ZGlmZiAtLWdpdCBhLy5jdnNpZ25vcmUgYi8uY3ZzaWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0YjEyMDAKLS0tIC9kZXYvbnVsbAorKysgYi8uY3ZzaWdub3JlCkBAIC0wLDAgKzEsNSBAQAorZG9jCitjbGFzc2VzCisuY2xhc3NwYXRoCisuZXh0ZXJuYWxUb29sQnVpbGRlcnMKKy5wcm9qZWN0CmRpZmYgLS1naXQgYS8uZ2l0YXR0cmlidXRlcyBiLy5naXRhdHRyaWJ1dGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlODFlZmUKLS0tIC9kZXYvbnVsbAorKysgYi8uZ2l0YXR0cmlidXRlcwpAQCAtMCwwICsxLDExOCBAQAorKiB0ZXh0PWF1dG8gIWVvbAorCisqLmMgdGV4dCAhZW9sCisqLmNjIHRleHQgIWVvbAorKi5jbGFzc3BhdGggdGV4dCAhZW9sCisqLmNwcCB0ZXh0ICFlb2wKKyouY3NzIHRleHQgIWVvbAorKi5kc3AgdGV4dCAhZW9sCisqLmRzdyB0ZXh0ICFlb2wKKyouZmlsdGVycyB0ZXh0ICFlb2wKKyouaCB0ZXh0ICFlb2wKKyouaHRtIHRleHQgIWVvbAorKi5odG1sIHRleHQgIWVvbAorKi5pbiB0ZXh0ICFlb2wKKyouamF2YSB0ZXh0ICFlb2wKKyoubGF1bmNoIHRleHQgIWVvbAorKi5tYWsgdGV4dCAhZW9sCisqLm1kIHRleHQgIWVvbAorKi5NRiB0ZXh0ICFlb2wKKyoubWsgdGV4dCAhZW9sCisqLnBsIHRleHQgIWVvbAorKi5wbSB0ZXh0ICFlb2wKKyoucHJvamVjdCB0ZXh0ICFlb2wKKyoucHJvcGVydGllcyB0ZXh0ICFlb2wKKyoucHkgdGV4dCAhZW9sCisqLnJjIHRleHQgIWVvbAorKi5zaCB0ZXh0IGVvbD1sZgorKi5zbG4gdGV4dCAhZW9sCisqLnN0dWIgdGV4dCAhZW9sCisqLnR4dCB0ZXh0ICFlb2wKKyoudWNtIHRleHQgIWVvbAorKi52Y3Byb2ogdGV4dCAhZW9sCisqLnZjeHByb2ogdGV4dCAhZW9sCisqLnhtbCB0ZXh0ICFlb2wKKyoueHNsIHRleHQgIWVvbAorKi54c2x0IHRleHQgIWVvbAorTWFrZWZpbGUgdGV4dCAhZW9sCitjb25maWd1cmUgdGV4dCAhZW9sCitMSUNFTlNFIHRleHQgIWVvbAorUkVBRE1FIHRleHQgIWVvbAorCisqLmJpbiAtdGV4dAorKi5icmsgLXRleHQKKyouY252IC10ZXh0CisqLmljdSAtdGV4dAorKi5yZXMgLXRleHQKKyoubnJtIC10ZXh0CisqLnNwcCAtdGV4dAorKi50cmkyIC10ZXh0CisKKy9lZS5mb3VuZGF0aW9uLmphciAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvZW5nbGlzaC5kaWN0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEuamFyIC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGhhaTYudWNzIC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfQXNpYW4udHh0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfQ2hpbmVzZS50eHQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19KYXBhbmVzZS50eHQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19KYXBhbmVzZV9oLnR4dCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0phcGFuZXNlX2sudHh0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfS29yZWFuLnR4dCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0xhdGluLnR4dCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1J1c3NpYW4udHh0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfU2VyYmlhblNILnR4dCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NlcmJpYW5TUi50eHQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19TaW1wbGlmaWVkX0NoaW5lc2UudHh0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfVGhhaS50eHQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL3JiYml0c3QudHh0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5pbXBsLkpES1RpbWVab25lLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5PbHNvblRpbWVab25lLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5UaW1lWm9uZUFkYXB0ZXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5BcmFiaWNTaGFwaW5nRXhjZXB0aW9uLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5DaGluZXNlRGF0ZUZvcm1hdC5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdC5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkTnVtYmVyRm9ybWF0LmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkJ1ZGRoaXN0Q2FsZW5kYXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5DaGluZXNlQ2FsZW5kYXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNvcHRpY0NhbGVuZGFyLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeS5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuRXRoaW9waWNDYWxlbmRhci5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXIuZGF0IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZS5kYXQgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLmRhdCAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGoyOC5hcGkuZ3ogLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzAuYXBpLmd6IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajMyLmFwaS5neiAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozNC5hcGkuZ3ogLXRleHQKK3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQxLmFwaS5neiAtdGV4dAorc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvaWN1NGozNDIuYXBpLmd6IC10ZXh0CitzcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajM0My5hcGkuZ3ogLXRleHQKK3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIgLXRleHQKK3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvdGguYnJrIC10ZXh0CitzcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvdW5pY29kZS5hcmFiaWMucmVkIC10ZXh0CitzcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvdW5pY29kZS5oZWJyZXcucmVkIC10ZXh0CisKKyMgVGhlIGZvbGxvd2luZyBmaWxlIHR5cGVzIGFyZSBzdG9yZWQgaW4gR2l0LUxGUy4KKyouamFyIGZpbHRlcj1sZnMgZGlmZj1sZnMgbWVyZ2U9bGZzIC10ZXh0CisqLmRhdCBmaWx0ZXI9bGZzIGRpZmY9bGZzIG1lcmdlPWxmcyAtdGV4dAorKi56aXAgZmlsdGVyPWxmcyBkaWZmPWxmcyBtZXJnZT1sZnMgLXRleHQKKyouZ3ogZmlsdGVyPWxmcyBkaWZmPWxmcyBtZXJnZT1sZnMgLXRleHQKKyouYnoyIGZpbHRlcj1sZnMgZGlmZj1sZnMgbWVyZ2U9bGZzIC10ZXh0CisqLmdpZiBmaWx0ZXI9bGZzIGRpZmY9bGZzIG1lcmdlPWxmcyAtdGV4dAorCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjlmNDc4Ci0tLSAvZGV2L251bGwKKysrIGIvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDUgQEAKKy8uY2xhc3NwYXRoCisvLmV4dGVybmFsVG9vbEJ1aWxkZXJzCisvLnByb2plY3QKKy9jbGFzc2VzCisvZG9jCmRpZmYgLS1naXQgYS9BUElDaGFuZ2VSZXBvcnQuaHRtbCBiL0FQSUNoYW5nZVJlcG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwYTI2MTUKLS0tIC9kZXYvbnVsbAorKysgYi9BUElDaGFuZ2VSZXBvcnQuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+Cis8dGl0bGU+SUNVNEogQVBJIENvbXBhcmlzb246IElDVTRKIDMuNC4yIHdpdGggSUNVNEogMy40LjM8L3RpdGxlPgorPCEtLSBDb3B5cmlnaHQgMjAwNiwgSUJNLCBBbGwgUmlnaHRzIFJlc2VydmVkLiAtLT4KKzwvaGVhZD4KKzxib2R5PgorPGgxPklDVTRKIEFQSSBDb21wYXJpc29uOiBJQ1U0SiAzLjQuMiB3aXRoIElDVTRKIDMuNC4zPC9oMT4KKworPGhyLz4KKzxoMj5SZW1vdmVkIGZyb20gSUNVNEogMy40LjI8L2gyPgorPHA+KG5vIEFQSSByZW1vdmVkKTwvcD4KKworPGhyLz4KKzxoMj5EZXByZWNhdGVkIG9yIE9ic29sZXRlZCBpbiBJQ1U0SiAzLjQuMzwvaDI+Cis8cD4obm8gQVBJIG9ic29sZXRlZCk8L3A+CisKKzxoci8+Cis8aDI+Q2hhbmdlZCBpbiBJQ1U0SiAzLjQuMyAob2xkLCBuZXcpPC9oMj4KKzxwPihubyBBUEkgY2hhbmdlZCk8L3A+CisKKzxoci8+Cis8aDI+UHJvbW90ZWQgdG8gc3RhYmxlIGluIElDVTRKIDMuNC4zPC9oMj4KKworPGgzPlBhY2thZ2UgY29tLmlibS5pY3UudGV4dDwvaDM+Cis8dWw+Cis8bGk+KHN0YWJsZSkgICAgIHB1YmxpYyBjbGFzcyA8aT5NZXNzYWdlRm9ybWF0PC9pPjwvbGk+Cis8L3VsPgorCisKKzxoci8+Cis8aDI+QWRkZWQgaW4gSUNVNEogMy40LjM8L2gyPgorPHA+KG5vIEFQSSBhZGRlZCk8L3A+Cis8aHIvPgorPHA+PGk+PGZvbnQgc2l6ZT0iLTEiPkNvbnRlbnRzIGdlbmVyYXRlZCBieSBSZXBvcnRBUEkgdG9vbCBvbiBUaHUgRmViIDIzIDA4OjM2OjA1IFBTVCAyMDA2PGJyLz5Db3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24sIEFsbCBSaWdodHMgUmVzZXJ2ZWQuPC9mb250PjwvaT48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9idWlsZC54bWwgYi9idWlsZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU4MTUwMgotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLnhtbApAQCAtMCwwICsxLDE0ODQgQEAKKzwhLS0KKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ny0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRoaXMgaXMgdGhlIGFudCBidWlsZCBmaWxlIGZvciBJQ1U0Si4gIFNlZSByZWFkbWUuaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyovCistLT4KKworPHByb2plY3QgbmFtZT0iSUNVNEoiIGRlZmF1bHQ9ImNvcmUiIGJhc2VkaXI9Ii4iPgorCisgICAgPCEtLSAjIyMgQmVnaW4gQ2xvdmVyIDEuMiBzZXR1cCAjIyMgLS0+CisgICAgPHR5cGVkZWYgcmVzb3VyY2U9ImNsb3ZlcnR5cGVzIi8+CisgICAgPHRhc2tkZWYgcmVzb3VyY2U9ImNsb3ZlcnRhc2tzIi8+CisKKyAgICA8dGFyZ2V0IG5hbWU9IndpdGguY2xvdmVyIj4KKyAgICAgICAgPG1rZGlyIGRpcj0idG1wLyIvPgorICAgICAgICA8Y2xvdmVyLXNldHVwIGluaXRTdHJpbmc9InRtcC9pY3U0ai5kYiI+CisgICAgICAgICAgICA8ZmlsZXM+CisgICAgICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovZGV2LyoqLyouamF2YSIvPgorICAgICAgICAgICAgIDwvZmlsZXM+CisgICAgICAgICAgICAgPG1ldGhvZENvbnRleHQgbmFtZT0iQVBJIiByZWdleHA9IiguKiApP3B1YmxpYyAuKiIvPgorICAgICAgICA8L2Nsb3Zlci1zZXR1cD4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iY2xvdmVyLnN1bW1hcnkiIGRlcGVuZHM9IndpdGguY2xvdmVyIj4KKyAgICAgICAgPGNsb3Zlci1yZXBvcnQgPgorICAgICAgICAgICAgPGN1cnJlbnQgb3V0ZmlsZT0iaWN1NGpfaHRtbCIgc3VtbWFyeT0idHJ1ZSI+CisgICAgICAgICAgICAgICAgPGZvcm1hdCB0eXBlPSJodG1sIiBzcmNMZXZlbD0iZmFsc2UiLz4KKyAgICAgICAgICAgIDwvY3VycmVudD4KKyAgICAgICAgPC9jbG92ZXItcmVwb3J0PgorICAgIDwvdGFyZ2V0PgorICAgPHRhcmdldCBuYW1lPSJjbG92ZXIucmVwb3J0IiBkZXBlbmRzPSJ3aXRoLmNsb3ZlciI+CisgICAgICAgIDxjbG92ZXItcmVwb3J0ID4KKyAgICAgICAgICAgIDxjdXJyZW50IG91dGZpbGU9ImljdTRqX2h0bWwiPgorICAgICAgICAgICAgICAgIDxmb3JtYXQgdHlwZT0iaHRtbCIvPgorICAgICAgICAgICAgPC9jdXJyZW50PgorICAgICAgICA8L2Nsb3Zlci1yZXBvcnQ+CisgICAgPC90YXJnZXQ+CisgICAgPHRhcmdldCBuYW1lPSJjbG92ZXIubG9nIiBkZXBlbmRzPSJ3aXRoLmNsb3ZlciI+CisgICAgICAgIDxjbG92ZXItbG9nIGxldmVsPSJtZXRob2QiIGZpbHRlcj0icHJpdmF0ZSI+CisgICAgICAgICAgICAgPHBhY2thZ2UgbmFtZT0iY29tLmlibS5pY3UudGV4dCIvPgorICAgICAgICAgICAgIDxwYWNrYWdlIG5hbWU9ImNvbS5pYm0uaWN1LmxhbmciLz4KKyAgICAgICAgICAgICA8cGFja2FnZSBuYW1lPSJjb20uaWJtLmljdS5tYXRoIi8+CisgICAgICAgICAgICAgPHBhY2thZ2UgbmFtZT0iY29tLmlibS5pY3UudXRpbCIvPgorICAgICAgICA8L2Nsb3Zlci1sb2c+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tICMjIyBFbmQgQ2xvdmVyIDEuMiBzZXR1cCAjIyMgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImFudGhhY2sxIj4KKyAgICAgICAgPCEtLSBJdCdzIGEgcmVhbCBwYWluIHRvIHNldCBwcm9wZXJ0aWVzIGNvbmRpdGlvbmFsbHkuCisgICAgICAgICAgQW50IDEuNSBpc24ndCByZWFsbHkgYW55IGJldHRlciB0aGFuIDEuNCwgaW4gZmFjdCAxLjUgZW5mb3JjZXMgdGhhdAorICAgICAgICAgIHByb3BlcnRpZXMgYXJlIHdyaXRlLW9uY2Ugc28geW91IGNhbid0IGV2ZW4gc2V0IGEgZGVmYXVsdCBhbmQgdGhlbgorICAgICAgICAgIG92ZXJyaWRlIGl0LCB3aGljaCB3ZSB1c2VkIHRvIGRvIGZvciBBbnQgMS40LiAtLT4KKyAgICAgICAgPGNvbmRpdGlvbiBwcm9wZXJ0eT0idmVyc2lvbi4xLjQiPgorICAgICAgICAgICAgPG9yPgorICAgICAgICAgICAgICAgIDxlcXVhbHMgYXJnMT0iJHthbnQuamF2YS52ZXJzaW9ufSIgYXJnMj0iMS40Ii8+CisgICAgICAgICAgICAgICAgPGVxdWFscyBhcmcxPSIke2FudC5qYXZhLnZlcnNpb259IiBhcmcyPSIxLjUiLz4KKyAgICAgICAgICAgICAgICA8ZXF1YWxzIGFyZzE9IiR7YW50LmphdmEudmVyc2lvbn0iIGFyZzI9IjEuNiIvPgorICAgICAgICAgICAgPC9vcj4KKyAgICAgICAgPC9jb25kaXRpb24+CisgICAgICAgIAorICAgICAgICA8Y29uZGl0aW9uIHByb3BlcnR5PSJkb2MucGFyYW1zIgorICAgICAgICAgICAgdmFsdWU9Ii1icmVha2l0ZXJhdG9yIC11c2UgLXRhZ2xldHBhdGggLi9jbGFzc2VzIC10YWdsZXQgY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5JQ1VUYWdsZXQgLWdyb3VwICdJQ1UgQ29yZScgJ2NvbS5pYm0uaWN1LmxhbmcqOmNvbS5pYm0uaWN1Lm1hdGgqOmNvbS5pYm0uaWN1LnRleHQqOmNvbS5pYm0uaWN1LnV0aWwqJyAtZ3JvdXAgJ0lDVSBUZXN0cycgJ2NvbS5pYm0uaWN1LmRldi50ZXN0KicgLWdyb3VwICdEZW1vcycgJ2NvbS5pYm0uaWN1LmRldi5kZW1vKicgLWdyb3VwICdJQ1UgVG9vbHMnICdjb20uaWJtLmljdS5kZXYqJyI+CisgICAgICAgICAgICAgICAgPGVxdWFscyBhcmcxPSIke3ZlcnNpb24uMS40fSIgYXJnMj0idHJ1ZSIvPgorICAgICAgICA8L2NvbmRpdGlvbj4KKworICAgICAgICA8Y29uZGl0aW9uIHByb3BlcnR5PSJyaWNoZWRpdGRvYy5wYXJhbXMiCisgICAgICAgICAgICB2YWx1ZT0iLWJyZWFraXRlcmF0b3IgLXVzZSAtdGFnbGV0cGF0aCAuL2NsYXNzZXMgLXRhZ2xldCBjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLklDVVRhZ2xldCAtZ3JvdXAgJ1JpY2ggVGV4dCBFZGl0aW5nJyAnY29tLmlibS5yaWNodGV4dConIj4KKyAgICAgICAgICAgICAgICA8ZXF1YWxzIGFyZzE9IiR7dmVyc2lvbi4xLjR9IiBhcmcyPSJ0cnVlIi8+CisgICAgICAgIDwvY29uZGl0aW9uPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJhbnRoYWNrMiIgdW5sZXNzPSJkb2MucGFyYW1zIj4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImRvYy5wYXJhbXMiIHZhbHVlPSIiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iaW5pdCI+CisgICAgICAgIDx0c3RhbXAvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0ic3JjLmRpciIgdmFsdWU9InNyYyIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iYnVpbGQuZGlyIiB2YWx1ZT0iY2xhc3NlcyIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iYXBpLmRpciIgdmFsdWU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcyIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iZG9jLmRpciIgdmFsdWU9ImRvYyIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0idGVzdGphci5maWxlIiB2YWx1ZT0iaWN1NGp0ZXN0cy5qYXIiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9Imphci5maWxlIiB2YWx1ZT0iaWN1NGouamFyIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJqYXJTcmMuZmlsZSIgdmFsdWU9ImljdTRqc3JjLmphciIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iemlwQ29yZVNyYy5maWxlIiB2YWx1ZT0iaWN1NGpjc3JjLnppcCIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iemlwVGVzdFNyYy5maWxlIiB2YWx1ZT0iaWN1NGp0c3JjLnppcCIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iamRrLndyYXBwZXIuamFyLmZpbGUiIHZhbHVlPSJpY3U0andyYXBwZXIuamFyIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJlY2xpcHNlLmRpciIgdmFsdWU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2VjbGlwc2UiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImVjbGlwc2UucHJvamVjdHMuZGlyIiB2YWx1ZT0iZWNsaXBzZVByb2plY3RzIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ3cmFwcGVyLmJ1aWxkLmRpciIgdmFsdWU9ImNsYXNzZXMud3JhcHBlciIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iamFyRG9jcy5maWxlIiB2YWx1ZT0iaWN1NGpkb2NzLmphciIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iaWN1NGoubWFuaWZlc3QiIHZhbHVlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L21hbmlmZXN0LnN0dWIiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImljdTRqLm1vZHVsZS5tYW5pZmVzdCIgdmFsdWU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvbWFuaWZlc3QubW9kdWxlLnN0dWIiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InhsaWZmLm1hbmlmZXN0IiB2YWx1ZT0iJHtzcmMuZGlyfS9jb20vaWJtL2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9tYW5pZmVzdC54bGlmZi5zdHViIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjbGRyLnV0aWwubWFuaWZlc3QiIHZhbHVlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvbWFuaWZlc3QuY2xkcnV0aWwuc3R1YiIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iaWN1NGoudGVzdHMubWFuaWZlc3QiIHZhbHVlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L21hbmlmZXN0LnRlc3Quc3R1YiIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iaW1lLnRyYW5zbGl0Lm1hbmlmZXN0IiB2YWx1ZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvbWFuaWZlc3Quc3R1YiIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iaW1lLnRyYW5zbGl0Lmphci5maWxlIiB2YWx1ZT0iaWN1dHJhbnNpbWUuamFyIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJpbWUuaW5kaWMubWFuaWZlc3QiIHZhbHVlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9tYW5pZmVzdC5zdHViIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJpbWUuaW5kaWMuamFyLmZpbGUiIHZhbHVlPSJpY3VpbmRpY2ltZS5qYXIiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InppcC5maWxlIiB2YWx1ZT0iLi4vaWN1NGoke0RTVEFNUH0uemlwIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ6aXBTcmMuZmlsZSIgdmFsdWU9Ii4uL2ljdTRqU3JjJHtEU1RBTVB9LnppcCIvPgorCisgICAgICAgIDwhLS0gZml4IHRoZSBkYXRhIGZvbGRlciBldmVyeSB0aW1lIHRoZXJlIGlzIGEgdmVyc2lvbiB1cGRhdGUtLT4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImljdTRqLmRhdGEucGF0aCIgdmFsdWU9ImNvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkdDM0Yi8iIC8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJpY3U0ai50ZXN0ZGF0YS5wYXRoIiB2YWx1ZT0iY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEvIiAvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iaWN1NGouamF2YWMuc291cmNlIiB2YWx1ZT0iMS4zIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJpY3U0ai5qYXZhYy50YXJnZXQiIHZhbHVlPSIxLjMiLz4KKworICAgICAgICA8cGF0aCBpZD0iYnVpbGQuY2xhc3NwYXRoIj4KKyAgICAgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoPSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgPC9wYXRoPgorCisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJyaWNoZWRpdC5kaXIiIHZhbHVlPSJyaWNoZWRpdCIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0icmljaGVkaXQuZG9jLmRpciIgdmFsdWU9IiR7cmljaGVkaXQuZGlyfS9kb2MiLz4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InJpY2hlZGl0Lmphci5maWxlIiB2YWx1ZT0iJHtyaWNoZWRpdC5kaXJ9L3JpY2hlZGl0LmphciIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0icmljaGVkaXQuemlwLmZpbGUiIHZhbHVlPSIke3JpY2hlZGl0LmRpcn0vcmljaGVkaXQuemlwIi8+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJyaWNoZWRpdC5tYW5pZmVzdCIgdmFsdWU9IiR7c3JjLmRpcn0vY29tL2libS9yaWNodGV4dC9tYW5pZmVzdC5zdHViIi8+CisgICAgICAgIAorICAgICAgICA8IS0tIExvYWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIC0tPgorICAgICAgICA8cHJvcGVydHkgZW52aXJvbm1lbnQ9ImVudiIvPgorCisgICAgICAgIDwhLS0gQ2FwdHVyZSB0aGUgY29tcHV0ZXIgbmFtZSBpbiBhIGNyb3NzLXBsYXRmb3JtIG1hbm5lciAtLT4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImVudi5DT01QVVRFUk5BTUUiIHZhbHVlPSIke2Vudi5IT1NUTkFNRX0iLz4KKworICAgICAgICA8bWtkaXIgZGlyPSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgPG1rZGlyIGRpcj0iJHt3cmFwcGVyLmJ1aWxkLmRpcn0iLz4KKworICAgICAgICA8ZWNobyBtZXNzYWdlPSJqYXZhIGhvbWU6ICR7amF2YS5ob21lfSIvPgorICAgICAgICA8ZWNobyBtZXNzYWdlPSJqYXZhIHZlcnNpb246ICR7amF2YS52ZXJzaW9ufSIvPgorICAgICAgICA8ZWNobyBtZXNzYWdlPSJhbnQgamF2YSB2ZXJzaW9uOiAke2FudC5qYXZhLnZlcnNpb259Ii8+CisgICAgICAgIDxlY2hvIG1lc3NhZ2U9IiR7YW50LnZlcnNpb259Ii8+CisgICAgICAgIDxlY2hvIG1lc3NhZ2U9IiR7ZW52LkNPTVBVVEVSTkFNRX0gd2l0aCAke29zLm5hbWV9ICR7b3MudmVyc2lvbn0gb24gJHtvcy5hcmNofSIvPgorICAgICAgICA8ZWNobyBtZXNzYWdlPSJjbG92ZXIgaW5pdHN0cmluZyA9ICcke2Nsb3Zlci5pbml0c3RyaW5nfSciLz4KKworICAgICAgICA8dXB0b2RhdGUgcHJvcGVydHk9ImljdTRqLnJlc291cmNlcyIgdGFyZ2V0ZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEiPgorICAgICAgICAgICAgPCEtLSBub3RlIG11c3Qgbm90IGhhdmUgJy8nIGJlZm9yZSAnY29tJyBpbiBzcmNmaWxlcyBpbmNsdWRlcyBhcmchIC0tPgorICAgICAgICAgICAgPHNyY2ZpbGVzIGRpcj0iJHtidWlsZC5kaXJ9IiBpbmNsdWRlcz0iJHtpY3U0ai5kYXRhLnBhdGh9L3Jlc19pbmRleC5yZXMiLz4KKyAgICAgICAgPC91cHRvZGF0ZT4KKworICAgICAgICA8dXB0b2RhdGUgcHJvcGVydHk9ImljdTRqLnRlc3RkYXRhLnJlc291cmNlcyIgdGFyZ2V0ZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YSI+CisgICAgICAgICAgICA8IS0tIG5vdGUgbXVzdCBub3QgaGF2ZSAnLycgYmVmb3JlICdjb20nIGluIHNyY2ZpbGVzIGluY2x1ZGVzIGFyZyEgLS0+CisgICAgICAgICAgICA8c3JjZmlsZXMgZGlyPSIke2J1aWxkLmRpcn0iIGluY2x1ZGVzPSIke2ljdTRqLnRlc3RkYXRhZGF0YS5wYXRofS9yb290LnJlcyIvPgorICAgICAgICA8L3VwdG9kYXRlPgorCisgICAgICAgIDx1cHRvZGF0ZSBwcm9wZXJ0eT0iaWN1NGoubW9kdWxlLnJlc291cmNlcyIgdGFyZ2V0ZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIiID4KKyAgICAgICAgICAgIDxzcmNmaWxlcyBkaXI9IiR7YnVpbGQuZGlyfSIgaW5jbHVkZXM9IiR7aWN1NGouZGF0YS5wYXRofS8qLmljdSIvPgorICAgICAgICA8L3VwdG9kYXRlPgorICAgICAgICA8IS0tIDxlY2hvIG1lc3NhZ2U9ImljdTRqLm1vZHVsZS5yZXNvdXJjZXMgcmVzdWx0OiAke2ljdTRqLm1vZHVsZS5yZXNvdXJjZXN9IiAvPiAtLT4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gYnVpbGQgZXZlcnl0aGluZyBidXQgZGlzdC1yZWxhdGVkIHN0dWZmIC0tPgorICAgIDx0YXJnZXQgbmFtZT0iYWxsIiBkZXBlbmRzPSJjb3JlLHRlc3RzLHRvb2xzLHJpY2hlZGl0LGRlbW9zLGphcixkb2NzIiBkZXNjcmlwdGlvbj0iYnVpbGQgYWxsIHByaW1hcnkgdGFyZ2V0cyIvPgorCisgICAgPHRhcmdldCBuYW1lPSJyZXNvdXJjZXMiIGRlcGVuZHM9ImluaXQsIHRlc3RkYXRhIiBkZXNjcmlwdGlvbj0iYnVpbGRzIGFsbCB0aGUgcmVzb3VyY2VzIj4KKyAgICAgICAgPHVuamFyIHNyYz0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIiIGRlc3Q9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICA8dG91Y2ggZmlsZT0iJHtidWlsZC5kaXJ9LyR7aWN1NGouZGF0YS5wYXRofS9yZXNfaW5kZXgucmVzIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImljdWRhdGEiIGRlcGVuZHM9ImluaXQiIGlmPSJpY3U0ai5yZXNvdXJjZXMiPgorICAgICAgICA8IS0tIHVzZSB0aGlzIHRhcmdldCB0byBmb3JjZSByZXNvdXJjZXMgdG8gYmUgcmVidWlsdCAtLT4KKyAgICAgICAgPHVuamFyIHNyYz0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIiIGRlc3Q9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICA8dG91Y2ggZmlsZT0iJHtidWlsZC5kaXJ9LyR7aWN1NGouZGF0YS5wYXRofS9yZXNfaW5kZXgucmVzIi8+CisgICAgPC90YXJnZXQ+CisKKzwhLS0KKyAgICB1c2UgdGhpcyB0YXJnZXQgdG8gY29uZGl0aW9uYWxseSBidWlsZCByZXNvdXJjZXMgb25seSBpZiBpY3U0ai5yZXNvdXJjZXMgaXMgc2V0CisgICAgPHRhcmdldCBuYW1lPSJpY3UiIGRlcGVuZHM9ImluaXQiIGlmPSJpY3U0ai5yZXNvdXJjZXMiPgorICAgICAgICA8dW5qYXIgc3JjPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9JQ1VMb2NhbGVEYXRhLmphciIgZGVzdD0iJHtidWlsZC5kaXJ9Ii8+CisgICAgICAgIDx0b3VjaCBmaWxlPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL0xvY2FsZUVsZW1lbnRzX2luZGV4LmNsYXNzIi8+CisgICAgPC90YXJnZXQ+CisgLS0+CisKKyAgICA8IS0tIGNvcmUgZG9lcyBub3QgYnVpbGQgcmljaGVkaXQgb3IgdGVzdHMgLS0+CisgICAgPHRhcmdldCBuYW1lPSJjb3JlIiBkZXBlbmRzPSJpbml0LGNvcmVEYXRhLGljdWRhdGEiIGRlc2NyaXB0aW9uPSJidWlsZCBjb3JlIGNsYXNzZXMgYW5kIGRhdGEiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L3V0aWwvKiovKi5qYXZhLGNvbS9pYm0vaWN1L3RleHQvKiovKi5qYXZhLGNvbS9pYm0vaWN1L21hdGgvKiovKi5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvKiovKi5qYXZhLGNvbS9pYm0vaWN1L2xhbmcvKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIgorICAgICAgICAgICAgZW5jb2Rpbmc9ImFzY2lpIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9InRlc3RzIiBkZXBlbmRzPSJjb3JlLHRlc3RkYXRhIiBkZXNjcmlwdGlvbj0iYnVpbGQgdGVzdHMiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyLyoqLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yLyoqLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nLyoqLyouamF2YSwgY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvKiovKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+ICAgICAgICAgICAgCisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvKiovKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImRlbW9zIiBkZXBlbmRzPSJjb3JlLHRlc3RkYXRhIiBkZXNjcmlwdGlvbj0iYnVpbGQgZGVtb3MiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi9kZW1vLyoqLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJidWlsZG1hbmdsZSIgZGVwZW5kcz0iaW5pdCxhbnRoYWNrMSI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9Db2RlTWFuZ2xlci5qYXZhIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9Ii8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9Im1hbmdsZSIgZGVwZW5kcz0iYnVpbGRtYW5nbGUiPgorICAgIDwhLS0gdGhpcyBpcyBhIGhhY2sgZm9yIG5vdywgbmVlZCBhIHdheSB0byBleHByZXNzIGRlcGVuZGVuY3kgb24gdGhlIC5qcHAgZmlsZXMKKyAgICBhbmQgdG8gcHJvdmlkZSBkaXJlY3RvcmllcyBvciB0cmVlcyBvZiBmaWxlcyB0byB0aGUgY29kZSBtYW5nbGVyIHRvb2wuIC0tPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuQ29kZU1hbmdsZXIiIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IiBsb2dFcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItZFZFUlNJT05fJHthbnQuamF2YS52ZXJzaW9ufSIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0lDVVRhZ2xldC5qYXZhIi8+CisgICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImluZGljZXMiIGRlcGVuZHM9ImljdWRhdGEsYnVpbGRfaW5kZXhnZW5lcmF0b3IiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmluZGV4LkluZGV4R2VuZXJhdG9yIiBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIgbG9nRXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHtidWlsZC5kaXJ9LyR7aWN1NGouZGF0YS5wYXRofSIgLz4KKyAgICAgICAgPC9qYXZhPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmluZGV4LkluZGV4R2VuZXJhdG9yIiBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIgbG9nRXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHtidWlsZC5kaXJ9LyR7aWN1NGouZGF0YS5wYXRofS9yYm5mIiAvPgorICAgICAgICA8L2phdmE+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuaW5kZXguSW5kZXhHZW5lcmF0b3IiIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IiBsb2dFcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L2NvbGwiIC8+CisgICAgICAgIDwvamF2YT4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5pbmRleC5JbmRleEdlbmVyYXRvciIgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iIGxvZ0Vycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLmRhdGEucGF0aH0vdHJhbnNsaXQiIC8+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0ib25lNHRvb2xzIiBkZXBlbmRzPSJhbnRoYWNrMSxhbnRoYWNrMixtYW5nbGUiIGlmPSJ2ZXJzaW9uLjEuNCI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L2xvY2FsZWNvbnZlcnRlci9kb2NzLyouamF2YSxjb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iIAorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0idG9vbHMiIGRlcGVuZHM9ImNvcmUsb25lNHRvb2xzIiBkZXNjcmlwdGlvbj0iYnVpbGQgdG9vbHMiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90b29sLyoqLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9jbGRyLyosY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyLyosY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy8qLCoqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImJ1aWxkX2luZGV4Z2VuZXJhdG9yIiBkZXBlbmRzPSJjb3JlIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9pbmRleC9JbmRleEdlbmVyYXRvci5qYXZhIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgPC90YXJnZXQ+CisgICAgICAgICAgICAKKzwhLS0gdXNlIGV4Y2x1ZGVmaWxlcyBiZWxvdyB3aGVuIHdlIG1vdmUgdG8gYW50IDEuNSAtLT4KKworICAgIDx0YXJnZXQgbmFtZT0iZG9jcyIgZGVwZW5kcz0iYW50aGFjazEsYW50aGFjazIsdG9vbHMiIGRlc2NyaXB0aW9uPSJidWlsZCB1c2VyIGphdmFkb2MiPgorICAgICAgICA8ZWNobyBtZXNzYWdlPSJkb2MgcGFyYW1zOiAke2RvYy5wYXJhbXN9Ii8+CisgICAgICAgIDxta2RpciBkaXI9IiR7ZG9jLmRpcn0iLz4KKyAgICAgICAgPGphdmFkb2MKKyAgICAgICAgICAgIHBhY2thZ2VuYW1lcz0iY29tLmlibS5pY3UubGFuZyxjb20uaWJtLmljdS50ZXh0LGNvbS5pYm0uaWN1LnV0aWwsY29tLmlibS5pY3UubWF0aCxjb20uaWJtLmljdS5kZXYiCisgICAgICAgICAgICBzb3VyY2VwYXRoPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtkb2MuZGlyfSIKKyAgICAgICAgICAgIG5vZGVwcmVjYXRlZGxpc3Q9InRydWUiCisgICAgICAgICAgICB3aW5kb3d0aXRsZT0iaWN1NGoiCisgICAgICAgICAgICBkb2N0aXRsZT0iaWN1NGoiCisgICAgICAgICAgICBlbmNvZGluZz0iaXNvLTg4NTktMSIKKyAgICAgICAgICAgIGRvY2VuY29kaW5nPSJpc28tODg1OS0xIgorICAgICAgICAgICAgYm90dG9tPSImbHQ7Zm9udCBzaXplPS0xPkNvcHlyaWdodCAoYykgMjAwNiBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4mbHQ7L2ZvbnQ+IgorICAgICAgICAgICAgYWRkaXRpb25hbHBhcmFtPSIke2RvYy5wYXJhbXN9IgorICAgICAgICAgICAgbGluaz0iaHR0cDovL2phdmEuc3VuLmNvbS9qMnNlLzEuNS9kb2NzL2FwaSIKKyAgICAgICAgICAgIHNvdXJjZT0iMS40Ii8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImZ1bGxkb2NzIiBkZXBlbmRzPSJhbnRoYWNrMSxhbnRoYWNrMix0b29scyIgZGVzY3JpcHRpb249ImJ1aWxkIGFsbCBqYXZhZG9jIj4KKyAgICAgICAgPGVjaG8gbWVzc2FnZT0iZG9jIHBhcmFtczogJHtkb2MucGFyYW1zfSIvPgorICAgICAgICA8bWtkaXIgZGlyPSIke2RvYy5kaXJ9Ii8+CisgICAgICAgIDxqYXZhZG9jCisgICAgICAgICAgICBwYWNrYWdlbmFtZXM9ImNvbS5pYm0uaWN1LioiCisgICAgICAgICAgICBzb3VyY2VwYXRoPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtkb2MuZGlyfSIKKyAgICAgICAgICAgIG5vZGVwcmVjYXRlZGxpc3Q9InRydWUiCisgICAgICAgICAgICB3aW5kb3d0aXRsZT0iaWN1NGoiCisgICAgICAgICAgICBkb2N0aXRsZT0iaWN1NGoiCisgICAgICAgICAgICBlbmNvZGluZz0iaXNvLTg4NTktMSIKKyAgICAgICAgICAgIGRvY2VuY29kaW5nPSJpc28tODg1OS0xIgorICAgICAgICAgICAgYm90dG9tPSImbHQ7Zm9udCBzaXplPS0xPkNvcHlyaWdodCAoYykgMjAwNCBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4mbHQ7L2ZvbnQ+IgorICAgICAgICAgICAgYWRkaXRpb25hbHBhcmFtPSIke2RvYy5wYXJhbXN9IgorICAgICAgICAgICAgbGluaz0iaHR0cDovL2phdmEuc3VuLmNvbS9qMnNlLzEuNC9kb2NzL2FwaSIKKyAgICAgICAgICAgIHNvdXJjZT0iMS40Ii8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWUgPSJjb3JlRGF0YSIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDxjb3B5IHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEiCisgICAgICAgICAgICAgICAgaW5jbHVkZXM9IiouaWN1LCouc3BwLCouYnJrIgorICAgICAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKixUcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fKi50eHQiLz4KKyAgICAgICAgPC9jb3B5PgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lID0idGVzdGRhdGEiIGRlcGVuZHM9ImluaXQiPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvZW5nbGlzaC5kaWN0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS9yYmJpIi8+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9yYmJpdHN0LnR4dCIKKyAgICAgICAgICAgIHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaSIvPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXRkZXQvQ2hhcnNldERldGVjdGlvblRlc3RzLnhtbCIKKyAgICAgICAgICAgIHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldGRldCIvPgorICAgICAgICA8Y29weSB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YSI+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5kYXQiLz4KKyAgICAgICAgICAgIDwvZmlsZXNldD4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jpd29yZHMudHh0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YSIvPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL0lETkFUZXN0SW5wdXQudHh0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YSIvPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi9kYXRhLyouamF2YSwgY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgICAgICA8Y29weSB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YSIKKyAgICAgICAgICAgICAgICBpbmNsdWRlcz0iKi5zcHAsKi50eHQiLz4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8Y29weSB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlLyIKKyAgICAgICAgICAgICAgICBpbmNsdWRlcz0iKi50eHQiLz4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0Q2FzZXMudHh0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQiLz4KKyAgICAgICAgPGNvcHkgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvIgorICAgICAgICAgICAgICAgIGluY2x1ZGVzPSIqLnByb3BlcnRpZXMiLz4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8IS0tIHVzZSB0aGlzIHRhcmdldCB0byBmb3JjZSByZXNvdXJjZXMgdG8gYmUgcmVidWlsdCAtLT4KKyAgICAgICAgPHVuamFyIHNyYz0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS5qYXIiIGRlc3Q9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICA8dG91Y2ggZmlsZT0iJHtidWlsZC5kaXJ9LyR7aWN1NGoudGVzdGRhdGEucGF0aH0vcm9vdC5yZXMiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gYnVpbGRzIHJpY2hlZGl0IGFuZCByaWNoZWRpdCB0ZXN0cyAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9InJpY2hlZGl0IiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0iYnVpbGQgcmljaGVkaXQgY2xhc3NlcyBhbmQgdGVzdHMiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vcmljaHRleHQvKiovKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgICAgIDxjb3B5IHRvZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMiIG92ZXJ3cml0ZT0ieWVzIiBpbmNsdWRlRW1wdHlEaXJzPSJubyI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7c3JjLmRpcn0vY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMiIGluY2x1ZGVzPSIqLnJlZCIvPgorICAgICAgICA8L2NvcHk+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tIENyZWF0ZXMgdGhlIDMgcmVsZWFzZSBqYXIgYXJjaGl2ZXMgZm9yIGRpc3RyaWJ1dGlvbiAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9ImphclJlbGVhc2UiIGRlcGVuZHM9ImphcixqYXJTcmMsamFyRG9jcyIvPgorCisgICAgPHRhcmdldCBuYW1lPSJqYXIiIGRlcGVuZHM9ImNvcmUsaW5kaWNlcyIgZGVzY3JpcHRpb249ImJ1aWxkIGZ1bGwgJ2ljdTRqLmphcicgamFyIGZpbGUiPgorICAgICAgICA8amFyIGphcmZpbGU9IiR7amFyLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBpbmNsdWRlcz0iY29tL2libS9pY3UvdXRpbC8qKi8qLGNvbS9pYm0vaWN1L3RleHQvKiovKixjb20vaWJtL2ljdS9tYXRoLyoqLyosY29tL2libS9pY3UvaW1wbC8qKi8qLGNvbS9pYm0vaWN1L2xhbmcvKiovKiIKKyAgICAgICAgICAgIGJhc2VkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIG1hbmlmZXN0PSIke2ljdTRqLm1hbmlmZXN0fSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJqYXJUZXN0cyIgZGVwZW5kcz0idGVzdHMsamFyIiBkZXNjcmlwdGlvbj0iYnVpbGQgcnVudGltZSAnaWN1NGp0ZXN0cy5qYXInIGphciBmaWxlIj4KKyAgICAgICAgPGphciBqYXJmaWxlPSIke3Rlc3RqYXIuZmlsZX0iIGNvbXByZXNzPSJ0cnVlIiBtYW5pZmVzdD0iJHtpY3U0ai50ZXN0cy5tYW5pZmVzdH0iPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0iIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC8qKi8qIi8+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7YnVpbGQuZGlyfSIgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi9kYXRhLyoqLyoiLz4KKyAgICAgICAgPC9qYXI+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImphclNyYyIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249ImJ1aWxkIHNvdXJjZSAnaWN1NGpzcmMuamFyJyBqYXIgZmlsZSI+CisgICAgICAgIDwhLS1DcmVhdGUgYSBqYXIgYXJjaGl2ZSBvZiBqdXN0IHRoZSBzb3VyY2UgZm9yIGRpc3RyaWJ1dGlvbi4gIFRoZQorICAgICAgICBqYXIgZmlsZSB3aWxsIGJlIGNyZWF0ZWQgaW4gdGhlIGRpcmVjdG9yeSBhYm92ZSB0aGUgcm9vdCBJQ1U0SgorICAgICAgICBkaXJlY3RvcnkuIFRoZSBleGNsdWRlIHBhdHRlcm4gJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLSoudHh0CisgICAgICAgIGFuZCAke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvU3BlY2lhbENhc2luZy0qLnR4dAorICAgICAgICBlbGltaW5hdGVzIG9sZCBhcmNoaXZlIGNvcGllcyBsaWtlIFNwZWNpYWxDYXNpbmctMi50eHQgYW5kCisgICAgICAgIFVuaWNvZGVEYXRhLTIuMS44LnR4dCAtLT4KKyAgICAgICAgPGphciBqYXJmaWxlPSIke2phclNyYy5maWxlfSIKKyAgICAgICAgICAgIGNvbXByZXNzPSJ0cnVlIgorICAgICAgICAgICAgYmFzZWRpcj0iLiIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIke3JpY2hlZGl0LmRpcn0vKiovKix0ZXN0XyosJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlLy9Vbmljb2RlRGF0YS0qLnR4dCwke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvU3BlY2lhbENhc2luZy0qLnR4dCwke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvQ29tcG9zaXRpb25FeGNsdXNpb25zLSoudHh0LCR7b2Jzb2xldGUuZGlyfS8qKiwqKi8qfiwke3NyYy5kaXJ9LyoqLyouY2xhc3MsJHtidWlsZC5kaXJ9LyoqLCoqL0NWUy8qKi8qLCR7ZG9jLmRpcn0vKiosKi5qYXIsKi56aXAsICouZ3oiCisgICAgICAgICAgICBtYW5pZmVzdD0iJHtpY3U0ai5tYW5pZmVzdH0iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iamFyRG9jcyIgZGVwZW5kcz0iZG9jcyIgZGVzY3JpcHRpb249ImJ1aWxkIGRvY3VtZW50YXRpb24gJ2ljdTRqZG9jcy5qYXInIGphciBmaWxlIj4KKyAgICAgICAgPGphciBqYXJmaWxlPSIke2phckRvY3MuZmlsZX0iCisgICAgICAgICAgICBjb21wcmVzcz0idHJ1ZSIKKyAgICAgICAgICAgIGJhc2VkaXI9IiR7ZG9jLmRpcn0iCisgICAgICAgICAgICBtYW5pZmVzdD0iJHtpY3U0ai5tYW5pZmVzdH0iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0idHJhbnNsaXRJTUVKYXIiIGRlcGVuZHM9ImNvbGxhdG9yLCB0cmFuc2xpdGVyYXRvciIgZGVzY3JpcHRpb249ImJ1aWxkIHRyYW5zbGl0ZXJhdG9yIElNRSAnaWN1dHJhbnNpbWUuamFyJyBqYXIgZmlsZSI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0LyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9UcmFuc2xpdGVyYXRvci5wcm9wZXJ0aWVzIgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQiLz4KKyAgICAgICAgPGphciBqYXJmaWxlPSIke2ltZS50cmFuc2xpdC5qYXIuZmlsZX0iCisgICAgICAgICAgICBjb21wcmVzcz0idHJ1ZSIKKyAgICAgICAgICAgIGJhc2VkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvKiovKiIKKyAgICAgICAgICAgIG1hbmlmZXN0PSIke2ltZS50cmFuc2xpdC5tYW5pZmVzdH0iPgorICAgICAgICAgICAgPG1ldGFpbmYgZGlyPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdCIgaW5jbHVkZXM9InNlcnZpY2VzLyoiLz4KKyAgICAgICAgPC9qYXI+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImluZGljSU1FSmFyIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0iYnVpbGQgaW5kaWMgSU1FICdpY3VpbmRpY2ltZS5qYXInIGphciBmaWxlIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0Rpc3BsYXlOYW1lcy5wcm9wZXJ0aWVzIgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMiLz4KKyAgICAgICAgPGphciBqYXJmaWxlPSIke2ltZS5pbmRpYy5qYXIuZmlsZX0iCisgICAgICAgICAgICBjb21wcmVzcz0idHJ1ZSIKKyAgICAgICAgICAgIGJhc2VkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvKiovKiIKKyAgICAgICAgICAgIG1hbmlmZXN0PSIke2ltZS5pbmRpYy5tYW5pZmVzdH0iPgorICAgICAgICAgICAgPG1ldGFpbmYgZGlyPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYyIgaW5jbHVkZXM9InNlcnZpY2VzLyoiLz4KKyAgICAgICAgPC9qYXI+CisgICAgPC90YXJnZXQ+CisKKzwhLS0KKyAgICA8dGFyZ2V0IG5hbWU9InRyYW5zbGl0aW1lU3RhbmRhbG9uZUphciIgZGVwZW5kcz0iY29sbGF0b3IsIHRyYW5zbGl0ZXJhdG9yIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgICAgIDxjb3B5IHRvRGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0Ij4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQiIGluY2x1ZGVzPSIqLnByb3BlcnRpZXMiLz4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8amFyIGphcmZpbGU9IiR7aW1lLmphci5maWxlfSIKKyAgICAgICAgICAgIGNvbXByZXNzPSJ0cnVlIgorICAgICAgICAgICAgYmFzZWRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L3V0aWwvKiovKixjb20vaWJtL2ljdS90ZXh0LyoqLyosY29tL2libS9pY3UvbWF0aC8qKi8qLGNvbS9pYm0vaWN1L2ltcGwvKiovKixjb20vaWJtL2ljdS9sYW5nLyoqLyosY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0LyoqLyoiCisgICAgICAgICAgICBtYW5pZmVzdD0iJHtpbWUudHJhbnNsaXQubWFuaWZlc3R9Ij4KKyAgICAgICAgICAgIDxtZXRhaW5mIGRpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQiIGluY2x1ZGVzPSJzZXJ2aWNlcy8qIi8+CisgICAgICAgIDwvamFyPgorICAgIDwvdGFyZ2V0PgorLS0+CisKKyAgICA8IS0tIGphcnMgdXAgcmljaGVkaXQgYnV0IHdpdGhvdXQgdGVzdHMgLS0+CisgICAgPHRhcmdldCBuYW1lPSJyaWNoZWRpdEphciIgZGVwZW5kcz0icmljaGVkaXQiIGRlc2NyaXB0aW9uPSJidWlsZCByaWNoZWRpdCBydW50aW1lICdyaWNoZWRpdC5qYXInIGphciBmaWxlIj4KKyAgICAgICAgPG1rZGlyIGRpcj0iJHtyaWNoZWRpdC5kaXJ9Ii8+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHtyaWNoZWRpdC5qYXIuZmlsZX0iCisgICAgICAgICAgICBjb21wcmVzcz0idHJ1ZSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL3JpY2h0ZXh0LyoqLyoiCisgICAgICAgIGV4Y2x1ZGVzPSJjb20vaWJtL3JpY2h0ZXh0L3Rlc3QvKiovKiIKKyAgICAgICAgICAgIGJhc2VkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIG1hbmlmZXN0PSIke3JpY2hlZGl0Lm1hbmlmZXN0fSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLQorICAgICAgICBOb3RlOiAgSSB1c2VkIHRvIHVzZSAtbGlua29mZmxpbmUgaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9qZGsvMS4yL2RvY3MvYXBpLyBDOlxqZGsxLjIuMlxkb2NzXGFwaQorICAgICAgICBUaGlzIGxpbmtzIHRvIGNvcmUgZG9jcyBvbiBTdW4ncyBzaXRlIC0gYSB2ZXJ5IG5pY2UgZmVhdHVyZS4gIEJ1dCBpdCByZXF1aXJlcyB0aGUgMS4yIGRvY3MgdG8gYmUKKyAgICAgICAgb24gdGhlIGJ1aWxkIG1hY2hpbmUgYXQgYSBrbm93biBsb2NhdGlvbi4KKyAgICAtLT4KKworICAgIDwhLS0gdGhlICdwdWJsaWMnIGRvY3MgZm9yIHJpY2hlZGl0IC0tPgorICAgIDx0YXJnZXQgbmFtZT0icmljaGVkaXREb2NzIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0iYnVpbGQgcmljaGVkaXQgamF2YWRvYyI+CisgICAgICAgIDxta2RpciBkaXI9IiR7cmljaGVkaXQuZG9jLmRpcn0iLz4KKyAgICAgICAgPGphdmFkb2MgIHBhY2thZ2VuYW1lcz0iY29tLmlibS5yaWNodGV4dC5kZW1vLGNvbS5pYm0ucmljaHRleHQuYXd0dWksY29tLmlibS5yaWNodGV4dC5zd2luZ3VpLGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dCxjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcyxjb20uaWJtLnJpY2h0ZXh0LnByaW50IgorICAgICAgICAgICAgc291cmNlcGF0aD0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7cmljaGVkaXQuZG9jLmRpcn0iCisgICAgICAgICAgICBub2RlcHJlY2F0ZWRsaXN0PSJ0cnVlIgorICAgICAgICAgICAgd2luZG93dGl0bGU9IlJpY2hFZGl0IENvbnRyb2wiCisgICAgICAgICAgICBkb2N0aXRsZT0iUmljaEVkaXQgQ29udHJvbCIKKyAgICAgICAgICAgIGVuY29kaW5nPSJpc28tODg1OS0xIgorICAgICAgICAgICAgZG9jZW5jb2Rpbmc9Imlzby04ODU5LTEiCisgICAgICAgICAgICBib3R0b209IiZsdDtmb250IHNpemU9LTE+Q29weXJpZ2h0IChjKSAxOTk4LTIwMDQgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuJmx0Oy9mb250PiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLSByaWNoZWRpdCBhbHBoYXdvcmtzIGRpc3RyaWJ1dGlvbiAtIGphciBhbmQgZG9jcywgYnV0IG5vIHNvdXJjZSAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9InJpY2hlZGl0WmlwIiBkZXBlbmRzPSJyaWNoZWRpdEphcixyaWNoZWRpdERvY3MiIGRlc2NyaXB0aW9uPSJidWlsZCByaWNoZWRpdCB6aXAgZmlsZSI+CisgICAgICAgIDwhLS1DcmVhdGUgYSB6aXAgYXJjaGl2ZSBvZiB0aGUgcmljaGVkaXQgamFyIGFuZCByZWFkbWUgLS0+CisgICAgICAgIDxjb3B5IGZpbGU9ImxpY2Vuc2UuaHRtbCIgdG9kaXI9IiR7cmljaGVkaXQuZGlyfSIvPgorICAgICAgICA8emlwIHppcGZpbGU9IiR7cmljaGVkaXQuemlwLmZpbGV9IgorICAgICAgICAgICAgYmFzZWRpcj0iJHtyaWNoZWRpdC5kaXJ9IgorICAgICAgICAgICAgaW5jbHVkZXM9ImRvYy8qKi8qLHJpY2hlZGl0LmphcixsaWNlbnNlLmh0bWwiLz4KKyAgICA8L3RhcmdldD4KKyAgICA8dGFyZ2V0IG5hbWU9ImRlbGV0ZUNvcmUiIGRlcGVuZHM9ImluaXQiID4KKyAgICAgICAgPGRlbGV0ZSBmYWlsb25lcnJvcj0ibm8iPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvdGV4dCIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvaW1wbCIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvbWF0aCIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvbGFuZyIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0vY29tL2libS9pY3UvdXRpbCIvPiAgICAgICAgICAgICAgICAgCisgICAgICAgIDwvZGVsZXRlPgorICAgIDwvdGFyZ2V0PgorICAgIDx0YXJnZXQgbmFtZT0iY2hlY2siIGRlcGVuZHM9InRlc3RzLCBqYXIsIGRlbGV0ZUNvcmUiIGRlc2NyaXB0aW9uPSJydW4gc3RhbmRhcmQgaWN1NGogdGVzdCBzdWl0ZSI+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbCIgZm9yaz0ieWVzIiBmYWlsb25lcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8anZtYXJnIHZhbHVlPSItZWEiLz4gIDwhLS0gZW5hYmxlIGFzc2VydGlvbiBjaGVja3MgLS0+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItbiIvPgorICAgICAgICAgICAgPGNsYXNzcGF0aD4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgcGF0aD0iJHtqYXZhLmNsYXNzLnBhdGh9LyIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iaWN1NGouamFyIi8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSJjbG92ZXIuamFyIi8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICAgICAgPC9jbGFzc3BhdGg+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZXhoYXVzdGl2ZUNoZWNrIiBkZXBlbmRzPSJ0ZXN0cywgamFyLCBkZWxldGVDb3JlIiBkZXNjcmlwdGlvbj0icnVuIHN0YW5kYXJkIGljdTRqIHRlc3Qgc3VpdGUgaW4gZXhoYXVzdGl2ZSBtb2RlIj4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsIiBmb3JrPSJ5ZXMiIGZhaWxvbmVycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxqdm1hcmcgdmFsdWU9Ii1lYSIvPiAgPCEtLSBlbmFibGUgYXNzZXJ0aW9uIGNoZWNrcyAtLT4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1uIi8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItZTEwIi8+CisgICAgICAgICAgICA8Y2xhc3NwYXRoPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoPSIke2phdmEuY2xhc3MucGF0aH0vIi8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSJpY3U0ai5qYXIiLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249ImNsb3Zlci5qYXIiLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgcGF0aD0iJHtidWlsZC5kaXJ9Ii8+CisgICAgICAgICAgICA8L2NsYXNzcGF0aD4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorICAgIAorICAgIDx0YXJnZXQgbmFtZT0ic2VjdXJlIiBkZXBlbmRzPSJqYXJUZXN0cyIgZGVzY3JpcHRpb249ImJ1aWxkcyBpY3U0ai5qYXIgYW5kIGljdTRqdGVzdHMuamFyIi8+CisKKyAgICA8dGFyZ2V0IG5hbWU9InNlY3VyZUNoZWNrIiBkZXBlbmRzPSJzZWN1cmUiIGRlc2NyaXB0aW9uPSJydW4gc2VjdXJlIChhcHBsZXQtbGlrZSkgaWN1NGogdGVzdCBzdWl0ZSI+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbCIgZm9yaz0ieWVzIiBmYWlsb25lcnJvcj0idHJ1ZSI+CisgICAgICAgIDwhLS0ganZtYXJnIHZhbHVlPSItdmVyYm9zZSIvIC0tPgorICAgICAgICA8IS0tICh1c2UgZm9yIGRlYnVnZ2luZywgTE9UUyBvZiBvdXRwdXQpIDxqdm1hcmcgdmFsdWU9Ii1EamF2YS5zZWN1cml0eS5kZWJ1Zz1hY2Nlc3M6dHJhY2UiLyAtLT4KKyAgICAgICAgPCEtLSA8anZtYXJnIHZhbHVlPSItRGphdmEuc2VjdXJpdHkuZGVidWc9YWNjZXNzOmZhaWx1cmUsZG9tYWluIi8+IC0tPgorICAgICAgICAgICAgPGp2bWFyZyB2YWx1ZT0iLURqYXZhLnNlY3VyaXR5Lm1hbmFnZXIiLz4KKyAgICAgICAgICAgIDxqdm1hcmcgdmFsdWU9Ii1EamF2YS5zZWN1cml0eS5wb2xpY3k9JHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWN1cml0eS5wb2xpY3kiLz4KKyAgICAgICAgICAgIDwhLS0ganZtYXJnIHZhbHVlPSItRGphdmEuc2VjdXJpdHkuZGVidWc9YWNjZXNzOmZhaWx1cmUiLyAtLT4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii13Ii8+CisgICAgICAgICAgICA8Y2xhc3NwYXRoPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iY2xvdmVyLmphciIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtqYXIuZmlsZX0iLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7dGVzdGphci5maWxlfSIvPgorICAgICAgICAgICAgPC9jbGFzc3BhdGg+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0ibm9EYXRhIiBkZXBlbmRzPSJjb3JlLCB0ZXN0cyIgZGVzY3JpcHRpb249ImJ1aWxkcyBJQ1U0SiB3aXRob3V0IGFueSBkYXRhIj4KKyAgICAgICA8ZGVsZXRlIGZhaWxvbmVycm9yPSJubyI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLmRhdGEucGF0aH0vLi4vIiBpbmNsdWRlcz0iSG9saWRheSouY2xhc3MiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9LyR7aWN1NGouZGF0YS5wYXRofS8uLi8iIGluY2x1ZGVzPSJCcmVha0l0ZXJhdG9yKi5jbGFzcyIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9Ii8+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLnRlc3RkYXRhLnBhdGh9Ii8+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLnRlc3RkYXRhLnBhdGh9Li4vIi8+ICAgICAgICAgICAgICAgICAKKyAgICAgICAgPC9kZWxldGU+CisgICAgPC90YXJnZXQ+CisgICAgPHRhcmdldCBuYW1lPSJub0RhdGFDaGVjayIgZGVwZW5kcz0ibm9EYXRhIiBkZXNjcmlwdGlvbj0icnVucyB0aGUgdGVzdHMgd2hlbiBubyBkYXRhIGlzIHByZXNlbnQiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RBbGwiIGZvcms9InllcyIgZmFpbG9uZXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLW5vdGhyb3ciLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1ub2RhdGEiLz4KKyAgICAgICAgICAgIDxjbGFzc3BhdGg+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSJjbG92ZXIuamFyIi8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgICAgIDwvY2xhc3NwYXRoPgorICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisgICAgPHRhcmdldCBuYW1lPSJfcmVxdWlyZXMxNCIgdW5sZXNzPSJ2ZXJzaW9uLjEuNCI+CisgICAgICAgIDxlY2hvIG1lc3NhZ2U9Ik9uZSBvZiB5b3VyIHRhcmdldHMgcmVxdWlyZXMgSkFWQV9IT01FIHRvIGJlIHNldCB0byBKREsgdmVyc2lvbiAxLjQiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iX2NoZWNrdGFncyIgZGVwZW5kcz0iYW50aGFjazEsYW50aGFjazIsdG9vbHMiIGlmPSJ2ZXJzaW9uLjEuNCI+CisgICAgICAgIDxlY2hvIG1lc3NhZ2U9ImRvYyBwYXJhbXM6ICR7ZG9jLnBhcmFtc30iLz4KKyAgICAgICAgPGphdmFkb2Mgc291cmNlcGF0aD0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIHBhY2thZ2VuYW1lcz0iY29tLmlibS5pY3UuKiIKKyAgICAgICAgICAgIGV4Y2x1ZGVwYWNrYWdlbmFtZXM9ImNvbS5pYm0uaWN1LmRldi4qLGNvbS5pYm0uaWN1LmltcGwuKiIKKyAgICAgICAgICAgIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgc291cmNlPSIxLjQiPgorICAgICAgICAgICAgPGRvY2xldCBuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLkNoZWNrVGFncyIKKyAgICAgICAgICAgICAgICBwYXRoPSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgICAgIDwhLS0gPHBhcmFtIG5hbWU9Ii1zaG9ydCIvPiAtLT4KKyAgICAgICAgICAgIDwvZG9jbGV0PgorICAgICAgICA8L2phdmFkb2M+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNoZWNrdGFncyIgZGVwZW5kcz0iYW50aGFjazEsYW50aGFjazIsX3JlcXVpcmVzMTQsX2NoZWNrdGFncyIgZGVzY3JpcHRpb249ImNoZWNrIEFQSSB0YWdzIGJlZm9yZSByZWxlYXNlIi8+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImdhdGhlcmFwaSIgZGVwZW5kcz0idG9vbHMiIGlmPSJ2ZXJzaW9uLjEuNCIgZGVzY3JpcHRpb249InJ1biBBUEkgZGF0YWJhc2UgZ2VuZXJhdG9yIHRvb2wiPgorICAgICAgICA8amF2YWRvYyBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZXBhdGg9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBwYWNrYWdlbmFtZXM9ImNvbS5pYm0uaWN1LmxhbmcsY29tLmlibS5pY3UubWF0aCxjb20uaWJtLmljdS50ZXh0LGNvbS5pYm0uaWN1LnV0aWwiCisgICAgICAgICAgICBzb3VyY2U9IjEuNCI+CisgICAgICAgICAgICA8ZG9jbGV0IG5hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuR2F0aGVyQVBJRGF0YSIKKyAgICAgICAgICAgICAgICBwYXRoPSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSItbmFtZSIgdmFsdWU9IklDVTRKIDMuNC41Ii8+CisgICAgICAgICAgICAgICAgPHBhcmFtIG5hbWU9Ii1vdXRwdXQiIHZhbHVlPSIke2FwaS5kaXJ9L2ljdTRqMzQ1LmFwaSIvPgorICAgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSItZ3ppcCIvPgorICAgICAgICAgICAgPC9kb2NsZXQ+CisgICAgICAgIDwvamF2YWRvYz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iYXBpcmVwb3J0IiBkZXBlbmRzPSJ0b29scyIgaWY9InZlcnNpb24uMS40IiBkZXNjcmlwdGlvbj0icnVuIEFQSSByZXBvcnQgZ2VuZXJhdG9yIHRvb2wiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuUmVwb3J0QVBJIiBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIgZmFpbG9uZXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLW9sZDoiLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9IiR7YXBpLmRpcn0vaWN1NGozNDMuYXBpLmd6Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItbmV3OiIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHthcGkuZGlyfS9pY3U0ajM0NS5hcGkuZ3oiLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1odG1sIi8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItb3V0OiIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHthcGkuZGlyfS9pY3U0al9jb21wYXJlXzM0M18zNDUuaHRtbCIvPgorICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNsZWFuIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0icmVtb3ZlIGFsbCBidWlsZCB0YXJnZXRzIj4KKyAgICAgICAgPGRlbGV0ZSBkaXI9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICA8ZGVsZXRlIGRpcj0iJHtkb2MuZGlyfSIvPgorICAgICAgICA8ZGVsZXRlIGZpbGU9IiR7amFyLmZpbGV9Ii8+CisgICAgICAgIDxkZWxldGUgZGlyPSIke3JpY2hlZGl0LmRpcn0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke3Rlc3RqYXIuZmlsZX0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke2phclNyYy5maWxlfSIvPgorCisgICAgICAgIDxkZWxldGUgZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfSIvPgorICAgICAgICA8ZGVsZXRlIGRpcj0iJHt3cmFwcGVyLmJ1aWxkLmRpcn0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke3ppcENvcmVTcmMuZmlsZX0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke3ppcFRlc3RTcmMuZmlsZX0iLz4KKyAgICAgICAgPGRlbGV0ZSBmaWxlPSIke2pkay53cmFwcGVyLmphci5maWxlfSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLQorICAgICAgICBUYXJnZXRzIHRvIGNvcHkgdGhlIHJlcXVpcmVkICouaWN1IGZpbGVzCisgICAgIC0tPgorICAgIDx0YXJnZXQgbmFtZT0ibm9ybWFsaXplckRhdGEiIGRlcGVuZHM9ImluaXQiID4KKyAgICAgICAgPHVuamFyIHNyYz0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIiIGRlc3Q9IiR7YnVpbGQuZGlyfSI+CisgICAgICAgICAgICA8cGF0dGVybnNldD4KKyAgICAgICAgICAgICAgICA8IS0tIGFycmdoLCBpbmNsdWRlcyBhdHRyaWJ1dGVzIG9mIHBhdHRlcm5zZXQgZG9lcyBub3Qgd29yayBoZXJlIGluIGFudCAxLjUuMyAtLT4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bm9ybS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91cHJvcHMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovcG5hbWVzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3VuYW1lcy5pY3UiLz4KKyAgICAgICAgICAgIDwvcGF0dGVybnNldD4KKyAgICAgICAgPC91bmphcj4KKyAgICAgICAgPHRvdWNoIGZpbGU9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLmRhdGEucGF0aH0vdXByb3BzLmljdSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJjb3B5RnVsbFByb3BzRGF0YSIgZGVwZW5kcz0iaW5pdCIgPgorICAgICAgICA8dW5qYXIgc3JjPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkYXRhLmphciIgZGVzdD0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgIDxwYXR0ZXJuc2V0PgorICAgICAgICAgICAgICAgIDwhLS0gYXJyZ2gsIGluY2x1ZGVzIGF0dHJpYnV0ZXMgb2YgcGF0dGVybnNldCBkb2VzIG5vdCB3b3JrIGhlcmUgaW4gYW50IDEuNS4zIC0tPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3Vub3JtLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3Vwcm9wcy5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91YmlkaS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91Y2FzZS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bmFtZXMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovcG5hbWVzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqLyoucmVzIi8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5icmsiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9jb2xsLyoucmVzIi8+CisgICAgICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovdHJhbnNsaXQvKi5yZXMiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9yYm5mLyoucmVzIi8+CisgICAgICAgICAgICA8L3BhdHRlcm5zZXQ+CisgICAgICAgIDwvdW5qYXI+CisgICAgICAgIDx0b3VjaCBmaWxlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L3Vwcm9wcy5pY3UiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iY29weUJhc2ljUHJvcHNEYXRhIiBkZXBlbmRzPSJpbml0IiA+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPHBhdHRlcm5zZXQ+CisgICAgICAgICAgICAgICAgPCEtLSBhcnJnaCwgaW5jbHVkZXMgYXR0cmlidXRlcyBvZiBwYXR0ZXJuc2V0IGRvZXMgbm90IHdvcmsgaGVyZSBpbiBhbnQgMS41LjMgLS0+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdW5vcm0uaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdXByb3BzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3ViaWRpLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3VjYXNlLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3BuYW1lcy5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bmFtZXMuaWN1Ii8+CisgICAgICAgICAgICA8L3BhdHRlcm5zZXQ+CisgICAgICAgIDwvdW5qYXI+CisgICAgICAgIDx0b3VjaCBmaWxlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L3Vwcm9wcy5pY3UiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iY29weUNvbGxhdG9yRGF0YSIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPHBhdHRlcm5zZXQ+CisgICAgICAgICAgICAgICAgPCEtLSBhcnJnaCwgaW5jbHVkZXMgYXR0cmlidXRlcyBvZiBwYXR0ZXJuc2V0IGRvZXMgbm90IHdvcmsgaGVyZSBpbiBhbnQgMS41LjMgLS0+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi9jb2xsLyoucmVzIi8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5icmsiLz4KKyAgICAgICAgICAgIDwvcGF0dGVybnNldD4KKyAgICAgICAgPC91bmphcj4KKyAgICAgICAgPHRvdWNoIGZpbGU9IiR7YnVpbGQuZGlyfS8ke2ljdTRqLmRhdGEucGF0aH0vdXByb3BzLmljdSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJjb3B5Q2FsZW5kYXJEYXRhIiBkZXBlbmRzPSJpbml0Ij4KKyAgICAgICAgPCEtLSBDYWxlbmRhciBkb2VzIG5vdCByZXF1aXJlIENvbGxhdGlvbiBkYXRhLCBCcmVha0l0ZXJhdG9yIGRhdGEgLS0+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPHBhdHRlcm5zZXQ+CisgICAgICAgICAgICAgICAgPCEtLSBhcnJnaCwgaW5jbHVkZXMgYXR0cmlidXRlcyBvZiBwYXR0ZXJuc2V0IGRvZXMgbm90IHdvcmsgaGVyZSBpbiBhbnQgMS41LjMgLS0+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdW5vcm0uaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdXByb3BzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3BuYW1lcy5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bmFtZXMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5yZXMiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9jb2xsLyoucmVzIi8+CisgICAgICAgICAgICAgICAgPGV4Y2x1ZGUgbmFtZT0iKiovdHJhbnNsaXQvKi5yZXMiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi9yYm5mLyoucmVzIi8+CisgICAgICAgICAgICA8L3BhdHRlcm5zZXQ+CisgICAgICAgIDwvdW5qYXI+CisgICAgICAgIDx0b3VjaCBmaWxlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L3Vwcm9wcy5pY3UiLz4KKyAgICA8L3RhcmdldD4KKyAgICA8dGFyZ2V0IG5hbWU9ImNvcHlUcmFuc2xpdERhdGEiIGRlcGVuZHM9ImluaXQiPgorICAgICAgICA8IS0tIENhbGVuZGFyIGRvZXMgbm90IHJlcXVpcmUgQ29sbGF0aW9uIGRhdGEsIEJyZWFrSXRlcmF0b3IgZGF0YSAtLT4KKyAgICAgICAgPHVuamFyIHNyYz0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIiIGRlc3Q9IiR7YnVpbGQuZGlyfSI+CisgICAgICAgICAgICA8cGF0dGVybnNldD4KKyAgICAgICAgICAgICAgICA8IS0tIGFycmdoLCBpbmNsdWRlcyBhdHRyaWJ1dGVzIG9mIHBhdHRlcm5zZXQgZG9lcyBub3Qgd29yayBoZXJlIGluIGFudCAxLjUuMyAtLT4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bm9ybS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91cHJvcHMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdWJpZGkuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdWNhc2UuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovdW5hbWVzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3BuYW1lcy5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi8qLmJyayIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3RyYW5zbGl0LyoucmVzIi8+CisgICAgICAgICAgICA8L3BhdHRlcm5zZXQ+CisgICAgICAgIDwvdW5qYXI+CisgICAgICAgIDx0b3VjaCBmaWxlPSIke2J1aWxkLmRpcn0vJHtpY3U0ai5kYXRhLnBhdGh9L3Vwcm9wcy5pY3UiLz4KKyAgICA8L3RhcmdldD4KKyAgICAKKyAgICA8dGFyZ2V0IG5hbWU9ImNvcHlGb3JtYXREYXRhIiBkZXBlbmRzPSJpbml0IiBpZj0iaWN1NGoubW9kdWxlLnJlc291cmNlcyI+CisgICAgICAgIDwhLS0gRm9ybWF0IGRvZXMgbm90IHJlcXVpcmUgQnJlYWtJdGVyYXRvciBkYXRhIC0tPgorICAgICAgICA8dW5qYXIgc3JjPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkYXRhLmphciIgZGVzdD0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgIDxwYXR0ZXJuc2V0PgorICAgICAgICAgICAgICAgIDwhLS0gYXJyZ2gsIGluY2x1ZGVzIGF0dHJpYnV0ZXMgb2YgcGF0dGVybnNldCBkb2VzIG5vdCB3b3JrIGhlcmUgaW4gYW50IDEuNS4zIC0tPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqLyouaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5yZXMiLz4KKyAgICAgICAgICAgICAgICA8ZXhjbHVkZSBuYW1lPSIqKi90cmFuc2xpdC8qLnJlcyIvPgorICAgICAgICAgICAgPC9wYXR0ZXJuc2V0PgorICAgICAgICA8L3VuamFyPgorICAgICAgICA8dG91Y2ggZmlsZT0iJHtidWlsZC5kaXJ9LyR7aWN1NGouZGF0YS5wYXRofS91cHJvcHMuaWN1Ii8+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPHRhcmdldCBuYW1lPSJjb3B5QWxsSUNVRGF0YSIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0ibW9kdWxlSmFyIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0ibW9kdWxhciBidWlsZCBvZiAnaWN1NGouamFyJyBqYXIgZmlsZSI+CisgICAgICAgIDxqYXIgamFyZmlsZT0iJHtqYXIuZmlsZX0iCisgICAgICAgICAgICBjb21wcmVzcz0idHJ1ZSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS91dGlsLyoqLyosY29tL2libS9pY3UvdGV4dC8qKi8qLGNvbS9pYm0vaWN1L21hdGgvKiovKixjb20vaWJtL2ljdS9pbXBsLyoqLyosY29tL2libS9pY3UvbGFuZy8qKi8qIgorICAgICAgICAgICAgYmFzZWRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgbWFuaWZlc3Q9IiR7aWN1NGoubW9kdWxlLm1hbmlmZXN0fSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLQorICAgICAgICAgVGFyZ2V0cyB0byBidWlsZCBvbmx5IE5vcm1hbGl6YXRpb24gQVBJIGFuZCBOb3JtYWxpemF0aW9uIHRlc3RzCisgICAgIC0tPgorCisgICAgPHRhcmdldCBuYW1lPSJub3JtYWxpemVyIiBkZXBlbmRzPSJpbml0LG5vcm1hbGl6ZXJEYXRhIiBkZXNjcmlwdGlvbj0ibW9kdWxhciBidWlsZCBvZiBub3JtYWxpemVyIHNlcnZpY2VzIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS90ZXh0L05vcm1hbGl6ZXIuamF2YSxjb20vaWJtL2ljdS90ZXh0L0Nhbm9uaWNhbEl0ZXJhdG9yLmphdmEsY29tL2libS9pY3UvdGV4dC9VVEYxNi5qYXZhLGNvbS9pYm0vaWN1L3RleHQvVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEsY29tL2libS9pY3UvdGV4dC9VRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLmphdmEsY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZS5qYXZhLGNvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGVTdHJpbmcuamF2YSxjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVGaWx0ZXIuamF2YSxjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXRJdGVyYXRvci5qYXZhLGNvbS9pYm0vaWN1L2xhbmcvKiovKiIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKixjb20vaWJtL2ljdS9sYW5nL1VTY3JpcHRSdW4uamF2YSwgY29tL2libS9pY3UvaW1wbC9JQ1VMaXN0UmVzb3VyY2VCdW5kbGUuamF2YSwgY29tL2libS9pY3UvaW1wbC9VdGlsaXR5RXh0ZW5zaW9ucy5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvVHJpZUJ1aWxkZXIuamF2YSxjb20vaWJtL2ljdS9pbXBsL0ludFRyaWVCdWlsZGVyLmphdmEsY29tL2libS9pY3UvaW1wbC9CT0NVLmphdmEsY29tL2libS9pY3UvaW1wbC9Vbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IuamF2YSIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJub3JtYWxpemVyVGVzdHMiIGRlcGVuZHM9Im5vcm1hbGl6ZXIiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZy5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvKiovKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qLGNvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvVGVzdERlcHJlY2F0ZWROb3JtYWxpemVyQVBJLmphdmEiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0KKyAgICAgICAgICAgIFRhcmdldHMgdG8gYnVpbGQgb25seSBDb2xsYXRpb24gQVBJIGFuZCBDb2xsYXRpb24gdGVzdHMKKyAgICAgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNvbGxhdG9yIiBkZXBlbmRzPSJpbml0LGNvcHlDb2xsYXRvckRhdGEiIGRlc2NyaXB0aW9uPSJtb2R1bGFyIGJ1aWxkIG9mIGNvbGxhdG9yIHNlcnZpY2VzIj4KKyAgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvdGV4dC8qQ29sbGF0b3IqLmphdmEsY29tL2libS9pY3UvdGV4dC8qQ29sbGF0aW9uKi5qYXZhLGNvbS9pYm0vaWN1L3RleHQvKkJyZWFrSXRlcmF0b3IqLmphdmEsY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemVyLmphdmEsY29tL2libS9pY3UvdGV4dC9VVEYxNi5qYXZhLGNvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGUuamF2YSxjb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlU3RyaW5nLmphdmEsY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRmlsdGVyLmphdmEsY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0SXRlcmF0b3IuamF2YSwgY29tL2libS9pY3UvaW1wbC9kYXRhLypCcmVhayouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiwgY29tL2libS9pY3UvbGFuZy9VU2NyaXB0UnVuLmphdmEsY29tL2libS9pY3UvaW1wbC9VdGlsaXR5RXh0ZW5zaW9ucy5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iY29sbGF0b3JUZXN0cyIgZGVwZW5kcz0iY29sbGF0b3IiIGRlc2NyaXB0aW9uPSJ0ZXN0IGNvbGxhdG9yIG1vZHVsYXIgYnVpbGQgdGFyZ2V0Ij4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0VXRpbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1VURjE2VXRpbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci8qKi8qLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VhcmNoLyoqLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiwgY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvUmFuZG9tQ29sbGF0b3IuamF2YSIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLQorICAgICAgICAgICAgVGFyZ2V0cyB0byBidWlsZCBvbmx5IENoYXJhY3RlciBwcm9wZXJ0aWVzIEFQSSBhbmQgdGVzdHMKKyAgICAgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9InByb3BlcnRpZXNCYXNpYyIgZGVwZW5kcz0iaW5pdCwgcHJvcGVydGllc0NsYXNzZXMsIGNvcHlCYXNpY1Byb3BzRGF0YSIgZGVzY3JpcHRpb249Im1vZHVsYXIgYnVpbGQgb2YgYmFzaWMgY2hhcmFjdGVyIHByb3BlcnRpZXMiPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJwcm9wZXJ0aWVzRnVsbCIgZGVwZW5kcz0iaW5pdCxwcm9wZXJ0aWVzQ2xhc3Nlcyxjb3B5RnVsbFByb3BzRGF0YSIgZGVzY3JpcHRpb249Im1vZHVsYXIgYnVpbGQgb2YgZnVsbCBjaGFyYWN0ZXIgcHJvcGVydGllcyI+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPHRhcmdldCBuYW1lPSJwcm9wZXJ0aWVzQ2xhc3NlcyI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvbGFuZy8qKi8qLCBjb20vaWJtL2ljdS90ZXh0LypCcmVha0l0ZXJhdG9yKi5qYXZhLGNvbS9pYm0vaWN1L3RleHQvKkJyZWFrRGljdGlvbmFyeSouamF2YSxjb20vaWJtL2ljdS9pbXBsL2RhdGEvKkJyZWFrKi5qYXZhLGNvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldEl0ZXJhdG9yLmphdmEsIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qLGNvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eUV4dGVuc2lvbnMuamF2YSIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorICAgIDx0YXJnZXQgbmFtZT0icHJvcGVydGllc0Jhc2ljVGVzdHMiIGRlcGVuZHM9InByb3BlcnRpZXNCYXNpYyIgZGVzY3JpcHRpb249InRlc3QgcHJvcGVydGllc0Jhc2ljIG1vZHVsYXIgYnVpbGQgdGFyZ2V0Ij4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1NwZWNpYWxDYXNpbmcudHh0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlLyIvPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZy5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvKiovKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qLGNvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdFVTY3JpcHRSdW4uamF2YSIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJwcm9wZXJ0aWVzRnVsbFRlc3RzIiBkZXBlbmRzPSJwcm9wZXJ0aWVzRnVsbCIgZGVzY3JpcHRpb249InRlc3QgcHJvcGVydGllc0Z1bGwgbW9kdWxhciBidWlsZCB0YXJnZXQiPgorICAgICAgICA8Y29weSBmaWxlPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvU3BlY2lhbENhc2luZy50eHQiCisgICAgICAgICAgICB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvIi8+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2suamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdFV0aWwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9VVEYxNlV0aWwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0QWxsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyosY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0VVNjcmlwdFJ1bi5qYXZhIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPCEtLQorICAgICAgICAgICAgVGFyZ2V0cyB0byBidWlsZCBvbmx5IENvbXByZXNzaW9uIEFQSSBBUEkgYW5kIHRlc3RzCisgICAgIC0tPgorICAgIDx0YXJnZXQgbmFtZT0iY29tcHJlc3Npb24iIGRlcGVuZHM9ImluaXQiIGRlc2NyaXB0aW9uPSJtb2R1bGFyIGJ1aWxkIG9mIGNvbXByZXNzaW9uIHNlcnZpY2VzIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS90ZXh0L1NDU1UuamF2YSwgY29tL2libS9pY3UvdGV4dC9Vbmljb2RlQ29tcHJlc3Nvci5qYXZhLCBjb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVEZWNvbXByZXNzb3IuamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJjb21wcmVzc2lvblRlc3RzIiBkZXBlbmRzPSJjb21wcmVzc2lvbiIgZGVzY3JpcHRpb249InRlc3QgY29tcHJlc3Npb24gbW9kdWxhciBidWlsZCB0YXJnZXQiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZy5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uLyoqLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLQorICAgICAgICAgICAgVGFyZ2V0cyB0byBidWlsZCBvbmx5IENhbGVuZGFyIEFQSSBhbmQgQ2FsZW5kYXIgdGVzdHMKKyAgICAgLS0+CisgICAgPHRhcmdldCBuYW1lPSJjYWxlbmRhciIgZGVwZW5kcz0iaW5pdCxjb3B5Q2FsZW5kYXJEYXRhIiBkZXNjcmlwdGlvbj0ibW9kdWxhciBidWlsZCBvZiBjYWxlbmRhciBzZXJ2aWNlcyI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvdXRpbC8qQ2FsZW5kYXIqLmphdmEsY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyLmphdmEsY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0SXRlcmF0b3IuamF2YSxjb20vaWJtL2ljdS90ZXh0L051bWJlckZvcm1hdCpTaGltLmphdmEsY29tL2libS9pY3UvaW1wbC9kYXRhLypDYWxlbmRhciouamF2YSxjb20vaWJtL2ljdS9pbXBsL2RhdGEvKkhvbGlkYXkqLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyosIGNvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdFJ1bi5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eUV4dGVuc2lvbnMuamF2YSxjb20vaWJtL2ljdS9pbXBsL0JPQ1UuamF2YSxjb20vaWJtL2ljdS9pbXBsL1RyaWVCdWlsZGVyLmphdmEsY29tL2libS9pY3UvaW1wbC9JbnRUcmllQnVpbGRlci5qYXZhIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNhbGVuZGFyVGVzdHMiIGRlcGVuZHM9ImNhbGVuZGFyIiBkZXNjcmlwdGlvbj0idGVzdCBjYWxlbmRhciBtb2R1bGFyIGJ1aWxkIHRhcmdldCI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2suamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdFV0aWwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9VVEYxNlV0aWwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0QWxsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvKiovKiIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLQorICAgICAgICAgICAgVGFyZ2V0cyB0byBidWlsZCBvbmx5IFRyYW5zbGl0ZXJhdG9yIEFQSSBhbmQgIHRlc3RzCisgICAgIC0tPgorCisgICAgPHRhcmdldCBuYW1lPSJ0cmFuc2xpdGVyYXRvciIgZGVwZW5kcz0iaW5pdCxwcm9wZXJ0aWVzQ2xhc3Nlcyxjb3B5VHJhbnNsaXREYXRhIiBkZXNjcmlwdGlvbj0ibW9kdWxhciBidWlsZCBvZiB1bmljb2RlIHRyYW5zZm9ybSBzZXJ2aWNlcyI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvdGV4dC8qVHJhbnNsaXRlcmF0b3IqLmphdmEsY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0SXRlcmF0b3IuamF2YSxjb20vaWJtL2ljdS9pbXBsLypQcm9wZXJ0eSouamF2YSxjb20vaWJtL2ljdS9pbXBsLypJdGVyYXRvciouamF2YSxjb20vaWJtL2ljdS9pbXBsL2RhdGEvUmVzb3VyY2VSZWFkZXIuamF2YSxjb20vaWJtL2ljdS9pbXBsL1V0aWxpdHlFeHRlbnNpb25zLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyosIGNvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdFJ1bi5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvQk9DVS5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvVHJpZUJ1aWxkZXIuamF2YSxjb20vaWJtL2ljdS9pbXBsL0ludFRyaWVCdWlsZGVyLmphdmEsY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRmlsdGVyTG9naWMqLmphdmEiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0idHJhbnNsaXRlcmF0b3JUZXN0cyIgZGVwZW5kcz0idHJhbnNsaXRlcmF0b3IiIGRlc2NyaXB0aW9uID0gInRlc3QgdHJhbnNsaXRlcmF0b3IgbW9kdWxhciBidWlsZCB0YXJnZXQiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZy5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0LyoqLyoiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyosY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvVW5pY29kZUZpbHRlckxvZ2ljKi5qYXZhIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tCisgICAgICAgICAgICBUYXJnZXRzIHRvIGJ1aWxkIG9ubHkgRm9ybWF0IEFQSQorICAgICAtLT4KKworICAgIDx0YXJnZXQgbmFtZT0iZm9ybWF0IiBkZXBlbmRzPSJpbml0LGNvcHlGb3JtYXREYXRhIiBkZXNjcmlwdGlvbj0ibW9kdWxhciBidWlsZCBvZiBmb3JtYXR0aW5nIHNlcnZpY2VzIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS90ZXh0LypGb3JtYXQqLmphdmEsY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyLmphdmEsY29tL2libS9pY3UvdGV4dC8qQ29sbGF0b3IqLmphdmEsY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0SXRlcmF0b3IuamF2YSxjb20vaWJtL2ljdS9pbXBsL2RhdGEvQ2FsZW5kYXJEYXRhKi5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qLCBjb20vaWJtL2ljdS9sYW5nL1VTY3JpcHRSdW4uamF2YSxjb20vaWJtL2ljdS9pbXBsL1V0aWxpdHlFeHRlbnNpb25zLmphdmEsY29tL2libS9pY3UvaW1wbC9CT0NVLmphdmEsY29tL2libS9pY3UvaW1wbC9UcmllQnVpbGRlci5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvSW50VHJpZUJ1aWxkZXIuamF2YSIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIGRlYnVnPSJvbiIgZGVwcmVjYXRpb249Im9mZiIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJmb3JtYXRUZXN0cyIgZGVwZW5kcz0iZm9ybWF0IiBkZXNjcmlwdGlvbj0idGVzdCBmb3JtYXQgbW9kdWxhciBidWlsZCB0YXJnZXQiPgorICAgICAgICA8amF2YWMgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZy5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC8qKi8qIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFRlc3RDYXNlcy50eHQiCisgICAgICAgICAgICB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdCIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLQorICAgICAgICAgICAgVGFyZ2V0cyB0byBidWlsZCBvbmx5IEJyZWFrSXRlcmF0b3IgQVBJCisgICAgIC0tPgorCisgICAgPHRhcmdldCBuYW1lPSJicmVha0l0ZXJhdG9yIiBkZXBlbmRzPSJpbml0LGNvcHlGdWxsUHJvcHNEYXRhIiBkZXNjcmlwdGlvbj0ibW9kdWxhciBidWlsZCBvZiBicmVhayBpdGVyYXRvciBzZXJ2aWNlcyI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvdGV4dC8qQnJlYWtJdGVyYXRvciouamF2YSxjb20vaWJtL2ljdS9pbXBsL2RhdGEvKkJyZWFrKi5qYXZhLGNvbS9pYm0vaWN1L2xhbmcvKiovKixjb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJOYW1lLmphdmEsY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0SXRlcmF0b3IuamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiwgY29tL2libS9pY3UvbGFuZy9VU2NyaXB0UnVuLmphdmEsY29tL2libS9pY3UvaW1wbC9VdGlsaXR5RXh0ZW5zaW9ucy5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvQk9DVS5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvVHJpZUJ1aWxkZXIuamF2YSxjb20vaWJtL2ljdS9pbXBsL0ludFRyaWVCdWlsZGVyLmphdmEiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICAgICAgICAgIDxjb3B5IGZpbGU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL3RoLmJyayIKKyAgICAgICAgICAgICAgICB0b2Rpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YS8iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iYnJlYWtJdGVyYXRvclRlc3RzIiBkZXBlbmRzPSJicmVha0l0ZXJhdG9yIiBkZXNjcmlwdGlvbj0idGVzdCBicmVha0l0ZXJhdG9yIG1vZHVsYXIgYnVpbGQgdGFyZ2V0Ij4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0VXRpbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1VURjE2VXRpbC5qYXZhLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpLyoqLyoiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL3JiYml0c3QudHh0IgorICAgICAgICAgICAgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpIi8+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPCEtLQorICAgICAgICAgICAgVGFyZ2V0cyB0byBidWlsZCBvbmx5IFN0cmluZ1ByZXAgYW5kIElETkEgQVBJCisgICAgIC0tPiAgICAKKyAgICA8dGFyZ2V0IG5hbWU9ImNvcHlTdHJpbmdQcmVwRGF0YSIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPHBhdHRlcm5zZXQ+CisgICAgICAgICAgICAgICAgPCEtLSBhcnJnaCwgaW5jbHVkZXMgYXR0cmlidXRlcyBvZiBwYXR0ZXJuc2V0IGRvZXMgbm90IHdvcmsgaGVyZSBpbiBhbnQgMS41LjMgLS0+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5zcHAiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91YmlkaS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91Y2FzZS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91bm9ybS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi91cHJvcHMuaWN1Ii8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovcG5hbWVzLmljdSIvPgorICAgICAgICAgICAgICAgIDxpbmNsdWRlIG5hbWU9IioqL3VuYW1lcy5pY3UiLz4KKyAgICAgICAgICAgIDwvcGF0dGVybnNldD4KKyAgICAgICAgPC91bmphcj4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0ic3RyaW5nUHJlcCIgZGVwZW5kcz0iaW5pdCxub3JtYWxpemVyLGNvcHlTdHJpbmdQcmVwRGF0YSIgZGVzY3JpcHRpb249Im1vZHVsYXIgYnVpbGQgb2Ygc3RyaW5ncHJlcCBzZXJ2aWNlcyI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvdGV4dC8qU3RyaW5nUHJlcCouamF2YSxjb20vaWJtL2ljdS90ZXh0LypJRE5BKi5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvKlN0cmluZ1ByZXAqLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyosIGNvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdFJ1bi5qYXZhLGNvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eUV4dGVuc2lvbnMuamF2YSxjb20vaWJtL2ljdS9pbXBsL0JPQ1UuamF2YSxjb20vaWJtL2ljdS9pbXBsL1RyaWVCdWlsZGVyLmphdmEsY29tL2libS9pY3UvaW1wbC9JbnRUcmllQnVpbGRlci5qYXZhLCBjb20vaWJtL2ljdS9pbXBsL0NhbGVuZGFyKi5qYXZhIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgc291cmNlPSIke2ljdTRqLmphdmFjLnNvdXJjZX0iCisgICAgICAgICAgICB0YXJnZXQ9IiR7aWN1NGouamF2YWMudGFyZ2V0fSIKKyAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0iYnVpbGQuY2xhc3NwYXRoIgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9InN0cmluZ1ByZXBUZXN0cyIgZGVwZW5kcz0ic3RyaW5nUHJlcCIgZGVzY3JpcHRpb249InRlc3Qgc3RyaW5nUHJlcCBtb2R1bGFyIGJ1aWxkIHRhcmdldCI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2suamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdFV0aWwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9VVEYxNlV0aWwuamF2YSxjb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0QWxsLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC8qKi8qIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgICAgIDx1bmphciBzcmM9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEuamFyIiBkZXN0PSIke2J1aWxkLmRpcn0iPgorICAgICAgICAgICAgPHBhdHRlcm5zZXQ+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5zcHAiLz4KKyAgICAgICAgICAgICAgICA8aW5jbHVkZSBuYW1lPSIqKi9pZG5hX3J1bGVzLnJlcyIvPgorICAgICAgICAgICAgPC9wYXR0ZXJuc2V0PgorICAgICAgICA8L3VuamFyPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJtb2R1bGVDaGVjayIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249InJ1biB0ZXN0cyBmb3IgbW9kdWxlIGphciI+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbCIgZm9yaz0ieWVzIiBmYWlsb25lcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItbm90aHJvdyIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLW5vZGF0YSIvPgorICAgICAgICAgICAgPGNsYXNzcGF0aD4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICAgICAgPC9jbGFzc3BhdGg+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKyAgICAKKyAgICA8IS0tIGJ1aWxkIHRoZSBleHRyYSBUcmFuc2xpdGVyYXRvciBkYXRhIHBlcnRhaW5pbmcgdG8gSGFuLUxhdGluIHRyYW5zbGl0ZXJhdGlvbiAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9ImV4dHJhVHJhbnNsaXRlcmF0b3JEYXRhIiBkZXBlbmRzPSJpbml0IiBkZXNjcmlwdGlvbj0iYnVpbGQgaGFuLXRvLWxhdGluIHRyYW5zbGl0ZXJhdG9yIGRhdGEgKG5vcm1hbGx5IG9taXR0ZWQpIj4KKyAgICAgICAgPGNvcHkgdG9kaXI9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9pbXBsL2RhdGEiPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke3NyYy5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YSIgaW5jbHVkZXM9IlRyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbl8qLnR4dCIvPgorICAgICAgICA8L2NvcHk+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tIFRhcmdldCBmb3IgYnVpbGluZyBYTElGRjJJQ1VDb252ZXJ0ZXIgSmFyIC0tPgorCisgICAgPHRhcmdldCBuYW1lPSJ4bGlmZiIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249ImJ1aWxkIHhsaWZmIGNvbnZlcnRlciB0b29sIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvWExJRkYySUNVQ29udmVydGVyLmphdmEsY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NhbGN1bGF0ZUNSQzMyLmphdmEsY29tL2libS9pY3UvZGV2L3Rvb2wvVU9wdGlvbi5qYXZhLGNvbS9pYm0vaWN1L2Rldi90b29sL3htbGNvbXBhcmF0b3IvWE1MVmFsaWRhdG9yLmphdmEiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBjbGFzc3BhdGhyZWY9ImJ1aWxkLmNsYXNzcGF0aCIKKyAgICAgICAgICAgIHNvdXJjZT0iJHtpY3U0ai5qYXZhYy5zb3VyY2V9IgorICAgICAgICAgICAgdGFyZ2V0PSIke2ljdTRqLmphdmFjLnRhcmdldH0iCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICAgICAgPGphciBqYXJmaWxlPSJ4bGlmZi5qYXIiCisgICAgICAgICAgICBjb21wcmVzcz0idHJ1ZSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvWExJRkYySUNVQ29udmVydGVyKi5jbGFzcyxjb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ2FsY3VsYXRlQ1JDMzIuY2xhc3MsY29tL2libS9pY3UvZGV2L3Rvb2wvVU9wdGlvbi5jbGFzcyIKKyAgICAgICAgICAgIGJhc2VkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgIG1hbmlmZXN0PSIke2ljdTRqLm1vZHVsZS5tYW5pZmVzdH0iLz4KKyAgICAgICAgPGphciBqYXJmaWxlPSJ4bGlmZi1zcmMuamFyIgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1hMSUZGMklDVUNvbnZlcnRlci5qYXZhLGNvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9DYWxjdWxhdGVDUkMzMi5qYXZhLGNvbS9pYm0vaWN1L2Rldi90b29sL1VPcHRpb24uamF2YSIKKyAgICAgICAgICAgIGJhc2VkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBtYW5pZmVzdD0iJHtpY3U0ai5tb2R1bGUubWFuaWZlc3R9Ii8+CisgICAgIDwvdGFyZ2V0PgorICAgICAKKyAgICA8IS0tIFRhcmdldCBmb3IgYnVpbGluZyBVdGlsaXRpZXMgSmFyIGZvciBDTERSIC0tPgorCisgICAgPHRhcmdldCBuYW1lPSJjbGRyVXRpbCIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249ImJ1aWxkIFV0aWxpdGllcyBmb3IgQ0xEUiI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC8qLmphdmEsY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2suamF2YSxjb20vaWJtL2ljdS9kZXYvdG9vbC9VT3B0aW9uLmphdmEiCisgICAgICAgICAgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBkZWJ1Zz0ib24iIGRlcHJlY2F0aW9uPSJvZmYiLz4KKyAgICAgICAgPGphciBqYXJmaWxlPSJ1dGlsaXRpZXMuamFyIgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC8qLmNsYXNzLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrKi5jbGFzcyxjb20vaWJtL2ljdS9kZXYvdGVzdC9BYnN0cmFjdFRlc3QqLmNsYXNzLGNvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cqLmNsYXNzLGNvbS9pYm0vaWN1L2Rldi90b29sL1VPcHRpb24qLmNsYXNzIgorICAgICAgICAgICAgYmFzZWRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgbWFuaWZlc3Q9IiR7Y2xkci51dGlsLm1hbmlmZXN0fSIvPgorICAgICA8L3RhcmdldD4KKyAgICAgPCEtLVRhcmdldCBmb3IgYnVpbGRpbmcgamFycyAtLT4KKyAgICAgPHRhcmdldCBuYW1lPSJkaXN0SmFycyIgZGVwZW5kcz0iamFyU3JjLCBqYXIsIGphckRvY3MiIC8+ICAgCisgICAgIAorICAgICA8IS0tIFRhcmdldCBmb3IgY2hlY2tpbmcgdGhlIGxvYWRpbmcgb2YgYnVuZGxlcyBmcm9tIHRoZSBkZWZhdWx0IHBhY2thZ2UuCisgICAgICAgICAgVGhpcyBpcyBoYWNrIHRvIGdldCBhcm91bmQgRWNsaXBzZSdzIGJ1aWxkIHByb2JsZW1zLiAKKyAgICAgLS0+CisgICAgPHRhcmdldCBuYW1lPSJkZWZhdWx0UGFja2FnZSIgZGVwZW5kcz0idGVzdHMiIGRlc2NyaXB0aW9uPSJUZXN0cyBmb3IgbG9hZGluZyByZXNvdXJjZXMgaW4gdGhlIGRlZmF1bHQgcGFja2FnZSI+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7c3JjLmRpcn0vY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0RGVmYXVsdFBhY2thZ2VMb2FkaW5nLmpwcCIKKyAgICAgICAgICAgIHRvZmlsZT0iJHtzcmMuZGlyfS9UZXN0RGVmYXVsdFBhY2thZ2VMb2FkaW5nLmphdmEiLz4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3REYXRhX2VuLmpwcCIKKyAgICAgICAgICAgIHRvZmlsZT0iJHtzcmMuZGlyfS9UZXN0RGF0YV9lbi5qYXZhIi8+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iVGVzdERhdGFfZW4uamF2YSwgVGVzdERlZmF1bHRQYWNrYWdlTG9hZGluZy5qYXZhIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBzb3VyY2U9IiR7aWN1NGouamF2YWMuc291cmNlfSIKKyAgICAgICAgICAgIHRhcmdldD0iJHtpY3U0ai5qYXZhYy50YXJnZXR9IgorICAgICAgICAgICAgZGVidWc9Im9uIiBkZXByZWNhdGlvbj0ib2ZmIi8+CisgICAgICAgIDwhLS0gY29weSB0aGUgZmlsZSB0byBkZWZhdWx0IHBhY2thZ2UgYW5kIHRlc3QgaWYgd2UgY2FuIGxvYWQgaXQgLS0+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS90ZS5yZXMiCisgICAgICAgICAgICB0b2Rpcj0iJHtidWlsZC5kaXJ9LyIvPgorICAgICAgICA8IS0tIGNvcHkgdGhlIGZpbGUgdXAgb25lIGxldmVsIGFuZCB0ZXN0IGlmIGphdmEgc3R5bGUgYmFzZSBuYW1lIGxvYWRpbmcgd29ya3MgLS0+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS90ZS5yZXMiCisgICAgICAgICAgICB0b2ZpbGU9IiR7YnVpbGQuZGlyfS9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YV9iZ2UucmVzIi8+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPHRhcmdldCBuYW1lPSJkZWZhdWx0UGFja2FnZUNoZWNrIiBkZXBlbmRzPSJ0ZXN0cyIgZGVzY3JpcHRpb249IlJ1biBUZXN0cyBmb3IgbG9hZGluZyByZXNvdXJjZXMgaW4gdGhlIGRlZmF1bHQgcGFja2FnZSI+CisgICAgICAgICAgICA8IS0tcnVuIHRoZSB0ZXN0cyAtLT4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJUZXN0RGVmYXVsdFBhY2thZ2VMb2FkaW5nIiBmb3JrPSJ5ZXMiIGZhaWxvbmVycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgIDxqdm1hcmcgdmFsdWU9Ii1lYSIvPiAgPCEtLSBlbmFibGUgYXNzZXJ0aW9uIGNoZWNrcyAtLT4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1uIi8+CisgICAgICAgICAgICA8Y2xhc3NwYXRoPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoPSIke2phdmEuY2xhc3MucGF0aH0vIi8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSJjbG92ZXIuamFyIi8+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7YnVpbGQuZGlyfSIvPgorICAgICAgICAgICAgPC9jbGFzc3BhdGg+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gY29udmVydCBAZGVwcmVjYXRlZCBAZHJhZnQgdGFncyB0byBAcHJvdmlzaW9uYWwgLS0+CisgICAgPHRhcmdldCBuYW1lPSJzd2F0RGVwcmVjYXRlZCIgZGVwZW5kcz0iaW5pdCwgdG9vbHMiIGlmPSJ2ZXJzaW9uLjEuNCI+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5Td2F0RGVwcmVjYXRlZCIgY2xhc3NwYXRoPSIke2J1aWxkLmRpcn0iIGZhaWxvbmVycm9yPSJ0cnVlIj4KKyAgICAgICAgICAgPGFyZyB2YWx1ZT0iLXNyYyIvPgorICAgICAgICAgICA8YXJnIHZhbHVlPSIke3NyYy5kaXJ9Ii8+CisgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1kc3QiLz4KKyAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHtzcmMuZGlyfSIvPgorICAgICAgICAgICA8YXJnIHZhbHVlPSItb3ZlcndyaXRlIi8+CisgICAgICAgICAgIDxhcmcgdmFsdWU9Ii12ZXJib3NlIi8+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gY29udmVydCBAcHJvdmlzaW9uYWwgdGFncyB0byBAZGVwcmVjYXRlZCAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9InJlc3RvcmVEZXByZWNhdGVkIiBkZXBlbmRzPSJpbml0LCB0b29scyIgaWY9InZlcnNpb24uMS40Ij4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLlN3YXREZXByZWNhdGVkIiBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIgZmFpbG9uZXJyb3I9InRydWUiPgorICAgICAgICAgICA8YXJnIHZhbHVlPSItcHJvdiIvPgorICAgICAgICAgICA8YXJnIHZhbHVlPSItc3JjIi8+CisgICAgICAgICAgIDxhcmcgdmFsdWU9IiR7c3JjLmRpcn0iLz4KKyAgICAgICAgICAgPGFyZyB2YWx1ZT0iLWRzdCIvPgorICAgICAgICAgICA8YXJnIHZhbHVlPSIke3NyYy5kaXJ9Ii8+CisgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1vdmVyd3JpdGUiLz4KKyAgICAgICAgICAgPGFyZyB2YWx1ZT0iLXZlcmJvc2UiLz4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorICAgIAorICAgIDwhLS0gZm9yIGJ1aWxkaW5nIGVjbGlwc2UgZGlzdHJpYnV0aW9uIC0tPgorICAgIDx0YXJnZXQgbmFtZT0iaW5pdEljdUVjbGlwc2VWZXJzaW9uIiBkZXBlbmRzPSJpbml0Ij4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImljdTRqLmVjbGlwc2Uuc3BlYy52ZXJzaW9uLnN0cmluZyIgdmFsdWU9IjMuNC41Ii8+CisgICAgICAgIDx0c3RhbXA+CisgICAgICAgICAgICA8Zm9ybWF0IHByb3BlcnR5PSJidWlsZC5kYXRlIiBwYXR0ZXJuPSJ5eXl5TU1kZCIvPgorICAgICAgICA8L3RzdGFtcD4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImljdTRqLmVjbGlwc2UuYnVpbGQudmVyc2lvbi5zdHJpbmciIHZhbHVlPSIke2ljdTRqLmVjbGlwc2Uuc3BlYy52ZXJzaW9uLnN0cmluZ30uJHtidWlsZC5kYXRlfSIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iaWN1NGoudmVyc2lvbi5udW1iZXIiIHZhbHVlPSIzNCIvPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iY29weXJpZ2h0LmVjbGlwc2UiIHZhbHVlPSJMaWNlbnNlZCBNYXRlcmlhbHMgLSBQcm9wZXJ0eSBvZiBJQk0gJiN4MEQ7JiN4MEE7IChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDAsIDIwMDYuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICYjeDBEOyYjeDBBOyBJQk0gaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBJQk0gQ29ycC4iLz4KKyAgICA8L3RhcmdldD4KKyAgICA8dGFyZ2V0IG5hbWU9ImVjbGlwc2VQcm9qZWN0cyIgCisgICAgICAgIGRlcGVuZHM9ImVjbGlwc2VDb3JlUHJvamVjdCxlY2xpcHNlVGVzdFByb2plY3QsZWNsaXBzZVdyYXBwZXJQcm9qZWN0IgorICAgICAgICBkZXNjcmlwdGlvbj0iY3JlYXRlIGFsbCBlY2xpcHNlIGljdSBwcm9qZWN0cyIvPgorCisgICAgPHRhcmdldCBuYW1lPSJ1bmRvRWNsaXBzZU1hbmdsZSIgZGVwZW5kcz0iYnVpbGRtYW5nbGUiIGRlc2NyaXB0aW9uPSJwcmVwcm9jZXNzIGZpbGVzIGJhY2sgdG8gZGVmYXVsdCkiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuQ29kZU1hbmdsZXIiIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IiBsb2dFcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSJAZWNsaXBzZUNvcmVBcmdzLnR4dCIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iQGVjbGlwc2VUZXN0QXJncy50eHQiLz4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlQ29yZU1hbmdsZSIgZGVwZW5kcz0iYnVpbGRtYW5nbGUiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuQ29kZU1hbmdsZXIiIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IiBsb2dFcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItZEZPVU5EQVRJT04iLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii10Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSJAZWNsaXBzZUNvcmVBcmdzLnR4dCIvPgorICAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlQ29yZSIgZGVwZW5kcz0iaW5pdCxjb3JlRGF0YSxpY3VkYXRhLGVjbGlwc2VDb3JlTWFuZ2xlIj4KKyAgICAgICAgPGphdmFjIGluY2x1ZGVzPSJjb20vaWJtL2ljdS91dGlsLyoqLyouamF2YSxjb20vaWJtL2ljdS90ZXh0LyoqLyouamF2YSxjb20vaWJtL2ljdS9tYXRoLyoqLyouamF2YSxjb20vaWJtL2ljdS9pbXBsLyoqLyouamF2YSxjb20vaWJtL2ljdS9sYW5nLyouamF2YSIKKyAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9DVlMvKiovKiwqKi9HbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMqIgorICAgICAgICAgICAgY29tcGlsZXI9ImphdmFjMS4zIgorICAgICAgICAgICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBib290Y2xhc3NwYXRoPSJlZS5mb3VuZGF0aW9uLmphciIKKyAgICAgICAgICAgIHNvdXJjZT0iMS4zIgorICAgICAgICAgICAgdGFyZ2V0PSIxLjEiCisgICAgICAgICAgICBkZWJ1Zz0ib24iIAorICAgICAgICAgICAgZGVwcmVjYXRpb249Im9mZiIKKyAgICAgICAgICAgIGVuY29kaW5nPSJhc2NpaSIvPgorICAgICAgICA8YW50Y2FsbCB0YXJnZXQ9ImluZGljZXMiLz4KKyAgICAgICAgPGphciBqYXJmaWxlPSIke2phci5maWxlfSIKKyAgICAgICAgICAgIGNvbXByZXNzPSJ0cnVlIgorICAgICAgICAgICAgaW5jbHVkZXM9ImNvbS9pYm0vaWN1L3V0aWwvKiovKixjb20vaWJtL2ljdS90ZXh0LyoqLyosY29tL2libS9pY3UvbWF0aC8qKi8qLGNvbS9pYm0vaWN1L2ltcGwvKiovKixjb20vaWJtL2ljdS9sYW5nLyoqLyoiCisgICAgICAgICAgICBiYXNlZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICBtYW5pZmVzdD0iJHtpY3U0ai5tYW5pZmVzdH0iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZWNsaXBzZUNvcmVQcm9qZWN0IiBkZXBlbmRzPSJlY2xpcHNlQ29yZSxpbml0SWN1RWNsaXBzZVZlcnNpb24iIGRlc2NyaXB0aW9uPSJnYXRoZXIgZWNsaXBzZSBpY3UgY29yZSBwcm9qZWN0IGZpbGVzIj4KKyAgICAgICAgPGRlbGV0ZSBmYWlsb25lcnJvcj0ibm8iPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdSIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS1mZWF0dXJlIi8+CisgICAgICAgIDwvZGVsZXRlPgorICAgICAgICA8IS0tIGNvbGxlY3Qgc291cmNlIGZpbGVzIC0tPgorICAgICAgICA8Y29weSB0b0Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3Uvc3JjL2NvbS9pYm0vaWN1Ij4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0ic3JjL2NvbS9pYm0vaWN1IgorICAgICAgICAgICAgaW5jbHVkZXM9ImltcGwvKiovKixsYW5nLyoqLyosbWF0aC8qKi8qLHRleHQvKiovKix1dGlsLyoqLyoiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyosKiovKi5qYXIsKiovVHJhbnNsaXRlcmF0b3JfSGFuX0xhdGluKi50eHQiLz4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8IS0tIGNvbGxlY3QgaWN1IGRhdGEgZmlsZXMgLS0+CisgICAgICAgIDxjb3B5IHRvZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9L2NvbS9pYm0vaWN1L2ltcGwvZGF0YSIgCisgICAgICAgICAgICAgICAgaW5jbHVkZXM9IioqLyouYnJrLCoqLyouaWN1LCoqLyoucmVzLCoqLyouc3BwLCoqLyoudHh0IgorICAgICAgICAgICAgICAgIGV4Y2x1ZGVzPSIqKi9UcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW4qLnR4dCIvPgorICAgICAgICA8L2NvcHk+CisgICAgICAgIDwhLS0gY29sbGVjdCBlY2xpcHNlIHByb2plY3QgZmlsZXMgLS0+CisgICAgICAgIDxjb3B5IHRvZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfSI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7ZWNsaXBzZS5kaXJ9IgorICAgICAgICAgICAgaW5jbHVkZXM9ImNvbS5pYm0uaWN1LyoqLyosY29tLmlibS5pY3UtZmVhdHVyZS8qKi8qIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8qIi8+CisgICAgICAgICAgICA8ZmlsdGVyc2V0PgorICAgICAgICAgICAgICAgIDxmaWx0ZXIgdG9rZW49IkJVSUxEX1ZFUlNJT04iIHZhbHVlPSIke2ljdTRqLmVjbGlwc2UuYnVpbGQudmVyc2lvbi5zdHJpbmd9Ii8+CisgICAgICAgICAgICAgICAgPGZpbHRlciB0b2tlbj0iQ09QWVJJR0hUIiB2YWx1ZT0iJHtjb3B5cmlnaHQuZWNsaXBzZX0iLz4KKyAgICAgICAgICAgICAgICA8ZmlsdGVyIHRva2VuPSJTUEVDX1ZFUlNJT04iIHZhbHVlPSIke2ljdTRqLmVjbGlwc2Uuc3BlYy52ZXJzaW9uLnN0cmluZ30iLz4KKyAgICAgICAgICAgICAgICA8ZmlsdGVyIHRva2VuPSJWRVJTSU9OX05VTUJFUiIgdmFsdWU9IiR7aWN1NGoudmVyc2lvbi5udW1iZXJ9Ii8+CisgICAgICAgICAgICA8L2ZpbHRlcnNldD4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8IS0tIGNvcHkgSUNVIGxpY2Vuc2UgZmlsZSAtLT4KKyAgICAgICAgPGNvcHkgZmlsZT0ibGljZW5zZS5odG1sIgorICAgICAgICB0b2Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UvYWJvdXRfZmlsZXMiLz4KKyAgICAgICAgPCEtLSB1Y2QgdGVybXMgLS0+CisgICAgICAgIDxjb3B5IGZpbGU9InNyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL3VjZHRlcm1zLnR4dCIKKyAgICAgICAgdG9kaXI9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9L2NvbS5pYm0uaWN1L2Fib3V0X2ZpbGVzIi8+CisgICAgICAgIDwhLS0gY29weSBJQ1UgYWJvdXQgZmlsZSAtLT4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtlY2xpcHNlLmRpcn0vbWlzYy9hYm91dF9pY3UuaHRtbCIKKyAgICAgICAgdG9maWxlPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS9hYm91dC5odG1sIi8+CisgICAgICAgIDwhLS0gY29tbW9uIGVjbGlwc2UgYWJvdXQgZmlsZSAtLT4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtlY2xpcHNlLmRpcn0vbWlzYy9hYm91dC5odG1sIgorICAgICAgICB0b2Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UtZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbiIvPgorICAgIDwvdGFyZ2V0PgorCisKKyAgICA8IS0tIGVuc3VyZSBlY2xpcHNlIHdyYXBwZXIgY29kZSBidWlsZHMgd2l0aCBmb3VuZGF0aW9uMS4wL2phdmExLjMgLS0+CisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlV3JhcHBlciIgZGVwZW5kcz0iaW5pdCI+CisgICAgICAgIDxqYXZhYyBpbmNsdWRlcz0iY29tL2libS9pY3UvdXRpbC8qKi8qLmphdmEsY29tL2libS9pY3UvdGV4dC8qKi8qLmphdmEiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyosKiovR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKiIKKyAgICAgICAgICAgIGNvbXBpbGVyPSJqYXZhYzEuMyIKKyAgICAgICAgICAgIHNyY2Rpcj0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYyIKKyAgICAgICAgICAgIGRlc3RkaXI9IiR7d3JhcHBlci5idWlsZC5kaXJ9IgorICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJidWlsZC5jbGFzc3BhdGgiCisgICAgICAgICAgICBib290Y2xhc3NwYXRoPSJlZS5mb3VuZGF0aW9uLmphciIKKyAgICAgICAgICAgIHNvdXJjZT0iMS4zIgorICAgICAgICAgICAgdGFyZ2V0PSIxLjEiCisgICAgICAgICAgICBkZWJ1Zz0ib24iIAorICAgICAgICAgICAgZGVwcmVjYXRpb249Im9mZiIKKyAgICAgICAgICAgIGVuY29kaW5nPSJhc2NpaSIvPgorICAgICAgICA8amFyIGphcmZpbGU9IiR7amRrLndyYXBwZXIuamFyLmZpbGV9IgorICAgICAgICAgICAgY29tcHJlc3M9InRydWUiCisgICAgICAgICAgICBiYXNlZGlyPSIke3dyYXBwZXIuYnVpbGQuZGlyfSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlV3JhcHBlclRlc3QiIGRlcGVuZHM9ImluaXQiPgorICAgICAgICA8IS0tIFRPRE86IGJ1aWxkIHRoZSB3cmFwcGVyIHRlc3QgY29kZSB0aGlzIGFudCB0YXJnZXQgLS0+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImVjbGlwc2VXcmFwcGVyUHJvamVjdCIgZGVwZW5kcz0iZWNsaXBzZVdyYXBwZXIsZWNsaXBzZVdyYXBwZXJUZXN0LGluaXRJY3VFY2xpcHNlVmVyc2lvbiIgZGVzY3JpcHRpb249ImdhdGhlciBlY2xpcHNlIGljdSBjb3JlIHByb2plY3QgZmlsZXMiPgorICAgICAgICA8ZGVsZXRlIGZhaWxvbmVycm9yPSJubyI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9L2NvbS5pYm0uaWN1LmJhc2UiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlIi8+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9L2NvbS5pYm0uaWN1LmJhc2UudGVzdHMiLz4KKyAgICAgICAgPC9kZWxldGU+CisgICAgICAgIDwhLS0gY29sbGVjdCBlY2xpcHNlIHByb2plY3QgZmlsZXMgLS0+CisgICAgICAgIDxjb3B5IHRvZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfSI+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7ZWNsaXBzZS5kaXJ9IgorICAgICAgICAgICAgaW5jbHVkZXM9ImNvbS5pYm0uaWN1LmJhc2UvKiovKixjb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvKiovKixjb20uaWJtLmljdS5iYXNlLnRlc3RzLyoqLyoiCisgICAgICAgICAgICBleGNsdWRlcz0iKiovQ1ZTLyoqLyoiLz4KKyAgICAgICAgICAgIDxmaWx0ZXJzZXQ+CisgICAgICAgICAgICAgICAgPGZpbHRlciB0b2tlbj0iQlVJTERfVkVSU0lPTiIgdmFsdWU9IiR7aWN1NGouZWNsaXBzZS5idWlsZC52ZXJzaW9uLnN0cmluZ30iLz4KKyAgICAgICAgICAgICAgICA8ZmlsdGVyIHRva2VuPSJDT1BZUklHSFQiIHZhbHVlPSIke2NvcHlyaWdodC5lY2xpcHNlfSIvPgorICAgICAgICAgICAgICAgIDxmaWx0ZXIgdG9rZW49IlNQRUNfVkVSU0lPTiIgdmFsdWU9IiR7aWN1NGouZWNsaXBzZS5zcGVjLnZlcnNpb24uc3RyaW5nfSIvPgorICAgICAgICAgICAgICAgIDxmaWx0ZXIgdG9rZW49IlZFUlNJT05fTlVNQkVSIiB2YWx1ZT0iJHtpY3U0ai52ZXJzaW9uLm51bWJlcn0iLz4KKyAgICAgICAgICAgIDwvZmlsdGVyc2V0PgorICAgICAgICA8L2NvcHk+CisgICAgICAgIDwhLS0gY29weSBJQ1UgbGljZW5zZSBmaWxlIC0tPgorICAgICAgICA8Y29weSBmaWxlPSJsaWNlbnNlLmh0bWwiCisgICAgICAgIHRvZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS5iYXNlL2Fib3V0X2ZpbGVzIi8+CisgICAgICAgIDwhLS0gY29weSBJQ1UgYWJvdXQgZmlsZSAtLT4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHtlY2xpcHNlLmRpcn0vbWlzYy9hYm91dF9pY3UuaHRtbCIKKyAgICAgICAgdG9maWxlPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS5iYXNlL2Fib3V0Lmh0bWwiLz4KKyAgICAgICAgPCEtLSBjb21tb24gZWNsaXBzZSBhYm91dCBmaWxlIC0tPgorICAgICAgICA8Y29weSBmaWxlPSIke2VjbGlwc2UuZGlyfS9taXNjL2Fib3V0Lmh0bWwiCisgICAgICAgIHRvZGlyPSIke2VjbGlwc2UucHJvamVjdHMuZGlyfS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZWNsaXBzZVRlc3RNYW5nbGUiIGRlcGVuZHM9ImJ1aWxkbWFuZ2xlIj4KKyAgICAgICAgPGphdmEgY2xhc3NuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLkNvZGVNYW5nbGVyIiBjbGFzc3BhdGg9IiR7YnVpbGQuZGlyfSIgbG9nRXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLWRGT1VOREFUSU9OIi8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItdCIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iQGVjbGlwc2VUZXN0QXJncy50eHQiLz4KKyAgICAgICAgPC9qYXZhPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlVGVzdCIgZGVwZW5kcz0iZWNsaXBzZUNvcmUsZWNsaXBzZVRlc3RNYW5nbGUiIGRlc2NyaXB0aW9uPSJidWlsZCB0ZXN0cyB0cmltbWVkIGZvciBlY2xpcHNlIEFQSSI+CisgICAgICAgIDxhbnRjYWxsIHRhcmdldD0idGVzdHMiLz4KKyAgICAgICAgPGphciBqYXJmaWxlPSIke3Rlc3RqYXIuZmlsZX0iIGNvbXByZXNzPSJ0cnVlIiBtYW5pZmVzdD0iJHtpY3U0ai50ZXN0cy5tYW5pZmVzdH0iPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2J1aWxkLmRpcn0iIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC8qKi8qIiBleGNsdWRlcz0iL2NvbS9pYm0vaWN1L2Rldi90ZXN0LyoqL0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyoiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtidWlsZC5kaXJ9IiBpbmNsdWRlcz0iY29tL2libS9pY3UvZGV2L2RhdGEvKiovKiIvPgorICAgICAgICA8L2phcj4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iZWNsaXBzZVRlc3RQcm9qZWN0IiBkZXBlbmRzPSJlY2xpcHNlVGVzdCx6aXBUZXN0U3JjIiBkZXNjcmlwdGlvbj0iZ2F0aGVyIGVjbGlwc2UgaWN1IHRlc3QgcHJvamVjdCBmaWxlcyI+CisgICAgICAgIDxkZWxldGUgZmFpbG9uZXJyb3I9Im5vIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UudGVzdHMiLz4KKyAgICAgICAgPC9kZWxldGU+CisgICAgICAgIDwhLS0gY29weSBlY2xpcHNlIHRlc3Qgc291cmNlIGFuZCBwcm9qZWN0IGZpbGVzIC0tPgorICAgICAgICA8Y29weSB0b0Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UudGVzdHMiPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke2VjbGlwc2UuZGlyfS9jb20uaWJtLmljdS50ZXN0cyIKKyAgICAgICAgICAgIGluY2x1ZGVzPSIqKi8qIgorICAgICAgICAgICAgZXhjbHVkZXM9IioqL0NWUy8qKi8iLz4KKyAgICAgICAgPC9jb3B5PgorICAgICAgICA8IS0tIGNvcHkgaWN1IHRlc3QgamFyIC0tPgorICAgICAgICA8Y29weSB0b0Rpcj0iJHtlY2xpcHNlLnByb2plY3RzLmRpcn0vY29tLmlibS5pY3UudGVzdHMiIGZpbGU9IiR7dGVzdGphci5maWxlfSIvPgorICAgICAgICA8IS0tIGNvcHkgaWN1IHRlc3Qgc291cmNlIHppcCAtLT4KKyAgICAgICAgPGNvcHkgdG9EaXI9IiR7ZWNsaXBzZS5wcm9qZWN0cy5kaXJ9L2NvbS5pYm0uaWN1LnRlc3RzIiBmaWxlPSIke3ppcFRlc3RTcmMuZmlsZX0iLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iemlwQ29yZVNyYyIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249ImJ1aWxkIHppcCBvZiBjb3JlIHNvdXJjZXMgZm9yIGRlYnVnZ2luZyI+CisgICAgICAgIDwhLS0gZm9yIGVjbGlwc2UgLS0+CisgICAgICAgIDx6aXAgZGVzdGZpbGU9IiR7emlwQ29yZVNyYy5maWxlfSIKKyAgICAgICAgICAgIGNvbXByZXNzPSJ0cnVlIgorICAgICAgICAgICAgYmFzZWRpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSIuLi9saWNlbnNlLmh0bWwsLi4vQ29weXJpZ2h0X0Fzc2lnbm1lbnQucnRmLGNvbS9pYm0vaWN1L2ltcGwvKiovKixjb20vaWJtL2ljdS9sYW5nLyoqLyosY29tL2libS9pY3UvbWF0aC8qKi8qLGNvbS9pYm0vaWN1L3RleHQvKiovKixjb20vaWJtL2ljdS91dGlsLyoqLyoiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iemlwVGVzdFNyYyIgZGVwZW5kcz0iaW5pdCIgZGVzY3JpcHRpb249ImJ1aWxkIHppcCBvZiB0ZXN0IHNvdXJjZXMgZm9yIGRlYnVnZ2luZyI+CisgICAgICAgIDwhLS0gZm9yIGVjbGlwc2UgLS0+CisgICAgICAgIDx6aXAgZGVzdGZpbGU9IiR7emlwVGVzdFNyYy5maWxlfSIKKyAgICAgICAgICAgIGNvbXByZXNzPSJ0cnVlIgorICAgICAgICAgICAgYmFzZWRpcj0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIGluY2x1ZGVzPSJjb20vaWJtL2ljdS9kZXYvdGVzdC8qKi8qIgorICAgICAgICAgICAgZXhjbHVkZXM9ImNvbS9pYm0vaWN1L2Rldi90ZXN0L2NsZHIvKiovKiwgY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi8qKi8qIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImdhdGhlcklDVTRKV3JhcHBlckFQSSIgZGVwZW5kcz0idG9vbHMiIGlmPSJ2ZXJzaW9uLjEuNCI+CisgICAgICAgIDxqYXZhZG9jIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgc291cmNlcGF0aD0iJHtzcmMuZGlyfSIKKyAgICAgICAgICAgIHBhY2thZ2VuYW1lcz0iY29tLmlibS5pY3UudGV4dCxjb20uaWJtLmljdS51dGlsIgorICAgICAgICAgICAgc291cmNlPSIxLjQiPgorICAgICAgICAgICAgPGRvY2xldCBuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLkdhdGhlckFQSURhdGEiCisgICAgICAgICAgICAgICAgcGF0aD0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgICAgICA8cGFyYW0gbmFtZT0iLW5hbWUiIHZhbHVlPSJJQ1U0SiAzLjQuNSIvPgorICAgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSItYmFzZSIgdmFsdWU9ImNvbS5pYm0uaWN1Ii8+CisgICAgICAgICAgICAgICAgPHBhcmFtIG5hbWU9Ii1vdXRwdXQiIHZhbHVlPSIke2FwaS5kaXJ9L2ljdTRqMzQ1d19pLmFwaSIvPgorICAgICAgICAgICAgICAgIDxwYXJhbSBuYW1lPSItZmlsdGVyIiB2YWx1ZT0iQnJlYWtJdGVyYXRvcnxDb2xsYXRpb25LZXl8Q29sbGF0b3J8RGF0ZUZvcm1hdHxEZWNpbWFsRm9ybWF0fE1lc3NhZ2VGb3JtYXR8TnVtYmVyRm9ybWF0fFNpbXBsZURhdGVGb3JtYXR8U3RyaW5nVG9rZW5pemVyfENhbGVuZGFyfFRpbWVab25lfFVMb2NhbGV8RGF0ZUZvcm1hdFN5bWJvbHN8RGVjaW1hbEZvcm1hdFN5bWJvbHN8Q2FsZW5kYXJ8VGltZVpvbmUiLz4KKyAgICAgICAgICAgICAgICA8IS0tIHBhcmFtIG5hbWU9Ii1nemlwIi8gLS0+CisgICAgICAgICAgICA8L2RvY2xldD4KKyAgICAgICAgPC9qYXZhZG9jPgorICAgIDwvdGFyZ2V0PgorCisgICAgPHRhcmdldCBuYW1lPSJnYXRoZXJFY2xpcHNlV3JhcHBlckFQSSIgZGVwZW5kcz0idG9vbHMiIGlmPSJ2ZXJzaW9uLjEuNCI+CisgICAgICAgIDxqYXZhZG9jIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IgorICAgICAgICAgICAgc291cmNlcGF0aD0iJHtzcmMuZGlyfS9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYyIKKyAgICAgICAgICAgIHBhY2thZ2VuYW1lcz0iY29tLmlibS5pY3UudGV4dCxjb20uaWJtLmljdS51dGlsIgorICAgICAgICAgICAgc291cmNlPSIxLjQiPgorICAgICAgICAgICAgPGRvY2xldCBuYW1lPSJjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzLkdhdGhlckFQSURhdGEiCisgICAgICAgICAgICAgICAgcGF0aD0iJHtidWlsZC5kaXJ9Ij4KKyAgICAgICAgICAgICAgICA8cGFyYW0gbmFtZT0iLW5hbWUiIHZhbHVlPSJJQ1U0SiAzLjQuNSBXcmFwcGVyIi8+CisgICAgICAgICAgICAgICAgPHBhcmFtIG5hbWU9Ii1iYXNlIiB2YWx1ZT0iY29tLmlibS5pY3UiLz4KKyAgICAgICAgICAgICAgICA8cGFyYW0gbmFtZT0iLW91dHB1dCIgdmFsdWU9IiR7YXBpLmRpcn0vaWN1NGozNDV3X2UuYXBpIi8+CisgICAgICAgICAgICAgICAgPCEtLSBwYXJhbSBuYW1lPSItZ3ppcCIvIC0tPgorICAgICAgICAgICAgPC9kb2NsZXQ+CisgICAgICAgIDwvamF2YWRvYz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0icmVwb3J0V3JhcHBlckFQSSIgZGVwZW5kcz0idG9vbHMiIGlmPSJ2ZXJzaW9uLjEuNCI+CisgICAgICAgIDxqYXZhIGNsYXNzbmFtZT0iY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jcy5SZXBvcnRBUEkiIGNsYXNzcGF0aD0iJHtidWlsZC5kaXJ9IiBmYWlsb25lcnJvcj0idHJ1ZSI+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSItb2xkOiIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iJHthcGkuZGlyfS9pY3U0ajM0NXdfaS5hcGkiLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1uZXc6Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSIke2FwaS5kaXJ9L2ljdTRqMzQ1d19lLmFwaSIvPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLWh0bWwiLz4KKyAgICAgICAgICAgIDxhcmcgdmFsdWU9Ii1vdXQ6Ii8+CisgICAgICAgICAgICA8YXJnIHZhbHVlPSIke2FwaS5kaXJ9L2ljdTRqX2NvbXBhcmVfMzQ1X3dyYXBwZXJfamF2YS5odG1sIi8+CisgICAgICAgIDwvamF2YT4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0icnVuQ2hlY2siIGRlcGVuZHM9ImluaXQsdGVzdHMiPgorICAgICAgICA8amF2YSBjbGFzc25hbWU9ImNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RBbGwiIGZvcms9InllcyIgZmFpbG9uZXJyb3I9InRydWUiPgorICAgICAgICAgICAgPGFyZyB2YWx1ZT0iLW4iLz4KKyAgICAgICAgICAgIDxjbGFzc3BhdGg+CisgICAgICAgICAgICAgICAgPHBhdGhlbGVtZW50IHBhdGg9IiR7amF2YS5jbGFzcy5wYXRofS8iLz4KKyAgICAgICAgICAgICAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249ImljdTRqLmphciIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iY2xvdmVyLmphciIvPgorICAgICAgICAgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoPSIke2J1aWxkLmRpcn0iLz4KKyAgICAgICAgICAgIDwvY2xhc3NwYXRoPgorICAgICAgICA8L2phdmE+CisgICAgPC90YXJnZXQ+CisgICAgCisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlQ29tcGF0IiBkZXBlbmRzPSJpbml0LCBlY2xpcHNlQ29yZSIvPgorICAgIDx0YXJnZXQgbmFtZT0iZWNsaXBzZUNvbXBhdFRlc3RzIiBkZXBlbmRzPSJpbml0LCBlY2xpcHNlVGVzdE1hbmdsZSwgdGVzdHMiIC8+CisgICAgPHRhcmdldCBuYW1lPSJlY2xpcHNlQ29tcGF0Q2hlY2siIGRlcGVuZHM9ImluaXQsIGVjbGlwc2VDb21wYXQsIGVjbGlwc2VDb21wYXRUZXN0cywgamFyLCBkZWxldGVDb3JlLCBydW5DaGVjayIvPgorCisgICAgPHRhcmdldCBuYW1lPSJqZGsxM0NvbXBhdCIgZGVwZW5kcz0iaW5pdCwgZWNsaXBzZUNvcmVNYW5nbGUsIGNvcmUiIGRlc2NyaXB0aW9uPSJidWlsZHMgSUNVNEogY29yZSB3aXRoIEpESyAxLjMiLz4KKyAgICA8dGFyZ2V0IG5hbWU9ImpkazEzQ29tcGF0VGVzdHMiIGRlcGVuZHM9ImluaXQsIGpkazEzQ29tcGF0LCBlY2xpcHNlVGVzdE1hbmdsZSwgdGVzdHMiIGRlc2NyaXB0aW9uPSJidWlsZHMgSUNVNEogdGVzdHMgd2l0aCBKREsgMS4zIi8+CisgICAgPHRhcmdldCBuYW1lPSJqZGsxM0NvbXBhdENoZWNrIiBkZXBlbmRzPSJpbml0LCBqZGsxM0NvbXBhdFRlc3RzLCBqYXIsIGRlbGV0ZUNvcmUsIHJ1bkNoZWNrIiBkZXNjcmlwdGlvbj0icnVucyB0aGUgdGVzdHMgd2l0aCBKREsgMS4zIi8+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9lY2xpcHNlQ29yZUFyZ3MudHh0IGIvZWNsaXBzZUNvcmVBcmdzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTZlMzNiCi0tLSAvZGV2L251bGwKKysrIGIvZWNsaXBzZUNvcmVBcmdzLnR4dApAQCAtMCwwICsxLDE3IEBACisjIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorIyBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitzcmMvY29tL2libS9pY3UvaW1wbC9Db2xsZWN0aW9uVXRpbGl0aWVzLmphdmEKK3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlLmphdmEKK3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlSW1wbC5qYXZhCitzcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5qYXZhCitzcmMvY29tL2libS9pY3UvaW1wbC9MUlVNYXAuamF2YQorc3JjL2NvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eS5qYXZhCitzcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyLmphdmEKK3NyYy9jb20vaWJtL2ljdS9tYXRoL0JpZ0RlY2ltYWwuamF2YQorc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjaW1hbEZvcm1hdC5qYXZhCitzcmMvY29tL2libS9pY3UvdGV4dC9EaWdpdExpc3QuamF2YQorc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVtYmVyRm9ybWF0LmphdmEKK3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZENvbGxhdG9yLmphdmEKK3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZE51bWJlckZvcm1hdC5qYXZhCitzcmMvY29tL2libS9pY3UvdXRpbC9CeXRlQXJyYXlXcmFwcGVyLmphdmEKK3NyYy9jb20vaWJtL2ljdS91dGlsL0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5qYXZhCmRpZmYgLS1naXQgYS9lY2xpcHNlVGVzdEFyZ3MudHh0IGIvZWNsaXBzZVRlc3RBcmdzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDA3Nzk0Ci0tLSAvZGV2L251bGwKKysrIGIvZWNsaXBzZVRlc3RBcmdzLnR4dApAQCAtMCwwICsxLDM0IEBACisjIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorIyBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvYmlnZGVjL0RpYWdCaWdEZWNpbWFsLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jbGRyL1Rlc3RDTERSVnNJQ1UuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXRkZXQvVGVzdENoYXJzZXREZXRlY3Rvci5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvUmFuZG9tQ29sbGF0b3IuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1Rlc3RBbGwuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9CaWdOdW1iZXJGb3JtYXRUZXN0LmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvR2xvYmFsaXphdGlvblByZWZlcmVuY2VzVGVzdC5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJlZ3Jlc3Npb25UZXN0LmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0VGVzdC5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlclJlZ3Jlc3Npb24uamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mVGVzdC5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVBbGlhc1Rlc3QuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lUmVncmVzc2lvbi5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VSZXNvdXJjZUJ1bmRsZVRlc3QuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVXRpbGl0eVRlc3QuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVW5pY29kZU1hcC5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Vbmljb2RlUHJvcGVydHkuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQmFnRm9ybWF0dGVyLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVByb3BlcnR5RmFjdG9yeS5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0QmFnRm9ybWF0dGVyLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0NvbGxlY3Rpb25VdGlsaXRpZXMuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRmlsZVV0aWxpdGllcy5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UcmFuc2xpdGVyYXRvclV0aWxpdGllcy5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EYXRhSW5wdXRDb21wcmVzc29yLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0RhdGFPdXRwdXRDb21wcmVzc29yLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RVdGlsaXRpZXMuamF2YQorc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVG9rZW5pemVyLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0JORi5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0Qk5GLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0QWxsLmphdmEKK3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0Rm13ay5qYXZhCitzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdFV0aWwuamF2YQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2VlLmZvdW5kYXRpb24uamFyIGIvZWUuZm91bmRhdGlvbi5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjAxNjhlOAotLS0gL2Rldi9udWxsCisrKyBiL2VlLmZvdW5kYXRpb24uamFyCkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjdmNzMwZmQ0YThjYTcxZmNkZGM2MWE0ZjYyNDkwY2VhNzgwNWVmZmZjN2ViMmI4NjY5OTQyZjZkMTIzZjcyNDkKK3NpemUgMTA1OTA3NwpkaWZmIC0tZ2l0IGEvbGljZW5zZS5odG1sIGIvbGljZW5zZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiMWE0ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWNlbnNlLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPGh0bWw+CisKKzxoZWFkPgorPHRpdGxlPklDVTRKIGxpY2Vuc2UgLSBJQ1U0SiAxLjMuMSBhbmQgbGF0ZXI8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBCR0NPTE9SPSIjZmZmZmZmIj4KKzxoMj5JQ1U0SiBsaWNlbnNlIC0gSUNVNEogMS4zLjEgYW5kIGxhdGVyPC9oMj4KKworPHA+Q09QWVJJR0hUIEFORCBQRVJNSVNTSU9OIE5PVElDRTwvcD4KKworPHA+CitDb3B5cmlnaHQgKGMpIDE5OTUtMjAwNiBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMKKzwvcD4KKzxwPgorQWxsIHJpZ2h0cyByZXNlcnZlZC4KKzwvcD4KKzxwPgorUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zCit0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UocykgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlIGFuZCB0aGF0IGJvdGggdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UocykgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIHN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbi4KKzwvcD4KKzxwPgorVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQgT0YgVEhJUkQgUEFSVFkgUklHSFRTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBIT0xERVJTIElOQ0xVREVEIElOIFRISVMgTk9USUNFIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBPUiBBTlkgU1BFQ0lBTCBJTkRJUkVDVCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMsIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUiBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgorPC9wPgorPHA+CitFeGNlcHQgYXMgY29udGFpbmVkIGluIHRoaXMgbm90aWNlLCB0aGUgbmFtZSBvZiBhIGNvcHlyaWdodCBob2xkZXIgc2hhbGwgbm90IGJlIHVzZWQgaW4gYWR2ZXJ0aXNpbmcgb3Igb3RoZXJ3aXNlIHRvIHByb21vdGUgdGhlIHNhbGUsIHVzZSBvciBvdGhlciBkZWFsaW5ncyBpbiB0aGlzIFNvZnR3YXJlIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBhdXRob3JpemF0aW9uIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyLgorPC9wPgorCis8aHI+Cis8c21hbGw+CitBbGwgdHJhZGVtYXJrcyBhbmQgcmVnaXN0ZXJlZCB0cmFkZW1hcmtzIG1lbnRpb25lZCBoZXJlaW4gYXJlIHRoZSBwcm9wZXJ0eSBvZiB0aGVpciByZXNwZWN0aXZlIG93bmVycy4KKzwvc21hbGw+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9yZWFkbWUuaHRtbCBiL3JlYWRtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1NzliZTUwCi0tLSAvZGV2L251bGwKKysrIGIvcmVhZG1lLmh0bWwKQEAgLTAsMCArMSwxMzY2IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL3czYy8vZHRkIGh0bWwgNC4wIHRyYW5zaXRpb25hbC8vZW4iPgorPGh0bWw+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIgorIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1TdHlsZS1UeXBlIiBjb250ZW50PSJ0ZXh0L2NzczIiPgorICA8dGl0bGU+UmVhZE1lIGZvciBJQ1U0SjwvdGl0bGU+Cis8IS0tCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCistLT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK2gzLmRvYyB7IGJhY2tncm91bmQ6ICNDQ0NDRkYgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsiIGxhbmc9IkVOLVVTIgorIGxpbms9IiMwMDAwZmYiIHZsaW5rPSIjODAwMDgwIj4KKzxoMj5JbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgZm9yIEphdmEgKElDVTRKKTwvaDI+Cis8aDM+UmVhZCBNZSBmb3IgSUNVNEogMy40LjU8L2gzPgorPGhyIHNpemU9IjIiIHdpZHRoPSIxMDAlIj4KKzxwPjxiPlJlbGVhc2UgRGF0ZTwvYj48YnI+CitTZXB0ZW1iZXIgMSwgMjAwNjxicj4KKzwvcD4KKzxwPjxiPk5vdGU6PC9iPiBUaGlzIGlzIGFuIHVwZGF0ZSByZWxlYXNlIG9mIElDVTRKIDMuNC4gIEl0IGNvbnRhaW5zIGJ1ZyBmaXhlcworYW5kIGFkZHMgaW1wbGVtZW50YXRpb25zIG9mIGluaGVyaXRlZCBBUEksIGJ1dCBkb2VzIG5vdCBpbnRyb2R1Y2UgbmV3IEFQSQorb3IgZnVuY3Rpb25hbGl0eS4gIFRoZXNlIGNoYW5nZXMgd2lsbCBiZSByb2xsZWQgaW50byB0aGUgbmV4dCByZWxlYXNlIG9mIElDVTRKLgorPC9wPgorPHA+Rm9yIHRoZSBtb3N0IHJlY2VudCByZWxlYXNlLCBzZWUgdGhlIDxhCisgaHJlZj0iaHR0cDovL3d3dy5pYm0uY29tL3NvZnR3YXJlL2dsb2JhbGl6YXRpb24vaWN1L2Rvd25sb2Fkcy5qc3AiPiBJQ1U0SgorZG93bmxvYWQgc2l0ZTwvYT4uIDwvcD4KKzxoMyBjbGFzcz0iZG9jIj5Db250ZW50czwvaDM+Cis8dWwgdHlwZT0iZGlzYyI+CisgIDxsaT48YSBocmVmPSIjaW50cm9kdWN0aW9uIj5JbnRyb2R1Y3Rpb24gdG8gSUNVNEo8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNuZXdzIj5XaGF0IElzIE5ldyBJbiBUaGlzIFJlbGVhc2U/PC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjbGljZW5zZSI+TGljZW5zZSBJbmZvcm1hdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI1BsYXRmb3JtRGVwZW5kZW5jaWVzIj5QbGF0Zm9ybSBEZXBlbmRlbmNpZXM8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNkb3dubG9hZCI+SG93IHRvIERvd25sb2FkIElDVTRKPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjV2hhdENvbnRhaW4iPlRoZSBTdHJ1Y3R1cmUgYW5kIENvbnRlbnRzIG9mIElDVTRKPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjQVBJIj5XaGVyZSB0byBHZXQgRG9jdW1lbnRhdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI0hvd1RvSW5zdGFsbEphdmFjIj5Ib3cgdG8gSW5zdGFsbCBhbmQgQnVpbGQ8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9IiNIb3dUb01vZHVsYXJpemUiPkhvdyB0byBtb2R1bGFyaXplIElDVTRKPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjdHJ5aW5nb3V0Ij5UcnlpbmcgT3V0IElDVTRKPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjcmVzb3VyY2VzIj5JQ1U0SiBSZXNvdXJjZSBJbmZvcm1hdGlvbjwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI1doZXJlVG9GaW5kTW9yZSI+V2hlcmUgdG8gRmluZCBNb3JlIEluZm9ybWF0aW9uPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSIjU3VibWl0dGluZ0NvbW1lbnRzIj5TdWJtaXR0aW5nIENvbW1lbnRzLCBSZXF1ZXN0aW5nCitGZWF0dXJlcyBhbmQgUmVwb3J0aW5nIEJ1Z3M8L2E+PC9saT4KKzwvdWw+Cis8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0iaW50cm9kdWN0aW9uIj48L2E+SW50cm9kdWN0aW9uIHRvIElDVTRKPC9oMz4KKzxwPlRoZSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgKElDVSkgbGlicmFyeSBwcm92aWRlcworcm9idXN0IGFuZAorZnVsbC1mZWF0dXJlZCBVbmljb2RlIHNlcnZpY2VzIG9uIGEgd2lkZSB2YXJpZXR5IG9mIHBsYXRmb3Jtcy4gSUNVCitzdXBwb3J0cyB0aGUKK21vc3QgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBVbmljb2RlIHN0YW5kYXJkLCBpbmNsdWRpbmcgc3VwcG9ydCBmb3IKK3N1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyAobmVlZGVkIGZvciBHQiAxODAzMCByZXBlcnRvaXJlIHN1cHBvcnQpLjwvcD4KKzxwPkphdmEgcHJvdmlkZXMgYSBzdHJvbmcgZm91bmRhdGlvbiBmb3IgZ2xvYmFsIHByb2dyYW1zLCBhbmQgSUJNIGFuZAordGhlCitJQ1UgdGVhbSBwbGF5ZWQgYSBrZXkgcm9sZSBpbiBwcm92aWRpbmcgZ2xvYmFsaXphdGlvbiB0ZWNobm9sb2d5IHRvCitKYXZhLiBCdXQgYmVjYXVzZSBvZiBpdHMgbG9uZyByZWxlYXNlIHNjaGVkdWxlLCBKYXZhIGNhbm5vdCBhbHdheXMga2VlcAordXAgd2l0aCBldm9sdmluZyBzdGFuZGFyZHMuIFRoZSBJQ1UgdGVhbSBjb250aW51ZXMgdG8gZXh0ZW5kIEphdmEncworVW5pY29kZSBhbmQgaW50ZXJuYXRpb25hbGl6YXRpb24gc3VwcG9ydCwgZm9jdXNpbmcgb24gaW1wcm92aW5nCitwZXJmb3JtYW5jZSwKK2tlZXBpbmcgY3VycmVudCB3aXRoIHRoZSBVbmljb2RlIHN0YW5kYXJkLCBhbmQgcHJvdmlkaW5nIHJpY2hlciBBUElzLAord2hpbGUKK3JlbWFpbmluZyBhcyBjb21wYXRpYmxlIGFzIHBvc3NpYmxlIHdpdGggdGhlIG9yaWdpbmFsIEphdmEgdGV4dCBhbmQKK2ludGVybmF0aW9uYWxpemF0aW9uIEFQSSBkZXNpZ24uPC9wPgorPHA+SUNVNEogaXMgYW4gYWRkLW9uIHRvIHRoZSByZWd1bGFyIEpWTSB0aGF0IHByb3ZpZGVzOgorPC9wPgorPHVsPgorICA8bGk+PGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9JbnRyby5odG1sIj48Yj5Db2xsYXRpb248L2I+PC9hPgorJiM4MjExOyBydWxlLWJhc2VkLCB1cC10by1kYXRlIFVuaWNvZGUgQ29sbGF0aW9uIEFsZ29yaXRobSAoVUNBKSBzb3J0aW5nIG9yZGVyPGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Rm9yIGZhc3QgbXVsdGlsaW5ndWFsIHN0cmluZyBjb21wYXJpc29uOyBmYXN0ZXIKK2FuZCBtb3JlIGNvbXBsZXRlIHRoYW4KK3RoZSBKREs8L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL3N0cmluZ3MuaHRtbCI+PGI+U3VwcGxlbWVudGFyeQorQ2hhcmFjdGVyczwvYj48L2E+ICYjODIxMTsgU3RyaW5nIG1hbmlwdWxhdGlvbiBhbmQgY2hhcmFjdGVyIHByb3BlcnRpZXM8YnI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXF1aXJlZCBmb3IgcHJvcGVyIEdCIDE4MDMwIGFuZCBKSVMgMjEzCityZXBlcnRvaXJlIHN1cHBvcnQ8L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL2NoYXJzZXQuaHRtbCI+PGI+Q2hhcnNldAorRGV0ZWN0aW9uPC9iPjwvYT4gJiM4MjExOyBSZWNvZ25pdGlvbiBvZiB2YXJpb3VzIHNpbmdsZSBhbmQgbXVsdGlieXRlIGNoYXJzZXRzPGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VXNlZnVsIGZvciByZWNvZ25pemluZyB1bnRhZ2dlZCB0ZXh0IGRhdGE8L2xpPgorICA8bGk+PGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvdW5pY29kZVNldC5odG1sIj48Yj5Vbmljb2RlU2V0PC9iPjwvYT4KKyYjODIxMTsgc3RhbmRhcmQgc2V0IG9wZXJhdGlvbnMgb3B0aW1pemVkIGZvciBzZXRzIG9mIFVuaWNvZGUgY2hhcmFjdGVyczxicj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1VuaWNvZGVTZXRzIGNhbiBiZSBidWlsdCBmcm9tIHN0cmluZyBwYXR0ZXJucwordXNpbmcgYW55IFVuaWNvZGUgcHJvcGVydGllcy48L2xpPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL1RyYW5zZm9ybS5odG1sIj48Yj5UcmFuc2Zvcm1zPC9iPjwvYT4KKyYjODIxMTsgYSBmbGV4aWJsZSBtZWNoYW5pc20gZm9yIFVuaWNvZGUgdGV4dCBjb252ZXJzaW9uczxicj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luY2x1ZGluZyBGdWxsL0hhbGZ3aWR0aCBjb252ZXJzaW9ucywKK05vcm1hbGl6YXRpb24sIENhc2UgY29udmVyc2lvbnMsIEhleAorY29udmVyc2lvbnMsIGFuZCB0cmFuc2xpdGVyYXRpb25zIGJldHdlZW4gc2NyaXB0cyAoNTArIHBhaXJzKTwvbGk+CisgIDxsaT48YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9ub3JtYWxpemF0aW9uLmh0bWwiPjxiPlVuaWNvZGUKK05vcm1hbGl6YXRpb248L2I+PC9hPiAmIzgyMTE7IE5GQywgTkZELCBORktELCBORktDPGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Rm9yIGNhbm9uaWNhbCB0ZXh0IHJlcHJlc2VudGF0aW9ucywgbmVlZGVkIGZvcgorWE1MIGFuZCB0aGUgbmV0PC9saT4KKyAgPGxpPjxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL2RhdGVDYWxlbmRhci5odG1sIj48Yj5JbnRlcm5hdGlvbmFsCitDYWxlbmRhcnM8L2I+PC9hPiAmIzgyMTE7IEFyYWJpYywgQnVkZGhpc3QsIEhlYnJldywgYW5kIEphcGFuZXNlIGNhbGVuZGFyczxicj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlcXVpcmVkIGZvciBjb3JyZWN0IHByZXNlbnRhdGlvbiBvZiBkYXRlcyBpbgorY2VydGFpbiBjb3VudHJpZXM8L2xpPgorICA8bGk+PGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvZm9ybWF0TnVtYmVycy5odG1sIj48Yj5OdW1iZXIKK0Zvcm1hdAorRW5oYW5jZW1lbnRzPC9iPjwvYT4gJiM4MjExOyBTY2llbnRpZmljIE5vdGF0aW9uLCBTcGVsbGVkLW91dCwgZXRjLjxicj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0VuaGFuY2VtZW50cyB0byB0aGUgbm9ybWFsIEphdmEgbnVtYmVyCitmb3JtYXR0aW5nLiBUaGUgc3BlbGwtb3V0IGZvcm1hdCBpcwordXNlZCBmb3IgY2hlY2tzIGFuZCBzaW1pbGFyIGRvY3VtZW50czwvbGk+CisgIDxsaT48YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9ib3VuZGFyeUFuYWx5c2lzLmh0bWwiPjxiPkVuaGFuY2VkCitXb3JkLUJyZWFrIERldGVjdGlvbjwvYj48L2E+ICYjODIxMTsgUnVsZS1iYXNlZCwgc3VwcG9ydHMgVGhhaTxicj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlcXVpcmVkIGZvciBjb3JyZWN0IHN1cHBvcnQgb2YgVGhhaTwvbGk+CisgIDxsaT48YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9jb21wcmVzc2lvbi5odG1sIj48Yj5Vbmljb2RlCitUZXh0CitDb21wcmVzc2lvbjwvYj48L2E+ICYjODIxMTsgU3RhbmRhcmQgY29tcHJlc3Npb24gb2YgVW5pY29kZSB0ZXh0PGJyPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U3VpdGFibGUgZm9yIGxhcmdlIG51bWJlcnMgb2Ygc21hbGwgZmllbGRzLAord2hlcmUgTFpXIGFuZCBzaW1pbGFyIHNjaGVtZXMKK2RvIG5vdCBhcHBseTwvbGk+Cis8L3VsPgorPGJsb2NrcXVvdGU+CisgIDxwPjxiPk5vdGU6PC9iPiBXZSBjb250aW51ZSB0byBwcm92aWRlIGFzc2lzdGFuY2UgdG8gU3VuLCBhbmQgaW4gc29tZQorY2FzZXMsIElDVTRKIHN1cHBvcnQgaGFzIGJlZW4gcm9sbGVkIGludG8gYSBsYXRlciByZWxlYXNlIG9mIEphdmEuIEZvcgorZXhhbXBsZSwgdGhlIFRoYWkgd29yZC1icmVhayBpcyBub3cgaW4gSmF2YSAxLjQuIEhvd2V2ZXIsIHRoZSBtb3N0CitjdXJyZW50IGFuZCBjb21wbGV0ZSB2ZXJzaW9uIGlzIGFsd2F5cyBmb3VuZCBpbiBJQ1U0Si48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8IS0tCisKKzxwPjxiPklDVTRKIGlzIGFuIGFkZC1vbiBsaWJyYXJ5IHRoYXQgZXh0ZW5kcyBKYXZhJ3MgZ2xvYmFsaXphdGlvbgorCisgICAgdGVjaG5vbG9neS48L2I+IEphdmEgcHJvdmlkZXMgYSBzdHJvbmcgZm91bmRhdGlvbiBmb3IgZ2xvYmFsCisKKyAgICBwcm9ncmFtcywgYnV0IEphdmEgZG9lcyBub3QgeWV0IHByb3ZpZGUgYWxsIHRoZSBnbG9iYWxpemF0aW9uCisKKyAgICBmZWF0dXJlcyB0aGF0IHNvbWUgcHJvZHVjdHMgcmVxdWlyZS4gIElCTSBwbGF5ZWQgYSBrZXkgcm9sZSBpbgorCisgICAgcHJvdmlkaW5nIGdsb2JhbGl6YXRpb24gdGVjaG5vbG9neSB0byBTdW4gZm9yIHVzZSBpbiBKYXZhLiAgT3ZlcgorCisgICAgdGhlIHBhc3Qgc2V2ZW4geWVhcnMsIHRoZSBJQ1UgdGVhbSBoYXMgY29udGludWVkIHRvIGVuaGFuY2UgYW5kCisKKyAgICBleHRlbmQgdGhpcyB0ZWNobm9sb2d5LiAgSUJNIG1ha2VzIHRoaXMgdGVjaG5vbG9neSBhdmFpbGFibGUKKworICAgIGluIEphdmEgdGhyb3VnaCB0aGUgSUNVNEogb3Blbi1zb3VyY2UgcHJvamVjdC48L3A+CisKKworCis8cD5JQ1U0SiBwcm92aWRlcyB0aGUgZm9sbG93aW5nIHRvb2xzOgorCisgICAgPHVsPgorCisgICAgPGxpPjxiPlVuaWNvZGUgTm9ybWFsaXphdGlvbjwvYj4gJiM4MjExOyBORkMsIE5GRCwgTkZLRCwgTkZLQzxicj4KKworICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9kdWNlcyBjYW5vbmljYWwgdGV4dCByZXByZXNlbnRhdGlvbnMsIG5lZWRlZCBmb3IgWE1MIGFuZCB0aGUgbmV0LgorCisgICAgPGxpPjxiPkludGVybmF0aW9uYWwgQ2FsZW5kYXJzPC9iPiAmIzgyMTE7IEFyYWJpYywgQnVkZGhpc3QsIEhlYnJldywgYW5kIEphcGFuZXNlPGJyPgorCisgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlcXVpcmVkIGZvciBjb3JyZWN0IHByZXNlbnRhdGlvbiBvZiBkYXRlcyBpbiBzb21lIGNvdW50cmllcy4KKworICAgIDxsaT48Yj5OdW1iZXIgRm9ybWF0IEVuaGFuY2VtZW50czwvYj4gJiM4MjExOyBTY2llbnRpZmljIE5vdGF0aW9uLCBTcGVsbGVkLW91dCBOdW1iZXJzPGJyPgorCisgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0VuaGFuY2VzIHN0YW5kYXJkIEphdmEgbnVtYmVyIGZvcm1hdHRpbmcuIFRoZSBzcGVsbGVkLW91dCBmb3JtYXQgaXMgdXNlZAorCitmb3IgY2hlY2tzIGFuZCBzaW1pbGFyIGRvY3VtZW50cy4KKworICAgIDxsaT48Yj5FbmhhbmNlZCB3b3JkLWJyZWFrIGRldGVjdGlvbjwvYj4gJiM4MjExOyBSdWxlLWJhc2VkLCBzdXBwb3J0cyBUaGFpPGJyPgorCisgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlcXVpcmVkIGZvciBjb3JyZWN0IHN1cHBvcnQgb2YgVGhhaS4KKworICAgIDxsaT48Yj5Vbmljb2RlIFRleHQgQ29tcHJlc3Npb248L2I+ICYjODIxMTsgU3RhbmRhcmQgY29tcHJlc3Npb24gb2YgVW5pY29kZSB0ZXh0PGJyPgorCisgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1N1aXRhYmxlIGZvciBsYXJnZSBudW1iZXJzIG9mIHNtYWxsIGZpZWxkcywgd2hlcmUgTFpXIGFuZCBzaW1pbGFyIHNjaGVtZXMKKworZG8gbm90IGFwcGx5LgorCisgICAgPGxpPjxiPkNvbGxhdGlvbjwvYj4gJiM4MjExOyBSdWxlLWJhc2VkLCB1cC10by1kYXRlIFVuaWNvZGUgQ29sbGF0aW9uIEFsZ29yaXRobSAoVUNBKSBzb3J0aW5nIG9yZGVyPGJyPgorCisgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZvciBmYXN0IG11bHRpbGluZ3VhbCBzdHJpbmcgY29tcGFyaXNvbgorCisgICAgPGxpPjxiPlRyYW5zZm9ybXM8L2I+ICYjODIxMTsgUnVsZS1iYXNlZCB0cmFuc2Zvcm1hdGlvbnMgb2YgdW5pY29kZSBkYXRhPGJyPgorCisgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1VzZWZ1bCBmb3IgYW5hbHlzaXMgYW5kIHRyYW5zbGl0ZXJhdGlvbgorCisgICAgPC91bD4KKworICAgICAgICAKKworSW4gc29tZSBjYXNlcywgdGhlIGFib3ZlIHN1cHBvcnQgaGFzIGJlZW4gcm9sbGVkIGludG8gYSBsYXRlciByZWxlYXNlIG9mCisKK0phdmEuIEZvciBleGFtcGxlLCB0aGUgVGhhaSB3b3JkLWJyZWFrIGlzIG5vdyBpbiBKYXZhIDEuNC4gSG93ZXZlciwgdGhlIG1vc3QKKworY3VycmVudCBhbmQgY29tcGxldGUgdmVyc2lvbiBvZiB0aGlzIHN1cHBvcnQgaXMgYWx3YXlzIGZvdW5kIGluIElDVTRKLgorCistLT4KKzxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJuZXdzIj48L2E+V2hhdCBJcyBOZXcgSW4gVGhpcyBSZWxlYXNlPzwvaDM+Cis8dWw+CisgIDxsaT48YSBocmVmPSIjTmV3c19UaW1lX1pvbmUiPk5ldyBUaW1lIFpvbmUgRGF0YTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0iI05ld3NfRml4ZXMiPkZpeGVzPC9hPjwvbGk+Cis8L3VsPgorPGg0PjxhIG5hbWU9Ik5ld3NfVGltZV9ab25lIiBpZD0iTmV3c19UaW1lX1pvbmUiPk5ldyBUaW1lIFpvbmUgRGF0YTwvYT48L2g0PgorPHA+UmVsZWFzZSAzLjQuNSB1cGRhdGVzIHRoZSB0aW1lIHpvbmUgZGF0YSB0byB2ZXJzaW9uIDIwMDZqIGZyb20gdGhlIE9sc29uIHRpbWUKK3pvbmUgZGF0YWJhc2UuPC9wPgorCis8aDQ+PGEgbmFtZT0iTmV3c19GaXhlcyIgaWQ9Ik5ld3NfRml4ZXMiPkZpeGVzOjwvYT48L2g0PgorPHA+VGhpcyByZWxlYXNlIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgYnVnIGZpeGVzIChub3QgYSBjb21wbGV0ZSBsaXN0KTo8dWw+Cis8bGk+PGI+amI1MTM0OjwvYj4gVGltZVpvbmUuZ2V0T2Zmc2V0IHJldHVybnMgd3Jvbmcgb2Zmc2V0IGJlZm9yZSB0aGUgZmlyc3QgdGltZXpvbmUgdHJhbnNpdGlvbjwvbGk+Cis8bGk+PGI+amI1MTQ1OjwvYj4gVXNlIElsbGVnYWxTdGF0dXNFeGNlcHRpb24gaW5zdGVhZCBvZiBJbnRlcm5hbEVycm9yIGZvciBJQ1UgcnVuLXRpbWUgZXhjZXB0aW9uPC9saT4KKzxsaT48Yj5qYjUxNDc6PC9iPiBJbnRlcm5hbCBFcnJvciBpbiBDb2xsYXRvci5nZXRJbnN0YW5jZSB3aXRoIEVjbGlwc2UgYW5kIEphdmEgNjwvbGk+Cis8bGk+PGI+amI1MTgzOjwvYj4gVVJlc291cmNlQnVuZGxlLmxvYWRGcm9tQ2FjaGUgcmV0dXJucyBpbnZhbGlkIHJlc3VsdHM8L2xpPgorPGxpPjxiPmpiNTE5NDo8L2I+IElDVTRKIGZhbGxiYWNrIGZhaWxzIHdoZW4gbGFuZ3VhZ2UgaXMgdW5zdXBwb3J0ZWQ8L2xpPgorPGxpPjxiPmpiNTIwMzo8L2I+IE1ham9yIHBlcmZvcm1hbmNlIHByb2JsZW0gd2l0aCBJQ1UgRGF0ZUZvcm1hdDwvbGk+Cis8bGk+PGI+amI1Mjg0OjwvYj4gUmVtb3ZlIGZpbmFsIGtleXdvcmQgZnJvbSBEYXRlRm9ybWF0LmZvcm1hdCBhbmQgcGFyc2U8L2xpPgorPGxpPjxiPmpiNTI5MDo8L2I+IFRpbWUgem9uZSBzdHJpbmcgcGFyc2UgcHJvYmxlbTwvbGk+Cis8L3VsPgorPGJyLz4KKzwvcD4KKzxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJsaWNlbnNlIj48L2E+TGljZW5zZSBJbmZvcm1hdGlvbjwvaDM+Cis8cD4KK1RoZSBJQ1UgcHJvamVjdHMgKElDVTRDIGFuZCBJQ1U0SikgdXNlIHRoZSBYIGxpY2Vuc2UuIFRoZSBYCitsaWNlbnNlIGlzIDxiPnN1aXRhYmxlIGZvciBjb21tZXJjaWFsIHVzZTwvYj4gYW5kIGlzIGEgcmVjb21tZW5kZWQgZnJlZSBzb2Z0d2FyZSBsaWNlbnNlCit0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgR05VIEdQTCBsaWNlbnNlLiBUaGlzIGJlY2FtZQorZWZmZWN0aXZlIHdpdGggcmVsZWFzZSAxLjguMSBvZiBJQ1U0QyBhbmQgcmVsZWFzZSAxLjMuMSBvZiBJQ1U0SiBpbgorbWlkLTIwMDEuIEFsbCBuZXcgSUNVIHJlbGVhc2VzIHdpbGwgYWRvcHQgdGhlIFggbGljZW5zZTsgcHJldmlvdXMgSUNVCityZWxlYXNlcyBjb250aW51ZSB0byB1dGlsaXplIHRoZSBJUEwgKElCTSBQdWJsaWMgTGljZW5zZSkuIFVzZXJzCitvZiBwcmV2aW91cyByZWxlYXNlcyBvZiBJQ1Ugd2hvIHdhbnQgdG8gYWRvcHQgbmV3IElDVSByZWxlYXNlcyB3aWxsCituZWVkIHRvIGFjY2VwdCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIFggbGljZW5zZS4KKzwvcD4KKzxwPgorVGhlIG1haW4gZWZmZWN0IG9mIHRoZSBjaGFuZ2UgaXMgdG8gcHJvdmlkZSBHUEwgY29tcGF0aWJpbGl0eS4KK1RoZSBYIGxpY2Vuc2UgaXMgbGlzdGVkIGFzIEdQTCBjb21wYXRpYmxlLCBzZWUgdGhlIEdOVSBwYWdlIGF0IAorPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvbGljZW5zZS1saXN0Lmh0bWwjR1BMQ29tcGF0aWJsZUxpY2Vuc2VzIj4KK2h0dHA6Ly93d3cuZ251Lm9yZy9waGlsb3NvcGh5L2xpY2Vuc2UtbGlzdC5odG1sI0dQTENvbXBhdGlibGVMaWNlbnNlczwvYT4uCitUaGlzIG1lYW5zIHRoYXQgR1BMIHByb2plY3RzIGNhbiBub3cgdXNlIElDVSBjb2RlLCBpdCBkb2VzIDxiPm5vdDwvYj4KK21lYW4gdGhhdCBwcm9qZWN0cyB1c2luZyBJQ1UgYmVjb21lIHN1YmplY3QgdG8gR1BMLgorPC9wPgorPHA+CitUaGUgdGV4dCBvZiB0aGUgWCBsaWNlbnNlIGlzIGF2YWlsYWJsZSBhdCA8YQorIGhyZWY9Imh0dHA6Ly93d3cueC5vcmcvRG93bmxvYWRzX3Rlcm1zLmh0bWwiPmh0dHA6Ly93d3cueC5vcmcvRG93bmxvYWRzX3Rlcm1zLmh0bWw8L2E+LiBUaGUKK0lCTSB2ZXJzaW9uIGNvbnRhaW5zIHRoZSBlc3NlbnRpYWwgdGV4dCBvZiB0aGUgbGljZW5zZSwgb21pdHRpbmcgdGhlCitYLXNwZWNpZmljIHRyYWRlbWFya3MgYW5kIGNvcHlyaWdodCBub3RpY2VzLiBUaGUgZnVsbCBjb3B5IG9mIDxhCisgaHJlZj0ibGljZW5zZS5odG1sIj5JQ1UncyBsaWNlbnNlPC9hPiBpcyBpbmNsdWRlZCBpbiB0aGUgZG93bmxvYWQKK3BhY2thZ2UuCis8L3A+Cis8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0iUGxhdGZvcm1EZXBlbmRlbmNpZXMiPjwvYT5QbGF0Zm9ybSBEZXBlbmRlbmNpZXM8L2gzPgorPHA+IEJ5IGRlZmF1bHQgSUNVNEogZGVwZW5kcyBvbiBmdW5jdGlvbmFsaXR5IHRoYXQgaXMgb25seSBhdmFpbGFibGUKK2luIEpESyAxLjQuICBXZSBwcm92aWRlIHRoZSBhYmlsaXR5IHRvIGJ1aWxkIGEgdmFyaWFudCBvZiBJQ1U0SgordGhhdCB3aWxsIHJ1biBvbiBKREsgMS4zLCBidXQgbm90IGFsbCBidWlsZCB0YXJnZXRzIHdvcmsgb24gdGhhdAorcGxhdGZvcm0uIEN1cnJlbnRseSAxLjEueCBhbmQgMS4yLnggSlZNcyBhcmUgdW5zdXBwb3J0ZWQgYW5kIHVudGVzdGVkLAorYW5kIHlvdSB1c2UgdGhlIGNvbXBvbmVudHMgb24gdGhlc2UgSlZNcyBhdCB5b3VyIG93biByaXNrLjwvcD4KKzxwPiBUaGUgcmVmZXJlbmNlIHBsYXRmb3JtcyB3aGljaCB3ZSBzdXBwb3J0IGFuZCB0ZXN0IElDVTRKIG9uIGFyZTo8L3A+Cis8dWw+CisgIDxsaT4gV2luWFAsIElCTSBKREsgMS40LjI8L2xpPgorICA8bGk+IFNvbGFyaXMgNS45LCBTdW4gSkRLIDEuNS4wPC9saT4KKyAgPGxpPiBBSVggNS4yLCBJQk0gSkRLIDEuNC4yPC9saT4KKzwvdWw+Cis8cD5QbGVhc2UgdXNlIHRoZSBtb3N0IHJlY2VudCB1cGRhdGVzIG9mIHRoZSBzdXBwb3J0ZWQgSkRLIHZlcnNpb25zLjwvcD4KKzxwPkFkZGl0aW9uYWxseSwgd2UgaGF2ZSBidWlsdCBhbmQgdGVzdGVkIElDVTRKIG9uIHRoZSBmb2xsb3dpbmcgPGI+dW5zdXBwb3J0ZWQ8L2I+CitwbGF0Zm9ybXMgKG5vdGUsIG9ubHkgc29tZSBidWlsZC90ZXN0IHRhcmdldHMgd29yayBvbiAxLjMgcGxhdGZvcm1zKToKKzwvcD4KKzx1bD4KKzxsaT4gV2luMksgLyBJQk0gSkRLIDEuNC4xLCBTdW4gSkRLICAxLjQsIDEuNC4xLCAxLjQuMjwvbGk+Cis8bGk+IFdpblhQIC8gSUJNIEpESyAxLjMuMSwgMS40LjEsIFN1biBKREsgMS4zLjEsIDEuNC4yLCAxLjUuMDwvbGk+Cis8bGk+IFNvbGFyaXMgNS42ICwgU29sYXJpcyA1LjcgLyBTdW4gSkRLIDEuNCwgMS40LjEsIDEuNC4yPC9saT4KKzxsaT4gU29sYXJpcyA1LjkgLyBTdW4gSkRLIDEuMy4xLCAxLjQsIDEuNC4xLCAxLjQuMjwvbGk+Cis8bGk+IEFJWCA1LjEsIEFJWCA1LjIgLyBJQk0gSkRLIDEuNC4xPC9saT4KKzxsaT4gUmVkSGF0IEVudGVycHJpc2UgTGludXggMy8gIElCTSBKREsgMS40LjEsIDEuNC4wLCBTdW4gSkRLIDEuMy4xLCAxLjQsIDEuNC4xLCAxLjQuMiwgMS41LjA8L2xpPgorPGxpPiBSZWRIYXQgTGludXggNy4yLyAgSUJNIEpESyAxLjQuMSwgMS40LjAsIFN1biBKREsgMS40LCAxLjQuMSwgMS40LjIsIDEuNS4wPC9saT4KKzwvdWw+Cis8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0iZG93bmxvYWQiPjwvYT5Ib3cgdG8gRG93bmxvYWQgSUNVNEo8L2gzPgorPHA+VGhlcmUgYXJlIHR3byB3YXlzIHRvIGRvd25sb2FkIHRoZSBJQ1U0SiByZWxlYXNlcy4KKzwvcD4KKzx1bCB0eXBlPSJkaXNjIj4KKyAgPGxpPjxiPk9mZmljaWFsIFJlbGVhc2UgU25hcHNob3Q6PC9iPjxicj4KK0lmIHlvdSB3YW50IHRvIHVzZSBJQ1U0SiAoYXMgb3Bwb3NlZCB0byBkZXZlbG9waW5nIGl0KSwgeW91ciBiZXN0IGJldAoraXMgdG8gZG93bmxvYWQgYW4gb2ZmaWNpYWwsIHBhY2thZ2VkIHZlcnNpb24gb2YgdGhlIElDVTRKIHNvdXJjZQorY29kZS4gVGhlc2UgdmVyc2lvbnMgYXJlIHRlc3RlZCBtb3JlIHRob3JvdWdobHkgdGhhbiBkYXktdG8tZGF5CitkZXZlbG9wbWVudCBidWlsZHMsIGFuZCB0aGV5IGFyZSBwYWNrYWdlZCBpbiBqYXIgZmlsZXMgZm9yIGNvbnZlbmllbnQKK2Rvd25sb2FkLiBUaGVzZSBwYWNrYWdlZCBmaWxlcyBjYW4gYmUgZm91bmQgYXQgdGhlIDxhCisgaHJlZj0iaHR0cDovL2libS5jb20vc29mdHdhcmUvZ2xvYmFsaXphdGlvbi9pY3UvZG93bmxvYWRzLmpzcCI+SUNVIERvd25sb2FkcyBwYWdlPC9hPi4KK0EgcGFja2FnZWQgc25hcHNob3QgaXMgbmFtZWQgPGI+aWN1NGpzcmNfWFhYLmphcjwvYj4sIHdoZXJlIFhYWAoraXMgdGhlIHJlbGVhc2UgdmVyc2lvbiBudW1iZXIuIFBsZWFzZSB1bmphciB0aGlzIGZpbGUuIEl0Cit3aWxsIHJlY29uc3RydWN0IHRoZSBzb3VyY2UgZGlyZWN0b3J5LjwvbGk+Cis8L3VsPgorPHVsIHR5cGU9ImRpc2MiPgorICA8bGk+PGI+Q1ZTIFNvdXJjZSBSZXBvc2l0b3J5OjwvYj48YnI+CitJZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gZGV2ZWxvcGluZyBmZWF0dXJlcywgcGF0Y2hlcywgb3IgYnVnIGZpeGVzIGZvcgorSUNVNEosIHlvdSBzaG91bGQgcHJvYmFibHkgYmUgd29ya2luZyB3aXRoIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUKK0lDVTRKIHNvdXJjZSBjb2RlLiBZb3Ugd2lsbCBuZWVkIHRvIGNoZWNrIHRoZSBjb2RlIG91dCBvZiBvdXIgQ1ZTCityZXBvc2l0b3J5IHRvIGVuc3VyZSB0aGF0IHlvdSBoYXZlIHRoZSBtb3N0IHJlY2VudCB2ZXJzaW9uIG9mIGFsbCBvZgordGhlIGZpbGVzLiBUaGVyZSBhcmUgc2V2ZXJhbCB3YXlzIHRvIGRvIHRoaXMuIFBsZWFzZSBmb2xsb3cgdGhlCitkaXJlY3Rpb25zIHRoYXQgYXJlIGNvbnRhaW5lZCBvbiB0aGUgPGEKKyBocmVmPSJodHRwOi8vaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uL2ljdS9yZXBvc2l0b3J5LmpzcCI+U291cmNlCisgUmVwb3NpdG9yeSBwYWdlPC9hPiBmb3IgZGV0YWlscy4KKyAgPC9saT4KKzwvdWw+Cis8cD5Gb3IgbW9yZSBkZXRhaWxzIG9uIGhvdyB0byBkb3dubG9hZCBJQ1U0SiBkaXJlY3RseSBmcm9tIHRoZSB3ZWIKK3NpdGUsIHBsZWFzZSBzZWUgdGhlIElDVSBkb3dubG9hZHMgcGFnZSBhdCA8YQorIGhyZWY9Imh0dHA6Ly9pYm0uY29tL3NvZnR3YXJlL2dsb2JhbGl6YXRpb24vaWN1L2Rvd25sb2Fkcy5qc3AiPmh0dHA6Ly9pYm0uY29tL3NvZnR3YXJlL2dsb2JhbGl6YXRpb24vaWN1L2Rvd25sb2Fkcy5qc3A8L2E+Cis8L3A+Cis8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0iV2hhdENvbnRhaW4iPjwvYT5UaGUgU3RydWN0dXJlIGFuZCBDb250ZW50cyBvZgorSUNVNEo8L2gzPgorPHA+QmVsb3csIDxiPiRSb290PC9iPiBpcyB0aGUgcGxhY2VtZW50IG9mIHRoZSBpY3UgZGlyZWN0b3J5IGluIHlvdXIKK2ZpbGUgc3lzdGVtLCBsaWtlCisiZHJpdmU6XC4uLlxpY3U0aiIgaW4geW91ciBlbnZpcm9ubWVudC4gImRyaXZlOlwuLi4iIHN0YW5kcyBmb3IgYW55Citkcml2ZSBhbmQgYW55IGRpcmVjdG9yeSBvbiB0aGF0IGRyaXZlIHRoYXQgeW91IGNob3NlIHRvIGluc3RhbGwgaWN1NGoKK2ludG8uIDwvcD4KKzxwPjxiPkluZm9ybWF0aW9uIGFuZCBidWlsZCBmaWxlczo8L2I+PC9wPgorPHRhYmxlIGJnY29sb3I9IiNjY2NjZmYiIGNlbGxwYWRkaW5nPSIzIiBmcmFtZT0idm9pZCIgd2lkdGg9IjYyMyI+CisgIDx0Ym9keT4KKyAgICA8dHI+CisgICAgICA8dGQgYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj48Yj5yZWFkbWUuaHRtbDwvYj48YnI+CisodGhpcyBmaWxlKTwvdGQ+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QSBkZXNjcmlwdGlvbiBvZiBJQ1U0SgorKEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBmb3IgSmF2YSk8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+bGljZW5zZS5odG1sPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5UaGUgWCBsaWNlbnNlLCB1c2VkIGJ5CitJQ1U0SjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5idWlsZC54bWw8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkFudCBidWlsZCBmaWxlLiBTZWUgPGEKKyBocmVmPSIjSG93VG9JbnN0YWxsSmF2YWMiPkhvdyB0byBJbnN0YWxsIGFuZCBCdWlsZDwvYT4gZm9yIG1vcmUKK2luZm9ybWF0aW9uPC90ZD4KKyAgICA8L3RyPgorICA8L3Rib2R5PgorPC90YWJsZT4KKzxwPjxiPlRoZSBzb3VyY2UgZGlyZWN0b3JpZXMgbWlycm9yIHRoZSBwYWNrYWdlIHN0cnVjdHVyZSBvZiB0aGUgY29kZS48L2I+PGJyPgorPGZvbnQgY29sb3I9InJlZCI+Q29yZTwvZm9udD4gcGFja2FnZXMgYmVjb21lIHBhcnQgb2YgdGhlIElDVTRKIGphcgorZmlsZS48YnI+Cis8Zm9udCBjb2xvcj0icmVkIj5BUEk8L2ZvbnQ+IHBhY2thZ2VzIGNvbnRhaW4gY2xhc3NlcyB3aXRoIHN1cHBvcnRlZAorQVBJLiA8YnI+Cis8Zm9udCBjb2xvcj0icmVkIj5SaWNoVGV4dDwvZm9udD4gY2xhc3NlcyBhcmUgQ29yZSBhbmQgQVBJLCBidXQgY2FuIGJlCityZW1vdmVkIGZyb20gaWN1NGouamFyLCBhbmQgY2FuIGJlIGJ1aWx0IGludG8gdGhlaXIgb3duIGphci48L3A+Cis8dGFibGUgYmdjb2xvcj0iI2NjY2NmZiIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgZnJhbWU9InZvaWQiCisgd2lkdGg9IjYyMyI+CisgIDx0Ym9keT4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj4kUm9vdC9zcmMvY29tL2libS9pY3UvZGV2PGJyPgorICAgICAgPGZvbnQgY29sb3I9InJlZCI+Tm9uLUNvcmUsIE5vbi1BUEk8L2ZvbnQ+PC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5QYWNrYWdlcyB1c2VkIGZvcgoraW50ZXJuYWwgZGV2ZWxvcG1lbnQ6CisgICAgICA8dWw+CisgICAgICAgIDxsaT5EYXRhOiBkYXRhIHVzZWQgYnkgdGVzdHMgYW5kIGluIGJ1aWxkaW5nIElDVTwvbGk+CisgICAgICAgIDxsaT5EZW1vczogQ2FsZW5kYXIsIEhvbGlkYXksIEJyZWFrIEl0ZXJhdG9yLCBSdWxlLWJhc2VkIE51bWJlcgorRm9ybWF0LCBUcmFuc2Zvcm1hdGlvbnM8YnI+CisoU2VlIDxhIGhyZWY9IiN0cnlpbmdvdXQiPmJlbG93PC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUKK2RlbW9zLik8L2xpPgorICAgICAgICA8bGk+VGVzdHM6IEFQSSBhbmQgY292ZXJhZ2UgdGVzdHMgb2YgYWxsIGZ1bmN0aW9uYWxpdHkuPGJyPgorRm9yIGluZm9ybWF0aW9uIGFib3V0IHJ1bm5pbmcgdGhlIHRlc3RzLCBzZWUKKyRSb290L3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0QWxsLmphdmEuPC9saT4KKyAgICAgICAgPGxpPlRvb2xzOiB0b29scyB1c2VkIHRvIGJ1aWxkIGRhdGEgdGFibGVzLCBldGMuPC9saT4KKyAgICAgIDwvdWw+CisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3Qvc3JjL2NvbS9pYm0vaWN1L2ltcGw8YnI+CisgICAgICA8Zm9udCBjb2xvcj0icmVkIj5Db3JlLCBOb24tQVBJPC9mb250PjwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+VGhlc2UgYXJlIHV0aWxpdHkgY2xhc3NlcwordXNlZCBmcm9tIGRpZmZlcmVudCBJQ1U0SiBjb3JlIHBhY2thZ2VzLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj4kUm9vdC9zcmMvY29tL2libS9pY3UvbGFuZzxicj4KKyAgICAgIDxmb250IGNvbG9yPSJyZWQiPkNvcmUsIEFQSTwvZm9udD48L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkNoYXJhY3RlciBwcm9wZXJ0aWVzCitwYWNrYWdlLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj4kUm9vdC9zcmMvY29tL2libS9pY3UvbWF0aDxicj4KKyAgICAgIDxmb250IGNvbG9yPSJyZWQiPkNvcmUsIEFQSTwvZm9udD48L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkFkZGl0aW9uYWwgbWF0aCBjbGFzc2VzLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj4kUm9vdC9zcmMvY29tL2libS9pY3UvdGV4dDxicj4KKyAgICAgIDxmb250IGNvbG9yPSJyZWQiPkNvcmUsIEFQSTwvZm9udD48L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkFkZGl0aW9uYWwgdGV4dCBjbGFzc2VzLgorVGhlc2UgYWRkIHRvLCBhbmQgaW4gc29tZSBjYXNlcyByZXBsYWNlLCByZWxhdGVkIGNvcmUgSmF2YSBjbGFzc2VzOgorICAgICAgPHVsPgorICAgICAgICA8bGk+QXJhYmljIHNoYXBpbmcgPC9saT4KKyAgICAgICAgPGxpPkJyZWFrIGl0ZXJhdGlvbiA8L2xpPgorICAgICAgICA8bGk+RGF0ZSBmb3JtYXR0aW5nIDwvbGk+CisgICAgICAgIDxsaT5OdW1iZXIgZm9ybWF0dGluZyA8L2xpPgorICAgICAgICA8bGk+VHJhbnNsaXRlcmF0aW9uIDwvbGk+CisgICAgICAgIDxsaT5Ob3JtYWxpemF0aW9uIDwvbGk+CisgICAgICAgIDxsaT5TdHJpbmcgbWFuaXB1bGF0aW9uIDwvbGk+CisgICAgICAgIDxsaT5Db2xsYXRpb24gPC9saT4KKyAgICAgICAgPGxpPlN0cmluZyBzZWFyY2ggPC9saT4KKyAgICAgICAgPGxpPlVuaWNvZGUgY29tcHJlc3Npb24gPC9saT4KKyAgICAgICAgPGxpPlVuaWNvZGUgc2V0cyA8L2xpPgorICAgICAgPC91bD4KKyAgICAgIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj4kUm9vdC9zcmMvY29tL2libS9pY3UvdXRpbDxicj4KKyAgICAgIDxmb250IGNvbG9yPSJyZWQiPkNvcmUsIEFQSTwvZm9udD48L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkFkZGl0aW9uYWwgdXRpbGl0eQorY2xhc3NlczoKKyAgICAgIDx1bD4KKyAgICAgICAgPGxpPkNhbGVuZGFycyAtIEdyZWdvcmlhbiwgQnVkZGhpc3QsIENvcHRpYywgRXRoaW9waWMsIEhlYnJldywgSXNsYW1pYywgSmFwYW5lc2UgPC9saT4KKyAgICAgICAgPGxpPkhvbGlkYXk8L2xpPgorICAgICAgICA8bGk+VGltZVpvbmU8L2xpPgorICAgICAgICA8bGk+VmVyc2lvbkluZm88L2xpPgorICAgICAgICA8bGk+SXRlcmF0aW9uPC9saT4KKyAgICAgIDwvdWw+CisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+JFJvb3Qvc3JjL2NvbS9pYm0vcmljaHRleHQ8YnI+CisgICAgICA8Zm9udCBjb2xvcj0icmVkIj5SaWNoVGV4dDwvZm9udD48L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPlN0eWxlZCB0ZXh0IGVkaXRpbmcKK3BhY2thZ2UuIFRoaXMgaW5jbHVkZXMgZGVtb3MsIHRlc3RzLCBhbmQgR1VJcyBmb3IgZWRpdGluZyBhbmQKK2Rpc3BsYXlpbmcgc3R5bGVkIHRleHQuIFRoZSByaWNodGV4dCBwYWNrYWdlIHByb3ZpZGVzIGEgc2Nyb2xsYWJsZQorZGlzcGxheSwgdHlwaW5nLCBhcnJvdy1rZXkgc3VwcG9ydCwgdGFicywgYWxpZ25tZW50IGFuZCBqdXN0aWZpY2F0aW9uLAord29yZC0gYW5kIHNlbnRlbmNlLXNlbGVjdGlvbiAoYnkgZG91YmxlLWNsaWNraW5nIGFuZCB0cmlwbGUtY2xpY2tpbmcsCityZXNwZWN0aXZlbHkpLCB0ZXh0IHN0eWxlcywgY2xpcGJvYXJkIG9wZXJhdGlvbnMgKGN1dCwgY29weSBhbmQgcGFzdGUpCithbmQgYSBsb2cgb2YgY2hhbmdlcyBmb3IgdW5kby1yZWRvLiBSaWNodGV4dCB1c2VzIEphdmEncyBUZXh0TGF5b3V0IGFuZAorY29tcGxleCB0ZXh0IHN1cHBvcnQgKHByb3ZpZGVkIHRvIFN1biBieSB0aGUgSUNVNEogdGVhbSkuPC90ZD4KKyAgICA8L3RyPgorICA8L3Rib2R5PgorPC90YWJsZT4KKzxwPjxiPkJ1aWxkaW5nIElDVTRKIGNyZWF0ZXMgYW5kIHBvcHVsYXRlcyB0aGUgZm9sbG93aW5nIGRpcmVjdG9yaWVzOjwvYj48L3A+Cis8dGFibGUgYmdjb2xvcj0iI2NjY2NmZiIgY2VsbHBhZGRpbmc9IjMiIGZyYW1lPSJ2b2lkIiB3aWR0aD0iNjIzIj4KKyAgPHRib2R5PgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPiRSb290L2NsYXNzZXM8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbnRhaW5zIGFsbCBjbGFzcyBmaWxlczwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj4kUm9vdC9kb2M8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbnRhaW5zIEphdmFEb2MgZm9yIGFsbAorcGFja2FnZXM8L3RkPgorICAgIDwvdHI+CisgIDwvdGJvZHk+Cis8L3RhYmxlPgorPGJyPgorPHA+PGI+SUNVNEogZGF0YSBpcyBzdG9yZWQgaW4gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6PC9iPjwvcD4KKzx0YWJsZSBiZ2NvbG9yPSIjY2NjY2ZmIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBmcmFtZT0idm9pZCIKKyB3aWR0aD0iNjIzIj4KKyAgPHRib2R5PgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPjxjb2RlPmNvbS5pYm0uaWN1LmltcGwuZGF0YTwvY29kZT48L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkhvbGRzIGRhdGEgdXNlZCBieSB0aGUKK0lDVTRKIGNvcmUgcGFja2FnZXMgKDxjb2RlPmNvbS5pYm0uaWN1Lmxhbmc8L2NvZGU+LCA8Y29kZT5jb20uaWJtLmljdS50ZXh0PC9jb2RlPiwKKyAgICAgIDxjb2RlPmNvbS5pYm0uaWN1LnV0aWw8L2NvZGU+LCA8Y29kZT5jb20uaWJtLmljdS5tYXRoPC9jb2RlPiBhbmQKKyAgICAgIDxjb2RlPmNvbS5pYm0uaWN1LnRleHQ8L2NvZGU+KS4gSW4gcGFydGljdWxhciwgYWxsIHJlc291cmNlCitpbmZvcm1hdGlvbiBpcyBzdG9yZWQgaGVyZS48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+PGNvZGU+Y29tLmlibS5pY3UuZGV2LmRhdGE8L2NvZGU+PC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5Ib2xkcyBkYXRhIHRoYXQgaXMgbm90CitwYXJ0IG9mIElDVTRKIGNvcmUsIGJ1dCByYXRoZXIgcGFydCBvZiBhIHRlc3QsIHNhbXBsZSwgb3IgZGVtby48L3RkPgorICAgIDwvdHI+CisgIDwvdGJvZHk+Cis8L3RhYmxlPgorPGJyPgorPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9IkFQSSI+PC9hPldoZXJlIHRvIGdldCBEb2N1bWVudGF0aW9uPC9oMz4KKzxwPlRoZSA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvIj5JQ1UgdXNlcidzCitndWlkZTwvYT4gY29udGFpbnMgbG90cyBvZiBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IElDVSwgaW4gaXRzIEMsCitDKyssIGFuZCBKYXZhIGluY2FybmF0aW9ucy48L3A+Cis8cD5UaGUgY29tcGxldGUgQVBJIGRvY3VtZW50YXRpb24gZm9yIElDVTRKIChqYXZhZG9jKSBpcyBhdmFpbGFibGUgb24KK3RoZSBJQ1U0SiB3ZWIgc2l0ZSwgYW5kIGNhbiBiZSBidWlsdCBmcm9tIHRoZSBzb3VyY2VzOgorPC9wPgorPHVsPgorICA8bGk+PGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqLyI+SW5kZXgKK3RvIGFsbCBJQ1U0SiBBUEk8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXREZXRlY3Rvci5odG1sIj5DaGFyc2V0IERldGVjdG9yPC9hPiAmIzgyMTE7IERldGVjdGlvbiBvZiBjaGFyc2V0IGZyb20gYSBieXRlIHN0cmVhbTwvbGk+CisgIDxsaT5JbnRlcm5hdGlvbmFsIENhbGVuZGFycyAmIzgyMTE7IDxhCisgICAgPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdXRpbC9CdWRkaGlzdENhbGVuZGFyLmh0bWwiPkJ1ZGRoaXN0PC9hPiwKKyAgICA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS91dGlsL0NoaW5lc2VDYWxlbmRhci5odG1sIj5DaGluZXNlPC9hPiwKKyAgICA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS91dGlsL0NvcHRpY0NhbGVuZGFyLmh0bWwiPkNvcHRpYzwvYT4sCisgICAgPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdXRpbC9FdGhpb3BpY0NhbGVuZGFyLmh0bWwiPkV0aGlvcGljPC9hPiwKKyAgICA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS91dGlsL0dyZWdvcmlhbkNhbGVuZGFyLmh0bWwiPkdyZWdvcmlhbjwvYT4sCisgICAgPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdXRpbC9IZWJyZXdDYWxlbmRhci5odG1sIj5IZWJyZXc8L2E+LAorICAgIDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3V0aWwvSXNsYW1pY0NhbGVuZGFyLmh0bWwiPklzbGFtaWM8L2E+LAorICAgIDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3V0aWwvSmFwYW5lc2VDYWxlbmRhci5odG1sIj5KYXBhbmVzZTwvYT4uPC9saT4KKyAgPGxpPjxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3RleHQvTm9ybWFsaXplci5odG1sIj5Vbmljb2RlCitOb3JtYWxpemF0aW9uPC9hPiAmIzgyMTE7IENhbm9uaWNhbCB0ZXh0IHJlcHJlc2VudGF0aW9uIGZvciBXM0MuPC9saT4KKyAgPGxpPjxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3RleHQvTnVtYmVyRm9ybWF0Lmh0bWwiPk51bWJlcgorRm9ybWF0IEVuaGFuY2VtZW50czwvYT4gJiM4MjExOyBTY2llbnRpZmljIE5vdGF0aW9uLCBTcGVsbGVkIG91dC48L2xpPgorICA8bGk+PGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9hcGlyZWYvaWN1NGovY29tL2libS9pY3UvdGV4dC9CcmVha0l0ZXJhdG9yLmh0bWwiPkVuaGFuY2VkCit3b3JkLWJyZWFrIGRldGVjdGlvbjwvYT4gJiM4MjExOyBSdWxlLWJhc2VkLCBzdXBwb3J0cyBUaGFpPC9saT4KKyAgPGxpPjxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3IuaHRtbCI+VHJhbnNsaXRlcmF0aW9uPC9hPgorJiM4MjExOyBBIGdlbmVyYWwgZnJhbWV3b3JrIGZvciBvbnZlcnRpbmcgdGV4dCBmcm9tIG9uZSBmb3JtYXQgdG8gYW5vdGhlciwKK2UuZy4gQ3lyaWxsaWMgdG8gTGF0aW4sIG9yIEhleCB0byBVbmljb2RlLiA8L2xpPgorICA8bGk+VW5pY29kZSBUZXh0IDxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvYXBpcmVmL2ljdTRqL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUNvbXByZXNzb3IuaHRtbCI+Q29tcHJlc3Npb248L2E+CismYW1wOyA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVEZWNvbXByZXNzb3IuaHRtbCI+RGVjb21wcmVzc2lvbjwvYT4KKyYjODIxMTsgMjoxIGNvbXByZXNzaW9uIG9uIEVuZ2xpc2ggVW5pY29kZSB0ZXh0LjwvbGk+CisgIDxsaT5Db2xsYXRpb24gLSA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZENvbGxhdG9yLmh0bWwiPlJ1bGUtYmFzZWQKK3NvcnRpbmc8L2E+LCA8YQorIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2FwaXJlZi9pY3U0ai9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1NlYXJjaC5odG1sIj5FZmZpY2llbnQKK211bHRpLWxpbmd1YWwgc2VhcmNoaW5nPC9hPiA8L2xpPgorPC91bD4KKzxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJIb3dUb0luc3RhbGxKYXZhYyI+PC9hPkhvdyB0byBJbnN0YWxsIGFuZCBCdWlsZDwvaDM+Cis8cD5UbyBpbnN0YWxsIElDVTRKLCBzaW1wbHkgcGxhY2UgdGhlIHByZWJ1aWx0IGphciBmaWxlIDxzdHJvbmc+aWN1NGouamFyPC9zdHJvbmc+CitvbiB5b3VyCitKYXZhIENMQVNTUEFUSC4gTm8gb3RoZXIgZmlsZXMgYXJlIG5lZWRlZC48L3A+Cis8cD48Yj5FY2xpcHNlIHVzZXJzOjwvYj4gU2VlIHRoZSBJQ1U0SiBzaXRlIGZvciBpbmZvcm1hdGlvbiBvbjxhCisgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvZG9jcy9lY2xpcHNlX2hvd3RvL2VjbGlwc2VfaG93dG8uaHRtbCI+Citob3cgdG8gY29uZmlndXJlIEVjbGlwc2U8L2E+IHRvIGJ1aWxkIElDVTRKLjwvcD4KKzxwPlRvIGJ1aWxkIElDVTRKLCB5b3Ugd2lsbCBuZWVkIGEgSmF2YTIgSkRLIGFuZCB0aGUgQW50IGJ1aWxkIHN5c3RlbS4KK1dlIHN0cm9uZ2x5IHJlY29tbWVuZCB1c2luZyB0aGUgQW50IGJ1aWxkIHN5c3RlbSB0byBidWlsZCBJQ1U0Si4KK0l0J3MgcmVjb21tZW5kZWQgdG8gaW5zdGFsbCBib3RoIHRoZSBKREsgYW5kIEFudCBzb21ld2hlcmUgPGVtPm91dHNpZGU8L2VtPgordGhlIElDVTRKIGRpcmVjdG9yeS4gRm9yIGV4YW1wbGUsIG9uIExpbnV4IHlvdSBtaWdodCBpbnN0YWxsIHRoZXNlIGluCisvdXNyL2xvY2FsLjwvcD4KKzx1bD4KKyAgPGxpPkluc3RhbGwgYSByZWNlbnQgSkRLLCB2ZXJzaW9uIDEuNC54IHdpbGwgd29yay48L2xpPgorICA8bGk+SW5zdGFsbCB0aGUgPGEgaHJlZj0iaHR0cDovL2FudC5hcGFjaGUub3JnLyI+PHN0cm9uZz5BbnQ8L3N0cm9uZz48L2E+CitidWlsZCBzeXN0ZW0uIEFudCBpcyBhIHBvcnRhYmxlLCBKYXZhLWJhc2VkIGJ1aWxkIHN5c3RlbSBzaW1pbGFyIHRvCittYWtlLiBJQ1U0SiB1c2VzIEFudCBiZWNhdXNlIGl0IGludHJvZHVjZXMgbm8gb3RoZXIgZGVwZW5kZW5jaWVzLCBpdCdzCitwb3J0YWJsZSwgYW5kIGl0J3MgZWFzaWVyIHRvIG1hbmFnZSB0aGFuIGEgY29sbGVjdGlvbiBvZiBtYWtlZmlsZXMuIFdlCitjdXJyZW50bHkgYnVpbGQgSUNVNEogdXNpbmcgYSBzaW5nbGUgbWFrZWZpbGUgb24gYm90aCBXaW5kb3dzIDl4IGFuZAorTGludXggdXNpbmcgQW50LiBUaGUgYnVpbGQgc3lzdGVtIHJlcXVpcmVzIEFudCAxLjYgb3IgbGF0ZXIuCisgICAgPHA+SW5zdGFsbGluZyBBbnQgaXMgc3RyYWlnaHRmb3J3YXJkLiBEb3dubG9hZCBpdCAoc2VlIDxhCisgaHJlZj0iaHR0cDovL2FudC5hcGFjaGUub3JnL2JpbmRvd25sb2FkLmNnaSI+aHR0cDovL2FudC5hcGFjaGUub3JnL2JpbmRvd25sb2FkLmNnaTwvYT4pLAorZXh0cmFjdCBpdCBvbnRvIHlvdXIgc3lzdGVtLCBzZXQgc29tZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIGFuZCBhZGQKK2l0cyBiaW4gZGlyZWN0b3J5IHRvIHlvdXIgcGF0aC4gRm9yIGV4YW1wbGU6IDwvcD4KKyAgICA8cHJlPiAgICBzZXQgSkFWQV9IT01FPUM6XGpkazEuNC4yPGJyPiAgICBzZXQgQU5UX0hPTUU9QzpcYW50PGJyPiAgICBzZXQgUEFUSD0lUEFUSCU7JUFOVF9IT01FJVxiaW48L3ByZT4KKyAgICA8cD5TZWUgdGhlIGN1cnJlbnQgQW50IGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuPC9wPgorICA8L2xpPgorPC91bD4KKzxwPk9uY2UgdGhlIEpESyBhbmQgQW50IGFyZSBpbnN0YWxsZWQsIGJ1aWxkaW5nIGlzIGp1c3QgYSBtYXR0ZXIgb2YKK3R5cGluZyA8c3Ryb25nPmFudDwvc3Ryb25nPiBpbiB0aGUgSUNVNEogcm9vdCBkaXJlY3RvcnkuIFRoaXMgY2F1c2VzCit0aGUgQW50IGJ1aWxkIHN5c3RlbSB0byBwZXJmb3JtIGEgYnVpbGQgYXMgc3BlY2lmaWVkIGJ5IHRoZSBmaWxlCis8c3Ryb25nPmJ1aWxkLnhtbDwvc3Ryb25nPiwgbG9jYXRlZCBpbiB0aGUgSUNVNEogcm9vdCBkaXJlY3RvcnkuIFlvdQorY2FuIGdpdmUgQW50IG9wdGlvbnMgbGlrZSAtdmVyYm9zZSwgYW5kIHlvdSBjYW4gc3BlY2lmeSB0YXJnZXRzLiBBbnQKK3dpbGwgb25seSBidWlsZCB3aGF0J3MgYmVlbiBjaGFuZ2VkIGFuZCB3aWxsIHJlc29sdmUgZGVwZW5kZW5jaWVzCitwcm9wZXJseS4gRm9yIGV4YW1wbGU6PC9wPgorPGJsb2NrcXVvdGU+CisgIDxwcmU+RjpcaWN1NGomZ3Q7YW50IHRlc3RzPGJyPkJ1aWxkZmlsZTogYnVpbGQueG1sPGJyPlByb2plY3QgYmFzZSBkaXIgc2V0IHRvOiBGOlxpY3U0ajxicj5FeGVjdXRpbmcgVGFyZ2V0OiBjb3JlPGJyPkNvbXBpbGluZyA3MSBzb3VyY2UgZmlsZXMgdG8gRjpcaWN1NGpcY2xhc3Nlczxicj5FeGVjdXRpbmcgVGFyZ2V0OiB0ZXN0czxicj5Db21waWxpbmcgMjQgc291cmNlIGZpbGVzIHRvIEY6XGljdTRqXGNsYXNzZXM8YnI+Q29tcGxldGVkIGluIDE5IHNlY29uZHM8L3ByZT4KKzwvYmxvY2txdW90ZT4KKzxwPlRoZSBmb2xsb3dpbmcgYXJlIHNvbWUgdGFyZ2V0cyB0aGF0IHlvdSBjYW4gcHJvdmlkZSB0byA8Yj5hbnQ8L2I+LgorRm9yIG1vcmUgdGFyZ2V0cyBydW4gPGNvZGU+YW50IC1wcm9qZWN0aGVscDwvY29kZT4gb3Igc2VlIHRoZSBidWlsZC54bWwgZmlsZS48L3A+Cis8dGFibGUgYmdjb2xvcj0iI2NjY2NmZiIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgZnJhbWU9InZvaWQiCisgd2lkdGg9IjYyMyI+CisgIDx0Ym9keT4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5hbGw8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkJ1aWxkIGFsbCB0YXJnZXRzLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5jb3JlPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5CdWlsZCB0aGUgbWFpbiBjbGFzcworZmlsZXMgaW4gdGhlIHN1YmRpcmVjdG9yeSA8c3Ryb25nPmNsYXNzZXM8L3N0cm9uZz4uIElmIG5vIHRhcmdldCBpcworc3BlY2lmaWVkLCBjb3JlIGlzIGFzc3VtZWQuPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPnRlc3RzPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5CdWlsZCB0aGUgdGVzdCBjbGFzcworZmlsZXMuPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmRlbW9zPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5CdWlsZCB0aGUgZGVtb3MuPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPnRvb2xzPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5CdWlsZCB0aGUgdG9vbHMuPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmRvY3M8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPlJ1biBqYXZhZG9jIG92ZXIgdGhlIG1haW4KK2NsYXNzIGZpbGVzLCBnZW5lcmF0aW5nIGFuIEhUTUwgZG9jdW1lbnRhdGlvbiB0cmVlIGluIHRoZSBzdWJkaXJlY3RvcnkgPHN0cm9uZz5kb2M8L3N0cm9uZz4uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmphcjwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+Q3JlYXRlIGEgamFyIGFyY2hpdmUgPHN0cm9uZz5pY3U0ai5qYXI8L3N0cm9uZz4KK2luIHRoZSByb290IElDVTRKIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBtYWluIGNsYXNzIGZpbGVzLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5qYXJTcmM8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkxpa2UgdGhlIDxzdHJvbmc+amFyPC9zdHJvbmc+Cit0YXJnZXQsIGJ1dCBjb250YWluaW5nIG9ubHkgdGhlIHNvdXJjZSBmaWxlcy4gPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPmphckRvY3M8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkxpa2UgdGhlIDxzdHJvbmc+amFyPC9zdHJvbmc+Cit0YXJnZXQsIGJ1dCBjb250YWluaW5nIG9ubHkgdGhlIGRvY3MuIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249InJpZ2h0IiBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5yaWNoZWRpdDwvdGg+CisgICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+QnVpbGQgdGhlIHJpY2hlZGl0IGNvcmUKK2NsYXNzIGZpbGVzIGFuZCB0ZXN0cy4gPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPnJpY2hlZGl0SmFyPC90aD4KKyAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIiB2YWxpZ249ImJhc2VsaW5lIj5DcmVhdGUgdGhlIHJpY2hlZGl0IGphcgorZmlsZSAod2hpY2ggY29udGFpbnMgb25seSB0aGUgcmljaGVkaXQgY29yZSBjbGFzcyBmaWxlcykuIFRoZSBmaWxlIDxzdHJvbmc+cmljaGVkaXQuamFyPC9zdHJvbmc+Cit3aWxsIGJlIGNyZWF0ZWQgaW4gdGhlIDxzdHJvbmc+Li9yaWNoZWRpdDwvc3Ryb25nPiBzdWJkaXJlY3RvcnkuIEFueQorZXhpc3RpbmcgZmlsZSBvZiB0aGF0IG5hbWUgd2lsbCBiZSBvdmVyd3JpdHRlbi48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+cmljaGVkaXRaaXA8L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPkNyZWF0ZSBhIHppcCBhcmNoaXZlIG9mCit0aGUgcmljaGVkaXQgZG9jcyBhbmQgamFyIGZpbGUgZm9yIGRpc3RyaWJ1dGlvbi4gVGhlIHppcCBmaWxlIDxzdHJvbmc+cmljaGVkaXQuemlwPC9zdHJvbmc+Cit3aWxsIGJlIGNyZWF0ZWQgaW4gdGhlIDxzdHJvbmc+Li9yaWNoZWRpdDwvc3Ryb25nPiBzdWJkaXJlY3RvcnkuIEFueQorZXhpc3RpbmcgZmlsZSBvZiB0aGF0IG5hbWUgd2lsbCBiZSBvdmVyd3JpdHRlbi48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJyaWdodCIgYmdjb2xvcj0iI2ZmZmZmZiIgdmFsaWduPSJiYXNlbGluZSI+Y2xlYW48L3RoPgorICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiIHZhbGlnbj0iYmFzZWxpbmUiPlJlbW92ZSBhbGwgYnVpbHQgdGFyZ2V0cywKK2xlYXZpbmcgdGhlIHNvdXJjZS48L3RkPgorICAgIDwvdHI+CisgIDwvdGJvZHk+Cis8L3RhYmxlPgorPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWQgdGhlIEFudCBkb2N1bWVudGF0aW9uIGFuZCB0aGUgPHN0cm9uZz5idWlsZC54bWw8L3N0cm9uZz4KK2ZpbGUuPC9wPgorPHA+QWZ0ZXIgZG9pbmcgYSBidWlsZCBpdCBpcyBhIGdvb2QgaWRlYSB0byBydW4gYWxsIHRoZSBpY3U0aiB0ZXN0cyBieQordHlwaW5nPGJyPgorPHR0PiJhbnQgY2hlY2siPC90dD4gb3IKKyJqYXZhCistY2xhc3NwYXRoICRSb290L2NsYXNzZXMKK2NvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RBbGwgLW5vdGhyb3ciLjwvcD4KKzxwPihJZiB5b3UgYXJlIGFsbGVyZ2ljIHRvIGJ1aWxkIHN5c3RlbXMsIGFzIGFuIGFsdGVybmF0aXZlIHRvIHVzaW5nCitBbnQgeW91IGNhbiBidWlsZCBieSBydW5uaW5nIGphdmFjIGFuZCBqYXZhZG9jIGRpcmVjdGx5LiBUaGlzCitpcyBub3QgcmVjb21tZW5kZWQuIFlvdSBtYXkgaGF2ZSB0byBtYW51YWxseSBjcmVhdGUgZGVzdGluYXRpb24KK2RpcmVjdG9yaWVzLik8L3A+Cis8aDMgY2xhc3M9ImRvYyI+PGEgbmFtZT0iSG93VG9Nb2R1bGFyaXplIj48L2E+SG93IHRvIG1vZHVsYXJpemUgSUNVNEo8L2gzPgorPHA+U29tZSBjbGllbnRzIG1heSBub3Qgd2lzaCB0byBzaGlwIGFsbCBvZiBJQ1U0SiB3aXRoIHRoZWlyCithcHBsaWNhdGlvbiwgc2luY2UgdGhlIGFwcGxpY2F0aW9uIG1pZ2h0IG9ubHkgdXNlIGEgc21hbGwgcGFydCBvZgorSUNVNEouCitJQ1U0SiByZWxlYXNlIDIuNiBhbmQgbGF0ZXIgcHJvdmlkZSBidWlsZCBvcHRpb25zIHRvIGJ1aWxkIGluZGl2aWR1YWwKK0lDVTRKICdtb2R1bGVzJyBmb3IgYSBtb3JlIGNvbXBhY3QgZGlzdHJpYnV0aW9uLgorVGhlIG1vZHVsZXMgYXJlIGJhc2VkIG9uIGEgc2VydmljZSBhbmQgdGhlIEFQSXMgdGhhdCBkZWZpbmUgaXQsIGUuZy4sCit0aGUgbm9ybWFsaXplciBtb2R1bGUgc3VwcG9ydHMgYWxsIHRoZSBBUElzIG9mIHRoZSBOb3JtYWxpemVyIGNsYXNzCisoYW5kIHNvbWUgb3RoZXJzKS4gVGVzdHMgY2FuIGJlIHJ1biB0byB2ZXJpZnkgdGhhdCB0aGUgQVBJcyBzdXBwb3J0ZWQKK2J5IHRoZSBtb2R1bGUgZnVuY3Rpb24gY29ycmVjdGx5LgorQmVjYXVzZSBvZiBpbnRlcm5hbCBjb2RlIGRlcGVuZGVuY2llcywgYSBtb2R1bGUgY29udGFpbnMgZXh0cmEgY2xhc3NlcwordGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIG1vZHVsZSdzIGNvcmUgc2VydmljZSBBUEkuIFNvbWUgb3IgbW9zdCBvZiB0aGUKK0FQSXMgb2YgdGhlc2UgZXh0cmEgY2xhc3NlcyB3aWxsIG5vdCB3b3JrLiA8Yj5Pbmx5IHRoZSBtb2R1bGUncyBjb3JlCitzZXJ2aWNlIEFQSSBpcyBndWFyYW50ZWVkLjwvYj4gT3RoZXIgQVBJcyBtYXkgd29yayBwYXJ0aWFsbHkgb3Igbm90IGF0CithbGwsIHNvIGNsaWVudCBjb2RlIHNob3VsZCBhdm9pZCB0aGVtLjwvcD4KKzxwPgorSW5kaXZpZHVhbCBtb2R1bGVzIGFyZSBub3QgYnVpbHQgZGlyZWN0bHkgaW50byB0aGVpciBvd24gc2VwYXJhdGUgamFyCitmaWxlcy4gU2luY2UgdGhlaXIgZGVwZW5kZW5jaWVzCitvZnRlbiBvdmVybGFwLCB1c2luZyBzZXBhcmF0ZSBtb2R1bGVzIHRvICdhZGQgb24nIElDVTRKIGZ1bmN0aW9uYWxpdHkKK3dvdWxkIHJlc3VsdCBpbgordW53YW50ZWQgZHVwbGljYXRpb24gb2YgY2xhc3MgZmlsZXMuIEluc3RlYWQsIGJ1aWxkaW5nIGEgbW9kdWxlIGNhdXNlcworYSBzdWJzZXQgb2YgSUNVNEoncworY2xhc3NlcyB0byBiZSBidWlsdCBhbmQgcHV0IGludG8gSUNVNEoncyBzdGFuZGFyZCBidWlsZCBkaXJlY3RvcnkuCitBZnRlciBvbmUgb3IgbW9yZSBtb2R1bGUgdGFyZ2V0cyBhcmUgYnVpbHQsIHRoZSAnbW9kdWxlSmFyJyB0YXJnZXQgY2FuCit0aGVuIGJlCitidWlsdCwgd2hpY2ggcGFja2FnZXMgdGhlIGNsYXNzIGZpbGVzIGludG8gYSAnbW9kdWxlIGphci4nIE90aGVyIHRoYW4KK3RoZSBmYWN0IHRoYXQgaXQKK2NvbnRhaW5zIGZld2VyIGNsYXNzIGZpbGVzLCBsaXR0bGUgZGlzdGluZ3Vpc2hlcyB0aGlzIGphciBmaWxlIGZyb20gYQorZnVsbCBJQ1U0SiBqYXIgZmlsZSwKK2FuZCBpbiBmYWN0IHRoZXkgc2hhcmUgdGhlIHNhbWUgbmFtZS48L3A+Cis8cD4KK0N1cnJlbnRseSBJQ1U0SiBjYW4gYmUgZGl2aWRlZCBpbnRvIHRoZSBmb2xsb3dpbmcgbW9kdWxlczoKKzwvcD4KKzxwPjxiPktleTo8L2I+PC9wPgorPHRhYmxlIGJnY29sb3I9IiNjY2NjZmYiIGNlbGxwYWRkaW5nPSIzIiBmcmFtZT0idm9pZCIgd2lkdGg9IjYyMyI+CisgIDx0Ym9keT4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPk1vZHVsZSBOYW1lPC9iPjwvdGg+CisgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPkFudCBUYXJnZXRzPC9iPjwvdGg+CisgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPlRlc3QgUGFja2FnZSBTdXBwb3J0ZWQ8L2I+PC90aD4KKyAgICAgIDx0aCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPlNpemUmIzgyMjU7PC9iPjwvdGg+CisgICAgPC90cj4KKyAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CisgICAgICA8dGQgY29sc3Bhbj0iNCI+CisgICAgICA8dGFibGU+CisgICAgICAgIDx0Ym9keT4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+UGFja2FnZSo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPk1haW4gQ2xhc3NlcyYjODIyNDsgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICA8L3Rib2R5PgorICAgICAgPC90YWJsZT4KKyAgICAgIDwvdGQ+CisgICAgPC90cj4KKyAgPC90Ym9keT4KKzwvdGFibGU+Cis8Yj48Zm9udCBzaXplPSIyIj4qIGNvbS5pYm0uIHNob3VsZCBiZSBwcmVwZW5kZWQgdG8gdGhlIHBhY2thZ2UgbmFtZXMKK2xpc3RlZC4KKzxicj4KKyYjODIyNDsgQSBib2xkIGNsYXNzIG5hbWUgY29yZSBzZXJ2aWNlIEFQSXMuIE9ubHkgQVBJcyBpbiB0aGVzZSBjbGFzc2VzIGFyZQorZnVsbHkgc3VwcG9ydGVkLgorPGJyPgorJiM4MjI1OyBTaXplcyBhcmUgb2YgdGhlIGNvbXByZXNzZWQgamFyIGZpbGUgY29udGFpbmluZyBvbmx5IHRoaXMgbW9kdWxlLgorVGhlc2Ugc2l6ZXMgYXJlIGFwcHJveGltYXRlIGZvciByZWxlYXNlIDMuNC41LgorPC9mb250PjwvYj4KKzxwPjxiPk1vZHVsZXM6PC9iPjwvcD4KKzx0YWJsZSBiZ2NvbG9yPSIjY2NjY2ZmIiBjZWxscGFkZGluZz0iMyIgZnJhbWU9InZvaWQiIHdpZHRoPSI2MjMiPgorICA8dGJvZHk+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5Ob3JtYWxpemVyPC90aD4KKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+bm9ybWFsaXplciwgbm9ybWFsaXplclRlc3RzPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Y29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjwvdGQ+CisgICAgICA8dGQgYWxpZ249InJpZ2h0IiB2YWxpZ249ImJhc2VsaW5lIj40NTEmbmJzcDtLQjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CisgICAgICA8dGQgY29sc3Bhbj0iNCIgdmFsaWduPSJ0b3AiPgorICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiPgorICAgICAgICA8dGJvZHk+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5sYW5nOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+VUNoYXJhY3RlciwgVUNoYXJhY3RlckNhdGVnb3J5LAorVUNoYXJhY3RlckRpcmVjdGlvbiwgVUNoYXJhY3Rlck5hbWVJdGVyYXRvciwgVUNoYXJhY3RlclR5cGVJdGVyYXRvciwKK1VQcm9wZXJ0eSwgVVNjcmlwdDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnRleHQ6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj48Yj5Ob3JtYWxpemVyPC9iPiwgUmVwbGFjZWFibGUsCitSZXBsYWNlYWJsZVN0cmluZywgPGI+VUNoYXJhY3Rlckl0ZXJhdG9yPC9iPiwgPGI+VUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjwvYj4sCitVbmljb2RlRmlsdGVyLCBVbmljb2RlTWF0Y2hlciwgVW5pY29kZVNldCwgVW5pY29kZVNldEl0ZXJhdG9yLCBVVEYxNjwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5WYWx1ZUl0ZXJhdG9yLCBWZXJzaW9uSW5mbzwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90Ym9keT4KKyAgICAgIDwvdGFibGU+CisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5Db2xsYXRvcjwvdGg+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbGxhdG9yLCBjb2xsYXRvclRlc3RzPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Y29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I8L3RkPgorICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+MSw1MDgmbmJzcDtLQjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CisgICAgICA8dGQgY29sc3Bhbj0iNCIgdmFsaWduPSJ0b3AiPgorICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiPgorICAgICAgICA8dGJvZHk+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5sYW5nOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+VUNoYXJhY3RlciwgVUNoYXJhY3RlckNhdGVnb3J5LAorVUNoYXJhY3RlckRpcmVjdGlvbiwgVUNoYXJhY3Rlck5hbWVJdGVyYXRvciwgVUNoYXJhY3RlclR5cGVJdGVyYXRvciwKK2xhbmcuVVByb3BlcnR5LCBVU2NyaXB0IDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnRleHQ6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5CcmVha0RpY3Rpb25hcnksIEJyZWFrSXRlcmF0b3IsCitCcmVha0l0ZXJhdG9yRmFjdG9yeSwgQ2Fub25pY2FsSXRlcmF0b3IsIDxiPkNvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICA8Yj5Db2xsYXRpb25LZXk8L2I+LCA8Yj5Db2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlcjwvYj4sIDxiPkNvbGxhdGlvblJ1bGVQYXJzZXI8L2I+LAorICAgICAgICAgICAgPGI+Q29sbGF0b3I8L2I+LCA8Yj5Db2xsYXRvclJlYWRlcjwvYj4sCitEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLCA8Yj5Ob3JtYWxpemVyPC9iPiwgUmVwbGFjZWFibGUsCitSZXBsYWNlYWJsZVN0cmluZywgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciwgPGI+UnVsZUJhc2VkQ29sbGF0b3I8L2I+LCA8Yj5TZWFyY2hJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICA8Yj5TdHJpbmdTZWFyY2g8L2I+LCA8Yj5VQ2hhcmFjdGVySXRlcmF0b3I8L2I+LCA8Yj5VRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKK1VuaWNvZGVGaWx0ZXIsIFVuaWNvZGVNYXRjaGVyLCBVbmljb2RlU2V0LCBVbmljb2RlU2V0SXRlcmF0b3IsIFVURjE2IDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5WYWx1ZUl0ZXJhdG9yLCBWZXJzaW9uSW5mbyA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGJvZHk+CisgICAgICA8L3RhYmxlPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Q2FsZW5kYXI8L3RoPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jYWxlbmRhciwgY2FsZW5kYXJUZXN0czwvdGQ+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjEsNzczJm5ic3A7S0I8L3RkPgorICAgIDwvdHI+CisgICAgPHRyIGJnY29sb3I9IiNmZmZmZmYiPgorICAgICAgPHRkIGNvbHNwYW49IjQiIHZhbGlnbj0idG9wIj4KKyAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1Ij4KKyAgICAgICAgPHRib2R5PgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UubGFuZzo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPlVDaGFyYWN0ZXIsIFVDaGFyYWN0ZXJDYXRlZ29yeSwKK1VDaGFyYWN0ZXJEaXJlY3Rpb24sIFVDaGFyYWN0ZXJOYW1lSXRlcmF0b3IsIFVDaGFyYWN0ZXJUeXBlSXRlcmF0b3IsCitVUHJvcGVydHksIFVTY3JpcHQgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UubWF0aDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPjxiPkJpZ0RlY2ltYWw8L2I+IDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnRleHQ6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5CcmVha0l0ZXJhdG9yLCA8Yj5DaGluZXNlRGF0ZUZvcm1hdDwvYj4sCisgICAgICAgICAgICA8Yj5DaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHM8L2I+LCA8Yj5EYXRlRm9ybWF0PC9iPiwgPGI+RGF0ZUZvcm1hdFN5bWJvbHM8L2I+LAorICAgICAgICAgICAgPGI+RGVjaW1hbEZvcm1hdDwvYj4sIDxiPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9iPiwKK05vcm1hbGl6ZXIsIE51bWJlckZvcm1hdCwgUmVwbGFjZWFibGUsIFJlcGxhY2VhYmxlU3RyaW5nLCA8Yj5TaW1wbGVEYXRlRm9ybWF0PC9iPiwKKyAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJJdGVyYXRvcjwvYj4sIDxiPlVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAorVW5pY29kZUZpbHRlciwgVW5pY29kZU1hdGNoZXIsIFVuaWNvZGVTZXQsIFVuaWNvZGVTZXRJdGVyYXRvciwgVVRGMTYgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudXRpbDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPjxiPkJ1ZGRoaXN0Q2FsZW5kYXI8L2I+LCA8Yj5DYWxlbmRhcjwvYj4sCisgICAgICAgICAgICA8Yj5DYWxlbmRhckFzdHJvbm9tZXI8L2I+LCA8Yj5DYWxlbmRhckNhY2hlPC9iPiwgPGI+Q2FsZW5kYXJGYWN0b3J5PC9iPiwKKyAgICAgICAgICAgIDxiPkNoaW5lc2VDYWxlbmRhcjwvYj4sIDxiPkN1cnJlbmN5PC9iPiwgPGI+RGF0ZVJ1bGU8L2I+LAorICAgICAgICAgICAgPGI+RWFzdGVySG9saWRheTwvYj4sIDxiPkVhc3RlclJ1bGU8L2I+LCA8Yj5HcmVnb3JpYW5DYWxlbmRhcjwvYj4sCisgICAgICAgICAgICA8Yj5IZWJyZXdDYWxlbmRhcjwvYj4sIDxiPkhlYnJld0hvbGlkYXk8L2I+LCA8Yj5Ib2xpZGF5PC9iPiwKKyAgICAgICAgICAgIDxiPklzbGFtaWNDYWxlbmRhcjwvYj4sIDxiPkphcGFuZXNlQ2FsZW5kYXI8L2I+LCA8Yj5SYW5nZURhdGVSdWxlPC9iPiwKKyAgICAgICAgICAgIDxiPlNpbXBsZURhdGVSdWxlPC9iPiwgPGI+U2ltcGxlSG9saWRheTwvYj4sIDxiPlNpbXBsZVRpbWVab25lPC9iPiwKKyAgICAgICAgICAgIDxiPlNpbXBsZVRpbWVab25lQWRhcHRlcjwvYj4sIDxiPlRpbWVab25lPC9iPiwgPGI+VGltZVpvbmVEYXRhPC9iPiwKK1ZhbHVlSXRlcmF0b3IsIFZlcnNpb25JbmZvIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90Ym9keT4KKyAgICAgIDwvdGFibGU+CisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5CcmVha0l0ZXJhdG9yPC90aD4KKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+YnJlYWtJdGVyYXRvciwKK2JyZWFrSXRlcmF0b3JUZXN0czwvdGQ+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbS5pYm0uaWN1LmRldi50ZXN0LmJyZWFraXRlcmF0b3I8L3RkPgorICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+MSw1NDYmbmJzcDtLQjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CisgICAgICA8dGQgY29sc3Bhbj0iNCIgdmFsaWduPSJ0b3AiPgorICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiPgorICAgICAgICA8dGJvZHk+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5sYW5nOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+VUNoYXJhY3RlciwgVUNoYXJhY3RlckNhdGVnb3J5LAorVUNoYXJhY3RlckRpcmVjdGlvbiwgVUNoYXJhY3Rlck5hbWVJdGVyYXRvciwgVUNoYXJhY3RlclR5cGVJdGVyYXRvciwKK1VQcm9wZXJ0eSwgVVNjcmlwdCA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS50ZXh0OjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+PGI+QnJlYWtEaWN0aW9uYXJ5PC9iPiwgPGI+QnJlYWtJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICA8Yj5CcmVha0l0ZXJhdG9yRmFjdG9yeTwvYj4sIDxiPkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3I8L2I+LAorTm9ybWFsaXplciwgUmVwbGFjZWFibGUsIFJlcGxhY2VhYmxlU3RyaW5nLCA8Yj50ZXh0LlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I8L2I+LAorVUNoYXJhY3Rlckl0ZXJhdG9yLCBVRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLCBVbmljb2RlRmlsdGVyLAorVW5pY29kZU1hdGNoZXIsIFVuaWNvZGVTZXQsIFVuaWNvZGVTZXRJdGVyYXRvciwgVVRGMTYgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudXRpbDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPlJhbmdlVmFsdWVJdGVyYXRvciwgVmFsdWVJdGVyYXRvciwKK1ZlcnNpb25JbmZvIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90Ym9keT4KKyAgICAgIDwvdGFibGU+CisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5CYXNpYyBQcm9wZXJ0aWVzPC90aD4KKyAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+cHJvcGVydGllc0Jhc2ljLAorcHJvcGVydGllc0Jhc2ljVGVzdHM8L3RkPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jb20uaWJtLmljdS5kZXYudGVzdC5sYW5nPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjUzNSZuYnNwO0tCPC90ZD4KKyAgICA8L3RyPgorICAgIDx0ciBiZ2NvbG9yPSIjZmZmZmZmIj4KKyAgICAgIDx0ZCBjb2xzcGFuPSI0IiB2YWxpZ249InRvcCI+CisgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSI+CisgICAgICAgIDx0Ym9keT4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lmxhbmc6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj48Yj5VQ2hhcmFjdGVyPC9iPiwgPGI+VUNoYXJhY3RlckNhdGVnb3J5PC9iPiwKKyAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJEaXJlY3Rpb248L2I+LCA8Yj5VQ2hhcmFjdGVyTmFtZUl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJUeXBlSXRlcmF0b3I8L2I+LCA8Yj5VUHJvcGVydHk8L2I+LCA8Yj5VU2NyaXB0PC9iPiwKKyAgICAgICAgICAgIDxiPlVTY3JpcHRSdW48L2I+IDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnRleHQ6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5CcmVha0RpY3Rpb25hcnksIEJyZWFrSXRlcmF0b3IsCitCcmVha0l0ZXJhdG9yRmFjdG9yeSwgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciwgTm9ybWFsaXplciwKK1JlcGxhY2VhYmxlLCBSZXBsYWNlYWJsZVN0cmluZywgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciwgU3ltYm9sVGFibGUsCitVQ2hhcmFjdGVySXRlcmF0b3IsIFVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IsIFVuaWNvZGVGaWx0ZXIsCitVbmljb2RlTWF0Y2hlciwgVW5pY29kZVNldCwgVW5pY29kZVNldEl0ZXJhdG9yLCA8Yj5VVEYxNjwvYj4gPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudXRpbDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPkNvbXBhY3RCeXRlQXJyYXksIFJhbmdlVmFsdWVJdGVyYXRvciwKK1ZhbHVlSXRlcmF0b3IsIFZlcnNpb25JbmZvIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90Ym9keT4KKyAgICAgIDwvdGFibGU+CisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5GdWxsIFByb3BlcnRpZXM8L3RoPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5wcm9wZXJ0aWVzRnVsbCwKK3Byb3BlcnRpZXNGdWxsVGVzdHM8L3RkPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jb20uaWJtLmljdS5kZXYudGVzdC5sYW5nPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjEsNDEwJm5ic3A7S0I8L3RkPgorICAgIDwvdHI+CisgICAgPHRyIGJnY29sb3I9IiNmZmZmZmYiPgorICAgICAgPHRkIGNvbHNwYW49IjQiIHZhbGlnbj0idG9wIj4KKyAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI1Ij4KKyAgICAgICAgPHRib2R5PgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UubGFuZzo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPjxiPlVDaGFyYWN0ZXI8L2I+LCA8Yj5VQ2hhcmFjdGVyQ2F0ZWdvcnk8L2I+LAorICAgICAgICAgICAgPGI+VUNoYXJhY3RlckRpcmVjdGlvbjwvYj4sIDxiPlVDaGFyYWN0ZXJOYW1lSXRlcmF0b3I8L2I+LAorICAgICAgICAgICAgPGI+VUNoYXJhY3RlclR5cGVJdGVyYXRvcjwvYj4sIDxiPlVQcm9wZXJ0eTwvYj4sIDxiPlVTY3JpcHQ8L2I+LAorICAgICAgICAgICAgPGI+VVNjcmlwdFJ1bjwvYj4gPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudGV4dDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPkJyZWFrRGljdGlvbmFyeSwgQnJlYWtJdGVyYXRvciwKK0JyZWFrSXRlcmF0b3JGYWN0b3J5LCBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLCA8Yj5Ob3JtYWxpemVyPC9iPiwKKyAgICAgICAgICAgIDxiPlJlcGxhY2VhYmxlPC9iPiwgPGI+UmVwbGFjZWFibGVTdHJpbmc8L2I+LAorUnVsZUJhc2VkQnJlYWtJdGVyYXRvciwgPGI+VUNoYXJhY3Rlckl0ZXJhdG9yPC9iPiwgPGI+VUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICA8Yj5Vbmljb2RlRmlsdGVyPC9iPiwgPGI+VW5pY29kZU1hdGNoZXI8L2I+LCA8Yj5Vbmljb2RlU2V0PC9iPiwKKyAgICAgICAgICAgIDxiPlVuaWNvZGVTZXRJdGVyYXRvcjwvYj4sIDxiPlVURjE2PC9iPjwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj48Yj5SYW5nZVZhbHVlSXRlcmF0b3I8L2I+LCA8Yj5WYWx1ZUl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgIDxiPlZlcnNpb25JbmZvPC9iPiA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGJvZHk+CisgICAgICA8L3RhYmxlPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+Rm9ybWF0dGluZzwvdGg+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmZvcm1hdCwgZm9ybWF0VGVzdHM8L3RkPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ8L3RkPgorICAgICAgPHRkIGFsaWduPSJyaWdodCIgdmFsaWduPSJiYXNlbGluZSI+Miw1OTImbmJzcDtLQjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHIgYmdjb2xvcj0iI2ZmZmZmZiI+CisgICAgICA8dGQgY29sc3Bhbj0iNCIgdmFsaWduPSJ0b3AiPgorICAgICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjUiPgorICAgICAgICA8dGJvZHk+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5sYW5nOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+VUNoYXJhY3RlciwgVUNoYXJhY3RlckNhdGVnb3J5LAorVUNoYXJhY3RlckRpcmVjdGlvbiwgVUNoYXJhY3Rlck5hbWVJdGVyYXRvciwgVUNoYXJhY3RlclR5cGVJdGVyYXRvciwKK1VQcm9wZXJ0eSwgVVNjcmlwdCA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS5tYXRoOjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+PGI+bWF0aC5CaWdEZWNpbWFsPC9iPiA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPmljdS50ZXh0OjwvdGQ+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+QnJlYWtJdGVyYXRvciwgQ2Fub25pY2FsSXRlcmF0b3IsCitDaGluZXNlRGF0ZUZvcm1hdCwgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzLCBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IsCitDb2xsYXRpb25LZXksIENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLCBDb2xsYXRpb25SdWxlUGFyc2VyLAorQ29sbGF0b3IsIENvbGxhdG9yUmVhZGVyLCA8Yj5EYXRlRm9ybWF0PC9iPiwgPGI+RGF0ZUZvcm1hdFN5bWJvbHM8L2I+LAorICAgICAgICAgICAgPGI+RGVjaW1hbEZvcm1hdDwvYj4sIDxiPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9iPiwKK05vcm1hbGl6ZXIsIDxiPk51bWJlckZvcm1hdDwvYj4sIFJlcGxhY2VhYmxlLCBSZXBsYWNlYWJsZVN0cmluZywKK1J1bGVCYXNlZENvbGxhdG9yLCA8Yj5SdWxlQmFzZWROdW1iZXJGb3JtYXQ8L2I+LCA8Yj5TaW1wbGVEYXRlRm9ybWF0PC9iPiwKKyAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJJdGVyYXRvcjwvYj4sIDxiPlVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I8L2I+LAorVW5pY29kZUZpbHRlciwgVW5pY29kZU1hdGNoZXIsIFVuaWNvZGVTZXQsIFVuaWNvZGVTZXRJdGVyYXRvciwgVVRGMTYgPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5pY3UudXRpbDo8L3RkPgorICAgICAgICAgICAgPHRkIHZhbGlnbj0iYmFzZWxpbmUiPjxiPkNhbGVuZGFyPC9iPiwgPGI+Q2FsZW5kYXJBc3Ryb25vbWVyPC9iPiwKKyAgICAgICAgICAgIDxiPkNhbGVuZGFyQ2FjaGU8L2I+LCA8Yj5DYWxlbmRhckZhY3Rvcnk8L2I+LCA8Yj5DaGluZXNlQ2FsZW5kYXI8L2I+LAorICAgICAgICAgICAgPGI+Q3VycmVuY3k8L2I+LCA8Yj5HcmVnb3JpYW5DYWxlbmRhcjwvYj4sIDxiPlJhbmdlVmFsdWVJdGVyYXRvcjwvYj4sCisgICAgICAgICAgICA8Yj5TaW1wbGVUaW1lWm9uZTwvYj4sIDxiPlNpbXBsZVRpbWVab25lQWRhcHRlcjwvYj4sIDxiPlRpbWVab25lPC9iPiwKKyAgICAgICAgICAgIDxiPlRpbWVab25lRGF0YTwvYj4sIFZhbHVlSXRlcmF0b3IsVmVyc2lvbkluZm8gPC90ZD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICA8L3Rib2R5PgorICAgICAgPC90YWJsZT4KKyAgICAgIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPlN0cmluZ1ByZXAsIElETkE8L3RoPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5zdHJpbmdQcmVwLCBzdHJpbmdQcmVwVGVzdHM8L3RkPgorICAgICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj5jb20uaWJtLmljdS5kZXYudGVzdC5zdHJpbmdwcmVwPC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjQ3OCZuYnNwO0tCPC90ZD4KKyAgICA8L3RyPgorICAgIDx0ciBiZ2NvbG9yPSIjZmZmZmZmIj4KKyAgICAgIDx0ZCBjb2xzcGFuPSI0IiB2YWxpZ249InRvcCI+CisgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSI+CisgICAgICAgIDx0Ym9keT4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lmxhbmc6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5VQ2hhcmFjdGVyLCBVQ2hhcmFjdGVyQ2F0ZWdvcnksCitVQ2hhcmFjdGVyRGlyZWN0aW9uLCBVQ2hhcmFjdGVyTmFtZUl0ZXJhdG9yLCBVQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yLAorVVByb3BlcnR5LCBVU2NyaXB0IDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnRleHQ6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj5CcmVha0l0ZXJhdG9yLCBDYW5vbmljYWxJdGVyYXRvciwgPGI+SUROQTwvYj4sCitOb3JtYWxpemVyLCBSZXBsYWNlYWJsZSwgUmVwbGFjZWFibGVTdHJpbmcsIDxiPlN0cmluZ1ByZXA8L2I+LCA8Yj5TdHJpbmdQYXJzZUV4Y2VwdGlvbjwvYj4sCitVQ2hhcmFjdGVySXRlcmF0b3IsIFVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IsIFVuaWNvZGVTZXQsIFVURjE2IDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj4gUmFuZ2VWYWx1ZUl0ZXJhdG9yLCBTdHJpbmdUb2tlbml6ZXIsCitVTG9jYWxlLCBVUmVzb3VyY2VCdW5kbGUgVmFsdWVJdGVyYXRvcixWZXJzaW9uSW5mbyA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGJvZHk+CisgICAgICA8L3RhYmxlPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+VHJhbnNmb3JtczwvdGg+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPnRyYW5zbGl0ZXJhdG9yLAordHJhbnNsaXRlcmF0b3JUZXN0czwvdGQ+CisgICAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPmNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0PC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjc3NSZuYnNwO0tCPC90ZD4KKyAgICA8L3RyPgorICAgIDx0ciBiZ2NvbG9yPSIjZmZmZmZmIj4KKyAgICAgIDx0ZCBjb2xzcGFuPSI0IiB2YWxpZ249InRvcCI+CisgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNSI+CisgICAgICAgIDx0Ym9keT4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1Lmxhbmc6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj48Yj5VQ2hhcmFjdGVyPC9iPiwgPGI+VUNoYXJhY3RlckNhdGVnb3J5PC9iPiwKKyAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJEaXJlY3Rpb248L2I+LCA8Yj5VQ2hhcmFjdGVyTmFtZUl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgIDxiPlVDaGFyYWN0ZXJUeXBlSXRlcmF0b3I8L2I+LCA8Yj5VUHJvcGVydHk8L2I+LCA8Yj5VU2NyaXB0PC9iPiwKKyAgICAgICAgICAgIDxiPlVTY3JpcHRSdW48L2I+IDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnRleHQ6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj48Yj5BbnlUcmFuc2xpdGVyYXRvcjwvYj4sIDxiPkJyZWFrRGljdGlvbmFyeTwvYj4sCisgICAgICAgICAgICA8Yj5CcmVha0l0ZXJhdG9yPC9iPiwgPGI+QnJlYWtJdGVyYXRvckZhY3Rvcnk8L2I+LCA8Yj5CcmVha1RyYW5zbGl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgIDxiPkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3I8L2I+LCA8Yj5Ob3JtYWxpemVyPC9iPiwgPGI+UmVwbGFjZWFibGU8L2I+LAorICAgICAgICAgICAgPGI+UmVwbGFjZWFibGVTdHJpbmc8L2I+LCA8Yj5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yPC9iPiwgPGI+U3RyaW5nUmVwbGFjZXI8L2I+LAorICAgICAgICAgICAgPGI+VHJhbnNsaXRlcmF0b3I8L2I+LCA8Yj5VQ2hhcmFjdGVySXRlcmF0b3I8L2I+LCA8Yj5VRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgIDxiPlVuaWNvZGVTZXQ8L2I+LCA8Yj5Vbmljb2RlU2V0SXRlcmF0b3I8L2I+LCA8Yj5VVEYxNjwvYj4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQ+IDxicj4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQgdmFsaWduPSJiYXNlbGluZSI+aWN1LnV0aWw6PC90ZD4KKyAgICAgICAgICAgIDx0ZCB2YWxpZ249ImJhc2VsaW5lIj48Yj5SYW5nZVZhbHVlSXRlcmF0b3I8L2I+LCA8Yj5WYWx1ZUl0ZXJhdG9yPC9iPiwKKyAgICAgICAgICAgIDxiPlZlcnNpb25JbmZvPC9iPiA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGJvZHk+CisgICAgICA8L3RhYmxlPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorPCEtLSB0cj4KKworICAgICAgICA8dGggYWxpZ249ImxlZnQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPk1vZHVsZSBOYW1lPC9iPjwvdGg+CisKKyAgICAgICAgPHRoIGFsaWduPSJsZWZ0IiB2YWxpZ249ImJhc2VsaW5lIj48Yj5BbnQgVGFyZ2V0czwvYj48L3RoPgorCisgICAgICAgIDx0aCBhbGlnbj0ibGVmdCIgdmFsaWduPSJiYXNlbGluZSI+PGI+VGVzdCBQYWNrYWdlIFN1cHBvcnRlZDwvYj48L3RoPgorCisgICAgICAgIDx0aCBhbGlnbj0icmlnaHQiIHZhbGlnbj0iYmFzZWxpbmUiPjxiPlNpemU8L2I+PC90aD4KKworPC90ciAtLT4KKyAgPC90Ym9keT4KKzwvdGFibGU+Cis8cD5CdWlsZGluZyBhbnkgb2YgdGhlc2UgbW9kdWxlcyBpcyBhcyBlYXN5IGFzIHNwZWNpZnlpbmcgYSBidWlsZAordGFyZ2V0IHRvIHRoZSBBbnQgYnVpbGQgc3lzdGVtLCBlLmc6Cis8YnI+CitUbyBidWlsZCBhIG1vZHVsZSB0aGF0IGNvbnRhaW5zIG9ubHkgdGhlIE5vcm1hbGl6ZXIgQVBJOiA8L3A+Cis8b2w+CisgIDxsaT4gQnVpbGQgdGhlIG1vZHVsZS4gPGJyPgorICAgIDxjb2RlPiBhbnQgbm9ybWFsaXplciA8L2NvZGU+IDwvbGk+CisgIDxsaT4gQnVpbGQgdGhlIGphciBjb250YWluaW5nIHRoZSBtb2R1bGUuIDxicj4KKyAgICA8Y29kZT5hbnQgbW9kdWxlSmFyIDwvY29kZT4gPC9saT4KKyAgPGxpPiBCdWlsZCB0aGUgdGVzdHMgZm9yIHRoZSBtb2R1bGUuIDxicj4KKyAgICA8Y29kZT4gYW50IG5vcm1hbGl6ZXJUZXN0cyA8L2NvZGU+IDwvbGk+CisgIDxsaT4gUnVuIHRoZSB0ZXN0cyBhbmQgdmVyaWZ5IHRoYXQgdGhlIHNlbGYgdGVzdHMgcGFzcy4gPGJyPgorICAgIDxjb2RlPiBqYXZhIC1jbGFzc3BhdGggJGljdTRqX3Jvb3QvY2xhc3NlcworY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEFsbCAtbm90aHJvdyAtdyA8L2NvZGU+IDwvbGk+Cis8L29sPgorSWYgbW9yZSB0aGFuIG9uZSBtb2R1bGUgaXMgcmVxdWlyZWQsIHRoZSBtb2R1bGUgYnVpbGQgdGFyZ2V0cyBjYW4gYmUKK2NvbmNhdGVuYXRlZCwgZS5nOgorPG9sPgorICA8bGk+IEJ1aWxkIHRoZSBtb2R1bGVzLiA8YnI+CisgICAgPGNvZGU+IGFudCBub3JtYWxpemVyIGNvbGxhdG9yIDwvY29kZT4gPC9saT4KKyAgPGxpPiBCdWlsZCB0aGUgamFyIGNvbnRhaW5pbmcgdGhlIG1vZHVsZXMuIDxicj4KKyAgICA8Y29kZT5hbnQgbW9kdWxlSmFyIDwvY29kZT4gPC9saT4KKyAgPGxpPiBCdWlsZCB0aGUgdGVzdHMgZm9yIHRoZSBtb2R1bGUuIDxicj4KKyAgICA8Y29kZT4gYW50IG5vcm1hbGl6ZXJUZXN0cyBjb2xsYXRvclRlc3RzIDwvY29kZT4gPC9saT4KKyAgPGxpPiBSdW4gdGhlIHRlc3RzIGFuZCB2ZXJpZnkgdGhhdCB0aGV5IHBhc3MuIDxicj4KKyAgICA8Y29kZT4gamF2YSAtY2xhc3NwYXRoICRpY3U0al9yb290L2NsYXNzZXMKK2NvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RBbGwgLW5vdGhyb3cgLXcgPC9jb2RlPiA8L2xpPgorPC9vbD4KK1RoZSBqYXIgc2hvdWxkIGJlIGJ1aWx0IGJlZm9yZSB0aGUgdGVzdHMsIHNpbmNlIGZvciBzb21lIHRhcmdldHMKK2J1aWxkaW5nIHRoZSB0ZXN0cyB3aWxsIGNhdXNlIGFkZGl0aW9uYWwgY2xhc3NlcyB0byBiZSBjb21waWxlZCB0aGF0CithcmUgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSBmb3IgdGhlIG1vZHVsZSBpdHNlbGYuCis8aDU+IE5vdGVzOiA8L2g1PgorPHVsPgorICA8bGk+UmVnYXJkbGVzcyBvZiB3aGV0aGVyIElDVTRKIGlzIGJ1aWx0IGFzIGEgd2hvbGUgb3IgYXMgbW9kdWxlcywKK3RoZSBqYXIgZmlsZSBwcm9kdWNlZCBpcyBuYW1lZCA8ZW0+aWN1NGouamFyPC9lbT4uPC9saT4KKyAgPGxpPlRvIGFzY2VydGFpbiBpZiBhbiBpY3U0ai5qYXIgY29udGFpbnMgYWxsIG9mIElDVTRKIG9yIG5vdCwgcGxlYXNlCitzZWUgdGhlIG1hbmlmZXN0IGZpbGUgaW4gdGhlIGphcjwvbGk+CisgIDxsaT5UaGUgdGFyZ2V0IG1vZHVsZUphciBkb2VzIG5vdCBkZXBlbmQgb24gYW55IG90aGVyIHRhcmdldC4gSXQganVzdAorY3JlYXRlcyBhIGphciBvZiBhbGwgY2xhc3MgZmlsZXMgdW5kZXIKKyRpY3U0al9yb290L2NsYXNzZXMvY29tL2libS9pY3UvLCBleGNsdWRpbmcgdGhlIGNsYXNzcyBmaWxlcyBpbgorJGljdTRqX3Jvb3QvY2xhc3Nlcy9jb20vaWJtL2ljdS9kZXYgZm9sZGVyPC9saT4KKyAgPGxpPlRoZSBsaXN0IG9mIG1vZHVsZSBidWlsZCB0YXJnZXRzIGNhbiBiZSBvYnRhaW5lZCBieSBydW5uaW5nIHRoZQorY29tbWFuZDogPGNvZGU+YW50IC1wcm9qZWN0aGVscDwvY29kZT48L2xpPgorPC91bD4KKzxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJ0cnlpbmdvdXQiPjwvYT5UcnlpbmcgT3V0IElDVTRKPC9oMz4KKzxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gdGhlIGRlbW9zIHByb3ZpZGVkIHdpdGggSUNVNEogYXJlIGZvciB0aGUKK21vc3QgcGFydCB1bmRvY3VtZW50ZWQuIFRoaXMgbGlzdCBjYW4gc2hvdyB5b3Ugd2hlcmUgdG8gbG9vaywgYnV0Cit5b3UnbGwKK2hhdmUgdG8gZXhwZXJpbWVudCBhIGJpdC4gVGhlIGRlbW9zICh3aXRoIHRoZQorZXhjZXB0aW9uIG9mIHJpY2hlZGl0KSBhcmUgPHN0cm9uZz51bnN1cHBvcnRlZDwvc3Ryb25nPiBhbmQgbWF5IGNoYW5nZQorb3IgZGlzYXBwZWFyIHdpdGhvdXQgbm90aWNlLjwvcD4KKzxwPlRoZSBpY3U0ai5qYXIgZmlsZSBjb250YWlucyBvbmx5IHRoZSBjb3JlIElDVTRKIGNsYXNzZXMsIG5vdCB0aGUKK2RlbW8gY2xhc3Nlcywgc28gdW5sZXNzIHlvdSBidWlsZCBJQ1U0SiB0aGVyZSBpcyBsaXR0bGUgdG8gdHJ5IG91dC4KKzwvcD4KKzxoND5SaWNoIEVkaXQ8L2g0PgorVG8gdHJ5IG91dCB0aGUgPHN0cm9uZz5yaWNoZWRpdDwvc3Ryb25nPiBwYWNrYWdlLCBmaXJzdCBidWlsZCB0aGUKK3JpY2hlZGl0SmFyIHRhcmdldC4KK1RoaXMgaXMgYSAncnVubmFibGUnIGphciBmaWxlLiBUbyBydW4gdGhlIHJpY2hlZGl0IGRlbW8sIHR5cGU6Cis8YmxvY2txdW90ZT48dHQ+amF2YSAtamFyICRSb290L3JpY2hlZGl0L3JpY2hlZGl0LmphcjwvdHQ+PC9ibG9ja3F1b3RlPgorVGhpcyB3aWxsIHByZXNlbnQgYW4gZW1wdHkgZWRpdCBwYW5lIHdpdGggYW4gYXd0IGludGVyZmFjZS4KKzxwPldpdGggYSBmdWxsZXIgY29tbWFuZCBsaW5lIHlvdSBjYW4gdHJ5IG91dCBvdGhlciBvcHRpb25zLCBmb3IKK2V4YW1wbGU6PC9wPgorPGJsb2NrcXVvdGU+PHR0PmphdmEgLWNsYXNzcGF0aCAkUm9vdC9yaWNoZWRpdC9yaWNoZWRpdC5qYXIKK2NvbS5pYm0ucmljaHRleHQuZGVtby5FZGl0RGVtbyBbLXN3aW5nXVtmaWxlXTwvdHQ+PC9ibG9ja3F1b3RlPgorPHA+VGhpcyB3aWxsIHVzZSBhbiBhd3QgR1VJLCBvciBhIHN3aW5nIEdVSSBpZgorPHR0Pi1zd2luZzwvdHQ+IGlzIHBhc3NlZCBvbiB0aGUgY29tbWFuZCBsaW5lLiBJdCB3aWxsIG9wZW4gYSB0ZXh0CitmaWxlIGlmIG9uZSBpcyBwcm92aWRlZCwgb3RoZXJ3aXNlIGl0IHdpbGwgb3BlbiBhIGJsYW5rIHBhZ2UuIENsaWNrCit0byB0eXBlLjwvcD4KKzxwPgorWW91IGNhbiBhZGQgdGFicyB0byB0aGUgdGFiIHJ1bGVyIGJ5IGNsaWNraW5nIGluIHRoZSBydWxlciB3aGlsZQoraG9sZGluZyBkb3duIHRoZSBjb250cm9sIGtleS4KK0NsaWNraW5nIG9uIGFuIGV4aXN0aW5nIHRhYiBjaGFuZ2VzIGJldHdlZW4gbGVmdCwgcmlnaHQsIGNlbnRlciwgYW5kCitkZWNpbWFsIHRhYnMuIERyYWdnaW5nCithIHRhYiBtb3ZlcyBpdCwgZHJhZ2dpbmcgaXQgb2ZmIHRoZSBydWxlciByZW1vdmVzIGl0LjwvcD4KKzxwPgorWW91IGNhbiBleHBlcmltZW50IHdpdGggY29tcGxleCB0ZXh0IGJ5IHVzaW5nIHRoZSBrZXltYXAgZnVuY3Rpb25zLgorUGxlYXNlIG5vdGUgdGhhdCB0aGVzZSBhcmUgbWFpbmx5IGZvciBkZW1vIHB1cnBvc2VzLCBmb3IgcmVhbCB3b3JrCit3aXRoIEFyYWJpYyBvciBIZWJyZXcgeW91IHdpbGwgd2FudCB0byB1c2UgYW4gaW5wdXQgbWV0aG9kLiBZb3Ugd2lsbAorbmVlZCB0byB1c2UgYSBmb250IHRoYXQgc3VwcG9ydHMgQXJhYmljIG9yIEhlYnJldywgJ0x1Y2lkYSBTYW5zJworKHByb3ZpZGVkCit3aXRoIEphdmEpIHN1cHBvcnRzIHRoZXNlIGxhbmd1YWdlcy48L3A+Cis8aDQ+T3RoZXIgZGVtb3M8L2g0PgorPHA+VGhlIG90aGVyIGRlbW8gcHJvZ3JhbXMgYXJlIDxzdHJvbmc+bm90IHN1cHBvcnRlZDwvc3Ryb25nPiBhbmQKK2V4aXN0IG9ubHkgdG8gbGV0IHlvdQorZXhwZXJpbWVudCB3aXRoIHRoZSBJQ1U0SiBjbGFzc2VzLiBGaXJzdCwgYnVpbGQgSUNVNEogdXNpbmcgPHR0PmFudCZuYnNwO2FsbDwvdHQ+LgorVGhlbiB0cnkKK29uZSBvZiB0aGUgZm9sbG93aW5nOgorPC9wPgorPHVsPgorICA8bGk+PHR0PmphdmEgLWNsYXNzcGF0aCBjbGFzc2VzCitjb20uaWJtLmljdS5kZXYuZGVtby5jYWxlbmRhci5DYWxlbmRhckFwcDwvdHQ+IDwvbGk+CisgIDxsaT48dHQ+amF2YSAtY2xhc3NwYXRoIGNsYXNzZXMKK2NvbS5pYm0uaWN1LmRldi5kZW1vLmhvbGlkYXkuSG9saWRheUNhbGVuZGFyRGVtbzwvdHQ+IDwvbGk+CisgIDxsaT48dHQ+amF2YSAtY2xhc3NwYXRoIGNsYXNzZXMKK2NvbS5pYm0uaWN1LmRldi5kZW1vLnJiYmkuVGV4dEJvdW5kRGVtbzwvdHQ+PGJyPgorKENsaWNrIGluIHRoZSB0ZXh0LCB0aGVuIHVzZSA8dHQ+Y3RybC1OPC90dD4gYW5kIDx0dD5jdHJsLVA8L3R0PiB0bworc2VsZWN0IHRoZSBuZXh0IG9yIHByZXZpb3VzIGJsb2NrIG9mIHRleHQuKSA8L2xpPgorICA8bGk+PHR0PmphdmEgLWNsYXNzcGF0aCBjbGFzc2VzIGNvbS5pYm0uaWN1LmRldi5kZW1vLnJibmYuUmJuZkRlbW88L3R0PgorICA8L2xpPgorICA8bGk+PHR0PmphdmEgLWNsYXNzcGF0aCBjbGFzc2VzIGNvbS5pYm0uaWN1LmRldi5kZW1vLnRyYW5zbGl0LkRlbW88L3R0PgorICA8L2xpPgorPC91bD4KKzxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJyZXNvdXJjZXMiPklDVTRKIFJlc291cmNlIEluZm9ybWF0aW9uPC9hPjwvaDM+CitTdGFydGluZyB3aXRoIHJlbGVhc2UgMi4xLCBJQ1U0SiBpbmNsdWRlcyBpdHMgb3duCityZXNvdXJjZSBpbmZvcm1hdGlvbgord2hpY2ggaXMgY29tcGxldGVseSBpbmRlcGVuZGVudCBvZiB0aGUgSkRLIHJlc291cmNlIGluZm9ybWF0aW9uLiAoTm90ZSwKK2luIElDVTRKIDMuMiBhbmQgMy40LCB0aW1lIHpvbmUgaW5mb3JtYXRpb24gc3RpbGwgZGVwZW5kcyBvbiB0aGUKK3VuZGVybHlpbmcgSkRLKS4gVGhlCituZXcgSUNVNEogaW5mb3JtYXRpb24gaXMgZXF1aXZhbGVudCB0byB0aGUgaW5mb3JtYXRpb24gaW4gSUNVNEMgYW5kCittYW55CityZXNvdXJjZXMgYXJlLCBpbiBmYWN0LCB0aGUgc2FtZSBiaW5hcnkgZmlsZXMgdGhhdCBJQ1U0QyB1c2VzLgorPHA+CitCeSBkZWZhdWx0IHRoZSBJQ1U0SiBkaXN0cmlidXRpb24gaW5jbHVkZXMgYWxsIG9mIHRoZSBzdGFuZGFyZCByZXNvdXJjZQoraW5mb3JtYXRpb24uIEl0IGlzIGxvY2F0ZWQgdW5kZXIgdGhlIGRpcmVjdG9yeSBjb20vaWJtL2ljdS9pbXBsL2RhdGEuCitEZXBlbmRpbmcgb24gdGhlIHNlcnZpY2UsIHRoZSBkYXRhIGlzIGluIGRpZmZlcmVudCBsb2NhdGlvbnMgYW5kIGluCitkaWZmZXJlbnQgZm9ybWF0cy4gPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHdpbGwgY29udGludWUgdG8gY2hhbmdlCitmcm9tIHJlbGVhc2UgdG8gcmVsZWFzZSwgc28gY2xpZW50cyBzaG91bGQgbm90IGRlcGVuZCBvbiB0aGUgZXhhY3QKK29yZ2FuaXphdGlvbgorb2YgdGhlIGRhdGEgaW4gSUNVNEouPC9wPgorPHVsPgorICA8bGk+VGhlIHByaW1hcnkgPGI+bG9jYWxlIGRhdGE8L2I+IGlzIHVuZGVyIHRoZSBkaXJlY3RvcnkgPHR0PmljdWR0MzRiPC90dD4sCithcyBhIHNldCBvZiA8dHQ+Ii5yZXMiPC90dD4gZmlsZXMgd2hvc2UgbmFtZXMgYXJlIHRoZSBsb2NhbGUgaWRlbnRpZmllcnMuIAorTG9jYWxlIG5hbWluZyBpcyBkb2N1bWVudGVkIHRoZSA8Y29kZT5jb20uaWJtLmljdS51dGlsLlVMb2NhbGU8L2NvZGU+CitjbGFzcywgYW5kIHRoZSB1c2Ugb2YgdGhlc2UgbmFtZXMgaW4gc2VhcmNoaW5nIGZvciByZXNvdXJjZXMgaXMgZG9jdW1lbnRlZCAKK2luIDxjb2RlPmphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTwvY29kZT4uCisgIDwvbGk+CisgIDxsaT5UaGUgPGI+Y29sbGF0aW9uIGRhdGE8L2I+IGlzIHVuZGVyIHRoZSBkaXJlY3RvcnkgPHR0PmljdWR0MzRiL2NvbGw8L3R0PiwKK2FzIGEgc2V0IG9mIDx0dD4iLnJlcyI8L3R0PiBmaWxlcy48L2xpPgorICA8bGk+VGhlIDxiPnJ1bGUtYmFzZWQgdHJhbnNsaXRlcmF0b3IgZGF0YTwvYj4gaXMgdW5kZXIgdGhlIGRpcmVjdG9yeQorPHR0PmljdWR0MzRiL3RyYW5zbGl0PC90dD4gYXMgYSBzZXQgb2YgPHR0PiIucmVzIjwvdHQ+IGZpbGVzLiAgKDxiPk5vdGU6PC9iPiB0aGUKK0hhbiB0cmFuc2xpdGVyYXRvciB0ZXN0IGRhdGEgaXMgbm8gbG9uZ2VyIGluY2x1ZGVkIGluIHRoZSBjb3JlIGljdTRqLmphciAKK2ZpbGUgYnkgZGVmYXVsdC4pPC9saT4KKyAgPGxpPlRoZSA8Yj5ydWxlLWJhc2VkIG51bWJlciBmb3JtYXQgZGF0YTwvYj4gaXMgdW5kZXIgdGhlIGRpcmVjdG9yeQorPHR0PmljdWR0MzRiL3JibmY8L3R0PiBhcyBhIHNldCBvZiA8dHQ+Ii5yZXMiPC90dD4gZmlsZXMuCisgIDxsaT5UaGUgPGI+YnJlYWsgaXRlcmF0b3IgZGF0YTwvYj4gaXMgZGlyZWN0bHkgdW5kZXIgdGhlIGRhdGEKK2RpcmVjdG9yeSwgYXMgYSBzZXQgb2YgPHR0PiIuYnJrIjwvdHQ+IGZpbGVzLCBuYW1lZCBhY2NvcmRpbmcgdG8gdGhlCit0eXBlIG9mIGJyZWFrIGFuZCB0aGUgbG9jYWxlIHdoZXJlIHRoZXJlIGFyZSBsb2NhbGUtc3BlY2lmaWMgdmVyc2lvbnMuPC9saT4KKyAgPGxpPlRoZSA8Yj5ob2xpZGF5IGRhdGE8L2I+IGlzIHVuZGVyIHRoZSA8dHQ+ZGF0YTwvdHQ+IGRpcmVjdG9yeSwKK2FzIGEgc2V0IG9mIDx0dD4iLmNsYXNzIjwvdHQ+IGZpbGVzLCBuYW1lZCA8dHQ+IkhvbGlkYXlCdW5kbGVfIjwvdHQ+Citmb2xsb3dlZCBieSB0aGUgbG9jYWxlIElELjwvbGk+CisgIDxsaT5UaGUgPGI+Y2hhcmFjdGVyIHByb3BlcnR5IGRhdGE8L2I+IGFzIHdlbGwgYXMgYXNzb3J0ZWQgPGI+bm9ybWFsaXphdGlvbgorZGF0YTwvYj4gYW5kIGRlZmF1bHQgPGI+dW5pY29kZSBjb2xsYXRpb24gYWxnb3JpdGhtIChVQ0EpIGRhdGE8L2I+CitpcyBmb3VuZCB1bmRlciB0aGUgPHR0PmRhdGE8L3R0PiBkaXJlY3RvcnkgYXMgYSBzZXQgb2YgPHR0PiIuaWN1IjwvdHQ+CitmaWxlcy4gPC9saT4KKzwvdWw+Cis8cD4KK1NvbWUgb2YgdGhlIGRhdGEgZmlsZXMgYWxpYXMgb3Igb3RoZXJ3aXNlIHJlZmVyZW5jZSBkYXRhIGZyb20gb3RoZXIKK2RhdGEgZmlsZXMuIE9uZSByZWFzb24gZm9yIHRoaXMgaXMgYmVjYXVzZSBzb21lIGxvY2FsZSBuYW1lcyBoYXZlCitjaGFuZ2VkLiBGb3IgZXhhbXBsZSwgPHR0PmhlX0lMPC90dD4gdXNlZCB0byBiZSA8dHQ+aXdfSUw8L3R0Pi4gSW4KK29yZGVyIHRvIHN1cHBvcnQgYm90aCBuYW1lcyBidXQgbm90IGR1cGxpY2F0ZSB0aGUgZGF0YSwgb25lIG9mIHRoZQorcmVzb3VyY2UgZmlsZXMgcmVmZXJzIHRvIHRoZSBvdGhlciBmaWxlJ3MgZGF0YS4gSW4gb3RoZXIgY2FzZXMsIGEKK2ZpbGUgbWF5IGFsaWFzIGEgcG9ydGlvbiBvZiBhbm90aGVyIGZpbGUncyBkYXRhIGluIG9yZGVyIHRvIHNhdmUKK3NwYWNlLiBDdXJyZW50bHkgSUNVNEogcHJvdmlkZXMgbm8gdG9vbCBmb3IgcmV2ZWFsaW5nIHRoZXNlCitkZXBlbmRlbmNpZXMuPC9wPgorPGJsb2NrcXVvdGU+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiAgSmF2YSdzIDxjb2RlPkxvY2FsZTwvY29kZT4gY2xhc3MKK3NpbGVudGx5IGNvbnZlcnRzIHRoZSBsYW5ndWFnZSBjb2RlIDx0dD4iaGUiPC90dD4gdG8gPHR0PiJpdyI8L3R0Pgord2hlbiB5b3UgY29uc3RydWN0IHRoZSBMb2NhbGUgKGZvciB2ZXJzaW9ucyBvZiBKYXZhIHRocm91Z2ggSmF2YSA1KS4gVGh1cworSmF2YSBjYW5ub3QgYmUgdXNlZCB0byBsb2NhdGUgcmVzb3VyY2VzIHRoYXQgdXNlIHRoZSA8dHQ+ImhlIjwvdHQ+CitsYW5ndWFnZSBjb2RlLiBJQ1UsIG9uIHRoZSBvdGhlciBoYW5kLCBkb2VzIG5vdCBwZXJmb3JtIHRoaXMKK2NvbnZlcnNpb24gaW4gVUxvY2FsZSwgYW5kIGluc3RlYWQgdXNlcyBhbGlhc2luZyBpbiB0aGUgbG9jYWxlIGRhdGEgdG8KK3JlcHJlc2VudCB0aGUgc2FtZSBzZXQgb2YgZGF0YSB1bmRlciBkaWZmZXJlbnQgbG9jYWxlCitpZHMuPC9ibG9ja3F1b3RlPgorPHA+CitSZXNvdXJjZSBmaWxlcyB0aGF0IHVzZSBsb2NhbGUgaWRzIGZvcm0gYSBoaWVyYXJjaHksIHdpdGggdXAgdG8gZm91cgorbGV2ZWxzOiBhIHJvb3QsIGxhbmd1YWdlLCByZWdpb24gKGNvdW50cnkpLCBhbmQgdmFyaWFudC4gU2VhcmNoZXMgZm9yCitsb2NhbGUgZGF0YSBhdHRlbXB0IHRvIG1hdGNoIGFzIGZhciBkb3duIHRoZSBoaWVyYXJjaHkgYXMgcG9zc2libGUsCitmb3IgZXhhbXBsZSwgPHR0PiJoZV9JTCI8L3R0PiB3aWxsIG1hdGNoIDx0dD5oZV9JTDwvdHQ+LCBidXQKKzx0dD4iaGVfVVMiPC90dD4gd2lsbCBtYXRjaCA8dHQ+aGU8L3R0PiAoc2luY2UgdGhlcmUgaXMgbm8gPHR0PlVTPC90dD4KK3ZhcmlhbnQgZm9yIGhlLCBhbmQgPHR0PiJ4eF9ZWTwvdHQ+IHdpbGwgbWF0Y2ggcm9vdCAodGhlCitkZWZhdWx0IGZhbGxiYWNrIGxvY2FsZSkgc2luY2UgdGhlcmUgaXMgbm8gPHR0Pnh4PC90dD4gbGFuZ3VhZ2UgY29kZQoraW4gdGhlIGxvY2FsZSBoaWVyYXJjaHkuIEFnYWluLCBzZWUKKzxjb2RlPmphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTwvY29kZT4gZm9yIG1vcmUgaW5mb3JtYXRpb24uCis8L3A+Cis8cD4KKzxzdHJvbmc+Q3VycmVudGx5IElDVTRKIHByb3ZpZGVzIG5vIHRvb2wgZm9yIHJldmVhbGluZyB0aGVzZQorZGVwZW5kZW5jaWVzPC9zdHJvbmc+IGJldHdlZW4gZGF0YSBmaWxlcywgc28gdHJpbW1pbmcgdGhlIGRhdGEKK2RpcmVjdGx5IGluIHRoZSBJQ1U0SiBwcm9qZWN0IGlzIGEgaGl0LW9yLW1pc3MgYWZmYWlyLiBUaGUga2V5IHBvaW50Cit3aGVuIHlvdSByZW1vdmUgZGF0YSBpcyB0byBtYWtlIHN1cmUgdG8gcmVtb3ZlIGFsbCBkZXBlbmRlbmNpZXMgb24KK3RoYXQgZGF0YSBhcyB3ZWxsLiBGb3IgZXhhbXBsZSwgaWYgeW91IHJlbW92ZSA8dHQ+aGUucmVzPC90dD4sIHlvdQorbmVlZCB0byByZW1vdmUgPHR0PmhlX0lMLnJlczwvdHQ+LCBzaW5jZSBpdCBpcyBsb3dlciBpbiB0aGUgaGllcmFyY2h5LAorYW5kIHlvdSBtdXN0IHJlbW92ZSBpdy5yZXMsIHNpbmNlIGl0IHJlZmVyZW5jZXMgPHR0PmhlLnJlczwvdHQ+LCBhbmQKKzx0dD5pd19JTC5yZXM8L3R0Piwgc2luY2UgaXQgZGVwZW5kcyBvbiBpdCAoYW5kIGFsc28gcmVmZXJlbmNlcworPHR0PmhlX0lMLnJlczwvdHQ+KS4KKzwvcD4KKzxwPgorVW5mb3J0dW5hdGVseSwgdGhlIGphciB0b29sIGluIHRoZSBKREsgcHJvdmlkZXMgbm8gd2F5IHRvIHJlbW92ZSBpdGVtcworZnJvbSBhIGphciBmaWxlLiBUaHVzIHlvdSBoYXZlIHRvIGV4dHJhY3QgdGhlIHJlc291cmNlcywgcmVtb3ZlIHRoZQorb25lcyB5b3UgZG9uJ3Qgd2FudCwgYW5kIHRoZW4gY3JlYXRlIGEgbmV3IGphciBmaWxlIHdpdGggdGhlIHJlbWluaW5nCityZXNvdXJjZXMuIFNlZSB0aGUgamFyIHRvb2wgaW5mb3JtYXRpb24gZm9yIGhvdyB0byBkbyB0aGlzLiBCZWZvcmUKKydyZWphcmluZycgdGhlIGZpbGVzLCBiZSBzdXJlIHRvIHRob3JvdWdobHkgdGVzdCB5b3VyIGFwcGxpY2F0aW9uIHdpdGgKK3RoZSByZW1haW5pbmcgcmVzb3VyY2VzLCBtYWtpbmcgc3VyZSBlYWNoIHJlcXVpcmVkIHJlc291cmNlIGlzCitwcmVzZW50LgorPC9wPgorPGg0PlVzaW5nIGFkZGl0aW9uYWwgcmVzb3VyY2UgZmlsZXMgd2l0aCBJQ1U0SjwvaDQ+Cis8YmxvY2txdW90ZT4KKyAgPHRhYmxlIGNlbGxwYWRkaW5nPSIzIiBmcmFtZT0iYm9yZGVyIiBydWxlcz0ibm9uZSIgd2lkdGg9IjUwJSI+CisgICAgPHRib2R5PgorICAgICAgPHRyPgorICAgICAgICA8dGQ+PGI+PGZvbnQgY29sb3I9InJlZCIgc2l6ZT0iKzEiPldhcm5pbmc6PC9mb250PiBSZXNvdXJjZQorZmlsZSBmb3JtYXRzIGNhbiBjaGFuZ2UgYWNyb3NzIHJlbGVhc2VzIG9mIElDVTRKITwvYj48L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPlRoZSBmb3JtYXQgb2YgSUNVNEogcmVzb3VyY2VzIGlzIG5vdCBwYXJ0IG9mIHRoZSBBUEkuCitDbGllbnRzIHdobyBkZXZlbG9wIHRoZWlyIG93biByZXNvdXJjZXMgZm9yIHVzZSB3aXRoIElDVTRKIHNob3VsZCBiZQorcHJlcGFyZWQgdG8KK3JlZ2VuZXJhdGUgdGhlbSB3aGVuIHRoZXkgbW92ZSB0byBuZXcgcmVsZWFzZXMgb2YgSUNVNEouPC90ZD4KKyAgICAgIDwvdHI+CisgICAgPC90Ym9keT4KKyAgPC90YWJsZT4KKzwvYmxvY2txdW90ZT4KKzxwPgorV2UgYXJlIHN0aWxsIGRldmVsb3BpbmcgSUNVNEoncyByZXNvdXJjZSBtZWNoYW5pc20uIEN1cnJlbnRseSBpdCAKK2lzIG5vdCBwb3NzaWJsZSB0byBtaXggaWN1J3MgbmV3IGJpbmFyeSA8dHQ+LnJlczwvdHQ+CityZXNvdXJjZXMKK3dpdGggdHJhZGl0aW9uYWwgamF2YS1zdHlsZSA8dHQ+LmNsYXNzPC90dD4gb3IgPHR0Pi50eHQ8L3R0PgorcmVzb3VyY2VzLiBXZSBtaWdodAorYWxsb3cgZm9yIHRoaXMgaW4gYSBmdXR1cmUgcmVsZWFzZSwgYnV0IHNpbmNlIHRoZSByZXNvdXJjZSBkYXRhIGFuZAorZm9ybWF0IGlzIG5vdCBmb3JtYWxseQorc3VwcG9ydGVkLCB5b3UgcnVuIHRoZSByaXNrIG9mIGluY29tcGF0aWJpbGl0aWVzIHdpdGggZnV0dXJlIHJlbGVhc2VzCitvZiBJQ1U0Si4KKzwvcD4KKzxwPgorUmVzb3VyY2UgZGF0YSBpbiBJQ1U0SiBpcyBjaGVja2VkIGluIHRvIHRoZSByZXBvc2l0b3J5IGFzIGEgamFyIGZpbGUKK2NvbnRhaW5pbmcgdGhlIHJlc291cmNlIGJpbmFyaWVzLCA8dHQ+aWN1ZGF0YS5qYXI8L3R0Pi4gVGhpcworbWVhbnMgdGhhdCBpbnNwZWN0aW5nIHRoZSBjb250ZW50cyBvZiB0aGVzZSByZXNvdXJjZXMgaXMgZGlmZmljdWx0LgorVGhleSBjdXJyZW50bHkgYXJlIGNvbXBpbGVkIGZyb20gSUNVNEMgPHR0Pi50eHQ8L3R0PiBmaWxlIGRhdGEuIFlvdQorY2FuIHZpZXcgdGhlIGNvbnRlbnRzIG9mIHRoZSBJQ1U0QyB0ZXh0IHJlc291cmNlIGZpbGVzIHRvIHVuZGVyc3RhbmQKK3RoZSBjb250ZW50cyBvZiB0aGUgSUNVNEogcmVzb3VyY2VzLgorPC9wPgorPHA+CitUaGUgZmlsZXMgaW4gPHR0PmljdWRhdGEuamFyPC90dD4gZ2V0IGV4dHJhY3RlZCB0byA8dHQ+Y29tL2libS9pY3UvaW1wbC9kYXRhPC90dD4KK2luCit0aGUgYnVpbGQgZGlyZWN0b3J5IHdoZW4gdGhlICdjb3JlJyB0YXJnZXQgaXMgYnVpbHQuCitCdWlsZGluZyB0aGUgPHR0PidyZXNvdXJjZXMnPC90dD4gdGFyZ2V0IHdpbGwgZm9yY2UgdGhlCityZXNvdXJjZXMgdG8gb25jZSBhZ2FpbiBiZSBleHRyYWN0ZWQuIEV4dHJhY3Rpb24gd2lsbAorb3ZlcndyaXRlIGFueSBjb3JyZXNwb25kaW5nIHJlc291cmNlIGZpbGVzIGFscmVhZHkgaW4gdGhhdCBkaXJlY3RvcnkuCis8L3A+Cis8aDQ+PGEgbmFtZT0icmVzb3VyY2VzSUNVNEMiPkJ1aWxkaW5nIElDVTRKIFJlc291cmNlcyBmcm9tIElDVTRDPC9hPjwvaDQ+Cis8aDU+UmVxdWlyZW1lbnRzPC9oNT4KKzx1bD4KKyAgPGxpPjxhCisgaHJlZj0iaHR0cDovL3d3dy5pYm0uY29tL3NvZnR3YXJlL2dsb2JhbGl6YXRpb24vaWN1L2Rvd25sb2Fkcy5qc3AiPklDVTRDPC9hPjwvbGk+CisgIDxsaT5Db21waWxlcnMgYW5kIHRvb2xzIHJlcXVpcmVkIGZvciBidWlsZGluZyA8YQorIGhyZWY9Imh0dHA6Ly9kZXYuaWN1LXByb2plY3Qub3JnL2NnaS1iaW4vdmlld2N2cy5jZ2kvKmNoZWNrb3V0Ki9pY3UvcmVhZG1lLmh0bWwjSG93VG9CdWlsZCI+SUNVNEM8L2E+LjwvbGk+CisgIDxsaT5KYXZhIFNESyB2ZXJzaW9uIDEuNC4wIG9yIGFib3ZlLjwvbGk+CisgIDxsaT5QZXJsIHZlcnNpb24gNSBvciBhYm92ZS48L2xpPgorPC91bD4KKzxoNT4gUHJvY2VkdXJlPC9oNT4KKzxvbD4KKyAgPGxpPiBEb3dubG9hZCBhbmQgYnVpbGQgSUNVNEMgb24gYSBXaW5kb3dzIG1hY2hpbmUuIEZvciBpbnN0cnVjdGlvbnMgb24KK2Rvd25sb2FkaW5nIGFuZCBidWlsZGluZyBJQ1U0QywgcGxlYXNlIGNsaWNrIDxhCisgaHJlZj0iaHR0cDovL2Rldi5pY3UtcHJvamVjdC5vcmcvY2dpLWJpbi92aWV3Y3ZzLmNnaS8qY2hlY2tvdXQqL2ljdS9yZWFkbWUuaHRtbCNIb3dUb0J1aWxkIj5oZXJlPC9hPi48L2xpPgorICA8bGk+IENoYW5nZSBkaXJlY3RvcnkgdG8gPGk+JGljdV9yb290PC9pPi9zb3VyY2UvdG9vbHMvZ2VucmIgPC9saT4KKyAgPGxpPiBMYXVuY2ggZ2VuZHRqYXIucGwgZnJvbSB0aGF0IGRpcmVjdG9yeSBpdHNlbGYgd2l0aCB0aGUgY29tbWFuZCA8YnI+CitnZW5kdGphci5wbCAtLWljdS1yb290PTxpPiRpY3Vfcm9vdDwvaT4gLS1qYXI9PGk+JGpka19ob21lL2JpbjwvaT4KKy0taWN1NGotcm9vdD08aT4kaWN1NGpfcm9vdDwvaT4gLS12ZXJzaW9uPTxpPiRpY3VfdmVyc2lvbjwvaT4gPGJyPgorZS5nOiBnZW5kdGphci5wbCAtLWljdS1yb290PVx3b3JrXGljdSAtLWphcj1camRrMS40LjFcYmluCistLWljdTRqLXJvb3Q9XHdvcmtcaWN1NGogLS12ZXJzaW9uPTMuMCA8YnI+CitFeGVjdXRpb24gb2YgZ2VuZHRqYXIucGwgc2NyaXB0IHdpbGwgY3JlYXRlIHRoZSByZXF1aXJlZCBqYXIgZmlsZXMgaW4KK3RoZSAkaWN1X3Jvb3Rcc291cmNlXHRvb2xzXGdlbnJiXHRlbXAgZGlyZWN0b3J5LjwvbGk+CisgIDxsaT4gTW92ZSBpY3VkYXRhLmphciB0byA8aT4kaWN1NGpfcm9vdDwvaT4vc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YQorZGlyZWN0b3J5LjwvbGk+CisgIDxsaT4gTW92ZSB0ZXN0ZGF0YS5qYXIgdG8gPGk+JGljdTRqX3Jvb3Q8L2k+L3NyYy9jb20vaWJtL2Rldi9kYXRhCitkaXJlY3RvcnkuPC9saT4KKyAgPGxpPiBCdWlsZCByZXNvdXJjZXMgdGFyZ2V0IG9mIGFudCB0byB1bnBhY2sgdGhlIGphciBmaWxlcyB3aXRoIHRoZQorZm9sbG93aW5nIGNvbW1hbmQuIDxicj4KKyAgICA8aT4kYW50X2hvbWU8L2k+L2Jpbi9hbnQgcmVzb3VyY2VzPC9saT4KKzwvb2w+Cis8aDU+IEdlbmVyYXRpbmcgRGF0YSBmcm9tIENMRFIgPC9oNT4KKzxpPiBOb3RlOiBUaGlzIHByb2NlZHVyZSBhc3N1bWVzIHRoYXQgYWxsIDMgc291cmNlcyBhcmUgaW4gc2libGluZyBkaXJlY3RvcmllczwvaT4KKzxvbD4KKyAgICA8bGk+Q2hlY2tvdXQgQ0xEUjwvbGk+CisgICAgPGxpPlVwZGF0ZSA8aT4kY2xkcl9yb290PC9pPi9jb21tb24gdG8gJ3JlbGVhc2UtMS0zLUNvcnJpZ2VuZHVtLTInIHRhZzwvbGk+CisgICAgPGxpPlVwZGF0ZSA8aT4kY2xkcl9yb290PC9pPi90b29scyB0byAndGFnLWZvci1pY3U0ai1yZWxlYXNlLTMtNC0zJyB0YWc8L2xpPgorICAgIDxsaT5DaGVja291dCBJQ1Ugd2l0aCB0YWcgJ3JlbGVhc2UtMy00LTEnPC9saT4KKyAgICA8bGk+Q2hlY2tvdXQgSUNVNEogd2l0aCB0YWcgJ3JlbGVhc2UtMy00LTUnPC9saT4KKyAgICA8bGk+QnVpbGQgSUNVNEo8L2xpPgorICAgIDxsaT5CdWlsZCBJQ1U0QzwvbGk+CisgICAgPGxpPkNoYW5nZSB0byA8aT4kY2xkcl9yb290PC9pPi90b29scy9qYXZhIGRpcmVjdG9yeTwvbGk+CisgICAgPGxpPkJ1aWxkIENMRFIgdXNpbmcgYW50IGFmdGVyIHBvaW50aW5nIElDVTRKX0NMQVNTRVMgZW52IHZhciB0byB0aGUgbmV3bHkgYnVpbGQgSUNVNEo8L2xpPgorICAgIDxsaT5jZCB0byA8aT4kaWN1NGNfcm9vdDwvaT4vc291cmNlL2RhdGEgZGlyZWN0b3J5PC9saT4KKyAgICA8bGk+Rm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhlIGNsZHItaWN1LXJlYWRtZS50eHQ8L2xpPgorICAgIDxsaT5CdWlsZCBJQ1UgZGF0YSBmcm9tIENMRFI8L2xpPgorICAgIDxsaT5jZCB0byA8aT4kaWN1NGNfcm9vdC9zb3VyY2UvdG9vbHMvZ2VucmI8L2k+PC9saT4KKyAgICA8bGk+cnVuIC4vZ2VuZHRqYXIucGw8L2xpPgorICAgIDxsaT5jZCB0byA8aT4kaWN1NGpfcm9vdDwvaT4gZGlyPC9saT4KKyAgICA8bGk+QnVpbGQgYW5kIHRlc3QgaWN1NGo8L2xpPgorPC9vbD4KKworPGgzIGNsYXNzPSJkb2MiPjxhIG5hbWU9IldoZXJlVG9GaW5kTW9yZSI+PC9hPldoZXJlIHRvIEZpbmQgTW9yZQorSW5mb3JtYXRpb248L2gzPgorPHA+PGEgaHJlZj0iaHR0cDovL2libS5jb20vc29mdHdhcmUvZ2xvYmFsaXphdGlvbi9pY3UvIj5odHRwOi8vaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uL2ljdS88L2E+CitpcyBhCitwb2ludGVyIHRvIGdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IKK1VuaWNvZGUgaW4gSmF2YSA8L3A+Cis8cD48YSBocmVmPSJodHRwOi8vaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uLyI+aHR0cDovL2libS5jb20vc29mdHdhcmUvZ2xvYmFsaXphdGlvbi88L2E+CitpcyBhIHBvaW50ZXIgdG8KK2luZm9ybWF0aW9uIG9uIGhvdyB0byBtYWtlIGFwcGxpY2F0aW9ucyBnbG9iYWwuIDwvcD4KKzxoMyBjbGFzcz0iZG9jIj48YSBuYW1lPSJTdWJtaXR0aW5nQ29tbWVudHMiPjwvYT5TdWJtaXR0aW5nIENvbW1lbnRzLAorUmVxdWVzdGluZyBGZWF0dXJlcyBhbmQKK1JlcG9ydGluZyBCdWdzPC9oMz4KKzxwPllvdXIgY29tbWVudHMgYXJlIGltcG9ydGFudCB0byBtYWtpbmcgSUNVNEogc3VjY2Vzc2Z1bC4gV2UgYXJlCitjb21taXR0ZWQKK3RvIGZpeGluZyBhbnkgYnVncywgYW5kIHdpbGwgdXNlIHlvdXIgZmVlZGJhY2sgdG8gaGVscCBwbGFuIGZ1dHVyZQorcmVsZWFzZXMuPC9wPgorPHA+VG8gc3VibWl0IGNvbW1lbnRzLCByZXF1ZXN0IGZlYXR1cmVzIGFuZCByZXBvcnQgYnVncywgY29udGFjdCB1cwordGhyb3VnaCB0aGUgPGEKKyBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9jb250YWN0cy5odG1sIj5JQ1UgU3VwcG9ydAorbWFpbGluZyBsaXN0PC9hPi48YnI+CitXaGlsZSB3ZSBhcmUgbm90IGFibGUgdG8gcmVzcG9uZCBpbmRpdmlkdWFsbHkgdG8gZWFjaCBjb21tZW50LCB3ZSBkbworcmV2aWV3IGFsbCBjb21tZW50cy48L3A+Cis8YnI+Cis8YnI+Cis8aDI+VGhhbmsgeW91IGZvciB5b3VyIGludGVyZXN0IGluIElDVTRKITwvaDI+Cis8YnI+Cis8aHIgYWxpZ249ImNlbnRlciIgc2l6ZT0iMiIgd2lkdGg9IjEwMCUiPgorPHA+PGk+PGZvbnQgc2l6ZT0iLTEiPkNvcHlyaWdodCAmY29weTsgMjAwMi0yMDA2IEludGVybmF0aW9uYWwgQnVzaW5lc3MKK01hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMKK1Jlc2VydmVkLjxicj4KKzU2MDAgQ290dGxlIFJvYWQsIFNhbiBKb3MmZWFjdXRlOywgQ0EgOTUxOTMKKzwvZm9udD48L2k+PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL0NvbGxhdGlvblRlc3RfTk9OX0lHTk9SQUJMRV9TVFVCLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9Db2xsYXRpb25UZXN0X05PTl9JR05PUkFCTEVfU1RVQi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTgwMDA2MjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvQ29sbGF0aW9uVGVzdF9OT05fSUdOT1JBQkxFX1NUVUIudHh0CkBAIC0wLDAgKzEsNDEwMyBAQAorMDMzNCAwNUE4OworMDMzNCAwNkU3OworMDMzNCAxRDE4MDsKKzA1OUUgMDMzNDsKKzA2RDkgMDMzNDsKKzFEMTY4IDAzMzQ7CiswMzMyIDAzMzQ7CiswMzM0IDAzMDggMDMwMTsKKzAzMTUgMDMzNDsKKzAzMjQgMDMzNDsKKzAzM0EgMDMzNDsKKzAzNEUgMDMzNDsKKzAzNUUgMDMzNDsKKzA1QjAgMDMzNDsKKzAzMzQgRkIxRTsKKzAzMzQgMDY1OTsKKzAzMzQgMDczNzsKKzAzMzQgMDc0NjsKKzAzMzQgMTBBMEQ7CiswMzM0IDE3REQ7CiswMzM0IDIwRDU7CisyMEVCIDAzMzQ7CiswMDg1IDAwNjI7CisyMDAxIDAwM0Y7CisyMDAyIDAwNDE7CisyMDJGIDAwNjI7CiswMzg0IDAwM0Y7CiswMEFGIDAwNjE7CitGRTRDIDAwNjI7CisxRkVEIDAwM0Y7CisxRkNFIDAzMzQ7CisxRkNFIDAwNjI7CisxRkZFIDAwNjI7CitGRjNGIDAwNjE7CiszMDlCIDAwM0Y7CiswNThBIDAwM0Y7CitGRTMyIDAwMjE7CisyMDUzIDAwM0Y7CitGRjY1IDAwNjE7CiswNjBDIDAwM0Y7CitGRTUxIDAwMjE7CiswMzdFIDAwMjE7CisyMDRGIDAwM0Y7CiswNTg5IDAwM0Y7CiswNzA3IDAwM0Y7CisxMzY2IDAwM0Y7CisxNkVDIDAwM0Y7CiswMDFBIDAwMjE7CiswMDk4IDAwMjE7CiswNUE0IDAwMjE7CiswNkRCIDAwMjE7CisyMDBCIDAwMjE7CitGREQzIDAwMjE7CisxRDE2NyAwMDIxOworMUQxOEEgMDAyMTsKK0JGRkZGIDAwMjE7CitFMDAzOCAwMDIxOworRTAwNTYgMDAyMTsKK0UwMDc0IDAwMjE7CitFMDExMiAwMDIxOworRTAxMzAgMDAyMTsKK0UwMTRFIDAwMjE7CitFMDE2QyAwMDIxOworRTAxOEEgMDAyMTsKK0UwMUE4IDAwMjE7CitFMDFDNiAwMDIxOworRTAxRTQgMDAyMTsKKzAzNDQgMDAyMTsKKzAzMjMgMDAyMTsKKzAzNEEgMDAyMTsKKzA0ODMgMDAyMTsKK0ZFNzYgMDAyMTsKKzA2NUIgMDAyMTsKKzA3NDggMDAyMTsKKzBDMDEgMDAyMTsKKzBFQ0QgMDAyMTsKKzMwMkYgMDAyMTsKKzIwRTkgMDAyMTsKK0ZGMDEgMDA2MjsKKzAwMTEgMDAzRjsKKzAwOEYgMDAzRjsKKzA1OUIgMDAzRjsKKzA2MTIgMDAzRjsKKzBGODIgMDAzRjsKK0Q4MDEgMDAzRjsKK0ZFNzMgMDAzRjsKKzFEMTdGIDAwM0Y7Cis3RkZGRSAwMDNGOworRTAwMkYgMDAzRjsKK0UwMDREIDAwM0Y7CitFMDA2QiAwMDNGOworRTAxMDkgMDAzRjsKK0UwMTI3IDAwM0Y7CitFMDE0NSAwMDNGOworRTAxNjMgMDAzRjsKK0UwMTgxIDAwM0Y7CitFMDE5RiAwMDNGOworRTAxQkQgMDAzRjsKK0UwMURCIDAwM0Y7CiswMzQxIDAwM0Y7CiswMzFBIDAwM0Y7CiswMzNDIDAwM0Y7CiswMzYwIDAwM0Y7CiswNjRCIDAwM0Y7CitGRTdFIDAwM0Y7CiswNzNGIDAwM0Y7CiswQUJDIDAwM0Y7CiswRTRBIDAwM0Y7CisxN0REIDAwM0Y7CisyMEUwIDAwM0Y7CiswMDNGIDAwNjE7CiswNzA5IDAwNDE7CitGRTUyIDAwMjE7CisyMDI0IDAwNDE7CisxMzYyIDAwNDE7CiszMDAyIDAwM0Y7CiswOTY1IDAwNDE7CisxN0Q1IDAwNDE7CisxMzY4IDAwNDE7CisyMDU5IDAwNDE7CisyQ0ZDIDAwNDE7CisxMDNEMCAwMDQxOworMjAxQiAwMDQxOworMjAxRCAwMDQxOworMDBBQiAwMDQxOworMjQ3RSAwMDNGOworMjQ4NCAwMDNGOworMjQ3NyAwMDNGOworMDAyOCAwMDQxOworMjQ5RSAwMDQxOworMjRBNCAwMDQxOworMjRBQSAwMDQxOworMjRCMCAwMDQxOworMzIwMCAwMDQxOworMzIwMyAwMDQxOworMzIwNiAwMDQxOworMzIwOCAwMDQxOworMzIxOCAwMDQxOworMzIxQiAwMDQxOworMzIyNCAwMDQxOworMzIzOCAwMDQxOworMzIyRiAwMDQxOworMzIzMSAwMDQxOworMzIzNyAwMDQxOworMzIyRSAwMDQxOworMjA4RSAwMDYyOworRkYzRCAwMDYyOworMDA3RCAwMDYxOworMEYzRCAwMDQxOworMjlGRCAwMDQxOworMjk4NiAwMDYyOworMjk4QyAwMDQxOworMjk5MiAwMDQxOworMjk5OCAwMDQxOworMkUwQSAwMDQxOworMjMyOSAwMDQxOworMzAwQSAwMDYyOworMzAwRCAwMDNGOworMzAwRiAwMDYyOworRkU1RCAwMDYxOworMzAxNiAwMDYyOworMzAxQiAwMDQxOworMDBBOSAwMDQxOworRkYwQSAwMDYxOworMDAyRiAwMDYyOworRkYwNiAwMDYxOworRkYwMyAwMDYyOworMjAzMSAwMDQxOworMjAyNyAwMDQxOworMjAzNCAwMDYyOworMzAzRCAwMDQxOworMjA1MCAwMDQxOworMkUwNyAwMDQxOworMkUxMSAwMDQxOworMDU1QSAwMDQxOworMDVDNiAwMDQxOworMDcwRCAwMDQxOworMEU1QiAwMDQxOworMEYwOSAwMDQxOworMEYwRCAwMDQxOworMEY4NSAwMDQxOworMTdENyAwMDQxOworMTBBNTEgMDA0MTsKKzAzNzQgMDAzRjsKKzAyQzQgMDA0MTsKKzAyQ0EgMDA0MTsKKzAyRDIgMDA0MTsKKzAyREUgMDA0MTsKKzAyRTkgMDA0MTsKKzAyRjAgMDA0MTsKKzAyRjYgMDA0MTsKKzAyRkMgMDA0MTsKKzEzOTIgMDA0MTsKKzEzOTggMDA0MTsKK0E3MDQgMDA0MTsKK0E3MEEgMDA0MTsKK0E3MTAgMDA0MTsKK0E3MTYgMDA0MTsKKzA2MEYgMDA0MTsKKzBCRjQgMDA0MTsKK0E4MjggMDA0MTsKKzBGMDIgMDA0MTsKKzBGMUEgMDA0MTsKKzBGMzQgMDA0MTsKKzBGQkYgMDA0MTsKKzBGQzUgMDA0MTsKKzBGQ0MgMDA0MTsKKzE5RTQgMDA0MTsKKzE5RUEgMDA0MTsKKzE5RjAgMDA0MTsKKzE5RjYgMDA0MTsKKzE5RkMgMDA0MTsKKzIxMTQgMDA0MTsKKzIxMjUgMDA0MTsKKzIxNDEgMDA0MTsKK0ZGRTkgMDAyMTsKKzIxOUIgMDA2MjsKKzIxQUUgMDA0MTsKKzIxOUMgMDA2MTsKKzIxQTIgMDA2MTsKKzIxQTggMDA2MTsKKzIxQUYgMDA2MTsKKzIxQjUgMDA2MTsKKzIxQkIgMDA2MTsKKzIxQzEgMDA2MTsKKzIxQzcgMDA2MTsKKzIxRDAgMDAyMTsKKzIxRDMgMDA0MTsKKzIxRDggMDAzRjsKKzIxREUgMDAzRjsKKzIxRTQgMDAzRjsKKzIxRUEgMDAzRjsKKzIxRjAgMDAzRjsKKzIxRjYgMDAzRjsKKzIxRkMgMDAzRjsKKzFENkRCIDAwMjE7CisyMjA0IDAzMzQ7CisxRDczNSAwMDNGOworMjIwOSAwMDQxOworMjIwRSAwMDIxOworMjA4QSAwMDIxOworMDBGNyAwMDIxOworRkU2NCAwMDYyOworRkU2NiAwMDYxOworMjI2RiAwMDYxOworMDBBNiAwMDYxOworMjA3QiAwMDQxOworMjIxNyAwMDYyOworMjIxRCAwMDYyOworMjIyMyAwMDNGOworMjIyOSAwMDIxOworMjIyRSAwMDIxOworMjIzNCAwMDIxOworMjIzQSAwMDIxOworMjIzRSAwMDQxOworMjI0NyAwMzM0OworMjI0QSAwMDYxOworMjI0RiAwMDIxOworMjI1NSAwMDIxOworMjI1QiAwMDIxOworMjI2MiAwMDNGOworMjI2NSAwMDYxOworMjI2QSAwMDYyOworMjI3MyAwMDQxOworMjI4MCAwMzM0OworMjI3QyAwMDQxOworMjI4NCAwMDIxOworMjI4OCAwMDQxOworMjI4RCAwMDIxOworMjI5MSAwMDYyOworMjI5NiAwMDNGOworMjI5QyAwMDNGOworMjJBQyAwMzM0OworMjJBNiAwMDYyOworMjJBQSAwMDIxOworMjJFQSAwMDIxOworMjJFQyAwMDQxOworMjJCOSAwMDIxOworMjJCRiAwMDIxOworMjJDNSAwMDIxOworMjJDQiAwMDIxOworMjJEMSAwMDIxOworMjJENyAwMDIxOworMjJERCAwMDIxOworMjJFNyAwMDIxOworMjJGMSAwMDIxOworMjJGNyAwMDIxOworMjJGRCAwMDIxOworMjMwMyAwMDIxOworMjMwOSAwMDIxOworMjMwRiAwMDIxOworMjMxNSAwMDIxOworMjMxQiAwMDIxOworMjMyMSAwMDIxOworMjMyNyAwMDIxOworMjMyRiAwMDIxOworMjMzNSAwMDIxOworMjMzQiAwMDIxOworMjM0MSAwMDIxOworMjM0NyAwMDIxOworMjM0RCAwMDIxOworMjM1MyAwMDIxOworMjM1OSAwMDIxOworMjM1RiAwMDIxOworMjM2NSAwMDIxOworMjM2QiAwMDIxOworMjM3MSAwMDIxOworMjM3NyAwMDIxOworMjM3RCAwMDIxOworMjM4MyAwMDIxOworMjM4OSAwMDIxOworMjM4RiAwMDIxOworMjM5NSAwMDIxOworMjM5QiAwMDIxOworMjNBMSAwMDIxOworMjNBNyAwMDIxOworMjNBRCAwMDIxOworMjNCMyAwMDIxOworMjNCOSAwMDIxOworMjNCRiAwMDIxOworMjNDNSAwMDIxOworMjNDQiAwMDIxOworMjNEMSAwMDIxOworMjNENyAwMDIxOworMjQwMSAwMDIxOworMjQwNyAwMDIxOworMjQwRCAwMDIxOworMjQxMyAwMDIxOworMjQxOSAwMDIxOworMjQxRiAwMDIxOworMjQyNSAwMDIxOworMjQ0NCAwMDIxOworMjQ0QSAwMDIxOworMjUwNCAwMDIxOworMjUwQSAwMDIxOworMjUxMCAwMDIxOworMjUxNiAwMDIxOworMjUxQyAwMDIxOworMjUyMiAwMDIxOworMjUyOCAwMDIxOworMjUyRSAwMDIxOworMjUzNCAwMDIxOworMjUzQSAwMDIxOworMjU0MCAwMDIxOworMjU0NiAwMDIxOworMjU0QyAwMDIxOworMjU1MiAwMDIxOworMjU1OCAwMDIxOworMjU1RSAwMDIxOworMjU2NCAwMDIxOworMjU2QSAwMDIxOworMjU3MCAwMDIxOworMjU3NiAwMDIxOworMjU3QyAwMDIxOworMjU4MiAwMDIxOworMjU4OCAwMDIxOworMjU4RSAwMDIxOworMjU5NCAwMDIxOworMjU5QSAwMDIxOworMjVBMCAwMDIxOworMjVBNSAwMDIxOworMjVBQiAwMDIxOworMjVCMSAwMDIxOworMjVCNyAwMDIxOworMjVCRCAwMDIxOworMjVDMyAwMDIxOworMjVDOSAwMDIxOworMjVDRSAwMDIxOworMjVENCAwMDIxOworMjVEQSAwMDIxOworMjVFMCAwMDIxOworMjVFNiAwMDIxOworMjVFQyAwMDIxOworMjVGMiAwMDIxOworMjVGOCAwMDIxOworMjVGRSAwMDIxOworMjYwNCAwMDIxOworMjYwQSAwMDIxOworMjYxMCAwMDIxOworMjYxNiAwMDIxOworMjYxQyAwMDIxOworMjYyMiAwMDIxOworMjYyOCAwMDIxOworMjYyRSAwMDIxOworMjYzQyAwMDIxOworMjY0MiAwMDIxOworMjY0OCAwMDIxOworMjY0RSAwMDIxOworMjY1NCAwMDIxOworMjY1QSAwMDIxOworMjY2MCAwMDIxOworMjY2NiAwMDIxOworMjY2QyAwMDIxOworMjY3NSAwMDIxOworMjY3QiAwMDIxOworMjY4MSAwMDIxOworMjY4NyAwMDIxOworMjY5MyAwMDIxOworMjY5OSAwMDIxOworMjZBMiAwMDIxOworMjZBOCAwMDIxOworMjZBRSAwMDIxOworMjcwMyAwMDIxOworMjcwQyAwMDIxOworMjcxMiAwMDIxOworMjcxOCAwMDIxOworMjcxRSAwMDIxOworMjcyNCAwMDIxOworMjcyQiAwMDIxOworMjczMSAwMDIxOworMjczNyAwMDIxOworMjczRCAwMDIxOworMjc0MyAwMDIxOworMjc0OSAwMDIxOworMjc1MSAwMDIxOworMjc1QiAwMDIxOworMjc2MyAwMDIxOworMjc2OSAwMDIxOworMjc2RiAwMDIxOworMjc3NSAwMDIxOworMjc5QyAwMDIxOworMjdBMiAwMDIxOworMjdBOCAwMDIxOworMjdBRSAwMDIxOworMjdCNSAwMDIxOworMjdCQiAwMDIxOworMjdDMiAwMDIxOworMjdEMSAwMDIxOworMjdENyAwMDIxOworMjdERCAwMDIxOworMjdFMyAwMDIxOworMjdFOSAwMDIxOworMjdGMyAwMDIxOworMjdGOSAwMDIxOworMjdGRiAwMDIxOworMjkwNSAwMDIxOworMjkwQiAwMDIxOworMjkxMSAwMDIxOworMjkxNyAwMDIxOworMjkxRCAwMDIxOworMjkyMyAwMDIxOworMjkyOSAwMDIxOworMjkyRiAwMDIxOworMjkzNSAwMDIxOworMjkzQiAwMDIxOworMjk0MSAwMDIxOworMjk0NyAwMDIxOworMjk0RCAwMDIxOworMjk1MyAwMDIxOworMjk1OSAwMDIxOworMjk1RiAwMDIxOworMjk2NSAwMDIxOworMjk2QiAwMDIxOworMjk3MSAwMDIxOworMjk3NyAwMDIxOworMjk3RCAwMDIxOworMjk5OSAwMDIxOworMjk5RiAwMDIxOworMjlBNSAwMDIxOworMjlBQiAwMDIxOworMjlCMSAwMDIxOworMjlCNyAwMDIxOworMjlCRCAwMDIxOworMjlDMyAwMDIxOworMjlDOSAwMDIxOworMjlDRiAwMDIxOworMjlENSAwMDIxOworMjlEQiAwMDIxOworMjlFMSAwMDIxOworMjlFNyAwMDIxOworMjlFRCAwMDIxOworMjlGMyAwMDIxOworMjlGOSAwMDIxOworMkEwMSAwMDIxOworMkEwNyAwMDIxOworMkEwRSAwMDIxOworMkExNCAwMDIxOworMkExQSAwMDIxOworMkEyMCAwMDIxOworMkEyNiAwMDIxOworMkEyQyAwMDIxOworMkEzMiAwMDIxOworMkEzOCAwMDIxOworMkEzRSAwMDIxOworMkE0NCAwMDIxOworMkE0QSAwMDIxOworMkE1MCAwMDIxOworMkE1NiAwMDIxOworMkE1QyAwMDIxOworMkE2MiAwMDIxOworMkE2OCAwMDIxOworMkE2RSAwMDIxOworMkE3NyAwMDIxOworMkE3RCAwMDIxOworMkE4MyAwMDIxOworMkE4OSAwMDIxOworMkE4RiAwMDIxOworMkE5NSAwMDIxOworMkE5QiAwMDIxOworMkFBMSAwMDIxOworMkFBNyAwMDIxOworMkFBRCAwMDIxOworMkFCMyAwMDIxOworMkFCOSAwMDIxOworMkFCRiAwMDIxOworMkFDNSAwMDIxOworMkFDQiAwMDIxOworMkFEMSAwMDIxOworMkFENyAwMDIxOworMkFEQyAwMDNGOworMkFFMiAwMDQxOworMkFFOCAwMDQxOworMkFFRSAwMDQxOworMkFGNCAwMDQxOworMkFGQSAwMDQxOworMkIwMCAwMDQxOworMkIwNiAwMDQxOworMkIwQyAwMDQxOworMkIxMiAwMDQxOworMkNFOSAwMDQxOworMjgwNCAwMDQxOworMjgwQSAwMDQxOworMjgxMCAwMDQxOworMjgxNiAwMDQxOworMjgxQyAwMDQxOworMjgyMiAwMDQxOworMjgyOCAwMDQxOworMjgyRSAwMDQxOworMjgzNCAwMDQxOworMjgzQSAwMDQxOworMjg0MCAwMDQxOworMjg0NiAwMDQxOworMjg0QyAwMDQxOworMjg1MiAwMDQxOworMjg1OCAwMDQxOworMjg1RSAwMDQxOworMjg2NCAwMDQxOworMjg2QSAwMDQxOworMjg3MCAwMDQxOworMjg3NiAwMDQxOworMjg3QyAwMDQxOworMjg4MiAwMDQxOworMjg4OCAwMDQxOworMjg4RSAwMDQxOworMjg5NCAwMDQxOworMjg5QSAwMDQxOworMjhBMCAwMDQxOworMjhBNiAwMDQxOworMjhBQyAwMDQxOworMjhCMiAwMDQxOworMjhCOCAwMDQxOworMjhCRSAwMDQxOworMjhDNCAwMDQxOworMjhDQSAwMDQxOworMjhEMCAwMDQxOworMjhENiAwMDQxOworMjhEQyAwMDQxOworMjhFMiAwMDQxOworMjhFOCAwMDQxOworMjhFRSAwMDQxOworMjhGNCAwMDQxOworMjhGQSAwMDQxOworMjY4QSAwMDQxOworMjYzMCAwMDQxOworMjYzNiAwMDQxOworNERDNCAwMDQxOworNERDQSAwMDQxOworNEREMCAwMDQxOworNERENiAwMDQxOworNEREQyAwMDQxOworNERFMiAwMDQxOworNERFOCAwMDQxOworNERFRSAwMDQxOworNERGNCAwMDQxOworNERGQSAwMDQxOworMUQzMDAgMDA0MTsKKzFEMzA2IDAwNDE7CisxRDMwQyAwMDQxOworMUQzMTIgMDA0MTsKKzFEMzE4IDAwNDE7CisxRDMxRSAwMDQxOworMUQzMjQgMDA0MTsKKzFEMzJBIDAwNDE7CisxRDMzMCAwMDQxOworMUQzMzYgMDA0MTsKKzFEMzNDIDAwNDE7CisxRDM0MiAwMDQxOworMUQzNDggMDA0MTsKKzFEMzRFIDAwNDE7CisxRDM1NCAwMDQxOworQTQ5MyAwMDQxOworQTQ5OSAwMDQxOworQTQ5RiAwMDQxOworQTRBNSAwMDQxOworQTRBQiAwMDQxOworQTRCMSAwMDQxOworQTRCNyAwMDQxOworQTRCRCAwMDQxOworQTRDMyAwMDQxOworMTAxMzkgMDA0MTsKKzEwMTNGIDAwNDE7CisxMDE3RSAwMDQxOworMTAxODQgMDA0MTsKKzFEMDAwIDAwNDE7CisxRDAwNiAwMDQxOworMUQwMEMgMDA0MTsKKzFEMDEyIDAwNDE7CisxRDAxOCAwMDQxOworMUQwMUUgMDA0MTsKKzFEMDI0IDAwNDE7CisxRDAyQSAwMDQxOworMUQwMzAgMDA0MTsKKzFEMDM2IDAwNDE7CisxRDAzQyAwMDQxOworMUQwNDIgMDA0MTsKKzFEMDQ4IDAwNDE7CisxRDA0RSAwMDQxOworMUQwNTQgMDA0MTsKKzFEMDVBIDAwNDE7CisxRDA2MCAwMDQxOworMUQwNjYgMDA0MTsKKzFEMDZDIDAwNDE7CisxRDA3MiAwMDQxOworMUQwNzggMDA0MTsKKzFEMDdFIDAwNDE7CisxRDA4NCAwMDQxOworMUQwOEEgMDA0MTsKKzFEMDkwIDAwNDE7CisxRDA5NiAwMDQxOworMUQwOUMgMDA0MTsKKzFEMEEyIDAwNDE7CisxRDBBOCAwMDQxOworMUQwQUUgMDA0MTsKKzFEMEI0IDAwNDE7CisxRDBCQSAwMDQxOworMUQwQzAgMDA0MTsKKzFEMEM2IDAwNDE7CisxRDBDQyAwMDQxOworMUQwRDIgMDA0MTsKKzFEMEQ4IDAwNDE7CisxRDBERSAwMDQxOworMUQwRTQgMDA0MTsKKzFEMEVBIDAwNDE7CisxRDBGMCAwMDQxOworMUQxMDAgMDA0MTsKKzFEMTA2IDAwNDE7CisxRDEwQyAwMDQxOworMUQxMTIgMDA0MTsKKzFEMTE4IDAwNDE7CisxRDExRSAwMDQxOworMUQxMjQgMDA0MTsKKzFEMTJBIDAwNDE7CisxRDEzMCAwMDQxOworMUQxMzYgMDA0MTsKKzFEMTNDIDAwNDE7CisxRDE0MiAwMDQxOworMUQxNDggMDA0MTsKKzFEMTRFIDAwNDE7CisxRDE1NCAwMDQxOworMUQxNTggMUQxNjUgMDMzNDsKKzFEMTYzIDAwM0Y7CisxRDE1QSAwMDYxOworMUQxNkMgMDA2MTsKKzFEMThGIDAwNjE7CisxRDE5NSAwMDYxOworMUQxOUIgMDA2MTsKKzFEMUExIDAwNjE7CisxRDFBNyAwMDYxOworMUQxQjEgMDA2MTsKKzFEMUI3IDAwNjE7CisxRDFCRiAwMDYxOworMUQxQkUgMDA2MTsKKzFEMUM1IDAwMjE7CisxRDFDQiAwMDIxOworMUQxRDEgMDAyMTsKKzFEMUQ3IDAwMjE7CisxRDFERCAwMDIxOworMUQyMDUgMDAyMTsKKzFEMjBCIDAwMjE7CisxRDIxMSAwMDIxOworMUQyMTcgMDAyMTsKKzFEMjFEIDAwMjE7CisxRDIyMyAwMDIxOworMUQyMjkgMDAyMTsKKzFEMjJGIDAwMjE7CisxRDIzNSAwMDIxOworMUQyM0IgMDAyMTsKKzFEMjQxIDAwMjE7CisyRkY0IDAwMjE7CisyRkZBIDAwMjE7CiszMUM0IDAwMjE7CiszMUNBIDAwMjE7CiszMDA0IDAwMjE7CiszMDNFIDAwMjE7CitGRkZEIDAwMjE7CisxMzcyIDAwMjE7CisxMzc4IDAwMjE7CisyMTgxIDAwMjE7CisxMDExMCAwMDIxOworMTAxMTYgMDAyMTsKKzEwMTFDIDAwMjE7CisxMDEyMiAwMDIxOworMTAxMjggMDAyMTsKKzEwMTJFIDAwMjE7CisxMDE0MCAwMDIxOworMTAxNDkgMDAyMTsKKzEwMTUwIDAwMjE7CisxMDE1NiAwMDIxOworMTAxNjQgMDAyMTsKKzEwMTZBIDAwMjE7CisxMDE3MCAwMDIxOworMTAxNzcgMDAyMTsKKzEwQTQ1IDAwMjE7CiswRUM2IDAwMjE7CiszMDMzIDAwNDE7CitGRjcwIDAwNDE7CitGRkUwIDAwNjI7CiswMEE1IDAwNjE7CiswQkY5IDAwNjI7CisyMEEzIDAwNjI7CitGRkU2IDAwNjI7CisyMEFGIDAwNjI7CisyMEI1IDAwNjI7CisxMDQwIDAwMjE7CisxOUQwIDAwM0Y7CisyMDcwIDAwNDE7CisxOUQwIDAwNDE7CisyMDcwIDAwNjI7CiszMzU4IDAwNjI7CisxOUQxIDAwMjE7CiswMEI5IDAwM0Y7CisxMDE1OSAwMDNGOworMjE1NSAwMDQxOworMjQ2OSAwMDYxOworMjQ2QSAwMDIxOworMjQ2QiAwMDIxOworMjQ2QyAwMDIxOworMjQ5NSAwMDNGOworMjRFRiAwMDYxOworMzNFRiAwMDIxOworMzM2OSAwMDIxOworMjQ3MiAwMDIxOworMUQ3RDkgMDA2MTsKKzEwNEExIDAwNDE7CiswRjIxIDAwNDE7CitGRjExIDAwNjI7CiswRUQxIDAwNjI7CiszMzU5IDAwNjI7CisxOUQyIDAwMjE7CisyMDgyIDAwM0Y7CisxMDE1RSAwMDNGOworMjRGNCAwMDQxOworMzI1MiAwMDYxOworMzI1NCAwMDYxOworMzNGOSAwMDYxOworMzNGQyAwMDYxOworMjA4MiAwMDQxOworMTk0OCAwMDQxOworMTAxNUUgMDA0MTsKKzBDNjggMDA2MjsKKzMyQzEgMDA2MjsKKzBCRTkgMDAyMTsKKzIwODMgMDAzRjsKKzI0OEEgMDA2MTsKKzMyNUIgMDA2MTsKKzMyQjEgMDA2MTsKKzFEN0VGIDAwNDE7CiswQTY5IDAwNjE7CisxN0YzIDAwNjE7CiswOUY2IDAwNjI7CiszMkMyIDAwNjI7CiswQkVBIDAwMjE7CisyMDg0IDAwM0Y7CisyNDhCIDAwNjE7CiszMkI5IDAwNjE7CitGRjE0IDAwNjE7CisxMzZDIDAwNjE7CiswRUQ0IDAwNjE7CisyNzgzIDAwNjI7CisxMEE0MyAwMDYyOworMDY2NSAwMDIxOworMTAzMjEgMDAyMTsKKzBFNTUgMDAzRjsKKzIxNUQgMDA2MjsKKzIwNzUgMDA2MTsKKzE5NEIgMDA2MTsKKzEwMTQ4IDAwNDE7CiswQzZCIDAwNjI7CiszMkM0IDAwNjI7CiswQzZDIDAwMjE7CiswNkY2IDAwM0Y7CiswMDM2IDAwNDE7CiswNkY2IDAwNDE7CiswRUQ2IDAwNDE7CisyMDg2IDAwNjI7CiszM0U1IDAwNjI7CiswOUVEIDAwMjE7CisyNzg2IDAwM0Y7CisyNDhFIDAwM0Y7CisyNzdDIDAwNDE7CiswQ0VEIDAwNDE7CisxRDdERiAwMDYyOworMTA0NyAwMDYyOworMjc3RCAwMDIxOworMDAzOCAwMDNGOworMEVEOCAwMDNGOworMjc3RCAwMDYxOworMEJFRSAwMDYxOworMTAxMEUgMDA2MTsKKzE5RDggMDA2MjsKKzFEN0VCIDAwMjE7CisxN0U5IDAwMjE7CiswQ0VGIDAwM0Y7CisxRDdFQiAwMDQxOworMEE2RiAwMDQxOworMTdGOSAwMDQxOworMEJFRiAwMDYyOworMzM2MSAwMDYyOworMDA4MSAwMDYxOworMDM0RiAwMDYxOworMDVBQyAwMDYxOworMDZFMyAwMDYxOworMjAyRCAwMDYxOworRkUwNSAwMDYxOworMUQxNzIgMDA2MTsKKzFEMjQ0IDAwNjE7CitFMDAyMiAwMDYxOworRTAwNDAgMDA2MTsKK0UwMDVFIDAwNjE7CitFMDA3QyAwMDYxOworRTAxMUEgMDA2MTsKK0UwMTM4IDAwNjE7CitFMDE1NiAwMDYxOworRTAxNzQgMDA2MTsKK0UwMTkyIDAwNjE7CitFMDFCMCAwMDYxOworRTAxQ0UgMDA2MTsKK0UwMUVDIDAwNjE7CiswMDFCIDAwNDE7CiswMDk5IDAwNDE7CiswNUE1IDAwNDE7CiswNkRDIDAwNDE7CisyMDBDIDAwNDE7CitGREQ0IDAwNDE7CisxRDE2OCAwMDQxOworMUQxOEIgMDA0MTsKK0NGRkZFIDAwNDE7CitFMDAzOSAwMDQxOworRTAwNTcgMDA0MTsKK0UwMDc1IDAwNDE7CitFMDExMyAwMDQxOworRTAxMzEgMDA0MTsKK0UwMTRGIDAwNDE7CitFMDE2RCAwMDQxOworRTAxOEIgMDA0MTsKK0UwMUE5IDAwNDE7CitFMDFDNyAwMDQxOworRTAxRTUgMDA0MTsKKzAwQzAgMDMzNDsKKzAxMDIgMDMzNCAwMzAzOworMDBDMiAwMzM0IDAzNDA7CiswMDYxIDAzMEEgMDMwMSAwMzM0OworMDIyNyAwMzM0OworMDA2MSAwMzBGIDAzMzQ7CiswMDQxIDAzMjMgMDMzNCAwMzAyOworMDMwQyAwMDYxOworMDMwRSAwMDYxOworMDMxRiAwMDYxOworMDMzMCAwMDYxOworMDM0NSAwMDYxOworMDM1NSAwMDYxOworMDM2MiAwMDYxOworMDVCNiAwMDYxOworRkU3MiAwMDYxOworRkNGMiAwMDQxOworMDY1NiAwMDYxOworMDczNCAwMDYxOworMDc0MyAwMDYxOworMDk1NCAwMDYxOworMEIzQyAwMDYxOworQTgwQiAwMDYxOworMEVDOCAwMDYxOworMTdDOCAwMDYxOworMzAyQSAwMDYxOworMjBENSAwMDYxOworMjBFNCAwMDYxOworMUQ2NTYgMDAyMTsKKzFFQUUgMDAyMTsKKzAyMjcgMDAyMTsKKzFENTFFIDAwM0Y7CiswMEMxIDAwM0Y7CiswMEU0IDAwM0Y7CiszM0MyIDAwNjE7CisxRDU1MiAwMDYxOworMUQ0RDAgMDA2MTsKKzFEMkMgMDA2MTsKKzAwRTIgMDA2MTsKKzAxRkIgMDA2MTsKKzAxMDAgMDA2MTsKKzAwNjEgMDA2MjsKKzFENjNDIDAwNjI7CisxRUE4IDAwNjI7CisxRUI3IDAwNjI7CiswMUZEIDAwM0Y7CisxRTlBIDAwMjE7CisxRDAyIDAwNDE7CiswMjUyIDAwMjE7CiswMDE5IDAwNjI7CiswMDk3IDAwNjI7CiswNUEzIDAwNjI7CiswNkRBIDAwNjI7CisxODBFIDAwNjI7CitGREQyIDAwNjI7CisxRDE2NiAwMDYyOworMUQxODkgMDA2MjsKK0JGRkZFIDAwNjI7CitFMDAzNyAwMDYyOworRTAwNTUgMDA2MjsKK0UwMDczIDAwNjI7CitFMDExMSAwMDYyOworRTAxMkYgMDA2MjsKK0UwMTREIDAwNjI7CitFMDE2QiAwMDYyOworRTAxODkgMDA2MjsKK0UwMUE3IDAwNjI7CitFMDFDNSAwMDYyOworRTAxRTMgMDA2MjsKKzAwNjIgMDMzNCAwMzMxOworMDMwRSAwMDYyOworMDMzMCAwMDYyOworMDM1NiAwMDYyOworMDVCNyAwMDYyOworRkU3RCAwMDYyOworMDczNSAwMDYyOworMDlCQyAwMDYyOworMTBBMEQgMDA2MjsKKzE3QzkgMDA2MjsKKzIwRDYgMDA2MjsKKzFENTUzIDAwMjE7CisxRTA3IDAwMjE7CisxRDYwOSAwMDNGOworMUQ0NEYgMDA0MTsKKzFENjcxIDAwNjE7CisxRTA2IDAwNjE7CisxRDUwNSAwMDYyOworMDE4MCAwMDQxOworMDI1MyAwMDYyOworMDA0MyAwMzM0IDAzMEM7CisxRDQ4NCAwMDIxOworMDEwNyAwMDIxOworMDA0MyAwMDNGOworMjEwNSAwMDIxOworMUQ1ODggMDA2MTsKKzFENDM2IDAwNjE7CiswMTA2IDAwNDE7CisxRDQxQyAwMDYyOworMjRCOCAwMDYyOworMzNBMCAwMDYyOworMDE4NyAwMDIxOworMUUwQSAwMzM0OworMjE3RSAwMDIxOworMUQ2MEIgMDAyMTsKKzFENDg1IDAwM0Y7CisxRDQ4IDAwM0Y7CisxRDQ4NSAwMDYxOworRkYyNCAwMDQxOworMUQ2NzMgMDA0MTsKKzFFMEUgMDA0MTsKKzFENUYxIDAwNjI7CisxRTEwIDAwNjI7CiszMzc4IDAwM0Y7CiswMUYyIDAwNjE7CisxRDA1IDAwNDE7CiswMThBIDAwM0Y7CiswMEU5IDAzMzQ7CiswMDQ1IDAzMzQgMDMwMiAwMzQxOworMDA0NSAwMzBDIDAzMzQ7CiswMTE1IDAzMzQgMDMyNzsKKzAxMTIgMDMwMCAwMzM0OworMUVDNyAwMzM0OworMUQ1OEEgMDAyMTsKKzAxMTUgMDAyMTsKKzFFMTUgMDAyMTsKKzFENjI2IDAwM0Y7CiswMENBIDAwM0Y7CisxRUJBIDAwM0Y7CisxRDYyNiAwMDYxOworMUQ1NzAgMDA2MTsKKzAwQzkgMDA0MTsKKzAxMUIgMDA0MTsKKzAxMTIgMDA0MTsKKzFFMTkgMDA0MTsKKzFENDZDIDAwNjI7CiswMTFCIDAwNjI7CisxRTE5IDAwNjI7CiswMUREIDAwNjE7CisxRDk1IDAwM0Y7CiswMjU4IDAwM0Y7CisxRDRDIDAwNjE7CiswMDY2IDAwMjE7CisxRDY3NSAwMDIxOworMUQ1NzEgMDAzRjsKKzFENEJCIDAwNDE7CisxRDQwNSAwMDQxOworMUQ0QkIgMDA2MjsKK0ZCMDAgMDAyMTsKKzAyQTkgMDAyMTsKKzAwNDcgMDMzNCAwMzAxOworMDA0NyAwMzI3IDAzMzQ7CisxRDRBMiAwMDIxOworMUQ0MjAgMDAzRjsKKzFEMzMgMDAzRjsKKzFENjVDIDAwNjE7CisxRDVEQSAwMDYxOworMDExRSAwMDQxOworMUQ0NTQgMDA2MjsKKzAxRjUgMDA2MjsKKzMzQzkgMDAzRjsKKzAxRTQgMDA2MTsKKzAxOTQgMDAyMTsKKzAwNjggMDMwQyAwMzM0OworMDA2OCAwMzJFIDAzMzQ7CisyMTBCIDAwMjE7CisxRTk2IDAwMjE7CisxRDU3MyAwMDNGOworRkY0OCAwMDQxOworMjRENyAwMDQxOworMUQ2NzcgMDA0MTsKKzFFMjQgMDA0MTsKKzFENUY1IDAwNjI7CisxRTIyIDAwNjI7CiszMzkwIDAwNjI7CiswMjY3IDAwNjI7CiswMDQ5IDAzMDYgMDMzNDsKKzAwNjkgMDMzNCAwMzAzOworMDA0OSAwMzM0IDAzMEY7CisxRDQ4QSAwMDIxOworMUQ2MiAwMDIxOworMUVDQSAwMDIxOworMUQ0NzAgMDAzRjsKKzAxMkYgMDAzRjsKKzFENTVBIDAwNjE7CisyMTEwIDAwNjE7CisxRDYyIDAwNjE7CisxRTJFIDAwNjE7CisxRUNBIDAwNjE7CisyMTExIDAwNjI7CiswMTI5IDAwNjI7CisyMTYyIDAwM0Y7CisyMTYzIDAwM0Y7CisxREE2IDAwM0Y7CiswMTk3IDAwNjI7CiswMTk2IDAwNjI7CisxRDY1RiAwMDIxOworMUQ0QkYgMDAzRjsKKzAxMzQgMDAzRjsKKzFENUY3IDAwNDE7CisxRDU3NSAwMDQxOworMUQ1RjcgMDA2MjsKKzAyMzcgMDA2MTsKKzFEQTEgMDA2MjsKKzFFMzMgMDMzNDsKK0ZGMkIgMDAyMTsKKzFENDU4IDAwM0Y7CisxRDRGIDAwM0Y7CisxRDQ1OCAwMDQxOworMUQ2MTIgMDA2MTsKKzAxMzcgMDA2MTsKKzFENjYwIDAwNjI7CisxRTM1IDAwNjI7CiszMzk4IDAwNDE7CiszM0NGIDAwNDE7CiswMTk4IDAwM0Y7CiswMDRDIDAzMzQgMDMyNzsKKzIxN0MgMDAyMTsKKzFENjQ3IDAwMjE7CisxRDUyOSAwMDNGOworMDEzRSAwMDNGOworMjExMyAwMDYxOworMDA0QyAwMDYxOworMUQ2NDcgMDA0MTsKKzFFM0MgMDA2MTsKKzIxNkMgMDA2MjsKKzFFM0EgMDA2MjsKKzMzRDIgMDA2MTsKKzFEQUIgMDA0MTsKKzFEODUgMDAzRjsKKzAxOUIgMDA2MTsKKzAwNkQgMDAyMTsKKzFENUUwIDAwMjE7CisyNERDIDAwM0Y7CiszM0E4IDAwNjE7CisxRDU1RSAwMDYxOworMUQ0NDAgMDA2MTsKKzFFM0YgMDA2MTsKKzFENUZBIDAwNjI7CiszM0Q0IDAwMjE7CiszMzlDIDAwMjE7CiszM0I3IDAwMjE7CisxRDZGIDAwMjE7CiswMDZFIDAzMzQgMDM0MDsKKzAwNkUgMDMyMyAwMzM0OworMUQ2MkYgMDAyMTsKKzFFNDUgMDAyMTsKKzFENDQxIDAwM0Y7CisxRTQ5IDAwM0Y7CisxRDY2MyAwMDQxOworMUQ1RTEgMDA0MTsKKzAxNDYgMDA2MTsKKzFENTkzIDAwNjI7CiswMTQ3IDAwNjI7CiswMUNDIDAwNjI7CiswMjc0IDAwM0Y7CiswMjcyIDAwNDE7CisxREFGIDAwNDE7CiswMEQ4IDAzNDEgMDMzNDsKKzAwNkYgMDMwMiAwMzM0IDAzNDE7CisxRUQ0IDAzMzQ7CiswMDRGIDAzMDMgMDMzNDsKKzAwNEYgMDMwNyAwMzM0OworMDE0QyAwMzM0OworMDA2RiAwMzM0IDAzMTE7CisxRUUxIDAzMzQ7CisxRUNEIDAzMzQgMDMwMjsKKzFENERFIDAwMjE7CiswMUQyIDAwMjE7CisxRTUzIDAwMjE7CisxRDQyOCAwMDNGOworMUQ1MiAwMDNGOworMUU0QyAwMDNGOworMDFBMCAwMDNGOworMUQ1RkMgMDA2MTsKKzFENTdBIDAwNjE7CiswMEYzIDAwNDE7CisxRUQ0IDAwNDE7CiswMjJEIDAwNDE7CiswMTRDIDAwNDE7CisxRUREIDAwNDE7CisxRDRGOCAwMDYyOworMDBGMyAwMDYyOworMDIyRCAwMDYyOworMUVERCAwMDYyOworMUQwRiAwMDQxOworMDE4NiAwMDYxOworMUQxNiAwMDYyOworMDI3NyAwMDQxOworMDA3MCAwMzA3IDAzMzQ7CisxRDUxMyAwMDIxOworMDA1MCAwMDNGOworRkY1MCAwMDQxOworMDA1MCAwMDQxOworMjRDNSAwMDQxOworMUQ1MkQgMDA2MjsKKzFFNTYgMDA2MjsKKzMzQjAgMDA2MjsKKzFENzEgMDA2MjsKKzFENDkyIDAwMjE7CisxRDQyQSAwMDNGOworMDA3MSAwMDYxOworMjRFMCAwMDYxOworMUQ2NEMgMDA0MTsKKzFENUIwIDAwNjI7CiswMDcyIDAzMzQgMDMwQzsKKzAwNzIgMDMzNCAwMzIzOworMUQ1NjMgMDAyMTsKKzAxNTggMDAyMTsKKzFENjlCIDAwM0Y7CiswMjEwIDAwM0Y7CisxRDQ5MyAwMDQxOworMjExQiAwMDQxOworMUU1OSAwMDQxOworMzNBRSAwMDNGOworRkYzMiAwMDYyOworMUU1QiAwMDYyOworMUQ3MiAwMDYyOworMDI3QiAwMDYxOworMDI3RiAwMDYyOworMDA1MyAwMzAyIDAzMzQ7CiswMDczIDAzMzQgMDMyMzsKKzFENTY0IDAwMjE7CiswMTVDIDAwMjE7CisxRDY2OCAwMDNGOworMUU2MSAwMDNGOworMUQ0NjAgMDA0MTsKKzFENjgyIDAwNjE7CiswMTYxIDAwNjE7CisxRTlCIDAwNjE7CisxRDYxQSAwMDYyOworMjEyMCAwMDQxOworMUQ3NCAwMDQxOworMDFBOSAwMDYxOworMDI4NiAwMDQxOworMDA3NCAwMzM0IDAzMjY7CisxRDVDRCAwMDIxOworMDE2MiAwMDIxOworMUQ0N0IgMDAzRjsKKzAwNzQgMDA0MTsKKzFENjlEIDAwNDE7CisxRDYxQiAwMDQxOworMDIxQSAwMDQxOworMUQ0N0IgMDA2MjsKKzAyQTggMDAzRjsKKzAxQkUgMDA0MTsKKzFENzUgMDAzRjsKKzAxQUUgMDA2MTsKKzAwNzUgMDMwNiAwMzM0OworMDA3NSAwMzA4IDAzMzQgMDM0MTsKKzAwREMgMDMwNCAwMzM0OworMDE2QiAwMzM0OworMDA3NSAwMzFCIDAzMzQ7CiswMDc1IDAzMDkgMDMxQiAwMzM0OworMUU3NyAwMzM0OworRkYzNSAwMDIxOworMDBGQyAwMDIxOworMUVFOSAwMDIxOworMUQ2MDIgMDAzRjsKKzAwRkIgMDAzRjsKKzAyMTUgMDAzRjsKKzFENDJFIDAwNjE7CitGRjM1IDAwNjE7CisxRDU4IDAwNjE7CiswMEZDIDAwNjE7CisxRTc4IDAwNjE7CisxRUU5IDAwNjE7CisxRTc2IDAwNjE7CisxRDUxOCAwMDYyOworMDFEQSAwMDYyOworMUVFRCAwMDYyOworMUQxRCAwMDYyOworMUQ5OSAwMDQxOworMDE5QyAwMDYxOworMDFCMSAwMDYxOworMUQ0MkYgMDAyMTsKKzI0Q0IgMDAyMTsKKzFENDdEIDAwM0Y7CisyMTc0IDAwNDE7CiswMDU2IDAwNDE7CisxRDY4NSAwMDQxOworMUQ2NkIgMDA2MjsKKzIxNzUgMDA2MTsKKzFEMjAgMDA2MjsKKzFEQkEgMDA2MjsKKzAwNTcgMDMzNCAwMzA4OworMDA1NyAwMDIxOworMUU4OCAwMDIxOworMUQ2NTIgMDAzRjsKKzFENUQwIDAwNjE7CisxRDU0RSAwMDYxOworMUU4MSAwMDYxOworMUQ1NjggMDA2MjsKKzAxNzUgMDA2MjsKKzAwNzggMDMwNyAwMzM0OworMUQ0NEIgMDAyMTsKKzFENTlEIDAwM0Y7CiswMDc4IDAwNjE7CisxRDYwNSAwMDQxOworMUQ1MUIgMDA0MTsKKzFENTAxIDAwNjI7CisxRThDIDAwNjI7CiswMDc5IDAzMzQgMDM0MTsKKzAwNzkgMDMzNCAwMzAzOworRkY1OSAwMDIxOworMjRDRSAwMDIxOworMUQ1OUUgMDAzRjsKKzFFOTkgMDAzRjsKKzFENDMyIDAwNDE7CisxRDY1NCAwMDYxOworMDE3NiAwMDQxOworMUQ0NjYgMDA2MjsKKzAwRkQgMDA2MjsKKzAxQjMgMDA2MTsKKzAwN0EgMDMyMyAwMzM0OworMjEyNCAwMDIxOworMUQ0NjcgMDAzRjsKKzAxN0EgMDAzRjsKKzFENDY3IDAwNDE7CisxRDY4OSAwMDYxOworMDE3QyAwMDYxOworMjEyNCAwMDYyOworMDE4RCAwMDQxOworMDIyNCAwMDNGOworMDI0MCAwMDQxOworMURCRSAwMDYyOworMDI5MyAwMDYxOworMDFGNyAwMDQxOworMDE4NSAwMDNGOworMDE0OSAwMDYxOworMDJDMSAwMDYxOworMDI5NiAwMDYxOworMDI5OCAwMDYxOworMDNCMSAwMzQzIDAzMDEgMDMzNCAwMzQ1OworMUYwRSAwMzM0OworMUYwOSAwMzAxIDAzMzQ7CisxRjA5IDAzMzQgMDM0MjsKKzFGQjMgMDM0MSAwMzM0OworMDM5MSAwMzM0IDAzMDQ7CisxRjA2IDAwMjE7CisxRkIwIDAwMjE7CisxRjA2IDAwM0Y7CisxRkIwIDAwM0Y7CisxRDc1NiAwMDQxOworMUY4MCAwMDYxOworMUY4RiAwMDYxOworMUZCMSAwMDYxOworMUYwNiAwMDYyOworMUZCMCAwMDYyOworMDM5MiAwMDNGOworMUQ2RTMgMDA0MTsKKzAzOTMgMDAyMTsKKzFENzM4IDAwNjE7CisxRDZGRSAwMDYyOworMUQ1RiAwMDIxOworMUQ3MUYgMDA2MTsKKzFGMTggMDMzNDsKKzFGMTkgMDMzNCAwMzQxOworMUQ3MTYgMDAyMTsKKzFGQzggMDAyMTsKKzFGMUIgMDAzRjsKKzFEN0M0IDAwNDE7CisxRjE1IDAwNDE7CisxRDdDNCAwMDYyOworMDNERCAwMDQxOworMUQ3M0IgMDAzRjsKKzFENzIxIDAwNDE7CiswMzk3IDAzNDMgMDMzNCAwMzAxOworMDM5NyAwMzEzIDAzNDIgMDMzNDsKKzFGMjkgMDMzNCAwMzAxOworMUYyNyAwMzM0OworMDNCNyAwMzQxIDAzMzQgMDM0NTsKKzFENzAyIDAwMjE7CisxRjk1IDAwMjE7CiswMzk3IDAwM0Y7CisxRjkzIDAwM0Y7CisxRDc3NiAwMDQxOworMUY5MiAwMDYxOworMUYyQiAwMDYxOworMUZDQSAwMDYxOworMUYyMiAwMDYyOworMUZDNCAwMDYyOworMUQ3OTcgMDAyMTsKKzAzRDEgMDA2MTsKKzFENzIzIDAwNjE7CiswMzk4IDAwNjI7CisxRkJFIDAzMTMgMDMwMCAwMzM0OworMUYzMyAwMzM0OworMDM5OSAwMzM0IDAzNDA7CisxRkJFIDAzMDggMDM0MiAwMzM0OworMUYzRSAwMDIxOworMUQ3MDQgMDAzRjsKKzFGNzYgMDAzRjsKKzAzOTkgMDA0MTsKKzFGMzkgMDA0MTsKKzFGRDYgMDA0MTsKKzFENzk4IDAwNjI7CisxRkQyIDAwNjI7CisxRDZERSAwMDNGOworMUQ2REUgMDA0MTsKKzFENzhDIDAwNjI7CisxRDc3QSAwMDNGOworMUQ3NjAgMDA0MTsKKzFENzYxIDAwMjE7CiswMzlDIDAwNDE7CiszMzhDIDAwM0Y7CiszM0JDIDAwM0Y7CisxRDZDRSAwMDYxOworMUQ2RUUgMDA2MjsKKzFENkNGIDAwNjE7CisxRDZFRiAwMDYyOworMUY0MSAwMzM0OworMDNCRiAwMzQwIDAzMzQ7CiswM0NDIDAwMjE7CiswM0NDIDAwM0Y7CisxRjQwIDAwNjE7CiswMzhDIDAwNDE7CiswM0NDIDAwNjI7CisxRDZFMSAwMDNGOworMUQ3QzkgMDA2MTsKKzFENkUxIDAwNjI7CiswM0ZBIDAwNjI7CisxRkVDIDAzMzQ7CisxRDc1NCAwMDNGOworMUQ2RTAgMDA0MTsKKzAzRjEgMDA2MjsKKzAzRkMgMDA2MjsKKzFENzgyIDAwM0Y7CisxRDc0OCAwMDQxOworMUQ3ODIgMDA2MjsKKzFENzgzIDAwMjE7CisxRDc4MyAwMDQxOworMDNDNSAwMzEzIDAzMDEgMDMzNDsKKzAzQTUgMDMxNCAwMzM0IDAzNDA7CiswM0E1IDAzNDAgMDMzNDsKKzAzQzUgMDMzNCAwMzA4IDAzNDI7CisxRjVCIDAwMjE7CisxRDZCQyAwMDNGOworMDNCMCAwMDNGOworMUQ3NkEgMDA0MTsKKzAzOEUgMDA2MTsKKzFGRTEgMDA2MTsKKzFGN0IgMDA2MjsKKzAzQTYgMDAyMTsKKzAzRDUgMDA2MTsKKzFENkY3IDAwNDE7CisxRDcxMiAwMDIxOworMUQ3NEMgMDA2MTsKKzAzQTcgMDA2MjsKKzFENzZEIDAwM0Y7CisxRDc4NyAwMDYyOworMDNDOSAwMzQzIDAzNDUgMDMwMSAwMzM0OworMjEyNiAwMzQzIDAzNDIgMDMzNDsKKzAzQTkgMDMxNCAwMzQxIDAzMzQ7CiswM0E5IDAzMTQgMDMzNCAwMzQyOworMUY3RCAwMzQ1IDAzMzQ7CisxRDcxNCAwMDIxOworMUY2RCAwMDIxOworMUQ3QzIgMDAzRjsKKzFGNjMgMDAzRjsKKzFENzE0IDAwNDE7CisxRjYyIDAwNjE7CisxRkFEIDAwNjE7CisxRkY0IDAwNjE7CisxRjY4IDAwNjI7CisxRkE5IDAwNjI7CiswM0Y3IDAwNDE7CisyQzg0IDAwNDE7CisyQ0I2IDAwNDE7CisyQzhFIDAwNDE7CisyQzk0IDAwNDE7CisyQzk5IDAwM0Y7CisyQ0JEIDAwM0Y7CisyQ0ExIDAwM0Y7CisyQ0E3IDAwM0Y7CisyQ0FEIDAwM0Y7CisyQ0JGIDAwM0Y7CisyQ0MzIDAwM0Y7CiswM0U1IDAwM0Y7CiswM0U5IDAwM0Y7CisyQ0NGIDAwM0Y7CisyQ0Q1IDAwM0Y7CiswM0VEIDAwM0Y7CisyQ0REIDAwM0Y7CisyQ0I1IDAwM0Y7CisyQ0UzIDAwM0Y7CiswNDEwIDAzMDYgMDAyMTsKKzA0MTAgMDMwOCAwMDIxOworMDREOSAwMDAxIDAzMDggMDA2MTsKKzA0RDkgMDMwOCAwMDYyOworMDQxMiAwMDYxOworMDQ5MyAwMDNGOworMDQzNCAwMDNGOworMDUwMyAwMDNGOworMDQzMyAwNTkxIDAzMDEgMDA2MTsKKzA0OTggMDA2MTsKKzA0MzUgMDA2MTsKKzA0MzUgMDMwNiAwMDNGOworMDQzNiAwMzA2IDAzMzQ7CiswNEREIDAzMzQ7CiswNDk3IDAwM0Y7CiswNDM3IDAzMDggMDMzNDsKKzA0NTUgMDAyMTsKKzA0MzggMDMwMCAwMzM0OworMDQ1RCAwMDYxOworMDRFNSAwMzM0OworMDQ1NiAwMDNGOworMDQwNiAwMzA4IDAwNjE7CiswNDE4IDAzMDYgMDA2MTsKKzA0MUEgMDAwMSAwMzAxIDAwNjE7CiswNEEwIDAwNjE7CiswNDFCIDAwNjE7CiswNTA4IDAwMjE7CiswNDFEIDAwMjE7CiswNEEyIDAwNjE7CiswNDBBIDAwNjE7CiswNDFFIDAzMzQgMDMwODsKKzA0RTkgMDA2MTsKKzA0RTggMUQxNjUgMDMwOCAwMDYxOworMDQ4MSAwMDNGOworMDQ0MSAwMDNGOworMDQ0MiAwMDNGOworMDQ1QiAwMDNGOworMDQzQSAwNTkxIDAzMDEgMDA2MTsKKzA0NDMgMDAyMTsKKzA0MjMgMDMwNiAwMzM0OworMDQyMyAwMzM0IDAzMDg7CiswNDIzIDAzMzQgMDMwQjsKKzA0QUYgMDA2MTsKKzA0NDQgMDA2MTsKKzA0QkIgMDA2MTsKKzA0N0QgMDA2MTsKKzA0QjUgMDA2MTsKKzA0MjcgMDMwOCAwMDNGOworMDRDQyAwMDNGOworMDRCRiAwMDNGOworMDQ0OSAwMDNGOworMDQ0QiAwMzA4IDAzMzQ7CiswNDRDIDAwMjE7CiswNDREIDAwMjE7CiswNDREIDAzMDggMDA0MTsKKzA0NEYgMDA2MjsKKzA0NkIgMDA2MjsKKzA0NkYgMDA2MjsKKzA0NzUgMDAwMSAwMzBGIDAwNjE7CiswNDc1IDAzMEYgMDA2MjsKKzJDMDEgMDAyMTsKKzJDMDQgMDAyMTsKKzJDMDcgMDAyMTsKKzJDMEEgMDAyMTsKKzJDMEQgMDAyMTsKKzJDMTAgMDAyMTsKKzJDMTMgMDAyMTsKKzJDMTYgMDAyMTsKKzJDMTkgMDAyMTsKKzJDMUMgMDAyMTsKKzJDMUYgMDAyMTsKKzJDMjIgMDAyMTsKKzJDMjUgMDAyMTsKKzJDMjggMDAyMTsKKzJDMkIgMDAyMTsKKzJDMkUgMDAyMTsKKzEwQTEgMDAyMTsKKzEwQTMgMDAyMTsKKzEwQTUgMDAyMTsKKzEwQzEgMDAyMTsKKzEwQTggMDAyMTsKKzEwQUEgMDAyMTsKKzEwRkMgMDA2MTsKKzEwREQgMDAzRjsKKzEwREYgMDAzRjsKKzEwRTEgMDAzRjsKKzEwRjMgMDAzRjsKKzEwRTQgMDAzRjsKKzEwRTYgMDAzRjsKKzEwRTggMDAzRjsKKzEwRUEgMDAzRjsKKzEwRUMgMDAzRjsKKzEwRUUgMDAzRjsKKzEwRUYgMDAzRjsKKzEwRjUgMDAzRjsKKzEwRjkgMDAzRjsKKzA1MzMgMDAyMTsKKzA1ODcgMDAzRjsKKzA1MzggMDA2MTsKKzA1M0IgMDA2MTsKKzA1M0UgMDA2MTsKKzA1NDEgMDA2MTsKKzA1NDQgMDA2MTsKKzA1NDUgMDA2MTsKKzA1NDggMDA2MTsKKzA1NEIgMDA2MTsKKzA1NEUgMDA2MTsKKzA1NTEgMDAyMTsKKzA1NTQgMDAyMTsKKzA1NTkgMDAzRjsKK0ZCMjEgMDA0MTsKK0ZCMzEgMDAzRjsKKzIxMzcgMDA2MjsKK0ZCMzQgMDAyMTsKK0ZCMzUgMDA0MTsKKzA1RDcgMDA0MTsKK0ZCMUQgMDA0MTsKKzA1REEgMDAyMTsKK0ZCM0MgMDMzNDsKK0ZCMjYgMDA0MTsKKzA1RTEgMDAyMTsKKzA1RTMgMDAyMTsKKzA1RTYgMDAzRjsKK0ZCNDggMDAyMTsKKzA1RTkgMDAyMTsKKzA1RUEgMDMzNCAwNUJDOworRkU4MCAwMDYxOworMDYyNyAwNjUzIDAwNjI7CiswNjcyIDAwNjE7CiswNjQ4IDA1OTEgMDY1NCAwMDYxOworRkU4OCAwMDQxOworMDY0QSAxRDE2NSAwNjU0IDAwNjE7CitGQzAwIDAwM0Y7CitGQzY1IDAwNDE7CitGQ0UwIDAwM0Y7CitGQkYyIDAwM0Y7CitGQkY5IDAwMjE7CitGQzY5IDAwNjI7CitGRThFIDAwNDE7CitGREYyIDAwNjI7CitGRThGIDAwNjI7CitGQzlFIDAwNjE7CitGQzlGIDAwNDE7CitGQzZFIDAwNjE7CitGQjU1IDAwNjE7CitGQjU2IDAwNDE7CitGQjVBIDAwNjI7CiswNzU1IDAwNjI7CitGRTk1IDAwM0Y7CitGRDUwIDAwNjI7CitGRDUxIDAwNjI7CitGREExIDAwNjI7CitGQzBFIDAwNjI7CitGQzczIDAwNjI7CitGQzEwIDAwNjI7CitGQzExIDAwNjI7CitGQzEyIDAwNjI7CitGQzE0IDAwNjI7CitGQjVFIDAwMjE7CiswNjdEIDAwNjI7CitGRTlEIDAwMjE7CitGQzE1IDAwNjI7CitGRDU5IDAwNjE7CitGRDFFIDAwNjE7CitGQjc2IDAwNjI7CitGQjdBIDAwMjE7CitGQjdFIDAwMjE7CitGRUExIDAwM0Y7CitGREJGIDAwNjI7CitGQ0ZGIDAwNjI7CitGRUE1IDAwNDE7CitGQzFCIDAwNjI7CiswNjgyIDAwNjI7CitGRUE5IDAwNjI7CitGQjg5IDAwNDE7CitGQjg1IDAwNDE7CitGQjg3IDAwNDE7CiswNzVBIDAwNjI7CitGREZDIDAwNjI7CitGQjhDIDAwNjI7CiswNjk3IDAwNjI7CiswNzVCIDAwNjI7CitGRUIxIDAwNDE7CitGRDVFIDAwNjI7CitGRDM2IDAwNDE7CitGQ0U3IDAwM0Y7CitGRDYzIDAwNjE7CitGRDE4IDAwNjE7CitGRUI1IDAwNjI7CitGRDJFIDAwM0Y7CitGREFBIDAwNjI7CitGRDBEIDAwNjI7CitGRDZBIDAwNjI7CitGQ0ZEIDAwNjI7CiswNkZBIDAwNjI7CitGRUI5IDAwNDE7CitGREE5IDAwNjI7CitGREY5IDAwNjI7CitGRDIxIDAwNjE7CitGRUMwIDAwNjE7CitGQzIzIDAwNjI7CitGRDZGIDAwNjI7CitGRDA3IDAwNjI7CitGRUMxIDAwMjE7CitGQzI2IDAwNjI7CitGRDczIDAwNjI7CitGRUM1IDAwMjE7CitGRDNCIDAwNDE7CitGRUM5IDAwNDE7CitGREY3IDAwNjI7CitGREI2IDAwNjI7CitGRUNEIDAwM0Y7CitGQ0JEIDAwNjE7CitGQ0Y5IDAwNjI7CiswNzVFIDAwNjI7CitGRUQxIDAwNjI7CitGQzJGIDAwNjI7CitGQzdDIDAwNjE7CiswNkEzIDAwNjI7CiswNkE1IDAwNjI7CiswNzYwIDAwNjI7CitGRUQ1IDAwNDE7CitGQzM0IDAwNjI7CitGQzM1IDAwNjI7CitGRUQ5IDAwM0Y7CitGQ0M0IDAwNjE7CitGQ0M3IDAwM0Y7CitGQzNDIDAwNjE7CitGQzNEIDAwNjI7CitGQjhFIDAwNDE7CitGQkQzIDAwM0Y7CitGQjkyIDAwM0Y7CitGQjlBIDAwM0Y7CitGQjk2IDAwM0Y7CiswNzYzIDAwNjI7CitGRUREIDAwNjI7CitGRUY5IDAwNjI7CitGRDg0IDAwNjI7CitGREI1IDAwNjE7CitGRDg2IDAwNjE7CitGRDg4IDAwNjE7CitGQzg3IDAwNjE7CiswNzZBIDAwNjI7CiswNkZFIDAwNjI7CitGRDhEIDAwNjI7CitGREY0IDAwNjI7CitGREI5IDAwNjI7CitGQzRBIDAwNjI7CitGRUU1IDAwNDE7CitGRDk4IDAwNjE7CitGRDk1IDAwNjI7CitGQzhCIDAwNjI7CitGRDlBIDAwNjI7CitGQzhGIDAwNjE7CitGQkEwIDAwM0Y7CiswNkI5IDAwNjI7CitGRUVCIDAwNjE7CitGQ0Q4IDAwNjE7CitGQkFBIDAwMjE7CiswNkMxIDAwM0Y7CiswNkZGIDAwM0Y7CitGRUVEIDAwMjE7CiswNkM0IDAwNjE7CiswNkM2IDAwNjI7CitGQkRCIDAwMjE7CiswNkNBIDAwNjE7CiswNjQ5IDAwM0Y7CitGRUYzIDAwMjE7CiswNjc4IDAwM0Y7CitGREFFIDAwM0Y7CitGQzkzIDAwM0Y7CitGQzk0IDAwM0Y7CitGQzVBIDAwNjE7CiswNkNEIDAwM0Y7CitGQkU2IDAwNjI7CiswNkQzIDAwNjE7CiswNzEzIDAwM0Y7CiswNzE3IDAwNDE7CiswNzFCIDAwNjI7CiswNzIxIDAwNDE7CiswNzI2IDAwNjI7CiswNzJDIDAwNDE7CiswNzgzIDAwNDE7CiswN0EyIDAwNDE7CiswNzhCIDAwNDE7CiswNzhEIDAwNDE7CiswNzlFIDAwNDE7CiswNzk1IDAwNDE7CiswN0E4IDAwNDE7CiswN0FFIDAwNDE7CisyRDMzIDAwNDE7CisyRDM5IDAwNDE7CisyRDNGIDAwNDE7CisyRDQ1IDAwNDE7CisyRDRCIDAwNDE7CisyRDUxIDAwNDE7CisyRDU3IDAwNDE7CisyRDVEIDAwNDE7CisyRDYyIDAwNDE7CisxMjAyIDAwNDE7CisxMjA4IDAwNDE7CisxMjBFIDAwNDE7CisxMjEzIDAwNDE7CisxMjE5IDAwNDE7CisxMjFGIDAwNDE7CisxMjIwIDAwNDE7CisxMjI2IDAwNDE7CisxMjJDIDAwNDE7CisxMjMxIDAwNDE7CisxMjM3IDAwNDE7CisxMjNDIDAwNDE7CisxMjQxIDAwNDE7CisxMjQ3IDAwNDE7CisxMjUwIDAwNDE7CisxMjU2IDAwNDE7CisxMjYwIDAwNDE7CisxMjY2IDAwNDE7CisyRDg1IDAwNDE7CisxMjZEIDAwNDE7CisxMjczIDAwNDE7CisxMjc4IDAwNDE7CisxMjdFIDAwNDE7CisxMjgzIDAwNDE7CisxMjhBIDAwNDE7CisxMjkyIDAwNDE7CisyRDg4IDAwNDE7CisxMjlEIDAwNDE7CisxMkEyIDAwNDE7CisyRDhBIDAwNDE7CisxMkFEIDAwNDE7CisxMkI0IDAwNDE7CisxMkJDIDAwNDE7CisxMkM0IDAwNDE7CisxMkNDIDAwNDE7CisxMkQyIDAwNDE7CisxMkQ5IDAwNDE7CisxMkRGIDAwNDE7CisxMkU0IDAwNDE7CisxMkVBIDAwNDE7CisxMkYwIDAwNDE7CisxMkY2IDAwNDE7CisxMkZCIDAwNDE7CisxMzAwIDAwNDE7CisxMzA2IDAwNDE7CisxMzBCIDAwNDE7CisxMzEyIDAwNDE7CisxMzFBIDAwNDE7CisyRDkzIDAwNDE7CisxMzIyIDAwNDE7CisyRDhGIDAwNDE7CisxMzJEIDAwNDE7CisxMzMyIDAwNDE7CisyRDkxIDAwNDE7CisxMzNEIDAwNDE7CisxMzQzIDAwNDE7CisxMzQ5IDAwNDE7CisxMzRGIDAwNDE7CisxMzUxIDAwNDE7CisxMzU3IDAwNDE7CisxMzU4IDAwNDE7CisyREEzIDAwNDE7CisyREFBIDAwNDE7CisyREIxIDAwNDE7CisyREI4IDAwNDE7CisyREJFIDAwNDE7CisyREM1IDAwNDE7CisyRENDIDAwNDE7CisyREQzIDAwNDE7CisyRERBIDAwNDE7CiswOTA0IDAwNDE7CiswOTBBIDAwNDE7CiswOTBFIDAwNDE7CiswOTE0IDAwNDE7CiswOTVBIDAzMzQ7CiswOTFCIDAwNjI7CiswOTIwIDAwM0Y7CiswOTIzIDAwMjE7CiswOTI4IDAwM0Y7CiswOTJDIDAwNjI7CiswOTMxIDAwM0Y7CiswOTM2IDAwMjE7CiswOTNFIDAwMjE7CiswOTQ0IDAwMjE7CiswOTQ4IDAwMjE7CiswOTREIDAwNDE7CiswOThBIDAwNDE7CiswOTkwIDAwNDE7CiswOTk4IDAwNDE7CiswOTlFIDAwNDE7CiswOUEyIDAwM0Y7CiswOUE2IDAwNjE7CiswOUFEIDAwNjE7CiswOUYwIDAwNjI7CiswOUI5IDAwNjI7CiswOUMyIDAwNjI7CiswOUM3IDA1OTEgMDlENyAwMDYxOworMDlDRCAwMDNGOworMEExMyAwMDNGOworMEEwNyAwMDNGOworMEEzOSAwMDQxOworMEE1QSAwMDQxOworMEExQyAwMDYxOworMEEyMSAwMDYyOworMEEyNyAwMDYyOworMEEyRCAwMDNGOworMEEzMiAwMDYyOworMEE0MSAwMDQxOworMEE0RCAwMDNGOworMEE4OSAwMDNGOworMEE4RCAwMDNGOworMEE5NSAwMDNGOworMEE5QiAwMDNGOworMEFBMSAwMDNGOworMEFBNyAwMDNGOworMEFBRSAwMDNGOworMEFCNiAwMDNGOworMEFCRiAwMDNGOworMEFFMiAwMDNGOworMEFDQiAwMDNGOworMEIwNyAwMDYyOworMEIwQyAwMDYyOworMEIxNSAwMDYyOworMEIxQiAwMDYyOworMEI1QyAwMDIxOworMEIyNCAwMDQxOworMEIyQiAwMDQxOworMEIzMCAwMDQxOworMEIzNyAwMDQxOworMEI0MCAwMDQxOworMEI0NyAxRDE2NSAwQjU3IDAwNjE7CiswQjRDIDAwNjI7CiswQjg2IDAwNjE7CiswQjhGIDAwNjE7CiswQjk0IDAwNjI7CiswQjlGIDAwNjI7CiswQkFFIDAwNjI7CiswQkI0IDAwNjI7CiswQkJFIDAwNjI7CiswQkM2IDA1OTEgMEJENyAwMDYxOworMEJDQiAwMDYxOworMEMwNSAwMDQxOworMEMwQiAwMDQxOworMEMxMCAwMDQxOworMEMxNyAwMDQxOworMEMxRCAwMDQxOworMEMyMyAwMDQxOworMEMyQSAwMDQxOworMEMzMCAwMDQxOworMEMzNyAwMDQxOworMEM0MSAwMDQxOworMEM0OCAwMzM0OworMEM0RCAwMDIxOworMEM4NyAwMDNGOworMEM4QyAwMDNGOworMEM5MyAwMDNGOworMEM5OSAwMDNGOworMEM5RiAwMDNGOworMENBNSAwMDNGOworMENBQyAwMDNGOworMENCMiAwMDNGOworMENCMyAwMDNGOworMENDMCAwMDNGOworMENDNiAwMDQxOworMENDNiAwQ0Q2IDAwNDE7CiswQ0NBIDBDRDUgMDA0MTsKKzBEMDUgMDA0MTsKKzBEMEIgMDA0MTsKKzBEMTAgMDA0MTsKKzBEMTcgMDA0MTsKKzBEMUQgMDA0MTsKKzBEMjMgMDA0MTsKKzBEMkEgMDA0MTsKKzBEMzAgMDA0MTsKKzBEMzYgMDA0MTsKKzBENDAgMDA0MTsKKzBENDcgMDA2MTsKKzBENEIgMDA2MjsKKzBEODYgMDA2MTsKKzBEOEMgMDA2MTsKKzBEOTIgMDA2MTsKKzBEOUIgMDA2MTsKKzBEQTEgMDA2MTsKKzBEQTcgMDA2MTsKKzBEQUQgMDA2MTsKKzBEQjQgMDA2MTsKKzBEQkEgMDA2MTsKKzBEQzMgMDA2MTsKKzBERDAgMDAyMTsKKzBERDggMDAyMTsKKzBEREEgMDA2MTsKKzBEREMgMERDQSAwMDNGOworMERGMiAwMDIxOworQTgwNCAwMDIxOworQTgwOSAwMDQxOworQTgxMCAwMDQxOworQTgxNiAwMDQxOworQTgxQyAwMDQxOworQTgyMiAwMDQxOworMTBBMDAgMDA0MTsKKzEwQTBDIDAwNDE7CisxMEExNiAwMDQxOworMTBBMUQgMDA0MTsKKzEwQTIzIDAwNDE7CisxMEEyOSAwMDQxOworMTBBMkYgMDA0MTsKKzBFMDEgMDAzRjsKKzBFMDIgMDAzRjsKKzBFMDMgMDAzRjsKKzBFMDQgMDAzRjsKKzBFMDUgMDAzRjsKKzBFMDYgMDAzRjsKKzBFMDcgMDAzRjsKKzBFMDggMDAzRjsKKzBFMDkgMDAzRjsKKzBFMEEgMDAzRjsKKzBFMEIgMDAzRjsKKzBFMEMgMDAzRjsKKzBFMEQgMDAzRjsKKzBFMEUgMDAzRjsKKzBFMEYgMDAzRjsKKzBFMTAgMDAzRjsKKzBFMTEgMDAzRjsKKzBFMTIgMDAzRjsKKzBFMTMgMDAzRjsKKzBFMTQgMDAzRjsKKzBFMTUgMDAzRjsKKzBFMTYgMDAzRjsKKzBFMTcgMDAzRjsKKzBFMTggMDAzRjsKKzBFMTkgMDAzRjsKKzBFMUEgMDAzRjsKKzBFMUIgMDAzRjsKKzBFMUMgMDAzRjsKKzBFMUQgMDAzRjsKKzBFMUUgMDAzRjsKKzBFMUYgMDAzRjsKKzBFMjAgMDAzRjsKKzBFMjEgMDAzRjsKKzBFMjIgMDAzRjsKKzBFMjMgMDAzRjsKKzBFMjQgMDAzRjsKKzBFMjUgMDAzRjsKKzBFMjYgMDAzRjsKKzBFMjcgMDAzRjsKKzBFMjggMDAzRjsKKzBFMjkgMDAzRjsKKzBFMkEgMDAzRjsKKzBFMkIgMDAzRjsKKzBFMkMgMDAzRjsKKzBFMkQgMDAzRjsKKzBFMkUgMDAzRjsKKzBFMkYgMDAzRjsKKzBFMzMgMDA2MjsKKzBFMzkgMDMzNDsKKzBFNDAgMDAwMSAwRTA1IDAwNjE7CiswRTQwIDAwMDEgMEUwRiAwMDYxOworMEU0MCAwMDAxIDBFMTkgMDA2MTsKKzBFNDAgMDAwMSAwRTIzIDAwNjE7CiswRTQwIDAwMDEgMEUyRCAwMDYxOworMEU0MSAwNTkxIDBFMDcgMDA2MTsKKzBFNDEgMDU5MSAwRTExIDAwNjE7CiswRTQxIDA1OTEgMEUxQiAwMDYxOworMEU0MSAwNTkxIDBFMjUgMDA2MTsKKzBFNDIgMDAzRjsKKzBFNDIgMUQxNjUgMEUwOSAwMDYxOworMEU0MiAxRDE2NSAwRTEzIDAwNjE7CiswRTQyIDFEMTY1IDBFMUQgMDA2MTsKKzBFNDIgMUQxNjUgMEUyNyAwMDYxOworMEU0MyAwMDAxIDBFMDIgMDA2MTsKKzBFNDMgMDAwMSAwRTBDIDAwNjE7CiswRTQzIDAwMDEgMEUxNiAwMDYxOworMEU0MyAwMDAxIDBFMjAgMDA2MTsKKzBFNDMgMDAwMSAwRTJBIDAwNjE7CiswRTQ0IDA1OTEgMEUwNCAwMDYxOworMEU0NCAwNTkxIDBFMEUgMDA2MTsKKzBFNDQgMDU5MSAwRTE4IDAwNjE7CiswRTQ0IDA1OTEgMEUyMiAwMDYxOworMEU0NCAwNTkxIDBFMkMgMDA2MTsKKzBFQzIgMEU4MSAwMDYxOworMEVDMiAwRTgyIDAwNjE7CiswRUMyIDBFODQgMDA2MTsKKzBFQzIgMEU4NyAwMDYxOworMEVDMiAwRTg4IDAwNjE7CiswRUMyIDBFOEEgMDA2MTsKKzBFQzIgMEU4RCAwMDYxOworMEVDMiAwRTk0IDAwNjE7CiswRUMyIDBFOTUgMDA2MTsKKzBFQzIgMEU5NiAwMDYxOworMEVDMiAwRTk3IDAwNjE7CiswRUMyIDBFOTkgMDA2MTsKKzBFQzIgMEU5QSAwMDYxOworMEVDMiAwRTlCIDAwNjE7CiswRUMyIDBFOUMgMDA2MTsKKzBFQzIgMEU5RCAwMDYxOworMEVDMiAwRTlFIDAwNjE7CiswRUMyIDBFOUYgMDA2MTsKKzBFQzIgMEVBMSAwMDYxOworMEVDMiAwRUEyIDAwNjE7CiswRUMyIDBFQTMgMDA2MTsKKzBFQzIgMEVBNSAwMDYxOworMEVDMiAwRUE3IDAwNjE7CiswRUMyIDBFQUEgMDA2MTsKKzBFQzEgMEVEQyAwMDYxOworMEVDMSAwRUREIDAwNjE7CiswRUMyIDBFQUIgMDA2MTsKKzBFQzIgMEVBRCAwMDYxOworMEVDMiAwRUFFIDAwNjE7CiswRUIyIDAwNjE7CiswRUI2IDAwNjI7CiswRUJEIDAwMjE7CiswRUMwIDFEMTY1IDBFOEQgMDA2MTsKKzBFQzAgMUQxNjUgMEU5RSAwMDYxOworMEVDMCAxRDE2NSAwRUREIDAwNjE7CiswRUMxIDAwMDEgMEU4RCAwMDYxOworMEVDMSAwMDAxIDBFOUUgMDA2MTsKKzBFQzEgMDAwMSAwRUREIDAwNjE7CiswRUMyIDA1OTEgMEU4QSAwMDYxOworMEVDMiAwNTkxIDBFOUQgMDA2MTsKKzBFQzIgMDU5MSAwRURDIDAwNjE7CiswRUMzIDFEMTY1IDBFODggMDA2MTsKKzBFQzMgMUQxNjUgMEU5QyAwMDYxOworMEVDMyAxRDE2NSAwRUFCIDAwNjE7CiswRUM0IDAwMDEgMEU4OCAwMDYxOworMEVDNCAwMDAxIDBFOUMgMDA2MTsKKzBFQzQgMDAwMSAwRUFCIDAwNjE7CiswRkI5IDAwMjE7CiswRjkzIDAwMjE7CiswRjk2IDAwMjE7CiswRjlBIDAwMjE7CiswRjlEIDAwMjE7CiswRkEwIDAwMjE7CiswRkEzIDAwMjE7CiswRjU3IDAwMjE7CiswRkE5IDAwMjE7CiswRkFDIDAwMjE7CiswRjVGIDAwMjE7CiswRkIxIDAwNDE7CiswRkIyIDFEMTY1IDBGNzEgMDA2MTsKKzBGNjQgMDAzRjsKKzBGNjcgMDAzRjsKKzBGODkgMDAzRjsKKzBGNzIgMDA2MjsKKzBGNzEgMEY4MCAwMDNGOworMEY3NSAwMDQxOworMEZCMiAwRjgxIDAwNjE7CiswRjc5IDAwNjE7CiswRjdDIDAzMzQ7CisxOTAyIDAwMjE7CisxOTA4IDAwMjE7CisxOTBFIDAwMjE7CisxOTE0IDAwMjE7CisxOTFBIDAwMjE7CisxOTIzIDAwMjE7CisxOTI5IDAwMjE7CisxOTMzIDAwMjE7CisxNzAwIDAwMjE7CisxNzA2IDAwMjE7CisxNzBDIDAwMjE7CisxNzEzIDAwMjE7CisxNzIzIDAwNDE7CisxNzI5IDAwNDE7CisxNzJGIDAwNDE7CisxNzQwIDAwM0Y7CisxNzQ2IDAwM0Y7CisxNzRDIDAwM0Y7CisxNzUyIDAwM0Y7CisxNzY0IDAwM0Y7CisxNzZBIDAwM0Y7CisxNzcyIDAwM0Y7CisxQTA0IDAwM0Y7CisxQTBBIDAwM0Y7CisxQTEwIDAwM0Y7CisxQTE2IDAwM0Y7CisxQTFCIDAwNjE7CisxMDA1IDAwNjE7CisxMDBCIDAwNjE7CisxMDExIDAwNjE7CisxMDE3IDAwNjE7CisxMDFEIDAwNjE7CisxMDIxIDAwNjE7CisxMDI2IDAwNjI7CisxMDU0IDAwNjI7CisxMDMwIDAwNjI7CisxMDU5IDAwNjI7CisxNzg0IDAwNjE7CisxNzhBIDAwNjE7CisxNzkwIDAwNjE7CisxNzk2IDAwNjE7CisxNzlDIDAwNjE7CisxN0EyIDAwNjE7CisxN0E3IDAwNjE7CisxN0FEIDAwNjE7CisxN0IzIDAwNjE7CisxN0I5IDAwNjE7CisxN0JGIDAwNjE7CisxN0M1IDAwNjE7CisxOTU0IDAwMjE7CisxOTVBIDAwMjE7CisxOTYwIDAwMjE7CisxOTY2IDAwMjE7CisxOTZDIDAwMjE7CisxOTc0IDAwMjE7CisxOTg1IDAwMjE7CisxOThCIDAwMjE7CisxOTkxIDAwMjE7CisxOTk3IDAwMjE7CisxOURFIDAwMjE7CisxOUExIDAwMjE7CisxOUE3IDAwMjE7CisxOUIzIDAwMjE7CisxOUI5IDAwMjE7CisxOUJGIDAwMjE7CisxOUM1IDAwMjE7CisxODgxIDAwMjE7CisxODQzIDAwMjE7CisxODIyIDAwMjE7CisxODIzIDAwMjE7CisxODQ4IDAwMjE7CisxODI5IDAwMjE7CisxODRCIDAwMjE7CisxODJEIDAwMjE7CisxODRGIDAwMjE7CisxODlEIDAwMjE7CisxODY4IDAwMjE7CisxODcxIDAwMjE7CisxODc3IDAwMjE7CisxODM4IDAwMjE7CisxODU3IDAwMjE7CisxODU0IDAwMjE7CisxODNFIDAwMjE7CisxODQyIDAwMjE7CisxODhEIDAwMjE7CisxOEEwIDAwMjE7CisxODk0IDAwMjE7CisxOEE2IDAwMjE7CisxM0EyIDAwNDE7CisxM0E4IDAwNDE7CisxM0FFIDAwNDE7CisxM0I0IDAwNDE7CisxM0JBIDAwNDE7CisxM0MwIDAwNDE7CisxM0M2IDAwNDE7CisxM0NDIDAwNDE7CisxM0QyIDAwNDE7CisxM0Q4IDAwNDE7CisxM0RFIDAwNDE7CisxM0U0IDAwNDE7CisxM0VBIDAwNDE7CisxM0YwIDAwNDE7CisxNDAyIDAwNDE7CisxNDA4IDAwNDE7CisxNDBFIDAwNDE7CisxNDE0IDAwNDE7CisxNDFBIDAwNDE7CisxNDIwIDAwNDE7CisxNDI2IDAwNDE7CisxNDJDIDAwNDE7CisxNDMyIDAwNDE7CisxNDM4IDAwNDE7CisxNDNFIDAwNDE7CisxNDQ0IDAwNDE7CisxNDRBIDAwNDE7CisxNDUwIDAwNDE7CisxNDU2IDAwNDE7CisxNDVDIDAwNDE7CisxNDYyIDAwNDE7CisxNDY4IDAwNDE7CisxNDZFIDAwNDE7CisxNDc0IDAwNDE7CisxNDdBIDAwNDE7CisxNDgwIDAwNDE7CisxNDg2IDAwNDE7CisxNDhDIDAwNDE7CisxNDkyIDAwNDE7CisxNDk4IDAwNDE7CisxNDlFIDAwNDE7CisxNEE0IDAwNDE7CisxNEFBIDAwNDE7CisxNEIwIDAwNDE7CisxNEI2IDAwNDE7CisxNEJDIDAwNDE7CisxNEMyIDAwNDE7CisxNEM4IDAwNDE7CisxNENFIDAwNDE7CisxNEQ0IDAwNDE7CisxNERBIDAwNDE7CisxNEUwIDAwNDE7CisxNEU2IDAwNDE7CisxNEVDIDAwNDE7CisxNEYyIDAwNDE7CisxNEY4IDAwNDE7CisxNEZFIDAwNDE7CisxNTA0IDAwNDE7CisxNTBBIDAwNDE7CisxNTEwIDAwNDE7CisxNTE2IDAwNDE7CisxNTFDIDAwNDE7CisxNTIyIDAwNDE7CisxNTI4IDAwNDE7CisxNTJFIDAwNDE7CisxNTM0IDAwNDE7CisxNTNBIDAwNDE7CisxNTQwIDAwNDE7CisxNTQ2IDAwNDE7CisxNTRDIDAwNDE7CisxNTUyIDAwNDE7CisxNTU4IDAwNDE7CisxNTVFIDAwNDE7CisxNTY0IDAwNDE7CisxNTZBIDAwNDE7CisxNTcwIDAwNDE7CisxNTc2IDAwNDE7CisxNTdEIDAwNDE7CisxNTgyIDAwNDE7CisxNTg4IDAwNDE7CisxNjcwIDAwNDE7CisxNTkzIDAwNDE7CisxNjc0IDAwNDE7CisxNTk5IDAwNDE7CisxNTlGIDAwNDE7CisxNUE1IDAwNDE7CisxNUFBIDAwNDE7CisxNUIwIDAwNDE7CisxNUI2IDAwNDE7CisxNUJDIDAwNDE7CisxNUMyIDAwNDE7CisxNUM4IDAwNDE7CisxNUNFIDAwNDE7CisxNUQ0IDAwNDE7CisxNURBIDAwNDE7CisxNUUwIDAwNDE7CisxNUU2IDAwNDE7CisxNUVDIDAwNDE7CisxNUYyIDAwNDE7CisxNUY4IDAwNDE7CisxNUZFIDAwNDE7CisxNjA0IDAwNDE7CisxNjBBIDAwNDE7CisxNjEwIDAwNDE7CisxNjE2IDAwNDE7CisxNjFDIDAwNDE7CisxNjIyIDAwNDE7CisxNjI4IDAwNDE7CisxNjJFIDAwNDE7CisxNjM0IDAwNDE7CisxNjNBIDAwNDE7CisxNjQwIDAwNDE7CisxNjQ2IDAwNDE7CisxNjRDIDAwNDE7CisxNjUyIDAwNDE7CisxNjU4IDAwNDE7CisxNjVFIDAwNDE7CisxNjY0IDAwNDE7CisxNjZBIDAwNDE7CisxNjg0IDAwNDE7CisxNjhBIDAwNDE7CisxNjkwIDAwNDE7CisxNjk2IDAwNDE7CisxNkEwIDAwNjI7CisxNkYwIDAwNDE7CisxNkFGIDAwNDE7CisxNkI2IDAwNjE7CisxNkJBIDAwNjE7CisxNkMyIDAwM0Y7CisxNkVFIDAwNDE7CisxNkVBIDAwM0Y7CisxNkQwIDAwNjE7CisxNkQ3IDAwM0Y7CisxNkREIDAwM0Y7CisxNkEzIDAwNDE7CisxNkUyIDAwNDE7CisxMTAwIDAwNjE7CitBQzAwIDExNjEgMDAyMTsKK0FDMDMgMDA2MjsKK0ZGQTIgMDA0MTsKKzMxMzcgMDAyMTsKKzExMDQgMDA2MTsKKzMyNzEgMDAzRjsKKzMxNDIgMDAyMTsKKzExMDggMDA2MTsKKzMyNzQgMDAzRjsKKzMxNDcgMDA0MTsKKzMxNDggMDA0MTsKK0ZGQjkgMDA0MTsKKzMyN0MgMDAzRjsKKzMxNEMgMDAyMTsKKzMyNkMgMDAzRjsKKzMxNEUgMDA0MTsKK0Q3ODggMTE2MSAwMDIxOworRDdBMCAwMDYyOworMzE2NSAwMDYyOworMTExOSAwMDYyOworMzE2RSAwMDYyOworMTEyMCAwMDYxOworMzE3NCAwMDYyOworMTEyNyAwMDYxOworMTEyQiAwMDYxOworMTEyRSAwMDYxOworMTEzMiAwMDYxOworMzE3RSAwMDYyOworMTEzQyAwMDYyOworMTE0MSAwMDYyOworMTE0NyAwMDYxOworMTE0QyAwMDYxOworMTE1MSAwMDYyOworMTE1NyAwMDYxOworMTE1RiAwMDYyOworRkZDMiAwMDYyOworRkZDNCAwMDYyOworRkZDNiAwMDYyOworRkZDQSAwMDYyOworRkZDQyAwMDYyOworRkZDRSAwMDYyOworRkZEMiAwMDYyOworRkZENCAwMDYyOworRkZENiAwMDYyOworRkZEQSAwMDYyOworRkZEQyAwMDYyOworMTE3QiAwMDYyOworMTE4MSAwMDYyOworMzE4OCAwMDYyOworMTE4QSAwMDYyOworMTE5MCAwMDYyOworMTE5NCAwMDYxOworMTE5OSAwMDYyOworMzE4RCAwMDYyOworMTFBOCAwMDYyOworMzEzNSAwMDNGOworMTFBRSAwMDYyOworMzEzQiAwMDQxOworMzEzRCAwMDQxOworMzEzRiAwMDQxOworMTFCQSAwMDYyOworMTFDMCAwMDYyOworMTFDNiAwMDYyOworMTFDQSAwMDYyOworMzE2QSAwMDYyOworMzE2QiAwMDYyOworMTFEOCAwMDYyOworMTFERCAwMDYxOworMTFFMSAwMDYyOworMTFFNyAwMDYyOworMTFFRCAwMDYyOworMTFGMiAwMDYxOworMTFGNyAwMDYyOworMzA0MSAwMDYxOworMzMwMSAwMDYyOworRkY3MiAwMDYxOworRkY2OSAwMDIxOworMzA5NCAwMDQxOworMzJEMyAwMDNGOworMzMwNyAwMDQxOworMzBBQSAwMDQxOworMzBBQyAwMDIxOworMzJENSAwMDYyOworMzA0RSAwMzM0OworRkY3NyAwMDYyOworMzMxNSAwMDNGOworRkY3OCAwMDNGOworMzMxOSAwMDIxOworMzA1MSAwMDNGOworMzBGNiAwMDYyOworMzA1MyAwMDQxOworMzBCNSAwMzM0IDMwOTk7CiszMkRBIDAwNjI7CiszMkRCIDAwM0Y7CiszMzIxIDAwM0Y7CitGRjdEIDAwNjE7CiszMkREIDAwM0Y7CiszMzIzIDAwNjI7CiszMEJFIDAwNDE7CiszMDVGIDAwNjE7CiszMDYxIDAwM0Y7CiszMDYzIDAwMjE7CiszMkUxIDAwNjE7CiszMkUyIDAwM0Y7CiszMEM4IDMwOTkgMDMzNDsKKzMwNjggMDA2MjsKK0ZGODUgMDA0MTsKK0ZGODYgMDA2MjsKKzMyRTcgMDAyMTsKK0ZGODkgMDA0MTsKKzMwRDAgMDAyMTsKKzMxRjUgMDA0MTsKKzMwNzIgMzA5OSAwMzM0OworMzA3MiAwMDQxOworMzMyRSAwMDYyOworMzBENSAwMDIxOworMzA3NyAwMDYxOworMzMzNSAwMDYxOworMzBEOSAwMDNGOworMzBEQSAwMDQxOworMzMzQSAwMDIxOworMzJFRCAwMDNGOworMzA3RCAwMDQxOworMzM0MCAwMDQxOworMzM0NCAwMDQxOworMzA3RiAwMDYxOworRkY5MSAwMDIxOworMzM0RCAwMDIxOworMzJGMiAwMDIxOworMzJGMyAwMDNGOworRkY5NCAwMDYyOworMzA4NSAwMDYyOworMzBFNyAwMDYxOworRkY5NyAwMDNGOworMzFGQyAwMDQxOworRkY5OSAwMDNGOworRkY5QSAwMDIxOworMzM1NiAwMDQxOworMzA4RSAwMDIxOworMzBFRSAwMDYyOworMzBGMCAwMDYyOworMzBGMiAwMDIxOworMzA5MyAwMDYxOworMzEwNyAwMDNGOworMzEwQiAwMDNGOworMzEyQiAwMDNGOworMzExMSAwMDNGOworMzExNiAwMDNGOworMzFBOSAwMDYxOworMzFBNSAwMDIxOworMzFBRiAwMDYxOworMzEyNSAwMDNGOworMzEyNyAwMDYxOworQTAwMCAwMDNGOworQTAwNiAwMDNGOworQTAwQyAwMDNGOworQTAxMiAwMDNGOworQTAxOCAwMDNGOworQTAxRSAwMDNGOworQTAyNCAwMDNGOworQTAyQSAwMDNGOworQTAzMCAwMDNGOworQTAzNiAwMDNGOworQTAzQyAwMDNGOworQTA0MiAwMDNGOworQTA0OCAwMDNGOworQTA0RSAwMDNGOworQTA1NCAwMDNGOworQTA1QSAwMDNGOworQTA2MCAwMDNGOworQTA2NiAwMDNGOworQTA2QyAwMDNGOworQTA3MiAwMDNGOworQTA3OCAwMDNGOworQTA3RSAwMDNGOworQTA4NCAwMDNGOworQTA4QSAwMDNGOworQTA5MCAwMDNGOworQTA5NiAwMDNGOworQTA5QyAwMDNGOworQTBBMiAwMDNGOworQTBBOCAwMDNGOworQTBBRSAwMDNGOworQTBCNCAwMDNGOworQTBCQSAwMDNGOworQTBDMCAwMDNGOworQTBDNiAwMDNGOworQTBDQyAwMDNGOworQTBEMiAwMDNGOworQTBEOCAwMDNGOworQTBERSAwMDNGOworQTBFNCAwMDNGOworQTBFQSAwMDNGOworQTBGMCAwMDNGOworQTBGNiAwMDNGOworQTBGQyAwMDNGOworQTEwMiAwMDNGOworQTEwOCAwMDNGOworQTEwRSAwMDNGOworQTExNCAwMDNGOworQTExQSAwMDNGOworQTEyMCAwMDNGOworQTEyNiAwMDNGOworQTEyQyAwMDNGOworQTEzMiAwMDNGOworQTEzOCAwMDNGOworQTEzRSAwMDNGOworQTE0NCAwMDNGOworQTE0QSAwMDNGOworQTE1MCAwMDNGOworQTE1NiAwMDNGOworQTE1QyAwMDNGOworQTE2MiAwMDNGOworQTE2OCAwMDNGOworQTE2RSAwMDNGOworQTE3NCAwMDNGOworQTE3QSAwMDNGOworQTE4MCAwMDNGOworQTE4NiAwMDNGOworQTE4QyAwMDNGOworQTE5MiAwMDNGOworQTE5OCAwMDNGOworQTE5RSAwMDNGOworQTFBNCAwMDNGOworQTFBQSAwMDNGOworQTFCMCAwMDNGOworQTFCNiAwMDNGOworQTFCQyAwMDNGOworQTFDMiAwMDNGOworQTFDOCAwMDNGOworQTFDRSAwMDNGOworQTFENCAwMDNGOworQTFEQSAwMDNGOworQTFFMCAwMDNGOworQTFFNiAwMDNGOworQTFFQyAwMDNGOworQTFGMiAwMDNGOworQTFGOCAwMDNGOworQTFGRSAwMDNGOworQTIwNCAwMDNGOworQTIwQSAwMDNGOworQTIxMCAwMDNGOworQTIxNiAwMDNGOworQTIxQyAwMDNGOworQTIyMiAwMDNGOworQTIyOCAwMDNGOworQTIyRSAwMDNGOworQTIzNCAwMDNGOworQTIzQSAwMDNGOworQTI0MCAwMDNGOworQTI0NiAwMDNGOworQTI0QyAwMDNGOworQTI1MiAwMDNGOworQTI1OCAwMDNGOworQTI1RSAwMDNGOworQTI2NCAwMDNGOworQTI2QSAwMDNGOworQTI3MCAwMDNGOworQTI3NiAwMDNGOworQTI3QyAwMDNGOworQTI4MiAwMDNGOworQTI4OCAwMDNGOworQTI4RSAwMDNGOworQTI5NCAwMDNGOworQTI5QSAwMDNGOworQTJBMCAwMDNGOworQTJBNiAwMDNGOworQTJBQyAwMDNGOworQTJCMiAwMDNGOworQTJCOCAwMDNGOworQTJCRSAwMDNGOworQTJDNCAwMDNGOworQTJDQSAwMDNGOworQTJEMCAwMDNGOworQTJENiAwMDNGOworQTJEQyAwMDNGOworQTJFMiAwMDNGOworQTJFOCAwMDNGOworQTJFRSAwMDNGOworQTJGNCAwMDNGOworQTJGQSAwMDNGOworQTMwMCAwMDNGOworQTMwNiAwMDNGOworQTMwQyAwMDNGOworQTMxMiAwMDNGOworQTMxOCAwMDNGOworQTMxRSAwMDNGOworQTMyNCAwMDNGOworQTMyQSAwMDNGOworQTMzMCAwMDNGOworQTMzNiAwMDNGOworQTMzQyAwMDNGOworQTM0MiAwMDNGOworQTM0OCAwMDNGOworQTM0RSAwMDNGOworQTM1NCAwMDNGOworQTM1QSAwMDNGOworQTM2MCAwMDNGOworQTM2NiAwMDNGOworQTM2QyAwMDNGOworQTM3MiAwMDNGOworQTM3OCAwMDNGOworQTM3RSAwMDNGOworQTM4NCAwMDNGOworQTM4QSAwMDNGOworQTM5MCAwMDNGOworQTM5NiAwMDNGOworQTM5QyAwMDNGOworQTNBMiAwMDNGOworQTNBOCAwMDNGOworQTNBRSAwMDNGOworQTNCNCAwMDNGOworQTNCQSAwMDNGOworQTNDMCAwMDNGOworQTNDNiAwMDNGOworQTNDQyAwMDNGOworQTNEMiAwMDNGOworQTNEOCAwMDNGOworQTNERSAwMDNGOworQTNFNCAwMDNGOworQTNFQSAwMDNGOworQTNGMCAwMDNGOworQTNGNiAwMDNGOworQTNGQyAwMDNGOworQTQwMiAwMDNGOworQTQwOCAwMDNGOworQTQwRSAwMDNGOworQTQxNCAwMDNGOworQTQxQSAwMDNGOworQTQyMCAwMDNGOworQTQyNiAwMDNGOworQTQyQyAwMDNGOworQTQzMiAwMDNGOworQTQzOCAwMDNGOworQTQzRSAwMDNGOworQTQ0NCAwMDNGOworQTQ0QSAwMDNGOworQTQ1MCAwMDNGOworQTQ1NiAwMDNGOworQTQ1QyAwMDNGOworQTQ2MiAwMDNGOworQTQ2OCAwMDNGOworQTQ2RSAwMDNGOworQTQ3NCAwMDNGOworQTQ3QSAwMDNGOworQTQ4MCAwMDNGOworQTQ4NiAwMDNGOworQTQ4QyAwMDNGOworMTAzMDUgMDAzRjsKKzEwMzBCIDAwM0Y7CisxMDMxMSAwMDNGOworMTAzMTcgMDAzRjsKKzEwMzFEIDAwM0Y7CisxMDMzNCAwMDNGOworMTAzM0EgMDAzRjsKKzEwMzQwIDAwM0Y7CisxMDM0NiAwMDNGOworMTA0MDAgMDA2MTsKKzEwNDAzIDAwNjE7CisxMDQwNiAwMDYxOworMTA0MDkgMDA2MTsKKzEwNDBDIDAwNjE7CisxMDQwRiAwMDYxOworMTA0MTIgMDA2MTsKKzEwNDE1IDAwNjE7CisxMDQxOCAwMDYxOworMTA0MUIgMDA2MTsKKzEwNDFFIDAwNjE7CisxMDQyMSAwMDYxOworMTA0MjQgMDA2MTsKKzEwNDI3IDAwNjE7CisxMDQ1NSAwMDNGOworMTA0NUIgMDAzRjsKKzEwNDYxIDAwM0Y7CisxMDQ2NyAwMDNGOworMTA0NkQgMDAzRjsKKzEwNDczIDAwM0Y7CisxMDQ3OSAwMDNGOworMTA0N0YgMDAzRjsKKzEwNDg1IDAwM0Y7CisxMDQ4QiAwMDNGOworMTA0OTEgMDAzRjsKKzEwNDk3IDAwM0Y7CisxMDQ5RCAwMDNGOworMTAwMDUgMDAzRjsKKzEwMDBCIDAwM0Y7CisxMDAxMiAwMDNGOworMTAwMTggMDAzRjsKKzEwMDFFIDAwM0Y7CisxMDAyNCAwMDNGOworMTAwMkIgMDAzRjsKKzEwMDMxIDAwM0Y7CisxMDAzNyAwMDNGOworMTAwM0YgMDAzRjsKKzEwMDQ1IDAwM0Y7CisxMDA0QiAwMDNGOworMTAwNTMgMDAzRjsKKzEwMDU5IDAwM0Y7CisxMDA4MSAwMDNGOworMTAwODcgMDAzRjsKKzEwMDhEIDAwM0Y7CisxMDA5MyAwMDNGOworMTAwOTkgMDAzRjsKKzEwMDlGIDAwM0Y7CisxMDBBNSAwMDNGOworMTAwQUIgMDAzRjsKKzEwMEIxIDAwM0Y7CisxMDBCNyAwMDNGOworMTAwQkQgMDAzRjsKKzEwMEMzIDAwM0Y7CisxMDBDOSAwMDNGOworMTAwQ0YgMDAzRjsKKzEwMEQ1IDAwM0Y7CisxMDBEQiAwMDNGOworMTAwRTEgMDAzRjsKKzEwMEU3IDAwM0Y7CisxMDBFRCAwMDNGOworMTAwRjMgMDAzRjsKKzEwMEY5IDAwM0Y7CisxMDgwNCAwMDNGOworMTA4MEQgMDAzRjsKKzEwODEzIDAwM0Y7CisxMDgxOSAwMDNGOworMTA4MUYgMDAzRjsKKzEwODI1IDAwM0Y7CisxMDgyQiAwMDNGOworMTA4MzEgMDAzRjsKKzEwODM4IDAwM0Y7CisxMDM4MyAwMDNGOworMTAzODkgMDAzRjsKKzEwMzhGIDAwM0Y7CisxMDM5NSAwMDNGOworMTAzOUIgMDAzRjsKKzEwM0EzIDAwM0Y7CisxMDNBOSAwMDNGOworMTAzQUYgMDAzRjsKKzEwM0I1IDAwM0Y7CisxMDNCQiAwMDNGOworMTAzQzEgMDAzRjsKKzEwM0NCIDAwM0Y7CiszMjgwIDAwM0Y7CiszMjg2IDAwMjE7CiszMTk2IDAwMjE7CitGQTcwIDAwM0Y7CisyRTgwIDAwMjE7CisyRjgwMiAwMDNGOworMzI4OCAwMDNGOworMzE5MyAwMDQxOworMkU4NSAwMDNGOworMkY4MDQgMDAzRjsKKzJGODA2IDAwM0Y7CisyRjgwQiAwMDNGOworRkEwQyAwMDNGOworMkYwQSAwMDNGOworMzI4NSAwMDIxOworMkY4MTUgMDAzRjsKKzJGODE4IDAwM0Y7CitGOTc5IDAwM0Y7CisyRjEwIDAwMjE7CisyRjg1MCAwMDIxOworMkY4MjEgMDAzRjsKK0Y5OUQgMDAzRjsKK0ZBMzMgMDA0MTsKKzJGMTMgMDAzRjsKKzJGODJCIDAwMjE7CiszMDM4IDAwMjE7CisyRjgyRCAwMDIxOworMkU4QiAwMDIxOworMkY4MzIgMDAyMTsKK0Y5NkIgMDAzRjsKKzJGODM5IDAwM0Y7CitGOUVEIDAwM0Y7CisyRjg0MCAwMDNGOworMkY4NDQgMDAzRjsKK0ZBNzggMDAyMTsKK0ZBN0IgMDAzRjsKKzJGMUUgMDAzRjsKKzMyOEYgMDAyMTsKKzJGODU0IDAwM0Y7CitGOTZDIDAwM0Y7CisyRjIwIDAwM0Y7CisyRjIyIDAwM0Y7CiszMzdEIDAwM0Y7CisyRjg1RiAwMDNGOworMkY4NjMgMDAzRjsKK0ZBODEgMDAzRjsKK0ZBMDQgMDAzRjsKKzJGODZGIDAwNDE7CisyRThDIDAwMjE7CisyRjg3NSAwMDYyOworRjk0QiAwMDNGOworMkYyRCAwMDNGOworMkY4N0YgMDAzRjsKKzJGODgxIDAwM0Y7CisyRjg4NCAwMDNGOworMzM3QiAwMDNGOworMkY4OEIgMDAzRjsKK0ZBODIgMDAzRjsKKzJGMzYgMDA2MTsKKzJFOTUgMDAyMTsKK0ZBODQgMDAzRjsKK0ZBODUgMDAzRjsKK0Y5QTMgMDAzRjsKK0ZBM0QgMDA0MTsKKzJGOEE2IDAwM0Y7CitGQTNFIDAwM0Y7CisyRjhBRCAwMDNGOworMkY4QjAgMDA0MTsKKzJGOEIzIDAwM0Y7CisyRjhCNCAwMDNGOworMkY4QkEgMDAzRjsKKzJGOEJDIDAwM0Y7CitGQThFIDAwM0Y7CitGOTkxIDAwM0Y7CisyRjhDOCAwMDIxOworMkY0MyAwMDNGOworMkU5QiAwMDNGOworMzM3RSAwMDNGOworRjlDNSAwMDNGOworMkY0OCAwMDNGOworMkU5RCAwMDQxOworRkE5MyAwMDQxOworRkE5NCAwMDNGOworMkY4REYgMDAzRjsKK0Y5N0EgMDAzRjsKKzJGOEU4IDAwM0Y7CitGOTRDIDAwM0Y7CisyRjhFRiAwMDNGOworMkY0RCAwMDIxOworRkE5NiAwMDIxOworMkY1MCAwMDNGOworMzI4QyAwMDYxOworMkY4RkMgMDAzRjsKK0Y5MTUgMDAzRjsKKzJGOTAyIDAwNDE7CisyRjkwNSAwMDNGOworMkY5MDggMDAzRjsKK0ZBOTkgMDA0MTsKK0Y5OTIgMDAzRjsKKzJGOTE0IDAwMjE7CisyRUEzIDAwM0Y7CitGOTlGIDAwM0Y7CisyRjkxRSAwMDNGOworMkY1NiAwMDNGOworMkY1NyAwMDNGOworMkVBNyAwMDIxOworMkY1RCAwMDNGOworRkExNiAwMDQxOworMkY1RiAwMDNGOworRjlFNCAwMDNGOworMkY5MzAgMDAyMTsKKzJGNjAgMDAzRjsKKzJGNjQgMDAzRjsKK0Y5Q0QgMDAzRjsKKzJGNjcgMDAzRjsKK0Y5MEUgMDAzRjsKK0ZBMTcgMDA0MTsKKzJGOTQwIDAwMjE7CitGQUFBIDAwM0Y7CisyRjZFIDAwM0Y7CitGQTRCIDAwM0Y7CisyRUFDIDAwMjE7CitGQTRFIDAwM0Y7CiszMjk3IDAwNjE7CisyRjk1NiAwMDIxOworMzI5OSAwMDNGOworMkY5NUIgMDAzRjsKKzJGOTVGIDAwM0Y7CisyRjk2MiAwMDNGOworRjlGOSAwMDNGOworMkY5NjggMDAzRjsKK0Y5NEYgMDAzRjsKK0ZBNTcgMDAyMTsKK0ZBNTkgMDAzRjsKKzJFQjUgMDAyMTsKK0Y5RTYgMDAzRjsKKzJFQjggMDAzRjsKKzJGN0MgMDAyMTsKKzJGN0QgMDAzRjsKKzJGOTdGIDAwM0Y7CisyRUJDIDAwNjE7CitGOTI2IDAwM0Y7CisyRUJEIDAwMjE7CisyRjg3IDAwM0Y7CitGQTVFIDAwMjE7CisyRjk4RiAwMDNGOworRjk3NCAwMDQxOworMkY5QTAgMDAzRjsKKzJGOUEyIDAwM0Y7CitGOTZFIDAwM0Y7CitGOUMyIDAwM0Y7CitGQTIwIDAwM0Y7CisyRjlCNCAwMDIxOworMkY5QjcgMDAzRjsKK0ZBQjUgMDA0MTsKKzJGOEUgMDAzRjsKKzJFQzIgMDAzRjsKK0Y5MTIgMDAzRjsKKzJFQzQgMDAzRjsKK0ZBNjEgMDA0MTsKKzJGOUNGIDAwM0Y7CitGOTQxIDAwM0Y7CitGOTVEIDAwNDE7CitGOTVBIDAwM0Y7CitGOTAwIDAwM0Y7CisyRjlENCAwMDNGOworRkFDMSAwMDIxOworMkY5RDcgMDAzRjsKKzJGOURDIDAwM0Y7CitGOUQ3IDAwM0Y7CisyRjlGIDAwM0Y7CisyRUNEIDAwM0Y7CiszMjlDIDAwM0Y7CisyRjlFMiAwMDNGOworMkZBMyAwMDNGOworMkZBNSAwMDYxOworMkY5RTcgMDAzRjsKK0Y5OUIgMDAzRjsKKzJFRDIgMDAzRjsKKzJFRDQgMDAzRjsKK0ZBMDkgMDAzRjsKKzJGQUEgMDAzRjsKK0ZBNjggMDA0MTsKK0Y5MzggMDAzRjsKKzJGQUUgMDAzRjsKKzJFRDkgMDAzRjsKKzMyQTAgMDAzRjsKK0ZBQ0MgMDAyMTsKKzJGQjYgMDAzRjsKKzJGQTAyIDAwM0Y7CisyRUUxIDAwMjE7CitGOTFBIDAwM0Y7CisyRkJDIDAwM0Y7CisyRkMwIDAwM0Y7CitGOUYyIDAwM0Y7CitGOTNBIDAwM0Y7CisyRkM1IDAwNjE7CisyRkM3IDAwNjE7CisyRkNCIDAwMjE7CisyRkNEIDAwM0Y7CisyRkQwIDAwNjE7CisyRUVEIDAwNjE7CisyRUYwIDAwM0Y7CitGQUNFIDAwNjI7Cis5RkEzIDAwM0Y7CitGQTEzIDAwM0Y7CitGQTI3IDAwM0Y7CiszNDAzIDAwM0Y7CiszNDA5IDAwM0Y7CiszNDBGIDAwM0Y7CiszNDE1IDAwM0Y7CiszNDFCIDAwM0Y7CiszNDIxIDAwM0Y7CiszNDI3IDAwM0Y7CiszNDJEIDAwM0Y7CiszNDMzIDAwM0Y7CiszNDM5IDAwM0Y7CiszNDNGIDAwM0Y7CiszNDQ1IDAwM0Y7CiszNDRCIDAwM0Y7CiszNDUxIDAwM0Y7CiszNDU3IDAwM0Y7CiszNDVEIDAwM0Y7CiszNDYzIDAwM0Y7CiszNDY5IDAwM0Y7CiszNDZGIDAwM0Y7CiszNDc1IDAwM0Y7CiszNDdCIDAwM0Y7CiszNDgxIDAwM0Y7CiszNDg3IDAwM0Y7CiszNDhEIDAwM0Y7CiszNDkzIDAwM0Y7CiszNDk5IDAwM0Y7CiszNDlFIDAwNDE7CiszNEE0IDAwM0Y7CiszNEFBIDAwM0Y7CiszNEIwIDAwM0Y7CiszNEI2IDAwM0Y7CisyRjlDQSAwMDIxOworMzRDMCAwMDNGOworMzRDNiAwMDNGOworMzRDQyAwMDNGOworMzREMiAwMDNGOworMzREOCAwMDNGOworMzRERSAwMDNGOworMzRFMyAwMDNGOworMzRFOSAwMDNGOworMzRFRiAwMDNGOworMzRGNSAwMDNGOworMzRGQiAwMDNGOworMzUwMSAwMDNGOworMzUwNyAwMDNGOworMzUwRCAwMDNGOworMzUxMyAwMDNGOworMzUxOCAwMDNGOworMzUxRSAwMDNGOworMzUyNCAwMDNGOworMzUyQSAwMDNGOworMzUzMCAwMDNGOworMzUzNiAwMDNGOworMzUzQyAwMDNGOworMzU0MiAwMDNGOworMzU0OCAwMDNGOworMzU0RSAwMDNGOworMzU1NCAwMDNGOworMzU1QSAwMDNGOworMzU2MCAwMDNGOworMzU2NiAwMDNGOworMzU2QyAwMDNGOworMzU3MiAwMDNGOworMzU3OCAwMDNGOworMzU3RSAwMDNGOworMzU4NCAwMDNGOworMzU4QSAwMDNGOworMzU5MCAwMDNGOworMzU5NiAwMDNGOworMzU5QyAwMDNGOworMzVBMiAwMDNGOworMzVBOCAwMDNGOworMzVBRSAwMDNGOworMzVCNCAwMDNGOworMzVCQSAwMDNGOworMzVDMCAwMDNGOworMzVDNiAwMDNGOworMzVDQyAwMDNGOworMzVEMiAwMDNGOworMzVEOCAwMDNGOworMzVERSAwMDNGOworMzVFNCAwMDNGOworMzVFQSAwMDNGOworMzVGMCAwMDNGOworMzVGNiAwMDNGOworMzVGQyAwMDNGOworMzYwMiAwMDNGOworMzYwOCAwMDNGOworMzYwRSAwMDNGOworMzYxNCAwMDNGOworMzYxQSAwMDNGOworMzYyMCAwMDNGOworMzYyNiAwMDNGOworMzYyQyAwMDNGOworMzYzMiAwMDNGOworMzYzOCAwMDNGOworMzYzRSAwMDNGOworMzY0NCAwMDNGOworMzY0QSAwMDNGOworMzY1MCAwMDNGOworMzY1NiAwMDNGOworMzY1QyAwMDNGOworMzY2MiAwMDNGOworMzY2OCAwMDNGOworMzY2RSAwMDNGOworMzY3NCAwMDNGOworMzY3QSAwMDNGOworMzY4MCAwMDNGOworMzY4NiAwMDNGOworMzY4QyAwMDNGOworMzY5MiAwMDNGOworMzY5OCAwMDNGOworMzY5RSAwMDNGOworMzZBNCAwMDNGOworMzZBQSAwMDNGOworMzZCMCAwMDNGOworMzZCNiAwMDNGOworMzZCQyAwMDNGOworMzZDMiAwMDNGOworMzZDOCAwMDNGOworMzZDRSAwMDNGOworMzZENCAwMDNGOworMzZEQSAwMDNGOworMzZFMCAwMDNGOworMzZFNiAwMDNGOworMzZFQyAwMDNGOworMzZGMSAwMDNGOworMzZGNyAwMDNGOworMzZGQyAwMDQxOworMzcwMiAwMDNGOworMzcwOCAwMDNGOworMzcwRSAwMDNGOworMzcxNCAwMDNGOworMzcxQSAwMDNGOworMzcyMCAwMDNGOworMzcyNiAwMDNGOworMzcyQyAwMDNGOworMzczMiAwMDNGOworMzczOCAwMDNGOworMzczRSAwMDNGOworMzc0NCAwMDNGOworMzc0QSAwMDNGOworMzc1MCAwMDNGOworMzc1NiAwMDNGOworMzc1QyAwMDNGOworMzc2MiAwMDNGOworMzc2OCAwMDNGOworMzc2RSAwMDNGOworMzc3NCAwMDNGOworMzc3QSAwMDNGOworMzc4MCAwMDNGOworMzc4NSAwMDNGOworMzc4QiAwMDNGOworMzc5MSAwMDNGOworMzc5NyAwMDNGOworMzc5RCAwMDNGOworMzdBMyAwMDNGOworMzdBOSAwMDNGOworMzdBRiAwMDNGOworMzdCNSAwMDNGOworMzdCQiAwMDNGOworMzdDMSAwMDNGOworMzdDNyAwMDNGOworMzdDRCAwMDNGOworMzdEMyAwMDNGOworMzdEOSAwMDNGOworMzdERiAwMDNGOworMzdFNSAwMDNGOworMzdFQiAwMDNGOworMzdGMSAwMDNGOworMzdGNyAwMDNGOworMzdGRCAwMDNGOworMzgwMyAwMDNGOworMzgwOSAwMDNGOworMzgwRiAwMDNGOworMzgxNSAwMDNGOworMzgxQiAwMDNGOworMzgyMSAwMDNGOworMzgyNyAwMDNGOworMzgyRCAwMDNGOworMzgzMiAwMDNGOworMzgzOCAwMDNGOworMzgzRSAwMDNGOworMzg0NCAwMDNGOworMzg0QSAwMDNGOworMzg1MCAwMDNGOworMzg1NiAwMDNGOworMzg1QyAwMDNGOworMkY4ODggMDAyMTsKKzM4NjcgMDAzRjsKKzM4NkQgMDAzRjsKKzM4NzMgMDAzRjsKKzM4NzkgMDAzRjsKKzM4N0UgMDAzRjsKKzM4ODQgMDAzRjsKKzM4OEEgMDAzRjsKKzM4OTAgMDAzRjsKKzM4OTYgMDAzRjsKKzM4OUMgMDAzRjsKKzM4QTIgMDAzRjsKKzM4QTggMDAzRjsKKzM4QUUgMDAzRjsKKzM4QjQgMDAzRjsKKzM4QkEgMDAzRjsKKzM4QzAgMDAzRjsKKzM4QzYgMDAzRjsKKzM4Q0IgMDAzRjsKKzM4RDEgMDAzRjsKKzM4RDcgMDAzRjsKKzM4REQgMDAzRjsKKzJGODlCIDAwMjE7CiszOEU4IDAwM0Y7CiszOEVFIDAwM0Y7CiszOEY0IDAwM0Y7CiszOEZBIDAwM0Y7CiszOTAwIDAwM0Y7CiszOTA2IDAwM0Y7CiszOTBDIDAwM0Y7CiszOTEyIDAwM0Y7CiszOTE4IDAwM0Y7CiszOTFEIDAwM0Y7CiszOTIzIDAwM0Y7CiszOTI5IDAwM0Y7CiszOTJGIDAwM0Y7CiszOTM1IDAwM0Y7CiszOTNBIDAwNDE7CiszOTQwIDAwM0Y7CiszOTQ2IDAwM0Y7CiszOTRDIDAwM0Y7CiszOTUyIDAwM0Y7CiszOTU4IDAwM0Y7CiszOTVFIDAwM0Y7CiszOTY0IDAwM0Y7CiszOTZBIDAwM0Y7CiszOTcwIDAwM0Y7CiszOTc2IDAwM0Y7CiszOTdDIDAwM0Y7CiszOTgyIDAwM0Y7CiszOTg4IDAwM0Y7CiszOThFIDAwM0Y7CiszOTk0IDAwM0Y7CiszOTlBIDAwM0Y7CiszOUEwIDAwM0Y7CiszOUE2IDAwM0Y7CiszOUFDIDAwM0Y7CiszOUIyIDAwM0Y7CiszOUI4IDAwM0Y7CiszOUJFIDAwM0Y7CiszOUM0IDAwM0Y7CiszOUNBIDAwM0Y7CiszOUQwIDAwM0Y7CiszOUQ2IDAwM0Y7CiszOURDIDAwM0Y7CiszOUUyIDAwM0Y7CiszOUU4IDAwM0Y7CiszOUVFIDAwM0Y7CiszOUY0IDAwM0Y7CiszOUZBIDAwM0Y7CiszQTAwIDAwM0Y7CiszQTA2IDAwM0Y7CiszQTBDIDAwM0Y7CiszQTEyIDAwM0Y7CiszQTE4IDAwM0Y7CiszQTFFIDAwM0Y7CiszQTI0IDAwM0Y7CiszQTJBIDAwM0Y7CiszQTJGIDAwM0Y7CiszQTM1IDAwM0Y7CiszQTNCIDAwM0Y7CiszQTQxIDAwM0Y7CiszQTQ3IDAwM0Y7CiszQTREIDAwM0Y7CiszQTUzIDAwM0Y7CiszQTU5IDAwM0Y7CiszQTVGIDAwM0Y7CiszQTY1IDAwM0Y7CiszQTZCIDAwM0Y7CiszQTcwIDAwM0Y7CiszQTc2IDAwM0Y7CiszQTdDIDAwM0Y7CiszQTgyIDAwM0Y7CiszQTg4IDAwM0Y7CiszQThFIDAwM0Y7CiszQTk0IDAwM0Y7CiszQTlBIDAwM0Y7CiszQUEwIDAwM0Y7CiszQUE2IDAwM0Y7CiszQUFDIDAwM0Y7CiszQUIyIDAwM0Y7CiszQUI4IDAwM0Y7CiszQUJFIDAwM0Y7CiszQUM0IDAwM0Y7CiszQUNBIDAwM0Y7CiszQUQwIDAwM0Y7CiszQUQ2IDAwM0Y7CiszQURDIDAwM0Y7CiszQUUyIDAwM0Y7CiszQUU3IDAwM0Y7CiszQUVEIDAwM0Y7CiszQUYzIDAwM0Y7CiszQUY5IDAwM0Y7CiszQUZGIDAwM0Y7CiszQjA1IDAwM0Y7CiszQjBBIDAwM0Y7CiszQjEwIDAwM0Y7CiszQjE2IDAwM0Y7CiszQjFCIDAwM0Y7CiszQjIxIDAwM0Y7CiszQjI3IDAwM0Y7CiszQjJEIDAwM0Y7CiszQjMzIDAwM0Y7CiszQjM5IDAwM0Y7CiszQjNGIDAwM0Y7CiszQjQ1IDAwM0Y7CiszQjRBIDAwM0Y7CiszQjUwIDAwM0Y7CiszQjU2IDAwM0Y7CiszQjVDIDAwM0Y7CiszQjYyIDAwM0Y7CiszQjY4IDAwM0Y7CiszQjZFIDAwM0Y7CiszQjc0IDAwM0Y7CiszQjdBIDAwM0Y7CiszQjgwIDAwM0Y7CiszQjg2IDAwM0Y7CiszQjhDIDAwM0Y7CiszQjkyIDAwM0Y7CiszQjk4IDAwM0Y7CiszQjlEIDAwNjE7CiszQkEyIDAwM0Y7CiszQkE4IDAwM0Y7CiszQkFFIDAwM0Y7CiszQkI0IDAwM0Y7CiszQkJBIDAwM0Y7CiszQkMwIDAwM0Y7CiszQkM2IDAwM0Y7CiszQkNDIDAwM0Y7CiszQkQyIDAwM0Y7CiszQkQ4IDAwM0Y7CiszQkRFIDAwM0Y7CiszQkU0IDAwM0Y7CiszQkVBIDAwM0Y7CiszQkYwIDAwM0Y7CiszQkY2IDAwM0Y7CiszQkZDIDAwM0Y7CiszQzAyIDAwM0Y7CiszQzA4IDAwM0Y7CiszQzBFIDAwM0Y7CiszQzE0IDAwM0Y7CiszQzE5IDAwM0Y7CiszQzFGIDAwM0Y7CiszQzI1IDAwM0Y7CiszQzJCIDAwM0Y7CiszQzMxIDAwM0Y7CiszQzM3IDAwM0Y7CiszQzNEIDAwM0Y7CiszQzQzIDAwM0Y7CiszQzQ5IDAwM0Y7CiszQzRFIDAwNDE7CiszQzU0IDAwM0Y7CiszQzVBIDAwM0Y7CiszQzYwIDAwM0Y7CiszQzY2IDAwM0Y7CiszQzZDIDAwM0Y7CiszQzcyIDAwM0Y7CiszQzc4IDAwM0Y7CiszQzdFIDAwM0Y7CiszQzg0IDAwM0Y7CiszQzhBIDAwM0Y7CiszQzkwIDAwM0Y7CiszQzk2IDAwM0Y7CiszQzlDIDAwM0Y7CiszQ0EyIDAwM0Y7CiszQ0E4IDAwM0Y7CiszQ0FFIDAwM0Y7CiszQ0I0IDAwM0Y7CiszQ0JBIDAwM0Y7CiszQ0MwIDAwM0Y7CiszQ0M2IDAwM0Y7CiszQ0NDIDAwM0Y7CiszQ0QyIDAwM0Y7CiszQ0Q4IDAwM0Y7CiszQ0RFIDAwM0Y7CiszQ0U0IDAwM0Y7CiszQ0VBIDAwM0Y7CiszQ0YwIDAwM0Y7CiszQ0Y2IDAwM0Y7CiszQ0ZDIDAwM0Y7CiszRDAyIDAwM0Y7CiszRDA4IDAwM0Y7CiszRDBFIDAwM0Y7CiszRDE0IDAwM0Y7CiszRDFBIDAwM0Y7CiszRDIwIDAwM0Y7CiszRDI2IDAwM0Y7CiszRDJDIDAwM0Y7CiszRDMyIDAwM0Y7CiszRDM3IDAwM0Y7CiszRDNEIDAwM0Y7CiszRDQzIDAwM0Y7CiszRDQ5IDAwM0Y7CiszRDRGIDAwM0Y7CiszRDU1IDAwM0Y7CiszRDVCIDAwM0Y7CiszRDYxIDAwM0Y7CiszRDY3IDAwM0Y7CiszRDZEIDAwM0Y7CiszRDczIDAwM0Y7CiszRDc5IDAwM0Y7CiszRDdGIDAwM0Y7CiszRDg1IDAwM0Y7CiszRDhCIDAwM0Y7CiszRDkxIDAwM0Y7CiszRDk2IDAwNDE7CiszRDlDIDAwM0Y7CiszREEyIDAwM0Y7CiszREE4IDAwM0Y7CiszREFFIDAwM0Y7CiszREI0IDAwM0Y7CiszREJBIDAwM0Y7CiszREMwIDAwM0Y7CiszREM2IDAwM0Y7CiszRENDIDAwM0Y7CiszREQyIDAwM0Y7CiszREQ4IDAwM0Y7CiszRERFIDAwM0Y7CiszREU0IDAwM0Y7CiszREVBIDAwM0Y7CiszREYwIDAwM0Y7CiszREY2IDAwM0Y7CiszREZDIDAwM0Y7CiszRTAyIDAwM0Y7CiszRTA4IDAwM0Y7CiszRTBFIDAwM0Y7CiszRTE0IDAwM0Y7CiszRTFBIDAwM0Y7CiszRTIwIDAwM0Y7CiszRTI2IDAwM0Y7CiszRTJDIDAwM0Y7CiszRTMyIDAwM0Y7CiszRTM4IDAwM0Y7CiszRTNFIDAwM0Y7CiszRTQ0IDAwM0Y7CiszRTRBIDAwM0Y7CiszRTUwIDAwM0Y7CiszRTU2IDAwM0Y7CiszRTVDIDAwM0Y7CiszRTYyIDAwM0Y7CiszRTY4IDAwM0Y7CiszRTZFIDAwM0Y7CiszRTc0IDAwM0Y7CiszRTdBIDAwM0Y7CiszRTgwIDAwM0Y7CiszRTg2IDAwM0Y7CiszRThDIDAwM0Y7CiszRTkyIDAwM0Y7CiszRTk4IDAwM0Y7CiszRTlFIDAwM0Y7CiszRUE0IDAwM0Y7CiszRUFBIDAwM0Y7CiszRUFGIDAwM0Y7CiszRUI1IDAwM0Y7CiszRUI5IDAwM0Y7CiszRUJGIDAwM0Y7CiszRUM1IDAwM0Y7CiszRUNCIDAwM0Y7CiszRUQxIDAwM0Y7CiszRUQ3IDAwM0Y7CiszRUREIDAwM0Y7CiszRUUzIDAwM0Y7CiszRUU5IDAwM0Y7CiszRUVGIDAwM0Y7CiszRUY1IDAwM0Y7CiszRUZCIDAwM0Y7CiszRjAxIDAwM0Y7CiszRjA3IDAwM0Y7CiszRjBEIDAwM0Y7CiszRjEzIDAwM0Y7CiszRjE5IDAwM0Y7CiszRjFFIDAwM0Y7CiszRjI0IDAwM0Y7CiszRjJBIDAwM0Y7CiszRjMwIDAwM0Y7CiszRjM2IDAwM0Y7CiszRjNDIDAwM0Y7CiszRjQyIDAwM0Y7CiszRjQ4IDAwM0Y7CiszRjRFIDAwM0Y7CiszRjU0IDAwM0Y7CiszRjVBIDAwM0Y7CiszRjYwIDAwM0Y7CiszRjY2IDAwM0Y7CiszRjZDIDAwM0Y7CiszRjcyIDAwM0Y7CiszRjc4IDAwM0Y7CiszRjdFIDAwM0Y7CiszRjg0IDAwM0Y7CiszRjhBIDAwM0Y7CiszRjkwIDAwM0Y7CiszRjk2IDAwM0Y7CiszRjlDIDAwM0Y7CiszRkEyIDAwM0Y7CiszRkE4IDAwM0Y7CiszRkFFIDAwM0Y7CiszRkI0IDAwM0Y7CiszRkJBIDAwM0Y7CiszRkMwIDAwM0Y7CiszRkM2IDAwM0Y7CiszRkNDIDAwM0Y7CiszRkQyIDAwM0Y7CiszRkQ4IDAwM0Y7CiszRkRFIDAwM0Y7CiszRkU0IDAwM0Y7CiszRkVBIDAwM0Y7CiszRkYwIDAwM0Y7CiszRkY2IDAwM0Y7CisyRjkzRSAwMDIxOworNDAwMSAwMDNGOworNDAwNyAwMDNGOworNDAwQyAwMDNGOworNDAxMiAwMDNGOworRkFEMyAwMDIxOworNDAxRCAwMDNGOworNDAyMyAwMDNGOworNDAyOSAwMDNGOworNDAyRiAwMDNGOworNDAzNSAwMDNGOworMkY5NDkgMDA0MTsKKzQwM0YgMDAzRjsKKzQwNDUgMDAzRjsKKzQwNEEgMDAzRjsKKzQwNTAgMDAzRjsKKzQwNTYgMDAzRjsKKzQwNUMgMDAzRjsKKzQwNjIgMDAzRjsKKzQwNjggMDAzRjsKKzQwNkUgMDAzRjsKKzQwNzQgMDAzRjsKKzQwN0EgMDAzRjsKKzQwODAgMDAzRjsKKzQwODYgMDAzRjsKKzQwOEMgMDAzRjsKKzQwOTIgMDAzRjsKKzQwOTcgMDAzRjsKKzQwOUQgMDAzRjsKKzQwQTMgMDAzRjsKKzQwQTkgMDAzRjsKKzQwQUYgMDAzRjsKKzQwQjUgMDAzRjsKKzQwQkIgMDAzRjsKKzQwQzEgMDAzRjsKKzQwQzcgMDAzRjsKKzQwQ0QgMDAzRjsKKzQwRDMgMDAzRjsKKzQwRDkgMDAzRjsKKzQwREYgMDAzRjsKKzQwRTQgMDAzRjsKKzQwRUEgMDAzRjsKKzQwRjAgMDAzRjsKKzQwRjYgMDAzRjsKKzQwRkMgMDAzRjsKKzQxMDIgMDAzRjsKKzQxMDggMDAzRjsKKzQxMEUgMDAzRjsKKzQxMTQgMDAzRjsKKzQxMUEgMDAzRjsKKzQxMjAgMDAzRjsKKzQxMjYgMDAzRjsKKzQxMkMgMDAzRjsKKzQxMzEgMDAzRjsKKzQxMzcgMDAzRjsKKzQxM0QgMDAzRjsKKzQxNDMgMDAzRjsKKzQxNDkgMDAzRjsKKzQxNEYgMDAzRjsKKzQxNTUgMDAzRjsKKzQxNUIgMDAzRjsKKzQxNjEgMDAzRjsKKzQxNjcgMDAzRjsKKzQxNkQgMDAzRjsKKzQxNzMgMDAzRjsKKzQxNzkgMDAzRjsKKzQxN0YgMDAzRjsKKzQxODUgMDAzRjsKKzQxOEIgMDAzRjsKKzQxOTEgMDAzRjsKKzQxOTcgMDAzRjsKKzQxOUQgMDAzRjsKKzQxQTMgMDAzRjsKKzQxQTkgMDAzRjsKKzQxQUYgMDAzRjsKKzQxQjUgMDAzRjsKKzQxQkIgMDAzRjsKKzQxQzEgMDAzRjsKKzQxQzcgMDAzRjsKKzQxQ0QgMDAzRjsKKzQxRDMgMDAzRjsKKzQxRDkgMDAzRjsKKzQxREYgMDAzRjsKKzQxRTUgMDAzRjsKKzQxRUIgMDAzRjsKKzQxRjEgMDAzRjsKKzQxRjcgMDAzRjsKKzQxRkQgMDAzRjsKKzQyMDIgMDA0MTsKKzQyMDggMDAzRjsKKzQyMEUgMDAzRjsKKzQyMTQgMDAzRjsKKzQyMUEgMDAzRjsKKzQyMjAgMDAzRjsKKzQyMjYgMDAzRjsKKzQyMkIgMDAzRjsKKzQyMzEgMDAzRjsKKzQyMzcgMDAzRjsKKzQyM0QgMDAzRjsKKzQyNDMgMDAzRjsKKzQyNDkgMDAzRjsKKzQyNEYgMDAzRjsKKzQyNTUgMDAzRjsKKzQyNUIgMDAzRjsKKzQyNjEgMDAzRjsKKzQyNjcgMDAzRjsKKzQyNkQgMDAzRjsKKzQyNzMgMDAzRjsKKzQyNzkgMDAzRjsKKzQyN0YgMDAzRjsKKzQyODUgMDAzRjsKKzQyOEIgMDAzRjsKKzQyOTEgMDAzRjsKKzQyOTcgMDAzRjsKKzQyOUQgMDAzRjsKKzQyQTIgMDAzRjsKKzQyQTggMDAzRjsKKzQyQUUgMDAzRjsKKzQyQjQgMDAzRjsKKzQyQkEgMDAzRjsKKzQyQzAgMDAzRjsKKzQyQzYgMDAzRjsKKzQyQ0MgMDAzRjsKKzQyRDIgMDAzRjsKKzQyRDggMDAzRjsKKzQyREUgMDAzRjsKKzQyRTQgMDAzRjsKKzQyRUEgMDAzRjsKKzQyRjAgMDAzRjsKKzQyRjYgMDAzRjsKKzQyRkMgMDAzRjsKKzQzMDEgMDA0MTsKKzQzMDcgMDAzRjsKKzQzMEQgMDAzRjsKKzQzMTMgMDAzRjsKKzQzMTkgMDAzRjsKKzQzMUYgMDAzRjsKKzQzMjUgMDAzRjsKKzQzMkIgMDAzRjsKKzQzMzEgMDAzRjsKKzQzMzYgMDAzRjsKKzQzM0MgMDAzRjsKKzQzNDIgMDAzRjsKKzQzNDggMDAzRjsKKzQzNEUgMDAzRjsKKzQzNTQgMDAzRjsKKzQzNTkgMDA0MTsKKzQzNUYgMDAzRjsKKzQzNjUgMDAzRjsKKzQzNkIgMDAzRjsKKzQzNzEgMDAzRjsKKzQzNzcgMDAzRjsKKzQzN0QgMDAzRjsKKzQzODMgMDAzRjsKKzQzODkgMDAzRjsKKzQzOEYgMDAzRjsKKzQzOTUgMDAzRjsKKzQzOUIgMDAzRjsKKzQzQTEgMDAzRjsKKzQzQTcgMDAzRjsKKzQzQUQgMDAzRjsKKzQzQjMgMDAzRjsKKzQzQjkgMDAzRjsKKzQzQkYgMDAzRjsKKzQzQzUgMDAzRjsKKzQzQ0IgMDAzRjsKKzQzRDEgMDAzRjsKKzQzRDYgMDAzRjsKKzQzREIgMDAzRjsKKzQzRTEgMDAzRjsKKzQzRTcgMDAzRjsKKzQzRUQgMDAzRjsKKzQzRjMgMDAzRjsKKzQzRjkgMDAzRjsKKzQzRkYgMDAzRjsKKzQ0MDUgMDAzRjsKKzJGOTg0IDAwMjE7Cis0NDEwIDAwM0Y7Cis0NDE2IDAwM0Y7Cis0NDFDIDAwM0Y7Cis0NDIyIDAwM0Y7Cis0NDI4IDAwM0Y7Cis0NDJFIDAwM0Y7Cis0NDM0IDAwM0Y7Cis0NDNBIDAwM0Y7Cis0NDQwIDAwM0Y7Cis0NDQ2IDAwM0Y7Cis0NDRDIDAwM0Y7Cis0NDUyIDAwM0Y7Cis0NDU4IDAwM0Y7Cis0NDVFIDAwM0Y7Cis0NDY0IDAwM0Y7Cis0NDZBIDAwM0Y7Cis0NDZGIDAwM0Y7Cis0NDc1IDAwM0Y7Cis0NDdCIDAwM0Y7Cis0NDgxIDAwM0Y7Cis0NDg3IDAwM0Y7Cis0NDhEIDAwM0Y7Cis0NDkzIDAwM0Y7Cis0NDk5IDAwM0Y7Cis0NDlGIDAwM0Y7Cis0NEE1IDAwM0Y7Cis0NEFCIDAwM0Y7Cis0NEIxIDAwM0Y7Cis0NEI3IDAwM0Y7Cis0NEJEIDAwM0Y7Cis0NEMzIDAwM0Y7Cis0NEM5IDAwM0Y7Cis0NENGIDAwM0Y7Cis0NEQ1IDAwM0Y7Cis0NERCIDAwM0Y7Cis0NEUxIDAwM0Y7Cis0NEU3IDAwM0Y7Cis0NEVEIDAwM0Y7Cis0NEYzIDAwM0Y7Cis0NEY5IDAwM0Y7Cis0NEZGIDAwM0Y7Cis0NTA1IDAwM0Y7Cis0NTBCIDAwM0Y7Cis0NTExIDAwM0Y7Cis0NTE3IDAwM0Y7Cis0NTFEIDAwM0Y7Cis0NTIzIDAwM0Y7Cis0NTI5IDAwM0Y7Cis0NTJFIDAwM0Y7Cis0NTM0IDAwM0Y7Cis0NTNBIDAwM0Y7Cis0NTQwIDAwM0Y7Cis0NTQ2IDAwM0Y7Cis0NTRDIDAwM0Y7Cis0NTUyIDAwM0Y7Cis0NTU4IDAwM0Y7Cis0NTVEIDAwNDE7Cis0NTYyIDAwM0Y7Cis0NTY4IDAwM0Y7Cis0NTZEIDAwM0Y7Cis0NTczIDAwM0Y7Cis0NTc5IDAwM0Y7Cis0NTdGIDAwM0Y7Cis0NTg1IDAwM0Y7Cis0NThCIDAwM0Y7Cis0NTkxIDAwM0Y7Cis0NTk3IDAwM0Y7Cis0NTlEIDAwM0Y7Cis0NUEzIDAwM0Y7Cis0NUE5IDAwM0Y7Cis0NUFGIDAwM0Y7Cis0NUI1IDAwM0Y7Cis0NUJCIDAwM0Y7Cis0NUMxIDAwM0Y7Cis0NUM3IDAwM0Y7Cis0NUNEIDAwM0Y7Cis0NUQzIDAwM0Y7Cis0NUQ4IDAwM0Y7Cis0NURFIDAwM0Y7Cis0NUU0IDAwM0Y7Cis0NUVBIDAwM0Y7Cis0NUYwIDAwM0Y7Cis0NUY2IDAwM0Y7Cis0NUZCIDAwM0Y7Cis0NjAxIDAwM0Y7Cis0NjA3IDAwM0Y7Cis0NjBEIDAwM0Y7Cis0NjEzIDAwM0Y7Cis0NjE5IDAwM0Y7Cis0NjFGIDAwM0Y7Cis0NjI1IDAwM0Y7Cis0NjJCIDAwM0Y7Cis0NjMxIDAwM0Y7Cis0NjM2IDAwM0Y7Cis0NjNDIDAwM0Y7Cis0NjQyIDAwM0Y7Cis0NjQ4IDAwM0Y7Cis0NjRFIDAwM0Y7Cis0NjU0IDAwM0Y7Cis0NjVBIDAwM0Y7Cis0NjYwIDAwM0Y7Cis0NjY2IDAwM0Y7Cis0NjZDIDAwM0Y7Cis0NjcyIDAwM0Y7Cis0Njc4IDAwM0Y7Cis0NjdFIDAwM0Y7Cis0Njg0IDAwM0Y7Cis0NjhBIDAwM0Y7Cis0NjkwIDAwM0Y7Cis0Njk2IDAwM0Y7Cis0NjlDIDAwM0Y7Cis0NkEyIDAwM0Y7Cis0NkE4IDAwM0Y7Cis0NkFFIDAwM0Y7Cis0NkI0IDAwM0Y7Cis0NkJBIDAwM0Y7Cis0NkJGIDAwM0Y7Cis0NkM1IDAwM0Y7Cis0NkNBIDAwM0Y7Cis0NkQwIDAwM0Y7Cis0NkQ2IDAwM0Y7Cis0NkRDIDAwM0Y7Cis0NkUyIDAwM0Y7Cis0NkU4IDAwM0Y7Cis0NkVFIDAwM0Y7Cis0NkY0IDAwM0Y7Cis0NkZBIDAwM0Y7Cis0NzAwIDAwM0Y7Cis0NzA2IDAwM0Y7Cis0NzBDIDAwM0Y7Cis0NzEyIDAwM0Y7Cis0NzE4IDAwM0Y7Cis0NzFFIDAwM0Y7Cis0NzI0IDAwM0Y7Cis0NzJBIDAwM0Y7Cis0NzMwIDAwM0Y7Cis0NzM2IDAwM0Y7Cis0NzNDIDAwM0Y7Cis0NzQyIDAwM0Y7Cis0NzQ4IDAwM0Y7Cis0NzRFIDAwM0Y7Cis0NzU0IDAwM0Y7Cis0NzVBIDAwM0Y7Cis0NzYwIDAwM0Y7Cis0NzY2IDAwM0Y7Cis0NzZDIDAwM0Y7Cis0NzcyIDAwM0Y7Cis0Nzc4IDAwM0Y7Cis0NzdFIDAwM0Y7Cis0Nzg0IDAwM0Y7Cis0NzhBIDAwM0Y7Cis0NzkwIDAwM0Y7Cis0Nzk2IDAwM0Y7Cis0NzlDIDAwM0Y7Cis0N0EyIDAwM0Y7Cis0N0E4IDAwM0Y7Cis0N0FFIDAwM0Y7Cis0N0I0IDAwM0Y7Cis0N0JBIDAwM0Y7Cis0N0MwIDAwM0Y7Cis0N0M2IDAwM0Y7Cis0N0NDIDAwM0Y7Cis0N0QyIDAwM0Y7Cis0N0Q4IDAwM0Y7Cis0N0RFIDAwM0Y7Cis0N0U0IDAwM0Y7Cis0N0VBIDAwM0Y7Cis0N0YwIDAwM0Y7Cis0N0Y2IDAwM0Y7Cis0N0ZDIDAwM0Y7Cis0ODAyIDAwM0Y7Cis0ODA4IDAwM0Y7Cis0ODBFIDAwM0Y7Cis0ODE0IDAwM0Y7Cis0ODFBIDAwM0Y7Cis0ODIwIDAwM0Y7Cis0ODI2IDAwM0Y7Cis0ODJDIDAwM0Y7Cis0ODMyIDAwM0Y7Cis0ODM4IDAwM0Y7Cis0ODNFIDAwM0Y7Cis0ODQ0IDAwM0Y7Cis0ODRBIDAwM0Y7Cis0ODUwIDAwM0Y7Cis0ODU2IDAwM0Y7Cis0ODVDIDAwM0Y7Cis0ODYyIDAwM0Y7Cis0ODY4IDAwM0Y7Cis0ODZFIDAwM0Y7Cis0ODc0IDAwM0Y7Cis0ODdBIDAwM0Y7Cis0ODgwIDAwM0Y7Cis0ODg2IDAwM0Y7Cis0ODhDIDAwM0Y7Cis0ODkyIDAwM0Y7Cis0ODk4IDAwM0Y7Cis0ODlFIDAwM0Y7Cis0OEE0IDAwM0Y7Cis0OEFBIDAwM0Y7Cis0OEIwIDAwM0Y7Cis0OEI2IDAwM0Y7Cis0OEJDIDAwM0Y7Cis0OEMyIDAwM0Y7Cis0OEM4IDAwM0Y7Cis0OENFIDAwM0Y7Cis0OEQ0IDAwM0Y7Cis0OERBIDAwM0Y7Cis0OEUwIDAwM0Y7Cis0OEU2IDAwM0Y7Cis0OEVDIDAwM0Y7Cis0OEYyIDAwM0Y7Cis0OEY4IDAwM0Y7Cis0OEZFIDAwM0Y7Cis0OTA0IDAwM0Y7Cis0OTBBIDAwM0Y7Cis0OTEwIDAwM0Y7Cis0OTE2IDAwM0Y7Cis0OTFDIDAwM0Y7Cis0OTIyIDAwM0Y7Cis0OTI4IDAwM0Y7Cis0OTJFIDAwM0Y7Cis0OTM0IDAwM0Y7Cis0OTNBIDAwM0Y7Cis0OTQwIDAwM0Y7Cis0OTQ2IDAwM0Y7Cis0OTRDIDAwM0Y7Cis0OTUyIDAwM0Y7Cis0OTU4IDAwM0Y7Cis0OTVFIDAwM0Y7Cis0OTY0IDAwM0Y7Cis0OTZBIDAwM0Y7Cis0OTcwIDAwM0Y7Cis0OTc2IDAwM0Y7Cis0OTdDIDAwM0Y7Cis0OTgyIDAwM0Y7Cis0OTg4IDAwM0Y7Cis0OThFIDAwM0Y7Cis0OTk0IDAwM0Y7Cis0OTk5IDAwM0Y7Cis0OTlGIDAwM0Y7Cis0OUE1IDAwM0Y7Cis0OUFCIDAwM0Y7Cis0OUIxIDAwM0Y7Cis0OUI3IDAwM0Y7Cis0OUJEIDAwM0Y7Cis0OUMzIDAwM0Y7Cis0OUM5IDAwM0Y7Cis0OUNGIDAwM0Y7Cis0OUQ1IDAwM0Y7Cis0OURCIDAwM0Y7Cis0OUUxIDAwM0Y7Cis0OUU2IDAwNDE7Cis0OUVDIDAwM0Y7Cis0OUYyIDAwM0Y7Cis0OUY4IDAwM0Y7Cis0OUZFIDAwM0Y7Cis0QTA0IDAwM0Y7Cis0QTBBIDAwM0Y7Cis0QTEwIDAwM0Y7Cis0QTE2IDAwM0Y7Cis0QTFDIDAwM0Y7Cis0QTIyIDAwM0Y7Cis0QTI4IDAwM0Y7Cis0QTJFIDAwM0Y7Cis0QTM0IDAwM0Y7Cis0QTNBIDAwM0Y7Cis0QTQwIDAwM0Y7Cis0QTQ2IDAwM0Y7Cis0QTRDIDAwM0Y7Cis0QTUyIDAwM0Y7Cis0QTU4IDAwM0Y7Cis0QTVFIDAwM0Y7Cis0QTY0IDAwM0Y7Cis0QTZBIDAwM0Y7Cis0QTZGIDAwM0Y7Cis0QTc1IDAwM0Y7Cis0QTdBIDAwM0Y7Cis0QTgwIDAwM0Y7Cis0QTg2IDAwM0Y7Cis0QThDIDAwM0Y7Cis0QTkyIDAwM0Y7Cis0QTk4IDAwM0Y7Cis0QTlFIDAwM0Y7Cis0QUE0IDAwM0Y7Cis0QUFBIDAwM0Y7Cis0QUIwIDAwM0Y7Cis0QUI1IDAwM0Y7Cis0QUJCIDAwM0Y7Cis0QUMxIDAwM0Y7Cis0QUM3IDAwM0Y7Cis0QUNEIDAwM0Y7Cis0QUQzIDAwM0Y7Cis0QUQ5IDAwM0Y7Cis0QURGIDAwM0Y7Cis0QUU1IDAwM0Y7Cis0QUVCIDAwM0Y7Cis0QUYxIDAwM0Y7Cis0QUY3IDAwM0Y7Cis0QUZEIDAwM0Y7Cis0QjAzIDAwM0Y7Cis0QjA5IDAwM0Y7Cis0QjBGIDAwM0Y7Cis0QjE1IDAwM0Y7Cis0QjFCIDAwM0Y7Cis0QjIxIDAwM0Y7Cis0QjI3IDAwM0Y7Cis0QjJEIDAwM0Y7CisyRkEwMyAwMDIxOworNEIzOCAwMDNGOworNEIzRSAwMDNGOworNEI0NCAwMDNGOworNEI0QSAwMDNGOworNEI1MCAwMDNGOworNEI1NiAwMDNGOworNEI1QyAwMDNGOworNEI2MiAwMDNGOworNEI2OCAwMDNGOworNEI2RSAwMDNGOworNEI3NCAwMDNGOworNEI3QSAwMDNGOworNEI4MCAwMDNGOworNEI4NiAwMDNGOworNEI4QyAwMDNGOworNEI5MiAwMDNGOworNEI5OCAwMDNGOworNEI5RSAwMDNGOworNEJBNCAwMDNGOworNEJBQSAwMDNGOworNEJCMCAwMDNGOworNEJCNiAwMDNGOworNEJCQyAwMDNGOworNEJDMiAwMDNGOworNEJDOCAwMDNGOworMkZBMDggMDAyMTsKKzRCRDMgMDAzRjsKKzRCRDkgMDAzRjsKKzRCREYgMDAzRjsKKzRCRTUgMDAzRjsKKzRCRUIgMDAzRjsKKzRCRjEgMDAzRjsKKzRCRjcgMDAzRjsKKzRCRkQgMDAzRjsKKzRDMDMgMDAzRjsKKzRDMDkgMDAzRjsKKzRDMEYgMDAzRjsKKzRDMTUgMDAzRjsKKzRDMUIgMDAzRjsKKzRDMjEgMDAzRjsKKzRDMjcgMDAzRjsKKzRDMkQgMDAzRjsKKzRDMzMgMDAzRjsKKzRDMzkgMDAzRjsKKzRDM0YgMDAzRjsKKzRDNDUgMDAzRjsKKzRDNEIgMDAzRjsKKzRDNTEgMDAzRjsKKzRDNTcgMDAzRjsKKzRDNUQgMDAzRjsKKzRDNjMgMDAzRjsKKzRDNjkgMDAzRjsKKzRDNkYgMDAzRjsKKzRDNzUgMDAzRjsKKzRDN0IgMDAzRjsKKzRDODEgMDAzRjsKKzRDODcgMDAzRjsKKzRDOEQgMDAzRjsKKzRDOTMgMDAzRjsKKzRDOTkgMDAzRjsKKzRDOUYgMDAzRjsKKzRDQTUgMDAzRjsKKzRDQUIgMDAzRjsKKzRDQjEgMDAzRjsKKzRDQjcgMDAzRjsKKzRDQkQgMDAzRjsKKzRDQzMgMDAzRjsKKzRDQzkgMDAzRjsKKzRDQ0UgMDA0MTsKKzRDRDQgMDAzRjsKKzRDREEgMDAzRjsKKzRDRTAgMDAzRjsKKzRDRTYgMDAzRjsKKzRDRUMgMDAzRjsKKzRDRjEgMDAzRjsKKzRDRjcgMDAzRjsKKzRDRkMgMDAzRjsKKzREMDIgMDAzRjsKKzREMDggMDAzRjsKKzREMEUgMDAzRjsKKzREMTQgMDAzRjsKKzREMUEgMDAzRjsKKzREMjAgMDAzRjsKKzREMjYgMDAzRjsKKzREMkMgMDAzRjsKKzREMzIgMDAzRjsKKzREMzggMDAzRjsKKzREM0UgMDAzRjsKKzRENDQgMDAzRjsKKzRENEEgMDAzRjsKKzRENTAgMDAzRjsKKzJGQTE2IDAwMjE7Cis0RDVCIDAwM0Y7Cis0RDYxIDAwM0Y7Cis0RDY3IDAwM0Y7Cis0RDZEIDAwM0Y7Cis0RDczIDAwM0Y7Cis0RDc5IDAwM0Y7Cis0RDdGIDAwM0Y7Cis0RDg1IDAwM0Y7Cis0RDhCIDAwM0Y7Cis0RDkxIDAwM0Y7Cis0RDk3IDAwM0Y7Cis0RDlEIDAwM0Y7Cis0REEzIDAwM0Y7Cis0REE5IDAwM0Y7Cis0REFGIDAwM0Y7Cis0REI1IDAwM0Y7CisyMDAwNSAwMDNGOworMkY5RDkgMDAzRjsKKzJGODYxIDAwM0Y7CisyRjg4OSAwMDNGOworRkFDRiAwMDNGOworMkY5ODkgMDAzRjsKKzJGOEYwIDAwM0Y7CisyRjkxMCAwMDNGOworMkY5MjcgMDAzRjsKKzJGOTQyIDAwM0Y7CisyRjk1MiAwMDNGOworMkY5NjEgMDAzRjsKKzJGOTczIDAwM0Y7CisyRjk4NyAwMDNGOworMkY5QUQgMDAzRjsKKzJGOUNDIDAwM0Y7CisyRjlFNSAwMDNGOworMkY5RkIgMDAzRjsKKzJGQTEzIDAwM0Y7CisyQTZEMyAwMDNGOworRTAwMSAwMDNGOworRjhGQiAwMDNGOworQzAwMDAgMDAzRjsKK0UwMDA1IDAwM0Y7CitGMDAwNSAwMDNGOworRjAwRkQgMDAzRjsKK0ZGRjA1IDAwM0Y7CitGRkZGRCAwMDNGOworMTAwMDA1IDAwM0Y7CisxMDAwRkQgMDAzRjsKKzEwRkYwNSAwMDNGOworMTBGRkZEIDAwM0Y7CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvQ29sbGF0aW9uVGVzdF9TSElGVEVEX1NUVUIudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL0NvbGxhdGlvblRlc3RfU0hJRlRFRF9TVFVCLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGZlOTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL0NvbGxhdGlvblRlc3RfU0hJRlRFRF9TVFVCLnR4dApAQCAtMCwwICsxLDQxMDMgQEAKKzIwMDYgMDAyMTsKK0ZGNDAgMDAyMTsKKzAyRDggMDAyMTsKKzFGQkYgMDMzNCAwMzAwOworMUZGRSAwMzQyIDAzMzQ7CisxRkMwIDAwM0Y7CitGRTMxIDAwMjE7CiswNTVEIDAwM0Y7CiswMDNCIDAwM0Y7CiswNzA2IDAwM0Y7CiswMDAxIDAwMjE7CiswMDgzIDAwMjE7CiswNDg5IDAwMjE7CiswNUFFIDAwMjE7CiswNkU3IDAwMjE7CisyMDYwIDAwMjE7CitGRTA3IDAwMjE7CisxRDE3NCAwMDIxOworMUZGRkYgMDAyMTsKK0UwMDI0IDAwMjE7CitFMDA0MiAwMDIxOworRTAwNjAgMDAyMTsKK0UwMDdFIDAwMjE7CitFMDExQyAwMDIxOworRTAxM0EgMDAyMTsKK0UwMTU4IDAwMjE7CitFMDE3NiAwMDIxOworRTAxOTQgMDAyMTsKK0UwMUIyIDAwMjE7CitFMDFEMCAwMDIxOworRTAxRUUgMDAyMTsKKzAwMDYgMDAzRjsKKzAwODkgMDAzRjsKKzA1OTUgMDAzRjsKKzA2MDAgMDAzRjsKKzA2RUQgMDAzRjsKKzIwNkIgMDAzRjsKK0ZFMEMgMDAzRjsKKzFEMTc5IDAwM0Y7Cis0RkZGRSAwMDNGOworRTAwMjkgMDAzRjsKK0UwMDQ3IDAwM0Y7CitFMDA2NSAwMDNGOworRTAxMDMgMDAzRjsKK0UwMTIxIDAwM0Y7CitFMDEzRiAwMDNGOworRTAxNUQgMDAzRjsKK0UwMTdCIDAwM0Y7CitFMDE5OSAwMDNGOworRTAxQjcgMDAzRjsKK0UwMUQ1IDAwM0Y7CisxMEZGRkYgMDAzRjsKKzIwM0QgMDAzRjsKKzE4MDkgMDAzRjsKKzE3RDQgMDAzRjsKKzIwNUIgMDAzRjsKKzIwMUEgMDAzRjsKKzIwN0QgMDAyMTsKK0ZFNDggMDAyMTsKKzE2OUIgMDAzRjsKKzI5OEEgMDAzRjsKKzJFMDIgMDAzRjsKK0ZFNDAgMDAzRjsKK0ZFM0IgMDAyMTsKKzMwMTkgMDAzRjsKK0ZGMEEgMDAzRjsKK0ZFNUYgMDAyMTsKKzIwNDMgMDAzRjsKKzIwNTQgMDAzRjsKKzJFMTIgMDAzRjsKKzA3MEIgMDAzRjsKKzBGMEEgMDAzRjsKKzEwNEUgMDAzRjsKKzAzNzQgMDAzRjsKKzAyQ0UgMDAzRjsKKzAyRUEgMDAzRjsKKzAyRkEgMDAzRjsKKzEzOTkgMDAzRjsKK0E3MEUgMDAzRjsKKzA5RkEgMDAzRjsKKzBGMDIgMDAzRjsKKzBGM0UgMDAzRjsKKzBGQ0MgMDAzRjsKKzE5RUQgMDAzRjsKKzE5RkMgMDAzRjsKKzIxMkUgMDAzRjsKKzIxOTIgMDAzRjsKKzIxOUQgMDAzRjsKKzIxQUMgMDAzRjsKKzIxQkMgMDAzRjsKKzIxQ0IgMDAzRjsKKzIxRDcgMDAzRjsKKzIxRTYgMDAzRjsKKzIxRjUgMDAzRjsKKzFEN0MzIDAwMjE7CisyMjA5IDAzMzQ7CitGQjI5IDAwMjE7CisyMjYwIDAwMjE7CitGRjVDIDAwM0Y7CisyMjE5IDAwM0Y7CisyMjI2IDAwM0Y7CisyMjM0IDAwM0Y7CisyMjQyIDAwM0Y7CisyMjZEIDAwMjE7CisyMjVCIDAwM0Y7CisyMjY2IDAwM0Y7CisyMjc4IDAwM0Y7CisyMkUxIDAwM0Y7CisyMjhBIDAwM0Y7CisyMjk1IDAwM0Y7CisyMkFDIDAwM0Y7CisyMkFGIDAwM0Y7CisyMkI2IDAwM0Y7CisyMkM1IDAwM0Y7CisyMkQ0IDAwM0Y7CisyMkU3IDAwM0Y7CisyMkZBIDAwM0Y7CisyMzA5IDAwM0Y7CisyMzE4IDAwM0Y7CisyMzI3IDAwM0Y7CisyMzM4IDAwM0Y7CisyMzQ3IDAwM0Y7CisyMzU2IDAwM0Y7CisyMzY1IDAwM0Y7CisyMzc0IDAwM0Y7CisyMzgzIDAwM0Y7CisyMzkyIDAwM0Y7CisyM0ExIDAwM0Y7CisyM0IwIDAwM0Y7CisyM0JGIDAwM0Y7CisyM0NFIDAwM0Y7CisyNDAxIDAwM0Y7CisyNDEwIDAwM0Y7CisyNDFGIDAwM0Y7CisyNDQ3IDAwM0Y7CisyNTBBIDAwM0Y7CisyNTE5IDAwM0Y7CisyNTI4IDAwM0Y7CisyNTM3IDAwM0Y7CisyNTQ2IDAwM0Y7CisyNTU1IDAwM0Y7CisyNTY0IDAwM0Y7CisyNTczIDAwM0Y7CisyNTgyIDAwM0Y7CisyNTkxIDAwM0Y7CitGRkVEIDAwMjE7CisyNUFFIDAwM0Y7CisyNUJEIDAwM0Y7CitGRkVFIDAwM0Y7CisyNURBIDAwM0Y7CisyNUU5IDAwM0Y7CisyNUY4IDAwM0Y7CisyNjA3IDAwM0Y7CisyNjE2IDAwM0Y7CisyNjI1IDAwM0Y7CisyNjNDIDAwM0Y7CisyNjRCIDAwM0Y7CisyNjVBIDAwM0Y7CisyNjY5IDAwM0Y7CisyNjdCIDAwM0Y7CisyNjkwIDAwM0Y7CisyNkEyIDAwM0Y7CisyNkIxIDAwM0Y7CisyNzEyIDAwM0Y7CisyNzIxIDAwM0Y7CisyNzMxIDAwM0Y7CisyNzQwIDAwM0Y7CisyNzUxIDAwM0Y7CisyNzY2IDAwM0Y7CisyNzc1IDAwM0Y7CisyN0E1IDAwM0Y7CisyN0I1IDAwM0Y7CisyN0M1IDAwM0Y7CisyN0REIDAwM0Y7CisyN0YwIDAwM0Y7CisyN0ZGIDAwM0Y7CisyOTBFIDAwM0Y7CisyOTFEIDAwM0Y7CisyOTJDIDAwM0Y7CisyOTNCIDAwM0Y7CisyOTRBIDAwM0Y7CisyOTU5IDAwM0Y7CisyOTY4IDAwM0Y7CisyOTc3IDAwM0Y7CisyOTlDIDAwM0Y7CisyOUFCIDAwM0Y7CisyOUJBIDAwM0Y7CisyOUM5IDAwM0Y7CisyOUQ4IDAwM0Y7CisyOUU3IDAwM0Y7CisyOUY2IDAwM0Y7CisyQTA3IDAwM0Y7CisyQTE3IDAwM0Y7CisyQTI2IDAwM0Y7CisyQTM1IDAwM0Y7CisyQTQ0IDAwM0Y7CisyQTUzIDAwM0Y7CisyQTYyIDAwM0Y7CisyQTcxIDAwM0Y7CisyQTgzIDAwM0Y7CisyQTkyIDAwM0Y7CisyQUExIDAwM0Y7CisyQUIwIDAwM0Y7CisyQUJGIDAwM0Y7CisyQUNFIDAwM0Y7CisyQUREIDAwMjE7CisyQUVCIDAwM0Y7CisyQUZBIDAwM0Y7CisyQjA5IDAwM0Y7CisyQ0U5IDAwM0Y7CisyODBEIDAwM0Y7CisyODFDIDAwM0Y7CisyODJCIDAwM0Y7CisyODNBIDAwM0Y7CisyODQ5IDAwM0Y7CisyODU4IDAwM0Y7CisyODY3IDAwM0Y7CisyODc2IDAwM0Y7CisyODg1IDAwM0Y7CisyODk0IDAwM0Y7CisyOEEzIDAwM0Y7CisyOEIyIDAwM0Y7CisyOEMxIDAwM0Y7CisyOEQwIDAwM0Y7CisyOERGIDAwM0Y7CisyOEVFIDAwM0Y7CisyOEZEIDAwM0Y7CisyNjM2IDAwM0Y7Cis0RENEIDAwM0Y7Cis0RERDIDAwM0Y7Cis0REVCIDAwM0Y7Cis0REZBIDAwM0Y7CisxRDMwOSAwMDNGOworMUQzMTggMDAzRjsKKzFEMzI3IDAwM0Y7CisxRDMzNiAwMDNGOworMUQzNDUgMDAzRjsKKzFEMzU0IDAwM0Y7CitBNDlDIDAwM0Y7CitBNEFCIDAwM0Y7CitBNEJBIDAwM0Y7CisxMDEzOSAwMDNGOworMTAxODEgMDAzRjsKKzFEMDA2IDAwM0Y7CisxRDAxNSAwMDNGOworMUQwMjQgMDAzRjsKKzFEMDMzIDAwM0Y7CisxRDA0MiAwMDNGOworMUQwNTEgMDAzRjsKKzFEMDYwIDAwM0Y7CisxRDA2RiAwMDNGOworMUQwN0UgMDAzRjsKKzFEMDhEIDAwM0Y7CisxRDA5QyAwMDNGOworMUQwQUIgMDAzRjsKKzFEMEJBIDAwM0Y7CisxRDBDOSAwMDNGOworMUQwRDggMDAzRjsKKzFEMEU3IDAwM0Y7CisxRDEwMCAwMDNGOworMUQxMEYgMDAzRjsKKzFEMTFFIDAwM0Y7CisxRDEyRCAwMDNGOworMUQxM0MgMDAzRjsKKzFEMTRCIDAwM0Y7CisxRDE1OCAwMzM0IDFEMTY1OworMUQxNTggMDAzRjsKKzFEMThEIDAwM0Y7CisxRDE5QyAwMDNGOworMUQxQUYgMDAzRjsKKzFEMUI5IDAwMjE7CisxRDFDMiAwMDNGOworMUQxRDEgMDAzRjsKKzFEMjAyIDAwM0Y7CisxRDIxMSAwMDNGOworMUQyMjAgMDAzRjsKKzFEMjJGIDAwM0Y7CisxRDIzRSAwMDNGOworMkZGQSAwMDNGOworMzFDRCAwMDNGOworRkZGRCAwMDNGOworMTM3QiAwMDNGOworMTAxMTYgMDAzRjsKKzEwMTI1IDAwM0Y7CisxMDE0MCAwMDNGOworMTAxNTMgMDAzRjsKKzEwMTZBIDAwM0Y7CisxMDNENCAwMDNGOworMDMwMiAwMDNGOworMDMwRCAwMDIxOworMDMxRSAwMDIxOworMDMyRiAwMDIxOworMDMzNCAwNUE3OworMDMzNCAwNkU0OworMDMzNCAxRDE3RjsKKzA1OUQgMDMzNDsKKzA2RDggMDMzNDsKKzFEMTY3IDAzMzQ7CisxRDI0NCAwMzM0OworMDMzNCAwMzA4OworMDMzNCAwMzExOworMDMzNCAwMzIyOworMDMzNCAwMzM5OworMDMzNCAwMzREOworMDMzNCAwMzVEOworMDMzNCAwNDg2OworMDVCQyAwMzM0OworMDY1NyAwMzM0OworMDczNSAwMzM0OworMDc0NCAwMzM0OworMEIzQyAwMzM0OworMTAzNyAwMzM0OworMjBEMSAwMzM0OworMDMzOSAwMDIxOworMDM0RCAwMDIxOworMDM1RCAwMDIxOworMDQ4NiAwMDIxOworMDVCQyAwMDIxOworRkU3OCAwMDIxOworRkM2MyAwMDIxOworMDY1RSAwMDIxOworMDczQyAwMDIxOworMDkzQyAwMDIxOworMEEwMyAwMDIxOworMENCQyAwMDIxOworMEU0RSAwMDNGOworMEY3RSAwMDNGOworMTdDRiAwMDNGOworRkY5RSAwMDNGOworMjBEQSAwMDNGOworMjBFOCAwMDIxOworMzAwNSAwMDIxOworMzAzNSAwMDIxOworMzBGRCAwMzM0IDMwOTk7CitGRTY5IDAwMjE7CitGRkU1IDAwNjI7CiswRTNGIDAwNjI7CisyMEE0IDAwNjI7CisyMEFBIDAwNjI7CisyMEIwIDAwNjI7CisxRDdDRSAwMDIxOworMEFFNiAwMDIxOworMTgxMCAwMDIxOworMDZGMCAwMDYxOworMEYyMCAwMDYxOworMDk2NiAwMDYyOworMjQ3NCAwMDIxOworMDY2MSAwMDIxOworMTlEMSAwMDIxOworMTAzMjAgMDAyMTsKKzI0RkUgMDA0MTsKKzI0NkEgMDAyMTsKKzMzNjMgMDA2MjsKKzMzRUIgMDA2MjsKKzIxNTMgMDA0MTsKKzI0NkQgMDA2MTsKKzIxNTUgMDAzRjsKKzI0NkYgMDAyMTsKKzMzNjggMDA2MjsKKzMzNjkgMDA2MjsKKzMzRjEgMDA2MjsKKzMzRjIgMDA2MjsKKzI0RjUgMDA0MTsKKzBCRTcgMDA2MTsKKzEwMTA3IDAwNjE7CiswMEI5IDAwNjI7CisxMDE1OCAwMDYyOworMUQ3REEgMDAyMTsKKzEwNEEyIDAwM0Y7CiswRjIyIDAwM0Y7CisyNDg3IDAwM0Y7CiszMjUxIDAwNDE7CisyMTU0IDAwM0Y7CiszMzcwIDAwNDE7CiszMjU3IDAwNDE7CitGRjEyIDAwNDE7CiswNjYyIDAwNDE7CisxOUQyIDAwNDE7CisxMDNEMiAwMDQxOworMEM2OCAwMDYyOworMzJDMSAwMDYyOworMjRGNyAwMDNGOworMEM2OSAwMDIxOworMTBBNDIgMDAyMTsKKzMyNUQgMDA0MTsKKzMyQjIgMDA0MTsKKzFEN0QxIDAwNDE7CiswOUU5IDAwNDE7CisxMDQzIDAwNDE7CiswNkYzIDAwNjI7CiszM0UyIDAwNjI7CisyNEY4IDAwMjE7CiswQUVBIDAwM0Y7CisxODE0IDAwM0Y7CiszMkI5IDAwNDE7CiszMkJFIDAwNDE7CisyMDc0IDAwNjE7CiswRDZBIDAwNjE7CisyNDc3IDAwNjI7CiswRTU0IDAwNjI7CisyNDc4IDAwMjE7CiswNkY1IDAwMjE7CiswRUQ1IDAwMjE7CiszMkJGIDAwMjE7CisxRDdFNyAwMDQxOworMEE2QiAwMDQxOworMTdGNSAwMDQxOworMjc3QSAwMDYyOworMTAxNDMgMDA2MjsKKzFEN0RFIDAwMjE7CisxMDRBNiAwMDNGOworMEYyRiAwMDNGOworMUQ3RkMgMDA0MTsKKzBBRUMgMDA0MTsKKzE4MTYgMDA0MTsKKzBCRUMgMDA2MjsKKzMzNUUgMDA2MjsKKzIwNzcgMDAzRjsKKzE5NEQgMDAzRjsKK0ZGMTcgMDA2MTsKKzA2NjcgMDA2MTsKKzBFNTcgMDA2MTsKKzI0RkIgMDA2MjsKKzEwMTBEIDAwNjI7CisxRDdFMCAwMDNGOworMEE2RSAwMDIxOworMTdGOCAwMDIxOworMjc5MSAwMDYxOworMEM2RSAwMDYxOworMDAzOCAwMDYyOworMTlEOCAwMDYyOworMjQ3QyAwMDIxOworMDZGOSAwMDIxOworMEVEOSAwMDIxOworMUQ3RkYgMDA2MTsKKzA5RUYgMDA2MTsKKzE3RTkgMDA2MTsKKzA5NkYgMDA2MjsKKzMyQzggMDA2MjsKKzE2ODAgMDA2MTsKKzFGQ0UgMDA2MTsKK0ZFMzIgMDA2MTsKKzAzN0UgMDA2MTsKKzE2RUQgMDA2MTsKKzIwMjQgMDA2MTsKKzEzNjAgMDA2MTsKKzIwMUMgMDA2MTsKK0ZGNUIgMDA2MTsKKzI5OTAgMDA2MTsKK0ZFNDEgMDA2MTsKKzAwQjYgMDA2MTsKKzA2NkEgMDA2MTsKKzJFMDEgMDA2MTsKKzBERjQgMDA2MTsKKzE2NkQgMDA2MTsKKzAyRDYgMDA2MTsKKzEzOTAgMDA2MTsKK0E3MTQgMDA2MTsKKzBGMUEgMDA2MTsKKzE5RTQgMDA2MTsKKzIxMTQgMDA2MTsKKzIxOTUgMDA2MTsKKzIxQjYgMDA2MTsKKzIxRDQgMDA2MTsKKzIxRjIgMDA2MTsKKzFENzZGIDAwNjE7CisyMDdDIDAwNjE7CisyMjFDIDAwNjE7CisyMjM5IDAwNjE7CisyMjU2IDAwNjE7CisyMjc3IDAwNjE7CisyMkUzIDAwNjE7CisyMkIwIDAwNjE7CisyMkNBIDAwNjE7CisyMkYwIDAwNjE7CisyMzBFIDAwNjE7CisyMzJFIDAwNjE7CisyMzRDIDAwNjE7CisyMzZBIDAwNjE7CisyMzg4IDAwNjE7CisyM0E2IDAwNjE7CisyM0M0IDAwNjE7CisyNDA2IDAwNjE7CisyNDI0IDAwNjE7CisyNTBGIDAwNjE7CisyNTJEIDAwNjE7CisyNTRCIDAwNjE7CisyNTY5IDAwNjE7CisyNTg3IDAwNjE7CisyNUE0IDAwNjE7CisyNUMyIDAwNjE7CisyNURGIDAwNjE7CisyNUZEIDAwNjE7CisyNjFCIDAwNjE7CisyNjQxIDAwNjE7CisyNjVGIDAwNjE7CisyNjgwIDAwNjE7CisyNkE3IDAwNjE7CisyNzE3IDAwNjE7CisyNzM2IDAwNjE7CisyNzVBIDAwNjE7CisyNzlCIDAwNjE7CisyN0JBIDAwNjE7CisyN0UyIDAwNjE7CisyOTA0IDAwNjE7CisyOTIyIDAwNjE7CisyOTQwIDAwNjE7CisyOTVFIDAwNjE7CisyOTdDIDAwNjE7CisyOUIwIDAwNjE7CisyOUNFIDAwNjE7CisyOUVDIDAwNjE7CisyQTBEIDAwNjE7CisyQTJCIDAwNjE7CisyQTQ5IDAwNjE7CisyQTY3IDAwNjE7CisyQTg4IDAwNjE7CisyQUE2IDAwNjE7CisyQUM0IDAwNjE7CisyQUUyIDAwNjE7CisyQjAwIDAwNjE7CisyODA0IDAwNjE7CisyODIyIDAwNjE7CisyODQwIDAwNjE7CisyODVFIDAwNjE7CisyODdDIDAwNjE7CisyODlBIDAwNjE7CisyOEI4IDAwNjE7CisyOEQ2IDAwNjE7CisyOEY0IDAwNjE7Cis0REM0IDAwNjE7Cis0REUyIDAwNjE7CisxRDMwMCAwMDYxOworMUQzMUUgMDA2MTsKKzFEMzNDIDAwNjE7CitBNDkzIDAwNjE7CitBNEIxIDAwNjE7CisxMDEzRiAwMDYxOworMUQwMEMgMDA2MTsKKzFEMDJBIDAwNjE7CisxRDA0OCAwMDYxOworMUQwNjYgMDA2MTsKKzFEMDg0IDAwNjE7CisxRDBBMiAwMDYxOworMUQwQzAgMDA2MTsKKzFEMERFIDAwNjE7CisxRDEwNiAwMDYxOworMUQxMjQgMDA2MTsKKzFEMTQyIDAwNjE7CisxRDE1OSAwMDYxOworMUQxQTAgMDA2MTsKKzFEMUMyIDAwNjE7CisxRDIwMiAwMDYxOworMUQyMjAgMDA2MTsKKzFEMjNFIDAwNjE7CiszMUNEIDAwNjE7CisxMzdCIDAwNjE7CisxMDEyNSAwMDYxOworMTAxNTMgMDA2MTsKKzEwM0Q0IDAwNjE7CiswMDFEIDAwNjE7CiswMDlCIDAwNjE7CiswNUE3IDAwNjE7CiswNkRFIDAwNjE7CisyMDBFIDAwNjE7CitGRTAwIDAwNjE7CisxRDE2RCAwMDYxOworMUQxQUIgMDA2MTsKK0RGRkZFIDAwNjE7CitFMDAzQiAwMDYxOworRTAwNTkgMDA2MTsKK0UwMDc3IDAwNjE7CitFMDExNSAwMDYxOworRTAxMzMgMDA2MTsKK0UwMTUxIDAwNjE7CitFMDE2RiAwMDYxOworRTAxOEQgMDA2MTsKK0UwMUFCIDAwNjE7CitFMDFDOSAwMDYxOworRTAxRTcgMDA2MTsKKzFENUVFIDAwMjE7CisyMDAxIDAwNDE7CitGRTRDIDAwNDE7CiszMDlCIDAwNDE7CiswNjBDIDAwNDE7CiswNzA3IDAwNDE7CiswNTVFIDAwNDE7CiswMzg3IDAwNDE7CisxMDEwMiAwMDQxOworMjA4RSAwMDQxOworMjk4NSAwMDQxOworMkUxQyAwMDQxOworRkUzQSAwMDQxOworRkU2OCAwMDQxOworMjAzNiAwMDQxOworMDVCRSAwMDQxOworMEYxMCAwMDQxOworMDJDNyAwMDQxOworMDJGMyAwMDQxOworQTcwNyAwMDQxOworMEJGQSAwMDQxOworMEZDNCAwMDQxOworMTlGNSAwMDQxOworMjE0QyAwMDQxOworMjFBOCAwMDQxOworMjFDNyAwMDQxOworMjFFNSAwMDQxOworMUQ2REIgMDA0MTsKK0ZCMjkgMDA0MTsKK0ZGNUUgMDA0MTsKKzIyMkMgMDA0MTsKKzIyNEEgMDA0MTsKKzIyNjYgMDA0MTsKKzIyODggMDA0MTsKKzIyQUMgMDA0MTsKKzIyQkQgMDA0MTsKKzIyREIgMDA0MTsKKzIzMDEgMDA0MTsKKzIzMUYgMDA0MTsKKzIzM0YgMDA0MTsKKzIzNUQgMDA0MTsKKzIzN0IgMDA0MTsKKzIzOTkgMDA0MTsKKzIzQjcgMDA0MTsKKzIzRDUgMDA0MTsKKzI0MTcgMDA0MTsKK0ZGRTggMDA0MTsKKzI1MjAgMDA0MTsKKzI1M0UgMDA0MTsKKzI1NUMgMDA0MTsKKzI1N0EgMDA0MTsKKzI1OTggMDA0MTsKKzI1QjUgMDA0MTsKKzI1RDIgMDA0MTsKKzI1RjAgMDA0MTsKKzI2MEUgMDA0MTsKKzI2MkMgMDA0MTsKKzI2NTIgMDA0MTsKKzI2NzMgMDA0MTsKKzI2OTcgMDA0MTsKKzI3MDggMDA0MTsKKzI3MjkgMDA0MTsKKzI3NDcgMDA0MTsKKzI3NkQgMDA0MTsKKzI3QUMgMDA0MTsKKzI3RDUgMDA0MTsKKzI3RjcgMDA0MTsKKzI5MTUgMDA0MTsKKzI5MzMgMDA0MTsKKzI5NTEgMDA0MTsKKzI5NkYgMDA0MTsKKzI5QTMgMDA0MTsKKzI5QzEgMDA0MTsKKzI5REYgMDA0MTsKKzI5RkYgMDA0MTsKKzJBMUUgMDA0MTsKKzJBM0MgMDA0MTsKKzJBNUEgMDA0MTsKKzJBN0IgMDA0MTsKKzJBOTkgMDA0MTsKKzJBQjcgMDA0MTsKKzJBRDUgMDA0MTsKKzJBRjMgMDA0MTsKKzJCMTEgMDA0MTsKKzI4MTUgMDA0MTsKKzI4MzMgMDA0MTsKKzI4NTEgMDA0MTsKKzI4NkYgMDA0MTsKKzI4OEQgMDA0MTsKKzI4QUIgMDA0MTsKKzI4QzkgMDA0MTsKKzI4RTcgMDA0MTsKKzI2OEYgMDA0MTsKKzRERDUgMDA0MTsKKzRERjMgMDA0MTsKKzFEMzExIDAwNDE7CisxRDMyRiAwMDQxOworMUQzNEQgMDA0MTsKK0E0QTQgMDA0MTsKK0E0QzIgMDA0MTsKKzEwMTg5IDAwNDE7CisxRDAxRCAwMDQxOworMUQwM0IgMDA0MTsKKzFEMDU5IDAwNDE7CisxRDA3NyAwMDQxOworMUQwOTUgMDA0MTsKKzFEMEIzIDAwNDE7CisxRDBEMSAwMDQxOworMUQwRUYgMDA0MTsKKzFEMTE3IDAwNDE7CisxRDEzNSAwMDQxOworMUQxNTMgMDA0MTsKKzFEMTkzIDAwNDE7CisxRDFCNSAwMDQxOworMUQxRDMgMDA0MTsKKzFEMjEzIDAwNDE7CisxRDIzMSAwMDQxOworMzFDMCAwMDQxOworMDlGOSAwMDQxOworMTAxMTggMDA0MTsKKzEwMTQ0IDAwNDE7CisxMDE2QyAwMDQxOworMDAxMCAwMDQxOworMDA4RSAwMDQxOworMDU5QSAwMDQxOworMDYxMSAwMDQxOworMEYzNyAwMDQxOworRDgwMCAwMDQxOworRkUyMyAwMDQxOworMUQxN0UgMDA0MTsKKzZGRkZGIDAwNDE7CitFMDAyRSAwMDQxOworRTAwNEMgMDA0MTsKK0UwMDZBIDAwNDE7CitFMDEwOCAwMDQxOworRTAxMjYgMDA0MTsKK0UwMTQ0IDAwNDE7CitFMDE2MiAwMDQxOworRTAxODAgMDA0MTsKK0UwMTlFIDAwNDE7CitFMDFCQyAwMDQxOworRTAxREEgMDA0MTsKKzFENDAwIDAwMjE7CiswMEFBIDAwM0Y7CisxRUIzIDAwMjE7CiswMEM1IDAwMjE7CiswMTA0IDAwMjE7CisxRTAxIDAwMjE7CiswMDQxIDAzMDYgMDMzNCAwMzAxOworMDBFMiAwMzM0OworMDBFMiAwMzA5IDAzMzQ7CiswMDQxIDAzMDggMDMzNDsKKzAyMjYgMDMzNCAwMzA0OworMDIwMiAwMzM0OworMDMzMiAwMDQxOworMDMwQiAwMDQxOworMDMxNSAwMDQxOworMDMyNCAwMDQxOworMDMzNSAwMDQxOworMDM0QSAwMDQxOworMDM1QSAwMDQxOworMDQ4MyAwMDQxOworMDVCQiAwMDQxOworRkU3NiAwMDQxOworRkM1RiAwMDQxOworMDY1QiAwMDQxOworMDczOSAwMDQxOworMDc0OCAwMDQxOworMEEzQyAwMDQxOworMEMwMSAwMDQxOworMTBBMzkgMDA0MTsKKzBFQ0QgMDA0MTsKKzE3Q0QgMDA0MTsKKzMwMkYgMDA0MTsKKzIwREEgMDA0MTsKKzIwRTkgMDA0MTsKKzFENEVBIDAwNDE7CisxRDQ2OCAwMDQxOworMDEwMyAwMDQxOworMUVBNiAwMDQxOworMDFERSAwMDQxOworMDIwMyAwMDQxOworMUQ1ODYgMDA2MjsKKzAwQzAgMDA2MjsKKzAxREYgMDA2MjsKKzIxMDAgMDA2MjsKKzAwRTYgMDA0MTsKKzIxMDEgMDAyMTsKKzFEMDEgMDAyMTsKKzAyNTEgMDA0MTsKKzIwMDAgMDA2MjsKK0ZFNEIgMDA2MjsKKzFGQzAgMDA2MjsKKzA1NUQgMDA2MjsKKzA3MDYgMDA2MjsKKzAwQkYgMDA2MjsKKzAwQjcgMDA2MjsKKzEwMTAxIDAwNjI7CisyMDdFIDAwNjI7CisyOTg0IDAwNjI7CisyRTBEIDAwNjI7CiszMDE1IDAwNjI7CiswMDVDIDAwNjI7CisyMDM3IDAwNjI7CiswNTVGIDAwNjI7CiswRjBGIDAwNjI7CiswMkM2IDAwNjI7CiswMkYyIDAwNjI7CitBNzA2IDAwNjI7CiswQkY4IDAwNjI7CiswRkMzIDAwNjI7CisxOUY0IDAwNjI7CisyMTRBIDAwNjI7CisyMUE3IDAwNjI7CisyMUM2IDAwNjI7CisyMUU0IDAwNjI7CisyMjAyIDAwNjI7CisyMDhBIDAwNjI7CiswMDdFIDAwNjI7CisyMjJEIDAwNjI7CisyMjQ5IDAwNjI7CisyMjcxIDAwNjI7CisyMjg2IDAwNjI7CisyMkEyIDAwNjI7CisyMkJDIDAwNjI7CisyMkRBIDAwNjI7CisyMzAwIDAwNjI7CisyMzFFIDAwNjI7CisyMzNFIDAwNjI7CisyMzVDIDAwNjI7CisyMzdBIDAwNjI7CisyMzk4IDAwNjI7CisyM0I2IDAwNjI7CisyM0Q0IDAwNjI7CisyNDE2IDAwNjI7CisyNTAyIDAwNjI7CisyNTFGIDAwNjI7CisyNTNEIDAwNjI7CisyNTVCIDAwNjI7CisyNTc5IDAwNjI7CisyNTk3IDAwNjI7CisyNUI0IDAwNjI7CisyNUQxIDAwNjI7CisyNUVGIDAwNjI7CisyNjBEIDAwNjI7CisyNjJCIDAwNjI7CisyNjUxIDAwNjI7CisyNjcyIDAwNjI7CisyNjk2IDAwNjI7CisyNzA3IDAwNjI7CisyNzI3IDAwNjI7CisyNzQ2IDAwNjI7CisyNzZDIDAwNjI7CisyN0FCIDAwNjI7CisyN0Q0IDAwNjI7CisyN0Y2IDAwNjI7CisyOTE0IDAwNjI7CisyOTMyIDAwNjI7CisyOTUwIDAwNjI7CisyOTZFIDAwNjI7CisyOUEyIDAwNjI7CisyOUMwIDAwNjI7CisyOURFIDAwNjI7CisyOUZFIDAwNjI7CisyQTFEIDAwNjI7CisyQTNCIDAwNjI7CisyQTU5IDAwNjI7CisyQTdBIDAwNjI7CisyQTk4IDAwNjI7CisyQUI2IDAwNjI7CisyQUQ0IDAwNjI7CisyQUYyIDAwNjI7CisyQjEwIDAwNjI7CisyODE0IDAwNjI7CisyODMyIDAwNjI7CisyODUwIDAwNjI7CisyODZFIDAwNjI7CisyODhDIDAwNjI7CisyOEFBIDAwNjI7CisyOEM4IDAwNjI7CisyOEU2IDAwNjI7CisyNjhFIDAwNjI7Cis0REQ0IDAwNjI7Cis0REYyIDAwNjI7CisxRDMxMCAwMDYyOworMUQzMkUgMDA2MjsKKzFEMzRDIDAwNjI7CitBNEEzIDAwNjI7CitBNEMxIDAwNjI7CisxMDE4OCAwMDYyOworMUQwMUMgMDA2MjsKKzFEMDNBIDAwNjI7CisxRDA1OCAwMDYyOworMUQwNzYgMDA2MjsKKzFEMDk0IDAwNjI7CisxRDBCMiAwMDYyOworMUQwRDAgMDA2MjsKKzFEMEVFIDAwNjI7CisxRDExNiAwMDYyOworMUQxMzQgMDA2MjsKKzFEMTUyIDAwNjI7CisxRDE5MiAwMDYyOworMUQxQjQgMDA2MjsKKzFEMUQyIDAwNjI7CisxRDIxMiAwMDYyOworMUQyMzAgMDA2MjsKKzJGRkIgMDA2MjsKKzA5RjggMDA2MjsKKzEwMTE3IDAwNjI7CisxMDE0MSAwMDYyOworMTAxNkIgMDA2MjsKKzAwMEYgMDA2MjsKKzAwOEQgMDA2MjsKKzA1OTkgMDA2MjsKKzA2MTAgMDA2MjsKKzBGMzUgMDA2MjsKKzIwNkYgMDA2MjsKK0ZFMjEgMDA2MjsKKzFEMTdEIDAwNjI7Cis2RkZGRSAwMDYyOworRTAwMkQgMDA2MjsKK0UwMDRCIDAwNjI7CitFMDA2OSAwMDYyOworRTAxMDcgMDA2MjsKK0UwMTI1IDAwNjI7CitFMDE0MyAwMDYyOworRTAxNjEgMDA2MjsKK0UwMTdGIDAwNjI7CitFMDE5RCAwMDYyOworRTAxQkIgMDA2MjsKK0UwMUQ5IDAwNjI7CitGRjQyIDAwM0Y7CisyNEQxIDAwM0Y7CisxRDY3MSAwMDNGOworMUUwNCAwMzM0OworMDMwOSAwMDYyOworMDMyRSAwMDYyOworMDM1NCAwMDYyOworMDVCNSAwMDYyOworRkNGMyAwMDYyOworMDczMyAwMDYyOworMDk1MyAwMDYyOworMEQ4MyAwMDYyOworMTdDNyAwMDYyOworMjBENCAwMDYyOworMUQ0MUIgMDA2MTsKK0ZGMjIgMDA2MTsKKzFENDcgMDA2MTsKKzFENTUzIDAwNjI7CisxRTA3IDAwNjI7CisxRDZDIDAwNDE7CitGRjQzIDAwM0Y7CisxRDYyNCAwMDNGOworMUQ0NkEgMDAzRjsKKzAwRTcgMDAzRjsKKzAwNDMgMDMwNyAwMzM0OworMUQ0NTAgMDA2MTsKK0ZGMjMgMDA0MTsKKzFENjcyIDAwNDE7CiszMzg4IDAwM0Y7CisxRDQzNiAwMDYyOworMzNDNSAwMDNGOworMzNDNyAwMDYxOworMDE4NyAwMDYxOworMUQ1MjEgMDAyMTsKKzIxNDUgMDAyMTsKKzFENDggMDAyMTsKKzAxMEYgMDMzNDsKKzFFMEYgMDMzNDsKKzFENEI5IDAwNjE7CisyMTZFIDAwNjE7CisyNEI5IDAwNjE7CisxRTBFIDAwNjE7CisxRDU4OSAwMDYyOworMDEwRSAwMDYyOworMzM3OCAwMDNGOworMDFGMiAwMDYxOworMUQwNSAwMDQxOworMDE4QSAwMDNGOworRkY0NSAwMDNGOworMUQ2MjYgMDAzRjsKKzFENUE0IDAwM0Y7CisxRUJGIDAwM0Y7CiswMTE2IDAwM0Y7CiswMjA1IDAwM0Y7CiswMDQ1IDAzNDEgMDMzNDsKKzAwNjUgMDMwMiAwMzM0IDAzMDA7CiswMDY1IDAzMzQgMDMwODsKKzFFMUMgMDMzNDsKKzAwNjUgMDMzNCAwMzA5OworMDBDQSAwMzM0IDAzMjM7CisxRDU1NiAwMDYxOworMUQ0NkMgMDA2MTsKKzFEMzEgMDA0MTsKKzFFQzMgMDA0MTsKKzAxMTggMDA0MTsKKzFFQzcgMDA0MTsKKzAwNDUgMDA2MjsKKzFFQzAgMDA2MjsKKzAyMDYgMDA2MjsKKzAxREQgMDAzRjsKKzAyNTkgMDA2MjsKKzFEOTMgMDAzRjsKKzFEMDggMDAzRjsKKzAwNjYgMDAzRjsKKzFENjhGIDAwM0Y7CisxRDVBNSAwMDNGOworMUQ1MjMgMDA2MTsKKzFENDA1IDAwNjE7CisxRTFGIDAwNDE7CisxRDQzOSAwMDYyOworRkIwMSAwMDIxOworMDE5MiAwMDIxOworMUQ0MjAgMDAzRjsKKzFENjc2IDAwMjE7CiswMTFDIDAwMjE7CiswMDQ3IDAzMzQgMDMwNjsKKzAwNDcgMDMzNCAwMzA0OworMUQ1RjQgMDA0MTsKKzFENTcyIDAwNDE7CiswMTIwIDAwNjE7CisxRDY5MCAwMDYyOworMDEyMSAwMDYyOworMURBMiAwMDYxOworMDI2MCAwMDNGOworMDJFMCAwMDQxOworMUQ1QzEgMDAyMTsKKzFENEQ3IDAwMjE7CiswMjFGIDAwMjE7CiswMDQ4IDAzMzQgMDMwMjsKKzAwNDggMDMzNCAwMzIzOworMUQ0QkQgMDA2MTsKKzIxMEMgMDA2MTsKKzMzQ0EgMDAzRjsKKzFFMkEgMDA0MTsKKzAwNDggMDA2MjsKKzFFMkIgMDA2MjsKKzAyOUMgMDA2MjsKKzAyQkIgMDA2MjsKKzFENjkyIDAwMjE7CisxRDU0MCAwMDIxOworMDBDRCAwMDIxOworMDEzMCAwMDIxOworMDA2OSAwMzAxIDAzMzQ7CiswMUQwIDAzMzQ7CiswMDQ5IDAzMjggMDMzNDsKKzAwNDkgMDMyMyAwMzM0OworMUQ1OEUgMDA2MTsKKzIxMTEgMDA2MTsKKzFENjIgMDA0MTsKKzFFMkUgMDA0MTsKKzFFQ0EgMDA0MTsKKzIxMTEgMDA2MjsKKzAxMjkgMDA2MjsKKzIxNjIgMDAzRjsKKzIxNjMgMDAzRjsKKzFEQTYgMDAzRjsKKzAxOTcgMDA2MjsKKzAxOTYgMDA2MjsKKzFENDhCIDAwM0Y7CisxRDQwOSAwMDNGOworMDEzNCAwMzM0OworMUQ1MjcgMDA0MTsKKzFENEE1IDAwNDE7CisxRDRGMyAwMDYyOworMDFGMCAwMDYyOworMDI1RiAwMDYxOworMUQ0MjQgMDAzRjsKKzFENURFIDAwMjE7CiswMUU4IDAwM0Y7CiswMTM3IDAzMzQ7CisxRDUyOCAwMDYxOworMUQ0M0UgMDA2MTsKKzMzODQgMDAzRjsKKzFENDU4IDAwNjI7CisxRDRGIDAwNjI7CiszMzkxIDAwNDE7CiszMzlFIDAwNjI7CisxRDBCIDAwNDE7CisyMTEzIDAwMjE7CiswMDRDIDAwMjE7CisxRDY0NyAwMDNGOworMUUzQyAwMDIxOworMDA0QyAwMzM0IDAzMjM7CiswMDZDIDAwNjE7CisxRDU5MSAwMDQxOworMUQ0NzMgMDA0MTsKKzFFMzYgMDA2MTsKKzFENEMxIDAwNjI7CiswMTNBIDAwNjI7CiswMUM5IDAwNjI7CiszM0QzIDAwNjE7CiswMjNEIDAwNDE7CisxREE5IDAwNDE7CisyMTdGIDAwMjE7CisyNERDIDAwM0Y7CisxRDYxNCAwMDNGOworMDA2RCAwMzM0IDAzMDc7CisyNEE4IDAwNDE7CisyNERDIDAwNDE7CisxRDYxNCAwMDQxOworMjE3RiAwMDYyOworMUQ2N0MgMDA2MjsKKzMzRDUgMDAyMTsKKzMzQUIgMDAyMTsKKzMzQkQgMDAyMTsKKzAyNzEgMDAyMTsKKzFENDVCIDAwM0Y7CisxRDY3RCAwMDIxOworMDE0NyAwMDIxOworMDA0RSAwMzAxIDAzMzQ7CiswMDZFIDAzMjcgMDMzNDsKKzFENDI3IDAwNjE7CitGRjJFIDAwNjE7CisyMDdGIDAwNjE7CisxRTQ3IDAwNjE7CisxRDY5NyAwMDYyOworMDE0NiAwMDYyOworMzM5QSAwMDYxOworMURCMCAwMDQxOworMDI3MiAwMDYyOworMDIzNSAwMDYxOworMUQ0RjggMDAyMTsKKzFENDc2IDAwMjE7CisyMDkyIDAwMjE7CisxRUQ2IDAwMjE7CisxRTRGIDAwMjE7CiswMEQ4IDAzMzQgMDM0MTsKKzAyMEYgMDAyMTsKKzFFQ0MgMDAyMTsKKzAwRjQgMDMzNDsKKzAwRjQgMDMwOSAwMzM0OworMDA0RiAwMzM0IDAzMEI7CiswMEQ1IDAzMzQgMDMwNDsKKzAwNkYgMDMwNCAwMzM0OworMDIwRCAwMzM0OworMDA0RiAwMzM0IDAzNDAgMDMxQjsKKzAwNEYgMDMzNCAwMzIzOworMUQ2MzAgMDA2MTsKKzFENUFFIDAwNjE7CiswMEQzIDAwNjE7CiswMUQyIDAwNjE7CiswMjJDIDAwNjE7CisxRTUzIDAwNjE7CisxRURDIDAwNjE7CisxRDRGOCAwMDYyOworMDBGMyAwMDYyOworMDIyRCAwMDYyOworMUVERCAwMDYyOworMUQwRiAwMDQxOworMDE4NiAwMDYxOworMUQxNiAwMDYyOworMDI3NyAwMDQxOworMUQ0OTEgMDAyMTsKKzIxMTkgMDAyMTsKKzFEM0UgMDAyMTsKKzFENDI5IDAwNjE7CitGRjMwIDAwNjE7CisxRDU2IDAwNjE7CisxRDUyRCAwMDYyOworMUU1NiAwMDYyOworMzNEQSAwMDYyOworMUQ3RCAwMDYyOworMURCMiAwMDYyOworMUQ2MzIgMDAzRjsKKzFENUIwIDAwM0Y7CisxRDRGQSAwMDQxOworMUQ0NDQgMDA0MTsKKzAwNTEgMDA2MjsKKzAxMzggMDA2MjsKKzFENUNCIDAwM0Y7CisxRDRFMSAwMDNGOworMDE1NiAwMDNGOworMDA3MiAwMzM0IDAzMEM7CiswMDcyIDAzMzQgMDMyMzsKKzFENDVGIDAwNjE7CitGRjMyIDAwNDE7CiswMkIzIDAwNDE7CisxRTVCIDAwNDE7CisxRDQyQiAwMDYyOworMDJCMyAwMDYyOworMDI4MCAwMDYxOworMUQxQSAwMDYyOworMDI3RCAwMDYyOworMjRBRSAwMDIxOworMDA1MyAwMDIxOworMjRDOCAwMDIxOworMDE1RSAwMDIxOworMDA3MyAwMzAyIDAzMzQ7CiswMDUzIDAzMzQgMDMyNzsKKzAwNzMgMDA0MTsKKzFENjlDIDAwNDE7CisxRDYxQSAwMDQxOworMUU2MCAwMDQxOworMUQ1NjQgMDA2MjsKKzAxNUMgMDA2MjsKKzAwREYgMDA0MTsKKzFEQjMgMDAzRjsKKzFEOEIgMDA0MTsKKzFENDJEIDAwMjE7CitGRjM0IDAwMjE7CisxRDU3IDAwMjE7CisxRTZGIDAwMjE7CisxRTZDIDAzMzQ7CisxRDQ2MSAwMDYxOworRkYzNCAwMDQxOworMUQ1NyAwMDQxOworMUU2RiAwMDQxOworMUQ1N0YgMDA2MjsKKzIxMjEgMDAzRjsKKzAyQTcgMDAzRjsKKzAxQUIgMDAzRjsKKzAyMzYgMDAzRjsKKzFENDJFIDAwM0Y7CisxRDY1MCAwMDIxOworMDBEOSAwMDNGOworMDFEQSAwMDNGOworMUU3QSAwMDNGOworMUVFRCAwMDNGOworMDA1NSAwMzQxIDAzMzQ7CiswMDU1IDAzMEEgMDMzNDsKKzAwNTUgMDMzNCAwMzA4IDAzMEM7CiswMTY4IDAzMzQgMDM0MTsKKzAwNTUgMDMwRiAwMzM0OworMDFBRiAwMzM0IDAzNDA7CisxRUU0IDAzMzQ7CisxRDQ2MiAwMDYxOworRkYzNSAwMDQxOworMUQ1OCAwMDQxOworMDBGQyAwMDQxOworMUU3OCAwMDQxOworMUVFOSAwMDQxOworMUU3NiAwMDQxOworMUQ1MTggMDA2MjsKKzAxREEgMDA2MjsKKzFFRUQgMDA2MjsKKzFEMUQgMDA2MjsKKzFEOTkgMDA0MTsKKzAxOUMgMDA2MTsKKzAxQjEgMDA2MTsKKzFENUNGIDAwMjE7CisxRDRFNSAwMDIxOworMUU3QyAwMDIxOworMUQ0MkYgMDA2MTsKK0ZGMzYgMDA2MTsKKzI0Q0IgMDA2MTsKKzFENjZCIDAwNjI7CisyMTc1IDAwNjE7CiszM0RFIDAwNjI7CiswMjhDIDAwNjE7CisxRDUzNCAwMDNGOworMUQ0QjIgMDAzRjsKKzFFODUgMDAyMTsKKzAxNzUgMDMzNDsKKzI0QjIgMDA0MTsKKzAwNTcgMDA0MTsKKzI0Q0MgMDA0MTsKKzFFODggMDA0MTsKKzFENjFFIDAwNjI7CiswMjhEIDAwM0Y7CisxRDRDRCAwMDNGOworMUQ2ODcgMDAyMTsKKzFFOEQgMDMzNDsKKzFENUQxIDAwNjE7CisxRDRFNyAwMDYxOworMUU4QyAwMDYxOworMUQ0N0YgMDA2MjsKKzIxNkIgMDAyMTsKKzFENjZFIDAwMjE7CisxRDVFQyAwMDIxOworMDE3NyAwMDNGOworMDA3OSAwMzM0IDAzMDE7CiswMDc5IDAzMDMgMDMzNDsKKzAwNzkgMDA2MTsKKzFENjZFIDAwNDE7CisxRDVFQyAwMDQxOworMUU4RiAwMDYxOworMUQ2NkUgMDA2MjsKKzFFRjggMDA2MjsKKzFENDMzIDAwMjE7CitGRjNBIDAwMjE7CisxREJCIDAwMjE7CiswMDVBIDAzMDEgMDMzNDsKKzFFOTUgMDMzNDsKKzFENTlGIDAwNDE7CisxRDRCNSAwMDQxOworMUU5MiAwMDYxOworMUQ0QjUgMDA2MjsKKzFEMjIgMDA0MTsKKzAyMjUgMDA2MjsKKzAxQjcgMDAzRjsKKzFEMjMgMDA2MTsKKzAyMUMgMDAyMTsKKzAxQkIgMDA2MTsKKzAxODQgMDA0MTsKKzAyRUUgMDA2MTsKKzFEMjQgMDA2MTsKKzAxQzAgMDA2MTsKKzAyQUMgMDA2MTsKKzFENzU2IDAwM0Y7CisxRjgwIDAwMjE7CisxRjhGIDAwMjE7CisxRkIxIDAwMjE7CisxRjAwIDAzNDAgMDMzNDsKKzAzQjEgMDMzNCAwMzQzIDAzNDU7CiswM0IxIDAzMTQgMDM0MCAwMzM0OworMDM5MSAwMzM0IDAzMTQgMDM0NSAwMzQyOworMDNCMSAwMzQ1IDAzMzQgMDMwMDsKKzFGQjMgMDAzRjsKKzFGMDggMDA0MTsKKzFGMDEgMDA0MTsKKzFGODkgMDA0MTsKKzFGQjMgMDA0MTsKKzFGODggMDA2MjsKKzFGQjkgMDA2MjsKKzFENUQgMDAzRjsKKzFENUQgMDA0MTsKKzFENzcyIDAwM0Y7CisxRDZGRSAwMDQxOworMjEzRSAwMDYyOworMUQ3NTkgMDAyMTsKKzFENzFGIDAwNDE7CisxRDdBRSAwMDIxOworMUYxQyAwMDIxOworMDNCNSAwMzEzIDAzMzQ7CiswM0I1IDAzMTQgMDMzNCAwMzAxOworMDM5NSAwMzQwIDAzMzQ7CisxRDcyMCAwMDYxOworMUYxQiAwMDYxOworMUQ3NUEgMDA2MjsKKzAzREIgMDAyMTsKKzFENkU3IDAwM0Y7CisxRDcwMSAwMDYyOworMUQ2RTggMDAzRjsKKzFGOUUgMDAyMTsKKzFGOTcgMDAyMTsKKzAzQjcgMDM0MyAwMzM0OworMDNCNyAwMzQzIDAzMDAgMDMzNCAwMzQ1OworMUZDQyAwMzEzIDAzMzQ7CisxRjI5IDAzNDAgMDMzNDsKKzAzOTcgMDMxNCAwMzQ1IDAzMzQ7CisxRkM2IDAzMzQ7CisxRDZFOCAwMDYxOworMUYyNiAwMDQxOworMUY5QiAwMDQxOworMUZDNiAwMDQxOworMUYyRSAwMDYyOworMUZDNyAwMDYyOworMDNGNCAwMDNGOworMUQ3MTcgMDA2MTsKKzFEN0ExIDAwNjE7CisxRDZGMyAwMDYyOworMUQ3OTggMDAyMTsKKzFGMzMgMDAyMTsKKzAzOTAgMDAyMTsKKzFGQkUgMDMzNCAwMzEzIDAzMDA7CisxRkJFIDAzMTQgMDMwMCAwMzM0OworMDM5OSAwMzQwIDAzMzQ7CisxRkJFIDAzMzQgMDMwOCAwMzQyOworMUQ3OTggMDA2MTsKKzFGMzMgMDA2MTsKKzAzOTAgMDA2MTsKKzFGMzIgMDA2MjsKKzAzRjMgMDAzRjsKKzFENkIxIDAwMjE7CisxRDc3OSAwMDQxOworMUQ2RUIgMDA2MjsKKzFENzI2IDAwM0Y7CisxRDc0MCAwMDYyOworMUQ2QjMgMDAyMTsKKzFENzlCIDAwNjE7CiszMzhEIDAwM0Y7CiswM0JEIDAwM0Y7CisxRDZDRSAwMDQxOworMDNCRSAwMDNGOworMUQ2Q0YgMDA0MTsKKzAzQkYgMDAzRjsKKzFGNEMgMDAzRjsKKzAzQkYgMDMzNCAwMzQzOworMDNCRiAwMzM0IDAzMTQgMDMwMTsKKzFGRjggMDMzNDsKKzFGNDQgMDA0MTsKKzFGRjggMDA0MTsKKzFGRjggMDA2MjsKKzFENkI3IDAwMjE7CisxRDcxQiAwMDQxOworMUQ3N0YgMDA2MjsKKzAzREYgMDA2MTsKKzFENkQyIDAwM0Y7CiswM0MxIDAzMzQgMDMxMzsKKzFENzgwIDAwNDE7CisxRDc0NiAwMDYyOworMUQ2RDMgMDAyMTsKKzFENkY0IDAwM0Y7CiswM0EzIDAwNjE7CisxRDZCQSAwMDYyOworMUQ3NDkgMDAzRjsKKzFENkY1IDAwNjE7CisxRDc0QSAwMDNGOworMUY1NSAwMDNGOworMUZFNiAwMDNGOworMDNDNSAwMzQzIDAzNDAgMDMzNDsKKzFGNTEgMDM0MiAwMzM0OworMUZFOCAwMzM0OworMUZFOSAwMzM0OworMUY1NCAwMDQxOworMDNEMyAwMDQxOworMUQ2RDYgMDA2MjsKKzFGRUEgMDA2MjsKKzFENzE5IDAwM0Y7CisxRDcxOSAwMDYxOworMUQ2MCAwMDQxOworMUQ2RDggMDAzRjsKKzFENzRDIDAwNDE7CisxRDdBNiAwMDYyOworMUQ3MTMgMDA2MTsKKzFENzMzIDAwNjI7CisxRDZGQSAwMDNGOworMUZBRSAwMDIxOworMUZBNyAwMDIxOworMDNDOSAwMzM0IDAzNDM7CiswM0M5IDAzMTMgMDM0NSAwMzAwIDAzMzQ7CisyMTI2IDAzNDUgMDMzNCAwMzEzOworMDNBOSAwMzM0IDAzMTQgMDM0MDsKKzFGNjEgMDM0NSAwMzM0OworMDNDOSAwMzQyIDAzMzQ7CisyMTI2IDAwNjE7CisxRkEyIDAwNDE7CisxRjZCIDAwNDE7CisxRkZBIDAwNDE7CisxRjYyIDAwNjI7CisxRkY0IDAwNjI7CisyQzgwIDAwMjE7CisyQzg2IDAwMjE7CisyQzhBIDAwMjE7CisyQzkwIDAwMjE7CisyQ0U0IDAwNjE7CisyQzk4IDAwNDE7CisyQ0JDIDAwNDE7CisyQ0EwIDAwNDE7CisyQ0E2IDAwNDE7CisyQ0FDIDAwNDE7CisyQ0JFIDAwNDE7CisyQ0MyIDAwNDE7CiswM0U0IDAwNDE7CiswM0U4IDAwNDE7CisyQ0NFIDAwNDE7CisyQ0Q0IDAwNDE7CiswM0VDIDAwNDE7CisyQ0RDIDAwNDE7CisyQ0I0IDAwNDE7CisyQ0UyIDAwNDE7CiswNEQwIDAzMzQ7CiswNEQyIDAzMzQ7CiswNERCIDAwMjE7CiswNEQ1IDAwM0Y7CiswNDMzIDAwM0Y7CiswNDkyIDAwNDE7CiswNDE0IDAwNDE7CiswNTAyIDAwNDE7CiswNDMzIDAzMDEgMDA0MTsKKzA0MzUgMDAzRjsKKzA0NTAgMDA0MTsKKzA0MzUgMDU5MSAwMzA2IDAwNjE7CiswNEMyIDAwM0Y7CiswNERDIDAwM0Y7CiswNDk2IDAwNDE7CiswNERFIDAwMjE7CiswNDU1IDAwNDE7CiswNDVEIDAwM0Y7CiswNDE4IDAwMDEgMDMwNiAwMDYxOworMDRFNCAwMDNGOworMDQwNiAwMDQxOworMDQwNyAwMDQxOworMDQxOSAwMDQxOworMDQ5QiAwMDNGOworMDQ5RiAwMDNGOworMUQyQiAwMDNGOworMDUwOCAwMDYxOworMDQzRCAwMDYxOworMDRDOCAwMDNGOworMDUwQiAwMDNGOworMDQzRSAwMzM0IDAzMDg7CiswNEU4IDAwMDEgMDMwOCAwMDYxOworMDRFQiAwMDYyOworMDQ4MCAwMDQxOworMDQyMSAwMDQxOworMDQyMiAwMDQxOworMDQwQiAwMDQxOworMDQzQSAwMzAxIDAwNDE7CiswNDIzIDAzMDQgMDMzNDsKKzA0NDMgMDMzNCAwMzA2OworMDQ0MyAwMzM0IDAzMDg7CiswNDQzIDAzMzQgMDMwQjsKKzA0QUUgMDA2MjsKKzA0MjQgMDA2MjsKKzA0QkEgMDA2MjsKKzA0N0MgMDA2MjsKKzA0QjQgMDA2MjsKKzA0RjUgMDA2MTsKKzA0Q0IgMDA0MTsKKzA0QkUgMDA0MTsKKzA0MjkgMDA0MTsKKzA0RjggMDAyMTsKKzA0NEMgMDA0MTsKKzA0NEQgMDA0MTsKKzA0RUMgMDA2MTsKKzA0NjQgMDAzRjsKKzA0NjggMDAzRjsKKzA0NzAgMDAzRjsKKzA0NzcgMDAyMTsKKzA0QTkgMDAzRjsKKzJDMDEgMDA2MTsKKzJDMDQgMDA2MTsKKzJDMDcgMDA2MTsKKzJDMEEgMDA2MTsKKzJDMEQgMDA2MTsKKzJDMTAgMDA2MTsKKzJDMTMgMDA2MTsKKzJDMTYgMDA2MTsKKzJDMTkgMDA2MTsKKzJDMUMgMDA2MTsKKzJDMUYgMDA2MTsKKzJDMjIgMDA2MTsKKzJDMjUgMDA2MTsKKzJDMjggMDA2MTsKKzJDMkIgMDA2MTsKKzJDMkUgMDA2MTsKKzEwQTEgMDA2MTsKKzEwQTMgMDA2MTsKKzEwQTUgMDA2MTsKKzEwQzEgMDA2MTsKKzEwQTggMDA2MTsKKzEwQUEgMDA2MTsKKzJEMEMgMDAzRjsKKzJEMEQgMDAzRjsKKzJEMEYgMDAzRjsKKzJEMTEgMDAzRjsKKzJEMjMgMDAzRjsKKzJEMTQgMDAzRjsKKzJEMTYgMDAzRjsKKzJEMTggMDAzRjsKKzJEMUEgMDAzRjsKKzJEMUMgMDAzRjsKKzJEMUUgMDAzRjsKKzJEMUYgMDAzRjsKKzJEMjUgMDAzRjsKKzEwRkEgMDAzRjsKKzA1MzMgMDA2MTsKKzA1NjYgMDAzRjsKKzA1NjkgMDAzRjsKKzA1NkMgMDAzRjsKKzA1NkYgMDAzRjsKKzA1NzIgMDAzRjsKK0ZCMTQgMDAzRjsKKzA1NzYgMDAzRjsKKzA1NzkgMDAzRjsKKzA1N0MgMDAzRjsKK0ZCMTYgMDAzRjsKKzA1NTEgMDA2MTsKKzA1NTQgMDA2MTsKKzA1RDAgMDAzRjsKK0ZCMzAgMDA2MTsKKzIxMzYgMDA0MTsKKzIxMzggMDAzRjsKKzA1RDQgMDA0MTsKKzA1RjAgMDAzRjsKKzA1RDggMDVCQyAwMzM0OworRkIzOSAwMDYyOworRkIzQiAwMDNGOworRkIzQyAwMDIxOworMDVERSAwMDYyOworMDVFMSAwMDQxOworRkI0MyAwMDIxOworMDVFNSAwMDYxOworMDVFOCAwMDQxOworRkIyQSAwMDNGOworMDVFQSAwNUJDIDAzMzQ7CiswNjc0IDAwNjI7CiswNjIzIDAwM0Y7CitGQjUxIDAwMjE7CitGRTg2IDAwNjE7CitGRTg4IDAwNjI7CitGRThDIDAwNjE7CitGQzk3IDAwNjI7CitGQ0RGIDAwM0Y7CitGQzlCIDAwNjI7CitGQkYzIDAwNjI7CitGQkY5IDAwM0Y7CitGQkY3IDAwM0Y7CitGRDNEIDAwNjE7CiswNjZFIDAwNjI7CitGQzlDIDAwNjE7CitGQzA3IDAwNjI7CitGQzA4IDAwNjE7CitGQzA5IDAwNjI7CitGQjUyIDAwNDE7CitGQjU2IDAwNjI7CiswNzUwIDAwNjI7CiswNzU2IDAwNjI7CitGRTk4IDAwNjE7CitGREEwIDAwNjI7CitGRDUzIDAwNjI7CitGQzcwIDAwNjI7CitGRDU1IDAwNjI7CitGQ0E1IDAwNjE7CitGRTlDIDAwMjE7CitGQzc2IDAwNjI7CitGQzc5IDAwNjI7CitGQjY5IDAwMjE7CitGQjVFIDAwM0Y7CitGQjY1IDAwMjE7CitGRTlEIDAwM0Y7CitGREE2IDAwNjI7CitGRDU4IDAwNjI7CitGRDAyIDAwNjI7CitGQjc1IDAwMjE7CitGQjdBIDAwM0Y7CitGQjdFIDAwM0Y7CitGRUE0IDAwNjE7CitGQ0FBIDAwNjE7CitGRDFDIDAwNjE7CitGRUE1IDAwNjI7CitGRDFGIDAwNjE7CiswNjg1IDAwNjI7CitGRUFCIDAwMjE7CitGQjg4IDAwNjI7CitGQjg0IDAwNjI7CitGQjg2IDAwNjI7CitGRUFEIDAwMjE7CitGRUFGIDAwMjE7CiswNjkyIDAwNjI7CitGQjhBIDAwMjE7CiswNzZCIDAwNjI7CitGRUIxIDAwNjI7CitGQzFEIDAwMjE7CitGQzFFIDAwNjI7CitGQ0U3IDAwNDE7CitGRDYyIDAwNjI7CitGQ0ZDIDAwNjI7CitGRDI1IDAwMjE7CitGRDJFIDAwNDE7CitGRDI3IDAwMjE7CitGRDI4IDAwMjE7CitGRDZEIDAwNjE7CitGRDFBIDAwNjE7CiswNzVDIDAwNjI7CitGRUI5IDAwNjI7CitGQ0IyIDAwNjI7CitGREYwIDAwNjI7CitGRDA1IDAwNjI7CitGRUJEIDAwNDE7CitGRDZFIDAwNjI7CitGRDJDIDAwNjE7CitGRDI0IDAwNjE7CitGRUMxIDAwM0Y7CitGQzI3IDAwMjE7CitGRDc0IDAwNjI7CitGRUM1IDAwM0Y7CitGQzI4IDAwNjI7CitGRUM5IDAwNjI7CitGQ0JCIDAwNjE7CitGRDEzIDAwNjE7CitGRUQwIDAwNjE7CitGQzJDIDAwNjI7CitGRDE2IDAwNjE7CiswNzVGIDAwNjI7CitGQ0JFIDAwNjE7CitGRDdEIDAwNjE7CitGQzMxIDAwNjI7CitGQjZEIDAwMjE7CitGQjcxIDAwMjE7CiswNzYxIDAwNjI7CitGRUQ1IDAwNjI7CitGREI0IDAwNjE7CitGQzdGIDAwNjE7CitGRURDIDAwNjE7CitGQzM4IDAwNjI7CitGQ0M3IDAwNDE7CitGQzNDIDAwNjI7CitGQzg0IDAwNjE7CitGQjhFIDAwNjI7CitGQkQ2IDAwNjE7CitGQjk1IDAwNjE7CitGQjlEIDAwNjE7CitGQjk5IDAwNjE7CiswNzY0IDAwNjI7CitGRUY2IDAwNjE7CitGRUZDIDAwNjE7CitGREJBIDAwNjE7CitGRDgwIDAwNjI7CitGRDg1IDAwNjI7CitGRDg3IDAwNjI7CitGQzQ0IDAwNjI7CitGRUU0IDAwMjE7CitGQzg4IDAwNjI7CitGREMwIDAwNjI7CitGRDhCIDAwNjI7CitGQzQ4IDAwMjE7CiswNzY1IDAwNjI7CitGRUU1IDAwNjI7CitGRDk3IDAwNjI7CitGRDk2IDAwNjI7CitGQzhDIDAwMjE7CitGQzhEIDAwNjI7CitGQzUwIDAwNjI7CitGQkEzIDAwNjE7CiswNzY3IDAwNjI7CitGRUVBIDAwNDE7CitGQzUyIDAwNjI7CitGQkFBIDAwM0Y7CiswNkMyIDAwM0Y7CiswNkQ1IDAwM0Y7CiswNjQ4IDAwNjE7CitGQkUxIDAwMjE7CitGQkQ4IDAwMjE7CiswNkM4IDAwNDE7CitGQkRGIDAwMjE7CitGQzVEIDAwMjE7CitGRUY0IDAwM0Y7CitGQ0RBIDAwM0Y7CitGQ0RDIDAwM0Y7CitGQ0YwIDAwNDE7CitGQ0RFIDAwM0Y7CiswNkNDIDAwM0Y7CiswNkNFIDAwM0Y7CiswNkQxIDAwM0Y7CitGQkIwIDAwNDE7CiswNzE0IDAwNjE7CiswNzE4IDAwNDE7CiswNzFEIDAwNDE7CiswNzIyIDAwNDE7CiswNzRGIDAwNDE7CiswNzgwIDAwNDE7CiswNzlDIDAwNDE7CiswN0EzIDAwNDE7CiswNzlCIDAwNDE7CiswNzhFIDAwNDE7CiswNzlGIDAwNDE7CiswNzk2IDAwNDE7CiswN0E5IDAwNDE7CiswN0FGIDAwNDE7CisyRDM0IDAwNDE7CisyRDNBIDAwNDE7CisyRDQwIDAwNDE7CisyRDQ2IDAwNDE7CisyRDRDIDAwNDE7CisyRDUyIDAwNDE7CisyRDU4IDAwNDE7CisyRDVFIDAwNDE7CisyRDYzIDAwNDE7CisxMjAzIDAwNDE7CisxMjA5IDAwNDE7CisxMjBGIDAwNDE7CisxMjE0IDAwNDE7CisxMjFBIDAwNDE7CisxMzgwIDAwNDE7CisxMjIxIDAwNDE7CisxMjI3IDAwNDE7CisxMjJEIDAwNDE7CisxMjMyIDAwNDE7CisyRDgzIDAwNDE7CisxMjNEIDAwNDE7CisxMjQyIDAwNDE7CisxMjQ4IDAwNDE7CisxMjUxIDAwNDE7CisxMjU4IDAwNDE7CisxMjYxIDAwNDE7CisxMjY3IDAwNDE7CisxMjY4IDAwNDE7CisxMjZFIDAwNDE7CisxMjc0IDAwNDE7CisxMjc5IDAwNDE7CisxMjdGIDAwNDE7CisxMjg0IDAwNDE7CisxMjhCIDAwNDE7CisxMjkzIDAwNDE7CisxMjk4IDAwNDE7CisxMjlFIDAwNDE7CisxMkEzIDAwNDE7CisxMkE4IDAwNDE7CisxMkFFIDAwNDE7CisxMkI1IDAwNDE7CisxMkJEIDAwNDE7CisxMkM1IDAwNDE7CisxMkNEIDAwNDE7CisxMkQzIDAwNDE7CisxMkRBIDAwNDE7CisyRDhCIDAwNDE7CisxMkU1IDAwNDE7CisxMkVCIDAwNDE7CisxMkYxIDAwNDE7CisxMkY3IDAwNDE7CisxMkZDIDAwNDE7CisxMzAxIDAwNDE7CisxMzA3IDAwNDE7CisxMzBDIDAwNDE7CisxMzEzIDAwNDE7CisxMzFCIDAwNDE7CisyRDk0IDAwNDE7CisxMzIzIDAwNDE7CisxMzI4IDAwNDE7CisxMzJFIDAwNDE7CisxMzMzIDAwNDE7CisxMzM4IDAwNDE7CisxMzNFIDAwNDE7CisxMzQ0IDAwNDE7CisxMzRBIDAwNDE7CisxMzg4IDAwNDE7CisxMzUyIDAwNDE7CisxMzhDIDAwNDE7CisxMzU5IDAwNDE7CisyREE0IDAwNDE7CisyREFCIDAwNDE7CisyREIyIDAwNDE7CisyREI5IDAwNDE7CisyREMwIDAwNDE7CisyREM2IDAwNDE7CisyRENEIDAwNDE7CisyREQ0IDAwNDE7CisyRERCIDAwNDE7CiswOTA1IDAwNDE7CiswOTBCIDAwNDE7CiswOTBGIDAwNDE7CiswOTE1IDA5M0MgMDMzNDsKKzA5MTcgMDA2MTsKKzA5NUIgMDMzNDsKKzA5MjEgMDAzRjsKKzA5MjQgMDAyMTsKKzA5MjkgMDA0MTsKKzA5MkQgMDA2MjsKKzA5MzAgMDA2MjsKKzA5MzcgMDAyMTsKKzA5M0YgMDAyMTsKKzA5NjIgMDAyMTsKKzA5NDkgMDAyMTsKKzA5ODUgMDA0MTsKKzA5OEIgMDA0MTsKKzA5OTMgMDA0MTsKKzA5OTkgMDA0MTsKKzA5OUYgMDA0MTsKKzA5REQgMDA0MTsKKzA5QTcgMDA2MTsKKzA5QUUgMDA2MTsKKzA5QjIgMDA2MjsKKzA5QkQgMDA2MjsKKzA5QzMgMDA2MjsKKzA5QzggMDA0MTsKKzA5RDcgMDAzRjsKKzBBMDUgMDAzRjsKKzBBMDggMDAzRjsKKzBBMTUgMDA0MTsKKzBBMTggMDA2MTsKKzBBNUIgMDA2MjsKKzBBMjIgMDA2MjsKKzBBMjggMDA2MjsKKzBBMkUgMDAzRjsKKzBBMzUgMDA0MTsKKzBBNDIgMDA0MTsKKzBBRDAgMDAzRjsKKzBBOEEgMDAzRjsKKzBBOEYgMDAzRjsKKzBBOTYgMDAzRjsKKzBBOUMgMDAzRjsKKzBBQTIgMDAzRjsKKzBBQTggMDAzRjsKKzBBQUYgMDAzRjsKKzBBQjcgMDAzRjsKKzBBQzAgMDAzRjsKKzBBRTMgMDAzRjsKKzBBQ0MgMDAzRjsKKzBCMDggMDA2MjsKKzBCNjEgMDA2MjsKKzBCMTYgMDA2MjsKKzBCMUMgMDA2MjsKKzBCNUMgMDA2MTsKKzBCMjUgMDA0MTsKKzBCMkMgMDA0MTsKKzBCMzIgMDA0MTsKKzBCMzggMDA0MTsKKzBCNDEgMDA0MTsKKzBCNDcgMEI1NiAwMDYxOworMEI0RCAwMDYxOworMEI4NyAwMDYxOworMEI5MCAwMDYxOworMEI5NSAwMDYyOworMEJBMyAwMDYyOworMEJBRiAwMDYyOworMEJCNSAwMDYyOworMEJCRiAwMDYyOworMEJDNyAwMDQxOworMEJDNiAwQkQ3IDAwMjE7CiswQzA2IDAwNDE7CiswQzYwIDAwNDE7CiswQzEyIDAwNDE7CiswQzE4IDAwNDE7CiswQzFFIDAwNDE7CiswQzI0IDAwNDE7CiswQzJCIDAwNDE7CiswQzMxIDAwNDE7CiswQzM4IDAwNDE7CiswQzQyIDAwNDE7CiswQzQ2IDA1OTEgMEM1NiAwMDYxOworMEM1NSAwMDIxOworMEM4OCAwMDNGOworMENFMSAwMDNGOworMEM5NCAwMDNGOworMEM5QSAwMDNGOworMENBMCAwMDNGOworMENBNiAwMDNGOworMENBRCAwMDNGOworMENCNSAwMDNGOworMENERSAwMDNGOworMENCRiAwQ0Q1IDAwNjI7CiswQ0M2IDAwMDEgMENDMiAwQ0Q1IDAwNjE7CiswQ0NBIDAwMjE7CiswQ0NDIDAwMjE7CiswRDA2IDAwNDE7CiswRDYwIDAwNDE7CiswRDEyIDAwNDE7CiswRDE4IDAwNDE7CiswRDFFIDAwNDE7CiswRDI0IDAwNDE7CiswRDJCIDAwNDE7CiswRDMxIDAwNDE7CiswRDM3IDAwNDE7CiswRDQxIDAwNDE7CiswRDQ3IDFEMTY1IDBEM0UgMDA2MTsKKzBENDYgMEQ1NyAwMDYxOworMEQ4NyAwMDYxOworMEQ4RCAwMDYxOworMEQ5MyAwMDYxOworMEQ5QyAwMDYxOworMERBMiAwMDYxOworMERBOCAwMDYxOworMERBRSAwMDYxOworMERCNSAwMDYxOworMERCQiAwMDYxOworMERDNCAwMDYxOworMEREMSAwMDIxOworMEREOSAwMDIxOworMEREQiAwMDIxOworMEREQyAwNTkxIDBEQ0EgMDA2MTsKKzBERjMgMDAyMTsKK0E4MDUgMDAyMTsKK0E4MEEgMDA0MTsKK0E4MTEgMDA0MTsKK0E4MTcgMDA0MTsKK0E4MUQgMDA0MTsKK0E4MjMgMDA0MTsKKzEwQTAxIDAwNDE7CisxMEExMCAwMDQxOworMTBBMTcgMDA0MTsKKzEwQTFFIDAwNDE7CisxMEEyNCAwMDQxOworMTBBMkEgMDA0MTsKKzEwQTMwIDAwNDE7CiswRTQwIDBFMDEgMDAzRjsKKzBFNDAgMEUwMiAwMDNGOworMEU0MCAwRTAzIDAwM0Y7CiswRTQwIDBFMDQgMDAzRjsKKzBFNDAgMEUwNSAwMDNGOworMEU0MCAwRTA2IDAwM0Y7CiswRTQwIDBFMDcgMDAzRjsKKzBFNDAgMEUwOCAwMDNGOworMEU0MCAwRTA5IDAwM0Y7CiswRTQwIDBFMEEgMDAzRjsKKzBFNDAgMEUwQiAwMDNGOworMEU0MCAwRTBDIDAwM0Y7CiswRTQwIDBFMEQgMDAzRjsKKzBFNDAgMEUwRSAwMDNGOworMEU0MCAwRTBGIDAwM0Y7CiswRTQwIDBFMTAgMDAzRjsKKzBFNDAgMEUxMSAwMDNGOworMEU0MCAwRTEyIDAwM0Y7CiswRTQwIDBFMTMgMDAzRjsKKzBFNDAgMEUxNCAwMDNGOworMEU0MCAwRTE1IDAwM0Y7CiswRTQwIDBFMTYgMDAzRjsKKzBFNDAgMEUxNyAwMDNGOworMEU0MCAwRTE4IDAwM0Y7CiswRTQwIDBFMTkgMDAzRjsKKzBFNDAgMEUxQSAwMDNGOworMEU0MCAwRTFCIDAwM0Y7CiswRTQwIDBFMUMgMDAzRjsKKzBFNDAgMEUxRCAwMDNGOworMEU0MCAwRTFFIDAwM0Y7CiswRTQwIDBFMUYgMDAzRjsKKzBFNDAgMEUyMCAwMDNGOworMEU0MCAwRTIxIDAwM0Y7CiswRTQwIDBFMjIgMDAzRjsKKzBFNDAgMEUyMyAwMDNGOworMEU0MCAwRTI0IDAwM0Y7CiswRTQwIDBFMjUgMDAzRjsKKzBFNDAgMEUyNiAwMDNGOworMEU0MCAwRTI3IDAwM0Y7CiswRTQwIDBFMjggMDAzRjsKKzBFNDAgMEUyOSAwMDNGOworMEU0MCAwRTJBIDAwM0Y7CiswRTQwIDBFMkIgMDAzRjsKKzBFNDAgMEUyQyAwMDNGOworMEU0MCAwRTJEIDAwM0Y7CiswRTQwIDBFMkUgMDAzRjsKKzBFMzAgMDAzRjsKKzBFMzQgMDA0MTsKKzBFMzkgMDA2MjsKKzBFNDAgMUQxNjUgMEUwNiAwMDYxOworMEU0MCAxRDE2NSAwRTEwIDAwNjE7CiswRTQwIDFEMTY1IDBFMUEgMDA2MTsKKzBFNDAgMUQxNjUgMEUyNCAwMDYxOworMEU0MCAxRDE2NSAwRTJFIDAwNjE7CiswRTQxIDAwMDEgMEUwOSAwMDYxOworMEU0MSAwMDAxIDBFMTMgMDA2MTsKKzBFNDEgMDAwMSAwRTFEIDAwNjE7CiswRTQxIDAwMDEgMEUyNyAwMDYxOworMEU0MiAwNTkxIDBFMDEgMDA2MTsKKzBFNDIgMDU5MSAwRTBCIDAwNjE7CiswRTQyIDA1OTEgMEUxNSAwMDYxOworMEU0MiAwNTkxIDBFMUYgMDA2MTsKKzBFNDIgMDU5MSAwRTI5IDAwNjE7CiswRTQzIDFEMTY1IDBFMDMgMDA2MTsKKzBFNDMgMUQxNjUgMEUwRCAwMDYxOworMEU0MyAxRDE2NSAwRTE3IDAwNjE7CiswRTQzIDFEMTY1IDBFMjEgMDA2MTsKKzBFNDMgMUQxNjUgMEUyQiAwMDYxOworMEU0NCAwMDAxIDBFMDYgMDA2MTsKKzBFNDQgMDAwMSAwRTEwIDAwNjE7CiswRTQ0IDAwMDEgMEUxQSAwMDYxOworMEU0NCAwMDAxIDBFMjQgMDA2MTsKKzBFNDQgMDAwMSAwRTJFIDAwNjE7CiswRUMzIDBFODEgMDA2MTsKKzBFQzMgMEU4MiAwMDYxOworMEVDMyAwRTg0IDAwNjE7CiswRUMzIDBFODcgMDA2MTsKKzBFQzMgMEU4OCAwMDYxOworMEVDMyAwRThBIDAwNjE7CiswRUMzIDBFOEQgMDA2MTsKKzBFQzMgMEU5NCAwMDYxOworMEVDMyAwRTk1IDAwNjE7CiswRUMzIDBFOTYgMDA2MTsKKzBFQzMgMEU5NyAwMDYxOworMEVDMyAwRTk5IDAwNjE7CiswRUMzIDBFOUEgMDA2MTsKKzBFQzMgMEU5QiAwMDYxOworMEVDMyAwRTlDIDAwNjE7CiswRUMzIDBFOUQgMDA2MTsKKzBFQzMgMEU5RSAwMDYxOworMEVDMyAwRTlGIDAwNjE7CiswRUMzIDBFQTEgMDA2MTsKKzBFQzMgMEVBMiAwMDYxOworMEVDMyAwRUEzIDAwNjE7CiswRUMzIDBFQTUgMDA2MTsKKzBFQzMgMEVBNyAwMDYxOworMEVDMyAwRUFBIDAwNjE7CiswRUMyIDBFREMgMDA2MTsKKzBFQzIgMEVERCAwMDYxOworMEVDMyAwRUFCIDAwNjE7CiswRUMzIDBFQUQgMDA2MTsKKzBFQzMgMEVBRSAwMDYxOworMEVCMiAwMDYyOworMEVCNyAwMDYyOworMEVDMCAwMDIxOworMEVDMCAwNTkxIDBFOTUgMDA2MTsKKzBFQzAgMDU5MSAwRUExIDAwNjE7CiswRUMwIDA1OTEgMEVBRSAwMDYxOworMEVDMSAxRDE2NSAwRTk0IDAwNjE7CiswRUMxIDFEMTY1IDBFOUYgMDA2MTsKKzBFQzEgMUQxNjUgMEVBRCAwMDYxOworMEVDMiAwMDAxIDBFOTQgMDA2MTsKKzBFQzIgMDAwMSAwRTlGIDAwNjE7CiswRUMyIDAwMDEgMEVBRCAwMDYxOworMEVDMyAwNTkxIDBFOEQgMDA2MTsKKzBFQzMgMDU5MSAwRTlFIDAwNjE7CiswRUMzIDA1OTEgMEVERCAwMDYxOworMEVDNCAxRDE2NSAwRThBIDAwNjE7CiswRUM0IDFEMTY1IDBFOUQgMDA2MTsKKzBFQzQgMUQxNjUgMEVEQyAwMDYxOworMEY0MSAwMDIxOworMEY0NCAwMDIxOworMEY0NyAwMDIxOworMEY0QiAwMDIxOworMEY0RSAwMDIxOworMEY1MSAwMDIxOworMEY1NCAwMDIxOworMEZBNiAwMDIxOworMEY1QSAwMDIxOworMEY1RCAwMDIxOworMEZBRiAwMDIxOworMEY2MiAwMDIxOworMEZCMiAwMDAxIDBGNzEgMEY4MCAwMDYxOworMEZCNCAwMDNGOworMEZCNyAwMDNGOworMEY4QSAwMDNGOworMDMzNCAwRjcyIDBGNzE7CiswRjgxIDAwNjE7CiswRjc2IDAwM0Y7CiswRkIyIDBGODEgMDA0MTsKKzBGQjMgMEY3MSAxRDE2NSAwRjgwIDAwNjE7CiswRjdDIDAwNjI7CisxOTAzIDAwMjE7CisxOTA5IDAwMjE7CisxOTBGIDAwMjE7CisxOTE1IDAwMjE7CisxOTFCIDAwMjE7CisxOTI0IDAwMjE7CisxOTJBIDAwMjE7CisxOTM0IDAwMjE7CisxNzAxIDAwMjE7CisxNzA3IDAwMjE7CisxNzBFIDAwMjE7CisxNzE0IDAwMjE7CisxNzI0IDAwNDE7CisxNzJBIDAwNDE7CisxNzMwIDAwNDE7CisxNzQxIDAwM0Y7CisxNzQ3IDAwM0Y7CisxNzREIDAwM0Y7CisxNzUzIDAwM0Y7CisxNzY1IDAwM0Y7CisxNzZCIDAwM0Y7CisxNzczIDAwM0Y7CisxQTA1IDAwM0Y7CisxQTBCIDAwM0Y7CisxQTExIDAwM0Y7CisxQTE3IDAwM0Y7CisxMDAwIDAwNjE7CisxMDA2IDAwNjE7CisxMDBDIDAwNjE7CisxMDEyIDAwNjE7CisxMDE4IDAwNjE7CisxMDUwIDAwNjE7CisxMDIzIDAwNjE7CisxMDI3IDAwNjI7CisxMDU1IDAwNjI7CisxMDMxIDAwNjI7CisxMDM5IDAwNjE7CisxNzg1IDAwNjE7CisxNzhCIDAwNjE7CisxNzkxIDAwNjE7CisxNzk3IDAwNjE7CisxNzlEIDAwNjE7CisxN0RDIDAwNjE7CisxN0E4IDAwNjE7CisxN0FFIDAwNjE7CisxN0I0IDAwNjE7CisxN0JBIDAwNjE7CisxN0MwIDAwNjE7CiswMzM0IDE3RDI7CisxOTU1IDAwMjE7CisxOTVCIDAwMjE7CisxOTYxIDAwMjE7CisxOTY3IDAwMjE7CisxOTZEIDAwMjE7CisxOTgwIDAwMjE7CisxOTg2IDAwMjE7CisxOThDIDAwMjE7CisxOTkyIDAwMjE7CisxOTk4IDAwMjE7CisxOURGIDAwMjE7CisxOUEyIDAwMjE7CisxOUE4IDAwMjE7CisxOUI0IDAwMjE7CisxOUJBIDAwMjE7CisxOUMwIDAwMjE7CisxOUM2IDAwMjE7CisxODgyIDAwMjE7CisxODIwIDAwMjE7CisxODQ1IDAwMjE7CisxODQ2IDAwMjE7CisxODI2IDAwMjE7CisxODRBIDAwMjE7CisxODJCIDAwMjE7CisxODRFIDAwMjE7CisxODJGIDAwMjE7CisxOEEyIDAwMjE7CisxODMzIDAwMjE7CisxODVDIDAwMjE7CisxODM2IDAwMjE7CisxODU2IDAwMjE7CisxODYzIDAwMjE7CisxODZFIDAwMjE7CisxODU5IDAwMjE7CisxODVBIDAwMjE7CisxODhFIDAwMjE7CisxODkxIDAwMjE7CisxOEEzIDAwMjE7CisxOEE3IDAwMjE7CisxM0EzIDAwNDE7CisxM0E5IDAwNDE7CisxM0FGIDAwNDE7CisxM0I1IDAwNDE7CisxM0JCIDAwNDE7CisxM0MxIDAwNDE7CisxM0M3IDAwNDE7CisxM0NEIDAwNDE7CisxM0QzIDAwNDE7CisxM0Q5IDAwNDE7CisxM0RGIDAwNDE7CisxM0U1IDAwNDE7CisxM0VCIDAwNDE7CisxM0YxIDAwNDE7CisxNDAzIDAwNDE7CisxNDA5IDAwNDE7CisxNDBGIDAwNDE7CisxNDE1IDAwNDE7CisxNDFCIDAwNDE7CisxNDIxIDAwNDE7CisxNDI3IDAwNDE7CisxNDJEIDAwNDE7CisxNDMzIDAwNDE7CisxNDM5IDAwNDE7CisxNDNGIDAwNDE7CisxNDQ1IDAwNDE7CisxNDRCIDAwNDE7CisxNDUxIDAwNDE7CisxNDU3IDAwNDE7CisxNDVEIDAwNDE7CisxNDYzIDAwNDE7CisxNDY5IDAwNDE7CisxNDZGIDAwNDE7CisxNDc1IDAwNDE7CisxNDdCIDAwNDE7CisxNDgxIDAwNDE7CisxNDg3IDAwNDE7CisxNDhEIDAwNDE7CisxNDkzIDAwNDE7CisxNDk5IDAwNDE7CisxNDlGIDAwNDE7CisxNEE1IDAwNDE7CisxNEFCIDAwNDE7CisxNEIxIDAwNDE7CisxNEI3IDAwNDE7CisxNEJEIDAwNDE7CisxNEMzIDAwNDE7CisxNEM5IDAwNDE7CisxNENGIDAwNDE7CisxNEQ1IDAwNDE7CisxNERCIDAwNDE7CisxNEUxIDAwNDE7CisxNEU3IDAwNDE7CisxNEVEIDAwNDE7CisxNEYzIDAwNDE7CisxNEY5IDAwNDE7CisxNEZGIDAwNDE7CisxNTA1IDAwNDE7CisxNTBCIDAwNDE7CisxNTExIDAwNDE7CisxNTE3IDAwNDE7CisxNTFEIDAwNDE7CisxNTIzIDAwNDE7CisxNTI5IDAwNDE7CisxNTJGIDAwNDE7CisxNTM1IDAwNDE7CisxNTNCIDAwNDE7CisxNTQxIDAwNDE7CisxNTQ3IDAwNDE7CisxNTREIDAwNDE7CisxNTUzIDAwNDE7CisxNTU5IDAwNDE7CisxNTVGIDAwNDE7CisxNTY1IDAwNDE7CisxNTZCIDAwNDE7CisxNTcxIDAwNDE7CisxNTc3IDAwNDE7CisxNjZGIDAwNDE7CisxNTgzIDAwNDE7CisxNTg5IDAwNDE7CisxNThFIDAwNDE7CisxNTk0IDAwNDE7CisxNjc1IDAwNDE7CisxNTlBIDAwNDE7CisxNUEwIDAwNDE7CisxNUE2IDAwNDE7CisxNUFCIDAwNDE7CisxNUIxIDAwNDE7CisxNUI3IDAwNDE7CisxNUJEIDAwNDE7CisxNUMzIDAwNDE7CisxNUM5IDAwNDE7CisxNUNGIDAwNDE7CisxNUQ1IDAwNDE7CisxNURCIDAwNDE7CisxNUUxIDAwNDE7CisxNUU3IDAwNDE7CisxNUVEIDAwNDE7CisxNUYzIDAwNDE7CisxNUY5IDAwNDE7CisxNUZGIDAwNDE7CisxNjA1IDAwNDE7CisxNjBCIDAwNDE7CisxNjExIDAwNDE7CisxNjE3IDAwNDE7CisxNjFEIDAwNDE7CisxNjIzIDAwNDE7CisxNjI5IDAwNDE7CisxNjJGIDAwNDE7CisxNjM1IDAwNDE7CisxNjNCIDAwNDE7CisxNjQxIDAwNDE7CisxNjQ3IDAwNDE7CisxNjREIDAwNDE7CisxNjUzIDAwNDE7CisxNjU5IDAwNDE7CisxNjVGIDAwNDE7CisxNjY1IDAwNDE7CisxNjZCIDAwNDE7CisxNjg1IDAwNDE7CisxNjhCIDAwNDE7CisxNjkxIDAwNDE7CisxNjk3IDAwNDE7CisxNkE0IDAwM0Y7CisxNkE5IDAwM0Y7CisxNkIwIDAwNDE7CisxNkI1IDAwNjI7CisxNkJDIDAwNDE7CisxNkMxIDAwNjI7CisxNkM3IDAwNDE7CisxNkNBIDAwNDE7CisxNkQwIDAwNjI7CisxNkQ4IDAwNjE7CisxNkRDIDAwNjI7CisxNkUwIDAwNDE7CisxNkU1IDAwNDE7CiszMTMxIDAwNjE7CiszMjZFIDAwNDE7CitBQzAyIDAwNjI7CisxMTAxIDAwNjE7CiszMjAxIDAwNjI7CiszMjYyIDAwNjE7CitGRkE4IDAwNDE7CiszMjExIDAwM0Y7CiszMjA0IDAwNjI7CiszMjY1IDAwNjE7CitGRkIzIDAwNDE7CiszMjE0IDAwM0Y7CiszMjY3IDAwMjE7CiszMjFEIDAwM0Y7CiszMjY4IDAwNjE7CisxMTBEIDAwM0Y7CiszMjY5IDAwNjE7CiszMjZBIDAwMjE7CisxMTEwIDAwM0Y7CiszMjc5IDAwNjE7CiszMjFBIDAwM0Y7CiszMjBEIDAwNjI7CitENzg4IDExNjEgMDAyMTsKK0Q3QTAgMDA2MjsKKzMxNjUgMDA2MjsKKzExMTkgMDA2MjsKKzMxNkUgMDA2MjsKKzExMjAgMDA2MTsKKzMxNzQgMDA2MjsKKzExMjcgMDA2MTsKKzExMkIgMDA2MTsKKzExMkUgMDA2MTsKKzExMzIgMDA2MTsKKzMxN0UgMDA2MjsKKzExM0MgMDA2MjsKKzExNDEgMDA2MjsKKzExNDcgMDA2MTsKKzExNEMgMDA2MTsKKzExNTEgMDA2MjsKKzExNTcgMDA2MTsKKzExNUYgMDA2MjsKK0ZGQzIgMDA2MjsKK0ZGQzQgMDA2MjsKK0ZGQzYgMDA2MjsKK0ZGQ0EgMDA2MjsKK0ZGQ0MgMDA2MjsKK0ZGQ0UgMDA2MjsKK0ZGRDIgMDA2MjsKK0ZGRDQgMDA2MjsKK0ZGRDYgMDA2MjsKK0ZGREEgMDA2MjsKK0ZGREMgMDA2MjsKKzExN0IgMDA2MjsKKzExODEgMDA2MjsKKzMxODggMDA2MjsKKzExOEEgMDA2MjsKKzExOTAgMDA2MjsKKzExOTQgMDA2MTsKKzExOTkgMDA2MjsKKzMxOEQgMDA2MjsKKzExQTggMDA2MjsKK0ZGQTUgMDAyMTsKKzExQUUgMDA2MjsKKzMxM0IgMDA0MTsKKzMxM0QgMDA0MTsKKzMxM0YgMDA0MTsKKzExQkEgMDA2MjsKKzExQzAgMDA2MjsKKzExQzYgMDA2MjsKKzExQ0EgMDA2MjsKKzMxNkEgMDA2MjsKKzMxNkIgMDA2MjsKKzExRDggMDA2MjsKKzExREQgMDA2MTsKKzExRTEgMDA2MjsKKzExRTcgMDA2MjsKKzExRUQgMDA2MjsKKzExRjIgMDA2MTsKKzExRjcgMDA2MjsKKzMwNDEgMDA2MTsKKzMzMDEgMDA2MjsKK0ZGNzIgMDA2MTsKKzMwQTYgMDAzRjsKKzMwOTQgMDA0MTsKKzMyRDMgMDAzRjsKKzMzMDcgMDA0MTsKKzMwQUEgMDA0MTsKKzMwNEIgMzA5OSAwMzM0OworMzJENSAwMDYyOworMzBBRCAwMDIxOworRkY3NyAwMDYyOworMzMxNSAwMDNGOworMzA1MCAwMDIxOworMzMxOSAwMDIxOworMzBCMSAwMzM0IDMwOTk7CiszMEY2IDAwNjI7CiszMDUzIDAwNDE7CiszMEI1IDAwM0Y7CiszMkRBIDAwNjI7CiszMDU4IDAwM0Y7CiszMzIxIDAwM0Y7CitGRjdEIDAwNjE7CiszMDVDIDAwM0Y7CiszMzIzIDAwNjI7CiszMEJFIDAwNDE7CiszMDVGIDAwNjE7CiszMEMxIDMwOTkgMDMzNDsKK0ZGNkYgMDAyMTsKKzMyRTEgMDA2MTsKKzMwNjcgMDAzRjsKKzMwQzggMDAyMTsKKzMwNjggMDA2MjsKK0ZGODUgMDA0MTsKK0ZGODYgMDA2MjsKKzMwQ0QgMDAzRjsKK0ZGODkgMDA0MTsKKzMwNzEgMDMzNDsKKzMxRjUgMDA0MTsKKzMwNzIgMDAzRjsKKzMwNzIgMDA0MTsKKzMzMkUgMDA2MjsKKzMwRDUgMzA5OSAwMzM0OworMzA3NyAwMDYxOworMzMzNSAwMDYxOworMzA3QSAwMDNGOworMzBEQSAwMDQxOworMzMzQSAwMDIxOworMzBEQyAwMDNGOworMzA3RCAwMDQxOworMzM0MCAwMDQxOworMzM0NCAwMDQxOworMzA3RiAwMDYxOworMzFGQSAwMDNGOworMzM0RCAwMDIxOworMzBFMiAwMDNGOworMzJGMyAwMDNGOworRkY5NCAwMDYyOworMzA4NSAwMDYyOworMzBFNyAwMDYxOworMzJGNiAwMDIxOworMzFGQyAwMDQxOworMzJGOCAwMDIxOworMzFGRSAwMDNGOworMzM1NiAwMDQxOworMzA4RiAwMDNGOworMzBFRSAwMDYyOworMzBGMCAwMDYyOworRkY2NiAwMDIxOworMzA5MyAwMDYxOworMzEwNyAwMDNGOworMzEwQiAwMDNGOworMzEyQiAwMDNGOworMzExMSAwMDNGOworMzExNiAwMDNGOworMzFBOSAwMDYxOworMzFBNCAwMDNGOworMzFBRiAwMDYxOworMzEyNSAwMDNGOworMzEyNyAwMDYxOworQTAwMCAwMDNGOworQTAwNiAwMDNGOworQTAwQyAwMDNGOworQTAxMiAwMDNGOworQTAxOCAwMDNGOworQTAxRSAwMDNGOworQTAyNCAwMDNGOworQTAyQSAwMDNGOworQTAzMCAwMDNGOworQTAzNiAwMDNGOworQTAzQyAwMDNGOworQTA0MiAwMDNGOworQTA0OCAwMDNGOworQTA0RSAwMDNGOworQTA1NCAwMDNGOworQTA1QSAwMDNGOworQTA2MCAwMDNGOworQTA2NiAwMDNGOworQTA2QyAwMDNGOworQTA3MiAwMDNGOworQTA3OCAwMDNGOworQTA3RSAwMDNGOworQTA4NCAwMDNGOworQTA4QSAwMDNGOworQTA5MCAwMDNGOworQTA5NiAwMDNGOworQTA5QyAwMDNGOworQTBBMiAwMDNGOworQTBBOCAwMDNGOworQTBBRSAwMDNGOworQTBCNCAwMDNGOworQTBCQSAwMDNGOworQTBDMCAwMDNGOworQTBDNiAwMDNGOworQTBDQyAwMDNGOworQTBEMiAwMDNGOworQTBEOCAwMDNGOworQTBERSAwMDNGOworQTBFNCAwMDNGOworQTBFQSAwMDNGOworQTBGMCAwMDNGOworQTBGNiAwMDNGOworQTBGQyAwMDNGOworQTEwMiAwMDNGOworQTEwOCAwMDNGOworQTEwRSAwMDNGOworQTExNCAwMDNGOworQTExQSAwMDNGOworQTEyMCAwMDNGOworQTEyNiAwMDNGOworQTEyQyAwMDNGOworQTEzMiAwMDNGOworQTEzOCAwMDNGOworQTEzRSAwMDNGOworQTE0NCAwMDNGOworQTE0QSAwMDNGOworQTE1MCAwMDNGOworQTE1NiAwMDNGOworQTE1QyAwMDNGOworQTE2MiAwMDNGOworQTE2OCAwMDNGOworQTE2RSAwMDNGOworQTE3NCAwMDNGOworQTE3QSAwMDNGOworQTE4MCAwMDNGOworQTE4NiAwMDNGOworQTE4QyAwMDNGOworQTE5MiAwMDNGOworQTE5OCAwMDNGOworQTE5RSAwMDNGOworQTFBNCAwMDNGOworQTFBQSAwMDNGOworQTFCMCAwMDNGOworQTFCNiAwMDNGOworQTFCQyAwMDNGOworQTFDMiAwMDNGOworQTFDOCAwMDNGOworQTFDRSAwMDNGOworQTFENCAwMDNGOworQTFEQSAwMDNGOworQTFFMCAwMDNGOworQTFFNiAwMDNGOworQTFFQyAwMDNGOworQTFGMiAwMDNGOworQTFGOCAwMDNGOworQTFGRSAwMDNGOworQTIwNCAwMDNGOworQTIwQSAwMDNGOworQTIxMCAwMDNGOworQTIxNiAwMDNGOworQTIxQyAwMDNGOworQTIyMiAwMDNGOworQTIyOCAwMDNGOworQTIyRSAwMDNGOworQTIzNCAwMDNGOworQTIzQSAwMDNGOworQTI0MCAwMDNGOworQTI0NiAwMDNGOworQTI0QyAwMDNGOworQTI1MiAwMDNGOworQTI1OCAwMDNGOworQTI1RSAwMDNGOworQTI2NCAwMDNGOworQTI2QSAwMDNGOworQTI3MCAwMDNGOworQTI3NiAwMDNGOworQTI3QyAwMDNGOworQTI4MiAwMDNGOworQTI4OCAwMDNGOworQTI4RSAwMDNGOworQTI5NCAwMDNGOworQTI5QSAwMDNGOworQTJBMCAwMDNGOworQTJBNiAwMDNGOworQTJBQyAwMDNGOworQTJCMiAwMDNGOworQTJCOCAwMDNGOworQTJCRSAwMDNGOworQTJDNCAwMDNGOworQTJDQSAwMDNGOworQTJEMCAwMDNGOworQTJENiAwMDNGOworQTJEQyAwMDNGOworQTJFMiAwMDNGOworQTJFOCAwMDNGOworQTJFRSAwMDNGOworQTJGNCAwMDNGOworQTJGQSAwMDNGOworQTMwMCAwMDNGOworQTMwNiAwMDNGOworQTMwQyAwMDNGOworQTMxMiAwMDNGOworQTMxOCAwMDNGOworQTMxRSAwMDNGOworQTMyNCAwMDNGOworQTMyQSAwMDNGOworQTMzMCAwMDNGOworQTMzNiAwMDNGOworQTMzQyAwMDNGOworQTM0MiAwMDNGOworQTM0OCAwMDNGOworQTM0RSAwMDNGOworQTM1NCAwMDNGOworQTM1QSAwMDNGOworQTM2MCAwMDNGOworQTM2NiAwMDNGOworQTM2QyAwMDNGOworQTM3MiAwMDNGOworQTM3OCAwMDNGOworQTM3RSAwMDNGOworQTM4NCAwMDNGOworQTM4QSAwMDNGOworQTM5MCAwMDNGOworQTM5NiAwMDNGOworQTM5QyAwMDNGOworQTNBMiAwMDNGOworQTNBOCAwMDNGOworQTNBRSAwMDNGOworQTNCNCAwMDNGOworQTNCQSAwMDNGOworQTNDMCAwMDNGOworQTNDNiAwMDNGOworQTNDQyAwMDNGOworQTNEMiAwMDNGOworQTNEOCAwMDNGOworQTNERSAwMDNGOworQTNFNCAwMDNGOworQTNFQSAwMDNGOworQTNGMCAwMDNGOworQTNGNiAwMDNGOworQTNGQyAwMDNGOworQTQwMiAwMDNGOworQTQwOCAwMDNGOworQTQwRSAwMDNGOworQTQxNCAwMDNGOworQTQxQSAwMDNGOworQTQyMCAwMDNGOworQTQyNiAwMDNGOworQTQyQyAwMDNGOworQTQzMiAwMDNGOworQTQzOCAwMDNGOworQTQzRSAwMDNGOworQTQ0NCAwMDNGOworQTQ0QSAwMDNGOworQTQ1MCAwMDNGOworQTQ1NiAwMDNGOworQTQ1QyAwMDNGOworQTQ2MiAwMDNGOworQTQ2OCAwMDNGOworQTQ2RSAwMDNGOworQTQ3NCAwMDNGOworQTQ3QSAwMDNGOworQTQ4MCAwMDNGOworQTQ4NiAwMDNGOworQTQ4QyAwMDNGOworMTAzMDUgMDAzRjsKKzEwMzBCIDAwM0Y7CisxMDMxMSAwMDNGOworMTAzMTcgMDAzRjsKKzEwMzFEIDAwM0Y7CisxMDMzNCAwMDNGOworMTAzM0EgMDAzRjsKKzEwMzQwIDAwM0Y7CisxMDM0NiAwMDNGOworMTA0MDAgMDA2MTsKKzEwNDAzIDAwNjE7CisxMDQwNiAwMDYxOworMTA0MDkgMDA2MTsKKzEwNDBDIDAwNjE7CisxMDQwRiAwMDYxOworMTA0MTIgMDA2MTsKKzEwNDE1IDAwNjE7CisxMDQxOCAwMDYxOworMTA0MUIgMDA2MTsKKzEwNDFFIDAwNjE7CisxMDQyMSAwMDYxOworMTA0MjQgMDA2MTsKKzEwNDI3IDAwNjE7CisxMDQ1NSAwMDNGOworMTA0NUIgMDAzRjsKKzEwNDYxIDAwM0Y7CisxMDQ2NyAwMDNGOworMTA0NkQgMDAzRjsKKzEwNDczIDAwM0Y7CisxMDQ3OSAwMDNGOworMTA0N0YgMDAzRjsKKzEwNDg1IDAwM0Y7CisxMDQ4QiAwMDNGOworMTA0OTEgMDAzRjsKKzEwNDk3IDAwM0Y7CisxMDQ5RCAwMDNGOworMTAwMDUgMDAzRjsKKzEwMDBCIDAwM0Y7CisxMDAxMiAwMDNGOworMTAwMTggMDAzRjsKKzEwMDFFIDAwM0Y7CisxMDAyNCAwMDNGOworMTAwMkIgMDAzRjsKKzEwMDMxIDAwM0Y7CisxMDAzNyAwMDNGOworMTAwM0YgMDAzRjsKKzEwMDQ1IDAwM0Y7CisxMDA0QiAwMDNGOworMTAwNTMgMDAzRjsKKzEwMDU5IDAwM0Y7CisxMDA4MSAwMDNGOworMTAwODcgMDAzRjsKKzEwMDhEIDAwM0Y7CisxMDA5MyAwMDNGOworMTAwOTkgMDAzRjsKKzEwMDlGIDAwM0Y7CisxMDBBNSAwMDNGOworMTAwQUIgMDAzRjsKKzEwMEIxIDAwM0Y7CisxMDBCNyAwMDNGOworMTAwQkQgMDAzRjsKKzEwMEMzIDAwM0Y7CisxMDBDOSAwMDNGOworMTAwQ0YgMDAzRjsKKzEwMEQ1IDAwM0Y7CisxMDBEQiAwMDNGOworMTAwRTEgMDAzRjsKKzEwMEU3IDAwM0Y7CisxMDBFRCAwMDNGOworMTAwRjMgMDAzRjsKKzEwMEY5IDAwM0Y7CisxMDgwNCAwMDNGOworMTA4MEQgMDAzRjsKKzEwODEzIDAwM0Y7CisxMDgxOSAwMDNGOworMTA4MUYgMDAzRjsKKzEwODI1IDAwM0Y7CisxMDgyQiAwMDNGOworMTA4MzEgMDAzRjsKKzEwODM4IDAwM0Y7CisxMDM4MyAwMDNGOworMTAzODkgMDAzRjsKKzEwMzhGIDAwM0Y7CisxMDM5NSAwMDNGOworMTAzOUIgMDAzRjsKKzEwM0EzIDAwM0Y7CisxMDNBOSAwMDNGOworMTAzQUYgMDAzRjsKKzEwM0I1IDAwM0Y7CisxMDNCQiAwMDNGOworMTAzQzEgMDAzRjsKKzEwM0NCIDAwM0Y7CiszMjgwIDAwMjE7Cis0RTAyIDAwM0Y7CiszMjIyIDAwM0Y7CiszMTk4IDAwNjE7CiszMkE1IDAwM0Y7CitGOTVFIDAwM0Y7CisyRTg0IDAwNDE7CisyRjA1IDAwM0Y7CiszMjI0IDAwM0Y7CisyRTg1IDAwM0Y7CiszMkFEIDAwNjE7CitGOUI1IDAwM0Y7CitGOUQ0IDAwM0Y7CitGQTMxIDAwNDE7CitGQTMyIDAwNDE7CitGOTc4IDAwM0Y7CiszMjg1IDAwNDE7CisyRjhEMiAwMDNGOworMkYwRSAwMDNGOworRjk1NSAwMDNGOworMkYxMCAwMDYxOworRkEwMCAwMDQxOworMkY4MjIgMDAzRjsKKzJGOTkyIDAwM0Y7CitGQTMzIDAwNDE7CisyRjEzIDAwM0Y7CisyRjgyQiAwMDIxOworMzIyOSAwMDNGOworMkY4MkMgMDAzRjsKKzJGMTggMDAzRjsKK0Y5MUMgMDAzRjsKKzJFODEgMDA2MTsKKzJGMUQgMDAzRjsKKzMyMzQgMDAzRjsKKzJGODNFIDAwM0Y7CisyRjg0MSAwMDNGOworMkY4NDUgMDA0MTsKKzJGODQ4IDAwM0Y7CitGQTM3IDAwNDE7CiszMjIzIDAwNjE7CiszMjJGIDAwNjE7CisyRjg1NCAwMDNGOworRjk2QyAwMDNGOworMkYyMCAwMDNGOworMkYyMiAwMDNGOworMzM3RCAwMDNGOworMkY4NUYgMDAzRjsKKzJGODYzIDAwM0Y7CitGQTgxIDAwM0Y7CisyRjI3IDAwM0Y7CitGOTVGIDAwNjE7CisyRjg3MyAwMDNGOworMkYyQSAwMDYxOworMkY4NzcgMDAzRjsKKzJGMkMgMDA0MTsKK0Y5MjEgMDAzRjsKKzJGMkUgMDAzRjsKKzJFOTIgMDAzRjsKKzJGMzIgMDAzRjsKK0ZBMDEgMDAzRjsKK0Y5MjggMDA0MTsKKzJGODkwIDAwM0Y7CisyRjg5NCAwMDQxOworMkY4OTkgMDAzRjsKK0Y5NjYgMDAzRjsKKzJGODlFIDAwM0Y7CisyRjhBMyAwMDIxOworRjlEOSAwMDNGOworRkE4QSAwMDNGOworRjk4RiAwMDNGOworRkE0MCAwMDYxOworMkY4QjIgMDAzRjsKKzJFOTggMDAzRjsKKzJGOEI2IDAwM0Y7CitGOUE0IDAwM0Y7CisyRjhCRCAwMDNGOworMkY4QzQgMDAzRjsKKzJFOTkgMDAzRjsKKzJGNDIgMDAzRjsKKzJGNDYgMDAzRjsKKzJGNDcgMDA0MTsKK0ZBOTEgMDAyMTsKK0ZBMDYgMDAzRjsKKzMyMkEgMDAzRjsKK0ZBOTIgMDAyMTsKKzMyMkQgMDAzRjsKKzJGOERCIDAwM0Y7CitGOURBIDAwM0Y7CitGOTdBIDAwM0Y7CisyRjhFOCAwMDNGOworRjk0QyAwMDNGOworMkY4RUYgMDAzRjsKK0ZBOTUgMDAzRjsKK0ZBOTYgMDAyMTsKKzJGNTAgMDAzRjsKKzMyMkMgMDA2MTsKK0Y5NzIgMDAzRjsKKzJGOEZGIDAwM0Y7CitGOUNBIDAwNjE7CisyRjkwNCAwMDNGOworRkE0NiAwMDNGOworMkY5MEIgMDAyMTsKK0ZBNDcgMDA0MTsKKzJGOTE1IDAwM0Y7CiszMjJCIDAwNjE7CitGOUZCIDAwM0Y7CitGQTlDIDAwMjE7CitGOTFFIDAwM0Y7CisyRjkyMSAwMDIxOworMkY5MjIgMDAzRjsKKzMyOTUgMDA2MTsKK0Y5RkEgMDAzRjsKKzJGNUUgMDAzRjsKKzJGOTJCIDAwM0Y7CisyRjkyRSAwMDNGOworRjk5NCAwMDNGOworMkY2MiAwMDNGOworMzI5QSAwMDNGOworRjk2MiAwMDQxOworRkFBNCAwMDNGOworMkY2QSAwMDNGOworMzJBQyAwMDYxOworRjk2RCAwMDNGOworRkFBOSAwMDQxOworMkY5NEUgMDAzRjsKKzJGOTUwIDAwMjE7CisyRUFEIDAwM0Y7CitGQTREIDAwM0Y7CiszMjk3IDAwNDE7CitGQTUzIDAwM0Y7CitGOTk1IDAwM0Y7CisyRjk1QSAwMDNGOworMkY3NCAwMDYxOworRkE1NiAwMDQxOworRkFBRSAwMDNGOworRjk3QiAwMDNGOworRjk2QSAwMDNGOworMkY5NkUgMDAzRjsKK0Y5NTAgMDAzRjsKKzJGNzkgMDAzRjsKK0ZBNUEgMDAzRjsKKzJFQjcgMDA0MTsKKzJGOTc5IDAwM0Y7CisyRjk3QSAwMDQxOworRjk5NyAwMDNGOworMkY4MSAwMDNGOworMkY5ODUgMDAzRjsKK0ZBNUMgMDAzRjsKKzJGODkzIDAwNDE7CitGOTdDIDAwM0Y7CisyRUJGIDAwNjE7CisyRjk5NCAwMDNGOworMkY5OUMgMDAzRjsKKzJGOTlEIDAwM0Y7CitGQUI0IDAwM0Y7CitGOTk5IDAwM0Y7CitGOTIzIDAwM0Y7CisyRjhDIDAwM0Y7CisyRjlCNiAwMDNGOworMkY5QkMgMDAzRjsKKzJGOUMwIDAwM0Y7CisyRjlDMyAwMDNGOworMkY5QzYgMDAzRjsKK0ZBQjYgMDAzRjsKK0ZBMEEgMDAzRjsKKzJFQzYgMDA2MTsKK0ZBQjkgMDAzRjsKK0ZBQkEgMDAyMTsKK0ZBQkYgMDAyMTsKKzJFQzggMDAzRjsKKzJGOTggMDAzRjsKK0Y5NDggMDAzRjsKK0ZBNjUgMDA0MTsKKzJGOUMgMDAzRjsKKzJGOUQgMDAzRjsKKzJGOURGIDAwMjE7CisyRjk4RCAwMDNGOworMkVDQyAwMDQxOworRkFDMyAwMDNGOworRjkyQyAwMDNGOworRjkxOSAwMDNGOworRjk3RSAwMDNGOworMkY5RTcgMDAzRjsKK0Y5OUIgMDAzRjsKKzJFRDIgMDAzRjsKKzJFRDQgMDAzRjsKK0ZBMDkgMDAzRjsKKzJGQUEgMDAzRjsKK0ZBNjggMDA0MTsKK0Y5MzggMDAzRjsKKzJGQUUgMDAzRjsKKzJFRDkgMDAzRjsKKzMyQTAgMDAzRjsKK0ZBQ0MgMDAyMTsKKzJGQjYgMDAzRjsKKzJGQTAyIDAwM0Y7CisyRkI4IDAwM0Y7CitGOTFBIDAwM0Y7CisyRkJDIDAwM0Y7CisyRkMwIDAwM0Y7CitGOUYyIDAwM0Y7CitGOTNBIDAwM0Y7CisyRkM1IDAwNjE7CisyRkM3IDAwNjE7CisyRkExNyAwMDNGOworMkZDRCAwMDNGOworMkZEMCAwMDYxOworMkVFRCAwMDYxOworMkVGMCAwMDNGOworRkFDRSAwMDYyOworOUZBMyAwMDNGOworRkExMyAwMDNGOworRkEyNyAwMDNGOworMzQwMyAwMDNGOworMzQwOSAwMDNGOworMzQwRiAwMDNGOworMzQxNSAwMDNGOworMzQxQiAwMDNGOworMzQyMSAwMDNGOworMzQyNyAwMDNGOworMzQyRCAwMDNGOworMzQzMyAwMDNGOworMzQzOSAwMDNGOworMzQzRiAwMDNGOworMzQ0NSAwMDNGOworMzQ0QiAwMDNGOworMzQ1MSAwMDNGOworMzQ1NyAwMDNGOworMzQ1RCAwMDNGOworMzQ2MyAwMDNGOworMzQ2OSAwMDNGOworMzQ2RiAwMDNGOworMzQ3NSAwMDNGOworMzQ3QiAwMDNGOworMzQ4MSAwMDNGOworMzQ4NyAwMDNGOworMzQ4RCAwMDNGOworMzQ5MyAwMDNGOworMzQ5OSAwMDNGOworMzQ5RSAwMDQxOworMzRBNCAwMDNGOworMzRBQSAwMDNGOworMzRCMCAwMDNGOworMzRCNiAwMDNGOworMkY5Q0EgMDAyMTsKKzM0QzAgMDAzRjsKKzM0QzYgMDAzRjsKKzM0Q0MgMDAzRjsKKzM0RDIgMDAzRjsKKzM0RDggMDAzRjsKKzM0REUgMDAzRjsKKzM0RTMgMDAzRjsKKzM0RTkgMDAzRjsKKzM0RUYgMDAzRjsKKzM0RjUgMDAzRjsKKzM0RkIgMDAzRjsKKzM1MDEgMDAzRjsKKzM1MDcgMDAzRjsKKzM1MEQgMDAzRjsKKzM1MTMgMDAzRjsKKzM1MTggMDAzRjsKKzM1MUUgMDAzRjsKKzM1MjQgMDAzRjsKKzM1MkEgMDAzRjsKKzM1MzAgMDAzRjsKKzM1MzYgMDAzRjsKKzM1M0MgMDAzRjsKKzM1NDIgMDAzRjsKKzM1NDggMDAzRjsKKzM1NEUgMDAzRjsKKzM1NTQgMDAzRjsKKzM1NUEgMDAzRjsKKzM1NjAgMDAzRjsKKzM1NjYgMDAzRjsKKzM1NkMgMDAzRjsKKzM1NzIgMDAzRjsKKzM1NzggMDAzRjsKKzM1N0UgMDAzRjsKKzM1ODQgMDAzRjsKKzM1OEEgMDAzRjsKKzM1OTAgMDAzRjsKKzM1OTYgMDAzRjsKKzM1OUMgMDAzRjsKKzM1QTIgMDAzRjsKKzM1QTggMDAzRjsKKzM1QUUgMDAzRjsKKzM1QjQgMDAzRjsKKzM1QkEgMDAzRjsKKzM1QzAgMDAzRjsKKzM1QzYgMDAzRjsKKzM1Q0MgMDAzRjsKKzM1RDIgMDAzRjsKKzM1RDggMDAzRjsKKzM1REUgMDAzRjsKKzM1RTQgMDAzRjsKKzM1RUEgMDAzRjsKKzM1RjAgMDAzRjsKKzM1RjYgMDAzRjsKKzM1RkMgMDAzRjsKKzM2MDIgMDAzRjsKKzM2MDggMDAzRjsKKzM2MEUgMDAzRjsKKzM2MTQgMDAzRjsKKzM2MUEgMDAzRjsKKzM2MjAgMDAzRjsKKzM2MjYgMDAzRjsKKzM2MkMgMDAzRjsKKzM2MzIgMDAzRjsKKzM2MzggMDAzRjsKKzM2M0UgMDAzRjsKKzM2NDQgMDAzRjsKKzM2NEEgMDAzRjsKKzM2NTAgMDAzRjsKKzM2NTYgMDAzRjsKKzM2NUMgMDAzRjsKKzM2NjIgMDAzRjsKKzM2NjggMDAzRjsKKzM2NkUgMDAzRjsKKzM2NzQgMDAzRjsKKzM2N0EgMDAzRjsKKzM2ODAgMDAzRjsKKzM2ODYgMDAzRjsKKzM2OEMgMDAzRjsKKzM2OTIgMDAzRjsKKzM2OTggMDAzRjsKKzM2OUUgMDAzRjsKKzM2QTQgMDAzRjsKKzM2QUEgMDAzRjsKKzM2QjAgMDAzRjsKKzM2QjYgMDAzRjsKKzM2QkMgMDAzRjsKKzM2QzIgMDAzRjsKKzM2QzggMDAzRjsKKzM2Q0UgMDAzRjsKKzM2RDQgMDAzRjsKKzM2REEgMDAzRjsKKzM2RTAgMDAzRjsKKzM2RTYgMDAzRjsKKzM2RUMgMDAzRjsKKzM2RjEgMDAzRjsKKzM2RjcgMDAzRjsKKzM2RkMgMDA0MTsKKzM3MDIgMDAzRjsKKzM3MDggMDAzRjsKKzM3MEUgMDAzRjsKKzM3MTQgMDAzRjsKKzM3MUEgMDAzRjsKKzM3MjAgMDAzRjsKKzM3MjYgMDAzRjsKKzM3MkMgMDAzRjsKKzM3MzIgMDAzRjsKKzM3MzggMDAzRjsKKzM3M0UgMDAzRjsKKzM3NDQgMDAzRjsKKzM3NEEgMDAzRjsKKzM3NTAgMDAzRjsKKzM3NTYgMDAzRjsKKzM3NUMgMDAzRjsKKzM3NjIgMDAzRjsKKzM3NjggMDAzRjsKKzM3NkUgMDAzRjsKKzM3NzQgMDAzRjsKKzM3N0EgMDAzRjsKKzM3ODAgMDAzRjsKKzM3ODUgMDAzRjsKKzM3OEIgMDAzRjsKKzM3OTEgMDAzRjsKKzM3OTcgMDAzRjsKKzM3OUQgMDAzRjsKKzM3QTMgMDAzRjsKKzM3QTkgMDAzRjsKKzM3QUYgMDAzRjsKKzM3QjUgMDAzRjsKKzM3QkIgMDAzRjsKKzM3QzEgMDAzRjsKKzM3QzcgMDAzRjsKKzM3Q0QgMDAzRjsKKzM3RDMgMDAzRjsKKzM3RDkgMDAzRjsKKzM3REYgMDAzRjsKKzM3RTUgMDAzRjsKKzM3RUIgMDAzRjsKKzM3RjEgMDAzRjsKKzM3RjcgMDAzRjsKKzM3RkQgMDAzRjsKKzM4MDMgMDAzRjsKKzM4MDkgMDAzRjsKKzM4MEYgMDAzRjsKKzM4MTUgMDAzRjsKKzM4MUIgMDAzRjsKKzM4MjEgMDAzRjsKKzM4MjcgMDAzRjsKKzM4MkQgMDAzRjsKKzM4MzIgMDAzRjsKKzM4MzggMDAzRjsKKzM4M0UgMDAzRjsKKzM4NDQgMDAzRjsKKzM4NEEgMDAzRjsKKzM4NTAgMDAzRjsKKzM4NTYgMDAzRjsKKzM4NUMgMDAzRjsKKzJGODg4IDAwMjE7CiszODY3IDAwM0Y7CiszODZEIDAwM0Y7CiszODczIDAwM0Y7CiszODc5IDAwM0Y7CiszODdFIDAwM0Y7CiszODg0IDAwM0Y7CiszODhBIDAwM0Y7CiszODkwIDAwM0Y7CiszODk2IDAwM0Y7CiszODlDIDAwM0Y7CiszOEEyIDAwM0Y7CiszOEE4IDAwM0Y7CiszOEFFIDAwM0Y7CiszOEI0IDAwM0Y7CiszOEJBIDAwM0Y7CiszOEMwIDAwM0Y7CiszOEM2IDAwM0Y7CiszOENCIDAwM0Y7CiszOEQxIDAwM0Y7CiszOEQ3IDAwM0Y7CiszOEREIDAwM0Y7CisyRjg5QiAwMDIxOworMzhFOCAwMDNGOworMzhFRSAwMDNGOworMzhGNCAwMDNGOworMzhGQSAwMDNGOworMzkwMCAwMDNGOworMzkwNiAwMDNGOworMzkwQyAwMDNGOworMzkxMiAwMDNGOworMzkxOCAwMDNGOworMzkxRCAwMDNGOworMzkyMyAwMDNGOworMzkyOSAwMDNGOworMzkyRiAwMDNGOworMzkzNSAwMDNGOworMzkzQSAwMDQxOworMzk0MCAwMDNGOworMzk0NiAwMDNGOworMzk0QyAwMDNGOworMzk1MiAwMDNGOworMzk1OCAwMDNGOworMzk1RSAwMDNGOworMzk2NCAwMDNGOworMzk2QSAwMDNGOworMzk3MCAwMDNGOworMzk3NiAwMDNGOworMzk3QyAwMDNGOworMzk4MiAwMDNGOworMzk4OCAwMDNGOworMzk4RSAwMDNGOworMzk5NCAwMDNGOworMzk5QSAwMDNGOworMzlBMCAwMDNGOworMzlBNiAwMDNGOworMzlBQyAwMDNGOworMzlCMiAwMDNGOworMzlCOCAwMDNGOworMzlCRSAwMDNGOworMzlDNCAwMDNGOworMzlDQSAwMDNGOworMzlEMCAwMDNGOworMzlENiAwMDNGOworMzlEQyAwMDNGOworMzlFMiAwMDNGOworMzlFOCAwMDNGOworMzlFRSAwMDNGOworMzlGNCAwMDNGOworMzlGQSAwMDNGOworM0EwMCAwMDNGOworM0EwNiAwMDNGOworM0EwQyAwMDNGOworM0ExMiAwMDNGOworM0ExOCAwMDNGOworM0ExRSAwMDNGOworM0EyNCAwMDNGOworM0EyQSAwMDNGOworM0EyRiAwMDNGOworM0EzNSAwMDNGOworM0EzQiAwMDNGOworM0E0MSAwMDNGOworM0E0NyAwMDNGOworM0E0RCAwMDNGOworM0E1MyAwMDNGOworM0E1OSAwMDNGOworM0E1RiAwMDNGOworM0E2NSAwMDNGOworM0E2QiAwMDNGOworM0E3MCAwMDNGOworM0E3NiAwMDNGOworM0E3QyAwMDNGOworM0E4MiAwMDNGOworM0E4OCAwMDNGOworM0E4RSAwMDNGOworM0E5NCAwMDNGOworM0E5QSAwMDNGOworM0FBMCAwMDNGOworM0FBNiAwMDNGOworM0FBQyAwMDNGOworM0FCMiAwMDNGOworM0FCOCAwMDNGOworM0FCRSAwMDNGOworM0FDNCAwMDNGOworM0FDQSAwMDNGOworM0FEMCAwMDNGOworM0FENiAwMDNGOworM0FEQyAwMDNGOworM0FFMiAwMDNGOworM0FFNyAwMDNGOworM0FFRCAwMDNGOworM0FGMyAwMDNGOworM0FGOSAwMDNGOworM0FGRiAwMDNGOworM0IwNSAwMDNGOworM0IwQSAwMDNGOworM0IxMCAwMDNGOworM0IxNiAwMDNGOworM0IxQiAwMDNGOworM0IyMSAwMDNGOworM0IyNyAwMDNGOworM0IyRCAwMDNGOworM0IzMyAwMDNGOworM0IzOSAwMDNGOworM0IzRiAwMDNGOworM0I0NSAwMDNGOworM0I0QSAwMDNGOworM0I1MCAwMDNGOworM0I1NiAwMDNGOworM0I1QyAwMDNGOworM0I2MiAwMDNGOworM0I2OCAwMDNGOworM0I2RSAwMDNGOworM0I3NCAwMDNGOworM0I3QSAwMDNGOworM0I4MCAwMDNGOworM0I4NiAwMDNGOworM0I4QyAwMDNGOworM0I5MiAwMDNGOworM0I5OCAwMDNGOworM0I5RCAwMDYxOworM0JBMiAwMDNGOworM0JBOCAwMDNGOworM0JBRSAwMDNGOworM0JCNCAwMDNGOworM0JCQSAwMDNGOworM0JDMCAwMDNGOworM0JDNiAwMDNGOworM0JDQyAwMDNGOworM0JEMiAwMDNGOworM0JEOCAwMDNGOworM0JERSAwMDNGOworM0JFNCAwMDNGOworM0JFQSAwMDNGOworM0JGMCAwMDNGOworM0JGNiAwMDNGOworM0JGQyAwMDNGOworM0MwMiAwMDNGOworM0MwOCAwMDNGOworM0MwRSAwMDNGOworM0MxNCAwMDNGOworM0MxOSAwMDNGOworM0MxRiAwMDNGOworM0MyNSAwMDNGOworM0MyQiAwMDNGOworM0MzMSAwMDNGOworM0MzNyAwMDNGOworM0MzRCAwMDNGOworM0M0MyAwMDNGOworM0M0OSAwMDNGOworM0M0RSAwMDQxOworM0M1NCAwMDNGOworM0M1QSAwMDNGOworM0M2MCAwMDNGOworM0M2NiAwMDNGOworM0M2QyAwMDNGOworM0M3MiAwMDNGOworM0M3OCAwMDNGOworM0M3RSAwMDNGOworM0M4NCAwMDNGOworM0M4QSAwMDNGOworM0M5MCAwMDNGOworM0M5NiAwMDNGOworM0M5QyAwMDNGOworM0NBMiAwMDNGOworM0NBOCAwMDNGOworM0NBRSAwMDNGOworM0NCNCAwMDNGOworM0NCQSAwMDNGOworM0NDMCAwMDNGOworM0NDNiAwMDNGOworM0NDQyAwMDNGOworM0NEMiAwMDNGOworM0NEOCAwMDNGOworM0NERSAwMDNGOworM0NFNCAwMDNGOworM0NFQSAwMDNGOworM0NGMCAwMDNGOworM0NGNiAwMDNGOworM0NGQyAwMDNGOworM0QwMiAwMDNGOworM0QwOCAwMDNGOworM0QwRSAwMDNGOworM0QxNCAwMDNGOworM0QxQSAwMDNGOworM0QyMCAwMDNGOworM0QyNiAwMDNGOworM0QyQyAwMDNGOworM0QzMiAwMDNGOworM0QzNyAwMDNGOworM0QzRCAwMDNGOworM0Q0MyAwMDNGOworM0Q0OSAwMDNGOworM0Q0RiAwMDNGOworM0Q1NSAwMDNGOworM0Q1QiAwMDNGOworM0Q2MSAwMDNGOworM0Q2NyAwMDNGOworM0Q2RCAwMDNGOworM0Q3MyAwMDNGOworM0Q3OSAwMDNGOworM0Q3RiAwMDNGOworM0Q4NSAwMDNGOworM0Q4QiAwMDNGOworM0Q5MSAwMDNGOworM0Q5NiAwMDQxOworM0Q5QyAwMDNGOworM0RBMiAwMDNGOworM0RBOCAwMDNGOworM0RBRSAwMDNGOworM0RCNCAwMDNGOworM0RCQSAwMDNGOworM0RDMCAwMDNGOworM0RDNiAwMDNGOworM0RDQyAwMDNGOworM0REMiAwMDNGOworM0REOCAwMDNGOworM0RERSAwMDNGOworM0RFNCAwMDNGOworM0RFQSAwMDNGOworM0RGMCAwMDNGOworM0RGNiAwMDNGOworM0RGQyAwMDNGOworM0UwMiAwMDNGOworM0UwOCAwMDNGOworM0UwRSAwMDNGOworM0UxNCAwMDNGOworM0UxQSAwMDNGOworM0UyMCAwMDNGOworM0UyNiAwMDNGOworM0UyQyAwMDNGOworM0UzMiAwMDNGOworM0UzOCAwMDNGOworM0UzRSAwMDNGOworM0U0NCAwMDNGOworM0U0QSAwMDNGOworM0U1MCAwMDNGOworM0U1NiAwMDNGOworM0U1QyAwMDNGOworM0U2MiAwMDNGOworM0U2OCAwMDNGOworM0U2RSAwMDNGOworM0U3NCAwMDNGOworM0U3QSAwMDNGOworM0U4MCAwMDNGOworM0U4NiAwMDNGOworM0U4QyAwMDNGOworM0U5MiAwMDNGOworM0U5OCAwMDNGOworM0U5RSAwMDNGOworM0VBNCAwMDNGOworM0VBQSAwMDNGOworM0VBRiAwMDNGOworM0VCNSAwMDNGOworM0VCOSAwMDNGOworM0VCRiAwMDNGOworM0VDNSAwMDNGOworM0VDQiAwMDNGOworM0VEMSAwMDNGOworM0VENyAwMDNGOworM0VERCAwMDNGOworM0VFMyAwMDNGOworM0VFOSAwMDNGOworM0VFRiAwMDNGOworM0VGNSAwMDNGOworM0VGQiAwMDNGOworM0YwMSAwMDNGOworM0YwNyAwMDNGOworM0YwRCAwMDNGOworM0YxMyAwMDNGOworM0YxOSAwMDNGOworM0YxRSAwMDNGOworM0YyNCAwMDNGOworM0YyQSAwMDNGOworM0YzMCAwMDNGOworM0YzNiAwMDNGOworM0YzQyAwMDNGOworM0Y0MiAwMDNGOworM0Y0OCAwMDNGOworM0Y0RSAwMDNGOworM0Y1NCAwMDNGOworM0Y1QSAwMDNGOworM0Y2MCAwMDNGOworM0Y2NiAwMDNGOworM0Y2QyAwMDNGOworM0Y3MiAwMDNGOworM0Y3OCAwMDNGOworM0Y3RSAwMDNGOworM0Y4NCAwMDNGOworM0Y4QSAwMDNGOworM0Y5MCAwMDNGOworM0Y5NiAwMDNGOworM0Y5QyAwMDNGOworM0ZBMiAwMDNGOworM0ZBOCAwMDNGOworM0ZBRSAwMDNGOworM0ZCNCAwMDNGOworM0ZCQSAwMDNGOworM0ZDMCAwMDNGOworM0ZDNiAwMDNGOworM0ZDQyAwMDNGOworM0ZEMiAwMDNGOworM0ZEOCAwMDNGOworM0ZERSAwMDNGOworM0ZFNCAwMDNGOworM0ZFQSAwMDNGOworM0ZGMCAwMDNGOworM0ZGNiAwMDNGOworMkY5M0UgMDAyMTsKKzQwMDEgMDAzRjsKKzQwMDcgMDAzRjsKKzQwMEMgMDAzRjsKKzQwMTIgMDAzRjsKK0ZBRDMgMDAyMTsKKzQwMUQgMDAzRjsKKzQwMjMgMDAzRjsKKzQwMjkgMDAzRjsKKzQwMkYgMDAzRjsKKzQwMzUgMDAzRjsKKzJGOTQ5IDAwNDE7Cis0MDNGIDAwM0Y7Cis0MDQ1IDAwM0Y7Cis0MDRBIDAwM0Y7Cis0MDUwIDAwM0Y7Cis0MDU2IDAwM0Y7Cis0MDVDIDAwM0Y7Cis0MDYyIDAwM0Y7Cis0MDY4IDAwM0Y7Cis0MDZFIDAwM0Y7Cis0MDc0IDAwM0Y7Cis0MDdBIDAwM0Y7Cis0MDgwIDAwM0Y7Cis0MDg2IDAwM0Y7Cis0MDhDIDAwM0Y7Cis0MDkyIDAwM0Y7Cis0MDk3IDAwM0Y7Cis0MDlEIDAwM0Y7Cis0MEEzIDAwM0Y7Cis0MEE5IDAwM0Y7Cis0MEFGIDAwM0Y7Cis0MEI1IDAwM0Y7Cis0MEJCIDAwM0Y7Cis0MEMxIDAwM0Y7Cis0MEM3IDAwM0Y7Cis0MENEIDAwM0Y7Cis0MEQzIDAwM0Y7Cis0MEQ5IDAwM0Y7Cis0MERGIDAwM0Y7Cis0MEU0IDAwM0Y7Cis0MEVBIDAwM0Y7Cis0MEYwIDAwM0Y7Cis0MEY2IDAwM0Y7Cis0MEZDIDAwM0Y7Cis0MTAyIDAwM0Y7Cis0MTA4IDAwM0Y7Cis0MTBFIDAwM0Y7Cis0MTE0IDAwM0Y7Cis0MTFBIDAwM0Y7Cis0MTIwIDAwM0Y7Cis0MTI2IDAwM0Y7Cis0MTJDIDAwM0Y7Cis0MTMxIDAwM0Y7Cis0MTM3IDAwM0Y7Cis0MTNEIDAwM0Y7Cis0MTQzIDAwM0Y7Cis0MTQ5IDAwM0Y7Cis0MTRGIDAwM0Y7Cis0MTU1IDAwM0Y7Cis0MTVCIDAwM0Y7Cis0MTYxIDAwM0Y7Cis0MTY3IDAwM0Y7Cis0MTZEIDAwM0Y7Cis0MTczIDAwM0Y7Cis0MTc5IDAwM0Y7Cis0MTdGIDAwM0Y7Cis0MTg1IDAwM0Y7Cis0MThCIDAwM0Y7Cis0MTkxIDAwM0Y7Cis0MTk3IDAwM0Y7Cis0MTlEIDAwM0Y7Cis0MUEzIDAwM0Y7Cis0MUE5IDAwM0Y7Cis0MUFGIDAwM0Y7Cis0MUI1IDAwM0Y7Cis0MUJCIDAwM0Y7Cis0MUMxIDAwM0Y7Cis0MUM3IDAwM0Y7Cis0MUNEIDAwM0Y7Cis0MUQzIDAwM0Y7Cis0MUQ5IDAwM0Y7Cis0MURGIDAwM0Y7Cis0MUU1IDAwM0Y7Cis0MUVCIDAwM0Y7Cis0MUYxIDAwM0Y7Cis0MUY3IDAwM0Y7Cis0MUZEIDAwM0Y7Cis0MjAyIDAwNDE7Cis0MjA4IDAwM0Y7Cis0MjBFIDAwM0Y7Cis0MjE0IDAwM0Y7Cis0MjFBIDAwM0Y7Cis0MjIwIDAwM0Y7Cis0MjI2IDAwM0Y7Cis0MjJCIDAwM0Y7Cis0MjMxIDAwM0Y7Cis0MjM3IDAwM0Y7Cis0MjNEIDAwM0Y7Cis0MjQzIDAwM0Y7Cis0MjQ5IDAwM0Y7Cis0MjRGIDAwM0Y7Cis0MjU1IDAwM0Y7Cis0MjVCIDAwM0Y7Cis0MjYxIDAwM0Y7Cis0MjY3IDAwM0Y7Cis0MjZEIDAwM0Y7Cis0MjczIDAwM0Y7Cis0Mjc5IDAwM0Y7Cis0MjdGIDAwM0Y7Cis0Mjg1IDAwM0Y7Cis0MjhCIDAwM0Y7Cis0MjkxIDAwM0Y7Cis0Mjk3IDAwM0Y7Cis0MjlEIDAwM0Y7Cis0MkEyIDAwM0Y7Cis0MkE4IDAwM0Y7Cis0MkFFIDAwM0Y7Cis0MkI0IDAwM0Y7Cis0MkJBIDAwM0Y7Cis0MkMwIDAwM0Y7Cis0MkM2IDAwM0Y7Cis0MkNDIDAwM0Y7Cis0MkQyIDAwM0Y7Cis0MkQ4IDAwM0Y7Cis0MkRFIDAwM0Y7Cis0MkU0IDAwM0Y7Cis0MkVBIDAwM0Y7Cis0MkYwIDAwM0Y7Cis0MkY2IDAwM0Y7Cis0MkZDIDAwM0Y7Cis0MzAxIDAwNDE7Cis0MzA3IDAwM0Y7Cis0MzBEIDAwM0Y7Cis0MzEzIDAwM0Y7Cis0MzE5IDAwM0Y7Cis0MzFGIDAwM0Y7Cis0MzI1IDAwM0Y7Cis0MzJCIDAwM0Y7Cis0MzMxIDAwM0Y7Cis0MzM2IDAwM0Y7Cis0MzNDIDAwM0Y7Cis0MzQyIDAwM0Y7Cis0MzQ4IDAwM0Y7Cis0MzRFIDAwM0Y7Cis0MzU0IDAwM0Y7Cis0MzU5IDAwNDE7Cis0MzVGIDAwM0Y7Cis0MzY1IDAwM0Y7Cis0MzZCIDAwM0Y7Cis0MzcxIDAwM0Y7Cis0Mzc3IDAwM0Y7Cis0MzdEIDAwM0Y7Cis0MzgzIDAwM0Y7Cis0Mzg5IDAwM0Y7Cis0MzhGIDAwM0Y7Cis0Mzk1IDAwM0Y7Cis0MzlCIDAwM0Y7Cis0M0ExIDAwM0Y7Cis0M0E3IDAwM0Y7Cis0M0FEIDAwM0Y7Cis0M0IzIDAwM0Y7Cis0M0I5IDAwM0Y7Cis0M0JGIDAwM0Y7Cis0M0M1IDAwM0Y7Cis0M0NCIDAwM0Y7Cis0M0QxIDAwM0Y7Cis0M0Q2IDAwM0Y7Cis0M0RCIDAwM0Y7Cis0M0UxIDAwM0Y7Cis0M0U3IDAwM0Y7Cis0M0VEIDAwM0Y7Cis0M0YzIDAwM0Y7Cis0M0Y5IDAwM0Y7Cis0M0ZGIDAwM0Y7Cis0NDA1IDAwM0Y7CisyRjk4NCAwMDIxOworNDQxMCAwMDNGOworNDQxNiAwMDNGOworNDQxQyAwMDNGOworNDQyMiAwMDNGOworNDQyOCAwMDNGOworNDQyRSAwMDNGOworNDQzNCAwMDNGOworNDQzQSAwMDNGOworNDQ0MCAwMDNGOworNDQ0NiAwMDNGOworNDQ0QyAwMDNGOworNDQ1MiAwMDNGOworNDQ1OCAwMDNGOworNDQ1RSAwMDNGOworNDQ2NCAwMDNGOworNDQ2QSAwMDNGOworNDQ2RiAwMDNGOworNDQ3NSAwMDNGOworNDQ3QiAwMDNGOworNDQ4MSAwMDNGOworNDQ4NyAwMDNGOworNDQ4RCAwMDNGOworNDQ5MyAwMDNGOworNDQ5OSAwMDNGOworNDQ5RiAwMDNGOworNDRBNSAwMDNGOworNDRBQiAwMDNGOworNDRCMSAwMDNGOworNDRCNyAwMDNGOworNDRCRCAwMDNGOworNDRDMyAwMDNGOworNDRDOSAwMDNGOworNDRDRiAwMDNGOworNDRENSAwMDNGOworNDREQiAwMDNGOworNDRFMSAwMDNGOworNDRFNyAwMDNGOworNDRFRCAwMDNGOworNDRGMyAwMDNGOworNDRGOSAwMDNGOworNDRGRiAwMDNGOworNDUwNSAwMDNGOworNDUwQiAwMDNGOworNDUxMSAwMDNGOworNDUxNyAwMDNGOworNDUxRCAwMDNGOworNDUyMyAwMDNGOworNDUyOSAwMDNGOworNDUyRSAwMDNGOworNDUzNCAwMDNGOworNDUzQSAwMDNGOworNDU0MCAwMDNGOworNDU0NiAwMDNGOworNDU0QyAwMDNGOworNDU1MiAwMDNGOworNDU1OCAwMDNGOworNDU1RCAwMDQxOworNDU2MiAwMDNGOworNDU2OCAwMDNGOworNDU2RCAwMDNGOworNDU3MyAwMDNGOworNDU3OSAwMDNGOworNDU3RiAwMDNGOworNDU4NSAwMDNGOworNDU4QiAwMDNGOworNDU5MSAwMDNGOworNDU5NyAwMDNGOworNDU5RCAwMDNGOworNDVBMyAwMDNGOworNDVBOSAwMDNGOworNDVBRiAwMDNGOworNDVCNSAwMDNGOworNDVCQiAwMDNGOworNDVDMSAwMDNGOworNDVDNyAwMDNGOworNDVDRCAwMDNGOworNDVEMyAwMDNGOworNDVEOCAwMDNGOworNDVERSAwMDNGOworNDVFNCAwMDNGOworNDVFQSAwMDNGOworNDVGMCAwMDNGOworNDVGNiAwMDNGOworNDVGQiAwMDNGOworNDYwMSAwMDNGOworNDYwNyAwMDNGOworNDYwRCAwMDNGOworNDYxMyAwMDNGOworNDYxOSAwMDNGOworNDYxRiAwMDNGOworNDYyNSAwMDNGOworNDYyQiAwMDNGOworNDYzMSAwMDNGOworNDYzNiAwMDNGOworNDYzQyAwMDNGOworNDY0MiAwMDNGOworNDY0OCAwMDNGOworNDY0RSAwMDNGOworNDY1NCAwMDNGOworNDY1QSAwMDNGOworNDY2MCAwMDNGOworNDY2NiAwMDNGOworNDY2QyAwMDNGOworNDY3MiAwMDNGOworNDY3OCAwMDNGOworNDY3RSAwMDNGOworNDY4NCAwMDNGOworNDY4QSAwMDNGOworNDY5MCAwMDNGOworNDY5NiAwMDNGOworNDY5QyAwMDNGOworNDZBMiAwMDNGOworNDZBOCAwMDNGOworNDZBRSAwMDNGOworNDZCNCAwMDNGOworNDZCQSAwMDNGOworNDZCRiAwMDNGOworNDZDNSAwMDNGOworNDZDQSAwMDNGOworNDZEMCAwMDNGOworNDZENiAwMDNGOworNDZEQyAwMDNGOworNDZFMiAwMDNGOworNDZFOCAwMDNGOworNDZFRSAwMDNGOworNDZGNCAwMDNGOworNDZGQSAwMDNGOworNDcwMCAwMDNGOworNDcwNiAwMDNGOworNDcwQyAwMDNGOworNDcxMiAwMDNGOworNDcxOCAwMDNGOworNDcxRSAwMDNGOworNDcyNCAwMDNGOworNDcyQSAwMDNGOworNDczMCAwMDNGOworNDczNiAwMDNGOworNDczQyAwMDNGOworNDc0MiAwMDNGOworNDc0OCAwMDNGOworNDc0RSAwMDNGOworNDc1NCAwMDNGOworNDc1QSAwMDNGOworNDc2MCAwMDNGOworNDc2NiAwMDNGOworNDc2QyAwMDNGOworNDc3MiAwMDNGOworNDc3OCAwMDNGOworNDc3RSAwMDNGOworNDc4NCAwMDNGOworNDc4QSAwMDNGOworNDc5MCAwMDNGOworNDc5NiAwMDNGOworNDc5QyAwMDNGOworNDdBMiAwMDNGOworNDdBOCAwMDNGOworNDdBRSAwMDNGOworNDdCNCAwMDNGOworNDdCQSAwMDNGOworNDdDMCAwMDNGOworNDdDNiAwMDNGOworNDdDQyAwMDNGOworNDdEMiAwMDNGOworNDdEOCAwMDNGOworNDdERSAwMDNGOworNDdFNCAwMDNGOworNDdFQSAwMDNGOworNDdGMCAwMDNGOworNDdGNiAwMDNGOworNDdGQyAwMDNGOworNDgwMiAwMDNGOworNDgwOCAwMDNGOworNDgwRSAwMDNGOworNDgxNCAwMDNGOworNDgxQSAwMDNGOworNDgyMCAwMDNGOworNDgyNiAwMDNGOworNDgyQyAwMDNGOworNDgzMiAwMDNGOworNDgzOCAwMDNGOworNDgzRSAwMDNGOworNDg0NCAwMDNGOworNDg0QSAwMDNGOworNDg1MCAwMDNGOworNDg1NiAwMDNGOworNDg1QyAwMDNGOworNDg2MiAwMDNGOworNDg2OCAwMDNGOworNDg2RSAwMDNGOworNDg3NCAwMDNGOworNDg3QSAwMDNGOworNDg4MCAwMDNGOworNDg4NiAwMDNGOworNDg4QyAwMDNGOworNDg5MiAwMDNGOworNDg5OCAwMDNGOworNDg5RSAwMDNGOworNDhBNCAwMDNGOworNDhBQSAwMDNGOworNDhCMCAwMDNGOworNDhCNiAwMDNGOworNDhCQyAwMDNGOworNDhDMiAwMDNGOworNDhDOCAwMDNGOworNDhDRSAwMDNGOworNDhENCAwMDNGOworNDhEQSAwMDNGOworNDhFMCAwMDNGOworNDhFNiAwMDNGOworNDhFQyAwMDNGOworNDhGMiAwMDNGOworNDhGOCAwMDNGOworNDhGRSAwMDNGOworNDkwNCAwMDNGOworNDkwQSAwMDNGOworNDkxMCAwMDNGOworNDkxNiAwMDNGOworNDkxQyAwMDNGOworNDkyMiAwMDNGOworNDkyOCAwMDNGOworNDkyRSAwMDNGOworNDkzNCAwMDNGOworNDkzQSAwMDNGOworNDk0MCAwMDNGOworNDk0NiAwMDNGOworNDk0QyAwMDNGOworNDk1MiAwMDNGOworNDk1OCAwMDNGOworNDk1RSAwMDNGOworNDk2NCAwMDNGOworNDk2QSAwMDNGOworNDk3MCAwMDNGOworNDk3NiAwMDNGOworNDk3QyAwMDNGOworNDk4MiAwMDNGOworNDk4OCAwMDNGOworNDk4RSAwMDNGOworNDk5NCAwMDNGOworNDk5OSAwMDNGOworNDk5RiAwMDNGOworNDlBNSAwMDNGOworNDlBQiAwMDNGOworNDlCMSAwMDNGOworNDlCNyAwMDNGOworNDlCRCAwMDNGOworNDlDMyAwMDNGOworNDlDOSAwMDNGOworNDlDRiAwMDNGOworNDlENSAwMDNGOworNDlEQiAwMDNGOworNDlFMSAwMDNGOworNDlFNiAwMDQxOworNDlFQyAwMDNGOworNDlGMiAwMDNGOworNDlGOCAwMDNGOworNDlGRSAwMDNGOworNEEwNCAwMDNGOworNEEwQSAwMDNGOworNEExMCAwMDNGOworNEExNiAwMDNGOworNEExQyAwMDNGOworNEEyMiAwMDNGOworNEEyOCAwMDNGOworNEEyRSAwMDNGOworNEEzNCAwMDNGOworNEEzQSAwMDNGOworNEE0MCAwMDNGOworNEE0NiAwMDNGOworNEE0QyAwMDNGOworNEE1MiAwMDNGOworNEE1OCAwMDNGOworNEE1RSAwMDNGOworNEE2NCAwMDNGOworNEE2QSAwMDNGOworNEE2RiAwMDNGOworNEE3NSAwMDNGOworNEE3QSAwMDNGOworNEE4MCAwMDNGOworNEE4NiAwMDNGOworNEE4QyAwMDNGOworNEE5MiAwMDNGOworNEE5OCAwMDNGOworNEE5RSAwMDNGOworNEFBNCAwMDNGOworNEFBQSAwMDNGOworNEFCMCAwMDNGOworNEFCNSAwMDNGOworNEFCQiAwMDNGOworNEFDMSAwMDNGOworNEFDNyAwMDNGOworNEFDRCAwMDNGOworNEFEMyAwMDNGOworNEFEOSAwMDNGOworNEFERiAwMDNGOworNEFFNSAwMDNGOworNEFFQiAwMDNGOworNEFGMSAwMDNGOworNEFGNyAwMDNGOworNEFGRCAwMDNGOworNEIwMyAwMDNGOworNEIwOSAwMDNGOworNEIwRiAwMDNGOworNEIxNSAwMDNGOworNEIxQiAwMDNGOworNEIyMSAwMDNGOworNEIyNyAwMDNGOworNEIyRCAwMDNGOworMkZBMDMgMDAyMTsKKzRCMzggMDAzRjsKKzRCM0UgMDAzRjsKKzRCNDQgMDAzRjsKKzRCNEEgMDAzRjsKKzRCNTAgMDAzRjsKKzRCNTYgMDAzRjsKKzRCNUMgMDAzRjsKKzRCNjIgMDAzRjsKKzRCNjggMDAzRjsKKzRCNkUgMDAzRjsKKzRCNzQgMDAzRjsKKzRCN0EgMDAzRjsKKzRCODAgMDAzRjsKKzRCODYgMDAzRjsKKzRCOEMgMDAzRjsKKzRCOTIgMDAzRjsKKzRCOTggMDAzRjsKKzRCOUUgMDAzRjsKKzRCQTQgMDAzRjsKKzRCQUEgMDAzRjsKKzRCQjAgMDAzRjsKKzRCQjYgMDAzRjsKKzRCQkMgMDAzRjsKKzRCQzIgMDAzRjsKKzRCQzggMDAzRjsKKzJGQTA4IDAwMjE7Cis0QkQzIDAwM0Y7Cis0QkQ5IDAwM0Y7Cis0QkRGIDAwM0Y7Cis0QkU1IDAwM0Y7Cis0QkVCIDAwM0Y7Cis0QkYxIDAwM0Y7Cis0QkY3IDAwM0Y7Cis0QkZEIDAwM0Y7Cis0QzAzIDAwM0Y7Cis0QzA5IDAwM0Y7Cis0QzBGIDAwM0Y7Cis0QzE1IDAwM0Y7Cis0QzFCIDAwM0Y7Cis0QzIxIDAwM0Y7Cis0QzI3IDAwM0Y7Cis0QzJEIDAwM0Y7Cis0QzMzIDAwM0Y7Cis0QzM5IDAwM0Y7Cis0QzNGIDAwM0Y7Cis0QzQ1IDAwM0Y7Cis0QzRCIDAwM0Y7Cis0QzUxIDAwM0Y7Cis0QzU3IDAwM0Y7Cis0QzVEIDAwM0Y7Cis0QzYzIDAwM0Y7Cis0QzY5IDAwM0Y7Cis0QzZGIDAwM0Y7Cis0Qzc1IDAwM0Y7Cis0QzdCIDAwM0Y7Cis0QzgxIDAwM0Y7Cis0Qzg3IDAwM0Y7Cis0QzhEIDAwM0Y7Cis0QzkzIDAwM0Y7Cis0Qzk5IDAwM0Y7Cis0QzlGIDAwM0Y7Cis0Q0E1IDAwM0Y7Cis0Q0FCIDAwM0Y7Cis0Q0IxIDAwM0Y7Cis0Q0I3IDAwM0Y7Cis0Q0JEIDAwM0Y7Cis0Q0MzIDAwM0Y7Cis0Q0M5IDAwM0Y7Cis0Q0NFIDAwNDE7Cis0Q0Q0IDAwM0Y7Cis0Q0RBIDAwM0Y7Cis0Q0UwIDAwM0Y7Cis0Q0U2IDAwM0Y7Cis0Q0VDIDAwM0Y7Cis0Q0YxIDAwM0Y7Cis0Q0Y3IDAwM0Y7Cis0Q0ZDIDAwM0Y7Cis0RDAyIDAwM0Y7Cis0RDA4IDAwM0Y7Cis0RDBFIDAwM0Y7Cis0RDE0IDAwM0Y7Cis0RDFBIDAwM0Y7Cis0RDIwIDAwM0Y7Cis0RDI2IDAwM0Y7Cis0RDJDIDAwM0Y7Cis0RDMyIDAwM0Y7Cis0RDM4IDAwM0Y7Cis0RDNFIDAwM0Y7Cis0RDQ0IDAwM0Y7Cis0RDRBIDAwM0Y7Cis0RDUwIDAwM0Y7CisyRkExNiAwMDIxOworNEQ1QiAwMDNGOworNEQ2MSAwMDNGOworNEQ2NyAwMDNGOworNEQ2RCAwMDNGOworNEQ3MyAwMDNGOworNEQ3OSAwMDNGOworNEQ3RiAwMDNGOworNEQ4NSAwMDNGOworNEQ4QiAwMDNGOworNEQ5MSAwMDNGOworNEQ5NyAwMDNGOworNEQ5RCAwMDNGOworNERBMyAwMDNGOworNERBOSAwMDNGOworNERBRiAwMDNGOworNERCNSAwMDNGOworMjAwMDUgMDAzRjsKKzJGOUQ5IDAwM0Y7CisyRjg2MSAwMDNGOworMkY4ODkgMDAzRjsKK0ZBQ0YgMDAzRjsKKzJGOTg5IDAwM0Y7CisyRjhGMCAwMDNGOworMkY5MTAgMDAzRjsKKzJGOTI3IDAwM0Y7CisyRjk0MiAwMDNGOworMkY5NTIgMDAzRjsKKzJGOTYxIDAwM0Y7CisyRjk3MyAwMDNGOworMkY5ODcgMDAzRjsKKzJGOUFEIDAwM0Y7CisyRjlDQyAwMDNGOworMkY5RTUgMDAzRjsKKzJGOUZCIDAwM0Y7CisyRkExMyAwMDNGOworMkE2RDMgMDAzRjsKK0UwMDEgMDAzRjsKK0Y4RkIgMDAzRjsKK0MwMDAwIDAwM0Y7CitFMDAwNSAwMDNGOworRjAwMDUgMDAzRjsKK0YwMEZEIDAwM0Y7CitGRkYwNSAwMDNGOworRkZGRkQgMDAzRjsKKzEwMDAwNSAwMDNGOworMTAwMEZEIDAwM0Y7CisxMEZGMDUgMDAzRjsKKzEwRkZGRCAwMDNGOwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL0lETkFUZXN0SW5wdXQudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL0lETkFUZXN0SW5wdXQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkYWQwOTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvSUROQVRlc3RJbnB1dC50eHQKQEAgLTAsMCArMSwxMjY2IEBACis9PT09PQorZGVzYzogQ29weXJpZ2h0IDIwMDMtMjAwNSBodHRwOi8vaWRuY29ubmVjdC5qZG5hLmpwL3Rlc3RiZWQuaHRtbCAKK25hbWViYXNlOiA8MDBFRD5kbgorbmFtZXV0Zjg6ID8/ZG4KK25hbWV6b25lOiB4bi0tZG4tbWphCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAyNTAyOTE1MworcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMS0xIEhhcyBvbmUgSUROCituYW1lYmFzZTogPDAwRUQ+ZG4KK25hbWV1dGY4OiA/P2RuCituYW1lem9uZTogeG4tLWRuLW1qYQorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMjUwMjkxNTMKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTEtMiBIYXMgdHdvIElETnMKK25hbWViYXNlOiA8MDBFQj54LjwwMEVEPmRuCituYW1ldXRmODogPz94Lj8/ZG4KK25hbWV6b25lOiB4bi0teC1lZ2EueG4tLWRuLW1qYQorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMDI3MjExNDEKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTItMSBMYXRpbi0xCituYW1lYmFzZTogPDAwRTU+PDAwRkU+PDAwRTc+CituYW1ldXRmODogPz8/Pz8/CituYW1lem9uZTogeG4tLTVjYWUyZQorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNDE1NDI2MjAKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTItMiBMYXRpbiBFeHRlbmRlZCBBCituYW1lYmFzZTogPDAxMDM+YjwwMTA5PgorbmFtZXV0Zjg6ID8/Yj8/CituYW1lem9uZTogeG4tLWItcmhhdAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNzIyMzg2MTcKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTItMyBMYXRpbiBFeHRlbmRlZCBCCituYW1lYmFzZTogPDAyMjc+PDAxODA+PDAxODg+CituYW1ldXRmODogPz8/Pz8/CituYW1lem9uZTogeG4tLWxoYXE5OGIKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDQ4NDY0MzYxCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0yLTQgTGF0aW4gRXh0ZW5kZWQgQWRkaXRpb25hbAorbmFtZWJhc2U6IDwxRTAxPjwxRTAzPjwxRTA5PgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS0yZmdlcworZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNDkzMDEyMzAKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTMtMSBIYW4KK25hbWViYXNlOiA8NEUzRj48NEVCQT48NUMzOD4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0teGlxcGxqMTdhCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA1ODM2NzExMworcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMy0yIEhpcmFnYW5hCituYW1lYmFzZTogPDMwNEI+PDMwNEM+PDMwNEQ+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLXU4amNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA1NzAwNjE5NworcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMy0zIEthdGFrYW5hCituYW1lYmFzZTogPDMwQUI+PDMwQUM+PDMwQUQ+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLWxja2NkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA4MTgyNjk5MgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtMy00IEhhbmd1bCBKYW1vCituYW1lYmFzZTogPDExMDA+PDExNjE+PDExQTg+CituYW1ldXRmODogPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLXAzOWEKK2ZhaWx6b25lMTogeG4tLXlwZDhxcmgKK2ZhaWx6b25lMjogCit0b2tlbjogNDQyMjgzNDYKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTMtNSBIYW5ndWwKK25hbWViYXNlOiA8QUM2OT48QjRDNj48QzAzQT4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tbzY5YXEybmwwagorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNzkyMzU2MDgKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTMtNiBZaQorbmFtZWJhc2U6IDxBMDBBPjxBMDIwPjxBMkI4PgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS02bDdhcmJ5N2oKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDk5NTQ5NzIwCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0zLTcgR3JlZWsKK25hbWViYXNlOiA8MDNCMT48MDNCMj48MDNCMz4KK25hbWV1dGY4OiA/Pz8/Pz8KK25hbWV6b25lOiB4bi0tbXhhY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDgzODU5OTEyCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS0zLTggR3JlZWsgRXh0ZW5kZWQKK25hbWViYXNlOiA8MUYwMj48MUYyNj48MUY1NT4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tZm5nN2RwZworZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMjI1MDEzMzkKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTMtOSBDeXJpbGxpYworbmFtZWJhc2U6IDwwNDMwPjwwNDMxPjwwNDMyPgorbmFtZXV0Zjg6ID8/Pz8/PworbmFtZXpvbmU6IHhuLS04MGFjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogOTg4NzE3NTEKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTMtMTAgQXJtZWlhbgorbmFtZWJhc2U6IDwwNTYxPjwwNTYyPjwwNTYzPgorbmFtZXV0Zjg6ID8/Pz8/PworbmFtZXpvbmU6IHhuLS15OWFjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMjM2ODcwMTUKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTMtMTEgR2VvcmdpYW4KK25hbWViYXNlOiA8MTBEMD48MTBEMT48MTBEMj4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tbG9kY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDcwNDk5NTg5CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS00LTEgU3ltYm9scworbmFtZWJhc2U6IDwyMjIxPjwyMUJBPjwyMjgyPgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1iN2d4b21rCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAyNDYxNzYzOAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNS0xIERldmFuYWdhcmkKK25hbWViYXNlOiA8MDkxNT48MDkxNj48MDkxNz4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tMTFiY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDE4NDc3MjIzCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTIgQmVuZ2FsaQorbmFtZWJhc2U6IDwwOTk1PjwwOTk2PjwwOTk3PgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1wNWJjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMTE0Nzc5MDQKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtMyBHdXJtdWtoaQorbmFtZWJhc2U6IDwwQTE1PjwwQTE2PjwwQTE3PgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1kOWJjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNzE1NDM1MDYKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtNCBHdWphcmF0aQorbmFtZWJhc2U6IDwwQTk1PjwwQTk2PjwwQTk3PgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS0wZGNjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNzUyNjg3NjAKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtNSBPcml5YQorbmFtZWJhc2U6IDwwQjE1PjwwQjE2PjwwQjE3PgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1vaGNjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMzYwNzk3NDcKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtNiBUYW1pbAorbmFtZWJhc2U6IDwwQjk1PjwwQjk5PjwwQjlBPgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1jbGNpZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMzk4NDE0NDYKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtNyBUZWx1Z3UKK25hbWViYXNlOiA8MEMxNT48MEMxNj48MEMxNz4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tem9jY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDM0NDM4ODA4CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTggS2FubmFkYQorbmFtZWJhc2U6IDwwQzk1PjwwQzk2PjwwQzk3PgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1uc2NjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNDIzMDM0NjUKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtOSBNYWxheWFsYW0KK25hbWViYXNlOiA8MEQxNT48MEQxNj48MEQxNz4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tYndjY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDExODEzNTU5CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTEwIFNpbmhhbGEKK25hbWViYXNlOiA8MEQ5QT48MEQ5Qj48MEQ5Qz4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tM3pjY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDg5ODIzMjA5CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTExIFRoYWkKK25hbWViYXNlOiA8MEUwMT48MEUwMj48MEUwMz4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0tMTJjY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDk0OTkyODQyCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTEyIExhbworbmFtZWJhc2U6IDwwRTgxPjwwRTgyPjwwRTg0PgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1wNmNjZworZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNDI0MjQzMzgKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtMTMgVGliZXRhbgorbmFtZWJhc2U6IDwwRjQwPjwwRjQxPjwwRjQyPgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS01Y2RjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMjY5NjI3NzgKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtMTQgTXlhbm1hcgorbmFtZWJhc2U6IDwxMDAwPjwxMDAxPjwxMDAyPgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS1uaWRjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMDk4MjQ2MTEKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTUtMTUgS2htZXIKK25hbWViYXNlOiA8MTc4MD48MTc4MT48MTc4Mj4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8KK25hbWV6b25lOiB4bi0taTJlY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDQ4MDcxMTU2CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS01LTE2IE1vbmdvbGlhbgorbmFtZWJhc2U6IDwxODIwPjwxODIxPjwxODIyPgorbmFtZXV0Zjg6ID8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS0yNmVjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNDAxMzE1NzIKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTYtMSBBcmFiaWMKK25hbWViYXNlOiA8MDYyNz48MDYyOD48MDYyOT4KK25hbWV1dGY4OiA/Pz8/Pz8KK25hbWV6b25lOiB4bi0tbWdiY2QKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDA2NDE0ODE3CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS02LTIgSGVicmV3CituYW1lYmFzZTogPDA1RDA+PDA1RDE+PDA1RDI+CituYW1ldXRmODogPz8/Pz8/CituYW1lem9uZTogeG4tLTRkYmNkCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA0MTk5NjcwNQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDEtNi0zIFN5cmlhYworbmFtZWJhc2U6IDwwNzEwPjwwNzExPjwwNzEyPgorbmFtZXV0Zjg6ID8/Pz8/PworbmFtZXpvbmU6IHhuLS05bWJjZAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNzc5MjUwODAKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAxLTctMSBBU0NJSSBhbmQgbm9uLUxhdGluCituYW1lYmFzZTogYWJjPDMwQUI+PDMwQUM+PDMwQUQ+CituYW1ldXRmODogYWJjPz8/Pz8/Pz8/CituYW1lem9uZTogeG4tLWFiYy1tajRiZmcKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDE0MzMzMzgwCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMS03LTIgTGF0aW4gKG5vbi1BU0NJSSkgYW5kIG5vbi1MYXRpbgorbmFtZWJhc2U6IDwwMEU1PjwwMEZFPjwwMEU3PjwzMEFCPjwzMEFDPjwzMEFEPgorbmFtZXV0Zjg6ID8/Pz8/Pz8/Pz8/Pz8/PworbmFtZXpvbmU6IHhuLS01Y2FlMmUzMjh3ZmFnCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAwMDg0ODI5OQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItMy0xLTEgSWYgVXNlU1REM0FTQ0lJUnVsZXM6IEluY2x1ZGVzICEgYmVmb3JlIE5hbWVwcmVwCituYW1lYmFzZTogPDAwRUQ+PDAwMjE+ZG4KK25hbWV1dGY4OiA/PyFkbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tIWRuLXFtYQorZmFpbHpvbmUyOiAKK3Rva2VuOiA4OTU3MTE4MQorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItMy0xLTIgSWYgVXNlU1REM0FTQ0lJUnVsZXM6IEluY2x1ZGVzICQgYmVmb3JlIE5hbWVwcmVwCituYW1lYmFzZTogPDAwRUQ+PDAwMjQ+ZG4KK25hbWV1dGY4OiA/PyRkbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tJGRuLXFtYQorZmFpbHpvbmUyOiAKK3Rva2VuOiAwNjk2NTkzNworcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItMy0xLTMgSWYgVXNlU1REM0FTQ0lJUnVsZXM6IEluY2x1ZGVzICsgYmVmb3JlIE5hbWVwcmVwCituYW1lYmFzZTogPDAwRUQ+PDAwMkI+ZG4KK25hbWV1dGY4OiA/PytkbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tK2RuLXFtYQorZmFpbHpvbmUyOiAKK3Rva2VuOiA5ODk2Nzk1MQorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItMy0yLTEgSWYgVXNlU1REM0FTQ0lJUnVsZXM6IExlYWRpbmcgaHlwaGVuIGJlZm9yZSBOYW1lcHJlcAorbmFtZWJhc2U6IDwwMDJEPjwwMEVEPjFkbgorbmFtZXV0Zjg6IC0/PzFkbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tLTFkbi12cGEKK2ZhaWx6b25lMjogCit0b2tlbjogNjU0NTcxMDAKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTMtMi0yIElmIFVzZVNURDNBU0NJSVJ1bGVzOiBUcmFpbGluZyBoeXBoZW4gYmVmb3JlIE5hbWVwcmVwCituYW1lYmFzZTogPDAwRUQ+MWRuPDAwMkQ+CituYW1ldXRmODogPz8xZG4tCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS0xZG4tLXVwYQorZmFpbHpvbmUyOiAKK3Rva2VuOiA4NTYyOTcxNAorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItMy0zLTEgSWYgVXNlU1REM0FTQ0lJUnVsZXM6IEdldHMgYSArIGFmdGVyIE5hbWVwcmVwCituYW1lYmFzZTogPDAwRUQ+PEZGMEI+ZG4KK25hbWV1dGY4OiA/Pz8/P2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1kbi1tamEwMzMxeAorZmFpbHpvbmUyOiAKK3Rva2VuOiA5NTIzNjYyMAorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItMy0zLTIgSWYgVXNlU1REM0FTQ0lJUnVsZXM6IEdldHMgYSA9IGFmdGVyIE5hbWVwcmVwCituYW1lYmFzZTogPDAwRUQ+PDIwN0M+ZG4KK25hbWV1dGY4OiA/Pz8/P2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1kbi1tamEwMzQzYQorZmFpbHpvbmUyOiAKK3Rva2VuOiAwNDk2MDY2NAorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItMy00LTEgSWYgVXNlU1REM0FTQ0lJUnVsZXM6IExlYWRpbmcgaHlwaGVuIGFmdGVyIE5hbWVwcmVwCituYW1lYmFzZTogPEZFNjM+PDAwRUQ+MmRuCituYW1ldXRmODogPz8/Pz8yZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLTJkbi1xbWEzMjg2M2EKK2ZhaWx6b25lMjogeG4tLS0yZG4tdnBhCit0b2tlbjogNTM1MTIwNjkKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTMtNC0yIElmIFVzZVNURDNBU0NJSVJ1bGVzOiBUcmFpbGluZyBoeXBoZW4gYWZ0ZXIgTmFtZXByZXAKK25hbWViYXNlOiA8MDBFRD4yZG48RkYwRD4KK25hbWV1dGY4OiA/PzJkbj8/PworbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tMmRuLXFtYTc5MzYzYQorZmFpbHpvbmUyOiB4bi0tMmRuLS11cGEKK3Rva2VuOiAzOTkzODY1MworcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItNC0xIEFsbC1BU0NJSSBjaGVjaywgTGF0aW4KK25hbWViYXNlOiA8MDBCOT4xCituYW1ldXRmODogPz8xCituYW1lem9uZTogMTEKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDQzNjExMzc0CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi00LTIgQWxsLUFTQ0lJIGNoZWNrLCBzeW1ib2wKK25hbWViYXNlOiA8MjE2NT52aQorbmFtZXV0Zjg6ID8/P3ZpCituYW1lem9uZTogdml2aQorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogNzk5Mzk5OTMKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTQtMyBBbGwtQVNDSUkgY2hlY2ssIHNoYXJwIFMKK25hbWViYXNlOiA8MDBERj5zcworbmFtZXV0Zjg6ID8/c3MKK25hbWV6b25lOiBzc3NzCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA3MTI5MjUzMAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItNS0xIEFDRSBwcmVmaXggZXhpc3RzIGJlZm9yZSBOYW1lcHJlcAorbmFtZWJhc2U6IHhuLS08MDBFRj5kbgorbmFtZXV0Zjg6IHhuLS0/P2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS14bi0tZG4tc2phCitmYWlsem9uZTI6IHhuLS1kbi1zamEKK3Rva2VuOiAzMjg0MTUxNQorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItNS0yIEFDRSBwcmVmaXggYXBwZWFycyBhZnRlciBOYW1lcHJlcAorbmFtZWJhc2U6IDwyMTc5Pm4tLTwwMEU0PmRuCituYW1ldXRmODogPz8/bi0tPz9kbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0teG4tLWRuLXVpYQorZmFpbHpvbmUyOiB4bi0tZG4tdWlhCit0b2tlbjogNTI5OTQ2MzEKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiAyLTgtMSBaZXJvLWxlbmd0aCBsYWJlbCBhZnRlciBOYW1lcHJlcAorbmFtZWJhc2U6IDwwMEFEPgorbmFtZXV0Zjg6IAorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0ta2JhCitmYWlsem9uZTI6IHhuLS0KK3Rva2VuOiAxODQyMDAzNworcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDItOS0xIFUrMzAwMiBhY3RzIGFzIGEgbGFiZWwgc2VwYXJhdG9yCituYW1lYmFzZTogMzAwMi10ZXN0PDMwMDI+PDAwRUQ+ZG4KK25hbWV1dGY4OiAzMDAyLXRlc3Q/Pz8/P2RuCituYW1lem9uZTogMzAwMi10ZXN0LnhuLS1kbi1tamEKK2ZhaWx6b25lMTogeG4tLTMwMDItdGVzdGRuLXdjYjIwODdtCitmYWlsem9uZTI6IAordG9rZW46IDE0MjE3NDIyCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi05LTIgVStGRjBFIGFjdHMgYXMgYSBsYWJlbCBzZXBhcmF0b3IKK25hbWViYXNlOiBmZjBlLXRlc3Q8RkYwRT48MDBFRD5kbgorbmFtZXV0Zjg6IGZmMGUtdGVzdD8/Pz8/ZG4KK25hbWV6b25lOiBmZjBlLXRlc3QueG4tLWRuLW1qYQorZmFpbHpvbmUxOiB4bi0tZmYwZS10ZXN0ZG4td2NiNDU4NjVmCitmYWlsem9uZTI6IAordG9rZW46IDk0NTc5MTc5CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMi05LTMgVStGRjYxIGFjdHMgYXMgYSBsYWJlbCBzZXBhcmF0b3IKK25hbWViYXNlOiBmZjYxLXRlc3Q8RkY2MT48MDBFRD5kbgorbmFtZXV0Zjg6IGZmNjEtdGVzdD8/Pz8/ZG4KK25hbWV6b25lOiBmZjYxLXRlc3QueG4tLWRuLW1qYQorZmFpbHpvbmUxOiB4bi0tZmY2MS10ZXN0ZG4td2NiMzM5NzVmCitmYWlsem9uZTI6IAordG9rZW46IDI3MDg0MDQyCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogMy0yLTEgU2hhcnAgUyBjb252ZXJzaW9uOyBzaG91bGQgZGlzcGxheSBhcyBtPDAwRUI+c3MKK25hbWViYXNlOiB4bi0tbTwwMERGPi1qbWEKK25hbWV1dGY4OiB4bi0tbT8/LWptYQorbmFtZXpvbmU6IG08MDBFQj5zcworZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogODUxNDI0NDkKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b3VuaWNvZGUKKworPT09PT0KK2Rlc2M6IDMtMy0xIE9sZCBwcmVmaXg7IHNob3VsZCBub3QgZGlzcGxheSBhcyBVbmljb2RlOzxpY3U+IElDVSB3aWxsIHRyZWF0IHRoaXMgYXMgQVNDSUkuIFRoaXMgc2VxdWVuY2UgaXMgbm90IGV4cGxpY2l0bHkgcHJvaGliaXRlZCBieSB0aGUgUkZDLjwvaWN1PgorbmFtZWJhc2U6IGllc2ctLWRuLW1qYQorbmFtZXV0Zjg6IGllc2ctLWRuLW1qYQorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMzU5OTYzNTgKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b3VuaWNvZGUKKworPT09PT0KK2Rlc2M6IDMtMy0yIE9sZCBwcmVmaXg7IHNob3VsZCBub3QgZGlzcGxheSBhcyBVbmljb2RlOzxpY3U+IElDVSB3aWxsIHRyZWF0IHRoaXMgYXMgQVNDSUkuIFRoaXMgc2VxdWVuY2UgaXMgbm90IGV4cGxpY2l0bHkgcHJvaGliaXRlZCBieSB0aGUgUkZDLjwvaWN1PgorbmFtZWJhc2U6IGllc2dkbi1tamEKK25hbWV1dGY4OiBpZXNnZG4tbWphCituYW1lem9uZTogCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAxMzY5MzQ2NworcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvdW5pY29kZQorCis9PT09PQorZGVzYzogMy0zLTMgT2xkIHByZWZpeDsgc2hvdWxkIG5vdCBkaXNwbGF5IGFzIFVuaWNvZGU7PGljdT4gSUNVIHdpbGwgdHJlYXQgdGhpcyBhcyBBU0NJSS4gVGhpcyBzZXF1ZW5jZSBpcyBub3QgZXhwbGljaXRseSBwcm9oaWJpdGVkIGJ5IHRoZSBSRkMuPC9pY3U+CituYW1lYmFzZTogYnEtLWRuLW1qYQorbmFtZXV0Zjg6IGJxLS1kbi1tamEKK25hbWV6b25lOiAKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDc3MDQ5NzE5CitwYXNzZmFpbDogZmFpbAordHlwZTogdG91bmljb2RlCisKKz09PT09CitkZXNjOiAzLTUtMSBOb24tQVNDSUkgY29kZSBwb2ludCBiZWZvcmUgdGhlIGxhc3QgaHlwaGVuO1wKKyBzaG91bGQgbm90IGRpc3BsYXkgYXMgVW5pY29kZQorbmFtZWJhc2U6IHhuLS1kPDAwRjE+LW1qYQorbmFtZXV0Zjg6IHhuLS1kPz8tbWphCituYW1lem9uZTogCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA1MzA0MzE3MQorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvdW5pY29kZQorCis9PT09PQorZGVzYzogMy01LTIgTm9uLWFscGhhbnVtZXJpYyBjb2RlIHBvaW50IGFmdGVyIHRoZSBsYXN0IGh5cGhlbjtcCisgc2hvdWxkIG5vdCBkaXNwbGF5IGFzIFVuaWNvZGUKK25hbWViYXNlOiB4bi0tZG4tbWorCituYW1ldXRmODogeG4tLWRuLW1qKworbmFtZXpvbmU6IAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMjQ2MjY0OTQKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b3VuaWNvZGUKKworPT09PT0KK2Rlc2M6IDMtNS0zIEVuZHMgaW4gdGhlIG1pZGRsZSBvZiBhbiBlbmNvZGVkIGRlbHRhIHZhbHVlO1wKKyBzaG91bGQgbm90IGRpc3BsYXkgYXMgVW5pY29kZQorbmFtZWJhc2U6IHhuLS1kbi1tagorbmFtZXV0Zjg6IHhuLS1kbi1tagorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMzA5MjExMzIKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b3VuaWNvZGUKKworPT09PT0KK2Rlc2M6IDMtNi0xIE5hbWVwcmVwIC0tIHByb2hpYml0ZWQgY2hhcmFjdGVyIFUrRTAwMDtcCisgc2hvdWxkIG5vdCBkaXNwbGF5IGFzIFVuaWNvZGUKK25hbWViYXNlOiB4bi0tZTAwMGRuLWw3MDRhCituYW1ldXRmODogeG4tLWUwMDBkbi1sNzA0YQorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMDIzNTk3NTMKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b3VuaWNvZGUKKworPT09PT0KK2Rlc2M6IDMtNi0yIElmIHVzaW5nIFVzZVNURDNBU0NJSVJ1bGVzLCBTdGVwIDNhIC0tIGxlYWRpbmcgaHlwaGVuOyBzaG91bGQgbm90IGRpc3BsYXkgYXMgVW5pY29kZQorbmFtZWJhc2U6IHhuLS0tM2RuLXZwYQorbmFtZXV0Zjg6IHhuLS0tM2RuLXZwYQorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogOTk3OTUxNjUKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b3VuaWNvZGUKKworPT09PT0KK2Rlc2M6IDMtNi0zIElmIHVzaW5nIFVzZVNURDNBU0NJSVJ1bGVzLCBTdGVwIDNiIC0tIHRyYWlsaW5nIGh5cGhlbjsgc2hvdWxkIG5vdCBkaXNwbGF5IGFzIFVuaWNvZGUKK25hbWViYXNlOiB4bi0tM2RuLS11cGEKK25hbWV1dGY4OiB4bi0tM2RuLS11cGEKK25hbWV6b25lOiAKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDg2MDUxNzE3CitwYXNzZmFpbDogZmFpbAordHlwZTogdG91bmljb2RlCisKKz09PT09CitkZXNjOiAzLTYtNCBTdGVwIDUgLS0gcHJlZml4IGV4aXN0czsgc2hvdWxkIG5vdCBkaXNwbGF5IGFzIFVuaWNvZGUKK25hbWViYXNlOiB4bi0teG4tLWRuLTZ2YQorbmFtZXV0Zjg6IHhuLS14bi0tZG4tNnZhCituYW1lem9uZTogCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAwMjUwNjc4OQorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvdW5pY29kZQorCis9PT09PQorZGVzYzogMy03LTEgUHVueWNvZGUgd2FzIG5vdCBuZWNlc3Nhcnk7IHNob3VsZCBub3QgZGlzcGxheSBhcyBVbmljb2RlCituYW1lYmFzZTogeG4tLWlkbi0KK25hbWV1dGY4OiB4bi0taWRuLQorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiAKK2ZhaWx6b25lMjogCit0b2tlbjogMjE2NzU5MTgKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b3VuaWNvZGUKKworPT09PT0KK2Rlc2M6IDMtNy0yIFN0cmluZyBkaWQgbm90IGdvIHRocm91Z2ggTmFtZXByZXA7XAorIHNob3VsZCBub3QgZGlzcGxheSBhcyBVbmljb2RlCituYW1lYmFzZTogeG4tLWRuLXZnYQorbmFtZXV0Zjg6IHhuLS1kbi12Z2EKK25hbWV6b25lOiAKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDE4ODMyNDU0CitwYXNzZmFpbDogZmFpbAordHlwZTogdG91bmljb2RlCisKKz09PT09CitkZXNjOiAzLTgtMSBTaG91bGQgc2hvdyB0aGUgVW5pY29kZSA8MDBFRD40ZG4gOyA8aWN1PiBDaGFuZ2VkIG5hbWViYXNlIGFuZCBuYW1ldXRmOCBmcm9tIHhuLS00ZG4tbGxhIHRvIHhuLS00ZG4tcW1hIDwvaWN1PgorbmFtZWJhc2U6IHhuLS00ZG4tcW1hCituYW1ldXRmODogeG4tLTRkbi1xbWEKK25hbWV6b25lOiA8MDBFRD40ZG4KK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDIzMzc3NDM1CitwYXNzZmFpbDogcGFzcwordHlwZTogdG91bmljb2RlCisKKz09PT09CitkZXNjOiA0LTEtMS0xIDAwYWRvdXQ8MDBBRD48MDBFRD5kbiAtPlwKKyAwMGFkb3V0PDAwRUQ+ZG4KK25hbWViYXNlOiAwMGFkb3V0PDAwQUQ+PDAwRUQ+ZG4KK25hbWV1dGY4OiAwMGFkb3V0Pz8/P2RuCituYW1lem9uZTogeG4tLTAwYWRvdXRkbi1tNWEKK2ZhaWx6b25lMTogeG4tLTAwYWRvdXRkbi1jbmE4MWUKK2ZhaWx6b25lMjogCit0b2tlbjogMDQyOTk5NTAKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTEtMS0yIDIwMGRvdXQ8MjAwRD48MDBFRD5kbiAtPlwKKyAyMDBkb3V0PDAwRUQ+ZG4KK25hbWViYXNlOiAyMDBkb3V0PDIwMEQ+PDAwRUQ+ZG4KK25hbWV1dGY4OiAyMDBkb3V0Pz8/Pz9kbgorbmFtZXpvbmU6IHhuLS0yMDBkb3V0ZG4tbTVhCitmYWlsem9uZTE6IHhuLS0yMDBkb3V0ZG4tbTVhMTY3OGYKK2ZhaWx6b25lMjogCit0b2tlbjogMDA2NDMyNDMKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTEtMi0xIHNpbXBsZWNhcDwwMDQ0PjwwMEVEPmRuIC0+XAorIHNpbXBsZWNhcDwwMDY0PjwwMEVEPmRuCituYW1lYmFzZTogc2ltcGxlY2FwPDAwNDQ+PDAwRUQ+ZG4KK25hbWV1dGY4OiBzaW1wbGVjYXBEPz9kbgorbmFtZXpvbmU6IHhuLS1zaW1wbGVjYXBkZG4tMWZiCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiAzNjI0OTc5NQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMS0yLTIgbGF0aW50b2dyZWVrPDAwQjU+PDAwRUQ+ZG4gLT5cCisgbGF0aW50b2dyZWVrPDAzQkM+PDAwRUQ+ZG4KK25hbWViYXNlOiBsYXRpbnRvZ3JlZWs8MDBCNT48MDBFRD5kbgorbmFtZXV0Zjg6IGxhdGludG9ncmVlaz8/Pz9kbgorbmFtZXpvbmU6IHhuLS1sYXRpbnRvZ3JlZWtkbi1jbWI3MTZpCitmYWlsem9uZTE6IHhuLS1sYXRpbnRvZ3JlZWtkbi1jeGEwMWcKK2ZhaWx6b25lMjogCit0b2tlbjogMDMxMTc0MDcKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTEtMi0zIGxhdGluZXh0PDAwQzc+PDAwRUQ+ZG4gLT5cCisgbGF0aW5leHQ8MDBFNz48MDBFRD5kbgorbmFtZWJhc2U6IGxhdGluZXh0PDAwQzc+PDAwRUQ+ZG4KK25hbWV1dGY4OiBsYXRpbmV4dD8/Pz9kbgorbmFtZXpvbmU6IHhuLS1sYXRpbmV4dGRuLXY2YTZlCitmYWlsem9uZTE6IHhuLS1sYXRpbmV4dGRuLXR3YTA3YgorZmFpbHpvbmUyOiAKK3Rva2VuOiAxMDI0MzUwNQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMS0yLTQgc2hhcnBzPDAwREY+PDAwRUQ+ZG4gLT5cCisgc2hhcnBzc3M8MDBFRD5kbgorbmFtZWJhc2U6IHNoYXJwczwwMERGPjwwMEVEPmRuCituYW1ldXRmODogc2hhcnBzPz8/P2RuCituYW1lem9uZTogeG4tLXNoYXJwc3NzZG4tcjhhCitmYWlsem9uZTE6IHhuLS1zaGFycHNkbi12eWE0bAorZmFpbHpvbmUyOiAKK3Rva2VuOiA4NDkyMTY1NgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMS0yLTUgdHVya2lzaGk8MDEzMD48MDBFRD5kbiAtPlwKKyB0dXJraXNoaTwwMDY5PjwwMzA3PjwwMEVEPmRuCituYW1lYmFzZTogdHVya2lzaGk8MDEzMD48MDBFRD5kbgorbmFtZXV0Zjg6IHR1cmtpc2hpPz8/P2RuCituYW1lem9uZTogeG4tLXR1cmtpc2hpaWRuLXdjYjcwMWUKK2ZhaWx6b25lMTogeG4tLXR1cmtpc2hpZG4tcjhhNzFmCitmYWlsem9uZTI6IAordG9rZW46IDAyMzgxNzMwCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0xLTItNiBleHB0d288MDE0OT48MDBFRD5kbiAtPlwKKyBleHB0d288MDJCQz48MDA2RT48MDBFRD5kbgorbmFtZWJhc2U6IGV4cHR3bzwwMTQ5PjwwMEVEPmRuCituYW1ldXRmODogZXhwdHdvPz8/P2RuCituYW1lem9uZTogeG4tLWV4cHR3b25kbi1tNWE1MDJjCitmYWlsem9uZTE6IHhuLS1leHB0d29kbi1oMmEzM2cKK2ZhaWx6b25lMjogCit0b2tlbjogMTA1NzUyMDMKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTEtMi03IGFkZGZvbGQ8MDNEMj48MDBFRD5kbiAtPlwKKyBhZGRmb2xkPDAzQzU+PDAwRUQ+ZG4KK25hbWViYXNlOiBhZGRmb2xkPDAzRDI+PDAwRUQ+ZG4KK25hbWV1dGY4OiBhZGRmb2xkPz8/P2RuCituYW1lem9uZTogeG4tLWFkZGZvbGRkbi1tNWExMjFmCitmYWlsem9uZTE6IHhuLS1hZGRmb2xkZG4tbTVhNDYyZgorZmFpbHpvbmUyOiAKK3Rva2VuOiAzMTQ5MzA0NAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMS0yLTggZXhwdGhyZWU8MUY1Mj48MDBFRD5kbiAtPlwKKyBleHB0aHJlZTwwM0M1PjwwMzEzPjwwMzAwPjwwMEVEPmRuCituYW1lYmFzZTogZXhwdGhyZWU8MUY1Mj48MDBFRD5kbgorbmFtZXV0Zjg6IGV4cHRocmVlPz8/Pz9kbgorbmFtZXpvbmU6IHhuLS1leHB0aHJlZWRuLXI4YTU4NDRnCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA2ODE0NDYyMgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMS0yLTkgbm9uYm1wPDEwNDAwPjwwMEVEPmRuIC0+XAorIG5vbmJtcDwxMDQyOD48MDBFRD5kbgorbmFtZWJhc2U6IG5vbmJtcDwxMDQwMD48MDBFRD5kbgorbmFtZXV0Zjg6IG5vbmJtcD8/Pz8/P2RuCituYW1lem9uZTogeG4tLW5vbmJtcGRuLWgyYTM0NzQ3ZAorZmFpbHpvbmUxOiB4bi0tbm9uYm1wZG4taDJhMzcwNDZkCitmYWlsem9uZTI6IAordG9rZW46IDM1MzkzMjEyCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0xLTItMTAgbm9uYm1wdG9hc2NpaTwxRDQwMD48MDBFRD5kbiAtPlwKKyBub25ibXB0b2FzY2lpYTwwMEVEPmRuCituYW1lYmFzZTogbm9uYm1wdG9hc2NpaTwxRDQwMD48MDBFRD5kbgorbmFtZXV0Zjg6IG5vbmJtcHRvYXNjaWk/Pz8/Pz9kbgorbmFtZXpvbmU6IHhuLS1ub25ibXB0b2FzY2lpYWRuLW1zYgorZmFpbHpvbmUxOiB4bi0tbm9uYm1wdG9hc2NpaWRuLWhwYjU0MTEyaQorZmFpbHpvbmUyOiAKK3Rva2VuOiA3ODE4MjUwMgorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMi0xLTEgcmVnY29tYjwwMDY1PjwwMzAxPjwwMEVEPmRuIC0+XAorIHJlZ2NvbWI8MDBFOT48MDBFRD5kbgorbmFtZWJhc2U6IHJlZ2NvbWI8MDA2NT48MDMwMT48MDBFRD5kbgorbmFtZXV0Zjg6IHJlZ2NvbWJlPz8/P2RuCituYW1lem9uZTogeG4tLXJlZ2NvbWJkbi1oNGE4YgorZmFpbHpvbmUxOiB4bi0tcmVnY29tYmVkbi1yOGE3OTRkCitmYWlsem9uZTI6IAordG9rZW46IDg3NjQ3MDQ1CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0yLTEtMiBjb21iYW5kY2FzZTwwMDQ1PjwwMzAxPjwwMEVEPmRuIC0+XAorIGNvbWJhbmRjYXNlPDAwRTk+PDAwRUQ+ZG4KK25hbWViYXNlOiBjb21iYW5kY2FzZTwwMDQ1PjwwMzAxPjwwMEVEPmRuCituYW1ldXRmODogY29tYmFuZGNhc2VFPz8/P2RuCituYW1lem9uZTogeG4tLWNvbWJhbmRjYXNlZG4tbGhiNGQKK2ZhaWx6b25lMTogeG4tLWNvbWJhbmRjYXNlZWRuLWNtYjUyNmYKK2ZhaWx6b25lMjogCit0b2tlbjogNjE3NDExODUKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTItMS0zIGFkamNvbWI8MDBCQT48MDMwMT48MDBFRD5kbiAtPlwKKyBhZGpjb21iPDAwRjM+PDAwRUQ+ZG4KK25hbWViYXNlOiBhZGpjb21iPDAwQkE+PDAzMDE+PDAwRUQ+ZG4KK25hbWV1dGY4OiBhZGpjb21iPz8/Pz8/ZG4KK25hbWV6b25lOiB4bi0tYWRqY29tYmRuLW01YTlkCitmYWlsem9uZTE6IHhuLS1hZGpjb21iZG4tMXFhNTdjcDNyCitmYWlsem9uZTI6IAordG9rZW46IDE0ODI4NDAyCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0yLTEtNCBleHRjb21ibzwwMDYzPjwwMzAxPjwwMEVEPmRuIC0+XAorIGV4dGNvbWJvPDAxMDc+PDAwRUQ+ZG4KK25hbWViYXNlOiBleHRjb21ibzwwMDYzPjwwMzAxPjwwMEVEPmRuCituYW1ldXRmODogZXh0Y29tYm9jPz8/P2RuCituYW1lem9uZTogeG4tLWV4dGNvbWJvZG4tcjhhNTJhCitmYWlsem9uZTE6IHhuLS1leHRjb21ib2Nkbi13Y2I5MjBlCitmYWlsem9uZTI6IAordG9rZW46IDI2NjUxMjc3CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0yLTEtNSBkb3VibGVkaWFjMTwwMDc1PjwwMzA4PjwwMzAxPjwwMEVEPmRuIC0+XAorIGRvdWJsZWRpYWMyPDAxRDg+PDAwRUQ+ZG4KK25hbWViYXNlOiBkb3VibGVkaWFjMTwwMDc1PjwwMzA4PjwwMzAxPjwwMEVEPmRuCituYW1ldXRmODogZG91YmxlZGlhYzF1Pz8/Pz8/ZG4KK25hbWV6b25lOiB4bi0tZG91YmxlZGlhYzFkbi02aWI4MzZhCitmYWlsem9uZTE6IHhuLS1kb3VibGVkaWFjMXVkbi1jbWI1MjZmbmQKK2ZhaWx6b25lMjogCit0b2tlbjogMzAxNzU1OTUKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTItMS02IGRvdWJsZWRpYWMyPDAwNzU+PDAzMDE+PDAzMDg+PDAwRUQ+ZG4gLT5cCisgZG91YmxlZGlhYzI8MDFEOD48MDBFRD5kbgorbmFtZWJhc2U6IGRvdWJsZWRpYWMyPDAwNzU+PDAzMDE+PDAzMDg+PDAwRUQ+ZG4KK25hbWV1dGY4OiBkb3VibGVkaWFjMnU/Pz8/Pz9kbgorbmFtZXpvbmU6IHhuLS1kb3VibGVkaWFjMmRuLTZpYjhxczczYQorZmFpbHpvbmUxOiB4bi0tZG91YmxlZGlhYzJ1ZG4tY21iNTI2Zm9kCitmYWlsem9uZTI6IAordG9rZW46IDM1NjA2MTA5CitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0yLTItMSBuZXdub3JtPDJGODc0PjwwMEVEPmRuIC0+XAorIG5ld25vcm08NUYzMz48MDBFRD5kbiBzaG91bGQgbm90IGJlY29tZSA8NUY1Mz4KK25hbWViYXNlOiBuZXdub3JtPDJGODc0PjwwMEVEPmRuCituYW1ldXRmODogbmV3bm9ybT8/Pz8/P2RuCituYW1lem9uZTogeG4tLW5ld25vcm1kbi1tNWE3ODU2eAorZmFpbHpvbmUxOiB4bi0tbmV3bm9ybWRuLW01YTkzOTZ4CitmYWlsem9uZTI6IHhuLS1uZXdub3JtZG4tbTVhOTk2OHgKK3Rva2VuOiA2MTkwMTgxMAorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMy0xIElmIFVzZVNURDNBU0NJSVJ1bGVzOiBTcGFjaW5nOyA8aWN1PiBcdTAwMjAgaXMgcHJvaGliaXRlZCBmcm9tIHRoZSBvdXRwdXQgb25seSB3aGVuIFVzZVNURDNBU0NJSVJ1bGVzIGlzIHNldCA8L2ljdT4KK25hbWViYXNlOiA8MjAwMD48MDBFRD5kbgorbmFtZXV0Zjg6ID8/Pz8/ZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWRuLW1qYTMzOTJhCitmYWlsem9uZTI6IAordG9rZW46IDEzMjI2ODc4CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0zLTIgQ29udHJvbAorbmFtZWJhc2U6IDwwNkREPjwwMEVEPmRuLTIKK25hbWV1dGY4OiA/Pz8/ZG4tMgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tZG4tMi11cGEzMzJnCitmYWlsem9uZTI6IAordG9rZW46IDA5ODczMzEyCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0zLTMgUHJpdmF0ZSB1c2UKK25hbWViYXNlOiA8RTAwNT48MDBFRD5kbgorbmFtZXV0Zjg6ID8/Pz8/ZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWRuLW1qYTE2NTl0CitmYWlsem9uZTI6IAordG9rZW46IDAzOTM3MTgzCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0zLTQgUHJpdmF0ZSB1c2UsIG5vbi1CTVAKK25hbWViYXNlOiA8RjAwMDU+PDAwRUQ+ZG4KK25hbWV1dGY4OiA/Pz8/Pz9kbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tZG4tbWphNzkyMngKK2ZhaWx6b25lMjogCit0b2tlbjogNzg3MDc4MjMKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTMtNSBOb24tY2hhcmFjdGVyCituYW1lYmFzZTogPEZEREQ+PDAwRUQ+ZG4KK25hbWV1dGY4OiA/Pz8/P2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1kbi1tamExMjEweAorZmFpbHpvbmUyOiAKK3Rva2VuOiA0NDQzMjE3OAorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMy02IE5vbi1jaGFyYWN0ZXIsIG5vbi1CTVAKK25hbWViYXNlOiA8MUZGRkU+PDAwRUQ+ZG4KK25hbWV1dGY4OiA/Pz8/Pz9kbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tZG4tbWphNzkyMngKK2ZhaWx6b25lMjogCit0b2tlbjogNjkxNDI2ODYKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTMtNyBTdXJyb2dhdGUgcG9pbnRzCituYW1lYmFzZTogPEQ4MDU+PDAwRUQ+ZG4KK25hbWV1dGY4OiA/Pz8/P2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1kbi1tamE3OTIyeAorZmFpbHpvbmUyOiAKK3Rva2VuOiAwNTQyNDU3MQorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMy04IEluYXBwcm9wcmlhdGUgZm9yIHBsYWluCituYW1lYmFzZTogPEZGRkE+PDAwRUQ+ZG4KK25hbWV1dGY4OiA/Pz8/P2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1kbi1tamE1ODIyeAorZmFpbHpvbmUyOiAKK3Rva2VuOiA0NDgyNTgyNAorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMy05IEluYXBwcm9wcmlhdGUgZm9yIGNhbm9uaWNhbAorbmFtZWJhc2U6IDwyRkY1PjwwMEVEPmRuCituYW1ldXRmODogPz8/Pz9kbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tZG4tbWphMzcyOWIKK2ZhaWx6b25lMjogCit0b2tlbjogNTA5MjYxMzYKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTMtMTAgQ2hhbmdlIGRpc3BsYXkgc2ltcGxlCituYW1lYmFzZTogPDIwNkE+PDAwRUQ+ZG4KK25hbWV1dGY4OiA/Pz8/P2RuCituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1kbi1tamE3NTMzYQorZmFpbHpvbmUyOiAKK3Rva2VuOiA1Nzk1MzMxMworcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtMy0xMSBDaGFuZ2UgZGlzcGxheSBSVEwKK25hbWViYXNlOiA8MjAwRj48MDBFRD5kbgorbmFtZXV0Zjg6ID8/Pz8/ZG4KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLWRuLW1qYTM5OTJhCitmYWlsem9uZTI6IAordG9rZW46IDMwNzA1Mjc5CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC0zLTEyIExhbmd1YWdlIHRhZ3MKK25hbWViYXNlOiA8RTAwMDE+PEUwMDQ1PjxFMDA0RT48MDA2OD48MDA2OT5pZG4KK25hbWV1dGY4OiA/Pz8/Pz8/Pz8/Pz9oaWlkbgorbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0taGlpZG4ta200M2FhYQorZmFpbHpvbmUyOiAKK3Rva2VuOiA0NDU5ODAzOQorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtNC0xIEFyYWJpYyBSYW5kQUxDYXQtTENhdC1SYW5kQUxDYXQKK25hbWViYXNlOiA8MDYyOD48MDA2Rj48MDYzOD4KK25hbWV1dGY4OiA/P28/PworbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tby0wbWMzYworZmFpbHpvbmUyOiAKK3Rva2VuOiA3ODIzMzA1MworcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtNC0yIEFyYWJpYyBSYW5kQUxDYXQtUmFuZEFMQ2F0LW90aGVyCituYW1lYmFzZTogPDA2Mjg+PDA2Mzg+PDAwNkY+CituYW1ldXRmODogPz8/P28KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLW8tMG1jMmMKK2ZhaWx6b25lMjogCit0b2tlbjogOTUyOTk2MjEKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA0LTQtMyBBcmFiaWMgb3RoZXItUmFuZEFMQ2F0LVJhbmRBTENhdAorbmFtZWJhc2U6IDwwMDZGPjwwNjI4PjwwNjM4PgorbmFtZXV0Zjg6IG8/Pz8/CituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1vLTFtYzJjCitmYWlsem9uZTI6IAordG9rZW46IDc5ODA3MTc2CitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC00LTQgSGVicmV3IFJhbmRBTENhdC1MQ2F0LVJhbmRBTENhdAorbmFtZWJhc2U6IDwwNUQxPjwwMDZGPjwwNUUxPgorbmFtZXV0Zjg6ID8/bz8/CituYW1lem9uZTogCitmYWlsem9uZTE6IHhuLS1vLTFoYzNjCitmYWlsem9uZTI6IAordG9rZW46IDMyMjI5NDUwCitwYXNzZmFpbDogZmFpbAordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNC00LTUgSGVicmV3IFJhbmRBTENhdC1SYW5kQUxDYXQtb3RoZXIKK25hbWViYXNlOiA8MDVEMT48MDVFMT48MDA2Rj4KK25hbWV1dGY4OiA/Pz8/bworbmFtZXpvbmU6IAorZmFpbHpvbmUxOiB4bi0tby0xaGMyYworZmFpbHpvbmUyOiAKK3Rva2VuOiA1MzIxMzM0OAorcGFzc2ZhaWw6IGZhaWwKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDQtNC02IEhlYnJldyBvdGhlci1SYW5kQUxDYXQtUmFuZEFMQ2F0CituYW1lYmFzZTogPDAwNkY+PDA1RDE+PDA1RTE+CituYW1ldXRmODogbz8/Pz8KK25hbWV6b25lOiAKK2ZhaWx6b25lMTogeG4tLW8tMmhjMmMKK2ZhaWx6b25lMjogCit0b2tlbjogOTA4MzU4NjAKK3Bhc3NmYWlsOiBmYWlsCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA1LTEtMSBVbmFzc2lnbmVkIGluIEJNUDsgem9uZSBlZGl0b3JzIHNob3VsZCByZWplY3QKK25hbWViYXNlOiA8MDIzNz48MDBFRD5kbgorbmFtZXV0Zjg6ID8/Pz9kbgorbmFtZXpvbmU6IHhuLS1kbi1tamEzM2sKK2ZhaWx6b25lMTogCitmYWlsem9uZTI6IAordG9rZW46IDgzMDc5NjAyCitwYXNzZmFpbDogcGFzcwordHlwZTogdG9hc2NpaQorCis9PT09PQorZGVzYzogNS0xLTIgVW5hc3NpbmdlZCBvdXRzaWRlIEJNUDsgem9uZSBlZGl0b3JzIHNob3VsZCByZWplY3QKK25hbWViYXNlOiA8MTAyMDU+PDAwRUQ+ZG4KK25hbWV1dGY4OiA/Pz8/Pz9kbgorbmFtZXpvbmU6IHhuLS1kbi1tamE3NzM0eAorZmFpbHpvbmUxOiB4bi0tZG4tbWphNzkyMngKK2ZhaWx6b25lMjogCit0b2tlbjogMDM2ODI5MDAKK3Bhc3NmYWlsOiBwYXNzCit0eXBlOiB0b2FzY2lpCisKKz09PT09CitkZXNjOiA1LTItMSBOZXdseSBhc3NpZ25lZCBpbiBCTVA7IHpvbmUgZWRpdG9ycyBzaG91bGQgcmVqZWN0CituYW1lYmFzZTogPDAyMzQ+PDAwRUQ+ZG4KK25hbWV1dGY4OiA/Pz8/ZG4KK25hbWV6b25lOiB4bi0tZG4tbWphMTJrCitmYWlsem9uZTE6IAorZmFpbHpvbmUyOiAKK3Rva2VuOiA5NjYzNzUwMQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKKworPT09PT0KK2Rlc2M6IDUtMi0yIE5ld2x5IGFzc2lnbmVkIG91dHNpZGUgb2YgQk1QOyB6b25lIGVkaXRvcnMgc2hvdWxkIHJlamVjdAorbmFtZWJhc2U6IDwxMDAwNT48MDBFRD5kbgorbmFtZXV0Zjg6ID8/Pz8/P2RuCituYW1lem9uZTogeG4tLWRuLW1qYTkyMzJ4CitmYWlsem9uZTE6IHhuLS1kbi1tamE3OTIyeAorZmFpbHpvbmUyOiAKK3Rva2VuOiA5NTUzNzY5OQorcGFzc2ZhaWw6IHBhc3MKK3R5cGU6IHRvYXNjaWkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGVzdERhdGFFbGVtZW50c190ZXN0YWxpYXNlcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL1Rlc3REYXRhRWxlbWVudHNfdGVzdGFsaWFzZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODU1ZmQyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL1Rlc3REYXRhRWxlbWVudHNfdGVzdGFsaWFzZXMuamF2YQpAQCAtMCwwICsxLDEwNCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgVGVzdERhdGFFbGVtZW50c190ZXN0YWxpYXNlcyBleHRlbmRzIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBwdWJsaWMgVGVzdERhdGFFbGVtZW50c190ZXN0YWxpYXNlcyAgKCkgeworICAgICAgICAgIHN1cGVyLmNvbnRlbnRzID0gZGF0YTsKKyAgICB9CisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gZGF0YSA9IG5ldyBPYmplY3RbXVtdIHsgCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiY29sbGF0aW9ucyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL3VrIiksCisgICAgICAgICAgICAgICAgfSwKKy8vIENpcmN1bGFyIGFsaWFzZXMgdGVzdCBtb3ZlZCB0byBUZXN0Q2lyY3VsYXJBbGlhc2VzCisvLyAgICAgICAgICAgICAgIHsKKy8vICAgICAgICAgICAgICAgICAgICJhYWEiLAorLy8gICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoInRlc3RhbGlhc2VzL2FhYiIpLAorLy8gICAgICAgICAgICAgICAgfSwKKy8vICAgICAgICAgICAgICAgIHsKKy8vICAgICAgICAgICAgICAgICAgICAiYWFiIiwKKy8vICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCJ0ZXN0YWxpYXNlcy9hYWEiKSwKKy8vICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiYW5vdGhlcmFsaWFzIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvdWsvY29sbGF0aW9ucy9zdGFuZGFyZCIpLAorICAgICAgICAgICAgICAgIH0sCisvLyBNb3ZlZCB0byBUZXN0Tm9uRXhpc3RpbmcKKy8vICAgICAgICAgICAgICAgIHsKKy8vICAgICAgICAgICAgICAgICAgICAibm9uZXhpc3RpbmciLAorLy8gICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL3VrIiksCisvLyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInJlZmVyZW5jaW5nYWxpYXMiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCJ0ZXN0YWxpYXNlcy9hbm90aGVyYWxpYXMvU2VxdWVuY2UiKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInNpbXBsZWFsaWFzIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygidGVzdHR5cGVzL21lbnUvZmlsZS9vcGVuIiksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJ0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvZW4vem9uZVN0cmluZ3MvMC8wIiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbi96b25lU3RyaW5ncy8wLzEiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuL3pvbmVTdHJpbmdzLzAvNCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvZW4vem9uZVN0cmluZ3MvMC81IiksCisKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInRlc3RHZXRTdHJpbmdCeUtleUFsaWFzaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIktleUFsaWFzMFBTVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvZW4vem9uZVN0cmluZ3MvMC8wIiksCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJLZXlBbGlhczFQYWNpZmljU3RhbmRhcmRUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbi96b25lU3RyaW5ncy8wLzEiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIktleUFsaWFzMlBEVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvZW4vem9uZVN0cmluZ3MvMC80IiksCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJLZXlBbGlhczNMb3NBbmdlbGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbi96b25lU3RyaW5ncy8wLzUiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJ6b25lU3RyaW5ncyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoIi9JQ1VEQVRBL2VuIiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbiIpLAorCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJ6b25lVGVzdHMiLAorICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiem9uZUFsaWFzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCIvSUNVREFUQS9lbi96b25lU3RyaW5ncyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiem9uZUFsaWFzMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvZW4vem9uZVN0cmluZ3MvMyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiem9uZUFsaWFzMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygiL0lDVURBVEEvZW4vem9uZVN0cmluZ3MvMy8wIiksCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgfTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9UZXN0RGF0YUVsZW1lbnRzX3Rlc3RjaXJjdWxhcmFsaWFzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGVzdERhdGFFbGVtZW50c190ZXN0Y2lyY3VsYXJhbGlhcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjNTgyMjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGVzdERhdGFFbGVtZW50c190ZXN0Y2lyY3VsYXJhbGlhcy5qYXZhCkBAIC0wLDAgKzEsMzcgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTGlzdFJlc291cmNlQnVuZGxlOworLyoqCisgKiBAYXV0aG9yIFJhbQorICoKKyAqIFRvIGNoYW5nZSB0aGlzIGdlbmVyYXRlZCBjb21tZW50IGVkaXQgdGhlIHRlbXBsYXRlIHZhcmlhYmxlICJ0eXBlY29tbWVudCI6CisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5UZW1wbGF0ZXMuCisgKiBUbyBlbmFibGUgYW5kIGRpc2FibGUgdGhlIGNyZWF0aW9uIG9mIHR5cGUgY29tbWVudHMgZ28gdG8KKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPkNvZGUgR2VuZXJhdGlvbi4KKyAqLworcHVibGljIGNsYXNzIFRlc3REYXRhRWxlbWVudHNfdGVzdGNpcmN1bGFyYWxpYXMgIGV4dGVuZHMgSUNVTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBwdWJsaWMgVGVzdERhdGFFbGVtZW50c190ZXN0Y2lyY3VsYXJhbGlhcygpIHsKKyAgICAgICAgICBzdXBlci5jb250ZW50cyA9IGRhdGE7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdW10gZGF0YSA9IG5ldyBPYmplY3RbXVtdIHsgCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiYWFhIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5BbGlhcygidGVzdGNpcmN1bGFyYWxpYXMvYWFiIiksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJhYWIiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkFsaWFzKCJ0ZXN0Y2lyY3VsYXJhbGlhcy9hYWMiKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImFhYyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQWxpYXMoInRlc3RjaXJjdWxhcmFsaWFzL2FhYSIpLAorICAgICAgICAgICAgICAgIH0gCisgICAgfTsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL1Rlc3REYXRhRWxlbWVudHNfdGVzdHR5cGVzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvVGVzdERhdGFFbGVtZW50c190ZXN0dHlwZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lM2RiOWRjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL1Rlc3REYXRhRWxlbWVudHNfdGVzdHR5cGVzLmphdmEKQEAgLTAsMCArMSwxMzggQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgVGVzdERhdGFFbGVtZW50c190ZXN0dHlwZXMgZXh0ZW5kcyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgcHVibGljIFRlc3REYXRhRWxlbWVudHNfdGVzdHR5cGVzICAoKSB7CisgICAgICAgICAgc3VwZXIuY29udGVudHMgPSBkYXRhOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXVtdIGRhdGEgPSBuZXcgT2JqZWN0W11bXSB7IAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImJpbmFyeXRlc3QiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTGlzdFJlc291cmNlQnVuZGxlLkNvbXByZXNzZWRCaW5hcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDAwXHUwMDBGXHUwMDAxXHUwMjAzXHUwNDA1XHUwNjA3XHUwODA5XHUwQTBCIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiXHUwQzBEXHUwRTAwIiksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJlbXB0eWFycmF5IiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJlbXB0eWJpbiIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUuQ29tcHJlc3NlZEJpbmFyeShudWxsKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImVtcHR5ZXhwbGljaXRzdHJpbmciLAorICAgICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImVtcHR5aW50IiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoMCksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJlbXB0eWludHYiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcltdIHsKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgImVtcHR5c3RyaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgIiIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJlbXB0eXRhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJpbXBvcnR0ZXN0IiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5Db21wcmVzc2VkQmluYXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAwMFx1MDAwRlx1MDAwMVx1MDIwM1x1MDQwNVx1MDYwN1x1MDgwOVx1MEEwQiIgKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEMwRFx1MEUwMCIpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiaW50ZWdlcmFycmF5IiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXJbXSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoMyksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigtMyksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcig0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoNiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcig3KSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm1lbnUiLAorICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGl0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFeGl0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9wZW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2F2ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2F2ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJtaW51c29uZSIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKC0xKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIm9uZSIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDEpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAib25laHVuZHJlZHR3ZW50eXRocmVlIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoMTIzKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInBsdXNvbmUiLAorICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigxKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInN0cmluZyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAic3RyaW5nVGFibGUiLAorICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInRlc3RfdW5kZXJzY29yZXMiLAorICAgICAgICAgICAgICAgICAgICAidGVzdCBtZXNzYWdlIC4uLi4iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAidGVzdGVzY2FwZSIsCisgICAgICAgICAgICAgICAgICAgICJ0YWI6XHUwMDA5IGNyOlxmIGZmOlx1MDAwQyBuZXdsaW5lOlxuIGJhY2tzbGFzaDpcXCIgKworICAgICAgICAgICAgICAgICAgICAiIHF1b3RlPVxcXCcgZG91YmxlUXVvdGU9XFxcIiBzaW5nbGVxdW91dGVzPScnIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgInplcm90ZXN0IiwKKyAgICAgICAgICAgICAgICAgICAgImFiY1x1MDAwMGRlZiIsCisgICAgICAgICAgICAgICAgfSwKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvZW5nbGlzaC5kaWN0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvZW5nbGlzaC5kaWN0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEwZjQzMGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmJiaS9lbmdsaXNoLmRpY3QKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvd29yZHMudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3JiYmkvd29yZHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE3ZTA2YWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmJiaS93b3Jkcy50eHQKQEAgLTAsMCArMSwyOTkwIEBACistLQorLS1zdWNoCithCithJ2JlbC1taXpyYWltCithJ2lhaAorYWJhdGUKK2FiYXRlZAorYWJkaWNhdGVkCithYmVsCithYmknZGEKK2FiaWRlCithYmltJ2EtZWwKK2FiaW0nZWxlY2gKK2FiaW0nZWxlY2gncworYWJsZQorYWJvbGlzaAorYWJvbGlzaGluZworYWJvbWluYXRpb24KK2Fib3V0CithYm92ZQorYWJyYWhhbQorYWJyYWhhbSdzCithYnJhbQorYWJyYW0ncworYWJyb2FkCithYnNlbnQKK2Fic29sdXRlCithYnNvbHZlZAorYWJ1bmRhbmNlCithYnVuZGFudGx5CithYnVzZXMKK2FjY2FkCithY2NlcHQKK2FjY2VwdGVkCithY2NvbW1vZGF0aW9uCithY2NvcmRpbmcKK2FjY29yZGluZ2x5CithY2NvdW50CithY2N1c3RvbWVkCithY2hib3IKK2Fja25vd2xlZGdlZAorYWNxdWllc2NlCithY3F1aXJlZAorYWNyb3NzCithY3QKK2FjdHMKK2FkYWgKK2FkYW0KK2FkYmVlbAorYWRkCithZGRlZAorYWRtYWgKK2FkbWluaXN0cmF0aW9uCithZHVsbGFtaXRlCithZHZhbmNlZAorYWR2aXNlcgorYWZhcgorYWZmZWN0ZWQKK2FmZmxpY3RlZAorYWZmbGljdGlvbgorYWZyYWlkCithZnRlcgorYWZ0ZXJ3YXJkCithZnRlcndhcmRzCithZ2FpbgorYWdhaW5zdAorYWdlCithZ2VzCithZ2lsZQorYWdyZWUKK2FncmVlZAorYWh1eid6YXRoCithaQorYWlkCithaXIKK2FrYW4KK2FsJ2xvbi1iYWN1dGgKK2FsaWdodGVkCithbGl2ZQorYWxsCithbGxlZ2lhbmNlCithbGxpYW5jZXMKK2FsbGllcworYWxsb3cKK2FsbG93YW5jZQorYWxtaWdodHkKK2FsbW8nZGFkCithbG1vbmQKK2FsbW9uZHMKK2Fsb25lCithbG9uZworYWxvdWQKK2FscmVhZHkKK2Fsc28KK2FsdGFyCithbHRlcgorYWx0ZXJpbmcKK2FsdGhvdWdoCithbHRvZ2V0aGVyCithbHZhaAorYWx2YW4KK2FtCithbSdhbGVrCithbSdyYXBoZWwKK2FtYWwnZWtpdGVzCithbWF6ZW1lbnQKK2FtZXJpY2EKK2FtbW9uaXRlcworYW1vbmcKK2Ftb25nc3QKK2Ftb3JpdGUKK2Ftb3JpdGVzCithbW91bnQKK2FuCithbidhbWltCithbmFoCithbmQKK2FuZXIKK2FuZ2VsCithbmdlbHMKK2FuZ2VyCithbmdyeQorYW5pbWFsCithbmltYWxzCithbm5paGlsYXRpb24KK2Fub2ludGVkCithbm90aGVyCithbm90aGVyJ3MKK2Fuc3dlcgorYW5zd2VyZWQKK2FueQorYW55dGhpbmcKK2FueXdoZXJlCithcGFydAorYXBwZWFsZWQKK2FwcGVhbGluZworYXBwZWFyCithcHBlYXJlZAorYXBwZWFzZQorYXBwb2ludAorYXBwb2ludGVkCithcHByb2FjaGVkCithcHByb2FjaGluZworYXBwcm9wcmlhdGlvbnMKK2Fwcm9ucworYXInYXJhdAorYXInaW9jaAorYXIndmFkaXRlcworYXJhbQorYXJhbWVhbgorYXJhbgorYXJiaXRyYXJ5CithcmNoZXJzCithcmQKK2FyZQorYXJlJ2xpCithcmVhCithcmlzZQorYXJrCithcmtpdGVzCithcm1lZAorYXJtaWVzCithcm1zCithcm15Cithcm8nZGkKK2Fyb3NlCithcm91bmQKK2FycGFjaCdzaGFkCithcnJheWVkCithcnJpdmUKK2FydAorYXMKK2FzJ2VuYXRoCithc2NlbmRpbmcKK2FzaCdrZW5hegorYXNoJ3Rlcm90aC1rYXJuYSdpbQorYXNoYW1lZAorYXNoYmVsCithc2hlcgorYXNoZXIncworYXNoZXMKK2FzaWRlCithc2sKK2Fza2VkCithc2tzCithc2xlZXAKK2FzcworYXNzJ3MKK2Fzc2VtYmxlCithc3NlbWJsZWQKK2Fzc2VudAorYXNzZXMKK2Fzc2h1J3JpbQorYXNzaHVyCithc3N1bWUKK2Fzc3VyZWQKK2Fzc3lyaWEKK2F0CithdGFkCithdGUKK2F0dGFjaworYXR0YWNrZWQKK2F0dGFpbmVkCithdHRlbXB0cworYXR0ZW5kCithdHRlbmRlZAorYXR0ZW50aW9uCithdXRob3JpdHkKK2F2ZW5nZWQKK2F2aXRoCithd2F5Cithd2Vzb21lCithd29rZQorYmEnYWwtaGEnbmFuCitiYSdiZWwKK2JhY2sKK2JhY2t3YXJkCitiYWQKK2JhZGUKK2JhZ3MKK2Jha2VkCitiYWtlcgorYmFsbQorYmFuaworYmFua3MKK2JhcmJhcm91cworYmFycmVuCitiYXMnZW1hdGgKK2Jhc2tldAorYmFza2V0cworYmF0dGxlCitiZGVsbGl1bQorYmUKK2JlJ29yCitiZS1lJ3JpCitiZWFyCitiZWFyaW5nCitiZWFycworYmVhc3QKK2JlYXN0cworYmVhdXRpZnVsCitiZWNhbWUKK2JlY2F1c2UKK2JlY2hlcgorYmVjb21lCitiZWNvbWVzCitiZWQKK2JlZGFkCitiZWVuCitiZWVyLWxhJ2hhaS1yb2kKK2JlZXItc2hlYmEKK2JlZmFsbAorYmVmYWxsZW4KK2JlZmFsbHMKK2JlZm9yZQorYmVnCitiZWdhbgorYmVnaW5uaW5nCitiZWd1aWxlZAorYmVndW4KK2JlaGVsZAorYmVoaW5kCitiZWhvbGQKK2JlaW5nCitiZWxhCitiZWxpZXZlCitiZWxpZXZlZAorYmVsbHkKK2JlbG9uZworYmVsb25naW5nCitiZWxvbmdzCitiZWxvdworYmVuLWFtbWkKK2Jlbi1vJ25pCitiZW5lYXRoCitiZW5lZml0cworYmVuamFtaW4KK2JlbmphbWluJ3MKK2JlcmEKK2JlcmVhdmVkCitiZXJlZAorYmVyZWZ0CitiZXJpJ2FoCitiZXNpZGUKK2Jlc2lkZXMKK2Jlc291Z2h0CitiZXN0CitiZXRoZWwKK2JldGhsZWhlbQorYmV0aHUnZWwKK2JldHRlcgorYmV0d2VlbgorYmV5b25kCitiaWxoYWgKK2JpbGhhbgorYmluZGluZworYmlyZAorYmlyZHMKK2JpcnNoYQorYmlydGgKK2JpcnRoZGF5CitiaXJ0aHJpZ2h0CitiaXRlcworYml0dGVyCitiaXR1bWVuCitibGFjaworYmxhbWUKK2JsYW1lbGVzcworYmxlc3MKK2JsZXNzZWQKK2JsZXNzZXMKK2JsZXNzaW5nCitibGVzc2luZ3MKK2JsaWdodGVkCitibGluZG5lc3MKK2Jsb29kCitibG9zc29tcworYmxvdAorYmxvdHRlZAorYmxvdworYm9kaWVzCitib2R5Citib2lsaW5nCitib25kcworYm9uZQorYm9uZXMKK2Jvb2sKK2Jvb3RocworYm9yZGVyCitib3JlCitib3JuCitib3JuZQorYm90aAorYm91Z2gKK2JvdWdodAorYm91bmQKK2JvdW5kYXJpZXMKK2JvdW50aWVzCitib3cKK2Jvd2VkCitib3dpbmcKK2Jvd3Nob3QKK2JveXMKK2JvenJhaAorYnJhY2VsZXRzCiticmFuY2hlcworYnJlYWNoCiticmVhZAorYnJlYWR0aAorYnJlYWsKK2JyZWFraW5nCiticmVhc3RzCiticmVhdGgKK2JyZWF0aGVkCiticmVkCiticmVlZAorYnJlZWRpbmcKK2JyZXRocmVuCiticmljaworYnJpY2tzCiticmltc3RvbmUKK2JyaW5nCiticml0YWluCiticml0aXNoCiticm9rZW4KK2Jyb256ZQorYnJvdGhlcgorYnJvdGhlcidzCiticm90aGVyLWluLWxhdworYnJvdGhlcnMKK2Jyb3VnaHQKK2Jyb3cKK2JydWlzZQorYnVkZGVkCitidWlsZAorYnVpbGRpbmcKK2J1aWx0CitidWxscworYnVuZGxlCitidW5kbGVzCitidXJpZWQKK2J1cm4KK2J1cm5lZAorYnVybnQKK2J1cnN0CitidXJ5CitidXJ5aW5nCitidXNoZXMKK2J1dAorYnV0bGVyCitidXRsZXJzaGlwCitidXkKK2J1egorYnkKK2NhaW4KK2Nha2UKK2Nha2VzCitjYWxhaAorY2FsZgorY2FsbAorY2FsbGVkCitjYWxscworY2FtZQorY2FtZWwKK2NhbWVsJ3MKK2NhbWVscworY2FtcAorY2FtcGVkCitjYW4KK2NhbmFhbgorY2FuYWFuJworY2FuYWFuaXRlCitjYW5hYW5pdGVzCitjYW5hYW5pdGlzaAorY2FuZGlkCitjYW5ub3QKK2NhcGgndG9yaW0KK2NhcHRhaW4KK2NhcHRpdmUKK2NhcHRpdmVzCitjYXB0dXJlZAorY2FyYXZhbgorY2FyY2Fzc2VzCitjYXJlCitjYXJlZnVsbHkKK2Nhcm1pCitjYXJyaWVkCitjYXJyeQorY2FzZXMKK2Nhc2x1J2hpbQorY2FzdAorY2F0dGxlCitjYXVnaHQKK2NhdXNlCitjYXVzZWQKK2NhdXNlcworY2F2ZQorY2Vhc2UKK2NlYXNlZAorY2VydGFpbgorY2hhaW4KK2NoYWxkZSdhbnMKK2NoYW1iZXIKK2NoYW5nZQorY2hhbmdlZAorY2hhcmFjdGVyCitjaGFyZ2UKK2NoYXJnZWQKK2NoYXJnaW5nCitjaGFyaW90CitjaGFyaW90cworY2hhcnRlcnMKK2NoZWF0CitjaGVhdGVkCitjaGVkLW9yLWxhbydtZXIKK2NoZXJhbgorY2hlcnViaW0KK2NoZXNlZAorY2hlemliCitjaGllZgorY2hpZWZzCitjaGlsZAorY2hpbGRiZWFyaW5nCitjaGlsZGxlc3MKK2NoaWxkcmVuCitjaGlsZHJlbidzCitjaG9pY2UKK2Nob2ljZXN0CitjaG9zZQorY2hvc2VuCitjaXJjdW1jaXNlZAorY2lyY3Vtc3RhbmNlcworY2l0aWVzCitjaXRpemVucworY2l0eQorY2l2aWwKK2NpdmlsaXplZAorY2xhbnMKK2NsZWFuCitjbGVhcgorY2xlYXZlcworY2xvc2UKK2Nsb3NlZAorY2xvdGhlZAorY2xvdGhlcworY2xvdGhpbmcKK2Nsb3VkCitjbG91ZHMKK2NsdXN0ZXJzCitjb2FzdGxhbmQKK2NvYXN0cworY29mZmluCitjb2xkCitjb2xvbmllcworY29sb25pZXM6Citjb2x0Citjb2x0cworY29tYmluZWQKK2NvbWUKK2NvbWVseQorY29tZXMKK2NvbWZvcnQKK2NvbWZvcnRlZAorY29tZm9ydHMKK2NvbWluZworY29tbWFuZAorY29tbWFuZGVkCitjb21tYW5kZXIKK2NvbW1hbmRtZW50cworY29tbWVyY2UKK2NvbW1pdAorY29tbWl0dGVkCitjb21tb24KK2NvbXBhbmllcworY29tcGFueQorY29tcGxhaW5lZAorY29tcGxldGUKK2NvbXBsZXRlZAorY29tcGxpYW5jZQorY29uY2VhbAorY29uY2VpdmVkCitjb25jZXJuCitjb25jZXJuaW5nCitjb25jbHVkZQorY29uY3ViaW5lCitjb25jdWJpbmVzCitjb25kaXRpb24KK2NvbmRpdGlvbnMKK2NvbmZpbmVkCitjb25mdXNlCitjb25mdXNlZAorY29uZ3Jlc3MKK2Nvbmp1cmVkCitjb25uZWN0ZWQKK2Nvbm5lY3Rpb24KK2Nvbm5lY3Rpb25zCitjb25zZW50Citjb25zZW50OgorY29uc3BpcmVkCitjb25zdGl0dXRpb24KK2NvbnN0cmFpbmVkCitjb25zdHJhaW5zCitjb25zdW1lCitjb25zdW1lZAorY29udGVtcHQKK2NvbnRlbmRlZAorY29udGludWFsbHkKK2NvbnRpbnVlCitjb250aW51ZWQKK2NvbnRyYWN0Citjb250cm9sCitjb250cm9sbGluZworY29udnVsc2lvbnMKK2Nvb2wKK2NvcmQKK2NvcnJlc3BvbmRlbmNlCitjb3JydXB0Citjb3JydXB0ZWQKK2Nvc3RseQorY291Y2gKK2NvdWNoZWQKK2NvdWNoZXMKK2NvdWNoaW5nCitjb3VsZAorY291bmNpbAorY291bnQKK2NvdW50ZWQKK2NvdW50ZW5hbmNlCitjb3VudHJ5Citjb3Vyc2UKK2NvdmVuYW50Citjb3ZlcgorY292ZXJlZAorY292ZXJpbmcKK2Nvd3MKK2NyZWF0ZWQKK2NyZWF0aW9uCitjcmVhdG9yCitjcmVhdHVyZQorY3JlYXR1cmVzCitjcmVlcGluZworY3JlZXBzCitjcmllZAorY3Jvc3NlZAorY3Jvc3NpbmcKK2Nyb3VjaGluZworY3Jvd24KK2NydWVsCitjcnVlbHR5CitjcnkKK2NyeWluZworY3ViaXQKK2N1Yml0cworY3VwCitjdXJkcworY3VycmVudAorY3Vyc2UKK2N1cnNlZAorY3Vyc2VzCitjdXNoCitjdXN0b2R5CitjdXQKK2N1dHRpbmcKK2RhaW50aWVzCitkYW1hc2N1cworZGFuCitkYW5nZXJzCitkYXJlcworZGFyaworZGFya25lc3MKK2RhdWdodGVyCitkYXVnaHRlci1pbi1sYXcKK2RhdWdodGVycworZGF3bmVkCitkYXkKK2RheXMKK2RlYWQKK2RlYWwKK2RlYWx0CitkZWF0aAorZGViJ29yYWgKK2RlY2VpdGZ1bGx5CitkZWNlaXZlZAorZGVjZW50CitkZWNpZGUKK2RlY2tzCitkZWNsYXJhdGlvbgorZGVjbGFyZQorZGVjbGFyaW5nCitkZWRhbgorZGVlZAorZGVlcAorZGVmZWF0CitkZWZlYXRlZAorZGVmaWxlZAorZGVmaW5lCitkZWxheQorZGVsYXllZAorZGVsaWdodAorZGVsaXZlcgorZGVsaXZlcmVkCitkZWxpdmVyeQorZGVuaWVkCitkZW5vdW5jZXMKK2RlcGFydAorZGVwYXJ0ZWQKK2RlcGFydGluZworZGVwZW5kZW50CitkZXBlbmRlbnRzCitkZXBvc2l0b3J5CitkZXByaXZpbmcKK2Rlcml2aW5nCitkZXNjZW5kYW50cworZGVzY2VuZGluZworZGVzaWduCitkZXNpcmUKK2Rlc2lyZWQKK2Rlc29sYXRlCitkZXNvbGF0aW9uCitkZXNwaXNlZAorZGVzcG90aXNtCitkZXN0cm95CitkZXN0cm95ZWQKK2Rlc3Ryb3lzCitkZXN0cnVjdGlvbgorZGVzdHJ1Y3RpdmUKK2RldGVybWluZWQKK2Rldm91cmVkCitkZXZvdXJpbmcKK2RldworZGljdGF0ZQorZGlkCitkaWRzdAorZGllCitkaWVkCitkaWVzCitkaWtsYWgKK2RpbQorZGluJ2hhYmFoCitkaW5haAorZGluYWgncworZGluZQorZGlwcGVkCitkaXJlY3QKK2RpcmVjdGlvbgorZGlzYXN0ZXIKK2Rpc2F2b3cKK2Rpc2NyZWV0CitkaXNncmFjZQorZGlzaGFuCitkaXNob24KK2Rpc21heWVkCitkaXNwbGVhc2VkCitkaXNwbGVhc2luZworZGlzcG9zZWQKK2Rpc3NvbHV0aW9ucworZGlzc29sdmUKK2Rpc3NvbHZlZAorZGlzdGFuY2UKK2Rpc3RhbnQKK2Rpc3RyZXNzCitkaXN0cmVzc2VkCitkaXN0cmljdHMKK2RpdmlkZQorZGl2aWRlZAorZGl2aWRpbmcKK2RpdmluYXRpb24KK2RpdmluZQorZGl2aW5lcworZG8KK2RvJ2RhbmltCitkb2VyCitkb2VzCitkb2luZworZG9tZXN0aWMKK2RvbWluaW9uCitkb25lCitkb29yCitkb3RoYW4KK2RvdWJsZQorZG91YmxpbmcKK2RvdWJ0Citkb3ZlCitkb3duCitkb3duY2FzdAorZG93cnkKK2RyYW5rCitkcmF3CitkcmF3bgorZHJlYWQKK2RyZWFtCitkcmVhbWVkCitkcmVhbWVyCitkcmVhbXMKK2RyZXcKK2RyaWVkCitkcmluaworZHJpbmtpbmcKK2RyaW5rcworZHJpdmVuCitkcm92ZQorZHJvdmVzCitkcnVuaworZHJ5CitkdWcKK2R1bWFoCitkdW5nZW9uCitkdXJpbmcKK2R1c3QKK2R1dHkKK2R3ZWxsCitkd2VsbGluZworZHdlbHQKK2UnZG9taXRlcworZSdwaHJhaW0KK2UncGhyYWltJ3MKK2VhY2gKK2Vhcmx5CitlYXJzCitlYXJ0aAorZWFzaWx5CitlYXN0CitlYXN0d2FyZAorZWF0CitlYXRlbgorZWF0aW5nCitlYmFsCitlYmVyCitlZGVuCitlZGVyCitlZG9tCitlZmZlY3QKK2VneXB0CitlZ3lwdGlhbgorZWd5cHRpYW4ncworZWd5cHRpYW5zCitlaGkKK2VpZ2h0CitlaWdodGVlbgorZWlnaHR5CitlaWdodHktc2V2ZW4KK2VpZ2h0eS1zaXgKK2VpZ2h0eS10d28KK2VpdGhlcgorZWwnaXBoYXoKK2VsLWJldGhlbAorZWwtZWwnb2hlLWlzcmFlbAorZWwtcGFyYW4KK2VsYWgKK2VsYW0KK2VsZGEnYWgKK2VsZGVyCitlbGRlcnMKK2VsZGVzdAorZWxlY3RlZAorZWxldmVuCitlbGknc2hhaAorZWxpZSd6ZXIKK2VsbGEnc2FyCitlbG9uCitlbHNlCitlbWJhbG0KK2VtYmFsbWVkCitlbWJhbG1pbmcKK2VtYnJhY2UKK2VtYnJhY2VkCitlbWlncmF0aW9uCitlbWltCitlbXB0aWVkCitlbXB0eQorZW1wdHktaGFuZGVkCitlbmFpbQorZW5jYW1wZWQKK2VuY2FtcG1lbnRzCitlbmNvdXJhZ2UKK2VuZAorZW5kZWF2b3JlZAorZW5kZWQKK2VuZGluZworZW5kb3dlZAorZW5kcworZW5lbWllcworZW5lbXkKK2VuZ2xpc2gKK2VubGFyZ2UKK2VubGFyZ2luZworZW5taXNoJ3BhdAorZW5taXR5Citlbm9jaAorZW5vc2gKK2Vub3VnaAorZW50ZXIKK2VudGVyZWQKK2VudGl0bGUKK2VudHJhbmNlCitlbnRyZWF0CitlbnZpZWQKK2VwaGFoCitlcGhlcgorZXBocmF0aAorZXBocm9uCitlcXVhbAorZXIKK2VyZWNoCitlcmVjdGVkCitlcmkKK2VycmFuZAorZXNhdQorZXNhdSdzCitlc2NhcGUKK2VzY2FwZWQKK2VzZWsKK2VzaGJhbgorZXNoY29sCitlc3RhYmxpc2gKK2VzdGFibGlzaGVkCitlc3RhYmxpc2hpbmcKK2VzdGFibGlzaG1lbnQKK2V0ZXJuYWwKK2V1cGhyYSd0ZXMKK2V1cGhyYXRlcworZXZlCitldmVuCitldmVuaW5nCitldmVudHMKK2V2ZXIKK2V2ZXJsYXN0aW5nCitldmVyeQorZXZlcnl0aGluZworZXZlcnl3aGVyZQorZXZpbAorZXZpbHMKK2V2aW5jZXMKK2V3ZQorZXdlcworZXhhbXBsZQorZXhjZWVkaW5nbHkKK2V4Y2VwdAorZXhjaGFuZ2UKK2V4Y2l0ZWQKK2V4ZWN1dGlvbmVycworZXhlcmNpc2UKK2V4cGVyaWVuY2UKK2V4cGVydAorZXhwbGFpbgorZXhwb3NlZAorZXhwb3NpbmcKK2V4dGVuZAorZXh0ZW5kZWQKK2V5ZXMKK2V6Ym9uCitlemVyCitmYWNlCitmYWNlcworZmFjdHMKK2ZhaWxlZAorZmFpbnRlZAorZmFpcgorZmFpdGhmdWxuZXNzCitmYWxsCitmYWxsZW4KK2ZhbGxzCitmYWxzZWx5CitmYW1pbGllcworZmFtaWx5CitmYW1pbmUKK2ZhbWlzaGVkCitmYXIKK2ZhcmUKK2ZhcmVkCitmYXJld2VsbAorZmFzdAorZmF0CitmYXRoZXIKK2ZhdGhlcidzCitmYXRoZXItaW4tbGF3CitmYXRoZXJzCitmYXRpZ3VpbmcKK2ZhdG5lc3MKK2ZhdWx0cworZmF2b3IKK2Zhdm9yYWJsZQorZmF3bnMKK2ZlYXIKK2ZlYXJlZAorZmVhc3QKK2ZlZAorZmVlYmxlcgorZmVlZAorZmVlbAorZmVldAorZmVsbAorZmVsbG93CitmZWx0CitmZW1hbGUKK2Zlc3RhbAorZmV0Y2gKK2ZldworZmllbGQKK2ZpZWxkcworZmllcmNlCitmaWVyY2VseQorZmlmdGVlbgorZmlmdGgKK2ZpZnRocworZmlmdHkKK2ZpZworZmlsbAorZmlsbGVkCitmaW5kCitmaW5kcworZmluZQorZmluaXNoCitmaW5pc2hlZAorZmlyZQorZmlybQorZmlybWFtZW50CitmaXJtbmVzcworZmlyc3QKK2ZpcnN0LQorZmlyc3QtYm9ybgorZmlyc3RsaW5ncworZmlzaAorZml0CitmaXZlCitmaXhlZAorZmxhbWluZworZmxlZAorZmxlZQorZmxlZWluZworZmxlc2gKK2Zsb2F0ZWQKK2Zsb2NrCitmbG9ja3MKK2Zsb29kCitmbG9vcgorZmxvd2VkCitmbG93cworZmx5Citmb2FsCitmb2xsb3cKK2ZvbGxvd2VkCitmb2xsb3dpbmcKK2ZvbGxvd3MKK2ZvbGx5Citmb25kbGluZworZm9vZAorZm9vbGlzaGx5Citmb290Citmb3IKK2ZvcmJpZGRlbgorZm9yY2UKK2ZvcmNlZAorZm9yY2VzCitmb3JkCitmb3JlaWduCitmb3JlaWduZXIKK2ZvcmVpZ25lcnMKK2ZvcmVtb3N0Citmb3Jlc2tpbgorZm9yZXNraW5zCitmb3JnZXIKK2ZvcmdldAorZm9yZ2V0cworZm9yZ2l2ZQorZm9yZ290Citmb3Jnb3R0ZW4KK2Zvcm0KK2Zvcm1lZAorZm9ybWVyCitmb3JtZXJseQorZm9ybWlkYWJsZQorZm9ybXMKK2ZvcnNha2VuCitmb3J0aAorZm9ydHVuZQorZm9ydHVuZXMKK2ZvcnR5Citmb3J0eS1maXZlCitmb3J0eS1zZXZlbgorZm91bmQKK2ZvdW5kYXRpb24KK2ZvdW50YWlucworZm91cgorZm91cnRlZW4KK2ZvdXJ0ZWVudGgKK2ZvdXJ0aAorZnJhaWwKK2ZyZWUKK2ZyZWVseQorZnJlc2gKK2ZyZXNobHkKK2ZyaWVuZAorZnJpZW5kbHkKK2ZyaWVuZHMKK2ZybworZnJvbQorZnJvbnQKK2Zyb250aWVycworZnJ1aXQKK2ZydWl0ZnVsCitmcnVpdHMKK2Z1Z2l0aXZlCitmdWxmaWwKK2Z1bGZpbGxlZAorZnVsbAorZnVuZGFtZW50YWxseQorZnVybmFjZQorZnVyeQorZnV0dXJlCitnYWQKK2dhaGFtCitnYWluZWQKK2dhbGVlZAorZ2FtZQorZ2FyZGVuCitnYXJtZW50CitnYXJtZW50cworZ2F0YW0KK2dhdGUKK2dhdGhlcgorZ2F0aGVyZWQKK2dhdW50CitnYXZlCitnYXZlc3QKK2dhemEKK2dhemVkCitnZW5lYWxvZ2llcworZ2VuZXJhbAorZ2VuZXJhdGlvbgorZ2VuZXJhdGlvbnMKK2dlcmEKK2dlcmFyCitnZXJzaG9uCitnZXQKK2dldGhlcgorZ2lmdAorZ2lmdHMKK2dpaG9uCitnaWxlYWQKK2dpcidnYXNoaXRlcworZ2l2ZQorZ2l2ZW4KK2dpdmVzdAorZ2l2aW5nCitnbworZ29hdAorZ29hdHMKK2dvZAorZ29kJ3MKK2dvZHMKK2dvZXMKK2dvaSdpbQorZ29pbmcKK2dvbGQKK2dvbWVyCitnb21vcidyYWgKK2dvbmUKK2dvb2QKK2dvb2QtbG9va2luZworZ29vZHMKK2dvcGhlcgorZ29zaGVuCitnb3QKK2dvdHRlbgorZ292ZXJuZWQKK2dvdmVybm1lbnQKK2dvdmVybm1lbnRzCitnb3Zlcm5tZW50czoKK2dvdmVybm9yCitnb3Zlcm5vcnMKK2dyYWNpb3VzCitncmFjaW91c2x5CitncmFpbgorZ3JhbmRjaGlsZHJlbgorZ3JhbmRzb24KK2dyYW50CitncmFudGVkCitncmFwZXMKK2dyYXNzCitncmF2ZQorZ3JheQorZ3JlYXQKK2dyZWF0ZXIKK2dyZWF0bHkKK2dyZWVuCitncmV3CitncmlldmVkCitncmlldm91cworZ3JvcGluZworZ3JvdW5kCitncm93Citncm93aW5nCitncm93bgorZ3Jvd3MKK2d1YXJkCitndWFyZHMKK2d1aWxlCitndWlsdAorZ3VpbHR5CitndW0KK2d1bmkKK2hhJ21hdGhpdGVzCitoYWQKK2hhZGFkCitoYWRhcgoraGFkb3InYW0KK2hhZ2FyCitoYWdnaQoraGFpcnMKK2hhaXJ5CitoYWxmCitoYWxsb3dlZAoraGFtCitoYW1vcgoraGFtb3IncworaGFtc3RyaW5nCitoYW11bAoraGFuZAoraGFuZHMKK2hhbmRzb21lCitoYW5nCitoYW5nZWQKK2hhbm9jaAoraGFwcGVuZWQKK2hhcHBpbmVzcworaGFwcHkKK2hhcmFuCitoYXJhc3MKK2hhcmFzc2VkCitoYXJkCitoYXJkc2hpcAoraGFybG90CitoYXJsb3RyeQoraGFybQoraGFyc2hseQoraGFydmVzdAoraGFydmVzdHMKK2hhcworaGFzdAoraGFzdGUKK2hhc3RlbmVkCitoYXN0aWx5CitoYXRlCitoYXRlZAoraGF0aAoraGF2J2lsYWgKK2hhdmUKK2hhdmVuCitoYXZpbGFoCitoYXZpbmcKK2hheidhem9uLXRhJ21hcgoraGF6YXJtYSd2ZXRoCitoYXpvCitoZQoraGUtYXNzZXMKK2hlLWdvYXRzCitoZWFkCitoZWFkcworaGVhbGVkCitoZWFwCitoZWFyCitoZWFyZAoraGVhcmluZworaGVhcmtlbgoraGVhcmtlbmVkCitoZWFycworaGVhcnQKK2hlYXJ0cworaGVhdAoraGVhdmVuCitoZWF2ZW5zCitoZWJlcgoraGVicmV3CitoZWJyZXdzCitoZWJyb24KK2hlZWQKK2hlZWRlZAoraGVlbAoraGVlbHMKK2hlaWZlcgoraGVpZ2h0CitoZWlyCitoZWxkCitoZWxwCitoZWxwZXIKK2hlbWFuCitoZW1kYW4KK2hlcgoraGVyYgoraGVyZAoraGVyZHMKK2hlcmRzbWVuCitoZXJlCitoZXJzZWxmCitoZXRoCitoZXdlZAoraGV6cm9uCitoaWQKK2hpZGRlbgoraGlkZQoraGlnaAoraGlsbAoraGlsbHMKK2hpbQoraGltc2VsZgoraGluZAoraGluZGVyCitoaXAKK2hpcmFoCitoaXJlCitoaXJlZAoraGlzCitoaXN0b3J5CitoaXRoZXIKK2hpdHRpdGUKK2hpdHRpdGVzCitoaXZpdGUKK2hpdml0ZXMKK2hvYmFoCitob2xkCitob2xsb3cKK2hvbWUKK2hvbmVzdAoraG9uZXN0eQoraG9uZXkKK2hvbm9yCitob25vcmVkCitob3JpCitob3JpdGUKK2hvcml0ZXMKK2hvcm5zCitob3JzZSdzCitob3JzZW1lbgoraG9yc2VzCitob3N0Citob3QKK2hvdGx5Citob3VzZQoraG91c2Vob2xkCitob3VzZWhvbGRzCitob3VzZXMKK2hvdworaHVsCitodW1hbgoraHVtYW5lCitodW1ibGUKK2h1bWJsZWQKK2h1bmRyZWQKK2h1bmRyZWRmb2xkCitodW5kcmVkdGgKK2h1bnQKK2h1bnRlZAoraHVudGVyCitodW50aW5nCitodXBwaW0KK2h1c2JhbmQKK2h1c2hhbQoraHVzaGltCitpCitpZgoraWxsCitpbGwtdHJlYXQKK2ltYWdlCitpbWFnaW5hdGlvbgoraW1tZWRpYXRlCitpbW5haAoraW1wZWwKK2ltcG9ydGFuY2UKK2ltcG9zaW5nCitpbXBvc3NpYmxlCitpbgoraW5hc211Y2gKK2luY2FwYWJsZQoraW5jbHVkaW5nCitpbmNyZWFzZWQKK2luZGVlZAoraW5kZXBlbmRlbnQKK2luZGlhbgoraW5kaWduYW50CitpbmVzdGltYWJsZQoraW5ldml0YWJseQoraW5oYWJpdGFudHMKK2luaGVyaXRhbmNlCitpbmlxdWl0eQoraW5qdXJpZXMKK2luanVyeQoraW5ub2NlbmNlCitpbm5vY2VudAoraW5xdWlyZQoraW5xdWlyZWQKK2luc2lkZQoraW5zdGVhZAoraW5zdGl0dXRlCitpbnN0aXR1dGVkCitpbnN0cnVjdGVkCitpbnN0cnVjdGluZworaW5zdHJ1bWVudAoraW5zdHJ1bWVudHMKK2luc3VsdAoraW5zdXJyZWN0aW9ucworaW50ZWdyaXR5CitpbnRlbmRlZAoraW50ZW50aW9ucworaW50ZXJwcmV0CitpbnRlcnByZXRhdGlvbgoraW50ZXJwcmV0YXRpb25zCitpbnRlcnByZXRlZAoraW50ZXJwcmV0ZXIKK2ludGVycnVwdAoraW50bworaW50cm9kdWNpbmcKK2ludmFyaWFibHkKK2ludmFzaW9uCitpbnZhc2lvbnMKK2ludmVzdGVkCitpb2IKK2lyYWQKK2lyYW0KK2lyb24KK2lzCitpcydzYWNoYXIKK2lzYWFjCitpc2FhYydzCitpc2NhaAoraXNoJ21hZWwKK2lzaCdtYWVsJ3MKK2lzaCdtYWVsaXRlcworaXNoYmFrCitpc2h2YWgKK2lzaHZpCitpc3JhZWwKK2lzcmFlbCdzCitpc3JhZWxpdGVzCitpdAoraXRocmFuCitpdHMKK2l0c2VsZgoramFiYWwKK2phYmJvaworamFjaGluCitqYWNvYgoramFjb2IncworamFoJ2xlZWwKK2phaHplZWwKK2phbGFtCitqYW1pbgoramFwaGV0aAoramFyCitqYXJlZAoramF2YW4KK2plJ2dhci1zYWhhZHUndGhhCitqZSd1c2gKK2plYWxvdXMKK2plYid1c2l0ZXMKK2plbXUnZWwKK2plcmFoCitqZXN0aW5nCitqZXRoZXRoCitqZXR1cgoramV3ZWxyeQoramV6ZXIKK2ppZGxhcGgKK2pvYmFiCitqb2luZWQKK2pvaW50Citqb2tzaGFuCitqb2t0YW4KK2pvcmRhbgoram9zZXBoCitqb3NlcGgncworam91cm5leQoram91cm5leWVkCitqdWJhbAoranVkYWgKK2p1ZGFoJ3MKK2p1ZGdlCitqdWRnZWQKK2p1ZGdlcworanVkZ21lbnQKK2p1ZGljaWFyeQoranVkaXRoCitqdXJpc2RpY3Rpb24KK2p1cnk6CitqdXN0CitqdXN0aWNlCitrYWQnbW9uaXRlcwora2FkZXNoCitrZWQnZW1haAora2VkYXIKK2tlZXAKK2tlZXBlcgora2VlcGVycwora2VtdSdlbAora2VuJ2l0ZXMKK2tlbidpenppdGVzCitrZW5hbgora2VuYXoKK2tlcHQKK2tldHUncmFoCitraWQKK2tpZHMKK2tpbGwKK2tpbGxlZAora2luZAora2luZGxlZAora2luZG5lc3MKK2tpbmRyZWQKK2tpbmRzCitraW5nCitraW5nJ3MKK2tpbmdkb20KK2tpbmdzCitraW5zbWFuCitraW5zbWVuCitraXInaWF0aC1hcidiYQora2lzcwora2lzc2VkCitraXR0aW0KK2tuZWFkCitrbmVlCitrbmVlbAora25lZXMKK2tuZXcKK2tuaWZlCitrbm93Citrbm93aW5nCitrbm93bGVkZ2UKK2tub3duCitrbm93cwora29oYXRoCitrb3JhaAorbGFiYW4KK2xhYmFuJ3MKK2xhYm9yCitsYWNrCitsYWNraW5nCitsYWQKK2xhZCdzCitsYWRkZXIKK2xhZHMKK2xhaWQKK2xhaW4KK2xhbWIKK2xhbWJzCitsYW1lY2gKK2xhbWVudGF0aW9uCitsYW1lbnRlZAorbGFuZAorbGFuZHMKK2xhbmd1YWdlCitsYW5ndWFnZXMKK2xhbmd1aXNoZWQKK2xhcmdlCitsYXNoYQorbGFzdAorbGF0ZXIKK2xhdWdoCitsYXVnaGVkCitsYXVnaHRlcgorbGF3cworbGF5CitsYXlpbmcKK2xlLXVtJ21pbQorbGVhZAorbGVhZgorbGVhaAorbGVhaCdzCitsZWFuCitsZWFwCitsZWFwZWQKK2xlYXJuCitsZWFybmVkCitsZWFzdAorbGVhdmUKK2xlYXZlcworbGVkCitsZWZ0CitsZWdpc2xhdGUKK2xlZ2lzbGF0aW9uOgorbGVnaXNsYXRpdmUKK2xlZ2lzbGF0dXJlCitsZWdpc2xhdHVyZXMKK2xlaGEnYmltCitsZW5ndGgKK2xlbnRpbHMKK2xlc3NlcgorbGVzdAorbGV0CitsZXR1J3NoaW0KK2xldmV5CitsZXZpCitsaWJlcnR5CitsaWUKK2xpZXMKK2xpZmUKK2xpZmVibG9vZAorbGlmdAorbGlmdGVkCitsaWdodAorbGlnaHRzCitsaWtlCitsaWtlbHkKK2xpa2VuZXNzCitsaWtld2lzZQorbGltcGluZworbGluZW4KK2xpbmdlcmVkCitsaW9uCitsaW9uJ3MKK2xpb25lc3MKK2xpc3RlbgorbGlzdGVuZWQKK2xpc3RlbmluZworbGl0dGxlCitsaXZlCitsaXZlZAorbGl2ZXMKK2xpdmVzdG9jaworbGl2aW5nCitsbworbG9hZAorbG9hZGVkCitsb2RnZQorbG9kZ2VkCitsb2RnaW5nCitsb2lucworbG9uZworbG9uZ2VkCitsb25nZXIKK2xvbmdzCitsb29rCitsb29rZWQKK2xvb2tpbmcKK2xvb3NlCitsb3JkCitsb3JkJ3MKK2xvcmRzCitsb3NzCitsb3QKK2xvdCdzCitsb3RhbgorbG90YW4ncworbG91ZAorbG92ZQorbG92ZWQKK2xvdmVseQorbG92ZXMKK2xvd2VyCitsb3dlcmVkCitsb3lhbGx5CitsdWQKK2x1ZGltCitsdXoKK2x5aW5nCitseXJlCittYSdhY2FoCittYSdoYWxhdGgKK21hLWhhbCdhbGVsCittYWNoLQorbWFjaC1wZSdsYWgKK21hY2hpcgorbWFkYWkKK21hZGUKK21hZydkaWVsCittYWdpY2lhbnMKK21hZ25hbmltaXR5CittYWdvZworbWFoYW5hJ2ltCittYWlkCittYWlkZW4KK21haWRzCittYWlkc2VydmFudHMKK21ha2UKK21ha2VyCittYWtpbmcKK21hbCdjaGktZWwKK21hbGUKK21hbGVzCittYW1yZQorbWFuCittYW4nYWhhdGgKK21hbidzCittYW5hcydzZWgKK21hbmFzJ3NlaCdzCittYW5kcmFrZXMKK21hbmtpbmQKK21hbmx5CittYW5uZXIKK21hbnRsZQorbWFueQorbWFyaworbWFya2VkCittYXJyaWFnZQorbWFycmlhZ2VzCittYXJyaWVkCittYXJyaWVzCittYXJyeQorbWFzaAorbWFzcmUna2FoCittYXNzYQorbWFzdGVyCittYXN0ZXIncworbWF0ZQorbWF0aW5nCittYXRyZWQKK21hdHRlcgorbWF5CittZQorbWUnemFoYWIKK21lLWh1J2phLWVsCittZS10aHUnc2hhLWVsCittZWFsCittZWFuCittZWFuaW5nCittZWFucworbWVhbnQKK21lYW50aW1lCittZWFud2hpbGUKK21lYXN1cmUKK21lYXN1cmVkCittZWFzdXJlcworbWVkYW4KK21lZGl0YXRlCittZWV0CittZWV0cworbWVoZXQnYWJlbAorbWVsLWNoaXonZWRlaworbWVtYmVycworbWVuCittZW4ncworbWVuZAorbWVuZGVkCittZW5zZXJ2YW50cworbWVudGlvbgorbWVyYXInaQorbWVyY2VuYXJpZXMKK21lcmNoYW50cworbWVyY2lmdWwKK21lcmNpbGVzcworbWVyY3kKK21lcnJ5CittZXNoYQorbWVzaGVjaAorbWVzb3BvdGEnbWlhCittZXNzYWdlCittZXNzZW5nZXJzCittZXQKK21ldGh1J3NlbGFoCittaWJzYW0KK21pYnphcgorbWlkJ2lhbgorbWlkJ2lhbml0ZQorbWlkJ2lhbml0ZXMKK21pZHN0CittaWR3aWZlCittaWdodAorbWlnaHRpZXIKK21pZ2h0aWx5CittaWdodHkKK21pZ3JhdGVkCittaWdyYXRpb24KK21pbGNhaAorbWlsY2gKK21pbGl0YXJ5CittaWxrCittaW5kCittaW5lCittaXJ0aAorbWlzY2FycmllZAorbWlzaG1hCittaXN0CittaXN0cmVzcworbWl6cGFoCittaXp6YWgKK21vYWIKK21vYWJpdGVzCittb2NrCittb2NraW5nCittb25leQorbW9uc3RlcnMKK21vbnRoCittb250aHMKK21vb24KK21vcmUKK21vcmVoCittb3Jlb3ZlcgorbW9yaSdhaAorbW9ybmluZworbW9yc2VsCittb3J0YXIKK21vc3QKK21vdGhlcgorbW90aGVyJ3MKK21vdGhlcnMKK21vdHRsZWQKK21vdW50Cittb3VudGFpbgorbW91bnRhaW5zCittb3VybgorbW91cm5lZAorbW91cm5pbmcKK21vdXRoCittb3ZlZAorbW92ZXMKK21vdmluZworbXVjaAorbXVsdGlwbGllZAorbXVsdGlwbHkKK211bHRpdHVkZQorbXVwcGltCittdXJkZXJzCittdXN0CittdXR1YWxseQorbXkKK215cnJoCitteXNlbGYKK25hJ2FtYWgKK25hJ2FtYW4KK25haGF0aAorbmFob3IKK25haG9yJ3MKK25ha2VkCituYWtlZG5lc3MKK25hbWUKK25hbWVkCituYW1lcworbmFwaCd0YWxpCituYXBoLXR1J2hpbQorbmFwaGlzaAorbmF0aW9uCituYXRpb25zCituYXRpdmUKK25hdHVyYWxpemF0aW9uCituYXR1cmUKK25hdHVyZSdzCituZWFyCituZWJhJ2lvdGgKK25lY2Vzc2FyeQorbmVjZXNzaXR5CituZWNrCituZWVkCituZWdlYgorbmVnbGVjdGVkCituZWlnaGJvcmluZworbmVpdGhlcgorbmVwaGlsaW0KK25ldmVyCituZXZlcnRoZWxlc3MKK25ldworbmV4dAorbmlnaHQKK25pZ2h0cworbmlsZQorbmltcm9kCituaW4nZXZlaAorbmluZQorbmluZXRlZW4KK25pbmV0eQorbmluZXR5LWZpdmUKK25pbmV0eS1uaW5lCitubworbm9haAorbm9haCdzCitub2QKK25vbmUKK25vb24KK25vcgorbm9ydGgKK25vcnRod2FyZAorbm9zZQorbm9zdHJpbHMKK25vdAorbm90aGluZworbm93CitudW1iZXIKK251bWJlcmVkCitudW1iZXJzCitudXJzZQorbnV0cworbworb2FrCitvYWtzCitvYXRoCitvYmFsCitvYmVkaWVuY2UKK29iZWlzYW5jZQorb2JleQorb2JleWVkCitvYmplY3QKK29ic3RydWN0ZWQKK29ic3RydWN0aW5nCitvYnRhaW4KK29idGFpbmVkCitvY2Nhc2lvbgorb2NjdXBhdGlvbgorb2Rpb3VzCitvZG9yCitvZgorb2ZmCitvZmZlbmRlZAorb2ZmZW5zZQorb2ZmZW5zZXM6CitvZmZlcgorb2ZmZXJlZAorb2ZmZXJpbmcKK29mZmVyaW5ncworb2ZmaWNlCitvZmZpY2VyCitvZmZpY2Vycworb2ZmaWNlcworb2Zmc3ByaW5nCitvaAorb2hhZAorb2hvbGliYSdtYWgKK29pbAorb2xkCitvbGRlcgorb2xkZXN0CitvbGl2ZQorb21hcgorb24KK29uYW0KK29uYW4KK29uY2UKK29uZQorb25lcworb25seQorb255eAorb3Blbgorb3BlbmVkCitvcGVyYXRpb24KK29waGlyCitvcGluaW9ucworb3Bwb3NpbmcKK29wcG9zaXRlCitvcHByZXNzZWQKK29wcHJlc3Npb25zCitvcgorb3JkZXIKK29yZGVycworb3JnYW5pemluZworb3JuYW1lbnRzCitvdGhlcgorb3RoZXJzCitvdWdodAorb3VyCitvdXJzCitvdXJzZWx2ZXMKK291dAorb3V0Y3J5CitvdXRzaWRlCitvdXR3aXR0ZWQKK292ZXIKK292ZXJkcml2ZW4KK292ZXJzZWVyCitvdmVyc2VlcnMKK292ZXJzaWdodAorb3ZlcnRha2UKK292ZXJ0aHJldworb3ZlcnRocm93CitvdmVydG9vaworb3duCitvd25zCitveGVuCitwYWNlCitwYWRkYW4KK3BhZGRhbi1hcmFtCitwYWlkCitwYWluCitwYWlyCitwYWlycworcGFsbHUKK3BhcmFsbGVsZWQKK3BhcmFuCitwYXJ0CitwYXJ0cworcGFzcworcGFzc2VkCitwYXN0CitwYXN0dXJlCitwYXN0dXJlZAorcGFzdHVyaW5nCitwYXRoCitwYXRocnUnc2ltCitwYXRpZW50CitwYXUKK3BheQorcGF5bWVudAorcGUnbGFoCitwZWFjZQorcGVhY2VhYmx5CitwZWVsZWQKK3BlbGVnCitwZW5pJ2VsCitwZW51J2VsCitwZW9wbGUKK3Blb3BsZWQKK3Blb3BsZXMKK3BlcidpenppdGVzCitwZXJlegorcGVyZmlkeQorcGVyZm9ybQorcGVyaGFwcworcGVyaXNoCitwZXJtaXQKK3BlcnBldHVhdGVkCitwZXJzb25zCitwZXRpdGlvbmVkCitwZXRpdGlvbnMKK3BoYXJhb2gKK3BoYXJhb2gncworcGhpY29sCitwaGlsaXN0aW5lcworcGh5c2ljaWFucworcGllY2UKK3BpZWNlcworcGlnZW9uCitwaWxkYXNoCitwaWxsYXIKK3Bpbm9uCitwaXBlCitwaXNob24KK3Bpc3RhY2hpbworcGl0CitwaXRjaAorcGl0Y2hlZAorcGl0cworcGxhY2UKK3BsYWNlZAorcGxhY2VzCitwbGFndWVzCitwbGFpbgorcGxhaW5seQorcGxhbmUKK3BsYW5uaW5nCitwbGFudAorcGxhbnRlZAorcGxhbnRzCitwbGF5CitwbGF5ZWQKK3BsYXlpbmcKK3BsZWFzYW50CitwbGVhc2UKK3BsZWFzZWQKK3BsZWFzZXMKK3BsZWFzaW5nCitwbGVhc3VyZQorcGxlZGdlCitwbGVudGVvdXMKK3BsZW50eQorcGxvd2luZworcGx1Y2tlZAorcGx1bXAKK3BsdW5kZXJlZAorcG9pbnQKK3BvbGl0aWNhbAorcG9vcgorcG9wbGFyCitwb3B1bGF0aW9uCitwb3J0aW9uCitwb3J0aW9ucworcG9zc2VzcworcG9zc2Vzc2lvbgorcG9zc2Vzc2lvbnMKK3Bvc3Rlcml0eQorcG90Citwb3QnaS1waGFyCitwb3RpJ3BoZXJhCitwb3R0YWdlCitwb3VyZWQKK3BvdmVydHkKK3Bvd2VyCitwb3dlcnMKK3ByYWlzZQorcHJhaXNlZAorcHJheQorcHJheWVkCitwcmF5ZXIKK3ByZS1lbWluZW5jZQorcHJlLWVtaW5lbnQKK3ByZXBhcmUKK3ByZXBhcmVkCitwcmVzZW5jZQorcHJlc2VudAorcHJlc2VudGVkCitwcmVzZXJ2ZQorcHJlc2VydmVkCitwcmVzc2VkCitwcmVzc2luZworcHJldGVuZGVkCitwcmV2YWlsCitwcmV2YWlsZWQKK3ByZXZlbnQKK3ByZXZlbnRlZAorcHJleQorcHJpY2UKK3ByaWRlCitwcmllc3QKK3ByaWVzdHMKK3ByaW5jZQorcHJpbmNlcworcHJpbmNpcGxlcworcHJpc29uCitwcmlzb25lcnMKK3Byb2NlZWQKK3Byb2R1Y2UKK3Byb2ZpdAorcHJvbWlzZQorcHJvbWlzZWQKK3Byb25vdW5jZQorcHJvcGVydHkKK3Byb3BoZXQKK3Byb3Bvc2FsCitwcm9wb3NlCitwcm9zcGVyCitwcm9zcGVyZWQKK3Byb3RlY3RpbmcKK3Byb3RlY3Rpb24KK3Byb3ZlCitwcm92ZW5kZXIKK3Byb3ZpZGUKK3Byb3ZpZGVkCitwcm92aWRlbmNlCitwcm92aW5jZQorcHJvdmlzaW9uCitwcm92aXNpb25zCitwcnVkZW5jZQorcHVibGljCitwdWJsaXNoCitwdW5pc2htZW50CitwdXJjaGFzZWQKK3B1cmlmeQorcHVycG9zZQorcHVyc3VlCitwdXJzdWVkCitwdXJzdWluZworcHVyc3VpdAorcHV0CitwdXR0aW5nCitwdXZhaAorcXVhcnJlbAorcXVhcnJlbGVkCitxdWFydGVyaW5nCitxdWVzdGlvbmVkCitxdWVzdGlvbnMKK3F1aWNrbHkKK3F1aWV0CitxdWl2ZXIKK3JhJ2FtYWgKK3JhY2hlbAorcmFjaGVsJ3MKK3JhaWQKK3JhaWRlcnMKK3JhaW1lbnQKK3JhaW4KK3JhaW5lZAorcmFpc2UKK3JhaXNlZAorcmFpc2luZworcmFtCityYW0nZXNlcworcmFtcworcmFuCityYXRoZXIKK3JhdmFnZWQKK3JhdmVuCityYXZlbm91cworcmUndQorcmVhY2hlZAorcmVhZHkKK3JlYWxseQorcmVhcGVkCityZWFzb24KK3JlYXNzdXJlZAorcmViZWthaAorcmViZWthaCdzCityZWJlbGxlZAorcmVidWtlZAorcmVjZWRlZAorcmVjZWl2ZQorcmVjZWl2ZWQKK3JlY2tvbmVkCityZWNrb25pbmcKK3JlY29nbml6ZQorcmVjb2duaXplZAorcmVjb3JkcworcmVjdGl0dWRlCityZWQKK3JlZGVlbWVkCityZWRyZXNzCityZWR1Y2UKK3JlZWQKK3JlZnJlc2gKK3JlZnVzZWQKK3JlZnVzaW5nCityZWdhcmQKK3JlZ2FyZGVkCityZWdhcmRzCityZWhvJ2JvdGgKK3JlaG8nYm90aC1pcgorcmVpZ24KK3JlaWduZWQKK3JlbGlhbmNlCityZWxpZWYKK3JlbGlucXVpc2gKK3JlbWFpbgorcmVtYWluZWQKK3JlbWFpbmluZworcmVtYWlucworcmVtZW1iZXIKK3JlbWVtYmVyZWQKK3JlbWluZGVkCityZW1uYW50CityZW1vdmUKK3JlbW92ZWQKK3JlbW92aW5nCityZW5kZXIKK3Jlbm93bgorcmVudAorcmVwZWF0ZWQKK3JlcGVhdGVkbHkKK3JlcGgnYWltCityZXBsYWNlCityZXBsYWNlZAorcmVwbGllZAorcmVwb3J0CityZXByZXNlbnRhdGlvbgorcmVwcmVzZW50YXRpdmUKK3JlcHJlc2VudGF0aXZlcworcmVwcm9hY2gKK3JlcXVpcmUKK3JlcXVpcmVkCityZXF1aXJlcworcmVzY3VlCityZXNlbgorcmVzZXJ2ZQorcmVzZXJ2ZWQKK3Jlc3BlY3QKK3Jlc3QKK3Jlc3RlZAorcmVzdGluZworcmVzdG9yZQorcmVzdG9yZWQKK3Jlc3RyYWluZWQKK3JldHVybgorcmV0dXJuZWQKK3JldSdlbAorcmV1YmVuCityZXVtYWgKK3JldmVhbGVkCityZXZpdmVkCityZXdhcmQKK3JpYgorcmlicworcmljaAorcmlkZQorcmlkZXIKK3JpZ2h0CityaWdodGVkCityaWdodGVvdXMKK3JpZ2h0ZW91c25lc3MKK3JpZ2h0bHkKK3JpZ2h0cworcmluZworcmluZ3MKK3JpcGVuZWQKK3JpcGhhdGgKK3Jpc2UKK3Jpc2VuCityaXZlcgorcml2ZXJzCityb2FkCityb2JlCityb2NrCityb2RlCityb2RzCityb2xsCityb2xsZWQKK3Jvb2YKK3Jvb20KK3Jvb21zCityb3NlCityb3NoCityb3VnaGx5Cityb3VuZAorcm91c2UKK3JvdXRlZAorcm95YWwKK3J1bGUKK3J1bGVyCitydWxlcidzCitydW4KK3J1bm5lbHMKK3NhYid0ZWNhCitzYWJ0YWgKK3NhY2sKK3NhY2tjbG90aAorc2Fja3MKK3NhY3JlZAorc2FjcmlmaWNlCitzYWNyaWZpY2VzCitzYWRkbGUKK3NhZGRsZWQKK3NhZmVseQorc2FmZXR5CitzYWlkCitzYWtlCitzYWxhcmllcworc2FsZW0KK3NhbHQKK3NhbHZhdGlvbgorc2FtZQorc2FtbGFoCitzYW5kCitzYW5kYWwtdGhvbmcKK3NhcidhaQorc2FyYWgKK3NhcmFoJ3MKK3NhdAorc2F2YWdlcworc2F2ZWQKK3NhdmluZworc2F2b3J5CitzYXcKK3NheQorc2F5aW5nCitzYXlzCitzY2FyY2VseQorc2NhcmxldAorc2NhdHRlcgorc2NhdHRlcmVkCitzY2VwdGVyCitzZSdpcgorc2VhCitzZWFyY2hlZAorc2Vhcworc2Vhc2hvcmUKK3NlYXNvbgorc2Vhc29ucworc2ViYQorc2Vjb25kCitzZWNyZXRseQorc2VjdXJlCitzZWN1cml0eQorc2VlCitzZWVkCitzZWVkdGltZQorc2VlaW5nCitzZWVrCitzZWVraW5nCitzZWVtCitzZWVtZWQKK3NlZW4KK3NlZXMKK3NlaXplCitzZWl6ZWQKK3NlbGVjdAorc2VsZi1ldmlkZW50CitzZWxsCitzZW1lbgorc2VuZAorc2VudAorc2VwYXJhdGUKK3NlcGFyYXRlZAorc2VwYXJhdGlvbgorc2VwaGFyCitzZXB1bGNocmUKK3NlcHVsY2hyZXMKK3NlcmFoCitzZXJlZAorc2VycGVudAorc2VydWcKK3NlcnZhbnQKK3NlcnZhbnQncworc2VydmFudHMKK3NlcnZlCitzZXJ2ZWQKK3NlcnZpY2UKK3NlcnZpbmcKK3NldAorc2V0aAorc2V0dGxlCitzZXR0bGVkCitzZXR0bGVtZW50CitzZXZlbgorc2V2ZW5mb2xkCitzZXZlbnRlZW4KK3NldmVudGVlbnRoCitzZXZlbnRoCitzZXZlbnR5CitzZXZlbnR5LWZpdmUKK3NldmVudHktc2V2ZW4KK3NldmVudHktc2V2ZW5mb2xkCitzZXZlcmUKK3Nld2VkCitzZXhlcworc2hhJ3ZlaC1raXJpYXRoYSdpbQorc2hhbGwKK3NoYW1tYWgKK3NoYXJlCitzaGF1bAorc2hhdmVkCitzaGF2ZWgKK3NoZQorc2hlLWFzc2VzCitzaGUtZ29hdAorc2hlLWdvYXRzCitzaGVhZgorc2hlYXIKK3NoZWF2ZXMKK3NoZWJhCitzaGVjaGVtCitzaGVjaGVtJ3MKK3NoZWQKK3NoZWRzCitzaGVlcAorc2hlZXBmb2xkcworc2hlZXBzaGVhcmVycworc2hla2VsCitzaGVrZWxzCitzaGVsYWgKK3NoZWxlcGgKK3NoZWx0ZXIKK3NoZW0KK3NoZW1lJ2Jlcgorc2hlb2wKK3NoZXBoZXJkCitzaGVwaGVyZGluZworc2hlcGhlcmRzCitzaGVwaG8KK3NoaWJhaAorc2hpZWxkCitzaGlsbGVtCitzaGltcm9uCitzaGluYWIKK3NoaW5hcgorc2hpcHMKK3Nob2JhbAorc2hvcmUKK3Nob3J0CitzaG9ydGx5CitzaG90CitzaG91bGQKK3Nob3VsZGVyCitzaG91bGRlcnMKK3Nob3cKK3Nob3dlZAorc2hvd24KK3NodWEKK3NodWEncworc2h1YWgKK3NodW5pCitzaHVyCitzaHV0CitzaWRkaW0KK3NpZGUKK3NpZG9uCitzaWdodAorc2lnbgorc2lnbmV0CitzaWducworc2lsZW5jZQorc2lsdmVyCitzaW1lb24KK3Npbgorc2luY2UKK3NpbmV3CitzaW5pdGVzCitzaW5uZWQKK3Npbm5lcnMKK3Npbm5pbmcKK3Npc3Rlcgorc2lzdGVyJ3MKK3NpdAorc2l0bmFoCitzaXR0aW5nCitzaXgKK3NpeHRlZW4KK3NpeHRoCitzaXh0eQorc2l4dHktZml2ZQorc2l4dHktbmluZQorc2l4dHktc2l4CitzaXh0eS10d28KK3NraWxmdWwKK3NraW4KK3NraW5zCitzbGFpbgorc2xhdWdodGVyCitzbGF2ZQorc2xhdmVzCitzbGF5CitzbGF5cworc2xlZWsKK3NsZWVwCitzbGVldmVzCitzbGVwdAorc2xldworc2xvcGUKK3Nsb3dseQorc21hbGwKK3NtZWxsCitzbWVsbGVkCitzbW9rZQorc21va2luZworc21vb3RoCitzbworc29kb20KK3NvaWwKK3Nvam91cm4KK3Nvam91cm5lZAorc29qb3VybmVyCitzb2pvdXJuZXJzCitzb2pvdXJuaW5nCitzb2pvdXJuaW5ncworc29sZAorc29sZQorc29sZW1ubHkKK3NvbWUKK3Nvbgorc29uJ3MKK3NvbmdzCitzb25zCitzb25zJworc29ucy1pbi1sYXcKK3Nvb24KK3NvcmUKK3NvcmVseQorc29ycm93Citzb3Jyb3dmdWwKK3NvcnJ5Citzb3J0Citzb3J0cworc291Z2h0Citzb3VsCitzb3VuZAorc291dGgKK3NvdXRod2FyZAorc293Citzb3dlZAorc3BhY2UKK3NwYXJlCitzcGFyZWQKK3NwZWFrCitzcGVha2luZworc3BlYWtzCitzcGVja2xlZAorc3BlZWNoCitzcGVuZAorc3BlbnQKK3NwaWVzCitzcGlsbGVkCitzcGlyaXQKK3NwbGVuZG9yCitzcG9pbAorc3Bva2UKK3Nwb2tlbgorc3BvdHRlZAorc3ByZWFkCitzcHJpbmcKK3NwcmluZ2luZworc3ByaW5ncworc3Byb3V0ZWQKK3NwcnVuZworc3RhZmYKK3N0YWdlCitzdGFsaworc3RhbmQKK3N0YW5kaW5nCitzdGFuZHMKK3N0YXJzCitzdGF0ZQorc3RhdGVzCitzdGF0ZXM6CitzdGF0aW9uCitzdGF0dXRlCitzdGF0dXRlcworc3RheQorc3RheWVkCitzdGVhZAorc3RlYWRmYXN0CitzdGVhbAorc3Rld2FyZAorc3RpbGwKK3N0b2xlCitzdG9sZW4KK3N0b25lCitzdG9uZXMKK3N0b29kCitzdG9vcGVkCitzdG9wCitzdG9wcGVkCitzdG9yZQorc3RvcmVkCitzdG9yZWhvdXNlcworc3RvcnkKK3N0cmFuZ2VyCitzdHJhbmdlcnMKK3N0cmF3CitzdHJlYWtzCitzdHJlYW0KK3N0cmVldAorc3RyZW5ndGgKK3N0cmV0Y2hlZAorc3RyaWZlCitzdHJpa2luZworc3RyaXBlZAorc3RyaXBwZWQKK3N0cml2ZW4KK3N0cm9uZworc3Ryb25nZXIKK3N0cm9uZ2x5CitzdHJ1Y2sKK3N0cnVnZ2xlZAorc3ViZHVlCitzdWJkdWVkCitzdWJqZWN0CitzdWJtaXQKK3N1Ym1pdHRlZAorc3Vic2lkZWQKK3N1YnN0YW5jZQorc3VidGxlCitzdWNjZXNzCitzdWNjZXNzZnVsCitzdWNjb3RoCitzdWNoCitzdWNrCitzdWNrbGUKK3N1ZmZlcgorc3VmZmVyYWJsZQorc3VmZmVyYW5jZQorc3VpdGFibGUKK3N1bW1lcgorc3VtbW9uZWQKK3N1bgorc3VwZXJpb3IKK3N1cHBsYW50ZWQKK3N1cHBsaWVkCitzdXBwb3J0CitzdXBwb3NlCitzdXByZW1lCitzdXJlbHkKK3N1cmV0eQorc3Vycm91bmRlZAorc3Vydml2b3JzCitzdXNwZW5kZWQKK3N1c3BlbmRpbmcKK3N1c3RhaW5lZAorc3dhbGxvd2VkCitzd2FybQorc3dhcm1pbmcKK3N3YXJtcworc3dlYXIKK3N3ZWF0Citzd29yZAorc3dvcmRzCitzd29yZQorc3dvcm4KK3N5c3RlbQorc3lzdGVtcwordGFibGUKK3RhaGFzaAordGFrZQordGFrZW4KK3Rha2luZwordGFsa2VkCit0YWxraW5nCit0YW1hcgordGFtYXJpc2sKK3RhbWJvdXJpbmUKK3RhcnJpZWQKK3RhcnJ5Cit0YXJzaGlzaAordGF4ZXMKK3RlJ21hbml0ZXMKK3RlYmFoCit0ZWV0aAordGVsbAordGVsbHMKK3RlbWEKK3RlbWFuCit0ZW4KK3RlbmRlcgordGVuZGVybHkKK3RlbnQKK3RlbnRoCit0ZW50cwordGVudXJlCit0ZXJhaAordGVybXM6Cit0ZXJyaXRvcnkKK3RlcnJvcgordGVzdGVkCit0aGFuCit0aGF0Cit0aGUKK3RoZWUKK3RoZWlyCit0aGVpcnMKK3RoZW0KK3RoZW1zZWx2ZXMKK3RoZW4KK3RoZW5jZQordGhlcmUKK3RoZXJlZm9yZQordGhlcmVpbgordGhlc2UKK3RoZXkKK3RoaWNrZXQKK3RoaWdoCit0aGluCit0aGluZwordGhpbmdzCit0aGlua2luZwordGhpcmQKK3RoaXJ0ZWVuCit0aGlydGVlbnRoCit0aGlydHkKK3RoaXJ0eS1maXZlCit0aGlydHktZm91cgordGhpcnR5LXNldmVuCit0aGlydHktdGhyZWUKK3RoaXJ0eS10d28KK3RoaXMKK3RoaXN0bGVzCit0aG9ybnMKK3Rob3JvdWdobHkKK3Rob3NlCit0aG91Cit0aG91Z2h0Cit0aG91Z2h0cwordGhvdXNhbmQKK3Rob3VzYW5kcwordGhyZWFkCit0aHJlZQordGhyZXNoaW5nCit0aHJvbmUKK3Rocm91Z2gKK3Rocm91Z2hvdXQKK3Rocm93Cit0aHVzCit0aHkKK3RpZGFsCit0aWRpbmdzCit0aWVzCit0aWdyaXMKK3RpbGwKK3RpbGxlcgordGltZQordGltZXMKK3RpbW5hCit0aW1uYWgKK3RpcmFzCit0bwordG9kYXkKK3RvZ2FyJ21haAordG9nZXRoZXIKK3RvaWwKK3RvbGEKK3RvbGQKK3RvbWIKK3RvbmlnaHQKK3RvbwordG9vawordG9wCit0b3BzCit0b3JjaAordG9ybgordG90YWxseQordG90YWx5Cit0b3VjaAordG91Y2hlZAordG91Y2hlcwordG93YXJkCit0b3dlcgordG93bnMKK3RyYWRlCit0cmFkZXJzCit0cmFpbgordHJhaW5lZAordHJhbnNncmVzc2lvbgordHJhbnNpZW50Cit0cmFuc3BvcnRpbmcKK3RyYXZhaWxlZAordHJlYXN1cmUKK3RyZWF0Cit0cmVhdGVkCit0cmVlCit0cmVlcwordHJlbWJsZWQKK3RyZW1ibGluZwordHJpYWwKK3RyaWJlcwordHJpZWQKK3Ryb29wcwordHJvdWJsZQordHJvdWJsZWQKK3Ryb3VibGVzCit0cm91Z2gKK3Ryb3VnaHMKK3RydWx5Cit0cnV0aAordHJ1dGhzCit0dWJhbAordHViYWwtCit0dWJhbC1jYWluCit0dXJuCit0dXJuZWQKK3R1cm5zCit0dXJ0bGVkb3ZlCit0d2VsdmUKK3R3ZW50eQordHdlbnR5LW5pbmUKK3R3ZW50eS1zZXZlbgordHdlbnR5LXNldmVudGgKK3R3aWNlCit0d2lucwordHdvCit0eXJhbm55Cit0eXJhbnQKK3R5cmFudHMKK3VuYWNrbm93bGVkZ2VkCit1bmFsaWVuYWJsZQordW5hd2FyZXMKK3VuY2lyY3VtY2lzZWQKK3VuY29tZm9ydGFibGUKK3VuY292ZXJlZAordW5kZXIKK3VuZGVyc3RhbmQKK3VuZGVyc3Rvb2QKK3VuZGlzdGluZ3Vpc2hlZAordW5maXQKK3VuZ2lyZGVkCit1bml0ZWQKK3Vua25vd24KK3VubGVhdmVuZWQKK3VubGVzcwordW5tb3ZlZAordW5zdGFibGUKK3VudGlsCit1bnVzdWFsCit1bndhcnJhbnRhYmxlCit1bndvcnRoCit1cAordXBicmFpZGVkCit1cG9uCit1cHBlcm1vc3QKK3VwcmlnaHQKK3VyCit1cmdlZAordXMKK3VzOgordXNlCit1c2luZwordXN1cnBhdGlvbnMKK3V0dGVybHkKK3V6Cit1emFsCit2YWxsZXkKK3ZhbHVhYmxlCit2ZWdldGF0aW9uCit2ZWlsCit2ZW5nZWFuY2UKK3ZlbnQKK3ZlbnRzCit2ZXJpZmllZAordmVyeQordmVzdHVyZQordmlsbGFnZXMKK3ZpbmRpY2F0aW9uCit2aW5lCit2aW5leWFyZAordmlvbGVuY2UKK3Zpb2xlbnRseQordmlwZXIKK3ZpcmdpbgordmlzaW9uCit2aXNpb25zCit2aXNpdAordmlzaXRlZAordm9pY2UKK3ZvaWQKK3Zvdword2FnZXMKK3dhZ2luZword2Fnb25zCit3YWl0Cit3YWl0ZWQKK3dhbGsKK3dhbGtlZAord2Fsa2luZword2FsbAord2FuZGVyCit3YW5kZXJlZAord2FuZGVyZXIKK3dhbmRlcmluZword2FudGluZword2FudG9ubmVzcword2FyCit3YXJmYXJlCit3YXJuZWQKK3dhcword2FzaAord2FzaGVkCit3YXNoZXMKK3dhdGNoCit3YXRlcgord2F0ZXJlZAord2F0ZXJpbmcKK3dhdGVycword2F5Cit3YXlzaWRlCit3ZQord2Vhaword2Vha25lc3MKK3dlYWx0aAord2VhbHRoeQord2VhbmVkCit3ZWFwb25zCit3ZWFyCit3ZWFyaWVkCit3ZWFyeQord2Vlaword2VlcAord2VlcGluZword2VpZ2hlZAord2VpZ2hpbmcKK3dlaWdodAord2VpZ2h0cword2VsZmFyZQord2VsbAord2VsbCdzCit3ZWxscword2VudAord2VwdAord2VyZQord2VzdAord2VzdHdhcmQKK3doYXQKK3doYXRldmVyCit3aGF0c29ldmVyCit3aGVhdAord2hlbHAKK3doZW4KK3doZW5jZQord2hlbmV2ZXIKK3doZXJlCit3aGVyZWJ5Cit3aGVyZXZlcgord2hldGhlcgord2hpY2gKK3doaWxlCit3aGl0ZQord2hvCit3aG9ldmVyCit3aG9sZQord2hvbGVzb21lCit3aG9tCit3aG9tZXZlcgord2hvc2UKK3doeQord2lja2VkCit3aWNrZWRseQord2lja2VkbmVzcword2lkb3cKK3dpZG93J3MKK3dpZG93aG9vZAord2lmZQord2lmZSdzCit3aWxkCit3aWxkZXJuZXNzCit3aWxsCit3aWxsaW5nCit3aWx0Cit3aW5kCit3aW5kb3cKK3dpbmRvd3MKK3dpbmUKK3dpbmdlZAord2ludGVyCit3aXNlCit3aXRoCit3aXRoZXJlZAord2l0aGhlbGQKK3dpdGhob2xkCit3aXRoaW4KK3dpdGhvdXQKK3dpdG5lc3MKK3dpdmVzCit3b2xmCit3b21hbgord29tYW4ncword29tYgord29tYnMKK3dvbWVuCit3b29kCit3b3JkCit3b3Jkcword29yZQord29yaword29ya3MKK3dvcmxkCit3b3JsZDoKK3dvcnNlCit3b3JzaGlwCit3b3JzaGlwZWQKK3dvcnRoCit3b3J0aHkKK3dvdWxkCit3b3VuZGluZword3JhcHBpbmcKK3dyYXRoCit3cmVzdGxlZAord3Jlc3RsaW5ncword3JvbmcKK3dyb3VnaHQKK3llYXIKK3llYXJuZWQKK3llYXJzCit5ZXMKK3lldAoreWllbGQKK3lpZWxkaW5nCit5b2tlCit5b25kZXIKK3lvdQoreW91bmcKK3lvdW5nZXIKK3lvdW5nZXN0Cit5b3VyCit5b3VycworeW91cnNlbGYKK3lvdXJzZWx2ZXMKK3lvdXRoCit6YSdhdmFuCit6YXBoJ2VuYXRoLXBhbmUnYWgKK3plYid1bHVuCit6ZWJvaSdpbQoremVtJ2FyaXRlcworemVwaG8KK3plcmFoCit6aWInZW9uCit6aWxsYWgKK3ppbHBhaAoremltcmFuCit6aXBoJ2lvbgorem8nYXIKK3pvaGFyCit6dXppbQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDBmMTI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzLmphdmEKQEAgLTAsMCArMSwzNCBAQAorIC8qCisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kYXRhLnJlc291cmNlczsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBUZXN0RGF0YUVsZW1lbnRzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W11bXSBkYXRhID0gbmV3IE9iamVjdFtdW10geyAKKyAgICAgICAgeyAgICAKKyAgICAgICAgICAgICJmcm9tX3Jvb3QiLAorICAgIAkJIlRoaXMgZGF0YSBjb21lcyBmcm9tIHJvb3QiCisgICAgCX0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJmcm9tX2VuIiwKKyAgICAgICAgICAgICJJbiByb290IHNob3VsZCBiZSBvdmVycmlkZGVuIgorICAgICAgICB9LAorICAgIAl7IAorICAgIAkJImZyb21fZW5fTGF0biIsCisgICAgCQkiSW4gcm9vdCBzaG91bGQgYmUgb3ZlcnJpZGRlbiIKKyAgICAJfSwKKyAgICAJeworICAgIAkJImZyb21fZW5fTGF0bl9VUyIsCisgICAgCQkiSW4gcm9vdCBzaG91bGQgYmUgb3ZlcnJpZGRlbiIKKyAgICAJfQorICAgIAkKKyAgICB9OworCXByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworCQlyZXR1cm4gZGF0YTsKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfZW4ucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50c19lbi5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0YzNmMTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfZW4ucHJvcGVydGllcwpAQCAtMCwwICsxLDEwIEBACisjICoKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICoKKyMgVGVzdERhdGFFbGVtZW50c19lbi5wcm9wZXJ0aWVzCitmcm9tX2VuPVRoaXMgZGF0YSBjb21lcyBmcm9tIGVuCitmcm9tX2VuX0xhdG49SW4gZW4gc2hvdWxkIGJlIG92ZXJyaWRkZW4KK2Zyb21fZW5fTGF0bl9VUz1JbiBlbiBzaG91bGQgYmUgb3ZlcnJpZGRlbgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsZW1lbnRzX2VuX0xhdG4ucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50c19lbl9MYXRuLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg1ZWI5NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50c19lbl9MYXRuLnByb3BlcnRpZXMKQEAgLTAsMCArMSw5IEBACisjICoKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqCisjIFRlc3REYXRhRWxlbWVudHNfZW5fTGF0bi5wcm9wZXJ0aWVzCitmcm9tX2VuX0xhdG49VGhpcyBkYXRhIGNvbWVzIGZyb20gZW5fTGF0bgorZnJvbV9lbl9MYXRuX1VTPUluIGVuX0xhdG4gc2hvdWxkIGJlIG92ZXJyaWRkZW4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50c19lbl9MYXRuX1VTLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfZW5fTGF0bl9VUy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiY2ZjM2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfZW5fTGF0bl9VUy5qYXZhCkBAIC0wLDAgKzEsMjIgQEAKKyAvKgorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGF0YS5yZXNvdXJjZXM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgVGVzdERhdGFFbGVtZW50c19lbl9MYXRuX1VTIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W11bXSBkYXRhID0gbmV3IE9iamVjdFtdW10geyAKKyAgICAJeworICAgIAkJImZyb21fZW5fTGF0bl9VUyIsCisgICAgCQkiVGhpcyBkYXRhIGNvbWVzIGZyb20gZW5fTGF0bl9VUyIKKyAgICAJfQorICAgIAkKKyAgICB9OworCXByb3RlY3RlZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworCQlyZXR1cm4gZGF0YTsKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfZW5fVVMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbGVtZW50c19lbl9VUy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmYTg0NjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvcmVzb3VyY2VzL1Rlc3REYXRhRWxlbWVudHNfZW5fVVMuamF2YQpAQCAtMCwwICsxLDIzIEBACisgLyoKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRhdGEucmVzb3VyY2VzOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIFRlc3REYXRhRWxlbWVudHNfZW5fVVMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W11bXSBkYXRhID0gbmV3IE9iamVjdFtdW10geyAKKyAgICAgICAgeworICAgICAgICAgICAgImZyb21fZW5fVVMiLAorICAgICAgICAgICAgIlRoaXMgZGF0YSBjb21lcyBmcm9tIGVuX1VTIgorICAgICAgICB9CisgICAgICAgIAorICAgIH07CisgICAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBkYXRhOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbG1lbnRzX2ZyX0xhdG5fRlIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yZXNvdXJjZXMvVGVzdERhdGFFbG1lbnRzX2ZyX0xhdG5fRlIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzFiNGEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jlc291cmNlcy9UZXN0RGF0YUVsbWVudHNfZnJfTGF0bl9GUi5qYXZhCkBAIC0wLDAgKzEsMjQgQEAKKyAvKgorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kYXRhLnJlc291cmNlczsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBUZXN0RGF0YUVsbWVudHNfZnJfTGF0bl9GUiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXVtdIGRhdGEgPSBuZXcgT2JqZWN0W11bXSB7IAorICAgICAgICB7CisgICAgICAgICAgICAiZnJvbV9mcl9MYXRuX0ZSIiwKKyAgICAgICAgICAgICJUaGlzIGRhdGEgY29tZXMgZnJvbSBmcl9MYXRuX0ZSIgorICAgICAgICB9CisgICAgICAgIAorICAgIH07CisgICAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBkYXRhOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yaXdvcmRzLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS9yaXdvcmRzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2RhYjI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3Jpd29yZHMudHh0CkBAIC0wLDAgKzEsMzI5NDMgQEAKK++7vyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjKgorIyogICBDb3B5cmlnaHQgKEMpIDIwMDMsIE5hdGlvbmFsIEVsZWN0cm9uaWNzIGFuZCBDb21wdXRlciBUZWNobm9sb2d5IENlbnRlcgorIyogICBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMqIAorIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgU29ydGVkIFRoYWkgd29yZCBsaXN0IHVzZWQgZm9yIHRlc3RpbmcgdGhlIFRoYWlDb2xsYXRvciBjbGFzcy4KKyMgVGhpcyBsaXN0IHdhcyB0YWtlbiBmcm9tIHRoZSBXZWI6IDxodHRwOi8vd3d3LmxpbmtzLm5lY3RlYy5vci50aC9pdGVjaC9kb3dubG9hZC5odG1sPgorIworIyBMaW5lcyBzdGFydGluZyB3aXRoICcjJyBhcmUgaWdub3JlZDsgb3RoZXJzIGFyZSB0cmVhdGVkIGFzIHNpbmdsZSB3b3JkcworIyBpbiB0aGUgVVRGLTggZW5jb2RpbmcuCisjCisjCisjIExpY2Vuc2UgaW5mb3JtYXRpb246CisjIFJJV29yZCBMaWNlbnNlCisjIAorIyBDT1BZUklHSFQgQU5EIFBFUk1JU1NJT04gTk9USUNFCisjIAorIyBDb3B5cmlnaHQgKGMpIDIwMDMgTmF0aW9uYWwgRWxlY3Ryb25pY3MgYW5kIENvbXB1dGVyIFRlY2hub2xvZ3kgQ2VudGVyIGFuZCBvdGhlcnMKKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgCisjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisjIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyMgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworIyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisjIGRpc3RyaWJ1dGUsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucworIyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UocykgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgb2YKKyMgdGhlIFNvZnR3YXJlIGFuZCB0aGF0IGJvdGggdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UocykgYW5kIHRoaXMKKyMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIHN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbi4KKyMgCisjIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCisjIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyMgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5UCisjIE9GIFRISVJEIFBBUlRZIFJJR0hUUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyMgSE9MREVSUyBJTkNMVURFRCBJTiBUSElTIE5PVElDRSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgT1IgQU5ZIFNQRUNJQUwKKyMgSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTLCBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORworIyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorIyBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgorIyBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KKyMgCisjIEV4Y2VwdCBhcyBjb250YWluZWQgaW4gdGhpcyBub3RpY2UsIHRoZSBuYW1lIG9mIGEgY29weXJpZ2h0IGhvbGRlcgorIyBzaGFsbCBub3QgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvciBvdGhlcndpc2UgdG8gcHJvbW90ZSB0aGUgc2FsZSwgdXNlCisjIG9yIG90aGVyIGRlYWxpbmdzIGluIHRoaXMgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1dGhvcml6YXRpb24KKyMgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIuCisjIAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBBbGwgdHJhZGVtYXJrcyBhbmQgcmVnaXN0ZXJlZCB0cmFkZW1hcmtzIG1lbnRpb25lZCBoZXJlaW4gYXJlIHRoZSBwcm9wZXJ0eSBvZiB0aGVpciByZXNwZWN0aXZlIG93bmVycy4KK+C4gQor4LiB4LmHCivguIHguIEKK+C4geC5iuC4gQor4LiB4LiB4LiC4LiZ4Liy4LiBCivguIHguIHguIrguYnguLLguIcKK+C4geC4geC4mOC4ueC4mwor4LiB4LiB4Lir4Li5CivguIEg4LiB4LiyCivguIHguIHguLjguJjguKDguLHguJPguJHguYwKK+C4gSDguIIKK+C4gSDguIIg4LmE4Lih4LmI4LiB4Lij4Liw4LiU4Li04LiB4Lir4Li5CivguIHguIcKK+C4geC5iOC4hwor4LiB4LmJ4LiHCivguIHguYrguIcKK+C4geC4h+C4geC4reC4mQor4LiB4LiH4LiB4Liy4LijCivguIHguIfguYDguIHguKfguLXguKLguJkKK+C4geC4h+C5gOC4geC4p+C4teC4ouC4meC4geC4s+C5gOC4geC4p+C4teC4ouC4mQor4LiB4LiH4LmC4LiB4LmJCivguIHguIfguITguYnguLLguIcKK+C4geC5ieC4h+C5guC4hOC5ieC4hwor4LiB4LmJ4LiH4LiHCivguIHguIfguIjguLHguIHguKMKK+C4geC4h+C4ieC4suC4gQor4LiB4LiH4LmE4LiJ4LmICivguIHguIfguYDguJXguYrguIEKK+C4geC4h+C4nuC4seC4lAor4LiB4LiH4Lin4Liy4LiZCivguIHguIfguKrguLUKK+C4geC4h+C4quC4uOC4pQor4LiB4LiKCivguIHguIotCivguIHguIrguIHguKMKK+C4geC4jgor4LiB4LiO4LiB4Lij4Liw4LiX4Lij4Lin4LiHCivguIHguI7guYDguIHguJPguJHguYwKK+C4geC4juC4guC5ieC4reC4muC4seC4h+C4hOC4seC4mgor4LiB4LiO4LiX4Lia4Lin4LiHCivguIHguI7guJjguKPguKPguKHguIrguLLguJXguLQKK+C4geC4juC4mOC4o+C4o+C4oeC4lOC4sgor4LiB4LiO4Lia4Lix4LiV4LijCivguIHguI7guJrguLHguJXguKPguIHguI7guKvguKHguLLguKIKK+C4geC4juC4muC4seC4leC4o+C4quC4q+C4m+C4o+C4sOC4iuC4suC4iuC4suC4leC4tAor4LiB4LiO4Lih4LiZ4LmA4LiX4Li14Lii4Lij4Lia4Liy4LilCivguIHguI7guKLguLjguJfguJjguKfguLTguJnguLHguKIKK+C4geC4juC4qOC4teC4peC4mOC4o+C4o+C4oQor4LiB4LiO4LmA4Liq4LiZ4Liy4Lia4LiU4Li1CivguIHguI7guKvguKHguLLguKIKK+C4geC4juC4q+C4oeC4suC4ouC4meC4suC4meC4suC4m+C4o+C4sOC5gOC4l+C4qAor4LiB4LiO4Lir4Lih4Liy4Lii4Lib4Li04LiU4Lib4Liy4LiBCivguIHguI7guKvguKHguLLguKLguJ7guLLguJPguLTguIrguKLguYwKK+C4geC4juC4q+C4oeC4suC4ouC5geC4nuC5iOC4hwor4LiB4LiO4Lir4Lih4Liy4Lii4Lij4Liw4Lir4Lin4LmI4Liy4LiH4Lib4Lij4Liw4LmA4LiX4LioCivguIHguI7guKvguKHguLLguKLguYDguKvguJXguLgKK+C4geC4juC4q+C4oeC4suC4ouC4reC4suC4jeC4sgor4LiB4LiO4Lir4Lih4Li54LmICivguIHguI7guYHguKvguYjguIfguIHguKPguKPguKEKK+C4geC4juC4reC4seC4ouC4geC4suC4o+C4qOC4tuC4gQor4LiB4LiP4Li0CivguIHguI/guLjguIEKK+C4geC4j+C4uOC4gS0KK+C4geC4j+C4uOC4geC4nOC4pQor4LiB4LiQ4Li04LiZCivguIHguJDguLTguJktCivguIHguJDguLTguJnguJfguLLguJkKK+C4geC4kOC4tOC4meC4seC4leC4luC4suC4o+C4geC4o+C4o+C4oQor4LiB4LiT4Li04LiB4LiZ4Lix4LiZ4LiV4LmMCivguIHguJPguLTguIHguLLguKPguYwKK+C4geC4lAor4LiB4LiU4LiC4Li14LmICivguIHguJTguITguK0KK+C4geC4lOC4iuC4sgor4LiB4LiU4LiU4Lix4LiZCivguIHguJTguJnguYnguLMKK+C4geC4lOC4o+C4suC4hOC4sgor4LiB4LiU4Lir4Lix4LinCivguIHguJTguYDguKvguKXguLfguK3guIcKK+C4geC5h+C4lOC4tQor4LiB4LmH4LmE4LiU4LmJCivguIHguJXguYDguKfguJfguLTguJXguLIKK+C4geC4leC5gOC4p+C4l+C4tQor4LiB4LiV4Lix4LiN4LiK4Lil4Li1CivguIHguJXguLHguI3guI3guLjguJXguLIKK+C4geC4leC4seC4jeC4jeC4uQor4LiB4LiV4Liy4LiY4Li04LiB4Liy4LijCivguIHguJXguLLguKDguLTguJnguLTguKvguLLguKMKK+C4geC5h+C4leC4suC4oQor4LiB4LiV4Li04LiB4LiyCivguIHguJXguLTguIHguLLguKrguLHguI3guI3guLIKK+C4geC4luC4sgor4LiB4LiW4Liy4Lih4Lij4Lij4LiECivguIHguJbguLLguKHguKPguKPguITguYDguJfguKjguJnguLIKK+C4geC4luC4suC4oeC4uOC4ggor4LiB4LiW4Li04LiB4Liy4LiI4Liy4Lij4Lii4LmMCivguIHguJfguKPguKPguJsKK+C4geC4l+C4peC4tQor4LiB4LiZCivguIHguYjguJkKK+C4geC5ieC4mQor4LiB4LiZ4LiBCivguIHguYnguJnguIHguJoKK+C4geC5ieC4meC4geC4o+C4sOC4lOC4gQor4LiB4LmJ4LiZ4LiB4Li44LiP4Li0CivguIHguYnguJnguILguJoKK+C4geC5ieC4meC4hOC4o+C4seC4pwor4LiB4LmI4LiZ4LmC4LiE4LiV4LijCivguIHguYnguJnguJXguLDguIHguKPguJkKK+C4geC5iOC4meC5geC4leC5iAor4LiB4LiZ4LiZCivguIHguJnguJnguYDguIrguK0KK+C4geC5iOC4meC4meC5guC4luC4hwor4LiB4LiZ4LiZ4LmA4Lir4Li04LihCivguIHguYnguJnguJrguLbguYnguIcKK+C4geC5ieC4meC4m+C4peC5iOC4reC4hwor4LiB4LmJ4LiZ4Lib4Lit4LiUCivguIHguYnguJnguJvguLTguJQKK+C4geC5ieC4meC4m+C4ueC4lAor4LiB4LmJ4LiZ4LmB4Lih4Lil4LiH4Liq4Liy4LiaCivguIHguYnguJnguKLguYnguK3guKIKK+C4geC5iOC4meC4quC4o+C5ieC4suC4hwor4LiB4LmJ4LiZ4Lir4LiZ4Lix4LiBCivguIHguYnguJnguKvguKLguYjguK3guJkKK+C4geC5ieC4meC4q+C4reC4ogor4LiB4LmJ4LiZ4Lit4LmJ4Lit4LiiCivguIHguJnguLTguKnguJAtCivguIHguJnguLTguKnguJDguYwKK+C4geC4meC4tOC4qeC4kOC4oOC4hOC4tOC4meC4tQor4LiB4LiZ4Li04Lip4LiQ4Lig4Liy4LiU4LiyCivguIHguJnguLTguKnguJDguLIKK+C4geC4mgor4LiB4Lia4LiPCivguIHguJrguJTguLLguJkKK+C4geC4muC5gOC4leC5ieC4mQor4LiB4Lia4LiX4Li5CivguIHguJrguJfguLnguJQKK+C4geC4muC4muC4seC4pwor4LiB4Lia4LmA4Lil4Li34Lit4LiB4LiZ4Liy4LiiCivguIHguJrguLLguKUKK+C4geC4muC4tOC4meC4l+C4o+C5jAor4LiB4Lia4Li04LilCivguIHguJrguLXguYgKK+C4geC4muC4teC5iOC4mOC4uOC4igor4LiB4Lia4Li54LijCivguIHguYDguJrguJnguJfguKPguYwKK+C4geC5guC4muC4owor4LiB4LmC4Lia4LilCivguIHguJvguJMKK+C4geC4m+C4k+C4gQor4LiB4Lib4LiT4LiyCivguIHguJvguLQKK+C4geC4m+C4tOC4leC4seC4mQor4LiB4LihCivguIHguYnguKEKK+C4geC4oeC4k+C4keC4peC4suC4oOC4tOC5gOC4qeC4gQor4LiB4Lih4LiT4LiR4LmC4Lil4LiX4LiBCivguIHguKHguKUKK+C4geC4oeC4peC4sgor4LiB4Lih4Lil4Liy4LioCivguIHguKHguKXguLLguKrguJnguYwKK+C4geC4oeC5gOC4peC4qAor4LiB4LmJ4Lih4Lir4LiZ4LmJ4LiyCivguIHguYnguKHguKvguJnguYnguLLguIHguYnguKHguJXguLIKK+C4geC5ieC4oeC4q+C4peC4seC4hwor4LiB4LmJ4Lih4Lir4Lix4LinCivguIHguKHguLHguJPguJHguKXguLgKK+C4geC4oeC4uOC4lwor4LiB4LijCivguIHguKPguIEKK+C4geC4o+C4geC4igor4LiB4Lij4LiB4LiOCivguIHguKPguIHguI7guLLguITguKEKK+C4geC4o+C4geC4jwor4LiB4Lij4LiHCivguIHguKPguIfguJfguK3guIcKK+C4geC4o+C4h+C5gOC4peC5h+C4mgor4LiB4Lij4LiK4LiB4Liy4LiiCivguIHguKPguJPguJHguYwKK+C4geC4o+C4k+C4tOC4geC4suC4o+C5jAor4LiB4Lij4LiT4Li1CivguIHguKPguJPguLXguKItCivguIHguKPguJPguLXguKLguYwKK+C4geC4o+C4k+C4teC4ouC4sAor4LiB4Lij4LiUCivguIHguKPguJkKK+C4geC4o+C4meC4l+C4sgor4LiB4Lij4LiZ4LiZ4LmA4LiK4LmJ4LiyCivguIHguKPguJoKK+C4geC4o+C4muC4ueC4owor4LiB4Lij4Lie4Li04LiZ4LiY4Li44LmMCivguIHguKPguKDguLjguKEKK+C4geC4o+C4oQor4LiB4Lij4Lih4LiB4Lij4Lit4LihCivguIHguKPguKHguIHguLLguKMKK+C4geC4o+C4oeC4geC4suC4o+C4nuC4tOC5gOC4qOC4qQor4LiB4Lij4Lih4LmA4LiB4Lij4Li14Lii4LihCivguIHguKPguKHguJfguYjguLIKK+C4geC4o+C4oeC4l+C5iOC4suC4guC4p+C4sgor4LiB4Lij4Lih4LiX4LmI4Liy4LiL4LmJ4Liy4LiiCivguIHguKPguKHguJjguKPguKPguKHguYwKK+C4geC4o+C4oeC4mOC4o+C4o+C4oeC5jOC4m+C4o+C4sOC4geC4seC4meC4oOC4seC4ogor4LiB4Lij4Lih4LiZ4LiyCivguIHguKPguKHguKfguLHguIcKK+C4geC4o+C4oeC4qOC4seC4geC4lOC4tOC5jAor4LiB4Lij4LijCivguIHguKPguKPguIHguIcKK+C4geC4o+C4o+C4geC4jgor4LiB4Lij4Lij4LiB4LioCivguIHguKPguKPguYDguIHguJQKK+C4geC4o+C4o+C5hOC4geC4owor4LiB4Lij4Lij4LmA4LiI4Li14Lii4LiBCivguIHguKPguKPguIrguLTguIcKK+C4geC4o+C4o+C4iuC4tOC4lAor4LiB4Lij4Lij4LmA4LiK4LitCivguIHguKPguKPguYDguIrguYnguLIKK+C4geC4o+C4o+C5gOC4iuC4teC4ouC4hwor4LiB4Lij4Lij4LmC4LiK4LiBCivguIHguKPguKPguIvguYnguJnguJkKK+C4geC4o+C4o+C5geC4i+C4hwor4LiB4Lij4Lij4LiQ4LmMCivguIHguKPguKPguJDguLIKK+C4geC4o+C4o+C4kwor4LiB4Lij4Lij4LiT4Lii4Li44LiE4LilCivguIHguKPguKPguJPguLIKK+C4geC4o+C4o+C4k+C4tOC4geC4sgor4LiB4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMCivguIHguKPguKPguJTguLQKK+C4geC4o+C4o+C4lOC4tOC4gQor4LiB4Lij4Lij4LiU4Li24LiBCivguIHguKPguKPguJXguLgKK+C4geC4o+C4o+C4leC4uC0KK+C4geC4o+C4o+C4leC4uOC4geC4suC4o+C4gQor4LiB4Lij4Lij4LiV4Li44Lin4Liy4LiI4LiBCivguIHguKPguKPguJXguLjguKrguLHguI3guI3guLIKK+C4geC4o+C4o+C5hOC4leC4owor4LiB4Lij4Lij4LiX4LiaCivguIHguKPguKPguYHguJfguIEKK+C4geC4o+C4o+C5geC4l+C4o+C4gQor4LiB4Lij4Lij4Lia4Liy4Liq4Li04LiBCivguIHguKPguKPguJrguLLguKrguLTguIHguJ7guLHguKrguJXguKPguYwKK+C4geC4o+C4o+C4muC4tOC4lAor4LiB4Lij4Lij4Lia4Li54LijCivguIHguKPguKPguJvguLLguKrguLTguIEKK+C4geC4o+C4o+C4m+C4uOC4owor4LiB4Lij4Lij4Lie4Li44LihCivguIHguKPguKPguJ7guLjguYjguKEKK+C4geC4o+C4o+C4oOC4tOC4o+C4oeC4ouC5jAor4LiB4Lij4Lij4LihCivguIHguKPguKPguKEtCivguIHguKPguKPguKHguYwKK+C4geC4o+C4o+C4oeC4geC4owor4LiB4Lij4Lij4Lih4LiB4Lij4LiT4LmMCivguIHguKPguKPguKHguIHguLLguKMKK+C4geC4o+C4o+C4oeC4geC4suC4o+C4gQor4LiB4Lij4Lij4Lih4LiB4Liy4Lij4Li04LiT4Li1CivguIHguKPguKPguKHguILguLHguKIKK+C4geC4o+C4o+C4oeC4hOC4leC4tAor4LiB4Lij4Lij4Lih4LiK4Lij4Li54LibCivguIHguKPguKPguKHguIrguKfguLLguJUKK+C4geC4o+C4o+C4oeC4kOC4suC4mQor4LiB4Lij4Lij4Lih4Lia4LiWCivguIHguKPguKPguKHguJ7guLHguJnguJjguLjguYwKK+C4geC4o+C4o+C4oeC5jOC4oOC4tOC4o+C4oeC4ouC5jAor4LiB4Lij4Lij4Lih4Lin4Liy4LiI4LiBCivguIHguKPguKPguKHguKfguLLguIjguLIKK+C4geC4o+C4o+C4oeC4p+C4suC4iOC4suC4iOC4suC4o+C4ouC5jAor4LiB4Lij4Lij4Lih4Lin4Li04LiY4Li1CivguIHguKPguKPguKHguKfguLTguJrguLLguIEKK+C4geC4o+C4o+C4oeC5gOC4p+C4owor4LiB4Lij4Lij4Lih4Lio4Liy4Lil4LiyCivguIHguKPguKPguKHguKrguLHguKHguJvguLLguJfguLTguIEKK+C4geC4o+C4o+C4oeC4quC4tOC4l+C4mOC4tOC5jAor4LiB4Lij4Lij4Lih4Liq4Li04LiX4LiY4Li04LmM4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lir4Lih4Liy4Lii4LmB4Lil4Liw4Lii4Li14LmI4Lir4LmJ4Lit4LiB4Liy4Lij4LiE4LmJ4Liy4LiC4Liy4LiiCivguIHguKPguKPguKHguKrguLTguJfguJjguLTguYzguJzguLnguYnguYHguJXguYjguIfguKvguJnguLHguIfguKrguLfguK0KK+C4geC4o+C4o+C4oeC4quC4tOC4l+C4mOC4tOC5jOC4o+C4p+C4oQor4LiB4Lij4Lij4Lih4Lix4LiK4Lin4Liy4LiVCivguIHguKPguKPguKHguLLguIrguLXguJ4KK+C4geC4o+C4o+C4oeC4suC4mOC4tOC4geC4suC4owor4LiB4Lij4Lij4Lih4Liy4LijCivguIHguKPguKPguKXguLUKK+C4geC4o+C4o+C4peC4tuC4hwor4LiB4Lij4Lij4Lip4LiBCivguIHguKPguKPguKrguLAKK+C4geC4o+C4o+C5geC4quC4hwor4LiB4Lij4Lij4Lir4Liy4LiiCivguIHguKPguKPguYDguKvguLTguKEKK+C4geC4o+C4o+C5guC4q+C4ogor4LiB4Lij4Lij4LmA4Lit4LiyCivguIHguKPguKPguLjguJPguLIKK+C4geC4o+C4p+C4lAor4LiB4Lij4Lin4LiU4LiZ4LmJ4LizCivguIHguKPguKfguJkKK+C4geC4o+C4p+C4mgor4LiB4Lij4Lin4LihCivguIHguKPguYnguKfguKEKK+C4geC4o+C4p+C4ogor4LiB4Lij4Lin4Lii4LmA4LiK4Li04LiHCivguIHguKPguKfguKLguJrguYnguLLguJkKK+C4geC4o+C4p+C4ouC4m+C5iOC4sgor4LiB4Lij4Lin4Li04LiBCivguIHguKPguKrguLLguJvguJnguYwKK+C4geC4o+C4quC4uOC4l+C4mOC4tOC5jAor4LiB4Lij4LitCivguIHguKPguYnguK0KK+C4geC4o+C4reC4gQor4LiB4Lij4LmH4Lit4LiB4LiB4Lij4LmL4Lit4LiiCivguIHguKPguK3guIHguYHguIHguKPguIEKK+C4geC4o+C4reC4geC4o+C4uOC4ogor4LiB4Lij4Lit4LiHCivguIHguKPguK3guIfguIHguKPguK3guKIKK+C4geC4o+C4reC4h+C4l+C4reC4hwor4LiB4Lij4Lit4LiUCivguIHguKPguYjguK3guJkKK+C4geC4o+C4reC4mgor4LiB4Lij4Lit4Lia4LmA4LiB4Lij4Li14Lii4LiaCivguIHguKPguK3guJrguYHguIHguKPguJoKK+C4geC4o+C4reC4muC5gOC4iuC5h+C4lOC4q+C4meC5ieC4sgor4LiB4Lij4Lit4Lia4Lir4LiZ4LmJ4LiyCivguIHguKPguK3guKEKK+C4geC4o+C5iOC4reC4oQor4LiB4Lij4LmI4Lit4Lih4LmGCivguIHguKPguYjguK3guKIKK+C4geC4o+C4sAor4LiB4Lij4Liw4LiB4LijCivguIHguKPguLDguIHguKPguLHguJrguIHguKPguLDguYDguIHguKPguLXguKLguJoKK+C4geC4o+C4sOC4geC4o+C4teC5iuC4lAor4LiB4Lij4Liw4LiB4Lij4Li44LmI4LiZCivguIHguKPguLDguIHguKXguLHguJrguIHguKXguK3guIEKK+C4geC4o+C4sOC4geC4p+C4lAor4LiB4Lij4Liw4LiB4Lit4LiHCivguIHguKPguLDguIHguLHguJQKK+C4geC4o+C4sOC4geC4teC5iQor4LiB4Lij4Liw4LiB4Li54LilCivguIHguKPguLDguYDguIHguKPguK3guIEKK+C4geC4o+C4sOC5gOC4geC4o+C4tOC4gQor4LiB4Lij4Liw4LmA4LiB4Lij4Li04LmI4LiZCist4LiB4Lij4Liw4LmA4LiB4Lij4Li14Lii4LiaCivguIHguKPguLDguYDguIHguKPguLXguKLguKEKK+C4geC4o+C4sOC5gOC4geC4o+C4teC4ouC4pwor4LiB4Lij4Liw4LmA4LiB4Lij4Li14LmJ4Lii4LinCivguIHguKPguLDguYDguIHguKXguLfguK3guIEKK+C4geC4o+C4sOC4hOC4mQor4LiB4Lij4Liw4LiE4Liy4LiiCivguIHguKPguLDguITguLjguIEKK+C4geC4o+C4sOC4h+C4geC4geC4o+C4sOC4h+C4seC4mQor4LiB4Lij4Liw4LiH4LiB4LiB4Lij4Liw4LmA4LiH4Li04LmI4LiZCivguIHguKPguLDguIfguYjguK3guIfguIHguKPguLDguYHguIfguYjguIcKKy3guIHguKPguLDguIfguK3guJQKK+C4geC4o+C4sOC4h+C5iOC4reC4meC4geC4o+C4sOC5geC4h+C5iOC4mQor4LiB4Lij4Liw4LmA4LiH4LmJ4Liy4LiB4Lij4Liw4LiH4Lit4LiUCivguIHguKPguLDguYLguIfguIEKK+C4geC4o+C4sOC4iOC4gQor4LiB4Lij4Liw4LiI4LiB4LmA4LiH4LiyCivguIHguKPguLDguIjguIHguJXguLIKK+C4geC4o+C4sOC4iOC4geC4meC4ueC4mQor4LiB4Lij4Liw4LiI4LiB4Lid4LmJ4LiyCivguIHguKPguLDguIjguIHguYDguKfguYnguLIKK+C4geC4o+C4sOC4iOC4geC4q+C4uOC4hwor4LiB4Lij4Liw4LiI4LiHCivguIHguKPguLDguIjguKMKK+C4geC4o+C4sOC4iOC4reC4gQor4LiB4Lij4Liw4LiI4Lit4LiB4LiH4Lit4LiB4LiH4LmI4Lit4LiiCivguIHguKPguLDguIjguK3guIHguIrguKfguLIKK+C4geC4o+C4sOC4iOC4reC4geC5gOC4l+C4qAor4LiB4Lij4Liw4LiI4Lit4LiH4Lir4LiH4LmI4Lit4LiHCivguIHguKPguLDguIjguYvguK3guIfguKvguIfguYjguK3guIcKK+C4geC4o+C4sOC4iOC4reC4h+C4reC5geC4hwor4LiB4Lij4Liw4LiI4LmJ4Lit4LiZCivguIHguKPguLDguIjguK3guJnguKvguLkKK+C4geC4o+C4sOC4iOC5ieC4reC4ogor4LiB4Lij4Liw4LiI4LmJ4Lit4Lii4Lij4LmI4Lit4LiiCivguIHguKPguLDguIjguYvguK3guKvguKfguK0KK+C4geC4o+C4sOC4iOC4sAor4LiB4Lij4Liw4LiI4Lix4LiBCivguIHguKPguLDguIjguLHguIcKK+C4geC4o+C4sOC4iOC4seC4h+C4q+C4peC4seC4h+C5gOC4muC4teC5ieC4ogor4LiB4Lij4Liw4LiI4Lix4LiUCivguIHguKPguLDguIjguLHguJTguIHguKPguLDguIjguLLguKIKK+C4geC4o+C4sOC4iOC4seC4lOC4nuC4peC4seC4lOC4nuC4o+C4suC4ogor4LiB4Lij4Liw4LiI4Lix4LiaCivguIHguKPguLDguIjguLHguJrguJrguIEKK+C4geC4o+C4sOC4iOC4seC4muC4m+C4tOC5ieC4hwor4LiB4Lij4Liw4LiI4Lix4Lia4Lib4Li14LmICivguIHguKPguLDguIjguYjguLIKK+C4geC4o+C4sOC4iOC5iOC4suC4hwor4LiB4Lij4Liw4LiI4Liy4LiUCivguIHguKPguLDguIjguLLguJkKK+C4geC4o+C4sOC4iOC4suC4mgorLeC4geC4o+C4sOC4iOC4suC4oQor4LiB4Lij4Liw4LiI4Liy4LiiCivguIHguKPguLDguIjguLLguKLguJnguLDguKHguJPguJHguKUKK+C4geC4o+C4sOC4iOC4suC4ouC5gOC4quC4teC4ouC4hwor4LiB4Lij4Liw4LiI4Liy4Lii4Lir4Liy4LiH4LiU4Lit4LiBCivguIHguKPguLDguIjguLLguKcKKy3guIHguKPguLDguIjguLTguIEKKy3guIHguKPguLDguIjguLTguYvguIcKK+C4geC4o+C4sOC4iOC4tOC4lAor4LiB4Lij4Liw4LiI4Li04LiaCist4LiB4Lij4Liw4LiI4Li04LiaCist4LiB4Lij4Liw4LiI4Li04LmL4LihCivguIHguKPguLDguIjguLTguKPguLTguJQKK+C4geC4o+C4sOC4iOC4tOC5i+C4pwor4LiB4Lij4Liw4LiI4Li04LmL4Lin4Lir4Lil4Li04LinCivguIHguKPguLDguIjguLXguYkKKy3guIHguKPguLDguIjguLXguYsKK+C4geC4o+C4sOC4iOC4uOC4gQor4LiB4Lij4Liw4LiI4Li44LiB4LiB4Lij4Liw4LiI4Li04LiBCivguIHguKPguLDguIjguLjguIHguIHguKPguLDguIjguLjguKIKK+C4geC4o+C4sOC4iOC4uOC5i+C4h+C4geC4o+C4sOC4iOC4tOC5i+C4hwor4LiB4Lij4Liw4LiI4Li44LiaCivguIHguKPguLDguIjguLjguYrguJoKK+C4geC4o+C4sOC4iOC4uOC4muC4geC4o+C4sOC4iOC4tOC4mgor4LiB4Lij4Liw4LiI4Li44LmL4Lih4LiB4Lij4Liw4LiI4Li04LmL4LihCivguIHguKPguLDguIjguLjguKIKK+C4geC4o+C4sOC4iOC4uOC4ouC4geC4o+C4sOC4iOC4suC4ogor4LiB4Lij4Liw4LiI4Li54LmJCivguIHguKPguLDguIjguLnguYvguIHguKPguLDguIjguLXguYsKK+C4geC4o+C4sOC4iOC4ueC4lAor4LiB4Lij4Liw4LmA4LiI4Lit4Liw4LiB4Lij4Liw4LmA4LiI4Li04LiHCivguIHguKPguLDguYDguIjguLIKK+C4geC4o+C4sOC5gOC4iOC5iOC4sgor4LiB4Lij4Liw4LmA4LiI4LmJ4LiyCivguIHguKPguLDguYDguIjguLLguLAKK+C4geC4o+C4sOC5gOC4iOC4tOC4hwor4LiB4Lij4Liw4LmA4LiI4Li04LiU4LiB4Lij4Liw4LmA4LiI4Li04LiHCivguIHguKPguLDguYDguIjguLXguYnguKLguIcKK+C4geC4o+C4sOC5gOC4iOC4teC5iuC4ouC4mgor4LiB4Lij4Liw4LmA4LiI4Li14LmK4Lii4Lia4LmA4Lib4Lij4Li14LmJ4Lii4LinCivguIHguKPguLDguYDguIjguLXguKLguKcKK+C4geC4o+C4sOC5gOC4iOC4teC5iuC4ouC4pwor4LiB4Lij4Liw4LmB4LiI4LiwCivguIHguKPguLDguYLguIjguJkKK+C4geC4o+C4sOC5guC4iOC4oQor4LiB4Lij4Liw4LmC4LiI4Lih4LiB4Lij4Liw4LiI4Liy4LihCivguIHguKPguLDguYLguIjguKHguJfguK3guIcKK+C4geC4o+C4sOC5guC4iOC4oeC5hOC4nwor4LiB4Lij4Liw4LmC4LiI4Lih4Lit4LiBCivguIHguKPguLDguInguIcKK+C4geC4o+C4sOC4ieC4reC4gQor4LiB4Lij4Liw4LiJ4Lit4LiB4LiB4Lij4Liw4LmB4LiJ4LiBCivguIHguKPguLDguInguYjguK3guJkKK+C4geC4o+C4sOC4ieC4seC4muC4geC4o+C4sOC5gOC4ieC4hwor4LiB4Lij4Liw4LiJ4Li04LmI4LiHCivguIHguKPguLDguInguLXguIEKK+C4geC4o+C4sOC4ieC4ueC4lAor4LiB4Lij4Liw4LmA4LiJ4LiBCist4LiB4Lij4Liw4LmA4LiJ4LiHCivguIHguKPguLDguYDguInguJQKKy3guIHguKPguLDguYHguInguIEKK+C4geC4o+C4sOC5geC4ieC5iOC4mQor4LiB4Lij4Liw4LmC4LiJ4LiB4LiB4Lij4Liw4LmA4LiJ4LiBCivguIHguKPguLDguYLguInguKEKK+C4geC4o+C4sOC4iuC4hwor4LiB4Lij4Liw4LiK4LiU4LiB4Lij4Liw4LiK4LmJ4Lit4LiiCist4LiB4Lij4Liw4LiK4Lin4LiiCivguIHguKPguLDguIrguK3guIEKK+C4geC4o+C4sOC4iuC4reC4mQor4LiB4Lij4Liw4LiK4Lit4LihCivguIHguKPguLDguIrguK3guKHguJTguK3guIEKK+C4geC4o+C4sOC4iuC5ieC4reC4ogor4LiB4Lij4Liw4LiK4LmJ4Lit4Lii4LiZ4Liy4LiH4Lij4LizCivguIHguKPguLDguIrguLHguIcKK+C4geC4o+C4sOC4iuC4seC4h+C4q+C4meC5ieC4suC5g+C4q+C4jeC5iAor4LiB4Lij4Liw4LiK4Lix4LmJ4LiZCivguIHguKPguLDguIrguLHguJoKK+C4geC4o+C4sOC4iuC4suC4gQor4LiB4Lij4Liw4LiK4LmI4Liy4LiHCivguIHguKPguLDguIrguLLguYDguJTguLTguKEKK+C4geC4o+C4sOC4iuC4suC4ogor4LiB4Lij4Liw4LiK4Li04LiHCivguIHguKPguLDguIrguLTguJQKK+C4geC4o+C4sOC4iuC4uAor4LiB4Lij4Liw4LiK4Li44LiBCivguIHguKPguLDguIrguLjguYjguKHguIHguKPguLDguIrguKfguKIKK+C4geC4o+C4sOC5gOC4iuC4rQor4LiB4Lij4Liw4LmA4LiK4Lit4LiB4LmJ4LiZ4Lij4Lix4LmI4LinCivguIHguKPguLDguYDguIrguLIKK+C4geC4o+C4sOC5gOC4iuC5ieC4sgor4LiB4Lij4Liw4LmA4LiK4LmJ4Liy4Lic4Li14Lih4LiUCivguIHguKPguLDguYDguIrguYnguLLguKrguKfguKPguKPguITguYwKK+C4geC4o+C4sOC5gOC4iuC5ieC4suC4quC4teC4lOC4sgor4LiB4Lij4Liw4LmA4LiK4Li14Lii4LiHCivguIHguKPguLDguYHguIrguIcKK+C4geC4o+C4sOC5geC4iuC4sAor4LiB4Lij4Liw4LmC4LiK4LiBCivguIHguKPguLDguYLguIrguIHguIHguKPguLDguIrguLHguYnguJkKK+C4geC4o+C4sOC5guC4iuC4geC4geC4o+C4sOC4iuC4suC4gQor4LiB4Lij4Liw4LmC4LiK4LiB4LmC4Liu4LiB4Liu4Liy4LiBCivguIHguKPguLDguIvguKfguKIKKy3guIHguKPguLDguIvguKfguKIKKy3guIHguKPguLDguIvguYnguK0KK+C4geC4o+C4sOC4i+C5iOC4reC4h+C4geC4o+C4sOC5geC4i+C5iOC4hwor4LiB4Lij4Liw4LiL4Lix4LiaCivguIHguKPguLDguIvguYjguLLguIcKK+C4geC4o+C4sOC4i+C4suC4mgor4LiB4Lij4Liw4LiL4Li04LiBCivguIHguKPguLDguIvguLTguIHguYYKK+C4geC4o+C4sOC4i+C4tOC4geC4geC4o+C4sOC4i+C4p+C4ogor4LiB4Lij4Liw4LiL4Li04LiB4LiB4Lij4Liw4LiL4Li14LmJCivguIHguKPguLDguIvguLTguJoKK+C4geC4o+C4sOC4i+C4tOC4muC4geC4o+C4sOC4i+C4suC4mgorLeC4geC4o+C4sOC4i+C4teC5iQor4LiB4Lij4Liw4LiL4Li14LmJ4LiB4Lij4Liw4LiL4LmJ4LitCivguIHguKPguLDguIvguLjguIcKK+C4geC4o+C4sOC4i+C4uOC4muC4geC4o+C4sOC4i+C4tOC4mgor4LiB4Lij4Liw4LiL4Li44LmJ4LihCivguIHguKPguLDguIvguLnguYgKKy3guIHguKPguLDguYDguIsKK+C4geC4o+C4sOC5gOC4i+C5h+C4mQor4LiB4Lij4Liw4LmA4LiL4LitCivguIHguKPguLDguYDguIvguK3guLDguIHguKPguLDguYDguIvguK0KK+C4geC4o+C4sOC5gOC4i+C4reC4sOC4geC4o+C4sOC5gOC4i+C4tOC4hwor4LiB4Lij4Liw4LmA4LiL4LmJ4LiyCivguIHguKPguLDguYDguIvguYnguLLguIHguKPguLDguIvguLXguYkKK+C4geC4o+C4sOC5gOC4i+C4tOC4hworLeC4geC4o+C4sOC5gOC4i+C4tOC4hwor4LiB4Lij4Liw4LmB4LiLCivguIHguKPguLDguYHguIvguLAKK+C4geC4o+C4sOC5guC4i+C4geC4o+C4sOC5gOC4iwor4LiB4Lij4Liw4LiO4Li1CivguIHguKPguLDguI7guLjguKHguJ7guLUKK+C4geC4o+C4sOC4lOC4gQor4LiB4Lij4Liw4LiU4LiB4LiB4Lij4Liw4LiU4LiZ4LmC4LiU4LmICivguIHguKPguLDguJTguYnguIcKKy3guIHguKPguLDguJTguJnguYLguJTguYgKK+C4geC4o+C4sOC4lOC4p+C4hwor4LiB4Lij4Liw4LiU4Lin4LiZCivguIHguKPguLDguJTguYnguKfguKHguIHguKPguLDguYDguJTguLXguYnguKLguKEKK+C4geC4o+C4sOC4lOC4rQor4LiB4Lij4Liw4LiU4Lit4LiHCivguIHguKPguLDguJTguK3guIfguKvguLLguKIKK+C4geC4o+C4sOC4lOC4reC4mQor4LiB4Lij4Liw4LiU4Lit4LihCivguIHguKPguLDguJTguLHguIHguIHguKPguLDguYDguJTguLXguYnguKIKK+C4geC4o+C4sOC4lOC4seC4h+C4h+C4seC4pwor4LiB4Lij4Liw4LiU4Lix4LiH4LiH4LiyCivguIHguKPguLDguJTguLHguIfguIfguLLguIjguLXguJkKK+C4geC4o+C4sOC4lOC4seC4h+C4h+C4suC5gOC4luC4sgor4LiB4Lij4Liw4LiU4Lix4LiH4LiH4Liy4Lil4LiZ4LmE4LifCivguIHguKPguLDguJTguLLguIEKK+C4geC4o+C4sOC4lOC4suC4geC4geC4o+C4sOC5gOC4lOC4t+C5iOC4reC4hwor4LiB4Lij4Liw4LiU4LmJ4Liy4LiHCivguIHguKPguLDguJTguYnguLLguIfguIHguKPguLDguYDguJTguLfguYjguK3guIcKK+C4geC4o+C4sOC4lOC4suC4h+C4peC4suC4hwor4LiB4Lij4Liw4LiU4Liy4LiUCivguIHguKPguLDguJTguLLguJTguILguLLguKcKK+C4geC4o+C4sOC4lOC4suC4lOC4lOC4swor4LiB4Lij4Liw4LiU4Liy4LiU4LmB4LiU4LiHCivguIHguKPguLDguJTguLLguJkKK+C4geC4o+C4sOC4lOC4suC4meC4iuC4meC4p+C4mQor4LiB4Lij4Liw4LiU4Liy4LiZ4LiK4Lix4LiiCivguIHguKPguLDguJTguLLguJnguJTguLMKK+C4geC4o+C4sOC4lOC4suC4meC5guC4leC5ieC4hOC4peC4t+C5iOC4mQor4LiB4Lij4Liw4LiU4Liy4LiZ4LiW4Li14LiaCivguIHguKPguLDguJTguLLguJnguJ7guJkKK+C4geC4o+C4sOC4lOC4suC4meC4nuC4tOC4hwor4LiB4Lij4Liw4LiU4Liy4LiZ4LmE4LifCivguIHguKPguLDguJTguLLguJnguKXguLfguYjguJkKK+C4geC4o+C4sOC4lOC4suC4meC5gOC4peC4teC4ouC4mgor4LiB4Lij4Liw4LiU4Liy4LiZ4Lir4LiBCivguIHguKPguLDguJTguLLguKkKK+C4geC4o+C4sOC4lOC4suC4qeC5geC4geC5ieC4pwor4LiB4Lij4Liw4LiU4Liy4Lip4LiC4LmI4Lit4LiiCivguIHguKPguLDguJTguLLguKnguYTguIIKK+C4geC4o+C4sOC4lOC4suC4qeC5gOC4h+C4tOC4meC4geC4o+C4sOC4lOC4suC4qeC4l+C4reC4hwor4LiB4Lij4Liw4LiU4Liy4Lip4LiL4Lix4LiaCivguIHguKPguLDguJTguLLguKnguJfguKPguLLguKIKK+C4geC4o+C4sOC4lOC4suC4qeC5gOC4l+C4qAor4LiB4Lij4Liw4LiU4Liy4Lip4Lif4Liy4LiHCivguIHguKPguLDguJTguLLguKnguKfguYjguLLguKcKK+C4geC4o+C4sOC4lOC4suC4qeC4quC4sgor4LiB4Lij4Liw4LiU4Liz4LiB4Lij4Liw4LiU4LmI4Liy4LiHCivguIHguKPguLDguJTguLTguIEKK+C4geC4o+C4sOC4lOC4tOC4geC4geC4o+C4sOC5gOC4lOC4teC5ieC4ogor4LiB4Lij4Liw4LiU4Li04LmI4LiHCist4LiB4Lij4Liw4LiU4Li04LmJ4LiHCivguIHguKPguLDguJTguLTguYjguIfguJfguK3guIcKK+C4geC4o+C4sOC4lOC4tOC4mgor4LiB4Lij4Liw4LiU4Li04Lia4LmGCivguIHguKPguLDguJTguLXguYgKK+C4geC4o+C4sOC4lOC4teC5ieC4geC4o+C4sOC5gOC4lOC4teC4ouC4oQor4LiB4Lij4Liw4LiU4Li14LmI4LmE4LiU4LmJ4LiZ4LmJ4LizCivguIHguKPguLDguJTguLbguIcKK+C4geC4o+C4sOC4lOC4tuC4h+C4iuC5ieC4suC4h+C5gOC4nOC4t+C4reC4gQor4LiB4Lij4Liw4LiU4Li24LiH4Lie4Lij4Liw4Lij4Liy4LihCivguIHguKPguLDguJTguLfguJoKK+C4geC4o+C4sOC4lOC4uAor4LiB4Lij4Liw4LiU4Li44LiB4LiB4Lij4Liw4LiU4Li04LiBCivguIHguKPguLDguJTguLjguYnguIfguIHguKPguLDguJTguLTguYnguIcKK+C4geC4o+C4sOC4lOC4uOC4muC5hgor4LiB4Lij4Liw4LiU4Li44Lia4LiB4Lij4Liw4LiU4Li04LiaCivguIHguKPguLDguJTguLjguKEKK+C4geC4o+C4sOC4lOC4ueC4gQor4LiB4Lij4Liw4LiU4Li54LiB4LiB4LiaCivguIHguKPguLDguJTguLnguIHguYTguIHguYjguJTguLMKK+C4geC4o+C4sOC4lOC4ueC4geC4guC4seC4lOC4oeC4seC4mQor4LiB4Lij4Liw4LiU4Li54LiB4LmA4LiC4Li14Lii4LiUCivguIHguKPguLDguJTguLnguIHguYHguILguYfguIcKK+C4geC4o+C4sOC4lOC4ueC4geC4hOC5iOC4suC4hwor4LiB4Lij4Liw4LiU4Li54LiB4LiH4Li5CivguIHguKPguLDguJTguLnguIHguJTguLMKK+C4geC4o+C4sOC4lOC4ueC4geC4o+C5ieC4reC4h+C5hOC4lOC5iQor4LiB4Lij4Liw4LiU4Li54LiB4Liq4Lix4LiZ4Lir4Lil4Lix4LiHCivguIHguKPguLDguJTguLnguIHguK3guLbguYjguIcKKy3guIHguKPguLDguYDguJTguIEKK+C4geC4o+C4sOC5gOC4lOC5ieC4hwor4LiB4Lij4Liw4LmA4LiU4LmH4LiZCivguIHguKPguLDguYDguJTguYnguLIKK+C4geC4o+C4sOC5gOC4lOC5ieC4suC4lOC4tOC4mQor4LiB4Lij4Liw4LmA4LiU4LmJ4Liy4Lil4LihCivguIHguKPguLDguYDguJTguLLguLAKK+C4geC4o+C4sOC5gOC4lOC4suC4sOC4m+C4suC4gQor4LiB4Lij4Liw4LmA4LiU4Li04LiUCist4LiB4Lij4Liw4LmA4LiU4Li14LmJ4LiiCivguIHguKPguLDguYDguJTguLXguKLguJQKKy3guIHguKPguLDguYDguJTguLXguKLguKEKKy3guIHguKPguLDguYDguJTguLXguYnguKLguKEKK+C4geC4o+C4sOC5gOC4lOC4t+C4reC4gQor4LiB4Lij4Liw4LmA4LiU4Li34LmI4Lit4LiHCivguIHguKPguLDguYHguJTguYfguIHguYYKK+C4geC4o+C4sOC5geC4lOC5ieC4hwor4LiB4Lij4Liw4LmB4LiU4LmJ4LmB4Lij4LmICivguIHguKPguLDguYHguJTguYjguKfguYYKK+C4geC4o+C4sOC5geC4lOC4sAor4LiB4Lij4Liw4LmB4LiU4Liw4LiB4Lij4Liw4LmB4LiU4LmLCivguIHguKPguLDguYLguJTguIEKK+C4geC4o+C4sOC5guC4lOC4geC4geC4o+C4sOC5gOC4lOC4gQor4LiB4Lij4Liw4LmC4LiU4LiHCivguIHguKPguLDguYLguJTguIfguITguLLguIcKK+C4geC4o+C4sOC5guC4lOC4h+C5geC4lOC4hwor4LiB4Lij4Liw4LmC4LiU4LiUCivguIHguKPguLDguYLguJTguJTguKPguYjguKEKK+C4geC4o+C4sOC5guC4lOC4mQor4LiB4Lij4Liw4LmC4LiU4LiZ4LiU4Li04LiZCivguIHguKPguLDguYPguJQKK+C4geC4o+C4sOC5hOC4lAor4LiB4Lij4Liw4LmE4LiU4LmB4LiB4LmJ4LinCivguIHguKPguLDguYTguJTguKXguLTguIcKK+C4geC4o+C4sOC4leC4o+C4geC4geC4o+C4sOC4leC4o+C4swor4LiB4Lij4Liw4LiV4Lij4LmJ4LitCivguIHguKPguLDguJXguKPguLHguJoKK+C4geC4o+C4sOC4leC4o+C4suC4gQorLeC4geC4o+C4sOC4leC4o+C4swor4LiB4Lij4Liw4LiV4Lij4Li44LiUCivguIHguKPguLDguJXguKPguLjguKEKK+C4geC4o+C4sOC4leC5ieC4p+C4oeC4geC4o+C4sOC5gOC4leC4teC5ieC4ouC4oQor4LiB4Lij4Liw4LiV4LmJ4LitCivguIHguKPguLDguJXguYjguK3guIfguIHguKPguLDguYHguJXguYjguIcKK+C4geC4o+C4sOC4leC5iuC4reC4mgor4LiB4Lij4Liw4LiV4LmJ4Lit4Lii4LiV4Li14Lin4Li04LiUCivguIHguKPguLDguJXguLHguIEKK+C4geC4o+C4sOC4leC4seC5ieC4pworLeC4geC4o+C4sOC4leC4suC4gQor4LiB4Lij4Liw4LiV4LmI4Liy4LiiCivguIHguKPguLDguJXguYjguLLguKLguILguLnguJQKK+C4geC4o+C4sOC4leC5iOC4suC4ouC4iOC4seC4meC4l+C4o+C5jAor4LiB4Lij4Liw4LiV4LmI4Liy4Lii4LiI4Liy4LihCivguIHguKPguLDguJXguYjguLLguKLguIjguLXguJkKK+C4geC4o+C4sOC4leC5iOC4suC4ouC4iuC4oeC4iOC4seC4meC4l+C4o+C5jAor4LiB4Lij4Liw4LiV4LmI4Liy4Lii4LiV4LmJ4Lit4LiH4LmB4Lij4LmJ4LinCivguIHguKPguLDguJXguYjguLLguKLguJXguLfguYjguJnguJXguLnguKEKK+C4geC4o+C4sOC4leC5iOC4suC4ouC5gOC4leC5ieC4mQor4LiB4Lij4Liw4LiV4LmI4Liy4Lii4Liq4Liy4Lih4LiC4LiyCivguIHguKPguLDguJXguYjguLLguKLguKvguKHguLLguKLguIjguLHguJnguJfguKPguYwKK+C4geC4o+C4sOC4leC4tOC4gQorLeC4geC4o+C4sOC4leC4tOC4gQorLeC4geC4o+C4sOC4leC4tOC5ieC4hwor4LiB4Lij4Liw4LiV4Li04LmK4LiUCivguIHguKPguLDguJXguLTguYrguJTguILguLXguYnguKvguKHguLkKK+C4geC4o+C4sOC4leC4tOC4mgor4LiB4Lij4Liw4LiV4Li34Lit4Lij4Li34Lit4Lij4LmJ4LiZCivguIHguKPguLDguJXguLjguIEKK+C4geC4o+C4sOC4leC4uOC4geC4geC4o+C4sOC4leC4tOC4gQor4LiB4Lij4Liw4LiV4Li44LmJ4LiH4LiB4Lij4Liw4LiV4Li04LmJ4LiHCivguIHguKPguLDguJXguLjguYjguJkKK+C4geC4o+C4sOC4leC4uOC5ieC4mQor4LiB4Lij4Liw4LiV4Li54LiaCivguIHguKPguLDguYDguJXguIcKK+C4geC4o+C4sOC5gOC4leC5h+C4mQor4LiB4Lij4Liw4LmA4LiV4Lit4LiwCivguIHguKPguLDguYDguJXguLLguLAKK+C4geC4o+C4sOC5gOC4leC4suC4sOC4geC4o+C4sOC5geC4leC4sAorLeC4geC4o+C4sOC5gOC4leC4teC5ieC4ouC4oQor4LiB4Lij4Liw4LmA4LiV4Li34LmJ4Lit4LiHCivguIHguKPguLDguYHguJUKKy3guIHguKPguLDguYHguJXguYjguIcKK+C4geC4o+C4sOC5geC4leC5geC4leC5ieC5geC4p+C5ieC4lAor4LiB4Lij4Liw4LmB4LiV4LmE4LiV4LmI4LmE4Lih4LmJCivguIHguKPguLDguYHguJXguKfguLHguJoKKy3guIHguKPguLDguYHguJXguLAKK+C4geC4o+C4sOC5guC4leC4geC4geC4o+C4sOC4leC4suC4gQor4LiB4Lij4Liw4LmC4LiV4LiZCivguIHguKPguLDguYTguJXguKMKK+C4geC4o+C4sOC4luC4lAor4LiB4Lij4Liw4LiW4Lit4LiaCivguIHguKPguLDguJbguLHguYjguKcKK+C4geC4o+C4sOC4luC4suC4hwor4LiB4Lij4Liw4LiW4Li04LiBCivguIHguKPguLDguJbguLTguJkKK+C4geC4o+C4sOC4luC4tOC4meC4q+C4reC4oQor4LiB4Lij4Liw4LiW4Li24LiBCivguIHguKPguLDguYDguJbguLTguJoKK+C4geC4o+C4sOC5guC4luC4mQor4LiB4Lij4Liw4LmC4LiW4LiZ4LiX4LmJ4Lit4LiH4Lie4Lij4Liw4LmC4Lij4LiHCivguIHguKPguLDguYLguJbguJnguJvguLLguIHguYHguJXguKMKK+C4geC4o+C4sOC5guC4luC4meC4pOC5heC4qeC4tQor4LiB4Lij4Liw4LiX4LiBCivguIHguKPguLDguJfguIcKK+C4geC4o+C4sOC4l+C4h+C5geC4luC4peC4hwor4LiB4Lij4Liw4LiX4LiH4LiZ4LmJ4Lit4LiiCivguIHguKPguLDguJfguIfguJvguYjguLIKK+C4geC4o+C4sOC4l+C4h+C5gOC4nuC4iuC4owor4LiB4Lij4Liw4LiX4LiH4Lil4Lit4LiiCivguIHguKPguLDguJfguIfguKXguLLguKIKK+C4geC4o+C4sOC4l+C4h+C5gOC4q+C4tOC4mQor4LiB4Lij4Liw4LiX4LiUCivguIHguKPguLDguJfguJTguIHguKPguLDguJfguLHguJkKK+C4geC4o+C4sOC4l+C4mgor4LiB4Lij4Liw4LiX4Lia4LiB4Lij4Liw4LiX4Lix4LmI4LiHCivguIHguKPguLDguJfguJrguIHguKPguLDguYDguJfguLXguKLguJoKK+C4geC4o+C4sOC4l+C4muC4geC4o+C4sOC5gOC4l+C4t+C4reC4mQor4LiB4Lij4Liw4LiX4Lia4LiB4Lij4Liw4LmB4LiX4LiBCivguIHguKPguLDguJfguKPguKfguIcKK+C4geC4o+C4sOC4l+C4p+C4ogor4LiB4Lij4Liw4LiX4Lit4LiBCivguIHguKPguLDguJfguYnguK3guJkKK+C4geC4o+C4sOC4l+C5iOC4reC4meC4geC4o+C4sOC5geC4l+C5iOC4mQor4LiB4Lij4Liw4LiX4LmI4Lit4LihCivguIHguKPguLDguJfguYnguK3guKHguIHguKPguLDguYHguJfguYnguKEKK+C4geC4o+C4sOC4l+C5iOC4reC4oeC4guC4teC5ieC4q+C4oeC4uQor4LiB4Lij4Liw4LiX4LmI4Lit4Lih4LmA4Lil4Li34Lit4LiUCivguIHguKPguLDguJfguLAKK+C4geC4o+C4sOC4l+C4sOC5g+C4muC4muC4seC4pwor4LiB4Lij4Liw4LiX4Lix4LmI4LiHCivguIHguKPguLDguJfguLHguYjguIfguJXguLTguJQKKy3guIHguKPguLDguJfguLHguJkKKy3guIHguKPguLDguJfguLHguYnguJkKK+C4geC4o+C4sOC4l+C4sgor4LiB4Lij4Liw4LiX4Liy4LiK4Liy4LiiCivguIHguKPguLDguJfguLLguKIKK+C4geC4o+C4sOC4l+C4suC4ouC5gOC4q+C4tOC4mQor4LiB4Lij4Liw4LiX4Liy4Liq4Li1CivguIHguKPguLDguJfguLLguKvguK3guIcKK+C4geC4o+C4sOC4l+C4swor4LiB4Lij4Liw4LiX4Liz4LiE4Lin4Liy4Lih4Lic4Li04LiUCivguIHguKPguLDguJfguLTguIHguIHguKPguLDguJfguKfguKIKK+C4geC4o+C4sOC4l+C4tOC4hwor4LiB4Lij4Liw4LiX4Li04LiH4LmC4LiX4LiZCivguIHguKPguLDguJfguLbguIcKK+C4geC4o+C4sOC4l+C4t+C4mgor4LiB4Lij4Liw4LiX4Li34Lia4LiY4Lij4LiT4Li1CivguIHguKPguLDguJfguLfguJrguKLguK3guJoKK+C4geC4o+C4sOC4l+C4uAor4LiB4Lij4Liw4LiX4Li44LiHCivguIHguKPguLDguJfguLjguYnguIcKK+C4geC4o+C4sOC4l+C4uOC4h+C4peC4suC4ogor4LiB4Lij4Liw4LiX4Li44LmJ4LiH4LmA4Liq4LmJ4LiyCivguIHguKPguLDguJfguLjguIfguKvguKHguLLguJrguYnguLIKK+C4geC4o+C4sOC4l+C4uOC4h+C5gOC4q+C4pwor4LiB4Lij4Liw4LiX4Li44LmI4LihCivguIHguKPguLDguJfguLjguYjguKHguILguLXguYnguKvguKHguLkKK+C4geC4o+C4sOC4l+C4uOC5iOC4oeC4meC4sgor4LiB4Lij4Liw4LiX4Li44LmI4Lih4Lir4Lih4Li5CivguIHguKPguLDguJfguLnguYkKK+C4geC4o+C4sOC4l+C4ueC5ieC4luC4suC4oQor4LiB4Lij4Liw4LmA4LiX4LmICivguIHguKPguLDguYDguJfguYjguYDguKPguYgKKy3guIHguKPguLDguYDguJfguLXguKLguJoKK+C4geC4o+C4sOC5gOC4l+C4teC4ouC4oQor4LiB4Lij4Liw4LmA4LiX4Li14Lii4Lih4Lir4Lit4LihCivguIHguKPguLDguYDguJfguLfguK3guJkKK+C4geC4o+C4sOC5gOC4l+C4t+C4reC4meC5g+C4iAor4LiB4Lij4Liw4LmA4LiX4Li34LmJ4Lit4LihCivguIHguKPguLDguYHguJfguIEKK+C4geC4o+C4sOC5geC4l+C4geC4geC4o+C4sOC4l+C4seC5ieC4mQor4LiB4Lij4Liw4LmB4LiX4LmI4LiZCist4LiB4Lij4Liw4LmB4LiX4LmJ4LihCivguIHguKPguLDguYHguJfguLAKK+C4geC4o+C4sOC5hOC4l+C4iuC4suC4ogor4LiB4Lij4Liw4LiZ4LiBCivguIHguKPguLDguJnguYjguK3guIcKK+C4geC4o+C4sOC4meC4seC5ieC4mQor4LiB4Lij4Liw4LiZ4Li14LmJCivguIHguKPguLDguYLguJnguYnguJkKK+C4geC4o+C4sOC5hOC4mQor4LiB4Lij4Liw4Lia4LiBCivguIHguKPguLDguJrguIHguITguLLguKIKK+C4geC4o+C4sOC4muC4lgor4LiB4Lij4Liw4Lia4LihCivguIHguKPguLDguJrguKfguJkKK+C4geC4o+C4sOC4muC4p+C4meC4geC4o+C4sOC4muC4tOC4lAor4LiB4Lij4Liw4Lia4Lin4LiZ4LiB4Liy4LijCivguIHguKPguLDguJrguKfguJnguIHguLLguKPguKLguLjguJXguLTguJjguKPguKPguKEKK+C4geC4o+C4sOC4muC4p+C4meC4hOC4p+C4suC4oQor4LiB4Lij4Liw4Lia4Lin4LiZ4LiI4Li14LiZCivguIHguKPguLDguJrguKfguKIKK+C4geC4o+C4sOC4muC4p+C4owor4LiB4Lij4Liw4Lia4Lit4LiBCivguIHguKPguLDguJrguK3guIHguYDguJ7guKXguLIKK+C4geC4o+C4sOC4muC4reC4geC4quC4ueC4mgor4LiB4Lij4Liw4Lia4Lit4LiB4LmA4Liq4Li14Lii4LiHCivguIHguKPguLDguJrguK3guIHguKvguLHguKcKK+C4geC4o+C4sOC4muC4reC4hwor4LiB4Lij4Liw4Lia4Lit4LiH4LiB4Lil4Li24LiHCivguIHguKPguLDguJrguK3guIfguIHguLHguJkKK+C4geC4o+C4sOC4muC4reC4h+C5gOC4nuC4iuC4owor4LiB4Lij4Liw4Lia4Lit4LiH4Lij4Liy4Lir4Li5CivguIHguKPguLDguJrguLAKK+C4geC4o+C4sOC4muC4seC4lAor4LiB4Lij4Liw4Lia4Lix4LmJ4Lin4LiB4Lij4Liw4LmA4Lia4Li14LmJ4LiiCivguIHguKPguLDguJrguYjguLIKK+C4geC4o+C4sOC4muC5ieC4sgor4LiB4Lij4Liw4Lia4Liy4LiBCivguIHguKPguLDguJrguLLguKIKK+C4geC4o+C4sOC4muC4suC4pQor4LiB4Lij4Liw4Lia4Li0CivguIHguKPguLDguJrguLTguYnguIcKK+C4geC4o+C4sOC4muC4tOC4lAor4LiB4Lij4Liw4Lia4Li04LiU4LiB4Lij4Liw4Lia4Lin4LiZCivguIHguKPguLDguJrguLTguKUKK+C4geC4o+C4sOC4muC4teC5iAor4LiB4Lij4Liw4Lia4Li14LmI4LiB4Lij4Liw4Lia4Lit4LiHCivguIHguKPguLDguJrguLXguYjguJjguLjguIoKK+C4geC4o+C4sOC4muC4teC5iOC4peC4teC4peC4sgor4LiB4Lij4Liw4Lia4Li34LitCivguIHguKPguLDguJrguLfguK3guYDguIjguYfguJTguJXguLHguKcKK+C4geC4o+C4sOC4muC4uOC4hwor4LiB4Lij4Liw4Lia4Li44LmI4Lih4LiB4Lij4Liw4Lia4LmI4Liy4LihCivguIHguKPguLDguJrguLnguYnguIHguKPguLDguJrguLXguYkKK+C4geC4o+C4sOC4muC4ueC4mQor4LiB4Lij4Liw4Lia4Li54LiZ4LmA4Lil4Li34Lit4LiUCivguIHguKPguLDguJrguLnguKMKK+C4geC4o+C4sOC5gOC4muC4hwor4LiB4Lij4Liw4LmA4Lia4LiNCivguIHguKPguLDguYDguJrguYfguJTguIHguKPguLDguJrguKfguJkKK+C4geC4o+C4sOC5gOC4muC4mQor4LiB4Lij4Liw4LmA4Lia4LiZ4LmA4Lir4LiZ4LmH4LiaCivguIHguKPguLDguYDguJrguLIKK+C4geC4o+C4sOC5gOC4muC4tOC4gQorLeC4geC4o+C4sOC5gOC4muC4teC5ieC4ogor4LiB4Lij4Liw4LmA4Lia4Li14Lii4LiUCivguIHguKPguLDguYDguJrguLXguKLguJTguIHguKPguLDguJXguLHguIEKK+C4geC4o+C4sOC5gOC4muC4teC4ouC4lOC4geC4o+C4sOC5gOC4quC4teC4ouC4owor4LiB4Lij4Liw4LmA4Lia4Li14Lii4LiZCivguIHguKPguLDguYDguJrguLfguYnguK3guIcKK+C4geC4o+C4sOC5gOC4muC4t+C5ieC4reC4h+C5gOC4geC4peC5h+C4lOC5gOC4leC5iOC4sgor4LiB4Lij4Liw4LmA4Lia4Li34LmJ4Lit4LiH4LiW4LmJ4Lin4LiiCivguIHguKPguLDguYDguJrguLfguYnguK3guIfguJbguYnguKfguKLguIHguLDguKXguLLguYHguJXguIEKK+C4geC4o+C4sOC5gOC4muC4t+C5ieC4reC4h+C4m+C4o+C4uAor4LiB4Lij4Liw4LmA4Lia4Li34LmJ4Lit4LiH4Lij4Li5CivguIHguKPguLDguYDguJrguLfguYnguK3guIfguKvguJnguYnguLLguKfguLHguKcKK+C4geC4o+C4sOC5geC4muC5iAor4LiB4Lij4Liw4LmB4Lia4LiBCivguIHguKPguLDguYHguJrguIHguIfguLIKK+C4geC4o+C4sOC5geC4muC4sAor4LiB4Lij4Liw4LmB4Lia4Liw4Lih4Li34LitCivguIHguKPguLDguYLguJrguKEKK+C4geC4o+C4sOC4m+C4oeC4geC4o+C4sOC4m+C4swor4LiB4Lij4Liw4Lib4Lih4LiB4Lij4Liw4LmA4Lib4LiyCivguIHguKPguLDguJvguKPguK3guIEKK+C4geC4o+C4sOC4m+C4o+C4reC4geC4p+C5iOC4suC4pwor4LiB4Lij4Liw4Lib4Lij4Li14LmJ4LiB4Lij4Liw4LmA4Lib4Lij4LmI4LiyCivguIHguKPguLDguJvguK3guIEKK+C4geC4o+C4sOC4m+C5ieC4reC4geC4o+C4sOC5geC4m+C5iQor4LiB4Lij4Liw4Lib4LmI4Lit4LiHCivguIHguKPguLDguJvguYvguK3guIcKK+C4geC4o+C4sOC4m+C4reC4lOC4geC4o+C4sOC5geC4m+C4lAor4LiB4Lij4Liw4Lib4LmL4Lit4Lir4Lil4LitCivguIHguKPguLDguJvguLHguYnguKfguIHguKPguLDguYDguJvguLXguYnguKIKKy3guIHguKPguLDguJvguLMKK+C4geC4o+C4sOC4m+C5iOC4sworLeC4geC4o+C4sOC4m+C4tOC5iOC4oQor4LiB4Lij4Liw4Lib4Li44LiBCivguIHguKPguLDguJvguLjguIHguKvguKXguLjguIEKK+C4geC4o+C4sOC4m+C4uOC5iOC4oQor4LiB4Lij4Liw4Lib4Li44LmI4Lih4LiB4Lij4Liw4Lib4LmI4LizCivguIHguKPguLDguJvguLjguYjguKHguIHguKPguLDguJvguLTguYjguKEKKy3guIHguKPguLDguYDguJvguLIKK+C4geC4o+C4sOC5gOC4m+C5i+C4sgor4LiB4Lij4Liw4LmA4Lib4LmL4Liy4Lir4LiZ4Lix4LiBCivguIHguKPguLDguYDguJvguLLguLAKK+C4geC4o+C4sOC5gOC4m+C4suC4sOC5gOC4q+C4peC4suC4sAorLeC4geC4o+C4sOC5gOC4m+C4teC5ieC4ogorLeC4geC4o+C4sOC5geC4m+C5iQorLeC4geC4o+C4sOC5geC4m+C4lAor4LiB4Lij4Liw4LmC4Lib4LiBCivguIHguKPguLDguYLguJvguKPguIcKK+C4geC4o+C4sOC5guC4m+C4o+C4h+C4l+C4reC4hwor4LiB4Lij4Liw4Lic4LihCist4LiB4Lij4Liw4Lic4Lil4Liy4LihCivguIHguKPguLDguJzguKXguLXguIHguKPguLDguJzguKXguLLguKEKK+C4geC4o+C4sOC4nOC4suC4mQor4LiB4Lij4Liw4Lic4Li14LiBCivguIHguKPguLDguJzguLXguIHguKPguLTguYnguJkKK+C4geC4o+C4sOC4nuC4o+C4p+C4mQor4LiB4Lij4Liw4Lie4Lij4Li04LmJ4LihCivguIHguKPguLDguJ7guK3guIEKK+C4geC4o+C4sOC4nuC4reC4geC4p+C4seC4pwor4LiB4Lij4Liw4Lie4Lit4LiHCivguIHguKPguLDguJ7guYnguK3guKEKK+C4geC4o+C4sOC4nuC4seC4gQor4LiB4Lij4Liw4Lie4Lix4LiHCivguIHguKPguLDguJ7guLHguIfguYDguKvguLTguKMKK+C4geC4o+C4sOC4nuC4seC4h+C5guC4q+C4oQor4LiB4Lij4Liw4Lie4Lix4LiUCivguIHguKPguLDguJ7guLHguJTguYHguKHguYjguKHguYjguLLguKIKK+C4geC4o+C4sOC4nuC4seC4leC4owor4LiB4Lij4Liw4Lie4Lix4LiZCivguIHguKPguLDguJ7guLHguYjguJkKK+C4geC4o+C4sOC4nuC4sgor4LiB4Lij4Liw4Lie4Liy4LiBCivguIHguKPguLDguJ7guLXguYkKK+C4geC4o+C4sOC4nuC4teC5ieC5gOC4guC4suC4hOC4p+C4suC4ogor4LiB4Lij4Liw4Lie4Li34LitCivguIHguKPguLDguJ7guLfguK3guILguYjguLLguKcKK+C4geC4o+C4sOC4nuC4t+C4reC4m+C4teC4gQor4LiB4Lij4Liw4Lie4Li44LmJ4LiHCivguIHguKPguLDguJ7guLjguYjguKEKK+C4geC4o+C4sOC4nuC4uOC5iOC4oeC4oeC4t+C4rQor4LiB4Lij4Liw4LmA4Lie4Lil4Li04LioCivguIHguKPguLDguYDguJ7guLLguLAKK+C4geC4o+C4sOC5gOC4nuC4suC4sOC4m+C4peC4sgor4LiB4Lij4Liw4LmA4Lie4Li04LiHCivguIHguKPguLDguYDguJ7guLfguYjguK3guKEKK+C4geC4o+C4sOC5geC4nuC4hwor4LiB4Lij4Liw4LmB4Lie4LmJ4LiHCivguIHguKPguLDguJ/guLHguJTguIHguKPguLDguYDguJ/guLXguKLguJQKKy3guIHguKPguLDguJ/guLLguKIKK+C4geC4o+C4sOC4n+C4ueC4oeC4geC4o+C4sOC4n+C4suC4ogorLeC4geC4o+C4sOC5gOC4n+C4teC4ouC4lAor4LiB4Lij4Liw4Lih4LilCivguIHguKPguLDguKHguK3guJoKK+C4geC4o+C4sOC4oeC4reC4oeC4geC4o+C4sOC5geC4oeC4oQor4LiB4Lij4Liw4Lih4Lix4LiHCivguIHguKPguLDguKHguLHguJkKK+C4geC4o+C4sOC4oeC4tOC4lOC4geC4o+C4sOC5gOC4oeC4teC5ieC4ouC4mQor4LiB4Lij4Liw4Lih4Li24LiZCivguIHguKPguLDguKHguLjguJcKK+C4geC4o+C4sOC5gOC4oeC4suC4sAorLeC4geC4o+C4sOC5gOC4oeC4teC5ieC4ouC4mQorLeC4geC4o+C4sOC5geC4oeC4oQor4LiB4Lij4Liw4Lii4LmI4Lit4LiHCist4LiB4Lij4Liw4Lii4LmI4Lit4LiHCivguIHguKPguLDguKLguYjguK3guIfguIHguKPguLDguYHguKLguYjguIcKK+C4geC4o+C4sOC4ouC5iOC4reC4mQor4LiB4Lij4Liw4Lii4LmI4Lit4LihCivguIHguKPguLDguKLguLIKK+C4geC4o+C4sOC4ouC4suC4hOC4iuC4p+C4suC4hwor4LiB4Lij4Liw4Lii4Liy4LiHCivguIHguKPguLDguKLguLLguIjguIEKKy3guIHguKPguLDguKLguLLguJQKK+C4geC4o+C4sOC4ouC4suC4lOC4reC4gQor4LiB4Lij4Liw4Lii4Liy4LiU4Lit4LiB4LmA4Lia4Li14LmJ4LiiCivguIHguKPguLDguKLguLLguJfguLLguJkKK+C4geC4o+C4sOC4ouC4suC4l+C4tOC4nuC4ouC5jAor4LiB4Lij4Liw4Lii4Liy4Lia4Lin4LiKCivguIHguKPguLDguKLguLLguYDguJrguLXguYnguKIKK+C4geC4o+C4sOC4ouC4suC4o+C4h+C4hOC5jAor4LiB4Lij4Liw4Lii4Liy4LmA4Lil4LiiCivguIHguKPguLDguKLguLLguKrguJnguLLguJkKK+C4geC4o+C4sOC4ouC4suC4quC4seC4h+C5gOC4p+C4ogor4LiB4Lij4Liw4Lii4Liy4Liq4Lix4LiH4LmB4Lin4LiHCivguIHguKPguLDguKLguLLguKrguLLguKPguJcKK+C4geC4o+C4sOC4ouC4suC5gOC4quC4p+C4ogor4LiB4Lij4Liw4Lii4Liy4Lir4LiH4Lix4LiZCivguIHguKPguLDguKLguLLguKvguLLguKMKK+C4geC4o+C4sOC4ouC4tOC4gQor4LiB4Lij4Liw4Lii4Li04LmJ4Lih4LiB4Lij4Liw4Lii4LmI4Lit4LiHCivguIHguKPguLDguKLguLbguIHguIHguKPguLDguKLguLfguK0KK+C4geC4o+C4sOC4ouC4t+C4lOC4geC4o+C4sOC4ouC4suC4lAor4LiB4Lij4Liw4LmA4Lii4LmJ4Lit4LiB4Lij4Liw4LmB4Lir4Lii4LmI4LiHCist4LiB4Lij4Liw4LmB4Lii4LmI4LiHCivguIHguKPguLDguKPguK3guIEKK+C4geC4o+C4sOC4o+C4reC4geC4meC5ieC4s+C4guC5ieC4suC4pwor4LiB4Lij4Liw4LmA4Lij4Li14Lii4LiZCivguIHguKPguLDguYLguKPguIHguJnguYnguLPguILguYnguLLguKcKK+C4geC4o+C4sOC5guC4o+C4geC5g+C4q+C4jeC5iAor4LiB4Lij4Liw4LmE4LijCivguIHguKPguLDguKXguJQKK+C4geC4o+C4sOC4peC4mgor4LiB4Lij4Liw4Lil4Lit4LiBCivguIHguKPguLDguKXguK3guKEKK+C4geC4o+C4sOC4peC4sOC4q+C4peC5iOC4swor4LiB4Lij4Liw4Lil4Lix4LiUCivguIHguKPguLDguKXguLHguJoKK+C4geC4o+C4sOC4peC4seC4muC4geC4o+C4sOC5gOC4peC4t+C4reC4gQor4LiB4Lij4Liw4Lil4Lix4Lih4Lie4LijCivguIHguKPguLDguKXguLIKK+C4geC4o+C4sOC4peC4suC4geC4suC4owor4LiB4Lij4Liw4Lil4Liy4Lie4Li04LiZCivguIHguKPguLDguKXguLLguKLguIHguKPguLDguKXguK3guIEKK+C4geC4o+C4sOC4peC4suC4qOC4o+C4tQor4LiB4Lij4Liw4Lil4LizCivguIHguKPguLDguKXguLPguJ7guKMKK+C4geC4o+C4sOC4peC4s+C4nuC4seC4gQor4LiB4Lij4Liw4Lil4Liz4Lie4Li44LiBCivguIHguKPguLDguKXguLTguIcKK+C4geC4o+C4sOC4peC4tQor4LiB4Lij4Liw4Lil4Li24LiHCivguIHguKPguLDguKXguLjguKHguJ7guLLguIcKK+C4geC4o+C4sOC4peC4uOC4oeC4nuC4uOC4gQor4LiB4Lij4Liw4Lil4Li44Lih4Lie4Li5CivguIHguKPguLDguKXguLnguJkKK+C4geC4o+C4sOC4peC4ueC5iOC4meC5jAor4LiB4Lij4Liw4LmA4Lil4LmH4LiZCivguIHguKPguLDguYDguKXguLXguKLguJQKK+C4geC4o+C4sOC5gOC4peC4t+C4reC4gQor4LiB4Lij4Liw4LmC4Lil4LiHCivguIHguKPguLDguKfguJkKK+C4geC4o+C4sOC4p+C4meC4geC4o+C4sOC4p+C4suC4ogor4LiB4Lij4Liw4Lin4Lix4LiUCivguIHguKPguLDguKfguYjguLIKKy3guIHguKPguLDguKfguLLguJQKK+C4geC4o+C4sOC4p+C4suC4mQor4LiB4Lij4Liw4Lin4Liy4LiiCivguIHguKPguLDguKfguLLguKLguIHguKPguLDguKfguJkKK+C4geC4o+C4sOC4p+C4tOC4mQor4LiB4Lij4Liw4Lin4Li1CivguIHguKPguLDguKfguLXguIHguKPguLDguKfguLLguJQKK+C4geC4o+C4sOC4p+C4ueC4lOC4geC4o+C4sOC4p+C4suC4lAor4LiB4Lij4Liw4LmA4Lin4LiZCivguIHguKPguLDguYDguKfguJnguIHguKPguLDguKfguJkKK+C4geC4o+C4sOC5gOC4p+C4ouC4geC4o+C4sOC4p+C4suC4ogor4LiB4Lij4Liw4LmB4Lin4LiZCivguIHguKPguLDguYLguKfguKLguIHguKPguLDguKfguLLguKIKK+C4geC4o+C4sOC4qOC4gQor4LiB4Lij4Liw4Lio4Lix4LiiCivguIHguKPguLDguKnguLHguJXguKPguLTguKLguYwKK+C4geC4o+C4sOC4qeC4seC4leC4o+C4tQor4LiB4Lij4Liw4Lip4Lix4LiiCivguIHguKPguLDguKnguLHguKLguIHguKXguYjguK3guJkKK+C4geC4o+C4sOC4qeC4suC4m+C4k+C5jAor4LiB4Lij4Liw4Lip4Li04LijCivguIHguKPguLDguYDguKnguKEKK+C4geC4o+C4sOC5gOC4qeC4oeC4quC4suC4meC4leC5jAor4LiB4Lij4Liw4LmA4Lip4Li14Lii4LijCivguIHguKPguLDguKrguIcKKy3guIHguKPguLDguKrguJkKK+C4geC4o+C4sOC4quC4mgor4LiB4Lij4Liw4Liq4LihCivguIHguKPguLDguKrguKPguKfguKUKK+C4geC4o+C4sOC4quC4o+C5ieC4reC4ogor4LiB4Lij4Liw4Liq4Lin4LiZCivguIHguKPguLDguKrguKfguKIKK+C4geC4o+C4sOC4quC4reC4mgor4LiB4Lij4Liw4Liq4LiwCivguIHguKPguLDguKrguLHguIcKK+C4geC4o+C4sOC4quC4seC4mQor4LiB4Lij4Liw4Liq4Lix4Lia4LiB4Lij4Liw4Liq4LmI4Liy4LiiCivguIHguKPguLDguKrguLIKK+C4geC4o+C4sOC4quC4suC4meC4leC4tOC5jAor4LiB4Lij4Liw4Liq4Liy4LiaCivguIHguKPguLDguKrguLLguKIKKy3guIHguKPguLDguKrguYjguLLguKIKK+C4geC4o+C4sOC4quC4tOC4meC4mOC4uAor4LiB4Lij4Liw4Liq4Li34LitCivguIHguKPguLDguKrguLfguK3guJTguLnguJQKK+C4geC4o+C4sOC4quC4uOC4h+C4geC4o+C4sOC4quC4tOC4hwor4LiB4Lij4Liw4Liq4Li44LiZCivguIHguKPguLDguKrguLjguJnguJvguLfguJkKK+C4geC4o+C4sOC4quC4uOC4meC4p+C4tOC4luC4tQor4LiB4Lij4Liw4Liq4Li54LiX4LiY4Li04LmMCivguIHguKPguLDguKrguLnguJoKK+C4geC4o+C4sOC5gOC4quC4lAor4LiB4Lij4Liw4LmA4Liq4LmH4LiZ4LiB4Lij4Liw4Liq4Liy4LiiCivguIHguKPguLDguYDguKrguYjguLIKK+C4geC4o+C4sOC5gOC4quC4suC4sOC4geC4o+C4sOC5geC4quC4sAor4LiB4Lij4Liw4LmA4Liq4Li14Lii4LiZCivguIHguKPguLDguYDguKrguLXguKLguKMKK+C4geC4o+C4sOC5gOC4quC4t+C4reC4geC4geC4o+C4sOC4quC4mQor4LiB4Lij4Liw4LmB4LiqCivguIHguKPguLDguYHguKrguIHguLLguKPguYDguIfguLTguJkKK+C4geC4o+C4sOC5geC4quC4hOC4p+C4suC4oQor4LiB4Lij4Liw4LmB4Liq4LiHCivguIHguKPguLDguYHguKrguIjguLTguJUKK+C4geC4o+C4sOC5geC4quC4leC4o+C4hwor4LiB4Lij4Liw4LmB4Liq4LiZ4LmJ4LizCivguIHguKPguLDguYHguKrguJ7guKPguLDguKPguLLguIrguJTguLPguKPguLHguKoKK+C4geC4o+C4sOC5geC4quC4o+C4seC4muC4quC4seC5iOC4hwor4LiB4Lij4Liw4LmB4Liq4Lil4LihCivguIHguKPguLDguYHguKrguKrguKXguLHguJoKK+C4geC4o+C4sOC5geC4quC5gOC4quC4teC4ouC4hwor4LiB4Lij4Liw4LmB4Liq4LiwCivguIHguKPguLDguYLguKrguIcKK+C4geC4o+C4sOC5hOC4qgor4LiB4Lij4Liw4Lir4LiH4LmI4Lit4LiHCivguIHguKPguLDguKvguJkKK+C4geC4o+C4sOC4q+C4meC4gQor4LiB4Lij4Liw4Lir4LiZ4LiB4LiB4Li04LiZ4Lij4Li1CivguIHguKPguLDguKvguJnguIHguJnguKTguKHguLTguJUKK+C4geC4o+C4sOC4q+C4meC4geC4meC4suC4o+C4tQor4LiB4Lij4Liw4Lir4LiZ4LmI4Lit4LiHCivguIHguKPguLDguKvguJnguLLguIEKK+C4geC4o+C4sOC4q+C4meC4suC4mgor4LiB4Lij4Liw4Lir4LiZ4Liy4Lia4LiE4Liy4Lia4LmA4LiB4Li14LmI4Lii4LinCivguIHguKPguLDguKvguJnguYjguLMKK+C4geC4o+C4sOC4q+C4oeC4p+C4lAor4LiB4Lij4Liw4Lir4Lih4Lit4LiaCivguIHguKPguLDguKvguKHguYjguK3guKEKK+C4geC4o+C4sOC4q+C4oeC5iOC4reC4oeC4muC4suC4hwor4LiB4Lij4Liw4Lir4Lih4Lix4LmI4LiHCivguIHguKPguLDguKvguKHguYjguLIKKy3guIHguKPguLDguKvguKHguLTguJQKK+C4geC4o+C4sOC4q+C4oeC4tOC4mgor4LiB4Lij4Liw4Lir4Lih4Li44LiU4LiB4Lij4Liw4Lir4Lih4Li04LiUCivguIHguKPguLDguKvguKHguLjguYjguJkKK+C4geC4o+C4sOC4q+C4oeC4uOC4mgor4LiB4Lij4Liw4Lir4Lih4Li44Lia4LiB4Lij4Liw4Lir4Lih4Li04LiaCivguIHguKPguLDguKvguKLguYjguIcKK+C4geC4o+C4sOC4q+C4ouC4lAor4LiB4Lij4Liw4Lir4Lii4LiaCivguIHguKPguLDguKvguKLguYjguK3guJkKK+C4geC4o+C4sOC4q+C4ouC5iOC4reC4oQor4LiB4Lij4Liw4Lir4Lii4LiwCivguIHguKPguLDguKvguKLguLHguIcKK+C4geC4o+C4sOC4q+C4ouC4seC4mgor4LiB4Lij4Liw4Lir4Lii4Li04LmI4LihCivguIHguKPguLDguKvguKPguK3guJQKK+C4geC4o+C4sOC4q+C4o+C4tOC5iOC4hwor4LiB4Lij4Liw4Lir4Lin4LiZCivguIHguKPguLDguKvguKfguLHguJQKK+C4geC4o+C4sOC4q+C4p+C4seC4lOC5gOC4geC4peC5ieC4sgor4LiB4Lij4Liw4Lir4Lin4LmI4LiyCivguIHguKPguLDguKvguK3guIcKK+C4geC4o+C4sOC4q+C4seC4hwor4LiB4Lij4Liw4Lir4Lix4LiUCivguIHguKPguLDguKvguLLguIcKK+C4geC4o+C4sOC4q+C4suC4ogor4LiB4Lij4Liw4Lir4Li24LihCivguIHguKPguLDguKvguLbguYjguKEKK+C4geC4o+C4sOC4q+C4t+C4lOC4geC4o+C4sOC4q+C4reC4mgor4LiB4Lij4Liw4LmA4Lir4LmH4LiZCivguIHguKPguLDguYDguKvguJnguYfguIgKK+C4geC4o+C4sOC5gOC4q+C4meC5h+C4iOC4geC4o+C4sOC5geC4q+C4meC5iAor4LiB4Lij4Liw4LmA4Lir4LiZ4Li14Lii4LiUCivguIHguKPguLDguYDguKvguKHguYfguJTguIHguKPguLDguYDguKvguKHguLXguKLguJQKK+C4geC4o+C4sOC5gOC4q+C4oeC5h+C4lOC4geC4o+C4sOC5geC4q+C4oeC5iAor4LiB4Lij4Liw4LmA4Lir4Lih4LmI4LiZCivguIHguKPguLDguYDguKvguKHguYjguLIKK+C4geC4o+C4sOC5gOC4q+C4peC4teC4ouC4gQor4LiB4Lij4Liw4LmA4Lir4Lin4LmI4LiyCivguIHguKPguLDguYDguKvguYjguK0KK+C4geC4o+C4sOC5gOC4q+C4tOC4oQor4LiB4Lij4Liw4LmA4Lir4Li14LmJ4Lii4LiZ4LiB4Lij4Liw4Lir4Li34Lit4Lij4Li34LitCivguIHguKPguLDguYHguKsKK+C4geC4o+C4sOC5geC4q+C4l+C4reC4hworLeC4geC4o+C4sOC5geC4q+C4mQor4LiB4Lij4Liw4LmB4Lir4LiZ4LmICivguIHguKPguLDguYHguKvguJnguJoKK+C4geC4o+C4sOC5geC4q+C4meC4sAor4LiB4Lij4Liw4LmB4Lir4LiZ4Liw4LiB4Lij4Liw4LmB4Lir4LiZCivguIHguKPguLDguYHguKvguKHguJoKK+C4geC4o+C4sOC5geC4q+C4oeC5iOC4pwor4LiB4Lij4Liw4LmB4Lir4Lii4LmI4LiHCivguIHguKPguLDguYHguKvguKPguYjguKEKK+C4geC4o+C4sOC5geC4q+C4peC5iOC4hwor4LiB4Lij4Liw4LmC4Lir4LmJCivguIHguKPguLDguYLguKvguJnguJQKK+C4geC4o+C4sOC5guC4q+C4oQor4LiB4Lij4Liw4LmC4Lir4LiiCivguIHguKPguLDguYLguKvguKLguYjguIcKKy3guIHguKPguLDguK3guYjguKfguJkKK+C4geC4o+C4sOC4reC4p+C4pQor4LiB4Lij4Liw4Lit4LmJ4Lit4LiB4Lij4Liw4LmB4Lit4LmJCivguIHguKPguLDguK3guK3guJTguIHguKPguLDguYHguK3guJQKK+C4geC4o+C4sOC4reC4reC4mgor4LiB4Lij4Liw4Lit4Lit4LihCivguIHguKPguLDguK3guYnguK3guKHguIHguKPguLDguYHguK3guYnguKEKK+C4geC4o+C4sOC4reC4reC4oeC4meC5ieC4swor4LiB4Lij4Liw4Lit4Lix4LiBCivguIHguKPguLDguK3guLHguIHguIHguKPguLDguK3guYjguKfguJkKK+C4geC4o+C4sOC4reC4seC4geC4geC4o+C4sOC5hOC4rQor4LiB4Lij4Liw4Lit4Lix4LmJ4Lin4LmB4LiX4LiH4LiE4Lin4Liy4LiiCivguIHguKPguLDguK3guYnguLIKK+C4geC4o+C4sOC4reC4suC4mQor4LiB4Lij4Liw4Lit4Li04LiUCivguIHguKPguLDguK3guLTguJTguIHguKPguLDguYDguK3guLfguYnguK3guJkKK+C4geC4o+C4sOC4reC4tuC4gQor4LiB4Lij4Liw4Lit4Li24LiB4LiB4Lij4Liw4Lit4Lix4LiBCivguIHguKPguLDguK3guLbguJQKK+C4geC4o+C4sOC4reC4t+C4lAor4LiB4Lij4Liw4Lit4Li4CivguIHguKPguLDguK3guLjguIEKK+C4geC4o+C4sOC5gOC4reC4mgor4LiB4Lij4Liw4LmA4Lit4LiyCivguIHguKPguLDguYDguK3guLTguIEKK+C4geC4o+C4sOC5gOC4reC4tOC4mgorLeC4geC4o+C4sOC5geC4reC5iQor4LiB4Lij4Liw4LmB4Lit4LiBCist4LiB4Lij4Liw4LmB4Lit4LiUCivguIHguKPguLDguYHguK3guJoKK+C4geC4o+C4sOC5geC4reC4oQorLeC4geC4o+C4sOC5geC4reC5ieC4oQor4LiB4Lij4Liw4LmE4LitCivguIHguKPguLDguYTguK3guIHguKPguLDguYHguK3guKEKK+C4geC4o+C4seC4gQor4LiB4Lij4Lix4LiB4LiC4Li1CivguIHguKPguLHguIcKK+C4geC4o+C4seC4iuC4geC4suC4ogor4LiB4Lij4Lix4LiT4LiRLQor4LiB4Lij4Lix4LiT4LiR4LmMCivguIHguKPguLHguJPguKLguYwKK+C4geC4o+C4seC4mQor4LiB4Lij4Lix4LiaCivguIHguKPguLHguKEKK+C4geC4o+C4suC4gQor4LiB4Lij4Liy4LiHCivguIHguKPguYjguLLguIcKK+C4geC4o+C4suC4h+C5gOC4geC4o+C4teC4ouC4hwor4LiB4Lij4Liy4LiUCist4LiB4Lij4Liy4LiUCivguIHguKPguLLguJTguYDguIHguKPguLXguYnguKLguKcKK+C4geC4o+C4suC4lOC4p+C4hwor4LiB4Lij4Liy4LiZCivguIHguKPguYnguLLguJkKK+C4geC4o+C4suC4meC4geC4kOC4tOC4mQor4LiB4Lij4Liy4LiaCivguIHguKPguLLguJrguJ7guKPguLAKK+C4geC4o+C4suC4nwor4LiB4Lij4Liy4LihCivguIHguKPguLLguKHguIrguYnguLLguIcKK+C4geC4o+C4suC4oeC4nuC4peC4uQor4LiB4Lij4Liy4LiiCivguIHguKPguYjguLLguKIKK+C4geC4o+C4suC4pQor4LiB4Lij4Liy4LinCivguIHguKPguYnguLLguKcKK+C4geC4o+C4suC4p+C4lOC5iOC4suC4hwor4LiB4Lij4Liy4Lin4Lij4Li54LiUCivguIHguKPguLLguKrguLTguIEKK+C4geC4o+C4swor4LiB4Lij4LmI4LizCivguIHguKPguYjguLPguIHguKPguLjguYjguJkKK+C4geC4o+C4tOC4gQor4LiB4Lij4Li04LmK4LiBCivguIHguKPguLTguIHguIHguKPguLTguKcKK+C4geC4o+C4tOC4geC4geC4o+C4tQor4LiB4Lij4Li04LmI4LiHCivguIHguKPguLTguYrguIcKK+C4geC4o+C4tOC4h+C4geC4o+C4tOC4pwor4LiB4Lij4Li04LmJ4LiH4LiB4Lij4Li04LmJ4LinCivguIHguKPguLTguYjguIfguYDguIHguKPguIcKK+C4geC4o+C4tOC5iOC4h+C5g+C4iAor4LiB4Lij4Li04LiKCivguIHguKPguLTguJPguLUKK+C4geC4o+C4tOC4leC4oi0KK+C4geC4o+C4tOC4mQor4LiB4Lij4Li04LiZ4LiX4Lij4LmMCivguIHguKPguLTguJnguLUKK+C4geC4o+C4tOC4mgor4LiB4Lij4Li04LihCivguIHguKPguLTguYjguKEKK+C4geC4o+C4tOC4ouC4sgor4LiB4Lij4Li04Lii4Liy4LiZ4Li44LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguIHguKPguLTguKLguLLguKfguLTguYDguKjguKnguJPguYwKK+C4geC4o+C4tOC4ouC4suC4p+C4tOC5gOC4qOC4qeC4k+C5jOC4p+C4peC4tQor4LiB4Lij4Li04Lii4Liy4Lin4Li04LmA4Lio4Lip4LiT4Liy4LiZ4Li44Lib4Lij4Liw4LmC4Lii4LiECivguIHguKPguLTguKcKK+C4geC4o+C4tOC5ieC4pwor4LiB4Lij4Li04Lin4LiB4Lij4Liy4LinCivguIHguKPguLTguKfguKXguLLguKIKK+C4geC4o+C4tQor4LiB4Lij4Li14LiR4LiyCivguIHguKPguLXguJHguLLguIHguKMKK+C4geC4o+C4teC4keC4suC4oOC4tOC4o+C4oeC4ouC5jAor4LiB4Lij4Li14LiR4Liy4Lij4Lih4Lii4LmMCivguIHguKPguLXguJHguLLguKrguJbguLLguJkKK+C4geC4o+C4teC4lAor4LiB4Lij4Li14LmK4LiUCivguIHguKPguLXguJTguIHguKPguLLguJQKK+C4geC4o+C4teC4lOC4geC4o+C4suC4ogor4LiB4Lij4Li14LiU4LiZ4Li04LmJ4LinCivguIHguKPguLXguJjguLIKK+C4geC4o+C4teC4mOC4suC4l+C4seC4ngor4LiB4Lij4Li14LiY4Liy4Lie4LilCivguIHguKPguLXguKkKK+C4geC4o+C4teC4qgor4LiB4Lij4Li24LiHCivguIHguKPguLgKK+C4geC4o+C4uOC4gQor4LiB4Lij4Li44LiB4LiB4Lij4Lix4LiBCivguIHguKPguLjguIHguIHguKPguLnguYoKK+C4geC4o+C4uOC4hwor4LiB4Lij4Li44LmJ4LiH4LiB4Lij4Li04LmI4LiHCivguIHguKPguLjguIfguYDguILguKHguLIKK+C4geC4o+C4uOC4h+C4nuC4suC4peC4tQor4LiB4Lij4Li44LiTCivguIHguKPguLjguJPguLIKK+C4geC4o+C4uOC4k+C4suC4l+C4pOC4hOC4uOC4kwor4LiB4Lij4Li44LiZCivguIHguKPguLjguYjguJkKK+C4geC4o+C4uOC4mgor4LiB4Lij4Li44Lia4LiB4Lij4Li04LiaCivguIHguKPguLjguYjguKEKK+C4geC4o+C4uOC5ieC4oeC4geC4o+C4tOC5iOC4oQor4LiB4Lij4Li44LiiCivguIHguKPguLjguKLguIHguKPguLLguKIKK+C4geC4o+C4uOC4ouC5gOC4geC4o+C4teC4ouC4pwor4LiB4Lij4Li5CivguIHguKPguLnguJQKK+C4geC4o+C4ueC4oQor4LiB4LmA4Lij4LiT4Li4CivguIHguYDguKPguJPguLjguIHguLIKK+C4geC5gOC4o+C4meC4l+C4owor4LiB4LmA4Lij4LiZ4LiX4Lij4LmMCivguIHguKTguIoKK+C4geC4pOC4lC0KK+C4geC4pOC4lOC4ouC4suC5gOC4geC4teC4ouC4o+C4kwor4LiB4Lik4LiU4LiyCivguIHguKTguJTguLLguIHguLLguKMKK+C4geC4pOC4lOC4suC4jeC4iuC4peC4tQor4LiB4Lik4LiU4Liy4LiY4Li04LiB4Liy4LijCivguIHguKTguJTguLLguKDguLTguJnguLTguKvguLLguKMKK+C4geC4pOC4lOC4suC4reC4seC4jeC4iuC4peC4tQor4LiB4Lik4LiU4Li0CivguIHguKTguJTguLXguIHguLIKK+C4geC4pOC4leC4leC4tOC4geC4sgor4LiB4Lik4LiV4LiiLQor4LiB4Lik4LiV4Lii4LiO4Li14LiB4LiyCivguIHguKTguJXguKLguLIKK+C4geC4pOC4leC4tOC4geC4sgor4LiB4Lik4LiV4Li04Lii4LiyCivguIHguKTguKnguI7guLIKK+C4geC4pOC4qeC4juC4suC4jQor4LiB4Lik4Lip4LiO4Liy4LiN4LiK4Lil4Li04LiVCivguIHguKTguKnguI7guLLguI3guIrguKXguLUKK+C4geC4pOC4qeC4juC4suC4jeC4iuC4p+C4peC4tOC4leC4p+C4sgor4LiB4Lik4Lip4LiO4Liy4LiN4LiK4Lin4Lil4Li04LioCivguIHguKTguKnguI7guLLguI3guIrguKfguYDguKXguKgKK+C4geC4pOC4qeC4juC4suC4jeC4iuC4uOC4peC4tQor4LiB4Lik4Lip4LiO4Liy4LiY4Liy4LijCivguIHguKTguKnguI7guLLguKDguLTguJnguLTguKvguLLguKMKK+C4geC4pOC4qeC4juC4tQor4LiB4Lik4Lip4LiO4Li14LiB4LiyCivguIHguKTguKnguJPguLIKK+C4geC4pQor4LiB4LilLQor4LiB4Lil4LmE4LiBCivguIHguKXguInguYnguK3guInguKUKK+C4geC4peC4lAor4LiB4Lil4LiU4LiB4Liz4Lih4Liw4Lil4LitCivguIHguKXguJTguJ7guKPguLDguKrguLjguYDguKHguKPguLgKK+C4geC4peC5iOC4mQor4LiB4Lil4LiaCivguIHguKXguJrguYDguIHguKXguLXguYjguKIKK+C4geC4peC4muC5gOC4geC4peC4t+C5iOC4reC4mQor4LiB4Lil4Lia4LiXCivguIHguKXguJrguJrguLHguJXguKPguKrguLjguKHguYDguJ7guKXguLTguIcKK+C4geC4peC4nuC4ouC4suC4mQor4LiB4Lil4LmE4LifCivguIHguKXguKEKK+C4geC4peC4oeC4geC4peC5iOC4reC4oQor4LiB4Lil4Lih4LiB4Lil4Li34LiZCivguIHguKXguKHguIHguKXguLfguJnguIHguKXguK3guJkKK+C4geC4peC4oeC5gOC4geC4peC4teC4ouC4pwor4LiB4Lil4Lih4LiU4Li04LiBCivguIHguKXguKHguYDguJvguYfguJnguKXguLnguIHguKHguLDguJnguLLguKcKK+C4geC4peC4oeC4oAor4LiB4Lil4LmA4Lih4LmH4LiUCivguIHguKXguKLguLjguJfguJjguYwKK+C4geC4peC4peC4sAor4LiB4Lil4Lin4LiHCivguIHguKXguKfguKEKK+C4geC4peC5ieC4p+C4ogor4LiB4Lil4LmJ4Lin4Lii4LiB4Lil4LmJ4Liy4LiiCivguIHguKXguYnguKfguKLguYHguILguIEKK+C4geC4peC5ieC4p+C4ouC4h+C4p+C4h+C4iuC5ieC4suC4hwor4LiB4Lil4LmJ4Lin4Lii4LmA4LiV4LmI4LiyCivguIHguKXguYnguKfguKLguYPguJXguYkKK+C4geC4peC5ieC4p+C4ouC4meC5ieC4reC4ogor4LiB4Lil4LmJ4Lin4Lii4LmE4Lih4LmJCivguIHguKXguYnguKfguKLguKrguLHguYnguJkKK+C4geC4peC5ieC4p+C4ouC4q+C4oeC4ueC4quC4seC4hwor4LiB4Lil4Lin4Li04LiY4Li1CivguIHguKXguKgKK+C4geC4peC4qOC4suC4quC4leC4o+C5jAor4LiB4Lil4Lir4Liy4LiiCivguIHguKXguYDguKvguKIKK+C4geC4peC5ieC4rQor4LiB4Lil4Lit4LiBCivguIHguKXguK3guIHguIHguKXguLHguJoKK+C4geC4peC4reC4geC5geC4geC4peC4gQor4LiB4Lil4Lit4LiHCivguIHguKXguYjguK3guIcKK+C4geC4peC5ieC4reC4hwor4LiB4Lil4LmJ4Lit4LiH4LmB4LiB4Lil4LmJ4LiHCivguIHguKXguYnguK3guIfguIjguLjguKXguJfguKPguKPguKjguJnguYwKK+C4geC4peC5ieC4reC4h+C4leC4uOC4lAor4LiB4Lil4LmJ4Lit4LiH4LmC4LiX4Lij4LiX4Lij4Lij4Lio4LiZ4LmMCivguIHguKXguK3guIfguYDguJ7guKUKK+C4geC4peC5ieC4reC4h+C4o+C4sOC4lOC4seC4mgor4LiB4Lil4LmJ4Lit4LiH4Lin4Lix4LiU4Lih4Li44LihCivguIHguKXguYnguK3guIfguKrguJnguLLguKEKK+C4geC4peC5ieC4reC4h+C4quC4peC4seC4lAor4LiB4Lil4LmJ4Lit4LiH4Liq4LmI4Lit4LiH4LiX4Liy4LiH4LmE4LiB4LilCivguIHguKXguYnguK3guIfguKrguLPguKPguKfguIgKK+C4geC4peC4reC4mQor4LiB4Lil4LmI4Lit4LiZCivguIHguKXguYnguK3guJkKK+C4geC4peC4reC4meC4lOC5ieC4mQor4LiB4Lil4Lit4LiZ4LiV4Lil4Liy4LiUCivguIHguKXguK3guJnguKXguLTguKXguLTguJUKK+C4geC4peC4reC4meC4quC4lAor4LiB4Lil4Lit4LiZ4Liq4Lin4LiUCivguIHguKXguK3guJnguKrguLjguKDguLLguJ4KK+C4geC4peC5iOC4reC4oQor4LiB4Lil4LmI4Lit4Lih4LmA4LiB4Lil4LiyCivguIHguKXguYjguK3guKHguYDguIHguKXguLXguYnguKLguIcKK+C4geC4peC5ieC4reC4oeC5geC4geC4peC5ieC4oQor4LiB4Lil4LmI4Lit4Lih4LiX4LmJ4Lit4LiHCivguIHguKXguYjguK3guKHguKHguJTguKXguLnguIEKK+C4geC4peC5iOC4reC4oeC4q+C4rQor4LiB4Lil4Lit4LiiCivguIHguKXguK3guLHguIHguKnguKMKK+C4geC4peC4reC4uOC4m+C4geC4o+C4k+C5jAor4LiB4Lil4Lix4LiBCivguIHguKXguLHguIcKK+C4geC4peC4seC4lAor4LiB4Lil4Lix4LiU4LiB4Lil4Li44LmJ4LihCivguIHguKXguLHguJTguKHguLHguJkKK+C4geC4peC4seC5iOC4mQor4LiB4Lil4Lix4LmJ4LiZCivguIHguKXguLHguYjguJnguIHguKPguK3guIcKK+C4geC4peC4seC5iOC4meC5geC4geC4peC5ieC4hwor4LiB4Lil4Lix4LmJ4LiZ4LmD4LiICivguIHguKXguLHguJnguJcKK+C4geC4peC4seC4meC4l+C4geC5jAor4LiB4Lil4Lix4LiaCivguIHguKXguLHguJrguIHguKXguK3guIEKK+C4geC4peC4seC4muC4geC4peC4suC4ogor4LiB4Lil4Lix4Lia4LmA4LiB4Lil4Li34Lit4LiBCivguIHguKXguLHguJrguITguLMKK+C4geC4peC4seC4muC4hOC4t+C4mQor4LiB4Lil4Lix4Lia4LiV4Liy4Lil4Lib4Lix4LiV4LijCivguIHguKXguLHguJrguYDguJnguLfguYnguK3guIHguKXguLHguJrguJXguLHguKcKK+C4geC4peC4seC4muC5hOC4m+C4geC4peC4seC4muC4oeC4sgor4LiB4Lil4Lix4Lia4Lir4LiZ4LmJ4Liy4Lih4Li34Lit4LmA4Lib4LmH4LiZ4Lir4Lil4Lix4LiH4Lih4Li34LitCivguIHguKXguLHguKHguJ7guIEKK+C4geC4peC4seC4oeC4nuC4owor4LiB4Lil4Lix4Lih4Lie4Lix4LiBCivguIHguKXguLHguKcKK+C4geC4peC4seC5ieC4pwor4LiB4Lil4Lix4LmJ4Lin4LmA4LiB4Lil4Li14LmJ4LiiCivguIHguKXguLHguYnguKfguITguK0KK+C4geC4peC4seC4p+C4meC5ieC4swor4LiB4Lil4Lix4Lin4Lil4Liy4LiZCivguIHguKXguLIKK+C4geC4peC5iOC4sgor4LiB4Lil4LmJ4LiyCivguIHguKXguLLguIEKK+C4geC4peC4suC4geC4peC4suC4lAor4LiB4Lil4Liy4LiHCivguIHguKXguLLguIfguYDguIHguYjguLLguIHguKXguLLguIfguYPguKvguKHguYgKK+C4geC4peC4suC4h+C4hOC4mQor4LiB4Lil4Liy4LiH4LiE4Lix4LiZCivguIHguKXguLLguIfguITguYjguLMKK+C4geC4peC4suC4h+C4hOC4t+C4mQor4LiB4Lil4Liy4LiH4LmB4LiI4LmJ4LiHCivguIHguKXguLLguIfguYPguIjguKHguLfguK0KK+C4geC4peC4suC4h+C4iuC5ieC4suC4hwor4LiB4Lil4Liy4LiH4LiU4Li04LiZCivguIHguKXguLLguIfguJTguLbguIEKK+C4geC4peC4suC4h+C5gOC4lOC4t+C4reC4mQor4LiB4Lil4Liy4LiH4LiX4Liy4Liq4Li1CivguIHguKXguLLguIfguJnguK3guIEKK+C4geC4peC4suC4h+C4muC5ieC4suC4mQor4LiB4Lil4Liy4LiH4LmB4Lib4Lil4LiHCivguIHguKXguLLguIfguYDguKHguLfguK3guIcKK+C4geC4peC4suC4h+C4p+C4seC4mQor4LiB4Lil4Liy4LiH4Lir4Liy4LinCivguIHguKXguLLguJQKK+C4geC4peC4suC4lOC5gOC4geC4peC4t+C5iOC4reC4mQor4LiB4Lil4LmJ4Liy4LmE4LiU4LmJ4LiB4Lil4LmJ4Liy4LmA4Liq4Li14LiiCivguIHguKXguYnguLLguJnguLHguIHguKHguLHguIHguJrguLTguYjguJkKK+C4geC4peC4suC4muC4suC4lQor4LiB4Lil4Liy4LibCivguIHguKXguYnguLLguKEKK+C4geC4peC4suC4ogor4LiB4Lil4LmJ4Liy4LiiCivguIHguKXguLLguKLguIHguKXguK3guIEKK+C4geC4peC5iOC4suC4pwor4LiB4Lil4LmI4Liy4Lin4LmA4LiB4Lil4Li14LmJ4Lii4LiHCivguIHguKXguYjguLLguKfguILguKfguLHguI0KK+C4geC4peC5iOC4suC4p+C5guC4l+C4qQor4LiB4Lil4LmI4Liy4Lin4Lir4LiyCivguIHguKXguYjguLLguKfguYLguK3guKEKK+C4geC4peC4suC5guC4q+C4oQor4LiB4Lil4LmI4LizCivguIHguKXguYnguLMKK+C4geC4peC5ieC4s+C4geC4o+C4suC4ogor4LiB4Lil4LmJ4Liz4LiB4Lil4Li34LiZCivguIHguKXguLTguYjguIcKK+C4geC4peC4tOC5ieC4hwor4LiB4Lil4Li04LmJ4LiH4LiB4Lil4Lit4LiBCivguIHguKXguLTguYnguIfguIHguKXguLLguIfguJTguIcKK+C4geC4peC4tOC5ieC4h+C5gOC4geC4peC4t+C4reC4gQor4LiB4Lil4Li04LiH4LiE4LmMCivguIHguKXguLTguYnguIfguITguKPguIHguILguLbguYnguJnguYDguILguLIKK+C4geC4peC4tOC5ieC4h+C5gOC4m+C5h+C4meC4peC4ueC4geC4oeC4sOC4meC4suC4pwor4LiB4Lil4Li04LmI4LiZCivguIHguKXguLTguYjguJnguK3guLLguKIKK+C4geC4peC4tOC5ieC4oQor4LiB4Lil4Li1CivguIHguKXguLXguYgKK+C4geC4peC4teC4mgor4LiB4Lil4Li14Lia4LiV4LiyCivguIHguKXguLXguJrguJrguLHguKcKK+C4geC4peC4teC4muC4q+C4tOC4mQor4LiB4Lil4Li24LiHCivguIHguKXguLbguYnguIcKK+C4geC4peC4tuC4h+C4geC4peC5iOC4reC4oQor4LiB4Lil4Li24LiH4LiE4LmMCivguIHguKXguLfguJkKK+C4geC4peC4t+C4meC5hOC4oeC5iOC5gOC4guC5ieC4suC4hOC4suC4ouC5hOC4oeC5iOC4reC4reC4gQor4LiB4Lil4Li44LmI4LihCivguIHguKXguLjguYnguKEKK+C4geC4peC4uOC5ieC4oeC5g+C4iAor4LiB4Lil4Li44LmJ4Lih4Lij4Li44LihCivguIHguKXguLjguYnguKHguK3guIHguIHguKXguLjguYnguKHguYPguIgKK+C4geC4peC4ueC5iAor4LiB4Lil4Li54LmC4LiE4LiqCivguIHguKXguLnguJkKK+C4geC4peC4ueC4meC5jAor4LiB4LmA4Lil4Lin4Lij4LiwCivguIHguKfguJQKK+C4geC4p+C4lOC4guC4seC4mQor4LiB4Lin4LiZCivguIHguKfguJnguJnguYnguLPguYPguKvguYnguILguLjguYjguJkKK+C4geC4p+C4oQor4LiB4Lin4LiiCivguIHguKfguKLguIjguLHguYrguJoKK+C4geC4p+C4ouC4iOC4teC5igor4LiB4LmL4Lin4Lii4LmA4LiV4Li14LmL4Lii4LinCivguIHguKfguLAKK+C4geC4p+C4sOC4geC4p+C4seC4gQor4LiB4Lin4Liw4LmB4LiB4Lin4LmI4LiHCivguIHguKfguLHguIEKK+C4geC4p+C4seC4lAor4LiB4Lin4Lix4LiU4LmB4LiB4Lin4LmI4LiHCivguIHguKfguLHguJTguYTguIHguKcKK+C4geC4p+C4seC4lOC5hOC4geC4p+C5hOC4quC4quC5iOC4hwor4LiB4Lin4LiyCivguIHguKfguYjguLIKK+C4geC4p+C5ieC4sgor4LiB4Lin4Liy4LiHCivguIHguKfguYjguLLguIcKK+C4geC4p+C5ieC4suC4hwor4LiB4Lin4LmJ4Liy4LiH4LiC4Lin4Liy4LiHCivguIHguKfguLLguIfguYDguILguJkKK+C4geC4p+C4suC4h+C5geC4guC4oQor4LiB4Lin4Liy4LiH4LiI4Li44LiBCivguIHguKfguLLguIfguYLguIjguJkKK+C4geC4p+C5iOC4suC4h+C4iuC4mQor4LiB4Lin4Liy4LiH4LiK4Liw4Lih4LiUCivguIHguKfguYjguLLguIfguYLguIvguYnguIcKK+C4geC4p+C4suC4h+C5gOC4lOC4tOC4meC4lOC4hwor4LiB4Lin4Liy4LiH4LiV4Li44LmJ4LiHCivguIHguKfguLLguIfguJfguKPguLLguKIKK+C4geC4p+C4suC4h+C4l+C4reC4hwor4LiB4Lin4Liy4LiH4Lib4LmI4LiyCivguIHguKfguLLguIfguKHguYnguLIKK+C4geC4p+C5ieC4suC4h+C5g+C4q+C4jeC5iAor4LiB4Lin4LmI4Liy4LiK4Li34LmI4LiZCivguIHguKfguLLguJQKK+C4geC4p+C4suC4lOC4leC5ieC4reC4mQor4LiB4Lin4Liy4LiU4LiV4LiyCivguIHguKfguLLguJTguKXguYnguLLguIcKK+C4geC4p+C4suC4mQor4LiB4Lin4LmI4Liy4LiZCivguIHguKfguYnguLLguJkKK+C4geC4p+C5iuC4suC4mQor4LiB4Lin4LmI4Liy4LmA4Lie4Li34LmI4Lit4LiZCivguIHguKfguYnguLLguKcKK+C4geC4p+C4suC4p+C5gOC4hOC4o+C4t+C4rQor4LiB4Lin4Li04LiZCivguIHguKfguLUKK+C4geC4p+C4teC4meC4tOC4nuC4meC4mOC5jAor4LiB4Lip4LiT4LiwCivguIHguKnguKHguLIKK+C4geC4qeC4seC4leC4owor4LiB4Lip4Lix4LiV4Lij4LiyCivguIHguKnguLHguJXguKPguLLguJjguLTguKPguLLguIoKK+C4geC4qeC4seC4leC4o+C4tOC4ouC5jAor4LiB4Lip4Lix4LiV4Lij4Li04Lii4LiK4Liy4LiV4Li0CivguIHguKnguLHguJXguKPguLUKK+C4geC4qeC4seC4leC4o+C4teC4ouC5jAor4LiB4Lip4Lix4LiV4Lij4Li14Lio4Li54LijCivguIHguKnguLHguKIKK+C4geC4qeC4seC4oi0KK+C4geC4qeC4seC4ouC4geC4peC5iOC4reC4mQor4LiB4Lip4Lix4Lii4LiB4Liy4LijCivguIHguKnguLHguKLguJnguYnguLMKK+C4geC4qeC4seC4ouC5gOC4peC4t+C4reC4lAor4LiB4Lip4Liy4Lib4LiT4LmMCivguIHguKnguLTguJTguLQKK+C4geC4qeC4teC4k+C4suC4qOC4o+C4ngor4LiB4Lip4Li14LiU4Li0CivguIHguKnguLXguKMKK+C4geC4qeC4teC4oy0KK+C4geC4qeC4teC4o+C4mOC4suC4o+C4sgor4LiB4Lip4Li14Lij4Lij4LiqCivguIHguKnguLXguKPguLLguKHguJ7guLgKK+C4geC4qeC4teC4o+C4suC4o+C4k+C4ngor4LiB4Liq4Liy4LiZ4LiV4Li04LmMCivguIHguKrguLQKK+C4geC4quC4tOC4geC4owor4LiB4Liq4Li04LiB4Lij4Lij4LihCivguIHguKrguLTguJMKK+C4geC4q+C4seC4h+C4m+C4suC4ouC4sgor4LiBIOC4q+C4seC4mQor4LiB4Lir4Liy4Lib4LiT4LiwCivguIHguYfguYHguKvguKXguLAKK+C4geC5gOC4rOC4p+C4o+C4suC4gQor4LiB4LitCivguIHguYjguK0KK+C4geC5ieC4rQor4LiB4LmK4LitCivguIHguK3guIEKK+C4geC5iuC4reC4gQor4LiB4LmI4Lit4LiB4Lij4Lij4Lih4LiX4Liz4LmA4LiC4LmH4LiNCivguIHguYjguK3guIHguKfguJkKK+C4geC5iOC4reC4geC4suC4owor4LiB4Lit4LmB4LiBCivguIHguK3guIcKK+C4geC5iOC4reC4hwor4LiB4LmJ4Lit4LiHCivguIHguK3guIfguIHguKXguLLguIcKK+C4geC4reC4h+C4geC4reC4ogor4LiB4Lit4LiH4LiB4Li54LiT4LiR4LmMCivguIHguK3guIfguYDguIHguLTguJkKK+C4geC4reC4h+C5gOC4geC4teC4ouC4o+C4leC4tOC4ouC4qAor4LiB4Lit4LiH4LiC4LmJ4Liy4LinCivguIHguK3guIfguYLguIjguKMKK+C4geC4reC4h+C4l+C4seC4ngor4LiB4Lit4LiH4LiX4Lix4Lie4LiZ4LmJ4Lit4LiiCivguIHguK3guIfguJfguLjguJkKK+C4geC4reC4h+C4nuC4pQor4LiB4Lit4LiH4Lie4Lix4LiZCivguIHguK3guIfguJ/guK3guJkKK+C4geC4reC4h+C4oeC4o+C4lOC4gQor4LiB4Lit4LiH4Lij4LmJ4Lit4LiiCivguIHguK3guIfguKvguJnguLjguJkKK+C4geC4reC4iwor4LiB4Lit4LiUCivguIHguK3guJTguYHguILguYnguIfguIHguK3guJTguILguLIKK+C4geC4reC4lOC4oeC4t+C4reC4geC4reC4lOC4leC4teC4mQor4LiB4Lit4LiU4Lit4LiBCivguIHguYjguK3guJXguLHguYnguIcKK+C4geC5iOC4reC4mQor4LiB4LmJ4Lit4LiZCivguIHguYnguK3guJnguILguLXguYnguKvguKHguLIKK+C4geC5ieC4reC4meC5gOC4quC5ieC4sgor4LiB4Lit4LiaCivguIHguK3guJrguYLguIHguKIKK+C4geC4reC4muC4lOC5ieC4p+C4ogor4LiB4Lit4Lia4LiZ4Liy4LiHCivguIHguYrguK3guJrguJvguLXguYkKK+C4geC4reC4m+C4owor4LiB4LmJ4Lit4LihCivguIHguK3guKHguIHguYnguK0KK+C4geC5iOC4reC4oeC4geC5ieC4rQor4LiB4Lit4LiiCivguIHguYnguK3guKIKK+C4geC5i+C4reC4ogor4LiB4LmJ4Lit4Lij4LmI4LitCivguIHguYnguK3guKPguYjguK3guIHguYnguK3guJXguLTguIEKK+C4geC5iOC4reC4o+C5iOC4suC4h+C4quC4o+C5ieC4suC4h+C4leC4seC4pwor4LiB4Lit4Lij4Li04Lil4Lil4LiyCivguIHguYjguK3guKTguIHguKnguYwKK+C4geC4reC4peC5jOC4nwor4LiB4LmI4Lit4LmB4Lil4LmJ4Lin4LiV4LmJ4Lit4LiH4Liq4Liy4LiZCivguIHguK3guYHguKXguLAKK+C4geC5iOC4reC4quC4o+C5ieC4suC4hwor4LiB4LmI4Lit4Lir4Lin4Lit4LiUCivguIHguK3guYDguK3guLXguYrguKLguLAKK+C4geC4sAor4LiB4Liw4LiB4Lij4LmI4Lit4LihCivguIHguLDguIHguKPguYnguLLguKcKK+C4geC4sOC4geC4peC4tOC5ieC4hwor4LiB4Liw4LiB4LmI4Lit4LiHCivguIHguLDguIHguLHguIcKK+C4geC4sOC4geC4tuC4gQor4LiB4Liw4LmA4LiB4LiT4LiR4LmMCivguIHguLDguYDguIHguLLguLAKK+C4geC4sOC5guC4geC4o+C4sAor4LiB4Liw4LiH4LmJ4Lit4LiZ4LiB4Liw4LmB4LiH4LmJ4LiZCivguIHguLDguIjguLHguIcKK+C4geC4sOC5geC4iOC4sAor4LiB4Liw4LiK4LiwCivguIHguLDguIrguLHguIcKK+C4geC4sOC4iuC4suC4oeC4suC4qAor4LiB4Liw4LiK4Li04LiHCivguIHguLDguIrguLbguYjguIHguIHguLDguIrguLHguYjguIEKK+C4geC4sOC5geC4iuC5iAor4LiB4Liw4LiL4Lin4LiBCivguIHguLDguIvguYnguLLguKvguK3guKIKK+C4geC4sOC4i+C4teC5iAor4LiB4Liw4LmC4LiL4LmICivguIHguLDguYLguIvguYkKK+C4geC4sOC4lOC4gQor4LiB4Liw4LiU4LiHCivguIHguLDguJTguKfguJkKK+C4geC4sOC4lOC4reC4geC5hgor4LiB4Liw4LiU4LiwCivguIHguLDguJTguLHguIfguJrguLLguKIKK+C4geC4sOC4lOC4seC4lAor4LiB4Liw4LiU4LmJ4Liy4LiHCivguIHguLDguJTguLPguIHguLDguJTguYjguLLguIcKK+C4geC4sOC4lOC4tQor4LiB4Liw4LiU4Li14LmICivguIHguLDguJTguLjguYnguIcKK+C4geC4sOC5gOC4lOC5iQor4LiB4Liw4LmA4LiU4LiBCivguIHguLDguYDguJTguLXguYvguKLguKcKK+C4geC4sOC5hOC4lAor4LiB4Liw4LiV4Lij4Li44LiUCivguIHguLDguJXguK3guIEKK+C4geC4sOC4leC5iOC4reC4ogor4LiB4Liw4LiV4Lix4LiBCivguIHguLDguJXguLHguIcKK+C4geC4sOC4leC4seC4h+C4geC4sOC4leC4tOC5ieC4pwor4LiB4Liw4LiV4Lix4LiH4LmD4LiaCivguIHguLDguJXguLHguIfguKHguLnguJXguKMKK+C4geC4sOC4leC5iOC4sgor4LiB4Liw4LiV4LmK4Liy4LiBCivguIHguLDguJXguYnguLMKK+C4geC4sOC4leC4tOC5iuC4geC4o+C4tOC4gQor4LiB4Liw4LiV4Li04LiH4LiB4Liw4LmB4LiV4LiHCivguIHguLDguJXguLXguJoKK+C4geC4sOC4leC4tuC4h+C4geC4sOC5geC4leC4hwor4LiB4Liw4LiV4Li44LmK4LiBCivguIHguLDguJXguLjguJQKK+C4geC4sOC4leC4uOC4oeC4uQor4LiB4Liw4LiV4Li54LiBCivguIHguLDguYDguJXguIEKK+C4geC4sOC5gOC4leC4h+C5hgor4LiB4Liw4LmA4LiV4LiH4LmA4Lij4LiHCivguIHguLDguYHguJXguKcKK+C4geC4sOC5geC4leC5iOC4pwor4LiB4Liw4LmC4LiV4LmK4LiBCivguIHguLDguYLguJXguIfguIHguLDguYDguJXguIcKK+C4geC4sOC5guC4leC5ieC4h+C5guC4q+C5iOC4hwor4LiB4Liw4LiW4Lix4LinCivguIHguLDguJfguIHguKPguIEKK+C4geC4sOC4l+C4rQor4LiB4Liw4LiX4Lix4LiHCivguIHguLDguJfguLHguIfguKvguLHguJkKK+C4geC4sOC4l+C4seC4lOC4o+C4seC4lAor4LiB4Liw4LiX4Lix4LiZCivguIHguLDguJfguLHguJnguKvguLHguJkKK+C4geC4sOC4l+C4seC4mgor4LiB4Liw4LiX4LizCivguIHguLDguJfguLQKK+C4geC4sOC4l+C4tOC4guC4ueC4lAor4LiB4Liw4LiX4Li34LitCivguIHguLDguJfguLjguJkKK+C4geC4sOC5gOC4l+C4ogor4LiB4Liw4LmA4LiX4Lii4LiZ4Liy4LiH4Lir4Lih4Lix4LmI4LiZCivguIHguLDguYDguJfguLLguLAKK+C4geC4sOC5geC4l+C5iQor4LiB4Liw4LmB4LiX4LmI4LiHCivguIHguLDguYHguJfguJkKK+C4geC4sOC4meC4p+C4pQor4LiB4Liw4LiZ4Lix4LiUCivguIHguLDguJrguK3guJnguIHguLDguJrguLbguIcKK+C4geC4sOC4muC5iOC4reC4meC4geC4sOC5geC4muC5iOC4mQor4LiB4Liw4Lia4Lix4LiHCivguIHguLDguJrguLHguYnguIcKK+C4geC4sOC4muC4seC4h+C4o+C4seC4h+C5gOC4neC4t+C4reC4gQor4LiB4Liw4Lia4Lix4LiH4Lil4LihCivguIHguLDguJrguLHguIfguKvguJnguYnguLIKK+C4geC4sOC4muC4tOC5ieC4hwor4LiB4Liw4Lia4Li04LilCivguIHguLDguJrguLbguIfguIHguLDguJrguK3guJkKK+C4geC4sOC4muC4uOC4lAor4LiB4Liw4LmA4Lia4LmJ4LitCivguIHguLDguYDguJrguLXguKLguJkKK+C4geC4sOC5gOC4muC4t+C4rQor4LiB4Liw4Lib4Lij4Li04LiU4LiB4Liw4Lib4Lij4Lit4LiiCivguIHguLDguJvguKPguLTguJoKK+C4geC4sOC4m+C4o+C4tOC4muC4geC4sOC4m+C4o+C4reC4ogor4LiB4Liw4Lib4Lil4LiB4LiB4Liw4LmA4Lib4Lil4Li14LmJ4LiiCivguIHguLDguJvguKfguIHguIHguLDguYDguJvguLXguKLguIEKK+C4geC4sOC4m+C4reC4oQor4LiB4Liw4Lib4Lit4Lih4LiC4Liy4LiHCivguIHguLDguJvguLAKK+C4geC4sOC4m+C4seC5iOC4mQor4LiB4Liw4Lib4LmJ4Liz4LiB4Liw4LmA4Lib4LmL4LitCivguIHguLDguJvguLQKK+C4geC4sOC4m+C4uQor4LiB4Liw4Lib4Li54LiUCivguIHguLDguJvguLnguJTguKvguKXguLnguJQKK+C4geC4sOC5gOC4m+C4sAor4LiB4Liw4LmA4Lib4Li04LmK4Lia4LiB4Liw4Lib4LmK4Liy4LiaCivguIHguLDguYDguJvguLXguKLguJQKK+C4geC4sOC5geC4m+C5ieC4mQor4LiB4Liw4LmB4Lib4LiwCivguIHguLDguYLguJvguKPguIcKK+C4geC4sOC5guC4m+C5guC4pQor4LiB4Liw4Lic4Lil4Li44Lia4LiB4Liw4LmC4Lic4Lil4LmICivguIHguLDguYDguJzguYjguJkKK+C4geC4sOC5gOC4nOC4peC4gQor4LiB4Liw4LmC4Lic4Lil4LiB4LiB4Liw4LmA4Lic4Lil4LiBCivguIHguLDguJ7guIcKK+C4geC4sOC4nuC4o+C4p+C4lOC4geC4sOC4nuC4o+C4suC4lAor4LiB4Liw4Lie4Lij4LmI4Lit4LiH4LiB4Liw4LmB4Lie4Lij4LmI4LiHCivguIHguLDguJ7guKPguLTguJoKK+C4geC4sOC4nuC4o+C4uOC4mQor4LiB4Liw4Lie4Lij4Li54LiU4LiB4Liw4Lie4Lij4Liy4LiUCivguIHguLDguJ7guKXguYnguK0KK+C4geC4sOC4nuC4peC5iOC4reC4h+C4geC4sOC5geC4nuC4peC5iOC4hwor4LiB4Liw4Lie4LmJ4LitCivguIHguLDguYDguJ7guKPguLIKK+C4geC4sOC5gOC4nuC4teC4ouC4lAor4LiB4Liw4LmA4Lie4Li14Lii4LiU4LiK4LmJ4Liy4LiHCivguIHguLDguYDguJ7guLXguKLguJTguKvguJnguLkKK+C4geC4sOC4oeC4hwor4LiB4Liw4Lih4LmI4LiHCivguIHguLDguYDguKHguYfguIcKK+C4geC4sOC5gOC4oeC5h+C4h+C4leC4seC4p+C4nOC4ueC5iQor4LiB4Liw4LmA4Lih4Li14LiiCivguIHguLDguKLguLgKK+C4geC4sOC4o+C5iOC4reC4h+C4geC4sOC5geC4o+C5iOC4hwor4LiB4Liw4Lij4Liw4LiV4LiwCivguIHguLDguKPguLDguKvguJnguLAKK+C4geC4sOC4o+C4seC4hwor4LiB4Liw4Lij4Lix4LiVCivguIHguLDguKPguLHguJXguKvguKXguKfguIcKK+C4geC4sOC4o+C4suC4hwor4LiB4Liw4Lij4Liy4LiH4Lir4Lix4Lin4LiC4Lin4Liy4LiZCivguIHguLDguKPguLTguIcKK+C4geC4sOC4o+C4tOC4h+C4geC4sOC5gOC4o+C4teC4ouC4lAor4LiB4Liw4Lij4Li44LiH4LiB4Liw4Lij4Lix4LiHCivguIHguLDguKPguLjguYjguIfguIHguLDguKPguLTguYjguIcKK+C4geC4sOC4o+C4uOC4mQor4LiB4Liw4LmA4LijCivguIHguLDguYDguKPguIHguLDguKPguYjguK3guJkKK+C4geC4sOC5gOC4o+C5iOC4geC4sOC4o+C5iOC4reC4mQor4LiB4Liw4LmA4Lij4LmI4LitCivguIHguLDguYDguKPguYjguK3guIHguLDguKPguYjguLIKK+C4geC4sOC5gOC4o+C4teC5iOC4ouC4geC4sOC4o+C4suC4lAor4LiB4Liw4LmC4Lij4LiB4Liw4LmA4LijCivguIHguLDguKXguKfguKIKK+C4geC4sOC4peC4rQor4LiB4Liw4Lil4LmI4Lit4LiB4Liw4LmB4Lil4LmICivguIHguLDguKXguK3guIjguLXguYoKK+C4geC4sOC4peC5iOC4reC4mQor4LiB4Liw4Lil4LmI4Lit4Lih4LiB4Liw4LmB4Lil4LmI4LihCivguIHguLDguKXguYjguK3guKLguIHguLDguKvguKXguLTguJoKK+C4geC4sOC4peC4sOC4m+C4seC4h+C4q+C4sgor4LiB4Liw4Lil4Liw4Lih4Lix4LiHCivguIHguLDguKXguLDguYHguKEKK+C4geC4sOC4peC4sOC4reC4reC4oQor4LiB4Liw4Lil4Lix4LiH4LiV4Lix4LiH4LmE4LiB4LmICivguIHguLDguKXguLHguJkKK+C4geC4sOC4peC4seC4meC4l+C4sgor4LiB4Liw4Lil4LiyCivguIHguLDguKXguLLguIcKK+C4geC4sOC4peC4suC4i+C4rQor4LiB4Liw4Lil4Liy4Liq4Li1CivguIHguLDguKXguLPguJ7guK0KK+C4geC4sOC4peC4tOC4hwor4LiB4Liw4Lil4Li04LiH4Lib4Lil4Li04LiHCivguIHguLDguKXguLTguYnguKHguIHguLDguYDguKvguKXguLXguYjguKIKK+C4geC4sOC4peC4tOC4reC5iOC4reC4hwor4LiB4Liw4Lil4Li44Lih4Lie4Li1CivguIHguLDguYDguKXguYfguIcKK+C4geC4sOC5gOC4peC5iOC4reC4geC4sOC4peC5iOC4sgor4LiB4Liw4LmA4Lil4Li04LiUCivguIHguLDguYDguKXguLXguKLguKcKK+C4geC4sOC5geC4pQor4LiB4Liw4LmC4Lil4LmICivguIHguLDguYLguKXguIcKK+C4geC4sOC4p+C4reC4geC4geC4sOC5geC4p+C4gQor4LiB4Liw4Lin4LiwCivguIHguLDguKrguYnguKHguIrguLfguYjguJkKK+C4geC4sOC4quC5ieC4suC4q+C4reC4ogor4LiB4Liw4Lir4LiZ4Lit4LiB4Liw4LmB4Lir4LiZCivguIHguLDguKvguJnguYfguK3guIfguIHguLDguYHguKvguJnguYfguIcKK+C4geC4sOC4q+C4meC4sAor4LiB4Liw4Lir4LiZ4Li44LiH4LiB4Liw4Lir4LiZ4Li04LiHCivguIHguLDguKvguKHguK3guIEKK+C4geC4sOC4q+C4o+C5iOC4reC4hwor4LiB4Liw4Lir4Lij4Lit4LiUCivguIHguLDguKvguKPguYfguK3guKHguIHguLDguYHguKvguKPguYfguKEKK+C4geC4sOC4q+C4o+C4suC4mQor4LiB4Liw4Lir4Lij4Li14LmICivguIHguLDguKvguKPguLXguYjguJvguLHguYrguJoKK+C4geC4sOC4q+C4peC4suC4m+C5i+C4sgor4LiB4Liw4Lir4Lil4LmI4LizCivguIHguLDguKvguKXguLXguYgKK+C4geC4sOC4q+C4peC4teC4geC4sOC4q+C4peC4rQor4LiB4Liw4Lir4Lil4Li44LiB4LiB4Liw4Lir4Lil4Li04LiBCivguIHguLDguKvguLMKK+C4geC4sOC4q+C4s+C5geC4nuC4sAor4LiB4Liw4Lir4Li34LitCivguIHguLDguKvguLnguJQKK+C4geC4sOC5gOC4q+C4o+C4teC5iOC4ouC4hwor4LiB4Liw4LmA4Lir4Lil4Liy4Liw4LmA4Lib4Liy4LiwCivguIHguLDguYHguKvguKLguIEKK+C4geC4sOC5geC4q+C4sAor4LiB4Liw4LmC4Lir4Lil4LiBCivguIHguLDguYLguKvguKXguYnguIcKK+C4geC4sOC5hOC4q+C4peC5iAor4LiB4Liw4Lit4Lin4LihCivguIHguLDguK3guK3guKEKK+C4geC4sOC4reC4suC4mQor4LiB4Liw4Lit4Liy4LihCivguIHguLDguK3guLTguJQKK+C4geC4sOC4reC4uOC4mgor4LiB4Liw4LmA4Lit4LinCivguIHguLDguYHguK0KK+C4geC4sOC5geC4reC4mQor4LiB4Lix4LiBCivguIHguLHguYrguIEKK+C4geC4seC4geC4geC4o+C4sgor4LiB4Lix4LiB4LiB4Lix4LiZCivguIHguLHguIHguIHguLLguKPguLgKK+C4geC4seC4geC4guC4rOC4sAor4LiB4Lix4LiB4LiC4Lix4LiHCivguIHguLHguIHguITguLjguKEKK+C4geC4seC4geC4lOC5iOC4suC4mQor4LiB4Lix4LiB4LiV4Lix4LinCivguIHguLHguIHguJXguLjguJkKK+C4geC4seC4geC4muC4o+C4tOC5gOC4p+C4kwor4LiB4Lix4LiHCivguIHguLHguYnguIcKK+C4geC4seC4h+C4gQor4LiB4Lix4LmJ4LiH4LiB4Lij4Liw4LiU4Liy4LiZCivguIHguLHguIfguIHguYnguLIKK+C4geC4seC4h+C5gOC4geC4teC4ouC4hwor4LiB4Lix4LiH4LiC4LiyCivguIHguLHguIfguInguLTguJkKK+C4geC4seC4h+C4n+C4uQor4LiB4Lix4LiH4Lin4LilCivguIHguLHguIfguKfguLLguJkKK+C4geC4seC4h+C5gOC4p+C4teC4ouC4mQor4LiB4Lix4LiH4LiqCivguIHguLHguIfguKrguJTguLLguKUKK+C4geC4seC4h+C5hOC4qgor4LiB4Lix4LiH4Lir4Lix4LiZCivguIHguLHguIfguKvguLHguJnguYPguJrguJ7guLHguJQKK+C4geC4seC4h+C4q+C4seC4meC5hOC4reC4nuC5iOC4mQor4LiB4Lix4LiI4LiJ4Lib4LiwCivguIHguLHguIjguInguLAKK+C4geC4seC4iOC4ieC4sgor4LiB4Lix4LiNCivguIHguLHguI3guIjguLjguIEKK+C4geC4seC4jeC4iOC4uOC4geC4suC4o+C4sgor4LiB4Lix4LiN4LiK4LiyCivguIHguLHguI3guI3guLIKK+C4geC4seC4kAor4LiB4Lix4LiT4LiP4LiB4LiwCivguIHguLHguJPguJAtCivguIHguLHguJPguJDguIEKK+C4geC4seC4k+C4kOC4geC4sAor4LiB4Lix4LiT4LiQ4LiK4LiwCivguIHguLHguJPguJDguLHguKgKK+C4geC4seC4k+C4kOC4seC4qOC4p+C5jAor4LiB4Lix4LiT4LiQ4LiyCivguIHguLHguJPguJDguLUKK+C4geC4seC4k+C4keC5jAor4LiB4Lix4LiT4LiR4LmM4LmA4LiX4Lio4LiZ4LmMCivguIHguLHguJPguJPguYwKK+C4geC4seC4k+C4qy0KK+C4geC4seC4k+C4q+C4mOC4o+C4o+C4oQor4LiB4Lix4LiT4Lir4Lib4Lix4LiB4Lip4LmMCivguIHguLHguJQKK+C4geC4seC4lOC4m+C5iOC4sgor4LiB4Lix4LiU4Lif4Lix4LiZCivguIHguLHguJTguKXguLLguIEKK+C4geC4seC4lOC4p+C4suC4hwor4LiB4Lix4LiU4Lir4Liy4LiH4LiV4Lix4Lin4LmA4Lit4LiHCivguIHguLHguJXguJXguLTguIHguKHguLLguKoKK+C4geC4seC4leC4leC4tOC4geC4sgor4LiB4Lix4LiV4LiV4Li04LmA4LiB4Lii4LiyCivguIHguLHguJXguKPguJfguLHguJPguJHguYwKK+C4geC4seC4leC4o+C4sgor4LiB4Lix4LiX4Lil4Li1CivguIHguLHguJkKK+C4geC4seC5iOC4mQor4LiB4Lix4LmJ4LiZCivguIHguLHguJnguIHguIcKK+C4geC4seC5ieC4meC4geC4suC4hwor4LiB4Lix4LiZ4LmA4LiB4Lij4LiyCivguIHguLHguJnguYTguIHguKMKK+C4geC4seC4meC5gOC4guC4suC4geC4seC4meC5gOC4o+C4sgor4LiB4Lix4LiZ4LiK4LiZCivguIHguLHguJnguIrguLTguIcKK+C4geC4seC4meC4iuC4teC4ngor4LiB4Lix4LiZ4LmA4LiK4LitCivguIHguLHguYnguJnguIvguLnguYgKK+C4geC4seC4meC5geC4i+C4hwor4LiB4Lix4LiZ4LiU4Lit4LiHCivguIHguLHguJnguJTguLLguKMKK+C4geC4seC4meC4lOC4suC4pQor4LiB4Lix4LiZ4LmB4LiU4LiUCivguIHguLHguJnguYTguJQKK+C4geC4seC4meC4leC5jAor4LiB4Lix4LiZ4LiV4Lix4LiHCivguIHguLHguJnguJXguLHguKcKK+C4geC4seC4meC5hOC4leC4owor4LiB4Lix4LiZ4LiX4LijCivguIHguLHguJnguJfguKPguLLguIHguKMKK+C4geC4seC4meC4l+C4sAor4LiB4Lix4LiZ4LiX4LmI4LiyCivguIHguLHguJnguYHguJfguKPguIEKK+C4geC4seC5ieC4meC4muC4seC4hwor4LiB4Lix4LiZ4Lie4Li04Lij4Li44LiTCivguIHguLHguJnguKDguLHguKIKK+C4geC4seC4meC4oOC4tOC4o+C4oeC4ouC5jAor4LiB4Lix4LiZ4LmA4Lih4Li14Lii4LiHCivguIHguLHguJnguKLguYwKK+C4geC4seC4meC4ouC4sgor4LiB4Lix4LiZ4Lii4Liy4Lii4LiZCivguIHguLHguJnguKXguIcKK+C4geC4seC4meC4peC4reC4hwor4LiB4Lix4LiZ4Lil4Li24LiHCivguIHguLHguJnguYHguKXguLDguIHguLHguJkKK+C4geC4seC4meC4quC4suC4lAor4LiB4Lix4LiZ4LmB4Liq4LiHCivguIHguLHguYnguJnguKvguKLguLHguYjguJkKK+C4geC4seC4meC5gOC4reC4hwor4LiB4Lix4LiZ4LmA4Lit4LiyCivguIHguLHguJoKK+C4geC4seC4muC5geC4geC5iQor4LiB4Lix4Lia4LmB4LiB4Lil4LmJ4LihCivguIHguLHguJrguILguYnguLLguKcKK+C4geC4seC4muC4muC4uOC5gOC4o+C4qAor4LiB4Lix4Lia4Lij4Liw4LmA4Lia4Li04LiUCivguIHguLHguJsKK+C4geC4seC4m+C4leC4seC4mQor4LiB4Lix4Lib4LiZ4LiBCivguIHguLHguJvguJrguLLguKrguLTguIEKK+C4geC4seC4m+C4m+C4suC4quC4tOC4gQor4LiB4Lix4Lib4Lib4Li04LiiLQor4LiB4Lix4Lib4Lib4Li04Lii4LiB4Liy4Lij4LiBCivguIHguLHguJvguJvguLTguKLguKDguLHguJPguJHguYwKK+C4geC4seC4m+C4m+C4tOC4ouC5guC4p+C4q+C4suC4owor4LiB4Lix4Lib4Lib4Li04Lii4LiwCivguIHguLHguJvguJvguLXguKLguYwKK+C4geC4seC4oeC4muC4mQor4LiB4Lix4Lih4LibLQor4LiB4Lix4Lih4Lib4LiZLQor4LiB4Lix4Lih4Lib4LiZ4Liy4LiB4Liy4LijCivguIHguLHguKHguJvguJnguLLguJcKK+C4geC4seC4oeC4m+C4o+C4sOC5guC4lAor4LiB4Lix4Lih4Lib4Li1CivguIHguLHguKHguJ7guKUKK+C4geC4seC4oeC4nuC4uOC4igor4LiB4Lix4Lih4Lie4Li44LiKLQor4LiB4Lix4Lih4Lie4Li44LiK4Lie4Liy4LiB4Lii4LmMCivguIHguLHguKHguJ7guLkKK+C4geC4seC4oeC4nuC4ueC4iuC4sgor4LiB4Lix4Lih4LmC4Lie4LiKCivguIHguLHguKHguKHguLHguIrguKfguLLguJUKK+C4geC4seC4oeC4oeC4seC4j+C4kOC4suC4mQor4LiB4Lix4Lih4Lih4Lix4LiZ4LiV4Lig4Liy4Lie4Lij4Lix4LiH4Liq4Li1CivguIHguLHguKHguKHguLHguJnguJXguKPguLHguIfguKrguLUKK+C4geC4seC4oeC4oeC4suC4owor4LiB4Lix4Lih4Lil4Liy4LioCivguIHguLHguKLguKfguLTguIHguLHguKIKK+C4geC4seC4peC4iuC4suC4jQor4LiB4Lix4Lil4Lia4LiBCivguIHguLHguKXguJstCivguIHguLHguKXguJvguYwKK+C4geC4seC4peC4m+C4meC4sgor4LiB4Lix4Lil4Lib4Lie4Lik4LiB4Lip4LmMCivguIHguLHguKXguJvguLHguIfguKvguLIKK+C4geC4seC4peC4m+C4suC4p+C4quC4suC4mQor4LiB4Lix4Lil4Lib4Li04LiVCivguIHguLHguKXguJ7guLjguKEKK+C4geC4seC4peC5gOC4oeC5h+C4lAor4LiB4Lix4Lil4Lii4LiyCivguIHguLHguKXguKLguLLguJMtCivguIHguLHguKXguKLguLLguJPguKHguLTguJXguKMKK+C4geC4seC4peC4ouC4suC4k+C4tQor4LiB4Lix4Lil4Lii4Liy4LmA4Lii4Li14LmI4Lii4Lih4Lir4LmJ4Lit4LiHCivguIHguLHguKXguYDguKfguYnguLIKK+C4geC4seC4peC4q+C4suC4ogor4LiB4Lix4Lil4LmC4Lir4LiiCivguIHguLHguKXguK3guK3guKEKK+C4geC4seC4peC5gOC4reC4sgor4LiB4Lix4Lio4Lih4LilCivguIHguLHguKjguKLguJsKK+C4geC4seC4qeC4kwor4LiB4LiyCivguIHguYvguLIKK+C4geC4suC4gQor4LiB4Liy4LiBLQor4LiB4Liy4LiB4LiB4Liw4Lij4Li44LiZCivguIHguLLguIHguILguKLguLLguIEKK+C4geC4suC4geC4guC5ieC4suC4pwor4LiB4Liy4LiB4LiE4LiV4Li0CivguIHguLLguIHguJPguLbguIEKK+C4geC4suC4geC4muC4suC4lwor4LiB4Liy4LiB4LmA4Lie4LiK4LijCivguIHguLLguIHguKDguLLguKnguLIKK+C4geC4suC4geC4o+C4uOC4mQor4LiB4Liy4LiB4Lir4Lih4Li5CivguIHguLLguIHguLDguJfguLTguIcKK+C4geC4suC4geC4sOC5gOC4ouC4teC4ogor4LiB4LmL4Liy4LiB4Lix4LmI4LiZCivguIHguLLguIHguLUKK+C4geC4suC4geC4teC5geC4geC4oeC5gOC4guC4teC4ouC4pwor4LiB4Liy4LiE4Liy4Lia4Lie4Lij4Li04LiBCivguIHguLLguIcKK+C4geC5ieC4suC4hwor4LiB4Liy4LiH4LmA4LiB4LiHCivguIHguLLguIfguYDguIHguLXguKLguIcKK+C4geC5ieC4suC4h+C4guC4p+C4suC4h+C4hOC4rQor4LiB4Liy4LiH4LiC4Lit4LiHCivguIHguLLguIfguILguLXguYnguKHguK3guJQKK+C4geC4suC4h+C5gOC4guC4mQor4LiB4LmJ4Liy4LiH4Lib4Lil4LiyCivguIHguLLguIfguYDguKfguLXguKLguJkKK+C4geC4suC4iOC4seC4muC4q+C4peC4seC4gQor4LiB4Liy4LiK4Liy4LiUCivguIHguYrguLLguIsKK+C4geC5iuC4suC4i+C5hOC4guC5iOC5gOC4meC5iOC4sgor4LiB4LmK4Liy4LiL4LmA4LiJ4Li34LmI4Lit4LiiCivguIHguYrguLLguIvguJnguYnguLPguJXguLIKK+C4geC4suC4i+C4sOC4peC4reC4hwor4LiB4Liy4LiL4Liw4Lil4Lit4LiH4LiE4LizCivguIHguLLguI3guIjguJktCivguIHguLLguI3guIjguJnguLIKK+C4geC4suC4kAor4LiB4Liy4LiUCivguIHguYrguLLguJQKK+C4geC4suC4mQor4LiB4LmI4Liy4LiZCivguIHguYnguLLguJkKK+C4geC5iuC4suC4mQor4LiB4LmJ4Liy4LiZ4LiC4LiUCivguIHguYnguLLguJnguYHguILguYfguIcKK+C4geC5ieC4suC4meC4hOC4rQor4LiB4Liy4LiZ4LiU4LiyCivguIHguLLguJnguJXguYwKK+C4geC5ieC4suC4meC4leC4reC4hwor4LiB4LmJ4Liy4LiZ4LiV4LmI4Lit4LiU4Lit4LiBCivguIHguLLguJnguJfguYwKK+C4geC4suC4meC4mQor4LiB4LmJ4Liy4LiZ4Lia4Lix4LinCivguIHguYnguLLguJnguJ7guKPguYnguLLguKcKK+C4geC4suC4meC4nuC4peC4uQor4LiB4LmJ4Liy4LiZ4Lih4Liw4Lie4Lij4LmJ4Liy4LinCivguIHguYnguLLguJnguKLguLLguKcKK+C4geC5ieC4suC4meC5geC4ouC5iOC4hwor4LiB4LmJ4Liy4LiZ4LmA4Lir4Lil4Li34Lit4LiHCivguIHguLLguJnguYnguLIKK+C4geC4suC4meC5ieC4swor4LiB4Liy4LiaCivguIHguYnguLLguJrguYYKK+C4geC4suC4muC4geC4teC5iQor4LiB4Liy4Lia4LmA4LiC4Li14Lii4LiHCivguIHguLLguJrguITguLnguYgKK+C4geC4suC4muC5gOC4lOC4teC4ouC4pwor4LiB4Liy4Lia4LmA4LiU4Li14LmI4Lii4LinCivguIHguLLguJrguJnguYnguLPguIjguLfguJQKK+C4geC4suC4muC4muC4seC4pwor4LiB4Liy4Lia4Lib4Li54LmA4LilCivguIHguLLguJrguJ7guKPguKvguKHguKjguKMKK+C4geC4suC4muC4q+C4reC4ogor4LiB4Liy4Lia4Li44Lij4Li44LipCivguIHguLLguJrguLkKK+C4geC4suC5gOC4m+C4teC5ieC4ouC4lAor4LiB4Liy4Lid4Liy4LiBCivguIHguLLguJ7guKLguYwKK+C4geC4suC4nuC4ouC5jOC4geC4peC4reC4mQor4LiB4Liy4Lif4Lix4LiB4LmE4LiC4LmICivguIHguLLguYDguJ/guK3guLXguJkKK+C4geC4suC5geC4nwor4LiB4Liy4LihCivguIHguLLguKEtCivguIHguYnguLLguKEKK+C4geC5ieC4suC4oeC4geC4o+C4suC4oQor4LiB4Liy4Lih4LiB4Lij4Li14LiR4LiyCivguIHguLLguKHguIHguLTguIgKK+C4geC5ieC4suC4oeC4geC4uOC5ieC4hwor4LiB4LmJ4Liy4Lih4LmA4LiB4Lil4Li14LmJ4Lii4LiHCivguIHguLLguKHguITguLjguJMKK+C4geC4suC4oeC4ieC4seC4meC4l+C5jAor4LiB4LmJ4Liy4Lih4LiU4Liy4LiaCivguIHguLLguKHguJXguLHguJPguKvguLIKK+C4geC4suC4oeC4ly0KK+C4geC4suC4oeC5gOC4l+C4ngor4LiB4Liy4Lih4LiZCivguIHguYnguLLguKHguJvguLkKK+C4geC5ieC4suC4oeC4m+C4ueC4q+C4peC4uOC4lAor4LiB4Liy4Lih4Lig4LieCivguIHguLLguKHguKPguLLguIQKK+C4geC4suC4oeC5guC4o+C4hAor4LiB4Liy4Lih4Lin4Li04LiV4LiBCivguIHguLLguKHguKfguLTguJXguJbguLLguKMKK+C4geC4suC4oeC4quC4oeC4seC4h+C4hOC4tQor4LiB4Liy4Lih4Lix4LiKCivguIHguLLguKHguLIKK+C4geC4suC4oeC4suC4l+C4teC4meC4ngor4LiB4Liy4Lih4Liy4Lie4LiI4LijCivguIHguLLguKHguLLguKHguLTguKgKK+C4geC4suC4oeC4suC4o+C4oeC4k+C5jAor4LiB4Liy4Lih4Liy4Lin4LiI4LijCivguIHguLLguKHguLTguJnguLUKK+C4geC4suC4oeC4tOC4qAor4LiB4Liy4LmA4Lih4LioCivguIHguLLguYDguKHguKrguLjguKHguLTguIjguInguLLguIjguLLguKMKK+C4geC4suC5guC4oeC4l+C4ogor4LiB4Liy4LiiCivguIHguLLguKItCivguIHguYjguLLguKIKK+C4geC4suC4ouC4geC4o+C4o+C4oQor4LiB4LmI4Liy4Lii4LiB4Lit4LiHCivguIHguLLguKLguJfguKfguLLguKMKK+C4geC4suC4ouC4muC4o+C4tOC4q+C4suC4owor4LiB4Liy4Lii4Lie4Lix4LiZ4LiY4LiZ4LmMCivguIHguLLguKLguKDguLLguJ4KK+C4geC4suC4ouC4oOC4suC4nuC4muC4s+C4muC4seC4lAor4LiB4Liy4Lii4Lin4Li04Lig4Liy4LiE4Lio4Liy4Liq4LiV4Lij4LmMCivguIHguLLguKLguKrguLTguJfguJjguLTguYwKK+C4geC4suC4ouC4suC4nuC4ouC4ngor4LiB4Liy4Lii4Li04LiZ4LiX4Lij4Li14Lii4LmMCivguIHguLLguYDguKLguJkKK+C4geC4suC5gOC4ouC4meC4l+C4o+C4teC4ouC5jAor4LiB4Liy4LijCivguIHguLLguKPguIEKK+C4geC4suC4o+C4geC4peC4seC5iOC4meC4l+C4s+C4peC4suC4ogor4LiB4Liy4Lij4LiC4LiZ4Liq4LmI4LiH4Lih4Lin4Lil4LiK4LiZCivguIHguLLguKPguITguKPguLHguKcKK+C4geC4suC4o+C4hOC4peC4seC4hwor4LiB4Liy4Lij4LmA4LiH4Li04LiZCivguIHguLLguKPguIjguKMKK+C4geC4suC4o+C4k+C5jAor4LiB4Liy4Lij4LiV4LmI4Liy4LiH4Lib4Lij4Liw4LmA4LiX4LioCivguIHguLLguKPguYzguJXguLnguJkKK+C4geC4suC4o+C5gOC4lQor4LiB4Liy4Lij4LiZ4LizCivguIHguLLguKPguJrguYnguLLguJkKK+C4geC4suC4o+C4muC5ieC4suC4meC4geC4suC4o+C5gOC4oeC4t+C4reC4hwor4LiB4Liy4Lij4Lia4Li44LmA4Lij4Li14Lii4LiZCivguIHguLLguKPguJrguLnguKMKK+C4geC4suC4o+C4muC4ueC4o+C4m+C5iOC4sgor4LiB4Liy4Lij4LmA4Lib4Lij4Li14Lii4LiNCivguIHguLLguKPguYHguJzguYjguKPguLHguIfguKrguLUKK+C4geC4suC4o+C4nuC4sgor4LiB4Liy4Lij4LmA4Lih4Li34Lit4LiHCivguIHguLLguKPguKLguYwKK+C4geC4suC4o+C5gOC4o+C4t+C4reC4mQor4LiB4Liy4Lij4Lil4Liw4LmA4Lil4LmI4LiZCivguIHguLLguKPguKfguLTguIEKK+C4geC4suC4o+C5gOC4p+C4gQor4LiB4Liy4Lij4Liw4LmA4LiB4LiUCivguIHguLLguKPguLDguJrguLjguKvguJnguLTguIcKK+C4geC4suC4o+C4seC4k+C4ouC5jAor4LiB4Liy4Lij4Lix4LiZ4LiV4LmMCivguIHguLLguKPguLLguIfguKvguLHguKfguILguKfguLLguJkKK+C4geC4suC4o+C4tOC4leC4geC4suC4o+C4gQor4LiB4Liy4Lij4Li04LiV4Lin4Liy4LiI4LiBCivguIHguLLguKPguLjguI0KK+C4geC4suC4o+C4uOC4k+C4ouC5jAor4LiB4Liy4LmA4Lij4LiB4Liy4Lij4LmI4Lit4LiZCivguIHguLLguYDguKPguLXguKLguJkKK+C4geC4suC5gOC4o+C4teC4ouC4meC4l+C4reC4hwor4LiB4Liy4LilCivguIHguLLguKUtCivguIHguLLguKXguIHguKPguKPguJPguLUKK+C4geC4suC4peC4geC4tOC4k+C4tQor4LiB4Liy4Lil4LiB4Li04Lij4Li04Lii4LiyCivguIHguLLguKXguIjguLHguIHguKMKK+C4geC4suC4peC5gOC4l+C4qOC4sAor4LiB4Liy4Lil4LmC4Lii4LiECivguIHguLLguKXguKrguKHguLjguJXguJbguLLguJkKK+C4geC4suC4peC4seC4geC4meC5ieC4swor4LiB4Liy4Lil4Lix4LiN4LiN4Li44LiV4LiyCivguIHguLLguKXguLHguI3guI3guLkKK+C4geC4suC4peC4seC4lAor4LiB4Liy4Lil4Liy4LiZ4Li44LiB4Liy4LilCivguIHguLLguKXguLTguIEKK+C4geC4suC4peC4tQor4LiB4Liy4LmB4Lil4LmH4LiB4LiL4Li1CivguIHguLLguYHguKXguYfguIHguYLguJfguKoKK+C4geC4suC4pwor4LiB4LmJ4Liy4LinCivguIHguYnguLLguKfguIHguYjguLLguKIKK+C4geC5ieC4suC4p+C5gOC4ieC4teC4ouC4hwor4LiB4LmJ4Liy4Lin4Lij4LmJ4Liy4LinCivguIHguYnguLLguKfguKXguYjguKfguIcKK+C4geC4suC4p+C4p+C4suC4pwor4LiB4LmJ4Liy4Lin4Lir4LiZ4LmJ4LiyCivguIHguLLguKfguLLguIcKK+C4geC4suC5gOC4p+C4teC4ouC4mQor4LiB4Liy4LmB4Lin4LiZCivguIHguLLguKjguLTguIEKK+C4geC4suC4qOC4tOC4gS0KK+C4geC4suC4qOC4tOC4geC4nuC4seC4quC4leC4o+C5jAor4LiB4Liy4Lip4LiQ4LiwCivguIHguLLguKnguLIKK+C4geC4suC4quC4owor4LiB4Liy4Liq4LiwCivguIHguLLguKrguLHguIEKK+C4geC4suC4quC4sgor4LiB4Liy4Liq4Liy4Lih4Lib4Li14LiBCivguIHguLLguKrguLLguKMKK+C4geC4suC4quC4suC4py0KK+C4geC4suC4quC4suC4p+C4nuC4seC4quC4leC4o+C5jAor4LiB4Liy4Liq4Liy4Lin4LiwCivguIHguLLguKrguLTguYLguJkKK+C4geC4suC4q+C4pQor4LiB4Liy4Lir4Lil4LiHCivguIHguLLguKvguKXguIfguKPguLHguIcKK+C4geC4suC4q+C4peC4sgor4LiB4Liy4Lir4Lix4LiBCivguIHguLLguYDguKvguKfguYjguLIKK+C4geC4suC5hOC4q+C4peC5iAor4LiB4Liy4LisCivguIHguLLguKwtCivguIHguLLguKzguIjguLHguIHguKMKK+C4geC4suC4rOC4m+C4seC4geC4qeC5jAor4LiB4Liy4Lis4Lib4Lix4LiB4Lip4Li1CivguIHguLLguKzguJ7guKTguIHguKnguYwKK+C4geC4suC4rOC5guC4o+C4hAor4LiB4Liy4Lis4Lin4Liy4LiVCivguIHguLLguKzguLLguKfguIEKK+C4geC4suC4ruC4seC4hwor4LiB4LizCivguIHguYjguLMKK+C4geC5ieC4swor4LiB4Liz4LiB4Lin4LihCivguIHguLPguIHguLHguJQKK+C4geC4s+C4geC4seC4mgor4LiB4LmJ4Liz4LiB4Li24LmI4LiHCivguIHguLPguIHguLnguJkKK+C4geC4s+C5gOC4geC4o+C4teC4ouC4gQor4LiB4LmJ4Liz4LmA4LiB4Li04LiZCivguIHguLPguYDguIHguLXguKLguIcKK+C4geC4s+C4guC4teC5ieC4lOC4teC4geC4p+C5iOC4suC4geC4s+C4leC4lAor4LiB4Liz4LiE4Li54LiZCivguIHguYjguLPguYDguITguLfguK0KK+C4geC4s+C4iOC4owor4LiB4Liz4LiI4Lix4LiUCivguIHguLPguIjguLLguKIKK+C4geC4s+C4iuC4seC4mgor4LiB4Liz4LiK4Lix4Lia4LiB4Liz4LiK4LiyCivguIHguLPguIrguLMKK+C4geC4s+C5guC4iuC4gQor4LiB4Liz4LiL4Liy4LiaCivguIHguLPguIvguLMKK+C4geC4s+C4lOC5ieC4mQor4LiB4Liz4LiU4Lix4LiUCivguIHguLPguJTguLLguKUKK+C4geC4s+C5gOC4lOC4sgor4LiB4Liz4LmA4LiU4Liy4LiwCivguIHguYjguLPguJXguYnguJkKK+C4geC4s+C4leC4seC4lAor4LiB4Liz4LiV4Liy4LiBCivguIHguLPguJbguLHguYjguKcKK+C4geC4s+C4l+C4p+C4mQor4LiB4Liz4LiY4LijCivguIHguLPguJnguKUKK+C4geC4s+C4meC4seC4lAor4LiB4Liz4LiZ4Lix4LiZCivguIHguLPguJnguLHguKUKK+C4geC4s+C5gOC4meC4tOC4lAor4LiB4Liz4LmA4LiZ4Li14Lii4LiICivguIHguLPguJrguJQKK+C4geC4s+C4muC4mQor4LiB4Liz4Lia4Lix4LiHCivguIHguLPguJrguLHguJQKK+C4geC4s+C4muC4tOC4lAor4LiB4LmI4Liz4Lia4Li24LmJ4LiHCivguIHguLPguYDguJrguYnguK0KK+C4geC4s+C5guC4muC4pQor4LiB4Liz4Lib4LitCivguIHguLPguJvguLHguYjguJkKK+C4geC4s+C4m+C4seC5ieC4mQor4LiB4Liz4Lic4Lil4LiyCivguIHguLPguJ7guIcKK+C4geC4s+C4nuC4lAor4LiB4Liz4Lie4LiVCivguIHguLPguJ7guKPguYnguLIKK+C4geC4s+C4nuC4o+C4suC4gQor4LiB4Liz4Lie4Lin4LiUCivguIHguLPguJ7guK3guIcKK+C4geC4s+C4nuC4t+C4lAor4LiB4Liz4Lie4Li44LiUCivguIHguLPguJ7guLkKK+C4geC4s+C5gOC4nuC4peC4tOC4hwor4LiB4Liz4LmB4Lie4LiHCivguIHguLPguYHguJ7guYnguIcKK+C4geC4s+C5geC4nuC4h+C5geC4geC5ieC4pwor4LiB4Liz4LmB4Lie4LiH4LiC4Liy4LinCivguIHguLPguYHguJ7guIfguYDguILguKLguYjguIcKK+C4geC4s+C5geC4nuC4h+C5gOC4iOC5h+C4lOC4iuC4seC5ieC4mQor4LiB4Liz4LmB4Lie4LiH4Lih4Li14Lir4Li54Lib4Lij4Liw4LiV4Li54Lih4Li14LiK4LmI4Lit4LiHCivguIHguLPguYHguJ7guIfguKHguLXguKvguLnguJvguKPguLDguJXguLnguKHguLXguJXguLIKK+C4geC4s+C5geC4nuC4h+C5gOC4qOC4teC4ouC4owor4LiB4Liz4Lig4Li5CivguIHguLPguKEKK+C4geC4s+C4oeC4nuC4pOC4geC4qeC5jAor4LiB4Liz4Lih4Lil4Liy4Lio4LiZ4LmMCivguIHguLPguKHguYDguKXguKgKK+C4geC4s+C4oeC4sOC4luC4seC4mQor4LiB4Liz4Lih4Liw4Lil4LitCivguIHguLPguKHguLDguKvguKLguLXguYgKK+C4geC4s+C4oeC4sOC4q+C4o+C4tOC4lAor4LiB4Liz4Lih4Lix4LiH4Lil4Liw4LiB4Liy4LijCivguIHguLPguKHguLHguIfguKfguLTguKXguLTguJUKK+C4geC4s+C4oeC4seC4iuC4nuC4pQor4LiB4Liz4Lih4LiyCivguIHguLPguKHguLfguK0KK+C4geC4s+C4ouC4suC4mQor4LiB4Liz4Lii4LizCivguIHguLPguKPguK0KK+C4geC4s+C4o+C4suC4gQor4LiB4Liz4Lij4Liy4LiaCivguIHguLPguKPguLLguKUKK+C4geC4s+C4o+C4uQor4LiB4Liz4LmA4Lij4Li04LiaCivguIHguLPguYDguKPguLTguJrguYDguKrguLTguJrguKrguLLguJkKK+C4geC4s+C5hOC4owor4LiB4Liz4Lil4Lit4LiHCivguIHguLPguKXguLHguIcKK+C4geC4s+C4peC4seC4h+C4geC4tOC4mQor4LiB4Liz4Lil4Lix4LiH4LiB4Li04LiZ4LiB4Liz4Lil4Lix4LiH4LiZ4Lit4LiZCivguIHguLPguKXguLHguIfguYPguIgKK+C4geC4s+C4peC4seC4h+C4iuC5ieC4suC4h+C5gOC4nOC4t+C4reC4gQor4LiB4Liz4Lil4Lix4LiH4LiK4LmJ4Liy4LiH4Liq4Liy4LijCivguIHguLPguKXguLHguIfguJTguLUKK+C4geC4s+C4peC4seC4h+C5gOC4l+C4teC4ouC4mQor4LiB4Liz4Lil4Lix4LiH4Lig4Liy4Lii4LmD4LiZCivguIHguLPguKXguLHguIfguKHguYnguLIKK+C4geC4s+C4peC4seC4h+C4p+C4seC4h+C4iuC4sgor4LiB4Liz4Lil4Lix4LiH4Lin4Lix4Lin4LmA4LiW4Lil4Li04LiHCivguIHguLPguKXguLjguIcKK+C4geC4s+C4peC4ueC4mQor4LiB4Liz4LmA4Lil4LiyCivguIHguLPguYDguKXguLLguLAKK+C4geC4s+C5hOC4pQor4LiB4Liz4LmE4Lil4LiE4Li54LmI4Lic4Li1CivguIHguLPguKrguKPguJQKK+C4geC4s+C4quC4o+C4p+C4pQor4LiB4Liz4LmA4Liq4Liy4LiwCivguIHguLPguYHguKrguIcKK+C4geC4s+C4q+C4meC4lAor4LiB4Liz4Lir4LiZ4LiU4LiB4Liy4LijCivguIHguLPguKvguJnguLHguJQKK+C4geC4s+C4q+C4oeC4seC4lAor4LiB4Liz4Lir4Lij4Liy4LiBCivguIHguLPguYDguKvguJnguYfguIgKK+C4geC4s+C5geC4q+C4hwor4LiB4Li04LiBCivguIHguLTguYrguIEKK+C4geC4tOC5iOC4hwor4LiB4Li04LmI4LiH4LiB4LmJ4Lit4LiiCivguIHguLTguYnguIfguIHguYjguLIKK+C4geC4tOC5ieC4h+C4geC4t+C4rQor4LiB4Li04LmJ4LiH4LiB4Li34Lit4LmA4Lir4Lil4LmH4LiBCivguIHguLTguYnguIfguYLguITguKPguIcKK+C4geC4tOC5iOC4h+C4l+C4reC4h+C5g+C4muC4q+C4ouC4gQor4LiB4Li04LiH4Lia4Li44Lij4Li44LipCivguIHguLTguYjguIfguKvguLLguKIKK+C4geC4tOC4iAor4LiB4Li04LiILQor4LiB4Li04LiI4LiB4Lij4Lij4LihCivguIHguLTguIjguIHguLLguKMKK+C4geC4tOC4iOC4iOC4sAor4LiB4Li04LiI4LiI4Liw4Lil4Lix4LiB4Lip4LiT4LiwCivguIHguLTguIjguIjguLIKK+C4geC4tOC4iOC4iOC4suC4meC4uOC4geC4tOC4iAor4LiB4Li04LiI4Lin4Lix4LiV4LijCivguIHguLTguJTguLLguIHguLLguKMKK+C4geC4tOC4lOC4suC4q+C4ouC4seC4mQor4LiB4Li04LiV4LiV4Li0CivguIHguLTguJXguJXguLTguIHguKPguKPguKHguJvguKPguLDguIHguLLguKgKK+C4geC4tOC4leC4leC4tOC4hOC4uOC4kwor4LiB4Li04LiV4LiV4Li04Lih4Lio4Lix4LiB4LiU4Li04LmMCivguIHguLTguJXguJXguLTguKjguLHguJ7guJfguYwKK+C4geC4tOC4mQor4LiB4Li04LiZ4LiB4Lij4Li04LiaCivguIHguLTguJnguIHguLHguJkKK+C4geC4tOC4meC4geC4s+C5hOC4owor4LiB4Li04LiZ4LmA4LiB4Lil4Li14Lii4LinCivguIHguLTguJnguYDguIHguKXguLfguK3guIHguLTguJnguIHguLDguJvguLQKK+C4geC4tOC4meC5geC4geC4peC4muC4geC4tOC4meC4o+C4swor4LiB4Li04LiZ4LiC4Lin4LiyCivguIHguLTguJnguILguLLguJQKK+C4geC4tOC4meC5geC4guC4gQor4LiB4Li04LiZ4LiE4Lin4Liy4LihCivguIHguLTguJnguYDguITguKPguLIKK+C4geC4tOC4meC5gOC4iAor4LiB4Li04LiZ4LmB4LiICivguIHguLTguJnguYPguIgKK+C4geC4tOC4meC4iuC5ieC4reC4mQor4LiB4Li04LiZ4LiK4Lix4LiZCivguIHguLTguJnguIvguYnguLLguKIKK+C4geC4tOC4meC4lOC4reC4gQor4LiB4Li04LiZ4LiU4Lit4LiB4LmA4Lia4Li14LmJ4LiiCivguIHguLTguJnguJTguK3guIcKK+C4geC4tOC4meC4lOC5iOC4suC4hwor4LiB4Li04LiZ4LiU4Liy4LiiCivguIHguLTguJnguJTguLTguJoKK+C4geC4tOC4meC4leC4sOC5gOC4geC4teC4ouC4mgor4LiB4Li04LiZ4LiV4Lix4LinCivguIHguLTguJnguJXguLIKK+C4geC4tOC4meC4leC4s+C5geC4q+C4meC5iOC4hwor4LiB4Li04LiZ4LmC4LiV4LmK4LiwCivguIHguLTguJnguYHguJbguKcKK+C4geC4tOC4meC4l+C4suC4hwor4LiB4Li04LiZ4LiX4Li14LmICivguIHguLTguJnguJfguLXguYjguKXguLHguJrguYTguILguJfguLXguYjguYHguIjguYnguIcKK+C4geC4tOC4meC4meC4owor4LiB4Li04LiZ4LiZ4Lij4LmA4LiB4LmH4Lia4Lia4Lix4LinCivguIHguLTguJnguJnguKPguJ/guYnguK3guJnguYLguK3guYgKK+C4geC4tOC4meC4meC4o+C4o+C4swor4LiB4Li04LiZ4LiZ4Lij4LmA4Lil4Li14Lii4Lia4LiW4LmJ4LizCivguIHguLTguJnguJnguK3guIHguIHguLTguJnguYPguJkKK+C4geC4tOC4meC4meC4reC4mQor4LiB4Li04LiZ4LiZ4LmJ4LizCivguIHguLTguJnguJnguYnguLPguJXguLIKK+C4geC4tOC4meC4meC5ieC4s+C5g+C4leC5ieC4qOC4reC4gQor4LiB4Li04LiZ4LiZ4LmJ4Liz4Lie4Lij4Li04LiB4LiW4LmJ4Lin4Lii4LmA4LiU4Li14Lii4LinCivguIHguLTguJnguJnguYnguLPguYTguKHguYjguYDguJzguLfguYjguK3guYHguKXguYnguIcKK+C4geC4tOC4meC4meC5ieC4s+C5gOC4q+C5h+C4meC4m+C4peC4tOC4hwor4LiB4Li04LiZ4LmD4LiZCivguIHguLTguJnguJrguJnguYDguKPguLfguK3guJnguILguLXguYnguJrguJnguKvguKXguLHguIfguITguLIKK+C4geC4tOC4meC4muC4p+C4igor4LiB4Li04LiZ4Lia4LmJ4Liy4LiZ4LiB4Li04LiZ4LmA4Lih4Li34Lit4LiHCivguIHguLTguJnguJrguLjguI0KK+C4geC4tOC4meC4muC4uOC4jeC5gOC4geC5iOC4sgor4LiB4Li04LiZ4LmB4Lia4LmI4LiHCivguIHguLTguJnguJvguKXguLTguIcKK+C4geC4tOC4meC4m+C4peC4tQor4LiB4Li04LiZ4Lib4Li54LiZ4Lij4LmJ4Lit4LiZ4LiX4LmJ4Lit4LiHCivguIHguLTguJnguYDguJvguKXguYjguLIKK+C4geC4tOC4meC5gOC4m+C4teC5ieC4ouC4pwor4LiB4Li04LiZ4Lic4Lix4LinCivguIHguLTguJnguYDguJ7guKPguLIKK+C4geC4tOC4meC4oeC4t+C4rQor4LiB4Li04LiZ4LmA4Lih4Li14LiiCivguIHguLTguJnguYDguKHguLfguK3guIcKK+C4geC4tOC4meC5hOC4oeC5iOC4peC4hwor4LiB4Li04LiZ4Lij4Lix4LiH4LmB4LiV4LiZCivguIHguLTguJnguKPguLTguJkKK+C4geC4tOC4meC4o+C4tQor4LiB4Li04LiZ4Lij4Li54LibCivguIHguLTguJnguYHguKPguIcKK+C4geC4tOC4meC4peC4oQor4LiB4Li04LiZ4Lil4Lih4LiB4Li04LiZ4LmB4Lil4LmJ4LiHCivguIHguLTguJnguKXguYnguLLguIfguIHguLTguJnguJzguKXguLLguI0KK+C4geC4tOC4meC4peC4tuC4gQor4LiB4Li04LiZ4LmA4Lin4Lil4LiyCivguIHguLTguJnguYDguKjguKnguIHguLTguJnguYDguKXguKIKK+C4geC4tOC4meC4quC5ieC4reC4oQor4LiB4Li04LiZ4Liq4Lix4LmI4LiHCivguIHguLTguJnguKrguLPguKPguLHguJoKK+C4geC4tOC4meC4quC4teC5iOC4luC5ieC4p+C4ogor4LiB4Li04LiZ4LmA4Liq4LmJ4LiZCivguIHguLTguJnguKvguJnguYnguLIKK+C4geC4tOC4meC4q+C4peC4seC4hwor4LiB4Li04LiZ4Lir4Liy4LiHCivguIHguLTguJnguKvguLnguYkKK+C4geC4tOC4meC5gOC4q+C4oeC4t+C4reC4meC4q+C4oeC4uSDguK3guKLguLnguYjguYDguKvguKHguLfguK3guJnguKvguKHguLIKK+C4geC4tOC4meC5gOC4q+C4peC5h+C4geC4geC4tOC4meC5hOC4q+C4pQor4LiB4Li04LiZ4LmB4Lir4LiZ4LiHCivguIHguLTguJnguK3guKLguLnguYjguIHguLHguJrguJvguLLguIEg4Lit4Lii4Liy4LiB4Lit4Lii4Li54LmI4LiB4Lix4Lia4LiX4LmJ4Lit4LiHCivguIHguLTguJnguK3guKLguLnguYjguJ7guLnguKfguLLguKIKK+C4geC4tOC5iuC4mgor4LiB4Li04Lih4LiV4Li24LmL4LiHCivguIHguLTguKHguLTguIrguLLguJXguLQKK+C4geC4tOC4oeC4tOC4p+C4tOC4l+C4ouC4sgor4LiB4Li04LmC4Lih4LmC4LiZCivguIHguLTguYLguKLguJXguLXguJkKK+C4geC4tOC4o+C4sAor4LiB4Li04Lij4Li04LiT4Li1CivguIHguLTguKPguLTguJnguJcKK+C4geC4tOC4o+C4tOC5gOC4meC4qOC4p+C4owor4LiB4Li04Lij4Li04Lii4LiyCivguIHguLTguKPguLTguKLguLLguKrguLDguJfguYnguK3guJkKK+C4geC4tOC5gOC4peC4mQor4LiB4Li04LmA4Lil4LiqCivguIHguLTguYDguKXguKotCivguIHguLTguYDguKXguKrguKHguLLguKMKK+C4geC4tOC5guC4pQor4LiB4Li04LmC4LilLQor4LiB4Li04LmC4Lil4LiB4Lij4Lix4LihCivguIHguLTguYLguKXguYTguIvguYDguIHguLTguKUKK+C4geC4tOC5guC4peC4oeC4geC4sAor4LiB4Li04LmC4Lil4LmA4Lih4LiV4LijCivguIHguLTguYLguKXguKXguLTguJXguKMKK+C4geC4tOC5guC4peC5gOC4ruC4tOC4o+C4leC4i+C5jAor4LiB4Li04LmI4LinCivguIHguLTguYvguKcKK+C4geC4tOC5i+C4p+C5hgor4LiB4Li1CivguIHguLXguYgKK+C4geC4teC5iQor4LiB4Li14LmLCivguIHguLXguYjguIHguKPguLDguJXguLjguIEKK+C4geC4teC4jy0KK+C4geC4teC4j+C4p+C4tOC4l+C4ouC4sgor4LiB4Li14LiUCivguIHguLXguJTguIHguLHguJkKK+C4geC4teC4lOC4geC4seC5ieC4mQor4LiB4Li14LiU4LiC4Lin4Liy4LiHCivguIHguLXguJTguKvguJnguYnguLLguILguKfguLLguIfguJXguLIKK+C4geC4teC4leC4suC4o+C5jAor4LiB4Li14LiaCivguIHguLXguJrguYHguKPguJQKK+C4geC4teC5iOC4oeC4suC4geC4meC5ieC4reC4ogor4LiB4Li14Lij4LiV4Li0CivguIHguLXguKzguLIKK+C4geC4tuC4gQor4LiB4Li24LiB4LiB4LmJ4Lit4LiHCivguIHguLbguIHguIHguLHguIEKK+C4geC4tuC4geC4geC4t+C4rQor4LiB4Li24LiB4LiW4Lit4LiHCivguIHguLbguIcKK+C4geC4tuC5iOC4hwor4LiB4Li24LmI4LiH4LiB4Lil4Liy4LiHCivguIHguLbguIfguIHguLHguIcKK+C4geC4tuC5iOC4h+C4o+C4suC4iuC4geC4suC4owor4LiB4Li24LmL4LiZCivguIHguLgKK+C4geC4uOC4gQor4LiB4Li44LmK4LiBCivguIHguLjguIHguIHguLHguIEKK+C4geC4uOC4geC5hiDguIHguLHguIHguYYKK+C4geC4uOC5iuC4geC4geC4tOC5iuC4gQor4LiB4Li44LmK4LiB4LmGIOC4geC4tOC5iuC4geC5hgor4LiB4Li44LiB4LiB4Li44LiPLQor4LiB4Li44LiB4LiB4Li44LijLQor4LiB4Li44LiB4LiC4Li14LmJ4Lir4Lih4Li5CivguIHguLjguIHguKPguKPguKEKK+C4geC4uOC4geC5iOC4reC4hwor4LiB4Li44LiB4LiwCivguIHguLjguIHguLDguKHguLDguYDguJfguLTguYjguIcKK+C4geC4uOC4geC4uOC4mOC4oOC4seC4k+C4keC5jAor4LiB4Li44LmJ4LiHCivguIHguLjguYnguIfguJTguLXguJQKK+C4geC4uOC5ieC4h+C4lOC4teC4lOC4guC4seC4mQor4LiB4Li44LmJ4LiH4LmA4LiV4LmJ4LiZCivguIHguLjguYnguIfguJnguLLguIcKK+C4geC4uOC5ieC4h+C4neC4reC4ogor4LiB4Li44LmJ4LiH4Lif4Lix4LiUCivguIHguLjguYnguIfguKHguLHguIfguIHguKMKK+C4geC4uOC5ieC4h+C5hOC4oeC5iQor4LiB4Li44LmJ4LiH4Lii4Li04LiHCivguIHguLjguYnguIfguKrguYnguKEKK+C4geC4uOC5ieC4h+C4q+C4meC4suC4oeC5g+C4q+C4jeC5iAor4LiB4Li44LmJ4LiH4Lir4Lil4Lin4LiHCivguIHguLjguYnguIfguYDguKvguKXguLfguK3guIcKK+C4geC4uOC5ieC4h+C5geC4qwor4LiB4Li44LmJ4LiH4LmB4Lir4LmJ4LiHCivguIHguLjguIfguK3guJkKK+C4geC4uOC4h+C4suC4mQor4LiB4Li44LmC4LiH4LiBCivguIHguLjguIjguLUKK+C4geC4uOC4jeC5geC4iAor4LiB4Li44LiN4LmB4LiI4LiB4LilCivguIHguLjguI3guYHguIjguJvguKPguLDguIjguLPguKvguKXguLHguIEKK+C4geC4uOC4jeC5geC4iOC4m+C4suC4geC4leC4suC4ogor4LiB4Li44LiN4LmB4LiI4Lic4Li1CivguIHguLjguI3guYHguIjguKHguLfguK0KK+C4geC4uOC4jeC5geC4iOC4o+C4q+C4seC4qgor4LiB4Li44LiN4LmB4LiI4LmA4Lil4Li34LmI4Lit4LiZCivguIHguLjguI3guYHguIjguYDguKrguLXguKLguIcKK+C4geC4uOC4jeC5geC4iOC5geC4q+C4p+C4mQor4LiB4Li44LiN4LiK4LijCivguIHguLjguI4KK+C4geC4uOC4juC4sgor4LiB4Li44LiO4Liy4LiE4Liy4LijCivguIHguLjguI7guLLguJjguLLguKMKK+C4geC4uOC4juC4tQor4LiB4Li44LiO4Li44Lih4Lie4Li1CivguIHguLjguI/guJDguLHguIcKK+C4geC4uOC4j+C5hOC4lQor4LiB4Li44LiP4Li0CivguIHguLjguJPguJHguYwKK+C4geC4uOC4k+C4keC4pQor4LiB4Li44LiT4LiR4Li1CivguIHguLjguJPguYLguJEKK+C4geC4uOC4k+C4suC4pQor4LiB4Li44LiT4Li0CivguIHguLjguJPguLUKK+C4geC4uOC4lAor4LiB4Li44LiU4Lix4LiHCivguIHguLjguJTguLHguYjguJkKK+C4geC4uOC4lOC4sgor4LiB4Li44LiX4Lix4LiT4LiR4LmMCivguIHguLjguJkKK+C4geC4uOC5iuC4mQor4LiB4Li44LiZ4LmA4LiK4Li14Lii4LiHCivguIHguLjguJnguJfguLUKK+C4geC4uOC5guC4meC4geC4suC4oeC4rQor4LiB4Li44LiaCivguIHguLjguJrguIHguLHguJoKK+C4geC4uOC4oQor4LiB4Li44LmI4LihCivguIHguLjguKHguJ3guK3guKIKK+C4geC4uOC4oeC4oC0KK+C4geC4uOC4oeC4oOC5jAor4LiB4Li44Lih4Lig4LiB4Liy4LijCivguIHguLjguKHguKDguJnguLTguKLguLIKK+C4geC4uOC4oeC4oOC4seC4k+C4kS0KK+C4geC4uOC4oeC4oOC4seC4k+C4keC5jAor4LiB4Li44Lih4Lig4Lix4LiT4LiR4Lii4Lix4LiB4Lip4LmMCivguIHguLjguKHguKDguLIKK+C4geC4uOC4oeC4oOC4suC4nuC4seC4meC4mOC5jAor4LiB4Li44Lih4Lig4Li04LilCivguIHguLjguKHguKDguLXguKXguYwKK+C4geC4uOC4oeC4peC4seC4hOC4meC5jAor4LiB4Li44Lih4LmA4Lir4LiHCivguIHguLjguKHguLLguKMKK+C4geC4uOC4oeC4suC4o+C4peC4rOC4tOC4leC4sgor4LiB4Li44Lih4Liy4Lij4LiyCivguIHguLjguKHguLLguKPguLUKK+C4geC4uOC4oeC4uOC4lwor4LiB4Li44LiiCivguIHguLjguYrguKIKK+C4geC4uOC5i+C4ogor4LiB4Li44LmL4Lii4LmGCivguIHguLjguKLguIrguYjguLLguKIKK+C4geC4uOC4ouC5gOC4ruC4hwor4LiB4Li44Lij4LijCivguIHguLjguKPguLAKK+C4geC4uOC4o+C4uOC4hwor4LiB4Li44Lij4Li44Lie4Li04LiZ4LiX4LmMCivguIHguLjguKPguLjguKMKK+C4geC4uOC5gOC4o+C4sgor4LiB4Li44LilCivguIHguLjguKUtCivguIHguLjguKXguJfguLnguKrguIEKK+C4geC4uOC4peC4mOC4tOC4lOC4sgor4LiB4Li44Lil4Lia4LiU4Li1CivguIHguLjguKXguJrguLjguJXguKMKK+C4geC4uOC4peC4quC4leC4o+C4tQor4LiB4Li44Lil4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMCivguIHguLjguKXguLIKK+C4geC4uOC4peC4suC4i+C5iOC4reC4meC4nOC5ieC4sgor4LiB4Li44Lil4Liy4LiU4LizCivguIHguLjguKXguLLguJXguLXguYTguKHguYkKK+C4geC4uOC4peC4suC4leC4teC4reC4gQor4LiB4Li44Lil4Liy4Lil4Liy4LiiCivguIHguLjguKXguLLguKvguKUKK+C4geC4uOC4peC4tQor4LiB4Li44Lil4Li14LiB4Li44LiI4LitCivguIHguLjguYDguKXguLIKK+C4geC4uOC5geC4pQor4LiB4Li44LmA4Lin4LijCivguIHguLjguKjguKPguLLguIoKK+C4geC4uOC4qOC4pQor4LiB4Li44Lio4Lil4LiB4Lij4Lij4Lih4Lia4LiWCivguIHguLjguKjguYLguKXguJrguLLguKIKK+C4geC4uOC4quC4pQor4LiB4Li44Liq4Li44LihCivguIHguLjguKrguLjguKEtCivguIHguLjguKrguLjguKHguKDguYwKK+C4geC4uOC4quC4uOC4oeC4p+C4tOC4iOC4tOC4leC4owor4LiB4Li44Liq4Li44Lih4LiyCivguIHguLjguKrguLjguKHguLLguKXguKLguYwKK+C4geC4uOC4quC4uOC4oeC4tOC4leC4peC4lOC4suC5gOC4p+C4peC4peC4tOC4leC4sgor4LiB4Li44Lir4LiZ4Li1CivguIHguLjguKvguJnguLjguIcKK+C4geC4uOC4q+C4o+C5iOC4sgor4LiB4Li44Lir4Lil4LmI4LiyCivguIHguLjguKvguKXguLLguJoKK+C4geC4uOC5geC4q+C4peC4sAor4LiB4Li5CivguIHguLnguYgKK+C4geC4ueC5iQor4LiB4Li54LmK4LiBCivguIHguLnguI8KK+C4geC4ueC4j+C4sgor4LiB4Li54LiP4Liy4LiE4Liy4LijCivguIHguLnguJPguJHguYwKK+C4geC4ueC4lAor4LiB4Li54LiZCivguIHguLnguJoKK+C4geC4ueC4m+C4o+C4tQor4LiB4Li54LmJ4Lig4Lix4LiiCivguIHguLnguYjguYTguKHguYjguIHguKXguLHguJoKK+C4geC4ueC5ieC4ouC4t+C4oQor4LiB4Li54Lij4LihLQor4LiB4Li54Lij4Lih4LiwCivguIHguLnguKPguKHguLLguKfguJXguLLguKMKK+C4geC4ueC4o+C4swor4LiB4Li54LmJ4Lir4LiZ4LmJ4LiyCivguYDguIEKK+C5gOC4geC5iAor4LmA4LiB4LmKCivguYDguIHguYsKK+C5gOC4geC4gQor4LmA4LiB4LmK4LiBCivguYDguIHguIHguKHguLDguYDguKvguKPguIEKK+C5gOC4geC5iuC4geC4q+C4meC5ieC4sgor4LmA4LiB4LmK4LiB4Liu4Lin4LiiCivguYDguIHguYnguIHguLHguIcKK+C5gOC4geC5ieC5hiDguIHguLHguIfguYYKK+C5gOC4geC5h+C4hwor4LmA4LiB4LmI4LiHCivguYDguIHguYnguIcKK+C5gOC4geC5i+C4hworLeC5gOC4geC4h+C4geC4reC4ogor4LmA4LiB4LmJ4LiH4LiB4LmJ4Liy4LiHCivguYDguIHguYjguIfguIHguLLguIgKK+C5gOC4geC5h+C4h+C4geC4s+C5hOC4owor4LmA4LiB4LiH4LmA4LiC4LiHCivguYDguIHguYvguIfguYDguITguIcKK+C5gOC4geC5iOC4h+C5geC4leC5iOC4m+C4suC4gQor4LmA4LiB4LmL4LiH4Lie4Lix4LmJ4LiHCivguYDguIHguYfguIgKK+C5gOC4geC4iOC4tOC4reC4suC4iOC4suC4o+C4ouC5jAor4LmA4LiB4LiK4LiyCivguYDguIHguJPguJHguYwKK+C5gOC4geC4k+C4keC5jOC4leC4sOC4nuC4seC4lAor4LmA4LiB4LiT4LiR4LmM4LmA4Lih4Li34Lit4LiH4Lij4Lix4LmJ4LiHCivguYDguIHguJPguJHguYzguKvguLHguJQKK+C5gOC4geC4lAor4LmA4LiB4LmH4LiUCivguYDguIHguJXguLgKK+C5gOC4geC4leC4uC0KK+C5gOC4geC4leC4uOC4oeC4suC4peC4sgor4LmA4LiB4LiZCivguYDguIHguJnguYYKK+C5gOC4geC5iOC4mQor4LmA4LiB4LmH4LiaCivguYDguIHguYfguJrguYDguIHguLXguYjguKLguKcKK+C5gOC4geC5h+C4muC4guC5ieC4suC4pwor4LmA4LiB4LmH4Lia4LiC4LmJ4Liy4Lin4LiV4LiBCivguYDguIHguYfguJrguITguKfguLLguKEKK+C5gOC4geC5h+C4muC4h+C4swor4LmA4LiB4LmH4Lia4LiV4LiBCivguYDguIHguYfguJrguJXguLHguKcKK+C5gOC4geC5h+C4muC5gOC4meC4t+C5ieC4reC5gOC4geC5h+C4muC4leC4seC4pwor4LmA4LiB4LmH4Lia4LmA4Lia4Li14LmJ4Lii4LmD4LiV4LmJ4LiW4Li44LiZ4Lij4LmJ4Liy4LiZCivguYDguIHguYfguJrguJzguKEKK+C5gOC4geC5h+C4muC5hOC4owor4LmA4LiB4LmH4Lia4LmA4Lil4LmH4LiB4Lic4Liq4Lih4LiZ4LmJ4Lit4LiiCivguYDguIHguYfguJrguYDguKXguYfguKEKK+C5gOC4geC5h+C4muC5gOC4peC5iOC4oQor4LmA4LiB4LmH4Lia4Liq4Li1CivguYDguIHguYfguJrguKvguJnguYnguLLguJzguYnguLIKK+C5gOC4geC5h+C4muC4q+C4reC4oeC4o+C4reC4oeC4o+C4tOC4mgor4LmA4LiB4LihCivguYDguIHguKIKK+C5gOC4geC4ouC4peC4sgor4LmA4LiB4Lii4LmB4Lir4LmJ4LiHCivguYDguIHguKLguLnguKMKK+C5gOC4geC4o+C4hwor4LmA4LiB4Lij4LmH4LiHCivguYDguIHguKPguIfguILguLLguKEKK+C5gOC4geC4o+C4h+C5g+C4iAor4LmA4LiB4Lij4LiH4Lit4LiB4LmA4LiB4Lij4LiH4LmD4LiICivguYDguIHguKPguYfguJQKK+C5gOC4geC4o+C4mQor4LmA4LiB4Lij4LmI4LitCivguYDguIHguKPguK3guLAKK+C5gOC4geC4o+C4reC4sOC4geC4o+C4seC4hwor4LmA4LiB4Lij4Liy4LiwCivguYDguIHguKPguLTguIEKK+C5gOC4geC4o+C4tOC4mQor4LmA4LiB4Lij4Li04LmI4LiZCivguYDguIHguKPguLXguKLguIEKK+C5gOC4geC4o+C4teC4ouC4hwor4LmA4LiB4Lij4Li14Lii4LiH4LmE4LiB4LijCivguYDguIHguKPguLXguKLguJQKK+C5gOC4geC4o+C4teC4ouC4mQor4LmA4LiB4Lij4Li14Lii4LiaCivguYDguIHguKPguLXguKLguKEKK+C5gOC4geC4o+C4teC4ouC4oeC4geC4o+C4oQor4LmA4LiB4Lij4Li14Lii4LinCivguYDguIHguKPguLXguYnguKLguKcKK+C5gOC4geC4o+C4teC5ieC4ouC4p+C5hgor4LmA4LiB4Lij4Li14LmJ4Lii4Lin4LiB4Lij4Liy4LiUCivguYDguIHguKPguLXguKLguKfguIHguKPguLLguKcKK+C5gOC4geC5gOC4owor4LmA4LiB4LmA4Lij4LmA4LiB4LiV4Li44LiHCivguYDguIHguYDguKPguYDguIHguYDguKoKK+C5gOC4geC4peC5h+C4lAor4LmA4LiB4Lil4LmH4LiU4LiB4Lij4Liw4LiU4Li14LmICivguYDguIHguKXguYfguJTguIHguKPguLDguYLguKvguYkKK+C5gOC4geC4peC5h+C4lOC4guC5ieC4suC4p+C5gOC4oeC5iOC4sgor4LmA4LiB4Lil4LmH4LiU4LiW4Li14LmICivguYDguIHguKXguYfguJTguJnguLLguIQKK+C5gOC4geC4peC5h+C4lOC4m+C4peC4suC4iuC5iOC4reC4mQor4LmA4LiB4Lil4LmH4LiU4Lir4Lit4LiiCivguYDguIHguKXguKgKK+C5gOC4geC4peC4rQor4LmA4LiB4Lil4LiyCivguYDguIHguKXguYnguLIKK+C5gOC4geC4peC5ieC4suC4geC4o+C4sOC4nOC4oQor4LmA4LiB4Lil4LmJ4Liy4LiB4Lij4Liw4Lir4Lih4LmI4Lit4LihCivguYDguIHguKXguLLguLAKK+C5gOC4geC4peC4teC5iOC4ogor4LmA4LiB4Lil4Li14LmJ4LiiCivguYDguIHguKXguLXguYnguKLguIHguKXguYjguK3guKEKK+C5gOC4geC4peC4teC5iOC4ouC5hOC4geC4peC5iAor4LmA4LiB4Lil4Li14Lii4LiHCivguYDguIHguKXguLXguYnguKLguIcKK+C5gOC4geC4peC4teC5ieC4ouC4h+C5gOC4geC4peC4sgor4LmA4LiB4Lil4Li14Lii4LiUCivguYDguIHguKXguLXguKLguJTguJXguLHguKfguIHguLTguJnguYTguILguYgKK+C5gOC4geC4peC4teC4ouC4lOC4m+C4peC4suC5hOC4q+C4peC4geC4tOC4meC4meC5ieC4s+C5geC4geC4hwor4LmA4LiB4Lil4Li14Lii4LinCivguYDguIHguKXguLXguKLguKfguIHguKXguKEKK+C5gOC4geC4peC4teC4ouC4p+C4guC5ieC4suC4hwor4LmA4LiB4Lil4Li14Lii4Lin4LiE4LitCivguYDguIHguKXguLXguYjguKLguKfguJTguLMKK+C5gOC4geC4peC4teC4ouC4p+C4q+C4p+C4suC4mQor4LmA4LiB4Lil4Li34LitCivguYDguIHguKXguLfguYnguK0KK+C5gOC4geC4peC4t+C4reC4gQor4LmA4LiB4Lil4Li34Lit4LiB4LiB4Lil4Lix4LmJ4LinCivguYDguIHguKXguLfguK3guIHguIHguKXguLTguYnguIcKK+C5gOC4geC4peC4t+C4reC4geC4o+C4lAor4LmA4LiB4Lil4Li34Lit4LmB4LiB4LiHCivguYDguIHguKXguLfguK3guYDguIfguLTguJkKK+C5gOC4geC4peC4t+C4reC4iOC4tOC5ieC4oeC5gOC4geC4peC4t+C4rQor4LmA4LiB4Lil4Li34Lit4LiI4Li34LiUCivguYDguIHguKXguLfguK3guJTguYjguLLguIcKK+C5gOC4geC4peC4t+C4reC4lOC5iOC4suC4h+C4hOC4peC4tQor4LmA4LiB4Lil4Li34LmI4Lit4LiZCivguYDguIHguKXguLfguYnguK3guJkKK+C5gOC4geC4peC4t+C5iOC4reC4meC4geC4peC5iOC4mQor4LmA4LiB4Lil4Li34LmI4Lit4LiZ4LiB4Lil4Liy4LiUCivguYDguIHguKXguLfguYjguK3guJnguITguKfguLLguKEKK+C5gOC4geC4peC4t+C4reC5gOC4muC4quC4tOC4gQor4LmA4LiB4Lil4Li34Lit4Lib4Lij4LiB4LiV4Li0CivguYDguIHguKXguLfguK3guYDguJvguYfguJnguKvguJnguK3guJkKK+C5gOC4geC4peC4t+C4reC4n+C4reC4hwor4LmA4LiB4Lil4Li34Lit4Lii4Li54LmA4Lij4LiVCivguYDguIHguKXguLfguK3guKrguKHguLjguJfguKMKK+C5gOC4geC4peC4t+C4reC4quC4tOC4meC5gOC4mOC4suC4p+C5jAor4LmA4LiB4LmE4LilCivguYDguIHguKfguLHguI8KK+C5gOC4geC4p+C4teC4ouC4mQor4LmA4LiB4Lin4Li14Lii4LiZ4Lir4Lil4Lin4LiHCivguYDguIHguKgKK+C5gOC4geC4qC0KK+C5gOC4geC4qOC4mOC4suC4leC4uAor4LmA4LiB4Lio4LieCivguYDguIHguKjguKcKK+C5gOC4geC4qOC4sgor4LmA4LiB4Lio4Liy4LiB4Lix4LiZ4LiV4LmMCivguYDguIHguKjguLTguJnguLUKK+C5gOC4geC4qOC4tQor4LmA4LiB4Lip4LiV4LijCivguYDguIHguKnguJXguKPguIHguKMKK+C5gOC4geC4qeC4leC4o+C4geC4o+C4o+C4oQor4LmA4LiB4Lip4LiV4Lij4LmB4Lil4Liw4Liq4Lir4LiB4Lij4LiT4LmMCivguYDguIHguKnguJXguKPguKjguLLguKrguJXguKPguYwKK+C5gOC4geC4qeC4oQor4LmA4LiB4Lip4Lih4Lio4Liy4LiZ4LiV4LmMCivguYDguIHguKnguKHguKrguLHguJnguJXguYwKK+C5gOC4geC4qeC4teC4ouC4kwor4LmA4LiB4Lip4Li14Lii4LiT4Lit4Liy4Lii4Li4CivguYDguIHguKnguLXguKLguJkKK+C5gOC4geC4qeC4teC4ouC4owor4LmA4LiB4Lip4Li14Lii4Lij4Liq4Lih4Li44LiX4LijCivguYDguIHguKoKK+C5gOC4geC4quC4owor4LmA4LiB4Liq4Lij4LiX4Lix4LmJ4LiH4Lir4LmJ4LiyCivguYDguIHguKrguKPguLUKK+C5gOC4geC4quC4sgor4LmA4LiB4Liq4Li1CivguYDguIHguYnguK0KK+C5gOC4geC4reC4tOC4iuC4sgor4LmA4LiB4LiwCivguYDguIHguLDguIHguLAKK+C5gOC4geC4sgor4LmA4LiB4LmI4LiyCivguYDguIHguYnguLIKK+C5gOC4geC5i+C4sgor4LmA4LiB4Liy4LiV4LmMCivguYDguIHguLLguJfguLHguJPguJHguYwKK+C5gOC4geC4suC4l+C4uOC4oeC4nuC4owor4LmA4LiB4Liy4Lia4Li04LiZCivguYDguIHguLLguJrguLTguKUKK+C5gOC4geC4suC4oeC4suC4owor4LmA4LiB4Liy4Lil4Lix4LiUCivguYDguIHguLLguKXguLHguJTguIjguLXguJkKK+C5gOC4geC4suC4peC4tOC4mQor4LmA4LiB4Liy4LmE4Lio4LiiCivguYDguIHguLLguKvguKXguLUKK+C5gOC4geC4suC5gOC4q+C4peC4sgor4LmA4LiB4Liy4LmA4Lir4Lil4Li14Lii4LiHCivguYDguIHguYnguLLguK3guLXguYkKK+C5gOC4geC4suC4sAor4LmA4LiB4Liy4Liw4LiB4Li04LiZCivguYDguIHguLLguLDguYHguIHguLAKK+C5gOC4geC4tOC4hwor4LmA4LiB4Li04LmJ4LiHCivguYDguIHguLTguJQKK+C5gOC4geC4tOC4lOC4quC4ueC4o+C4ouC5jAor4LmA4LiB4Li04LiZCivguYDguIHguLTguJnguIHguLLguKMKK+C5gOC4geC4tOC4meC4geC4tOC4mQor4LmA4LiB4Li04LiZ4LiE4LiZCivguYDguIHguLTguJnguIfguLLguKEKK+C5gOC4geC4tOC4meC4lOC4tQor4LmA4LiB4Li04LiZ4LiV4Lix4LinCivguYDguIHguLTguJnguYTguJsKK+C5gOC4geC4tOC4meC5gOC4peC4ogor4LmA4LiB4Li04LiZ4Lir4LiZ4LmJ4LiyCivguYDguIHguLTguJoKK+C5gOC4geC4teC4ogor4LmA4LiB4Li14Lii4LiB4LiB4Liy4LiiCivguYDguIHguLXguKLguIcKK+C5gOC4geC4teC5iOC4ouC4hwor4LmA4LiB4Li14LmL4Lii4LiHCivguYDguIHguLXguYjguKLguIfguIfguK3guJkKK+C5gOC4geC4teC5iOC4ouC4h+C4leC4suC4ogor4LmA4LiB4Li14Lii4LiICivguYDguIHguLXguKLguIjguIHguKUKK+C5gOC4geC4teC4ouC4iOC4hOC4o+C5ieC4suC4mQor4LmA4LiB4Li14Lii4LiUCivguYDguIHguLXguKLguJTguIHguLHguJkKK+C5gOC4geC4teC4ouC4mQor4LmA4LiB4Li14LmJ4Lii4Lih4LmE4LiJ4LmICivguYDguIHguLXguYnguKLguKHguK3guLXguYsKK+C5gOC4geC4teC4ouC4o+C5jAor4LmA4LiB4Li14Lii4Lij4LiV4Li0CivguYDguIHguLXguKLguKPguJXguLQtCivguYDguIHguLXguKLguKPguJXguLTguYwKK+C5gOC4geC4teC4ouC4o+C4leC4tOC4hOC4uOC4kwor4LmA4LiB4Li14Lii4Lij4LiV4Li04LiZ4Li04Lii4LihCivguYDguIHguLXguKLguKPguJXguLTguJvguKPguLDguKfguLHguJXguLQKK+C5gOC4geC4teC4ouC4o+C4leC4tOC4oOC4ueC4oeC4tAor4LmA4LiB4Li14Lii4Lij4LiV4Li04Lii4LioCivguYDguIHguLXguKLguKPguJXguLTguKjguLHguIHguJTguLTguYwKK+C5gOC4geC4teC5iOC4ouC4pwor4LmA4LiB4Li14LmJ4Lii4LinCivguYDguIHguLXguYrguKLguKcKK+C5gOC4geC4teC5iOC4ouC4p+C4geC5ieC4reC4ogor4LmA4LiB4Li14LmJ4Lii4Lin4LmA4LiB4LmE4LilCivguYDguIHguLXguYjguKLguKfguILguYnguK3guIcKK+C5gOC4geC4teC5iOC4ouC4p+C4guC5ieC4suC4pwor4LmA4LiB4Li14LmJ4Lii4Lin4LiE4Lit4LmE4LiB4LmICivguYDguIHguLXguYjguKLguKfguJTguK3guIcKK+C5gOC4geC4teC5iOC4ouC4p+C4lOC4reC4h+C4q+C4meC4reC4h+C4ouC4uOC5iOC4hwor4LmA4LiB4Li14LmJ4Lii4Lin4LiZ4Lin4LihCivguYDguIHguLXguYjguKLguKfguYDguJrguYfguJQKK+C5gOC4geC4teC5ieC4ouC4p+C4m+C4o+C4sOC4l+C4teC4mwor4LmA4LiB4Li14LmI4Lii4Lin4LmB4Lid4LiB4Lih4Li44LiH4Lib4LmI4LiyCivguYDguIHguLXguYjguKLguKfguJ7guLHguJkKK+C5gOC4geC4teC5ieC4ouC4p+C4nuC4suC4mQor4LmA4LiB4Li14LmJ4Lii4Lin4Lie4Liy4Lij4Liy4Liq4Li1CivguYDguIHguLXguYjguKLguKfguYLguKLguIcKK+C5gOC4geC4teC5iuC4ouC4sAor4LmA4LiB4Li34LmJ4LitCivguYDguIHguLfguK3guIEKK+C5gOC4geC4t+C4reC4geC4oeC5ieC4sgor4LmA4LiB4Li34LmJ4Lit4LiB4Li54LilCivguYDguIHguLfguK3guJoKK+C5gOC4geC4t+C4reC4muC5hOC4mwor4LmB4LiBCivguYHguIHguYgKK+C5geC4geC5iQor4LmB4LiB4LmI4LiB4Lil4LmJ4LiyCivguYHguIHguYnguYDguIHguLXguYnguKLguKcKK+C5geC4geC5ieC4guC4seC4lAor4LmB4LiB4LmJ4LmE4LiCCivguYHguIHguYnguYHguITguYnguJkKK+C5geC4geC4hwor4LmB4LiB4LmI4LiHCivguYHguIHguYnguIcKK+C5geC4geC5iuC4hwor4LmB4LiB4LmJ4LiH4LiB4LmJ4LiZCivguYHguIHguIfguILguKEKK+C5geC4geC4h+C4iOC4t+C4lAor4LmB4LiB4LiH4LmE4LiUCivguYHguIHguIfguYHguJnguIcKK+C5geC4geC4h+C4muC4p+C4lAor4LmB4LiB4LiH4LmA4Lic4LmH4LiUCivguYHguIHguYjguIfguYHguKLguYjguIcKK+C5geC4geC4h+C4o+C5ieC4reC4mQor4LmB4LiB4LiH4Liq4LmJ4LihCivguYHguIHguYjguJTguLXguIHguKPguLUKK+C5geC4geC5iOC5geC4lOC4lAor4LmB4LiB4LmC4LiU4Lil4Li04LmA4LiZ4Li14Lii4LihCivguYHguIHguYnguJXguIEKK+C5geC4geC5iOC4leC4seC4pwor4LmB4LiB4LmJ4LiV4Lix4LinCivguYHguIHguYnguJXguYjguLLguIcKK+C5geC4geC5ieC4l+C4tQor4LmB4LiB4LmJ4LmC4LiX4LipCivguYHguIHguJkKK+C5geC4geC5iOC4mQor4LmB4LiB4LmI4LiZ4LmB4LiB4LmJ4LinCivguYHguIHguYjguJnguKrguLLguKMKK+C5geC4geC4meC4sAor4LmB4LiB4LmB4LiZCivguYHguIHguYnguJrguJkKK+C5geC4geC5iOC4muC5ieC4suC4mQor4LmB4LiB4LmJ4Lia4Liy4LibCivguYHguIHguYrguJsKK+C5geC4geC5ieC5gOC4nOC5h+C4lAor4LmB4LiB4LmJ4Lid4Lix4LiZCivguYHguIHguYjguYTguJ8KK+C5geC4geC4oQor4LmB4LiB4LmJ4LihCivguYHguIHguYnguKHguIrguYnguLMKK+C5geC4geC5ieC4oeC5geC4lOC4hwor4LmB4LiB4Lih4Lih4LiyCivguYHguIHguYnguKHguYHguKvguKHguYjguKEKK+C5geC4geC5ieC4oeC4t+C4rQor4LmB4LiB4Lij4LiBCivguYHguIHguKPguYjguIcKK+C5geC4geC4o+C5h+C4mQor4LmB4LiB4Lij4LiZ4Li04LiVCivguYHguIHguKPguYTguJ/guJXguYwKK+C5geC4geC4o+C5iOC4pwor4LmB4LiB4Lij4LiwCivguYHguIHguYjguYHguKPguJQKK+C5geC4geC4pQor4LmB4LiB4Lil4LmICivguYHguIHguKXguYnguIcKK+C5geC4geC4peC5ieC4h+C5gOC4geC4peC4sgor4LmB4LiB4Lil4LiZCivguYHguIHguKXguJoKK+C5geC4geC4peC4muC4q+C4meC4uQor4LmB4LiB4Lil4Lia4Lir4Li54Lir4LiZ4Li5CivguYHguIHguKXguYnguKEKK+C5geC4geC4peC4peC4reC4mQor4LmB4LiB4Lil4LmA4Lil4Li14Lii4LihCivguYHguIHguKXguYnguKcKK+C5geC4geC4peC4sAor4LmB4LiB4LmJ4Lil4LizCivguYHguIHguYHguKUKK+C5geC4geC4pwor4LmB4LiB4LmJ4LinCivguYHguIHguYnguKfguIHguYrguK0KK+C5geC4geC5ieC4p+C4geC4uOC5ieC4hwor4LmB4LiB4LmJ4Lin4LmB4LiB4Lil4LiaCivguYHguIHguKfguYjguIcKK+C5geC4geC4p+C5iOC4h+C5hOC4geC4pwor4LmB4LiB4Lin4LmI4LiH4LiV4Li14LiZ4Lir4Liy4LmA4Liq4Li14LmJ4Lii4LiZCivguYHguIHguYnguKfguIrguLTguIfguJTguKfguIcKK+C5geC4geC5ieC4p+C4leC4sgor4LmB4LiB4Lin4LmI4LiZCivguYHguIHguYnguKfguJzguKXguLbguIEKK+C5geC4geC5ieC4p+C4oeC4o+C4geC4lQor4LmB4LiB4LmJ4Lin4Lin4Li04LmA4LiK4Li14Lii4LijCivguYHguIHguYnguKfguKrguLLguKPguJ7guLHguJTguJnguLbguIEKK+C5geC4geC5ieC4p+C4quC4teC5hOC4oeC5ieC5hOC4nOC5iAor4LmB4LiB4LmJ4Lin4Lir4Li04LiZCivguYHguIHguYnguKfguKvguLkKK+C5geC4geC5iOC4p+C4seC4lAor4LmB4LiB4LmK4LiqCivguYHguIHguYrguKrguYTguILguYjguYDguJnguYjguLIKK+C5geC4geC5iuC4quC5gOC4ieC4t+C5iOC4reC4ogor4LmB4LiB4LmK4Liq4LiZ4LmJ4Liz4LiV4LiyCivguYHguIHguYnguKvguJnguYnguLIKK+C5geC4geC4sAor4LmB4LiB4Liw4LiU4LizCivguYHguIHguLDguKPguK3guKIKK+C5geC4geC4sOC4quC4sOC5gOC4geC5h+C4lAor4LmC4LiB4LmICivguYLguIHguYkKK+C5guC4geC5iwor4LmC4LiB4LiBCivguYLguIHguIHguYDguIHguIEKK+C5guC4geC4geC4meC4uOC4lwor4LmC4LiB4LiB4Li04LilLQor4LmC4LiB4LiB4Li04Lil4LiyCivguYLguIHguYLguIHguYkKK+C5guC4geC4hwor4LmC4LiB4LmI4LiHCivguYLguIHguIfguIHguLLguIcKK+C5guC4geC5ieC4h+C5gOC4geC5ieC4hwor4LmC4LiB4LiH4LmC4LiB4LmJCivguYLguIHguYnguIfguYLguITguYnguIcKK+C5guC4geC5gOC4iuC4suC4p+C5jAor4LmC4LiB4LiN4LiILQor4LmC4LiB4LiN4LiI4LiZCivguYLguIHguI3guIjguJnguLLguJcKK+C5guC4geC4jeC4iOC4sgor4LmC4LiB4LiP4Li0CivguYLguIHguJAKK+C5guC4geC4kOC4geC4o+C4sOC4lOC4ueC4gQor4LmC4LiB4LiQ4LiB4Liw4LiB4Lil4Li04LmJ4LiHCivguYLguIHguJDguIHguLHguIHguIHguKPguLIKK+C5guC4geC4kOC4geC5ieC4suC4meC4nuC4o+C5ieC4suC4pwor4LmC4LiB4LiQ4LmA4LiC4Lih4LiyCivguYLguIHguJDguIjguLjguKzguLLguKXguLHguKHguJ7guLIKK+C5guC4geC4kOC4iOC4uOC4rOC4suC4peC4s+C4nuC4sgor4LmC4LiB4LiQ4LiK4LiO4Liy4Lih4Lix4LiH4Lip4Li1CivguYLguIHguJDguIrguI7guLLguKHguLHguIfguKrguLUKK+C5guC4geC4kOC5gOC4iuC4teC4ouC4hwor4LmC4LiB4LiQ4LiZ4LmJ4Liz4LmA4LiV4LmJ4LiyCivguYLguIHguJDguJ7guLjguIfguJvguKXguLIKK+C5guC4geC4kOC4quC4rQor4LmC4LiB4LiQ4Lir4Lit4LihCivguYLguIHguJDguKvguLHguKfguJrguLHguKcKK+C5guC4geC4kOC4suC4qgor4LmC4LiB4LiTCivguYLguIHguJPguIEKK+C5guC4geC4lOC4seC4hwor4LmC4LiB4LiV4LmE4LiVCivguYLguIHguJfguLHguJPguJHguYwKK+C5guC4geC4mQor4LmC4LiB4LmI4LiZCivguYLguIHguYvguJkKK+C5guC4geC4m+C4tOC4meC4swor4LmC4LiB4Lih4LilCivguYLguIHguKHguLjguJcKK+C5guC4geC5gOC4oeC4mQor4LmC4LiB4LmA4Lih4LioCivguYLguIHguKIKK+C5guC4geC4ouC4l+C5ieC4reC4hwor4LmC4LiB4Lij4LmJCivguYLguIHguKPguIEKK+C5guC4geC4o+C4geC4geC4o+C4suC4gQor4LmC4LiB4Lij4LiB4LmE4LiB4LijCivguYLguIHguKPguIHguJjguLLguKMKK+C5guC4geC4o+C4geC4q+C4p+C4seC4lAor4LmC4LiB4Lij4LiHCivguYLguIHguKPguYjguIcKK+C5guC4geC4o+C5iOC4h+C4geC4o+C5iOC4suC4hwor4LmC4LiB4Lij4LiH4LmA4LiB4Lij4LiHCivguYLguIHguKPguYvguIfguYDguIHguKPguYvguIcKK+C5guC4geC4o+C4jeC4iAor4LmC4LiB4Lij4LiUCivguYLguIHguKPguJXguYvguJkKK+C5guC4geC4o+C4mAor4LmC4LiB4Lij4LiY4LiC4Li24LmJ4LiHCivguYLguIHguKPguJjguLIKK+C5guC4geC4o+C5i+C4mQor4LmC4LiB4Lij4LmL4LiZ4LmA4LiB4Lij4LmL4LiZCivguYLguIHguKPguKEKK+C5guC4geC4o+C4oeC4mOC4suC4leC4uAor4LmC4LiB4Lij4LiiCivguYLguIHguKPguKgKK+C5guC4geC5guC4o+C5guC4geC5gOC4lQor4LmC4LiB4LmC4Lij4LmC4LiB4LmC4Lij4LiBCivguYLguIHguYLguKPguYLguIHguYLguKoKK+C5guC4geC4peC4hwor4LmC4LiB4Lil4LiZCivguYLguIHguKXguLLguKvguKUKK+C5guC4geC5hOC4pQor4LmC4LiB4Lin4Li04LiXCivguYLguIHguKfguLTguKzguLLguKMKK+C5guC4geC4qAor4LmC4LiB4Lio4LilCivguYLguIHguKkKK+C5guC4geC4qeC4oQor4LmC4LiB4Lip4LiiCivguYLguIHguKnguLXguKLguYwKK+C5guC4geC4qgor4LmC4LiB4Liq4LiZCivguYLguIHguKrguLHguIoKK+C5guC4geC4quC4tOC4meC4l+C4o+C5jAor4LmC4LiB4Liq4Li14Lii4LmMCivguYLguIHguKrguLjguKEKK+C5guC4geC5hOC4quC4ogor4LmC4LiB4Lir4LiBCivguYLguIHguKvguKfguLIKK+C5g+C4geC4peC5iQor4LmD4LiB4Lil4LmJ4LmA4LiB4Lil4Li34Lit4LiB4Li04LiZ4LiU4LmI4Liy4LiHCivguYTguIEKK+C5hOC4geC5iAor4LmE4LiB4LmJCivguYTguIHguYoKK+C5hOC4geC5iwor4LmE4LiB4LmI4LiB4Lit4LihCivguYTguIHguYjguYHguIHguYjguYHguKHguYjguJvguKXguLLguIrguYjguK3guJkKK+C5hOC4geC5iOC5geC4geC5ieC4pwor4LmE4LiB4LmI4LmA4LiC4Li14LmI4LiiCivguYTguIHguYjguIrguJkKK+C5hOC4geC5i+C5geC4lOC4hwor4LmE4LiB4LmI4LmA4LiV4Li14LmJ4LiiCivguYTguIHguYjguJnguLIKK+C5hOC4geC5iOC4m+C5iOC4sgor4LmE4LiB4Lie4Lix4LilCivguYTguIHguYjguJ/guYnguLIKK+C5hOC4geC5iOC4n+C5ieC4suC4nuC4jeC4suC4peC4rQor4LmE4LiB4LijCivguYTguIHguKPguJ4KK+C5hOC4geC4o+C4peC4suC4qgor4LmE4LiB4Lij4Lio4LijCivguYTguIHguKPguKjguKPguLUKK+C5hOC4geC4o+C4quC4owor4LmE4LiB4Lij4Liq4Lij4Li1CivguYTguIHguKPguKrguLTguJfguJjguLQKK+C5hOC4geC5iOC4o+C4reC4h+C4muC5iOC4reC4mQor4LmE4LiB4LilCivguYTguIHguKXguYgKK+C5hOC4geC4peC5iOC5gOC4geC4peC4teC5iOC4ogor4LmE4LiB4Lil4Lib4Li34LiZ4LmA4LiX4Li14LmI4Lii4LiHCivguYTguIHguKXguLLguKoKK+C5hOC4geC4pwor4LmE4LiB4Lin4Lix4LilCivguYTguIHguYjguKrguLLguKHguK3guKLguYjguLLguIcKK+C5hOC4geC5iOC5gOC4q+C5h+C4meC4leC4teC4meC4h+C4uSDguIfguLnguYDguKvguYfguJnguJnguKHguYTguIHguYgKK+C5hOC4geC5iOC5guC4q+C5iAor4LmE4LiB4LmI4LmE4Lir4LmJCivguYTguIHguYjguK3guYjguK3guJkKK+C4ggor4LiC4LiHCivguILguIfguIjguLfguYrguK0KK+C4guC4iOC4owor4LiC4LiI4Lij4LiI4LiaCivguILguIjguK3guIEKK+C4guC4iOC4seC4lAor4LiC4LiI4Lix4LiU4LiC4LiI4Liy4LiiCivguILguIjguYjguLLguIcKK+C4guC4iOC4suC4ogor4LiC4LiI4Liy4LinCivguILguIjguLTguJUKK+C4guC4iOC4tOC4o+C4tOC4lAor4LiC4LiI4Li1CivguILguIjguLjguKIKK+C4guC5gOC4iOC4sgor4LiC4LiT4LiwCivguILguJQKK+C4guC4lOC4luC4p+C4suC4ogor4LiC4LiU4Liy4LiZCivguILguJXguK3guKIKK+C4guC4l+C4tOC4hwor4LiC4LiX4Li24LiHCivguILguJkKK+C4guC5ieC4mQor4LiC4LmJ4LiZ4LmB4LiE4LmJ4LiZCivguILguJnguIcKK+C4guC4meC4h+C5gOC4meC4t+C5ieC4rQor4LiC4LiZ4LiUCivguILguJnguJfguKPguLLguKLguYDguILguYnguLLguKfguLHguJQKK+C4guC4meC4mQor4LiC4LiZ4LiaCivguILguJnguJrguJjguKPguKPguKHguYDguJnguLXguKLguKEKK+C4guC4meC4muC4m+C4o+C4sOC5gOC4nuC4k+C4tQor4LiC4LiZ4Lie4Lit4LiHCivguILguJnguYDguJ7guIrguKMKK+C4guC4meC4oQor4LiC4LiZ4Lih4LiE4Lij4LiBCivguILguJnguKHguIjguLXguJkKK+C4guC4meC4oeC4l+C4o+C4suC4ogor4LiC4LiZ4Lih4Lic4Liq4Lih4LiZ4LmJ4Liz4Lii4LiyCivguILguJnguKHguJzguLHguIHguIHguLLguJQKK+C4guC4meC4oeC5gOC4quC5ieC4mQor4LiC4LiZ4Lih4Lir4Lix4Lin4Lic4Lix4LiB4LiB4Liy4LiUCivguILguJnguYHguKHguKcKK+C4guC4meC4peC4uOC4gQor4LiC4LiZ4Lil4Li44LiB4LiC4LiZ4Lie4Lit4LiHCivguILguJnguKrguYjguIcKK+C4guC4meC4quC4seC4leC4p+C5jAor4LiC4LiZ4Lir4LiZ4LmJ4Liy4LmB4LiC4LmJ4LiH4LmE4Lih4LmI4Lij4LmI4Lin4LiHCivguILguJnguKvguJnguLkKK+C4guC4meC4q+C4ouC4reC4hwor4LiC4LiZ4Lit4LiHCivguILguJnguK3guJkKK+C4guC4meC4reC4mgor4LiC4LiZ4Lit4Li44LiiCivguILguJnguLHguJQKK+C4guC4meC4seC4mQor4LiC4LiZ4Liy4LiBCivguILguJnguLLguIcKK+C4guC4meC4suC4lAor4LiC4LiZ4Liy4LiZCivguILguJnguLLguJnguJnguYnguLMKK+C4guC4meC4suC4meC4peC4teC5iAor4LiC4LiZ4Liy4LiaCivguILguJnguLLguKIKK+C4guC4meC4swor4LiC4LiZ4Li04Lip4LiQCivguILguJnguLTguKnguJDguLIKK+C4guC4meC4uOC4mQor4LiC4LiZ4Li44LiZ4LiZ4LiBCivguILguJnguLjguJnguJvguYjguLIKK+C4guC4meC4uOC4meC4quC4s+C4m+C4sOC4peC4rQor4LiC4LiaCivguILguJrguILguLHguJkKK+C4guC4muC5gOC4guC4teC5ieC4ouC4p+C5gOC4hOC4teC5ieC4ouC4p+C4n+C4seC4mQor4LiC4Lia4LiE4Li04LiUCivguILguJrguInguLHguJkKK+C4guC4muC4lgor4LiC4Lia4Lib4Lix4LiN4Lir4LiyCivguILguJrguYDguJzguLLguLAKK+C4guC4muC5hOC4oeC5iOC5geC4leC4gQor4LiC4Lia4Lin4LiZCivguILguJrguKfguJnguIHguLLguKMKK+C4guC4muC4p+C4owor4LiC4Lia4Li54LijCivguILguKEKK+C4guC5iOC4oQor4LiC4LmI4Lih4LiC4Lin4Lix4LiNCivguILguYjguKHguILguLXguYgKK+C4guC4oeC4guC4t+C5iOC4mQor4LiC4LmI4Lih4LiC4Li34LiZCivguILguYjguKHguILguLfguJnguIHguKPguLDguJfguLPguIrguLPguYDguKPguLIKK+C4guC5iOC4oeC4guC4t+C4meC5g+C4iAor4LiC4LmI4Lih4LiC4Li54LmICivguILguYjguKHguYDguILguLLguYLguITguILguLfguJnguYPguKvguYnguIHguLTguJnguKvguI3guYnguLIKK+C4guC4oeC4h+C5guC4geC4o+C4ogor4LiC4LmI4Lih4LiX4LmJ4Lit4LiHCivguILguYjguKHguJnguLLguKEKK+C4guC4oeC5gOC4m+C5h+C4meC4ouC4sgor4LiC4Lih4LihCivguILguKHguKfguJQKK+C4guC4oeC4p+C4lOC4ouC4sgor4LiC4Lih4Lin4LiZCivguILguYjguKHguKvguKHguLkKK+C4guC4oeC4q+C4tOC4mQor4LiC4LmI4Lih4LmA4Lir4LiHCivguILguYjguKHguYDguKvguIfguITguLDguYDguJnguIfguKPguYnguLLguKIKK+C4guC4oeC4reC4hwor4LiC4Lih4LmI4Lit4LihCivguILguKHguYjguK3guKHguJrguLLguIcKK+C4guC4oeC4reC4ogor4LiC4Lih4Lix4LiHCivguILguKHguLHguJoKK+C4guC4oeC4sgor4LiC4Lih4LmJ4LizCivguILguKHguLTguYnguJkKK+C4guC4oeC4tOC5ieC4meC4geC4seC4muC4m+C4ueC4mQor4LiC4Lih4Li04LmJ4LiZ4LiC4Liy4LinCivguILguKHguLTguYnguJnguILguLbguYnguJkKK+C4guC4oeC4tOC5ieC4meC5gOC4hOC4o+C4t+C4rQor4LiC4Lih4Li04LmJ4LiZ4LiK4Lix4LiZCivguILguKHguLTguYnguJnguJnguLLguIcKK+C4guC4oeC4tOC5ieC4meC4peC4tOC4hwor4LiC4Lih4Li04LmJ4LiZ4Lir4Lix4Lin4LiC4Li24LmJ4LiZCivguILguKHguLTguYnguJnguK3guYnguK3guKIKK+C4guC4oeC4tOC4mgor4LiC4Lih4Li14LiC4Lih4Lix4LiZCivguILguKHguLbguIcKK+C4guC4oeC4tuC4h+C4l+C4tuC4hwor4LiC4Lih4Li4CivguILguKHguLjguIHguILguKHguLHguKcKK+C4guC4oeC4uOC4lOC4guC4oeC4tOC4lAor4LiC4Lih4Li44LiaCivguILguKHguLjguJrguILguKHguLTguJoKK+C4guC4oeC4uOC4oQor4LiC4LmC4Lih4LiiCivguILguKItCivguILguKLguJQKK+C4guC4ouC4oQor4LiC4Lii4LmI4LihCivguILguKLguKUKK+C4guC4ouC4reC4gQor4LiC4Lii4Lit4LiHCivguILguKLguYjguK3guJkKK+C4guC4ouC5ieC4reC4mQor4LiC4Lii4LiwCivguILguKLguLDguYHguILguKLguIcKK+C4guC4ouC4seC4gQor4LiC4Lii4Lix4LiB4LiC4Lii4LmI4Lit4LiZCivguILguKLguLHguIHguILguKLguYnguK3guJkKK+C4guC4ouC4seC4mQor4LiC4Lii4Lix4LmJ4LiZCivguILguKLguLHguJoKK+C4guC4ouC4seC4muC4guC4ouC4suC4ogor4LiC4Lii4Lix4Lia4LmA4LiC4Lii4Li34LmJ4Lit4LiZCivguILguKLguLLguJQKK+C4guC4ouC4suC4mgor4LiC4Lii4Liy4LiiCivguILguKLguLLguKLguILguLXguYnguYDguJfguYjguK0KK+C4guC4ouC4swor4LiC4Lii4LmJ4LizCivguILguKLguLTguIEKK+C4guC4ouC4tOC4mgor4LiC4Lii4Li04LmI4LihCivguILguKLguLXguYkKK+C4guC4ouC4teC5iOC4guC4ouC4seC4mQor4LiC4Lii4Li44LiB4LiC4Lii4Li04LiBCivguILguKLguLjguIHguILguKLguLjguKIKK+C4guC4ouC4uOC4mgor4LiC4Lii4Li44Lia4LiC4Lii4Li04LiaCivguILguKLguLjguKEKK+C4guC4ouC4uOC5ieC4oQor4LiC4Lii4Li44LmJ4Lih4LiV4Li14LiZ4Lir4Lih4LiyCivguILguKLguLjguKIKK+C4guC4o+C4oQor4LiC4Lij4Lij4LiELQor4LiC4Lij4Lij4LiE4LmMCivguILguKPguLHguKcKK+C4guC4o+C4seC4p+C4ouC4suC4ogor4LiC4Lij4Li04LiaCivguILguKPguLUKK+C4guC4o+C4tuC4oQor4LiC4Lij4Li44LiC4Lij4LiwCivguILguKXguYnguIcKK+C4guC4peC4mgor4LiC4Lil4LihCivguILguKXguKfguJkKK+C4guC4peC5ieC4reC5gOC4h+C4suC4sAor4LiC4Lil4LmJ4Lit4LmA4LiX4Li14Lii4LiZCivguILguKXguLHguIcKK+C4guC4peC4seC4mgor4LiC4Lil4LiyCivguILguKXguLLguJQKK+C4guC4peC4suC4ogor4LiC4Lil4Li04LiaCivguILguKXguLbguIcKK+C4guC4peC4uOC4gQor4LiC4Lil4Li44LiB4LiC4Lil4Lix4LiBCivguILguKXguLjguIHguILguKXguLTguIEKK+C4guC4peC4uOC4geC4guC4peC4uOC5iOC4ogor4LiC4Lil4Li44LiaCivguILguKXguLjguKEKK+C4guC4peC4uOC4oeC4m+C4o+C4sOC5gOC4iOC4teC4ouC4lAor4LiC4Lil4Li44LmI4LiiCivguILguKXguLkKK+C4guC4peC4ueC5iAor4LiC4Lin4LiHCivguILguYjguKfguIcKK+C4guC4p+C4lAor4LiC4Lin4LiU4LiV4Li14LiZ4LiK4LmJ4Liy4LiHCivguILguKfguJTguYLguKvguKUKK+C4guC4p+C4mQor4LiC4LmI4Lin4LiZCivguILguKfguJnguILguKfguLLguKIKK+C4guC4p+C4mgor4LiC4Lin4LiiCivguILguKfguKLguYDguILguLTguJkKK+C4guC4p+C4ouC5g+C4iAor4LiC4Lin4Liw4LmE4LiC4Lin4LmI4LmA4LiC4Lin4Li14LmI4LiiCivguILguKfguLHguIHguYTguILguKfguYgKK+C4guC4p+C4seC4jQor4LiC4Lin4Lix4LiN4LmA4LiB4Li14LmI4Lii4LiHCivguILguKfguLHguI3guILguYnguLLguKcKK+C4guC4p+C4seC4jeC5geC4guC4p+C4mQor4LiC4Lin4Lix4LiN4LmD4LiICivguILguKfguLHguI3guJTguLUKK+C4guC4p+C4seC4jeC4leC4sgor4LiC4Lin4Lix4LiN4Lia4LmI4LiyCivguILguKfguLHguI3guJrguLTguJkKK+C4guC4p+C4seC4jeC5gOC4oeC4t+C4reC4hwor4LiC4Lin4Lix4LiN4Lir4LiZ4Li1CivguILguKfguLHguI3guKvguJnguLXguJTguLXguJ3guYjguK0KK+C4guC4p+C4seC4jeC4q+C4suC4ogor4LiC4Lin4Lix4LiN4Lit4LmI4Lit4LiZCivguILguKfguLHguJQKK+C4guC4p+C4seC4lOC4guC4p+C4tOC4lAor4LiC4Lin4Lix4LiU4LmB4LiE4Lin4LmJ4LiHCivguILguKfguLHguYnguJkKK+C4guC4p+C4seC4mgor4LiC4Lin4Lix4Lia4LmA4LiC4Lin4Li14Lii4LinCivguILguKfguLIKK+C4guC4p+C4suC4gQor4LiC4Lin4Liy4LiB4Lir4LiZ4Liy4LihCivguILguKfguLLguIcKK+C4guC4p+C5ieC4suC4hwor4LiC4Lin4LmJ4Liy4LiH4LiB4LiyCivguILguKfguYnguLLguIfguILguYnguLLguKfguYDguKHguYjguLIKK+C4guC4p+C5ieC4suC4h+C4hOC5ieC4reC4mQor4LiC4Lin4LmJ4Liy4LiH4LiH4Li54LmE4Lih4LmI4Lie4LmJ4LiZ4LiE4LitCivguILguKfguYnguLLguIfguIjguLHguIHguKMKK+C4guC4p+C4suC4h+C5gOC4iuC4tOC4hwor4LiC4Lin4Liy4LiH4LmGIOC4o+C4teC5hgor4LiC4Lin4Liy4LiH4LmC4Lil4LiBCivguILguKfguLLguJQKK+C4guC4p+C4suC4mQor4LiC4Lin4Liy4LiZ4Lic4LmI4Liy4LiL4Liy4LiBCivguILguKfguLLguJnguJ/guYnguLIKK+C4guC4p+C4suC4ouC4guC4p+C4mQor4LiC4Lin4Liy4LinCivguILguKfguYnguLLguKcKK+C4guC4p+C4tOC4lAor4LiC4Lip4LiT4LiwCivguILguKnguLHguKIKK+C4guC4qeC4teC4k+C4suC4qOC4o+C4ngor4LiC4Lip4Li14LijCivguILguK0KK+C4guC5iOC4rQor4LiC4LmJ4LitCivguILguK3guIEKK+C4guC5ieC4reC4geC4juC4q+C4oeC4suC4ogor4LiC4LmJ4Lit4LiB4LiV4Li04LiB4LiyCivguILguYnguK3guIHguLPguKvguJnguJQKK+C4guC4reC5geC4geC4pwor4LiC4LmJ4Lit4LmA4LiC4Li14Lii4LiZCivguILguYnguK3guYTguIIKK+C4guC5ieC4reC4hOC4p+C4suC4oQor4LiC4LmJ4Lit4LiE4Lix4LiU4Lii4LmI4LitCivguILguK3guITguLPguJnguYnguK3guKIKK+C4guC5ieC4reC4hOC4tOC4lAor4LiC4LmJ4Lit4LiE4Li04LiU4LmA4Lir4LmH4LiZCivguILguK3guIcKK+C4guC5ieC4reC4hwor4LiC4Lit4LiH4LiB4Lil4Liy4LiHCivguILguK3guIfguIHguK3guIcKK+C4guC4reC4h+C4geC4s+C4meC4seC4pQor4LiC4Lit4LiH4LiB4Li04LiZCivguILguK3guIfguYDguIHguYjguLIKK+C4guC4reC4h+C4guC4muC5gOC4hOC4teC5ieC4ouC4pwor4LiC4Lit4LiH4LiC4Lil4Lix4LiHCivguILguK3guIfguILguKfguLHguI0KK+C4guC5ieC4reC4h+C4guC4seC4lAor4LiC4Lit4LiH4LmB4LiC4LmH4LiHCivguILguK3guIfguITguYnguLLguIcKK+C4guC4reC4h+C4hOC4suC4pwor4LiC4Lit4LiH4LmA4LiE4LmH4LihCivguILguK3guIfguYDguITguLXguKLguIcKK+C4guC4reC4h+C5guC4iOC4owor4LiC4LmJ4Lit4LiH4LmD4LiICivguILguK3guIfguIrguLMKK+C4guC4reC4h+C5g+C4iuC5iQor4LiC4Lit4LiH4LiU4Li1CivguILguK3guIfguYDguJbguLfguYjguK3guJkKK+C4guC4reC4h+C4meC4reC4gQor4LiC4Lit4LiH4Lij4LmJ4Lit4LiZCivguILguK3guIfguKXguLHguJoKK+C4guC4reC4h+C5gOC4peC5iOC4mQor4LiC4Lit4LiH4LmA4Lil4Li34LmI4Lit4LiZCivguILguK3guIfguYDguKXguLfguYjguK3guJnguYDguJXguLfguK3guJnguILguLHguJnguKvguKHguLLguIEKK+C4guC4reC4h+C4p+C4seC4lAor4LiC4Lit4LiH4Lin4LmI4Liy4LiHCivguILguYnguK3guIfguYHguKfguLAKK+C4guC4reC4h+C4quC4h+C4huC5jAor4LiC4Lit4LiH4Liq4LiH4Lin4LiZCivguILguK3guIfguKrguJQKK+C4guC4reC4h+C4quC4lOC4guC4reC4h+C4hOC4suC4pwor4LiC4Lit4LiH4Liq4LiU4LiE4Liy4LinCivguILguK3guIfguKvguKXguKfguIcKK+C4guC4reC4h+C4q+C4p+C4suC4mQor4LiC4Lit4LiH4Lir4Liy4Lii4LiV4Liw4Lie4Liy4Lii4Lia4Liy4LibCivguILguK3guIfguYDguKvguKXguKcKK+C4guC4reC4h+C5geC4q+C5ieC4hwor4LiC4Lit4LiH4LmE4Lir4LilCivguILguK3guIfguYTguKvguKfguYkKK+C4guC4reC4h+C5ieC4rQor4LiC4Lit4LiH4LmJ4Liy4LinCivguILguK3guInguLLguKIKK+C4guC4reC4iuC5ieC4suC4hwor4LiC4Lit4LiUCivguILguK3guJTguITguYjguK3guJkKK+C4guC4reC5gOC4lOC4iuC4sAor4LiC4Lit4LiV4Lix4LinCivguILguK3guJfguK3guIcKK+C4guC4reC4l+C4suC4mQor4LiC4Lit4LiX4Li1CivguILguYnguK3guYDguJfguYfguIjguIjguKPguLTguIcKK+C4guC4reC5guC4l+C4qQor4LiC4Lit4LiZCivguILguYjguK3guJkKK+C4guC5ieC4reC4mQor4LiC4Lit4LiZ4LiU4Lit4LiBCivguILguK3guJnguKrguLHguIEKK+C4guC4reC4meC4tOC4quC4seC4ogor4LiC4Lit4LiaCivguILguK3guJrguILguYjguLLguKIKK+C4guC4reC4muC5gOC4guC4lQor4LiC4Lit4Lia4LiE4Li44LiTCivguILguK3guJrguYPguIgKK+C4guC4reC4muC4l+C4suC4hwor4LiC4Lit4Lia4Lie4Lij4Liw4LiE4Li44LiTCivguILguK3guJrguYTguKMKK+C4guC4reC4muC5gOC4q+C4peC5h+C4gQor4LiC4LmJ4Lit4Lia4Lix4LiH4LiE4Lix4LiaCivguILguYnguK3guJrguLHguI3guI3guLHguJXguLQKK+C4guC4reC4m+C4o+C4sOC4l+C4suC4mQor4LiC4Lit4Lib4Lij4Liw4LiX4Liy4LiZ4LmC4LiX4LipCivguILguYnguK3guJvguKXguLXguIHguKLguYjguK3guKIKK+C4guC4reC5hOC4m+C4l+C4tQor4LiC4Lit4LmA4Lid4LmJ4LiyCivguILguK3guJ7guKPguLDguKPguLLguIrguJfguLLguJkKK+C4guC5ieC4reC4nuC4seC4mgor4LiC4Lit4LihCivguILguYnguK3guKHguLfguK3guILguLLguKcKK+C4guC5ieC4reC4oeC4ueC4pQor4LiC4LmJ4Lit4LmB4Lih4LmJCivguILguYjguK3guKIKK+C4guC5ieC4reC4ogor4LiC4LmI4Lit4Lii4LiZ4LmJ4LizCivguILguYjguK3guKLguKvguJnguLLguKEKK+C4guC5iOC4reC4ouC4q+C4ouC4reC4hwor4LiC4Lit4Lii4Li34LihCivguILguK3guKPguYnguK3guIcKK+C4guC4reC4o+C4seC4mgor4LiC4Lit4Lij4Lix4Lia4LiB4Lij4Liw4Lic4LihCivguILguK3guKPguLHguJrguJzguKEKK+C4guC5ieC4reC4o+C4suC4iuC4geC4suC4owor4LiC4Lit4LmB4Lij4LiHCivguILguYnguK3guKjguK3guIEKK+C4guC5ieC4reC4quC4reC4mgor4LiC4Lit4Liq4Lix4LiaCivguILguYnguK3guYDguKrguLfguK0KK+C4guC5ieC4reC4q+C4sgor4LiC4LmJ4Lit4LmD4Lir4LiN4LmI4LmD4LiI4LiE4Lin4Liy4LihCivguILguK3guK3guKDguLHguKIKK+C4guC5ieC4reC4reC5ieC4reC4ogor4LiC4LmJ4Lit4Lit4LmJ4Liy4LiHCivguILguLDguILguYjguLMKK+C4guC4sOC5geC4guC5iOC4mQor4LiC4Liw4LmB4LiC4LmJ4LiZCivguILguLDguYHguIjguLAKK+C4guC4sOC5geC4luC4gQor4LiC4Liw4LiZ4Liy4LiZCivguILguLDguYDguJnguYfguJQKK+C4guC4sOC4oeC4reC4oeC4guC4sOC5geC4oeC4oQor4LiC4Liw4Lih4Lix4LiB4LmA4LiC4Lih4LmJ4LiZCivguILguLDguKHguLjguIHguILguLDguKHguK3guKEKK+C4guC4sOC5geC4oeC4i+C4rQor4LiC4Liw4LmB4Lih4LiY4LihCivguILguLDguKLguLTguIEKK+C4guC4sOC4ouC4uOC4gQor4LiC4Liw4LmA4Lii4LmJ4Lit4LmB4LiC4Lii4LmI4LiHCivguILguLDguYHguKLguLAKK+C4guC4seC4hAor4LiC4Lix4LiHCivguILguLHguIfguILguYnguK0KK+C4guC4seC4h+C4guC4reC4gQor4LiC4Lix4LiH4Lib4Lil4LmJ4Lit4LiHCivguILguLHguIfguKvguJnguYjguKfguKIKK+C4guC4seC4igor4LiC4Lix4LiK4LiBCivguILguLHguJPguJEtCivguILguLHguJPguJHguKrguIHguKMKK+C4guC4seC4k+C4keC4quC4teC4oeC4sgor4LiC4Lix4LiUCivguILguLHguJTguYDguIHguKXguLIKK+C4guC4seC4lOC4guC4p+C4suC4hwor4LiC4Lix4LiU4LiC4LmJ4Lit4LiHCivguILguLHguJTguILguLfguJkKK+C4guC4seC4lOC5gOC4guC4oeC4owor4LiC4Lix4LiU4LmA4LiC4Li04LiZCivguILguLHguJTguYHguILguYfguIcKK+C4guC4seC4lOC4hOC4rQor4LiC4Lix4LiU4LmA4LiE4Li34Lit4LiHCivguILguLHguJTguYHguITguYnguJkKK+C4guC4seC4lOC4iOC4seC4h+C4q+C4p+C4sAor4LiC4Lix4LiU4LmD4LiICivguILguLHguJTguJTguK3guIEKK+C4guC4seC4lOC4leC4sgor4LiC4Lix4LiU4LiV4Liy4LiX4Lix4LieCivguILguLHguJTguJXguLPguJnguLLguJkKK+C4guC4seC4lOC5geC4leC4sAor4LiC4Lix4LiU4Lia4LiXCivguILguLHguJTguYDguJrguLIKK+C4guC4seC4lOC4oeC4reC4mQor4LiC4Lix4LiU4Lih4Lit4LiZ4LiV4Lix4Lin4Lic4Li54LmJCivguILguLHguJTguKHguK3guJnguKvguKXguKfguIcKK+C4guC4seC4lOC4ouC4reC4gQor4LiC4Lix4LiU4LmB4Lii4LmJ4LiHCivguILguLHguJTguKXguLLguKAKK+C4guC4seC4lOC4quC4mQor4LiC4Lix4LiU4Liq4Lih4Liy4LiY4Li0CivguILguLHguJTguKvguJnguLHguIEKK+C4guC4seC4lOC4q+C5ieC4suC4hwor4LiC4Lix4LiU4Lir4Li5CivguILguLHguJXguJXguLTguKItCivguILguLHguJXguJXguLTguKLguKHguLLguJnguLAKK+C4guC4seC4mQor4LiC4Lix4LmJ4LiZCivguILguLHguJnguIHguKfguYnguLLguJkKK+C4guC4seC4meC5geC4guC5h+C4hwor4LiC4Lix4LiZ4LiK4Liw4LmA4LiZ4Liy4LiwCivguILguLHguJnguYDguIrguLTguIcKK+C4guC4seC4meC4leC5iOC4rQor4LiC4Lix4LiZ4LiV4Li0CivguILguLHguJnguJXguLUKK+C4guC4seC4meC5guC4leC4gQor4LiC4Lix4LiZ4LiX4Lit4LiH4Lie4Lii4Liy4Lia4Liy4LiXCivguILguLHguJnguJfguLUKK+C4guC4seC4meC4mOC5jAor4LiC4Lix4LiZ4LiY4Liy4Lin4Liy4LijCivguILguLHguJnguJnguYnguLPguJ7guLLguJnguKPguK3guIcKK+C4guC4seC4meC4peC4h+C4q+C4tOC4mQor4LiC4Lix4LiZ4Liq4Lih4LitCivguILguLHguJnguKrguLLguITguKMKK+C4guC4seC4meC4quC4ueC5iQor4LiC4Lix4LiZ4Lir4Lih4Liy4LiBCivguILguLHguJnguYDguKvguKEKK+C4guC4seC4meC4reC4suC4quC4sgor4LiC4Lix4LiaCivguILguLHguJrguILguLHguJkKK+C4guC4seC4muC4guC4teC5iAor4LiC4Lix4Lia4LmA4LiE4Lil4Li34LmI4Lit4LiZCivguILguLHguJrguYDguITguLXguYjguKLguKcKK+C4guC4seC4muC4i+C4rQor4LiC4Lix4Lia4LiW4LmI4Liy4LiiCivguILguLHguJrguJ7guKUKK+C4guC4seC4muC5hOC4oeC5iQor4LiC4Lix4Lia4LmE4Lih4LmJ4Lia4Lix4LiT4LmA4LiR4Liy4Liw4Lin4LmMCivguILguLHguJrguKPguYnguK3guIcKK+C4guC4seC4ogor4LiC4Lix4LinCivguILguLHguYnguKcKK+C4guC4seC5ieC4p+C4geC4o+C4sOC4iOC4gQor4LiC4Lix4LmJ4Lin4Lia4Lin4LiBCivguILguLHguYnguKfguYHguKHguYjguYDguKvguKXguYfguIEKK+C4guC4seC5ieC4p+C5geC4oeC5iOC5gOC4q+C4peC5h+C4geC5guC4peC4gQor4LiC4Lix4LmJ4Lin4Lil4LiaCivguILguLHguYnguKfguYLguKXguIEKK+C4guC4sgor4LiC4LmI4LiyCivguILguYnguLIKK+C4guC4suC4gQor4LiC4Liy4LiB4LiaCivguILguLLguIHguKPguKPguYTguJXguKMKK+C4guC4suC4geC5iuC4p+C4ogor4LiC4Liy4LiB4Lit4LihCivguILguLLguYDguIHguKfguLXguKLguJkKK+C4guC5ieC4suC5gOC4geC5iOC4suC5gOC4leC5iOC4suC5gOC4peC4teC5ieC4ouC4hwor4LiC4Liy4LmE4LiB4LmICivguILguLLguYDguILguLXguKLguJQKK+C4guC4suC4hwor4LiC4LmI4Liy4LiHCivguILguYnguLLguIcKK+C4guC5ieC4suC4h+C5hgor4LiC4LmJ4Liy4LiH4LiB4LiaCivguILguYnguLLguIfguIHguKPguLDguJTguLLguJkKK+C4guC5ieC4suC4h+C4guC4tuC5ieC4mQor4LiC4LmJ4Liy4LiH4LiE4Lin4Liy4LiiCivguILguYnguLLguIfguYYg4LiE4Li54LmGCivguILguYnguLLguIfguYDguIfguLTguJkKK+C4guC5ieC4suC4h+C4iOC4seC4mQor4LiC4Liy4LiH4LiU4Lix4LiHCivguILguLLguIfguYHguJTguIcKK+C4guC5ieC4suC4h+C4leC4gQor4LiC4LmJ4Liy4LiH4LiV4Liw4LmA4Lig4LiyCivguILguYnguLLguIfguJXguLXguJkKK+C4guC5ieC4suC4h+C5geC4o+C4oQor4LiC4LmJ4Liy4LiH4Lil4Liy4LiiCivguILguYnguLLguIfguKvguLHguKfguJnguK3guJkKK+C4guC5ieC4suC4h+C4reC4reC4gQor4LiC4Liy4LiI4LijCivguILguYnguLLguYDguIjguYnguLIKK+C4guC4suC4k+C4uAor4LiC4Liy4LiUCivguILguLLguJTguIHguLHguJkKK+C4guC4suC4lOC4hOC4o+C4suC4pwor4LiC4Liy4LiU4LiE4Lit4LiK4LmJ4Liy4LiHCivguILguLLguJTguITguYjguLIKK+C4guC4suC4lOC4hOC4swor4LiC4Liy4LiU4LmB4LiE4Lil4LiZCivguILguLLguJTguYPguIgKK+C4guC4suC4lOC4leC4geC4muC4geC4nuC4o+C5iOC4reC4hwor4LiC4Liy4LiU4LiV4Lil4Liy4LiUCivguILguLLguJTguJXguK3guJkKK+C4guC4suC4lOC4leC4seC4pwor4LiC4Liy4LiU4LiX4Li44LiZCivguILguLLguJTguJvguLLguIEKK+C4guC4suC4lOC4oeC4t+C4rQor4LiC4Liy4LiU4LmA4Lih4LmH4LiUCivguILguLLguJTguKXguK3guKIKK+C4guC4suC4lOC4q+C4seC4p+C4iuC5ieC4suC4hwor4LiC4Liy4LiU4LmA4Lir4Lil4Li34LitCivguILguLLguJTguK3guLLguKLguLgKK+C4guC5iOC4suC5geC4lOC4hwor4LiC4LmI4Liy4LiV4LmJ4LiZCivguILguLLguJfguJnguLXguKLguLAKK+C4guC4suC4l+C4o+C4suC4ogor4LiC4LmJ4Liy4LmE4LiXCivguILguLLguJkKK+C4guC4suC4meC4geC4ouC4suC4hwor4LiC4Liy4LiZ4LmE4LiCCivguILguLLguJnguJnguLLguIQKK+C4guC4suC4meC4o+C4q+C4seC4qgor4LiC4LmJ4Liy4LiZ4Lit4LiB4LmA4LiI4LmJ4LiyIOC4guC5ieC4suC4p+C4meC4reC4geC4q+C4oeC5ieC4rQor4LiC4LmJ4Liy4LiZ4LmJ4Lit4LiiCivguILguLLguJnguLLguIcKK+C4guC4suC4mgor4LiC4Liy4Lib4Lij4Liw4LiI4LizCivguILguYnguLLguYHguJzguYjguJnguJTguLTguJkKK+C4guC5ieC4suC5gOC4neC5ieC4sgor4LiC4LmJ4Liy4Lie4LmA4LiI4LmJ4LiyCivguILguYnguLLguJ7guKPguLAKK+C4guC5ieC4suC4nuC4o+C4sOC4nuC4uOC4l+C4mOC5gOC4iOC5ieC4sgor4LiC4Liy4Lie4Lix4LiaCivguILguLLguKEKK+C4guC5iOC4suC4oQor4LiC4LmJ4Liy4LihCivguILguYnguLLguKHguYYKK+C4guC5ieC4suC4oeC4meC5ieC4s+C4guC5ieC4suC4oeC4l+C4sOC5gOC4pQor4LiC4LmJ4Liy4Lih4LiZ4LmJ4Liz4LiC4LmJ4Liy4Lih4LiX4LmI4LiyCivguILguYnguLLguKHguKrguKHguLjguJfguKMKK+C4guC5ieC4suC4oeC4q+C4meC5ieC4sgor4LiC4LmJ4Liy4Lih4Lir4LiZ4LmJ4Liy4LiC4LmJ4Liy4Lih4LiV4LiyCivguILguYnguLLguKHguKvguLHguKcKK+C4guC4suC4oeC5ieC4sgor4LiC4Liy4LiiCivguILguYjguLLguKIKK+C4guC4suC4ouC4guC4suC4lAor4LiC4LmI4Liy4Lii4LiH4Liy4LiZCivguILguLLguKLguIrguLLguJXguLQKK+C4guC4suC4ouC4iuC4t+C5iOC4rQor4LiC4Liy4Lii4LiV4Lix4LinCivguILguLLguKLguJXguLLguKHguITguLPguJ7guKPguKPguJPguJnguLIKK+C4guC4suC4ouC4leC4suC4oeC4leC4seC4p+C4reC4ouC5iOC4suC4hwor4LiC4Liy4Lii4LiX4Lit4LiU4LiV4Lil4Liy4LiUCivguILguLLguKLguJrguYnguLLguJnguILguLLguKLguYDguKHguLfguK3guIcKK+C4guC4suC4ouC4m+C4peC4teC4gQor4LiC4Liy4Lii4Lic4LmJ4Liy4LmA4Lit4Liy4Lir4LiZ4LmJ4Liy4Lij4Lit4LiUCivguILguLLguKLguYDguJzguLfguYjguK3guIrguK3guJoKK+C4guC4suC4ouC4neC4suC4gQor4LiC4Liy4Lii4Liq4LmI4LiHCivguILguLLguKLguKvguJnguYnguLIKK+C4guC4suC4ouC4q+C4meC5ieC4suC4guC4suC4ouC4leC4sgor4LiC4Liy4Lii4Lir4LiZ4LmJ4Liy4Lin4Lix4LiZ4Lil4Liw4Lir4LmJ4Liy4LmA4Lia4Li14LmJ4LiiCivguILguLLguKLguKvguLkKK+C4guC4suC4ouC5gOC4q+C4oeC4sgor4LiC4LmJ4Liy4Lij4Liy4LiK4LiB4Liy4LijCivguILguLLguKUKK+C4guC4suC4pwor4LiC4LmI4Liy4LinCivguILguYnguLLguKcKK+C4guC5iOC4suC4p+C4geC4o+C4reC4hwor4LiC4LmJ4Liy4Lin4LiB4Lij4Li5CivguILguYnguLLguKfguIHguKXguYnguK3guIcKK+C4guC5ieC4suC4p+C4geC4peC5ieC4sgor4LiC4LmJ4Liy4Lin4LmA4LiB4Lij4Li14Lii4LiaCivguILguYnguLLguKfguYDguIHguKPguLXguKLguJrguJvguLLguIHguKvguKHguYnguK0KK+C4guC5ieC4suC4p+C5gOC4geC4o+C4teC4ouC4muC4reC5iOC4reC4mQor4LiC4LmJ4Liy4Lin4LmA4LiB4LmI4LiyCivguILguYnguLLguKfguYHguIHguIcKK+C4guC5ieC4suC4p+C5guC4geC4mgor4LiC4LmJ4Liy4Lin4LiC4Lin4Lix4LiNCivguILguYnguLLguKfguILguK3guIcKK+C4guC5ieC4suC4p+C4guC5ieC4sgor4LiC4LmJ4Liy4Lin4LmB4LiC4LiBCivguILguYjguLLguKfguITguKPguLLguKcKK+C4guC5ieC4suC4p+C4hOC4p+C4mgor4LiC4LmJ4Liy4Lin4LiE4LizCivguILguYnguLLguKfguYHguITguJoKK+C4guC5ieC4suC4p+C4h+C4seC4mQor4LiC4LmJ4Liy4Lin4LiI4Li14LmICivguILguLLguKfguIjguLXguJoKK+C4guC5ieC4suC4p+C5gOC4iOC5ieC4sgor4LiC4LmJ4Liy4Lin4LmB4LiI4LiBCivguILguYnguLLguKfguYHguIrguYgKK+C4guC5ieC4suC4p+C4i+C5ieC4reC4oQor4LiC4LmJ4Liy4Lin4LiL4Lit4LiiCivguILguYnguLLguKfguYHguJTguIHguIfguLIKK+C4guC5ieC4suC4p+C5geC4lOC4h+C5geC4geC4h+C4o+C5ieC4reC4mQor4LiC4LmJ4Liy4Lin4LiV4LmJ4LihCivguILguYnguLLguKfguJXguYnguKHguJnguYnguLPguKfguLjguYnguJkKK+C4guC5ieC4suC4p+C4leC5ieC4oeC4m+C4seC4lAor4LiC4LmJ4Liy4Lin4LiV4Lit4LiBCivguILguYnguLLguKfguJXguK3guIHguJXguLHguYnguIcKK+C4guC5ieC4suC4p+C4leC4reC4geC5geC4leC4gQor4LiC4LmJ4Liy4Lin4LiV4Lix4LiHCivguILguYnguLLguKfguJXguLLguIEKK+C4guC5ieC4suC4p+C4leC4uQor4LiC4LmJ4Liy4Lin4LmB4LiV4LiBCivguILguYnguLLguKfguYHguJXguJkKK+C4guC5ieC4suC4p+C4l+C4tOC4nuC4ouC5jAor4LiC4LmJ4Liy4Lin4LiZ4LiBCivguILguYnguLLguKfguJnguLbguYjguIcKK+C4guC5ieC4suC4p+C4muC4suC4leC4owor4LiC4LmJ4Liy4Lin4Lia4Li04LiT4LiR4LmMCivguILguYnguLLguKfguJrguLjguKvguKPguLXguYgKK+C4guC5ieC4suC4p+C5gOC4muC4sgor4LiC4LmJ4Liy4Lin4LmA4Lia4Li34LitCivguILguYnguLLguKfguJvguKPguLDguJTguLHguJrguJTguLTguJkKK+C4guC5ieC4suC4p+C4m+C4peC4ueC4gQor4LiC4LmJ4Liy4Lin4Lib4Lix4LiUCivguILguYnguLLguKfguJvguYjguLIKK+C4guC5ieC4suC4p+C4m+C4suC4lAor4LiC4LmJ4Liy4Lin4Lib4Li44LmJ4LiZCivguILguYnguLLguKfguYDguJvguKPguJUKK+C4guC5ieC4suC4p+C5gOC4m+C4peC4t+C4reC4gQor4LiC4LmJ4Liy4Lin4LmA4Lib4Li14Lii4LiBCivguILguYnguLLguKfguJzguK3guIEKK+C4guC5ieC4suC4p+C4nOC4reC4geC4geC4o+C4sOC4muC4reC4geC4meC5ieC4swor4LiC4LmJ4Liy4Lin4Lie4Lij4LiwCivguILguLLguKfguJ7guKfguIcKK+C4guC5ieC4suC4p+C4nuC4reC4hwor4LiC4LmI4Liy4Lin4Lie4Liy4LiU4Lir4Lix4LinCivguILguYnguLLguKfguYLguJ7guJQKK+C4guC5ieC4suC4p+C4n+C5iOC4suC4hwor4LiC4LmJ4Liy4Lin4LmA4Lig4LiyCivguILguYnguLLguKfguKHguLHguJkKK+C4guC4suC4p+C4oeC5ieC4sgor4LiC4LmJ4Liy4Lin4Lih4Li04LmI4LiZCivguILguYnguLLguKfguYDguKHguYjguLIKK+C4guC5ieC4suC4p+C5gOC4oeC5iOC4suC4l+C4reC4lAor4LiC4LmI4Liy4Lin4Lii4LiB4LmA4Lih4LiGCivguILguYnguLLguKfguKLguLLguIHguKvguKHguLLguIHguYHguJ7guIcKK+C4guC5ieC4suC4p+C4ouC4suC4hOC4uQor4LiC4LmJ4Liy4Lin4Lii4LizCivguILguYnguLLguKfguYDguKLguYfguJnguYPguJXguYkKK+C4guC5ieC4suC4p+C5gOC4ouC5h+C4meC5gOC4q+C4meC4t+C4rQor4LiC4LmJ4Liy4Lin4Lil4Liw4Lih4Liy4LiZCivguILguYjguLLguKfguKXguYjguLIKK+C4guC5iOC4suC4p+C4quC4lAor4LiC4LmJ4Liy4Lin4Liq4Lin4LiiCivguILguYnguLLguKfguKrguLLguIEKK+C4guC5iOC4suC4p+C4quC4suC4owor4LiC4LmJ4Liy4Lin4Liq4Liy4LijCivguILguYnguLLguKfguKrguLjguIEKK+C4guC5ieC4suC4p+C5gOC4quC5ieC4mQor4LiC4LmJ4Liy4Lin4Lir4LiZ4Lix4LiBCivguILguYnguLLguKfguKvguKHguIEKK+C4guC5ieC4suC4p+C4q+C4oeC4suC4gQor4LiC4LmJ4Liy4Lin4Lir4Lil4Liy4LihCivguILguYnguLLguKfguKvguKXguLLguKHguJXguLHguJQKK+C4guC5ieC4suC4p+C4q+C4seC4p+C5guC4guC4mQor4LiC4LmJ4Liy4Lin4Lir4Liy4LiH4LiK4LmJ4Liy4LiHCivguILguYnguLLguKfguYDguKvguJnguLXguKLguKcKK+C4guC5ieC4suC4p+C5gOC4q+C4meC4teC4ouC4p+C4lOC4swor4LiC4LmJ4Liy4Lin4LmA4Lir4Lil4Li34Lit4LmA4LiB4Lil4Li34Lit4Lit4Li04LmI4LihCivguILguLLguKfguYPguKvguI3guYgKK+C4guC5ieC4suC4p+C5g+C4q+C4oeC5iAor4LiC4LmJ4Liy4Lin4LmD4Lir4Lih4LmI4LiZ4LmJ4Lit4LiiCivguILguYnguLLguKfguYPguKvguKHguYjguJvguKXguLLguKHguLHguJkKK+C4guC5ieC4suC4p+C5g+C4q+C4oeC5iOC5g+C4q+C4jeC5iAor4LiC4LmJ4Liy4Lin4Lit4Lix4LiH4LiB4Li44Lil4Li1CivguILguYnguLLguKfguK7guLLguIcKK+C4guC5ieC4suC4qOC4tuC4gQor4LiC4Liy4Lir4Lih4LiyCivguILguLLguKvguKLguLHguYjguIcKK+C4guC5ieC4suC4q+C4peC4p+C4hwor4LiC4LmJ4Liy4Lir4Lil4Lin4LiH4LmA4LiU4Li04LihCivguILguYnguLLguKvguKXguKfguIfguJnguYnguK3guKIKK+C4guC5ieC4suC4q+C4peC4p+C4h+C4q+C4peC4seC4h+C4peC4suC4ogor4LiC4Liy4Lit4LmI4Lit4LiZCivguILguLMKK+C4guC5iOC4s+C5gOC4guC4teC4ouC4pwor4LiC4Li04LiBCivguILguLTguIHguYYKK+C4guC4tOC4hwor4LiC4Li04LmI4LiHCivguILguLTguIfguIHguYfguKPguLIg4LiC4LmI4Liy4LiB4LmH4LmB4Lij4LiHCivguILguLTguIfguYHguIHguKXguIcKK+C4guC4tOC4h+C5geC4hOC4o+C4hwor4LiC4Li04LiH4LmB4Lir4LmJ4LiHCivguILguLTguJQKK+C4guC4tOC4m+C4quC4seC4l+C5guC4lwor4LiC4Li04LihCivguILguLXguYgKK+C4guC4teC5iQor4LiC4Li14LmJ4LiB4LiaCivguILguLXguYnguIHguKPguLDguJfguLLguYDguIHguKXguLfguK0KK+C4guC4teC5ieC4geC5ieC4reC4meC5g+C4q+C4jeC5iOC5g+C4q+C5ieC5gOC4lOC5h+C4geC5gOC4q+C5h+C4mQor4LiC4Li14LmJ4LiB4Liw4LmC4Lil4LmJ4LmC4LiX4LmJCivguILguLXguYnguIHguLIKK+C4guC4teC5ieC4geC5ieC4suC4hwor4LiC4Li14LmJ4LiB4Liy4LiU4LiHCivguILguLXguYnguIHguLLguYHguJTguIcKK+C4guC4teC5ieC4geC4suC5gOC4q+C4peC4teC5iOC4ouC4oQor4LiC4Li14LmJ4LmA4LiB4Lil4Li34LitCivguILguLXguYnguILguKEKK+C4guC4teC5ieC4guC4p+C4hwor4LiC4Li14LmJ4LiC4LmJ4LiyCivguILguLXguYnguILguLjguKIKK+C4guC4teC5ieC5gOC4guC5h+C4mgor4LiC4Li14LmJ4LiE4Lij4Lit4LiBCivguILguLXguYnguITguKPguLHguYjguIcKK+C4guC4teC5ieC4hOC4p+C4suC4ogor4LiC4Li14LmJ4LiE4Li44LiBCivguILguLXguYnguYDguITguYnguLIKK+C4guC4teC5ieC5guC4hOC4o+C4hwor4LiC4Li14LmJ4LiI4Liy4LiaCivguILguLXguYjguIrguYnguLLguIfguIjguLHguJrguJXguLHguYrguIHguYHguJXguJkKK+C4guC4teC5ieC4i+C5ieC4suC4ogor4LiC4Li14LmJ4LmA4LiL4LiyCivguILguLXguYnguYTguIvguYkKK+C4guC4teC4k+C4sAor4LiC4Li14LiT4Liy4Liq4LieCivguILguLXguJQKK+C4guC4teC4lOC4guC4seC5ieC4mQor4LiC4Li14LiU4LiE4Lij4LmI4Lit4LihCivguILguLXguJTguITguLHguYjguJkKK+C4guC4teC4lOC5gOC4quC5ieC4meC4leC4suC4ogor4LiC4Li14LmJ4LmA4LiU4Li34Lit4LiUCivguILguLXguYnguYHguJTguJQKK+C4guC4teC5ieC4leC4lAor4LiC4Li14LmJ4LiV4Lix4LiH4LiZ4Li1CivguILguLXguYnguJXguLTguYnguKcKK+C4guC4teC5ieC4leC4t+C4lAor4LiC4Li14LmJ4LmA4LiV4LmI4LiyCivguILguLXguYnguYHguJXguYkKK+C4guC4teC5ieC5hOC4leC5iQor4LiC4Li14LmJ4LiW4Lix4LiHCivguILguLXguYnguYDguJbguYnguLIKK+C4guC4teC5ieC5hOC4lgor4LiC4Li14LmJ4LiX4LiyCivguILguLXguYnguJfguLnguJQKK+C4guC4teC5ieC5gOC4l+C5iOC4rQor4LiC4Li14LmJ4LmA4LiX4LiyCivguILguLXguYnguYDguJfguLfguK3guIEKK+C4guC4teC5ieC4meC4gQor4LiC4Li14Lib4LiZ4Liy4Lin4Li44LiYCivguILguLXguJvguJnguLLguKfguLjguJjguJnguLPguKfguLTguJbguLUKK+C4guC4teC5ieC4m+C4sOC4leC4tOC5i+C4pwor4LiC4Li14LmJ4Lib4Liy4LiBCivguILguLXguYnguYDguJvguYkKK+C4guC4teC5ieC5gOC4m+C5h+C4lAor4LiC4Li14LmJ4Lic4LiHCivguILguLXguYnguJzguLbguYnguIcKK+C4guC4teC5ieC4neC4tOC5iOC4mQor4LiC4Li14LmJ4LmB4Lie4LmJ4LiK4Lin4LiZ4LiV4Li1CivguILguLXguYnguKHguK3guJQKK+C4guC4teC5ieC4oeC5ieC4sgor4LiC4Li14LmI4Lih4LmJ4Liy4LiV4Li14LiE4Lil4Li1CivguILguLXguYjguKHguYnguLLguYDguKXguLXguKLguJrguITguYjguLLguKIKK+C4guC4teC5iOC4oeC5ieC4suC4quC5iOC4h+C5gOC4oeC4t+C4reC4hwor4LiC4Li14LmJ4Lih4Li04LmI4LiZCivguILguLXguYnguKHguLnguIEKK+C4guC4teC5ieC5gOC4oeC4hgor4LiC4Li14LmJ4LmB4Lih4Lil4LiH4Lin4Lix4LiZCivguILguLXguYnguYHguKHguKcKK+C4guC4teC5ieC5hOC4oeC5iOC5g+C4q+C5ieC4q+C4oeC4suC4geC4tOC4mQor4LiC4Li14LmJ4Lii4Lit4LiBCivguILguLXguYnguKLguLIKK+C4guC4teC5ieC5geC4ogor4LiC4Li14LijCivguILguLXguYnguKPguLHguIfguYHguIQKK+C4guC4teC5ieC4o+C4suC4lOC5guC4l+C4qeC4peC5iOC4reC4hwor4LiC4Li14LmJ4Lij4Li04LmJ4LinCivguILguLXguYnguYDguKPguLfguYnguK3guJkKK+C4guC4teC5ieC5gOC4o+C4t+C5ieC4reC4meC4geC4p+C4suC4hwor4LiC4Li14LmJ4LmB4Lij4LiUCivguILguLXguYnguYHguKPguJTguKXguYnguK3guKHguJvguKPguKfguJQKK+C4guC4teC5ieC4peC4oQor4LiC4Li14LmJ4Lil4Lit4LiBCivguILguLXguYnguKXguLXguJoKK+C4guC4teC5ieC5gOC4peC5h+C4mgor4LiC4Li14LmJ4LmC4Lil4LmJCivguILguLXguYnguKrguLnguJQKK+C4guC4teC5ieC4q+C4lOC4leC4lOC4q+C4suC4ogor4LiC4Li14LmJ4Lir4LiZ4Lit4LiZCivguILguLXguYnguKvguJnguYnguLIKK+C4guC4teC5ieC4q+C4meC4uQor4LiC4Li14LmJ4Lir4Lih4LiyCivguILguLXguYnguYDguKvguKPguYgKK+C4guC4teC5ieC5gOC4q+C4peC5h+C4gQor4LiC4Li14LmJ4LmD4Lir4Lih4LmI4Lir4Lih4Liy4Lir4Lit4LihCivguILguLXguYnguK3guYnguJkKK+C4guC4teC5ieC4reC5ieC4suC4ogor4LiC4Li24LiHCivguILguLbguYnguIcKK+C4guC4tuC5ieC4h+C5guC4geC4o+C4mAor4LiC4Li24LiH4LiC4Lix4LiHCivguILguLbguYnguIfguYDguITguLXguKLguJQKK+C4guC4tuC4h+C4leC4sgor4LiC4Li24LiH4Lie4Li34LiUCivguILguLbguIfguK3guLnguJQKK+C4guC4tuC5ieC4mQor4LiC4Li24LmJ4LiZ4LmA4LiC4Li14Lii4LiHCivguILguLbguYnguJnguITguKPguLkKK+C4guC4tuC5ieC4meC4hOC4suC4mQor4LiC4Li24LmJ4LiZ4LmD4LiICivguILguLbguYnguJnguInguYjguLLguKIKK+C4guC4tuC5ieC4meC4iuC4t+C5iOC4rQor4LiC4Li24LmJ4LiZ4LiK4Li34LmI4Lit4Lin4LmI4LiyCivguILguLbguYnguJnguIvguLHguIcKK+C4guC4tuC5ieC4meC4leC5ieC4meC5hOC4oeC5ieC4quC4uOC4lOC4ouC4reC4lAor4LiC4Li24LmJ4LiZ4Lib4Liy4LiBCivguILguLbguYnguJnguJ7guKXguLHguJrguJ7guKXguLIKK+C4guC4tuC5ieC4meC5hOC4oeC5ieC4guC4tuC5ieC4meC4oeC4t+C4rQor4LiC4Li24LmJ4LiZ4Lij4Liw4Lin4Liy4LiHCivguILguLbguYnguJnguKPguYnguLLguJkKK+C4guC4tuC5ieC4meC4quC4suC4ogor4LiC4Li24LmJ4LiZ4LmA4Liq4Li14Lii4LiHCivguILguLbguYnguJnguKvguJnguYnguLLguILguLbguYnguJnguJXguLIKK+C4guC4tuC5ieC4meC4q+C4oeC5ieC4rQor4LiC4Li24LmJ4LiZ4Lir4LiyCivguILguLbguYnguJnguYDguKvguJnguLfguK3guKXguYjguK3guIfguYPguJXguYkKK+C4guC4t+C4mQor4LiC4Li34LmI4LiZCivguILguLfguYjguJnguILguKEKK+C4guC4t+C4meC5g+C4iAor4LiC4Li34LmI4LitCivguILguLfguYjguK3guIHguLDguKXguLDguJvguLHguIfguKvguLIKK+C4guC4t+C5iOC4reC4guC4p+C4suC4hwor4LiC4Li34LmI4Lit4LiE4Lix4LiUCivguILguLfguYjguK3guIjguKHguLnguIEKK+C4guC4t+C5iOC4reC5gOC4l+C5iOC4suC4leC5iOC4rQor4LiC4Li34LmI4Lit4Lic4Li1CivguILguLfguYjguK3guKHguLjguIEKK+C4guC4t+C5iOC4reC4q+C4oeC4ueC5iAor4LiC4Li44LiBCivguILguLjguJQKK+C4guC4uOC4lOC4hOC4uOC5ieC4ogor4LiC4Li44LiU4LiU4LmJ4Lin4Lii4Lib4Liy4LiB4LiW4Liy4LiB4LiU4LmJ4Lin4Lii4LiV4LiyCivguILguLjguJTguJTguLTguJnguIHguLTguJnguKvguI3guYnguLIKK+C4guC4uOC4lOC4muC5iOC4reC4peC5iOC4reC4m+C4peC4sgor4LiC4Li44LiZCivguILguLjguYjguJkKK+C4guC4uOC5iOC4meC4guC5ieC4reC4h+C4q+C4oeC4reC4h+C5g+C4iAor4LiC4Li44LmI4LiZ4LmA4LiE4Li34Lit4LiHCivguILguLjguYjguJnguYHguITguYnguJkKK+C4guC4uOC5iOC4meC5g+C4iAor4LiC4Li44LiZ4LiX4Lit4LiHCivguILguLjguJnguJnguLLguIcKK+C4guC4uOC4meC4meC4suC4h+C5g+C4iuC5iOC4nuC5iOC4reC5geC4oeC5iCDguKvguLTguJnguYHguIfguYjguYPguIrguYjguJXguLLguKLguLLguKIKK+C4guC4uOC4meC4meC5ieC4swor4LiC4Li44LiZ4Lia4Liy4LilCivguILguLjguJnguYHguJzguJkKK+C4guC4uOC4meC4nuC4pQor4LiC4Li44LiZ4Lie4Lix4LiS4LiZ4LmMCivguILguLjguJnguYDguJ7guYfguJQKK+C4guC4uOC5iOC4meC4oeC4seC4pwor4LiC4Li44LiZ4LmE4Lih4LmI4LiC4Li24LmJ4LiZCivguILguLjguJnguKjguLLguKUKK+C4guC4uOC4meC4qOC4tuC4gQor4LiC4Li44LmI4LiZ4Lir4Lih4Lit4LiHCivguILguLjguJnguKvguKHguLfguYjguJkKK+C4guC4uOC4meC4q+C4peC4p+C4hwor4LiC4Li44LihCivguILguLjguKIKK+C4guC4uOC4ouC5hOC4nOC5iAor4LiC4Li44Lii4Lit4Li04LiZ4LiX4Lij4Li14Lii4LmMCivguILguLkKK+C4guC4ueC5iAor4LiC4Li54LmI4LiB4Lij4Lij4LmC4LiK4LiBCivguILguLnguYjguILguKfguLHguI0KK+C4guC4ueC5iOC5gOC4guC5h+C4jQor4LiC4Li54LiUCivguILguLnguJTguKPguLXguJQKK+C4guC4ueC4lOC5gOC4peC4t+C4reC4lAor4LiC4Li54LiU4LmA4Lil4Li34Lit4LiU4LiC4Li54LiU4LmA4LiZ4Li34LmJ4LitCivguYDguIIKK+C5gOC4guC5iQor4LmA4LiC4LiBCivguYDguILguYfguIcKK+C5gOC4guC5iOC4hwor4LmA4LiC4LiI4LijCivguYDguILguYfguI0KK+C5gOC4guC5h+C4jeC5g+C4iAor4LmA4LiC4LmH4LiUCivguYDguILguYfguJTguILguYnguK0KK+C5gOC4guC5h+C4lOC4guC5ieC4reC5gOC4guC5h+C4lOC4peC4swor4LmA4LiC4LmH4LiU4LmA4LiC4Li14LmJ4Lii4LinCivguYDguILguYfguJTguJ/guLHguJkKK+C5gOC4guC4lOC4sgor4LmA4LiC4LiVCivguYDguILguJXguYHguJTguJkKK+C5gOC4guC4leC5gOC4peC4t+C4reC4geC4leC4seC5ieC4hwor4LmA4LiC4LiV4Lit4Liz4LiZ4Liy4LiI4Lio4Liy4LilCivguYDguILguJkKK+C5gOC4guC5h+C4mQor4LmA4LiC4LmI4LiZCivguYDguILguYjguJnguYDguILguLXguYnguKLguKcKK+C5gOC4guC5h+C4meC4hOC4o+C4geC4guC4tuC5ieC4meC4oOC4ueC5gOC4guC4sgor4LmA4LiC4LmI4LiZ4LiG4LmI4LiyCivguYDguILguJnguIcKK+C5gOC4guC4meC4h+C4meC4suC4ouC4nuC4o+C4suC4mQor4LmA4LiC4LiZ4LmH4LiUCivguYDguILguJnguKIKK+C5gOC4guC4muC5h+C4iOC4guC4muC4p+C4mQor4LmA4LiC4Lia4LmH4LiVCivguYDguILguKEtCivguYDguILguYfguKEKK+C5gOC4guC5ieC4oQor4LmA4LiC4LmH4Lih4LiB4Lil4Lix4LiUCivguYDguILguYnguKHguILguYnguJkKK+C5gOC4guC5h+C4oeC4guC4seC4lAor4LmA4LiC4LmJ4Lih4LiC4Liy4LiaCivguYDguILguYnguKHguILguLLguJrguYTguKvguKEKK+C5gOC4guC5ieC4oeC5geC4guC5h+C4hwor4LmA4LiC4LmH4Lih4LiE4Lin4Lix4LiBCivguYDguILguKHguYfguIcKK+C5gOC4guC5ieC4oeC4h+C4p+C4lAor4LmA4LiC4LmH4Lih4LiL4LmI4Lit4LiZ4Lib4Lil4Liy4LiiCivguYDguILguKHguYfguJTguYHguILguKHguYgKK+C5gOC4guC5h+C4oeC4l+C4tOC4qAor4LmA4LiC4Lih4LmI4LiZCivguYDguILguKHguYnguJkKK+C5gOC4guC4oeC5ieC4meC4guC4sOC4oeC4seC4gQor4LmA4LiC4Lih4LijCivguYDguILguKHguKPguYTguJfguKPguYLguKLguIQKK+C5gOC4guC4oeC4o+C4nuC4p+C4hwor4LmA4LiC4Lih4Lij4Lij4Liy4LiK4Lia4Li44Lij4Li1CivguYDguILguKHguKPguYDguKvguKXguLfguK3guIcKK+C5gOC4guC4oeC4o+C5g+C4q+C4jeC5iAor4LmA4LiC4Lih4LiyCivguYDguILguKHguYjguLIKK+C5gOC4guC4oeC4suC5guC4geC4o+C4ogor4LmA4LiC4Lih4LmI4Liy4LiL4Liy4LiHCivguYDguILguKHguLfguK3guJoKK+C5gOC4guC4ogor4LmA4LiC4Lii4LiBCivguYDguILguKLguYjguIcKK+C5gOC4guC4ouC5iOC4h+C5gOC4geC5h+C4h+C4geC4reC4ogor4LmA4LiC4Lii4LiV4Liy4LiiCivguYDguILguKLguYnguK3guYHguILguKLguYjguIcKK+C5gOC4guC4ouC4reC4sOC4guC4ouC4sAor4LmA4LiC4Lii4LmI4LiyCivguYDguILguKLguLTguJkKK+C5gOC4guC4ouC4tOC4mgor4LmA4LiC4Lii4Li04Lia4LiC4Lii4Liy4LiaCivguYDguILguKLguLTguJrguJDguLLguJnguLAKK+C5gOC4guC4ouC4teC4ouC4p+C4guC4ouC4reC4mQor4LmA4LiC4Lii4Li34LmJ4Lit4LiZCivguYDguILguKPguK3guLAKK+C5gOC4guC4peC4hwor4LmA4LiC4Lil4Lit4LiwCivguYDguILguKXguLAKK+C5gOC4guC4peC4sgor4LmA4LiC4Lil4Liy4LiwCivguYDguILguKcKK+C5gOC4guC4qeC4leC4owor4LmA4LiC4Lip4LihCivguYDguILguKnguLXguKLguKMKK+C5gOC4guC4rOC4sAor4LmA4LiC4Liw4LiC4LiwCivguYDguILguLIKK+C5gOC4guC5iOC4sgor4LmA4LiC4LmJ4LiyCivguYDguILguYnguLLguIHguKPguLDguYLguIjguKEKK+C5gOC4guC5ieC4suC4geC4o+C4sOC4lOC4ueC4geC4lOC4swor4LmA4LiC4Liy4LiB4Lin4Liy4LiHCivguYDguILguYnguLLguYDguIHguJPguJHguYwKK+C5gOC4guC5ieC4suC5gOC4geC4teC4ogor4LmA4LiC4Liy4LmB4LiB4LiwCivguYDguILguYnguLLguILguYnguK0KK+C5gOC4guC5ieC4suC4guC4sgor4LmA4LiC4LmJ4Liy4LiC4LmJ4Liy4LiHCivguYDguILguYnguLLguITguK0KK+C5gOC4guC5ieC4suC4hOC4tOC4pwor4LmA4LiC4LmJ4Liy4LiE4Li54LmICivguYDguILguYnguLLguYDguITguKPguLfguYjguK3guIcKK+C5gOC4guC5ieC4suC5gOC4hOC5ieC4sgor4LmA4LiC4LmJ4Liy4LmE4LiE4LilCivguYDguILguYnguLLguYDguIfguLXguKLguJoKK+C5gOC4guC5ieC4suC5geC4h+C5iAor4LmA4LiC4LmJ4Liy4LmA4LiI4LmJ4LiyCivguYDguILguYnguLLguYDguIjguYnguLLguYDguILguYnguLLguJnguLLguKIKK+C5gOC4guC5ieC4suC5g+C4iAor4LmA4LiC4LmJ4Liy4LiK4Li34LmI4LitCivguYDguILguYnguLLguIzguLLguJkKK+C5gOC4guC5ieC4suC4lOC5ieC4suC4ouC5gOC4guC5ieC4suC5gOC4guC5h+C4oQor4LmA4LiC4LmJ4Liy4LmA4LiU4Li34Lit4LiiCivguYDguILguYnguLLguJXguKPguLXguJfguLnguJUKK+C5gOC4guC5ieC4suC4leC4reC4hwor4LmA4LiC4LmJ4Liy4LiV4Lix4LinCivguYDguILguYnguLLguJXguLLguIjguJkKK+C5gOC4guC5ieC4suC4leC4suC4oeC4leC4o+C4reC4geC4reC4reC4geC4leC4suC4oeC4m+C4o+C4sOC4leC4uQor4LmA4LiC4LmJ4Liy4LiV4Liy4Lij4LmJ4Liy4LiiCivguYDguILguYnguLLguJXguLPguKPguLIKK+C5gOC4guC5ieC4suC4leC4ueC5iQor4LmA4LiC4LmJ4Liy4LmE4LiV4LmJ4LmA4LiC4LmJ4Liy4LmE4LifCivguYDguILguYnguLLguJbguYnguLMKK+C5gOC4guC5ieC4suC4luC4tuC4hwor4LmA4LiC4LmJ4Liy4LmA4LiW4Li34LmI4Lit4LiZ4Lit4Lii4LmI4Liy4Lil4Li34Lih4Lie4Lij4LmJ4LiyCivguYDguILguYnguLLguJfguKPguIcKK+C5gOC4guC5ieC4suC4l+C5iOC4sgor4LmA4LiC4LmJ4Liy4LiX4Li1CivguYDguILguYnguLLguJfguLXguYgKK+C5gOC4guC5ieC4suC4l+C4uOC4mQor4LmA4LiC4LmJ4Liy4LiZ4Lit4LiB4Lit4Lit4LiB4LmD4LiZCivguYDguILguYnguLLguYDguJnguLfguYnguK0KK+C5gOC4guC5ieC4suC5geC4muC4mgor4LmA4LiC4LmJ4Liy4LmB4Lia4Lia4LmA4LiC4LmJ4Liy4LmB4Lic4LiZCivguYDguILguYnguLLguJvguIEKK+C5gOC4guC5ieC4suC4m+C4suC4geC5hOC4oeC5iQor4LmA4LiC4LmJ4Liy4Lib4Li04LmJ4LiHCivguYDguILguYnguLLguJvguLXguIEKK+C5gOC4guC4suC5gOC4m+C4peC5ieC4sgor4LmA4LiC4LmJ4Liy4LmE4LibCivguYDguILguYnguLLguJzguLUKK+C5gOC4guC5ieC4suC4nOC4ueC5ieC5gOC4guC5ieC4suC4hOC4mQor4LmA4LiC4LmJ4Liy4Lid4Lix4LiBCivguYDguILguYnguLLguJ3guLHguJkKK+C5gOC4guC5ieC4suC5gOC4neC5ieC4sgor4LmA4LiC4LmJ4Liy4LmA4Lid4Li34Lit4LiBCivguYDguILguYnguLLguJ7guIHguYDguILguYnguLLguKvguYjguK0KK+C5gOC4guC5ieC4suC4nuC4o+C4o+C4qeC4sgor4LmA4LiC4LmJ4Liy4Lie4Lij4Liw4LmA4LiC4LmJ4Liy4LiZ4Liy4LiHCivguYDguILguYnguLLguJ7guLjguIcKK+C5gOC4guC4suC4oeC4rQor4LmA4LiC4LmJ4Liy4Lih4LmI4Liy4LiZCivguYDguILguYnguLLguYDguKHguLfguK3guIfguJXguLLguKvguKXguLTguYjguKfguJXguYnguK3guIfguKvguKXguLTguYjguKfguJXguLLguJXguLLguKEKK+C5gOC4guC5ieC4suC5hOC4oeC5iQor4LmA4LiC4LmJ4Liy4Lii4LiyCivguYDguILguYnguLLguKPguIHguYDguILguYnguLLguJ7guIcKK+C5gOC4guC5ieC4suC4o+C4q+C4seC4qgor4LmA4LiC4LmJ4Liy4Lij4LmI4Lit4LiH4LmA4LiC4LmJ4Liy4Lij4Lit4LiiCivguYDguILguYnguLLguKPguK3guJoKK+C5gOC4guC5ieC4suC4o+C4reC4ogor4LmA4LiC4LmJ4Liy4Lij4LmJ4Liy4LiiCivguYDguILguYnguLLguKPguLXguJUKK+C5gOC4guC5ieC4suC4o+C4ueC4mwor4LmA4LiC4LmJ4Liy4Lij4Li54Lib4LmA4LiC4LmJ4Liy4Lij4Lit4LiiCivguYDguILguYjguLLguKXguLIKK+C5gOC4guC5ieC4suC4peC4tOC5ieC4mQor4LmA4LiC4LmJ4Liy4LmA4Lil4LmI4LihCivguYDguILguYnguLLguYDguKXguLfguK3guJQKK+C5gOC4guC5ieC4suC5gOC4peC4t+C4reC4lOC5gOC4guC5ieC4suC5gOC4meC4t+C5ieC4rQor4LmA4LiC4LmJ4Liy4LmC4Lil4LiHCivguYDguILguYnguLLguKfguLHguJTguYDguILguYnguLLguKfguLIKK+C5gOC4guC5ieC4suC4p+C5iOC4sgor4LmA4LiC4LmJ4Liy4LmA4Lin4LijCivguYDguILguYnguLLguYHguKfguYjguJkKK+C5gOC4guC5ieC4suC5gOC4qOC4teC4ouC4owor4LmA4LiC4LmJ4Liy4Liq4Lih4Liy4LiY4Li0CivguYDguILguYnguLLguKrguLjguKvguJnguLHguJUKK+C5gOC4guC5ieC4suC5g+C4quC5iAor4LmA4LiC4LmJ4Liy4LmE4Liq4LmJCivguYDguILguYnguLLguKvguJnguYnguLIKK+C5gOC4guC5ieC4suC4q+C4oeC5ieC4rQor4LmA4LiC4LmJ4Liy4Lir4Lih4Li04LmJ4LiZCivguYDguILguYnguLLguKvguKXguLHguIEKK+C5gOC4guC5ieC4suC4q+C4sgor4LmA4LiC4LmJ4Liy4Lir4Li44LmJ4LiZCivguYDguILguYnguLLguKvguLkKK+C5gOC4guC5ieC4suC4q+C4ueC4i+C5ieC4suC4ouC4l+C4sOC4peC4uOC4q+C4ueC4guC4p+C4sgor4LmA4LiC4LmJ4Liy4LmD4Lir4LmJCivguYDguILguYnguLLguYTguKvguJnguYDguILguYnguLLguYTguJTguYkKK+C5gOC4guC4suC4reC5iOC4reC4mQor4LmA4LiC4LmI4Liy4Lit4LmI4Lit4LiZCivguYDguILguLTguIcKK+C5gOC4guC4tOC4mQor4LmA4LiC4Li04LiaCivguYDguILguLXguYjguKIKK+C5gOC4guC4teC4ouC4hwor4LmA4LiC4Li14Lii4LiH4LmA4LiX4LmJ4LiyCivguYDguILguLXguKLguIfguJ7guKPguLDguJnguLLguIfguK3guLXguYgKK+C5gOC4guC4teC4ouC4h+C4nuC4o+C5ieC4sgor4LmA4LiC4Li14Lii4LiUCivguYDguILguLXguKLguJTguJXguLDguJvguLLguJQKK+C5gOC4guC4teC4ouC4mQor4LmA4LiC4Li14LmI4Lii4LiZCivguYDguILguLXguKLguJnguJTguYnguKfguKLguKHguLfguK3guKXguJrguJTguYnguKfguKLguJXguLXguJkKK+C5gOC4guC4teC4ouC4meC4l+C4reC4hwor4LmA4LiC4Li14Lii4LiZ4LmE4LiX4LiiCivguYDguILguLXguKLguJnguYDguKrguLfguK3guYPguKvguYnguKfguLHguKfguIHguKXguLHguKcKK+C5gOC4guC4teC4ouC4oQor4LmA4LiC4Li14Lii4LinCivguYDguILguLXguYnguKLguKcKK+C5gOC4guC4teC5ieC4ouC4p+C4geC4o+C4sOC5geC4lQor4LmA4LiC4Li14LmJ4Lii4Lin4LmB4LiB4LmJ4LinCivguYDguILguLXguKLguKfguYTguILguYjguIHguLIKK+C5gOC4guC4teC5ieC4ouC4p+C4h+C4uQor4LmA4LiC4Li14LmJ4Lii4Lin4LiV4Liw4LiC4Liy4LiaCivguYDguILguLXguYnguKLguKfguYDguJnguLfguYnguK0KK+C5gOC4guC4teC4ouC4p+C4nuC4o+C4sOC4reC4tOC4meC4l+C4o+C5jAor4LmA4LiC4Li14LmJ4Lii4Lin4LmA4Lil4LmH4LiaCivguYDguILguLXguKLguKfguYDguKrguKfguKIKK+C5gOC4guC4teC5ieC4ouC4p+C4q+C4meC4uOC4oeC4suC4mQor4LmA4LiC4Li14LmJ4Lii4Lin4Lir4Lih4LiyCivguYDguILguLXguKLguKfguKvguKfguLLguJkKK+C5gOC4guC4teC4ouC4p+C4q+C4suC4h+C5hOC4q+C4oeC5iQor4LmA4LiC4Li14Lii4LiwCivguYDguILguLfguK0KK+C5gOC4guC4t+C4reC4hwor4LmA4LiC4Li34LmI4Lit4LiHCivguYDguILguLfguYjguK3guJkKK+C5gOC4guC4t+C5iOC4reC4meC5gOC4nuC4iuC4owor4LmA4LiC4Li34Lit4LihCivguYHguIIKK+C5geC4guC5iQor4LmB4LiC4LiBCivguYHguILguIHguYDguJXguYnguLIKK+C5geC4guC4geC5gOC4leC5ieC4suC5gOC4guC5ieC4suC4o+C4seC4hwor4LmB4LiC4LiB4LmA4Lih4Li34Lit4LiHCivguYHguILguYfguIcKK+C5geC4guC5iOC4hwor4LmB4LiC4LmJ4LiHCivguYHguILguYfguIfguIHguKPguYnguLLguKcKK+C5geC4guC5h+C4h+C4geC4peC5ieC4sgor4LmB4LiC4LmH4LiH4LmB4LiB4Lij4LmI4LiHCivguYHguILguYnguIfguYTguIHguYgKK+C5geC4guC5h+C4h+C4guC5ieC4rQor4LmB4LiC4LmH4LiH4LiC4Lix4LiZCivguYHguILguYjguIfguILguLHguJkKK+C5geC4guC5h+C4h+C5g+C4iAor4LmB4LiC4LmH4LiH4LiV4Lix4LinCivguYHguILguYfguIfguKHguLfguK0KK+C5geC4guC5h+C4h+C5gOC4oeC4t+C4reC4hwor4LmB4LiC4LmH4LiH4LmB4Lij4LiHCivguYHguILguYnguIfguKrguLTguIfguKvguYwKK+C5geC4guC4mQor4LmB4LiC4LmI4LiZCivguYHguILguYnguJkKK+C5geC4guC4meC4guC4p+C4sgor4LmB4LiC4LiZ4LiE4Li54LmJCivguYHguILguJnguIcKK+C5geC4guC4meC4i+C5ieC4suC4ouC5geC4guC4meC4guC4p+C4sgor4LmB4LiC4LiZ4LiX4Li44LiB4LiC4LmMCivguYHguILguJnguJnguLLguIcKK+C5geC4guC4meC4nuC4seC4mgor4LmB4LiC4LiZ4LiwCivguYHguILguKEKK+C5geC4guC4oeC5h+C4mgor4LmB4LiC4Lih4LmI4LinCivguYHguILguKLguYfguIHguYYKK+C5geC4guC4ouC4hwor4LmB4LiC4Lii4LmI4LiHCivguYHguILguKLguIfguYHguILguIfguILguJkKK+C5geC4guC4ouC4h+C4q+C4meC4uQor4LmB4LiC4Lil4LiwCivguYHguILguKfguIEKK+C5geC4guC4p+C4hwor4LmB4LiC4Lin4LiZCivguYHguILguKfguJnguITguK0KK+C5geC4guC4p+C4meC4meC4p+C4oQor4LmB4LiC4Lin4LiZ4Lil4Lit4LiiCivguYHguILguKfguLAKK+C5geC4guC4quC4o+C5jAor4LmC4LiCCivguYLguILguIEKK+C5guC4guC4geC4quC4seC4mgor4LmC4LiC4LiHCivguYLguILguYjguIcKK+C5guC4guC5iOC4h+C4l+C4sOC5gOC4pQor4LmC4LiC4LiUCivguYLguILguJTguIcKK+C5guC4guC4mQor4LmC4LiC4LiZ4LiHCivguYLguILguKEKK+C5guC4guC4oS0KK+C5guC4guC4oeC4hwor4LmC4LiC4Lih4LiUCivguYLguILguKHguJTguKLguLIKK+C5guC4guC4ouC4gQor4LmC4LiC4Lii4LiB4LmA4LiC4Lii4LiBCivguYLguILguKLguIcKK+C5guC4guC4ouC5iOC4hwor4LmC4LiC4Lii4LiUCivguYLguILguKLguKEKK+C5guC4guC4peC4gQor4LmC4LiC4Lil4LiB4LmGCivguYLguILguKXguIcKK+C5guC4guC4peC4mQor4LmC4LiC4Lil4LiZ4LiX4Lin4Liy4LijCivguYLguILguKnguKEKK+C5hOC4ggor4LmE4LiC4LmICivguYTguILguYkKK+C5hOC4guC4geC4o+C4sOC4lOC4ueC4gQor4LmE4LiC4LmJ4LiB4Liy4LisCivguYTguILguYnguIHguLLguKzguJnguIHguJnguLLguIfguYHguK3guYjguJkKK+C5hOC4guC5ieC4geC4suC4rOC4q+C4peC4seC4h+C5geC4reC5iOC4mQor4LmE4LiC4LmJ4LiB4Liz4LmA4LiU4LiyCivguYTguILguYjguYTguIHguYgKK+C5hOC4guC5iOC4guC4p+C4seC4jQor4LmE4LiC4LiC4LmJ4LitCivguYTguILguYjguILguLLguIcKK+C5hOC4guC5iOC4guC4suC4pwor4LmE4LiC4LmI4LiC4LmJ4Liy4LinCivguYTguILguITguKfguIcKK+C5hOC4guC5ieC4hOC4p+C4suC4oeC4o+C5ieC4reC4mQor4LmE4LiC4LmI4LmA4LiE4LmH4LihCivguYTguILguYjguIjguKPguLDguYDguILguYkKK+C5hOC4guC5ieC4iOC4seC4muC4quC4seC5iOC4mQor4LmE4LiC4LmI4LiI4Li04LmJ4LiH4LiI4LiBCivguYTguILguYjguIjguLTguYnguIfguKvguKPguLXguJQKK+C5hOC4guC5iOC5gOC4iOC4teC4ouC4pwor4LmE4LiC4LmJ4LmD4LiICivguYTguILguYjguI3guLXguYjguJvguLjguYjguJkKK+C5hOC4guC5iOC4lOC4seC4mQor4LmE4LiC4LmI4LiU4Lix4LiZ4Lir4Lih4Li5CivguYTguILguYjguJTguLLguKcKK+C5hOC4guC5iOC5geC4lOC4hwor4LmE4LiC4LmJ4LmB4LiU4LiUCivguYTguILguYjguJXguLLguKLguYLguITguKEKK+C5hOC4guC5iOC4leC4uOC5i+C4mQor4LmE4LiC4LmI4LmA4LiV4LmI4LiyCivguYTguILguYnguJfguKPguJ7guLTguKkKK+C5hOC4guC5ieC4l+C4seC4muC4o+C4sOC4lOC4uQor4LmE4LiC4LmI4LiZ4LiB4LiB4Lij4Liw4Liq4LiyCivguYTguILguJnguYnguLMKK+C5hOC4guC5iOC4meC5ieC4swor4LmE4LiC4LmI4LiZ4LmJ4Liz4LiE4LmJ4Liy4LiHCivguYTguILguYjguYDguJnguYjguLIKK+C5hOC4guC5iOC5g+C4meC4q+C4tOC4mQor4LmE4LiC4LmI4Lib4Lil4LiyCivguYTguILguYnguJvguK3guJTguJrguKfguKEKK+C5hOC4guC5ieC4m+C5iOC4sgor4LmE4LiC4Lie4Lij4Liw4Lin4Li04Liq4Li54LiV4LijCivguYTguILguYjguJ7guK3guIEKK+C5hOC4guC5ieC4nuC4tOC4qQor4LmE4LiC4Lih4Lix4LiZCivguYTguILguYnguKHguLLguKXguLLguYDguKPguLXguKIKK+C5hOC4guC5iOC4oeC4uOC4gQor4LmE4LiC4Lii4LmI4LiZCivguYTguILguYjguYDguKLguLXguYjguKLguKfguKHguYnguLIKK+C5hOC4guC4o+C4sgor4LmE4LiC4LmI4Lil4LihCivguYTguILguKXguLLguJkKK+C5hOC4guC5iOC4peC4ueC4geC5gOC4guC4ogor4LmE4LiC4LmI4Lil4Li54LiB4Lii4Lit4LiUCivguYTguILguYnguYDguKXguLfguK3guJTguK3guK3guIEKK+C5hOC4guC4p+C5iAor4LmE4LiC4Lin4LmJCivguYTguILguKfguYnguYDguILguKcKK+C5hOC4guC4p+C5iOC4hOC4p+C5ieC4sgor4LmE4LiC4Lin4LmJ4LmC4Lij4LiHCivguYTguILguKfguYjguKvguYnguLLguIcKK+C5hOC4guC4qeC4ogor4LmE4LiC4LmJ4Liq4Lix4LiZ4LiZ4Li04Lia4Liy4LiVCivguYTguILguKrguLHguJnguKvguKXguLHguIcKK+C5hOC4guC4quC4seC4meC4q+C4peC4seC4h+C4reC4seC4geC5gOC4quC4mgor4LmE4LiC4LmI4Liq4Liz4LmA4Lig4LiyCivguYTguILguKrguLfguK0KK+C5hOC4guC5gOC4quC4meC4teC4ouC4lAor4LmE4LiC4LmI4Lir4LiH4Liq4LmMCivguYTguILguYnguKvguKfguLHguJQKK+C5hOC4guC5ieC4q+C4p+C4seC4lOC5g+C4q+C4jeC5iAor4LmE4LiC4LmI4Lir4Lin4Liy4LiZCivguYTguILguYnguKvguLHguKcKK+C5hOC4guC5ieC4q+C4seC4p+C4peC4oQor4LmE4LiC4LmI4Lir4LizCivguYTguILguYjguKvguLTguJkKK+C5hOC4guC4q+C4uQor4LmE4LiC4LmJ4LmA4Lir4Lil4Li34Lit4LiHCivguYTguILguYjguYDguKvguLIKK+C5hOC4guC5iOC5gOC4q+C4teC5ieC4ogor4LmE4LiC4LmI4LmB4Lir4LiZCivguIMKK+C4hAor4LiE4LiE4LiZLQor4LiE4LiE4LiZ4LiwCivguITguITguJnguLHguKHguJ7guKMKK+C4hOC4hOC4meC4suC4h+C4hOC5jAor4LiE4LiE4LiZ4Liy4LiZ4LiV4LmMCivguITguIcKK+C4hOC4h+C4geC4o+C4sOC4nuC4seC4mQor4LiE4LiH4LiB4Lij4Liw4Lie4Lix4LiZ4LiK4Liy4LiV4Lij4Li1CivguITguIfguYHguIHguYjguYDguKPguLXguKLguJkKK+C4hOC4h+C4guC4suC4lAor4LiE4LiH4LiE4Lil4Lix4LiHCivguITguIfguITguLIKK+C4hOC4h+C4hOC4suC5gOC4lOC4t+C4reC4lAor4LiE4LiH4LiE4Liy4Lil4Lix4LiiCivguITguIfguYTguITguKIKK+C4hOC4h+C4leC4seC4pwor4LiE4LiH4LiX4LiZCivguITguIfguJfguLXguYgKK+C4hOC4h+C5gOC4quC5ieC4meC4hOC4h+C4p+C4sgor4LiE4LiH4LmA4Lir4Lil4Li34LitCivguITguIotCivguITguIrguIHguKPguKPguKEKK+C4hOC4iuC4meC4suC4oQor4LiE4LiK4Lij4Liy4LiKCivguITguIrguKXguLHguIHguKnguJPguYwKK+C4hOC4iuC4qOC4suC4quC4leC4o+C5jAor4LiE4LiK4Liq4LmI4Liy4LiZCivguITguIrguKrguLLguKMKK+C4hOC4iuC4quC4teC4q+C5jAor4LiE4LiK4Liy4LiK4Liy4LiV4Li0CivguITguIrguLLguIrguLXguJ4KK+C4hOC4iuC4suC4mOC4suC4owor4LiE4LiK4Liy4Lig4Lij4LiT4LmMCivguITguIrguLTguJnguJfguKPguYwKK+C4hOC5gOC4iuC4meC4l+C4o+C5jAor4LiE4LiTLQor4LiE4LiT4LiZCivguITguJPguJnguLIKK+C4hOC4k+C4muC4lOC4tQor4LiE4LiT4LiwCivguITguJPguLDguKPguLHguJDguKHguJnguJXguKPguLUKK+C4hOC4k+C4suC4iOC4suC4o+C4ouC5jAor4LiE4LiT4Liy4LiY4Li04LiB4Liy4LijCivguITguJPguLLguJjguLTguJvguYTguJXguKIKK+C4hOC4k+C4tOC4geC4sgor4LiE4LiT4Li04LiVCivguITguJPguLTguJUtCivguITguJPguLTguJXguKjguLLguKrguJXguKPguYwKK+C4hOC5gOC4k+C4qAor4LiE4LiUCivguITguJTguIHguKPguLTguIoKK+C4hOC4lOC5guC4geC4hwor4LiE4LiU4LmA4LiE4Li14LmJ4Lii4LinCivguITguJTguIfguK0KK+C4hOC4lOC4i+C5iOC4suC4hwor4LiE4LiU4LmD4LiZ4LiC4LmJ4Lit4LiH4Lit4LmD4LiZ4LiB4Lij4Liw4LiU4Li54LiBCivguITguJTguKrguKPguYnguLLguIcKK+C4hOC4lOC4tQor4LiE4LiU4Li14LiU4LizCivguITguJTguLXguYHguJTguIcKK+C4hOC4lOC4teC5geC4nuC5iOC4hwor4LiE4LiU4Li14Lih4LmC4LiZ4Liq4Liy4LmA4Lij4LmICivguITguJTguLXguK3guJnguLLguJbguLIKK+C4hOC4lOC4teC4reC4suC4jeC4sgorLeC4hOC4lQor4LiE4LiV4Li0CivguITguJXguLTguIrguLLguKfguJrguYnguLLguJkKK+C4hOC4leC4tOC4mOC4o+C4o+C4oQor4LiE4LiV4Li04LiZ4Li04Lii4LihCivguITguJXguLTguJ7guIjguJnguYwKK+C4hOC4l+C4sgor4LiE4LiZCivguITguYnguJkKK+C4hOC4meC4geC4peC4suC4hwor4LiE4LiZ4LmE4LiC4LmJCivguITguJnguYTguILguYnguJnguK3guIEKK+C4hOC4meC5hOC4guC5ieC5g+C4mQor4LiE4LmJ4LiZ4LiE4Lin4LmJ4LiyCivguITguJnguIjguKMKK+C4hOC4meC4iOC4o+C4tOC4hwor4LiE4LiZ4LmD4LiK4LmJCivguITguJnguJTguLXguJzguLXguITguLjguYnguKEKK+C4hOC4meC4leC5ieC4reC4h+C4guC4seC4hwor4LiE4LiZ4LiX4Lij4LiHCivguITguJnguJfguLIKK+C4hOC4meC4l+C4tOC4quC4rQor4LiE4LiZ4LiX4Li04Liq4Lit4LiX4Liw4LmA4LilCivguITguJnguJfguLUKK+C4hOC4meC4l+C4teC5gOC4guC4oeC4sgor4LiE4LiZ4LiX4Li14Liq4LitCivguITguJnguYLguJcKK+C4hOC4meC4mOC5jAor4LiE4LiZ4LiY4Lij4Lij4LieLQor4LiE4LiZ4LiY4Lij4Lij4Lie4LmMCivguITguJnguJjguKPguKPguJ7guKfguLTguKfguLLguKvguYwKK+C4hOC4meC4mOC4o+C4o+C4nuC4qOC4suC4quC4leC4o+C5jAor4LiE4LiZ4LiZ4Lit4LiBCivguITguJnguYPguJkKK+C4hOC4meC5gOC4oeC4t+C4reC4hwor4LiE4LiZ4Lij4Lix4LiB4LmA4LiX4LmI4Liy4Lic4Li34LiZ4Lir4LiZ4Lix4LiHIOC4hOC4meC4iuC4seC4h+C5gOC4l+C5iOC4suC4nOC4t+C4meC5gOC4quC4t+C5iOC4rQor4LiE4LiZ4Lij4LmJ4Liy4LiiCivguITguJnguYTguKPguYnguITguKfguLLguKHguKrguLLguKHguLLguKPguJYKK+C4hOC4meC4peC4sAor4LiE4LiZ4Lil4Liw4LmE4Lih4LmJ4LiE4LiZ4Lil4Liw4Lih4Li34LitCivguITguJnguKrguKfguJkKK+C4hOC4meC4quC4suC4muC4quC4ueC4jQor4LiE4LiZ4LmA4Liq4Lih4Li34Lit4LiZ4LmE4Lij4LmJ4LiE4Lin4Liy4Lih4Liq4Liy4Lih4Liy4Lij4LiWCivguITguYnguJnguKvguLnguIEKK+C4hOC4meC5g+C4q+C4jeC5iOC4hOC4meC5guC4lQor4LiE4LmA4LiZ4LiI4LijCivguITguJoKK+C4hOC4muC4hOC4meC5g+C4q+C5ieC4lOC4ueC4q+C4meC5ieC4siDguIvguLfguYnguK3guJzguYnguLLguYPguKvguYnguJTguLnguYDguJnguLfguYnguK0KK+C4hOC4muC4hOC5ieC4sgor4LiE4Lia4LiE4Li04LiUCivguITguJrguIrguLnguYkKK+C4hOC4muC5gOC4nuC4peC4tOC4hwor4LiE4Lia4LmE4LifCivguITguJrguKvguLIKK+C4hOC4oQor4LiE4Lih4LiB4Lij4Li04LiaCivguITguKHguILguLMKK+C4hOC4oeC4hOC4suC4ogor4LiE4Lih4LiZLQor4LiE4Lih4LiZ4LmMCivguITguKHguJnguLLguIHguLLguKMKK+C4hOC4oeC4meC4suC4hOC4oQor4LiE4Lih4LmD4LiZ4Lid4Lix4LiBCivguITguKHguJrguLLguIcKK+C4hOC4oeC4quC4seC4mQor4LiE4Lih4Li04LiB4Lig4Lix4LiVCivguITguKPguIEKK+C4hOC4o+C4geC4geC4sOC5gOC4muC4t+C4rQor4LiE4Lij4LmI4LiHCivguITguKPguJoKK+C4hOC4o+C4muC4hOC4o+C4seC4mQor4LiE4Lij4Lia4LiW4LmJ4Lin4LiZCivguITguKPguJrguKHguLfguK0KK+C4hOC4o+C4o+C4iuC4tOC4lQor4LiE4Lij4Lij4LigCivguITguKPguKPguKAtCivguITguKPguKPguKDguYwKK+C4hOC4o+C4o+C4oOC4mOC4suC4leC4uAor4LiE4Lij4Lij4Lig4LiY4Liy4LiV4Li44Lih4LiT4LiR4LilCivguITguKPguKPguKDguKHguJPguJHguKUKK+C4hOC4o+C4o+C4oOC4oeC4pQor4LiE4Lij4Lij4LmC4Lig4LiX4LijCivguITguKPguKPguKXguK3guIcKK+C4hOC4o+C4o+C5guC4peC4hwor4LiE4Lij4Lij4LmE4LilCivguITguKPguKPguKvguLTguJUKK+C4hOC4o+C4p+C4jQor4LiE4Lij4Lin4LiN4LiE4Lij4Liy4LiHCivguITguKPguKfguI3guKvguLIKK+C4hOC4o+C4p+C4seC4gQor4LiE4Lij4Lin4Li1CivguITguKPguKvguLIKK+C4hOC4o+C4reC4gQor4LiE4Lij4Lit4LiHCivguITguKPguK3guIfguYHguITguKPguIcKK+C4hOC4o+C4reC4h+C4o+C4suC4iuC4quC4oeC4muC4seC4leC4tAor4LiE4Lij4LmI4Lit4LmA4LiH4Liy4LiwCivguITguKPguYjguK3guYDguJfguLXguKLguJkKK+C4hOC4o+C4reC4mgor4LiE4Lij4Lit4Lia4LiE4Lij4Lit4LiHCivguITguKPguK3guJrguITguKPguK3guIfguJvguKPguJvguLHguIHguKnguYwKK+C4hOC4o+C4reC4muC4hOC4o+C4seC4pwor4LiE4Lij4Lit4Lia4LiH4LizCivguITguKPguK3guJrguIjguLHguIHguKPguKfguLLguKUKK+C4hOC4o+C4reC4muC4leC4peC4seC4mgor4LiE4Lij4LmI4Lit4LihCivguITguKPguLAKK+C4hOC4o+C4sOC5gOC4oeC4tOC4oQor4LiE4Lij4Liw4LmB4Lil4LiHCivguITguKPguLDguYTguKUKK+C4hOC4o+C4sOC5geC4p+C4hwor4LiE4Lij4Liw4Lir4LiZCivguITguKPguLDguKvguKfguJkKK+C4hOC4o+C4sOC4q+C4suC4ogor4LiE4Lij4Liw4Lir4Li04LinCivguITguKPguLDguYLguKvguKIKK+C4hOC4o+C4seC5iOC4hwor4LiE4Lij4Lix4LmJ4LiHCivguITguKPguLHguJTguYDguITguKPguYjguIcKK+C4hOC4o+C4seC4mQor4LiE4Lij4Lix4LmI4LiZCivguITguKPguLHguYnguJkKK+C4hOC4o+C4seC5iOC4meC4hOC4o+C5ieC4suC4oQor4LiE4Lij4Lix4LmI4LiZ4LiV4Lix4LinCivguITguKPguLHguYjguJnguYDguJnguLfguYnguK3guITguKPguLHguYjguJnguJXguLHguKcKK+C4hOC4o+C4seC4mgor4LiE4Lij4Lix4LinCivguITguKPguLHguKfguJfguLLguJkKK+C4hOC4o+C4seC4p+C5hOC4nwor4LiE4Lij4Lix4Lin4LmA4Lij4Li34Lit4LiZCivguITguKPguLIKK+C4hOC4o+C5iOC4sgor4LiE4Lij4Liy4LiBCivguITguKPguLLguIcKK+C4hOC4o+C4suC4jQor4LiE4Lij4Liy4LiUCivguITguKPguYnguLLguJkKK+C4hOC4o+C4suC4mgor4LiE4Lij4Liy4Lia4Lir4Lih4Li5CivguITguKPguLLguKEKK+C4hOC4o+C5ieC4suC4oQor4LiE4Lij4Liy4Lih4LiE4Lij4Lix4LiZCivguITguKPguLLguKcKK+C4hOC4o+C5iOC4suC4pwor4LiE4Lij4LmI4Liy4Lin4LmGCivguITguKPguLLguKoKK+C4hOC4o+C4swor4LiE4Lij4LmI4LizCivguITguKPguYjguLPguITguKPguKfguI0KK+C4hOC4o+C5iOC4s+C4hOC4o+C5iOC4sgor4LiE4Lij4LmI4Liz4LiE4Lij4Li2CivguITguKPguYjguLPguYDguITguKPguYjguIcKK+C4hOC4o+C5iOC4s+C5gOC4hOC4o+C4reC4sAor4LiE4Lij4LmI4Liz4LmA4LiH4Li04LiZCivguITguKPguYjguLPguJfguK3guIcKK+C4hOC4o+C5iOC4s+C4q+C4p+C4reC4lAor4LiE4Lij4Li04Lib4LiX4Lit4LiZCivguITguKPguLTguKrguJXguYwKK+C4hOC4o+C4tOC4quC4leC5jOC4oeC4suC4qgor4LiE4Lij4Li04Liq4LiV4LmM4Lio4Lix4LiB4Lij4Liy4LiKCivguITguKPguLTguKrguJXguLHguIcKK+C4hOC4o+C4tOC4quC5gOC4leC4teC4ouC4mQor4LiE4Lij4Li14LmJCivguITguKPguLXguITguKPguK0KK+C4hOC4o+C4teC4mgor4LiE4Lij4Li14Lia4Liq4Li04LiH4Lir4LmMCivguITguKPguLXguKEKK+C4hOC4o+C4teC4qeC4oeC4suC4ouC4seC4mQor4LiE4Lij4Li2CivguITguKPguLbguIHguITguKPguLfguYnguJkKK+C4hOC4o+C4tuC4geC5guC4hOC4o+C4oQor4LiE4Lij4Li24LmI4LiHCivguITguKPguLbguYjguIfguYYg4LiB4Lil4Liy4LiH4LmGCivguITguKPguLbguYjguIfguIrguLLguJXguLQKK+C4hOC4o+C4tuC5iOC4h+C4leC5iOC4reC4hOC4o+C4tuC5iOC4hwor4LiE4Lij4Li24LiZCivguITguKPguLbguKEKK+C4hOC4o+C4tuC5ieC4oQor4LiE4Lij4Li24Lih4LiE4Lij4Li4CivguITguKPguLfguJQKK+C4hOC4o+C4t+C4mQor4LiE4Lij4Li34LmJ4LiZCivguITguKPguLfguJnguITguKPguLHguYjguJkKK+C4hOC4o+C4t+C5ieC4meC4hOC4o+C4seC5iOC4mQor4LiE4Lij4Li34LmJ4LiZ4LiE4Lij4Li24LiBCivguITguKPguLfguYnguJnguYDguITguKPguIcKK+C4hOC4o+C4t+C4rQor4LiE4Lij4Li4CivguITguKPguLjguIEtCivguITguKPguLjguITguKPguLAKK+C4hOC4o+C4uOC4kQor4LiE4Lij4Li44LiR4LiB4Lij4Liw4LiX4LiHCivguITguKPguLjguJHguJ7guYjguLLguKvguYwKK+C4hOC4o+C4uOC5iOC4mQor4LiE4Lij4Li44LmI4LiZ4LiE4Li04LiUCivguITguKPguLjguKDguLHguJPguJHguYwKK+C4hOC4o+C4uOC4oeC5gOC4hOC4o+C4t+C4rQor4LiE4Lij4Li44LiiCivguITguKPguLjguKfguJnguLIKK+C4hOC4o+C4uOC4p+C4suC4owor4LiE4Lij4Li44Lio4Liy4Liq4LiV4Lij4LmMCivguITguKPguLkKK+C4hOC4o+C4ueC5iAor4LiE4Lij4Li54LiUCivguITguKTguYLguIbguKkKK+C4hOC4pOC4meC4luC5jAor4LiE4Lik4LirCivguITguKTguKstCivguITguKTguKvguJrguJTguLUKK+C4hOC4pOC4q+C4m+C4seC4leC4meC4tQor4LiE4Lik4Lir4Lix4Liq4LiW4LmMCivguITguKTguKvguLIKK+C4hOC4pOC4q+C4suC4quC4meC5jAor4LiE4LilCivguITguKXguKfguIcKK+C4hOC4peC4rQor4LiE4Lil4LmJ4LitCivguITguKXguK3guIEKK+C4hOC4peC4reC5gOC4hOC4peC4teC4ogor4LiE4Lil4Lit4LmB4LiE4LilCivguITguKXguYnguK3guYHguITguKXguYkKK+C4hOC4peC4reC4hwor4LiE4Lil4LmI4Lit4LiHCivguITguKXguYnguK3guIcKK+C4hOC4peC5iOC4reC4h+C5geC4hOC4peC5iOC4pwor4LiE4Lil4LmJ4Lit4LiH4LiI4Lit4LiHCivguITguKXguYjguK3guIfguJXguLHguKcKK+C4hOC4peC4reC4h+C5gOC4peC4t+C5iOC4reC4ogor4LiE4Lil4Lit4LiH4Liq4LmI4LiH4LiZ4LmJ4LizCivguITguKXguK3guJQKK+C4hOC4peC4reC4mQor4LiE4Lil4Lit4LiZ4LmB4LiE4Lil4LiZCivguITguKXguYnguK3guKIKK+C4hOC4peC5ieC4reC4ouC4hOC4peC5ieC4reC4ogor4LiE4Lil4Lit4Lij4Li14LiZCivguITguKXguK3guYLguKPguJ/guK3guKPguYzguKEKK+C4hOC4peC4reC5guC4o+C4n+C4teC4peC4peC5jAor4LiE4Lil4LiwCivguITguKXguLDguITguKXguYjguLMKK+C4hOC4peC4sOC4hOC4peC4uOC5ieC4hwor4LiE4Lil4Liw4Lib4LiZCivguITguKXguLHguIEKK+C4hOC4peC4seC5iOC4gQor4LiE4Lil4Lix4LmI4LiB4LmGCivguITguKXguLHguIcKK+C4hOC4peC4seC5iOC4hwor4LiE4Lil4Lix4LiH4Lie4Li04Lih4Liy4LiZ4Lit4Liy4LiB4Liy4LioCivguITguKXguLHguIfguYDguKXguLfguK3guJQKK+C4hOC4peC4seC4h+C4quC4tOC4meC4hOC5ieC4sgor4LiE4Lil4Lix4LiH4Liq4Li04LiZ4LiE4LmJ4Liy4LiX4Lix4LiT4LiR4LmM4Lia4LiZCivguITguKXguLHguJXguIrguYwKK+C4hOC4peC4seC4muC4hOC4peC5ieC4suC4ogor4LiE4Lil4Lix4Lia4LiE4Lil4LmJ4Liy4Lii4LiE4Lil4Lix4Lia4LiE4Lil4LiyCivguITguKXguLIKK+C4hOC4peC5ieC4sgor4LiE4Lil4Liy4LiE4Lil4LmI4LizCivguITguKXguLLguYTguITguKUKK+C4hOC4peC4suC4h+C5geC4hOC4peC4hwor4LiE4Lil4Liy4LiUCivguITguKXguLLguJTguYDguITguKXguLfguYjguK3guJkKK+C4hOC4peC4suC4lOC5geC4hOC4peC5ieC4pwor4LiE4Lil4Liy4LiZCivguITguKXguLLguKIKK+C4hOC4peC5ieC4suC4ogor4LiE4Lil4Liy4Lii4LiE4Lil4LmJ4Liy4LiiCivguITguKXguYnguLLguKLguITguKXguYnguLLguKIKK+C4hOC4peC5ieC4suC4ouC4hOC4peC4tuC4hwor4LiE4Lil4Liy4Lii4LmA4LiE4Lil4LmI4LiHCivguITguKXguYjguLLguKcKK+C4hOC4peC4suC4qAor4LiE4Lil4LizCivguITguKXguYjguLMKK+C4hOC4peC5ieC4swor4LiE4Lil4Li04LiHCivguITguKXguLTguYnguIfguYLguITguKXguIcKK+C4hOC4peC4tOC4lAor4LiE4Lil4Li04LiZ4Li04LiBCivguITguKXguLUKK+C4hOC4peC4teC5iAor4LiE4Lil4Li14LmI4LiE4Lil4Liy4LiiCivguITguKXguLbguIcKK+C4hOC4peC4tuC4h+C5gOC4hOC4peC5ieC4mQor4LiE4Lil4Li24LiH4LmA4LiE4Lil4LmJ4LiyCivguITguKXguLfguYjguJkKK+C4hOC4peC4t+C5iOC4meC4geC4o+C4sOC4l+C4muC4neC4seC5iOC4hwor4LiE4Lil4Li34LmI4LiZ4LmD4LiV4LmJ4LiZ4LmJ4LizCivguITguKXguLfguYjguJnguJvguLLguJnguIHguKXguLLguIcKK+C4hOC4peC4t+C5iOC4meC5geC4oeC5iOC5gOC4q+C4peC5h+C4geC5hOC4n+C4n+C5ieC4sgor4LiE4Lil4Li34LmI4LiZ4Lii4Liy4LinCivguITguKXguLfguYjguJnguKfguLTguJfguKLguLgKK+C4hOC4peC4t+C5iOC4meC4quC4seC5ieC4mQor4LiE4Lil4Li34LmI4LiZ4LmE4Liq4LmJCivguITguKXguLfguYjguJnguYDguKvguLXguKLguJkKK+C4hOC4peC4uOC4gQor4LiE4Lil4Li44LiB4LiE4Lil4Liy4LiZCivguITguKXguLjguIHguITguKXguLUKK+C4hOC4peC4uOC4geC4hOC4peC4teC4leC4teC5guC4oeC4hwor4LiE4Lil4Li44LmJ4LiHCivguITguKXguLjguJoKK+C4hOC4peC4uOC4oQor4LiE4Lil4Li44LmI4LihCivguITguKXguLjguYnguKEKK+C4hOC4peC4uOC5ieC4oeC4hOC4peC4seC5iOC4hwor4LiE4Lil4Li44Lih4LmA4LiE4Lij4Li34LitCivguITguKXguLjguKHguJbguLjguIfguIrguJkKK+C4hOC4peC4uOC4oeC4m+C4o+C4sOC4l+C4oQor4LiE4Lil4Li44Lih4LmC4Lib4LiHCivguITguKXguLjguKHguJzguJfguKEKK+C4hOC4p+C4hwor4LiE4Lin4LiH4LmB4LiC4LiZCivguITguKfguIfguKrguKfguYjguLLguJkKK+C4hOC4p+C4kwor4LiE4Lin4LiZCivguITguKfguJoKK+C4hOC4p+C4muC4hOC4uOC4oQor4LiE4Lin4Lia4LmB4LiZ4LmI4LiZCivguITguKfguKIKK+C4hOC4p+C4owor4LiE4Lin4Lix4LiBCivguITguKfguLHguIHguITguYnguK3guJkKK+C4hOC4p+C4seC4geC4peC4h+C4q+C4peC4uOC4oQor4LiE4Lin4Lix4LmI4LiH4LiE4Lin4LmJ4Liy4LiHCivguITguKfguLHguJkKK+C4hOC4p+C4seC5iOC4mQor4LiE4Lin4Lix4LmI4LiZ4LiI4Li44LiBCivguITguKfguLHguJnguKvguKXguIcKK+C4hOC4p+C5ieC4sgor4LiE4Lin4Liy4LiBCivguITguKfguYnguLLguYTguILguKfguYgKK+C4hOC4p+C5ieC4suC4hwor4LiE4Lin4LmJ4Liy4LiH4LmGCivguITguKfguYnguLLguIfguYDguITguKfguYnguIcKK+C4hOC4p+C4suC4jQor4LiE4Lin4Liy4LiZCivguITguKfguYnguLLguJkKK+C4hOC4p+C5ieC4suC4meC4l+C5ieC4reC4hwor4LiE4Lin4LmJ4Liy4LiZ4LmJ4Liz4LmA4Lir4Lil4LinCivguITguKfguLLguKEKK+C4hOC4p+C4suC4oeC4hOC4peC4suC4lAor4LiE4Lin4Liy4Lih4LmA4LiE4LmJ4LiZCivguITguKfguLLguKHguYDguITguKPguLXguKLguJQKK+C4hOC4p+C4suC4oeC5gOC4ieC4t+C5iOC4reC4ogor4LiE4Lin4Liy4Lih4LiK4Lit4LiaCivguITguKfguLLguKHguIrguLfguYnguJkKK+C4hOC4p+C4suC4oeC4iuC4t+C5ieC4meC4quC4seC4oeC4muC4ueC4o+C4k+C5jAor4LiE4Lin4Liy4Lih4LiK4Li34LmJ4LiZ4Liq4Lix4Lih4Lie4Lix4LiX4LiY4LmMCivguITguKfguLLguKHguJbguYjguKfguIcKK+C4hOC4p+C4suC4oeC4luC5iOC4p+C4h+C4iOC4s+C5gOC4nuC4suC4sAor4LiE4Lin4Liy4Lih4LiW4Li14LmICivguITguKfguLLguKHguJbguLXguYjguKfguLTguJfguKLguLgKK+C4hOC4p+C4suC4oeC5guC4meC5ieC4oeC4luC5iOC4p+C4hwor4LiE4Lin4Liy4Lih4Lii4Liy4Lin4LiE4Lil4Li34LmI4LiZCivguITguKfguLLguKHguKPguLnguYnguJfguYjguKfguKHguKvguLHguKfguYDguK3guLLguJXguLHguKfguYTguKHguYjguKPguK3guJQKK+C4hOC4p+C4suC4oeC4o+C4ueC5ieC4quC4tuC4geC5gOC4guC4t+C5iOC4reC4hwor4LiE4Lin4Liy4Lih4Lij4Li54LmJ4Liq4Li24LiB4LiU4LmJ4Lit4LiiCivguITguKfguLLguKHguKPguLnguYnguKrguLbguIHguYDguJTguYjguJkKK+C4hOC4p+C4suC4oeC5gOC4o+C5iOC4hwor4LiE4Lin4Liy4Lih4LmA4Lij4LmH4LinCivguITguKfguLLguKHguKvguJnguYjguKfguIcKK+C4hOC4p+C4suC4oeC4q+C4peC4seC4hwor4LiE4Lin4Liy4LiiCivguITguKfguLLguKLguJvguKXguLAKK+C4hOC4p+C4suC4ouC4nuC4o+C4sOC4reC4tOC4meC4l+C4o+C5jAor4LiE4Lin4LmI4Liy4LinCivguITguKfguYjguLMKK+C4hOC4p+C5iOC4s+C4muC4suC4leC4owor4LiE4Lin4LmI4Liz4Lir4Lil4Lix4LiHCivguITguKfguLTguJnguLTguJkKK+C4hOC4p+C4tOC4p+C5hgor4LiE4Lin4Li04Lin4LiE4Lin4Lix4LiHCivguITguKfguLTguKfguITguKfguYjguLLguIcKK+C4hOC4p+C4tOC4p+C4hOC4p+C5ieC4suC4hwor4LiE4Lin4Li14LiZ4Liq4Li04Lij4Li04LiB4Li04LiV4Li04LmMCivguITguKstCivguITguKvguIHguKPguKPguKHguKjguLLguKrguJXguKPguYwKK+C4hOC4q+C4muC4lOC4tQor4LiE4Lir4Lib4LiV4Liy4LiZ4Li1CivguITguKvguLHguJAKK+C4hOC4rQor4LiE4LmJ4LitCivguITguK3guIEKK+C4hOC5h+C4reC4geC4hOC4seC4qgor4LiE4Lit4LiB4LiK4LmJ4Liy4LiHCivguITguYfguK3guIHguYDguJfguKUKK+C4hOC4reC4geC4o+C4sOC5gOC4iuC5ieC4sgor4LiE4Lit4LiB4Lil4LihCivguITguK3guIHguLDguKXguLLguKrguLUKK+C4hOC4reC4guC4suC4lOC4muC4suC4lOC4leC4suC4ogor4LiE4Lit4LmB4LiC4LmH4LiHCivguITguK3guITguK3guJQKK+C4hOC4reC5gOC4hOC4i+C4reC4ouC4lOC5jAor4LiE4LmI4Lit4LiH4Lit4LmJ4Lit4LiiCivguITguK3guYDguIrguLTguYnguJUKK+C4hOC4reC4i+C4reC4hwor4LiE4Lit4LiUCivguITguK3guYHguJTguIcKK+C4hOC4reC4leC4gQor4LiE4Lit4LiV4LmI4LitCivguITguK3guJXguLHguYnguIcKK+C4hOC4reC4leC4seC5ieC4h+C4muC5iOC4sgor4LiE4Lit4LiV4Li14LiaCivguITguK3guJbguYjguKfguIcKK+C4hOC4reC4l+C4reC4h+C5geC4lOC4hwor4LiE4Lit4LiZCivguITguYjguK3guJkKK+C4hOC5ieC4reC4mQor4LiE4Lit4LiZ4LiB4Lij4Li14LiVCivguITguK3guJnguIHguKPguLXguJXguYDguKrguKPguLTguKHguYDguKvguKXguYfguIEKK+C4hOC4reC4meC4geC4o+C4teC4leC4reC4seC4lOC5geC4o+C4hwor4LiE4LmJ4Lit4LiZ4LiB4Lil4Lit4LiHCivguITguYjguK3guJnguILguK3guJQKK+C4hOC5iOC4reC4meC4guC5ieC4suC4hwor4LiE4LmJ4Lit4LiZ4LiE4Lin4Lix4LiBCivguITguYjguK3guJnguYHguITguLAKK+C4hOC4reC4meC5gOC4lOC4meC5gOC4i+C4reC4o+C5jAor4LiE4LmJ4Lit4LiZ4LiV4Li04LiHCivguITguYnguK3guJnguJXguLXguKvguKHguLIKK+C4hOC5ieC4reC4meC4l+C4reC4hwor4LiE4Lit4LiZ4LmB4Lin4LiZ4LiV4LmMCivguITguK3guJnguYDguKrguLTguKPguYzguJUKK+C4hOC5ieC4reC4meC4q+C4reC4ogor4LiE4Lit4LiZ4Liy4LiECivguITguK3guJoKK+C4hOC4reC4muC4seC4pwor4LiE4Lit4LmB4Lia4LiwCivguITguK3guJvguLLguJQKK+C4hOC4reC5gOC4m+C5h+C4meC5gOC4reC5h+C4mQor4LiE4Lit4Lie4Lit4LiBCivguITguK3guJ7guLHguJoKK+C4hOC4reC5hOC4nwor4LiE4Lit4LihCivguITguYjguK3guKEKK+C4hOC5ieC4reC4oQor4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmMCivguITguK3guKHguKHguLLguJnguYLguJQKK+C4hOC4reC4oeC4oeC4tOC4p+C4meC4tOC4quC4leC5jAor4LiE4Lit4Lih4LmJ4LiyCivguITguK3guKIKK+C4hOC5iOC4reC4ogor4LiE4LmI4Lit4Lii4LmGCivguITguYnguK3guKIKK+C4hOC5iOC4reC4ouC4lOC4teC4guC4tuC5ieC4mQor4LiE4Lit4Lii4LiX4LmI4LiyCivguITguYjguK3guKLguYDguJvguYfguJnguITguYjguK3guKLguYTguJsKK+C4hOC5iOC4reC4ouC4ouC4seC4h+C4iuC4seC5iOC4pwor4LiE4Lit4Lii4Lil4LmMCivguITguK3guKLguYDguKvguJXguLgKK+C4hOC4reC4o+C5jOC4lAor4LiE4Lit4Lij4Lin4LiHCivguITguK3guKPguLDguIbguLHguIcKK+C4hOC4reC5geC4o+C5ieC4hwor4LiE4Lit4LmB4Lil4LiZCivguITguK3guKfguLUKK+C4hOC4reC4quC4leC4tOC4geC5guC4i+C4lOC4sgor4LiE4Lit4Liq4Lit4LiHCivguITguK3guKrguLDguJ7guLLguJkKK+C4hOC4reC4quC4ueC4hwor4LiE4Lit4LmA4Liq4Li34LmJ4LitCivguITguK3guKvguK3guKIKK+C4hOC4reC4q+C4reC4ouC4geC4seC4muC4peC4ueC4geC4geC4o+C4sOC5gOC4lOC4t+C4reC4gQor4LiE4Lit4Lir4Lit4Lii4LiV4Li14LiaCivguITguK3guKvguK3guKLguJ7guK3guIEKK+C4hOC4reC4q+C5iOC4suC4mQor4LiE4Lit4LmB4Lir4LmJ4LiHCivguITguK3guYHguKvguKXguKEKK+C4hOC4reC4reC5iOC4reC4mQor4LiE4Lit4Liu4Liy4Lin4Liy4LiiCivguITguLAKK+C4hOC5iOC4sAor4LiE4Liw4LmE4LiC4Lin4LmICivguITguLDguITguYnguK3guKIKK+C4hOC4sOC4hOC4suC4mQor4LiE4Liw4LiE4Li24LiHCivguITguLDguJnguJkKK+C4hOC4sOC4meC4reC4hwor4LiE4Liw4LiZ4LmJ4LiyCivguITguLDguJnguLbguIcKK+C4hOC4sOC5gOC4mQor4LiE4Liw4LmA4LiZ4LiH4Lij4LmJ4Liy4LiiCivguITguLDguYDguJnguYfguJQKK+C4hOC4sOC5geC4meC4mQor4LiE4Liw4LmB4LiZ4LiZ4LiZ4Li04Lii4LihCivguITguLDguYHguJnguJnguYDguKrguLXguKLguIcKK+C4hOC4sOC5g+C4mQor4LiE4Liw4Lih4LizCivguITguLDguKHguLbguIEKK+C4hOC4sOC4ouC4seC5ieC4meC4hOC4sOC4ouC4rQor4LiE4Liw4LmA4Lii4LitCivguITguLHguIEKK+C4hOC4seC5iOC4gQor4LiE4Lix4LiE4LiZLQor4LiE4Lix4LiE4LiZ4LiwCivguITguLHguITguJnguLHguKHguJ7guKMKK+C4hOC4seC4hOC4meC4suC4h+C4hOC5jAor4LiE4Lix4LiE4LiZ4Liy4LiZ4LiV4LmMCivguITguLHguYjguIcKK+C4hOC4seC5iOC4h+C4hOC5ieC4suC4hwor4LiE4Lix4LmI4LiH4LmB4LiE4LmJ4LiZCivguITguLHguIfguYTguITguKIKK+C4hOC4seC4iOC4iQor4LiE4Lix4LiT4LiR4Lih4Liy4Lil4LiyCivguITguLHguJPguJHguKrguLnguJXguKMKK+C4hOC4seC4lAor4LiE4Lix4LiU4LiE4LmJ4Liy4LiZCivguITguLHguJTguYDguITguYnguLIKK+C4hOC4seC4lOC4h+C5ieC4suC4hwor4LiE4Lix4LiU4LiJ4Liy4LiBCivguITguLHguJTguIrguYnguK3guJkKK+C4hOC4seC4lOC4iuC4uOC4mQor4LiE4Lix4LiU4LiX4LmJ4Liy4LiiCivguITguLHguJTguKHguK3guJkKK+C4hOC4seC4lOC5gOC4oeC5h+C4hwor4LiE4Lix4LiU4LmA4Lil4Li34Lit4LiBCivguITguLHguJTguYDguKXguLfguK3guJQKK+C4hOC4seC4l+C4peC4teC4ouC4sgor4LiE4Lix4LiZCivguITguLHguYjguJkKK+C4hOC4seC5ieC4mQor4LiE4Lix4LiZ4LiC4LiyCivguITguLHguJnguIjguLLguKEKK+C4hOC4seC4meC4ieC5iOC4reC4hwor4LiE4Lix4LiZ4LiJ4Lix4LiV4LijCivguITguLHguJnguInguLLguKIKK+C4hOC4seC4meC4iuC4seC4gQor4LiE4Lix4LiZ4LiK4Lix4LmI4LiHCivguITguLHguJnguIrguLXguJ4KK+C4hOC4seC4meC4lOC4suC4peC4ieC4seC4leC4owor4LiE4Lix4LiZ4LmC4LiU4LiHCivguITguLHguJnguJYtCivguITguLHguJnguJbguJjguLjguKPguLAKK+C4hOC4seC4meC4luC4o+C4iOC4meC4suC4iOC4suC4o+C4ouC5jAor4LiE4Lix4LiZ4LiX4Lij4LiHCivguITguLHguJnguJgKK+C4hOC4seC4meC4mC0KK+C4hOC4seC4meC4mOC5jAor4LiE4Lix4LiZ4LiY4LiB4Li44LiO4Li1CivguITguLHguJnguJjguKHguLLguJfguJnguYwKK+C4hOC4seC4meC4mOC4suC4o+C4o+C4suC4qeC4juC4o+C5jAor4LiE4Lix4LiZ4LiZ4LiyCivguITguLHguJnguJrguKfguKIKK+C4hOC4seC4meC5guC4nuC4hwor4LiE4Lix4LiZ4LmA4Lij4LmI4LiHCivguITguLHguJnguKvguLLguKHguYDguKrguLfguK0KK+C4hOC4seC4mgor4LiE4Lix4Lia4LiC4Lix4LiZCivguITguLHguJrguITguYnguK3guJkKK+C4hOC4seC4muC4hOC4seC5iOC4hwor4LiE4Lix4Lia4LiE4LiyCivguITguLHguJrguYHguIQKK+C4hOC4seC4muC5geC4hOC5ieC4mQor4LiE4Lix4Lia4LmB4LiE4LiaCivguITguLHguJrguYPguIgKK+C4hOC4seC4muC4reC4geC4hOC4seC4muC5g+C4iAor4LiE4Lix4Lie4LigLQor4LiE4Lix4Lie4Lig4LmMCivguITguLHguJ7guKDguKrguLLguKXguLUKK+C4hOC4seC4nuC5guC4oOC4l+C4owor4LiE4Lix4Lih4Lig4Li14LijLQor4LiE4Lix4Lih4Lig4Li14Lij4LmMCivguITguLHguKHguKDguLXguKPguKDguLLguJ4KK+C4hOC4seC4pQor4LiE4Lix4LinCivguITguLHguYjguKcKK+C4hOC4sgor4LiE4LmI4LiyCivguITguYnguLIKK+C4hOC4suC4geC4o+C4reC4hwor4LiE4LmJ4Liy4LiC4Liy4LiiCivguITguYjguLLguILguLbguYnguJnguKjguLLguKUKK+C4hOC5iOC4suC4hOC4mgor4LiE4LmI4Liy4LiE4Lij4Lit4LiH4LiK4Li14LieCivguITguYnguLLguITguKfguLLguKEKK+C4hOC5ieC4suC4hOC5ieC4sgor4LiE4Liy4LiHCivguITguYjguLLguIcKK+C4hOC5ieC4suC4hwor4LiE4Liy4LiH4LiE4LiBCivguITguLLguIfguITguIHguILguLbguYnguJnguKfguK0KK+C4hOC4suC4h+C4hOC4geC5hOC4nwor4LiE4LmJ4Liy4LiH4LiE4Liy4LinCivguITguYnguLLguIfguITguLfguJkKK+C4hOC5ieC4suC4h+C5gOC4lOC4t+C4reC4meC4hOC5ieC4suC4h+C4m+C4tQor4LiE4LmJ4Liy4LiH4LmA4LiV4Li04LmI4LiHCivguITguLLguIfguJfguLnguKEKK+C4hOC4suC4h+C5guC4l+C4mQor4LiE4Liy4LiH4LmA4Lia4Li34Lit4LiZCivguITguYnguLLguIfguJvguLUKK+C4hOC4suC4h+C4q+C4oeC4uQor4LiE4Liy4LiH4LmA4Lir4Lil4Li34Lit4LiHCivguITguLLguJQKK+C4hOC4suC4lOC4hOC4seC5ieC4mQor4LiE4Liy4LiU4LiE4LmI4LiyCivguITguLLguJTguYTguKHguYjguJbguLbguIcKK+C4hOC4suC4lOC4q+C4meC5ieC4sgor4LiE4Liy4LiU4Lir4Lih4Lix4LiUCivguITguYjguLLguJXguLHguKcKK+C4hOC4suC4luC4sgor4LiE4Liy4LiW4Liy4Lie4Lix4LiZCivguITguLLguJbguLLguK3guLLguITguKEKK+C4hOC4suC4l+C4reC4peC4tOC4gQor4LiE4LmI4Liy4LiX4Li14LmICivguITguLLguJgKK+C4hOC5iOC4suC4mOC4o+C4o+C4oeC5gOC4meC4teC4ouC4oQor4LiE4LmI4Liy4LiY4Lij4Lij4Lih4LmA4LiZ4Li14Lii4Lih4Lio4Liy4LilCivguITguLLguJkKK+C4hOC5ieC4suC4mQor4LiE4Liy4LiZ4LiE4Lit4LiU4Li04LiZCivguITguLLguJnguKvguLLguKEKK+C4hOC4suC4meC5ieC4sgor4LiE4LmI4Liy4LiZ4LmJ4LizCivguITguLLguJoKK+C4hOC4suC4muC5gOC4geC4teC5iOC4ouC4pwor4LiE4Liy4Lia4LiK4Li44LiUCivguITguLLguJrguKXguLnguIHguITguLLguJrguJTguK3guIEKK+C4hOC4suC4muC4qOC4tOC4peC4sgor4LiE4Liy4Lia4Liq4Lih4Li44LiX4LijCivguITguLLguJrguYDguKrguYnguJkKK+C4hOC5ieC4suC4m+C4o+C4sOC5gOC4p+C4k+C4tQor4LiE4LmI4Liy4Lib4LmI4Lin4Lii4LiB4Liy4LijCivguITguYjguLLguJvguLLguIHguYDguKPguLfguK0KK+C4hOC5iOC4suC5gOC4nOC4sgor4LiE4Liy4Lie4Lii4Li44LiVCivguITguYjguLLguKDguLLguITguKvguKXguKfguIcKK+C4hOC4suC4oQor4LiE4Liy4LihLQor4LiE4Liy4Lih4LiT4Li1CivguITguLLguKHguJPguLXguKLguYwKK+C4hOC4suC4oeC4oOC4teC4o+C5jAor4LiE4Liy4Lih4LmC4Lig4LiK4LiBCivguITguLLguKHguKfguLLguKrguLUKK+C4hOC4suC4oeC4tQor4LiE4Liy4LiiCivguITguYjguLLguKIKK+C4hOC4suC4ouC4gQor4LiE4Liy4Lii4LiBLQor4LiE4Liy4Lii4LiB4LiE4LiT4LiwCivguITguYjguLLguKLguIHguLHguIHguIHguLHguJkKK+C4hOC5iOC4suC4ouC5gOC4ouC4suC4p+C4iuC4mQor4LiE4LmI4Liy4Lii4Lit4Liy4Liq4Liy4Lie4Lix4LiS4LiZ4LiyCivguITguLLguKLguLHguJkKK+C4hOC4suC4o+C5jOC4muC4reC4mQor4LiE4Liy4Lij4LmM4Lia4Lit4LiZ4LmE4LiU4Lit4Lit4LiB4LmE4LiL4LiU4LmMCivguITguLLguKPguYzguJrguK3guJnguKHguK3guJnguK3guIHguYTguIvguJTguYwKK+C4hOC4suC4o+C5jOC4muC4reC5gOC4meC4lQor4LiE4Liy4Lij4LmM4Lia4Lit4Lil4Li04LiBCivguITguLLguKPguYzguJrguLnguYDguKPguYDguJXguK3guKPguYwKK+C4hOC4suC4o+C5jOC5guC4muC4o+C4seC4meC4lOC4seC4oQor4LiE4Liy4Lij4LmM4LmC4Lia4LmE4Liu4LmA4LiU4Lij4LiVCivguITguLLguKPguJ4KK+C4hOC4suC4o+C4oQor4LiE4Liy4Lij4Lin4LiwCivguITguLLguKPguLLguITguLLguIHguYjguLIKK+C4hOC4suC4o+C4suC4hOC4suC4i+C4seC4hwor4LiE4Liy4Lij4Liy4LmA4LiV4LmJCivguITguLLguKPguLLguKfguLLguJkKK+C4hOC5iOC4suC4pOC4iuC4suC4mOC4o+C4o+C4oeC5gOC4meC4teC4ouC4oQor4LiE4Liy4LinCivguITguYjguLLguKcKK+C4hOC5ieC4suC4pwor4LiE4Liy4Lin4LiV4Lit4LiHCivguITguLLguKfguJvguKXguLIKK+C4hOC4suC4p+C4tQor4LiE4Liy4Lin4Li44LiVCivguITguLLguKoKK+C4hOC5iOC4suC4quC4seC4oeC4muC4ueC4o+C4k+C5jAor4LiE4LmI4Liy4Liq4Li04LiZ4LmE4Lir4Lih4LiX4LiU4LmB4LiX4LiZCivguITguYjguLLguYDguKrguKHguK3guKDguLLguIQKK+C4hOC5iOC4suC5gOC4quC4teC4ouC4q+C4suC4ogor4LiE4LmI4Liy4Lir4LiUCivguITguLLguKvguJnguLHguIfguITguLLguYDguILguLIKK+C4hOC5iOC4suC4q+C4meC5ieC4suC4lOC4tOC4mQor4LiE4LmI4Liy4Lir4Lix4LinCivguITguLMKK+C4hOC5iOC4swor4LiE4LmJ4LizCivguITguLPguILguKfguLHguI0KK+C4hOC4s+C4guC4rQor4LiE4Liz4LiC4Liy4LiUCivguITguLPguITguKEKK+C4hOC5ieC4s+C4hOC4rQor4LiE4LmI4Liz4LiE4Li34LiZCivguITguLPguITguLnguYjguITguKfguLLguKEKK+C4hOC5ieC4s+C5gOC4h+C4tOC4mQor4LiE4LmJ4Liz4LiI4Li44LiZCivguITguYnguLPguIrguLkKK+C4hOC4s+C4lOC4teC4hOC4p+C4suC4ogor4LiE4Liz4LmC4LiU4LiUCivguITguLPguJXguLHguYnguIcKK+C4hOC4s+C4leC4suC4ogor4LiE4Liz4LiV4Li04LiU4LiV4LmI4LitCivguITguLPguYDguJXguLTguKEKK+C4hOC4s+C5g+C4leC5iQor4LiE4Liz4LmB4LiW4Lil4LiHCivguITguLPguYHguJbguKXguIfguIHguLLguKPguJPguYwKK+C4hOC4s+C4l+C4suC4ogor4LiE4Liz4LmA4LiX4Li14Lii4LiaCivguITguLPguJnguKfguJMKK+C4hOC4s+C4meC4p+C4owor4LiE4Liz4LiZ4Lix4LiaCivguITguLPguJnguLHguKUKK+C4hOC4s+C4meC4swor4LiE4Liz4LiZ4Li24LiHCivguITguLPguJnguLnguJMKK+C4hOC4s+C4muC4seC4h+C4hOC4seC4mgor4LiE4Liz4LmC4Lia4LilCivguITguYnguLPguJvguKPguLDguIHguLHguJkKK+C4hOC4s+C4m+C4o+C4sOC4quC4oQor4LiE4Liz4Lib4Lij4Liy4Lij4LigCivguITguLPguYDguJvguYfguJkKK+C4hOC4s+C4neC4reC4ogor4LiE4Liz4Lie4Li04Lie4Liy4LiB4Lip4LiyCivguITguLPguYDguJ7guKXguLTguIcKK+C4hOC4s+C4n+C5ieC4reC4hwor4LiE4Liz4Lif4LmJ4Lit4LiH4LmB4Lii4LmJ4LiHCivguITguYnguLPguJ/guYnguLIKK+C4hOC4s+C4oeC4seC5iOC4mQor4LiE4Liz4Lih4Lix4LmI4LiZ4Lin4LmI4Liy4LiI4Liw4LmD4Lir4LmJ4Lij4Liy4LiH4Lin4Lix4LilCivguITguLPguKHguLLguIHguJ7guKLguLLguIfguITguYwKK+C4hOC4s+C4oeC4ueC4pQor4LiE4Liz4LmA4Lih4Li34Lit4LiHCivguITguLPguKPguJkKK+C4hOC4s+C4o+C4mgor4LiE4Liz4Lij4LmJ4Lit4LiHCivguITguLPguKPguYnguK3guIfguILguK0KK+C4hOC4s+C4o+C5ieC4reC4h+C4l+C4uOC4geC4guC5jAor4LiE4Liz4Lij4Liy4LihCivguITguLPguKrguLjguKDguLLguJ4KK+C4hOC4s+C5geC4quC4lAor4LiE4Liz4Lir4Lil4Lin4LiHCivguITguYnguLPguKvguLHguKcKK+C4hOC4s+C5geC4q+C4hwor4LiE4Liz4LmC4Lit4LiHCivguITguLTguIHguYYKK+C4hOC4tOC4hwor4LiE4Li04LiUCivguITguLTguJTguIHguLLguKPguYPguKvguI3guYgKK+C4hOC4tOC4lOC4hOC4lAor4LiE4Li04LiU4LiE4LmJ4LiZCivguITguLTguJTguJXguIEKK+C4hOC4tOC4lOC4luC4tuC4hwor4LiE4Li04LiU4Lih4Liy4LiBCivguITguLTguJTguYDguKXguYfguIHguITguLTguJTguJnguYnguK3guKIKK+C4hOC4tOC4lOC4quC4oeC4muC4seC4leC4tOC4muC5ieC4sgor4LiE4Li04LiU4Liq4Lix4LmJ4LiZCivguITguLTguJTguKvguJnguYnguLLguITguLTguJTguKvguKXguLHguIcKK+C4hOC4tOC4lOC5gOC4q+C5h+C4mQor4LiE4Li04LiU4Lit4LmI4Liy4LiZCivguITguLTguKHguKsKK+C4hOC4tOC4oeC4q+C4seC4meC4leC5jAor4LiE4Li04Lih4Lir4Liy4LiZ4LiwCivguITguLTguKPguLQKK+C4hOC4tOC4o+C4tQor4LiE4Li04Lil4Liy4LiZLQor4LiE4Li04Lil4Liy4LiZ4Lib4Lix4LiI4LiI4Lix4LiiCivguITguLTguKXguLLguJnguYDguKDguKrguLHguIoKK+C4hOC4tOC4peC4suC4meC4sAor4LiE4Li04LinCivguITguLTguYnguKcKK+C4hOC4tOC5ieC4p+C4meC4suC4hwor4LiE4Li14LmICivguITguLXguJUKK+C4hOC4teC4leC4geC4sAor4LiE4Li14LiaCivguITguLXguKEKK+C4hOC4teC4o+C4tQor4LiE4Li14Lij4Li14Lia4Li54LiZCivguITguLbguIEKK+C4hOC4tuC5iOC4gQor4LiE4Li24LmI4LiB4LmGCivguITguLbguIHguITguLHguIEKK+C4hOC4tuC4geC4hOC4suC4oQor4LiE4Li34LiZCivguITguLfguJnguITguLMKK+C4hOC4t+C4meC4iuC4teC4ngor4LiE4Li34LiZ4LiU4Li1CivguITguLfguJnguJXguLHguKcKK+C4hOC4t+C4meC4ouC4seC4h+C4o+C4uOC5iOC4hwor4LiE4Li34LiZ4LmD4Lir4LmJCivguITguLfguJoKK+C4hOC4t+C4muC4geC5h+C4l+C4sOC5gOC4pSDguKjguK3guIHguIHguYfguJfguLDguYDguKUKK+C4hOC4t+C4rQor4LiE4Li4CivguITguLjguIEKK+C4hOC4uOC4geC4geC4teC5iQor4LiE4Li44LiB4LmA4LiC4LmI4LiyCivguITguLjguIHguITguKXguLLguJkKK+C4hOC4uOC4geC4hOC4suC4oQor4LiE4Li44LiB4Lie4Liy4LiX4Lii4LmMCivguITguLjguITguLAKK+C4hOC4uOC4hwor4LiE4Li44LmJ4LiHCivguITguLjguJMKK+C4hOC4uOC4ky0KK+C4hOC4uOC4k+C4iuC4suC4ogor4LiE4Li44LiT4LiY4Lij4Lij4LihCivguITguLjguJPguJnguLLguKEKK+C4hOC4uOC4k+C4meC4suC4ogor4LiE4Li44LiT4Lia4LiXCivguITguLjguJPguJ7guLTguYDguKjguKkKK+C4hOC4uOC4k+C4oOC4suC4ngor4LiE4Li44LiT4Lil4Lix4LiB4Lip4LiT4LiwCivguITguLjguJPguKXguLjguIfguITguLjguJPguJvguYnguLIKK+C4hOC4uOC4k+C4p+C4tOC5gOC4qOC4qQor4LiE4Li44LiT4Lin4Li44LiS4Li0CivguITguLjguJPguKjguLHguJ7guJfguYwKK+C4hOC4uOC4k+C4quC4oeC4muC4seC4leC4tAor4LiE4Li44LiT4Lir4LiN4Li04LiHCivguITguLjguJPguLLguIHguKMKK+C4hOC4uOC4k+C4ueC4m+C4geC4suC4owor4LiE4Li44LmC4LiT4Lib4LiB4Liy4LijCivguITguLjguJQKK+C4hOC4uOC4lOC4hOC4ueC5iQor4LiE4Li44LiU4LiX4Liw4Lij4Liy4LiUCivguITguLjguJTguJfguLDguKPguLLguJTguYDguKvguKLguLXguKLguJrguIHguKPguKfguJQKK+C4hOC4uOC4lQor4LiE4Li44LiV4LiV4Li0CivguITguLjguYjguJkKK+C4hOC4uOC5ieC4mQor4LiE4Li44LmJ4LiZ4LmA4LiE4LiiCivguITguLjguJsKK+C4hOC4uOC4m+C4leC5jAor4LiE4Li44Lib4LiV4Li0CivguITguLjguKEKK+C4hOC4uOC5iOC4oQor4LiE4Li44LmJ4LihCivguITguLjguYnguKHguIHguLHguJkKK+C4hOC4uOC4oeC4geC4s+C5gOC4meC4tOC4lAor4LiE4Li44LmJ4Lih4LmA4LiB4Lij4LiHCivguITguLjguYnguKHguITguKPguK3guIcKK+C4hOC4uOC4oeC5geC4hOC5ieC4mQor4LiE4Li44Lih4LmA4LiK4Li04LiHCivguITguLjguYnguKHguJTguLXguITguLjguYnguKHguKPguYnguLLguKIKK+C4hOC4uOC5ieC4oeC5gOC4l+C5ieC4sgor4LiE4Li44LmJ4Lih4LmC4LiX4LipCivguITguLjguKHguJjguLLguJXguLgKK+C4hOC4uOC4oeC4meC4uOC4oQor4LiE4Li44Lih4Lid4Lit4LiiCivguITguLjguYnguKHguKvguYnguLLguKEKK+C4hOC4uOC4ogor4LiE4Li44LmJ4LiiCivguITguLjguYnguKLguYDguILguLXguYjguKIKK+C4hOC4uOC4ouC4iuC5ieC4suC4hwor4LiE4Li44Lii4LirLQor4LiE4Li44Lii4Lir4LiQ4Liy4LiZCivguITguLjguKLguKvguJvguKPguLDguYDguJfguKgKK+C4hOC4uOC4ouC4q+C4o+C4q+C4seC4quC4ouC5jAor4LiE4Li44Lij4Li4CivguITguLjguKPguLjguIHguKPguKPguKEKK+C4hOC4uOC4o+C4uOC4p+C4suC4owor4LiE4Li44Lij4Li44Lio4Li24LiB4Lip4LiyCivguITguLjguKXguLIKK+C4hOC4uOC4peC4suC4i+C5iOC4reC4meC4peC4ueC4gQor4LiE4Li44Lil4Li04LiB4LmI4LiyCivguITguLjguKXguLXguIHguLLguKMKK+C4hOC4uOC4q+C4sgor4LiE4Li5CivguITguLnguYgKK+C4hOC4ueC5iQor4LiE4Li54LmI4LiB4Lij4LiT4Li1CivguITguLnguYjguILguLIKK+C4hOC4ueC5iOC5geC4guC5iOC4hwor4LiE4Li54LmI4LiE4Lij4Lit4LiHCivguITguLnguYjguITguKfguKMKK+C4hOC4ueC5iOC4hOC4p+C4suC4oQor4LiE4Li54LmI4LiE4Lin4Liy4Lih4Lij4LmI4Lin4LihCivguITguLnguYjguITguLTguJQKK+C4hOC4ueC5iOC4hOC4teC5iAor4LiE4Li54LmI4LmA4LiE4Li14Lii4LiHCivguITguLnguYjguYLguIQKK+C4hOC4ueC5iOC5g+C4iAor4LiE4Li54LmI4LiJ4Lia4Lix4LiaCivguITguLnguYjguInguLXguIEKK+C4hOC4ueC5iOC4iuC4seC4gQor4LiE4Li54LmI4LiK4Li14LieCivguITguLnguYjguIrguLXguKfguLTguJUKK+C4hOC4ueC4kwor4LiE4Li54LiT4Lij4LmI4Lin4Lih4LiZ4LmJ4Lit4LiiCivguITguLnguJYKK+C4hOC4ueC5iOC4l+C4uOC4geC4guC5jOC4hOC4ueC5iOC4ouC4suC4gQor4LiE4Li54LiZCivguITguLnguYnguJrguLHguKXguKXguLHguIfguIHguYwKK+C4hOC4ueC5iOC4muC5ieC4suC4meC4hOC4ueC5iOC5gOC4oeC4t+C4reC4hwor4LiE4Li54LmI4Lia4Liy4Lij4Lih4Li1CivguITguLnguYjguJrguLjguI0KK+C4hOC4ueC5iOC4m+C4o+C4m+C4seC4geC4qeC5jAor4LiE4Li54LmI4Lib4Lij4Lix4LiaCivguITguLnguJvguK3guIcKK+C4hOC4ueC5iOC4nOC4quC4oQor4LiE4Li54LmI4Lic4Lix4Lin4LiV4Lix4Lin4LmA4Lih4Li14LiiCivguITguLnguYjguJ7guKPguLDguITguLnguYjguJnguLLguIcKK+C4hOC4ueC5iOC4nuC4tOC4nuC4suC4lwor4LiE4Li54LmI4Lih4LmJ4LiyCivguITguLnguYjguKHguLTguJXguKMKK+C4hOC4ueC5iOC4oeC4t+C4rQor4LiE4Li54LmI4Lii4Liy4LiBCivguITguLnguYjguKPguLHguIEKK+C4hOC4ueC5gOC4o+C4teC4ouC4h+C4hOC4ueC4o+C4suC4ogor4LiE4Li54LmI4LmA4Lij4Li14Lii4LiH4LmA4LiE4Li14Lii4LiH4Lir4Lih4Lit4LiZCivguITguLnguYDguKPguLXguKLguKEKK+C4hOC4ueC5iOC4peC4s+C4lOC4seC4mgor4LiE4Li54LmI4Lio4Lix4LiV4Lij4Li5CivguITguLnguYjguKrguKPguYnguLLguIcKK+C4hOC4ueC5iOC4quC4p+C4lAor4LiE4Li54LmI4Liq4Lix4LiN4LiN4LiyCivguITguLnguYjguKrguLLguKLguYLguJfguKPguKjguLHguJ7guJfguYwKK+C4hOC4ueC5iOC4q+C4oeC4seC5ieC4mQor4LiE4Li54Lir4LiyCivguITguLnguYjguKvguLkKK+C4hOC4ueC5iOC5geC4q+C5iAor4LiE4Li54LmI4Lit4Lij4Li0CivguITguLnguYjguK3guLLguIbguLLguJUKK+C4hOC4ueC5iOC4reC4suC4qOC4seC4ogor4LmA4LiE4LmJ4LiBCivguYDguITguYnguYDguIHguYkKK+C5gOC4hOC5ieC4hwor4LmA4LiE4LiI4LiJCivguYDguITguJPguJHguLAKK+C5gOC4hOC4lAor4LmA4LiE4LiZCivguYDguITguYnguJkKK+C5gOC4hOC5gOC4muC4tOC4pQor4LmA4LiE4LmH4LihCivguYDguITguKHguLUKK+C5gOC4hOC4oeC4teC4oOC4seC4k+C4keC5jAor4LmA4LiE4Lih4Li14Lit4LiZ4Li04LiZ4LiX4Lij4Li14Lii4LmMCivguYDguITguKHguLXguK3guLTguJnguJfguKPguLXguKLguYwKK+C5gOC4hOC4ogor4LmA4LiE4Lii4LiV4Lix4LinCivguYDguITguKLguJvguLLguIEKK+C5gOC4hOC4ouC4oeC4t+C4rQor4LmA4LiE4Lij4LiHCivguYDguITguKPguYjguIcKK+C5gOC4hOC4o+C5iOC4h+C4guC4o+C4tuC4oQor4LmA4LiE4Lij4LmI4LiH4LiE4Lij4Lix4LiUCivguYDguITguKPguIfguITguKPguLIKK+C5gOC4hOC4o+C4h+C4hOC4o+C4swor4LmA4LiE4Lij4LiH4LiE4Lij4LmI4LizCivguYDguITguKPguIfguITguKPguLfguYnguJkKK+C5gOC4hOC4o+C5iOC4h+C5gOC4hOC4o+C4teC4ouC4lAor4LmA4LiE4Lij4LiH4LmA4LiE4Lij4Li14Lii4LinCivguYDguITguKPguJTguLTguJUKK+C5gOC4hOC4o+C4lOC4tOC4leC4n+C4reC4h+C4i+C4tOC5gOC4reC4o+C5jAor4LmA4LiE4Lij4LiZCivguYDguITguKPguLIKK+C5gOC4hOC4o+C5iOC4sgor4LmA4LiE4Lij4Liy4LmB4Lie4LiwCivguYDguITguKPguLLguKvguJPguLUKK+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4LmA4LiE4Lij4Liy4Liw4Lir4LmM4Lir4Liy4Lih4Lii4Liy4Lih4Lij4LmJ4Liy4LiiCivguYDguITguKPguLXguKLguJQKK+C5gOC4hOC4o+C4teC4ouC4pwor4LmA4LiE4Lij4Li34LitCivguYDguITguKPguLfguK3guYDguILguLIKK+C5gOC4hOC4o+C4t+C4reC5gOC4guC4suC4meC5ieC4swor4LmA4LiE4Lij4Li34Lit4LmA4LiC4Liy4Lih4Lin4LiBCivguYDguITguKPguLfguYjguK3guIcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4geC4pQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiB4Lix4LiT4LiR4LmMCivguYDguITguKPguLfguYjguK3guIfguIHguLTguJkKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C5geC4geC4hwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmA4LiC4Li04LiZCivguYDguITguKPguLfguYjguK3guIfguITguKPguLHguKcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4hOC4p+C4muC5geC4meC5iOC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiE4Li54LmICivguYDguITguKPguLfguYjguK3guIfguYDguITguKPguLIKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C5gOC4h+C4tOC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiI4Lix4LiB4LijCivguYDguITguKPguLfguYjguK3guIfguIrguYjguKfguIfguKXguYjguLLguIcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C5gOC4i+C5iOC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiU4LiZ4LiV4Lij4Li1CivguYDguITguKPguLfguYjguK3guIfguJXguYnguJkKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4leC4seC5ieC4hwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LiX4Lit4LiHCivguYDguITguKPguLfguYjguK3guIfguJfguK3guIfguJfguLTguKgKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4l+C4reC4h+C4meC5ieC4reC4ogor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmA4LiX4LioCivguYDguITguKPguLfguYjguK3guIfguYPguJkKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4muC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lia4Lix4LiZ4LiX4Li24LiB4LmA4Liq4Li14Lii4LiHCivguYDguITguKPguLfguYjguK3guIfguJrguLTguJkKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4muC4ueC4iuC4sgor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmB4Lia4LiaCivguYDguITguKPguLfguYjguK3guIfguJvguKPguLDguJTguLHguJoKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4m+C4o+C4uOC4hwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lib4Lix4LmJ4LiZ4LiU4Li04LiZ4LmA4Lic4LiyCivguYDguITguKPguLfguYjguK3guIfguJzguLnguIEKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4oeC4seC5iOC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lih4Li34LitCivguYDguITguKPguLfguYjguK3guIfguKLguJnguJXguYwKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4ouC4meC4leC5jOC5hOC4reC4nuC5iOC4mQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lij4LmI4Lit4LiZCivguYDguITguKPguLfguYjguK3guIfguKPguLLguIcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4o+C4suC4iuC4reC4tOC4quC4o+C4tOC4ouC4suC4oOC4o+C4k+C5jAor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lij4LmI4LizCivguYDguITguKPguLfguYjguK3guIfguYDguKPguLfguK3guJkKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4peC5iOC4suC4hwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmA4Lil4LmI4LiZCivguYDguITguKPguLfguYjguK3guIfguKfguYjguLLguIcKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4quC4lAor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Liq4Liw4LiU4Li44LmJ4LiHCivguYDguITguKPguLfguYjguK3guIfguKrguLHguJoKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4quC4suC4ogor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Liq4Liz4Lit4Liy4LiHCivguYDguITguKPguLfguYjguK3guIfguKrguLjguIHguLPguKjguJ4KK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4quC4ueC4hwor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lir4Lih4Liy4LiiCivguYDguITguKPguLfguYjguK3guIfguKvguKHguLLguKLguIHguLLguKPguITguYnguLIKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4q+C4ouC4p+C4gQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4Lir4Lil4Lix4LiHCivguYDguITguKPguLfguYjguK3guIfguKvguYnguLIKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C5gOC4q+C4peC5h+C4gQor4LmA4LiE4Lij4Li34LmI4Lit4LiH4LmD4Lir4LiN4LmICivguYDguITguKPguLfguYjguK3guIfguK3guLHguIfguJfguKPguLLguKIKK+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4reC4seC4h+C4meC5ieC4swor4LmA4LiE4Lij4Li34Lit4LiI4Lix4LiB4Lij4Lig4LieCivguYDguITguKPguLfguK3guJTguLTguJkKK+C5gOC4hOC4o+C4t+C4reC5geC4ouC5iOC4hwor4LmA4LiE4Lij4Li34Lit4Lij4Lix4LiQCivguYDguITguKPguLfguK3guKfguLHguKXguKLguYzguJ7guLHguJnguYTguKHguYkKK+C5gOC4hOC4peC5ieC4hwor4LmA4LiE4Lil4LmH4LiUCivguYDguITguKXguYnguJkKK+C5gOC4hOC4peC5ieC4sgor4LmA4LiE4Lil4LmI4Liy4LiE4Lil4LmI4Lit4LiHCivguYDguITguKXguYnguLLguITguKXguLbguIcKK+C5gOC4hOC4peC5ieC4suC5gOC4hOC4peC4teC4ogor4LmA4LiE4Lil4Li04Lia4LmA4LiE4Lil4Li04LmJ4LihCivguYDguITguKXguLTguYnguKEKK+C5gOC4hOC4peC4teC4ogor4LmA4LiE4Lil4Li14Lii4LiE4Lil4LitCivguYDguITguKXguLXguYnguKLguITguKXguLTguIcKK+C5gOC4hOC4peC4teC4ouC5gOC4hOC4peC5ieC4sgor4LmA4LiE4Lil4Li34LmI4Lit4LiZCivguYDguITguKXguLfguYjguK3guJnguITguKXguLLguJQKK+C5gOC4hOC4peC4t+C5iOC4reC4meC4l+C4teC5iAor4LmA4LiE4Lil4Li34LmI4Lit4LiZ4LmE4Lir4LinCivguYDguITguKXguLfguK3guJoKK+C5gOC4hOC4peC4t+C4reC4muC4hOC4peC4uOC4oQor4LmA4LiE4Lil4Li34Lit4Lia4LmB4LiE4Lil4LiHCivguYDguITguKXguLfguK3guJrguYHguJ3guIcKK+C5gOC4hOC4peC4t+C4reC4muC4n+C4seC4mQor4LmA4LiE4Lin4LmJ4LiHCivguYDguITguKfguYnguIfguITguKfguYnguLLguIcKK+C5gOC4hOC4qy0KK+C5gOC4hOC4q+C4qOC4suC4quC4leC4o+C5jAor4LmA4LiE4Lir4LmA4Lio4Lij4Lip4LiQ4Lio4Liy4Liq4LiV4Lij4LmMCivguYDguITguKvguKrguJbguLLguJkKK+C5gOC4hOC4q+C4sAor4LmA4LiE4Lir4LiyCivguYDguITguK3guKIKK+C5gOC4hOC4reC4sAor4LmA4LiE4LiyCivguYDguITguYnguLIKK+C5gOC4hOC5ieC4suC5guC4hOC4o+C4hwor4LmA4LiE4LmJ4Liy4LmA4LiH4Li34LmI4Lit4LiZCivguYDguITguLLguJnguYzguYDguJXguK3guKPguYwKK+C5gOC4hOC5ieC4suC4oeC4ueC4pQor4LmA4LiE4Liy4Lij4LieCivguYDguITguYnguLLguKrguJnguLLguKHguKvguKXguKfguIcKK+C5gOC4hOC4suC4sAor4LmA4LiE4Liy4Liw4LmB4LiE4LiwCivguYDguITguLXguYnguKIKK+C5gOC4hOC4teC4ouC4hwor4LmA4LiE4Li14Lii4LiH4Lia4LmI4Liy4LmA4LiE4Li14Lii4LiH4LmE4Lir4Lil4LmICivguYDguITguLXguKLguJQKK+C5gOC4hOC4teC4ouC4lOC5geC4hOC5ieC4mQor4LmA4LiE4Li14Lii4LiZCivguYDguITguLXguKLguKEKK+C5gOC4hOC4teC5iOC4ouC4oQor4LmA4LiE4Li14LmI4Lii4Lih4LiE4Liw4LiZ4Lit4LiHCivguYDguITguLXguKLguKMKK+C5gOC4hOC4teC4ouC4pwor4LmA4LiE4Li14LmI4Lii4LinCivguYDguITguLXguYnguKLguKcKK+C5gOC4hOC4teC5iOC4ouC4p+C4guC4seC4mQor4LmA4LiE4Li14LmI4Lii4Lin4LiC4Lix4LiaCivguYDguITguLXguYjguKLguKfguYDguILguYfguI0KK+C5gOC4hOC4teC5ieC4ouC4p+C4n+C4seC4mQor4LmA4LiE4Li14LmJ4Lii4Lin4LmA4Lit4Li34LmJ4Lit4LiHCivguYDguITguLfguYnguK0KK+C5gOC4hOC4t+C4reC4hwor4LmB4LiECivguYHguITguYgKK+C5geC4hOC5iQor4LmB4LiE4LmB4LiB4LilCivguYHguITguJTguYDguKHguLXguKLguKEKK+C5geC4hOC5h+C4leC4leC4suC4peC5h+C4reC4gQor4LmB4LiE4LmB4LiV4LijCivguYHguITguYLguJfguJQKK+C5geC4hOC4mQor4LmB4LiE4LmI4LiZCivguYHguITguYnguJkKK+C5geC4hOC5ieC4meC4hOC4rQor4LmB4LiE4LmI4LiZ4LmB4LiE4LiwCivguYHguITguYjguJnguYTguITguYkKK+C5geC4hOC4mgor4LmB4LiE4Lia4Lir4Lih4Li5CivguYHguITguJvguIvguLnguKUKK+C5geC4hOC4neC4o+C4seC5iOC4hwor4LmB4LiE4Lid4Lit4LiiCivguYHguITguKEKK+C5geC4hOC4o+C5iAor4LmB4LiE4Lij4LiBCivguYHguITguKPguITguKPguLHguYjguIcKK+C5geC4hOC4o+C4hwor4LmB4LiE4Lij4LiH4LmA4LiE4Lij4Li14Lii4LinCivguYHguITguKPguLAKK+C5geC4hOC4peC4hOC4ueC4peC4seC4qgor4LmB4LiE4Lil4LiHCivguYHguITguKXguIfguYPguIgKK+C5geC4hOC4peC5gOC4i+C4teC4ouC4oQor4LmB4LiE4Lil4LmA4LiL4Li14Lii4Lih4LiE4Liy4Lij4LmM4LmE4Lia4LiU4LmMCivguYHguITguKXguYDguIvguLXguKLguKHguYTguIvguITguKXguLLguYDguKHguJUKK+C5geC4hOC4peC4mQor4LmB4LiE4Lil4LmJ4LinCivguYHguITguKXguYjguKfguITguKXguYjguK3guIcKK+C5geC4hOC4peC5ieC4p+C4hOC4peC4suC4lAor4LmB4LiE4Lil4Lit4Lij4Li1CivguYHguITguKXguLTguJ/guK3guKPguYzguYDguJnguLXguKLguKEKK+C5geC4hOC5geC4pQor4LmB4LiE4LinCivguYHguITguKfguIEKK+C5geC4hOC4p+C5ieC4hwor4LmB4LiE4Lin4LmJ4LiZCivguYHguITguYHguKrguJQKK+C5geC4hOC4sAor4LmB4LiE4Liw4LmE4LiE4LmJCivguYLguIQKK+C5guC4hOC4gQor4LmC4LiE4LiB4LiB4Lij4Liw4Liq4Li44LiZCivguYLguITguIHguIHguKPguLDguK3guK3guKEKK+C5guC4hOC4geC4oeC5ieC4sgor4LmC4LiE4LmB4LiB4LmI4LiK4Lit4Lia4LiB4Li04LiZ4Lir4LiN4LmJ4Liy4Lit4LmI4Lit4LiZCivguYLguITguITguKXguLLguJkKK+C5guC4hOC5gOC4hOC4mQor4LmC4LiE4LmI4LiHCivguYLguITguYnguIcKK+C5guC4hOC4iOC4owor4LmC4LiE4LiI4LijLQor4LmC4LiE4LiI4Lij4LiE4Liy4LihCivguYLguITguYDguIvguYHguITguJnguJXguYwKK+C5guC4hOC5hOC4i+C4meC5jAor4LmC4LiE4LiV4LijCivguYLguITguJXguKMtCivguYLguITguJXguKPguKDguLkKK+C5guC4hOC4leC4o+C4oOC4ueC4jeC4suC4kwor4LmC4LiE4LmA4LiW4Lil4Li04LiHCivguYLguITguYHguJfguJnguYDguIjguJnguJXguYwKK+C5guC4hOC4mOC4sgor4LmC4LiE4LiZCivguYLguITguYjguJkKK+C5guC4hOC4meC4lOC4tOC4meC4quC4rQor4LmC4LiE4LiZ4LiV4Liy4Lii4Lib4Lil4Liy4Lii4LmA4Lib4LmH4LiZCivguYLguITguJnguKEKK+C5guC4hOC4meC4quC4oeC4rQor4LmC4LiE4Lia4Lit4Lil4LiV4LmMCivguYLguITguJrguLLguKUKK+C5guC4hOC4muC4uOC4leC4owor4LmC4LiE4Lib4Lic4LiB4LiwCivguYLguITguYDguJ7guKXguLLguLAKK+C5guC4hOC5hOC4nuC4owor4LmC4LiE4LihCivguYLguITguKHguJTguK3guIHguYTguKHguYkKK+C5guC4hOC4oeC4leC4suC4p+C4seC4pwor4LmC4LiE4Lih4Lil4Lit4LiiCivguYLguITguKHguYDguKfguLXguKLguJkKK+C5guC4hOC4oeC4seC4ogor4LmC4LiE4Lih4LmI4LiyCivguYLguITguKHguLnguJXguKMKK+C5guC4hOC4o+C4gQor4LmC4LiE4Lij4LiB4LiE4Lij4Lit4LiBCivguYLguITguKPguIHguITguKPguLLguIEKK+C5guC4hOC4o+C4hwor4LmC4LiE4Lij4LmI4LiHCivguYLguITguKPguIfguIHguLLguKMKK+C5guC4hOC4o+C5iOC4h+C4hOC4o+C5iOC4suC4hwor4LmC4LiE4Lij4LiH4LmB4LiE4LijCivguYLguITguKPguIfguIjguKHguLnguIEKK+C5guC4hOC4o+C4h+C5gOC4o+C4t+C5iOC4reC4hwor4LmC4LiE4Lij4LiH4Liq4Lij4LmJ4Liy4LiHCivguYLguITguKPguKEKK+C5guC4hOC4o+C4oeC4hOC4o+C4suC4oQor4LmC4LiE4Lij4LmA4Lih4Li14Lii4LihCivguYLguITguKPguYLguKHguYLguIvguKEKK+C5guC4hOC4o+C4qgor4LmC4LiE4Lij4Liy4LiKCivguYLguITguKPguLMKK+C5guC4hOC5guC4o+C4hAor4LmC4LiE4LilCivguYLguITguKXguIcKK+C5guC4hOC4peC4h+C5gOC4hOC4peC4hwor4LmC4LiE4Lil4LiZCivguYLguITguKfguJXguLIKK+C5guC4hOC4p+C4tOC4luC4tQor4LmC4LiE4Lio4Lix4Lie4LiX4LmMCivguYLguITguK3guK3guKPguYzguJTguLTguYDguJnguJUKK+C5g+C4hOC4owor4LmD4LiE4Lij4LmICivguYPguITguKPguYjguITguKPguKfguI0KK+C5hOC4hAor4LmE4LiE4LmJCivguYTguITguKPguYkKK+C5hOC4hOC4o+C5ieC5gOC4hOC4o+C4t+C4rQor4LmE4LiE4LilCivguYTguITguKXguYkKK+C4hQor4LiGCivguIbguJkKK+C4huC4o+C4suC4p+C4suC4qgor4LiG4LmJ4Lit4LiHCivguIbguYnguK3guIfguIHguKPguLDguYHguJUKK+C4huC5ieC4reC4h+C4iuC4seC4ogor4LiG4LmJ4Lit4LiH4Lib4Liy4LiB4LmB4LiV4LiBCivguIbguYnguK3guIfguKfguIcKK+C4huC5ieC4reC4h+C4quC4suC4oeC4ouC5iOC4suC4mQor4LiG4LmJ4Lit4LiH4Lir4Li44LmI4LiiCivguIbguYnguK3guIfguYDguKvguKHguYjguIcKK+C4huC5ieC4reC4h+C5guC4q+C4oeC5iOC4hwor4LiG4LmI4LiyCivguIbguYjguLLguITguKfguLLguKLguK3guKLguYjguLLguYDguKrguLXguKLguJTguLLguKLguJ7guKPguLTguIEKK+C4huC4suC4jwor4LiG4Liy4LiVCivguIbguLLguJUtCivguIbguLLguJXguIHguKMKK+C4huC4suC4leC4geC4o+C4o+C4oQor4LiG4Liy4LiZCivguIbguLLguJktCivguIbguLLguJnguJvguKPguLDguKrguLLguJcKK+C4huC5iOC4suC5hOC4oeC5iOC4leC4suC4ouC4guC4suC4ouC5hOC4oeC5iOC4guC4suC4lAor4LmA4LiG4Li14LmI4Lii4LiZCivguYLguIbguKPguKfguLTguKoKK+C5guC4huC4qeC4gQor4LmC4LiG4Lip4LiT4LiyCivguYLguIbguKnguJPguLLguIHguLLguKMKK+C5guC4huC4qeC4k+C4suC4iuC4p+C4meC5gOC4iuC4t+C5iOC4rQor4LmC4LiG4Lip4LiwCivguYLguIbguKnguLTguJUKK+C4hwor4LiH4LiBCivguIfguIHguYDguIfguLTguYjguJkKK+C4h+C4geC5hiDguYDguIfguLTguYjguJnguYYKK+C4h+C4hwor4LiH4LiH4LiH4Lin4LiiCivguIfguIfguIfguLHguJkKK+C4h+C4h+C4tOC4lAor4LiH4LiUCivguIfguJTguIfguLLguKEKK+C4h+C4mgor4LiH4Lia4LiU4Li44LilCivguIfguJrguJvguKPguLDguKHguLLguJMKK+C4h+C4oQor4LiH4Lih4LmA4LiC4LmH4Lih4LmD4LiZ4Lih4Lir4Liy4Liq4Lih4Li44LiX4LijCivguIfguKHguYLguILguYjguIcKK+C4h+C4oeC4h+C4suC4ogor4LiH4Lin4LiHCivguIfguYjguKfguIcKK+C4h+C5iOC4p+C4h+C4h+C4uOC4mQor4LiH4Lin4LiH4LiK4LmJ4Liy4LiHCivguIfguYjguKfguIfguYDguKvguIfguLIKK+C4h+C5iOC4p+C4h+C5gOC4q+C4h+C4suC4q+C4suC4p+C4meC4reC4mQor4LiH4Lin4LiUCivguIfguYjguKfguJkKK+C4h+C5ieC4p+C4mQor4LiH4Lin4Lii4LiH4LiHCivguIfguK0KK+C4h+C5ieC4rQor4LiH4Lit4LiBCivguIfguK3guIHguIfguLLguKEKK+C4h+C4reC4geC5gOC4h+C4ogor4LiH4Lit4LiB4LmB4LiH4LiBCivguIfguK3guIHguYjguK3guIfguK3guILguLTguIcKK+C4h+C5iOC4reC4hwor4LiH4LmI4Lit4LiH4LmB4LiH4LmI4LiHCivguIfguYnguK3guIfguK3guJkKK+C4h+C4reC5geC4hwor4LiH4Lit4LiUCivguIfguK3guJTguYHguIfguJQKK+C4h+C4reC4mQor4LiH4LmI4Lit4LiZCivguIfguK3guJnguIfguYnguK0KK+C4h+C5iOC4reC4meC5geC4h+C5iOC4mQor4LiH4Lit4LiZ4LmE4LiWCivguIfguK3guJnguKvguIfguYjguK0KK+C4h+C5ieC4reC4meC4q+C4oeC4uQor4LiH4Lit4LiaCivguIfguK3guKEKK+C4h+C5ieC4reC4oQor4LiH4Lit4Lih4LmB4LiH4LihCivguIfguK3guKHguJ7guKPguLDguKPguLLguKEKK+C4h+C4reC4oeC4t+C4reC4h+C4reC4leC4teC4mQor4LiH4Lit4LiiCivguIfguYjguK3guKIKK+C4h+C5iOC4reC4ouC5gOC4m+C4peC4teC5ieC4ouC5gOC4quC4teC4ouC4guC4sgor4LiH4Lit4Lir4Liy4LiiCivguIfguLAKK+C4h+C4seC4geC5hgor4LiH4Lix4LmI4LiB4LmGCivguIfguLHguIfguYYKK+C4h+C4seC5iOC4hwor4LiH4Lix4LiUCivguIfguLHguJTguILguYnguK0KK+C4h+C4seC4mQor4LiH4Lix4LiZ4LiH4LiBCivguIfguLHguJoKK+C4h+C4seC4muC5geC4hwor4LiH4Lix4LinCivguIfguLHguYjguKcKK+C4h+C4seC4p+C5gOC4h+C4teC4ogor4LiH4Lix4Lin4LiL4Lix4LiHCivguIfguLHguKfguYDguKXguLXguKIKK+C4h+C4sgor4LiH4LmI4LiyCivguIfguLLguIHguLPguIjguLLguKIKK+C4h+C4suC5gOC4hOC4o+C4t+C4rQor4LiH4LmJ4Liy4LiHCivguIfguYjguLLguYDguIfguKIKK+C4h+C4suC4iuC5ieC4suC4hwor4LiH4Liy4LmB4LiL4LiHCivguIfguLLguYTguIsKK+C4h+C4suC4leC4seC4lAor4LiH4Liy4LiZCivguIfguYjguLLguJkKK+C4h+C4suC4meC4geC4suC4owor4LiH4Liy4LiZ4Lir4Lil4Lin4LiH4LmE4Lih4LmI4LmD4Lir4LmJ4LiC4Liy4LiUIOC4h+C4suC4meC4o+C4suC4qeC4juC4o+C5jOC5hOC4oeC5iOC5g+C4q+C5ieC5gOC4quC4teC4ogor4LiH4Liy4Lia4LmGCivguIfguLLguKEKK+C4h+C5iOC4suC4oQor4LiH4Liy4Lih4LiH4Lit4LiZCivguIfguLLguKHguYHguIfguLAKK+C4h+C5iOC4suC4oeC4luC5iOC4rQor4LiH4Liy4Lih4Lir4LiZ4LmJ4LiyCivguIfguLLguKIKK+C4h+C5iOC4suC4ogor4LiH4LmI4Liy4Lii4LmGCivguIfguYjguLLguKLguJTguLLguKIKK+C4h+C5iOC4suC4ouC5ieC4reC4ogor4LiH4Liy4Lil4Lix4LmI4LinCivguIfguYnguLLguKcKK+C4h+C4suC4quC4suC4mQor4LiH4LizCivguIfguYjguLMKK+C4h+C5iOC4s+C5hgor4LiH4LmJ4LizCivguIfguLTguYnguKcKK+C4h+C4teC4mgor4LiH4Li24LiB4LmGCivguIfguLbguJkKK+C4h+C4tuC4oQor4LiH4Li24Lih4LiH4LizCivguIfguLjguJQKK+C4h+C4uOC4lOC5hgor4LiH4Li44LiZ4LiH4LiHCivguIfguLjguYjguJnguIfguYjguLLguJkKK+C4h+C4uOC4mgor4LiH4Li44Lia4LmGCivguIfguLjguJrguIfguLTguJoKK+C4h+C4uOC5ieC4oQor4LiH4Li44LmI4Lih4LiH4LmI4Liy4LihCivguIfguLjguKIKK+C4h+C4uQor4LiH4Li54LiB4Lil4Li34LiZ4Lir4Liy4LiHCivguIfguLnguIHguLTguJnguKvguLLguIcKK+C4h+C4ueC4mgor4LiH4Li54LmGIOC4m+C4peC4suC5hgor4LiH4Li54Lic4Li54LmJCivguIfguLnguYDguKHguLXguKIKK+C4h+C4ueC4quC4p+C4seC4lAor4LiH4Li54LmI4Lir4LiZ4Li1CivguIfguLnguYDguKvguKXguLfguK3guKEKK+C4h+C4ueC5gOC4q+C5iOC4sgor4LmA4LiH4LmJCivguYDguIfguIEKK+C5gOC4h+C5h+C4mQor4LmA4LiH4LiiCivguYDguIfguKLguKvguJnguYnguLLguK3guYnguLLguJvguLLguIEKK+C5gOC4h+C4reC4sAor4LmA4LiH4Lit4Liw4LiH4LiwCivguYDguIfguLIKK+C5gOC4h+C4suC5hgor4LmA4LiH4LmI4LiyCivguYDguIfguYnguLIKK+C5gOC4h+C5ieC4suC4h+C4reC4lAor4LmA4LiH4LmJ4Liy4LmGIOC4h+C4reC4lOC5hgor4LmA4LiH4Liy4LiV4Liy4Lih4LiV4Lix4LinCivguYDguIfguLLguKHguLHguKcKK+C5gOC4h+C4suC4oeC4t+C4lAor4LmA4LiH4Liy4LiwCivguYDguIfguLLguLDguJvguYjguLIKK+C5gOC4h+C4tOC4mQor4LmA4LiH4Li04LiZ4LiB4LmJ4LiZ4LiW4Li44LiHCivguYDguIfguLTguJnguIHguYnguK3guJkKK+C5gOC4h+C4tOC4meC4geC4ueC5iQor4LmA4LiH4Li04LiZ4LmA4LiK4Li34LmI4LitCivguYDguIfguLTguJnguJTguLLguKfguJnguYwKK+C5gOC4h+C4tOC4meC5gOC4lOC4t+C4reC4mQor4LmA4LiH4Li04LiZ4LmB4LiU4LiHCivguYDguIfguLTguJnguYTguJTguYnguIHguLPguJrguLHguIcKK+C5gOC4h+C4tOC4meC4leC5ieC4mQor4LmA4LiH4Li04LiZ4LiV4Lij4LiyCivguYDguIfguLTguJnguJXguLLguKIKK+C5gOC4h+C4tOC4meC4l+C4reC4h+C4leC4o+C4sgor4LmA4LiH4Li04LiZ4LiX4Lit4LiZCivguYDguIfguLTguJnguJnguK3guJkKK+C5gOC4h+C4tOC4meC4meC5ieC4s+C4q+C5ieC4suC4meC5ieC4s+C4q+C4gQor4LmA4LiH4Li04LiZ4Lib4Lil4Li14LiBCivguYDguIfguLTguJnguJvguLHguJnguJzguKUKK+C5gOC4h+C4tOC4meC4m+C4suC4geC4luC4uOC4hwor4LmA4LiH4Li04LiZ4Lib4Liy4LiB4Lic4Li1CivguYDguIfguLTguJnguJvguLUKK+C5gOC4h+C4tOC4meC5geC4mwor4LmA4LiH4Li04LiZ4Lic4LmI4Lit4LiZCivguYDguIfguLTguJnguJ3guLfguJQKK+C5gOC4h+C4tOC4meC5gOC4n+C5ieC4rQor4LmA4LiH4Li04LiZ4Lih4Li44LmI4LiZCivguYDguIfguLTguJnguKLguKfguIcKK+C5gOC4h+C4tOC4meC5gOC4ouC4reC4o+C4oeC4seC4mQor4LmA4LiH4Li04LiZ4Lij4LmJ4Lit4LiZCivguYDguIfguLTguJnguKPguLLguKLguJvguLUKK+C5gOC4h+C4tOC4meC4quC4lAor4LmA4LiH4Li04LiZ4Liq4LmA4LiV4Lit4Lij4LmM4Lil4Li04LiHCivguYDguIfguLTguJnguKvguKXguKfguIcKK+C5gOC4h+C4tOC4meC5geC4q+C5ieC4hwor4LmA4LiH4Li14LmI4Lii4LiHCivguYDguIfguLXguYjguKLguJkKK+C5gOC4h+C4teC4ouC4mgor4LmA4LiH4Li14Lii4Lia4LiB4Lij4Li04LiaCivguYDguIfguLXguKLguJrguYDguIrguLXguKLguJoKK+C5gOC4h+C4teC4ouC4muC5gOC4m+C5h+C4meC5gOC4m+C5iOC4suC4quC4suC4gQor4LmA4LiH4Li14Lii4Lia4LmA4Lir4LiH4LiyCivguYDguIfguLXguYnguKLguKcKK+C5gOC4h+C4teC5ieC4ouC4p+C4o+C4sOC5gOC4o+C4tOC4hwor4LmA4LiH4Li14LmJ4Lii4Lin4Lij4Liz4Lil4Li24LiBCivguYDguIfguLXguYjguKLguKvguLkKK+C5gOC4h+C4t+C5ieC4rQor4LmA4LiH4Li34Lit4LiBCivguYDguIfguLfguYjguK3guIcKK+C5gOC4h+C4t+C5iOC4reC4h+C5hgor4LmA4LiH4Li34LmI4Lit4LiH4Lir4LiH4Lit4LiiCivguYDguIfguLfguYnguK3guIfguYjguLLguKPguLLguITguLLguYHguJ7guIcKK+C5gOC4h+C4t+C4reC4lAor4LmA4LiH4Li34Lit4LiU4LiH4LiUCivguYDguIfguLfguK3guJTguYDguIfguLfguYnguK0KK+C5gOC4h+C4t+C4reC4mQor4LmA4LiH4Li34LmI4Lit4LiZCivguYDguIfguLfguYjguK3guJnguYTguIIKK+C5gOC4h+C4t+C5iOC4reC4meC5hOC4guC4muC4seC4h+C4hOC4seC4muC4geC5iOC4reC4mQor4LmA4LiH4Li34LmI4Lit4LiZ4LmE4LiC4Lia4Lix4LiH4LiE4Lix4Lia4Lir4Lil4Lix4LiHCivguYDguIfguLfguYjguK3guJnguIfguLMKK+C5gOC4h+C4t+C5iOC4reC4meC5gOC4p+C4peC4sgor4LmA4LiH4Li34LmI4Lit4LiZ4LmA4Lin4Lil4Liy4LmA4Lij4Li04LmI4Lih4LiV4LmJ4LiZCivguYDguIfguLfguYjguK3guJnguYDguKfguKXguLLguKrguLTguYnguJnguKrguLjguJQKK+C5gOC4h+C4t+C4reC4mgor4LmA4LiH4Li34LmJ4Lit4LihCivguYDguIfguLfguYnguK3guKHguKHguLfguK0KK+C5geC4hwor4LmB4LiH4LmGCivguYHguIfguYgKK+C5geC4h+C5iOC4hwor4LmB4LiH4LmI4LiH4LmGCivguYHguIfguYjguIfguILguLTguIcKK+C5geC4h+C5iOC4h+C4reC4mQor4LmB4LiH4LmI4LiZCivguYHguIfguYjguJnguYYKK+C5geC4h+C5ieC4oQor4LmB4LiH4LiwCivguYLguIcKK+C5guC4h+C5iAor4LmC4LiH4LiBCivguYLguIfguIHguYDguIfguIEKK+C5guC4h+C5iOC5geC4geC4oeC4q+C4ouC4tOC5iOC4hwor4LmC4LiH4LiHCivguYLguIfguYjguIfguYYKK+C5guC4h+C5ieC4hwor4LmC4LiH4LiH4LmA4LiH4LiHCivguYLguIfguYjguIfguYDguIfguYjguIcKK+C5guC4h+C5gOC4hwor4LmC4LiH4LmI4LmA4LiH4LmI4LiyCivguYLguIfguYjguYDguIfguYjguLLguYDguJXguYjguLLguJXguLjguYjguJkKK+C5guC4h+C4mQor4LmC4LiH4LiZ4LmA4LiH4LiZCivguYLguIfguYjguYHguKXguYnguKfguK3guKLguLLguIHguJnguK3guJnguYDguJXguLXguKLguIcKK+C5hOC4h+C5iQor4LiICivguIjguIEKK+C4iOC4hwor4LiI4LmI4LiHCivguIjguYvguIcKK+C4iOC4h+C4geC4o+C4oQor4LiI4LiH4LiB4Lij4Lih4LmB4LiB4LmJ4LinCivguIjguIfguIHguKUKK+C4iOC4h+C4geC4peC4meC4tQor4LiI4LiH4LmA4LiB4Lil4Li14Lii4LiU4LiI4LiH4LiK4Lix4LiHCivguIjguIfguYLguITguKPguYjguIcKK+C4iOC4h+C5g+C4iAor4LiI4LiH4LiU4Li1CivguIjguIfguKPguLHguIEKK+C4iOC4h+C4o+C4seC4geC4oOC4seC4geC4lOC4tQor4LiI4LiH4Lit4LijCivguIjguIfguK3guLLguIcKK+C4iOC5geC4iOC5ieC4mQor4LiI4LiNCivguIjguJQKK+C4iOC4lOC4iOC5iOC4rQor4LiI4LiU4LiI4LmJ4Lit4LiHCivguIjguJTguYYg4LiI4LmJ4Lit4LiH4LmGCivguIjguJTguIjguLMKK+C4iOC4lOC4l+C4sOC5gOC4muC4teC4ouC4mQor4LiI4LiU4Lir4Lih4Lix4LiUCivguIjguJTguKvguKHguLLguKIKK+C4iOC4lOC4q+C4oeC4suC4ouC5gOC4p+C4teC4ouC4mQor4LiI4LiU4Lir4Lih4Liy4Lii4LmA4Lir4LiV4Li4CivguIjguJTguLjguKMKK+C4iOC4lOC4uOC4o+C4h+C4hOC5jAor4LiI4LiU4Li54LijLQor4LiI4LiV4Li4LQor4LiI4LiV4Li44LiB4Liy4Lil4LiY4Liy4LiV4Li4CivguIjguJXguLjguJXguJYtCivguIjguJXguLjguJXguJbguLUKK+C4iOC4leC4uOC4l+C4tOC4nuC4ouC4hOC4seC4meC4mOC4sgor4LiI4LiV4Li44Lia4LiXCivguIjguJXguLjguJrguKPguLTguKnguLHguJcKK+C4iOC4leC4uOC4m+C4seC4iOC4iOC4seC4ogor4LiI4LiV4Li44Lib4Liy4Lij4Li04Liq4Li44LiX4LiY4Li04Lio4Li14LilCivguIjguJXguLjguKMtCivguIjguJXguLjguKPguITguLnguJMKK+C4iOC4leC4uOC4o+C4h+C4hOC5jAor4LiI4LiV4Li44Lij4LiH4LiE4LiZ4Liy4Lii4LiBCivguIjguJXguLjguKPguIfguITguJvguKPguLDguJTguLHguJoKK+C4iOC4leC4uOC4o+C4h+C4hOC4ouC4oeC4gQor4LiI4LiV4Li44Lij4LiWLQor4LiI4LiV4Li44Lij4Lie4Lix4LiB4LiV4Lij4LmMCivguIjguJXguLjguKPguJ7guLTguJgKK+C4iOC4leC4uOC4o+C4nuC4tOC4mOC4nuC4owor4LiI4LiV4Li44Lij4Lig4Li44LiKCivguIjguJXguLjguKPguKDguLnguKHguLQKK+C4iOC4leC4uOC4o+C4ouC4uOC4hAor4LiI4LiV4Li44Lij4Liy4Lij4Li04Lii4Liq4Lix4LiICivguIjguJXguLjguKXguLHguIfguITguJrguLLguJcKK+C4iOC4leC4uOC5guC4peC4geC4muC4suC4pQor4LiI4LiV4Li44Liq4LiU4Lih4Lig4LmMCivguIjguJfguLbguIcKK+C4iOC4mQor4LiI4LmJ4LiZCivguIjguJnguIHguKPguLDguJfguLHguYjguIcKK+C4iOC4meC4geC4p+C5iOC4sgor4LiI4LiZ4LiK4Lix4LmJ4LiZCivguIjguJnguJTguYnguKfguKLguYDguIHguKXguYnguLIKK+C4iOC4meC4luC4tuC4hwor4LiI4LiZ4LmB4Lil4LmJ4Lin4LiI4LiZ4Lij4Lit4LiUCivguIjguJoKK+C4iOC4muC5gOC4q+C5iAor4LiI4LihCivguIjguYjguKEKK+C4iOC4oeC5gOC4muC5ieC4sgor4LiI4Lih4Lib4Lil4Lix4LiBCivguIjguKHguYTguKHguYjguKXguIcKK+C4iOC4oeC4owor4LiI4Lih4Lij4Li1CivguIjguKHguLnguIEKK+C4iOC4oeC4ueC4geC4m+C4peC4suC4q+C4peC4lAor4LiI4Lih4Li54LiB4Lib4Lil4Liy4LmE4Lir4LilCivguIjguKHguLnguIHguKHguJQKK+C4iOC4oeC4ueC4geC4p+C4seC4pwor4LiI4Lih4Li54LiB4Lir4Lil4Lit4LiUCivguIjguKLguLjguJXguLQKK+C4iOC4owor4LiI4LijLQor4LiI4Lij4LiBCivguIjguKPguIHguKXguLnguYgKK+C4iOC4o+C5geC4geC4p+C5iOC4hwor4LiI4Lij4LiE4Lix4LmI4LiHCivguIjguKPguIjguKPguLHguKUKK+C4iOC4o+C4iOC4seC4lAor4LiI4Lij4LiT4LiwCivguIjguKPguJQKK+C4iOC4o+C4lOC4nuC4o+C4sOC4geC4o+C4o+C5hOC4leC4o+C4geC4o+C4o+C4muC4tOC4lAor4LiI4Lij4LiU4Lie4Lij4Liw4LiZ4Lix4LiH4LiE4Lix4LilCivguIjguKPguJTguKUKK+C4iOC4o+C4muC4mQor4LiI4Lij4Lia4Lix4LiZCivguIjguKPguJrguLLguJcKK+C4iOC4o+C4oeC4seC4mQor4LiI4Lij4Lih4Li54LiBCivguIjguKPguKPguIjguLIKK+C4iOC4o+C4o+C5guC4iOC4qQor4LiI4Lij4Lij4LihCivguIjguKPguKPguKEtCivguIjguKPguKPguKHguIHguLLguKMKK+C4iOC4o+C4o+C4oeC4guC4seC4k+C4keC5jAor4LiI4Lij4Lij4Lii4LiyCivguIjguKPguKPguKLguLLguJrguKPguKPguJMKK+C4iOC4o+C4o+C5guC4peC4hwor4LiI4Lij4Lil4Lin4LiHCivguIjguKPguKXguYjguKfguIcKK+C4iOC4o+C4peC4suC4lAor4LiI4Lij4Lil4Liy4LiiCivguIjguKPguKXguYjguLMKK+C4iOC4o+C4peC4tOC5iOC4pwor4LiI4Lij4Lil4Li1CivguIjguKPguKXguLnguYgKK+C4iOC4o+C4p+C4iAor4LiI4Lij4Lin4LiI4LmE4LiI4LijCivguIjguKPguKfguJQKK+C4iOC4o+C4p+C4lOC4iOC4o+C4tQor4LiI4Lij4Lin4LiU4LiZ4Liz4Lin4Li04LiW4Li1CivguIjguKPguKfguLHguIEKK+C4iOC4o+C4qgor4LiI4Lij4Lit4LiBCivguIjguKPguLDguIHguKXguYnguLLguKIKK+C4iOC4o+C4sOC4guC4suC4mgor4LiI4Lij4Liw4LmA4LiC4LmJCivguIjguKPguLDguYDguILguYnguJvguLLguIHguIHguKPguLDguJfguLjguIfguYDguKvguKcKK+C4iOC4o+C4sOC5gOC4guC5ieC4q+C4suC4h+C4ouC4suC4pwor4LiI4Lij4Liw4LiE4Lil4Lix4LiaCivguIjguKPguLDguITguKXguYnguLLguKIKK+C4iOC4o+C4sOC4hOC4peC4uOC5iOC4oQor4LiI4Lij4Liw4LmB4LiE4LiHCivguIjguKPguLDguIjguLjguYjguKEKK+C4iOC4o+C4sOC4l+C4gQor4LiI4Lij4Liw4LmA4LiX4Li04LiZCivguIjguKPguLDguJnguLMKK+C4iOC4o+C4sOC4muC4suC4mQor4LiI4Lij4Liw4Lia4Li1CivguIjguKPguLDguKXguLTguYjguIcKK+C4iOC4o+C4sOC4peC4tuC4hwor4LiI4Lij4Liw4Lil4Li44LiHCivguIjguKPguLHguKUKK+C4iOC4o+C4seC4qgor4LiI4Lij4Liy4LiBCivguIjguKPguLLguIcKK+C4iOC4o+C4suC4iOC4owor4LiI4Lij4Liy4LiNCivguIjguKPguLLguKIKK+C4iOC4o+C4suC4pwor4LiI4Lij4Liy4LiqCivguIjguKPguLTguIEKK+C4iOC4o+C4tOC4hwor4LiI4Lij4Li04LiH4LmGCivguIjguKPguLTguIfguIjguLHguIcKK+C4iOC4o+C4tOC4h+C5g+C4iAor4LiI4Lij4Li04LiH4Lit4Lii4Li54LmICivguIjguKPguLTguJUKK+C4iOC4o+C4tOC4oS0KK+C4iOC4o+C4tOC4oi0KK+C4iOC4o+C4tOC4ouC4mOC4o+C4o+C4oQor4LiI4Lij4Li04Lii4Lin4Lix4LiV4LijCivguIjguKPguLTguKLguKjguLLguKrguJXguKPguYwKK+C4iOC4o+C4tOC4ouC4qOC4tuC4geC4qeC4sgor4LiI4Lij4Li04Lii4LiyCivguIjguKPguLTguKLguLLguJvguLTguI7guIEKK+C4iOC4o+C4tOC4ouC4suC4p+C4seC4leC4owor4LiI4Lij4Li04LinCivguIjguKPguLUKK+C4iOC4o+C4tuC4hwor4LiI4Lij4Li44LiBCivguIjguKPguLjguIcKK+C4iOC4o+C4ueC4hwor4LiI4Lij4Li54LiNCivguIjguKPguLnguKoKK+C4iOC5gOC4owor4LiI4LilCivguIjguKXguJnguJ7guKXguKjguLLguKrguJXguKPguYwKK+C4iOC4peC4meC4qOC4suC4quC4leC4o+C5jAor4LiI4Lil4LiZ4Li1CivguIjguKXguLIKK+C4iOC4peC4suC4iOC4pQor4LiI4Lin4LiBCivguIjguYrguKfguIEKK+C4iOC4p+C4hwor4LiI4LmJ4Lin4LiHCivguIjguYvguKfguIcKK+C4iOC5i+C4p+C4h+C5gOC4hOC4o+C4t+C4rQor4LiI4Lin4LiH4LiI4Lix4LiZ4LiX4LiZ4LmMCivguIjguYnguKfguIfguIjguLLguJoKK+C4iOC4p+C4h+C4q+C4reC4oQor4LiI4Lin4LiUCivguIjguKfguJTguKXguLLguIEKK+C4iOC4p+C4mQor4LiI4Lin4LiZ4LmA4LiI4Li14Lii4LiZCivguIjguKfguJnguYHguIgKK+C4iOC4p+C4meC4leC4seC4pwor4LiI4Lin4LiaCivguIjguKfguJrguIjguKfguJkKK+C4iOC4p+C4seC4gQor4LiI4LitCivguIjguYjguK0KK+C4iOC5ieC4rQor4LiI4LmL4LitCivguIjguK3guIEKK+C4iOC5ieC4reC4gQor4LiI4LmJ4Lit4LiB4LmGCivguIjguYrguK3guIEKK+C4iOC5iuC4reC4geC5hgor4LiI4LmJ4Lit4LiB4LmB4LiI4LmJ4LiBCivguIjguYnguK3guIHguKfguK3guIEKK+C4iOC4reC4geC4q+C4ueC4q+C4meC4uQor4LiI4Lit4LiHCivguIjguYjguK3guIcKK+C4iOC5ieC4reC4hwor4LiI4LmL4Lit4LiHCivguIjguK3guIfguITguIoKK+C4iOC4reC4h+C4iOC4swor4LiI4LmJ4Lit4LiH4LmA4LiVCivguIjguK3guIfguJbguJnguJkKK+C4iOC4reC4h+C5gOC4m+C4o+C4teC4ouC4hwor4LiI4Lit4LiH4LmA4Lin4Lij4LiI4Lit4LiH4LiB4Lij4Lij4LihCivguIjguK3guIfguKvguIfguYjguK3guIcKK+C4iOC5ieC4reC4h+C4q+C4meC5iOC4reC4hwor4LiI4Lit4LiH4Lir4Lit4LiHCivguIjguK3guIfguKvguK3guIfguJ7guK3guIfguILguJkKK+C4iOC4reC5geC4iAor4LiI4LmL4Lit4LmB4LiI4LmLCivguIjguK3guJQKK+C4iOC4reC4mQor4LiI4LmJ4Lit4LiZCivguIjguK3guJnguIjguYjguK0KK+C4iOC4reC4meC4q+C4uQor4LiI4Lit4LiaCivguIjguK3guKEKK+C4iOC5iOC4reC4oQor4LiI4Lit4Lih4LiC4Lin4Lix4LiNCivguIjguYjguK3guKHguIjguYjguLLguKIKK+C4iOC4reC4oeC5g+C4iAor4LiI4Lit4Lih4LmE4LiV4LijCivguIjguK3guKHguJfguK3guIcKK+C4iOC4reC4oeC4l+C4seC4ngor4LiI4Lit4Lih4Lib4Lil4Lin4LiBCivguIjguK3guKHguJvguKXguK3guKEKK+C4iOC5ieC4reC4oeC4m+C5ieC4reC4oQor4LiI4Lit4Lih4LmA4Lib4Liy4LiwCivguIjguK3guKHguJ7guKUKK+C4iOC4reC4oeC4oeC4suC4o+C4lOC4sgor4LiI4Lit4Lih4Liq4Li44Lij4Liy4LiH4LiE4LmMCivguIjguYjguK3guKIKK+C4iOC5ieC4reC4ogor4LiI4LmL4Lit4LiiCivguIjguYvguK3guKLguYYKK+C4iOC4reC5geC4qgor4LiI4LiwCivguIjguYnguLAKK+C4iOC5iuC4sAor4LiI4LmL4LiwCivguIjguLDguIHguKPguLHguIjguIjguLDguIHguKPguLLguIgKK+C4iOC4sOC4geC4o+C4uOC4mQor4LiI4Liw4LiB4Lij4Li44Lih4LiI4Liw4LiB4Lij4Liy4LihCivguIjguLDguIHguKPguLnguJkKK+C4iOC4sOC4geC4peC4sAor4LiI4Liw4LiB4Lil4Liy4LihCivguIjguLDguIHguKfguJQKK+C4iOC4sOC4geC4ueC4lAor4LiI4Liw4LmA4LiB4Lij4LmH4LiHCivguIjguLDguILguLLguJoKK+C4iOC4sOC5gOC4guC5iQor4LiI4Liw4LmA4LiC4LmH4LiaCivguIjguLDguIfguK3guKIKK+C4iOC4sOC4iOC4sAor4LiI4Liw4LiI4LmJ4LiyCivguIjguLDguYHguIjguYnguIcKK+C4iOC4sOC5geC4iOC5iOC4oQor4LiI4Liw4LmE4LiI4LmJCivguIjguLDguJrguLHguJkKK+C4iOC4sOC4m+C4tOC5ieC4hwor4LiI4Liw4Lib4Li04LmJ4LiH4LmA4Lij4Li34LitCivguIjguLDguYDguJ7guKXguLTguIcKK+C4iOC4sOC4peC4sOC5gOC4oeC5h+C4lAor4LiI4Liw4Lil4Liw4Lir4Lin4Lix4LmI4LiZCivguIjguLDguKXguLjguIcKK+C4iOC5iuC4sOC5gOC4reC5iwor4LiI4Lix4LiBCivguIjguLHguYnguIHguYYKK+C4iOC4seC4geC4geC4suC4ogor4LiI4Lix4LmK4LiB4LiB4Li04LmJ4LihCivguIjguLHguIHguILguLgKK+C4iOC4seC4geC4guC4uOC4l+C4p+C4suC4owor4LiI4Lix4LiB4LiC4Li44Lib4Lij4Liw4Liq4Liy4LiXCivguIjguLHguIHguILguLjguKfguLTguI3guI3guLLguJMKK+C4iOC4seC4geC4guC4uOC4quC4seC4oeC4nOC4seC4qgor4LiI4Lix4LiB4LiI4Lix4LmI4LiZCivguIjguLHguIHguIjguLXguYkKK+C4iOC4seC5iuC4geC4iOC4teC5iQor4LiI4Lix4LmK4LiB4LmA4LiU4Li14Lii4LihCivguIjguLHguIHguKMKK+C4iOC4seC4geC4oy0KK+C4iOC4seC4geC4o+C4m+C4suC4k+C4tAor4LiI4Lix4LiB4Lij4Lib4Liy4LiT4Li1CivguIjguLHguIHguKPguJ7guKPguKPguJTguLQKK+C4iOC4seC4geC4o+C4nuC4suC4gQor4LiI4Lix4LiB4Lij4Lie4Liy4LilCivguIjguLHguIHguKPguKDguJ4KK+C4iOC4seC4geC4o+C4ouC4suC4mQor4LiI4Lix4LiB4Lij4Lii4Liy4LiZ4Lii4LiZ4LiV4LmMCivguIjguLHguIHguKPguKPguLLguKjguLUKK+C4iOC4seC4geC4o+C4p+C4o+C4o+C4lOC4tAor4LiI4Lix4LiB4Lij4Lin4Lij4Lij4LiU4Li04LiZ4Li04Lii4LihCivguIjguLHguIHguKPguKfguLLguIEKK+C4iOC4seC4geC4o+C4p+C4suC4lQor4LiI4Lix4LiB4Lij4Lin4Liy4LilCivguIjguLHguIHguKPguLTguJkKK+C4iOC4seC4geC4o+C4tQor4LiI4Lix4LmK4LiB4LmA4Lil4LmJ4LitCivguIjguLHguIHguKnguLgKK+C4iOC4seC4geC4quC4suC4mQor4LiI4Lix4LiB4LmB4Lir4Lil4LmI4LiZCivguIjguLHguIcKK+C4iOC4seC5ieC4hwor4LiI4Lix4LmL4LiH4LmRCivguIjguLHguIfguIHguKfguJQKK+C4iOC4seC4h+C4geC4reC4mgor4LiI4Lix4LiH4LiB4LiyCivguIjguLHguIfguIHguYnguLIKK+C4iOC4seC4h+C4geC4ueC4lAor4LiI4Lix4LiH4LmA4LiBCivguIjguLHguIfguYLguIHguI/guIHguYwKK+C4iOC4seC4h+C4h+C4seC4hwor4LiI4Lix4LiH4Lih4Lix4LiHCivguIjguLHguYnguIfguKHguLHguYjguIcKK+C4iOC4seC4h+C5hOC4owor4LiI4Lix4LiH4Lil4Lit4LiZCivguIjguLHguIfguYDguKfguYfguIgKK+C4iOC4seC4h+C4q+C4meC4seC4mgor4LiI4Lix4LiH4Lir4LiZ4LmJ4LiyCivguIjguLHguIfguKvguKPguLXguJQKK+C4iOC4seC4h+C4q+C4peC5iOC4rQor4LiI4Lix4LiH4Lir4Lin4LiwCivguIjguLHguIfguKvguKfguLHguJQKK+C4iOC4seC4h+C4q+C4seC4mQor4LiI4Lix4LiH4Lit4Lit4LiZCivguIjguLHguI3guYTguKMKK+C4iOC4seC4k+C4kS0KK+C4iOC4seC4k+C4keC5jAor4LiI4Lix4LiT4LiR4Lin4Liy4LiV4LiyCivguIjguLHguJPguJHguLLguKUKK+C4iOC4seC4lAor4LiI4Lix4LiU4LiB4Liy4LijCivguIjguLHguJTguIjguK3guIcKK+C4iOC4seC4lOC4iOC5ieC4sgor4LiI4Lix4LiU4LiI4LmJ4Liy4LiZCivguIjguLHguJTguYDguIjguJkKK+C4iOC4seC4lOC5geC4iOC4hwor4LiI4Lix4LiU4LiV4Lix4LmJ4LiHCivguIjguLHguJTguJvguKPguLDguIHguLHguJkKK+C4iOC4seC4lOC4oeC4seC5iOC4mQor4LiI4Lix4LiU4Liq4Lij4LijCivguIjguLHguJTguKvguLIKK+C4iOC4seC4leC4leC4suC4rOC4teC4qgor4LiI4Lix4LiV4Lin4LiyCivguIjguLHguJXguKfguLLguJfguLHguJPguJHguLUKK+C4iOC4seC4leC4p+C4suC4qOC4gQor4LiI4Lix4LiV4Li4CivguIjguLHguJXguLjguKMtCivguIjguLHguJXguLjguKPguIfguITguYwKK+C4iOC4seC4leC4uOC4o+C4nuC4seC4geC4leC4o+C5jAor4LiI4Lix4LiV4Li44Lij4Lig4Li44LiKCivguIjguLHguJXguLjguKPguKHguLjguIIKK+C4iOC4seC4leC4uOC4o+C4seC4qgor4LiI4Lix4LiV4Li44LmC4Lil4LiB4Lia4Liy4LilCivguIjguLHguJXguLjguKrguJTguKHguKDguYwKK+C4iOC4seC4mQor4LiI4Lix4LmI4LiZCivguIjguLHguJnguYLguIjguKkKK+C4iOC4seC5iOC4meC4lOC4tOC4mQor4LiI4Lix4LiZ4LiX4LmMCivguIjguLHguJnguJfguJnguYwKK+C4iOC4seC4meC4l+C4meC5jOC4geC4sOC4nuC5ieC4rQor4LiI4Lix4LiZ4LiX4LiZ4LmM4LiC4Liy4LinCivguIjguLHguJnguJfguJnguYzguIrguLDguKHguJQKK+C4iOC4seC4meC4l+C4meC5jOC5geC4lOC4hwor4LiI4Lix4LiZ4LiX4LiZ4LmM4LmA4LiX4LioCivguIjguLHguJnguJfguJnguYzguJzguLIKK+C4iOC4seC4meC4l+C4meC5jOC4q+C4reC4oQor4LiI4Lix4LiZ4LiX4LiZ4LiyCivguIjguLHguJnguJfguKMtCivguIjguLHguJnguJfguKPguYwKK+C4iOC4seC4meC4l+C4o+C4geC4peC4sgor4LiI4Lix4LiZ4LiX4Lij4LiB4Liy4LiZ4LiV4LmMCivguIjguLHguJnguJfguKPguITguJXguLQKK+C4iOC4seC4meC4l+C4o+C4hOC4o+C4suC4qgor4LiI4Lix4LiZ4LiX4Lij4Lie4Li04Lih4Lie4LmMCivguIjguLHguJnguJfguKPguKHguJPguJHguKUKK+C4iOC4seC4meC4l+C4o+C5gOC4oeC5h+C4lAor4LiI4Lix4LiZ4LiX4Lij4Lin4LiH4Lio4LmMCivguIjguLHguJnguJfguKPguYDguKjguILguKMKK+C4iOC4seC4meC4l+C4o+C4uOC4m+C4o+C4suC4hOC4sgor4LiI4Lix4LiZ4LiX4Lix4LiZCivguIjguLHguJnguJfguLHguJnguJ7guKPguLLguIcKK+C4iOC4seC4meC4peC4reC4hwor4LiI4Lix4LiZ4LmA4Lil4LiyCivguIjguLHguJnguYDguKXguLLguLAKK+C4iOC4seC5ieC4meC4q+C4peC5iOC4rQor4LiI4Lix4LmI4LiZ4Lir4Lix4LiaCivguIjguLHguYjguJnguKvguYnguLLguKcKK+C4iOC4seC4meC4reC4seC4mgor4LiI4Lix4LiaCivguIjguLHguJrguIHguKXguLjguYjguKEKK+C4iOC4seC4muC4geC4seC4hwor4LiI4Lix4Lia4LiB4Li44LihCivguIjguLHguJrguYDguILguKHguYjguLIKK+C4iOC4seC4muC5hOC4guC5iQor4LiI4Lix4Lia4LiE4Lin4Liy4LihCivguIjguLHguJrguIfguLnguILguYnguLLguIfguKvguLLguIcKK+C4iOC4seC4muC4iOC4lAor4LiI4Lix4Lia4LiI4Lit4LiHCivguIjguLHguJrguIjguYjguLLguKIKK+C4iOC4seC4muC4iOC4tOC4lQor4LiI4Lix4Lia4LmA4LiI4LmI4LiyCivguIjguLHguJrguYDguIjguLXguYvguKLguKcKK+C4iOC4seC4muC5g+C4iAor4LiI4Lix4Lia4LiJ4LmI4Liy4LiiCivguIjguLHguJrguYDguIrguLTguIcKK+C4iOC4seC4muC4lOC4s+C4luC4peC4s+C5geC4lOC4hwor4LiI4Lix4Lia4LmA4LiU4Li04LihCivguIjguLHguJrguJXguLHguKfguKfguLLguIfguJXguLLguKIKK+C4iOC4seC4muC4leC4sgor4LiI4Lix4Lia4LiV4Liy4LiU4Li5CivguIjguLHguJrguJXguLLguKIKK+C4iOC4seC4muC4m+C4tOC5ieC4hwor4LiI4Lix4Lia4LmA4Lib4LmH4LiZCivguIjguLHguJrguYLguJvguIcKK+C4iOC4seC4muC4nOC4tOC4lAor4LiI4Lix4Lia4Lie4Lil4Lix4LiU4LiI4Lix4Lia4Lic4Lil4Li5CivguIjguLHguJrguYHguJ7guLDguIrguJnguYHguIHguLAKK+C4iOC4seC4muC4ouC4suC4oQor4LiI4Lix4Lia4Lii4Li14LmI4LiB4Li1CivguIjguLHguJrguKPguLDguJrguLMKK+C4iOC4seC4muC5gOC4p+C4peC4sgor4LiI4Lix4Lia4Liq4Lix4LmI4LiZCivguIjguLHguJrguKrguLLguKLguKrguLTguI3guIjguJnguYwKK+C4iOC4seC4muC5gOC4quC4t+C4reC4oeC4t+C4reC5gOC4m+C4peC5iOC4sgor4LiI4Lix4Lia4Lir4Lil4Lix4LiBCivguIjguLHguJrguKvguKfguLHguJQKK+C4iOC4seC4muC4q+C4seC4p+C5gOC4guC5iOC4suC4nuC4ueC4lAor4LiI4Lix4Lih4Lia4LiBCivguIjguLHguKHguJvguIEKK+C4iOC4seC4oeC4oeC4sAor4LiI4Lix4LinCivguIjguLHguYjguKcKK+C4iOC4seC5iuC4p+C4sAor4LiI4LiyCivguIjguYjguLIKK+C4iOC5ieC4sgor4LiI4LmL4LiyCivguIjguLLguIEKK+C4iOC4suC4geC4nuC4o+C4suC4gQor4LiI4Liy4LiB4Lie4Liy4LiBCivguIjguYjguLLguIHguKXguK3guIcKK+C4iOC4suC4hC0KK+C4iOC4suC4hOC4tQor4LiI4Liy4LiHCivguIjguYjguLLguIcKK+C4iOC5ieC4suC4hwor4LiI4Liy4LiH4Lin4Liy4LiHCivguIjguLLguJQKK+C4iOC4suC4lOC4leC4sOC4geC4seC5iOC4pwor4LiI4Liy4LiV4Li4LQor4LiI4Liy4LiV4Li44LiB4Lij4LiT4Li14Lii4LmMCivguIjguLLguJXguLjguJfguKrguLUKK+C4iOC4suC4leC4uOC4oeC4q+C4suC4o+C4suC4igor4LiI4Liy4LiV4Li44LijLQor4LiI4Liy4LiV4Li44Lij4LiH4LiELQor4LiI4Liy4LiV4Li44Lij4LiH4LiE4LmMCivguIjguLLguJXguLjguKPguIfguITguKrguLHguJnguJnguLTguJrguLLguJUKK+C4iOC4suC4leC4uOC4o+C4meC4leC5jAor4LiI4Liy4LiV4Li44Lij4LiZ4LiV4LmM4Lij4Lix4Lio4Lih4Li1CivguIjguLLguJXguLjguKPguKPguLLguIrguIHguLLguKMKK+C4iOC4suC4leC4uOC4o+C4seC4meC4leC5jAor4LiI4Liy4LiZCivguIjguYnguLLguJkKK+C4iOC4suC4meC4iOC5iOC4suC4ogor4LiI4Liy4LiZ4LmA4LiI4Li34LitCivguIjguLLguJnguYDguIrguLTguIcKK+C4iOC4suC4meC4muC4tOC4mQor4LiI4Liy4LiZ4Lic4Li1CivguIjguLLguJnguYDguKrguLXguKLguIcKK+C4iOC4suC4mgor4LiI4Liy4Lia4LiI4LmJ4Lin4LiHCivguIjguLLguJrguLHguKUKK+C4iOC4suC4muC4seC4peC4ouC5jAor4LiI4Liy4LibCivguIjguYjguLLguJvguLXguYgKK+C4iOC4suC4oQor4LiI4LmI4Liy4Lih4LiH4LiB4Li44LiOCivguIjguLLguKHguIjguLjguKPguLUKK+C4iOC4suC4oeC4owor4LiI4Liy4Lih4Lij4Li1CivguIjguLLguKHguLXguIHguKMKK+C4iOC5iOC4suC4ogor4LiI4LmI4Liy4Lii4LiV4Lil4Liy4LiUCivguIjguLLguKMKK+C4iOC5iOC4suC4o+C4hwor4LiI4Liy4Lij4Lin4Liy4LiBCivguIjguLLguKPguLDguYTguJkKK+C4iOC4suC4o+C4sOC4muC4tQor4LiI4Liy4Lij4Li04LiBCivguIjguLLguKPguLUKK+C4iOC4suC4o+C4teC4lQor4LiI4Liy4Lij4Li14LiV4LiZ4LiE4Lij4Lia4Liy4LilCivguIjguLLguKPguLXguJXguJvguKPguLDguYDguJ7guJPguLUKK+C4iOC4suC4o+C4tuC4gQor4LiI4Liy4Lij4Li4CivguIjguYnguLLguKXguLDguKvguKfguLHguYjguJkKK+C4iOC4suC4pwor4LiI4Liy4Lin4LmGCivguIjguYjguLLguKcKK+C4iOC5ieC4suC4pwor4LiI4Liy4Lin4Lih4Liw4Lie4Lij4LmJ4Liy4LinCivguIjguYjguLLguKvguJnguYnguLIKK+C4iOC5iOC4suC4q+C4p+C4seC4gQor4LiI4LizCivguIjguYnguLMKK+C4iOC4s+C4geC4p+C5iOC4sgor4LiI4Liz4LiB4Lix4LiUCivguIjguLPguIHguLHguJTguITguKfguLLguKEKK+C4iOC4s+C4geC4seC4lOC4iOC4s+C5gOC4guC4teC5iOC4ogor4LiI4Liz4LiB4Lix4LiU4Liq4Li04LiZ4LmD4LiK4LmJCivguIjguLPguITguKPguJoKK+C4iOC4s+C4h+C4suC4ogor4LiI4Liz4LiI4Lit4LiHCivguIjguYnguLPguIjguLXguYkKK+C4iOC5ieC4s+C4iOC4teC5ieC4iOC5ieC4s+C5hOC4igor4LiI4Liz4LmA4LiICivguIjguLPguYDguJTguLTguKEKK+C4iOC4s+C4l+C4p+C4ogor4LiI4Liz4LiX4Lix4LiaCivguIjguLPguJfguLLguJoKK+C4iOC4s+C5gOC4l+C4tOC4lAor4LiI4Liz4LmB4LiX4LiHCivguIjguLPguJnguIcKK+C4iOC4s+C4meC4mQor4LiI4Liz4LiZ4Lij4Lij4LiI4LmMCivguIjguLPguJnguKPguKPguIjguLIKK+C4iOC4s+C4meC4p+C4mQor4LiI4Liz4LiZ4Lin4LiZ4LiI4Lij4Li04LiHCivguIjguLPguJnguKfguJnguIjguLTguJnguJXguKDguLLguJ4KK+C4iOC4s+C4meC4p+C4meC5gOC4iuC4tOC4h+C4i+C5ieC4reC4mQor4LiI4Liz4LiZ4Lin4LiZ4LiV4Lij4Lij4LiB4Lii4LiwCivguIjguLPguJnguKfguJnguYDguJXguYfguKEKK+C4iOC4s+C4meC4p+C4meC4meC4seC4mgor4LiI4Liz4LiZ4Lin4LiZ4Lit4LiV4Lij4Lij4LiB4Lii4LiwCivguIjguLPguJnguK3guIcKK+C4iOC4s+C4meC4seC4mgor4LiI4Liz4LiZ4Lix4LilCivguIjguLPguJnguLMKK+C4iOC4s+C4meC4s+C4nuC4o+C4o+C4qeC4sgor4LiI4Liz4LmA4LiZ4Li14Lii4LiZCivguIjguLPguYDguJnguLXguKLguKEKK+C4iOC4s+C5gOC4meC4teC4ouC4owor4LiI4Liz4LmB4LiZ4LiBCivguIjguLPguYLguJnguJfguKLguYwKK+C4iOC4s+C4muC5iOC4oQor4LiI4Liz4Lia4Lix4LiHCivguIjguLPguJrguLHguJoKK+C4iOC4s+C5gOC4muC4qAor4LiI4LmJ4Liz4LmA4Lia4LmJ4LiyCivguIjguLPguYHguJoKK+C4iOC4s+C4m+C4sgor4LiI4Liz4Lib4Liy4LiC4Lit4LihCivguIjguLPguJvguLLguYHguILguIEKK+C4iOC4s+C4m+C4suC4lOC4sAor4LiI4Liz4Lib4Liy4LiX4Lit4LiH4LmA4LiX4LioCivguIjguLPguJvguLLguKXguLLguKcKK+C4iOC4s+C4m+C4suC4q+C4reC4oQor4LiI4Liz4Lib4Li1CivguIjguLPguJvguLXguYHguILguIEKK+C4iOC4s+C4m+C4ueC4mQor4LiI4Liz4LmA4Lib4LmH4LiZCivguIjguLPguJ7guKPguKPguKnguLIKK+C4iOC4s+C4nuC4p+C4gQor4LiI4Liz4LmA4Lie4Liy4LiwCivguIjguLPguYHguJ7guKPguIEKK+C4iOC5ieC4s+C4oeC5iOC4swor4LiI4Liz4Lij4LiUCivguIjguLPguKPguLHguKoKK+C4iOC4s+C4o+C4suC4jQor4LiI4Liz4Lij4Liy4LiiCivguIjguLPguKPguLnguI0KK+C4iOC4s+C5gOC4o+C4tOC4jQor4LiI4Liz4LmA4Lij4Li14Lii4LiHCivguIjguLPguKXguK3guIcKK+C4iOC4s+C4peC4reC4h+C4l+C4reC4hwor4LiI4Liz4Lil4Liy4LiiCivguIjguLPguYDguKXguKIKK+C4iOC4s+C5gOC4peC4suC4sAor4LiI4Liz4LmA4Lil4Liy4Liw4LiV4LiyCivguIjguLPguYHguKXguIcKK+C4iOC4s+C5geC4peC5iOC4mQor4LiI4Liz4Lin4Lix4LiUCivguIjguLPguKjguLXguKUKK+C4iOC4s+C4q+C4meC4seC4mgor4LiI4LmL4Liz4Lir4LiZ4Lix4LiaCivguIjguLPguKvguJnguYjguLLguKIKK+C4iOC4s+C4q+C4o+C4sAor4LiI4Liz4Lir4Lil4LmI4LitCivguIjguLPguKvguKXguK3guIEKK+C4iOC4s+C4q+C4peC4seC4gQor4LiI4Liz4Lir4Lix4LiZCivguIjguLPguKvguYnguLLguJvguKPguLDguIHguLLguKMKK+C4iOC4s+C4q+C4suC4ogor4LiI4Liz4Lir4Li44LiUCivguIjguLPguYDguKvguLXguKLguIcKK+C4iOC4s+C4reC4p+C4lAor4LiI4Liz4Lit4Li34LmI4LiZCivguIjguLQKK+C4iOC4tOC4gQor4LiI4Li04LiB4Lib4Li14LiBCivguIjguLTguIHguKvguLHguKcKK+C4iOC4tOC5iOC4hwor4LiI4Li04LmJ4LiH4LiI4LiBCivguIjguLTguIfguIjguYnguK0KK+C4iOC4tOC5ieC4h+C4iOC4reC4gQor4LiI4Li04LiH4LiI4Lix4LiHCivguIjguLTguYnguIfguIjguLHguIcKK+C4iOC4tOC4h+C5guC4iOC5iQor4LiI4Li04LiH4LmC4LiI4LmJ4LiZ4LmJ4LizCivguIjguLTguYnguIfguKvguKPguLXguJQKK+C4iOC4tOC5ieC4h+C4q+C4o+C4teC4lOC4nOC4tQor4LiI4Li04LmJ4LiH4LmA4Lir4Lil4LiZCivguIjguLTguYnguIfguYDguKvguKXguJnguJTguYnguKfguIcKK+C4iOC4tOC4lQor4LiI4Li04LiVLQor4LiI4Li04LiV4LiB4Liy4LiY4Liy4LiZCivguIjguLTguJXguIHguLbguYjguIfguKrguLPguJnguLbguIEKK+C4iOC4tOC4leC5g+C4iAor4LiI4Li04LiV4LiVLQor4LiI4Li04LiV4LiV4LmMCivguIjguLTguJXguJXguKDguLLguKfguJnguLIKK+C4iOC4tOC4leC4leC4p+C4tOC4quC4uOC4l+C4mOC4tAor4LiI4Li04LiV4LiV4Liy4LiZ4Li44Lib4Lix4Liq4Liq4LiZ4LiyCivguIjguLTguJXguYPguJXguYnguKrguLPguJnguLbguIEKK+C4iOC4tOC4leC4meC4tOC4ouC4oQor4LiI4Li04LiV4Lia4Liz4Lia4Lix4LiUCivguIjguLTguJXguYHguJ7guJfguKLguYwKK+C4iOC4tOC4leC4oOC4suC4ngor4LiI4Li04LiV4LijCivguIjguLTguJXguKMtCivguIjguLTguJXguKPguIHguKMKK+C4iOC4tOC4leC4o+C4geC4o+C4o+C4oQor4LiI4Li04LiV4Lij4LiI4Li44LilCivguIjguLTguJXguKPguJvguJfguLIKK+C4iOC4tOC4leC4o+C4peC4lOC4sgor4LiI4Li04LiV4Lij4LmA4Lil4LiC4LiyCivguIjguLTguJXguKPguLAKK+C4iOC4tOC4leC4o+C4sgor4LiI4Li04LiV4LmE4Lij4LmJ4Liq4Liz4LiZ4Li24LiBCivguIjguLTguJXguKfguLTguJfguKLguLIKK+C4iOC4tOC4leC4p+C4tOC4quC4seC4ogor4LiI4Li04LiV4LmA4Lin4LiK4Lio4Liy4Liq4LiV4Lij4LmMCivguIjguLTguJXguKrguLPguJnguLbguIEKK+C4iOC4tOC4meC5gOC4iOC4sgor4LiI4Li04LiZ4LiU4LiyCivguIjguLTguJnguJTguLLguKHguJPguLUKK+C4iOC4tOC4meC4lOC4suC4oeC4seC4ogor4LiI4Li04LiZ4LiU4Liy4Lir4LiZ4LiyCivguIjguLTguJnguJTguLLguKvguKPguLIKK+C4iOC4tOC4meC4lS0KK+C4iOC4tOC4meC4leC5jAor4LiI4Li04LiZ4LiV4LiB4Lin4Li1CivguIjguLTguJnguJXguYzguIjguKUKK+C4iOC4tOC4meC4leC4meC4suC4geC4suC4owor4LiI4Li04LiZ4LiV4Lig4Liy4LieCivguIjguLTguJoKK+C4iOC4tOC4m+C4suC4luC4sAor4LiI4Li04LmI4LihCivguIjguLTguYnguKEKK+C4iOC4tOC5ieC4oeC4geC5ieC4reC4hwor4LiI4Li04LmJ4Lih4Lif4Lix4LiZ4LiI4Lij4Liw4LmA4LiC4LmJCivguIjguLTguYnguKHguKXguLTguYnguKEKK+C4iOC4tOC4oy0KK+C4iOC4tOC4o+C4geC4suC4pQor4LiI4Li04Lij4Lix4LiQ4Li04LiV4Li04LiB4Liy4LilCivguIjguLTguYvguKcKK+C4iOC4tQor4LiI4Li14LmICivguIjguLXguYkKK+C4iOC4teC5iwor4LiI4Li14LmL4LiI4LmJ4LitCivguIjguLXguYjguIjguLnguYkKK+C4iOC4teC5geC4iOC5iuC4mgor4LiI4Li14LmK4LiUCivguIjguLXguJkKK+C4iOC4teC4meC5gOC4leC5h+C4hwor4LiI4Li14LiZ4LmB4LiqCivguIjguLXguJnguYHguKrguYLguKrguIHguLIKK+C4iOC4teC4mgor4LiI4Li14Lia4Lib4Liy4LiB4LiI4Li14Lia4LiE4LitCivguIjguLXguJrguJ7guKXguLkKK+C4iOC4teC5guC4mgor4LiI4Li14Lie4LijCivguIjguLXguKEKK+C4iOC4teC4p+C4owor4LiI4Li14Lin4LijLQor4LiI4Li14Lin4Lij4LiB4Lij4Lij4LihCivguIjguLXguKfguKPguIHguLLguKPguKrguKHguLHguKIKK+C4iOC4teC4p+C4o+C4geC4suC4peC4quC4oeC4seC4ogor4LiI4Li14Lin4Lij4LiX4Liy4LiZ4Liq4Lih4Lix4LiiCivguIjguLXguKfguKPguKDguLLguIrguIEKK+C4iOC4teC5ieC5gOC4quC5ieC4mQor4LiI4Li24LiHCivguIjguLbguYjguIcKK+C4iOC4tuC5ieC4hwor4LiI4Li34LiUCivguIjguLfguJTguIjguLLguIcKK+C4iOC4t+C4lOC4iuC4t+C4lAor4LiI4Li34LiU4LiV4LiyCivguIjguLfguYnguJnguYDguIjguLfguK3guIEKK+C4iOC4uAor4LiI4Li44LmGCivguIjguLjguIEKK+C4iOC4uOC5iuC4geC4geC4o+C4ueC5igor4LiI4Li44LiB4LiI4Li04LiBCivguIjguLjguIHguYDguIjguYjguLIKK+C4iOC4uOC4geC4iuC5iOC4reC4h+C4peC5ieC4reC4oeC4p+C4hwor4LiI4Li44LiB4LiK4Li1CivguIjguLjguIHguJzguLLguKEKK+C4iOC4uOC4geC4nOC4suC4oeC4oeC5ieC4suC4oeC4ouC5ieC4reC4ogor4LiI4Li44LiB4Lie4Lij4Liy4Lir4Lih4LiT4LmMCivguIjguLjguIHguKLguLIKK+C4iOC4uOC4geC5guC4o+C4q+C4tOC4meC4tQor4LiI4Li44LmI4LiHCivguIjguLjguYnguIfguIjguLHguIcKK+C4iOC4uOC5i+C4h+C4iOC4tOC5i+C4hwor4LiI4Li44LmD4LiICivguIjguLjguJHguLIKK+C4iOC4uOC4keC4suC4mOC4tOC4m+C5hOC4leC4ogor4LiI4Li44LiR4Liy4Lih4LiT4Li1CivguIjguLjguJHguLLguKHguLLguKgKK+C4iOC4uOC4keC4suC4o+C4seC4leC4meC5jAor4LiI4Li44LiTCivguIjguLjguJPguJPguLXguKLguJrguJcKK+C4iOC4uOC4lAor4LiI4Li44LiU4LiI4LiaCivguIjguLjguJTguYDguJTguYjguJkKK+C4iOC4uOC4lOC5gOC4lOC4t+C4reC4lAor4LiI4Li44LiU4LmE4LiV4LmJ4LiV4Liz4LiV4LitCivguIjguLjguJTguJfguKjguJnguLTguKLguKEKK+C4iOC4uOC4lOC4meC5ieC4s+C4hOC5ieC4suC4hwor4LiI4Li44LiU4Lia4Lit4LiUCivguIjguLjguJTguKLguLfguJkKK+C4iOC4uOC4lOC4ouC4uOC4l+C4mOC4qOC4suC4quC4leC4o+C5jAor4LiI4Li44LiU4LmA4Lii4Li34Lit4LiB4LmB4LiC4LmH4LiHCivguIjguLjguJTguKPguKfguKEKK+C4iOC4uOC4lOC4peC4ueC4geC4meC5ieC4swor4LiI4Li44LiU4Lio4Li54LiZ4Lii4LmM4LiB4Lil4Liy4LiHCivguIjguLjguJTguKjguLnguJnguKLguYzguJbguYjguKfguIcKK+C4iOC4uOC4lOC4quC4seC4oeC4nOC4seC4qgor4LiI4Li44LiU4Lir4Lih4Liy4LiiCivguIjguLjguJTguKvguKHguLLguKLguJvguKXguLLguKLguJfguLLguIcKK+C4iOC4uOC4lOC4q+C4peC4reC4oeC5gOC4q+C4peC4pwor4LiI4Li44LiU4Lir4Lil4Lix4LiHCivguIjguLjguJTguYDguKvguLXguYjguKLguKfguYDguInguLIKK+C4iOC4uOC4lOC4reC5iOC4reC4mQor4LiI4Li44LiU4Lit4Li04LmI4Lih4LiV4Lix4LinCivguIjguLjguJXguLQKK+C4iOC4uOC4leC4ueC4m+C4m+C4suC4leC4jeC4suC4kwor4LiI4Li44LiX4LiqCivguIjguLjguJfguKrguKHguKrguLjguKPguJfguLTguJkKK+C4iOC4uOC4mQor4LiI4Li44LmI4LiZCivguIjguLjguYnguJkKK+C4iOC4uOC5ieC4meC4iOC5ieC4suC4mQor4LiI4Li44LiZ4LiI4Li54LmLCivguIjguLjguYnguJnguIjguLnguYoKK+C4iOC4uOC4meC5gOC4iOC4t+C4rQor4LiI4Li44LiZ4LiX4LiB4Liy4LijCivguIjguLjguJnguKrguLUKK+C4iOC4uOC4mgor4LiI4Li44LmK4LiaCivguIjguLjguJrguIjguLTguJoKK+C4iOC4uOC5iuC4muC5geC4iOC4hwor4LiI4Li44Lib4Liy4LiBCivguIjguLjguYjguKEKK+C4iOC4uOC5ieC4oQor4LiI4Li44LmL4Lih4LiI4Li04LmL4LihCivguIjguLjguKHguJ7guI8KK+C4iOC4uOC4oeC4nuC4o+C4p+C4lAor4LiI4Li44Lih4Lie4LilCivguIjguLjguKHguJ7guLTguJUKK+C4iOC4uOC4oeC5guC4nuC4peC5iAor4LiI4Li44LmJ4LiiCivguIjguLjguKPguJMKK+C4iOC4uOC4o+C4tQor4LiI4Li44LmE4LijCivguIjguLjguKUtCivguIjguLjguKXguIHguJDguLTguJkKK+C4iOC4uOC4peC4iOC4reC4oeC5gOC4geC4peC5ieC4sgor4LiI4Li44Lil4LiK4Li14LieCivguIjguLjguKXguIrguLXguKfguLHguJkKK+C4iOC4uOC4peC4iuC4teC4p+C4tOC4mQor4LiI4Li44Lil4LiX4Lij4Lij4Lio4LiZ4LmMCivguIjguLjguKXguKDguLLguIQKK+C4iOC4uOC4peC4p+C4h+C4qOC5jAor4LiI4Li44Lil4Lin4Lij4Lij4LiECivguIjguLjguKXguKjguLHguIHguKPguLLguIoKK+C4iOC4uOC4peC4quC4suC4owor4LiI4Li44Lil4Li04LiZ4LiX4Lij4Li14Lii4LmMCivguIjguLjguKzguLIKK+C4iOC4uOC4rOC4suC4oeC4k+C4tQor4LiI4Li44Lis4Liy4Lij4Liy4LiK4Lih4LiZ4LiV4Lij4Li1CivguIjguLjguKzguLLguKXguLHguIHguKnguJPguYwKK+C4iOC4uOC4rOC4suC4peC4seC4oeC4nuC4sgor4LiI4Li5CivguIjguLnguYgKK+C4iOC4ueC5iOC5hgor4LiI4Li54LmJCivguIjguLnguYsKK+C4iOC4ueC4hwor4LiI4Li54LiH4LiI4Lih4Li54LiBCivguIjguLnguIfguYPguIgKK+C4iOC4ueC4h+C4meC4suC4h+C5gOC4guC5ieC4suC4q+C5ieC4reC4hwor4LiI4Li54LiH4LiZ4Liy4LiH4Lil4Li14Lil4LiyCivguIjguLnguIfguKHguLfguK0KK+C4iOC4ueC5ieC4iOC4teC5iQor4LiI4Li54LmL4LiI4Li14LmLCivguIjguLnguYjguYLguIjguKEKK+C4iOC4ueC5iuC4lAor4LiI4Li54LiaCivguIjguLnguJrguJ3guLjguYjguJkKK+C4iOC4ueC4o+C4kwor4LiI4Li54LmI4Lil4Li54LmICivguYDguIgKK+C5gOC4iOC5iuC4gQor4LmA4LiI4LmK4LiB4LiV4Li34LmI4LiZ4LmE4LifCivguYDguIjguYjguIcKK+C5gOC4iOC5ieC4hwor4LmA4LiI4LmK4LiHCivguYDguIjguYfguJQKK+C5gOC4iOC5h+C4lOC4iuC4seC5iOC4p+C5guC4hOC4leC4owor4LmA4LiI4LmH4LiU4LiV4Liw4LiE4Lil4Li1CivguYDguIjguJTguLXguKItCivguYDguIjguJTguLXguKLguYwKK+C5gOC4iOC4lOC4teC4ouC4luC4suC4mQor4LmA4LiI4LiU4Li14Lii4LmM4LiX4Li04LioCivguYDguIjguJTguLXguKLguKrguJbguLLguJkKK+C5gOC4iOC4lQor4LmA4LiI4LiVLQor4LmA4LiI4LiV4LiE4LiV4Li0CivguYDguIjguJXguIjguLPguJnguIcKK+C5gOC4iOC4leC4meC4sgor4LmA4LiI4LiV4LiZ4Liy4Lij4Lih4LiT4LmMCivguYDguIjguJXguJ7guLHguIfguITguLUKK+C5gOC4iOC4leC4oOC4ueC4lQor4LmA4LiI4LiV4Lih4Li54Lil4LmA4Lie4Lil4Li04LiHCivguYDguIjguJXguKHguLnguKXguYDguJ7guKXguLTguIfguJ3guKPguLHguYjguIcKK+C5gOC4iOC4leC4quC4tOC4gQor4LmA4LiI4LiV4Li04LiiLQor4LmA4LiI4LmC4LiV4Lin4Li04Lih4Li44LiV4Li0CivguYDguIjguJkKK+C5gOC4iOC4meC4iOC4mgor4LmA4LiI4LiZ4LiI4Lix4LiUCivguYDguIjguJnguYPguIgKK+C5gOC4iOC5h+C4mgor4LmA4LiI4LmH4Lia4LmE4LiC4LmJCivguYDguIjguYfguJrguYHguITguYnguJkKK+C5gOC4iOC5h+C4muC5g+C4iAor4LmA4LiI4LmH4Lia4LiK4LmJ4Liz4LiZ4LmJ4Liz4LmD4LiICivguYDguIjguYfguJrguJfguYnguK3guIcKK+C5gOC4iOC5h+C4muC4m+C4p+C4lAor4LmA4LiI4LmH4Lia4Lib4LmI4Lin4LiiCivguYDguIjguYfguJrguKPguYnguK3guJkKK+C5gOC4iOC5h+C4muC5geC4quC4mgor4LmA4LiI4Lij4LiI4LiyCivguYDguIjguKPguLTguI0KK+C5gOC4iOC4o+C4tOC4jeC4leC4suC5gOC4iOC4o+C4tOC4jeC5g+C4iAor4LmA4LiI4Lij4Li04LiN4Lie4LijCivguYDguIjguKPguLTguI3guJ7guLHguJnguJjguLjguYwKK+C5gOC4iOC4o+C4tOC4jeC4o+C4reC4ogor4LmA4LiI4Lij4Li04LiN4Liq4Lih4LiT4LiY4Lij4Lij4LihCivguYDguIjguKPguLTguI3guK3guLLguKvguLLguKMKK+C5gOC4iOC4o+C4tOC4lAor4LmA4LiI4Lij4Li14Lii4LiHCivguYDguIjguKXguLXguKLguIcKK+C5gOC4iOC4p+C5h+C4lAor4LmA4LiI4Lip4LiO4LiyCivguYDguIjguYrguKrguLHguKcKK+C5gOC4iOC4rQor4LmA4LiI4LmI4LitCivguYDguIjguYvguK0KK+C5gOC4iOC5i+C4reC5gOC4iOC5iuC4reC4sAor4LmA4LiI4Lit4Lij4LmM4LmA4Lih4LmA4LiZ4Li14Lii4LihCivguYDguIjguK3guLAKK+C5gOC4iOC4sgor4LmA4LiI4LmI4LiyCivguYDguIjguYnguLIKK+C5gOC4iOC5iuC4sgor4LmA4LiI4LmJ4Liy4LiB4Lij4LihCivguYDguIjguYnguLLguIHguKPguKPguKEKK+C5gOC4iOC5ieC4suC4geC4o+C4o+C4oeC4meC4suC4ouC5gOC4p+C4owor4LmA4LiI4LmJ4Liy4LiB4Lij4Liw4LiX4Lij4Lin4LiHCivguYDguIjguYnguLLguIHguLXguYnguYDguIjguYnguLLguIHguLLguKMKK+C5gOC4iOC5ieC4suC4geC4uQor4LmA4LiI4LmJ4Liy4LiC4Lij4Lix4LinCivguYDguIjguYnguLLguILguK3guIcKK+C5gOC4iOC5ieC4suC4guC4sgor4LmA4LiI4LmJ4Liy4LiC4LmJ4LiyCivguYDguIjguYnguLLguILguYnguLLguKfguYHguJTguIfguYHguIHguIfguKPguYnguK3guJkKK+C5gOC4iOC5ieC4suC4guC4uOC4meC4oeC4uOC4peC4meC4suC4ogor4LmA4LiI4LmJ4Liy4LiC4Li44LiZ4Lih4Li54Lil4LiZ4Liy4LiiCivguYDguIjguYnguLLguYTguILguYkKK+C5gOC4iOC5ieC4suC4hOC4k+C4sAor4LmA4LiI4LmJ4Liy4LiE4Lij4Lit4LiBCivguYDguIjguYnguLLguITguLLguKPguKEKK+C5gOC4iOC5ieC4suC4hOC4uOC4kwor4LmA4LiI4LmJ4Liy4LiE4Li44LiT4LiI4Lit4LihCivguYDguIjguYnguLLguYHguIfguYjguYDguIjguYnguLLguIfguK3guJkKK+C5gOC4iOC5ieC4suC5geC4h+C5iOC5geC4quC4meC4h+C4reC4mQor4LmA4LiI4LmJ4Liy4LiI4Lit4LihCivguYDguIjguYnguLLguIjguK3guKHguKHguLLguKPguJTguLIKK+C5gOC4iOC5ieC4suC4iOC4s+C4meC4p+C4mQor4LmA4LiI4LmJ4Liy4LiI4Liz4LiZ4LizCivguYDguIjguYjguLLguIjguLjguIEKK+C5gOC4iOC5ieC4suC4iuC4teC4p+C4tOC4lQor4LmA4LiI4LmJ4Liy4LiK4Li54LmJCivguYDguIjguYnguLLguYDguIvguYfguJkKK+C5gOC4iOC5ieC4suC5gOC4i+C5h+C4meC5gOC4leC5ieC4meC4leC5ieC4s+C4muC4uOC4lAor4LmA4LiI4LmJ4Liy4LiV4Lix4LinCivguYDguIjguYnguLLguJbguYnguK3guKLguKvguKHguK3guITguKfguLLguKEKK+C5gOC4iOC5ieC4suC4l+C5iOC4sgor4LmA4LiI4LmJ4Liy4LiX4Li14LmICivguYDguIjguYnguLLguJfguLjguIHguILguYwKK+C5gOC4iOC5ieC4suC5hOC4l+C4ogor4LmA4LiI4LmJ4Liy4LiZ4Liy4LiiCivguYDguIjguYnguLLguYDguJnguLfguYnguK0KK+C5gOC4iOC5ieC4suC4muC5ieC4suC4mQor4LmA4LiI4LmJ4Liy4Lia4LmI4Liy4LinCivguYDguIjguYnguLLguJrguLjguI3guJnguLLguKLguITguLjguJMKK+C5gOC4iOC5ieC4suC5gOC4muC4teC5ieC4ogor4LmA4LiI4LmJ4Liy4Lib4Lij4Liw4LiE4Li44LiTCivguYDguIjguYnguLLguJvguKPguLDguITguLnguYnguJkKK+C5gOC4iOC5ieC4suC4m+C4ueC5iAor4LmA4LiI4LmJ4Liy4Lie4LiZ4Lix4LiB4LiH4Liy4LiZCivguYDguIjguYnguLLguJ7guJnguLHguIHguIfguLLguJnguJrguLHguIfguITguLHguJrguITguJTguLUKK+C5gOC4iOC5ieC4suC4nuC4meC4seC4geC4h+C4suC4meC4nuC4tOC4l+C4seC4geC4qeC5jOC4l+C4o+C4seC4nuC4ouC5jAor4LmA4LiI4LmJ4Liy4Lie4LiZ4Lix4LiB4LiH4Liy4LiZ4Lig4Li54Lip4Liy4Lih4Liy4Lil4LiyCivguYDguIjguYnguLLguJ7guJnguLHguIHguIfguLLguJnguKrguJnguKHguJ7guKXguYDguKPguLfguK3guJkKK+C5gOC4iOC5ieC4suC4nuC4o+C4sOC5gOC4lOC4iuC4meC4suC4ouC4nuC4o+C4sOC4hOC4uOC4kwor4LmA4LiI4LmJ4Liy4Lie4Lij4Liw4Lii4LiyCivguYDguIjguYnguLLguJ7guYjguK0KK+C5gOC4iOC5ieC4suC4nuC4suC4ouC4uAor4LmA4LiI4LmJ4Liy4Lif4LmJ4LiyCivguYDguIjguYnguLLguJ/guYnguLLguKvguI3guLTguIfguKrguLTguKPguLTguJnguJjguKMKK+C5gOC4iOC5ieC4suC4oOC4suC4ngor4LmA4LiI4LmJ4Liy4Lig4Liy4Lip4Li1CivguYDguIjguYnguLLguKHguKPguJTguIEKK+C5gOC4iOC5ieC4suC4oeC4t+C4rQor4LmA4LiI4LmJ4Liy4LmB4Lih4LmICivguYDguIjguYnguLLguYTguKHguYjguKHguLXguKjguLLguKUg4Liq4Lih4Lig4Liy4Lij4LmE4Lih4LmI4Lih4Li14Lin4Lix4LiUCivguYDguIjguYnguLLguKLguKgKK+C5gOC4iOC5ieC4suC5gOC4o+C4t+C4reC4mQor4LmA4LiI4LmJ4Liy4LmA4Lil4LmI4Lir4LmMCivguYDguIjguYnguLLguKrguLHguKcKK+C5gOC4iOC5ieC4suC4quC4suC4pwor4LmA4LiI4LmJ4Liy4Liq4Liz4LiZ4Lin4LiZCivguYDguIjguYnguLLguKrguLPguJrguLHguJTguKrguLPguJnguKfguJkKK+C5gOC4iOC5ieC4suC4quC4s+C4o+C4suC4jQor4LmA4LiI4LmJ4Liy4Lir4LiZ4LmJ4LiyCivguYDguIjguYnguLLguKvguJnguYnguLLguYDguIjguYnguLLguJXguLIKK+C5gOC4iOC5ieC4suC4q+C4meC5ieC4suC4l+C4teC5iAor4LmA4LiI4LmJ4Liy4Lir4LiZ4Li14LmJCivguYDguIjguYnguLLguKvguKXguKfguIcKK+C5gOC4iOC5ieC4suC4q+C4peC5iOC4reC4mQor4LmA4LiI4LmJ4Liy4Lir4Lix4LinCivguYDguIjguYnguLLguK3guJjguLTguIHguLLguKMKK+C5gOC4iOC5ieC4suC4reC4suC4o+C4oeC4k+C5jAor4LmA4LiI4LmJ4Liy4Lit4Liy4Lin4Liy4LiqCivguYDguIjguLLguLAKK+C5gOC4iOC4suC4sOC4iOC4hwor4LmA4LiI4Liy4Liw4LiI4Lih4Li54LiBCivguYDguIjguLTguYjguIcKK+C5gOC4iOC4tOC4lAor4LmA4LiI4Li04LiU4LiI4LmJ4LiyCivguYDguIjguLTguYjguJkKK+C5gOC4iOC4tOC4oQor4LmA4LiI4Li14LiiCivguYDguIjguLXguKLguIcKK+C5gOC4iOC4teC4ouC4lAor4LmA4LiI4Li14Lii4LiU4Lii4LiyCivguYDguIjguLXguKLguJkKK+C5gOC4iOC4teC5i+C4ouC4mQor4LmA4LiI4Li14LmK4Lii4LiaCivguYDguIjguLXguKLguKEKK+C5gOC4iOC4teC5i+C4ouC4oeC5gOC4iOC4teC5ieC4ouC4oQor4LmA4LiI4Li14Lii4Lih4Liq4Lix4LiH4LiC4Liy4LijCivguYDguIjguLXguKLguKMKK+C5gOC4iOC4teC4ouC4o+C4sOC5hOC4mQor4LmA4LiI4Li14Lii4Lij4Liw4Lia4Liy4LiUCivguYDguIjguLXguKLguKcKK+C5gOC4iOC4teC5iuC4ouC4p+C4iOC5iuC4suC4pwor4LmA4LiI4Li34LitCivguYDguIjguLfguK3guIjguLLguIcKK+C5gOC4iOC4t+C4reC4iOC4suC4mQor4LmA4LiI4Li34LmI4Lit4LiZCivguYDguIjguLfguK3guJvguJkKK+C5gOC4iOC4t+C5ieC4reC4ogor4LmA4LiI4Li34LmJ4Lit4Lii4LmB4LiI4LmJ4LinCivguYDguIjguLfguK3guKrguKEKK+C5geC4iAor4LmB4LiI4LmJCivguYHguIjguYsKK+C5geC4iOC4gQor4LmB4LiI4LiB4LiI4LmI4Liy4LiiCivguYHguIjguIHguYHguIjguIcKK+C5geC4iOC4geC5hOC4nuC5iAor4LmB4LiI4LiB4Lix4LiZCivguYHguIjguIcKK+C5geC4iOC5iOC4hwor4LmB4LiI4LmJ4LiHCivguYHguIjguYnguIfguITguKfguLLguKEKK+C5geC4iOC4h+C4o+C4ueC4mwor4LmB4LiI4LiH4Lil4Lit4LiZCivguYHguIjguIfguKrguLXguYjguYDguJrguLXguYnguKIKK+C5geC4iOC4iOC4mQor4LmB4LiI4LiI4Lix4LiZCivguYHguIjguYrguJQKK+C5geC4iOC4lOC5geC4iOC5iQor4LmB4LiI4LmK4LiU4LmB4LiI4LmLCivguYHguIjguJXguKMKK+C5geC4iOC5ieC4mQor4LmB4LiI4LiaCivguYHguIjguYjguKEKK+C5geC4iOC5iOC4oeC5geC4iOC5ieC4hwor4LmB4LiI4LmI4Lih4LmD4LiqCivguYHguIjguKMKK+C5geC4iOC4o+C4gQor4LmB4LiI4Lij4LiHCivguYHguIjguKcKK+C5geC4iOC5iOC4pwor4LmB4LiI4LmJ4LinCivguYHguIjguYnguKfguYYKK+C5geC4iOC5i+C4pwor4LmB4LiI4LmL4Lin4LmB4Lir4Lin4LinCivguYHguIjguLAKK+C5guC4iOC4gQor4LmC4LiI4LmK4LiBCivguYLguIjguIcKK+C5guC4iOC4h+C4geC4o+C4sOC5gOC4muC4mQor4LmC4LiI4LiH4LiB4Lij4Liw4LmA4Lia4LiZ4LiV4Li14LmA4Lir4Lil4LmH4LiBCivguYLguIjguYjguIfguITguKPguLbguYjguKEKK+C5guC4iOC5i+C4h+C4hOC4o+C4tuC5iOC4oQor4LmC4LiI4LmI4LiH4LiE4Lij4Li44LmI4LihCivguYLguIjguIfguYLguITguKPguYjguIcKK+C5guC4iOC5i+C4h+C5gOC4iOC5i+C4hwor4LmC4LiI4LmI4LiH4LmB4LiI4LmJ4LiHCivguYLguIjguJcKK+C5guC4iOC4l+C4geC5jAor4LmC4LiI4LiX4LmA4LiI4LmJ4LiyCivguYLguIjguJfguJnguLIKK+C5guC4iOC4l+C4ouC5jAor4LmC4LiI4LiZCivguYLguIjguJnguKPguYjguKEKK+C5guC4iOC4oQor4LmC4LiI4Lih4LiV4Li1CivguYLguIjguKHguJfguLHguJ4KK+C5guC4iOC4owor4LmC4LiI4LijLQor4LmC4LiI4Lij4LiB4Lij4Lij4LihCivguYLguIjguKPguKrguKXguLHguJQKK+C5guC4iOC4pQor4LmC4LiI4LipCivguYLguIjguKnguIjguJkKK+C5guC4iOC4qeC4iOC4seC4mQor4LmC4LiI4Lip4LmB4LiICivguYPguIgKK+C5g+C4iOC4geC4peC4suC4hwor4LmD4LiI4LiB4Lin4LmJ4Liy4LiHCivguYPguIjguILguLjguYjguJkKK+C5g+C4iOC5geC4guC5h+C4hwor4LmD4LiI4LiE4Lin4Liy4LihCivguYPguIjguITguK0KK+C5g+C4iOC5geC4hOC4mgor4LmD4LiI4LiH4LmI4Liy4LiiCivguYPguIjguIjguJTguYPguIjguIjguYjguK0KK+C5g+C4iOC4iOC4t+C4lAor4LmD4LiI4LmA4LiJ4Li34LmI4Lit4LiiCivguYPguIjguIrguLfguYnguJkKK+C5g+C4iOC4lOC4swor4LmD4LiI4LiU4Li1CivguYPguIjguYDguJTguYfguJQKK+C5g+C4iOC5gOC4lOC4teC4ouC4pwor4LmD4LiI4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZCivguYPguIjguJXguYjguLMKK+C5g+C4iOC5gOC4leC4tOC4mgor4LmD4LiI4LmB4LiV4LiBCivguYPguIjguYLguJUKK+C5g+C4iOC4luC4tuC4hwor4LmD4LiI4LiZ4LmJ4Lit4LiiCivguYPguIjguJrguLLguJkKK+C5g+C4iOC4muC4uOC4jQor4LmD4LiI4LmA4Lia4LiyCivguYPguIjguJvguKXguLLguIvguLTguKcKK+C5g+C4iOC4m+C5ieC4swor4LmD4LiI4LmB4Lib4LmJ4LinCivguYPguIjguJ3guYjguK0KK+C5g+C4iOC5gOC4nuC4iuC4owor4LmD4LiI4Lih4LiyCivguYPguIjguKHguLfguK0KK+C5g+C4iOC5hOC4oeC5iOC4lOC4tQor4LmD4LiI4LmE4Lih4LmJ4LmE4Liq4LmJ4Lij4Liw4LiB4LizCivguYPguIjguKLguLHguIHguKnguYwKK+C5g+C4iOC5gOC4ouC5h+C4mQor4LmD4LiI4Lij4LmJ4Lit4LiZCivguYPguIjguKPguYnguLLguKIKK+C5g+C4iOC5gOC4o+C5h+C4pwor4LmD4LiI4Lil4Lit4LiiCivguYPguIjguKrguLnguIcKK+C5g+C4iOC5gOC4quC4suC4sAor4LmD4LiI4LmA4Liq4Li14LiiCivguYPguIjguKvguJnguLHguIHguYHguJnguYjguJkKK+C5g+C4iOC4q+C4suC4ogor4LmD4LiI4LmA4Lir4Li14LmI4Lii4Lin4LmB4Lir4LmJ4LiHCivguYPguIjguYPguKvguI3guYjguYPguIjguYLguJUKK+C5g+C4iOC4reC5iOC4reC4mQor4LmE4LiICivguYTguIjguYkKK+C5hOC4iOC5ieC5hgor4LmE4LiI4LijCivguIkKK+C4ieC4gQor4LiJ4LiB4LiI4Lin4Lix4LiBCivguInguIHguInguKfguKIKK+C4ieC4geC4iuC4tOC4hwor4LiJ4LiB4Lij4Lij4LiI4LmMCivguInguIHguKPguKPguIjguYzguKXguLPguYDguITguKPguLfguYjguK3guIcKK+C4ieC4geC4qeC4seC4leC4o+C4tOC4ouC5jAor4LiJ4LiB4Liy4LiICivguInguIHguLLguIjguInguIHguKPguKPguIjguYwKK+C4ieC4geC4suC4oeC4suC4nuC4iOC4owor4LiJ4LiB4Liy4Lih4Liy4Lin4LiI4LijCivguInguIcKK+C4ieC4h+C4mQor4LiJ4LiH4Liy4LiiCivguInguJfguKfguLLguKMKK+C4ieC4l+C4suC4meC4qOC4suC4peC4sgor4LiJ4LiX4Li24LiHCivguInguJnguKfguJkKK+C4ieC4meC4seC4hwor4LiJ4LiZ4Liy4LiBCivguInguJnguLMKK+C4ieC4muC4mgor4LiJ4Lia4Lix4LiHCivguInguJrguLHguJQKK+C4ieC4muC4seC4mgor4LiJ4Lia4LizCivguInguJ7guLXguKrguJXguLTguKEtCivguInguKEKK+C4ieC4oeC4mgor4LiJ4Lih4Lin4LiBCivguInguKHguKfguKIKK+C4ieC4oeC5iOC4reC4hwor4LiJ4Lih4Lix4LiHCivguInguKHguLHguJkKK+C4ieC4oeC4sgor4LiJ4Lih4LizCivguInguKUKK+C4ieC4peC4p+C4ogor4LiJ4Lil4Lin4Lii4LiJ4Lil4Liy4LiUCivguInguKXguK3guIcKK+C4ieC4peC4reC4h+C5hOC4lAor4LiJ4Lil4Lit4LiH4Lie4Lij4Liw4LiB4Lij4LiZ4LmJ4Lit4LiiCivguInguKXguK3guIfguJ7guKPguLDguYDguJnguJXguKMKK+C4ieC4peC4reC4h+C4nuC4o+C4sOC4muC4suC4lwor4LiJ4Lil4Lit4LiH4Lie4Lij4Liw4Lio4LitCivguInguKXguK3guIfguJ7guKPguLDguKvguLHguJXguJbguYwKK+C4ieC4peC4reC4h+C4nuC4o+C4sOC4reC4h+C4hOC5jAor4LiJ4Lil4Lit4LiH4Lit4LiH4LiE4LmMCivguInguKXguK3guKEKK+C4ieC4peC4reC4oeC4l+C5ieC4suC4ouC4jeC4p+C4mQor4LiJ4Lil4Lix4LiBCivguInguKXguLHguJoKK+C4ieC4peC4suC4gQor4LiJ4Lil4Liy4LiB4Lia4Liy4LiHCivguInguKXguLLguIcKK+C4ieC4peC4suC4lAor4LiJ4Lil4Liy4LihCivguInguKXguLLguKHguYDguKrguLfguK0KK+C4ieC4peC4suC4ogor4LiJ4Lil4Li04LinCivguInguKXguLXguIEKK+C4ieC4peC4uAor4LiJ4Lil4Li44LiB4LiJ4Lil4Lin4LiiCivguInguKXguLjguKXguLLguKIKK+C4ieC4peC4uQor4LiJ4Lin4LiiCivguInguKfguKLguInguLLguJoKK+C4ieC4p+C4sAor4LiJ4Lin4Lix4LiU4LmA4LiJ4Lin4Li14Lii4LiZCivguInguKfguLLguIcKK+C4ieC4p+C4tQor4LiJ4Lio4LiBCivguInguYnguK0KK+C4ieC4reC4gQor4LiJ4LmJ4Lit4LmC4LiB4LiHCivguInguYjguK3guIcKK+C4ieC5ieC4reC4ieC4pQor4LiJ4Lit4LiU4LmGCivguInguYjguK3guKIKK+C4ieC5ieC4reC4o+C4suC4qeC4juC4o+C5jOC4muC4seC4h+C4q+C4peC4p+C4hwor4LiJ4Lit4LmA4Lil4Liy4LiwCivguInguLAKK+C4ieC4sOC4geC4sAor4LiJ4Liw4LiJ4Liy4LiUCivguInguLDguInguLLguJkKK+C4ieC4sOC4ieC5iOC4swor4LiJ4Liw4LiJ4Li14LmICivguInguLDguYDguInguLfguYjguK3guKIKK+C4ieC4sOC4leC5ieC4sgor4LiJ4Liw4LiZ4Lix4LmJ4LiZCivguInguLDguJnguLXguYkKK+C4ieC4sOC4q+C4meC5ieC4suC5guC4o+C4hwor4LiJ4Liw4Lit4LmJ4Lit4LiZCivguInguLHguIHguIHguLAKK+C4ieC4seC4kAor4LiJ4Lix4LiUCivguInguLHguJXguKMKK+C4ieC4seC4leC4oy0KK+C4ieC4seC4leC4o+C4muC4o+C4o+C4kwor4LiJ4Lix4LiV4Lij4Lih4LiH4LiE4LilCivguInguLHguJXguKPguKrguLLguKHguIrguLHguYnguJkKK+C4ieC4seC4l+C4l+C4seC4meC4leC5jAor4LiJ4Lix4LiZCivguInguLHguJnguYPguJQKK+C4ieC4seC4meC4ly0KK+C4ieC4seC4meC4l+C5jAor4LiJ4Lix4LiZ4LiX4Lil4Lix4LiB4Lip4LiT4LmMCivguInguLHguJnguJfguKfguLTguKXguLLguKoKK+C4ieC4seC4meC4l+C4qOC4suC4quC4leC4o+C5jAor4LiJ4Lix4LiZ4LiX4LiwCivguInguLHguJnguJfguLIKK+C4ieC4seC4meC4l+C4suC4hOC4leC4tAor4LiJ4Lix4LiZ4LiX4Liy4LiZ4Li44Lih4Lix4LiV4Li0CivguInguLHguJnguJnguLHguYnguJkKK+C4ieC4seC4meC4p+C4uOC4leC4tAor4LiJ4Lix4LiaCivguInguLHguJrguYYKK+C4ieC4seC4muC4nuC4peC4seC4mQor4LiJ4Lix4Lia4LmE4LinCivguInguLHguJ7guJ7guKPguKPguJPguKPguLHguIfguKrguLUKK+C4ieC4seC4ouC4ouC4sgor4LiJ4LmI4LiyCivguInguLLguIEKK+C4ieC4suC4geC4jeC4teC5iOC4m+C4uOC5iOC4mQor4LiJ4Liy4LiB4LiV4Lix4LmJ4LiHCivguInguLLguIHguJfguLTguYnguIcKK+C4ieC4suC4geC4meC5ieC4reC4ogor4LiJ4Liy4LiB4Lia4Lix4LiH4LmA4Lie4Lil4Li04LiHCivguInguLLguIHguYPguKvguI3guYgKK+C4ieC4suC4hwor4LiJ4LmI4Liy4LiHCivguInguYjguLLguInguLLguKcKK+C4ieC4suC4lAor4LiJ4Liy4LiU4LiJ4Liy4LiZCivguInguLLguJXguIHguKDguLHguKIKK+C4ieC4suC4l+C4mQor4LiJ4Liy4LiZCivguInguLLguJoKK+C4ieC4suC4muC4ieC4p+C4ogor4LiJ4Liy4LibCivguInguLLguKIKK+C4ieC4suC4ouC5gOC4ieC4tOC4lAor4LiJ4Liy4Lii4LiyCivguInguLLguKLguLLguKXguLHguIHguKnguJPguYwKK+C4ieC4suC4pwor4LiJ4Liy4Lin4LmC4LiJ4LmICivguInguYjguLMKK+C4ieC4s+C4ieC4sgor4LiJ4Liz4LmA4LiJ4LiHCivguInguLPguYHguInguLAKK+C4ieC4tOC5iOC4hwor4LiJ4Li04LmI4LiH4LiV4Lij4Lix4LiHCivguInguLTguJkKK+C4ieC4tOC4meC4ly0KK+C4ieC4tOC4meC4l+C5jAor4LiJ4Li04LiZ4LiX4Lik4LiB4Lip4LmMCivguInguLTguJoKK+C4ieC4tOC4muC4q+C4suC4ogor4LiJ4Li04Lih4Lie4Lil4Li1CivguInguLTguKcKK+C4ieC4teC5iAor4LiJ4Li14LiBCivguInguLXguIHguKvguJnguYnguLIKK+C4ieC4teC4lAor4LiJ4Li14LiU4Lii4LiyCivguInguLgKK+C4ieC4uOC4gQor4LiJ4Li44LiB4LiE4Li04LiUCivguInguLjguIHguYPguIgKK+C4ieC4uOC4geC5gOC4ieC4tOC4mQor4LiJ4Li44LiB4Lil4Liw4Lir4Li44LiBCivguInguLjguJQKK+C4ieC4uOC4mQor4LiJ4Li44LiZ4LmA4LiJ4Li14Lii4LinCivguInguLjguJsKK+C4ieC4uOC4my0KK+C4ieC4uOC4m+C4qOC4suC4quC4leC4o+C5jAor4LiJ4Li44LiiCivguInguLjguKLguInguLLguKIKK+C4ieC4uOC4ouC4ieC4suC4ouC5gOC4guC5ieC4suC4p+C4seC4hwor4LiJ4Li54LmICivguInguLnguYjguInguLXguYgKK+C4ieC4ueC4lAor4LiJ4Li54LiU4LiJ4Liy4LiUCivguYDguIkKK+C5gOC4ieC4gQor4LmA4LiJ4LmC4LiBCivguYDguInguYjguIcKK+C5gOC4ieC5hOC4iQor4LmA4LiJ4LiUCivguYDguInguJcKK+C5gOC4ieC4meC4teC4ouC4mQor4LmA4LiJ4Lie4Liy4LiwCivguYDguInguJ7guLLguLDguIHguLLguKUKK+C5gOC4ieC4nuC4suC4sOC4geC4tOC4iAor4LmA4LiJ4Lie4Liy4Liw4LiV4Lix4LinCivguYDguInguJ7guLLguLDguJ7guKPguLDguJ7guLHguIHguJXguKPguYwKK+C5gOC4ieC4nuC4suC4sOC4q+C4meC5ieC4sgor4LmA4LiJ4LiiCivguYDguInguKLguYYKK+C5gOC4ieC4ouC5gOC4oeC4ogor4LmA4LiJ4Lil4LiiCivguYDguInguKXguKcKK+C5gOC4ieC4peC4sgor4LmA4LiJ4Lil4Li04LihCivguYDguInguKXguLTguKHguJ7guKPguLDguIrguJnguKHguJ7guKPguKPguKnguLIKK+C5gOC4ieC4peC4teC5iOC4ogor4LmA4LiJ4Lil4Li14Lii4LiHCivguYDguInguKXguLXguYjguKLguIcKK+C5gOC4ieC4peC4teC4ouC4mgor4LmA4LiJ4Lil4Li14Lii4LinCivguYDguInguKXguLXguKLguKfguYPguIgKK+C5gOC4ieC4peC4teC4ouC4p+C4ieC4peC4suC4lAor4LmA4LiJ4Lin4Li14Lii4LiHCivguYDguInguKfguLXguKLguIfguJrguYjguLIKK+C5gOC4ieC4p+C4teC4ouC4mQor4LmA4LiJ4Lit4Liw4LmB4LiJ4LiwCivguYDguInguLIKK+C5gOC4ieC4suC4geC5iuC4p+C4ogor4LmA4LiJ4Liy4LmC4LiJ4LiUCivguYDguInguLLguK7guLfguYnguK0KK+C5gOC4ieC4suC4sAor4LmA4LiJ4Liy4Liw4LmGCivguYDguInguLLguLDguJvguKXguYjguK3guIcKK+C5gOC4ieC4tOC4lAor4LmA4LiJ4Li04LiU4LiJ4Lix4LiZCivguYDguInguLTguJTguInguLLguKIKK+C5gOC4ieC4tOC4lOC4ieC4tOC4mQor4LmA4LiJ4Li04LiaCivguYDguInguLTguJrguYYKK+C5gOC4ieC4teC4ouC4hwor4LmA4LiJ4Li14Lii4LiH4Lie4Lij4LmJ4Liy4LiU4LizCivguYDguInguLXguKLguIfguJ7guKPguYnguLLguJnguLLguIfguYHguK0KK+C5gOC4ieC4teC4ouC4h+C4nuC4o+C5ieC4suC4oeC4reC4jQor4LmA4LiJ4Li14Lii4LiUCivguYDguInguLXguKLguJoKK+C5gOC4ieC4teC4ouC4muC4guC4suC4lAor4LmA4LiJ4Li14Lii4Lia4Lie4Lil4Lix4LiZCivguYDguInguLXguKLguJrguYHguKvguKXguKEKK+C5gOC4ieC4teC4ouC4pwor4LmA4LiJ4Li14LmI4Lii4LinCivguYDguInguLXguKLguKfguInguLjguJkKK+C5gOC4ieC4t+C4reC4mQor4LmA4LiJ4Li34LmI4Lit4LiiCivguYDguInguLfguYjguK3guKLguYYKK+C5gOC4ieC4t+C5iOC4reC4ouC4iuC4sgor4LmB4LiJCivguYHguInguYgKK+C5geC4ieC4gQor4LmB4LiJ4LiB4LmGCivguYHguInguIcKK+C5geC4ieC5iOC4hwor4LmB4LiJ4LmC4Lie4LiiCivguYHguInguKXguJoKK+C5geC4ieC4peC5ieC4oQor4LmB4LiJ4Lil4LiwCivguYHguInguKcKK+C5geC4ieC4sAor4LmB4LiJ4Liw4LmB4Lia4LiwCivguYLguIkKK+C5guC4ieC5iAor4LmC4LiJ4LmA4LiBCivguYLguInguYjguIfguInguYjguLLguIcKK+C5guC4ieC4h+C5gOC4ieC4hwor4LmC4LiJ4LmI4LiJ4Liy4LinCivguYLguInguJQKK+C5guC4ieC4lOC5gOC4ieC4sgor4LmC4LiJ4LiZ4LiUCivguYLguInguJoKK+C5guC4ieC5gOC4muC5igor4LmC4LiJ4LihCivguYLguInguKHguIfguLLguKEKK+C5guC4ieC4oeC4ieC4suC4ogor4LmC4LiJ4Lih4LmA4LiJ4Lil4LiyCivguYLguInguKHguJXguKPguLkKK+C5guC4ieC4oeC4ouC4hwor4LmC4LiJ4Lih4Lio4Lij4Li1CivguYLguInguKHguKvguJnguYnguLIKK+C5guC4ieC4peC4gQor4LmE4LiJ4LiZCivguYTguInguYTguKUKK+C4igor4LiK4LiBCivguIrguIHguKHguKfguKIKK+C4iuC4geC4sgor4LiK4LiELQor4LiK4LiE4LiU4Li1CivguIrguITguLHguJXguJXguKPguLHguKIKK+C4iuC4hwor4LiK4LiH4LiE4LiyCivguIrguIfguYLguIQKK+C4iuC4h+C4hi0KK+C4iuC4h+C4huC5jAor4LiK4LiH4LiG4LiyCivguIrguIfguYLguKXguIcKK+C4iuC4juC4sgor4LiK4LiO4Liy4LiB4Lil4Li14LiaCivguIrguI7guLLguYDguJTguLTguJnguKvguJkKK+C4iuC4juC4suC4mOC4suC4owor4LiK4LiO4Liy4LmB4Lib4Lil4LiHCivguIrguI7guLLguJ7guK3guIEKK+C4iuC4juC4suC4oeC4q+C4suC4geC4kOC4tOC4mQor4LiK4LiO4Liy4Lih4Lix4LiH4Lip4Li1CivguIrguI7guLLguKHguLHguIfguKrguLUKK+C4iuC4juC4tOC4pQor4LiK4LiUCivguIrguJTguIrguYnguK3guKIKK+C4iuC4lOC5gOC4iuC4ogor4LiK4LiU4LmD4LiK4LmJCivguIrguJfguLbguIcKK+C4iuC4mQor4LiK4LiZLQor4LiK4LiZ4LiBCivguIrguJnguIEtCivguIrguJnguIHguIHguKPguKPguKEKK+C4iuC4meC4iuC5ieC4suC4hwor4LiK4LiZ4LiZ4Li1CivguIrguJnguJrguJcKK+C4iuC4meC4oS0KK+C4iuC4meC4oeC5jAor4LiK4LiZ4Lih4Lie4Lij4Lij4Lip4LiyCivguIrguJnguKHguLLguJ7guLTguJjguLUKK+C4iuC4meC4oeC4suC4ouC4uOC4nuC4tOC4mOC4tQor4LiK4LiZ4Lin4LiZCivguIrguJnguKvguKHguLnguYjguJnguYnguK3guKIKK+C4iuC4meC4sAor4LiK4LiZ4Lix4LiBCivguIrguJnguLHguIHguJXguLTguJTguKvguKXguLHguIcKK+C4iuC4meC4sgor4LiK4LiZ4Liy4LiHCivguIrguJnguLTguJQKK+C4iuC4meC4tOC4meC4l+C4o+C5jAor4LiK4LmA4LiZ4LiV4LiV4Li1CivguIrguJrguLIKK+C4iuC4muC4suC4q+C4meC4uQor4LiK4Lib4LmC4Lii4LiECivguIrguKEKK+C4iuC4oeC4iuC4seC4pwor4LiK4Lih4LiK4Liy4LiNCivguIrguKHguYDguIrguKIKK+C4iuC4oeC5hOC4igor4LiK4Lih4LiU4LiK4Lih4LmJ4Lit4LiiCivguIrguKHguJnguLLguJQKK+C4iuC4oeC4mgor4LiK4Lih4LmA4Lib4Liy4LiwCivguIrguKHguJ7guLkKK+C4iuC4oeC4nuC4ueC5iAor4LiK4Lih4Lie4Li54LiX4Lin4Li14LibCivguIrguKHguJ7guLnguJnguJcKK+C4iuC4oeC4nuC4ueC4meC4uOC4lwor4LiK4Lih4Lie4Li54Lie4Liy4LiU4Lia4LmI4LiyCivguIrguKHguKPguKEKK+C4iuC4oeC5gOC4peC4suC4sAor4LiK4Lih4Liq4Lin4LiZ4Liq4Lin4Lij4Lij4LiE4LmMCivguIrguKHguYnguK3guKIKK+C4iuC4oeC4seC4mQor4LiK4Lih4LiyCivguIrguKHguYnguLLguKIKK+C4iuC5hOC4oQor4LiK4LiiCivguIrguKItCivguIrguKLguLIKK+C4iuC5guC4ogor4LiK4LijCivguIrguKPguJfguLbguIcKK+C4iuC4o+C5guC4oeC4pQor4LiK4Lij4LmE4LihCivguIrguKPguKPguLLguIcKK+C4iuC4o+C4o+C4tOC4mQor4LiK4Lij4LmA4Lij4Li34Lit4LiUCivguIrguKPguYHguKPguIcKK+C4iuC4o+C5geC4o+C5iOC4hwor4LiK4Lij4LmC4Lil4LiHCivguIrguKPguK3guIHguIrguKPguLHguIcKK+C4iuC4o+C4reC4reC4mgor4LiK4Lij4Lit4Lix4LiUCivguIrguKPguK3guYjguLMKK+C4iuC4o+C4reC4t+C5ieC4rQor4LiK4Lij4Lit4Li44LmI4LihCivguIrguKPguLAKK+C4iuC4o+C4sOC4h+C4oQor4LiK4Lij4Liw4LiH4LmI4Lit4LiZCivguIrguKPguLDguIfguLMKK+C4iuC4o+C4sOC4lOC4seC4lAor4LiK4Lij4Liw4LiU4Li34LmI4LiZCivguIrguKPguLDguYDguJTguLXguKLguJQKK+C4iuC4o+C4sOC5gOC4lOC4teC4ouC4lOC4iuC4o+C4sOC4lOC4seC4lAor4LiK4Lij4Liw4Lia4Lit4LiaCivguIrguKPguLDguJrguLLguJoKK+C4iuC4o+C4sOC4oeC4lAor4LiK4Lij4Liw4Lih4Lix4LinCivguIrguKPguLDguKHguLfguYjguJkKK+C4iuC4o+C4sOC4oeC4uOC4geC4iuC4o+C4sOC4oeC4reC4oQor4LiK4Lij4Liw4Lih4Li44LmI4LiZCivguIrguKPguLDguYDguKHguLXguKLguIcKK+C4iuC4o+C4sOC5gOC4oeC4teC4ouC4mQor4LiK4Lij4Liw4Lil4LitCivguIrguKPguLDguKXguK3guIcKK+C4iuC4o+C4sOC4peC5iOC4reC4hwor4LiK4Lij4Liw4Lil4Lix4LmI4LiHCivguIrguKPguLDguKXguLHguJQKK+C4iuC4o+C4sOC4peC5ieC4swor4LiK4Lij4Liw4Lil4Li4CivguIrguKPguLDguYHguKXguIcKK+C4iuC4o+C4sOC4reC4seC4mgor4LiK4Lij4Liw4Lit4Liy4LiaCivguIrguKPguLDguYDguK3guKEKK+C4iuC4o+C4seC4lAor4LiK4Lij4Lix4LinCivguIrguKPguLIKK+C4iuC4o+C4suC4geC4suC4geC4tQor4LiK4Lij4Liy4LiY4Lij4Lij4LihCivguIrguKPguLLguJoKK+C4iuC4o+C4suC4muC4iuC4o+C4seC4mgor4LiK4Lij4Liy4Lig4Liy4LieCivguIrguKPguLLguKLguLgKK+C4iuC4o+C4tOC4mQor4LiK4Lij4Li44LiBCivguIrguKPguLnguJoKK+C4iuC4pQor4LiK4LilLQor4LiK4Lil4LiI4LijCivguIrguKXguIjguLHguJPguJHguYwKK+C4iuC4peC4iuC4suC4leC4tAor4LiK4Lil4LiY4Liy4LijCivguIrguKXguJjguLLguKPguIEKK+C4iuC4peC4mOC4tOC4qAor4LiK4Lil4LiY4Li1CivguIrguKXguJnguLHguKLguJnguYwKK+C4iuC4peC4meC4sgor4LiK4Lil4LmA4LiZ4LiV4LijCivguIrguKXguJvguKPguLDguJfguLLguJkKK+C4iuC4peC4oeC4suC4o+C4hAor4LiK4Lil4Liq4LiW4Liy4LiZCivguIrguKXguLHguKHguJ7guLgKK+C4iuC4peC4suC4mOC4suC4owor4LiK4Lil4Liy4Lie4Li44LiKCivguIrguKXguLLguKHguJ7guLjguIoKK+C4iuC4peC4suC4peC4seC4ogor4LiK4Lil4Liy4Lio4Lix4LiiCivguIrguKXguLUKK+C4iuC4peC4ueC4geC4sgor4LiK4LmA4LilCivguIrguYLguKXguIcKK+C4iuC5guC4peC4l+C4owor4LiK4LmC4Lil4LihCivguIrguKctCivguIrguYjguKfguIcKK+C4iuC5iOC4p+C4h+C4iuC4seC4ogor4LiK4LmI4Lin4LiH4LiK4Li04LiHCivguIrguYjguKfguIfguYLguIrguJXguLQKK+C4iuC5iOC4p+C4h+C5g+C4iuC5iQor4LiK4LmI4Lin4LiH4LiX4Lij4Lix4Lie4Lii4LmMCivguIrguYjguKfguIfguJrguLLguJcKK+C4iuC5iOC4p+C4h+C5gOC4oeC4t+C4reC4hwor4LiK4LmI4Lin4LiH4Liq4Li04LiX4LiY4Li04LmMCivguIrguKfguJQKK+C4iuC4p+C4mQor4LiK4Lin4LiZ4LiK4LihCivguIrguKfguJnguKvguLHguKcKK+C4iuC4p+C4ogor4LiK4LmI4Lin4LiiCivguIrguYjguKfguKLguYDguKvguKXguLfguK0KK+C4iuC4p+C4owor4LiK4Lin4Lil4Li04LiVCivguIrguKfguLHguIEKK+C4iuC4p+C4sgor4LiK4Lin4Liy4LilCivguIrguKfguLLguKXguLIKK+C4iuC5iOC4rQor4LiK4Lit4LiBCivguIrguYfguK3guIHguYLguIHguYDguKXguJUKK+C4iuC5h+C4reC4geC5guC4geC5geC4peC4lQor4LiK4Lit4LiB4LiK4LmJ4LizCivguIrguK3guIcKK+C4iuC5iOC4reC4hwor4LiK4LmJ4Lit4LiHCivguIrguYjguK3guIfguIHguLjguJQKK+C4iuC5iOC4reC4h+C5gOC4guC4sgor4LiK4LmI4Lit4LiH4LmB4LiE4LiaCivguIrguYjguK3guIfguJTguLLguKUKK+C4iuC5iOC4reC4h+C4leC4teC4meC4geC4sgor4LiK4LmJ4Lit4LiH4LiZ4Liy4LiHCivguIrguYnguK3guIfguJnguLLguIfguITguKXguLXguYgKK+C4iuC5iOC4reC4h+C5hOC4nwor4LiK4LmJ4Lit4LiH4LmB4Lih4LinCivguIrguK3guIfguKPguLDguK3guLIKK+C4iuC4reC4mQor4LiK4LmI4Lit4LiZCivguIrguYnguK3guJkKK+C4iuC5ieC4reC4meC4meC4suC4hwor4LiK4LmJ4Lit4LiZ4Lir4Lit4LiiCivguIrguK3guJoKK+C4iuC4reC4muC4geC4pQor4LiK4Lit4Lia4LmD4LiICivguIrguK3guJrguJjguKPguKPguKEKK+C4iuC4reC4muC4nuC4rQor4LiK4Lit4Lia4Lih4Liy4Lie4Liy4LiB4LilCivguIrguYjguK3guJ/guYnguLIKK+C4iuC4reC4oQor4LiK4LmI4Lit4Lih4LmI4Lin4LiHCivguIrguYjguK3guKIKK+C4iuC5ieC4reC4ogor4LiK4LmJ4Lit4Lii4LiK4LiUCivguIrguYnguK3guKLguIrguYjguLLguIfguKPguLMKK+C4iuC5ieC4reC4ouC4meC4suC4h+C4o+C4swor4LiK4Lit4Lil4LmM4LiBCivguIrguYjguK3guK3guLTguJnguJfguJnguLTguKUKK+C4iuC4reC5iOC4swor4LiK4Lit4Li34LmJ4LitCivguIrguK3guLjguYjguKEKK+C4iuC4sAor4LiK4Liw4LiE4Lij4Liy4LihCivguIrguLDguIfguK3guIEKK+C4iuC4sOC4h+C5iOC4reC4mQor4LiK4Liw4LiH4Lix4LiBCivguIrguLDguIfguLHguJQKK+C4iuC4sOC4h+C4suC4mgor4LiK4Liw4LiH4LmJ4LizCivguIrguLDguIfguLjguYnguKEKK+C4iuC4sOC5gOC4h+C5ieC4rQor4LiK4Liw4LmA4LiH4Li34LmJ4Lit4LihCivguIrguLDguYHguIfguYkKK+C4iuC4sOC5guC4h+C4gQor4LiK4Liw4LmC4LiH4LiB4Lic4LiyCivguIrguLDguInguYjguLIKK+C4iuC4sOC4iuC5iOC4reC4hwor4LiK4Liw4LiK4LiwCivguIrguLDguIrguYnguLIKK+C4iuC4sOC4iuC4tOC4lAor4LiK4Liw4LiU4Li14LiK4Liw4Lij4LmJ4Liy4LiiCivguIrguLDguYLguJQKK+C4iuC4sOC4leC4sgor4LiK4Liw4LiV4LmJ4LiyCivguIrguLDguJnguLUKK+C4iuC4sOC4meC4teC4o+C5iOC4suC4ouC5hOC4oeC5iQor4LiK4Liw4LiZ4Li44LiHCivguIrguLDguYDguJnguLLguLAKK+C4iuC4sOC5gOC4meC4teC4ouC4hwor4LiK4Liw4Lie4Lil4Li5CivguIrguLDguYDguJ7guKXguLTguIcKK+C4iuC4sOC4oeC4lAor4LiK4Liw4Lih4LiU4LmA4LiK4Li14Lii4LiHCivguIrguLDguKHguJTguJXguYnguJkKK+C4iuC4sOC4oeC4mgor4LiK4Liw4Lih4Lin4LiHCivguIrguLDguKHguLHguIcKK+C4iuC4sOC4oeC4seC4lAor4LiK4Liw4LmB4Lih4LmICivguIrguLDguKPguK3guKIKK+C4iuC4sOC4peC4rQor4LiK4Liw4Lil4Lit4LihCivguIrguLDguKXguYjguLIKK+C4iuC4sOC4peC4suC4mQor4LiK4Liw4Lil4Li04LiZCivguIrguLDguKXguLnguJQKK+C4iuC4sOC5gOC4peC4hwor4LiK4Liw4LmA4Lil4LiiCivguIrguLDguYHguKXguYfguIEKK+C4iuC4sOC5geC4peC4hwor4LiK4Liw4Lin4Lix4LiHCivguIrguLDguKfguLLguIEKK+C4iuC4sOC4p+C4suC4geC4l+C4sOC5gOC4pQor4LiK4Liw4Lin4Liy4LiUCivguIrguLDguKfguLjguYnguIcKK+C4iuC4sOC5gOC4p+C4tOC4geC4iuC4sOC4p+C4suC4gQor4LiK4Liw4LmB4Lin4LiHCivguIrguLDguK3guKEKK+C4iuC4sOC4reC5ieC4reC4mQor4LiK4Liw4LmA4Lit4LihCivguIrguLDguYLguK3guJkKK+C4iuC4seC4gQor4LiK4Lix4LiB4LiB4Lij4Liw4Lia4Li14LmI4Liq4Li14LmI4LiX4LmI4LiyCivguIrguLHguIHguITguKPguLLguKEKK+C4iuC4seC4geC5guC4hOC4o+C4gQor4LiK4Lix4LiB4LmA4LiH4LiyCivguIrguLHguIHguIjguLnguIcKK+C4iuC4seC4geC4iuC4p+C4mQor4LiK4Lix4LiB4LiK4LmJ4LiyCivguIrguLHguIHguIvguK3guKrguLLguKHguKrguLLguKIKK+C4iuC4seC4geC4i+C4uOC4h+C4leC4suC4oeC4guC4p+C4suC4hwor4LiK4Lix4LiB4LiV4Liw4Lie4Liy4LiZ4LmB4Lir4LiH4LiZ4LmA4LiW4LmI4LitCivguIrguLHguIHguJnguLMKK+C4iuC4seC4geC4meC5ieC4s+C5gOC4guC5ieC4suC4peC4tuC4gSDguIrguLHguIHguKjguLbguIHguYDguILguYnguLLguJrguYnguLLguJkKK+C4iuC4seC4geC5gOC4meC4t+C5ieC4rQor4LiK4Lix4LiB4LmD4Lia4LmD4Lir4LmJ4LmA4Lij4Li34Lit4LmA4Liq4Li14LiiCivguIrguLHguIHguYHguJvguYnguIfguJzguLHguJTguKvguJnguYnguLIKK+C4iuC4seC4geC4nuC4o+C4sAor4LiK4Lix4LiB4LmB4Lih4LmI4LiZ4LmJ4Liz4LiX4Lix4LmJ4LiH4Lir4LmJ4LiyCivguIrguLHguIHguKLguLHguJnguJXguYwKK+C4iuC4seC4geC5gOC4ouC5iOC4rQor4LiK4Lix4LiB4LmD4LiiCivguIrguLHguIHguKPguLnguJsKK+C4iuC4seC4geC4qOC4ngor4LiK4Lix4LiB4Liq4Lit4LiH4LmB4LiW4LinCivguIrguLHguIHguKrguLfguYjguK0KK+C4iuC4seC4geC4q+C4meC5ieC4sgor4LiK4Lix4LiB4Lir4LiZ4LmJ4Liy4LmE4Lih4LmI4LiW4Li24LiH4Lir4Lil4Lix4LiHCivguIrguLHguIQtCivguIrguLHguIcKK+C4iuC4seC5iOC4hwor4LiK4Lix4LiH4LiE4LiyCivguIrguLHguIfguIYtCivguIrguLHguIfguIbguKfguLTguKvguLLguKMKK+C4iuC4seC5iOC4h+C5g+C4iAor4LiK4Lix4LmI4LiH4Lir4Lil4Lin4LiHCivguIrguLHguIrguKfguLLguKUKK+C4iuC4seC4jwor4LiK4Lix4LiUCivguIrguLHguJTguYDguIjguJkKK+C4iuC4seC4lOC4iuC5ieC4sgor4LiK4Lix4LiZCivguIrguLHguYnguJkKK+C4iuC4seC4meC4geC4suC4lAor4LiK4Lix4LiZ4LiE4LitCivguIrguLHguYnguJnguInguLLguKIKK+C4iuC4seC5ieC4meC4iuC4seC5iOC4pwor4LiK4Lix4LiZ4LiK4Li1CivguIrguLHguYnguJnguYDguIrguLTguIcKK+C4iuC4seC4meC4leC4suC4huC4owor4LiK4Lix4LiZ4LiV4Li4CivguIrguLHguJnguJnguLDguJXguLgKK+C4iuC4seC4meC4meC4uAor4LiK4Lix4LiZ4LiZ4Li44LiB4LiwCivguIrguLHguJnguJ7guK3guJkKK+C4iuC4seC4meC5guC4o+C4hwor4LiK4Lix4LiZ4Lip4LiyCivguIrguLHguJnguKrguJkKK+C4iuC4seC4meC4quC4ueC4leC4owor4LiK4Lix4LiZ4Liq4Li54LiV4Lij4Lie4Lil4Li04LiB4Lio4LieCivguIrguLHguJvguJkKK+C4iuC4seC4ngor4LiK4Lix4Lih4Lie4Li54LiZ4LiXCivguIrguLHguKIKK+C4iuC4seC4oi0KK+C4iuC4seC4ouC4muC4suC4mQor4LiK4Lix4Lii4Lie4Lik4LiB4Lip4LmMCivguIrguLHguKLguKDguLnguKHguLQKK+C4iuC4seC4ouC5gOC4oOC4o+C4tQor4LiK4Lix4Lii4Lio4Lij4Li1CivguIrguLHguKXguKXguLjguIHguLIKK+C4iuC4seC5iOC4pwor4LiK4Lix4LmJ4LinCivguIrguLHguYjguKfguITguJkKK+C4iuC4seC5iOC4p+C4hOC4o+C4suC4pwor4LiK4Lix4Lin4LiK4LihCivguIrguLHguYjguKfguIrguYnguLIKK+C4iuC4seC5iOC4p+C4iuC5iOC4suC4h+C4iuC4tSDguJTguLXguIrguYjguLLguIfguKrguIfguIbguYwKK+C4iuC4seC5iOC4p+C5geC4leC5iOC4p+C5iOC4sgor4LiK4Lix4LmI4Lin4LiZ4Liy4LiV4Liy4Lib4Li1CivguIrguLHguYjguKfguYLguKHguIcKK+C4iuC4seC5iOC4p+C5geC4peC5iOC4mQor4LiK4LiyCivguIrguYnguLIKK+C4iuC5ieC4suC4geC5iOC4reC4mQor4LiK4Liy4LiE4LijCivguIrguLLguITguKPguLTguJUKK+C4iuC4suC4hOC4o+C4tOC4ouC4suC4meC4uOC5guC4ouC4hAor4LiK4LmI4Liy4LiHCivguIrguYnguLLguIcKK+C4iuC5iOC4suC4h+C4geC4o+C4sOC5hOC4owor4LiK4LmI4Liy4LiH4LmA4LiE4Lij4Li34LmI4Lit4LiHCivguIrguYnguLLguIfguIfguKfguIcKK+C4iuC5ieC4suC4h+C4iuC4s+C4meC4tAor4LiK4LmJ4Liy4LiH4LiK4Li54LiH4Lin4LiHCivguIrguYnguLLguIfguJXguYjguK0KK+C4iuC5ieC4suC4h+C4leC4suC4ouC4l+C4seC5ieC4h+C4leC4seC4p+C5gOC4reC4suC5g+C4muC4muC4seC4p+C4oeC4suC4m+C4tOC4lAor4LiK4LmI4Liy4LiH4LiX4Lit4LiHCivguIrguYnguLLguIfguJfguLPguKXguLLguKLguYLguKPguIcKK+C4iuC5ieC4suC4h+C4meC5ieC4reC4ogor4LiK4LmJ4Liy4LiH4LiZ4LmJ4Liy4LinCivguIrguYnguLLguIfguJnguYnguLMKK+C4iuC5ieC4suC4h+C4m+C4o+C4sOC4quC4suC4meC4h+C4sgor4LiK4LmI4Liy4LiH4Lib4Liw4LmE4LijCivguIrguYnguLLguIfguJzguLDguIrguJQKK+C4iuC5ieC4suC4h+C5gOC4nOC4t+C4reC4gQor4LiK4LmJ4Liy4LiH4Lie4Lil4Liy4LiiCivguIrguYnguLLguIfguJ7guLHguIcKK+C4iuC5iOC4suC4h+C4n+C4tOC4lQor4LiK4LmI4Liy4LiH4LmE4LifCivguIrguYnguLLguIfguKPguYnguK3guIcKK+C4iuC5ieC4suC4h+C4quC4sOC4muC4seC4lOC4q+C4jeC5ieC4sgor4LiK4LmJ4Liy4LiH4LmA4Lir4Lii4Li14Lii4LiaCivguIrguYjguLLguIfguYDguKvguKXguYfguIEKK+C4iuC5ieC4suC4h+C5g+C4q+C4jeC5iAor4LiK4LmJ4Liy4LiK4LmI4Lit4LiZCivguIrguLLguI0KK+C4iuC4suC4lAor4LiK4Liy4LiU4LiBCivguIrguLLguJTguKvguKPguITguLjguJMKK+C4iuC5ieC4suC5hiDguYTguJTguYnguJ7guKPguYnguLLguKrguK3guIfguYDguKXguYjguKHguIfguLLguKEKK+C4iuC4suC4lS0KK+C4iuC4suC4leC4muC4uOC4qeC4ouC5jAor4LiK4Liy4LiV4Lij4Li1CivguIrguLLguJXguKPguLnguJsKK+C4iuC4suC4leC4quC4o+C4sAor4LiK4Liy4LiV4LiwCivguIrguLLguJXguLIKK+C4iuC4suC4leC4tAor4LiK4Liy4LiV4Li0LQor4LiK4Liy4LiV4Li04LiY4Lij4Lij4LihCivguIrguLLguJXguLTguJnguLTguKLguKEKK+C4iuC4suC4leC4tOC4nuC4seC4meC4mOC4uOC5jAor4LiK4Liy4LiV4Li04Lie4Lix4LiZ4LiY4Li44LmM4Lin4Lij4Lij4LiT4LiZ4LiyCivguIrguLLguJXguLTguJ7guLHguJnguJjguLjguYzguKfguLTguJfguKLguLIKK+C4iuC4suC4leC4tOC4oOC4ueC4oeC4tAor4LiK4Liy4LiV4Li04Lih4Liy4Lil4LiyCivguIrguLLguJXguLTguKPguKoKK+C4iuC4suC4mQor4LiK4Liy4LiZ4LiK4Liy4Lil4LiyCivguIrguLLguJnguKfguLLguJfguLTguIEKK+C4iuC5ieC4suC4meC4suC4h+C4meC4reC4mQor4LiK4LmJ4Liy4LiZ4Liy4LiZCivguIrguLLguJnguLgKK+C4iuC4suC4meC4uOC4geC4sAor4LiK4Liy4LiZ4Li44Lih4LiT4LiR4LilCivguIrguYnguLLguJvguLXguYgKK+C4iuC4suC4m+C4teC5hOC4q+C4mQor4LiK4LmJ4Liy4LmA4Lib4LmH4LiZ4LiB4Liy4LijIOC4meC4suC4meC5gOC4m+C5h+C4meC4hOC4uOC4kwor4LiK4LmJ4Liy4LmB4Lib4LmJ4LiZCivguIrguYnguLLguJ7guKXguLkKK+C4iuC4suC4oQor4LiK4Liy4Lih4Lie4Li54LiZ4LiXCivguIrguLLguKHguLLguJTguKMKK+C4iuC4suC4oeC4suC4lOC4sgor4LiK4Liy4Lih4Liy4LiV4Li4CivguIrguLLguKIKK+C4iuC4suC4ouC4geC4o+C4sOC5gOC4muC4mQor4LiK4Liy4Lii4LiB4Lij4Liw4LmA4Lia4LiZ4LmA4Lir4LiZ4LmH4LiaCivguIrguLLguKLguITguLIKK+C4iuC4suC4ouC5geC4hOC4o+C4hwor4LiK4Liy4Lii4LiK4Liy4LiV4Lij4Li1CivguIrguLLguKLguJXguLIKK+C4iuC4suC4ouC4l+C4sOC5gOC4pQor4LiK4Liy4Lii4LiY4LiHCivguIrguLLguKLguJzguYnguLLguKrguLXguJTguLIKK+C4iuC4suC4ouC4neC4seC5iOC4hwor4LiK4Liy4Lii4LmA4Lif4Li34Lit4LiiCivguIrguLLguKLguKrguLLguKHguYLguJrguKrguJbguYwKK+C4iuC4suC4ouC5hOC4q+C4pwor4LiK4Liy4Lii4LiyCivguIrguLLguKLguLLguIrguLXguJ4KK+C4iuC4suC4ouC4suC4meC4uOC4iuC4teC4ngor4LiK4Liy4LmA4Lii4LiZ4LiX4Lij4LmMCivguIrguLLguYDguKLguKgKK+C4iuC4suC4owor4LiK4Liy4Lij4Li1CivguIrguLLguKUKK+C4iuC4suC4pS0KK+C4iuC4suC4peC4geC4o+C4o+C4oQor4LiK4Liy4Lil4LiyCivguIrguLLguKXguLTguJnguLUKK+C4iuC5ieC4suC4peC4ueC4geC4q+C4peC4p+C4hwor4LiK4LmJ4Liy4LmA4Lil4Li34Lit4LiUCivguIrguLLguKcKK+C4iuC4suC4p+C4meC4reC4gQor4LiK4Liy4Lin4LiZ4LmJ4LizCivguIrguLLguKfguKHguYjguLLguJkKK+C4iuC4suC4p+C5gOC4pQor4LiK4Liy4Lin4Lin4Lix4LiHCivguIrguLLguKfguLUKK+C4iuC5ieC4suC4q+C4oeC4reC4hwor4LiK4LizCivguIrguYjguLMKK+C4iuC5ieC4swor4LiK4Liz4LiH4Lix4LiUCivguIrguLPguIfguLLguKIKK+C4iuC4s+C4h+C4t+C4rQor4LiK4LmI4Liz4LmD4LiICivguIrguYnguLPguYPguIgKK+C4iuC5ieC4s+C4iuC4reC4gQor4LiK4LmI4Liz4LiK4Lit4LiHCivguIrguYjguLPguIrguYjguLIKK+C4iuC4s+C4meC4mQor4LiK4Liz4LiZ4Lij4LijCivguIrguLPguJnguLAKK+C4iuC4s+C4meC4seC4jQor4LiK4Liz4LiZ4Lix4LiN4Lie4Li04LmA4Lio4LipCivguIrguLPguJnguLHguJkKK+C4iuC4s+C4meC4suC4jQor4LiK4Liz4LiZ4Liy4LiN4LmA4LiB4Lil4Liy4LiB4Lil4Lit4LiZCivguIrguLPguJnguLQKK+C4iuC4s+C4meC4tOC4iuC4s+C4meC4suC4jQor4LiK4Liz4LmA4LiZ4Li14Lii4LiZCivguIrguLPguYDguJnguLXguKLguKMKK+C4iuC5iOC4s+C4m+C4reC4lAor4LiK4Liz4Lih4Liw4LiZ4Liy4LiUCivguIrguLPguKHguLDguYDguKXguLXguKLguIcKK+C4iuC4s+C4o+C5iOC4p+C4ogor4LiK4Liz4Lij4LiwCivguIrguYnguLPguKPguLHguYjguKcKK+C4iuC4s+C4o+C4uOC4lAor4LiK4Liz4LmA4Lij4LiyCivguIrguLPguYDguKPguLLguLAKK+C4iuC4s+C5geC4o+C4gQor4LiK4Liz4LmB4Lij4LiwCivguIrguLPguKXguLIKK+C4iuC4s+C5gOC4peC4t+C4reC4hwor4LiK4LmJ4Liz4LmA4Lil4Li34Lit4LiU4LiK4LmJ4Liz4Lir4LiZ4Lit4LiHCivguIrguLPguYHguKvguKXguLAKK+C4iuC4tAor4LiK4Li04LiHCivguIrguLTguYjguIcKK+C4iuC4tOC4h+C4hOC4oQor4LiK4Li04LiH4LiK4LmI4Lin4LiHCivguIrguLTguIfguIrguLHguIcKK+C4iuC4tOC4h+C4iuC4seC4mQor4LiK4Li04LiH4LiK4Lix4LiiCivguIrguLTguIfguIrguYnguLIKK+C4iuC4tOC4h+C4iuC5ieC4suC4iuC4suC4peC4tQor4LiK4Li04LiH4LiK4LmJ4Liy4Liq4Lin4Lij4Lij4LiE4LmMCivguIrguLTguIfguIrguLXguYgKK+C4iuC4tOC4h+C5gOC4iuC4tOC4hwor4LiK4Li04LiH4LiU4Lin4LiHCivguIrguLTguIfguJTguLXguIrguLTguIfguYDguJTguYjguJkKK+C4iuC4tOC4h+C4l+C4o+C4seC4nuC4ouC5jAor4LiK4Li04LiH4LmA4Lib4Lij4LiVCivguIrguLTguIfguJ7guKXguJoKK+C4iuC4tOC4h+C4quC4uOC4geC4geC5iOC4reC4meC4q+C5iOC4suC4oQor4LiK4Li04LiH4LmE4Lir4Lin4LiK4Li04LiH4Lie4Lij4Li04LiaCivguIrguLTguIfguK7guLfguYnguK0KK+C4iuC4tOC4iuC4sAor4LiK4Li04LiK4Li0CivguIrguLTguJPguJPguLAKK+C4iuC4tOC4lAor4LiK4Li04LmA4LiU4LiZ4LiX4Lij4Li14Lii4LmMCivguIrguLTguJUKK+C4iuC4tOC4lS0KK+C4iuC4tOC4leC4tOC4meC4l+C4o+C4teC4ouC5jAor4LiK4Li04LiZCivguIrguLTguYjguJkKK+C4iuC4tOC5ieC4mQor4LiK4Li04LiZ4LmC4LiVCivguIrguLTguJnguJrguLjguJXguKMKK+C4iuC4tOC5ieC4meC5gOC4reC4gQor4LiK4Li04LmC4LiZ4Lij4LiqCivguIrguLTguKEKK+C4iuC4tOC4oeC5geC4m+C4meC4i+C4tQor4LiK4Li04Lih4Lil4Liy4LiHCivguIrguLTguKLguLIKK+C4iuC4tOC4o+C4ky0KK+C4iuC4tOC4o+C4k+C4sAor4LiK4Li04Lij4LiT4Lix4LiE4LiE4Li0CivguIrguLTguKPguLAKK+C4iuC4tOC4p+C4q+C4sgor4LiK4Li04Lin4Lir4Liy4Liq4LiU4Lih4Lig4LmMCivguIrguLTguKrguLIKK+C4iuC4tQor4LiK4Li14LmICivguIrguLXguYkKK+C4iuC4teC5ieC4guC4suC4lAor4LiK4Li14LmJ4LmB4LiI4LiHCivguIrguLXguYnguIrguYjguK3guIcKK+C4iuC4teC4leC5ieC4mQor4LiK4Li14LmJ4LiV4Lix4LinCivguIrguLXguYnguJnguIHguJrguJnguJvguKXguLLguKLguYTguKHguYkKK+C4iuC4teC5ieC4meC4geC5gOC4m+C5h+C4meC4meC4gSDguIrguLXguYnguYTguKHguYnguYDguJvguYfguJnguYTguKHguYkKK+C4iuC4teC5ieC4meC4swor4LiK4Li14LmJ4LiZ4Li04LmJ4LinCivguIrguLXguYnguYHguJnguLAKK+C4iuC4teC4m+C4sOC4guC4suC4pwor4LiK4Li14LmA4Lib4Lil4Li34Lit4LiiCivguIrguLXguJzguLDguILguLLguKcKK+C4iuC4teC4nOC5ieC4suC4guC4suC4pwor4LiK4Li14Lid4Lij4Lix4LmI4LiHCivguIrguLXguJ4KK+C4iuC4teC4ni0KK+C4iuC4teC4nuC4iOC4owor4LiK4Li14Lie4Li04LiVCivguIrguLXguJ7guLTguJXguLHguIHguKnguLHguKIKK+C4iuC4teC4nuC4uOC4gQor4LiK4Li14Lif4Lit4LiHCivguIrguLXguYnguJ/guYnguLIKK+C4iuC4teC4oeC4t+C4lAor4LiK4Li14Lij4LiTLQor4LiK4Li14Lij4LiT4Lix4LiE4LiE4Li0CivguIrguLXguKPguLAKK+C4iuC4teC4peC5ieC4reC4oQor4LiK4Li14Lil4LiyCivguIrguLXguKXguLLguKcKK+C4iuC4teC4py0KK+C4iuC4teC4p+C5gOC4hOC4oeC4tQor4LiK4Li14Lin4LiH4LiE4LiVCivguIrguLXguKfguJvguKPguLDguKfguLHguJXguLQKK+C4iuC4teC4p+C5guC4peC4gQor4LiK4Li14Lin4Lin4Li04LiX4Lii4LiyCivguIrguLXguKfguLAKK+C4iuC4teC4p+C4seC4mQor4LiK4Li14Lin4Lix4LiZ4LiV4Lij4Liy4LiiCivguIrguLXguKfguLIKK+C4iuC4teC4p+C4suC4leC4oeC5jAor4LiK4Li14Lin4Liy4Lil4Lix4LiiCivguIrguLXguKfguLTguJUKK+C4iuC4teC4p+C4tOC4leC4iuC4teC4p+C4sgor4LiK4Li14Lin4Li04LiV4Lix4LiB4Lip4Lix4LiiCivguIrguLXguKfguLTguJXguLTguJnguJfguKPguLXguKLguYwKK+C4iuC4teC4p+C4tOC4mQor4LiK4Li14Lin4Li1CivguIrguLXguYnguKrguK3guIfguKrguJbguLLguJkKK+C4iuC4t+C4lAor4LiK4Li34LmI4LiZCivguIrguLfguYnguJkKK+C4iuC4t+C5iOC4meC4iuC4oQor4LiK4Li34LmI4LiZ4LiK4Lih4Lii4Li04LiZ4LiU4Li1CivguIrguLfguYjguJnguJrguLLguJkKK+C4iuC4t+C5iOC4meC4oeC4t+C5iOC4mQor4LiK4Li34LmI4LitCivguIrguLfguYnguK0KK+C4iuC4t+C5iOC4reC4leC4seC4pwor4LiK4Li34LmI4Lit4Lii4LmI4LitCivguIrguLfguYjguK3guYDguKXguYjguJkKK+C4iuC4t+C5iOC4reC4p+C5iOC4sgor4LiK4Li34LmI4Lit4Liq4LiB4Li44LilCivguIrguLfguYjguK3guYDguKrguLXguKLguIcKK+C4iuC4uAor4LiK4Li44LiBCivguIrguLjguIHguIrguLUKK+C4iuC4uOC4geC4iuC4uOC4oQor4LiK4Li44LmI4LiHCivguIrguLjguYnguIcKK+C4iuC4uOC4k+C4qy0KK+C4iuC4uOC4k+C4q+C4m+C4seC4geC4qeC5jAor4LiK4Li44LiUCivguIrguLjguJXguLQKK+C4iuC4uOC4leC4tOC4oeC4sgor4LiK4Li44LiZCivguIrguLjguJoKK+C4iuC4uOC4muC4iuC4teC4p+C4tOC4lQor4LiK4Li44Lia4LiK4Li5CivguIrguLjguJrguJXguLHguKcKK+C4iuC4uOC4muC4oeC4t+C4reC5gOC4m+C4tOC4mgor4LiK4Li44Lia4Lii4LmJ4Lit4LihCivguIrguLjguJrguYDguKXguLXguYnguKLguIcKK+C4iuC4uOC4muC4quC4o+C4hwor4LiK4Li44Lia4Lit4Liy4LiaCivguIrguLjguKEKK+C4iuC4uOC5iOC4oQor4LiK4Li44LmI4Lih4LmD4LiICivguIrguLjguKHguIrguJkKK+C4iuC4uOC5iOC4oeC4iuC4t+C5iOC4mQor4LiK4Li44LmI4Lih4LiK4Li34LmJ4LiZCivguIrguLjguKHguJfguLLguIfguKPguJbguYTguJ8KK+C4iuC4uOC4oeC4meC4uOC4oQor4LiK4Li44Lih4LiZ4Li44Lih4LiK4LiZCivguIrguLjguKHguJ7guKMKK+C4iuC4uOC4oeC4nuC4sgor4LiK4Li44Lih4LmA4Lie4LmH4LiUCivguIrguLjguKHguYHguJ7guKPguIEKK+C4iuC4uOC4oeC4o+C4uOC4oQor4LiK4Li44Lih4Liq4Liy4LiiCivguIrguLjguKHguKrguLLguKLguYLguJfguKPguKjguLHguJ7guJfguYwKK+C4iuC4uOC4oeC5geC4quC4hwor4LiK4Li44Lih4LmA4Lir4LmH4LiUCivguIrguLjguYjguKIKK+C4iuC4uOC5iOC4ouC5hgor4LiK4Li44Lil4Lih4Li44LiZCivguIrguLjguKXguLUKK+C4iuC4uOC4qeC4ky0KK+C4iuC4uOC4qeC4k+C4m+C4seC4geC4qeC5jAor4LiK4Li44Lip4LiT4LiwCivguIrguLkKK+C4iuC4ueC5iQor4LiK4Li54LiB4Lil4Li04LmI4LiZCivguIrguLnguITguK0KK+C4iuC4ueC5g+C4iAor4LiK4Li54LiK4Li14LieCivguIrguLnguKPguKoKK+C4iuC4ueC5guC4o+C4hwor4LiK4Li54LmJ4Liq4Liy4LinCivguIrguLnguKvguJnguYnguLLguIrguLnguJXguLIKK+C4iuC4ueC5ieC5gOC4q+C4meC4t+C4reC4guC4seC4meC4q+C4oeC4suC4gQor4LiK4Li54LmJ4LmA4Lir4LiZ4Li34Lit4Lic4Lix4LinCivguIrguLnguYnguYDguKvguJnguLfguK3guJzguLUKK+C5gOC4iuC5h+C4hAor4LmA4LiK4LmH4LiE4LiC4Li14LiU4LiE4Lij4LmI4Lit4LihCivguYDguIrguYfguITguYTguJvguKPguKnguJPguLXguKLguYwKK+C5gOC4iuC5ieC4hwor4LmA4LiK4LiH4LmA4Lil4LiHCivguYDguIrguYnguIfguKfguLHguJoKK+C5gOC4iuC5h+C4lAor4LmA4LiK4LmH4LiU4LiZ4LmJ4LizCivguYDguIrguYfguJTguKvguJnguYnguLIKK+C5gOC4iuC5h+C4lOC4q+C4oeC5ieC4rQor4LmA4LiK4LiZCivguYDguIrguYjguJkKK+C5gOC4iuC4ogor4LmA4LiK4Lii4LiK4LihCivguYDguIrguKPguLIKK+C5gOC4iuC4o+C4suC4sAor4LmA4LiK4Lij4Li04LiUCivguYDguIrguKXguIcKK+C5gOC4iuC4peC4ogor4LmA4LiK4Lil4Lii4Lio4Lix4LiB4LiU4Li04LmMCivguYDguIrguKXguKLguKjguLbguIEKK+C5gOC4iuC4peC5geC4peC5h+C4gQor4LmA4LiK4Lil4Li14Lii4LiHCivguYDguIrguKfguIcKK+C5gOC4iuC4qeC4kC0KK+C5gOC4iuC4qeC4kOC4sAor4LmA4LiK4Lip4LiQ4LiyCivguYDguIrguK0KK+C5gOC4iuC5iOC4sgor4LmA4LiK4LmJ4LiyCivguYDguIrguYjguLLguIrguYjguKfguIcKK+C5gOC4iuC5iOC4suC4i+C4t+C5ieC4rQor4LmA4LiK4LmJ4Liy4LiV4Lij4Li54LmICivguYDguIrguYjguLLguJbguLfguK3guKrguKfguJkKK+C5gOC4iuC5iOC4suC4l+C4o+C4seC4nuC4ouC5jAor4LmA4LiK4LmI4Liy4Lie4Lij4LiwCivguYDguIrguYnguLLguKHguLfguJQKK+C5gOC4iuC4suC4p+C5jAor4LmA4LiK4Liy4Lin4LiZ4LmMCivguYDguIrguLTguIcKK+C5gOC4iuC4tOC4h+C4geC4o+C4p+C4ogor4LmA4LiK4Li04LiH4LiB4Lij4Liy4LiZCivguYDguIrguLTguIfguIHguKUKK+C5gOC4iuC4tOC4h+C4geC4peC4reC4mQor4LmA4LiK4Li04LiH4LiK4Lix4LmJ4LiZCivguYDguIrguLTguIfguIrguLLguKIKK+C5gOC4iuC4tOC4h+C4i+C5ieC4reC4mQor4LmA4LiK4Li04LiH4LmA4LiU4Li04LiZCivguYDguIrguLTguIfguYDguJTguLXguKLguKcKK+C5gOC4iuC4tOC4h+C5gOC4lOC4teC5iOC4ouC4pwor4LmA4LiK4Li04LiH4LiV4Liw4LiB4Lit4LiZCivguYDguIrguLTguIfguJfguKPguIcKK+C5gOC4iuC4tOC4h+C5gOC4l+C4tOC4mQor4LmA4LiK4Li04LiH4Lih4Li44LihCivguYDguIrguLTguIfguYDguKfguLXguKLguJkKK+C5gOC4iuC4tOC4h+C4reC4o+C4o+C4lgor4LmA4LiK4Li04LiNCivguYDguIrguLTguJQKK+C5gOC4iuC4tOC4lOC4iOC4teC4mQor4LmA4LiK4Li04LiU4LiJ4Li04LmI4LiHCivguYDguIrguLTguJTguIrguLkKK+C5gOC4iuC4tOC4lOC4q+C4meC4seC4hwor4LmA4LiK4Li04LiU4Lir4LiZ4LmJ4Liy4LiK4Li54LiV4LiyCivguYDguIrguLTguJTguKvguLjguYjguJkKK+C5gOC4iuC4tOC5ieC4lQor4LmA4LiK4Li14LiiCivguYDguIrguLXguYnguKIKK+C5gOC4iuC4teC4ouC4hwor4LmA4LiK4Li14LmI4Lii4LiZCivguYDguIrguLXguYjguKLguJnguKvguKHguLLguIEKK+C5gOC4iuC4teC4ouC4mgor4LmA4LiK4Li14LmI4Lii4LihCivguYDguIrguLXguKLguKMKK+C5gOC4iuC4teC4ouC4o+C5jAor4LmA4LiK4Li14Lii4Lij4LiT4LmMCivguYDguIrguLXguKLguKcKK+C5gOC4iuC4teC5iOC4ouC4pwor4LmA4LiK4Li14LmI4Lii4Lin4LiK4Liy4LiNCivguYDguIrguLfguYjguK0KK+C5gOC4iuC4t+C5ieC4rQor4LmA4LiK4Li34Lit4LiBCivguYDguIrguLfguK3guIHguYDguILguLIKK+C5gOC4iuC4t+C4reC4geC4muC4suC4qAor4LmA4LiK4Li34LmI4Lit4LiHCivguYDguIrguLfguYjguK3guIfguIrguYnguLIKK+C5gOC4iuC4t+C5iOC4reC5g+C4iAor4LmA4LiK4Li34LmJ4Lit4LiK4Liy4LiV4Li0CivguYDguIrguLfguYnguK3guYDguIrguLTguI0KK+C5gOC4iuC4t+C4reC4lAor4LmA4LiK4Li34LmI4Lit4LiW4Li34LitCivguYDguIrguLfguK3guJkKK+C5gOC4iuC4t+C4reC4meC5geC4igor4LmA4LiK4Li34LmJ4Lit4LmA4Lie4Lil4Li04LiHCivguYDguIrguLfguYjguK3guJ/guLHguIcKK+C5gOC4iuC4t+C5ieC4reC5hOC4nwor4LmA4LiK4Li34LmI4Lit4LihCivguYDguIrguLfguYjguK3guKHguLfguK0KK+C5gOC4iuC4t+C5ieC4reC5hOC4oeC5iOC4l+C4tOC5ieC4h+C5geC4luC4pwor4LmA4LiK4Li34LmJ4Lit4Lij4LiyCivguYDguIrguLfguYnguK3guYLguKPguIQKK+C5gOC4iuC4t+C5iOC4reC4p+C4seC4mQor4LmA4LiK4Li34LmJ4Lit4Liq4Liy4LiiCivguYDguIrguLfguYnguK3guKvguKHguLHguIEKK+C5geC4igor4LmB4LiK4LmICivguYHguIrguYjguIcKK+C5geC4iuC5iOC4h+C4iuC4seC4geC4q+C4seC4geC4geC4o+C4sOC4lOC4ueC4gQor4LmB4LiK4LmI4LiH4LiZ4LmJ4LizCivguYHguIrguIfguKHguLIKK+C5geC4iuC4muC5iuC4p+C4ogor4LmB4LiK4LmI4LmA4Lia4LmJ4LiyCivguYHguIrguYjguKEKK+C5geC4iuC5iOC4oeC4iuC5ieC4reC4ogor4LmB4LiK4LmI4Lih4LiK4Li34LmI4LiZCivguYHguIrguYjguYDguKLguYfguJkKK+C5geC4iuC4o+C5jAor4LmB4LiK4Lij4LiHCivguYHguIrguKXguYjguKEKK+C5geC4iuC5iOC4reC4tOC5iOC4oQor4LmB4LiK4LiwCivguYLguIrguIEKK+C5guC4iuC4geC5hgor4LmC4LiK4LiB4LmC4LiK4LiZCivguYLguIrguIQKK+C5guC4iuC4h+C5guC4peC4hwor4LmC4LiK4LiU4LiBCivguYLguIrguJTguLbguIEKK+C5guC4iuC4lQor4LmC4LiK4LiV4LiBCivguYLguIrguJXguLQKK+C5guC4iuC4leC4tC0KK+C5guC4iuC4leC4tOC4gS0KK+C5guC4iuC4leC4tOC4iuC5iOC4p+C4hwor4LmC4LiK4LiV4Li04Lij4LiqCivguYLguIrguJkKK+C5guC4iuC4oeC5guC4o+C4oQor4LmC4LiK4LiiCivguYLguIrguKLguIfguIHguLLguKMKK+C5guC4iuC4ouC4iuC4suC4ogor4LmC4LiK4Lii4LiV4Li04LiqCivguYLguIrguKPguKEKK+C5guC4iuC4p+C5jAor4LmC4LiK4LmC4Lir4LinCivguYPguIrguYgKK+C5g+C4iuC5iQor4LmD4LiK4LmJ4LiB4Lij4Lij4LihCivguYPguIrguYnguYTguJTguYkKK+C5g+C4iuC5ieC5gOC4meC4t+C5ieC4rQor4LmD4LiK4LmJ4Lia4LiZCivguYPguIrguYnguYPguJoKK+C5g+C4iuC5ieC5gOC4o+C4t+C4rQor4LmD4LiK4LmJ4Liq4Lit4LiiCivguYTguIoKK+C5hOC4iuC4meC4sAor4LmE4LiK4LiiCivguYTguIrguKItCivguYTguIrguKLguYDguKDguJcKK+C5hOC4iuC5guC4ogor4LiLCivguIvguIEKK+C4i+C5iOC4gQor4LiL4LiH4LiU4LizCivguIvguYjguIfguK7guLfguYnguK0KK+C4i+C4h+C5ieC4sgor4LiL4LiUCivguIvguJkKK+C4i+C5iOC4mQor4LiL4LmJ4LiZCivguIvguJoKK+C4i+C4muC5gOC4i+C4sgor4LiL4LihCivguIvguKHguIvguLLguJkKK+C4i+C4o+C4reC4geC4i+C4o+C4seC4hwor4LiL4Lin4LiUCivguIvguKfguJTguYDguIsKK+C4i+C4p+C4lOC4l+C4o+C4hwor4LiL4Lin4LiZCivguIvguKfguJnguYDguIsKK+C4i+C4p+C4ogor4LiL4LitCivguIvguK3guIEKK+C4i+C4reC4geC4i+C4reC4mQor4LiL4Lit4LiB4LiL4Lix4LiHCivguIvguK3guIHguYHguIvguIEKK+C4i+C4reC4hwor4LiL4LmI4Lit4LiHCivguIvguYjguK3guIfguYYKK+C4i+C5ieC4reC4hwor4LiL4LmI4Lit4LiH4LmB4LiL4LmI4LiHCivguIvguK3guIfguJ7guKXguLkKK+C4i+C4reC4h+C4oeC4t+C4rQor4LiL4Lit4LiH4LmB4Lih4LinCivguIvguYnguK3guIfguYHguKHguKcKK+C4i+C5iOC4reC4h+C4quC4uOC4oQor4LiL4LmI4Lit4LiH4LmA4Liq4LieCivguIvguK3guIfguKvguLLguIcKK+C4i+C4reC5geC4iwor4LiL4LmJ4Lit4LmB4LiL4LmJCivguIvguK3guJkKK+C4i+C5iOC4reC4mQor4LiL4LmJ4Lit4LiZCivguIvguYnguK3guJnguIHguKUKK+C4i+C5iOC4reC4meC4geC4peC4tOC5iOC4mQor4LiL4LmI4Lit4LiZ4LmA4LiH4Li34LmI4Lit4LiZCivguIvguYnguK3guJnguIvguLHguJoKK+C4i+C5iOC4reC4meC4l+C4o+C4suC4ogor4LiL4LmI4Lit4LiZ4Lij4Li54LibCivguIvguYjguK3guJnguKvguLIKK+C4i+C4reC4oQor4LiL4LmI4Lit4LihCivguIvguYnguK3guKEKK+C4i+C5ieC4reC4oeC4hOC5ieC4suC4hwor4LiL4Lit4Lih4LiL4LmI4LitCivguIvguYnguK3guKHguIvguLHguIEKK+C4i+C5iOC4reC4oeC5geC4i+C4oQor4LiL4LmI4Lit4Lih4LmB4Lib4Lil4LiHCivguIvguYnguK3guKHguJ7guKLguLLguJkKK+C4i+C5ieC4reC4oeC4nuC4p+C4mQor4LiL4LmJ4Lit4Lih4LmD4Lir4LiN4LmICivguIvguK3guKIKK+C4i+C4reC4ouC4nOC4oQor4LiL4Lit4LiqCivguIvguLDguIvguKPguYnguLLguKcKK+C4i+C4sOC4i+C5iOC4reC4hwor4LiL4Liw4LiL4Lit4LmA4LiL4Li14LiiCivguIvguLDguIvguLTguIHguIvguLDguYHguIsKK+C4i+C4sOC4i+C4tOC4mgor4LiL4Liw4LmA4LiL4Liy4LiwCivguIvguLDguYDguIvguLXguKLguJoKK+C4i+C4seC4gQor4LiL4Lix4LiB4LiL4LmJ4Lit4LihCivguIvguLHguIHguYTguIvguYkKK+C4i+C4seC4geC4n+C4reC4gQor4LiL4Lix4LiB4Liq4LmJ4Liy4LinCivguIvguLHguIHguYHguKvguYnguIcKK+C4i+C4seC4hwor4LiL4Lix4LmJ4LiHCivguIvguLHguIfguIHguLDguJXguLLguKIKK+C4i+C4seC4h+C5geC4i+C4pwor4LiL4Lix4LiH4LiV4Liy4LiiCivguIvguLHguJQKK+C4i+C4seC4lOC4guC5ieC4suC4p+C4quC4suC4owor4LiL4Lix4LiU4LmA4LiLCivguIvguLHguJTguJfguK3guJQKK+C4i+C4seC4lOC4meC5ieC4swor4LiL4Lix4LiU4Lii4LiyCivguIvguLHguYnguJkKK+C4i+C4seC4mgor4LiL4Lix4Lia4LiC4LiZ4Li44LiZCivguIvguLHguJrguIvguYnguK3guJkKK+C4i+C4seC4muC4i+C4suC4mgor4LiL4Lix4Lia4LiL4Li14LmICivguIvguLHguJrguYPguJkKK+C4i+C4seC4muC4nuC4o+C4sOC4nuC4seC4geC4leC4o+C5jAor4LiL4Lix4Lia4Lih4Lix4LiZCivguIvguLHguKEKK+C4i+C4seC4peC4n+C4sgor4LiL4Lix4LmJ4LinCivguIvguLIKK+C4i+C5iOC4sgor4LiL4Liy4LiBCivguIvguLLguIHguJTguLbguIHguJTguLPguJrguKPguKPguJ7guYwKK+C4i+C4suC4geC4qOC4ngor4LiL4Liy4LiHCivguIvguYjguLLguIcKK+C4i+C4suC4lAor4LiL4Liy4LiZCivguIvguYjguLLguJkKK+C4i+C5iOC4suC4meC5gOC4i+C5h+C4mQor4LiL4Liy4Lia4LiL4LmI4Liy4LiZCivguIvguLLguJrguIvguLbguYnguIcKK+C4i+C5iOC4suC5guC4muC4sAor4LiL4Liy4LmB4Lih4LmA4Lij4Li14Lii4LihCivguIvguYnguLLguKIKK+C4i+C4suC4peC4suC5gOC4m+C4sgor4LiL4Liy4LinCivguIvguLLguKfguJnguYnguLMKK+C4i+C4suC4p+C5gOC4quC4teC4ouC4hwor4LiL4LmI4Liy4Lir4Lij4Li04LmI4LihCivguIvguYnguLMKK+C4i+C5ieC4s+C4i+C5ieC4reC4mQor4LiL4LmJ4Liz4LiL4Liy4LiBCivguIvguYnguLPguYDguJXguLTguKEKK+C4i+C5ieC4s+C4o+C5ieC4suC4ogor4LiL4LmJ4Liz4Liq4Liy4LihCivguIvguLQKK+C4i+C4tOC4gQor4LiL4Li04LiB4LmGCivguIvguLTguIHguIvguLXguYkKK+C4i+C4tOC4geC5geC4i+C5h+C4gQor4LiL4Li04LiB4Liy4Lij4LmMCivguIvguLTguIfguYLguITguJnguLIKK+C4i+C4tOC5iOC4mQor4LiL4Li04LiZ4LiZ4Liy4Lih4Li04LiBCivguIvguLTguJnguYHguKoKK+C4i+C4tOC4mgor4LiL4Li04Lia4LmGCivguIvguLTguJrguIvguLHguJoKK+C4i+C4tOC4mwor4LiL4Li04Lif4Li04Lil4Li04LiqCivguIvguLTguKXguLTguITguK3guJkKK+C4i+C4tOC4pwor4LiL4Li1CivguIvguLXguYgKK+C4i+C4teC4gQor4LiL4Li14LmI4LmC4LiE4Lij4LiHCivguIvguLXguYnguIvguK3guJkKK+C4i+C4teC5gOC4i+C4teC4ouC4oQor4LiL4Li14LiUCivguIvguLXguJTguYDguIvguLXguKLguKcKK+C4i+C4teC4meC4reC4mQor4LiL4Li14Lib4LmI4Liy4LiiCivguIvguLXguYDguKHguJnguJXguYwKK+C4i+C4teC5gOC4o+C4teC4ouC4oQor4LiL4Li14Lil4Li14LmA4LiZ4Li14Lii4LihCivguIvguLbguIEKK+C4i+C4tuC4hwor4LiL4Li24LmI4LiHCivguIvguLbguYnguIcKK+C4i+C4tuC5iOC4h+C4q+C4meC5ieC4sgor4LiL4Li24LihCivguIvguLbguKHguIHguLDguJfguLfguK0KK+C4i+C4tuC4oeC4i+C4suC4mgor4LiL4Li24Lih4LiX4Lij4Liy4LiaCivguIvguLfguYjguK0KK+C4i+C4t+C5iOC4reC5hgor4LiL4Li34LmJ4LitCivguIvguLfguYnguK3guILguLLguKIKK+C4i+C4t+C5ieC4reC4hOC4p+C4suC4ouC4q+C4meC5ieC4suC4meC4siDguIvguLfguYnguK3guJzguYnguLLguKvguJnguYnguLLguJXguKPguLjguKkKK+C4i+C4t+C5ieC4reC4h+C4seC4p+C4q+C4meC5ieC4suC4meC4siDguIvguLfguYnguK3guJzguYnguLLguKvguJnguYnguLLguKvguJnguLLguKcKK+C4i+C4t+C5iOC4reC4leC4o+C4hwor4LiL4Li34LmJ4Lit4Lij4Liz4LiE4Liy4LiNCivguIvguLfguYnguK3guKPguLnguYkKK+C4i+C4t+C5iOC4reC4quC4seC4leC4ouC5jAor4LiL4Li34LmJ4Lit4Lir4LiZ4LmJ4LiyCivguIvguLfguYjguK3guYDguKvguKHguLfguK3guJnguYHguKHguKfguJnguK3guJnguKvguKfguJQKK+C4i+C4uOC4gQor4LiL4Li44LiB4LiL4LiZCivguIvguLjguIHguIvguYjguK3guJkKK+C4i+C4uOC4geC4i+C4tOC4gQor4LiL4Li44LiHCivguIvguLjguJkKK+C4i+C4uOC4mgor4LiL4Li44Lia4LiL4Li04LiaCivguIvguLjguJrguIvguLnguYgKK+C4i+C4uOC4mwor4LiL4Li44LmI4LihCivguIvguLjguYnguKEKK+C4i+C4uOC5ieC4oeC4geC4o+C4sOC4leC5iOC4suC4ogor4LiL4Li44LmI4Lih4LiE4LihCivguIvguLjguYjguKHguIvguYjguLLguKEKK+C4i+C4uOC4oeC5geC4i+C4pwor4LiL4Li44LmI4Lih4LmA4Liq4Li14Lii4LiHCivguIvguLjguKIKK+C4i+C4ueC5iAor4LiL4Li54LmI4LmGCivguIvguLnguYjguIHguLHguYnguJnguKPguLHguYnguKfguYTguIvguKHguLLguJkKK+C4i+C4ueC5guC4hOC4o+C4qgor4LiL4Li54LmI4LiL4LmI4LiyCivguIvguLnguJQKK+C4i+C4ueC5ieC4lAor4LiL4Li54LiU4LiL4Liy4LiUCivguIvguLnguJoKK+C5gOC4iwor4LmA4LiL4LmH4LiBCivguYDguIvguYHguITguJnguJXguYwKK+C5gOC4i+C5h+C4hwor4LmA4LiL4LmI4LiHCivguYDguIvguYnguIcKK+C5gOC4i+C5h+C4h+C5geC4i+C5iAor4LmA4LiL4LiL4Lix4LiHCivguYDguIvguJUKK+C5gOC4i+C4mQor4LmA4LiL4LmH4LiZCivguYDguIvguYjguJkKK+C5gOC4i+C4meC4leC4tOC4geC4o+C4seC4oQor4LmA4LiL4LiZ4LiV4Li04LmA4LiB4Lij4LiUCivguYDguIvguJnguJXguLTguYDguKHguJXguKMKK+C5gOC4i+C4meC4leC4tOC4peC4tOC4leC4owor4LmA4LiL4LmI4LiZ4LmA4Lir4Lil4LmJ4LiyCivguYDguIvguJvguLHguIHguJXguLDguIHguKPguYnguK0KK+C5gOC4i+C4o+C4sgor4LmA4LiL4Lij4Liy4LiwCivguYDguIvguKPguLjguYjguKEKK+C5gOC4i+C4peC5gOC4i+C4teC4ouC4qgor4LmA4LiL4Lil4Lil4LmMCivguYDguIvguKXguKXguYzguJfguLjguJXguLTguKLguKDguLnguKHguLQKK+C5gOC4i+C4peC4peC5jOC4m+C4kOC4oeC4oOC4ueC4oeC4tAor4LmA4LiL4Lil4Lil4Li54Lil4Lit4Lii4LiU4LmMCivguYDguIvguKXguKXguLnguYLguKXguKoKK+C5gOC4i+C5iOC4rQor4LmA4LiL4LmI4Lit4LiL4LmI4LiyCivguYDguIvguK3guKPguYzguYLguITguYDguJnguLXguKLguKEKK+C5gOC4i+C4reC4sAor4LmA4LiL4LiyCivguYDguIvguYnguLLguIvguLXguYkKK+C5gOC4i+C4suC4sAor4LmA4LiL4Liy4Liw4Lil4Liy4LiiCivguYDguIvguLTguIcKK+C5gOC4i+C4tOC5ieC4hwor4LmA4LiL4Li14Lii4LiZCivguYDguIvguLXguKLguJoKK+C5gOC4i+C4teC4ouC4oeC4i+C4tQor4LmA4LiL4Li14Lii4LinCivguYDguIvguLXguYjguKLguKcKK+C5gOC4i+C4teC5iOC4ouC4p+C4geC4suC4hwor4LmA4LiL4Li34LmI4Lit4LiHCivguYHguIsKK+C5geC4i+C5iAor4LmB4LiL4LmH4LiB4LiE4Liy4Lij4Li04LiZCivguYHguIvguYfguIHguITguLLguKPguLTguJnguYLguIvguYDguJTguLXguKLguKEKK+C5geC4i+C4hwor4LmB4LiL4LiH4LmB4LiL4LinCivguYHguIvguYjguIvguYnguK3guIcKK+C5geC4i+C4lAor4LmB4LiL4LiU4LmGCivguYHguIvguJoKK+C5geC4i+C4oQor4LmB4LiL4Lii4Li04LiUCivguYHguIvguYjguKcKK+C5geC4i+C4sAor4LmC4LiLCivguYLguIvguYgKK+C5guC4i+C4gQor4LmC4LiL4LmI4LiHCivguYLguIvguIfguYLguILguJTguIcKK+C5guC4i+C4i+C4seC4lOC5guC4i+C5gOC4iwor4LmC4LiL4LmA4LiLCivguYLguIvguJTguLIKK+C5guC4i+C4lOC4suC5geC4nOC4lOC5gOC4nOC4sgor4LmC4LiL4LiU4Liy4LmE4LifCivguYLguIvguYDguJTguLXguKLguKEKK+C5guC4i+C5gOC4lOC4teC4ouC4oeC4hOC4suC4o+C5jOC4muC4reC5gOC4meC4lQor4LmC4LiL4LmA4LiU4Li14Lii4Lih4LiL4Lix4Lil4LmA4Lif4LiVCivguYLguIvguYDguJTguLXguKLguKHguYTguIvguITguKXguLLguYDguKHguJUKK+C5guC4i+C5gOC4lOC4teC4ouC4oeC5hOC4ruC5guC4lOC4o+C5gOC4iOC4meC4geC4peC4ueC4l+C4suC5gOC4oeC4lQor4LmC4LiL4LmA4LiU4Li14Lii4Lih4LmE4Liu4LmC4LiU4Lij4LmA4LiI4LiZ4LiE4Liy4Lij4LmM4Lia4Lit4LmA4LiZ4LiVCivguYLguIvguYDguJTguLXguKLguKHguYTguK7guYLguJTguKPguYDguIjguJnguIvguLHguKXguYDguJ/guJUKK+C5guC4i+C4oQor4LmC4LiL4Lij4LihCivguYLguIvguKPguKHguJvguKPguLDguJfguKLguJQKK+C5guC4i+C4o+C4oeC5guC4o+C4oQor4LmC4LiL4Lij4Lih4Lio4Lix4Liq4LiV4Lij4Liy4Lin4Li44LiYCivguYLguIvguKXguLIKK+C5hOC4iwor4LmE4LiL4LmJCivguYTguIvguYDguIHguLTguKUKK+C5hOC4i+C5guC4hOC4peC4mQor4LmE4LiL4LiZ4LmMCivguYTguIvguKLguLLguYTguJnguJTguYwKK+C5hOC4i+C4o+C5iQor4LmE4LiL4LmA4Lij4LiZCivguYTguIvguYLguKUKK+C4jAor4LiM4Liy4LiZCivguIzguLLguJvguJktCivguIzguLLguJvguJnguIHguLTguIgKK+C4jOC4suC4m+C4meC4quC4luC4suC4mQor4LmA4LiM4LitCivguYDguIzguK3guYDguK3guKEKK+C4jQor4LiN4LiN4LmI4Liy4LiiCivguI3guKfguJkKK+C4jeC4seC4leC4leC4tAor4LiN4Liy4LiTCivguI3guLLguJMtCivguI3guLLguJPguJfguLHguKrguJnguLAKK+C4jeC4suC4k+C4p+C4tOC4l+C4ouC4sgor4LiN4Liy4LiT4Lio4Liy4Liq4LiV4Lij4LmMCivguI3guLLguJXguLQKK+C4jeC4suC4leC4tC0KK+C4jeC4suC4leC4tOC4geC4sgor4LiN4Liy4LiV4Li04LiU4Li14LiB4Lix4LiZCivguI3guLLguJXguLTguYDguKDguJcKK+C4jeC4tOC4mgor4LiN4Li14LmICivguI3guLXguYjguJvguLjguYjguJkKK+C5gOC4jeC4ouC4mOC4o+C4o+C4oQor4LmE4LiN4Lii4LiY4Lij4Lij4LihCivguI4KK+C4juC4teC4geC4sgor4LiPCivguJAKK+C4kOC4geC4seC4lAor4LiQ4Liy4LiB4Li54LijCivguJDguLLguJkKK+C4kOC4suC4mS0KK+C4kOC4suC4meC4geC4o+C4k+C5jAor4LiQ4Liy4LiZ4LmA4LiC4Li14Lii4LiHCivguJDguLLguJnguYDguIrguLTguIfguJrguLLguJXguKMKK+C4kOC4suC4meC5gOC4l+C5ieC4suC4quC4tOC4h+C4q+C5jAor4LiQ4Liy4LiZ4Lia4Lix4LiX4Lih4LmMCivguJDguLLguJnguKPguLLguIEKK+C4kOC4suC4meC4quC4tOC4h+C4q+C5jAor4LiQ4Liy4LiZ4LiwCivguJDguLLguJnguLHguJnguJTguKMKK+C4kOC4suC4meC4suC4meC4uOC4geC4o+C4oQor4LiQ4Liy4LiZ4Liy4LiZ4Li44Lij4Li54LibCivguJDguLLguJnguLLguJnguLjguKjguLHguIHguJTguLTguYwKK+C4kOC4suC4meC4teC4ouC4sAor4LiQ4Liy4Lib4LiZLQor4LiQ4Liy4Lib4LiZ4LiyCivguJDguLLguKLguLUKK+C4kOC4tOC4lQor4LiQ4Li04LiV4Li0CivguJEKK+C4keC4seC4h+C4qi0KK+C4keC4suC4gS0KK+C4keC4suC4q+C4gQor4LiR4Liy4Lir4LiwCivguJIKK+C5gOC4kuC5iOC4sgor4LmA4LiS4LmI4Liy4LmB4LiB4LmICivguYDguJLguYjguLLguKvguLHguKfguIfguLkKK+C4kwor4LiT4Lij4LiH4LiE4LmMCivguYDguJPguKMKK+C5gOC4k+C4o+C4q+C4meC5ieC4suC5hOC4nwor4LmA4LiT4Lij4Lir4Liy4LiH4LiZ4Liy4LiECivguJQKK+C4lOC4gQor4LiU4LiB4LiU4Li34LmI4LiZCivguJTguIcKK+C4lOC5ieC4hwor4LiU4LiH4LiU4Liy4LiZCivguJTguIfguJTguLTguJoKK+C4lOC4h+C4lOC4tuC4gQor4LiU4LiH4Lin4Liy4LiiCivguJTguYnguJkKK+C4lOC5ieC4meC4lOC4seC5ieC4mQor4LiU4LiZ4LmC4LiU4LmICivguJTguJnguJXguKPguLUKK+C4lOC5ieC4meC4luC4reC4ouC4q+C4peC4seC4hwor4LiU4LiZ4LiiCivguJTguJnguLHguKIKK+C4lOC4meC4uAor4LiU4LiZ4Li44LiKCivguJTguJnguLkKK+C4lOC4muC4seC4quC4p+C4tOC4mQor4LiU4Lia4Lix4Liq4Lin4Li1CivguJTguKEKK+C4lOC4oeC5hOC4owor4LiU4LijCivguJTguKPguIfguITguYwKK+C4lOC4o+C4k+C4tQor4LiU4Lij4LiY4Liy4LiZCivguJTguKPguKPguIrguJnguLUKK+C4lOC4o+C4o+C4iuC4meC4teC4q+C4seC4geC5gOC4qwor4LiU4Lij4Liy4Lif4LiV4LmMCivguJTguKPguLgKK+C4lOC4o+C4uOC4kwor4LiU4Lij4Li44LiT4Liy4LiT4Lix4LiV4Li0CivguJTguKPguLjguJPguLUKK+C4lOC4pOC4luC4tQor4LiU4LilCivguJTguKUtCivguJTguKXguYPguIgKK+C4lOC4peC4muC4seC4meC4lOC4suC4pQor4LiU4Lil4Lig4Liy4LiECivguJTguKfguIcKK+C4lOC5ieC4p+C4hwor4LiU4Lin4LiH4LmB4LiB4LmJ4LinCivguJTguKfguIfguYPguIgKK+C4lOC4p+C4h+C5gOC4lOC4t+C4reC4meC4m+C4o+C4sOC4lOC4seC4muC4lOC4suC4pwor4LiU4Lin4LiH4LiV4LiyCivguJTguKfguIfguKrguKHguKMKK+C4lOC5ieC4p+C4h+C5guC4quC4mQor4LiU4Lin4LiICivguJTguKfguJQKK+C4lOC5iOC4p+C4mQor4LiU4LmJ4Lin4LiZCivguJTguYnguKfguKHguYDguJTguLXguYnguKLguKEKK+C4lOC5ieC4p+C4ogor4LiU4LmJ4Lin4Lii4Lin4LmI4LiyCivguJTguK3guIEKK+C4lOC4reC4geC4geC4o+C4sOC4muC4reC4gQor4LiU4Lit4LiB4LiB4Liw4LiX4Li34LitCivguJTguK3guIHguIHguYnguLLguJkKK+C4lOC4reC4geC4guC5ieC4suC4p+C5g+C4q+C4oeC5iAor4LiU4Lit4LiB4LiI4Lit4LiBCivguJTguK3guIHguIjguLHguJkKK+C4lOC4reC4geC4iOC4seC4meC4l+C4meC5jAor4LiU4Lit4LiB4LiI4Li04LiBCivguJTguK3guIHguIrguJnguJXguYnguJkKK+C4lOC4reC4geC4lOC4seC5ieC4pwor4LiU4Lit4LiB4LiU4LmJ4Liy4LiiCivguJTguK3guIHguJTguLTguJkKK+C4lOC4reC4geC4luC4p+C4suC4ouC4nuC4o+C4sAor4LiU4Lit4LiB4LiX4Lit4LiHCivguJTguK3guIHguJnguYnguLPguJzguLbguYnguIcKK+C4lOC4reC4geC4muC4seC4pwor4LiU4Lit4LiB4Lia4Li44LiBCivguJTguK3guIHguYDguJrguLXguYnguKIKK+C4lOC4reC4geC5gOC4muC4teC5ieC4ouC4l+C4muC4leC5ieC4mQor4LiU4Lit4LiB4Lie4Li04LiB4Li44Lil4Lij4LmI4Lin4LiHCivguJTguK3guIHguJ/guYnguK3guJkKK+C4lOC4reC4geC4n+C5ieC4sgor4LiU4Lit4LiB4Lih4Liw4LiC4Liy4LihCivguJTguK3guIHguKHguLDguJXguLLguJQKK+C4lOC4reC4geC5hOC4oeC5iQor4LiU4Lit4LiB4LmE4Lih4LmJ4LiI4Lix4LiZ4LiX4LiZ4LmMCivguJTguK3guIHguYTguKHguYnguIjguLXguJkKK+C4lOC4reC4geC5hOC4oeC5ieC4iOC4teC4mgor4LiU4Lit4LiB4LmE4Lih4LmJ4LmA4LiI4LmJ4LiyCivguJTguK3guIHguYTguKHguYnguJXguLLguJQKK+C4lOC4reC4geC5hOC4oeC5ieC4l+C4sOC5gOC4pQor4LiU4Lit4LiB4LmE4Lih4LmJ4LmA4LiX4Li14Lii4LiZCivguJTguK3guIHguYTguKHguYnguYTguJfguKMKK+C4lOC4reC4geC5hOC4oeC5ieC4meC5ieC4swor4LiU4Lit4LiB4LmE4Lih4LmJ4Lie4Lin4LiHCivguJTguK3guIHguYTguKHguYnguJ7guLjguYjguKEKK+C4lOC4reC4geC5hOC4oeC5ieC5gOC4nuC4peC4tOC4hwor4LiU4Lit4LiB4LmE4Lih4LmJ4LmE4LifCivguJTguK3guIHguYTguKHguYnguKPguYjguKfguIcKK+C4lOC4reC4geC5hOC4oeC5ieC4o+C4uOC5iOC4hwor4LiU4Lit4LiB4LmE4Lih4LmJ4LmE4Lir4LinCivguJTguK3guIHguKPguLHguIEKK+C4lOC4reC4geC4peC4s+C4lOC4p+C4mQor4LiU4Lit4LiB4Lil4Liz4LmC4Lie4LiHCivguJTguK3guIHguYDguKXguYfguJoKK+C4lOC4reC4geC4quC4o+C5ieC4reC4ogor4LiU4Lit4LiB4Lir4Lih4Liy4LiBCivguJTguK3guIHguKvguLTguJkKK+C4lOC4reC4geC4reC4suC4pwor4LiU4Lit4LiB4Lit4Liy4Lin4LmB4LiU4LiHCivguJTguK3guIcKK+C4lOC5iOC4reC4h+C5hgor4LiU4LmJ4Lit4LiHCivguJTguYnguK3guIfguYYKK+C4lOC4reC4h+C4ieC4suC4ogor4LiU4Lit4LiH4LiU4Li24LiHCivguJTguK3guIfguKLguLIKK+C4lOC4reC4h+C4q+C4suC4ogor4LiU4Lit4LiUCivguJTguK3guJkKK+C4lOC5iOC4reC4mQor4LiU4Lit4LihCivguJTguYjguK3guKEKK+C4lOC5ieC4reC4oQor4LiU4Lit4LiiCivguJTguYnguK3guKIKK+C4lOC4reC4peC4peC4suC4o+C5jAor4LiU4LiwCivguJTguLDguYLguJXguYrguLDguKLguLjguJXguLTguJjguKPguKPguKEKK+C4lOC4sOC4q+C4oeC4seC4hwor4LiU4Lix4LiBCivguJTguLHguIHguITguK0KK+C4lOC4seC4geC4lOC4mQor4LiU4Lix4LiB4LiU4Liy4LiZCivguJTguLHguIHguYDguJTguLXguYnguKIKK+C4lOC4seC4geC5geC4lOC5iQor4LiU4Lix4LiB4Lif4Lix4LiHCivguJTguLHguIHguKnguIEKK+C4lOC4seC4geC4qeC4kwor4LiU4Lix4LiB4Lip4LiT4Li1CivguJTguLHguIHguKnguLHguJkKK+C4lOC4seC4hwor4LiU4Lix4LmI4LiHCivguJTguLHguYnguIcKK+C4lOC4seC4h+C4iOC4o+C4tOC4hwor4LiU4Lix4LmJ4LiH4LmA4LiU4Li04LihCivguJTguLHguIfguJnguLHguYnguJkKK+C4lOC4seC4h+C4meC4teC5iQor4LiU4Lix4LiH4Lij4Li34LitCivguJTguLHguIfguKTguYUKK+C4lOC4seC4h+C4q+C4meC4tuC5iOC4hwor4LiU4Lix4LiK4LiZ4Li1CivguJTguLHguJQKK+C4lOC4seC4lOC4iOC4o+C4tOC4lQor4LiU4Lix4LiU4LiU4Lix4LmJ4LiZCivguJTguLHguJTguJXguJkKK+C4lOC4seC4lOC4m+C4peC4seC4gQor4LiU4Lix4LiU4LmB4Lib4Lil4LiHCivguJTguLHguJTguKrguLHguJnguJTguLLguJkKK+C4lOC4seC4leC4iuC5jAor4LiU4Lix4LiZCivguJTguLHguYnguJkKK+C4lOC4seC4meC4l+C4uOC4o+C4seC4hwor4LiU4Lix4LmJ4LiZ4LmA4Lih4LiGCivguJTguLHguJnguYDguKvguLTguKEKK+C4lOC4seC4mgor4LiU4Lix4Lia4LiC4Lix4LiZ4LiY4LmMCivguJTguLHguJrguYDguITguKPguLfguYjguK3guIcKK+C4lOC4seC4muC4iOC4tOC4lQor4LiU4Lix4Lia4LiK4Li14LieCivguJTguLHguJrguKXguKEKK+C4lOC4seC4oeC4nuC5jAor4LiU4Lix4LmJ4Lin4LmA4LiU4Li14LmJ4LiiCivguJTguLHguKrguIHguKMKK+C4lOC4seC4quC4geC4o+C4tQor4LiU4LiyCivguJTguYjguLIKK+C4lOC4suC4gQor4LiU4LmI4Liy4LiHCivguJTguYnguLLguIcKK+C4lOC5iOC4suC4h+C4l+C4seC4muC4l+C4tOC4oQor4LiU4LmI4Liy4LiH4Lie4Lij4LmJ4Lit4LiiCivguJTguLLguJQKK+C4lOC4suC4lOC5hgor4LiU4Liy4LiU4LiV4Liw4LiB4Lix4LmI4LinCivguJTguLLguJTguJ/guYnguLIKK+C4lOC4suC4lOC4suC4qQor4LiU4Liy4LiU4LizCivguJTguYjguLLguJfguK0KK+C4lOC4suC4mQor4LiU4LmI4Liy4LiZCivguJTguYnguLLguJkKK+C4lOC5ieC4suC4meC5hOC4oeC5iQor4LiU4LmJ4Liy4LiZ4Lir4LiZ4LmJ4LiyCivguJTguLLguJoKK+C4lOC4suC4muC5gOC4h+C4tOC4mQor4LiU4Liy4Lia4Lib4Lil4Liy4Lii4Lib4Li34LiZCivguJTguLLguJrguKXguLLguKcKK+C4lOC4suC4muC4qgor4LiU4Liy4Lia4Liq4Lit4LiH4LiE4LihCivguJTguLLguKEKK+C4lOC5ieC4suC4oQor4LiU4LmJ4Liy4Lih4LiI4Li04LmJ4LinCivguJTguLLguKHguJ4tCivguJTguLLguKHguJ7guYwKK+C4lOC4suC4oeC4nuC4p+C4o+C4o+C4kwor4LiU4Liy4Lih4LijCivguJTguLLguKIKK+C4lOC5ieC4suC4ogor4LiU4LmJ4Liy4Lii4LiL4Lix4LiHCivguJTguYnguLLguKLguJTguLTguJoKK+C4lOC4suC4owor4LiU4Liy4Lij4LiBCivguJTguLLguKPguJPguLUKK+C4lOC4suC4o+C4lOC4suC4qQor4LiU4Liy4Lij4LiyCivguJTguLLguKPguLLguJrguJYKK+C4lOC4suC4o+C4suC4qOC4suC4quC4leC4o+C5jAor4LiU4Liy4LilCivguJTguLLguKXguInguLHguJXguKMKK+C4lOC4suC4peC5gOC4lOC4t+C4reC4lAor4LiU4Liy4Lil4LmC4LiX4Liq4LiwCivguJTguLLguKXguLHguJQKK+C4lOC4suC4peC4uAor4LiU4Liy4Lil4Li44LiKCivguJTguLLguKcKK+C4lOC5iOC4suC4pwor4LiU4LmJ4Liy4LinCivguJTguLLguKfguIHguKPguLDguIjguLLguKIKK+C4lOC4suC4p+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4LiU4Liy4Lin4LiU4Li24LiH4Liq4LmMCivguJTguLLguKfguJXguIEKK+C4lOC4suC4p+C5gOC4l+C4teC4ouC4oQor4LiU4Liy4Lin4Lia4LiqCivguJTguLLguKfguKPguLjguYjguIcKK+C4lOC4suC4p+C5gOC4o+C4t+C4reC4hwor4LiU4Liy4Lin4Lik4LiB4Lip4LmMCivguJTguLLguKfguKXguYnguK3guKHguYDguJTguLfguK3guJkKK+C4lOC4suC4p+C4q+C4suC4hwor4LiU4Liy4Lin4LmA4Lir4LiZ4Li34LitCivguJTguLLguKkKK+C4lOC4suC4qeC4lOC4sgor4LiU4Liy4Lip4LiU4Li34LmI4LiZCivguJTguLLguKnguYDguJTguLXguKLguKMKK+C4lOC4suC4q+C4h+C4seC4mQor4LiU4Liy4LisCivguJTguLMKK+C4lOC5iOC4swor4LiU4LmJ4LizCivguJTguLPguIHguKUKK+C4lOC4s+C5gOC4geC4tOC4hwor4LiU4Liz4LmB4LiE4LiHCivguJTguLPguJTguIcKK+C4lOC4s+C4lOC4tOC4mQor4LiU4Liz4LmB4LiU4LiHCivguJTguLPguYYg4LmB4LiU4LiH4LmGCivguJTguLPguJnguLIKK+C4lOC4s+C4meC4suC4kwor4LiU4Liz4LiZ4Liy4LiZCivguJTguLPguJnguLkKK+C4lOC4s+C5gOC4meC4tOC4mQor4LiU4Liz4LmA4LiZ4Li04LiZ4LiE4LiU4Li1CivguJTguLPguYDguJnguLXguKLguJkKK+C4lOC4s+C5gOC4meC4teC4ouC4owor4LiU4Liz4Lia4LilCivguJTguLPguJvguLfguJkKK+C4lOC4s+C4nuC4reC4hwor4LiU4Liz4LmC4Lie4LiHCivguJTguLPguKPguIcKK+C4lOC4s+C4o+C4p+C4iAor4LiU4Liz4Lij4Lix4LiqCivguJTguLPguKPguLQKK+C4lOC4s+C4o+C4tQor4LiU4Liz4Lij4Li5CivguJTguLPguYTguKMKK+C4lOC4s+C4pOC4qeC4k+C4sgor4LiU4Liz4LmA4Lil4Li04LiHCivguJTguLPguYHguKXguIcKK+C4lOC4s+C4q+C4meC4seC4gQor4LiU4Liz4Lir4LiZ4Li0CivguJTguLPguKvguLHguKcKK+C4lOC4s+C4reC4p+C4lAor4LiU4Li04LiBCivguJTguLTguIHguYYKK+C4lOC4tOC4hwor4LiU4Li04LmI4LiHCivguJTguLTguYjguIfguJ7guKrguLjguJjguLIKK+C4lOC4tOC4ieC4seC4mQor4LiU4Li04LiQCivguJTguLTguJXguJbguYwKK+C4lOC4tOC4luC4tQor4LiU4Li04LiZCivguJTguLTguYnguJkKK+C4lOC4tOC4meC4geC4o+C4lAor4LiU4Li04LiZ4LiC4Liy4LinCivguJTguLTguJnguYDguITguYfguKEKK+C4lOC4tOC4meC4lOC4reC4meC4quC4suC4oeC5gOC4q+C4peC4teC5iOC4ouC4oQor4LiU4Li04LiZ4LiU4LizCivguJTguLTguJnguYHguJTguIcKK+C4lOC4tOC4meC4meC4p+C4pQor4LiU4Li04LiZ4Lib4Lij4Liw4Liq4Li04LinCivguJTguLTguJnguJvguLfguJkKK+C4lOC4tOC4meC5gOC4m+C4o+C4teC5ieC4ouC4pwor4LiU4Li04LiZ4Lie4Lit4LiB4Lir4Liy4LiH4Lir4Lih4Li5CivguJTguLTguYnguJnguKPguJkKK+C4lOC4tOC4meC4o+C5iOC4p+C4mQor4LiU4Li04LiZ4Lij4Liw4LmA4Lia4Li04LiUCivguJTguLTguJnguKrguYnguKEKK+C4lOC4tOC4meC4quC4rQor4LiU4Li04LiZ4Liq4Lit4Lie4Lit4LiHCivguJTguLTguJnguKrguLPguKXguLUKK+C4lOC4tOC4meC4q+C4uQor4LiU4Li04LiZ4Lit4Li14Lir4Lij4Lit4LiaCivguJTguLTguJoKK+C4lOC4tOC4muC4lOC4tQor4LiU4Li04Lij4Lix4LiI4LiJ4Liy4LiZCivguJTguLTguKXguIEKK+C4lOC4tOC5iOC4pwor4LiU4Li04LmJ4LinCivguJTguLTguYnguKfguYDguJTguLXguYnguKLguKcKK+C4lOC4tOC4qeC4kOC5jAor4LiU4Li04Liq4LmC4Lie4Lij4LmA4LiL4Li14Lii4LihCivguJTguLUKK+C4lOC4teC5hgor4LiU4Li14LmA4LiB4Lil4Li34LitCivguJTguLXguYDguIHguKXguLfguK3guJ3guKPguLHguYjguIcKK+C4lOC4teC4h+C4uQor4LiU4Li14LmD4LiICivguJTguLXguInguLHguJkKK+C4lOC4teC4ieC4suC4mQor4LiU4Li14LiL4LmI4Liy4LiZCivguJTguLXguYDguIvguKUKK+C4lOC4teC4lAor4LiU4Li14LiU4LiC4Lix4LiZCivguJTguLXguJTguJTguLTguYnguJkKK+C4lOC4teC4lOC4neC5ieC4suC4ogor4LiU4Li14LiU4Lie4Li04Lih4Lie4LmMCivguJTguLXguJTguKXguLnguIHguITguLTguJQKK+C4lOC4teC4lOC4peC4ueC4geC4hOC4tOC4lOC4o+C4suC4h+C5geC4geC5ieC4pworLeC4lOC4teC4lOC4seC4gQor4LiU4Li14LiU4Li14LiX4Li1CivguJTguLXguYDguJTguLfguK3guJQKK+C4lOC4teC5geC4leC4gQor4LiU4Li14LiZ4Liy4LiE4Lij4Liy4LiKCivguJTguLXguYDguJnguLfguYnguK3guJTguLXguYPguIgKK+C4lOC4teC4muC4seC4pwor4LiU4Li14Lia4Li44LiBCivguJTguLXguJvguKXguLUKK+C4lOC4teC5gOC4m+C4o+C4quC4iuC4seC4mQor4LiU4Li14Lic4LiyCivguJTguLXguJ3guYjguK0KK+C4lOC4teC4nuC4owor4LiU4Li14LmE4Lih4LmI4LiU4Li1CivguJTguLXguKLguLIKK+C4lOC4teC4o+C5ieC4suC4ogor4LiU4Li14Lil4LiwCivguJTguLXguYHguKXguYnguKcKK+C4lOC4teC4q+C4oeC4tQor4LiU4Li14Lir4Lil4Li1CivguJTguLXguKvguLTguJkKK+C4lOC4teC4reC4geC4lOC4teC5g+C4iAor4LiU4Li24LiBCivguJTguLbguIHguJTguLPguJrguKPguKPguJ7guYwKK+C4lOC4tuC4geC4lOC4t+C5iOC4mQor4LiU4Li24LiHCivguJTguLbguYjguIcKK+C4lOC4tuC4h+C4lOC4seC4mQor4LiU4Li24LiH4LiU4Li34LmJ4LitCivguJTguLbguIfguJTguLnguJQKK+C4lOC4tuC4h+C4quC4sAor4LiU4Li24LmI4LihCivguJTguLfguYjguJkKK+C4lOC4t+C5iOC4meC4lOC4suC4qQor4LiU4Li34LmI4LiZ4LiU4Li24LiBCivguJTguLfguYjguKEKK+C4lOC4t+C5iOC4oeC4lOC5iOC4swor4LiU4Li34LitCivguJTguLfguYnguK0KK+C4lOC4t+C5ieC4reC4lOC4seC4mQor4LiU4Li34LmJ4Lit4LiU4LmJ4Liy4LiZCivguJTguLfguYnguK3guJTguLbguIcKK+C4lOC4t+C5ieC4reC5geC4nuC5iOC4hwor4LiU4Li34LmJ4Lit4Lii4LiyCivguJTguLgKK+C4lOC4uOC4gQor4LiU4Li44LiB4LiU4Li04LiBCivguJTguLjguIHguJfguLDguYDguKUKK+C4lOC4uOC4geC4peC4s+C4nuC4seC4mQor4LiU4Li44LmJ4LiHCivguJTguLjguYnguIfguJTguLTguYnguIcKK+C4lOC4uOC4iAor4LiU4Li44LiI4LiU4Lix4LiHCivguJTguLjguIjguKvguJnguLbguYjguIcKK+C4lOC4uOC4lAor4LiU4Li44LiU4Lix4LiZCivguJTguLjguYDguJTguLfguK3guJQKK+C4lOC4uOC4mQor4LiU4Li44LmJ4LiZCivguJTguLjguJrguYYKK+C4lOC4uOC4oQor4LiU4Li44LmI4LihCivguJTguLjguYjguKHguYYKK+C4lOC4uOC5iOC4ogor4LiU4Li44Lij4LiECivguJTguLjguKPguIfguITguYwKK+C4lOC4uOC4o+C4h+C4hOC4tQor4LiU4Li44Lij4LmJ4Liy4LiiCivguJTguLjguKPguLTguKItCivguJTguLjguKPguLTguKLguLAKK+C4lOC4uOC4o+C4tOC4ouC4suC4h+C4hC0KK+C4lOC4uOC4o+C4tOC4ouC4suC4h+C4hOC5jAor4LiU4Li44Lij4Li04Lii4Liy4LiH4LiE4LmM4LiI4Liz4LmA4Lij4Li14Lii4LiHCivguJTguLjguKPguLTguKLguLLguIfguITguKjguLLguKrguJXguKPguYwKK+C4lOC4uOC4o+C4tOC4ouC4suC4h+C4hOC4qOC4tOC4peC4m+C5jAor4LiU4Li44LilCivguJTguLjguKUtCivguJTguLjguKXguIHguLLguKPguITguYnguLIKK+C4lOC4uOC4peC4geC4suC4o+C4iuC4s+C4o+C4sOC5gOC4h+C4tOC4mQor4LiU4Li44Lil4LiK4Liz4Lij4Liw4Lir4LiZ4Li14LmJCivguJTguLjguKXguJ7guLTguJnguLTguIgKK+C4lOC4uOC4peC4oOC4suC4hAor4LiU4Li44Lil4LiiLQor4LiU4Li44Lil4Lii4Lie4Li04LiZ4Li04LiICivguJTguLjguKXguKLguKDguLLguJ4KK+C4lOC4uOC4peC4reC4s+C4meC4suC4iAor4LiU4Li44Lip4LiO4Li1CivguJTguLjguKnguI7guLXguJnguLTguJ7guJnguJjguYwKK+C4lOC4uOC4qeC4juC4teC4muC4seC4k+C4keC4tOC4lQor4LiU4Li44Lip4LiO4Li14Lih4Liy4Lil4LiyCivguJTguLjguKnguI7guLXguKrguLHguIfguYDguKfguKIKK+C4lOC4uOC4qeC4k+C4tQor4LiU4Li44Lip4LiT4Li14Lig4Liy4LieCivguJTguLjguKnguLTguJUKK+C4lOC4uOC4quC4tOC4lQor4LiU4Li44LmA4Lir4Lin4LmI4LiyCivguJTguLkKK+C4lOC4ueC4geC5hOC4geC5iOC4lOC4swor4LiU4Li54LiB4LiE4LmI4Liy4LiHCivguJTguLnguIHguKMKK+C4lOC4ueC4geC5iOC4reC4mQor4LiU4Li54LmB4LiE4Lil4LiZCivguJTguLnguYPguIgKK+C4lOC4ueC4iuC5ieC4suC4h+C5g+C4q+C5ieC4lOC4ueC4q+C4suC4hyDguJTguLnguJnguLLguIfguYPguKvguYnguJTguLnguYHguKHguYgKK+C4lOC4ueC4i+C4tAor4LiU4Li54LiUCivguJTguLnguJTguJTguLbguIcKK+C4lOC4ueC4lOC4lOC4t+C5iOC4oQor4LiU4Li54LiU4Lit4Lih4LiU4Li54LiU4Liy4LiiCivguJTguLnguJTguLLguKIKK+C4lOC4ueC4lOC4ueC5iwor4LiU4Li54LiV4Liy4Lih4LmJ4Liy4LiV4Liy4LmA4Lij4Li34LitCivguJTguLnguJbguLnguIEKK+C4lOC4ueC4luC4ueC4geC4lOC4ueC5geC4hOC4peC4mQor4LiU4Li54LmA4LiW4Lit4LiwCivguJTguLnguYDguJbguLTguJQKK+C4lOC4ueC5geC4meC5iOC4sAor4LiU4Li54LmA4Lia4LiyCivguJTguLnguYTguJvguIHguYjguK3guJkKK+C4lOC4ueC4o+C4sgor4LiU4Li54Lij4LmJ4Liy4LiiCivguJTguLnguKPguLYKK+C4lOC4ueC5geC4pQor4LiU4Li54Lir4Lih4Li04LmI4LiZCivguJTguLnguKvguKHguLTguYjguJnguJbguLTguYjguJnguYHguITguKXguJkKK+C4lOC4ueC4q+C4o+C4t+C4rQor4LiU4Li54Lir4Lij4Li5CivguJTguLnguYDguKvguKHguLfguK3guJkKK+C5gOC4lAor4LmA4LiU4LmICivguYDguJTguIEKK+C5gOC4lOC5h+C4gQor4LmA4LiU4LmH4LiB4LiK4LiyCivguYDguJTguYfguIHguIrguLLguKIKK+C5gOC4lOC4geC4i+C5jOC5guC4l+C4o+C4qgor4LmA4LiU4LmH4LiB4LmB4LiU4LiHCivguYDguJTguYfguIHguYDguKHguLfguYjguK3guKfguLLguJnguIvguLfguJkKK+C5gOC4lOC5h+C4geC4q+C4jeC4tOC4hwor4LmA4LiU4LmH4LiB4Lit4Lih4Lih4Li34LitCivguYDguJTguITguLLguIHguKPguLHguKEKK+C5gOC4lOC4hOC4suC5gOC4oeC4leC4owor4LmA4LiU4LiE4Liy4Lil4Li04LiV4LijCivguYDguJTguYnguIcKK+C5gOC4lOC5h+C4iAor4LmA4LiU4LiKCivguYDguJTguIrguJnguYwKK+C5gOC4lOC4iuC4meC4sAor4LmA4LiU4LiK4LiwCivguYDguJTguYLguIoKK+C5gOC4lOC5guC4iuC4iuC4seC4ogor4LmA4LiU4LmC4LiK4Lie4LilCivguYDguJTguIvguLTguIHguKPguLHguKEKK+C5gOC4lOC4i+C4tOC5gOC4oeC4leC4owor4LmA4LiU4LiL4Li04Lil4Li04LiV4LijCivguYDguJTguYfguJQKK+C5gOC4lOC5h+C4lOC4guC4suC4lAor4LmA4LiU4LmH4LiU4LiU4Lin4LiHCivguYDguJTguYfguJTguJTguK3guIHguYTguKHguYnguKPguYjguKfguKHguJXguYnguJkKK+C5gOC4lOC5h+C4lOC4lOC4reC4geC5hOC4oeC5iOC5hOC4p+C5ieC4guC4seC5ieC4pwor4LmA4LiU4LmH4LiU4LmA4LiU4Li14LmI4Lii4LinCivguYDguJTguYfguJTguJrguLHguKfguYTguKHguYjguYTguKfguYnguYPguKIKK+C5gOC4lOC5h+C4lOC4m+C4peC4teC5hOC4oeC5iOC4oeC4teC5g+C4ogor4LmA4LiU4LiZCivguYDguJTguYjguJkKK+C5gOC4lOC4meC4leC4suC4ogor4LmA4LiU4LiZ4Lih4Liy4Lij4LmM4LiBCivguYDguJTguKPguLHguIjguInguLLguJkKK+C5gOC4lOC5i+C4rQor4LmA4LiU4LmL4Lit4LiU4LmL4LiyCivguYDguJTguLIKK+C5gOC4lOC5iOC4sgor4LmA4LiU4LmI4Liy4LmGCivguYDguJTguYnguLIKK+C5gOC4lOC5ieC4suC4lOC4tOC4mQor4LmA4LiU4LmJ4Liy4Lil4LihCivguYDguJTguLLguKrguKfguJQKK+C5gOC4lOC4suC4quC4uOC5iOC4oQor4LmA4LiU4Liy4LiwCivguYDguJTguLTguJkKK+C5gOC4lOC4tOC5iOC4mQor4LmA4LiU4Li04LiZ4LiC4Lia4Lin4LiZCivguYDguJTguLTguJnguITguLLguJbguLIKK+C5gOC4lOC4tOC4meC4iOC4seC4geC4owor4LmA4LiU4Li04LiZ4LiV4Lil4Liy4LiUCivguYDguJTguLTguJnguJXguLLguKHguKvguKXguLHguIfguJzguLnguYnguYPguKvguI3guYjguKvguKHguLLguYTguKHguYjguIHguLHguJQKK+C5gOC4lOC4tOC4meC5geC4leC5ieC4oQor4LmA4LiU4Li04LiZ4LmC4LiV4LmK4LiwCivguYDguJTguLTguJnguJfguK3guIcKK+C5gOC4lOC4tOC4meC4l+C4seC4ngor4LmA4LiU4Li04LiZ4LiX4Liy4LiHCivguYDguJTguLTguJnguJfguLjguYjguIcKK+C5gOC4lOC4tOC4meC5gOC4l+C4teC4ouC4mQor4LmA4LiU4Li04LiZ4LiY4Li44Lij4Liw4LmD4Lir4LmJCivguYDguJTguLTguJnguJnguLIKK+C5gOC4lOC4tOC4meC4m+C5ieC4suC4ogor4LmA4LiU4Li04LiZ4Lij4LiWCivguYDguJTguLTguJnguYDguKPguLfguK0KK+C5gOC4lOC4tOC4meC5gOC4o+C4t+C5iOC4reC4hwor4LmA4LiU4Li04LiZ4Liq4Lin4LiZCivguYDguJTguLTguJnguKrguLDguJ7guLHguJQKK+C5gOC4lOC4tOC4meC4quC4suC4ogor4LmA4LiU4Li04LiZ4LmA4Liq4LmJ4LiZCivguYDguJTguLTguJnguKvguJkKK+C5gOC4lOC4tOC4meC5gOC4q+C4tOC4mQor4LmA4LiU4Li04LiZ4LmE4Lir4LihCivguYDguJTguLTguJnguK3guLLguIHguLLguKgKK+C5gOC4lOC4tOC4oQor4LmA4LiU4Li04Lih4LiX4Li1CivguYDguJTguLTguKHguJ7guLHguJkKK+C5gOC4lOC4teC5ieC4ogor4LmA4LiU4Li14Lii4LiHCivguYDguJTguLXguKLguIfguKrguLIKK+C5gOC4lOC4teC4ouC4lAor4LmA4LiU4Li14Lii4LiU4LiJ4Lix4LiZ4LiX4LmMCivguYDguJTguLXguKLguKMKK+C5gOC4lOC4teC4ouC4o+C4lOC4suC4qQor4LmA4LiU4Li14Lii4Lij4LiW4LmMCivguYDguJTguLXguKLguKPguJbguLXguKLguYwKK+C5gOC4lOC4teC4ouC4o+C4seC4iOC4ieC4suC4mQor4LmA4LiU4Li14Lii4LinCivguYDguJTguLXguYjguKLguKcKK+C5gOC4lOC4teC5i+C4ouC4pwor4LmA4LiU4Li14LmL4Lii4Lin4LiB4LmI4Lit4LiZCivguYDguJTguLXguKLguKfguIHguLHguJkKK+C5gOC4lOC4teC4ouC4p+C4lOC4suC4ogor4LmA4LiU4Li14LmL4Lii4Lin4LmA4LiU4Li14Lii4LinCivguYDguJTguLXguYvguKLguKfguJnguLXguYkKK+C5gOC4lOC4teC4ouC4sAor4LmA4LiU4Li34LmI4LitCivguYDguJTguLfguK3guIEKK+C5gOC4lOC4t+C5iOC4reC4hwor4LmA4LiU4Li34Lit4LiUCivguYDguJTguLfguK3guJTguJTguLLguKUKK+C5gOC4lOC4t+C4reC4lOC4o+C5ieC4reC4mQor4LmA4LiU4Li34Lit4LiZCivguYDguJTguLfguK3guJnguILguLLguJQKK+C5gOC4lOC4t+C4reC4meC4hOC5ieC4suC4h+C4n+C5ieC4sgor4LmA4LiU4Li34Lit4LiZ4LiE4Li14LmICivguYDguJTguLfguK3guJnguITguLnguYgKK+C5gOC4lOC4t+C4reC4meC5gOC4leC5h+C4oQor4LmA4LiU4Li34Lit4LiZ4Lih4Li34LiUCivguYDguJTguLfguK3guJnguYDguKLguYfguJkKK+C5gOC4lOC4t+C4reC4meC4o+C5ieC4reC4mQor4LmA4LiU4Li34Lit4LiZ4Lir4LiH4Liy4LiiCivguYDguJTguLfguK3guKIKK+C5gOC4lOC4t+C4reC4ouC5hOC4geC5iAor4LmB4LiUCivguYHguJTguYgKK+C5geC4lOC4gQor4LmB4LiU4LmH4LiB4LmGCivguYHguJTguIHguIfguLIKK+C5geC4lOC4geC4lOC4seC4mQor4LmB4LiU4LiB4LmB4LiU4LmJCivguYHguJTguYfguIHguYHguJTguYkKK+C5geC4lOC4geC4q+C5iOC4sgor4LmB4LiU4LiHCivguYHguJTguIfguJnguYnguLMKK+C5geC4lOC4lAor4LmB4LiU4LiU4Liy4LilCivguYHguJTguJTguLTguYnguJkKK+C5geC4lOC4mQor4LmB4LiU4LmI4LiZCivguYHguJTguJnguYTguJXguKMKK+C5geC4lOC4ouC4seC4mQor4LmB4LiU4LmI4Lin4LmGCivguYHguJTguLAKK+C5geC4lOC4sOC5geC4lOC5iwor4LmC4LiUCivguYLguJTguYgKK+C5guC4lOC4geC5gOC4lOC4gQor4LmC4LiU4LmI4LiHCivguYLguJTguYjguIfguJTguLHguIcKK+C5guC4lOC4lAor4LmC4LiU4LiU4LmGCivguYLguJTguJTguYDguJTguLXguYjguKLguKcKK+C5guC4lOC4lOC4o+C5iOC4oQor4LmC4LiU4LmI4LmA4LiU4LmICivguYLguJTguJkKK+C5guC4lOC4meC4lOC4tQor4LmC4LiU4LihCivguYLguJTguKHguYTguJ7guKMKK+C5guC4lOC4oeC4owor4LmC4LiU4LmI4LmE4Lih4LmI4Lij4Li54LmJ4Lil4LmJ4LihCivguYLguJTguKIKK+C5guC4lOC4ouC4iOC4o+C4tOC4hwor4LmC4LiU4Lii4LiX4Li14LmICivguYLguJTguKLguJ7guKLguLHguI3guIrguJnguLAKK+C5guC4lOC4ouC4quC4suC4owor4LmC4LiU4Lii4LmA4Liq4LiU4LmH4LiICivguYLguJTguKLguK3guKPguKPguJYKK+C5guC4lOC4owor4LmC4LiU4Lij4LiTCivguYPguJQKKy4uLuC5g+C4lC4uLuC4q+C4meC4tuC5iOC4hwor4LmE4LiUCivguYTguJTguYkKK+C5hOC4lOC5ieC4geC4seC4mQor4LmE4LiU4LmJ4LiB4Liy4LijCivguYTguJTguYnguYHguIHguYgKK+C5hOC4lOC5ieC5geC4geC4h+C5gOC4l+C4meC5ieC4s+C4nuC4o+C4tOC4gQor4LmE4LiU4LmJ4LiE4Lin4Liy4LihCivguYTguJTguYnguITguLTguJQKK+C5hOC4lOC5ieC5g+C4iAor4LmE4LiU4LmJ4LiK4LmI4Lit4LiHCivguYTguJTguYnguIrguLfguYjguK0KK+C5hOC4lOC5geC4i+C5h+C4geC4hOC4suC5hOC4o+C4lOC5jAor4LmE4LiU4LmJ4LiX4LmI4LiyCivguYTguJTguYnguJfguYnguLLguKIKK+C5hOC4lOC5ieC4l+C4tQor4LmE4LiU4LmJ4LiX4Li14LmICivguYTguJTguYnguJfguLXguILguLXguYjguYHguJ7guLDguYTguKXguYgKK+C5hOC4lOC4meC4suC5guC4oQor4LmE4LiU4LiZ4Liy4LmE4Lih4LiV4LmMCivguYTguJTguYLguJnguYDguKrguLLguKPguYwKK+C5hOC4lOC5ieC4ouC4tOC4mQor4LmE4LiU4LmA4Lij4LiB4LiV4Lij4Li04LiB4LiL4LmMCivguYTguJTguYnguKTguIHguKnguYwKK+C5hOC4lOC5ieC4quC4leC4tAor4LmE4LiU4LmJ4Liq4LmI4Lin4LiZCivguYTguJTguYnguKrguYjguKfguJnguKrguLHguJQKK+C5hOC4lOC5ieC5gOC4quC4teC4ogor4LmE4LiU4LmJ4LmA4Liq4Li14Lii4LiB4Lix4LiZCivguYTguJTguYnguKvguJnguYnguLIKK+C5hOC4lOC5ieC4q+C4meC5ieC4suC4peC4t+C4oeC4q+C4peC4seC4hwor4LiVCivguJXguIEKK+C4leC4geC4geC4o+C4sAor4LiV4LiB4LiB4Lij4Liw4LmE4LiU4Lie4Lil4Lit4Lii4LmC4LiI4LiZCivguJXguIHguILguK3guJoKK+C4leC4geC4guC4suC4pwor4LiV4LiB4LiC4LmJ4Liy4LinCivguJXguIHguILguLjguKIKK+C4leC4geC4hOC4peC4seC4gQor4LiV4LiB4LiE4LmJ4Liy4LiHCivguJXguIHguYDguITguKPguLfguK0KK+C4leC4geC4h+C4suC4mQor4LiV4LiB4LiI4Lix4LmI4LiZCivguJXguIHguYPguIgKK+C4leC4geC4lOC4tOC4mQor4LiV4LiB4LiV4Liw4LiB4Lit4LiZCivguJXguIHguJXguLDguKXguLbguIcKK+C4leC4geC4leC5iOC4swor4LiV4LiB4LmB4LiV4LmI4LiHCivguJXguYrguIHguYLguJUKK+C4leC4geC5g+C4leC5ieC5gOC4luC4o+C5gOC4l+C4p+C4l+C4seC4lQor4LiV4LiB4LiX4LmJ4Lit4LiH4LiK4LmJ4Liy4LiHCivguJXguIHguJfguK3guJQKK+C4leC4geC4l+C4teC5iOC4meC4seC5iOC4hwor4LiV4LiB4LiZ4Lij4LiB4LiX4Lix4LmJ4LiH4LmA4Lib4LmH4LiZCivguJXguIHguJnguYnguLPguKHguLHguJkKK+C4leC4geC4meC5ieC4s+C5hOC4oeC5iOC4p+C5iOC4suC4ogor4LiV4LiB4LiZ4LmJ4Liz4LmE4Lih4LmI4LmE4Lir4LilIOC4leC4geC5hOC4n+C5hOC4oeC5iOC5hOC4q+C4oeC5iQor4LiV4LiB4LmD4LiZCivguJXguIHguYDguJrguYfguJQKK+C4leC4geC5gOC4muC4tOC4gQor4LiV4LiB4Lib4Lij4Liw4Lir4Lih4LmI4LiyCivguJXguIHguJvguKXguK3guIEKK+C4leC4geC4m+C4peC4seC4gQor4LiV4LiB4Lib4Liy4LiB4LiV4LiB4LiE4LizCivguJXguIHguYDguJvguYfguJkKK+C4leC4geC5gOC4m+C5h+C4meC5gOC4muC4teC5ieC4ouC4peC5iOC4suC4hwor4LiV4LiB4Lic4Lil4Li24LiBCivguJXguIHguJ7guLjguYjguKHguKHguYjguLLguKIKK+C4leC4geC4n+C4reC4hwor4LiV4LiB4Lif4Liy4LiBCivguJXguIHguKHguLHguJkKK+C4leC4geC4oeC4ueC4gQor4LiV4LiB4Lii4Liy4LiBCivguJXguIHguKPguLLguIfguKfguLHguKUKK+C4leC4geC4peC4hwor4LiV4LiB4Lil4LmI4Lit4LiH4Lib4Lil4LmI4Lit4LiH4LiK4Li04LmJ4LiZCivguJXguIHguKXguLnguIEKK+C4leC4geC5gOC4peC4t+C4reC4lAor4LiV4LiB4Lin4LmI4LiyCivguJXguIHguKrguJnguLHguJoKK+C4leC4geC4quC4sOC5gOC4geC5h+C4lAor4LiV4LiB4LmB4Liq4LiBCivguJXguIHguKvguJnguLHguIEKK+C4leC4geC4q+C4oeC4gQor4LiV4LiB4Lir4Lil4LmI4LiZCivguJXguIHguKvguKXguLjguKEKK+C4leC4geC4q+C4peC4uOC4oeC4nuC4o+C4suC4hwor4LiV4LiB4Lit4Lix4LiaCivguJXguIcKK+C4leC5i+C4hwor4LiV4LiH4LiJ4Li04LiZCivguJXguIfguLTguJQKK+C4leC4h+C4uOC5iOC4mQor4LiV4LiILQor4LiV4LiI4Lib4Lix4LiN4LiI4LiB4LiB4Lij4Lij4Lih4LiQ4Liy4LiZCivguJXguIjguKrguLLguKMKK+C4leC4lAor4LiV4LiU4Lir4Lih4Li54LiV4LiU4Lir4Lih4LiyCivguJXguJXguLTguKItCivguJXguJbguLLguITguJUKK+C4leC4mQor4LiV4LmJ4LiZCivguJXguYnguJnguIHguKUKK+C4leC5ieC4meC4guC4seC5ieC4pwor4LiV4LmJ4LiZ4LiE4LitCivguJXguYnguJnguITguLTguJQKK+C4leC5ieC4meC5gOC4h+C4tOC4mQor4LiV4LmJ4LiZ4LiJ4Lia4Lix4LiaCivguJXguYnguJnguIrguJnguJTguK3guIEKK+C4leC5ieC4meC5gOC4iuC4t+C4reC4gQor4LiV4LmJ4LiZ4LiV4Lij4Liw4LiB4Li54LilCivguJXguYnguJnguJXguK0KK+C4leC5ieC4meC4leC4suC4ouC5g+C4muC5gOC4m+C5h+C4mQor4LiV4LmJ4LiZ4LiV4Liz4Lij4Lix4LiaCivguJXguYnguJnguJfguLLguIcKK+C4leC5ieC4meC4l+C4uOC4mQor4LiV4LmJ4LiZ4LmA4LiX4Li14Lii4LihCivguJXguYnguJnguJnguYnguLMKK+C4leC5ieC4meC4muC4lwor4LiV4LmJ4LiZ4LmB4Lia4LiaCivguJXguYnguJnguYDguJ7guKXguLTguIcKK+C4leC5ieC4meC4oeC4t+C4rQor4LiV4LmJ4LiZ4LmE4Lih4LmJCivguJXguYnguJnguKPguYjguLLguIcKK+C4leC5ieC4meC4o+C5ieC4suC4ouC4m+C4peC4suC4ouC4lOC4tQor4LiV4LmJ4LiZ4LmA4Lij4Li34LitCivguJXguYnguJnguYDguKPguLfguYjguK3guIcKK+C4leC5ieC4meC4p+C4suC4ouC4m+C4peC4suC4ouC4lOC4gQor4LiV4LmJ4LiZ4Liq4Lix4LiH4LiB4Lix4LiUCivguJXguYnguJnguKrguLLguKLguJvguKXguLLguKLguYDguKvguJXguLgKK+C4leC5ieC4meC5gOC4quC4teC4ouC4hwor4LiV4LmJ4LiZ4Lir4LiZCivguJXguYnguJnguYDguKvguJXguLgKK+C4leC4meC4seC4ogor4LiV4LiZ4Li4CivguJXguJnguLjguKHguLHguJjguKLguKHguLIKK+C4leC4meC4uOC4oeC4seC4mOC4ouC4sgor4LiV4LiaCivguJXguJrguJXguLIKK+C4leC4muC5geC4leC5iOC4hwor4LiV4Lia4LmA4LiX4LmJ4LiyCivguJXguJrguYHguJzguKXguLAKK+C4leC4muC4oeC4t+C4rQor4LiV4Lia4Lih4Li34Lit4LiC4LmJ4Liy4LiH4LmA4LiU4Li14Lii4Lin4LmE4Lih4LmI4LiU4Lix4LiHCivguJXguJrguKLguLjguIcKK+C4leC4muC4q+C4seC4p+C4geC4peC4suC4h+C4qOC4suC4peC4siDguILguK3guILguKHguLLguJfguLXguYjguJrguYnguLLguJkKK+C4leC4muC4q+C4seC4p+C4peC4ueC4muC4q+C4peC4seC4hwor4LiV4Lia4LiwCivguJXguJvguJnguLXguKLguLAKK+C4leC4oS0KK+C4leC5ieC4oQor4LiV4LmJ4Lih4LiB4Liw4LiX4Li0CivguJXguYnguKHguIHguLDguJvguLQKK+C4leC5ieC4oeC4guC5iOC4sgor4LiV4LmJ4Lih4LmA4LiE4LmH4LihCivguJXguYnguKHguYLguITguKXguYnguIcKK+C4leC5ieC4oeC4m+C4peC4suC4o+C5ieC4sgor4LiV4LmJ4Lih4LmA4Lib4Lij4LiVCivguJXguYnguKHguYDguJvguK3guLAKK+C4leC5ieC4oeC4ouC4swor4LiV4LmJ4Lih4Lii4Liz4LiB4Liw4LiX4Li0CivguJXguYnguKHguKrguYnguKEKK+C4leC5ieC4oeC4quC4uOC4gQor4LiV4Lih4Li54LiBCivguJXguYLguKEtCivguJXguYLguKHguJnguLjguJcKK+C4leC5guC4oeC5hOC4nuC4o+C4tQor4LiV4LmC4Lih4Lir4LijCivguJXguKLguLLguIQKK+C4leC4ouC4suC4hOC4tQor4LiV4Lii4Li44LiV4Li0CivguJXguKPguIcKK+C4leC4o+C4h+C5hgor4LiV4Lij4LiH4LiB4Lix4LiZCivguJXguKPguIfguIHguLHguJnguILguYnguLLguKEKK+C4leC4o+C4k+C4tQor4LiV4Lij4LihCivguJXguKPguKHguJXguKPguK3guKEKK+C4leC4o+C4oeC5gOC4leC4o+C4teC4ouC4oQor4LiV4Lij4Lih4Lin4LilCivguJXguKPguKPguIEtCivguJXguKPguKPguIHguKjguLLguKrguJXguKPguYwKK+C4leC4o+C4o+C4geC4sAor4LiV4Lij4Lil4LiaCivguJXguKPguKXguK3guJQKK+C4leC4o+C4peC4sAor4LiV4Lij4Lil4LiyCivguJXguKPguKXguLLguJQKK+C4leC4o+C5gOC4peC4tOC4lAor4LiV4Lij4Lin4LiICivguJXguKPguKfguIjguIHguLLguKPguJPguYwKK+C4leC4o+C4p+C4iOC4guC5iOC4suC4pwor4LiV4Lij4Lin4LiI4LiV4Lij4LiyCivguJXguKPguKfguIjguYDguKXguLfguK3guJQKK+C4leC4o+C4p+C4lAor4LiV4Lij4Lin4LiZCivguJXguKPguKfguKIKK+C4leC4o+C4reC4gQor4LiV4Lij4Lit4LiHCivguJXguKPguK3guKHguYPguIgKK+C4leC4o+C4reC4oeC4leC4o+C4oQor4LiV4Lij4LiwCivguJXguKPguLDguIHguKUKK+C4leC4o+C4sOC4geC4p+C4mQor4LiV4Lij4Liw4LiB4Lit4LiHCivguJXguKPguLDguIHguLHguJQKK+C4leC4o+C4sOC4geC4suC4owor4LiV4Lij4Liw4LiB4Li54LilCivguJXguKPguLDguIHguLnguKXguKHguLnguKXguIrguLLguJXguLQKK+C4leC4o+C4sOC4hOC4seC4owor4LiV4Lij4Liw4LiH4LmI4Lit4LiHCivguJXguKPguLDguIjguLHguIEKK+C4leC4o+C4sOC4iuC4seC4gQor4LiV4Lij4Liw4LmA4LiK4Li04LiNCivguJXguKPguLDguJTguIEKK+C4leC4o+C4sOC4lOC4suC4qQor4LiV4Lij4Liw4LmA4LiV4Lij4Li14Lii4LihCivguJXguKPguLDguYHguJXguKPguYnguJkKK+C4leC4o+C4sOC4l+C4o+C4p+C4hwor4LiV4Lij4Liw4LiZ4Liy4LinCivguJXguKPguLDguYTguJkKK+C4leC4o+C4sOC4muC4gQor4LiV4Lij4Liw4Lia4Lit4LiBCivguJXguKPguLDguJrguK3guIcKK+C4leC4o+C4sOC4muC4seC4lAor4LiV4Lij4Liw4Lia4Lix4LiU4Liq4Lix4LiV4Lii4LmMCivguJXguKPguLDguJrguLHguJkKK+C4leC4o+C4sOC5gOC4muC5h+C4hwor4LiV4Lij4Liw4LmB4Lia4LmICivguJXguKPguLDguYHguJrguIEKK+C4leC4o+C4sOC5geC4muC4hwor4LiV4Lij4Liw4LmB4Lia4LiZCivguJXguKPguLDguYHguJrguYjguJkKK+C4leC4o+C4sOC5guC4muC4oQor4LiV4Lij4Liw4Lie4Lit4LiHCivguJXguKPguLDguJ7guLHguIcKK+C4leC4o+C4sOC4oeC4t+C5iOC4mQor4LiV4Lij4Liw4LmC4Lih4LiICivguJXguKPguLDguKXguLLguIHguLLguKMKK+C4leC4o+C4sOC4p+C4seC4mQor4LiV4Lij4Liw4LmA4Lin4LmH4LiUCivguJXguKPguLDguYDguKfguJkKK+C4leC4o+C4sOC5gOC4p+C4meC5hOC4nuC4owor4LiV4Lij4Liw4LmA4Lin4LiZ4Lin4Lix4LiZCivguJXguKPguLDguYDguKfguJnguYDguKfguKvguLIKK+C4leC4o+C4sOC4quC4seC4gQor4LiV4Lij4Liw4Lir4LiH4LmI4Lit4LiHCivguJXguKPguLDguKvguIfguYjguLLguJkKK+C4leC4o+C4sOC4q+C4meC4gQor4LiV4Lij4Liw4Lir4LiZ4Lix4LiBCivguJXguKPguLDguKvguJnguYjguLMKK+C4leC4o+C4sOC4q+C4meC4teC5iAor4LiV4Lij4Liw4Lir4LiZ4Li14LmI4LiV4Lix4LinCivguJXguKPguLDguK3guKMKK+C4leC4o+C4sOC4reC4suC4pQor4LiV4Lij4Liw4LmC4Lit4LihCivguJXguKPguLHguIcKK+C4leC4o+C4seC4h+C4hC0KK+C4leC4o+C4seC4h+C4hOC5jAor4LiV4Lij4Lix4LiH4LiE4LiZ4LiX4Li1CivguJXguKPguLHguIfguITguKfguIrguLTguKPguLLguKfguJTguLUKK+C4leC4o+C4seC4mgor4LiV4Lij4Lix4Lia4Lif4Lix4LiHCivguJXguKPguLHguKIKK+C4leC4o+C4seC4ouC4leC4o+C4tuC4h+C4qOC5jAor4LiV4Lij4Lix4LiqCivguJXguKPguLHguKrguKPguLnguYkKK+C4leC4o+C4seC4quC4quC4sgor4LiV4Lij4LiyCivguJXguKPguLLguIHguJXguKPguLMKK+C4leC4o+C4suC4guC4uOC4meC4nuC4pQor4LiV4Lij4Liy4LiI4Lit4LiHCivguJXguKPguLLguIrguLkKK+C4leC4o+C4suC5geC4lOC4hwor4LiV4Lij4Liy4LiV4Lix4LmJ4LiHCivguJXguKPguLLguJoKK+C4leC4o+C4suC4muC5gOC4l+C5iOC4sgor4LiV4Lij4Liy4Lia4Liy4LibCivguJXguKPguLLguYTguJvguKPguKnguJPguLXguKLguLLguIHguKMKK+C4leC4o+C4suC4oOC4ueC4oeC4tAor4LiV4Lij4Liy4Lii4Liy4LiHCivguJXguKPguLLguKrguLHguIcKK+C4leC4o+C4suC4quC4suC4owor4LiV4Lij4Liy4Liq4Li04LiZCivguJXguKPguLLguKvguJnguYnguLIKK+C4leC4o+C4swor4LiV4Lij4LmI4LizCivguJXguKPguLQKK+C4leC4o+C4tOC4leC4o+C4reC4hwor4LiV4Lij4Li04LinCivguJXguKPguLUKK+C4leC4o+C4teC4geC4j+C4uOC4gQor4LiV4Lij4Li14LiB4Lix4LiZ4Liq4Lin4Liy4LiVCivguJXguKPguLXguIHguLLguKUKK+C4leC4o+C4teC4geC4suC4rOC4nuC4tOC4qQor4LiV4Lij4Li14LiB4Li54LiPCivguJXguKPguLXguYDguIHguKrguKPguKHguLLguKgKK+C4leC4o+C4teC5guC4geC4kwor4LiV4Lij4Li14LmC4LiB4LiT4Lih4Li04LiV4Li0CivguJXguKPguLXguITguLnguJMKK+C4leC4o+C4teC4iOC4teC4p+C4owor4LiV4Lij4Li14LiJ4Li04LiZ4LiX4Lil4Liy4Lih4LiB4LiyCivguJXguKPguLXguIrguLLguJUKK+C4leC4o+C4teC4jeC4suC4k+C4o+C4qgor4LiV4Lij4Li14LiX4LioCivguJXguKPguLXguJfguLTguJ4KK+C4leC4o+C4teC4l+C4tOC4nuC4ouC4o+C4qgor4LiV4Lij4Li14LiX4Li44Lij4Lin4Liq4LiyCivguJXguKPguLXguJfguLnguJUKK+C4leC4o+C4teC5gOC4l+C4p+C4leC4o+C4teC4hOC4seC4meC4mOC4sgor4LiV4Lij4Li14LmC4LiX4LipCivguJXguKPguLXguJjguLLguKPguJfguLTguJ7guKLguYwKK+C4leC4o+C4teC4meC4tOC4qOC4gQor4LiV4Lij4Li14LmA4LiZ4LiV4LijCivguJXguKPguLXguJrguJYKK+C4leC4o+C4teC4muC4ueC4owor4LiV4Lij4Li14Lib4Lij4Liw4LiU4Lix4LiaCivguJXguKPguLXguJvguKfguLLguKIKK+C4leC4o+C4teC4m+C4tOC4juC4gQor4LiV4Lij4Li14Lib4Li04LiV4Lic4LilCivguJXguKPguLXguJzguKXguJjguLLguJXguLgKK+C4leC4o+C4teC4nOC4peC4quC4oeC4uOC4leC4luC4suC4mQor4LiV4Lij4Li14Lic4Lil4LiyCivguJXguKPguLXguJ7guLTguJjguJ7guKPguKPguJMKK+C4leC4o+C4teC4nuC4tOC4qeC4iOC4seC4geC4owor4LiV4Lij4Li14LmA4Lie4LiK4Lij4LiX4Lix4LiT4LiR4Li1CivguJXguKPguLXguYDguJ7guIrguKPguJ7guKfguIcKK+C4leC4o+C4teC5gOC4nuC4iuC4o+C4quC4oeC4hOC4uOC4kwor4LiV4Lij4Li14Lig4LieCivguJXguKPguLXguKDguJ7guJnguLLguJYKK+C4leC4o+C4teC4oOC4ueC4oeC4tAor4LiV4Lij4Li14Lig4Li54LinCivguJXguKPguLXguKHguJjguLjguKMKK+C4leC4o+C4teC4oeC4ueC4o+C4leC4tAor4LiV4Lij4Li14Lii4Lih4LiBCivguJXguKPguLXguKLguLHguKHguJvguKfguLLguKIKK+C4leC4o+C4teC4o+C4seC4leC4meC5jAor4LiV4Lij4Li14LmC4Lil4LiBCivguJXguKPguLXguYLguKXguIHguJnguLLguJYKK+C4leC4o+C4teC5guC4peC5gOC4geC4qAor4LiV4Lij4Li14LmC4Lil4LiI4LiZ4LmMCivguJXguKPguLXguYLguKXguKvguIEKK+C4leC4o+C4teC5guC4peC4q+C4sAor4LiV4Lij4Li14Lin4Liy4LiV4Lic4LilCivguJXguKPguLXguKjguIEKK+C4leC4o+C4teC4qOC4ueC4pQor4LiV4Lij4Li14Liq4Lih4LitCivguJXguKPguLXguKrguKHguLjguJXguJbguLLguJkKK+C4leC4o+C4teC4quC4seC4leC4geC4uOC4peC4sgor4LiV4Lij4Li14Liq4Lix4LiZ4LiZ4Li04Lia4Liy4LiV4Lic4LilCivguJXguKPguLXguKrguLLguKMKK+C4leC4o+C4teC4quC4tOC4meC4mOC4uOC4o+C4qgor4LiV4Lij4Li14Liq4Li44LiE4LiZ4LiY4LmMCivguJXguKPguLXguKrguLjguKPguJzguKUKK+C4leC4o+C4teC5gOC4quC4oeC4q+C4nOC4pQor4LiV4Lij4Li14Lit4Lih4Lik4LiVCivguJXguKPguLXguK3guLLguIHguLLguKjguJzguKUKK+C4leC4o+C4teC5gOC4reC4geC4oOC4suC4ngor4LiV4Lij4Li14LmA4Lit4LiB4Liy4LiZ4Li44Lig4Liy4LieCivguJXguKPguLbguIEKK+C4leC4o+C4tuC4geC4leC4o+C4reC4hwor4LiV4Lij4Li24LiB4LiW4Lit4LiHCivguJXguKPguLbguIcKK+C4leC4o+C4tuC4h+C4leC4o+C4sgor4LiV4Lij4Li24LiH4LioLQor4LiV4Lij4Li4CivguJXguKPguLjguJMKK+C4leC4o+C4uOC4ogor4LiV4Lij4Li44LipCivguJXguKPguLjguKnguIjguLXguJkKK+C4leC4o+C4uQor4LiV4Lij4Li54LmICivguJXguKTguJMKK+C4leC4pOC4ky0KK+C4leC4pOC4k+C4iuC4suC4leC4tAor4LiV4Lik4LiT4Lih4Lix4LiiCivguJXguKTguJXguLXguKItCivguJXguKTguJXguLXguKLguLAKK+C4leC4pOC4lwor4LiV4Lik4LibCivguJXguKTguKnguJPguLIKK+C4leC4pOC5hQor4LiV4LilCivguJXguKXguIEKK+C4leC4peC4geC4hOC4sOC4meC4reC4hwor4LiV4Lil4LiB4Lia4Liy4LiV4LijCivguJXguKXguIHguYLguJvguIHguK7guLIKK+C4leC4peC4geC4q+C4seC4p+C5gOC4o+C4suC4sAor4LiV4Lil4LiaCivguJXguKXguJrguJXguLDguYHguKXguIcKK+C4leC4peC4muC4meC4gQor4LiV4Lil4Lia4Lir4Lil4Lix4LiHCivguJXguKXguK3guJQKK+C4leC4peC4reC4lOC4o+C4reC4lOC4neC4seC5iOC4hwor4LiV4Lil4LiwCivguJXguKXguLHguJoKK+C4leC4peC4seC4muC4meC4suC4gQor4LiV4Lil4Liy4LiUCivguJXguKXguLLguJTguYDguIfguLTguJkKK+C4leC4peC4suC4lOC4l+C5ieC4reC4h+C4meC5ieC4swor4LiV4Lil4Liy4LiU4LiZ4Lix4LiUCivguJXguKXguLLguJTguJnguYnguLMKK+C4leC4peC4suC4lOC4oeC4t+C4lAor4LiV4Lil4Liy4LiU4Lii4Li14LmI4Liq4Liy4LiZCivguJXguKXguLLguJTguKrguJQKK+C4leC4peC4suC4lOC4q+C4meC5ieC4suC4hOC4uOC4gQor4LiV4Lil4Liy4LiU4Lir4Lil4Lix4LiB4LiX4Lij4Lix4Lie4Lii4LmMCivguJXguKXguLLguJTguKvguLjguYnguJkKK+C4leC4peC4tOC5iOC4hwor4LiV4Lil4Li24LiHCivguJXguKfguIcKK+C4leC4p+C4h+C4nuC4o+C4sOC4mOC4suC4leC4uAor4LiV4LmI4Lin4LiZCivguJXguYnguKfguKHguYDguJXguLXguYnguKLguKEKK+C4leC4p+C4seC4gQor4LiV4Lin4Lix4LiUCivguJXguKfguLLguJQKK+C4leC4rQor4LiV4LmI4LitCivguJXguYnguK0KK+C4leC4reC4gQor4LiV4LmK4Lit4LiBCivguJXguYrguK3guIHguYYKK+C4leC5iuC4reC4geC4leC5i+C4reC4ogor4LiV4LmI4Lit4LiB4LijCivguJXguYnguK3guIHguKPguLDguIjguIEKK+C4leC4reC4geC4q+C4meC5ieC4sgor4LiV4LmI4Lit4LiB4Li04LmI4LiHCivguJXguYjguK3guITguKfguLLguKHguKLguLLguKfguKrguLLguKfguITguKfguLLguKHguKLguLfguJQKK+C4leC4reC4hwor4LiV4LmJ4Lit4LiHCivguJXguK3guIfguIHguKPguLLguKIKK+C4leC5ieC4reC4h+C4geC4seC4mQor4LiV4LmJ4Lit4LiH4LiB4Liy4LijCivguJXguYnguK3guIfguITguJTguLUKK+C4leC5ieC4reC4h+C5g+C4iAor4LiV4Lit4LiH4LiV4Lit4LiiCivguJXguYnguK3guIfguJXguLIKK+C4leC5ieC4reC4h+C5gOC4lQor4LiV4Lit4LiH4LmB4LiV4LiBCivguJXguYjguK3guIfguYHguJXguYjguIcKK+C4leC5ieC4reC4h+C5guC4l+C4qQor4LiV4LmJ4Lit4LiH4LiY4Lij4LiT4Li14Liq4Liy4LijCivguJXguK3guIfguYDguJvguKPguLXguKLguIcKK+C4leC5ieC4reC4h+C4quC4ueC5iQor4LiV4LmJ4Lit4LiH4Lir4LiyCivguJXguK3guIfguYDguKvguKXguLfguK3guIcKK+C4leC4reC4lAor4LiV4Lit4LiU4LiV4LmI4LitCivguJXguYjguK3guJXguLIKK+C4leC5iOC4reC4leC5ieC4suC4mQor4LiV4LmI4Lit4LiV4Liy4LihCivguJXguYjguK3guJXguLUKK+C4leC5iOC4reC5geC4leC5ieC4oQor4LiV4Lit4LiZCivguJXguYnguK3guJkKK+C4leC5ieC4reC4meC4o+C4seC4mgor4LiV4LmJ4Lit4LiZ4Lij4Lix4Lia4LiC4Lix4Lia4Liq4Li54LmJCivguJXguYnguK3guJnguKvguKHguLnguYDguILguYnguLLguYDguKXguYnguLIKK+C4leC5iOC4reC4meC4seC4lOC4leC5iOC4reC5geC4meC4hwor4LiV4LmJ4Lit4LmA4LiZ4Li34LmJ4LitCivguJXguK3guJoKK+C4leC4reC4muC5guC4leC5iQor4LiV4Lit4Lia4LmB4LiX4LiZCivguJXguK3guYDguJrguLIKK+C4leC5iOC4reC4m+C4suC4gQor4LiV4LmI4Lit4Lib4Liy4LiB4LiV4LmI4Lit4LiE4LizCivguJXguYjguK3guJvguLLguIHguKvguKXguLLguIHguITguLMKK+C4leC4reC4oQor4LiV4LmI4Lit4LihCivguJXguYvguK3guKEKK+C4leC5iOC4reC4oeC4meC5ieC4swor4LiV4LmI4Lit4Lih4LmC4Lil4Lir4Li04LiVCivguJXguK3guKHguYjguK0KK+C4leC5iOC4reC4ogor4LiV4LmJ4Lit4LiiCivguJXguYnguK3guKLguYYKK+C4leC5ieC4reC4ouC4leC4o+C4tOC5iOC4hwor4LiV4LmJ4Lit4Lii4LiV4Li04LmI4LiHCivguJXguYnguK3guKLguJXguLXguKfguLTguJQKK+C4leC5iOC4reC4ouC4q+C4reC4ogor4LiV4Lit4LmB4LiiCivguJXguYjguK3guYHguKLguYnguIcKK+C4leC4reC4o+C5jOC4m+C4tOC5guC4lAor4LiV4LmI4Lit4Lil4LmJ4Lit4LiV4LmI4Lit4LmA4LiW4Li14Lii4LiHCivguJXguYnguK3guKXguLPguYTguKIKK+C4leC5ieC4reC4peC4tOC5ieC4meC4q+C4oeC4sgor4LiV4LmI4Lit4Lin4LmI4LiyCivguJXguYjguK3guKrguLnguYkKK+C4leC5iOC4reC5hOC4quC5iQor4LiV4LmI4Lit4Lir4LiZ4LmJ4LiyCivguJXguYjguK3guKvguJnguYnguLLguKHguLDguJ7guKXguLHguJog4Lil4Lix4Lia4Lir4Lil4Lix4LiH4LiV4Liw4LmC4LiBCivguJXguYnguK3guKvguLTguJkKK+C4leC4reC5geC4q+C4pQor4LiV4LmI4Lit4Lit4Liy4Lii4Li4CivguJXguLAKK+C4leC4sOC4geC4o+C4mQor4LiV4Liw4LiB4Lij4Lin4LiiCivguJXguLDguIHguKPguYnguK0KK+C4leC4sOC4geC4o+C5iOC4reC4oQor4LiV4Liw4LiB4Lij4Lix4LiZCivguJXguLDguIHguKPguLHguJoKK+C4leC4sOC4geC4o+C5ieC4sgor4LiV4Liw4LiB4Lij4Liy4LihCivguJXguLDguIHguKPguLjguJQKK+C4leC4sOC4geC4o+C4uOC4oQor4LiV4Liw4LiB4Lij4Li44Lih4LiV4Liw4LiB4Lij4Liy4LihCivguJXguLDguIHguKXguLAKK+C4leC4sOC4geC4peC4suC4oQor4LiV4Liw4LiB4Lin4LiUCivguJXguLDguIHguK0KK+C4leC4sOC4geC4reC4mQor4LiV4Liw4LiB4Lix4LiHCivguJXguLDguIHguLHguYjguKcKK+C4leC4sOC4geC4seC5iOC4p+C5gOC4geC4o+C4teC4ouC4mgor4LiV4Liw4LiB4Lix4LmI4Lin4LmB4LiU4LiHCivguJXguLDguIHguLHguYjguKfguJXguLHguJQKK+C4leC4sOC4geC4suC4hwor4LiV4Liw4LiB4Liy4LiUCivguJXguLDguIHguLLguKIKK+C4leC4sOC4geC4suC4pwor4LiV4Liw4LiB4Li44LiB4LiV4Liw4LiB4Lix4LiBCivguJXguLDguIHguLjguKIKK+C4leC4sOC4geC4uOC4ouC4leC4sOC4geC4suC4ogor4LiV4Liw4LiB4Li5CivguJXguLDguIHguLnguJQKK+C4leC4sOC5gOC4geC4teC4ouC4geC4leC4sOC4geC4suC4ogor4LiV4Liw4LmA4LiB4Li14Lii4LiHCivguJXguLDguYDguIHguLXguKLguIfguYHguIHguYrguKoKK+C4leC4sOC5gOC4geC4teC4ouC4h+C4o+C4seC5ieC4pwor4LiV4Liw4LmA4LiB4Li14Lii4LiH4Lil4Liy4LiZCivguJXguLDguYDguIHguLXguKLguJoKK+C4leC4sOC5geC4gQor4LiV4Liw4LmB4LiB4LmICivguJXguLDguYHguIHguKPguIcKK+C4leC4sOC5guC4gQor4LiV4Liw4LmC4LiB4LmJCivguJXguLDguYLguIHguIEKK+C4leC4sOC5guC4geC4guC4suC4pwor4LiV4Liw4LmC4LiB4LiU4LizCivguJXguLDguYLguIHguJkKK+C4leC4sOC5guC4geC4o+C4hwor4LiV4Liw4LmC4LiB4Lij4LihCivguJXguLDguYLguIHguKrguYnguKEKK+C4leC4sOC5hOC4geC4owor4LiV4Liw4LiC4LiaCivguJXguLDguILguJrguJ3guKPguLHguYjguIcKK+C4leC4sOC4guC4rQor4LiV4Liw4LiC4Liy4LiaCivguJXguLDguILguLTguJTguJXguLDguILguKfguIcKK+C4leC4sOC5gOC4guC5iQor4LiV4Liw4LmA4LiC4LmJ4LiC4Lia4Lif4Lix4LiZCivguJXguLDguYDguILguYfguJoKK+C4leC4sOC5gOC4guC5h+C4muC5hOC4leC5iOC4guC4reC4mQor4LiV4Liw4LmA4LiC4Li04LiHCivguJXguLDguYLguILguIcKK+C4leC4sOC4hOC4o+C5ieC4rQor4LiV4Liw4LiE4Lij4Lit4LiHCivguJXguLDguITguKPguLHguYjguJnguJXguLDguITguKPguK0KK+C4leC4sOC4hOC4o+C5ieC4swor4LiV4Liw4LiE4Lij4Li04LinCivguJXguLDguITguKPguLjguJoKK+C4leC4sOC4hOC4o+C4uOC4muC4geC4mgor4LiV4Liw4LiE4Lil4Lix4Lia4LiV4Liw4LiE4Lil4LmJ4Liy4LiiCivguJXguLDguITguK3guIEKK+C4leC4sOC4hOC4seC4mQor4LiV4Liw4LiE4LmJ4LiyCivguJXguLDguITguLLguIEKK+C4leC4sOC4hOC4suC4hwor4LiV4Liw4LiE4LmJ4Liy4LiX4Lit4LiHCivguJXguLDguITguYnguLLguJkKK+C4leC4sOC4hOC4tOC4pwor4LiV4Liw4LiE4Li44LmI4LihCivguJXguLDguITguLjguYjguKHguYYKK+C4leC4sOC5gOC4hOC4o+C4teC4ouC4pwor4LiV4Liw4LmA4LiE4Li14Lii4LiZCivguJXguLDguYDguITguLXguKLguJnguJfguK3guIcKK+C4leC4sOC5gOC4hOC4teC4ouC4meC5gOC4nOC4t+C4reC4gQor4LiV4Liw4LmA4LiE4Li14Lii4LinCivguJXguLDguYHguITguIcKK+C4leC4sOC5hOC4hOC4o+C5iAor4LiV4Liw4LmE4LiE4Lij4LmJCivguJXguLDguYTguITguKPguYnguYHguJTguIcKK+C4leC4sOC5hOC4hOC4o+C5ieC4meC5ieC4swor4LiV4Liw4LmE4LiE4Lij4LmJ4Lia4LiBCivguJXguLDguYTguITguKPguYnguKvguK3guKEKK+C4leC4sOC5hOC4hOC4o+C5ieC4q+C4suC4h+C4meC4suC4hAor4LiV4Liw4LmA4LiG4LmICivguJXguLDguYHguIfguYkKK+C4leC4sOC4leC4tOC4mQor4LiV4Liw4LmB4LiV4Lij4LmJ4LiZCivguJXguLDguJnguK3guKIKK+C4leC4sOC4meC4suC4pwor4LiV4Liw4Lia4LihCivguJXguLDguJrguK3guIcKK+C4leC4sOC4muC4reC4h+C4geC4seC4mQor4LiV4Liw4Lia4Lit4LiH4LmB4LiU4LiHCivguJXguLDguJrguK3guIfguYDguJ7guIrguKMKK+C4leC4sOC4muC4reC4ogor4LiV4Liw4Lia4Lix4LiZCivguJXguLDguJrguLHguJnguYTguJ8KK+C4leC4sOC4muC4tOC5ieC4hwor4LiV4Liw4Lia4Li04LiUCivguJXguLDguJrguLTguJTguJXguLDguJrguK3guKIKK+C4leC4sOC4muC4teC5ieC4leC4sOC4muC4seC4mQor4LiV4Liw4Lia4Li24LiHCivguJXguLDguJrguLjguYnguKIKK+C4leC4sOC4muC4uOC5ieC4ouC5hgor4LiV4Liw4Lia4Li54LiZCivguJXguLDguYDguJrguYfguIcKK+C4leC4sOC5gOC4muC5h+C4h+C4oeC4suC4mQor4LiV4Liw4LmB4Lia4LiBCivguJXguLDguYHguJrguIcKK+C4leC4sOC5geC4muC4h+C4oeC4suC4mQor4LiV4Liw4LmC4Lia4LihCivguJXguLDguYTguJoKK+C4leC4sOC4m+C4mgor4LiV4Liw4Lib4Lil4Li04LiHCivguJXguLDguJvguLHguJTguJXguLDguJvguYjguK3guIcKK+C4leC4sOC4m+C4tOC5ieC4hwor4LiV4Liw4Lib4Li44LmI4Lih4LiV4Liw4Lib4LmI4LizCivguJXguLDguJvguLkKK+C4leC4sOC4m+C4ueC5gOC4guC5h+C4oQor4LiV4Liw4Lib4Li54LiE4Lin4LiHCivguJXguLDguJvguLnguKvguLHguKfguYDguKvguYfguJQKK+C4leC4sOC4nuC4hwor4LiV4Liw4Lie4LiUCivguJXguLDguJ7guK3guIcKK+C4leC4sOC4nuC4seC4gQor4LiV4Liw4Lie4Lix4LiHCivguJXguLDguJ7guLHguJQKK+C4leC4sOC4nuC4seC5ieC4mQor4LiV4Liw4Lie4Liy4LiBCivguJXguLDguJ7guLLguJkKK+C4leC4sOC4nuC4suC4meC4iuC5ieC4suC4hwor4LiV4Liw4Lie4Liy4LiZ4Lir4LiZ4Li5CivguJXguLDguJ7guLLguJoKK+C4leC4sOC4nuC4suC4muC4meC5ieC4swor4LiV4Liw4Lie4Liy4LiiCivguJXguLDguJ7guLLguKLguYHguKXguYjguIcKK+C4leC4sOC4nuC4tuC4lAor4LiV4Liw4Lie4Li24LiU4LiV4Liw4Lie4Li34LitCivguJXguLDguJ7guLjguYjguJkKK+C4leC4sOC4nuC4uOC5iOC4meC4q+C4jeC5ieC4suC4iuC5ieC4suC4hwor4LiV4Liw4LmA4Lie4Lij4LiyCivguJXguLDguYDguJ7guLTguIcKK+C4leC4sOC5gOC4nuC4tOC4lAor4LiV4Liw4LmA4Lie4Li04LmI4LiZCivguJXguLDguYDguJ7guLXguKLguJkKK+C4leC4sOC5gOC4nuC4teC4ouC4meC4l+C4reC4hwor4LiV4Liw4LmA4Lie4Li14Lii4LiZ4LiZ4LmJ4Liz4LmA4LiE4LmH4LihCivguJXguLDguYLguJ7guIEKK+C4leC4sOC5guC4nuC4hwor4LiV4Liw4LmC4Lie4LiZCivguJXguLDguYDguKDguLIKK+C4leC4sOC5gOC4oOC4suC5gOC4lOC4teC4ouC4p+C4geC4seC4mQor4LiV4Liw4LmD4Lig4LmJCivguJXguLDguKHguYjguK0KK+C4leC4sOC4oeC4reC4ogor4LiV4Liw4Lii4Lit4LiH4Liq4Liw4Lil4LiyCivguJXguLDguKPguLHguIcKK+C4leC4sOC4o+C4seC4h+C4geC4sOC4meC4uQor4LiV4Liw4Lij4Lix4LiH4LiV4Lix4LiH4LiB4Lin4Liy4LiHCivguJXguLDguKPguLHguIfguJXguLHguIfguIrguYnguLLguIcKK+C4leC4sOC4o+C4suC4hwor4LiV4Liw4Lil4Lit4LiHCivguJXguLDguKXguK3guJkKK+C4leC4sOC4peC5iOC4reC4oQor4LiV4Liw4Lil4LmI4Lit4Lih4LiC4LmJ4Liy4LinCivguJXguLDguKXguYjguK3guKHguJvguYnguK3guKEKK+C4leC4sOC4peC4sAor4LiV4Liw4Lil4Liy4LiZCivguJXguLDguKXguLTguIfguJvguKXguLTguIcKK+C4leC4sOC4peC4tOC4mgor4LiV4Liw4Lil4Li14LiV4Liw4Lil4Liy4LiZCivguJXguLDguKXguLbguIcKK+C4leC4sOC4peC4tuC4h+C4nuC4o+C4tuC4h+C5gOC4nuC4o+C4tOC4lAor4LiV4Liw4Lil4Li44LiHCivguJXguLDguKXguLjguYjguKEKK+C4leC4sOC4peC4uOC5iOC4oeC4meC4gQor4LiV4Liw4Lil4Li44Lih4Lia4Lit4LiZCivguJXguLDguKXguLjguYjguKHguYLguJvguIcKK+C4leC4sOC4peC4uOC4oeC4nuC4rQor4LiV4Liw4Lil4Li44Lih4Lie4Li44LiBCivguJXguLDguKXguLjguYjguKHguK3guLTguJQKK+C4leC4sOC4peC4uOC4ogor4LiV4Liw4LmA4Lil4LiHCivguJXguLDguYHguKXguIfguYHguIHguIcKK+C4leC4sOC5hOC4pQor4LiV4Liw4Lin4Lix4LiZCivguJXguLDguKfguLHguJnguILguLbguYnguJkKK+C4leC4sOC4p+C4seC4meC4leC4gQor4LiV4Liw4Lin4Lix4LiZ4Lii4Lit4LmB4Liq4LiHCivguJXguLDguKfguLHguJnguK3guK3guIEKK+C4leC4sOC4p+C4seC4meC4reC4reC4geC4geC4peC4suC4hwor4LiV4Liw4Lin4Lix4LiZ4Lit4Lit4LiB4LmD4LiB4Lil4LmJCivguJXguLDguKfguLHguJnguK3guK3guIHguYTguIHguKUKK+C4leC4sOC4p+C4seC4meC4reC5ieC4reC4oeC4guC5ieC4suC4pwor4LiV4Liw4Lin4Liy4LiHCivguJXguLDguYDguKfguJkKK+C4leC4sOC4q+C4meC4tuC5iOC4h+C4o+C4seC4lAor4LiV4Liw4Lir4Lil4Li04LinCivguJXguLDguKvguKXguLjguIEKK+C4leC4sOC4q+C4peC4uOC4hwor4LiV4Liw4LmA4Lir4Lil4LiZ4LmA4Lib4LmL4LiZCivguJXguLDguYDguKvguKXguLLguLDguYDguJvguLLguLAKK+C4leC4sOC5geC4q+C4h+C5iOC4p+C5hgor4LiV4Liw4LmB4Lir4Lih4Liw4LmB4LiC4LiwCivguJXguLDguYHguKvguKXguJnguYHguJvguYvguJkKK+C4leC4sOC5guC4q+C4h+C4gQor4LiV4Lix4LiBCivguJXguLHguIHguIHguLAKK+C4leC4seC4geC4leC4p+C4hwor4LiV4Lix4LiB4LmA4LiV4Li34Lit4LiZCivguJXguLHguYrguIHguYHguJXguJkKK+C4leC4seC4geC4meC5ieC4s+C4o+C4lOC4q+C4seC4p+C4leC4rQor4LiV4Lix4LiB4LiZ4LmJ4Liz4Lij4LiU4Lir4Lix4Lin4Liq4Liy4LiBCivguJXguLHguIHguJnguYnguLPguYPguKrguYjguIHguLDguYLguKvguKXguIEg4LiK4Liw4LmC4LiH4LiB4LiU4Li54LmA4LiH4LiyCivguJXguLHguIHguJrguLLguJXguKMKK+C4leC4seC4geC4muC4suC4leC4o+C4reC4ouC5iOC4suC4luC4suC4oeC4nuC4o+C4sAor4LiV4Lix4LiB4Lip4LiTCivguJXguLHguIHguKnguJPguLUKK+C4leC4seC4geC4qeC4seC4ogor4LiV4Lix4LiHCivguJXguLHguYjguIcKK+C4leC4seC5ieC4hwor4LiV4Lix4LmJ4LiH4LiB4Lij4LihCivguJXguLHguIfguYDguIEKK+C4leC4seC5ieC4h+C5gOC4guC5h+C4oQor4LiV4Lix4LmJ4LiH4LmE4LiC4LmICivguJXguLHguYnguIfguYDguITguYnguLIKK+C4leC4seC5ieC4h+C5geC4h+C5iAor4LiV4Lix4LmJ4LiH4LmD4LiICivguJXguLHguIfguInguYjguLLguKIKK+C4leC4seC5ieC4h+C4leC5ieC4mQor4LiV4Lix4LmJ4LiH4LiV4Lix4LinCivguJXguLHguYnguIfguJXguLLguITguK3guKIKK+C4leC4seC4h+C4leC4tOC4lAor4LiV4Lix4LmJ4LiH4LmB4LiV4LmICivguJXguLHguYnguIfguYHguJXguYjguIcKK+C4leC4seC5ieC4h+C5guC4leC5iuC4sAor4LiV4Lix4LmJ4LiH4LiX4LmI4LiyCivguJXguLHguYnguIfguJjguLLguJXguLgKK+C4leC4seC5ieC4h+C4meC4suC4rOC4tOC4geC4sgor4LiV4Lix4LmJ4LiH4LiZ4Liy4Lis4Li04LiB4Liy4Lib4Lil4Li44LiBCivguJXguLHguYnguIfguYDguJvguYnguLLguKvguKHguLLguKIKK+C4leC4seC4h+C5gOC4oQor4LiV4Lix4LiH4Lin4Liy4LiiCivguJXguLHguYnguIfguKvguJnguYnguLIKK+C4leC4seC5ieC4h+C4q+C4meC5ieC4suC4leC4seC5ieC4h+C4leC4sgor4LiV4Lix4LmJ4LiH4Lir4Lix4Lin4LmA4Lij4Li34LitCivguJXguLHguYnguIfguK3guIHguJXguLHguYnguIfguYPguIgKK+C4leC4seC4h+C5guC4reC5iwor4LiV4Lix4LiI4LiJ4LiBCivguJXguLHguIjguInguJnguLUKK+C4leC4seC4k+C4keC4uOC4pQor4LiV4Lix4LiT4Lir4Lix4LiB4Lip4Lix4LiiCivguJXguLHguJPguKvguLIKK+C4leC4seC4lAor4LiV4Lix4LiU4LiB4Lix4LiZCivguJXguLHguJTguILguLLguJQKK+C4leC4seC4lOC5g+C4iAor4LiV4Lix4LiU4LiK4LmI4Lit4LiH4LiZ4LmJ4Lit4Lii4LmB4LiV4LmI4Lie4Lit4LiV4Lix4LinCivguJXguLHguJTguIrguYjguK3guIfguKLguYjguK3guIfguYDguJrguLIKK+C4leC4seC4lOC5gOC4iuC4t+C4reC4gQor4LiV4Lix4LiU4LiN4Liy4LiV4Li04LiC4Liy4LiU4Lih4Li04LiV4LijCivguJXguLHguJTguJXguYnguJnguYTguJ8KK+C4leC4seC4lOC4leC4reC4mQor4LiV4Lix4LiU4LiW4LiZ4LiZCivguJXguLHguJTguJfguLLguIcKK+C4leC4seC4lOC4muC4lwor4LiV4Lix4LiU4Lib4Lij4Liw4LmA4LiU4LmH4LiZCivguJXguLHguJTguYDguJvguYfguJnguJXguLHguJTguJXguLLguKIKK+C4leC4seC4lOC4nuC5ieC4rQor4LiV4Lix4LiU4LmE4Lie4LmICivguJXguLHguJTguYTguJ/guJXguYnguJnguKXguKEKK+C4leC4seC4lOC5hOC4n+C4q+C4seC4p+C4peC4oQor4LiV4Lix4LiU4LmE4Lih4LmJ4LiC4LmI4Lih4LiZ4Liy4LihCivguJXguLHguJTguKPguK3guJkKK+C4leC4seC4lOC4o+C4suC4hOC4sgor4LiV4Lix4LiU4Liq4Li04LiZCivguJXguLHguJTguKrguLTguJnguYPguIgKK+C4leC4seC4lOC5gOC4quC5ieC4mQor4LiV4Lix4LiU4Lir4LiZ4LiX4Liy4LiHCivguJXguLHguJTguKvguJnguYnguLIKK+C4leC4seC4lOC4q+C4meC5ieC4suC4ieC4suC4mQor4LiV4Lix4LiU4Lir4LiZ4Liy4Lih4Lit4Lii4LmI4Liy4LmE4Lin4LmJ4Lir4LiZ4LmI4LitCivguJXguLHguJTguKvguLLguIfguJvguKXguYjguK3guKLguKfguLHguJQKK+C4leC4seC4leC4py0KK+C4leC4seC4leC4p+C4qOC4suC4quC4leC4o+C5jAor4LiV4Lix4LiW4Lii4LmMCivguJXguLHguJkKK+C4leC4seC4meC4hOC4reC4q+C4reC4ogor4LiV4Lix4LiZ4LiV4Lij4LiwCivguJXguLHguJnguJXguLQKK+C4leC4seC4meC4leC4tOC4oOC4suC4qeC4sgor4LiV4Lix4LiZ4Lib4Lix4LiN4LiN4LiyCivguJXguLHguJnguKvguKLguIcKK+C4leC4seC4meC5gOC4q+C4tOC4oQor4LiV4Lix4LiZ4Lit4LiB4LiV4Lix4LiZ4LmD4LiICivguJXguLHguJoKK+C4leC4seC4muC5geC4guC5h+C4hwor4LiV4Lix4Lia4LmA4LiV4LmI4LiyCivguJXguLHguJrguYDguJXguYjguLLguILguLLguKcKK+C4leC4seC4muC4m+C4tOC5ieC4hwor4LiV4Lix4Lia4LmA4Lib4LmH4LiUCivguJXguLHguJrguYDguJ7guKXguIcKK+C4leC4seC4muC5gOC4o+C4t+C5iOC4reC4hwor4LiV4Lix4Lia4LmA4Lir4Lil4LmH4LiBCivguJXguLHguJrguK3guYjguK3guJkKK+C4leC4seC4pwor4LiV4Lix4LmL4LinCivguJXguLHguKfguIHguKXguLHguYjguJkKK+C4leC4seC4p+C4geC4peC4suC4hwor4LiV4Lix4Lin4LiB4Liy4LijCivguJXguLHguKfguYDguIHguYfguIcKK+C4leC4seC4p+C4hOC4ueC4k+C4o+C5iOC4p+C4oeC4meC5ieC4reC4ogor4LiV4Lix4Lin4LmC4LiECivguJXguLHguKfguYPguITguKPguJXguLHguKfguKHguLHguJkKK+C4leC4seC4p+C5gOC4h+C4tOC4mQor4LiV4Lix4LmL4Lin4LmA4LiH4Li04LiZCivguJXguLHguYvguKfguYDguIfguLTguJnguITguKXguLHguIcKK+C4leC4seC5i+C4p+C5gOC4h+C4tOC4meC4iOC5iOC4suC4ogor4LiV4Lix4LmL4Lin4LmA4LiH4Li04LiZ4Lij4Lix4LiaCivguJXguLHguKfguIjguLHguIHguKPguYPguKvguI3guYgKK+C4leC4seC4p+C4iOC4s+C4meC4swor4LiV4Lix4Lin4LiI4Li14LmK4LiUCivguJXguLHguKfguYDguIrguLTguJQKK+C4leC4seC4p+C4lOC4tQor4LiV4Lix4Lin4LiV4LmI4Lit4LiV4Lix4LinCivguJXguLHguKfguJXguLHguYnguIcKK+C4leC4seC4p+C4leC4seC5ieC4h+C4leC4seC4p+C4leC4tQor4LiV4Lix4Lin4LiV4Liy4Lii4LiV4Lix4Lin4LmB4LiX4LiZCivguJXguLHguKfguJXguLfguJQKK+C4leC4seC4p+C5gOC4leC5h+C4hwor4LiV4Lix4Lin4LmB4LiX4LiZCivguJXguLHguKfguYHguJfguJnguITguYnguLLguJXguYjguLLguIcKK+C4leC4seC4p+C5geC4l+C4meC4iuC5iOC4p+C4hwor4LiV4Lix4Lin4LmB4LiX4LiZ4LmA4LiK4Li04LiUCivguJXguLHguKfguJnguLLguIcKK+C4leC4seC4p+C4meC4swor4LiV4Lix4Lin4Lib4Lij4Liw4LiB4Lit4LiaCivguJXguLHguKfguJvguKPguLDguIHguLHguJkKK+C4leC4seC4p+C5gOC4m+C5h+C4meC5gOC4geC4peC4teC4ouC4pwor4LiV4Lix4Lin4LmA4Lib4Lil4LmI4LiyCivguJXguLHguKfguYHguJvguKMKK+C4leC4seC4p+C4nOC4ueC5iQor4LiV4Lix4LmJ4Lin4LmC4LicCivguJXguLHguKfguJ7guKPguLAKK+C4leC4seC4p+C4nuC4tOC4oeC4nuC5jAor4LiV4Lix4Lin4LmA4Lih4Li14LiiCivguJXguLHguKfguYDguKHguLfguK3guIcKK+C4leC4seC4p+C5hOC4oeC5iQor4LiV4Lix4Lin4Lii4Li34LiZCivguJXguLHguKfguYDguKXguIIKK+C4leC4seC5i+C4p+C5geC4peC4geC5gOC4h+C4tOC4mQor4LiV4Lix4Lin4Liq4Liw4LiB4LiUCivguJXguLHguYvguKfguKrguLHguI3guI3guLLguYPguIrguYnguYDguIfguLTguJkKK+C4leC4seC5ieC4p+C4quC4tOC4pwor4LiV4Lix4Lin4Lir4LiZ4Lix4LiH4Liq4Li34LitCivguJXguLHguKfguKvguLLguKPguKPguYjguKfguKHguKHguLLguIEKK+C4leC4seC5ieC4p+C5gOC4q+C4teC5iOC4ogor4LiV4Lix4Lin4Lit4Lii4LmI4Liy4LiHCivguJXguLHguKfguYDguK3guIEKK+C4leC4sgor4LiV4Liy4LiBCivguJXguLLguIHguJXguJkKK+C4leC4suC4geC4mgor4LiV4Liy4LiB4Lia4LiV4Liy4LmA4LiC4Li14Lii4LiUCivguJXguLLguIHguKXguYnguK3guIcKK+C4leC4suC4geC4peC4seC4mgor4LiV4Liy4LiB4Lil4LmJ4LiyCivguJXguLLguIHguKfguLLguIcKK+C4leC4suC4geC4quC4oeC4reC4hwor4LiV4Liy4LiB4Lir4LiZ4LmJ4LiyCivguJXguLLguIHguK3guLLguIHguLLguKgKK+C4leC4suC4geC4uOC5ieC4hwor4LiV4Liy4LmC4LiB4LmJ4LiHCivguJXguLLguYTguIHguYgKK+C4leC4suC4guC4p+C4suC4hwor4LiV4Liy4LiC4LitCivguJXguLLguILguYjguLLguKIKK+C4leC4suC4guC4suC4pwor4LiV4Liy4LiC4Li44LmI4LiZ4LiV4Liy4LmA4LiC4Li14Lii4LinCivguJXguLLguYDguIIKK+C4leC4suC5geC4guC5h+C4hwor4LiV4Liy4LiE4LihCivguJXguLLguITguYnguLLguIcKK+C4leC4suC4hwor4LiV4LmI4Liy4LiHCivguJXguYjguLLguIfguYYKK+C4leC5iOC4suC4h+C4lOC5ieC4suC4pwor4LiV4LmI4Liy4LiH4Lin4LmI4LiyCivguJXguYjguLLguIfguKvguLLguIEKK+C4leC4suC4h+C4seC4pwor4LiV4Liy4LiI4Lij4Liw4LmA4LiC4LmJCivguJXguLLguIrguLHguYjguIcKK+C4leC4suC4iuC5ieC4suC4hwor4LiV4Liy4LiUCivguJXguLLguYDguJTguLXguKLguKcKK+C4leC4suC5geC4lOC4hwor4LiV4Liy4LiV4LiB4LiB4Lil4LmJ4LiyCivguJXguLLguJXguLHguYrguIHguYHguJXguJkKK+C4leC4suC4leC4seC5ieC4hwor4LiV4Liy4LiV4Liy4Lij4Liy4LiHCivguJXguLLguJXguLXguYgKK+C4leC4suC4leC4uOC5iOC4oQor4LiV4Liy4LmA4LiV4LmH4LiHCivguJXguLLguYLguJUKK+C4leC4suC4luC4seC5iOC4pwor4LiV4Liy4LiX4Lin4LiUCivguJXguLLguJfguLHguJ4KK+C4leC4suC4mQor4LiV4LmI4Liy4LiZCivguJXguYnguLLguJkKK+C4leC4suC4meC4geC5geC4geC5ieC4pwor4LiV4Liy4LiZ4LiC4LmC4Lih4LiiCivguJXguYnguLLguJnguJfguLLguJkKK+C4leC4suC4meC4meC4geC4geC4lAor4LiV4Liy4LiZ4LmA4Liq4Li14LmJ4Lii4LiZCivguJXguLLguJnguKvguIEKK+C4leC4suC4meC4q+C4oeC5iOC4reC4mQor4LiV4Liy4LiZ4LmA4Lir4Lil4Li34Lit4LiHCivguJXguLLguJnguYnguLMKK+C4leC4suC4meC4tQor4LiV4Liy4LiaCivguJXguLLguJrguJfguLHguJoKK+C4leC4suC4muC4l+C4tOC4qAor4LiV4Liy4Lia4Lit4LiUCivguJXguLLguJrguK3guJTguITguKXguLPguIrguYnguLLguIcKK+C4leC4suC4muC4reC4lOC5hOC4lOC5ieC5geC4p+C5iOC4mQor4LiV4Liy4Lia4Lit4LiU4LiV4Liy4LmD4LiqCivguJXguLLguJrguK3guJTguKrguK3guJTguJXguLLguYDguKvguYfguJkKK+C4leC4suC4muC4reC4lOC4quC4tQor4LiV4Liy4Lib4Lil4LiyCivguJXguLLguJvguKXguLLguJTguLjguIEKK+C4leC4suC4m+C4tQor4LiV4Liy4Lib4Li14LiV4Liy4LiK4Liy4LiV4Li0CivguJXguLLguJvguLkKK+C4leC4suC5gOC4m+C5h+C4meC4oeC4seC4mQor4LiV4Liy4LmA4Lib4LmH4LiZ4Liq4Lix4Lia4Lib4Liw4Lij4LiUCivguJXguLLguYLguJvguYjguIcKK+C4leC4suC4neC4seC5iOC4hwor4LiV4Liy4Lid4Liy4LiUCivguJXguLLguJ7guKPguYjguLIKK+C4leC4suC4nuC4reC4hwor4LiV4Liy4Lif4Liy4LiHCivguJXguLLguJ/guLLguIfguYTguIHguYgKK+C4leC4suC5gOC4n+C4t+C5ieC4reC4h+C4leC4suC4quC4peC4tuC4hwor4LiV4Liy4LihCivguJXguLLguKHguIHguKfguLLguIcKK+C4leC4suC4oeC4hOC4p+C4suC4ogor4LiV4Liy4Lih4LmD4LiICivguJXguLLguKHguYPguIjguJvguLLguIHguKHguLLguIHguKvguJnguLXguYkKK+C4leC4suC4oeC5g+C4iOC4m+C4suC4geC4peC4s+C4muC4suC4geC4l+C5ieC4reC4hwor4LiV4Liy4Lih4LiUCivguJXguLLguKHguJfguLUKK+C4leC4suC4oeC5gOC4meC4t+C5ieC4reC4nOC5ieC4sgor4LiV4Liy4Lih4Lia4Li44LiN4LiV4Liy4Lih4LiB4Lij4Lij4LihCivguJXguLLguKHguJ4tCivguJXguLLguKHguJ7guKvguLHguJXguJbguLUKK+C4leC4suC4oeC4nuC4sAor4LiV4Liy4Lih4LmA4Lie4Lil4LiHCivguJXguLLguKHguKHguLUKK+C4leC4suC4oeC4oeC4teC4leC4suC4oeC5gOC4geC4tOC4lAor4LiV4Liy4Lih4Lii4LiW4Liy4LiB4Lij4Lij4LihCivguJXguLLguKHguYDguKPguLfguYjguK3guIfguJXguLLguKHguKPguLLguKcKK+C4leC4suC4oeC4peC4oeC4leC4suC4oeC5geC4peC5ieC4hwor4LiV4Liy4Lih4Lil4Liz4Lie4Lix4LiHCivguJXguLLguKHguK3guLPguYDguKDguK3guYPguIgKK+C4leC4suC4oeC4sOC5geC4mQor4LiV4Liy4Lih4Li04LiZCivguJXguLLguKHguLXguJXguLLguKHguLIKK+C4leC4suC5geC4oeC4pwor4LiV4Liy4LiiCivguJXguYnguLLguKIKK+C4leC4suC4ouC4guC4suC4mQor4LiV4Liy4Lii4LiC4Li44LiiCivguJXguLLguKLguITguLLguJfguLXguYgKK+C4leC4suC4ouC5guC4hOC4oQor4LiV4Liy4Lii4LmD4LiICivguJXguLLguKLguIvguLLguIEKK+C4leC4suC4ouC4lOC5ieC4suC4mQor4LiV4Liy4Lii4LiU4Liy4Lia4Lir4LiZ4LmJ4LiyCivguJXguLLguKLguJXguLHguKcKK+C4leC4suC4ouC4l+C4seC5ieC4h+C4geC4peC4oQor4LiV4Liy4Lii4LiZ4LmJ4Lit4LiiCivguJXguLLguKLguJnguLbguYjguIcKK+C4leC4suC4ouC4m+C4o+C4sOC4iuC4lOC4m+C5iOC4suC4iuC5ieC4sgor4LiV4Liy4Lii4LmA4Lib4LmH4LiZ4LmA4Lia4Li34LitCivguJXguLLguKLguJ3guK3guKIKK+C4leC4suC4ouC4neC4seC4h+C4ouC4seC4h+C5gOC4peC4teC5ieC4ouC4hwor4LiV4Liy4Lii4Lie4Lij4Liy4LiiCivguJXguLLguKLguKPguLLguJoKK+C4leC4suC4ouC4peC4suC4oAor4LiV4Liy4Lii4Lir4LmI4LiyCivguJXguLLguKLguYLguKvguIcKK+C4leC4suC4ouC4reC4lOC4leC4suC4ouC4reC4ouC4suC4gQor4LiV4Liy4Lij4Liy4LiHCivguJXguLLguKPguLLguIfguKrguK3guJkKK+C4leC4suC4o+C4suC4h+C5gOC4q+C4peC4teC5iOC4ouC4oQor4LiV4Liy4Lij4Liy4LmE4LiVCivguJXguLLguKPguYnguLLguKIKK+C4leC4suC4o+C4tOC5ieC4pwor4LiV4Liy4LmA4Lij4Li34LitCivguJXguLLguYDguKPguLfguK3guIrguLHguKIKK+C4leC4suC4pQor4LiV4Liy4Lil4Lib4Lix4LiV4LijCivguJXguLLguKXguJvguLHguJXguKPguJrguLHguIfguYDguJ7guKXguLTguIcKK+C4leC4suC4peC4m+C4seC4leC4o+C4pOC5heC4qeC4tQor4LiV4Liy4Lil4LihCivguJXguLLguKXguKLguK3guJTguJTguYnguKfguJkKK+C4leC4suC4peC4rQor4LiV4Liy4Lil4Lit4LiiCivguJXguLLguKXguLLguJkKK+C4leC4suC4peC4suC4ogor4LiV4Liy4Lil4Li14LiV4Liy4LmA4Lir4Lil4Li34Lit4LiBCivguJXguLLguKXguLgKK+C4leC4suC4peC4uOC4gQor4LiV4Liy4Lil4Li44LiB4LiV4Liy4LiK4Lix4LiZCivguJXguLLguKXguLjguIrguLAKK+C4leC4suC5gOC4peC5h+C4geC4leC4suC4meC5ieC4reC4ogor4LiV4Liy4LinCivguJXguYvguLLguKcKK+C4leC4suC5guC4qOC4gQor4LiV4Liy4Liq4LmI4Lit4LiZCivguJXguLLguKrguLPguYDguKDguLIKK+C4leC4suC4quC4teC4leC4suC4quC4sgor4LiV4Liy4LmA4Liq4Li34LitCivguJXguLLguKvguJnguLkKK+C4leC4suC4q+C4oeC4suC4geC4o+C4uOC4gQor4LiV4Liy4Lir4Lii4Li1CivguJXguLLguKvguKXguLTguYjguIcKK+C4leC4suC4q+C4p+C4suC4mQor4LiV4Liy4LmA4Lir4Lil4LmICivguJXguLLguYDguKvguKXguKcKK+C4leC4suC5gOC4q+C4peC4t+C4reC4gQor4LiV4Liy4LmA4Lir4Lil4Li34Lit4LiB4LiV4Liy4Lie4Lit4LiHCivguJXguLLguYHguKvguKfguJkKK+C4leC4suC4rAor4LiV4Liy4Lit4LmJ4Lit4LiiCivguJXguLLguYDguK3guIEKK+C4leC4swor4LiV4LmI4LizCivguJXguLPguILguYnguLLguKfguKrguLLguKPguIHguKPguK3guIHguKvguKHguYnguK0KK+C4leC5iOC4s+C5g+C4iAor4LiV4LmI4Liz4LiK4LmJ4LiyCivguJXguYjguLPguJXguJkKK+C4leC5iOC4s+C4leC5ieC4reC4ogor4LiV4Liz4LiV4LiyCivguJXguLPguJnguLLguJkKK+C4leC4s+C4meC5ieC4s+C4nuC4o+C4tOC4geC4peC4sOC4peC4suC4ouC5geC4oeC5iOC4meC5ieC4swor4LiV4Liz4LmA4LiZ4Li04LiZCivguJXguLPguYDguJnguLXguKLguJkKK+C4leC4s+C4muC4pQor4LiV4Liz4LmB4LiaCivguJXguYnguLPguJvguLjguIEKK+C4leC5ieC4s+C4nOC4suC4hwor4LiV4LmJ4Liz4Lie4Lij4Lin4LiUCivguJXguLPguYHguKIKK+C4leC4s+C5geC4ouC5geC4oeC4pwor4LiV4Liz4Lij4Lin4LiICivguJXguLPguKPguKfguIjguJnguITguKPguJrguLLguKUKK+C4leC4s+C4o+C4p+C4iOC4oOC4ueC4mOC4owor4LiV4Liz4Lij4Lin4LiI4Lin4Lix4LiHCivguJXguLPguKPguKfguIjguKvguKXguKfguIcKK+C4leC4s+C4o+C4seC4mgor4LiV4Liz4Lij4LiyCivguJXguLPguKPguLgKK+C4leC4s+C4peC4tuC4hwor4LiV4Liz4Liq4LmJ4LihCivguJXguLPguYDguKrguLIKK+C4leC4s+C4q+C4meC4seC4gQor4LiV4Liz4Lir4LiZ4Lix4LiB4LiZ4LmJ4LizCivguJXguLPguKvguJnguLHguIHguYHguJ4KK+C4leC4s+C4q+C4meC4tAor4LiV4Liz4Lir4Lij4LiwCivguJXguLPguYHguKvguJnguYjguIcKK+C4leC4s+C5geC4q+C4meC5iOC4h+C4l+C4teC5iOC4leC4seC5ieC4hwor4LiV4Li0CivguJXguLTguIEtCivguJXguLTguIHguLAKK+C4leC4tOC4geC4suC4q+C4o+C4seC4hwor4LiV4Li04LiHCivguJXguLTguYjguIcKK+C4leC4tOC5i+C4hwor4LiV4Li04LmL4LiH4LmGCivguJXguLTguYjguIfguJXguLHguYjguIcKK+C4leC4tOC4h+C4l+C4uOC5gOC4peC4sgor4LiV4Li04LiH4LiqLQor4LiV4Li04LiH4Liq4LiV4Li0CivguJXguLTguIfguKrguJXguLTguKEtCivguJXguLTguYjguIfguKvguLLguKIKK+C4leC4tOC4kwor4LiV4Li04LiTLQor4LiV4Li04LiT4LiK4Liy4LiV4Li0CivguJXguLTguJQKK+C4leC4tOC4lOC5hgor4LiV4Li04LiU4LiB4Lij4Liw4LiU4Li44LihCivguJXguLTguJTguIHguLHguJPguJHguYzguYDguJfguKjguJnguYwKK+C4leC4tOC4lOC5gOC4geC5ieC4hwor4LiV4Li04LiU4LiC4Lix4LiUCivguJXguLTguJTguYDguITguKPguLfguYjguK3guIcKK+C4leC4tOC4lOC4iOC4sAor4LiV4Li04LiU4LiI4Lix4LiB4Lij4Lii4Liy4LiZCivguJXguLTguJTguYPguIgKK+C4leC4tOC4lOC4leC4peC4gQor4LiV4Li04LiU4LiV4Lil4Liy4LiUCivguJXguLTguJTguJXguYjguK0KK+C4leC4tOC4lOC4leC5ieC4reC4ouC4q+C5ieC4reC4ouC4leC4suC4oQor4LiV4Li04LiU4LiV4Liw4LiB4Lij4LmJ4LitCivguJXguLTguJTguJXguLHguKcKK+C4leC4tOC4lOC4leC4sgor4LiV4Li04LiU4LiV4Liy4LihCivguJXguLTguJTguJXguLfguYnguJkKK+C4leC4tOC4lOC4muC4p+C4gQor4LiV4Li04LiU4Lia4LmI4Lit4LiZCivguJXguLTguJTguJvguLLguIEKK+C4leC4tOC4lOC4nuC4seC4mQor4LiV4Li04LiU4LmE4LifCivguJXguLTguJTguKHguLfguK0KK+C4leC4tOC4lOC5hOC4oeC5ieC4leC4tOC4lOC4oeC4t+C4rQor4LiV4Li04LiU4Lij4LmI4Liy4LiH4LmB4LirCivguJXguLTguJTguKXguJoKK+C4leC4tOC4lOC4peC4oQor4LiV4Li04LiU4Lio4Lix4Lie4LiX4LmMCivguJXguLTguJTguKrguK3guKLguKvguYnguK3guKLguJXguLLguKEKK+C4leC4tOC4lOC4quC4seC4lAor4LiV4Li04LiU4Liq4Liz4LiZ4Lin4LiZCivguJXguLTguJTguKrguLTguJnguJrguJkKK+C4leC4tOC4lOC4q+C4meC5ieC4suC4leC4suC4oeC4q+C4peC4seC4hwor4LiV4Li04LiU4Lir4Lih4Lix4LiUCivguJXguLTguJTguKvguKXguLHguIfguYHguKsKK+C4leC4tOC4lOC5geC4q+C5ieC4hwor4LiV4Li04LiU4Lit4Lix4LiZ4LiU4Lix4LiaCivguJXguLTguJTguK3guYjguLLguIcKK+C4leC4tOC4leC4leC4tOC4gQor4LiV4Li04LiV4LiV4Li04LijCivguJXguLTguJXguJYKK+C4leC4tOC5gOC4leC4teC4ouC4mQor4LiV4Li04LiW4Li1CivguJXguLTguJvguLIKK+C4leC4tOC4m+C4suC4luC4sAor4LiV4Li04Lih4Li0CivguJXguLTguKHguLTguIfguITguKXguLAKK+C4leC4tOC4owor4LiV4Li04Lij4Lix4LiI4LiJ4Liy4LiZCivguJXguLTguYDguKPguLfguK3guJfguLHguYnguIfguYLguIHguKXguJkKK+C4leC4tOC4pQor4LiV4Li04Lil4LiBCivguJXguLTguYnguKcKK+C4leC4tOC5ieC4p+C5g+C4muC5gOC4peC4t+C5iOC4reC4oQor4LiV4Li1CivguJXguLXguYgKK+C4leC4teC4geC4o+C4o+C5gOC4iuC4teC4ouC4hwor4LiV4Li14LiB4Liy4LiBCivguJXguLXguIHguLTguJkKK+C4leC4teC5gOC4geC4peC5h+C4lAor4LiV4Li14LmA4LiB4Lil4Li14Lii4LinCivguJXguLXguYTguIHguYgKK+C4leC4teC4guC4meC4suC4mgor4LiV4Li14LiC4Lil4Li44LihCivguJXguLXguITguKfguLLguKEKK+C4leC4teC4hOC4rQor4LiV4Li14LiE4Li54LmICivguJXguLXguIfguLnguYPguKvguYnguIHguLLguIHguLTguJkKK+C4leC4teC4h+C4ueC5g+C4q+C5ieC4q+C4peC4seC4h+C4q+C4seC4gQor4LiV4Li14LiI4Liy4LiBCivguJXguLXguIrguLTguIcKK+C4leC4teC4leC4meC4geC5iOC4reC4meC5hOC4guC5iQor4LiV4Li14LiV4LiZ4LiV4Liy4Lii4LiB4LmI4Lit4LiZ4LmE4LiC4LmJCivguJXguLXguJXguKPguKfguJkKK+C4leC4teC4leC4seC5i+C4pwor4LiV4Li14LiV4LmI4Liy4LiHCivguJXguLXguJXguLfguYnguJkKK+C4leC4teC5geC4leC4sAor4LiV4Li14LmC4LiV4LmJCivguJXguLXguJfguK3guIcKK+C4leC4teC4l+C4sOC5gOC4muC4teC4ouC4mQor4LiV4Li14LiX4LmJ4Liy4Lii4LiE4Lij4Lix4LinCivguJXguLXguJfguYnguLLguKLguJnguYnguLMKK+C4leC4teC4mQor4LiV4Li14LiZ4LiB4LiyCivguJXguLXguJnguITguKPguLgKK+C4leC4teC4meC4hOC4ueC5iQor4LiV4Li14LiZ4LiI4LiBCivguJXguLXguJnguIjguYnguLMKK+C4leC4teC4meC4leC4sOC4guC4suC4mgor4LiV4Li14LiZ4LiV4Li44LmK4LiB4LmB4LiBCivguJXguLXguJnguYDguJXguYjguLIKK+C4leC4teC4meC4luC4teC4muC4m+C4suC4geC4geC4seC4lAor4LiV4Li14LiZ4LmA4LiX4LmI4Liy4Lid4Liy4Lir4Lit4LiiCivguJXguLXguJnguYDguJfguLXguKLguJkKK+C4leC4teC4meC4meC4gQor4LiV4Li14LiZ4LmA4Lib4LmH4LiUCivguJXguLXguJnguJzguLUKK+C4leC4teC4meC5geC4o+C4lAor4LiV4Li14LiZ4LmC4Lij4LiH4LiV4Li14LiZ4Lio4Liy4LilCivguJXguLXguJnguYDguKvguKLguLXguKLguJQKK+C4leC4teC4mgor4LiV4Li14Lia4Lij4Lij4LiX4Lix4LiUCivguJXguLXguJrguLHguIfguIHguLHguYnguJkKK+C4leC4teC5iOC5g+C4muC5iQor4LiV4Li14Lib4Lil4Liy4Lir4LiZ4LmJ4Liy4LmE4LiLCivguJXguLXguJvguYjguLIKK+C4leC4teC5iOC4m+C5ieC4suC4mgor4LiV4Li14Lib4LmI4Liy4LmD4Lir4LmJ4LmA4Liq4Li34Lit4LiB4Lil4Lix4LinCivguJXguLXguJvguLXguIEKK+C4leC4teC5geC4m+C4peC4hwor4LiV4Li14Lic4Li1CivguJXguLXguJzguLbguYnguIcKK+C4leC4teC5geC4nOC5iAor4LiV4Li14Lid4Li14Lib4Liy4LiBCivguJXguLXguYLguJ7guKLguJXguLXguJ7guLLguKIKK+C4leC4teC4oeC4reC4hwor4LiV4Li14Lij4LiW4LiwCivguJXguLXguKPguLAKK+C4leC4teC4o+C4seC5ieC4hwor4LiV4Li14Lil4Lix4LiH4LiB4LiyCivguJXguLXguKfguIcKK+C4leC4teC4p+C4seC4p+C4geC4o+C4sOC4l+C4muC4hOC4o+C4suC4lAor4LiV4Li14Liq4LiZ4Li04LiXCivguJXguLXguKrguK3guIfguKvguJnguYnguLIKK+C4leC4teC4quC4s+C4meC4p+C4mQor4LiV4Li14LmA4Liq4LmJ4LiZCivguJXguLXguYDguKrguKHguK0KK+C4leC4teC5gOC4quC4teC4ouC4hwor4LiV4Li14LmA4Liq4Li14Lii4Lin4LmI4LiyCivguJXguLXguKvguJnguYnguLIKK+C4leC4teC4q+C4meC5ieC4suC4leC4suC4ogor4LiV4Li14Lir4LiZ4LmJ4Liy4Lii4Lix4LiB4Lip4LmMCivguJXguLXguKvguKXguLLguKLguKvguJnguYnguLIKK+C4leC4teC4q+C5iOC4suC4hwor4LiV4Li14Lit4Lin4LiZCivguJXguLXguK3guLXguJXguLfguYnguK0KK+C4leC4tgor4LiV4Li24LmGCivguJXguLbguIEKK+C4leC4tuC4geC5hgor4LiV4Li24LmJ4LiB4LmGCivguJXguLbguYnguIHguJXguLHguYnguIEKK+C4leC4tuC4geC5geC4luC4pwor4LiV4Li24LiB4Lij4Liw4Lif4LmJ4LiyCivguJXguLbguIcKK+C4leC4tuC4h+C5hgor4LiV4Li24LiH4LmA4LiE4Lij4Li14Lii4LiUCivguJXguLbguIfguJXguLHguIcKK+C4leC4tuC4h+C4leC4seC4pwor4LiV4Li24LiH4LmA4Lib4Lij4Li14LmK4Lii4LiwCivguJXguLbguJTguJXguLfguYvguK0KK+C4leC4tuC5iuC4lOC4leC4t+C5i+C4rQor4LiV4Li24LiV4Lix4LiHCivguJXguLfguJQKK+C4leC4t+C5iOC4mQor4LiV4Li34LmJ4LiZCivguJXguLfguYjguJnguILguYjguLLguKcKK+C4leC4t+C5ieC4meC4leC4seC4mQor4LiV4Li34LmJ4LiZ4LiV4Lix4LiZ4LmD4LiICivguJXguLfguYjguJnguJXguLHguKcKK+C4leC4t+C5iOC4meC4leC4suC4leC4t+C5iOC4meC5g+C4iAor4LiV4Li34LmI4LiZ4LiV4Liy4LiiCivguJXguLfguYjguJnguJXguLnguKEKK+C4leC4t+C5iOC4meC5gOC4leC5ieC4mQor4LiV4Li34LmI4LiZ4LmB4LiV4LmI4LiU4Li24LiBIOC4quC4tuC4geC5geC4leC5iOC4q+C4meC4uOC5iOC4oQor4LiV4Li34LmI4LiZ4Lif4LmJ4LiyCivguJXguLfguYnguK0KK+C4leC4t+C5iuC4rQor4LiV4Li34LmL4LitCivguJXguLgKK+C4leC4uOC5hgor4LiV4Li44LmKCivguJXguLjguYrguIHguYHguIEKK+C4leC4uOC5iuC4geC5geC4geC5g+C4muC4geC4peC4oQor4LiV4Li44LmK4LiB4LiV4LiyCivguJXguLjguYrguIHguJXguLLguKXguYnguKHguKXguLjguIEKK+C4leC4uOC5iuC4geC4leC4suC5gOC4quC4teC4ouC4geC4muC4suC4pQor4LiV4Li44LmK4LiB4LiV4LmI4LizCivguJXguLjguYrguIHguJXguYjguLPguJnguYnguLPguJfguK3guIcKK+C4leC4uOC4geC4leC4tOC4gQor4LiV4Li44LmK4LiB4LiV4Li04LmK4LiBCivguJXguLjguYrguIHguJXguLjguYjguJkKK+C4leC4uOC5iuC4geC4leC4uOC5i+C4ogor4LiV4Li44LiHCivguJXguLjguYnguIfguIHguYjguLIKK+C4leC4uOC5ieC4h+C4leC4tOC5ieC4hwor4LiV4Li44LmK4LiU4LiV4Li54LmICivguJXguLjguYrguJXguYrguLAKK+C4leC4uOC4leC4seC4hwor4LiV4Li44LiZCivguJXguLjguYjguJkKK+C4leC4uOC5iOC4meC5hgor4LiV4Li44LmL4LiZCivguJXguLjguYjguJnguJXguYjguLLguJkKK+C4leC4uOC4meC4suC4q+C4h+C4seC4mQor4LiV4Li44Lia4LmGCivguJXguLjguYnguJoKK+C4leC4uOC5ieC4muC5hgor4LiV4Li44LmJ4Lia4LiV4Lix4LmJ4LiaCivguJXguLjguYrguJrguJvguYjguK3guIcKK+C4leC4uOC4m+C4seC4lOC4leC4uOC4m+C5iOC4reC4hwor4LiV4Li44Lib4Lix4LiU4LiV4Li44LmA4Lib4LmLCivguJXguLjguYjguKEKK+C4leC4uOC5ieC4oQor4LiV4Li44LmL4LihCivguJXguLjguYnguKHguIHguKfguYnguLLguKcKK+C4leC4uOC4oeC4geC4sgor4LiV4Li44LmJ4Lih4LmB4LiL4LiwCivguJXguLjguKHguJXguLHguIcKK+C4leC4uOC5ieC4oeC5gOC4leC5i+C4mQor4LiV4Li44LmJ4Lih4Lib4Li14LmICivguJXguLjguKHguJ4KK+C4leC4uOC4oeC4nuC4o+C4p+C4lAor4LiV4Li44LmJ4Lih4Lih4Liw4Lie4Lij4LmJ4Liy4LinCivguJXguLjguYnguKHguKvguLkKK+C4leC4uOC5iOC4ogor4LiV4Li44LmI4Lii4LmGCivguJXguLjguYnguKIKK+C4leC4uOC5ieC4ouC5hgor4LiV4Li44LmK4LiiCivguJXguLjguYvguKLguJXguLjguYjguKIKK+C4leC4uOC4o+C4hAor4LiV4Li44Lij4LiH4LiELQor4LiV4Li44Lij4LiH4LiE4LmMCivguJXguLjguKPguIfguITguKPguLLguKfguLUKK+C4leC4uOC4o+C4tOC4ouC4suC4h+C4hOC5jAor4LiV4Li44LilCivguJXguLjguKXguKrguLQKK+C4leC4uOC4peC4sgor4LiV4Li44Lil4Liy4LiB4Liy4LijCivguJXguLjguKXguLLguITguKEKK+C4leC4uOC4q+C4o+C4seC4lOC4leC4uOC5gOC4q+C4o+C5iAor4LiV4Li5CivguJXguLnguYgKK+C4leC4ueC5iQor4LiV4Li54LiBCivguJXguLnguILguYnguLIKK+C4leC4ueC4lAor4LiV4Li54LiU4LiH4Lit4LiZCivguJXguLnguYjguJXguLHguKcKK+C4leC4ueC5ieC4meC4tOC4o+C4oOC4seC4ogor4LiV4Li54LiaCivguJXguLnguYnguJ7guKPguLDguKHguLLguKXguLHguKIKK+C4leC4ueC5iOC4nuC4uOC4l+C4mOC4nuC4iOC4meC5jAor4LiV4Li54LihCivguJXguLnguKHguYYKK+C4leC4ueC4oeC4leC4suC4oQor4LiV4Li54Lil4Li04LmI4LiZ4Liu4Li34LmJ4LitCivguJXguLnguKvguJnguLIKK+C5gOC4lQor4LmA4LiV4LiBCivguYDguJXguYrguIEKK+C5gOC4leC5h+C4hwor4LmA4LiV4LmI4LiHCivguYDguJXguIoKK+C5gOC4leC5guC4igor4LmA4LiV4LmC4LiK4LiY4Liy4LiV4Li4CivguYDguJXguYnguJkKK+C5gOC4leC5ieC4meC4geC4tOC4meC4o+C4s+C4geC4tOC4mQor4LmA4LiV4LmJ4LiZ4LmA4LiC4LiZCivguYDguJXguYfguJnguJfguYwKK+C5gOC4leC5ieC4meC4o+C4swor4LmA4LiV4LmJ4LiZ4LmB4Lij4LmJ4LiH4LmA4LiV4LmJ4LiZ4LiB4LiyCivguYDguJXguYnguJnguYHguKPguYnguIfguYDguJXguYnguJnguYHguInguYjguIcKK+C5gOC4leC5h+C4oQor4LmA4LiV4LmH4Lih4LmB4LiB4LiZCivguYDguJXguYfguKHguITguKPguLLguJoKK+C5gOC4leC5h+C4oeC5g+C4iAor4LmA4LiV4LmH4Lih4LiV4Lix4LinCivguYDguJXguYfguKHguJXguLIKK+C5gOC4leC5h+C4oeC4leC4t+C5ieC4mQor4LmA4LiV4LmH4Lih4LmA4LiV4LmH4LiHCivguYDguJXguYfguKHguJfguLUKK+C5gOC4leC5h+C4oeC4l+C4teC5iAor4LmA4LiV4LmH4Lih4Lia4Liy4LiXCivguYDguJXguYfguKHguJvguKPguLDguJTguLIKK+C5gOC4leC5h+C4oeC4m+C4o+C4sOC4leC4uQor4LmA4LiV4LmH4Lih4Lib4Liy4LiBCivguYDguJXguYfguKHguYDguJvguLIKK+C5gOC4leC5h+C4oeC4oeC4t+C4rQor4LmA4LiV4LmH4Lih4LmA4Lih4LmH4LiU4LmA4LiV4LmH4Lih4Lir4LiZ4LmI4Lin4LiiCivguYDguJXguYfguKHguYTguKHguYnguYDguJXguYfguKHguKHguLfguK0KK+C5gOC4leC5h+C4oeC4ouC4qAor4LmA4LiV4LmH4Lih4Lij4Lix4LiBCivguYDguJXguYfguKHguKvguLkKK+C5gOC4leC5h+C4oeC5gOC4q+C4meC4teC5iOC4ouC4pwor4LmA4LiV4LmH4Lih4LmA4Lir4Lii4Li14Lii4LiUCivguYDguJXguYfguKHguK3guIEKK+C5gOC4leC5h+C4oeC4reC4geC5gOC4leC5h+C4oeC5g+C4iAor4LmA4LiV4LmH4Lih4Lit4Lix4LiV4Lij4LiyCivguYDguJXguKIKK+C5gOC4leC4ouC5gOC4peC4t+C5ieC4reC4ogor4LmA4LiV4Lij4LmICivguYDguJXguKPguYfguJQKK+C5gOC4leC4o+C5h+C4lOC5gOC4leC4o+C5iAor4LmA4LiV4Lij4LmH4LiU4LmA4LiV4Lij4LiZCivguYDguJXguKPguJkKK+C5gOC4leC4o+C4tOC4hwor4LmA4LiV4Lij4Li14Lii4LiUCivguYDguJXguKPguLXguKLguJoKK+C5gOC4leC4o+C4teC4ouC4oQor4LmA4LiV4Lij4Li14Lii4Lih4LiV4Lij4LihCivguYDguJXguKPguLXguKLguKHguJXguLHguKcKK+C5gOC4leC4o+C4teC4ouC4oeC4nuC4o+C5ieC4reC4oQor4LmA4LiV4Lil4LiwCivguYDguJXguKXguLTguJQKK+C5gOC4leC4p+C5h+C4lAor4LmA4LiV4LmI4LitCivguYDguJXguK3guLAKK+C5gOC4leC4sAor4LmA4LiV4Liw4LiI4Lih4Li54LiBCivguYDguJXguLDguInguLLguIEKK+C5gOC4leC4sOC5guC4lOC5iOC4hwor4LmA4LiV4Liw4LiV4LiyCivguYDguJXguLDguJ3guLjguYjguJkKK+C5gOC4leC4sgor4LmA4LiV4LmI4LiyCivguYDguJXguYnguLIKK+C5gOC4leC5i+C4sgor4LmA4LiV4LmI4Liy4LiB4Lij4Liw4Liq4Li44LiZCivguYDguJXguYjguLLguIHguLTguJnguJzguLHguIHguJrguLjguYnguIcKK+C5gOC4leC5iOC4suC5gOC4geC4teC4ouC4lAor4LmA4LiV4Liy4LmB4LiB4LmK4LiqCivguYDguJXguYvguLLguYDguILguKLguYjguLIKK+C5gOC4leC5ieC4suC5geC4hOC4mQor4LmA4LiV4LmJ4Liy4LmA4LiI4Li14LmJ4Lii4LinCivguYDguJXguYjguLLguJTguLMKK+C5gOC4leC5iOC4suC4l+C4reC4hwor4LmA4LiV4LmI4Liy4LiX4Lit4LmA4Liq4Li34LmI4LitCivguYDguJXguYnguLLguJfguLbguIcKK+C5gOC4leC4suC4l+C4uOC5gOC4o+C4teC4ouC4hwor4LmA4LiV4LmI4Liy4LiZ4LiyCivguYDguJXguYjguLLguJrguYnguLIKK+C5gOC4leC5ieC4suC4m+C4t+C4mQor4LmA4LiV4Liy4Lic4Li04LiHCivguYDguJXguLLguJ/guLnguYgKK+C5gOC4leC4suC5hOC4nwor4LmA4LiV4LmI4Liy4Lij4Lix4LmJ4LiHCivguYDguJXguYnguLLguKPguLHguJoKK+C5gOC4leC5iOC4suC4o+C5ieC4suC4hwor4LmA4LiV4Liy4Lij4Li14LiUCivguYDguJXguYjguLLguYDguKXguLfguK3guJkKK+C5gOC4leC5ieC4suC4quC5iOC4p+C4mQor4LmA4LiV4Liy4Liq4Li54LiaCivguYDguJXguYnguLLguYDguKrguLXguKLguJoKK+C5gOC4leC5iOC4suC4q+C4gQor4LmA4LiV4LmI4Liy4Lir4Lin4Liy4LiiCivguYDguJXguYjguLLguKvguLHguJoKK+C5gOC4leC5ieC4suC4q+C4ueC5iQor4LmA4LiV4LmJ4Liy4Lir4Li54LmJ4Lii4Li14LmJCivguYDguJXguYjguLLguYDguKvguKXguLXguYjguKLguKEKK+C5gOC4leC5iOC4suC5gOC4q+C4peC4t+C4reC4hwor4LmA4LiV4LmJ4Liy4Liu4Lin4LiiCivguYDguJXguYrguLLguLAKK+C5gOC4leC4suC4sOC5geC4leC4sAor4LmA4LiV4Li04LmI4LiHCivguYDguJXguLTguJnguYDguJXguYjguK0KK+C5gOC4leC4tOC4mgor4LmA4LiV4Li04Lia4LmC4LiVCivguYDguJXguLTguKEKK+C5gOC4leC4teC5ieC4ogor4LmA4LiV4Li14Lii4LiHCivguYDguJXguLXguKLguIfguKXguLIKK+C5gOC4leC4teC5ieC4ouC4leC4mQor4LmA4LiV4Li14Lii4LiZCivguYDguJXguLXguKLguJoKK+C5gOC4leC4teC5i+C4ouC4oQor4LmA4LiV4Li14Lii4Lij4LiW4LmMCivguYDguJXguLXguKLguKcKK+C5gOC4leC4teC5iOC4ouC4pwor4LmA4LiV4Li14LmJ4Lii4Lit4Li44LmJ4Lih4LiE4LmI4Lit4LihCivguYDguJXguLfguYnguK0KK+C5gOC4leC4t+C4reC4mQor4LmA4LiV4Li34Lit4LiZ4LmD4LiICivguYDguJXguLfguK3guJnguJXguLIKK+C5gOC4leC4t+C4reC4meC4quC4leC4tAor4LmB4LiV4LmICivguYHguJXguYjguYYKK+C5geC4leC5iQor4LmB4LiV4LiBCivguYHguJXguIHguITguK0KK+C5geC4leC4geC5gOC4h+C4tOC4mQor4LmB4LiV4LiB4LiJ4Liy4LiZCivguYHguJXguIHguInguLLguJnguIvguYjguLLguJnguYDguIvguYfguJkKK+C5geC4leC4geC4lOC4seC4mgor4LmB4LiV4LiB4LiV4Li34LmI4LiZCivguYHguJXguIHguYHguJXguJkKK+C5geC4leC4geC4l+C4seC4ngor4LmB4LiV4LiB4LmA4LiZ4Li34LmJ4Lit4Liq4Liy4LinCivguYHguJXguIHguYDguJnguLfguYnguK3guKvguJnguLjguYjguKEKK+C5geC4leC4geC4neC4ueC4hwor4LmB4LiV4LiB4Lie4Liy4LiZCivguYHguJXguIHguKHguLHguJkKK+C5geC4leC4geC5geC4ouC4gQor4LmB4LiV4LiB4Lij4Liw4LmB4Lir4LiHCivguYHguJXguIHguKPguYnguLLguKcKK+C5geC4leC4geC4q+C4seC4gQor4LmB4LiV4LmI4LiB4LmI4Lit4LiZ4LmB4LiV4LmI4LiB4Li14LmJCivguYHguJXguYjguIHguLXguYnguYHguJXguYjguIHguYjguK3guJkKK+C5geC4leC4hwor4LmB4LiV4LmI4LiHCivguYHguJXguYjguIfguIHguKfguYnguLLguJkKK+C5geC4leC5iOC4h+C4geC4suC4owor4LmB4LiV4LmI4LiH4LiH4Liy4LiZCivguYHguJXguYjguIfguJXguLHguYnguIcKK+C5geC4leC5iOC4h+C4leC4seC4pwor4LmB4LiV4LiH4LmA4LiW4Liy4LiV4Liy4LiiCivguYHguJXguIfguYDguKEKK+C5geC4leC4h+C4o+C5iOC4oeC5g+C4mgor4LmB4LiV4LmI4LiH4Lir4LiZ4LmJ4LiyCivguYHguJXguYjguIfguKvguJnguYnguLLguILguJnguKEKK+C5geC4leC5ieC4iOC4tOC5i+C4pwor4LmB4LiV4LiUCivguYHguJXguYrguJTguYHguJXguYsKK+C5geC4leC5iOC4l+C4p+C5iOC4sgor4LmB4LiV4LiZCivguYHguJXguYnguKEKK+C5geC4leC5ieC4oeC4hOC4uQor4LmB4LiV4LmJ4Lih4LiV4LmI4LitCivguYHguJXguKMKK+C5geC4leC4o+C4h+C4reC4mQor4LmB4LiV4Lij4LmA4LiU4Li14LmI4Lii4LinCivguYHguJXguKPguJ3guKPguLHguYjguIcKK+C5geC4leC4o+C4n+C4seC4meC4n+C4suC4o+C5jAor4LmB4LiV4Lij4Lij4LiW4Lii4LiZ4LiV4LmMCivguYHguJXguKPguKXguLPguYLguJ7guIcKK+C5geC4leC4o+C4p+C4hwor4LmB4LiV4Lij4Lin4LiH4LmC4Lii4LiY4Lin4Liy4LiX4Li04LiVCivguYHguJXguKPguLAKK+C5geC4leC5iOC4peC4sAor4LmB4LiV4LmJ4LinCivguYHguJXguYnguKfguYHguKPguYnguKcKK+C5geC4leC5ieC4p+C5geC4peC5ieC4pwor4LmB4LiV4LmI4Lin4LmI4LiyCivguYHguJXguYnguYHguKfguYnguJQKK+C5geC4leC4sAor4LmB4LiV4Liw4LiV4LmJ4Lit4LiHCivguYLguJUKK+C5guC4leC5iQor4LmC4LiV4LiBCivguYLguJXguYnguITguLLguKPguKEKK+C5guC4leC5iOC4hwor4LmC4LiV4LmJ4LiHCivguYLguJXguYnguIfguYYKK+C5guC4leC4h+C5gOC4leC4hwor4LmC4LiV4LiH4LmGIOC5gOC4leC4h+C5hgor4LmC4LiV4LiO4LiBCivguYLguJXguYrguJQKK+C5guC4leC5ieC4leC4reC4mgor4LmC4LiV4LmJ4LmA4LiW4Li14Lii4LiHCivguYLguJXguJkKK+C5guC4leC4meC4lAor4LmC4LiV4LmJ4LmC4LicCivguYLguJXguKHguKMKK+C5guC4leC4oeC4oy0KK+C5guC4leC4oeC4o+C4mOC4owor4LmC4LiV4LiiCivguYLguJXguYnguYHguKLguYnguIcKK+C5guC4leC4o+C4gQor4LmC4LiV4Lij4LiB4LmE4LiV4LijCivguYLguJXguKPguJQKK+C5guC4leC5ieC4o+C4uOC5iOC4hwor4LmC4LiV4LmA4Lil4LmI4LiZ4Lir4Liy4LiHCivguYLguJXguYnguKfguLLguJfguLUKK+C5guC4leC5ieC4q+C4peC4hwor4LmC4LiV4LmK4LiwCivguYLguJXguYrguLDguIHguKXguKEKK+C5guC4leC5iuC4sOC5guC4guC4gQor4LmC4LiV4LmK4Liw4LmA4LiX4LmJ4Liy4LiK4LmJ4Liy4LiHCivguYLguJXguYrguLDguKvguKHguLnguYgKK+C5guC4leC5iuC4sOC4q+C4oeC4ueC5iOC4muC4ueC4iuC4sgor4LmC4LiV4LmK4Liw4Lit4Li04Lir4Lih4LmI4Liy4LihCivguYPguJXguYkKK+C5g+C4leC5ieC4lOC4tOC4mQor4LmD4LiV4LmJ4LiW4Li44LiZCivguYPguJXguYnguYDguJfguYnguLIKK+C5g+C4leC5ieC5gOC4l+C5ieC4suC4geC4o+C4uOC4k+C4sgor4LmD4LiV4LmJ4LmA4LiX4LmJ4Liy4LiB4Lij4Li44LiT4Liy4LmA4LiI4LmJ4LiyCivguYPguJXguYnguJ3guYjguLLguJ7guKPguLDguJrguLLguJcKK+C5g+C4leC5ieC4neC5iOC4suC4peC4sOC4reC4reC4h+C4mOC4uOC4peC4teC4nuC4o+C4sOC4muC4suC4lwor4LmD4LiV4LmJ4Lid4LmI4Liy4Lil4Liw4Lit4Lit4LiH4Lie4Lij4Liw4Lia4Liy4LiXCivguYTguJUKK+C5hOC4leC5iAor4LmE4LiV4LmJCivguYTguJXguYsKK+C5hOC4leC5ieC4geC5i+C4hwor4LmE4LiV4LmI4LiE4Li54LmJCivguYTguJXguYjguYDguJXguYnguLIKK+C5hOC4leC5iOC4luC4suC4oQor4LmE4LiV4Lib4Lil4LiyCivguYTguJXguYnguJ3guLjguYjguJkKK+C5hOC4leC5ieC5hOC4nwor4LmE4LiV4LmI4LmE4Lih4LmJCivguYTguJXguYjguYTguKHguYnguKXguLPguYDguJTguLXguKLguKcKK+C5hOC4leC4owor4LmE4LiV4Lij4LiB4Li04Lio4Lii4LiyCivguYTguJXguKPguIjguLHguIHguKMKK+C5hOC4leC4o+C4iOC4teC4p+C4owor4LmE4LiV4Lij4LiU4Liy4Lii4Li44LiECivguYTguJXguKPguYjguJXguKPguK3guIcKK+C5hOC4leC4o+C4leC4o+C4sgor4LmE4LiV4Lij4LiV4Lij4Li24LiH4Lip4LmMCivguYTguJXguKPguJfguKfguLLguKMKK+C5hOC4leC4o+C4l+C4qAor4LmE4LiV4Lij4LiX4Li04LieCivguYTguJXguKPguJfguLTguJ7guKLguYwKK+C5hOC4leC4o+C4m+C4tOC4juC4gQor4LmE4LiV4Lij4LmA4Lie4LiXCivguYTguJXguKPguKDguJ4KK+C5hOC4leC4o+C4oOC4suC4hOC4tQor4LmE4LiV4Lij4Lig4Li54Lih4Li0CivguYTguJXguKPguKIKK+C5hOC4leC4o+C4ouC4suC4h+C4qOC5jAor4LmE4LiV4Lij4Lij4LiH4LiE4LmMCivguYTguJXguKPguKPguLHguJXguJnguYwKK+C5hOC4leC4o+C4peC4seC4geC4qeC4k+C5jAor4LmE4LiV4Lij4LmC4Lil4LiBCivguYTguJXguKPguYLguKXguIHguKLguYwKK+C5hOC4leC4o+C4p+C4seC4jwor4LmE4LiV4Lij4Lin4Li04LiK4LiK4LiyCivguYTguJXguKPguKrguKPguJPguITguKHguJnguYwKK+C5hOC4leC4o+C4quC4o+C4k+C4suC4hOC4oeC4meC5jAor4LmE4LiV4Lij4Liq4Li04LiB4LiC4LiyCivguYTguJXguYjguKXguKfguJQKK+C5hOC4leC5iOC4quC4p+C4mQor4LmE4LiV4LmJ4Lir4Lin4Lix4LiZCivguJYKK+C4luC4gQor4LiW4LiB4LmA4LiC4Lih4LijCivguJbguIHguYDguJbguLXguKLguIcKK+C4luC4geC4pQor4LiW4LiH4Lix4LiZCivguJbguIfguLLguJQKK+C4luC4lAor4LiW4LiU4LiW4Lit4LiiCivguJbguJkKK+C4luC4meC4mQor4LiW4LiZ4LiZ4Lil4Liy4LiU4Lii4Liy4LiHCivguJbguJnguJsKK+C4luC4meC4reC4oQor4LiW4LiZ4Lit4Lih4Lit4Liy4Lir4Liy4LijCivguJbguJnguLHguJQKK+C4luC4meC4seC4lOC4guC4p+C4sgor4LiW4LiZ4Lix4LiU4LmD4LiICivguJbguJnguLHguJTguIvguYnguLLguKIKK+C4luC4meC4seC4lOC4luC4meC4teC5iAor4LiW4LiZ4Lix4LiU4Lib4Liy4LiBCivguJbguJnguLHguJTguKHguLfguK0KK+C4luC4meC4seC4mQor4LiW4LiZ4LizCivguJbguJnguLPguJfguLbguIEKK+C4luC4meC4tOC4oQor4LiW4LiZ4Li04Lih4LiB4Liy4LihCivguJbguJnguLTguKHguKrguKPguYnguK3guKIKK+C4luC4mgor4LiW4Lia4LiU4Li1CivguJbguKEKK+C4luC5iOC4oQor4LiW4Lih4LmA4LiH4Li04LiZCivguJbguKHguJXguLDguJfguK3guIcKK+C4luC4oeC4luC4t+C4lAor4LiW4Lih4LmA4LiWCivguJbguKHguJfguK3guIcKK+C4luC5iOC4oeC4meC5ieC4s+C4peC4suC4ouC4o+C4lOC4n+C5ieC4sgor4LiW4Lih4Lib4Lij4Lix4LiB4Lih4Liy4LioCivguJbguKHguJvguLHguJQKK+C4luC4oeC5hOC4mwor4LiW4LmI4Lih4Lij4LmJ4Liy4LiiCivguJbguKHguK0KK+C4luC4oeC4tuC4h+C4l+C4tuC4hwor4LiW4LilCivguJbguKXguIEKK+C4luC4peC4geC4muC4suC4leC4owor4LiW4Lil4LiZCivguJbguKXguKEKK+C4luC4peC5iOC4oQor4LiW4Lil4Lit4LiBCivguJbguKXguLHguJkKK+C4luC4peC4sgor4LiW4Lil4Liy4LiBCivguJbguKXguLLguIHguJbguKXguLMKK+C4luC4peC4suC4geC5hOC4luC4pQor4LiW4Lil4Liy4LiiCivguJbguKXguLMKK+C4luC4peC4s+C5g+C4iAor4LiW4Lil4Liz4LiV4Lix4LinCivguJbguKXguLPguJbguKXguLLguIEKK+C4luC4peC4teC4luC4peC4swor4LiW4Lil4Li24LiH4LiV4LiyCivguJbguKXguLjguIcKK+C4luC4peC4uOC4mQor4LiW4LmI4Lin4LiHCivguJbguYjguKfguIfguJTguLjguKUKK+C4luC5iOC4p+C4h+C4peC5ieC4rQor4LiW4LmJ4Lin4LiZCivguJbguYnguKfguJnguJbguLXguYgKK+C4luC5ieC4p+C4ogor4LiW4LmJ4Lin4Lii4LiV4Lin4LiHCivguJbguYnguKfguKLguYLguJbguIcKK+C4luC5ieC4p+C4ouC4o+C4suC4h+C4p+C4seC4pQor4LiW4Lin4Lix4LiUCivguJbguKfguLHguJTguJbguKfguLHguJkKK+C4luC4p+C4seC4pQor4LiW4Lin4Lix4Lil4Lii4LmMCivguJbguKfguLLguKIKK+C4luC4p+C4suC4ouC4geC4owor4LiW4Lin4Liy4Lii4LiV4Lix4LinCivguJbguKfguLLguKLguYDguJnguJXguKMKK+C4luC4p+C4suC4ouC4nuC4o+C4sOC4nuC4owor4LiW4Lin4Liy4Lii4Lir4Lix4LinCivguJbguKfguLTguJkKK+C4luC4p+C4tOC4pQor4LiW4LmI4LitCivguJbguYnguK0KK+C4luC4reC4gQor4LiW4Lit4LiHCivguJbguYjguK3guIcKK+C4luC5ieC4reC4hwor4LiW4LmI4Lit4LiH4LmB4LiW4LinCivguJbguYjguK3guIfguYHguJfguYkKK+C4luC4reC4lAor4LiW4Lit4LiU4LmA4LiC4Li14LmJ4Lii4Lin4LiW4Lit4LiU4LmA4Lil4LmH4LiaCivguJbguK3guJTguITguKfguLLguKEKK+C4luC4reC4lOC4luC4reC4mQor4LiW4Lit4LiU4LmE4Lie4LmICivguJbguK3guJTguKPguKvguLHguKoKK+C4luC4reC4lOC4o+C4ueC4mwor4LiW4Lit4LiU4Liq4Li1CivguJbguK3guJTguKvguLHguKfguYLguILguJkKK+C4luC5ieC4reC4luC4reC4ogor4LiW4LmJ4Lit4LiW4LmJ4Lit4LiiCivguJbguK3guJkKK+C4luC4reC4meC5gOC4h+C4tOC4mQor4LiW4Lit4LiZ4LmD4LiI4LmD4Lir4LiN4LmICivguJbguK3guJnguJXguYnguJnguIHguYjguJnguKPguLLguIEKK+C4luC4reC4meC4l+C4uOC4mQor4LiW4Lit4LiZ4Lie4Li04LipCivguJbguK3guJnguKLguKfguIcKK+C4luC4reC4meC4o+C4suC4geC4luC4reC4meC5guC4hOC4mQor4LiW4Lit4LiZ4Liq4Lih4LitCivguJbguK3guJnguKrguLLguKLguJrguLHguKcKK+C4luC4reC4meC4q+C4h+C4reC4gQor4LiW4Lit4LiaCivguJbguK3guJrguYHguJbguJoKK+C4luC5iOC4reC4oQor4LiW4LmI4Lit4Lih4LiV4Lix4LinCivguJbguK3guKIKK+C4luC5iOC4reC4ogor4LiW4LmJ4Lit4LiiCivguJbguK3guKLguIHguKPguLnguJQKK+C4luC5ieC4reC4ouC4hOC4p+C4suC4oQor4LiW4LmJ4Lit4Lii4LiE4LizCivguJbguK3guKLguYPguIjguYPguKvguI3guYgKK+C4luC4reC4ouC4ieC4sAor4LiW4Lit4Lii4LiJ4Liy4LiBCivguJbguK3guKLguJbguJQKK+C4luC5ieC4reC4ouC5geC4luC4peC4hwor4LiW4Lit4Lii4LiX4LiUCivguJbguK3guKLguJfguLHguJ4KK+C4luC5ieC4reC4ouC4l+C4teC4luC5ieC4reC4ouC4m+C4j+C4tOC4muC4seC4leC4tOC4leC5iOC4reC4geC4seC4mQor4LiW4LmJ4Lit4Lii4LiX4Li14LiW4LmJ4Lit4Lii4Lit4Liy4Lio4Lix4Lii4LiB4Lix4LiZCivguJbguK3guKLguKvguKXguLHguIcKK+C4luC4reC4ouC4q+C4peC4seC4h+C5gOC4guC5ieC4suC4hOC4peC4reC4hwor4LiW4LiwCivguJbguLDguIHguLHguJQKK+C4luC4sOC5gOC4geC4tOC4mQor4LiW4Liw4LmC4LiB4LiZCivguJbguLDguJbguLHguYjguJkKK+C4luC4sOC4luC4seC4mgor4LiW4Liw4LiW4Li44LiZ4LiW4Liw4LiW4Lix4LiZCivguJbguLDguKHguLHguJTguJbguLDguYHguKHguIcKK+C4luC4seC4gQor4LiW4Lix4LiHCivguJbguLHguYjguIcKK+C4luC4seC5iOC4h+C4luC5ieC4reC4ogor4LiW4Lix4LiT4LiR4Li04LilCivguJbguLHguJPguJHguLTguKUtCivguJbguLHguJPguJHguLTguKXguKrguLLguKLguLUKK+C4luC4seC4lAor4LiW4Lix4LiX4LiYCivguJbguLHguJkKK+C4luC4seC5iOC4mQor4LiW4Lix4LmI4LiZ4LmGCivguJbguLHguJoKK+C4luC4seC4muC5hgor4LiW4Lix4Lih4Lig4LmMCivguJbguLHguKcKK+C4luC4seC5iOC4pwor4LiW4Lix4LmI4Lin4LiC4Liy4LinCivguJbguLHguYjguKfguITguKPguYnguLIKK+C4luC4seC5iOC4p+C4hOC5ieC4suC4hwor4LiW4Lix4LmI4Lin4LiH4Lit4LiBCivguJbguLHguYjguKfguJTguLMKK+C4luC4seC5iOC4p+C4meC4sgor4LiW4Lix4LmI4Lin4LmB4Lib4LiaCivguJbguLHguYjguKfguYHguJvguJrguIrguYnguLLguIcKK+C4luC4seC5iOC4p+C4neC4seC4geC4ouC4suC4pwor4LiW4Lix4LmI4Lin4Lie4Lij4LmJ4LiyCivguJbguLHguYjguKfguJ7guLkKK+C4luC4seC5iOC4p+C5gOC4nuC4suC4sAor4LiW4Lix4LmI4Lin4LmB4Lih4LmI4LiV4Liy4LiiCivguJbguLHguYjguKfguYHguKPguLAKK+C4luC4seC5iOC4p+C5gOC4q+C4peC4t+C4reC4hwor4LiW4LiyCivguJbguYnguLIKK+C4luC4suC4gQor4LiW4Liy4LiB4LiW4Liy4LiHCivguJbguLLguIcKK+C4luC5iOC4suC4hwor4LiW4LmI4Liy4LiH4LiV4LiyCivguJbguLLguJQKK+C4luC4suC5guC4luC4oQor4LiW4Liy4LiZCivguJbguYjguLLguJkKK+C4luC5iOC4suC4meC5guC4hOC5ieC4gQor4LiW4LmI4Liy4LiZ4LmE4Lif4LmA4LiB4LmI4LiyCivguJbguYjguLLguJnguYTguJ/guInguLLguKIKK+C4luC5iOC4suC4meC5hOC4n+C5geC4iuC5h+C4gQor4LiW4LmI4Liy4LiZ4Lir4Li04LiZCivguJbguLLguJoKK+C4luC4suC4oQor4LiW4Liy4Lih4LiE4LmJ4Liy4LiZCivguJbguLLguKHguJXguLTguIcKK+C4luC4suC4oeC5hOC4luC5iAor4LiW4Liy4Lih4LiZ4LizCivguJbguLLguKHguJvguLLguIHguITguLMKK+C4luC4suC4oeC4sAor4LiW4LmI4Liy4LiiCivguJbguYjguLLguKLguYDguJTguLXguKLguKcKK+C4luC5iOC4suC4ouC4l+C4reC4lAor4LiW4LmI4Liy4Lii4LiX4Li44LiB4LiC4LmMCivguJbguYjguLLguKLguYDguJcKK+C4luC5iOC4suC4ouC5geC4muC4mgor4LiW4LmI4Liy4Lii4Lib4Lix4Liq4Liq4Liy4Lin4LiwCivguJbguYjguLLguKLguKDguLLguJ7guKLguJnguJXguKPguYwKK+C4luC5iOC4suC4ouC4ouC4sgor4LiW4LmI4Liy4Lii4Lij4Li54LibCivguJbguYjguLLguKLguK3guLjguIjguIjguLLguKPguLAKK+C4luC5iOC4suC4pwor4LiW4Liy4Lin4LijCivguJbguLLguKfguKMtCivguJbguLLguKfguKPguJjguLTguKPguLIKK+C4luC4suC4p+C4o+C4p+C4seC4leC4luC4uAor4LiW4LmJ4Liy4Lin4LmI4LiyCivguJbguYnguLLguKvguLLguIHguKfguYjguLIKK+C4luC5ieC4swor4LiW4LmJ4Liz4LiK4LiyCivguJbguYnguLPguKHguK3guIcKK+C4luC5ieC4s+C4ouC4suC4lOC4oQor4LiW4Li04LmI4LiZCivguJbguLTguKMtCivguJbguLUKK+C4luC4teC5iAor4LiW4Li14LmI4LmGCivguJbguLXguYjguJbguYnguKfguJkKK+C4luC4teC5iOC5gOC4l+C5ieC4sgor4LiW4Li14LiZLQor4LiW4Li14LiaCivguJbguLXguJrguIHguKPguLDguJTguLLguJkKK+C4luC4teC4muC4iOC4seC4geC4owor4LiW4Li14Lia4LiI4Lix4LiB4Lij4Lii4Liy4LiZCivguJbguLXguJrguInguLHguJQKK+C4luC4teC4muC4leC4seC4pwor4LiW4Li14Lia4LiX4Liy4LiHCivguJbguLXguJrguKPguJYKK+C4luC4teC4muC4q+C4seC4p+C4quC5iOC4hwor4LiW4Li14LmI4Lii4Li04LiaCivguJbguLXguYjguKXguK3guJTguJXguLLguIrguYnguLLguIcg4Lir4LmI4Liy4LiH4Lil4Lit4LiU4LiV4Liy4LmA4Lil4LmH4LiZCivguJbguLbguIEKK+C4luC4tuC4hwor4LiW4Li24LiH4LiB4Lix4LiZCivguJbguLbguIfguYHguIHguYjguIHguKPguKPguKEKK+C4luC4tuC4h+C5geC4geC5iOC4mQor4LiW4Li24LiH4LmB4LiB4LmI4Lie4Li04Lij4Liy4Lil4Lix4LiiCivguJbguLbguIfguYHguIHguYjguKHguKPguJPguKDguLLguJ4KK+C4luC4tuC4h+C5geC4geC5iOC4reC4meC4tOC4iOC4geC4o+C4o+C4oQor4LiW4Li24LiH4LmB4LiB4LmI4Lit4Liq4Lix4LiN4LiB4Lij4Lij4LihCivguJbguLbguIfguILguJnguLLguJQKK+C4luC4tuC4h+C4hOC4o+C4suC4pwor4LiW4Li24LiH4LiG4Liy4LiVCivguJbguLbguIfguYDguIfguLTguJkKK+C4luC4tuC4h+C5g+C4iAor4LiW4Li24LiH4LiK4Li14Lie4Li04LiV4Lix4LiB4Lip4Lix4LiiCivguJbguLbguIfguIrguLXguKfguLTguJXguLHguJnguJXguKPguLLguKIKK+C4luC4tuC4h+C4l+C4teC5iAor4LiW4Li24LiH4LmA4Lib4LmH4LiZ4LiW4Li24LiH4LiV4Liy4LiiCivguJbguLbguIfguJzguYnguLIKK+C4luC4tuC4h+C4nuC4o+C4tOC4geC4luC4tuC4h+C4guC4tOC4hwor4LiW4Li24LiH4Lil4Li54LiB4LiW4Li24LiH4LiE4LiZCivguJbguLbguIfguKfguYjguLIKK+C4luC4tuC4h+C5hOC4q+C4meC4luC4tuC4h+C4geC4seC4mQor4LiW4Li34LitCivguJbguLfguK3guIHguLPguYDguJnguLTguJQKK+C4luC4t+C4reC5guC4geC4o+C4mAor4LiW4Li34Lit4LmA4LiC4Liy4LiW4Li34Lit4LmA4Lij4LiyCivguJbguLfguK3guYPguIgKK+C4luC4t+C4reC4lOC4tQor4LiW4Li34Lit4LiV4Lix4LinCivguJbguLfguK3guJfguYnguLLguKIKK+C4luC4t+C4reC4meC5ieC4s+C4nuC4o+C4sOC4nuC4tOC4nuC4seC4kuC4meC5jOC4quC4seC4leC4ouC4sgor4LiW4Li34Lit4Lia4Lin4LiKCivguJbguLfguK3guJrguLHguIfguYDguKvguLXguKLguJkKK+C4luC4t+C4reC4m+C4ueC4mQor4LiW4Li34Lit4Lic4Li04LinCivguJbguLfguK3guJ7guKUKK+C4luC4t+C4reC4ouC4qAor4LiW4Li34Lit4Lii4Lio4LiW4Li34Lit4Lio4Lix4LiB4LiU4Li04LmMCivguJbguLfguK3guYDguKPguLLguJbguLfguK3guYDguILguLIKK+C4luC4t+C4reC4p+C5iOC4sgor4LiW4Li34Lit4Lio4Lix4LiB4LiU4Li04LiZ4LiyCivguJbguLfguK3guKjguLXguKUKK+C4luC4t+C4reC4quC4sgor4LiW4Li34Lit4Liq4Li04LiX4LiY4Li04LmMCivguJbguLfguK3guKvguLLguIcKK+C4luC4t+C4reC5guC4reC4geC4suC4qgor4LiW4Li44LiHCivguJbguLjguIfguYDguITguYnguLIKK+C4luC4uOC4h+C4leC4sOC5gOC4hOC4o+C4teC4ouC4pwor4LiW4Li44LiH4LiV4Liw4LmA4LiE4Li14Lii4LinCivguJbguLjguIfguKLguYjguLLguKEKK+C4luC4uOC4h+C4quC4s+C5gOC4o+C5h+C4iAor4LiW4Li44LiZCivguJbguLjguKIKK+C4luC4uOC4pS0KK+C4luC4uOC4peC4peC4sAor4LiW4Li5CivguJbguLnguIEKK+C4luC4ueC4geC4geC4o+C4sOC4l+C4swor4LiW4Li54LiB4LiB4Lix4LiZCivguJbguLnguIHguILguLIKK+C4luC4ueC4geC4hOC4rQor4LiW4Li54LiB4LiE4Li54LmICivguJbguLnguIHguYPguIgKK+C4luC4ueC4geC5guC4ieC4peC4gQor4LiW4Li54LiB4LiK4Liw4LiV4LiyCivguJbguLnguIHguJXguLIKK+C4luC4ueC4geC4meC5ieC4reC4ogor4LiW4Li54LiB4Lib4Liy4LiBCivguJbguLnguIHguKrguYjguKfguJkKK+C4luC4ueC4geC5gOC4quC5ieC4mQor4LiW4Li54LiB4LmD4Lir4LiN4LmICivguJbguLnguIHguK3guIHguJbguLnguIHguYPguIgKK+C4luC4ueC5hOC4lgor4LiW4Li54LibLQor4LiW4Li54Lib4Liy4Lij4Lir4Lia4Li44LiE4LiE4LilCivguJbguLnguKUtCivguJbguLnguKXguLnguYjguJbguLnguIHguLHguIcKK+C5gOC4luC4geC4tOC4hwor4LmA4LiW4LiZCivguYDguJbguKHguLTguJkKK+C5gOC4luC4oeC4tOC4meC5gOC4iuC4tOC4hwor4LmA4LiW4Lih4Li04LiZ4LmE4Lie4LijCivguYDguJbguKItCivguYDguJbguKLguIjguLTguJUKK+C5gOC4luC4ouC5gOC4iOC4leC4meC4sgor4LmA4LiW4Lii4Liq4Lix4LiH4Lin4Liy4LiqCivguYDguJbguKMKK+C5gOC4luC4oy0KK+C5gOC4luC4o+C4leC4o+C4hwor4LmA4LiW4Lij4Lig4Li54Lih4Li0CivguYDguJbguKPguKfguLLguJcKK+C5gOC4luC4o+C4quC5iOC4reC4h+C4muC4suC4leC4owor4LmA4LiW4Lij4LiwCivguYDguJbguKPguLLguJnguLjguYDguJbguKPguLAKK+C5gOC4luC4o+C4tQor4LmA4LiW4Lil4LmE4LiW4LilCivguYDguJbguKXguLTguIEKK+C5gOC4luC4peC4tOC4hwor4LmA4LiW4Lil4Li04LiH4Lio4LiBCivguYDguJbguKXguLfguK3guIHguJbguKXguJkKK+C5gOC4luC5iOC4rQor4LmA4LiW4Lit4LiwCivguYDguJbguK3guLDguJnguYjguLIKK+C5gOC4luC4sOC5hgor4LmA4LiW4LiyCivguYDguJbguYnguLIKK+C5gOC4luC5ieC4suC5geC4geC5iAor4LmA4LiW4Liy4LiE4Lix4LiZCivguYDguJbguLLguITguLHguJnguYDguKvguKXguYfguIEKK+C5gOC4luC4suC5gOC4h+C4suC4sAor4LmA4LiW4Liy4LiU4Liy4LiZCivguYDguJbguLLguKHguKfguIEKK+C5gOC4luC5ieC4suC4o+C4tuC4hwor4LmA4LiW4Liy4Lin4Lix4Lil4Lii4LmMCivguYDguJbguLLguKfguLHguKXguKLguYzguIHguKPguJQKK+C5gOC4luC4suC4p+C4seC4peC4ouC5jOC5gOC4guC4teC4ouC4pwor4LmA4LiW4Liy4Lin4Lix4Lil4Lii4LmM4Lib4Li54LiZCivguYDguJbguLLguKfguLHguKXguKLguYzguYDguJvguKPguLXguKLguIcKK+C5gOC4luC4suC4p+C4seC4peC4ouC5jOC4ouC4reC4lOC4lOC5ieC4p+C4mQor4LmA4LiW4Liy4Lin4Lix4Lil4Lii4LmM4LmA4Lir4Lil4LmH4LiBCivguYDguJbguLLguKrguLTguIfguYLguJUKK+C5gOC4luC4suC4q+C4seC4p+C4lOC5ieC4p+C4mQor4LmA4LiW4Liy4LiwCivguYDguJbguLTguIEKK+C5gOC4luC4tOC4hwor4LmA4LiW4Li04LiUCivguYDguJbguLTguJTguYDguJfguLTguIcKK+C5gOC4luC4tOC4lOC4meC5iOC4sgor4LmA4LiW4Li04LiZCivguYDguJbguLXguKLguIcKK+C5gOC4luC4teC4ouC4owor4LmA4LiW4Li34LitCivguYDguJbguLfguK3guIEKK+C5gOC4luC4t+C5iOC4reC4mQor4LmB4LiWCivguYHguJbguIEKK+C5geC4luC4hwor4LmB4LiW4LiZCivguYHguJbguJoKK+C5geC4luC4muC4muC4seC4meC4l+C4tuC4geC4oOC4suC4ngor4LmB4LiW4Lia4Lia4Lix4LiZ4LiX4Li24LiB4LmA4Liq4Li14Lii4LiHCivguYHguJbguJrguYDguKvguKXguYfguIHguJ7guLfguJQKK+C5geC4luC4oQor4LmB4LiW4Lih4Lie4LiBCivguYHguJbguKXguIcKK+C5geC4luC4peC4h+C4geC4suC4o+C4k+C5jAor4LmB4LiW4Lil4LiH4LiB4Liy4Lij4LiT4LmM4Lij4LmI4Lin4LihCivguYHguJbguKXguIfguILguYjguLLguKcKK+C5geC4luC4peC4mgor4LmB4LiW4LinCivguYLguJYKK+C5guC4luC5gOC4hOC4o+C4t+C5iOC4reC4h+C5geC4m+C5ieC4hwor4LmC4LiW4LiHCivguYLguJbguIfguYDguJbguIcKK+C5guC4luC4mgor4LmC4LiW4Lib4Lij4Li04LiBCivguYLguJbguKEKK+C5guC4luC4oeC4meC4suC4geC4suC4owor4LmC4LiW4Liq4LmJ4Lin4LihCivguYTguJYKK+C5hOC4luC5iAor4LmE4LiW4LmJCivguYTguJbguIHguKXguJoKK+C5hOC4luC4hwor4LmE4LiW4LiU4LiwCivguYTguJbguYjguJbguK3guJkKK+C5hOC4luC5iOC4luC4suC4oQor4LmE4LiW4LiZ4LiyCivguYTguJbguYjguJrguLLguJsKK+C5hOC4luC5geC4m+C4owor4LmE4LiW4LiiLQor4LmE4LiW4LilCivguJcKK+C4l+C4gQor4LiX4LiB4Lil4LmJ4LiyCivguJfguYHguIHguKXguYnguKcKK+C4l+C5iOC4hwor4LiX4LiH4Lix4LiZCivguJfguIrguLUKK+C4l+C4lAor4LiX4LiU4LiW4Lit4LiiCivguJfguJTguYHguJfguJkKK+C4l+C4lOC5guC4l+C4o+C5iOC4qwor4LiX4LiU4Lij4Lit4LiHCivguJfguJTguKXguK3guIcKK+C4l+C4lOC5gOC4peC4ggor4LiX4LiU4Liq4Lit4LiaCivguJfguJcKK+C4l+C4mOC4tAor4LiX4LiZCivguJfguYnguJkKK+C4l+C4meC4lOC4tQor4LiX4LiZ4LiVLQor4LiX4LiZ4LiV4LmMCivguJfguJnguJXguIHguLLguKnguJDguYwKK+C4l+C4meC4l+C4suC4mQor4LiX4LiZ4LmC4LiX4LmICivguJfguJnguKEKK+C4l+C4meC4suC4ogor4LiX4LiZ4Liy4Lii4LiE4Lin4Liy4LihCivguJfguJnguLLguKLguYDguKPguLfguK3guJkKK+C4l+C4meC4suC4ouC5gOC4peC4t+C4reC4gQor4LiX4LiZ4Liy4Lii4Lir4LiZ4LmJ4Liy4Lir4LitCivguJfguJoKK+C4l+C4muC4l+C4p+C4mQor4LiX4Lia4Lin4LiHCivguJfguJrguKfguIfguIHguLLguKMKK+C4l+C4muC4p+C4h+C4geC4suC4o+C5gOC4oeC4t+C4reC4hwor4LiX4LihCivguJfguKHguIEKK+C4l+C4oeC4mQor4LiX4Lih4LiaCivguJfguKHguK0KK+C4l+C4oeC4tOC4rAor4LiX4LmA4Lih4Li04LiZCivguJfguYLguKHguJkKK+C4l+C4ouC4reC4ogor4LiX4Lii4LiyCivguJfguKLguLLguKXguLgKK+C4l+C4ouC4suC4peC4uOC4gQor4LiX4LmB4Lii4LiHCivguJfguYHguKLguIfguKHguLjguKEKK+C4l+C4oy0KK+C4l+C4o+C4geC4o+C4o+C4oQor4LiX4Lij4LiHCivguJfguKPguIfguIHguKPguLDguYDguJfguLXguKLguKEKK+C4l+C4o+C4h+C4geC4peC4lAor4LiX4Lij4LiH4LiC4LmJ4Liy4Lin4Lia4Li04LiT4LiR4LmMCivguJfguKPguIfguYDguITguKPguLfguYjguK3guIcKK+C4l+C4o+C4h+C5gOC4hOC4o+C4t+C5iOC4reC4h+C5g+C4q+C4jeC5iAor4LiX4Lij4LiH4LmA4LiI4LmJ4LiyCivguJfguKPguIfguYDguIjguYnguLLguYDguILguYnguLLguJzguLUKK+C4l+C4o+C4h+C4leC4seC4gQor4LiX4Lij4LiH4Lia4Liy4LiU4Liy4LilCivguJfguKPguIfguJvguKPguLDguJ7guLLguKoKK+C4l+C4o+C4h+C4nuC4o+C4sOC5gOC4hOC4o+C4t+C5iOC4reC4h+C5g+C4q+C4jeC5iAor4LiX4Lij4LiH4Lih4Lix4LiT4LiR4LmMCivguJfguKPguIfguKXguLHguIfguIHguLIKK+C4l+C4o+C4h+C4q+C4oeC5ieC4reC4leC4suC4pQor4LiX4Lij4LiK4LiZCivguJfguKPguIrguLLguJXguLQKK+C4l+C4o+C4l+C4tuC4hwor4LiX4Lij4LiY4Li24LiBCivguJfguKPguJ7guKUKK+C4l+C4o+C4nuC4tOC4qQor4LiX4Lij4Lie4Li1CivguJfguKPguKDguLTguIHguKnguYwKK+C4l+C4o+C4oeC4suC4l+C4o+C4geC4o+C4o+C4oQor4LiX4Lij4Lih4Liy4LiZCivguJfguKPguKHguLjguIEKK+C4l+C4o+C4ouC4qAor4LiX4Lij4Lii4Li44LiECivguJfguKPguKPguJfguLbguIcKK+C4l+C4o+C4o+C4mwor4LiX4Lij4Lij4Lib4LiT4LmMCivguJfguKPguKPguJvguJPguLAKK+C4l+C4o+C4o+C4qOC4meC4sAor4LiX4Lij4Lij4Lio4LiZ4Liy4LiB4Liy4LijCivguJfguKPguKPguKjguJnguLXguKLguYwKK+C4l+C4o+C4o+C4suC4igor4LiX4Lij4Lil4Lix4LiB4Lip4LiT4LmMCivguJfguKPguYDguKXguYjguKvguYwKK+C4l+C4o+C4p+C4hwor4LiX4Lij4Lin4LiUCivguJfguKPguKfguJTguJfguKPguIcKK+C4l+C4o+C4p+C4suC4owor4LiX4Lij4Liq4Lit4LiH4LiX4Lij4Liq4Li44LihCivguJfguKPguKrguLLguKIKK+C4l+C4o+C4quC4uOC4oQor4LiX4Lij4Lir4LiUCivguJfguKPguKvguJkKK+C4l+C4o+C4q+C4p+C4pQor4LiX4Lij4Lir4Li24LiHCivguJfguKPguKvguLbguIfguJfguKPguKvguKfguKUKK+C4l+C4o+C4q+C4uQor4LiX4Lij4LmA4Lir4LilCivguJfguKPguK0KK+C4l+C4o+C4reC4oeC5guC4muC4mQor4LiX4Lij4Lit4Li24LiHCivguJfguKPguK3guLjguYnguKEKK+C4l+C4o+C4sOC4meC4hwor4LiX4Lij4Liw4LiZ4Liy4LinCivguJfguKPguLHguJ7guKItCivguJfguKPguLHguJ7guKLguYwKK+C4l+C4o+C4seC4nuC4ouC5jOC4meC4reC4geC4nuC4suC4k+C4tOC4iuC4ouC5jAor4LiX4Lij4Lix4Lie4Lii4LmM4LmD4LiZ4LiU4Li04LiZIOC4quC4tOC4meC5g+C4meC4meC5ieC4swor4LiX4Lij4Lix4Lie4Lii4LmM4Liq4Lih4Lia4Lix4LiV4Li0CivguJfguKPguLHguJ7guKLguKrguLTguJfguJjguLQKK+C4l+C4o+C4seC4nuC4ouC5jOC4quC4tOC4mQor4LiX4Lij4Lix4Lie4Lii4LmM4Liq4Li04LiZ4Liq4LmI4Lin4LiZ4Lie4Lij4Liw4Lih4Lir4Liy4LiB4Lip4Lix4LiV4Lij4Li04Lii4LmMCivguJfguKPguLHguJ7guKLguYzguKrguLTguJnguKrguYjguKfguJnguJ7guKPguLDguK3guIfguITguYwKK+C4l+C4o+C4seC4nuC4ouC5jOC4quC4tOC4meC4quC5iOC4p+C4meC4quC4suC4mOC4suC4o+C4k+C4quC4oeC4muC4seC4leC4tOC4guC4reC4h+C5geC4nOC5iOC4meC4lOC4tOC4mQor4LiX4Lij4Lix4Lie4Lii4Liy4LiB4LijCivguJfguKPguLHguJ7guKLguLLguIHguKPguJjguKPguJPguLUKK+C4l+C4o+C4seC4nuC4ouC4suC4geC4o+C4mOC4o+C4o+C4oeC4iuC4suC4leC4tAor4LiX4Lij4Lix4Lih4LmA4Lib4LmH4LiVCivguJfguKPguLLguJnguIvguLTguKrguYDguJXguK3guKPguYwKK+C4l+C4o+C4suC4mgor4LiX4Lij4Liy4Lia4LmA4LiB4Lil4LmJ4Liy4LiX4Lij4Liy4Lia4LiB4Lij4Liw4Lir4Lih4LmI4Lit4LihCivguJfguKPguLLguJrguJ3guYjguLLguJ7guKPguLDguJrguLLguJcKK+C4l+C4o+C4suC4muC4neC5iOC4suC4peC4sOC4reC4reC4h+C4mOC4uOC4peC4teC4nuC4o+C4sOC4muC4suC4lwor4LiX4Lij4Liy4Lia4Lid4LmI4Liy4Lil4Liw4Lit4Lit4LiH4Lie4Lij4Liw4Lia4Liy4LiXCivguJfguKPguLLguKEKK+C4l+C4o+C4suC4oeC4iuC4oQor4LiX4Lij4Liy4Lih4LmA4LiK4LiiCivguJfguKPguLLguKHguKfguLHguKIKK+C4l+C4o+C4suC4oeC4quC4h+C4p+C4mQor4LiX4Lij4Liy4Lih4Liq4Lin4Liy4LiXCivguJfguKPguLLguKIKK+C4l+C4o+C4suC4ouC5geC4geC5ieC4pwor4LiX4Lij4Liy4Lii4LiC4Liy4LinCivguJfguKPguLLguKLguYHguJvguYnguIcKK+C4l+C4o+C4tOC4l+C4owor4LiX4Lij4Li44LiUCivguJfguKPguLjguJTguYLguJfguKPguKEKK+C4l+C4o+C4uOC4lOC4meC4seC5iOC4hwor4LiX4Lij4Li44LihCivguJfguKPguLnguYgKK+C4l+C4pOC4hi0KK+C4l+C4pOC4qeC4juC4tQor4LiX4Lik4Lip4LiO4Li14Lia4LiXCivguJfguKUKK+C4l+C4peC4muC4oQor4LiX4Lil4Lit4Li24LiHCivguJfguKXguLLguKIKK+C4l+C4peC4tOC4lwor4LiX4Lil4Li04LiX4LiX4LiBCivguJfguKfguIcKK+C4l+C5ieC4p+C4hwor4LiX4LmJ4Lin4LiH4LiV4Li04LiHCivguJfguKfguIfguJbguLLguKEKK+C4l+C5iOC4p+C4h+C4l+C5iOC4sgor4LiX4LmI4Lin4LiH4LiX4Liz4LiZ4Lit4LiHCivguJfguYjguKfguIfguJfguLUKK+C4l+C4p+C4lAor4LiX4Lin4LiU4LiZ4LmJ4Lit4LiiCivguJfguKfguJTguLbguIfguKrguYwKK+C4l+C4p+C4mQor4LiX4LmJ4Lin4LiZCivguJfguKfguJnguJfguJoKK+C4l+C4p+C4meC4quC4muC4lgor4LiX4Lin4LiZ4Liq4Liy4Lia4Liy4LiZCivguJfguYjguKfguKEKK+C4l+C5ieC4p+C4oQor4LiX4LmJ4Lin4Lih4LmGCivguJfguYjguKfguKHguJfguYnguJkKK+C4l+C4p+C4ogor4LiX4LmI4Lin4LiiCivguJfguYnguKfguKIKK+C4l+C4p+C4ouC5guC4luC4hwor4LiX4LmI4Lin4Lii4LmC4LiW4LiHCivguJfguKfguKLguLAKK+C4l+C4p+C4reC4ogor4LiX4Lin4Lix4LiV4LiU4Li24LiH4Liq4LmMCivguJfguKfguLHguJXguJTguLbguIfguKrguLLguIHguLLguKMKK+C4l+C4p+C4seC4ogor4LiX4Lin4LiyCivguJfguKfguYjguLIKK+C4l+C4p+C4suC4leC4o+C4tuC4h+C4m+C4o+C4sOC4lOC4seC4mgor4LiX4Lin4Liy4LiX4LioCivguJfguKfguLLguJfguKjguKEtCivguJfguKfguLLguJfguKjguKHguJPguJHguKUKK+C4l+C4p+C4suC4l+C4qOC4tQor4LiX4Lin4Liy4Lia4LijCivguJfguKfguLLguJrguKPguKLguLjguIQKK+C4l+C4p+C4suC4ogor4LiX4Lin4Liy4LijCivguJfguKfguLLguKPguJfguLHguYnguIfguYDguIHguYnguLIKK+C4l+C4p+C4suC4o+C4muC4lgor4LiX4Lin4Liy4Lij4Lia4Liy4LilCivguJfguKfguLLguKPguJvguKPguLDguJTguLHguJoKK+C4l+C4p+C4tAor4LiX4Lin4Li04LiKCivguJfguKfguLTguIotCivguJfguKfguLTguIrguIfguITguYwKK+C4l+C4p+C4tOC4iuC4suC4geC4owor4LiX4Lin4Li04LiK4Liy4LiV4Li0CivguJfguKfguLTguJXguLXguKIKK+C4l+C4p+C4tOC4leC4teC4ouC4sgor4LiX4Lin4Li04Lia4LiWCivguJfguKfguLTguJrguJcKK+C4l+C4p+C4tOC4muC4suC4lwor4LiX4Lin4Li04LibCivguJfguKfguLTguKDguLLguIQKK+C4l+C4p+C4tOC4oOC4suC4hOC4tQor4LiX4Lin4Li04LijCivguJfguKfguLUKK+C4l+C4p+C4teC4hOC4ueC4kwor4LiX4Lin4Li14LiY4Liy4Lig4Li04LmA4Lip4LiBCivguJfguKfguLXguJsKK+C4l+C4p+C4teC4m+C4tQor4LiX4LioCivguJfguKgtCivguJfguKjguIrguLLguJXguLQKK+C4l+C4qOC4l+C4tOC4qAor4LiX4Lio4LiZ4Li04Lii4LihCivguJfguKjguYDguJrguI3guIjguIHguLnguKUKK+C4l+C4qOC4nuC4owor4LiX4Lio4Lie4LilCivguJfguKjguJ7guLTguJjguKPguLLguIrguJjguKPguKPguKEKK+C4l+C4qOC4oS0KK+C4l+C4qOC4oeC4suC4qgor4LiX4Lio4Lih4Li1CivguJfguKjguKfguKPguKPguKkKK+C4l+C4qOC4sgor4LiX4Lio4Liy4LiH4LiE4LmMCivguJfguKrguLIKK+C4l+C4q+C4o+C4sAor4LiX4Lir4Liy4LijCivguJfguKvguLLguKPguIHguK3guIfguJvguKPguLDguIjguLPguIHguLLguKMKK+C4l+C4q+C4suC4o+C4nOC5iOC4suC4meC4qOC4tuC4gQor4LiX4Lir4Liy4Lij4LmA4Lil4LinCivguJfguK0KK+C4l+C5iOC4rQor4LiX4LmJ4LitCivguJfguK3guIEKK+C4l+C4reC4hwor4LiX4LmI4Lit4LiHCivguJfguYnguK3guIcKK+C4l+C4reC4h+C4geC4owor4LiX4Lit4LiH4LiB4Lin4Liy4LinCivguJfguYnguK3guIfguIHguLLguIcKK+C4l+C5ieC4reC4h+C5geC4geC5iAor4LiX4Lit4LiH4LiC4Liy4LinCivguJfguYnguK3guIfguILguLLguKcKK+C4l+C5ieC4reC4h+C4guC4tuC5ieC4mQor4LiX4LmJ4Lit4LiH4LiC4Li24LmJ4LiZ4LiX4LmJ4Lit4LiH4Lie4Lit4LiHCivguJfguYnguK3guIfguYHguILguJkKK+C4l+C5ieC4reC4h+C5geC4guC4p+C4mQor4LiX4LmJ4Lit4LiH4LiE4Lix4LiU4LiX4LmJ4Lit4LiH4LmB4LiC4LmH4LiHCivguJfguK3guIfguITguLMKK+C4l+C4reC4h+C4hOC4s+C4guC4suC4pwor4LiX4Lit4LiH4LiE4Liz4LmA4Lib4Lil4LinCivguJfguYnguK3guIfguITguLjguYnguIcKK+C4l+C4reC4h+C5gOC4hAor4LiX4Lit4LiH4LmA4LiE4Lij4Li34LitCivguJfguYjguK3guIfguIjguLMKK+C4l+C5ieC4reC4h+C4ieC4meC4p+C4mQor4LiX4Lit4LiH4LiK4Lih4Lie4Li54LiZ4Li44LiXCivguJfguK3guIfguIrguLjguJoKK+C4l+C4reC4h+C4lOC4reC4geC4muC4p+C4mgor4LiX4Lit4LiH4LiU4LizCivguJfguYnguK3guIfguYDguJTguLTguJkKK+C4l+C4reC4h+C5geC4lOC4hwor4LiX4Lit4LiH4LiV4LmJ4LiZ4LmB4LiC4LiZCivguJfguYnguK3guIfguJXguKPguLIKK+C4l+C5ieC4reC4h+C4leC4peC4suC4lAor4LiX4Lit4LiH4LiV4Liy4LiB4Li5CivguJfguYnguK3guIfguJbguLTguYjguJkKK+C4l+C4reC4h+C4l+C4o+C4suC4ogor4LiX4Lit4LiH4LiX4LioCivguJfguYnguK3guIfguJfguLXguYgKK+C4l+C4reC4h+C4l+C4tuC4mgor4LiX4LmI4Lit4LiH4LmA4LiX4Li14LmI4Lii4LinCivguJfguK3guIfguJjguKPguKPguKHguIrguLLguJXguLQKK+C4l+C4reC4h+C4meC4nuC4hOC4uOC4kwor4LiX4LmJ4Lit4LiH4LiZ4LmI4Lit4LiHCivguJfguYnguK3guIfguJnguYnguK3guKIKK+C4l+C4reC4h+C4muC4o+C4reC4meC4i+C5jAor4LiX4LmJ4Lit4LiH4LmB4Lia4LiZCivguJfguK3guIfguYPguJoKK+C4l+C4reC4h+C4m+C4o+C4suC4ogor4LiX4Lit4LiH4Lib4Lil4Liy4Lii4LmB4LiC4LiZCivguJfguYnguK3guIfguJvguKXguLTguIcKK+C4l+C4reC4h+C5geC4mwor4LiX4LmJ4Lit4LiH4Lic4Li44LiX4LmJ4Lit4LiH4Lie4Lix4LiHCivguJfguYnguK3guIfguJzguLnguIEKK+C4l+C4reC4h+C5gOC4nOC4t+C4reC4gQor4LiX4Lit4LiH4LmB4Lic4LmI4LiZ4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZCivguJfguK3guIfguJ7guKPguLDguIHguKMKK+C4l+C4reC4h+C4nuC4o+C4sOC4guC4uOC4mQor4LiX4LmJ4Lit4LiH4Lie4Lij4Liw4LiE4Lil4Lix4LiHCivguJfguYnguK3guIfguJ7guKPguLDguYLguKPguIcKK+C4l+C4reC4h+C4nuC4peC4uAor4LiX4LmJ4Lit4LiH4Lie4Lil4Li4CivguJfguYnguK3guIfguJ7guK3guIcKK+C4l+C4reC4h+C4nuC4seC4lOC4lOC4tuC4h+C4quC5jAor4LiX4Lit4LiH4Lie4Lix4LiZ4LiK4Lix4LmI4LiHCivguJfguK3guIfguJ7guLHguJnguJTguLjguKUKK+C4l+C4reC4h+C4nuC4tOC4qAor4LiX4LmJ4Lit4LiH4LmA4Lif4LmJ4LitCivguJfguK3guIfguKDguLkKK+C4l+C4reC4h+C4oeC5ieC4p+C4mQor4LiX4LmJ4Lit4LiH4Lih4Liy4LiZCivguJfguYnguK3guIfguYTguKHguYkKK+C4l+C4reC4h+C5hOC4oeC5iOC4o+C4ueC5ieC4o+C5ieC4reC4mQor4LiX4Lit4LiH4Lii4LmJ4Lit4LiiCivguJfguYnguK3guIfguKLguLjguYnguIfguJ7guLjguIfguIHguKPguLDguKrguK3guJoKK+C4l+C5ieC4reC4h+C4o+C5iOC4p+C4hwor4LiX4LmJ4Lit4LiH4Lij4LmI4Lit4LiHCivguJfguK3guIfguKPguLnguJvguJ7guKPguKPguJMKK+C4l+C5ieC4reC4h+C5gOC4o+C4t+C5iOC4reC4hwor4LiX4LmJ4Lit4LiH4Lil4Liy4LiZCivguJfguK3guIfguKXguLTguJkKK+C4l+C5ieC4reC4h+C5gOC4peC4pwor4LiX4Lit4LiH4LmB4Lil4LmI4LiHCivguJfguK3guIfguKfguLTguJfguKLguLLguKjguLLguKrguJXguKPguYwKK+C4l+C4reC4h+C4quC4seC4geC5guC4gQor4LiX4Lit4LiH4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMCivguJfguYnguK3guIfguKrguLLguKcKK+C4l+C5ieC4reC4h+C4quC4s+C4meC4p+C4mQor4LiX4LmI4Lit4LiH4Liq4Li34LmI4LitCivguJfguYnguK3guIfguYDguKrguLXguKIKK+C4l+C4reC4h+C4q+C4oeC4seC5ieC4mQor4LiX4LmJ4Lit4LiH4Lir4Lih4LiyCivguJfguYnguK3guIfguKvguKHguLkKK+C4l+C4reC4h+C4q+C4ouC4reC4hwor4LiX4Lit4LiH4Lir4Lii4Lit4LiUCivguJfguK3guIfguKvguKLguLTguJoKK+C4l+C4reC4h+C4q+C4peC4suC4hwor4LiX4Lit4LiH4LmA4Lir4Lil4Li34Lit4LiHCivguJfguYnguK3guIfguYHguKvguYnguIcKK+C4l+C4reC4h+C5guC4q+C4peC4hwor4LiX4Lit4LiH4Lit4Lix4LiH4LiB4Lik4LipCivguJfguYnguK3guIfguK3guLHguKrguJTguIfguITguJUKK+C4l+C5ieC4reC4h+C4reC4t+C4lAor4LiX4Lit4LiH4Lit4Li44LmE4LijCivguJfguK3guIfguYDguK3guIEKK+C4l+C4reC4lAor4LiX4Lit4LiU4LiB4LiQ4Li04LiZCivguJfguK3guJTguYLguIHguKXguJkKK+C4l+C4reC4lOC4leC4seC4pwor4LiX4Lit4LiU4LiV4LiyCivguJfguK3guJTguJfguKTguKnguI7guLUKK+C4l+C4reC4lOC4l+C4tOC5ieC4hwor4LiX4Lit4LiU4LiX4Li14LmICivguJfguK3guJTguJnguYjguK3guIcKK+C4l+C4reC4lOC4meC5ieC4swor4LiX4Lit4LiU4Lic4LmJ4Liy4Lib4LmI4LiyCivguJfguK3guJTguJ7guKPguLDguJfguLXguYgKK+C4l+C4reC4lOC4nuC4o+C4sOC5gOC4meC4leC4owor4LiX4Lit4LiU4Lih4Lix4LiZCivguJfguK3guJTguKLguK3guJQKK+C4l+C4reC4lOC4o+C4p+C4hwor4LiX4Lit4LiU4Liq4LiB4LiyCivguJfguK3guJTguKrguKHguK0KK+C4l+C4reC4lOC4quC4sOC4nuC4suC4mQor4LiX4Lit4LiU4Liq4Liy4Lii4LiV4LiyCivguJfguK3guJTguYDguKrguLXguKLguIcKK+C4l+C4reC4lOC4q+C4jeC5ieC4sgor4LiX4Lit4LiU4Lir4Li44LmI4LiiCivguJfguK3guJTguYHguKsKK+C4l+C4reC4lOC4reC4suC4peC4seC4ogor4LiX4LmI4Lit4LiW4LmJ4Lit4LiiCivguJfguYnguK3guJbguK3guKIKK+C4l+C5ieC4reC4luC5ieC4reC4ogor4LiX4LmJ4Lit4LmB4LiX4LmJCivguJfguK3guJkKK+C4l+C5iOC4reC4mQor4LiX4Lit4LiZ4LiL4Li04LilCivguJfguK3guJ/guJ/guLXguYgKK+C4l+C5iOC4reC4oeC5hgor4LiX4Lit4LiiCivguJfguK3guKLguIHguK3guIcKK+C4l+C4reC5gOC4o+C4teC4ouC4oQor4LiX4Lit4LmB4Liq4LiHCivguJfguK3guKvguLnguIEKK+C4l+C5iOC4reC5hOC4reC5gOC4quC4teC4ogor4LiX4LiwCivguJfguLDguIfguLHguJkKK+C4l+C4sOC4l+C4seC4lAor4LiX4Liw4LiX4LiyCivguJfguLDguJfguLLguKIKK+C4l+C4sOC4l+C5iOC4suC4pwor4LiX4Liw4LiX4LmJ4Liy4LinCivguJfguLDguJfguLbguIEKK+C4l+C4sOC5gOC4l+C4teC4ouC4lAor4LiX4Liw4LiZ4LiHCivguJfguLDguJnguIfguJXguLHguKcKK+C4l+C4sOC4meC4h+C4qOC4seC4geC4lOC4tOC5jAor4LiX4Liw4LiZ4LiZCivguJfguLDguJnguLAKK+C4l+C4sOC4meC4sgor4LiX4Liw4LiZ4Liy4LiZCivguJfguLDguJnguLLguJnguKvguKXguKfguIcKK+C4l+C4sOC4meC4uAor4LiX4Liw4LiZ4Li44LiBCivguJfguLDguJnguLjguIHguJbguJnguK3guKEKK+C4l+C4sOC4meC4uOC4luC4meC4reC4oQor4LiX4Liw4LiZ4Li44Lia4Liz4Lij4Li44LiHCivguJfguLDguJrguLkKK+C4l+C4sOC5gOC4muC4teC4ouC4mQor4LiX4Liw4LmA4Lia4Li14Lii4LiZ4Lia4LmJ4Liy4LiZCivguJfguLDguYDguJrguLXguKLguJnguKPguLLguKnguI7guKMKK+C4l+C4sOC5gOC4muC4teC4ouC4meC4quC4s+C4oeC4sOC5guC4meC4hOC4o+C4seC4pwor4LiX4Liw4Lih4Lix4LiU4LiX4Liw4LmB4Lih4LiHCivguJfguLDguKHguLbguJkKK+C4l+C4sOC4oeC4t+C5iOC4mQor4LiX4Liw4LmB4Lih4LmI4LiHCivguJfguLDguYHguKHguYjguIfguYYKK+C4l+C4sOC4ouC4suC4l+C4sOC5geC4ouC5geC4qgor4LiX4Liw4Lii4Liy4LiZCivguJfguLDguKLguLLguJnguYPguIgKK+C4l+C4sOC4ouC4suC4meC4reC4ouC4suC4gQor4LiX4Liw4LmA4Lii4Lit4LiX4Liw4Lii4Liy4LiZCivguJfguLDguYHguKIKK+C4l+C4sOC5geC4ouC4quC4suC4oeC4iuC4seC5ieC4mQor4LiX4Liw4Lij4LmI4Lit4LiX4Liw4LmB4Lij4LmICivguJfguLDguKXguKfguIcKK+C4l+C4sOC4peC4reC4gQor4LiX4Liw4Lil4Lix4LiBCivguJfguLDguKXguLHguIHguJfguLDguYHguKXguIcKK+C4l+C4sOC4peC4suC4ogor4LiX4Liw4Lil4Li04LmI4LiZCivguJfguLDguKXguLTguYjguJnguIrguKPguLDguKXguLHguYjguIcKK+C4l+C4sOC4peC4tuC5iOC4hwor4LiX4Liw4Lil4Li24LmI4LiH4LiX4Liw4Lil4Lix4LmI4LiHCivguJfguLDguKXguLgKK+C4l+C4sOC4peC4uOC4geC4peC4suC4h+C4m+C4peC5ieC4reC4hwor4LiX4Liw4Lil4Li44LiU4LiX4Liw4Lil4Liy4LiUCivguJfguLDguKXguLjguJvguKPguLjguYLguJvguKPguYjguIcKK+C4l+C4sOC5gOC4pQor4LiX4Liw4LmA4Lil4LiX4Lij4Liy4LiiCivguJfguLDguYDguKXguYnguJkKK+C4l+C4sOC5gOC4peC5g+C4mQor4LiX4Liw4LmA4Lil4Lia4LmJ4LiyCivguJfguLDguYDguKXguKDguLLguKLguYPguJkKK+C4l+C4sOC5gOC4peC4quC4suC4mgor4LiX4Liw4LmA4Lil4Lir4LiZ4LmJ4Liy4LmD4LiZCivguJfguLDguYDguKXguKvguKXguKfguIcKK+C4l+C4sOC5gOC4peC5hOC4q+C4peC5iOC4l+C4p+C4teC4mwor4LiX4Liw4LmA4Lil4LmI4Lit4LiX4Liw4Lil4LmI4LiyCivguJfguLDguYDguKXguK3guLLguJPguLLguYDguILguJUKK+C4l+C4sOC5gOC4peC4suC4sAor4LiX4Liw4LmA4Lil4Liy4Liw4LmA4Lia4Liy4Liw4LmB4Lin4LmJ4LiHCivguJfguLDguKfguLLguKIKK+C4l+C4sOC5gOC4p+C4mQor4LiX4Lix4LiBCivguJfguLHguIHguILguYwKK+C4l+C4seC4geC4guC4tOC4jQor4LiX4Lix4LiB4LiC4Li04LiTCivguJfguLHguIHguILguLTguJPguLIKK+C4l+C4seC4geC4guC4tOC4k+C4suC4muC4lgor4LiX4Lix4LiB4LiC4Li04LiT4Liy4Lin4Lix4LiPCivguJfguLHguIHguILguLTguYLguJPguJfguIEKK+C4l+C4seC4geC4guC4tOC5hOC4k+C4ouC4muC4uOC4hOC4hOC4pQor4LiX4Lix4LiB4LiX4LmJ4Lin4LiHCivguJfguLHguIHguJfguLLguKIKK+C4l+C4seC4geC4l+C4tOC4mQor4LiX4Lix4LiB4LiZ4Li04Lih4Li04LiVCivguJfguLHguIHguKktCivguJfguLHguIHguKnguLAKK+C4l+C4seC4geC4qeC4sgor4LiX4Lix4LiB4Lip4Li04LiTCivguJfguLHguIHguKnguLTguJPguJnguLTguIHguLLguKIKK+C4l+C4seC4geC4qeC4tOC4k+C4sgor4LiX4Lix4LiB4Lip4Li04LiT4Liy4LiI4Liy4LijCivguJfguLHguIHguKnguLTguJPguLLguJfguLLguJkKK+C4l+C4seC4geC4qeC4tOC4k+C4suC4meC4uOC4m+C4o+C4sOC4l+C4suC4mQor4LiX4Lix4LiB4Lip4Li04LiT4Liy4Lii4Lix4LiZCivguJfguLHguIHguKnguLTguJPguLLguKfguKPguKPguJUKK+C4l+C4seC4geC4qeC4tOC5guC4k+C4l+C4gQor4LiX4Lix4LiE4LiY4LmMCivguJfguLHguIcKK+C4l+C4seC5iOC4hwor4LiX4Lix4LmJ4LiHCivguJfguLHguYnguIcuLi7guIHguLHguJoKK+C4l+C4seC5ieC4h+C4guC4tuC5ieC4meC4l+C4seC5ieC4h+C4peC5iOC4reC4hwor4LiX4Lix4LmJ4LiH4LiE4LiZCivguJfguLHguYnguIfguJTguLjguYnguJkKK+C4l+C4seC5ieC4hy4uLuC4l+C4seC5ieC4hwor4LiX4Lix4LmJ4LiH4LiX4Li1CivguJfguLHguYnguIfguJfguLXguYgKK+C4l+C4seC5ieC4h+C5hiDguJfguLXguYgKK+C4l+C4seC5ieC4h+C4meC4seC5ieC4mQor4LiX4Lix4LmJ4LiH4LiZ4Li14LmJCivguJfguLHguYnguIfguJnguLXguYnguJfguLHguYnguIfguJnguLHguYnguJkKK+C4l+C4seC5ieC4h+C5gOC4meC4t+C5ieC4reC4l+C4seC5ieC4h+C4leC4seC4pwor4LiX4Lix4LmJ4LiH4Lib4Lin4LiHCivguJfguLHguYnguIfguJzguK3guIcKK+C4l+C4seC5ieC4h+C5gOC4ngor4LiX4Lix4LmJ4LiH4Lih4Lin4LilCivguJfguLHguYnguIcuLi7guYHguKXguLAKK+C4l+C4seC4h+C4p+C4pQor4LiX4Lix4LiH4Lin4Li14LmJ4LiX4Lix4LiH4Lin4LilCivguJfguLHguIfguKrguYDguJXguJkKK+C4l+C4seC5ieC4h+C4quC4tOC5ieC4mQor4LiX4Lix4LmJ4LiH4Lir4Lih4LiUCivguJfguLHguYnguIfguKvguKXguLLguKIKK+C4l+C4seC5ieC4h+C4reC4ouC5iOC4suC4h+C4meC4seC5ieC4mQor4LiX4Lix4LiT4LiRLQor4LiX4Lix4LiT4LiR4LmMCivguJfguLHguJPguJHguIHguKPguKPguKEKK+C4l+C4seC4k+C4keC4huC4suC4lQor4LiX4Lix4LiT4LiR4LiZ4Li04LiE4LihCivguJfguLHguJPguJHguYzguJrguJkKK+C4l+C4seC4k+C4keC4p+C4tOC4l+C4ouC4sgor4LiX4Lix4LiT4LiR4Liq4LiW4Liy4LiZCivguJfguLHguJPguJHguLAKK+C4l+C4seC4k+C4keC4tOC4geC4sgor4LiX4Lix4LiT4LiR4Li04Lih4LiyCivguJfguLHguJPguJHguLXguJrguJcKK+C4l+C4seC4lAor4LiX4Lix4LiU4LiU4Lit4LiB4LmE4Lih4LmJCivguJfguLHguJTguJfguLIKK+C4l+C4seC4lOC4l+C4suC4mQor4LiX4Lix4LiU4LmA4LiX4Li14Lii4LihCist4LiX4Lix4LiVCivguJfguLHguJkKK+C4l+C4seC4meC4geC4tOC4mQor4LiX4Lix4LiZ4LiE4Lin4Lix4LiZCivguJfguLHguJnguYPguIgKK+C4l+C4seC4meC5g+C4lAor4LiX4Lix4LiZ4LiVLQor4LiX4Lix4LiZ4LiV4LmMCivguJfguLHguJnguJXguIrguLAKK+C4l+C4seC4meC4leC5geC4nuC4l+C4ouC5jAor4LiX4Lix4LiZ4LiV4LiyCivguJfguLHguJnguJXguLTguJkKK+C4l+C4seC4meC4leC4tQor4LiX4Lix4LiZ4LiX4LmI4Lin4LiH4LiX4Li1CivguJfguLHguJnguJfguLUKK+C4l+C4seC4meC4mOC5jAor4LiX4Lix4LiZ4LiZ4LmJ4LizCivguJfguLHguJnguJnguYnguLPguJfguLHguJnguJ3guJkKK+C4l+C4seC4meC4quC4oeC4seC4ogor4LiX4Lix4LiaCivguJfguLHguJrguYDguIHguKnguJXguKMKK+C4l+C4seC4muC4luC4oQor4LiX4Lix4Lia4LiX4Lij4Lin4LiHCivguJfguLHguJrguJfguLLguIcKK+C4l+C4seC4muC4l+C4suC4h+C4guC4suC4pwor4LiX4Lix4Lia4LiX4Li04LihCivguJfguLHguJrguJfguLXguYgKK+C4l+C4seC4muC5geC4ngor4LiX4Lix4Lia4Lil4Lix4LiE4LiZ4LmMCivguJfguLHguJrguYDguKXguYfguIEKK+C4l+C4seC4muC4qOC4seC4nuC4l+C5jAor4LiX4Lix4Lia4Liq4Lih4Li04LiH4LiE4Lil4LiyCivguJfguLHguJrguKrguLTguJfguJjguLTguYwKK+C4l+C4seC4muC4q+C4peC4seC4hwor4LiX4Lix4Lia4Lir4Lil4Lix4LiH4Lil4Lix4LiE4LiZ4LmMCivguJfguLHguJsKK+C4l+C4seC4m+C4mQor4LiX4Lix4LieCivguJfguLHguJ7guJ7guLAKK+C4l+C4seC4nuC4nuC4tQor4LiX4Lix4Lie4Liq4Lix4Lih4Lig4Liy4Lij4LiwCivguJfguLHguYjguKcKK+C4l+C4seC5iOC4p+C4luC4tuC4hwor4LiX4Lix4LmI4Lin4LiX4Li44LiB4Liq4Liy4Lij4LiX4Li04LioCivguJfguLHguYjguKfguJfguLjguIHguKvguLHguKfguKPguLDguYHguKvguIcKK+C4l+C4seC5iOC4p+C5hOC4mwor4LiX4Lix4LmI4Lin4LmGIOC5hOC4mwor4LiX4Lix4LioCivguJfguLHguKjguJktCivguJfguLHguKjguJnguYwKK+C4l+C4seC4qOC4meC4hOC4leC4tAor4LiX4Lix4Lio4LiZ4Lin4Li04Liq4Lix4LiiCivguJfguLHguKjguJnguKjguLLguKrguJXguKPguYwKK+C4l+C4seC4qOC4meC4qOC4tuC4geC4qeC4sgor4LiX4Lix4Lio4LiZ4LiwCivguJfguLHguKjguJnguLIKK+C4l+C4seC4qOC4meC4suC4geC4suC4owor4LiX4Lix4Lio4LiZ4Liy4LiI4LijCivguJfguLHguKjguJnguLXguKItCivguJfguLHguKjguJnguLXguKLguYwKK+C4l+C4seC4qOC4meC4teC4ouC4oOC4suC4ngor4LiX4Lix4Lio4LiZ4Li54Lib4LiB4Lij4LiT4LmMCivguJfguLHguKjguYTguJnguKIKK+C4l+C4seC4quC4meC4suC4meC4uOC4leC4o+C4tOC4ouC4sAor4LiX4Lix4Lis4LirCivguJfguLHguKzguKvguLQKK+C4l+C4seC4rOC4q+C4tOC4geC4o+C4k+C5jAor4LiX4Lix4Lis4Lir4Li1CivguJfguLHguKzguKvguLXguIHguKPguKPguKEKK+C4l+C4sgor4LiX4LmI4LiyCivguJfguYnguLIKK+C4l+C4suC4gQor4LiX4Liy4LiHCivguJfguYnguLLguIcKK+C4l+C4suC4h+C4geC4suC4owor4LiX4Liy4LiH4LmA4LiB4LmH4LiaCivguJfguLLguIfguILguYnguLLguKEKK+C4l+C4suC4h+C4iuC5ieC4suC4h+C5gOC4nOC4t+C4reC4gQor4LiX4Liy4LiH4LiU4LmI4Lin4LiZCivguJfguLLguIfguYDguJfguYnguLIKK+C4l+C4suC4h+C5guC4lwor4LiX4Liy4LiH4LmD4LiZCivguJfguLLguIfguJzguYjguLLguJkKK+C4l+C4suC4h+C4nuC4tOC5gOC4qOC4qQor4LiX4Liy4LiH4Lih4Liw4Lie4Lij4LmJ4Liy4LinCivguJfguLLguIfguKHguYnguLLguKXguLLguKIKK+C4l+C4suC4h+C4quC4suC4mOC4suC4o+C4k+C4sAor4LiX4Liy4LiH4Lir4Lil4Lin4LiHCivguJfguLLguIfguK3guK3guIEKK+C4l+C4suC4h+C5gOC4reC4gQor4LiX4Liy4LiQ4LiwCivguJfguLLguJDguLTguIHguLAKK+C4l+C4suC4kuC4sAor4LiX4Liy4LiS4Li04LiB4LiwCivguJfguYjguLLguJTguLXguJfguLXguYDguKvguKXguKcKK+C4l+C5iOC4suC5gOC4lOC4teC4ouC4pwor4LiX4LmI4Liy4LiX4Liy4LiHCivguJfguYnguLLguJfguLLguKIKK+C4l+C5iOC4suC4l+C4tQor4LiX4Liy4LiZCivguJfguLLguJktCivguJfguYjguLLguJkKK+C4l+C4suC4meC4geC4seC4k+C4keC5jAor4LiX4LmI4Liy4LiZ4LiK4Liy4LiiCivguJfguLLguJnguJXguYwKK+C4l+C4suC4meC4leC4sOC4p+C4seC4mQor4LiX4Liy4LiZ4Lia4LiU4Li1CivguJfguLLguJnguJrguLLguKPguKHguLUKK+C4l+C5iOC4suC4meC4nOC4ueC5ieC4q+C4jeC4tOC4hwor4LiX4Liy4LiZ4LieCivguJfguLLguJnguKHguLHguKIKK+C4l+C4suC4meC4qOC4teC4pQor4LiX4LmI4Liy4LiZ4Lir4LiN4Li04LiHCivguJfguYjguLLguJnguLHguYnguJnguJfguYjguLLguJnguLXguYkKK+C4l+C4suC4meC4suC4mOC4tOC4muC4lOC4tQor4LiX4Liy4LiaCivguJfguLLguJrguJfguLLguKEKK+C4l+C4suC4oQor4LiX4LmI4Liy4Lih4LiB4Lil4Liy4LiHCivguJfguLLguKIKK+C4l+C5ieC4suC4ogor4LiX4Liy4Lii4LiBCivguJfguYnguLLguKLguYDguILguLfguYjguK3guJkKK+C4l+C5ieC4suC4ouC4hOC4o+C4seC4pwor4LiX4LmJ4Liy4Lii4LmC4LiV4LmI4LiHCivguJfguYnguLLguKLguJfguK3guKIKK+C4l+C5ieC4suC4ouC4meC5ieC4swor4LiX4LmJ4Liy4Lii4Lid4LiZCivguJfguLLguKLguLHguIoKK+C4l+C4suC4ouC4sgor4LiX4Liy4Lii4Liy4LiUCivguJfguLLguKLguLLguJcKK+C4l+C4suC4ouC4suC4l+C5guC4lOC4ouC4mOC4o+C4o+C4oQor4LiX4Liy4LijLQor4LiX4Liy4Lij4LiBCivguJfguLLguKPguJ7guLUKK+C4l+C4suC4o+C4tOC4geC4sgor4LiX4Liy4Lij4Li4CivguJfguLLguKPguLjguJMKK+C4l+C4suC4o+C4uOC4ky0KK+C4l+C4suC4o+C4uOC4k+C4geC4o+C4o+C4oQor4LiX4LmI4Liy4LmA4Lij4Li34LitCivguJfguLLguKcKK+C4l+C5iOC4suC4pwor4LiX4LmJ4Liy4LinCivguJfguYjguLLguKfguIHguLPguKXguLHguIcKK+C4l+C5iOC4suC4p+C4l+C4muC4o+C4sOC4meC4seC4mgor4LiX4LmJ4Liy4Lin4LiZ4Liy4LiHCivguJfguYnguLLguKfguJ7guI3guLIKK+C4l+C5ieC4suC4p+C4nuC4o+C4sOC4ouC4sgor4LiX4Liy4LipCivguJfguLLguKoKK+C4l+C4suC4qi0KK+C4l+C4suC4quC4l+C4suC4mQor4LiX4Liy4Liq4Lib4Lix4LiN4LiN4LiyCivguJfguLLguKrguLUKK+C4l+C5iOC4suC4reC4suC4geC4suC4qOC4ouC4suC4mQor4LiX4LizCivguJfguLPguIHguKPguKPguKEKK+C4l+C4s+C4geC4suC4o+C4muC5ieC4suC4mQor4LiX4Liz4LiC4Lin4Lix4LiNCivguJfguLPguITguKPguLHguKcKK+C4l+C4s+C4hOC4peC4reC4lAor4LiX4Liz4LiE4Lin4Liy4LihCivguJfguLPguITguLjguJMKK+C4l+C4s+C4hOC4uOC4k+C4muC4ueC4iuC4suC5guC4l+C4qQor4LiX4Liz4LiH4LiZCivguJfguLPguYDguIjguYfguJoKK+C4l+C4s+C5g+C4iAor4LiX4Liz4LmE4LiU4LmJCivguJfguLPguYTguJTguYnguKXguIfguITguK0KK+C4l+C4s+C4leC4seC4pwor4LiX4Liz4LiV4LiyCivguJfguLPguJfguYjguLIKK+C4l+C4s+C4l+C4tQor4LiX4Liz4LmB4LiX4LmJ4LiHCivguJfguLPguYLguJfguKkKK+C4l+C4s+C4meC4mgor4LiX4Liz4LiZ4Lin4LiiCivguJfguLPguJnguK3guIcKK+C4l+C4s+C4meC4reC4h+C5gOC4quC4meC4suC4sAor4LiX4Liz4LiZ4Liy4Lia4LiZ4Lir4Lil4Lix4LiH4LiE4LiZCivguJfguLPguJnguLLguKIKK+C4l+C4s+C4meC4suC4reC4reC4oeC4geC4peC5ieC4siDguJfguLPguJvguKXguLLguK3guK3guKHguYDguIHguKXguLfguK0KK+C4l+C4s+C4meC4uAor4LiX4Liz4LiZ4Li44Lia4Liz4Lij4Li44LiHCivguJfguLPguJnguLnguKUKK+C4l+C4s+C5gOC4meC4sgor4LiX4Liz4LmA4LiZ4Li14Lii4LiaCivguJfguLPguYDguJnguLXguKLguJrguJfguYjguLLguYDguKPguLfguK0KK+C4l+C4s+C5gOC4meC4teC4ouC4muC4meC4suC4oQor4LiX4Liz4LmA4LiZ4Li14Lii4LihCivguJfguLPguJrguLLguJsKK+C4l+C4s+C4muC4uOC4jQor4LiX4Liz4Lia4Li44LiN4LmA4Lit4Liy4Lir4LiZ4LmJ4LiyCivguJfguLPguJvguKXguLIKK+C4l+C4s+C4m+C4suC4geC4l+C4s+C4hOC4rQor4LiX4Liz4LmA4Lib4LmH4LiZCivguJfguLPguYTguJvguJfguLPguKHguLIKK+C4l+C4s+C4nuC4tOC4qQor4LiX4Liz4LmE4Lie4LmICivguJfguLPguJ/guLHguJkKK+C4l+C4s+C5hOC4nwor4LiX4Liz4Lih4Lix4LiHCivguJfguLPguYTguKEKK+C4l+C4s+C4o+C5ieC4suC4ogor4LiX4Liz4Lik4LiX4LiY4Li04LmMCivguJfguLPguKXguLLguKIKK+C4l+C4s+C4peC4suC4ouC4guC4p+C4seC4jQor4LiX4Liz4Lil4Liy4Lii4Liq4LiW4Li04LiV4Li0CivguJfguLPguKXguLTguIcKK+C4l+C4s+C5gOC4pQor4LiX4Liz4Lin4LiZCivguJfguLPguKfguLHguJXguKMKK+C4l+C4s+C4p+C4seC4leC4o+C4hOC5iOC4swor4LiX4Liz4Lin4Lix4LiV4Lij4LmA4LiK4LmJ4LiyCivguJfguLPguYDguKfguKMKK+C4l+C4s+C5gOC4p+C4peC4sgor4LiX4Liz4Liq4Liy4LinCivguJfguLPguYDguKrguJnguYjguKvguYwKK+C4l+C4s+C5gOC4quC4teC4ouC5gOC4iOC5h+C4mgor4LiX4Liz4Lir4LiZ4LmJ4Liy4LiX4Liz4LiV4LiyCivguJfguLPguKvguKHguLHguJkKK+C4l+C4s+C4q+C4ueC4l+C4p+C4meC4peC4oQor4LiX4Liz4LmA4Lir4LiV4Li4CivguJfguLPguYPguKvguYkKK+C4l+C4s+C5gOC4reC4sgor4LiX4Liz4LmA4Lit4Liy4LmA4LiI4LmH4LiaCivguJfguLTguITguLHguKHguJ7guKMKK+C4l+C4tOC4huC4seC4oeC4nuC4owor4LiX4Li04LmJ4LiHCivguJfguLTguYnguIfguIHguKPguLDguIjguLLguJQKK+C4l+C4tOC5ieC4h+C4guC4p+C5ieC4suC4hwor4LiX4Li04LmJ4LiH4LmGIOC4guC4p+C5ieC4suC4h+C5hgor4LiX4Li04LmJ4LiH4LiI4LiU4Lir4Lih4Liy4LiiCivguJfguLTguIfguYDguIjguK3guKPguYwKK+C4l+C4tOC5ieC4h+C4luC5iOC4reC4mQor4LiX4Li04LmJ4LiH4LiX4Lin4LiZCivguJfguLTguYnguIfguJfguLLguJkKK+C4l+C4tOC5ieC4h+C4l+C5ieC4suC4ogor4LiX4Li04LmJ4LiH4LiX4Li54LiUCivguJfguLTguYnguIfguYTguJ7guYgKK+C4l+C4tOC5ieC4h+C4n+C5ieC4reC4hwor4LiX4Li04LmJ4LiH4Lih4Liw4Lie4Lij4LmJ4Liy4Lin4Lir4LmJ4Liy4LinCivguJfguLTguYnguIfguKLguYjguK0KK+C4l+C4tOC4igor4LiX4Li04LiKLQor4LiX4Li04LiK4Liy4LiB4LijCivguJfguLTguI/guJDguLAKK+C4l+C4tOC4j+C4kOC4suC4meC4uOC4hOC4leC4tAor4LiX4Li04LiP4LiQ4Li44LiK4Li44LiB4Lij4Lij4LihCivguJfguLTguJAtCivguJfguLTguJDguJjguKPguKPguKEKK+C4l+C4tOC4kOC4tAor4LiX4Li04LiUCivguJfguLTguJUKK+C4l+C4tOC4mQor4LiX4Li04LiZLQor4LiX4Li04LiZ4LiB4LijCivguJfguLTguJnguKjguLnguJnguKLguYwKK+C4l+C4tOC4meC4suC4lwor4LiX4Li04LieCivguJfguLTguJ4tCivguJfguLTguJ7guKItCivguJfguLTguJ7guKLguYwKK+C4l+C4tOC4nuC4ouC4iOC4seC4geC4qeC4uAor4LiX4Li04Lie4Lii4LiI4Lix4LiB4Lip4Li44LiN4Liy4LiTCivguJfguLTguJ7guKLguI3guLLguJMKK+C4l+C4tOC4nuC4ouC5gOC4meC4leC4owor4LiX4Li04Lie4Lii4Lie4Lii4Liy4LiZCivguJfguLTguJ7guKLguKHguLLguJnguLjguKkKK+C4l+C4tOC4nuC4ouC4o+C4qgor4LiX4Li04Lie4Lii4LmC4Lio4Lij4LiV4LijCivguJfguLTguJ7guYLguKrguJUKK+C4l+C4tOC4nuC4sgor4LiX4Li04Lie4Liy4LiB4LijCivguJfguLTguKEKK+C4l+C4tOC5iOC4oQor4LiX4Li04Lih4LiU4Liy4LiaCivguJfguLTguYjguKHguJXguLMKK+C4l+C4tOC4oeC4l+C4reC4hwor4LiX4Li04LmI4Lih4LmB4LiX4LiHCivguJfguLTguKcKK+C4l+C4tOC4py0KK+C4l+C4tOC4p+C4geC4suC4pQor4LiX4Li04Lin4LiH4LiE4LiVCivguJfguLTguKfguJfguLHguKjguJnguYwKK+C4l+C4tOC4p+C4qi0KK+C4l+C4tOC4p+C4quC4oOC4suC4hAor4LiX4Li04Lin4Liq4LiwCivguJfguLTguKfguLIKK+C4l+C4tOC4p+C4suC4geC4owor4LiX4Li04Lin4Liy4LiB4Liy4LilCivguJfguLTguKgKK+C4l+C4tOC4qOC4l+C4suC4hwor4LiX4Li04Lio4LiyCivguJfguLTguKjguLLguJTguKMKK+C4l+C4tOC4qOC4suC4meC4uOC4l+C4tOC4qAor4LiX4Li04Lio4Liy4Lib4Liy4LmC4Lih4LiB4LiC4LmMCivguJfguLUKK+C4l+C4teC5iAor4LiX4Li14LmI4LiB4Lix4Lil4Lib4LiZ4LiyCivguJfguLXguYPguITguKPguJfguLXguKHguLHguJkKK+C4l+C4teC4hi0KK+C4l+C4teC4huC4iuC4suC4leC4tAor4LiX4Li14LiG4LiZ4Li04LiB4Liy4LiiCivguJfguLXguIbguKrguKPguLAKK+C4l+C4teC4huC4suC4ouC4uAor4LiX4Li14LmI4LiI4Lij4Li04LiHCivguJfguLXguYjguJTguLTguJkKK+C4l+C4teC5iOC4lOC4tOC4meC4oeC4t+C4reC5gOC4m+C4peC5iOC4sgor4LiX4Li14LmA4LiU4LmH4LiUCivguJfguLXguYDguJTguLXguKLguKcKK+C4l+C4teC4l+C5iOC4sgor4LiX4Li14LmI4LiX4Liy4LiHCivguJfguLXguYjguJfguLPguIHguLLguKMKK+C4l+C4teC5iOC5gOC4l+C5iOC4suC5geC4oeC4p+C4lOC4tOC5ieC4meC4leC4suC4ogor4LiX4Li14LmI4LmB4LiX4LmJCivguJfguLXguYjguJjguKPguJPguLXguKrguIfguIbguYwKK+C4l+C4teC5iOC4meC4reC4mQor4LiX4Li14LmI4LiZ4Lix4LmI4LiHCivguJfguLXguJnguLXguYkKK+C4l+C4teC4mwor4LiX4Li14LmI4Lie4Li24LmI4LiHCivguJfguLXguKEKK+C4l+C4teC5iOC4oeC4seC5iOC4mQor4LiX4Li14LmI4Lih4LiyCivguJfguLXguKPguIYtCivguJfguLXguYjguKPguLHguIEKK+C4l+C4teC5iOC4o+C4suC4mgor4LiX4Li14LmI4Lij4Liy4Lia4Liq4Li54LiHCivguJfguLXguYDguKXguYjguJnguJfguLXguIjguKPguLTguIcKK+C4l+C4teC5iOC4p+C4seC4lAor4LiX4Li14LmI4Lin4LmI4Liy4LiB4Liy4LijCivguJfguLXguYjguKrguLjguJQKK+C4l+C4teC5iOC4q+C4oeC4suC4ogor4LiX4Li14Lir4Lil4Lix4LiHCivguJfguLXguYjguYTguKvguJkKK+C4l+C4teC5iOC5hOC4q+C4meC5hOC4lOC5iQor4LiX4Li14LmA4Lit4LmH4LiZ4LiX4Li1CivguJfguLbguIEKK+C4l+C4tuC4geC4l+C4seC4gQor4LiX4Li24LmI4LiHCivguJfguLbguYnguIcKK+C4l+C4tuC4lOC4l+C4t+C4rQor4LiX4Li24LiZ4LiX4Li24LiBCivguJfguLbguJoKK+C4l+C4tuC4oQor4LiX4Li24Lih4LmGCivguJfguLbguYjguKEKK+C4l+C4t+C5iOC4rQor4LiX4Li4CivguJfguLjguIEKK+C4l+C4uOC4geC5hgor4LiX4Li44LiB4LiCLQor4LiX4Li44LiB4LiC4LmMCivguJfguLjguIHguILguJnguLTguYLguKPguJgKK+C4l+C4uOC4geC4guC4peC4suC4oAor4LiX4Li44LiB4LiC4LmA4Lin4LiX4LiZ4LiyCivguJfguLjguIHguILguKrguKHguLjguJfguLHguKIKK+C4l+C4uOC4geC4guC5jOC4quC4uOC4ggor4LiX4Li44LiB4LiC4Lix4LiB4Lip4Lix4LiiCivguJfguLjguIHguILguLLguKPguKHguJPguYwKK+C4l+C4uOC4geC4jwor4LiX4Li44LiB4LiX4Li1CivguJfguLjguIHguJnguLTguJrguLLguJUKK+C4l+C4uOC4geC4nuC4suC4ogor4LiX4Li44LiB4LmA4Lih4Li34LmI4LitCivguJfguLjguIHguYDguKHguLfguYjguK3guYDguIrguLfguYjguK3guKfguLHguJkKK+C4l+C4uOC4geC4oy0KK+C4l+C4uOC4geC4o+C4geC4tOC4o+C4tOC4ouC4sgor4LiX4Li44LiB4Lin4Lix4LiZ4LiZ4Li14LmJCivguJfguLjguIHguKnguJTguKMKK+C4l+C4uOC4geC4quC4tOC5iOC4h+C4l+C4uOC4geC4reC4ouC5iOC4suC4hwor4LiX4Li44LiB4Lir4LiZCivguJfguLjguIHguKvguJnguJfguLjguIHguYHguKvguYjguIcKK+C4l+C4uOC4geC4q+C4ouC5iOC4reC4oeC4q+C4jeC5ieC4sgor4LiX4Li44LiB4Lir4Lix4Lin4Lij4Liw4LmB4Lir4LiHCivguJfguLjguIHguYHguKvguYjguIcKK+C4l+C4uOC4geC4sAor4LiX4Li44LiB4Lix4LiHCivguJfguLjguIHguLnguKUKK+C4l+C4uOC4hOC4leC4sAor4LiX4Li44LiE4LiV4Li0CivguJfguLjguYjguIcKK+C4l+C4uOC5ieC4hwor4LiX4Li44LiH4LiH4LiwCivguJfguLjguIfguYDguJfguIcKK+C4l+C4uOC4iOC4iOC4tOC4k+C4k+C4sAor4LiX4Li44LiI4Lij4Li04LiVCivguJfguLjguJQKK+C4l+C4uOC4leC4p+C4tOC4peC4seC4oeC4nuC4tOC4leC4oeC4suC4peC4sgor4LiX4Li44LiV4Li04LiiLQor4LiX4Li44LiV4Li04Lii4Liy4Liq4Liy4Lis4LirCivguJfguLjguJfguKPguKPguKjguJnguJnguLTguKLguKEKK+C4l+C4uOC4mQor4LiX4Li44LmI4LiZCivguJfguLjguJnguIjguJTguJfguLDguYDguJrguLXguKLguJkKK+C4l+C4uOC4meC4l+C4o+C4seC4nuC4ouC5jAor4LiX4Li44LiZ4LiZ4Lit4LiZCivguJfguLjguJnguJnguLTguKHguLTguJUKK+C4l+C4uOC4meC4meC4tOC4ouC4oQor4LiX4Li44LmI4LiZ4LmA4Lia4LmH4LiUCivguJfguLjguJnguKPguK3guJkKK+C4l+C4uOC5iOC4meC4o+C4sOC5gOC4muC4tOC4lAor4LiX4Li44LiZ4LmA4Lij4Li34Lit4LiZ4Lir4Li44LmJ4LiZCivguJfguLjguJnguKrguLPguKPguK3guIcKK+C4l+C4uOC4meC4quC4s+C4o+C4reC4h+C5gOC4h+C4tOC4meC4leC4o+C4sgor4LiX4Li44LiZ4Lir4Lih4Li44LiZ4LmA4Lin4Li14Lii4LiZCivguJfguLjguYjguJnguK3guKfguJkKK+C4l+C4uOC4meC4tOC4ouC4oQor4LiX4Li44LiaCivguJfguLjguJrguJXguLUKK+C4l+C4uOC4muC4l+C4uQor4LiX4Li44Lia4Lir4Lih4LmJ4Lit4LiC4LmJ4Liy4LinCivguJfguLjguJvguJvguLHguI3guI3guLIKK+C4l+C4uOC4nuC4nuC4o+C4o+C4kwor4LiX4Li44Lie4Lie4LilCivguJfguLjguJ7guJ7guKXguKDguLLguJ4KK+C4l+C4uOC4nuC4oOC4tOC4geC4guC4oOC4seC4ogor4LiX4Li44Lie4Lig4Li04LiB4LiC4Lix4LiZ4LiU4Lij4LiB4Lix4LibCivguJfguLjguKEKK+C4l+C4uOC4oS0KK+C4l+C4uOC5iOC4oQor4LiX4Li44LmJ4LihCivguJfguLjguYjguKHguJXguKXguLLguJQKK+C4l+C4uOC5iOC4oeC5gOC4luC4teC4ouC4hwor4LiX4Li44LmI4Lih4LmA4LiXCivguJfguLjguKHguYLguJkKK+C4l+C4uOC4oeC4o+C4suC4iuC4sgor4LiX4Li44LiiCivguJfguLjguYnguKIKK+C4l+C4uOC4oy0KK+C4l+C4uOC4o+C4geC4seC4meC4lOC4suC4owor4LiX4Li44Lij4LiE4LihCivguJfguLjguKPguIrguJkKK+C4l+C4uOC4o+C4iuC4suC4leC4tAor4LiX4Li44Lij4LiZCivguJfguLjguKPguJnguJfguLjguKPguLLguKIKK+C4l+C4uOC4o+C4nuC4pQor4LiX4Li44Lij4Lig4Li04LiB4Lip4LmMCivguJfguLjguKPguKXguLHguIHguKnguJPguYwKK+C4l+C4uOC4o+C4seC4luC4ouC4sgor4LiX4Li44Lij4Lix4LioCivguJfguLjguKPguLLguITguKEKK+C4l+C4uOC4o+C4suC4iOC4suC4owor4LiX4Li44Lij4Liy4LiY4Lin4LiyCivguJfguLjguYDguKPguKgKK+C4l+C4uOC5gOC4o+C4teC4ouC4mQor4LiX4Li44LmA4Lij4Li14Lii4LiZ4LmB4LiC4LiBCivguJfguLjguYDguKPguLXguKLguJnguYDguJfguKgKK+C4l+C4uOC4peC4seC4geC4l+C4uOC5gOC4pQor4LiX4Li44LmA4Lil4LiyCivguJfguLjguKfguLTguJgKK+C4l+C4uOC4qOC4teC4pQor4LiX4Li44Lip4LiQLQor4LiX4Li44LiqLQor4LiX4Li44Liq4Liq4LiwCivguJfguLjguKrguKrguLXguKUKK+C4l+C4uQor4LiX4Li54LmICivguJfguLnguYkKK+C4l+C4ueC4geC4seC4hwor4LiX4Li54LmI4LiL4Li14LmJCivguJfguLnguJUKK+C4l+C4ueC4leC4suC4meC4uOC4l+C4ueC4lQor4LiX4Li54LiZCivguJfguLnguJnguYnguLPguIjguLfguJQKK+C4l+C4ueC4mgor4LiX4Li54LihCivguJfguLnguKHguJfguLLguKEKK+C4l+C4ueC5guC4oeC5iOC4hwor4LiX4Li54LijLQor4LiX4Li54LilCivguJfguLnguKXguIHguKPguLDguKvguKHguYjguK3guKEKK+C4l+C4ueC4peC5gOC4geC4peC5ieC4suC4l+C4ueC4peC4geC4o+C4sOC4q+C4oeC5iOC4reC4oeC4luC4p+C4suC4ogor4LiX4Li54LmA4Lil4Li14Lii4LihCivguJfguLnguKnguIEKK+C5gOC4lwor4LmA4LiX4LmICivguYDguJfguIHguKPguLDguIjguLLguJQKK+C5gOC4l+C4geC4o+C4sOC5gOC4m+C5i+C4sgor4LmA4LiX4LiE4LiZ4Li04LiECivguYDguJfguITguJnguLXguYDguIrguLXguKLguKEKK+C5gOC4l+C4hOC5guC4meC5guC4peC4ouC4tQor4LmA4LiX4LiE4Lij4Lix4LinCivguYDguJfguITguK3guJnguIHguKPguLXguJUKK+C5gOC4l+C4hwor4LmA4LiX4LmJ4LiHCivguYDguJfguYnguIfguYDguJXguYnguIcKK+C5gOC4l+C5ieC4h+C4l+C4ueC4lAor4LmA4LiX4LmH4LiICivguYDguJfguYfguIjguIjguKPguLTguIcKK+C5gOC4l+C5h+C4iOC5gOC4l+C4teC4ouC4oQor4LmA4LiX4LiZ4LiZ4Li04LiqCivguYDguJfguJnguYnguLPguYDguJfguJfguYjguLIKK+C5gOC4l+C4m+C4ueC4mQor4LmA4LiX4LieCivguYDguJfguJ4tCivguYDguJfguJ7guIHguLjguKrguLjguKEKK+C5gOC4l+C4nuC5gOC4iOC5ieC4sgor4LmA4LiX4Lie4LiK4Li44Lih4LiZ4Li44LihCivguYDguJfguJ7guJTguLIKK+C5gOC4l+C4nuC4lOC4s+C4o+C4uQor4LmA4LiX4Lie4LiX4Lix4LiT4LiR4LmMCivguYDguJfguJ7guJfguLLguKPguLkKK+C5gOC4l+C4nuC4l+C4suC5guC4owor4LmA4LiX4Lie4LiY4Li04LiU4LiyCivguYDguJfguJ7guJnguKEKK+C5gOC4l+C4nuC4meC4suC4o+C4tQor4LmA4LiX4Lie4LiZ4Li04Lii4LihCivguYDguJfguJ7guJnguLTguKLguLLguKIKK+C5gOC4l+C4nuC4meC4tOC4ouC4suC4ouC4p+C4tOC4l+C4ouC4sgor4LmA4LiX4Lie4LiZ4Li04Lij4Lih4Li04LiVCivguYDguJfguJ7guJrguJTguLUKK+C5gOC4l+C4nuC4muC4o+C4tOC4qeC4seC4lwor4LmA4LiX4Lie4Lia4Li44LiV4LijCivguYDguJfguJ7guJvguKPguLDguJXguLTguKHguLIKK+C5gOC4l+C4nuC4nuC4ouC4suC4geC4o+C4k+C5jAor4LmA4LiX4Lie4LiiLQor4LmA4LiX4Lie4Lii4LmA4LiI4LmJ4LiyCivguYDguJfguJ7guKLguJTguLIKK+C5gOC4l+C4nuC4ouC4uOC4lOC4sgor4LmA4LiX4Lie4Liq4Lix4LiH4Lir4Lij4LiT4LmMCivguYDguJfguJ7guLIKK+C5gOC4l+C4nuC4suC4lOC4tOC5gOC4l+C4ngor4LmA4LiX4Lie4Liy4LiY4Li04Lia4LiU4Li1CivguYDguJfguJ7guLLguKPguLHguIHguKnguYwKK+C5gOC4l+C4nuC4tOC4mQor4LmA4LiX4Lie4Li04LiZ4LiX4Lij4LmMCivguYDguJfguJ7guLUKK+C5gOC4l+C4nuC4teC4m+C4seC4geC4qeC4tQor4LmA4LiX4LmA4Lie4LiZ4LiX4Lij4LmMCivguYDguJfguYLguJ4KK+C5gOC4l+C4o+C4tOC4lAor4LmA4LiX4Lil4Lil4Li54LmA4Lij4Li14Lii4LihCivguYDguJfguKctCivguYDguJfguKfguJTguLIKK+C5gOC4l+C4p+C4l+C4seC4k+C4keC5jAor4LmA4LiX4Lin4LiX4Li54LiVCivguYDguJfguKfguJjguKPguKPguKEKK+C5gOC4l+C4p+C4mOC4tOC4lOC4sgor4LmA4LiX4Lin4LiZ4LiwCivguYDguJfguKfguJnguLLguITguKPguLUKK+C5gOC4l+C4p+C4meC4tOC4ouC4oQor4LmA4LiX4Lin4Lig4Liy4Lin4LiwCivguYDguJfguKfguKPguLAKK+C5gOC4l+C4p+C4o+C4ueC4mwor4LmA4LiX4Lin4LmC4Lil4LiBCivguYDguJfguKfguKfguLLguIjguLTguIHguLAKK+C5gOC4l+C4p+C4p+C4tOC4l+C4ouC4sgor4LmA4LiX4Lin4LioCivguYDguJfguKfguKkKK+C5gOC4l+C4p+C4quC4luC4suC4mQor4LmA4LiX4Lin4Liq4Li44LiE4LiZ4LiY4LmMCivguYDguJfguKfguK0KK+C5gOC4l+C4p+C4seC4jQor4LmA4LiX4Lin4Lix4LiZCivguYDguJfguKfguLLguITguLLguKMKK+C5gOC4l+C4p+C4suC4o+C4seC4k+C4ouC5jAor4LmA4LiX4Lin4Liy4Lil4Lix4LiiCivguYDguJfguKfguLLguKfguLLguKoKK+C5gOC4l+C4p+C4tOC4meC4l+C4o+C5jAor4LmA4LiX4Lin4Li1CivguYDguJfguYDguKfguJnguJfguKPguYwKK+C5gOC4l+C5gOC4p+C4qAor4LmA4LiX4LmA4Lin4Lio4Lij4LmMCivguYDguJfguYDguKfguKjguKfguKPguYwKK+C5gOC4l+C4qAor4LmA4LiX4LioLQor4LmA4LiX4Lio4LiBCivguYDguJfguKjguIHguLLguKUKK+C5gOC4l+C4qOC4meC5jAor4LmA4LiX4Lio4LiZ4LmM4LmB4LiI4LiHCivguYDguJfguKjguJnguLIKK+C5gOC4l+C4qOC4muC4seC4jeC4jeC4seC4leC4tAor4LmA4LiX4Lio4Lia4Liy4LilCivguYDguJfguKjguKHguJnguJXguKPguLUKK+C5gOC4l+C4qOC4sAor4LmA4LiX4Lio4Liy4LiI4Liy4LijCivguYDguJfguKjguLLguKDguLTguJrguLLguKUKK+C5gOC4l+C4qy0KK+C5gOC4l+C4q+C5jAor4LmA4LiX4LmI4Lir4LmMCivguYDguJfguKvguYzguJ/guLLguIHguJ/guYnguLIKK+C5gOC4l+C4q+C4p+C4seC4leC4luC4uAor4LmA4LiX4LmI4LitCivguYDguJfguYnguK0KK+C5gOC4l+C4reC4jQor4LmA4LiX4Lit4LihCivguYDguJfguK3guKPguYzguYDguJrguLXguKLguKEKK+C5gOC4l+C4reC4o+C5jOC5guC4oeC4oeC4tOC5gOC4leC4reC4o+C5jAor4LmA4LiX4Lit4Liw4LiX4LiwCivguYDguJfguLIKK+C5gOC4l+C5iOC4sgor4LmA4LiX4LmJ4LiyCivguYDguJfguYjguLLguIHguLHguJoKK+C5gOC4l+C5ieC4suC5geC4guC4mQor4LmA4LiX4LmJ4Liy4LiE4Li54LmJCivguYDguJfguYnguLLguIrguYnguLLguIcKK+C5gOC4l+C5iOC4suC5g+C4lAor4LmA4LiX4LmI4Liy4LiV4Lix4LinCivguYDguJfguYjguLLguJfguLHguJkKK+C5gOC4l+C5iOC4suC4l+C4uOC4mQor4LmA4LiX4LmI4Liy4LmA4LiX4Li14Lii4LihCivguYDguJfguYjguLLguJnguLHguYnguJkKK+C5gOC4l+C5iOC4suC5gOC4nOC5ieC4sgor4LmA4LiX4LmJ4Liy4Lii4Liy4Lii4Lih4LmI4Lit4LihCivguYDguJfguYjguLLguKPguLbguIcKK+C5gOC4l+C5iOC4suC5hOC4owor4LmA4LiX4LmJ4Liy4Liq4Liy4LiZCivguYDguJfguYnguLLguKrguLTguIfguKvguYwKK+C5gOC4l+C4suC4sOC4q+C5jAor4LmA4LiX4Li04LiBCivguYDguJfguLTguYjguIcKK+C5gOC4l+C4tOC4h+C4muC4reC4hwor4LmA4LiX4Li04LiUCivguYDguJfguLTguJTguJfguLnguJkKK+C5gOC4l+C4tOC4mQor4LmA4LiX4Li04LiaCivguYDguJfguLTguJrguYYKK+C5gOC4l+C4tOC4muC4l+C4suC4mgor4LmA4LiX4Li04LmJ4LihCivguYDguJfguLXguKLguIcKK+C5gOC4l+C4teC5iOC4ouC4hwor4LmA4LiX4Li14LmI4Lii4LiH4LmGCivguYDguJfguLXguYjguKLguIfguJXguKPguIcKK+C5gOC4l+C4teC5iOC4ouC4h+C5geC4l+C5iQor4LmA4LiX4Li14LmI4Lii4LiH4LiY4Lij4Lij4LihCivguYDguJfguLXguKLguJkKK+C5gOC4l+C4teC5ieC4ouC4mQor4LmA4LiX4Li14Lii4LiZ4LiB4Li04LmI4LiHCivguYDguJfguLXguKLguJnguYDguIHguKXguYfguJTguKvguK3guKIKK+C5gOC4l+C4teC4ouC4meC5geC4geC4peC4mgor4LmA4LiX4Li14Lii4LiZ4LiC4LihCivguYDguJfguLXguKLguJnguILguLLguKcKK+C5gOC4l+C4teC4ouC4meC4guC5ieC4suC4p+C5gOC4m+C4peC4t+C4reC4gQor4LmA4LiX4Li14Lii4LiZ4LiU4LizCivguYDguJfguLXguKLguJnguYHguJTguIcKK+C5gOC4l+C4teC4ouC4meC4leC4suC4geC4mgor4LmA4LiX4Li14Lii4LiZ4LiV4Liy4LiV4Lix4LmK4LiB4LmB4LiV4LiZCivguYDguJfguLXguKLguJnguJrguYnguLLguJkKK+C5gOC4l+C4teC4ouC4meC4nuC4o+C4o+C4qeC4sgor4LmA4LiX4Li14Lii4LiZ4LmA4Lii4Liy4Lin4Lie4Liy4LiT4Li1CivguYDguJfguLXguKLguJnguKPguLjguYjguIcKK+C5gOC4l+C4teC4ouC4meC4peC4p+C4lAor4LmA4LiX4Li14Lii4LiZ4Liq4Lix4LiV4LiV4Lia4Li44Lip4Lii4LmMCivguYDguJfguLXguKLguJnguK3guJoKK+C5gOC4l+C4teC4ouC4mgor4LmA4LiX4Li14Lii4Lia4LmA4LiE4Li14Lii4LiHCivguYDguJfguLXguKLguJrguYDguJfguYjguLIKK+C5gOC4l+C4teC4ouC4oQor4LmA4LiX4Li14Lii4LijCivguYDguJfguLXguYnguKLguKMKK+C5gOC4l+C4teC4ouC4o+C4hi0KK+C5gOC4l+C4teC4ouC4o+C4huC4iuC4suC4leC4tAor4LmA4LiX4Li14Lii4Lij4LiG4Lij4Liy4LiV4LijCivguYDguJfguLXguKLguKcKK+C5gOC4l+C4teC5iOC4ouC4pwor4LmA4LiX4Li34LitCivguYDguJfguLfguYjguK0KK+C5gOC4l+C4t+C5ieC4rQor4LmA4LiX4Li34Lit4LiBCivguYDguJfguLfguK3guIHguYDguILguLIKK+C5gOC4l+C4t+C4reC4geC5gOC4luC4suC5gOC4q+C4peC5iOC4suC4geC4rQor4LmA4LiX4Li34Lit4LiZCivguYHguJfguYgKK+C5geC4l+C5iQor4LmB4LiX4LmJ4LmGCivguYHguJfguYfguIHguIvguLXguYgKK+C5geC4l+C5h+C4geC4i+C4teC5iOC4oeC4tOC5gOC4leC4reC4o+C5jAor4LmB4LiX4LiHCivguYHguJfguYjguIcKK+C5geC4l+C5ieC4hwor4LmB4LiX4LmH4LiH4LiB4LmM4LiZ4LmJ4LizCivguYHguJfguIfguYPguIgKK+C5geC4l+C4h+C5g+C4iOC4lOC4swor4LmB4LiX4LiH4LiV4Liw4LmE4LiaCivguYHguJfguIfguJfguKfguKIKK+C5geC4l+C4h+C4p+C4tOC4quC4seC4ogor4LmB4LiX4LiH4Lir4Lii4Lin4LiBCivguYHguJfguYnguIjguKPguLTguIcKK+C5geC4l+C4leC4ouC5jAor4LmB4LiX4LmJ4LiX4Li14LmI4LiI4Lij4Li04LiHCivguYHguJfguJkKK+C5geC4l+C5iOC4mQor4LmB4LiX4LiZ4LmA4LiI4LiZ4LiV4LmMCivguYHguJfguJnguJfguLLguKXguLHguKEKK+C5geC4l+C4meC4l+C4teC5iOC4iOC4sAor4LmB4LiX4LmI4LiZ4Lie4Li04Lih4Lie4LmMCivguYHguJfguYjguJnguKHguJPguJHguKUKK+C5geC4l+C5iOC4meC4peC4sgor4LmB4LiX4LmI4LiZ4Lir4Lih4Li24LiBCivguYHguJfguJoKK+C5geC4l+C4o+C4gQor4LmB4LiX4Lij4LiB4LiL4Lit4LiZCivguYHguJfguKPguIHguIvguYnguK3guJkKK+C5geC4l+C4o+C4geC4i+C4tuC4oQor4LmB4LiX4Lij4LiB4LmB4LiL4LiHCivguYHguJfguKPguIHguYDguJXguK3guKPguYwKK+C5geC4l+C4o+C4geC5geC4nOC5iOC4meC4lOC4tOC4mQor4LmB4LiX4Lij4LiB4LmC4Lie4LiZCivguYHguJfguKXguYDguKXguLXguKLguKEKK+C5geC4l+C4sAor4LmB4LiX4Liw4LmC4Lil4LihCivguYLguJcKK+C5guC4l+C5iAor4LmC4LiX4LiB4LmA4LiX4LiBCivguYLguJfguIfguYYKK+C5guC4l+C4h+C5gOC4l+C4hwor4LmC4LiX4LiT4LiwCivguYLguJfguYLguJfguKkKK+C5guC4l+C4mOC4gQor4LmC4LiX4LiZCivguYLguJfguJnguYLguJfguYgKK+C5guC4l+C4oeC4meC4seC4qgor4LmC4LiX4LijLQor4LmC4LiX4Lij4LiE4Lih4LiZ4Liy4LiE4LihCivguYLguJfguKPguJfguKPguKPguKjguJnguYwKK+C5guC4l+C4o+C4l+C4seC4qOC4meC5jAor4LmC4LiX4Lij4Lie4Li04Lih4Lie4LmMCivguYLguJfguKPguKDguLLguJ4KK+C5guC4l+C4o+C4oQor4LmC4LiX4Lij4Lih4Lio4Lix4Liq4LiV4Lij4Liy4Lin4Li44LiYCivguYLguJfguKPguKHguKvguI3guLTguIcKK+C5guC4l+C4o+C5gOC4peC4ggor4LmC4LiX4Lij4Lio4Lix4Lie4LiX4LmMCivguYLguJfguKPguKrguLLguKMKK+C5guC4l+C4peC4sgor4LmC4LiX4Lio4LiBCivguYLguJfguKkKK+C5guC4l+C4qS0KK+C5guC4l+C4qeC4geC4o+C4k+C5jAor4LmC4LiX4Lip4LiV4Lij4Lix4LiiCivguYLguJfguKnguJfguLLguIfguKfguLTguJnguLHguKIKK+C5guC4l+C4qeC5guC4nuC4ogor4LmC4LiX4Lip4LiyCivguYLguJfguKnguLLguIHguKMKK+C5guC4l+C4qeC4suC4lOC4tOC4peC4gQor4LmC4LiX4Lip4Liy4LiZ4Li44LmC4LiX4LipCivguYLguJfguKnguLLguKPguKHguJPguYwKK+C5guC4l+C4qi0KK+C5guC4l+C4quC4sAor4LmC4LiX4Liq4Liy4LiE4LiV4Li0CivguYLguJfguYLguKoKK+C5guC4l+C4q+C4rOC4sAor4LmC4LiX4Lir4Lis4Li04LiZ4Li1CivguYTguJcKK+C5hOC4l+C5iQor4LmE4LiX4LmA4LiX4LmA4LiZ4Li14Lii4LihCivguYTguJfguYDguJfguKPguJUKK+C5hOC4l+C4ogor4LmE4LiX4Lii4LiU4LizCivguYTguJfguKLguJfguLLguJkKK+C5hOC4l+C4ouC4mOC4o+C4o+C4oQor4LmE4LiX4Lii4LiZ4LmJ4Lit4LiiCivguYTguJfguKLguJnguLHguJrguKrguLLguKEKK+C5hOC4l+C4ouC4meC4seC4muC4q+C5ieC4sgor4LmE4LiX4Lii4Lir4Lil4LiHCivguYTguJfguKLguKvguKXguKfguIcKK+C5hOC4l+C4ouC5g+C4q+C4jeC5iAor4LmE4LiX4LijCivguYTguJfguKPguJfguK3guIcKK+C5hOC4l+C4o+C5gOC4peC4teC4ouC4mgor4LmE4LiX4Lin4LiwCivguJgKK+C4mOC4hwor4LiY4LiH4LiB4LmMCivguJjguIfguIHguKPguLDguJrguLXguYjguJjguLjguIoKK+C4mOC4h+C4iOC4o+C4sOC5gOC4guC5iQor4LiY4LiH4LiJ4Liy4LiZCivguJjguIfguIrguLHguKIKK+C4mOC4h+C4iuC4seC4ouC5gOC4ieC4peC4tOC4oeC4nuC4peC4guC4reC4h+C4l+C4q+C4suC4o+C4muC4gQor4LiY4LiH4LiK4Lix4Lii4LmA4LiJ4Lil4Li04Lih4Lie4Lil4LiC4Lit4LiH4LiX4Lir4Liy4Lij4LmA4Lij4Li34LitCivguJjguIfguIrguLHguKLguYDguInguKXguLTguKHguJ7guKXguILguK3guIfguJfguKvguLLguKPguK3guLLguIHguLLguKgKK+C4mOC4h+C4iuC4suC4leC4tAor4LiY4LiH4LiK4Liy4LiiCivguJjguIfguJXguLDguILguLLguJoKK+C4mOC4h+C4meC4s+C4o+C4tOC5ieC4pwor4LiY4LiH4Lia4Lij4Lih4Lij4Liy4LiK4Lin4LiH4Lio4LmM4LiZ4LmJ4Lit4LiiCivguJjguIfguJrguKPguKHguKPguLLguIrguKfguIfguKjguYzguYPguKvguI3guYgKK+C4mOC4h+C4m+C4o+C4sOC4iOC4s+C4geC4reC4h+C4l+C4seC4nuC4muC4gQor4LiY4LiH4Lib4Lij4Liw4LiI4Liz4LiB4Lit4LiH4LiX4Lix4Lie4LmA4Lij4Li34LitCivguJjguIfguJvguKPguLDguIjguLPguIHguK3guIfguJfguLHguJ7guK3guLLguIHguLLguKgKK+C4mOC4h+C4nuC4o+C4sOC4hOC4o+C4uOC4keC4nuC5iOC4suC4q+C5jAor4LiY4LiH4Lie4Li04LiX4Lix4LiB4Lip4LmM4Liq4Lix4LiZ4LiV4Li04Lij4Liy4Lip4LiO4Lij4LmMCivguJjguIfguKHguKvguLLguKPguLLguIrguJnguYnguK3guKIKK+C4mOC4h+C4oeC4q+C4suC4o+C4suC4iuC5g+C4q+C4jeC5iAor4LiY4LiH4LmA4Lii4Liy4Lin4Lij4Liy4LiK4LiZ4LmJ4Lit4LiiCivguJjguIfguYDguKLguLLguKfguKPguLLguIrguYPguKvguI3guYgKK+C4mOC4h+C4o+C4suC4iuC4meC4suC4p+C4tQor4LiY4LiH4Lij4Liy4LiK4Li04LiZ4Li14LiZ4LmJ4Lit4LiiCivguJjguIfguKPguLLguIrguLTguJnguLXguYPguKvguI3guYgKK+C4mOC4h+C4quC4suC4oeC5gOC4q+C4peC4teC5iOC4ouC4oQor4LiY4LiKCivguJjguIrguLUKK+C4mOC4leC4o+C4kAor4LiY4LiZCivguJjguJktCivguJjguJnguJjguLLguJnguLUKK+C4mOC4meC4muC4lOC4tQor4LiY4LiZ4Lia4Lix4LiV4LijCivguJjguJnguKrguKHguJrguLHguJXguLQKK+C4mOC4meC4quC4suC4owor4LiY4LiZ4Lix4LiHCivguJjguJnguLLguITguKEKK+C4mOC4meC4suC4hOC4suC4owor4LiY4LiZ4Liy4LiE4Liy4Lij4Lie4Liy4LiT4Li04LiK4Lii4LmMCivguJjguJnguLLguITguLLguKPguYLguKXguIEKK+C4mOC4meC4suC4hOC4suC4o+C4reC4reC4oeC4quC4tOC4mQor4LiY4LiZ4Liy4LiT4Lix4LiV4Li0CivguJjguJnguLTguJUKK+C4mOC4meC4tOC4qeC4kOC4sAor4LiY4LiZ4Li04Lip4LiQ4LiyCivguJjguJnguLgKK+C4mOC4meC4uOC4oy0KK+C4mOC4meC4uOC4o+C4oeC4suC4o+C4hAor4LiY4LiZ4Li44Lij4Lin4Li04LiX4Lii4LiyCivguJjguJnguLjguKPguYDguKfguJcKK+C4mOC4meC4uQor4LiY4LiZ4Li54Lio4Li04Lil4Lib4LmMCivguJjguYDguJnguKgKK+C4mOC5gOC4meC4qOC4p+C4owor4LiY4LmC4LiZ4Lib4LiI4Lix4LiiCivguJjguYTguJnguKjguKfguKPguKPguKLguYwKK+C4mOC4oQor4LiY4Lih4LiB4Lij4LiBCivguJjguKMKK+C4mOC4o+C4hwor4LiY4Lij4LiTCivguJjguKPguJPguLTguJkKK+C4mOC4o+C4k+C4tOC4meC4l+C4o+C5jAor4LiY4Lij4LiT4Li04LioCivguJjguKPguJPguLTguKjguKMKK+C4mOC4o+C4k+C4tOC4qOC4p+C4o+C5jAor4LiY4Lij4LiT4Li1CivguJjguKPguJPguLXguIHguLHguJnguYHguKrguIcKK+C4mOC4o+C4k+C4teC4m+C4o+C4sOC4leC4uQor4LiY4Lij4LiT4Li14Lih4LiT4LiR4LilCivguJjguKPguJPguLXguKPguYnguK3guIfguYTguKvguYkKK+C4mOC4o+C4k+C4teC4p+C4tOC4l+C4ouC4sgor4LiY4Lij4LiT4Li14Lio4Lin4LijCivguJjguKPguJPguLXguKrguIfguIbguYwKK+C4mOC4o+C4k+C4teC4quC4suC4owor4LiY4Lij4LiT4Li14Liq4Li54LiaCivguJjguKPguKHguLLguJkKK+C4mOC4o+C4o+C4oQor4LiY4Lij4Lij4LihLQor4LiY4Lij4Lij4Lih4LiB4LiW4LiyCivguJjguKPguKPguKHguIHguJbguLbguIEKK+C4mOC4o+C4o+C4oeC4geC4suC4oQor4LiY4Lij4Lij4Lih4LiB4Liy4LiiCivguJjguKPguKPguKHguIHguLLguKMKK+C4mOC4o+C4o+C4oeC4geC4suC4o+C4ouC5jAor4LiY4Lij4Lij4Lih4LmA4LiB4Lip4LiV4LijCivguJjguKPguKPguKHguILguLHguJnguJjguYwKK+C4mOC4o+C4o+C4oeC4hOC4uOC4kwor4LiY4Lij4Lij4Lih4LiI4Lij4LiT4LiwCivguJjguKPguKPguKHguIjguKPguKPguKLguLIKK+C4mOC4o+C4o+C4oeC4iOC4o+C4tOC4ouC4sgor4LiY4Lij4Lij4Lih4LiI4Lix4LiB4LijCivguJjguKPguKPguKHguIjguLHguIHguKnguLgKK+C4mOC4o+C4o+C4oeC4iOC4suC4hOC4sAor4LiY4Lij4Lij4Lih4LiI4Liy4Lij4Li1CivguJjguKPguKPguKHguIjguLTguJnguJTguLIKK+C4mOC4o+C4o+C4oeC5gOC4iOC4lOC4teC4ouC5jAor4LiY4Lij4Lij4Lih4LiK4Liy4LiV4Li0CivguJjguKPguKPguKHguJDguLTguJXguLQKK+C4mOC4o+C4o+C4oeC4lOC4sgor4LiY4Lij4Lij4Lih4LiX4Lij4Lij4Lio4LiZ4LiwCivguJjguKPguKPguKHguJjguLLguJTguLIKK+C4mOC4o+C4o+C4oeC4mOC4suC4leC4uAor4LiY4Lij4Lij4Lih4LiZ4Liy4LiWCivguJjguKPguKPguKHguJnguLTguJXguKLguYwKK+C4mOC4o+C4o+C4oeC4meC4tOC4ouC4oQor4LiY4Lij4Lij4Lih4LiZ4Li04Lii4Liy4LihCivguJjguKPguKPguKHguJnguLTguYDguKfguKgKK+C4mOC4o+C4o+C4oeC4meC4ueC4jQor4LiY4Lij4Lij4Lih4LiZ4Li54LiN4LiB4Liy4Lij4Lib4LiB4LiE4Lij4Lit4LiH4Lij4Liy4LiK4Lit4Liy4LiT4Liy4LiI4Lix4LiB4LijCivguJjguKPguKPguKHguYDguJnguLXguKLguKEKK+C4mOC4o+C4o+C4oeC5gOC4meC4teC4ouC4oeC4m+C4o+C4sOC5gOC4nuC4k+C4tQor4LiY4Lij4Lij4Lih4Lia4LiXCivguJjguKPguKPguKHguJrguLLguKUKK+C4mOC4o+C4o+C4oeC4muC4tOC4kAor4LiY4Lij4Lij4Lih4Lib4LiP4Li04Lij4Li54LibCivguJjguKPguKPguKHguJvguI/guLTguKrguLHguKHguKDguLTguJfguLIKK+C4mOC4o+C4o+C4oeC4m+C4o+C4sOC4leC4tOC4o+C4ueC4mwor4LiY4Lij4Lij4Lih4Lii4Li44LiVCivguJjguKPguKPguKHguKLguLjguJfguJjguYwKK+C4mOC4o+C4o+C4oeC4o+C4seC4leC4meC5jAor4LiY4Lij4Lij4Lih4Lij4Liy4LiK4LiyCivguJjguKPguKPguKHguKfguLHguJXguKMKK+C4mOC4o+C4o+C4oeC4qOC4suC4quC4leC4o+C5jAor4LiY4Lij4Lij4Lih4Liq4LiW4Li04LiV4Li0CivguJjguKPguKPguKHguKrguKDguLIKK+C4mOC4o+C4o+C4oeC4quC4o+C4teC4o+C4sAor4LiY4Lij4Lij4Lih4Liq4Lix4LiH4LiE4Li14LiV4Li0CivguJjguKPguKPguKHguKrguLHguIfguYDguKfguIoKK+C4mOC4o+C4o+C4oeC4quC4suC4geC4seC4iOC4ieC4sgor4LiY4Lij4Lij4Lih4Liq4Liy4Lih4Li04Liq4LijCivguJjguKPguKPguKHguKrguLLguKHguLUKK+C4mOC4o+C4o+C4oeC4quC4suC4owor4LiY4Lij4Lij4Lih4LiwCivguJjguKPguKPguKHguLDguJjguLHguKHguYLguKEKK+C4mOC4o+C4o+C4oeC4seC4meC5gOC4leC4p+C4suC4quC4tOC4gQor4LiY4Lij4Lij4Lih4Liy4LiX4Li04LiV4Lii4LmMCivguJjguKPguKPguKHguLLguJjguKPguKPguKEKK+C4mOC4o+C4o+C4oeC4suC4mOC4tOC4m+C5hOC4leC4ogor4LiY4Lij4Lij4Lih4Liy4LiY4Li04Lip4LiQ4Liy4LiZCivguJjguKPguKPguKHguLLguJnguLjguJjguKPguKPguKHguJvguI/guLTguJrguLHguJXguLQKK+C4mOC4o+C4o+C4oeC4suC4meC4uOC4quC4suC4owor4LiY4Lij4Lij4Lih4Liy4Lig4Li04Lih4Li44LiCCivguJjguKPguKPguKHguLLguKDguLTguKrguKHguLHguKIKK+C4mOC4o+C4o+C4oeC4suC4ouC4leC4meC4sAor4LiY4Lij4Lij4Lih4Liy4Lij4Lih4LiT4LmMCivguJjguKPguKPguKHguLLguKrguJnguYwKK+C4mOC4o+C4o+C4oeC4tOC4gQor4LiY4Lij4Lij4Lih4Li04LiBLQor4LiY4Lij4LiyCivguJjguKPguLLguJTguKUKK+C4mOC4o+C4suC4mOC4owor4LiY4Lij4Liy4LiY4Liy4LijCivguJjguKPguLLguJjguLTguJrguJTguLUKK+C4mOC4o+C4suC4mOC4tOC4mwor4LiY4Lij4Li04Lip4LiV4Lij4Li1CivguJjguYDguKPguKgKK+C4mOC5gOC4o+C4qeC4leC4o+C4tQor4LiY4LmA4Lij4Lip4LiV4Lij4Li14Lio4Lin4LijCivguJjguKfguLHguIoKK+C4mOC4seC4h+C4gQor4LiY4Lix4LiKCivguJjguLHguI0KK+C4mOC4seC4jS0KK+C4mOC4seC4jeC5guC4geC4qAor4LiY4Lix4LiN4LmA4LiC4LiVCivguJjguLHguI3guIrguLLguJXguLQKK+C4mOC4seC4jeC4jeC4suC4q+C4suC4owor4LiY4Lix4LiN4LiU4Lix4LiICivguJjguLHguI3guYDguJrguI3guIjguIEKK+C4mOC4seC4jeC4nuC4t+C4igor4LiY4Lix4LiN4Lih4Liy4LiqCivguJjguLHguJnguKLguLIKK+C4mOC4seC4meC4ouC4suC4p+C4suC4lwor4LiY4Lix4LiZ4Lin4Liy4LiE4LihCivguJjguLHguKHguKHguLAKK+C4mOC4suC4lOC4sgor4LiY4Liy4LiV4Lij4Li1CivguJjguLLguJXguKfguLLguIHguKMKK+C4mOC4suC4leC4uAor4LiY4Liy4LiV4Li4LQor4LiY4Liy4LiV4Li44LmC4LiC4LigCivguJjguLLguJXguLjguITguKPguKPguKAKK+C4mOC4suC4leC4uOC5gOC4iOC4lOC4teC4ouC5jAor4LiY4Liy4LiV4Li44LmA4Lia4LiyCivguJjguLLguJXguLjguKHguKHguLTguKrguKrguLIKK+C4mOC4suC4leC4uOC4quC4luC4ueC4mwor4LiY4Liy4LiV4Li44Lir4LiZ4Lix4LiBCivguJjguLLguJnguLTguJkKK+C4mOC4suC4meC4tOC4meC4l+C4o+C5jAor4LiY4Liy4LiZ4Li1CivguJjguLLguKMKK+C4mOC4suC4o+C4geC4s+C4meC4seC4pQor4LiY4Liy4Lij4LiE4Liz4LiZ4Lix4LilCivguJjguLLguKPguJMKK+C4mOC4suC4o+C4k+C4sAor4LiY4Liy4Lij4LiT4LiyCivguJjguLLguKPguJPguLLguKHguLHguKIKK+C4mOC4suC4o+C4nuC4o+C4sOC4geC4owor4LiY4Liy4Lij4Lii4Lix4LiB4Lip4LmMCivguJjguLLguKPguLIKK+C4mOC4suC4o+C4suC5gOC4hOC4q+C4sAor4LiY4Liy4Lij4Liy4LiY4Li04LiE4Li44LiTCivguJjguLLguKPguLLguKLguJnguJXguYwKK+C4mOC4suC4qeC4leC4o+C4tQor4LiY4Liz4Lih4Lij4LiH4LiE4LmMCivguJjguLPguKPguIcKK+C4mOC4tOC4lOC4sgor4LiY4Li04LiV4Li0CivguJjguLXguKMtCivguJjguLXguKPguKDguLLguJ4KK+C4mOC4teC4o+C4o+C4suC4igor4LiY4Li44LiKCivguJjguLjguJTguIfguIQtCivguJjguLjguJTguIfguITguYwKK+C4mOC4uOC4lOC4h+C4hOC4p+C4seC4leC4owor4LiY4Li44LiU4LiH4LiE4Liq4Lih4Liy4LiX4Liy4LiZCivguJjguLjguJUKK+C4mOC4uOC4leC4leC4sAor4LiY4Li44LihLQor4LiY4Li44Lih4LmA4LiB4LiV4Li4CivguJjguLjguKHguIrguLLguKUKK+C4mOC4uOC4oeC5gOC4nuC4peC4tOC4hwor4LiY4Li44Lih4LiyCivguJjguLjguKMtCivguJjguLjguKPguIHguLLguKMKK+C4mOC4uOC4o+C4geC4tOC4iAor4LiY4Li44Lij4LiwCivguJjguLjguKPguLMKK+C4mOC4uOC4peC4tQor4LiY4Li44LinLQor4LiY4Li44Lin4LiU4Liy4Lij4LiyCivguJjguLjguKfguKDguLLguIQKK+C4mOC4uOC4p+C4oeC4k+C4keC4pQor4LiY4Li44Lin4Lii4Lix4Lip4LiO4Li1CivguJjguLnguJsKK+C4mOC4ueC4my0KK+C4mOC4ueC4m+C4muC4suC4leC4owor4LiY4Li54Lib4LmB4Lie4LmA4LiX4Li14Lii4LiZ4LmB4LieCivguJjguLnguJvguYTguKHguYnguKPguLDguIHguLMKK+C4mOC4ueC4m+C4pOC5heC4qeC4tQor4LmA4LiY4LiZ4Li4CivguYDguJjguK0KK+C5gOC4mOC4teC4ouC4owor4LmC4LiY4LmICivguYLguJjguKfguJkKK+C4mQor4LiZ4LiBCivguJnguIHguIHguKPguLDguIjguK3guIEKK+C4meC4geC4geC4o+C4sOC4iOC4reC4geC4l+C4reC4hwor4LiZ4LiB4LiB4Lij4Liw4LiX4Li44LiHCivguJnguIHguIHguLDguJvguLnguJQKK+C4meC4geC4geC4suC4h+C4m+C4teC4gQor4LiZ4LiB4LmA4LiC4LiyCivguJnguIHguITguLjguYjguKEKK+C4meC4geC4iOC4suC4gQor4LiZ4LiB4LiV4LmI4LitCivguJnguIHguKLguLnguIcKK+C4meC4geC4o+C4ueC5iQor4LiZ4LiB4Liq4Lit4LiH4Lir4Lix4LinCivguJnguIHguKvguIEKK+C4meC4geC4q+C4p+C4teC4lAor4LiZ4LiB4Lit4Lii4Li54LmI4LmD4LiZ4Lib4Lil4LmI4Lit4LiHCivguJnguIHguLjguKUKK+C4meC4ggor4LiZ4LiCLQor4LiZ4LiC4LiX4Liy4Lij4LiT4LmMCivguJnguILguKXguLTguILguLTguJUKK+C4meC4guC5gOC4peC4guC4sgor4LiZ4LiC4LiyCivguJnguIQKK+C4meC4hOC4owor4LiZ4LiE4LijLQor4LiZ4LiE4Lij4Lia4Liy4LilCivguJnguITguKPguJrguLLguKXguIjguLHguIfguKvguKfguLHguJQKK+C4meC4hOC4o+C4o+C4seC4kAor4LiZ4LiE4Lij4Lin4Liy4Liq4Li1CivguJnguITguKPguYLguKrguKDguLTguJPguLUKK+C4meC4hOC4o+C5guC4quC5gOC4oOC4k+C4tQor4LiZ4LiE4Lij4Liy4LiX4LijCivguJnguITguKPguLTguJnguJfguKPguYwKK+C4meC4hOC5gOC4o+C4qAor4LiZ4LiE4Li04LiZ4LiX4LijCivguJnguITguLTguJnguJfguKPguYwKK+C4meC5gOC4hOC4meC4l+C4o+C5jAor4LiZ4LmA4LiE4Lio4Lin4LijCivguJnguYLguITguJfguKMKK+C4meC4hwor4LiZ4LiH4LiE4Lij4Liy4LiNCivguJnguIfguITguLjguJAKK+C4meC4h+C4meC4uOC4igor4LiZ4LiH4Lie4Liw4LiH4LiyCivguJnguIfguJ7guLLguKUKK+C4meC4h+C4nuC4uOC4mAor4LiZ4LiH4LmC4Lie4LiYCivguJnguIfguYDguKLguLLguKfguYwKK+C4meC4h+C4o+C4suC4oQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMCivguJnguJcKK+C4meC4l+C4tQor4LiZ4LiX4Li14Lij4Lix4LiiCivguJnguJnguJXguKPguLIKK+C4meC4meC4l+C5jAor4LiZ4LiZ4LiX4Lij4Li1CivguJnguJnguJfguKXguLUKK+C4meC4meC4l+C4tAor4LiZ4LiaCivguJnguJrguJnguK3guJoKK+C4meC4m+C4uOC4h+C4quC4geC4peC4tOC4h+C4hOC5jAor4LiZ4Lib4Li44LiH4Liq4LiB4Lil4Li24LiH4LiE4LmMCivguJnguJ4KK+C4meC4ni0KK+C4meC4nuC4geC4sAor4LiZ4Lie4LmA4LiB4LmJ4LiyCivguJnguJ7guITguLjguJMKK+C4meC4nuC5gOC4hOC4o+C4suC4sOC4q+C5jAor4LiZ4Lie4LiZ4Li04LiVCivguJnguJ7guJvguI7guKUKK+C4meC4nuC4nuC4pQor4LiZ4Lie4Lie4Lin4LiHCivguJnguJ7guJ7guLHguJkKK+C4meC4nuC4o+C4seC4leC4meC5jAor4LiZ4Lie4Lio4LiBCivguJnguJ7guKjguLnguKUKK+C4meC4oC0KK+C4meC4oOC4iOC4owor4LiZ4Lig4LiU4LilCivguJnguKDguKHguJPguJHguKUKK+C4meC4oOC4p+C4tOC4luC4tQor4LiZ4Lig4Lio4Li54LilCivguJnguKDguKrguLTguJnguJjguLjguYwKK+C4meC4oOC4sgor4LiZ4Lig4Liy4Lil4Lix4LiiCivguJnguKEKK+C4meC4oeC4geC4o+C4sOC5geC4iuC4hwor4LiZ4Lih4LiC4LmJ4LiZCivguJnguKHguITguKfguLLguKIKK+C4meC4oeC4iuC4sOC4meC4tQor4LiZ4Lih4LiK4LmJ4Liy4LiHCivguJnguKHguJXguLLguJrguK3guJQKK+C4meC4oeC4leC4suC4quC4sOC5geC4gQor4LiZ4Lih4LiV4Liz4LmA4Lij4Li14LiiCivguJnguKHguJXguLPguYDguKXguLXguKIKK+C4meC4oeC4meC4suC4hwor4LiZ4Lih4LiZ4Liy4LiZCivguJnguKHguJrguIHguK3guIHguJ7guKPguYjguK3guIcKK+C4meC4oeC4muC4reC4lAor4LiZ4Lih4Lic4LiHCivguJnguKHguJzguLIKK+C4meC4oeC4nuC4p+C4hwor4LiZ4Lih4Lie4Li04LiI4Li04LiV4LijCivguJnguKHguYHguKHguKcKK+C4meC4oeC5hOC4oeC5iQor4LiZ4Lih4Lin4Lix4LinCivguJnguKHguKrguKfguKPguKPguITguYwKK+C4meC4oeC4quC4suC4pwor4LiZ4Lih4Lir4LiZ4Li5CivguJnguKHguLAKK+C4meC4oeC4seC4geC4geC4suC4owor4LiZ4Lih4Lix4Liq4LiB4Liy4LijCivguJnguKHguLLguIsKK+C4meC4oi0KK+C4meC4ouC4meC4sAor4LiZ4Lii4LiZ4LiyCivguJnguKLguLAKK+C4meC4ouC4seC4geC4qeC5jAor4LiZ4LmC4Lii4Lia4Liy4LiiCivguJnguKMtCivguJnguKPguIEKK+C4meC4o+C4geC4suC4meC4leC5jAor4LiZ4Lij4LiB4Liy4LijCivguJnguKPguYDguJfguJ4KK+C4meC4o+C4meC4suC4lgor4LiZ4Lij4LiZ4Liy4Lii4LiBCivguJnguKPguJrguJTguLUKK+C4meC4o+C4muC4suC4pQor4LiZ4Lij4Lie4Lii4Lix4LiE4LiG4LmMCivguJnguKPguKPguLLguIoKK+C4meC4o+C5gOC4qOC4o+C4qeC4kOC5jAor4LiZ4Lij4Liq4Li04LiH4Lir4LmMCivguJnguKPguKrguLXguKvguYwKK+C4meC4o+C4sgor4LiZ4Lij4Liy4LiY4Li04LibCivguJnguKPguLTguJnguJfguKPguYwKK+C4meC4o+C4tOC4qAor4LiZ4Lij4Li04Lio4LijCivguJnguKPguLTguKjguKfguKMKK+C4meC4o+C4tQor4LiZ4Lij4Li14LmA4Lin4LiK4Lin4Li04LiX4Lii4LiyCivguJnguYDguKPguJnguJfguKPguKrguLnguKMKK+C4meC5gOC4o+C4qAor4LiZ4LmA4Lij4Lio4Lin4LijCivguJnguYDguKPguKjguKfguKPguYzguIrguJnguIrguYnguLLguIcKK+C4meC5gOC4o+C4qOC4ueC4owor4LiZ4LmC4Lij4LiU4LihCivguJnguKQtCivguJnguKTguITguKvguLTguJUKK+C4meC4pOC5guC4huC4qQor4LiZ4Lik4LiU4LihCivguJnguKTguJXguKItCivguJnguKTguJXguKLguYwKK+C4meC4pOC4leC4ouC4qOC4suC4peC4sgor4LiZ4Lik4LiV4Lii4Lio4Liy4Liq4LiV4Lij4LmMCivguJnguKTguJXguKLguKrguJbguLLguJkKK+C4meC4pOC5gOC4l+C4ngor4LiZ4Lik4LiZ4Liy4LiXCivguJnguKTguJrguJTguLUKK+C4meC4pOC4muC4suC4pQor4LiZ4Lik4LmA4Lia4LioCivguJnguKTguJsKK+C4meC4pOC4m+C4meC4teC4leC4tAor4LiZ4Lik4Lib4LmA4Lin4Lio4Lih4LmMCivguJnguKTguJvguLHguJXguJnguLUKK+C4meC4pOC4nuC4suC4mQor4LiZ4Lik4Lih4LilCivguJnguKTguKHguLLguJMKK+C4meC4pOC4oeC4tOC4lQor4LiZ4Lil4Liy4LiPCivguJnguKXguLTguJkKK+C4meC4peC4tOC4meC4tQor4LiZ4LinLQor4LiZ4Lin4LiBLQor4LiZ4Lin4LiB4Lig4Li54Lih4Li0CivguJnguKfguIHguKPguKPguKEKK+C4meC4p+C4geC4o+C4o+C4oeC4tOC4gQor4LiZ4Lin4LiB4LiwCivguJnguKfguIHguLLguKMKK+C4meC4p+C4geC4tOC4iAor4LiZ4Lin4LmC4LiB4Lin4Liy4LiXCivguJnguKfguITguKPguKvguLAKK+C4meC4p+C4hOC4uOC4kwor4LiZ4Lin4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJnguKfguIrguLLguJUKK+C4meC4p+C4lAor4LiZ4Lin4LiU4LiC4LmJ4Liy4LinCivguJnguKfguJTguYHguJvguYnguIcKK+C4meC4p+C4lOC4n+C4seC5ieC4mQor4LiZ4Lin4LiX4Lin4Liy4LijCivguJnguKfguJnguLTguJUKK+C4meC4p+C4meC4tOC4ouC4suC4ogor4LiZ4Lin4Lib4LiO4LilCivguJnguKfguJ7guJjguLkKK+C4meC4p+C4oQor4LiZ4LmI4Lin4LihCivguJnguKfguKHguLUKK+C4meC4p+C4oeC4uOC4ggor4LiZ4Lin4LiiCivguJnguKfguKLguJnguLLguJQKK+C4meC4p+C4o+C4seC4leC4meC5jAor4LiZ4Lin4LilCivguJnguKfguKXguIjguLHguJnguJfguKPguYwKK+C4meC4p+C4peC4iOC4seC4meC4l+C4o+C5jOC4l+C4sOC5gOC4pQor4LiZ4Lin4Lil4LiZ4LmJ4Lit4LiiCivguJnguKfguKXguKPguLDguKvguIcKK+C4meC4p+C4peC4peC4reC4rQor4LiZ4Lin4Lil4Lil4Liw4Lit4Lit4LiHCivguJnguKfguKXguKvguIcKK+C4meC4p+C5guC4peC4q+C4sAor4LiZ4Lin4Lin4Li04LiYCivguJnguKfguK3guKPguKvguLLguJfguLTguITguLjguJMKK+C4meC4p+C4seC4h+C4hOC4quC4seC4leC4luC4uOC4qOC4suC4quC4meC5jAor4LiZ4Lin4Liy4Lij4Lir4Liy4LiX4Li04LiE4Li44LiTCivguJnguKfguLLguKPguLAKK+C4meC4q+C4suC4lOC4gQor4LiZ4Lir4Liy4LiZCivguJnguKvguLLguKPguLgKK+C4meC4q+C4uOC4lQor4LiZ4LisCivguJnguKwtCivguJnguKzguIHguLLguKMKK+C4meC4rOC4mwor4LiZ4LitCivguJnguK3guIEKK+C4meC4reC4geC4geC4juC4q+C4oeC4suC4ogor4LiZ4Lit4LiB4LiE4Lij4Li5CivguJnguK3guIHguITguK3guIEKK+C4meC4reC4geC4iOC4suC4gQor4LiZ4Lit4LiB4LmD4LiICivguJnguK3guIHguIrguLLguJkKK+C4meC4reC4geC4leC4s+C4o+C4sgor4LiZ4Lit4LiB4LiW4LiZ4LiZCivguJnguK3guIHguJrguLLguKXguLUKK+C4meC4reC4geC4o+C4teC4lQor4LiZ4Lit4LiB4Lij4Li14LiV4LiZ4Lit4LiB4Lij4Lit4LiiCivguJnguK3guIHguKXguLnguYjguJnguK3guIHguJfguLLguIcKK+C4meC4reC4geC5gOC4q+C4meC4t+C4rQor4LiZ4Lit4LiHCivguJnguYjguK3guIcKK+C4meC5ieC4reC4hwor4LiZ4LmJ4Lit4LiH4LmGCivguJnguK3guIfguYDguJnguLfguK3guIcKK+C4meC5iOC4reC4h+C5geC4meC5iOC4hwor4LiZ4LmJ4Lit4LiH4LmA4Lie4LilCivguJnguK3guIfguYDguKXguLfguK3guJQKK+C4meC5iOC4reC4h+C4quC4tOC4h+C4q+C5jAor4LiZ4Lit4LiH4Lir4LiZ4LmJ4LiyCivguJnguK3guJUKK+C4meC4reC4mQor4LiZ4Lit4LiZ4LiB4LmJ4LiZCivguJnguK3guJnguIHguLTguJkKK+C4meC4reC4meC5g+C4iAor4LiZ4Lit4LiZ4LiV4Liy4LmE4Lih4LmI4Lir4Lil4Lix4LiaCivguJnguK3guJnguJXguLXguJ7guLjguIcKK+C4meC4reC4meC4meC4gQor4LiZ4Lit4LiZ4LmB4Lia4LmH4LiaCivguJnguK3guJnguYLguKPguIcKK+C4meC4reC4meC5gOC4peC5iOC4mQor4LiZ4Lit4LiZ4Lin4Lix4LiZCivguJnguK3guJnguYDguKfguKMKK+C4meC4reC4meC4q+C4peC4seC4muC4l+C4seC4muC4quC4tOC4l+C4mOC4tOC5jAor4LiZ4Lit4LiZ4Lir4Lil4Lix4Lia4LmE4Lih4LmI4Lij4Li54LmJIOC4meC4reC4meC4hOC4ueC5ieC5hOC4oeC5iOC5gOC4q+C5h+C4mQor4LiZ4Lit4LiaCivguJnguK3guJrguJnguJoKK+C4meC4reC4muC4meC5ieC4reC4oQor4LiZ4LmJ4Lit4LihCivguJnguYnguK3guKHguYDguIHguKXguYnguLLguJnguYnguK3guKHguIHguKPguLDguKvguKHguYjguK3guKHguJbguKfguLLguKIKK+C4meC5ieC4reC4oeC4meC4swor4LiZ4LmJ4Lit4LiiCivguJnguYnguK3guKLguYHguIfguYgKK+C4meC5ieC4reC4ouC5g+C4iAor4LiZ4LmJ4Lit4Lii4LmA4LiZ4Li34LmJ4Lit4LiV4LmI4Liz4LmD4LiICivguJnguYnguK3guKLguKvguJnguYjguLIKK+C4meC5ieC4reC4ouC4q+C4meC5ieC4sgor4LiZ4LmJ4Lit4Lii4Lir4Lij4Li34LitCivguJnguYnguK3guKLguYLguKvguJnguYjguIcKK+C4meC4sAor4LiZ4Liw4LmB4LiZ4LmI4LiHCivguJnguLHguIEKK+C4meC4seC4geC4geC4sAor4LiZ4Lix4LiB4LiB4Liy4LijCivguJnguLHguIHguIHguLLguKPguYDguKHguLfguK3guIcKK+C4meC4seC4geC4geC4teC4rOC4sgor4LiZ4Lix4LiB4LiC4Lix4LiVCivguJnguLHguIHguILguLHguJUtCivguJnguLHguIHguILguLHguJXguKTguIHguKnguYwKK+C4meC4seC4geC4guC5iOC4suC4pwor4LiZ4Lix4LiB4LiH4Liy4LiZCivguJnguLHguIHguJXguLAKK+C4meC4seC4geC4l+C5iOC4reC4h+C5gOC4l+C4teC5iOC4ouC4pwor4LiZ4Lix4LiB4LmA4LiX4LioCivguJnguLHguIHguYDguJfguKjguJnguYwKK+C4meC4seC4geC5guC4l+C4qQor4LiZ4Lix4LiB4LmC4LiX4Lip4LmA4LiU4LmH4LiU4LiC4Liy4LiUCivguJnguLHguIHguYLguJfguKnguJ7guLTguYDguKjguKkKK+C4meC4seC4geC4mOC4o+C4o+C4oQor4LiZ4Lix4LiB4Lia4Lin4LiKCivguJnguLHguIHguJrguLTguJkKK+C4meC4seC4geC4muC4uOC4jQor4LiZ4Lix4LiB4Lib4Lij4Liy4LiK4LiN4LmMCivguJnguLHguIHguJ7guKPguJUKK+C4meC4seC4geC4owor4LiZ4Lix4LiB4Lij4LiaCivguJnguLHguIHguYDguKPguLXguKLguJkKK+C4meC4seC4geC5gOC4peC4hwor4LiZ4Lix4LiB4Lio4Li24LiB4Lip4LiyCivguJnguLHguIHguKnguLHguJXguKMKK+C4meC4seC4geC4qeC4seC4leC4oy0KK+C4meC4seC4geC4qeC4seC4leC4o+C4iOC4seC4geC4owor4LiZ4Lix4LiB4Lip4Lix4LiV4Lij4LmA4LiZ4Lih4Li1CivguJnguLHguIHguKnguLHguJXguKPguJrguJTguLUKK+C4meC4seC4geC4qeC4seC4leC4o+C4muC4lgor4LiZ4Lix4LiB4Lip4Lix4LiV4Lij4Lib4Liy4LiQ4LiBCivguJnguLHguIHguKnguLHguJXguKPguKHguJPguJHguKUKK+C4meC4seC4geC4qeC4seC4leC4o+C4oeC4suC4peC4sgor4LiZ4Lix4LiB4Lip4Lix4LiV4Lij4LmC4Lii4LiECivguJnguLHguIHguKnguLHguJXguKPguKfguLTguJfguKLguLIKK+C4meC4seC4geC4quC4meC4oQor4LiZ4Lix4LiB4Liq4Lij4Liy4LiKCivguJnguLHguIHguKrguKfguJQKK+C4meC4seC4geC4quC4tOC4l+C4mOC4tOC5jAor4LiZ4Lix4LiB4Liq4Li34LiaCivguJnguLHguIHguKvguJnguLIKK+C4meC4seC4ggor4LiZ4Lix4LiECivguJnguLHguITguITguLAKK+C4meC4seC5iOC4hwor4LiZ4Lix4LmI4LiH4LiB4Li04LiZ4LiZ4Lit4LiZ4LiB4Li04LiZCivguJnguLHguYjguIfguILguLHguJTguKrguKHguLLguJjguLQKK+C4meC4seC4h+C4hOC4seC4pQor4LiZ4Lix4LmI4LiH4LiE4Li44LiB4LmA4LiC4LmI4LiyCivguJnguLHguYjguIfguIvguLHguIcKK+C4meC4seC5iOC4h+C4l+C4suC4hwor4LiZ4Lix4LmI4LiH4LiX4Liy4LiH4LmD4LiZCivguJnguLHguYjguIfguYDguJfguLXguKLguJkKK+C4meC4seC5iOC4h+C5g+C4meC4q+C4seC4p+C5g+C4iAor4LiZ4Lix4LmI4LiH4Lib4Lij4LiBCivguJnguLHguYjguIfguYLguJvguYjguIcKK+C4meC4seC5iOC4h+C4nuC4seC4muC5gOC4nuC4teC4ouC4mgor4LiZ4Lix4LmI4LiH4LmA4Lih4Li34Lit4LiHCivguJnguLHguYjguIfguKLguK3guIfguYYKK+C4meC4seC5iOC4h+C4o+C5ieC4suC4mQor4LiZ4Lix4LmI4LiH4Lij4Liy4LinCivguJnguLHguYjguIfguYDguKXguYjguJkKK+C4meC4seC5iOC4h+C4q+C5ieC4suC4hwor4LiZ4Lix4LiICivguJnguLHguI8KK+C4meC4seC4j+C4gQor4LiZ4Lix4LiRCivguJnguLHguJQKK+C4meC4seC4lOC4lOC4sgor4LiZ4Lix4LiU4LmB4LiZ4LiwCivguJnguLHguJTguKvguKHguLLguKIKK+C4meC4seC4leC4luC4uOC5jAor4LiZ4Lix4LmI4LiZCivguJnguLHguYnguJkKK+C4meC4seC5iOC4meC4i+C4tQor4LiZ4Lix4LiZ4LiXLQor4LiZ4Lix4LiZ4LiX4LiX4Liy4Lii4Li1CivguJnguLHguJnguJfguJnguYwKK+C4meC4seC4meC4l+C4meC4suC4geC4suC4owor4LiZ4Lix4LiZ4LiX4Lib4Lix4LiB4Lip4Li1CivguJnguLHguJnguJfguLQKK+C4meC4seC5iOC4meC5geC4meC5iAor4LiZ4Lix4LmI4LiZ4Lib4Liw4LmE4LijCivguJnguLHguYnguJnguYHguKUKK+C4meC4seC5iOC4meC5geC4q+C4peC4sAor4LiZ4Lix4LmI4LiZ4LmA4Lit4LiHCivguJnguLHguJoKK+C4meC4seC4muC4luC4t+C4rQor4LiZ4Lix4Lia4Lib4Lij4Liw4Liq4LiyCivguJnguLHguJrguKvguJnguYnguLLguJbguLfguK3guJXguLIKK+C4meC4seC4ogor4LiZ4Lix4Lii4LiZ4LmMCivguJnguLHguKLguJnguYzguJXguLIKK+C4meC4seC4ouC4meC5jOC5gOC4meC4leC4owor4LiZ4Lix4Lii4LiZ4LiyCivguJnguLHguKLguJnguLLguKHguJ7guLgKK+C4meC4seC4ouC4p+C5iOC4sgor4LiZ4Lix4LinCivguJnguLHguKfguYDguJnguLXguKIKK+C4meC4sgor4LiZ4LmI4LiyCivguJnguYnguLIKK+C4meC4suC4gQor4LiZ4Liy4LiB4Lia4Li44LiUCivguJnguLLguIHguKrguKfguLLguJQKK+C4meC4suC4geC4suC4quC4suC4q+C4o+C4tQor4LiZ4LmI4Liy4LmA4LiB4Lil4Li14Lii4LiU4LiZ4LmI4Liy4LiK4Lix4LiHCivguJnguLLguILguK3guJrguYDguKvguKXguYfguIEKK+C4meC4suC4hAor4LiZ4Liy4LiELQor4LiZ4Liy4LiE4LmA4LiB4Li14LmI4Lii4LinCivguJnguLLguITguYDguIHguLXguYnguKLguKcKK+C4meC4suC4hOC5gOC4geC4teC5ieC4ouC4p+C4geC4o+C4sOC4q+C4p+C4seC4lAor4LiZ4Liy4LiE4LmA4LiB4Li14LmI4Lii4Lin4Lie4Lij4Liw4Liq4Li44LmA4Lih4Lij4Li4CivguJnguLLguITguJfguJnguJXguYwKK+C4meC4suC4hOC4muC4o+C4tOC4nuC4seC4meC4mOC5jAor4LiZ4Liy4LiE4Lia4Liy4LioCivguJnguLLguITguJvguKPguIEKK+C4meC4suC4hOC4m+C4seC4gQor4LiZ4Liy4LiE4Lie4Lix4LiZ4LiY4LmMCivguJnguLLguITguKMKK+C4meC4suC4hOC4o+C4p+C4ogor4LiZ4Liy4LiE4Lij4Liy4LiKCivguJnguLLguITguKPguLLguIrguYHguJzguKXguIfguKTguJfguJjguLTguYwKK+C4meC4suC4hOC4peC4lOC4sgor4LiZ4Liy4LiE4LmA4Lil4LmI4LiZ4LiZ4LmJ4LizCivguJnguLLguITguKfguLTguJbguLUKK+C4meC4suC4hOC4quC4sOC4lOC4uOC5ieC4hwor4LiZ4Liy4LiE4Liq4Lix4LiH4Lin4Lix4LiI4LiJ4LijCivguJnguLLguITguLIKK+C4meC4suC4hOC4suC4p+C5guC4peC4gQor4LiZ4Liy4LiE4Li04LiZ4LiX4Lij4LmMCivguJnguLLguITguLUKK+C4meC4suC4hOC4ueC5iOC5guC4hAor4LiZ4Liy4LmA4LiE4LiZ4LiX4Lij4LmMCivguJnguLLguYDguITguKgKK+C4meC4suC5gOC4hOC4qOC4p+C4owor4LiZ4Liy4LmC4LiE4Lij4LiE4Li04LiZ4LiX4LijCivguJnguLLguIcKK+C4meC4suC4h+C4geC4o+C4suC4ogor4LiZ4Liy4LiH4LiB4Lin4Lix4LiBCivguJnguLLguIfguYDguIHguKXguYfguJQKK+C4meC4suC4h+C4h+C4suC4oQor4LiZ4Liy4LiH4LiI4Lij4Lix4LilCivguJnguLLguIfguIjguLjguKEKK+C4meC4suC4h+C4iuC4oQor4LiZ4Liy4LiH4LiU4LizCivguJnguLLguIfguJfguYnguLLguKcKK+C4meC4suC4h+C4meC4p+C4pQor4LiZ4Liy4LiH4LiZ4Li54LiZCivguJnguLLguIfguYHguJnguJoKK+C4meC4suC4h+C5g+C4mQor4LiZ4Liy4LiH4Lia4Liz4LmA4Lij4LitCivguJnguLLguIfguJ7guI3guLIKK+C4meC4suC4h+C4nuC4o+C4sOC4geC4s+C4meC4seC4pQor4LiZ4Liy4LiH4Lif4LmJ4LiyCivguJnguLLguIfguYDguKHguLfguK3guIcKK+C4meC4suC4h+C5hOC4oeC5iQor4LiZ4Liy4LiH4LmB4Lii4LmJ4LihCivguJnguLLguIfguKPguKEKK+C4meC4suC4h+C4o+C4oeC5g+C4q+C4jeC5iAor4LiZ4Liy4LiH4Lij4Lit4LiHCivguJnguLLguIfguKPguYnguK3guIfguYTguKvguYkKK+C4meC4suC4h+C4o+C4swor4LiZ4Liy4LiH4LmA4Lij4Li14Lii4LiHCivguJnguLLguIfguKXguYnguK3guKEKK+C4meC4suC4h+C5gOC4peC5h+C4lAor4LiZ4Liy4LiH4LmA4Lil4Li04LmJ4LiHCivguJnguLLguIfguKrguJnguK3guIfguJ7guKPguLDguYLguK3guKnguJDguYwKK+C4meC4suC4h+C4quC4suC4pwor4LiZ4Liy4LiH4Lir4LiH4Liq4LmMCivguJnguLLguIfguKvguYnguLLguKEKK+C4meC4suC4h+C4reC5ieC4reC4oQor4LiZ4Liy4LiH4Lit4Liy4LiiCivguJnguLLguIfguYDguK3guIEKK+C4meC4suC4h+C5geC4reC5iOC4mQor4LiZ4Liy4LmA4LiK4Li04LiH4LiX4Lij4LiHCivguJnguLLguI8KK+C4meC4suC4jy0KK+C4meC4suC4j+C4gQor4LiZ4Liy4LiP4LiB4Lij4Lij4LihCivguJnguLLguI/guJTguJnguJXguKPguLUKK+C4meC4suC4j+C4oi0KK+C4meC4suC4j+C4qOC4tOC4peC4m+C5jAor4LiZ4Liy4LiUCivguJnguLLguJTguLMKK+C4meC4suC4lgor4LiZ4Liy4LiXCivguJnguLLguJfguLUKK+C4meC4suC4mQor4LiZ4LmI4Liy4LiZCivguJnguLLguJnguJnguKEKK+C4meC5iOC4suC4meC4meC5ieC4swor4LiZ4LmI4Liy4LiZ4LiZ4LmJ4Liz4Lit4Liy4LiT4Liy4LmA4LiC4LiVCivguJnguYjguLLguJnguJ/guYnguLIKK+C4meC4suC4meC4quC4reC4h+C4meC4suC4mQor4LiZ4Liy4LiZ4LmB4Liq4LiZ4LiZ4Liy4LiZCivguJnguLLguJnguLHguITguKPguKoKK+C4meC4suC4meC4seC4leC4pwor4LiZ4Liy4LiZ4Lix4Lib4LiB4Liy4LijCivguJnguLLguJnguLIKK+C4meC4suC4meC4suC5gOC4meC4gQor4LiZ4Liy4LiZ4Liy4Lib4Lij4Liw4LiB4Liy4LijCivguJnguLLguYDguJnguIEKK+C4meC4suC4mgor4LiZ4Liy4Lia4LiC4LmJ4Liy4LinCivguJnguLLguJvguKPguLHguIcKK+C4meC4suC4m+C4tQor4LiZ4Liy4Lif4Liy4LiH4Lil4Lit4LiiCivguJnguLLguKDguLQKK+C4meC4suC4oOC4tQor4LiZ4Liy4LihCivguJnguLLguKEtCivguJnguLLguKHguIHguKMKK+C4meC4suC4oeC4mOC4o+C4o+C4oQor4LiZ4Liy4Lih4LmE4LiY4LiiCivguJnguLLguKHguJrguLHguJXguKMKK+C4meC4suC4oeC4m+C4suC4geC4geC4sgor4LiZ4Liy4Lih4LmB4Lid4LiHCivguJnguLLguKHguKrguIHguLjguKUKK+C4meC4suC4oeC4quC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4LiZ4Liy4Lih4Liq4Lih4LiN4LiyCivguJnguLLguKHguLLguJnguLjguIHguKPguKEKK+C4meC4suC4oeC4suC4meC4uOC4qOC4suC4quC4leC4o+C5jAor4LiZ4Liy4Lih4Liy4Lig4Li04LmE4LiY4LiiCivguJnguLLguYDguKHguLfguK3guIcKK+C4meC4suC4ogor4LiZ4LmI4Liy4LiiCivguJnguLLguKLguIEKK+C4meC4suC4ouC4geC5gOC4l+C4qOC4oeC4meC4leC4o+C4tQor4LiZ4Liy4Lii4LiB4Lij4Lix4LiQ4Lih4LiZ4LiV4Lij4Li1CivguJnguLLguKLguIfguLLguJkKK+C4meC4suC4ouC5gOC4h+C4tOC4mQor4LiZ4Liy4Lii4LiI4LmJ4Liy4LiHCivguJnguLLguKLguJXguKPguKfguIgKK+C4meC4suC4ouC4l+C5iOC4sgor4LiZ4Liy4Lii4LiX4LmJ4Liy4LiiCivguJnguLLguKLguJfguLjguJkKK+C4meC4suC4ouC4mOC4hwor4LiZ4Liy4Lii4Lib4Lij4Liw4LiB4Lix4LiZCivguJnguLLguKLguJvguKPguLDguYDguJ7guJPguLUKK+C4meC4suC4ouC5guC4o+C4hwor4LiZ4Liy4Lii4Lin4LmI4Liy4LiC4Li14LmJ4LiC4LmJ4Liy4Lie4Lil4Lit4LiiCivguJnguLLguKLguYDguKfguKMKK+C4meC4suC4ouC4q+C4meC5ieC4sgor4LiZ4Liy4Lii4Lit4Liy4LiB4LijCivguJnguLLguKLguK3guLPguYDguKDguK0KK+C4meC4suC4ouC4tOC4geC4sgor4LiZ4Liy4Lij4LiyCivguJnguLLguKPguLLguKLguJPguYwKK+C4meC4suC4o+C4suC4ouC4k+C5jOC4l+C4o+C4h+C5gOC4hOC4o+C4t+C5iOC4reC4hwor4LiZ4Liy4Lij4Liy4Lii4LiT4LmM4Lib4Lij4Liw4Lil4Lit4LiH4Lio4Li04Lil4Lib4LmMCivguJnguLLguKPguLLguKLguJPguYzguKvguLHguJXguJbguYwKK+C4meC4suC4o+C4tQor4LiZ4Liy4Lij4Li14Lia4Li54LijCivguJnguLLguKPguLXguJzguKUKK+C4meC4suC4o+C4teC4quC4ueC4owor4LiZ4Liy4LmA4Lij4LioCivguJnguLLguKXguLTguKfguLHguJkKK+C4meC4suC4peC4tQor4LiZ4Liy4LinCivguJnguYnguLLguKcKK+C4meC4suC4p+C4sgor4LiZ4Liy4Lin4Li04LiBCivguJnguLLguKfguLTguIEtCivguJnguLLguKfguLTguIHguYLguKLguJjguLTguJkKK+C4meC4suC4p+C4tOC4mQor4LiZ4Liy4Lin4Li1CivguJnguLLguYDguKfguKgKK+C4meC4suC4qAor4LiZ4Liy4Liq4Lin4LiZCivguJnguLLguKrguLIKK+C4meC4suC4quC4tOC4gQor4LiZ4Liy4Lir4Lin4LmI4Liy4LiZCivguJnguLLguKzguLTguIHguLIKK+C4meC4suC4rOC4tOC4geC4suC5geC4lOC4lAor4LiZ4Liy4Lis4Li04LiB4Liy4LiX4Lij4Liy4LiiCivguJnguLLguKzguLTguIHguLLguJnguYnguLMKK+C4meC4suC4rOC4tOC5gOC4gQor4LiZ4Liy4Lis4Li1CivguJnguLMKK+C4meC5ieC4swor4LiZ4LmJ4Liz4LiB4Lij4LiUCivguJnguYnguLPguIHguKPguLDguJTguYnguLLguIcKK+C4meC5ieC4s+C4geC4o+C4sOC4quC4suC4ogor4LiZ4LmJ4Liz4LiB4Liw4LiX4Li0CivguJnguYnguLPguIHguLLguKEKK+C4meC5ieC4s+C5gOC4geC4peC4t+C4rQor4LiZ4LmJ4Liz4LmA4LiB4Li04LiUCivguJnguYnguLPguILguLLguKcKK+C4meC5ieC4s+C4guC5ieC4suC4pwor4LiZ4LmJ4Liz4LiC4Li24LmJ4LiZCivguJnguYnguLPguILguLbguYnguJnguYPguKvguYnguKPguLXguJrguJXguLHguIEKK+C4meC5ieC4s+C4guC4uOC5iOC4meC5hOC4p+C5ieC5g+C4mSDguJnguYnguLPguYPguKrguYTguKfguYnguJnguK3guIEKK+C4meC5ieC4s+C5geC4guC5h+C4hwor4LiZ4LmJ4Liz4LmB4LiC4LmH4LiH4LmB4Lir4LmJ4LiHCivguJnguYnguLPguITguKPguLMKK+C4meC5ieC4s+C4hOC4o+C5iOC4swor4LiZ4LmJ4Liz4LiE4Lix4LiZCivguJnguYnguLPguITguYnguLLguIcKK+C4meC5ieC4s+C4hOC5ieC4suC4h+C5geC4guC5h+C4hwor4LiZ4LmJ4Liz4LiE4Liy4Lin4Lib4Lil4LiyCivguJnguYnguLPguITguLMKK+C4meC5ieC4s+C5gOC4hOC5h+C4oQor4LiZ4LmJ4Liz4LmA4LiE4LiiCivguJnguYnguLPguYDguIfguLTguJkKK+C4meC5ieC4s+C4iOC4seC4k+C4keC5jAor4LiZ4Liz4LiI4Lix4LiaCivguJnguYnguLPguIjguLTguYnguKEKK+C4meC5ieC4s+C5g+C4iAor4LiZ4LmJ4Liz4LmD4LiI4LmD4LiE4Lij4LmICivguJnguYnguLPguIrguJkKK+C4meC5ieC4s+C4iuC4uOC4mgor4LiZ4LmJ4Liz4LmA4LiK4Li14LmI4Lii4Lin4Lit4Lii4LmI4Liy4LiC4Lin4Liy4LiH4LmA4Lij4Li34LitCivguJnguYnguLPguYDguIrguLfguYnguK0KK+C4meC5ieC4s+C5gOC4iuC4t+C5iOC4reC4oQor4LiZ4LmJ4Liz4LiL4Lix4LiaCivguJnguYnguLPguIvguLLguKfguILguYnguLLguKcKK+C4meC5ieC4s+C4i+C4tuC4oQor4LiZ4LmJ4Liz4LiL4Li24Lih4Lia4LmI4Lit4LiX4Lij4Liy4LiiCivguJnguYnguLPguJTguK3guIHguYTguKHguYkKK+C4meC5ieC4s+C4lOC4reC4geC5hOC4oeC5ieC5gOC4l+C4qAor4LiZ4LmJ4Liz4LiU4Lit4LiB4LmE4Lih4LmJ4Liq4LiUCivguJnguYnguLPguJTguLHguJrguYTguJ8KK+C4meC5ieC4s+C4lOC4tOC4mgor4LiZ4LmJ4Liz4LiU4Li1CivguJnguYnguLPguJXguIEKK+C4meC5ieC4s+C4leC5ieC4reC4ogor4LiZ4LmJ4Liz4LiV4Liw4LiB4Li5CivguJnguYnguLPguJXguLDguYLguIEKK+C4meC5ieC4s+C4leC4sOC5hOC4hOC4o+C5iQor4LiZ4LmJ4Liz4LiV4Lix4LiaCivguJnguYnguLPguJXguLIKK+C4meC5ieC4s+C4leC4suC5gOC4iuC5h+C4lOC4q+C4seC4p+C5gOC4guC5iOC4sgor4LiZ4LmJ4Liz4LiV4Liy4LiV4LiB4LmD4LiZCivguJnguYnguLPguJXguLLguYDguJfguLXguKLguJkKK+C4meC5ieC4s+C4leC4suC4ogor4LiZ4LmJ4Liz4LiV4Liy4LilCivguJnguYnguLPguJXguLLguKXguYPguIHguKXguYnguKHguJQg4LmD4LiE4Lij4LiI4Liw4Lit4LiU4LmE4LiU4LmJCivguJnguYnguLPguJXguLLguKXguIjguLXguJkKK+C4meC5ieC4s+C5gOC4leC5ieC4sgor4LiZ4LmJ4Liz4LmD4LiV4LmJ4LiU4Li04LiZCivguJnguYnguLPguJfguKPguIcKK+C4meC5ieC4s+C4l+C5iOC4p+C4oeC4l+C4uOC5iOC4hyDguJzguLHguIHguJrguLjguYnguIfguYLguKvguKPguIfguYDguKvguKPguIcKK+C4meC5ieC4s+C4l+C5iOC4p+C4oeC4m+C4suC4gQor4LiZ4LmJ4Liz4LiX4LmI4LiyCivguJnguLPguJfguLLguIcKK+C4meC5ieC4s+C4l+C4ueC4meC4q+C4seC4pwor4LiZ4Liz4LmA4LiX4Li14LmI4Lii4LinCivguJnguYnguLPguYTguJfguKIKK+C4meC5ieC4s+C4meC4oQor4LiZ4LmJ4Liz4LiZ4Lih4LmB4Lih4LinCivguJnguYnguLPguJnguKHguKPguLLguIrguKrguLXguKvguYwKK+C4meC5ieC4s+C4meC4p+C4pQor4LiZ4LmJ4Liz4LiZ4Lit4LiHCivguJnguYnguLPguJnguK3guJnguITguKXguK3guIcKK+C4meC5ieC4s+C4meC5ieC4reC4ouC5geC4nuC5ieC5hOC4nwor4LiZ4LmJ4Liz4LiZ4Li04LmI4LiH4LmE4Lir4Lil4Lil4Li24LiBCivguJnguYnguLPguJrguYjguK3guJnguYnguK3guKIKK+C4meC5ieC4s+C5guC4muC4ogor4LiZ4LmJ4Liz4Lib4Lij4Liw4Liq4Liy4LiZ4LiX4Lit4LiHCivguJnguYnguLPguJvguKXguLIKK+C4meC5ieC4s+C4m+C5iOC4sgor4LiZ4LmJ4Liz4Lic4Lil4Li24LiBCivguJnguYnguLPguJzguLbguYnguIcKK+C4meC5ieC4s+C4nuC4o+C4sOC4nuC4tOC4nuC4seC4kuC4meC5jOC4quC4seC4leC4ouC4sgor4LiZ4LmJ4Liz4Lie4Lij4Li04LiBCivguJnguYnguLPguJ7guKPguLTguIHguYDguJzguLIKK+C4meC5ieC4s+C4nuC4seC4geC4meC5ieC4s+C5geC4o+C4hwor4LiZ4Liz4Lie4LiyCivguJnguYnguLPguJ7guLbguYjguIfguYDguKPguLfguK3guYDguKrguLfguK3guJ7guLbguYjguIfguJvguYjguLIKK+C4meC5ieC4s+C4nuC4uAor4LiZ4LmJ4Liz4Lih4LiZ4LiV4LmMCivguJnguYnguLPguKHguJnguJXguKPguYwKK+C4meC5ieC4s+C4oeC4seC4mQor4LiZ4LmJ4Liz4Lih4Lix4LiZ4LiB4LmK4Liy4LiUCivguJnguYnguLPguKHguLHguJnguYDguILguLXguKLguKcKK+C4meC5ieC4s+C4oeC4seC4meC5gOC4hOC4o+C4t+C5iOC4reC4hwor4LiZ4LmJ4Liz4Lih4Lix4LiZ4LiI4Lix4LiZ4LiX4LiZ4LmMCivguJnguYnguLPguKHguLHguJnguYLguIvguKXguLIKK+C4meC5ieC4s+C4oeC4seC4meC4lOC4tOC4mQor4LiZ4LmJ4Liz4Lih4Lix4LiZ4LiU4Li04LiaCivguJnguYnguLPguKHguLHguJnguJTguLXguYDguIvguKUKK+C4meC5ieC4s+C4oeC4seC4meC4leC4suC4meC4tQor4LiZ4LmJ4Liz4Lih4Lix4LiZ4LmA4LiV4LiyCivguJnguYnguLPguKHguLHguJnguYDguJrguJnguIvguLTguJkKK+C4meC5ieC4s+C4oeC4seC4meC4nuC4o+C4suC4ogor4LiZ4LmJ4Liz4Lih4Lix4LiZ4Lih4LiZ4LiV4Lij4LmMCivguJnguYnguLPguKHguLHguJnguKLguLLguIcKK+C4meC5ieC4s+C4oeC4seC4meC4o+C4sOC4geC4swor4LiZ4LmJ4Liz4Lih4Lix4LiZ4Liq4LiZCivguJnguYnguLPguKHguLHguJnguKrguKXguLHguJQKK+C4meC5ieC4s+C4oeC4seC4meC4q+C4oeC5iOC4reC4hwor4LiZ4LmJ4Liz4Lih4Lix4LiZ4Lir4Lil4LmI4Lit4Lil4Li34LmI4LiZCivguJnguYnguLPguKHguLLguJvguKXguLLguIHguLTguJnguKHguJQg4LiZ4LmJ4Liz4Lil4LiU4Lih4LiU4LiB4Li04LiZ4Lib4Lil4LiyCivguJnguYnguLPguKHguLfguK0KK+C4meC5ieC4s+C4oeC4ueC4gQor4LiZ4LmJ4Liz4LmA4Lih4LiyCivguJnguYnguLPguKLguYjguK3guKIKK+C4meC5ieC4s+C4ouC4sgor4LiZ4LmJ4Liz4Lii4Liy4LmA4LiE4Lih4Li1CivguJnguYnguLPguYDguKLguYfguJnguJvguKXguLLguJXguLLguKIKK+C4meC4s+C4o+C5iOC4reC4hwor4LiZ4LmJ4Liz4Lij4LmJ4Lit4LiZ4Lib4Lil4Liy4LmA4Lib4LmH4LiZCivguJnguYnguLPguKPguLHguIEKK+C4meC5ieC4s+C5geC4o+C5iAor4LiZ4LmJ4Liz4Lil4LiHCivguJnguYnguLPguKXguJTguJXguK3guJzguLjguJQKK+C4meC5ieC4s+C4peC4sOC4p+C5ieC4sgor4LiZ4LmJ4Liz4Lil4Liy4LiiCivguJnguYnguLPguKXguLLguKLguKrguK0KK+C4meC5ieC4s+C4peC4suC4ouC4q+C4gQor4LiZ4LmJ4Liz4Lil4Liy4Lii4LmE4Lir4LilCivguJnguYnguLPguYDguKXguLXguYnguKLguIcKK+C4meC5ieC4s+C4p+C4mQor4LiZ4LmJ4Liz4Lin4LmJ4LiyCivguJnguYnguLPguYTguKcKK+C4meC5ieC4s+C4quC5ieC4oQor4LiZ4LmJ4Liz4Liq4LmJ4Lih4Liq4Liy4Lii4LiK4Li5CivguJnguLPguKrguKHguLHguKIKK+C4meC5ieC4s+C4quC4seC4h+C4guC5jAor4LiZ4LmJ4Liz4Liq4Lix4LmI4LiH4Lif4LmJ4LiyIOC4m+C4peC4suC4quC4seC5iOC4h+C4neC4mQor4LiZ4Liz4Liq4Li34LiaCivguJnguYnguLPguKrguLjguIEKK+C4meC5ieC4s+C5gOC4quC4teC4ouC4hwor4LiZ4Liz4LmB4Liq4LiU4LiHCivguJnguYnguLPguKvguJnguKfguIEKK+C4meC5ieC4s+C4q+C4meC4seC4gQor4LiZ4LmJ4Liz4Lir4LiZ4LmJ4LiyCivguJnguYnguLPguKvguJnguLbguYjguIcKK+C4meC5ieC4s+C4q+C4meC4tuC5iOC4h+C5g+C4iOC5gOC4lOC4teC4ouC4p+C4geC4seC4mQor4LiZ4LmJ4Liz4Lir4Lih4Liy4LiBCivguJnguYnguLPguKvguK3guKEKK+C4meC5ieC4s+C5gOC4q+C4peC4t+C4reC4hwor4LiZ4LmJ4Liz4LmA4Lir4Lil4Li34Lit4LiH4LiZ4LmJ4Liz4LiV4Liy4LilCivguJnguYnguLPguYTguKvguKXguYTguJ/guJTguLHguJoKK+C4meC5ieC4s+C4reC4lOC4meC5ieC4s+C4l+C4mQor4LiZ4LmJ4Liz4Lit4LiaCivguJnguYnguLPguK3guJrguJ3guKPguLHguYjguIcKK+C4meC5ieC4s+C4reC5iOC4reC4mQor4LiZ4LmJ4Liz4Lit4LmJ4Lit4LiiCivguJnguYnguLPguK3guLHguJTguKXguKEKK+C4meC5ieC4s+C4reC4suC4muC4h+C4seC4pwor4LiZ4Li0CivguJnguLTguIHguYDguIHguLTguKUKK+C4meC4tOC4geC4guC4sAor4LiZ4Li04LiB4LiC4Lix4LiZ4LiV4LmMCivguJnguLTguIHguKMKK+C4meC4tOC4geC4o+C4reC4ouC4lOC5jAor4LiZ4Li04LiB4Liy4LiiCivguJnguLTguITguKEKK+C4meC4tOC4hOC4oeC4l+C4teC5iOC4lOC4tOC4mQor4LiZ4Li04LiE4Lih4Liq4Lij4LmJ4Liy4LiH4LiV4LiZ4LmA4Lit4LiHCivguJnguLTguITguKHguKrguKvguIHguKPguJPguYwKK+C4meC4tOC4hOC4oeC4reC4uOC4leC4quC4suC4q+C4geC4o+C4o+C4oQor4LiZ4Li04LiE4Lij4LiZ4LiW4LmMCivguJnguLTguITguKstCivguJnguLTguITguKvguIHguKPguKPguKEKK+C4meC4tOC4hOC4q+C4sAor4LiZ4Li04LiE4Lir4Li04LiVCivguJnguLTguITguLLguKXguLHguKIKK+C4meC4tOC4hOC4suC4q+C4gQor4LiZ4Li04LiE4Liy4Lir4LiBLQor4LiZ4Li04LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJnguLTguYLguITguJXguLTguJkKK+C4meC4tOC5guC4hOC4o+C4mAor4LiZ4Li04LmC4LiE4Lij4LihCivguJnguLTguIcKK+C4meC4tOC5iOC4hwor4LiZ4Li04LmI4LiH4LmA4LiH4Li14Lii4LiaCivguJnguLTguYjguIfguYDguInguKIKK+C4meC4tOC5iOC4h+C5geC4meC5iAor4LiZ4Li04LiICivguJnguLTguIgtCivguJnguLTguIjguKjguLXguKUKK+C4meC4tOC4lAor4LiZ4Li04LiU4LmA4LiU4Li14Lii4LinCivguJnguLTguJTguKvguJnguYjguK3guKIKK+C4meC4tOC4lOC4q+C4meC4tuC5iOC4hwor4LiZ4Li04LiV4LiiLQor4LiZ4Li04LiV4Lii4LmMCivguJnguLTguJXguKLguJfguLLguJkKK+C4meC4tOC4leC4ouC4oOC4seC4lQor4LiZ4Li04LiV4Lii4Liq4Liy4LijCivguJnguLTguJXguLQKK+C4meC4tOC4leC4tOC4geC4owor4LiZ4Li04LiV4Li04LiB4Lij4LiT4LmMCivguJnguLTguJXguLTguIHguKPguKPguKEKK+C4meC4tOC4leC4tOC4geC4suC4owor4LiZ4Li04LiV4Li04LiB4Liy4Lij4LiT4LmMCivguJnguLTguJXguLTguJjguKPguKPguKEKK+C4meC4tOC4leC4tOC4meC4seC4ogor4LiZ4Li04LiV4Li04Lia4Lix4LiN4LiN4Lix4LiV4Li0CivguJnguLTguJXguLTguJrguLjguITguITguKUKK+C4meC4tOC4leC4tOC4oOC4suC4p+C4sAor4LiZ4Li04LiV4Li04Lin4Li04LiX4Lii4Liy4Lio4Liy4Liq4LiV4Lij4LmMCivguJnguLTguJXguLTguYDguKfguIrguKjguLLguKrguJXguKPguYwKK+C4meC4tOC4leC4tOC4qOC4suC4quC4leC4o+C5jAor4LiZ4Li04LiV4Li04Liq4Lih4Lih4LiV4Li0CivguJnguLTguJXguLTguKrguLHguKHguJ7guLHguJnguJjguYwKK+C4meC4tOC4leC4tOC5gOC4q+C4leC4uAor4LiZ4Li04LiX4LijCivguJnguLTguJfguKPguKPguKjguIHguLLguKMKK+C4meC4tOC4l+C4o+C4sgor4LiZ4Li04LiX4Lij4Liy4Lij4Lih4LiT4LmMCivguJnguLTguJfguLHguKjguJnguYwKK+C4meC4tOC4l+C4suC4hgor4LiZ4Li04LiX4Liy4LiZCivguJnguLTguJfguLLguJnguKfguIjguJnguLAKK+C4meC4tOC5gOC4l+C4qAor4LiZ4Li04LmA4LiX4Lio4Lio4Liy4Liq4LiV4Lij4LmMCivguJnguLTguJjguLLguJkKK+C4meC4tOC4mOC4tAor4LiZ4Li04LiZ4LiX4LiyCivguJnguLTguJnguJnguLAKK+C4meC4tOC4meC4meC4suC4lwor4LiZ4Li04LiZ4Lir4Li44LiVCivguJnguLTguJnguLLguJcKK+C4meC4tOC4muC4suC4lQor4LiZ4Li04Lib4Lij4Li04Lii4Liy4LiiCivguJnguLTguJvguLHguIjguIHguLLguKMKK+C4meC4tOC4nuC4iOC4meC5jAor4LiZ4Li04Lie4LiZ4LiY4LmMCivguJnguLTguJ7guJ7guLLguJkKK+C4meC4tOC4nuC4nuC4tOC4l+C4sgor4LiZ4Li04Lie4Lie4Li04LiX4Liy4LiN4Liy4LiTCivguJnguLTguJ7guLHguJfguJgtCivguJnguLTguJ7guLHguJfguJjguYwKK+C4meC4tOC4nuC4seC4l+C4mOC4geC4uOC4qOC4pQor4LiZ4Li04Lie4Lix4LiZ4LiY4LmMCivguJnguLTguJ7guLTguJcKK+C4meC4tOC5gOC4nuC4lwor4LiZ4Li04Lig4LiyCivguJnguLTguYjguKEKK+C4meC4tOC5ieC4oQor4LiZ4Li04Lih4LiZ4LiV4LmMCivguJnguLTguYjguKHguJnguKfguKUKK+C4meC4tOC4oeC4oeC4suC4mQor4LiZ4Li04Lih4Lih4Liy4LiZ4Lij4LiU4Li1CivguJnguLTguKHguLTguJUKK+C4meC4tOC4ouC4lQor4LiZ4Li04Lii4LiVLQor4LiZ4Li04Lii4LihCivguJnguLTguKLguKHguJnguLTguKLguLLguKIKK+C4meC4tOC4ouC4ouC4suC4mQor4LiZ4Li04Lii4Lii4Liy4LiZ4Li04LiBLQor4LiZ4Li04Lii4Lix4LiV4Li04LiZ4Li04Lii4LihCivguJnguLTguKLguLLguKEKK+C4meC4tOC4ouC4suC4ogor4LiZ4Li04Lii4Li44LiVCivguJnguLTguKMKK+C4meC4tOC4o+C4hOC4uOC4kwor4LiZ4Li04Lij4LmC4LiG4LipCivguJnguLTguKPguIrguKMKK+C4meC4tOC4o+C4iuC4o+C4sgor4LiZ4Li04Lij4LiX4Li44LiB4LiC4LmMCivguJnguLTguKPguYDguJfguKgKK+C4meC4tOC4o+C5guC4l+C4qQor4LiZ4Li04Lij4LmC4LiX4Lip4LiB4Lij4Lij4LihCivguJnguLTguKPguJnguLHguKIKK+C4meC4tOC4o+C4meC4suC4oQor4LiZ4Li04Lij4Lie4Lix4LiV4LijCivguJnguLTguKPguKDguLHguKIKK+C4meC4tOC4o+C4oeC4pQor4LiZ4Li04Lij4Lih4Liy4LiTCivguJnguLTguKPguKHguLLguJPguIHguLLguKIKK+C4meC4tOC4o+C4oeC4suC4mQor4LiZ4Li04Lij4Lih4Li04LiVCivguJnguLTguKPguKItCivguJnguLTguKPguKLguJrguLLguKUKK+C4meC4tOC4o+C4seC4leC4tOC4qOC4seC4ogor4LiZ4Li04Lij4Lix4LiZ4LiU4LijCivguJnguLTguKPguLHguJnguJXguKMtCivguJnguLTguKPguLHguJnguJXguKPguLLguKIKK+C4meC4tOC4o+C4seC4nuC4nuC4uOC4lwor4LiZ4Li04Lij4LiyCivguJnguLTguKPguLLguJ7guLLguJgKK+C4meC4tOC4o+C4suC4oeC4seC4ogor4LiZ4Li04Lij4Liy4Lih4Li04LipCivguJnguLTguKPguLLguKXguLHguKIKK+C4meC4tOC4o+C4suC4qAor4LiZ4Li04Lij4Liy4Lio4Lij4LieCivguJnguLTguKPguLLguKjguKPguLHguKIKK+C4meC4tOC4o+C4tOC4meC4mOC4meC5jAor4LiZ4Li04Lij4Li04LiZ4LiY4LiZ4Lie4Li04LiZ4Liy4LioCivguJnguLTguKPguLjguIHguJXguLQKK+C4meC4tOC4o+C4uOC4geC4leC4tOC4qOC4suC4quC4leC4o+C5jAor4LiZ4Li04Lij4Li44LiV4LiV4Li0CivguJnguLTguKPguLjguJXguJXguLTguJvguI/guLTguKrguLHguKHguKDguLTguJfguLIKK+C4meC4tOC4o+C4uOC4l+C4gQor4LiZ4Li04Lij4Li44LiX4LiY4LmMCivguJnguLTguYLguKPguIoKK+C4meC4tOC5guC4o+C4mAor4LiZ4Li04LmC4Lij4LiYLQor4LiZ4Li04LmC4Lij4LiY4Liq4Lih4Liy4Lia4Lix4LiV4Li0CivguJnguLTguKUKK+C4meC4tOC4pS0KK+C4meC4tOC4peC4muC4seC4leC4owor4LiZ4Li04Lil4Lib4Lix4LiX4Lih4LmMCivguJnguLTguKXguKPguLHguJXguJnguYwKK+C4meC4tOC4peC4uOC4muC4pQor4LiZ4Li04LmC4Lil4LiV4Lia4LilCivguJnguLTguYLguKXguJrguKUKK+C4meC4tOC5iOC4pwor4LiZ4Li04LmJ4LinCivguJnguLTguKfguITguKXguLTguK3guLTguIEKK+C4meC4tOC4p+C5gOC4hOC4peC4teC4ouC4o+C5jAor4LiZ4Li04Lin4LmA4LiE4Lil4Li14Lii4LiqCivguJnguLTguKfguJXguKPguK3guJkKK+C4meC4tOC4p+C4o+C4k+C5jAor4LiZ4Li04LmJ4Lin4LmE4Lir4LiZ4Lij4LmJ4Liy4Lii4LiB4LmH4LiV4Lix4LiU4LiZ4Li04LmJ4Lin4LiZ4Lix4LmJ4LiZCivguJnguLTguKfguLHguJUKK+C4meC4tOC4p+C4seC4leC4meC5jAor4LiZ4Li04Lin4Liy4LiVCivguJnguLTguKfguLLguKoKK+C4meC4tOC5gOC4p+C4qAor4LiZ4Li04LmA4Lin4LioLQor4LiZ4Li04LmA4Lin4Lio4LiZ4LmMCivguJnguLTguYDguKfguKjguKfguLTguJfguKLguLIKK+C4meC4tOC4qOC4sgor4LiZ4Li04Lio4Liy4LiB4LijCivguJnguLTguKjguLLguIHguLLguKUKK+C4meC4tOC4qOC4suC4hOC4oQor4LiZ4Li04Lio4Liy4LiK4LilCivguJnguLTguKjguLLguJfguLQKK+C4meC4tOC4qOC4suC4meC4suC4lgor4LiZ4Li04Lio4Liy4Lia4LiU4Li1CivguJnguLTguKjguLLguKHguJPguLUKK+C4meC4tOC4qOC4suC4o+C4seC4leC4meC5jAor4LiZ4Li04Lip4LiB4Lij4LihCivguJnguLTguKnguLLguJcKK+C4meC4tOC4quC4oC0KK+C4meC4tOC4quC4seC4igor4LiZ4Li04Liq4Lix4LiK4LiK4Liy4LiB4Liy4LijCivguJnguLTguKrguLHguKIKK+C4meC4tOC4quC4seC4ouC5g+C4iOC4hOC4rQor4LiZ4Li04Liq4Liy4LiXCivguJnguLTguKrguLTguJUKK+C4meC4tOC4quC4teC4l+C4mS0KK+C4meC4tOC4quC4teC4l+C4meC4sAor4LiZ4Li04Liq4Li14LiX4LiZ4Liy4LiB4Liy4LijCivguJnguLTguYDguKrguJgKK+C4meC4teC5iAor4LiZ4Li14LmJCivguJnguLXguJXguLQKK+C4meC4teC4leC4tOC4mOC4o+C4o+C4oQor4LiZ4Li14LiV4Li04Lio4Liy4Liq4LiV4Lij4LmMCivguJnguLXguYjguJnguLHguJkKK+C4meC4teC5iOC5geC4meC5iOC4sAor4LiZ4Li14LijLQor4LiZ4Li14Lij4LiI4LijCivguJnguLXguKPguIoKK+C4meC4teC4o+C4meC4suC4lwor4LiZ4Li14LmI4LmB4Lir4Lil4LiwCivguJnguLXguK3guK3guJkKK+C4meC4teC5iOC5gOC4reC4hwor4LiZ4Li14LmC4Lit4LiU4Li04LmA4Lih4Li14Lii4LihCivguJnguLbguIEKK+C4meC4tuC4geC4hOC4tOC4lAor4LiZ4Li24LiB4LiU4Li5CivguJnguLbguIHguJbguLbguIcKK+C4meC4tuC4geC5gOC4q+C5h+C4mQor4LiZ4Li24LiB4Lit4Lit4LiBCivguJnguLbguYjguIcKK+C4meC4tuC5iOC4h+C4q+C4oeC5ieC4reC5gOC4geC4peC4t+C4rQor4LiZ4Li4CivguJnguLjguIcKK+C4meC4uOC5iOC4hwor4LiZ4Li44LmI4LiH4LiB4Lij4Liw4LmC4LiI4Lih4Lit4LiBCivguJnguLjguYjguIfguYDguIjguLXguKLguKHguKvguYjguKHguYDguIjguLXguKLguKEKK+C4meC4uOC4h+C4luC4uOC4hwor4LiZ4Li44LiH4LiZ4Lix4LiHCivguJnguLjguYjguIfguKvguYjguKEKK+C4meC4uOC4igor4LiZ4Li44LiUCivguJnguLjguJUKK+C4meC4uOC5iOC4mQor4LiZ4Li44LmI4LihCivguJnguLjguYjguKHguJnguKfguKUKK+C4meC4uOC5iOC4oeC4meC4tOC5iOC4oQor4LiZ4Li44LmI4Lih4LmA4LiZ4Li34LmJ4LitCivguJnguLjguYnguKIKK+C4meC4ueC4mQor4LiZ4Li54LmI4LiZCivguJnguLnguYnguJkKK+C5gOC4meC4geC4guC4sAor4LmA4LiZ4LiB4LiC4Lix4LihCivguYDguJnguYjguIcKK+C5gOC4meC4leC4muC4reC4pQor4LmA4LiZ4LiV4LijCivguYDguJnguJXguLQKK+C5gOC4meC4leC4tOC4muC4seC4k+C4keC4tOC4lQor4LmA4LiZ4LmJ4LiZCivguYDguJnguJrguLTguKfguKXguLIKK+C5gOC4meC4m+C4iOC4ueC4mQor4LmA4LiZ4Lib4LiX4Li54LmA4LiZ4Li14Lii4LihCivguYDguJnguKHguLQKK+C5gOC4meC4oeC4tOC4leC4gS0KK+C5gOC4meC4oeC4tOC4leC4geC4meC4suC4oQor4LmA4LiZ4Lih4Li04LiV4LiB4LiwCivguYDguJnguKIKK+C5gOC4meC4ouC5gOC4l+C4teC4ouC4oQor4LmA4LiZ4Lii4LmD4LiqCivguYDguJnguKPguIHguLHguJPguJDguLUKK+C5gOC4meC4o+C4hOC4uOC4kwor4LmA4LiZ4Lij4LmA4LiX4LioCivguYDguJnguKPguJnguLLguJQKK+C5gOC4meC4o+C4meC4suC4lgor4LmA4LiZ4Lij4Lih4Li04LiVCivguYDguJnguKPguLDguJ7guLnguKrguLUKK+C5gOC4meC4qeC4suC4lwor4LmA4LiZ4LitCivguYDguJnguYnguK0KK+C5gOC4meC4sgor4LmA4LiZ4LmI4LiyCivguYDguJnguYjguLLguYTguJ8KK+C5gOC4meC4suC4py0KK+C5gOC4meC4suC4p+C4meC4tOC4lQor4LmA4LiZ4Liy4Lin4Lij4Lix4LiV4LiZ4LmMCivguYDguJnguLTguJkKK+C5gOC4meC4tOC5iOC4mQor4LmA4LiZ4Li04LmI4LiZ4LmGCivguYDguJnguLTguYjguJnguJnguLLguJkKK+C5gOC4meC4tOC4mgor4LmA4LiZ4Li04Lia4LmGCivguYDguJnguLTguJrguJnguLLguJoKK+C5gOC4meC4teC4ouC4hwor4LmA4LiZ4Li14Lii4LiZCivguYDguJnguLXguKLguKEKK+C5gOC4meC4teC4ouC4owor4LmA4LiZ4Li14Lii4Lij4LiX4Li44LiB4LiC4LmMCivguYDguJnguLXguKLguKPguYDguJfguKgKK+C5gOC4meC4teC4ouC4o+C4meC4suC4lwor4LmA4LiZ4Li34LmJ4LitCivguYDguJnguLfguYnguK3guIHguKnguLHguJXguKPguLTguKLguYwKK+C5gOC4meC4t+C5ieC4reC4hOC4p+C4suC4oQor4LmA4LiZ4Li34LmJ4Lit4LiE4Li54LmICivguYDguJnguLfguYnguK3guYDguITguYfguKEKK+C5gOC4meC4t+C4reC4hwor4LmA4LiZ4Li34Lit4LiH4LmGCivguYDguJnguLfguYjguK3guIcKK+C5gOC4meC4t+C5iOC4reC4h+C4iOC4suC4gQor4LmA4LiZ4Li34LmI4Lit4LiH4LiU4LmJ4Lin4LiiCivguYDguJnguLfguYjguK3guIfguYHguJXguYgKK+C5gOC4meC4t+C4reC4h+C4meC4reC4hwor4LmA4LiZ4Li34Lit4LiH4LiZ4Li04LiV4Lii4LmMCivguYDguJnguLfguK3guIfguYHguJnguYjguJkKK+C5gOC4meC4t+C5ieC4reC4h+C4reC4gQor4LmA4LiZ4Li34LmJ4Lit4LiV4Lix4LinCivguYDguJnguLfguYnguK3guJXguLLguKIKK+C5gOC4meC4t+C5ieC4reC5gOC4leC5iOC4suC4ouC4s+C5gOC4leC5iOC4sgor4LmA4LiZ4Li34LmJ4Lit4LiW4LmJ4Lit4Lii4LiB4Lij4Liw4LiX4LiH4LiE4Lin4Liy4LihCivguYDguJnguLfguYnguK3guJfguKPguLLguKIKK+C5gOC4meC4t+C5ieC4reC4l+C4teC5iAor4LmA4LiZ4Li34LmJ4Lit4LmB4LiX4LmJCivguYDguJnguLfguYnguK3guYDguJvguLfguYjguK3guKIKK+C5gOC4meC4t+C5ieC4reC5gOC4nuC4peC4hwor4LmA4LiZ4Li34LmJ4Lit4LmE4Lih4LmJCivguYDguJnguLfguK3guKIKK+C5gOC4meC4t+C4reC4ouC5hgor4LmA4LiZ4Li34LmJ4Lit4LmA4Lii4Li34LmI4LitCivguYDguJnguLfguYnguK3guYDguKLguLfguYjguK3guIHguKXguYnguLLguKHguYDguJnguLfguYnguK0KK+C5gOC4meC4t+C5ieC4reC5gOC4ouC4t+C5iOC4reC4muC4uOC4nOC4tOC4pwor4LmA4LiZ4Li34LmJ4Lit4LmA4Lii4Li34LmI4Lit4Lib4Lij4Liw4Liq4Liy4LiXCivguYDguJnguLfguYnguK3guYDguKLguLfguYjguK3guKLguLbguJTguJXguYjguK0KK+C5gOC4meC4t+C5ieC4reC4o+C5ieC4reC4hwor4LmA4LiZ4Li34LmJ4Lit4Lij4LmJ4Liy4LiiCivguYDguJnguLfguYnguK3guYDguKPguLfguYjguK3guIcKK+C5gOC4meC4t+C5ieC4reC4quC4oeC4seC4mQor4LmA4LiZ4Li34LmJ4Lit4Lir4LiyCivguYDguJnguLfguYnguK3guK3guYjguK3guJkKK+C5geC4meC5iAor4LmB4LiZ4LmI4LiHCivguYHguJnguYjguIfguJnguYnguK3guKIKK+C5geC4meC5iOC5g+C4iAor4LmB4LiZ4LmI4LiK4Lix4LiUCivguYHguJnguYjguYHguJfguYkKK+C5geC4meC5iOC4mQor4LmB4LiZ4LmI4LiZ4LiC4LiZ4Lix4LiUCivguYHguJnguYjguJnguJfguYnguK3guIcKK+C5geC4meC5iOC4meC4meC4seC4meC4leC5jAor4LmB4LiZ4LmI4LiZ4LmB4Lif4LmJ4LiZCivguYHguJnguYjguJnguKvguJnguLIKK+C5geC4meC5iOC4meC4q+C4meC5ieC4suC4reC4gQor4LmB4LiZ4LmI4LiZ4Lit4LiZCivguYHguJnguYjguJnguLTguYjguIcKK+C5geC4meC5iOC5geC4meC5iOC4pwor4LmB4LiZ4LiaCivguYHguJnguJrguYDguJnguLXguKLguJkKK+C5geC4meC4muC5geC4meC5iOC4mQor4LmB4LiZ4LihCivguYHguJnguKcKK+C5geC4meC5iOC4pwor4LmB4LiZ4Lin4LiX4Liy4LiHCivguYHguJnguKfguJfguLXguYjguKvguYnguLIKK+C5geC4meC5iOC4p+C5geC4meC5iAor4LmB4LiZ4Lin4LmC4LiZ4LmJ4LihCivguYHguJnguKfguJvguYjguLIKK+C5geC4meC4p+C4o+C4mgor4LmB4LiZ4Lin4Lij4LmI4Lin4LihCivguYHguJnguKfguYDguKPguLfguK0KK+C5geC4meC4p+C4q+C4meC5ieC4sgor4LmB4LiZ4Lin4Lir4Lil4Lix4LiHCivguYHguJnguLAKK+C5geC4meC5iOC4sAor4LmB4LiZ4Liw4LiZ4Lix4LiUCivguYHguJnguLDguJnguLMKK+C5geC4meC4sOC5geC4meC4pwor4LmB4LiZ4Liw4LmB4Lir4LiZCivguYLguJkKK+C5guC4meC5ieC4lQor4LmC4LiZ4LmJ4LiV4LmA4Lie4Lil4LiHCivguYLguJnguJkKK+C5guC4meC5iOC4mQor4LmC4LiZ4LmJ4LiZCivguYLguJnguYDguJkKK+C5guC4meC5gOC4muC5gOC4peC4teC4ouC4oQor4LmC4LiZ4LmJ4LihCivguYLguJnguYnguKHguJnguYnguLLguKcKK+C5guC4meC4oeC4nuC4o+C4o+C4kwor4LmC4LiZ4Lij4LiyCivguYLguJnguKPguLUKK+C5g+C4mQor4LmD4LiZ4LiB4Lij4LihCivguYPguJnguYTguKrguYkKK+C5g+C4meC4q+C4peC4p+C4hwor4LmE4LiZCivguYTguJnguJXguYzguITguKXguLHguJoKK+C5hOC4meC5guC4leC4o+C5gOC4iOC4mQor4LmE4LiZ4Lil4Lit4LiZCivguYTguJnguYLguK3guYDguJrguLXguKLguKEKK+C4mgor4Lia4LmICivguJrguIEKK+C4muC4geC4nuC4o+C5iOC4reC4hwor4Lia4LiHCivguJrguYjguIcKK+C4muC4h+C4gS0KK+C4muC4h+C4geC5jAor4Lia4LiH4LiB4LiKCivguJrguIfguIHguIrguIHguKMKK+C4muC4h+C4geC4suC4owor4Lia4LmK4LiH4LmA4Lia4LmK4LiHCivguJrguIfguKrguLgtCivguJrguIfguKrguLjguYwKK+C4muC4h+C4quC4uOC4geC4uOC4pQor4Lia4LiH4Liq4Li44LiB4Li54Lil4Li04LiBCivguJrguIfguK3guLHguJrguJrguIfguKPguLIKK+C4muC5iOC4h+C4reC4seC4muC4muC5iOC4h+C4o+C4sgor4Lia4LiPCivguJrguJQKK+C4muC4lOC4guC4ouC4teC5iQor4Lia4LiU4Lia4Lix4LiHCivguJrguJTguYDguK3guLfguYnguK3guIcKK+C4muC4lOC4tOC4meC4l+C4o+C5jAor4Lia4LiU4Li1CivguJrguJTguLXguJjguKPguKPguKEKK+C4muC4lOC4teC4nuC4o+C4lQor4Lia4LiU4Li14Lin4Lij4LiU4LiyCivguJrguJTguLXguKjguKMKK+C4muC4lgor4Lia4LiXCivguJrguJctCivguJrguJfguIHguKXguK3guJkKK+C4muC4l+C4geC4p+C4teC4meC4tOC4nuC4meC4mOC5jAor4Lia4LiX4LiB4Liz4Lir4LiZ4LiU4LmC4LiX4LipCivguJrguJfguITguKfguLLguKEKK+C4muC4l+C4hOC4seC4lOC4ouC5iOC4rQor4Lia4LiX4LiI4LijCivguJrguJfguYDguIjguKPguIjguLIKK+C4muC4l+C5gOC4ieC4nuC4suC4sOC4geC4suC4pQor4Lia4LiX4LiU4Lit4LiB4Liq4Lij4LmJ4Lit4LiiCivguJrguJfguJnguLMKK+C4muC4l+C4muC4h+C4geC4igor4Lia4LiX4Lia4LiH4Liq4Li44LmMCivguJrguJfguJrguKPguKPguJPguLLguJjguLTguIHguLLguKMKK+C4muC4l+C4muC4seC4jeC4jeC4seC4leC4tAor4Lia4LiX4Lia4Liy4LiXCivguJrguJfguJrguLLguJfguKHguLLguIEKK+C4muC4l+C4muC4ueC4o+C4k+C5jAor4Lia4LiX4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMCivguJrguJfguJ7guLLguIHguKLguYwKK+C4muC4l+C5gOC4nuC4peC4hwor4Lia4LiX4Lig4Liy4LiK4LiZ4LmMCivguJrguJfguKDguLLguIrguJnguLXguKLguYwKK+C4muC4l+C4oeC4suC4peC4ouC5jAor4Lia4LiX4Lij4LmJ4Lit4LiHCivguJrguJfguKPguLHguIoKK+C4muC4l+C5gOC4o+C4qAor4Lia4LiX4LmA4Lij4Li14Lii4LiZCivguJrguJfguKfguYDguKPguKgKK+C4muC4l+C4p+C4peC4seC4jeC4iuC5jAor4Lia4LiX4Lin4Liy4LijCivguJrguJfguKjguKPguLUKK+C4muC4l+C4quC4meC4l+C4meC4sgor4Lia4LiX4Liq4Lix4LiH4LiC4Lii4LiyCivguJrguJfguLLguKHguJ7guLjguIoKK+C4muC5guC4l+C4mQor4Lia4LiZCivguJrguYjguJkKK+C4muC4meC4guC5ieC4suC4p+C4nOC4tSDguJXguLXguILguYnguLLguKfguJ7guKPguLAKK+C4muC5iOC4meC4luC4tuC4hwor4Lia4LiZ4Lia4Liy4LiZCivguJrguJnguJrguLLguJnguKjguLLguKXguIHguKXguYjguLLguKcKK+C4muC4nuC4tOC4leC4owor4Lia4Lie4Li04LiV4Lij4Lie4Lij4Liw4Lij4Liy4LiK4Liq4Lih4Lig4Liy4LijCivguJrguJ7guLTguJgKK+C4muC5iOC4oQor4Lia4LmI4Lih4Lic4Li04LinCivguJrguYjguKHguKHguLHguJkKK+C4muC5iOC4oeC4q+C4meC4reC4hwor4Lia4Lih4Li0CivguJrguKMtCivguJrguKPguJfguLLguKMKK+C4muC4o+C4l+C4suC4o+C4geC4o+C4o+C4oQor4Lia4Lij4LihCivguJrguKPguKEtCivguJrguKPguKHguJjguLLguJXguLgKK+C4muC4o+C4oeC4muC4nuC4tOC4leC4owor4Lia4Lij4Lih4Lin4LiH4Lio4Liy4LiZ4Li44Lin4LiH4Lio4LmMCivguJrguKPguKHguK3guLHguJDguLQKK+C4muC4o+C4oeC4seC4leC4luC5jAor4Lia4Lij4Lij4LiB4Lin4LiUCivguJrguKPguKPguIjguIcKK+C4muC4o+C4o+C4iOC4luC4o+C4k+C5jAor4Lia4Lij4Lij4LiI4LiaCivguJrguKPguKPguIjguKfguJoKK+C4muC4o+C4o+C4iOC4uAor4Lia4Lij4Lij4LmA4LiI4Li04LiUCivguJrguKPguKPguJMKK+C4muC4o+C4o+C4ky0KK+C4muC4o+C4o+C4k+C4geC4uOC4juC4tQor4Lia4Lij4Lij4LiT4Lie4Li04Lig4LieCivguJrguKPguKPguJPguYLguKXguIEKK+C4muC4o+C4o+C4k+C4qOC4suC4peC4sgor4Lia4Lij4Lij4LiT4Liq4Liy4LijCivguJrguKPguKPguJPguLLguIHguLLguKMKK+C4muC4o+C4o+C4k+C4suC4hOC4oQor4Lia4Lij4Lij4LiT4Liy4LiY4Li04LiB4LijCivguJrguKPguKPguJPguLLguJjguLTguIHguLLguKMKK+C4muC4o+C4o+C4k+C4suC4meC4uOC4geC4o+C4oQor4Lia4Lij4Lij4LiT4Liy4Lij4Lix4LiB4Lip4LmMCivguJrguKPguKPguJPguLLguKPguLHguIHguKnguKjguLLguKrguJXguKPguYwKK+C4muC4o+C4o+C4lOC4sgor4Lia4Lij4Lij4LiU4Liy4LiBCivguJrguKPguKPguJTguLLguKHguLUKK+C4muC4o+C4o+C4lOC4suC4qOC4seC4geC4lOC4tOC5jAor4Lia4Lij4Lij4LiV4Liy4LiZ4Li24LiBCivguJrguKPguKPguJbguKMKK+C4muC4o+C4o+C4l+C4oQor4Lia4Lij4Lij4LiX4Lix4LiUCivguJrguKPguKPguJfguLHguJTguJDguLLguJkKK+C4muC4o+C4o+C4l+C4seC4mgor4Lia4Lij4Lij4LiX4Liy4LiZCivguJrguKPguKPguJfguLjguIEKK+C4muC4o+C4o+C5gOC4l+C4sgor4Lia4Lij4Lij4LmA4LiX4Li34Lit4LiHCivguJrguKPguKPguJ4KK+C4muC4o+C4o+C4ni0KK+C4muC4o+C4o+C4nuC5jAor4Lia4Lij4Lij4Lie4LiK4LiyCivguJrguKPguKPguJ7guIrguLTguJUKK+C4muC4o+C4o+C4nuC4lQor4Lia4Lij4Lij4Lie4LiVLQor4Lia4Lij4Lij4Lie4LiV4LiB4Li14Lil4LiyCivguJrguKPguKPguJ7guJXguIrguLLguKUKK+C4muC4o+C4o+C4nuC4leC4mOC4suC4leC4uAor4Lia4Lij4Lij4Lie4LiV4Lih4Liy4Lil4LiyCivguJrguKPguKPguJ7guJXguKPguLLguIoKK+C4muC4o+C4o+C4nuC4leC4p+C4suC4quC4tQor4Lia4Lij4Lij4Lie4LiV4Lio4Li04LiC4LijCivguJrguKPguKPguJ7guJrguLjguKPguLjguKkKK+C4muC4o+C4o+C4nuC4oOC4suC4hAor4Lia4Lij4Lij4Lie4LmA4Lig4LiXCivguJrguKPguKPguJ7guKHguLnguKUKK+C4muC4o+C4o+C4nuC4quC4leC4o+C4tQor4Lia4Lij4Lij4Lii4LiHCivguJrguKPguKPguKLguIfguIHguYwKK+C4muC4o+C4o+C4ouC5gOC4p+C4geC4qeC4geC5jAor4Lia4Lij4Lij4Lii4Liy4LiB4Liy4LioCivguJrguKPguKPguKLguLLguKIKK+C4muC4o+C4o+C4peC4seC4ogor4Lia4Lij4Lij4Lil4Lix4Lii4LiB4Lix4Lil4Lib4LmMCivguJrguKPguKPguKXguLHguKLguIjguLHguIHguKMKK+C4muC4o+C4o+C4peC4suC4ogor4Lia4Lij4Lij4Lil4Li4CivguJrguKPguKPguKXguLjguJnguLTguJXguLTguKDguLLguKfguLAKK+C4muC4o+C4o+C5gOC4peC4hwor4Lia4Lij4Lij4LmC4Lil4LihCivguJrguKPguKPguKnguLHguJcKK+C4muC4o+C4o+C4quC4mgor4Lia4Lij4Lij4Liq4LieCivguJrguKPguKPguKrguKEKK+C4muC4o+C4o+C4quC4suC4mQor4Lia4Lij4Lij4Liq4Liy4LijCivguJrguKPguKPguKvguLLguJkKK+C4muC4o+C4o+C4q+C4suC4owor4Lia4Lij4Lit4LiZ4LiL4LmMCivguJrguKPguLHguJQKK+C4muC4o+C4seC5iOC4meC4lOC4tQor4Lia4Lij4Lix4Lio4Lin4LmMCivguJrguKPguLLguIHguKPguKEKK+C4muC4o+C4suC4hwor4Lia4Lij4Liy4LiX4Li44LiB4Lij4LiyCivguJrguKPguLLguKXguLUKK+C4muC4o+C4tOC4geC4o+C4oQor4Lia4Lij4Li04LiB4Lij4Lij4LihCivguJrguKPguLTguIHguLHguJsKK+C4muC4o+C4tOC4geC4suC4owor4Lia4Lij4Li04LiC4LiyCivguJrguKPguLTguILguLLguKMKK+C4muC4o+C4tOC4guC4suC4o+C5guC4iOC4pQor4Lia4Lij4Li04LiE4LiT4Lir4LmMCivguJrguKPguLTguITguJPguKvguYzguKrguJnguJjguLQKK+C4muC4o+C4tOC4iOC4suC4hAor4Lia4Lij4Li04LiI4Liy4Lij4LiBCivguJrguKPguLTguIjguLLguKPguLTguIHguLIKK+C4muC4o+C4tOC5gOC4ieC4lwor4Lia4Lij4Li04LmA4LiJ4LiXLQor4Lia4Lij4Li04LmA4LiJ4LiX4LiB4Liy4LilCivguJrguKPguLTguIrguJkKK+C4muC4o+C4tOC4k+C4suC4ouC4gQor4Lia4Lij4Li04LiT4Liy4Lii4LiB4Lij4Lix4LiV4LiZ4LmMCivguJrguKPguLTguJTguIjguYwKK+C4muC4o+C4tOC4muC4lwor4Lia4Lij4Li04Lia4Lin4Lij4LiT4LmMCivguJrguKPguLTguJrguLLguKUKK+C4muC4o+C4tOC4muC4ueC4o+C4k+C5jAor4Lia4Lij4Li04Lie4LiZ4LiY4LmMCivguJrguKPguLTguJ7guLHguJXguKMKK+C4muC4o+C4tOC4nuC4seC4meC4mOC5jAor4Lia4Lij4Li04Lie4Liy4LiK4LiBCivguJrguKPguLTguJ7guLLguIrguLTguIHguLIKK+C4muC4o+C4tOC4nuC4suC4iuC4tQor4Lia4Lij4Li04Lie4Liy4LijCivguJrguKPguLTguKDguLHguJPguJHguYwKK+C4muC4o+C4tOC4oOC4suC4qQor4Lia4Lij4Li04LmC4Lig4LiECivguJrguKPguLTguYLguKDguITguYDguIjguJTguLXguKLguYwKK+C4muC4o+C4tOC4oeC4suC4qgor4Lia4Lij4Li04Lii4Liy4LiiCivguJrguKPguLTguKPguKEKK+C4muC4o+C4tOC4o+C4seC4geC4qeC5jAor4Lia4Lij4Li04Lij4Liy4LiKCivguJrguKPguLTguKfguKPguKPguJUKK+C4muC4o+C4tOC4p+C4suC4owor4Lia4Lij4Li04Lin4Liy4LiqCivguJrguKPguLTguYDguKfguJMKK+C4muC4o+C4tOC4qeC4geC4suC4owor4Lia4Lij4Li04Lip4Lix4LiXCivguJrguKPguLTguKnguLHguJfguYDguITguKPguJTguLTguJXguJ/guK3guIfguIvguLTguYDguK3guKPguYwKK+C4muC4o+C4tOC4qeC4seC4l+C4iOC4s+C4geC4seC4lAor4Lia4Lij4Li04Lip4Lix4LiX4Lia4Lij4Li04Lin4Liy4LijCivguJrguKPguLTguKnguLHguJfguKHguKvguLLguIrguJnguIjguLPguIHguLHguJQKK+C4muC4o+C4tOC4quC4iuC4mQor4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMCivguJrguKPguLTguKrguLjguJfguJjguLTguYzguYPguIgKK+C4muC4o+C4tOC4q+C4suC4owor4Lia4Lij4Li04Lir4Liy4LiqCivguJrguYHguKPguIcKK+C4muC5geC4o+C4h+C4oOC4seC4geC4qeC5jAor4Lia4Lik4LiH4LiE4LieCivguJrguKXguYfguK3guIEKK+C4muC4p+C4gQor4Lia4Lin4LiHCivguJrguYjguKfguIcKK+C4muC5iOC4p+C4h+C4muC4suC4qAor4Lia4Lin4LiH4Liq4Lij4Lin4LiHCivguJrguKfguIoKK+C4muC4p+C4iuC4iuC4tQor4Lia4Lin4LiZCivguJrguYnguKfguJkKK+C4muC5ieC4p+C4meC4m+C4suC4gQor4Lia4LmJ4Lin4LiZ4Lie4Lij4Liw4LmC4Lit4Lip4LiQ4LmMCivguJrguKfguJoKK+C4muC4p+C4muC4guC4oQor4Lia4Lin4LihCivguJrguKfguKHguJnguYnguLMKK+C4muC5iuC4p+C4ogor4Lia4Lin4LijCivguJrguKfguKMtCivguJrguKfguKPguYLguJXguI7guIEKK+C4muC4q+C4peC4tOC5iOC4oQor4Lia4LitCivguJrguYjguK0KK+C4muC4reC4gQor4Lia4Lit4LiB4LiB4Lil4LmI4Liy4LinCivguJrguK3guIHguYHguILguIEKK+C4muC4reC4geC4hOC4s+C4muC4reC4gQor4Lia4Lit4LiB4Lia4LiXCivguJrguK3guIHguJrguLHguI3guIrguLUKK+C4muC4reC4geC4muC4uOC4jQor4Lia4Lit4LiB4LmD4Lia4LmJCivguJrguK3guIHguJvguLHguJQKK+C4muC4reC4geC5gOC4m+C4tOC4lAor4Lia4Lit4LiB4Lii4Li14LmI4Lir4LmJ4LitCivguJrguK3guIHguYDguKXguYjguLLguYDguIHguYnguLLguKrguLTguJoKK+C4muC4reC4geC4p+C4seC4leC4owor4Lia4Lit4LiB4Lio4Liy4Lil4LiyCivguJrguK3guIHguKvguJnguJfguLLguIcKK+C4muC4reC4geC4q+C4meC4seC4h+C4quC4t+C4reC4quC4seC4h+C4huC4o+C4suC4igor4Lia4LmI4Lit4LmA4LiB4Li04LiUCivguJrguK3guIcKK+C4muC5iOC4reC4hwor4Lia4LmJ4Lit4LiHCivguJrguYrguK3guIcKK+C4muC5iuC4reC4h+C5hgor4Lia4LmJ4Lit4LiH4LiB4Lix4LiN4LiK4LiyCivguJrguYnguK3guIfguJXguLDguKXguLIKK+C4muC5ieC4reC4h+C4leC4seC4mQor4Lia4LmJ4Lit4LiH4LiV4Li34LmJ4LiZCivguJrguYnguK3guIfguYHguJrguYrguKcKK+C4muC5ieC4reC4h+C5hOC4nwor4Lia4LmJ4Lit4LiH4Lii4Liy4LmB4LiU4LiHCivguJrguK3guIfguKvguKXguLIKK+C4muC5ieC4reC4h+C4q+C4uQor4Lia4Lit4LiUCivguJrguK3guJTguKrguLUKK+C4muC4reC4mQor4Lia4LmI4Lit4LiZCivguJrguYjguK3guJnguYHguJXguIEKK+C4muC5iOC4reC4meC4l+C4s+C4peC4suC4ogor4Lia4Lit4LiZ4Lil4Liy4Lii4LiB4Lij4Liw4Lir4LiZ4LiBCivguJrguYjguK3guJnguYnguLPguKPguYnguK3guJkKK+C4muC4reC4mgor4Lia4Lit4Lia4LiK4LmJ4LizCivguJrguK3guJrguJrguLLguIcKK+C4muC4reC4muC5geC4muC4mgor4Lia4LmJ4Lit4LihCivguJrguYvguK3guKEKK+C4muC5iOC4reC4ogor4Lia4LmI4Lit4Lii4LmGCivguJrguK3guKPguLDguYDguJ7guYfguJQKK+C4muC4reC4o+C4sOC4oeC4suC4mQor4Lia4Lit4LilCivguJrguK3guKXguKXguLnguJkKK+C4muC5ieC4reC4q+C4uOC5ieC4mQor4Lia4LmA4LitCivguJrguYrguLAKK+C4muC4sOC4q+C4oeC4teC5iAor4Lia4Lix4LiBCivguJrguLHguIHguYLguIHguKPguIEKK+C4muC4seC4geC4reC4suC4mQor4Lia4Lix4LiE4LmA4LiV4Lij4Li1CivguJrguLHguIcKK+C4muC4seC5ieC4hwor4Lia4Lix4LiH4LiB4Liw4LmC4LilCivguJrguLHguIfguIHguLHguJQKK+C4muC4seC4h+C5gOC4geC4tOC4lAor4Lia4Lix4LiH4LmC4LiB4Lij4Lii4LiV4Lix4Lin4Lic4Li54LmJCivguJrguLHguIfguYLguIHguKPguKLguJXguLHguKfguYDguKHguLXguKIKK+C4muC4seC4h+C5guC4geC4peC4mQor4Lia4Lix4LiH4LiE4LiZCivguJrguLHguIfguITguJnguYDguJrguLIKK+C4muC4seC4h+C4hOC4meC4q+C4meC4seC4gQor4Lia4Lix4LiH4LiE4LihCivguJrguLHguIfguITguKUKK+C4muC4seC4h+C4hOC4p+C4owor4Lia4Lix4LiH4LiE4Lin4Liy4LihCivguJrguLHguIfguITguLHguJoKK+C4muC4seC4h+C4hOC4seC4muC4geC4suC4owor4Lia4Lix4LiH4LiE4Lix4Lia4LiE4Lij4Li4CivguJrguLHguIfguITguLHguJrguYPguIgKK+C4muC4seC4h+C4hOC4seC4muC5guC4lwor4Lia4Lix4LiH4LiE4Lix4Lia4Lia4Lix4LiN4LiK4LiyCivguJrguLHguIfguITguLHguJrguKXguKvguLgKK+C4muC4seC4h+C4hOC4seC4muC4quC4seC4oeC4nOC4seC4qgor4Lia4Lix4LiH4LiE4Lix4Lia4LmA4Lit4LiBCivguJrguLHguIfguITguLHguKUKK+C4muC4seC4h+C5guC4hOC4peC4mQor4Lia4Lix4LiH4LmA4LiH4LiyCivguJrguLHguIfguJXguLDguKfguLHguJkKK+C4muC4seC4h+C4leC4sgor4Lia4Lix4LiH4LmB4LiX4Lij4LiBCivguJrguLHguIfguYPguJoKK+C4muC4seC4h+C5gOC4nuC4peC4tOC4hwor4Lia4Lix4LiH4LmE4Lie4LijCivguJrguLHguIfguJ/guLHguJkKK+C4muC4seC5ieC4h+C5hOC4nwor4Lia4Lix4LiH4Lih4Li34LiUCivguJrguLHguIfguKfguLLguKIKK+C4muC4seC4h+C5gOC4p+C4teC4ouC4mQor4Lia4Lix4LiH4Liq4Liy4LiUCivguJrguLHguIfguKrguLjguIHguLjguKUKK+C4muC4seC4h+C4quC4uOC4geC4ueC4peC4tOC4gQor4Lia4Lix4LiH4Liq4Li54Lij4Lii4LmMCivguJrguLHguIfguKvguJnguYnguLIKK+C4muC4seC4h+C4q+C4p+C4meC4hOC4p+C4seC4mQor4Lia4Lix4LiH4LmA4Lir4LiV4Li4CivguJrguLHguIfguYDguKvguLTguJkKK+C4muC4seC4h+C5gOC4q+C4teC4ouC4mQor4Lia4Lix4LiH4Lit4LijCivguJrguLHguIfguK3guKfguIgKK+C4muC4seC4h+C4reC4suC4iAor4Lia4Lix4LiH4Lit4Li04LiHCivguJrguLHguIfguK3guLnguKMKK+C4muC4seC4h+C5gOC4reC4tOC4jQor4Lia4Lix4LiN4LiI4LiBCivguJrguLHguI3guIjguKPguIfguITguYwKK+C4muC4seC4jeC4iuC4owor4Lia4Lix4LiN4LiK4LiyCivguJrguLHguI3guIrguLLguIHguLLguKMKK+C4muC4seC4jeC4iuC4tQor4Lia4Lix4LiN4LiK4Li14LiB4Lij4Liw4LmB4Liq4Lij4Liy4Lii4Lin4Lix4LiZCivguJrguLHguI3guIrguLXguYDguJTguLTguJnguKrguLDguJ7guLHguJQKK+C4muC4seC4jeC4jeC4seC4leC4tAor4Lia4Lix4LiN4LiN4Lix4LiV4Li04LmE4LiV4Lij4Lii4Liy4LiH4Lio4LmMCivguJrguLHguI3guKvguLIKK+C4muC4seC4jwor4Lia4Lix4LiQ4Lii4Liy4Lie4Lik4LiVCivguJrguLHguJPguJHguKMKK+C4muC4seC4k+C4keC4oy0KK+C4muC4seC4k+C4keC4o+C4meC4suC4hAor4Lia4Lix4LiT4LiR4Li04LiVCivguJrguLHguJPguJHguLTguJXguKLguYwKK+C4muC4seC4k+C4keC4uAor4Lia4Lix4LiT4LiR4Li44LiB4Lix4Lih4Lie4LilCivguJrguLHguJPguJHguLjguIHguLHguKHguJ7guKXguKjguLTguKXguLLguK3guLLguKrguJnguYwKK+C4muC4seC4k+C4keC4uOC4meC4suC4hAor4Lia4Lix4LiT4LiR4Li44LmC4Lij4LiECivguJrguLHguJPguJHguLnguKMKK+C4muC4seC4k+C5gOC4keC4suC4sOC4geC5jAor4Lia4Lix4LiT4LmA4LiR4Liy4Liw4Lin4LmMCivguJrguLHguJPguJPguLLguKoKK+C4muC4seC4k+C4o+C4qgor4Lia4Lix4LiT4Lij4Liq4Li1CivguJrguLHguJQKK+C4muC4seC4lOC4geC4o+C4tQor4Lia4Lix4LiU4LiL4LiaCivguJrguLHguJTguJTguKUKK+C4muC4seC4lOC5gOC4lOC4teC5i+C4ouC4pwor4Lia4Lix4LiU4LiZ4Lix4LmJ4LiZCivguJrguLHguJTguJnguLXguYkKK+C4muC4seC4lOC4muC4hwor4Lia4Lix4LiU4LmB4Lia4LmI4LiHCivguJrguLHguJTguYHguKHguKXguYjguIcKK+C4muC4seC4lOC4quC4tQor4Lia4Lix4LiU4Liq4Li14Lia4Lix4LiU4LmA4LiW4Lil4Li04LiHCivguJrguLHguJXguKMKK+C4muC4seC4leC4o+C5gOC4l+C4p+C4lOC4sgor4Lia4Lix4LiV4Lij4LiY4LiZ4Liy4LiE4Liy4LijCivguJrguLHguJXguKPguJ7guKXguLUKK+C4muC4seC4leC4o+C4quC4meC5gOC4l+C5iOC4q+C5jAor4Lia4Lix4LiV4Lij4Lir4Lih4Liy4LiiCivguJrguLHguJfguKHguYwKK+C4muC4seC4mQor4Lia4Lix4LmI4LiZCivguJrguLHguYnguJkKK+C4muC4seC4meC4geC4p+C4lAor4Lia4Lix4LiZ4LiI4Lin4LiaCivguJrguLHguJnguIjguK3guKIKK+C4muC4seC4meC4lOC4pQor4Lia4Lix4LiZ4LiU4Liy4LilCivguJrguLHguJnguYDguJTguLTguJkKK+C4muC4seC4meC5guC4lOC4ogor4Lia4Lix4LiZ4LmE4LiUCivguJrguLHguJnguYTguJTguYHguIHguYnguKcKK+C4muC4seC4meC5hOC4lOC4peC4tOC4hwor4Lia4Lix4LiZ4LmE4LiU4LmA4Lil4Li34LmI4Lit4LiZCivguJrguLHguJnguYHguJbguKXguIcKK+C4muC4seC5iOC4meC4l+C4reC4mQor4Lia4Lix4LmJ4LiZ4LiX4LmJ4Liy4LiiCivguJrguLHguJnguJfguLbguIEKK+C4muC4seC4meC4l+C4tuC4hwor4Lia4Lix4LiZ4LmA4LiX4Li04LiHCivguJrguLHguJnguYDguJfguLTguIfguITguJTguLUKK+C4muC4seC4meC5gOC4muC4sgor4Lia4Lix4LmJ4LiZ4Lib4Lil4Liy4LiiCivguJrguLHguYnguJnguJ7guKPguLDguK3guIfguITguYwKK+C4muC4seC4meC4ouC4sOC4muC4seC4meC4ouC4seC4hwor4Lia4Lix4LiZ4Lil4Li34LitCivguJrguLHguYnguJnguKvguKXguKfguIcKK+C4muC4seC4meC5gOC4q+C4tOC4mQor4Lia4Lix4LmJ4LiZ4LmA4Lit4LinCivguJrguLHguJvguJzguLLguKrguLAKK+C4muC4seC4ngor4Lia4Lix4Lie4LiK4LiyCivguJrguLHguJ7guIrguLTguJUKK+C4muC4seC4nuC4nuC4suC4igor4Lia4Lix4Lie4Lie4Liy4LiK4LiZ4LmMCivguJrguLHguJ7guJ7guLLguIrguJnguLXguKLguIHguKPguKPguKEKK+C4muC4seC4pQor4Lia4Lix4Lil4Lil4LieCivguJrguLHguKXguKXguLHguIfguIHguYwKK+C4muC4seC4peC4peC4ueC4mQor4Lia4Lix4Lil4Lin4LiwCivguJrguLHguKcKK+C4muC4seC4p+C4geC4peC4uOC5iOC4oQor4Lia4Lix4Lin4LiC4Liy4LiaCivguJrguLHguKfguITguK3guYDguKrguLfguYnguK0KK+C4muC4seC4p+C4leC4sOC4geC4seC5iOC4pwor4Lia4Lix4Lin4LiV4Li54LihCivguJrguLHguKfguJbguKXguLIKK+C4muC4seC4p+C4meC4suC4hwor4Lia4Lix4Lin4Lia4LiBCivguJrguLHguKfguJrguLHguIfguYPguJoKK+C4muC4seC4p+C4muC4suC4lwor4Lia4Lix4Lin4Lic4Li44LiUCivguJrguLHguKfguYTguKHguYjguIrguYnguLMg4LiZ4LmJ4Liz4LmE4Lih4LmI4LiC4Li44LmI4LiZCivguJrguLHguKfguYLguKPguKIKK+C4muC4seC4p+C4peC4reC4ogor4Lia4Lix4Lin4Liq4Lin4Lij4Lij4LiE4LmMCivguJrguLHguKfguKrguLLguKLguJXguLTguYjguIcKK+C4muC4seC4p+C4quC4suC4ouC4l+C4tOC5ieC4hwor4Lia4Lix4Lin4Liu4Liy4LiU4LizCivguJrguLIKK+C4muC5iOC4sgor4Lia4LmJ4LiyCivguJrguYnguLLguYYKK+C4muC4suC4gQor4Lia4Liy4LiB4LiX4LmI4LiyCivguJrguLLguIHguJrguLHguYjguJkKK+C4muC4suC4geC4q+C4meC5ieC4sgor4Lia4Liy4LiHCivguJrguYjguLLguIcKK+C4muC5ieC4suC4hwor4Lia4Liy4LiH4LiC4Li44LiZ4LiZ4LiZ4LiX4LmMCivguJrguYjguLLguIfguIrguYjguLLguIfguKLguLgKK+C4muC4suC4h+C4leC4sgor4Lia4Liy4LiH4LiX4Li1CivguJrguLLguIfguYDguJrguLIKK+C4muC4suC4h+C4quC4uAor4Lia4Liy4LiI4LiBCivguJrguLLguIjguKPguLXguKLguYwKK+C4muC4suC4iOC4tOC4geC4sgor4Lia4LmJ4Liy4LiI4Li14LmJCivguJrguLLguIvguLTguKXguKXguLHguKoKK+C4muC4suC4lAor4Lia4Liy4LiU4LiE4LitCivguJrguLLguJTguYDguIjguYfguJoKK+C4muC4suC4lOC5g+C4iAor4Lia4Liy4LiU4LiV4LiyCivguJrguLLguJTguJfguLDguIjguLTguJUKK+C4muC4suC4lOC4l+C4sOC4nuC4tOC4qQor4Lia4Liy4LiU4LiX4Liw4Lii4Lix4LiBCivguJrguLLguJTguYHguJzguKUKK+C4muC4suC4lOC5gOC4quC4teC5ieC4ouC4meC4muC4suC4lOC4q+C4meC4suC4oQor4Lia4Liy4LiU4Lir4Lih4Liy4LiHCivguJrguLLguJTguKvguKHguLLguKIKK+C4muC4suC4lOC4q+C4uQor4Lia4Liy4LiU4LmE4Lir4LihCivguJrguLLguJTguLLguKUKK+C4muC5ieC4suC4lOC4teC5gOC4lOC4t+C4reC4lAor4Lia4Liy4LmB4LiU4LiHCivguJrguLLguJUKK+C4muC4suC4leC4owor4Lia4Liy4LiV4Lij4LmB4LiB4LmJ4LinCivguJrguLLguJXguKPguYPguKvguI3guYgKK+C4muC4suC4lwor4Lia4Liy4LiXLQor4Lia4Liy4LiX4LiZ4Li04LmA4LiB4LiVCivguJrguLLguJfguJoKK+C4muC4suC4l+C4muC4h+C4geC4igor4Lia4Liy4LiX4Lia4LiH4Liq4Li44LmMCivguJrguLLguJfguJrguKPguLTguIjguLLguKPguLTguIHguLIKK+C4muC4suC4l+C4muC4ueC4o+C4k+C5jAor4Lia4Liy4LiX4Lig4Lix4LiPCivguJrguLLguJfguKDguLLguIQKK+C4muC4suC4l+C4oeC4uOC4l+C4o+C4sgor4Lia4Liy4LiX4Lih4Li54LilCivguJrguLLguJfguKHguLnguKXguLTguIHguLLguIHguKMKK+C4muC4suC4l+C4ouC4uOC4hOC4pQor4Lia4Liy4LiX4Lij4LiKCivguJrguLLguJfguKPguLHguIoKK+C4muC4suC4l+C4quC4geC4uOC4k+C4tQor4Lia4Liy4LiX4Lir4Lil4Lin4LiHCivguJrguLLguJfguLLguJjguLbguIEKK+C4muC4suC4l+C4uOC4geC4sgor4Lia4Liy4LiY4Lij4Lij4LihCivguJrguLLguJkKK+C4muC4suC4mS0KK+C4muC5ieC4suC4mQor4Lia4Liy4LiZ4LiB4LiaCivguJrguLLguJnguYDguIHguKXguYfguJQKK+C4muC5ieC4suC4meC5gOC4geC4tOC4lOC5gOC4oeC4t+C4reC4h+C4meC4reC4mQor4Lia4LmJ4Liy4LiZ4LmA4LiE4Lii4Lit4Lii4Li54LmIIOC4reC4ueC5iOC5gOC4hOC4ouC4meC4reC4mQor4Lia4LmJ4Liy4LiZ4LiI4Lix4LiU4Liq4Lij4LijCivguJrguYnguLLguJnguIrguYjguK3guIcKK+C4muC4suC4meC4iuC4t+C5iOC4mQor4Lia4Liy4LiZ4LmA4LiK4LmJ4LiyCivguJrguLLguJnguJXguLDguYDguIHguLXguKLguIcKK+C4muC4suC4meC4leC4sOC5guC4geC5iQor4Lia4Liy4LiZ4LiV4Liw4LmE4LiXCivguJrguYnguLLguJnguYHguJXguIHguKrguLLguYHguKvguKPguIHguILguLLguJQKK+C4muC4suC4meC4l+C4sOC5guC4o+C4hAor4Lia4LmJ4Liy4LiZ4LiZ4Lit4LiBCivguJrguYnguLLguJnguJnguK3guIHguILguK3guIHguJnguLIKK+C4muC4suC4meC4muC4suC4leC4owor4Lia4Liy4LiZ4Lia4Li44Lij4Li1CivguJrguLLguJnguJrguLjguKPguLXguKHguYjguKfguIcKK+C4muC4suC4meC5gOC4muC4reC4sAor4Lia4Liy4LiZ4LmA4Lia4Li04LiBCivguJrguLLguJnguYDguJrguLXguKLguIcKK+C4muC4suC4meC5geC4muC4sAor4Lia4Liy4LiZ4Lib4Lil4Liy4LiiCivguJrguLLguJnguYHguJzguJnguIEKK+C4muC4suC4meC5geC4nOC4peC4sAor4Lia4LmJ4Liy4LiZ4Lie4Lix4LiBCivguJrguLLguJnguJ7guLHguJoKK+C4muC4suC4meC5geC4nuC4meC4gQor4Lia4Liy4LiZ4LmC4Lig4LiK4LiZ4LmMCivguJrguLLguJnguKHguIfguITguKUKK+C4muC5ieC4suC4meC5gOC4oeC4t+C4reC4hwor4Lia4LmJ4Liy4LiZ4LmA4Lih4Li34Lit4LiH4Lih4Li14LiC4Li34LmI4Lit4Lih4Li14LmB4LibCivguJrguLLguJnguYTguKHguYjguKPguLnguYnguYLguKPguKIKK+C4muC4suC4meC5gOC4ouC5h+C4mQor4Lia4LmJ4Liy4LiZ4Lij4Lix4Lia4Lij4Lit4LiHCivguJrguYnguLLguJnguYDguKPguLfguK3guJkKK+C4muC5ieC4suC4meC5ieC4s+C4peC4suC4ogor4Lia4LmI4Liy4LiZ4Li14LmICivguJrguLLguJnguLXguKLguLAKK+C4muC4suC4meC4teC5guC4ouC4l+C4gQor4Lia4LmJ4Liy4Lia4LmI4LiZCivguJrguYnguLLguJrguYvguLIKK+C4muC5ieC4suC4muC4tOC5iOC4mQor4Lia4Liy4Lia4Li1CivguJrguLLguJsKK+C4muC4suC4my0KK+C4muC4suC4m+C4geC4o+C4o+C4oQor4Lia4Liy4Lib4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJrguLLguJvguKHguLTguJXguKMKK+C4muC4suC4m+C4q+C4meC4sgor4Lia4Liy4Lie4LiBCivguJrguLLguKIKK+C4muC5iOC4suC4ogor4Lia4LmJ4Liy4LiiCivguJrguYjguLLguKLguITguKfguLLguKIKK+C4muC5iOC4suC4ouC5gOC4muC4teC5iOC4ouC4hwor4Lia4Liy4Lii4Lio4Lij4Li1CivguJrguLLguKLguKjguKPguLXguJvguLLguIHguIrguLLguKEKK+C4muC4suC4ouC4quC4uOC4q+C4o+C4tQor4Lia4LmI4Liy4Lii4Lir4LiZ4LmJ4LiyCivguJrguLLguKPguYwKK+C4muC4suC4o+C4meC4tQor4Lia4Liy4Lij4Lih4Li1CivguJrguLLguKPguYzguYDguKPguKUKK+C4muC4suC4o+C5jOC5gOC4peC4ouC5jAor4Lia4Liy4Lij4Lit4Lih4Li04LmA4LiV4Lit4Lij4LmMCivguJrguYnguLLguKPguLDguJrguLjguYjguJkKK+C4muC5ieC4suC4o+C4sOC4q+C5iOC4swor4Lia4LmJ4Liy4Lij4LmI4Liy4LiX4LmI4LiyCivguJrguLLguYDguKPguLXguKLguJkKK+C4muC4suC5gOC4o+C4teC4ouC4oQor4Lia4Liy4LilCivguJrguYnguLLguKXguLPguYLguJ7guIcKK+C4muC4suC4peC4tQor4Lia4LmJ4Liy4LmA4Lil4Li34Lit4LiUCivguJrguYjguLLguKcKK+C4muC5iOC4suC4p+C4guC4uOC4mQor4Lia4LmI4Liy4Lin4LmE4Lie4Lij4LmICivguJrguLLguKgKK+C4muC4suC4qOC4geC5jAor4Lia4Liy4Liq4LmA4LiB4LiV4Lia4Lit4LilCivguJrguYnguLLguKrguKHguJrguLHguJXguLQKK+C4muC5ieC4suC4q+C4oeC4uQor4Lia4Liy4Lir4Lil4Li1CivguJrguYnguLLguKvguKfguYjguLIKK+C4muC5ieC4suC4q+C4reC4muC4n+C4suC4hwor4Lia4LmJ4Liy4Lir4LmJ4Liy4Lij4LmJ4Lit4Lii4LiI4Liz4Lie4Lin4LiBCivguJrguYvguLMKK+C4muC4s+C5gOC4l+C4tOC4hwor4Lia4Liz4LiZ4Liy4LiNCivguJrguLPguJrguKfguIcKK+C4muC4s+C4muC4seC4lAor4Lia4Liz4LmC4LiaCivguJrguLPguYLguJrguKIKK+C4muC4s+C5guC4muC4pQor4Lia4Liz4LmA4Lie4LmH4LiNCivguJrguLPguKPguLLguJoKK+C4muC4s+C4o+C4suC4qAor4Lia4Liz4Lij4Li44LiHCivguJrguLPguKPguLjguIfguILguKfguLHguI0KK+C4muC4s+C4o+C4uQor4Lia4Liz4LmA4Lij4LitCivguJrguLPguYDguKPguK3guYDguIrguK3guKDguLHguIHguJTguLTguYwKK+C4muC4s+C4q+C4ouC4seC4lAor4Lia4Liz4LmA4Lir4LiZ4LmH4LiICivguJrguLQKK+C4muC4tOC4geC4uQor4Lia4Li04LiB4Li54Lib4Liw4Lij4Liw4Lih4Liy4Lir4LiZ4LiyCivguJrguLTguIHguLnguJvguLDguKPguLDguKvguKHguLHguYjguJnguKvguJnguLIKK+C4muC4tOC4kAor4Lia4Li04LiT4LiRLQor4Lia4Li04LiT4LiR4Lia4Liy4LiVCivguJrguLTguJQKK+C4muC4tOC4lOC4guC4p+C4sgor4Lia4Li04LiU4LiC4Li14LmJ4LmA4LiB4Li14Lii4LiICivguJrguLTguJTguIjguLDguIHguLnguJQKK+C4muC4tOC4lOC4i+C5ieC4suC4ogor4Lia4Li04LiU4LiV4Liw4LiB4Li54LiUCivguJrguLTguJTguYDguJrguLXguYnguKLguKcKK+C4muC4tOC4lOC5gOC4muC4t+C4reC4mQor4Lia4Li04LiU4Lie4Lil4Li04LmJ4LinCivguJrguLTguJTguKMKK+C4muC4tOC4lOC5hOC4quC5iQor4Lia4Li04LiU4Lir4Lil4LmI4LiyCivguJrguLTguJTguKvguLHguKfguKXguLnguIEKK+C4muC4tOC4lOC4sgor4Lia4Li04LiV4Li4CivguJrguLTguJXguLjguIjguInguLIKK+C4muC4tOC4leC4uOC4o+C4h+C4hOC5jAor4Lia4Li04LiV4Li44LmA4Lij4LioCivguJrguLTguJXguLjguKUKK+C4muC4tOC4leC4uOC4peC4sgor4Lia4Li04LiV4Li44Lil4Liy4LiZ4Li1CivguJrguLTguJkKK+C4muC4tOC5iOC4mQor4Lia4Li04LiZ4Lii4LiyCivguJrguLTguKXguYDguKXguLXguKLguJQKK+C4muC4tOC4p+C5gOC4o+C4leC4leC5jAor4Lia4Li04Lio4Liy4LiICivguJrguLTguKrguKHguLHguJcKK+C4muC4teC5iQor4Lia4Li14LiB4Li5CivguJrguLXguJHguLIKK+C4muC4teC4leC4sgor4Lia4Li14LiaCivguJrguLXguJrguILguJnguKHguIjguLXguJkKK+C4muC4teC4muC4guC4oeC4seC4mgor4Lia4Li14Lia4LiE4Lix4LmJ4LiZCivguJrguLXguJrguJnguYnguLPguJXguLIKK+C4muC4teC4muC4muC4seC4h+C4hOC4seC4mgor4Lia4Li14Lia4Lij4Lix4LiUCivguJrguLXguYnguYHguJrguJkKK+C4muC4teC5gOC4ouC4qAor4Lia4Li24LiBCivguJrguLbguIHguJrguLbguJkKK+C4muC4tuC4hwor4Lia4Li24LmI4LiHCivguJrguLbguYnguIcKK+C4muC4tuC5ieC4h+C4leC4tuC4hwor4Lia4Li24LiH4Lia4Liy4LiHCivguJrguLbguYnguIfguJrguLnguJQKK+C4muC4uAor4Lia4Li44LiBCivguJrguLjguIHguJrguLHguJkKK+C4muC4uOC4geC4muC4seC5iOC4mQor4Lia4Li44LiB4LmA4Lia4Li04LiBCivguJrguLjguIHguJvguYjguLLguJ3guYjguLLguJTguIcKK+C4muC4uOC4geC4o+C4uOC4gQor4Lia4Li44LiE4LiE4LilCivguJrguLjguITguITguKUtCivguJrguLjguITguITguKXguJjguKPguKPguKHguJTguLIKK+C4muC4uOC4hOC4hOC4peC4meC4tOC4leC4tOC4quC4oeC4oeC4leC4tAor4Lia4Li44LiE4LiE4Lil4Lic4Li54LmJ4LmE4Lij4LmJ4LiE4Lin4Liy4Lih4Liq4Liy4Lih4Liy4Lij4LiWCivguJrguLjguITguITguKXguKrguLTguJfguJjguLQKK+C4muC4uOC4hOC4peC4suC4geC4owor4Lia4Li44LiE4Lil4Liy4LiY4Li04Lip4LiQ4Liy4LiZCivguJrguLjguITguKXguLTguIEKK+C4muC4uOC4hOC4peC4tOC4gS0KK+C4muC4uOC4hOC4peC4tOC4geC4l+C4suC4mQor4Lia4Li44LiE4Lil4Li04LiB4Lig4Liy4LieCivguJrguLjguITguKXguLTguIHguKXguLHguIHguKnguJPguLAKK+C4muC4uOC4hwor4Lia4Li44LmI4LiHCivguJrguLjguYnguIcKK+C4muC4uOC5ieC4h+C4guC4seC4mQor4Lia4Li44LmJ4LiH4LiI4Li14LiZCivguJrguLjguYnguIfguJfguLDguYDguKUKK+C4muC4uOC5ieC4h+C4neC4o+C4seC5iOC4hwor4Lia4Li44LmJ4LiH4Lij4LmJ4Lin4LihCivguJrguLjguI0KK+C4muC4uOC4jS0KK+C4muC4uOC4jeC5gOC4guC4lQor4Lia4Li44LiN4LiN4Liy4LiZ4Li44Lig4Liy4LieCivguJrguLjguI3guI3guLLguKDguLTguJnguLTguKvguLLguKMKK+C4muC4uOC4jeC4jeC4suC4oOC4tOC4quC4seC4h+C4guC4suC4owor4Lia4Li44LiN4LiX4Liy4LiiCivguJrguLjguI3guJfguLPguIHguKPguKPguKHguYHguJXguYjguIcKK+C4muC4uOC4jeC4mOC4o+C4o+C4oQor4Lia4Li44LiN4LiZ4Li04LiY4Li0CivguJrguLjguI3guKHguLLguKfguLLguKrguJnguLLguKrguYjguIcKK+C4muC4uOC4jeC4o+C4suC4qOC4tQor4Lia4Li44LiN4Lik4LiX4LiY4Li04LmMCivguJrguLjguI3guKvguJnguLHguIHguKjguLHguIHguJTguLTguYzguYPguKvguI3guYgKK+C4muC4uOC4k+C4keC4o+C4tOC4gQor4Lia4Li44LiT4Lih4Li1CivguJrguLjguJPguKLguYwKK+C4muC4uOC4leC4owor4Lia4Li44LiV4LijLQor4Lia4Li44LiV4Lij4LiY4Lij4Lij4LihCivguJrguLjguJXguKPguJrguLjguI3guJjguKPguKPguKEKK+C4muC4uOC4leC4o+C4sgor4Lia4Li44LiV4Lij4Li1CivguJrguLjguJXguKPguLXguJXguKPguLDguKrguLjguKEKK+C4muC4uOC4luC4uOC4iuC4mQor4Lia4Li44LiX4LiE4LilCivguJrguLjguJnguJnguLDguJrguLjguJnguJnguLHguIcKK+C4muC4uOC4meC4meC4suC4hAor4Lia4Li44LiaCivguJrguLjguJrguJrguLTguJoKK+C4muC4uOC4muC4quC4peC4suC4ogor4Lia4Li44Lib4LicLQor4Lia4Li44Lib4Lic4LiK4Liy4LiV4Li0CivguJrguLjguJvguJzguKfguLTguIHguLHguJXguLQKK+C4muC4uOC4ni0KK+C4muC4uOC4nuC4geC4o+C4o+C4oQor4Lia4Li44Lie4LiB4Liy4Lij4Li1CivguJrguLjguJ7guIHguLTguIgKK+C4muC4uOC4nuC4iuC4suC4leC4tAor4Lia4Li44Lie4LiX4Lix4LiB4Lip4Li04LiTCivguJrguLjguJ7guJnguLTguKHguLTguJUKK+C4muC4uOC4nuC4muC4lwor4Lia4Li44Lie4LmA4Lib4LiV4Lie4Lil4Li1CivguJrguLjguJ7guJ4tCivguJrguLjguJ7guJ7guLHguJPguIrguLLguJXguLQKK+C4muC4uOC4nuC4nuC4seC4k+C4q+C4quC4oeC4seC4ogor4Lia4Li44Lie4Lie4Liy4LiI4Liy4Lij4Lii4LmMCivguJrguLjguJ7guJ7guLLguKnguLLguJIKK+C4muC4uOC4nuC4nuC4suC4quC4suC4rOC4q+C4sAor4Lia4Li44Lie4LmA4Lie4LiZ4Li04Lin4Liy4Liq4Liy4LiZ4Li44Liq4LiV4Li04LiN4Liy4LiTCivguJrguLjguJ7guYDguJ7guKrguLHguJnguJnguLTguKfguLLguKoKK+C4muC4uOC4nuC5guC4ngor4Lia4Li44Lie4Lig4Liy4LiECivguJrguLjguJ7guKfguLTguYDguJfguKvguYwKK+C4muC4uOC5i+C4oQor4Lia4Li44LmI4Lih4Lia4LmI4Liy4LihCivguJrguLjguYnguKIKK+C4muC4uOC5ieC4ouC5g+C4muC5iQor4Lia4Li44LmJ4Lii4Lib4Liy4LiBCivguJrguLjguKPguJPguLAKK+C4muC4uOC4o+C4ni0KK+C4muC4uOC4o+C4nuC4l+C4tOC4qAor4Lia4Li44Lij4Lie4Lia4LiXCivguJrguLjguKPguJ7guJzguKXguITguLjguJnguLUKK+C4muC4uOC4o+C4nuC4oOC4seC4l+C4o+C4muC4lwor4Lia4Li44Lij4Lie4Lit4Liy4Lip4Liy4LiSCivguJrguLjguKPguJ7guLLguIjguLLguKPguKLguYwKK+C4muC4uOC4o+C4sAor4Lia4Li44Lij4Lix4LiV4LiW4Li04Lih4LiX4Li04LioCivguJrguLjguKPguLLguJMKK+C4muC4uOC4o+C4suC4k+C4l+C4uOC4leC4tOC4ouC4tOC4geC4sgor4Lia4Li44Lij4Li04LiZ4LiX4Lij4LmMCivguJrguLjguKPguLTguKHguJfguLTguKgKK+C4muC4uOC4o+C4tOC4oeC4nuC4o+C4o+C4qeC4sgor4Lia4Li44Lij4Li04Lih4Liq4Li04LiX4LiY4Li0CivguJrguLjguKPguLUKK+C4muC4uOC4o+C4uOC4qQor4Lia4Li44Lij4Li44LipLQor4Lia4Li44Lij4Li44Lip4LmC4LiX4LipCivguJrguLjguKPguLjguKnguJjguKPguKPguKEKK+C4muC4uOC5guC4o+C4l+C4seC5iOC4hwor4Lia4Li44Lip4LiB4LijCivguJrguLjguKnguJotCivguJrguLjguKnguJrguIEKK+C4muC4uOC4qeC4muC4hwor4Lia4Li44Lip4Lia4Lij4Liy4LiECivguJrguLjguKnguJrguKfguKPguKPguKkKK+C4muC4uOC4qeC4muC4seC4mQor4Lia4Li44Lip4Lia4LiyCivguJrguLjguKnguJrguLLguIHguKMKK+C4muC4uOC4qeC4muC4suC4hOC4oQor4Lia4Li44Lip4Lia4Liy4Lia4Lix4LiTCivguJrguLjguKnguJrguLLguKHguLTguJnguJXguKPguLIKK+C4muC4uOC4qeC4muC4suC4o+C4seC4geC4o+C5ieC4reC4ogor4Lia4Li44Lip4LibLQor4Lia4Li44Lip4Lib4Lij4Liy4LiECivguJrguLjguKnguJvguLAKK+C4muC4uOC4qeC4oi0KK+C4muC4uOC4qeC4ouC5jAor4Lia4Li44Lip4Lii4LmM4LiZ4LmJ4Liz4LiX4Lit4LiHCivguJrguLjguKnguKLguKHguLLguKoKK+C4muC4uOC4qeC4ouC4quC4meC4suC4mQor4Lia4Li44Lip4Lii4LiwCivguJrguLjguKnguKLguLLguKDguLTguYDguKnguIEKK+C4muC4uOC4qeC4o+C4suC4hOC4seC4oQor4Lia4Li44Lir4LiH4LiHCivguJrguLjguKvguIfguLHguJkKK+C4muC4uOC4q+C4h+C4sgor4Lia4Li44Lir4LiH4Liy4Lib4Lij4Liw4Lir4LiH4Lix4LiZCivguJrguLjguKvguIfguLLguKHguKXguLLguIvguK0KK+C4muC4uOC4q+C4h+C4suC4o+C4s+C5hOC4mwor4Lia4Li44Lir4LiH4Liy4Lil4Liz4LmA4LiI4Li14Lii4LiBCivguJrguLjguKvguKPguIcKK+C4muC4uOC4q+C4o+C4teC5iAor4Lia4Li44Lir4Lij4Li14LmI4Lie4Lij4Liw4Lij4Liy4LihCivguJrguLjguKvguKXguLHguJkKK+C4muC4ueC5iAor4Lia4Li54LmJCivguJrguLnguIrguJnguLXguKItCivguJrguLnguIrguJnguLXguKLguKrguJbguLLguJkKK+C4muC4ueC4iuC4sgor4Lia4Li54LiK4Liy4LiB4Lix4LiT4LiR4LmM4LmA4LiX4Lio4LiZ4LmMCivguJrguLnguIrguLLguKLguLHguI0KK+C4muC4ueC4iuC4tOC4lQor4Lia4Li54LiUCivguJrguLnguJTguJrguLbguYnguIcKK+C4muC4ueC4lOC5gOC4muC4teC5ieC4ouC4pwor4Lia4Li54LmI4LiX4Liw4LmA4LilCivguJrguLnguYnguJrguLXguYkKK+C4muC4ueC4owor4Lia4Li54Lij4LiTLQor4Lia4Li54Lij4LiT4LmMCivguJrguLnguKPguJPguKDguLLguJ4KK+C4muC4ueC4o+C4k+C4oeC4tQor4Lia4Li54Lij4LiT4LiwCivguJrguLnguKPguJPguLLguIHguLLguKPguKPguKfguKHguKvguJnguYjguKfguKIKK+C4muC4ueC4o+C4ngor4Lia4Li54Lij4Lie4LiyCivguJrguLnguKPguJ7guLLguIjguLLguKPguKLguYwKK+C4muC4ueC4o+C4nuC4suC4qeC4suC4kgor4Lia4Li54Lij4Li1CivguYDguJrguYkKK+C5gOC4muC5iOC4hwor4LmA4Lia4LmK4LiI4Li14LmLCivguYDguJrguI3guIHguLLguJnguLUKK+C5gOC4muC4jeC4iAor4LmA4Lia4LiN4LiILQor4LmA4Lia4LiN4LiI4LiBCivguYDguJrguI3guIjguIHguLHguKXguKLguLLguJPguLUKK+C5gOC4muC4jeC4iOC4geC4suC4oeC4hOC4uOC4kwor4LmA4Lia4LiN4LiI4LiB4Li54LilCivguYDguJrguI3guIjguILguLHguJnguJjguYwKK+C5gOC4muC4jeC4iOC4hOC4seC4nuC4ouC5jAor4LmA4Lia4LiN4LiI4LiE4Li14Lij4Li14LiZ4LiE4LijCivguYDguJrguI3guIjguYLguITguKPguKoKK+C5gOC4muC4jeC4iOC4lOC4uOC4o+C4tOC4ouC4suC4h+C4hOC5jAor4LmA4Lia4LiN4LiI4LiY4Lij4Lij4LihCivguYDguJrguI3guIjguJrguKPguKPguJ7guJUKK+C5gOC4muC4jeC4iOC4nuC4o+C4o+C4kwor4LmA4Lia4LiN4LiI4Lie4LilCivguYDguJrguI3guIjguYDguJ7guKoKK+C5gOC4muC4jeC4iOC4oOC4ueC4lQor4LmA4Lia4LiN4LiI4LihLQor4LmA4Lia4LiN4LiI4Lih4Liq4Li44Lij4LiX4Li04LiZCivguYDguJrguI3guIjguKHguLLguKgKK+C5gOC4muC4jeC4iOC4oeC4suC4qOC4quC4p+C4mQor4LmA4Lia4LiN4LiI4Lih4Liy4Lio4Lir4LiZ4Li5CivguYDguJrguI3guIjguKPguIfguITguYwKK+C5gOC4muC4jeC4iOC5guC4peC4q+C4geC4sAor4LmA4Lia4LiN4LiI4Lin4Lij4Lij4LiECivguYDguJrguI3guIjguKfguKPguKPguJMKK+C5gOC4muC4jeC4iOC4p+C4o+C4o+C4k+C4q+C5ieC4suC4quC4tQor4LmA4Lia4LiN4LiI4Lio4LiBCivguYDguJrguI3guIjguKjguLXguKUKK+C5gOC4muC4jeC4iOC4sgor4LmA4Lia4LiN4LiI4Liy4LiH4LiELQor4LmA4Lia4LiN4LiI4Liy4LiH4LiE4LmMCivguYDguJrguI3guIjguLLguIfguITguJvguKPguLDguJTguLTguKnguJDguYwKK+C5gOC4muC4jeC4jeC4sgor4LmA4Lia4LiN4Lie4Liy4LiUCivguYDguJrguYfguJQKK+C5gOC4muC5h+C4lOC5gOC4leC4peC5h+C4lAor4LmA4Lia4LmH4LiU4LmA4Liq4Lij4LmH4LiICivguYDguJrguJkKK+C5gOC4muC4meC4i+C4tOC4mQor4LmA4Lia4Lij4LiBCivguYDguJrguKPguLTguKXguYDguKXguLXguKLguKEKK+C5gOC4muC4o+C4teC4ouC4mQor4LmA4Lia4LiqCivguYDguJrguYnguK0KK+C5gOC4muC4reC4o+C5jAor4LmA4Lia4Lit4Lij4LmM4LiE4Li14LmA4Lil4Li14Lii4LihCivguYDguJrguYnguK3guYDguKPguYjguK0KK+C5gOC4muC5ieC4reC5gOC4o+C5iOC4reC5gOC4l+C5iOC4rQor4LmA4Lia4LmJ4Lit4LmA4Lij4Li04LmI4LihCivguYDguJrguYnguK3guYDguKPguLTguYjguKHguYDguJfguLTguYjguKEKK+C5gOC4muC4reC4sAor4LmA4Lia4Lit4Liw4Lia4LiwCivguYDguJrguLAKK+C5gOC4muC4sgor4LmA4Lia4LmJ4LiyCivguYDguJrguYnguLLguILguKXguLjguJoKK+C5gOC4muC4suC4hOC4p+C4suC4oQor4LmA4Lia4Liy4LmD4LiICivguYDguJrguLLguJXguLHguKcKK+C5gOC4muC5ieC4suC4leC4sgor4LmA4Lia4Liy4LmA4LiV4LmH4LiHCivguYDguJrguLLguYDguJnguLfguYnguK3guYDguJrguLLguJXguLHguKcKK+C5gOC4muC4suC4muC4suC4hwor4LmA4Lia4Liy4Lib4Lix4LiN4LiN4LiyCivguYDguJrguLLguKHguLfguK0KK+C5gOC4muC4suC5hOC4oeC5iQor4LmA4Lia4Liy4LmE4Lih4LmJ4LmA4Lia4Liy4Lih4Li34LitCivguYDguJrguLLguKPguLLguJMKK+C5gOC4muC4suC5geC4o+C4hwor4LmA4Lia4Liy4Liq4Lih4Lit4LiHCivguYDguJrguYnguLLguKvguKXguLjguJQKK+C5gOC4muC4suC4q+C4p+C4suC4mQor4LmA4Lia4Liy4LmA4Lir4Lin4LiHCivguYDguJrguLLguYLguKvguKfguIcKK+C5gOC4muC4suC4sAor4LmA4Lia4Liy4Liw4LmGCivguYDguJrguLLguLDguKXguKEKK+C5gOC4muC4suC4sOC5geC4qgor4LmA4Lia4Li04LiBCivguYDguJrguLTguIHguITguKfguLLguKEKK+C5gOC4muC4tOC4geC4l+C4suC4hwor4LmA4Lia4Li04LiB4LiX4Li54LiVCivguYDguJrguLTguIHguJrguLLguJkKK+C5gOC4muC4tOC4geC4nuC4ouC4suC4mQor4LmA4Lia4Li04LiB4Lie4Lij4Liw4LmA4LiZ4LiV4LijCivguYDguJrguLTguIHguJ7guKPguLDguYLguK3guKnguJDguYwKK+C5gOC4muC4tOC4geC5hOC4nuC4owor4LmA4Lia4Li04LiB4LmE4Lih4LmJCivguYDguJrguLTguIHguYDguKPguLfguK0KK+C5gOC4muC4tOC4geC5guC4o+C4hwor4LmA4Lia4Li04LiB4LmC4Lil4LiHCivguYDguJrguLTguIHguYHguKfguYjguJnguYDguKfguLXguKLguJnguYDguJfguLXguKLguJkKK+C5gOC4muC4tOC4geC4reC4o+C4uOC4kwor4LmA4Lia4Li04LmI4LiHCivguYDguJrguLXguYnguKIKK+C5gOC4muC4teC4ouC4gQor4LmA4Lia4Li14Lii4LiB4Lia4LmJ4Liy4LiiCivguYDguJrguLXguYnguKLguIHguLHguJnguJTguLLguKMKK+C5gOC4muC4teC5ieC4ouC5geC4geC5iQor4LmA4Lia4Li14LmI4Lii4LiHCivguYDguJrguLXguYjguKLguIfguJrguYjguLLguKIKK+C5gOC4muC4teC4ouC4lAor4LmA4Lia4Li14Lii4LiU4LiB4Lij4LitCivguYDguJrguLXguKLguJTguJrguLHguIcKK+C5gOC4muC4teC4ouC4lOC5gOC4muC4teC4ouC4mQor4LmA4Lia4Li14Lii4LiU4LmB4Lin4LmJ4LiHCivguYDguJrguLXguKLguJTguYDguKrguLXguKLguJQKK+C5gOC4muC4teC5ieC4ouC4leC5iOC4reC5hOC4quC5iQor4LmA4Lia4Li14LmJ4Lii4LiX4Liz4LiC4Lin4Lix4LiNCivguYDguJrguLXguKLguJkKK+C5gOC4muC4teC4ouC4meC4mOC4suC4leC4uAor4LmA4Lia4Li14LmJ4Lii4LiZ4LmJ4Lit4Lii4Lir4Lit4Lii4LiZ4LmJ4Lit4LiiCivguYDguJrguLXguYnguKLguJrguJkKK+C5gOC4muC4teC5ieC4ouC4muC5ieC4suC4ouC4o+C4suC4ouC4l+C4suC4hwor4LmA4Lia4Li14LmJ4Lii4Lia4Liz4LiZ4Liy4LiNCivguYDguJrguLXguYnguKLguYLguJrguIEKK+C5gOC4muC4teC5ieC4ouC4m+C4o+C4sOC4geC4seC4meC4oOC4seC4ogor4LmA4Lia4Li14LmJ4Lii4Lib4Lij4Liw4LiK4Li44LihCivguYDguJrguLXguYnguKLguJvguKPguLHguJoKK+C5gOC4muC4teC4ouC4o+C5jAor4LmA4Lia4Li14LmJ4Lii4Lil4LmI4Liy4LiHCivguYDguJrguLXguYnguKLguYDguKXguLXguYnguKLguIcKK+C5gOC4muC4teC5ieC4ouC4pwor4LmA4Lia4Li14LmJ4Lii4Lin4LmGIOC4muC4ueC4lOC5hgor4LmA4Lia4Li14LmJ4Lii4Lir4Lin4Lix4LiUCivguYDguJrguLXguYnguKLguKvguLHguKfguYHguJXguIEKK+C5gOC4muC4teC5ieC4ouC4q+C4seC4p+C5geC4q+C4peC4gQor4LmA4Lia4Li34LitCivguYDguJrguLfguYjguK0KK+C5gOC4muC4t+C5ieC4rQor4LmA4Lia4Li34LmJ4Lit4LiHCivguYDguJrguLfguYnguK3guIfguI3guKfguJkKK+C5gOC4muC4t+C5ieC4reC4h+C4leC5ieC4mQor4LmA4Lia4Li34LmJ4Lit4LiH4Lia4LiZCivguYDguJrguLfguYnguK3guIfguKfguYjguLIKK+C5gOC4muC4t+C5ieC4reC4h+C4q+C4meC5ieC4sgor4LmA4Lia4Li34LmJ4Lit4LiH4Lir4Lil4Lix4LiHCivguYDguJrguLfguK3guJkKK+C5geC4mgor4LmB4Lia4LmJCivguYHguJrguIEKK+C5geC4muC4geC4q+C4meC5ieC4sgor4LmB4Lia4LiB4Liw4LiU4Li04LiZCivguYHguJrguITguJfguLXguYDguKPguLXguKIKK+C5geC4muC5iOC4hwor4LmB4Lia4LiH4LiB4LmMCivguYHguJrguYjguIfguITguYnguLLguIcKK+C5geC4muC5iOC4h+C5gOC4muC4sgor4LmB4Lia4LmI4LiH4Lib4Lix4LiZCivguYHguJrguYjguIfguKDguLLguIQKK+C5geC4muC5iOC4h+C5geC4ouC4gQor4LmB4Lia4LmI4LiH4Lij4Lix4Lia4LmB4Lia4LmI4LiH4Liq4Li54LmJCivguYHguJrguYjguIfguKrguLHguJnguJvguLHguJnguKrguYjguKfguJkKK+C5geC4muC4lOC4oeC4tOC4meC4leC4seC4mQor4LmB4Lia4LiV4LmA4LiV4Lit4Lij4Li14LmICivguYHguJrguYTguJXguYsKK+C5geC4muC4mQor4LmB4Lia4LiZ4LmC4LiICivguYHguJrguJoKK+C5geC4muC5h+C4mgor4LmB4Lia4Lia4LiC4LmJ4Lit4LiE4Liz4LiW4Liy4LihCivguYHguJrguJrguInguJrguLHguJoKK+C5geC4muC4muC4muC4suC4hwor4LmB4Lia4Lia4LmB4Lic4LiZCivguYHguJrguJrguJ3guLbguIHguKvguLHguJQKK+C5geC4muC4muC4nuC4tOC4mOC4tQor4LmB4Lia4Lia4Lie4Li04Lih4Lie4LmMCivguYHguJrguJrguKrguK3guJrguJbguLLguKEKK+C5geC4muC4muC4reC4ouC5iOC4suC4hwor4LmB4Lia4LmA4Lia4Liy4LiwCivguYHguJrguKHguLfguK0KK+C5geC4muC4o+C4gQor4LmB4Lia4LmA4Lij4Li14Lii4LihCivguYHguJrguKvguKXguLIKK+C5geC4muC4sAor4LmB4Lia4Liw4LmB4LiJ4LiwCivguYHguJrguLDguJfguYjguLIKK+C5geC4muC4sOC4m+C4suC4gQor4LmB4Lia4Liw4Lit4LiBCivguYLguJoKK+C5guC4muC5iQor4LmC4Lia4LmLCivguYLguJrguIEKK+C5guC4muC4geC4guC4oy0KK+C5guC4muC4geC4guC4o+C4k+C4tQor4LmC4Lia4LiB4LiC4Lij4Lie4Lij4Lij4LipCivguYLguJrguIHguKHguLfguK0KK+C5guC4muC4iuC4uOC4gQor4LmC4Lia4LiU4LiBCivguYLguJrguYHguJTguIcKK+C5guC4muC4lQor4LmC4Lia4LiZ4Lix4LiqCivguYLguJrguYrguYDguJrguYoKK+C5guC4muC4ogor4LmC4Lia4Lii4Lia4Li04LiZCivguYLguJrguKPguKHguLXguJkKK+C5guC4muC4o+C4reC4mQor4LmC4Lia4Lij4Liy4LiTCivguYLguJrguKPguLLguJMtCivguYLguJrguKPguLLguJPguITguJTguLUKK+C5guC4muC4o+C4suC4k+C4p+C4seC4leC4luC4uAor4LmC4Lia4Lij4Liy4LiT4Liq4LiW4Liy4LiZCivguYLguJrguKrguJbguYwKK+C5g+C4mgor4LmD4Lia4LmJCivguYPguJrguIHguYnguJnguJvguLTguJQKK+C5g+C4muC4geC4reC4h+C5gOC4geC4tOC4mQor4LmD4Lia4LiB4Lit4LiH4Lir4LiZ4Li44LiZCivguYPguJrguILguJnguKrguLTguJnguITguYnguLIKK+C5g+C4muC4guC4meC4uOC4mQor4LmD4Lia4LiC4Lix4Lia4LiC4Li14LmICivguYPguJrguYHguILguYfguIcKK+C5g+C4muC5ieC4hOC4peC4seC5iOC4hwor4LmD4Lia4LmA4LiH4Li04LiZCivguYPguJrguIjguK3guIcKK+C5g+C4muC4juC4teC4geC4sgor4LmD4Lia4LiU4Liy4LilCivguYPguJrguJTguLMKK+C5g+C4muC5geC4lOC4hwor4LmD4Lia4LmB4LiU4LiH4LmB4LiI4LmJ4LiH4LmC4LiX4LipCivguYPguJrguJXguKPguLLguKrguYjguIcKK+C5g+C4muC4leC4reC4hwor4LmD4Lia4LiV4Liy4LilCivguYPguJrguJfguK3guIcKK+C5g+C4muC4l+C5ieC4reC4h+C5geC4lOC4hwor4LmD4Lia4LmB4LiX4Lij4LiBCivguYPguJrguJnguLLguIEKK+C5g+C4muC4muC4reC4gQor4LmD4Lia4Lia4Li44LiNCivguYPguJrguYDguJrguLTguIEKK+C5g+C4muC5gOC4muC4tOC4geC4l+C4suC4hwor4LmD4Lia4LmA4Lia4Li04LiB4Lij4LmI4Lit4LiHCivguYPguJrguJvguIEKK+C5g+C4muC4m+C4o+C4t+C4rQor4LmD4Lia4Lib4Lil4Li04LinCivguYPguJrguJ7guLHguJQKK+C5g+C4muC4nuC4seC4l+C4mOC4quC4teC4oeC4sgor4LmD4Lia4LmC4LieCivguYPguJrguYDguKHguLXguYjguKLguIcKK+C5g+C4muC5hOC4oeC5iQor4LmD4Lia4Lij4Liw4LiB4LiyCivguYPguJrguKPguLHguJoKK+C5g+C4muC4o+C4seC4muC4o+C4reC4hwor4LmD4Lia4Lil4LiyCivguYPguJrguYDguKXguLXguYnguKLguIcKK+C5g+C4muC4quC4rQor4LmD4Lia4Liq4Lix4LmI4LiHCivguYPguJrguKrguLHguYjguIfguIjguYjguLLguKIKK+C5g+C4muC4quC4seC4iAor4LmD4Lia4Liq4Liz4LiE4Lix4LiNCivguYPguJrguKrguLPguITguLHguI3guITguLnguYjguIjguYjguLLguKIKK+C5g+C4muC4quC4teC4oeC4sgor4LmD4Lia4Liq4Li44LiX4LiY4Li0CivguYPguJrguYDguKrguKHguLIKK+C5g+C4muC5gOC4quC4o+C5h+C4iAor4LmD4Lia4Lir4LiZ4LmJ4LiyCivguYPguJrguKvguLjguYnguJkKK+C5g+C4muC4q+C4ueC4iuC5ieC4suC4hwor4LmD4Lia4LmA4Lir4Lii4Li14Lii4Lia4Lii4LmI4LizCivguYPguJrguK3guJnguLjguI3guLLguJXguILguLHguJrguILguLXguYgKK+C5hOC4muC5iOC5hgor4LibCivguJvguIEKK+C4m+C4geC4geC4o+C4sOC4nuC4reC4hwor4Lib4LiB4LmA4LiB4LioCivguJvguIHguITguKPguK3guIcKK+C4m+C4geC4hOC4peC4uOC4oQor4Lib4LiB4LiV4Li0CivguJvguIHguJvguYnguK3guIcKK+C4m+C4geC4m+C4seC4geC4o+C4seC4geC4qeC4sgor4Lib4LiB4Lib4Li04LiUCivguJvguIHguKPguJPguYwKK+C4m+C4geC4o+C4k+C4seC4oQor4Lib4LiB4Liy4LijCivguJvguIHguLTguJPguIHguLAKK+C4m+C4geC4teC4o+C4k+C4seC4oQor4Lib4LmC4LiB4LiP4Li0CivguJvguIcKK+C4m+C5iOC4hwor4Lib4LiH4LiK4LmJ4Liy4LiHCivguJvguIfguJvguLHguIcKK+C4m+C4juC4pQor4Lib4LiP4Lix4LiBCivguJvguI/guLQtCivguJvguI/guLTguIHguKPguJPguYwKK+C4m+C4j+C4tOC4geC4o+C4o+C4oeC4quC4h+C4hOC4o+C4suC4oQor4Lib4LiP4Li04LiB4Liy4LijLQor4Lib4LiP4Li04LiB4Liy4Lij4LiwCivguJvguI/guLTguIHguLTguKPguLTguKLguLIKK+C4m+C4j+C4tOC4geC4ueC4pQor4Lib4LiP4Li04LiE4LiE4Lir4Li04LiVCivguJvguI/guLTguITguKEKK+C4m+C4j+C4tOC4hOC4q+C4tOC4lS0KK+C4m+C4j+C4tOC4hOC4suC4q+C4gQor4Lib4LiP4Li04LiG4LiwCivguJvguI/guLTguIrguLXguKfguJnguLAKK+C4m+C4j+C4tOC4jeC4jeC4sgor4Lib4LiP4Li04LiN4LiN4Liy4Liq4Liy4LiB4Lil4Lin4LmI4Liy4LiU4LmJ4Lin4Lii4Liq4Li04LiX4LiY4Li04Lih4LiZ4Li44Lip4Lii4LiK4LiZCivguJvguI/guLTguI3guLLguJMKK+C4m+C4j+C4tOC4l+C4tOC4mQor4Lib4LiP4Li04Lia4LiWCivguJvguI/guLTguJrguLHguJXguLQKK+C4m+C4j+C4tOC4muC4seC4leC4tOC4geC4suC4owor4Lib4LiP4Li04Lia4Lix4LiV4Li04LiY4Lij4Lij4LihCivguJvguI/guLTguJvguJfguLIKK+C4m+C4j+C4tOC4m+C4seC4geC4qeC5jAor4Lib4LiP4Li04Lib4Lix4LiZCivguJvguI/guLTguJvguLjguIjguInguLLguJ7guKLguLLguIHguKPguJPguYwKK+C4m+C4j+C4tOC4m+C4uOC4iOC4ieC4suC4p+C4suC4l+C4tQor4Lib4LiP4Li04Lie4Lix4LiX4LiY4LmMCivguJvguI/guLTguJ7guLLguIHguKLguYwKK+C4m+C4j+C4tOC4oOC4suC4hAor4Lib4LiP4Li04Lig4Liy4LiELQor4Lib4LiP4Li04Lig4Liy4LiE4LiZ4Li04Lih4Li04LiVCivguJvguI/guLTguKDguLLguJMKK+C4m+C4j+C4tOC4oOC4suC4ky0KK+C4m+C4j+C4tOC4oOC4suC4k+C4geC4p+C4tQor4Lib4LiP4Li04Lig4Liy4LiT4Lib4LiP4Li04Liq4Lix4Lih4Lig4Li04LiX4LiyCivguJvguI/guLTguKDguLLguJPguYLguKfguKvguLLguKMKK+C4m+C4j+C4tOC4oeC4sgor4Lib4LiP4Li04Lih4Liy4LiB4LijCivguJvguI/guLTguKLguLjguJfguJjguYwKK+C4m+C4j+C4tOC4o+C4ngor4Lib4LiP4Li04Lij4Li54LibCivguJvguI/guLTguKPguLnguJstCivguJvguI/guLTguYLguKXguKEKK+C4m+C4j+C4tOC4p+C4seC4leC4tAor4Lib4LiP4Li04Lin4Liy4LiVCivguJvguI/guLTguKfguLLguJcKK+C4m+C4j+C4tOC5gOC4p+C4mAor4Lib4LiP4Li04Liq4LiZ4LiY4Li0CivguJvguI/guLTguKrguKfguLAKK+C4m+C4j+C4tOC4quC4seC4h+C4guC4o+C4k+C5jAor4Lib4LiP4Li04Liq4Lix4LiZ4LiW4Liy4LijCivguJvguI/guLTguKrguLHguKHguKDguLTguJfguLIKK+C4m+C4j+C4tOC5gOC4quC4mAor4Lib4LiP4Li04LmA4Liq4LiY4LiC4LmI4Liy4LinCivguJvguJDguJ7guLUKK+C4m+C4kOC4nuC4teC4p+C4tOC4l+C4ouC4sgor4Lib4LiQ4LihCivguJvguJDguKEtCivguJvguJDguKHguIHguKPguKPguKEKK+C4m+C4kOC4oeC4jOC4suC4mQor4Lib4LiQ4Lih4LiU4Li44Liq4Li04LiVCivguJvguJDguKHguJfguLHguKjguJnguYwKK+C4m+C4kOC4oeC5gOC4l+C4qOC4meC4sgor4Lib4LiQ4Lih4LiZ4Li04LmA4LiX4LioCivguJvguJDguKHguJrguLjguKPguLjguKkKK+C4m+C4kOC4oeC4nuC4ouC4suC4muC4suC4pQor4Lib4LiQ4Lih4LmC4Lie4LiY4Li04LiB4Liy4LilCivguJvguJDguKHguKLguLLguKEKK+C4m+C4kOC4oeC4pOC4geC4qeC5jAor4Lib4LiQ4Lih4Lin4Lix4LiiCivguJvguJDguKHguKrguKHguYLguJ7guJjguLQKK+C4m+C4kOC4oeC4quC4uOC4o+C4l+C4tOC4mQor4Lib4LiQ4Lih4Liy4Lip4Liy4LiSCivguJvguJDguKfguLUKK+C4m+C4k+C4lQor4Lib4LiT4Liy4LihCivguJvguJPguLTguJjguLLguJkKK+C4m+C4k+C4tOC4mOC4tAor4Lib4LiT4Li14LiVCivguJvguJQKK+C4m+C4lOC5guC4m+C5iQor4Lib4LiU4Li04Lin4Lij4Lix4LiU4LiyCivguJvguJXguLQKK+C4m+C4leC4tOC4ouC4seC4lQor4Lib4LiV4Li04Lin4Lix4LiV4LijCivguJvguJbguJ7guLUKK+C4m+C4luC4oeC4seC4hwor4Lib4LiW4Lin4Li1CivguJvguJfguLHguI/guJDguLLguJkKK+C4m+C4l+C4seC4quC4luC4suC4mQor4Lib4LiX4Liy4LiZ4Li44LiB4Lij4LihCivguJvguJfguLXguJsKK+C4m+C4l+C4uOC4oQor4Lib4LiZCivguJvguYjguJkKK+C4m+C5iOC4meC4m+C4teC5iQor4Lib4LiZ4LmA4LibCivguJvguJnguLHguJTguJTguLIKK+C4m+C4mgor4Lib4Lib4Lix4LiN4LiILQor4Lib4Lib4Lix4LiN4LiI4LiY4Lij4Lij4LihCivguJvguJvguLHguI3guIjguLAKK+C4m+C4oQor4Lib4Lih4LmA4LiC4Li34LmI4Lit4LiHCivguJvguKHguIjguLTguJUKK+C4m+C4oeC4lOC5ieC4reC4ogor4Lib4Lih4LmA4LiU4LmI4LiZCivguJvguKHguJvguKPguLDguKrguLLguJcKK+C4m+C4oeC5gOC4m+C4sgor4Lib4LmC4LiiLQor4Lib4LmC4Lii4LiK4LiZ4Lih4LmMCivguJvguYLguKLguJjguKMKK+C4m+C5guC4ouC4mOC4o+C4sgor4Lib4LmC4Lii4LiZ4Li04LiY4Li0CivguJvguYLguKLguKPguLLguKjguLQKK+C4m+C4oy0KK+C4m+C4o+C4gQor4Lib4Lij4LiB4LiV4Li0CivguJvguKPguIcKK+C4m+C4o+C4lAor4Lib4Lij4LiV4Lii4Lix4LiB4Lip4LmMCivguJvguKPguJXguKLguLLguIQKK+C4m+C4o+C4leC5gOC4ouC4gQor4Lib4Lij4LiZCivguJvguKPguJnguJnguLTguJrguLHguJXguLQKK+C4m+C4o+C4meC4m+C4o+C4t+C4rQor4Lib4Lij4LiZ4LmA4Lib4Lij4LitCivguJvguKPguJnguLHguKIKK+C4m+C4o+C4mgor4Lib4Lij4Lia4LmE4LiB4LmICivguJvguKPguJrguKHguLfguK3guYPguKvguYkKK+C4m+C4o+C4m+C4seC4geC4qeC5jAor4Lib4Lij4LihLQor4Lib4Lij4Lih4Lix4LiV4LiW4LmMCivguJvguKPguKHguLLguIjguLLguKPguKLguYwKK+C4m+C4o+C4oeC4suC4k+C4uQor4Lib4Lij4Lih4Liy4LiV4Lih4Lix4LiZCivguJvguKPguKHguLLguKDguLTguYTguJjguKIKK+C4m+C4o+C4oeC4suC4oOC4tOC5gOC4qeC4gQor4Lib4Lij4Lih4Li04LiZ4LiX4Lij4LmMCivguJvguKPguYDguKHguJnguJfguKPguYwKK+C4m+C4o+C5gOC4oeC4qOC4p+C4o+C5jAor4Lib4Lij4LmA4Lih4Lip4LiQ4LmMCivguJvguKPguYDguKHguKvguLAKK+C4m+C4o+C5guC4peC4gQor4Lib4Lij4Lin4LiUCivguJvguKPguKfguJnguYHguJvguKMKK+C4m+C4o+C4p+C4suC4l+C4tQor4Lib4Lij4Lio4Li4CivguJvguKPguKrguLTguJUKK+C4m+C4o+C4quC4tOC4lS0KK+C4m+C4o+C4quC4tOC4leC4p+C4tOC4l+C4ouC4sgor4Lib4Lij4LmL4LitCivguJvguKPguK3guIfguJTguK3guIcKK+C4m+C4o+C4reC4lAor4Lib4Lij4Lit4LiU4LmGCivguJvguKPguK3guJcKK+C4m+C4o+C4reC4ogor4Lib4Lij4Lit4Lii4LmGCivguJvguKPguLAtCivguJvguKPguLDguIHguJoKK+C4m+C4o+C4sOC4geC4muC4leC4seC4pwor4Lib4Lij4Liw4LiB4Lik4LiVCivguJvguKPguLDguIHguKTguJXguLQKK+C4m+C4o+C4sOC4geC4pQor4Lib4Lij4Liw4LiB4Lin4LiUCivguJvguKPguLDguIHguKfguJTguJvguKPguLDguILguLHguJkKK+C4m+C4o+C4sOC4geC4p+C4lOC4o+C4suC4hOC4sgor4Lib4Lij4Liw4LiB4Lit4LiaCivguJvguKPguLDguIHguK3guJrguJTguYnguKfguKIKK+C4m+C4o+C4sOC4geC4reC4muC4reC4suC4q+C4suC4owor4Lib4Lij4Liw4LiB4Lix4LiZCivguJvguKPguLDguIHguLHguJnguIrguLXguKfguLTguJUKK+C4m+C4o+C4sOC4geC4seC4meC5gOC4iuC4tOC4h+C4peC4sgor4Lib4Lij4Liw4LiB4Lix4LiZ4LiV4Lix4Lin4Lic4Li54LmJ4LiV4LmJ4Lit4LiH4Lir4Liy4Lir4Lij4Li34Lit4LiI4Liz4LmA4Lil4LiiCivguJvguKPguLDguIHguLHguJnguKDguLHguKIKK+C4m+C4o+C4sOC4geC4seC4meC4oOC4seC4ouC4hOC5ieC4s+C4iOC4uOC4mQor4Lib4Lij4Liw4LiB4Lix4LiZ4Lin4Li04LiZ4Liy4Lio4Lig4Lix4LiiCivguJvguKPguLDguIHguLHguJoKK+C4m+C4o+C4sOC4geC4suC4ogor4Lib4Lij4Liw4LiB4Liy4Lii4Lie4Lij4Li24LiBCivguJvguKPguLDguIHguLLguKMKK+C4m+C4o+C4sOC4geC4suC4qAor4Lib4Lij4Liw4LiB4Liy4Lio4LiBCivguJvguKPguLDguIHguLLguKjguJnguLXguKLguJrguLHguJXguKMKK+C4m+C4o+C4sOC4geC4suC4qOC4tOC4lQor4Lib4Lij4Liw4LiB4LizCivguJvguKPguLDguIHguLTguJQKK+C4m+C4o+C4sOC4geC4tOC4lQor4Lib4Lij4Liw4LiB4Li14Lij4LiT4LiBCivguJvguKPguLDguYDguIHguLXguKLguKPguJPguIEKK+C4m+C4o+C4sOC5geC4geC4gQor4Lib4Lij4Liw4LiE4LiUCivguJvguKPguLDguITguJnguJjguKPguKPguJ4KK+C4m+C4o+C4sOC4hOC4meC4mOC4o+C4o+C4nuC5jAor4Lib4Lij4Liw4LiE4LiaCivguJvguKPguLDguITguJrguJvguKPguLDguKvguIfguKEKK+C4m+C4o+C4sOC4hOC4reC4hwor4Lib4Lij4Liw4LiE4Lix4Lia4Lib4Lij4Liw4LiE4Lit4LiHCivguJvguKPguLDguITguLHguKXguKDguYwKK+C4m+C4o+C4sOC4hOC4suC4o+C4oQor4Lib4Lij4Liw4LiE4LizCivguJvguKPguLDguITguLPguYTguIHguYgKK+C4m+C4o+C4sOC4hOC4s+C4lOC4teC4hOC4p+C4suC4ogor4Lib4Lij4Liw4LiE4Liz4Lij4LmJ4Lit4LiiCivguJvguKPguLDguITguLTguYjguJkKK+C4m+C4o+C4sOC4hOC4tOC5iOC4meC4p+C4tOC4meC4iuC4sgor4Lib4Lij4Liw4LiE4Li44LiTCivguJvguKPguLDguYDguITguJkKK+C4m+C4o+C4sOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lib4Lij4Liw4LmC4LiE4LiZCivguJvguKPguLDguYLguITguJnguJjguKPguKPguJ4KK+C4m+C4o+C4sOC5guC4hOC4meC4mOC4o+C4o+C4nuC5jAor4Lib4Lij4Liw4LmC4LiE4LihCivguJvguKPguLDguYLguITguKHguILguYjguLLguKcKK+C4m+C4o+C4sOC4iOC4hwor4Lib4Lij4Liw4LiI4LiNCivguJvguKPguLDguIjguJoKK+C4m+C4o+C4sOC4iOC4muC4m+C4o+C4sOC5geC4iOC4hwor4Lib4Lij4Liw4LiI4Lin4LiaCivguJvguKPguLDguIjguYvguK3guJvguKPguLDguYHguIjguYsKK+C4m+C4o+C4sOC4iOC4seC4geC4qS0KK+C4m+C4o+C4sOC4iOC4seC4geC4qeC5jAor4Lib4Lij4Liw4LiI4Lix4LiB4Lip4LiZ4Li04Lii4LihCivguJvguKPguLDguIjguLHguIHguKnguYzguJ7guKLguLLguJkKK+C4m+C4o+C4sOC4iOC4seC4jQor4Lib4Lij4Liw4LiI4Lix4LiN4Lia4Liy4LiZCivguJvguKPguLDguIjguLHguJkKK+C4m+C4o+C4sOC4iOC4seC4meC4q+C4meC5ieC4sgor4Lib4Lij4Liw4LiI4Liy4LiBCivguJvguKPguLDguIjguLLguIQKK+C4m+C4o+C4sOC4iOC4suC4mQor4Lib4Lij4Liw4LiI4LizCivguJvguKPguLDguIjguLPguIHguLLguKMKK+C4m+C4o+C4sOC4iOC4s+C4hOC4o+C4seC5iOC4hwor4Lib4Lij4Liw4LiI4Liz4LiJ4Lix4LiV4LijCivguJvguKPguLDguIjguLPguIvguK3guIcKK+C4m+C4o+C4sOC4iOC4s+C5gOC4lOC4t+C4reC4mQor4Lib4Lij4Liw4LiI4Liz4LiV4Lij4LiyCivguJvguKPguLDguIjguLPguYDguKHguLfguK3guIcKK+C4m+C4o+C4sOC4iOC4s+C4ouC4suC4oQor4Lib4Lij4Liw4LiI4Li04LihCivguJvguKPguLDguIjguLTguYnguKHguJvguKPguLDguIjguYjguK3guIcKK+C4m+C4o+C4sOC4iOC4tOC5ieC4oeC4m+C4o+C4sOC5gOC4iOC5i+C4rQor4Lib4Lij4Liw4LiI4Li4CivguJvguKPguLDguIjguLjguILguLLguJQKK+C4m+C4o+C4sOC4iOC4uOC4hOC4oeC4meC5jAor4Lib4Lij4Liw4LiI4Li44Lia4Lix4LiZCivguJvguKPguLDguIjguLjguYTguJ/guJ/guYnguLIKK+C4m+C4o+C4sOC4iOC4uOC5guC4peC4q+C4tOC4lQor4Lib4Lij4Liw4LmA4LiI4LiBCivguJvguKPguLDguYDguIjguLTguJQKK+C4m+C4o+C4sOC5gOC4iOC4tOC4lOC4m+C4o+C4sOC5gOC4iOC5ieC4rQor4Lib4Lij4Liw4LmA4LiI4Li14Lii4LiUCivguJvguKPguLDguYHguIgKK+C4m+C4o+C4sOC5geC4iOC4iOC4teC4mQor4Lib4Lij4Liw4LiK4LiUCivguJvguKPguLDguIrguJTguJvguKPguLDguIrguLHguJkKK+C4m+C4o+C4sOC4iuC4mQor4Lib4Lij4Liw4LiK4Lin4LihCivguJvguKPguLDguIrguKfguKMKK+C4m+C4o+C4sOC4iuC4seC4mQor4Lib4Lij4Liw4LiK4LiyCivguJvguKPguLDguIrguLLguIHguKMKK+C4m+C4o+C4sOC4iuC4suC4geC4o+C4qOC4suC4quC4leC4o+C5jAor4Lib4Lij4Liw4LiK4Liy4LiE4LihCivguJvguKPguLDguIrguLLguIrguJkKK+C4m+C4o+C4sOC4iuC4suC4iuC4suC4leC4tAor4Lib4Lij4Liw4LiK4Liy4LiX4Lix4LiT4LiR4LmMCivguJvguKPguLDguIrguLLguJjguLTguJvguYTguJXguKIKK+C4m+C4o+C4sOC4iuC4suC4meC4suC4lgor4Lib4Lij4Liw4LiK4Liy4Lia4LiU4Li1CivguJvguKPguLDguIrguLLguJrguLLguKUKK+C4m+C4o+C4sOC4iuC4suC4oOC4tOC4muC4suC4pQor4Lib4Lij4Liw4LiK4Liy4Lih4LiV4Li0CivguJvguKPguLDguIrguLLguKPguLLguKnguI7guKPguYwKK+C4m+C4o+C4sOC4iuC4suC4quC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lib4Lij4Liw4LiK4Liy4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMCivguJvguKPguLDguIrguLTguJQKK+C4m+C4o+C4sOC4iuC4tQor4Lib4Lij4Liw4LiK4Li44LihCivguJvguKPguLDguIrguLjguKHguYDguJ7guKXguLTguIcKK+C4m+C4o+C4sOC4iuC4uOC4oeC4quC4uOC4lOC4ouC4reC4lAor4Lib4Lij4Liw4LmA4LiK4Li04LiNCivguJvguKPguLDguJPguJUKK+C4m+C4o+C4sOC4k+C4oQor4Lib4Lij4Liw4LiT4Liy4LihCivguJvguKPguLDguJPguLTguJjguLLguJkKK+C4m+C4o+C4sOC4k+C4tOC4mOC4tAor4Lib4Lij4Liw4LiT4Li14LiVCivguJvguKPguLDguJPguLjguJcKK+C4m+C4o+C4sOC4lOC4hwor4Lib4Lij4Liw4LiU4LiH4LmB4LiU4LiHCivguJvguKPguLDguJTguJkKK+C4m+C4o+C4sOC4lOC4meC4mOC4o+C4o+C4oQor4Lib4Lij4Liw4LiU4Lin4LiZCivguJvguKPguLDguJTguK3guJkKK+C4m+C4o+C4sOC4lOC4reC4ogor4Lib4Lij4Liw4LiU4Lix4LiB4LmGCivguJvguKPguLDguJTguLHguIHguJvguKPguLDguYDguJTguLTguJQKK+C4m+C4o+C4sOC4lOC4seC4hwor4Lib4Lij4Liw4LiU4Lix4LiaCivguJvguKPguLDguJTguLHguJrguJvguKPguLDguJTguLIKK+C4m+C4o+C4sOC4lOC4sgor4Lib4Lij4Liw4LiU4Liy4LiBCivguJvguKPguLDguJTguLLguJXguLLguKIKK+C4m+C4o+C4sOC4lOC4suC4l+C4seC4ngor4Lib4Lij4Liw4LiU4Liy4LiZ4LmJ4LizCivguJvguKPguLDguJTguLLguJsKK+C4m+C4o+C4sOC4lOC4suC4nuC4pQor4Lib4Lij4Liw4LiU4Liy4Lih4Li1CivguJvguKPguLDguJTguLLguKkKK+C4m+C4o+C4sOC4lOC4suC5gOC4quC4teC4ogor4Lib4Lij4Liw4LiU4Li0LQor4Lib4Lij4Liw4LiU4Li04LiK4LiN4LiyCivguJvguKPguLDguJTguLTguJTguJvguKPguLDguJTguK3guKIKK+C4m+C4o+C4sOC4lOC4tOC4l+C4tOC4mQor4Lib4Lij4Liw4LiU4Li04Lij4LieCivguJvguKPguLDguJTguLTguKnguJAtCivguJvguKPguLDguJTguLTguKnguJDguYwKK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC4geC4o+C4o+C4oQor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4Liy4LiZCivguJvguKPguLDguJTguLjguIcKK+C4m+C4o+C4sOC4lOC4uOC4iAor4Lib4Lij4Liw4LiU4Li54LmICivguJvguKPguLDguJTguLnguYjguYHguILguIEKK+C4m+C4o+C4sOC4lOC4ueC5iOC4iuC4tOC4h+C4iuC4seC4mQor4Lib4Lij4Liw4LiU4Li54LmI4LmB4LiU4LiHCivguJvguKPguLDguJTguLnguYjguKXguLLguKIKK+C4m+C4o+C4sOC5gOC4lAor4Lib4Lij4Liw4LmA4LiU4LmH4LiZCivguJvguKPguLDguYDguJTguKLguIEKK+C4m+C4o+C4sOC5gOC4lOC4tOC4oQor4Lib4Lij4Liw4LmA4LiU4Li14Lii4LiHCivguJvguKPguLDguYDguJTguLXguYvguKLguKcKK+C4m+C4o+C4sOC5gOC4lOC4teC5i+C4ouC4p+C4geC5iOC4reC4mQor4Lib4Lij4Liw4LmA4LiU4Li14LmL4Lii4Lin4LmA4LiU4Li14Lii4LinCivguJvguKPguLDguYDguJTguLXguYvguKLguKfguJnguLXguYkKK+C4m+C4o+C4sOC5gOC4lOC4teC5i+C4ouC4p+C4m+C4o+C4sOC4lOC5i+C4suC4pwor4Lib4Lij4Liw4LmB4LiU4LiHCivguJvguKPguLDguYHguJTguLAKK+C4m+C4o+C4sOC5guC4lOC4ogor4Lib4Lij4Liw4LiV4LiHCivguJvguKPguLDguJXguKLguLLguIQKK+C4m+C4o+C4sOC4leC4seC4gQor4Lib4Lij4Liw4LiV4Liy4Lib4LiwCivguJvguKPguLDguJXguLQtCivguJvguKPguLDguJXguLTguIrguI3guLIKK+C4m+C4o+C4sOC4leC4tOC4jeC4suC4kwor4Lib4Lij4Liw4LiV4Li04LiX4Li04LiZCivguJvguKPguLDguJXguLTguKHguLLguIHguKPguKPguKEKK+C4m+C4o+C4sOC4leC4tOC4o+C4ngor4Lib4Lij4Liw4LiV4Li04Lio4Lij4Lix4LieCivguJvguKPguLDguJXguLkKK+C4m+C4o+C4sOC4leC4ueC4iuC4seC4ogor4Lib4Lij4Liw4LiV4Li54LiZ4LmJ4LizCivguJvguKPguLDguJXguLnguJvguYjguLIKK+C4m+C4o+C4sOC4leC4ueC4nOC4tQor4Lib4Lij4Liw4LiV4Li54Lif4Li44LiV4Lia4Lit4LilCivguJvguKPguLDguJXguLnguKPguLDguJrguLLguKIKK+C4m+C4o+C4sOC4leC4ueC4o+C4seC4muC4meC5ieC4swor4Lib4Lij4Liw4LiV4Li54Lil4LihCivguJvguKPguLDguJbguKEKK+C4m+C4o+C4sOC4luC4oeC4iOC4tOC4meC4lOC4sgor4Lib4Lij4Liw4LiX4LihCivguJvguKPguLDguJfguKLguJQKK+C4m+C4o+C4sOC4l+C5ieC4p+C4hwor4Lib4Lij4Liw4LiX4Lin4LiZCivguJvguKPguLDguJfguKfguJnguKrguLTguJnguITguYnguLIKK+C4m+C4o+C4sOC4l+C4seC4geC4qeC5jAor4Lib4Lij4Liw4LiX4Lix4LiB4Lip4Li04LiTCivguJvguKPguLDguJfguLHguIcKK+C4m+C4o+C4sOC4l+C4seC4lAor4Lib4Lij4Liw4LiX4Lix4LiU4LiI4Li14LiZCivguJvguKPguLDguJfguLHguJTguJfguK3guIcKK+C4m+C4o+C4sOC4l+C4seC4lOC4neC4o+C4seC5iOC4hwor4Lib4Lij4Liw4LiX4Lix4LiU4Lil4LihCivguJvguKPguLDguJfguLHguJTguYDguKXguYfguIEKK+C4m+C4o+C4sOC4l+C4seC4lOC5g+C4q+C4jeC5iAor4Lib4Lij4Liw4LiX4Lix4LiaCivguJvguKPguLDguJfguLHguJrguYPguIgKK+C4m+C4o+C4sOC4l+C4seC4muC4leC4o+C4sgor4Lib4Lij4Liw4LiX4Lix4Lia4Lif4LmJ4Lit4LiHCivguJvguKPguLDguJfguLHguJrguYHguKPguKEKK+C4m+C4o+C4sOC4l+C5iOC4sgor4Lib4Lij4Liw4LiX4Liy4LiB4Lil4LmJ4Lit4LiHCivguJvguKPguLDguJfguLLguJkKK+C4m+C4o+C4sOC4l+C4suC4meC4muC4seC4leC4owor4Lib4Lij4Liw4LiX4Liy4LiiCivguJvguKPguLDguJfguLLguKjguLUKK+C4m+C4o+C4sOC4l+C4tOC4mQor4Lib4Lij4Liw4LiX4Li04LmI4LiZCivguJvguKPguLDguJfguLXguJsKK+C4m+C4o+C4sOC4l+C4uOC4gQor4Lib4Lij4Liw4LiX4Li44LiQCivguJvguKPguLDguJfguLjguJDguIjguLTguJUKK+C4m+C4o+C4sOC4l+C4uOC4mQor4Lib4Lij4Liw4LiX4Li44Lih4Lij4Liy4LiECivguJvguKPguLDguJfguLjguKkKK+C4m+C4o+C4sOC4l+C4uOC4qeC4j+C5jAor4Lib4Lij4Liw4LiX4Li44Lip4LiP4LiI4Li04LiVCivguJvguKPguLDguJfguLjguKnguJDguYwKK+C4m+C4o+C4sOC4l+C4uOC4qeC4kOC4iOC4tOC4lQor4Lib4Lij4Liw4LiX4Li44Lip4Lij4LmJ4Liy4LiiCivguJvguKPguLDguYDguJfguKgKK+C4m+C4o+C4sOC5gOC4l+C4qOC4geC4seC4meC4iuC4mQor4Lib4Lij4Liw4LmA4LiX4Lio4LiK4Liy4LiV4Li0CivguJvguKPguLDguYDguJfguKjguKPguLLguIoKK+C4m+C4o+C4sOC5gOC4l+C4sgor4Lib4Lij4Liw4LmA4LiX4LmJ4LiyCivguJvguKPguLDguYDguJfguLXguKLguJQKK+C4m+C4o+C4sOC5gOC4l+C4teC4ouC4mgor4Lib4Lij4Liw4LmA4LiX4Li34Lit4LiHCivguJvguKPguLDguJjguLLguJkKK+C4m+C4o+C4sOC4mOC4suC4meC4suC4mOC4tOC4muC4lOC4tQor4Lib4Lij4Liw4LiZ4LihCivguJvguKPguLDguJnguKHguKHguLfguK0KK+C4m+C4o+C4sOC4meC4rQor4Lib4Lij4Liw4LiZ4Lit4LihCivguJvguKPguLDguJnguK3guKHguKvguJnguLXguYkKK+C4m+C4o+C4sOC4meC4seC4hwor4Lib4Lij4Liw4LiZ4Lix4Lib4LiU4LiyCivguJvguKPguLDguJnguLXguYkKK+C4m+C4o+C4sOC4meC4teC4m+C4o+C4sOC4meC4reC4oQor4Lib4Lij4Liw4LiZ4Li14Lib4Lij4Liw4LiZ4Lit4Lih4Lii4Lit4Lih4LiE4Lin4Liy4LihCivguJvguKPguLDguJrguLHguJQKK+C4m+C4o+C4sOC4muC4suC4lQor4Lib4Lij4Liw4Lib4Lij4Liy4LiZCivguJvguKPguLDguJvguKPguLLguKIKK+C4m+C4o+C4sOC4m+C4sgor4Lib4Lij4Liw4LmA4Lib4Lij4Li14LmJ4Lii4LiHCivguJvguKPguLDguYDguJvguKPguLXguKLguKcKK+C4m+C4o+C4sOC5geC4m+C5ieC4hwor4Lib4Lij4Liw4LmB4Lib4Lij4LmJ4LiZCivguJvguKPguLDguJ7guIjguJnguYwKK+C4m+C4o+C4sOC4nuC4meC4mOC5jAor4Lib4Lij4Liw4Lie4Lij4LihCivguJvguKPguLDguJ7guKTguJXguLQKK+C4m+C4o+C4sOC4nuC4pOC4l+C4mOC4tOC5jAor4Lib4Lij4Liw4Lie4Lix4LiUCivguJvguKPguLDguJ7guLHguJfguJjguYwKK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jAor4Lib4Lij4Liw4Lie4Liy4LiVCivguJvguKPguLDguJ7guLLguKoKK+C4m+C4o+C4sOC4nuC4suC4quC4leC5ieC4mQor4Lib4Lij4Liw4Lie4Liy4Liq4Lih4Lir4Lij4LiT4LieCivguJvguKPguLDguJ7guLLguKwKK+C4m+C4o+C4sOC4nuC4tOC4kwor4Lib4Lij4Liw4Lie4Li04Lih4Lie4LmM4Lib4Lij4Liw4Lie4Liy4LiiCivguJvguKPguLDguJ7guLjguJfguJjguYwKK+C4m+C4o+C4sOC5gOC4nuC4k+C4tQor4Lib4Lij4Liw4LmA4Lie4LiT4Li14LiZ4Li04Lii4LihCivguJvguKPguLDguYDguJ7guYnguK0KK+C4m+C4o+C4sOC5geC4nuC4o+C5iOC4h+C4m+C4o+C4sOC5geC4nuC4o+C4pwor4Lib4Lij4Liw4LmC4Lie4LiYCivguJvguKPguLDguYTguJ4KK+C4m+C4o+C4sOC5hOC4nuC4owor4Lib4Lij4Liw4Lig4LieCivguJvguKPguLDguKDguLHguKrguKrguKMKK+C4m+C4o+C4sOC4oOC4sgor4Lib4Lij4Liw4Lig4Liy4LiB4LijCivguJvguKPguLDguKDguLLguITguLLguKMKK+C4m+C4o+C4sOC4oOC4suC4ngor4Lib4Lij4Liw4Lig4Liy4Lih4LiT4LiR4LilCivguJvguKPguLDguKDguLLguKkKK+C4m+C4o+C4sOC4oOC4suC4qgor4Lib4Lij4Liw4LmA4Lig4LiXCivguJvguKPguLDguKHguIcKK+C4m+C4o+C4sOC4oeC4p+C4jQor4Lib4Lij4Liw4Lih4Lin4LilCivguJvguKPguLDguKHguKfguKXguIHguI7guKvguKHguLLguKIKK+C4m+C4o+C4sOC4oeC4p+C4peC4geC4suC4o+C4quC4reC4mQor4Lib4Lij4Liw4Lih4Lin4Lil4Lij4Lix4Lip4LiO4Liy4LiB4LijCivguJvguKPguLDguKHguLHguJXguJXguLAKK+C4m+C4o+C4sOC4oeC4suC4kwor4Lib4Lij4Liw4Lih4Liy4LiT4LiB4Liy4LijCivguJvguKPguLDguKHguLLguJPguJXguJkKK+C4m+C4o+C4sOC4oeC4suC4k+C4leC4seC4pwor4Lib4Lij4Liw4Lih4Liy4LiXCivguJvguKPguLDguKHguLLguJfguKvguJnguYnguLIKK+C4m+C4o+C4sOC4oeC4uOC4ggor4Lib4Lij4Liw4Lih4Li44LiXCivguJvguKPguLDguKHguLnguKUKK+C4m+C4o+C4sOC5gOC4oeC4tOC4mQor4Lib4Lij4Liw4LmA4Lih4Li04LiZ4Lig4Liy4Lip4Li1CivguJvguKPguLDguYLguKHguIcKK+C4m+C4o+C4sOC5guC4oeC4l+C4ouC5jAor4Lib4Lij4Liw4Lii4LiH4LiE4LmMCivguJvguKPguLDguKLguLjguIHguJXguYwKK+C4m+C4o+C4sOC4ouC4uOC4l+C4mOC5jAor4Lib4Lij4Liw4Lii4Li44LijCivguJvguKPguLDguKLguLnguKMKK+C4m+C4o+C4sOC5guC4ouC4hAor4Lib4Lij4Liw4LmC4Lii4LiE4Lib4Lij4Liw4LiY4Liy4LiZCivguJvguKPguLDguYLguKLguITguKrguLHguKHguJvguJfguLIKK+C4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Lib4Lij4Liw4LmC4Lij4Lir4Li04LiVCivguJvguKPguLDguKXguKHguJ7guYwKK+C4m+C4o+C4sOC4peC4reC4hwor4Lib4Lij4Liw4Lil4Lit4LiH4Lii4Li44LiX4LiY4LmMCivguJvguKPguLDguKXguLHguKIKK+C4m+C4o+C4sOC4peC4seC4ouC4geC4seC4peC4m+C5jAor4Lib4Lij4Liw4Lil4Lix4Lii4Lin4Liy4LiVCivguJvguKPguLDguKXguLLguJUKK+C4m+C4o+C4sOC4peC4suC4ogor4Lib4Lij4Liw4Lil4Li24LiHCivguJvguKPguLDguKXguLgKK+C4m+C4o+C4sOC4peC4uOC4hwor4Lib4Lij4Liw4LmA4Lil4LmI4Lir4LmMCivguJvguKPguLDguYDguKXguYnguLLguJvguKPguLDguYLguKXguKEKK+C4m+C4o+C4sOC5guC4peC4m+C4o+C4sOC5gOC4pQor4Lib4Lij4Liw4LmC4Lil4LihCivguJvguKPguLDguYLguKXguKHguYLguKXguIEKK+C4m+C4o+C4sOC4p+C4o+C4o+C4lQor4Lib4Lij4Liw4Lin4Lij4Lij4LiV4LiZ4LmMCivguJvguKPguLDguKfguLHguJXguLQKK+C4m+C4o+C4sOC4p+C4seC4leC4tC0KK+C4m+C4o+C4sOC4p+C4seC4leC4tOC4geC4suC4owor4Lib4Lij4Liw4Lin4Lix4LiV4Li04LiB4Liy4Lij4LiT4LmMCivguJvguKPguLDguKfguLHguJXguLTguIHguLLguKUKK+C4m+C4o+C4sOC4p+C4seC4leC4tOC4qOC4suC4quC4leC4o+C5jAor4Lib4Lij4Liw4Lin4Liy4LiVCivguJvguKPguLDguKfguLLguKUKK+C4m+C4o+C4sOC4p+C4suC4peC4m+C4seC4l+C4oeC5jAor4Lib4Lij4Liw4Lin4Liy4Lil4Lic4LilCivguJvguKPguLDguKfguLLguKXguKfguKPguKPguJMKK+C4m+C4o+C4sOC4p+C4suC4qgor4Lib4Lij4Liw4Lin4Li04LiHCivguJvguKPguLDguKfguLTguIoKK+C4m+C4o+C4sOC4p+C4tOC4leC4owor4Lib4Lij4Liw4Lin4Li04Liq4Lij4Lij4LiK4LiZ4Li14Lii4LmMCivguJvguKPguLDguKfguLXguJMKK+C4m+C4o+C4sOC5gOC4p+C4k+C4tQor4Lib4Lij4Liw4LmA4Lin4Lib4Lij4Liw4Lin4Li04LiHCivguJvguKPguLDguYDguKfguKgKK+C4m+C4o+C4sOC5gOC4p+C4qOC4meC5jAor4Lib4Lij4Liw4Lio4LihCivguJvguKPguLDguKjguLLguKrguJnguYwKK+C4m+C4o+C4sOC4qOC4uAor4Lib4Lij4Liw4Liq4LiBCivguJvguKPguLDguKrguIfguITguYwKK+C4m+C4o+C4sOC4quC4h+C4hOC5jOC4o+C5ieC4suC4ogor4Lib4Lij4Liw4Liq4LiaCivguJvguKPguLDguKrguJrguIHguLLguKPguJPguYwKK+C4m+C4o+C4sOC4quC4muC4geC4suC4o+C4k+C5jOC4meC4tOC4ouC4oQor4Lib4Lij4Liw4Liq4LieCivguJvguKPguLDguKrguKEKK+C4m+C4o+C4sOC4quC4oeC4m+C4o+C4sOC4quC4suC4mQor4Lib4Lij4Liw4Liq4Lih4Lib4Lij4Liw4LmA4LiqCivguJvguKPguLDguKrguKHguJ7guLHguJnguJjguLjguYwKK+C4m+C4o+C4sOC4quC4oeC5guC4o+C4hwor4Lib4Lij4Liw4Liq4LiwCivguJvguKPguLDguKrguLHguIEKK+C4m+C4o+C4sOC4quC4seC4meC4meC4suC4geC4suC4owor4Lib4Lij4Liw4Liq4Lix4Lii4LirLQor4Lib4Lij4Liw4Liq4Lix4Lii4Lir4LmMCivguJvguKPguLDguKrguLHguKLguKvguLLguIHguLLguKMKK+C4m+C4o+C4sOC4quC4seC4ouC4q+C4suC4p+C4q+C4suC4owor4Lib4Lij4Liw4Liq4LiyCivguJvguKPguLDguKrguLLguJcKK+C4m+C4o+C4sOC4quC4suC4ly0KK+C4m+C4o+C4sOC4quC4suC4l+C4geC4suC4owor4Lib4Lij4Liw4Liq4Liy4LiX4Lij4Li54LibCivguJvguKPguLDguKrguLLguJfguKvguKXguK3guJkKK+C4m+C4o+C4sOC4quC4suC4mOC4meC5jAor4Lib4Lij4Liw4Liq4Liy4LiZCivguJvguKPguLDguKrguLLguJnguIfguLIKK+C4m+C4o+C4sOC4quC4suC4meC5gOC4meC4o+C4oeC4tOC4lQor4Lib4Lij4Liw4Liq4Liy4LiZ4LmA4Liq4Li14Lii4LiHCivguJvguKPguLDguKrguLLguKMKK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tC0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jAor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmM4Lib4Lij4Liw4Liq4Liy4LiXCivguJvguKPguLDguKrguLTguJfguJjguLTguJzguKUKK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC4oOC4suC4ngor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmA4LihCivguJvguKPguLDguKrguLXguJvguKPguLDguKrguLIKK+C4m+C4o+C4sOC4quC4ueC4lQor4Lib4Lij4Liw4Liq4Li54LiV4Li0CivguJvguKPguLDguYDguKrguJrguLHguJnguK3guLLguIHguIcKK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kAor4Lib4Lij4Liw4LmB4Liq4Lia4Lix4LiZCivguJvguKPguLDguKvguJnguLbguYjguIcKK+C4m+C4o+C4sOC4q+C4oeC5iOC4sgor4Lib4Lij4Liw4Lir4Lii4Lix4LiUCivguJvguKPguLDguKvguKPguJPguYwKK+C4m+C4o+C4sOC4q+C4peC4suC4lAor4Lib4Lij4Liw4Lir4Lil4LmI4LizCivguJvguKPguLDguKvguKXguLTguYjguKEKK+C4m+C4o+C4sOC4q+C4p+C4seC4lAor4Lib4Lij4Liw4Lir4Lin4Lix4LmI4LiZCivguJvguKPguLDguKvguKfguYjguLIKK+C4m+C4o+C4sOC4q+C4seC4lQor4Lib4Lij4Liw4Lir4Lix4LiV4Lib4Lij4Liw4Lir4Liy4LijCivguJvguKPguLDguKvguLLguJMKK+C4m+C4o+C4sOC4q+C4suC4owor4Lib4Lij4Liw4Lir4Liy4Lij4LiK4Li14Lin4Li04LiVCivguJvguKPguLDguKvguLLguKoKK+C4m+C4o+C4sOC5gOC4q+C4pQor4Lib4Lij4Liw4LmA4Lir4LiqCivguJvguKPguLDguYDguKvguLXguKLguKUKK+C4m+C4o+C4sOC4reC4mgor4Lib4Lij4Liw4Lit4LijCivguJvguKPguLDguK3guKPguJvguKPguLDguYDguK3guLXguKLguIcKK+C4m+C4o+C4sOC4reC4tuC4hwor4Lib4Lij4Liw4Lit4Li44LiBCivguJvguKPguLDguYDguK3guLXguKLguIcKK+C4m+C4o+C4sOC5geC4reC4gQor4Lib4Lij4Liw4Liu4Liy4LihCivguJvguKPguLHguIEKK+C4m+C4o+C4seC4geC4m+C4o+C4swor4Lib4Lij4Lix4LiB4Lih4LiwCivguJvguKPguLHguIHguKvguLHguIHguJ7guLHguIcKK+C4m+C4o+C4seC4hwor4Lib4Lij4Lix4LiK4LiN4LiyCivguJvguKPguLHguJQKK+C4m+C4o+C4seC4leC4luC4iOC4o+C4tOC4ouC4sgor4Lib4Lij4Lix4LiV4Lii4LiZ4LiV4LmMCivguJvguKPguLHguJXguKLguLHguIHguKnguYwKK+C4m+C4o+C4seC4leC4ouC4seC4meC4leC5jAor4Lib4Lij4Lix4LiV4Lii4Lix4LiiCivguJvguKPguLHguJXguKLguLjguJXguJrguLHguJkKK+C4m+C4o+C4seC4leC4ouC4uOC4muC4seC4mQor4Lib4Lij4Lix4LiV4Lii4Li54LipCivguJvguKPguLHguJXguKLguLnguKvguYwKK+C4m+C4o+C4seC4leC5gOC4ouC4gQor4Lib4Lij4Lix4LiZCivguJvguKPguLHguYjguJkKK+C4m+C4o+C4seC5ieC4mQor4Lib4Lij4Lix4LiaCivguJvguKPguLHguJrguJfguLjguIHguILguYwKK+C4m+C4o+C4seC4muC5guC4l+C4qQor4Lib4Lij4Lix4Lia4Lib4Lij4Li44LiHCivguJvguKPguLHguJrguYTguKvguKEKK+C4m+C4o+C4seC4muC4reC4suC4geC4suC4qAor4Lib4Lij4Lix4Lia4Lit4Liy4Lia4Lix4LiV4Li0CivguJvguKPguLHguKHguJvguKPguLIKK+C4m+C4o+C4seC4qOC4iOC4tOC4oQor4Lib4Lij4Lix4Lio4LiZ4LiyCivguJvguKPguLHguKjguJnguLUKK+C4m+C4o+C4seC4qOC4p+C5jAor4Lib4Lij4LmI4LiyCivguJvguKPguLLguIHguI8KK+C4m+C4o+C4suC4geC4j+C4geC4suC4o+C4k+C5jAor4Lib4Lij4Liy4LiB4Lij4LihCivguJvguKPguLLguIHguKTguJUKK+C4m+C4o+C4suC4geC4suC4owor4Lib4Lij4Liy4LiE4Lig4Liy4LijCivguJvguKPguLLguITguLLguKMKK+C4m+C4o+C4suC4hwor4Lib4Lij4Liy4LiH4LiE4LmMCivguJvguKPguLLguIfguITguJPguLAKK+C4m+C4o+C4suC4h+C4hOC5jOC4m+C4o+C4sgor4Lib4Lij4Liy4LiI4Li14LiZCivguJvguKPguLLguIrguI3guYwKK+C4m+C4o+C4suC4iuC4jeC4sgor4Lib4Lij4Liy4LiK4Lix4LiiCivguJvguKPguLLguIrguLLguJvguLHguJXguKLguKfguLTguKfguLLguKvguLAKK+C4m+C4o+C4suC4iuC4tOC4lQor4Lib4Lij4Liy4LiTCivguJvguKPguLLguJPguLUKK+C4m+C4o+C4suC4lAor4Lib4Lij4Liy4LiU4LmA4Lib4Lij4Li14Lii4LinCivguJvguKPguLLguJTguYDguJvguKPguLfguYjguK3guIcKK+C4m+C4o+C4suC4leC4tOC4q+C4suC4o+C4ouC5jAor4Lib4Lij4Liy4LiX4Li44LiB4Lij4LiyCivguJvguKPguLLguJkKK+C4m+C4o+C4suC4meC4tQor4Lib4Lij4Liy4LiZ4Li14LiV4Li14LmA4Lit4Liy4LmA4Lij4Li34LitCivguJvguKPguLLguJnguLXguJvguKPguLLguKjguKPguLHguKIKK+C4m+C4o+C4suC4mgor4Lib4Lij4Liy4Lia4LiU4Liy4Lig4Li04LmA4Lip4LiBCivguJvguKPguLLguJrguJvguKPguLLguKEKK+C4m+C4o+C4suC4m+C4leC5jAor4Lib4Lij4Liy4Lig4LieCivguJvguKPguLLguKEKK+C4m+C4o+C4suC4oeC4suC4qgor4Lib4Lij4Liy4LmC4Lih4LiKCivguJvguKPguLLguYLguKHguJfguKLguYwKK+C4m+C4o+C4suC4ogor4Lib4Lij4Liy4Lij4LiW4LiZ4LiyCivguJvguKPguLLguKPguKAKK+C4m+C4o+C4suC4o+C4oeC4oOC5jAor4Lib4Lij4Liy4LioCivguJvguKPguLLguKjguIjguLLguIEKK+C4m+C4o+C4suC4qOC4o+C4seC4ogor4Lib4Lij4Liy4Lip4LiT4Li1CivguJvguKPguLLguKnguLLguJMKK+C4m+C4o+C4suC4quC4seC4ogor4Lib4Lij4Liy4Liq4Liy4LiXCivguJvguKPguLMKK+C4m+C4o+C4tC0KK+C4m+C4o+C4tOC4gQor4Lib4Lij4Li04LiB4LiC4Liy4LijCivguJvguKPguLTguIHguKPguKPguKEKK+C4m+C4o+C4tOC4geC4seC4mwor4Lib4Lij4Li04LiB4Lix4Lil4LibLQor4Lib4Lij4Li04LiB4Lix4Lil4Lib4Lih4Liy4Lil4LiyLQor4Lib4Lij4Li04LiC4LiyCivguJvguKPguLTguITguJPguKvguYwKK+C4m+C4o+C4tOC4iOC4suC4hAor4Lib4Lij4Li04LiI4Liy4Lij4Li04LiB4LiyCivguJvguKPguLTguYDguInguJcKK+C4m+C4o+C4tOC4iuC4mQor4Lib4Lij4Li04LiL4Li24LihCivguJvguKPguLTguI3guI3guLIKK+C4m+C4o+C4tOC4jeC4jeC4suC4muC4seC4leC4owor4Lib4Lij4Li04LiT4Liy4LihCivguJvguKPguLTguJPguLLguKHguLHguITguITguLQKK+C4m+C4o+C4tOC4k+C4suC4ouC4gQor4Lib4Lij4Li04LiVCivguJvguKPguLTguJUtCivguJvguKPguLTguJXguJXguLAKK+C4m+C4o+C4tOC4leC5guC4leC4l+C4gQor4Lib4Lij4Li04LiV4LiX4Lin4Li14LibCivguJvguKPguLTguJXguKLguLLguIQKK+C4m+C4o+C4tOC4leC4owor4Lib4Lij4Li04LiX4Lij4Lij4Lio4LiZ4LmMCivguJvguKPguLTguJfguLHguKLguKvguLHguITguITguLUKK+C4m+C4o+C4tOC4l+C4seC4qOC4meC5jAor4Lib4Lij4Li04LmA4LiX4LieCivguJvguKPguLTguYDguJfguJ7guJnguYwKK+C4m+C4o+C4tOC5gOC4l+C4p+C4meC4sAor4Lib4Lij4Li04LmA4LiX4Lin4LiwCivguJvguKPguLTguJnguLTguJ7guJ7guLLguJkKK+C4m+C4o+C4tOC4mgor4Lib4Lij4Li04Lib4Lix4LiZ4LiW4LmMCivguJvguKPguLTguJvguLLguIEKK+C4m+C4o+C4tOC4nuC4meC4mOC5jAor4Lib4Lij4Li04Lie4Lix4LiV4LijCivguJvguKPguLTguJ7guLHguJnguJjguYwKK+C4m+C4o+C4tOC4nuC4suC4iuC4gQor4Lib4Lij4Li04Lig4Lix4LiT4LiR4LmMCivguJvguKPguLTguKDguLLguKkKK+C4m+C4o+C4tOC4oOC4suC4qeC4k+C5jAor4Lib4Lij4Li04Lig4Li44LiN4LiK4LmMCivguJvguKPguLTguKDguLnguKHguLQKK+C4m+C4o+C4tOC5guC4oOC4hAor4Lib4Lij4Li04LmI4LihCivguJvguKPguLTguKHguJPguJHguKUKK+C4m+C4o+C4tOC4oeC4seC4lwor4Lib4Lij4Li04Lih4Liy4LiTCivguJvguKPguLTguKHguLLguJXguKMKK+C4m+C4o+C4tOC4oi0KK+C4m+C4o+C4tOC4ouC4o+C4kwor4Lib4Lij4Li04Lii4Lin4Liy4LiXCivguJvguKPguLTguKLguKfguLLguJfguLUKK+C4m+C4o+C4tOC4ouC4seC4leC4tAor4Lib4Lij4Li04Lii4Lix4LiV4Li04LiY4Lij4Lij4LihCivguJvguKPguLTguKLguLLguJnguLjguIoKK+C4m+C4o+C4tOC4ouC4suC4ogor4Lib4Lij4Li04LmA4Lii4LioCivguJvguKPguLTguYLguKLguKrguLLguJkKK+C4m+C4o+C4tOC4p+C4o+C4o+C4lQor4Lib4Lij4Li04Lin4Lij4Lij4LiVLQor4Lib4Lij4Li04Lin4Lij4Lij4LiV4LiB4Lij4Lij4LihCivguJvguKPguLTguKfguLHguJXguKMKK+C4m+C4o+C4tOC4p+C4suC4owor4Lib4Lij4Li04Lin4Liy4LiqCivguJvguKPguLTguKfguLTguJXguIEKK+C4m+C4o+C4tOC5gOC4p+C4kwor4Lib4Lij4Li04Lio4LiZ4LiyCivguJvguKPguLTguKjguJnguLLguJjguKPguKPguKEKK+C4m+C4o+C4tOC4qOC4meC4suC4peC4suC4ouC5geC4l+C4hwor4Lib4Lij4Li04Lio4LiZ4Liy4Lit4Lix4LiB4Lip4Lij4LmE4LiC4Lin4LmJCivguJvguKPguLTguKnguIHguLLguKMKK+C4m+C4o+C4tOC4qeC4seC4lwor4Lib4Lij4Li04Liq4Lix4LiN4LiN4Li5CivguJvguKPguLTguKrguLjguJfguJjguLQKK+C4m+C4o+C4tOC4q+C4suC4mQor4Lib4Lij4Li04Lir4Liy4LijCivguJvguKPguLTguKvguLLguKoKK+C4m+C4o+C4teC5iAor4Lib4Lij4Li14LiK4LiN4LiyCivguJvguKPguLXguIrguLIKK+C4m+C4o+C4teC5iuC4lAor4Lib4Lij4Li14LiU4LiyCivguJvguKPguLXguJTguLQKK+C4m+C4o+C4teC4lOC4tOC5jAor4Lib4Lij4Li14LiU4Li1CivguJvguKPguLXguJXguLQKK+C4m+C4o+C4teC4ogor4Lib4Lij4Li14Lii4LiyCivguJvguKPguLbguIEKK+C4m+C4o+C4tuC4geC4qeC4sgor4Lib4Lij4Li24LiHCivguJvguKPguLfguK0KK+C4m+C4o+C4t+C5i+C4rQor4Lib4Lij4Li4CivguJvguKPguLjguIcKK+C4m+C4o+C4uOC5guC4m+C4o+C5iOC4hwor4Lib4Lij4Li5CivguJvguKPguLnguYsKK+C4m+C4o+C4ueC4lAor4Lib4Lij4Li54LiU4Lib4Lij4Liy4LiUCivguJvguKPguLnguYrguJTguJvguKPguYrguLLguJQKK+C4m+C4o+C4ueC5iuC4nwor4Lib4Lik4LiH4LiE4LieCivguJvguKTguIjguInguLIKK+C4m+C4pOC4iOC4ieC4suC4hOC4uOC4k+C4qOC4seC4nuC4l+C5jAor4Lib4Lik4LiI4LiJ4Liy4Liq4Lij4Lij4Lie4LiZ4Liy4LihCivguJvguKTguKnguI7guYwKK+C4m+C4pOC4qeC4juC4suC4h+C4hOC5jAor4Lib4Lik4Lip4LiQCivguJvguKXguIEKK+C4m+C4peC4geC5gOC4m+C4peC4teC5ieC4ogor4Lib4Lil4LiHCivguJvguKXguYjguIcKK+C4m+C4peC4h+C4geC4o+C4o+C4oeC4kOC4suC4mQor4Lib4Lil4LiH4LmD4LiICivguJvguKXguIfguIrguYnguLLguIcKK+C4m+C4peC4h+C4iuC4teC4p+C4tOC4lQor4Lib4Lil4LiH4LiV4LiBCivguJvguKXguIfguJjguKPguKPguKHguKrguLHguIfguYDguKfguIoKK+C4m+C4peC4h+C4mOC4uOC4o+C4sAor4Lib4Lil4LiH4Lia4Lij4Li04LiC4Liy4LijCivguJvguKXguIfguJzguKEKK+C4m+C4peC4h+C4qOC4ngor4Lib4Lil4LiH4Liq4Lix4LiH4LiC4Liy4LijCivguJvguKXguIfguKrguLHguIfguYDguKfguIoKK+C4m+C4peC4h+C4reC4meC4tOC4iOC4iOC4seC4hwor4Lib4Lil4LiH4Lit4Liy4Lia4Lix4LiV4Li0CivguJvguKXguIfguK3guLLguKLguLjguKrguLHguIfguILguLLguKMKK+C4m+C4peC4lAor4Lib4Lil4LiU4LmA4LiB4Lip4Li14Lii4LiTCivguJvguKXguJTguYDguIHguKnguLXguKLguJPguK3guLLguKLguLgKK+C4m+C4peC4lOC4l+C4uOC4geC4guC5jAor4Lib4Lil4LiU4Lib4Lil4LiHCivguJvguKXguJTguJvguKXguYjguK3guKIKK+C4m+C4peC4lOC5gOC4m+C4peC4t+C5ieC4reC4hwor4Lib4Lil4LiU4Lij4Liw4Lin4Liy4LiHCivguJvguKXguJTguKvguJnguLXguYkKK+C4m+C4peC4lOC4reC4reC4gQor4Lib4Lil4LiU4Lit4Liy4Lin4Li44LiYCivguJvguKXguJTguYHguK3guIEKK+C4m+C4peC5ieC4mQor4Lib4Lil4LmJ4LiZ4LiX4Lij4Lix4Lie4Lii4LmMCivguJvguKXguKfguIEKK+C4m+C4peC4p+C4seC4h+C4hC0KK+C4m+C4peC4reC4gQor4Lib4Lil4Lit4LiB4LiB4Lij4Liw4Liq4Li44LiZCivguJvguKXguK3guIHguITguK0KK+C4m+C4peC4reC4geC4oeC4teC4lAor4Lib4Lil4Lit4LiB4Lih4Li34LitCivguJvguKXguYjguK3guIcKK+C4m+C4peC5ieC4reC4hwor4Lib4Lil4LmJ4Lit4LiH4LiC4LiZCivguJvguKXguYnguK3guIfguInguJnguKfguJkKK+C4m+C4peC5ieC4reC4h+C5hOC4ieC4mQor4Lib4Lil4LmJ4Lit4LiH4LiX4Lit4LiHCivguJvguKXguYnguK3guIfguK3guYnguK3guKIKK+C4m+C4peC4reC4lAor4Lib4Lil4Lit4LiU4LiX4Lir4Liy4LijCivguJvguKXguK3guJTguYLguJvguKPguYjguIcKK+C4m+C4peC4reC4lOC4oOC4seC4ogor4Lib4Lil4LmJ4Lit4LiZCivguJvguKXguK3guJoKK+C4m+C4peC4reC4muC4guC4p+C4seC4jQor4Lib4Lil4Lit4Lia4LmC4Lii4LiZCivguJvguKXguK3guKEKK+C4m+C4peC4reC4oeC4m+C4mQor4Lib4Lil4Lit4Lih4LmB4Lib4Lil4LiHCivguJvguKXguYjguK3guKIKK+C4m+C4peC5iOC4reC4ouC5gOC4geC4suC4sAor4Lib4Lil4LmI4Lit4Lii4LmB4LiB4LmICivguJvguKXguYjguK3guKLguYTguIHguYgKK+C4m+C4peC5iOC4reC4ouC4guC4reC4hwor4Lib4Lil4LmI4Lit4Lii4LmD4LiICivguJvguKXguYjguK3guKLguJXguLHguKcKK+C4m+C4peC5iOC4reC4ouC4leC4seC4p+C4m+C4peC5iOC4reC4ouC5g+C4iAor4Lib4Lil4LmI4Lit4Lii4LiZ4LiB4Lib4Lil4LmI4Lit4Lii4LiB4LiyCivguJvguKXguYjguK3guKLguYDguJnguLfguYnguK3guJvguKXguYjguK3guKLguJXguLHguKcKK+C4m+C4peC5iOC4reC4ouC4m+C4peC4sOC4peC4sOC5gOC4peC4ogor4Lib4Lil4LmI4Lit4Lii4Lib4Lil4Liy4Lil4LiH4LiZ4LmJ4LizCivguJvguKXguYjguK3guKLguJvguKXguLTguIcKK+C4m+C4peC5iOC4reC4ouC4oeC4t+C4rQor4Lib4Lil4LmI4Lit4Lii4LmA4Liq4Li34Lit4LmA4LiC4LmJ4Liy4Lib4LmI4LiyCivguJvguKXguLAKK+C4m+C4peC4seC4gQor4Lib4Lil4Lix4LmK4LiBCivguJvguKXguLHguYrguIHguYTguJ8KK+C4m+C4peC4seC4hwor4Lib4Lil4Lix4LmI4LiHCivguJvguKXguLHguJQKK+C4m+C4peC4seC4lOC4guC4tOC4gQor4Lib4Lil4LiyCivguJvguKXguLLguIEKK+C4m+C4peC4suC4geC4o+C4tOC4oQor4Lib4Lil4Liy4LmA4LiB4Lil4Li34LitCivguJvguKXguLLguILguYnguK3guIfguYDguJTguLXguKLguKfguIHguLHguJkKK+C4m+C4peC4suC5gOC4hOC5h+C4oQor4Lib4Lil4Liy4LmA4LiH4Li04LiZ4Lib4Lil4Liy4LiX4Lit4LiHCivguJvguKXguLLguIjguYjguK3guKEKK+C4m+C4peC4suC4iOC4teC4mQor4Lib4Lil4Liy4LmA4LiI4LmI4LiyCivguJvguKXguLLguIrguLIKK+C4m+C4peC4suC4lOC4suC4pwor4Lib4Lil4Liy4LmB4LiU4LiBCivguJvguKXguLLguYHguJTguIcKK+C4m+C4peC4suC4lQor4Lib4Lil4Liy4LiV4LiB4LiZ4LmJ4Liz4LiV4Lix4Lin4LmC4LiVCivguJvguKXguLLguJXguLDguYDguJ7guLXguKLguJkKK+C4m+C4peC4suC4leC4tOC4lOC4q+C4peC4seC4h+C5geC4qwor4Lib4Lil4Liy4LiV4Li54LmJCivguJvguKXguLLguJfguK3guIcKK+C4m+C4peC4suC5geC4meC4oQor4Lib4Lil4Liy4LiaCivguJvguKXguLLguJrguJvguKXguLfguYnguKEKK+C4m+C4peC4suC4muC4tOC4mQor4Lib4Lil4Liy4Lid4LiyCivguJvguKXguLLguKHguYnguLMKK+C4m+C4peC4suC4ogor4Lib4Lil4Liy4Lii4LiC4LmJ4Liy4LinCivguJvguKXguLLguKLguJXguLXguJkKK+C4m+C4peC4suC4ouC4l+C4suC4hwor4Lib4Lil4Liy4Lii4LiZ4Liy4LiB4Liy4LijCivguJvguKXguLLguKLguJnguYnguLMKK+C4m+C4peC4suC4ouC4oeC4t+C4rQor4Lib4Lil4Liy4Lii4Lit4LmJ4Lit4Lib4Lil4Liy4Lii4LmB4LiC4LihCivguJvguKXguLLguKPguYnguLIKK+C4m+C4peC4suC5guC4peC4oeC4sgor4Lib4Lil4Liy4Lin4Liy4LisCivguJvguKXguLLguKrguYDguJXguK3guKPguYwKK+C4m+C4peC4suC4quC4meC4suC4geC4suC4owor4Lib4Lil4Liy4Liq4LmJ4LihCivguJvguKXguLLguKvguJnguYnguLLguJTguLTguJkKK+C4m+C4peC4suC4q+C4oeC4reC4leC4suC4ouC5gOC4nuC4o+C4suC4sOC4m+C4suC4gQor4Lib4Lil4Liy4Lir4Lih4Li24LiBCivguJvguKXguLLguYDguKvguYfguJQKK+C4m+C4peC4suC5g+C4q+C4jeC5iOC4geC4tOC4meC4m+C4peC4suC5gOC4peC5h+C4gQor4Lib4Lil4Liy4LmE4Lir4Lil4LmA4Lic4Li34Lit4LiBCivguJvguKXguYnguLMKK+C4m+C4peC5ieC4s+C4m+C4peC4uOC4gQor4Lib4Lil4LmJ4Liz4Lic4Li14Lil4Li44LiB4Lib4Lil4Li44LiB4Lic4Li14LiZ4Lix4LmI4LiHCivguJvguKXguLTguIcKK+C4m+C4peC4tOC4h+C4l+C4sOC5gOC4pQor4Lib4Lil4Li04LiUCivguJvguKXguLTguYnguJkKK+C4m+C4peC4tOC5ieC4meC4m+C4peC4reC4gQor4Lib4Lil4Li04LmJ4LiZ4Lib4Lil4LmJ4Lit4LiZCivguJvguKXguLTguYLguJ7guJgKK+C4m+C4peC4tOC4oQor4Lib4Lil4Li04LmI4LihCivguJvguKXguLTguKcKK+C4m+C4peC4tQor4Lib4Lil4Li14LiBCivguJvguKXguLXguIHguJXguLHguKcKK+C4m+C4peC4teC4geC4ouC5iOC4reC4ogor4Lib4Lil4Li14LiB4LmA4Lin4Lil4LiyCivguJvguKXguLXguYHguILguYnguIcKK+C4m+C4peC4t+C5ieC4oQor4Lib4Lil4Li44LiBCivguJvguKXguLjguIHguYPguIgKK+C4m+C4peC4uOC4geC4leC4seC4pwor4Lib4Lil4Li44LiB4Lib4Lil4LmJ4LizCivguJvguKXguLjguIHguJvguLHguYjguJkKK+C4m+C4peC4uOC4geC4nOC4tQor4Lib4Lil4Li44LiB4Lie4Lij4LiwCivguJvguKXguLjguIHguKPguLDguJTguKEKK+C4m+C4peC4uOC4geC5gOC4quC4gQor4Lib4Lil4Li54LiBCivguJvguKXguLnguIHguJ3guLHguIcKK+C4m+C4peC4ueC4geC4neC4tQor4Lib4Lil4Li54LiB4LmA4Lij4Li34Lit4LiZ4LiE4Lij4LmI4Lit4Lih4LiV4LitCivguJvguKXguLnguIHguYDguKPguLfguK3guJnguJXguLLguKHguYPguIjguJzguLnguYnguK3guKLguLnguYgKK+C4m+C4peC4ueC4geC5gOC4o+C4t+C4reC4meC4nuC4reC4leC4seC4pyDguKvguKfguLXguKvguLHguKfguJ7guK3guYDguIHguKXguYnguLIKK+C4m+C4p+C4geC5gOC4m+C4teC4ouC4gQor4Lib4Lin4LiHCivguJvguYjguKfguIcKK+C4m+C4p+C4lAor4Lib4Lin4LiU4LiW4LmI4Lin4LiHCivguJvguKfguJTguJfguYnguK3guIfguJfguLjguYjguIcKK+C4m+C4p+C4lOC4l+C5ieC4reC4h+C5gOC4muC4sgor4Lib4Lin4LiU4LiX4LmJ4Lit4LiH4LmA4Lii4Li14LmI4Lii4LinCivguJvguKfguJTguKHguKfguJkKK+C4m+C4p+C4lOC4o+C5ieC4suC4pwor4Lib4Lin4LiU4LmA4Lio4Li14Lii4Lij4LmA4Lin4Li14Lii4LiZ4LmA4LiB4Lil4LmJ4LiyCivguJvguKfguJTguYHguKrguJrguJvguKfguJTguKPguYnguK3guJkKK+C4m+C5iOC4p+C4mQor4Lib4LmJ4Lin4LiZCivguJvguYjguKfguJnguJvguLHguYjguJkKK+C4m+C5ieC4p+C4meC5gOC4m+C4teC5ieC4ouC4mQor4Lib4LmI4Lin4LiiCivguJvguYjguKfguKLguIHguKXguYjguLLguKcKK+C4m+C5iOC4p+C4ouC4geC4suC4owor4Lib4Lin4Lix4LiV4LiZLQor4Lib4Lin4Lix4LiV4LiZ4LmMCivguJvguKfguLHguJXguJnguLLguIHguLLguKMKK+C4m+C4p+C4suC4o+C4k+C4sgor4Lib4Lin4Liy4LilCivguJvguKfguLLguKoKK+C4m+C4p+C4suC4rAor4Lib4Lin4Li04LiKCivguJvguKfguLTguJXguKMKK+C4m+C4p+C4tOC4mAor4Lib4Lin4Li04LmA4Lin4LiBCivguJvguKfguLXguJMKK+C4m+C4p+C4uOC4leC4tAor4Lib4LmA4Lin4LiT4Li1CivguJvguYDguKfguKoKK+C4m+C5gOC4p+C4quC4meC5jAor4Lib4Lio4Li4CivguJvguKrguJ4KK+C4m+C4quC4seC4meC4mS0KK+C4m+C4quC4seC4meC4meC4sAor4Lib4Liq4Lix4LiZ4LiZ4Liy4LiB4Liy4LijCivguJvguKrguLHguKLguKstCivguJvguKrguLHguKLguKvguLAKK+C4m+C4quC4seC4ouC4q+C4suC4geC4suC4owor4Lib4Liq4Lix4Lii4Lir4Liy4Lin4Lir4Liy4LijCivguJvguKrguLLguJcKK+C4m+C4quC4suC4mQor4Lib4Liq4Liy4Liq4LiZ4LmMCivguJvguKrguLgKK+C4m+C4quC4uOC4lQor4Lib4Liq4Li54LiV4Li0CivguJvguKvguLHguIfguKoKK+C4m+C4q+C4seC4h+C4quC4mQor4Lib4Lir4Liy4LiZCivguJvguKvguLLguKMKK+C4m+C4q+C4suC4qgor4Lib4LitCivguJvguYnguK0KK+C4m+C5i+C4rQor4Lib4Lit4LiBCivguJvguK3guIHguIHguKXguYnguKfguKLguYDguILguYnguLLguJvguLLguIEKK+C4m+C4reC4geC4peC4reC4gQor4Lib4Lit4LiHCivguJvguYjguK3guIcKK+C4m+C5iOC4reC4h+C5hgor4Lib4LmJ4Lit4LiHCivguJvguYnguK3guIfguIHguLHguJkKK+C4m+C5iOC4reC4h+C4o+C5iOC4sgor4Lib4Lit4LiUCivguJvguK3guJTguIrguLfguYnguJkKK+C4m+C4reC4lOC4muC4p+C4oQor4Lib4Lit4LiU4LmB4Lib4LiUCivguJvguK3guJTguKXguK3guKIKK+C4m+C4reC4lOC5gOC4q+C4peC5h+C4gQor4Lib4Lit4LiZCivguJvguK3guJnguYYKK+C4m+C5ieC4reC4mQor4Lib4Lit4LiZ4LiU4LmMCivguJvguK3guYDguJnguLLguLAKK+C4m+C4reC4mgor4Lib4LmJ4Lit4LmB4Lib4LmJCivguJvguK3guKEKK+C4m+C5ieC4reC4oQor4Lib4LmJ4Lit4Lih4LmGCivguJvguYvguK3guKEKK+C4m+C4reC4oeC4guC4suC4hwor4Lib4Lit4Lih4LiC4LmI4Liy4LiHCivguJvguYnguK3guKHguJrguLHguIfguITguLHguJrguIHguLLguKMKK+C4m+C4reC4ogor4Lib4LmJ4Lit4LiiCivguJvguYnguK3guKLguK0KK+C4m+C4reC5gOC4peC4teC4ouC4h+C4neC5ieC4suC4ogor4Lib4LiwCivguJvguLDguIHguJkKK+C4m+C4sOC4geC4seC4hwor4Lib4Liw4LiB4Liy4Lib4Liw4LiB4Lix4LiHCivguJvguLDguIHguLLguKPguLHguIcKK+C4m+C4sOC4geC4swor4Lib4Liw4LiC4Liy4LinCivguJvguLDguIfguLHguJrguJvguLDguIfguYjguK3guJkKK+C4m+C4sOC4leC4suC4m+C4sgor4Lib4Liw4LiV4Liy4Lij4Liw4LiB4Liy4Lir4Lil4LiyCivguJvguLDguJXguLTguJTguJvguLDguJXguYjguK0KK+C4m+C4sOC4leC4tOC4ouC4suC4mQor4Lib4Liw4LmA4LiV4LiwCivguJvguLDguJfguLAKK+C4m+C4sOC4l+C4sOC4m+C4sOC4l+C4seC4hwor4Lib4Liw4LiX4Li4CivguJvguLDguJfguLjguJkKK+C4m+C4sOC4muC4uOC4gQor4Lib4Liw4Lib4LiZCivguJvguLDguKHguIcKK+C4m+C4sOC4o+C4suC4peC4tQor4Lib4Liw4Lij4LizCivguJvguLDguKXguK3guKEKK+C4m+C4sOC5gOC4peC4hwor4Lib4Liw4LmB4Lil4LmI4LihCivguJvguLDguYHguKXguYjguKHguYYKK+C4m+C4sOC5guC4peC4hwor4Lib4Liw4Lin4Liw4Lir4Lil4LmI4LizCivguJvguLDguKfguLDguKvguKXguLTguYjguKEKK+C4m+C4sOC4p+C5iOC4sgor4Lib4Liw4LmA4Liq4Lir4Lij4Lix4LiZ4Lit4Liy4LiB4LiHCivguJvguLDguKvguIfguLHguJoKK+C4m+C4sOC4q+C4h+C4seC4muC5hgor4Lib4Liw4Lir4LiH4Lix4Lia4Lib4Liw4LiH4LmI4Lit4LiZCivguJvguLDguKvguJnguLHguJkKK+C4m+C4sOC4q+C4oeC4seC4meC4reC4suC4q+C4ouC4tQor4Lib4Liw4Lir4Lil4Li04LmI4LihCivguJvguLDguKvguLHguIcKK+C4m+C4sOC5gOC4q+C4peC4suC4sAor4Lib4Liw4LmA4Lir4Lil4Liy4Liw4Lib4Liw4LmB4Lir4Lil4LiwCivguJvguLHguIEKK+C4m+C4seC4geC4gi0KK+C4m+C4seC4geC4guC5jAor4Lib4Lix4LiB4LiC4LiE4LiT4LiZ4LiyCivguJvguLHguIHguILguJ7guLTguKzguLLguKMKK+C4m+C4seC4geC4guC4seC4meC4lOC4owor4Lib4Lix4LiB4LmD4LiICivguJvguLHguIHguYDguJvguYnguLIKK+C4m+C4seC4geC4qS0KK+C4m+C4seC4geC4qeC5jAor4Lib4Lix4LiB4Lip4LiB4Lip4Lix4LiiCivguJvguLHguIHguKnguITguJPguJnguLIKK+C4m+C4seC4geC4qeC4hOC4oQor4Lib4Lix4LiB4Lip4LiY4LijCivguJvguLHguIHguKnguYDguKDguJcKK+C4m+C4seC4geC4qeC4p+C4suC4q+C4mQor4Lib4Lix4LiB4Lip4LiyCivguJvguLHguIHguKnguLLguJnguJTguKMKK+C4m+C4seC4geC4qeC4suC4p+C4quC4suC4mQor4Lib4Lix4LiB4Lip4Liy4Liq4Lin4Lij4Lij4LiE4LmMCivguJvguLHguIHguKnguLTguJkKK+C4m+C4seC4geC4qeC4tQor4Lib4Lix4LiB4Lir4Lil4Lix4LiBCivguJvguLHguITguKvguLAKK+C4m+C4seC4hwor4Lib4Lix4LmL4LiHCivguJvguLHguIfguKrguLjguYwKK+C4m+C4seC4h+C4quC4uOC4geC4uOC4pQor4Lib4Lix4LiI4LiI4Lix4LiV4LiV4LiwCivguJvguLHguIjguIjguLHguJXguJbguKPguJPguYwKK+C4m+C4seC4iOC4iOC4seC4meC4lS0KK+C4m+C4seC4iOC4iOC4seC4meC4leC5jAor4Lib4Lix4LiI4LiI4Lix4LiZ4LiV4LiE4Liy4LihCivguJvguLHguIjguIjguLHguJnguJXguIrguJnguJrguJcKK+C4m+C4seC4iOC4iOC4seC4meC4leC4m+C4o+C4sOC5gOC4l+C4qAor4Lib4Lix4LiI4LiI4Lix4LiiCivguJvguLHguIjguIjguLLguKHguLTguJXguKMKK+C4m+C4seC4iOC4iOC4uOC4hOC4oeC4meC5jAor4Lib4Lix4LiI4LiI4Li44LiX4LiY4Lij4LiT4LmMCivguJvguLHguIjguIjguLjguJrguLHguJkKK+C4m+C4seC4iOC4iOC4uOC4muC4seC4meC4l+C4seC4meC4lOC5iOC4p+C4mQor4Lib4Lix4LiI4LiI4Li44LiqLQor4Lib4Lix4LiI4LiI4Li44Liq4LiB4Liy4LilCivguJvguLHguIjguIjguLjguKrguKHguLHguKIKK+C4m+C4seC4iOC4iOC4ueC4qgor4Lib4Lix4LiI4LiI4Li54Lir4LiwCivguJvguLHguIjguYDguIjguIEKK+C4m+C4seC4iOC5gOC4iOC4gS0KK+C4m+C4seC4iOC5gOC4iOC4geC4muC4uOC4hOC4hOC4pQor4Lib4Lix4LiI4LmA4LiI4LiB4Lie4Li44LiX4LiY4LiwCivguJvguLHguIjguYDguIjguIHguYLguJ7guJjguLQKK+C4m+C4seC4iOC5gOC4iOC4geC4quC4oeC4suC4l+C4suC4mQor4Lib4Lix4LiI4LmC4LiI4Lib4LiB4Liy4Lij4LiB4Li04LiICivguJvguLHguIjguYLguIjguKrguIHguLLguKUKK+C4m+C4seC4iOC4ieC4sgor4Lib4Lix4LiI4LiJ4Liy4Lig4Lix4LiVCivguJvguLHguIjguInguLLguKrguKHguJPguLAKK+C4m+C4seC4iOC4ieC4tOC4oQor4Lib4Lix4LiI4LiJ4Li04LihLQor4Lib4Lix4LiI4LiJ4Li04Lih4LiK4LiZCivguJvguLHguIjguInguLTguKHguKDguLLguIQKK+C4m+C4seC4iOC4ieC4tOC4oeC4ouC4suC4oQor4Lib4Lix4LiI4LiJ4Li04Lih4Lil4Li04LiC4Li04LiVCivguJvguLHguIjguInguLTguKHguKfguLHguKIKK+C4m+C4seC4iOC4ieC4tOC4oeC4p+C4suC4iOC4sgor4Lib4Lix4LiI4LiW4Lij4LiT4LmMCivguJvguLHguIjguJnguLbguIEKK+C4m+C4seC4iOC4ouC4suC4geC4suC4owor4Lib4Lix4LiI4LmA4Lin4LiB4LiC4LiT4LmMCivguJvguLHguIrguIrguKMKK+C4m+C4seC4iuC4iuC4uOC4mQor4Lib4Lix4LiN4LiILQor4Lib4Lix4LiN4LiI4LiBCivguJvguLHguI3guIjguJnguJfguLUKK+C4m+C4seC4jeC4iOC4oS0KK+C4m+C4seC4jeC4iOC4oeC4tQor4Lib4Lix4LiN4LiI4Lih4Li14LiU4Li04LiW4Li1CivguJvguLHguI3guIjguKfguLHguITguITguLXguKLguYwKK+C4m+C4seC4jeC4iOC4p+C4teC4quC4leC4tAor4Lib4Lix4LiN4LiI4Liq4Liy4LiC4LiyCivguJvguLHguI3guI3guLHguJXguLQKK+C4m+C4seC4jeC4jeC4sgor4Lib4Lix4LiN4LiN4Liy4LmB4LiE4LmI4Lir4Liy4LiH4Lit4Li24LmI4LiHCivguJvguLHguI3guI3guLLguIrguJkKK+C4m+C4seC4jeC4jeC4suC4qi0KK+C4m+C4seC4jeC4jeC4suC4reC5iOC4reC4mQor4Lib4Lix4LiN4Lir4LiyCivguJvguLHguI3guKvguLLguYLguKXguIHguYHguJXguIEKK+C4m+C4seC4jwor4Lib4Lix4LiP4LiZ4LiwCivguJvguLHguJDguKLguLLguKfguLHguJUKK+C4m+C4seC4k+C4keC4o+C4q+C4seC4leC4luC4tQor4Lib4Lix4LiT4LiT4LiwCivguJvguLHguJPguJPguLLguKoKK+C4m+C4seC4k+C4k+C4suC4quC4geC5jAor4Lib4Lix4LiT4Lij4LiqLQor4Lib4Lix4LiT4Lij4Liq4LihLQor4Lib4Lix4LiT4Lij4Liq4Lih4Liq4Li44Lij4LiX4Li04LiZCivguJvguLHguJPguKPguKrguLUKK+C4m+C4seC4k+C4o+C4quC4teC4lOC4tOC4luC4tQor4Lib4Lix4LiT4Lir4Li0CivguJvguLHguJQKK+C4m+C4seC4lOC5hgor4Lib4Lix4LiU4LmA4LiB4Lil4LmJ4LiyCivguJvguLHguJTguILguLIKK+C4m+C4seC4lOC5geC4guC5ieC4h+C4m+C4seC4lOC4guC4sgor4Lib4Lix4LiU4LiV4Lil4Lit4LiUCivguJvguLHguJTguYTguJbguKEKK+C4m+C4seC4lOC5gOC4m+C5iOC4sgor4Lib4Lix4LiU4Lij4Lix4LiH4LiE4Lin4Liy4LiZCivguJvguLHguJTguYDguKjguKkKK+C4m+C4seC4lOC4quC4p+C4sAor4Lib4Lix4LiV4LiE4Liy4LiUCivguJvguLHguJXguJXguLAKK+C4m+C4seC4leC4leC4suC4meC4teC4geC4sAor4Lib4Lix4LiV4LiV4Liy4LiZ4Li24LiBCivguJvguLHguJXguJXguLLguJnguLjguYLguKHguJfguJnguLIKK+C4m+C4seC4leC4leC4suC5gOC4p+C4teC4ogor4Lib4Lix4LiV4LiV4Li0CivguJvguLHguJXguJXguLTguIEKK+C4m+C4seC4leC4leC4tOC4l+C4suC4mQor4Lib4Lix4LiV4LiW4LijCivguJvguLHguJXguJbguLAKK+C4m+C4seC4leC4meC4tAor4Lib4Lix4LiV4LiZ4Li1CivguJvguLHguJXguKLguLHguKIKK+C4m+C4seC4leC4q+C4peC5iOC4sgor4Lib4Lix4LiW4Lie4Li1CivguJvguLHguJbguKfguLUKK+C4m+C4seC4l+C4oS0KK+C4m+C4seC4l+C4oeC5jAor4Lib4Lix4LiX4Lih4Lib4Liy4LiT4Li1CivguJvguLHguJfguKHguKPguLLguIQKK+C4m+C4seC4l+C4oeC4o+C4suC4igor4Lib4Lix4LiX4Lih4LiwCivguJvguLHguJfguKHguLLguKrguJnguYwKK+C4m+C4seC4mQor4Lib4Lix4LmI4LiZCivguJvguLHguYnguJkKK+C4m+C4seC5ieC4meC4iOC4seC5iOC4mQor4Lib4Lix4LmJ4LiZ4LiI4Li04LmJ4Lih4Lib4Lix4LmJ4LiZ4LmA4LiI4LmL4LitCivguJvguLHguJnguIjguLjguYDguKvguKPguYfguIgKK+C4m+C4seC5ieC4meC5gOC4iOC5i+C4rQor4Lib4Lix4LmI4LiZ4Lib4LmI4Lin4LiZCivguJvguLHguYnguJnguJvguLbguYjguIcKK+C4m+C4seC5iOC4meC5geC4m+C4sAor4Lib4Lix4LmI4LiZ4Lid4LmJ4Liy4LiiCivguJvguLHguYjguJnguYTguJ8KK+C4m+C4seC5ieC4meC4ouC4qAor4Lib4Lix4LmJ4LiZ4Lil4LihCivguJvguLHguYnguJnguKXguYjguLMKK+C4m+C4seC4meC4quC5iOC4p+C4mQor4Lib4Lix4LmJ4LiZ4Liq4Li04LiaCivguJvguLHguYnguJnguKrguLXguKvguJnguYnguLIKK+C4m+C4seC5ieC4meC4q+C4ouC4sgor4Lib4Lix4LmI4LiZ4Lir4Lix4LinCivguJvguLHguYnguJnguYDguKvguJnguYjguIcKK+C4m+C4seC4mgor4Lib4Lix4LmK4LiaCivguJvguLHguJvguJzguLLguKrguLAKK+C4m+C4seC4nuC4nuC4suC4iuC4meC4sAor4Lib4Lix4Lie4Lie4Liy4LiK4LiZ4Li14Lii4LiB4Lij4Lij4LihCivguJvguLHguJ7guKDguLLguKPguLAKK+C4m+C4seC5iuC4oeC4meC5ieC4s+C4oeC4seC4mQor4Lib4Lix4Lii4LiB4LiwCivguJvguLHguKLguIHguLIKK+C4m+C4seC4ouC4ouC4tOC4geC4sgor4Lib4Lix4LmI4LinCivguJvguLHguKfguYDguJvguLXguKIKK+C4m+C4seC5ieC4p+C5gOC4m+C4teC5ieC4ogor4Lib4Lix4Lio4LiI4Li04LihCivguJvguLHguKjguJXguLHguJkKK+C4m+C4seC4qOC4leC4uQor4Lib4Lix4Liq4Liq4Liy4Lin4LiwCivguJvguLHguKrguKrguLLguKrguLAKK+C4m+C4sgor4Lib4LmI4LiyCivguJvguYnguLIKK+C4m+C4suC4gQor4Lib4Liy4LiB4LiB4LiaCivguJvguLLguIHguIHguKPguLDguIjguLHguJoKK+C4m+C4suC4geC4geC4o+C4sOC4muC4sAor4Lib4Liy4LiB4LiB4Lij4Li04LinCivguJvguLLguIHguIHguKXguYnguLIKK+C4m+C4suC4geC4geC4p+C5ieC4suC4hwor4Lib4Liy4LiB4LiB4LiyCivguJvguLLguIHguIHguLLguKXguLnguIHguKXguLfguYjguJkKK+C4m+C4suC4geC4geC4suC4q+C4oeC4tuC4geC4i+C4tuC4oQor4Lib4Liy4LiB4LiB4Liy4Lir4Lih4Li24LiB4LmB4Lir4LmJ4LiHCivguJvguLLguIHguYTguIHguYgKK+C4m+C4suC4geC4guC4oQor4Lib4Liy4LiB4LiC4LitCivguJvguLLguIHguYHguILguYfguIcKK+C4m+C4suC4geC4hOC4oQor4Lib4Liy4LiB4LiE4Lit4LiBCivguJvguLLguIHguITguK3guYDguKPguLLguLDguKPguLLguKIKK+C4m+C4suC4geC4hOC4seC4mQor4Lib4Liy4LiB4LiE4LizCivguJvguLLguIHguITguLXguJoKK+C4m+C4suC4geC4iOC4reC4mgor4Lib4Liy4LiB4LiI4Liw4LiC4Liy4LiaCivguJvguLLguIHguIjguLHguJQKK+C4m+C4suC4geC4iOC4tOC5ieC4h+C4iOC4gQor4Lib4Liy4LiB4LiJ4Lil4Liy4LihCivguJvguLLguIHguIrguYnguLLguIcKK+C4m+C4suC4geC4i+C5iOC4reC4oQor4Lib4Liy4LiB4LiV4Lil4Liy4LiUCivguJvguLLguIHguJXguYjguK3guJvguLLguIEKK+C4m+C4suC4geC4leC4sOC4geC4o+C5ieC4rQor4Lib4Liy4LiB4LiV4Liw4LmE4LiB4LijCivguJvguLLguIHguJXguLDguILguLLguJoKK+C4m+C4suC4geC4leC4s+C5geC4ogor4Lib4Liy4LiB4LmB4LiV4LijCivguJvguLLguIHguYPguJXguYkKK+C4m+C4suC4geC4meC4gQor4Lib4Liy4LiB4LiZ4LiB4LiB4Lij4Liw4LiI4Lit4LiBCivguJvguLLguIHguJnguIHguYHguIHguYnguKcKK+C4m+C4suC4geC4meC5ieC4swor4Lib4Liy4LiB4Lia4Lit4LiZCivguJvguLLguIHguJrguLLguJXguKMKK+C4m+C4suC4geC5gOC4muC4sgor4Lib4Liy4LiB4LmB4Lia4LiwCivguJvguLLguIHguJvguKPguLLguKjguKPguLHguKLguYPguIjguYDguIrguLfguK3guJTguITguK0KK+C4m+C4suC4geC4m+C4peC4sgor4Lib4Liy4LiB4Lib4Lil4Liy4Lij4LmJ4LiyCivguJvguLLguIHguJvguKXguLTguIcKK+C4m+C4suC4geC5gOC4m+C5h+C4lAor4Lib4Liy4LiB4LmA4Lib4LmH4LiZ4LiK4Lix4LiB4Lii4LiZ4LiV4LmMCivguJvguLLguIHguYDguJvguKPguLLguLAKK+C4m+C4suC4geC5gOC4m+C4o+C4suC4sOC5gOC4o+C4suC4sOC4o+C4suC4ogor4Lib4Liy4LiB4LmA4Lib4Lil4LmI4LiyCivguJvguLLguIHguYDguJvguLXguKLguIEKK+C4m+C4suC4geC5gOC4m+C4teC4ouC4geC4m+C4suC4geC5geC4ieC4sAor4Lib4Liy4LiB4LmC4Lib4LmJ4LiHCivguJvguLLguIHguYTguJvguKXguYgKK+C4m+C4suC4geC4oeC4suC4gQor4Lib4Liy4LiB4LmE4Lih4LmJCivguJvguLLguIHguYTguKHguYjguKrguLTguYnguJnguIHguKXguLTguYjguJnguJnguYnguLPguJnguKEKK+C4m+C4suC4geC4o+C4suC4gQor4Lib4Liy4LiB4Lij4LmJ4Liy4LiiCivguJvguLLguIHguYDguKPguLfguK0KK+C4m+C4suC4geC4p+C5iOC4suC4leC4suC4guC4ouC4tOC4mgor4Lib4Liy4LiB4Lin4LmI4Liy4Lih4Li34Lit4LiW4Li24LiHCivguJvguLLguIHguKrguKfguYjguLLguIcKK+C4m+C4suC4geC4q+C4meC4seC4gQor4Lib4Liy4LiB4Lir4Lin4Liy4LiZCivguJvguLLguIHguKvguKfguLLguJnguIHguYnguJnguYDguJvguKPguLXguYnguKLguKcKK+C4m+C4suC4geC4q+C4reC4ouC4m+C4suC4geC4m+C4uQor4Lib4Liy4LiB4Lir4LmI4Liy4LiHCivguJvguLLguIHguYDguKvguKLguLXguYjguKLguKfguJvguLLguIHguIHguLIKK+C4m+C4suC4geC4reC5iOC4suC4pwor4Lib4LmI4Liy4LmB4LiE4Lij4LiwCivguJvguLLguIcKK+C4m+C5iOC4suC4hwor4Lib4LmJ4Liy4LiHCivguJvguYnguLLguIfguJvguYjguLIKK+C4m+C4suC4iOC4meC4sAor4Lib4Liy4LiI4Lij4Li14Lii4LmMCivguJvguLLguIjguLLguKPguKLguYwKK+C4m+C4suC4iOC4tOC4leC4leC4teC4ouC5jAor4Lib4Liy4LiI4Li14LiZCivguJvguYjguLLguIrguYnguLIKK+C4m+C5iOC4suC4iuC4suC4ouC5gOC4peC4mQor4Lib4Liy4LiP4Lil4Li0CivguJvguLLguI/guLTguJrguJcKK+C4m+C4suC4j+C4tOC4muC4uOC4hOC4peC4tOC4gQor4Lib4Liy4LiP4Li04LmC4Lig4LiECivguJvguLLguI/guLTguKvguLLguKPguLTguKLguYwKK+C4m+C4suC4kC0KK+C4m+C4suC4kOC4gQor4Lib4Liy4LiQ4LiB4LiW4LiyCivguJvguLLguJDguLAKK+C4m+C4suC4ky0KK+C4m+C4suC4k+C4gS0KK+C4m+C4suC4k+C4geC4iuC4suC4leC4tAor4Lib4Liy4LiT4LiX4Lix4LiT4LiR4LmMCivguJvguLLguJPguJnguLLguKgKK+C4m+C4suC4k+C4oOC4ueC4lQor4Lib4Liy4LiT4Lin4Li04LiZ4Liy4LioCivguJvguLLguJPguKrguLLguKMKK+C4m+C4suC4k+C4sAor4Lib4Liy4LiT4Liy4LiV4Li04Lia4Liy4LiVCivguJvguLLguJPguLQKK+C4m+C4suC4k+C4tOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lib4Liy4LiT4Li04LiU4LilCivguJvguLLguJPguLTguJjguKPguKPguKEKK+C4m+C4suC4k+C4tOC4oeC4uOC4geC4leC5jAor4Lib4Liy4LiT4Li04Lih4Li54LilCivguJvguLLguJPguLUKK+C4m+C4suC4lAor4Lib4LmI4Liy4LiU4LiH4LiU4Li04LiaCivguJvguLLguJTguKvguLLguKcKK+C4m+C5iOC4suC4lOC4tOC4mgor4Lib4LmI4Liy4LmB4LiU4LiHCivguJvguLLguJXguLTguYLguKHguIHguILguYwKK+C4m+C4suC4leC4tQor4Lib4Liy4LmA4LiV4LmK4LiwCivguJvguYjguLLguYDguJbguLfguYjguK3guJkKK+C4m+C4suC4lwor4Lib4Liy4LiX4LibCivguJvguLLguJfguYjguK3guIfguYLguIHguYsKK+C4m+C4suC4l+C4seC4h+C4geC4sgor4Lib4Liy4LiX4Liy4LiZCivguJvguYjguLLguJfguLbguJoKK+C4m+C4suC4l+C4uOC4geC4sgor4Lib4Liy4LiZCivguJvguYjguLLguJkKK+C4m+C5ieC4suC4mQor4Lib4Liy4LiZ4LiB4Lil4Liy4LiHCivguJvguYjguLLguJnguITguKEKK+C4m+C4suC4meC4ieC4sOC4meC4teC5iQor4Lib4Liy4LiZ4LiU4LiHCivguJvguLLguJnguJnguLXguYkKK+C4m+C5iOC4suC4meC4meC4teC5iQor4Lib4LmJ4Liy4LiZ4Lil4LihCivguJvguLLguJnguLAKK+C4m+C4suC4meC4tOC5gOC4ouC4mQor4Lib4Liy4LiZ4Li14LiiLQor4Lib4Liy4LiZ4Li14Lii4LiwCivguJvguLLguJnguLXguYLguKLguJfguIEKK+C4m+C5ieC4suC4mgor4Lib4LmK4Liy4LiaCivguJvguYjguLLguYDguJrguI3guIjguJ7guKPguKPguJMKK+C4m+C4suC4my0KK+C4m+C4suC4m+C4oeC4uOC4lQor4Lib4Liy4Lib4Lit4Lir4Lii4Li14Liq4Lix4LiH4LiG4Liy4LiV4LiyCivguJvguYjguLLguYLguJvguKPguYjguIcKK+C4m+C5iOC4suC4nOC4peC4seC4lOC5g+C4mgor4Lib4Liy4Lie4LiI4LiZ4LmMCivguJvguYjguLLguYHguJ7guLAKK+C4m+C4suC4oQor4Lib4Liy4Lih4Lib4Li24LiH4Lih4LiyCivguJvguLLguYLguKHguIHguILguYwKK+C4m+C5iOC4suC5hOC4oeC5ieC4nuC4uOC5iOC4oQor4Lib4LmI4Liy4LiiCivguJvguYnguLLguKIKK+C4m+C5ieC4suC4ouC4quC4tQor4Lib4Liy4Lii4Liy4LiqCivguJvguLLguKMtCivguJvguLLguKPguYzguYDguIHguJXguYwKK+C4m+C4suC4o+C4hOC4uQor4Lib4Liy4Lij4Lih4Li1CivguJvguLLguKPguYDguKHguKgKK+C4m+C4suC4o+C4qeC4k+C4tQor4Lib4LmI4Liy4Lij4Liw4LiZ4Liy4LihCivguJvguLLguKPguLLguIrguLTguIEKK+C4m+C4suC4o+C4tOC4ieC4seC4leC4owor4Lib4Liy4Lij4Li04LiK4Liy4LiVCivguJvguLLguKPguLjguJvguJnguLAKK+C4m+C4suC4pQor4Lib4Liy4Lil4LmM4LihCivguJvguYjguLLguKXguLDguYDguKHguLLguLAKK+C4m+C4suC4peC4tOC5hOC4peC4ouC4geC5jAor4Lib4Liy4Lil4Li1CivguJvguYjguLLguYDguKXguJkKK+C4m+C4suC4p+C5hgor4Lib4LmI4Liy4LinCivguJvguYrguLLguKcKK+C4m+C4suC4p+C4gQor4Lib4Liy4Lin4LiI4LiZ4LiwCivguJvguYjguLLguKfguJvguKPguLDguIHguLLguKgKK+C4m+C5iOC4suC4p+C4o+C5ieC4reC4hwor4Lib4Liy4Lin4Liy4LijCivguJvguLLguKnguLLguJMKK+C4m+C4suC4qgor4Lib4Liy4Liq4Liy4LiTCivguJvguLLguKrguLLguJfguLTguIHguLAKK+C4m+C5iOC4suC4quC4ueC4hwor4Lib4LmI4Liy4LmA4Liq4LmH4LiH4LmA4LiE4Lij4LmH4LiHCivguJvguYjguLLguYPguKoKK+C4m+C4suC4q+C4meC4seC4mQor4Lib4Liy4Lir4Li14LmICivguJvguLLguKvguLjguJMKK+C4m+C4suC4q+C4uOC5hOC4k+C4oi0KK+C4m+C4suC4q+C4uOC5hOC4k+C4ouC4muC4uOC4hOC4hOC4pQor4Lib4LizCivguJvguYnguLMKK+C4m+C5ieC4s+C5gOC4m+C5ieC4rQor4Lib4LmJ4Liz4LmA4Lib4LmL4LitCivguJvguYnguLPguYYg4LmA4Lib4LmL4Lit4LmGCivguJvguLTguIHguJnguLTguIEKK+C4m+C4tOC5ieC4hwor4Lib4Li04LiH4LiE4LilLQor4Lib4Li04LiH4LiE4Lil4Lir4Lix4LiV4LiW4Li1CivguJvguLTguIfguITguKXguLAKK+C4m+C4tOC5ieC4h+C4m+C4peC4suC4m+C4o+C4sOC4iuC4lOC5geC4oeC4pwor4Lib4Li04LiH4Lib4Lit4LiHCivguJvguLTguI7guIEKK+C4m+C4tOC4j+C4kOC4sAor4Lib4Li04LiQ4Li0CivguJvguLTguJPguJHguLAKK+C4m+C4tOC4lAor4Lib4Li04LiU4LiB4Lil4LmJ4Lit4LiHCivguJvguLTguJTguITguJTguLUKK+C4m+C4tOC4lOC4hOC4p+C4seC4meC5hOC4n+C5hOC4oeC5iOC4oeC4tOC4lAor4Lib4Li04LiU4LiJ4Liy4LiBCivguJvguLTguJTguJXguLLguKIKK+C4m+C4tOC4lOC5gOC4leC5iuC4suC4sAor4Lib4Li04LiU4LiX4Lit4LiH4Lir4Lil4Lix4LiH4Lie4Lij4LiwCivguJvguLTguJTguJrguLHguIcKK+C4m+C4tOC4lOC4muC4seC4jeC4iuC4tQor4Lib4Li04LiU4LmA4Lia4LiyCivguJvguLTguJTguJvguKPguLDguJXguLnguITguYnguLIKK+C4m+C4tOC4lOC4m+C4o+C4sOC4leC4ueC4leC4teC5geC4oeC4pwor4Lib4Li04LiU4Lib4Liy4LiBCivguJvguLTguJTguKrguLPguJnguKfguJkKK+C4m+C4tOC4lOC4q+C4meC4seC4gQor4Lib4Li04LiU4Lir4Li14Lia4LmE4Lih4LmI4Lil4LiHCivguJvguLTguJXguJXguLAKK+C4m+C4tOC4leC4sgor4Lib4Li04LiV4Liy4Lih4Lir4LiwCivguJvguLTguJXguLLguKHguKvguLHguKLguIHguLIKK+C4m+C4tOC4leC4suC4oeC4q+C4seC4ouC4ouC4tOC4geC4sgor4Lib4Li04LiV4Li4CivguJvguLTguJXguLjguIbguLLguJUKK+C4m+C4tOC4leC4uOC4iOC4ieC4sgor4Lib4Li04LiV4Li44Lig4Li54Lih4Li0CivguJvguLTguJXguLjguKUKK+C4m+C4tOC4leC4uOC4peC4sgor4Lib4Li04LiV4Li44Lil4Liy4LiZ4Li1CivguJvguLTguYLguJXguKPguYDguKXguLXguKLguKEKK+C4m+C4tOC5iOC4mQor4Lib4Li04LmI4LiZ4LmB4LiB4LmJ4LinCivguJvguLTguYjguJnguIvguYjguJkKK+C4m+C4tOC5iOC4meC4leC4rQor4Lib4Li04LmI4LiZ4LmC4LiVCivguJvguLTguJvguJzguKXguLUKK+C4m+C4tOC5iOC4oQor4Lib4Li04LmJ4LihCivguJvguLTguKItCivguJvguLTguKLguLHguIfguITguLgKK+C4m+C4tOC4peC4seC4meC4mOC4meC5jAor4Lib4Li04LmL4LinCivguJvguLTguKjguLLguIgKK+C4m+C4tOC4qOC4suC4iOC4muC4lOC4tQor4Lib4Li04Liq4Lix4LiHCivguJvguLTguYTguKoKK+C4m+C4tOC4q+C4gQor4Lib4Li04Lir4Lil4Lix4LmI4LiZCivguJvguLUKK+C4m+C4teC5iAor4Lib4Li14LmJCivguJvguLXguYsKK+C4m+C4teC4gQor4Lib4Li14LiB4LiB4Lil4LmJ4Liy4LiC4Liy4LmB4LiC4LmH4LiHCivguJvguLXguIHguIHguLIKK+C4m+C4teC4geC4hOC5ieC4suC4h+C4hOC4suC4pwor4Lib4Li14LiB4LiZ4LiBCivguJvguLXguIHguYTguKHguYkKK+C4m+C4teC4geC4peC4suC4ogor4Lib4Li14LiB4Lir4Lix4LiBCivguJvguLXguIHguLLguKPguKjguLbguIHguKnguLIKK+C4m+C4teC5iOC5geC4geC5ieC4pwor4Lib4Li14LiH4Lia4Lib4Lij4Liw4Lih4Liy4LiTCivguJvguLXguJDguIHguLAKK+C4m+C4teC4kOC4sAor4Lib4Li14LmK4LiUCivguJvguLXguJXguLQKK+C4m+C4teC4mQor4Lib4Li14LiZ4LmA4LiB4Lil4Li14Lii4LinCivguJvguLXguJoKK+C4m+C4teC5iuC4mgor4Lib4Li14Lib4LiP4Li04LiX4Li04LiZCivguJvguLXguYjguJ7guLLguJfguKLguYwKK+C4m+C4teC4oeC4sOC5guC4p+C5iQor4Lib4Li14Lio4Liy4LiICivguJvguLXguYHguKrguIcKK+C4m+C4teC4q+C4meC5ieC4suC4n+C5ieC4suC5g+C4q+C4oeC5iAor4Lib4Li14LisCivguJvguLXguKzguIEKK+C4m+C4teC4rOC4sgor4Lib4Li24LiBCivguJvguLbguIHguYHguJzguYjguJkKK+C4m+C4tuC4hwor4Lib4Li24LmI4LiHCivguJvguLbguYvguIcKK+C4m+C4tuC5iOC4h+C4iuC4sgor4Lib4Li24LiH4Lib4Lix4LiHCivguJvguLbguYnguJQKK+C4m+C4tuC4oeC4m+C4t+C5ieC4rQor4Lib4Li34LiU4Lib4Li24LiHCivguJvguLfguJkKK+C4m+C4t+C5ieC4mQor4Lib4Li34LiZ4Lii4LiyCivguJvguLfguK0KK+C4m+C4t+C5ieC4rQor4Lib4Li34LmL4LitCivguJvguLgKK+C4m+C4uOC5igor4Lib4Li44LiBCivguJvguLjguIHguJvguLjguKIKK+C4m+C4uOC4hOC4peC4sAor4Lib4Li44LmJ4LiH4LiB4Li14LmLCivguJvguLjguIfguITguJ4KK+C4m+C4uOC4h+C4hOC4p+C4sAor4Lib4Li44LiH4Lil4Li04LiH4LiE4LmMCivguJvguLjguIfguKXguLbguIfguITguYwKK+C4m+C4uOC4iOC4ieC4sgor4Lib4Li44LiPCivguJvguLjguJPguJHguKPguLTguIEKK+C4m+C4uOC4lAor4Lib4Li44LiU4LiB4Liw4Lil4LiyCivguJvguLjguJXguJXguLAKK+C4m+C4uOC4luC4uOC4iuC4mQor4Lib4Li44LiZ4LiZ4Liy4LiECivguJvguLjguJnguKDguJ4KK+C4m+C4uOC4meC4seC4nuC4nuC4quC4uQor4Lib4Li44LiZ4Lix4Lie4Liq4Li4CivguJvguLjguJoKK+C4m+C4uOC5iuC4mgor4Lib4Li44Lia4Lib4Lix4LiaCivguJvguLjguYrguJrguJvguLHguYrguJoKK+C4m+C4uOC4m+C4nOC4sAor4Lib4Li44Lib4LiwCivguJvguLjguJ7guJ4tCivguJvguLjguJ7guJ7guJzguKXguITguLjguJnguLUKK+C4m+C4uOC4nuC4nuC4nOC4peC4hOC4uOC4meC4tS0KK+C4m+C4uOC4nuC4nuC4sAor4Lib4Li44Lie4Lie4Liw4Lig4Lix4LiX4LiX4LiwCivguJvguLjguKEtCivguJvguLjguYjguKEKK+C4m+C4uOC5ieC4oQor4Lib4Li44LmL4LihCivguJvguLjguYjguKHguJvguKXguLIKK+C4m+C4uOC5iOC4oeC4m+C5iOC4swor4Lib4Li44LmJ4Lih4LmA4Lib4LmJ4LiHCivguJvguLjguYjguKHguYDguJvguLfguK3guIEKK+C4m+C4uOC5ieC4oeC5gOC4m+C4t+C4reC4gQor4Lib4Li44Lih4LiyCivguJvguLjguKIKK+C4m+C4uOC5ieC4ogor4Lib4Li44LmL4LiiCivguJvguLjguKLguIHguKPguLDguYLguJTguJkKK+C4m+C4uOC4ouC4guC4suC4pwor4Lib4Li44LmL4Lii4LiE4Lit4LiBCivguJvguLjguKLguJ3guYnguLLguKIKK+C4m+C4uOC4owor4Lib4Li44Lij4LiT4LiwCivguJvguLjguKPguJ4tCivguJvguLjguKPguJ7guJzguKXguITguLjguJnguLUKK+C4m+C4uOC4o+C4nuC4qeC4suC4kgor4Lib4Li44Lij4Liy4LiTCivguJvguLjguKPguLLguJPguLAKK+C4m+C4uOC5gOC4o+C4iOC4suC4o+C4tOC4gQor4Lib4Li44LmC4Lij4Lir4Li04LiVCivguJvguLjguKXguKXguLTguIfguITguYwKK+C4m+C4uOC4peC4peC4tuC4h+C4hOC5jAor4Lib4Li44Lil4Li04LiZ4LiX4LmMCivguJvguLjguKXguLkKK+C4m+C4uOC5guC4peC4m+C4uOC5gOC4pQor4Lib4Li44Lip4Lii4LiwCivguJvguLjguKrguKrguLAKK+C4m+C4uOC4rOC4p+C4sAor4Lib4Li5CivguJvguLnguYgKK+C4m+C4ueC5iOC4hOC4o+C4uQor4Lib4Li54LiI4LmL4LiyCivguJvguLnguYjguYDguIjguYnguLIKK+C4m+C4ueC4iuC4geC4sAor4Lib4Li54LiK4LiZ4Li14LiiLQor4Lib4Li54LiK4LiZ4Li14Lii4LiwCivguJvguLnguIrguLIKK+C4m+C4ueC4iuC4tOC4lQor4Lib4Li54LiUCivguJvguLnguJTguIHguIHguKrguYnguKHguKHguK0KK+C4m+C4ueC4leC4tAor4Lib4Li54LiV4Li04Lil4LiU4LiyCivguJvguLnguYjguJfguKfguJQKK+C4m+C4ueC4mQor4Lib4Li54LiZ4LiC4Liy4LinCivguJvguLnguJnguIvguLXguYDguKHguJnguJXguYwKK+C4m+C4ueC4meC4lOC4tOC4mgor4Lib4Li54LiZ4LmB4LiU4LiHCivguJvguLnguJnguJvguKXguLLguKrguYDguJXguK3guKPguYwKK+C4m+C4ueC4meC4m+C4seC5ieC4mQor4Lib4Li54LiZ4LmA4Lib4Li14Lii4LiBCivguJvguLnguJnguJzguLTguKcKK+C4m+C4ueC4meC5gOC4nuC4iuC4owor4Lib4Li54LiZ4LmE4LifCivguJvguLnguJnguKrguK0KK+C4m+C4ueC4meC4quC4uOC4gQor4Lib4Li54LmI4LiZ4LmJ4Lit4LiiCivguJvguLnguKEKK+C4m+C4ueC5iOC4ouC5iOC4sgor4Lib4Li54LmJ4Lii4Li14LmI4Lib4Li54LmJ4Lii4LizCivguJvguLnguKPguLAKK+C4m+C4ueC4peC4uQor4Lib4Li54LmA4LilCivguJvguLnguKfguLIKK+C4m+C4ueC5gOC4quC4ieC4p+C4mQor4LmA4Lib4LmJCivguYDguJvguYsKK+C5gOC4m+C4gQor4LmA4Lib4LmK4LiBCist4LmA4Lib4LiB4LiC4LmMCivguYDguJvguYjguIcKK+C5gOC4m+C5ieC4hwor4LmA4Lib4LmL4LiHCivguYDguJvguYfguJQKK+C5gOC4m+C5h+C4lOC4geC5iOC4sgor4LmA4Lib4LmH4LiU4LmB4LiB4LmJ4LinCivguYDguJvguYfguJTguILguLHguJnguJvguKPguLDguIrguLHguJnguYTguIHguYgKK+C5gOC4m+C5h+C4lOC4luC4mgor4LmA4Lib4LmH4LiU4LmA4LiX4LioCivguYDguJvguYfguJTguJnguYnguLMKK+C5gOC4m+C5h+C4lOC4nOC4tQor4LmA4Lib4LmH4LiU4LmE4Lif4LmB4LiU4LiHCivguYDguJvguYfguJTguKvguIfguKrguYwKK+C5gOC4m+C4lS0KK+C5gOC4m+C4leC4nuC4peC4tQor4LmA4Lib4LiV4Lin4Li04Liq4Lix4LiiCivguYDguJvguJXguK3guIcKK+C5gOC4m+C4leC4sgor4LmA4Lib4LmH4LiZCivguYDguJvguYfguJnguIHguKXguLLguIcKK+C5gOC4m+C5h+C4meC4geC4reC4hwor4LmA4Lib4LmH4LiZ4LiB4Lit4Lia4LmA4Lib4LmH4LiZ4LiB4LizCivguYDguJvguYfguJnguIHguLLguKMKK+C5gOC4m+C5h+C4meC4hOC4p+C4seC4mQor4LmA4Lib4LmH4LiZ4LiE4Lin4Liy4LihCivguYDguJvguYfguJnguITguLjguYnguIfguYDguJvguYfguJnguYHguITguKcKK+C5gOC4m+C5h+C4meC4h+C4suC4meC5gOC4m+C5h+C4meC4geC4suC4owor4LmA4Lib4LmH4LiZ4LmA4LiH4Liy4LiV4Liy4Lih4LiV4Lix4LinCivguYDguJvguYfguJnguYDguIfguLTguJnguYDguJvguYfguJnguJfguK3guIcKK+C5gOC4m+C5h+C4meC4iOC4o+C4tOC4h+C5gOC4m+C5h+C4meC4iOC4seC4hwor4LmA4Lib4LmH4LiZ4LmD4LiICivguYDguJvguYfguJnguIrguLTguYnguJnguYDguJvguYfguJnguK3guLHguJkKK+C5gOC4m+C5h+C4meC4iuC4ueC5iQor4LmA4Lib4LmH4LiZ4LiU4Lix4LmJ4LiH4Lir4LiZ4LmJ4LiyCivguYDguJvguYfguJnguYHguJTguJkKK+C5gOC4m+C5h+C4meC5g+C4lAor4LmA4Lib4LmH4LiZ4LmE4LiU4LmJCivguYDguJvguYfguJnguJXguYnguJkKK+C5gOC4m+C5h+C4meC4leC5iOC4rQor4LmA4Lib4LmH4LiZ4LiV4Lix4Lin4LmA4Lib4LmH4LiZ4LiV4LiZCivguYDguJvguYfguJnguJXguLjguYDguJvguYfguJnguJXguLAKK+C5gOC4m+C5h+C4meC4meC5ieC4swor4LmA4Lib4LmH4LiZ4LiZ4LmJ4Liz4LmA4Lib4LmH4LiZ4LiZ4Lin4LilCivguYDguJvguYfguJnguJnguYnguLPguKLguLLguYDguKLguYfguJkKK+C5gOC4m+C5h+C4meC4meC4tOC4leC4ouC5jAor4LmA4Lib4LmH4LiZ4LmA4LiZ4Li34LmJ4Lit4LmA4Lib4LmH4LiZ4LiV4Lix4LinCivguYDguJvguYfguJnguYDguJnguLfguYnguK3guYDguJvguYfguJnguKvguJnguLHguIcKK+C5gOC4m+C5h+C4meC4muC5ieC4sgor4LmA4Lib4LmH4LiZ4Lia4LmJ4Liy4LmA4Lib4LmH4LiZ4Lir4Lil4Lix4LiHCivguYDguJvguYfguJnguJvguLLguIHguYDguKrguLXguKLguIcKK+C5gOC4m+C5h+C4meC4m+C4teC5iOC5gOC4m+C5h+C4meC4guC4peC4uOC5iOC4ogor4LmA4Lib4LmH4LiZ4Lic4Li54LmJ4LmA4Lib4LmH4LiZ4LiE4LiZCivguYDguJvguYfguJnguJ3guLHguYjguIfguYDguJvguYfguJnguJ3guLIKK+C5gOC4m+C5h+C4meC4n+C4t+C4meC5gOC4m+C5h+C4meC5hOC4nwor4LmA4Lib4LmH4LiZ4LmE4LifCivguYDguJvguYfguJnguKHguLHguYjguJnguYDguJvguYfguJnguYDguKvguKHguLLguLAKK+C5gOC4m+C5h+C4meC4o+C4reC4hwor4LmA4Lib4LmH4LiZ4LmE4LijCivguYDguJvguYfguJnguKXguKHguYYKK+C5gOC4m+C5h+C4meC4peC5iOC4s+C5gOC4m+C5h+C4meC4quC4seC4mQor4LmA4Lib4LmH4LiZ4LmC4Lil4LmJ4LmA4Lib4LmH4LiZ4Lie4Liy4LiiCivguYDguJvguYfguJnguKfguKPguKPguITguYDguJvguYfguJnguYDguKfguKMKK+C5gOC4m+C5h+C4meC4q+C4meC5ieC4suC5gOC4m+C5h+C4meC4leC4sgor4LmA4Lib4LmH4LiZ4Lir4Li44LmI4LiZ4LmD4Lir4LmJ4LmA4LiK4Li04LiUCivguYDguJvguYfguJnguKvguLnguYDguJvguYfguJnguJXguLIKK+C5gOC4m+C5h+C4meC4reC4seC4mQor4LmA4Lib4LmH4LiZ4Lit4Lix4LiZ4LiC4Liy4LiUCivguYDguJvguYfguJnguK3guLHguJnguKHguLLguIEKK+C5gOC4m+C5h+C4meC5gOC4reC4hwor4LmA4Lib4Lii4Lii4Liy4LilCivguYDguJvguKMKK+C5gOC4m+C4o+C5h+C4hwor4LmA4Lib4Lij4LiVCivguYDguJvguKPguJUtCivguYDguJvguKPguJXguKfguLTguKnguLHguKIKK+C5gOC4m+C4o+C4leC4p+C4tOC4quC4seC4ogor4LmA4Lib4Lij4LihCivguYDguJvguKPguKHguJvguKPguLIKK+C5gOC4m+C4o+C4ogor4LmA4Lib4Lij4Lii4LmGCivguYDguJvguKPguKLguJvguKPguLLguKIKK+C5gOC4m+C4o+C4rQor4LmA4Lib4Lij4Lit4LiwCivguYDguJvguKPguLIKK+C5gOC4m+C4o+C4suC4sAor4LmA4Lib4Lij4Liy4Liw4LmB4Lib4Lij4LiwCivguYDguJvguKPguLLguLDguKvguK3guKEKK+C5gOC4m+C4o+C4teC4ouC4hwor4LmA4Lib4Lij4Li14LmJ4Lii4LiHCivguYDguJvguKPguLXguKLguI0KK+C5gOC4m+C4o+C4teC4ouC4mgor4LmA4Lib4Lij4Li14Lii4Lia4LmA4LiX4Li14Lii4LiaCivguYDguJvguKPguLXguKLguJrguJvguKPguLLguKIKK+C5gOC4m+C4o+C4teC4ouC4muC5gOC4m+C4o+C4ogor4LmA4Lib4Lij4Li14LmI4Lii4LihCivguYDguJvguKPguLXguKLguKcKK+C5gOC4m+C4o+C4teC5ieC4ouC4pwor4LmA4Lib4Lij4Li14LmJ4Lii4Lin4Lib4Liy4LiBCivguYDguJvguKPguLXguYnguKLguKfguKvguKfguLLguJkKK+C5gOC4m+C4o+C4teC4ouC4sAor4LmA4Lib4Lij4Li14LmK4Lii4LiwCivguYDguJvguKPguLfguYjguK3guIcKK+C5gOC4m+C4o+C4t+C5iOC4reC4h+C4m+C4o+C4suC4lAor4LmA4Lib4Lij4Li34LmJ4Lit4LiiCivguYDguJvguKUKK+C5gOC4m+C4peC5iOC4hwor4LmA4Lib4Lil4LiN4Lin4LiZCivguYDguJvguKXguKcKK+C5gOC4m+C4peC4sgor4LmA4Lib4Lil4LmI4LiyCivguYDguJvguKXguYnguLIKK+C5gOC4m+C4peC5ieC4suC4guC4peC4tOC4muC4l+C4reC4hwor4LmA4Lib4Lil4LmI4Liy4LiU4Liy4LiiCivguYDguJvguKXguLLguLAKK+C5gOC4m+C4peC4teC5ieC4ogor4LmA4Lib4Lil4Li14LmI4Lii4LiZCivguYDguJvguKXguLXguYjguKLguJnguYPguIgKK+C5gOC4m+C4peC4teC5iOC4ouC4meC4leC4seC4pwor4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiHCivguYDguJvguKXguLXguYjguKLguJnguYHguJzguYjguJnguJTguLTguJkKK+C5gOC4m+C4peC4teC5iOC4ouC4meC4oeC4t+C4rQor4LmA4Lib4Lil4Li14LmI4Lii4LiZ4Lih4Li34Lit4LmE4Lih4LmI4LmE4LiU4LmJCivguYDguJvguKXguLXguYjguKLguJnguKvguJnguYnguLIKK+C5gOC4m+C4peC4teC5iOC4ouC4oQor4LmA4Lib4Lil4Li14LmI4Lii4LinCivguYDguJvguKXguLXguYjguKLguKfguJTguLMKK+C5gOC4m+C4peC4t+C4reC4gQor4LmA4Lib4Lil4Li34Lit4LiB4LiB4Lij4Liw4LmA4LiX4Li14Lii4LihCivguYDguJvguKXguLfguK3guIHguJXguLIKK+C5gOC4m+C4peC4t+C4reC4geC5guC4peC4gQor4LmA4Lib4Lil4Li34Lit4LiHCivguYDguJvguKXguLfguYnguK3guIcKK+C5gOC4m+C4peC4t+C5ieC4reC4h+C5gOC4hOC4o+C4t+C5iOC4reC4h+C4quC4uOC4geC4s+C4qOC4ngor4LmA4Lib4Lil4Li34Lit4LiH4LmD4LiICivguYDguJvguKXguLfguK3guKIKK+C5gOC4m+C4peC4t+C4reC4ouC4geC4suC4ogor4LmA4Lib4LioCivguYDguJvguKjguKUKK+C5gOC4m+C4qOC4peC4oeC4seC4mOC4ouC5jAor4LmA4Lib4Lio4Lix4LiqCivguYDguJvguKjguLHguKotCivguYDguJvguKjguLHguKrguIHguLLguKPguLTguJkKK+C5gOC4m+C4qOC4seC4quC4geC4suC4o+C4tQor4LmA4Lib4Liq4LiB4Liy4LijCivguYDguJvguKrguKUKK+C5gOC4m+C4quC4uOC4jQor4LmA4Lib4Liq4Li44LiNLQor4LmA4Lib4Liq4Li44LiN4Lin4Liy4LiXCivguYDguJvguKrguLjguYTguJPguKIKK+C5gOC4m+C5i+C4rQor4LmA4Lib4LmJ4Lit4LmA4Lii4LmJ4LitCivguYDguJvguK3guKPguYzguYDguIvguYfguJnguJXguYwKK+C5gOC4m+C5i+C4reC5gOC4q+C4peC4rQor4LmA4Lib4LiwCivguYDguJvguLDguJvguLAKK+C5gOC4m+C4sgor4LmA4Lib4LmI4LiyCivguYDguJvguYnguLIKK+C5gOC4m+C5iuC4sgor4LmA4Lib4LmL4LiyCivguYDguJvguYjguLLguIHguJoKK+C5gOC4m+C5iOC4suC5geC4leC4owor4LmA4Lib4LmJ4Liy4Lib4Lij4Liw4Liq4LiH4LiE4LmMCivguYDguJvguYjguLLguJvguLXguYgKK+C5gOC4m+C5iOC4suC4neC4uOC5iOC4mQor4LmA4Lib4LmI4Liy4LmB4Lil4LmI4LiZCivguYDguJvguYnguLLguKvguKHguLLguKIKK+C5gOC4m+C5iOC4suC4q+C4peC4reC4lAor4LmA4Lib4LmI4Liy4Lir4Li5CivguYDguJvguYvguLLguK7guLfguYnguK0KK+C5gOC4m+C4suC4sAor4LmA4Lib4Liy4Liw4LmA4Lib4Li14LmK4Lii4LiwCivguYDguJvguLLguLDguYHguJvguLAKK+C5gOC4m+C4suC4sOC5gOC4q+C4peC4suC4sAor4LmA4Lib4Li04LiBCivguYDguJvguLTguIcKK+C5gOC4m+C4tOC4h+C5hgor4LmA4Lib4Li04LiH4Lih4Liy4LiHCivguYDguJvguLTguJQKK+C5gOC4m+C4tOC4lOC4geC4peC5ieC4reC4hwor4LmA4Lib4Li04LiU4LiE4LiU4Li1CivguYDguJvguLTguJTguInguLLguIEKK+C5gOC4m+C4tOC4lOC4muC4seC4jeC4iuC4tQor4LmA4Lib4Li04LiU4LmA4Lib4Li04LiHCivguYDguJvguLTguJTguYLguJvguIcKK+C5gOC4m+C4tOC4lOC5gOC4nOC4ogor4LmA4Lib4Li04LiU4LmC4Lil4LiBCivguYDguJvguLTguJTguKvguKHguKfguIHguKXguLIKK+C5gOC4m+C4tOC4lOC4q+C4oeC4p+C4geC5g+C4q+C5iQor4LmA4Lib4Li04LiU4Lir4Li54LmA4Lib4Li04LiU4LiV4LiyCivguYDguJvguLTguJTguK3guIEKK+C5gOC4m+C4tOC5iOC4mQor4LmA4Lib4Li04LiaCivguYDguJvguLTguYrguJoKK+C5gOC4m+C4tOC4muC4guC5ieC4suC4pwor4LmA4Lib4Li14LiiCivguYDguJvguLXguKLguIEKK+C5gOC4m+C4teC5iuC4ouC4gQor4LmA4Lib4Li14LmI4Lii4LihCivguYDguJvguLXguKLguKcKK+C5gOC4m+C4teC5ieC4ouC4pwor4LmA4Lib4Li14Lii4LiwCivguYDguJvguLXguYrguKLguLAKK+C5gOC4m+C4t+C4reC4gQor4LmA4Lib4Li34Lit4LiB4LiV4LihCivguYDguJvguLfguYnguK3guJkKK+C5gOC4m+C4t+C5iOC4reC4ogor4LmB4LibCivguYHguJvguYnguIcKK+C5geC4m+C5i+C4hwor4LmB4Lib4LmJ4LiH4LiC4LmJ4Liy4Lin4Liq4Liy4Lil4Li1CivguYHguJvguYnguIfguILguYnguLLguKfguKvguKHguLLguIEKK+C5geC4m+C5ieC4h+C5geC4guC5h+C4hwor4LmB4Lib4LmJ4LiH4LiI4Li14LmICivguYHguJvguYnguIfguYHguIrguYgKK+C5geC4m+C5ieC4h+C4jeC4p+C4mQor4LmB4Lib4LmJ4LiH4LiZ4Lin4LilCivguYHguJvguYnguIfguJ3guLjguYjguJkKK+C5geC4m+C5ieC4h+C4oeC4seC4mQor4LmB4Lib4LmJ4LiH4Lih4Li14LmICivguYHguJvguYnguIfguKPguYjguLMKK+C5geC4m+C5ieC4h+C4quC4lAor4LmB4Lib4LmJ4LiH4Liq4Liy4Lij4Lig4Li1CivguYHguJvguYnguIfguKrguLLguKXguLUKK+C5geC4m+C5ieC4h+C4quC4tOC4h+C4hOC5guC4m+C4o+C5jAor4LmB4Lib4LmJ4LiH4Lir4Lih4Li14LmICivguYHguJvguYnguIfguYDguKvguKXguYnguLIKK+C5geC4m+C4lAor4LmB4Lib4LmK4LiUCivguYHguJvguJTguJrguJcKK+C5geC4m+C4lOC4m+C4mQor4LmB4Lib4LiU4LmA4Lib4Li34LmJ4Lit4LiZCivguYHguJvguJTguKrguLLguYHguKvguKPguIEKK+C5geC4m+C4lOC5gOC4q+C4peC4teC5iOC4ouC4oeC5geC4m+C4lOC4hOC4oQor4LmB4Lib4LiU4LmA4Lir4Lil4Li14LmI4Lii4Lih4Liq4Li04Lia4Liq4Lit4LiH4LiE4LihCivguYHguJvguJfguLkKK+C5geC4m+C5ieC4mQor4LmB4Lib4LiaCivguYHguJvguYrguJoKK+C5geC4m+C4oQor4LmB4Lib4LijCivguYHguJvguKPguYsKK+C5geC4m+C4o+C4gQor4LmB4Lib4Lij4LiC4Lia4Lin4LiZCivguYHguJvguKPguYTguILguYkKK+C5geC4m+C4o+C4hwor4LmB4Lib4Lij4LmI4LiHCivguYHguJvguKPguIfguKXguYnguLLguIfguILguKfguJQKK+C5geC4m+C4o+C4h+C4q+C4ueC4q+C4meC4uQor4LmB4Lib4Lij4LiN4Lix4LiV4LiV4Li0CivguYHguJvguKPguYrguJQKK+C5geC4m+C4o+C4mOC4suC4leC4uAor4LmB4Lib4Lij4LmJ4LiZCivguYHguJvguKPguYnguJnguYHguJvguKPguYsKK+C5geC4m+C4o+C4m+C4o+C4p+C4mQor4LmB4Lib4Lij4Lib4Liy4LiB4Lir4Lil4Liy4LiB4LiE4LizCivguYHguJvguKPguYvguYHguJvguKPguYnguJkKK+C5geC4m+C4o+C4nOC4seC4mQor4LmB4Lib4Lij4Lic4Lix4LiZ4LmC4LiU4Lii4LiV4Lij4LiHCivguYHguJvguKPguJzguLHguJnguYHguJrguJrguJzguIHguJzguLHguJkKK+C5geC4m+C4o+C4nuC4seC4geC4leC4o+C5jAor4LmB4Lib4Lij4Lij4Li54LibCivguYHguJvguKPguK3guLHguIHguKnguKMKK+C5geC4m+C4o+C4sAor4LmB4Lib4LilCivguYHguJvguKXguYkKK+C5geC4m+C4peC4gQor4LmB4Lib4Lil4LiB4Lib4Lil4Lit4LihCivguYHguJvguKXguIcKK+C5geC4m+C4peC4h+C4iuC4suC4leC4tAor4LmB4Lib4Lil4LiH4Lic4Li1CivguYHguJvguKXguIfguKrguLHguI3guIrguLLguJXguLQKK+C5geC4m+C4peC4leC4suC4oeC5gOC4meC4t+C5ieC4reC4hOC4p+C4suC4oQor4LmB4Lib4Lil4LiV4Liy4Lih4Lie4Lii4Lix4LiN4LiK4LiZ4LiwCivguYHguJvguKXguJXguLLguKHguK3guKPguKPguJYKK+C5geC4m+C4peC4mQor4LmB4Lib4Lil4LiaCivguYHguJvguKXguKLguIHguKjguLHguJ7guJfguYwKK+C5geC4m+C4peC4o+C5ieC4reC4ogor4LmB4Lib4LmJ4LinCivguYHguJvguYrguKcKK+C5geC4m+C4sAor4LmB4Lib4LmK4LiwCivguYHguJvguYrguLDguIvguLAKK+C5guC4mwor4LmC4Lib4LmICivguYLguJvguYkKK+C5guC4m+C5igor4LmC4Lib4LiBCivguYLguJvguYrguIEKK+C5guC4m+C5iuC4geC5gOC4geC4reC4o+C5jAor4LmC4Lib4LiB4LiC4LijLQor4LmC4Lib4LiB4LiC4Lij4LiT4Li1CivguYLguJvguIHguILguKPguJ7guKPguKPguKkKK+C5guC4m+C4geC4swor4LmC4Lib4LmA4LiBCivguYLguJvguIcKK+C5guC4m+C5iOC4hwor4LmC4Lib4LmJ4LiHCivguYLguJvguYjguIfguILguYjguLLguKEKK+C5guC4m+C5iOC4h+C4lOC4tOC4mQor4LmC4Lib4LmI4LiH4LiZ4LmJ4LizCivguYLguJvguYnguIfguYDguJvguYnguIcKK+C5guC4m+C5ieC4h+C5guC4ouC5ieC4hwor4LmC4Lib4LiH4Lil4Liy4LiHCivguYLguJvguYnguIfguYLguKXguYnguIcKK+C5guC4m+C5iOC4h+C4p+C4tOC4lAor4LmC4Lib4LmJ4LiH4LmC4Lir4Lii4LiHCivguYLguJvguJDguJrguJcKK+C5guC4m+C4kOC4m+C4l+C4oeC4suC4qgor4LmC4Lib4LiU4LiBCivguYLguJvguJXguJbguIHguLAKK+C5guC4m+C4mQor4LmC4Lib4LmJ4Lib4LiUCivguYLguJvguYrguKLguYDguIvguLXguKLguJkKK+C5guC4m+C4o+C4hwor4LmC4Lib4Lij4LmI4LiHCivguYLguJvguKPguYjguIfguYDguJvguKPguYjguIcKK+C5guC4m+C4o+C5iOC4h+C4n+C5ieC4sgor4LmC4Lib4Lij4LmI4LiH4LmB4Liq4LiHCivguYLguJvguKPguYjguIfguYPguKoKK+C5guC4m+C4o+C4lAor4LmC4Lib4Lij4LiU4Lib4Lij4Liy4LiZCivguYLguJvguKPguJTguKrguLHguJXguKfguYwKK+C5guC4m+C4o+C4lOC4quC4seC4leC4p+C5jOC5hOC4lOC5ieC4muC4suC4mwor4LmC4Lib4Lij4LiV4Lit4LiZCivguYLguJvguKPguJXguLXguJkKK+C5guC4m+C4o+C5gOC4leC4quC5geC4leC4meC4leC5jAor4LmC4Lib4Lij4LiiCivguYLguJvguKPguKLguJvguKPguLLguKIKK+C5guC4m+C4o+C4teC4quC4oOC4sgor4LmC4Lib4Lil4LmI4LiHCivguYLguJvguKXguLTguYLguK0KK+C5guC4m+C4qgor4LmC4Lib4Liq4LiBCivguYLguJvguKrguLLguKfguJnguLTguIHguKHguLnguKUKK+C5guC4m+C4sAor4LmC4Lib4LmK4LiwCivguYLguJvguYrguLDguIjguYnguLLguKIKK+C5hOC4mwor4LmE4Lib4LmICivguYTguJvguYsKK+C5hOC4m+C4hOC5ieC4suC4luC5iOC4suC4mQor4LmE4Lib4LiV4Liy4Lii4LmA4Lit4Liy4LiU4Liy4Lia4Lir4LiZ4LmJ4LiyCivguYTguJvguJfguLjguYjguIcKK+C5hOC4m+C5hiDguKHguLLguYYKK+C5hOC4m+C4oi0KK+C5hOC4m+C4ouC4suC4pQor4LmE4Lib4Lij4Lip4LiT4Li14LiiLQor4LmE4Lib4Lij4Lip4LiT4Li14Lii4LmMCivguYTguJvguKPguKnguJPguLXguKLguJnguLTguYDguJfguKgKK+C5hOC4m+C4o+C4qeC4k+C4teC4ouC4muC4o+C4o+C4kwor4LmE4Lib4Lij4Lip4LiT4Li14Lii4Lia4Lix4LiV4LijCivguYTguJvguKPguKnguJPguLXguKLguKDguLHguJPguJHguYwKK+C5hOC4m+C4o+C4qeC4k+C4teC4ouC5jOC4o+C4seC4muC4o+C4reC4hwor4LmE4Lib4Lij4Lip4LiT4Li14Lii4Lin4Lix4LiV4LiW4Li4CivguYTguJvguKPguKnguJPguLXguKLguLLguIHguKMKK+C5hOC4m+C4peC5iAor4LmE4Lib4Lil4LmI4Lib4Lil4Li04LinCivguYTguJvguKXguLLguJQKK+C5hOC4m+C4p+C4seC4lOC5hOC4m+C4p+C4suC5hOC4lOC5iQor4LmE4Lib4Lio4Liy4LiICivguYTguJvguYTguKvguJnguKHguLLguKrguLLguKHguKfguLLguKrguK3guIfguKjguK3guIEKK+C5hOC4m+C4reC4ouC5iOC4suC4h+C4meC5ieC4s+C4guC4uOC5iOC4meC5hgor4LicCivguJzguIEKK+C4nOC4geC4nOC4h+C4gQor4Lic4LiB4Lic4Lix4LiZCivguJzguIHguYDguKPguLfguK3guIEKK+C4nOC4geC4sgor4Lic4LiB4Liy4LiB4Lij4Lit4LiHCivguJzguIHguLLguKIKK+C4nOC4geC4suC4o+C4suC4ogor4Lic4LiE4LihCivguJzguIcKK+C4nOC4h+C4gQor4Lic4LiH4LiC4Liy4LinCivguJzguIfguYDguILguYnguLLguJXguLLguJXguLHguKfguYDguK3guIcKK+C4nOC4h+C4hOC4peC4tQor4Lic4LiH4LiK4Li54Lij4LiqCivguJzguIfguIvguLHguIHguJ/guK3guIEKK+C4nOC4h+C4n+C4uQor4Lic4LiH4LihCivguJzguIfguKMKK+C4nOC4h+C4reC4mQor4Lic4LiH4Lit4LiaCivguJzguIfguLAKK+C4nOC4h+C4suC4lAor4Lic4LiH4LmI4Liy4LiZCivguJzguIjguIcKK+C4nOC4iOC4jQor4Lic4LiI4Lix4LiNCivguJzguIjguLLguJkKK+C4nOC4iuC4uOC4oQor4Lic4LiT4Li04LiZCivguJzguJPguLTguJnguJfguKMKK+C4nOC4k+C4tOC4meC4l+C4o+C4quC4oeC4nuC4seC4leC4quC4owor4Lic4LiT4Li04Lio4Lin4LijCivguJzguJQKK+C4nOC4lOC4uOC4hwor4Lic4LiU4Li44LiH4LiE4Lij4Lij4Lig4LmMCivguJzguYDguJTguLTguJkKK+C4nOC4l+C4oQor4Lic4LiX4Lih4LmA4Lie4Lil4Li04LiHCivguJzguJnguKfguIEKK+C4nOC4meC4p+C4igor4Lic4LiZ4Lix4LiHCivguJzguJnguLTguJQKK+C4nOC4meC4tuC4gQor4Lic4LihCivguJzguKHguIrguLTguIfguYDguIHguLTguKUKK+C4nOC4oeC4l+C4o+C4h+C4oeC4q+C4suC4lOC5hOC4l+C4ogor4Lic4Lih4LiX4Lix4LiUCivguJzguKHguJnguLLguIcKK+C4nOC4oeC4muC5iuC4reC4mgor4Lic4Lih4Lib4Li14LiBCivguJzguKHguYDguJvguYsKK+C4nOC4oeC5gOC4m+C4teC4ogor4Lic4Lih4LmC4Lib4LmI4LiHCivguJzguKHguYTguJ8KK+C4nOC4oeC4oeC4q+C4suC4lOC5hOC4l+C4ogor4Lic4Lih4Lih4LmJ4LiyCivguJzguKHguKvguKXguLHguIHguYHguIjguKcKK+C4nOC4ouC4reC4hwor4Lic4Lii4LmI4Liz4LmA4Lic4Lii4LitCivguJzguKPguJMtCivguJzguKPguJPguLLguJvguLXguJXguLQKK+C4nOC4o+C4quC4uAor4Lic4Lij4Li04LiVCivguJzguKPguLTguJUtCivguJzguKPguLjguJ7guIEKK+C4nOC4o+C4uOC4qi0KK+C4nOC4o+C4uOC4quC4p+C4suC4lwor4Lic4LilCivguJzguKXguIEKK+C4nOC4peC4hOC4uOC4mQor4Lic4Lil4LiE4Li44LiZ4Li1CivguJzguKXguITguLjguJnguLXguJrguLnguKPguJ7guKHguLLguKoKK+C4nOC4peC4hwor4Lic4Lil4Lie4Lil4Lit4Lii4LmE4LiU4LmJCivguJzguKXguKXguLHguJ7guJjguYwKK+C4nOC4peC4rQor4Lic4Lil4LmH4Lit4LiHCivguJzguKXguYfguK3guKIKK+C4nOC4peC4sAor4Lic4Lil4Lix4LiBCivguJzguKXguLHguJQKK+C4nOC4peC4seC4lOC5gOC4m+C4peC4teC5iOC4ouC4mQor4Lic4Lil4Lix4LiU4LmB4Lic4LmI4LiZ4LiU4Li04LiZCivguJzguKXguLHguJoKK+C4nOC4peC4seC4p+C4sAor4Lic4Lil4LiyCivguJzguKXguLLguI0KK+C4nOC4peC4suC4meC4tOC4quC4h+C4quC5jAor4Lic4Lil4Liy4Lic4LilCivguJzguKXguLLguKvguLLguKMKK+C4nOC4peC4tAor4Lic4Lil4Li04LiBLQor4Lic4Lil4Li04LiB4Lio4Li04LiC4Lij4Li1CivguJzguKXguLTguIHguKjguLTguKXguLIKK+C4nOC4peC4tOC4geC4sAor4Lic4Lil4Li04LiVCivguJzguKXguLTguJUtCivguJzguKXguLTguJXguIHguKPguKPguKEKK+C4nOC4peC4tOC4leC4nOC4pQor4Lic4Lil4Li04LiV4Lig4Lix4LiT4LiR4LmMCivguJzguKXguLTguJkKK+C4nOC4peC4tQor4Lic4Lil4Li14Lic4Lil4Liy4LihCivguJzguKXguLbguIEKK+C4nOC4peC4tuC5iOC4hwor4Lic4Lil4Li34LitCivguJzguKXguLgKK+C4nOC4peC4uOC4hwor4Lic4Lil4Li44LiUCivguJzguKXguLjguJkKK+C4nOC4peC4uOC4meC4nOC4peC4seC4mQor4Lic4Lil4Li44LiaCivguJzguKXguLjguJrguJzguKXguLHguJoKK+C4nOC4peC4uOC4muC5guC4nOC4peC5iAor4Lic4Lil4Li44Lia4LmGIOC5guC4nOC4peC5iOC5hgor4Lic4Lil4Li44LiiCivguJzguKXguLkKK+C4nOC4peC4ueC4muC4lAor4Lic4Lil4Li54LmB4Lia4LiBCivguJzguKfguJkKK+C4nOC4p+C4ogor4Lic4Lin4LiyCivguJzguKrguKEKK+C4nOC4quC4oeC5gOC4l+C4teC4ouC4oQor4Lic4Liq4Lih4Lic4Liq4Liy4LiZCivguJzguKrguKHguJzguYDguKoKK+C4nOC4quC4oeC4nuC4seC4meC4mOC4uOC5jAor4Lic4Liq4Lih4LmC4Lij4LiHCivguJzguKrguKHguYDguKrguKPguYfguIgKK+C4nOC4quC4suC4mQor4Lic4Liq4Liy4LiiCivguJzguKrguLLguKMKK+C4nOC4reC4gQor4Lic4Lit4LiHCivguJzguYjguK3guIcKK+C4nOC5iOC4reC4h+C5geC4nOC5ieC4pwor4Lic4LmI4Lit4LiH4LmD4LiqCivguJzguK3guJQKK+C4nOC5iOC4reC4mQor4Lic4LmI4Lit4LiZ4LiE4Lil4Liy4LiiCivguJzguYjguK3guJnguIrguLPguKPguLAKK+C4nOC5iOC4reC4meC4m+C4o+C4mQor4Lic4LmI4Lit4LiZ4Lic4Lix4LiZCivguJzguYjguK3guJnguKrguYjguIcKK+C4nOC5iOC4reC4meC4quC4seC5ieC4meC4nOC5iOC4reC4meC4ouC4suC4pwor4Lic4LmI4Lit4LiZ4Lir4LiZ4Lix4LiB4LmA4Lib4LmH4LiZ4LmA4Lia4LiyCivguJzguK3guJoKK+C4nOC4reC4oQor4Lic4Lit4Lih4LmA4LiB4Lij4LmH4LiHCivguJzguK3guKHguYLguIsKK+C4nOC4reC4oeC5geC4q+C5ieC4hwor4Lic4LmH4Lit4LiiCivguJzguYjguK3guKIKK+C4nOC4reC4p+C4lAor4Lic4Lit4Li54LiZCivguJzguLAKK+C4nOC4sOC5geC4hOC4hwor4Lic4Liw4LiU4LiyCivguJzguLDguKrguLIKK+C4nOC4sOC4reC4reC4mgor4Lic4Lix4LiBCivguJzguLHguIHguYTguIEKK+C4nOC4seC4geC4guC4p+C4hwor4Lic4Lix4LiB4LiC4Li14LmJ4LiC4Lin4LiHCivguJzguLHguIHguYLguInguKEKK+C4nOC4seC4geC4iuC4tQor4Lic4Lix4LiB4LiK4Li14LmC4Lij4Lii4Lir4LiZ4LmJ4LiyCivguJzguLHguIHguJXguJrguIrguKfguLIKK+C4nOC4seC4geC4leC5ieC4oeC4guC4meC4oeC4ouC4swor4Lic4Lix4LiB4LiX4Lit4LiU4Lii4Lit4LiUCivguJzguLHguIHguJrguLjguYnguIcKK+C4nOC4seC4geC4muC4uOC5ieC4h+C4guC4seC4mQor4Lic4Lix4LiB4Lia4Li44LmJ4LiH4LiI4Li14LiZCivguJzguLHguIHguJrguLjguYnguIfguJfguLDguYDguKUKK+C4nOC4seC4geC4muC4uOC5ieC4h+C4neC4o+C4seC5iOC4hwor4Lic4Lix4LiB4Lia4Li44LmJ4LiH4Lij4LmJ4Lin4LihCivguJzguLHguIHguJrguLjguYnguIfguKPguLHguYnguKcKK+C4nOC4seC4geC5gOC4muC4teC5ieC4ogor4Lic4Lix4LiB4LmA4Lia4Li14LmJ4Lii4LmD4Lir4LiN4LmICivguJzguLHguIHguJvguKXguLHguIcKK+C4nOC4seC4geC4m+C4uOC5iOC4oeC4m+C4peC4sgor4Lic4Lix4LiB4LmA4Lic4LmH4LiUCivguJzguLHguIHguYTguJzguYgKK+C4nOC4seC4geC4o+C4ueC5ieC4meC4reC4mQor4Lic4Lix4LiB4LmB4Lin4LmI4LiZCivguJzguLHguIHguKrguLLguJoKK+C4nOC4seC4geC4quC4suC4oeC4q+C4suC4pwor4Lic4Lix4LiB4LmA4Liq4Li14LmJ4Lii4LiZCivguJzguLHguIHguKvguJnguK3guIEKK+C4nOC4seC4geC4q+C4meC4reC4hwor4Lic4Lix4LiB4Lir4LiZ4Liy4LihCivguJzguLHguIHguKvguKfguLLguJkKK+C4nOC4seC4geC4q+C4p+C4suC4meC4muC5ieC4suC4mQor4Lic4Lix4LiB4Lir4Lin4Liy4LiZ4Lib4LmI4LiyCivguJzguLHguIHguYTguKvguKEKK+C4nOC4seC4geC4reC4teC5geC4m+C4sAor4Lic4Lix4LiE4LiE4Li44LiTCivguJzguLHguITguITguLjguJMtCivguJzguLHguITguITguLjguJPguKHguLLguKoKK+C4nOC4seC4hOC4hOC4uOC4k+C4tQor4Lic4Lix4LiHCivguJzguLHguIfguYDguKHguLfguK3guIcKK+C4nOC4seC4lAor4Lic4Lix4LiU4LmA4LiI4LmJ4Liy4Lil4LmI4LitCivguJzguLHguJTguIrguYnguLLguIcKK+C4nOC4seC4lOC4nOC5iOC4reC4mQor4Lic4Lix4LiU4Lic4Lix4LiZCivguJzguLHguJTguYDguJ7guLXguYnguKLguJkKK+C4nOC4seC4lOC4p+C4seC4meC4m+C4o+C4sOC4geC4seC4meC4nuC4o+C4uOC5iOC4hwor4Lic4Lix4LiZCivguJzguLHguJnguYHguJvguKMKK+C4nOC4seC4meC4nOC4ouC4reC4hwor4Lic4Lix4LiZ4Lic4Lin4LiZCivguJzguLHguJnguJzguYjguK3guJkKK+C4nOC4seC4meC4nOC4suC4lAor4Lic4Lix4LiZ4Lic4Liy4LiiCivguJzguLHguJnguKvguKHguYnguK0KK+C4nOC4seC4meC4reC4seC4geC4qeC4owor4Lic4Lix4LiaCivguJzguLHguJrguYYKK+C4nOC4seC4peC4hOC4uOC4meC4tQor4Lic4Lix4LinCivguJzguLHguKfguKvguLLguJrguYDguKHguLXguKLguITguK3guJkKK+C4nOC4seC4p+C4sAor4Lic4Lix4Liq4LiqLQor4Lic4Lix4Liq4Liq4LiwCivguJzguLHguKrguKrguLLguKvguLLguKMKK+C4nOC4sgor4Lic4LmI4LiyCivguJzguYnguLIKK+C4nOC4suC4gQor4Lic4Liy4LiB4LmB4Lic4LmJ4LiHCivguJzguYnguLLguIHguKPguLLguJoKK+C4nOC5ieC4suC5gOC4geC4teC5ieC4ouC4pwor4Lic4LmJ4Liy4LiC4Liy4Lin4Lih4LmJ4LiyCivguJzguYnguLLguILguLXguYnguKPguLTguYnguKcKK+C4nOC5ieC4suC4guC4teC5ieC4o+C4tOC5ieC4p+C4q+C5iOC4reC4l+C4reC4hwor4Lic4Liy4LiHCivguJzguYnguLLguYDguIrguYfguJTguJXguLHguKcKK+C4nOC5ieC4suC5gOC4iuC5h+C4lOC4q+C4meC5ieC4sgor4Lic4Liy4LiT4Li04LiVCivguJzguLLguJQKK+C4nOC4suC4lOC4nOC4seC4hwor4Lic4Liy4LiU4LmB4Lic4Lil4LiHCivguJzguLLguJTguYLguJzguJkKK+C4nOC4suC4lOC5gOC4nuC5iOC4hwor4Lic4Liy4LiU4LizCivguJzguYnguLLguJTguLMKK+C4nOC5ieC4suC4lOC4tOC4mgor4Lic4LmJ4Liy4LmB4LiU4LiHCivguJzguYnguLLguJXguLIKK+C4nOC4suC4leC4tAor4Lic4Liy4LiV4Li04LiB4Lij4Lij4LihCivguJzguYnguLLguJbguLjguIcKK+C4nOC5ieC4suC5geC4luC4mgor4Lic4LmJ4Liy4LiX4Li04Lie4Lii4LmMCivguJzguYnguLLguYDguJfguKgKK+C4nOC5iOC4suC4mQor4Lic4LmJ4Liy4LiZ4Li44LmI4LiHCivguJzguYnguLLguYPguJoKK+C4nOC5ieC4suC5g+C4muC4geC4peC4reC4ogor4Lic4LmJ4Liy4LmD4Lia4LmA4Lih4Li14LmI4Lii4LiHCivguJzguYnguLLguJvguYjguLIKK+C4nOC5ieC4suC4nOC5iOC4reC4mQor4Lic4LmI4Liy4LmA4Lic4LiiCivguJzguLLguYDguJzguLfguK3guIEKK+C4nOC5ieC4suC5geC4neC4hwor4Lic4LmJ4Liy4Lie4Lix4LiZ4LiE4LitCivguJzguYnguLLguJ7guLHguJnguYHguJzguKUKK+C4nOC5ieC4suC4nuC4t+C5ieC4mQor4Lic4Liy4LihCivguJzguYnguLLguKHguLHguJTguKvguKHguLXguYgKK+C4nOC4suC4ogor4Lic4LmI4Liy4LiiCivguJzguYnguLLguKIKK+C4nOC4suC4ouC4m+C4reC4lAor4Lic4LmI4Liy4Lii4Lic4Lit4LihCivguJzguLLguKLguJzguLHguIcKK+C4nOC4suC4ouC4nOC4seC4mQor4Lic4Liy4Lii4Lil4LihCivguJzguYnguLLguKLguLLguIcKK+C4nOC4suC4pQor4Lic4Liy4Lil4LiE4Li44LiZCivguJzguLLguKXguLIKK+C4nOC4suC4peC4suC5gOC4nuC4teC4ouC4h+C5hOC4q+C4peC5iAor4Lic4LmJ4Liy4Lil4Liy4LiiCivguJzguYnguLLguKXguLnguIHguYTguKHguYkKK+C4nOC5iOC4suC4pwor4Lic4Liy4Liq4Liy4Lih4LmA4Liq4LmJ4LiyCivguJzguYnguLLguKrguLPguKXguLUKK+C4nOC4suC4quC4uOC4gQor4Lic4LmI4Liy4Lir4Lih4Liy4LiBCivguJzguLLguKvguK3guKEKK+C4nOC5ieC4suC4q+C5ieC4reC4ouC4q+C4rQor4Lic4LmI4Liy4LmA4Lir4Lil4LmI4LiyCivguJzguYnguLLguYDguKvguKXguLfguK3guIcKK+C4nOC5ieC4suC5gOC4q+C4peC4t+C4reC4h+C4o+C5ieC4reC4mQor4Lic4LmJ4Liy4LmE4Lir4Lin4LmJCivguJzguYnguLLguK3guJnguLLguKHguLHguKIKK+C4nOC5ieC4suC4reC5ieC4reC4oQor4Lic4LmJ4Liy4Lit4Liy4LiaCivguJzguYnguLLguK7guLLguJQKK+C4nOC4swor4Lic4LmJ4Liz4LmGCivguJzguLQKK+C4nOC4tOC4hwor4Lic4Li04LiUCivguJzguLTguJTguIEKK+C4nOC4tOC4lOC5g+C4iAor4Lic4Li04LiU4LiV4LiyCivguJzguLTguJTguJfguYjguLIKK+C4nOC4tOC4lOC4meC4seC4gQor4Lic4Li04LiU4LiZ4Lix4LiUCivguJzguLTguJTguJnguYnguLMKK+C4nOC4tOC4lOC4m+C4o+C4sOC4q+C4peC4suC4lAor4Lic4Li04LiU4Lic4Li1CivguJzguLTguJTguJzguLnguYnguJzguLTguJTguITguJkKK+C4nOC4tOC4lOC5geC4nOC4gQor4Lic4Li04LiU4Lid4Liy4Lic4Li04LiU4LiV4Lix4LinCivguJzguLTguJTguJ7guYnguK3guIfguKvguKHguK3guIfguYPguIgKK+C4nOC4tOC4lOC5gOC4nuC4teC5ieC4ouC4mQor4Lic4Li04LiU4LmA4Lih4Li14LiiCivguJzguLTguJTguKPguLnguJvguJzguLTguJTguKPguYjguLLguIcKK+C4nOC4tOC4lOC4quC4seC4h+C5gOC4geC4lQor4Lic4Li04LiU4Liq4Liz4LmB4Lil4LiHCivguJzguLTguJTguYDguKrguYnguJkKK+C4nOC4tOC4lOC4q+C4p+C4seC4hwor4Lic4Li04LiU4Lir4Li5CivguJzguLTguJTguKvguLnguJzguLTguJTguJXguLIKK+C4nOC4tOC4lQor4Lic4Li04LiZCivguJzguLTguJnguKvguKXguLHguIfguYPguKvguYkKK+C4nOC4tOC4pwor4Lic4Li04Lin4LiZ4LmJ4LizCivguJzguLTguKfguJrguLLguIcKK+C4nOC4tOC4p+C4m+C4suC4gQor4Lic4Li04Lin4LmA4Lic4Li04LiZCivguJzguLTguKfguJ7guKPguKPguJMKK+C4nOC4tOC4p+C4q+C4meC4seC4hwor4Lic4Li04Lin4LmI4LiyCivguJzguLUKK+C4nOC4teC5gOC4guC5ieC4suC4nOC4teC4reC4reC4gQor4Lic4Li14LiL4LmJ4Liz4LiU4LmJ4Liz4Lie4Lil4Lit4LiiCivguJzguLXguJTguLTguJoKK+C4nOC4teC4lQor4Lic4Li14LiV4Lit4LiH4LmA4Lir4Lil4Li34Lit4LiHCivguJzguLXguJXguLLguIHguJzguYnguLLguK3guYnguK3guKEKK+C4nOC4teC4luC5ieC4p+C4ouC5geC4geC5ieC4pwor4Lic4Li14LiW4Li24LiH4Lib4LmI4Liy4LiK4LmJ4LiyCivguJzguLXguJrguYnguLLguJnguYTguKHguYjguJTguLUg4Lic4Li14Lib4LmI4Liy4LiB4LmH4Lie4Lil4Lit4LiiCivguJzguLXguJrguLjguI0KK+C4nOC4teC4nuC4uOC5iOC4h+C5hOC4leC5iQor4Lic4Li14LmA4Lie4Lil4Li14LiiCivguJzguLXguJ/guYnguLIKK+C4nOC4teC5hOC4oeC5iOC4oeC4teC4qOC4suC4pQor4Lic4Li14LmA4Lij4Li34Lit4LiZCivguJzguLXguYDguKPguLfguK3guJnguYTguKHguYjguJTguLUg4Lic4Li14Lib4LmI4Liy4LiB4LmH4Lie4Lil4Lit4LiiCivguJzguLXguYnguKfguYwKK+C4nOC4teC5gOC4quC4t+C5ieC4rQor4Lic4Li14LmA4Liq4Li34LmJ4Lit4LmA4LiH4Li04LiZCivguJzguLXguYDguKrguLfguYnguK3guJnguYnguK3guKIKK+C4nOC4teC5gOC4quC4t+C5ieC4reC4meC5ieC4swor4Lic4Li14LmA4Liq4Li34LmJ4Lit4Lii4Lix4LiB4Lip4LmMCivguJzguLXguKvguKXguK3guIEKK+C4nOC4teC4reC4swor4Lic4Li24LiHCivguJzguLbguYjguIcKK+C4nOC4tuC5ieC4hwor4Lic4Li24LmI4LiH4Lic4Liy4LiiCivguJzguLbguYnguIfguKPguKfguIcKK+C4nOC4t+C4mQor4Lic4Li34LmI4LiZCivguJzguLgKK+C4nOC4uOC4lAor4Lic4Li44LiU4Lic4LmI4Lit4LiHCivguJzguLjguJTguJzguLLguJQKK+C4nOC4uOC4lOC4nOC4suC4ogor4Lic4Li44LiU4Lic4LmJ4Liy4LiiCivguJzguLjguJTguKXguLjguIHguJzguLjguJTguJnguLHguYjguIcKK+C4nOC4uOC4ouC4nOC4hwor4Lic4Li44Liq4Lij4Liy4LiE4LiyCivguJzguLnguYkKK+C4nOC4ueC4gQor4Lic4Li54LiB4LiB4Lij4Liw4LmE4LiUCivguJzguLnguIHguILguKfguLHguI0KK+C4nOC4ueC4geC4guC4suC4lAor4Lic4Li54LiB4LiU4Lin4LiHCivguJzguLnguIHguJTguK3guIEKK+C4nOC4ueC4geC4nuC4seC4l+C4mOC4quC4teC4oeC4sgor4Lic4Li54LiB4Lie4Lix4LiZCivguJzguLnguIHguKDguLLguKnguLUKK+C4nOC4ueC4geC4oeC4seC4lAor4Lic4Li54LmJ4LiB4Lin4LmJ4Liy4LiH4LiC4Lin4Liy4LiHCivguJzguLnguIHguKvguLkKK+C4nOC4ueC5ieC4geC5iOC4reC4geC4suC4o+C4o+C5ieC4suC4ogor4Lic4Li54LmJ4LiE4LiZCivguJzguLnguYnguIjguLHguJTguIHguLLguKMKK+C4nOC4ueC5ieC4iuC4suC4ogor4Lic4Li54LmJ4LiK4Liy4Lii4Lie4Liy4Lii4LmA4Lij4Li34LitCivguJzguLnguYnguIrguLPguJnguLLguI3guIHguLLguKPguJ7guLTguYDguKjguKkKK+C4nOC4ueC5ieC5gOC4iuC4teC5iOC4ouC4p+C4iuC4suC4jQor4Lic4Li54LmJ4LiN4Liy4LiTCivguJzguLnguYnguJTguLUKK+C4nOC4ueC5ieC4lOC4teC5geC4m+C4lOC4quC4suC5geC4q+C4o+C4gQor4Lic4Li54LmJ4LmC4LiU4Lii4Liq4Liy4LijCivguJzguLnguYnguJXguYnguK3guIfguILguLHguIcKK+C4nOC4ueC5ieC4leC5ieC4reC4h+C4q+C4sgor4Lic4Li54LmJ4LiX4Lij4LiHCivguJzguLnguYnguYHguJfguJnguYDguInguJ7guLLguLDguITguJTguLUKK+C4nOC4ueC5ieC5geC4l+C4meC5guC4lOC4ouC4iuC4reC4muC4mOC4o+C4o+C4oQor4Lic4Li54LmJ4LmB4LiX4LiZ4Lij4Liy4Lip4LiO4LijCivguJzguLnguYnguYTguJfguKIKK+C4nOC4ueC5ieC4meC5ieC4reC4ogor4Lic4Li54LmJ4LmA4Lib4LmH4LiZ4Lir4Li44LmJ4LiZ4Liq4LmI4Lin4LiZCivguJzguLnguYnguJ7guLTguJfguLHguIHguKnguYzguKrguLHguJnguJXguLTguKPguLLguKnguI7guKPguYwKK+C4nOC4ueC5ieC5gOC4ouC4suC4p+C5jAor4Lic4Li54LmJ4Lij4Lix4LmJ4LiHCivguJzguLnguYnguKPguLHguJrguJvguKPguLDguIHguLHguJnguKDguLHguKIKK+C4nOC4ueC5ieC4o+C4seC4muC4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Lic4Li54LmJ4Lij4Lix4Lia4LmA4Lij4Li34Lit4LiZCivguJzguLnguYnguKPguLHguJrguYDguKvguKHguLLguIHguYjguK3guKrguKPguYnguLLguIcKK+C4nOC4ueC5ieC4o+C5ieC4suC4ogor4Lic4Li54LmJ4Lil4Liy4LiB4Lih4Liy4LiB4LiU4Li1CivguJzguLnguYnguKfguLTguYDguKjguKkKK+C4nOC4ueC5ieC4quC4s+C5gOC4o+C5h+C4iAor4Lic4Li54LmJ4Liq4Li34Lia4LiV4Lij4Liw4LiB4Li54LilCivguJzguLnguYnguKrguLfguJrguKrguLHguJnguJTguLLguJkKK+C4nOC4ueC5ieC4quC4t+C5iOC4reC4guC5iOC4suC4pwor4Lic4Li54LmJ4LmA4Liq4Li14Lii4Lir4Liy4LiiCivguJzguLnguYnguKvguI3guLTguIcKK+C4nOC4ueC5ieC4q+C4jeC4tOC4h+C4ouC4tOC4h+C5gOC4o+C4t+C4rQor4Lic4Li54LmJ4LmD4Lir4LiN4LmICivguJzguLnguYnguYPguKvguI3guYjguJrguYnguLLguJkKK+C4nOC4ueC5ieC4reC4meC4uOC4muC4suC4pQor4Lic4Li54LmJ4LmA4Lit4Liy4Lib4Lij4Liw4LiB4Lix4LiZ4Lig4Lix4LiiCivguYDguJwKK+C5gOC4nOC4hwor4LmA4Lic4LiK4Li04LiNCivguYDguJzguIrguLTguI3guKDguLHguKIKK+C5gOC4nOC4iuC4tOC4jeC4q+C4meC5ieC4sgor4LmA4Lic4LmH4LiUCivguYDguJzguJTguYfguIgKK+C5gOC4nOC4lOC5h+C4iOC4geC4suC4owor4LmA4Lic4LmH4LiU4Lij4LmJ4Lit4LiZCivguYDguJzguJTguLTguKEKK+C5gOC4nOC4lOC4teC4ouC4hwor4LmA4Lic4LiZLQor4LmA4Lic4LmI4LiZCivguYDguJzguJnguJjguKPguKPguKEKK+C5gOC4nOC4meC4tOC4gQor4LmA4Lic4LiiCivguYDguJzguKLguYHguJzguYgKK+C5gOC4nOC4ouC5geC4nuC4o+C5iAor4LmA4Lic4Lii4LitCivguYDguJzguKLguLTguJoKK+C5gOC4nOC4ouC4tOC4muC4nOC4ouC4suC4mgor4LmA4Lic4LilCivguYDguJzguKXguYgKK+C5gOC4nOC4peC5iQor4LmA4Lic4Lil4LmH4LiUCivguYDguJzguKXguK0KK+C5gOC4nOC4peC4reC5hOC4nOC4pQor4LmA4Lic4Lil4LiwCivguYDguJzguKXguLLguLAKK+C5gOC4nOC4peC4suC4sOC5geC4nOC4peC4sAor4LmA4Lic4Lil4Li14Lii4LiHCivguYDguJzguK3guYDguKPguK0KK+C5gOC4nOC4reC5gOC4o+C4reC4geC4o+C4sOC5gOC4iuC4reC4geC5ieC4meC4o+C4seC5iOC4pwor4LmA4Lic4Lit4Li04LiNCivguYDguJzguK3guLTguKUKK+C5gOC4nOC4sAor4LmA4Lic4LiyCivguYDguJzguYjguLIKK+C5gOC4nOC5ieC4sgor4LmA4Lic4Liy4LiC4LiZCivguYDguJzguLLguIjguKPguLTguIcKK+C5gOC4nOC5ieC4suC4nOC4hwor4LmA4Lic4LmI4Liy4Lie4Lix4LiZ4LiY4Li44LmMCivguYDguJzguLLguKvguKXguK3guIEKK+C5gOC4nOC4suC4q+C4seC4pwor4LmA4Lic4Liy4LiwCivguYDguJzguLTguYnguIcKK+C5gOC4nOC4tOC4mQor4LmA4Lic4Li04LiZ4LmGCivguYDguJzguLXguKLguJkKK+C5gOC4nOC4t+C4rQor4LmA4Lic4Li34LmI4LitCivguYDguJzguLfguK3guIEKK+C5gOC4nOC4t+C4reC4geC4geC4sOC4peC4sgor4LmA4Lic4Li34Lit4LiB4LmC4LiX4Lib4LmJ4Liy4LiUCivguYDguJzguLfguYjguK3guILguLLguJTguYDguJzguLfguYjguK3guYDguKvguKXguLfguK0KK+C5gOC4nOC4t+C4reC4lAor4LmA4Lic4Li34Lit4LiZCivguYDguJzguLfguYjguK3guJkKK+C5gOC4nOC4t+C5iOC4reC5geC4nOC5iAor4LmA4Lic4Li34LmI4Lit4Lin4LmI4LiyCivguYDguJzguLfguYjguK3guYDguKvguJnguLXguKLguKcKK+C5gOC4nOC4t+C5iOC4reC5gOC4q+C4peC4t+C4reC5gOC4nOC4t+C5iOC4reC4guC4suC4lAor4LmB4Lic4LmICivguYHguJzguIEKK+C5geC4nOC5iOC4geC4o+C4sOC4iOC4suC4lAor4LmB4Lic4LiHCivguYHguJzguIfguITguK0KK+C5geC4nOC4h+C4peC4reC4ogor4LmB4Lic4LmI4LmB4LiH4LmICivguYHguJzguYjguIvguYjguLLguJkKK+C5geC4nOC4lAor4LmB4Lic4LmI4LiV4LiZCivguYHguJzguJkKK+C5geC4nOC5iOC4mQor4LmB4Lic4LiZ4LiBCivguYHguJzguJnguIHguLLguKMKK+C5geC4nOC4meC4h+C4suC4mQor4LmB4Lic4LmI4LiZ4LiU4Li04LiZCivguYHguJzguYjguJnguJTguLTguJnguIHguKXguJrguKvguJnguYnguLIKK+C5geC4nOC5iOC4meC4lOC4tOC4meC5hOC4q+C4pwor4LmB4Lic4LiZ4LiX4Li14LmICivguYHguJzguYjguJnguJzguIfguK3guJkKK+C5geC4nOC4meC4nOC4seC4hwor4LmB4Lic4LmI4LiZ4Lie4LiBCivguYHguJzguYjguJnguKDguJ4KK+C5geC4nOC4meC4oOC4suC4ngor4LmB4Lic4LiZ4Lig4Li54Lih4Li0CivguYHguJzguYjguJnguYDguKrguLXguKLguIcKK+C5geC4nOC5iOC5gOC4nOC4t+C5iOC4rQor4LmB4Lic4LmI4LmA4Lih4LiV4LiV4LiyCivguYHguJzguKUKK+C5geC4nOC4peC5gOC4geC5iOC4sgor4LmB4Lic4Lil4LiHCivguYHguJzguKXguIfguKTguJfguJjguLTguYwKK+C5geC4nOC4peC5h+C4mgor4LmB4Lic4Lil4LmH4Lia4LmGCivguYHguJzguKXguYDguJvguYfguJkKK+C5geC4nOC4peC4o+C4tOC4oeC5geC4guC5h+C4hwor4LmB4Lic4Lil4Lij4Li04Lih4Lit4LmI4Lit4LiZCivguYHguJzguKXguYfguKcKK+C5geC4nOC4peC4sAor4LmB4Lic4LmI4LinCivguYHguJzguYjguKfguYYKK+C5geC4nOC5ieC4pwor4LmB4Lic4LmJ4Lin4Lie4Liy4LiZCivguYHguJzguYjguKrguK3guIfguKrguKXguLbguIcKK+C5geC4nOC5iOC4q+C4peC4sgor4LmB4Lic4LmI4Lit4Liz4LiZ4Liy4LiICivguYLguJwKK+C5guC4nOC4hwor4LmC4Lic4LiH4Lic4Liy4LiHCivguYLguJzguIfguYDguJzguIcKK+C5guC4nOC4j+C4kOC4seC4ni0KK+C5guC4nOC4j+C4kOC4seC4nuC4mOC4o+C4o+C4oQor4LmC4Lic4LiP4LiQ4Lix4Lie4Lie4LiwCivguYLguJzguJkKK+C5guC4nOC5gOC4nAor4LmC4Lic4LiiCivguYLguJzguKXguYgKK+C5guC4nOC4peC4geC5gOC4nOC4peC4gQor4LmC4Lic4Lil4LiwCivguYLguJzguK3guJkKK+C5guC4nOC4sAor4LmE4LicCivguYTguJzguYgKK+C5hOC4nOC4lwor4LmE4Lic4LiX4LmC4LiB4Lij4LihCivguYTguJzguYjguJzguLHguIcKK+C4nQor4Lid4LiZCivguJ3guJnguIrguLDguIrguYjguK3guKHguLDguKHguYjguKfguIcKK+C4neC4meC4iuC4sOC4peC4suC4mQor4Lid4LiZ4LiL4Li54LmICivguJ3guJnguJXguIHguIHguYfguYHguIrguYjguIcg4Lid4LiZ4LmB4Lil4LmJ4LiH4LiB4LmH4LiU4LmI4LiyCivguJ3guJnguJXguIHguILguLXguYnguKvguKHguLnguYTguKvguKUKK+C4neC4meC4leC4geC5hOC4oeC5iOC4l+C4seC5iOC4p+C4n+C5ieC4sgor4Lid4LiZ4LiV4LiB4LmE4Lih4LmI4Lih4Li14LmA4LiE4LmJ4LiyCivguJ3guJnguJXguIHguK3guKLguYjguLLguYDguIrguLfguYjguK3guJTguLLguKcKK+C4neC4meC4l+C4reC4hwor4Lid4LiZ4LiX4Lix4LmI4LiH4LmD4Lir4LmJ4LmA4Lib4LmH4LiZ4LmA4LiC4LmH4LihCivguJ3guJnguYDguJfguLXguKLguKEKK+C4neC4meC5hOC4peC5iOC4iuC5ieC4suC4hwor4Lid4LiZ4Liq4Lix4LmI4LiH4Lif4LmJ4LiyCivguJ3guJnguKrguLHguYjguIfguJ/guYnguLIg4Lib4Lil4Liy4Liq4Lix4LmI4LiH4Lir4LiZ4Lit4LiHCivguJ3guJnguYHguKrguJnguKvguYjguLIKK+C4neC4meC4q+C5iOC4suC5geC4geC5ieC4pwor4Lid4Lij4Lix4LmI4LiHCivguJ3guKPguLHguYjguIfguIHguLHguIfguYTguKoKK+C4neC4o+C4seC5iOC4h+C4guC4teC5ieC4meC4gQor4Lid4Lij4Lix4LmI4LiH4Lih4Lix4LiH4LiE4LmI4LiyCivguJ3guKPguLHguYjguIfguYDguKjguKoKK+C4neC5iOC4rQor4Lid4Lit4LiiCivguJ3guK3guKLguJfguK3guIcKK+C4neC4seC4gQor4Lid4Lix4LiB4LmB4LiECivguJ3guLHguIHguJbguLHguYjguKcKK+C4neC4seC4geC4muC4seC4pwor4Lid4Lix4LiB4Lid4LmI4Liy4LiiCivguJ3guLHguIHguYPguJ3guYgKK+C4neC4seC4geC4nuC4o+C5ieC4sgor4Lid4Lix4LiB4LmA4Lie4LiB4LiyCivguJ3guLHguIHguKHguLDguILguLLguKEKK+C4neC4seC4geC4ouC4suC4pwor4Lid4Lix4LiHCivguJ3guLHguYjguIcKK+C4neC4seC4h+C5gOC4guC5h+C4oQor4Lid4Lix4LiH4LmD4LiICivguJ3guLHguYjguIfguJ3guLIKK+C4neC4seC4h+C4o+C4geC4neC4seC4h+C4o+C4suC4gQor4Lid4Lix4LiH4Lij4Lit4LiiCivguJ3guLHguIfguKPguLnguJsKK+C4neC4seC4h+C4q+C4seC4pwor4Lid4Lix4LiUCivguJ3guLHguJkKK+C4neC4seC4meC4geC4peC4suC4h+C4p+C4seC4mQor4Lid4Lix4LiZ4LmA4Lib4Li14Lii4LiBCivguJ3guLHguJnguYDguJ/guLfguYjguK3guIcKK+C4neC4sgor4Lid4LmI4LiyCivguJ3guYnguLIKK+C4neC4suC4gQor4Lid4Liy4LiB4LiB4Lit4LiHCivguJ3guLLguIHguIHguLLguKIKK+C4neC4suC4geC5hOC4guC5iQor4Lid4Liy4LiB4LiE4Lij4Lij4Lig4LmMCivguJ3guLLguIHguJXguLHguKcKK+C4neC4suC4geC4l+C5ieC4reC4hwor4Lid4Liy4LiB4LmA4LiZ4Li34LmJ4Lit4Lid4Liy4LiB4LiV4Lix4LinCivguJ3guLLguIHguYDguJnguLfguYnguK3guYTguKfguYnguIHguLHguJrguYDguKrguLfguK0KK+C4neC4suC4geC4muC4s+C5gOC4o+C4rQor4Lid4Liy4LiB4Lib4Lij4Liw4LiI4LizCivguJ3guLLguIHguJvguKXguLLguYTguKfguYnguIHguLHguJrguYHguKHguKcKK+C4neC4suC4geC4nOC4tQor4Lid4Liy4LiB4Lic4Li14Lid4Liy4LiB4LmE4LiC4LmJCivguJ3guLLguIHguYDguJzguLfguYjguK3guYDguKPguLXguKLguIEKK+C4neC4suC4geC4neC4seC4hwor4Lid4Liy4LiB4Lij4Liw4LiU4Liy4LiZCivguJ3guLLguIHguYLguKPguIfguYDguKPguLXguKLguJkKK+C4neC4suC4geC5hOC4p+C5ieC4geC5iOC4reC4mQor4Lid4Liy4LiB4Liq4Li54LmICivguJ3guYjguLLguITguKHguKvguK3guIHguITguKHguJTguLLguJoKK+C4neC4suC4hwor4Lid4Liy4LiK4Li1CivguJ3guLLguJQKK+C4neC4suC4mQor4Lid4LmI4Liy4Lid4Li34LiZCivguJ3guLLguYHguJ3guJQKK+C4neC5iOC4suC4nuC4o+C4sOC4muC4suC4lwor4Lid4LmI4Liy4Lif4Lix4LiZCivguJ3guYjguLLguKHguKPguKrguLjguKEKK+C4neC4suC4ogor4Lid4LmI4Liy4LiiCivguJ3guYnguLLguKIKK+C4neC5iOC4suC4ouC4guC4p+C4sgor4Lid4LmI4Liy4Lii4LiE4LmJ4Liy4LiZCivguJ3guYnguLLguKLguITguLMKK+C4neC5iOC4suC4ouC4i+C5ieC4suC4ogor4Lid4LmI4Liy4Lii4LmD4LiZCivguJ3guYjguLLguKLguYDguJvguYfguJnguIHguKXguLLguIcKK+C4neC5ieC4suC4ouC4nOC4tQor4Lid4LmI4Liy4Lii4LmA4Liq4LiZ4LitCivguJ3guYjguLLguKLguKvguJnguYnguLIKK+C4neC4suC4peC4sOC4oeC4tQor4Lid4Liy4Liq4Liy4Lii4Lia4Lix4LinCivguJ3guLLguKrguLPguKvguKPguKfguJQKK+C4neC4suC5gOC4quC4teC5ieC4ouC4pwor4Lid4Liy4Lir4Lit4Lii4LmC4LiC4LmI4LiHCivguJ3guLLguKvguLjguYnguKHguIHguKXguK3guIcKK+C4neC4suC5hOC4q+C4pQor4Lid4Li04LmI4LiZCivguJ3guLTguYjguJnguJXguYnguJkKK+C4neC4tQor4Lid4Li14LmICivguJ3guLXguIEKK+C4neC4teC4geC4suC4rAor4Lid4Li14LiI4Lix4LiBCivguJ3guLXguIjguLHguIHguKMKK+C4neC4teC4lOC4suC4qQor4Lid4Li14LiU4Li04LiaCivguJ3guLXguYDguJfguYnguLIKK+C4neC4teC5g+C4meC4l+C5ieC4reC4hwor4Lid4Li14Lib4Liy4LiBCivguJ3guLXguJ7guLLguKIKK+C4neC4teC4oeC4sOC4oeC5iOC4p+C4hwor4Lid4Li14Lih4Li34LitCivguJ3guLXguYTguKHguYnguKXguLLguKLguKHguLfguK0KK+C4neC4teC5gOC4ouC5h+C4mgor4Lid4Li14Lir4Lih4Lit4LiaCivguJ3guLbguIEKK+C4neC4tuC4geC4h+C4suC4mQor4Lid4Li24LiB4Lib4Lij4Li34LitCivguJ3guLbguIHguJ3guJkKK+C4neC4tuC4geC4quC4reC4mQor4Lid4Li24LiB4Lir4Lix4LiUCivguJ3guLfguJQKK+C4neC4t+C4lOC5gOC4hOC4t+C4reC4hwor4Lid4Li34LiZCivguJ3guLfguJnguJfguYnguK3guIcKK+C4neC4uOC5iOC4mQor4Lid4Li44LmI4LiZ4LmA4Lih4Li34Lit4LiHCivguJ3guLnguIcKK+C4neC4ueC4h+C4muC4tOC4mQor4LmA4Lid4LmJ4LiyCivguYDguJ3guYnguLLguYTguILguYkKK+C5gOC4neC5ieC4suC4hOC4reC4ogor4LmA4Lid4LmJ4Liy4LmB4Lir4LiZCivguYDguJ3guLfguK0KK+C5gOC4neC4t+C4reC4gQor4LmA4Lid4Li34Lit4LiHCivguYDguJ3guLfguYjguK3guJkKK+C5geC4neC4gQor4LmB4Lid4LiB4Lir4Lit4LihCivguYHguJ3guIcKK+C5geC4neC4lAor4LmB4Lid4LiU4LiZ4LmJ4LizCivguYHguJ3guJTguYDguKXguLfguK3guJQKK+C5g+C4neC5iAor4LmD4Lid4LmI4LmD4LiICivguYPguJ3guYjguJXguYjguLMKK+C5g+C4neC5iOC4neC4seC4mQor4LmD4Lid4LmI4Lij4LmJ4Lit4LiZ4LiI4Liw4LiZ4Lit4LiZ4LmA4Lii4LmH4LiZIOC5g+C4neC5iOC5gOC4ouC5h+C4meC4iOC4sOC4lOC4tOC5ieC4meC4leC4suC4ogor4LmD4Lid4LmI4Liq4Li54LiHCivguYPguJ3guYjguKrguLnguIfguIjguJnguYDguIHguLTguJnguKjguLHguIHguJTguLTguYwKK+C5g+C4neC5iOC4quC4ueC4h+C5g+C4q+C5ieC5gOC4geC4tOC4meC4qOC4seC4geC4lOC4tOC5jAor4LmE4LidCivguJ4KK+C4nuC4gQor4Lie4LiB4LiI4LijCivguJ7guIHguJnguLjguYjguJkKK+C4nuC4geC4nuC5iOC4suC4ogor4Lie4LiB4Lil4LihCivguJ7guIHguKvguLTguJkKK+C4nuC4geC4sgor4Lie4LiB4Li44Lij4LiwCivguJ7guIHguLjguKUKK+C4nuC4hwor4Lie4LiH4Lie4Li1CivguJ7guIfguKgtCivguJ7guIfguKjguYwKK+C4nuC4h+C4qOC4geC4owor4Lie4LiH4Lio4LiY4LijCivguJ7guIfguKjguYzguJ7guLHguJnguJjguLjguYwKK+C4nuC4h+C4qOC4sgor4Lie4LiH4Lio4Liy4Lin4LiU4Liy4LijCivguJ7guIfguKjguLLguKfguKXguLUKK+C4nuC4iOC4mS0KK+C4nuC4iOC4meC5jAor4Lie4LiI4LiZ4LiyCivguJ7guIjguJnguLLguJnguLjguIHguKPguKEKK+C4nuC4iOC4meC4suC4o+C4lgor4Lie4LiI4LiZ4Li14Lii4LmMCivguJ7guIjguKHguLLguJkKK+C4nuC4iOC4tQor4Lie4LiK4Lij4LiwCivguJ7guI3guLIKK+C4nuC4jeC4suC4geC4suC4quC4seC4gQor4Lie4LiN4Liy4LiC4Liy4Lih4Lib4LmJ4Lit4LihCivguJ7guI3guLLguInguLHguJfguJfguLHguJnguJXguYwKK+C4nuC4jeC4suC4iuC5ieC4suC4h+C5gOC4nOC4t+C4reC4gQor4Lie4LiN4Liy4LiTCivguJ7guI3guLLguJTguLLguJrguKvguLHguIEKK+C4nuC4jeC4suC5gOC4lOC4tOC4mQor4Lie4LiN4Liy4LmE4LiX4LiiCivguJ7guI3guLLguJvguLLguIHguIHguKfguYnguLLguIcKK+C4nuC4jeC4suC5geC4m+C5geC4pQor4Lie4LiN4Liy4Lie4Lii4Liy4LiVCivguJ7guI3guLLguYTguJ8KK+C4nuC4jeC4suC4oeC4sOC4guC4suC4oeC4m+C5ieC4reC4oQor4Lie4LiN4Liy4Lih4Li34Lit4LmA4Lir4Lil4LmH4LiBCivguJ7guI3guLLguKHguLjguJXguJXguLQKK+C4nuC4jeC4suC4oeC4ueC4oeC4tOC4mQor4Lie4LiN4Liy4LmE4Lih4LmJCivguJ7guI3guLLguKLguLIKK+C4nuC4jeC4suC4o+C4suC4geC4lOC4swor4Lie4LiN4Liy4Lij4Liy4LiB4LmA4LiU4Li14Lii4LinCivguJ7guI3guLLguYTguKPguYnguYPguJoKK+C4nuC4jeC4suC4peC4rQor4Lie4LiN4Liy4LmC4Lio4LiBCivguJ7guI3guLLguKrguLHguJXguJrguKPguKPguJMKK+C4r+C4nuC4k+C4rwor4Lie4LiT4Li04LiKCivguJ7guJPguLTguIrguKLguYwKK+C4nuC4lAor4Lie4LiU4LiB4Lij4Li04LiKCivguJ7guJTguJTguYnguKfguIcKK+C4nuC4mOC4uQor4Lie4LiZCivguJ7guJktCivguJ7guYjguJkKK+C4nuC5ieC4mQor4Lie4LiZ4LiC4Lix4LiT4LiR4LmMCivguJ7guJnguYLguITguIjguKMKK+C4nuC4meC4iOC4owor4Lie4LiZ4LiI4Lij4LiBCivguJ7guJnguIrguLXguKfguLUKK+C4nuC4meC4mOC4suC4o+C4sgor4Lie4LiZ4LihCivguJ7guJnguKHguYDguJ7guKXguLTguIcKK+C4nuC4meC4oeC4qOC4gQor4Lie4LiZ4Lih4Lio4LieCivguJ7guJnguKHguKrguKfguKPguKPguITguYwKK+C4nuC4meC4p+C4suC4quC4tQor4Lie4LmJ4LiZ4Lin4Li04Liq4Lix4LiiCivguJ7guJnguKrguJPguJHguYwKK+C4nuC4meC4reC4hwor4Lie4LiZ4Lit4LihCivguJ7guJnguLHguIEKK+C4nuC4meC4seC4geC4h+C4suC4mQor4Lie4LiZ4Lix4LiB4LiH4Liy4LiZ4LmA4LiI4LmJ4Liy4Lir4LiZ4LmJ4Liy4LiX4Li14LmICivguJ7guJnguLHguIHguIfguLLguJnguKrguK3guJrguKrguKfguJkKK+C4nuC4meC4seC4geC4h+C4suC4meC4reC4seC4ouC4geC4suC4owor4Lie4LiZ4Lix4LiHCivguJ7guJnguLHguJkKK+C4nuC4meC4seC4meC4lOC4owor4Lie4LiZ4Lix4LiqCivguJ7guJnguLHguKotCivguJ7guJnguLHguKrguJTguKEKK+C4nuC4meC4seC4quC4muC4lOC4tQor4Lie4LiZ4LiyCivguJ7guJnguLLguJQKK+C4nuC4meC4suC4lOC4owor4Lie4LiZ4Liy4LiU4Lit4LiZCivguJ7guJnguLLguJjguKfguLIKK+C4nuC4meC4suC4meC4lOC4owor4Lie4LiZ4Liy4LiiCivguJ7guJnguLLguKPguLLguKEKK+C4nuC4meC4suC4peC4seC4ogor4Lie4LiZ4Liy4Lil4Li1CivguJ7guJnguLLguKfguLIKK+C4nuC4meC4suC4p+C4suC4qgor4Lie4LiZ4Liy4LmA4Lin4LioCivguJ7guJnguLLguKjguKPguKEKK+C4nuC4meC4suC4qOC4o+C4seC4ogor4Lie4LiZ4Liy4Liq4LiT4LiR4LmMCivguJ7guJnguLLguKrguLHguJPguJHguYwKK+C4nuC4meC4tOC4lOC4sgor4Lie4LiZ4Li04LiVCivguJ7guJnguLXguKLguIEKK+C4nuC5gOC4meC4gQor4Lie4LmA4LiZ4LiI4LijCivguJ7guJoKK+C4nuC4muC4m+C4sAor4Lie4Lia4Lie4Liy4LiZCivguJ7guJrguYTguKHguYnguIfguLLguKHguYDguKHguLfguYjguK3guILguKfguLLguJnguJrguLTguYjguJkKK+C4nuC4muC4uQor4Lie4Lih4LmI4LiyCivguJ7guKHguYjguLLguYHguJfguIfguIHguJoKK+C4nuC4oeC5iOC4suC4o+C4s+C4guC4p+C4suC4mQor4Lie4Lii4LiKCivguJ7guKLguIrguJnguYwKK+C4nuC4ouC4leC4tOC5gOC4o+C4gQor4Lie4Lii4LiZ4LiV4LmMCivguJ7guKLguKgKK+C4nuC4ouC4seC4gQor4Lie4Lii4Lix4LiB4Lie4LmA4Lii4Li04LiUCivguJ7guKLguLHguIHguKLguLTguYnguKEKK+C4nuC4ouC4seC4hOC4hi0KK+C4nuC4ouC4seC4hOC4huC5jAor4Lie4Lii4Lix4LiE4LiG4LiyCivguJ7guKLguLHguITguIbguLTguJkKK+C4nuC4ouC4seC4hOC4huC4tOC4meC4l+C4o+C5jAor4Lie4Lii4Lix4LiE4LiG4Li1CivguJ7guKLguLHguITguYDguIbguJnguJfguKPguYwKK+C4nuC4ouC4seC4iuC4meC5jAor4Lie4Lii4Lix4LiN4LiK4LiZ4LiwCivguJ7guKLguLHguJUKK+C4nuC4ouC4seC4mgor4Lie4Lii4Lix4Lia4LmB4LiU4LiUCivguJ7guKLguLHguJrguJ3guJkKK+C4nuC4ouC4seC4muC5gOC4oeC4hgor4Lie4Lii4Lix4Lia4Lir4Lih4Lit4LiBCivguJ7guKLguLLguIHguKPguJPguYwKK+C4nuC4ouC4suC4huC4o+C5jAor4Lie4Lii4Liy4LiH4LiE4LmMCivguJ7guKLguLLguJjguLQKK+C4nuC4ouC4suC4mQor4Lie4Lii4Liy4Lia4Liy4LiXCivguJ7guKLguLLguJrguLLguKUKK+C4nuC4ouC4suC4oQor4Lie4Lii4Liy4Lii4Liy4LihCivguJ7guKLguLLguKUKK+C4nuC4ouC4suC4pS0KK+C4nuC4ouC4suC4peC4oeC4pOC4hAor4Lie4Lii4Li4CivguJ7guKLguLjguIcKK+C4nuC4ouC4uOC4h+C4m+C4teC4gQor4Lie4Lii4Li44LirLQor4Lie4Lii4Li44Lir4Lia4Liy4LiV4LijCivguJ7guKLguLjguKvguJrguLLguJXguKPguLIKK+C4nuC4ouC4uOC4q+C4ouC4suC4leC4o+C4sgor4Lie4Lii4Li44Lir4LmC4Lii4LiY4LiyCivguJ7guKLguLjguKvguKMKK+C4nuC4ouC4uOC4q+C5gOC4quC4meC4sgor4Lie4Lii4Li44Lir4LmB4Liq4LiZ4Lii4LiyCivguJ7guKLguLjguKvguYHguKrguJnguKLguLLguIHguKMKK+C4nuC4ouC4uOC4q+C4sAor4Lie4Lii4Li54LmI4Lir4LmMCivguJ7guYDguKLguLXguKIKK+C4nuC4owor4Lie4Lij4LiVCivguJ7guKPguKEKK+C4nuC4o+C4oeC4hOC4lAor4Lie4Lij4Lih4LiE4LiU4LiV4Li14LiZ4LmA4LiV4LmI4LiyCivguJ7guKPguKHguYHguJTguJkKK+C4nuC4o+C4oeC4meC5ieC4s+C4oeC4seC4mQor4Lie4Lij4Lih4LiZ4Li04LmJ4LinCivguJ7guKPguKHguKHguLQKK+C4nuC4o+C4o+C4hAor4Lie4Lij4Lij4LiELQor4Lie4Lij4Lij4LiE4LmMCivguJ7guKPguKPguITguIHguKXguLTguJkKK+C4nuC4o+C4o+C4hOC4geC4suC4o+C5gOC4oeC4t+C4reC4hwor4Lie4Lij4Lij4LiE4LiZ4Liy4Lin4Li04LiB4LmC4Lii4LiY4Li04LiZCivguJ7guKPguKPguITguJnguLLguKfguLTguJkKK+C4nuC4o+C4o+C4hOC4nuC4p+C4gQor4Lie4Lij4Lij4LiE4Liy4LiZ4LiV4LmMCivguJ7guKPguKPguJMKK+C4nuC4o+C4o+C4k+C4meC4sgor4Lie4Lij4Lij4LiT4Lij4Liy4LiiCivguJ7guKPguKPguJTguLbguIEKK+C4nuC4o+C4o+C4peC4suC4ogor4Lie4Lij4Lij4LipCivguJ7guKPguKPguKktCivguJ7guKPguKPguKnguJvguKPguLDguYDguKfguKgKK+C4nuC4o+C4o+C4qeC4pOC4lOC4uQor4Lie4Lij4Lij4Lip4Lin4Li44LiS4Li0CivguJ7guKPguKPguKnguLIKK+C4nuC4o+C4o+C4qeC4suC4geC4suC4pQor4Lie4Lij4Lij4Lip4Liy4LiE4LihCivguJ7guKPguKPguKnguLLguKLguLjguJUKK+C4nuC4o+C4o+C5guC4qeC4l+C4gQor4Lie4Lij4Lij4LmC4Lip4Lia4LilCivguJ7guKPguKPguYDguKvguLIKK+C4nuC4o+C4o+C5gOC4reC4tOC4jQor4Lie4Lij4Lin4LiH4LmA4Lie4Lij4Li14Lii4LiHCivguJ7guKPguKfguJQKK+C4nuC4o+C4p+C4lOC4nuC4o+C4suC4lAor4Lie4Lij4Lin4LiZCivguJ7guKPguKrguKfguKPguKPguITguYwKK+C4nuC4o+C4q+C4oQor4Lie4Lij4Lir4LihLQor4Lie4Lij4Lir4Lih4LiB4Liy4LiiCivguJ7guKPguKvguKHguYLguITguKUKK+C4nuC4o+C4q+C4oeC4iOC4o+C4o+C4ouC5jAor4Lie4Lij4Lir4Lih4LiI4Lix4LiB4LijCivguJ7guKPguKvguKHguIjguLLguKPguLTguJPguLUKK+C4nuC4o+C4q+C4oeC4iOC4suC4o+C4tQor4Lie4Lij4Lir4Lih4LiK4Liy4LiV4Li0CivguJ7guKPguKvguKHguJfguLHguJPguJHguYwKK+C4nuC4o+C4q+C4oeC5hOC4l+C4ogor4Lie4Lij4Lir4Lih4LiY4Liy4LiU4LiyCivguJ7guKPguKvguKHguJrguJYKK+C4nuC4o+C4q+C4oeC4muC4lwor4Lie4Lij4Lir4Lih4Lia4Lij4Li04Lip4Lix4LiXCivguJ7guKPguKvguKHguJrguLjguJXguKMKK+C4nuC4o+C4q+C4oeC4m+C4uOC5guC4o+C4q+C4tOC4lQor4Lie4Lij4Lir4Lih4Lie4Lix4LiB4LiV4Lij4LmMCivguJ7guKPguKvguKHguJ7guLHguJnguJjguLjguYwKK+C4nuC4o+C4q+C4oeC4oOC4ueC4leC4tAor4Lie4Lij4Lir4Lih4Lii4Liy4LiZCivguJ7guKPguKvguKHguYDguKPguILguLIKK+C4nuC4o+C4q+C4oeC4pOC4qeC4tQor4Lie4Lij4Lir4Lih4Lil4Li04LiC4Li04LiVCivguJ7guKPguKvguKHguKfguLTguKvguLLguKMKK+C4nuC4o+C4q+C4oeC4qOC4owor4Lie4Lij4Lir4Lih4Liq4Li14LmI4Lir4LiZ4LmJ4LiyCivguJ7guKPguKvguKHguKrguLnguJXguKMKK+C4nuC4o+C4q+C4oeC4q+C4seC4p+C5gOC4q+C4oeC5h+C4mQor4Lie4Lij4Lir4Lih4LmC4Lit4LiH4LiB4Liy4LijCivguJ7guKPguKvguKHguLHguI3guJXguLIKK+C4nuC4o+C4q+C4oeC4sgor4Lie4Lij4Lir4Lih4Liy4LiT4LiR4LmMCivguJ7guKPguKvguKHguLLguKrguJXguKPguYwKK+C4nuC4o+C4q+C4oeC4tOC4meC4l+C4o+C5jAor4Lie4Lij4Lir4LmA4Lih4LiZ4LiX4Lij4LmMCivguJ7guKPguKvguYDguKHguKjguKfguKMKK+C4nuC4o+C4reC4gQor4Lie4Lij4LmI4Lit4LiHCivguJ7guKPguYnguK3guIcKK+C4nuC4o+C5ieC4reC4h+C5gOC4nuC4o+C4teC4ouC4gQor4Lie4Lij4Lit4LiUCivguJ7guKPguYnguK3guKEKK+C4nuC4o+C5iOC4reC4oeC4nuC4o+C5ieC4rQor4Lie4Lij4LmJ4Lit4Lih4Lie4Lij4Lix4LiBCivguJ7guKPguYnguK3guKHguJ7guKPguLHguYjguIcKK+C4nuC4o+C5ieC4reC4oeC5gOC4nuC4o+C4teC4ouC4hwor4Lie4Lij4LmJ4Lit4Lih4Lih4Li54LilCivguJ7guKPguYnguK3guKHguKvguJnguYnguLIKK+C4nuC4o+C5ieC4reC4oeC4q+C4meC5ieC4suC4nuC4o+C5ieC4reC4oeC4leC4sgor4Lie4Lij4LmI4Lit4LiiCivguJ7guKPguYnguK3guKIKK+C4nuC4o+C4sAor4Lie4Lij4Liw4LiB4Lij4LiZ4LmJ4Lit4LiiCivguJ7guKPguLDguITguKPguLkKK+C4nuC4o+C4sOC4hOC4uOC4k+C5gOC4iOC5ieC4sgor4Lie4Lij4Liw4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJ7guKPguLDguYDguITguKPguLfguYjguK3guIcKK+C4nuC4o+C4sOC4iOC4seC4meC4l+C4o+C5jOC4hOC4o+C4tuC5iOC4h+C4i+C4teC4gQor4Lie4Lij4Liw4LmA4LiI4LmJ4LiyCivguJ7guKPguLDguYDguIjguYnguLLguKXguK3guKLguJbguLLguJQKK+C4nuC4o+C4sOC5gOC4iOC5ieC4suC4q+C4peC4p+C4hwor4Lie4Lij4Liw4LmA4LiI4LmJ4Liy4Lir4LmJ4Liy4Lie4Lij4Liw4Lit4LiH4LiE4LmMCivguJ7guKPguLDguYDguIjguYnguLLguK3guKLguLnguYjguKvguLHguKcKK+C4nuC4o+C4sOC5gOC4lOC4iuC4nuC4o+C4sOC4hOC4uOC4kwor4Lie4Lij4Liw4LiX4Lit4LiHCivguJ7guKPguLDguJfguLHguKIKK+C4nuC4o+C4sOC4mOC4o+C4o+C4oeC4qOC4suC4quC4leC4o+C5jAor4Lie4Lij4Liw4LiZ4LihCivguJ7guKPguLDguJnguK3guKEKK+C4nuC4o+C4sOC4meC4suC4hwor4Lie4Lij4Liw4LiZ4Liy4LiH4LmA4LiI4LmJ4LiyCivguJ7guKPguLDguJnguLLguIfguYDguJjguK0KK+C4nuC4o+C4sOC4meC4suC4lAor4Lie4Lij4Liw4LiZ4Liy4LiiCivguJ7guKPguLDguJrguI8KK+C4nuC4o+C4sOC4muC4lwor4Lie4Lij4Liw4Lib4Lij4Liw4LiY4Liy4LiZCivguJ7guKPguLDguYDguJvguYfguJnguYDguIjguYnguLIKK+C4nuC4o+C4sOC4nOC4ueC5ieC5gOC4m+C5h+C4meC5gOC4iOC5ieC4sgor4Lie4Lij4Liw4LmB4Lic4LiHCivguJ7guKPguLDguJ7guLTguKHguJ7guYwKK+C4nuC4o+C4sOC4nuC4uOC4l+C4mOC5gOC4iOC5ieC4sgor4Lie4Lij4Liw4Lie4Li44LiX4LiY4LmA4LiI4LmJ4Liy4LiC4LmJ4LiyCivguJ7guKPguLDguJ7guLjguJfguJjguYDguIjguYnguLLguILguYnguLLguILguK3guKPguLHguJoKK+C4nuC4o+C4sOC4nuC4uOC4l+C4mOC5gOC4iOC5ieC4suC4guC5ieC4suC4guC4reC4o+C4seC4muC5g+C4quC5iOC5gOC4geC4peC5ieC4suC5g+C4quC5iOC4geC4o+C4sOC4q+C4oeC5iOC4reC4oQor4Lie4Lij4Liw4Lie4Li44LiX4LiY4LmA4LiI4LmJ4Liy4Lir4Lil4Lin4LiHCivguJ7guKPguLDguJ7guLjguJfguJjguYDguIjguYnguLLguK3guKLguLnguYjguKvguLHguKcKK+C4nuC4o+C4sOC4nuC4uOC4l+C4mOC4reC4h+C4hOC5jAor4Lie4Lij4Liw4Lig4Li54Lih4Li0CivguJ7guKPguLDguKHguLLguKXguLHguKLguKHguLLguYLguJvguKPguJQKK+C4nuC4o+C4sOC4ouC4sgor4Lie4Lij4Liw4Lii4Liy4LmA4LiX4LiE4Lij4Lix4LinCivguJ7guKPguLDguKLguLLguYDguKXguYfguJrguITguKPguLjguJEKK+C4nuC4o+C4sOC4ouC4suC4p+C4seC4mQor4Lie4Lij4Liw4Lij4Lit4LiHCivguJ7guKPguLDguKPguLLguIrguIHguKTguKnguI7guLXguIHguLIKK+C4nuC4o+C4sOC4o+C4suC4iuC4geC4s+C4q+C4meC4lAor4Lie4Lij4Liw4Lij4Liy4LiK4Lia4Lix4LiN4LiN4Lix4LiV4Li0CivguJ7guKPguLDguKPguLnguJsKK+C4nuC4o+C4sOC4o+C4ueC4m+C4iuC4tQor4Lie4Lij4Liw4Lik4LmF4Lip4Li1CivguJ7guKPguLDguKXguJoKK+C4nuC4o+C4sOC4peC4t+C4rQor4Lie4Lij4Liw4LmB4Lin4LinCivguJ7guKPguLDguKjguLjguIHguKPguYzguYDguILguYnguLLguJ7guKPguLDguYDguKrguLLguKPguYzguYHguJfguKPguIEKK+C4nuC4o+C4sOC4q+C4sgor4Lie4Lij4Liw4Lir4Liy4LihCivguJ7guKPguLDguKvguLLguKPguJPguKLguYwKK+C4nuC4o+C4sOC4q+C4suC4o+C4seC4k+C4ouC5jAor4Lie4Lij4Liw4Lir4Li04LiUCivguJ7guKPguLDguK3guIfguITguYwKK+C4nuC4o+C4sOC4reC4h+C4hOC5jOC5gOC4iOC5ieC4sgor4Lie4Lij4Liw4Lit4Lix4LiZ4LiU4Lix4LiaCivguJ7guKPguLDguK3guLTguJDguJ7guKPguLDguJvguLnguJkKK+C4nuC4o+C4sOC5gOC4reC4gQor4Lie4Lij4Liw4Liu4Liy4LihCivguJ7guKPguLHguIHguJ7guKPguYnguK3guKEKK+C4nuC4o+C4seC5iOC4hwor4Lie4Lij4Lix4LmI4LiH4Lie4Lij4LmJ4Lit4LihCivguJ7guKPguLHguYjguIfguJ7guKPguLkKK+C4nuC4o+C4seC4lAor4Lie4Lij4Lix4LmI4LiZCivguJ7guKPguLHguYjguJnguJ7guKPguLbguIcKK+C4nuC4o+C4seC4mgor4Lie4Lij4LmI4LiyCivguJ7guKPguYnguLIKK+C4nuC4o+C4suC4gQor4Lie4Lij4Liy4LiB4LmA4LiU4LmH4LiBCivguJ7guKPguLLguIHguJzguLnguYnguYDguKLguLLguKfguYwKK+C4nuC4o+C4suC4geC4peC4ueC4geC4meC4geC4peC4ueC4geC4geC4sgor4Lie4Lij4Liy4LiHCivguJ7guKPguYjguLLguIcKK+C4nuC4o+C4suC4h+C4nuC4o+C4reC4gQor4Lie4Lij4LmJ4Liy4LiH4Lix4LiU4Lib4Liy4LiB4LmE4Lih4LmI4Lit4Lit4LiBCivguJ7guKPguLLguJQKK+C4nuC4o+C4suC4mQor4Lie4Lij4Liy4LiiCivguJ7guKPguLLguKLguJfguLDguYDguKUKK+C4nuC4o+C4suC4ouC4meC5ieC4swor4Lie4Lij4Liy4Lii4LmB4Lie4Lij4LinCivguJ7guKPguLLguKLguKLguYnguLMKK+C4nuC4o+C4suC4pwor4Lie4Lij4Liy4Lin4LmB4Lie4Lij4LinCivguJ7guKPguLLguKvguKHguJPguYwKK+C4nuC4o+C4suC4q+C4oeC4k+C5jOC5gOC4geC5h+C4muC4q+C4seC4p+C5geC4q+C4p+C4mQor4Lie4Lij4Liy4Lir4Lih4LiT4LmM4LiC4Liy4Lii4LmA4Lih4Li14LiiCivguJ7guKPguLLguKvguKHguJPguYzguJTguLXguJTguJnguYnguLPguYDguJXguYnguLIKK+C4nuC4o+C4suC4q+C4oeC4k+C4seC4qOC4muC4lOC4tQor4Lie4Lij4Liy4Lir4Lih4LiT4Li1CivguJ7guKPguLLguKvguKHguLUKK+C4nuC4o+C4swor4Lie4Lij4Liz4LmGCivguJ7guKPguYjguLMKK+C4nuC4o+C5ieC4swor4Lie4Lij4LmI4Liz4Lie4Lil4Lit4LiUCivguJ7guKPguYjguLPguYDguJ7guKPguLfguYjguK0KK+C4nuC4o+C5iOC4s+C5gOC4nuC5ieC4rQor4Lie4Lij4Li04LiBCivguJ7guKPguLTguIHguIHguKPguLDguJXguYjguLLguKIKK+C4nuC4o+C4tOC4geC4geC4sOC5gOC4geC4peC4t+C4rQor4Lie4Lij4Li04LiB4LmB4LiB4LinCivguJ7guKPguLTguIHguILguLTguIcKK+C4nuC4o+C4tOC4geC4lOC4reC4hwor4Lie4Lij4Li04LiB4LmA4LiX4LioCivguJ7guKPguLTguIHguYTguJfguKIKK+C4nuC4o+C4tOC4geC4meC5ieC4s+C4quC5ieC4oQor4Lie4Lij4Li04LiB4Lir4Lit4LihCivguJ7guKPguLTguIHguYDguKvguKXguLfguK3guIcKK+C4nuC4o+C4tOC5ieC4hwor4Lie4Lij4Li04LmJ4LiH4Lie4Lij4Liy4LiiCivguJ7guKPguLTguYnguIfguYDguJ7guKPguLTguKgKK+C4nuC4o+C4tOC4mgor4Lie4Lij4Li04Lia4LiV4Liy4LmA4LiU4Li14Lii4LinCivguJ7guKPguLTguJrguYTguKvguKcKK+C4nuC4o+C4tOC5ieC4oQor4Lie4Lij4Li04LmJ4Lih4Lie4Lij4Liy4LiiCivguJ7guKPguLTguYnguKHguYDguJ7guKPguLIKK+C4nuC4o+C4tuC4hwor4Lie4Lij4Li24LiZCivguJ7guKPguLbguJoKK+C4nuC4o+C4t+C4lAor4Lie4Lij4Li4CivguJ7guKPguLjguIEKK+C4nuC4o+C4uOC5iOC4hwor4Lie4Lij4Li44LmI4LiH4LiZ4Li14LmJCivguJ7guKPguLjguJkKK+C4nuC4o+C4uQor4Lie4Lij4Li54LiUCivguJ7guKTguIHguKktCivguJ7guKTguIHguKnguYwKK+C4nuC4pOC4geC4qeC4iuC4suC4leC4tAor4Lie4Lik4LiB4Lip4LiX4LilCivguJ7guKTguIHguKnguYDguJfguKfguJTguLIKK+C4nuC4pOC4geC4qeC4o+C4suC4igor4Lie4Lik4LiB4Lip4Lio4Liy4Liq4LiV4Lij4LmMCivguJ7guKTguIHguKnguLIKK+C4nuC4pOC4kgor4Lie4Lik4LiS4LiyCivguJ7guKTguJLguLLguIjguLLguKPguKLguYwKK+C4nuC4pOC4kuC4tAor4Lie4Lik4LiS4Li0LQor4Lie4Lik4LiS4Li04Lia4Liy4LioCivguJ7guKTguJUKK+C4nuC4pOC4leC4tAor4Lie4Lik4LiV4Li0LQor4Lie4Lik4LiV4Li04LiB4Lij4Lij4LihCivguJ7guKTguJXguLTguIHguLLguKPguJPguYwKK+C4nuC4pOC4leC4tOC4meC4seC4ogor4Lie4Lik4LiX4LiY4LmMCivguJ7guKTguJfguJjguLTguYwKK+C4nuC4pOC4meC4leC5jAor4Lie4Lik4LiZ4LiX4LmMCivguJ7guKTguKDguLnguKnguJMKK+C4nuC4pOC4oOC4ueC4qeC4tOC4lQor4Lie4Lik4Lio4LiI4Li04LiBCivguJ7guKTguKjguIjguLTguIHguLLguKLguJkKK+C4nuC4pOC4qeC4oAor4Lie4Lik4Lip4Lig4Liy4LiE4LihCivguJ7guKTguKvguLHguKrguJrguJTguLUKK+C4nuC4pOC4q+C4seC4quC4muC4lOC4teC4iOC4seC4geC4owor4Lie4LilCivguJ7guKUtCivguJ7guKXguIHguLLguKIKK+C4nuC4peC4geC4suC4owor4Lie4Lil4LiC4Lix4LiZ4LiY4LmMCivguJ7guKXguITguKfguLLguKEKK+C4nuC4peC4leC4o+C4sOC5gOC4p+C4mQor4Lie4Lil4LmA4LiX4LieCivguJ7guKXguJoKK+C4nuC4peC5gOC4oeC4t+C4reC4hwor4Lie4Lil4LmA4Lij4Li34Lit4LiZCivguJ7guKXguYLguKXguIEKK+C4nuC4peC4py0KK+C4nuC4peC4p+C4gQor4Lie4Lil4Lin4LiHCivguJ7guKXguKfguJTguIHguLTguJnguKXguLnguIEKK+C4nuC4peC4p+C4lOC5g+C4q+C4jeC5iAor4Lie4Lil4Lin4Lix4LiVCivguJ7guKXguKjguLLguKrguJXguKPguYwKK+C4nuC4peC4qOC4tuC4geC4qeC4sgor4Lie4Lil4Liq4Li04LiH4Lir4LmMCivguJ7guKXguK0KK+C4nuC4peC5ieC4rQor4Lie4Lil4Lit4LiHCivguJ7guKXguK3guJQKK+C4nuC4peC4reC4lOC4o+C4seC4gQor4Lie4Lil4Lit4LiZCivguJ7guKXguK3guKHguYHguJ7guKXguKEKK+C4nuC4peC4reC4ogor4Lie4Lil4LmI4Lit4LiiCivguJ7guKXguK3guKLguJ/guYnguLLguJ7guKXguK3guKLguJ3guJkKK+C4nuC4peC4sAor4Lie4Lil4Liw4Lie4Lil4LiyCivguJ7guKXguLHguYjguIEKK+C4nuC4peC4seC4hwor4Lie4Lil4Lix4LmI4LiHCivguJ7guKXguLHguYnguIcKK+C4nuC4peC4seC4h+C4h+C4suC4mQor4Lie4Lil4Lix4LiH4LiH4Liy4LiZ4LiI4Lil4LiZ4LmMCivguJ7guKXguLHguIfguIfguLLguJnguKjguLHguIHguKLguYwKK+C4nuC4peC4seC4h+C4iOC4tOC4lQor4Lie4Lil4Lix4LmJ4LiH4Lib4Liy4LiBCivguJ7guKXguLHguYnguIfguJvguLLguIHguYDguKrguLXguKLguKjguLXguKUg4Lie4Lil4Lix4LmJ4LiH4LiV4Li14LiZ4LiV4LiB4LiV4LmJ4LiZ4LmE4Lih4LmJCivguJ7guKXguLHguYnguIfguYDguJzguKXguK0KK+C4nuC4peC4seC4lAor4Lie4Lil4Lix4LiU4LiW4Li04LmI4LiZCivguJ7guKXguLHguJTguJfguLXguYjguJnguLLguITguLLguJfguLXguYjguK3guKLguLnguYgKK+C4nuC4peC4seC4lOC4nuC4o+C4suC4gQor4Lie4Lil4Lix4LiZCivguJ7guKXguLHguJoKK+C4nuC4peC4seC4muC5gOC4guC4sgor4Lie4Lil4Lix4Lia4Lie4Lil4LiyCivguJ7guKXguLHguJrguJ7guKXguLbguIcKK+C4nuC4peC4seC5iOC4pwor4Lie4Lil4LmI4LiyCivguJ7guKXguLLguIHguKMKK+C4nuC4peC4suC4hwor4Lie4Lil4Liy4LiNCivguJ7guKXguLLguJQKK+C4nuC4peC4suC4lOC4l+C5iOC4sgor4Lie4Lil4Liy4LiU4Li04Lio4Lix4LiiCivguJ7guKXguLLguJjguLTguIHguLLguKMKK+C4nuC4peC5iOC4suC4mQor4Lie4Lil4Liy4LiZ4Liy4Lih4Lix4LiiCivguJ7guKXguLLguJnguLbguIEKK+C4nuC4peC4suC4oQor4Lie4Lil4LmI4Liy4LihCivguJ7guKXguLLguKIKK+C4nuC4peC4suC4ouC4oeC5ieC4sgor4Lie4Lil4Liy4Liq4LiV4Li04LiBCivguJ7guKXguLLguKrguKHguLIKK+C4nuC4peC4suC4q+C4gQor4Lie4Lil4LizCivguJ7guKXguYnguLMKK+C4nuC4peC4s+C4oOC4seC4hwor4Lie4Lil4Li0CivguJ7guKXguLTguIEKK+C4nuC4peC4tOC4geC4geC4o+C4sOC5gOC4m+C5i+C4sgor4Lie4Lil4Li04LiB4LmB4Lic4LmI4LiZ4LiU4Li04LiZCivguJ7guKXguLTguIHguYHguJ7guKXguIcKK+C4nuC4peC4tOC4geC4qOC4ngor4Lie4Lil4Li04LiB4Lir4LiZ4LmJ4Liy4Lih4Li34Lit4LmA4Lib4LmH4LiZ4Lir4Lil4Lix4LiH4Lih4Li34LitCivguJ7guKXguLTguJ7guLHguJcKK+C4nuC4peC4tOC5ieC4pwor4Lie4Lil4Li1CivguJ7guKXguLXguIHguKPguKPguKEKK+C4nuC4peC4teC4oeC4uOC4ggor4Lie4Lil4Li4CivguJ7guKXguLjguIEKK+C4nuC4peC4uOC5iOC4gQor4Lie4Lil4Li44LiB4Lie4Lil4LmI4Liy4LiZCivguJ7guKXguLjguYjguIcKK+C4nuC4peC4uOC5ieC4mQor4Lie4Lil4Li44LmI4Lih4Lie4Lil4LmI4Liy4LihCivguJ7guKXguLjguYjguKIKK+C4nuC4peC4uOC5ieC4ogor4Lie4Lil4Li5CivguJ7guKXguLnguYHguIEKK+C4nuC4peC4ueC4hOC4suC4pwor4Lie4Lil4Li54LiV4LmJ4LiZCivguJ7guKXguLnguYLguJUKK+C4nuC4peC4ueC5guC4l+C5gOC4meC4teC4ouC4oQor4Lie4Lin4LiBCivguJ7guKfguIHguJ7guYnguK3guIcKK+C4nuC4p+C4hwor4Lie4LmI4Lin4LiHCivguJ7guKfguIfguYLguIHguYDguKHguJkKK+C4nuC4p+C4h+C4hOC4o+C4suC4oQor4Lie4Lin4LiH4LiK4Lih4Lie4Li5CivguJ7guKfguIfguJTguK3guIHguYTguKHguYkKK+C4nuC5iOC4p+C4h+C4nuC4tQor4Lie4Lin4LiH4Lih4Liy4Lil4Lix4LiiCivguJ7guKfguIfguKHguLLguKXguLIKK+C4nuC4p+C4h+C5geC4quC4lAor4Lie4Lin4LiH4Lir4Lii4LiBCivguJ7guKfguIfguKvguKPguLXguJQKK+C4nuC4p+C4h+C4reC4uOC5hOC4owor4Lie4Lin4LiZCivguJ7guKfguKIKK+C4nuC4p+C4ouC4meC5ieC4swor4Lie4Lin4Lii4Lie4Li44LmI4LiHCivguJ7guKrguIEKK+C4nuC4quC4gS0KK+C4nuC4quC4geC4meC4tOC4geC4owor4Lie4Liq4LiZCivguJ7guKrguLgKK+C4nuC4quC4uOC4mOC4sgor4Lie4Liq4Li44LiY4Liy4LiU4LilCivguJ7guKrguLjguJnguJjguKPguLIKK+C4nuC4quC4uOC4oeC4lOC4tQor4Lie4Liq4Li44Liq4LiH4LiB4Lij4Liy4LiZ4LiV4LmMCivguJ7guKvguKUKK+C4nuC4q+C4uAor4Lie4Lir4Li44LiE4Li54LiTCivguJ7guKvguLjguJ7guIjguJnguYwKK+C4nuC4q+C4uOC4oOC4suC4hOC4tQor4Lie4Lir4Li44LilCivguJ7guKvguLkKK+C4nuC4q+C4ueC4nuC4iOC4meC5jAor4Lie4Lir4Li54Liq4Li54LiVCivguJ7guK0KK+C4nuC5iOC4rQor4Lie4LmJ4LitCivguJ7guK3guIEKK+C4nuC4reC4geC4nuC4ueC4mQor4Lie4Lit4LiB4Lix4LiZCivguJ7guK3guIHguLHguJnguJfguLUKK+C4nuC4reC4geC4suC4owor4Lie4Lit4LiB4LmJ4Liy4Lin4LiC4Liy4LiB4LmH4Lil4Liy4LmC4Lij4LiHCivguJ7guYjguK3guYDguIHguKXguK0KK+C4nuC5iOC4reC4guC4uOC4mQor4Lie4LmI4Lit4LiE4Lij4Lix4LinCivguJ7guK3guITguKfguKMKK+C4nuC5iOC4reC4hOC5ieC4suC4leC4teC5gOC4oeC4teC4ogor4Lie4LmI4Lit4LiE4Li44LiTCivguJ7guK3guIcKK+C4nuC5ieC4reC4hwor4Lie4LmJ4Lit4LiH4Lie4Liy4LiZCivguJ7guYjguK3guYDguIjguYnguLIKK+C4nuC5iOC4reC5geC4iOC5ieC5geC4oeC5iOC4reC4uQor4Lie4Lit4LmD4LiICivguJ7guK3guYPguIrguYkKK+C4nuC4reC5g+C4iuC5ieC5hOC4lOC5iQor4Lie4Lit4LiU4Li1CivguJ7guK3guJTguLXguJ7guK3guKPguYnguLLguKIKK+C4nuC4reC4lOC4uQor4Lie4Lit4LiU4Li54LmE4LiU4LmJCivguJ7guK3guYTguJTguYkKK+C4nuC4reC4leC4seC4pwor4Lie4LmI4Lit4LiV4LiyCivguJ7guK3guJfguLPguYDguJnguLIKK+C4nuC4reC4l+C4s+C4nuC4reC4geC4tOC4mQor4Lie4Lit4LiX4Li1CivguJ7guK3guJfguLXguYgKK+C4nuC4reC4mQor4Lie4Lit4LiZ4LmA4Lij4Li34LitCivguJ7guYjguK3guJrguYnguLLguJkKK+C4nuC4reC4m+C4o+C4sOC4oeC4suC4kwor4Lie4Lit4LmE4Lib4LmE4LiU4LmJCivguJ7guYjguK3guJ7guKfguIfguKHguLLguKXguLHguKIKK+C4nuC4reC4n+C4seC4lAor4Lie4Lit4Lif4Lix4LiU4Lie4Lit4LmA4Lir4Lin4Li14LmI4Lii4LiHCivguJ7guYnguK3guKEKK+C4nuC5iOC4reC4oeC5iOC4suC4ogor4Lie4Lit4Lih4Li14Lie4Lit4LiB4Li04LiZCivguJ7guK3guKHguLXguK3guLHguJnguIjguLDguIHguLTguJkKK+C4nuC5iOC4reC5gOC4oeC4t+C4reC4hwor4Lie4Lit4Lii4LiB4LiC4Liy4LiB4LmH4Lil4Liy4LmC4Lij4LiHCivguJ7guK3guYHguKLguYnguKHguJvguLLguIHguIHguYfguYDguKvguYfguJnguYTguKPguJ/guLHguJkKK+C4nuC5iOC4reC4o+C5ieC4suC4hwor4Lie4LmI4Lit4LmA4Lij4Li34Lit4LiZCivguJ7guK3guYHguKPguIcKK+C4nuC5iOC4reC4peC4tOC5ieC4meC4l+C4reC4hwor4Lie4LmI4Lit4LmA4Lil4Li14LmJ4Lii4LiHCivguJ7guK3guYDguKXguLXguYnguKLguIfguJvguLLguIHguYDguKXguLXguYnguKLguIfguJfguYnguK3guIcKK+C4nuC4reC5guC4peC5gOC4meC4teC4ouC4oQor4Lie4Lit4Liq4LiW4Liy4LiZ4Lib4Lij4Liw4Lih4Liy4LiTCivguJ7guYjguK3guKrguLfguYjguK0KK+C4nuC4reC4q+C4reC4oeC4m+C4suC4geC4q+C4reC4oeC4hOC4rQor4Lie4Lit4LmA4Lir4Lih4Liy4LiwCivguJ7guK3guK3guYnguLLguJvguLLguIHguIHguYfguYDguKvguYfguJnguKXguLTguYnguJnguYTguIHguYgKK+C4nuC4sAor4Lie4LmI4LiwCivguJ7guLDguIfguLIKK+C4nuC4sOC4h+C4suC4mgor4Lie4Liw4LiH4Liy4Lia4LmGCivguJ7guLDguIjguIcKK+C4nuC4sOC4l+C4s+C4oeC4sOC4o+C4hwor4Lie4Liw4LiZ4LitCivguJ7guLDguYDguJnguYnguLLguJ7guLDguJnguK0KK+C4nuC4sOC5gOC4meC5ieC4suC4nuC4sOC4meC4tuC4hwor4Lie4Liw4LmA4LiZ4Li04LiZCivguJ7guLDguYDguJnguLTguJnguYDguJfguLTguJnguJfguLbguIEKK+C4nuC4sOC5gOC4meC4teC4ouC4hwor4Lie4Liw4LmB4LiZ4LiHCivguJ7guLDguJ7guLLguJkKK+C4nuC4sOC4nuC4tOC4hwor4Lie4Liw4LmA4Lie4Li04LiHCivguJ7guLDguKLguK3guKEKK+C4nuC5iOC4sOC4ouC5iOC4sOC4hOC5iOC4sAor4Lie4Liw4Lii4Li44Lie4Lii4Li44LiHCivguJ7guLDguKLguLnguIcKK+C4nuC4sOC4ouC4ueC4mQor4Lie4Liw4LmA4Lii4Li04LiaCivguJ7guLDguYDguKLguLTguJrguYYKK+C4nuC4sOC5gOC4ouC4tOC4muC4nuC4sOC4ouC4suC4mgor4Lie4Liw4Lij4Li44LiH4Lie4Liw4Lij4Lix4LiHCivguJ7guLDguYDguKXguKIKK+C4nuC4sOC5guC4peC5iQor4Lie4Liw4LmE4LilCivguJ7guLDguKfguIcKK+C4nuC4sOC4p+C4seC4geC4nuC4sOC4p+C4mQor4Lie4Liw4Lin4LiyCivguJ7guLDguKfguYnguLLguJ7guLDguKfguLHguIcKK+C4nuC4sOC4reC4hwor4Lie4Liw4Lit4Liy4LiB4Lie4Liw4Lit4LizCivguJ7guLDguK3guLfguJTguJ7guLDguK3guKEKK+C4nuC4seC4gQor4Lie4Lix4LiB4LiV4LijLQor4Lie4Lix4LiB4LiV4Lij4LmMCivguJ7guLHguIHguJXguKPguLIKK+C4nuC4seC4geC4leC4o+C4suC4geC4pOC4leC4tAor4Lie4Lix4LiB4LiV4LiyCivguJ7guLHguIHguJzguYjguK3guJkKK+C4nuC4seC4geC4nuC4tOC4hwor4Lie4Lix4LiB4LmB4Lie4LinCivguJ7guLHguIHguJ/guLfguYnguJkKK+C4nuC4seC4geC4owor4Lie4Lix4LiB4Liq4Lih4Lit4LiHCivguJ7guLHguIcKK+C4nuC4seC4h+C4geC4sgor4Lie4Lix4LiH4LiE4LiyCivguJ7guLHguIfguIfguLIKK+C4nuC4seC4h+C4nOC4t+C4lAor4Lie4Lix4LiH4Lie4Lin4LiiCivguJ7guLHguIfguJ7guK3guJkKK+C4nuC4seC4h+C4nuC4suC4mQor4Lie4Lix4LiH4Lie4Liy4LiaCivguJ7guLHguIfguYDguJ7guKIKK+C4nuC4seC4igor4Lie4Lix4LiK4LiZ4Li1CivguJ7guLHguIrguKMKK+C4nuC4seC4jeC4iOC4gQor4Lie4Lix4LiN4LiI4LiZ4LmMCivguJ7guLHguJLguIHguLUKK+C4nuC4seC4kuC4mS0KK+C4nuC4seC4kuC4meC4sAor4Lie4Lix4LiS4LiZ4LiyCivguJ7guLHguJLguJnguLLguIHguKMKK+C4nuC4seC4kuC4meC4suC4geC4suC4owor4Lie4Lix4LiUCivguJ7guLHguJTguIrguLHguIEKK+C4nuC4seC4lOC4iuC4sgor4Lie4Lix4LiU4LiU4Li24LiH4Liq4LmMCivguJ7guLHguJTguYLguJrguIEKK+C4nuC4seC4lOC5geC4nuC4pwor4Lie4Lix4LiU4Lii4LioCivguJ7guLHguJTguKXguKEKK+C4nuC4seC4lOC4q+C4peC4p+C4hwor4Lie4Lix4LiV4LiV4Li04LiH4Liq4LiwCivguJ7guLHguJXguKMKK+C4nuC4seC4l+C4mC0KK+C4nuC4seC4l+C4mOC5jAor4Lie4Lix4LiX4LiY4Lii4LiyCivguJ7guLHguJfguJjguKLguLLguIHguKMKK+C4nuC4seC4l+C4mOC4quC4teC4oeC4sgor4Lie4Lix4LiX4LijCivguJ7guLHguJkKK+C4nuC4seC4meC4h+C4uQor4Lie4Lix4LiZ4LiI4LmI4LiyCivguJ7guLHguJnguIjguLMKK+C4nuC4seC4meC5hOC4ieC4mQor4Lie4Lix4LiZ4LiL4Liy4LiUCivguJ7guLHguJnguJXguLHguJkKK+C4nuC4seC4meC4leC4sgor4Lie4Lix4LiZ4LiV4Li5CivguJ7guLHguJnguJfguLLguIcKK+C4nuC4seC4meC4mC0KK+C4nuC4seC4meC4mOC5jAor4Lie4Lix4LiZ4LiY4LiB4Lij4LiT4Li1CivguJ7guLHguJnguJjguJktCivguJ7guLHguJnguJjguJnguLAKK+C4nuC4seC4meC4mOC4meC4suC4geC4suC4owor4Lie4Lix4LiZ4LiY4LiZ4Liy4LiE4Liy4LijCivguJ7guLHguJnguJjguJnguLMKK+C4nuC4seC4meC4mOC4muC4seC4leC4owor4Lie4Lix4LiZ4LiY4Lih4Li04LiV4LijCivguJ7guLHguJnguJjguLAKK+C4nuC4seC4meC4mOC4uAor4Lie4Lix4LiZ4LiY4Li44LmMCivguJ7guLHguJnguYDguJnguJXguKMKK+C4nuC4seC4meC4m+C4tQor4Lie4Lix4LiZ4Lie4Lix4LinCivguJ7guLHguJnguKXguK3guIEKK+C4nuC4seC4meC4peC4suC4ogor4Lie4Lix4LiZ4Lil4LizCivguJ7guLHguJnguKXguLbguIEKKy3guJ7guLHguJnguKXguLfguK0KK+C4nuC4seC4meC5gOC4peC4tOC4qAor4Lie4Lix4LiZ4Lin4Lij4Lij4Lip4LiyCivguJ7guLHguJnguYHguKrguIcKK+C4nuC4seC4meC5gOC4reC4tOC4jQor4Lie4Lix4LiaCivguJ7guLHguJrguYDguILguLXguKLguIcKK+C4nuC4seC4muC4kOC4suC4mQor4Lie4Lix4Lia4Lic4LmJ4LiyCivguJ7guLHguJrguYDguJ7guLXguKLguJoKK+C4nuC4seC4muC5geC4nuC4meC4h+C5gOC4iuC4tOC4hwor4Lie4Lix4Lil4Lil4LigCivguJ7guLHguKXguKfguLHguJkKK+C4nuC4seC4pwor4Lie4Lix4Lin4Lie4Lix4LiZCivguJ7guLHguKfguLAKK+C4nuC4seC4qOC4lOC4tQor4Lie4Lix4Liq4LiU4Li4CivguJ7guLHguKrguJTguLjguYTguJvguKPguKnguJPguLXguKLguYwKK+C4nuC4seC4quC4lOC4uOC4oOC4seC4k+C4keC5jAor4Lie4Lix4Liq4LmA4LiU4LiyCivguJ7guLHguKrguJXguKPguYwKK+C4nuC4seC4quC4luC4suC4mQor4Lie4LiyCivguJ7guLLguIEKK+C4nuC4suC4geC5gOC4nuC4teC4ouC4owor4Lie4Liy4LiB4Lii4LmMCivguJ7guLLguIHguKLguYzguKvguJnguLHguIcKK+C4nuC4suC4hwor4Lie4LmI4Liy4LiHCivguJ7guLLguIrguLUKK+C4nuC4suC4i+C4t+C5iOC4rQor4Lie4Liy4LiTCivguJ7guLLguJMtCivguJ7guLLguJPguYLguKLguIrguJnguYwKK+C4nuC4suC4k+C4p+C4suC4owor4Lie4Liy4LiT4Liy4Liq4LiZ4LmMCivguJ7guLLguJPguLTguIoKK+C4nuC4suC4k+C4tOC4iuC4ouC5jAor4Lie4Liy4LiT4Li04LiZ4Li1CivguJ7guLLguJPguLUKK+C4nuC4suC4lAor4Lie4Liy4LiU4LiE4Lin4Liy4LiiCivguJ7guLLguJTguYTguInguJkKK+C4nuC4suC4lOC4nuC4tOC4hwor4Lie4Liy4LiU4Lir4Lix4Lin4LiC4LmI4Liy4LinCivguJ7guLLguJUKK+C4nuC4suC4lwor4Lie4Liy4LiX4Lii4LmMCivguJ7guLLguJgKK+C4nuC4suC4mOC4sgor4Lie4Liy4LiZCivguJ7guYjguLLguJkKK+C4nuC4suC4meC4geC4peC4teC4muC4muC4seC4pwor4Lie4Liy4LiZ4Lib4Liy4LiB4LiB4Lij4Liw4LiI4Lix4LiaCivguJ7guLLguJnguKMKK+C4nuC4suC4meC4o+C4tOC4meC4l+C4o+C5jAor4Lie4Liy4LiZ4LmA4Lij4LioCivguJ7guLLguJnguYHguKfguYjguJnguJ/guYnguLIKK+C4nuC4suC4oQor4Lie4Liy4LiiCivguJ7guYjguLLguKIKK+C4nuC4suC4ouC4oeC5ieC4sgor4Lie4Liy4Lii4LmA4Lij4Li34Lit4LiE4LiZ4Lil4Liw4LiX4Li1CivguJ7guLLguKLguYDguKPguLfguK3guJfguKfguJnguJnguYnguLMKK+C4nuC4suC4ouC5gOC4o+C4t+C4reC5g+C4meC4q+C4meC4reC4hwor4Lie4Liy4Lii4LmA4Lij4Li34Lit4LmD4LiZ4Lit4LmI4Liy4LiHCivguJ7guLLguKLguLHguJ4KK+C4nuC4suC4ouC4uAor4Lie4Liy4Lij4LmM4LmA4LiL4LiBCivguJ7guLLguKPguJMKK+C4nuC4suC4o+C4k+C4sAor4Lie4Liy4Lij4LiyCivguJ7guLLguKPguLLguJ/guLTguJkKK+C4nuC4suC4pQor4Lie4Liy4Lil4LiB4Lij4Liw4LmB4LiK4LiHCivguJ7guLLguKXguKPguLXguJ7guLLguKXguILguKfguLLguIcKK+C4nuC4suC4peC4sgor4Lie4Liy4Lil4Li1CivguJ7guLLguKXguLXguKvguKXguLLguKLguKvguJnguYnguLIKK+C4nuC4suC4peC4uOC4gQor4Lie4Liy4LmC4LilCivguJ7guLLguYTguKUKK+C4nuC4suC4qgor4Lie4Liy4Liq4LiZ4LmMCivguJ7guLLguKrguJnguLIKK+C4nuC4suC4quC4uOC4geC4o+C4tQor4Lie4Liy4LirCivguJ7guYjguLLguKvguYwKK+C4nuC4suC4q+C4meC4sAor4Lie4Liy4Lir4LiwCivguJ7guLLguKvguLIKK+C4nuC4suC4q+C4tOC4o+C4geC4sAor4Lie4Liy4Lir4Li04Lij4LiwCivguJ7guLLguKvguLgKK+C4nuC4suC4q+C4uOC4ouC4uOC4l+C4mOC5jAor4Lie4Liy4Lir4Li44Lij4Lix4LiUCivguJ7guLLguYDguKvguLXguKLguKMKK+C4nuC4suC4rAor4Lie4Liy4LisLQor4Lie4Liy4Lis4Lih4Lik4LiECivguJ7guLLguKzguKvguLAKK+C4nuC4swor4Lie4Liz4LiZ4Lix4LiBCivguJ7guLPguJ7guKfguIEKK+C4nuC4s+C4nuC4tuC4oQor4Lie4Liz4LmGIOC4nuC4tuC4oeC5hgor4Lie4Liz4Lil4LiyCivguJ7guLTguIHguKUKK+C4nuC4tOC4geC5gOC4peC4meC4l+C4o+C4teC4ouC5jAor4Lie4Li04LiB4Liq4Li04LiVCivguJ7guLTguIHguLHguJQKK+C4nuC4tOC4geC4seC4lOC4reC4seC4leC4o+C4suC4qOC4uOC4peC4geC4suC4geC4owor4Lie4Li04LiB4Lix4LiV4Li0CivguJ7guLTguIHguLHguJkKK+C4nuC4tOC4geC4suC4owor4Lie4Li04LiB4Li44LilCivguJ7guLTguIHguLjguKXguJvguYjguLIKK+C4nuC4tOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lie4Li04LiG4LiZ4LmMCivguJ7guLTguIbguYDguJnguKgKK+C4nuC4tOC4huC5gOC4meC4qOC4p+C4owor4Lie4Li04LiG4Liy4LiVCivguJ7guLTguIcKK+C4nuC4tOC4iOC4ogor4Lie4Li04LiI4LilCivguJ7guLTguIjguLHguKIKK+C4nuC4tOC4iOC4suC4owor4Lie4Li04LiI4Liy4Lij4LiT4LmMCivguJ7guLTguIjguLLguKPguJPguLIKK+C4nuC4tOC4iOC4tOC4gQor4Lie4Li04LiI4Li04LiVCivguJ7guLTguIjguLTguJXguKMKK+C4nuC4tOC4iuC4jeC5jAor4Lie4Li04LiK4LiiCivguJ7guLTguIrguLHguKIKK+C4nuC4tOC4iuC4seC4ouC4quC4h+C4hOC4o+C4suC4oQor4Lie4Li04LiK4Liy4LiZCivguJ7guLTguIrguLTguJUKK+C4nuC4tOC4iuC4tOC4lS0KK+C4nuC4tOC4iuC4tOC4leC4oeC4suC4owor4Lie4Li04LmA4LiK4LiQCivguJ7guLTguYDguIrguLXguKLguKMKK+C4nuC4tOC4keC4ueC4o+C4ouC5jAor4Lie4Li04LiTCivguJ7guLTguJPguJ7guLLguJfguKLguYwKK+C4nuC4tOC4lOC4l+C4ueC4pQor4Lie4Li04LiU4Lij4LiBCivguJ7guLTguJTguLLguJkKK+C4nuC4tOC5guC4lOC4owor4Lie4Li04LiV4LijCivguJ7guLTguJbguKItCivguJ7guLTguJbguKLguLHguJnguJTguKMKK+C4nuC4tOC4luC4tQor4Lie4Li04LiW4Li14Lie4Li04LiW4Lix4LiZCivguJ7guLTguJfguKItCivguJ7guLTguJfguKLguYwKK+C4nuC4tOC4l+C4ouC4sgor4Lie4Li04LiX4Lii4Liy4LiE4LihCivguJ7guLTguJfguKLguLLguITguLLguKMKK+C4nuC4tOC4l+C4ouC4suC4mOC4owor4Lie4Li04LiX4Lii4Liy4Lie4LilCivguJ7guLTguJfguKLguLLguKXguLHguKIKK+C4nuC4tOC4l+C4seC4geC4qeC5jAor4Lie4Li04LiX4Lix4LiB4Lip4LmM4Liq4Lix4LiZ4LiV4Li0CivguJ7guLTguJfguLnguKMKK+C4nuC4tOC5gOC4l+C4qAor4Lie4Li04LiY4Liy4LiZCivguJ7guLTguJjguLUKK+C4nuC4tOC4mOC4teC4geC4owor4Lie4Li04LiY4Li14LiB4Lij4Lij4LihCivguJ7guLTguJjguLXguIHguLLguKMKK+C4nuC4tOC4mOC4teC4iOC4uOC5iOC4oQor4Lie4Li04LiY4Li14LmB4LiV4LiBCivguJ7guLTguJjguLXguJjguKPguKPguKEKK+C4nuC4tOC4mOC4teC4oeC4k+C4keC4pQor4Lie4Li04LiY4Li14Lij4Li14LiV4Lit4LiHCivguJ7guLTguJjguLXguKrguLLguKMKK+C4nuC4tOC4mOC4uAor4Lie4Li04LiY4Li44LijCivguJ7guLTguJnguJfguLgKK+C4nuC4tOC4meC4l+C4uOC4geC4seC4mwor4Lie4Li04LiZ4LiX4Li44Liq4LijCivguJ7guLTguJnguJ7guIcKK+C4nuC4tOC5iOC4meC4nuC4seC5iOC4hwor4Lie4Li04LiZ4Lit4Lia4Lie4Li04LmA4LiX4LiyCivguJ7guLTguJnguLHguKIKK+C4nuC4tOC4meC4seC4ouC4geC4o+C4o+C4oQor4Lie4Li04LiZ4Liy4LioCivguJ7guLTguJnguLTguIgKK+C4nuC4tOC4meC4tOC4lQor4Lie4Li04LiZ4Li04LioCivguJ7guLTguJnguLTguKjguIjguLHguKIKK+C4nuC4tOC5gOC4meC4lQor4Lie4Li04Lia4Lix4LiV4Li0CivguJ7guLTguJrguLLguIEKK+C4nuC4tOC4muC4uOC4pQor4Lie4Li04Lia4Li54LilCivguJ7guLTguJvguKPguLTguJUKK+C4nuC4tOC4m+C4peC4suC4qgor4Lie4Li04Lib4Lix4Liq4Liq4LiZ4LiyCivguJ7guLTguJ7guKPguKPguJgKK+C4nuC4tOC4nuC4o+C4o+C4mOC4meC5jAor4Lie4Li04Lie4Lix4LiB4Lie4Li04Lie4LmI4Lin4LiZCivguJ7guLTguJ7guLHguJIKK+C4nuC4tOC4nuC4seC4kuC4meC5jAor4Lie4Li04Lie4Liy4LiB4Lip4LmMCivguJ7guLTguJ7guLLguIHguKnguLIKK+C4nuC4tOC4nuC4suC4lwor4Lie4Li04Lie4Li04LiYCivguJ7guLTguJ7guLTguJgtCivguJ7guLTguJ7guLTguJjguKDguLHguJPguJHguYwKK+C4nuC4tOC4nuC4tOC4mOC4oOC4seC4k+C4keC4quC4luC4suC4mQor4Lie4Li04Lig4LieCivguJ7guLTguKDguLHguIoKK+C4nuC4tOC4oOC4suC4hAor4Lie4Li04Lig4Li54Lip4LiT4LiwCivguJ7guLTguYDguKDguIEKK+C4nuC4tOC4oeC4m+C4sOC4geC4suC4o+C4seC4hwor4Lie4Li04Lih4LieLQor4Lie4Li04Lih4Lie4LmMCivguJ7guLTguKHguJ7guIHguLLguKPguLHguIcKK+C4nuC4tOC4oeC4nuC5jOC5gOC4guC4teC4ouC4pwor4Lie4Li04Lih4Lie4LmM4LmD4LiICivguJ7guLTguKHguJ7guYzguJTguLXguJQKK+C4nuC4tOC4oeC4nuC5jOC4l+C4reC4hwor4Lie4Li04Lih4Lie4LmM4Lil4Liy4Lii4Lih4Li34LitCivguJ7guLTguKHguJ7guYzguKrguLHguKHguJzguLHguKoKK+C4nuC4tOC4oeC4nuC4sgor4Lie4Li04Lih4Lie4Liy4Lig4Lij4LiT4LmMCivguJ7guLTguKHguYLguJ7guKvguJnguLAKK+C4nuC4tOC4oeC4pQor4Lie4Li04Lih4LmA4Liq4LiZCivguJ7guLTguKHguLLguJkKK+C4nuC4tOC4oeC4uOC4ggor4Lie4Li04LmC4Lih4LiB4LiC4LmMCivguJ7guLTguYLguKHguIHguKnguYwKK+C4nuC4tOC5guC4ouC4geC4nuC4tOC5gOC4geC4mQor4Lie4Li04LmC4Lii4LiECivguJ7guLTguKMKK+C4nuC4tOC4o+C4reC4lAor4Lie4Li04Lij4Liy4LiB4LilCivguJ7guLTguKPguLLguJoKK+C4nuC4tOC4o+C4suC4oQor4Lie4Li04Lij4Liy4Lil4Lix4LiiCivguJ7guLTguKPguLTguKItCivguJ7guLTguKPguLTguKLguJ7guKTguJnguJfguYwKK+C4nuC4tOC4o+C4tOC4ouC5guC4ouC4mOC4sgor4Lie4Li04Lij4Li04Lii4LiwCivguJ7guLTguKPguLXguYnguJ7guLTguYTguKMKK+C4nuC4tOC4o+C4uOC4kwor4Lie4Li04Lij4Li44LiYCivguJ7guLTguKPguLjguKzguKvguYwKK+C4nuC4tOC5gOC4o+C4suC4sAor4Lie4Li04LmC4Lij4LiYCivguJ7guLTguYLguKPguJjguJnguLAKK+C4nuC4tOC5hOC4owor4Lie4Li04Lil4Lix4LiH4LiB4Liy4Liq4LiyCivguJ7guLTguKXguLLguJsKK+C4nuC4tOC4peC4suC4peC4qgor4Lie4Li04Lil4Liy4LiqCivguJ7guLTguKXguLTguJvguJTguLIKK+C4nuC4tOC4peC4tuC4gQor4Lie4Li04Lil4Li24LiB4LiB4Li24LiB4LiB4Li34LitCivguJ7guLTguKXguLbguIHguJ7guLTguKXguLHguYjguJkKK+C4nuC4tOC5guC4peC4mQor4Lie4Li04LmC4Lil4LilCivguJ7guLTguYTguKUKK+C4nuC4tOC4qAor4Lie4Li04Lio4Lin4LiHCivguJ7guLTguKjguKfguLLguKoKK+C4nuC4tOC4qOC4suC4pQor4Lie4Li04Lio4Li44LiX4LiY4LmMCivguJ7guLTguKjguLjguJfguJjguLTguYwKK+C4nuC4tOC5gOC4qOC4qQor4Lie4Li04LipCivguJ7guLTguKktCivguJ7guLTguKnguJDguLLguJkKK+C4nuC4tOC4qeC4meC4suC4qOC4meC5jAor4Lie4Li04Lip4Liq4LiHCivguJ7guLTguKnguKrguKHguYLguKLguIQKK+C4nuC4tOC4qeC4quC4uOC4meC4seC4guC4muC5ieC4sgor4Lie4Li04Lip4Liq4Li44Lij4Liy4LmA4Lij4Li34LmJ4Lit4Lij4Lix4LiHCivguJ7guLTguKrguJTguLLguKMKK+C4nuC4tOC4quC4oeC4owor4Lie4Li04Liq4Lih4Lix4LiiCivguJ7guLTguKrguKHguLHguKLguYDguKPguLXguKLguIfguKvguKHguK3guJkKK+C4nuC4tOC4quC4seC4hwor4Lie4Li04Liq4Lix4LiKCivguJ7guLTguKrguLHguI3guI3guLUKK+C4nuC4tOC4quC4seC4ogor4Lie4Li04Liq4Li04LiQCivguJ7guLTguKrguLjguJfguJjguLTguYwKK+C4nuC4tOC4quC4ueC4iOC4meC5jAor4Lie4Li04Lir4LiECivguJ7guLTguKvguYDguITguJnguJfguKPguYwKK+C4nuC4tOC4q+C4suC4owor4Lie4Li04Lis4Liy4LijCivguJ7guLUKK+C4nuC4teC5iAor4Lie4Li14LmJCivguJ7guLXguIrguITguJPguLTguJUKK+C4nuC4teC5iOC4meC5ieC4reC4hwor4Lie4Li14LmI4LmA4Lia4Li04LmJ4LihCivguJ7guLXguYnguYLguJ7guYkKK+C4nuC4teC4oy0KK+C4nuC4teC4o+C4sOC4oeC4tOC4lAor4Lie4Li14LmI4LmA4Lil4Li14LmJ4Lii4LiHCivguJ7guLbguIcKK+C4nuC4tuC5iOC4hwor4Lie4Li24LmI4LiH4LiI4Lih4Li54LiB4LiE4LiZ4Lit4Li34LmI4LiZ4Lir4Liy4Lii4LmD4LiICivguJ7guLbguIfguYPguIgKK+C4nuC4tuC4h+C4leC4sgor4Lie4Li24LmI4LiH4Lil4Liz4LmB4LiC4LmJ4LiH4LiV4Lix4Lin4LmA4Lit4LiHCivguJ7guLbguYjguJoKK+C4nuC4tuC4oQor4Lie4Li24Lih4Lie4LizCivguJ7guLfguIoKK+C4nuC4t+C4iuC4hOC4suC4oQor4Lie4Li34LiK4LiK4Lix4LmJ4LiZ4LiV4LmI4LizCivguJ7guLfguIrguIrguLHguYnguJnguKrguLnguIcKK+C4nuC4t+C4iuC4nuC4seC4meC4mOC4uOC5jAor4Lie4Li34LiUCivguJ7guLfguYnguJkKK+C4nuC4t+C5ieC4meC5hgor4Lie4Li34LmJ4LiZ4LiE4Lin4Liy4Lih4Lij4Li54LmJCivguJ7guLfguYnguJnguJDguLLguJkKK+C4nuC4t+C5ieC4meC4lOC4tQor4Lie4Li34LmJ4LiZ4LmA4LiU4Li04LihCivguJ7guLfguYnguJnguJfguLXguYgKK+C4nuC4t+C5ieC4meC4muC5ieC4suC4mQor4Lie4Li34LmJ4LiZ4LmA4LieCivguJ7guLfguYnguJnguYDguKHguLfguK3guIcKK+C4nuC4t+C5ieC4meC5gOC4quC4teC4ogor4Lie4Li4CivguJ7guLjguIEKK+C4nuC4uOC4geC4suC4oQor4Lie4Li44LiHCivguJ7guLjguYjguIcKK+C4nuC4uOC4h+C5geC4gQor4Lie4Li44LiH4LiI4LiHCivguJ7guLjguIfguJTguK0KK+C4nuC4uOC4h+C4l+C4sOC4peC4suC4ogor4Lie4Li44LiH4Lib4Lil4LiyCivguJ7guLjguIfguJvguKXguLLguIrguYjguK3guJkKK+C4nuC4uOC4h+C4nuC4p+C4hwor4Lie4Li44LiH4Lie4LmI4Lin4LiHCivguJ7guLjguYjguIfguKvguKXguLLguKcKK+C4nuC4uOC5iOC4h+C4q+C4reC4geC5gOC4guC5ieC4suC4o+C4gQor4Lie4Li44LmI4LiH4LmB4Lir4Lil4LiZCivguJ7guLjguJIKK+C4nuC4uOC4kuC4tAor4Lie4Li44LiUCivguJ7guLjguJTguJXguLLguJkKK+C4nuC4uOC4l+C4mAor4Lie4Li44LiX4LiYLQor4Lie4Li44LiX4LiY4LiB4Liy4LilCivguJ7guLjguJfguJjguITguLjguJMKK+C4nuC4uOC4l+C4mOC4iOC4seC4geC4owor4Lie4Li44LiX4LiY4LmA4LiI4LiU4Li14Lii4LmMCivguJ7guLjguJfguJjguIrguLLguJQKK+C4nuC4uOC4l+C4mOC4juC4teC4geC4sgor4Lie4Li44LiX4LiY4LiV4Lix4LiZ4LiV4Lij4LiwCivguJ7guLjguJfguJjguJvguI/guLTguKHguLIKK+C4nuC4uOC4l+C4mOC4m+C4j+C4tOC4oeC4suC4geC4owor4Lie4Li44LiX4LiY4Lih4Liy4Lih4LiB4LiwCivguJ7guLjguJfguJjguKPguLHguIHguKnguLIKK+C4nuC4uOC4l+C4mOC4qOC4seC4geC4o+C4suC4igor4Lie4Li44LiX4LiY4Lio4Liy4Liq4LiZ4Li04LiB4LiK4LiZCivguJ7guLjguJfguJjguKrguKHguLHguKIKK+C4nuC4uOC4l+C4mOC4sAor4Lie4Li44LiX4LiY4Lix4LiH4LiB4Li54LijCivguJ7guLjguJfguJjguLHguJnguJTguKMKK+C4nuC4uOC4l+C4mOC4suC4h+C4geC4ueC4owor4Lie4Li44LiX4LiY4Liy4Lin4Liy4LiqCivguJ7guLjguJfguJjguLQKK+C4nuC4uOC4l+C4mOC4uOC4m+C4muC4suC4l+C4geC4suC4pQor4Lie4Li44LiX4LmC4LiY4LmICivguJ7guLjguJfguKPguLIKK+C4nuC4uOC4mAor4Lie4Li44Lie4Lit4LiHCivguJ7guLjguYjguKEKK+C4nuC4uOC5iOC4oeC4guC5ieC4suC4p+C4muC4tOC4k+C4keC5jAor4Lie4Li44LmI4Lih4Lie4Lin4LiHCivguJ7guLjguYjguKHguKHguYjguLLguKIKK+C4nuC4uOC4oeC5gOC4o+C4teC4ouC4hwor4Lie4Li44LmJ4LiiCivguJ7guLkKK+C4nuC4ueC5iAor4Lie4Li54LmI4LiB4Lil4Li04LmI4LiZCivguJ7guLnguYjguIHguLHguJkKK+C4nuC4ueC4geC4suC4oQor4Lie4Li54LiUCivguJ7guLnguJTguITguKXguYjguK3guIfguYDguKvguKHguLfguK3guJnguKXguYjguK3guIfguJnguYnguLMKK+C4nuC4ueC4lOC4iOC4meC4peC4tOC4h+C4q+C4peC4seC4mgor4Lie4Li54LiU4LiI4Lij4Li04LiH4LiX4Liz4LiI4Lij4Li04LiHCivguJ7guLnguJTguYDguJvguYfguJnguJXguYjguK3guKLguKvguK3guKIKK+C4nuC4ueC4lOC5gOC4m+C5h+C4meC4meC4seC4ogor4Lie4Li54LiU4LmA4Lib4LmH4LiZ4LiZ4LmJ4Liz4LmE4Lir4Lil4LmE4Lif4LiU4Lix4LiaCivguJ7guLnguJTguYDguJvguYfguJnguYTguJ8KK+C4nuC4ueC4lOC5hOC4m+C4quC4reC4h+C5hOC4nuC5gOC4muC4teC5ieC4oiDguJnguLTguYjguIfguYDguKrguLXguKLguJXguLPguKXguLbguIfguJfguK3guIcKK+C4nuC4ueC4lOC4reC4ouC5iOC4suC4h+C4oeC4sOC4meC4suC4p+C5hOC4oeC5iOC4oeC4teC4meC5ieC4swor4Lie4Li54LiZCivguJ7guLnguYnguJkKK+C4nuC4ueC4nuC4reC4mQor4Lie4Li54LmI4Lij4Liw4Lir4LiHCivguYDguJ4KK+C5gOC4nuC5h+C4gQor4LmA4Lie4LiB4LiyCivguYDguJ7guITguLAKK+C5gOC4nuC5h+C4hwor4LmA4Lie4LmI4LiHCivguYDguJ7guYjguIfguYDguKXguYfguIcKK+C5gOC4nuC5h+C4iAor4LmA4Lie4LmH4LiI4LmE4Lih4LmJCivguYDguJ7guIrguInguKXguLnguIHguKPguKPguKEKK+C5gOC4nuC4iuC4jOC4huC4suC4lQor4LmA4Lie4LiK4LijCivguYDguJ7guIrguKMtCivguYDguJ7guIrguKPguIHguKXguLHguJoKK+C5gOC4nuC4iuC4o+C4i+C4teC4gQor4LmA4Lie4LiK4Lij4LiU4LiyCivguYDguJ7guIrguKPguJXguLHguJTguYDguJ7guIrguKMKK+C5gOC4nuC4iuC4o+C4leC4suC5geC4oeC4pwor4LmA4Lie4LiK4Lij4LiZ4LmJ4Liz4LiE4LmJ4Liy4LiHCivguYDguJ7guIrguKPguJnguYnguLPguKvguJnguLbguYjguIcKK+C5gOC4nuC4iuC4o+C4meC4tOC4peC4iOC4tOC4meC4lOC4sgor4LmA4Lie4LiK4Lij4Lib4Liy4LiT4Li1CivguYDguJ7guIrguKPguKPguYjguKfguIcKK+C5gOC4nuC4iuC4o+C4o+C5ieC4suC4pwor4LmA4Lie4LiK4Lij4Lik4LiB4Lip4LmMCivguYDguJ7guIrguKPguKXguLnguIEKK+C5gOC4nuC4iuC4o+C4quC4seC4h+C4huC4suC4lQor4LmA4Lie4LiK4Lij4Lir4Lil4Li14LiBCivguYDguJ7guIrguKPguKvguLbguIcKK+C5gOC4nuC4iuC4o+C4suC4ouC4uOC4mAor4LmA4Lie4LmH4LiNCivguYDguJ7guJHguLnguKPguLTguKLguYwKK+C5gOC4nuC4k+C4tQor4LmA4Lie4LmH4LiU4LiX4Li54LilCivguYDguJ7guJTguLLguJkKK+C5gOC4nuC4lOC4suC4meC4muC4tOC4mQor4LmA4Lie4LiV4LijCivguYDguJ7guJcKK+C5gOC4nuC4l+C4meC4sgor4LmA4Lie4LiX4Liy4LiiCivguYDguJ7guJfguLjguJrguLLguKIKK+C5gOC4nuC5guC4lwor4LmA4Lie4LmC4LiX4Lia4Liy4LiiCivguYDguJ7guYjguJnguJ7guYjguLLguJkKK+C5gOC4nuC4meC4teC4ouC4lAor4LmA4Lie4LmE4LiZ4LiiCivguYDguJ7guYnguKIKK+C5gOC4nuC4o+C4hwor4LmA4Lie4Lij4LiL4Li14LmC4Lit4LiU4Li04LmA4Lih4Li14Lii4LihCivguYDguJ7guKPguLIKK+C5gOC4nuC4o+C4suC4h+C4suC4ogor4LmA4Lie4Lij4Liy4Lie4Lij4Li04LmJ4LiHCivguYDguJ7guKPguLLguYDguJ7guKPguLTguKgKK+C5gOC4nuC4o+C4suC4sAor4LmA4Lie4Lij4Liy4Liw4LiJ4Liw4LiZ4Lix4LmJ4LiZCivguYDguJ7guKPguLLguLDguKfguYjguLIKK+C5gOC4nuC4o+C4tOC4lAor4LmA4Lie4Lij4Li04LioCivguYDguJ7guKPguLTguKjguJ7guKPguLLguKIKK+C5gOC4nuC4o+C4tOC4qOC4nuC4o+C4tOC5ieC4hwor4LmA4Lie4Lij4Li04Lio4LmB4Lie4Lij4LmJ4LinCivguYDguJ7guKPguLXguKLguIEKK+C5gOC4nuC4o+C4teC4ouC4geC4nuC4o+C5ieC4reC4hwor4LmA4Lie4Lij4Li14Lii4LiHCivguYDguJ7guKPguLXguKLguIfguITguK3guKvguYjguLLguJkKK+C5gOC4nuC4o+C4teC4ouC4h+C5gOC4oeC4t+C4reC4hwor4LmA4Lie4Lij4Li14Lii4LiaCivguYDguJ7guKPguLXguYnguKLguKEKK+C5gOC4nuC4o+C4teC5ieC4ouC4oeC4nuC4o+C4suC4ogor4LmA4Lie4Lij4Li14Lii4LinCivguYDguJ7guKPguLXguKLguKfguKXguKEKK+C5gOC4nuC4o+C4t+C5iOC4rQor4LmA4Lie4Lij4Li34Lit4LiHCivguYDguJ7guKUKK+C5gOC4nuC4peC4hwor4LmA4Lie4Lil4LiH4LmA4LiK4Li04LiUCivguYDguJ7guKXguIfguJXguKPguLDguYDguIrguLTguI0KK+C5gOC4nuC4peC4h+C4ouC4suC4pwor4LmA4Lie4Lil4LiH4Liq4Liy4LiY4Li44LiB4Liy4LijCivguYDguJ7guKXguIfguYDguKrguKHguK0KK+C5gOC4nuC4peC4h+C4q+C4meC5ieC4suC4nuC4suC4l+C4ouC5jAor4LmA4Lie4Lil4LmH4LiUCivguYDguJ7guKXguYnguYLguJ7guKXguYkKK+C5gOC4nuC4peC4sgor4LmA4Lie4Lil4Liy4LiwCivguYDguJ7guKXguLLguLDguYHguJ7guKXguLAKK+C5gOC4nuC4peC4tOC4hwor4LmA4Lie4Lil4Li04LiH4LiB4Lix4Lil4Lib4LmMCivguYDguJ7guKXguLTguIfguJ/guYnguLIKK+C5gOC4nuC4peC4tOC4lOC5gOC4nuC4peC4tOC4mQor4LmA4Lie4Lil4Li04LiZCivguYDguJ7guKXguLXguKIKK+C5gOC4nuC4peC4teC5ieC4ogor4LmA4Lie4Lil4Li14LmI4Lii4LiHCivguYDguJ7guKXguLXguYjguKLguIfguJ7guKXguYnguLMKK+C5gOC4nuC4peC4teC4ouC5g+C4iAor4LmA4Lie4LioCivguYDguJ7guKjguKLguLHguJnguJTguKMKK+C5gOC4nuC4qgor4LmA4Lie4Liq4Lil4Liy4LiUCivguYDguJ7guYjguK0KK+C5gOC4nuC5ieC4rQor4LmA4Lie4LmJ4Lit4LmA4LiI4LmJ4LitCivguYDguJ7guK3guLTguI0KK+C5gOC4nuC4sAor4LmA4Lie4LiyCivguYDguJ7guLLguJ7guLDguIfguLIKK+C5gOC4nuC4suC4nuC4suC4pQor4LmA4Lie4Liy4LiwCivguYDguJ7guLTguIEKK+C5gOC4nuC4tOC4geC5gOC4ieC4ogor4LmA4Lie4Li04LiB4LiW4Lit4LiZCivguYDguJ7guLTguIcKK+C5gOC4nuC4tOC5iOC4hwor4LmA4Lie4Li04LiU4LmA4Lie4LmJ4LiiCivguYDguJ7guLTguYjguKEKK+C5gOC4nuC4tOC5iOC4oeC5gOC4leC4tOC4oQor4LmA4Lie4Li04LmI4Lih4Lie4Li54LiZCivguYDguJ7guLXguYnguKIKK+C5gOC4nuC4teC5ieC4ouC4geC4p+C4suC4mQor4LmA4Lie4Li14LmJ4Lii4LiB4Lin4LmJ4Liy4LiZCivguYDguJ7guLXguKLguIcKK+C5gOC4nuC4teC5ieC4ouC4hwor4LmA4Lie4Li14Lii4LiH4LiU4Lix4LiHCivguYDguJ7guLXguKLguIfguJnguLHguYnguJkKK+C5gOC4nuC4teC4ouC4h+C4meC4teC5iQor4LmA4Lie4Li14Lii4LiH4Lie4LitCivguYDguJ7guLXguKLguIfguK3guK0KK+C5gOC4nuC4teC4ouC4iuC4meC5jAor4LmA4Lie4Li14Lii4LiZCivguYDguJ7guLXguYnguKLguJkKK+C5gOC4nuC4teC5ieC4ouC4meC4nOC4seC4lAor4LmA4Lie4Li14Lii4LiaCivguYDguJ7guLXguKLguJrguJ7guKPguYnguK3guKEKK+C5gOC4nuC4teC4ouC4owor4LmA4Lie4Li34LmI4LitCivguYDguJ7guLfguYjguK3guJkKK+C5gOC4nuC4t+C5iOC4reC4meC5gOC4geC4peC4rQor4LmA4Lie4Li34LmI4Lit4LiZ4LmA4LiI4LmJ4Liy4Lia4LmI4Liy4LinCivguYDguJ7guLfguYjguK3guJnguYDguIjguYnguLLguKrguLLguKcKK+C5gOC4nuC4t+C5iOC4reC4meC4muC5ieC4suC4mQor4LmA4Lie4Li34LmI4Lit4LiZ4Lid4Li54LiHCivguYHguJ4KK+C5geC4nuC5iQor4LmB4Lie4LiC4LiZ4Liy4LiZ4Lii4LiZ4LiV4LmMCivguYHguJ7guIcKK+C5geC4nuC5iOC4hwor4LmB4Lie4LiH4Lie4Lin4LiiCivguYHguJ7guIfguJ7guKfguKLguJ3guKPguLHguYjguIcKK+C5geC4nuC5h+C4h+C5geC4nuC4pwor4LmB4Lie4LmB4LiV4LiBCivguYHguJ7guJfguKItCivguYHguJ7guJfguKLguYwKK+C5geC4nuC4l+C4ouC4qOC4suC4quC4leC4o+C5jAor4LmB4Lie4LiX4Lii4LiyCivguYHguJ7guYnguJfguYnguK3guIcKK+C5geC4nuC4mQor4LmB4Lie4LmI4LiZCivguYHguJ7guJnguIEKK+C5geC4nuC4meC4h+C5gOC4iuC4tOC4hwor4LmB4Lie4LmJ4LmA4Lib4LmH4LiZ4Lie4Lij4LiwIOC4iuC4meC4sOC5gOC4m+C5h+C4meC4oeC4suC4owor4LmB4Lie4LmJ4LmA4Lib4Lij4Li14Lii4LiaCivguYHguJ7guYnguJzguKEKK+C5geC4nuC5ieC4nOC4seC4pwor4LmB4Lie4LmJ4Lif4Lix4LiZCivguYHguJ7guYnguKDguLHguKLguJXguLHguKcKK+C5geC4nuC5ieC5gOC4oeC4teC4ogor4LmB4Lie4LijCivguYHguJ7guKPguYgKK+C5geC4nuC4o+C4gQor4LmB4Lie4Lij4LmI4LiC4LmI4Liy4LinCivguYHguJ7guKPguYjguIcKK+C5geC4nuC4o+C5iOC4h+C4nuC4o+C4suC4ogor4LmB4Lie4Lij4LinCivguYHguJ7guKPguYnguKcKK+C5geC4nuC4o+C4p+C4nuC4o+C4suC4ogor4LmB4Lie4Lij4Lin4Lie4Lij4Liy4LinCivguYHguJ7guKPguYjguKvguKXguLLguKIKK+C5geC4nuC5ieC4o+C4ueC5iQor4LmB4Lie4LmJ4LmB4Lij4LiHCivguYHguJ7guKXguIcKK+C5geC4nuC4peC4l+C4tOC4meC4seC4oQor4LmB4Lie4Lil4LihCivguYHguJ7guKXguYDguKXguYDguJTguLXguKLguKEKK+C5geC4nuC4peC4sAor4LmB4Lie4Lil4Liw4LmC4Lil4LihCivguYHguJ7guKXguLnguIHguJrguKfguJoKK+C5geC4nuC4pwor4LmB4Lie4LmJ4LinCivguYHguJ7guKjguKLguYwKK+C5geC4nuC4qOC4ouC4sgor4LmB4Lie4LiwCivguYHguJ7guLDguKPguLHguJrguJrguLLguJsKK+C5geC4nuC4sOC5guC4peC4oQor4LmC4LieCivguYLguJ7guIEKK+C5guC4nuC4geC4nuC4suC4ogor4LmC4Lie4LiHCivguYLguJ7guIfguJ7guLLguIcKK+C5guC4nuC4iuC4jOC4h+C4hOC5jAor4LmC4Lie4LiL4Li04LiV4Lij4Lit4LiZCivguYLguJ7guJQKK+C5guC4nuC4l+C4sOC5gOC4pQor4LmC4Lie4LmB4LiX4Liq4LmA4LiL4Li14Lii4LihCivguYLguJ7guJgKK+C5guC4nuC4mOC4tC0KK+C5guC4nuC4mOC4tOC5jAor4LmC4Lie4LiY4Li04LiN4Liy4LiTCivguYLguJ7guJjguLTguJrguLHguKXguKXguLHguIfguIHguYwKK+C5guC4nuC4mOC4tOC4m+C4seC4geC4guC4tOC4ouC4mOC4o+C4o+C4oQor4LmC4Lie4LiY4Li04Liq4Lih4Lig4Liy4LijCivguYLguJ7guJjguLTguKrguLHguJXguKfguYwKK+C5guC4nuC4mQor4LmC4Lie4LmJ4LiZCivguYLguJ7guJnguJfguLDguJnguLIKK+C5guC4nuC5ieC4meC4l+C4sOC5gOC4pQor4LmC4Lie4LiZ4LmA4Lie4LiZCivguYLguJ7guJrguLLguKIKK+C5guC4nuC4nOC4seC4mQor4LmC4Lie4LiiCivguYLguJ7guKLguIHguYrguKfguJkKK+C5guC4nuC4ouC4oQor4LmC4Lie4Lii4Lih4Lii4Liy4LiZCivguYLguJ7guKLguKHguLHguJkKK+C5guC4nuC4ouC4oeC4suC4mQor4LmC4Lie4Lij4LiBCivguYLguJ7guKPguIcKK+C5guC4nuC4o+C4h+C5geC4quC4oQor4LmC4Lie4Lij4LmC4LiX4LmB4Lit4LiB4LiX4Li04LmA4LiZ4Li14Lii4LihCivguYLguJ7guKPguKHguLXguYDguJfguLXguKLguKEKK+C5guC4nuC4o+C4sOC4lOC4gQor4LmC4Lie4Lil4LmICivguYLguJ7guKXguIcKK+C5guC4nuC4peC5iOC4hwor4LmC4Lie4Lil4LmJ4LiHCivguYLguJ7guKXguJkKK+C5guC4nuC4peC5ieC5gOC4nuC4peC5iQor4LmC4Lie4Lil4LiwCivguYLguJ7guKrguJ4KK+C5hOC4ngor4LmE4Lie4LmICivguYTguJ7guIjguLTguJXguKMKK+C5hOC4nuC4iuC4mQor4LmE4Lie4LiK4Lii4LiZ4LiV4LmMCivguYTguJ7guJHguLnguKPguKLguYwKK+C5hOC4nuC5guC4lOC4owor4LmE4Lie4LiX4Li1CivguYTguJ7guJrguLnguKXguKLguYwKK+C5hOC4nuC5iOC4m+C5iuC4reC4gQor4LmE4Lie4Lie4Lij4Lij4LiTCivguYTguJ7guYDguJ7guLTguJQKK+C5hOC4nuC5iOC5hOC4nwor4LmE4Lie4Lih4Lit4LiBCivguYTguJ7guKHguYnguLIKK+C5hOC4nuC4owor4LmE4Lie4Lij4LmICivguYTguJ7guKPguITguLTguYnguKcKK+C5hOC4nuC4o+C4iOC4tOC4leC4owor4LmE4Lie4Lij4LiK4LiZCivguYTguJ7guKPguIrguKLguJnguJXguYwKK+C5hOC4nuC4o+C4keC4ueC4o+C4ouC5jAor4LmE4Lie4Lij4LiX4Li1CivguYTguJ7guKPguJrguLnguKXguKLguYwKK+C5hOC4nuC4o+C4m+C4suC4gQor4LmE4Lie4Lij4LmI4Lie4LilCivguYTguJ7guKPguYjguJ/guYnguLIKK+C5hOC4nuC4o+C4o+C4sOC4q+C4hwor4LmE4Lie4Lij4LmA4Lij4Liy4LiwCivguYTguJ7guKPguKfguLHguJkKK+C5hOC4nuC4o+C4quC4k+C4keC5jAor4LmE4Lie4Lij4LmI4Liq4LihCivguYTguJ7guKPguYjguKrguYjguKfguKIKK+C5hOC4nuC4o+C4quC4seC4k+C4keC5jAor4LmE4Lie4Lij4Liq4Liy4LiT4LiR4LmMCivguYTguJ7guKPguKrguLLguKHguIHguK0KK+C5hOC4nuC4o+C5iOC4q+C4peC4p+C4hwor4LmE4Lie4Lij4Lix4LiKCivguYTguJ7guKPguLHguIotCivguYTguJ7guKPguLMKK+C5hOC4nuC4o+C4tOC4mQor4LmE4Lie4Lij4Li04LiZ4LiX4Lij4LmMCivguYTguJ7guKPguLUKK+C5hOC4nuC4o+C4uQor4LmE4Lie4LmA4Lij4Liy4LiwCivguYTguJ7guYLguKPguIjguJnguYwKK+C5hOC4nuC4pQor4LmE4Lie4Lil4LmICivguYTguJ7guKXguYjguKvguKXguLHguIcKK+C5hOC4nuC4qOC4suC4ggor4LmE4Lie4Lio4Liy4LiCLQor4LmE4Lie4Lio4Liy4LiC4Lia4Li44Lij4LiT4Lih4Li1CivguYTguJ7guKjguLLguILguKHguLLguKoKK+C5hOC4nuC4qOC4suC4pQor4LmE4Lie4LmA4Lio4LipCivguYTguJ7guKrguJ4KK+C5hOC4nuC4quC4tOC4kAor4LmE4Lie4Lir4Liy4LijCivguJ8KK+C4n+C4gQor4Lif4LiB4LiK4LmJ4Liz4LiU4Liz4LmA4LiC4Li14Lii4LinCivguJ/guYnguIcKK+C4n+C4o+C4seC4geC5guC4l+C4qgor4Lif4Lij4Li1CivguJ/guKPguLXguJrguLLguKPguYwKK+C4n+C4peC4ueC4reC4reC4o+C4teC4mQor4Lif4LmI4LitCivguJ/guYnguK0KK+C4n+C4reC4gQor4Lif4Lit4LiB4LiL4Lix4LiBCivguJ/guK3guIHguJzguYnguLIKK+C4n+C4reC4geC4nuC4ouC4suC4mQor4Lif4Lit4LiB4LmC4Lil4Lir4Li04LiVCivguJ/guK3guIHguKvguJnguLHguIcKK+C4n+C4reC4hwor4Lif4LmI4Lit4LiHCivguJ/guYnguK3guIcKK+C4n+C5ieC4reC4h+C4geC4peC4seC4mgor4Lif4Lit4LiH4LiB4Liy4LihCivguJ/guYnguK3guIfguJXguLHguKfguYDguK3guIcKK+C4n+C4reC4h+C5gOC4leC5ieC4suC4q+C4ueC5iQor4Lif4Lit4LiH4LiX4Liw4LmA4LilCivguJ/guK3guIfguJnguYnguLMKK+C4n+C5iOC4reC4h+C4n+C4uQor4Lif4Lit4LiH4Lih4Lix4LiZCivguJ/guYnguK3guIfguYHguKLguYnguIcKK+C4n+C5ieC4reC4h+C4o+C5ieC4reC4hwor4Lif4Lit4LiUCivguJ/guK3guJTguYHguJ/guJQKK+C4n+C4reC4mQor4Lif4LmI4Lit4LiZCivguJ/guYnguK3guJkKK+C4n+C5ieC4reC5geC4n+C5iQor4Lif4Lit4Lij4LmM4Lih4Liy4Lil4LiU4Li14LmE4Liu4LiU4LmMCivguJ/guK3guKPguYzguKHguLLguKXguLTguJkKK+C4n+C4reC4quC4n+C4reC4o+C4seC4qgor4Lif4Lit4Liq4LmA4Lif4LiVCivguJ/guLDguJ/guLHguJQKK+C4n+C4sOC4n+C4seC5iOC4mQor4Lif4Liw4Lif4LmI4Liy4LiiCivguJ/guLHguIEKK+C4n+C4seC4geC4guC5ieC4suC4pwor4Lif4Lix4LiB4LiV4Lix4LinCivguJ/guLHguIHguJfguK3guIcKK+C4n+C4seC4geC4n+C4uOC5ieC4mQor4Lif4Lix4LiB4Lif4Li54LihCivguJ/guLHguIHguYDguKvguKXguLfguK3guIcKK+C4n+C4seC4hwor4Lif4Lix4LiH4LiB4LmM4LiK4Lix4LiZCivguJ/guLHguIfguILguLbguYnguJkKK+C4n+C4seC4h+C5hOC4lOC5iQor4Lif4Lix4LiH4LmE4Lih4LmI4LmE4LiU4LmJ4Lio4Lix4Lie4LiX4LmMIOC4iOC4seC4muC5hOC4m+C4geC4o+C4sOC5gOC4lOC4teC4ouC4lAor4Lif4Lix4LiH4Lir4Li54LmE4Lin4LmJ4Lir4Li5CivguJ/guLHguIfguK3guK3guIEKK+C4n+C4seC4lAor4Lif4Lix4LiU4LmA4Lif4Li14Lii4LiUCivguJ/guLHguJkKK+C4n+C4seC5iOC4mQor4Lif4Lix4LmJ4LiZCivguJ/guLHguJnguITguKXguLfguYjguJkKK+C4n+C4seC4meC4iuC5ieC4suC4hwor4Lif4Lix4LiZ4LiU4Liy4LiaCivguJ/guLHguJnguJbguLLguKfguKMKK+C4n+C4seC4meC5geC4l+C5iQor4Lif4Lix4LiZ4LiZ4LmJ4Liz4LiZ4LihCivguJ/guLHguJnguJvguKXguLIKK+C4n+C4seC4meC4neC5iOC4sgor4Lif4Lix4LmI4LiZ4LmA4Lid4Li34LitCivguJ/guLHguJnguYDguJ/guLfguK3guIcKK+C4n+C4seC5iOC4meC5gOC4n+C4t+C4reC4mQor4Lif4Lix4LiZ4Lih4LmJ4LiyCivguJ/guLHguJnguYDguKXguLfguYjguK3guKIKK+C4n+C4seC4meC4q+C4meC4uQor4Lif4Lix4LiZ4Lir4Lil4LitCivguJ/guYnguLIKK+C4n+C4suC4gQor4Lif4LmJ4Liy4LiE4Liw4LiZ4Lit4LiHCivguJ/guYnguLLguYDguITguLfguK3guIfguKrguLHguJnguKvguKXguLHguIcKK+C4n+C4suC4hwor4Lif4LmI4Liy4LiHCivguJ/guLLguIfguKXguK3guKIKK+C4n+C4suC4lAor4Lif4Liy4LiU4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJ/guLLguJTguKvguLHguKcKK+C4n+C4suC4l+C4reC4oQor4Lif4Liy4LiZCivguJ/guYnguLLguJzguYjguLIKK+C4n+C5ieC4suC4neC5iOC4rQor4Lif4LmI4Liy4LihCivguJ/guYnguLLguKHguLjguYjguKIKK+C4n+C5ieC4suC5hOC4oeC5iOC4geC4o+C4sOC5gOC4l+C4t+C4reC4meC4quC4seC4meC4q+C4peC4seC4hwor4Lif4Liy4LiiCivguJ/guLLguKLguJnguYnguLPguJXguLIKK+C4n+C4suC4ouC4oeC4t+C4rQor4Lif4Liy4Lij4LmM4LihCivguJ/guYnguLLguKPguYnguK3guIcKK+C4n+C5ieC4suC5geC4peC4mgor4Lif4Liy4Liq4LiL4Li04Liq4LiV4LmMCivguJ/guYnguLLguKvguKXguLHguKcKK+C4n+C4tOC4gQor4Lif4Li04LiUCivguJ/guLTguJoKK+C4n+C4tOC4peC5jOC4oQor4Lif4Li04Lin4Liq4LmMCivguJ/guLTguKrguLTguIHguKrguYwKK+C4n+C4teC5iAor4Lif4Li14LmJCivguJ/guLfguJkKK+C4n+C4t+C5ieC4mQor4Lif4Li34LmJ4LiZ4LiV4Lix4LinCivguJ/guLfguYnguJnguJ3guK3guKIKK+C4n+C4t+C5ieC4meC4n+C4uQor4Lif4Li34LmJ4LiZ4Lit4LiH4LiE4LmMCivguJ/guLfguKEKK+C4n+C4uAor4Lif4Li44LmJ4LiHCivguJ/guLjguYnguIfguIvguYjguLLguJkKK+C4n+C4uOC5ieC4h+C5gOC4n+C5ieC4rQor4Lif4Li44LmJ4LiH4LmA4Lif4Li34LmI4Lit4LiHCivguJ/guLjguJUKK+C4n+C4uOC4leC4muC4reC4pQor4Lif4Li44LiZCivguJ/guLjguJoKK+C4n+C4uOC5iOC4mgor4Lif4Li44Lif4LiwCivguJ/guLjguYjguKHguYDguJ/guLfguK3guKIKK+C4n+C4uOC4peC4quC5geC4geC5iuC4mwor4Lif4Li5CivguJ/guLnguYgKK+C4n+C4ueC4gQor4Lif4Li54LiUCivguJ/guLnguJTguJ/guLLguJQKK+C4n+C4ueC4n+C5iOC4reC4hwor4Lif4Li54LihCivguJ/guLnguKHguJnguYnguLMKK+C4n+C4ueC4oeC4n+C4seC4gQor4Lif4Li54Lih4Lif4Liy4LiiCivguJ/guLnguKHguYDguKXguLXguYnguKLguIcKK+C5gOC4n+C5h+C4lAor4LmA4Lif4LmH4LiU4Lir4Liy4LinCivguYDguJ/guYnguJkKK+C5gOC4n+C4peC4lOC5jOC4quC4m+C4suC4o+C5jAor4LmA4Lif4LmJ4LitCivguYDguJ/guK3guKPguYzguYDguKHguLXguKLguKEKK+C5gOC4n+C4reC4sAor4LmA4Lif4Lit4Liw4Lif4LiwCivguYDguJ/guLAKK+C5gOC4n+C4sOC4n+C4sAor4LmA4Lif4Li04LiZCivguYDguJ/guLXguYnguKLguKEKK+C5gOC4n+C4teC5ieC4ouC4oeC5gOC4neC5ieC4sgor4LmA4Lif4Li14LmJ4Lii4LinCivguYDguJ/guLfguK0KK+C5gOC4n+C4t+C5iOC4rQor4LmA4Lif4Li34LmJ4LitCivguYDguJ/guLfguK3guIcKK+C5gOC4n+C4t+C5iOC4reC4hwor4LmA4Lif4Li34LmJ4Lit4LiHCivguYDguJ/guLfguYjguK3guIfguJ/guYnguLIKK+C5gOC4n+C4t+C5iOC4reC4h+C4n+C4uOC5ieC4hwor4LmA4Lif4Li34LmI4Lit4LiH4Lif4Li5CivguYDguJ/guLfguK3guJkKK+C5gOC4n+C4t+C4reC4ogor4LmA4Lif4Li34LmJ4Lit4LiiCivguYHguJ/guYgKK+C5geC4n+C4hwor4LmB4Lif4LiK4Lix4LmI4LiZCivguYHguJ/guJoKK+C5geC4n+C5ieC4oQor4LmB4Lif4Lij4LiZ4LmA4LiL4Li14Lii4LihCivguYHguJ/guKXguIHguIvguYwKK+C5geC4n+C4peC4lQor4LmB4Lif4LiwCivguYLguJ/guIHguLHguKoKK+C5hOC4nwor4LmE4Lif4LiB4Lix4Lil4Lib4LmMCivguYTguJ/guIjguLjguIHguJXguLnguJQKK+C5hOC4n+C4ieC4suC4ogor4LmE4Lif4LmB4LiK4LmH4LiBCivguYTguJ/guJjguLLguJXguLgKK+C5hOC4n+C4n+C5ieC4sgor4LmE4Lif4Lif4LmJ4Liy4LiB4Lij4Liw4LmB4LiqCivguYTguJ/guJ/guYnguLLguKrguJbguLTguJUKK+C5hOC4n+C4peC4suC4oeC4l+C4uOC5iOC4hwor4LmE4Lif4Liq4Li44Lih4LiC4Lit4LiZCivguKAKK+C4oOC4hAor4Lig4LiE4Lin4LiU4Li1CivguKDguITguKfguLHguJUKK+C4oOC4hOC4p+C4seC4meC4leC5jAor4Lig4LiE4Lin4Lix4LihCivguKDguITguKfguLIKK+C4oOC4hOC4p+C4suC4mQor4Lig4LiE4Lix4LiZ4LiX4Lil4LiyCivguKDguITguLTguJnguLUKK+C4oOC4kwor4Lig4LiT4Li04LiU4LiyCivguKDguJ4KK+C4oOC4oeC4geC4suC4owor4Lig4Lih4LijCivguKDguKHguKPguLTguJkKK+C4oOC4oeC4o+C4tQor4Lig4Lih4Li4CivguKDguKHguLjguIHguLAKK+C4oOC4oeC4uOC4geC4sgor4Lig4LiiLQor4Lig4Lii4Lix4LiZ4LiV4Lij4Liy4LiiCivguKDguKLguLLguITguJXguLQKK+C4oOC4owor4Lig4Lij4LiT4Li1CivguKDguKPguJPguLXguKDguLkKK+C4oOC4o+C4lQor4Lig4Lij4LiVLQor4Lig4Lij4LiV4Lin4Lij4Lij4LipCivguKDguKPguJXguKjguLLguKrguJXguKPguYwKK+C4oOC4o+C4o+C4lOC4owor4Lig4Lij4Lij4LiU4LiyCivguKDguKPguKPguKLguLIKK+C4oOC4o+C4sOC4oeC4owor4Lig4Lij4Liw4Lih4Lij4Li1CivguKDguKPguLHguKrguJTguLLguKkKK+C4oOC4o+C4suC4lOC4owor4Lig4Lij4Liy4LiU4Lij4Lig4Liy4LieCivguKDguKPguLLguJTguLIKK+C4oOC4o+C4suC4leC4oy0KK+C4oOC4o+C4suC4leC4o+C4oOC4suC4ngor4Lig4Lij4Liy4LiV4LikLQor4Lig4Lij4Liy4LiV4Lik4Lig4Liy4LieCivguKDguKPguLTguKLguLIKK+C4oOC4o+C4uQor4Lig4Lij4Li54Lih4LiT4LiR4LilCivguKDguKTguIfguITguLLguKMKK+C4oOC4pOC4lOC4gQor4Lig4Lik4LiU4Li1CivguKDguKTguJXguKLguYwKK+C4oOC4pOC4qAor4Lig4Lik4Lip4LiP4LmMCivguKDguKcKK+C4oOC4py0KK+C4oOC4p+C4geC4qeC4seC4ogor4Lig4Lin4LiV4Lix4LiT4Lir4LiyCivguKDguKfguJnguLAKK+C4oOC4p+C4m+C4suC4o+C4sAor4Lig4Lin4Lix4LiE4LijCivguKDguKfguLHguIfguIQtCivguKDguKfguLHguIfguITguYwKK+C4oOC4p+C4seC4h+C4hOC4iOC4tOC4lQor4Lig4Lin4Lix4LiZ4LiU4LijCivguKDguKfguLLguKDguJ4KK+C4oOC4seC4geC4guC4sAor4Lig4Lix4LiB4LiU4Li1CivguKDguLHguIHguJUtCivguKDguLHguIHguJXguIHguKTguJXguKLguYwKK+C4oOC4seC4geC4leC4sAor4Lig4Lix4LiB4LiV4Li0CivguKDguLHguIHguKktCivguKDguLHguIHguKnguYwKK+C4oOC4seC4geC4qeC4geC4suC4owor4Lig4Lix4LiB4Lip4LiyCivguKDguLHguIHguKnguLLguKvguLLguKMKK+C4oOC4seC4hAor4Lig4Lix4LiE4LiZ4LmMCivguKDguLHguIfguIQtCivguKDguLHguIfguITguLAKK+C4oOC4seC4h+C4hOC4tQor4Lig4Lix4LiICivguKDguLHguI3guIrguLAKK+C4oOC4seC4k+C4kS0KK+C4oOC4seC4k+C4keC5jAor4Lig4Lix4LiT4LiR4LiE4Lij4Lij4LigCivguKDguLHguJPguJHguJnguLAKK+C4oOC4seC4k+C4keC4suC4hOC4suC4owor4Lig4Lix4LiT4LiR4Liy4LiE4Liy4Lij4Li04LiBCivguKDguLHguJPguJHguLLguKPguLHguIHguKnguYwKK+C4oOC4seC4k+C4keC4uQor4Lig4Lix4LiT4LiR4Li54LiB4Lij4Lij4LihCivguKDguLHguJUKK+C4oOC4seC4lS0KK+C4oOC4seC4leC4geC4tOC4iAor4Lig4Lix4LiV4LiV4Liy4LiE4Liy4LijCivguKDguLHguJXguJXguLLguKvguLLguKMKK+C4oOC4seC4leC4owor4Lig4Lix4LiX4LijCivguKDguLHguJfguKMtCivguKDguLHguJfguKPguIHguLHguJsKK+C4oOC4seC4l+C4o+C4geC4uOC4oeC4oOC5jAor4Lig4Lix4LiX4Lij4Lia4LiX4Lih4Liy4LiqCivguKDguLHguJfguKPguJrguLTguJAKK+C4oOC4seC4ngor4Lig4Lix4LiiCivguKDguLHguKrguJTguLIKK+C4oOC4seC4quC4leC4o+C4sgor4Lig4Lix4Liq4Lih4LiwCivguKDguLHguKrguKrguKMKK+C4oOC4sgor4Lig4Liy4LiB4LijCivguKDguLLguIQKK+C4oOC4suC4hC0KK+C4oOC4suC4hOC4leC4seC4lOC4geC4o+C4p+C4ogor4Lig4Liy4LiE4LiX4Lik4Lip4LiO4Li1CivguKDguLLguITguJfguLHguJPguJHguYwKK+C4oOC4suC4hOC4meC4tOC4nuC4meC4mOC5jAor4Lig4Liy4LiE4Lib4LiP4Li04Lia4Lix4LiV4Li0CivguKDguLLguITguJ7guLfguYnguJkKK+C4oOC4suC4hOC4oOC4ueC4oeC4tAor4Lig4Liy4LiE4Lii4LmMCivguKDguLLguITguKLguLLguJnguLjguKfguLHguJXguLQKK+C4oOC4suC4hOC5gOC4o+C4teC4ouC4mQor4Lig4Liy4LiE4LmA4Liq4LiYCivguKDguLLguITguLTguJnguLUKK+C4oOC4suC4hOC4tOC5hOC4meC4ogor4Lig4Liy4LiE4Li1CivguKDguLLguITguLXguKLguLAKK+C4oOC4suC4iuC4meC4sAor4Lig4Liy4LiK4LiZ4Li14LiiLQor4Lig4Liy4LiK4Li1CivguKDguLLguJMKK+C4oOC4suC4ky0KK+C4oOC4suC4k+C4gQor4Lig4Liy4LiT4Lin4Liy4LijCivguKDguLLguJPguLUKK+C4oOC4suC4k+C4uAor4Lig4Liy4LiT4Li44Lih4Liy4LioCivguKDguLLguJTguKMKK+C4oOC4suC4lOC4sgor4Lig4Liy4LiV4LijCivguKDguLLguJXguLIKK+C4oOC4suC4leC4tOC4geC4sAor4Lig4Liy4LiV4Li04Lii4LiwCivguKDguLLguJXguLgKK+C4oOC4suC4ngor4Lig4Liy4LieLQor4Lig4Liy4Lie4LiB4Liy4LiBCivguKDguLLguJ7guIjguKPguLTguIcKK+C4oOC4suC4nuC4luC5iOC4suC4ogor4Lig4Liy4Lie4LiZ4Li04LmI4LiHCivguKDguLLguJ7guJvguKPguLDguIHguK3guJoKK+C4oOC4suC4nuC4m+C4ueC4meC5gOC4m+C4teC4ouC4gQor4Lig4Liy4Lie4Lie4LiI4LiZ4LmMCivguKDguLLguJ7guKLguYwKK+C4oOC4suC4nuC4ouC4meC4leC4o+C5jAor4Lig4Liy4Lie4Lil4Lin4LiH4LiV4LiyCivguKDguLLguJ7guKXguLHguIHguKnguJPguYwKK+C4oOC4suC4nuC5gOC4quC4oeC4t+C4reC4mQor4Lig4Liy4Lie4Lir4Li44LmI4LiZ4LiZ4Li04LmI4LiHCivguKDguLLguKEKK+C4oOC4suC4ogor4Lig4Liy4Lii4LiZ4Lit4LiBCivguKDguLLguKLguYPguJkKK+C4oOC4suC4ouC4q+C4meC5ieC4sgor4Lig4Liy4Lii4Lir4Lil4Lix4LiHCivguKDguLLguKMKK+C4oOC4suC4oy0KK+C4oOC4suC4o+C4geC4tOC4iAor4Lig4Liy4Lij4LiU4Li1CivguKDguLLguKPguJUKK+C4oOC4suC4o+C4lS0KK+C4oOC4suC4o+C4leC4p+C4tOC4l+C4ouC4sgor4Lig4Liy4Lij4LiV4Li1CivguKDguLLguKPguJjguLjguKPguLAKK+C4oOC4suC4o+C4ouC4l+C4o+C4seC4nuC4ouC5jAor4Lig4Liy4Lij4Lii4LiyCivguKDguLLguKPguYLguKPguIcKK+C4oOC4suC4o+C4sAor4Lig4Liy4Lij4Liw4LiI4Liz4Lii4Lit4LihCivguKDguLLguKPguLDguJXguLTguJTguJ7guLHguJkKK+C4oOC4suC4o+C4sOC4leC4tOC4lOC4nuC4seC4meC5g+C4meC4reC4quC4seC4h+C4q+C4suC4o+C4tOC4oeC4l+C4o+C4seC4nuC4ouC5jAor4Lig4Liy4Lij4LiyCivguKDguLLguKctCivguKDguLLguKfguJnguLIKK+C4oOC4suC4p+C4meC4suC4oeC4seC4ogor4Lig4Liy4Lin4Lio4Li44LiX4LiY4Li0CivguKDguLLguKfguLAKK+C4oOC4suC4p+C4sOC4ieC4uOC4geC5gOC4ieC4tOC4mQor4Lig4Liy4LipCivguKDguLLguKnguIEKK+C4oOC4suC4qeC4k+C5jAor4Lig4Liy4Lip4LiyCivguKDguLLguKnguLLguKjguLLguKrguJXguKPguYwKK+C4oOC4suC4qeC4tOC4lQor4Lig4Liy4Lip4Li1CivguKDguLLguKnguLXguYDguIfguLTguJnguYTguJTguYkKK+C4oOC4suC4qeC4teC4muC4s+C4o+C4uOC4h+C4l+C5ieC4reC4h+C4l+C4teC5iAor4Lig4Liy4Lip4Li14Lih4Li54Lil4LiE4LmI4Liy4LmA4Lie4Li04LmI4LihCivguKDguLLguKnguLXguYLguKPguIfguYDguKPguLfguK3guJnguYHguKXguLDguJfguLXguYjguJTguLTguJkKK+C4oOC4suC4qeC4teC4quC4o+C4o+C4nuC4quC4suC4oeC4tOC4lQor4Lig4Liy4LiqCivguKDguLLguKotCivguKDguLLguKrguIHguKMKK+C4oOC4suC4quC4meC5jAor4Lig4Liy4Liq4Lin4LijCivguKDguLLguKrguLIKK+C4oOC4suC4quC4uOC4owor4Lig4Li04LiB4LiC4LiyCivguKDguLTguIHguILguLLguIjguLLguKMKK+C4oOC4tOC4geC4guC4suC4q+C4suC4owor4Lig4Li04LiB4LiC4Li4CivguKDguLTguIHguILguLjguJnguLUKK+C4oOC4tOC4geC4qeC4sgor4Lig4Li04LiB4Lip4Liy4LiI4Liy4LijCivguKDguLTguIHguKnguLLguKvguLLguKMKK+C4oOC4tOC4geC4qeC4uAor4Lig4Li04LiB4Lip4Li44LiT4Li1CivguKDguLTguIfguITguLLguKMKK+C4oOC4tOC4h+C4qgor4Lig4Li04LiH4Liq4LiZ4LiwCivguKDguLTguIfguKrguKMKK+C4oOC4tOC4jeC5guC4jQor4Lig4Li04LiN4LmC4LiN4Lig4Liy4LieCivguKDguLTguJXguJXguLQKK+C4oOC4tOC4lwor4Lig4Li04LiZLQor4Lig4Li04LiZ4LiK4Liy4LiV4Li0CivguKDguLTguJnguJctCivguKDguLTguJnguJfguYwKK+C4oOC4tOC4meC4l+C4mS0KK+C4oOC4tOC4meC4l+C4meC4suC4geC4suC4owor4Lig4Li04LiZ4Lin4Lij4Lij4LiTCivguKDguLTguKLguYLguKIKK+C4oOC4tOC4ouC5guC4ouC4oOC4suC4ngor4Lig4Li04Lij4Lih4Lii4LmMCivguKDguLTguKPguKHguKLguYzguKrguLjguKPguLLguIfguITguYwKK+C4oOC4tOC4qeC4seC4igor4Lig4Li04LiqCivguKDguLTguKrguLHguIEKK+C4oOC4teC4leC4sAor4Lig4Li14LihCivguKDguLXguKPguLgKK+C4oOC4teC4o+C4uOC4gS0KK+C4oOC4teC4o+C4uOC4geC4iuC4suC4leC4tAor4Lig4Li44LiB4LiVLQor4Lig4Li44LiB4LiV4LmMCivguKDguLjguIHguJXguYDguKjguKkKK+C4oOC4uOC4geC4leC4suC4q+C4suC4owor4Lig4Li44LiC4Lix4LiZCivguKDguLjguIoKK+C4oOC4uOC4ii0KK+C4oOC4uOC4iuC4hAor4Lig4Li44LiK4LiH4LiE4LmMCivguKDguLjguIrguIfguITguJvguKPguLDguKLguLLguJUKK+C4oOC4uOC4iuC4h+C4hOC4oQor4Lig4Li44LiK4Liq4Lih4LmC4Lig4LiECivguKDguLjguIrguLIKK+C4oOC4uOC4jeC4igor4Lig4Li44LiVCivguKDguLjguKEKK+C4oOC4uOC4oS0KK+C4oOC4uOC4oeC5gOC4l+C4p+C4lOC4sgor4Lig4Li44Lih4Lij4LiwCivguKDguLjguKHguKPguLHguJXguJnguYwKK+C4oOC4uOC4oeC4o+C4sgor4Lig4Li44Lih4Lij4Li04LiZCivguKDguLjguKHguKPguLUKK+C4oOC4uOC4oeC5gOC4o+C4qAor4Lig4Li44Lih4Lin4Liy4LijCivguKDguLjguKoKK+C4oOC4uQor4Lig4Li54LmICivguKDguLnguYDguILguLIKK+C4oOC4ueC5gOC4guC4suC4meC5ieC4s+C5geC4guC5h+C4hwor4Lig4Li54LmA4LiC4Liy4LmE4LifCivguKDguLnguYLguIoKK+C4oOC4ueC4lOC4pQor4Lig4Li54LiU4Liy4LiUCivguKDguLnguJUKK+C4oOC4ueC4lS0KK+C4oOC4ueC4leC4hOC4suC4oQor4Lig4Li54LiV4Lia4LiU4Li1CivguKDguLnguJXguKPguLnguJsKK+C4oOC4ueC4leC4tAor4Lig4Li54LiV4Li1CivguKDguLnguYDguJXguKjguKfguKMKK+C4oOC4ueC4mOC4owor4Lig4Li54LiY4LmA4Lij4LioCivguKDguLnguJjguYDguKPguKjguKfguKMKK+C4oOC4ueC4meC4suC4lgor4Lig4Li54LiZ4Liy4Lii4LiBCivguKDguLnguYDguJnguJXguLgKK+C4oOC4ueC4muC4lOC4tOC4meC4l+C4o+C5jAor4Lig4Li54Lia4LiU4Li1CivguKDguLnguJrguLLguKUKK+C4oOC4ueC5gOC4muC4meC4l+C4o+C5jAor4Lig4Li54LmA4Lia4LioCivguKDguLnguYDguJrguKjguKfguKPguYwKK+C4oOC4ueC4mwor4Lig4Li54Lic4LiyCivguKDguLnguKDguLjguIoKK+C4oOC4ueC4oQor4Lig4Li54Lih4Li0CivguKDguLnguKHguLQtCivguKDguLnguKHguLTguITguLjguYnguKHguIHguLHguJkKK+C4oOC4ueC4oeC4tOC5g+C4iAor4Lig4Li54Lih4Li04LiQ4Liy4LiZCivguKDguLnguKHguLTguJjguKMKK+C4oOC4ueC4oeC4tOC4mOC4o+C4o+C4oQor4Lig4Li54Lih4Li04LiZ4LiX4Lij4LmMCivguKDguLnguKHguLTguJnguLLguJYKK+C4oOC4ueC4oeC4tOC4muC4lOC4tQor4Lig4Li54Lih4Li04Lia4Lij4Li04Lih4Liy4LiTCivguKDguLnguKHguLTguJrguLLguKUKK+C4oOC4ueC4oeC4tOC4m+C4o+C4sOC5gOC4l+C4qAor4Lig4Li54Lih4Li04Lib4Lix4LiN4LiN4LiyCivguKDguLnguKHguLTguYHguJ7guYkKK+C4oOC4ueC4oeC4tOC4oOC4suC4hAor4Lig4Li54Lih4Li04Lig4Li44LiKCivguKDguLnguKHguLTguKPguLHguJDguKjguLLguKrguJXguKPguYwKK+C4oOC4ueC4oeC4tOC4o+C4ueC5iQor4Lig4Li54Lih4Li04Lil4Liz4LmA4LiZ4LiyCivguKDguLnguKHguLTguKjguLLguKrguJXguKPguYwKK+C4oOC4ueC4oeC4tOC4qOC4suC4quC4leC4o+C5jOC4geC4suC4ouC4oOC4suC4ngor4Lig4Li54Lih4Li04Lio4Liy4Liq4LiV4Lij4LmM4LiB4Liy4Lij4LmA4LiB4Lip4LiV4LijCivguKDguLnguKHguLTguKjguLLguKrguJXguKPguYzguIHguLLguKPguYDguKHguLfguK3guIcKK+C4oOC4ueC4oeC4tOC4qOC4suC4quC4leC4o+C5jOC4m+C4o+C4sOC4iuC4suC4geC4owor4Lig4Li54Lih4Li04Lio4Liy4Liq4LiV4Lij4LmM4Lib4Lij4Liw4Lin4Lix4LiV4Li0CivguKDguLnguKHguLTguKjguLLguKrguJXguKPguYzguYDguKjguKPguKnguJDguIHguLTguIgKK+C4oOC4ueC4oeC4tQor4Lig4Li54Lih4Li14Lio4Lin4LijCivguKDguLnguKPguYLguKXguIEKK+C4oOC4ueC4o+C4tAor4Lig4Li54Lij4Li1CivguKDguLnguKctCivguKDguLnguKfguJTguKUKK+C4oOC4ueC4p+C4mS0KK+C4oOC4ueC4p+C4meC4leC4o+C4seC4ogor4Lig4Li54Lin4LiZ4Lix4LiV4LiV4Lij4Lix4LiiCivguKDguLnguKfguJnguLLguJYKK+C4oOC4ueC4p+C5gOC4meC4leC4owor4Lig4Li54Lin4LmE4LiZ4LiiCivguKDguLnguKnguJMtCivguKDguLnguKnguJPguJ7guLLguKoKK+C4oOC4ueC4qeC4sgor4Lig4Li54Lip4Liy4Lih4Liy4Lil4LiyCivguKDguLnguKnguLLguYLguKLguIcKK+C4oOC4ueC4qeC4tOC4lQor4LmA4Lig4LiB4LiwCivguYDguKDguITguLAKK+C5gOC4oOC4leC4o+C4sgor4LmA4Lig4LiXCivguYDguKDguJfguKDguLHguKIKK+C5gOC4oOC4l+C4uOC4muC4suC4ogor4LmA4Lig4Lij4LinCivguYDguKDguKPguLQKK+C5gOC4oOC4o+C4tQor4LmA4Lig4Liq4Lix4LiKCivguYDguKDguKrguLHguIotCivguYDguKDguKrguLHguIrguIHguKMKK+C5gOC4oOC4quC4seC4iuC4geC4o+C4o+C4oQor4LmA4Lig4Liq4Lix4LiK4LmA4LiE4Lih4Li1CivguYDguKDguKrguLHguIrguJ7guKTguIHguKnguKjguLLguKrguJXguKPguYwKK+C5gOC4oOC4quC4seC4iuC5gOC4nuC4peC4sgor4LmA4Lig4Liq4Lix4LiK4Lin4Li04LiX4Lii4LiyCivguYDguKDguKrguLHguIrguYDguKfguJcKK+C5gOC4oOC4quC4seC4iuC4qOC4suC4quC4leC4o+C5jAor4LmA4Lig4Liq4Lix4LiK4Lit4Li44LiV4Liq4Liy4Lir4LiB4Lij4Lij4LihCivguYLguKDguIQKK+C5guC4oOC4hC0KK+C5guC4oOC4hOC4l+C4o+C4seC4nuC4ouC5jAor4LmC4Lig4LiE4Lig4Lix4LiT4LiR4LmMCivguYLguKDguITguKLguJfguKPguLHguJ7guKLguYwKK+C5guC4oOC4hOC4sAor4LmC4Lig4LiE4Li04LiZCivguYLguKDguITguLUKK+C5guC4oOC5hOC4hOC4ogor4LmC4Lig4LmE4LiE4Lio4Lin4Lij4Lij4Lii4LmMCivguYLguKDguIoKK+C5guC4oOC4iuC4gQor4LmC4Lig4LiK4LiZLQor4LmC4Lig4LiK4LiZ4LiwCivguYLguKDguIrguJnguLDguKvguYnguLIKK+C5guC4oOC4iuC4meC4suC4geC4owor4LmC4Lig4LiK4LiZ4Liy4LiB4Liy4LijCivguYLguKDguIrguJnguLLguKvguLLguKMKK+C5guC4oOC4iuC4ouC5jAor4LmE4Lig4Lij4Li04LiZCivguYTguKDguKPguLUKK+C5hOC4oOC4qeC4seC4iuC4hOC4uOC4o+C4uAor4LmE4Lig4Lip4Lix4LiK4Lii4LmMCivguKEKK+C4oeC4gQor4Lih4LiB4LijCivguKHguIHguKMtCivguKHguIHguKPguIHguLjguJPguJHguKUKK+C4oeC4geC4o+C4suC4hOC4oQor4Lih4LiB4LiqCivguKHguIHguLjguI4KK+C4oeC4geC4uOC4juC4o+C4suC4iuC4geC4uOC4oeC4suC4owor4Lih4LiB4Li44LilCivguKHguITguJgKK+C4oeC4hgor4Lih4LiG4Lin4Lix4LiZCivguKHguIbguLIKK+C4oeC5iOC4hwor4Lih4LiH4LiB4Li44LiOCivguKHguIfguIHguLjguI7guYTguJfguKIKK+C4oeC4h+C5guC4geC4o+C4ogor4Lih4LiH4LiE4LilCivguKHguIfguITguKUtCivguKHguIfguITguKXguIjguLHguIHguKMKK+C4oeC4h+C4hOC4peC5geC4neC4lAor4Lih4LiH4LiE4Lil4Lin4Liy4LiXCivguKHguIfguITguKXguKfguLLguKMKK+C4oeC4h+C4hOC4peC4quC4ueC4leC4owor4Lih4LiH4LiE4Lil4Lir4Lix4LiV4LiW4Li1CivguKHguJPguJHguYwKK+C4oeC4k+C4keC4gQor4Lih4LiT4LiR4LiZ4LiwCivguKHguJPguJHguJsKK+C4oeC4k+C4keC4pQor4Lih4LiT4LiR4LiyCivguKHguJPguJHguLLguKPguJ4KK+C4oeC4k+C4keC4tOC4owor4Lih4LiT4LmA4LiR4Li14Lii4LijCivguKHguJPguYDguJHguLXguKLguKPguJrguLLguKUKK+C4oeC4k+C4tQor4Lih4LiT4Li14LiB4Liy4LijCivguKHguJPguLXguJ7guLfguIoKK+C4oeC4k+C4teC4o+C4seC4leC4meC5jAor4Lih4LiT4Li14Lij4Liy4LiECivguKHguJPguLXguKjguLTguKXguLIKK+C4oeC4lAor4Lih4LiU4LiU4LizCivguKHguJTguYHguJTguIcKK+C4oeC4lOC5geC4lOC4h+C5gOC4neC5ieC4suC4oeC4sOC4oeC5iOC4p+C4hwor4Lih4LiU4LmA4LiX4LmH4LiICivguKHguJTguKLguK3guJoKK+C4oeC4lOC4peC4ueC4gQor4Lih4LiU4Liq4LmJ4LihCivguKHguJTguLLguKIKK+C4oeC4lOC4tQor4Lih4LiVLQor4Lih4LiV4LiBCivguKHguJXguIHguKDguLHguJUKK+C4oeC4leC4sAor4Lih4LiV4Li0CivguKHguJXguLTguKHguKvguLLguIrguJkKK+C4oeC4lwor4Lih4LiX4LiZ4LiwCivguKHguJfguJnguLXguKLguLAKK+C4oeC4mOC4uAor4Lih4LiY4Li44LiB4LijCivguKHguJjguLjguIHguKPguLUKK+C4oeC4mOC4uOC4geC4suC4o+C4tQor4Lih4LiY4Li44LmC4LiB4LioCivguKHguJjguLjguJXguKTguJMKK+C4oeC4mOC4uOC4mwor4Lih4LiY4Li44Lib4LiO4LilCivguKHguJjguLjguJvguLLguKLguLLguKoKK+C4oeC4mOC4uOC4nuC4o+C4lQor4Lih4LiY4Li44Lih4Lix4LiB4LiC4Li04LiB4LiyCivguKHguJjguLjguKHguLTguKjguKMKK+C4oeC4mOC4uOC4oy0KK+C4oeC4mOC4uOC4o+C4leC4o+C4seC4ogor4Lih4LiY4Li44Lij4Lie4LiI4LiZ4LmMCivguKHguJjguLjguKPguKoKK+C4oeC4mOC4uOC4o+C4sAor4Lih4LiY4Li44Lil4Li14Lir4LmMCivguKHguJjguLjguYDguKjguKkKK+C4oeC4mOC4uOC4quC4owor4Lih4LiZCivguKHguYjguJkKK+C4oeC4meC4leC5jAor4Lih4LiZ4LiV4Lij4LmMCivguKHguJnguJXguKPguLUKK+C4oeC4meC4ly0KK+C4oeC4meC4l+C5jAor4Lih4LiZ4LiX4LiB4Liy4LiZ4LiV4Li0CivguKHguJnguJfguLLguJfguKMKK+C4oeC4meC4l+C4tOC4owor4Lih4LiZ4LiX4Li04Lij4Liy4Lil4Lix4LiiCivguKHguJnguYDguJfguLXguKLguKMKK+C4oeC4meC5gOC4l+C4teC4ouC4o+C4muC4suC4pQor4Lih4LiZ4Liq4Li04LiB4Liy4LijCivguKHguJnguLHguKoKK+C4oeC4meC4seC4qi0KK+C4oeC4meC4seC4quC4lOC4suC4mwor4Lih4LiZ4Lix4Liq4Lin4Li1CivguKHguJnguLTguKHguJnguLIKK+C4oeC4meC4tOC4peC4sgor4Lih4LiZ4Li14Lih4LiZ4LiyCivguKHguJnguLgKK+C4oeC4meC4uOC4igor4Lih4LiZ4Li44LiK4Liy4LiY4Li04LibCivguKHguJnguLjguI0KK+C4oeC4meC4uOC4qeC4oi0KK+C4oeC4meC4uOC4qeC4ouC5jAor4Lih4LiZ4Li44Lip4Lii4LmM4LiB4LiaCivguKHguJnguLjguKnguKLguIrguLLguJXguLQKK+C4oeC4meC4uOC4qeC4ouC5gOC4l+C4ngor4Lih4LiZ4Li44Lip4Lii4LiY4Lij4Lij4LihCivguKHguJnguLjguKnguKLguYLguKXguIEKK+C4oeC4meC4uOC4qeC4ouC4qOC4suC4quC4leC4o+C5jAor4Lih4LiZ4Li44Lip4Lii4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMCivguKHguJnguLjguKnguKLguYzguK3guKfguIHguLLguKgKK+C4oeC4meC4uOC4quC4suC4owor4Lih4LiZ4Li5CivguKHguJnguLnguKrguLLguKMKK+C4oeC5guC4mQor4Lih4LmC4LiZ4LiB4Lij4Lij4LihCivguKHguYLguJnguITguJXguLQKK+C4oeC5guC4meC4igor4Lih4LmC4LiZ4LiK4LiN4LmMCivguKHguYLguJnguJjguKPguKPguKEKK+C4oeC5guC4meC4meC4uOC4geC4ueC4pQor4Lih4LmC4LiZ4Lig4Liy4LieCivguKHguYLguJnguKDguLTguJnguLTguYDguKfguKgKK+C4oeC5guC4meC4oeC4seC4ogor4Lih4LmC4LiZ4Lij4LiWCivguKHguYLguJnguKPguKEKK+C4oeC5guC4meC4o+C4oeC4ouC5jAor4Lih4LmC4LiZ4Lij4Liy4Lir4LmMCivguKHguYLguJnguKjguLTguKXguLIKK+C4oeC5guC4meC4quC4suC4owor4Lih4LmC4LiZ4Liq4Liy4LmA4Lij4LmICivguKHguYLguJnguKvguKMKK+C4oeC4oeC4seC4h+C4geC4suC4owor4Lih4Lih4Liy4LiBCivguKHguKLguLjguKMtCivguKHguKLguLjguKPguITguJXguLQKK+C4oeC4ouC4uOC4o+C4ieC4seC4leC4owor4Lih4Lii4Li44Lij4Lit4Liy4Liq4LiZ4LmMCivguKHguKLguLjguKPguLAKK+C4oeC4ouC4uOC4o+C4sgor4Lih4Lii4Li44Lij4Li1CivguKHguKLguLjguYDguKPguKgKK+C4oeC4ouC4ueC4ggor4Lih4Lii4Li54LijCivguKHguKMKK+C4oeC4o+C4geC4lQor4Lih4Lij4LiE4LiyCivguKHguKPguJHguJsKK+C4oeC4o+C4ky0KK+C4oeC4o+C4k+C5jAor4Lih4Lij4LiT4LiB4Lij4Lij4LihCivguKHguKPguJPguJjguKPguKPguKEKK+C4oeC4o+C4k+C4muC4seC4leC4owor4Lih4Lij4LiT4Lig4Lix4LiiCivguKHguKPguJPguKDguLLguJ4KK+C4oeC4o+C4k+C4sAor4Lih4Lij4LiT4Lix4LiZ4LiV4Li04LiBLQor4Lih4Lij4LiT4Liy4LiZ4LiV4LmMCivguKHguKPguJTguIEKK+C4oeC4o+C4o+C4hAor4Lih4Lij4Lij4LiE4LiZ4Liy4Lii4LiBCivguKHguKPguKPguITguLIKK+C4oeC4o+C4o+C4leC4ogor4Lih4Lij4Lij4LiV4Lix4LiiCivguKHguKPguKPguJfguJkKK+C4oeC4o+C4o+C4ouC4suC4lwor4Lih4Lij4Lij4LipCivguKHguKPguKrguLjguKEKK+C4oeC4o+C4seC4oeC5gOC4l+C4qAor4Lih4Lij4Liy4LiZ4LiE4Lin4Liy4LiZCivguKHguKPguLTguIgKK+C4oeC4o+C4tOC4ouC4suC4lwor4Lih4Lij4Li14LiI4Li0CivguKHguKPguLgKK+C4oeC4o+C4uOC4lQor4Lih4Lik4LiECivguKHguKTguIQtCivguKHguKTguITguJfguLLguKLguKfguLHguJkKK+C4oeC4pOC4hOC4ouC5jAor4Lih4Lik4LiE4Lij4Liy4LiKCivguKHguKTguITguKjguLTguKMKK+C4oeC4pOC4hOC4qOC4tOC4o+C4oeC4suC4qgor4Lih4Lik4LiE4Lio4Li04Lij4Lix4LiqCivguKHguKTguITguYDguKjguLXguKLguKMKK+C4oeC4pOC4hOC4tOC4meC4l+C4o+C5jAor4Lih4Lik4LmA4LiE4LiZ4LiX4Lij4LmMCivguKHguKTguIjguInguLIKK+C4oeC4pOC4iOC4ieC4suC4iuC4teC4ngor4Lih4Lik4LiI4LiJ4Liy4LiX4Li04LiQ4Li0CivguKHguKTguJTguIEKK+C4oeC4pOC4lQor4Lih4Lik4LiV4LiBCivguKHguKTguJXguKLguLkKK+C4oeC4pOC4leC4ouC4ueC4o+C4suC4igor4Lih4Lik4LiX4Li04LiH4LiE4LmMCivguKHguKTguJfguLgKK+C4oeC4pOC4l+C4uOC4geC4sAor4Lih4Lik4LiY4Li4CivguKHguKTguKnguLIKK+C4oeC4pOC4qeC4suC4p+C4suC4lwor4Lih4LilCivguKHguKUtCivguKHguKXguYLguIQKK+C4oeC4peC4l+C4tOC4mQor4Lih4Lil4LiZCivguKHguKXguYjguJkKK+C4oeC4peC4meC4oeC4peC4suC4mQor4Lih4Lil4Lie4Li04LipCivguKHguKXguKfguIEKK+C4oeC4peC5iOC4reC4mQor4Lih4Lil4LmI4Lit4LiiCivguKHguKXguLAKK+C4oeC4peC4seC4gQor4Lih4Lil4Lix4LiH4LmA4Lih4Lil4Li34Lit4LiHCivguKHguKXguYnguLIKK+C4oeC4peC4suC4gQor4Lih4Lil4LmJ4Liy4LiHCivguKHguKXguLLguJkKK+C4oeC4peC5iOC4suC4mQor4Lih4Lil4Liy4LiiCivguKHguKXguLLguKLguLkKK+C4oeC4peC4suC4pwor4Lih4Lil4LmI4Liy4Lin4LmA4Lih4Lil4LiyCivguKHguKXguLTguJkKK+C4oeC4peC4tOC5ieC4mQor4Lih4Lil4Li34LmI4LiZCivguKHguKfguIEKK+C4oeC4p+C4geC4nOC4sgor4Lih4Lin4LiB4LmA4Lir4Lil4LmH4LiBCivguKHguKfguIHguYPguKvguI3guYgKK+C4oeC5iOC4p+C4hwor4Lih4Lin4LiZCivguKHguYjguKfguJkKK+C4oeC5ieC4p+C4mQor4Lih4LmJ4Lin4LiZ4LiV4LmJ4Lin4LiZCivguKHguYnguKfguJnguYDguKrguLfguYjguK0KK+C4oeC5ieC4p+C4meC4q+C4meC5ieC4sgor4Lih4Lin4LiiCivguKHguYnguKfguKIKK+C4oeC4p+C4ouC5hOC4l+C4ogor4Lih4Lin4Lii4Lib4Lil4LmJ4LizCivguKHguKfguKLguKXguYnguKEKK+C4oeC4p+C4ouC4p+C4seC4lAor4Lih4Lin4Lii4Liq4Liy4LiB4LilCivguKHguKfguKLguKvguKHguLnguYgKK+C4oeC4p+C4pQor4Lih4Lin4Lil4Liq4Liy4LijCivguKHguKfguKXguK3guLLguIHguLLguKgKK+C4oeC4quC4suC4owor4Lih4Liq4Liy4Lij4LiBCivguKHguKrguLLguKPguITguLHguKUKK+C4oeC4quC4tAor4Lih4Lir4LiB4Lij4Lij4LihCivguKHguKvguKPguJPguJ4KK+C4oeC4q+C4o+C4o+C4hgor4Lih4Lir4Lij4Lij4LiT4LieCivguKHguKvguKPguKrguJ4KK+C4oeC4q+C4seC4hOC4hgor4Lih4Lir4Lix4LiI4LiJ4Lij4Li04LiiLQor4Lih4Lir4Lix4LiI4LiJ4Lij4Li04Lii4LiwCivguKHguKvguLHguJPguJPguJ4KK+C4oeC4q+C4seC4lQor4Lih4Lir4Lix4LiX4LiY4LiZ4LiwCivguKHguKvguLHguJnguJUtCivguKHguKvguLHguJnguJXguYwKK+C4oeC4q+C4seC4meC4leC5guC4l+C4qQor4Lih4Lir4Lix4Lie4Lig4Liy4LiECivguKHguKvguLHguKUKK+C4oeC4q+C4seC4peC4geC4sAor4Lih4Lir4Lix4Lio4LiI4Lij4Lij4Lii4LmMCivguKHguKvguLIKK+C4oeC4q+C4suC4geC4kOC4tOC4mQor4Lih4Lir4Liy4LiB4Liy4LisCivguKHguKvguLLguILguLHguJnguJjguIEKK+C4oeC4q+C4suC4iOC4seC4geC4owor4Lih4Lir4Liy4LiK4LiZCivguKHguKvguLLguIrguLHguKIKK+C4oeC4q+C4suC4iuC4suC4leC4tAor4Lih4Lir4Liy4LmC4LiK4LiV4Lij4Lix4LiVCivguKHguKvguLLguJTguYTguJfguKIKK+C4oeC4q+C4suC4lOC5gOC4peC5h+C4gQor4Lih4Lir4Liy4LiU4LmA4Lil4LmH4LiB4Lij4Liy4Lii4LiH4Liy4LiZCivguKHguKvguLLguJXguKHguLAKK+C4oeC4q+C4suC5hOC4luC5iAor4Lih4Lir4Liy4LmA4LiX4LieCivguKHguKvguLLguYDguJfguJ7guLUKK+C4oeC4q+C4suC5gOC4l+C4p+C4tQor4Lih4Lir4Liy4LiY4Liy4LiV4Li4CivguKHguKvguLLguJnguKrguLAKK+C4oeC4q+C4suC4meC4tOC4geC4suC4ogor4Lih4Lir4Liy4LiZ4Li04LilCivguKHguKvguLLguJrguJ7guLTguJXguKMKK+C4oeC4q+C4suC4muC4seC4k+C4keC4tOC4lQor4Lih4Lir4Liy4Lie4LiZCivguKHguKvguLLguJ7guKPguKvguKEKK+C4oeC4q+C4suC4oOC4suC4o+C4lQor4Lih4Lir4Liy4Lig4Li04LmA4LiZ4Lip4LiB4Lij4Lih4LiT4LmMCivguKHguKvguLLguKDguLnguJUKK+C4oeC4q+C4suC5gOC4oeC4hgor4Lih4Lir4Liy4Lii4Liy4LiZCivguKHguKvguLLguKLguLjguIQKK+C4oeC4q+C4suC4o+C4k+C4ngor4Lih4Lir4Liy4Lij4Liy4LiKCivguKHguKvguLLguKPguLLguIrguKXguLXguKXguLIKK+C4oeC4q+C4suC4pOC4geC4qeC5jAor4Lih4Lir4Liy4Lil4Liw4Lil4Lin4LiiCivguKHguKvguLLguKXguLDguKXguLLguKIKK+C4oeC4q+C4suC4p+C4h+C4qOC5jAor4Lih4Lir4Liy4Lin4Lij4Lij4LiECivguKHguKvguLLguKfguLTguJfguKLguLLguKXguLHguKIKK+C4oeC4q+C4suC4qOC4suC4pQor4Lih4Lir4Liy4Liq4LiH4LiB4Lij4Liy4LiZ4LiV4LmMCivguKHguKvguLLguKrguJTguKHguKDguYwKK+C4oeC4q+C4suC4quC4lOC4swor4Lih4Lir4Liy4Liq4Lih4Li44LiX4LijCivguKHguKvguLLguKrguLLguKfguIEKK+C4oeC4q+C4suC4q+C4h+C4quC5jAor4Lih4Lir4Liy4Lir4Li04LiH4LiE4Li44LmMCivguKHguKvguLLguK3guLPguJnguLLguIgKK+C4oeC4q+C4suC4reC4uOC4iAor4Lih4Lir4Liy4Lit4Li44LiUCivguKHguKvguLLguK3guLjguJvguKPguLLguIHguKMKK+C4oeC4q+C4tAor4Lih4Lir4Li04LiH4Liq4LmMCivguKHguKvguLTguJTguKUKK+C4oeC4q+C4tOC4l+C4mOC4tAor4Lih4Lir4Li04LiY4LijCivguKHguKvguLTguJnguJfguYwKK+C4oeC4q+C4tOC4muC4lOC4tQor4Lih4Lir4Li04Lia4Liy4LilCivguKHguKvguLTguJsKK+C4oeC4q+C4tOC4oeC4sgor4Lih4Lir4Li04Lio4LijCivguKHguKvguLTguKjguKfguKMKK+C4oeC4q+C4tOC4qQor4Lih4Lir4Li04Lip4Li1CivguKHguKvguLbguKHguLIKK+C4oeC4q+C4uOC4lOC4tOC4pOC4geC4qeC5jAor4Lih4Lir4Li44Lij4LiU4Li1CivguKHguKvguLkKK+C4oeC5gOC4q+C4meC4l+C4o+C5jAor4Lih4LmA4Lir4Lii4LiH4LiE4LmMCivguKHguYDguKvguKgKK+C4oeC5gOC4q+C4qOC4p+C4owor4Lih4LmA4Lir4Lio4Lix4LiB4LiU4Li04LmMCivguKHguYDguKvguKrguLHguIHguILguYwKK+C4oeC5gOC4q+C4quC4tAor4Lih4LmA4Lir4Liq4Li1CivguKHguYDguKvguLLguKnguJgKK+C4oeC5gOC4q+C4suC4rOC4suC4owor4Lih4LmC4Lir4LiGCivguKHguYLguKvguKPguKrguJ4KK+C4oeC5guC4q+C4o+C4sOC4l+C4tuC4gQor4Lih4LmC4Lir4Lij4Li1CivguKHguYLguKvguKnguJgKK+C4oeC5guC4q+C4rOC4suC4owor4Lih4LmE4Lir4Lio4Lin4Lij4Lij4Lii4LmMCivguKHguK0KK+C4oeC4reC4hOC4o+C4suC4oQor4Lih4Lit4LiHCivguKHguK3guIfguYLguIHguKXguK3guKLguJTguYwKK+C4oeC4reC4h+C4hOC4o+C5iOC4rQor4Lih4Lit4LiH4LmA4Liq4Li14LmJ4Lii4LinCivguKHguK3guIvguK0KK+C4oeC4reC4jQor4Lih4Lit4LiN4LiL4LmI4Lit4LiZ4Lic4LmJ4LiyCivguKHguK3guI3guJXguLXguJTguLHguYnguIcKK+C4oeC4reC4lAor4Lih4LmI4Lit4LiV4LmJ4LitCivguKHguK3guYDguJXguK3guKPguYwKK+C4oeC4reC4mQor4Lih4LmI4Lit4LiZCivguKHguK3guJnguYTguILguYgKK+C4oeC4reC4mgor4Lih4Lit4Lia4LiJ4Lix4LiZ4LiX4LiwCivguKHguK3guJrguKvguKHguLLguKIKK+C4oeC4reC4muC4reC4s+C4meC4suC4iAor4Lih4Lit4LihCivguKHguK3guKHguYDguKHguLIKK+C4oeC4reC4oeC5geC4oeC4oQor4Lih4Lit4Lih4LmA4Lir4Lil4LmJ4LiyCivguKHguYjguK3guKIKK+C4oeC4reC4o+C5jOC4n+C4teC4mQor4Lih4Lit4Lij4Liw4LiB4Li54LmICivguKHguK3guKXguYLguJfguKoKK+C4oeC5iOC4reC4peC4reC4geC4oeC5iOC4reC5geC4peC4gQor4Lih4Lit4Lir4Lih4Li24LiBCivguKHguYjguK3guKvguYnguK3guKEKK+C4oeC5iOC4reC4ruC5iOC4reC4oQor4Lih4LiwCivguKHguLDguIHguKPguLnguJQKK+C4oeC4sOC4geC4peC5iOC4swor4Lih4Liw4LiB4Lit4LiBCivguKHguLDguIHguK3guIHguJnguYnguLMKK+C4oeC4sOC4geC4reC4geC4muC5ieC4suC4mQor4Lih4Liw4LiB4Lit4LiB4Lib4LmI4LiyCivguKHguLDguIHguK3guIHguJ3guKPguLHguYjguIcKK+C4oeC4sOC4geC4reC4geC4nuC4o+C4suC4mQor4Lih4Liw4LiB4Lit4LiB4Liq4Liy4Lih4LiV4Liw4LiB4Lij4LmJ4Liy4Lib4Liy4LmE4Lih4LmI4LiW4Li54LiBCivguKHguLDguIHguYjguK3guIcKK+C4oeC4sOC4geC4sOC5guC4o+C4meC4tQor4Lih4Liw4LiB4LiyCivguKHguLDguYDguIHguKXguLfguK0KK+C4oeC4sOC5gOC4geC4teC5i+C4ouC4hwor4Lih4Liw4LiC4LmI4Lin4LiHCivguKHguLDguILguKfguLTguJQKK+C4oeC4sOC4guC4suC4oQor4Lih4Liw4LiC4Liy4Lih4LiE4Lij4Liy4Lia4Lir4Lih4Li5CivguKHguLDguILguLLguKHguYDguJfguKgKK+C4oeC4sOC4guC4suC4oeC4m+C5ieC4reC4oQor4Lih4Liw4LiC4Liy4Lih4LmA4Lib4Li14Lii4LiBCivguKHguLDguYDguILguLfguK0KK+C4oeC4sOC5gOC4guC4t+C4reC4l+C4p+C4suC4ogor4Lih4Liw4LmA4LiC4Li34Lit4LmA4LiX4LioCivguKHguLDguYDguILguLfguK3guJ7guKfguIcKK+C4oeC4sOC5gOC4guC4t+C4reC4oeC4reC4jQor4Lih4Liw4LmB4LiC4LmI4LiZCivguKHguLDguITguLAKK+C4oeC4sOC4hOC4seC4h+C5geC4lOC4hwor4Lih4Liw4LiE4LmI4LiyCivguKHguLDguITguYjguLLguYHguJXguYkKK+C4oeC4sOC4hOC5iOC4suC5guC4oeC4hwor4Lih4Liw4LiE4LmI4Liy4Lir4LiZ4Liy4LihCivguKHguLDguITguYjguLLguYPguKvguI3guYgKK+C4oeC4sOC4hOC4s+C5hOC4geC5iAor4Lih4Liw4LiE4Liz4LiU4Li14LiE4Lin4Liy4LiiCivguKHguLDguIfguLHguJkKK+C4oeC4sOC4h+C4seC5iOC4pwor4Lih4Liw4LiH4Li44Lih4Lih4Liw4LiH4Liy4Lir4Lij4LiyCivguKHguLDguIvguLHguIEKK+C4oeC4sOC4i+C4suC4hwor4Lih4Liw4LiL4LmI4Liy4LiZCivguKHguLDguJTguLDguILguLXguYnguJnguIEKK+C4oeC4sOC4lOC4seC4mQor4Lih4Liw4LiU4LiyCivguKHguLDguJTguLnguIEKK+C4oeC4sOC5gOC4lOC4q+C4p+C4tQor4Lih4Liw4LmA4LiU4Li34LmI4LitCivguKHguLDguYDguJTguLfguYjguK3guJTguLTguJkKK+C4oeC4sOC4leC5ieC4reC4hwor4Lih4Liw4LiV4Liw4Lia4LiwCivguKHguLDguJXguLLguJQKK+C4oeC4sOC4leC4suC4q+C4sOC4o+C4tQor4Lih4Liw4LiV4Li1CivguKHguLDguJXguLbguYjguIcKK+C4oeC4sOC4leC4t+C5i+C4mQor4Lih4Liw4LiV4Li54LihCivguKHguLDguYHguJXguIEKK+C4oeC4sOC4meC4suC4pwor4Lih4Liw4LiZ4Liy4Lin4LmA4LiX4LioCivguKHguLDguJvguKPguLLguIcKK+C4oeC4sOC4m+C4o+C4tOC4hwor4Lih4Liw4Lib4LmI4Lit4LiHCivguKHguLDguJvguYjguK3guIfguJXguYnguJkKK+C4oeC4sOC4neC5iOC4rQor4Lih4Liw4Lie4Lij4LmJ4Liy4LinCivguKHguLDguJ7guKPguYnguLLguKfguYHguIHguYnguKcKK+C4oeC4sOC4nuC4o+C5ieC4suC4p+C4leC4t+C5iOC4meC4lOC4gQor4Lih4Liw4Lie4Lij4LmJ4Liy4Lin4LiX4Li44LiiCivguKHguLDguJ7guKPguYnguLLguKfguKvguYnguLLguKcKK+C4oeC4sOC4nuC4peC4seC4mgor4Lih4Liw4Lie4Li54LiUCivguKHguLDguYHguJ7guJkKK+C4oeC4sOC5geC4nuC4o+C5ieC4pwor4Lih4Liw4LmA4Lif4Li34Lit4LiHCivguKHguLDguYHguJ/guJkKK+C4oeC4sOC5hOC4nwor4Lih4Liw4LmE4Lif4LmA4LiU4Li34Lit4LiZ4Lir4LmJ4LiyCivguKHguLDguKHguYjguKfguIcKK+C4oeC4sOC4oeC5iOC4p+C4h+C4q+C4tOC4oeC4nuC4suC4meC4leC5jAor4Lih4Liw4Lih4LmI4Liy4LinCivguKHguLDguKHguLXguYgKK+C4oeC4sOC4oeC4t+C5iOC4mQor4Lih4Liw4Lih4Li44LiUCivguKHguLDguYDguKHguK0KK+C4oeC4sOC5gOC4oeC4teC4ogor4Lih4Liw4LmA4Lih4Li34LmI4Lit4LiiCivguKHguLDguYHguKEKK+C4oeC4sOC4ouC4hwor4Lih4Liw4Lii4LiH4LiK4Li04LiUCivguKHguLDguKLguKEKK+C4oeC4sOC4o+C4sAor4Lih4Liw4Lij4Li04LiUCivguKHguLDguKPguLfguJkKK+C4oeC4sOC4o+C4uOC4oQor4Lih4Liw4Lij4Li44Lih4Lih4Liw4LiV4Li44LmJ4LihCivguKHguLDguYDguKPguYfguIcKK+C4oeC4sOC5gOC4o+C4t+C5iOC4reC4hwor4Lih4Liw4LmC4Lij4LiHCivguKHguLDguKXguLDguIHguK0KK+C4oeC4sOC4peC4suC4o+C4reC4geC4seC4mQor4Lih4Liw4Lil4LizCivguKHguLDguKXguLQKK+C4oeC4sOC4peC4tOC4i+C5iOC4reC4oQor4Lih4Liw4Lil4Li04LiZCivguKHguLDguKXguLTguYjguKEKK+C4oeC4sOC4peC4tOC5gOC4peC4t+C5ieC4reC4ogor4Lih4Liw4Lil4Li04Lit4LmI4Lit4LiHCivguKHguLDguKXguLfguYjguJkKK+C4oeC4sOC4peC4t+C4oeC4lOC4swor4Lih4Liw4Lil4Li44Lil4Li1CivguKHguLDguKfguLLguKMKK+C4oeC4sOC5geC4p+C5ieC4hwor4Lih4Liw4Liq4Lix4LiHCivguKHguLDguYDguKrguYfguIcKK+C4oeC4sOC4q+C4peC4tOC5iOC4oQor4Lih4Liw4Lir4Lin4LiUCivguKHguLDguKvguLDguKvguKHguLHguJQKK+C4oeC4sOC4q+C4seC4pQor4Lih4Liw4Lir4Liy4LiUCivguKHguLDguKvguLTguYjguIcKK+C4oeC4sOC5gOC4q+C4h+C4gQor4Lih4Liw4LmA4Lir4Lih4Li34LmI4Lit4LiiCivguKHguLDguK3guLbguIEKK+C4oeC4sOC4ruC4reC4geC4geC4suC4meC4tQor4Lih4Lix4LiBCivguKHguLHguIHguIHguLDguKXguLXguJzguKUKK+C4oeC4seC4geC4geC4sOC4quC4seC4mQor4Lih4Lix4LiB4LiC4LiwCivguKHguLHguYjguIHguILguLHguYnguIEKK+C4oeC4seC4geC4guC4tOC4geC4sgor4Lih4Lix4LiB4LiC4Li04LiB4Liy4LiK4Liy4LiV4Li0CivguKHguLHguIHguITguLjguYnguJkKK+C4oeC4seC4geC4h+C5iOC4suC4ogor4Lih4Lix4LiB4LiP4LiB4LiwCivguKHguLHguIHguI/guLAKK+C4oeC4seC4geC5hOC4lOC5iQor4Lih4Lix4LiB4LiZ4LmJ4Lit4LiiCivguKHguLHguIHguKHguLLguIEKK+C4oeC4seC4geC5g+C4q+C4jeC5iAor4Lih4Lix4LiELQor4Lih4Lix4LiE4LiE4LiwCivguKHguLHguITguITguLjguYDguJfguKjguIHguYwKK+C4oeC4seC4hOC4meC4suC4ouC4gQor4Lih4Lix4LiE4Liq4Li04Lij4LiwCivguKHguLHguIbguKfguLIKK+C4oeC4seC4huC4p+C4suC4mQor4Lih4Lix4LmI4LiHCivguKHguLHguIfguIHguIcKK+C4oeC4seC4h+C4geC4owor4Lih4Lix4LiH4LiB4Li4CivguKHguLHguIfguITguKXguLAKK+C4oeC4seC5iOC4h+C4hOC4seC5iOC4hwor4Lih4Lix4LiH4LiE4LmI4LiyCivguKHguLHguIfguITguLjguJQKK+C4oeC4seC4h+C4leC4suC4mQor4Lih4Lix4LmI4LiH4Lih4Li1CivguKHguLHguYjguIfguKHguLXguYPguJnguYPguIgg4LmB4Lil4LmI4LiZ4LmD4Lia4Lia4LiZ4Lia4LiBCivguKHguLHguIfguKotCivguKHguLHguIfguKrguKfguLTguKPguLHguJXguLQKK+C4oeC4seC4h+C4quC4sAor4Lih4Lix4LiH4Liq4Li1CivguKHguLHguIfguKvguIfguLHguJkKK+C4oeC4seC4iOC4iOC4sAor4Lih4Lix4LiI4LiI4Li4CivguKHguLHguIjguIjguLjguKPguLLguIoKK+C4oeC4seC4iOC4ieC4o+C4sAor4Lih4Lix4LiI4LiJ4Lij4Li04Lii4LiwCivguKHguLHguIjguInguKPguLUKK+C4oeC4seC4iOC4ieC4sAor4Lih4Lix4LiI4LiJ4LiyCivguKHguLHguIjguInguLLguIrguLLguJXguLQKK+C4oeC4seC4ii0KK+C4oeC4seC4iuC4iuC4sAor4Lih4Lix4LiK4LiK4Liy4LijCivguKHguLHguIrguIwtCivguKHguLHguIrguIzguLHguJnguJXguLTguIEtCivguKHguLHguIrguIzguLHguJnguJXguLTguIHguKrguKHguLHguKIKK+C4oeC4seC4iuC4jOC4tOC4oS0KK+C4oeC4seC4iuC4jOC4tOC4oeC4meC4tOC4geC4suC4ogor4Lih4Lix4LiK4LiM4Li04Lih4Lia4Li44Lij4Li44LipCivguKHguLHguIrguIzguLTguKHguJvguKPguLDguYDguJfguKgKK+C4oeC4seC4iuC4jOC4tOC4oeC4oOC4ueC4oeC4tAor4Lih4Lix4LiK4LiM4Li04Lih4Lii4Liy4LihCivguKHguLHguIrguIzguLTguKHguKfguLHguKIKK+C4oeC4seC4iuC4jOC4tOC4oeC4sgor4Lih4Lix4LiK4LiM4Li04Lih4Liy4Lib4LiP4Li04Lib4LiX4LiyCivguKHguLHguIrguKfguLTguKPguLHguJXguLQKK+C4oeC4seC4jeC4iOC4gQor4Lih4Lix4LiN4LiI4LiyCivguKHguLHguI3guIrguLTguKnguJAKK+C4oeC4seC4jeC4iuC4tOC4qeC4kOC4sgor4Lih4Lix4LiN4LiK4Li14LijCivguKHguLHguI3guIrguLgKK+C4oeC4seC4jeC4iuC4uOC4quC4sgor4Lih4Lix4LiN4LiK4Li54Liq4LiyCivguKHguLHguI3guYDguIrguI/guJDguLAKK+C4oeC4seC4jeC5gOC4iuC4j+C4kOC4tOC4geC4sgor4Lih4Lix4LiN4LmA4LiK4LiP4LiQ4Li04LiB4Liy4LiB4LijCivguKHguLHguI3guYDguIrguLXguKLguKMKK+C4oeC4seC4j+C4kOC4sAor4Lih4Lix4LiT4LiRLQor4Lih4Lix4LiT4LiR4LiZLQor4Lih4Lix4LiT4LiR4LiZ4Lio4Li04Lil4Lib4LmMCivguKHguLHguJPguJHguJnguLIKK+C4oeC4seC4k+C4keC4uOC4gQor4Lih4Lix4LiUCivguKHguLHguJTguIjguLMKK+C4oeC4seC4lOC5gOC4iuC4t+C5ieC4reC5gOC4nuC4peC4tOC4hwor4Lih4Lix4LiU4Lih4Li34Lit4LiK4LiBCivguKHguLHguJTguKvguKHguLXguYgKK+C4oeC4seC4lOC4q+C4oeC4uQor4Lih4Lix4LiU4Lir4Lin4Liy4LiiCivguKHguLHguJXguJXguLAKK+C4oeC4seC4leC4leC4seC4jeC4jeC4uQor4Lih4Lix4LiV4LiV4Lix4LiiCivguKHguLHguJXguJXguLIKK+C4oeC4seC4leC4leC4tOC4geC4sgor4Lih4Lix4LiV4LiW4LiBCivguKHguLHguJXguJbguKXguLjguIfguITguYwKK+C4oeC4seC4leC4ogor4Lih4Lix4LiV4Liq4Lii4LiwCivguKHguLHguJXguKrguKLguLIKK+C4oeC4seC4leC4quC4owor4Lih4Lix4LiV4Liq4Lij4Lij4Lii4LmMCivguKHguLHguJXguKrguKPguLTguJkKK+C4oeC4seC4l+C4meC4sAor4Lih4Lix4LiX4LiZ4Li14Lii4LiwCivguKHguLHguJfguKLguLAKK+C4oeC4seC4mOC4oi0KK+C4oeC4seC4mOC4ouC4kOC4suC4mQor4Lih4Lix4LiY4Lii4LihCivguKHguLHguJjguKLguKEtCivguKHguLHguJjguKLguKHguIHguLLguKUKK+C4oeC4seC4mOC4ouC4oeC4qOC4tuC4geC4qeC4sgor4Lih4Lix4LiY4Lii4Lih4LiyCivguKHguLHguJjguKLguLHguJnguKvguYwKK+C4oeC4seC4mOC4ouC4seC4quC4luC5jAor4Lih4Lix4LiZCivguKHguLHguYjguJkKK+C4oeC4seC4meC5geC4geC4pwor4Lih4Lix4LmI4LiZ4LiE4LiHCivguKHguLHguYjguJnguYPguIgKK+C4oeC4seC4meC4lOC4tQor4Lih4Lix4LiZ4LiV4LiyCivguKHguLHguJnguJbguLAKK+C4oeC4seC4meC4l+C4tOC4owor4Lih4Lix4LiZ4LiX4Li04Lij4Liy4Lil4Lix4LiiCivguKHguLHguJnguYDguJfguKgKK+C4oeC4seC4meC4meC4gQor4Lih4Lix4LiZ4Lib4Lil4LiyCivguKHguLHguJnguJvguLkKK+C4oeC4seC4meC4neC4o+C4seC5iOC4hwor4Lih4Lix4LiZ4Lii4LmI4Lit4LiHCivguKHguLHguJnguKrguKHguK3guIcKK+C4oeC4seC4meC5gOC4quC4sgor4Lih4Lix4LiZ4LmE4Liq4LmJCivguKHguLHguYjguJnguKvguKHguLLguKIKK+C4oeC4seC5iOC4meC5gOC4q+C4oeC4suC4sAor4Lih4Lix4LiaCivguKHguLHguJrguYYKK+C4oeC4seC5ieC4oQor4Lih4Lix4Lih4Lih4Li14LmICivguKHguLHguKIKK+C4oeC4seC4peC4gQor4Lih4Lix4Lil4Lil4LiwCivguKHguLHguKXguKXguLTguIHguLIKK+C4oeC4seC4pwor4Lih4Lix4LmI4LinCivguKHguLHguKfguIvguLHguKcKK+C4oeC4seC4p+C4oeC4reC4oQor4Lih4Lix4LmI4Lin4Lih4Li54LilCivguKHguLHguKfguYDguKHguLIKK+C4oeC4seC4p+C5gOC4oeC4teC4ogor4Lih4Lix4LmI4Lin4Liq4Li44LihCivguKHguLHguKfguKvguKHguK3guIcKK+C4oeC4seC4qOC4ouC4sgor4Lih4Lix4Liq4LiU4LiBCivguKHguLHguKrguJTguLgKK+C4oeC4seC4quC4leC4suC4o+C5jOC4lAor4Lih4Lix4Liq4LiV4Li4CivguKHguLHguKrguKHguLHguYjguJkKK+C4oeC4seC4quC4ouC4tOC4lAor4Lih4Lix4Liq4Lij4Li54LmICivguKHguLHguKrguKXguLTguJkKK+C4oeC4seC4quC4quC4uAor4Lih4LiyCivguKHguYnguLIKK+C4oeC4suC4gQor4Lih4Liy4LiB4LiC4Li14LmJ4LiE4Lin4Liy4Lii4Lir4Lil4Liy4Lii4LiC4Li14LmJ4LiK4LmJ4Liy4LiHCivguKHguLLguIHguKHguLLguKIKK+C4oeC4suC4geC4oeC4suC4ouC4geC5iOC4suC4ouC4geC4reC4hwor4Lih4Liy4LiB4Lir4LiZ4LmJ4Liy4Lir4Lil4Liy4Lii4LiV4LiyCivguKHguLLguIHguKvguKHguK3guKHguLLguIHguITguKfguLLguKEKK+C4oeC4suC5geC4guC4gQor4Lih4Liy4LiE4Liq4Li04LijLQor4Lih4Liy4LiE4Liq4Li04Lij4LiwCivguKHguLLguIYtCivguKHguLLguIbguJrguLnguIrguLIKK+C4oeC4suC4huC4sAor4Lih4LmJ4Liy4LiHCivguKHguLLguIfguKrguLAKK+C4oeC5ieC4suC5g+C4iuC5iQor4Lih4Liy4LiT4LieCivguKHguLLguJPguKfguLTguIHguLIKK+C4oeC4suC4lAor4Lih4Liy4LiU4LiyCivguKHguYnguLLguJTguLXguJTguIHguLDguYLguKvguKXguIEKK+C4oeC4suC4leC4h+C4hOC5jAor4Lih4LmJ4Liy4LiV4LmJ4LiZCivguKHguLLguJXguKMKK+C4oeC4suC4leC4oy0KK+C4oeC4suC4leC4o+C4geC4suC4owor4Lih4Liy4LiV4Lij4LiQ4Liy4LiZCivguKHguLLguJXguKPguYHguKHguYnguJkKK+C4oeC4suC4leC4o+C4p+C5iOC4sgor4Lih4Liy4LiV4Lij4LiyCivguKHguLLguJXguKPguLLguJ7guKTguJXguLQKK+C4oeC4suC4leC4o+C4suC4quC5iOC4p+C4mQor4Lih4Liy4LiV4LikCivguKHguLLguJXguKTguIHguLAKK+C4oeC4suC4leC4quC4o+C4o+C4ouC5jAor4Lih4Liy4LiV4Lix4LiH4LiECivguKHguLLguJXguLIKK+C4oeC4suC4leC4suC4oeC4q+C4sAor4Lih4Liy4LiV4Liy4Lih4Lir4Lix4Lii4LiB4LiwCivguKHguLLguJXguLLguKHguKvguLHguKLguIHguLIKK+C4oeC4suC4leC4suC4oeC4q+C4seC4ouC4ouC4tOC4geC4sgor4Lih4Liy4LiV4Liy4Lih4Lir4LiyCivguKHguLLguJXguLTguIEKK+C4oeC4suC4leC4tOC4geC4sgor4Lih4Liy4LiV4Li1CivguKHguLLguJXguLgKK+C4oeC4suC4leC4uOC4hOC4suC4oQor4Lih4Liy4LiV4Li44LiG4Liy4LiVCivguKHguLLguJXguLjguIjguInguLIKK+C4oeC4suC4leC4uOC4oOC4ueC4oeC4tAor4Lih4Liy4LiV4Li44Lij4LiH4LiE4LmMCivguKHguLLguJXguLjguYDguKPguKgKK+C4oeC4suC4leC4uOC4peC4sAor4Lih4Liy4LiV4Li44Lil4LiyCivguKHguLLguJXguLjguKXguLLguJnguLUKK+C4oeC4suC4leC4uOC4peC4uOC4h+C4hOC5jAor4Lih4Liy4LiXCivguKHguLLguJfguJkKK+C4oeC5ieC4suC4l+C4peC4suC4ouC5guC4o+C4hwor4Lih4LmJ4Liy4LmA4LiX4LioCivguKHguLLguJjguKLguKHguLTguIHguLAKK+C4oeC4suC4mOC4uOC4owor4Lih4Liy4LiY4Li44Liq4LijCivguKHguLLguJjguLnguKMKK+C4oeC4suC4mQor4Lih4LmI4Liy4LiZCivguKHguYnguLLguJkKK+C4oeC5iOC4suC4meC4leC4sgor4Lih4Liy4LiZ4LiX4Liw4Lil4Li44LiZCivguKHguYjguLLguJnguJrguLHguIfguYDguJ7guKXguLTguIcKK+C4oeC4suC4meC4ngor4Lih4LmI4Liy4LiZ4LmA4Lih4Lij4Li4CivguKHguYjguLLguJnguKXguLLguKIKK+C4oeC5iOC4suC4meC4quC4reC4h+C5hOC4ggor4Lih4LmI4Liy4LiZ4Lit4Li04LiZ4LiX4LiZ4Li04LilCivguKHguLLguJnguLAKK+C4oeC4suC4meC4seC4lQor4Lih4Liy4LiZ4Lix4LiqCivguKHguYnguLLguJnguYnguLMKK+C4oeC4suC4meC4tOC4lQor4Lih4Liy4LiZ4Li1CivguKHguLLguJnguLjguKkKK+C4oeC4suC4meC4uOC4qeC4oi0KK+C4oeC4suC4meC4uOC4qeC4ouC4p+C4tOC4l+C4ouC4sgor4Lih4Liy4LmC4LiZ4LiK4LiN4LmMCivguKHguLLguJoKK+C4oeC4suC4m+C4gQor4Lih4Liy4Lig4LiyCivguKHguYnguLLguKEKK+C4oeC5ieC4suC4oeC4t+C4lAor4Lih4Liy4LiiCivguKHguYjguLLguKIKK+C4oeC5iOC4suC4ouC5gOC4oeC4teC4ouC4hwor4Lih4LmJ4Liy4Lii4LmI4Lit4LiHCivguKHguLLguKLguLHguIcKK+C4oeC4suC4ouC4sgor4Lih4Liy4Lii4Liy4LiB4LijCivguKHguLLguKLguLLguIHguKUKK+C4oeC4suC4ouC4suC4geC4suC4owor4Lih4Liy4Lii4Liy4Lib4Lij4Liw4Liq4Liy4LiZCivguKHguLLguKLguLLguKfguLUKK+C4oeC4suC4owor4Lih4Liy4LijLQor4Lih4Liy4Lij4LiECivguKHguLLguKPguITguK3guKvguK3guKIKK+C4oeC4suC4o+C4iuC4tAor4Lih4Liy4Lij4LiK4Li04LiVCivguKHguLLguKPguJTguKMKK+C4oeC4suC4o+C4lOC4sgor4Lih4Liy4Lij4Lic4LiI4LiNCivguKHguLLguKPguKLguLIKK+C4oeC4suC4o+C4ouC4suC4lwor4Lih4Liy4Lij4Lin4Li04LiK4Lix4LiiCivguKHguLLguKPguKfguLTguIrguLTguJUKK+C4oeC4suC4o+C4qOC4o+C4tQor4Lih4Liy4Lij4Lip4LiyCivguKHguLLguKPguKrguLHguIfguITguKEKK+C4oeC4suC4o+C4q+C4seC4p+C4guC4mQor4Lih4Liy4Lij4LiwCivguKHguLLguKPguLLguJjguLTguKPguLLguIoKK+C4oeC5ieC4suC4o+C4swor4Lih4Liy4Lij4Li0CivguKHguLLguKPguLTguJUKK+C4oeC4suC4o+C4uOC4lQor4Lih4Liy4Lij4Li44Lih4Lih4Liy4LiV4Li44LmJ4LihCivguKHguYnguLLguYDguKPguYfguKcKK+C4oeC4suC4peC4ouC5jAor4Lih4LmJ4Liy4Lil4LmI4LitCivguKHguLLguKXguLHguKIKK+C4oeC4suC4peC4sgor4Lih4Liy4Lil4Liy4LiB4Lij4Lij4LihCivguKHguLLguKXguLLguIHguLLguKMKK+C4oeC4suC4peC4suC4leC4tQor4Lih4LmJ4Liy4Lil4Liy4LiiCivguKHguLLguKXguLLguYDguKPguLXguKIKK+C4oeC4suC4peC4swor4Lih4Liy4Lil4Li04LiZ4Li1CivguKHguLLguKXguLUKK+C4oeC4suC4peC4uOC4lQor4Lih4Liy4Lin4Liy4LijCivguKHguLLguKgKK+C4oeC4suC4qgor4Lih4Liy4Liq4LiBCivguKHguYnguLLguKrguLDguJrguLHguJTguIHguLXguJoKK+C4oeC4suC4q+C5jAor4Lih4LmI4Liy4Lir4LmMCivguKHguLLguKvguLTguKoKK+C4oeC4suC5gOC4q+C4meC4t+C4reC5gOC4oeC4hgor4Lih4LmI4Liy4LmA4Lir4Lih4Li14LmI4Lii4LinCivguKHguLLguKzguIEKK+C4oeC5ieC4suC4reC5ieC4p+C4mQor4Lih4Liz4LmA4Lil4Li34Lit4LiHCivguKHguLQKK+C4oeC4tOC4hAor4Lih4Li04LiELQor4Lih4Li04LiE4Lil4Li44LiXCivguKHguLTguITguKXguLjguJfguIEKK+C4oeC4tOC4hOC5gOC4qOC4teC4ouC4owor4Lih4Li04LiE4Liq4Lix4LiN4LiN4Li1CivguKHguLTguITguKrguLTguKMtCivguKHguLTguITguKrguLTguKPguLAKK+C4oeC4tOC4hOC4tQor4Lih4Li04LmI4LiHCivguKHguLTguYjguIfguILguKfguLHguI0KK+C4oeC4tOC4h+C5guC4hAor4Lih4Li04LmI4LiH4Lih4Li04LiV4LijCivguKHguLTguIjguInguLIKK+C4oeC4tOC4iOC4ieC4suC4geC4seC4oeC4oeC4seC4meC4leC4sAor4Lih4Li04LiI4LiJ4Liy4LiI4Lij4Li04Lii4LiyCivguKHguLTguIjguInguLLguIjguLLguKMKK+C4oeC4tOC4iOC4ieC4suC4iuC4teC4ngor4Lih4Li04LiI4LiJ4Liy4LiX4Li04LiQ4Li0CivguKHguLTguIjguInguLLguJrguJYKK+C4oeC4tOC4iOC4ieC4suC4p+C4suC4iOC4sgor4Lih4Li04LiI4LiJ4Liy4Lin4Liy4Lii4Liy4Lih4LiwCivguKHguLTguIjguInguLLguKrguJXguLQKK+C4oeC4tOC4iOC4ieC4suC4quC4oeC4suC4mOC4tAor4Lih4Li04LiI4LiJ4Liy4Liq4Lix4LiH4LiB4Lix4Lib4Lib4LiwCivguKHguLTguIjguInguLLguK3guLLguIrguLXguKfguLAKK+C4oeC4tOC4jeC4ii0KK+C4oeC4tOC4lAor4Lih4Li04LiU4LiK4Li04LiUCivguKHguLTguJTguYDguKHguYnguJkKK+C4oeC4tOC4lOC5gOC4oeC4teC5ieC4ouC4mQor4Lih4Li04LiU4Lir4Lih4Li1CivguKHguLTguJTguLXguKHguLTguKPguYnguLLguKIKK+C4oeC4tOC5hOC4lOC5iQor4Lih4Li04LiVLQor4Lih4Li04LiV4Lig4Liy4LiT4Li1CivguKHguLTguJXguKMKK+C4oeC4tOC4leC4oy0KK+C4oeC4tOC4leC4o+C4iOC4tOC4lQor4Lih4Li04LiV4Lij4LiI4Li04LiV4Lih4Li04LiV4Lij4LmD4LiICivguKHguLTguJXguKPguKDguLLguJ4KK+C4oeC4tOC4leC4o+C4quC4q+C4suC4ogor4Lih4Li04LiV4Li0CivguKHguLTguJbguKLguLIKK+C4oeC4tOC4luC4uOC4mQor4Lih4Li04LiW4Li44LiZ4Liy4Lii4LiZCivguKHguLTguJfguJjguLAKK+C4oeC4tOC4l+C4mOC4tQor4Lih4Li04LiZ4LiV4Lij4LiyCivguKHguLTguJnguJXguLIKK+C4oeC4tOC4meC4q+C4oeC5ieC4rQor4Lih4Li04LiZ4LmI4LiyCivguKHguLTguJnguYjguLLguKXguYjguLAKK+C4oeC4tOC4meC5iOC4suC5gOC4peC5iOC4sgor4Lih4Li04LmI4LihCivguKHguLTguYnguKEKK+C4oeC4tOC4ouC4sgor4Lih4Li04LmE4LiiCivguKHguLTguKPguLHguJnguJXguLUKK+C4oeC4tOC4peC4peC4tOC4geC4o+C4seC4oQor4Lih4Li04Lil4Lil4Li04Lia4Liy4Lij4LmMCivguKHguLTguKXguKXguLTguYDguKHguJXguKMKK+C4oeC4tOC4peC4peC4tOC4peC4tOC4leC4owor4Lih4Li04Lil4Lix4LiB4LiC4LiwCivguKHguLTguKXguLHguIHguILguLkKK+C4oeC4tOC4peC4suC4lQor4Lih4Li04Lio4LijLQor4Lih4Li04Lio4Lij4LiBLQor4Lih4Li04LiqLQor4Lih4Li04Liq4LiBLQor4Lih4Li04Liq4LiB4Lij4Li1CivguKHguLTguKrguIHguKfguLHguJkKK+C4oeC4tOC4quC4i+C4sgor4Lih4Li04Lit4Lii4LmI4Liy4Lij4LiyCivguKHguLTguK3guKLguYjguLLguYDguKXguKIKK+C4oeC4tQor4Lih4Li14LmICivguKHguLXguYHguIHguYjguYPguIgKK+C4oeC4teC5iOC4ieC4suC4pwor4Lih4Li14LiK4Li34LmI4LitCivguKHguLXguIrguLnguYkKK+C4oeC4teC4lAor4Lih4Li14LiU4LmC4LiB4LiZCivguKHguLXguJTguJXguK3guIEKK+C4oeC4teC4lOC4ouC4seC4mgor4Lih4Li14LiU4Lir4Lih4LitCivguKHguLXguJXguLLguYHguJXguYjguKvguLLguKHguLXguYHguKfguKfguYTguKHguYgKK+C4oeC4teC4l+C4reC4h+C5gOC4l+C5iOC4suC4q+C4meC4p+C4lOC4geC4uOC5ieC4hyDguJnguK3guJnguKrguLDguJTguLjguYnguIfguIjguJnguYDguKPguLfguK3guJnguYTguKvguKcKK+C4oeC4teC5gOC4l+C4mQor4Lih4Li14LiZCivguKHguLXguJnguLLguITguKEKK+C4oeC4teC5gOC4n+C4t+C5ieC4reC4h+C4oeC4teC4quC4peC4tuC4hwor4Lih4Li14Lig4Liy4Lip4Li14LiB4Lin4LmI4LiyCivguKHguLXguYDguKPguLfguK3guJkKK+C4oeC4teC5iOC4quC4seC5ieC4pwor4Lih4Li14LmA4Liq4Li14Lii4LiHCivguKHguLXguKvguJnguYnguLIKK+C4oeC4teC4q+C4meC5ieC4suC4oeC4teC4leC4sgor4Lih4Li14Lis4LirLQor4Lih4Li14Lit4Lix4LiZ4LiI4Liw4LiB4Li04LiZCivguKHguLXguK3guLHguJnguYDguJvguYfguJkKK+C4oeC4teC4reC4suC4ouC4uAor4Lih4Li24LiBCivguKHguLbguIHguKHguKfguKIKK+C4oeC4tuC4hwor4Lih4Li24LiH4Lin4Liy4Lie4Liy4LmC4Lin4LiiCivguKHguLbguJkKK+C4oeC4tuC4meC4h+C4hwor4Lih4Li24LiZ4LiK4LiyCivguKHguLbguJnguIvguLbguKEKK+C4oeC4tuC4meC4leC4tuC4hwor4Lih4Li24LiZ4LmA4Lih4LiyCivguKHguLfguJQKK+C4oeC4t+C4lOC4hOC5iOC4swor4Lih4Li34LiU4LmB4Lib4LiU4LiU4LmJ4Liy4LiZCivguKHguLfguJTguJ/guYnguLLguKHguLHguKfguJTguLTguJkKK+C4oeC4t+C4lOC4oeC4mQor4Lih4Li34LiU4Lih4Lix4LinCivguKHguLfguJTguKvguJnguYnguLIKK+C4oeC4t+C4mQor4Lih4Li34LmI4LiZCivguKHguLfguK0KK+C4oeC4t+C5ieC4rQor4Lih4Li34Lit4LiB4Liy4LinCivguKHguLfguK3guYDguIHguYjguLIKK+C4oeC4t+C4reC4guC4p+C4sgor4Lih4Li34Lit4LiC4Li24LmJ4LiZCivguKHguLfguK3guYHguILguYfguIcKK+C4oeC4t+C4reC4lOC4tQor4Lih4Li34Lit4LiV4LiBCivguKHguLfguK3guYDguJXguLTguJoKK+C4oeC4t+C4reC4luC4t+C4reC4quC4suC4gSDguJvguLLguIHguJbguLfguK3guKjguLXguKUKK+C4oeC4t+C4reC4l+C4teC5iOC4quC4suC4oQor4Lih4Li34Lit4Lia4Lit4LiZCivguKHguLfguK3guYDguJrguLIKK+C4oeC4t+C4reC4m+C4t+C4mQor4Lih4Li34Lit4Lic4Li1CivguKHguLfguK3guKHguLfguJQKK+C4oeC4t+C4reC5hOC4oeC5iOC4luC4tuC4hwor4Lih4Li34Lit4LmE4Lih4LmI4Lie4Liy4LiiIOC5gOC4reC4suC4leC4teC4meC4o+C4suC4meC5ieC4swor4Lih4Li34Lit4LmA4Lii4LmH4LiZCivguKHguLfguK3guKPguYnguK3guJkKK+C4oeC4t+C4reC4peC4tOC4hwor4Lih4Li34Lit4LmE4LinCivguKHguLfguK3guKrguLDguK3guLLguJQKK+C4oeC4t+C4reC4quC4seC5ieC4meC4leC4teC4meC4quC4seC5ieC4mQor4Lih4Li34Lit4Liq4Li1CivguKHguLfguK3guYDguKrguLfguK0KK+C4oeC4t+C4reC4q+C4meC4seC4gQor4Lih4Li34Lit4Lir4LiZ4Li24LmI4LiHCivguKHguLfguK3guKvguYjguLLguIfguJXguLXguJnguKvguYjguLLguIcKK+C4oeC4t+C4reC5g+C4q+C4oeC5iAor4Lih4Li34Lit4Lit4LmI4Lit4LiZCivguKHguLfguK3guK3guYjguK3guJnguJXguLXguJnguK3guYjguK3guJkKK+C4oeC4uAor4Lih4Li44LiBCivguKHguLjguIHguJTguLIKK+C4oeC4uOC4geC4lOC4suC4q+C4suC4owor4Lih4Li44LiB4Li44LijCivguKHguLjguIHguLjguKUKK+C4oeC4uOC4ggor4Lih4Li44LiCLQor4Lih4Li44LiC4LiB4Lij4Liw4Liq4Lix4LiZCivguKHguLjguILguYDguJTguYfguIgKK+C4oeC4uOC4guC4muC4suC4kAor4Lih4Li44LiC4Lih4LiZ4LiV4Lij4Li1CivguKHguLjguILguKItCivguKHguLjguILguKLguJvguKPguLDguYLguKLguIQKK+C4oeC4uOC4guC4peC4lAor4Lih4Li44LmC4LiC4LmC4Lil4LiB4LiZ4LiwCivguKHguLjguITguITguLAKK+C4oeC4uOC4hOC4mOC5jAor4Lih4Li44LiE4LijCivguKHguLjguIcKK+C4oeC4uOC5iOC4hwor4Lih4Li44LmJ4LiHCivguKHguLjguYnguIfguIHguKPguLDguJXguYjguLLguKIKK+C4oeC4uOC5ieC4h+C4m+C4o+C4sOC4l+C4uOC4mQor4Lih4Li44LmI4LiH4Lih4Liy4LiUCivguKHguLjguYjguIfguKPguYnguLLguKLguKvguKHguLLguKLguILguKfguLHguI0KK+C4oeC4uOC5ieC4h+C4peC4p+C4lAor4Lih4Li44LmJ4LiH4Liq4Liy4Lii4Lia4Lix4LinCivguKHguLjguYjguIfguKvguKHguLLguKIKK+C4oeC4uOC4iOC4ieC4sgor4Lih4Li44LiI4LiZCivguKHguLjguIjguKXguLTguJnguJfguYwKK+C4oeC4uOC4jeC4iOC4meC4sAor4Lih4Li44LiN4LiKCivguKHguLjguJDguLQKK+C4oeC4uOC4k+C4kQor4Lih4Li44LiT4LiR4LiBCivguKHguLjguJQKK+C4oeC4uOC4lOC4q+C4seC4pwor4Lih4Li44LiVCivguKHguLjguJUtCivguKHguLjguJXguIHguLTguJQKK+C4oeC4uOC4leC4huC4suC4lQor4Lih4Li44LiV4LiV4LiwCivguKHguLjguJXguJXguLIKK+C4oeC4uOC4leC4leC4tAor4Lih4Li44LiV4Li0CivguKHguLjguJXguLTguIfguITguYwKK+C4oeC4uOC4l+C4hAor4Lih4Li44LiX4LiE4LijCivguKHguLjguJfguJfguLIKK+C4oeC4uOC4l+C4mOC4iuC4sAor4Lih4Li44LiX4LiY4LiyCivguKHguLjguJfguJjguLLguKDguLTguYDguKnguIEKK+C4oeC4uOC4l+C4o+C4sgor4Lih4Li44LiX4Lij4Li04LiB4LiyCivguKHguLjguJfguLDguKXguLgKK+C4oeC4uOC4l+C4sgor4Lih4Li44LiX4Li04LiB4LiyCivguKHguLjguJfguLTguIfguITguYwKK+C4oeC4uOC4l+C4tOC4leC4sgor4Lih4Li44LiX4Li04LiZCivguKHguLjguJfguLgKK+C4oeC4uOC4l+C4uOC4leC4sgor4Lih4Li44LmI4LiZCivguKHguLjguYjguJnguYPguIgKK+C4oeC4uOC5iOC4meC4q+C4oeC4gQor4Lih4Li44LiZ4Li0CivguKHguLjguJnguLTguIHguLjguI3guIrguKMKK+C4oeC4uOC4meC4tOC4meC4l+C4o+C5jAor4Lih4Li44LiZ4Li1CivguKHguLjguJoKK+C4oeC4uOC4muC5hgor4Lih4Li44Lia4Lih4Li04LiaCivguKHguLjguKEKK+C4oeC4uOC5iOC4oQor4Lih4Li44LmJ4LihCivguKHguLjguKHguIHguJTguKXguIcKK+C4oeC4uOC4oeC4geC5ieC4oQor4Lih4Li44Lih4LiB4Lil4Lix4LiaCivguKHguLjguKHguYDguIfguKIKK+C4oeC4uOC4oeC4ieC4suC4gQor4Lih4Li44Lih4LiV4LiB4LiB4Lij4Liw4LiX4LiaCivguKHguLjguKHguJXguKPguIcKK+C4oeC4uOC4oeC5gOC4lwor4Lih4Li44Lih4Lia4LmI4Liy4Lii4LmA4Lia4LiZCivguKHguLjguKHguJvguKPguLDguIrguLTguJQKK+C4oeC4uOC4oeC4m+C5ieC4suC4mQor4Lih4Li44Lih4Lih4Li34LiUCivguKHguLjguKHguKLguIHguILguLbguYnguJkKK+C4oeC4uOC4oeC5geC4ouC5ieC4hwor4Lih4Li44Lih4Liq4Liw4LiX4LmJ4Lit4LiZCivguKHguLjguKHguKvguLHguIHguYDguKsKK+C4oeC4uOC4oeC5gOC4qwor4Lih4Li44Lih4LmB4Lir4Lil4LihCivguKHguLjguYjguKIKK+C4oeC4uOC4o+C4igor4Lih4Li44Lij4LiY4LiyCivguKHguLjguKPguJjguLLguKDguLTguYDguKnguIEKK+C4oeC4uOC4peC4uOC4lQor4Lih4Li44Lil4Li5CivguKHguLjguKrguKXguLAKK+C4oeC4uOC4quC4peC4tOC4oQor4Lih4Li44Liq4LiwCivguKHguLjguKrguLIKK+C4oeC4uOC4quC4suC4p+C4suC4lwor4Lih4Li44Liq4Li04LiBCivguKHguLjguKvguIfguLTguJQKK+C4oeC4uOC4q+C4meC5iOC4suC4ogor4Lih4Li44Lir4Li44LiVCivguKHguLjguK7guLHguKHguKHguLHguJQKK+C4oeC4ueC4gQor4Lih4Li54LiB4Lih4Lix4LiZCivguKHguLnguIHguYDguKXguLfguK3guJQKK+C4oeC4ueC4geC4q+C4peC4p+C4hwor4Lih4Li54LiELQor4Lih4Li54LmA4LiL4LitCivguKHguLnguJXguKMKK+C4oeC4ueC5iOC4l+C4ueC5iAor4Lih4Li54LiZCivguKHguLnguJnguKHguK3guIcKK+C4oeC4ueC4oeC4oeC4suC4oQor4Lih4Li54Lij4LiU4Li1CivguKHguLnguKPguJXguLQKK+C4oeC4ueC4o+C4mC0KK+C4oeC4ueC4o+C4mOC4sgor4Lih4Li54Lij4LiY4Liy4Lig4Li04LmA4Lip4LiBCivguKHguLnguKUKK+C4oeC4ueC4pS0KK+C4oeC4ueC4peC4hOC5iOC4sgor4Lih4Li54Lil4LmC4LiECivguKHguLnguKXguIjguLTguJUKK+C4oeC4ueC4peC4kOC4suC4mQor4Lih4Li54Lil4LmE4LiWCivguKHguLnguKXguJnguIHguIHguLLguKPguYDguKfguIEKK+C4oeC4ueC4peC4meC4suC4ogor4Lih4Li54Lil4LiZ4Li04LiY4Li0CivguKHguLnguKXguJ3guK3guKIKK+C4oeC4ueC4peC4oOC4seC4k+C4keC5jOC4geC4seC4meC4iuC4mQor4Lih4Li54Lil4LiwCivguKHguLnguKXguLIKK+C4oeC4ueC4peC4tOC4geC4suC4geC4owor4Lih4Li54LmI4Lil4Li14LmICivguKHguLnguYjguYDguKXguYgKK+C4oeC4ueC4quC4seC4hwor4Lih4Li54Liq4Li04LiBCivguKHguLnguKrguLTguIEtCivguKHguLnguKrguLTguIHguJfguLHguJnguJXguYwKK+C4oeC4ueC4rOC4qy0KK+C5gOC4oQor4LmA4Lih4LmH4LiBCivguYDguKHguIHguLDguYDguK7guLTguKPguJXguIvguYwKK+C5gOC4oeC4guC4peC4sgor4LmA4Lih4LiGCivguYDguKHguIbguITguKXguLjguYnguKEKK+C5gOC4oeC4huC4ieC4suC4ogor4LmA4Lih4LiG4Lie4Lix4LiUCivguYDguKHguIbguKHguLLguIEKK+C5gOC4oeC4huC4sgor4LmA4Lih4LiG4Li04LiZ4LiX4Lij4LmMCivguYDguKHguIbguLUKK+C5gOC4oeC5h+C4hwor4LmA4Lih4LiH4Lit4Liw4Lib4LiyCivguYDguKHguYfguJQKK+C5gOC4oeC5h+C4lOC4lOC4tQor4LmA4Lih4LmH4LiU4Lie4Lij4Liw4Lio4LiBCivguYDguKHguYfguJTguJ7guKPguLLguKIKK+C5gOC4oeC5h+C4lOC4oeC4sOC4ouC4oQor4LmA4Lih4LmH4LiU4Lil4Liw4Lih4Li44LiUCivguYDguKHguYfguJTguYDguKXguLfguK3guJQKK+C5gOC4oeC5h+C4lOC5guC4peC4q+C4tOC4lQor4LmA4Lih4LiV4LiV4LiyCivguYDguKHguJXguYTguJXguKPguKIKK+C5gOC4oeC4leC4owor4LmA4Lih4LiV4Lij4Li04LiBCivguYDguKHguJXguKPguLTguIHguJXguLHguJkKK+C5gOC4oeC4luC4uOC4mQor4LmA4Lih4LiXCivguYDguKHguJfguJnguLUKK+C5gOC4oeC4l+C4meC4teC4lOC4pQor4LmA4Lih4LiX4Li04LiZ4Li1CivguYDguKHguJfguLTguKXguYHguK3guKXguIHguK3guK7guK3guKXguYwKK+C5gOC4oeC5guC4lwor4LmA4Lih4LiYCivguYDguKHguJjguLIKK+C5gOC4oeC4mOC4suC4p+C4tQor4LmA4Lih4LiY4Li1CivguYDguKHguJkKK+C5gOC4oeC5iOC4mQor4LmA4Lih4LmJ4LiZCivguYDguKHguJnguYDguJTguKXguLXguYDguKfguLXguKLguKEKK+C5gOC4oeC4meC4l+C4reC4pQor4LmA4Lih4LmI4LiZ4LiX4Liw4LmA4LilCivguYDguKHguYnguKEKK+C5gOC4oeC5ieC4oeC4m+C4suC4gQor4LmA4Lih4Lij4LiiLQor4LmA4Lih4Lij4Lix4LiiCivguYDguKHguKPguLgKK+C5gOC4oeC4o+C4uC0KK+C5gOC4oeC4o+C4uOC4oeC4suC4qAor4LmA4Lih4Lij4Li44Lij4Liy4LiKCivguYDguKHguKXguYwKK+C5gOC4oeC4peC4gQor4LmA4Lih4Lil4LmH4LiUCivguYDguKHguKXguLfguK3guIcKK+C5gOC4oeC4peC4t+C5iOC4reC4ogor4LmA4Lih4Lil4Li34LmJ4Lit4LiiCivguYDguKHguKXguLfguYjguK3guKLguKHguKXguYnguLIKK+C5gOC4oeC4qQor4LmA4Lih4Lip4Liy4Lii4LiZCivguYDguKHguKsKK+C5gOC4oeC4q+C5jAor4LmA4Lih4Lir4LiZCivguYDguKHguLAKK+C5gOC4oeC4sgor4LmA4Lih4LmI4LiyCivguYDguKHguYnguLIKK+C5gOC4oeC5ieC4suC5gOC4hOC5ieC4sgor4LmA4Lih4Liy4LiU4Li04LiaCivguYDguKHguLLguKHguLHguJkKK+C5gOC4oeC4suC4oeC4seC4pwor4LmA4Lih4Liy4Lih4Liy4LiiCivguYDguKHguLLguKLguKgKK+C5gOC4oeC4suC4o+C4tQor4LmA4Lih4Liy4Lil4Li1CivguYDguKHguLLguKvguYwKK+C5gOC4oeC4suC4reC4s+C4meC4suC4iAor4LmA4Lih4Liy4LiwCivguYDguKHguLLguLDguJXguLLguYLguKLguIHguLHguIEKK+C5gOC4oeC4suC4sOC4p+C5iOC4sgor4LmA4Lih4Li04LiHCivguYDguKHguLTguJkKK+C5gOC4oeC4tOC4pQor4LmA4Lih4Li14LiiCivguYDguKHguLXguKLguIcKK+C5gOC4oeC4teC5iOC4ouC4hwor4LmA4Lih4Li14Lii4LiH4Lih4LmI4Liy4LiiCivguYDguKHguLXguYnguKLguJkKK+C5gOC4oeC4teC4ouC4meC5ieC4reC4ogor4LmA4Lih4Li14Lii4Lir4Lil4Lin4LiHCivguYDguKHguLfguK0KK+C5gOC4oeC4t+C5iOC4rQor4LmA4Lih4Li34LmJ4LitCivguYDguKHguLfguK3guIEKK+C5gOC4oeC4t+C5iOC4reC4geC4teC5iQor4LmA4Lih4Li34Lit4LiHCivguYDguKHguLfguK3guIfguILguLbguYnguJkKK+C5gOC4oeC4t+C4reC4h+C4l+C5iOC4sgor4LmA4Lih4Li34Lit4LiH4LiX4LmI4Liy4Lib4Lil4Lit4LiU4Lig4Liy4Lip4Li1CivguYDguKHguLfguK3guIfguJnguK3guIEKK+C5gOC4oeC4t+C4reC4h+C4q+C4peC4p+C4hwor4LmA4Lih4Li34Lit4LiH4Lit4Lit4LiBCivguYDguKHguLfguYjguK3guJXguLDguIHguLXguYkKK+C5gOC4oeC4t+C5iOC4reC4meC4seC5ieC4mQor4LmA4Lih4Li34Lit4LiaCivguYDguKHguLfguYjguK3guJ7guLXguYDguJnguLfguYnguK3guKvguK3guKEg4LmA4Lih4Li34LmI4Lit4Lic4Lit4Lih4LmA4LiZ4Li34LmJ4Lit4LmA4Lir4Lih4LmH4LiZCivguYDguKHguLfguYjguK3guKIKK+C5gOC4oeC4t+C5iOC4reC4ouC4m+C4suC4gQor4LmA4Lih4Li34LmI4Lit4LmA4Lit4Lii4LiB4LmH4LmA4Lih4Li34LmI4Lit4LiZ4Lix4LmJ4LiZCivguYDguKHguLfguYjguK3guYDguK3guKLguYDguKHguLfguYjguK3guJnguLHguYnguJkKK+C5geC4oeC5iAor4LmB4Lih4LmJCivguYHguKHguIEKK+C5geC4oeC4geC4meC4teC5gOC4i+C4teC4ouC4oQor4LmB4Lih4LmI4LiB4Lij4Liw4LiK4Lix4LiH4Lir4LiZ4LmJ4Liy4LmD4Lir4LiN4LmICivguYHguKHguYjguIHguKPguLDguYHguIrguIcKK+C5geC4oeC5iOC4geC4reC4hwor4LmB4Lih4LmI4LiB4Li44LiN4LmB4LiICivguYHguKHguYjguITguLjguJMKK+C5geC4oeC5iOC4hOC4ueC5iAor4LmB4Lih4LiHCivguYHguKHguIfguIHguKfguLLguIcKK+C5geC4oeC4h+C4geC4sOC4nuC4o+C4uOC4mQor4LmB4Lih4LiH4LiB4Liy4LiZ4Li04LiZCivguYHguKHguIfguIHguLLguJnguLXguKoKK+C5geC4oeC4h+C4hOC4suC5gOC4o+C4t+C4reC4hwor4LmB4Lih4LiH4LiK4LmJ4Liy4LiHCivguYHguKHguIfguJTguLIKK+C5geC4oeC4h+C4lOC4suC4l+C4sOC5gOC4pQor4LmB4Lih4LiH4Lib4Liy4LiB4LiI4Lit4LiaCivguYHguKHguIfguYTguJ/guYDguJTguLfguK3guJnguKvguYnguLIKK+C5geC4oeC5iOC4h+C4oeC5ieC4suC4hwor4LmB4Lih4LiH4Lih4Li44LihCivguYHguKHguIfguKXguLHguIEKK+C5geC4oeC5iOC4h+C4suC4mQor4LmB4Lih4LmI4LmA4LiI4LmJ4LiyCivguYHguKHguYjguYDguIjguYnguLLguYLguKfguYnguKIKK+C5geC4oeC5iOC4i+C4t+C5ieC4rQor4LmB4Lih4LmI4LiV4Liw4LiH4Liy4LinCivguYHguKHguYjguJXguLLguKIKK+C5geC4oeC5iOC5gOC4leC4suC5hOC4nwor4LmB4Lih4LmJ4LmB4LiV4LmICivguYHguKHguYjguJfguLHguJ4KK+C5geC4oeC5iOC4l+C5iOC4sgor4LmB4Lih4LiZCivguYHguKHguYjguJkKK+C5geC4oeC5ieC4mQor4LmB4Lih4LmJ4LiZ4LmA4LiC4Li14Lii4LiZCivguYHguKHguYjguJnguKEKK+C5geC4oeC5iOC4meC4ouC4swor4LmB4Lih4LmI4LiZ4LmJ4LizCivguYHguKHguYjguJrguJcKK+C5geC4oeC5iOC4muC5ieC4suC4mQor4LmB4Lih4LmI4LmA4Lia4Li14LmJ4LiiCivguYHguKHguYjguJvguLAKK+C5geC4oeC5iOC5geC4m+C4o+C4gQor4LmB4Lih4LmI4Lie4Li04Lih4Lie4LmMCivguYHguKHguYjguKHguJQKK+C5geC4oeC5iOC4oeC5iOC4suC4ogor4LmB4Lih4LmI4Lih4LmI4Liy4Lii4LiX4Lij4LiH4LmA4LiE4Lij4Li34LmI4Lit4LiHCivguYHguKHguYjguKHguYjguLLguKLguKXguK3guIfguYTguJkKK+C5geC4oeC5iOC4ouC4seC5iOC4p+C5gOC4oeC4t+C4reC4hwor4LmB4Lih4LmI4Lii4LmI4Liy4LiZ4Liy4LiHCivguYHguKHguYjguKLguLLguKIKK+C5geC4oeC5iOC4ouC5ieC4suC4pwor4LmB4Lih4LijCivguYHguKHguYjguKPguYnguLIKK+C5geC4oeC5iOC4o+C5ieC4suC4hwor4LmB4Lih4LmI4Lij4Li14LmB4Lih4LmI4LmB4Lij4LiUCivguYHguKHguYjguYDguKPguLfguK3guJkKK+C5geC4oeC5iOC5geC4o+C4hwor4LmB4Lih4Lil4LiHCivguYHguKHguKXguIfguIrguYnguLLguIcKK+C5geC4oeC4peC4h+C4lOC4sgor4LmB4Lih4Lil4LiH4LiU4LizCivguYHguKHguKXguIfguJTguLPguKvguJnguLLguKEKK+C5geC4oeC4peC4h+C4l+C4seC4muC5gOC4peC5h+C4gQor4LmB4Lih4Lil4LiH4Lib4LitCivguYHguKHguKXguIfguKDguLnguYgKK+C5geC4oeC4peC4h+C4p+C4seC4mQor4LmB4Lih4Lil4LiH4Lin4Lix4LiZ4LiX4Lit4LiHCivguYHguKHguKXguIfguKfguLHguJnguKrguYDguJvguJkKK+C5geC4oeC4peC4h+C4p+C4seC4meC4q+C4seC4p+C5gOC4guC4teC4ouC4pwor4LmB4Lih4Lil4LiaCivguYHguKHguYjguKXguLLguKIKK+C5geC4oeC5iOC5gOC4peC5ieC4sgor4LmB4Lih4LmI4LmA4Lil4Li14LmJ4Lii4LiHCivguYHguKHguKcKK+C5geC4oeC5ieC4pwor4LmB4Lih4Lin4LmA4LiL4LiyCivguYHguKHguKfguJTguLLguKcKK+C5geC4oeC4p+C4meC5ieC4swor4LmB4Lih4Lin4Lib4LmI4LiyCivguYHguKHguKfguKHguK3guIcKK+C5geC4oeC5iOC4p+C4tQor4LmB4Lih4LmI4Liq4Liy4Lii4Lia4Lix4Lin4LmB4LiV4LmI4LiH4LiV4Lix4Lin4LiE4LmJ4Liy4LiHCivguYHguKHguYjguKrguLUKK+C5geC4oeC5iOC4quC4t+C5iOC4rQor4LmB4Lih4LmI4Lir4LiZ4Lix4LiBCivguYHguKHguYjguKvguKLguLHguYjguKfguYDguKHguLfguK3guIcKK+C5geC4oeC5iOC5gOC4q+C4ouC5ieC4suC5geC4oeC5iOC5gOC4o+C4t+C4reC4mQor4LmB4Lih4LmI4LmA4Lir4Lil4LmH4LiBCivguYHguKHguYjguK3guKLguLnguYjguKvguLHguKcKK+C5geC4oeC4sAor4LmC4LihCivguYLguKHguYgKK+C5guC4oeC5iQor4LmC4Lih4LiBCivguYLguKHguIHguIItCivguYLguKHguIHguILguYwKK+C5guC4oeC4geC4guC4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jAor4LmC4Lih4LiB4LmC4LiE4LiBCivguYLguKHguIHguKHguLHguJkKK+C5guC4oeC4geC4qS0KK+C5guC4oeC4geC4qeC4sAor4LmC4Lih4LiB4Lip4Liw4Lie4Lii4Liy4LiZCivguYLguKHguIHguYPguKvguI3guYgKK+C5guC4oeC4hi0KK+C5guC4oeC4huC4geC4o+C4o+C4oQor4LmC4Lih4LiG4LiwCivguYLguKHguIbguLXguKItCivguYLguKHguIbguLXguKLguIHguKPguKPguKEKK+C5guC4oeC4huC4teC4ouC4sAor4LmC4Lih4LiHCivguYLguKHguYjguIcKK+C5guC4oeC4h+C4hOC4o+C4uOC5iOC4oQor4LmC4Lih4LmI4LiH4LmC4LiE4LmI4LiHCivguYLguKHguIjguJktCivguYLguKHguJfguJnguLIKK+C5guC4oeC4mQor4LmC4Lih4LmC4LiZ4LmB4LiL4LmH4LiB4LiE4Liy4LmE4Lij4LiU4LmMCivguYLguKHguYTguJnguKIKK+C5guC4oeC4oeC4ueC4q+C5jAor4LmC4Lih4Lih4Li54Lir4LiwCivguYLguKHguYDguKEKK+C5guC4oeC5gOC4oeC4meC4leC5jAor4LmC4Lih4LijLQor4LmC4Lih4Lij4LiB4Lil4Liy4LibCivguYLguKHguKPguLIKK+C5guC4oeC4o+C4tQor4LmC4Lih4LmA4Lij4LiqCivguYLguKHguKXguLTguJrguJTguLXguJnguLHguKEKK+C5guC4oeC4peC4tQor4LmC4Lih4LmA4Lil4LiB4Li44LilCivguYLguKHguKkKK+C5guC4oeC4qeC4gQor4LmC4Lih4Lip4LiTCivguYLguKHguYDguKrguIEKK+C5guC4oeC5gOC4quC4qgor4LmC4Lih4LirLQor4LmC4Lih4LmI4Lir4LmMCivguYLguKHguKvguLAKK+C5guC4oeC4q+C4seC4meC4mOC5jAor4LmC4Lih4Lir4Liy4LiE4LiV4Li0CivguYLguKHguYLguKsKK+C5hOC4oeC5iAor4LmE4Lih4LmJCivguYTguKHguYnguIHguIcKK+C5hOC4oeC4geC4sgor4LmE4Lih4LmJ4LiB4Liy4LiB4Lia4Liy4LiXCivguYTguKHguYnguIHguLLguIfguYDguILguJkKK+C5hOC4oeC5iOC4geC4teC5iOC4meC5ieC4swor4LmE4Lih4LmI4LiB4Li14LmI4Lit4Lix4LiQCivguYTguKHguYjguIHguLXguYjguK3guLHguJDguKzguKoKK+C5hOC4oeC5ieC5g+C4geC4peC5ieC4neC4seC5iOC4hwor4LmE4Lih4LmJ4LiC4Li14LmJ4LiJ4LmJ4LitCivguYTguKHguYnguILguLXguJTguYTguJ8KK+C5hOC4oeC5iOC5gOC4guC5ieC4suC5g+C4hOC4o+C4reC4reC4geC5g+C4hOC4owor4LmE4Lih4LmI4LmA4LiC4LmJ4Liy4Lii4LiyCivguYTguKHguYnguYHguILguYfguIcKK+C5hOC4oeC5ieC4hOC4oeC5geC4neC4gQor4LmE4Lih4LiE4Lij4Lit4LiZCivguYTguKHguYjguITguYjguK3guKIKK+C5hOC4oeC5guC4hOC4o+C4geC4o+C4seC4oQor4LmE4Lih4LmC4LiE4Lij4Lif4Li04Lil4LmM4LihCivguYTguKHguYLguITguKPguYLguJ/guJkKK+C5hOC4oeC5guC4hOC4o+C4oeC4tOC5gOC4leC4reC4o+C5jAor4LmE4Lih4LmC4LiE4Lij4LmA4Lih4LiV4LijCivguYTguKHguYLguITguKPguKXguLTguJXguKMKK+C5hOC4oeC5guC4hOC4o+C5gOC4p+C4nwor4LmE4Lih4LmI4LmD4LiE4Lij4LmICivguYTguKHguYnguIfguLLguKHguIHguKPguLDguKPguK3guIHguYDguIjguLLguLAKK+C5hOC4oeC5ieC4iOC4o+C4tOC4hwor4LmE4Lih4LmJ4LiI4Lix4LiV4Lin4LiyCivguYTguKHguYnguIjguLPguJvguLIKK+C5hOC4oeC5iOC4iuC4reC4muC4oeC4suC4nuC4suC4geC4pQor4LmE4Lih4LmI4LmA4LiK4Li04LiHCivguYTguKHguYjguYPguIrguYjguILguLXguYnguYTguIHguYgKK+C5hOC4oeC5ieC4lOC4seC4lAor4LmE4Lih4LmJ4LiU4LizCivguYTguKHguYjguJTguLnguJTguLPguJTguLnguJTguLUKK+C5hOC4oeC5iOC4lOC4ueC4lOC4s+C4lOC4ueC5geC4lOC4hwor4LmE4Lih4LmI4LiU4Li54LiV4Liy4Lih4LmJ4Liy4LiV4Liy4LmA4Lij4Li34LitCivguYTguKHguYnguYDguJTguYfguJQKK+C5hOC4oeC5ieC5geC4lOC4hwor4LmE4Lih4LmI4LmE4LiU4LmJ4LmA4Lia4Li14LmJ4Lii4Lit4Lit4LiB4LiC4LmJ4Liy4LinCivguYTguKHguYjguYTguJTguYnguYDguJrguLXguYnguKLguYDguK3guLLguILguYnguLLguKcKK+C5hOC4oeC5iOC5hOC4lOC5ieC4qOC4seC4nuC4l+C5jAor4LmE4Lih4LmI4LmE4LiU4LmJ4Liq4Li04LiaCivguYTguKHguJXguKPguLUKK+C5hOC4oeC5ieC4leC4o+C4tQor4LmE4Lih4LmJ4LiV4Liy4LiiCivguYTguKHguYnguJXguLLguKLguILguLLguJkKK+C5hOC4oeC5ieC4leC4teC4nuC4o+C4tOC4gQor4LmE4Lih4LmI4LmA4LiV4LmH4Lih4LmA4LiV4LmH4LiHCivguYTguKHguYjguYDguJXguYfguKHguJrguLLguJcKK+C5hOC4oeC5iOC5gOC4leC5h+C4oeC4q+C4uOC4mQor4LmE4Lih4LmJ4LmE4LiV4LmI4LiE4Li54LmJCivguYTguKHguYjguJbguLnguIHguYLguKPguITguIHguLHguJkKK+C5hOC4oeC5ieC4l+C4seC4k+C4keC4huC4suC4lQor4LmE4Lih4LmI4LiX4Lix4LiZCivguYTguKHguYnguYDguJfguYnguLIKK+C5hOC4oeC5ieC5gOC4l+C5ieC4suC4ouC4suC4ouC4oeC5iOC4reC4oQor4LmE4Lih4LmJ4LmC4LiXCivguYTguKHguYnguJnguKfguKEKK+C5hOC4oeC5ieC4meC4reC4geC4geC4rQor4LmE4Lih4LmJ4LiZ4Li04LmJ4LinCivguYTguKHguYnguJrguKPguKPguJfguLHguJQKK+C5hOC4oeC5ieC5gOC4muC4t+C5iOC4reC5hOC4oeC5ieC5gOC4oeC4sgor4LmE4Lih4LmJ4Lib4LmI4Liy4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZCivguYTguKHguYnguYDguJvguYfguJkKK+C5hOC4oeC5ieC4nOC4seC4lAor4LmE4Lih4LmI4Lie4Li54LiU4Lie4Lij4LmI4Liz4LiX4Liz4LmA4Lie4Lil4LiHCivguYTguKHguYnguYLguJ4KK+C5hOC4oeC5iOC4n+C4seC4h+C5gOC4quC4teC4ouC4hwor4LmE4Lih4LmJ4Lih4Lil4Liy4LiiCivguYTguKHguYnguKHguYnguKfguJkKK+C5hOC4oeC5iOC4oeC4teC4m+C4teC5iOC4oeC4teC4geC4peC4reC4hwor4LmE4Lih4LmI4Lih4Li14Lih4Li54Lil4Lid4Lit4Lii4Lir4Lih4Liy4LmE4Lih4LmI4LiC4Li14LmJCivguYTguKHguYjguKHguLXguKfguLHguJnguYDguKrguLXguKLguKXguLAKK+C5hOC4oeC5ieC4oeC4t+C4lAor4LmE4Lih4LmJ4Lih4Li34LitCivguYTguKHguYnguYDguKHguJXguKMKK+C5hOC4oeC5ieC4ouC4oeC4gQor4LmE4Lih4Lii4Lij4Liy4LiaCivguYTguKHguYnguKLguLLguKHguLHguIHguIHguLLguKMKK+C5hOC4oeC5ieC4ouC4suC4pwor4LmE4Lih4LmJ4Lij4LmI4Lih4LiZ4LiB4LiI4Lix4LiaCivguYTguKHguYjguKPguLnguYnguIjguLHguIHguYDguKrguLfguK3guYDguK3guLLguYDguKPguLfguK3guYDguILguYnguLLguKHguLLguIjguK3guJQg4LmE4Lih4LmI4Lij4Li54LmJ4LiI4Lix4LiB4Lih4Lit4LiU4LmA4Lit4Liy4LmE4Lih4LmJ4LmA4LiC4LmJ4Liy4Lih4Liy4Lin4Liy4LiHCivguYTguKHguYjguKPguLnguYnguIjguLHguIHguKvguLHguKfguJnguK3guJnguJvguKXguLLguKLguJXguLXguJkKK+C5hOC4oeC5iOC4o+C4ueC5ieC4reC4teC5guC4q+C4meC5iOC4reC4teC5gOC4q+C4meC5iAor4LmE4Lih4LmJ4LmA4Lij4Li14Lii4LinCivguYTguKHguKXguYwKK+C5hOC4oeC5iOC4peC4h+C5guC4muC4quC4luC5jOC4geC4seC4mQor4LmE4Lih4LmJ4Lil4LmJ4Lih4LmA4LiH4Liy4Lir4Liy4LiiCivguYTguKHguYnguKXguYnguKHguKXguLjguIEKK+C5hOC4oeC5ieC4peC4reC4ogor4LmE4Lih4LmJ4LmA4Lil4Li14LmJ4Lii4LiHCivguYTguKHguYnguYTguKXguYgKK+C5hOC4oeC5ieC4p+C4sgor4LmE4Lih4LmJ4Liq4Lit4LiiCivguYTguKHguYnguKrguLHguYnguJkKK+C5hOC4oeC5ieC4quC4seC5ieC4meC5hOC4oeC5ieC4ouC4suC4pwor4LmE4Lih4LmJ4Liq4Liy4Lih4Lit4Lix4LiZCivguYTguKHguYjguKrguLnguYkKK+C5hOC4oeC5ieC4quC4ueC4hwor4LmE4Lih4LmJ4Lir4LiZ4LmJ4LiyCivguYTguKHguYnguKvguKHguK3guJkKK+C5hOC4oeC5ieC4q+C4oeC4uOC4mQor4LmE4Lih4LmJ4Lir4Lil4Lix4LiB4Lib4Lix4LiB4LmA4Lil4LiZCivguYTguKHguYnguKvguLHguJnguK3guLLguIHguLLguKgKK+C5hOC4oeC5ieC4q+C4tuC5iOC4hwor4LmE4Lih4LmI4LmA4Lir4LmH4LiZ4LiZ4LmJ4Liz4LiV4Lix4LiU4LiB4Lij4Liw4Lia4Lit4LiBIOC5hOC4oeC5iOC5gOC4q+C5h+C4meC4geC4o+C4sOC4o+C4reC4geC4geC5iOC4h+C4q+C4meC5ieC4suC5hOC4oeC5iQor4LmE4Lih4LmI4LmA4Lir4Lil4Li34Lit4Lia4LmI4Liy4LiB4Lin4LmI4Liy4LmB4Lij4LiHCivguYTguKHguYnguK3guYjguK3guJnguJTguLHguJTguIfguYjguLLguKIg4LmE4Lih4LmJ4LmB4LiB4LmI4LiU4Lix4LiU4Lii4Liy4LiBCivguYTguKHguYnguK3guLHguJQKK+C5hOC4oeC5ieC5gOC4reC4gQor4LmE4Lih4LmI4LmA4Lit4Lit4Lit4Lit4Lir4LmI4Lit4Lir4Lih4LiBCivguYTguKHguYnguYLguK0KK+C4ogor4Lii4LiBCivguKLguIHguIHguKPguLDguJrguLHguJXguKMKK+C4ouC4geC4hOC4o+C4uQor4Lii4LiB4LmA4LiE4Lij4Li34LmI4Lit4LiHCivguKLguIHguYDguITguYnguLIKK+C4ouC4geC4leC4meC4guC5iOC4oeC4l+C5iOC4suC4mQor4Lii4LiB4LiV4Lix4Lin4LiC4Li24LmJ4LiZ4LmA4Lir4LiZ4Li34Lit4Lil4LihCivguKLguIHguJfguKPguIcKK+C4ouC4geC4mOC4h+C4guC4suC4pwor4Lii4LiB4LiZCivguKLguIHguJnguLTguYnguKcKK+C4ouC4geC4nuC4t+C5ieC4mQor4Lii4LiB4Lif4LmJ4Lit4LiHCivguKLguIHguKDguLnguYDguILguLLguK3guK3guIHguIjguLLguIHguK3guIEKK+C4ouC4geC4oeC4t+C4rQor4Lii4LiB4LmA4Lih4LiGCivguKLguIHguKLguK0KK+C4ouC4geC4ouC5iOC4reC4hwor4Lii4LiB4Lii4Lit4LiUCivguKLguIHguKLguK3guJvguK3guJvguLHguYnguJkKK+C4ouC4geC5gOC4peC4tOC4gQor4Lii4LiB4LmA4Lin4LmJ4LiZCivguKLguIHguYTguKfguYkKK+C4ouC4geC4q+C4suC4h+C4leC4seC4p+C5gOC4reC4hwor4Lii4LiB4LmD4Lir4LiN4LmICivguKLguIcKK+C4ouC4h+C5guC4ouC5iAor4Lii4LiK4Li44Lij4LmA4Lin4LiXCivguKLguJXguLQKK+C4ouC4leC4tOC4oOC4seC4h+C4hOC5jAor4Lii4LiW4Liy4LiB4Lij4Lij4LihCivguKLguJbguLLguKDguLnguJXguI3guLLguJMKK+C4ouC5iOC4mQor4Lii4LiZ4LiV4LmMCivguKLguJnguJXguKPguYwKK+C4ouC5iOC4meC4ouC5iOC4rQor4Lii4LihCivguKLguKEtCivguKLguKHguIEKK+C4ouC4oeC4geC4m+C4suC4j+C4tOC4q+C4suC4o+C4tOC4ouC5jAor4Lii4Lih4LiC4Lix4LiZ4LiY4LmMCivguKLguKHguYLguJTguKIKK+C4ouC4oeC4l+C4seC4k+C4keC5jAor4Lii4Lih4LiX4Li54LiVCivguKLguKHguJnguLIKK+C4ouC4oeC4muC4suC4pQor4Lii4Lih4Lij4Liy4LiKCivguKLguKHguKUKK+C4ouC4oeC5guC4peC4gQor4Lii4Lij4Lij4Lii4LiHCivguKLguKUKK+C4ouC4pwor4Lii4Lin4LiB4Liq4LiyCivguKLguKfguIcKK+C4ouC4p+C4lAor4Lii4Lin4LiU4Lii4LiHCivguKLguKfguJTguKLguLLguJkKK+C4ouC4p+C4lOC4ouC4tOC5iOC4hwor4Lii4Lin4LiZCivguKLguKfguJnguKLguLUKK+C4ouC4p+C4mgor4Lii4Lin4Lia4LmGCivguKLguKfguJrguKLguLLguJoKK+C4ouC5ieC4p+C4ogor4Lii4Lin4Lij4Lii4Liy4LiV4LijCivguKLguKfguLIKK+C4ouC4p+C4suC4hOC4uAor4Lii4LioCivguKLguKjguK3guKLguYjguLLguIcKK+C4ouC5guC4qgor4Lii4LitCivguKLguYjguK0KK+C4ouC4reC4gQor4Lii4Lit4LiB4Lii4LmJ4Lit4LiZCivguKLguYfguK3guIHguYHguKLguYfguIEKK+C4ouC5h+C4reC4geC5geC4ouC5h+C4geC5hgor4Lii4Lit4LiHCivguKLguK3guIfguYYKK+C4ouC5iOC4reC4hwor4Lii4LmJ4Lit4LiHCivguKLguYjguK3guIfguIHguKPguLTguJoKK+C4ouC5iOC4reC4h+C5gOC4muC4sgor4Lii4LmI4Lit4LiH4LmB4Lii4LmI4LiHCivguKLguK3guIfguYPguKIKK+C4ouC4reC4h+C5hOC4ouC5iAor4Lii4LmI4Lit4LiH4LmA4Lir4LiH4LmH4LiUCivguKLguK3guJQKK+C4ouC4reC4lOC4iOC4suC4gQor4Lii4Lit4LiU4LiU4LmJ4Lin4LiZCivguKLguK3guJTguJTguLUKK+C4ouC4reC4lOC4meC5ieC4swor4Lii4Lit4LiU4Liq4Lij4LmJ4Lit4LiiCivguKLguYjguK3guJfguYnguK0KK+C4ouC4reC4mQor4Lii4LmJ4Lit4LiZCivguKLguYnguK3guJnguYDguJnguLfguYnguK0KK+C4ouC5ieC4reC4meC4ouC4reC4gQor4Lii4Lit4LiaCivguKLguK3guJrguYHguKLguJoKK+C4ouC5iOC4reC4nuC4pQor4Lii4Lit4LihCivguKLguYjguK3guKEKK+C4ouC5ieC4reC4oQor4Lii4Lit4Lih4LiE4Lin4Liy4LihCivguKLguYnguK3guKHguYPguIgKK+C4ouC5ieC4reC4oeC5geC4oeC4p+C4guC4suC4ogor4Lii4LmI4Lit4Lih4LmA4Lii4LiyCivguKLguYjguK3guKHguLjguKEKK+C4ouC5iOC4reC4ogor4Lii4LmJ4Lit4LiiCivguKLguYjguK3guKLguYjguJkKK+C4ouC5iOC4reC4ouC4ouC4seC4mgor4Lii4LmI4Lit4LmB4Lii4LmICivguKLguYnguK3guYHguKLguYkKK+C4ouC4reC5geC4quC4hwor4Lii4LmI4Lit4Lir4LiZ4LmJ4LiyCivguKLguYjguK3guKvguKLguYjguK3guJkKK+C4ouC5iOC4reC5geC4q+C4ouC4hwor4Lii4LiwCivguKLguYjguLAKK+C4ouC4sOC4h+C4seC4meC4iOC4sOC4hOC4seC4mgor4Lii4Liw4Lii4Lit4LiaCivguKLguLDguKLguLHguJkKK+C4ouC4sOC4ouC4seC4mgor4Lii4Liw4Lii4Liy4LiZCivguKLguLDguKLguYnguLLguKIKK+C4ouC4sOC4ouC5ieC4suC4pwor4Lii4Liw4LmB4Lii4LmJ4LiHCivguKLguLDguKvguLTguJfguLIKK+C4ouC4seC4gQor4Lii4Lix4LiB4LiB4Lij4Liw4Liq4Liy4LiiCivguKLguLHguIHguILguYwKK+C4ouC4seC4geC4guC4tOC4meC4tQor4Lii4Lix4LiB4LiX4LmI4LiyCivguKLguLHguIHguYDguJ7guKPguLXguKIKK+C4ouC4seC4geC4ouC4reC4gQor4Lii4Lix4LiB4Lii4LmJ4Liy4LiiCivguKLguLHguIHguKLguLTguYnguKEKK+C4ouC4seC4geC4ouC4teC5iOC4ouC4seC4geC4ouC4seC4mQor4Lii4Lix4LiB4Lii4Li14LmI4Lii4Lix4LiB4LmA4Lir4Lii4LiyCivguKLguLHguIHguYDguKLguLfguYnguK3guIcKK+C4ouC4seC4geC5geC4ouC5iOC4ouC4seC4geC4ouC4seC4mQor4Lii4Lix4LiB4Lip4LmMCivguKLguLHguIHguKnguYzguJvguLHguIHguKvguKXguLHguYjguJkKK+C4ouC4seC4geC4qeC5jOC4oeC4seC4geC4geC4sOC4quC4seC4mQor4Lii4Lix4LiB4Lip4Li04LiT4Li1CivguKLguLHguIHguKnguLUKK+C4ouC4seC4geC4q+C4ouC4suC4pwor4Lii4Lix4LiB4Lir4Lil4LmI4LihCivguKLguLHguIcKK+C4ouC4seC5ieC4hwor4Lii4Lix4LiH4LiB4Liy4Lir4Lil4LiyCivguKLguLHguIfguIrguLHguYjguKcKK+C4ouC4seC5iOC4h+C4ouC4t+C4mQor4Lii4Lix4LiH4LmB4Lil4LmJ4LinCivguKLguLHguIfguKvguKLguLHguIcKK+C4ouC4seC4iuC5guC4jeC4m+C4p+C4teC4lQor4Lii4Lix4LiK4LiZCivguKLguLHguIrguKHguLLguJkKK+C4ouC4seC4jQor4Lii4Lix4LiNLQor4Lii4Lix4LiN4LiB4Lij4Lij4LihCivguKLguLHguI3guI3guLAKK+C4ouC4seC4jeC4jeC4seC4h+C4hOC5jAor4Lii4Lix4LiN4Lie4Li04LiY4Li1CivguKLguLHguJDguLQKK+C4ouC4seC4kOC4tOC4oeC4mOC4uOC4geC4sgor4Lii4Lix4LiUCivguKLguLHguJTguYDguKLguLXguKLguJQKK+C4ouC4seC4leC4tOC4oOC4seC4h+C4hOC5jAor4Lii4Lix4LiZCivguKLguLHguYjguJkKK+C4ouC4seC4meC4leC5jAor4Lii4Lix4LiZ4LiV4LijLQor4Lii4Lix4LiZ4LiV4Lij4LmMCivguKLguLHguJnguJXguKPguIHguKPguKPguKEKK+C4ouC4seC5iOC4meC4leC4sOC4meC4tQor4Lii4Lix4LiZ4LmA4Lii4LmJ4LiyCivguKLguLHguJoKK+C4ouC4seC4muC5hgor4Lii4Lix4Lia4Lii4LiHCivguKLguLHguJrguKLguYjguK3guKIKK+C4ouC4seC4muC4ouC4seC5ieC4hwor4Lii4Lix4Lia4Lii4Lix4LmJ4LiH4LiK4Lix4LmI4LiH4LmD4LiICivguKLguLHguJrguKLguLLguJkKK+C4ouC4seC4muC4ouC4suC4mgor4Lii4Lix4Lia4LmA4Lii4Li04LiZCivguKLguLHguYjguKcKK+C4ouC4seC5ieC4pwor4Lii4Lix4LmI4Lin4Lii4Lin4LiZCivguKLguLHguYjguKfguYDguKLguYnguLIKK+C4ouC4seC5ieC4p+C5gOC4ouC4teC5ieC4ogor4Lii4Lix4Lin4Lij4Lii4Liy4LiV4LijCivguKLguLHguKnguI/guLQKK+C4ouC4sgor4Lii4LmI4LiyCivguKLguLLguIEKK+C4ouC4suC4geC5geC4hOC5ieC4mQor4Lii4Liy4LiB4LiI4LiZCivguKLguLLguIHguJnguLLguJkKK+C4ouC4suC4geC5gOC4ouC5h+C4mQor4Lii4Liy4LiB4LmE4Lij4LmJCivguKLguLLguYDguILguLXguKLguKcKK+C4ouC4suC4hAor4Lii4Liy4LiE4Li4CivguKLguLLguITguLkKK+C4ouC4suC4hwor4Lii4LmI4Liy4LiHCivguKLguLLguIfguIHguKPguLLguJQKK+C4ouC5iOC4suC4h+C4leC4teC4mQor4Lii4LmI4Liy4LiH4LiX4Lij4Liy4LiiCivguKLguYjguLLguIfguYDguJfguYnguLIKK+C4ouC4suC4h+C4meC5iOC4reC4hwor4Lii4Liy4LiH4Lia4Lit4LiZCivguKLguLLguIfguJ7guLLguKPguLIKK+C4ouC4suC4h+C4oeC4sOC4leC4reC4ogor4Lii4LmI4Liy4LiH4LmA4Lii4Li34LmJ4Lit4LiHCivguKLguLLguIfguKXguJoKK+C4ouC4suC4h+C4quC4mQor4Lii4LmI4Liy4LiH4Liq4Liy4Lih4LiC4Li44LihCivguKLguLLguIfguK3guLLguKIKK+C4ouC4suC4iOC4gQor4Lii4Liy4LiI4LiZCivguKLguLLguIjguJnguIEKK+C4ouC4suC4iOC4meC4sgor4Lii4Liy4LiI4Li34LiUCivguKLguLLguYPguIgKK+C4ouC4suC4ieC4uOC4mQor4Lii4Liy4LmE4LiJ4LiZCivguKLguLLguIrguIEKK+C4ouC4suC4lAor4Lii4Liy4LiU4LiyCivguKLguLLguJTguLMKK+C4ouC4suC5geC4lOC4hwor4Lii4Liy4LiV4LiZ4LiyCivguKLguLLguJXguKMKK+C4ouC4suC4leC4o+C4sgor4Lii4Liy4LiV4Lix4LmJ4LiHCivguKLguYjguLLguJfguKfguJQKK+C4ouC4suC4mOC4suC4leC4uAor4Lii4Liy4LiZCivguKLguYjguLLguJkKK+C4ouC4suC4meC4gQor4Lii4LmI4Liy4LiZ4LiB4Lit4Lia4LiZ4Liy4LiHCivguKLguLLguJnguITguLLguIcKK+C4ouC5iOC4suC4meC4i+C4t+C5iOC4rQor4Lii4LmI4Liy4LiZ4LiX4Lij4Liy4LiiCivguKLguYjguLLguJnguJnguKHguITguKfguLLguKIKK+C4ouC5iOC4suC4meC4nuC4suC5guC4q+C4oQor4Lii4Liy4LiZ4Lih4Liy4LioCivguKLguYjguLLguJnguKLguLLguKcKK+C4ouC5iOC4suC4meC4peC4tOC5gOC4oOC4sgor4Lii4Liy4LiZ4Lix4LiV4LiW4Li44LmMCivguKLguYjguLLguJnguLLguIcKK+C4ouC5iOC4suC4meC4suC4h+C4iuC5ieC4suC4hwor4Lii4Liy4LiZ4Li1CivguKLguLLguJnguLjguKHguLLguKgKK+C4ouC4suC4mgor4Lii4Liy4Lia4LmGCivguKLguLLguJvguJktCivguKLguLLguJvguJnguKHguLHguJUKK+C4ouC4suC4neC4reC4ogor4Lii4Liy4LmB4Lid4LiUCivguKLguLLguKEKK+C4ouC4suC4oS0KK+C4ouC5iOC4suC4oQor4Lii4Liy4Lih4LiB4Liy4Lil4Li04LiBCivguKLguLLguKHguYDguIHguLIKK+C4ouC4suC4oeC4leC4ueC4lOC4iuC4suC4ogor4Lii4Liy4Lih4Lie4Liy4LiUCivguKLguLLguKHguYLguKLguIQKK+C4ouC4suC4oeC4quC4suC4oeC4leC4sgor4Lii4Liy4Lih4Lix4LiB4LiB4Liy4LijCivguKLguLLguKHguLTguIEKK+C4ouC4suC4ogor4Lii4LmJ4Liy4LiiCivguKLguLLguKLguJfguKfguJQKK+C4ouC4suC4ouC4tQor4Lii4Liy4LmA4Lii4Li14LiiCivguKLguLLguKcKK+C4ouC5ieC4suC4pwor4Lii4Liy4Lin4LiB4Liy4Lil4Li04LiBCivguKLguLLguKfguIrguLXguKfguLTguIEKK+C4ouC4suC4p+C4muC4seC5iOC4mSDguKrguLHguYnguJnguJXguYjguK0KK+C4ouC4suC4p+C4o+C4tQor4Lii4Liy4Lin4Lix4LiqCivguKLguLLguKrguKXguJoKK+C4ouC4suC4quC4seC5iOC4hwor4Lii4Liy4Liq4Li54LiaCivguKLguLLguYDguKrguYnguJkKK+C4ouC4suC5gOC4quC4nuC4ouC5jOC4leC4tOC4lAor4Lii4Liy4LmA4Liq4Lie4Lii4LmM4LiV4Li04LiU4LmD4Lir4LmJ4LmC4LiX4LipCivguKLguLLguYTguKrguYkKK+C4ouC4suC4q+C4oeC5ieC4reC5g+C4q+C4jeC5iAor4Lii4Liy4Lir4Lih4Li54LmICivguKLguLLguKvguKLguLHguIcKK+C4ouC5iOC4suC4q+C4ouC4sgor4Lii4Liy4Lir4Lii4Li1CivguKLguLLguKvguLHguJQKK+C4ouC4suC4reC4seC4lAor4Lii4LizCivguKLguYjguLMKK+C4ouC5ieC4swor4Lii4Liz4LmA4LiB4Lij4LiHCivguKLguYjguLPguYDguJfguLfguK3guIEKK+C4ouC4s+C4ouC4suC4oQor4Lii4LmI4Liz4Lii4Li1CivguKLguLPguYDguKLguIcKK+C4ouC4s+C5gOC4ouC4teC4ogor4Lii4LmI4Liz4LmB4Lii4LmICivguKLguYnguLPguYDguKvguKLguK0KK+C4ouC4tOC4gQor4Lii4Li04LiB4LmGCivguKLguLTguIcKK+C4ouC4tOC5iOC4hwor4Lii4Li04LiH4Lib4Li34LiZ4LiZ4Lix4LiU4LmA4LiU4Li14Lii4LinIOC5hOC4lOC5ieC4meC4geC4quC4reC4h+C4leC4seC4pwor4Lii4Li04LiH4Lif4Lix4LiZCivguKLguLTguYjguIfguKLguKfguJQKK+C4ouC4tOC4j+C4kOC4sAor4Lii4Li04LiQCivguKLguLTguJkKK+C4ouC4tOC4meC5geC4hOC4peC4mQor4Lii4Li04LiZ4LmD4LiICivguKLguLTguJnguJTguLUKK+C4ouC4tOC4meC4oeC4peC4suC4gQor4Lii4Li04LiZ4Lii4Lit4LihCivguKLguLTguJnguKPguYnguLLguKIKK+C4ouC4tOC4meC4peC4suC4geC4guC4suC4geC4lOC4tQor4Lii4Li04LiaCivguKLguLTguJrguYYKK+C4ouC4tOC4m+C4i+C4seC4oQor4Lii4Li04Lib4LiL4Li1CivguKLguLTguYnguKEKK+C4ouC4tOC5ieC4oeC4geC4o+C4tOC5iOC4oQor4Lii4Li04LmJ4Lih4LmB4LiJ4LmI4LiHCivguKLguLTguYnguKHguJTguYnguKfguKLguJvguLLguIEg4LiW4Liy4LiB4LiU4LmJ4Lin4Lii4LiV4LiyCivguKLguLTguKHguJnguLLguKrguJXguLTguIEKK+C4ouC4tOC5ieC4oeC5geC4m+C5ieC4mQor4Lii4Li04LmJ4Lih4Lii4LmI4Lit4LiHCivguKLguLTguYnguKHguYDguKLguLLguLAKK+C4ouC4tOC5ieC4oeC5geC4ouC5ieC4oQor4Lii4Li04LmJ4Lih4Lil4Liw4LmE4LihCivguKLguLTguYnguKHguKvguLHguKcKK+C4ouC4tOC5ieC4oeC5gOC4q+C4ogor4Lii4Li04LmJ4Lih4LmB4Lir4LmJ4LiHCivguKLguLTguYnguKHguYHguKvguKIKK+C4ouC4tOC4q+C4p+C4sgor4Lii4Li1CivguKLguLXguYgKK+C4ouC4teC5iQor4Lii4Li14LmI4LiB4LmI4LiyCivguKLguLXguYjguYDguIEKK+C4ouC4teC5iOC5gOC4guC5iOC4hwor4Lii4Li14LmI4LmC4LiWCivguKLguLXguYjguYLguJbguJ3guKPguLHguYjguIcKK+C4ouC4teC4mQor4Lii4Li14LmI4LmC4Lib4LmJCivguKLguLXguYjguKDguLnguYgKK+C4ouC4teC4ouC4p+C4mQor4Lii4Li14Lij4Liy4LifCivguKLguLXguYjguKrguIEKK+C4ouC4teC5iOC4quC4hwor4Lii4Li14LmI4Liq4LiZCivguKLguLXguYjguKrguLLguJkKK+C4ouC4teC5iOC4quC5iOC4suC4mQor4Lii4Li14LmI4Liq4Li04LiaCivguKLguLXguYjguKrguLjguYjguJkKK+C4ouC4teC5iOC4q+C4o+C4sAor4Lii4Li14LmI4Lir4Lij4LmI4LiyCivguKLguLXguYjguKvguKPguYjguLLguKvguKfguLLguJkKK+C4ouC4teC5iOC4q+C5ieC4rQor4Lii4Li14LmI4Lir4Li44LiaCivguKLguLbguIHguKLguLfguK0KK+C4ouC4tuC4lAor4Lii4Li24LiU4LiE4Lij4Lit4LiHCivguKLguLbguJTguJbguLfguK0KK+C4ouC4tuC4lOC4l+C4o+C4seC4nuC4ouC5jAor4Lii4Li24LiU4LmA4Lir4LiZ4Li14LmI4Lii4LinCivguKLguLfguJQKK+C4ouC4t+C4lOC4ouC4suC4lAor4Lii4Li34LiU4LmA4Lii4Li34LmJ4LitCivguKLguLfguJTguKvguKLguLjguYjguJkKK+C4ouC4t+C4mQor4Lii4Li34LmI4LiZCivguKLguLfguJnguIHguKPguLDguJXguYjguLLguKLguKrguLLguKHguILguLIKK+C4ouC4t+C4meC4geC4o+C4suC4mQor4Lii4Li34LmI4LiZ4LmB4LiB4LmJ4Lin4LmD4Lir4LmJ4Lin4Liy4LiZ4LijCivguKLguLfguJnguITguYnguLPguKvguLHguKcKK+C4ouC4t+C4meC5gOC4hOC4o+C4t+C5iOC4reC4hwor4Lii4Li34LmI4LiZ4LiI4Lih4Li54LiBCivguKLguLfguJnguIrguLTguIfguIrguYnguLIKK+C4ouC4t+C4meC4leC5ieC4mQor4Lii4Li34LiZ4Lie4Li34LmJ4LiZCivguKLguLfguYjguJnguKHguLfguK0KK+C4ouC4t+C4meC4ouC4hwor4Lii4Li34LiZ4Lii4Lix4LiZCivguKLguLfguJnguKLguLLguKEKK+C4ouC4t+C4meC5guC4o+C4hwor4Lii4Li34LmI4LiZ4Lir4Lih4Li54Lii4Li34LmI4LiZ4LmB4Lih4LinCivguKLguLfguJnguKvguKLguLHguJQKK+C4ouC4t+C4oQor4Lii4Li34Lih4LiI4Lih4Li54LiB4LiE4LiZ4Lit4Li34LmI4LiZ4Lir4Liy4Lii4LmD4LiICivguKLguLfguKHguYPguIrguYnguITguIfguKPguLnguJsKK+C4ouC4t+C4oeC5g+C4iuC5ieC4quC4tOC5ieC4meC5gOC4m+C4peC4t+C4reC4hwor4Lii4Li34LmJ4LitCivguKLguLfguYnguK3guKLguLjguJQKK+C4ouC4uAor4Lii4Li44LiB4LiB4Lij4Liw4Lia4Lix4LiV4LijCivguKLguLjguIHguJTguLQKK+C4ouC4uOC4geC4leC5jAor4Lii4Li44LiB4LiV4Li0CivguKLguLjguIHguJXguLTguJjguKPguKPguKEKK+C4ouC4uOC4hAor4Lii4Li44LiE4LmA4LiC4LmH4LiNCivguKLguLjguITguJnguJjguKMKK+C4ouC4uOC4hOC4pQor4Lii4Li44LiE4Lil4Lia4Liy4LiXCivguKLguLjguITguLHguJnguJUtCivguKLguLjguITguLHguJnguJXguYwKK+C4ouC4uOC4hOC4seC4meC4leC4p+C4suC4lQor4Lii4Li44LiE4Lix4LiZ4LiY4LijCivguKLguLjguITguLjguJnguJjguKMKK+C4ouC4uOC4hwor4Lii4Li44LmI4LiHCivguKLguLjguYnguIcKK+C4ouC4uOC4h+C4geC4p+C4suC4lAor4Lii4Li44LmI4LiH4LiC4Li04LiHCivguKLguLjguYjguIfguYPguIgKK+C4ouC4uOC4h+C4m+C4seC4lAor4Lii4Li44LiH4Lib4Lix4LiU4LmB4Lih4LmI4Lih4LmI4Liy4LiiCivguKLguLjguYjguIfguKLguLLguIEKK+C4ouC4uOC5iOC4h+C4ouC4tOC5iOC4hwor4Lii4Li44LmI4LiH4LmA4Lir4Lih4Li34Lit4LiZ4Lii4Li44LiH4LiV4Li14LiB4Lix4LiZCivguKLguLjguYjguIfguYDguKvguKLguLTguIcKK+C4ouC4uOC4lAor4Lii4Li44LiVCivguKLguLjguJXguLQtCivguKLguLjguJXguLTguJjguKPguKPguKEKK+C4ouC4uOC4l+C4mC0KK+C4ouC4uOC4l+C4mOC5jAor4Lii4Li44LiX4LiY4LiB4Liy4LijCivguKLguLjguJfguJjguJnguLIKK+C4ouC4uOC4l+C4mOC4meC4suC4geC4suC4owor4Lii4Li44LiX4LiY4LiZ4Liy4LiY4Li04LiB4Liy4LijCivguKLguLjguJfguJjguKDguLHguJPguJHguYwKK+C4ouC4uOC4l+C4mOC4oOC4ueC4oeC4tAor4Lii4Li44LiX4LiY4LmC4Lii4LiY4LiyCivguKLguLjguJfguJjguKfguLTguJjguLUKK+C4ouC4uOC4l+C4mOC4p+C4tOC4meC4seC4ogor4Lii4Li44LiX4LiY4Lio4Liy4Liq4LiV4Lij4LmMCivguKLguLjguJfguJjguKvguLHguJXguJbguLUKK+C4ouC4uOC4l+C5guC4mOC4m+C4geC4o+C4k+C5jAor4Lii4Li44LiaCivguKLguLjguJrguKLguK3guJoKK+C4ouC4uOC4muC4ouC4seC4mgor4Lii4Li44Lia4Lii4Li04LiaCivguKLguLjguJrguKUKK+C4ouC4uOC4ni0KK+C4ouC4uOC4nuC4lOC4tQor4Lii4Li44Lie4Lii4LiHCivguKLguLjguJ7guYDguKLguLLguKfguYwKK+C4ouC4uOC4nuC4o+C4suC4igor4Lii4Li44Lie4Lij4Liy4LiK4LiyCivguKLguLjguJ7guYDguKPguKgKK+C4ouC4uOC4nuC4sgor4Lii4Li44Lie4Liy4LiZCivguKLguLjguJ7guLLguJ7guLLguKUKK+C4ouC4uOC4nuC4suC4nuC4tOC4mQor4Lii4Li44LmI4Lih4Lii4LmI4Liy4LihCivguKLguLjguYjguKIKK+C4ouC4uOC5ieC4ogor4Lii4Li44Lii4LiHCivguKLguLjguYHguKLguIcKK+C4ouC4uOC5geC4ouC4h+C4leC4sOC5geC4hOC4h+C5geC4i+C4sAor4Lii4Li44LmB4Lii4LiH4LiV4Liw4LmB4LiE4LiH4Lij4Lix4LmI4LinCivguKLguLjguKPguJrguLLguJXguKMKK+C4ouC4uOC4o+C4ouC4suC4leC4owor4Lii4Li44LinLQor4Lii4Li44Lin4LiK4LiZCivguKLguLjguKfguJTguLUKK+C4ouC4uOC4p+C4o+C4suC4igor4Lii4Li44Lin4Lij4Liy4LiK4LiyCivguKLguLjguKfguLIKK+C4ouC4uOC4p+C4suC4mQor4Lii4Li44Lir4Lia4Liy4LiV4LijCivguKLguLjguYHguKvguKLguYgKK+C4ouC4uOC5g+C4q+C5ieC4o+C4s+C4leC4s+C5g+C4q+C5ieC4o+C4seC5iOC4pwor4Lii4Li5CivguKLguLnguYgKK+C4ouC4ueC4hwor4Lii4Li54LmC4LiUCivguKLguLnguJbguLAKK+C4ouC4ueC4luC4tOC4geC4sgor4Lii4Li54Lib4LiwCivguKLguLnguYjguKLguLXguYgKK+C4ouC4ueC4o+C4ouC4suC4leC4owor4Lii4Li54Lij4Li04LiBCivguKLguLnguYDguKPguJnguLHguKoKK+C4ouC4ueC5gOC4o+C5gOC4meC4teC4ouC4oQor4Lii4Li54LmC4Lij4LmA4Lie4Li14Lii4LihCivguKLguLnguKnguLAKK+C5gOC4ouC5hgor4LmA4Lii4LmJCivguYDguKLguIcKK+C5gOC4ouC4i+C4uQor4LmA4Lii4LmH4LiUCivguYDguKLguYfguJkKK+C5gOC4ouC5h+C4meC5g+C4iAor4LmA4Lii4LmH4LiZ4LiK4Li34LiUCivguYDguKLguYfguJnguJXguLIKK+C5gOC4ouC5h+C4meC4leC4suC5guC4nwor4LmA4Lii4LmH4LiZ4LmA4LiV4Liy4LmC4LifCivguYDguKLguYfguJnguYDguKLguLXguKLguJoKK+C5gOC4ouC5h+C4meC5gOC4ouC4t+C4reC4gQor4LmA4Lii4LmH4LiZ4Lir4Li5CivguYDguKLguYfguJoKK+C5gOC4ouC5h+C4muC4geC4teC5iAor4LmA4Lii4LmH4Lia4LiU4LmJ4Liy4LiiCivguYDguKLguYfguJrguKXguKfguJQKK+C5gOC4ouC5h+C4muC5gOC4peC5iOC4oQor4LmA4Lii4LmH4Lia4Lit4LiBCivguYDguKLguKDguLjguKItCivguYDguKLguKDguLjguKLguJnguLHguKIKK+C5gOC4ouC4oOC4uOC4ouC4ouC4sAor4LmA4Lii4Lig4Li44Lii4Liq4Li04LiB4LiyCivguYDguKLguYnguKIKK+C5gOC4ouC4rQor4LmA4Lii4LmI4LitCivguYDguKLguK3guKPguKHguLHguJkKK+C5gOC4ouC4reC4pwor4LmA4Lii4LmI4Lit4Lir4Lii4Li04LmI4LiHCivguYDguKLguK3guLAKK+C5gOC4ouC4reC4sOC5geC4ouC4sAor4LmA4Lii4LiyCivguYDguKLguYnguLIKK+C5gOC4ouC4suC4py0KK+C5gOC4ouC4suC4p+C5jAor4LmA4Lii4Liy4Lin4LiK4LiZCivguYDguKLguLLguKfguJktCivguYDguKLguLLguKfguJnguLAKK+C5gOC4ouC4suC4p+C4nuC4sgor4LmA4Lii4Liy4Lin4Lie4Liy4LiT4Li1CivguYDguKLguLLguKfguJ7guLLguJkKK+C5gOC4ouC4suC4p+C4oeC4suC4peC4ouC5jAor4LmA4Lii4Liy4Lin4Lii4Lit4LiUCivguYDguKLguLLguKfguKPguLLguIoKK+C5gOC4ouC4suC4p+C5gOC4o+C4qAor4LmA4Lii4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMCivguYDguKLguLLguLAKK+C5gOC4ouC4tOC4hwor4LmA4Lii4Li04LiZCivguYDguKLguLTguYjguJkKK+C5gOC4ouC4tOC4meC4ouC4rQor4LmA4Lii4Li04LmI4LiZ4LmA4Lii4LmJ4LitCivguYDguKLguLTguJrguYYKK+C5gOC4ouC4tOC4muC4ouC4suC4mgor4LmA4Lii4Li04LmJ4LihCivguYDguKLguLXguKIKK+C5gOC4ouC4teC5iOC4ouC4hwor4LmA4Lii4Li14Lii4LiH4Lic4LiyCivguYDguKLguLXguYjguKLguIfguK3guKLguYjguLLguIcKK+C5gOC4ouC4teC4ouC4lOC4ouC4seC4lAor4LmA4Lii4Li14Lii4LmD4LiUCivguYDguKLguLXguKLguJkKK+C5gOC4ouC4teC4ouC4mgor4LmA4Lii4Li14LmI4Lii4LihCivguYDguKLguLXguYjguKLguKHguYYg4Lih4Lit4LiH4LmGCivguYDguKLguLXguYjguKLguKHguKLguK3guJQKK+C5gOC4ouC4teC5iOC4ouC4oeC5gOC4ouC4teC4ouC4mQor4LmA4Lii4Li14LmI4Lii4Lih4LmA4Lii4Li34Lit4LiZCivguYDguKLguLXguYjguKLguKHguKfguLTguKHguLLguJkKK+C5gOC4ouC4teC4ouC4oeC4seC5iOC4hwor4LmA4Lii4Li14Lii4Lij4Lia4Lix4LiaCivguYDguKLguLXguKLguKPguKLguIcKK+C5gOC4ouC4teC4ouC4pwor4LmA4Lii4Li14LmI4Lii4LinCivguYDguKLguLXguYjguKLguKfguIfguLHguKcKK+C5gOC4ouC4teC4ouC4p+C4ouC4hwor4LmA4Lii4Li14Lii4Lin4Lii4LiyCivguYDguKLguLXguYjguKLguKfguK3guLnguJAKK+C5gOC4ouC4teC4ouC5g+C4q+C4jeC5iAor4LmA4Lii4Li34LitCivguYDguKLguLfguYjguK0KK+C5gOC4ouC4t+C5ieC4rQor4LmA4Lii4Li34Lit4LiBCivguYDguKLguLfguK3guIHguYDguKLguYfguJkKK+C5gOC4ouC4t+C5iOC4reC5gOC4hOC4ogor4LmA4Lii4Li34Lit4LiHCivguYDguKLguLfguYjguK3guIcKK+C5gOC4ouC4t+C5ieC4reC4hwor4LmA4Lii4Li34LmJ4Lit4LiH4LiB4Lij4Liy4LiiCivguYDguKLguLfguYnguK3guIfguKLguLHguIEKK+C5gOC4ouC4t+C4reC4mQor4LmA4Lii4Li34LmJ4Lit4LiZCivguYDguKLguLfguYjguK3guYPguKIKK+C5geC4ouC5iAor4LmB4Lii4LmJCivguYHguKLguIEKK+C5geC4ouC4geC5gOC4guC4teC5ieC4ouC4pwor4LmB4Lii4LiB4Lii4LmJ4Liy4LiiCivguYHguKLguIHguYHguKLguYnguIcKK+C5geC4ouC4geC5geC4ouC4sAor4LmB4Lii4LiHCivguYHguKLguYjguIcKK+C5geC4ouC5ieC4hwor4LmB4Lii4LiH4Lii4LilCivguYHguKLguIfguYHguKLguYgKK+C5geC4ouC4h+C5geC4ouC5iQor4LmB4Lii4LmI4LmB4LiV4LmJCivguYHguKLguJoKK+C5geC4ouC5h+C4mgor4LmB4Lii4Lia4LiE4Liy4LiiCivguYHguKLguJrguKLguKUKK+C5geC4ouC4oQor4LmB4Lii4LmJ4LihCivguYHguKLguYnguKHguJ7guKPguLLguKIKK+C5geC4ouC5geC4qgor4LmB4Lii4LiwCivguYLguKIKK+C5guC4ouC5iQor4LmC4Lii4LiBCivguYLguKLguIHguJXguKPguYwKK+C5guC4ouC4geC4ouC5ieC4suC4ogor4LmC4Lii4LiB4LmA4Lii4LiBCivguYLguKLguIHguYLguKLguYkKK+C5guC4ouC4hC0KK+C5guC4ouC4hOC5gOC4geC4k+C4keC5jAor4LmC4Lii4LiE4LiI4Lix4LiB4Lip4Li4CivguYLguKLguITguJnguLTguJfguKPguLIKK+C5guC4ouC4hOC4ouC4sAor4LmC4Lii4LiE4LiwCivguYLguKLguITguLLguJ7guIjguKMKK+C5guC4ouC4hOC4suC4p+C4iOC4owor4LmC4Lii4LiE4Li04LiZCivguYLguKLguITguLUKK+C5guC4ouC4hwor4LmC4Lii4LmI4LiHCivguYLguKLguYjguIfguYYKK+C5guC4ouC5iOC4h+C5gOC4ouC5iOC4hwor4LmC4Lii4LiH4LmC4Lii4LmICivguYLguKLguIrguIEKK+C5guC4ouC4iuC4meC5jAor4LmC4Lii4LiK4LiZ4LiyCivguYLguKLguJQKK+C5guC4ouC4lQor4LmC4Lii4LiW4Li04LiB4LiwCivguYLguKLguJfguLDguIHguLIKK+C5guC4ouC4mC0KK+C5guC4ouC4mOC4p+C4suC4l+C4tOC4lQor4LmC4Lii4LiY4LiyCivguYLguKLguJjguLTguJkKK+C5guC4ouC4mQor4LmC4Lii4LiZ4LiBCivguYLguKLguJnguIHguKXguK3guIcKK+C5guC4ouC4meC4geC4peC4reC4mQor4LmC4Lii4LiZ4Lii4Liy4LinCivguYLguKLguJnguKvguKXguLjguKEKK+C5guC4ouC4meC4q+C5iOC4p+C4hwor4LmC4Lii4LiZ4Lir4Lix4Lin4LmC4Lii4LiZ4LiB4LmJ4Lit4LiiCivguYLguKLguJnguLTguYLguKoKK+C5guC4ouC4meC4tOC5guC4quC4oeC4meC4quC4tOC4geC4suC4owor4LmC4Lii4LiZ4Li1CivguYLguKLguJ7guJnguKHguLHguJcKK+C5guC4ouC4nuC4meC4sAor4LmC4Lii4LihCivguYLguKLguYDguKIKK+C5guC4ouC5ieC5gOC4ouC5iQor4LmC4Lii4LmC4LiqCivguYPguKIKK+C5g+C4ouC4n+C5ieC4sgor4LmD4Lii4Lii4Lit4LiHCivguYPguKLguKvguLTguJkKK+C5hOC4ogor4LmE4Lii4LmICivguYTguKLguJTguLUKK+C5hOC4ouC5hOC4ngor4LmE4Lii4LmE4LiiCivguYTguKLguYjguYTguKLguYgKK+C4owor4Lij4LiBCivguKPguIHguIrguLHguI8KK+C4o+C4geC4iuC5ieC4suC4hwor4Lij4LiB4Lia4Li04LiZCivguKPguIHguJ/guYnguLIKK+C4o+C4geC4o+C4suC4gQor4Lij4LiB4Lij4LmJ4Liy4LiHCivguKPguIHguYDguKPguLXguYnguKLguKcKK+C4o+C4hwor4Lij4LiH4LiB4Li44LmMCivguKPguIfguIQtCivguKPguIfguITguYwKK+C4o+C4h+C4hOC4p+C4seC4leC4luC4uAor4Lij4LiH4Lij4Lit4LiHCivguKPguIjguJnguLIKK+C4o+C4iOC5gOC4o+C4ggor4Lij4LiI4LmA4Lil4LiCCivguKPguIjguLTguJUKK+C4o+C4iuC4geC4sAor4Lij4LiK4LiV4LiwCivguKPguIrguJnguLQKK+C4o+C4iuC4meC4tQor4Lij4LiK4LiZ4Li14LiB4LijCivguKPguIrguJnguLXguIjguKMKK+C4o+C4iuC4sAor4Lij4LiTCivguKPguJMtCivguKPguJPguYDguIHguKnguJXguKMKK+C4o+C4k+C4oOC4uQor4Lij4LiT4Lig4Li54Lih4Li0CivguKPguJPguKPguIfguITguYwKK+C4o+C4k+C4quC4luC4suC4mQor4Lij4LiUCivguKPguJTguJnguYnguLMKK+C4o+C4lOC4tQor4Lij4LiV4LiZ4LiwCivguKPguJXguLAKK+C4o+C4leC4tAor4Lij4LiWCivguKPguJYtCivguKPguJbguIjguLHguIHguKPguKLguLLguJkKK+C4o+C4luC4iOC4seC4geC4o+C4ouC4suC4meC4ouC4meC4leC5jAor4Lij4LiW4LiJ4Li44LiB4LmA4LiJ4Li04LiZCivguKPguJbguYLguJTguKLguKrguLLguKPguJvguKPguLDguIjguLPguJfguLLguIcKK+C4o+C4luC4m+C4uOC4h+C4hOC4ngor4Lij4LiW4Lib4Li44LiH4LiE4Lin4LiwCivguKPguJbguYTguJ8KK+C4o+C4luC5hOC4n+C4n+C5ieC4sgor4Lij4LiW4Lii4LiZ4LiV4LmMCivguKPguJbguKLguLIKK+C4o+C4luC4suC4meC4tuC4gQor4Lij4LmA4LiW4Liq4Lig4LiwCivguKPguJcKK+C4o+C4l+C4meC4sAor4Lij4LiZCivguKPguYjguJkKK+C4o+C5ieC4mQor4Lij4LiZ4LiUCivguKPguJnguKvguLLguJfguLXguYgKK+C4o+C4mgor4Lij4Lia4LiB4Lin4LiZCivguKPguJrguKPguLIKK+C4o+C4muC5gOC4o+C5ieC4sgor4Lij4Lia4LiqCivguKPguJrguLLguI0KK+C4o+C4ngor4Lij4Lie4LiyCivguKPguJ7guLQKK+C4o+C4nuC4tQor4Lij4LihCivguKPguYjguKEKK+C4o+C5iOC4oeC5gOC4geC4peC5ieC4sgor4Lij4LmI4Lih4LmA4LiB4LioCivguKPguYjguKHguIrguLnguIrguLXguJ4KK+C4o+C4oeC4k+C4tQor4Lij4Lih4LiT4Li14LiiLQor4Lij4Lih4LiT4Li14Lii4LmMCivguKPguYjguKHguJjguIcKK+C4o+C5iOC4oeC4nOC5ieC4sgor4Lij4LmI4Lih4LmC4Lie4LiY4Li04LmM4Lij4LmI4Lih4LmE4LiX4LijCivguKPguYjguKHguYTguKHguYnguIrguLLguKLguITguLIKK+C4o+C4oeC4ouC5jAor4Lij4LmI4Lih4LmA4Lii4LmH4LiZCivguKPguKHguYDguKLguKgKK+C4o+C4ouC4sAor4Lij4Lii4Liy4LiH4LiE4LmMCivguKPguKfguIEKK+C4o+C4p+C4hwor4Lij4LmI4Lin4LiHCivguKPguKfguIfguJzguLbguYnguIcKK+C4o+C5iOC4p+C4h+C4o+C4uOC5ieC4hwor4Lij4LmI4Lin4LiH4LmC4Lij4LiiCivguKPguKfguJQKK+C4o+C4p+C4lOC5gOC4lOC4teC4ouC4pwor4Lij4Lin4LiU4LmA4Lij4LmH4LinCivguKPguKfguJkKK+C4o+C5iOC4p+C4mQor4Lij4Lin4LiZ4LmA4LijCivguKPguKfguJoKK+C4o+C4p+C4muC4o+C4p+C4oQor4Lij4Lin4Lia4Lij4Lix4LiUCivguKPguKfguJrguKvguLHguKfguKPguKfguJrguKvguLLguIcKK+C4o+C4p+C4oQor4Lij4LmI4Lin4LihCivguKPguYjguKfguKHguYPguIgKK+C4o+C5iOC4p+C4oeC4l+C5ieC4reC4hwor4Lij4LmI4Lin4Lih4Lib4Lij4Liw4LmA4Lin4LiT4Li1CivguKPguYjguKfguKHguYDguJ7guKgKK+C4o+C5iOC4p+C4oeC4oeC4t+C4rQor4Lij4LmI4Lin4Lih4Lij4Lix4LiBCivguKPguYjguKfguKHguYDguKPguLXguKLguIfguYDguITguLXguKLguIfguKvguKHguK3guJkKK+C4o+C5iOC4p+C4oeC4q+C4reC4peC4h+C5guC4o+C4hwor4Lij4Lin4Lih4Lir4Lix4LinCivguKPguYjguKfguKHguKvguLHguKfguIfguLLguJkKK+C4o+C5iOC4p+C4oeC4reC4uOC4l+C4owor4Lij4Lin4LiiCivguKPguKfguKLguYYKK+C4o+C4p+C4ouC4o+C4tOC4mQor4Lij4Lin4Lii4Lij4Li34LmI4LiZCivguKPguKfguLAKK+C4o+C4p+C4tAor4Lij4Lin4Li04Lin4Liy4LijCivguKPguKfguLUKK+C4o+C4qOC4meC4sgor4Lij4LiqCivguKPguKrguIEKK+C4o+C4quC4iuC4suC4leC4tAor4Lij4Liq4LiZ4LiyCivguKPguKrguJnguLTguKLguKEKK+C4o+C4quC4quC4uOC4hOC4meC4mOC5jAor4Lij4Liq4Liy4Lii4LiZ4LmA4Lin4LiXCivguKPguKrguLTguIEKK+C4o+C4q+C4seC4lwor4Lij4Lir4Lix4LiqCivguKPguKvguLTguJUKK+C4o+C5guC4qwor4Lij4LmC4Lir4LiE4LiVCivguKPguYLguKvguJDguLLguJkKK+C4o+C4rQor4Lij4LmI4LitCivguKPguK3guIEKK+C4o+C4reC4hwor4Lij4LmI4Lit4LiHCivguKPguYnguK3guIcKK+C4o+C5ieC4reC4h+C4guC4rQor4Lij4Lit4LiH4LiE4LitCivguKPguK3guIfguYDguIfguYfguIcKK+C4o+C4reC4h+C4iOC5iOC4suC4ogor4Lij4Lit4LiH4LiK4LmJ4LizCivguKPguYnguK3guIfguI7guLXguIHguLIKK+C4o+C4reC4h+C4l+C4o+C4hwor4Lij4Lit4LiH4LiX4LmJ4Lit4LiHCivguKPguYnguK3guIfguJfguLjguIHguILguYwKK+C4o+C4reC4h+C4l+C4uOC4mQor4Lij4Lit4LiH4LmA4LiX4LmJ4LiyCivguKPguYjguK3guIfguJnguYnguLMKK+C4o+C4reC4h+C4muC5iOC4reC4mQor4Lij4Lit4LiH4Lie4Li34LmJ4LiZCivguKPguYnguK3guIfguYDguJ7guKXguIcKK+C4o+C5iOC4reC4h+C4oeC4lAor4Lij4LmJ4Lit4LiH4LmC4Lii4LiZ4Lii4Liy4LinCivguKPguYjguK3guIfguKPguK3guKIKK+C4o+C4reC4h+C4o+C4seC4hwor4Lij4LmJ4Lit4LiH4LmA4Lij4Li14Lii4LiB4Lij4LmJ4Lit4LiH4Lir4LiyCivguKPguYnguK3guIfguYDguKPguLXguKLguJkKK+C4o+C5ieC4reC4h+C5gOC4o+C4t+C4rQor4Lij4LmJ4Lit4LiH4LmB4Lij4LiBCivguKPguYjguK3guIfguYHguKPguYjguIcKK+C4o+C5ieC4reC4h+C4quC5iOC4hwor4Lij4LmJ4Lit4LiH4Lir4LmI4LihCivguKPguYnguK3guIfguKvguYjguKHguKPguYnguK3guIfguYTguKvguYkKK+C4o+C5ieC4reC4h+C5hOC4q+C5iQor4Lij4Lit4LiUCivguKPguK3guJTguIrguLXguKfguLTguJUKK+C4o+C4reC4lOC4leC4seC4pwor4Lij4Lit4LiU4Lir4Li54Lij4Lit4LiU4LiV4LiyCivguKPguK3guJkKK+C4o+C4reC4meC5hgor4Lij4LmI4Lit4LiZCivguKPguYnguK3guJkKK+C4o+C5ieC4reC4meC4leC4seC4pwor4Lij4LmI4Lit4LiZ4LiX4Lit4LiHCivguKPguYnguK3guJnguJzguYnguLLguYDguKvguKXguLfguK3guIcKK+C4o+C5ieC4reC4meC4o+C4mQor4Lij4LmI4Lit4LiZ4Lij4LmI4Lit4LiZCivguKPguYjguK3guJnguKPguLHguJrguKPguYjguK3guJnguYDguKPguYgKK+C4o+C5iOC4reC4meC5gOC4o+C5iAor4Lij4Lit4LiZ4LmB4Lij4LihCivguKPguYnguK3guJnguKfguLTguIrguLIKK+C4o+C4reC4meC4quC4tOC4l+C4mOC4tOC5jAor4Lij4LmJ4Lit4LiZ4Lit4Liy4Liq4LiZ4LmMCivguKPguK3guJoKK+C4o+C4reC4muC4hOC4reC4mgor4Lij4Lit4Lia4Lij4Li54LmJCivguKPguK3guKEKK+C4o+C4reC4oeC4iuC4reC4oQor4Lij4Lit4Lih4Lij4LmI4LitCivguKPguK3guKIKK+C4o+C5iOC4reC4ogor4Lij4LmJ4Lit4LiiCivguKPguYnguK3guKLguIHguKPguK3guIcKK+C4o+C5ieC4reC4ouC5geC4geC5ieC4pwor4Lij4LmJ4Lit4Lii4LiK4Lix4LmI4LiHCivguKPguYnguK3guKLguJfguLHguYnguIfguKPguYnguK3guKIKK+C4o+C5ieC4reC4ouC5geC4m+C4lAor4Lij4Lit4Lii4Lij4LmJ4Liy4LinCivguKPguYnguK3guKLguKXguLTguYnguJkKK+C4o+C5ieC4reC4ouC4peC4tOC5ieC4meC4geC4sOC4peC4suC4p+C4mQor4Lij4LmJ4Lit4Lii4Liq4Li14Lij4LmJ4Lit4Lii4Lit4Lii4LmI4Liy4LiHCivguKPguYjguK3guKLguKvguKPguK0KK+C4o+C5ieC4reC4ouC4q+C4p+C4suC4ogor4Lij4LmJ4Lit4Lii4Lir4Lin4Li1CivguKPguYnguK3guKLguYDguK3guYfguJQKK+C4o+C5ieC4reC4ouC5gOC4reC5h+C4lOC5gOC4iOC5h+C4lOC4q+C4seC4p+C5gOC4oeC4t+C4reC4hwor4Lij4LmI4Lit4LmB4Lij4LmICivguKPguLAKK+C4o+C4sOC4geC4sAor4Lij4Liw4LiB4LiyCivguKPguLDguIHguLMKK+C4o+C4sOC4geC4s+C4meC4sgor4Lij4Liw4LiB4Liz4Lib4LmI4LiyCivguKPguLDguYDguIHguLDguKPguLDguIHguLAKK+C4o+C4sOC4hOC4mQor4Lij4Liw4LiE4Liy4LiHCivguKPguLDguITguLLguKIKK+C4o+C4sOC5gOC4hOC5h+C4lOC4o+C4sOC4hOC4suC4ogor4Lij4Liw4LmB4LiE4LiwCivguKPguLDguYHguITguLDguKPguLDguITguLLguKIKK+C4o+C4sOC4huC4seC4hwor4Lij4Liw4LiH4LihCivguKPguLDguIfguKHguYTguJ7guKMKK+C4o+C4sOC4h+C4seC4mgor4Lij4Liw4LiH4Lix4Lia4Lie4Li04LipCivguKPguLDguIfguLXguYgKK+C4o+C4sOC5geC4h+C5iQor4Lij4Liw4LmC4LiH4LiB4Lir4Li04LiZCivguKPguLDguIrguKfguKIKK+C4o+C4sOC4lOC4oQor4Lij4Liw4LiU4LiwCivguKPguLDguJTguLHguJoKK+C4o+C4sOC4lOC4seC4muC4l+C4sOC5gOC4pQor4Lij4Liw4LiU4Lix4Lia4LiX4Liw4LmA4Lil4Lib4Liy4LiZ4LiB4Lil4Liy4LiHCivguKPguLDguJTguLIKK+C4o+C4sOC4lOC5iOC4suC4pwor4Lij4Liw4LiU4Li5CivguKPguLDguJTguLnguILguLLguKcKK+C4o+C4sOC5gOC4lOC5iOC4mQor4Lij4Liw4LmA4LiU4Li14Lii4LiHCivguKPguLDguYHguJQKK+C4o+C4sOC4leC4uQor4Lij4Liw4LiX4LiBCivguKPguLDguJfguJQKK+C4o+C4sOC4l+C4oQor4Lij4Liw4LiX4Lin4LiiCivguKPguLDguJfguK3guJQKK+C4o+C4sOC4l+C4sgor4Lij4Liw4LiX4Li24LiBCivguKPguLDguJfguLbguIcKK+C4o+C4sOC5geC4l+C4sAor4Lij4Liw4LiZ4Lix4LihCivguKPguLDguJnguLLguJQKK+C4o+C4sOC4meC4suC4lOC5geC4geC5ieC4pwor4Lij4Liw4LiZ4Liy4LiU4LiX4Li44LmJ4LihCivguKPguLDguJnguLLguJTguYDguK3guIEKK+C4o+C4sOC4meC4suC4mgor4Lij4Liw4LiZ4Liy4Lia4LmA4Lit4Li14Lii4LiHCivguKPguLDguJnguLLguKEKK+C4o+C4sOC4meC4suC4pwor4Lij4Liw4LmA4LiZ4LiZCivguKPguLDguYDguJnguKPguLDguJnguLLguJQKK+C4o+C4sOC5gOC4meC4teC4ouC4lAor4Lij4Liw4LmB4LiZ4LiHCivguKPguLDguYHguJnguLAKK+C4o+C4sOC4muC4mgor4Lij4Liw4Lia4Lia4Liq4Li44Lij4Li04Lii4LiwCivguKPguLDguJrguKEKK+C4o+C4sOC4muC4reC4mgor4Lij4Liw4Lia4Lix4LiUCivguKPguLDguJrguLHguJoKK+C4o+C4sOC4muC4suC4jQor4Lij4Liw4Lia4Liy4LiUCivguKPguLDguJrguLLguJnguLUKK+C4o+C4sOC4muC4suC4meC4teC5iQor4Lij4Liw4Lia4Liy4LiiCivguKPguLDguJrguLLguKLguKrguLUKK+C4o+C4sOC4muC4swor4Lij4Liw4Lia4Li0CivguKPguLDguJrguLTguKUKK+C4o+C4sOC4muC4tOC4peC5gOC4oeC4t+C4reC4hwor4Lij4Liw4Lia4Li34LitCivguKPguLDguJrguLgKK+C4o+C4sOC5gOC4muC4hwor4Lij4Liw4LmA4Lia4LmH4LiHCivguKPguLDguYDguJrguLTguJQKK+C4o+C4sOC5gOC4muC4tOC4lOC4guC4p+C4lAor4Lij4Liw4LmA4Lia4Li04LiU4LiX4Liz4Lil4Liy4LiiCivguKPguLDguYDguJrguLTguJTguJnguYnguLPguJXguLIKK+C4o+C4sOC5gOC4muC4tOC4lOC4m+C4o+C4oeC4suC4k+C4uQor4Lij4Liw4LmA4Lia4Li04LiU4LmA4Lie4Lil4Li04LiHCivguKPguLDguYDguJrguLTguJTguKHguLfguK0KK+C4o+C4sOC5gOC4muC4tOC4lOC5gOC4p+C4peC4sgor4Lij4Liw4LmA4Lia4Li04LiU4LmE4Liu4LmC4LiU4Lij4LmA4LiI4LiZCivguKPguLDguYDguJrguLXguKLguIcKK+C4o+C4sOC5gOC4muC4teC4ouC4mQor4Lij4Liw4LmA4Lia4Li14Lii4LiaCivguKPguLDguYDguJrguLXguKLguJrguIHguLLguKMKK+C4o+C4sOC5gOC4muC4teC4ouC4muC4p+C4suC4o+C4sAor4Lij4Liw4LmB4Lia4LiaCivguKPguLDguYPguJoKK+C4o+C4sOC4n+C5ieC4sgor4Lij4Liw4Lih4Lix4LiU4Lij4Liw4Lin4Lix4LiHCivguKPguLDguKHguLIKK+C4o+C4sOC4oeC4suC4lAor4Lij4Liw4LmA4Lih4Li14Lii4LijCivguKPguLDguKLguYjguK0KK+C4o+C4sOC4ouC5iOC4reC4oQor4Lij4Liw4Lii4LiwCivguKPguLDguKLguLHguIcKK+C4o+C4sOC4ouC4seC5ieC4hwor4Lij4Liw4Lii4Lix4LiUCivguKPguLDguKLguLHguJoKK+C4o+C4sOC4ouC5ieC4sgor4Lij4Liw4Lii4Liy4LiZCivguKPguLDguKLguLLguJoKK+C4o+C4sOC4ouC4swor4Lij4Liw4Lii4Liz4LiV4Liz4Lia4Lit4LiZCivguKPguLDguKLguLTguJrguKPguLDguKLguLHguJoKK+C4o+C4sOC5guC4ouC4hwor4Lij4Liw4LmC4Lii4LiH4Lij4Liw4Lii4Liy4LiHCivguKPguLDguKPguKfguKIKK+C4o+C4sOC4o+C4reC4hwor4Lij4Liw4Lij4LmI4Lit4LiZCivguKPguLDguKPguLHguKcKK+C4o+C4sOC4o+C4suC4mQor4Lij4Liw4Lij4LmI4Liy4LiiCivguKPguLDguKPguLLguKcKK+C4o+C4sOC4o+C4tOC4gQor4Lij4Liw4Lij4Li14LmICivguKPguLDguKPguLbguIcKK+C4o+C4sOC4o+C4t+C5iOC4mQor4Lij4Liw4Lij4Li34LmJ4LiZCivguKPguLDguYDguKMKK+C4o+C4sOC5gOC4o+C5iAor4Lij4Liw4LmA4Lij4LmJ4LiHCivguKPguLDguYDguKPguYfguKcKK+C4o+C4sOC5gOC4o+C4tOC4hwor4Lij4Liw4LmA4Lij4Li14Lii4LiHCivguKPguLDguYDguKPguLXguKLguKEKK+C4o+C4sOC5gOC4o+C4t+C5iOC4reC4ogor4Lij4Liw4LmB4Lij4LmICivguKPguLDguYHguKPguIcKK+C4o+C4sOC4peC4hwor4Lij4Liw4Lil4Lin4LiHCivguKPguLDguKXguK3guIEKK+C4o+C4sOC4peC4reC4hwor4Lij4Liw4Lil4Lix4LiUCivguKPguLDguKXguLHguJTguYTguJQKK+C4o+C4sOC4peC4tuC4gQor4Lij4Liw4Lil4Li44LiBCivguKPguLDguKXguLjguIcKK+C4o+C4sOC5gOC4peC4tOC4hwor4Lij4Liw4LmA4Lil4Li14Lii4LiUCivguKPguLDguKfguLHguIcKK+C4o+C4sOC4p+C4seC4h+C5hOC4nuC4owor4Lij4Liw4Lin4Lix4LiH4Lin4Lix4LiZCivguKPguLDguKfguLLguIcKK+C4o+C4sOC4p+C4suC4lOC4o+C4sOC5hOC4pwor4Lij4Liw4Lin4Liy4LihCivguKPguLDguKfguLLguKIKK+C4o+C4sOC4p+C4tOC4hwor4Lij4Liw4LmB4Lin4LiHCivguKPguLDguYHguKfguJTguKPguLDguKfguLHguIcKK+C4o+C4sOC5hOC4pwor4Lij4Liw4Liq4Liw4LmA4LiB4LmH4LiUCivguKPguLDguKrguLLguKIKK+C4o+C4sOC4quC5iOC4s+C4o+C4sOC4quC4suC4ogor4Lij4Liw4Liq4Li1CivguKPguLDguYDguKrguLTguJTguKPguLDguKrguLHguIcKK+C4o+C4sOC4q+C4geC4o+C4sOC5gOC4q+C4tOC4mQor4Lij4Liw4Lir4LiHCivguKPguLDguKvguKfguKIKK+C4o+C4sOC4q+C4p+C5iOC4suC4hwor4Lij4Liw4Lir4Lit4LiH4Lij4Liw4LmB4Lir4LiHCivguKPguLDguKvguK3guJoKK+C4o+C4sOC4q+C4seC4lAor4Lij4Liw4Lir4Liy4LiiCivguKPguLDguKvguLjguKIKK+C4o+C4sOC5gOC4q+C5h+C4iAor4Lij4Liw4LmA4Lir4LiiCivguKPguLDguYDguKvguKPguLDguKvguJkKK+C4o+C4sOC5gOC4q+C4q+C4mQor4Lij4Liw4LmA4Lir4Lir4Lix4LiZCivguKPguLDguYDguKvguLTguJQKK+C4o+C4sOC5gOC4q+C4tOC4meC4o+C4sOC4q+C4gQor4Lij4Liw4LmB4Lir4LiBCivguKPguLDguYHguKvguIcKK+C4o+C4sOC5guC4q+C4ogor4Lij4Liw4Lit4Lih4Lij4Liw4Lit4LiyCivguKPguLDguK3guLIKK+C4o+C4sOC4reC4tOC4lOC4o+C4sOC4reC4sgor4Lij4Liw4Lit4Li4CivguKPguLHguIEKK+C4o+C4seC4geC4guC5jAor4Lij4Lix4LiB4LiC4Liq4LiwCivguKPguLHguIHguILguLIKK+C4o+C4seC4geC4guC4tOC4lQor4Lij4Lix4LiB4LiU4LibCivguKPguLHguIHguJTguLAKK+C4o+C4seC4geC4lOC4teC4q+C4suC4oeC4iOC4seC5iOC4pyDguKPguLHguIHguIrguLHguYjguKfguKvguLLguKHguYDguKrguLIKK+C4o+C4seC4geC4leC4sAor4Lij4Lix4LiB4Lia4Li14LmJCivguKPguLHguIHguJ7guLXguYjguYDguKrguLXguKLguJTguLLguKLguJnguYnguK3guIcKK+C4o+C4seC4geC4ouC4oQor4Lij4Lix4LiB4Lii4Liy4Lin4LmD4Lir4LmJ4Lia4Lix4LmI4LiZIOC4o+C4seC4geC4quC4seC5ieC4meC5g+C4q+C5ieC4leC5iOC4rQor4Lij4Lix4LiB4Lij4LmJ4Lit4LiiCivguKPguLHguIHguYDguKPguYgKK+C4o+C4seC4geC5geC4o+C5iQor4Lij4Lix4LiB4Lip4LmMCivguKPguLHguIHguKnguLIKK+C4o+C4seC4geC4qeC4suC4geC4suC4owor4Lij4Lix4LiB4Lip4Liy4LiB4Liy4Lij4LiT4LmMCivguKPguLHguIHguKvguKHguLkKK+C4o+C4seC4hwor4Lij4Lix4LmJ4LiHCivguKPguLHguIfguIHguLIKK+C4o+C4seC4h+C5gOC4geC4teC4ouC4iAor4Lij4Lix4LiH4LmB4LiBCivguKPguLHguIfguYTguILguYgKK+C4o+C4seC4h+C4hOC5jAor4Lij4Lix4LiH4LiE4Lin4Liy4LiZCivguKPguLHguIfguYHguIQKK+C4o+C4seC4h+C4lOC4uOC4oQor4Lij4Lix4LiH4LmB4LiV4LiZCivguKPguLHguIfguJnguIEKK+C4o+C4seC4h+C4meC4suC4mQor4Lij4Lix4LiH4Lia4Lin4LiaCivguKPguLHguIfguJzguLbguYnguIcKK+C4o+C4seC4h+C5gOC4nuC4peC4tOC4hwor4Lij4Lix4LiH4Lih4LiUCivguKPguLHguIfguKPguK3guIcKK+C4o+C4seC4h+C4o+C4seC4geC4qeC5jAor4Lij4Lix4LiH4LmA4Lij4LiCCivguKPguLHguIfguYHguKPguIEKK+C4o+C4seC4h+C4p+C4seC4lAor4Lij4Lix4LiH4Liq4Lij4Lij4LiE4LmMCivguKPguLHguIfguKrguKPguLHguIcKK+C4o+C4seC4h+C4quC4pOC4qeC4j+C5jAor4Lij4Lix4LiH4Liq4Li0CivguKPguLHguIfguKrguLTguKHguLHguJnguJXguLjguYwKK+C4o+C4seC4h+C4quC4tOC4oeC4sgor4Lij4Lix4LiH4Liq4Li1CivguKPguLHguIfguKrguLXguITguKfguLLguKHguKPguYnguK3guJkKK+C4o+C4seC4h+C4quC4teC4hOC4reC4quC4oeC4tOC4gQor4Lij4Lix4LiH4Liq4Li14LmB4Lie4LiX4Lii4LmMCivguKPguLHguIfguKrguLXguKfguLTguJfguKLguLIKK+C4o+C4seC4h+C4quC4teC5gOC4q+C4meC4t+C4reC4oeC5iOC4p+C4hwor4Lij4Lix4LiH4Lir4Lii4Liy4LinCivguKPguLHguIjguInguLIKK+C4o+C4seC4igor4Lij4Lix4LiKLQor4Lij4Lix4LiK4LiB4LiwCivguKPguLHguIrguIHguLLguKUKK+C4o+C4seC4iuC4iuC4uAor4Lij4Lix4LiK4LiK4Li54Lib4LiB4Liy4LijCivguKPguLHguIrguI7guLLguKDguLTguYDguKnguIEKK+C4o+C4seC4iuC4lC0KK+C4o+C4seC4iuC4lOC4suC4oOC4tOC5gOC4qeC4gQor4Lij4Lix4LiK4LiVLQor4Lij4Lix4LiK4LiX4Liy4Lii4Liy4LiXCivguKPguLHguIrguJnguLAKK+C4o+C4seC4iuC4meC4tQor4Lij4Lix4LiK4LiZ4Li14LiB4LijCivguKPguLHguI3guIjguKfguJkKK+C4o+C4seC4j+C4kOC4suC4oOC4tOC4m+C4suC4peC5guC4meC4muC4suC4ogor4Lij4Lix4LiQCivguKPguLHguJAtCivguKPguLHguJDguJfguLnguJUKK+C4o+C4seC4kOC4mOC4o+C4o+C4oeC4meC4ueC4jQor4Lij4Lix4LiQ4Lia4Liy4LilCivguKPguLHguJDguJrguLjguKPguLjguKkKK+C4o+C4seC4kOC4m+C4o+C4sOC4qOC4suC4quC4meC5jAor4Lij4Lix4LiQ4Lib4Lij4Liw4Lio4Liy4Liq4LiZ4LiZ4Lix4LiiCivguKPguLHguJDguJvguKPguLDguKjguLLguKrguJnguKjguLLguKrguJXguKPguYwKK+C4o+C4seC4kOC4m+C4o+C4sOC4qOC4suC4quC5guC4meC4muC4suC4ogor4Lij4Lix4LiQ4Lib4Lij4Liw4Lir4Liy4LijCivguKPguLHguJDguKHguJnguJXguKPguLUKK+C4o+C4seC4kOC4p+C4tOC4quC4suC4q+C4geC4tOC4iAor4Lij4Lix4LiQ4Lio4Liy4Liq4LiV4Lij4LmMCivguKPguLHguJDguKrguKDguLIKK+C4o+C4seC4lAor4Lij4Lix4LiU4LiB4Li44LihCivguKPguLHguJTguYDguIHguKXguYnguLIKK+C4o+C4seC4lOC5gOC4guC5h+C4oeC4guC4seC4lAor4Lij4Lix4LiU4LiK4LmJ4Lit4LiHCivguKPguLHguJTguJXguLHguKcKK+C4o+C4seC4lOC4l+C4tuC4mgor4Lij4Lix4LiU4Lib4Lij4Liw4LiE4LiUCivguKPguLHguJTguJvguKPguLDguITguJkKK+C4o+C4seC4lOC4nuC4seC4quC4leC4o+C5jAor4Lij4Lix4LiU4Lij4Li24LiHCivguKPguLHguJTguKPguLnguJsKK+C4o+C4seC4lQor4Lij4Lix4LiVLQor4Lij4Lix4LiV4LiB4Lix4Lih4Lie4LilCivguKPguLHguJXguITguJkKK+C4o+C4seC4leC4iOC4seC4meC4l+C4meC5jAor4Lij4Lix4LiV4LiV4Lix4LiN4LiN4Li5CivguKPguLHguJXguJXguLQKK+C4o+C4seC4leC4leC4tOC4geC4suC4pQor4Lij4Lix4LiV4LiZLQor4Lij4Lix4LiV4LiZ4LmMCivguKPguLHguJXguJnguYLguIHguKrguLTguJnguJfguKPguYwKK+C4o+C4seC4leC4meC4leC4o+C4seC4ogor4Lij4Lix4LiV4LiZ4Lia4Lix4Lil4Lil4Lix4LiH4LiB4LmMCivguKPguLHguJXguJnguKrguLTguIfguKvguLLguKrguJnguYwKK+C4o+C4seC4leC4meC4sAor4Lij4Lix4LiV4LiZ4LiyCivguKPguLHguJXguJnguLLguIHguKMKK+C4o+C4seC4leC4meC4suC4p+C4peC4tQor4Lij4Lix4LiV4Lih4LiT4Li1CivguKPguLHguJXguKHguLIKK+C4o+C4seC4lgor4Lij4Lix4LiW4Lii4LiyCivguKPguLHguJfguYDguJfguK3guKPguYzguJ/guK3guKPguYzguYDguJTguLXguKLguKEKK+C4o+C4seC4mQor4Lij4Lix4LmJ4LiZCivguKPguLHguJnguIrguJnguKPguLHguJnguYHguIrguIcKK+C4o+C4seC4meC4l+C4lAor4Lij4Lix4LiZ4LiX4Lin4LiiCivguKPguLHguJnguJfguLMKK+C4o+C4seC4meC5geC4l+C4sAor4Lij4Lix4LiZ4LiY4LiwCivguKPguLHguJoKK+C4o+C4seC4muC4guC4p+C4seC4jQor4Lij4Lix4Lia4LmB4LiC4LiBCivguKPguLHguJrguITguLMKK+C4o+C4seC4muC4iOC5ieC4suC4hwor4Lij4Lix4Lia4LiX4LmJ4Lit4LiHCivguKPguLHguJrguJvguKPguLDguIHguLHguJkKK+C4o+C4seC4muC4m+C4o+C4sOC4l+C4suC4mQor4Lij4Lix4Lia4Lib4Liy4LiBCivguKPguLHguJrguJzguLTguJQKK+C4o+C4seC4muC4nOC4tOC4lOC4iuC4reC4mgor4Lij4Lix4Lia4Lih4Li34LitCivguKPguLHguJrguKPguK3guIcKK+C4o+C4seC4muC5gOC4o+C4t+C4reC4mQor4Lij4Lix4Lia4Liq4Lix4LmI4LiHCivguKPguLHguJrguKvguJnguYnguLIKK+C4o+C4seC4muC5hOC4q+C4p+C5iQor4Lij4Lix4Lih4LiBLQor4Lij4Lix4Lih4LiT4Li14LiiLQor4Lij4Lix4Lih4Lig4LiyCivguKPguLHguKHguKHguLXguYgKK+C4o+C4seC4oeC4ouC5jAor4Lij4Lix4LiiCivguKPguLHguKcKK+C4o+C4seC5iOC4pwor4Lij4Lix4LmJ4LinCivguKPguLHguYnguKfguYTguIHguYgKK+C4o+C4seC4qOC4oeC4tOC4oeC4seC4lQor4Lij4Lix4Lio4Lih4Li04Lih4Liy4LiZCivguKPguLHguKjguKHguLUKK+C4o+C4seC4qeC4juC4suC4geC4owor4Lij4Lix4LiqLQor4Lij4Lix4Liq4Liq4Lij4LiwCivguKPguLHguKrguKrguLAKK+C4o+C4sgor4Lij4LmI4LiyCivguKPguYnguLIKK+C4o+C4suC4gQor4Lij4Liy4LiB4LmB4LiB4LmJ4LinCivguKPguLLguIHguILguKfguLHguI0KK+C4o+C4suC4geC4kOC4suC4mQor4Lij4Liy4LiB4LiU4Li04LiZCivguKPguLLguIHguJ3guK3guKIKK+C4o+C4suC4geC4n+C4seC4mQor4Lij4Liy4LiB4Lio4Lix4Lie4LiX4LmMCivguKPguLLguIHguKnguKoKK+C4o+C4suC4geC5guC4qeC4qgor4Lij4Liy4LiB4Liq4Liy4LiUCivguKPguLLguIHguKrguLLguJTguJnguYnguK3guKIKK+C4o+C4suC4geC4quC4suC4lOC5g+C4q+C4jeC5iAor4Lij4Liy4LiB4Liq4Liy4Lih4Liq4Li04LiaCivguKPguLLguIHguYDguKvguIfguYnguLIKK+C4o+C4suC4guC5ieC4rQor4Lij4Liy4LiE4LiwCivguKPguLLguITguLIKK+C4o+C4suC4hOC4suC4leC4peC4suC4lAor4Lij4Liy4LiE4Li04LiZCivguKPguLLguITguLUKK+C4o+C4suC4hwor4Lij4LmI4Liy4LiHCivguKPguYnguLLguIcKK+C4o+C5iOC4suC4h+C4geC4suC4ogor4Lij4Liy4LiH4LiI4Li34LiUCivguKPguLLguIfguIrguLLguIcKK+C4o+C4suC4h+C4lOC4swor4Lij4Liy4LiH4LmB4LiU4LiHCivguKPguLLguIfguJnguLLguJkKK+C4o+C4suC4h+C4muC4o+C4o+C4l+C4seC4lAor4Lij4LmI4Liy4LiH4Lij4LmJ4Liy4LiZCivguKPguLLguIfguKfguLHguKUKK+C4o+C5iOC4suC4h+C5geC4qwor4Lij4Liy4LiKCivguKPguLLguIotCivguKPguLLguIrguIHguLLguKMKK+C4o+C4suC4iuC4geC4tOC4iOC4iOC4suC4meC4uOC5gOC4muC4geC4qeC4sgor4Lij4Liy4LiK4LiE4Lij4Li5CivguKPguLLguIrguI3guLUKK+C4o+C4suC4iuC4lOC4seC4lAor4Lij4Liy4LiK4LiX4Lix4LiT4LiR4LmMCivguKPguLLguIrguJfguLTguJnguJnguLLguKEKK+C4o+C4suC4iuC4l+C4ueC4lQor4Lij4Liy4LiK4LmC4LiX4Lij4Lir4LiwCivguKPguLLguIrguJjguKPguKPguKEKK+C4o+C4suC4iuC4mOC4suC4meC4tQor4Lij4Liy4LiK4LiZ4Li04LiB4Li44LilCivguKPguLLguIrguJnguLXguJXguLQKK+C4o+C4suC4iuC4muC4seC4k+C4keC4tOC4lQor4Lij4Liy4LiK4Lia4Liy4LiV4LijCivguKPguLLguIrguJrguLjguJXguKMKK+C4o+C4suC4iuC4muC4uOC4o+C4uOC4qQor4Lij4Liy4LiK4Lib4Liw4LmB4LiV4LiZCivguKPguLLguIrguJ7guKTguIHguKnguYwKK+C4o+C4suC4iuC4oOC4seC4jwor4Lij4Liy4LiK4Lih4Lix4LilCivguKPguLLguIrguKHguLLguJPguJ4KK+C4o+C4suC4iuC4oeC4suC4qQor4Lij4Liy4LiK4Lih4Liy4LiqCivguKPguLLguIrguKLguYwKK+C4o+C4suC4iuC4ouC4suC4mQor4Lij4Liy4LiK4LmC4Lii4LiECivguKPguLLguIrguYLguKLguIfguIHguLLguKMKK+C4o+C4suC4iuC4o+C4luC4oeC4suC5gOC4geC4ogor4Lij4Liy4LiK4Lin4LiH4Lio4LmMCivguKPguLLguIrguKfguKPguKHguKvguLLguKfguLTguKvguLLguKMKK+C4o+C4suC4iuC4p+C4o+C4p+C4tOC4q+C4suC4owor4Lij4Liy4LiK4Lin4LmC4Lij4LiH4LiB4Liy4LijCivguKPguLLguIrguKfguLHguJXguLQKK+C4o+C4suC4iuC4qOC4suC4quC4leC4o+C5jAor4Lij4Liy4LiK4Liq4LiB4Li44LilCivguKPguLLguIrguKrguLHguJnguJXguJXguLTguKfguIfguKjguYwKK+C4o+C4suC4iuC4quC4suC4quC4meC5jAor4Lij4Liy4LiK4Liq4Li14Lir4LmMCivguKPguLLguIrguKrguLXguKvguYzguJXguLHguKfguJzguLnguYkKK+C4o+C4suC4iuC4quC4teC4q+C5jOC4leC4seC4p+C5gOC4oeC4teC4ogor4Lij4Liy4LiK4Liq4Li14Lir4LmM4Liq4Lit4LiH4LiV4Lix4Lin4Lit4Lii4Li54LmI4LiW4LmJ4Liz4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZ4LmE4Lih4LmI4LmE4LiU4LmJCivguKPguLLguIrguKrguLnguKLguLAKK+C4o+C4suC4iuC4q+C4seC4leC4luC5gOC4peC4guC4sgor4Lij4Liy4LiK4Lit4LiH4LiE4Lij4Lix4LiB4Lip4LmMCivguKPguLLguIrguYLguK3guIfguIHguLLguKMKK+C4o+C4suC4iuC4sAor4Lij4Liy4LiK4Lix4LiZCivguKPguLLguIrguLHguJnguKLguYwKK+C4o+C4suC4iuC4seC4ogor4Lij4Liy4LiK4LiyCivguKPguLLguIrguLLguITguJPguLAKK+C4o+C4suC4iuC4suC5guC4iuC4hAor4Lij4Liy4LiK4Liy4LiY4Li04Lij4Liy4LiKCivguKPguLLguIrguLLguKDguLTguYDguKnguIEKK+C4o+C4suC4iuC4suC4ouC4leC4meC4sAor4Lij4Liy4LiK4Liy4Lik4LiB4Lip4LmMCivguKPguLLguIrguLLguKfguJTguLUKK+C4o+C4suC4iuC4suC4p+C4peC4tQor4Lij4Liy4LiK4Liy4Lio4Lix4Lie4LiX4LmMCivguKPguLLguIrguLQKK+C4o+C4suC4iuC4tOC4meC4tOC4geC4uOC4pQor4Lij4Liy4LiK4Li04LiZ4Li1CivguKPguLLguIrguLTguJnguLXguIHguLjguKUKK+C4o+C4suC4iuC4tOC4meC4teC4meC4suC4lgor4Lij4Liy4LiK4Li04LiZ4Li54Lib4LiW4Lix4Lih4Lig4LmMCivguKPguLLguIrguLUKK+C4o+C4suC4iuC4ueC4m+C4luC4seC4oeC4oOC5jAor4Lij4Liy4LiK4Li54Lib4LmC4Lig4LiECivguKPguLLguYDguIrguJkKK+C4o+C4suC5gOC4iuC4meC4l+C4o+C5jAor4Lij4Liy4LmA4LiK4LiZ4LiX4Lij4Lii4Liy4LiZCivguKPguLLguYLguIrguIfguIHguLLguKMKK+C4o+C4suC5guC4iuC4m+C4luC4seC4oeC4oOC5jAor4Lij4Liy4LmC4LiK4Lib4LmC4Lig4LiECivguKPguLLguYLguIrguKfguLLguJcKK+C4o+C4suC5hOC4iuC4qOC4p+C4o+C4o+C4ouC5jAor4Lij4Liy4LiNCivguKPguLLguI3guKPguK3guJkKK+C4o+C4suC4lAor4Lij4Liy4LiVCivguKPguLLguJXguKMKK+C4o+C4suC4leC4o+C4tQor4Lij4Liy4LiV4Lij4Li14Lib4Lij4Liw4LiU4Lix4Lia4LiU4Liy4LinCivguKPguLLguYLguJcKK+C4o+C4suC4mQor4Lij4LmI4Liy4LiZCivguKPguYnguLLguJkKK+C4o+C5ieC4suC4meC4oeC5ieC4sgor4Lij4Liy4LiaCivguKPguLLguJrguITguLLguJoKK+C4o+C4suC4muC5gOC4m+C5h+C4meC4q+C4meC5ieC4suC4geC4peC4reC4hwor4Lij4Liy4Lia4Lij4Li34LmI4LiZCivguKPguLLguJrguYDguKPguLXguKLguJoKK+C4o+C4suC4m+C4teC4gQor4Lij4Liy4Lie4LiT4LmMCivguKPguLLguJ7guJPguLLguKrguLnguKMKK+C4o+C4suC4oQor4Lij4Liy4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li04LmMCivguKPguLLguKHguKrguLnguKMKK+C4o+C4suC4oeC4seC4jQor4Lij4Liy4Lih4LiyCivguKPguLLguKIKK+C4o+C5iOC4suC4ogor4Lij4LmJ4Liy4LiiCivguKPguYnguLLguKLguIHguLLguIgKK+C4o+C4suC4ouC4geC4suC4owor4Lij4Liy4Lii4LiH4Liy4LiZCivguKPguLLguKLguIfguLLguJnguIHguLLguKPguJvguKPguLDguIrguLjguKEKK+C4o+C4suC4ouC4iOC5iOC4suC4ogor4Lij4Liy4Lii4LiX4Liy4LiHCivguKPguYjguLLguKLguYTguKHguYkKK+C4o+C5iOC4suC4ouC4o+C4seC4hwor4Lij4Liy4Lii4Lij4Lix4LiaCivguKPguYnguLLguKLguYHguKPguIcKK+C4o+C4suC4ouC4p+C4tOC4iuC4sgor4Lij4LmI4Liy4LmA4Lij4Li04LiHCivguKPguLLguYDguKPguLTguJQKK+C4o+C4suC5geC4o+C4oQor4Lij4Liy4LinCivguKPguYnguLLguKcKK+C4o+C4suC4p+C4geC4sAor4Lij4Liy4Lin4LiB4Lix4LiaCivguKPguLLguKfguILguYjguLLguKcKK+C4o+C5ieC4suC4p+C4ieC4suC4mQor4Lij4Liy4Lin4Lib4LmI4LiyCivguKPguYnguLLguKfguKPguLLguJkKK+C4o+C4suC4p+C4tQor4Lij4Liy4Lio4Li1CivguKPguLLguKnguI7guKMKK+C4o+C4suC4qeC4juC4o+C5jAor4Lij4Liy4Lip4LiV4Lij4Li1CivguKPguLLguKnguKPguLLguJXguKPguLTguJkKK+C4o+C4suC4qeC4o+C4suC4leC4o+C4tQor4Lij4Liy4Liq4Li1CivguKPguLLguKvguLgKK+C4o+C5iOC4suC4q+C4uOC5jAor4Lij4Liy4Lir4Li5CivguKPguLMKK+C4o+C5iOC4swor4Lij4Liz4LmA4LiC4LiZ4LiHCivguKPguLPguITguLLguI0KK+C4o+C4s+C5guC4hOC4oQor4Lij4Liz4LiH4Lix4LiaCivguKPguLPguIjguKfguJkKK+C4o+C4s+C4iuC4seC5iOC4p+C5guC4l+C4qeC4nuC4suC4geC4ouC5jAor4Lij4Liz4LiL4Li44LiiCivguKPguLPguYDguJfguYnguLIKK+C4o+C4s+C4muC4suC4jQor4Lij4LmI4Liz4LmE4LibCivguKPguLPguJzguLUKK+C4o+C4s+C4nuC4seC4lAor4Lij4Liz4Lie4Lix4LiU4LiK4LiyCivguKPguLPguJ7guLHguJkKK+C4o+C4s+C4nuC4suC4ogor4Lij4Liz4Lie4Li24LiHCivguKPguLPguYDguJ7guKIKK+C4o+C4s+C5geC4nuC4mQor4Lij4Liz4LmE4LieCivguKPguLPguKHguLDguYHguIIKK+C4o+C4s+C4oeC4sOC4meC4sgor4Lij4Liz4Lih4Liw4LiZ4Liy4LiUCivguKPguLPguKHguLDguKPguYjguK0KK+C4o+C4s+C5hOC4oeC5iOC4lOC4teC5guC4l+C4qeC4m+C4teC5iOC5guC4l+C4qeC4geC4peC4reC4hwor4Lij4Liz4Lii4Lin4LiZCivguKPguLPguKLguYnguK3guKIKK+C4o+C4s+C5geC4ouC5iQor4Lij4Liz4Lij4LiH4LiE4LmMCivguKPguYjguLPguKPguKfguKIKK+C4o+C4s+C4o+C4suC4jQor4Lij4Liz4Lij4LizCivguKPguYjguLPguKPguLXguYnguKPguYjguLPguYTguKMKK+C4o+C4s+C5gOC4owor4Lij4LmI4Liz4LmA4Lij4Li14Lii4LiZCivguKPguLPguYTguKMKK+C4o+C5iOC4s+C5hOC4owor4Lij4Liz4Lil4Li24LiBCivguKPguLPguKfguIcKK+C4o+C4s+C4q+C4seC4lAor4Lij4Liz4Lir4Lix4LiqCivguKPguYjguLPguYTguKvguYkKK+C4o+C4tAor4Lij4Li04LiBCivguKPguLTguIHguYYKK+C4o+C4tOC4lOC4quC4teC4lOC4p+C4hwor4Lij4Li04LiZCivguKPguLTguJnguYYKK+C4o+C4tOC5ieC4mQor4Lij4Li04LiaCivguKPguLTguJrguJfguKPguLHguJ7guKLguYzguKrguLTguJkKK+C4o+C4tOC4muC4muC4tOC5ieC4mQor4Lij4Li04Lia4Lij4Liy4LiK4Lia4Liy4LiV4LijCivguKPguLTguJrguKPguLXguYgKK+C4o+C4tOC4muC4q+C4o+C4teC5iAor4Lij4Li04Lib4Lit4LiHCivguKPguLTguJvguLgKK+C4o+C4tOC4m+C4uQor4Lij4Li04LihCivguKPguLTguKHguJ3guLXguJvguLLguIEKK+C4o+C4tOC5gOC4o+C4tOC5iOC4oQor4Lij4Li04LmJ4LinCivguKPguLTguKnguKLguLIKK+C4o+C4tOC4reC5iOC4suC4mQor4Lij4Li1CivguKPguLXguYgKK+C4o+C4teC5iQor4Lij4Li14LmGIOC4guC4p+C4suC4h+C5hgor4Lij4Li14LiUCivguKPguLXguJTguJnguLLguJfguLLguYDguJnguYnguJkKK+C4o+C4teC4lOC4meC4suC4l+C4suC5gOC4o+C5ieC4mQor4Lij4Li14LiU4Lil4Li54LiBCivguKPguLXguJTguLHguIHguIrguLHguJkKK+C4o+C4teC4lQor4Lij4Li14LmA4LiZ4Li14Lii4LihCivguKPguLXguJoKK+C4o+C4teC4muC4o+C4uOC4lAor4Lij4Li14LmJ4Lie4LilCivguKPguLXguKEKK+C4o+C4teC4o+C4rQor4Lij4Li14LmGIOC4o+C4reC5hgor4Lij4Li14LmJ4Lij4Li04LiBCivguKPguLbguIHguJXguYwKK+C4o+C4tuC4hwor4Lij4Li24LmJ4LiHCivguKPguLfguYjguJkKK+C4o+C4t+C5ieC4mQor4Lij4Li34LmI4LiZ4Lij4Lih4Lii4LmMCivguKPguLfguYjguJnguYDguKPguLTguIcKK+C4o+C4t+C5ieC4rQor4Lij4Li34LmJ4Lit4LmB4LiV4LmI4Lir4Lil4Lix4LiH4LiE4Liy4LmA4LiC4LiyIOC4q+C4peC4seC4h+C4hOC4suC5gOC4o+C4suC5hOC4oeC5iOC4o+C4t+C5ieC4rQor4Lij4Li34LmJ4Lit4Lif4Li34LmJ4LiZCivguKPguLgKK+C4o+C4uOC4gQor4Lij4Li44LiB4LiCLQor4Lij4Li44LiB4LiC4LmMCivguKPguLjguIHguILguIHguLAKK+C4o+C4uOC4geC4guC4iuC4suC4leC4tAor4Lij4Li44LiB4LiC4Lih4Li54LilCivguKPguLjguIHguILguKHguLnguKXguLTguIHguJjguLjguJTguIfguITguYwKK+C4o+C4uOC4geC4guC4sgor4Lij4Li44LiB4LiG4Liy4LiVCivguKPguLjguIHguKPguYnguJkKK+C4o+C4uOC4geC4o+C4suC4mQor4Lij4Li44LiB4Lij4Li44LiiCivguKPguLjguIHguKnguLAKK+C4o+C4uOC4guC5ieC4suC4pwor4Lij4Li44LmI4LiHCivguKPguLjguYnguIcKK+C4o+C4uOC5iOC4h+C5gOC4iuC5ieC4sgor4Lij4Li44LmJ4LiH4Lie4Lij4Liy4LiiCivguKPguLjguYnguIfguKPguYjguKfguIcKK+C4o+C4uOC4h+C4o+C4seC4hwor4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHCivguKPguLjguYjguIfguYLguKPguIjguJnguYwKK+C4o+C4uOC4iAor4Lij4Li44LiI4LiZCivguKPguLjguIjguLIKK+C4o+C4uOC4iOC4tAor4Lij4Li44LiI4Li04Lij4LiwCivguKPguLjguIjguLTguKPguLIKK+C4o+C4uOC4iOC4tOC5gOC4o+C4ggor4Lij4Li44LiI4Li1CivguKPguLjguIrguLIKK+C4o+C4uOC4lAor4Lij4Li44LiU4Lir4LiZ4LmJ4LiyCivguKPguLjguJUKK+C4o+C4uOC4l+C4mOC5jAor4Lij4Li44LiX4LijCivguKPguLjguJjguLTguKMKK+C4o+C4uOC5gOC4mOC4teC4ouC4owor4Lij4Li44LiZCivguKPguLjguYjguJkKK+C4o+C4uOC5iOC4meC4geC4o+C4sOC4l+C4hwor4Lij4Li44LmI4LiZ4LiV4Liw4LiB4LitCivguKPguLjguYjguJnguKPguLLguKfguITguKPguLLguKfguYDguJTguLXguKLguKfguIHguLHguJkKK+C4o+C4uOC4meC5geC4o+C4hwor4Lij4Li44Lia4Lij4Li54LmICivguKPguLjguJrguLLguIHguLLguKMKK+C4o+C4uOC4oQor4Lij4Li44LmI4LihCivguKPguLjguKHguYTguILguYkKK+C4o+C4uOC4oeC5hOC4nwor4Lij4Li44LmI4Lih4Lij4Lin4LiiCivguKPguLjguYjguKHguKPguYjguLLguKEKK+C4o+C4uOC4ogor4Lij4Li44LmI4LiiCivguKPguLjguYjguKLguKPguYjguLLguKIKK+C4o+C4uOC4o+C4uAor4Lij4Li44Lip4LiP4LmMCivguKPguLjguKvguLAKK+C4o+C4uOC4q+C4suC4jQor4Lij4Li5CivguKPguLnguYgKK+C4o+C4ueC5iQor4Lij4Li54LmJ4LmB4LiB4LinCivguKPguLnguYnguITguKfguLLguKEKK+C4o+C4ueC5ieC4hOC4tOC4lAor4Lij4Li54LmJ4LiE4Li04LiU4Lij4Li54LmJ4Lit4LmI4Liy4LiZCivguKPguLnguYnguITguLjguJMKK+C4o+C4ueC5ieC4h+C4ueC5hiDguJvguKXguLLguYYKK+C4o+C4ueC5ieC4iOC4seC4gQor4Lij4Li54LmJ4LiI4Lix4LiB4LmA4LiB4LmH4Lia4Lij4Li54LmJ4LiI4Lix4LiB4LmA4LiC4Li14LmI4LiiCivguKPguLnguYnguIjguLHguIHguYDguIHguYfguJrguKPguLnguYnguIjguLHguIHguIfguLMKK+C4o+C4ueC5ieC4iOC4seC4geC4oeC4seC4geC4hOC4uOC5ieC4mQor4Lij4Li54LmJ4LiI4Lix4LiB4Lih4Lix4LiB4LiI4Li14LmICivguKPguLnguIjguLUKK+C4o+C4ueC5ieC4ieC4peC4suC4lAor4Lij4Li54LmJ4LmA4LiK4LmI4LiZ4LmA4Lir4LmH4LiZ4LiK4Liy4LiV4Li0CivguKPguLnguJQKK+C4o+C4ueC5ieC4leC4seC4pwor4Lij4Li54LmJ4LiV4Li34LmJ4LiZ4Lil4Li24LiB4Lir4LiZ4Liy4Lia4Liy4LiHCivguKPguLnguYnguJfguLHguJkKK+C4o+C4ueC5ieC4l+C4tQor4Lij4Li54LiX4Li14LmA4LiZ4Li14Lii4LihCivguKPguLnguYnguYDguJfguYjguLIKK+C4o+C4ueC5ieC5gOC4l+C5iOC4suC5hOC4oeC5iOC4luC4tuC4h+C4geC4suC4o+C4k+C5jAor4Lij4Li54LmJ4LiZ4LmJ4Lit4Lii4Lie4Lil4Lit4Lii4Lij4Liz4LiE4Liy4LiNCivguKPguLnguJrguLTguYDguJTguLXguKLguKEKK+C4o+C4ueC4mwor4Lij4Li54LibLQor4Lij4Li54Lib4LiK4Li1CivguKPguLnguJvguJjguKPguKPguKEKK+C4o+C4ueC4m+C4nuC4ouC4seC4jeC4iuC4meC4sAor4Lij4Li54Lib4Lie4Lij4Lij4LiTCivguKPguLnguJvguKDguLLguJ4KK+C4o+C4ueC4m+C4o+C5iOC4suC4hwor4Lij4Li54Lib4Lil4Lit4LiBCivguKPguLnguJvguKrguKHguJrguLHguJXguLQKK+C4o+C4ueC4m+C4quC4o+C4sAor4Lij4Li54Lib4Li04Lii4LiwCivguKPguLnguJvguLUKK+C4o+C4ueC5ieC4oeC4peC4seC4gQor4Lij4Li54LmJ4Lih4Lil4Liy4LiBCivguKPguLnguYnguKHguLLguIEKK+C4o+C4ueC5ieC4oeC4suC4geC4ouC4suC4geC4meC4suC4mQor4Lij4Li54LmJ4Lii4Liy4Lin4Lij4Li54LmJ4Liq4Lix4LmJ4LiZCivguKPguLnguYDguKXguYfguJXguJXguYwKK+C4o+C4ueC5ieC5hOC4p+C5ieC5g+C4iuC5iOC4p+C5iOC4siDguYPguKrguYjguJrguYjguLLguYHguJrguIHguKvguLLguKEKK+C4o+C4ueC5ieC4quC4tuC4gQor4Lij4Li54LmJ4LmE4Liq4LmJCivguKPguLnguYnguKvguKXguJrguYDguJvguYfguJnguJvguLXguIEg4Lij4Li54LmJ4Lir4Lil4Li14LiB4LmA4Lib4LmH4LiZ4Lir4Liy4LiHCivguKPguLnguKvguLAKK+C4o+C4ueC5ieC4q+C4suC4jeC4o+C4ueC5ieC4guC4peC4suC4lAor4Lij4Li54LmJ4LmA4Lir4LmH4LiZCivguKPguLnguYnguYDguKvguYfguJnguYDguJvguYfguJnguYPguIgKK+C4o+C4ueC5ieC4reC4ouC5iOC4suC4h+C5gOC4m+C5h+C4lAor4Lij4Li54LmJ4Lit4Lii4Li54LmICivguKPguLnguYnguYDguK3guIfguYDguJvguYfguJnguYDguK3guIcKK+C5gOC4o+C5iAor4LmA4Lij4LiCCivguYDguKPguILguLIKK+C5gOC4o+C4guC4suC4hOC4k+C4tOC4lQor4LmA4Lij4LiC4Liy4LiE4LiT4Li04LiV4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMCivguYDguKPguILguLLguITguJPguLTguJXguKfguLTguYDguITguKPguLLguLDguKvguYwKK+C5gOC4o+C5h+C4hwor4LmA4Lij4LmI4LiHCivguYDguKPguYnguIcKK+C5gOC4o+C5iOC4h+C4oeC4t+C4rQor4LmA4Lij4LmI4LiH4Lij4Lix4LiUCivguYDguKPguYjguIfguKPguYjguLLguKIKK+C5gOC4o+C5iOC4h+C4o+C4teC4mgor4LmA4Lij4LmI4LiH4LmA4Lij4LmJ4LiyCivguYDguKPguJPguLgKK+C5gOC4o+C4k+C4uOC4gQor4LmA4Lij4LiT4Li5CivguYDguKPguJTguK3guJkKK+C5gOC4o+C4lOC4suC4o+C5jAor4LmA4Lij4LmA4LiU4Li14Lii4LihCivguYDguKPguYnguJkKK+C5gOC4o+C5ieC4meC4peC4seC4mgor4LmA4Lij4Lij4Lin4LiZCivguYDguKPguYjguKPguYjguK3guJkKK+C5gOC4o+C5iOC4o+C5iOC4suC4ogor4LmA4Lij4LmE4LijCivguYDguKPguYfguKcKK+C5gOC4o+C5iOC4pwor4LmA4Lij4Lin4LiU4Li1CivguYDguKPguK0KK+C5gOC4o+C5iOC4rQor4LmA4Lij4LmI4Lit4Lij4LmI4LiyCivguYDguKPguLIKK+C5gOC4o+C5iOC4sgor4LmA4Lij4LmI4Liy4LmGCivguYDguKPguYnguLIKK+C5gOC4o+C5iOC4suC4o+C5ieC4reC4mQor4LmA4Lij4Liy4LiwCivguYDguKPguLLguLDguKPguLLguKIKK+C5gOC4o+C4suC4sOC4o+C5ieC4suC4ogor4LmA4Lij4Li04LiHCivguYDguKPguLTguJQKK+C5gOC4o+C4tOC4oQor4LmA4Lij4Li04LmI4LihCivguYDguKPguLTguYnguKEKK+C5gOC4o+C4tOC4qOC4o+C5ieC4suC4hwor4LmA4Lij4Li14LmI4LiiCivguYDguKPguLXguYnguKLguYYKK+C5gOC4o+C4teC4ouC4gQor4LmA4Lij4Li14Lii4LiB4LmA4LiZ4Li34LmJ4LitCivguYDguKPguLXguKLguIcKK+C5gOC4o+C4teC4ouC4h+C5hgor4LmA4Lij4Li14Lii4LiH4LiE4Lin4Liy4LihCivguYDguKPguLXguKLguIfguJ7guLTguKHguJ7guYwKK+C5gOC4o+C4teC4ouC4h+C4nuC4teC5iOC5gOC4o+C4teC4ouC4h+C4meC5ieC4reC4hwor4LmA4Lij4Li14Lii4LiH4Lij4Lix4LiZCivguYDguKPguLXguKLguIfguKPguLLguKIKK+C5gOC4o+C4teC4ouC4h+C4q+C4meC5ieC4suC4geC4o+C4sOC4lOC4suC4mQor4LmA4Lij4Li14Lii4LiH4Lir4Lih4Lit4LiZCivguYDguKPguLXguKLguJQKK+C5gOC4o+C4teC4ouC4mQor4LmA4Lij4Li14Lii4LiZ4Lib4LiP4Li04Lia4Lix4LiV4Li0CivguYDguKPguLXguKLguJnguJzguLnguIHguJXguYnguK3guIfguYDguKPguLXguKLguJnguYHguIHguYkKK+C5gOC4o+C4teC4ouC4mgor4LmA4Lij4Li14Lii4Lia4LmGCivguYDguKPguLXguKLguJrguKPguYnguK3guKIKK+C5gOC4o+C4teC4ouC4muC5gOC4o+C4teC4ouC4hwor4LmA4Lij4Li14Lii4Lia4Lin4Li44LiYCivguYDguKPguLXguKLguKEKK+C5gOC4o+C4teC5iOC4ouC4oQor4LmA4Lij4Li14LmI4Lii4Lij4Liy4LiUCivguYDguKPguLXguYjguKLguKPguLLguKIKK+C5gOC4o+C4teC5iOC4ouC5hOC4owor4LmA4Lij4Li14Lii4LinCivguYDguKPguLXguYjguKLguKcKK+C5gOC4o+C4teC5ieC4ouC4p+C4o+C4gQor4LmA4Lij4Li14LmI4Lii4Lin4LmB4Lij4LiHCivguYDguKPguLXguKLguKfguKvguJnguLLguKEKK+C5gOC4o+C4t+C4rQor4LmA4Lij4Li34LmI4LitCivguYDguKPguLfguYnguK0KK+C5gOC4o+C4t+C4reC4gQor4LmA4Lij4Li34Lit4LiB4Liq4Lin4LiZCivguYDguKPguLfguK3guILguJnguLLguJkKK+C5gOC4o+C4t+C4reC4guC4suC4lOC4q+C4suC4h+C5gOC4quC4t+C4rQor4LmA4Lij4Li34Lit4LiHCivguYDguKPguLfguYjguK3guIcKK+C5gOC4o+C4t+C5ieC4reC4hwor4LmA4Lij4Li34Lit4LiH4LiZ4Liy4LihCivguYDguKPguLfguK3guIfguKPguK3guIcKK+C5gOC4o+C4t+C5iOC4reC4h+C4o+C4suC4pwor4LmA4Lij4Li34Lit4LiH4LmE4LijCivguYDguKPguLfguYjguK3guIfguKrguLHguYnguJkKK+C5gOC4o+C4t+C4reC4h+C4reC4s+C4meC4suC4iAor4LmA4Lij4Li34Lit4LiUCivguYDguKPguLfguK3guJTguYTguKHguYkKK+C5gOC4o+C4t+C4reC4mQor4LmA4Lij4Li34LmJ4Lit4LiZCivguYDguKPguLfguK3guJnguYHguIHguYnguKcKK+C5gOC4o+C4t+C4reC4meC5gOC4hOC4o+C4t+C5iOC4reC4h+C4nOC4ueC4gQor4LmA4Lij4Li34Lit4LiZ4LmA4LiE4Lij4Li34LmI4Lit4LiH4Liq4Lix4LiaCivguYDguKPguLfguK3guJnguIjguLMKK+C5gOC4o+C4t+C4reC4meC4leC4sOC5gOC4geC4teC4ouC4hwor4LmA4Lij4Li34Lit4LiZ4LiY4Liy4LiV4Li4CivguYDguKPguLfguK3guJnguYDguJrguLXguYnguKIKK+C5gOC4o+C4t+C4reC4meC4neC4suC4geC4o+C4sOC4lOC4suC4mQor4LmA4Lij4Li34Lit4LiZ4LmB4Lid4LiUCivguYDguKPguLfguK3guJnguYHguJ4KK+C5gOC4o+C4t+C4reC4meC5hOC4nwor4LmA4Lij4Li34Lit4LiZ4Lii4Lit4LiUCivguYDguKPguLfguK3guJnguKvguK0KK+C5gOC4o+C4t+C4reC4muC4tOC4mQor4LmA4Lij4Li34Lit4Lie4LmI4Lin4LiHCivguYDguKPguLfguK3guYTguJ8KK+C5gOC4o+C4t+C5iOC4reC4ogor4LmA4Lij4Li34LmJ4Lit4LiiCivguYDguKPguLfguYjguK3guKLguYDguIjguLfguYnguK3guKIKK+C5gOC4o+C4t+C5iOC4reC4ouC5gOC4m+C4t+C5iOC4reC4ogor4LmA4Lij4Li34Lit4LmC4Lii4LiHCivguYDguKPguLfguK3guKPguJoKK+C5gOC4o+C4t+C5ieC4reC4o+C4seC4hwor4LmA4Lij4Li34Lit4Lil4LmI4Lih4LmD4LiZ4Lir4LiZ4Lit4LiHIOC4l+C4reC4h+C4iOC4sOC5hOC4m+C5hOC4q+C4mQor4LmA4Lij4Li34Lit4Lil4LmI4Lih4LmA4Lih4Li34LmI4Lit4LiI4Lit4LiUIOC4leC4suC4muC4reC4lOC5gOC4oeC4t+C5iOC4reC5geC4geC5iAor4LmA4Lij4Li34Lit4LmB4Lir4Lin4LiUCivguYDguKPguLfguK3guYPguKvguI3guYjguITguLHguJrguITguKXguK3guIcKK+C5geC4owor4LmB4Lij4LmICivguYHguKPguIEKK+C5geC4o+C5h+C4geC5gOC4geC4lQor4LmB4Lij4LiB4LiZ4LiyCivguYHguKPguIHguJnguLLguILguKfguLHguI0KK+C5geC4o+C4hwor4LmB4Lij4LmI4LiHCivguYHguKPguYnguIcKK+C5geC4o+C4h+C4h+C4suC4mQor4LmB4Lij4LiH4LiH4Liy4LiZ4LmB4Lil4Liw4Liq4Lin4Lix4Liq4LiU4Li04LiB4Liy4Lij4Liq4Lix4LiH4LiE4LihCivguYHguKPguIfguIfguLLguJnguKrguLHguKHguJ7guLHguJnguJjguYwKK+C5geC4o+C4h+C4lOC4tuC4h+C4lOC4ueC4lAor4LmB4Lij4LiH4LmA4LiX4Li14Lii4LiZCivguYHguKPguIfguKHguYnguLIKK+C5geC4o+C5iOC4h+C4o+C4tOC5ieC4pwor4LmB4Lij4LiH4Liq4Li54LmI4Lio4Li54LiZ4Lii4LmM4LiB4Lil4Liy4LiHCivguYHguKPguIfguKvguJnguLXguKjguLnguJnguKLguYzguIHguKXguLLguIcKK+C5geC4o+C4h+C5gOC4q+C4p+C4teC5iOC4ouC4hwor4LmB4Lij4LmI4LiH4LmE4Lir4LihCivguYHguKPguYDguIfguLIKK+C5geC4o+C4lAor4LmB4Lij4LiU4LiV4Lix4Lin4Lic4Li54LmJCivguYHguKPguJTguJXguLHguKfguYDguKHguLXguKIKK+C5geC4o+C5ieC4meC5geC4hOC5ieC4mQor4LmB4Lij4LihCivguYHguKPguKHguKPguK3guJkKK+C5geC4o+C4oeC4o+C4sgor4LmB4Lij4Lih4LmC4Lij4LiiCivguYHguKPguYnguKcKK+C5geC4o+C5gOC4quC5ieC4mQor4LmB4Lij4LiwCivguYLguKMKK+C5guC4o+C5iAor4LmC4Lij4LiECivguYLguKPguIQtCivguYLguKPguITguIjguLTguJUKK+C5guC4o+C4hOC4iOC4tOC4leC5gOC4oOC4lwor4LmC4Lij4LiE4LiZ4Li04LiX4Liy4LiZCivguYLguKPguITguJvguKPguLDguIjguLPguJXguLHguKcKK+C5guC4o+C4hOC4m+C4o+C4sOC4quC4suC4lwor4LmC4Lij4LiE4Lij4Liw4Lia4Lia4Lib4Lij4Liw4Liq4Liy4LiXCivguYLguKPguITguKjguLTguKXguJvguLAKK+C5guC4o+C4hOC4quC4oeC4reC4hwor4LmC4Lij4LiE4LiyCivguYLguKPguITguLLguJ7guKLguLLguJjguLQKK+C5guC4o+C4hOC4suC4nuC4suC4mAor4LmC4Lij4LiHCivguYLguKPguIfguITguLHguKUKK+C5guC4o+C4h+C4h+C4suC4mQor4LmC4Lij4LiH4LiY4Liy4LijCivguYLguKPguIfguJjguLLguKPguITguLPguJnguLHguKUKK+C5guC4o+C4h+C4meC4sgor4LmC4Lij4LiH4Lij4Lix4Lia4LiI4Liz4LiZ4LizCivguYLguKPguIfguYDguKPguLXguKLguJkKK+C5guC4o+C4h+C5gOC4o+C4teC4ouC4meC4m+C4o+C4sOC4iOC4swor4LmC4Lij4LiH4LmA4Lij4Li14Lii4LiZ4Liq4Liy4LiY4Li04LiVCivguYLguKPguIfguYDguKPguLfguK3guJkKK+C5guC4o+C4h+C5geC4o+C4oQor4LmC4Lij4LiH4LmB4Liq4LiHCivguYLguKPguIgKK+C5guC4o+C4iOC4meC5jAor4LmC4Lij4LmA4LiU4Li14Lii4LihCivguYLguKPguJXguLUKK+C5guC4o+C4leC4teC4quC4suC4ouC5hOC4q+C4oQor4LmC4Lij4LiXCivguYLguKPguJfguJnguLAKK+C5guC4o+C4mAor4LmC4Lij4LiY4LijCivguYLguKPguJvguJnguLAKK+C5guC4o+C4oQor4LmC4Lij4Lih4Lih4Lix4LiiCivguYLguKPguKHguKPguLHguJkKK+C5guC4o+C4oeC4seC4jeC4iAor4LmC4Lij4Lih4Lix4LiZCivguYLguKPguKHguLHguJnguITguLLguJfguK3guKXguLTguIEKK+C5guC4o+C5gOC4oeC4reC4o+C5jAor4LmC4Lij4LiiCivguYLguKPguKLguILguJnguKHguIjguLXguJkKK+C5guC4o+C4ouC4o+C4sgor4LmC4Lij4Lii4Lir4LiZ4LmJ4LiyCivguYLguKPguYDguKMKK+C5guC4o+C4qQor4LmC4Lij4Lip4LiT4LiwCivguYLguKPguKvguLTguJPguLUKK+C5guC4o+C4q+C4tOC4lQor4LmE4LijCivguYTguKPguYgKK+C5hOC4o+C5iQor4LmE4Lij4Lif4Lix4LiZCivguYTguKPguKLguYwKK+C5hOC4o+C5gOC4o+C4t+C4reC4hwor4LikCivguKTguIHguKnguYwKK+C4pOC4geC4qeC4k+C4sAor4Lik4LiB4Lip4LmM4Lia4LiZCivguKTguIHguKnguYzguJ7guLLguJnguLLguJfguLUKK+C4pOC4geC4qeC5jOC4peC5iOC4suC4hwor4Lik4LiE4LmA4Lin4LiXCivguKTguIrguLIKK+C4pOC4iuC4suC4geC4owor4Lik4LiK4Li4CivguKTguJMKK+C4pOC4lOC4tQor4Lik4LiU4Li14Lii4LiyCivguKTguJTguLkKK+C4pOC4lOC4ueC4geC4suC4pQor4Lik4LiVCivguKTguJXguLTguKLguLIKK+C4pOC4leC4uAor4Lik4LiV4Li44Liq4LiZ4Liy4LiZCivguKTguJfguJjguLIKK+C4pOC4l+C4mOC4tOC5jAor4Lik4LiX4Lix4LiiCivguKTguKnguKAKK+C4pOC4qeC4ouC4sgor4Lik4Lip4Li1CivguKTguYUKK+C4pOC5heC4iuC4uAor4Lik4LmF4LiK4Li44LiV4LiyCivguKTguYXguJTguLUKK+C4pOC5heC4l+C4seC4ogor4Lik4LmF4LmA4Lii4LiyCivguKTguYXguKnguLUKK+C4pOC5heC4qeC4teC5geC4m+C4peC4h+C4quC4suC4owor4Lik4LmF4Lip4Li14Lic4Liq4Lih4LmB4Lil4LmJ4LinCivguKTguYXguKnguLXguYDguKXguLXguYnguKLguIfguKXguLTguIcKK+C4pOC5heC4quC4suC4ogor4LilCivguKXguIEKK+C4peC4geC4suC4owor4Lil4LiB4Li44LiICivguKXguITguLjguJEKK+C4peC4hOC4uOC4rAor4Lil4LiG4Li4CivguKXguIbguLjguIjguLTguJUKK+C4peC4huC4uOC4oOC4suC4ngor4Lil4LiG4Li44LmC4Lig4LiK4LiZ4LmMCivguKXguIcKK+C4peC5iOC4hwor4Lil4LiH4LiB4Lil4Lit4LiZCivguKXguIfguIHguLIKK+C4peC4h+C4guC4seC4mQor4Lil4LiH4LiC4LmI4Liy4LinCivguKXguIfguYHguILguIEKK+C4peC4h+C4hOC4rQor4Lil4LiH4LmA4LiH4Li04LiZCivguKXguIfguIrguLfguYjguK0KK+C4peC4h+C5geC4lOC4hwor4Lil4LiH4LiV4Lix4LinCivguKXguIfguJfguK3guIcKK+C4peC4h+C4l+C5ieC4reC4hwor4Lil4LiH4LiX4LmI4LiyCivguKXguIfguJfguYnguLLguKIKK+C4peC4h+C4l+C4uOC4mQor4Lil4LiH4LmC4LiX4LipCivguKXguIfguJnguLIKK+C4peC4h+C5gOC4meC4t+C5ieC4reC5gOC4q+C5h+C4meC4lOC5ieC4p+C4ogor4Lil4LiH4LmC4Lia4Liq4LiW4LmMCivguKXguIfguYHguJvguYnguIcKK+C4peC4h+C4nOC4tQor4Lil4LiH4Lid4Lix4LiBCivguKXguIfguJ7guKPguLDguJrguLHguIfguITguJkKK+C4peC4h+C4nuC4t+C5ieC4mQor4Lil4LiH4Lie4Li44LiHCivguKXguIfguKHguLXguJQKK+C4peC4h+C4oeC4t+C4rQor4Lil4LiH4Lii4LiyCivguKXguIfguKPguK3guKLguIHguLHguJkKK+C4peC4h+C4o+C4seC4gQor4Lil4LiH4Lij4Liy4LiBCivguKXguIfguYHguKPguIcKK+C4peC4h+C5guC4o+C4hwor4Lil4LmJ4LiH4LmA4Lil4LmJ4LiHCivguKXguIfguKrguKPguIcKK+C4peC4h+C4q+C4jeC5ieC4suC4iuC5ieC4suC4hwor4Lil4LiH4Lir4Li04LiZCivguKXguIfguK3guLLguIrguI3guLIKK+C4peC4h+C4reC4suC4jeC4sgor4Lil4LiH4Lit4Li44LmC4Lia4Liq4LiWCivguKXguIfguYDguK3guKIKK+C4peC4lAor4Lil4LiU4LmA4LiC4Li34LmI4Lit4LiZCivguKXguJTguKPguLLguKfguLLguKjguK3guIEKK+C4peC4lOC4peC4sAor4Lil4LiU4LmA4Lil4Li14LmJ4Lii4LinCivguKXguJTguYDguKXguLXguYnguKLguKfguYDguIHguLXguYnguKLguKfguJ7guLIKK+C4peC4lOC4q+C4ouC5iOC4reC4mQor4Lil4LiU4Lir4Lil4Lix4LmI4LiZCivguKXguJTguLIKK+C4peC4lOC4suC4p+C4seC4peC4ouC5jAor4Lil4LiZCivguKXguYjguJkKK+C4peC5ieC4mQor4Lil4LmJ4LiZ4LmA4LiB4Lil4LmJ4Liy4Lil4LmJ4LiZ4LiB4Lij4Liw4Lir4Lih4LmI4Lit4LihCivguKXguJnguITguKfguLHguJkKK+C4peC5ieC4meC4nuC5ieC4mQor4Lil4LiZ4Lil4Liy4LiZCivguKXguYnguJnguKvguKXguLLguKEKK+C4peC4mgor4Lil4Lia4LihCivguKXguJrguKPguK3guKIKK+C4peC4muC4peC5ieC4suC4hwor4Lil4Lia4LmA4Lil4Li34Lit4LiZCivguKXguJrguYLguKXguIEKK+C4peC4muC4qOC4seC4geC4o+C4suC4igor4Lil4Lia4Lir4Lil4Li54LmICivguKXguJrguYDguKvguKXguLXguYjguKLguKEKK+C4peC4muC4reC4hwor4Lil4Lib4LiBCivguKXguJvguJkKK+C4peC4ngor4Lil4Lie4Li44LiKCivguKXguKEKK+C4peC4oeC5hgor4Lil4LmI4LihCivguKXguYnguKEKK+C4peC4oeC4geC4o+C4lAor4Lil4Lih4LiC4Li24LmJ4LiZCivguKXguYnguKHguITguKfguYjguLMKK+C4peC4oeC4hOC5ieC4sgor4Lil4Lih4LiH4Lin4LiHCivguKXguYjguKHguIjguKEKK+C4peC4oeC4iOC4seC4mgor4Lil4Lih4LmB4LiU4LiHCivguKXguKHguJfguKfguJnguKXguKHguITguYnguLIKK+C4peC4oeC4l+C4sOC5gOC4pQor4Lil4LmJ4Lih4LiX4Lix4LmJ4LiH4Lii4Li34LiZCivguKXguKHguJrguIEKK+C4peC4oeC4muC5ieC4suC4q+C4oeC4uQor4Lil4Lih4Lib4Lij4Liy4LiTCivguKXguKHguJvguLLguIEKK+C4peC4oeC4nuC4seC4lOC4iuC4suC4ouC5gOC4guC4sgor4Lil4Lih4Lie4Lix4LiU4Lir4Lil4Lin4LiHCivguKXguKHguJ7guLTguKkKK+C4peC4oeC5gOC4nuC4peC4oeC4nuC4seC4lAor4Lil4LmI4Lih4Lif4LmJ4LiyCivguKXguKHguYTguKHguYjguJTguLUKK+C4peC4oeC4peC5iOC4reC4hwor4Lil4LmJ4Lih4Lil4Liw4Lil4Liy4LiiCivguKXguYnguKHguKXguLjguIEKK+C4peC5ieC4oeC4peC4uOC4geC4hOC4peC4uOC4geC4hOC4peC4suC4mQor4Lil4LmJ4Lih4LmA4Lil4Li04LiBCivguKXguKHguYHguKXguYnguIcKK+C4peC4oeC5hiDguYHguKXguYnguIfguYYKK+C4peC4oeC4p+C5iOC4suC4pwor4Lil4Lih4LmA4Liq4Li14LiiCivguKXguYnguKHguKvguKHguK3guJnguJnguK3guJnguYDguKrguLfguYjguK0KK+C4peC4oeC4suC4lAor4Lil4Lij4Lij4Lil4Li44LiHCivguKXguKXguJnguLIKK+C4peC4peC4suC4jwor4Lil4Lil4Li04LiVCivguKXguKfguIEKK+C4peC4p+C4hwor4Lil4LmI4Lin4LiHCivguKXguYnguKfguIcKK+C4peC5ieC4p+C4h+C4geC4o+C4sOC5gOC4m+C5i+C4sgor4Lil4LmI4Lin4LiH4LmA4LiB4Li04LiZCivguKXguYjguKfguIfguILguLfguYjguK0KK+C4peC4p+C4h+C4hOC5jAor4Lil4LmJ4Lin4LiH4LiE4Lit4LiH4Li54LmA4Lir4LmI4LiyCivguKXguYjguKfguIfguITguLMKK+C4peC5ieC4p+C4h+C4leC4seC4mgor4Lil4Lin4LiH4LiV4LiyCivguKXguYjguKfguIfguJvguKPguLDguYDguKfguJPguLUKK+C4peC5iOC4p+C4h+C5geC4mwor4Lil4LmI4Lin4LiH4Lie4LmJ4LiZCivguKXguYnguKfguIfguKHguLfguK0KK+C4peC5iOC4p+C4h+C4o+C4ueC5iQor4Lil4LmI4Lin4LiH4Lil4Lix4LiaCivguKXguYjguKfguIfguKXguYnguLMKK+C4peC5iOC4p+C4h+C5gOC4peC4ogor4Lil4Lin4LiH4LmA4Lil4LmJ4LiyCivguKXguYjguKfguIfguKfguYjguLIKK+C4peC5iOC4p+C4h+C5gOC4p+C4peC4sgor4Lil4LmJ4Lin4LiH4LmE4Liq4LmJCivguKXguYjguKfguIfguKvguJnguYnguLIKK+C4peC4p+C4k+C4sAor4Lil4Lin4LiUCivguKXguKfguJTguKXguLLguKIKK+C4peC4p+C4lOC4quC4m+C4o+C4tOC4hwor4Lil4Lin4LiU4Lir4LiZ4Lix4LiHCivguKXguKfguJTguKvguJnguLLguKEKK+C4peC5ieC4p+C4mQor4Lil4LmJ4Lin4LiZ4LmGCivguKXguKfguJnguKXguLLguKEKK+C4peC4p+C4meC4sAor4Lil4LmI4Lin4LihCivguKXguKfguLAKK+C4peC4p+C4tOC4leC4owor4Lil4Lir4Li4CivguKXguKvguLjguIEtCivguKXguKvguLjguIHguLAKK+C4peC4q+C4uOC4geC4suC4muC4seC4leC4tAor4Lil4Lir4Li44LmC4LiX4LipCivguKXguYjguK0KK+C4peC5ieC4rQor4Lil4Lit4LiBCivguKXguYfguK3guIHguYDguIHguJUKK+C4peC4reC4geC4hOC4o+C4suC4mgor4Lil4Lit4LiB4LiX4LmJ4Lit4LiH4Lij4LmI4Lit4LiHCivguKXguK3guIHguYDguKXguJkKK+C4peC4reC4geC5geC4peC4gQor4Lil4Lit4LiB4Liy4Lij4Li04LiX4Li24LihCivguKXguK3guIcKK+C4peC5iOC4reC4hwor4Lil4Lit4LiH4LiB4Lit4LiHCivguKXguYjguK3guIfguYHguIHguYjguIcKK+C4peC5iOC4reC4h+C4iOC4p+C4mQor4Lil4Lit4LiH4LiI4Li04LiI4Li54LiUCivguKXguK3guIfguYPguIgKK+C4peC5iOC4reC4h+C4iuC4suC4lAor4Lil4Lit4LiH4LmA4LiK4Li04LiHCivguKXguK3guIfguJTguLUKK+C4peC5iOC4reC4h+C4luC4uOC4mQor4Lil4Lit4LiH4LiY4Lij4Lij4Lih4LmMCivguKXguK3guIfguYPguJkKK+C4peC4reC4h+C5hOC4mQor4Lil4Lit4LiH4Lig4Li54Lih4Li0CivguKXguYjguK3guIfguYHguKHguKcKK+C4peC5iOC4reC4h+C4q+C4mQor4Lil4Lit4LiUCivguKXguK3guJTguIrguYjguK3guIcKK+C4peC4reC4mQor4Lil4LmI4Lit4LiZCivguKXguYjguK3guJnguYHguIHguYjguJkKK+C4peC5iOC4reC4meC4iOC5ieC4reC4mQor4Lil4Lit4LiZ4LiX4Lit4LiHCivguKXguK3guJoKK+C4peC4reC4muC4geC4seC4lAor4Lil4Lit4LihCivguKXguYnguK3guKEKK+C4peC4reC4oeC4iuC4reC4oQor4Lil4LmJ4Lit4Lih4Lib4Lij4Lin4LiUCivguKXguK3guKHguJ7guK3guIEKK+C4peC5ieC4reC4oeC4p+C4hwor4Lil4Lit4LiiCivguKXguK3guKLguYYKK+C4peC5iOC4reC4ouC5hgor4Lil4Lit4Lii4LiB4Lij4Liw4LiX4LiHCivguKXguK3guKLguYHguIHguYnguKcKK+C4peC4reC4ouC4hOC4rQor4Lil4Lit4Lii4LiK4LmJ4Lit4LiZCivguKXguK3guKLguIrguLLguKIKK+C4peC4reC4ouC4lOC4reC4gQor4Lil4Lit4Lii4LiV4Lix4LinCivguKXguK3guKLguJnguKfguKUKK+C4peC4reC4ouC4muC4suC4mwor4Lil4Lit4Lii4LmB4LieCivguKXguK3guKLguJ/guYnguLIKK+C4peC4reC4ouC5gOC4oeC4hgor4Lil4Lit4Lii4Lil4LizCivguKXguK3guKLguKvguJnguYnguLIKK+C4peC5iOC4reC4peC4p+C4hwor4Lil4LmJ4Lit4LmA4Lil4Li14Lii4LiZCivguKXguYnguK3guYDguKXguLfguYjguK3guJkKK+C4peC5iOC4reC5geC4peC5iAor4Lil4Lit4Lin4LmM4LmA4Lij4LiZ4LmA4LiL4Li14Lii4LihCivguKXguYjguK3guKvguKXguK3guIEKK+C4peC5ieC4reC4q+C4peC4reC4gQor4Lil4LmI4Lit4LmB4Lir4Lil4LihCivguKXguK3guK0KK+C4peC4sAor4Lil4LmI4LiwCivguKXguLDguIHguKUKK+C4peC4sOC4geC4ueC4oeC4sOC4meC4tOC4qgor4Lil4Liw4LiC4Lix4LiU4Lil4Liw4LiC4Li34LiZCivguKXguLDguITguKMKK+C4peC4sOC4hOC4o+C4ouC4gQor4Lil4Liw4LiE4Li0CivguKXguLDguITguLbguIEKK+C4peC4sOC4h+C4suC4lAor4Lil4Liw4LiH4Li04LiUCivguKXguLDguJXguLTguIjguLnguJQKK+C4peC4sOC4l+C4tOC5ieC4hwor4Lil4Liw4Lia4LihCivguKXguLDguJrguK3guIcKK+C4peC4sOC4muC4reC4h+C5hOC4nwor4Lil4Liw4Lia4Lit4LiH4Lij4Liy4Lir4Li5CivguKXguLDguJrguLHguJQKK+C4peC4sOC4muC4t+C4rQor4Lil4Liw4LmA4Lia4LmH4LiHCivguKXguLDguYLguJrguKEKK+C4peC4sOC4oeC5iOC4reC4oQor4Lil4Liw4Lih4Lix4LmI4LiHCivguKXguLDguKHguLIKK+C4peC4sOC4oeC4suC4mQor4Lil4Liw4Lih4LmJ4Liy4LiiCivguKXguLDguKHguLgKK+C4peC4sOC4oeC4uOC4lAor4Lil4Liw4Lih4Li44LiZCivguKXguLDguKHguLjguJnguKXguLDguYTguKEKK+C4peC4sOC5gOC4oeC5h+C4lAor4Lil4Liw4LmA4Lih4LitCivguKXguLDguYDguKHguLLguLAKK+C4peC4sOC5gOC4oeC4tOC4lAor4Lil4Liw4LmA4Lih4Li04LiU4Lil4Li04LiC4Liq4Li04LiX4LiY4Li04LmMCivguKXguLDguYDguKHguLTguJkKK+C4peC4sOC5gOC4oeC4teC4ouC4lAor4Lil4Liw4LmA4Lih4Li14Lii4LiaCivguKXguLDguYHguKHguLAKK+C4peC4sOC5guC4oeC4gQor4Lil4Liw4LmC4Lih4LiaCivguKXguLDguYTguKEKK+C4peC4sOC4o+C4tQor4Lil4Liw4Lil4LiUCivguKXguLDguKXguJnguKXguLDguKXguLLguJkKK+C4peC4sOC4peC4oeC4peC4sOC4peC4suC4ogor4Lil4Liw4Lil4Lin4LiiCivguKXguLDguKXguK3guIEKK+C4peC4sOC4peC4reC4muC4peC4sOC5gOC4peC5ieC4sgor4Lil4Liw4Lil4Lix4LiHCivguKXguLDguKXguLHguJQKK+C4peC4sOC4peC5ieC4sgor4Lil4Liw4Lil4Liy4LiZCivguKXguLDguKXguLLguJrguKXguLDguKXguYnguKfguIcKK+C4peC4sOC4peC4suC4ogor4Lil4Liw4Lil4LmJ4Liy4Lil4Liw4Lil4Lix4LiHCivguKXguLDguKXguYnguLLguKcKK+C4peC4sOC4peC5iOC4s+C4peC4sOC4peC4seC4gQor4Lil4Liw4Lil4Li04LiaCivguKXguLDguKXguLjguIcKK+C4peC4sOC4peC4uOC4oQor4Lil4Liw4LmA4Lil4LiHCivguKXguLDguYDguKXguIfguILguJnguKHguYDguJrguLfguYnguK3guIfguJTguYnguKfguKLguJvguLLguIEKK+C4peC4sOC5gOC4peC4ogor4Lil4Liw4LmA4Lil4LmJ4LiyCivguKXguLDguYDguKXguLLguLAKK+C4peC4sOC5gOC4peC4suC4sOC4peC4sOC4peC4reC4hwor4Lil4Liw4LmA4Lil4Li04LiHCivguKXguLDguYDguKXguLXguKLguJQKK+C4peC4sOC5gOC4peC4teC4ouC4mgor4Lil4Liw4LmA4Lil4Li34Lit4LiBCivguKXguLDguYTguKXguYkKK+C4peC4sOC4p+C4pQor4Lil4Liw4Lin4LmJ4LitCivguKXguLDguKfguYnguLIKK+C4peC4sOC4p+C4suC4hwor4Lil4Liw4Lin4Liy4LiUCivguKXguLDguYDguKfguIcKK+C4peC4sOC5gOC4p+C5ieC4mQor4Lil4Liw4LmB4Lin4LiBCivguKXguLDguYLguKfguYkKK+C4peC4sOC4q+C4oeC4suC4lAor4Lil4Liw4Lir4Lih4Liy4LiU4LiN4Liy4LiZ4Liy4LiL4Liw4Liu4LmMCivguKXguLDguKvguKXguLHguJQKK+C4peC4sOC4q+C5ieC4reC4ogor4Lil4Liw4Lir4Liy4LiZCivguKXguLDguKvguLjguYjguIcKK+C4peC4sOC5gOC4q+C4ogor4Lil4Liw4LmA4Lir4Li14LmI4LiiCivguKXguLDguK3guIfguKXguLDguKHguLHguYjguIcKK+C4peC4sOC4reC4reC4hwor4Lil4Liw4Lit4Liy4LiiCivguKXguLDguYDguK3guLXguKLguJQKK+C4peC4sOC5gOC4reC4teC4ouC4lOC4peC4reC4rQor4Lil4Liw4LmB4Lit4LiZCivguKXguLHguIEKK+C4peC4seC4geC5hOC4geC5iAor4Lil4Lix4LiB4LiC4LiT4LiwCivguKXguLHguIHguILguJPguLIKK+C4peC4seC4geC4guC4sAor4Lil4Lix4LiB4LiC4Li1CivguKXguLHguIHguYDguITguYnguLIKK+C4peC4seC4geC4iOC4seC5iOC4mQor4Lil4Lix4LiB4Lib4Li04LiU4Lil4Lix4LiB4LmA4Lib4Li04LiUCivguKXguLHguIHguJ7guLIKK+C4peC4seC4geC5gOC4nuC4qAor4Lil4Lix4LiB4Lii4Li04LmJ4LihCivguKXguLHguIHguKXguK3guJoKK+C4peC4seC4geC4peC4seC5iOC4mQor4Lil4Lix4LiB4Lil4Liy4LiiCivguKXguLHguIHguYDguKXguLXguKLguKEKK+C4peC4seC4geC4qOC4ngor4Lil4Lix4LiB4Lip4LiTLQor4Lil4Lix4LiB4Lip4LiT4LiZ4Liy4LihCivguKXguLHguIHguKnguJPguLAKK+C4peC4seC4geC4qeC4k+C4suC4geC4suC4owor4Lil4Lix4LiB4Lip4Lih4LiT4LmMCivguKXguLHguIHguKnguKHguLLguJPguLIKK+C4peC4seC4geC4qeC4oeC4tQor4Lil4Lix4LiB4Lip4LiwCivguKXguLHguIHguKrguKPguYnguK3guKIKK+C4peC4seC4geC4quC4tQor4Lil4Lix4LiB4Lir4Lil4Lix4LiaCivguKXguLHguITguITguLAKK+C4peC4seC4hOC4mS0KK+C4peC4seC4hOC4meC5jAor4Lil4Lix4LiE4LiZ4LiyCivguKXguLHguIcKK+C4peC4seC5iOC4hwor4Lil4Lix4LiH4LiB4LiyCivguKXguLHguIfguITguLQKK+C4peC4seC4h+C4hOC4tQor4Lil4Lix4LiH4LiW4Li24LiHCivguKXguLHguIfguKXguK3guIcKK+C4peC4seC4h+C5gOC4pQor4Lil4Lix4LiH4Liq4Liy4LiUCivguKXguLHguIrguIrguLIKK+C4peC4seC4iuC4iuC4tQor4Lil4Lix4LiN4LiI4LmMCivguKXguLHguI3guIjguIHguKMKK+C4peC4seC4jeC4iQor4Lil4Lix4LiN4LiJ4LiB4LijCivguKXguLHguI3guInguJnguYwKK+C4peC4seC4kOC4tAor4Lil4Lix4LiQ4Li04LiB4LiyCivguKXguLHguJQKK+C4peC4seC4lOC4meC4tOC5ieC4p+C4oeC4t+C4rQor4Lil4Lix4LiU4LmA4LiZ4Li34LmJ4LitCivguKXguLHguJTguYDguKXguLLguLAKK+C4peC4seC4lOC5geC4peC4hwor4Lil4Lix4LiU4Lin4LiH4LiI4LijCivguKXguLHguJTguLIKK+C4peC4seC4l+C4mOC5jAor4Lil4Lix4LiX4LiY4Li0CivguKXguLHguJkKK+C4peC4seC5iOC4mQor4Lil4Lix4LmI4LiZ4LiB4Li44LiN4LmB4LiICivguKXguLHguYjguJnguYTguIEKK+C4peC4seC5iOC4meC4huC5ieC4reC4hwor4Lil4Lix4LmI4LiZ4LiU4Liy4LilCivguKXguLHguJnguYDguJUKK+C4peC4seC4meC5gOC4leC4sgor4Lil4Lix4LiZ4LmE4LiVCivguKXguLHguYjguJnguJbguLHguJkKK+C4peC4seC5iOC4meC4l+C4oQor4Lil4Lix4LiZ4LiX4Lin4LiiCivguKXguLHguJnguYLguJfguKEKK+C4peC4seC5iOC4meC4meC4gQor4Lil4Lix4LmI4LiZ4Lib4Liy4LiBCivguKXguLHguYjguJnguKfguLLguIjguLIKK+C4peC4seC4mgor4Lil4Lix4Lia4LiV4LiyCivguKXguLHguJrguJvguLLguIEKK+C4peC4seC4muC4neC4teC4m+C4suC4gQor4Lil4Lix4Lia4Lil4Lih4LiE4Lih4LmD4LiZCivguKXguLHguJrguKXguYjguK0KK+C4peC4seC4muC5hiDguKXguYjguK3guYYKK+C4peC4seC4muC4peC4teC5iQor4Lil4Lix4Lia4LmB4LilCivguKXguLHguJrguKrguKHguK3guIcKK+C4peC4seC4muC4q+C4peC4seC4hwor4Lil4Lix4Lia4Lir4Li5CivguKXguLHguJ7guJjguYwKK+C4peC4seC4nuC4mOC4tAor4Lil4Lix4LigCivguKXguLHguKDguJnguLAKK+C4peC4seC4oOC4ouC5jAor4Lil4Lix4Lih4Lie4LmMCivguKXguLHguKIKK+C4peC4seC4oi0KK+C4peC4seC4ouC4geC4suC4pQor4Lil4Lix4Lii4LiE4LiVCivguKXguLIKK+C4peC5iOC4sgor4Lil4LmJ4LiyCivguKXguLLguIEKK+C4peC4suC4geC4guC5ieC4suC4hwor4Lil4Liy4LiB4Lip4LiyCivguKXguLLguIHguYDguKrguYnguJkKK+C4peC4suC4geC4q+C4meC4suC4oeC4iOC4uOC4geC4iuC5iOC4reC4hwor4Lil4Liy4LiC4LiyCivguKXguLLguILguYnguLLguKfguJ7guKPguLAKK+C4peC4suC4hwor4Lil4LmI4Liy4LiHCivguKXguYnguLLguIcKK+C4peC4suC4h+C4hOC4seC4pQor4Lil4LmJ4Liy4LiH4LmB4LiE4LmJ4LiZCivguKXguLLguIfguIfguLTguJQKK+C4peC5ieC4suC4h+C4l+C5ieC4reC4hwor4Lil4Liy4LiH4LiX4Li1CivguKXguLLguIfguYDguJnguLfguYnguK3guIrguK3guJrguKXguLLguIfguKLguLIKK+C4peC5ieC4suC4h+C4m+C4suC4gQor4Lil4LmJ4Liy4LiH4Lib4LmI4Liy4LiK4LmJ4LiyCivguKXguYnguLLguIfguJzguKXguLLguI0KK+C4peC5ieC4suC4h+C5hOC4nuC5iAor4Lil4LmJ4Liy4LiH4Lih4Li34LitCivguKXguLLguIfguKXguLTguIcKK+C4peC5ieC4suC4h+C5guC4peC4gQor4Lil4LmJ4Liy4LiH4Liq4Lih4Lit4LiHCivguKXguLLguIfguKrguLLguJQKK+C4peC5ieC4suC4h+C4reC4suC4ogor4Lil4Liy4LiH4Liy4LiUCivguKXguYnguLLguIfguLLguJQKK+C4peC4suC5gOC4h+C5h+C4lAor4Lil4Liy4LiKCivguKXguLLguIrguLIKK+C4peC4suC4jQor4Lil4Liy4LiN4LiX4Lix4LiBCivguKXguLLguJQKK+C4peC4suC4lOC5gOC4guC4sgor4Lil4Liy4LiU4LiV4Lij4Liw4LmA4Lin4LiZCivguKXguLLguJTguJfguKfguLXguJsKK+C4peC4suC4lOC5gOC4lwor4Lil4Liy4LiU4Lie4Lij4Liw4Lia4Liy4LiXCivguKXguLLguJTguKLguLLguIcKK+C4peC4suC4lOC5gOC4peC4sgor4Lil4LmJ4Liy4LiV4LmJ4LiyCivguKXguLLguJXguLLguKIKK+C4peC5iOC4suC5gOC4leC4teC4ouC4hwor4Lil4LmJ4Liy4LmA4LiV4Li14Lii4LiHCivguKXguLLguJkKK+C4peC5iOC4suC4mQor4Lil4LmJ4Liy4LiZCivguKXguLLguJoKK+C4peC4suC4mwor4Lil4Liy4Lie4Lij4Lij4Lip4LiyCivguKXguLLguJ7guK3guJkKK+C4peC4suC4nuC4uAor4Lil4Liy4Lie4Li44LiKCivguKXguLLguYDguJ4KK+C4peC4suC5gOC4nuC4sgor4Lil4Liy4LigCivguKXguLLguKDguKHguLTguITguKfguKPguYTguJTguYkKK+C4peC4suC4oQor4Lil4LmI4Liy4LihCivguKXguLLguKHguIEKK+C4peC4suC4oeC4m+C4suC4oQor4Lil4Liy4Lih4Lil4Lin4LiZCivguKXguLLguKIKK+C4peC5ieC4suC4ogor4Lil4Liy4Lii4LiC4Lix4LiUCivguKXguLLguKLguITguKPguLLguKEKK+C4peC4suC4ouC4leC4sgor4Lil4Liy4Lii4LmA4LiX4LioCivguKXguLLguKLguYHguJfguIcKK+C4peC4suC4ouC4meC5ieC4swor4Lil4Liy4Lii4LiZ4LmJ4Liz4LiX4Lit4LiHCivguKXguLLguKLguJ7guKPguLDguKvguLHguJXguJbguYwKK+C4peC4suC4ouC4nuC4suC4lOC4geC4peC4reC4mQor4Lil4Liy4Lii4Lih4Li34LitCivguKXguLLguKLguKHguLfguK3guIrguLfguYjguK0KK+C4peC4suC4ouC5hOC4oeC5iQor4Lil4Liy4Lii4Lil4Lix4LiB4Lip4LiT4LmMCivguKXguLLguKLguKrguK0KK+C4peC4suC4ouC4quC4reC4hwor4Lil4Liy4Lii4Liq4Liy4LiaCivguKXguLLguKLguKrguLfguK0KK+C4peC4suC4ouC4reC4ouC5iOC4suC4hwor4Lil4Liy4Lii4Liu4LmI4LitCivguKXguLLguYLguKPguIcKK+C4peC4suC4peC4meC4sAor4Lil4Liy4Lil4LiqCivguKXguLLguKXguLIKK+C4peC4suC5guC4peC4gQor4Lil4Liy4LinCivguKXguLLguKfguIEKK+C4peC4suC4p+C4seC4k+C4ouC5jAor4Lil4Liy4Lin4LiyCivguKXguLLguKrguJnguLAKK+C4peC5ieC4suC4quC4oeC4seC4ogor4Lil4Liy4Liq4Li04LiB4LiC4LiyCivguKXguYnguLLguKvguKXguLHguIcKK+C4peC4swor4Lil4LmI4LizCivguKXguYnguLMKK+C4peC4s+C4geC4o+C4sOC5guC4lOC4hwor4Lil4Liz4LiB4Lil4LmJ4Lit4LiHCivguKXguLPguYDguILguYfguI0KK+C4peC4s+C5geC4ggor4Lil4Liz4LmB4LiC4LmJ4LiHCivguKXguLPguYDguITguYfguI0KK+C4peC4s+C5gOC4hOC4t+C4reC4hwor4Lil4Liz4LiH4Liy4LiUCivguKXguLPguYDguIjguLXguKLguIEKK+C4peC4s+C5gOC4iOC4teC4ouC4geC4q+C4meC4uQor4Lil4Liz4LiU4Lin4LiZCivguKXguLPguJTguLHguJoKK+C4peC4s+C4leC4seC4lAor4Lil4Liz4LiY4Liy4LijCivguKXguLPguJnguLHguIEKK+C4peC4s+C4meC4swor4Lil4Liz4LmA4LiZ4LiyCivguKXguLPguJrguK3guIcKK+C4peC4s+C4muC4suC4gQor4Lil4Liz4Lia4Li4CivguKXguLPguJvguLMKK+C4peC4s+C4nuC4p+C4mQor4Lil4Liz4Lie4Lit4LiHCivguKXguLPguJ7guLHguIcKK+C4peC4s+C4nuC4uQor4Lil4Liz4Lie4Li54LmI4LiB4Lix4LiZCivguKXguLPguYDguJ7guYfguI0KK+C4peC4s+C5gOC4nuC4sgor4Lil4Liz4LmB4Lie4LiHCivguKXguLPguYHguJ7guJkKK+C4peC4s+C5guC4nuC4hwor4Lil4Liz4LmE4Lie4LmICivguKXguLPguKDguLjguILguLHguJkKK+C4peC4s+C4oeC4sOC4peC4reC4gQor4Lil4Liz4Lih4Liy4LiUCivguKXguLPguKHguLLguJoKK+C4peC4s+C5gOC4oeC4suC4sAor4Lil4Liz4LmA4Lih4Li14Lii4LiaCivguKXguLPguKLguK3guIcKK+C4peC4s+C4ouC4sgor4Lil4Liz4LmE4LiiCivguKXguLPguKXguK3guIcKK+C4peC5iOC4s+C4peC4sgor4Lil4Liz4Lil4Liy4LiaCivguKXguLPguKXguLMKK+C4peC4s+C4peC4tuC4gQor4Lil4Liz4LmA4Lil4Liy4LiwCivguKXguLPguYDguKXguLTguIEKK+C4peC5ieC4s+C5gOC4peC4tOC4qAor4Lil4Liz4LmA4Lil4Li14Lii4LiHCivguKXguLPguYDguKXguLXguKLguJoKK+C4peC4s+C5gOC4p+C4teC4ouC4hwor4Lil4Liz4LmA4Lin4Li14Lii4LiZCivguKXguYjguLPguKrguLHguJkKK+C4peC4s+C5gOC4quC4sgor4Lil4Liz4LmE4Liq4LmJCivguKXguLPguKvguJnguLHguIEKK+C4peC5ieC4s+C4q+C4meC5ieC4sgor4Lil4Liz4Lir4LmJ4Lin4LiiCivguKXguLPguKvguLHguIHguKXguLPguYLguITguYjguJkKK+C4peC4s+C4reC4uOC4lAor4Lil4Liz4LmA4Lit4Li14Lii4LiBCivguKXguLPguYDguK3guLXguKLguIcKK+C4peC4s+C5guC4reC4hwor4Lil4Li0CivguKXguLTguIHguILguLIKK+C4peC4tOC4geC5hOC4meC4leC5jAor4Lil4Li04LiB4Lip4LiyCivguKXguLTguIHguLjguIgKK+C4peC4tOC5gOC4gQor4Lil4Li04LiC4LiZ4LiwCivguKXguLTguILguKrguLTguJfguJjguLTguYwKK+C4peC4tOC4guC4tOC4lQor4Lil4Li04LiHCivguKXguLTguIfguITguYwKK+C4peC4tOC4h+C4iOC4uOC5iOC4mQor4Lil4Li04LiH4LiK4Li04LiH4Lir4Lil4Lix4LiBCivguKXguLTguIfguJXguIHguJXguYnguJnguYTguKHguYkKK+C4peC4tOC4h+C4peC4oQor4Lil4Li04LiH4LmC4Lil4LiUCivguKXguLTguIfguKvguKXguK3guIHguYDguIjguYnguLIKK+C4peC4tOC4lAor4Lil4Li04LiU4LiV4Li14LiZ4Lib4Li5CivguKXguLTguJTguKPguK3guJkKK+C4peC4tOC4lQor4Lil4Li04LiV4Lih4Lix4LiqCivguKXguLTguJXguKMKK+C4peC4tOC5gOC4l+C4teC4ouC4oQor4Lil4Li04LmI4LiZCivguKXguLTguYnguJkKK+C4peC4tOC5ieC4meC4geC4o+C4sOC4lOC5ieC4suC4h+C4hOC4suC4h+C5geC4guC5h+C4hwor4Lil4Li04LmJ4LiZ4LiB4Lij4Liw4Lia4Li34LitCivguKXguLTguJnguYLguIHguKPguKIKK+C4peC4tOC5ieC4meC5hOC4geC5iAor4Lil4Li04LmJ4LiZ4LiE4Lin4Liy4LiiCivguKXguLTguYnguJnguIfguLnguYDguKvguYjguLIKK+C4peC4tOC4meC4iOC4hwor4Lil4Li04LmJ4LiZ4LiI4Liw4LiB4Lin4LiUCivguKXguLTguYnguJnguIjguLXguYgKK+C4peC4tOC5ieC4meC4iuC4seC4gQor4Lil4Li04LmI4LiZ4LiV4LmJ4LiZCivguKXguLTguYnguJnguJXguKfguLHguJTguJbguLbguIfguKvguLkKK+C4peC4tOC5ieC4meC4leC4sOC4geC4p+C4lAor4Lil4Li04LmJ4LiZ4LiX4Lit4LiHCivguKXguLTguYjguJnguJfguLDguYDguKUKK+C4peC4tOC5ieC4meC4l+C4sOC5gOC4pQor4Lil4Li04LmJ4LiZ4Lib4Li14LmICivguKXguLTguYnguJnguKHguLHguIfguIHguKMKK+C4peC4tOC5ieC4meC5hOC4oeC5iOC4oeC4teC4geC4o+C4sOC4lOC4ueC4gQor4Lil4Li04LmJ4LiZ4Lil4LihCivguKXguLTguYnguJnguKXguLHguIfguIHguLIKK+C4peC4tOC4meC4peC4sgor4Lil4Li04LiZ4Lil4Liy4LiB4Lij4Liw4LiX4Li44LmI4LihCivguKXguLTguJnguKXguLLguIHguKPguLDguJrguLXguYgKK+C4peC4tOC5ieC4meC4peC4suC4ogor4Lil4Li04LiZ4Liq4Li14LiUCivguKXguLTguYnguJnguYDguKrguLfguK0KK+C4peC4tOC5ieC4meC4q+C4oeC4sgor4Lil4Li04LmI4LiZ4Liu4Li34LmJ4LitCivguKXguLTguJnguLTguJkKK+C4peC4tOC4mgor4Lil4Li04Lia4Lil4Lix4LiaCivguKXguLTguJrguKXguLTguYjguKcKK+C4peC4tOC4m+C4lOC4sgor4Lil4Li04Lib4LiV4LmMCivguKXguLTguJvguKrguJXguLTguIEKK+C4peC4tOC4m+C4tAor4Lil4Li04Lib4Li04LiB4LijCivguKXguLTguJvguLTguIHguLLguKMKK+C4peC4tOC4n+C4leC5jAor4Lil4Li04LmA4Lig4LiyCivguKXguLTguYjguKEKK+C4peC4tOC5ieC4oQor4Lil4Li04Lih4Lib4LmMCivguKXguLTguKHguJvguJnguLAKK+C4peC4tOC4peC4tOC4lQor4Lil4Li04LinCivguKXguLTguYjguKcKK+C4peC4tOC4quC4hwor4Lil4Li1CivguKXguLXguYgKK+C4peC4teC5iQor4Lil4Li14LiL4LitCivguKXguLXguJoKK+C4peC4teC5ieC4peC4seC4mgor4Lil4Li14Lil4LiyCivguKXguLXguKXguLLguIHguKPguLDguJfguLjguYjguKEKK+C4peC4teC4peC4suC4qAor4Lil4Li14Lis4Lir4LiyCivguKXguLbguIEKK+C4peC4tuC4geC4i+C4tuC5ieC4hwor4Lil4Li24LiB4Lil4Lix4LiaCivguKXguLbguIHguKXguYnguLMKK+C4peC4tuC4h+C4hOC5jAor4Lil4Li24LiH4LiE4LmM4LiZ4Liy4Lii4Lie4Lij4Liy4LiZCivguKXguLfguJQKK+C4peC4t+C5iOC4mQor4Lil4Li34LmJ4LiZCivguKXguLfguJoKK+C4peC4t+C4oQor4Lil4Li34Lih4LiV4LiZCivguKXguLfguKHguJXguYnguJkKK+C4peC4t+C4oeC4leC4seC4pwor4Lil4Li34Lih4LiV4LiyCivguKXguLfguK0KK+C4peC4t+C5iOC4rQor4Lil4Li34LmJ4LitCivguKXguLfguK3guIrguLIKK+C4peC4t+C4reC4iuC4suC4m+C4o+C4suC4geC4jwor4Lil4Li34LmI4Lit4LiK4Li34LmI4LitCivguKXguLfguK3guKrguLLguKIKK+C4peC4uAor4Lil4Li44LiBCivguKXguLjguIHguKXguJkKK+C4peC4uOC4geC4peC4suC4oQor4Lil4Li44LiB4Lil4Li14LmJ4Lil4Li44LiB4Lil4LiZCivguKXguLjguIHguK7guLfguK0KK+C4peC4uOC5geC4geC5iOC5guC4l+C4qQor4Lil4Li44LmB4LiB4LmI4Lit4Liz4LiZ4Liy4LiICivguKXguLjguIcKK+C4peC4uOC5ieC4hwor4Lil4Li44LiVCivguKXguLjguJcKK+C4peC4uOC4l+C4geC4sAor4Lil4Li44LiX4LiY4LmMCivguKXguLjguYjguJkKK+C4peC4uOC5iOC4meC5hgor4Lil4Li44LmI4LiZ4LiV4Li44LmJ4LiZCivguKXguLjguYjguJnguYLguJXguIcKK+C4peC4uOC4m+C4leC5jAor4Lil4Li44Lie4LiY4LmMCivguKXguLjguJ7guJjguIHguLAKK+C4peC4uOC5iOC4oQor4Lil4Li44LmI4Lih4LmGIOC4lOC4reC4meC5hgor4Lil4Li44LmI4Lih4LiZ4LmJ4LizCivguKXguLjguYjguKHguYDguJnguLfguYnguK0KK+C4peC4uOC4oeC4m+C5jAor4Lil4Li44Lih4Lie4Li1CivguKXguLjguKHguJ7guLkKK+C4peC4uOC5iOC4oeC5gOC4peC5ieC4sgor4Lil4Li44LmI4Lih4Lir4Lil4LiHCivguKXguLjguKIKK+C4peC4uOC5iOC4ogor4Lil4Li44LmJ4LiiCivguKXguLjguYjguKLguKvguLkKK+C4peC4uOC4peC5iOC4p+C4hwor4Lil4Li44Lil4Liy4LiiCivguKXguLjguKrguLIKK+C4peC4uOC4reC4s+C4meC4suC4iAor4Lil4Li54LmICivguKXguLnguIEKK+C4peC4ueC4geC4geC4gQor4Lil4Li54LiB4LiB4Lij4LiHCivguKXguLnguIHguIHguKPguK3guIEKK+C4peC4ueC4geC4geC4o+C4sOC5gOC4lOC4t+C4reC4gQor4Lil4Li54LiB4LiB4Lij4Liw4Lie4Lij4Lin4LiZCivguKXguLnguIHguIHguKPguLDguYHguK3guKEKK+C4peC4ueC4geC4geC4peC4reC4mQor4Lil4Li54LiB4LiB4Lil4Li04LmJ4LiHCivguKXguLnguIHguIHguKfguLLguJQKK+C4peC4ueC4geC4geC4sOC5guC4peC5iAor4Lil4Li54LiB4LiB4Liw4LmB4LitCivguKXguLnguIHguIHguLHguKXguJvguJ7guKTguIHguKnguYwKK+C4peC4ueC4geC5geC4geC5ieC4pwor4Lil4Li54LiB4LmC4LiB4Lil4LiZCivguKXguLnguIHguYTguIHguYgKK+C4peC4ueC4geC5hOC4geC5iOC4reC4ouC4ueC5iOC5g+C4meC4geC4s+C4oeC4t+C4rQor4Lil4Li54LiB4LiC4Lin4Lix4LiNCivguKXguLnguIHguILguLHguJQKK+C4peC4ueC4geC4guC5iOC4suC4hwor4Lil4Li54LiB4LiC4LmJ4Liy4LinCivguKXguLnguIHguILguLjguJkKK+C4peC4ueC4geC4guC4uOC4mSDguJMg4Lio4Liy4Lil4Lir4Lil4Lin4LiHCivguKXguLnguIHguILguLjguJkg4LiTIOC4qOC4suC4peC4sgor4Lil4Li54LiB4LiC4Li44LiZ4Lie4Lil4Lit4Lii4Lie4Lii4Lix4LiBCivguKXguLnguIHguYDguILguKIKK+C4peC4ueC4geC5gOC4guC4ouC4leC4suC4ouC5geC4oeC5iOC4ouC4suC4ouC4iuC4seC4geC4m+C4o+C4gQor4Lil4Li54LiB4LmA4LiC4Lii4LiV4Liy4Lii4LmB4Lih4LmI4Lii4Liy4Lii4LiX4Liz4Lio4LieCivguKXguLnguIHguITguKPguK3guIEKK+C4peC4ueC4geC4hOC4o+C4tuC5iOC4hwor4Lil4Li54LiB4LiE4Lil4Lix4LiBCivguKXguLnguIHguITguKfguLLguKEKK+C4peC4ueC4geC4hOC4rQor4Lil4Li54LiB4LiE4Lit4LiBCivguKXguLnguIHguITguLHguJkKK+C4peC4ueC4geC4hOC5ieC4sgor4Lil4Li54LiB4LiE4LizCivguKXguLnguIHguITguLTguJQKK+C4peC4ueC4geC5gOC4hOC4peC5ieC4sgor4Lil4Li54LiB4LiG4LmJ4Lit4LiHCivguKXguLnguIHguIjguYrguK3guIEKK+C4peC4ueC4geC4iOC5ieC4suC4hwor4Lil4Li54LiB4LmA4LiI4Li14LmK4Lii4LiaCivguKXguLnguIHguIrguYjguKfguIcKK+C4peC4ueC4geC4iuC5ieC4suC4hwor4Lil4Li54LiB4LiK4Li04LiUCivguKXguLnguIHguIrguLTguYnguJkKK+C4peC4ueC4geC5guC4i+C5iAor4Lil4Li54LiB4LiU4Lit4LiBCivguKXguLnguIHguJTguLTguYjguIcKK+C4peC4ueC4geC5guC4lOC4lAor4Lil4Li54LiB4LiV4Lix4LmJ4LiHCivguKXguLnguIHguJXguLjguYnguKEKK+C4peC4ueC4geC5gOC4leC5ieC4sgor4Lil4Li54LiB4LmA4LiV4LmL4LiyCivguKXguLnguIHguYHguJXguIEKK+C4peC4ueC4geC4luC5ieC4p+C4ogor4Lil4Li54LiB4LmA4LiW4Li34LmI4Lit4LiZCivguKXguLnguIHguYHguJbguKcKK+C4peC4ueC4geC4l+C4reC4ogor4Lil4Li54LiB4LiX4LmI4Liy4LiZ4Lir4Lil4Liy4LiZ4LmA4LiY4LitCivguKXguLnguIHguJfguLjguYjguIcKK+C4peC4ueC4geC5gOC4mOC4rQor4Lil4Li54LiB4LiZ4LmJ4Lit4LiHCivguKXguLnguIHguJnguLIKK+C4peC4ueC4geC4meC5ieC4swor4Lil4Li54LiB4LiZ4Li04Lih4Li04LiVCivguKXguLnguIHguJrguJcKK+C4peC4ueC4geC4muC4p+C4mgor4Lil4Li54LiB4Lia4LmJ4Liy4LiZCivguKXguLnguIHguJrguLLguKjguIHguYwKK+C4peC4ueC4geC4muC4tOC4lAor4Lil4Li54LiB4Lia4Li44LiN4LiY4Lij4Lij4LihCivguKXguLnguIHguYDguJrguLXguYnguKLguKcKK+C4peC4ueC4geC4m+C4o+C4sOC4hOC4mgor4Lil4Li54LiB4Lib4Lij4Liw4LiE4LizCivguKXguLnguIHguJvguKPguLDguITguLPguJzguLUKK+C4peC4ueC4geC4m+C4o+C4sOC4quC4oQor4Lil4Li54LiB4Lib4Lij4Liw4Liq4Lix4LiBCivguKXguLnguIHguJvguKPguLDguKvguKXguYjguLMKK+C4peC4ueC4geC4m+C4o+C4suC4ogor4Lil4Li54LiB4Lib4Lil4LiwCivguKXguLnguIHguJvguKXguLIKK+C4peC4ueC4geC4m+C4sOC4geC4mQor4Lil4Li54LiB4Lib4Lix4LiUCivguKXguLnguIHguJvguLIKK+C4peC4ueC4geC4m+C5iOC4sgor4Lil4Li54LiB4Lib4Li34LiZCivguKXguLnguIHguJvguLfguJnguYPguKvguI3guYgKK+C4peC4ueC4geC5geC4mwor4Lil4Li54LiB4LmC4Lib4LmI4LiHCivguKXguLnguIHguYLguJvguYjguIfguKrguKfguKPguKPguITguYwKK+C4peC4ueC4geC4nOC4quC4oQor4Lil4Li54LiB4Lic4Lix4LiB4LiK4Li1CivguKXguLnguIHguJzguLXguKXguLnguIHguITguJkKK+C4peC4ueC4geC4nOC4ueC5ieC4iuC4suC4ogor4Lil4Li54LiB4Lic4Li54LmJ4LiZ4LmJ4Lit4LiHCivguKXguLnguIHguJzguLnguYnguJ7guLXguYgKK+C4peC4ueC4geC4nOC4ueC5ieC4q+C4jeC4tOC4hwor4Lil4Li54LiB4LmE4Lic4LmICivguKXguLnguIHguJ3guLLguYHguJ3guJQKK+C4peC4ueC4geC5geC4neC4lAor4Lil4Li54LiB4Lie4Lij4Lin4LiZCivguKXguLnguIHguJ7guKPguLTguIEKK+C4peC4ueC4geC4nuC4peC4uQor4Lil4Li54LiB4Lie4Li14LmICivguKXguLnguIHguJ7guLXguYjguKXguLnguIHguJnguYnguK3guIcKK+C4peC4ueC4geC4n+C4seC4gQor4Lil4Li54LiB4Lif4Li54LiBCivguKXguLnguIHguYTguJ8KK+C4peC4ueC4geC4oeC5guC4q+C4leC4owor4Lil4Li54LiB4Lih4Liw4Lir4Lin4LiUCivguKXguLnguIHguKHguLLguJQKK+C4peC4ueC4geC4oeC4t+C4rQor4Lil4Li54LiB4LmC4Lih4LmICivguKXguLnguIHguYTguKHguYkKK+C4peC4ueC4geC5hOC4oeC5ieC4q+C4peC5iOC4meC5hOC4oeC5iOC5hOC4geC4peC4leC5ieC4mQor4Lil4Li54LiB4Lii4LitCivguKXguLnguIHguKLguYjguLLguIcKK+C4peC4ueC4geC4ouC4suC5gOC4mOC4rQor4Lil4Li54LiB4LmC4Lii4LiZCivguKXguLnguIHguKPguK3guIEKK+C4peC4ueC4geC4o+C4sOC4oeC4suC4qAor4Lil4Li54LiB4Lij4Lix4LiHCivguKXguLnguIHguKPguLjguYjguKIKK+C4peC4ueC4geC5gOC4o+C4t+C4rQor4Lil4Li54LiB4Lil4LihCivguKXguLnguIHguKXguYnguK0KK+C4peC4ueC4geC4peC5iOC4sgor4Lil4Li54LiB4LmA4Lil4LmI4LiZCivguKXguLnguIHguYDguKXguLXguYnguKLguIcKK+C4peC4ueC4geC5geC4peC5iOC4hwor4Lil4Li54LiB4LmC4Lil4LiBCivguKXguLnguIHguYTguKXguYgKK+C4peC4ueC4geC4p+C4seC4lAor4Lil4Li54LiB4Lio4Li04Lip4Lii4LmMCivguKXguLnguIHguKrguKHguKDguLLguKPguKvguKXguLLguJnguYDguIjguYnguLLguKfguLHguJQKK+C4peC4ueC4geC4quC4oeC4uOC4mQor4Lil4Li54LiB4Liq4Lin4Lij4Lij4LiE4LmMCivguKXguLnguIHguKrguKfguLLguJcKK+C4peC4ueC4geC4quC4sOC4muC5ieC4sgor4Lil4Li54LiB4Liq4Liw4LmD4Lig4LmJCivguKXguLnguIHguKrguLHguIfguIHguLDguKrguLUKK+C4peC4ueC4geC4quC4ueC4mgor4Lil4Li54LiB4LmA4Liq4Li34LitCivguKXguLnguIHguKvguJnguLXguYkKK+C4peC4ueC4geC4q+C4meC4uQor4Lil4Li54LiB4Lir4Lih4LiUCivguKXguLnguIHguKvguKHguYnguK0KK+C4peC4ueC4geC4q+C4oeC4suC4gQor4Lil4Li54LiB4Lir4Lih4Li54LmICivguKXguLnguIHguKvguKXguIcKK+C4peC4ueC4geC4q+C4peC4p+C4hwor4Lil4Li54LiB4Lir4Liy4LiaCivguKXguLnguIHguKvguLTguJkKK+C4peC4ueC4geC4q+C4tOC4meC4muC4lAor4Lil4Li54LiB4Lir4Li14LiaCivguKXguLnguIHguYDguKvguYfguJoKK+C4peC4ueC4geC5geC4qwor4Lil4Li54LiB4LmB4Lir4LiH4LmICivguKXguLnguIHguK3guKEKK+C4peC4ueC4geC5gOC4reC5h+C4mQor4Lil4Li54LiB4LmA4Lit4LmH4LilCivguKXguLnguILguLAKK+C4peC4ueC4leC4sgor4Lil4Li54LiV4Li04LiB4LiyCivguKXguLnguYjguJfguLLguIcKK+C4peC4ueC4l+C4teC5gOC4iuC4teC4ouC4oQor4Lil4Li54LiZ4LiwCivguKXguLnguJoKK+C4peC4ueC4muC4hOC4oQor4Lil4Li54Lia4LiE4Lil4LizCivguKXguLnguJrguJXguLHguKcKK+C4peC4ueC4muC5hOC4peC5iQor4Lil4Li54Lia4Lir4LiZ4LmJ4Liy4Lib4Liw4LiI4Lih4Li54LiBCivguKXguLnguYjguKvguKXguLXguYgKK+C5gOC4peC4gQor4LmA4Lil4LmH4LiBCivguYDguKXguYfguIHguJTguLIKK+C5gOC4peC5h+C4geC4meC5ieC4reC4ogor4LmA4Lil4LmH4LiB4Lie4Lij4Li04LiB4LiC4Li14LmJ4Lir4LiZ4Li5CivguYDguKXguIHguKfguLHguJQKK+C5gOC4peC4ggor4LmA4Lil4LiC4LiB4LiwCivguYDguKXguILguITguJPguLTguJUKK+C5gOC4peC4guC4iOC4s+C4meC4p+C4mQor4LmA4Lil4LiC4LiK4Li14LmJ4LiB4Liz4Lil4Lix4LiHCivguYDguKXguILguYLguJTguJQKK+C5gOC4peC4guC4meC4sAor4LmA4Lil4LiC4Lic4LiyCivguYDguKXguILguKLguLAKK+C5gOC4peC4guC4ouC4seC4meC4leC5jAor4LmA4Lil4LiC4Lil4Liz4LiU4Lix4LiaCivguYDguKXguILguKvguKHguLLguKIKK+C5gOC4peC4guC4sgor4LmA4Lil4LiC4Liy4LiY4Li04LiB4Liy4LijCivguYDguKXguILguLLguJnguLjguIHguLLguKMKK+C5gOC4peC5h+C4hwor4LmA4Lil4LmJ4LiHCivguYDguKXguYfguIfguKXguLHguITguJnguYwKK+C5gOC4peC5iOC4h+C4ruC4t+C5ieC4rQor4LmA4Lil4LmA4LiL4Lit4Lij4LmMCivguYDguKXguJHguJHguLgKK+C5gOC4peC4kwor4LmA4Lil4LiT4LiR4Li4CivguYDguKXguYfguJQKK+C5gOC4peC5h+C4lOC4peC4reC4lAor4LmA4Lil4LiVCivguYDguKXguJkKK+C5gOC4peC5h+C4mQor4LmA4Lil4LmI4LiZCivguYDguKXguYjguJnguIHguKUKK+C5gOC4peC5iOC4meC4geC4seC4muC5hOC4nwor4LmA4Lil4LmI4LiZ4LiC4Liy4Lii4LiC4Lit4LiHCivguYDguKXguYjguJnguITguLMKK+C5gOC4peC5iOC4meC4h+C4suC4mQor4LmA4Lil4LiZ4LiI4LiHCivguYDguKXguYjguJnguIrguLnguYkKK+C5gOC4peC5iOC4meC4leC4peC4gQor4LmA4Lil4LmI4LiZ4LiV4Lix4LinCivguYDguKXguYjguJnguYDguJrguLXguYnguKIKK+C5gOC4peC5iOC4meC4nuC4p+C4gQor4LmA4Lil4LmI4LiZ4Lie4Li04LmA4Lij4LiZ4LiX4Lij4LmMCivguYDguKXguYjguJnguYDguJ7guKXguIfguKLguLLguKcKK+C5gOC4peC5iOC4meC5gOC4nuC4t+C5iOC4reC4mQor4LmA4Lil4LmI4LiZ4LmB4Lij4LmI4LmB4Lib4Lij4LiY4Liy4LiV4Li4CivguYDguKXguYjguJnguKXguLTguYnguJkKK+C5gOC4peC4meC4quC5jAor4LmA4Lil4LiZ4Liq4LmM4LiV4Li14Lia4LmB4Liq4LiHCivguYDguKXguJnguKrguYzguJbguYjguLLguIfguYHguKrguIcKK+C5gOC4peC4meC4quC5jOC4meC4ueC4mQor4LmA4Lil4LmI4LiZ4Liq4Lin4Liy4LiXCivguYDguKXguJnguKrguYzguYDguKfguYnguLIKK+C5gOC4peC4meC4quC5jOC4quC4seC4oeC4nOC4seC4qgor4LmA4Lil4LmI4LiZ4Liq4Liz4LiZ4Lin4LiZCivguYDguKXguJnguKvguLDguKPguLUKK+C5gOC4peC5iOC4meC4q+C4seC4pwor4LmA4Lil4LmI4LiZ4Lir4Liy4LiHCivguYDguKXguYjguJnguKvguLnguYDguKXguYjguJnguJXguLIKK+C5gOC4peC5iOC4meC5gOC4reC4suC5gOC4luC4tOC4lOC5gOC4iOC5ieC4suC4peC5iOC4rQor4LmA4Lil4LmH4LiaCivguYDguKXguYfguJrguITguKPguLjguJEKK+C5gOC4peC5h+C4muC4hOC4p+C4suC4ogor4LmA4Lil4Lia4LiHCivguYDguKXguYfguJrguJnguLLguIcKK+C5gOC4peC5h+C4muC4oeC4t+C4reC4meC4suC4hwor4LmA4Lil4LmH4Lia4LmA4Lir4Lii4Li14LmI4Lii4LinCivguYDguKXguJstCivguYDguKXguJvguIHguKMKK+C5gOC4peC4m+C4meC5jAor4LmA4Lil4LmA4LibCivguYDguKXguYDguJ4KK+C5gOC4peC5gOC4nuC4peC4suC4lOC4nuC4suC4lAor4LmA4Lil4LmH4LihCivguYDguKXguYjguKEKK+C5gOC4peC5h+C4oeC4peC5iOC4sgor4LmA4Lil4LiiCivguYDguKXguKLguJXguLLguKHguYDguKXguKIKK+C5gOC4peC4ouC5gOC4luC4tOC4lAor4LmA4Lil4LinCivguYDguKXguKfguIcKK+C5gOC4peC4p+C4ueC5guC4peC4qgor4LmA4Lil4LioCivguYDguKXguKnguI/guLgKK+C5gOC4peC4qwor4LmA4Lil4LmI4Lir4LmMCivguYDguKXguYjguKvguYzguIHguKPguLDguYDguJfguYjguKvguYwKK+C5gOC4peC4q+C4ouC4sAor4LmA4Lil4Lir4Lil4Lix4LiHCivguYDguKXguKvguKXguLIKK+C5gOC4peC5iOC4q+C5jOC5gOC4q+C4peC4teC5iOC4ouC4oQor4LmA4Lil4Lir4LiwCivguYDguKXguK0KK+C5gOC4peC5iOC4rQor4LmA4Lil4Lit4Lih4Liy4LiZCivguYDguKXguYjguK3guKXguYjguLIKK+C5gOC4peC4reC4sAor4LmA4Lil4Lit4Liw4LmA4LiX4Lit4LiwCivguYDguKXguLAKK+C5gOC4peC4sOC5gOC4l+C4sAor4LmA4Lil4LiyCivguYDguKXguLLguYYKK+C5gOC4peC5iOC4sgor4LmA4Lil4LmJ4LiyCivguYDguKXguLLguIHguLHguKIKK+C5gOC4peC5iOC4suC5gOC4o+C4teC4ouC4mQor4LmA4Lil4LmI4Liy4Lil4Li34LitCivguYDguKXguYnguLLguYLguKXguKEKK+C5gOC4peC4suC4sAor4LmA4Lil4Li04LiBCivguYDguKXguLTguIHguKXguYnguKEKK+C5gOC4peC4tOC5iOC4geC4peC4seC5iOC4gQor4LmA4Lil4Li04LmJ4LiHCivguYDguKXguLTguJnguYDguKXguYjguK0KK+C5gOC4peC4tOC4qAor4LmA4Lil4Li14LiiCivguYDguKXguLXguKLguIcKK+C5gOC4peC4teC5iOC4ouC4hwor4LmA4Lil4Li14LmJ4Lii4LiHCivguYDguKXguLXguKLguIfguILguLLguKcKK+C5gOC4peC4teC5ieC4ouC4h+C5geC4guC4gQor4LmA4Lil4Li14LmJ4Lii4LiH4LiK4LmJ4Liy4LiH4LiB4Li04LiZ4LiC4Li14LmJ4LiK4LmJ4Liy4LiHCivguYDguKXguLXguYnguKLguIfguJTguLkKK+C5gOC4peC4teC5ieC4ouC4h+C4leC5ieC4reC4ogor4LmA4Lil4Li14LmJ4Lii4LiH4LmC4LiV4LmK4LiwCivguYDguKXguLXguYnguKLguIfguJvguLLguIHguYDguKXguLXguYnguKLguIfguJfguYnguK3guIcKK+C5gOC4peC4teC4ouC4h+C4nOC4sgor4LmA4Lil4Li14Lii4LiH4Lid4LmJ4Liy4LiiCivguYDguKXguLXguKLguIfguKHguLHguJkKK+C5gOC4peC4teC5ieC4ouC4h+C4o+C4seC4mgor4LmA4Lil4Li14LmJ4Lii4LiH4Lil4LiyCivguYDguKXguLXguYnguKLguIfguKXguLnguIHguYDguKrguLfguK3guKXguLnguIHguIjguKPguLDguYDguILguYkKK+C5gOC4peC4teC5ieC4ouC4h+C4quC5iOC4hwor4LmA4Lil4Li14Lii4LiZCivguYDguKXguLXguYjguKLguJkKK+C5gOC4peC4teC4ouC4meC5hOC4nwor4LmA4Lil4Li14Lii4LiaCivguYDguKXguLXguKLguJrguITguYjguLLguKIKK+C5gOC4peC4teC4ouC4muC5gOC4hOC4teC4ouC4hwor4LmA4Lil4Li14Lii4Lia4LmA4Lih4Li34Lit4LiHCivguYDguKXguLXguKLguKEKK+C5gOC4peC4teC5iOC4ouC4oQor4LmA4Lil4Li14Lii4LinCivguYDguKXguLXguYnguKLguKcKK+C5gOC4peC4teC5ieC4ouC4p+C4peC4lAor4LmA4Lil4Li34Lit4LiBCivguYDguKXguLfguK3guIHguJXguLHguYnguIcKK+C5gOC4peC4t+C4reC4geC4l+C4teC5iOC4o+C4seC4geC4oeC4seC4geC4l+C4teC5iOC4iuC4seC4hwor4LmA4Lil4Li34Lit4LiB4LiZ4Lix4LiB4Lih4Lix4LiB4LmE4LiU4LmJ4LmB4Lij4LmICivguYDguKXguLfguK3guIHguKrguKPguKMKK+C5gOC4peC4t+C4reC4hwor4LmA4Lil4Li34LmI4Lit4LiHCivguYDguKXguLfguYjguK3guIfguKXguLfguK0KK+C5gOC4peC4t+C4reC4lAor4LmA4Lil4Li34Lit4LiU4LiC4Li24LmJ4LiZ4Lir4LiZ4LmJ4LiyCivguYDguKXguLfguK3guJTguYDguILguYnguLLguJXguLIKK+C5gOC4peC4t+C4reC4lOC5gOC4meC4t+C5ieC4rQor4LmA4Lil4Li34Lit4LiU4LmA4LiZ4Li34LmJ4Lit4LmA4LiK4Li34LmJ4Lit4LmE4LiCCivguYDguKXguLfguK3guJTguYPguJnguK3guIEKK+C5gOC4peC4t+C4reC4lOC4neC4suC4lAor4LmA4Lil4Li34Lit4LiU4LmE4Lih4LmJCivguYDguKXguLfguK3guJTguYDguKLguYfguJkKK+C5gOC4peC4t+C4reC4lOC4o+C5ieC4reC4mQor4LmA4Lil4Li34Lit4LiU4Lil4LmJ4Liy4LiH4Lir4LiZ4LmJ4LiyCivguYDguKXguLfguK3guJTguK3guLjguYjguJkKK+C5gOC4peC4t+C4reC4mQor4LmA4Lil4Li34LmI4Lit4LiZCivguYDguKXguLfguYjguK3guJnguJfguLXguYgKK+C5gOC4peC4t+C5iOC4reC4meC5gOC4m+C4t+C5ieC4reC4mQor4LmA4Lil4Li34LmI4Lit4LiZ4Lil4Lit4LiiCivguYDguKXguLfguYjguK3guKEKK+C5gOC4peC4t+C5iOC4reC4oeC5g+C4qgor4LmA4Lil4Li34LmI4Lit4LiiCivguYDguKXguLfguYnguK3guKIKK+C5gOC4peC4t+C5ieC4reC4ouC4hOC4peC4suC4mQor4LmA4Lil4Li34LmJ4Lit4Lii4LmA4LiI4Li34LmJ4Lit4LiiCivguYDguKXguLfguYjguK3guKLguKXguYnguLIKK+C5geC4pQor4LmB4Lil4LmICivguYHguKXguYkKK+C5geC4peC4gQor4LmB4Lil4LmH4LiB4LmC4LiX4LiqCivguYHguKXguIHguYDguJvguKXguLXguYjguKLguJkKK+C5geC4peC4hwor4LmB4Lil4LmI4LiHCivguYHguKXguYnguIcKK+C5geC4peC4h+C4geC4tOC4meC4n+C4seC4mQor4LmB4Lil4LmI4LiH4Lie4Lij4Liw4Lij4Liy4LihCivguYHguKXguJkKK+C5geC4peC5iOC4mQor4LmB4Lil4LiZ4LiX4Liy4LiZ4Lix4LihCivguYHguKXguJoKK+C5geC4peC5ieC4pwor4LmB4Lil4LmJ4Lin4LiB4Lix4LiZCivguYHguKXguYnguKfguJTguYnguKfguKIKK+C5geC4peC5ieC4p+C5geC4leC5iAor4LmB4Lil4LmJ4Lin4LmE4LibCivguYHguKXguYnguKcuLi7guYDguKXguYjguLIKK+C5geC4peC5ieC4p+C5hiDguYDguKXguYjguLLguYYKK+C5geC4peC4sAor4LmB4Lil4Liw4LmA4Lil4LmH4LihCivguYHguKXguLDguYDguKXguLXguKLguKEKK+C5guC4peC5iAor4LmC4Lil4LmJCivguYLguKXguIEKK+C5guC4peC4gS0KK+C5guC4peC4geC5gOC4iuC4qeC4kOC5jAor4LmC4Lil4LiB4LiY4Lij4Lij4LihCivguYLguKXguIHguJjguLLguJTguLIKK+C5guC4peC4geC4mOC4suC4leC4uAor4LmC4Lil4LiB4LiZ4Liy4LiWCivguYLguKXguIHguJrguLLguKUKK+C5guC4peC4geC4ouC5jAor4LmC4Lil4LiB4Lii4LiwCivguYLguKXguIHguKfguLHguIrguIrguLAKK+C5guC4peC4geC4p+C4tOC4l+C4uQor4LmC4Lil4LiB4Liq4LiW4Li04LiV4Li0CivguYLguKXguIHguK3guLjguJTguKMKK+C5guC4peC4geC4seC4leC4luC4iOC4o+C4tOC4ouC4sgor4LmC4Lil4LiB4Lix4LiZ4LiV4Lij4LmMCivguYLguKXguIHguLHguKIKK+C5guC4peC4geC4sgor4LmC4Lil4LiB4Liy4LiY4Li04Lia4LiU4Li1CivguYLguKXguIHguLLguJjguLTguJvguYTguJXguKIKK+C5guC4peC4geC4suC4meC4uOC4p+C4seC4leC4owor4LmC4Lil4LiB4Liy4Lig4Li04Lin4Lix4LiV4LiZ4LmMCivguYLguKXguIHguLLguKHguLTguKoKK+C5guC4peC4geC4suC4ouC4seC4lQor4LmC4Lil4LiB4Liy4Lin4Li04LiZ4Liy4LioCivguYLguKXguIHguLTguKLguLAKK+C5guC4peC4geC4teC4ouC5jAor4LmC4Lil4LiB4Li14Lii4Lin4Lix4LiV4LijCivguYLguKXguIHguLjguJXguKPguJjguKPguKPguKEKK+C5guC4peC4geC4uOC4leC4o+C4sAor4LmC4Lil4LmA4LiB4LioCivguYLguKXguIcKK+C5guC4peC5iOC4hwor4LmC4Lil4LmJ4LiHCivguYLguKXguYnguIfguYLguJXguYnguIcKK+C5guC4peC5iOC4h+C5guC4luC4hwor4LmC4Lil4LiI4LiZ4LiwCivguYLguKXguJPguLAKK+C5guC4peC4lAor4LmC4Lil4LiU4LmA4LiV4LmJ4LiZCivguYLguKXguJTguJfguLDguJnguIcKK+C5guC4peC4lOC5guC4nOC4mQor4LmC4Lil4LiU4LmB4Lil4LmI4LiZCivguYLguKXguYjguJXguLTguYrguJkKK+C5guC4peC5guC4lQor4LmC4Lil4LiXCivguYLguKXguJkKK+C5guC4peC5ieC4mQor4LmC4Lil4Lib4LiwCivguYLguKXguKAKK+C5guC4peC4oOC5guC4oeC5guC4l+C4quC4seC4mQor4LmC4Lil4LihCivguYLguKXguKHguIrguLLguJXguLQKK+C5guC4peC4oeC5gOC4peC5ieC4sgor4LmC4Lil4Lih4LiwCivguYLguKXguKHguLIKK+C5guC4peC4pQor4LmC4Lil4Lil4Li44LibCivguYLguKXguYDguKUKK+C5guC4peC5ieC5gOC4peC5iQor4LmC4Lil4LmC4LilCivguYLguKXguYLguKXguYkKK+C5guC4peC4qy0KK+C5guC4peC4q+C4geC4uOC4oeC4oOC4tQor4LmC4Lil4Lir4LiwCivguYLguKXguKvguLDguYDguIjguLfguK0KK+C5guC4peC4q+C4seC4igor4LmC4Lil4Lir4Li04LiVCivguYTguKXguYgKK+C5hOC4peC5iQor4LmE4Lil4LmI4LiK4LmJ4Liy4LiHCivguYTguKXguYjguJfguLXguYjguJfguLPguKfguLHguIcKK+C5hOC4peC5iOC4meC5ieC4swor4LmE4Lil4LmI4LmA4Lia4Li14LmJ4LiiCivguYTguKXguKIKK+C5hOC4peC4peC4sgor4LmE4Lil4LmI4Lil4Li54LiB4LiG4LmJ4Lit4LiHCivguYTguKXguYDguKXguKIKK+C5hOC4peC5iOC5gOC4peC4teC5iOC4ogor4LmE4Lil4LmI4LmA4Lil4Li14Lii4LiHCivguYTguKXguYTguKXguYkKK+C5hOC4peC5iOC4reC4reC4gQor4LimCivguKbguYUKK+C4puC5heC4iuC4sgor4Lim4LmF4Liq4Liy4LiiCivguKcKK+C4p+C4gQor4Lin4LiB4LiwCivguKfguIHguLjguKUKK+C4p+C4hwor4Lin4LiH4LiB4LmMCivguKfguIfguIHguJUKK+C4p+C4h+C4geC4mgor4Lin4LiH4LiB4Lil4LihCivguKfguIfguIHguLLguKMKK+C4p+C4h+C5gOC4h+C4tOC4mQor4Lin4LiH4LiI4LijCivguKfguIfguIjguKPguJvguLTguJQKK+C4p+C4h+C4iOC4o+C5gOC4m+C4tOC4lAor4Lin4LiH4LmA4LiU4Li34Lit4LiZCivguKfguIfguJnguK3guIEKK+C4p+C4h+C5g+C4mQor4Lin4LiH4Lie4Liy4LiUCivguKfguIfguKPguLUKK+C4p+C4h+C5gOC4peC5h+C4mgor4Lin4LiH4Lin4Lix4LiHCivguKfguIfguYDguKfguLXguKLguJkKK+C4p+C4h+C4qC0KK+C4p+C4h+C4qOC5jAor4Lin4LiH4Lio4LiB4LijCivguKfguIfguKjguYzguKfguLLguJkKK+C4p+C4h+C4qOC4sgor4Lin4LiH4Lio4Liy4LiE4LiT4Liy4LiN4Liy4LiV4Li0CivguKfguIfguKnguYwKK+C4p+C4h+C5geC4q+C4p+C4mQor4Lin4LiI4LiZ4LiwCivguKfguIjguLAKK+C4p+C4iOC4sgor4Lin4LiI4Li1CivguKfguIjguLXguIHguKPguKPguKEKK+C4p+C4iOC4teC5gOC4oOC4lwor4Lin4LiK4LiwCivguKfguIrguLTguKMtCivguKfguIrguLTguKPguJvguLLguJPguLUKK+C4p+C4iuC4tOC4o+C4q+C4seC4leC4luC5jAor4Lin4LiK4Li04Lij4LiwCivguKfguIrguLTguKPguLLguKfguLjguJgKK+C4p+C4j+C4sAor4Lin4LiP4Liy4LiB4Liy4LijCivguKfguI/guLjguKHguLAKK+C4p+C4ky0KK+C4p+C4k+C4muC4seC4leC4owor4Lin4LiT4Lie4Lix4LiZ4LiY4LiZ4LmMCivguKfguJPguLAKK+C4p+C4k+C4tOC4igor4Lin4LiT4Li04LiK4LiK4LiyCivguKfguJPguLTguIrguIrguLLguIHguKMKK+C4p+C4k+C4tOC4iuC4ouC5jAor4Lin4LiT4Li04LiK4Lii4LiyCivguKfguJPguLTguJ7guIEKK+C4p+C4lOC4tQor4Lin4LiVLQor4Lin4LiV4LiwCivguKfguJfguJnguLAKK+C4p+C4l+C4sAor4Lin4LiX4Lix4LiN4LiN4Li44LiV4LiyCivguKfguJfguLHguI3guI3guLkKK+C4p+C4l+C4suC4meC4tOC4oi0KK+C4p+C4mC0KK+C4p+C4mOC4gS0KK+C4p+C4mOC4uOC4geC4sgor4Lin4LiY4Li5CivguKfguJkKK+C4p+C4meC4iOC4owor4Lin4LiZ4LiI4Lij4LiBCivguKfguJnguKDguLkKK+C4p+C4meC4oOC4ueC4oeC4tAor4Lin4LiZ4LmA4Lin4Li14Lii4LiZCivguKfguJnguKjguLLguKrguJXguKPguYwKK+C4p+C4meC4quC4k+C4keC5jAor4Lin4LiZ4Liq4Lix4LiT4LiR4LmMCivguKfguJnguK3guLjguJfguKLguLLguJkKK+C4p+C4meC4seC4m+C4leC4tAor4Lin4LiZ4Lix4LiqCivguKfguJnguLHguKotCivguKfguJnguLHguKrguJrguJTguLUKK+C4p+C4meC4sgor4Lin4LiZ4Liy4LiU4Lit4LiZCivguKfguJnguLLguJnguJXguYwKK+C4p+C4meC4suC4peC4seC4ogor4Lin4LiZ4Liy4Lil4Li1CivguKfguJnguLLguKfguLLguKoKK+C4p+C4meC4suC4qOC4o+C4oQor4Lin4LiZ4Liy4Liq4LiT4LiR4LmMCivguKfguJnguLLguKrguLHguJPguJHguYwKK+C4p+C4meC4tOC4lOC4sgor4Lin4LiZ4Li04Lie4LiBCivguKfguYDguJnguIjguKMKK+C4p+C5guC4meC4l+C4ouC4suC4mQor4Lin4Lib4LiZ4LiwCivguKfguJvguLgKK+C4p+C4ouC4seC4hOC4huC5jAor4Lin4Lii4Lix4LiN4LiK4LiZ4LiwCivguKfguKLguLHguKHguKvguLAKK+C4p+C4ouC4seC4quC4ouC5jAor4Lin4Lii4Liy4LiB4Lij4LiT4LmMCivguKfguKLguLLguIbguKPguYwKK+C4p+C4ouC4suC4mOC4tAor4Lin4Lii4Liy4LihCivguKfguKLguLLguKLguLLguKEKK+C4p+C4oy0KK+C4p+C4o+C4h+C4hOC5jAor4Lin4Lij4LiT4LiwCivguKfguKPguJTguJnguLkKK+C4p+C4o+C4lwor4Lin4Lij4LiX4Liy4LiZCivguKfguKPguKHguKvguLLguKfguLTguKvguLLguKMKK+C4p+C4o+C4o+C4hAor4Lin4Lij4Lij4LiE4Lii4LmMCivguKfguKPguKPguIoKK+C4p+C4o+C4o+C4iuC4ouC5jAor4Lin4Lij4Lij4LiTLQor4Lin4Lij4Lij4LiT4LiB4Lij4Lij4LihCivguKfguKPguKPguJPguITguJTguLUKK+C4p+C4o+C4o+C4k+C4meC4sgor4Lin4Lij4Lij4LiT4Lie4Lik4LiV4Li0CivguKfguKPguKPguJPguKLguLjguIHguJXguYwKK+C4p+C4o+C4o+C4k+C4ouC4uOC4lQor4Lin4Lij4Lij4LiT4Lio4Li04Lil4Lib4LmMCivguKfguKPguKPguJPguLAKK+C4p+C4o+C4o+C4k+C4tuC4gQor4Lin4Lij4Lij4LiY4LiBCivguKfguKPguKPguJjguJnguLAKK+C4p+C4o+C4o+C4qQor4Lin4Lij4Lij4Lip4LiyCivguKfguKPguKfguLTguKvguLLguKMKK+C4p+C4o+C4seC4jeC4jeC4uQor4Lin4Lij4Liy4LiB4LiwCivguKfguKPguLLguIfguITguJPguLIKK+C4p+C4o+C4suC4q+C5jAor4Lin4Lij4Liy4Lir4LiwCivguKfguKPguLjguJMKK+C4p+C4o+C4uOC4leC4lOC4oQor4Lin4Lij4Li44LiV4Lih4LiwCivguKfguKPguLnguJYKK+C4p+C5guC4o+C4lOC4oQor4Lin4LmC4Lij4LiV4Lih4LiwCivguKfguKTguIEKK+C4p+C4pOC4qeC4oAor4Lin4Lik4Lip4LilCivguKfguKXguLHguIoKK+C4p+C4peC4seC4jeC4iuC5jAor4Lin4Lil4Lix4LiN4LiK4LiZ4LmMCivguKfguKXguLHguKIKK+C4p+C4peC4suC4q+C4gQor4Lin4Lil4Li1CivguKfguKjguIQKK+C4p+C4qOC4sAor4Lin4Lio4Li04LiZCivguKfguKrguJnguLAKK+C4p+C4quC4oOC4sAor4Lin4Liq4Lil4LiwCivguKfguKrguKXguLUKK+C4p+C4quC4p+C4seC4lOC4lOC4tQor4Lin4Liq4Lin4Lix4LiV4LiV4Li1CivguKfguKrguLAKK+C4p+C4quC4seC4meC4lS0KK+C4p+C4quC4seC4meC4leC5jAor4Lin4Liq4Lix4LiZ4LiV4LiU4Li04Lil4LiBCivguKfguKrguLHguJnguJXguKfguLTguKnguLjguKfguLHguJUKK+C4p+C4quC4sgor4Lin4Liq4Li1CivguKfguKrguLgKK+C4p+C4quC4uOC4mOC4sgor4Lin4Liq4Li44LiZ4LiY4Lij4LiyCivguKfguKrguLjguKHguJTguLUKK+C4p+C4q+C4sAor4Lin4Lir4LiyCivguKfguK0KK+C4p+C4reC4gQor4Lin4Lit4LiB4LmB4Lin4LiBCivguKfguYjguK3guIcKK+C4p+C5iOC4reC4h+C5hOC4pwor4Lin4Lit4LiUCivguKfguK3guJTguKfguLLguKIKK+C4p+C4reC4mQor4Lin4LmI4Lit4LiZCivguKfguK3guKXguYDguKXguKLguYzguJrguK3guKUKK+C4p+C4reC5geC4pwor4Lin4LiwCivguKfguLHguIEKK+C4p+C4seC4geC4geC4sAor4Lin4Lix4LiECivguKfguLHguITguITguLTguKIKK+C4p+C4seC4hOC4hOC4teC4ouC5jAor4Lin4Lix4LiE4LiE4Li4CivguKfguLHguITguITguLjguKfguLHguJcKK+C4p+C4seC4hOC4i+C4teC4mQor4Lin4Lix4LiHCivguKfguLHguIfguIHguYwKK+C4p+C4seC4h+C4iuC4sgor4Lin4Lix4LiH4LiK4LmJ4Liy4LiHCivguKfguLHguIfguKfguJkKK+C4p+C4seC4h+C5gOC4p+C4hwor4Lin4Lix4LiH4Lio4LiwCivguKfguLHguIfguKrguLAKK+C4p+C4seC4h+C4q+C4meC5ieC4sgor4Lin4Lix4LiH4Lir4Lil4Lin4LiHCivguKfguLHguIfguKvguKXguLHguIcKK+C4p+C4seC4iC0KK+C4p+C4seC4iOC4geC4uOC4juC4tQor4Lin4Lix4LiI4LiI4LiwCivguKfguLHguIjguInguYwKK+C4p+C4seC4iOC4ieC4gQor4Lin4Lix4LiI4LiJ4Lil4LiwCivguKfguLHguIjguJnguYwKK+C4p+C4seC4iOC4oeC4o+C4o+C4hAor4Lin4Lix4LiKCivguKfguLHguIotCivguKfguLHguIrguIrguLAKK+C4p+C4seC4iuC4jOC5jAor4Lin4Lix4LiK4Lie4Li34LiKCivguKfguLHguIrguKMtCivguKfguLHguIrguKPguJjguLLguJXguLjguKHguJPguJHguKUKK+C4p+C4seC4iuC4o+C4m+C4suC4k+C4tQor4Lin4Lix4LiK4Lij4Lii4Liy4LiZCivguKfguLHguIrguKPguK3guLLguKrguJnguYwKK+C4p+C4seC4iuC4o+C4sAor4Lin4Lix4LiK4Lij4Liy4Liq4LiZ4LmMCivguKfguLHguIrguKPguLTguJnguJfguKPguYwKK+C4p+C4seC4iuC4o+C4tQor4Lin4Lix4LiK4LmA4Lij4LiZ4LiX4Lij4LmMCivguKfguLHguI3guIjguIEKK+C4p+C4seC4jeC4iOC4meC4sAor4Lin4Lix4LiN4LiM4LmMCivguKfguLHguI8tCivguKfguLHguI/guIHguLAKK+C4p+C4seC4j+C4iOC4seC4geC4owor4Lin4Lix4LiP4LiP4LiwCivguKfguLHguI/guI/guLQKK+C4p+C4seC4j+C4l+C4uOC4geC4guC5jAor4Lin4Lix4LiP4Liq4LiH4Liq4Liy4LijCivguKfguLHguJLguIHguLAKK+C4p+C4seC4kuC4geC4tQor4Lin4Lix4LiS4LiZLQor4Lin4Lix4LiS4LiZ4LiY4Lij4Lij4LihCivguKfguLHguJLguJnguLAKK+C4p+C4seC4kuC4meC4sgor4Lin4Lix4LiTCivguKfguLHguJMtCivguKfguLHguJPguI/guYwKK+C4p+C4seC4k+C4k+C4sAor4Lin4Lix4LiT4LiZ4LiyCivguKfguLHguJPguYLguKPguIQKK+C4p+C4seC4lAor4Lin4Lix4LiU4LmB4LiU4LiUCivguKfguLHguJTguJzguKUKK+C4p+C4seC4lOC4nuC4t+C5ieC4mQor4Lin4Lix4LiU4Lij4Lit4Lii4LiV4Li14LiZCivguKfguLHguJTguKPguK3guKLguYDguJfguYnguLIKK+C4p+C4seC4lOC4o+C4suC4qeC4juC4o+C5jAor4Lin4Lix4LiU4Lin4LiyCivguKfguLHguJTguKfguLLguK3guLLguKPguLLguKEKK+C4p+C4seC4lOC4q+C4peC4p+C4hwor4Lin4Lix4LiU4LmA4Lir4Lin4Li14LmI4Lii4LiHCivguKfguLHguJUKK+C4p+C4seC4leC4leC5jAor4Lin4Lix4LiV4LiV4LiyCivguKfguLHguJXguJbguYwKK+C4p+C4seC4leC4luC4suC4oOC4o+C4k+C5jAor4Lin4Lix4LiV4LiW4Liy4Lil4Lix4LiH4LiB4Liy4LijCivguKfguLHguJXguJbguLgKK+C4p+C4seC4leC4luC4uOC4lOC4tOC4mgor4Lin4Lix4LiV4LiW4Li44LiZ4Li04Lii4LihCivguKfguLHguJXguJbguLjguKfguLTguKrguLHguKIKK+C4p+C4seC4leC4meC4sAor4Lin4Lix4LiV4LijCivguKfguLHguJXguKMtCivguKfguLHguJXguKPguJvguI/guLTguJrguLHguJXguLQKK+C4p+C4seC4leC4quC4lOC4owor4Lin4Lix4LiV4Liq4LiwCivguKfguLHguJXguLQKK+C4p+C4seC4l+C4meC5jAor4Lin4Lix4LiZCivguKfguLHguJnguYLguIHguJkKK+C4p+C4seC4meC5geC4guC5h+C4hwor4Lin4Lix4LiZ4LiE4Lij4Li5CivguKfguLHguJnguIjguKEKK+C4p+C4seC4meC4lOC4seC4mgor4Lin4Lix4LiZ4LiU4Li14LiE4Li34LiZ4LiU4Li1CivguKfguLHguJnguJXguYwKK+C4p+C4seC4meC4leC4seC4pwor4Lin4Lix4LiZ4LmA4LiW4Lil4Li04LiH4Lio4LiBCivguKfguLHguJnguJfguJktCivguKfguLHguJnguJfguJnguLIKK+C4p+C4seC4meC4l+C4meC4suC4geC4suC4owor4Lin4Lix4LiZ4LiX4LiZ4Li14Lii4LmMCivguKfguLHguJnguJfguKItCivguKfguLHguJnguJfguKLguKvguLHguJXguJbguYwKK+C4p+C4seC4meC4l+C4ouC4suC4p+C4uOC4mAor4Lin4Lix4LiZ4LiX4LiyCivguKfguLHguJnguJfguLQKK+C4p+C4seC4meC4meC4tOC4nuC4gQor4Lin4Lix4LiZ4LmA4LiZ4LiyCivguKfguLHguJnguJ7guKPguLAKK+C4p+C4seC4meC4nuC4o+C4sOC5hOC4oeC5iOC4oeC4teC4q+C4meC5gOC4lOC4teC4ouC4pwor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNCivguKfguLHguJnguJ/guLkKK+C4p+C4seC4meC4ouC4seC4h+C4hOC5iOC4swor4Lin4Lix4LiZ4Lil4Lit4LiiCivguKfguLHguJnguYHguKXguYnguKfguKfguLHguJnguYDguKXguYjguLIKK+C4p+C4seC4meC4quC4uOC4geC4lOC4tOC4mgor4Lin4Lix4LiZ4Lit4Li44LmC4Lia4Liq4LiWCivguKfguLHguJoKK+C4p+C4seC4muC5hgor4Lin4Lix4Lia4Lin4Liy4LiaCivguKfguLHguJrguKfguLLguKEKK+C4p+C4seC4muC5geC4p+C4mgor4Lin4Lix4Lia4LmB4Lin4LihCivguKfguLHguJrguYYg4Lir4Lin4Liz4LmGCivguKfguLHguJvguJvguLAKK+C4p+C4seC4oeC4oeC4tOC4gQor4Lin4Lix4LiiCivguKfguLHguKItCivguKfguLHguKLguKPguLjguYjguJkKK+C4p+C4seC4ouC4p+C4uOC4kuC4tAor4Lin4Lix4Lil4LiB4LmMCivguKfguLHguKXguITguLgKK+C4p+C4seC4peC4ouC5jAor4Lin4Lix4Lil4Lil4LigCivguKfguLHguKXguKXguLUKK+C4p+C4seC4pwor4Lin4Lix4Lin4LmD4LiE4Lij4LmA4LiC4LmJ4Liy4LiE4Lit4LiB4LiE4LiZ4LiZ4Lix4LmJ4LiZCivguKfguLHguKfguJXguLHguKfguJzguLnguYkKK+C4p+C4seC4p+C4leC4seC4p+C5gOC4oeC4teC4ogor4Lin4Lix4Lin4LiX4Liw4LmA4LilCivguKfguLHguKfguJ7guLHguJnguKvguKXguLHguIEKK+C4p+C4seC4p+C4peC4t+C4oeC4leC4teC4mQor4Lin4Lix4Lin4Liq4Lix4LiZ4Lir4Lil4Lix4LiH4Lir4Lin4LiwCivguKfguLHguKfguKvguLLguKLguKXguYnguK3guKHguITguK3guIEKK+C4p+C4seC4qi0KK+C4p+C4seC4quC4hOC4k+C4meC4sgor4Lin4Lix4Liq4LiU4Li4CivguKfguLHguKrguJXguKPguYwKK+C4p+C4seC4quC4meC5jAor4Lin4Lix4Liq4LiZ4LiwCivguKfguLHguKrguKrguLAKK+C4p+C4seC4quC4quC4suC4meC4sAor4Lin4Lix4Liq4LmC4Liq4LiX4LiBCivguKfguLIKK+C4p+C5iOC4sgor4Lin4LmJ4LiyCivguKfguLLguIEKK+C4p+C5ieC4suC4gQor4Lin4Liy4LiB4LiI4Li04Lij4Lie4Lix4Liq4LiV4Lij4LmMCivguKfguLLguIHguKItCivguKfguLLguIHguKLguKrguLHguKHguJ7guLHguJnguJjguYwKK+C4p+C4suC4geC4ouC4sAor4Lin4Liy4LiB4Lij4LiyCivguKfguYjguLLguIHguKXguYjguLLguKcKK+C4p+C4suC4geC4sAor4Lin4LmI4Liy4LiB4Liy4LijCivguKfguYjguLLguILguLLguJkKK+C4p+C5iOC4suC4hOC4p+C4suC4oQor4Lin4Liy4LiHCivguKfguYjguLLguIcKK+C4p+C5ieC4suC4hwor4Lin4Liy4LiH4LiB4LmJ4Liy4LihCivguKfguLLguIfguILguYnguK0KK+C4p+C4suC4h+C5hOC4guC5iAor4Lin4LmI4Liy4LiH4LiH4Liy4LiZCivguKfguLLguIfguYDguIfguLTguJkKK+C4p+C4suC4h+C5g+C4iAor4Lin4Liy4LiH4LiV4Lil4Liy4LiUCivguKfguLLguIfguJXguLHguKcKK+C4p+C4suC4h+C4leC4sgor4Lin4Liy4LiH4LmC4LiVCivguKfguLLguIfguJfguYjguLIKK+C4p+C4suC4h+C4m+C4uOC5iOC4oQor4Lin4Liy4LiH4LmA4Lie4Lil4Li04LiHCivguKfguLLguIfguKHguKfguKIKK+C4p+C4suC4h+C4oeC4suC4lAor4Lin4Liy4LiH4Lih4Li34LitCivguKfguLLguIfguKLguLIKK+C4p+C4suC4h+C4p+C4suC4ogor4Lin4LmI4Liy4LiH4LmA4Lin4LmJ4LiZCivguKfguYnguLLguIfguYDguKfguLTguYnguIcKK+C4p+C4suC4h+C4reC4s+C4meC4suC4iAor4Lin4LmI4Liy4LiH4LmI4Liy4LiiCivguKfguLLguIjguIEKK+C4p+C4suC4iOC4sgor4Lin4LmI4Liy4LiI4LmJ4Liy4LiHCivguKfguLLguIjguLLguYTguJvguKLguLAKK+C4p+C4suC4iOC4suC4pQor4Lin4Liy4LiK4LmA4Lib4Lii4LiwCivguKfguLLguI/guIHguLAKK+C4p+C4suC4k+C4tOC4igor4Lin4Liy4LiT4Li04LiK4LiB4LiwCivguKfguLLguJPguLTguIrguKLguYwKK+C4p+C4suC4k+C4tQor4Lin4Liy4LiUCivguKfguLLguJTguYDguILguLXguKLguJkKK+C4p+C4suC4lS0KK+C4p+C4suC4leC4m+C4suC4meC4sAor4Lin4Liy4LiV4Lig4Lix4LiiCivguKfguLLguJXguLAKK+C4p+C5iOC4suC4leC5iOC4suC4hwor4Lin4Liy4LiV4Liy4Lij4Liy4LiH4LmA4Lir4Lil4Li14LmI4Lii4LihCivguKfguYjguLLguYHguJXguYjguYDguILguLLguK3guLTguYDguKvguJnguLLguYDguJvguYfguJnguYDguK3guIcKK+C4p+C4suC4lwor4Lin4Liy4LiXLQor4Lin4Liy4LiX4LiBCivguKfguLLguJfguJkKK+C4p+C4suC4l+C4oi0KK+C4p+C4suC4l+C4ouC5jAor4Lin4Liy4LiX4Lii4LiB4LijCivguKfguLLguJfguKjguLLguKrguJXguKPguYwKK+C4p+C4suC4l+C4qOC4tOC4peC4m+C5jAor4Lin4Liy4LiX4Li04LiVCivguKfguLLguJfguLTguJkKK+C4p+C4suC4l+C4tQor4Lin4LmI4Liy4LiX4Li14LmICivguKfguLLguJkKK+C4p+C5iOC4suC4mQor4Lin4LmI4Liy4LiZ4LiB4Li14Lia4Lih4LmJ4LiyCivguKfguYjguLLguJnguIHguLXguJrguYHguKPguJQKK+C4p+C5iOC4suC4meC5gOC4hOC4o+C4t+C4rQor4Lin4Liy4LiZ4LiL4Li34LiZCivguKfguYjguLLguJnguJjguKPguJPguLXguKrguLLguKMKK+C4p+C5iOC4suC4meC4meC4suC4h+C4geC4p+C4seC4gQor4Lin4LmI4Liy4LiZ4LiZ4Liy4LiH4Lil4LmJ4Lit4LihCivguKfguYjguLLguJnguJnguYnguLMKK+C4p+C5iOC4suC4meC5gOC4nuC4iuC4o+C4q+C4tuC4hwor4Lin4LmI4Liy4LiZ4Lih4Lir4Liy4LmA4Lih4LiGCivguKfguYjguLLguJnguKHguLXguJTguKLguLHguJoKK+C4p+C4suC4meC4owor4Lin4Liy4LiZ4Lij4Li04LiZ4LiX4Lij4LmMCivguKfguYjguLLguJnguYDguKrguJnguYjguKvguYzguIjguLHguJnguJfguKPguYzguILguLLguKcKK+C4p+C5iOC4suC4meC5gOC4quC4meC5iOC4q+C5jOC4iOC4seC4meC4l+C4o+C5jOC5geC4lOC4hwor4Lin4LmI4Liy4LiZ4Lir4Liy4LiH4LiK4LmJ4Liy4LiHCivguKfguYjguLLguJnguK3guJnguKrguK3guJnguIfguYjguLLguKIKK+C4p+C4suC5gOC4meC5gOC4lOC4teC4ouC4oQor4Lin4Liy4LiaCivguKfguLLguJrguKvguKfguLLguKEKK+C4p+C4suC4m+C4sAor4Lin4Liy4Lib4Li04LiV4LiwCivguKfguLLguJvguLUKK+C4p+C4suC4oQor4Lin4Liy4Lih4LiZLQor4Lin4Liy4Lih4LiZ4Liy4Lin4LiV4Liy4LijCivguKfguLLguKHguYHguKfguKEKK+C4p+C4suC4oeC4sAor4Lin4Liy4Lih4Liy4LiI4Liy4LijCivguKfguLLguYLguKHguKMKK+C4p+C5iOC4suC5hOC4oeC5iOC5hOC4lOC5iQor4Lin4Liy4LiiCivguKfguYjguLLguKIKK+C4p+C5ieC4suC4ogor4Lin4Liy4Lii4LiK4LiZ4Lih4LmMCivguKfguLLguKLguIrguLXguKfguLTguJUKK+C4p+C5iOC4suC4ouC4leC4sgor4Lin4LmI4Liy4Lii4LiZ4LmJ4Liz4Lir4Liy4LiI4Lij4Liw4LmA4LiC4LmJCivguKfguLLguKLguJvguKPguLLguJMKK+C4p+C4suC4ouC4o+C5ieC4suC4ogor4Lin4Liy4Lii4Lin4Lit4LiUCivguKfguLLguKLguKrguLAKK+C4p+C4suC4ouC4quC4seC4h+C4guC4suC4owor4Lin4Liy4Lii4LiwCivguKfguYjguLLguKLguLLguIEKK+C4p+C4suC4ouC4suC4oeC4sAor4Lin4Liy4Lii4Li4CivguKfguLLguKLguLjguIHguLnguKUKK+C4p+C4suC4ouC4uOC4muC4uOC4leC4o+C4ouC4suC4leC4o+C4sgor4Lin4Liy4Lii4Li44Lig4Lix4LiB4Lip4LmMCivguKfguLLguYLguKIKK+C4p+C4suC5guC4ouC4mOC4suC4leC4uAor4Lin4Liy4LijCivguKfguLLguKPguJMtCivguKfguLLguKPguJPguIHguKMKK+C4p+C4suC4o+C4p+C4suC4o+C4tAor4Lin4Liy4Lij4Liq4Liy4LijCivguKfguLLguKPguKrguLLguKPguKjguLLguKrguJXguKPguYwKK+C4p+C4suC4o+C4sAor4Lin4Liy4Lij4Li0CivguKfguLLguKPguLTguIjguKMKK+C4p+C4suC4o+C4tOC4igor4Lin4Liy4Lij4Li04LiXCivguKfguLLguKPguLTguJjguKMKK+C4p+C4suC4o+C4tOC4nuC4tOC4meC4l+C4uAor4Lin4Liy4Lij4Li1CivguKfguLLguKPguLXguIoKK+C4p+C4suC4o+C4uOC4kwor4Lin4Liy4Lij4Li44LiT4Li1CivguKfguLLguKUKK+C4p+C4suC4pS0KK+C4p+C4suC4peC4geC4seC4oeC4nuC4pQor4Lin4Liy4Lil4LiY4Li0CivguKfguLLguKXguYzguKcKK+C4p+C4suC4peC4p+C4teC4iuC4meC4tQor4Lin4Liy4Lil4Li04LiB4LiyCivguKfguLLguKXguLjguIHguLIKK+C4p+C4suC4pwor4Lin4LmI4Liy4LinCivguKfguYjguLLguKfguJXguLTguJTguKXguKEKK+C4p+C4suC4p+C4p+C4seC4mgor4Lin4Liy4Lin4Lin4Liy4LihCivguKfguLLguKfguYHguKfguKcKK+C4p+C5iOC4suC4p+C5gOC4q+C4peC4tOC4hwor4Lin4LmI4Liy4Lin4Lit4LiZCivguKfguYnguLLguKfguYjguK3guJkKK+C4p+C5ieC4suC4p+C4uOC5iOC4mQor4Lin4Liy4Liq4LiZ4LiwCivguKfguLLguKrguJnguLIKK+C4p+C4suC4quC4ngor4Lin4Liy4Liq4LiwCivguKfguYjguLLguKrguLLguJTguYDguKrguLXguKLguYDguJfguYDguKrguLXguKIKK+C4p+C4suC4quC4tOC4mQor4Lin4Liy4Liq4Li1CivguKfguLLguKrguLjguIHguKPguLUKK+C4p+C4suC4quC4uOC4geC4tQor4Lin4Liy4Liq4Li44LmA4LiX4LieCivguKfguLLguKvguJnguLAKK+C4p+C4suC4q+C4sAor4Lin4Liy4Lir4Li04LiZ4Li1CivguKfguYnguLLguYDguKvguKfguYgKK+C4p+C4suC4rAor4Lin4Liy4LisLQor4Lin4Liy4Lis4Lih4Li04LiECivguKfguLQKK+C4p+C4tOC4geC4guC4seC4oeC4oOC5jAor4Lin4Li04LiB4LiC4Lix4Lih4Lig4LiZ4LiwCivguKfguLTguIHguYDguILguJsKK+C4p+C4tOC4geC4iOC4sAor4Lin4Li04LiB4Lij4LihCivguKfguLTguIHguKPguLHguKIKK+C4p+C4tOC4geC4o+C4suC4meC4leC5jAor4Lin4Li04LiB4Lik4LiVCivguKfguLTguIHguKTguJUtCivguKfguLTguIHguKTguJXguIHguLLguKPguJPguYwKK+C4p+C4tOC4geC4pOC4leC4geC4suC4pQor4Lin4Li04LiB4Lik4LiV4Li0CivguKfguLTguIHguKTguJXguLQtCivguKfguLTguIHguKTguJXguLTguIHguLLguKPguJPguYwKK+C4p+C4tOC4geC4pOC4leC4tOC4geC4suC4pQor4Lin4Li04LiB4LilCivguKfguLTguIHguKXguIjguKPguLTguJUKK+C4p+C4tOC4geC4quC4tOC4lQor4Lin4Li04LiB4Lix4LiVCivguKfguLTguIHguLHguJXguLQKK+C4p+C4tOC4geC4seC4leC4tOC4geC4suC4o+C4gQor4Lin4Li04LiB4Lix4LibCivguKfguLTguIHguLHguKIKK+C4p+C4tOC4geC4suC4owor4Lin4Li04LiB4Liy4LilCivguKfguLTguIHguLLguKUtCivguKfguLTguIHguLLguKXguYLguKDguIrguJnguYwKK+C4p+C4tOC4hOC4q+C4sAor4Lin4Li04LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKfguLTguIbguJnguLAKK+C4p+C4tOC4huC5gOC4meC4qAor4Lin4Li04LiG4LmA4LiZ4Lio4Lin4LijCivguKfguLTguIbguLLguJUKK+C4p+C4tOC4huC4suC4qgor4Lin4Li04LiHCivguKfguLTguYjguIcKK+C4p+C4tOC5iOC4h+C4geC4o+C4sOC5guC4lOC4lOC4guC5ieC4suC4oeC4o+C4seC5ieC4pwor4Lin4Li04LmI4LiH4LiC4LmJ4Liy4Lih4Lij4Lix4LmJ4LinCivguKfguLTguYjguIfguIfguLHguKcKK+C4p+C4tOC5iOC4h+C5gOC4leC5ieC4mQor4Lin4Li04LmI4LiH4LmA4Lib4Li14LmJ4Lii4LinCivguKfguLTguYjguIfguJzguKXguLHguJQKK+C4p+C4tOC5iOC4h+C4oeC5ieC4sgor4Lin4Li04LmI4LiH4Lij4Lit4LiBCivguKfguLTguYjguIfguKPguLDguYHguJrguIcKK+C4p+C4tOC5iOC4h+C4o+C4suC4pwor4Lin4Li04LiH4Lin4Lit4LiZCivguKfguLTguYjguIfguKfguLHguKcKK+C4p+C4tOC5iOC4h+C4p+C5iOC4suC4pwor4Lin4Li04LmI4LiH4Lin4Li04Lia4Liy4LiBCivguKfguLTguIfguYDguKfguLXguKLguJkKK+C4p+C4tOC5iOC4h+C4quC4suC4oeC4guC4sgor4Lin4Li04LiI4LiJ4Li04LiB4LiwCivguKfguLTguIjguKLguLjguJUKK+C4p+C4tOC4iOC4o+C4k+C4sAor4Lin4Li04LiI4LilCivguKfguLTguIjguLHguIHguILguJPguYwKK+C4p+C4tOC4iOC4seC4geC4qeC4k+C5jAor4Lin4Li04LiI4Lix4LiiCivguKfguLTguIjguLLguKMKK+C4p+C4tOC4iOC4suC4o+C4ky0KK+C4p+C4tOC4iOC4suC4o+C4k+C5jAor4Lin4Li04LiI4Liy4Lij4LiT4LiN4Liy4LiTCivguKfguLTguIjguLQKK+C4p+C4tOC4iOC4tOC4geC4tOC4iOC4ieC4sgor4Lin4Li04LiI4Li04LiVCivguKfguLTguIjguLTguJXguKMKK+C4p+C4tOC4iOC4tOC4leC4o+C4nuC4tOC4quC4lOC4suC4owor4Lin4Li04LiI4Li04LiZCivguKfguLTguIjguLjguJMKK+C4p+C4tOC4iOC4uOC4o+C4kwor4Lin4Li04LiK4LiK4LiyCivguKfguLTguIrguIrguLgKK+C4p+C4tOC4iuC4iuC4uOC4lOC4sgor4Lin4Li04LiK4LiK4Li44LiV4LiyCivguKfguLTguIrguIrguLjguKXguJTguLIKK+C4p+C4tOC4iuC4jeC4sAor4Lin4Li04LiK4LiZCivguKfguLTguIrguJnguLUKK+C4p+C4tOC4iuC4oi0KK+C4p+C4tOC4iuC4seC4ogor4Lin4Li04LiK4LiyCivguKfguLTguIrguLLguIHguLLguKMKK+C4p+C4tOC4iuC4suC4iuC4teC4ngor4Lin4Li04LiK4Liy4LmC4LiXCivguKfguLTguIrguLLguJjguKMKK+C4p+C4tOC4iuC4suC4meC4meC4sAor4Lin4Li04LiK4Liy4LmA4Lit4LiBCivguKfguLTguIrguLTguJUKK+C4p+C4tOC5gOC4iuC4teC4ouC4owor4Lin4Li04LiN4LiN4Lix4LiV4LiV4Li0CivguKfguLTguI3guI3guLLguJMKK+C4p+C4tOC4jeC4jeC4suC4k+C4geC4l+C4o+C4seC4nuC4ouC5jAor4Lin4Li04LiN4LiN4Li5CivguKfguLTguI3guI3guLnguIrguJkKK+C4p+C4tOC4jeC4jeC4ueC4oOC4suC4ngor4Lin4Li04LiR4Li54Lij4Lii4LmMCivguKfguLTguJPguKvguLgKK+C4p+C4tOC4lAor4Lin4Li04LiU4Lie4Li34LmJ4LiZCivguKfguLTguJTguLHguKrguJTguLUKK+C4p+C4tOC4leC4gQor4Lin4Li04LiV4LiBLQor4Lin4Li04LiV4LiB4LiI4Lij4Li04LiVCivguKfguLTguJXguJbguLLguKMKK+C4p+C4tOC4leC4suC4oeC4tOC4mQor4Lin4Li04LiW4Li1CivguKfguLTguJfguJjguLAKK+C4p+C4tOC4l+C4oi0KK+C4p+C4tOC4l+C4ouC4kOC4suC4meC4sAor4Lin4Li04LiX4Lii4LiyCivguKfguLTguJfguKLguLLguIHguKMKK+C4p+C4tOC4l+C4ouC4suC4geC4pQor4Lin4Li04LiX4Lii4Liy4LmA4LiC4LiVCivguKfguLTguJfguKLguLLguITguKEKK+C4p+C4tOC4l+C4ouC4suC4hOC4suC4owor4Lin4Li04LiX4Lii4Liy4LiX4Liy4LiZCivguKfguLTguJfguKLguLLguJjguKMKK+C4p+C4tOC4l+C4ouC4suC4meC4tOC4nuC4meC4mOC5jAor4Lin4Li04LiX4Lii4Liy4Lil4Lix4LiiCivguKfguLTguJfguKLguLLguKjguLLguKrguJXguKPguYwKK+C4p+C4tOC4l+C4ouC4suC4qOC4suC4quC4leC4o+C5jOC4geC4suC4ouC4oOC4suC4ngor4Lin4Li04LiX4Lii4Liy4Lio4Liy4Liq4LiV4Lij4LmM4LiK4Li14Lin4Lig4Liy4LieCivguKfguLTguJfguKLguLLguKjguLLguKrguJXguKPguYzguYDguJfguITguYLguJnguYLguKXguKLguLXguYHguKXguLDguKrguLTguYjguIfguYHguKfguJTguKXguYnguK3guKEKK+C4p+C4tOC4l+C4ouC4suC4qOC4suC4quC4leC4o+C5jOC4m+C4o+C4sOC4ouC4uOC4geC4leC5jAor4Lin4Li04LiX4Lii4Li4CivguKfguLTguJfguKLguLjguJUKK+C4p+C4tOC4l+C4o+C4uOC4oeC4sAor4Lin4Li04LiX4Lin4Lix4LiqCivguKfguLTguJfguLHguJXguJbguLQKK+C4p+C4tOC4l+C4suC4o+C4k+C5jAor4Lin4Li04LiX4Liy4Lil4LiZ4LmMCivguKfguLTguJfguLTguJUKK+C4p+C4tOC4l+C4uQor4Lin4Li04LiX4Li54LijCivguKfguLTguYDguJfguKfguKkKK+C4p+C4tOC5gOC4l+C4qAor4Lin4Li04LmA4LiX4Lio4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMCivguKfguLTguYDguJfguYLguKjguJrguLLguKIKK+C4p+C4tOC4mAor4Lin4Li04LiY4Lin4LiyCivguKfguLTguJjguLIKK+C4p+C4tOC4mOC4suC4mQor4Lin4Li04LiY4Li1CivguKfguLTguJjguLjguKPguLAKK+C4p+C4tOC4mOC4uQor4Lin4Li04LiY4Li54Lib4LiZ4LiwCivguKfguLTguYjguJkKK+C4p+C4tOC4meC4oi0KK+C4p+C4tOC4meC4seC4meC4leC4uQor4Lin4Li04LiZ4Lix4LiiCivguKfguLTguJnguLHguKLguJjguKMKK+C4p+C4tOC4meC4suC4l+C4tQor4Lin4Li04LiZ4Liy4Lii4LiBCivguKfguLTguJnguLLguKgKK+C4p+C4tOC4meC4suC4qC0KK+C4p+C4tOC4meC4suC4qOC4geC4o+C4o+C4oQor4Lin4Li04LiZ4Liy4Lio4Lig4Lix4LiiCivguKfguLTguJnguLTguIgKK+C4p+C4tOC4meC4tOC4iOC4ieC4seC4ogor4Lin4Li04LiZ4Li04LiVCivguKfguLTguJnguLTguJrguLLguJUKK+C4p+C4tOC4meC4tOC4m+C4suC4leC4tOC4gQor4Lin4Li04LmA4LiZ4LiVCivguKfguLTguYLguJnguJfguIEKK+C4p+C4tOC4muC4seC4leC4tAor4Lin4Li04Lia4Liy4LiBCivguKfguLTguJrguLjguKUKK+C4p+C4tOC4muC4uOC4peC4ouC5jAor4Lin4Li04Lia4Li54LilCivguKfguLTguJrguLnguKXguKLguYwKK+C4p+C4tOC4m+C4geC4suC4owor4Lin4Li04Lib4LiP4Li04Liq4Liy4LijCivguKfguLTguJvguYLguKLguIQKK+C4p+C4tOC4m+C4o+C4sOC4geC4suC4owor4Lin4Li04Lib4Lij4Liw4LiV4Li04Liq4Liy4LijCivguKfguLTguJvguKPguLDguYLguKLguIQKK+C4p+C4tOC4m+C4o+C4sOC4peC4suC4mwor4Lin4Li04Lib4Lij4Liw4Lin4Liy4LiqCivguKfguLTguJvguKPguLTguJUKK+C4p+C4tOC4m+C4peC4suC4mwor4Lin4Li04Lib4Lil4Liy4LiqCivguKfguLTguJvguKfguLLguKoKK+C4p+C4tOC4m+C4seC4geC4qeC5jAor4Lin4Li04Lib4Lix4Liq4Liq4LiBCivguKfguLTguJvguLHguKrguKrguJnguLIKK+C4p+C4tOC4nuC4suC4geC4qeC5jAor4Lin4Li04Lie4Liy4LiB4Lip4LmM4Lin4Li04LiI4Liy4Lij4LiT4LmMCivguKfguLTguJ7guLTguJjguJfguLHguKjguJnguLIKK+C4p+C4tOC4nuC4uOC4mAor4Lin4Li04Lig4LinLQor4Lin4Li04Lig4Lin4LiV4Lix4LiT4Lir4LiyCivguKfguLTguKDguLHguIfguITguYwKK+C4p+C4tOC4oOC4seC4igor4Lin4Li04Lig4Lix4LiKLQor4Lin4Li04Lig4Lix4LiK4Lie4Lii4Liy4LiB4Lij4LiT4LmMCivguKfguLTguKDguLHguIrguKfguLLguJfguLUKK+C4p+C4tOC4oOC4seC4leC4leC4tAor4Lin4Li04Lig4LiyCivguKfguLTguKDguLLguIQKK+C4p+C4tOC4oOC4suC4igor4Lin4Li04Lig4Liy4LiU4LiyCivguKfguLTguKDguLLguKfguLUKK+C4p+C4tOC4oOC4suC4qQor4Lin4Li04Lig4Liy4LiqCivguKfguLTguKDguLkKK+C4p+C4tOC4oOC4ueC4qeC4k+C4sAor4Lin4Li04Lig4Li54Lip4LiyCivguKfguLTguKDguLnguKnguLTguJUKK+C4p+C4tOC5gOC4oOC4leC4geC5jAor4Lin4Li04LmA4Lig4LiX4LiB4LmMCivguKfguLTguKHguJkKK+C4p+C4tOC4oeC4pQor4Lin4Li04Lih4Lil4Lix4LiBCivguKfguLTguKHguKXguLLguIEKK+C4p+C4tOC4oeC4seC4h+C4quC4sgor4Lin4Li04Lih4Lix4LiV4Li0CivguKfguLTguKHguLLguJkKK+C4p+C4tOC4oeC4uOC4ggor4Lin4Li04Lih4Li44LiVCivguKfguLTguKHguLjguJXguJXguLQKK+C4p+C4tOC5gOC4oeC4peC4t+C4reC4hwor4Lin4Li04LmC4Lih4LiB4LiC4LmMCivguKfguLTguYDguKLguJkKK+C4p+C4tOC5guC4ouC4hAor4Lin4Li04LijLQor4Lin4Li04Lij4LiH4Lij4Lit4LiHCivguKfguLTguKPguJXguLAKK+C4p+C4tOC4o+C4oeC4k+C4sAor4Lin4Li04Lij4Lin4LiwCivguKfguLTguKPguLAKK+C4p+C4tOC4o+C4seC4h+C4o+C4reC4hwor4Lin4Li04Lij4Lix4LiKCivguKfguLTguKPguLHguJUKK+C4p+C4tOC4o+C4seC4leC4tAor4Lin4Li04Lij4Liy4LiE4LiwCivguKfguLTguKPguLLguKEKK+C4p+C4tOC4o+C4suC4p+C4sAor4Lin4Li04Lij4Li04Lii4Lig4Liy4LieCivguKfguLTguKPguLTguKLguLAKK+C4p+C4tOC4o+C4uOC4mAor4Lin4Li04Lij4Li44Lis4Lir4LmMCivguKfguLTguKPguLjguKzguKvguIEKK+C4p+C4tOC4o+C4ueC4mwor4Lin4Li04Lij4Li54Lib4Lix4LiB4Lip4LmMCivguKfguLTguYDguKPguJnguJfguKPguYwKK+C4p+C4tOC5guC4o+C4hAor4Lin4Li04LmC4Lij4LiICivguKfguLTguYLguKPguIjguJnguYwKK+C4p+C4tOC5guC4o+C4kgor4Lin4Li04LmC4Lij4LiYCivguKfguLTguYLguKPguJjguJnguYwKK+C4p+C4tOC4peC4oi0KK+C4p+C4tOC4peC4seC4meC4lOC4sgor4Lin4Li04Lil4Lix4LiiCivguKfguLTguKXguLLguJQKK+C4p+C4tOC4peC4suC4mwor4Lin4Li04Lil4Liy4Lin4Lix4LiT4Lii4LmMCivguKfguLTguKXguLLguKgKK+C4p+C4tOC4peC4suC4qgor4Lin4Li04Lil4Liy4Liq4Li04LiZ4Li1CivguKfguLTguKXguLTguJvguJTguLIKK+C4p+C4tOC5gOC4peC4mwor4Lin4Li04LmA4Lil4LibLQor4Lin4Li04LmA4Lil4Lib4LiZ4LiwCivguKfguLTguYLguKXguIEKK+C4p+C4tOC5guC4peC4geC4meC4sAor4Lin4Li04LmC4Lil4LiI4LiZ4LiwCivguKfguLTguYLguKXguKEKK+C4p+C4tOC5hOC4pQor4Lin4Li04LmE4Lil4Lin4Lij4Lij4LiTCivguKfguLTguKfguKPguJPguYwKK+C4p+C4tOC4p+C4o+C4o+C4mOC4meC5jAor4Lin4Li04Lin4Lij4LiwCivguKfguLTguKfguLHguI8KK+C4p+C4tOC4p+C4seC4kuC4mS0KK+C4p+C4tOC4p+C4seC4kuC4meC5jAor4Lin4Li04Lin4Lix4LiS4LiZ4Liy4LiB4Liy4LijCivguKfguLTguKfguLHguJkKK+C4p+C4tOC4p+C4suC4lwor4Lin4Li04Lin4Liy4LirLQor4Lin4Li04Lin4Liy4Lir4LmMCivguKfguLTguKfguLLguKvguLAKK+C4p+C4tOC4p+C4tOC4iAor4Lin4Li04Lin4Li04LiVCivguKfguLTguKfguLTguJgKK+C4p+C4tOC5gOC4p+C4gQor4Lin4Li04Lio4Lij4Li44LiVCivguKfguLTguKjguKctCivguKfguLTguKjguKfguIHguKMKK+C4p+C4tOC4qOC4p+C4geC4o+C4o+C4oQor4Lin4Li04Lio4Lin4LiB4Lij4Lij4Lih4Lio4Liy4Liq4LiV4Lij4LmMCivguKfguLTguKjguLHguKXguKLguYwKK+C4p+C4tOC4qOC4suC4gi0KK+C4p+C4tOC4qOC4suC4guC4muC4ueC4iuC4sgor4Lin4Li04Lio4Liy4LiC4LiwCivguKfguLTguKjguLLguILguLIKK+C4p+C4tOC4qOC4suC4h+C4hOC5jAor4Lin4Li04Lio4Liy4LilCivguKfguLTguKjguLTguKnguI/guYwKK+C4p+C4tOC4qOC4uOC4l+C4mOC5jAor4Lin4Li04Lio4Li44LiX4LiY4Li04LmMCivguKfguLTguYDguKjguKkKK+C4p+C4tOC5gOC4qOC4qeC4ky0KK+C4p+C4tOC5gOC4qOC4qeC4k+C5jAor4Lin4Li04LmA4Lio4Lip4LiT4LiB4Liy4Lij4LiBCivguKfguLTguKnguJPguLgKK+C4p+C4tOC4qeC4k+C4uOC4geC4o+C4o+C4oQor4Lin4Li04Lip4LiT4Li44LmC4Lil4LiBCivguKfguLTguKnguJPguLjguYDguKfguJcKK+C4p+C4tOC4qeC4mOC4owor4Lin4Li04Lip4Lix4LiB4LiV4LmMCivguKfguLTguKnguLHguKIKK+C4p+C4tOC4qeC4suC4kwor4Lin4Li04Lip4Li44Lin4Lix4LiVCivguKfguLTguKrguIHguLXguYkKK+C4p+C4tOC4quC4oS0KK+C4p+C4tOC4quC4oi0KK+C4p+C4tOC4quC4o+C4o+C4iuC4meC4teC4ouC5jAor4Lin4Li04Liq4Lik4LiVCivguKfguLTguKrguKrguLjguIHguKPguKPguKEKK+C4p+C4tOC4quC4seC4iuC4meC4sgor4Lin4Li04Liq4Lix4LiN4LiN4Li1CivguKfguLTguKrguLHguI3guI3guLXguYHguJ7guJfguKLguYwKK+C4p+C4tOC4quC4seC4jeC4jeC4teC4p+C4tOC4l+C4ouC4sgor4Lin4Li04Liq4Lix4LiiCivguKfguLTguKrguLLguIItCivguKfguLTguKrguLLguILguJrguLnguIrguLIKK+C4p+C4tOC4quC4suC4guC4sAor4Lin4Li04Liq4Liy4LiC4LiyCivguKfguLTguKrguLLguKHguLHguI0KK+C4p+C4tOC4quC4suC4oeC4seC4jeC4huC4suC4leC4geC4o+C4o+C4oQor4Lin4Li04Liq4Liy4Lih4Liy4LiZ4Lii4LiZ4Liy4LihCivguKfguLTguKrguLLguKMKK+C4p+C4tOC4quC4suC4o+C4lwor4Lin4Li04Liq4Liy4LilCivguKfguLTguKrguLLguKrguLAKK+C4p+C4tOC4quC4suC4q+C4geC4tOC4iAor4Lin4Li04Liq4Li04LiQCivguKfguLTguKrguLjguIfguITguLLguKHguKrguLXguKHguLIKK+C4p+C4tOC4quC4uOC4l+C4mOC5jAor4Lin4Li04Liq4Li44LiX4LiY4Li04LmMCivguKfguLTguKrguLnguJXguKMKK+C4p+C4tOC5gOC4quC4lwor4Lin4Li04Lir4LiECivguKfguLTguKvguIfguITguYwKK+C4p+C4tOC4q+C4peC4seC5iOC4mQor4Lin4Li04Lir4Liy4Lii4Liq4LiwCivguKfguLTguKvguLLguKMKK+C4p+C4tOC4q+C4suC4oy0KK+C4p+C4tOC4q+C4suC4o+C5geC4geC4peC4mgor4Lin4Li04Lir4Liy4Lij4LiE4LiUCivguKfguLTguKvguLLguKPguJfguLTguKgKK+C4p+C4tOC4q+C4suC4o+C4mOC4o+C4o+C4oQor4Lin4Li04Lir4Liy4Lij4Lii4Lit4LiUCivguKfguLTguKvguLLguKPguKvguKXguKfguIcKK+C4p+C4tOC4q+C4tOC4h+C4quC4sAor4Lin4Li04Lir4Li04LiH4Liq4LiyCivguKfguLTguYDguKvguKrguLIKK+C4p+C4tOC4rOC4seC4h+C4hOC5jAor4Lin4Li04Lis4Liy4LijCivguKfguLTguKzguLLguKPguYwKK+C4p+C4tQor4Lin4Li14LiI4Li0CivguKfguLXguIrguJnguLUKK+C4p+C4teC4k+C4sgor4Lin4Li14LmJ4LiUCivguKfguLXguJUtCivguKfguLXguKMtCivguKfguLXguKPguIHguKPguKPguKEKK+C4p+C4teC4o+C4iuC4mQor4Lin4Li14Lij4Lia4Li44Lij4Li44LipCivguKfguLXguKPguKrguJXguKPguLUKK+C4p+C4teC5iOC4p+C4seC4mQor4Lin4Li14LmI4LmB4Lin4LinCivguKfguLXguKrguLAKK+C4p+C4uOC5ieC4hwor4Lin4Li44LiQ4Li0CivguKfguLjguJIKK+C4p+C4uOC4kuC4tAor4Lin4Li44LiS4Li0LQor4Lin4Li44LiS4Li04Lia4Lix4LiV4LijCivguKfguLjguJLguLTguKrguKDguLIKK+C4p+C4uOC4kuC4tOC4quC4oeC4suC4iuC4tOC4gQor4Lin4Li44LiUCivguKfguLjguYjguJkKK+C4p+C4uOC5ieC4mQor4Lin4Li44LmJ4LiZ4LiK4LiyCivguKfguLjguYjguJnguYDguJvguYfguJnguIjguLjguKXguIHguJDguLTguJkKK+C4p+C4uOC5iOC4meC4p+C4suC4ogor4Lin4Li44LmJ4LiZ4LmA4Liq4LmJ4LiZCivguKfguLjguJoKK+C4p+C4uOC5ieC4ogor4Lin4Li44Lil4LmB4Lif4Lij4LihCivguKfguLnguYkKK+C4p+C4ueC4lOC4p+C4suC4lAor4Lin4Li54LiaCivguKfguLnguJrguKfguLLguJoKK+C4p+C4ueC5iOC4p+C4suC4oQor4LmA4Lin4LmJCivguYDguKfguIQKK+C5gOC4p+C4hOC4tOC4mQor4LmA4Lin4LiE4Li1CivguYDguKfguIgKK+C5gOC4p+C4iC0KK+C5gOC4p+C4iOC4geC4uOC4juC4tQor4LmA4Lin4LiI4Lih4Lij4Lij4LiECivguYDguKfguIoKK+C5gOC4p+C4ii0KK+C5gOC4p+C4iuC4geC4o+C4o+C4oQor4LmA4Lin4LiK4Lig4Lix4LiT4LiR4LmMCivguYDguKfguIrguKLguLHguJnguJXguYwKK+C5gOC4p+C4iuC4qOC4suC4quC4leC4o+C5jAor4LmA4Lin4LiQ4LiZ4LmMCivguYDguKfguJPguLAKK+C5gOC4p+C4k+C4tAor4LmA4Lin4LiT4Li04LiBCivguYDguKfguJPguLgKK+C5gOC4p+C4k+C4uOC4p+C4seC4mQor4LmA4Lin4LiV4LiZ4LmMCivguYDguKfguJXguKMKK+C5gOC4p+C4leC4suC4pQor4LmA4Lin4LiXCivguYDguKfguJctCivguYDguKfguJfguITguLkKK+C5gOC4p+C4l+C4meC4sgor4LmA4Lin4LiX4Lih4LiZ4LiV4Lij4LmMCivguYDguKfguJfguKLguYwKK+C5gOC4p+C4l+C4suC4h+C4hOC5jAor4LmA4Lin4LiX4Liy4LiH4LiE4Lio4Liy4Liq4LiV4Lij4LmMCivguYDguKfguJfguLLguJnguJXguYwKK+C5gOC4p+C4l+C4suC4meC4leC4sAor4LmA4Lin4LiX4Li0CivguYDguKfguJfguLUKK+C5gOC4p+C4mOC4sAor4LmA4Lin4LiZCivguYDguKfguYnguJkKK+C5gOC4p+C4meC4hOC4t+C4meC4reC4quC4seC4h+C4q+C4suC4o+C4tOC4oeC4l+C4o+C4seC4nuC4ouC5jAor4LmA4Lin4LmJ4LiZ4LmB4LiV4LmICivguYDguKfguJnguYTguJXguKIKK+C5gOC4p+C5hOC4meC4ogor4LmA4Lin4Lih4LiwCivguYDguKfguKHguLHguJUKK+C5gOC4p+C4oeC4seC4leC4tOC4gS0KK+C5gOC4p+C4oeC4suC4leC4tOC4gQor4LmA4Lin4LmJ4LiiCivguYDguKfguKMKK+C5gOC4p+C4o+C4oeC4k+C4tQor4LmA4Lin4Lij4Li1CivguYDguKfguYLguKPguIjguJnguYwKK+C5gOC4p+C4peC4sgor4LmA4Lin4LmA4Lil4LiZ4LiL4Li1CivguYDguKfguKfguLHguJMKK+C5gOC4p+C4p+C4seC4k+C4k+C4tOC4ouC4sAor4LmA4Lin4Lio4Lih4LmMCivguYDguKfguKjguKLguYwKK+C5gOC4p+C4qOC4ouC4sgor4LmA4Lin4Liq4LiZ4LmMCivguYDguKfguKrguKDguLkKK+C5gOC4p+C4quC4oeC5jAor4LmA4Lin4Liq4Lih4LiwCivguYDguKfguKrguKfguLHguJMKK+C5gOC4p+C4quC4quC4sAor4LmA4Lin4Liq4Liq4Lix4LiZ4LiU4LijCivguYDguKfguKrguKrguLjguIHguKPguKPguKEKK+C5gOC4p+C4quC4quC4uOC4p+C4seC4kwor4LmA4Lin4Liq4Liy4Lij4Lix4LiKCivguYDguKfguKrguLQKK+C5gOC4p+C4quC4tOC4ouC4sgor4LmA4Lin4Lir4LiZCivguYDguKfguKvguLAKK+C5gOC4p+C4q+C4seC4h+C4hOC5jAor4LmA4Lin4Lir4Lix4Lib4LiV4Li0CivguYDguKfguKvguLIKK+C5gOC4p+C4q+C4suC4ouC4qgor4LmA4Lin4Lir4Liy4LiqCivguYDguKfguKzguLgKK+C5gOC4p+C4rOC4uOC4geC4suC4owor4LmA4Lin4Lis4Li44Lij4Li04LiiCivguYDguKfguKzguLjguKfguLHguJkKK+C5gOC4p+C5iOC4rQor4LmA4Lin4LmJ4LiyCivguYDguKfguYnguLLguKfguK3guJkKK+C5gOC4p+C4tOC4gQor4LmA4Lin4Li04LmJ4LiHCivguYDguKfguLTguYnguIfguKfguYnguLLguIcKK+C5gOC4p+C4teC5iOC4ogor4LmA4Lin4Li14Lii4LiHCivguYDguKfguLXguKLguJkKK+C5gOC4p+C4teC4ouC4meC5gOC4l+C4teC4ouC4mQor4LmA4Lin4Li14Lii4LiZ4Lir4Lix4LinCivguYDguKfguLXguKLguKMKK+C5gOC4p+C4teC5iOC4ouC4pwor4LmB4Lin4LmJCivguYHguKfguIcKK+C5geC4p+C5ieC4hwor4LmB4Lin4LmJ4LiH4LiB4Lix4LiUCivguYHguKfguJQKK+C5geC4p+C4lOC4peC5ieC4reC4oQor4LmB4Lin4LiU4Lin4LiHCivguYHguKfguJXguKMKK+C5geC4p+C4mQor4LmB4Lin4LmI4LiZCivguYHguKfguYjguJnguILguKLguLLguKIKK+C5geC4p+C4meC4lOC4sgor4LmB4Lin4LmI4LiZ4LiV4LiyCivguYHguKfguYjguJnguJ/guYnguLIKK+C5geC4p+C5iOC4meC5hOC4pwor4LmB4Lin4LiaCivguYHguKfguJrguYYKK+C5geC4p+C4muC4p+C4seC4mgor4LmB4Lin4LihCivguYHguKfguKcKK+C5geC4p+C5iOC4pwor4LmB4Lin4Lin4Lin4Liy4LihCivguYHguKfguKfguKfguLLguKcKK+C5geC4p+C4p+C4p+C4tOC5gOC4iuC4teC4ouC4owor4LmB4Lin4LiwCivguYLguKcKK+C5guC4p+C5iAor4LmC4Lin4LiB4Liy4LijCivguYLguKfguYjguIcKK+C5guC4p+C4l+C4suC4mQor4LmC4Lin4LmJ4LiiCivguYLguKfguKLguKfguLLguKIKK+C5guC4p+C5ieC5gOC4p+C5iQor4LmC4Lin4Liq4Liy4LiZCivguYLguKfguKvguLLguKMKK+C5hOC4pwor4LmE4Lin4LmJCivguYTguKfguIHguLnguJPguJDguYwKK+C5hOC4p+C5ieC5g+C4iAor4LmE4Lin4LiR4Li54Lij4Lii4LmMCivguYTguKfguYnguJXguLHguKcKK+C5hOC4p+C4l+C4ouC5jAor4LmE4Lin4LmJ4LiX4Li44LiB4LiC4LmMCivguYTguKfguYnguJjguLjguKPguLAKK+C5hOC4p+C5ieC5gOC4meC4t+C5ieC4reC5gOC4iuC4t+C5iOC4reC5g+C4iAor4LmE4Lin4Lie4LiI4LiZ4LmMCivguYTguKfguYTguJ8KK+C5hOC4p+C5ieC4ouC4qAor4LmE4Lin4Lii4Liy4LiB4Lij4LiT4LmMCivguYTguKfguKLguLLguKfguLHguIjguIHguKMKK+C5hOC4p+C4ouC4suC4p+C4seC4iOC4oeC4seC4ogor4LmE4Lin4LmJ4Lil4Liy4LiiCivguYTguKfguKfguKPguKPguJMKK+C5hOC4p+C4qeC4k+C4ngor4LmE4Lin4LmJ4Lir4LiZ4LmJ4LiyCivguYTguKfguYnguK3guLLguKXguLHguKIKK+C5hOC4p+C5guC4reC4peC4tOC4mQor4LioCivguKjguIEKK+C4qOC4geC4jwor4Lio4LiB4LilCivguKjguIHguLjguJkKK+C4qOC4geC4uOC4meC4leC5jAor4Lio4LiB4Li44LiZ4Li0CivguKjguIHguLjguJnguLUKK+C4qOC4h+C4geC4sgor4Lio4LiI4Li1CivguKjguJAKK+C4qOC4lOC4gQor4Lio4LiVCivguKjguJUtCivguKjguJXguIEKK+C4qOC4leC4muC4suC4lwor4Lio4LiV4Lib4LiX4Li1CivguKjguJXguJ7guKPguKPguKkKK+C4qOC4leC4oOC4tOC4qeC4seC4igor4Lio4LiV4Lin4Lij4Lij4LipCivguKjguJXguKrguLHguIfguKfguLHguJXguKrguKPguYwKK+C4qOC4leC4seC4huC4meC4tQor4Lio4LiZ4Li0CivguKjguJnguLTguKfguLLguKMKK+C4qOC4ngor4Lio4Lie4LilCivguKjguKEKK+C4qOC4oeC4mQor4Lio4LiiCivguKjguKLguJnguLAKK+C4qOC4ouC4suC4oQor4Lio4Lii4Liy4Lih4LilCivguKjguKMKK+C4qOC4o+C4meC4suC4o+C4suC4ouC4k+C5jAor4Lio4Lij4LigCivguKjguKPguKHguJPguLAKK+C4qOC4o+C4o+C4geC4o+C4sgor4Lio4Lij4Lin4LiT4LiwCivguKjguKPguKfguJPguLXguKLguYwKK+C4qOC4o+C4p+C4tOC4qeC4kOC4sgor4Lio4Lij4Lio4Li04Lil4Lib4LmM4LmE4Lih4LmI4LiB4Li04LiZ4LiB4Lix4LiZCivguKjguKPguLDguKfguJMKK+C4qOC4o+C4seC4k+C4ouC5jAor4Lio4Lij4Lix4LiT4Lii4Li5CivguKjguKPguLHguJbguJnguLAKK+C4qOC4o+C4seC4lwor4Lio4Lij4Lix4LiX4LiY4LiyCivguKjguKPguLHguKIKK+C4qOC4o+C4suC4l+C4mC0KK+C4qOC4o+C4suC4l+C4mOC5jAor4Lio4Lij4Liy4LiX4LiY4Lie4Lij4LiVCivguKjguKPguLLguJ4KK+C4qOC4o+C4suC4nuC4gQor4Lio4Lij4Liy4Lii4Li44LiYCivguKjguKPguLLguKfguIEKK+C4qOC4o+C4suC4p+C4k+C4sAor4Lio4Lij4Liy4Lin4Lij4LiT4LmMCivguKjguKPguLLguKrguJnguYwKK+C4qOC4o+C4tQor4Lio4Lij4Li14LiV4Lij4Lix4LiHCivguKjguKPguLXguKrguLHguIfguITguLXguJUKK+C4qOC4o+C4uOC4lQor4Lio4Lij4Li44LiV4Li0CivguKjguKTguITguLLguKUKK+C4qOC4pOC4h+C4hOC5jAor4Lio4Lik4LiH4LiE4Liy4LijCivguKjguKTguIfguITguLLguKPguLTguJkKK+C4qOC4pOC4h+C4hOC4suC4o+C4tQor4Lio4Lil4LigCivguKjguKXguLHguJYKK+C4qOC4peC4tOC4qeC4j+C5jAor4Lio4Lil4Li04Lip4LiyCivguKjguKcKK+C4qOC4p+C4qOC4uOC4owor4Lio4Lin4Lix4LiqCivguKjguKfguLHguKrguJkKK+C4qOC4p+C4sgor4Lio4Lin4Liy4LiZCivguKjguKfguLLguKoKK+C4qOC4qC0KK+C4qOC4qOC4mOC4owor4Lio4Lio4Lie4Li04LiZ4LiX4Li44LmMCivguKjguKjguKXguLHguIHguKnguJPguYwKK+C4qOC4qOC4sAor4Lio4Lio4Li0CivguKjguKjguLTguIHguKnguLHguKIKK+C4qOC4qOC4tOC4guC4seC4k+C4keC5jAor4Lio4Lio4Li04LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKjguKjguLTguJjguKMKK+C4qOC4qOC4tOC4mQor4Lio4Lio4Li04Lih4LiT4LiR4LilCivguKjguKjguLTguKfguLTguKHguKUKK+C4qOC4qOC4tQor4Lio4Liq4LiyCivguKjguK0KK+C4qOC4reC4gQor4Lio4Lit4LiB4LiB4Lil4Lix4LiaCivguKjguK3guIHguIHguLMKK+C4qOC4reC4geC4geC4s+C4oeC4sgor4Lio4Lit4LiB4LiE4Li54LmJCivguKjguK3guIHguJXguLnguKEKK+C4qOC4seC4geC4lOC4sgor4Lio4Lix4LiB4LiU4Li0CivguKjguLHguIHguJTguLTguYwKK+C4qOC4seC4geC4lOC4tOC4meC4sgor4Lio4Lix4LiB4LiU4Li04LmM4Lio4Lij4Li1CivguKjguLHguIHguJTguLTguYzguKrguLTguJfguJjguLTguYwKK+C4qOC4seC4geC4leC4tAor4Lio4Lix4LiB4LiiLQor4Lio4Lix4LiB4Lii4LmMCivguKjguLHguIHguKLguKDguLLguJ4KK+C4qOC4seC4geC4ouC4sAor4Lio4Lix4LiB4LijLQor4Lio4Lix4LiB4Lij4Lig4Lie4LiZ4LmMCivguKjguLHguIHguKPguLLguIoKK+C4qOC4seC4geC4o+C4tOC4meC4l+C4o+C5jAor4Lio4Lix4LiB4LmA4Lij4LiZ4LiX4Lij4LmMCivguKjguLHguIfguIHguKMKK+C4qOC4seC4h+C4geC4sgor4Lio4Lix4LiH4LiB4Li4CivguKjguLHguJXguKPguLkKK+C4qOC4seC4l+C4mOC4meC4sAor4Lio4Lix4LiZ4Liq4LiZ4LiwCivguKjguLHguJnguKrguJnguLXguKLguYwKK+C4qOC4seC4nuC4ly0KK+C4qOC4seC4nuC4l+C5jAor4Lio4Lix4Lie4LiX4Lih4Li54Lil4Lin4Li04LiX4Lii4LiyCivguKjguLHguKLguKLguLIKK+C4qOC4seC4pQor4Lio4Lix4Lil4LiBCivguKjguLHguKXguIHguLUKK+C4qOC4seC4peC4oi0KK+C4qOC4seC4peC4ouC4geC4o+C4o+C4oQor4Lio4Lix4Lil4Lii4LmB4Lie4LiX4Lii4LmMCivguKjguLHguKXguKLguKjguLLguKrguJXguKPguYwKK+C4qOC4seC4quC4lOC4owor4Lio4Lix4Liq4LiV4LijLQor4Lio4Lix4Liq4LiV4Lij4LiB4Lij4Lij4LihCivguKjguLHguKrguJXguKPguIHguLLguKMKK+C4qOC4seC4quC4leC4o+C4qOC4suC4quC4leC4o+C5jAor4Lio4Lix4Liq4LiV4Lij4LiyCivguKjguLHguKrguKIKK+C4qOC4suC4gQor4Lio4Liy4LiBLQor4Lio4Liy4LiB4LiV4LiwCivguKjguLLguIHguKDguLHguIHguKnguYwKK+C4qOC4suC4geC4oi0KK+C4qOC4suC4geC4ouC5gOC4geC4leC4uAor4Lio4Liy4LiB4Lii4Lie4Li44LiX4LiYCivguKjguLLguIHguKLguKHguLjguJnguLUKK+C4qOC4suC4geC4ouC4sAor4Lio4Liy4LiO4LiBCivguKjguLLguJDguKLguLAKK+C4qOC4suC4kwor4Lio4Liy4LiVCivguKjguLLguJnguJUtCivguKjguLLguJnguJXguYwKK+C4qOC4suC4meC4leC4o+C4qgor4Lio4Liy4LiZ4LiV4Li0CivguKjguLLguJnguJXguLTguIEtCivguKjguLLguJnguJXguLTguYLguKvguKEKK+C4qOC4suC4mwor4Lio4Liy4LibLQor4Lio4Liy4Lib4Lih4Li44LiB4LiV4Li04LmMCivguKjguLLguJvguLLguJnguJXguYwKK+C4qOC4suC4nuC4owor4Lio4Liy4Lij4LiXCivguKjguLLguKPguJfguKfguLTguKnguLjguKfguLHguJUKK+C4qOC4suC4o+C4l+C4ueC4pQor4Lio4Liy4Lij4Li04LiB4LiyCivguKjguLLguKUKK+C4qOC4suC4peC4geC4h+C4quC4uOC4pQor4Lio4Liy4Lil4LmB4LiC4Lin4LiHCivguKjguLLguKXguITguJTguLXguYDguJTguYfguIHguYHguKXguLDguYDguKLguLLguKfguIrguJkKK+C4qOC4suC4peC4iOC4seC4h+C4q+C4p+C4seC4lAor4Lio4Liy4Lil4LiK4Lix4LmJ4LiZ4LiV4LmJ4LiZCivguKjguLLguKXguI7guLXguIHguLIKK+C4qOC4suC4peC5gOC4leC4teC5ieC4ogor4Lio4Liy4Lil4LiX4Lir4Liy4LijCivguKjguLLguKXguJvguIHguITguKPguK3guIcKK+C4qOC4suC4peC5guC4m+C4o+C4tOC4quC4oOC4sgor4Lio4Liy4Lil4LmA4Lie4Li14Lii4LiH4LiV4LiyCivguKjguLLguKXguYHguJ7guYjguIcKK+C4qOC4suC4peC4ouC4uOC4leC4tOC4mOC4o+C4o+C4oQor4Lio4Liy4Lil4LmA4Lii4Liy4Lin4LiK4LiZ4LmB4Lil4Liw4LiE4Lij4Lit4Lia4LiE4Lij4Lix4LinCivguKjguLLguKXguYLguKXguIEKK+C4qOC4suC4peC4quC4luC4tOC4leC4ouC4uOC4leC4tOC4mOC4o+C4o+C4oQor4Lio4Liy4Lil4Liq4Li54LiHCivguKjguLLguKXguKrguLnguIfguKrguLjguJQKK+C4qOC4suC4peC4reC4suC4jeC4sgor4Lio4Liy4Lil4Lit4Li44LiX4LiY4Lij4LiT4LmMCivguKjguLLguKXguK3guLjguJfguJjguKPguJPguYzguKDguLLguIQKK+C4qOC4suC4peC4sgor4Lio4Liy4Lil4Liy4Lib4Lij4Liw4LiK4Liy4LiE4LihCivguKjguLLguKXguLLguKPguLLguKIKK+C4qOC4suC4peC4suC4quC4o+C4hwor4Lio4Liy4Lio4Lin4Lix4LiVCivguKjguLLguKrguIEKK+C4qOC4suC4quC4lOC4sgor4Lio4Liy4Liq4LiV4LijLQor4Lio4Liy4Liq4LiV4Lij4LmMCivguKjguLLguKrguJXguKPguLIKK+C4qOC4suC4quC4leC4o+C4suC4iOC4suC4o+C4ouC5jAor4Lio4Liy4Liq4LiZLQor4Lio4Liy4Liq4LiZ4LmMCivguKjguLLguKrguJnguIjguLHguIHguKMKK+C4qOC4suC4quC4meC4sgor4Lio4Liy4Liq4LiZ4Li14LiiLQor4Lio4Liy4Liq4LiZ4Li14Lii4LmMCivguKjguLLguKrguJnguLnguJvguJbguLHguKHguKDguIEKK+C4qOC4tOC4geC4qeC4gQor4Lio4Li04LiB4Liy4LijCivguKjguLTguILguKMKK+C4qOC4tOC4guC4o+C4tOC4mQor4Lio4Li04LiC4Lij4Li1CivguKjguLTguILguLHguJPguJHguYwKK+C4qOC4tOC4guC4sgor4Lio4Li04LiE4Liy4LilCivguKjguLTguIfguILguKMKK+C4qOC4tOC4h+C4guC4o+C4tOC4mQor4Lio4Li04LiVCivguKjguLTguJbguLUKK+C4qOC4tOC4nuC4tOC4o+C4sAor4Lio4Li04LijLQor4Lio4Li04Lij4Lib4Lij4Liw4Lig4LiyCivguKjguLTguKPguLAKK+C4qOC4tOC4o+C4sgor4Lio4Li04Lij4Liy4Lih4Lie4Li44LiKCivguKjguLTguYLguKPguKPguLHguJXguJnguYwKK+C4qOC4tOC5guC4o+C4o+C4suC4mgor4Lio4Li04LmC4Lij4LmA4Lin4LiQ4LiZ4LmMCivguKjguLTguKXguJstCivguKjguLTguKXguJvguYwKK+C4qOC4tOC4peC4m+C4geC4owor4Lio4Li04Lil4Lib4LiB4Lij4Lij4LihCivguKjguLTguKXguJvguIHguLLguKMKK+C4qOC4tOC4peC4m+C4geC4tOC4iAor4Lio4Li04Lil4Lib4Lin4Li04LiX4Lii4LiyCivguKjguLTguKXguJvguKjguLLguKrguJXguKPguYwKK+C4qOC4tOC4peC4m+C4sAor4Lio4Li04Lil4Lib4Li04LiZCivguKjguLTguKXguJvguLUKK+C4qOC4tOC4peC4sgor4Lio4Li04Lil4Liy4Lik4LiB4Lip4LmMCivguKjguLTguKXguLLguYHguKXguIcKK+C4qOC4tOC4py0KK+C4qOC4tOC4p+C5guC4oeC4geC4guC5jAor4Lio4Li04Lin4Lil4Li24LiH4LiE4LmMCivguKjguLTguKfguYDguKfguJcKK+C4qOC4tOC4p+C4sAor4Lio4Li04Lio4Li14Lij4LiwCivguKjguLTguKjguLgKK+C4qOC4tOC4qeC4juC4tAor4Lio4Li04Lip4LiP4LmMCivguKjguLTguKnguKLguYwKK+C4qOC4tOC4qeC4ouC5jOC4oeC4teC4hOC4o+C4uQor4Lio4Li14LiC4LijCivguKjguLXguILguKPguLTguJkKK+C4qOC4teC4guC4o+C4tQor4Lio4Li14LiVLQor4Lio4Li14LiV4LiB4Liy4LilCivguKjguLXguJXguKUKK+C4qOC4teC4o+C4qeC4sAor4Lio4Li14Lij4Lip4Liw4LiB4Lij4Liw4Lia4Li34LitCivguKjguLXguKPguKnguLDguYLguIQKK+C4qOC4teC4o+C4qeC4sOC4iuC5ieC4suC4hwor4Lio4Li14Lij4Lip4Liw4LmA4LiZ4Li34LmJ4LitCivguKjguLXguKUKK+C4qOC4teC4peC4iOC4uOC5iOC4oQor4Lio4Li14Lil4LiY4Lij4Lij4LihCivguKjguLXguKXguKHguKvguLLguKrguJnguLTguJcKK+C4qOC4teC4peC4peC5ieC4suC4h+C4muC4suC4mwor4Lio4Li14Lil4Lin4Lix4LiVCivguKjguLXguKXguK3guJQKK+C4qOC4tuC4gQor4Lio4Li24LiB4Lip4LiyCivguKjguLbguIHguKnguLLguJjguLTguIHguLLguKMKK+C4qOC4tuC4geC4qeC4suC4meC4tOC5gOC4l+C4qOC4geC5jAor4Lio4Li24LiB4Lir4LiZ4LmJ4Liy4LiZ4Liy4LiHCivguKjguLjguIHguKMtCivguKjguLjguIHguKPguYwKK+C4qOC4uOC4geC4o+C4p+C4o+C4o+C4kwor4Lio4Li44LiB4LilLQor4Lio4Li44LiB4Lil4Lib4Lix4LiB4Lip4LmMCivguKjguLjguIHguKXguLHguKEKK+C4qOC4uOC4geC4sAor4Lio4Li44LiI4Li0CivguKjguLjguIjguLTguIHguKPguKPguKEKK+C4qOC4uOC4l+C4mAor4Lio4Li44LiX4LiY4Li0CivguKjguLjguJkKK+C4qOC4uOC4meC4seC4gQor4Lio4Li44LiZ4Li0CivguKjguLjguKAtCivguKjguLjguKDguIHguKMKK+C4qOC4uOC4oOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lio4Li44Lig4LiZ4Li04Lih4Li04LiVCivguKjguLjguKDguKHguLHguKrguJTguLgKK+C4qOC4uOC4oOC4oeC4suC4leC4o+C4sgor4Lio4Li44Lig4Lih4Liy4LiqCivguKjguLjguKDguKMtCivguKjguLjguKDguK3guLHguIHguKnguKMKK+C4qOC4uOC4oOC4suC4h+C4hOC5jAor4Lio4Li44Lil4LiBLQor4Lio4Li44Lil4LiB4Liy4LiB4LijCivguKjguLjguKXguIHguLLguKPguLHguIHguKnguYwKK+C4qOC4uOC4peC4tQor4Lio4Li44Lip4Li04LijCivguKjguLnguIHguKMKK+C4qOC4ueC4l+C4owor4Lio4Li54LiZ4LiiLQor4Lio4Li54LiZ4Lii4LmMCivguKjguLnguJnguKLguYzguIHguLLguKPguITguYnguLIKK+C4qOC4ueC4meC4ouC5jOC4iuC4uOC4oeC4iuC4mQor4Lio4Li54LiZ4Lii4LmM4Lie4LmI4Liy4Lir4LmMCivguKjguLnguJnguKLguKDguLLguJ4KK+C4qOC4ueC4meC4ouC5jOC5gOC4ouC4suC4p+C4iuC4mQor4Lio4Li54LiZ4Lii4Lin4Liy4LiXCivguKjguLnguJnguKLguYzguKrguLHguKHguJrguLnguKPguJPguYwKK+C4qOC4ueC4meC4ouC5jOC4quC4ueC4leC4owor4Lio4Li54LilCivguKjguLnguKXguLTguJkKK+C5gOC4qOC4o+C4k+C4tQor4LmA4Lio4Lij4Lip4LiQLQor4LmA4Lio4Lij4Lip4LiQ4LmMCivguYDguKjguKPguKnguJDguIHguLTguIgKK+C5gOC4qOC4o+C4qeC4kOC4qOC4suC4quC4leC4o+C5jAor4LmA4Lio4Lij4Lip4LiQ4Li1CivguYDguKjguKPguYnguLIKK+C5gOC4qOC4o+C5ieC4suC4q+C4oeC4reC4hwor4LmA4Lio4Lil4LipCivguYDguKjguKfguJTguIfguITguYwKK+C5gOC4qOC4p+C4lOC4teC4oAor4LmA4Lio4Lin4LiVCivguYDguKjguKfguJUtCivguYDguKjguKfguJXguIfguITguYwKK+C5gOC4qOC4p+C4leC4ieC4seC4leC4owor4LmA4Lio4Lin4LiV4LijCivguYDguKjguKfguJXguLHguKHguJ7guKMKK+C5gOC4qOC4p+C4leC4tOC4oAor4LmA4Lio4Lin4LiV4Li14LigCivguYDguKjguKfguYDguJXguKAKK+C5gOC4qOC4p+C4suC4pQor4LmA4Lio4LipCivguYDguKjguKnguYDguIHguLTguJkKK+C5gOC4qOC4qeC4i+C5ieC4reC4mQor4LmA4Lio4Lip4Liq4LmI4Lin4LiZCivguYDguKjguKnguKrguLTguJoKK+C5gOC4qOC4suC4iC0KK+C5gOC4qOC4suC5hOC4iOC4ogor4LmA4Lio4Liy4Lij4LmMCivguYDguKjguLLguKPguKLguLAKK+C5gOC4qOC4tOC4gQor4LmA4Lio4Li14Lii4LijCivguYLguKjguIEKK+C5guC4qOC4gS0KK+C5guC4qOC4geC4meC4suC4j+C4geC4o+C4o+C4oQor4LmC4Lio4LiB4Lio4Lix4Lil4Lii4LmMCivguYLguKjguIHguLIKK+C5guC4qOC4geC4suC4lOC4ueC4owor4LmC4Lio4LiB4Liy4Lil4Lix4LiiCivguYLguKjguIHguLUKK+C5guC4qOC4iOC4meC4sAor4LmC4Lio4LiI4LiZ4Li14Lii4LiwCivguYLguKjguIjguLQKK+C5guC4qOC4luC4sAor4LmC4Lio4LiY4LiZ4LiwCivguYLguKjguJzguLAKK+C5guC4qOC4oAor4LmC4Lio4Lig4LiZCivguYLguKjguKDguLIKK+C5guC4qOC4oOC4tOC4lQor4LmC4Lio4Lig4Li04LiZCivguYLguKjguKDguLTguKnguJDguYwKK+C5guC4qOC4oOC4tQor4LmC4Lio4Lij4LiT4Li0CivguYLguKjguKPguJPguLUKK+C5guC4qOC4o+C4lOC4sgor4LmC4Lio4Lij4LiV4LijCivguYLguKjguKXguIEKK+C5hOC4qOC4pQor4LmE4Lio4LilLQor4LmE4Lio4Lin4LiwCivguKkKK+C4qeC4oeC4sgor4Lip4Lih4Liy4Lii4Li44Lih4LmB4Lib4Lil4LiHCivguKnguLHguI8KK+C4qeC4seC4j+C4geC4sAor4Lip4Lix4LiRCivguKnguLHguJMKK+C4qeC4seC4qQor4Lip4Lix4Lip4LiP4Li1CivguKnguLHguKnguJAKK+C4qeC4seC4qeC4kOC4tQor4LmC4Lip4LiR4LioCivguYLguKnguJHguKjguLHguJkKK+C4qgor4Liq4LiBLQor4Liq4LiB4LiPLQor4Liq4LiB4LiP4Lig4Liy4LijCivguKrguIHguI/guLAKK+C4quC4geC4l+C4suC4hOC4suC4oeC4tOC4nOC4pQor4Liq4LiB4LiX4Liy4LiE4Liy4Lih4Li04Lih4Lij4Lij4LiECivguKrguIHguJfguLLguITguLLguKHguLUKK+C4quC4geC4meC4mOC5jAor4Liq4LiB4Lib4Lij4LiBCivguKrguIHguKPguJPguLXguKLguYwKK+C4quC4geC4o+C4o+C4iOC5jAor4Liq4LiB4Lij4Lij4Lih4LiB4Lij4Li04Lii4LiyCivguKrguIHguKUKK+C4quC4geC4pS0KK+C4quC4geC4peC4oeC4q+C4suC4quC4seC4h+C4huC4m+C4o+C4tOC4k+C4suC4ouC4gQor4Liq4LiB4Lil4LmC4Lil4LiBCivguKrguIHguKfguLLguJfguLUKK+C4quC4geC4seC4lAor4Liq4LiB4Lix4LiU4LmB4LiE4Lij4LmICivguKrguIHguLIKK+C4quC4geC4suC4pwor4Liq4LiB4Li04LiX4Liy4LiE4Liy4Lih4Li1CivguKrguIHguLUKK+C4quC4geC4teC4meC5ieC4swor4Liq4LiB4Li44LiTCivguKrguIHguLjguJPguLIKK+C4quC4geC4uOC4k+C4tQor4Liq4LiB4Li44LiZCivguKrguIHguLjguJnguJXguYwKK+C4quC4geC4uOC4pQor4Liq4LiB4Li44Lil4Lij4Li44LiZ4LiK4Liy4LiV4Li0CivguKrguYDguIHguJUKK+C4quC5gOC4geC4leC4meC5ieC4s+C5geC4guC5h+C4hwor4Liq4LmB4LiB4LiZ4LmA4LiU4Li14Lii4LihCivguKrguILguLAKK+C4quC4guC4sgor4Liq4LiC4Li0CivguKrguIcKK+C4quC5iOC4hwor4Liq4LiH4LiB4LijCivguKrguIfguIHguKPguLLguJnguJXguYwKK+C4quC5iOC4h+C4geC4peC4tOC5iOC4mQor4Liq4LiH4LiB4LiyCivguKrguIfguYLguIHguIgKK+C4quC5iOC4h+C4guC5iOC4suC4pwor4Liq4LiH4LiE4LmMCivguKrguIfguITguKMKK+C4quC4h+C4hOC4o+C4suC4oQor4Liq4LiH4LiE4Lij4Liy4Lih4LiB4Lil4Liy4LiH4LmA4Lih4Li34Lit4LiHCivguKrguIfguITguKPguLLguKHguYDguKLguYfguJkKK+C4quC4h+C4hOC4o+C4suC4oeC5guC4peC4gQor4Liq4LiH4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKrguIfguIbguYwKK+C4quC5iOC4h+C4lOC4reC4gQor4Liq4LmI4LiH4LmA4LiU4LiKCivguKrguYjguIfguJXguLHguKcKK+C4quC5iOC4h+C4l+C5ieC4suC4ogor4Liq4LiH4LiaCivguKrguIfguJrguYDguKrguIfguLXguYjguKLguKEKK+C4quC5iOC4h+C4oOC4suC4qeC4sgor4Liq4LmI4LiH4Lil4LizCivguKrguIfguKfguJkKK+C4quC4h+C5gOC4qeC4mwor4Liq4LmI4LiH4Liq4LiB4Liy4LijCivguKrguIfguKrguLHguKIKK+C4quC4h+C4quC4suC4owor4Liq4LiH4Liq4Liy4LijLQor4Liq4LiH4Liq4Liy4Lij4LiX4Li44LiB4LiC4LmMCivguKrguIfguKrguLLguKPguKfguLHguI8KK+C4quC5iOC4h+C5gOC4quC4o+C4tOC4oQor4Liq4LmI4LiH4LmA4Liq4Li14LiiCivguKrguYjguIfguYDguKrguLXguKLguIcKK+C4quC4h+C4seC4lAor4Liq4LiH4LmI4LiyCivguKrguJAKK+C4quC4k+C4keC5jAor4Liq4LiUCivguKrguJTguIEKK+C4quC4lOC4hOC4suC4pwor4Liq4LiU4LiK4Li34LmI4LiZCivguKrguJTguJkKK+C4quC4lOC4oeC4oOC5jAor4Liq4LiU4LmGIOC4o+C5ieC4reC4meC5hgor4Liq4LiU4LmD4LiqCivguKrguJTguLHguJkKK+C4quC4lOC4seC4mgor4Liq4LiU4Lix4Lia4LiV4Lij4Lix4Lia4Lif4Lix4LiHCivguKrguJTguLHguJrguJvguIHguKPguJPguYwKK+C4quC4lOC4swor4Liq4LiU4Li1CivguKrguJTguLjguJTguLUKK+C4quC4lOC4ueC4mwor4Liq4LiVCivguKrguJXguIEKK+C4quC4leC4mQor4Liq4LiV4Lig4Li04Liq4LiK4LiwCivguKrguJXguKHguLLguKvguLAKK+C4quC4leC4o+C4reC4meC5gOC4iuC4teC4ouC4oQor4Liq4LiV4Lij4Li04LiB4LiZ4Li04LiZCivguKrguJXguKPguLUKK+C4quC4leC4o+C4teC4peC4tOC4h+C4hOC5jAor4Liq4LiV4Lij4Li14Lil4Li24LiH4LiE4LmMCivguKrguJXguLHguJkKK+C4quC4leC4seC4meC4ouC5jAor4Liq4LiV4Lix4Lie4LiY4LmMCivguKrguJXguLHguJ/guJ/guYwKK+C4quC4leC4seC4oeC4oOC5jAor4Liq4LiV4Liy4LiH4LiE4LmMCivguKrguJXguLQKK+C4quC4leC4tOC4m+C4seC4jeC4jeC4sgor4Liq4LiV4Li04Lib4Lix4LiP4LiQ4Liy4LiZCivguKrguJXguLTguKfguLTguJnguLHguKIKK+C4quC4leC4tOC4quC4seC4oeC4m+C4iuC4seC4jeC4jeC4sAor4Liq4LiV4Li1CivguKrguJXguLkKK+C4quC4leC4ueC4mwor4Liq4LiW4LiZCivguKrguJbguJrguJTguLUKK+C4quC4luC4pQor4Liq4LiW4LilLQor4Liq4LiW4Lil4LiX4Li04LiZCivguKrguJbguKXguJrguJYKK+C4quC4luC4peC4oeC4suC4o+C4hAor4Liq4LiW4Lin4Li04LijLQor4Liq4LiW4Lin4Li14LijLQor4Liq4LiW4Lin4Li14Lij4LiwCivguKrguJbguLLguJkKK+C4quC4luC4suC4meC4geC4suC4o+C4k+C5jAor4Liq4LiW4Liy4LiZ4Lig4Liy4LieCivguKrguJbguLLguJnguLAKK+C4quC4luC4suC4meC4tQor4Liq4LiW4Liy4Lia4LiBCivguKrguJbguLLguJrguLHguJkKK+C4quC4luC4suC4m+C4meC4sgor4Liq4LiW4Liy4Lib4LiZ4Li04LiBCivguKrguJbguLLguJvguJnguLXguKLguJ7guKLguLLguIHguKPguJPguYwKK+C4quC4luC4suC4m+C4meC4teC4ouC4p+C4suC4l+C4tQor4Liq4LiW4Liy4Lib4Lix4LiV4Lii4LiB4Lij4Lij4LihCivguKrguJbguLLguJvguLHguJXguKLguIHguKPguKPguKHguKjguLLguKrguJXguKPguYwKK+C4quC4luC4suC4nuC4owor4Liq4LiW4Liy4LilCivguKrguJbguLLguKfguKMKK+C4quC4luC4tOC4lQor4Liq4LiW4Li04LiV4Lii4Lio4Liy4Liq4LiV4Lij4LmMCivguKrguJbguLTguJXguLQKK+C4quC4luC4tOC4leC4tOC4qOC4suC4quC4leC4o+C5jAor4Liq4LiW4Li04LijLQor4Liq4LiW4Li44LilCivguKrguJbguLnguJsKK+C4quC4l+C4tuC4hwor4Liq4LiX4Li44LihCivguKrguJjguJkKK+C4quC4mOC4uOC4quC4sAor4Liq4LiZCivguKrguYnguJkKK+C4quC4meC5g+C4iAor4Liq4LiZ4LmA4LiU4LiBCivguKrguJnguJXguLDguJ7guLLguKIKK+C4quC5ieC4meC4leC4teC4mQor4Liq4LiZ4LiX4LiZ4LiyCivguKrguJnguJfguKPguKPguKgKK+C4quC4meC4l+C4o+C4o+C4qOC4meC5jAor4Liq4LiZ4LiX4Li04LioCivguKrguJnguYDguJfguKgKK+C4quC4meC5gOC4l+C5iOC4q+C5jAor4Liq4LiZ4LiY4Lii4LiyCivguKrguJnguJjguLQKK+C4quC4meC4mOC4tOC4quC4seC4jeC4jeC4sgor4Liq4LiZ4LiY4Li04Lit4Lil4LiH4LiB4LiVCivguKrguJnguJnguKPguLLguITguLIKK+C4quC4meC5geC4nOC4hwor4Liq4LiZ4LihCivguKrguJnguKHguYDguK3guIEKK+C4quC4meC4p+C4mQor4Liq4LiZ4Lir4Liy4LiH4Liq4Li04LiH4Lir4LmMCivguKrguJnguK3guIcKK+C4quC4meC4reC4h+C5hOC4ggor4Liq4LiZ4Lit4LiH4LmE4LiUCivguKrguJnguK3guIfguYLguK3guKnguJDguYwKK+C4quC4meC4reC4mgor4Liq4LiZ4Lit4LihCivguKrguJnguLAKK+C4quC4meC4seC4lAor4Liq4LiZ4Lix4LiU4LmD4LiICivguKrguJnguLHguYjguJkKK+C4quC4meC4seC4mgor4Liq4LiZ4Lix4Lia4LmB4LiC4LmJ4LiHCivguKrguJnguLHguJrguIfguLIKK+C4quC4meC4seC4muC4l+C4tuC4mgor4Liq4LiZ4Lix4Lia4LiZ4Li04LmJ4Lin4Lih4Li34LitCivguKrguJnguLHguJrguYDguJ7guKXguLIKK+C4quC4meC4seC4muC4oeC4t+C4rQor4Liq4LiZ4Lix4Lia4Liq4LiZ4Li44LiZCivguKrguJnguLLguJTguIEKK+C4quC4meC4suC4mQor4Liq4LiZ4Liy4Lia4LiBCivguKrguJnguLLguJrguLHguJkKK+C4quC4meC4suC4oQor4Liq4LiZ4Liy4Lih4LmA4Lie4Lil4Liy4LiwCivguKrguJnguLLguKHguKvguKXguKfguIcKK+C4quC4meC4suC4ouC4uAor4Liq4LiZ4Li04LiBCivguKrguJnguLTguJcKK+C4quC4meC4tOC4l+C4quC4meC4oQor4Liq4LiZ4Li04LiYCivguKrguJnguLTguKEKK+C4quC4meC4tOC4oeC4quC4o+C5ieC4reC4ogor4Liq4LiZ4Li44LiBCivguKrguJnguLjguIHguYDguIHguK3guKPguYwKK+C4quC4meC4uOC4geC4quC4meC4suC4mQor4Liq4LiZ4Li44LiCCivguKrguJnguLjguJUKK+C4quC4meC4uOC5iOC4mQor4Liq4LiaCivguKrguJrguIcKK+C4quC4muC4iAor4Liq4Lia4LiWCivguKrguJrguJvguKPguLDguKHguLLguJcKK+C4quC4muC4quC4seC4h+C4p+C4suC4qgor4Liq4Lia4LmA4Liq4Li14LiiCivguKrguJrguLHguJkKK+C4quC4muC4suC4ogor4Liq4Lia4Li54LmICivguKrguJrguLnguYjguYDguKXguLfguK3guJQKK+C4quC5hOC4mgor4Liq4LmE4Lia4LmA4LiJ4Li14Lii4LiHCivguKrguYTguJrguJnguLLguIcKK+C4quC4m+C4o+C4tOC4hwor4Liq4Lib4Liy4LmA4LiB4LiV4LiV4Li1CivguKrguYDguJvguIHguJXguKPguLHguKEKK+C4quC5gOC4m+C4geC5guC4l+C4o+C4quC5guC4hOC4mwor4Liq4LmE4Lib4Lij4Li04Lil4Lil4Lix4LihCivguKrguJ7guLHguYnguJkKK+C4quC4nuC4suC4mgor4Liq4Lig4LiyCivguKrguKDguLLguIHguLLguIrguLLguJQKK+C4quC4oOC4suC4hAor4Liq4Lig4Liy4LiI4Liy4LijCivguKrguKDguLLguJnguLLguKLguIEKK+C4quC4oOC4suC4muC4lOC4tQor4Liq4Lig4Liy4LieCivguKrguKDguLLguJ7guJjguKPguKPguKEKK+C4quC4oOC4suC4py0KK+C4quC4oOC4suC4p+C4geC4suC4o+C4k+C5jAor4Liq4Lig4Liy4Lin4LiwCivguKrguKEKK+C4quC5ieC4oQor4Liq4Lih4LiB4Liy4LijCivguKrguKHguIHguLLguKPguYDguITguKHguLUKK+C4quC5ieC4oeC4geC4uOC5ieC4hwor4Liq4Lih4LiE4LiaCivguKrguKHguITguKfguKMKK+C4quC4oeC4hOC4sOC5gOC4mQor4Liq4Lih4LiI4LijCivguKrguKHguIjguKPguLTguIcKK+C4quC4oeC4iOC4suC4o+C4tQor4Liq4LmJ4Lih4LiK4Li34LmI4LiZCivguKrguYnguKHguYDguIrguYnguLIKK+C4quC4oeC4jeC4sgor4Liq4Lih4LmA4LiN4LioCivguKrguKHguJMtCivguKrguKHguJPguJrguKPguLTguILguLLguKMKK+C4quC4oeC4k+C5guC4p+C4q+C4suC4owor4Liq4Lih4LiT4Lio4Lix4LiB4LiU4Li04LmMCivguKrguKHguJPguKrguLLguKPguLnguJsKK+C4quC4oeC4k+C4quC4suC4quC4meC5jAor4Liq4Lih4LiT4LiwCivguKrguKHguJTguLjguKUKK+C4quC4oeC5gOC4lOC5h+C4iAor4Liq4Lih4LmA4LiU4LmH4LiI4Lie4Lij4Liw4Liq4Lix4LiH4LiG4Lij4Liy4LiKCivguKrguYnguKHguJXguLMKK+C4quC4oeC4li0KK+C4quC4oeC4luC4ouC4suC4meC4tOC4gQor4Liq4Lih4LiW4Lin4Li04Lib4Lix4Liq4Liq4LiZ4LiyCivguKrguKHguJbguLAKK+C4quC4oeC4l+C4mgor4Liq4LmJ4Lih4LiX4Lix4LiaCivguKrguKHguJnguK3guIEKK+C4quC4oeC4meC4seC4ogor4Liq4Lih4LiZ4Liy4LiE4Li44LiTCivguKrguKHguJnguYnguLPguKrguKHguYDguJnguLfguYnguK0KK+C4quC4oeC4meC5ieC4s+C4q+C4meC5ieC4sgor4Liq4Lih4LmD4LiZCivguKrguKHguJrguLHguJXguLQKK+C4quC4oeC4muC4seC4leC4tOC4meC4seC4geC5gOC4peC4hwor4Liq4Lih4Lia4Lix4LiV4Li04Lic4Li54LmJ4LiU4Li1CivguKrguKHguJrguLjguIHguKrguKHguJrguLHguJkKK+C4quC4oeC4muC4uOC4jQor4Liq4Lih4Lia4Li54Lij4LiT4LmMCivguKrguKHguJrguLnguKPguJPguLLguI3guLLguKrguLTguJfguJjguLTguKPguLLguIrguKLguYwKK+C4quC4oeC4m+C4o+C4sOC4geC4reC4mgor4Liq4Lih4Lib4Lij4Liw4LiU4Li1CivguKrguKHguJvguKTguJTguLUKK+C4quC4oeC4m+C4pOC5heC4lOC4tQor4Liq4LmJ4Lih4Lib4LmI4Lit4LiiCivguKrguKHguJvguLHguIEKK+C4quC4oeC4nOC4uOC4qgor4Liq4LmJ4Lih4LmB4Lic4LmI4LiZCivguKrguKHguJ7guIcKK+C4quC4oeC4nuC4h+C4qOC5jAor4Liq4Lih4Lie4Lij4Lib4Liy4LiBCivguKrguKHguJ7guKUKK+C4quC4oeC4nuC4seC4leC4quC4owor4Liq4Lih4Lie4Liy4LiqCivguKrguKHguYDguJ7guIoKK+C4quC4oeC5guC4nuC4mOC4meC5jAor4Liq4Lih4LmC4Lie4LiY4Li0CivguKrguYnguKHguJ/guLHguIEKK+C4quC4oeC4oOC4ngor4Liq4Lih4Lig4Liy4LijCivguKrguKHguYLguKDguIQKK+C4quC4oeC5guC4oOC4igor4Liq4Lih4Lih4LiVCivguKrguKHguKHguJXguLQKK+C4quC4oeC4oeC4leC4tC0KK+C4quC4oeC4oeC4leC4tOC4kOC4suC4mQor4Liq4LmJ4Lih4Lih4Liw4LiC4Liy4LihCivguKrguKHguKHguLLguJXguKMKK+C4quC5ieC4oeC4oeC4t+C4rQor4Liq4Lih4Lih4Li44LiV4Li0CivguKrguKHguKHguLjguJXguLQtCivguKrguKHguKHguLjguJXguLTguJDguLLguJkKK+C4quC4oeC4oeC4ueC4pQor4Liq4Lih4Lih4Li54Lil4LmA4LiE4Lih4Li1CivguKrguKHguYLguKHguJcKK+C4quC4oeC4ouC4reC4oQor4Liq4Lih4LmC4Lii4LiECivguKrguKHguKMKK+C4quC4oeC4oy0KK+C4quC4oeC4o+C4lAor4Liq4Lih4Lij4Lig4Li54Lih4Li0CivguKrguKHguKPguKPguJYKK+C4quC4oeC4o+C4o+C4li0KK+C4quC4oeC4o+C4o+C4luC4meC4sAor4Liq4Lih4Lij4Lij4LiW4Lig4Liy4LieCivguKrguKHguKPguKoKK+C4quC4oeC4o+C4ueC5iQor4Liq4Lih4Lik4LiU4Li1CivguKrguKHguKTguJXguLQKK+C4quC4oeC4pOC5heC4lOC4tQor4Liq4LmJ4Lih4Lil4Li04LmJ4LihCivguKrguKHguKfguLHguKIKK+C4quC4oeC4p+C4suC4ouC4sAor4Liq4Lih4Liq4Lix4LiBCivguKrguYnguKHguKrguLHguJnguJTguLLguJkKK+C4quC4oeC4quC4ueC5iAor4Liq4Lih4LmA4Liq4Lij4LmH4LiICivguKrguYnguKHguYDguKrguLXguYnguKLguKcKK+C4quC4oeC4q+C4meC5ieC4suC4quC4oeC4leC4sgor4Liq4Lih4LmA4Lir4LiV4Li44Liq4Lih4Lic4LilCivguKrguKHguK0KK+C4quC4oeC4reC4geC4suC4meC4mQor4Liq4Lih4Lit4LiHCivguKrguKHguK3guIfguJXguLLguKIKK+C4quC4oeC4reC4h+C4neC5iOC4rQor4Liq4Lih4Lit4LiI4Li14LiZCivguKrguKHguK3guJfguLDguYDguKUKK+C4quC4oeC4reC4quC4s+C5gOC4oOC4sgor4Liq4Lih4Lit4LmJ4Liy4LiHCivguKrguKHguLHguIQKK+C4quC4oeC4seC4hOC4owor4Liq4Lih4Lix4LiE4Lij4Lie4Lij4Lij4LiE4Lie4Lin4LiBCivguKrguKHguLHguITguKPguKrguKHguLIKK+C4quC4oeC4seC4hOC4o+C4quC4oeC4suC4mQor4Liq4Lih4Lix4LiH4LiE4Li1CivguKrguKHguLHguIoKK+C4quC4oeC4seC4iuC4iuC4sgor4Liq4Lih4Lix4LiN4LiN4LiyCivguKrguKHguLHguJUKK+C4quC4oeC4seC4mQor4Liq4Lih4Lix4LiZ4LiV4LmMCivguKrguKHguLHguKIKK+C4quC4oeC4seC4ouC5gOC4geC5iOC4sgor4Liq4Lih4Lix4Lii4LmD4Lir4Lih4LmICivguKrguKHguLIKK+C4quC4oeC4suC4hOC4oQor4Liq4Lih4Liy4LiI4Liy4LijCivguKrguKHguLLguIrguLTguIEKK+C4quC4oeC4suC4l+C4suC4mQor4Liq4Lih4Liy4LiY4Li0CivguKrguKHguLLguJktCivguKrguKHguLLguJnguITguJXguLQKK+C4quC4oeC4suC4meC4ieC4seC4meC4l+C5jAor4Liq4Lih4Liy4LiZ4Liq4Lix4LiH4Lin4Liy4LiqCivguKrguKHguLLguJrguLHguJXguLQKK+C4quC4oeC4suC4nuC4seC4meC4mOC4o+C4seC4kAor4Liq4Lih4Liy4LiqCivguKrguKHguYjguLPguYDguKrguKHguK0KK+C4quC4oeC4tOC4hwor4Liq4Lih4Li04LiH4LiX4Lit4LiHCivguKrguKHguLTguIfguJ7guKPguLLguKIKK+C4quC4oeC4tOC4h+C4oeC4tOC5iOC4h+C4iuC4suC4ogor4Liq4Lih4Li04LiVCivguKrguKHguLTguJXguLQKK+C4quC4oeC4tOC4l+C4mOC5jAor4Liq4Lih4Li04LiX4LiY4Li0CivguKrguKHguLUKK+C4quC4oeC4teC4mwor4Liq4Lih4Li14LijCivguKrguKHguLjguIEKK+C4quC4oeC4uOC4iOC4iOC4seC4ogor4Liq4Lih4Li44LiI4LmA4LiJ4LiXCivguKrguKHguLjguIjguYDguInguJctCivguKrguKHguLjguIjguYDguInguJfguJvguKvguLLguJkKK+C4quC4oeC4uOC4j+C4kOC4suC4mQor4Liq4Lih4Li44LiUCivguKrguKHguLjguJTguYTguJfguKIKK+C4quC4oeC4uOC4lOC4m+C4ueC4oeC5gOC4lOC4tOC4meC4l+C4suC4hwor4Liq4Lih4Li44LiV4LiW4Liy4LiZCivguKrguKHguLjguJfguKMKK+C4quC4oeC4uOC4l+C4oy0KK+C4quC4oeC4uOC4l+C4o+C5guC4hOC4lOC4oQor4Liq4Lih4Li44LiX4Lij4LmC4LiI4LijCivguKrguKHguLjguJfguKPguKjguLLguKrguJXguKPguYwKK+C4quC4oeC4uOC4l+C4o+C5gOC4quC4meC4sgor4Liq4Lih4Li44LiX4Lix4LiiCivguKrguKHguLjguJkKK+C4quC4oeC4uOC4meC5hOC4nuC4owor4Liq4Lih4Li44Lil4LmB4Lin4LmJ4LiHCivguKrguKHguLjguKstCivguKrguKHguLjguKvguYwKK+C4quC4oeC4uOC4q+C4geC4peC4suC5guC4q+C4oQor4Liq4Lih4Li44Lir4LmA4LiX4Lio4Liy4Lig4Li04Lia4Liy4LilCivguKrguKHguLjguKvguJnguLLguKEKK+C4quC4oeC4uOC4q+C4meC4suC4ouC4gQor4Liq4Lih4Li44Lir4Lib4Lij4Liw4LiY4Liy4LiZCivguKrguKHguLjguKvguJ7guKPguLDguIHguKXguLLguYLguKvguKEKK+C4quC5guC4oeC4mOC4suC4mQor4Liq4LmC4Lih4Liq4LijCivguKrguYLguKHguKrguKPguKrguLHguJnguJnguLTguJrguLLguJUKK+C4quC4ouC4lAor4Liq4Lii4LiU4Liq4Lii4Lit4LiHCivguKrguKLguJTguYHguKrguKLguIcKK+C4quC4ouC4meC4sAor4Liq4Lii4LiaCivguKrguKLguKHguJ7guKMKK+C4quC4ouC4oeC4oOC4uQor4Liq4Lii4Lit4LiHCivguKrguKLguK3guJkKK+C4quC4ouC4seC4oeC4nuC4owor4Liq4Lii4Lix4Lih4Lin4Lij4LiyCivguKrguKLguLLguKEKK+C4quC4ouC4suC4oS0KK+C4quC4ouC4suC4oeC4o+C4seC4kAor4Liq4Lii4Liy4LiiCivguKrguKLguLTguKcKK+C4quC4ouC4tOC5ieC4pwor4Liq4Lii4Li44LmI4LiZCivguKrguKLguLjguKHguJ7guKMKK+C4quC4ouC4uOC4oeC4oOC4uQor4Liq4LijCivguKrguKPguIEKK+C4quC4o+C4hwor4Liq4Lij4LmI4LiHCivguKrguKPguI/guLAKK+C4quC4o+C4ky0KK+C4quC4o+C4k+C4hOC4oeC4meC5jAor4Liq4Lij4LiT4LiV4Lij4Lix4LiiCivguKrguKPguJPguLAKK+C4quC4o+C4k+C4suC4hOC4oeC4meC5jAor4Liq4Lij4LiU4Lix4LiBCivguKrguKPguJTguLbguYjguJkKK+C4quC4o+C4lOC4t+C5iOC4mQor4Liq4Lij4LiV4LiwCivguKrguKPguJXguLHguIEKK+C4quC4o+C4l+C4sAor4Liq4Lij4LiX4Li24LiHCivguKrguKPguYHguJfguJoKK+C4quC4o+C4meC4uOC4gQor4Liq4Lij4LmA4LiZ4Liy4LiwCivguKrguKPguYTguJkKK+C4quC4o+C4mgor4Liq4Lij4Lia4LiaCivguKrguKPguJrguLHguJoKK+C4quC4o+C4ngor4Liq4Lij4LmA4Lie4LiK4LiNCivguKrguKPguKDguLAKK+C4quC4o+C4oOC4seC4jeC4jeC4sAor4Liq4Lij4Lig4Li5CivguKrguKPguKEKK+C4quC4o+C4owor4Liq4Lij4Lij4LiE4LmMCivguKrguKPguKPguJ4KK+C4quC4o+C4o+C4ni0KK+C4quC4o+C4o+C4nuC4hOC4o+C4suC4qgor4Liq4Lij4Lij4Lie4LiE4Li44LiTCivguKrguKPguKPguJ7guJnguLLguKEKK+C4quC4o+C4o+C4nuC4quC4suC4oeC4tOC4lQor4Liq4Lij4Lij4Lie4Lix4LiK4LiNCivguKrguKPguKPguJ7guLLguIHguKMKK+C4quC4o+C4o+C4nuC4suC4h+C4hOC5jAor4Liq4Lij4Lij4LmA4Lie4LiK4LiNCivguKrguKPguKPguYDguJ7guIrguLjguJTguLIKK+C4quC4o+C4o+C5gOC4nuC4iuC4uOC4lOC4suC4jeC4suC4kwor4Liq4Lij4Lij4Lin4LiHCivguKrguKPguKPguYDguKrguKPguLTguI0KK+C4quC4o+C4o+C5geC4quC4o+C5ieC4hwor4Liq4Lij4Lil4LiZCivguKrguKPguKXguKEKK+C4quC4o+C4peC4oeC4quC4peC4p+C4mQor4Liq4Lij4Lil4Lit4LiUCivguKrguKPguKXguK3guJkKK+C4quC4o+C4peC4sAor4Liq4Lij4Lil4LmJ4Liy4LiiCivguKrguKPguKXguLTguJQKK+C4quC4o+C5gOC4peC4ggor4Liq4Lij4Lin4LiHCivguKrguKPguKfguIfguYDguKoKK+C4quC4o+C4p+C4mwor4Liq4Lij4Lin4LihCivguKrguKPguKfguKHguIrguLXguJ4KK+C4quC4o+C4p+C4pQor4Liq4Lij4Lin4Lil4LmA4LiqCivguKrguKPguKfguKXguYDguKrguYDguK7guK7guLIKK+C4quC4o+C5gOC4quC4o+C4tOC4jQor4Liq4Lij4LmJ4Lit4LiiCivguKrguKPguYnguK3guKLguJfguK3guIcKK+C4quC4o+C5ieC4reC4ouC4l+C4sOC5geC4ogor4Liq4Lij4LmJ4Lit4Lii4LiZ4LiB4LmA4LiC4LiyCivguKrguKPguYnguK3guKLguJnguYnguLPguJzguLbguYnguIcKK+C4quC4o+C5ieC4reC4ouC4o+C4sOC4ouC5ieC4sgor4Liq4Lij4LmJ4Lit4Lii4LmA4Lio4Lij4LmJ4LiyCivguKrguKPguYnguK3guKLguKrguJkKK+C4quC4o+C5ieC4reC4ouC4reC5iOC4reC4mQor4Liq4Lij4LmJ4Lit4Lii4Lit4Li04LiZ4LiX4LiZ4Li04LilCivguKrguKPguLAKK+C4quC4o+C4sOC4geC4rQor4Liq4Lij4Liw4LiE4Lij4Liy4LiNCivguKrguKPguLDguJTguLAKK+C4quC4o+C4sOC4l+C5ieC4reC4mQor4Liq4Lij4Liw4Lie4Lij4Lix4LmI4LiHCivguKrguKPguLDguK3guLLguJQKK+C4quC4o+C4sOC4reC4t+C5ieC4mQor4Liq4Lij4Lix4LmI4LiHCivguKrguKPguLHguKrguKfguJTguLUKK+C4quC4o+C5iOC4suC4hwor4Liq4Lij4LmJ4Liy4LiHCivguKrguKPguYnguLLguIfguKfguLTguKHguLLguJnguYPguJnguK3guLLguIHguLLguKgKK+C4quC4o+C5ieC4suC4h+C4quC4o+C4o+C4hOC5jAor4Liq4Lij4Liy4LiNCivguKrguKPguYnguLLguKfguYDguKrguLXguKLguKcKK+C4quC4o+C4tOC4lQor4Liq4Lij4Li14LmJCivguKrguKPguLXguKMtCivguKrguKPguLXguKPguIHguLTguIgKK+C4quC4o+C4teC4o+C4mOC4suC4leC4uAor4Liq4Lij4Li14Lij4Lin4Li04LiX4Lii4LiyCivguKrguKPguLXguKPguKjguLLguKrguJXguKPguYwKK+C4quC4o+C4teC4o+C4sAor4Liq4Lij4Li14Lij4Lix4LiH4LiE4Liy4LijCivguKrguKPguLXguKPguLLguIfguITguLLguKMKK+C4quC4o+C4teC4quC4pOC4mgor4Liq4Lij4Li44LiBCivguKrguKPguLjguIHguYDguIHguKPguLIKK+C4quC4o+C4uOC4hwor4Liq4Lij4Li44LmC4LiZ4LiBCivguKrguKPguLjguJsKK+C4quC4o+C4uOC4quC4o+C4sAor4Liq4Lij4Li54LibCivguKrguYLguKPguIoKK+C4quC4pOC4gQor4Liq4Lik4LiE4Liy4LilCivguKrguKTguJUKK+C4quC4pOC4qeC4juC4tQor4Liq4Lik4Lip4LiP4LmMCivguKrguKUKK+C4quC4peC4lAor4Liq4Lil4LiaCivguKrguKXguJrguYTguKrguKUKK+C4quC4peC4muC5gOC4q+C4oeC4t+C4reC4lAor4Liq4Lil4Lin4LiZCivguKrguKXguKfguKIKK+C4quC4peC4reC4lAor4Liq4Lil4Lit4LiZCivguKrguKXguK3guKIKK+C4quC4peC4sAor4Liq4Lil4Liw4Liq4Lil4Lin4LiiCivguKrguKXguLHguIEKK+C4quC4peC4seC4geC5gOC4geC4peC4teC4ouC4pwor4Liq4Lil4Lix4LiB4LmA4LiV4LmJCivguKrguKXguLHguIHguYDguJ7guIrguKMKK+C4quC4peC4seC4geC4quC4s+C4hOC4seC4jQor4Liq4Lil4Lix4LiB4LmA4Liq4Lil4LiyCivguKrguKXguLHguIHguKvguKXguLHguIcKK+C4quC4peC4seC4lAor4Liq4Lil4Lix4LiU4LmE4LiUCivguKrguKXguLHguJoKK+C4quC4peC4seC4muC4ieC4suC4gQor4Liq4Lil4Lix4LinCivguKrguKXguLIKK+C4quC4peC4suC4gQor4Liq4Lil4Liy4LiB4LiB4Li04LiZ4LmB4Lia4LmI4LiHCivguKrguKXguLLguIHguIHguLTguJnguKPguKfguJoKK+C4quC4peC4suC4geC4oOC4seC4lQor4Liq4Lil4Liy4LiHCivguKrguKXguYnguLLguIcKK+C4quC4peC4suC4lAor4Liq4Lil4Liy4LiV4Lix4LiZCivguKrguKXguLLguJoKK+C4quC4peC4suC4ogor4Liq4Lil4Liy4LmA4Lir4Li04LiZCivguKrguKXguLTguJQKK+C4quC4peC4tOC4pQor4Liq4Lil4Li24LiBCivguKrguKXguLbguIcKK+C4quC4peC4uOC4lQor4Liq4Lil4Li44LiaCivguKrguKXguLjguKHguJ7guKMKK+C4quC5geC4peC4hwor4Liq4LinLQor4Liq4Lin4LiBCivguKrguKfguIHguKPguKPguKEKK+C4quC4p+C4geC4suC4o+C4ouC5jAor4Liq4LmJ4Lin4LiHCivguKrguKfguJQKK+C4quC4p+C4mQor4Liq4LmI4Lin4LiZCivguKrguYjguKfguJnguIHguKXguLLguIcKK+C4quC4p+C4meC4hOC4p+C4seC4mQor4Liq4Lin4LiZ4LiE4Lin4Liy4LihCivguKrguYjguKfguJnguYTguJTguYnguKrguYjguKfguJnguYDguKrguLXguKIKK+C4quC5iOC4p+C4meC4leC4seC4pwor4Liq4LmI4Lin4LiZ4LiX4LmJ4Lit4LiH4LiW4Li04LmI4LiZCivguKrguKfguJnguYHguJfguIcKK+C4quC5iOC4p+C4meC4m+C4o+C4sOC4geC4reC4mgor4Liq4Lin4LiZ4Lib4Liy4LiB4Liq4Lin4LiZ4LiE4LizCivguKrguYjguKfguJnguJzguKrguKEKK+C4quC5iOC4p+C4meC4oOC4ueC4oeC4tOC4oOC4suC4hAor4Liq4LmI4Lin4LiZ4Lij4Lin4LihCivguKrguYjguKfguJnguKXguJQKK+C4quC4p+C4meC4quC4meC4suC4oQor4Liq4LmI4Lin4LiZ4Liq4Lix4LiUCivguKrguYjguKfguJnguKvguJnguYnguLIKK+C4quC5iOC4p+C4meC4q+C4peC4seC4hwor4Liq4Lin4LiZ4LiwCivguKrguKfguJnguLLguIHguLLguKMKK+C4quC4p+C4meC4tOC4lQor4Liq4Lin4LiZ4Li14LiiLQor4Liq4Lin4LiaCivguKrguKfguKDguLLguJ4KK+C4quC4p+C4oQor4Liq4LmJ4Lin4LihCivguKrguKfguKHguIHguK3guJQKK+C4quC4p+C4oeC4o+C4reC4ogor4Liq4Lin4Lih4Lir4Lix4Lin4LmC4LiC4LiZCivguKrguKfguKIKK+C4quC5iOC4p+C4ogor4Liq4LmJ4Lin4LiiCivguKrguKfguKLguYHguJXguYjguKPguLnguJsg4LiI4Li54Lia4LmE4Lih4LmI4Lir4Lit4LihCivguKrguKfguKLguKEKK+C4quC4p+C4ouC4oeC4nuC4owor4Liq4Lin4Lii4Lih4Lig4Li5CivguKrguYnguKfguKLguYDguKrguLXguYnguKLguKcKK+C4quC4p+C4owor4Liq4Lin4Lij4Lij4LiELQor4Liq4Lin4Lij4Lij4LiE4LmMCivguKrguKfguKPguKPguITguJUKK+C4quC4p+C4o+C4o+C4hOC4muC4lOC4tQor4Liq4Lin4Lij4Lij4LiE4LmM4Lit4Lii4Li54LmI4LmD4LiZ4Lit4LiBIOC4meC4o+C4geC4reC4ouC4ueC5iOC5g+C4meC5g+C4iAor4Liq4Lin4Lij4Lij4LiE4Liy4Lil4Lix4LiiCivguKrguKfguKPguKPguKLguLIKK+C4quC4p+C4o+C4suC4iuC4ouC5jAor4Liq4Lin4LiwCivguKrguKfguLHguKrguJTguLTguYwKK+C4quC4p+C4seC4quC4lOC4tOC4geC4suC4owor4Liq4Lin4Lix4Liq4LiU4Li1CivguKrguKfguLHguKrguJXguLQKK+C4quC4p+C4seC4quC4leC4tOC4geC4sAor4Liq4Lin4LiyCivguKrguKfguLLguITguJUKK+C4quC4p+C4suC4hwor4Liq4Lin4LmI4Liy4LiHCivguKrguKfguYjguLLguIfguYTguKrguKcKK+C4quC4p+C4suC4lAor4Liq4Lin4Liy4LiU4Li0CivguKrguKfguLLguJXguLUKK+C4quC4p+C4suC4lwor4Liq4Lin4LmI4Liy4LiZCivguKrguKfguYnguLLguJkKK+C4quC4p+C4suC4mgor4Liq4Lin4Liy4Lib4Liy4LihCivguKrguKfguLLguKHguLQKK+C4quC4p+C4suC4oeC4tOC4meC4tQor4Liq4Lin4Liy4Lih4Li04Lig4Lix4LiB4LiU4Li04LmMCivguKrguKfguLLguKHguLUKK+C4quC4p+C4suC4ogor4Liq4Lin4Liy4Lii4Liq4LitCivguKrguKfguLLguKrguJTguLTguYwKK+C4quC4p+C4suC4q+C4sAor4Liq4Lin4Li04LiHCivguKrguKfguLTguIfguKrguKfguLLguKIKK+C4quC4p+C4tOC4jeC4jeC4suC4k+C4geC4l+C4o+C4seC4nuC4ouC5jAor4Liq4Lin4Li04LiV4LiK4LmMCivguKrguKrguLLguKMKK+C4quC4quC4suC4oy0KK+C4quC4quC4suC4o+C4meC4tOC4ouC4oQor4Liq4Liq4Li44Lij4LiwCivguKrguKrguLjguKPguLUKK+C4quC4qy0KK+C4quC4q+C4geC4o+C4k+C5jAor4Liq4Lir4LiB4Liy4LijCivguKrguKvguIjguKMKK+C4quC4q+C4iuC4suC4lQor4Liq4Lir4LiK4Liy4LiV4Li0CivguKrguKvguJjguKPguKPguKEKK+C4quC4q+C4mOC4o+C4o+C4oeC4tOC4gQor4Liq4Lir4Lia4Liy4LiZCivguKrguKvguJvguKPguLDguIrguLLguIrguLLguJXguLQKK+C4quC4q+C4nuC4seC4meC4mOC5jAor4Liq4Lir4Lie4Lix4LiZ4LiY4Lij4Lix4LiQCivguKrguKvguKDguLLguJ4KK+C4quC4q+C4oOC4suC4nuC5geC4o+C4h+C4h+C4suC4mQor4Liq4Lir4Lio4Li24LiB4Lip4LiyCivguKrguKvguLHguIoKK+C4quC4q+C4seC4oeC4muC4lOC4tQor4Liq4Lir4Lix4LiqLQor4Liq4Lir4Lix4Liq4LiY4Liy4Lij4LiyCivguKrguKvguLHguKrguJnguLHguKLguJnguYwKK+C4quC4q+C4seC4quC5gOC4meC4leC4owor4Liq4Lir4Lix4Liq4Lij4Lix4LiH4Liq4Li1CivguKrguKvguLHguKrguKrguLAKK+C4quC4q+C4seC4quC4sgor4Liq4Lir4Liy4LiiCivguKrguK0KK+C4quC5iOC4rQor4Liq4Lit4LiHCivguKrguYjguK3guIcKK+C4quC5ieC4reC4hwor4Liq4Lit4LiH4LmA4LiB4Lil4LitCivguKrguK3guIfguIjguLTguJXguKrguK3guIfguYPguIgKK+C4quC4reC4h+C5g+C4iAor4Liq4Lit4LiH4LiV4LmI4Lit4Liq4Lit4LiHCivguKrguK3guIfguJzguKEKK+C4quC4reC4h+C4neC4seC4geC4quC4reC4h+C4neC5iOC4suC4ogor4Liq4Lit4LiH4LmE4Lih4LmJCivguKrguK3guIfguKTguJTguLkKK+C4quC4reC4h+C4quC4peC4tuC4h+C5gOC4n+C4t+C5ieC4reC4hwor4Liq4Lit4LiH4Lir4LiZ4LmJ4LiyCivguKrguK3guJQKK+C4quC4reC4lOC4hOC4peC5ieC4reC4hwor4Liq4Lit4LiU4LmB4LiE4Lil4LmJ4LinCivguKrguK3guJTguYHguJnguKEKK+C4quC4reC4lOC4o+C4ueC5iQor4Liq4Lit4LiU4Lij4Li54LmJ4Liq4Lit4LiU4LmA4Lir4LmH4LiZCivguKrguK3guJTguKrguYjguK3guIcKK+C4quC4reC4lOC5g+C4quC5iAor4Liq4Lit4LiU4LmE4Liq4LmJCivguKrguK3guJkKK+C4quC5iOC4reC4mQor4Liq4Lit4LiZ4LiI4Lij4Liw4LmA4LiC4LmJ4LmD4Lir4LmJ4Lin4LmI4Liy4Lii4LiZ4LmJ4LizCivguKrguK3guJnguKvguJnguLHguIfguKrguLfguK3guKrguLHguIfguIbguKPguLLguIoKK+C4quC4reC4mgor4Liq4Lit4Lia4LiL4LmJ4Lit4LihCivguKrguK3guJrguJvguLLguIHguITguLMKK+C4quC4reC4muC4nuC4ouC4suC4mQor4Liq4Lit4Lia4LmE4Lil4LmICivguKrguK3guJrguKrguKfguJkKK+C4quC4reC4muC4quC4p+C4meC4l+C4p+C4meC4nuC4ouC4suC4mQor4Liq4Lit4Lib4Li54LiZCivguKrguK3guJ7guKXguK0KK+C4quC5ieC4reC4oQor4Liq4Lit4LiiCivguKrguK3guKLguJTguK3guIHguJ/guYnguLIKK+C4quC4reC4ouC4lOC4suC4pwor4Liq4Lit4Lii4Lic4LihCivguKrguK3guKLguYTguKMKK+C4quC5iOC4reC5gOC4quC4teC4ouC4lAor4Liq4LiwCivguKrguLDguIHguJQKK+C4quC4sOC4geC4rQor4Liq4Liw4LiB4Liy4LiHCivguKrguLDguIHguLLguKPguLAKK+C4quC4sOC4geC4suC4o+C4sOC4leC4suC4q+C4o+C4sgor4Liq4Liw4LiB4Li04LiUCivguKrguLDguYDguIHguYfguJQKK+C4quC4sOC5geC4gQor4Liq4Liw4LmB4LiB4Lin4Lix4Lil4Lii4LmMCivguKrguLDguYHguIHguYHguKrguIcKK+C4quC4sOC4hOC4o+C5ieC4rQor4Liq4Liw4LiE4Lij4Liy4LiNCivguKrguLDguITguYnguLLguJkKK+C4quC4sOC5gOC4h+C4suC4sOC4quC4sOC5geC4h+C4sAor4Liq4Liw4LmD4LiICivguKrguLDguJTguKEKK+C4quC4sOC4lOC4p+C4gQor4Liq4Liw4LiU4Lix4LiBCivguKrguLDguJTguLTguYnguIcKK+C4quC4sOC4lOC4tuC4hwor4Liq4Liw4LiU4Li34LitCivguKrguLDguJTguLjguYnguIcKK+C4quC4sOC4lOC4uOC5ieC4h+C4oeC4suC4owor4Liq4Liw4LiU4Li44LiUCivguKrguLDguJTguLjguJTguYPguIgKK+C4quC4sOC4lOC4uOC4lOC4leC4sgor4Liq4Liw4LiU4Li44LiU4Lir4Li5CivguKrguLDguYDguJTguYfguJQKK+C4quC4sOC5gOC4lOC4sgor4Liq4Liw4LmA4LiU4Liy4LiU4Li04LiZCivguKrguLDguYDguJTguLLguK3guLTguJnguYDguJTguLXguKIKK+C4quC4sOC5gOC4lOC4suC4sAor4Liq4Liw4LiV4LitCivguKrguLDguJXguK3guYDguJrguLIKK+C4quC4sOC4leC4suC4q+C4oeC4seC4mQor4Liq4Liw4LiV4Li2CivguKrguLDguJXguLfguK0KK+C4quC4sOC4leC4uAor4Liq4Liw4LmA4LiV4LmK4LiwCivguKrguLDguYLguJXguIEKK+C4quC4sOC4l+C4gQor4Liq4Liw4LiX4LiZCivguKrguLDguJfguYnguK3guJkKK+C4quC4sOC4l+C5ieC4reC4meC5g+C4iAor4Liq4Liw4LiX4LmJ4Liy4LiZCivguKrguLDguJfguLbguIEKK+C4quC4sOC4l+C4tuC4mQor4Liq4Liw4LiX4Li24LmI4LiZCivguKrguLDguYDguJfguLTguJkKK+C4quC4sOC5gOC4l+C4tOC5ieC4mQor4Liq4Liw4LmA4LiX4Li04LiZ4LiZ4LmJ4Liz4Liq4Liw4LmA4LiX4Li04LiZ4Lia4LiBCivguKrguLDguYDguJfguLfguK3guJkKK+C4quC4sOC5gOC4l+C4t+C5ieC4reC4mQor4Liq4Liw4LmA4LiX4Li34Lit4LiZ4LmD4LiICivguKrguLDguJrguLAKK+C4quC4sOC4muC4seC4gQor4Liq4Liw4Lia4Lix4LiB4LiI4LihCivguKrguLDguJrguLHguIHguKrguLDguJrguK3guKEKK+C4quC4sOC4muC4seC4lAor4Liq4Liw4Lia4Lix4LiU4LiB4LmJ4LiZCivguKrguLDguJrguLHguJTguKHguLfguK0KK+C4quC4sOC4muC4seC4lOC4o+C5ieC4reC4meC4quC4sOC4muC4seC4lOC4q+C4meC4suC4pwor4Liq4Liw4Lia4Lix4LiU4Lil4Li44LiB4Liq4Liw4Lia4Lix4LiU4LiZ4Lix4LmI4LiHCivguKrguLDguJrguLHguJTguKrguLDguJrguLTguYnguIcKK+C4quC4sOC4muC4seC4lOC4q+C4meC5ieC4sgor4Liq4Liw4Lia4Lix4LmJ4LiZCivguKrguLDguJrguLHguJnguIfguLIKK+C4quC4sOC4muC4seC4meC4h+C4suC4iOC4teC4mQor4Liq4Liw4Lia4Lix4LiZ4LiH4Liy4LiV4LmJ4LiZCivguKrguLDguJrguYnguLIKK+C4quC4sOC4muC5ieC4suC4q+C4seC4p+C5gOC4guC5iOC4sgor4Liq4Liw4Lia4Li5CivguKrguLDguYHguJrguIcKK+C4quC4sOC5gOC4m+C4sOC4quC4sOC4m+C4sAor4Liq4Liw4Lie4Lij4Lix4LiBCivguKrguLDguJ7guKPguLHguYjguIcKK+C4quC4sOC4nuC4o+C4tuC4h+C4geC4peC4seC4pwor4Liq4Liw4Lie4Lij4Li24LiaCivguKrguLDguJ7guLHguIEKK+C4quC4sOC4nuC4seC4hwor4Liq4Liw4Lie4Lix4LiUCivguKrguLDguJ7guLHguYnguJkKK+C4quC4sOC4nuC4suC4mQor4Liq4Liw4Lie4Liy4LiZ4LmB4LiC4Lin4LiZCivguKrguLDguJ7guLLguJnguIrguLHguIEKK+C4quC4sOC4nuC4suC4meC5gOC4iuC4t+C4reC4gQor4Liq4Liw4Lie4Liy4LiZ4LmA4LiU4Li04LiZ4LmA4Lij4Li34LitCivguKrguLDguJ7guLLguJnguJfguLjguYjguJkKK+C4quC4sOC4nuC4suC4meC5gOC4muC4teC5iOC4ouC4hwor4Liq4Liw4Lie4Liy4LiZ4Lib4Lil4LiyCivguKrguLDguJ7guLLguJnguYTguJ8KK+C4quC4sOC4nuC4suC4meC4peC4reC4ogor4Liq4Liw4Lie4Liy4LiZ4LmA4Liq4Li14LmJ4Lii4LinCivguKrguLDguJ7guLLguJnguKvguIEKK+C4quC4sOC4nuC4suC4meC4q+C4seC4mQor4Liq4Liw4Lie4Liy4LiiCivguKrguLDguJ7guLLguKLguYHguKXguYjguIcKK+C4quC4sOC5gOC4nuC4o+C5iOC4sgor4Liq4Liw4LmC4Lie4LiBCivguKrguLDguYDguKDguLIKK+C4quC4sOC5g+C4oOC5iQor4Liq4Liw4LmC4Lih4LiHCivguKrguLDguKPguLDguJXguLAKK+C4quC4sOC4o+C4sOC5geC4q+C4meC5iAor4Liq4Liw4Lil4Liw4Lib4Liw4LiV4Li44LmI4LiZCivguKrguLDguKXguLLguIcKK+C4quC4sOC4peC4tuC4oeC4quC4sOC4peC4t+C4rQor4Liq4Liw4Lin4Li14LmJ4LiU4Liq4Liw4Lin4LmJ4Liy4LiUCivguKrguLDguKrguKEKK+C4quC4sOC4quC4p+C4ogor4Liq4Liw4Liq4Liy4LiHCivguKrguLDguK3guLLguIcKK+C4quC4sOC4reC4suC4lAor4Liq4Liw4Lit4LmJ4Liy4LiZCivguKrguLDguK3guLTguYnguIcKK+C4quC4sOC4reC4tOC4lOC4quC4sOC5gOC4reC4teC4ouC4mQor4Liq4Liw4Lit4Li24LiBCivguKrguLDguK3guLbguIHguYDguILguYnguLLguYPguKrguYgKK+C4quC4sOC4reC4tuC4geC4quC4sOC4reC4t+C5ieC4mQor4Liq4Liw4Lit4Li34LmJ4LiZCivguKrguLDguYDguK3guYnguIcKK+C4quC4sOC5gOC4reC4pwor4Liq4Liw4LmA4Lit4Lit4LiwCivguKrguLDguYLguK3guJTguKrguLDguK3guIcKK+C4quC4sOC5hOC4rQor4Liq4Lix4LiBCivguKrguLHguIHguIHguLAKK+C4quC4seC4geC4geC4seC4iOC4iOC4sAor4Liq4Lix4LiB4LiB4Liy4LiiLQor4Liq4Lix4LiB4LiB4Liy4Lii4LiX4Li04LiQ4Li0CivguKrguLHguIHguIHguLLguKMtCivguKrguLHguIHguIHguLLguKPguLAKK+C4quC4seC4geC4guC4o+C4sgor4Liq4Lix4LiB4LiC4Li1CivguKrguLHguIHguILguLXguYnguYTguIHguYgKK+C4quC4seC4geC4j+C4sAor4Liq4Lix4LiB4LiV4LiwCivguKrguLHguIHguYHguJXguYjguKfguYjguLIKK+C4quC4seC4geC4ouC4sAor4Liq4Lix4LiB4Lin4LiyCivguKrguLHguIHguKfguYjguLIKK+C4quC4seC4geC4q+C4peC4suC4lAor4Liq4Lix4LiC4Lii4LiwCivguKrguLHguIQKK+C4quC4seC4hOC4hOC4sAor4Liq4Lix4LmI4LiHCivguKrguLHguIfguIHguKHguJfguKPguLHguJ7guKLguYwKK+C4quC4seC4h+C4geC4owor4Liq4Lix4LiH4LiB4Lij4LiT4Li1CivguKrguLHguIfguIHguLDguJXguLHguIcKK+C4quC4seC4h+C4geC4sOC4p+C4seC4hwor4Liq4Lix4LiH4LiB4Liw4Lin4Liy4LiUCivguKrguLHguIfguIHguLDguKrguLUKK+C4quC4seC4h+C4geC4seC4lAor4Liq4Lix4LiH4LiB4Lix4Lib4Lib4LiwCivguKrguLHguIfguIHguLIKK+C4quC4seC4h+C4geC4suC4owor4Liq4Lix4LiH4LiB4Liy4LioCivguKrguLHguIfguIHguLTguYDguKXguKoKK+C4quC4seC4h+C5gOC4geC4lQor4Liq4Lix4LiH4LmA4LiB4LiV4LiB4Liy4Lij4LiT4LmMCivguKrguLHguIfguIItCivguKrguLHguIfguILguYwKK+C4quC4seC4h+C4guC4geC4owor4Liq4Lix4LiH4LiC4LiVLQor4Liq4Lix4LiH4LiC4LiV4LiY4Lij4Lij4LihCivguKrguLHguIfguILguJXguLAKK+C4quC4seC4h+C4guC4ouC4sgor4Liq4Lix4LiH4LiC4Lil4Li04LiBCivguKrguLHguIfguILguKXguLTguIHguLIKK+C4quC4seC4h+C4guC4suC4owor4Liq4Lix4LiH4LiC4Liy4LijLQor4Liq4Lix4LiH4LiC4Liy4Lij4LiY4Lij4Lij4LihCivguKrguLHguIfguILguLLguKPguYLguKXguIEKK+C4quC4seC4h+C5gOC4guC4mwor4Liq4Lix4LiH4LmC4LiC4LigCivguKrguLHguIfguIQtCivguKrguLHguIfguITguYwKK+C4quC4seC4h+C4hOC4jeC4suC4leC4tAor4Liq4Lix4LiH4LiE4LihCivguKrguLHguIfguITguKEtCivguKrguLHguIfguITguKHguJnguLTguKLguKEKK+C4quC4seC4h+C4hOC4oeC4p+C4tOC4l+C4ouC4sgor4Liq4Lix4LiH4LiE4Lih4Lio4Liy4Liq4LiV4Lij4LmMCivguKrguLHguIfguITguKHguKjguLbguIHguKnguLIKK+C4quC4seC4h+C4hOC4oeC4quC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Liq4Lix4LiH4LiE4Lir4LiwCivguKrguLHguIfguITguLHguIcKK+C4quC4seC4h+C4hOC4suC4leC4sgor4Liq4Lix4LiH4LiE4Liy4Lii4LiZ4LiyCivguKrguLHguIfguITguLLguKLguJnguLLguKIKK+C4quC4seC4h+C4hOC4teC4lQor4Liq4Lix4LiH4LiE4Li14LiV4Li0CivguKrguLHguIfguYDguITguYfguJQKK+C4quC4seC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Liq4Lix4LiH4LiGLQor4Liq4Lix4LiH4LiG4LiB4Lij4Lij4LihCivguKrguLHguIfguIbguIHguLLguKPguLUKK+C4quC4seC4h+C4huC5gOC4luC4o+C4sAor4Liq4Lix4LiH4LiG4LiX4Liy4LiZCivguKrguLHguIfguIbguJnguLLguKLguIEKK+C4quC4seC4h+C4huC4m+C4suC5guC4oeC4geC4guC5jAor4Liq4Lix4LiH4LiG4Lig4Lix4LiVCivguKrguLHguIfguIbguYDguKDguJcKK+C4quC4seC4h+C4huC4oeC4k+C4keC4pQor4Liq4Lix4LiH4LiG4Lih4LiZ4LiV4Lij4Li1CivguKrguLHguIfguIbguKPguLLguIoKK+C4quC4seC4h+C4huC4quC4oOC4sgor4Liq4Lix4LiH4LiG4Liy4LiP4Li0CivguKrguLHguIfguIbguLLguJPguLHguJXguLQKK+C4quC4seC4h+C4huC4suC4l+C4tOC5gOC4quC4qgor4Liq4Lix4LiH4LiG4Liy4LiY4Li04LiB4Liy4LijCivguKrguLHguIfguIbguLLguJnguLjguKrguJXguLQKK+C4quC4seC4h+C4huC4suC4p+C4suC4qgor4Liq4Lix4LiH4LiU4Lix4LiBCivguKrguLHguIfguJvguLDguJXguLTguYHguKvguIfguLAKK+C4quC4seC4h+C4m+C4sOC4peC4tOC5gOC4q+C4h+C4sAor4Liq4Lix4LiH4LmC4Lii4LiECivguKrguLHguIfguYLguKLguIrguJnguYwKK+C4quC4seC4h+C4p+C4owor4Liq4Lix4LiH4Lin4Lix4LiI4LiJ4Lij4LiwCivguKrguLHguIfguKfguLHguJjguKLguLLguKIKK+C4quC4seC4h+C4p+C4suC4pQor4Liq4Lix4LiH4Lin4Liy4Lil4Lie4Lij4Liy4Lir4Lih4LiT4LmMCivguKrguLHguIfguKfguLLguKoKK+C4quC4seC4h+C5gOC4p+C4hOC4sAor4Liq4Lix4LiH4LmA4Lin4LiKCivguKrguLHguIfguYDguKfguKIKK+C4quC4seC4h+C5gOC4p+C4teC4ouC4mQor4Liq4Lix4LiH4Liq4LiB4Lik4LiVCivguKrguLHguIfguKrguIHguLLguKMKK+C4quC4seC4h+C4quC4lOC4oeC4oOC5jAor4Liq4Lix4LiH4Liq4LiZ4LiX4LiZ4LiyCivguKrguLHguYjguIfguKrguJnguJfguJnguLIKK+C4quC4seC5iOC4h+C4quC4oQor4Liq4Lix4LiH4Liq4Lij4Lij4LiE4LmMCivguKrguLHguYjguIfguKrguK3guJkKK+C4quC4seC4h+C4quC4suC4o+C4p+C4seC4jwor4Liq4Lix4LiH4Liq4Li04LiX4LiY4Li0CivguKrguLHguIfguKrguLjguJfguJjguYwKK+C4quC4seC4h+C4quC4uOC4l+C4mOC4tAor4Liq4Lix4LmI4LiH4LmA4Liq4Li14LiiCivguKrguLHguIfguKvguKMKK+C4quC4seC4h+C4q+C4o+C4k+C5jAor4Liq4Lix4LiH4Lir4Lij4Lij4LipCivguKrguLHguIfguKvguLLguKMKK+C4quC4seC4h+C4q+C4suC4o+C4tOC4oeC4l+C4o+C4seC4nuC4ouC5jAor4Liq4Lix4LiH4Lir4Liy4Lij4Li04Lih4LiwCivguKrguLHguIfguKvguLTguJUKK+C4quC4seC4iAor4Liq4Lix4LiILQor4Liq4Lix4LiI4LiB4Li04Lij4Li04Lii4LiyCivguKrguLHguIjguIjguLAKK+C4quC4seC4iOC4jeC4suC4kwor4Liq4Lix4LiI4LiZ4Li04Lii4LihCivguKrguLHguIjguJ7guIjguJnguYwKK+C4quC4seC4iuC4jC0KK+C4quC4seC4iuC4jOC4geC4owor4Liq4Lix4LiK4LiM4LiB4Liy4LijCivguKrguLHguIrguIzguLAKK+C4quC4seC4iuC4jOC4suC4ouC4sAor4Liq4Lix4LiK4LiM4Li4CivguKrguLHguIrguIzguLjguIHguKMKK+C4quC4seC4iuC4jOC4uOC4geC4suC4owor4Liq4Lix4LiN4LiI4LijCivguKrguLHguI3guIjguKPguYLguKPguIQKK+C4quC4seC4jeC4iOC4suC4owor4Liq4Lix4LiN4LmA4LiI4LiV4LiZ4LiyCivguKrguLHguI3guIrguLLguJUtCivguKrguLHguI3guIrguLLguJXguI3guLLguJMKK+C4quC4seC4jeC4iuC4suC4leC4tAor4Liq4Lix4LiN4LiM4LiyCivguKrguLHguI3guI3guLIKK+C4quC4seC4jeC4jeC4suC4kwor4Liq4Lix4LiN4LiN4Liy4Lia4Lix4LiV4LijCivguKrguLHguI3guI3guLLguJvguKPguLDguIHguLHguJnguIrguLXguKfguLTguJUKK+C4quC4seC4jeC4jeC4suC4m+C4o+C4sOC4geC4seC4meC4oOC4seC4ogor4Liq4Lix4LiN4LiN4Liy4Lin4Li04Lib4Lil4Liy4LiqCivguKrguLHguI3guI3guLUKK+C4quC4seC4jeC5guC4jeC4iuC4meC5jAor4Liq4Lix4LiN4Lib4Lij4Liw4LiB4Liy4LioCivguKrguLHguI3guYLguKLguIQKK+C4quC4seC4jeC4peC4seC4geC4qeC4k+C5jAor4Liq4Lix4LiQ4Li0CivguKrguLHguJPguJDguLLguJkKK+C4quC4seC4k+C4kOC4tOC4leC4tAor4Liq4Lix4LiT4LiR4LmMCivguKrguLHguJPguKvguYwKK+C4quC4seC4lAor4Liq4Lix4LiU4LiI4Lit4LiHCivguKrguLHguJTguKrguYjguKfguJkKK+C4quC4seC4lQor4Liq4Lix4LiVLQor4Liq4Lix4LiV4LiB4Liy4LijCivguKrguLHguJXguJXguJrguIfguIHguIoKK+C4quC4seC4leC4leC4muC4o+C4o+C4kwor4Liq4Lix4LiV4LiV4Lia4Li44Lip4Lii4LmMCivguKrguLHguJXguJXguLAKK+C4quC4seC4leC4leC4suC4qy0KK+C4quC4seC4leC4leC4suC4q+C4geC4suC4peC4tOC4gQor4Liq4Lix4LiV4LiV4Li5CivguKrguLHguJXguJYtCivguKrguLHguJXguJbguLHguJnguJTguKMKK+C4quC4seC4leC4luC4sgor4Liq4Lix4LiV4LiW4Li0CivguKrguLHguJXguJbguLgKK+C4quC4seC4leC4luC4uOC4qOC4suC4quC4meC4sgor4Liq4Lix4LiV4Lia4LiWCivguKrguLHguJXguJrguKPguKPguJMKK+C4quC4seC4leC4muC4o+C4tOC4oOC4seC4k+C4keC5jAor4Liq4Lix4LiV4Lia4Li44Lij4Li44LipCivguKrguLHguJXguKDguLHguJPguJHguYwKK+C4quC4seC4leC4oS0KK+C4quC4seC4leC4oeC4p+C4suC4owor4Liq4Lix4LiV4LiiLQor4Liq4Lix4LiV4Lii4LmMCivguKrguLHguJXguKLguJ7guKPguJUKK+C4quC4seC4leC4ouC4p+C4suC4l+C4tQor4Liq4Lix4LiV4Lii4Liy4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKrguLHguJXguKLguLLguJjguLTguKnguJDguLLguJkKK+C4quC4seC4leC4ouC4suC4muC4seC4mQor4Liq4Lix4LiV4LinLQor4Liq4Lix4LiV4Lin4LmMCivguKrguLHguJXguKfguJrguLLguKUKK+C4quC4seC4leC4p+C5geC4nuC4l+C4ouC5jAor4Liq4Lix4LiV4Lin4LmC4Lil4LiBCivguKrguLHguJXguKfguKfguLTguJfguKLguLIKK+C4quC4seC4leC4p+C4sgor4Liq4Lix4LiV4Lin4Liy4LijCivguKrguLHguJXguKrguJTguIEKK+C4quC4seC4l+C4mOC4o+C4o+C4oQor4Liq4Lix4LiX4LiY4LiyCivguKrguLHguJfguJjguLLguIjguKPguLTguJUKK+C4quC4seC4l+C4mOC4suC4mOC4tOC4gQor4Liq4Lix4LiX4LiY4Li04LiH4Lin4Li04Lir4Liy4Lij4Li04LiBCivguKrguLHguJfguJjguLTguJnguJfguKPguLXguKLguYwKK+C4quC4seC4l+C4mOC4tOC4p+C4tOC4q+C4suC4o+C4tOC4gQor4Liq4Lix4LiX4Lio4Liy4Liq4LiV4Lij4LmMCivguKrguLHguJkKK+C4quC4seC5iOC4mQor4Liq4Lix4LmJ4LiZCivguKrguLHguJnguYDguILguLIKK+C4quC4seC4meC4lOC4reC4mQor4Liq4Lix4LiZ4LiU4Liy4LiZCivguKrguLHguJnguJTguLLguJsKK+C4quC4seC4meC5gOC4lOC4gQor4Liq4Lix4LiZ4LmC4LiU4LipCivguKrguLHguJnguJXguYwKK+C4quC4seC4meC4leC4leC4tAor4Liq4Lix4LiZ4LiV4Liw4Lib4Liy4Lib4LiyCivguKrguLHguJnguJXguLDguKfguLIKK+C4quC4seC4meC4leC4tAor4Liq4Lix4LiZ4LiV4Li04LiB4LiwCivguKrguLHguJnguJXguLTguKDguLLguJ4KK+C4quC4seC4meC4leC4uOC4j+C4kOC4tQor4Liq4Lix4LiZ4LiW4Lij4LiwCivguKrguLHguJnguJbguKctCivguKrguLHguJnguJbguKfguYTguKHguJXguKPguLUKK+C4quC4seC4meC4luC4p+C4sAor4Liq4Lix4LiZ4LiW4Lix4LiVCivguKrguLHguJnguJbguLLguKMKK+C4quC4seC4meC4l+C4meC4sAor4Liq4Lix4LiZ4LiX4LiwCivguKrguLHguJnguJfguLHguJQKK+C4quC4seC4meC4l+C4seC4lOC4geC4o+C4k+C4tQor4Liq4Lix4LiZ4LiX4Lix4Liq4LiZ4LiwCivguKrguLHguJnguJfguLLguJkKK+C4quC4seC4meC4l+C4tOC4kOC4tOC4gS0KK+C4quC4seC4meC4l+C4tOC4qgor4Liq4Lix4LiZ4LmA4LiX4LiqCivguKrguLHguJnguYDguJfguKsKK+C4quC4seC4meC4mOC4suC4mQor4Liq4Lix4LiZ4LiZ4Li04LiY4Li0CivguKrguLHguJnguJnguLTguJrguLLguJUKK+C4quC4seC4meC4meC4tOC4p+C4suC4qgor4Liq4Lix4LiZ4LiZ4Li04LmA4Lin4LiqCivguKrguLHguJnguJnguLTguKnguJDguLLguJkKK+C4quC4seC4meC4m+C4seC4meC4meC5ieC4swor4Liq4Lix4LiZ4Lie4Lij4LmJ4Liy4LiZ4Liy4LiH4LmB4LitCivguKrguLHguJnguJ7guKPguYnguLLguKHguK3guI0KK+C4quC4seC4meC4nuC4o+C5ieC4suC4q+C4reC4oQor4Liq4Lix4LiZ4Lij4Lin4LiHCivguKrguLHguJnguKXguLbguIEKK+C4quC4seC4meC4quC4geC4pOC4lQor4Liq4Lix4LiZ4Lir4Lil4Lix4LiHCivguKrguLHguJnguKvguKXguLHguIfguKLguLLguKcKK+C4quC4seC4mgor4Liq4Lix4Lia4LmA4LiB4Lil4Li14Lii4LinCivguKrguLHguJrguYDguIfguLIKK+C4quC4seC4muC5gOC4iuC4t+C4reC4gQor4Liq4Lix4Lia4LiZ4LiBCivguKrguLHguJrguJvguKXguLHguJoKK+C4quC4seC4muC4m+C4peC4teC5iQor4Liq4Lix4Lia4Lib4Liw4LiC4Liy4LinCivguKrguLHguJrguJvguLDguKPguJQKK+C4quC4seC4muC5gOC4m+C4peC4teC5iOC4ouC4mQor4Liq4Lix4Lia4Liq4LiZCivguKrguLHguJrguKvguKXguLXguIEKK+C4quC4seC4m+C4hOC4seC4mgor4Liq4Lix4Lib4LiE4Lix4Lia4LiK4LmJ4Liy4LiHCivguKrguLHguJvguJQtCivguKrguLHguJvguJTguJkKK+C4quC4seC4m+C4lOC4m+C4geC4o+C4k+C5jAor4Liq4Lix4Lib4LiU4Lib4Lij4Liw4LiB4Lij4LiT4LmMCivguKrguLHguJvguJTguKrguJTguIEKK+C4quC4seC4m+C4lOC4suC4q+C5jAor4Liq4Lix4Lib4LiU4Liy4Lir4LiwCivguKrguLHguJvguJUtCivguKrguLHguJvguJXguKjguIEKK+C4quC4seC4m+C4l+C4mQor4Liq4Lix4Lib4Lib4LiwCivguKrguLHguJvguJvguLQKK+C4quC4seC4m+C4m+C4uOC4o+C4tOC4qi0KK+C4quC4seC4m+C4m+C4uOC4o+C4uOC4qQor4Liq4Lix4Lib4Lij4Liw4Lii4Li44LiX4LiY4LmMCivguKrguLHguJvguKvguIfguIEKK+C4quC4seC4m+C5gOC4q+C4o+C5iOC4rQor4Liq4Lix4LieCivguKrguLHguJ7guJ7guLAKK+C4quC4seC4nuC4nuC4seC4jeC4jeC4uQor4Liq4Lix4Lie4LmA4Lie4LmA4Lir4Lij4LiwCivguKrguLHguJ7guKLguK3guIEKK+C4quC4seC4oeC4muC4ueC4o+C4k+C5jAor4Liq4Lix4Lih4Lib4LiK4Lix4LiN4LiN4LiwCivguKrguLHguKHguJvguJfguLIKK+C4quC4seC4oeC4m+C4l+C4suC4mQor4Liq4Lix4Lih4Lib4Lii4Li44LiVCivguKrguLHguKHguJvguYLguKLguIQKK+C4quC4seC4oeC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jAor4Liq4Lix4Lih4Lib4Lij4Liw4Lir4Liy4LijCivguKrguLHguKHguJvguKPguLLguKLguKDguJ4KK+C4quC4seC4oeC4m+C4o+C4suC4ouC4tOC4geC4oOC4ngor4Liq4Lix4Lih4Lib4Lix4LiV4LiV4Li0CivguKrguLHguKHguJzguLHguJvguKXguLLguJsKK+C4quC4seC4oeC4nOC4seC4qgor4Liq4Lix4Lih4Lic4Lix4Liq4LiZ4Lit4LiBCivguKrguLHguKHguJzguLHguKrguYPguJkKK+C4quC4seC4oeC4nOC4seC4quC4quC4o+C4sAor4Liq4Lix4Lih4Lic4Lix4Liq4Lit4Lix4LiB4Lip4LijCivguKrguLHguKHguJ7guKUKK+C4quC4seC4oeC4nuC4q+C4uOC4peC4sgor4Liq4Lix4Lih4Lie4Lix4LiI4LiJ4LijLQor4Liq4Lix4Lih4Lie4Lix4LiI4LiJ4Lij4LiJ4Li04LiZ4LiX4LmMCivguKrguLHguKHguJ7guLHguJXguKrguKMKK+C4quC4seC4oeC4nuC4seC4l+C4mOC5jAor4Liq4Lix4Lih4Lie4Lix4LiZ4LiYLQor4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMCivguKrguLHguKHguJ7guLHguJnguJjguJnguYwKK+C4quC4seC4oeC4nuC4seC4meC4mOC4oOC4suC4ngor4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4Lih4Li04LiV4LijCivguKrguLHguKHguJ7guLHguJnguJjguYTguKHguJXguKPguLUKK+C4quC4seC4oeC4nuC4suC4mOC4sAor4Liq4Lix4Lih4Lie4Liy4Lir4LiZ4LmMCivguKrguLHguKHguJ7guLLguKvguLAKK+C4quC4seC4oeC4nuC4uOC4l+C4mC0KK+C4quC4seC4oeC4nuC4uOC4l+C4mOC4sAor4Liq4Lix4Lih4LmC4Lie4LiY4Li0CivguKrguLHguKHguKDguKfguLAKK+C4quC4seC4oeC4oOC5gOC4p+C4quC4tQor4Liq4Lix4Lih4Lig4Lix4LiVCivguKrguLHguKHguKDguLHguJXguJXguLAKK+C4quC4seC4oeC4oOC4suC4o+C4sAor4Liq4Lix4Lih4Lig4Liy4Lip4LiT4LmMCivguKrguLHguKHguYDguKDguJfguLAKK+C4quC4seC4oeC5guC4oOC4hOC4geC4suC4ogor4Liq4Lix4Lih4Lih4LiZ4LiyCivguKrguLHguKHguKHguLHguJvguJjguLLguJkKK+C4quC4seC4oeC4oeC4sgor4Liq4Lix4Lih4Lih4Liy4LiB4Lix4Lih4Lih4Lix4LiZ4LiV4LiwCivguKrguLHguKHguKHguLLguIjguKPguLTguKLguLIKK+C4quC4seC4oeC4oeC4suC4iuC4teC4ngor4Liq4Lix4Lih4Lih4Liy4LiX4Li04LiQ4Li0CivguKrguLHguKHguKHguLLguKfguLLguIjguLIKK+C4quC4seC4oeC4oeC4suC4p+C4suC4ouC4suC4oeC4sAor4Liq4Lix4Lih4Lih4Liy4Liq4LiV4Li0CivguKrguLHguKHguKHguLLguKrguKHguLLguJjguLQKK+C4quC4seC4oeC4oeC4suC4quC4seC4h+C4geC4seC4m+C4m+C4sAor4Liq4Lix4Lih4Lih4Liy4Lit4Liy4LiK4Li14Lin4LiwCivguKrguLHguKHguYLguKHguJfguJnguLXguKLguIHguJbguLIKK+C4quC4seC4oeC4pOC4l+C4mOC4tC0KK+C4quC4seC4oeC4pOC4l+C4mOC4tOC5jAor4Liq4Lix4Lih4Lik4LiX4LiY4Li04Lio4LiBCivguKrguLHguKLguJnguYwKK+C4quC4seC4peC4peC4suC4my0KK+C4quC4seC4peC5gOC4peC4gi0KK+C4quC4seC4quC4lOC4tQor4Liq4Lix4Liq4LiVLQor4Liq4Lix4Liq4LiV4LiX4Li04LiQ4Li0CivguKrguLHguKrguKrguLAKK+C4quC4seC4quC4quC4uAor4Liq4Lix4Liq4Liq4Li5CivguKrguLHguKrguLjguKPguLUKK+C4quC4sgor4Liq4LmI4LiyCivguKrguLLguIEKK+C4quC4suC4geC4geC4sOC5gOC4muC4t+C4rQor4Liq4Liy4LiB4Lij4Lij4LiI4LmMCivguKrguLLguIHguKUKK+C4quC4suC4geC4qeC4tOC4mQor4Liq4Liy4LiB4Lip4Li1CivguKrguLLguIHguKvguKLguLLguIEKK+C4quC4suC4geC4seC4iOC4ieC4sgor4Liq4Liy4LiB4Lix4Lil4Lii4LmMCivguKrguLLguIHguLTguKItCivguKrguLLguIHguLTguKLguJrguLjguJXguKMKK+C4quC4suC4geC4tOC4ouC4oeC4uOC4meC4tQor4Liq4Liy4LiB4Li04Lii4LiwCivguKrguLLguYDguIEKK+C4quC5iOC4suC4guC4meC4uOC4mQor4Liq4Liy4LiC4LiyCivguKrguYjguLLguYTguILguYkKK+C4quC4suC4hOC4owor4Liq4Liy4LiE4LmA4Lij4LioCivguKrguLLguITguLkKK+C4quC4suC4hOC4ueC4peC4suC4mQor4Liq4Liy4LiE4Li54Lin4Li04Lil4Liy4LiUCivguKrguLLguIcKK+C4quC5ieC4suC4hwor4Liq4Liy4LiH4LiE4Lil4Li34LmI4LiZCivguKrguLLguIfguKvguYjguLIKK+C4quC4suC4juC4gQor4Liq4Liy4LiP4Li04LiBLQor4Liq4Liy4LiTLQor4Liq4Liy4LiT4Li1CivguKrguLLguJQKK+C4quC4suC4lOC5guC4hOC4peC4mQor4Liq4Liy4LiU4LiZ4LmJ4Liz4Lij4LiU4LiB4Lix4LiZCivguKrguLLguJTguYDguKrguLXguKLguYDguJfguYDguKrguLXguKIKK+C4quC4suC4lQor4Liq4Liy4LiV4Lij4LiyCivguKrguLLguYTguJbguKIKK+C4quC4suC4l+C4owor4Liq4Liy4LiX4Li04LiqCivguKrguLLguJfguLTguKotCivguKrguLLguJfguLTguKrguKXguLHguIHguKnguJPguYwKK+C4quC4suC4l+C4uAor4Liq4Liy4LmC4LiXCivguKrguLLguJjguIEKK+C4quC4suC4mOC4oi0KK+C4quC4suC4mOC4ouC4sAor4Liq4Liy4LiY4Lii4Liy4LiiCivguKrguLLguJjguLLguKPguJMtCivguKrguLLguJjguLLguKPguJPguYwKK+C4quC4suC4mOC4suC4o+C4k+C4oOC4seC4ogor4Liq4Liy4LiY4Liy4Lij4LiT4Lij4Lix4LiQCivguKrguLLguJjguLLguKPguJPguKrguJbguLLguJkKK+C4quC4suC4mOC4suC4o+C4k+C4quC4oeC4muC4seC4leC4tAor4Liq4Liy4LiY4Liy4Lij4LiT4Liq4Lih4Lia4Lix4LiV4Li04LiC4Lit4LiH4LmB4Lic4LmI4LiZ4LiU4Li04LiZCivguKrguLLguJjguLLguKPguJPguKrguLjguIIKK+C4quC4suC4mOC4suC4o+C4k+C4sAor4Liq4Liy4LiY4Liy4Lij4LiT4Li54Lib4LiB4Liy4LijCivguKrguLLguJjguLLguKPguJPguLnguJvguYLguKDguIQKK+C4quC4suC4mOC4tOC4lQor4Liq4Liy4LiY4Li4CivguKrguLLguJjguLjguIHguLLguKMKK+C4quC4suC4mOC4uOC4iuC4mQor4Liq4Liy4LiY4Li44Liq4LiwCivguKrguLLguJkKK+C4quC5iOC4suC4mQor4Liq4Liy4LiZ4LiV4Lin4LiwCivguKrguLLguJnguLgKK+C4quC4suC4meC4uOC4qOC4tOC4qeC4ouC5jAor4Liq4Liy4LiZ4Li5CivguKrguLLguJoKK+C4quC4suC4muC4guC4meC4uOC4mQor4Liq4Liy4Lia4LmB4Lij4LmJ4LiHCivguKrguLLguJrguYHguKPguYnguIfguKrguLLguJrguIHguLIKK+C4quC4suC4muC4quC4ueC4jQor4Liq4Liy4Lia4LmA4Liq4Li34LitCivguKrguLLguJrguLLguJkKK+C4quC4suC4muC4suC4meC4mOC4hwor4Liq4Liy4LibCivguKrguLLguJvguYTguJXguKIKK+C4quC4suC4m+C4quC4o+C4owor4Liq4Liy4LihCivguKrguLLguKHguIHguKnguLHguJXguKPguLTguKLguYwKK+C4quC4suC4oeC5gOC4geC4peC4rQor4Liq4Liy4Lih4LmB4LiB4LmJ4LinCivguKrguLLguKHguILguLIKK+C4quC4suC4oeC4guC4uOC4oQor4Liq4Liy4Lih4LmA4LiC4Li14LmJ4Lii4LinCivguKrguLLguKHguITguLLguJkKK+C4quC4suC4oeC4h+C5iOC4suC4oQor4Liq4Liy4Lih4LiK4Li44LiBCivguKrguLLguKHguYHguIvguYgKK+C4quC4suC4oeC5gOC4k+C4owor4Liq4Liy4Lih4LmA4LiT4Lij4Li1CivguKrguLLguKHguJXguLIKK+C4quC4suC4oeC4meC4lS0KK+C4quC4suC4oeC4meC4leC5jAor4Liq4Liy4Lih4LiZ4LiV4Lij4Liy4LiKCivguKrguLLguKHguYPguJrguYDguJbguLIKK+C4quC4suC4oeC5gOC4nuC4peC4h+C4leC4geC4oeC5ieC4suC4leC4suC4ogor4Liq4Liy4Lih4LmA4Lih4LiyCivguKrguLLguKHguKLguJfguKPguLHguJ7guKLguYwKK+C4quC4suC4oeC4o+C4qgor4Liq4Liy4Lih4LilCivguKrguLLguKHguKXguYnguK0KK+C4quC4suC4oeC4peC4s+C4hOC4suC4mQor4Liq4Liy4Lih4Lin4Lix4LiZ4LiU4Li14Liq4Li14LmI4Lin4Lix4LiZ4LmE4LiC4LmJCivguKrguLLguKHguYDguKfguJcKK+C4quC4suC4oeC5gOC4qOC4teC4ouC4owor4Liq4Liy4Lih4Liq4Lil4Li24LiH4LmA4Lif4Li34LmJ4Lit4LiHCivguKrguLLguKHguKrguLTguJrguIHguKXguLXguJoKK+C4quC4suC4oeC5gOC4quC5ieC4sgor4Liq4Liy4Lih4Lir4Lih4Li44LiUCivguKrguLLguKHguKvguLLguJoKK+C4quC4suC4oeC4q+C4suC4pwor4Liq4Liy4Lih4LmA4Lir4Lil4Li14LmI4Lii4LihCivguKrguLLguKHguYDguKvguKXguLXguYjguKLguKHguJTguYnguLLguJnguYDguJfguYjguLIKK+C4quC4suC4oeC5gOC4q+C4peC4teC5iOC4ouC4oeC4oeC4uOC4oeC4ieC4suC4gQor4Liq4Liy4Lih4LmA4Lir4Lil4Li14LmI4Lii4Lih4Lih4Li44Lih4Lib4LmJ4Liy4LiZCivguKrguLLguKHguYDguKvguKXguLXguYjguKLguKHguKHguLjguKHguYHguKvguKXguKEKK+C4quC4suC4oeC5gOC4q+C4peC4teC5iOC4ouC4oeC4q+C4meC5ieC4suC4iOC4seC5iOC4pwor4Liq4Liy4Lih4Lix4LiE4LiE4Li1CivguKrguLLguKHguLHguI0tCivguKrguLLguKHguLHguI3guKrguLPguJnguLbguIEKK+C4quC4suC4oeC4seC4leC4luC4tOC4ouC4sAor4Liq4Liy4Lih4Liy4LiZ4LiiLQor4Liq4Liy4Lih4Liy4LiZ4Lii4LmMCivguKrguLLguKHguLLguJnguKLguJnguLLguKEKK+C4quC4suC4oeC4suC4o+C4lgor4Liq4Liy4Lih4Li04LiBCivguKrguLLguKHguLTguJUKK+C4quC4suC4oeC4tOC4meC4tQor4Liq4Liy4Lih4Li04Lig4Lix4LiB4LiU4Li04LmMCivguKrguLLguKHguLUKK+C4quC4suC4oeC4teC4iOC4tOC4geC4o+C4o+C4oQor4Liq4Liy4LiiCivguKrguYjguLLguKIKK+C4quC5ieC4suC4ogor4Liq4Liy4Lii4LiB4Lij4Liw4LmE4LiUCivguKrguLLguKLguYPguIgKK+C4quC4suC4ouC4iuC4uQor4Liq4Liy4Lii4LiL4Li44LiHCivguKrguLLguKLguJTguLTguJkKK+C4quC4suC4ouC4leC4sOC4nuC4suC4ogor4Liq4Liy4Lii4LiV4Lix4LinCivguKrguLLguKLguJXguLIKK+C4quC4suC4ouC4leC4suC4nuC4tOC4geC4suC4owor4Liq4Liy4Lii4LiV4Li04LmI4LiHCivguKrguLLguKLguJnguYnguLMKK+C4quC4suC4ouC4meC5ieC4s+C4nOC4tuC5ieC4hwor4Liq4Liy4Lii4Lia4Lix4LinCivguKrguLLguKLguJ7guLLguJkKK+C4quC4suC4ouC4n+C5ieC4sgor4Liq4Liy4Lii4Lih4LiH4LiE4LilCivguKrguLLguKLguKHguYjguLLguJkKK+C4quC4suC4ouC4ouC4uQor4Liq4Liy4Lii4LmC4Lii4LiBCivguKrguLLguKLguYPguKIKK+C4quC4suC4ouC4o+C4sOC5gOC4lOC4teC4ouC4hwor4Liq4Liy4Lii4Lij4Liw4Lii4Liy4LiHCivguKrguLLguKLguKPguLDguYLguKLguIcKK+C4quC4suC4ouC4o+C4seC4lOC4l+C4tuC4mgor4Liq4Liy4Lii4Lij4Li44LmJ4LiHCivguKrguLLguKLguKXguYjguK3guJ/guYnguLIKK+C4quC4suC4ouC4peC4seC4mgor4Liq4Liy4Lii4LmA4Lil4Li34Lit4LiUCivguKrguLLguKLguYLguKXguKvguLTguJUKK+C4quC5iOC4suC4ouC4qOC4tuC4gQor4Liq4LmI4Liy4Lii4LmA4Lio4Li04LiBCivguKrguLLguKLguKrguJnguIHguKXguYPguJkKK+C4quC4suC4ouC4quC4oeC4owor4Liq4Liy4Lii4Liq4Lij4LmJ4Lit4LiiCivguKrguLLguKLguKrguKfguLLguJcKK+C4quC4suC4ouC4quC4sOC4nuC4suC4ogor4Liq4Liy4Lii4Liq4Li04LiN4LiI4LiZ4LmMCivguKrguLLguKLguKrguLnguJXguKMKK+C4quC4suC4ouC4q+C4ouC4uOC4lAor4Liq4Liy4Lii4LmA4Lir4LiyCivguKrguLLguKLguK3guLLguIHguLLguKgKK+C4quC4suC4ouC5gOC4reC4gQor4Liq4Liy4Lii4Lix4LiT4Lir4LmMCivguKrguLLguKLguLLguKvguYwKK+C4quC4suC4owor4Liq4Liy4LijLQor4Liq4Liy4Lij4LiB4Lij4Lih4LiY4Lij4Lij4Lih4LmMCivguKrguLLguKPguITguJTguLUKK+C4quC4suC4o+C4leC4o+C4sgor4Liq4Liy4Lij4LiW4Li1CivguKrguLLguKPguJbguLXguIrguLHguIHguKPguJYKK+C4quC4suC4o+C4lwor4Liq4Liy4Lij4LiX4LiyCivguKrguLLguKPguJfguLjguIHguILguYzguKrguLjguIHguJTguLTguJoKK+C4quC4suC4o+C4mOC4o+C4o+C4oQor4Liq4Liy4Lij4LiZ4Li04LmA4LiX4LioCivguKrguLLguKPguJrguJoKK+C4quC4suC4o+C4muC4o+C4o+C4kwor4Liq4Liy4Lij4Lia4Lix4LiNCivguKrguLLguKPguJrguLHguJoKK+C4quC5ieC4suC4o+C4muC4seC4mgor4Liq4Liy4Lij4Lia4Liy4LiNCivguKrguLLguKPguJrguLLguI3guIrguLUKK+C4quC4suC4o+C4m+C4o+C4sOC4geC4reC4mgor4Liq4Liy4Lij4Lib4Lij4Liw4LmC4Lii4LiK4LiZ4LmMCivguKrguLLguKPguJ7guLHguJQKK+C4quC4suC4o+C4nuC4seC4mQor4Liq4Liy4Lij4Lie4Liy4LiH4LiE4LmMCivguKrguLLguKPguKDguLLguJ4KK+C4quC4suC4o+C4oOC4tQor4Liq4Liy4Lij4Lig4Li14LiX4Liw4LmA4LilCivguKrguLLguKPguKDguLXguJvguYjguLIKK+C4quC4suC4o+C5hOC4oeC4ogor4Liq4Liy4Lij4Lil4Liw4Lil4Liy4LiiCivguKrguLLguKPguKfguLHguJQKK+C4quC4suC4o+C4p+C4seC4leC4owor4Liq4Liy4Lij4Liq4LiZ4LmA4LiX4LioCivguKrguLLguKPguKrguYnguKEKK+C4quC4suC4o+C4q+C4meC4uQor4Liq4Liy4Lij4Lir4LiZ4Li54LiC4Liy4LinCivguKrguLLguKPguLAKK+C4quC4suC4o+C4sOC5guC4geC4gQor4Liq4Liy4Lij4Liw4LmB4LiZCivguKrguLLguKPguLDguJ7guLIKK+C4quC4suC4o+C4sOC4nuC4suC5gOC4ruC5guC4pQor4Liq4Liy4Lij4Liw4Lin4Lit4LiZCivguKrguLLguKPguLDguKfguLLguKPguLUKK+C4quC4suC4o+C4sOC4quC4sOC4oeC4sgor4Liq4Liy4Lij4Lix4LiV4LiWLQor4Liq4Liy4Lij4Lix4LiV4LiW4LiwCivguKrguLLguKPguLHguJXguJbguLDguJvguKPguLDguYLguKLguIrguJnguYwKK+C4quC4suC4o+C4seC4l+C4mOC5jAor4Liq4Liy4Lij4Lix4Lih4Lig4LmMCivguKrguLLguKPguLLguJPguLXguKItCivguKrguLLguKPguLLguJPguLXguKLguIHguKMKK+C4quC4suC4o+C4suC4k+C4teC4ouC4mOC4o+C4o+C4oQor4Liq4Liy4Lij4Liy4LiT4Li14Lii4LiwCivguKrguLLguKPguLLguJnguLjguIHguKPguKEKK+C4quC4suC4o+C4teC4o+C4tOC4geC4mOC4suC4leC4uAor4Liq4Liy4Lij4Li54LibCivguKrguLLguYLguKPguIoKK+C4quC4suC4peC4sAor4Liq4Liy4Lil4Liw4Lin4LiZCivguKrguLLguKXguLQKK+C4quC4suC4peC4tOC4geC4sgor4Liq4Liy4Lil4Li04LiZ4Li1CivguKrguLLguKXguLUKK+C4quC4suC4peC4teC5iAor4Liq4Liy4Lil4Li5CivguKrguYjguLLguYDguKXguLfguK3guJQKK+C4quC4suC5guC4peC4q+C4tOC4lQor4Liq4Liy4LinCivguKrguLLguKfguIEKK+C4quC4suC4p+C4geC4o+C4sOC4l+C4t+C4muC4q+C4rQor4Liq4Liy4Lin4LiB4LmJ4Liy4LinCivguKrguLLguKfguYHguIHguYgKK+C4quC4suC4p+C5gOC4l+C5ieC4sgor4Liq4Liy4Lin4LiZ4LmJ4Lit4Lii4LmA4Lil4LmI4LiZ4LiZ4LmJ4LizCivguKrguLLguKfguJnguLAKK+C4quC4suC4p+C5geC4quC5iQor4Liq4Liy4Lin4LmE4Liq4LmJCivguKrguLLguKfguYTguKrguYnguYPguKvguYnguIHguLLguIHguLTguJkKK+C4quC4suC4p+C4tOC4geC4sgor4Liq4Liy4Lin4Li04LiV4LijCivguKrguLLguKfguLTguJXguKPguLUKK+C4quC4suC4quC4mQor4Liq4Liy4Liq4LiZLQor4Liq4Liy4Liq4LiZ4LmMCivguKrguLLguKrguJnguJjguKPguKPguKEKK+C4quC4suC4quC4meC4sgor4Liq4Liy4Lir4Lij4LmI4Liy4LiiCivguKrguLLguKvguKPguLUKK+C4quC5iOC4suC4q+C4o+C4tQor4Liq4Liy4Lir4Lix4LiV4LiWLQor4Liq4Liy4Lir4Lix4LiV4LiW4Li04LiBLQor4Liq4Liy4Lir4Lix4LiqCivguKrguLLguKvguLHguKrguKrguLLguIHguKPguKPguIjguYwKK+C4quC5iOC4suC5gOC4q+C5h+C4lAor4Liq4Liy4LmA4Lir4LiV4Li4CivguKrguYjguLLguYDguKvguKXguYnguLIKK+C4quC4suC5geC4q+C4o+C4gQor4Liq4Liy4Lis4Li44Lij4LiwCivguKrguLMKK+C4quC5iOC4swor4Liq4Liz4LiE4Lix4LiNCivguKrguLPguIvguYjguLLguIcKK+C4quC4s+C5geC4lOC4hwor4Liq4Liz4LiX4Lix4LiaCivguKrguLPguJnguKfguJQKK+C4quC4s+C4meC4p+C4mQor4Liq4Liz4LiZ4Lin4LiZ4LiE4Lin4Liy4LihCivguKrguLPguJnguK3guIcKK+C4quC4s+C4meC4seC4gQor4Liq4Liz4LiZ4Lix4LiB4Liq4LiH4LiG4LmMCivguKrguLPguJnguLLguJkKK+C4quC4s+C4meC4tuC4gQor4Liq4Liz4LiZ4Li24LiHCivguKrguLPguYDguJnguLIKK+C4quC4s+C5gOC4meC4teC4ouC4hwor4Liq4Liz4Lia4Lit4LiBCivguKrguLPguJrguLHguJTguKrguLPguJnguKfguJkKK+C4quC4s+C4m+C4sOC4peC4rQor4Liq4Liz4Lib4Liw4Lir4Lil4Lix4LiHCivguKrguLPguJvguLHguYnguJkKK+C4quC4s+C4m+C4seC4meC4meC4tQor4Liq4Liz4LmA4Lig4LiyCivguKrguLPguYDguKDguLLguJfguK3guIcKK+C4quC4s+C4oeC4sOC4h+C4sgor4Liq4Liz4Lih4Liw4LmC4LiZCivguKrguLPguKHguLDguYLguJnguITguKPguLHguKcKK+C4quC4s+C4oeC4sOC5guC4meC4m+C4o+C4sOC4iuC4suC4geC4owor4Liq4Liz4Lih4Liw4Lil4LitCivguKrguLPguKHguLDguYDguKXguYDguJfguYDguKHguLIKK+C4quC4s+C4oeC4sOC4q+C4sgor4Liq4Liz4Lij4LiUCivguKrguLPguKPguKfguIgKK+C4quC4s+C4o+C4p+C4oQor4Liq4Liz4Lij4Lin4Lih4LmD4LiICivguKrguLPguKPguKfguKIKK+C4quC4s+C4o+C4p+C4pQor4Liq4Liz4Lij4Lit4LiBCivguKrguLPguKPguK3guIcKK+C4quC4s+C4o+C4seC4mgor4Liq4Liz4Lij4Liy4LiBCivguKrguLPguKPguLLguI0KK+C4quC4s+C4o+C4tOC4lAor4Liq4Liz4LmA4Lij4LmH4LiICivguKrguLPguYDguKPguYfguIjguYLguJfguKkKK+C4quC4s+C5gOC4o+C5h+C4iOC4o+C4ueC4mwor4Liq4Liz4LmA4Lij4LiyCivguKrguLPguYDguKPguLTguIcKK+C4quC4s+C5guC4o+C4hwor4Liq4Liz4Lil4Lix4LiBCivguKrguLPguKXguLLguJkKK+C4quC4s+C4peC4tQor4Liq4Liz4LmB4Lil4LiHCivguKrguLPguKrguKPguYnguLLguIcKK+C4quC4s+C4quC5iOC4reC4mQor4Liq4Liz4Liq4LiyCivguKrguLPguYDguKrguYfguJQKK+C4quC5iOC4s+C5gOC4quC4teC4ogor4Liq4Liz4Lir4Lij4Lin4LiUCivguKrguLPguKvguKPguLHguJoKK+C4quC4s+C4q+C4sgor4Liq4Liz4LmA4Lir4LiZ4Li14Lii4LiBCivguKrguLPguYDguKvguKPguYgKK+C4quC4s+C4reC4reC4ogor4Liq4Liz4Lit4Liy4LiHCivguKrguLQKK+C4quC4tOC4geC4guC5jAor4Liq4Li04LiB4LiC4Lih4Liy4LiZ4LiyCivguKrguLTguIHguILguLIKK+C4quC4tOC4geC4guC4suC4geC4suC4oS0KK+C4quC4tOC4geC4guC4suC4muC4lwor4Liq4Li04LiC4LijCivguKrguLTguILguKPguLUKK+C4quC4tOC4guC5gOC4o+C4qAor4Liq4Li04LiC4LiyCivguKrguLTguILguLLguJnguKUKK+C4quC4tOC4guC4tQor4Liq4Li04LiE4Liy4LilCivguKrguLTguIcKK+C4quC4tOC5iOC4hwor4Liq4Li04LiH4LiC4LijCivguKrguLTguYjguIfguILguK3guIcKK+C4quC4tOC4h+C4hOC5jAor4Liq4Li04LiH4LiE4Lil4Li04LmJ4LiHCivguKrguLTguIfguITguKXguLUKK+C4quC4tOC4h+C4hOC4suC4owor4Liq4Li04LiH4LiE4Liy4LilCivguKrguLTguIfguITguLUKK+C4quC4tOC4h+C5guC4lQor4Liq4Li04LiH4LmC4LiV4LiX4Liw4LmA4LilCivguKrguLTguYjguIfguJ7guLTguKHguJ7guYwKK+C4quC4tOC5iOC4h+C4peC4sOC4reC4seC4meC4nuC4seC4meC4peC4sOC4meC5ieC4reC4ogor4Liq4Li04LmI4LiH4LmB4Lin4LiU4Lil4LmJ4Lit4LihCivguKrguLTguIfguKrguJbguLTguJUKK+C4quC4tOC4h+C4quC4suC4o+C4suC4quC4seC4leC4p+C5jAor4Liq4Li04LiH4Liq4Li54LmICivguKrguLTguIfguKstCivguKrguLTguIfguKvguYwKK+C4quC4tOC4h+C4q+C4meC4suC4lwor4Liq4Li04LiH4Lir4Lia4Lix4LiN4LiK4LijCivguKrguLTguIfguKvguKPguLIKK+C4quC4tOC4h+C4q+C4o+C4suC4igor4Liq4Li04LiH4Lir4LilCivguKrguLTguIfguKvguKXguIEtCivguKrguLTguIfguKvguLLguITguKEKK+C4quC4tOC4h+C4q+C4suC4quC4meC5jAor4Liq4Li04LiN4LiILQor4Liq4Li04LiN4LiI4LiZ4LmMCivguKrguLTguJUtCivguKrguLTguJXguLLguIfguKjguLjguYwKK+C4quC4tOC4luC4tOC4pQor4Liq4Li04LiX4LiYLQor4Liq4Li04LiX4LiY4LmMCivguKrguLTguJfguJjguLIKK+C4quC4tOC4l+C4mOC4suC4iOC4suC4o+C4ouC5jAor4Liq4Li04LiX4LiY4Liy4LiZ4LiV4LmMCivguKrguLTguJfguJjguLLguKPguJYKK+C4quC4tOC4l+C4mOC4tAor4Liq4Li04LiX4LiY4Li04LmMCivguKrguLTguJfguJjguLTguIHguKMKK+C4quC4tOC4l+C4mOC4tOC4geC4suC4o+C4tOC4ouC4sAor4Liq4Li04LiX4LiY4Li04LmM4LiC4Liy4LiUCivguKrguLTguJfguJjguLTguITguKPguK3guJrguITguKPguK3guIcKK+C4quC4tOC4l+C4mOC4tOC4iuC4seC4ogor4Liq4Li04LiX4LiY4Li04LmC4LiK4LiECivguKrguLTguJfguJjguLTguJrguLHguJXguKMKK+C4quC4tOC4l+C4mOC4tOC4ouC4tuC4lOC4q+C4meC5iOC4p+C4hwor4Liq4Li04LiX4LiY4Li04Liq4Lig4Liy4Lie4LiZ4Lit4LiB4Lit4Liy4LiT4Liy4LmA4LiC4LiVCivguKrguLTguJjguKLguLAKK+C4quC4tOC4mQor4Liq4Li04LmJ4LiZCivguKrguLTguJnguITguYnguLIKK+C4quC4tOC4meC4hOC5ieC4suC5gOC4guC5ieC4sgor4Liq4Li04LiZ4LiE4LmJ4Liy4Lit4Lit4LiBCivguKrguLTguYnguJnguITguLTguJQKK+C4quC4tOC4meC4iOC5ieC4suC4hwor4Liq4Li04LmJ4LiZ4LmD4LiICivguKrguLTguYnguJnguIrguLXguJ4KK+C4quC4tOC5ieC4meC4iuC4teC4nuC4leC4seC4geC4qeC4seC4ogor4Liq4Li04LmJ4LiZ4LiK4Li14Lin4Li04LiVCivguKrguLTguYnguJnguYDguIrguLTguIcKK+C4quC4tOC4meC5gOC4iuC4t+C5iOC4rQor4Liq4Li04LiZ4LmD4LiK4LmJCivguKrguLTguJnguYDguJTguLTguKEKK+C4quC4tOC5ieC4meC4leC4s+C4o+C4sgor4Liq4Li04LmJ4LiZ4LmB4LiV4LmJ4LihCivguKrguLTguJnguYTguJbguYgKK+C4quC4tOC4meC4l+C4o+C4seC4nuC4ouC5jAor4Liq4Li04LmJ4LiZ4LiX4LmI4LiyCivguKrguLTguJnguJfguLnguKPguLAKK+C4quC4tOC4meC5gOC4l+C4sgor4Liq4Li04LiZ4LiY4LieCivguKrguLTguJnguJjguLgKK+C4quC4tOC4meC4mOC4uOC4o+C4sAor4Liq4Li04LiZ4LmA4LiY4Liy4Lin4LmMCivguKrguLTguJnguJnguYnguLPguYPguIgKK+C4quC4tOC5ieC4meC5gOC4meC4t+C5ieC4reC4m+C4o+C4sOC4lOC4suC4leC4seC4pwor4Liq4Li04LiZ4Lia4LiZCivguKrguLTguJnguJrguKPguLTguITguJPguKvguYwKK+C4quC4tOC5ieC4meC4muC4uOC4jQor4Liq4Li04LmJ4LiZ4Lib4Lij4Liw4LiV4Li5CivguKrguLTguYnguJnguJ7guKPguLDguIrguJnguKHguYwKK+C4quC4tOC4meC4o+C4sOC4muC4suC4lAor4Liq4Li04LiZ4LmB4Lij4LmICivguKrguLTguYnguJnguYTguKPguYnguYTguKHguYnguJXguK3guIEKK+C4quC4tOC5ieC4meC4pOC4l+C4mOC4tOC5jAor4Liq4Li04LmJ4LiZ4Lil4LihCivguKrguLTguJnguKrguKHguKPguKoKK+C4quC4tOC4meC4quC5iOC4p+C4meC4leC4seC4pwor4Liq4Li04LiZ4Liq4Lit4LiUCivguKrguLTguYnguJnguKrguLjguJQKK+C4quC4tOC4meC4q+C4seC4p+C4muC4seC4p+C4meC4suC4hwor4Liq4Li04LiZ4LmE4Lir4LihCivguKrguLTguJnguYTguKvguKHguJfguJTguYHguJfguJkKK+C4quC4tOC4meC4sAor4Liq4Li04LiZ4Liy4LiUCivguKrguLTguJnguLTguJfguJjguYwKK+C4quC4tOC4meC4tQor4Liq4Li04LmA4LiZ4Lij4Li4CivguKrguLTguYDguJnguKvguIEKK+C4quC4tOC5gOC4meC4q+C4meC4teC4ouC4sAor4Liq4Li04LmA4LiZ4Lir4LiwCivguKrguLTguYDguJnguKvguLIKK+C4quC4tOC5gOC4meC5iOC4q+C4sgor4Liq4Li04LiaCivguKrguLTguJrguYDguJrguLXguYnguKLguYPguIHguKXguYnguKHguLfguK0KK+C4quC4tOC4muC5geC4m+C4lOC4oeC4h+C4geC4uOC4jgor4Liq4Li04Lib4Lib4LiwCivguKrguLTguJ7guJnguLAKK+C4quC4tOC4oeC4nuC4peC4tQor4Liq4Li04LijLQor4Liq4Li04Lij4LiwCivguKrguLTguKPguLQKK+C4quC4tOC4o+C4tQor4Liq4Li04LmC4Lij4LiU4LihCivguKrguLTguYLguKPguJXguKHguYwKK+C4quC4tOC4peC4sgor4Liq4Li04LmC4Lil4LiBCivguKrguLTguKcKK+C4quC4tOC5iOC4pwor4Liq4Li04LmI4Lin4LiZ4LmI4Lit4LiHCivguKrguLTguKfguYDguKrguLXguYnguKLguJkKK+C4quC4tOC4p+C4sAor4Liq4Li04Lin4Liy4Lil4Lix4LiiCivguKrguLTguKfguLTguIHguLIKK+C4quC4tOC4q+C4meC4sgor4Liq4Li1CivguKrguLXguYgKK+C4quC4teC5iQor4Liq4Li14LiB4Lij4Li44LiUCivguKrguLXguIHguLIKK+C4quC4teC4geC4uOC4mQor4Liq4Li14LiC4LmJ4Liy4LiHCivguKrguLXguIYtCivguKrguLXguIjguLHguIEKK+C4quC4teC4iuC4oeC4nuC4ueC4lOC4hwor4Liq4Li14LiK4Lih4Lie4Li54Liq4Lin4LiZCivguKrguLXguIvguK3guYPguKvguYnguITguKfguLLguKLguJ/guLHguIcKK+C4quC4teC4lAor4Liq4Li14LiU4LitCivguKrguLXguJUtCivguKrguLXguJXguYnguJkKK+C4quC4teC4leC4pS0KK+C4quC4teC4leC4peC4o+C4seC4qOC4oeC4tQor4Liq4Li14LiV4Lil4Lir4Lik4LiX4Lix4LiiCivguKrguLXguJXguYLguKXguJfguIEKK+C4quC4teC5guC4leC4l+C4gQor4Liq4Li14LiX4Lix4LiZ4LiU4LijCivguKrguLXguYjguJrguJcKK+C4quC4teC4nOC4tuC5ieC4hwor4Liq4Li14Lid4Lix4LiUCivguKrguLXguJ/guLHguJnguITguJnguJfguLIKK+C4quC4teC4n+C4seC4meC4meC4suC4h+C5geC4rQor4Liq4Li14LmE4LifCivguKrguLXguKHguLHguJnguJXguYwKK+C4quC4teC4oeC4sgor4Liq4Li14Lil4LihCivguKrguLXguKXguLDguKHguLHguJkKK+C4quC4teC4p+C4tOC4geC4sgor4Liq4Li14Liq4Lin4Lij4Lij4LiE4LmMCivguKrguLXguKrguK0KK+C4quC4teC4quC4sAor4Liq4Li14Liq4LiyCivguKrguLXguKrguLjguIEKK+C4quC4teC5gOC4quC4teC4ouC4lAor4Liq4Li14LmA4Liq4Li14Lii4LiU4LmB4LiB4LmI4LiZCivguKrguLXguYDguKrguLXguKLguJTguYDguJvguKXguLfguK3guIEKK+C4quC4teC5gOC4quC4teC4ouC4lOC5gOC4q+C4meC4t+C4rQor4Liq4Li14LmA4Liq4Li34LmJ4Lit4LiZ4LmJ4Lit4LiiCivguKrguLXguKstCivguKrguLXguKvguYwKK+C4quC4teC4q+C4meC5ieC4sgor4Liq4Li14Lir4LiZ4Liy4LiXCivguKrguLXguKvguJrguLHguI3guIrguKMKK+C4quC4teC4q+C4o+C4suC4igor4Liq4Li14Lir4LiwCivguKrguLXguYjguYDguKvguKXguLXguYjguKLguKEKK+C4quC4teC5iOC5gOC4q+C4peC4teC5iOC4ouC4oeC4guC4meC4oeC5gOC4m+C4teC4ouC4geC4m+C4ueC4mQor4Liq4Li14LmI4LmA4Lir4Lil4Li14LmI4Lii4Lih4LiE4Liy4LiH4Lir4Lih4Li5CivguKrguLXguYjguYDguKvguKXguLXguYjguKLguKHguIjguLHguJXguLjguKPguLHguKoKK+C4quC4teC5iOC5gOC4q+C4peC4teC5iOC4ouC4oeC4lOC5ieC4suC4meC4guC4meC4suC4mQor4Liq4Li14LmI4LmA4Lir4Lil4Li14LmI4Lii4Lih4LiU4LmJ4Liy4LiZ4LmE4Lih4LmI4LmA4LiX4LmI4LiyCivguKrguLXguYjguYDguKvguKXguLXguYjguKLguKHguJzguLfguJnguJzguYnguLIKK+C4quC4tuC4gQor4Liq4Li24LiB4Lir4Lij4LitCivguKrguLbguIcKK+C4quC4t+C4mgor4Liq4Li34Lia4LmE4LibCivguKrguLfguJrguJ7guKLguLLguJkKK+C4quC4t+C4muC4nuC4seC4meC4mOC4uOC5jAor4Liq4Li34Lia4Lie4Lix4LiZ4LiY4Li44LmM4LmB4Lia4Lia4LmE4Lih4LmI4Lit4Liy4Lio4Lix4Lii4LmA4Lie4LioCivguKrguLfguJrguJ7guLHguJnguJjguLjguYzguYHguJrguJrguK3guLLguKjguLHguKLguYDguJ7guKgKK+C4quC4t+C4muC4o+C4suC4iuC4quC4oeC4muC4seC4leC4tAor4Liq4Li34Lia4Lij4Liy4LiK4Liq4Lix4LiZ4LiV4LiV4Li04Lin4LiH4Lio4LmMCivguKrguLfguJrguKjguLLguKrguJnguLIKK+C4quC4t+C4muC4quC4p+C4mQor4Liq4Li34Lia4Liq4Lix4LiZ4LiU4Liy4LiZCivguKrguLfguJrguKrguLLguKIKK+C4quC4t+C4muC4quC4suC4p+C4o+C4suC4p+C5gOC4o+C4t+C5iOC4reC4hwor4Liq4Li34Lia4LmA4Liq4Liy4LiwCivguKrguLfguJrguKvguLnguIEKK+C4quC4t+C5iOC4rQor4Liq4Li34LmI4Lit4LiB4Liy4Lij4Lio4Li24LiB4Lip4LiyCivguKrguLfguYjguK3guKHguKfguKXguIrguJkKK+C4quC4t+C5iOC4reC4quC4suC4owor4Liq4Li34LmI4Lit4Liq4Liy4Lij4Lih4Lin4Lil4LiK4LiZCivguKrguLgKK+C4quC4uOC4gQor4Liq4Li44LiB4LiB4LmI4Lit4LiZ4Lir4LmI4Liy4LihCivguKrguLjguIHguILguYwKK+C4quC4uOC4geC4lOC4tOC4mgor4Liq4Li44LiB4LmGIOC4lOC4tOC4muC5hgor4Liq4Li44LiB4LmB4LiU4LiUCivguKrguLjguIHguKMKK+C4quC4uOC4geC4o+C4oQor4Liq4Li44LiB4LmD4LiqCivguKrguLjguIHguYDguK3guLLguYDguJzguLLguIHguLTguJkKK+C4quC4uOC4geC4s+C4qOC4ngor4Liq4Li44LiB4Li14Lii4Liy4LiB4Li14LmJCivguKrguLjguIIKK+C4quC4uOC4gi0KK+C4quC4uOC4guC4meC4suC4j+C4geC4o+C4o+C4oQor4Liq4Li44LiC4Lig4Lix4LiT4LiR4LmMCivguKrguLjguILguKDguLLguJ4KK+C4quC4uOC4guC4peC4seC4geC4qeC4k+C4sAor4Liq4Li44LiC4Lin4Li04LiX4Lii4LiyCivguKrguLjguILguKjguLLguKXguLIKK+C4quC4uOC4guC4qOC4tuC4geC4qeC4sgor4Liq4Li44LiC4LiyCivguKrguLjguILguLLguKDguLTguJrguLLguKUKK+C4quC4uOC4guC4suC4o+C4oeC4k+C5jAor4Liq4Li44LiC4Liy4Lin4LiU4Li1CivguKrguLjguILguLTguJkKK+C4quC4uOC4guC4tQor4Liq4Li44LiC4Li44LihCivguKrguLjguILguLjguKHguLLguKUKK+C4quC4uOC4hOC4lQor4Liq4Li44LiE4LiV4Li0CivguKrguLjguITguJnguJgtCivguKrguLjguITguJnguJjguYwKK+C4quC4uOC4hOC4meC4mOC4o+C4qgor4Liq4Li44LiE4Lix4LiZ4LiY4LmMCivguKrguLjguIfguIEtCivguKrguLjguIfguIHguLAKK+C4quC4uOC4h+C4geC4suC4geC4owor4Liq4Li44LiH4Liq4Li04LiHCivguKrguLjguIfguKrguLjguKHguLLguKMKK+C4quC4uOC4h+C4quC4uOC4oeC4suC4o+C4tQor4Liq4Li44LiI4Lij4Li04LiVCivguKrguLjguIjguKvguJnguLXguYgKK+C4quC4uOC4iOC4sAor4Liq4Li44LiI4Li0CivguKrguLjguIjguLTguJUKK+C4quC4uOC4iOC4tOC4leC4owor4Liq4Li44LiK4LiZCivguKrguLjguIrguLHguKHguJrguJTguLUKK+C4quC4uOC4iuC4sgor4Liq4Li44LiK4Liy4LiU4LiyCivguKrguLjguI0KK+C4quC4uOC4jS0KK+C4quC4uOC4jeC4jS0KK+C4quC4uOC4jeC4jeC4suC4geC4suC4qAor4Liq4Li44LiN4LiV4LiyCivguKrguLjguI3guJnguLTguKLguKEKK+C4quC4uOC4kwor4Liq4Li44LiT4Lir4LiyCivguKrguLjguJPguLTguKrguLIKK+C4quC4uOC4lAor4Liq4Li44LiU4LiB4Liz4Lil4Lix4LiHCivguKrguLjguJTguIHguLnguYgKK+C4quC4uOC4lOC4guC4teC4lAor4Liq4Li44LiU4LiE4LiZCivguKrguLjguJTguITguLTguJQKK+C4quC4uOC4lOC4iOC4tOC4lQor4Liq4Li44LiU4LmD4LiICivguKrguLjguJTguJTguYnguLLguKEKK+C4quC4uOC4lOC5geC4leC5iAor4Liq4Li44LiU4LmC4LiV4LmI4LiHCivguKrguLjguJTguJfguYnguK3guIcKK+C4quC4uOC4lOC4l+C5ieC4suC4ogor4Liq4Li44LiU4LiX4LmJ4Liy4Lii4Lib4Lil4Liy4Lii4LmC4LiV4LmI4LiHCivguKrguLjguJTguYHguKPguIfguYDguIHguLTguJQKK+C4quC4uOC4lOC4peC4tOC5iOC4oQor4Liq4Li44LiU4Lin4Li04Liq4Lix4LiiCivguKrguLjguJTguKrguIfguKfguJkKK+C4quC4uOC4lOC4quC4p+C4suC4l+C4guC4suC4lOC5g+C4iAor4Liq4Li44LiU4Liq4Liy4Lii4Lib4LmI4Liy4LiZCivguKrguLjguJTguYDguKrguLXguKLguIcKK+C4quC4uOC4lOC5gOC4quC4teC4ouC4h+C4quC4seC4h+C4guC5jAor4Liq4Li44LiU4Lir4Lil4LmJ4Liy4Lif4LmJ4Liy4LmA4LiC4Li14Lii4LinCivguKrguLjguJTguYDguKvguKfguLXguYjguKLguIcKK+C4quC4uOC4lOC4sgor4Liq4Li44LiVCivguKrguLjguJXguIHguKfguLUKK+C4quC4uOC4leC4leC4sAor4Liq4Li44LiV4LiV4Lix4LiZ4LiV4Lib4Li04LiO4LiBCivguKrguLjguJXguJXguLHguJnguJXguLAKK+C4quC4uOC4leC4tAor4Liq4Li44LiX4LiYLQor4Liq4Li44LiX4LiY4LmMCivguKrguLjguJfguJjguLLguKfguLLguKoKK+C4quC4uOC4l+C4mOC4tAor4Liq4Li44LiX4Lij4Lij4Lio4LiZ4LmMCivguKrguLjguJfguLHguKjguJnguYwKK+C4quC4uOC4mOC4sgor4Liq4Li44LiY4Liy4LiB4Liy4LijCivguKrguLjguJjguLLguYLguKDguIrguJnguYwKK+C4quC4uOC4mOC4suC4o+C4qgor4Liq4Li44LiY4Liy4Lij4Liq4LiK4LiyCivguKrguLjguJjguLLguKrguLTguJnguLUKK+C4quC4uOC4mOC4suC4quC4tQor4Liq4Li44LiY4Li1CivguKrguLjguJnguJfguKMKK+C4quC4uOC4meC4l+C4oy0KK+C4quC4uOC4meC4l+C4o+C4nuC4iOC4meC5jAor4Liq4Li44LiZ4LiX4Lij4Li1CivguKrguLjguJnguJfguKPguLXguKItCivguKrguLjguJnguJfguKPguLXguKLguKDguLLguJ4KK+C4quC4uOC4meC4l+C4o+C4teC4ouC4qOC4suC4quC4leC4o+C5jAor4Liq4Li44LiZ4LiX4Lij4Li14Lii4LiwCivguKrguLjguJnguLHguIIKK+C4quC4uOC4meC4seC4meC4l+C5jAor4Liq4Li44LmC4LiZ4LiBCivguKrguLjguJrguJTguLUKK+C4quC4uOC4muC4o+C4o+C4kwor4Liq4Li44Lia4Li04LiZCivguKrguLjguJvguKPguLXguJTguLTguYwKK+C4quC4uOC4m+C4o+C4teC4ouC5jAor4Liq4Li44Lib4Liy4LiT4Li1CivguKrguLjguJ7guJ7guLHguJUKK+C4quC4uOC4nuC4o+C4o+C4kwor4Liq4Li44Lie4Lij4Lij4LiTLQor4Liq4Li44Lie4Lij4Lij4LiT4LiW4Lix4LiZCivguKrguLjguJ7guKPguKPguJPguJrguLHguI8KK+C4quC4uOC4nuC4o+C4o+C4k+C4oOC4suC4iuC4meC5jAor4Liq4Li44Lie4Lij4Lij4LiT4Lij4Liy4LiKCivguKrguLjguJ7guKPguKPguJPguKjguKPguLUKK+C4quC4uOC4nuC4o+C4o+C4k+C4tOC4geC4suC4o+C5jAor4Liq4Li44LigLQor4Liq4Li44Lig4LijCivguKrguLjguKDguLHguIQKK+C4quC4uOC4oOC4sgor4Liq4Li44Lig4Liy4LieCivguKrguLjguKDguLLguJ7guIrguJkKK+C4quC4uOC4oOC4suC4nuC4muC4uOC4o+C4uOC4qQor4Liq4Li44Lig4Liy4Lie4Liq4LiV4Lij4Li1CivguKrguLjguKDguLLguKnguLTguJUKK+C4quC4uOC4oQor4Liq4Li44LmI4LihCivguKrguLjguKHguILguK3guJkKK+C4quC4uOC4oeC4hOC4p+C4seC4mQor4Liq4Li44LmI4Lih4LiV4Lix4Lin4Lit4Lii4LmI4Liy4LiHCivguKrguLjguKHguJfguLjguKEKK+C4quC4uOC4oeC4mQor4Liq4Li44Lih4LiZ4LiwCivguKrguLjguKHguJnguLHguKoKK+C4quC4uOC4oeC4meC4sgor4Liq4Li44Lih4Lii4Li44LiHCivguKrguLjguYjguKHguKrguLXguYjguKrguLjguYjguKHguKvguYnguLIKK+C4quC4uOC5ieC4oeC5gOC4quC4teC4ouC4hwor4Liq4Li44Lih4Lir4Lix4LinCivguKrguLjguKHguLAKK+C4quC4uOC4oeC4suC4peC4tQor4Liq4Li44LmA4Lih4LiYCivguKrguLjguYDguKHguKPguLgKK+C4quC4uOC4oy0KK+C4quC4uOC4o+C4hOC4lQor4Liq4Li44Lij4LiH4LiE4LmMCivguKrguLjguKPguYDguIrguKnguJDguYwKK+C4quC4uOC4o+C4muC4lOC4tQor4Liq4Li44Lij4Lia4LiWCivguKrguLjguKPguKDguLLguJ4KK+C4quC4uOC4o+C4oOC4tQor4Liq4Li44Lij4LmC4Lil4LiBCivguKrguLjguKPguKrguLXguKvguJnguLLguJcKK+C4quC4uOC4o+C5gOC4quC4teC4ouC4hwor4Liq4Li44Lij4Lix4LiH4LiE4LmMCivguKrguLjguKPguLHguJXguLQKK+C4quC4uOC4o+C4seC4quC4p+C4lOC4tQor4Liq4Li44Lij4LiyCivguKrguLjguKPguLLguIfguITguYzguIjguLPguYDguKPguLXguKLguIcKK+C4quC4uOC4o+C4suC4h+C4hOC4meC4sgor4Liq4Li44Lij4Liy4LiH4LiE4LiZ4Liy4LiH4LiE4LmMCivguKrguLjguKPguLLguJrguLLguJkKK+C4quC4uOC4o+C4suC4o+C4seC4geC4qeC5jAor4Liq4Li44Lij4Liy4Lil4Lix4LiiCivguKrguLjguKPguLTguJnguJfguKPguYwKK+C4quC4uOC4o+C4tOC4meC4l+C4o+C4suC4q+C4uQor4Liq4Li44Lij4Li04LiiLQor4Liq4Li44Lij4Li04Lii4LiB4Lix4LiZ4LiV4LmMCivguKrguLjguKPguLTguKLguIHguLLguJnguJXguYwKK+C4quC4uOC4o+C4tOC4ouC4geC4suC4owor4Liq4Li44Lij4Li04Lii4LiB4Liy4LilCivguKrguLjguKPguLTguKLguITguJXguLQKK+C4quC4uOC4o+C4tOC4ouC4hOC4o+C4suC4qgor4Liq4Li44Lij4Li04Lii4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguKrguLjguKPguLTguKLguIcKK+C4quC4uOC4o+C4tOC4ouC4mQor4Liq4Li44Lij4Li04Lii4Lih4LiT4LiR4LilCivguKrguLjguKPguLTguKLguLAKK+C4quC4uOC4o+C4tOC4ouC4seC4mQor4Liq4Li44Lij4Li04Lii4LiyCivguKrguLjguKPguLTguKLguLjguJvguKPguLLguITguLIKK+C4quC4uOC4o+C4tOC5gOC4ouC4meC4l+C4o+C5jAor4Liq4Li44Lij4Li04LmA4Lii4LioCivguKrguLjguKPguLTguYLguKIKK+C4quC4uOC4o+C4teC4ouC5jAor4Liq4Li44Lij4Li44LmI4Lii4Liq4Li44Lij4LmI4Liy4LiiCivguKrguLjguYDguKPguJnguJfguKPguYwKK+C4quC4uOC4peC4leC5iOC4suC4mQor4Liq4Li44LinCivguKrguLjguKfguKDguLLguJ4KK+C4quC4uOC4p+C4o+C4o+C4kwor4Liq4Li44Lin4Lij4Lij4LiTLQor4Liq4Li44Lin4Lij4Lij4LiT4Lig4Li54Lih4Li0CivguKrguLjguKfguLLguJkKK+C4quC4uOC4p+C4tOC4meC4seC4ogor4Liq4Li44Lin4Li04Lih4LilCivguKrguLjguKnguLTguKMKK+C4quC4uOC4quC4suC4mQor4Liq4Li44Lir4LiZ4Lix4LiVCivguKrguLjguKvguKPguYjguIcKK+C4quC4uOC4q+C4o+C5iOC4suC4ogor4Liq4Li44Lir4Lik4LiXCivguKrguLjguKvguLHguJcKK+C4quC4uOC5gOC4q+C4o+C5iOC4sgor4Liq4Li5CivguKrguLnguYgKK+C4quC4ueC5iQor4Liq4Li54LiB4Lip4LihCivguKrguLnguYjguILguKfguLHguI0KK+C4quC4ueC5iOC4guC4rQor4Liq4Li54LiHCivguKrguLnguIfguYDguJfguYjguLLguJnguIHguYDguILguLLguYDguKvguLTguJkKK+C4quC4ueC4h+C5gOC4l+C4teC4ouC4oeC5gOC4oeC4hgor4Liq4Li54LiH4Liq4LmI4LiHCivguKrguLnguIfguKrguLjguJTguKrguK3guKIKK+C4quC4ueC4h+C4reC4suC4ouC4uAor4Liq4Li54LiI4LiB4LiwCivguKrguLnguIjguJnguLAKK+C4quC4ueC4iOC4tAor4Liq4Li54LiI4Li04Lia4Lix4LiV4LijCivguKrguLnguYDguIjguYnguLIKK+C4quC4ueC4jQor4Liq4Li54LiUCivguKrguLnguJUKK+C4quC4ueC4leC4owor4Liq4Li54LiV4Lij4LmA4LiE4Lih4Li1CivguKrguLnguJXguLQtCivguKrguLnguJXguLTguIHguKPguKPguKEKK+C4quC4ueC4leC4tOC4muC4seC4leC4owor4Liq4Li54LiV4Li04LmB4Lie4LiX4Lii4LmMCivguKrguLnguJXguLTguKjguLLguKrguJXguKPguYwKK+C4quC4ueC4lwor4Liq4Li54LiXLQor4Liq4Li54LiX4LiB4Lij4Lij4LihCivguKrguLnguJfguKjguLLguKrguJXguKPguYwKK+C4quC4ueC4mQor4Liq4Li54LiZ4Li4CivguKrguLnguJoKK+C4quC4ueC4muC5gOC4peC4t+C4reC4lAor4Liq4Li54Lia4LmA4Lil4Li34Lit4LiU4Liq4Li54Lia4LmA4LiZ4Li34LmJ4LitCivguKrguLnguJstCivguKrguLnguJvguIHguLLguKMKK+C4quC4ueC4m+C4sAor4Liq4Li54LmJ4Lii4Li04Lia4LiV4LiyCivguKrguLnguYnguYDguKLguYfguJrguJXguLIKK+C4quC4ueC4owor4Liq4Li54LmJ4Lij4Lia4LiV4Lia4Lih4Li34LitCivguKrguLnguKPguKItCivguKrguLnguKPguKLguYwKK+C4quC4ueC4o+C4ouC4geC4suC4meC4leC5jAor4Liq4Li54Lij4Lii4LiE4Lij4Liy4LiqCivguKrguLnguKPguLQKK+C4quC4ueC5iOC4o+C4ueC5iQor4Liq4Li54LmI4Liq4LihCivguKrguLnguKrguLUKK+C4quC4ueC5ieC4q+C4meC5ieC4sgor4Liq4Li54LmI4Lir4LiyCivguKrguLnguYnguYDguKvguKHguLfguK3guJnguKvguKHguLLguIjguJnguJXguKPguK3guIEKK+C5gOC4qgor4LmA4Liq4LiBCivguYDguKrguIHguIItCivguYDguKrguIHguILguJrguLjguITguITguKUKK+C5gOC4quC4geC4guC4sAor4LmA4Liq4LiB4Liq4Lij4LijCivguYDguKrguIItCivguYDguKrguILguJrguLjguITguITguKUKK+C5gOC4quC4guC4sAor4LmA4Liq4LiE4Lin4Liy4LihCivguYDguKrguYfguIcKK+C5gOC4quC5ieC4hwor4LmA4Liq4LmH4LiH4LmA4LiE4Lij4LmH4LiHCivguYDguKrguIfguLXguYjguKLguKEKK+C5gOC4quC4j+C4kOC4tQor4LmA4Liq4LiT4Li1CivguYDguKrguJQKK+C5gOC4quC4lOC5h+C4iAor4LmA4Liq4LiU4LmH4LiI4LmD4LiZ4LiB4Lij4LihCivguYDguKrguJTguYfguIjguJ7guKPguLDguKPguLLguIrguJTguLPguYDguJnguLTguJkKK+C5gOC4quC4lS0KK+C5gOC4quC4leC4uAor4LmA4Liq4LiW4Li14Lii4LijCivguYDguKrguJbguLXguKLguKMtCivguYDguKrguJbguLXguKLguKPguKDguLLguJ4KK+C5gOC4quC4lwor4LmA4Liq4LmC4LiXCivguYDguKrguJkKK+C5gOC4quC5ieC4mQor4LmA4Liq4LmJ4LiZ4LmB4LiB4LiH4Lij4LmJ4Lit4LiZCivguYDguKrguYnguJnguILguJnguLLguJkKK+C5gOC4quC5ieC4meC5geC4guC5h+C4hwor4LmA4Liq4LiZ4LiHCivguYDguKrguJnguYjguIcKK+C5gOC4quC5ieC4meC4lOC5ieC4suC4ogor4LmA4Liq4LmJ4LiZ4LiV4Liy4LiiCivguYDguKrguYnguJnguJXguLfguYnguJkKK+C5gOC4quC5ieC4meC4l+C4suC4hwor4LmA4Liq4LmJ4LiZ4Lia4Lix4LiH4LiE4Lix4LiaCivguYDguKrguYnguJnguJzguKHguJrguLHguIfguKDguLnguYDguILguLIKK+C5gOC4quC5ieC4meC4nOC5iOC4suC4meC4qOC4ueC4meC4ouC5jOC4geC4peC4suC4hwor4LmA4Liq4LmJ4LiZ4Lic4LmI4Liy4Lio4Li54LiZ4Lii4LmM4LiB4Lil4Liy4LiHCivguYDguKrguYnguJnguYHguJzguKXguIcKK+C5gOC4quC5ieC4meC4ouC4suC5geC4lOC4h+C4nOC5iOC4suC5geC4m+C4lAor4LmA4Liq4LmJ4LiZ4LmD4LiiCivguYDguKrguYnguJnguYPguKLguYHguIHguYnguKcKK+C5gOC4quC5ieC4meC4o+C4reC4muC4p+C4hwor4LmA4Liq4LmJ4LiZ4Lij4Lix4Lio4Lih4Li1CivguYDguKrguYnguJnguYHguKMKK+C5gOC4quC5ieC4meC4peC4suC4ouC4oeC4t+C4rQor4LmA4Liq4LmJ4LiZ4Lil4Li24LiBCivguYDguKrguYnguJnguYDguKXguLfguK3guJQKK+C5gOC4quC5ieC4meC4p+C4seC4meC4l+C4teC5iAor4LmA4Liq4LmJ4LiZ4Lio4Li54LiZ4Lii4LmM4Liq4Li54LiV4LijCivguYDguKrguYnguJnguKrguKHguKHguLLguJXguKMKK+C5gOC4quC5ieC4meC4quC4seC4oeC4nOC4seC4qgor4LmA4Liq4LmJ4LiZ4Liq4Liy4LiiCivguYDguKrguJnguKstCivguYDguKrguJnguYjguKvguYwKK+C5gOC4quC4meC5iOC4q+C5jOC4iOC4seC4meC4l+C4o+C5jOC4guC4suC4pwor4LmA4Liq4LiZ4LmI4Lir4LmM4LiI4Lix4LiZ4LiX4Lij4LmM4LmB4LiU4LiHCivguYDguKrguJnguYjguKvguYzguJvguKXguLLguKLguIjguKfguLHguIEKK+C5gOC4quC5ieC4meC4q+C4oeC4teC5iAor4LmA4Liq4LiZ4Lir4LiyCivguYDguKrguJnguYjguKvguLIKK+C5gOC4quC4meC4rQor4LmA4Liq4LmJ4LiZ4Liu4LmI4LitCivguYDguKrguJnguLAKK+C5gOC4quC4meC4sgor4LmA4Liq4LiZ4LmI4LiyCivguYDguKrguJnguLLguIHguLjguI4KK+C5gOC4quC4meC4suC4h+C4hOC5jAor4LmA4Liq4LiZ4Liy4LiH4LiE4LiZ4Li04LiB4LijCivguYDguKrguJnguLLguJjguLTguIHguLLguKMKK+C5gOC4quC4meC4suC4mOC4tOC4m+C4seC4lQor4LmA4Liq4LiZ4Liy4LiZ4Li1CivguYDguKrguJnguLLguJrguJTguLUKK+C5gOC4quC4meC4suC4nuC4ouC4uOC4q+C5jAor4LmA4Liq4LiZ4Liy4Lie4Lii4Li54Lir4LmMCivguYDguKrguJnguLLguKrguJnguLAKK+C5gOC4quC4meC4suC4sAor4LmA4Liq4LiZ4Li1CivguYDguKrguJnguLXguKLguYwKK+C5gOC4quC4meC4teC4ouC4lAor4LmA4Liq4LiZ4Li14Lii4LiwCivguYDguKrguJrguKIKK+C5gOC4quC4muC4teC4ouC4hwor4LmA4Liq4Lia4Li14Lii4LiH4LiB4Lij4Lix4LiHCivguYDguKrguJ4KK+C5gOC4quC4nuC4ouC5jOC4leC4tOC4lAor4LmA4Liq4LmA4Lie4LilCivguYDguKrguKDguLIKK+C5gOC4quC4oeC5h+C4lAor4LmA4Liq4Lih4Lir4LiwCivguYDguKrguKHguK0KK+C5gOC4quC4oeC4reC5g+C4iAor4LmA4Liq4Lih4Lit4LiV4LmJ4LiZ4LmA4Liq4Lih4Lit4Lib4Lil4Liy4LiiCivguYDguKrguKHguK3guJXguLHguKcKK+C5gOC4quC4oeC4reC4meC4reC4gQor4LmA4Liq4Lih4Lit4Lia4LmI4Liy4LmA4Liq4Lih4Lit4LmE4Lir4Lil4LmICivguYDguKrguKHguK3guKDguLLguIQKK+C5gOC4quC4oeC4reC4q+C4meC5ieC4sgor4LmA4Liq4Lih4LiyCivguYDguKrguKHguLXguKLguJkKK+C5gOC4quC4oeC4t+C4reC4mQor4LmA4Liq4LiiCivguYDguKrguKPguYfguIgKK+C5gOC4quC4o+C4tOC4lAor4LmA4Liq4Lij4Li04LihCivguYDguKrguKPguLTguKHguKrguKfguKIKK+C5gOC4quC4o+C4tQor4LmA4Liq4Lij4Li14LmE4LiX4LiiCivguYDguKrguKPguLXguJjguKPguKPguKEKK+C5gOC4quC4o+C4teC4meC4tOC4ouC4oQor4LmA4Liq4Lij4Li14Lig4Liy4LieCivguYDguKrguKUtCivguYDguKrguKXguJQKK+C5gOC4quC4peC4lOC4nuC4seC4h+C4nuC4reC4mQor4LmA4Liq4Lil4LiU4Lir4Liy4LiH4Lin4Lix4LinCivguYDguKrguKXguJrguKPguKPguJ7guJUKK+C5gOC4quC4peC4sgor4LmA4Liq4Lil4Li14LmI4Lii4LiHCivguYDguKrguKXguLfguK3guIHguKrguKXguJkKK+C5gOC4quC5guC4pQor4LmA4Liq4Lin4LiBCivguYDguKrguKfguIHguLLguKHguLLguJXguKLguYwKK+C5gOC4quC4p+C4meC4sAor4LmA4Liq4Lin4LiZ4LiyCivguYDguKrguKfguKIKK+C5gOC4quC4p+C4ouC4nuC4o+C4sOC4iuC4suC4leC4tAor4LmA4Liq4Lin4Li14Lii4LiZCivguYDguKrguKrguKPguKfguIcKK+C5gOC4quC4quC4o+C4p+C4pQor4LmA4Liq4LmB4Liq4Lij4LmJ4LiHCivguYDguKrguLIKK+C5gOC4quC5ieC4sgor4LmA4Liq4Liy4LiB4Lij4Liw4LmC4LiU4LiHCivguYDguKrguLLguYDguILguYfguKEKK+C5gOC4quC4suC4iuC4teC5iQor4LmA4Liq4Liy4LiU4Lix4LmJ4LiHCivguYDguKrguLLguJXguLDguKXguLjguIcKK+C5gOC4quC4suC4meC4suC4h+C5gOC4o+C4teC4ouC4hwor4LmA4Liq4Liy4Lij4LmMCivguYDguKrguLLguKPguKDguKLguYwKK+C5gOC4quC4suC4o+C4tQor4LmA4Liq4Liy4LinLQor4LmA4Liq4Liy4Lin4LiE4LiZ4LiY4LmMCivguYDguKrguLLguKfguITguLHguJnguJjguYwKK+C5gOC4quC4suC4p+C4k+C4tOC4lQor4LmA4Liq4Liy4Lin4LiY4Liy4LijCivguYDguKrguLLguKfguJnguLAKK+C5gOC4quC4suC4p+C4meC4sgor4LmA4Liq4Liy4Lin4LiZ4Liy4LiB4Liy4LijCivguYDguKrguLLguKfguJnguLXguKLguYwKK+C5gOC4quC4suC4p+C4oOC4sgor4LmA4Liq4Liy4Lin4Lig4Liy4LiE4Lii4LmMCivguYDguKrguLLguKfguKDguLLguJ4KK+C5gOC4quC4suC4p+C4o+C4oOC4ouC5jAor4LmA4Liq4Liy4Lin4Lij4LiqCivguYDguKrguLLguKfguKXguLHguIHguKnguJPguYwKK+C5gOC4quC4suC4q+C4oeC4rQor4LmA4Liq4Liy4Lir4Lik4LiXCivguYDguKrguLLguKvguLLguJkKK+C5gOC4quC4suC5gOC4reC4gQor4LmA4Liq4Liy4LiwCivguYDguKrguLLguLDguJTguYnguLLguKIKK+C5gOC4quC4suC4sOC4m+C5iOC4suC4mQor4LmA4Liq4Liy4Liw4LmB4Liq4LiwCivguYDguKrguLTguKPguYzguIgKK+C5gOC4quC4tOC4o+C5jOC4nwor4LmA4Liq4Li14LiiCivguYDguKrguLXguKLguIHguJrguLLguKUKK+C5gOC4quC4teC4ouC4geC4o+C4sOC4muC4p+C4mQor4LmA4Liq4Li14Lii4LiB4LilCivguYDguKrguLXguKLguIHguLLguKMKK+C5gOC4quC4teC4ouC4geC4s+C4i+C5ieC4s+C4geC4reC4mgor4LmA4Liq4Li14Lii4LiB4Liz4LmE4LiU4LmJ4LiB4Lit4LiaCivguYDguKrguLXguKLguIHguLPguKXguLHguIfguYPguIgKK+C5gOC4quC4teC4ouC4geC4tOC4o+C4tOC4ouC4sgor4LmA4Liq4Li14Lii4LiC4Lin4LiHCivguYDguKrguLXguKLguILguKfguLHguI0KK+C5gOC4quC4teC4ouC4hOC4mQor4LmA4Liq4Li14Lii4LiE4Liz4Lie4Li54LiUCivguYDguKrguLXguKLguIcKK+C5gOC4quC4teC5iOC4ouC4hwor4LmA4Liq4Li14Lii4LiH4LmA4LiC4Li14Lii4LinCivguYDguKrguLXguKLguIfguYHguILguYfguIcKK+C5gOC4quC4teC5iOC4ouC4h+C4iuC4teC4p+C4tOC4lQor4LmA4Liq4Li14Lii4LiH4LmB4LiV4LiBCivguYDguKrguLXguKLguIfguJfguK3guIcKK+C5gOC4quC4teC5iOC4ouC4h+C4l+C4suC4ogor4LmA4Liq4Li14LmI4Lii4LiH4Lia4Li44LiN4LmA4Liq4Li14LmI4Lii4LiH4LiB4Lij4Lij4LihCivguYDguKrguLXguKLguIfguJ7guKLguLHguI3guIrguJnguLAKK+C5gOC4quC4teC5iOC4ouC4h+C4oOC4seC4ogor4LmA4Liq4Li14Lii4LiH4Liq4Lij4LiwCivguYDguKrguLXguKLguIfguKvguKXguIcKK+C5gOC4quC4teC4ouC4h+C4reC5iOC4reC4mQor4LmA4Liq4Li14Lii4LiI4Lij4Li04LiVCivguYDguKrguLXguKLguYPguIgKK+C5gOC4quC4teC4ouC5guC4ieC4oQor4LmA4Liq4Li14Lii4LiK4Liy4LiV4Li04LmA4LiB4Li04LiUCivguYDguKrguLXguKLguIrguLfguYjguK0KK+C5gOC4quC4teC4ouC5gOC4iuC4tOC4hwor4LmA4Liq4Li14Lii4LiUCivguYDguKrguLXguKLguJTguYPguJoKK+C5gOC4quC4teC4ouC4lOC4quC4tQor4LmA4Liq4Li14Lii4LiU4Liy4LiiCivguYDguKrguLXguKLguYDguJTguYfguIEKK+C5gOC4quC4teC4ouC4leC4seC4pwor4LmA4Liq4Li14Lii4LmB4LiV4LmJ4LihCivguYDguKrguLXguKLguYDguJbguK3guLAKK+C5gOC4quC4teC4ouC5gOC4luC4tOC4lAor4LmA4Liq4Li14Lii4LiX4LmI4LiyCivguYDguKrguLXguKLguJfguLUKK+C5gOC4quC4teC5ieC4ouC4mQor4LmA4Liq4Li14LmJ4Lii4LiZ4Lio4Li24LiBCivguYDguKrguLXguYnguKLguJnguKvguJnguLLguKEKK+C5gOC4quC4teC4ouC4meC5ieC4s+C5g+C4iAor4LmA4Liq4Li14Lii4LiZ4LmJ4Liz4LiV4LiyCivguYDguKrguLXguKLguYDguJnguLfguYnguK3guYDguKrguLXguKLguJXguLHguKcKK+C5gOC4quC4teC4ouC4mgor4LmA4Liq4Li14Lii4Lia4LiZCivguYDguKrguLXguKLguJrguKvguJnguLkKK+C5gOC4quC4teC4ouC4m+C4suC4gQor4LmA4Liq4Li14Lii4LmA4Lib4Lij4Li14Lii4LiaCivguYDguKrguLXguKLguJzguLUKK+C5gOC4quC4teC4ouC4nOC4ueC5ieC5g+C4q+C4jeC5iAor4LmA4Liq4Li14Lii4Lig4Li54Lih4Li0CivguYDguKrguLXguKLguKEKK+C5gOC4quC4teC5iOC4ouC4oQor4LmA4Liq4Li14LmJ4Lii4LihCivguYDguKrguLXguYnguKLguKHguYDguILguLLguITguKfguLLguKLguYPguKvguYnguIrguJnguIHguLHguJkKK+C5gOC4quC4teC5ieC4ouC4oeC4quC4reC4mQor4LmA4Liq4Li14LmI4Lii4Lih4Liq4Liy4LijCivguYDguKrguLXguKLguKPguK3guKIKK+C5gOC4quC4teC4ouC4o+C4seC4h+C4p+C4seC4lAor4LmA4Liq4Li14Lii4Lij4Liy4Lio4Li1CivguYDguKrguLXguKLguKPguLnguYkKK+C5gOC4quC4teC4ouC4o+C4ueC4mwor4LmA4Liq4Li14Lii4Lij4Li54Lib4LiE4LiU4Li1CivguYDguKrguLXguKLguYHguKPguIcKK+C5gOC4quC4teC4ouC4pwor4LmA4Liq4Li14LmI4Lii4LinCivguYDguKrguLXguYnguKLguKcKK+C5gOC4quC4teC4ouC4p+C4i+C5iOC4suC4mQor4LmA4Liq4Li14Lii4Lin4LmE4Liq4LmJCivguYDguKrguLXguKLguYDguKjguKfguJXguInguLHguJXguKMKK+C5gOC4quC4teC4ouC4quC4peC4sAor4LmA4Liq4Li14Lii4Liq4Liy4LinCivguYDguKrguLXguKLguYDguKrguYnguJkKK+C5gOC4quC4teC4ouC4q+C4meC5iOC4reC4ogor4LmA4Liq4Li14Lii4Lir4LiZ4LmJ4LiyCivguYDguKrguLXguKLguKvguKXguLHguIEKK+C5gOC4quC4teC4ouC4q+C4peC4suC4ogor4LmA4Liq4Li14Lii4Lir4Lix4LinCivguYDguKrguLXguKLguKvguLLguKIKK+C5gOC4quC4teC4ouC5gOC4q+C4peC4teC5iOC4ouC4oQor4LmA4Liq4Li34LitCivguYDguKrguLfguYjguK0KK+C5gOC4quC4t+C5ieC4rQor4LmA4Liq4Li34Lit4LiBCivguYDguKrguLfguK3guIHguIHguLDguYLguKvguKXguIEKK+C5gOC4quC4t+C4reC4geC4hOC4peC4suC4mQor4LmA4Liq4Li34Lit4LiB4Lij4Liw4LiU4Liy4LipCivguYDguKrguLfguK3guIHguKPguLDguJXguYjguLLguKIKK+C5gOC4quC4t+C5ieC4reC4geC4peC5ieC4suC4oQor4LmA4Liq4Li34Lit4LiB4Liq4LiZCivguYDguKrguLfguK3guIHguYTguKoKK+C5gOC4quC4t+C5ieC4reC4geC4seC5iuC4gQor4LmA4Liq4Li34Lit4LiB4Li04LiZ4Lin4Lix4LinCivguYDguKrguLfguK3guYDguIHguYjguLIKK+C5gOC4quC4t+C4reC4guC5ieC4suC4oeC4q+C5ieC4p+C4ogor4LmA4Liq4Li34Lit4LiI4LiZ4LiX4LmI4LiyIOC4guC5ieC4suC4iOC4meC4l+C4suC4hwor4LmA4Liq4Li34Lit4LiL4LmI4Lit4LiZ4LmA4Lil4LmH4LiaCivguYDguKrguLfguK3guYDguJLguYjguLLguIjguLPguKjguLXguKUKK+C5gOC4quC4t+C4reC4lOC4suC4pwor4LmA4Liq4Li34Lit4LiU4LizCivguYDguKrguLfguK3guJXguIHguJbguLHguIcKK+C5gOC4quC4t+C4reC4leC4muC4geC5ieC4mQor4LmA4Liq4Li34Lit4LiX4Lil4Liy4Lii4Lir4LmJ4Liy4LiHIOC4iuC5ieC4suC4h+C4l+C4peC4suC4ouC5guC4o+C4hwor4LmA4Liq4Li34Lit4LiX4Liw4LmA4LilCivguYDguKrguLfguK3guJnguK3guJnguIHguLTguJkKK+C5gOC4quC4t+C4reC4meC4seC5iOC4h+C4o+C5iOC4oQor4LmA4Liq4Li34LmJ4Lit4LiZ4LmJ4LizCivguYDguKrguLfguYjguK3guJnguYnguLPguKHguLHguJkKK+C5gOC4quC4t+C4reC5g+C4meC4o+C5iOC4suC4h+C4quC4oeC4seC4mQor4LmA4Liq4Li34Lit4Lia4Lit4LiHCivguYDguKrguLfguK3guJvguKXguLIKK+C5gOC4quC4t+C4reC4m+C5iOC4sgor4LmA4Liq4Li34Lit4Lib4LmI4Liy4LmB4Lih4Lin4LmA4LiL4LiyCivguYDguKrguLfguK3guJvguYjguLLguYHguKHguKfguKHguK3guIcKK+C5gOC4quC4t+C4reC5hOC4nwor4LmA4Liq4Li34LmI4Lit4LihCivguYDguKrguLfguYjguK3guKHguJfguKPguLLguKEKK+C5gOC4quC4t+C5iOC4reC4oeC5guC4l+C4o+C4oQor4LmA4Liq4Li34LmI4Lit4Lih4Liq4Li04LiX4LiY4Li04LmMCivguYDguKrguLfguYjguK3guKHguYDguKrguLXguKIKK+C5gOC4quC4t+C4reC5geC4oeC4peC4h+C4p+C4seC4mQor4LmA4Liq4Li34Lit4Lij4Li54LmJCivguYDguKrguLfguYjguK3guKXguKfguJQKK+C5gOC4quC4t+C4reC4peC4suC4geC4q+C4suC4hwor4LmA4Liq4Li34LmI4Lit4Lil4Liz4LmB4Lie4LiZCivguYDguKrguLfguK3guKrguKHguLTguIcKK+C5gOC4quC4t+C4reC4quC4tOC5ieC4meC4leC4p+C4seC4gQor4LmA4Liq4Li34Lit4Liq4Li44Lih4Liy4LiV4Lij4LiyCivguYDguKrguLfguYnguK3guYHguKrguIcKK+C5gOC4quC4t+C4reC4q+C4oeC4reC4mgor4LmA4Liq4Li34Lit4Lir4Li04LinCivguYHguKoKK+C5geC4quC5iAor4LmB4Liq4LmJCivguYHguKrguIEKK+C5geC4quC4geC5hgor4LmB4Liq4LiB4Lir4LiZ4LmJ4LiyCivguYHguKrguIcKK+C5geC4quC4h+C5gOC4h+C4tOC4meC5geC4quC4h+C4l+C4reC4hwor4LmB4Liq4LiH4LiI4Lix4LiZ4LiX4Lij4LmMCivguYHguKrguIfguKrguKfguYjguLLguIcKK+C5geC4quC4h+C4reC4suC4l+C4tOC4leC4ouC5jAor4LmB4Liq4LiUCivguYHguKrguJTguIcKK+C5geC4quC4lOC4h+C4reC4reC4gQor4LmB4Liq4LiV4Lih4Lib4LmMCivguYHguKrguYDguJbguLIKK+C5geC4quC4mQor4LmB4Liq4LiZ4LiB4LilCivguYHguKrguJnguIcKK+C5geC4quC4meC4h+C4reC4mQor4LmB4Liq4LiZ4LiiLQor4LmB4Liq4LiZ4Lii4LmMCivguYHguKrguJnguKLguLLguIHguKMKK+C5geC4quC4meC4ouC4suC4meC4uOC4oOC4suC4ngor4LmB4Liq4LiZ4Lij4Li54LmJCivguYHguKrguJnguYDguKrguJnguLLguLAKK+C5geC4quC4meC4sgor4LmB4Liq4LiaCivguYHguKrguJrguIEKK+C5geC4quC4oQor4LmB4Liq4Lih4Liq4Liy4LijCivguYHguKrguYnguKHguYnguLIKK+C5geC4quC5ieC4oeC5ieC4suC4l+C4sOC4peC4suC4ogor4LmB4Liq4Lii4LiBCivguYHguKrguKLguIcKK+C5geC4quC4ouC4h+C4guC4mQor4LmB4Liq4Lii4LiwCivguYHguKrguKPguIEKK+C5geC4quC4o+C5ieC4hwor4LmB4Liq4Lij4LmJ4LiH4Lin4LmI4LiyCivguYHguKrguKXguIcKK+C5geC4quC4peC4h+C5g+C4iAor4LmB4Liq4Lil4LiH4LmA4Lia4Li34LmI4LitCivguYHguKrguKfguIcKK+C5geC4quC4reC4gQor4LmB4Liq4LiwCivguYLguKrguIEKK+C5guC4quC4geC5guC4lOC4gQor4LmC4Liq4LiB4Lix4LiZ4LiV4LmMCivguYLguKrguIHguLLguJTguLLguJnguLIKK+C5guC4quC5guC4hOC4o+C4gQor4LmC4Liq4LiTCivguYLguKrguJPguJHguYwKK+C5guC4quC4k+C4tAor4LmC4Liq4LiT4Li1CivguYLguKrguJQKK+C5guC4quC4lOC4gQor4LmC4Liq4LiU4LihCivguYLguKrguJTguLIKK+C5guC4quC4lOC4suC4muC4seC4mQor4LmC4Liq4LiU4Liy4Lib4Lix4LiV4LiV4Li04Lic4LilCivguYLguKrguJTguLLguJvguLHguJXguJXguLTguKHguKPguKPguIQKK+C5guC4quC4lQor4LmC4Liq4LiVLQor4LmC4Liq4LiV4LiW4Li0CivguYLguKrguJXguJfguLHguKjguJnguKfguLHguKrguJTguLgKK+C5guC4quC4leC4l+C4seC4qOC4meC4reC4uOC4m+C4geC4o+C4k+C5jAor4LmC4Liq4LiX4LiBCivguYLguKrguJfguKMKK+C5guC4quC4mOC4gQor4LmC4Liq4LiY4LiZ4LiwCivguYLguKrguJkKK+C5guC4quC4meC4geC4tOC4meC4lOC4reC4gQor4LmC4Liq4LiZ4LiE4Liy4LiH4LiE4LiBCivguYLguKrguJnguKvguLLguIfguYTguIHguYgKK+C5guC4quC4meC4q+C4tOC4mQor4LmC4Liq4LigLQor4LmC4Liq4Lig4LiTCivguYLguKrguKDguLIKK+C5guC4quC4oOC4tOC4k+C4tQor4LmC4Liq4Lig4Li1CivguYLguKrguYDguKDguJPguLUKK+C5guC4quC4oQor4LmC4Liq4Lih4LiZ4Lix4LiqCivguYLguKrguKHguKEKK+C5guC4quC4oeC4ouC5jAor4LmC4Liq4Lih4Liq4LmI4Lit4LiH4LmB4Liq4LiHCivguYLguKrguKPguYjguIcKK+C5guC4quC4o+C4iAor4LmC4Liq4Lij4LiI4Liq4Lij4LiHCivguYLguKrguKfguKPguKPguJMKK+C5guC4quC4q+C4uOC5ieC4ogor4LmC4Liq4Lis4LiqCivguYPguKoKK+C5g+C4quC5iAor4LmD4Liq4LmI4LiE4Lin4Liy4LihCivguYPguKrguYjguITguLDguYHguJnguJnguYTguKHguYjguJfguLHguJkKK+C5g+C4quC5iOC5hOC4hOC4peC5iQor4LmD4Liq4LmI4LmD4LiICivguYPguKrguYjguJXguLDguIHguKPguYnguLLguKXguYnguLLguIfguJnguYnguLMKK+C5g+C4quC5iOC4luC5ieC4reC4ouC4o+C5ieC4reC4ouC4hOC4p+C4suC4oQor4LmD4Liq4LmI4LmE4LifCivguYPguKrguYjguKLguLIKK+C5g+C4quC5iOC4o+C5ieC4suC4ogor4LmD4Liq4LmI4Liq4Liy4LmB4Lir4Lij4LiB4LmB4LiC4Lin4LiZ4LmE4Lin4LmJCivguYPguKrguYjguKrguLXguKrguLHguJkKK+C5g+C4quC5iOC5hOC4quC5iQor4LmD4Liq4LmI4Lir4LiZ4LmJ4Liy4LiB4Liy4LiBCivguYPguKrguYjguKvguJnguYnguLLguKLguLHguIHguKnguYwKK+C5hOC4qgor4LmE4Liq4LmJCivguYTguKrguYnguIHguKPguK3guIEKK+C5hOC4quC5ieC5hOC4geC5iAor4LmE4Liq4LmJ4LmB4LiC4Lin4LiZCivguYTguKrguYnguYDguJTguLfguK3guJkKK+C5hOC4quC5ieC4leC4seC4mQor4LmE4Liq4LmJ4LiV4Li04LmI4LiHCivguYTguKrguYnguYDguJvguYfguJnguJnguYnguLPguYDguKvguKXguLfguK3guIcKK+C5hOC4quC5ieC5gOC4m+C5h+C4meC4q+C4meC4reC4mQor4LmE4Liq4LiiCivguYTguKrguKItCivguYTguKrguKLguYDguKfguJcKK+C5hOC4quC4ouC4qOC4suC4quC4leC4o+C5jAor4LmE4Liq4Lii4LiyCivguYTguKrguKLguLLguKrguJnguYwKK+C5hOC4quC4o+C5iQor4LmE4Liq4LmJ4Lil4Liw4Lih4Liy4LiZCivguYTguKrguYnguYDguKXguLfguYjguK3guJkKK+C5hOC4quC4pwor4LmE4Liq4LmJ4Lio4Li24LiBCivguYTguKrguKvguLHguKcKK+C5hOC4quC5ieC5geC4q+C5ieC4hwor4LmE4Liq4LmJ4Lit4Lix4LmI4LinCivguKsKK+C4q+C4gQor4Lir4LiB4LiE4Lin4LmI4LizCivguKvguIHguITguLDguYDguKHguJkKK+C4q+C4geC4muC4lwor4Lir4LiB4Lil4LmJ4LihCivguKvguIHguYLguKXguYgKK+C4q+C4geC4q+C4seC4mQor4Lir4LiHCivguKvguIfguIHguYYKK+C4q+C4h+C4qi0KK+C4q+C4h+C4quC5jAor4Lir4LiH4Liq4LiE4LiV4Li0CivguKvguIfguKrguYzguJfguK3guIcKK+C4q+C4h+C4quC4muC4suC4lwor4Lir4LiH4Liq4Lij4LiWCivguKvguIfguKrguYzguKPguYjguK3guJnguKHguLHguIfguIHguKPguKPguLMKK+C4q+C4h+C4quC4o+C4suC4igor4Lir4LiH4Liq4LmM4Lil4Li14Lil4LiyCivguKvguIfguKrguYzguKvguKLguIEKK+C4q+C4h+C4rQor4Lir4LiH4Lit4LiBCivguKvguIfguYjguK3guIfguYYKK+C4q+C4h+C4reC4h+C5geC4q+C4h+C4hwor4Lir4LiH4Lit4LiUCivguKvguIfguK3guJTguYYKK+C4q+C4h+C4reC4mQor4Lir4LiH4Lit4LiZ4LmE4LiB4LmICivguKvguIfguK3guJnguYTguIHguYjguJvguYjguLIKK+C4q+C4h+C5iOC4reC4oQor4Lir4LiH4Lit4LiiCivguKvguIfguYjguK3guKIKK+C4q+C4h+C4reC4ouC4geC5i+C4reC4ogor4Lir4LiH4Lit4Lii4LmA4Lir4LiH4LiyCivguKvguIfguLHguIHguYYKK+C4q+C4h+C4seC4muC5hgor4Lir4LiH4LmI4Liy4LiHCivguKvguIfguLLguKIKK+C4q+C4h+C4suC4ouC4l+C5ieC4reC4hwor4Lir4LiH4Liy4Lii4Lir4Lil4Lix4LiHCivguKvguIfguYjguLLguKcKK+C4q+C4h+C4swor4Lir4LiH4Liz4LmA4Lir4LiH4Lit4LiwCivguKvguIfguLTguIEKK+C4q+C4h+C4tOC4h+C5hgor4Lir4LiH4Li04LihCivguKvguIfguLTguKHguYYKK+C4q+C4h+C4tuC4geC5hgor4Lir4LiH4Li44LiH4Lir4LiH4Li04LiHCivguKvguIfguLjguJTguKvguIfguLTguJQKK+C4q+C4h+C4uOC4mgor4Lir4LiH4Li44Lia4Lir4LiH4Lix4LiaCivguKvguIfguLjguYjguKIKK+C4q+C4jeC5ieC4sgor4Lir4LiN4LmJ4Liy4LiB4Lij4Liw4LiI4Liy4LihCivguKvguI3guYnguLLguYDguIHguKXguYfguJTguKvguK3guKIKK+C4q+C4jeC5ieC4suC4guC4seC4lAor4Lir4LiN4LmJ4Liy4LiC4Lix4LiU4LmD4Lia4Lii4Liy4LinCivguKvguI3guYnguLLguILguLHguJTguKvguKXguKfguIcKK+C4q+C4jeC5ieC4suC4h+C4p+C4h+C4iuC5ieC4suC4hwor4Lir4LiN4LmJ4Liy4LiI4Liy4LihCivguKvguI3guYnguLLguYPguJXguYnguYPguJoKK+C4q+C4jeC5ieC4suC4luC4reC4lOC4m+C4peC5ieC4reC4hwor4Lir4LiN4LmJ4Liy4LiZ4LmJ4Liz4LiU4Lix4Lia4LmE4LifCivguKvguI3guYnguLLguJrguLHguKcKK+C4q+C4jeC5ieC4suC4m+C4suC4geC4hOC4reC4gQor4Lir4LiN4LmJ4Liy4Lib4Li14LiZ4LiV4LitCivguKvguI3guYnguLLguJ3guKPguLHguYjguJkKK+C4q+C4jeC5ieC4suC4nuC4seC4meC4h+C4uQor4Lir4LiN4LmJ4Liy4LmA4Lie4LmH4LiBCivguKvguI3guYnguLLguYHguJ7guKPguIEKK+C4q+C4jeC5ieC4suC4ouC4reC4h+C5hOC4nwor4Lir4LiN4LmJ4Liy4Lii4Liy4Lii4LmA4Lig4LiyCivguKvguI3guYnguLLguKPguIHguIrguYnguLLguIcKK+C4q+C4jeC5ieC4suC4o+C4suC4geC4guC4suC4pwor4Lir4LiN4LmJ4Liy4Lil4Li04LmA4Lig4LiyCivguKvguI3guYnguLLguKvguJnguKfguJTguYHguKHguKcKK+C4q+C4jeC5ieC4suC5geC4q+C5ieC4p+C4q+C4oeC4uQor4Lir4LiN4Li04LiHCivguKvguI3guLTguJoKK+C4q+C4lAor4Lir4LiU4Lir4Liy4LiiCivguKvguJTguKvguLnguYgKK+C4q+C4leC4sAor4Lir4LiX4LiiLQor4Lir4LiX4Lix4LiiCivguKvguJkKK+C4q+C4meC4l+C4suC4hwor4Lir4LiZ4LiZ4LiwCivguKvguJnguKfguIEKK+C4q+C4meC4p+C4geC4q+C4uQor4Lir4LiZ4LmI4Lin4LiHCivguKvguJnguYjguKfguIfguYDguKvguJnguLXguYjguKLguKcKK+C4q+C4meC4p+C4lAor4Lir4LiZ4Lin4LiU4LiZ4Liy4LiE4Lij4Liy4LiKCivguKvguJnguKfguJTguJ7guKPguLLguKvguKHguJPguYwKK+C4q+C4meC4p+C4lOC5geC4oeC4pwor4Lir4LiZ4LmI4Lin4LiiCivguKvguJnguYjguKfguKLguIHguYnguLLguJkKK+C4q+C4meC5iOC4p+C4ouC4geC4tOC4lQor4Lir4LiZ4LmI4Lin4Lii4LiU4Liy4Lij4Liy4Lio4Liy4Liq4LiV4Lij4LmMCivguKvguJnguK0KK+C4q+C4meC5iOC4rQor4Lir4LiZ4Lit4LiBCivguKvguJnguK3guIHguIrguYnguLLguIcKK+C4q+C4meC4reC4hwor4Lir4LiZ4Lit4LiH4LmB4LiL4LiHCivguKvguJnguK3guIfguYPguJkKK+C4q+C4meC5h+C4reC4h+C5geC4q+C4meC5h+C4hwor4Lir4LiZ4Lit4LiZCivguKvguJnguK3guJnguIHguKPguLDguJfguLnguYkKK+C4q+C4meC4reC4meC4geC4o+C4sOC4quC4t+C4rQor4Lir4LiZ4Lit4LiZ4LiB4LitCivguKvguJnguK3guJnguJTguYnguJkKK+C4q+C4meC4reC4meC4leC4suC4ouC4q+C4ouC4suC4gQor4Lir4LiZ4Lit4LiZ4Lia4LmI4Lit4LiZ4LmE4Liq4LmJCivguKvguJnguK3guJnguJ7guKLguLLguJjguLQKK+C4q+C4meC4reC4meC4oeC5ieC4p+C4meC5g+C4muC4guC5ieC4suC4pwor4Lir4LiZ4Lit4LiZ4Lir4LiZ4Lix4LiH4Liq4Li34LitCivguKvguJnguYjguK3guYDguJnguLfguYnguK3guYDguIrguLfguYnguK3guYTguIIKK+C4q+C4meC5iOC4reC5hOC4oeC5iQor4Lir4LiZ4LmI4Lit4LmE4Lih4LmJ4LiZ4LmJ4LizCivguKvguJnguYjguK3guYTguKHguYnguJ3guKPguLHguYjguIcKK+C4q+C4meC5iOC4reC4ogor4Lir4LiZ4LmH4Lit4Lii4LmB4LiZ4LmICivguKvguJnguLHguIEKK+C4q+C4meC4seC4geC4guC5ieC4rQor4Lir4LiZ4Lix4LiB4LmD4LiICivguKvguJnguLHguIHguYHguJnguYjguJkKK+C4q+C4meC4seC4geC4m+C4suC4gQor4Lir4LiZ4Lix4LiB4LmB4Lic4LmI4LiZ4LiU4Li04LiZCivguKvguJnguLHguIHguKHguLfguK0KK+C4q+C4meC4seC4geC5hOC4oeC5iOC5gOC4reC4siDguYDguJrguLLguYTguKHguYjguKrguLnguYkKK+C4q+C4meC4seC4geC4q+C4meC5iOC4p+C4hwor4Lir4LiZ4Lix4LiB4Lir4LiZ4LiyCivguKvguJnguLHguIHguKvguJnguYnguLIKK+C4q+C4meC4seC4geC4reC4gQor4Lir4LiZ4Lix4LiHCivguKvguJnguLHguIfguIHguKXguLLguIfguKfguLHguJkKK+C4q+C4meC4seC4h+C4geC4s+C4nuC4o+C5ieC4sgor4Lir4LiZ4Lix4LiH4LmE4LiB4LmICivguKvguJnguLHguIfguJXguLDguKXguLjguIcKK+C4q+C4meC4seC4h+C5gOC4o+C4teC4ouC4lAor4Lir4LiZ4Lix4LiH4Liq4LiV4Li04LmK4LiBCivguKvguJnguLHguIfguKrguLfguK0KK+C4q+C4meC4seC4h+C4quC4t+C4reC5gOC4lOC4tOC4meC4l+C4suC4hwor4Lir4LiZ4Lix4LiH4Liq4Li34Lit4Lia4Lij4Li04LiE4LiT4Lir4LmM4Liq4LiZ4LiY4Li0CivguKvguJnguLHguIfguKrguLfguK3guJ7guLTguKHguJ7guYwKK+C4q+C4meC4seC4h+C4quC4t+C4reC4o+C4seC4muC4o+C4reC4h+C4geC4suC4o+C4l+C4s+C4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Lir4LiZ4Lix4LiH4Liq4Li34Lit4LmA4Lin4Li14Lii4LiZCivguKvguJnguLHguIfguKrguLfguK3guKrguLHguI3guI3guLIKK+C4q+C4meC4seC4h+C4q+C4meC5ieC4suC5hOC4nwor4Lir4LiZ4Lix4LiH4LmD4Lir4LiN4LmICivguKvguJnguLHguYjguJkKK+C4q+C4meC4seC4mgor4Lir4LiZ4LiyCivguKvguJnguYnguLIKK+C4q+C4meC5ieC4suC4geC4o+C4sOC4ieC4teC4gQor4Lir4LiZ4LmJ4Liy4LiB4Lij4Liw4LiU4Liy4LiZCivguKvguJnguYnguLLguIHguLLguIEKK+C4q+C4meC4suC4geC4suC4quC4o+C4tQor4Lir4LiZ4LmJ4Liy4LmA4LiB4LmJ4LitCivguKvguJnguYnguLLguILguLIKK+C4q+C4meC5ieC4suC4guC5ieC4suC4p+C4leC4seC4hwor4Lir4LiZ4LmJ4Liy4LmB4LiC4LmJ4LiHCivguKvguJnguYnguLLguITguKfguYjguLMKK+C4q+C4meC5iOC4suC4hwor4Lir4LiZ4LmJ4Liy4LiH4LitCivguKvguJnguYnguLLguIfguK3guIEKK+C4q+C4meC5ieC4suC5gOC4h+C5ieC4sgor4Lir4LiZ4LmJ4Liy4LmB4LiHCivguKvguJnguYnguLLguIjguYvguK3guKIKK+C4q+C4meC5ieC4suC4iOC4seC5iOC4pwor4Lir4LiZ4LmJ4Liy4LiI4Li34LiUCivguKvguJnguYnguLLguInguLLguIEKK+C4q+C4meC5ieC4suC4ieC4suC4mQor4Lir4LiZ4LmJ4Liy4LmC4LiJ4LiZ4LiUCivguKvguJnguYnguLLguIvguLXguJQKK+C4q+C4meC5ieC4suC4i+C4t+C5iOC4reC5g+C4iOC4hOC4lAor4Lir4LiZ4LmJ4Liy4LmA4LiL4Li14Lii4LinCivguKvguJnguLLguJQKK+C4q+C4meC5ieC4suC4lOC5ieC4suC4mQor4Lir4LiZ4LmJ4Liy4LiV4Lix4LiBCivguKvguJnguYnguLLguJXguLHguYnguIcKK+C4q+C4meC4suC4leC4sgor4Lir4LiZ4LmJ4Liy4LiV4LiyCivguKvguJnguYnguLLguJXguYjguLLguIcKK+C4q+C4meC5ieC4suC4leC4suC4ogor4Lir4LiZ4LmJ4Liy4LiV4Li24LiHCivguKvguJnguYnguLLguJXguLfguYjguJkKK+C4q+C4meC5ieC4suC4leC4ueC4oQor4Lir4LiZ4LmJ4Liy4LmA4LiV4LiyCivguKvguJnguYnguLLguJbguLHguIcKK+C4q+C4meC5ieC4suC4l+C4seC4mgor4Lir4LiZ4LmJ4Liy4LiX4Li14LmICivguKvguJnguYnguLLguJfguLXguYjguJnguLHguYjguIcKK+C4q+C4meC4suC4mQor4Lir4LiZ4LmJ4Liy4LiZ4Lin4LilCivguKvguJnguYnguLLguYDguJnguLfguYnguK3guYPguIjguYDguKrguLfguK0KK+C4q+C4meC4suC5geC4meC5iOC4mQor4Lir4LiZ4LmJ4Liy4Lia4Lix4LiZCivguKvguJnguYnguLLguJrguLLguIcKK+C4q+C4meC5ieC4suC4muC4suC4mQor4Lir4LiZ4LmJ4Liy4Lia4Li54LiUCivguKvguJnguYnguLLguJvguLHguJQKK+C4q+C4meC5ieC4suC5gOC4m+C5h+C4mQor4Lir4LiZ4LmJ4Liy4Lic4LiyCivguKvguJnguYnguLLguJzguLLguIEKK+C4q+C4meC5ieC4suC4nuC4suC4l+C4ouC5jAor4Lir4LiZ4LmJ4Liy4LmE4LifCivguKvguJnguLLguKEKK+C4q+C4meC4suC4oeC4guC4teC5ieC5geC4o+C4lAor4Lir4LiZ4Liy4Lih4LmA4LiC4Li14Lii4LiwCivguKvguJnguLLguKHguITguKfguLLguKLguJnguK3guJkKK+C4q+C4meC4suC4oeC4iOC4teC5iQor4Lir4LiZ4Liy4Lih4LmB4LiU4LiHCivguKvguJnguLLguKHguYDguJXguKIKK+C4q+C4meC4suC4oeC4nuC4o+C4oQor4Lir4LiZ4Liy4Lih4Lie4Li44LiH4LiU4LitCivguKvguJnguLLguKHguKLguK3guIHguK3guIEKK+C4q+C4meC4suC4oeC4ouC4reC4geC5gOC4reC4suC4q+C4meC4suC4oeC4muC5iOC4hwor4Lir4LiZ4Liy4Lih4Lij4Lit4Lia4LiV4Lix4LinCivguKvguJnguLLguKHguKvguKXguLHguIcKK+C4q+C4meC4suC4oeC5gOC4q+C4oeC5h+C4mQor4Lir4LiZ4Liy4Lih4LmB4Lir4Lil4Lih4LmE4Lih4LmI4Lih4Li14LmD4LiE4Lij4LmA4Liq4Li14LmJ4Lii4LihCivguKvguJnguLLguKHguYPguKvguI3guYgKK+C4q+C4meC5ieC4suC4oeC4reC4lAor4Lir4LiZ4LmJ4Liy4Lih4LmI4Lit4LiiCivguKvguJnguYnguLLguKHguYnguLIKK+C4q+C4meC5ieC4suC4oeC4t+C4lAor4Lir4LiZ4LmJ4Liy4Lih4Li44LiCCivguKvguJnguYnguLLguYTguKHguYkKK+C4q+C4meC5iOC4suC4ogor4Lir4LiZ4LmI4Liy4Lii4Lir4LiZ4Li1CivguKvguJnguYjguLLguKLguYHguKvguJnguIcKK+C4q+C4meC5ieC4suC4o+C5iOC4suC4q+C4uOC5jAor4Lir4LiZ4LmJ4Liy4Lij4Liy4Lir4Li5CivguKvguJnguYnguLLguYDguKXguLfguK3guJQKK+C4q+C4meC4suC4pwor4Lir4LiZ4Liy4Lin4LmD4LiICivguKvguJnguYnguLLguKfguLHguKcKK+C4q+C4meC5ieC4suC5geC4p+C5iOC4mQor4Lir4LiZ4LmJ4Liy4Liq4Li04LmI4Lin4Lir4LiZ4LmJ4Liy4LiC4Lin4Liy4LiZCivguKvguJnguYnguLLguYDguKrguLXguKIKK+C4q+C4meC5ieC4suC5gOC4quC4teC5ieC4ouC4pwor4Lir4LiZ4LmJ4Liy4Lir4LiZ4LiyCivguKvguJnguYnguLLguKvguLHguIEKK+C4q+C4meC4suC4q+C4uQor4Lir4LiZ4Liy4Lir4Li54Lir4LiZ4Liy4LiV4LiyCivguKvguJnguYnguLLguYPguKvguI3guYjguYPguIjguYLguJUKK+C4q+C4meC5ieC4suC5hOC4q+C4p+C5ieC4q+C4peC4seC4h+C4q+C4peC4reC4gQor4Lir4LiZ4LmJ4Liy4Lit4LiBCivguKvguJnguYnguLLguK3guLHguJQKK+C4q+C4meC4swor4Lir4LiZ4Liz4LmD4LiICivguKvguJnguLPguYDguKXguLXguYnguKLguJoKK+C4q+C4meC4tQor4Lir4LiZ4Li14LmJCivguKvguJnguLXguYnguYDguIHguKXguLfguYjguK3guJnguIHguKXguLfguJnguIHguLHguJkKK+C4q+C4meC4teC4mgor4Lir4LiZ4Li14LmJ4Liq4Li04LiZCivguKvguJnguLXguYnguKrguLnguI0KK+C4q+C4meC4teC5gOC4quC4t+C4rQor4Lir4LiZ4Li14LmA4Liq4Li34Lit4Lib4Liw4LiI4Lij4Liw4LmA4LiC4LmJCivguKvguJnguLbguIEKK+C4q+C4meC4tuC5iOC4hwor4Lir4LiZ4Li24LiaCivguKvguJnguLfguJQKK+C4q+C4meC4uAor4Lir4LiZ4Li44LiZCivguKvguJnguLjguJnguYDguJnguLfguYjguK3guIcKK+C4q+C4meC4uOC4meC4q+C4peC4seC4hwor4Lir4LiZ4Li44LiaCivguKvguJnguLjguJrguYYKK+C4q+C4meC4uOC4muC4q+C4meC4seC4mgor4Lir4LiZ4Li44LmI4LihCivguKvguJnguLjguYjguKHguJfguLHguYnguIfguYHguJfguYjguIcKK+C4q+C4meC4uOC5iOC4oeC5geC4meC5iOC4mQor4Lir4LiZ4Li44LmI4Lih4LmA4Lir4LiZ4LmJ4LiyCivguKvguJnguLjguYjguKIKK+C4q+C4meC4uQor4Lir4LiZ4Li54LiV4LiB4LiW4Lix4LiH4LiC4LmJ4Liy4Lin4Liq4Liy4LijCivguKvguJnguLnguJXguLTguJTguIjguLHguYjguJkKK+C4q+C4meC4ueC4nOC4tQor4Lir4LmI4LihCivguKvguKHguIEKK+C4q+C4oeC4geC4oeC4uOC5iOC4mQor4Lir4Lih4LiB4LmE4Lir4Lih4LmJCivguKvguKHguJQKK+C4q+C4oeC4lOC4geC4o+C4sOC5gOC4m+C5i+C4sgor4Lir4Lih4LiU4LiB4Lix4LiZCivguKvguKHguJTguYDguILguJUKK+C4q+C4oeC4lOC5gOC4guC4teC5ieC4ouC4p+C4q+C4oeC4lOC4h+C4sgor4Lir4Lih4LiU4LiI4LiUCivguKvguKHguJTguJXguLHguKcKK+C4q+C4oeC4lOC4leC4s+C4o+C4sgor4Lir4Lih4LiU4LiV4Li54LiUCivguKvguKHguJTguYDguJnguLfguYnguK3guKvguKHguJTguJXguLHguKcKK+C4q+C4oeC4lOC4muC4uOC4jQor4Lir4Lih4LiU4Lib4Lij4Liw4LiV4Li5CivguKvguKHguJTguYDguJvguKXguLfguK3guIEKK+C4q+C4oeC4lOC4nuC4gQor4Lir4Lih4LiU4Lie4Li44LiHCivguKvguKHguJTguKPguLnguJsKK+C4q+C4oeC4lOC5hOC4quC5ieC4q+C4oeC4lOC4nuC4uOC4hwor4Lir4LmI4Lih4LiU4Lit4LiHCivguKvguKHguJTguK3guLLguKLguLgKK+C4q+C4oeC4lOC4reC4suC4peC4seC4ogor4Lir4Lih4LiU4Lit4Liy4Lil4Lix4Lii4LiV4Liy4Lii4Lit4Lii4Liy4LiBCivguKvguKHguJTguK3guLLguKXguLHguKLguYTguKLguJTguLUKK+C4q+C4oeC5iOC4mQor4Lir4Lih4LmI4LiZ4Lir4Lih4Lit4LiHCivguKvguKHguYjguJnguYTguKvguKHguYkKK+C4q+C4oeC4p+C4gQor4Lir4Lih4Lin4LiB4LiB4Liw4LmC4Lil4LmICivguKvguKHguKfguIHguYHguIHguYrguJsKK+C4q+C4oeC4p+C4geC5geC4iOC4pwor4Lir4Lih4Lin4LiB4LiX4Lij4LiH4Lir4Lih4LmJ4Lit4LiV4Liy4LilCivguKvguKHguKfguIHguJnguLTguKPguKDguLHguKIKK+C4q+C4oeC4p+C4geC4q+C4ueC4geC4o+C4sOC4leC5iOC4suC4ogor4Lir4Lih4Lin4LiUCivguKvguKHguK0KK+C4q+C4oeC5iOC4rQor4Lir4Lih4LmJ4LitCivguKvguKHguK3guIEKK+C4q+C4oeC5ieC4reC5geC4geC4hwor4Lir4Lih4LmJ4Lit4LmB4LiB4LiH4LiE4LmI4Liy4LiHCivguKvguKHguYnguK3guYHguIHguIfguKXguLTguIcKK+C4q+C4oeC4reC4guC4p+C4seC4jQor4Lir4Lih4LmJ4Lit4LiC4LmJ4Liy4Lin4Lir4Lih4LmJ4Lit4LmB4LiB4LiH4Lil4Li04LiHCivguKvguKHguK3guITguKfguLLguKEKK+C4q+C4oeC4reC4hwor4Lir4Lih4LmI4Lit4LiHCivguKvguKHguK3guIfguYPguIgKK+C4q+C4oeC4reC4h+C4oeC4seC4pwor4Lir4Lih4Lit4LiH4Lir4Lih4Liy4LiHCivguKvguKHguK3guIrguYnguLLguIfguYDguKvguKLguLXguKLguJoKK+C4q+C4oeC4reC5gOC4kuC5iOC4sgor4Lir4Lih4Lit4LiU4Li5CivguKvguKHguK3guJXguLLguKUKK+C4q+C4oeC5ieC4reC4leC4suC4pQor4Lir4Lih4Lit4LiV4Liz4LmB4LiiCivguKvguKHguYnguK3guJfguLDguJnguJkKK+C4q+C4oeC4reC5hOC4l+C4ogor4Lir4Lih4Lit4LiZCivguKvguKHguYjguK3guJkKK+C4q+C4oeC4reC4meC4guC4p+C4suC4mQor4Lir4Lih4Lit4LiZ4LiC4LmJ4Liy4LiHCivguKvguKHguK3guJnguJfguK3guIcKK+C4q+C4oeC4reC4meC5ieC4reC4ogor4Lir4Lih4LmJ4Lit4LiZ4LmJ4LizCivguKvguKHguK3guJnguYnguLPguKHguLHguJkKK+C4q+C4oeC4reC4mgor4Lir4Lih4Lit4Lia4LiB4Lij4Liw4LmB4LiVCivguKvguKHguK3guJrguKPguLLguJrguITguLLguJrguYHguIHguYnguKcKK+C4q+C4oeC5ieC4reC5geC4m+C4peC4hwor4Lir4Lih4LmJ4Lit4LmB4Lib4Lil4LiH4LmE4LifCivguKvguKHguK3guJzguLUKK+C4q+C4oeC4reC4nuC4seC4lOC5guC4leC4meC4lAor4Lir4Lih4LmI4Lit4LihCivguKvguKHguYjguK3guKHguYDguIjguYnguLIKK+C4q+C4oeC5iOC4reC4oeC4ieC4seC4mQor4Lir4Lih4LmI4Lit4Lih4Lij4Liy4LiK4Lin4LiH4Lio4LmMCivguKvguKHguYjguK3guKHguKvguKXguKfguIcKK+C4q+C4oeC5iOC4reC4oeC4q+C5ieC4suC4oQor4Lir4Lih4Lit4LiiCivguKvguKHguK3guKXguLMKK+C4q+C4oeC5ieC4reC4q+C4meC4uQor4Lir4Lih4LmJ4Lit4Lir4LmJ4Lit4LihCivguKvguKHguLHguIEKK+C4q+C4oeC4seC4geC4q+C4oeC4oQor4Lir4Lih4Lix4LiUCivguKvguKHguLHguJkKK+C4q+C4oeC4seC5iOC4mQor4Lir4Lih4Lix4LmJ4LiZCivguKvguKHguLHguYjguJnguYTguKrguYkKK+C4q+C4oeC4seC4mgor4Lir4Lih4Lix4Lia4LmGCivguKvguKHguLIKK+C4q+C4oeC5iOC4sgor4Lir4Lih4LmJ4LiyCivguKvguKHguLLguIEKK+C4q+C4oeC4suC4geC5gOC4geC5h+C4mgor4Lir4Lih4Liy4LiB4LiC4LmI4Lin4LiHCivguKvguKHguLLguIHguYDguILguLXguKLguKcKK+C4q+C4oeC4suC4geC5geC4guC5ieC4hwor4Lir4Lih4Liy4LiB4LiE4Lix4LiZCivguKvguKHguLLguIHguJTguLTguJoKK+C4q+C4oeC4suC4geC5geC4lOC4hwor4Lir4Lih4Liy4LiB4LiX4Lix4LiZCivguKvguKHguLLguIHguJzguLLguIcKK+C4q+C4oeC4suC4geC4nOC4ueC5ieC4q+C4oeC4suC4geC5gOC4oeC4teC4ogor4Lir4Lih4Liy4LiB4Lid4Lij4Lix4LmI4LiHCivguKvguKHguLLguIHguKHguYjguKfguJkKK+C4q+C4oeC4suC4geC4oeC4suC4qAor4Lir4Lih4Liy4LiB4LmA4Lih4LmI4LiyCivguKvguKHguLLguIHguYDguKHguYjguLLguITguKfguLLguKIKK+C4q+C4oeC4suC4geC4ouC4seC4mgor4Lir4Lih4Liy4LiB4LmB4Lii4LiBCivguKvguKHguLLguIHguKPguLjguIEKK+C4q+C4oeC4suC4geC4peC4tOC4hwor4Lir4Lih4Liy4LiB4Liq4LiHCivguKvguKHguLLguIHguKvguJnguLLguKEKK+C4q+C4oeC4suC4geC4q+C4reC4oeC4hOC4p+C4suC4ogor4Lir4Lih4Liy4LiB4LmA4Lir4Lil4Li34Lit4LiHCivguKvguKHguLLguIHguK3guLXguYHguJvguLAKK+C4q+C4oeC4suC4geC4ruC4reC4qgor4Lir4Lih4Liy4LiC4Li14LmJ4LmE4Lih4LmI4Lih4Li14LmD4LiE4Lij4Lii4LiB4Lir4Liy4LiHCivguKvguKHguLLguIcKK+C4q+C4oeC4suC4h+C5g+C4iAor4Lir4Lih4Liy4LiH4LmA4Lih4Li04LiZCivguKvguKHguLLguIjguLTguYnguIfguIjguK3guIEKK+C4q+C4oeC4suC4lAor4Lir4Lih4Liy4LmD4LiZCivguKvguKHguLLguJvguYjguLIKK+C4q+C4oeC4suC4oeC4uOC5iOC4ogor4Lir4Lih4Liy4Lih4Li44LmJ4LiiCivguKvguKHguLLguYTguKHguYkKK+C4q+C4oeC4suC4ogor4Lir4Lih4LmJ4Liy4LiiCivguKvguKHguLLguKLguIHguLPguKvguJnguJTguIHguLLguKMKK+C4q+C4oeC4suC4ouC5gOC4geC4k+C4keC5jAor4Lir4Lih4Liy4Lii4LiC4Lix4LiHCivguKvguKHguLLguKLguITguYnguJkKK+C4q+C4oeC4suC4ouC4hOC4p+C4suC4oQor4Lir4Lih4Liy4Lii4LiI4Lix4LiaCivguKvguKHguLLguKLguIjguLPguITguLjguIEKK+C4q+C4oeC4suC4ouC5g+C4iAor4Lir4Lih4Liy4Lii4LiV4Lix4LinCivguKvguKHguLLguKLguJXguLIKK+C4q+C4oeC4suC4ouC4meC5ieC4s+C4muC5iOC4reC4q+C4meC5ieC4sgor4Lir4Lih4Liy4Lii4Lib4Lil4LmI4Lit4LiiCivguKvguKHguLLguKLguKHguLHguYjguJkKK+C4q+C4oeC4suC4ouC4oeC4seC5iOC4meC4m+C4seC5ieC4meC4oeC4t+C4rQor4Lir4Lih4Liy4Lii4Lii4LiyCivguKvguKHguLLguKLguYDguKPguLXguKLguIEKK+C4q+C4oeC4suC4ouC5gOC4peC4ggor4Lir4Lih4Liy4Lii4Lir4Lix4LinCivguKvguKHguLLguKLguYDguKvguJXguLgKK+C4q+C4oeC4suC4ouC4reC4suC4jeC4sgor4Lir4Lih4Liy4Lij4LmI4LiyCivguKvguKHguLLguKrguK3guIfguKPguLLguIcKK+C4q+C4oeC4suC4q+C4oeC4ueC5iAor4Lir4Lih4Liy4Lir4Lii4Lit4LiB4LmE4LiB4LmICivguKvguKHguLLguKvguKfguIfguIHguYnguLLguIcKK+C4q+C4oeC4suC4q+C4seC4p+C5gOC4meC5iOC4sgor4Lir4Lih4Liy4Lir4Liy4LiH4LiU4LmJ4Lin4LiZCivguKvguKHguLLguYDguKvguYjguLLguYPguJrguJXguK3guIfguYHguKvguYnguIcKK+C4q+C4oeC5iOC4swor4Lir4Lih4LmJ4LizCivguKvguKHguYnguLPguJXguLHguJoKK+C4q+C4oeC4tOC5iOC4mQor4Lir4Lih4Li04LmI4LiZ4Lib4Lij4Liw4Lih4Liy4LiXCivguKvguKHguLTguYjguJnguJ7guKPguLDguJrguKPguKHguYDguJTguIrguLLguJnguLjguKDguLLguJ4KK+C4q+C4oeC4tOC5iOC4meC5gOC4q+C4oeC5iAor4Lir4Lih4Li1CivguKvguKHguLXguYgKK+C4q+C4oeC4teC5gOC4q+C4oeC5h+C4mQor4Lir4Lih4Li24LiBCivguKvguKHguLfguJkKK+C4q+C4oeC4t+C5iOC4mQor4Lir4Lih4Li44LiUCivguKvguKHguLjguJkKK+C4q+C4oeC4uOC4meC5gOC4h+C4tOC4mQor4Lir4Lih4Li44LiZ4LmA4Lin4Li14Lii4LiZCivguKvguKHguLjguJoKK+C4q+C4oeC4uOC4muC4q+C4oeC4seC4mgor4Lir4Lih4Li44Lia4Lir4Lih4Li04LiaCivguKvguKHguLjguYjguKIKK+C4q+C4oeC4uOC4ouC4guC4suC4pwor4Lir4Lih4Li5CivguKvguKHguLnguYgKK+C4q+C4oeC4ueC5gOC4guC4suC4iOC4sOC4q+C4suC4oeC5gOC4reC4suC4hOC4suC4meC5gOC4guC5ieC4suC5hOC4m+C4quC4reC4lAor4Lir4Lih4Li54LmB4LiU4LiHCivguKvguKHguLnguJXguLHguYnguIcKK+C4q+C4oeC4ueC5gOC4l+C5guC4ngor4Lir4Lih4Li54LiZ4LmJ4LizCivguKvguKHguLnguYHguJnguKEKK+C4q+C4oeC4ueC5g+C4meC5gOC4peC5ieC4sgor4Lir4Lih4Li54LmD4LiZ4Lit4Lin4LiiCivguKvguKHguLnguJvguYjguLIKK+C4q+C4oeC4ueC5hOC4m+C5hOC4geC5iOC4oeC4sgor4Lir4Lih4Li54LmB4Lic4LmI4LiZCivguKvguKHguLnguKLguK0KK+C4q+C4oeC4ueC4quC4meC4suC4oQor4Lir4Lih4Li54Liq4Liy4Lih4LiK4Lix4LmJ4LiZCivguKvguKHguLnguKrguLUKK+C4q+C4oeC4ueC4q+C4ouC5h+C4reC4hwor4Lir4Lih4Li54Lir4Lij4Li04LmI4LiHCivguKvguKHguLnguKvguKPguLbguYjguIcKK+C4q+C4oeC4ueC4q+C4seC4mQor4Lir4Lih4Li54LmB4Liu4LihCivguKvguKItCivguKvguKLguIEKK+C4q+C4ouC4geC5hgor4Lir4Lii4LmI4LiHCivguKvguKLguYjguIfguYYKK+C4q+C4ouC4lAor4Lir4Lii4LiU4Lii4LmJ4Lit4LiiCivguKvguKLguKfguIEKK+C4q+C4ouC4p+C4mgor4Lir4Lii4Lin4Lia4LmGCivguKvguKLguK3guIEKK+C4q+C4ouC4reC4geC5gOC4ouC5ieC4sgor4Lir4Lii4LmH4Lit4LiB4Lir4Lii4LmH4Lit4LiiCivguKvguKLguK3guIHguYDguK3guLTguJkKK+C4q+C4ouC5h+C4reC4hwor4Lir4Lii4LmI4Lit4LiHCivguKvguKLguYjguK3guIfguYYKK+C4q+C4ouC5h+C4reC4h+C4geC4o+C4reC4lAor4Lir4Lii4LmH4Lit4LiH4LmB4Lir4Lii4LmH4LiHCivguKvguKLguK3guJQKK+C4q+C4ouC4reC4lOC4q+C4peC4uOC4oQor4Lir4Lii4Lit4LiZCivguKvguKLguYjguK3guJkKK+C4q+C4ouC5iOC4reC4meC5g+C4iAor4Lir4Lii4LmI4Lit4LiZ4Lit4Liy4Lij4Lih4LiT4LmMCivguKvguKLguYjguK3guKEKK+C4q+C4ouC5h+C4reC4oeC5geC4q+C4ouC5h+C4oQor4Lir4Lii4LmH4Lit4LiiCivguKvguKLguYjguK3guKIKK+C4q+C4ouC4seC4gQor4Lir4Lii4Lix4LiB4LmE4Lii4LmICivguKvguKLguLHguIHguKPguLHguYnguIcKK+C4q+C4ouC4seC4geC4qOC4gQor4Lir4Lii4Lix4LiB4LmA4Lir4Lii4LiyCivguKvguKLguLHguIcKK+C4q+C4ouC4seC5iOC4hwor4Lir4Lii4Lix4LmI4LiH4LiX4Lij4Liy4LiaCivguKvguKLguLHguYjguIfguKPguLnguYkKK+C4q+C4ouC4seC5iOC4h+C5gOC4quC4teC4ouC4hwor4Lir4Lii4Lix4LiH4Lir4Lii4Lix4LiHCivguKvguKLguLHguJQKK+C4q+C4ouC4seC4mQor4Lir4Lii4Lix4LiaCivguKvguKLguLHguJrguYYKK+C4q+C4ouC4seC5iOC4p+C5gOC4oeC4t+C4reC4hwor4Lir4Lii4LmI4LiyCivguKvguKLguLLguIHguYDguKLguLfguYjguK0KK+C4q+C4ouC4suC4geC5hOC4ouC5iAor4Lir4Lii4LmI4Liy4LiB4Lix4LiZCivguKvguKLguLLguJQKK+C4q+C4ouC4suC4lOC4meC5ieC4s+C4hOC5ieC4suC4hwor4Lir4Lii4Liy4LiU4LiZ4LmJ4Liz4Lif4LmJ4LiyCivguKvguKLguYjguLLguJnguKEKK+C4q+C4ouC4suC4mgor4Lir4Lii4Liy4Lia4LiE4Liy4LiiCivguKvguKLguLLguJrguIrguYnguLIKK+C4q+C4ouC4suC4muC4q+C4ouC4suC4oQor4Lir4Lii4Liy4LihCivguKvguKLguLLguKHguJnguYnguLPguKvguJnguYnguLIKK+C4q+C4ouC4suC4pwor4Lir4Lii4LmJ4Liy4LinCivguKvguKLguLPguYDguJsKK+C4q+C4ouC4s+C5gOC4q+C4ouC4reC4sAor4Lir4Lii4Liz4LmB4Lir4Lii4LiwCivguKvguKLguLTguIEKK+C4q+C4ouC4tOC4geC5geC4geC4oeC4q+C4ouC4reC4gQor4Lir4Lii4Li04LiB4Lir4Lii4LmH4Lit4LiHCivguKvguKLguLTguYjguIcKK+C4q+C4ouC4tOC4mgor4Lir4Lii4Li04Lia4Lic4Li04LiUCivguKvguKLguLTguJrguKLguIEKK+C4q+C4ouC4tOC4muC4ouC4t+C4oQor4Lir4Lii4Li04Lia4Lir4Lii4LmI4LiHCivguKvguKLguLTguKHguYYKK+C4q+C4ouC4tQor4Lir4Lii4Li14LmICivguKvguKLguLgKK+C4q+C4ouC4uOC4geC4q+C4ouC4tOC4gQor4Lir4Lii4Li44LiUCivguKvguKLguLjguJTguKvguKLguYjguK3guJkKK+C4q+C4ouC4uOC5iOC4mQor4Lir4Lii4Li44Lia4LmGCivguKvguKLguLjguKHguKvguKLguLTguKEKK+C4q+C4ouC4ueC4geC4ouC4sgor4Lir4LmC4Lii4LiU4LihCivguKvguKMKK+C4q+C4o+C4hOC4uOC4kwor4Lir4Lij4LiTCivguKvguKPguJTguLLguKUKK+C4q+C4o+C4lOC4suC4peC4geC4peC4teC4muC4l+C4reC4hwor4Lir4Lij4LiU4Liy4Lil4LmB4LiU4LiHCivguKvguKPguJTguLUKK+C4q+C4o+C4muC5hgor4Lir4Lij4Lij4LipLQor4Lir4Lij4Lij4Lip4LiyCivguKvguKPguK0KK+C4q+C4o+C4reC4gQor4Lir4Lij4LmH4Lit4Lih4LmB4Lir4Lij4LmH4LihCivguKvguKPguK3guKLguYYKK+C4q+C4o+C4sAor4Lir4Lij4Lix4Lia4LmGCivguKvguKPguLHguKrguKctCivguKvguKPguLHguKrguKfguKHguLnguKPguJTguLUKK+C4q+C4o+C4seC4quC4p+C4suC4h+C4hOC5jAor4Lir4Lij4LiyCivguKvguKPguLQKK+C4q+C4o+C4tOC4hOC4seC4meC4mOC5jAor4Lir4Lij4Li04LmI4LiHCivguKvguKPguLTguYjguIfguYYKK+C4q+C4o+C4tOC4iOC4seC4meC4l+C4meC5jAor4Lir4Lij4Li04LiT4LiwCivguKvguKPguLTguJUKK+C4q+C4o+C4tOC4leC4geC4tQor4Lir4Lij4Li04Lij4Lix4LiB4Lip4LmMCivguKvguKPguLTguKfguIfguKjguYwKK+C4q+C4o+C4teC5iAor4Lir4Lij4Li14LiUCivguKvguKPguLXguJXguIHguLUKK+C4q+C4o+C4t+C4rQor4Lir4Lij4Li44Lia4LmGCivguKvguKPguLjguJrguKPguLnguYgKK+C4q+C4o+C4uOC4muC4q+C4o+C4ueC5iAor4Lir4Lij4Li44LmI4LihCivguKvguKPguLkKK+C4q+C4o+C4ueC4q+C4o+C4sgor4Lir4Lik4LiX4LiiCivguKvguKTguJfguKLguYwKK+C4q+C4pOC4l+C4seC4ogor4Lir4Lik4LiX4Lix4LiiLQor4Lir4Lik4LiX4Lix4Lii4LiB4Lil4LihCivguKvguKTguJfguLHguKLguIHguLHguJvguJnguYwKK+C4q+C4pOC4l+C4seC4ouC4geC4seC4oeC4m+C5jAor4Lir4Lik4LiX4Lix4Lii4Lib4Lij4Li14Lii4LmMCivguKvguKTguJfguLHguKLguJ7guLHguJnguJjguJnguYwKK+C4q+C4pOC4qeC4juC5jAor4Lir4Lik4Lip4LiO4Li1CivguKvguKTguKvguKPguKPguKnguYwKK+C4q+C4pOC5guC4q+C4lAor4Lir4LilCivguKvguKXguIcKK+C4q+C4peC4h+C4geC4pQor4Lir4Lil4LiH4LiV4LiyCivguKvguKXguIfguKXguKEKK+C4q+C4peC4h+C4peC4t+C4oQor4Lir4Lil4LiH4Lir4Li54Lir4Lil4LiH4LiV4LiyCivguKvguKXguIfguYDguKvguKXguLfguK0KK+C4q+C4peC4h+C5g+C4q+C4pQor4Lir4Lil4LiUCivguKvguKXguJkKK+C4q+C4peC5iOC4mQor4Lir4Lil4LiaCivguKvguKXguJrguJXguLIKK+C4q+C4peC4muC4neC4suC4gQor4Lir4Lil4Lia4Lih4Li44LihCivguKvguKXguJrguKvguJnguYnguLIKK+C4q+C4peC4muC4q+C4meC5ieC4suC4q+C4peC4muC4leC4sgor4Lir4Lil4Lia4Lir4Lil4Lix4LiH4LiE4LiyCivguKvguKXguYjguKEKK+C4q+C4peC4p+C4hwor4Lir4Lil4Lin4LiH4LiI4Li14LiZCivguKvguKXguKfguKEKK+C4q+C4peC4p+C4oeC4leC4seC4pwor4Lir4Lil4LitCivguKvguKXguYjguK0KK+C4q+C4peC4reC4gQor4Lir4Lil4Lit4LiB4LmGCivguKvguKXguK3guIHguKXguKfguIcKK+C4q+C4peC4reC4geC4peC5iOC4rQor4Lir4Lil4Lit4LiB4Lir4Lil4Lit4LiZCivguKvguKXguK3guJQKK+C4q+C4peC4reC4lOC4peC4oQor4Lir4Lil4Lit4LiU4Lil4Lih4LiE4LitCivguKvguKXguK3guJTguKXguKHguJ3guK3guKIKK+C4q+C4peC4reC4lOC5gOC4peC4t+C4reC4lAor4Lir4Lil4Lit4LiU4Lit4Liy4Lir4Liy4LijCivguKvguKXguK3guJkKK+C4q+C4peC5h+C4reC4mQor4Lir4Lil4LmH4Lit4LiZ4LmGCivguKvguKXguYjguK3guJkKK+C4q+C4peC4reC4oQor4Lir4Lil4Lit4Lih4LiV4Lix4LinCivguKvguKXguK3guKHguKXguLDguKXguLLguKIKK+C4q+C4peC4reC4oeC5gOC4q+C4peC4pwor4Lir4Lil4LmI4Lit4Lil4Li34LmI4LiZCivguKvguKXguYjguK3guYDguKXguLXguYnguKLguIcKK+C4q+C4peC5iOC4reC5gOC4q+C4peC4sgor4Lir4Lil4LiwCivguKvguKXguLDguKvguKXguKfguKEKK+C4q+C4peC4seC4gQor4Lir4Lil4Lix4LiB4LiB4Liy4LijCivguKvguKXguLHguIHguYDguIHguJPguJHguYwKK+C4q+C4peC4seC4geC5geC4iOC4pwor4Lir4Lil4Lix4LiB4LiK4Lix4LiiCivguKvguKXguLHguIHguJDguLLguJkKK+C4q+C4peC4seC4geC4leC4rQor4Lir4Lil4Lix4LiB4LiX4Lij4Lix4Lie4Lii4LmMCivguKvguKXguLHguIHguJvguKPguLDguIHguLHguJkKK+C4q+C4peC4seC4geC4nuC4ouC4suC4mQor4Lir4Lil4Lix4LiB4Lil4Lit4LiiCivguKvguKXguLHguIHguKrguLnguJXguKMKK+C4q+C4peC4seC4geC5geC4q+C4peC5iOC4hwor4Lir4Lil4Lix4LiB4LmB4Lir4Lil4LihCivguKvguKXguLHguIcKK+C4q+C4peC4seC5iOC4hwor4Lir4Lil4Lix4LiH4LmA4LiC4Li14Lii4LinCivguKvguKXguLHguIfguITguLIKK+C4q+C4peC4seC4h+C4hOC4suC5gOC4o+C4t+C4reC4mQor4Lir4Lil4Lix4LiH4LiI4Liy4LiBCivguKvguKXguLHguIfguInguLLguIEKK+C4q+C4peC4seC4h+C5gOC4leC5iOC4sgor4Lir4Lil4Lix4LiH4Lii4Liy4LinCivguKvguKXguLHguYjguIfguYTguKvguKUKK+C4q+C4peC4seC4lOC5hgor4Lir4Lil4Lix4LmI4LiZCivguKvguKXguLHguJoKK+C4q+C4peC4seC4muC4leC4sgor4Lir4Lil4Lix4Lia4LiZ4LiBCivguKvguKXguLHguJrguYPguJkKK+C4q+C4peC4seC4pwor4Lir4Lil4LiyCivguKvguKXguYnguLIKK+C4q+C4peC4suC4gQor4Lir4Lil4Liy4LiB4LmD4LiICivguKvguKXguLLguIHguKvguKXguLLguKIKK+C4q+C4peC4suC4lwor4Lir4Lil4Liy4LiZCivguKvguKXguLLguJoKK+C4q+C4peC4suC4muC4iOC4swor4Lir4Lil4Liy4LihCivguKvguKXguLLguKIKK+C4q+C4peC4suC4ouC5gOC4leC4tOC4mgor4Lir4Lil4Liy4Lii4Lir4Lil4Liy4LiBCivguKvguKXguLLguKLguYHguKvguKXguYgKK+C4q+C4peC4suC4pwor4Lir4Lil4Liy4Lin4LmA4Lir4Lil4LmH4LiBCivguKvguKXguLLguKvguKUKK+C4q+C4peC4tOC4gQor4Lir4Lil4Li04LmI4LiHCivguKvguKXguLTguJcKK+C4q+C4peC4tOC4mQor4Lir4Lil4Li04LihCivguKvguKXguLTguKcKK+C4q+C4peC4tOC5iOC4pwor4Lir4Lil4Li04LmI4Lin4LiV4LiyCivguKvguKXguLUKK+C4q+C4peC4teC4gQor4Lir4Lil4Li14LmC4LiBCivguKvguKXguLXguJoKK+C4q+C4peC4teC4ruC4t+C5ieC4rQor4Lir4Lil4Li34LiaCivguKvguKXguLjguIHguKvguKXguLTguIEKK+C4q+C4peC4uOC4lAor4Lir4Lil4Li44LiU4Lib4Liy4LiBCivguKvguKXguLjguJTguJ7guYnguJkKK+C4q+C4peC4uOC4lOC4oeC4t+C4rQor4Lir4Lil4Li44LiU4Lil4Lit4LiiCivguKvguKXguLjguJTguKXguLjguYjguKIKK+C4q+C4peC4uOC4meC5hgor4Lir4Lil4Li44LiaCivguKvguKXguLjguJrguKXguLnguYgKK+C4q+C4peC4uOC4oQor4Lir4Lil4Li44Lih4LmC4LiI4LiZCivguKvguKXguLjguKHguJ7guKPguLLguIcKK+C4q+C4peC4uOC4oeC4nuC4rQor4Lir4Lil4Li44Lih4Lie4Li1CivguKvguKXguLjguKHguKvguKXguJrguKDguLHguKIKK+C4q+C4peC4uOC4oeC4reC4suC4geC4suC4qAor4Lir4Lil4Li54LmICivguKvguKXguLnguYjguKvguKXguLXguYgKK+C4q+C4p+C4hwor4Lir4LmI4Lin4LiHCivguKvguYnguKfguIcKK+C4q+C4p+C4h+C4geC5ieC4suC4hwor4Lir4LmI4Lin4LiH4LmD4LiiCivguKvguKfguIfguKvguYnguLLguKEKK+C4q+C4p+C4h+C5geC4q+C4mQor4Lir4Lin4LiUCivguKvguKfguJkKK+C4q+C5ieC4p+C4mQor4Lir4LmJ4Lin4LiZ4LmGCivguKvguKfguJnguITguLPguJnguLbguIcKK+C4q+C4p+C4ogor4Lir4LmJ4Lin4LiiCivguKvguKfguK0KK+C4q+C4p+C4reC4lAor4Lir4Lin4LmH4Lit4Lii4LmGCivguKvguKfguLAKK+C4q+C4p+C4seC4hwor4Lir4Lin4Lix4LiUCivguKvguKfguLHguJTguYYKK+C4q+C4p+C4seC5iOC4mQor4Lir4Lin4Lix4LiZ4Lii4Li04Lir4Lin4LiyCivguKvguKfguLHguYjguJnguKvguKfguLLguJQKK+C4q+C4p+C4seC5iOC4meC5hOC4q+C4pwor4Lir4Lin4Lix4LinCivguKvguKfguLHguKfguKPguYjguK0KK+C4q+C4p+C4seC4p+C5gOC4o+C4suC4sAor4Lir4Lin4LiyCivguKvguKfguYjguLIKK+C4q+C4p+C5ieC4sgor4Lir4Lin4Liy4LiBCivguKvguKfguYjguLLguIcKK+C4q+C4p+C4suC4lAor4Lir4Lin4Liy4LiU4Lij4Liw4LmB4Lin4LiHCivguKvguKfguLLguJTguYDguKrguLXguKLguKcKK+C4q+C4p+C4suC4lOC4q+C4p+C4seC5iOC4mQor4Lir4Lin4Liy4LiU4LmE4Lir4LinCivguKvguKfguLLguJkKK+C4q+C4p+C5iOC4suC4mQor4Lir4Lin4Liy4LiZ4LiE4Lit4LmB4Lij4LmJ4LiHCivguKvguKfguYjguLLguJnguKXguYnguK3guKEKK+C4q+C4p+C4suC4oQor4Lir4Lin4Liy4LiiCivguKvguKfguLLguKLguJTguLTguJkKK+C4q+C4p+C4suC4ouC4leC4sOC4oeC4reC4ogor4Lir4Lin4LizCivguKvguKfguLTguJQKK+C4q+C4p+C4tOC4pwor4Lir4Lin4Li1CivguKvguKfguLXguYgKK+C4q+C4p+C4teC4lAor4Lir4Lin4Li34LitCivguKvguKfguLjguJTguKvguKfguLTguJQKK+C4q+C4p+C4uOC4oQor4Lir4Lin4Li54LiUCivguKvguKrguJktCivguKvguK0KK+C4q+C5iOC4rQor4Lir4LmJ4LitCivguKvguK3guIEKK+C4q+C4reC4geC4guC5ieC4suC4h+C5geC4hOC4o+C5iAor4Lir4Lit4LiB4LiL4Lix4LiUCivguKvguK3guIHguLLguKPguITguYnguLIKK+C4q+C4reC4hOC4reC4ogor4Lir4Lit4LiE4LizCivguKvguK3guIcKK+C4q+C5ieC4reC4hwor4Lir4LmJ4Lit4LiH4LmA4LiE4Lij4Li34LmI4Lit4LiHCivguKvguYnguK3guIfguIrguLjguJQKK+C4q+C5ieC4reC4h+C5geC4luC4pwor4Lir4LmJ4Lit4LiH4LiZ4LmJ4LizCivguKvguYnguK3guIfguKrguKHguLjguJQKK+C4q+C4reC4iOC4lOC4q+C4oeC4suC4ouC5gOC4q+C4leC4uAor4Lir4LmI4Lit4LiV4Lix4LinCivguKvguK3guYTguJXguKMKK+C4q+C4reC4mQor4Lir4LmI4Lit4LiZCivguKvguK3guJoKK+C4q+C4reC4muC4q+C4tOC5ieC4pwor4Lir4Lit4Lia4Lir4Li34LiUCivguKvguK3guJrguLHguIfguITguLHguJrguIHguLLguKMKK+C4q+C4reC4m+C4o+C4sOC4iuC4uOC4oQor4Lir4Lit4Lie4Lix4LiBCivguKvguK3guKEKK+C4q+C5ieC4reC4oQor4Lir4Lit4Lih4LiB4Lij4Liy4LiiCivguKvguK3guKHguILguLLguKcKK+C4q+C4reC4oeC4iOC4seC4meC4l+C4o+C5jAor4Lir4Lit4Lih4LmB4LiU4LiHCivguKvguK3guKHguYDguJXguLXguKLguKEKK+C4q+C4reC4oeC4m+C5ieC4reC4oQor4Lir4Lit4Lih4LmB4Lib4LmJ4LiZCivguKvguYnguK3guKHguYDguKHguLfguK3guIcKK+C4q+C4reC4oeC4ouC4seC4mgor4Lir4LmJ4Lit4Lih4Lil4LmJ4Lit4LihCivguKvguK3guKHguKvguKfguJkKK+C4q+C4reC4ogor4Lir4LmJ4Lit4LiiCivguKvguK3guKLguYLguILguYjguIcKK+C4q+C5ieC4reC4ouC4l+C5ieC4suC4ogor4Lir4Lit4Lii4Lib4Liy4LiB4LmA4Lib4LmH4LiUCivguKvguK3guKLguYHguJvguJTguYDguIHguKXguYfguJQKK+C4q+C4reC4ouC5gOC4oeC5iOC4mQor4Lir4LmJ4Lit4Lii4LmC4Lir4LiZCivguKvguK3guKrguKHguLjguJQKK+C4q+C5iOC4reC4q+C4oeC4gQor4Lir4LmI4Lit4LmA4Lir4Li14LmI4Lii4LinCivguKvguYjguK3guYHguKvguYgKK+C4q+C5ieC4reC5geC4q+C5iQor4Lir4LiwCivguKvguLDguKLguLUKK+C4q+C4sOC5geC4o+C4gQor4Lir4Liw4Lir4Liy4LiiCivguKvguLDguKvguYnguLLguKIKK+C4q+C4sOC5geC4q+C5ieC4mQor4Lir4Lix4LiBCivguKvguLHguIHguIHguKXguJrguKXguJrguKvguJnguLXguYkKK+C4q+C4seC4geC4hOC4rQor4Lir4Lix4LiB4LmD4LiICivguKvguLHguIHguJTguYnguLLguKHguJ7guKPguYnguLLguJTguYnguKfguKLguYDguILguYjguLIKK+C4q+C4seC4geC4l+C4reC4h+C4guC4p+C4suC4hwor4Lir4Lix4LiB4Lia4Lix4LiN4LiK4Li1CivguKvguLHguIHguKHguLjguIEKK+C4q+C4seC4geC4o+C4suC4hOC4sgor4Lir4Lix4LiB4Lij4LmJ4Liy4LiHCivguKvguLHguIHguYHguKPguIcKK+C4q+C4seC4geC4peC5ieC4suC4hwor4Lir4Lix4LiB4Lil4LizCivguKvguLHguIHguKvguJnguYnguLIKK+C4q+C4seC4geC4q+C4peC4seC4hwor4Lir4Lix4LiB4Lir4Liy4LiNCivguKvguLHguIHguKvguYnguLLguKEKK+C4q+C4seC4geC5gOC4qwor4Lir4Lix4LiB4LmC4Lir4LihCivguKvguLHguIHguK3guIEKK+C4q+C4seC4geC4reC4geC4q+C4seC4geC5g+C4iAor4Lir4Lix4LiH4LiqLQor4Lir4Lix4LiI4LiN4LmMCivguKvguLHguIjguI3guLUKK+C4q+C4seC4igor4Lir4Lix4LiP4LiQ4LiwCivguKvguLHguJQKK+C4q+C4seC4lOC5gOC4ouC4reC4o+C4oeC4seC4mQor4Lir4Lix4LiVCivguKvguLHguJXguJYtCivguKvguLHguJXguJbguYwKK+C4q+C4seC4leC4luC4geC4o+C4o+C4oQor4Lir4Lix4LiV4LiW4LiB4Liy4LijCivguKvguLHguJXguJbguIHguLTguIgKK+C4q+C4seC4leC4luC4muC4suC4qgor4Lir4Lix4LiV4LiW4Lie4Lix4LiZ4LiY4LmMCivguKvguLHguJXguJbguKjguLTguKXguJvguYwKK+C4q+C4seC4leC4luC4qOC4tuC4geC4qeC4sgor4Lir4Lix4LiV4LiW4Liy4LiI4Liy4Lij4Lii4LmMCivguKvguLHguJXguJbguLLguJnguLbguIEKK+C4q+C4seC4leC4luC4suC4oOC4o+C4k+C5jAor4Lir4Lix4LiV4LiW4Liy4LmC4Lij4Lir4LiwCivguKvguLHguJXguJbguLLguKXguLHguIfguIHguLLguKMKK+C4q+C4seC4leC4luC4tOC4meC4tQor4Lir4Lix4LiV4LiW4Li1CivguKvguLHguJkKK+C4q+C4seC5iOC4mQor4Lir4Lix4LmJ4LiZCivguKvguLHguJnguJXguKPguLIKK+C4q+C4seC4meC4leC4sgor4Lir4Lix4LiZ4Lij4Li14Lir4Lix4LiZ4LiC4Lin4Liy4LiHCivguKvguLHguJnguKvguJnguYnguLLguYDguILguYnguLLguKvguLLguIHguLHguJkKK+C4q+C4seC4meC4q+C4peC4seC4h+C5g+C4q+C5ieC4geC4seC4mQor4Lir4Lix4LiZ4LmA4LirCivguKvguLHguYjguJnguYHguKvguKXguIEKK+C4q+C4seC4meC4reC4suC4geC4suC4qAor4Lir4Lix4LiaCivguKvguLHguJrguYDguJzguKIKK+C4q+C4seC4oeC4oeC4teC4ouC4sAor4Lir4Lix4LiiCivguKvguLHguKcKK+C4q+C4seC4p+C4geC4o+C4sOC5gOC4lOC5h+C4mQor4Lir4Lix4Lin4LiB4Lij4Liw4LmE4LiU4LmE4Lih4LmI4LmB4Lir4LmJ4LiHCivguKvguLHguKfguIHguKPguLDguKrguLjguJkKK+C4q+C4seC4p+C4geC5iuC4reC4gQor4Lir4Lix4Lin4LiB4Liw4LiX4Li0CivguKvguLHguKfguIHguYjguLLguKLguJfguYnguLLguKLguYDguIHguKIKK+C4q+C4seC4p+C4geC4uOC4jeC5geC4iAor4Lir4Lix4Lin4LmA4LiB4LmI4LiyCivguKvguLHguKfguYHguIHguYnguKfguKvguLHguKfguYHguKvguKfguJkKK+C4q+C4seC4p+C4guC5guC4oeC4ogor4Lir4Lix4Lin4LiC4Lin4Liy4LiZCivguKvguLHguKfguILguYnguK0KK+C4q+C4seC4p+C4guC4seC5ieC4pwor4Lir4Lix4Lin4LiC4Liy4LiUCivguKvguLHguKfguILguLXguYnguYHguJXguYkKK+C4q+C4seC4p+C4guC4teC5ieC4q+C4oeC4sgor4Lir4Lix4Lin4LmA4LiC4LmJ4LiyCivguKvguLHguKfguYHguILguYfguIcKK+C4q+C4seC4p+C5guC4guC4mQor4Lir4Lix4Lin4LiE4Lin4LmI4LizCivguKvguLHguKfguITguLDguYHguJnguJkKK+C4q+C4seC4p+C4hOC5iOC4swor4Lir4Lix4Lin4LiE4Li04LiUCivguKvguLHguKfguYPguITguKPguYgKK+C4q+C4seC4p+C4h+C4reC4mQor4Lir4Lix4Lin4LiH4Liy4LiZCivguKvguLHguKfguYDguIfguLTguJkKK+C4q+C4seC4p+C5gOC4h+C4t+C5iOC4reC4mQor4Lir4Lix4Lin4LmC4LiI4LiBCivguKvguLHguKfguYPguIgKK+C4q+C4seC4p+C4iuC4meC4geC4s+C5geC4nuC4hwor4Lir4Lix4Lin4LiK4LiZ4Lid4LiyCivguKvguLHguKfguIvguLjguIHguKvguLHguKfguIvguLjguJkKK+C4q+C4seC4p+C4i+C4uOC4mQor4Lir4Lix4Lin4LiU4LmJ4Lin4LiZCivguKvguLHguKfguJTguLLguKfguKvguLHguKfguYDguJTguLfguK3guJkKK+C4q+C4seC4p+C4lOC4t+C5ieC4rQor4Lir4Lix4Lin4LmA4LiU4LmH4LiU4LiV4Li14LiZ4LiC4Liy4LiUCivguKvguLHguKfguYDguJTguLXguKLguKfguIHguKPguLDguYDguJfguLXguKLguKHguKXguLXguJoKK+C4q+C4seC4p+C4leC5iOC4rQor4Lir4Lix4Lin4LiV4Liw4LiB4Lix4LmI4LinCivguKvguLHguKfguJXguLDguITguLLguIEKK+C4q+C4seC4p+C4leC4sOC5guC4q+C4h+C4gQor4Lir4Lix4Lin4LmA4LiV4LmI4LiyCivguKvguLHguKfguYDguJXguLLguYTguJ8KK+C4q+C4seC4p+C4luC4reC4gQor4Lir4Lix4Lin4LmA4LiW4Li04LiBCivguKvguLHguKfguJfguLUKK+C4q+C4seC4p+C5gOC4l+C4teC4ouC4mQor4Lir4Lix4Lin4LmA4LiX4Li14Lii4LihCivguKvguLHguKfguJnguIHguIHguKPguLDguIjguK3guIEKK+C4q+C4seC4p+C4meC4oQor4Lir4Lix4Lin4LiZ4Lit4LiBCivguKvguLHguKfguJnguK3guJkKK+C4q+C4seC4p+C4meC4reC4meC4m+C4peC4suC4ouC4leC4teC4mQor4Lir4Lix4Lin4LiZ4LmJ4LizCivguKvguLHguKfguJnguYnguLPguILguLbguYnguJkKK+C4q+C4seC4p+C4meC5ieC4s+C4peC4hwor4Lir4Lix4Lin4LmA4LiZ4Li34LmJ4LitCivguKvguLHguKfguYDguJnguLfguYnguK3guJfguKPguLLguKIKK+C4q+C4seC4p+C4muC4seC4pwor4Lir4Lix4Lin4LmA4Lia4Li14LmJ4LiiCivguKvguLHguKfguYLguJrguKPguLLguJMKK+C4q+C4seC4p+C4m+C4peC4p+C4gQor4Lir4Lix4Lin4Lib4Lil4Li1CivguKvguLHguKfguJvguLHguIHguKvguLHguKfguJvguLMKK+C4q+C4seC4p+C4m+C4seC5iOC4mQor4Lir4Lix4Lin4Lib4LmI4LiyCivguKvguLHguKfguJvguLLguIEKK+C4q+C4seC4p+C4m+C4tQor4Lir4Lix4Lin4Lie4Lix4LiZCivguKvguLHguKfguJ7guLjguIfguKvguLHguKfguKHguLHguJkKK+C4q+C4seC4p+C4n+C4t+C4meC4q+C4seC4p+C5hOC4nwor4Lir4Lix4Lin4Lih4Lix4LiH4LiB4Li44LiX4LmJ4Liy4Lii4Lih4Lix4LiH4LiB4LijCivguKvguLHguKfguKHguLHguJkKK+C4q+C4seC4p+C5gOC4oeC5h+C4lAor4Lir4Lix4Lin4LmA4Lih4Li34Lit4LiHCivguKvguLHguKfguYHguKHguYjguJXguLXguJkKK+C4q+C4seC4p+C5geC4oeC5iOC5gOC4l+C5ieC4sgor4Lir4Lix4Lin4LmB4Lih4LmI4Lih4Li34LitCivguKvguLHguKfguYHguKHguKXguIfguKfguLHguJkKK+C4q+C4seC4p+C5hOC4oeC5iQor4Lir4Lix4Lin4LmE4Lih4LmI4Lin4Liy4LiH4Lir4Liy4LiH4LmE4Lih4LmI4LmA4Lin4LmJ4LiZCivguKvguLHguKfguKPguK0KK+C4q+C4seC4p+C4o+C5iOC4rQor4Lir4Lix4Lin4Lij4LmJ4Lit4Lii4Lij4Li5CivguKvguLHguKfguKPguLDguYHguKvguIcKK+C4q+C4seC4p+C4o+C4seC4geC4q+C4seC4p+C5g+C4hOC4o+C5iAor4Lir4Lix4Lin4Lij4Lix4LmJ4LiZCivguKvguLHguKfguKPguLLguJnguYnguLMKK+C4q+C4seC4p+C4o+C4uOC4meC5geC4o+C4hwor4Lir4Lix4Lin4LmA4Lij4Liy4LiwCivguKvguLHguKfguYDguKPguLXguYjguKLguKfguKvguLHguKfguYHguKPguIcKK+C4q+C4seC4p+C5gOC4o+C4t+C5iOC4reC4hwor4Lir4Lix4Lin4LmA4Lij4Li34Lit4LmD4Lir4LiN4LmICivguKvguLHguKfguYHguKPguIcKK+C4q+C4seC4p+C5geC4o+C5ieC4hwor4Lir4Lix4Lin4Lil4LihCivguKvguLHguKfguKXguYnguLLguJkKK+C4q+C4seC4p+C4peC4tOC4hwor4Lir4Lix4Lin4LmA4Lil4Li14LmJ4Lii4LinCivguKvguLHguKfguYDguKXguLXguYnguKLguKfguKvguLHguKfguJXguYjguK0KK+C4q+C4seC4p+C5guC4peC5ieC4mQor4Lir4Lix4Lin4Lin4LmI4Liy4LinCivguKvguLHguKfguKrguLPguYDguKDguLIKK+C4q+C4seC4p+C4quC4ueC4hwor4Lir4Lix4Lin4LmA4Liq4Li14LiiCivguKvguLHguKfguYTguKrguYkKK+C4q+C4seC4p+C4q+C4geC4geC5ieC4meC4guC4p+C4tOC4lAor4Lir4Lix4Lin4Lir4LiH4Lit4LiBCivguKvguLHguKfguKvguJQKK+C4q+C4seC4p+C4q+C4meC5ieC4sgor4Lir4Lix4Lin4Lir4LiZ4LmI4Liy4LinCivguKvguLHguKfguKvguKHguK0KK+C4q+C4seC4p+C4q+C4oeC4t+C5iOC4mQor4Lir4Lix4Lin4Lir4Lih4Li44LiZCivguKvguLHguKfguKvguKHguLkKK+C4q+C4seC4p+C4q+C4peC4seC4geC4q+C4seC4p+C4leC4rQor4Lir4Lix4Lin4Lir4Liy4LiUCivguKvguLHguKfguKvguLLguKLguJXguLDguJ7guLLguKLguILguLLguJQKK+C4q+C4seC4p+C5gOC4q+C5h+C4lAor4Lir4Lix4Lin4LmB4Lir4Lil4LihCivguKvguLHguKfguYHguKvguKfguJkKK+C4q+C4seC4p+C5g+C4q+C4oeC5iAor4Lir4Lix4Lin4LmE4Lir4Lil4LmICivguKvguLHguKfguK3guIEKK+C4q+C4seC4p+C4reC4reC4gQor4Lir4Lix4Lin4Lit4LmI4Lit4LiZCivguKvguLHguKoKK+C4q+C4seC4quC4lOC4tOC4mQor4Lir4Lix4Liq4LiU4Li1CivguKvguLHguKrguJUKK+C4q+C4seC4quC4leC5jAor4Lir4Lix4Liq4LiV4LiwCivguKvguLIKK+C4q+C5iOC4sgor4Lir4LmJ4LiyCivguKvguLLguIEKK+C4q+C4suC4geC4p+C5iOC4sgor4Lir4Liy4LiB4Li04LiZCivguKvguYjguLLguIHguLTguJkKK+C4q+C4suC4hOC4p+C4suC4oQor4Lir4Liy4LiE4LmI4Liy4Lih4Li04LmE4LiU4LmJCivguKvguLLguIcKK+C4q+C5iOC4suC4hwor4Lir4LmJ4Liy4LiHCivguKvguLLguIfguIHguKPguLDguYDguJrguJkKK+C4q+C4suC4h+C4geC4o+C4sOC4o+C4reC4gQor4Lir4Liy4LiH4LiB4Lij4Liw4Lir4Lih4Lin4LiUCivguKvguLLguIfguIHguKPguLLguKIKK+C4q+C4suC4h+C4geC4sOC4peC4p+C4ogor4Lir4Liy4LiH4LiB4Liw4Lil4Lin4Lii4LmE4LiB4LmICivguKvguLLguIfguIHguLHguIfguKvguLHguJkKK+C4q+C4suC4h+C4geC4tOC5iOC4pwor4Lir4Liy4LiH4LmB4LiB4Lil4LiwCivguKvguLLguIfguYTguIHguYgKK+C4q+C4suC4h+C4guC4oeC4p+C4lAor4Lir4Liy4LiH4LiC4Lit4LiUCivguKvguLLguIfguILguYnguLLguKcKK+C4q+C4suC4h+C5geC4guC5h+C4hwor4Lir4Liy4LiH4LiE4LmJ4LitCivguKvguLLguIfguYDguITguKPguLfguYjguK3guIcKK+C4q+C4suC4h+C4iOC4o+C4sOC5gOC4guC5iQor4Lir4Liy4LiH4LiI4Li04LmJ4LiH4LmA4Lir4Lil4LiZCivguKvguLLguIfguIrguYnguLLguIcKK+C4q+C4suC4h+C5gOC4leC5iOC4sgor4Lir4Liy4LiH4LmB4LiW4LinCivguKvguLLguIfguJnguIHguIHguLDguKXguLTguIcKK+C4q+C4suC4h+C4meC4geC4ouC4ueC4hwor4Lir4Liy4LiH4LiZ4LiB4Lii4Li54LiH4Lid4Lij4Lix4LmI4LiHCivguKvguLLguIfguJnguLLguIQKK+C4q+C4suC4h+C4m+C4peC4sgor4Lir4Liy4LiH4LmA4Lib4Li14LiiCivguKvguLLguIfguYHguJ7guJkKK+C4q+C4suC4h+C5geC4oeC4h+C4m+C5iOC4reC4hwor4Lir4Liy4LiH4Lii4Liy4LihCivguKvguLLguIfguKLguLLguKcKK+C4q+C4suC4h+C5gOC4peC4ggor4Lir4Liy4LiH4Lin4LmI4Liy4LinCivguKvguLLguIfguKrguLTguIfguKvguYwKK+C4q+C4suC4h+C5gOC4quC4teC4ouC4hwor4Lir4Liy4LiH4LmA4Liq4Li34LitCivguKvguLLguIfguKvguIfguKrguYwKK+C4q+C4suC4h+C4q+C4meC4uQor4Lir4LmJ4Liy4LiH4Lir4Li44LmJ4LiZ4Liq4LmI4Lin4LiZCivguKvguYnguLLguIfguKvguLjguYnguJnguKrguYjguKfguJnguIjguLPguIHguLHguJQKK+C4q+C5ieC4suC4h+C4q+C4uOC5ieC4meC4quC5iOC4p+C4meC4quC4suC4oeC4seC4jQor4Lir4LmI4Liy4LiH4LmA4LirCivguKvguYjguLLguIfguYDguKvguLTguJkKK+C4q+C4suC4h+C5hOC4q+C4pQor4Lir4Liy4LiH4LmE4Lir4Lil4LmB4LiU4LiHCivguKvguLLguIfguYTguKvguKXguYDguJzguLfguK3guIEKK+C4q+C4suC5gOC4h+C4tOC4mQor4Lir4Liy4LmA4LiK4LmJ4Liy4LiB4Li04LiZ4LiE4LmI4LizCivguKvguLLguI0KK+C4q+C4suC4lAor4Lir4Liy4LiU4LiBCivguKvguLLguJXguIEKK+C4q+C4suC4leC4seC4p+C4iOC4seC4muC4ouC4suC4gQor4Lir4LmJ4Liy4LmB4LiV4LmJ4LihCivguKvguLLguJkKK+C4q+C5iOC4suC4mQor4Lir4Liy4LiaCivguKvguLLguJrguKHguLTguYTguJTguYkKK+C4q+C4suC4muC5gOC4o+C5iAor4Lir4Liy4Lia4Lir4Lil4Lin4LiHCivguKvguLLguKEKK+C4q+C5iOC4suC4oQor4Lir4LmJ4Liy4LihCivguKvguYnguLLguKHguI3guLLguJXguLQKK+C4q+C5ieC4suC4oeC4l+C4seC4ngor4Lir4LmJ4Liy4Lih4Lib4Lij4Liy4LihCivguKvguYnguLLguKHguYDguJvguKXguLXguYjguKLguJnguKHguLfguK0KK+C4q+C5ieC4suC4oeC4nuC4o+C4sOC5geC4geC5iOC4meC4iOC4seC4meC4l+C4meC5jAor4Lir4Liy4Lih4Lij4Lit4LiBCivguKvguLLguKHguKPguLjguYjguIfguKvguLLguKHguITguYjguLMKK+C4q+C5ieC4suC4oeC4peC5ieC4rQor4Lir4LmJ4Liy4Lih4LmA4Lil4Li34Lit4LiUCivguKvguLLguKHguYHguKXguYjguJkKK+C4q+C5ieC4suC4oeC4quC4oeC4uOC4l+C4owor4Lir4Liy4Lih4Li04LmE4LiU4LmJCivguKvguLLguYTguKHguYgKK+C4q+C4suC5hOC4oeC5iOC4geC5hwor4Lir4Liy4LiiCivguKvguLLguKLguIHguLHguJkKK+C4q+C4suC4ouC4guC4suC4lAor4Lir4Liy4Lii4LmA4LiC4LmJ4Liy4LiB4Lil4Li14Lia4LmA4Lih4LiGCivguKvguLLguKLguYPguIgKK+C4q+C4suC4ouC5g+C4iOC5hOC4oeC5iOC4l+C4seC5iOC4p+C4l+C5ieC4reC4hwor4Lir4Liy4Lii4LiV4Lix4LinCivguKvguLLguKLguJnguLAKK+C4q+C4suC4ouC4q+C4geC4leC4geC4q+C4peC5iOC4mQor4Lir4Liy4Lii4Lir4LiZ4LmJ4LiyCivguKvguLLguKLguKvguYjguKfguIcKK+C4q+C4suC4ouC4q+C4seC4pwor4Lir4Liy4LijCivguKvguLLguKPguKPguYjguKfguKHguKHguLLguIEKK+C4q+C4suC4o+C4tAor4Lir4Liy4Lij4Li04LiZCivguKvguLLguKPguLUKK+C4q+C4suC4o+C4t+C4rQor4Lir4Liy4LmA4Lij4Li34LmI4Lit4LiHCivguKvguYjguLLguKXguIcKK+C4q+C4suC4peC4tOC4lwor4Lir4Liy4LmA4Lil4Li34Lit4LiU4LiB4Lix4Lia4Lib4Li5CivguKvguLLguKcKK+C4q+C5ieC4suC4pwor4Lir4Liy4Lin4LiZ4Lit4LiZCivguKvguYnguLLguKfguKvguLLguI0KK+C4q+C4suC5gOC4qOC4qeC4q+C4suC5gOC4peC4ogor4Lir4Liy4LiqCivguKvguLLguKrguIEKK+C4q+C4suC4quC4ouC4sAor4Lir4Liy4Liq4Li54LmICivguKvguLLguYDguKrguLXguKLguIcKK+C4q+C4suC4q+C5iOC4p+C4h+C4oeC4suC4hOC4peC5ieC4reC4h+C4hOC4rQor4Lir4Liy4LmA4Lir4LiV4Li4CivguKvguLMKK+C4q+C5ieC4swor4Lir4LmJ4Liz4Lir4Lix4LiBCivguKvguYnguLPguKvguLHguYjguJkKK+C4q+C4tOC5ieC4hwor4Lir4Li04LiH4LiE4Li4CivguKvguLTguIfguKrguLIKK+C4q+C4tOC4h+C4q+C5ieC4reC4ogor4Lir4Li04LmI4LiH4Lir4LmJ4Lit4LiiCivguKvguLTguYjguIfguKvguLLguKIKK+C4q+C4tOC4lAor4Lir4Li04LiVCivguKvguLTguJUtCivguKvguLTguJXguIHguKMKK+C4q+C4tOC4leC4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Lir4Li04LiV4Lie4LiI4LiZ4LmMCivguKvguLTguJXguKfguIjguJnguLAKK+C4q+C4tOC4leC4suC4meC4uOC4q+C4tOC4leC4m+C4o+C4sOC5guC4ouC4iuC4meC5jAor4Lir4Li04LiZCivguKvguLTguJktCivguKvguLTguJnguIfguK3guIEKK+C4q+C4tOC4meC4iuC4meC4p+C4mQor4Lir4Li04LiZ4LiK4Lix4LmJ4LiZCivguKvguLTguJnguIrguLLguJXguLQKK+C4q+C4tOC4meC4lOC4tOC4meC4lOC4suC4mQor4Lir4Li04LiZ4LiU4Li04LiZ4Liq4Lit4Lie4Lit4LiHCivguKvguLTguJnguJXguLDguIHguK3guJkKK+C4q+C4tOC4meC4leC4seC4muC5gOC4m+C5h+C4lAor4Lir4Li04LiZ4LiX4Lij4Liy4LiiCivguKvguLTguJnguJnguYnguLPguKHguLHguJkKK+C4q+C4tOC4meC4m+C4ueC4mQor4Lir4Li04LiZ4LmB4Lib4LijCivguKvguLTguJnguJ3guJnguJfguK3guIcKK+C4q+C4tOC4meC4ouC5ieC4reC4ogor4Lir4Li04LiZ4Lii4Liy4LiZCivguKvguLTguJnguYHguKXguIcKK+C4q+C4tOC4meC4quC4muC4ueC5iAor4Lir4Li04LiZ4LmC4Liq4LmC4LiE4Lij4LiBCivguKvguLTguJnguKvguJnguLfguJQKK+C4q+C4tOC4meC4reC5iOC4reC4mQor4Lir4Li04LiZ4Lit4Lix4LiE4LiZ4Li1CivguKvguLTguKEtCivguKvguLTguKHguJ7guLLguJkKK+C4q+C4tOC4oeC4nuC4suC4meC4leC5jAor4Lir4Li04Lih4Lin4Lix4LiVCivguKvguLTguKHguKfguLHguJnguJXguYwKK+C4q+C4tOC4oeC4p+C4sgor4Lir4Li04Lih4Lin4Liy4LiVCivguKvguLTguKHguKfguLLguJkKK+C4q+C4tOC4oeC4p+C4suC4qgor4Lir4Li04Lih4LmA4Lin4LioCivguKvguLTguKHguLAKK+C4q+C4tOC4oeC4suC4peC4seC4ogor4Lir4Li04Lij4Lix4LiNCivguKvguLTguKPguLHguI0tCivguKvguLTguKPguLHguI3guI3guLTguIHguLLguKPguYwKK+C4q+C4tOC4o+C4seC4jeC4muC4seC4jwor4Lir4Li04Lij4Lix4LiT4LiiLQor4Lir4Li04Lij4Lix4LiT4Lii4LmMCivguKvguLTguKPguLHguJPguKLguIHguLLguKMKK+C4q+C4tOC4o+C4seC4k+C4ouC5gOC4geC4qAor4Lir4Li04Lij4Lix4LiT4Lii4Lij4Lix4Lio4Lih4Li1CivguKvguLTguKPguLQKK+C4q+C4tOC4o+C4tOC5guC4reC4leC4leC4seC4m+C4m+C4sAor4Lir4Li04LinCivguKvguLTguYnguKcKK+C4q+C4tOC5ieC4p+C4l+C5ieC4reC4hwor4Lir4Li04LmJ4Lin4Lib4Li14LiBCivguKvguLUKK+C4q+C4teC4lAor4Lir4Li14LiV4LiyCivguKvguLXguYDguJXguYjguLIKK+C4q+C4teC4mS0KK+C4q+C4teC4meC4ouC4suC4mQor4Lir4Li14LiaCivguKvguLXguJrguIrguLHguIEKK+C4q+C4teC4muC5gOC4iuC4tOC4h+C4iuC4suC4ogor4Lir4Li14Lia4Lid4LmJ4Liy4LiiCivguKvguLXguJrguJ7guKPguLDguKHguLLguKXguLHguKIKK+C4q+C4teC4muC5gOC4nuC4peC4hwor4Lir4Li14Lia4LmA4Lie4Lil4LiH4LiK4Lix4LiBCivguKvguLXguJrguYDguJ7guKXguIfguJvguLLguIEKK+C4q+C4teC4muC4quC5hOC4mgor4Lir4Li14Lia4LmA4Liq4Li14Lii4LiHCivguKvguLXguJrguKvguYjguK0KK+C4q+C4tuC5hgor4Lir4Li24LiHCivguKvguLbguYjguIcKK+C4q+C4tuC5iOC4h+C5hgor4Lir4Li24LiH4LiqLQor4Lir4Li24LiH4Liq4LiyCivguKvguLfguJQKK+C4q+C4t+C4mQor4Lir4Li34LmI4LiZCivguKvguLfguYjguJnguKvguKPguKPguKnguYwKK+C4q+C4t+C4rQor4Lir4Li34LmJ4LitCivguKvguLfguK3guYTguKHguYjguILguLbguYnguJkKK+C4q+C4t+C4reC4o+C4t+C4reC5guC4q+C4lAor4Lir4Li44LiHCivguKvguLjguIfguILguYnguLLguKfguJvguKPguLDguIrguJTguKvguKHguLIKK+C4q+C4uOC4lS0KK+C4q+C4uOC4leC5guC4geC4p+C4tOC4lwor4Lir4Li44LiV4Liy4LiI4Liy4Lij4Lii4LmMCivguKvguLjguJkKK+C4q+C4uOC5iOC4mQor4Lir4Li44LmJ4LiZCivguKvguLjguYnguJnguIHguLnguYkKK+C4q+C4uOC5iOC4meC4meC4tOC5iOC4hwor4Lir4Li44LmJ4LiZ4Lia4Li44Lij4Li04Lih4Liq4Li04LiX4LiY4Li0CivguKvguLjguYjguJnguJ7guKLguJnguJXguYwKK+C4q+C4uOC5ieC4meC4peC4oQor4Lir4Li44LmI4LiZ4LmE4Lil4LmI4LiB4LiyCivguKvguLjguYnguJnguKrguYjguKfguJkKK+C4q+C4uOC4meC4q+C4seC4mQor4Lir4Li44LiZ4Lir4Lix4LiZ4Lie4Lil4Lix4LiZ4LmB4Lil4LmI4LiZCivguKvguLjguJoKK+C4q+C4uOC4muC5gOC4guC4sgor4Lir4Li44Lia4Lib4Liy4LiBCivguKvguLjguJrguJzguLIKK+C4q+C4uOC4muC5gOC4q+C4pwor4Lir4Li44LmJ4LihCivguKvguLjguYnguKHguIHguKXguK3guIcKK+C4q+C4uOC5ieC4oeC5geC4nOC4peC4hwor4Lir4Li44LmJ4Lih4LmB4Lie4LijCivguKvguLjguYnguKLguKvguLjguKIKK+C4q+C4uOC4ouC4ruC4sgor4Lir4Li44Lij4Lix4LihCivguKvguLjguKvguJnguLTguIfguKvguIfguLHguJkKK+C4q+C4uQor4Lir4Li54LmICivguKvguLnguIEKK+C4q+C4ueC4geC4o+C4sOC4leC5iOC4suC4ogor4Lir4Li54LiB4Lin4Liy4LiHCivguKvguLnguYHguIjguKcKK+C4q+C4ueC4ieC4peC4suC4oQor4Lir4Li54LiJ4Li14LmICivguKvguLnguIrguK3guIcKK+C4q+C4ueC4iuC5ieC4suC4hwor4Lir4Li54LiUCivguKvguLnguJTguLHguJrguJXguLHguJrguYTguKvguKHguYkKK+C4q+C4ueC4leC4suC4quC4p+C5iOC4suC4hwor4Lir4Li54LiV4Li0CivguKvguLnguJXguLbguIcKK+C4q+C4ueC4leC4ueC4mgor4Lir4Li54LiX4Lin4LiZ4Lil4LihCivguKvguLnguYDguJrguLIKK+C4q+C4ueC4m+C4peC4suC4iuC5iOC4reC4mQor4Lir4Li54Lib4LmI4Liy4LiV4Liy4LmA4LiW4Li34LmI4Lit4LiZCivguKvguLnguJzguLXguIjguKHguLnguIHguKHguJQKK+C4q+C4ueC4nOC4tuC5iOC4hwor4Lir4Li54Lij4Li54LiUCivguKvguLnguYTguKcKK+C4q+C4ueC5hOC4p+C4leC4suC5hOC4pwor4Lir4Li54LmA4Liq4Li34LitCivguKvguLnguKvguJnguLLguJXguLLguYLguJUKK+C4q+C4ueC4q+C4meC4suC4leC4suC5gOC4peC5iOC4rQor4Lir4Li54Lir4LiZ4Li5CivguKvguLnguYjguKvguLXguYgKK+C4q+C4ueC5hOC4qwor4LmA4LirCivguYDguKvguYgKK+C5gOC4q+C4hwor4LmA4Lir4LiH4LmI4LiHCivguYDguKvguIfguLIKK+C5gOC4q+C4h+C5ieC4sgor4LmA4Lir4LiH4Liy4Lir4LiH4Lit4LiiCivguYDguKvguIfguLfguYjguK0KK+C5gOC4q+C4h+C4t+C4reC4gQor4LmA4Lir4LiH4Li34Lit4LiB4Lib4Lil4Liy4Lir4Lih4LitCivguYDguKvguIfguLfguYjguK3guIHguLLguKwKK+C5gOC4q+C5h+C4iAor4LmA4Lir4LmH4LiUCivguYDguKvguYfguJTguYLguITguJkKK+C5gOC4q+C5h+C4lOC4q+C4peC4uOC4mgor4LmA4Lir4LiV4Li0CivguYDguKvguJXguLgKK+C5gOC4q+C4leC4uOC4geC4suC4o+C4k+C5jAor4LmA4Lir4LiV4Li44Lic4LilCivguYDguKvguJXguLjguKrguLjguJTguKfguLTguKrguLHguKIKK+C5gOC4q+C5h+C4mQor4LmA4Lir4LmH4LiZ4LiB4LiH4LiI4Lix4LiB4Lij4LmA4Lib4LmH4LiZ4LiU4Lit4LiB4Lia4Lix4LinCivguYDguKvguYfguJnguYHguIHguYgKK+C5gOC4q+C5h+C4meC5geC4geC5iOC4q+C4meC5ieC4sgor4LmA4Lir4LmH4LiZ4LiC4Li14LmJ4LiU4Li14LiB4Lin4LmI4Liy4LmE4Liq4LmJCivguYDguKvguYfguJnguYDguILguLLguILguLbguYnguJnguITguLLguJnguKvguLLguKEg4LmA4Lit4Liy4Lih4Li34Lit4Lib4Lij4Liw4Liq4Liy4LiZ4LiB4LmJ4LiZCivguYDguKvguJnguYjguIcKK+C5gOC4q+C4meC4h+C4meC4suC4ouC4nuC4o+C4suC4mQor4LmA4Lir4LmH4LiZ4LiI4LiwCivguYDguKvguYfguJnguYPguIgKK+C5gOC4q+C5h+C4meC4iuC5ieC4suC4h+C4guC4teC5iSDguILguLXguYnguJXguLLguKHguIrguYnguLLguIcKK+C5gOC4q+C4meC5h+C4lAor4LmA4Lir4LiZ4LmH4LiU4LmA4Lir4LiZ4Li34LmI4Lit4LiiCivguYDguKvguYfguJnguJTguLPguYDguKvguYfguJnguYHguJTguIcKK+C5gOC4q+C5h+C4meC4lOC4tQor4LmA4Lir4LiZ4LmH4LiaCivguYDguKvguJnguYfguJrguIrguLIKK+C5gOC4q+C4meC5h+C4muC5geC4meC4oQor4LmA4Lir4LmH4LiZ4Lir4LiZ4LmJ4Liy4LmA4Lir4LmH4LiZ4Lir4Lil4Lix4LiHCivguYDguKvguJnguYjguK0KK+C5gOC4q+C5h+C4meC4reC5ieC4oQor4LmA4Lir4LiZ4Lit4LiwCivguYDguKvguJnguK3guLDguKvguJnguLAKK+C5gOC4q+C4meC5ieC4sgor4LmA4Lir4LiZ4Liy4Liw4LmGCivguYDguKvguJnguLXguKLguIcKK+C5gOC4q+C4meC4teC5iOC4ouC4hwor4LmA4Lir4LiZ4Li14Lii4LiH4LiZ4LiB4LiB4Lij4Liw4LiX4Li44LiHCivguYDguKvguJnguLXguYjguKLguJkKK+C5gOC4q+C4meC4teC4ouC4oQor4LmA4Lir4LiZ4Li14Lii4LinCivguYDguKvguJnguLXguYjguKLguKcKK+C5gOC4q+C4meC4teC5iOC4ouC4p+C4meC4s+C5geC4oeC5iOC5gOC4q+C4peC5h+C4geC5hOC4n+C4n+C5ieC4sgor4LmA4Lir4LiZ4Li14Lii4Lin4LmB4LiZ4LmI4LiZCivguYDguKvguJnguLXguYjguKLguKfguKPguLHguYnguIcKK+C5gOC4q+C4meC4teC4ouC4p+C4q+C4meC4t+C4lAor4LmA4Lir4LiZ4Li14Lii4Lin4Lir4Lih4LiyCivguYDguKvguJnguLfguK0KK+C5gOC4q+C4meC4t+C5iOC4reC4ogor4LmA4Lir4LiZ4Li34LmI4Lit4Lii4Lir4LiZ4LmI4Liy4LiiCivguYDguKvguYfguJoKK+C5gOC4q+C5h+C4muC4meC5ieC4swor4LmA4Lir4LihCivguYDguKvguKEtCivguYDguKvguKHguYgKK+C5gOC4q+C4oeC5iOC4hwor4LmA4Lir4Lih4LmH4LiZCivguYDguKvguKHguYfguJnguYDguILguLXguKLguKcKK+C5gOC4q+C4oeC5h+C4meC5gOC4muC4t+C5iOC4rQor4LmA4Lir4Lih4LmH4LiZ4LmA4Lib4Lij4Li14LmJ4Lii4LinCivguYDguKvguKHguKfguJTguLUKK+C5gOC4q+C4oeC5iOC4rQor4LmA4Lir4Lih4Lix4LiZ4LiVLQor4LmA4Lir4Lih4Lix4LiZ4LiV4LmMCivguYDguKvguKHguLIKK+C5gOC4q+C4oeC4suC4ouC4seC4mQor4LmA4Lir4Lih4Liy4LiwCivguYDguKvguKHguLLguLDguYDguIjguLLguLAKK+C5gOC4q+C4oeC4suC4sOC4quC4oQor4LmA4Lir4Lih4Liy4Liw4LmA4Lir4Lih4LmH4LiHCivguYDguKvguKHguLXguKLguKcKK+C5gOC4q+C4oeC4teC5iOC4ouC4pwor4LmA4Lir4Lih4Li34Lit4LiHCivguYDguKvguKHguLfguK3guIfguJ3guLLguKIKK+C5gOC4q+C4oeC4t+C4reC4lAor4LmA4Lir4Lih4Li34Lit4LiU4LiE4LiZCivguYDguKvguKHguLfguK3guJTguYLguKXguJQKK+C5gOC4q+C4oeC4t+C4reC4mQor4LmA4Lir4Lih4Li34Lit4LiZ4LiB4Lix4LiaCivguYDguKvguKHguLfguK3guJnguKfguYjguLIKK+C5gOC4q+C4oeC4t+C4reC4meC4q+C4meC4tuC5iOC4h+C4p+C5iOC4sgor4LmA4Lir4Lih4Li34LmI4Lit4LiiCivguYDguKvguKHguLfguYjguK3guKLguYYKK+C5gOC4q+C4ogor4LmA4Lir4Lii4LmA4LiBCivguYDguKvguKLguIcKK+C5gOC4q+C4ouC5iOC4reC4ogor4LmA4Lir4Lii4LiyCivguYDguKvguKLguYjguLIKK+C5gOC4q+C4ouC5iOC4suC5hgor4LmA4Lir4Lii4LmJ4LiyCivguYDguKvguKLguLLguLAKK+C5gOC4q+C4ouC4suC4sOC5hgor4LmA4Lir4Lii4Liy4Liw4LmB4Lir4Lii4LiwCivguYDguKvguKLguLTguIcKK+C5gOC4q+C4ouC4tOC4muC5hgor4LmA4Lir4Lii4Li14Lii4LiUCivguYDguKvguKLguLXguKLguJTguJzguLTguKcKK+C5gOC4q+C4ouC4teC4ouC4lOC4q+C4ouC4suC4oQor4LmA4Lir4Lii4Li14Lii4LiaCivguYDguKvguKLguLXguKLguJrguILguLXguYnguYTguIHguYjguYTguKHguYjguJ3guYjguK0KK+C5gOC4q+C4ouC4teC4ouC4muC4iOC4oeC4ueC4gQor4LmA4Lir4Lii4Li14Lii4Lia4Lii4LmI4LizCivguYDguKvguKLguLXguKLguJrguYDguKPguLfguK3guKrguK3guIfguYHguITguKEKK+C5gOC4q+C4ouC4teC5iOC4ouC4pwor4LmA4Lir4Lii4Li14LmI4Lii4Lin4LiC4LmI4Liy4LinCivguYDguKvguKLguLfguYjguK0KK+C5gOC4q+C4ouC4t+C4reC4gQor4LmA4Lir4Lij4Lix4LiN4LiN4Li04LiBCivguYDguKvguKPguLIKK+C5gOC4q+C4o+C4suC5gOC4peC5iOC4meC4meC5ieC4swor4LmA4Lir4Lij4Liy4Liw4LmGCivguYDguKvguKPguLXguKLguI0KK+C5gOC4q+C4o+C4teC4ouC4jeC4geC4o+C4sOC4qeC4suC4m+C4k+C5jAor4LmA4Lir4LmI4LmA4Lij4Li34LitCivguYDguKvguKXguYgKK+C5gOC4q+C4peC5h+C4gQor4LmA4Lir4Lil4LmH4LiB4LiB4Lil4LmJ4LiyCivguYDguKvguKXguYfguIHguIHguKXguYnguLLguYTguKHguYjguYDguJvguYfguJnguKrguJnguLTguKEKK+C5gOC4q+C4peC5h+C4geC5g+C4mQor4LmA4Lir4Lil4LmH4LiB4Lie4Li34LiUCivguYDguKvguKXguYfguIHguKfguLTguKXguLLguJQKK+C5gOC4q+C4peC5h+C4geC4quC5iOC4hwor4LmA4Lir4Lil4LmH4LiB4LmA4Liq4LmJ4LiZCivguYDguKvguKXguYfguIHguKvguKHguLLguJQKK+C5gOC4q+C4peC5h+C4geC4q+C4peC5iOC4rQor4LmA4Lir4Lil4LmH4LiB4LmA4Lir4LiZ4Li14Lii4LinCivguYDguKvguKXguYfguIHguYTguKvguKUKK+C5gOC4q+C4peC4mQor4LmA4Lir4Lil4LinCivguYDguKvguKXguKfguYHguKvguKXguIEKK+C5gOC4q+C4peC4p+C5hOC4q+C4pQor4LmA4Lir4Lil4LitCivguYDguKvguKXguLIKK+C5gOC4q+C4peC5iOC4sgor4LmA4Lir4Lil4LmJ4LiyCivguYDguKvguKXguYjguLLguIHguK0KK+C5gOC4q+C4peC4suC4iuC4sOC5guC4reC4mQor4LmA4Lir4Lil4Liy4Lir4Lil4LiBCivguYDguKvguKXguYnguLLguYHguKvguYnguIcKK+C5gOC4q+C4peC4suC4sOC5geC4q+C4peC4sAor4LmA4Lir4Lil4Li04LiHCivguYDguKvguKXguLTguIfguYDguIjguLTguYnguIcKK+C5gOC4q+C4peC4teC4ouC4mQor4LmA4Lir4Lil4Li14LmI4Lii4LihCivguYDguKvguKXguLXguYjguKLguKHguITguLkKK+C5gOC4q+C4peC4teC5iOC4ouC4oeC4peC4ueC4geC4muC4suC4qOC4geC5jAor4LmA4Lir4Lil4Li14Lii4LinCivguYDguKvguKXguLXguKLguKfguYHguKUKK+C5gOC4q+C4peC4teC4ouC4p+C4q+C4peC4seC4hwor4LmA4Lir4Lil4Li34LitCivguYDguKvguKXguLfguK3guIEKK+C5gOC4q+C4peC4t+C4reC4geC4s+C4peC4seC4hwor4LmA4Lir4Lil4Li34Lit4LmA4LiB4Li04LiZCivguYDguKvguKXguLfguK3guILguK0KK+C5gOC4q+C4peC4t+C4reC5gOC4guC5h+C4jQor4LmA4Lir4Lil4Li34Lit4LmA4LiC4LmH4LiZCivguYDguKvguKXguLfguK3guIcKK+C5gOC4q+C4peC4t+C4reC4h+C4q+C4suC4h+C4n+C5ieC4sgor4LmA4Lir4Lil4Li34Lit4LiH4Lir4Li04LiZCivguYDguKvguKXguLfguK3guYPguIgKK+C5gOC4q+C4peC4t+C4reC5gOC4iuC4t+C5iOC4rQor4LmA4Lir4Lil4Li34Lit4LmD4LiK4LmJCivguYDguKvguKXguLfguK3guJfguJkKK+C5gOC4q+C4peC4t+C4reC4mgor4LmA4Lir4Lil4Li34Lit4Lia4LmI4Liy4LiB4Lin4LmI4Liy4LmB4Lij4LiHCivguYDguKvguKXguLfguK3guYDguJ/guLfguK0KK+C5gOC4q+C4peC4t+C4reC4oQor4LmA4Lir4Lil4Li34LmI4Lit4LihCivguYDguKvguKXguLfguYjguK3guKHguKXguYnguLPguJXguYjguLPguKrguLnguIcKK+C5gOC4q+C4peC4t+C4reC4oeC4t+C4rQor4LmA4Lir4Lil4Li34Lit4Lij4Lix4LiaCivguYDguKvguKXguLfguK3guKPguYnguLLguKIKK+C5gOC4q+C4peC4t+C4reC4peC5ieC4mQor4LmA4Lir4Lil4Li34Lit4Lin4Li04Liq4Lix4LiiCivguYDguKvguKXguLfguK3guKrguJXguLTguIHguLPguKXguLHguIcKK+C5gOC4q+C4peC4t+C4reC5geC4quC4mQor4LmA4Lir4Lil4Li34Lit4Lir4Lil4LitCivguYDguKvguKXguLfguK3guKvguKXguLLguKIKK+C5gOC4q+C4peC4t+C4reC5geC4q+C4peC5iAor4LmA4Lir4Lil4Li34Lit4Lit4LiUCivguYDguKvguKXguLfguK3guK3guJTguYDguKvguKXguLfguK3guJfguJkKK+C5gOC4q+C4pwor4LmA4Lir4Lin4LmICivguYDguKvguKfguIcKK+C5gOC4q+C4p+C4l+C4sOC5gOC4pQor4LmA4Lir4Lin4LiiCivguYDguKvguKfguK3guLAKK+C5gOC4q+C4p+C4reC4sOC4q+C4p+C4sAor4LmA4Lir4Lin4Li14LmI4Lii4LiHCivguYDguKvguKfguLXguYjguKLguIfguYHguKsKK+C5gOC4q+C5iOC4rQor4LmA4Lir4LmI4Lit4LmA4Lir4Li04LihCivguYDguKvguK3guLAKK+C5gOC4q+C4reC4sOC4meC5iOC4sgor4LmA4Lir4LiwCivguYDguKvguLDguKvguLAKK+C5gOC4q+C4sgor4LmA4Lir4LmI4LiyCivguYDguKvguLLguInguKXguLLguKEKK+C5gOC4q+C4suC4l+C4sOC5gOC4pQor4LmA4Lir4Liy4LiZ4LmJ4LizCivguYDguKvguLLguYTguKHguYkKK+C5gOC4q+C4suC4sAor4LmA4Lir4Li04LiZCivguYDguKvguLTguJnguKvguYjguLLguIcKK+C5gOC4q+C4tOC4meC5gOC4q+C5iOC4rQor4LmA4Lir4Li04LihCivguYDguKvguLTguKHguKvguLLguI0KK+C5gOC4q+C4tOC4oeC4q+C5ieC4suC4pwor4LmA4Lir4Li04Lih4Liu4Li24LiBCivguYDguKvguLXguYnguKIKK+C5gOC4q+C4teC4ouC4hwor4LmA4Lir4Li14Lii4LiH4LiB4Lij4Liy4LiUCivguYDguKvguLXguKLguJkKK+C5gOC4q+C4teC5ieC4ouC4mQor4LmA4Lir4Li14Lii4LiZ4Lij4Liy4LiBCivguYDguKvguLXguYnguKLguKEKK+C5gOC4q+C4teC5ieC4ouC4oeC5gOC4geC4o+C4teC4ouC4oQor4LmA4Lir4Li14LmJ4Lii4Lih4Lir4Liy4LiNCivguYDguKvguLXguYnguKLguKHguYLguKvguJQKK+C5gOC4q+C4teC5iOC4ouC4pwor4LmA4Lir4Li14LmI4Lii4Lin4LmB4Lir4LmJ4LiHCivguYDguKvguLfguYjguK0KK+C5gOC4q+C4t+C4reC4lAor4LmA4Lir4Li34Lit4LiU4Lir4Liy4LiiCivguYDguKvguLfguK3guJTguYHguKvguYnguIcKK+C5geC4qwor4LmB4Lir4LmICivguYHguKvguYkKK+C5geC4q+C4gQor4LmB4Lir4LiB4LiE4Lit4LiBCivguYHguKvguIHguJvguLLguIEKK+C5geC4q+C4hwor4LmB4Lir4LiH4LmICivguYHguKvguYjguIcKK+C5geC4q+C5ieC4hwor4LmB4Lir4LiH4LmB4LiB4LmLCivguYHguKvguIfguYjguIcKK+C5geC4q+C4h+C4mQor4LmB4Lir4LiH4LiZ4LmA4LiV4LmI4LitCivguYHguKvguIfguJnguYDguJbguYjguK0KK+C5geC4q+C5ieC4h+C4nOC4suC4gQor4LmB4Lir4LmJ4LiH4LmB4Lil4LmJ4LiHCivguYHguKvguYnguIfguYDguKvguLXguYjguKLguKcKK+C5geC4q+C5ieC4h+C5gOC4q+C4t+C4reC4lAor4LmB4Lir4LiZCivguYHguKvguYnguJkKK+C5geC4q+C4meC4hwor4LmB4Lir4LiZ4LiH4LmD4LiICivguYHguKvguJnguIfguKvguJnguYjguLLguKIKK+C5geC4q+C4meC4mgor4LmB4Lir4LiZ4LihCivguYHguKvguJoKK+C5geC4q+C4oQor4LmB4Lir4Lih4LmICivguYHguKvguKHguYjguKEKK+C5geC4q+C4oeC4sAor4LmB4Lir4LiiCivguYHguKvguKLguYgKK+C5geC4q+C4ouC4hwor4LmB4Lir4Lii4LmI4LiHCivguYHguKvguKLguKEKK+C5geC4q+C4ouC5h+C4oQor4LmB4Lir4Lii4LiwCivguYHguKvguKLguLDguYYKK+C5geC4q+C4pQor4LmB4Lir4Lil4LmICivguYHguKvguKXguIEKK+C5geC4q+C4peC4geC4peC4suC4jQor4LmB4Lir4Lil4LiB4LmA4Lir4Lil4LinCivguYHguKvguKXguYjguIcKK+C5geC4q+C4peC5iOC4h+C5gOC4quC4t+C5iOC4reC4oeC5guC4l+C4o+C4oQor4LmB4Lir4Lil4LmI4LiH4Lir4Lil4LmJ4LiyCivguYHguKvguKXguJkKK+C5geC4q+C4peC5iOC4meC4reC4gQor4LmB4Lir4Lil4LmI4LmD4LiZCivguYHguKvguKXguKEKK+C5geC4q+C4peC4oeC4q+C4peC4seC4gQor4LmB4Lir4Lil4LiwCivguYHguKvguKcKK+C5geC4q+C5ieC4pwor4LmB4Lir4Lin4LiBCivguYHguKvguKfguIHguYHguJnguKcKK+C5geC4q+C4p+C5iOC4hwor4LmB4Lir4Lin4LiUCivguYHguKvguKfguJkKK+C5geC4q+C4p+C4meC4q+C4seC4pwor4LmB4Lir4LmJ4Lin4Lir4Lih4Li5CivguYHguKvguKfguLAKK+C5geC4q+C5iOC4q+C5ieC4reC4oQor4LmB4Lir4LmI4LmB4Lir4LiZCivguYHguKvguLAKK+C5geC4q+C4sOC5hgor4LmC4Lir4LmICivguYLguKvguIEKK+C5guC4q+C4hwor4LmC4Lir4LiH4Lie4Lij4Liy4LiiCivguYLguKvguJQKK+C5guC4q+C4lOC4o+C5ieC4suC4ogor4LmC4Lir4LiU4LmA4Lir4Li14LmJ4Lii4LihCivguYLguKvguJkKK+C5guC4q+C4meC4gQor4LmC4Lir4LiZ4LiB4LmB4LiB4LmJ4LihCivguYLguKvguJnguYjguIcKK+C5guC4q+C4oQor4LmC4Lir4LihLQor4LmC4Lir4Lih4LmICivguYLguKvguKHguIHguKPguKPguKEKK+C5guC4q+C4oeC4geC4ueC4k+C4keC5jAor4LmC4Lir4Lih4LmI4LiHCivguYLguKvguKHguJQKK+C5guC4q+C4oeC4lOC5gOC4l+C4qAor4LmC4Lir4Lih4LmC4Lij4LiHCivguYLguKvguKHguKvguLHguIEKK+C5guC4q+C4oeC4ruC4tuC4gQor4LmC4Lir4LiiCivguYLguKvguKLguIHguYDguKvguKLguIEKK+C5guC4q+C4ouC4hwor4LmC4Lir4Lii4LmI4LiHCivguYLguKvguKLguYjguIfguYYKK+C5guC4q+C4ouC4q+C4p+C4mQor4LmC4Lir4Lii4LmE4Lir4LmJCivguYLguKvguKMKK+C5guC4q+C4o+C4hwor4LmC4Lir4Lij4LiH4LmA4Lir4Lij4LiHCivguYLguKvguKPguJTguLLguIjguLLguKPguKLguYwKK+C5guC4q+C4o+C4sOC4nuC4sgor4LmC4Lir4Lij4LiyCivguYLguKvguKPguLLguIHguKPguLDguJrguLfguK0KK+C5guC4q+C4o+C4suC5gOC4guC4suC5gOC4meC4t+C5ieC4rQor4LmC4Lir4Lij4Liy4LiI4Liy4Lij4Lii4LmMCivguYLguKvguKPguLLguYDguJTguLfguK3guKLguYTguIHguYgKK+C5guC4q+C4o+C4suC4leC4teC4meC4q+C4oeC4sgor4LmC4Lir4Lij4Liy4LmA4LiX4LmJ4Liy4Liq4Li44LiZ4Lix4LiCCivguYLguKvguKPguLLguJrguK3guJkKK+C5guC4q+C4o+C4suC4qOC4suC4quC4leC4o+C5jAor4LmC4Lir4LilCivguYLguKvguKXguYgKK+C5guC4q+C4peC4h+C5guC4iOC5ieC4hwor4LmC4Lir4LinCivguYLguKvguKfguYgKK+C5guC4q+C4p+C5iQor4LmC4Lir4Lin4LiB4LmA4Lir4Lin4LiBCivguYLguKvguKfguIcKK+C5guC4q+C4p+C4h+C5gOC4q+C4p+C4hwor4LmC4Lir4Lin4LiUCivguYLguKvguKfguJUKK+C5g+C4q+C5iQor4LmD4Lir4LmJ4LiB4Liy4LijCivguYPguKvguI3guYgKK+C5g+C4q+C5ieC5guC4lOC4ouC5gOC4quC4meC5iOC4q+C4sgor4LmD4Lir4LmJ4LiX4LmI4LiyCivguYPguKvguYnguJfguYnguLLguKIKK+C5g+C4q+C4oeC5iAor4LmD4Lir4Lih4LmI4LiW4Lit4LiU4LiU4LmJ4Liy4LihCivguYPguKvguKHguYjguYDguK3guLXguYjguKLguKEKK+C5g+C4q+C5ieC4o+C5ieC4suC4ogor4LmD4Lir4LmJ4Lij4LmJ4Liy4Lii4Lib4LmJ4Liy4Lii4Liq4Li1CivguYPguKvguYnguKrguLHguJXguKLguLLguJrguLHguJkKK+C5g+C4q+C5ieC4q+C4sgor4LmD4Lir4LmJ4Lit4Lig4Lix4LiiCivguYPguKvguYnguK3guK3guIEKK+C5hOC4qwor4LmE4Lir4LmICivguYTguKvguYkKK+C5hOC4q+C4i+C4reC4hwor4LmE4Lir4LiZCivguYTguKvguJvguKXguLLguKPguYnguLIKK+C5hOC4q+C4oQor4LmE4Lir4Lih4LmJCivguYTguKvguKHguJfguK3guIcKK+C5hOC4q+C4oeC4quC4seC4muC4m+C4sOC4o+C4lAor4LmE4Lir4Lij4LiT4Lii4LmMCivguYTguKvguKUKK+C5hOC4q+C4peC5iAor4LmE4Lir4Lil4LmI4LmA4LiC4LiyCivguYTguKvguKXguYjguJbguJnguJkKK+C5hOC4q+C4peC5iOC4l+C4p+C4teC4mwor4LmE4Lir4Lil4LmI4LiX4Liy4LiHCivguYTguKvguKXguJnguYnguLMKK+C5hOC4q+C4peC5iOC4o+C4p+C4mgor4LmE4Lir4LinCivguYTguKvguKfguYYKK+C5hOC4q+C4p+C5iQor4LmE4Lir4Lin4LmJ4LiE4Lij4Li5CivguYTguKvguKfguYnguYDguIjguYnguLIKK+C5hOC4q+C4p+C4leC4seC4pwor4LmE4Lir4Lin4LiV4Li04LiHCivguYTguKvguKfguJfguLHguJkKK+C5hOC4q+C4p+C5ieC4nOC4tQor4LmE4Lir4Lin4Lie4Lij4Li04LiaCivguYTguKvguKfguYnguKfguLLguJkKK+C5hOC4q+C4q+C4peC4swor4LisCivguK0KK+C4reC4gQor4Lit4LiB4LmE4LiB4LmICivguK3guIHguITguKPguLLguIEKK+C4reC4geC4leC4seC5ieC4hwor4Lit4LiB4LiV4Lix4LiN4LiN4Li44LiV4LiyCivguK3guIHguJXguLHguI3guI3guLkKK+C4reC4geC5gOC4leC5iOC4sgor4Lit4LiB4LmB4LiV4LiBCivguK3guIHguJfguLDguYDguKUKK+C4reC4geC4meC4tOC4qeC4kOC5jAor4Lit4LiB4LmA4Lih4Li34Lit4LiHCivguK3guIHguKPguJPguLXguKLguYwKK+C4reC4geC4o+C4o+C4oeC4geC4o+C4tOC4ouC4sgor4Lit4LiB4Lij4Lin4LiaCivguK3guIHguKPguYjguK3guIcKK+C4reC4geC5guC4o+C4ogor4Lit4LiB4LmA4Lil4LiyCivguK3guIHguKvguLHguIEKK+C4reC4geC4seC4m+C4m+C4tOC4oi0KK+C4reC4geC4seC4m+C4m+C4tOC4ouC4p+C4seC4leC4luC4uAor4Lit4LiB4Lix4Lib4Lib4Li04Lii4LmC4Lin4Lir4Liy4LijCivguK3guIHguLHguJvguJvguLTguKLguLAKK+C4reC4geC4uOC4qOC4pQor4Lit4LiB4Li44Lio4LilLQor4Lit4LiB4Li44Lio4Lil4LiB4Lij4Lij4LihCivguK3guIHguLjguKjguKXguIHguKPguKPguKHguJrguJYKK+C4reC4geC4uOC4qOC4peC5gOC4iOC4leC4meC4sgor4Lit4LiB4Li44Lio4Lil4Lih4Li54LilCivguK3guITguJXguLQKK+C4reC4hOC5gOC4meC4quC4seC4mQor4Lit4LiE4Liy4LiYCivguK3guITguLLguKMtCivguK3guIYKK+C4reC5guC4huC4qeC4sAor4Lit4LiHCivguK3guIfguIHguYwKK+C4reC4h+C4hC0KK+C4reC4h+C4hOC5jAor4Lit4LiH4LiE4LmM4LiB4LiQ4Li04LiZCivguK3guIfguITguYzguIHguKMKK+C4reC4h+C4hOC5jOC4geC4suC4owor4Lit4LiH4LiE4LmM4LiB4Liy4Lij4Liq4Lir4Lib4Lij4Liw4LiK4Liy4LiK4Liy4LiV4Li0CivguK3guIfguITguIrguLLguJUKK+C4reC4h+C4hOC5jOC4m+C4o+C4sOC4geC4reC4mgor4Lit4LiH4LiE4LmM4Lib4Lij4Liw4LiK4Li44LihCivguK3guIfguITguKHguJnguJXguKPguLUKK+C4reC4h+C4hOC4oeC4o+C4o+C4qQor4Lit4LiH4LiE4Lij4Lix4LiB4Lip4LmMCivguK3guIfguITguKfguLTguIHguLLguKMKK+C4reC4h+C4hOC4p+C4tOC5gOC4geC4qeC4mwor4Lit4LiH4LiE4Lin4Li04LiX4Lii4LiyCivguK3guIfguITguLLguJ7guKLguJ4KK+C4reC4h+C4hOC4uOC4pQor4Lit4LiH4LiE4Li44Lil4Li1CivguK3guIfguKjguYwKK+C4reC4h+C4qOC4sgor4Lit4LiH4Lit4Liy4LiICivguK3guIfguLjguYjguJkKK+C4reC4iOC4owor4Lit4LiI4LilLQor4Lit4LiI4Lil4LiyCivguK3guIjguLTguJXguJXguLQKK+C4reC4iOC4tOC4meC4leC4sgor4Lit4LiI4Li04LiZ4LmE4LiV4LiiCivguK3guIjguLTguKMtCivguK3guIjguLTguKPguLAKK+C4reC5gOC4iOC4peC4gQor4Lit4LmA4LiI4Lil4LiwCivguK3guIoKK+C4reC4iuC4sgor4Lit4LiK4Li04LiZCivguK3guIrguLTguJnguLUKK+C4reC4iuC4tOC4owor4Lit4LiP4Lin4Li1CivguK3guJPguLQKK+C4reC4k+C4uAor4Lit4LiT4Li5CivguK3guYLguJPguJfguLHguKIKK+C4reC4lAor4Lit4LiU4LiB4Lil4Lix4LmJ4LiZCivguK3guJTguYPguIgKK+C4reC4lOC4leC4suC4q+C4peC4seC4muC4guC4seC4muC4leC4suC4meC4reC4mQor4Lit4LiU4LiX4LiZCivguK3guJTguJnguKEKK+C4reC4lOC5gOC4m+C4o+C4teC5ieC4ouC4p+C5hOC4p+C5ieC4geC4tOC4meC4q+C4p+C4suC4mQor4Lit4LiU4Liq4Li5CivguK3guJTguYHguKvguYnguIfguK3guJTguYHguKXguYnguIcKK+C4reC4lOC4reC4ouC4suC4gQor4Lit4LiU4Lit4Lit4LihCivguK3guJTguLQKK+C4reC4lOC4tOC4luC4tQor4Lit4LiU4Li04LmA4LiX4LieCivguK3guJTguLTguYDguKPguIEKK+C4reC4lOC4tOC5gOC4o+C4gS0KK+C4reC4lOC4tOC5gOC4o+C4geC4peC4suC4oAor4Lit4LiU4Li04Lio4LijCivguK3guJTguLTguKjguKfguKMKK+C4reC4lOC4tOC4qOC4seC4ogor4Lit4LiU4Li14LiVCivguK3guJTguLXguJUtCivguK3guJTguLXguJXguIHguLLguKUKK+C4reC4lOC4teC4leC4iuC4suC4leC4tAor4Lit4LiU4Li14LiV4Lig4LieCivguK3guJTguLXguJXguKrguKHguLHguKIKK+C4reC4lOC4uOC4pQor4Lit4LiU4Li44Lil4LiiLQor4Lit4LiU4Li44Lil4Lii4LmMCivguK3guJXguLQKK+C4reC4leC4tOC4iuC4suC4lQor4Lit4LiV4Li04LiK4Liy4LiVLQor4Lit4LiV4Li04LiK4Liy4LiV4Lia4Li44LiV4LijCivguK3guJXguLTguKHguLLguJnguLAKK+C4reC4leC4tOC4o+C4suC4igor4Lit4LiV4Li04LmA4Lij4LiBCivguK3guJXguLTguYDguKPguIEtCivguK3guJXguLTguYDguKPguIHguIjguLXguKfguKMKK+C4reC4leC4tOC5gOC4o+C4geC4peC4suC4oAor4Lit4LiV4Li04Liq4Liy4LijCivguK3guJbguKPguKPguJ7guYDguKfguJcKK+C4reC4l+C4o+C4sAor4Lit4LiX4Li04LiZ4LiZ4Liy4LiX4Liy4LiZCivguK3guJfguLTguJnguJnguLLguJfguLLguKLguLUKK+C4reC4mOC4o+C4o+C4oQor4Lit4LiY4Li0CivguK3guJjguLTguIEtCivguK3guJjguLTguIHguKHguLLguKoKK+C4reC4mOC4tOC4geC4o+C4k+C5jAor4Lit4LiY4Li04LiB4Lin4Liy4LijCivguK3guJjguLTguIHguKrguLjguKPguJfguLTguJkKK+C4reC4mOC4tOC4geC4suC4owor4Lit4LiY4Li04LiB4Liy4Lij4Lia4LiU4Li1CivguK3guJjguLTguITguKEKK+C4reC4mOC4tOC4j+C4kOC4suC4mQor4Lit4LiY4Li04Lia4LiU4Li1CivguK3guJjguLTguJrguLLguKIKK+C4reC4mOC4tOC4mwor4Lit4LiY4Li04LibLQor4Lit4LiY4Li04Lib4LmE4LiV4LiiCivguK3guJjguLTguKHguLLguJXguKMKK+C4reC4mOC4tOC4oeC4uOC4leC4leC4tAor4Lit4LiY4Li04LmC4Lih4LiB4LiC4LmMCivguK3guJjguLTguKPguLLguIoKK+C4reC4mOC4tOC4p+C4suC4qgor4Lit4LiY4Li04Lin4Liy4Liq4LiZ4LiwCivguK3guJjguLTguKjguLXguKUKK+C4reC4mOC4tOC4qeC4kOC4suC4mQor4Lit4LiY4Li24LiBCivguK3guJktCivguK3guYnguJkKK+C4reC4meC4h+C4hC0KK+C4reC4meC4h+C4hOC5jAor4Lit4LiZ4LiH4LiE4LiT4LiwCivguK3guJnguIfguITguYDguKXguIIKK+C4reC4meC4h+C4hOC5gOC4peC4guC4sgor4Lit4LiZ4LiYLQor4Lit4LiZ4LiY4LiB4Liy4LijCivguK3guJnguJnguJXguYwKK+C4reC4meC4ouC4sAor4Lit4LiZ4Lij4Lij4LiGCivguK3guJnguKPguKPguJYKK+C4reC4meC4pQor4Lit4LiZ4Lin4Lix4LiKCivguK3guJnguKfguLHguIotCivguK3guYnguJnguK3guYnguK0KK+C4reC4meC4seC4jQor4Lit4LiZ4Lix4LiNLQor4Lit4LiZ4Lix4LiN4LiE4LiV4Li0CivguK3guJnguLHguI3guKrguLLguJjguLLguKPguJPguYwKK+C4reC4meC4seC4leC4leC4sgor4Lit4LiZ4Lix4LiV4LiWLQor4Lit4LiZ4Lix4LiZ4LiVLQor4Lit4LiZ4Lix4LiZ4LiV4LmMCivguK3guJnguLHguJnguJXguKMtCivguK3guJnguLHguJnguJXguKPguLTguKLguIHguKPguKPguKEKK+C4reC4meC4seC4oQor4Lit4LiZ4Liy4LiB4Li54LilCivguK3guJnguLLguITguJUKK+C4reC4meC4suC4hOC4lS0KK+C4reC4meC4suC4hOC4leC4geC4suC4pQor4Lit4LiZ4Liy4LiE4Liy4Lih4Li04Lic4LilCivguK3guJnguLLguITguLLguKHguLTguKHguKPguKPguIQKK+C4reC4meC4suC4hOC4suC4oeC4tQor4Lit4LiZ4Liy4LiI4Liy4LijCivguK3guJnguLLguJYKK+C4reC4meC4suC4luC4sgor4Lit4LiZ4Liy4LiX4LijCivguK3guJnguLLguJjguLTguJvguYTguJXguKIKK+C4reC4meC4suC4oeC4seC4ogor4Lit4LiZ4Liy4Lij4LiiLQor4Lit4LiZ4Liy4Lij4Lii4LiK4LiZCivguK3guJnguLLguKPguKLguJjguKPguKPguKEKK+C4reC4meC4suC4o+C4ouC4sAor4Lit4LiZ4Liy4Lil4Lix4LiiCivguK3guJnguLMKK+C4reC4meC4tOC4iAor4Lit4LiZ4Li04LiILQor4Lit4LiZ4Li04LiI4LiB4Lij4Lij4LihCivguK3guJnguLTguIjguIjguLHguIcKK+C4reC4meC4tOC4iOC4iOC4sgor4Lit4LiZ4Li04LiP4LiQ4Liy4Lij4Lih4LiT4LmMCivguK3guJnguLTguKLguJUKK+C4reC4meC4tOC4ouC4oQor4Lit4LiZ4Li04Lii4LihLQor4Lit4LiZ4Li04LilCivguK3guJnguLTguKUtCivguK3guJnguLTguKXguJrguJYKK+C4reC4meC4tOC4p+C4o+C4o+C4lQor4Lit4LiZ4Li04Lin4Lij4Lij4LiV4LiZ4LmMCivguK3guJnguLTguKnguI/guYwKK+C4reC4meC4teC4gS0KK+C4reC4meC4teC4geC4l+C4o+C4o+C4qOC4meC4sAor4Lit4LiZ4Li14LiB4LiX4Lix4Lio4LiZ4LiwCivguK3guJnguLXguIHguLAKK+C4reC4meC4teC4geC4seC4kAor4Lit4LiZ4Li14LiICivguK3guJnguLbguIEKK+C4reC4meC4tuC5iOC4hwor4Lit4LiZ4Li4CivguK3guJnguLjguIHguKMKK+C4reC4meC4uOC4geC4o+C4oQor4Lit4LiZ4Li44LiB4Lij4Lij4Lih4LiB4Liy4LijCivguK3guJnguLjguIHguKPguLDguYDguJrguLXguKLguJQKK+C4reC4meC4uOC4geC4suC4iuC4suC4lAor4Lit4LiZ4Li44LiB4Liy4LijCivguK3guJnguLjguIHguLnguKUKK+C4reC4meC4uOC4hOC4suC4oeC4tOC4gQor4Lit4LiZ4Li44LiE4Liy4Lih4Li1CivguK3guJnguLjguYDguITguKPguLLguLDguKvguYwKK+C4reC4meC4uOC4iOC4owor4Lit4LiZ4Li44LiKCivguK3guJnguLjguIrguJkKK+C4reC4meC4uOC4iuC4sgor4Lit4LiZ4Li44LiK4Liy4LiVCivguK3guJnguLjguIrguLLguJUtCivguK3guJnguLjguIrguLLguJXguJrguLjguJXguKMKK+C4reC4meC4uOC4iuC4tOC4lQor4Lit4LiZ4Li44LiN4Liy4LiVCivguK3guJnguLjguI3guLLguYLguJXguJXguLjguKXguLLguIHguLLguKMKK+C4reC4meC4uOC4leC4oy0KK+C4reC4meC4uOC5gOC4luC4o+C4sAor4Lit4LiZ4Li44LiX4Li04LiZCivguK3guJnguLjguJrguJcKK+C4reC4meC4uOC4muC4suC4pQor4Lit4LiZ4Li44Lib4Lij4Li04LiN4LiN4LiyCivguK3guJnguLjguJvguKrguLHguKHguJrguLHguJkKK+C4reC4meC4uOC4m+C4seC4quC4meC4sgor4Lit4LiZ4Li44Lie4LiH4Lio4LmMCivguK3guJnguLjguJ7guLHguJfguJjguYwKK+C4reC4meC4uOC4nuC4seC4meC4mOC5jAor4Lit4LiZ4Li44LmC4Lie4LiYCivguK3guJnguLjguKDguKPguKPguKLguLIKK+C4reC4meC4uOC4oOC4o+C4tOC4ouC4sgor4Lit4LiZ4Li44Lig4Liy4LiECivguK3guJnguLjguKDguLLguKkKK+C4reC4meC4uOC4oeC4seC4leC4tAor4Lit4LiZ4Li44Lih4Liy4LiV4Lij4LiyCivguK3guJnguLjguKHguLLguJkKK+C4reC4meC4uOC4oeC4ueC4pQor4Lit4LiZ4Li44Lih4Li54Lil4LiB4Lij4LiUCivguK3guJnguLjguYLguKHguJfguJnguLIKK+C4reC4meC4uOC5guC4oeC4l+C4meC4suC4muC4seC4leC4owor4Lit4LiZ4Li44LmC4Lii4LiECivguK3guJnguLjguKPguLHguIHguKktCivguK3guJnguLjguKPguLHguIHguKnguYwKK+C4reC4meC4uOC4o+C4seC4geC4qeC4meC4tOC4ouC4oQor4Lit4LiZ4Li44Lij4Liy4LiKCivguK3guJnguLjguKPguLLguJgKK+C4reC4meC4uOC4o+C4suC4mOC4sAor4Lit4LiZ4Li44Lij4Liy4LiY4LiyCivguK3guJnguLjguKPguLnguJsKK+C4reC4meC4uOC5guC4peC4oQor4Lit4LiZ4Li44Lin4LiH4Lio4LmMCivguK3guJnguLjguKfguLHguJUKK+C4reC4meC4uOC4p+C4suC4lQor4Lit4LiZ4Li44Lio4Liy4Liq4LiBCivguK3guJnguLjguKjguLLguKrguJnguYwKK+C4reC4meC4uOC4qOC4suC4quC4meC4suC4iOC4suC4o+C4ouC5jAor4Lit4LiZ4Li44Lio4Li04Lip4LiP4LmMCivguK3guJnguLjguKrguJXguLQKK+C4reC4meC4uOC4quC4meC4mOC4tAor4Lit4LiZ4Li44Liq4Lig4Liy4LiB4Liy4LiK4Liy4LiUCivguK3guJnguLjguKrguKMKK+C4reC4meC4uOC4quC4o+C4k+C5jAor4Lit4LiZ4Li44Liq4Lix4LiN4LiN4LiyCivguK3guJnguLjguKrguLHguKIKK+C4reC4meC4uOC4quC4suC4p+C4o+C4teC4ouC5jAor4Lit4LiZ4Li44Liq4Liy4Liq4LiZ4Li1CivguK3guYDguJnguIEKK+C4reC5gOC4meC4gS0KK+C4reC5gOC4meC4geC4hOC4uOC4kwor4Lit4LmA4LiZ4LiB4Lib4Lij4Liw4Liq4LiH4LiE4LmMCivguK3guYDguJnguIHguKfguLTguJgKK+C4reC5gOC4meC4geC4reC4meC4seC4meC4leC5jAor4Lit4LmA4LiZ4LiB4Lit4LiZ4Lix4LiZ4LiV4Lix4LiHCivguK3guYDguJnguIjguK3guJnguLLguJYKK+C4reC5guC4meC4iuC4sgor4Lit4LmC4LiZ4LiU4Liy4LiVCivguK3guJoKK+C4reC4muC5gOC4iuC4ogor4Lit4Lia4Lij4LihCivguK3guJrguK3guKfguKUKK+C4reC4muC4reC5ieC4suC4pwor4Lit4Lia4Lit4Li44LmI4LiZCivguK3guJrguLLguKIKK+C4reC4muC4suC4oi0KK+C4reC4muC4suC4ouC4oOC4ueC4oeC4tAor4Lit4Lia4Liy4Lii4Lih4Li44LiCCivguK3guJsKK+C4reC4m+C4geC4suC4owor4Lit4Lib4LiI4Liy4Lii4LiZLQor4Lit4Lib4LiI4Liy4Lii4LiZ4LiY4Lij4Lij4LihCivguK3guJvguIjguLLguKLguJnguKHguLHguKIKK+C4reC4m+C4oOC4suC4hOC4ouC5jAor4Lit4Lib4Lih4LiH4LiE4LilCivguK3guJvguKHguLLguJkKK+C4reC4m+C4ouC4qAor4Lit4Lib4LijLQor4Lit4Lib4Lij4Lig4Liy4LiECivguK3guJvguKPguLDguKHguLLguJMKK+C4reC4m+C4o+C4sOC4oeC4suC4lwor4Lit4Lib4Lij4Liw4LmE4Lih4LiiCivguK3guJvguKPguLHguJPguJPguIrguLLguJXguLQKK+C4reC4m+C4o+C4sgor4Lit4Lib4Lij4Liy4LiK4Lix4LiiCivguK3guJvguKPguLLguIrguLTguJUKK+C4reC4m+C4o+C4suC4mAor4Lit4Lib4Lij4Li04Lih4Liy4LiTCivguK3guJvguKXguLHguIHguKnguJPguYwKK+C4reC4m+C5guC4peC4geC4meC5jAor4Lit4Lib4Lin4Liy4LiXCivguK3guJvguKvguLLguKMKK+C4reC4m+C4suC4iOC4tQor4Lit4Lib4Liy4LiI4Li14LiZCivguK3guJvguLLguJkKK+C4reC5gOC4m+C4q+C4tAor4Lit4Lie4Lie4LiwCivguK3guJ7guKLguJ4KK+C4reC4oOC4pwor4Lit4Lig4Lix4LieCivguK3guKDguLHguJ4tCivguK3guKDguLHguJ7guJrguLjguITguITguKUKK+C4reC4oOC4seC4nuC4nOC4pQor4Lit4Lig4Lix4LiiCivguK3guKDguLHguKItCivguK3guKDguLHguKLguJfguLLguJkKK+C4reC4oOC4seC4ouC5guC4l+C4qQor4Lit4Lig4Li0CivguK3guKDguLTguIbguLLguJUKK+C4reC4oOC4tOC4iOC4ieC4sgor4Lit4Lig4Li04LiK4LiM4LiyCivguK3guKDguLTguIrguJkKK+C4reC4oOC4tOC4iuC4mS0KK+C4reC4oOC4tOC4iuC4meC4suC4mOC4tOC4m+C5hOC4leC4ogor4Lit4Lig4Li04LiK4Lix4LiiCivguK3guKDguLTguIrguLLguJUKK+C4reC4oOC4tOC4iuC4suC4lS0KK+C4reC4oOC4tOC4iuC4suC4leC4muC4uOC4leC4owor4Lit4Lig4Li04LiK4Li04LiVCivguK3guKDguLTguI3guI3guLIKK+C4reC4oOC4tOC4jeC4jeC4suC4kwor4Lit4Lig4Li04LiT4LirLQor4Lit4Lig4Li04LiY4Lij4Lij4LihCivguK3guKDguLTguJjguLLguJkKK+C4reC4oOC4tOC5hOC4mOC4ogor4Lit4Lig4Li04LiZ4Lix4LiZ4LiX4LmMCivguK3guKDguLTguJnguLHguJnguJfguJnguLLguIHguLLguKMKK+C4reC4oOC4tOC4meC4seC4ogor4Lit4Lig4Li04LiZ4Li04Lir4Liy4LijCivguK3guKDguLTguYDguJnguKnguIHguKPguKHguJPguYwKK+C4reC4oOC4tOC4muC4suC4pQor4Lit4Lig4Li04Lib4Lij4Lix4LiK4LiN4LiyCivguK3guKDguLTguJvguKPguLLguKIKK+C4reC4oOC4tOC4oeC4q+C4suC4reC4s+C4meC4suC4iAor4Lit4Lig4Li04Lih4Liy4LiZ4LiwCivguK3guKDguLTguKHguLjguIIKK+C4reC4oOC4tOC4o+C4lOC4tQor4Lit4Lig4Li04Lij4LiV4Li0CivguK3guKDguLTguKPguKHguKLguYwKK+C4reC4oOC4tOC4o+C4seC4geC4qeC5jAor4Lit4Lig4Li04Lij4Lix4LiQ4Lih4LiZ4LiV4Lij4Li1CivguK3guKDguLTguKPguLLguKEKK+C4reC4oOC4tOC4o+C4uOC4lQor4Lit4Lig4Li04Lij4Li44LihCivguK3guKDguLTguKPguLnguJsKK+C4reC4oOC4tOC4peC4seC4geC4guC4tOC4lQor4Lit4Lig4Li04Lil4Lix4LiB4LiC4Li04LiVLQor4Lit4Lig4Li04Lil4Lix4LiB4LiC4Li04LiV4LiB4Liy4LilCivguK3guKDguLTguKXguLHguIHguILguLTguJXguKrguKHguLHguKIKK+C4reC4oOC4tOC5gOC4peC4m+C4meC5jAor4Lit4Lig4Li04Lin4Lix4LiZ4LiX4LmMCivguK3guKDguLTguKfguLLguJcKK+C4reC4oOC4tOC4p+C4suC4l+C4meC5jAor4Lit4Lig4Li04LmA4Lip4LiBCivguK3guKDguLTguYDguKnguIHguKrguKHguKPguKoKK+C4reC4oOC4tOC4quC4oeC5guC4nuC4mOC4tAor4Lit4Lig4Li04Liq4Lih4Lix4LiiCivguK3guKDguLTguKrguKHguLLguIjguLLguKMKK+C4reC4oOC4tOC4quC4seC4oeC5guC4nuC4mOC4tAor4Lit4Lig4Li04Liq4Lix4Lih4LmC4Lie4LiY4Li04LiN4Liy4LiTCivguK3guKDguLTguKrguLTguJUKK+C4reC4oOC4tOC4quC4tOC4l+C4mOC4tOC5jAor4Lit4Lig4Li54LiVCivguK3guKEKK+C4reC5ieC4oQor4Lit4Lih4LiE4Lin4Liy4LihCivguK3guKHguJUtCivguK3guKHguJXguJrguJcKK+C4reC4oeC4leC4sAor4Lit4Lih4LiZ4Li44Lip4Lii4LmMCivguK3guKHguJvguLLguIEKK+C4reC4oeC4nuC4sOC4meC4swor4Lit4Lih4LmA4Lie4Lil4Li04LiHCivguK3guKHguKDguLnguKHguLQKK+C4reC4oeC4oeC4t+C4rQor4Lit4Lih4Lii4Li04LmJ4LihCivguK3guKHguKMKK+C4reC4oeC4oy0KK+C4reC4oeC4o+C4muC4lOC4tQor4Lit4Lih4Lij4Lij4Lix4LiV4LiZ4LmMCivguK3guKHguKPguKPguLLguIoKK+C4reC4oeC4o+C4quC4leC4o+C4tQor4Lit4Lih4Lij4LiyCivguK3guKHguKPguLLguKfguJTguLUKK+C4reC4oeC4o+C4tOC4meC4l+C4o+C5jAor4Lit4Lih4LmA4Lij4LiZ4LiX4Lij4LmMCivguK3guKHguYDguKPguKgKK+C4reC4oeC5gOC4o+C4qOC4p+C4owor4Lit4Lih4LmC4Lij4LiECivguK3guKHguKTguJUKK+C4reC4oeC4pOC4lS0KK+C4reC4oeC4pOC4leC4muC4lwor4Lit4Lih4Lik4LiV4Lii4Li5CivguK3guKHguKTguJXguKPguKoKK+C4reC4oeC5gOC4peC4t+C4reC4lOC4reC4oeC4neC4suC4lAor4Lit4Lih4LmA4Lil4Li34Lit4LiU4Lit4Lih4Lir4LiZ4Lit4LiHCivguK3guKHguKvguJnguK3guIcKK+C4reC4oeC4seC4iOC4iOC4sAor4Lit4Lih4Lix4LiV4LijCivguK3guKHguLLguJXguKLguYwKK+C4reC4oeC4suC4p+C4quC4tQor4Lit4Lih4Liy4Lin4Liq4Li4CivguK3guKHguLLguKfguLLguKrguLUKK+C4reC4oeC4tOC4leC4owor4Lit4LmA4Lih4Lij4Li04LiB4Lix4LiZCivguK3guKIKK+C4reC4ouC4mQor4Lit4Lii4Lix4LiqCivguK3guKLguYjguLIKK+C4reC4ouC4suC4gQor4Lit4Lii4LmI4Liy4LiHCivguK3guKLguYjguLLguIfguYTguKMKK+C4reC4ouC5iOC4suC4h+C5hOC4o+C4geC5h+C4lOC4tQor4Lit4Lii4LmI4Liy4LiH4LmE4Lij4LiB4LmH4LiV4Liy4LihCivguK3guKLguLjguJfguJjguYwKK+C4reC4ouC4ueC5iAor4Lit4Lii4Li54LmI4LiB4Lij4Lij4LihCivguK3guKLguLnguYjguIHguLTguJkKK+C4reC4ouC4ueC5iOC4hOC4hwor4Lit4Lii4Li54LmI4LiH4Liy4LiZCivguK3guKLguLnguYjguIjguKPguLTguIcKK+C4reC4ouC4ueC5iOC4lOC4teC4geC4tOC4meC4lOC4tQor4Lit4Lii4Li54LmI4LiV4Lix4LinCivguK3guKLguLnguYjguJfguYnguK3guIcKK+C4reC4ouC4ueC5iOC5hOC4nwor4Lit4Lii4Li54LmI4Lih4Li34LitCivguK3guKLguLnguYjguYTguKHguYjguKrguLjguIIKK+C4reC4ouC4ueC5iOC4ouC4h+C4hOC4h+C4geC4o+C4sOC4nuC4seC4mQor4Lit4Lii4Li54LmI4Lii4Liy4LihCivguK3guKLguLnguYjguYLguKLguIcKK+C4reC4ouC4ueC5iOC5gOC4p+C4owor4Lit4Lii4Li54LmI4Lir4Lih4Lix4LiUCivguK3guKMKK+C4reC4o+C4igor4Lit4Lij4LiK4LijCivguK3guKPguIrguLjguJkKK+C4reC4o+C4kwor4Lit4Lij4LiU4Li1CivguK3guKPguJXguLQKK+C4reC4o+C4l+C4seC4ogor4Lit4Lij4LmE4LiXCivguK3guKPguJjguLLguJkKK+C4reC4o+C4meC4uOC4igor4Lit4Lij4Lie4Li04LiZ4LiX4LmMCivguK3guKPguJ7guLTguKEKK+C4reC4o+C4o+C4hAor4Lit4Lij4Lij4LiGCivguK3guKPguKPguIbguKLguYwKK+C4reC4o+C4o+C4iOC4meC5jAor4Lit4Lij4Lij4LiT4LieCivguK3guKPguKPguJYKK+C4reC4o+C4o+C4li0KK+C4reC4o+C4o+C4luC4geC4luC4sgor4Lit4Lij4Lij4LiW4LiB4LiW4Liy4LiI4Liy4Lij4Lii4LmMCivguK3guKPguKPguJbguIHguKMKK+C4reC4o+C4o+C4luC4geC4p+C4tQor4Lit4Lij4Lij4LiW4LiE4LiU4Li1CivguK3guKPguKPguJbguJrguJcKK+C4reC4o+C4o+C4luC4m+C4j+C4tOC4quC4seC4oeC4oOC4tOC4l+C4sgor4Lit4Lij4Lij4LiW4Lib4Lij4Liw4LmC4Lii4LiK4LiZ4LmMCivguK3guKPguKPguJbguKPguKoKK+C4reC4o+C4o+C4luC4suC4mOC4tOC4muC4suC4ogor4Lit4Lij4Lij4LiYCivguK3guKPguKPguJgtCivguK3guKPguKPguJjguIHguKPguKPguJMKK+C4reC4o+C4o+C4mOC4hOC4o+C4suC4qgor4Lit4Lij4Lij4LiY4LiI4Lix4LiB4LijCivguK3guKPguKPguJjguIjguLHguJnguJfguKPguYwKK+C4reC4o+C4o+C4mOC4meC4tOC4qOC4sgor4Lit4Lij4Lij4LiY4Lia4LiXCivguK3guKPguKPguJjguKDguLLguIQKK+C4reC4o+C4o+C4mOC4quC4o+C4sAor4Lit4Lij4Liq4Li44LihCivguK3guKPguKrguLjguKHguJ7guKUKK+C4reC4o+C4q+C4sAor4Lit4Lij4Lir4Lix4LiHCivguK3guKPguKvguLHguJUKK+C4reC4o+C4q+C4seC4lS0KK+C4reC4o+C4q+C4seC4leC4nOC4pQor4Lit4Lij4Lir4Lix4LiV4Lih4Lij4Lij4LiECivguK3guKPguKvguLHguJXguKfguLTguYLguKHguIHguILguYwKK+C4reC4o+C4q+C4seC4mQor4Lit4Lij4Lir4Lix4LiZ4LiVLQor4Lit4Lij4Lir4Lix4LiZ4LiV4LmMCivguK3guKPguKvguLHguJnguJXguIbguLLguJUKK+C4reC4o+C5iOC4reC4ogor4Lit4Lij4Lix4LiNCivguK3guKPguLHguI0tCivguK3guKPguLHguI3guI3guLTguIEKK+C4reC4o+C4seC4jeC4p+C4suC4qgor4Lit4Lij4Lix4LiN4Lin4Liy4Liq4Li1CivguK3guKPguLHguJPguKLguYwKK+C4reC4o+C4suC4lOC4tQor4Lit4Lij4Liy4LiV4Li0CivguK3guKPguYjguLLguKEKK+C4reC4o+C4tAor4Lit4Lij4Li04LiZCivguK3guKPguLTguJnguJfguKPguYwKK+C4reC4o+C4tOC4oi0KK+C4reC4o+C4tOC4ouC4geC4sAor4Lit4Lij4Li04Lii4LiX4Lij4Lix4Lie4Lii4LmMCivguK3guKPguLTguKLguJrguLjguITguITguKUKK+C4reC4o+C4tOC4ouC4nOC4pQor4Lit4Lij4Li04Lii4Lih4Lij4Lij4LiECivguK3guKPguLTguKLguKrguLHguIgKK+C4reC4o+C4tOC4ouC4sAor4Lit4Lij4Li4CivguK3guKPguLjguJMKK+C4reC4o+C4uOC5guC4k+C4l+C4seC4ogor4Lit4Lij4Li44LmI4LihCivguK3guKPguLnguJsKK+C4reC4peC4h+C4geC4lQor4Lit4Lil4LiH4LiB4Lij4LiT4LmMCivguK3guKXguIfguIHguLLguKMKK+C4reC4peC4p+C4mQor4Lit4Lil4LmA4Lin4LiHCivguK3guKXguKvguKHguYjguLLguJkKK+C4reC4peC5iOC4reC4h+C4ieC5iOC4reC4hwor4Lit4Lil4Lix4LiB4LmA4Lit4Lil4Li34LmI4LitCivguK3guKXguLHguIfguIHguLLguKMKK+C4reC4peC4seC4iuC4iuC4tQor4Lit4Lil4LmI4Liy4LiH4LiJ4LmI4Liy4LiHCivguK3guKXguLTguIfguITguYwKK+C4reC4peC4tuC4h+C4hOC5jAor4Lit4Lil4Li24LmI4LiH4LiJ4Li24LmI4LiHCivguK3guYLguKXguKvguLAKK+C4reC4p+C4gQor4Lit4LmJ4Lin4LiBCivguK3guKfguIHguLLguKgKK+C4reC4p+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lit4Lin4LiI4LijCivguK3guKfguIrguLHguKIKK+C4reC4p+C4iuC4suC4lQor4Lit4Lin4LiK4Liy4LiVLQor4Lit4Lin4LiK4Liy4LiV4Lia4Li44LiV4LijCivguK3guKfguJQKK+C4reC4p+C4lOC4lOC4tQor4Lit4Lin4LiU4Lij4Li54LmJCivguK3guKfguJTguK3guYnguLLguIcKK+C4reC4p+C4leC4suC4owor4Lit4Lin4LiZCivguK3guYnguKfguJkKK+C4reC5ieC4p+C4meC4l+C5ieC4p+C4mQor4Lit4Lin4LiZ4Lil4Lit4LiiCivguK3guKfguJnguKXguLLguIEKK+C4reC4p+C4mgor4Lit4Lin4Lia4LiZ4LmJ4LizCivguK3guKfguKHguIfguITguKUKK+C4reC4p+C4oeC4reC4swor4Lit4Lin4LiiCivguK3guKfguKLguKfguLAKK+C4reC4p+C4o+C4uOC4l+C4mOC5jAor4Lit4Lin4Lij4Li44LiX4LiY4LiBCivguK3guKfguKUKK+C4reC4p+C4quC4suC4mQor4Lit4Lin4Lir4Liy4LijCivguK3guKfguLHguKLguKfguLAKK+C4reC4p+C4seC4quC4lOC4sgor4Lit4Lin4Liy4LiI4Li1CivguK3guKfguLTguIjguLUKK+C4reC4p+C4tOC4iuC4iuC4sgor4Lit4Lin4Li04LiN4LiN4Liy4LiT4LiBLQor4Lit4Lin4Li04LiN4LiN4Liy4LiT4LiB4LiX4Lij4Lix4Lie4Lii4LmMCivguK3guKfguLTguI3guI3guLkKK+C4reC4p+C4tOC4o+C4uOC4l+C4mOC5jAor4Lit4Lin4Li04LmC4Lij4LiY4LiZ4LmMCivguK3guKfguLXguIjguLQKK+C4reC5gOC4p+C4iOC4tQor4Lit4LmC4Lio4LiBCivguK3guKrguIfguYTguILguKIKK+C4reC4quC4meC4tQor4Lit4Liq4LiZ4Li14Lia4Liy4LiVCivguK3guKrguKAKK+C4reC4quC4oeC4geC4suC4owor4Lit4Liq4Lih4Lih4Liy4LiV4LijCivguK3guKrguKPguJ7guLTguKkKK+C4reC4quC4seC4h+C4geC4oeC4l+C4o+C4seC4nuC4ouC5jAor4Lit4Liq4Lix4LiH4Lir4Liy4Lij4Li04LihLQor4Lit4Liq4Lix4LiH4Lir4Liy4Lij4Li04Lih4LiX4Lij4Lix4Lie4Lii4LmMCivguK3guKrguLHguIfguKvguLLguKPguLTguKHguLAKK+C4reC4quC4seC4jS0KK+C4reC4quC4seC4jeC4geC4o+C4o+C4oQor4Lit4Liq4Lix4LiN4LiN4Li1CivguK3guKrguLHguI3guI3guLXguKDguLLguJ4KK+C4reC4quC4seC4jeC4jeC4teC4oOC4suC4p+C4sAor4Lit4Liq4Lix4LiN4LiN4Li14Liq4Lix4LiV4Lin4LmMCivguK3guKrguLHguI3guYHguJTguKvguKfguLIKK+C4reC4quC4seC4leC4luC4nuC4pOC4geC4qeC5jAor4Lit4Liq4Lix4LiV4Lii4LmMCivguK3guKrguLHguKHguKDguLTguJktCivguK3guKrguLHguKHguKDguLTguJnguJ7guIfguKjguYwKK+C4reC4quC4seC4oeC4oOC4tOC4meC4p+C4h+C4qOC5jAor4Lit4Liq4Liy4LiY4LijCivguK3guKrguLLguJjguLgKK+C4reC4quC4tAor4Lit4Liq4Li04LiI4Lij4Lij4Lii4Liy4LiB4Liy4LijCivguK3guKrguLTguJUKK+C4reC4quC4tOC4mOC4suC4o+C4sgor4Lit4Liq4Li04LmA4Lil4Liq4LiwCivguK3guKrguLXguJXguKLguLLguJnguLjguJ7guKLguLHguI3guIrguJnguLAKK+C4reC4quC4teC4leC4tAor4Lit4Liq4Li14LiV4Li04Lih4Lir4Liy4Liq4Liy4Lin4LiBCivguK3guKrguLgKK+C4reC4quC4uOC4iOC4tAor4Lit4Liq4Li44LiZ4Li14Lia4Liy4LiVCivguK3guKrguLjguKAKK+C4reC4quC4uOC4oC0KK+C4reC4quC4uOC4oOC4geC4o+C4o+C4oeC4kOC4suC4mQor4Lit4Liq4Li44Lig4Liq4Lix4LiN4LiN4LiyCivguK3guKrguLjguKMtCivguK3guKrguLjguKPguIHguLLguKIKK+C4reC4quC4uOC4o+C4tQor4Lit4Liq4Li44LmA4Lij4LioCivguK3guKrguLnguKMKK+C4reC5gOC4qgor4Lit4LmA4Liq4LiB4LiCLQor4Lit4LmA4Liq4LiB4LiC4Lia4Li44LiE4LiE4LilCivguK3guYDguKrguIHguILguLAKK+C4reC5gOC4quC4gi0KK+C4reC5gOC4quC4guC4sAor4Lit4LirCivguK3guKvguLHguIfguIHguLLguKMKK+C4reC4q+C4tAor4Lit4Lir4Li04LiH4Liq4LiyCivguK3guKvguLTguKfguLLguJXguIHguYLguKPguIQKK+C4reC4q+C4tuC4h+C4quC4sgor4Lit4LmA4Lir4LiV4Li44LiB4LiX4Li04LiQ4Li0CivguK3guYLguKvguKrguLTguIHguKPguKPguKEKK+C4reC4rQor4Lit4LmJ4LitCivguK3guYvguK0KK+C4reC4reC4gQor4Lit4Lit4LiB4LiB4Liz4Lil4Lix4LiHCivguK3guK3guIHguILguLjguJnguJnguLLguIcKK+C4reC4reC4geC5geC4guC4gQor4Lit4Lit4LiB4LmC4LiC4LiZCivguK3guK3guIHguYTguILguYnguKvguLHguKcKK+C4reC4reC4geC4h+C4suC4mQor4Lit4Lit4LiB4LiH4Li04LmJ4LinCivguK3guK3guIHguIrguLfguYjguK0KK+C4reC4reC4geC4i+C4tOC5gOC4iOC4mQor4Lit4Lit4LiB4LiL4Li04LmA4LiU4LiK4Lix4LiZCivguK3guK3guIHguYTguIvguJTguYwKK+C4reC4reC4geC4jeC4sgor4Lit4Lit4LiB4LiU4Lit4LiBCivguK3guK3guIHguJTguK3guIHguK3guK3guIHguJzguKUKK+C4reC4reC4geC4leC4seC4pwor4Lit4Lit4LiB4LiX4LmI4LiyCivguK3guK3guIHguJfguYjguLLguK3guK3guIHguJfguLLguIcKK+C4reC4reC4geC4l+C4uOC4geC4guC5jAor4Lit4Lit4LiB4LiX4Li44LiZCivguK3guK3guIHguJnguK3guIHguKvguJnguYnguLIKK+C4reC4reC4geC4muC4p+C4igor4Lit4Lit4LiB4Lib4Liy4LiBCivguK3guK3guIHguJzguLfguYjguJkKK+C4reC4reC4geC4neC4tQor4Lit4Lit4LiB4Lid4Li14LiU4Liy4LipCivguK3guK3guIHguJ7guKPguKPguKnguLIKK+C4reC4reC4geC5hOC4nwor4Lit4Lit4LiB4Lig4Liy4Lip4LiyCivguK3guK3guIHguKHguKvguLLguKrguKHguLLguITguKEKK+C4reC4reC4geC4ouC4seC4geC4qeC5jOC4reC4reC4geC5guC4guC4mQor4Lit4Lit4LiB4Lij4LiqCivguK3guK3guIHguKPguLHguJoKK+C4reC4reC4geC4o+C5ieC4suC4mQor4Lit4Lit4LiB4LmA4Lij4Li34Lit4LiZCivguK3guK3guIHguYHguKPguIcKK+C4reC4reC4geC5guC4o+C4hwor4Lit4Lit4LiB4Lik4LiX4LiY4Li04LmMCivguK3guK3guIHguKXguLLguKIKK+C4reC4reC4geC4peC4tOC4h+C4reC4reC4geC4hOC5iOC4suC4hwor4Lit4Lit4LiB4Lil4Li54LiBCivguK3guK3guIHguKfguLHguIcKK+C4reC4reC4geC5gOC4quC4teC4ouC4hwor4Lit4Lit4LiB4Lir4LiZ4LmJ4Liy4Lit4Lit4LiB4LiV4LiyCivguK3guK3guIHguKvguLHguJQKK+C4reC4reC4geC4q+C4suC4gQor4Lit4Lit4LiB4Lit4Liy4LiB4Liy4LioCivguK3guYjguK3guIcKK+C4reC5i+C4reC4hwor4Lit4LmJ4Lit4LiH4LmB4Lit4LmJ4LiHCivguK3guK3guYDguIjguYnguLIKK+C4reC4reC5gOC4i+C4suC4sAor4Lit4Lit4LiUCivguK3guK3guJTguYYKK+C4reC4reC4lOC4reC5ieC4reC4mQor4Lit4Lit4LiU4LmB4Lit4LiUCivguK3guK3guJTguYYg4LmB4Lit4LiU4LmGCivguK3guYrguK3guJTguYHguK3guYrguJQKK+C4reC5iuC4reC4lOC5hiDguYHguK3guYrguJTguYYKK+C4reC5ieC4reC4lOC4tOC4mgor4Lit4LmI4Lit4LiZCivguK3guYnguK3guJkKK+C4reC5iOC4reC4meC4guC5ieC4rQor4Lit4LmI4Lit4LiZ4LiE4Lin4Liy4LihCivguK3guYjguK3guJnguIjguLTguJXguK3guYjguK3guJnguYPguIgKK+C4reC5iOC4reC4meC5g+C4iAor4Lit4LmI4Lit4LiZ4LiK4LmJ4Lit4LiiCivguK3guK3guJnguIvguYwKK+C4reC4reC4meC4i+C4reC4mQor4Lit4LmI4Lit4LiZ4LiL4Lit4LiZCivguK3guYjguK3guJnguYTguJfguYkKK+C4reC5iOC4reC4meC4meC5ieC4reC4oQor4Lit4LmI4Lit4LiZ4Lib4Lin4LiB4LmA4Lib4Li14Lii4LiBCivguK3guYjguK3guJnguYDguJvguKXguLXguYnguKIKK+C4reC5iOC4reC4meC5gOC4m+C4teC4ouC4gQor4Lit4LmI4Lit4LiZ4LmA4Lie4Lil4Li14LiiCivguK3guYjguK3guJnguYLguKLguJkKK+C4reC5ieC4reC4meC4p+C4reC4mQor4Lit4LmI4Lit4LiZ4Lir4Lin4Liy4LiZCivguK3guYjguK3guJnguKvguLHguJQKK+C4reC5iOC4reC4meC4q+C4uQor4Lit4LmI4Lit4LiZ4LmE4Lir4LinCivguK3guYjguK3guJnguK3guIHguK3guYjguK3guJnguYPguIgKK+C4reC5ieC4reC4meC4reC4reC4lAor4Lit4LmI4Lit4LiZ4LmB4LitCivguK3guYnguK3guJnguYHguK3guYnguJkKK+C4reC4reC4n+C4n+C4tOC4qAor4Lit4Lit4LihCivguK3guYjguK3guKEKK+C4reC5ieC4reC4oQor4Lit4Lit4Lih4LiE4Lij4Lit4LihCivguK3guYnguK3guKHguITguYnguK3guKEKK+C4reC4reC4oeC4iuC4reC4oQor4Lit4Lit4Lih4LiL4Lit4LihCivguK3guK3guKHguKrguLTguJkKK+C4reC5ieC4reC4oeC4reC4gQor4Lit4Lit4Lih4Lit4LiUCivguK3guYnguK3guKHguYHguK3guYnguKEKK+C4reC5iOC4reC4ogor4Lit4LmJ4Lit4LiiCivguK3guYvguK3guKIKK+C4reC5ieC4reC4ouC5gOC4guC5ieC4suC4m+C4suC4geC4iuC5ieC4suC4hwor4Lit4LmJ4Lit4Lii4LiK4LmJ4Liy4LiHCivguK3guYnguK3guKLguYHguJTguIcKK+C4reC5ieC4reC4ouC5gOC4peC4sgor4Lit4LmJ4Lit4Lii4Liq4LmJ4Lit4LiiCivguK3guYnguK3guKLguK3guLTguYjguIcKK+C4reC4reC4quC5gOC4oeC4teC4ouC4oQor4Lit4LmJ4Lit4LmB4Lit4LmJCivguK3guYrguLAKK+C4reC4sOC4hOC4o+C5ieC4suC4pwor4Lit4Liw4LmA4LiE4Li34LmJ4LitCivguK3guLDguIjguLXguJkKK+C4reC4sOC5geC4iAor4Lit4Liw4LmA4LiL4LiX4Li04Lil4Li14LiZCivguK3guLDguJTguKPguLXguJnguLLguKXguLXguJkKK+C4reC4sOC4lOC4seC4gQor4Lit4Liw4LiU4Lix4LiB4Lit4Liw4LmA4LiU4Li14LmJ4LiiCivguK3guLDguJTguLHguIHguK3guLDguYDguJTguLfguYjguK0KK+C4reC4sOC4lOC4seC4geC4reC4sOC5geC4lOC5iQor4Lit4Liw4LiU4Li44LiHCivguK3guLDguJXguK3guKEKK+C4reC4sOC4meC4sAor4Lit4Liw4LiZ4Lix4LmJ4LiZCivguK3guLDguJnguLXguYkKK+C4reC4sOC4oeC4teC4muC4sgor4Lit4Liw4LmA4Lih4Lij4Li04LmA4LiL4Li14Lii4LihCivguK3guLDguKPguYnguLLguK3guKPguYjguLLguKEKK+C4reC4sOC5hOC4owor4Lit4Liw4Lil4Li44LmI4Lih4Lit4Lil4LmI4Lin4LiiCivguK3guLDguKXguLjguYnguKHguK3guKXguYjguKfguKIKK+C4reC4sOC4peC4ueC4oeC4tOC5gOC4meC4teC4ouC4oQor4Lit4Liw4Lir4LihCivguK3guLDguYTguKvguKXguYgKK+C4reC4sOC4reC4t+C5ieC4rQor4Lit4Liw4LmA4Lit4Li34LmJ4Lit4LiiCivguK3guLHguIEKK+C4reC4seC5ieC4gQor4Lit4Lix4LmJ4LiB4LmGCivguK3guLHguYrguIEKK+C4reC4seC5iuC4geC5hgor4Lit4Lix4LiB4LiB4LiwCivguK3guLHguIHguYLguIHguJjguLAKK+C4reC4seC4geC4ggor4Lit4Lix4LiB4LiC4LijLQor4Lit4Lix4LiB4LiC4Lij4Lin4Li04LiY4Li1CivguK3guLHguIHguILguKPguKfguLTguJrguLHguJXguLQKK+C4reC4seC4geC4guC4o+C4quC4oeC4seC4ogor4Lit4Lix4LiB4LiC4Lij4LiwCivguK3guLHguIHguILguKPguLLguJnguLjguIHguKPguKEKK+C4reC4seC4geC4guC4o+C4suC4meC4uOC4geC4o+C4oeC4oOC4ueC4oeC4tOC4qOC4suC4quC4leC4o+C5jAor4Lit4Lix4LiB4LmC4LiCCivguK3guLHguIHguYLguILguKDguLTguJPguLUKK+C4reC4seC4geC5guC4guC5gOC4oOC4k+C4tQor4Lit4Lix4LiB4Lip4LijCivguK3guLHguIHguKnguKMtCivguK3guLHguIHguKnguKPguIHguKXguLLguIcKK+C4reC4seC4geC4qeC4o+C4leC5iOC4swor4Lit4Lix4LiB4Lip4Lij4Lia4LiPCivguK3guLHguIHguKnguKPguKXguLHguIHguKnguJPguYwKK+C4reC4seC4geC4qeC4o+C5gOC4peC4ggor4Lit4Lix4LiB4Lip4Lij4Lio4Liy4Liq4LiV4Lij4LmMCivguK3guLHguIHguKnguKPguKrguKHguLHguKIKK+C4reC4seC4geC4qeC4o+C4quC4suC4quC4meC5jAor4Lit4Lix4LiB4Lip4Lij4Liq4Li54LiHCivguK3guLHguIHguKnguLAKK+C4reC4seC4geC5gOC4qeC4suC4q+C4tOC4k+C4tQor4Lit4Lix4LiB4LmA4Liq4LiaCivguK3guLHguIHguK3guYjguKfguJkKK+C4reC4seC4hOC4hOC4sAor4Lit4Lix4LiE4LiE4Li0CivguK3guLHguITguITguLUKK+C4reC4seC4hOC4hOC4teC4oOC4seC4ogor4Lit4Lix4LiE4LiZ4Li0CivguK3guLHguITguJnguLTguITguJPguLAKK+C4reC4seC4hOC4meC4tOC4nuC5iOC4suC4q+C5jAor4Lit4Lix4LiE4LiZ4Li04Lij4Li44LiX4LijCivguK3guLHguITguJnguLTguKfguLLguKvguLAKK+C4reC4seC4hOC4meC4tOC5guC4q+C4leC4owor4Lit4Lix4LiE4LiZ4Li1CivguK3guLHguITguKMtCivguK3guLHguITguKPguIrguLLguKLguLIKK+C4reC4seC4hOC4o+C4oeC4q+C4suC5gOC4quC4meC4suC4muC4lOC4tQor4Lit4Lix4LiE4Lij4Lih4LmA4Lir4Liq4Li1CivguK3guLHguITguKPguKPguLLguIrguJfguLnguJUKK+C4reC4seC4hOC4o+C4quC4oeC4k+C4l+C4ueC4lQor4Lit4Lix4LiHCivguK3guLHguIfguIHguYwKK+C4reC4seC4h+C4geC4meC4sAor4Lit4Lix4LiH4LiB4Lik4LipCivguK3guLHguIfguIHguKfguJQKK+C4reC4seC4h+C4geC4sOC4peC4uOC4hwor4Lit4Lix4LiH4LiB4LiyCivguK3guLHguIfguIHguLLguJoKK+C4reC4seC4h+C4geC4suC4muC4neC4o+C4seC5iOC4hwor4Lit4Lix4LiH4LiB4Liy4Lia4Lir4LiZ4Li5CivguK3guLHguIfguIHguLjguKMKK+C4reC4seC4h+C4geC4uOC4qAor4Lit4Lix4LiH4LiB4Li54LijCivguK3guLHguIfguITguJPguLAKK+C4reC4seC4h+C4hOC4k+C4sgor4Lit4Lix4LiH4LiE4Liy4LijCivguK3guLHguIfguITguLLguKoKK+C4reC4seC4h+C4hOC4teC4o+C4qgor4Lit4Lix4LiH4LiE4Li44LiQCivguK3guLHguIfguIbguLLguJUKK+C4reC4seC5ieC4h+C4ouC4teC5iAor4Lit4Lix4LmJ4LiH4LmC4Lil4LmICivguK3guLHguIfguKjguLgKK+C4reC4seC4h+C4qOC4uOC4gQor4Lit4Lix4LiH4Lio4Li44LiY4LijCivguK3guLHguIfguKjguLjguKHguLLguKXguLUKK+C4reC4seC4h+C4qi0KK+C4reC4seC4h+C4quC4geC4uOC4jwor4Lit4Lix4LiH4Liq4LiV4Lij4Lit4LihCivguK3guLHguIfguKrguJnguLIKK+C4reC4seC4h+C4quC4oOC4suC4o+C4sAor4Lit4Lix4LiH4Liq4LiwCivguK3guLHguIfguKrguLIKK+C4reC4seC4iOC4geC4peC4seC4mgor4Lit4Lix4LiI4LiI4Lix4LiZ4LiV4LmMCivguK3guLHguIjguIjguLHguKIKK+C4reC4seC4iOC4iOC4tAor4Lit4Lix4LiI4LiI4Li04Lih4LiyCivguK3guLHguIjguIjguLjguJUKK+C4reC4seC4iOC5gOC4iOC4geC4sAor4Lit4Lix4LiI4LiJ4Lij4LiyCivguK3guLHguIjguInguKPguLTguKItCivguK3guLHguIjguInguKPguLTguKLguJrguLjguITguITguKUKK+C4reC4seC4iOC4ieC4o+C4tOC4ouC4oOC4suC4ngor4Lit4Lix4LiI4LiJ4Lij4Li04Lii4Lil4Lix4LiB4Lip4LiT4LmMCivguK3guLHguIjguInguKPguLTguKLguKXguLHguIHguKnguJPguLAKK+C4reC4seC4iOC4ieC4o+C4tOC4ouC4sAor4Lit4Lix4LiI4LiZ4LiyCivguK3guLHguIrguIzguLHguJXguJXguLTguIEtCivguK3guLHguIrguIzguLIKK+C4reC4seC4iuC4jOC4suC4iOC4suC4owor4Lit4Lix4LiK4LiM4Liy4Lio4Lix4LiiCivguK3guLHguIrguIzguLLguKrguLHguKIKK+C4reC4seC4jS0KK+C4reC4seC4jeC4guC4ouC4oQor4Lit4Lix4LiN4LiK4LiZ4LiwCivguK3guLHguI3guIrguKXguLUKK+C4reC4seC4jeC4iuC4seC4mQor4Lit4Lix4LiN4LiK4Lix4LiZ4Lib4LmI4LiyCivguK3guLHguI3guYDguIrguLTguI0KK+C4reC4seC4jeC4jeC4sAor4Lit4Lix4LiN4LiU4Li04LiV4LiW4Li14Lii4LmMCivguK3guLHguI3guYDguJTguLXguKLguKPguJbguLXguKLguYwKK+C4reC4seC4jeC4m+C4o+C4sOC4geC4suC4qAor4Lit4Lix4LiN4Lib4Lij4Liw4LiB4Liy4Lio4LmA4LiU4Li14LmI4Lii4LinCivguK3guLHguI3guKHguJPguLUKK+C4reC4seC4jeC4oeC4seC4jS0KK+C4reC4seC4jeC4o+C4ueC4mwor4Lit4Lix4LiPCivguK3guLHguI/guJAtCivguK3guLHguI/guJDguLAKK+C4reC4seC4j+C4kOC4seC4h+C4hOC5jAor4Lit4Lix4LiP4LiQ4Lix4LiH4LiE4Li04LiB4Lih4Lij4Lij4LiECivguK3guLHguI/guJDguLHguIfguKrguLAKK+C4reC4seC4j+C4meC4sgor4Lit4Lix4LiQCivguK3guLHguJDguYDguITguKPguLLguLDguKvguYwKK+C4reC4seC4kOC4l+C4tOC4qAor4Lit4Lix4LiQ4Lia4Lij4Li04LiC4Liy4LijCivguK3guLHguJDguJrguLLguJkKK+C4reC4seC4kOC4oS0KK+C4reC4seC4kOC4oeC4sAor4Lit4Lix4LiQ4Lii4Liy4Lii4LiL4Li34LmJ4Lit4LiC4LiZ4Lih4Lii4Liy4LiiCivguK3guLHguJDguKjguIEKK+C4reC4seC4kOC4rOC4qgor4Lit4Lix4LiQ4Li0CivguK3guLHguJDguLTguKHguLTguI3guIrguLAKK+C4reC4seC4kOC4tOC4quC4seC4k+C4kOC4suC4mQor4Lit4Lix4LiSLQor4Lit4Lix4LiS4LiI4Lix4LiZ4LiX4Lij4LmMCivguK3guLHguJLguKDguLLguIQKK+C4reC4seC4kuC4oeC4k+C4keC4pQor4Lit4Lix4LiS4Lih4Liy4LiqCivguK3guLHguJLguKPguLHguJXguJXguLQKK+C4reC4seC4k+C4kS0KK+C4reC4seC4k+C4keC5guC4geC4qgor4Lit4Lix4LiT4LiR4LiK4LiwCivguK3guLHguJPguJHguLAKK+C4reC4seC4k+C4keC4suC4geC4suC4owor4Lit4Lix4LiT4LiT4LieCivguK3guLHguJQKK+C4reC4seC4lOC4geC5iuC4reC4muC4m+C4teC5iQor4Lit4Lix4LiU4LmB4LiICivguK3guLHguJTguInguLXguJQKK+C4reC4seC4lOC5geC4muC4leC5gOC4leC4reC4o+C4teC5iAor4Lit4Lix4LiU4LmB4Lic4LmI4LiZ4LmA4Liq4Li14Lii4LiHCivguK3guLHguJTguKPguLnguJsKK+C4reC4seC4lOC4peC4oQor4Lit4Lix4LiU4Liq4Liz4LmA4LiZ4LiyCivguK3guLHguJTguYDguKrguLXguKLguIcKK+C4reC4seC4lOC4reC4seC5ieC4mQor4Lit4Lix4LiU4Lit4Lix4LmJ4LiZ4LiV4Lix4LiZ4LmD4LiICivguK3guLHguJTguYHguK0KK+C4reC4seC4lS0KK+C4reC4seC4leC4hOC4seC4lAor4Lit4Lix4LiV4LiK4Li14Lin4Lib4Lij4Liw4Lin4Lix4LiV4Li0CivguK3guLHguJXguJXguLAKK+C4reC4seC4leC4leC4sgor4Lit4Lix4LiV4LiV4Liy4LiY4Li04Lib4LmE4LiV4LiiCivguK3guLHguJXguJbguYwKK+C4reC4seC4leC4luC4sAor4Lit4Lix4LiV4LiZ4Lix4LiiCivguK3guLHguJXguYLguJnguKHguLHguJXguLQKK+C4reC4seC4leC4oOC4suC4ngor4Lit4Lix4LiV4Lij4LiK4LiwCivguK3guLHguJXguKPguLIKK+C4reC4seC4leC4o+C4suC5gOC4o+C5h+C4pwor4Lit4Lix4LiV4Lij4Liy4Liq4LmI4Lin4LiZCivguK3guLHguJXguKXguLHguJQKK+C4reC4seC4leC4p+C4tOC4meC4tOC4muC4suC4leC4geC4o+C4o+C4oQor4Lit4Lix4LiV4Lir4Li04LiVLQor4Lit4Lix4LiV4LmA4Lir4LiV4Li4CivguK3guLHguJfguJfguLIKK+C4reC4seC4l+C4mC0KK+C4reC4seC4l+C4mOC5jAor4Lit4Lix4LiX4LiY4LiE4LiVCivguK3guLHguJfguJjguITguLkKK+C4reC4seC4l+C4mOC4sgor4Lit4Lix4LiX4LiY4Liy4LiZCivguK3guLHguJfguJjguLLguKLguLgKK+C4reC4seC4mOC4ouC4suC4leC4oeC4p+C4tOC4l+C4ouC4sgor4Lit4Lix4LiY4Lii4Liy4LiiCivguK3guLHguJjguKLguLLguKjguLHguKIKK+C4reC4seC4mQor4Lit4Lix4LmJ4LiZCivguK3guLHguYvguJkKK+C4reC4seC4meC4lOC4gQor4Lit4Lix4LiZ4LiU4LijCivguK3guLHguJnguJTguLHguJoKK+C4reC4seC4meC4lOC5iuC4suC4gQor4Lit4Lix4LiZ4LmC4LiU4LmK4LiBCivguK3guLHguJnguJUtCivguK3guLHguJnguJXguIEKK+C4reC4seC4meC4leC4geC4suC4pQor4Lit4Lix4LiZ4LiV4LiB4Li04Lij4Li04Lii4LiyCivguK3guLHguJnguJXguITguLjguJMKK+C4reC4seC4meC4leC4hOC4uQor4Lit4Lix4LiZ4LiV4LiK4Liy4LiV4Li0CivguK3guLHguJnguJXguKMKK+C4reC4seC4meC4leC4oy0KK+C4reC4seC4meC4leC4o+C4geC4suC4o+C4k+C5jAor4Lit4Lix4LiZ4LiV4Lij4LiY4Liy4LiZCivguK3guLHguJnguJXguKPguKDguLLguIQKK+C4reC4seC4meC4leC4o+C4p+C4suC4quC4gQor4Lit4Lix4LiZ4LiV4Lij4LiyCivguK3guLHguJnguJXguKPguLLguKIKK+C4reC4seC4meC4leC4o+C4suC4ouC4tOC4geC4mOC4o+C4o+C4oQor4Lit4Lix4LiZ4LiV4Lil4Li04LiB4LiC4LiwCivguK3guLHguJnguJXguLAKK+C4reC4seC5ieC4meC4leC4seC5ieC4mQor4Lit4Lix4LiZ4LiV4Li04LiBCivguK3guLHguJnguJXguLTguKEtCivguK3guLHguJnguJXguLTguKHguKrguLHguIgKK+C4reC4seC4meC4leC4tOC4oeC4sAor4Lit4Lix4LmJ4LiZ4LiV4Li54LmJCivguK3guLHguJnguYDguJUKK+C4reC4seC4meC5gOC4leC4muC4uOC4o+C4sAor4Lit4Lix4LiZ4LmA4LiV4Lia4Li44Lij4Li04LiBCivguK3guLHguJnguYDguJXguJrguLjguKPguLTguIHguLIKK+C4reC4seC4meC5gOC4leC4m+C4uOC4o+C4sAor4Lit4Lix4LiZ4LmA4LiV4Lib4Li44Lij4Li04LiBCivguK3guLHguJnguYDguJXguJvguLjguKPguLTguIHguLIKK+C4reC4seC4meC5gOC4leC4p+C4suC4quC4tOC4gQor4Lit4Lix4LiZ4LmC4LiVCivguK3guLHguJnguYLguJXguIrguJkKK+C4reC4seC4meC5guC4leC4meC4suC4l+C4tQor4Lit4Lix4LiZ4LmB4LiW4LmJ4LiHCivguK3guLHguJnguJfguLgKK+C4reC4seC4meC5guC4l+C4pQor4Lit4Lix4LiZ4LiYLQor4Lit4Lix4LiZ4LiY4LiB4Liy4LijCivguK3guLHguJnguJjguJ7guLLguKUKK+C4reC4seC4meC4mOC4tOC4geC4sgor4Lit4Lix4LiZ4LiZ4LiwCivguK3guLHguJnguJnguLIKK+C4reC4seC4meC5gOC4m+C5h+C4mQor4Lit4Lix4LiZ4LmA4Lib4LmH4LiZ4LmE4LibCivguK3guLHguJnguYLguKLguJnguKItCivguK3guLHguJnguYLguKLguJnguKLguLAKK+C4reC4seC4meC4p+C4oi0KK+C4reC4seC4meC4p+C4seC4ogor4Lit4Lix4LiZ4Lin4LmI4LiyCivguK3guLHguJnguYDguKfguKoKK+C4reC4seC5ieC4meC4reC5ieC4mQor4Lit4Lix4LiaCivguK3guLHguJrguIjguJkKK+C4reC4seC4muC5gOC4ieC4sgor4Lit4Lix4Lia4Lib4Liy4LiHCivguK3guLHguJrguK3guLLguKIKK+C4reC4seC4my0KK+C4reC4seC4m+C4geC4sAor4Lit4Lix4Lib4LiB4Liy4LijCivguK3guLHguJvguI/guLTguIbguLAKK+C4reC4seC4m+C4j+C4tOC4oOC4suC4hAor4Lit4Lix4Lib4Lib4LiwCivguK3guLHguJvguYDguJvguKvguLQKK+C4reC4seC4m+C4oOC4suC4hOC4ouC5jAor4Lit4Lix4Lib4Lih4LiH4LiE4LilCivguK3guLHguJvguKLguKgKK+C4reC4seC4m+C4o+C4sOC4oeC4suC4kwor4Lit4Lix4Lib4Lij4Liw4Lih4Liy4LiXCivguK3guLHguJvguKPguLDguYTguKHguKIKK+C4reC4seC4m+C4o+C4suC4iuC4seC4ogor4Lit4Lix4Lib4Lij4Li14Lii4LmMCivguK3guLHguJvguKXguLHguIHguKnguJPguYwKK+C4reC4seC4m+C4quC4owor4Lit4Lix4Lie4Lie4Li44LiXCivguK3guLHguJ7guYLguJ7guKvguLLguKPguLTguIEKK+C4reC4seC4nuC4oOC4seC4meC4lOC4owor4Lit4Lix4Lie4Lig4Lix4LiZ4LiV4LijLQor4Lit4Lix4Lie4Lig4Liy4LiZCivguK3guLHguJ7guKDguLLguKoKK+C4reC4seC4oQor4Lit4Lix4Lih4LieLQor4Lit4Lix4Lih4Lie4LijCivguK3guLHguKHguJ7guKTguIHguKnguYwKK+C4reC4seC4oeC4nuC4p+C4seC4mQor4Lit4Lix4Lih4Lie4Lin4LiyCivguK3guLHguKHguJ7guLIKK+C4reC4seC4oeC4nuC4suC4lQor4Lit4Lix4Lih4Lie4Li04LilCivguK3guLHguKHguJ7guLgKK+C4reC4seC4oeC4nuC4uOC4igor4Lit4Lix4Lih4Lie4Li44LiK4Li04LiZ4Li1CivguK3guLHguKHguJ7guLjguJcKK+C4reC4seC4ouC4geC4sAor4Lit4Lix4Lii4LiB4LiyCivguK3guLHguKLguIHguLLguKMKK+C4reC4seC4ouC4geC4tQor4Lit4Lix4Lii4Lii4LiwCivguK3guLHguKLguKLguLTguIHguLIKK+C4reC4seC4peC4geC4uOC4o+C4reC4suC4mQor4Lit4Lix4Lil4LiV4Lij4Liy4LmE4Lin4LmC4Lit4LmA4Lil4LiVCivguK3guLHguYjguKcKK+C4reC4seC4qOC4iOC4o+C4o+C4ouC5jAor4Lit4Lix4Lio4LmA4LiI4Lij4Li14Lii4LmMCivguK3guLHguKjguKctCivguK3guLHguKjguKfguYLguIHguKfguLTguJcKK+C4reC4seC4qOC4p+C4oeC4uOC4ggor4Lit4Lix4Lio4Lin4Lih4Li44LiC4Li1CivguK3guLHguKjguKfguYDguKHguJgKK+C4reC4seC4qOC4p+C4ouC4uOC4igor4Lit4Lix4Lio4Lin4Liy4LiZ4Li24LiBCivguK3guLHguKjguKfguLTguJkKK+C4reC4seC4qOC4p+C4tOC4meC4tQor4Lit4Lix4Lip4LiOLQor4Lit4Lix4Lip4LiO4LiB4LiJ4Lix4LiZ4LiX4LmMCivguK3guLHguKnguI7guKHguIfguITguKUKK+C4reC4seC4qeC4juC4oeC4sAor4Lit4Lix4Lip4LiO4Liy4LiH4LiE4Li04LiB4Lih4Lij4Lij4LiECivguK3guLHguKnguI7guLLguKLguLjguJgKK+C4reC4seC4qeC4juC4suC4p+C4uOC4mAor4Lit4Lix4Lip4LiP4Lih4LiH4LiE4LilCivguK3guLHguKotCivguK3guLHguKrguJTguIcKK+C4reC4seC4quC4lOC4h+C4hOC4lQor4Lit4Lix4Liq4LiU4LihCivguK3guLHguKrguJTguKMKK+C4reC4seC4quC4meC4tQor4Lit4Lix4Liq4Lih4Li04Lih4Liy4LiZ4LiwCivguK3guLHguKrguKHguLjguILguLUKK+C4reC4seC4quC4quC4meC4tQor4Lit4Lix4Liq4Liq4LiwCivguK3guLHguKrguKrguLHguJXguJbguJ7guKTguIHguKnguYwKK+C4reC4seC4quC4quC4suC4meC4tOC4gQor4Lit4Lix4Liq4Liq4Liy4LiZ4Li14LiBCivguK3guLHguKrguKrguLLguJnguLbguIEKK+C4reC4seC4quC4quC4suC4quC4sAor4Lit4Lix4Liq4Liq4Li4CivguK3guLHguKrguKrguLjguIrguKUKK+C4reC4seC4quC4quC4uOC4mOC4suC4o+C4sgor4Lit4LiyCivguK3guYjguLIKK+C4reC5ieC4sgor4Lit4Liy4LiB4LijCivguK3guLLguIHguKPguYHguKrguJXguKHguJvguYwKK+C4reC4suC4geC4seC4h+C4guC4sgor4Lit4Liy4LiB4Lix4LibCivguK3guLLguIHguLHguJvguIHguLTguKPguLTguKLguLIKK+C4reC4suC4geC4seC4oeC4m+C4meC4sAor4Lit4Liy4LiB4Lix4Lih4Lib4LiwCivguK3guLLguIHguLLguKMKK+C4reC4suC4geC4suC4oy0KK+C4reC4suC4geC4suC4o+C4meC4suC4oQor4Lit4Liy4LiB4Liy4LioCivguK3guLLguIHguLLguKgtCivguK3guLLguIHguLLguKjguJjguLLguJXguLgKK+C4reC4suC4geC4suC4qOC4ouC4suC4mQor4Lit4Liy4LiB4Li54LilCivguK3guLLguYDguIHguLXguKLguKPguJPguYwKK+C4reC4suC4guC4ouC4suC4lQor4Lit4Liy4LiC4Lii4Liy4LiZCivguK3guLLguITguYDguJnguKLguYwKK+C4reC4suC4hOC4oQor4Lit4Liy4LiE4Lij4Lir4Liy4Lii4LiT4Li1CivguK3guLLguITguLHguJnguJXguLjguIEtCivguK3guLLguITguLHguJnguJXguLjguIHguKDguLHguJUKK+C4reC4suC4hOC4seC4meC4leC4uOC4geC4p+C4seC4leC4owor4Lit4Liy4LiE4Lix4LiZ4LiV4Li44LiB4LiwCivguK3guLLguITguLLguKMKK+C4reC4suC4hOC4suC4o+C4iuC4uOC4lAor4Lit4Liy4LiG4Liy4LiVCivguK3guLLguIbguLLguJXguJnguLAKK+C4reC4suC4huC4suC4leC4oeC4suC4lOC4o+C5ieC4suC4ogor4Lit4LmI4Liy4LiHCivguK3guYnguLLguIcKK+C4reC5iOC4suC4h+C5gOC4geC5h+C4muC4meC5ieC4swor4Lit4Liy4LiH4LiC4LiZ4Liy4LiHCivguK3guYnguLLguIfguKfguYnguLLguIcKK+C4reC5ieC4suC4h+C4reC4tOC4hwor4Lit4Liy4LiICivguK3guLLguIjguKEKK+C4reC4suC4iOC4oeC4mQor4Lit4Liy4LiI4Lij4Li04LiiLQor4Lit4Liy4LiI4Lij4Li04Lii4Lin4Lix4LiV4LijCivguK3guLLguIjguKPguLTguKLguKfguLLguJcKK+C4reC4suC4iOC4q+C4suC4jQor4Lit4Liy4LiI4Lit4LiHCivguK3guLLguIjguYDguK3guLfguYnguK3guKEKK+C4reC4suC4iOC4suC4lAor4Lit4Liy4LiI4Liy4LijCivguK3guLLguIjguLLguKMtCivguK3guLLguIjguLLguKPguKLguYwKK+C4reC4suC4iOC4suC4o+C4tQor4Lit4Liy4LiI4Li04LiTCivguK3guLLguIjguLTguJMtCivguK3guLLguIjguLTguJPguKrguKHguLLguIjguLLguKMKK+C4reC4suC5gOC4iOC4teC4ouC4mQor4Lit4Liy4LiK4LiN4Lix4Lib4LiV4Li0CivguK3guLLguIrguI3guLHguJvguJXguLTguYwKK+C4reC4suC4iuC4jeC4sgor4Lit4Liy4LiK4LiN4Liy4LiB4LijCivguK3guLLguIrguI3guLLguIHguKPguKPguKEKK+C4reC4suC4iuC4jeC4suC4geC4o+C4quC4h+C4hOC4o+C4suC4oQor4Lit4Liy4LiK4LiN4Liy4Lia4LiXCivguK3guLLguIrguI3guLLguJrguLHguJXguKMKK+C4reC4suC4iuC4jeC4suC4qOC4tuC4gQor4Lit4Liy4LiK4LiN4Liy4Liq4Li04LiX4LiY4Li04LmMCivguK3guLLguIrguKfguLAKK+C4reC4suC4iuC4sgor4Lit4Liy4LiK4Liy4LiZCivguK3guLLguIrguLLguJnguLQKK+C4reC4suC4iuC4suC5hOC4meC4ogor4Lit4Liy4LiK4Li14LieCivguK3guLLguIrguLXguKctCivguK3guLLguIrguLXguKfguIEKK+C4reC4suC4iuC4teC4p+C4qOC4tuC4geC4qeC4sgor4Lit4Liy4LiK4Li14Lin4LiwCivguK3guYnguLLguIvguYjguLIKK+C4reC4suC4jeC4sgor4Lit4Liy4LiN4Liy4Liq4Li04LiX4LiY4Li04LmMCivguK3guLLguI/guLLguJnguLIKK+C4reC4suC4k+C4seC4leC4tAor4Lit4Liy4LiT4Lix4LiV4Li04Liq4Lix4LiN4LiN4Liy4LiTCivguK3guLLguJPguLIKK+C4reC4suC4k+C4suC5gOC4geC4qeC4leC4owor4Lit4Liy4LiT4Liy4LmA4LiC4LiVCivguK3guLLguJPguLLguIjguLHguIHguKMKK+C4reC4suC4k+C4suC4meC4tOC4hOC4oQor4Lit4Liy4LiT4Liy4Lib4Lij4Liw4LiK4Liy4Lij4Liy4Lip4LiO4Lij4LmMCivguK3guLLguJPguLLguJvguKPguLDguYLguKLguIrguJnguYwKK+C4reC4suC4lAor4Lit4Liy4LiU4LmGCivguK3guLLguJTguLjguKMKK+C4reC4suC4lOC4uOC4peC4ouC5jAor4Lit4Liy4LiU4Li54LijCivguK3guLLguJTguLnguKXguKLguYwKK+C4reC4suC5gOC4lOC5iuC4sAor4Lit4Liy4LiV4LihLQor4Lit4Liy4LiV4Lih4LiX4Liy4LiZCivguK3guLLguJXguKHguKDguLLguJ4KK+C4reC4suC4leC4oeC4seC4mQor4Lit4Liy4LiV4Lih4LiyCivguK3guLLguJXguLjguKMKK+C4reC4suC4luC4o+C4o+C4nuC5jAor4Lit4Liy4LiW4Lij4Lij4Lie4LiT4LmMCivguK3guLLguJbguKPguKPguJ7guJPguLAKK+C4reC4suC4l+C4owor4Lit4Liy4LiX4Liy4LiV4LiyCivguK3guLLguJfguLLguJkKK+C4reC4suC4l+C4tAor4Lit4Liy4LiX4Li04LiV4LiiLQor4Lit4Liy4LiX4Li04LiV4Lii4LmMCivguK3guLLguJfguLTguJXguKLguKHguJPguJHguKUKK+C4reC4suC4l+C4tOC4leC4ouC4p+C4suC4owor4Lit4Liy4LiX4Li14LiZ4LieCivguK3guLLguJfguLXguJnguKcKK+C4reC4suC4l+C4tuC4gQor4Lit4Liy4LmA4LiX4LioCivguK3guLLguJjguKPguKPguKEKK+C4reC4suC4mOC4o+C4o+C4oeC5jAor4Lit4Liy4LiY4Lij4Lij4Lih4Li04LiBCivguK3guLLguJjguKPguKPguKHguLbguIEKK+C4reC4suC4mOC4suC4mQor4Lit4Liy4LiY4Liy4LijCivguK3guLLguJkKK+C4reC5iOC4suC4mQor4Lit4Liy4LiZ4LiBCivguK3guLLguJnguJkKK+C4reC4suC4meC4meC4l+C5jAor4Lit4Liy4LiZ4Lih4LmJ4LiyCivguK3guYjguLLguJnguYDguKXguYjguJkKK+C4reC4suC4meC4sAor4Lit4Liy4LiZ4Lix4LiZ4LiX4LmMCivguK3guLLguJnguLHguJnguJfguJnguLAKK+C4reC4suC4meC4seC4oQor4Lit4Liy4LiZ4Liy4Lib4Liy4LiZCivguK3guLLguJnguLLguJvguLLguJktCivguK3guLLguJnguLLguJvguLLguJnguLHguKrguKrguJXguLQKK+C4reC4suC4meC4swor4Lit4Liy4LiZ4Li04LiBCivguK3guLLguJnguLTguKrguIfguKrguYwKK+C4reC4suC4meC4uOC4oOC4suC4ngor4Lit4Liy4LiZ4Li44Lig4Liy4Lin4LiwCivguK3guLLguJoKK+C4reC4suC4muC5geC4lOC4lAor4Lit4Liy4Lia4LiZ4LmJ4Liz4Lij4LmJ4Lit4LiZ4Lih4Liy4LiB4LmI4Lit4LiZCivguK3guLLguJrguYDguKvguIfguLfguYjguK3guJXguYjguLLguIfguJnguYnguLMKK+C4reC4suC4muC5gOC4reC4tOC4mgor4Lit4Liy4Lia4Lix4LiV4Li0CivguK3guLLguJrguLHguJkKK+C4reC4suC4m+C4k+C4geC4sAor4Lit4Liy4Lib4LiT4LiwCivguK3guLLguJvguLAKK+C4reC4suC4m+C4suC4mS0KK+C4reC4suC4m+C4suC4meC4oOC4ueC4oeC4tAor4Lit4Liy4Lib4Liy4LiZ4Lio4Liy4Lil4LiyCivguK3guLLguJvguLLguJnguLAKK+C4reC4suC5guC4mwor4Lit4Liy4LmC4Lib4LiB4Liq4Li04LiTCivguK3guLLguYLguJvguJjguLLguJXguLgKK+C4reC4suC4nuC4seC4lAor4Lit4Liy4Lie4Lix4LiX4LiY4LmMCivguK3guLLguJ7guLHguJnguJjguYwKK+C4reC4suC4nuC4seC4meC4mOC4meC4sAor4Lit4Liy4Lie4Liy4LiYCivguK3guLLguJ7guLLguJjguLTguIEKK+C4reC4suC4nuC4suC4mOC4tuC4gQor4Lit4Liy4Lie4Li04LilCivguK3guLLguYDguJ7guKgKK+C4reC4suC4oOC4o+C4k+C5jAor4Lit4Liy4Lig4Lix4LieCivguK3guLLguKDguLHguKrguKPguLAKK+C4reC4suC4oOC4sgor4Lit4Liy4Lig4Liy4LiB4LijCivguK3guLLguKDguLLguKoKK+C4reC4suC4oQor4Lit4LmI4Liy4LihCivguK3guLLguKHguKXguIEKK+C4reC4suC4oeC4seC4ogor4Lit4Liy4Lih4Li04LipCivguK3guLLguKHguLTguKoKK+C4reC4suC4ogor4Lit4LmJ4Liy4LiiCivguK3guYnguLLguKLguILguLTguIEKK+C4reC5ieC4suC4ouC5gOC4guC5iQor4Lit4LmJ4Liy4Lii4LiH4Lix4LmI4LinCivguK3guYnguLLguKLguYDguIjguLXguYrguKLguKcKK+C4reC5ieC4suC4ouC4iuC4t+C5iOC4mQor4Lit4Liy4Lii4LiVCivguK3guLLguKLguJXguJnguLAKK+C4reC4suC4ouC4mQor4Lit4LmJ4Liy4Lii4Lia4LmJ4LiyCivguK3guYnguLLguKLguYDguJrguLXguYnguKLguKcKK+C4reC5ieC4suC4ouC4m+C5iuC4reC4gQor4Lit4Liy4Lii4LmA4Lir4LiZ4Li14Lii4LihCivguK3guYnguLLguKLguK3guYnguLLguKcKK+C4reC4suC4ouC4seC4lAor4Lit4Liy4Lii4Lix4LiVCivguK3guLLguKLguLHguJkKK+C4reC4suC4ouC4suC4iOC4meC4sAor4Lit4Liy4Lii4Liy4LiZCivguK3guLLguKLguLgKK+C4reC4suC4ouC4uOC4geC4leC4geC4sAor4Lit4Liy4Lii4Li44LiB4Lip4Lix4LiiCivguK3guLLguKLguLjguILguLHguKIKK+C4reC4suC4ouC4uOC4hOC4p+C4suC4oQor4Lit4Liy4Lii4Li44LiV4LiB4LiwCivguK3guLLguKLguLjguJgKK+C4reC4suC4ouC4uOC4oy0KK+C4reC4suC4ouC4uOC4o+C5geC4nuC4l+C4ouC5jAor4Lit4Liy4Lii4Li44Lij4LmA4Lin4LiKCivguK3guLLguKLguLjguKPguYDguKfguJcKK+C4reC4suC4ouC4uOC4o+C4qOC4suC4quC4leC4o+C5jAor4Lit4Liy4Lii4Li44Lin4Lix4LiS4LiZ4LiwCivguK3guLLguKLguLjguKkKK+C4reC4suC4o+C5jOC4geC4reC4mQor4Lit4Liy4Lij4LiU4Li1CivguK3guLLguKPguYzguJUKK+C4reC4suC4o+C4leC4tAor4Lit4Liy4Lij4LiX4Lij4LiyCivguK3guLLguKPguYzguKEKK+C4reC4suC4o+C4oeC4k+C5jAor4Lit4Liy4Lij4Lih4LiT4LmM4LiC4Lix4LiZCivguK3guLLguKPguKItCivguK3guLLguKPguKLguIrguJkKK+C4reC4suC4o+C4ouC4iuC4suC4leC4tAor4Lit4Liy4Lij4Lii4LiY4Lij4Lij4LihCivguK3guLLguKPguKLguJvguKPguLDguYDguJfguKgKK+C4reC4suC4o+C4ouC4sAor4Lit4Liy4Lij4Lii4Lix4LiZCivguK3guLLguKPguLAKK+C4reC4suC4o+C4seC4geC4guC4sgor4Lit4Liy4Lij4Lix4LiB4Lip4LmMCivguK3guLLguKPguLHguI0KK+C4reC4suC4o+C4seC4jeC4jeC4tOC4gQor4Lit4Liy4Lij4Lix4LiT4Lii4LmMCivguK3guLLguKPguLHguJPguKLguIHguLAKK+C4reC4suC4o+C4seC4leC4tAor4Lit4Liy4Lij4Lix4Lih4LigLQor4Lit4Liy4Lij4Lix4Lih4Lig4LmMCivguK3guLLguKPguLHguKHguKDguIHguJbguLIKK+C4reC4suC4o+C4seC4oeC4oOC4muC4lwor4Lit4Liy4Lij4Liy4LiY4LiZ4LmMCivguK3guLLguKPguLLguJjguJnguLIKK+C4reC4suC4o+C4suC4mOC4meC4suC4mOC4o+C4o+C4oQor4Lit4Liy4Lij4Liy4LiY4LiZ4Liy4Lie4Lij4Liw4Lib4Lij4Li04LiV4LijCivguK3guLLguKPguLLguJjguJnguLLguKjguLXguKUKK+C4reC4suC4o+C4suC4oQor4Lit4Liy4Lij4Liy4Lih4Li04LiBCivguK3guLLguKPguLUKK+C4reC4suC4o+C4teC4reC4suC4o+C4reC4mgor4Lit4Liy4Lij4Li44LihCivguK3guLLguKXguJvguJnguYwKK+C4reC4suC4peC4m+C4meC4sAor4Lit4Liy4Lil4Liw4Lin4Liy4LiUCivguK3guLLguKXguLHguIHguKnguJPguYwKK+C4reC4suC4peC4seC4ogor4Lit4Liy4Lil4Lix4Lii4Lit4Liy4Lin4Lij4LiT4LmMCivguK3guLLguKXguLHguKcKK+C4reC4suC4peC4tAor4Lit4Liy4Lil4Li1CivguK3guLLguYLguKXguIEKK+C4reC4suC5guC4peC4gS0KK+C4reC4suC5guC4peC4geC4geC4quC4tOC4kwor4Lit4Liy4LmC4Lil4LiB4LiZ4LiwCivguK3guLLguKcKK+C4reC5iOC4suC4pwor4Lit4LmJ4Liy4LinCivguK3guLLguKfguKPguJPguYwKK+C4reC4suC4p+C4seC4iuC4meC4suC4geC4suC4owor4Lit4Liy4Lin4Lix4LilCivguK3guLLguKfguLLguKoKK+C4reC4suC4p+C4suC4quC4tOC4gQor4Lit4Liy4Lin4Liy4LirLQor4Lit4Liy4Lin4Liy4Lir4LiwCivguK3guLLguKfguLTguKUKK+C4reC4suC4p+C4uOC4lQor4Lit4Liy4Lin4Li44LiYCivguK3guLLguKfguLjguYLguKoKK+C4reC4suC5gOC4p+C4hAor4Lit4Liy4LmA4Lin4LioCivguK3guLLguKjguKPguKEKK+C4reC4suC4qOC4o+C4oeC4muC4lwor4Lit4Liy4Lio4LmA4Lil4Lip4LiyCivguK3guLLguKjguLHguKIKK+C4reC4suC4qOC4seC4ouC4l+C4teC5iAor4Lit4Liy4Lio4Lix4Lii4Lil4Liz4LmB4LiC4LmJ4LiH4LiV4Lix4Lin4LmA4Lit4LiHCivguK3guLLguKjguLTguKMtCivguK3guLLguKjguLTguKPguJ7guIjguJnguYwKK+C4reC4suC4qOC4tOC4o+C4nuC4suC4lwor4Lit4Liy4Lio4Li04Lij4Lie4Li04LipCivguK3guLLguKjguLTguKPguKfguIjguJnguLAKK+C4reC4suC4qOC4tOC4o+C4p+C4suC4lwor4Lit4Liy4Lio4Li04Lij4Lin4Li04LipCivguK3guLLguKjguLXguKPguJ7guLTguKkKK+C4reC4suC4qOC4teC4o+C4p+C4tOC4qQor4Lit4Liy4Lio4Li4CivguK3guLLguYDguKjguLXguKLguKMtCivguK3guLLguYDguKjguLXguKLguKPguJ7guIjguJnguYwKK+C4reC4suC5gOC4qOC4teC4ouC4o+C4nuC4suC4lwor4Lit4Liy4LmA4Lio4Li14Lii4Lij4Lin4LiI4LiZ4LiwCivguK3guLLguYDguKjguLXguKLguKPguKfguLLguJcKK+C4reC4suC4qeC4suC4kgor4Lit4Liy4Liq4LiZCivguK3guLLguKrguJnguYwKK+C4reC4suC4quC4meC5jOC4quC4h+C4huC5jAor4Lit4Liy4Liq4LiZ4LiwCivguK3guLLguKrguLHguI0KK+C4reC4suC4quC4seC4leC4ouC5jAor4Lit4Liy4Liq4Lix4LiZ4LiZ4LiwCivguK3guLLguKrguLIKK+C4reC4suC4quC4suC4rOC4qy0KK+C4reC4suC4quC4suC4rOC4q+C5jAor4Lit4Liy4Liq4Liy4Lis4Lir4Lia4Li54LiK4LiyCivguK3guLLguKrguLTguI3guIjguYwKK+C4reC4suC4quC4tOC4mQor4Lit4Liy4Liq4Li54LijCivguK3guLLguYHguKrguLAKK+C4reC4suC4q+C4lQor4Lit4Liy4Lir4LiZ4Li1CivguK3guLLguKvguJnguLkKK+C4reC4suC4q+C4oQor4Lit4Liy4Lir4LijCivguK3guLLguKvguKPguLHguJTguIHguLHguJTguJXguLTguIHguLIKK+C4reC4suC4q+C4o+C4seC4mgor4Lit4Liy4Lir4Lil4Lix4LiB4Lit4Liy4LmA4Lir4Lil4Li34LmI4LitCivguK3guLLguKvguLLguKMKK+C4reC4suC4q+C4suC4o+C4p+C5iOC4suC4hwor4Lit4Liy4Lir4Li44LiU4Li1CivguK3guLLguKzguKvguIEKK+C4reC4suC4rOC4suC4o+C4tOC4gQor4Lit4LmI4Liy4Lit4LiH4LiE4LmMCivguK3guLMKK+C4reC5iOC4swor4Lit4Liz4LmB4LiU4LiHCivguK3guLPguJnguJQKK+C4reC4s+C4meC4meC4leC5jAor4Lit4Liz4LiZ4Lij4Lij4LiGCivguK3guLPguJnguKfguKIKK+C4reC4s+C4meC4suC4iAor4Lit4Liz4LiZ4Liy4LiI4Lia4Liy4LiV4Lij4LmD4Lir4LiN4LmICivguK3guLPguJnguLLguJYKK+C4reC4s+C4meC4tOC4kAor4Lit4Liz4LiZ4Li04Lip4LiQ4LmMCivguK3guLPguJvguKXguLHguIcKK+C4reC4s+C4nuC4mQor4Lit4Liz4Lie4Lij4Liy4LiHCivguK3guLPguJ7guLDguJnguLMKK+C4reC4s+C4nuC4seC4mQor4Lit4Liz4Lie4Lix4LiZ4LiC4Li14LmJ4Lib4Lil4LiyCivguK3guLPguJ7guLHguJnguJfguK3guIcKK+C4reC4s+C5hOC4ngor4Lit4Liz4LmA4Lig4LitCivguK3guLPguYDguKDguK3guYPguIgKK+C4reC4s+C4oeC4owor4Lit4Liz4Lih4Lik4LiE4LmC4LiK4LiECivguK3guLPguKHguKTguJUKK+C4reC4s+C4oeC4q+C4tOC4lQor4Lit4Liz4Lih4Liy4LiV4Lii4LmMCivguK3guLPguKLguKfguJkKK+C4reC4s+C4o+C4uOC4hwor4Lit4Liz4Lil4LiyCivguK3guLPguK3guKfguKEKK+C4reC5ieC4s+C4reC4tuC5ieC4hwor4Lit4Li04LiBCivguK3guLTguIcKK+C4reC4tOC4h+C4hOC5jAor4Lit4Li04LiH4Lit4LijCivguK3guLTguIfguYHguK3guJoKK+C4reC4tOC4iOC4ieC4sgor4Lit4Li04LiJ4Lix4LiZCivguK3guLTguIrguKLguLIKK+C4reC4tOC4j+C4kC0KK+C4reC4tOC4j+C4kOC4suC4o+C4oeC4k+C5jAor4Lit4Li04LiQLQor4Lit4Li04LiQ4Lic4LilCivguK3guLTguJMKK+C4reC4tOC4lAor4Lit4Li04LiU4LmC4Lij4LiiCivguK3guLTguJTguKvguJnguLLguKPguLDguK3guLLguYPguIgKK+C4reC4tOC4lOC4reC4reC4lAor4Lit4Li04LiU4LmGIOC4reC4reC4lOC5hgor4Lit4Li04LiU4LmA4Lit4Li34LmJ4Lit4LiZCivguK3guLTguJTguYYg4LmA4Lit4Li34LmJ4Lit4LiZ4LmGCivguK3guLTguJXguJbguLUKK+C4reC4tOC4leC4luC4teC4peC4tOC4h+C4hOC5jAor4Lit4Li04LiV4LmA4LiX4Lij4Li14Lii4LihCivguK3guLTguJXguYDguJfguK3guKPguYzguYDguJrguLXguKLguKEKK+C4reC4tOC4l+C4mOC4tAor4Lit4Li04LiX4LiY4Li0LQor4Lit4Li04LiX4LiY4Li04Lib4Liy4LiP4Li04Lir4Liy4Lij4Li04Lii4LmMCivguK3guLTguJfguJjguLTguJ7guKUKK+C4reC4tOC4l+C4mOC4tOC4pOC4l+C4mOC4tOC5jAor4Lit4Li04LiZCivguK3guLTguJnguIvguLnguKXguLTguJkKK+C4reC4tOC4meC5gOC4lOC4teC4ogor4Lit4Li04LiZ4LmA4LiU4Li14Lii4LiZ4LmB4LiU4LiHCivguK3guLTguJnguYDguJTguLXguKLguKEKK+C4reC4tOC4meC4l+C5jAor4Lit4Li04LiZ4LiX4LiC4Li14LilCivguK3guLTguJnguJfguJnguLTguKUKK+C4reC4tOC4meC4l+C4meC4tOC4peC4meC5ieC4swor4Lit4Li04LiZ4LiX4Lic4Lil4Lix4LihCivguK3guLTguJnguJfguKMtCivguK3guLTguJnguJfguKPguYwKK+C4reC4tOC4meC4l+C4o+C4mOC4meC4uQor4Lit4Li04LiZ4LiX4Lij4Lin4LiH4Lio4LmMCivguK3guLTguJnguJfguKPguKfguLTguYDguIrguLXguKLguKMKK+C4reC4tOC4meC4l+C4o+C4qOC4seC4geC4lOC4tOC5jAor4Lit4Li04LiZ4LiX4Lij4Liy4LiT4Li1CivguK3guLTguJnguJfguKPguLLguKDguLTguYDguKnguIEKK+C4reC4tOC4meC4l+C4o+C4suC4ouC4uOC4mAor4Lit4Li04LiZ4LiX4Lij4Li1CivguK3guLTguJnguJfguKPguLXguKItCivguK3guLTguJnguJfguKPguLXguKLguYwKK+C4reC4tOC4meC4l+C4o+C4teC4ouC5guC4hOC4iOC4owor4Lit4Li04LiZ4LiX4Lij4Li14Lii4LiN4Liy4LiTCivguK3guLTguJnguJfguKPguLXguKLguKrguLHguIfguKfguKMKK+C4reC4tOC4meC4l+C4teC4p+C4owor4Lit4Li04LiZ4LiX4Li4CivguK3guLTguJnguJjguJnguYwKK+C4reC4tOC4meC4n+C4o+C4suC5gOC4o+C4lAor4Lit4Li04LiZ4Lix4LiHCivguK3guLTguJnguLHguIfguILguLHguIfguILguK3guJoKK+C4reC4tOC5iOC4oQor4Lit4Li04LmI4Lih4LmD4LiICivguK3guLTguYjguKHguJXguLHguKcKK+C4reC4tOC5iOC4oeC4q+C4meC4swor4Lit4Li04LmI4Lih4Lir4Lih4Li14Lie4Li14Lih4Lix4LiZCivguK3guLTguYjguKHguK3guIHguK3guLTguYjguKHguYPguIgKK+C4reC4tOC5iOC4oeC5gOC4reC4tOC4mgor4Lit4Li04Lih4Lix4Lil4LiK4Lix4LiZCivguK3guLTguKPguLTguYDguJTguLXguKLguKEKK+C4reC4tOC4o+C4tOC4ouC4sgor4Lit4Li04Lij4Li04Lii4Liy4Lia4LiWCivguK3guLTguKPguLjguJ7guYDguJ7guJcKK+C4reC4tOC4peC4uQor4Lit4Li04LmA4Lil4LmH4LiB4LiV4Lij4Lit4LiZCivguK3guLTguYDguKXguYfguIHguJfguKPguK3guJnguLTguIHguKrguYwKK+C4reC4tOC5gOC4peC5h+C4geC5guC4l+C4mQor4Lit4Li04Lio4LijCivguK3guLTguKjguKfguKMKK+C4reC4tOC4qeC4j+C5jAor4Lit4Li04Lip4LiP4Li1CivguK3guLTguKoKK+C4reC4tOC4quC4leC4o+C4tQor4Lit4Li04Liq4LijLQor4Lit4Li04Liq4Lij4Lig4Liy4LieCivguK3guLTguKrguKPguLAKK+C4reC4tOC4quC4o+C4tOC4oi0KK+C4reC4tOC4quC4o+C4tOC4ouC4ouC4qAor4Lit4Li04Liq4Lij4Li04Lii4LiwCivguK3guLTguKrguKPguLTguKLguLLguKDguKPguJPguYwKK+C4reC4tOC4quC4peC4suC4oQor4Lit4Li04Liq4Liq4LiyCivguK3guLTguKrguLHguJXguKPguLUKK+C4reC4tOC4quC4tAor4Lit4Li04Liq4Li1CivguK3guLTguKvguKHguYjguLLguKEKK+C4reC4tOC4q+C4peC4seC4geC4reC4tOC5gOC4q+C4peC4t+C5iOC4rQor4Lit4Li1CivguK3guLXguYgKK+C4reC4teC5iQor4Lit4Li14LmKCivguK3guLXguYsKK+C4reC4teC4gQor4Lit4Li14LiB4LmJ4LitCivguK3guLXguIHguYvguK3guKIKK+C4reC4teC4geC4sgor4Lit4Li14LiB4LmL4LiyCivguK3guLXguYDguIHguYnguIcKK+C4reC4teC5gOC4geC4o+C5h+C4hwor4Lit4Li14LmA4LiB4LmJ4Lit4Li14LiB4Lix4LiHCivguK3guLXguYHguIEKK+C4reC4teC5geC4geC5iAor4Lit4Li14LmB4LiB4LmJCivguK3guLXguYLguIHguYnguIcKK+C4reC4teC5guC4geC5iuC4sAor4Lit4Li14LiE4Lin4LmI4Liz4Lit4Li14Lir4LiH4Liy4LiiCivguK3guLXguIjguLnguYkKK+C4reC4teC4ieC4seC4mQor4Lit4Li14LiJ4Li44Lii4Lit4Li14LmB4LiJ4LiBCivguK3guLXguIrguLjguIEKK+C4reC4teC5iuC4lAor4Lit4Li14LiU4Liz4Lit4Li14LmB4LiU4LiHCivguK3guLXguJXguLLguKUKK+C4reC4teC5gOC4leC5ieC4rQor4Lit4Li14LmC4LiV4LmJCivguK3guLXguJbguYjguLLguIcKK+C4reC4teC4l+C4uOC4gQor4Lit4Li14LiX4Li44LiaCivguK3guLXguYDguJfguK3guKPguYwKK+C4reC4teC4meC4uOC4h+C4leC4uOC4h+C4meC4seC4hwor4Lit4Li14LiZ4Li54LiZCivguK3guLXguYLguJkKK+C4reC4teC5guC4meC4h+C5guC4leC4h+C5gOC4meC4hwor4Lit4Li14Lia4Li24LmJ4LiHCivguK3guLXguYDguJvguYfguJQKK+C4reC4teC5gOC4m+C5ieC4sgor4Lit4Li14LmB4Lib4LiwCivguK3guLXguYLguJvguIcKK+C4reC4teC5guC4m+C4h+C4hOC4o+C4reC4mgor4Lit4Li14LmA4Lie4LiyCivguK3guLXguKHguLkKK+C4reC4teC4o+C4oQor4Lit4Li14Lij4Li44LmJ4LiHCivguK3guLXguKXguK3guIcKK+C4reC4teC4peC5iOC4reC4ouC4m+C5iOC4reC4ouC5geC4rQor4Lit4Li14Lil4Li44LmJ4LihCivguK3guLXguKXguLjguYjguKLguInguLjguKLguYHguInguIEKK+C4reC4teC5gOC4peC4tOC5ieC4hwor4Lit4Li14LmB4Lil4LmI4LiHCivguK3guLXguYLguKXguIcKK+C4reC4teC4qAor4Lit4Li14Lio4Lin4LijCivguK3guLXguKoKK+C4reC4teC4quC4sgor4Lit4Li14Liq4Liy4LiZCivguK3guLXguKrguLjguIHguK3guLXguYPguKoKK+C4reC4teC4q+C4meC5h+C4reC4h+C4reC4teC5geC4q+C4meC5h+C4hwor4Lit4Li14Lir4Lij4Lit4LiaCivguK3guLXguKvguKPguK3guJrguYDguJTguLXguKLguKfguIHguLHguJkKK+C4reC4teC4q+C4peC4seC4geC4reC4teC5gOC4q+C4peC4t+C5iOC4rQor4Lit4Li14Lir4Lil4Lix4LiU4LiW4Lix4LiU4LiX4LiyCivguK3guLXguKvguKXguLUKK+C4reC4teC4q+C4peC4uOC4geC4guC4peC4uOC4geC4guC4peC4seC4gQor4Lit4Li14Lir4Lil4Li44LiB4LiC4Lil4Li44LiB4LiC4Lil4Li44LmI4LiiCivguK3guLXguKvguKXguLjguKLguInguLjguKLguYHguInguIEKK+C4reC4teC5gOC4q+C5h+C4mQor4Lit4Li14LmA4Lir4LiZ4LmH4LiaCivguK3guLXguYDguKvguJnguLXguKLguKcKK+C4reC4teC5gOC4q+C4peC4sOC5gOC4guC4peC4sOC4guC4peC4sAor4Lit4Li14LmA4Lir4Lil4Liw4LmA4LiC4Liw4LiC4LiwCivguK3guLXguYLguKvguJnguYjguK3guLXguYDguKvguJnguYgKK+C4reC4teC5guC4q+C4peC4geC5guC4guC4peC4geC5gOC4guC4peC4gQor4Lit4Li14LmL4Lit4LmL4LitCivguK3guLXguYHguK3guYjguJkKK+C4reC4tgor4Lit4Li24LiBCivguK3guLbguYrguIEKK+C4reC4tuC4geC4l+C4tuC4gQor4Lit4Li24LiB4Lit4Lix4LiBCivguK3guLbguIcKK+C4reC4tuC5iOC4hwor4Lit4Li24LmJ4LiHCivguK3guLbguIfguITguLDguJnguLbguIcKK+C4reC4tuC4h+C4oeC4teC5iAor4Lit4Li24LmI4LiH4Lii4Liy4LiHCivguK3guLbguYjguIfguYPguKvguI3guYgKK+C4reC4tuC4h+C4reC4pQor4Lit4Li24LmI4LiH4Lit4LmI4Liy4LiHCivguK3guLbguJQKK+C4reC4tuC4lOC5g+C4iAor4Lit4Li24LiU4LiV4Liw4Lib4Li34LitCivguK3guLbguYnguJTguJfguLbguYjguJQKK+C4reC4tuC4lOC4reC4seC4lAor4Lit4Li24LiZCivguK3guLfguJQKK+C4reC4t+C4lOC4reC4suC4lAor4Lit4Li34LmI4LiZCivguK3guLfguYnguJkKK+C4reC4t+C4rQor4Lit4Li34LmJ4LitCivguK3guLfguYnguK3guInguLLguKcKK+C4reC4t+C5ieC4reC4reC4tuC4hwor4Lit4Li4CivguK3guLjguIEKK+C4reC4uOC4geC4geC4sgor4Lit4Li44LiB4LiB4Liy4Lia4Liy4LiVCivguK3guLjguIHguInguIHguKPguKPguIjguYwKK+C4reC4uOC4geC4pOC4qeC4j+C5jAor4Lit4Li44LiB4Lil4LiyCivguK3guLjguIHguKXguLLguJrguLLguJUKK+C4reC4uOC4geC4reC4suC4iAor4Lit4Li44LiECivguK3guLjguITguKMKK+C4reC4uOC4hOC4qy0KK+C4reC4uOC4hOC4q+C4meC4tOC4oeC4tOC4lQor4Lit4Li44LiE4Lir4LiwCivguK3guLjguYLguIbguKkKK+C4reC4uOC5ieC4hwor4Lit4Li44LiICivguK3guLjguIjguIjguLLguKMtCivguK3guLjguIjguIjguLLguKPguKHguKPguKPguIQKK+C4reC4uOC4iOC4iOC4suC4o+C4sAor4Lit4Li44LiI4LiJ4Li4CivguK3guLjguIjguYDguInguJcKK+C4reC4uOC4iOC5gOC4ieC4ly0KK+C4reC4uOC4iOC5gOC4ieC4l+C4l+C4tOC4kOC4tAor4Lit4Li44LiI4Liy4LiUCivguK3guLjguIrguLgKK+C4reC4uOC4j+C4kOC4suC4geC4suC4owor4Lit4Li44LiT4LirLQor4Lit4Li44LiT4Lir4Lig4Li54Lih4Li0CivguK3guLjguJPguKvguLAKK+C4reC4uOC4k+C4q+C4suC4geC4suC4owor4Lit4Li44LiT4Lir4Li04LiqCivguK3guLjguJPguLIKK+C4reC4uOC4k+C4suC4meC4suC4oOC4tQor4Lit4Li44LiT4Liy4LmC4Lil4LihCivguK3guLjguJQKK+C4reC4uOC4lOC5gOC4leC4sgor4Lit4Li44LiU4LihCivguK3guLjguJTguKEtCivguK3guLjguJTguKHguIHguLLguKPguJPguYwKK+C4reC4uOC4lOC4oeC4hOC4leC4tAor4Lit4Li44LiU4Lih4Lio4Li24LiB4Lip4LiyCivguK3guLjguJTguKMKK+C4reC4uOC4lOC4q+C4meC4uOC4mQor4Lit4Li44LiU4Lit4Li54LmJCivguK3guLjguJTguLLguIHguLHguJkKK+C4reC4uOC4leC4lOC4oQor4Lit4Li44LiV4LiU4LijCivguK3guLjguJXguJXguKHguLAKK+C4reC4uOC4leC4leC4o+C4nOC4peC4hOC4uOC4meC4tQor4Lit4Li44LiV4LiV4Lij4Lig4Lix4LiX4Lij4Lia4LiXCivguK3guLjguJXguJXguKPguK3guLLguKnguLLguJIKK+C4reC4uOC4leC4leC4o+C4suC4quC4suC4rOC4q+C4sAor4Lit4Li44LiV4LiV4Liw4Lig4Lix4LiX4LiX4LiwCivguK3guLjguJXguJrguKUKK+C4reC4uOC4leC4nuC4tOC4lAor4Lit4Li44LiV4Lie4Li04LiU4Lic4Li1CivguK3guLjguJXguKEtCivguK3guLjguJXguKHguKDguLLguJ4KK+C4reC4uOC4leC4oeC4seC4leC4luC5jAor4Lit4Li44LiV4Lih4Liy4LiH4LiE4LmMCivguK3guLjguJXguKMtCivguK3guLjguJXguKPguIHguLjguKPguLgKK+C4reC4uOC4leC4o+C4geC4uOC4o+C4uQor4Lit4Li44LiV4Lij4LiZ4Li04LiB4Liy4LiiCivguK3guLjguJXguKPguJzguKXguITguLjguJnguLUKK+C4reC4uOC4leC4o+C4oOC4seC4l+C4o+C4muC4lwor4Lit4Li44LiV4Lij4LiyCivguK3guLjguJXguKPguLLguKDguLTguKHguLjguIIKK+C4reC4uOC4leC4o+C4suC4p+C4seC4jwor4Lit4Li44LiV4Lij4Liy4Lip4Liy4LiSCivguK3guLjguJXguKPguLLguKrguIfguITguYwKK+C4reC4uOC4leC4o+C4tAor4Lit4Li44LiV4Lij4Li04Lih4LiZ4Li44Liq4LiY4Lij4Lij4LihCivguK3guLjguJXguKXguLjguJQKK+C4reC4uOC4leC4quC4suC4qy0KK+C4reC4uOC4leC4quC5iOC4suC4q+C5jAor4Lit4Li44LiV4Liq4Liy4Lir4LiB4Lij4Lij4LihCivguK3guLjguJXguKrguLLguKvguIHguKPguKPguKHguKjguLTguKXguJvguYwKK+C4reC4uOC4leC4quC4suC4q+C4sAor4Lit4Li44LiV4Li4CivguK3guLjguJXguLjguJnguLTguKLguKHguKfguLTguJfguKLguLIKK+C4reC4uOC4ly0KK+C4reC4uOC4l+C4gQor4Lit4Li44LiX4LiBLQor4Lit4Li44LiX4LiB4LiY4Liy4LijCivguK3guLjguJfguIHguJjguLLguKPguLIKK+C4reC4uOC4l+C4geC4oOC4seC4ogor4Lit4Li44LiX4LiB4Lin4Li04LiX4Lii4LiyCivguK3guLjguJfguIHguKjguLLguKrguJXguKPguYwKK+C4reC4uOC4l+C4l+C4suC4oQor4Lit4Li44LiX4LiY4Lij4LiT4LmMCivguK3guLjguJfguJjguLHguIgKK+C4reC4uOC4l+C4muC4suC4leC4owor4Lit4Li44LiX4Lia4Liy4LiZCivguK3guLjguJfguJ7guLTguJnguJfguLjguYwKK+C4reC4uOC4l+C4ouC4suC4mQor4Lit4Li44LiX4Lii4Liy4LiZ4LmB4Lir4LmI4LiH4LiK4Liy4LiV4Li0CivguK3guLjguJfguKMKK+C4reC4uOC4l+C4o+C4tOC4ouC4sAor4Lit4Li44LiX4Lil4Li44LihCivguK3guLjguJfguLHguIoKK+C4reC4uOC4l+C4seC4ogor4Lit4Li44LiX4Liy4LiZCivguK3guLjguJfguLLguKMKK+C4reC4uOC4l+C4suC4q+C4o+C4k+C5jAor4Lit4Li44LiX4Li04LioCivguK3guLjguJfguLjguKHguJ7guKMKK+C4reC4uOC5gOC4l+C4qAor4Lit4Li44LiY4Lix4LiICivguK3guLjguYjguJkKK+C4reC4uOC5iOC4meC5gOC4hOC4o+C4t+C5iOC4reC4hwor4Lit4Li44LmI4LiZ4LmD4LiICivguK3guLjguYjguJnguKvguJnguLLguJ3guLLguITguLHguYjguIcKK+C4reC4uOC4meC4suC4geC4seC4mQor4Lit4Li44LiaCivguK3guLjguJrguKUKK+C4reC4uOC4muC4reC4tOC4mgor4Lit4Li44Lia4LiwCivguK3guLjguJrguYrguLAKK+C4reC4uOC4muC4seC4leC4tAor4Lit4Li44Lia4Lix4LiV4Li0LQor4Lit4Li44Lia4Lix4LiV4Li04Lig4Lix4LiiCivguK3guLjguJrguLHguJXguLTguYDguKvguJXguLgKK+C4reC4uOC4muC4suC4lwor4Lit4Li44Lia4Liy4LiX4Lin4LmMCivguK3guLjguJrguLLguKIKK+C4reC4uOC4muC4suC4quC4gQor4Lit4Li44Lia4Liy4Liq4Li04LiB4LiyCivguK3guLjguYDguJrguIHguILguLIKK+C4reC4uOC5guC4muC4quC4lgor4Lit4Li44LmC4Lia4Liq4LiW4LiB4Lij4Lij4LihCivguK3guLjguYLguJrguKrguJbguKvguLHguJXguJbguLUKK+C4reC4uOC4mwor4Lit4Li44Lib4LiB4Lij4LiT4LmMCivguK3guLjguJvguIHguKPguKEKK+C4reC4uOC4m+C4geC4suC4oy0KK+C4reC4uOC4m+C4geC4suC4o+C4sAor4Lit4Li44Lib4LiB4Liy4Lij4Li1CivguK3guLjguJvguIHguLTguJPguJPguLAKK+C4reC4uOC4m+C4geC4tOC5gOC4peC4qgor4Lit4Li44Lib4LiI4Liy4LijCivguK3guLjguJvguJbguLHguKHguKDguYwKK+C4reC4uOC4m+C4luC4seC4oeC4oOC4gQor4Lit4Li44Lib4LiX4LihCivguK3guLjguJvguJfguLnguJUKK+C4reC4uOC4m+C5gOC4l+C4qAor4Lit4Li44Lib4LmA4LiX4LmI4Lir4LmMCivguK3guLjguJvguJjguLQKK+C4reC4uOC4m+C4meC4seC4ogor4Lit4Li44Lib4LiZ4Li04LiB4LiC4Li04LiVCivguK3guLjguJvguJnguLTguIHguKnguLTguJUKK+C4reC4uOC4m+C4meC4tOC4qeC4seC4lwor4Lit4Li44Lib4LiZ4Li04Liq4Lix4LiiCivguK3guLjguJvguJrguKUKK+C4reC4uOC4m+C4muC4seC4leC4tAor4Lit4Li44Lib4Lia4Liy4LiXCivguK3guLjguJvguJvguLLguJXguLTguIEtCivguK3guLjguJvguJ7guLHguJfguJjguYwKK+C4reC4uOC4m+C4nuC4seC4meC4mOC5jAor4Lit4Li44Lib4LmC4Lig4LiECivguK3guLjguJvguKHguLIKK+C4reC4uOC4m+C4oeC4suC4mQor4Lit4Li44Lib4Lih4Liy4LmC4Lin4Lir4Liy4LijCivguK3guLjguJvguKHguLLguK3guLjguJvguYTguKHguKIKK+C4reC4uOC4m+C5hOC4oeC4ogor4Lit4Li44Lib4Lii4Li44Lin4Lij4Liy4LiKCivguK3guLjguJvguYLguKLguIQKK+C4reC4uOC4m+C5guC4ouC4hOC4muC4uOC4o+C4nuC4muC4lwor4Lit4Li44Lib4Lij4Liy4LiB4LijCivguK3guLjguJvguKPguLLguITguLIKK+C4reC4uOC4m+C4o+C4suC4igor4Lit4Li44Lib4Lij4Li0CivguK3guLjguJvguKPguLTguIjguKMKK+C4reC4uOC4m+C4o+C4tOC4nuC4uOC4l+C4mOC4tAor4Lit4Li44Lib4Lij4Li04Lig4Liy4LiECivguK3guLjguJvguKPguLTguKDguLLguJ4KK+C4reC4uOC4m+C4o+C4tOC4oS0KK+C4reC4uOC4m+C4o+C4tOC4oeC4m+C4o+C4tOC4ouC4suC4ogor4Lit4Li44Lib4Lij4Li04Lin4Lix4Liq4LiZ4LmMCivguK3guLjguJvguKPguLTguKrguLHguIgKK+C4reC4uOC4m+C5guC4peC4geC4meC5jAor4Lit4Li44Lib4Liq4Lih4Lia4LiXCivguK3guLjguJvguKrguKHguJrguJfguIHguKPguKPguKEKK+C4reC4uOC4m+C4quC4oeC4muC4seC4mQor4Lit4Li44Lib4Liq4Lij4Lij4LiECivguK3guLjguJvguKrguLHguKHguJrguLHguJkKK+C4reC4uOC4m+C4quC4seC4oeC4m+C4l+C4sgor4Lit4Li44Lib4Liq4Lix4Lih4Lib4LiX4Liy4LmA4Lib4LiB4LiC4LmMCivguK3guLjguJvguKrguLHguKHguJvguJfguLLguYDguJvguIHguKnguYwKK+C4reC4uOC4m+C4ruC4suC4lAor4Lit4Li44Lib4Lix4LiK4LiM4Liy4LiiLQor4Lit4Li44Lib4Lix4LiK4LiM4Liy4Lii4LmMCivguK3guLjguJvguLHguIrguIzguLLguKLguKfguLHguJXguKMKK+C4reC4uOC4m+C4seC4iuC4jOC4suC4ouC4sAor4Lit4Li44Lib4Lix4LiP4LiQ4Liy4LiBCivguK3guLjguJvguLHguI/guJDguLLguJnguLAKK+C4reC4uOC4m+C4seC4l+C4o+C4ngor4Lit4Li44Lib4Lix4LiX4LinLQor4Lit4Li44Lib4Lix4LiX4Lin4LiwCivguK3guLjguJvguLHguJfguKfguLHguJnguJXguKPguLLguKIKK+C4reC4uOC4m+C4suC4ky0KK+C4reC4uOC4m+C4suC4l+C4suC4mQor4Lit4Li44Lib4Liy4LiY4Lii4Liy4LiiCivguK3guLjguJvguLLguKvguJnguLIKK+C4reC4uOC4oOC4seC4ogor4Lit4Li44LmJ4LihCivguK3guLjguKHguIfguITguYwKK+C4reC4uOC5ieC4oeC4iuC4uQor4Lit4Li44LmJ4Lih4LiX4LmJ4Lit4LiHCivguK3guLjguYnguKHguJnguYnguLMKK+C4reC4uOC5ieC4oeC4quC4oQor4Lit4Li44LmC4Lih4LiH4LiE4LmMCivguK3guLjguKIKK+C4reC4uOC5iOC4ogor4Lit4Li44LmJ4LiiCivguK3guLjguYrguKIKK+C4reC4uOC4ouC4ouC4suC4mQor4Lit4Li44Lii4Lii4Liy4LihCivguK3guLjguYnguKLguKLguLjguYnguKIKK+C4reC4uOC4ouC5guC4ouC4hAor4Lit4Li44Lii4Lir4LiZ4LmI4LiyCivguK3guLjguYjguKLguKvguJnguYjguLIKK+C4reC4uOC5ieC4ouC4reC5ieC4suC4ogor4Lit4Li44LijLQor4Lit4Li44Lij4LiECivguK3guLjguKPguYDguITguJnguJfguKPguYwKK+C4reC4uOC4o+C4kwor4Lit4Li44Lij4Lie4Li1CivguK3guLjguKPguKoKK+C4reC4uOC4o+C4sAor4Lit4Li44Lij4Lix4LiH4Lit4Li44LiV4Lix4LiHCivguK3guLjguKPguLHguIjguInguJfguLAKK+C4reC4uOC4o+C4seC4iOC4ieC4seC4lwor4Lit4Li44Lij4LiyCivguK3guLjguKPguLgKK+C4reC4uOC5hOC4owor4Lit4Li44Lil4Lib4LiZ4LiwCivguK3guLjguKXguYLguKXguIgKK+C4reC4uOC4peC5guC4peC4peC4sAor4Lit4Li44Lil4Liy4Lih4LiBCivguK3guLjguKXguLTguJQKK+C4reC4uOC4peC4ueC4gQor4Lit4Li44LmC4Lil4LiBCivguK3guLjguYHguKfguYkKK+C4reC4uOC4qeC4ky0KK+C4reC4uOC4qeC4k+C4geC4owor4Lit4Li44Lip4LiT4LiB4Liy4LilCivguK3guLjguKnguJPguKPguLHguKjguKHguLUKK+C4reC4uOC4qeC4k+C4o+C4ueC4iOC4tQor4Lit4Li44Lip4LiT4Liy4LiB4Liy4LijCivguK3guLjguKnguJPguLXguKnguYwKK+C4reC4uOC4qeC4oQor4Lit4Li44Lip4Lih4Lix4LiZCivguK3guLjguKnguLIKK+C4reC4uOC4qeC4suC5guC4ouC4hAor4Lit4Li44Liq4LigCivguK3guLjguKrguKfguLAKK+C4reC4uOC4quC4quC5iOC4suC4q+C5jAor4Lit4Li44Liq4Liq4Liy4Lir4LiwCivguK3guLjguKrguLIKK+C4reC4uOC4quC4uAor4Lit4Li44Liq4Li44LiB4Liy4LijCivguK3guLjguKrguLjguKAKK+C4reC4uOC4quC4uOC4oQor4Lit4Li44Lir4Lij4Lix4LiaCivguK3guLjguKvguKXguJoKK+C4reC4uOC5gOC4q+C4oeC5iAor4Lit4Li44Lis4Liy4LijCivguK3guLkKK+C4reC4ueC5iAor4Lit4Li54LmJCivguK3guLnguJAKK+C4reC4ueC4lAor4Lit4Li54LmI4LiZ4LmJ4LizCivguK3guLnguKEKK+C4reC4ueC4ogor4Lit4Li54Lij4Li4CivguK3guLnguYjguKXguK3guKIKK+C4reC4ueC5iOC5geC4q+C5ieC4hwor4Lit4Li54LmJ4Lit4Li14LmJCivguK3guLnguYvguK3guLXguYsKK+C5gOC4rQor4LmA4Lit4LmJCivguYDguK3guIEKK+C5gOC4reC4gS0KK+C5gOC4reC5iuC4gQor4LmA4Lit4LiB4LmA4LiC4LiZ4LiBCivguYDguK3guIHguIjguLTguJUKK+C5gOC4reC4geC4ieC4seC4meC4l+C5jAor4LmA4Lit4LiB4LiK4LiZCivguYDguK3guIHguIvguYDguKPguKLguYwKK+C5gOC4reC4geC5gOC4l+C4qAor4LmA4Lit4LiB4LmC4LiX4LipCivguYDguK3guIHguJnguLHguKIKK+C5gOC4reC4geC4muC4uOC4hOC4hOC4pQor4LmA4Lit4LiB4Lia4Li44Lij4Li44LipCivguYDguK3guIHguJ7guIjguJnguYwKK+C5gOC4reC4geC4oOC4ngor4LmA4Lit4LiB4Lig4Lij4Li04Lii4LiyCivguYDguK3guIHguKDguLHguIHguJTguLTguYwKK+C5gOC4reC4geC4oOC4suC4hOC4tQor4LmA4Lit4LiB4Lig4Liy4LieCivguYDguK3guIHguKEKK+C5gOC4reC4geC4oeC4seC4ogor4LmA4Lit4LiB4Lij4Lij4LiW4Lib4Lij4Liw4LmC4Lii4LiECivguYDguK3guIHguKPguKoKK+C5gOC4reC4geC4o+C4sAor4LmA4Lit4LiB4Lij4Liy4LiKCivguYDguK3guIHguKPguLnguJsKK+C5gOC4reC4geC4peC4seC4geC4qeC4k+C5jAor4LmA4Lit4LiB4Lio4LiBCivguYDguK3guIHguKoKK+C5gOC4reC4geC4quC4suC4owor4LmA4Lit4LiB4Liq4Liy4Lij4Lij4Liy4LiK4LiB4Liy4LijCivguYDguK3guIHguKrguLLguKPguKrguLTguJfguJjguLQKK+C5gOC4reC4geC4quC4tOC4l+C4mOC4tOC5jAor4LmA4Lit4LiB4Lit4Lix4LiE4Lij4Lij4Liy4LiK4LiX4Li54LiVCivguYDguK3guIHguK3guLHguITguKPguKrguKHguJPguJfguLnguJUKK+C5gOC4reC4geC4reC4uAor4LmA4Lit4LiB4Lix4LiE4LiV4LiyCivguYDguK3guIHguLHguIfguKrguJ7guKLguLLguIHguKPguJPguYwKK+C5gOC4reC4geC4seC4h+C4quC4p+C4suC4l+C4tQor4LmA4Lit4LiB4LiyCivguYDguK3guYnguIHguLIKK+C5gOC4reC4geC4suC4mOC4tOC4m+C5hOC4leC4ogor4LmA4Lit4LmA4LiE4Lit4Lij4LmMCivguYDguK3guIcKK+C5gOC4reC5h+C4hwor4LmA4Lit4LmL4LiHCivguYDguK3guYfguJQKK+C5gOC4reC5h+C4lOC4leC4sOC5guC4owor4LmA4Lit4LmH4LiU4Lit4Li24LiHCivguYDguK3guJXguJfguLHguITguITguLAKK+C5gOC4reC5ieC5gOC4lQor4LmA4Lit4LiX4Li04Lil4LmB4Lit4Lil4LiB4Lit4Liu4Lit4Lil4LmMCivguYDguK3guJkKK+C5gOC4reC5h+C4mQor4LmA4Lit4LiZ4LiB4Liy4LiiCivguYDguK3guJnguYTguIvguKHguYwKK+C5gOC4reC5h+C4meC4lOC4uQor4LmA4Lit4LiZ4LiV4Lix4LinCivguYDguK3guJnguKvguKXguLHguIcKK+C5gOC4reC5h+C4meC4reC5iOC4reC4mQor4LmA4Lit4LiZ4LmA4Lit4Li14Lii4LiHCivguYDguK3guKEKK+C5gOC4reC5h+C4oeC4muC4o+C4tOC5guC4rQor4LmA4Lit4Lih4Lit4LijCivguYDguK3guKHguYLguK3guIoKK+C5gOC4reC4ogor4LmA4Lit4LmI4LiiCivguYDguK3guYrguKIKK+C5gOC4reC5i+C4ogor4LmA4Lit4Lij4LmH4LiU4Lit4Lij4LmI4Lit4LiiCivguYDguK3guKPguLLguKfguLHguJMKK+C5gOC4reC4peC4sgor4LmA4Lit4Lil4Liy4Lis4Li44LiBCivguYDguK3guKcKK+C5gOC4reC5iuC4pwor4LmA4Lit4Lin4Lix4LiHCivguYDguK3guKzguIEKK+C5gOC4reC4rOC4sgor4LmA4Lit4LitCivguYDguK3guYjguK0KK+C5gOC4reC4reC5hiDguITguLDguYYKK+C5gOC4reC4reC4meC5iOC4sAor4LmA4Lit4Lit4LmB4LiZ4LmI4LiwCivguYDguK3guK3guKPguYzguYDguJrguLXguKLguKEKK+C5gOC4reC5ieC4reC4o+C4sOC5gOC4q+C4ogor4LmA4Lit4LmJ4Lit4LmA4Lij4LmJ4LitCivguYDguK3guYnguK3guYDguKPguYnguK3guYDguK3guYnguK3guYDguJXguYjguK0KK+C5gOC4reC4reC4reC4p+C4ogor4LmA4Lit4Lit4Lit4LitCivguYDguK3guK3guK3guK3guKvguYjguK3guKvguKHguIEKK+C5gOC4reC5ieC4reC5gOC4ruC4rQor4LmA4Lit4LmJ4LmB4Lit4LmI4LiZCivguYDguK3guYnguYYg4LmB4Lit4LmI4LiZ4LmGCivguYDguK3guYrguLAKK+C5gOC4reC4sOC5g+C4iAor4LmA4Lit4Liw4Lit4LiwCivguYDguK3guLDguK3guLDguKHguLDguYDguJfguLTguYjguIcKK+C5gOC4reC4sgor4LmA4Lit4Liy4LiB4Liy4LijCivguYDguK3guLLguIHguLLguKPguYDguK3guLLguIfguLLguJkKK+C5gOC4reC4suC4geC4uOC5ieC4h+C4neC4reC4ouC5hOC4m+C4leC4geC4m+C4peC4suC4geC4sOC4nuC4hwor4LmA4Lit4Liy4LiC4LmJ4Liy4LiH4LmA4LiC4LmJ4Liy4LiW4Li5CivguYDguK3guLLguIfguLLguJkKK+C5gOC4reC4suC4iOC4oeC4ueC4geC4nOC4ueC5ieC4reC4t+C5iOC4meC4oeC4suC4q+C4suC4ouC5g+C4iAor4LmA4Lit4Liy4LiI4Lij4Li04LiHCivguYDguK3guLLguIjguKPguLTguIfguYDguK3guLLguIjguLHguIcKK+C5gOC4reC4suC5g+C4iAor4LmA4Lit4Liy4LmD4LiI4LiK4LmI4Lin4LiiCivguYDguK3guLLguYPguIjguYPguKrguYgKK+C5gOC4reC4suC4iuC4meC4sAor4LmA4Lit4Liy4LiK4Lix4LmJ4LiZ4LmA4Lit4Liy4LmA4LiK4Li04LiHCivguYDguK3guLLguIrguLHguKIKK+C5gOC4reC4suC4iuC4teC4p+C4tOC4lQor4LmA4Lit4Liy4LiK4Li34LmI4LitCivguYDguK3guLLguYDguIrguLTguIcKK+C5gOC4reC4suC5g+C4iuC5iQor4LmA4Lit4Liy4LiU4Li14LmA4Lit4Liy4LmA4LiU4LmI4LiZCivguYDguK3guLLguJXguLLguKIKK+C5gOC4reC4suC5geC4leC5iAor4LmA4Lit4Liy4LmB4LiV4LmI4LmD4LiICivguYDguK3guLLguJbguYjguLLguJkKK+C5gOC4reC4suC5gOC4luC4tOC4lAor4LmA4Lit4Liy4LmA4LiW4Li04LiU4LmA4LiI4LmJ4Liy4Lil4LmI4LitCivguYDguK3guLLguJfguK3guIfguYTguJvguKPguLnguYjguIHguKPguLDguYDguJrguLfguYnguK3guIcKK+C5gOC4reC4suC4l+C4suC4owor4LmA4Lit4Liy4LiX4Liy4Lij4Lii4LmMCivguYDguK3guLLguJnguYnguLPguYDguKLguYfguJnguYDguILguYnguLLguKXguLnguJoKK+C5gOC4reC4suC4meC5ieC4s+C4peC4ueC4muC4l+C5ieC4reC4hwor4LmA4Lit4Liy4LmA4LiZ4Li34LmJ4Lit4Lir4LiZ4Li54LmE4Lib4Lib4Liw4LmA4LiZ4Li34LmJ4Lit4LiK4LmJ4Liy4LiHCivguYDguK3guLLguJrguLjguI3guYDguK3guLLguITguLjguJMKK+C5gOC4reC4suC4m+C4ueC4meC4q+C4oeC4suC4ouC4q+C4seC4pwor4LmA4Lit4Liy4LmA4Lib4LmH4LiZ4LiY4Li44Lij4LiwCivguYDguK3guLLguYDguJvguYfguJnguKfguYjguLIKK+C5gOC4reC4suC5gOC4m+C5h+C4meC5gOC4reC4suC4leC4suC4ogor4LmA4Lit4Liy4LmA4Lib4Lij4Li14Lii4LiaCivguYDguK3guLLguJzguLTguJQKK+C5gOC4reC4suC4nuC4tOC4oeC5gOC4quC4meC5hOC4m+C5geC4peC4geC5gOC4geC4peC4t+C4rQor4LmA4Lit4Liy4Lih4Liw4Lie4Lij4LmJ4Liy4Lin4Lir4LmJ4Liy4Lin4LmE4Lib4LiC4Liy4Lii4Liq4Lin4LiZCivguYDguK3guLLguKHguLfguK3guIvguLjguIHguKvguLXguJoKK+C5gOC4reC4suC5hOC4oeC5ieC4i+C4teC4geC5hOC4m+C4h+C4seC4lOC5hOC4oeC5ieC4i+C4uOC4hwor4LmA4Lit4Liy4LmE4Lih4LmJ4Liq4Lix4LmJ4LiZ4LmE4Lib4Lij4Lix4LiZ4LiC4Li14LmJCivguYDguK3guLLguKPguKoKK+C5gOC4reC4suC4o+C4seC4lOC5gOC4reC4suC5gOC4m+C4o+C4teC4ouC4mgor4LmA4Lit4Liy4LmA4Lij4Li34LmI4Lit4LiHCivguYDguK3guLLguKTguIHguKnguYwKK+C5gOC4reC4suC4peC4sAor4LmA4Lit4Liy4LmA4Lil4LiiCivguYDguK3guLLguYDguKXguLfguK3guJTguIHguLHguJrguJvguLkKK+C5gOC4reC4suC4q+C4meC5ieC4sgor4LmA4Lit4Liy4Lir4Li54LmE4Lib4LiZ4LiyIOC5gOC4reC4suC4leC4suC5hOC4m+C5hOC4o+C5iAor4LmA4Lit4Liy4LmD4Lir4LiN4LmICivguYDguK3guLLguKzguLLguKMKK+C5gOC4reC4suC4rOC4suC4o+C4tOC4gQor4LmA4Lit4Liy4Lis4Liy4Lij4Li24LiBCivguYDguK3guLLguK3guIHguYDguK3guLLguYPguIgKK+C5gOC4reC4suC4reC4ouC5iOC4suC4hwor4LmA4Lit4Liy4Lit4Lii4Li54LmICivguYDguK3guLLguLDguKXguLLguKIKK+C5gOC4reC4tOC4gQor4LmA4Lit4Li04LiB4LmA4LiB4Lij4Li04LiBCivguYDguK3guLTguYnguJkKK+C5gOC4reC4tOC4mgor4LmA4Lit4Li04Lia4Lit4Liy4LiaCivguYDguK3guLXguKLguIcKK+C5gOC4reC4teC5ieC4ouC4hwor4LmA4Lit4Li14LmJ4Lii4LiH4LiE4LizCivguYDguK3guLXguKLguIfguK3guLLguKIKK+C5gOC4reC4teC4ouC4h+C5gOC4reC4mQor4LmA4Lit4Li14Lii4LiUCivguYDguK3guLXguYrguKLguJQKK+C5gOC4reC4teC4ouC4mQor4LmA4Lit4Li14LmI4Lii4LiZCivguYDguK3guLXguYjguKLguKEKK+C5gOC4reC4teC5iuC4ouC4oQor4LmA4Lit4Li14LmJ4Lii4Lih4LiI4Li44LmK4LiZCivguYDguK3guLXguYnguKLguKHguYDguJ/guLXguYnguKLguKEKK+C5gOC4reC4teC5iOC4ouC4oeC4reC5iOC4reC4hwor4LmA4Lit4Li14LmI4Lii4LinCivguYDguK3guLXguYnguKLguKcKK+C5gOC4reC4teC5iOC4ouC4p+C4peC4oQor4LmA4Lit4Li34LmJ4LitCivguYDguK3guLfguYnguK3guIcKK+C5gOC4reC4t+C5ieC4reC4h+C4hOC4o+C4seC5iOC4hwor4LmA4Lit4Li34LmJ4Lit4LiH4LiZ4LmJ4Liz4LiE4Lij4Lix4LmI4LiHCivguYDguK3guLfguYnguK3guIfguKjguKPguLXguYDguJfguLXguYjguKLguIcKK+C5gOC4reC4t+C5ieC4reC4h+C4q+C4meC4p+C4lOC4nuC4o+C4suC4q+C4oeC4k+C5jAor4LmA4Lit4Li34Lit4LiUCivguYDguK3guLfguK3guJkKK+C5gOC4reC4t+C5ieC4reC4mQor4LmA4Lit4Li34Lit4LiZ4LiB4Li04LiZCivguYDguK3guLfguYnguK3guYDguJ/guLfguYnguK0KK+C5gOC4reC4t+C4reC4oQor4LmA4Lit4Li34LmJ4Lit4LihCivguYDguK3guLfguYnguK3guKHguK3guLLguIgKK+C5gOC4reC4t+C5iOC4reC4ogor4LmA4Lit4Li34LmI4Lit4Lii4LmGCivguYDguK3guLfguYnguK3guKIKK+C5gOC4reC4t+C5ieC4reC4reC4s+C4meC4p+C4ogor4LmB4LitCivguYHguK3guYkKK+C5geC4reC5iwor4LmB4Lit4LiBCivguYHguK3guIHguJfguLTguYDguJnguLXguKLguKEKK+C5geC4reC4geC4meC5ieC4reC4ogor4LmB4Lit4LmI4LiHCivguYHguK3guYnguIfguYHguKHguYnguIcKK+C5geC4reC4lAor4LmB4Lit4LiU4LmGCivguYHguK3guYnguJQKK+C5geC4reC5ieC4lOC5hgor4LmB4Lit4LmK4LiUCivguYHguK3guYrguJTguYYKK+C5geC4reC5iOC4mQor4LmB4Lit4LiZ4LiV4Li04LmA4LiI4LiZCivguYHguK3guJnguJXguLTguJrguK3guJTguLUKK+C5geC4reC4meC4leC4tOC4reC4tOC5gOC4peC5h+C4geC4leC4o+C4reC4mQor4LmB4Lit4LmI4LiZ4Lil4LihCivguYHguK3guYLguJnguJQKK+C5geC4reC4mgor4LmB4Lit4Lia4LmB4Lid4LiHCivguYHguK3guJrguK3guYnguLLguIcKK+C5geC4reC4muC4reC4tOC4hwor4LmB4Lit4LmJ4LihCivguYHguK3guKHguYHguJvguKPguYwKK+C5geC4reC4oeC4oeC4tOC5gOC4leC4reC4o+C5jAor4LmB4Lit4Lih4LmC4Lih4LmA4LiZ4Li14LiiCivguYHguK3guKPguYjguKEKK+C5geC4reC4peC4geC4reC4ruC4reC4peC5jAor4LmB4Lit4Lil4Lif4LiyCivguYHguK3guKcKK+C5geC4reC5iOC4pwor4LmB4Lit4LmJ4Lin4LmB4LiL4LmI4LinCivguYHguK3guKrguJfguLLguJfguLXguJkKK+C5geC4reC4quC5hOC4nuC4o+C4tOC4mQor4LmB4Lit4Liq4Lif4Lix4Lil4LiV4LmMCivguYHguK3guKvguJnguLHguIcKK+C5geC4reC4reC4p+C4ogor4LmB4Lit4Lit4Lix4LiUCivguYLguK0KK+C5guC4reC5iAor4LmC4Lit4LmJCivguYLguK3guYsKK+C5guC4reC4gQor4LmC4Lit4LmJ4LiBCivguYLguK3guYrguIEKK+C5guC4reC4geC4suC4qgor4LmC4Lit4LiGLQor4LmC4Lit4LiG4LiK4LilCivguYLguK3guIbguKrguIfguKrguLLguKMKK+C5guC4reC4huC4sAor4LmC4Lit4LmI4LiHCivguYLguK3guIfguIHguLLguKMKK+C5guC4reC4h+C5guC4guC4lOC4hwor4LmC4Lit4LmI4LiH4Lih4Lix4LiH4LiB4LijCivguYLguK3guIrguLAKK+C5guC4reC4iuC4sgor4LmC4Lit4LmC4LiL4LiZCivguYLguK3guJAKK+C5guC4reC4lAor4LmC4Lit4LiU4LiB4Liy4LmA4Lir4Lin4LmI4LiyCivguYLguK3guJTguITguKPguKfguI0KK+C5guC4reC4lOC5guC4reC4ogor4LmC4Lit4LmK4LiVCivguYLguK3guJXguJXguLHguJvguJvguLAKK+C5guC4reC5iOC5guC4luC4hwor4LmC4Lit4LmJ4LmC4LiW4LiHCivguYLguK3guJfguJktCivguYLguK3guJfguJnguLAKK+C5guC4reC4mQor4LmC4Lit4LiZ4LiB4Lij4Lij4Lih4Liq4Li04LiX4LiY4Li04LmMCivguYLguK3guJnguIrguLLguJXguLQKK+C5guC4reC4meC4reC5iOC4reC4mQor4LmC4Lit4LiZ4LmA4Lit4LiZCivguYLguK3guJoKK+C5guC4reC4muC4reC5ieC4reC4oeC4reC4suC4o+C4tQor4LmC4Lit4Lia4Lit4Li44LmJ4LihCivguYLguK3guJrguYDguK3guLfguYnguK0KK+C5guC4reC4m+C4m+C4suC4leC4tOC4geC4sAor4LmC4Lit4Lig4LiyCivguYLguK3guKDguLLguJvguKPguLLguKjguKPguLHguKIKK+C5guC4reC4oOC4suC4qgor4LmC4Lit4LihCivguYLguK3guKIKK+C5guC4reC5iuC4ogor4LmC4Lit4LijLQor4LmC4Lit4Lij4LiqCivguYLguK3guKXguLDguJ7guYjguK0KK+C5guC4reC4peC4tOC4oeC4m+C4tOC4gQor4LmC4Lit4LmJ4LmC4Lil4LihCivguYLguK3guYnguYLguKXguKHguJvguI/guLTguYLguKXguKEKK+C5guC4reC5ieC4p+C5iOC4sgor4LmC4Lit4Lin4Liy4LiXCivguYLguK3guKnguJAtCivguYLguK3guKnguJDguYwKK+C5guC4reC4qeC4kOC4iuC4sAor4LmC4Lit4Lip4LiQ4Lig4Lix4LiiCivguYLguK3guKrguJYKK+C5guC4reC4quC4li0KK+C5guC4reC4quC4luC4geC4o+C4o+C4oQor4LmC4Lit4Liq4Liy4LiZCivguYLguK3guKvguJnguK0KK+C5guC4reC4q+C5jOC4oQor4LmC4Lit4Lir4LmM4Lih4Lih4Li04LmA4LiV4Lit4Lij4LmMCivguYLguK3guKvguLHguIcKK+C5guC4reC4rOC4suC4owor4LmC4Lit4Lis4Liy4Lij4Li04LiBCivguYLguK3guKzguLLguKPguLbguIEKK+C5guC4reC5iOC4reC4p+C4lAor4LmC4Lit4LmJ4Lit4Lin4LiUCivguYLguK3guYjguK3guYjguLIKK+C5guC4reC5ieC5gOC4reC5iQor4LmC4Lit4LmA4Lit4LiL4Li04LiqCivguYLguK3guYnguYLguK4KK+C5hOC4rQor4LmE4Lit4LmJCivguYTguK3guIHguKPguJkKK+C5hOC4reC5guC4i+C5guC4l+C4mwor4LmE4Lit4LmB4LiU4LiUCivguYTguK3guJXguLHguKcKK+C5hOC4reC4meC5jOC4quC5hOC4leC5gOC4meC4teC4ouC4oQor4LmE4Lit4Lie4LmI4LiZCivguYTguK3guJ7guLTguKkKK+C5hOC4reC4ouC4o+C4sgor4LmE4Lit4Lii4LmA4Lij4LioCivguYTguK3guKPguLLguJ7guJUKK+C5hOC4reC4o+C4suC4p+C4seC4kwor4LmE4Lit4Lio4LiB4Lij4Li14LihCivguYTguK3guKjguKfguKPguKPguKLguYwKK+C5hOC4reC4qOC4uOC4o+C4tOC4oi0KK+C5hOC4reC4qOC4uOC4o+C4tOC4ouC4quC4oeC4muC4seC4leC4tAor4LmE4Lit4Lio4Li54Lij4Lii4LmMCivguYTguK3guYDguKrguLXguKIKK+C5hOC4reC4reC4reC4mQor4LmE4Lit4LmC4Lit4LiU4Li14LiZCivguK4KK+C4ruC4geC5gOC4geC4teC5ieC4ouC4mQor4Liu4LiUCivguK7guKfguIfguIvguLjguYnguKIKK+C4ruC4p+C4mQor4Liu4LmJ4Lin4LiZ4Lir4Lih4Li5CivguK7guKfguJoKK+C4ruC4p+C4muC4ruC4suC4mgor4Liu4LmI4LitCivguK7guYnguK0KK+C4ruC4reC4geC4geC4teC5iQor4Liu4Lit4LiUCivguK7guYjguK3guKEKK+C4ruC5iOC4reC4oeC4lOC4hwor4Liu4LmI4Lit4Lih4LmA4Lih4Li34Lit4LiHCivguK7guK3guKPguYzguYLguKHguJkKK+C4ruC4reC4peC5geC4peC4meC4lOC5jAor4Liu4Lit4Lil4Lix4LiZ4LiU4LiyCivguK7guLAKK+C4ruC4sOC4ruC5ieC4suC4ogor4Liu4Liw4LmE4Liu4LmJCivguK7guLHguIEKK+C4ruC4seC4geC5hgor4Liu4Lix4LiH4LmA4LilCivguK7guLHguIjguI3guYwKK+C4ruC4seC4iOC4jeC4sOC4ruC5jAor4Liu4Lix4LiI4LiN4Li1CivguK7guLHguYjguJkKK+C4ruC4sgor4Liu4LmJ4LiyCivguK7guYjguLLguIfguKvguKXguKfguIcKK+C4ruC4suC4m+C5iOC4sgor4Liu4Liy4LihCivguK7guLLguYDguKPguYfguKEKK+C4ruC4suC4q+C5jOC5gOC4meC4teC4ouC4oQor4Liu4LmJ4Liy4LmE4Liu4LmJCivguK7guLTguIjguYDguKPguLLguLDguKvguYwKK+C4ruC4tOC4meC4lOC4uQor4Liu4Li04Lib4LmC4Lib4LmC4Lib4LmA4LiV4Lih4Lix4LiqCivguK7guLTguKrguJfguLXguYDguKPguLXguKIKK+C4ruC4teC5gOC4peC4teC4ouC4oQor4Liu4Li2CivguK7guLbguIEKK+C4ruC4tuC4geC4q+C4suC4jQor4Liu4Li24LiB4Lir4LmJ4Liy4LinCivguK7guLbguIHguYDguKvguLTguKEKK+C4ruC4tuC4geC5guC4q+C4oQor4Liu4Li24LiB4Liu4Lix4LiBCivguK7guLbguJQKK+C4ruC4tuC4lOC4ruC4seC4lAor4Liu4Li24LmI4LihCivguK7guLbguKIKK+C4ruC4tuC4ouC5hgor4Liu4Li24LmI4LiiCivguK7guLfguJTguK7guLLguJQKK+C4ruC4t+C4rQor4Liu4Li34Lit4LmGCivguK7guLfguYjguK0KK+C4ruC4t+C5ieC4rQor4Liu4Li44LiUCivguK7guLjguJoKK+C4ruC4uOC4ouC5gOC4peC4ruC4uOC4ogor4Liu4Li54LmJCivguK7guLnguIEKK+C4ruC4ueC4oQor4LmA4LiuCivguYDguK7guIHguJXguLLguKPguYwKK+C5gOC4ruC4geC5guC4leC4geC4o+C4seC4oQor4LmA4Liu4LiB4LmC4LiV4LmA4Lih4LiV4LijCivguYDguK7guIHguYLguJXguKXguLTguJXguKMKK+C5gOC4ruC4hwor4LmA4Liu4LiH4LiL4Lin4LiiCivguYDguK7guYfguJQKK+C5gOC4ruC5guC4oeC5guC4geC4peC4muC4tOC4mQor4LmA4Liu4LiiCivguYDguK7guYnguKIKK+C5gOC4ruC5guC4o+C4reC4teC4mQor4LmA4Liu4Lil4Li04LiE4Lit4Lib4LmA4LiV4Lit4Lij4LmMCivguYDguK7guYLguKXguKrguLLguKPguLDguJ7guLIKK+C5gOC4ruC5ieC4pwor4LmA4Liu4LitCivguYDguK7guYnguK0KK+C5gOC4ruC4ruC4sgor4LmA4Liu4Li04Lij4LiV4LiL4LmMCivguYDguK7guLXguYnguKLguJkKK+C5gOC4ruC4teC5ieC4ouC4mgor4LmA4Liu4Li14LmJ4Lii4LinCivguYDguK7guLfguK3guIEKK+C5gOC4ruC4t+C4reC4geC5hgor4LmA4Liu4Li34Lit4LiB4Liq4Li44LiU4LiX4LmJ4Liy4LiiCivguYDguK7guLfguK3guJkKK+C5geC4rgor4LmB4Liu4LmICivguYHguK7guIEKK+C5geC4ruC4geC5hgor4LmB4Liu4LmI4LiB4Li24LmK4LiZCivguYHguK7guJnguJTguYzguJrguK3guKUKK+C5geC4ruC4n+C5gOC4meC4teC4ouC4oQor4LmB4Liu4LihCivguYHguK7guLAKK+C5guC4rgor4LmC4Liu4LiBCivguYLguK7guIHguK3guLfguK0KK+C5guC4ruC4geC4ruC4suC4gQor4LmC4Liu4LmA4LiV4LmH4LilCivguYLguK7guKXguYDguKHguLXguKLguKEKK+C5guC4ruC4sAor4LmE4Liu4LmJCivguYTguK7guYLguIHguKPguKHguLTguYDguJXguK3guKPguYwKK+C5hOC4ruC4lOC4o+C4sgor4LmE4Liu4LmC4LiU4Lij4LiE4Liy4Lij4LmM4Lia4Lit4LiZCivguYTguK7guYLguJTguKPguYDguIjguJkKK+C5hOC4ruC5guC4lOC4o+C5gOC4iOC4meC4i+C4seC4peC5hOC4n+C4lOC5jAor4LmE4Liu4LmC4LiU4Lij4LmA4LiI4LiZ4LmA4Lie4Lit4Lij4LmM4Lit4Lit4LiB4LmE4LiL4LiU4LmMCivguYTguK7guYLguJTguKPguKHguLTguYDguJXguK3guKPguYwKK+C5hOC4ruC5hOC4nwor4LmE4Liu4LmC4LilCivguYTguK7guK7guLUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS5qYXIgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2MWIzOWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEuamFyCkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjcyMmJlYzUwYWIxNTFmNGNlMjFjMTk4M2ViNjA3ZmQwZWU1MWYxNWE3MDg0NWY1N2FhZWYwMWI1MjE5NzNhNzcKK3NpemUgNjU2MzcyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGgxODA1Ny50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGgxODA1Ny50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk5NWU3MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90aDE4MDU3LnR4dApAQCAtMCwwICsxLDE3OTE3IEBACivvu78jKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyoKKyMqICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjKgorIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworIyAKKyMgU29ydGVkIFRoYWkgd29yZCBsaXN0IHVzZWQgZm9yIHRlc3RpbmcgdGhlIFRoYWlDb2xsYXRvciBjbGFzcy4KKyMgVGhpcyBsaXN0IHdhcyB0YWtlbiBmcm9tIHRoZSBXZWI6IDxodHRwOi8vc2Vhc3JjLnRoLm5ldC9kaWN0L2RpY3QuaHRtPgorIyBhbmQgc29tZSBvYnZpb3VzIGdhcmJhZ2UgbGluZXMgKG51bGxzLCBldGMpIHdlcmUgZGVsZXRlZAorIworIyBMaW5lcyBzdGFydGluZyB3aXRoICcjJyBhcmUgaWdub3JlZDsgb3RoZXJzIGFyZSB0cmVhdGVkIGFzIHNpbmdsZSB3b3JkcworIyBpbiB0aGUgVVRGLTggZW5jb2RpbmcuCisjCisjIFsxMi8xNS85OSBhbGl1XSByZWNvZGVkIGZyb20gVElTLTYyMCB0byBVVEYtOAorIwor4LiBCivguIHguYcKK+C4geC4gQor4LiB4LmK4LiBCivguIHguIHguILguJnguLLguIEKK+C4geC4geC4seC4k+C4j+C4geC4sAor4LiB4LiB4Li44LiPCivguIHguIHguLjguJcKK+C4geC4geC4uOC4mOC4oOC4seC4k+C4keC5jAor4LiB4LiB4Li44Liq4Lix4LiZ4LmC4LiYCivguIHguIcKK+C4geC5iOC4hwor4LiB4LmJ4LiHCivguIHguYrguIcKK+C4geC4h+C4geC4reC4mQor4LiB4LiH4LiB4Liy4LijCivguIHguIfguYLguIHguYkKK+C4geC5ieC4h+C5guC4hOC5ieC4hwor4LiB4LmJ4LiH4LiHCivguIHguIfguInguLLguIEKK+C4geC4h+C5hOC4ieC5iAor4LiB4LiH4LmA4LiV4LmH4LiBCivguIHguIfguKrguLUKK+C4geC4h+C4quC4uOC4pQor4LiB4LiKCivguIHguIrguIHguKMKK+C4geC4juC4uOC4oeC4nuC4tQor4LiB4LiPCivguIHguI/guKvguKHguLLguKIKK+C4geC4j+C4sAor4LiB4LiP4Liy4Lir4LiwCivguIHguI/guLQKK+C4geC4j+C4uOC4gQor4LiB4LiQ4Li04LiZCivguIHguJDguLTguJnguIHguLLguKUKK+C4geC4kOC4tOC4meC4leC5ieC4mQor4LiB4LiQ4Li04LiZ4LiX4Liy4LiZCivguIHguJDguLTguJnguKPguLLguKnguI7guKPguYwKK+C4geC4kOC4tOC4meC4q+C4peC4p+C4hwor4LiB4LiQ4Li04LiZ4Lix4LiV4LiW4Liy4Lij4LiB4Lij4Lij4LihCivguIHguJDguLTguJnguLjguJfguJjguLLguKPguLAKK+C4geC4k+C4tOC4geC4meC4seC4meC4leC5jAor4LiB4LiT4Li04LiB4Liy4Lij4LmMCivguIHguYDguJPguKPguLgKK+C4geC5gOC4k+C4o+C4uOC4geC4sgor4LiB4LiUCivguIHguJTguITguLHguIcKK+C4geC4lOC5geC4lOC4hwor4LiB4LiU4LiX4Liw4LmA4LilCivguIHguJTguYLguJvguYrguLAKK+C4geC4lOC4q+C4seC4p+C5guC4lQor4LiB4LiU4LmA4Lir4Lil4Li34Lit4LiHCivguIHguJXguI3guLLguJMKK+C4geC4leC4oeC4suC4peC4tQor4LiB4LiV4LmA4Lin4LiX4Li04LiV4LiyCivguIHguJXguYDguKfguJfguLUKK+C4geC4leC4seC4jeC4iuC4peC4tQor4LiB4LiV4Lix4LiN4LiN4Li44LiV4LiyCivguIHguJXguLHguI3guI3guLkKK+C4geC4leC4suC4mOC4tOC4geC4suC4owor4LiB4LiV4Liy4Lig4Li04LiZ4Li04Lir4Liy4LijCivguIHguJXguLTguIHguLIKK+C4geC4luC4sgor4LiB4LiW4Li04LiBCivguIHguJbguLTguIHguLLguIjguLLguKPguKLguYwKK+C4geC4l+C4o+C4o+C4mwor4LiB4LiX4Lil4Li04Lih4Lik4LiECivguIHguJfguKXguLUKK+C4geC4mQor4LiB4LmI4LiZCivguIHguYnguJkKK+C4geC4meC4gQor4LiB4LiZ4LiZCivguIHguJnguJnguYDguIrguK0KK+C4geC5iOC4meC4meC5guC4luC4hwor4LiB4LiZ4LiZ4LmA4Lir4Li04LihCivguIHguJnguLTguKnguJDguYwKK+C4geC4meC4tOC4qeC4kOC4sgor4LiB4LiaCivguIHguJrguI8KK+C4geC4muC4lOC4suC4mQor4LiB4Lia4LiU4Liz4LiB4Lia4LmB4LiU4LiHCivguIHguJrguJfguLkKK+C4geC4muC4suC4pQor4LiB4Lia4Li04LiZ4LiX4Lij4LmMCivguIHguJrguLTguKUKK+C4geC4muC4tOC4peC4nuC4seC4quC4lOC4uOC5jAor4LiB4Lia4Li14LmICivguIHguJrguLnguKMKK+C4geC5gOC4muC4meC4l+C4o+C5jAor4LiB4LmC4Lia4LijCivguIHguYLguJrguKUKK+C4geC4m+C4kwor4LiB4Lib4LiT4LiBCivguIHguJvguJPguLIKK+C4geC4m+C4tAor4LiB4Lib4Li04LiV4Lix4LiZCivguIHguKEKK+C4geC5ieC4oQor4LiB4Lih4LiT4LiR4Lil4Liy4Lig4Li04LmA4Lip4LiBCivguIHguKHguJPguJHguYLguKXguJfguIEKK+C4geC4oeC4pQor4LiB4Lih4Lil4LiC4Lix4LiT4LiR4LmMCivguIHguKHguKXguITguKPguKPguKDguYwKK+C4geC4oeC4peC4ieC4seC4meC4l+C5jAor4LiB4Lih4Lil4Lie4Liy4LiZ4LiY4LieCivguIHguKHguKXguLIKK+C4geC4oeC4peC4suC4qAor4LiB4Lih4Lil4Liy4Liq4LiZ4LmMCivguIHguKHguYDguKXguKgKK+C4geC4oeC4seC4k+C4keC4peC4uAor4LiB4Lih4Li44LiXCivguIHguKMKK+C4geC4o+C4gQor4LiB4Lij4LiB4LiOCivguIHguKPguIHguI7guLLguITguKEKK+C4geC4o+C4hwor4LiB4Lij4LiK4LiB4Liy4LiiCivguIHguKPguJPguJHguYwKK+C4geC4o+C4k+C4tOC4geC4suC4o+C5jAor4LiB4Lij4LiT4Li1CivguIHguKPguJPguLXguKLguYwKK+C4geC4o+C4k+C4teC4ouC4sAor4LiB4Lij4LiUCivguIHguKPguJkKK+C4geC4o+C4meC4l+C4sgor4LiB4Lij4LiZ4LiZ4LmA4LiK4LmJ4LiyCivguIHguKPguJoKK+C4geC4o+C4muC4ueC4owor4LiB4Lij4Lie4Li04LiZ4LiY4Li44LmMCivguIHguKPguKDguIEKK+C4geC4o+C4oOC4tOC4mQor4LiB4Lij4Lig4Li14Lij4LmMCivguIHguKPguKDguLjguKEKK+C4geC4o+C4oQor4LiB4Lij4Lih4LiB4Lij4Lit4LihCivguIHguKPguKHguIHguLLguKMKK+C4geC4o+C4oeC4geC4suC4o+C4nuC4tOC5gOC4qOC4qQor4LiB4Lij4Lih4LmA4LiB4Lij4Li14Lii4LihCivguIHguKPguKHguILguLjguJkKK+C4geC4o+C4oeC4iuC4sOC5geC4oeC5iAor4LiB4Lij4Lih4LiX4LmI4LiyCivguIHguKPguKHguJfguYjguLLguIHguKXguLLguIcKK+C4geC4o+C4oeC4l+C5iOC4suC4guC4p+C4sgor4LiB4Lij4Lih4LiX4LmI4Liy4LiL4LmJ4Liy4LiiCivguIHguKPguKHguJjguKPguKPguKHguYwKK+C4geC4o+C4oeC4meC4hOC4o+C4muC4suC4pQor4LiB4Lij4Lih4LiZ4LiyCivguIHguKPguKHguJ7guKPguLAKK+C4geC4o+C4oeC4nuC4o+C4sOC4geC4peC4suC5guC4q+C4oQor4LiB4Lij4Lih4Lie4Lij4Liw4Lii4LiyCivguIHguKPguKHguKHguKvguLLguJTguYTguJfguKIKK+C4geC4o+C4oeC5gOC4oeC4t+C4reC4hwor4LiB4Lij4Lih4Lin4Lix4LiHCivguIHguKPguKHguKjguLHguIHguJTguLQKK+C4geC4o+C4oeC4quC4oeC5gOC4lOC5h+C4iAor4LiB4Lij4Lih4Lir4Lih4Li34LmI4LiZCivguIHguKPguKHguKvguKXguKfguIcKK+C4geC4o+C4oeC4seC4j+C4j+C5jAor4LiB4Lij4LijCivguIHguKPguKPguYTguIHguKMKK+C4geC4o+C4o+C5gOC4iOC4teC4ouC4gQor4LiB4Lij4Lij4LiK4Li04LiHCivguIHguKPguKPguIrguLTguJQKK+C4geC4o+C4o+C5gOC4iuC4rQor4LiB4Lij4Lij4LmA4LiK4LmJ4LiyCivguIHguKPguKPguYDguIrguLXguKLguIcKK+C4geC4o+C4o+C5guC4iuC4gQor4LiB4Lij4Lij4LiL4LmJ4LiZ4LiZCivguIHguKPguKPguYHguIvguIcKK+C4geC4o+C4o+C4kOC5jAor4LiB4Lij4Lij4LiQ4LiyCivguIHguKPguKPguJMKK+C4geC4o+C4o+C4k+C4tOC4geC4suC4o+C5jAor4LiB4Lij4Lij4LiU4Li0CivguIHguKPguKPguJTguLTguIEKK+C4geC4o+C4o+C4lOC4tuC4gQor4LiB4Lij4Lij4LiV4Li4CivguIHguKPguKPguYTguJXguKMKK+C4geC4o+C4o+C4l+C4mgor4LiB4Lij4Lij4LmB4LiX4LiBCivguIHguKPguKPguYHguJfguKPguIEKK+C4geC4o+C4o+C4muC4suC4quC4tOC4gQor4LiB4Lij4Lij4Lia4Li04LiUCivguIHguKPguKPguJrguLnguKMKK+C4geC4o+C4o+C4m+C4suC4quC4tOC4gQor4LiB4Lij4Lij4Lib4Li44Lij4LiwCivguIHguKPguKPguJ7guLjguKEKK+C4geC4o+C4o+C4nuC4uOC5iOC4oQor4LiB4Lij4Lij4Lig4Li04Lij4Lih4Lii4LmMCivguIHguKPguKPguKEKK+C4geC4o+C4o+C4oeC5jAor4LiB4Lij4Lij4Lih4Liy4LiK4Li14LieCivguIHguKPguKPguKHguLLguJjguLTguIHguLLguKMKK+C4geC4o+C4o+C4oeC4suC4owor4LiB4Lij4Lij4Lil4Li1CivguIHguKPguKPguKXguLbguIcKK+C4geC4o+C4o+C4qeC4gQor4LiB4Lij4Lij4Liq4LiwCivguIHguKPguKPguYHguKrguIcKK+C4geC4o+C4o+C4q+C4suC4ogor4LiB4Lij4Lij4LmA4Lir4Li04LihCivguIHguKPguKPguYLguKvguKIKK+C4geC4o+C4o+C5gOC4reC4sgor4LiB4Lij4Lij4Li44LiT4LiyCivguIHguKPguKfguJQKK+C4geC4o+C4p+C4mQor4LiB4Lij4Lin4LiaCivguIHguKPguKfguKEKK+C4geC4o+C5ieC4p+C4oQor4LiB4Lij4Lin4LiiCivguIHguKPguKfguLTguIEKK+C4geC4o+C4quC4suC4m+C4meC5jAor4LiB4Lij4Liq4Li44LiX4LiY4Li04LmMCivguIHguKPguK0KK+C4geC4o+C5ieC4rQor4LiB4Lij4Lit4LiBCivguIHguKPguYfguK3guIHguIHguKPguYvguK3guKIKK+C4geC4o+C4reC4geC5geC4geC4o+C4gQor4LiB4Lij4Lit4LiHCivguIHguKPguK3guIfguIHguKPguK3guKIKK+C4geC4o+C4reC4lAor4LiB4Lij4LmI4Lit4LiZCivguIHguKPguK3guJoKK+C4geC4o+C4reC4oQor4LiB4Lij4LmI4Lit4LihCivguIHguKPguYjguK3guKIKK+C4geC4o+C4sAor4LiB4Lij4Liw4LiB4LijCivguIHguKPguLDguIHguKPguLHguJrguIHguKPguLDguYDguIHguKPguLXguKLguJoKK+C4geC4o+C4sOC4geC4o+C4teC5iuC4lAor4LiB4Lij4Liw4LiB4Lij4Li44LmI4LiZCivguIHguKPguLDguIHguKXguLHguJrguIHguKXguK3guIEKK+C4geC4o+C4sOC4geC4p+C4lAor4LiB4Lij4Liw4LiB4Lit4LiHCivguIHguKPguLDguIHguLHguJQKK+C4geC4o+C4sOC4geC4teC5iQor4LiB4Lij4Liw4LiB4Li54LilCivguIHguKPguLDguYDguIHguKPguK3guIEKK+C4geC4o+C4sOC5gOC4geC4o+C4tOC4gQor4LiB4Lij4Liw4LmA4LiB4Lij4Li04LmI4LiZCivguIHguKPguLDguYDguIHguKPguLXguKLguJoKK+C4geC4o+C4sOC5gOC4geC4o+C4teC4ouC4oQor4LiB4Lij4Liw4LmA4LiB4Lij4Li14Lii4LinCivguIHguKPguLDguYDguIHguKPguLXguYnguKLguKcKK+C4geC4o+C4sOC5gOC4geC4peC4t+C4reC4gQor4LiB4Lij4Liw4LiE4LiZCivguIHguKPguLDguITguLLguKIKK+C4geC4o+C4sOC4hOC4uOC4gQor4LiB4Lij4Liw4LiH4LiB4LiB4Lij4Liw4LiH4Lix4LiZCivguIHguKPguLDguIfguIHguIHguKPguLDguYDguIfguLTguYjguJkKK+C4geC4o+C4sOC4h+C5iOC4reC4h+C4geC4o+C4sOC5geC4h+C5iOC4hwor4LiB4Lij4Liw4LiH4Lit4LiUCivguIHguKPguLDguIfguYjguK3guJnguIHguKPguLDguYHguIfguYjguJkKK+C4geC4o+C4sOC5guC4h+C4gQor4LiB4Lij4Liw4LiI4LiBCivguIHguKPguLDguIjguIcKK+C4geC4o+C4sOC4iOC4owor4LiB4Lij4Liw4LiI4Lit4LiBCivguIHguKPguLDguIjguK3guIfguKvguIfguYjguK3guIcKK+C4geC4o+C4sOC4iOC4reC4h+C4reC5geC4hwor4LiB4Lij4Liw4LiI4LmJ4Lit4LiZCivguIHguKPguLDguIjguK3guJnguKvguLkKK+C4geC4o+C4sOC4iOC5ieC4reC4ogor4LiB4Lij4Liw4LiI4LmL4Lit4Lir4Lin4LitCivguIHguKPguLDguIjguLAKK+C4geC4o+C4sOC4iOC4seC4gQor4LiB4Lij4Liw4LiI4Lix4LiHCivguIHguKPguLDguIjguLHguIfguKvguKXguLHguIfguYDguJrguLXguYnguKIKK+C4geC4o+C4sOC4iOC4seC4lAor4LiB4Lij4Liw4LiI4Lix4LiaCivguIHguKPguLDguIjguLHguJrguJvguLTguYnguIcKK+C4geC4o+C4sOC4iOC4seC4muC4m+C4teC5iAor4LiB4Lij4Liw4LiI4LmI4LiyCivguIHguKPguLDguIjguYjguLLguIcKK+C4geC4o+C4sOC4iOC4suC4lAor4LiB4Lij4Liw4LiI4Liy4LiZCivguIHguKPguLDguIjguLLguJoKK+C4geC4o+C4sOC4iOC4suC4oQor4LiB4Lij4Liw4LiI4Liy4LiiCivguIHguKPguLDguIjguLLguKcKK+C4geC4o+C4sOC4iOC4tOC4gQor4LiB4Lij4Liw4LiI4Li04LmL4LiHCivguIHguKPguLDguIjguLTguJQKK+C4geC4o+C4sOC4iOC4tOC4mgor4LiB4Lij4Liw4LiI4Li04LmL4LihCivguIHguKPguLDguIjguLTguKPguLTguJQKK+C4geC4o+C4sOC4iOC4tOC5i+C4pwor4LiB4Lij4Liw4LiI4Li14LmJCivguIHguKPguLDguIjguLXguYsKK+C4geC4o+C4sOC4iOC4uOC4gQor4LiB4Lij4Liw4LiI4Li44LmL4LiH4LiB4Lij4Liw4LiI4Li04LmL4LiHCivguIHguKPguLDguIjguLjguJoKK+C4geC4o+C4sOC4iOC4uOC5iuC4mgor4LiB4Lij4Liw4LiI4Li44Lia4LiB4Lij4Liw4LiI4Li04LiaCivguIHguKPguLDguIjguLjguYvguKHguIHguKPguLDguIjguLTguYvguKEKK+C4geC4o+C4sOC4iOC4uOC4ogor4LiB4Lij4Liw4LiI4Li54LmJCivguIHguKPguLDguIjguLnguYvguIHguKPguLDguIjguLXguYsKK+C4geC4o+C4sOC4iOC4ueC4lAor4LiB4Lij4Liw4LmA4LiI4Lit4Liw4LiB4Lij4Liw4LmA4LiI4Li04LiHCivguIHguKPguLDguYDguIjguLIKK+C4geC4o+C4sOC5gOC4iOC5iOC4sgor4LiB4Lij4Liw4LmA4LiI4LmJ4LiyCivguIHguKPguLDguYDguIjguLLguLAKK+C4geC4o+C4sOC5gOC4iOC4tOC4hwor4LiB4Lij4Liw4LmA4LiI4Li04LiU4LiB4Lij4Liw4LmA4LiI4Li04LiHCivguIHguKPguLDguYDguIjguLXguYnguKLguIcKK+C4geC4o+C4sOC5gOC4iOC4teC5iuC4ouC4mgor4LiB4Lij4Liw4LmA4LiI4Li14Lii4LinCivguIHguKPguLDguYDguIjguLXguYrguKLguKcKK+C4geC4o+C4sOC5geC4iOC4sAor4LiB4Lij4Liw4LmC4LiI4LiZCivguIHguKPguLDguYLguIjguKEKK+C4geC4o+C4sOC4ieC4hwor4LiB4Lij4Liw4LiJ4Lit4LiBCivguIHguKPguLDguInguYjguK3guJkKK+C4geC4o+C4sOC4ieC4seC4muC4geC4o+C4sOC5gOC4ieC4hwor4LiB4Lij4Liw4LiJ4Li04LmI4LiHCivguIHguKPguLDguInguLXguIEKK+C4geC4o+C4sOC4ieC4uOC4gQor4LiB4Lij4Liw4LiJ4Li54LiUCivguIHguKPguLDguYDguInguIEKK+C4geC4o+C4sOC5gOC4ieC4hwor4LiB4Lij4Liw4LmA4LiJ4LiUCivguIHguKPguLDguYHguInguIEKK+C4geC4o+C4sOC5geC4ieC5iOC4mQor4LiB4Lij4Liw4LmC4LiJ4LiB4LiB4Lij4Liw4LmA4LiJ4LiBCivguIHguKPguLDguYLguInguKEKK+C4geC4o+C4sOC4iuC4hwor4LiB4Lij4Liw4LiK4LiU4LiB4Lij4Liw4LiK4LmJ4Lit4LiiCivguIHguKPguLDguIrguKfguKIKK+C4geC4o+C4sOC4iuC4reC4gQor4LiB4Lij4Liw4LiK4Lit4LiZCivguIHguKPguLDguIrguK3guKEKK+C4geC4o+C4sOC4iuC4reC4oeC4lOC4reC4gQor4LiB4Lij4Liw4LiK4LmJ4Lit4LiiCivguIHguKPguLDguIrguYnguK3guKLguJnguLLguIfguKPguLMKK+C4geC4o+C4sOC4iuC4seC4hwor4LiB4Lij4Liw4LiK4Lix4LmJ4LiZCivguIHguKPguLDguIrguLHguJoKK+C4geC4o+C4sOC4iuC4suC4gQor4LiB4Lij4Liw4LiK4LmI4Liy4LiHCivguIHguKPguLDguIrguLLguYDguJTguLTguKEKK+C4geC4o+C4sOC4iuC4suC4ogor4LiB4Lij4Liw4LiK4Li04LiHCivguIHguKPguLDguIrguLTguJQKK+C4geC4o+C4sOC4iuC4uAor4LiB4Lij4Liw4LiK4Li44LiBCivguIHguKPguLDguIrguLjguYjguKHguIHguKPguLDguIrguKfguKIKK+C4geC4o+C4sOC5gOC4iuC4rQor4LiB4Lij4Liw4LmA4LiK4LiyCivguIHguKPguLDguYDguIrguYnguLIKK+C4geC4o+C4sOC5gOC4iuC4teC4ouC4hwor4LiB4Lij4Liw4LmB4LiK4LiHCivguIHguKPguLDguYHguIrguLAKK+C4geC4o+C4sOC5guC4iuC4gQor4LiB4Lij4Liw4LiL4Lin4LiiCivguIHguKPguLDguIvguYnguK0KK+C4geC4o+C4sOC4i+C5iOC4reC4h+C4geC4o+C4sOC5geC4i+C5iOC4hwor4LiB4Lij4Liw4LiL4Lix4LiaCivguIHguKPguLDguIvguLHguJrguJvguLLguIHguYDguKPguLfguK0KK+C4geC4o+C4sOC4i+C5iOC4suC4hwor4LiB4Lij4Liw4LiL4Liy4LiaCivguIHguKPguLDguIvguLTguIEKK+C4geC4o+C4sOC4i+C4tOC4mgor4LiB4Lij4Liw4LiL4Li14LmJCivguIHguKPguLDguIvguLXguYnguIHguKPguLDguIvguYnguK0KK+C4geC4o+C4sOC4i+C4uOC4hwor4LiB4Lij4Liw4LiL4Li44Lia4LiB4Lij4Liw4LiL4Li04LiaCivguIHguKPguLDguIvguLjguYnguKEKK+C4geC4o+C4sOC4i+C4ueC5iAor4LiB4Lij4Liw4LmA4LiLCivguIHguKPguLDguYDguIvguYfguJkKK+C4geC4o+C4sOC5gOC4i+C4rQor4LiB4Lij4Liw4LmA4LiL4Lit4Liw4LiB4Lij4Liw4LmA4LiL4LitCivguIHguKPguLDguYDguIvguK3guLDguIHguKPguLDguYDguIvguLTguIcKK+C4geC4o+C4sOC5gOC4i+C5ieC4sgor4LiB4Lij4Liw4LmA4LiL4Li04LiHCivguIHguKPguLDguYHguIsKK+C4geC4o+C4sOC5geC4i+C4sAor4LiB4Lij4Liw4LmC4LiL4LiB4Lij4Liw4LmA4LiLCivguIHguKPguLDguI7guLUKK+C4geC4o+C4sOC4juC4uOC4oeC4nuC4tQor4LiB4Lij4Liw4LiU4LiBCivguIHguKPguLDguJTguYnguIcKK+C4geC4o+C4sOC4lOC4meC5guC4lOC5iAor4LiB4Lij4Liw4LiU4Lin4LiHCivguIHguKPguLDguJTguKfguJkKK+C4geC4o+C4sOC4lOC5ieC4p+C4oeC4geC4o+C4sOC5gOC4lOC4teC5ieC4ouC4oQor4LiB4Lij4Liw4LiU4LitCivguIHguKPguLDguJTguK3guIcKK+C4geC4o+C4sOC4lOC4reC4h+C4q+C4suC4ogor4LiB4Lij4Liw4LiU4Lit4LiZCivguIHguKPguLDguJTguK3guKEKK+C4geC4o+C4sOC4lOC4seC4geC4geC4o+C4sOC5gOC4lOC4teC5ieC4ogor4LiB4Lij4Liw4LiU4Lix4LiH4LiH4Lix4LinCivguIHguKPguLDguJTguLHguIfguIfguLIKK+C4geC4o+C4sOC4lOC4suC4gQor4LiB4Lij4Liw4LiU4LmJ4Liy4LiHCivguIHguKPguLDguJTguLLguIfguKXguLLguIcKK+C4geC4o+C4sOC4lOC4suC4lAor4LiB4Lij4Liw4LiU4Liy4LiU4LiC4Liy4LinCivguIHguKPguLDguJTguLLguJkKK+C4geC4o+C4sOC4lOC4suC4qQor4LiB4Lij4Liw4LiU4Liy4Lip4LmA4LiX4LioCivguIHguKPguLDguJTguLPguIHguKPguLDguJTguYjguLLguIcKK+C4geC4o+C4sOC4lOC4tOC4gQor4LiB4Lij4Liw4LiU4Li04LmI4LiHCivguIHguKPguLDguJTguLTguYnguIcKK+C4geC4o+C4sOC4lOC4tOC5iOC4h+C4l+C4reC4hwor4LiB4Lij4Liw4LiU4Li04Lia4LmGCivguIHguKPguLDguJTguLXguYgKK+C4geC4o+C4sOC4lOC4teC5ieC4geC4o+C4sOC5gOC4lOC4teC4ouC4oQor4LiB4Lij4Liw4LiU4Li14LmI4Lir4Lih4LmJ4LitCivguIHguKPguLDguJTguLbguIcKK+C4geC4o+C4sOC4lOC4t+C4mgor4LiB4Lij4Liw4LiU4Li4CivguIHguKPguLDguJTguLjguIHguIHguKPguLDguJTguLTguIEKK+C4geC4o+C4sOC4lOC4uOC5ieC4h+C4geC4o+C4sOC4lOC4tOC5ieC4hwor4LiB4Lij4Liw4LiU4Li44Lia4LmGCivguIHguKPguLDguJTguLjguJrguIHguKPguLDguJTguLTguJoKK+C4geC4o+C4sOC4lOC4uOC4oQor4LiB4Lij4Liw4LiU4Li54LiBCivguIHguKPguLDguYDguJTguYnguIcKK+C4geC4o+C4sOC5gOC4lOC5h+C4mQor4LiB4Lij4Liw4LmA4LiU4LmJ4LiyCivguIHguKPguLDguYDguJTguLLguLAKK+C4geC4o+C4sOC5gOC4lOC4tOC4lAor4LiB4Lij4Liw4LmA4LiU4Li14LmJ4LiiCivguIHguKPguLDguYDguJTguLXguKLguJQKK+C4geC4o+C4sOC5gOC4lOC4teC4ouC4oQor4LiB4Lij4Liw4LmA4LiU4Li14LmJ4Lii4LihCivguIHguKPguLDguYDguJTguLfguK3guIEKK+C4geC4o+C4sOC5gOC4lOC4t+C5iOC4reC4hwor4LiB4Lij4Liw4LmB4LiU4LmH4LiB4LmGCivguIHguKPguLDguYHguJTguYnguIcKK+C4geC4o+C4sOC5geC4lOC5ieC5geC4o+C5iAor4LiB4Lij4Liw4LmB4LiU4LmI4Lin4LmGCivguIHguKPguLDguYHguJTguLAKK+C4geC4o+C4sOC5guC4lOC4gQor4LiB4Lij4Liw4LmC4LiU4LiHCivguIHguKPguLDguYLguJTguIfguYHguJTguIcKK+C4geC4o+C4sOC5guC4lOC4lAor4LiB4Lij4Liw4LmC4LiU4LiZCivguIHguKPguLDguYPguJQKK+C4geC4o+C4sOC5hOC4lAor4LiB4Lij4Liw4LiV4Lij4LiB4LiB4Lij4Liw4LiV4Lij4LizCivguIHguKPguLDguJXguKPguYnguK0KK+C4geC4o+C4sOC4leC4o+C4seC4mgor4LiB4Lij4Liw4LiV4Lij4Liy4LiBCivguIHguKPguLDguJXguKPguLMKK+C4geC4o+C4sOC4leC4o+C4uOC4lAor4LiB4Lij4Liw4LiV4Lij4Li44LihCivguIHguKPguLDguJXguYnguKfguKHguIHguKPguLDguYDguJXguLXguYnguKLguKEKK+C4geC4o+C4sOC4leC5ieC4rQor4LiB4Lij4Liw4LiV4LmI4Lit4LiH4LiB4Lij4Liw4LmB4LiV4LmI4LiHCivguIHguKPguLDguJXguYrguK3guJoKK+C4geC4o+C4sOC4leC5iOC4reC4oSB7IOC4geC4uuC4o+C4sOC4leC5iOC4reC4oSB9CivguIHguKPguLDguJXguYnguK3guKLguJXguLXguKfguLTguJQKK+C4geC4o+C4sOC4leC4seC4gQor4LiB4Lij4Liw4LiV4Lix4LmJ4LinCivguIHguKPguLDguJXguLLguIEKK+C4geC4o+C4sOC4leC5iuC4suC4gQor4LiB4Lij4Liw4LiV4LmI4Liy4LiiCivguIHguKPguLDguJXguLTguIEKK+C4geC4o+C4sOC4leC4tOC5ieC4hwor4LiB4Lij4Liw4LiV4Li04LmK4LiUCivguIHguKPguLDguJXguLTguJoKK+C4geC4o+C4sOC4leC4t+C4reC4o+C4t+C4reC4o+C5ieC4mQor4LiB4Lij4Liw4LiV4Li44LiBCivguIHguKPguLDguJXguLjguIHguIHguKPguLDguJXguLTguIEKK+C4geC4o+C4sOC4leC4uOC5ieC4h+C4geC4o+C4sOC4leC4tOC5ieC4hwor4LiB4Lij4Liw4LiV4Li44LmI4LiZCivguIHguKPguLDguJXguLjguYnguJkKK+C4geC4o+C4sOC4leC4ueC4mgor4LiB4Lij4Liw4LmA4LiV4LiHCivguIHguKPguLDguYDguJXguYfguJkKK+C4geC4o+C4sOC5gOC4leC4reC4sAor4LiB4Lij4Liw4LmA4LiV4LmI4LiyCivguIHguKPguLDguYDguJXguLLguLAKK+C4geC4o+C4sOC5gOC4leC4suC4sOC4geC4o+C4sOC5geC4leC4sAor4LiB4Lij4Liw4LmA4LiV4Li14LmJ4Lii4LihCivguIHguKPguLDguYDguJXguLfguYnguK3guIcKK+C4geC4o+C4sOC5geC4lQor4LiB4Lij4Liw4LmB4LiV4LmI4LiHCivguIHguKPguLDguYHguJXguYHguJXguYnguYHguKfguYnguJQKK+C4geC4o+C4sOC5geC4leC4p+C4seC4mgor4LiB4Lij4Liw4LmB4LiV4LiwCivguIHguKPguLDguYLguJXguIHguIHguKPguLDguJXguLLguIEKK+C4geC4o+C4sOC5guC4leC4mQor4LiB4Lij4Liw4LmE4LiV4LijCivguIHguKPguLDguJbguJQKK+C4geC4o+C4sOC4luC4reC4mgor4LiB4Lij4Liw4LiW4Lix4LmI4LinCivguIHguKPguLDguJbguLLguIcKK+C4geC4o+C4sOC4luC4tOC4gQor4LiB4Lij4Liw4LiW4Li04LiZCivguIHguKPguLDguJbguLbguIEKK+C4geC4o+C4sOC5gOC4luC4tOC4mgor4LiB4Lij4Liw4LmC4LiW4LiZCivguIHguKPguLDguJfguIEKK+C4geC4o+C4sOC4l+C4hwor4LiB4Lij4Liw4LiX4LiH4Lil4Liy4LiiCivguIHguKPguLDguJfguJQKK+C4geC4o+C4sOC4l+C4mgor4LiB4Lij4Liw4LiX4Lij4Lin4LiHCivguIHguKPguLDguJfguKfguKIgeyDguIHguLrguKPguLDguJfguKfguKIgfQor4LiB4Lij4Liw4LiX4Lit4LiBCivguIHguKPguLDguJfguYnguK3guJkKK+C4geC4o+C4sOC4l+C5iOC4reC4meC4geC4o+C4sOC5geC4l+C5iOC4mQor4LiB4Lij4Liw4LiX4LmI4Lit4LihCivguIHguKPguLDguJfguYnguK3guKHguIHguKPguLDguYHguJfguYnguKEKK+C4geC4o+C4sOC4l+C4sAor4LiB4Lij4Liw4LiX4Lix4LmI4LiHCivguIHguKPguLDguJfguLHguYjguIfguJXguLTguJQKK+C4geC4o+C4sOC4l+C4seC4mQor4LiB4Lij4Liw4LiX4Lix4LmJ4LiZCivguIHguKPguLDguJfguLIKK+C4geC4o+C4sOC4l+C4suC4iuC4suC4ogor4LiB4Lij4Liw4LiX4Liy4LiiCivguIHguKPguLDguJfguLLguKLguYDguKvguLTguJkKK+C4geC4o+C4sOC4l+C4suC4quC4tQor4LiB4Lij4Liw4LiX4Liy4Lir4Lit4LiHCivguIHguKPguLDguJfguLMKK+C4geC4o+C4sOC4l+C4tOC4geC4geC4o+C4sOC4l+C4p+C4ogor4LiB4Lij4Liw4LiX4Li04LiHCivguIHguKPguLDguJfguLbguIcKK+C4geC4o+C4sOC4l+C4t+C4mgor4LiB4Lij4Liw4LiX4Li4CivguIHguKPguLDguJfguLjguIcKK+C4geC4o+C4sOC4l+C4uOC5ieC4hwor4LiB4Lij4Liw4LiX4Li44LiH4Lil4Liy4LiiCivguIHguKPguLDguJfguLjguIfguKvguKHguLLguJrguYnguLIKK+C4geC4o+C4sOC4l+C4uOC4h+C5gOC4q+C4pwor4LiB4Lij4Liw4LiX4Li44LmI4LihCivguIHguKPguLDguJfguLjguYjguKHguILguLXguYnguKvguKHguLkKK+C4geC4o+C4sOC4l+C4uOC5iOC4oeC4meC4sgor4LiB4Lij4Liw4LiX4Li44LmI4Lih4Lir4Lih4Li5CivguIHguKPguLDguJfguLnguYkKK+C4geC4o+C4sOC5gOC4l+C5iAor4LiB4Lij4Liw4LmA4LiX4Li14Lii4LiaCivguIHguKPguLDguYDguJfguLXguKLguKEKK+C4geC4o+C4sOC5gOC4l+C4t+C4reC4mQor4LiB4Lij4Liw4LmA4LiX4Li34LmJ4Lit4LihCivguIHguKPguLDguYHguJfguIEKK+C4geC4o+C4sOC5geC4l+C5iOC4mQor4LiB4Lij4Liw4LmB4LiX4LmJ4LihCivguIHguKPguLDguYHguJfguLAKK+C4geC4o+C4sOC5hOC4l+C4iuC4suC4ogor4LiB4Lij4Liw4LiZ4LiBCivguIHguKPguLDguJnguYjguK3guIcKK+C4geC4o+C4sOC4meC4seC5ieC4mQor4LiB4Lij4Liw4LiZ4Li14LmJCivguIHguKPguLDguYLguJnguYnguJkKK+C4geC4o+C4sOC5hOC4mQor4LiB4Lij4Liw4Lia4LiBCivguIHguKPguLDguJrguIHguITguLLguKIKK+C4geC4o+C4sOC4muC4lgor4LiB4Lij4Liw4Lia4Lin4LiZCivguIHguKPguLDguJrguKfguKIKK+C4geC4o+C4sOC4muC4p+C4owor4LiB4Lij4Liw4Lia4Lit4LiBCivguIHguKPguLDguJrguK3guIHguYDguKrguLXguKLguIcKK+C4geC4o+C4sOC4muC4reC4hwor4LiB4Lij4Liw4Lia4Lit4LiH4LiB4Lix4LiZCivguIHguKPguLDguJrguK3guIfguYDguJ7guIrguKMKK+C4geC4o+C4sOC4muC4reC4h+C4o+C4suC4q+C4uQor4LiB4Lij4Liw4Lia4LiwCivguIHguKPguLDguJrguLHguJQKK+C4geC4o+C4sOC4muC4seC5ieC4p+C4geC4o+C4sOC5gOC4muC4teC5ieC4ogor4LiB4Lij4Liw4Lia4LmI4LiyCivguIHguKPguLDguJrguYnguLIKK+C4geC4o+C4sOC4muC4suC4gQor4LiB4Lij4Liw4Lia4Liy4LiiCivguIHguKPguLDguJrguLLguKUgeyDguIHguLrguKPguLDguJrguLLguJkgfQor4LiB4Lij4Liw4Lia4Li0CivguIHguKPguLDguJrguLTguYnguIcKK+C4geC4o+C4sOC4muC4tOC4lAor4LiB4Lij4Liw4Lia4Li04LilCivguIHguKPguLDguJrguLXguYgKK+C4geC4o+C4sOC4muC4t+C4rQor4LiB4Lij4Liw4Lia4Li44LiHCivguIHguKPguLDguJrguLjguKEKK+C4geC4o+C4sOC4muC4uOC5iOC4oeC4geC4o+C4sOC4muC5iOC4suC4oQor4LiB4Lij4Liw4Lia4Li54LmJ4LiB4Lij4Liw4Lia4Li14LmJCivguIHguKPguLDguJrguLnguJkKK+C4geC4o+C4sOC4muC4ueC4owor4LiB4Lij4Liw4LmA4Lia4LiHCivguIHguKPguLDguYDguJrguI0KK+C4geC4o+C4sOC5gOC4muC5h+C4lOC4geC4o+C4sOC4muC4p+C4mQor4LiB4Lij4Liw4LmA4Lia4LiZCivguIHguKPguLDguYDguJrguLIKK+C4geC4o+C4sOC5gOC4muC4tOC4gQor4LiB4Lij4Liw4LmA4Lia4Li14LmJ4LiiCivguIHguKPguLDguYDguJrguLXguKLguJQKK+C4geC4o+C4sOC5gOC4muC4teC4ouC4mQor4LiB4Lij4Liw4LmA4Lia4Li34LmJ4Lit4LiHCivguIHguKPguLDguYDguJrguLfguYnguK3guIfguJbguYnguKfguKIKK+C4geC4o+C4sOC5geC4muC5iAor4LiB4Lij4Liw4LmB4Lia4LiBCivguIHguKPguLDguYHguJrguIHguIfguLIKK+C4geC4o+C4sOC5geC4muC4sAor4LiB4Lij4Liw4LmC4Lia4LihCivguIHguKPguLDguJvguKHguIHguKPguLDguJvguLMKK+C4geC4o+C4sOC4m+C4oeC4geC4o+C4sOC5gOC4m+C4sgor4LiB4Lij4Liw4Lib4Lij4Lit4LiBCivguIHguKPguLDguJvguKPguK3guIHguKfguYjguLLguKcKK+C4geC4o+C4sOC4m+C4o+C4teC5ieC4geC4o+C4sOC5gOC4m+C4o+C5iOC4sgor4LiB4Lij4Liw4Lib4Lit4LiBCivguIHguKPguLDguJvguYnguK3guIHguKPguLDguYHguJvguYkKK+C4geC4o+C4sOC4m+C5iOC4reC4hwor4LiB4Lij4Liw4Lib4LmL4Lit4LiHCivguIHguKPguLDguJvguK3guJTguIHguKPguLDguYHguJvguJQKK+C4geC4o+C4sOC4m+C5i+C4reC4q+C4peC4rQor4LiB4Lij4Liw4Lib4Lix4LmJ4Lin4LiB4Lij4Liw4LmA4Lib4Li14LmJ4LiiCivguIHguKPguLDguJvguYjguLMKK+C4geC4o+C4sOC4m+C4tOC5iOC4oQor4LiB4Lij4Liw4Lib4Li44LiBCivguIHguKPguLDguJvguLjguYjguKEKK+C4geC4o+C4sOC4m+C4uOC5iOC4oeC4geC4o+C4sOC4m+C5iOC4swor4LiB4Lij4Liw4Lib4Li44LmI4Lih4LiB4Lij4Liw4Lib4Li04LmI4LihCivguIHguKPguLDguYDguJvguLIKK+C4geC4o+C4sOC5gOC4m+C5i+C4sgor4LiB4Lij4Liw4LmA4Lib4Liy4LiwCivguIHguKPguLDguYDguJvguLXguYnguKIgeyDguIHguLrguKPguLDguYDguJvguLXguYnguKIgfQor4LiB4Lij4Liw4LmB4Lib4LmJCivguIHguKPguLDguYHguJvguJQKK+C4geC4o+C4sOC5guC4m+C4gQor4LiB4Lij4Liw4LmC4Lib4Lij4LiHCivguIHguKPguLDguYLguJvguKPguIfguJfguK3guIcKK+C4geC4o+C4sOC4nOC4oQor4LiB4Lij4Liw4Lic4Lil4Liy4LihCivguIHguKPguLDguJzguKXguLXguIHguKPguLDguJzguKXguLLguKEKK+C4geC4o+C4sOC4nOC4suC4mQor4LiB4Lij4Liw4Lic4Li14LiBCivguIHguKPguLDguJ7guKPguKfguJkKK+C4geC4o+C4sOC4nuC4o+C4tOC5ieC4oQor4LiB4Lij4Liw4Lie4Lit4LiBCivguIHguKPguLDguJ7guK3guIHguKfguLHguKcKK+C4geC4o+C4sOC4nuC4reC4hwor4LiB4Lij4Liw4Lie4LmJ4Lit4LihCivguIHguKPguLDguJ7guLHguIEKK+C4geC4o+C4sOC4nuC4seC4hwor4LiB4Lij4Liw4Lie4Lix4LiH4LmA4Lir4Li04LijCivguIHguKPguLDguJ7guLHguIfguYLguKvguKEKK+C4geC4o+C4sOC4nuC4seC4lAor4LiB4Lij4Liw4Lie4Lix4LiU4LmB4Lih4LmI4Lih4LmI4Liy4LiiCivguIHguKPguLDguJ7guLHguJXguKMKK+C4geC4o+C4sOC4nuC4seC4mQor4LiB4Lij4Liw4Lie4Lix4LmI4LiZCivguIHguKPguLDguJ7guLIKK+C4geC4o+C4sOC4nuC4suC4gSB7IOC4geC4uuC4o+C4sOC4nuC4suC4gSB9CivguIHguKPguLDguJ7guLXguYkKK+C4geC4o+C4sOC4nuC4t+C4rQor4LiB4Lij4Liw4Lie4Li44LmJ4LiHCivguIHguKPguLDguJ7guLjguYjguKEKK+C4geC4o+C4sOC5gOC4nuC4peC4tOC4qAor4LiB4Lij4Liw4LmA4Lie4Liy4LiwCivguIHguKPguLDguYDguJ7guLLguLDguJvguKXguLIKK+C4geC4o+C4sOC5gOC4nuC4tOC4hwor4LiB4Lij4Liw4LmA4Lie4Li34LmI4Lit4LihCivguIHguKPguLDguYHguJ7guIcKK+C4geC4o+C4sOC5geC4nuC5ieC4hwor4LiB4Lij4Liw4Lif4Lix4LiU4LiB4Lij4Liw4LmA4Lif4Li14Lii4LiUCivguIHguKPguLDguJ/guLLguKIKK+C4geC4o+C4sOC4n+C4ueC4oeC4geC4o+C4sOC4n+C4suC4ogor4LiB4Lij4Liw4LmA4Lif4Li14Lii4LiUCivguIHguKPguLDguKHguKUKK+C4geC4o+C4sOC4oeC4reC4mgor4LiB4Lij4Liw4Lih4Lit4Lih4LiB4Lij4Liw4LmB4Lih4LihCivguIHguKPguLDguKHguLHguIcKK+C4geC4o+C4sOC4oeC4seC4mQor4LiB4Lij4Liw4Lih4Li04LiU4LiB4Lij4Liw4LmA4Lih4Li14LmJ4Lii4LiZCivguIHguKPguLDguKHguLbguJkKK+C4geC4o+C4sOC4oeC4uOC4lwor4LiB4Lij4Liw4LmA4Lih4Liy4LiwCivguIHguKPguLDguYDguKHguLXguYnguKLguJkKK+C4geC4o+C4sOC5geC4oeC4oQor4LiB4Lij4Liw4Lii4LmI4Lit4LiHCivguIHguKPguLDguKLguYjguK3guIfguIHguKPguLDguYHguKLguYjguIcKK+C4geC4o+C4sOC4ouC5iOC4reC4mQor4LiB4Lij4Liw4Lii4LmI4Lit4LihCivguIHguKPguLDguKLguLIKK+C4geC4o+C4sOC4ouC4suC4hwor4LiB4Lij4Liw4Lii4Liy4LiI4LiBCivguIHguKPguLDguKLguLLguJQKK+C4geC4o+C4sOC4ouC4suC4q+C4h+C4seC4mQor4LiB4Lij4Liw4Lii4Li04LiBCivguIHguKPguLDguKLguLTguYnguKHguIHguKPguLDguKLguYjguK3guIcKK+C4geC4o+C4sOC4ouC4tuC4geC4geC4o+C4sOC4ouC4t+C4rQor4LiB4Lij4Liw4Lii4Li24LiU4LiB4Lij4Liw4Lii4Liy4LiUCivguIHguKPguLDguYDguKLguYnguK3guIHguKPguLDguYHguKvguKLguYjguIcKK+C4geC4o+C4sOC5geC4ouC5iOC4hwor4LiB4Lij4Liw4Lij4Lit4LiBCivguIHguKPguLDguKPguK3guIHguJnguYnguLPguILguYnguLLguKcKK+C4geC4o+C4sOC5gOC4o+C4teC4ouC4mQor4LiB4Lij4Liw4LmC4Lij4LiB4LiZ4LmJ4Liz4LiC4LmJ4Liy4LinCivguIHguKPguLDguYLguKPguIHguYPguKvguI3guYgKK+C4geC4o+C4sOC5hOC4owor4LiB4Lij4Liw4Lil4LiUCivguIHguKPguLDguKXguJoKK+C4geC4o+C4sOC4peC4reC4gQor4LiB4Lij4Liw4Lil4Lit4LihCivguIHguKPguLDguKXguLDguKvguKXguYjguLMKK+C4geC4o+C4sOC4peC4seC4lAor4LiB4Lij4Liw4Lil4Lix4LiaCivguIHguKPguLDguKXguLHguKHguJ7guKMKK+C4geC4o+C4sOC4peC4sgor4LiB4Lij4Liw4Lil4Liy4LiB4Liy4LijCivguIHguKPguLDguKXguLLguKLguIHguKPguLDguKXguK3guIEKK+C4geC4o+C4sOC4peC4swor4LiB4Lij4Liw4Lil4Liz4Lie4LijCivguIHguKPguLDguKXguLPguJ7guLHguIEKK+C4geC4o+C4sOC4peC4s+C4nuC4uOC4gQor4LiB4Lij4Liw4Lil4Li04LiHCivguIHguKPguLDguKXguLUKK+C4geC4o+C4sOC4peC4tuC4hwor4LiB4Lij4Liw4Lil4Li44Lih4Lie4Liy4LiHCivguIHguKPguLDguKXguLjguKHguJ7guLjguIEKK+C4geC4o+C4sOC4peC4uOC4oeC4nuC4uQor4LiB4Lij4Liw4Lil4Li54LiZCivguIHguKPguLDguKXguLnguYjguJnguYwKK+C4geC4o+C4sOC5gOC4peC5h+C4mQor4LiB4Lij4Liw4LmA4Lil4Li14Lii4LiUCivguIHguKPguLDguYDguKXguLfguK3guIEKK+C4geC4o+C4sOC5guC4peC4hwor4LiB4Lij4Liw4Lin4LiZCivguIHguKPguLDguKfguLHguJQKK+C4geC4o+C4sOC4p+C5iOC4sgor4LiB4Lij4Liw4Lin4Liy4LiUCivguIHguKPguLDguKfguLLguJkKK+C4geC4o+C4sOC4p+C4suC4ogor4LiB4Lij4Liw4Lin4Li04LiZCivguIHguKPguLDguKfguLUKK+C4geC4o+C4sOC4p+C4teC4geC4o+C4sOC4p+C4suC4lAor4LiB4Lij4Liw4Lin4Li54LiU4LiB4Lij4Liw4Lin4Liy4LiUCivguIHguKPguLDguYDguKfguJkKK+C4geC4o+C4sOC5gOC4p+C4ouC4geC4o+C4sOC4p+C4suC4ogor4LiB4Lij4Liw4LmB4Lin4LiZCivguIHguKPguLDguYLguKfguKLguIHguKPguLDguKfguLLguKIKK+C4geC4o+C4sOC4qOC4gQor4LiB4Lij4Liw4Lio4Lix4LiiCivguIHguKPguLDguKnguLHguJXguKPguLTguKLguYwKK+C4geC4o+C4sOC4qeC4seC4leC4o+C4tQor4LiB4Lij4Liw4Lip4Lix4LiiCivguIHguKPguLDguKnguLLguJvguJPguYwKK+C4geC4o+C4sOC4qeC4tOC4owor4LiB4Lij4Liw4LmA4Lip4LihCivguIHguKPguLDguYDguKnguLXguKLguKMKK+C4geC4o+C4sOC4quC4hwor4LiB4Lij4Liw4Liq4LiZCivguIHguKPguLDguKrguJoKK+C4geC4o+C4sOC4quC4oQor4LiB4Lij4Liw4Liq4Lij4Lin4LilCivguIHguKPguLDguKrguKPguYnguK3guKIKK+C4geC4o+C4sOC4quC4p+C4mQor4LiB4Lij4Liw4Liq4Lin4LiiCivguIHguKPguLDguKrguK3guJoKK+C4geC4o+C4sOC4quC4sAor4LiB4Lij4Liw4Liq4Lix4LiHCivguIHguKPguLDguKrguLHguJkKK+C4geC4o+C4sOC4quC4seC4muC4geC4o+C4sOC4quC5iOC4suC4ogor4LiB4Lij4Liw4Liq4LiyCivguIHguKPguLDguKrguLLguJnguJXguLTguYwKK+C4geC4o+C4sOC4quC4suC4mgor4LiB4Lij4Liw4Liq4Liy4LiiCivguIHguKPguLDguKrguYjguLLguKIKK+C4geC4o+C4sOC4quC4tOC4meC4mOC4uAor4LiB4Lij4Liw4Liq4Li34LitCivguIHguKPguLDguKrguLjguIfguIHguKPguLDguKrguLTguIcKK+C4geC4o+C4sOC4quC4uOC4mQor4LiB4Lij4Liw4Liq4Li54LiX4LiY4Li04LmMCivguIHguKPguLDguKrguLnguJoKK+C4geC4o+C4sOC5gOC4quC4lAor4LiB4Lij4Liw4LmA4Liq4LmH4LiZ4LiB4Lij4Liw4Liq4Liy4LiiCivguIHguKPguLDguYDguKrguYjguLIKK+C4geC4o+C4sOC5gOC4quC4suC4sOC4geC4o+C4sOC5geC4quC4sAor4LiB4Lij4Liw4LmA4Liq4Li14Lii4LiZCivguIHguKPguLDguYDguKrguLXguKLguKMKK+C4geC4o+C4sOC5gOC4quC4t+C4reC4geC4geC4o+C4sOC4quC4mQor4LiB4Lij4Liw4LmB4LiqCivguIHguKPguLDguYHguKrguIcKK+C4geC4o+C4sOC5geC4quC4sCB7IOC4geC4uuC4o+C4sOC5geC4quC4sCB9CivguIHguKPguLDguYLguKrguIcKK+C4geC4o+C4sOC5hOC4qgor4LiB4Lij4Liw4Lir4LiH4LmI4Lit4LiHCivguIHguKPguLDguKvguJkKK+C4geC4o+C4sOC4q+C4meC4gQor4LiB4Lij4Liw4Lir4LiZ4LiB4LiB4Li04LiZ4Lij4Li1CivguIHguKPguLDguKvguJnguIHguJnguKTguKHguLTguJUKK+C4geC4o+C4sOC4q+C4meC4geC4meC4suC4o+C4tQor4LiB4Lij4Liw4Lir4LiZ4LmI4Lit4LiHCivguIHguKPguLDguKvguJnguLLguIEKK+C4geC4o+C4sOC4q+C4meC5iOC4swor4LiB4Lij4Liw4Lir4Lih4Lin4LiUCivguIHguKPguLDguKvguKHguK3guJoKK+C4geC4o+C4sOC4q+C4oeC5iOC4reC4oQor4LiB4Lij4Liw4Lir4Lih4Lix4LmI4LiHCivguIHguKPguLDguKvguKHguYjguLIKK+C4geC4o+C4sOC4q+C4oeC4tOC4lAor4LiB4Lij4Liw4Lir4Lih4Li04LiaCivguIHguKPguLDguKvguKHguLjguJTguIHguKPguLDguKvguKHguLTguJQKK+C4geC4o+C4sOC4q+C4oeC4uOC5iOC4mQor4LiB4Lij4Liw4Lir4Lih4Li44LiaCivguIHguKPguLDguKvguKLguYjguIcKK+C4geC4o+C4sOC4q+C4ouC4lAor4LiB4Lij4Liw4Lir4Lii4LiaCivguIHguKPguLDguKvguKLguYjguK3guJkKK+C4geC4o+C4sOC4q+C4ouC5iOC4reC4oQor4LiB4Lij4Liw4Lir4Lii4LiwCivguIHguKPguLDguKvguKLguLHguIcKK+C4geC4o+C4sOC4q+C4ouC4seC4mgor4LiB4Lij4Liw4Lir4Lii4Li04LmI4LihCivguIHguKPguLDguKvguKPguK3guJQKK+C4geC4o+C4sOC4q+C4o+C4tOC5iOC4hwor4LiB4Lij4Liw4Lir4Lin4LiZCivguIHguKPguLDguKvguKfguLHguJQKK+C4geC4o+C4sOC4q+C4p+C4seC4lOC5gOC4geC4peC5ieC4sgor4LiB4Lij4Liw4Lir4Lin4LmI4LiyCivguIHguKPguLDguKvguK3guIcKK+C4geC4o+C4sOC4q+C4seC4hwor4LiB4Lij4Liw4Lir4Lix4LiUCivguIHguKPguLDguKvguLLguIcgeyDguIHguLrguKPguLDguKvguLLguIcgfQor4LiB4Lij4Liw4Lir4Liy4LiiCivguIHguKPguLDguKvguLbguKEKK+C4geC4o+C4sOC4q+C4tuC5iOC4oQor4LiB4Lij4Liw4Lir4Li34LiU4LiB4Lij4Liw4Lir4Lit4LiaCivguIHguKPguLDguYDguKvguYfguJkKK+C4geC4o+C4sOC5gOC4q+C4meC5h+C4iAor4LiB4Lij4Liw4LmA4Lir4LiZ4Li14Lii4LiUCivguIHguKPguLDguYDguKvguKHguYfguJTguIHguKPguLDguYDguKvguKHguLXguKLguJQKK+C4geC4o+C4sOC5gOC4q+C4oeC5h+C4lOC4geC4o+C4sOC5geC4q+C4oeC5iAor4LiB4Lij4Liw4LmA4Lir4Lih4LmI4LiZCivguIHguKPguLDguYDguKvguKHguYjguLIKK+C4geC4o+C4sOC5gOC4q+C4peC4teC4ouC4gQor4LiB4Lij4Liw4LmA4Lir4Lin4LmI4LiyCivguIHguKPguLDguYDguKvguYjguK0KK+C4geC4o+C4sOC5gOC4q+C4tOC4oQor4LiB4Lij4Liw4LmA4Lir4Li14LmJ4Lii4LiZ4LiB4Lij4Liw4Lir4Li34Lit4Lij4Li34LitCivguIHguKPguLDguYHguKvguJfguK3guIcKK+C4geC4o+C4sOC5geC4q+C4mQor4LiB4Lij4Liw4LmB4Lir4LiZ4LmICivguIHguKPguLDguYHguKvguJnguJoKK+C4geC4o+C4sOC5geC4q+C4meC4sAor4LiB4Lij4Liw4LmB4Lir4Lih4LiaCivguIHguKPguLDguYHguKvguKHguYjguKcKK+C4geC4o+C4sOC5geC4q+C4ouC5iOC4hwor4LiB4Lij4Liw4LmB4Lir4Lij4LmI4LihCivguIHguKPguLDguYHguKvguKXguYjguIcKK+C4geC4o+C4sOC5guC4q+C5iQor4LiB4Lij4Liw4LmC4Lir4LiZ4LiUCivguIHguKPguLDguYLguKvguKEKK+C4geC4o+C4sOC5guC4q+C4ogor4LiB4Lij4Liw4LmC4Lir4Lii4LmI4LiHCivguIHguKPguLDguK3guYjguKfguJkKK+C4geC4o+C4sOC4reC4p+C4pQor4LiB4Lij4Liw4Lit4LmJ4Lit4LiB4Lij4Liw4LmB4Lit4LmJCivguIHguKPguLDguK3guK3guJTguIHguKPguLDguYHguK3guJQKK+C4geC4o+C4sOC4reC4reC4mgor4LiB4Lij4Liw4Lit4Lit4LihCivguIHguKPguLDguK3guYnguK3guKHguIHguKPguLDguYHguK3guYnguKEKK+C4geC4o+C4sOC4reC4reC4oeC4meC5ieC4swor4LiB4Lij4Liw4Lit4Lix4LiBCivguIHguKPguLDguK3guLHguIHguIHguKPguLDguK3guYjguKfguJkKK+C4geC4o+C4sOC4reC4seC4geC4geC4o+C4sOC5hOC4rQor4LiB4Lij4Liw4Lit4Lix4LmJ4Lin4LmB4LiX4LiH4LiE4Lin4Liy4LiiCivguIHguKPguLDguK3guYnguLIKK+C4geC4o+C4sOC4reC4suC4mQor4LiB4Lij4Liw4Lit4Li04LiUCivguIHguKPguLDguK3guLTguJTguIHguKPguLDguYDguK3guLfguYnguK3guJkKK+C4geC4o+C4sOC4reC4tuC4gQor4LiB4Lij4Liw4Lit4Li24LiB4LiB4Lij4Liw4Lit4Lix4LiBCivguIHguKPguLDguK3guLbguJQKK+C4geC4o+C4sOC4reC4t+C4lAor4LiB4Lij4Liw4Lit4Li4CivguIHguKPguLDguK3guLjguIEKK+C4geC4o+C4sOC5gOC4reC4mgor4LiB4Lij4Liw4LmA4Lit4LiyCivguIHguKPguLDguYDguK3guLTguIEKK+C4geC4o+C4sOC5gOC4reC4tOC4mgor4LiB4Lij4Liw4LmB4Lit4LmJCivguIHguKPguLDguYHguK3guIEKK+C4geC4o+C4sOC5geC4reC4lAor4LiB4Lij4Liw4LmB4Lit4LiaCivguIHguKPguLDguYHguK3guKEKK+C4geC4o+C4sOC5geC4reC5ieC4oQor4LiB4Lij4Liw4LmE4LitCivguIHguKPguLHguIEKK+C4geC4o+C4seC4geC4guC4tQor4LiB4Lij4Lix4LiHCivguIHguKPguLHguIrguIHguLLguKIKK+C4geC4o+C4seC4k+C4keC5jAor4LiB4Lij4Lix4LiT4Lii4LmMCivguIHguKPguLHguJkKK+C4geC4o+C4seC4mgor4LiB4Lij4Lix4LihCivguIHguKPguLLguIEKK+C4geC4o+C4suC4hwor4LiB4Lij4LmI4Liy4LiHCivguIHguKPguLLguJQKK+C4geC4o+C4suC4lOC5gOC4geC4o+C4teC5ieC4ouC4pwor4LiB4Lij4Liy4LiU4Lin4LiHCivguIHguKPguLLguJkKK+C4geC4o+C5ieC4suC4mQor4LiB4Lij4Liy4LiaCivguIHguKPguLLguJ8KK+C4geC4o+C4suC4oQor4LiB4Lij4Liy4Lih4Lie4Lil4Li5CivguIHguKPguLLguKIKK+C4geC4o+C5iOC4suC4ogor4LiB4Lij4Liy4LilCivguIHguKPguLLguKcKK+C4geC4o+C5ieC4suC4pwor4LiB4Lij4Liy4Lin4LiU4LmI4Liy4LiHCivguIHguKPguLLguKfguKPguLnguJQKK+C4geC4o+C4suC4quC4tOC4gQor4LiB4Lij4LizCivguIHguKPguYjguLMKK+C4geC4o+C5iOC4s+C4geC4o+C4uOC5iOC4mQor4LiB4Lij4Li04LiBCivguIHguKPguLTguYrguIEKK+C4geC4o+C4tOC4geC4geC4o+C4tOC4pwor4LiB4Lij4Li04LiB4LiB4Lij4Li1CivguIHguKPguLTguYjguIcKK+C4geC4o+C4tOC5iuC4hwor4LiB4Lij4Li04LiH4LiB4Lij4Li04LinCivguIHguKPguLTguYnguIfguIHguKPguLTguYnguKcKK+C4geC4o+C4tOC4igor4LiB4Lij4Li04LiT4Li1CivguIHguKPguLTguJXguKIKK+C4geC4o+C4tOC4mQor4LiB4Lij4Li04LiZ4Li1CivguIHguKPguLTguJoKK+C4geC4o+C4tOC4oQor4LiB4Lij4Li04LmI4LihCivguIHguKPguLTguKLguLIKK+C4geC4o+C4tOC4pwor4LiB4Lij4Li04LmJ4LinCivguIHguKPguLUKK+C4geC4o+C4teC4keC4sgor4LiB4Lij4Li14LiUCivguIHguKPguLXguYrguJQKK+C4geC4o+C4teC4mOC4sgor4LiB4Lij4Li14LipCivguIHguKPguLXguKoKK+C4geC4o+C4tuC4hwor4LiB4Lij4Li4CivguIHguKPguLjguIEKK+C4geC4o+C4uOC4geC4geC4o+C4ueC5igor4LiB4Lij4Li44LiHCivguIHguKPguLjguYnguIfguIHguKPguLTguYjguIcKK+C4geC4o+C4uOC4h+C5gOC4guC4oeC4sgor4LiB4Lij4Li44LiH4Lie4Liy4Lil4Li1CivguIHguKPguLjguJMKK+C4geC4o+C4uOC4k+C4sgor4LiB4Lij4Li44LiZCivguIHguKPguLjguYjguJkKK+C4geC4o+C4uOC4mgor4LiB4Lij4Li44LmI4LihCivguIHguKPguLjguYnguKHguIHguKPguLTguYjguKEKK+C4geC4o+C4uOC4ogor4LiB4Lij4Li44Lii4LmA4LiB4Lij4Li14Lii4LinCivguIHguKPguLkKK+C4geC4o+C4ueC4lAor4LiB4Lij4Li54LihCivguIHguYDguKPguJPguLgKK+C4geC5gOC4o+C4meC4l+C4owor4LiB4LmA4Lij4LiZ4LiX4Lij4LmMCivguIHguKTguIoKK+C4geC4pOC4lOC4ouC4suC5gOC4geC4teC4ouC4o+C4kwor4LiB4Lik4LiU4LiyCivguIHguKTguJTguLLguIHguLLguKMKK+C4geC4pOC4lOC4suC4reC4seC4jeC4iuC4peC4tQor4LiB4Lik4LiU4Li0CivguIHguKTguJTguLXguIHguLIKK+C4geC4pOC4lQor4LiB4Lik4LiV4LiB4LiyCivguIHguKTguJXguKLguI7guLXguIHguLIKK+C4geC4pOC4leC4tOC4geC4sgor4LiB4Lik4LioCivguIHguKTguYLguKjguJfguKMKK+C4geC4pOC4qeC4juC4sgor4LiB4Lik4Lip4LiO4Liy4LiNCivguIHguKTguKnguI7guLLguI3guIrguKXguLTguJUKK+C4geC4pOC4qeC4juC4suC4jeC4iuC4peC4tQor4LiB4Lik4Lip4LiO4Liy4LiN4LiK4Lin4Lil4Li04LiV4Lin4LiyCivguIHguKTguKnguI7guLLguI3guIrguKfguKXguLTguKgKK+C4geC4pOC4qeC4juC4suC4jeC4iuC4p+C5gOC4peC4qAor4LiB4Lik4Lip4LiO4Liy4LiN4LiK4Li44Lil4Li1CivguIHguKTguKnguI7guLLguJjguLLguKMKK+C4geC4pOC4qeC4juC4tQor4LiB4Lik4Lip4LiO4Li14LiB4LiyCivguIHguKTguKnguJMKK+C4geC4pOC4qeC4k+C4sgor4LiB4Lik4Lip4Liy4LiTCivguIHguKTguKnguLQKK+C4geC4pQor4LiB4Lil4LiUCivguIHguKXguYjguJkKK+C4geC4peC4mgor4LiB4Lil4Lia4LiXCivguIHguKXguKEKK+C4geC4peC4oeC4oAor4LiB4Lil4LmA4Lih4LmH4LiUCivguIHguKXguKLguLjguJfguJjguYwKK+C4geC4peC4peC4sAor4LiB4Lil4Lin4LiHCivguIHguKXguKfguKEKK+C4geC4peC5ieC4p+C4ogor4LiB4Lil4LmJ4Lin4Lii4LiZ4LmJ4Lit4LiiCivguIHguKXguYnguKfguKLguYTguKHguYkKK+C4geC4peC5ieC4p+C4ouC4q+C4oeC4ueC4quC4seC4hwor4LiB4Lil4Lin4Li04LiY4Li1CivguIHguKXguKgKK+C4geC4peC4qOC4suC4quC4leC4o+C5jAor4LiB4Lil4Lio4Li24LiBCivguIHguKXguKvguLLguKIKK+C4geC4peC5gOC4q+C4ogor4LiB4Lil4LmJ4LitCivguIHguKXguK3guIEKK+C4geC4peC4reC4hwor4LiB4Lil4LmI4Lit4LiHCivguIHguKXguYnguK3guIcKK+C4geC4peC5ieC4reC4h+C5geC4geC4peC5ieC4hwor4LiB4Lil4Lit4LiZCivguIHguKXguYjguK3guJkKK+C4geC4peC5ieC4reC4mQor4LiB4Lil4LmI4Lit4LihCivguIHguKXguYnguK3guKHguYHguIHguKXguYnguKEKK+C4geC4peC4reC4ogor4LiB4Lil4Lix4LiBCivguIHguKXguLHguIcKK+C4geC4peC4seC4lAor4LiB4Lil4Lix4LmI4LiZCivguIHguKXguLHguYnguJkKK+C4geC4peC4seC4meC4lwor4LiB4Lil4Lix4LiZ4LiX4LiB4LmMCivguIHguKXguLHguJnguJfguIHguJnguLTguKfguLLguJvguKrguJbguLLguJkKK+C4geC4peC4seC4mgor4LiB4Lil4Lix4Lih4Lie4LiBCivguIHguKXguLHguKHguJ7guKMKK+C4geC4peC4seC4oeC4nuC4seC4gQor4LiB4Lil4Lix4LinCivguIHguKXguLHguYnguKcKK+C4geC4peC4sgor4LiB4Lil4LmI4LiyCivguIHguKXguYnguLIKK+C4geC4peC4suC4gQor4LiB4Lil4Liy4LiB4Lil4Liy4LiUCivguIHguKXguLLguIcKK+C4geC4peC4suC5gOC4i+C4teC4ouC4o+C5jAor4LiB4Lil4Liy4LiUCivguIHguKXguLLguJrguLLguJUKK+C4geC4peC4suC4mwor4LiB4Lil4LmJ4Liy4LihCivguIHguKXguLLguKIKK+C4geC4peC5ieC4suC4ogor4LiB4Lil4Liy4Lii4LiB4Lil4Lit4LiBCivguIHguKXguYjguLLguKcKK+C4geC4peC4suC5guC4q+C4oQor4LiB4Lil4LmI4LizCivguIHguKXguYnguLMKK+C4geC4peC4tAor4LiB4Lil4Li04LiB4Liy4LilCivguIHguKXguLTguIHguLjguI3guIjguLTguIHguLIKK+C4geC4peC4tOC5iOC4hwor4LiB4Lil4Li04LmJ4LiHCivguIHguKXguLTguYnguIfguIHguKXguLLguIfguJTguIcKK+C4geC4peC4tOC4h+C4hOC5jAor4LiB4Lil4Li04LmI4LiZCivguIHguKXguLTguJvguKPguLXguKLguYwKK+C4geC4peC4tOC5ieC4oQor4LiB4Lil4Li04Lii4Li44LiECivguIHguKXguLUKK+C4geC4peC4teC5iAor4LiB4Lil4Li14LmA4LiL4Lit4Lij4Li14LiZCivguIHguKXguLXguJoKK+C4geC4peC4tuC4hwor4LiB4Lil4Li24LmJ4LiHCivguIHguKXguLbguIfguIHguKXguYjguK3guKEKK+C4geC4peC4tuC4h+C4hOC5jAor4LiB4Lil4Li34LiZCivguIHguKXguLjguYjguKEKK+C4geC4peC4uOC5ieC4oQor4LiB4Lil4Li54LmICivguIHguKXguLnguYLguITguKoKK+C4geC4peC4ueC4mQor4LiB4Lil4Li54LiZ4LmMCivguIHguYDguKXguKfguKPguLAKK+C4geC4p+C4lAor4LiB4Lin4LiZCivguIHguYrguKfguJkKK+C4geC4p+C4meC4reC4tOC4oQor4LiB4Lin4LihCivguIHguKfguKIKK+C4geC4p+C4ouC4iOC4seC5iuC4mgor4LiB4Lin4Lii4LiI4Li14LmKCivguIHguYvguKfguKLguYDguJXguLXguYvguKLguKcKK+C4geC5i+C4p+C4ouC4quC4peC4suC4gQor4LiB4Lin4Lis4Li04LiH4LiB4Liy4Lij4Liy4Lir4Liy4LijCivguIHguKfguLAKK+C4geC4p+C4sOC4geC4p+C4seC4gQor4LiB4Lin4Liw4LmB4LiB4Lin4LmI4LiHCivguIHguKfguLHguIEKK+C4geC4p+C4seC4lAor4LiB4Lin4LiyCivguIHguKfguYjguLIKK+C4geC4p+C5ieC4sgor4LiB4Lin4Liy4LiHCivguIHguKfguYjguLLguIcKK+C4geC4p+C5ieC4suC4hwor4LiB4Lin4Liy4LiH4LmA4LiC4LiZCivguIHguKfguLLguIfguYLguIjguJkKK+C4geC4p+C5iOC4suC4h+C4iuC4mQor4LiB4Lin4Liy4LiH4LiK4Liw4Lih4LiUCivguIHguKfguYjguLLguIfguYLguIvguYnguIcKK+C4geC4p+C4suC4h+C4leC4uOC5ieC4hwor4LiB4Lin4Liy4LiH4LiX4Lit4LiHCivguIHguKfguLLguIfguJvguYjguLIKK+C4geC4p+C4suC4h+C4oeC5ieC4sgor4LiB4Lin4Liy4LiUCivguIHguKfguLLguJkKK+C4geC4p+C5iOC4suC4mQor4LiB4Lin4LmJ4Liy4LiZCivguIHguKfguYrguLLguJkKK+C4geC4p+C5ieC4suC4pwor4LiB4Lin4Liy4Lin4LmA4LiE4Lij4Li34LitCivguIHguKfguLTguJkKK+C4geC4p+C4tQor4LiB4Lip4LiT4LiwCivguIHguKnguKHguLIKK+C4geC4qeC4seC4leC4owor4LiB4Lip4Lix4LiV4Lij4LiyCivguIHguKnguLHguJXguKPguLTguKLguYwKK+C4geC4qeC4seC4leC4o+C4tQor4LiB4Lip4Lix4LiV4Lij4Li14Lii4LmMCivguIHguKnguLHguJXguKPguLXguKjguLnguKMKK+C4geC4qeC4seC4ogor4LiB4Lip4Lix4Lii4LiB4Liy4LijCivguIHguKnguLLguJvguJPguYwKK+C4geC4qeC4suC4ogor4LiB4Lip4Li04LiU4Li0CivguIHguKnguLTguJTguLTguJnguJfguKMKK+C4geC4qeC4tOC4lOC4tOC4meC4l+C4o+C5jAor4LiB4Lip4Li14LiT4Liy4Lio4Lij4LieCivguIHguKnguLXguJTguLQKK+C4geC4qeC4teC4owor4LiB4Lip4Li14Lij4Liy4Lih4Lie4Li4CivguIHguKnguLXguKPguLLguKPguJPguJ4KK+C4geC4qeC4uOC4mOC4sgor4LiB4Lip4Li44Lij4Li1CivguIHguKrguLLguJnguJXguLTguYwKK+C4geC4quC4tAor4LiB4Liq4Li04LiTCivguIHguKsKK+C4geC4q+C4seC4h+C4m+C4suC4ouC4sgor4LiB4Lir4Liy4Lib4LiT4LiwCivguIHguYDguKzguKfguKPguLLguIEKK+C4geC4rQor4LiB4LmI4LitCivguIHguYnguK0KK+C4geC5iuC4rQor4LiB4Lit4LiBCivguIHguYrguK3guIEKK+C4geC4reC5geC4gQor4LiB4Lit4LiHCivguIHguYjguK3guIcKK+C4geC5ieC4reC4hwor4LiB4Lit4LiH4LiB4Lit4LiiCivguIHguK3guIsKK+C4geC4reC4lAor4LiB4LmI4Lit4LiZCivguIHguYnguK3guJkKK+C4geC4reC4mgor4LiB4Lit4Lia4LiZ4Liy4LiHCivguIHguYrguK3guJrguJvguLXguYkKK+C4geC4reC4m+C4owor4LiB4LmJ4Lit4LihCivguIHguK3guKHguIHguYnguK0KK+C4geC5iOC4reC4oeC4geC5ieC4rQor4LiB4LmJ4Lit4Lih4LiB4LmJ4LitCivguIHguK3guKIKK+C4geC5ieC4reC4ogor4LiB4LmL4Lit4LiiCivguIHguK3guKPguLTguKXguKXguLIKK+C4geC4reC4peC5jOC4nwor4LiB4Lit4LmB4Lir4Lil4LiwCivguIHguK3guYDguK3guLXguYrguKLguLAKK+C4geC4sAor4LiB4Liw4LiB4Lij4LmI4Lit4LihCivguIHguLDguIHguKPguYnguLLguKcKK+C4geC4sOC4geC4peC4tOC5ieC4hwor4LiB4Liw4LiB4LmI4Lit4LiHCivguIHguLDguIHguLHguIcKK+C4geC4sOC4geC4tuC4gQor4LiB4Liw4LmA4LiB4Liy4LiwCivguIHguLDguYLguIHguKPguLAKK+C4geC4sOC4h+C5ieC4reC4meC4geC4sOC5geC4h+C5ieC4mQor4LiB4Liw4LiI4Lix4LiHCivguIHguLDguIjguLHguYrguKcKK+C4geC4sOC5geC4iOC4sAor4LiB4Liw4LiK4LiwCivguIHguLDguIrguLHguIcKK+C4geC4sOC4iuC4suC4oeC4suC4qAor4LiB4Liw4LiK4Li04LiHCivguIHguLDguIrguLbguYjguIHguIHguLDguIrguLHguYjguIEKK+C4geC4sOC5geC4iuC5iAor4LiB4Liw4LiL4Lin4LiBCivguIHguLDguIvguYnguLLguKvguK3guKIKK+C4geC4sOC4i+C4teC5iAor4LiB4Liw4LiL4Li14LmJCivguIHguLDguYLguIvguYgKK+C4geC4sOC5guC4i+C5iQor4LiB4Liw4LiU4LiBCivguIHguLDguJTguIcKK+C4geC4sOC4lOC4p+C4mQor4LiB4Liw4LiU4Lit4LiB4LmGCivguIHguLDguJTguLAKK+C4geC4sOC4lOC4seC4h+C4muC4suC4ogor4LiB4Liw4LiU4Lix4LiUCivguIHguLDguJTguYnguLLguIcKK+C4geC4sOC4lOC4s+C4geC4sOC4lOC5iOC4suC4hwor4LiB4Liw4LiU4Li1CivguIHguLDguJTguLXguYgKK+C4geC4sOC4lOC4uOC5ieC4hwor4LiB4Liw4LmA4LiU4LmJCivguIHguLDguYDguJTguIEKK+C4geC4sOC5gOC4lOC4teC5i+C4ouC4pwor4LiB4Liw4LmE4LiUCivguIHguLDguJXguKPguLjguJQKK+C4geC4sOC4leC4reC4gQor4LiB4Liw4LiV4LmI4Lit4LiiCivguIHguLDguJXguLHguIEKK+C4geC4sOC4leC4seC4hwor4LiB4Liw4LiV4Lix4LiH4LiB4Liw4LiV4Li04LmJ4LinCivguIHguLDguJXguLHguIfguYPguJoKK+C4geC4sOC4leC5iOC4sgor4LiB4Liw4LiV4LmK4Liy4LiBCivguIHguLDguJXguYnguLMKK+C4geC4sOC4leC4tOC5iuC4geC4o+C4tOC4gQor4LiB4Liw4LiV4Li04LiH4LiB4Liw4LmB4LiV4LiHCivguIHguLDguJXguLXguJoKK+C4geC4sOC4leC4tuC4h+C4geC4sOC5geC4leC4hwor4LiB4Liw4LiV4Li44LmK4LiBCivguIHguLDguJXguLjguJQKK+C4geC4sOC4leC4uOC4oeC4uQor4LiB4Liw4LiV4Li54LiBCivguIHguLDguJXguLnguYnguKfguLnguYkKK+C4geC4sOC5gOC4leC4gQor4LiB4Liw4LmA4LiV4LiH4LmGCivguIHguLDguYDguJXguIfguYDguKPguIcKK+C4geC4sOC5geC4leC4pwor4LiB4Liw4LmB4LiV4LmI4LinCivguIHguLDguYLguJXguYrguIEKK+C4geC4sOC5guC4leC4geC4geC4sOC4leC4suC4gQor4LiB4Liw4LmC4LiV4LiH4LiB4Liw4LmA4LiV4LiHCivguIHguLDguYLguJXguYnguIfguYLguKvguYjguIcKK+C4geC4sOC4luC4seC4pwor4LiB4Liw4LiX4LiB4Lij4LiBCivguIHguLDguJfguK0KK+C4geC4sOC4l+C4seC4hwor4LiB4Liw4LiX4Lix4LiU4Lij4Lix4LiUCivguIHguLDguJfguLHguJkKK+C4geC4sOC4l+C4seC4meC4q+C4seC4mQor4LiB4Liw4LiX4Lix4LiaCivguIHguLDguJfguLMKK+C4geC4sOC4l+C4tAor4LiB4Liw4LiX4Li34LitCivguIHguLDguJfguLjguJkKK+C4geC4sOC4l+C4ueC5ieC5gOC4iOC5h+C4lOC4leC4seC4pwor4LiB4Liw4LmA4LiX4LiiCivguIHguLDguYDguJfguYjguYDguKPguYgKK+C4geC4sOC5gOC4l+C4suC4sAor4LiB4Liw4LmB4LiX4LmJCivguIHguLDguYHguJfguYjguIcKK+C4geC4sOC5geC4l+C4mQor4LiB4Liw4LiZ4Lin4LilCivguIHguLDguJnguLHguJQKK+C4geC4sOC4muC4reC4hwor4LiB4Liw4Lia4Lit4LiZ4LiB4Liw4Lia4Li24LiHCivguIHguLDguJrguYjguK3guJnguIHguLDguYHguJrguYjguJkKK+C4geC4sOC4muC4seC4hwor4LiB4Liw4Lia4Lix4LmJ4LiHCivguIHguLDguJrguLHguIfguKPguLHguIfguYDguJ3guLfguK3guIEKK+C4geC4sOC4muC4tAor4LiB4Liw4Lia4Li04LmJ4LiHCivguIHguLDguJrguLTguKUKK+C4geC4sOC4muC4tuC4h+C4geC4sOC4muC4reC4mQor4LiB4Liw4Lia4Li44LiUCivguIHguLDguYDguJrguYnguK0KK+C4geC4sOC5gOC4muC4teC4ouC4mQor4LiB4Liw4LmA4Lia4Li34LitCivguIHguLDguYHguJrguIcKK+C4geC4sOC4m+C4o+C4tOC4lOC4geC4sOC4m+C4o+C4reC4ogor4LiB4Liw4Lib4Lij4Li04LiaCivguIHguLDguJvguKXguIHguIHguLDguYDguJvguKXguLXguYnguKIKK+C4geC4sOC4m+C4p+C4geC4geC4sOC5gOC4m+C4teC4ouC4gQor4LiB4Liw4Lib4Lit4LihCivguIHguLDguJvguK3guKHguILguLLguIcKK+C4geC4sOC4m+C4sAor4LiB4Liw4Lib4Lix4LmI4LiZCivguIHguLDguJvguYnguLPguIHguLDguYDguJvguYvguK0KK+C4geC4sOC4m+C4tAor4LiB4Liw4Lib4Li5CivguIHguLDguJvguLnguJQKK+C4geC4sOC4m+C4ueC4lOC4q+C4peC4ueC4lAor4LiB4Liw4LmA4Lib4LiwCivguIHguLDguYDguJvguLIKK+C4geC4sOC5gOC4m+C4tOC5iuC4muC4geC4sOC4m+C5iuC4suC4mgor4LiB4Liw4LmA4Lib4Li14Lii4LiUCivguIHguLDguYHguJvguYnguJkKK+C4geC4sOC5geC4m+C4sAor4LiB4Liw4LmC4Lib4Lij4LiHCivguIHguLDguYLguJvguYLguKUKK+C4geC4sOC4nOC4peC4tuC4geC4geC4sOC4nOC4peC4suC4oQor4LiB4Liw4Lic4Lil4Li44Lia4LiB4Liw4LmC4Lic4Lil4LmICivguIHguLDguYDguJzguYjguJkKK+C4geC4sOC5gOC4nOC4peC4gQor4LiB4Liw4LmC4Lic4Lil4LiB4LiB4Liw4LmA4Lic4Lil4LiBCivguIHguLDguJ7guIcKK+C4geC4sOC4nuC4o+C4p+C4lOC4geC4sOC4nuC4o+C4suC4lAor4LiB4Liw4Lie4Lij4LmI4Lit4LiH4LiB4Liw4LmB4Lie4Lij4LmI4LiHCivguIHguLDguJ7guKPguLTguJoKK+C4geC4sOC4nuC4o+C4uOC4mQor4LiB4Liw4Lie4Lij4Li54LiU4LiB4Liw4Lie4Lij4Liy4LiUCivguIHguLDguJ7guKXguYnguK0KK+C4geC4sOC4nuC4peC5iOC4reC4h+C4geC4sOC5geC4nuC4peC5iOC4hwor4LiB4Liw4Lie4LmJ4LitCivguIHguLDguJ7guK3guIEKK+C4geC4sOC4nuC4reC4hwor4LiB4Liw4Lie4Lix4LiHCivguIHguLDguYDguJ7guKPguLIKK+C4geC4sOC5gOC4nuC4teC4ouC4lAor4LiB4Liw4LmA4Lie4Li14Lii4LiU4LiK4LmJ4Liy4LiHCivguIHguLDguYDguJ7guLXguKLguJTguKvguJnguLkKK+C4geC4sOC4oeC4tOC4lOC4geC4sOC5gOC4oeC4teC5ieC4ouC4mQor4LiB4Liw4Lih4Li54LiV4Li04LiHCivguIHguLDguYDguKHguYfguIcKK+C4geC4sOC5gOC4oeC4teC4ogor4LiB4Liw4Lii4Liy4Lir4LiH4Lix4LiZCivguIHguLDguKLguLbguIHguIHguLDguKLguLfguK0KK+C4geC4sOC4ouC4uAor4LiB4Liw4Lij4LmI4Lit4LiH4LiB4Liw4LmB4Lij4LmI4LiHCivguIHguLDguKPguLDguJXguLAKK+C4geC4sOC4o+C4sOC4q+C4meC4sAor4LiB4Liw4Lij4Lix4LiHCivguIHguLDguKPguLHguJUKK+C4geC4sOC4o+C4suC4hwor4LiB4Liw4Lij4Li04LiHCivguIHguLDguKPguLTguIfguIHguLDguYDguKPguLXguKLguJQKK+C4geC4sOC4o+C4uOC4h+C4geC4sOC4o+C4seC4hwor4LiB4Liw4Lij4Li44LmI4LiH4LiB4Liw4Lij4Li04LmI4LiHCivguIHguLDguKPguLjguJkKK+C4geC4sOC5gOC4owor4LiB4Liw4LmA4Lij4LiB4Liw4Lij4LmI4Lit4LiZCivguIHguLDguYDguKPguYjguIHguLDguKPguYjguK3guJkKK+C4geC4sOC5gOC4o+C5iOC4rQor4LiB4Liw4LmA4Lij4Li14LmI4Lii4LiB4Liw4Lij4Liy4LiUCivguIHguLDguYLguKPguIHguLDguYDguKMKK+C4geC4sOC4peC4p+C4ogor4LiB4Liw4Lil4LitCivguIHguLDguKXguYjguK3guIHguLDguYHguKXguYgKK+C4geC4sOC4peC4reC4iOC4teC5igor4LiB4Liw4Lil4LmI4Lit4LiZCivguIHguLDguKXguYjguK3guKHguIHguLDguYHguKXguYjguKEKK+C4geC4sOC4peC5iOC4reC4ouC4geC4sOC4q+C4peC4tOC4mgor4LiB4Liw4Lil4Liw4Lib4Lix4LiH4Lir4LiyCivguIHguLDguKXguLDguKHguLHguIcKK+C4geC4sOC4peC4sOC5geC4oQor4LiB4Liw4Lil4Liw4Lit4Lit4LihCivguIHguLDguKXguLHguIfguJXguLHguIfguYTguIHguYgKK+C4geC4sOC4peC4seC4mQor4LiB4Liw4Lil4Lix4LiZ4LiX4LiyCivguIHguLDguKXguLIKK+C4geC4sOC4peC4suC4hwor4LiB4Liw4Lil4Liy4Liq4Li1CivguIHguLDguKXguLLguKvguJnguLIKK+C4geC4sOC4peC4s+C4nuC4rQor4LiB4Liw4Lil4Liz4Lie4Lix4LiBCivguIHguLDguKXguLPguYDguJ7guLLguLAKK+C4geC4sOC4peC4tOC4hwor4LiB4Liw4Lil4Li04LmJ4Lih4LiB4Liw4LmA4Lir4Lil4Li14LmI4LiiCivguIHguLDguKXguLTguK3guYjguK3guIcKK+C4geC4sOC4peC4uOC4oeC4nuC4tQor4LiB4Liw4LmA4Lil4LmH4LiHCivguIHguLDguYDguKXguYjguK3guIHguLDguKXguYjguLIKK+C4geC4sOC5gOC4peC4tOC4lAor4LiB4Liw4LmA4Lil4Li14Lii4LinCivguIHguLDguYHguKUKK+C4geC4sOC5guC4peC5iAor4LiB4Liw4LmC4Lil4LiHCivguIHguLDguKfguK3guIHguIHguLDguYHguKfguIEKK+C4geC4sOC4p+C4sAor4LiB4Liw4Liq4LmJ4Lih4LiK4Li34LmI4LiZCivguIHguLDguKrguYnguLLguKvguK3guKIKK+C4geC4sOC4q+C4meC4reC4geC4sOC5geC4q+C4mQor4LiB4Liw4Lir4LiZ4LmH4Lit4LiH4LiB4Liw4LmB4Lir4LiZ4LmH4LiHCivguIHguLDguKvguJnguLAKK+C4geC4sOC4q+C4meC4uOC4h+C4geC4sOC4q+C4meC4tOC4hwor4LiB4Liw4Lir4Lih4Lit4LiBCivguIHguLDguKvguKPguYjguK3guIcKK+C4geC4sOC4q+C4o+C4reC4lAor4LiB4Liw4Lir4Lij4LmH4Lit4Lih4LiB4Liw4LmB4Lir4Lij4LmH4LihCivguIHguLDguKvguKPguLHguJTguIHguLDguJXguLXguIHguLIKK+C4geC4sOC4q+C4o+C4seC4lOC4leC4sOC4m+C4suC4leC4tQor4LiB4Liw4Lir4Lij4LmI4Liy4LiHCivguIHguLDguKvguKPguLLguJkKK+C4geC4sOC4q+C4o+C4tOC5iOC4hwor4LiB4Liw4Lir4Lij4Li14LmICivguIHguLDguKvguKPguLXguYjguJvguLHguYrguJoKK+C4geC4sOC4q+C4peC4seC4muC4geC4sOC5gOC4q+C4peC4t+C4reC4gQor4LiB4Liw4Lir4Lil4Liy4Lib4LmL4LiyCivguIHguLDguKvguKXguYjguLMKK+C4geC4sOC4q+C4peC4teC5iAor4LiB4Liw4Lir4Lil4Li14LiB4Liw4Lir4Lil4LitCivguIHguLDguKvguKXguLjguIHguIHguLDguKvguKXguLTguIEKK+C4geC4sOC4q+C4swor4LiB4Liw4Lir4Li24LihCivguIHguLDguKvguLfguJTguIHguLDguKvguK3guJoKK+C4geC4sOC4q+C4t+C4rQor4LiB4Liw4Lir4Li54LiUCivguIHguLDguYDguKvguJnguYfguJQKK+C4geC4sOC5gOC4q+C4o+C4teC5iOC4ouC4hwor4LiB4Liw4LmA4Lir4Lil4Liy4Liw4LmA4Lib4Liy4LiwCivguIHguLDguYDguKvguKfguLXguKLguIEKK+C4geC4sOC5geC4qwor4LiB4Liw4LmB4Lir4LiZ4LmICivguIHguLDguYHguKvguJnguLAKK+C4geC4sOC5geC4q+C4ouC4gQor4LiB4Liw4LmB4Lir4LiwCivguIHguLDguYLguKvguYkKK+C4geC4sOC5guC4q+C4peC4gQor4LiB4Liw4LmC4Lir4Lil4LmJ4LiHCivguIHguLDguYTguKvguKXguYgKK+C4geC4sOC4reC4p+C4oQor4LiB4Liw4Lit4LmJ4Lit4LiB4Liw4LmB4Lit4LmJCivguIHguLDguK3guK3guKEKK+C4geC4sOC4reC5ieC4reC4oeC4geC4sOC5geC4reC5ieC4oQor4LiB4Liw4Lit4Lix4LiBCivguIHguLDguK3guLHguIHguIHguLDguYTguK0KK+C4geC4sOC4reC4suC4mQor4LiB4Liw4Lit4Liy4LihCivguIHguLDguK3guLTguJQKK+C4geC4sOC4reC4uOC4mgor4LiB4Liw4LmB4LitCivguIHguLDguYHguK3guIEKK+C4geC4sOC5geC4reC4mQor4LiB4Liw4LmB4Lit4LiaCivguIHguLDguYHguK3guKEKK+C4geC4sOC5geC4reC4pwor4LiB4Lix4LiBCivguIHguLHguYrguIEKK+C4geC4seC5ieC4geC5hgor4LiB4Lix4LiB4LiB4Lij4LiyCivguIHguLHguIHguIHguKrguLAKK+C4geC4seC4geC4geC4sAor4LiB4Lix4LiB4LiB4Liy4Lij4Li1CivguIHguLHguIHguIHguLLguKPguLgKK+C4geC4seC4geC4guC4rOC4sAor4LiB4Lix4LiB4Lip4Lix4LiZ4LiV4Lij4Lix4LiHCivguIHguLHguIcKK+C4geC4seC5ieC4hwor4LiB4Lix4LiH4LiBCivguIHguLHguYnguIfguIHguKPguLDguJTguLLguJkKK+C4geC4seC4h+C4geC5ieC4sgor4LiB4Lix4LiH4LmA4LiB4Li14Lii4LiHCivguIHguLHguIfguILguLIKK+C4geC4seC4h+C4guC4suC4p+C4tOC4leC4o+C4k+C4p+C4tOC4quC4uOC4l+C4mOC4tAor4LiB4Lix4LiH4LiE4Li4CivguIHguLHguIfguInguLTguJkKK+C4geC4seC4h+C4n+C4uQor4LiB4Lix4LiH4Lin4LilCivguIHguLHguIfguKfguLLguJkKK+C4geC4seC4h+C5gOC4p+C4teC4ouC4mQor4LiB4Lix4LiH4LiqCivguIHguLHguIfguKrguJTguLLguKUKK+C4geC4seC4h+C5hOC4qgor4LiB4Lix4LiH4Lir4Lix4LiZCivguIHguLHguIjguInguJvguLAKK+C4geC4seC4iOC4ieC4sAor4LiB4Lix4LiI4LiJ4LiyCivguIHguLHguIjguInguLgKK+C4geC4seC4iOC5guC4ieC4l+C4gQor4LiB4Lix4LiNCivguIHguLHguI3guIjguLjguIEKK+C4geC4seC4jeC4iOC4uOC4geC4suC4o+C4sgor4LiB4Lix4LiN4LiK4LiyCivguIHguLHguI3guI3guLIKK+C4geC4seC4jeC4kOC4geC4sAor4LiB4Lix4LiQCivguIHguLHguJPguI/guIHguLAKK+C4geC4seC4k+C4kOC4gQor4LiB4Lix4LiT4LiQ4Lix4LioCivguIHguLHguJPguJDguLHguKjguKfguYwKK+C4geC4seC4k+C4kOC4sgor4LiB4Lix4LiT4LiQ4Li1CivguIHguLHguJPguJHguYwKK+C4geC4seC4k+C4keC4oeC4suC4meC4p+C4gQor4LiB4Lix4LiT4LiR4Lij4LiyCivguIHguLHguJPguJHguLgKK+C4geC4seC4k+C4keC4ueC4p+C4meC4sAor4LiB4Lix4LiT4LiT4LmMCivguIHguLHguJPguKsKK+C4geC4seC4lAor4LiB4Lix4LiV4LiV4Li04LiB4Lih4Liy4LiqCivguIHguLHguJXguJXguLTguIHguLIKK+C4geC4seC4leC4leC4tOC5gOC4geC4ouC4sgor4LiB4Lix4LiV4Lij4LiX4Lix4LiT4LiR4LmMCivguIHguLHguJXguKPguLIKK+C4geC4seC4l+C4peC4tQor4LiB4Lix4LiZCivguIHguLHguYjguJkKK+C4geC4seC5ieC4mQor4LiB4Lix4LiZ4LmA4LiB4Lij4LiyCivguIHguLHguJnguYTguIHguKMKK+C4geC4seC4meC4iuC4tOC4hwor4LiB4Lix4LiZ4LmA4LiK4LitCivguIHguLHguYnguJnguIvguLnguYgKK+C4geC4seC4meC5geC4i+C4hwor4LiB4Lix4LiZ4LiU4Lit4LiHCivguIHguLHguJnguJTguLLguKMKK+C4geC4seC4meC4lOC4suC4pQor4LiB4Lix4LiZ4LmE4LiUCivguIHguLHguJnguJXguYwKK+C4geC4seC4meC4leC4seC4hwor4LiB4Lix4LiZ4LmE4LiV4LijCivguIHguLHguJnguJfguKMKK+C4geC4seC4meC4l+C4o+C4suC4geC4owor4LiB4Lix4LiZ4LiX4LiwCivguIHguLHguYnguJnguJrguLHguIcKK+C4geC4seC4meC4oOC4seC4ogor4LiB4Lix4LiZ4Lig4Li04Lij4Lih4Lii4LmMCivguIHguLHguJnguYDguKHguLXguKLguIcKK+C4geC4seC4meC4ouC5jAor4LiB4Lix4LiZ4Lii4LiyCivguIHguLHguJnguKXguIcKK+C4geC4seC4meC4peC4reC4hwor4LiB4Lix4LiZ4Lil4Li24LiHCivguIHguLHguJnguYHguKrguIcKK+C4geC4seC5ieC4meC4q+C4ouC4seC5iOC4mQor4LiB4Lix4LiZ4LmA4Lit4LiyCivguIHguLHguJoKK+C4geC4seC4muC5geC4geC5iQor4LiB4Lix4Lia4LmB4LiB4Lil4LmJ4LihCivguIHguLHguJrguJrguLjguYDguKPguKgKK+C4geC4seC4mwor4LiB4Lix4Lib4LiV4Lix4LiZCivguIHguLHguJvguJnguIEKK+C4geC4seC4m+C4muC4suC4quC4tOC4gQor4LiB4Lix4Lib4Lib4Liy4Liq4Li04LiBCivguIHguLHguJvguJvguLTguKLguLAKK+C4geC4seC4m+C4m+C4teC4ouC5jAor4LiB4Lix4Lih4Lia4LiZCivguIHguLHguKHguJvguJnguLLguIHguLLguKMKK+C4geC4seC4oeC4m+C4meC4suC4lwor4LiB4Lix4Lih4Lib4LiZ4Li1CivguIHguLHguKHguJvguKPguLDguYLguJQKK+C4geC4seC4oeC4m+C4tQor4LiB4Lix4Lih4Lie4LilCivguIHguLHguKHguJ7guLjguIoKK+C4geC4seC4oeC4nuC4uOC4iuC4nuC4suC4geC4ouC5jAor4LiB4Lix4Lih4Lie4Li5CivguIHguLHguKHguJ7guLnguIrguLIKK+C4geC4seC4oeC5guC4nuC4igor4LiB4Lix4Lih4Lih4Liq4Lix4LiX4LiY4LiyCivguIHguLHguKHguKHguLHguIrguKfguLLguJUKK+C4geC4seC4oeC4oeC4seC4j+C4kOC4suC4mQor4LiB4Lix4Lih4Lih4Lix4LiZ4LiV4Lig4Liy4Lie4Lij4Lix4LiH4Liq4Li1CivguIHguLHguKHguKHguLHguJnguJXguKPguLHguIfguKrguLUKK+C4geC4seC4oeC4oeC4seC4quC4quC4geC4leC4sgor4LiB4Lix4Lih4Lih4Liy4LijCivguIHguLHguKHguKXguLLguKgKK+C4geC4seC4ouC4p+C4tOC4geC4seC4ogor4LiB4Lix4Lil4LiK4Liy4LiNCivguIHguLHguKXguJrguIEKK+C4geC4seC4peC4m+C5jAor4LiB4Lix4Lil4Lib4LiZ4LiyCivguIHguLHguKXguJvguLHguIfguKvguLIKK+C4geC4seC4peC4m+C4suC4p+C4quC4suC4mQor4LiB4Lix4Lil4Lib4Li04LiVCivguIHguLHguKXguJ7guLjguKEKK+C4geC4seC4peC5gOC4oeC5h+C4lAor4LiB4Lix4Lil4Lii4LiyCivguIHguLHguKXguKLguLLguJPguKHguLTguJXguKMKK+C4geC4seC4peC4ouC4suC4k+C4tQor4LiB4Lix4Lil4LmA4Lin4LmJ4LiyCivguIHguLHguKXguKvguLLguKIKK+C4geC4seC4peC5guC4q+C4ogor4LiB4Lix4Lil4Lit4Lit4LihCivguIHguLHguKXguYDguK3guLIKK+C4geC4seC4qOC4oeC4pQor4LiB4Lix4Lio4Lii4LibCivguIHguLHguKnguJMKK+C4geC4sgor4LiB4LmL4LiyCivguIHguLLguIEKK+C4geC4suC4geC4hOC4leC4tAor4LiB4Liy4LiB4LiT4Li24LiBCivguIHguLLguIHguJnguLLguKrguLnguKMKK+C4geC4suC4geC4muC4suC4lwor4LiB4Liy4LiB4Lig4Liy4Lip4LiyCivguIHguLLguIHguKrguLnguKMKK+C4geC4suC4geC4sOC4l+C4tOC4hwor4LiB4Liy4LiB4Liw4LmA4Lii4Li14LiiCivguIHguLLguIHguLUKK+C4geC4suC4hwor4LiB4LmJ4Liy4LiHCivguIHguLLguIfguYDguIHguIcKK+C4geC4suC4h+C5gOC4geC4teC4ouC4hwor4LiB4Liy4LiH4LiC4Lit4LiHCivguIHguLLguIfguYDguILguJkKK+C4geC4suC4iAor4LiB4LmK4Liy4LiLCivguIHguLLguIvguLDguKXguK3guIcKK+C4geC4suC4i+C4sOC4peC4reC4h+C4hOC4swor4LiB4Liy4LiN4LiI4LiZ4LiyCivguIHguLLguJAKK+C4geC4suC4lAor4LiB4LmK4Liy4LiUCivguIHguLLguJkKK+C4geC5iOC4suC4mQor4LiB4LmJ4Liy4LiZCivguIHguYrguLLguJkKK+C4geC4suC4meC4lOC4sgor4LiB4Liy4LiZ4LiV4LmMCivguIHguLLguJnguJfguYwKK+C4geC4suC4meC4mQor4LiB4Liy4LiZ4Lie4Lil4Li5CivguIHguLLguJnguYnguLIKK+C4geC4suC4mgor4LiB4LmJ4Liy4Lia4LmGCivguIHguLLguJrguJrguLHguKcKK+C4geC4suC4muC4sAor4LiB4Liy4Lia4Li44Lij4Li44LipCivguIHguLLguJrguLkKK+C4geC4suC5gOC4m+C4teC5ieC4ouC4lAor4LiB4Liy4Lie4Lii4LmMCivguIHguLLguYDguJ/guK3guLXguJkKK+C4geC4suC5geC4nwor4LiB4Liy4LihCivguIHguYnguLLguKEKK+C4geC4suC4oeC4geC4p+C4oQor4LiB4LmJ4Liy4Lih4LiB4Li44LmJ4LiHCivguIHguLLguKHguJcKK+C4geC4suC4oeC4mQor4LiB4LmJ4Liy4Lih4Lib4Li5CivguIHguYnguLLguKHguJvguLnguKvguKXguLjguJQKK+C4geC4suC4oeC5guC4oeC4l+C4ogor4LiB4Liy4Lih4Lin4Li04LiV4LiW4Liy4LijCivguIHguLLguKHguLHguIoKK+C4geC4suC4oeC4sgor4LiB4Liy4Lih4Liy4LiX4Li14LiZ4LieCivguIHguLLguKHguLLguJ7guIjguKMKK+C4geC4suC4oeC4suC4oeC4tOC4qAor4LiB4Liy4Lih4Liy4Lij4Lih4LiT4LmMCivguIHguLLguKHguLLguKfguIjguKMKK+C4geC4suC4oeC4tOC4meC4tQor4LiB4Liy4Lih4Li04LioCivguIHguLLguYDguKHguKgKK+C4geC4suC5gOC4oeC4quC4uOC4oeC4tOC4iOC4ieC4suC4iOC4suC4owor4LiB4Liy4LiiCivguIHguYjguLLguKIKK+C4geC4suC4ouC4geC4o+C4o+C4oQor4LiB4Liy4Lii4LiE4LiV4Liy4Liq4LiV4Li0CivguIHguLLguKLguJfguKfguLLguKMKK+C4geC4suC4ouC4l+C4uOC4iOC4o+C4tOC4lQor4LiB4Liy4Lii4Lia4Lij4Li04Lir4Liy4LijCivguIHguLLguKLguJ7guLHguJnguJjguJnguYwKK+C4geC4suC4ouC4oOC4suC4ngor4LiB4Liy4Lii4Lig4Liy4Lie4Lia4Liz4Lia4Lix4LiUCivguIHguLLguKLguKfguLTguKDguLLguITguKjguLLguKrguJXguKPguYwKK+C4geC4suC4ouC4quC4tOC4l+C4mOC4tOC5jAor4LiB4Liy4Lii4Liq4Li44LiI4Lij4Li04LiVCivguIHguLLguKLguLLguJ7guKLguJ4KK+C4geC4suC4ouC4tOC4meC4l+C4o+C4teC4ouC5jAor4LiB4Liy4LmA4Lii4LiZCivguIHguLLguYDguKLguJnguJfguKPguLXguKLguYwKK+C4geC4suC4owor4LiB4Liy4Lij4LiBCivguIHguLLguKPguJPguYwKK+C4geC4suC4o+C5jOC4lAor4LiB4Liy4Lij4LiV4Li04LmA4LiB4Lii4LiwCivguIHguLLguKPguYzguJXguLnguJkKK+C4geC4suC4o+C5gOC4lQor4LiB4Liy4Lij4LmC4LiZ4LmJ4Lih4LiW4LmI4Lin4LiHCivguIHguLLguKPguJrguLnguKMKK+C4geC4suC4o+C4muC4ueC4o+C4m+C5iOC4sgor4LiB4Liy4Lij4Lii4LmMCivguIHguLLguKPguKXguLDguYDguKXguYjguJkKK+C4geC4suC4o+C4p+C4tOC4gQor4LiB4Liy4Lij4LmA4Lin4LiBCivguIHguLLguKPguLDguYDguIHguJQKK+C4geC4suC4o+C4sOC4muC4uOC4q+C4meC4tOC4hwor4LiB4Liy4Lij4Lix4LiT4LiR4Lin4LiwCivguIHguLLguKPguLHguJPguKLguYwKK+C4geC4suC4o+C4seC4meC4leC5jAor4LiB4Liy4Lij4Liy4LiH4Lir4Lix4Lin4LiC4Lin4Liy4LiZCivguIHguLLguKPguLjguI0KK+C4geC4suC4o+C4uOC4k+C4ouC5jAor4LiB4Liy4LmA4Lij4LiB4Liy4Lij4LmI4Lit4LiZCivguIHguLLguYDguKPguLXguKLguJkKK+C4geC4suC4pQor4LiB4Liy4Lil4LiB4Lij4Lij4LiT4Li1CivguIHguLLguKXguIHguLHguI3guIrguLTguIHguLLguKrguLnguKMKK+C4geC4suC4peC4geC4tOC4k+C4tQor4LiB4Liy4Lil4LiI4Lix4LiB4LijCivguIHguLLguKXguLHguI3guI3guLjguJXguLIKK+C4geC4suC4peC4seC4jeC4jeC4uQor4LiB4Liy4Lil4Lix4LiUCivguIHguLLguKXguLLguJnguLjguIHguLLguKUKK+C4geC4suC4peC4suC4oeC4quC4ueC4leC4owor4LiB4Liy4Lil4Li04LiBCivguIHguLLguKXguLUKK+C4geC4suC5geC4peC5h+C4geC4i+C4teC5iAor4LiB4Liy4LinCivguIHguYnguLLguKcKK+C4geC4suC4p+C4p+C4suC4pwor4LiB4Liy4LmB4Lin4LiZCivguIHguLLguKjguLTguIEKK+C4geC4suC4qeC4kOC4sAor4LiB4Liy4Lip4LiyCivguIHguLLguKrguKMKK+C4geC4suC4quC4sAor4LiB4Liy4Liq4LiyCivguIHguLLguKrguLLguKMKK+C4geC4suC4quC4suC4p+C4sAor4LiB4Liy4Liq4Li04LmC4LiZCivguIHguLLguKvguKUKK+C4geC4suC4q+C4peC4sgor4LiB4Liy4Lir4Lil4Li04LiaCivguIHguLLguKvguLHguIEKK+C4geC4suC5gOC4q+C4p+C5iOC4sgor4LiB4Liy4LmE4Lir4Lil4LmICivguIHguLLguKwKK+C4geC4suC4rOC4geC4ueC4jwor4LiB4Liy4Lis4Lib4Lix4LiB4Lip4LmMCivguIHguLLguKzguJvguLHguIHguKnguLUKK+C4geC4suC4rOC4nuC4pOC4geC4qeC5jAor4LiB4Liy4Lis4LmC4Lij4LiECivguIHguLLguKzguKfguLLguJUKK+C4geC4suC4rOC4suC4p+C4gQor4LiB4Liy4Liu4Lix4LiHCivguIHguLMKK+C4geC5iOC4swor4LiB4LmJ4LizCivguIHguLPguIHguKfguKEKK+C4geC4s+C4geC4seC4lAor4LiB4Liz4LiB4Lix4LiaCivguIHguYnguLPguIHguLbguYjguIcKK+C4geC4s+C4geC4ueC4mQor4LiB4LmJ4Liz4LmA4LiB4Li04LiZCivguIHguLPguYDguIHguLXguKLguIcKK+C4geC4s+C4hOC4ueC4mQor4LiB4LmI4Liz4LmA4LiE4Li34LitCivguIHguLPguIjguKMKK+C4geC4s+C4iOC4seC4lAor4LiB4Liz4LiI4Liy4LiiCivguIHguLPguIrguLHguJoKK+C4geC4s+C4iuC4swor4LiB4Liz4LmC4LiK4LiBCivguIHguLPguIvguLLguJoKK+C4geC4s+C4i+C4swor4LiB4Liz4LiU4LmJ4LiZCivguIHguLPguJTguLHguJQKK+C4geC4s+C4lOC4suC4pQor4LiB4Liz4LmA4LiU4LiyCivguIHguLPguYDguJTguLLguLAKK+C4geC4s+C4leC4suC4gQor4LiB4Liz4LiX4Lin4LiUCivguIHguLPguJfguKfguJkKK+C4geC4s+C4mOC4owor4LiB4Liz4LiZ4LilCivguIHguLPguJnguLHguJQKK+C4geC4s+C4meC4seC4mQor4LiB4Liz4LiZ4Lix4LilCivguIHguLPguYDguJnguLTguJQKK+C4geC4s+C5gOC4meC4teC4ouC4iAor4LiB4Liz4Lia4LiUCivguIHguLPguJrguJkKK+C4geC4s+C4muC4seC4hwor4LiB4Liz4Lia4Lix4LiUCivguIHguLPguJrguLTguJQKK+C4geC4s+C5gOC4muC5ieC4rQor4LiB4Liz4LmC4Lia4LilCivguIHguLPguJvguK0KK+C4geC4s+C4m+C4seC5iOC4mQor4LiB4Liz4Lib4Lix4LmJ4LiZCivguIHguLPguJzguKXguLIKK+C4geC4s+C4nuC4hwor4LiB4Liz4Lie4LiUCivguIHguLPguJ7guJUKK+C4geC4s+C4nuC4o+C5ieC4sgor4LiB4Liz4Lie4Lij4Liy4LiBCivguIHguLPguJ7guKfguJQKK+C4geC4s+C4nuC4reC4hwor4LiB4Liz4Lie4Li34LiUCivguIHguLPguJ7guLkKK+C4geC4s+C5gOC4nuC4peC4tOC4hwor4LiB4Liz4LmB4Lie4LiHCivguIHguLPguYHguJ7guYnguIcKK+C4geC4s+C4oOC4uQor4LiB4Liz4Lih4Lie4Lik4LiB4Lip4LmMCivguIHguLPguKHguKXguLLguKjguJnguYwKK+C4geC4s+C4oeC5gOC4peC4qAor4LiB4Liz4Lih4Liw4LiW4Lix4LiZCivguIHguLPguKHguLDguKXguK0KK+C4geC4s+C4oeC4sOC4q+C4ouC4teC5iAor4LiB4Liz4Lih4Liw4Lir4Lij4Li04LiUCivguIHguLPguKHguLHguIfguKXguLDguIHguLLguKMKK+C4geC4s+C4oeC4seC4h+C4p+C4tOC4peC4tOC4lQor4LiB4Liz4Lih4Lix4LiK4Lie4LilCivguIHguLPguKLguLLguJkKK+C4geC4s+C4ouC4swor4LiB4Liz4Lij4LitCivguIHguLPguKPguLLguIEKK+C4geC4s+C4o+C4suC4mgor4LiB4Liz4Lij4Liy4LilCivguIHguLPguKPguLkKK+C4geC4s+C5gOC4o+C4tOC4mgor4LiB4Liz4LmE4LijCivguIHguLPguKXguK3guIcKK+C4geC4s+C4peC4seC4hwor4LiB4Liz4Lil4Lix4LiH4LiK4LmJ4Liy4LiH4LmA4Lic4Li34Lit4LiBCivguIHguLPguKXguLHguIfguIrguYnguLLguIfguKrguLLguKMKK+C4geC4s+C4peC4seC4h+C4p+C4seC4p+C5gOC4luC4peC4tOC4hwor4LiB4Liz4Lil4Li44LiHCivguIHguLPguKXguLnguJkKK+C4geC4s+C5gOC4peC4sgor4LiB4Liz4LmA4Lil4Liy4LiwCivguIHguLPguYTguKUKK+C4geC4s+C4quC4o+C4lAor4LiB4Liz4Liq4Lij4Lin4LilCivguIHguLPguYDguKrguLLguLAKK+C4geC4s+C5geC4quC4hwor4LiB4Liz4Lir4LiZ4LiUCivguIHguLPguKvguJnguLHguJQKK+C4geC4s+C4q+C4o+C4suC4gQor4LiB4Liz4LmA4Lir4LiZ4LmH4LiICivguIHguLPguYHguKvguIcKK+C4geC4tOC4gQor4LiB4Li04LmK4LiBCivguIHguLTguYjguIcKK+C4geC4tOC5ieC4h+C4geC5iOC4sgor4LiB4Li04LmJ4LiH4LiB4Li34LitCivguIHguLTguYnguIfguYLguITguKPguIcKK+C4geC4tOC4h+C4muC4uOC4o+C4uOC4qQor4LiB4Li04LiH4Liq4Li44LiBCivguIHguLTguYjguIfguKvguLLguKIKK+C4geC4tOC4iAor4LiB4Li04LiI4LiI4LiwCivguIHguLTguIjguIjguLDguKXguLHguIHguKnguJPguLAKK+C4geC4tOC4iOC4iOC4sgor4LiB4Li04LiU4Liy4LiB4Liy4LijCivguIHguLTguJTguLLguKvguKLguLHguJkKK+C4geC4tOC4leC4leC4tAor4LiB4Li04LiV4Liy4Lir4Lij4Lix4LiHCivguIHguLTguJkKK+C4geC4tOC4meC5gOC4hOC4o+C4sgor4LiB4Li04LiZ4LiZ4LijCivguIHguLTguJnguKPguLTguJkKK+C4geC4tOC4meC4o+C4tQor4LiB4Li04LiZ4Li54LiZCivguIHguLTguYrguJoKK+C4geC4tOC4oQor4LiB4Li04Lih4LiV4Li24LmL4LiHCivguIHguLTguKHguLTguIrguLLguJXguLQKK+C4geC4tOC4oeC4tOC4p+C4tOC4l+C4ouC4sgor4LiB4Li04LmC4Lih4LmC4LiZCivguIHguLTguYLguKLguJXguLXguJkKK+C4geC4tOC4o+C4sAor4LiB4Li04Lij4Li04LiT4Li1CivguIHguLTguKPguLTguJnguJcKK+C4geC4tOC4o+C4tOC5gOC4meC4qOC4p+C4owor4LiB4Li04Lij4Li04Lii4LiyCivguIHguLTguKXguKHguLAKK+C4geC4tOC5gOC4peC4mQor4LiB4Li04LmA4Lil4LiqCivguIHguLTguYLguKUKK+C4geC4tOC5guC4peC4oeC4geC4sAor4LiB4Li04LmI4LinCivguIHguLTguYvguKcKK+C4geC4teC5iAor4LiB4Li14LmJCivguIHguLXguYsKK+C4geC4teC4jwor4LiB4Li14LiUCivguIHguLXguJXguLLguKPguYwKK+C4geC4teC4mgor4LiB4Li14Lij4LiV4Li0CivguIHguLXguKfguLUKK+C4geC4teC4rOC4sgor4LiB4Li24LiBCivguIHguLbguIHguJbguK3guIcKK+C4geC4tuC4hwor4LiB4Li24LmI4LiHCivguIHguLbguYvguJkKK+C4geC4uAor4LiB4Li44LiBCivguIHguLjguYrguIEKK+C4geC4uOC4geC5huC4geC4seC4geC5hgor4LiB4Li44LmK4LiB4LmG4LiB4Li04LmK4LiB4LmGCivguIHguLjguIHguIHguLHguIEKK+C4geC4uOC5iuC4geC4geC4tOC5iuC4gQor4LiB4Li44LiB4LiB4Li44LiPCivguIHguLjguIHguIHguLjguKMKK+C4geC4uOC4geC4guC4teC5ieC4q+C4oeC4uQor4LiB4Li44LiB4Lij4Lij4LihCivguIHguLjguIHguYjguK3guIcKK+C4geC4uOC4geC4sAor4LiB4Li44LiB4Li44LiY4Lig4Lix4LiT4LiR4LmMCivguIHguLjguYnguIcKK+C4geC4uOC5ieC4h+C5gOC4leC5ieC4mQor4LiB4Li44LmJ4LiH4Lii4Li04LiHCivguIHguLjguIfguK3guJkKK+C4geC4uOC4h+C4suC4mQor4LiB4Li44LmC4LiH4LiBCivguIHguLjguIjguLUKK+C4geC4uOC4jeC5geC4iAor4LiB4Li44LiN4LiK4LijCivguIHguLjguI4KK+C4geC4uOC4juC4sgor4LiB4Li44LiO4Liy4LiY4Liy4LijCivguIHguLjguI7guLUKK+C4geC4uOC4j+C4kOC4seC4hwor4LiB4Li44LiP4Li0CivguIHguLjguJPguJHguYwKK+C4geC4uOC4k+C4keC4pQor4LiB4Li44LiT4LiR4Li04LiZCivguIHguLjguJPguJHguLUKK+C4geC4uOC4k+C5guC4kQor4LiB4Li44LiT4Liy4LilCivguIHguLjguJPguLQKK+C4geC4uOC4k+C4tQor4LiB4Li44LiUCivguIHguLjguJTguLHguIcKK+C4geC4uOC4lOC4seC5iOC4mQor4LiB4Li44LiU4LiyCivguIHguLjguJfguLHguJPguJHguYwKK+C4geC4uOC4mQor4LiB4Li44LmK4LiZCivguIHguLjguJnguYDguIrguLXguKLguIcKK+C4geC4uOC4meC4i+C4t+C4rQor4LiB4Li44LiZ4LiX4Li1CivguIHguLjguYLguJnguIHguLLguKHguK0KK+C4geC4uOC4mgor4LiB4Li44Lia4LiB4Lix4LiaCivguIHguLjguKEKK+C4geC4uOC5iOC4oQor4LiB4Li44Lih4Lid4Lit4LiiCivguIHguLjguKHguKDguYwKK+C4geC4uOC4oeC4oOC4meC4tOC4ouC4sgor4LiB4Li44Lih4Lig4Lix4LiT4LiR4LmMCivguIHguLjguKHguKDguLIKK+C4geC4uOC4oeC4oOC4tOC4pQor4LiB4Li44Lih4Lig4Li14Lil4LmMCivguIHguLjguKHguKHguLLguKoKK+C4geC4uOC4oeC5gOC4q+C4hwor4LiB4Li44Lih4Liy4LijCivguIHguLjguKHguLLguKPguKXguKzguLTguJXguLIKK+C4geC4uOC4oeC4suC4o+C4sgor4LiB4Li44Lih4Liy4Lij4Li04LiB4LiyCivguIHguLjguKHguLLguKPguLUKK+C4geC4uOC4oeC4uOC4lwor4LiB4Li44LiiCivguIHguLjguYrguKIKK+C4geC4uOC5i+C4ogor4LiB4Li44LmL4Lii4LmGCivguIHguLjguKLguIrguYjguLLguKIKK+C4geC4uOC5iOC4ouC4q+C4peC4uOC5iOC4ouC4quC5ieC4oQor4LiB4Li44Lii4LmA4Liu4LiHCivguIHguLjguKPguKMKK+C4geC4uOC4o+C4sAor4LiB4Li44Lij4Li44LmA4LiB4Lip4LiV4LijCivguIHguLjguKPguLjguIcKK+C4geC4uOC4o+C4uOC4nuC4tOC4meC4l+C5jAor4LiB4Li44Lij4Li44LijCivguIHguLjguYDguKPguLIKK+C4geC4uOC4pQor4LiB4Li44Lil4LiB4Lix4Lil4Lii4LiyCivguIHguLjguKXguIHguLnguJPguLUKK+C4geC4uOC4peC4hOC4uOC4o+C4uAor4LiB4Li44Lil4LiK4LiZCivguIHguLjguKXguIrguLLguJUKK+C4geC4uOC4peC4lOC4tOC4peC4gQor4LiB4Li44Lil4LiX4Li54Liq4LiBCivguIHguLjguKXguJjguKPguKPguKEKK+C4geC4uOC4peC4mOC4tOC4lOC4sgor4LiB4Li44Lil4LiZ4Liy4LiECivguIHguLjguKXguJnguLLguKPguLUKK+C4geC4uOC4peC4meC4suC4qAor4LiB4Li44Lil4Lia4LiU4Li1CivguIHguLjguKXguJrguLjguJXguKMKK+C4geC4uOC4peC4muC4uOC4o+C4uOC4qQor4LiB4Li44Lil4Lie4LiY4Li5CivguIHguLjguKXguKHguLHguIjguInguKPguLTguKLguLAKK+C4geC4uOC4peC4oeC4tOC4leC4owor4LiB4Li44Lil4Lin4Liy4LijCivguIHguLjguKXguYDguKfguJfguLTguJXguLIKK+C4geC4uOC4peC4quC4leC4o+C4tQor4LiB4Li44Lil4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMCivguIHguLjguKXguLIKK+C4geC4uOC4peC4suC4q+C4pQor4LiB4Li44Lil4Li1CivguIHguLjguKXguLXguIHguLjguIjguK0KK+C4geC4uOC4peC4uOC4m+C4geC4suC4iOC4suC4o+C4ouC5jAor4LiB4Li44LmA4Lil4LiyCivguIHguLjguYHguKUKK+C4geC4uOC5hOC4pQor4LiB4Li44Lin4LiwCivguIHguLjguYDguKfguKMKK+C4geC4uOC4qOC4o+C4suC4igor4LiB4Li44Lio4LilCivguIHguLjguKjguYLguKXguJrguLLguKIKK+C4geC4uOC4quC4pQor4LiB4Li44Liq4LiwCivguIHguLjguKrguLjguKEKK+C4geC4uOC4quC4uOC4oeC4oOC5jAor4LiB4Li44Liq4Li44Lih4LiyCivguIHguLjguKrguLjguKHguLLguKXguKLguYwKK+C4geC4uOC4quC4uOC4oeC4tOC4leC4peC4lOC4suC5gOC4p+C4peC4peC4tOC4leC4sgor4LiB4Li44Lir4LiBCivguIHguLjguKvguJnguLUKK+C4geC4uOC4q+C4meC4uOC4hwor4LiB4Li44Lir4Lij4LmI4LiyCivguIHguLjguKvguKXguYjguLIKK+C4geC4uOC4q+C4peC4suC4mgor4LiB4Li44LmB4Lir4Lil4LiwCivguIHguLkKK+C4geC4ueC5iAor4LiB4Li54LmJCivguIHguLnguYrguIEKK+C4geC4ueC4jwor4LiB4Li54LiP4LiyCivguIHguLnguYLguI/guJrguLLguKIKK+C4geC4ueC4k+C4keC5jAor4LiB4Li54LiUCivguIHguLnguJkKK+C4geC4ueC4mgor4LiB4Li54Lib4Lij4Li1CivguIHguLnguKPguKHguLAKK+C4geC4ueC4o+C4oeC4suC4p+C4leC4suC4owor4LiB4Li54Lij4LizCivguYDguIEKK+C5gOC4geC5iAor4LmA4LiB4LmKCivguYDguIHguYsKK+C5gOC4geC5ieC5huC4geC4seC4h+C5hgor4LmA4LiB4LiBCivguYDguIHguYrguIEKK+C5gOC4geC4geC4oeC4sOC5gOC4q+C4o+C4gQor4LmA4LiB4LmK4LiB4Liu4Lin4LiiCivguYDguIHguYnguIHguLHguIcKK+C5gOC4geC5h+C4hwor4LmA4LiB4LmI4LiHCivguYDguIHguYnguIcKK+C5gOC4geC5i+C4hwor4LmA4LiB4LiH4LiB4Lit4LiiCivguYDguIHguYnguIfguIHguYnguLLguIcKK+C5gOC4geC4h+C5gOC4guC4hwor4LmA4LiB4LmL4LiH4LmA4LiE4LiHCivguYDguIHguYfguIgKK+C5gOC4geC4iOC4tOC4reC4suC4iOC4suC4o+C4ouC5jAor4LmA4LiB4LiK4LiyCivguYDguIHguJPguJHguYwKK+C5gOC4geC4k+C4keC5jOC4leC4sOC4nuC4seC4lAor4LmA4LiB4LiUCivguYDguIHguYfguJQKK+C5gOC4geC4leC4uAor4LmA4LiB4LiZCivguYDguIHguYjguJkKK+C5gOC4geC4meC5hgor4LmA4LiB4LmH4LiaCivguYDguIHguKEKK+C5gOC4geC4ogor4LmA4LiB4Lii4LmMCivguYDguIHguKLguLnguKMKK+C5gOC4geC4o+C4hwor4LmA4LiB4Lij4LmH4LiHCivguYDguIHguKPguJQKK+C5gOC4geC4o+C5h+C4lAor4LmA4LiB4Lij4LiZCivguYDguIHguKPguYjguK0KK+C5gOC4geC4o+C4reC4sAor4LmA4LiB4Lij4Liy4LiwCivguYDguIHguKPguLLguLDguYDguJ7guIrguKPguYTguJ7guJHguLnguKPguKLguYwKK+C5gOC4geC4o+C4tOC4gQor4LmA4LiB4Lij4Li04LiZCivguYDguIHguKPguLTguYjguJkKK+C5gOC4geC4o+C4teC4ouC4gQor4LmA4LiB4Lij4Li14Lii4LiHCivguYDguIHguKPguLXguKLguJQKK+C5gOC4geC4o+C4teC4ouC4mQor4LmA4LiB4Lij4Li14Lii4LiaCivguYDguIHguKPguLXguKLguKEKK+C5gOC4geC4o+C4teC4ouC4oeC4geC4o+C4oQor4LmA4LiB4Lij4Li14Lii4LinCivguYDguIHguKPguLXguYnguKLguKcKK+C5gOC4geC4o+C4teC5ieC4ouC4p+C5hgor4LmA4LiB4LmA4LijCivguYDguIHguKXguYfguJQKK+C5gOC4geC4peC4qAor4LmA4LiB4Lil4LitCivguYDguIHguKXguLIKK+C5gOC4geC4peC5ieC4sgor4LmA4LiB4Lil4Liy4LiwCivguYDguIHguKXguLXguYjguKIKK+C5gOC4geC4peC4teC5ieC4ogor4LmA4LiB4Lil4Li14Lii4LiHCivguYDguIHguKXguLXguYnguKLguIcKK+C5gOC4geC4peC4teC4ouC4lAor4LmA4LiB4Lil4Li14Lii4LinCivguYDguIHguKXguLXguYjguKLguKfguJTguLMKK+C5gOC4geC4peC4t+C4rQor4LmA4LiB4Lil4Li34LmJ4LitCivguYDguIHguKXguLfguK3guIEKK+C5gOC4geC4peC4t+C5iOC4reC4mQor4LmA4LiB4Lil4Li34LmJ4Lit4LiZCivguYDguIHguYTguKUKK+C5gOC4geC4p+C4pQor4LmA4LiB4Lin4Lil4Liy4LiX4Li1CivguYDguIHguKfguKXguLTguJkKK+C5gOC4geC4p+C4peC4tQor4LmA4LiB4Lin4Lix4LiPCivguYDguIHguKfguLXguKLguJkKK+C5gOC4geC4qAor4LmA4LiB4Lio4LieCivguYDguIHguKjguKcKK+C5gOC4geC4qOC4sgor4LmA4LiB4Lio4Li04LiZ4Li1CivguYDguIHguKjguLUKK+C5gOC4geC4qeC4leC4owor4LmA4LiB4Lip4LiV4Lij4LiB4LijCivguYDguIHguKnguJXguKPguIHguKPguKPguKEKK+C5gOC4geC4qeC4leC4o+C4muC4lOC4tQor4LmA4LiB4Lip4LiV4Lij4Lio4Liy4Liq4LiV4Lij4LmMCivguYDguIHguKnguKEKK+C5gOC4geC4qeC4teC4ouC4kwor4LmA4LiB4Lip4Li14Lii4LiZCivguYDguIHguKnguLXguKLguKMKK+C5gOC4geC4qgor4LmA4LiB4Liq4LiV4Liy4LmC4LibCivguYDguIHguKrguKMKK+C5gOC4geC4quC4o+C4tQor4LmA4LiB4Liq4LiyCivguYDguIHguKrguLUKK+C5gOC4geC5iOC4q+C4peC4tQor4LmA4LiB4LmJ4LitCivguYDguIHguK3guLTguIrguLIKK+C5gOC4geC4sAor4LmA4LiB4Liw4LiB4LiwCivguYDguIHguLIKK+C5gOC4geC5iOC4sgor4LmA4LiB4LmJ4LiyCivguYDguIHguYvguLIKK+C5gOC4geC4suC4leC5jAor4LmA4LiB4Liy4LiX4Lix4LiT4LiR4LmMCivguYDguIHguLLguJfguLjguKHguJ7guKMKK+C5gOC4geC4suC4muC4tOC4mQor4LmA4LiB4Liy4Lia4Li04LilCivguYDguIHguLLguKHguLLguKMKK+C5gOC4geC4suC4peC4seC4lAor4LmA4LiB4Liy4Lil4Li04LiZCivguYDguIHguLLguKjguLHguKXguKLguYwKK+C5gOC4geC4suC5hOC4qOC4ogor4LmA4LiB4Liy4LmA4Lir4Lil4LiyCivguYDguIHguLLguYDguKvguKXguLXguKLguIcKK+C5gOC4geC5ieC4suC4reC4teC5iQor4LmA4LiB4Liy4LiwCivguYDguIHguLLguLDguYHguIHguLAKK+C5gOC4geC4tOC4hwor4LmA4LiB4Li04LmJ4LiHCivguYDguIHguLTguJQKK+C5gOC4geC4tOC4mQor4LmA4LiB4Li04LiaCivguYDguIHguLXguKIKK+C5gOC4geC4teC4ouC4geC4geC4suC4ogor4LmA4LiB4Li14Lii4LiHCivguYDguIHguLXguYjguKLguIcKK+C5gOC4geC4teC5i+C4ouC4hwor4LmA4LiB4Li14Lii4LiICivguYDguIHguLXguKLguJQKK+C5gOC4geC4teC4ouC4mQor4LmA4LiB4Li14LmJ4Lii4Lih4LmE4LiJ4LmICivguYDguIHguLXguYnguKLguKHguK3guLXguYsKK+C5gOC4geC4teC4ouC4o+C4leC4tAor4LmA4LiB4Li14Lii4Lij4LiV4Li04LmMCivguYDguIHguLXguYjguKLguKcKK+C5gOC4geC4teC5ieC4ouC4pwor4LmA4LiB4Li14LmK4Lii4LinCivguYDguIHguLXguYrguKLguLAKK+C5gOC4geC4t+C5ieC4rQor4LmA4LiB4Li34Lit4LiBCivguYDguIHguLfguYnguK3guIHguLnguKUKK+C5gOC4geC4t+C4reC4mgor4LmB4LiBCivguYHguIHguYgKK+C5geC4geC5iQor4LmB4LiB4LiHCivguYHguIHguYjguIcKK+C5geC4geC5ieC4hwor4LmB4LiB4LmK4LiHCivguYHguIHguIfguILguKEKK+C5geC4geC4h+C5hOC4lAor4LmB4LiB4LiH4LmB4LiZ4LiHCivguYHguIHguYjguIfguYHguKLguYjguIcKK+C5geC4geC5guC4lOC4peC4tOC5gOC4meC4teC4ouC4oQor4LmB4LiB4LiZCivguYHguIHguYjguJkKK+C5geC4geC4meC4sAor4LmB4LiB4LmB4LiZCivguYHguIHguYrguJsKK+C5geC4geC4oQor4LmB4LiB4LmJ4LihCivguYHguIHguKHguKHguLIKK+C5geC4geC4o+C4gQor4LmB4LiB4Lij4LmI4LiHCivguYHguIHguKPguYfguJkKK+C5geC4geC4o+C4meC4tOC4lQor4LmB4LiB4Lij4LmE4Lif4LiV4LmMCivguYHguIHguKPguYjguKcKK+C5geC4geC4o+C4sAor4LmB4LiB4LilCivguYHguIHguKXguYgKK+C5geC4geC4peC5ieC4hwor4LmB4LiB4Lil4LiZCivguYHguIHguKXguJoKK+C5geC4geC4peC5ieC4oQor4LmB4LiB4Lil4Lil4Lit4LiZCivguYHguIHguKXguYDguKXguLXguKLguKEKK+C5geC4geC4peC5ieC4pwor4LmB4LiB4Lil4LiwCivguYHguIHguYHguKUKK+C5geC4geC4pwor4LmB4LiB4LmJ4LinCivguYHguIHguKfguYjguIcKK+C5geC4geC4p+C5iOC4mQor4LmB4LiB4LmH4LiqCivguYHguIHguYrguKoKK+C5geC4geC4sAor4LmC4LiBCivguYLguIHguYgKK+C5guC4geC5iQor4LmC4LiB4LmLCivguYLguIHguIEKK+C5guC4geC4geC4meC4uOC4lwor4LmC4LiB4LiB4Li04LilCivguYLguIHguIHguLTguKXguLIKK+C5guC4geC5guC4geC5iQor4LmC4LiB4LiHCivguYLguIHguYjguIcKK+C5guC4geC4h+C4geC4suC4hwor4LmC4LiB4LmJ4LiH4LmA4LiB4LmJ4LiHCivguYLguIHguIfguYLguIHguYkKK+C5guC4geC5ieC4h+C5guC4hOC5ieC4hwor4LmC4LiB4LmA4LiK4Liy4Lin4LmMCivguYLguIHguI3guIjguJkKK+C5guC4geC4jeC4iOC4sgor4LmC4LiB4LiP4Li0CivguYLguIHguJAKK+C5guC4geC4kOC4suC4qgor4LmC4LiB4LiTCivguYLguIHguJPguIEKK+C5guC4geC4k+C4keC4seC4jeC4jeC4sAor4LmC4LiB4LiU4Lix4LiHCivguYLguIHguJXguYTguJUKK+C5guC4geC4l+C4seC4k+C4keC5jAor4LmC4LiB4LiZCivguYLguIHguYjguJkKK+C5guC4geC5i+C4mQor4LmC4LiB4LiZ4Liy4LiE4Lih4LiZ4LmMCivguYLguIHguYLguJnguYDguKPguLXguKIKK+C5guC4geC4m+C4tOC4meC4swor4LmC4LiB4Lih4LilCivguYLguIHguKHguLLguKPguKDguLHguIjguIjguYwKK+C5guC4geC4oeC4uOC4lwor4LmC4LiB4LmA4Lih4LiZCivguYLguIHguYDguKHguKgKK+C5guC4geC4ogor4LmC4LiB4Lij4LmJCivguYLguIHguKPguIEKK+C5guC4geC4o+C4geC4geC4o+C4suC4gQor4LmC4LiB4Lij4LiHCivguYLguIHguKPguYjguIcKK+C5guC4geC4o+C5iOC4h+C4geC4o+C5iOC4suC4hwor4LmC4LiB4Lij4LiH4LmA4LiB4Lij4LiHCivguYLguIHguKPguYvguIfguYDguIHguKPguYvguIcKK+C5guC4geC4o+C4jeC4iAor4LmC4LiB4Lij4LiUCivguYLguIHguKPguJXguYvguJkKK+C5guC4geC4o+C4mAor4LmC4LiB4Lij4LiY4LiyCivguYLguIHguKPguYvguJkKK+C5guC4geC4o+C4oQor4LmC4LiB4Lij4LiiCivguYLguIHguKPguKgKK+C5guC4geC5guC4o+C5guC4geC5gOC4lQor4LmC4LiB4LmC4Lij4LmC4LiB4LmC4Lij4LiBCivguYLguIHguYLguKPguYLguIHguYLguKoKK+C5guC4geC4peC4hwor4LmC4LiB4Lil4LiZCivguYLguIHguKXguLLguKvguKUKK+C5guC4geC5hOC4pQor4LmC4LiB4Lin4Li04LiXCivguYLguIHguKfguLTguKzguLLguKMKK+C5guC4geC4qAor4LmC4LiB4Lio4LilCivguYLguIHguKkKK+C5guC4geC4qeC4oQor4LmC4LiB4Lip4LiiCivguYLguIHguKoKK+C5guC4geC4quC4mQor4LmC4LiB4Liq4Lix4LiKCivguYLguIHguKrguLTguJnguJfguKPguYwKK+C5guC4geC4quC4teC4ouC5jAor4LmC4LiB4Liq4Li44LihCivguYLguIHguYTguKrguKIKK+C5guC4geC4q+C4gQor4LmC4LiB4Lir4Lin4LiyCivguYLguIHguKvguLHguI0KK+C5g+C4geC4peC5iQor4LmE4LiBCivguYTguIHguYgKK+C5hOC4geC5iQor4LmE4LiB4LmKCivguYTguIHguYsKK+C5hOC4geC5iOC4geC4reC4oQor4LmE4LiB4LmL4LmB4LiU4LiHCivguYTguIHguYjguYDguJXguLXguYnguKIKK+C5hOC4geC5iOC4meC4sgor4LmE4LiB4LmI4Lie4Lix4LilCivguYTguIHguYjguJ/guYnguLIKK+C5hOC4geC4owor4LmE4LiB4Lij4LieCivguYTguIHguKPguKXguLLguKoKK+C5hOC4geC4o+C4qOC4owor4LmE4LiB4Lij4Lio4Lij4Li1CivguYTguIHguKPguKrguKMKK+C5hOC4geC4o+C4quC4tOC4l+C4mOC4tAor4LmE4LiB4LilCivguYTguIHguKXguYgKK+C5hOC4geC4peC4suC4qgor4LmE4LiB4LinCivguYTguIHguKfguLHguKUKK+C5hOC4geC5iOC5hOC4q+C5iQor4LiCCivguILguITguLAKK+C4guC4hOC4suC4mOC4tOC4mwor4LiC4LiE4Liy4Lig4Li04Lij4Liy4LihCivguILguITguLLguKrguJnguLAKK+C4guC5gOC4hOC4qOC4p+C4owor4LiC4LiHCivguILguIfguIjguLfguYrguK0KK+C4guC4iOC4owor4LiC4LiI4Lit4LiBCivguILguIjguLHguJQKK+C4guC4iOC5iOC4suC4hwor4LiC4LiI4Liy4LiiCivguILguIjguLLguKcKK+C4guC4iOC4tOC4lQor4LiC4LiI4Li04Lij4Li04LiUCivguILguIjguLUKK+C4guC4iOC4uOC4ogor4LiC4LmA4LiI4LiyCivguILguJPguLAKK+C4guC4k+C4sOC4iOC4tOC4lQor4LiC4LiT4Li04LiBCivguILguJPguLTguIHguKrguKHguLLguJjguLQKK+C4guC4lAor4LiC4LiU4Liy4LiZCivguILguJXguK3guKIKK+C4guC4l+C4tOC4hwor4LiC4LiX4Li24LiHCivguILguJkKK+C4guC5ieC4mQor4LiC4LiZ4LiHCivguILguJnguIfguYDguJnguLfguYnguK0KK+C4guC4meC4lAor4LiC4LiZ4LiZCivguILguJnguJoKK+C4guC4meC4oQor4LiC4LiZ4Lih4LiI4Li14LiZCivguILguJnguKHguYDguJrguLfguYnguK3guIfguI3guKfguJkKK+C4guC4meC4oeC4m+C4seC4hwor4LiC4LiZ4Lih4Lic4Liq4Lih4LiZ4LmJ4Liz4Lii4LiyCivguILguJnguKHguJzguLHguIHguIHguLLguJQKK+C4guC4meC4oeC5gOC4quC5ieC4mQor4LiC4LiZ4Lih4Lir4Lix4Lin4Lic4Lix4LiB4LiB4Liy4LiUCivguILguJnguK3guIcKK+C4guC4meC4reC4mQor4LiC4LiZ4Lit4LiaCivguILguJnguLHguJQKK+C4guC4meC4seC4mQor4LiC4LiZ4Liy4LiBCivguILguJnguLLguIcKK+C4guC4meC4suC4lAor4LiC4LiZ4Liy4LiZCivguILguJnguLLguJoKK+C4guC4meC4suC4ogor4LiC4LiZ4LizCivguILguJnguLTguKnguJAKK+C4guC4meC4tOC4qeC4kOC4sgor4LiC4LiZ4Li44LiZCivguILguJoKK+C4guC4muC4guC4seC4mQor4LiC4Lia4LiWCivguILguJrguKfguJkKK+C4guC4muC4p+C4owor4LiC4Lia4Li54LijCivguILguKEKK+C4guC5iOC4oQor4LiC4Lih4LiH4LmC4LiB4Lij4LiiCivguILguKHguKEKK+C4guC4oeC4p+C4lAor4LiC4Lih4Lin4LiU4Lii4LiyCivguILguKHguKfguJkKK+C4guC4oeC4q+C4tOC4mQor4LiC4Lih4Lit4LiHCivguILguKHguYjguK3guKEKK+C4guC4oeC4reC4ogor4LiC4Lih4Lix4LiB4LmA4LiC4Lih4LmJ4LiZCivguILguKHguLHguIcKK+C4guC4oeC4seC4mgor4LiC4Lih4LiyCivguILguKHguYnguLMKK+C4guC4oeC4tOC5ieC4mQor4LiC4Lih4Li04LiaCivguILguKHguLXguILguKHguLHguJkKK+C4guC4oeC4tuC4hwor4LiC4Lih4Li4CivguILguKHguLjguIHguILguKHguK3guKEKK+C4guC4oeC4uOC4geC4guC4oeC4seC4pwor4LiC4Lih4Li44LiU4LiC4Lih4Li04LiUCivguILguKHguLjguJoKK+C4guC4oeC4uOC4oQor4LiC4LmC4Lih4LiiCivguILguKLguJQKK+C4guC4ouC4oQor4LiC4Lii4LmI4LihCivguILguKLguKUKK+C4guC4ouC4reC4gQor4LiC4Lii4Lit4LiHCivguILguKLguYjguK3guJkKK+C4guC4ouC5ieC4reC4mQor4LiC4Lii4LiwCivguILguKLguLDguYHguILguKLguIcKK+C4guC4ouC4seC4gQor4LiC4Lii4Lix4LiZCivguILguKLguLHguYnguJkKK+C4guC4ouC4seC4mgor4LiC4Lii4Liy4LiUCivguILguKLguLLguJoKK+C4guC4ouC4suC4ogor4LiC4Lii4LizCivguILguKLguYnguLMKK+C4guC4ouC4tOC4gQor4LiC4Lii4Li04LiaCivguILguKLguLTguYjguKEKK+C4guC4ouC4teC5iQor4LiC4Lii4Li14LmI4LiC4Lii4Lix4LiZCivguILguKLguLjguIHguILguKLguLTguIEKK+C4guC4ouC4uOC4geC4guC4ouC4uOC4ogor4LiC4Lii4Li44LiaCivguILguKLguLjguKEKK+C4guC4ouC4uOC5ieC4oQor4LiC4Lii4Li44LmJ4Lih4LiV4Li14LiZ4Lir4Lih4LiyCivguILguKLguLjguKIKK+C4guC4o+C4oQor4LiC4Lij4Lij4LiE4LmMCivguILguKPguLHguKcKK+C4guC4o+C4tOC4mgor4LiC4Lij4Li1CivguILguKPguLbguKEKK+C4guC4o+C4uOC4guC4o+C4sAor4LiC4Lil4LmJ4LiHCivguILguKXguJoKK+C4guC4peC4oQor4LiC4Lil4Lin4LiZCivguILguKXguYnguK0KK+C4guC4peC4seC4hwor4LiC4Lil4Lix4LiaCivguILguKXguLIKK+C4guC4peC4suC4lAor4LiC4Lil4Liy4LiiCivguILguKXguLTguJoKK+C4guC4peC4tOC4muC4l+C4reC4hwor4LiC4Lil4Li24LiHCivguILguKXguLjguIEKK+C4guC4peC4uOC4mgor4LiC4Lil4Li44LihCivguILguKXguLjguKHguJvguKPguLDguYDguIjguLXguKLguJQKK+C4guC4peC4uOC5iOC4ogor4LiC4Lil4Li5CivguILguKXguLnguYgKK+C4guC4p+C4hwor4LiC4LmI4Lin4LiHCivguILguKfguJQKK+C4guC4p+C4mQor4LiC4LmI4Lin4LiZCivguILguKfguJoKK+C4guC4p+C4ogor4LiC4Lin4Liw4LmE4LiC4Lin4LmI4LmA4LiC4Lin4Li14LmI4LiiCivguILguKfguLHguIHguYTguILguKfguYgKK+C4guC4p+C4seC4jQor4LiC4Lin4Lix4LiN4LmA4Lih4Li34Lit4LiHCivguILguKfguLHguI3guK3guYjguK3guJkKK+C4guC4p+C4seC4lAor4LiC4Lin4Lix4LiU4LiC4Lin4Li04LiUCivguILguKfguLHguJTguYHguITguKfguYnguIcKK+C4guC4p+C4seC5ieC4mQor4LiC4Lin4Lix4LiaCivguILguKfguLIKK+C4guC4p+C4suC4gQor4LiC4Lin4Liy4LiHCivguILguKfguYnguLLguIcKK+C4guC4p+C4suC4lAor4LiC4Lin4Liy4LiZCivguILguKfguLLguKLguILguKfguJkKK+C4guC4p+C4suC4pwor4LiC4Lin4LmJ4Liy4LinCivguILguKfguLTguJQKK+C4guC4qeC4k+C4sAor4LiC4Lip4Lix4LiiCivguILguKnguLXguJPguLLguKjguKPguJ4KK+C4guC4qeC4teC4owor4LiC4LitCivguILguYjguK0KK+C4guC5ieC4rQor4LiC4Lit4LiBCivguILguK3guIcKK+C4guC5ieC4reC4hwor4LiC4Lit4LiH4Lij4Liw4Lit4LiyCivguILguK3guInguLLguKIKK+C4guC4reC4lAor4LiC4Lit4LiZCivguILguYjguK3guJkKK+C4guC5ieC4reC4mQor4LiC4Lit4LiaCivguILguK3guJrguILguYjguLLguKIKK+C4guC4reC4muC5gOC4guC4lQor4LiC4Lit4Lia4LiE4Li44LiTCivguILguK3guJrguYPguIgKK+C4guC4reC4muC4nuC4o+C4sOC4hOC4uOC4kwor4LiC4Lit4Lia4LmA4Lir4Lil4LmH4LiBCivguILguK3guKEKK+C4guC5iOC4reC4ogor4LiC4LmJ4Lit4LiiCivguILguLDguILguLMKK+C4guC4sOC5geC4guC5iOC4mQor4LiC4Liw4LmB4LiC4LmJ4LiZCivguILguLDguYHguIjguLAKK+C4guC4sOC5geC4luC4gQor4LiC4Liw4LiZ4Liy4LiZCivguILguLDguYDguJnguYfguJQKK+C4guC4sOC4oeC4reC4oeC4guC4sOC5geC4oeC4oQor4LiC4Liw4LmB4Lih4LiL4LitCivguILguLDguYHguKHguJjguKEKK+C4guC4sOC4ouC4tOC4gQor4LiC4Liw4Lii4Li44LiBCivguILguLDguYDguKLguYnguK3guYHguILguKLguYjguIcKK+C4guC4sOC5geC4ouC4sAor4LiC4Lix4LiECivguILguLHguIcKK+C4guC4seC4h+C4guC4reC4gQor4LiC4Lix4LiKCivguILguLHguIrguIEKK+C4guC4seC4k+C4keC4quC4geC4owor4LiC4Lix4LiUCivguILguLHguJTguKHguK3guJkKK+C4guC4seC4mQor4LiC4Lix4LmJ4LiZCivguILguLHguJnguYHguILguYfguIcKK+C4guC4seC4meC4leC4tAor4LiC4Lix4LiZ4LiV4Li1CivguILguLHguJnguYLguJXguIEKK+C4guC4seC4meC4l+C4reC4h+C4nuC4ouC4suC4muC4suC4lwor4LiC4Lix4LiZ4LiX4Li1CivguILguLHguJnguJjguYwKK+C4guC4seC4meC4mOC4geC4uOC4oeC4suC4owor4LiC4Lix4LiZ4LiY4Liq4Lix4LiZ4LiU4Liy4LiZCivguILguLHguJnguJjguLLguKfguLLguKMKK+C4guC4seC4meC4q+C4oeC4suC4gQor4LiC4Lix4LiaCivguILguLHguKIKK+C4guC4seC4pwor4LiC4Lix4LmJ4LinCivguILguLIKK+C4guC5iOC4sgor4LiC4LmJ4LiyCivguILguLLguIEKK+C4guC4suC4geC5iuC4p+C4ogor4LiC4Liy4LmA4LiB4Lin4Li14Lii4LiZCivguILguLLguIcKK+C4guC5iOC4suC4hwor4LiC4LmJ4Liy4LiHCivguILguYnguLLguIfguIHguKPguLDguJTguLLguJkKK+C4guC5ieC4suC4h+C5gOC4h+C4tOC4mQor4LiC4Liy4LiH4LmB4LiU4LiHCivguILguYnguLLguIfguJXguLDguYDguKDguLIKK+C4guC5ieC4suC4h+C4peC4suC4ogor4LiC4Liy4LiT4Li4CivguILguLLguJQKK+C4guC4suC4l+C4meC4teC4ouC4sAor4LiC4Liy4LiZCivguILguYjguLLguJkKK+C4guC4suC4mgor4LiC4Liy4LihCivguILguYnguLLguKEKK+C4guC4suC4ogor4LiC4LmI4Liy4LiiCivguILguLLguKUKK+C4guC4suC4pwor4LiC4LmI4Liy4LinCivguILguYnguLLguKcKK+C4guC5ieC4suC4p+C4hOC4swor4LiC4LmJ4Liy4Lin4LiI4Li14LmICivguILguLLguKfguIjguLXguJoKK+C4guC5ieC4suC4p+C4leC5ieC4oQor4LiC4LmJ4Liy4Lin4LiV4Lit4LiBCivguILguYnguLLguKfguJnguIEKK+C4guC4suC4p+C4nuC4p+C4hwor4LiC4Liy4Lin4Lih4LmJ4LiyCivguILguYnguLLguKfguKHguLTguYjguJkKK+C4guC5ieC4suC4p+C5gOC4ouC5h+C4meC5g+C4leC5iQor4LiC4LmJ4Liy4Lin4LmA4Lii4LmH4LiZ4LmA4Lir4LiZ4Li34LitCivguILguYnguLLguKfguKrguLLguKMKK+C4guC5ieC4suC4p+C4q+C4suC4h+C4iuC5ieC4suC4hwor4LiC4Liy4Lin4LmD4Lir4LiN4LmICivguILguYnguLLguKfguYPguKvguKHguYjguJnguYnguK3guKIKK+C4guC5ieC4suC4p+C5g+C4q+C4oeC5iOC5g+C4q+C4jeC5iAor4LiC4LmJ4Liy4Lio4Li24LiBCivguILguYnguLLguKvguKXguKfguIcKK+C4guC5ieC4suC4q+C4peC4p+C4h+C4q+C4peC4seC4h+C4peC4suC4ogor4LiC4LizCivguILguYjguLPguYDguILguLXguKLguKcKK+C4guC4tOC4gQor4LiC4Li04LiB4LmGCivguILguLTguIcKK+C4guC4tOC5iOC4hwor4LiC4Li04Lib4Liq4Lix4LiX4LmC4LiXCivguILguLTguKEKK+C4guC4teC5iAor4LiC4Li14LmJCivguILguLXguYnguIHguLIKK+C4guC4teC5ieC4geC4suC4lOC4hwor4LiC4Li14LmJ4LiB4Liy4LmB4LiU4LiHCivguILguLXguYnguIHguLLguYDguKvguKXguLXguYjguKLguKEKK+C4guC4teC5ieC4guC4oQor4LiC4Li14LmJ4LiC4Lin4LiHCivguILguLXguYnguILguLjguKIKK+C4guC4teC5ieC4hOC4o+C4reC4gQor4LiC4Li14LmJ4LiE4Lin4Liy4LiiCivguILguLXguYnguYLguITguKPguIcKK+C4guC4teC4k+C4sAor4LiC4Li14LiT4Liy4Liq4LieCivguILguLXguJQKK+C4guC4teC5ieC4leC4seC4h+C4meC4tQor4LiC4Li14LmJ4LiV4Li04LmJ4LinCivguILguLXguYnguYTguJXguYkKK+C4guC4teC5ieC5hOC4lgor4LiC4Li14Lib4LiZ4Liy4Lin4Li44LiYCivguILguLXguYnguJzguLbguYnguIcKK+C4guC4teC5ieC4oeC4reC4lAor4LiC4Li14LmJ4Lii4Lit4LiBCivguILguLXguYnguKPguLLguJQKK+C4guC4teC5ieC5geC4o+C4lAor4LiC4Li14LmJ4Liq4Li54LiUCivguILguLXguYnguKvguJnguK3guJkKK+C4guC4teC5ieC4q+C4meC5ieC4sgor4LiC4Li14LmJ4Lir4LiZ4Li5CivguILguLXguYnguKvguKHguLkKK+C4guC4teC5ieC5gOC4q+C4peC5h+C4gQor4LiC4Li14LmJ4Lit4LmJ4LiZCivguILguLXguYnguK3guYnguLLguKIKK+C4guC4tuC4hwor4LiC4Li24LmJ4LiHCivguILguLbguYnguJkKK+C4guC4tuC5ieC4meC4ieC5iOC4suC4ogor4LiC4Li34LiZCivguILguLfguYjguJkKK+C4guC4t+C5iOC4rQor4LiC4Li34LmI4Lit4Lic4Li1CivguILguLjguIEKK+C4guC4uOC4lAor4LiC4Li44LiX4LiX4LiB4LiZ4Li04LiB4Liy4LiiCivguILguLjguJkKK+C4guC4uOC5iOC4mQor4LiC4Li44LiZ4LiX4Lit4LiHCivguILguLjguJnguYHguJzguJkKK+C4guC4uOC4meC5gOC4nuC5h+C4lAor4LiC4Li44Lib4Lib4Li04Lib4Liy4Liq4Li04LiB4LmA4Lib4Lij4LiVCivguILguLjguKEKK+C4guC4uOC4ogor4LiC4Li5CivguILguLnguYgKK+C4guC4ueC4lAor4LmA4LiCCivguYDguILguYkKK+C5gOC4guC4gQor4LmA4LiC4LmH4LiHCivguYDguILguYjguIcKK+C5gOC4guC4iOC4owor4LmA4LiC4LmH4LiNCivguYDguILguYfguI3guYPguIgKK+C5gOC4guC5h+C4lAor4LmA4LiC4LiU4LiyCivguYDguILguJUKK+C5gOC4guC4mQor4LmA4LiC4LmH4LiZCivguYDguILguYjguJkKK+C5gOC4guC4meC4hwor4LmA4LiC4LiZ4LmH4LiUCivguYDguILguJnguKIKK+C5gOC4guC4muC5h+C4iOC4guC4muC4p+C4mQor4LmA4LiC4Lia4LmH4LiVCivguYDguILguYfguKEKK+C5gOC4guC5ieC4oQor4LmA4LiC4LmJ4Lih4LiC4Liy4LiaCivguYDguILguKHguYfguIcKK+C5gOC4guC4oeC5h+C4lOC5geC4guC4oeC5iAor4LmA4LiC4Lih4LmI4LiZCivguYDguILguKHguYnguJkKK+C5gOC4guC4oeC5ieC4meC4guC4sOC4oeC4seC4gQor4LmA4LiC4Lih4LijCivguYDguILguKHguLIKK+C5gOC4guC4oeC5iOC4sgor4LmA4LiC4Lih4Liy4LmC4LiB4Lij4LiiCivguYDguILguKHguLfguK3guJoKK+C5gOC4guC4ogor4LmA4LiC4Lii4LiBCivguYDguILguKLguYjguIcKK+C5gOC4guC4ouC4leC4suC4ogor4LmA4LiC4Lii4LmJ4Lit4LmB4LiC4Lii4LmI4LiHCivguYDguILguKLguK3guLDguILguKLguLAKK+C5gOC4guC4ouC5iOC4sgor4LmA4LiC4Lii4Li04LiZCivguYDguILguKLguLTguJoKK+C5gOC4guC4ouC4teC4ouC4p+C4guC4ouC4reC4mQor4LmA4LiC4Lii4Li34LmJ4Lit4LiZCivguYDguILguKPguK3guLAKK+C5gOC4guC4peC4hwor4LmA4LiC4Lil4Lit4LiwCivguYDguILguKXguLAKK+C5gOC4guC4peC4sgor4LmA4LiC4Lil4Liy4LiwCivguYDguILguKcKK+C5gOC4guC4qeC4leC4owor4LmA4LiC4Lip4LihCivguYDguILguKnguLXguKLguKMKK+C5gOC4guC4rOC4sAor4LmA4LiC4Liw4LiC4LiwCivguYDguILguLIKK+C5gOC4guC5iOC4sgor4LmA4LiC4LmJ4LiyCivguYDguILguYnguLLguKvguKHguLTguYnguJkKK+C5gOC4guC4tOC4hwor4LmA4LiC4Li04LiZCivguYDguILguLTguJoKK+C5gOC4guC4teC5iOC4ogor4LmA4LiC4Li14Lii4LiHCivguYDguILguLXguKLguIfguJ7guKPguLDguJnguLLguIfguK3guLXguYgKK+C5gOC4guC4teC4ouC4h+C4nuC4o+C5ieC4sgor4LmA4LiC4Li14Lii4LiUCivguYDguILguLXguKLguJkKK+C5gOC4guC4teC5iOC4ouC4mQor4LmA4LiC4Li14Lii4LihCivguYDguILguLXguKLguKcKK+C5gOC4guC4teC5ieC4ouC4pwor4LmA4LiC4Li14Lii4LiwCivguYDguILguLfguK0KK+C5gOC4guC4t+C4reC4hwor4LmA4LiC4Li34LmI4Lit4LiHCivguYDguILguLfguYjguK3guJkKK+C5gOC4guC4t+C4reC4oQor4LmB4LiCCivguYHguILguYkKK+C5geC4guC4gQor4LmB4LiC4LiB4LmA4LiV4LmJ4LiyCivguYHguILguYfguIcKK+C5geC4guC5iOC4hwor4LmB4LiC4LmJ4LiHCivguYHguILguJkKK+C5geC4guC5iOC4mQor4LmB4LiC4LmJ4LiZCivguYHguILguJnguIcKK+C5geC4guC4meC4sAor4LmB4LiC4LihCivguYHguILguKHguYfguJoKK+C5geC4guC4oeC5iOC4pwor4LmB4LiC4Lii4LmH4LiB4LmGCivguYHguILguKLguIcKK+C5geC4guC4ouC5iOC4hwor4LmB4LiC4Lii4LiH4Lir4LiZ4Li5CivguYHguILguKXguLAKK+C5geC4guC4p+C4gQor4LmB4LiC4Lin4LiHCivguYHguILguKfguJkKK+C5geC4guC4p+C4meC4peC4reC4ogor4LmB4LiC4Lin4LiwCivguYHguILguKrguKPguYwKK+C5guC4ggor4LmC4LiC4LiBCivguYLguILguYjguIcKK+C5guC4guC4lAor4LmC4LiC4LiU4LiHCivguYLguILguJkKK+C5guC4guC4meC4hwor4LmC4LiC4LihCivguYLguILguKHguIcKK+C5guC4guC4oeC4lAor4LmC4LiC4Lih4LiU4Lii4LiyCivguYLguILguKLguIEKK+C5guC4guC4ouC4hwor4LmC4LiC4Lii4LmI4LiHCivguYLguILguKLguJQKK+C5guC4guC4ouC4oQor4LmC4LiC4Lil4LiBCivguYLguILguKXguIHguYYKK+C5guC4guC4peC4hwor4LmC4LiC4Lil4LiZCivguYLguILguKXguJnguJfguKfguLLguKMKK+C5guC4guC4qeC4oQor4LmE4LiCCivguYTguILguYgKK+C5hOC4guC5iQor4LmE4LiC4LmI4LiU4Lix4LiZCivguYTguILguYjguKHguLjguIEKK+C5hOC4guC4o+C4sgor4LmE4LiC4Lin4LmICivguYTguILguKfguYkKK+C5hOC4guC4qeC4ogor4LmE4LiC4Liq4Li34LitCivguYTguILguYDguKrguJnguLXguKLguJQKK+C5hOC4guC4q+C4uQor4LmE4LiC4LmI4LmA4Lir4Lil4Li34Lit4LiHCivguIQKK+C4hOC4gQor4LiE4LiE4LiZ4LiwCivguITguITguJnguLHguKHguJ7guKMKK+C4hOC4hOC4meC4suC4h+C4hOC5jAor4LiE4LiE4LiZ4Liy4LiZ4LiV4LmMCivguITguIcKK+C4hOC4h+C4hOC4sgor4LiE4LiH4LiE4Liy4LmA4LiU4Li34Lit4LiUCivguITguIfguYTguITguKIKK+C4hOC4iuC4o+C4suC4igor4LiE4LiK4Liq4LmI4Liy4LiZCivguITguIrguLLguIrguLLguJXguLQKK+C4hOC4iuC4suC4iuC4teC4ngor4LiE4LiK4Liy4LiY4Liy4LijCivguITguIrguLLguKDguKPguJPguYwKK+C4hOC4iuC4suC4ouC4uOC4o+C5gOC4p+C4igor4LiE4LiK4Liy4Lij4Li1CivguITguIrguLTguJnguJfguKMKK+C4hOC5gOC4iuC4meC4l+C4o+C5jAor4LiE4LiT4LiZCivguITguJPguJnguLIKK+C4hOC4k+C5guC4oOC4iuC4meC5jAor4LiE4LiT4LiwCivguITguJPguLTguIHguLIKK+C4hOC4k+C4tOC4lQor4LiE4LmA4LiT4LioCivguITguJQKK+C4hOC4lOC4tQor4LiE4LiVCivguITguJXguLQKK+C4hOC4l+C4sgor4LiE4LiZCivguITguYnguJkKK+C4hOC4meC4l+C4sgor4LiE4LiZ4LiX4Li04Liq4LitCivguITguJnguJfguLTguKrguK3guJfguLDguYDguKUKK+C4hOC4meC4l+C4tQor4LiE4LiZ4LiX4Li14LmA4LiC4Lih4LiyCivguITguJnguJfguLXguKrguK0KK+C4hOC4meC5guC4lwor4LiE4LiZ4LiY4LmMCivguITguJnguJjguKPguKPguJ7guYwKK+C4hOC4meC4peC4sAor4LiE4LmA4LiZ4LiI4LijCivguITguJoKK+C4hOC4oQor4LiE4Lih4LiZ4LmMCivguITguKHguJnguLLguIHguLLguKMKK+C4hOC4oeC4meC4suC4hOC4oQor4LiE4Lih4Li04LiB4Lig4Lix4LiVCivguITguKPguIEKK+C4hOC4o+C5iOC4hwor4LiE4Lij4LiaCivguITguKPguJrguJbguYnguKfguJkKK+C4hOC4o+C4o+C4iuC4tOC4lQor4LiE4Lij4Lij4LigCivguITguKPguKPguKDguYwKK+C4hOC4o+C4o+C4oOC4mOC4suC4leC4uAor4LiE4Lij4Lij4Lig4Lih4LilCivguITguKPguKPguKDguLLguJjguLLguJkKK+C4hOC4o+C4o+C5guC4oOC4l+C4owor4LiE4Lij4Lij4Lil4Lit4LiHCivguITguKPguKPguYLguKXguIcKK+C4hOC4o+C4o+C5hOC4pQor4LiE4Lij4Lij4Lir4Li04LiVCivguITguKPguKfguI0KK+C4hOC4o+C4p+C4jeC4q+C4sgor4LiE4Lij4Lin4Lix4LiBCivguITguKPguKfguLUKK+C4hOC4o+C4q+C4sgor4LiE4Lij4Lit4LiBCivguITguKPguK3guIcKK+C4hOC4o+C4reC4h+C5geC4hOC4o+C4hwor4LiE4Lij4LmI4Lit4LmA4LiH4Liy4LiwCivguITguKPguYjguK3guYDguJfguLXguKLguJkKK+C4hOC4o+C4reC4mgor4LiE4Lij4Lit4Lia4LiI4Lix4LiB4Lij4Lin4Liy4LilCivguITguKPguK3guJrguJXguKXguLHguJoKK+C4hOC4o+C5iOC4reC4oQor4LiE4Lij4LiwCivguITguKPguLDguYDguKHguLTguJkKK+C4hOC4o+C4sOC5geC4peC4hwor4LiE4Lij4Liw4LmE4LilCivguITguKPguLDguYHguKfguIcKK+C4hOC4o+C4sOC4q+C4mQor4LiE4Lij4Liw4Lir4Lin4LiZCivguITguKPguLDguKvguLLguKIKK+C4hOC4o+C4sOC4q+C4tOC4pwor4LiE4Lij4Liw4LmC4Lir4LiiCivguITguKPguLHguYjguIcKK+C4hOC4o+C4seC5ieC4hwor4LiE4Lij4Lix4LiU4LmA4LiE4Lij4LmI4LiHCivguITguKPguLHguJkKK+C4hOC4o+C4seC5iOC4mQor4LiE4Lij4Lix4LmJ4LiZCivguITguKPguLHguJoKK+C4hOC4o+C4seC4pwor4LiE4Lij4LiyCivguITguKPguYjguLIKK+C4hOC4o+C4suC4gQor4LiE4Lij4Liy4LiHCivguITguKPguLLguI0KK+C4hOC4o+C4suC4lAor4LiE4Lij4LmJ4Liy4LiZCivguITguKPguLLguJoKK+C4hOC4o+C4suC4muC4q+C4oeC4uQor4LiE4Lij4Liy4LihCivguITguKPguYnguLLguKEKK+C4hOC4o+C4suC4oeC4hOC4o+C4seC4mQor4LiE4Lij4Liy4LinCivguITguKPguYjguLLguKcKK+C4hOC4o+C4suC4qgor4LiE4Lij4LizCivguITguKPguYjguLMKK+C4hOC4o+C4tOC4m+C4l+C4reC4mQor4LiE4Lij4Li04Liq4LiV4LmMCivguITguKPguLXguITguKPguK0KK+C4hOC4o+C4teC4mgor4LiE4Lij4Li14LihCivguITguKPguLXguKnguKHguLLguKLguLHguJkKK+C4hOC4o+C4tgor4LiE4Lij4Li24LiB4LiE4Lij4Li34LmJ4LiZCivguITguKPguLbguIHguYLguITguKPguKEKK+C4hOC4o+C4tuC5iOC4hwor4LiE4Lij4Li24LiZCivguITguKPguLbguKEKK+C4hOC4o+C4tuC5ieC4oQor4LiE4Lij4Li24Lih4LiE4Lij4Li4CivguITguKPguLfguJQKK+C4hOC4o+C4t+C4mQor4LiE4Lij4Li34LmJ4LiZCivguITguKPguLfguJnguITguKPguLHguYjguJkKK+C4hOC4o+C4t+C5ieC4meC4hOC4o+C4tuC4gQor4LiE4Lij4Li34LmJ4LiZ4LmA4LiE4Lij4LiHCivguITguKPguLfguK0KK+C4hOC4o+C4uAor4LiE4Lij4Li44LiE4Lij4LiwCivguITguKPguLjguJEKK+C4hOC4o+C4uOC4keC4geC4o+C4sOC4l+C4hwor4LiE4Lij4Li44LmI4LiZCivguITguKPguLjguYjguJnguITguLTguJQKK+C4hOC4o+C4uOC4oeC5gOC4hOC4o+C4t+C4rQor4LiE4Lij4Li44LiiCivguITguKPguLjguKfguJnguLIKK+C4hOC4o+C4uQor4LiE4Lij4Li54LmICivguITguKPguLnguJQKK+C4hOC4pOC5guC4huC4qQor4LiE4Lik4LiZ4LiW4LmMCivguITguKTguKsKK+C4hOC4pOC4q+C4muC4lOC4tQor4LiE4Lik4Lir4Lib4Lix4LiV4LiZ4Li1CivguITguKTguKvguLHguKrguJbguYwKK+C4hOC4pOC4q+C4sgor4LiE4Lik4Lir4Liy4Liq4LiZ4LmMCivguITguKUKK+C4hOC4peC4p+C4hwor4LiE4Lil4LitCivguITguKXguYnguK0KK+C4hOC4peC4reC4gQor4LiE4Lil4Lit4LiHCivguITguKXguYjguK3guIcKK+C4hOC4peC5ieC4reC4hwor4LiE4Lil4Lit4LiUCivguITguKXguK3guJkKK+C4hOC4peC5ieC4reC4ogor4LiE4Lil4Lit4Lij4Li14LiZCivguITguKXguK3guYLguKPguJ/guK3guKPguKHguYwKK+C4hOC4peC4reC5guC4o+C4n+C4teC4peC4peC5jAor4LiE4Lil4LiwCivguITguKXguLDguITguKXguLjguYnguIcKK+C4hOC4peC4seC4gQor4LiE4Lil4Lix4LmI4LiBCivguITguKXguLHguYjguIHguYYKK+C4hOC4peC4seC4hwor4LiE4Lil4Lix4LmI4LiHCivguITguKXguLHguJXguIrguYwKK+C4hOC4peC4seC4mgor4LiE4Lil4Lix4Lia4LiE4Lil4LmJ4Liy4LiiCivguITguKXguLIKK+C4hOC4peC5ieC4sgor4LiE4Lil4Liy4LiH4LmB4LiE4Lil4LiHCivguITguKXguLLguJQKK+C4hOC4peC4suC4mQor4LiE4Lil4Liy4LiiCivguITguKXguYnguLLguKIKK+C4hOC4peC5ieC4suC4ouC4hOC4peC4tuC4hwor4LiE4Lil4LmI4Liy4LinCivguITguKXguLLguKgKK+C4hOC4peC4swor4LiE4Lil4LmI4LizCivguITguKXguYnguLMKK+C4hOC4peC4tOC4hwor4LiE4Lil4Li04LmJ4LiH4LmC4LiE4Lil4LiHCivguITguKXguLTguJnguLTguIEKK+C4hOC4peC4tQor4LiE4Lil4Li14LmICivguITguKXguLbguIcKK+C4hOC4peC4t+C5iOC4mQor4LiE4Lil4Li34LmI4LiZ4LmE4Liq4LmJCivguITguKXguLfguYjguJnguYDguKvguLXguKLguJkKK+C4hOC4peC4uOC4gQor4LiE4Lil4Li44LiB4LiE4Lil4Liy4LiZCivguITguKXguLjguYnguIcKK+C4hOC4peC4uOC4mgor4LiE4Lil4Li44LihCivguITguKXguLjguYjguKEKK+C4hOC4peC4uOC5ieC4oQor4LiE4Lin4LiHCivguITguKfguJMKK+C4hOC4p+C4mQor4LiE4Lin4LiaCivguITguKfguJrguYHguJnguYjguJkKK+C4hOC4p+C4ogor4LiE4Lin4LijCivguITguKfguLHguIEKK+C4hOC4p+C4seC4geC4hOC5ieC4reC4mQor4LiE4Lin4Lix4LmI4LiH4LiE4Lin4LmJ4Liy4LiHCivguITguKfguLHguJkKK+C4hOC4p+C4seC5iOC4mQor4LiE4Lin4LmJ4LiyCivguITguKfguLLguIEKK+C4hOC4p+C5ieC4suC4hwor4LiE4Lin4Liy4LiNCivguITguKfguLLguJkKK+C4hOC4p+C5ieC4suC4mQor4LiE4Lin4Liy4LihCivguITguKfguLLguKHguITguKXguLLguJQKK+C4hOC4p+C4suC4oeC5gOC4hOC4o+C4teC4ouC4lAor4LiE4Lin4Liy4Lih4LmB4LiE4LmJ4LiZCivguITguKfguLLguKHguYDguInguLfguYjguK3guKIKK+C4hOC4p+C4suC4oeC4iuC4t+C5ieC4mQor4LiE4Lin4Liy4Lih4LiW4LmI4Lin4LiHCivguITguKfguLLguKHguJbguLXguYgKK+C4hOC4p+C4suC4oeC4ouC4suC4p+C4hOC4peC4t+C5iOC4mQor4LiE4Lin4Liy4Lih4Lij4Li54LmJ4Liq4Li24LiB4LmA4LiC4Li34LmI4Lit4LiHCivguITguKfguLLguKHguKPguLnguYnguKrguLbguIHguJTguYnguK3guKIKK+C4hOC4p+C4suC4oeC4o+C4ueC5ieC4quC4tuC4geC5gOC4lOC5iOC4mQor4LiE4Lin4Liy4Lih4LmA4Lij4LmI4LiHCivguITguKfguLLguKHguYDguKPguYfguKcKK+C4hOC4p+C4suC4oeC4q+C4meC5iOC4p+C4hwor4LiE4Lin4Liy4LiiCivguITguKfguYjguLLguKcKK+C4hOC4p+C5iOC4swor4LiE4Lin4Li04LiZ4Li04LiZCivguITguKfguLTguKfguYYKK+C4hOC4p+C4tOC4p+C4hOC4p+C4seC4hwor4LiE4Lin4Li04Lin4LiE4Lin4LmI4Liy4LiHCivguITguKfguLTguKfguITguKfguYnguLLguIcKK+C4hOC4p+C4teC4meC4quC4tOC4o+C4tOC4geC4tOC4leC4tOC5jAor4LiE4Lir4Lix4LiQCivguITguK0KK+C4hOC5ieC4rQor4LiE4Lit4LiBCivguITguYfguK3guIHguITguLHguKoKK+C4hOC5h+C4reC4geC5gOC4l+C4pQor4LiE4Lit4LiE4Liy4LiZCivguITguK3guYDguITguIvguK3guKLguJTguYwKK+C4hOC4reC4h+C5gOC4geC4o+C4qgor4LiE4LmI4Lit4LiH4Lit4LmJ4Lit4LiiCivguITguK3guJQKK+C4hOC4reC5gOC4leC5h+C4mgor4LiE4Lit4LiZCivguITguYjguK3guJkKK+C4hOC5ieC4reC4mQor4LiE4Lit4LiZ4LiB4Lij4Li14LiVCivguITguYnguK3guJnguIHguKXguK3guIcKK+C4hOC4reC4meC5gOC4lOC4meC5gOC4i+C4reC4o+C5jAor4LiE4LmJ4Lit4LiZ4LiV4Li14LiZ4Lir4Lih4LiyCivguITguYnguK3guJnguJfguK3guIcKK+C4hOC4reC4meC4p+C4reC4ogor4LiE4Lit4LiZ4LmB4Lin4LiZ4LiV4LmMCivguITguK3guJnguYDguKrguLTguKPguYzguJUKK+C4hOC5ieC4reC4meC4q+C4reC4ogor4LiE4Lit4LiaCivguITguK3guKEKK+C4hOC5iOC4reC4oQor4LiE4LmJ4Lit4LihCivguITguK3guKHguJ7guLTguKfguYDguJXguK3guKPguYwKK+C4hOC4reC4oeC4oeC4suC4meC5guC4lAor4LiE4Lit4Lih4Lih4Li04Lin4LiZ4Li04Liq4LiV4LmMCivguITguK3guKIKK+C4hOC5iOC4reC4ogor4LiE4LmJ4Lit4LiiCivguITguYjguK3guKLguYYKK+C4hOC4reC4ouC4peC5jAor4LiE4Lit4Lij4LmM4LiUCivguITguK3guKPguYzguJUKK+C4hOC4reC4o+C4seC4m+C4iuC4seC5iOC4mQor4LiE4Lit4Lil4Lix4Lih4LiZ4LmMCivguITguK3guYDguKXguKrguYDguJXguK3guKPguK3guKUKK+C4hOC4reC5geC4peC4mQor4LiE4Lit4Liq4LiV4Li04LiB4LmC4LiL4LiU4LiyCivguITguK3guYHguKvguYnguIcKK+C4hOC4sAor4LiE4LmI4LiwCivguITguLDguYTguILguKfguYgKK+C4hOC4sOC4hOC5ieC4reC4ogor4LiE4Liw4LiE4Liy4LiZCivguITguLDguITguLbguIcKK+C4hOC4sOC4meC4mQor4LiE4Liw4LiZ4Lit4LiHCivguITguLDguJnguYnguLIKK+C4hOC4sOC4meC4tuC4hwor4LiE4Liw4LmA4LiZCivguITguLDguYDguJnguIfguKPguYnguLLguKIKK+C4hOC4sOC5gOC4meC5h+C4lAor4LiE4Liw4LmB4LiZ4LiZCivguITguLDguYPguJkKK+C4hOC4sOC4oeC4swor4LiE4Liw4Lih4Li24LiBCivguITguLDguKLguLHguYnguJnguITguLDguKLguK0KK+C4hOC4sOC5gOC4ouC4rQor4LiE4Lix4LiBCivguITguLHguYjguIEKK+C4hOC4seC4hOC4mQor4LiE4Lix4LiE4LiZ4LiwCivguITguLHguITguJnguLHguKHguJ7guKMKK+C4hOC4seC4hOC4meC4suC4h+C4hOC5jAor4LiE4Lix4LiE4LiZ4Liy4LiZ4LiV4LmMCivguITguLHguYjguIcKK+C4hOC4seC4h+C5hOC4hOC4ogor4LiE4Lix4LiI4LiJCivguITguLHguJPguJHguKHguLLguKXguLIKK+C4hOC4seC4k+C4keC4quC4ueC4leC4owor4LiE4Lix4LiUCivguITguLHguJTguYDguITguYnguLIKK+C4hOC4seC4lOC4iuC5ieC4reC4mQor4LiE4Lix4LiU4Lih4Lit4LiZCivguITguLHguJfguKXguLXguKLguLIKK+C4hOC4seC4mQor4LiE4Lix4LmI4LiZCivguITguLHguYnguJkKK+C4hOC4seC4meC4iOC4suC4oQor4LiE4Lix4LiZ4LiJ4Liy4LiiCivguITguLHguJnguYLguJTguIcKK+C4hOC4seC4meC4l+C4o+C4hwor4LiE4Lix4LiZ4LiYCivguITguLHguJnguJjguYwKK+C4hOC4seC4meC4mOC4suC4o+C4o+C4suC4qeC4juC4o+C5jAor4LiE4Lix4LiZ4Lir4Liy4Lih4LmA4Liq4Li34LitCivguITguLHguJoKK+C4hOC4seC4muC4hOC5ieC4reC4mQor4LiE4Lix4Lia4LiE4LiyCivguITguLHguJrguYHguIQKK+C4hOC4seC4nuC4oOC5jAor4LiE4Lix4Lie4LmC4Lig4LiX4LijCivguITguLHguKHguKDguLXguKPguYwKK+C4hOC4seC4pQor4LiE4Lix4LinCivguITguLHguYjguKcKK+C4hOC4sgor4LiE4LmI4LiyCivguITguYnguLIKK+C4hOC5iOC4suC4hOC4mgor4LiE4Liy4LiHCivguITguYjguLLguIcKK+C4hOC5ieC4suC4hwor4LiE4Liy4LiH4LiE4LiBCivguITguYnguLLguIfguITguLLguKcKK+C4hOC4suC4lAor4LiE4Liy4LiU4LiE4Lix4LmJ4LiZCivguITguLLguJbguLIKK+C4hOC4suC4l+C4reC4peC4tOC4gQor4LiE4LmI4Liy4LiX4Li14LmICivguITguLLguJgKK+C4hOC4suC5gOC4mOC4ouC5jAor4LiE4Liy4LiZCivguITguYnguLLguJkKK+C4hOC4suC4meC5ieC4sgor4LiE4Liy4LiaCivguITguLLguJ7guKLguLjguJUKK+C4hOC4suC4oQor4LiE4Liy4Lih4LiT4Li14Lii4LmMCivguITguLLguKHguKDguLXguKPguYwKK+C4hOC4suC4oeC4tQor4LiE4Liy4LiiCivguITguYjguLLguKIKK+C4hOC4suC4ouC4gQor4LiE4Liy4Lii4Lix4LiZCivguITguLLguKPguYzguJrguK3guJkKK+C4hOC4suC4o+C5jOC4muC4reC4meC5hOC4lOC4reC4reC4geC5hOC4i+C4lOC5jAor4LiE4Liy4Lij4LmM4Lia4Lit4LiZ4Lih4Lit4LiZ4Lit4LiB4LmE4LiL4LiU4LmMCivguITguLLguKPguYzguJrguK3guYDguJnguJUKK+C4hOC4suC4o+C5jOC4muC4reC4peC4tOC4gQor4LiE4Liy4Lij4LmM4Lia4Li54LmA4Lij4LmA4LiV4Lit4Lij4LmMCivguITguLLguKPguYzguYLguJrguKPguLHguJnguJTguLHguKEKK+C4hOC4suC4o+C5jOC5guC4muC5hOC4ruC5gOC4lOC4o+C4lQor4LiE4Liy4Lij4LieCivguITguLLguKPguKEKK+C4hOC4suC4o+C4p+C4sAor4LiE4Liy4Lij4Liy4LmA4LiV4LmJCivguITguLLguKPguLLguKfguLLguJkKK+C4hOC4suC4pwor4LiE4LmI4Liy4LinCivguITguYnguLLguKcKK+C4hOC4suC4p+C4leC4reC4hwor4LiE4Liy4Lin4Li1CivguITguLLguKfguLjguJUKK+C4hOC4suC4qgor4LiE4LmI4Liy4Lir4LiUCivguITguLMKK+C4hOC5iOC4swor4LiE4LmJ4LizCivguITguLPguJTguLXguITguKfguLLguKIKK+C4hOC4s+C5g+C4leC5iQor4LiE4Liz4LiZ4Lin4LiTCivguITguLPguJnguKfguKMKK+C4hOC4s+C4meC4seC4mgor4LiE4Liz4LiZ4Lix4LilCivguITguLPguJnguLbguIcKK+C4hOC4s+C4meC4ueC4kwor4LiE4Liz4LmC4Lia4LilCivguITguLPguJ3guK3guKIKK+C4hOC4s+C5gOC4nuC4peC4tOC4hwor4LiE4Liz4Lij4LiZCivguITguLPguKPguJoKK+C4hOC4s+C4o+C4suC4oQor4LiE4Liz4LmB4Liq4LiUCivguITguLPguYHguKvguIcKK+C4hOC4s+C5guC4reC4hwor4LiE4Li04LiB4LmGCivguITguLTguIcKK+C4hOC4tOC4lAor4LiE4Li04LiZ4Li0CivguITguLTguKHguKsKK+C4hOC4tOC4oeC4q+C4seC4meC4leC5jAor4LiE4Li04Lih4Lir4Liy4LiZ4LiwCivguITguLTguKPguLQKK+C4hOC4tOC4o+C4tQor4LiE4Li04Lil4Liy4LiZ4LiwCivguITguLTguKcKK+C4hOC4tOC5ieC4pwor4LiE4Li04Lir4Li04Liq4Li44LiCCivguITguLXguYgKK+C4hOC4teC4lQor4LiE4Li14LiV4LiB4LiwCivguITguLXguJoKK+C4hOC4teC4oQor4LiE4Li14Lij4Li1CivguITguLXguKPguLXguJrguLnguJkKK+C4hOC4tuC4gQor4LiE4Li24LmI4LiBCivguITguLbguYjguIHguYYKK+C4hOC4tuC4geC4hOC4seC4gQor4LiE4Li24LiB4LiE4Liy4LihCivguITguLfguJkKK+C4hOC4t+C4mgor4LiE4Li34LitCivguITguLgKK+C4hOC4uOC4gQor4LiE4Li44LiB4LiB4Li14LmJCivguITguLjguIHguYDguILguYjguLIKK+C4hOC4uOC4geC4hOC4peC4suC4mQor4LiE4Li44LiB4LiE4Liy4LihCivguITguLjguIHguJ7guLLguJfguKLguYwKK+C4hOC4uOC4hOC4sAor4LiE4Li44LiHCivguITguLjguYnguIcKK+C4hOC4uOC4kwor4LiE4Li44LiT4LiE4LmI4LiyCivguITguLjguJPguJjguKPguKPguKEKK+C4hOC4uOC4k+C4meC4suC4oQor4LiE4Li44LiT4Lia4LiXCivguITguLjguJPguJvguKPguLDguYLguKLguIrguJnguYwKK+C4hOC4uOC4k+C4nuC4tOC5gOC4qOC4qQor4LiE4Li44LiT4Lig4Liy4LieCivguITguLjguJPguKXguLHguIHguKnguJPguLAKK+C4hOC4uOC4k+C4peC4uOC4h+C4hOC4uOC4k+C4m+C5ieC4sgor4LiE4Li44LiT4Lin4Li04LmA4Lio4LipCivguITguLjguJPguKfguLjguJLguLQKK+C4hOC4uOC4k+C4qOC4seC4nuC4l+C5jAor4LiE4Li44LiT4Liq4Lih4Lia4Lix4LiV4Li0CivguITguLjguJPguLLguIHguKMKK+C4hOC4uOC4k+C4suC4peC4seC4ogor4LiE4Li44LiT4Li54Lib4LiB4Liy4LijCivguITguLjguYLguJPguJvguIHguLLguKMKK+C4hOC4uOC4lAor4LiE4Li44LiU4LiX4Liw4Lij4Liy4LiUCivguITguLjguJUKK+C4hOC4uOC4leC4leC4tAor4LiE4Li44LmI4LiZCivguITguLjguYnguJkKK+C4hOC4uOC4mwor4LiE4Li44Lib4LiV4LmMCivguITguLjguJvguJXguLQKK+C4hOC4uOC4oQor4LiE4Li44LmI4LihCivguITguLjguYnguKEKK+C4hOC4uOC5ieC4oeC4lOC4teC4hOC4uOC5ieC4oeC4o+C5ieC4suC4ogor4LiE4Li44LmJ4Lih4LmA4LiX4LmJ4LiyCivguITguLjguKHguJ3guK3guKIKK+C4hOC4uOC4ogor4LiE4Li44LmJ4LiiCivguITguLjguKPguLgKK+C4hOC4uOC4peC4sgor4LiE4Li44Lil4Li04LiB4LmI4LiyCivguITguLjguKXguLXguIHguLLguKMKK+C4hOC4uQor4LiE4Li54LmICivguITguLnguYkKK+C4hOC4ueC4kwor4LiE4Li54LiWCivguITguLnguJkKK+C4hOC4ueC4m+C4reC4hwor4LiE4Li54LmA4Lij4Li14Lii4LihCivguITguLnguKvguLIKK+C5gOC4hOC5ieC5gOC4geC5iQor4LmA4LiE4LmJ4LiHCivguYDguITguIjguIkKK+C5gOC4hOC4k+C4keC4sAor4LmA4LiE4LiUCivguYDguITguJkKK+C5gOC4hOC5gOC4muC4tOC4pQor4LmA4LiE4LmH4LihCivguYDguITguKHguLUKK+C5gOC4hOC4ogor4LmA4LiE4Lij4LiHCivguYDguITguKPguYjguIcKK+C5gOC4hOC4o+C4h+C4hOC4o+C4swor4LmA4LiE4Lij4LiH4LiE4Lij4LmI4LizCivguYDguITguKPguJTguLTguJUKK+C5gOC4hOC4o+C4mQor4LmA4LiE4Lij4LiyCivguYDguITguKPguYjguLIKK+C5gOC4hOC4o+C4suC4q+C4k+C4tQor4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguYDguITguKPguLXguKLguJQKK+C5gOC4hOC4o+C4teC4ouC4pwor4LmA4LiE4Lij4Li34LitCivguYDguITguKPguLfguK3guYDguILguLLguJnguYnguLMKK+C5gOC4hOC4o+C4t+C4reC5gOC4guC4suC4oeC4p+C4gQor4LmA4LiE4Lij4Li34LmI4Lit4LiHCivguYDguITguKPguLfguK3guIjguLHguIHguKPguKDguJ4KK+C5gOC4hOC4peC5ieC4hwor4LmA4LiE4Lil4LmH4LiUCivguYDguITguKXguYnguJkKK+C5gOC4hOC4peC5ieC4sgor4LmA4LiE4Lil4LmI4Liy4LiE4Lil4LmI4Lit4LiHCivguYDguITguKXguLTguJrguYDguITguKXguLTguYnguKEKK+C5gOC4hOC4peC4tOC5ieC4oQor4LmA4LiE4Lil4Li14LiiCivguYDguITguKXguLXguYnguKLguITguKXguLTguIcKK+C5gOC4hOC4peC4t+C5iOC4reC4mQor4LmA4LiE4Lil4Li34Lit4LiaCivguYDguITguKfguYnguIcKK+C5gOC4hOC4q+C4sAor4LmA4LiE4Lir4LiyCivguYDguITguK3guLAKK+C5gOC4hOC4sgor4LmA4LiE4LmJ4LiyCivguYDguITguLLguJnguYzguYDguJXguK3guKPguYwKK+C5gOC4hOC4suC5gOC4m+C5iwor4LmA4LiE4Liy4Lij4LieCivguYDguITguYnguLLguKrguJnguLLguKHguKvguKXguKfguIcKK+C5gOC4hOC4suC4sAor4LmA4LiE4Liy4Liw4LmB4LiE4LiwCivguYDguITguLXguYnguKIKK+C5gOC4hOC4teC4ouC4hwor4LmA4LiE4Li14Lii4LiUCivguYDguITguLXguKLguJkKK+C5gOC4hOC4teC4ouC4oQor4LmA4LiE4Li14LmI4Lii4LihCivguYDguITguLXguKLguKMKK+C5gOC4hOC4teC4ouC4pwor4LmA4LiE4Li14LmI4Lii4LinCivguYDguITguLXguYnguKLguKcKK+C5gOC4hOC4t+C5ieC4rQor4LmA4LiE4Li34Lit4LiHCivguYHguIQKK+C5geC4hOC5iAor4LmB4LiE4LmJCivguYHguITguYHguIHguKUKK+C5geC4hOC4iuC5gOC4iuC4teC4ouC4o+C5jAor4LmB4LiE4LiU4LmA4Lih4Li14Lii4LihCivguYHguITguYLguJfguJQKK+C5geC4hOC4mQor4LmB4LiE4LmI4LiZCivguYHguITguYnguJkKK+C5geC4hOC4mgor4LmB4LiE4Lia4Lir4Lih4Li5CivguYHguITguJvguIvguLnguKUKK+C5geC4hOC4oQor4LmB4LiE4Lij4LmICivguYHguITguKPguIEKK+C5geC4hOC4o+C4hOC4o+C4seC5iOC4hwor4LmB4LiE4Lij4LiHCivguYHguITguKPguIfguYDguITguKPguLXguKLguKcKK+C5geC4hOC4o+C4sAor4LmB4LiE4Lil4LiE4Li54Lil4Lix4LiqCivguYHguITguKXguIcKK+C5geC4hOC4peC5gOC4i+C4teC4ouC4oQor4LmB4LiE4Lil4LiZCivguYHguITguKXguYnguKcKK+C5geC4hOC4peC5iOC4p+C4hOC4peC5iOC4reC4hwor4LmB4LiE4Lil4Lit4Lij4Li1CivguYHguITguKXguLTguJ/guK3guKPguYzguYDguJnguLXguKLguKEKK+C5geC4hOC5geC4pQor4LmB4LiE4LinCivguYHguITguKfguIEKK+C5geC4hOC4p+C5ieC4hwor4LmB4LiE4Lin4LmJ4LiZCivguYHguITguLAKK+C5guC4hAor4LmC4LiE4LiBCivguYLguITguIHguIHguKPguLDguKrguLjguJkKK+C5guC4hOC4geC4geC4o+C4sOC4reC4reC4oQor4LmC4LiE4LiB4Lih4LmJ4LiyCivguYLguITguITguKXguLLguJkKK+C5guC4hOC5gOC4hOC4mQor4LmC4LiE4LmI4LiHCivguYLguITguYnguIcKK+C5guC4hOC4iOC4owor4LmC4LiE4LiI4Lij4LiE4Liy4LihCivguYLguITguYnguIoKK+C5guC4hOC5gOC4i+C5geC4hOC4meC4leC5jAor4LmC4LiE4LmE4LiL4LiZ4LmMCivguYLguITguJXguKMKK+C5guC4hOC5geC4l+C4meC5gOC4iOC4meC4leC5jAor4LmC4LiE4LiY4LiyCivguYLguITguJkKK+C5guC4hOC5iOC4mQor4LmC4LiE4LiZ4LiU4Li04LiZ4Liq4LitCivguYLguITguJnguJXguLLguKLguJvguKXguLLguKLguYDguJvguYfguJkKK+C5guC4hOC4meC4quC4oeC4rQor4LmC4LiE4Lia4Lit4Lil4LiV4LmMCivguYLguITguJvguJzguIHguLAKK+C5guC4hOC4oQor4LmC4LiE4Lih4LmI4LiyCivguYLguITguKPguIEKK+C5guC4hOC4o+C4geC4hOC4o+C4reC4gQor4LmC4LiE4Lij4LiB4LiE4Lij4Liy4LiBCivguYLguITguKPguIcKK+C5guC4hOC4o+C5iOC4hwor4LmC4LiE4Lij4LmI4LiH4LiE4Lij4LmI4Liy4LiHCivguYLguITguKPguIfguYHguITguKMKK+C5guC4hOC4o+C4oQor4LmC4LiE4Lij4LmA4Lih4Li14Lii4LihCivguYLguITguKPguYLguKHguYLguIvguKEKK+C5guC4hOC4o+C4suC4igor4LmC4LiE4LilCivguYLguITguKXguIcKK+C5guC4hOC4peC4mQor4LmC4LiE4Lin4LiV4LiyCivguYLguITguK3guK3guKPguYzguJTguLTguYDguJnguJUKK+C5g+C4hOC4owor4LmD4LiE4Lij4LmICivguYPguITguKPguYjguITguKPguKfguI0KK+C5hOC4hAor4LmE4LiE4LmJCivguYTguITguKPguYkKK+C5hOC4hOC4o+C5ieC5gOC4hOC4o+C4t+C4rQor4LmE4LiE4LilCivguYTguITguKXguYkKK+C4hgor4LiG4LiHCivguIbguI8KK+C4huC5guC4j+C4l+C4owor4LiG4LiVCivguIbguJkKK+C4huC4meC4suC4geC4owor4LiG4LiZ4Liy4LiE4LihCivguIbguJnguLLguKHguLHguKIKK+C4huC4meC4suC4qOC4seC4ogor4LiG4LmC4LiZ4Lia4LilCivguIbguKPguLLguKfguLLguKoKK+C4huC5ieC4reC4hwor4LiG4LmJ4Lit4LiH4Liq4Liy4Lih4Lii4LmI4Liy4LiZCivguIbguYjguLIKK+C4huC4suC4jwor4LiG4Liy4LiVCivguIbguLLguJkKK+C5gOC4huC4teC5iOC4ouC4mQor4LmC4LiG4Lij4Lin4Li04LiqCivguYLguIbguKkKK+C5guC4huC4qeC4gQor4LmC4LiG4Lip4LiT4LiyCivguYLguIbguKnguJPguLLguIHguLLguKMKK+C5guC4huC4qeC4k+C4suC4iuC4p+C4meC5gOC4iuC4t+C5iOC4rQor4LmC4LiG4Lip4Li04LiVCivguYLguIbguKrguKfguLHguJnguJXguYwKK+C4hwor4LiH4LiBCivguIfguIcKK+C4h+C4h+C4tOC4lAor4LiH4LiUCivguIfguJTguIfguLLguKEKK+C4h+C4mgor4LiH4LihCivguIfguKfguIcKK+C4h+C5iOC4p+C4hwor4LiH4Lin4LiUCivguIfguYjguKfguJkKK+C4h+C5ieC4p+C4mQor4LiH4Lin4Lii4LiH4LiHCivguIfguK0KK+C4h+C5ieC4rQor4LiH4Lit4LiBCivguIfguK3guIHguYHguIfguIEKK+C4h+C5iOC4reC4hwor4LiH4LmI4Lit4LiH4LmB4LiH4LmI4LiHCivguIfguK3guYHguIcKK+C4h+C4reC4lAor4LiH4Lit4LiU4LmB4LiH4LiUCivguIfguK3guJkKK+C4h+C5iOC4reC4mQor4LiH4LmI4Lit4LiZ4LmB4LiH4LmI4LiZCivguIfguK3guJnguKvguIfguYjguK0KK+C4h+C5ieC4reC4meC4q+C4oeC4uQor4LiH4Lit4LiaCivguIfguK3guKEKK+C4h+C5ieC4reC4oQor4LiH4Lit4LiiCivguIfguYjguK3guKIKK+C4h+C4sAor4LiH4Lix4LiB4LmGCivguIfguLHguYjguIHguYYKK+C4h+C4seC5iOC4hwor4LiH4Lix4LiH4LmGCivguIfguLHguJQKK+C4h+C4seC4mQor4LiH4Lix4LiZ4LiH4LiBCivguIfguLHguJoKK+C4h+C4seC4pwor4LiH4Lix4LmI4LinCivguIfguLHguKfguYDguIfguLXguKIKK+C4h+C4seC4p+C4i+C4seC4hwor4LiH4Lix4Lin4LmA4Lil4Li14LiiCivguIfguLIKK+C4h+C5iOC4sgor4LiH4LmJ4Liy4LiHCivguIfguYjguLLguYDguIfguKIKK+C4h+C4suC5hOC4iwor4LiH4Liy4LiZCivguIfguYjguLLguJkKK+C4h+C4suC4muC5hgor4LiH4Liy4LihCivguIfguYjguLLguKEKK+C4h+C4suC4ogor4LiH4LmI4Liy4LiiCivguIfguYjguLLguKLguYnguK3guKIKK+C4h+C5ieC4suC4pwor4LiH4LizCivguIfguYjguLMKK+C4h+C5ieC4swor4LiH4LmI4Liz4LmGCivguIfguLTguYnguKcKK+C4h+C4teC4mgor4LiH4Li24LiB4LmGCivguIfguLbguJkKK+C4h+C4tuC4oQor4LiH4Li24Lih4LiH4LizCivguIfguLjguJQKK+C4h+C4uOC4lOC5hgor4LiH4Li44LiZ4LiH4LiHCivguIfguLjguYjguJnguIfguYjguLLguJkKK+C4h+C4uOC4mgor4LiH4Li44Lia4LmGCivguIfguLjguJrguIfguLTguJoKK+C4h+C4uOC5ieC4oQor4LiH4Li44LmI4Lih4LiH4LmI4Liy4LihCivguIfguLjguKIKK+C4h+C4uQor4LiH4Li54LiaCivguIfguLnguYjguKvguJnguLUKK+C5gOC4h+C5iQor4LmA4LiH4LiBCivguYDguIfguYfguJkKK+C5gOC4h+C4ogor4LmA4LiH4LmI4Lir4Lih4Li24LiHCivguYDguIfguK3guLAKK+C5gOC4h+C4reC4sOC4h+C4sAor4LmA4LiH4LiyCivguYDguIfguYjguLIKK+C5gOC4h+C5ieC4sgor4LmA4LiH4Liy4LiwCivguYDguIfguLTguJkKK+C5gOC4h+C4teC5iOC4ogor4LmA4LiH4Li14LmI4Lii4LiHCivguYDguIfguLXguYjguKLguJkKK+C5gOC4h+C4teC4ouC4mgor4LmA4LiH4Li14LmJ4Lii4LinCivguYDguIfguLXguYnguKLguKfguKPguLDguYDguKPguLTguIcKK+C5gOC4h+C4teC5ieC4ouC4p+C4o+C4s+C4peC4tuC4gQor4LmA4LiH4Li14LmI4Lii4Lir4Li5CivguYDguIfguLfguYnguK0KK+C5gOC4h+C4t+C4reC4gQor4LmA4LiH4Li34LmI4Lit4LiHCivguYDguIfguLfguYjguK3guIfguYYKK+C5gOC4h+C4t+C4reC4lAor4LmA4LiH4Li34Lit4LiU4LiH4LiUCivguYDguIfguLfguK3guJkKK+C5gOC4h+C4t+C5iOC4reC4mQor4LmA4LiH4Li34Lit4LiaCivguYDguIfguLfguYnguK3guKEKK+C5geC4hwor4LmB4LiH4LmICivguYHguIfguYjguIcKK+C5geC4h+C5iOC4mQor4LmB4LiH4LmJ4LihCivguYHguIfguLAKK+C5guC4hwor4LmC4LiH4LmICivguYLguIfguIEKK+C5guC4h+C4geC5gOC4h+C4gQor4LmC4LiH4LiHCivguYLguIfguYnguIcKK+C5guC4h+C5iOC4h+C5hgor4LmC4LiH4LiH4LmA4LiH4LiHCivguYLguIfguYjguIfguYDguIfguYjguIcKK+C5guC4h+C5gOC4hwor4LmC4LiH4LiZCivguYTguIcKK+C5hOC4h+C5iQor4LiICivguIjguIEKK+C4iOC4hwor4LiI4LmI4LiHCivguIjguYvguIcKK+C4iOC4h+C4geC4o+C4oQor4LiI4LiH4LiB4LilCivguIjguIfguIHguKXguJnguLUKK+C4iOC4h+C5guC4hOC4o+C5iOC4hwor4LiI4LiH4Lit4LijCivguIjguIfguK3guLLguIcKK+C4iOC4jQor4LiI4LiUCivguIjguJTguLjguKPguIfguITguYwKK+C4iOC4lOC4uOC4o+C4sAor4LiI4LiV4Li44LiK4Liy4LiV4Li04Liq4Li44LiE4LiZ4LiY4LmMCivguIjguJXguLjguJXguJbguLUKK+C4iOC4leC4uOC4o+C4h+C4hOC5guC4iuC4hAor4LiI4LiV4Li44Lij4Liy4Lia4Liy4Lii4Lig4Li54Lih4Li0CivguIjguJXguLjguKPguLLguKPguLTguKLguKrguLHguIgKK+C4iOC4leC4uOC4quC4lOC4oeC4oOC5jAor4LiI4LiX4Li24LiHCivguIjguJkKK+C4iOC5ieC4mQor4LiI4LiaCivguIjguKEKK+C4iOC5iOC4oQor4LiI4Lih4LijCivguIjguKHguKPguLUKK+C4iOC4oeC4uQor4LiI4Lih4Li54LiBCivguIjguKHguLnguIHguJvguKXguLLguKvguKXguJQKK+C4iOC4oeC4ueC4geC4m+C4peC4suC5hOC4q+C4pQor4LiI4Lih4Li54LiB4Lir4Lil4Lit4LiUCivguIjguKLguLjguJXguLQKK+C4iOC4owor4LiI4Lij4LiBCivguIjguKPguIHguKXguLnguYgKK+C4iOC4o+C4geC4sgor4LiI4Lij4LmB4LiB4Lin4LmI4LiHCivguIjguKPguITguLHguYjguIcKK+C4iOC4o+C4iOC4o+C4seC4pQor4LiI4Lij4LiI4Lix4LiUCivguIjguKPguJPguLAKK+C4iOC4o+C4lAor4LiI4Lij4LiU4LilCivguIjguKPguJrguJkKK+C4iOC4o+C4muC4seC4mQor4LiI4Lij4Lia4Liy4LiXCivguIjguKPguKHguLHguJkKK+C4iOC4o+C4oeC4ueC4gQor4LiI4Lij4Lij4LiI4LiyCivguIjguKPguKPguYLguIjguKkKK+C4iOC4o+C4o+C4oQor4LiI4Lij4Lij4Lii4LiyCivguIjguKPguKPguYLguKXguIcKK+C4iOC4o+C4o+C5iOC4swor4LiI4Lij4Lil4Lin4LiHCivguIjguKPguKXguYjguKfguIcKK+C4iOC4o+C4peC4suC4lAor4LiI4Lij4Lil4Liy4LiiCivguIjguKPguKXguLTguYjguKcKK+C4iOC4o+C4peC4tQor4LiI4Lij4Lil4Li54LmICivguIjguKPguKfguIgKK+C4iOC4o+C4p+C4lAor4LiI4Lij4Lin4LiU4LiI4Lij4Li1CivguIjguKPguKfguLHguIEKK+C4iOC4o+C4qgor4LiI4Lij4Lit4LiBCivguIjguKPguLDguIHguKXguYnguLLguKIKK+C4iOC4o+C4sOC4guC4suC4mgor4LiI4Lij4Liw4LmA4LiC4LmJCivguIjguKPguLDguITguKXguLHguJoKK+C4iOC4o+C4sOC4hOC4peC5ieC4suC4ogor4LiI4Lij4Liw4LiE4Lil4Li44LmI4LihCivguIjguKPguLDguYHguITguIcKK+C4iOC4o+C4sOC4iOC4uOC5iOC4oQor4LiI4Lij4Liw4LiX4LiBCivguIjguKPguLDguYDguJfguLTguJkKK+C4iOC4o+C4sOC4meC4swor4LiI4Lij4Liw4Lia4Liy4LiZCivguIjguKPguLDguJrguLUKK+C4iOC4o+C4sOC4peC4tOC5iOC4hwor4LiI4Lij4Liw4Lil4Li24LiHCivguIjguKPguLDguKXguLjguIcKK+C4iOC4o+C4seC4pQor4LiI4Lij4Lix4LiqCivguIjguKPguLLguIEKK+C4iOC4o+C4suC4hwor4LiI4Lij4Liy4LiI4LijCivguIjguKPguLLguI0KK+C4iOC4o+C4suC4ogor4LiI4Lij4Liy4LinCivguIjguKPguLLguKoKK+C4iOC4o+C4tOC4gQor4LiI4Lij4Li04LiHCivguIjguKPguLTguIfguYYKK+C4iOC4o+C4tOC4kwor4LiI4Lij4Li04LiVCivguIjguKPguLTguKLguLIKK+C4iOC4o+C4tOC4pwor4LiI4Lij4Li1CivguIjguKPguLbguIcKK+C4iOC4o+C4uOC4gQor4LiI4Lij4Li44LiHCivguIjguKPguLnguIcKK+C4iOC4o+C4ueC4jQor4LiI4Lij4Li54LiqCivguIjguYDguKMKK+C4iOC4pQor4LiI4Lil4LiZ4Lie4Lil4Lio4Liy4Liq4LiV4Lij4LmMCivguIjguKXguJnguKjguLLguKrguJXguKPguYwKK+C4iOC4peC4meC4tQor4LiI4Lil4LiyCivguIjguKXguLLguIjguKUKK+C4iOC4p+C4gQor4LiI4LmK4Lin4LiBCivguIjguKfguIcKK+C4iOC5ieC4p+C4hwor4LiI4LmL4Lin4LiHCivguIjguKfguIfguKvguK3guKEKK+C4iOC4p+C4lAor4LiI4Lin4LiU4Lil4Liy4LiBCivguIjguKfguJkKK+C4iOC4p+C4mgor4LiI4Lin4Lix4LiBCivguIjguK0KK+C4iOC5iOC4rQor4LiI4LmJ4LitCivguIjguYvguK0KK+C4iOC4reC4gQor4LiI4LmJ4Lit4LiBCivguIjguYrguK3guIEKK+C4iOC5ieC4reC4geC5hgor4LiI4LmK4Lit4LiB4LmGCivguIjguYnguK3guIHguYHguIjguYnguIEKK+C4iOC5ieC4reC4geC4p+C4reC4gQor4LiI4Lit4LiHCivguIjguYjguK3guIcKK+C4iOC5ieC4reC4hwor4LiI4LmL4Lit4LiHCivguIjguYnguK3guIfguYDguJUKK+C4iOC4reC4h+C5gOC4m+C4o+C4teC4ouC4hwor4LiI4Lit4LiH4Lir4LiH4LmI4Lit4LiHCivguIjguYnguK3guIfguKvguJnguYjguK3guIcKK+C4iOC4reC4h+C4q+C4reC4hwor4LiI4Lit4LmB4LiICivguIjguYvguK3guYHguIjguYsKK+C4iOC5ieC4reC4iuC5ieC4suC4hwor4LiI4Lit4LiUCivguIjguK3guJkKK+C4iOC5ieC4reC4mQor4LiI4Lit4LiZ4LiI4LmI4LitCivguIjguK3guJnguKvguLkKK+C4iOC4reC4mgor4LiI4Lit4LihCivguIjguYjguK3guKEKK+C4iOC5iOC4reC4oeC4iOC5iOC4suC4ogor4LiI4Lit4Lih4LiX4Lit4LiHCivguIjguK3guKHguJvguKXguK3guKEKK+C4iOC5ieC4reC4oeC4m+C5ieC4reC4oQor4LiI4Lit4Lih4LmA4Lib4Liy4LiwCivguIjguK3guKHguKrguLjguKPguLLguIfguITguYwKK+C4iOC5iOC4reC4ogor4LiI4LmJ4Lit4LiiCivguIjguYvguK3guKIKK+C4iOC4sAor4LiI4LmJ4LiwCivguIjguYrguLAKK+C4iOC5i+C4sAor4LiI4Liw4LiB4Lij4Lix4LiU4LiI4Liw4LiB4Lij4Liy4LiUCivguIjguLDguIHguKPguLjguJkKK+C4iOC4sOC4geC4o+C4uOC4oeC4iOC4sOC4geC4o+C4suC4oQor4LiI4Liw4LiB4Lij4Li54LiZCivguIjguLDguIHguKXguLAKK+C4iOC4sOC4geC4p+C4lAor4LiI4Liw4LmA4LiB4Lij4LmH4LiHCivguIjguLDguILguLLguJoKK+C4iOC4sOC5gOC4guC5iQor4LiI4Liw4LmA4LiC4LmH4LiaCivguIjguLDguIfguK3guKIKK+C4iOC4sOC4iOC4sAor4LiI4Liw4LiI4LmJ4LiyCivguIjguLDguYHguIgKK+C4iOC4sOC5geC4iOC5ieC4hwor4LiI4Liw4LmB4LiI4LmJ4LiZCivguIjguLDguYHguIjguYjguKEKK+C4iOC4sOC5hOC4iOC5iQor4LiI4Liw4Lia4Lix4LiZCivguIjguLDguJvguLTguYnguIcKK+C4iOC4sOC5gOC4nuC4peC4tOC4hwor4LiI4Liw4Lil4Liw4LmA4Lih4LmH4LiUCivguIjguLDguKXguLDguKvguKfguLHguYjguJkKK+C4iOC4sOC4peC4uOC4hwor4LiI4Lix4LiBCivguIjguLHguYnguIHguYYKK+C4iOC4seC4geC4geC4suC4ogor4LiI4Lix4LmK4LiB4LiB4Li04LmJ4LihCivguIjguLHguIHguILguLgKK+C4iOC4seC4geC4iOC4seC5iOC4mQor4LiI4Lix4LiB4LiI4Li14LmJCivguIjguLHguYrguIHguIjguLXguYkKK+C4iOC4seC5iuC4geC5gOC4lOC4teC4ouC4oQor4LiI4Lix4LiB4LijCivguIjguLHguIHguKPguJ7guLLguIEKK+C4iOC4seC4geC4o+C4p+C4suC4gQor4LiI4Lix4LiB4Lij4Li04LiZCivguIjguLHguIHguKPguLUKK+C4iOC4seC5iuC4geC5gOC4peC5ieC4rQor4LiI4Lix4LiB4Lip4Li4CivguIjguLHguIHguYHguKvguKXguYjguJkKK+C4iOC4seC4hwor4LiI4Lix4LmJ4LiHCivguIjguLHguYvguIcKK+C4iOC4seC4h+C4geC4p+C4lAor4LiI4Lix4LiH4LiB4Lit4LiaCivguIjguLHguIfguIHguLIKK+C4iOC4seC4h+C4geC4ueC4lAor4LiI4Lix4LiH4LmA4LiBCivguIjguLHguIfguYLguIEKK+C4iOC4seC4h+C5guC4geC5iwor4LiI4Lix4LiH4LmC4LiB4LiP4LiB4LmMCivguIjguLHguIfguIfguLHguIcKK+C4iOC4seC4h+C4oeC4seC4hwor4LiI4Lix4LiH4LmE4LijCivguIjguLHguIfguKXguK3guJkKK+C4iOC4seC4h+C5gOC4p+C5h+C4iAor4LiI4Lix4LiH4Lir4LiZ4Lix4LiaCivguIjguLHguIfguKvguKPguLXguJQKK+C4iOC4seC4h+C4q+C4peC5iOC4rQor4LiI4Lix4LiH4Lir4Lin4LiwCivguIjguLHguIfguKvguKfguLHguJQKK+C4iOC4seC4h+C4q+C4seC4mQor4LiI4Lix4LiH4Lit4Lit4LiZCivguIjguLHguI3guYTguKMKK+C4iOC4seC4k+C4keC5jAor4LiI4Lix4LiT4LiR4Liy4LilCivguIjguLHguJQKK+C4iOC4seC4lOC4iOC4reC4hwor4LiI4Lix4LiV4LiV4Liy4Lis4Li14LiqCivguIjguLHguJXguKfguLIKK+C4iOC4seC4leC4uAor4LiI4Lix4LiV4Li44LijCivguIjguLHguJXguLjguYLguKXguIHguJrguLLguKUKK+C4iOC4seC4leC4uOC4quC4lOC4oeC4oOC5jAor4LiI4Lix4LiZCivguIjguLHguYjguJkKK+C4iOC4seC4meC5guC4iOC4qQor4LiI4Lix4LiZ4LiX4LmMCivguIjguLHguJnguJfguJnguYwKK+C4iOC4seC4meC4l+C4meC4sgor4LiI4Lix4LiZ4LiX4Lij4LmMCivguIjguLHguJnguJfguKPguIHguKXguLIKK+C4iOC4seC4meC4l+C4o+C4geC4qeC4seC4ogor4LiI4Lix4LiZ4LiX4Lij4LiB4Liy4LiZ4LiV4LmMCivguIjguLHguJnguJfguKPguIHguLjguI4KK+C4iOC4seC4meC4l+C4o+C5gOC4geC4leC4uAor4LiI4Lix4LiZ4LiX4Lij4LiE4LiV4Li0CivguIjguLHguJnguJfguKPguITguKPguLLguKoKK+C4iOC4seC4meC4l+C4o+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4LiI4Lix4LiZ4LiX4Lij4LiK4LiZ4LiBCivguIjguLHguJnguJfguKPguJfguLHguIHguKnguLTguJMKK+C4iOC4seC4meC4l+C4o+C4l+C4suC4owor4LiI4Lix4LiZ4LiX4Lij4LiZ4Li04Lig4LiyCivguIjguLHguJnguJfguKPguJrguLjguJXguKMKK+C4iOC4seC4meC4l+C4o+C4m+C4o+C4sOC4oOC4suC4ngor4LiI4Lix4LiZ4LiX4Lij4Lie4Li04Lih4Lie4LmMCivguIjguLHguJnguJfguKPguKDguLLguKoKK+C4iOC4seC4meC4l+C4o+C4oOC4ueC4leC4tAor4LiI4Lix4LiZ4LiX4Lij4Lih4LiT4LiR4LilCivguIjguLHguJnguJfguKPguYDguKHguYfguJQKK+C4iOC4seC4meC4l+C4o+C5gOC4oeC4suC4sOC4q+C5jAor4LiI4Lix4LiZ4LiX4Lij4Lij4Lix4LiV4LiZ4LmMCivguIjguLHguJnguJfguKPguKfguIfguKjguYwKK+C4iOC4seC4meC4l+C4o+C4p+C4o+C4o+C4kwor4LiI4Lix4LiZ4LiX4Lij4LmA4Lio4LiC4LijCivguIjguLHguJnguJfguKPguLLguKPguLQKK+C4iOC4seC4meC4l+C4o+C4uOC4m+C4o+C4suC4hOC4sgor4LiI4Lix4LiZ4LiX4LmC4Lij4LiX4Lix4LiiCivguIjguLHguJnguJfguLHguJkKK+C4iOC4seC4meC4peC4reC4hwor4LiI4Lix4LiZ4LmA4Lil4LiyCivguIjguLHguJnguYDguKXguLLguLAKK+C4iOC4seC5ieC4meC4q+C4peC5iOC4rQor4LiI4Lix4LiZ4Lit4Lix4LiaCivguIjguLHguJoKK+C4iOC4seC4muC4geC4seC4hwor4LiI4Lix4Lia4LiI4LmI4Liy4LiiCivguIjguLHguJrguYDguIjguLXguYvguKLguKcKK+C4iOC4seC4muC4ieC5iOC4suC4ogor4LiI4Lix4Lia4LmA4LiU4Li04LihCivguIjguLHguJrguJvguLTguYnguIcKK+C4iOC4seC4muC5guC4m+C4hwor4LiI4Lix4Lia4Lii4Li14LmI4LiB4Li1CivguIjguLHguJrguKrguLHguYjguJkKK+C4iOC4seC4oeC4muC4gQor4LiI4Lix4Lih4Lib4LiBCivguIjguLHguKHguKHguLAKK+C4iOC4seC5iOC4pwor4LiI4Lix4Lin4LiI4Li14LmK4LiUCivguIjguLHguYrguKfguLAKK+C4iOC4sgor4LiI4LmI4LiyCivguIjguYnguLIKK+C4iOC5i+C4sgor4LiI4Liy4LiBCivguIjguLLguIHguJ7guKPguLLguIEKK+C4iOC4suC4geC4nuC4suC4gQor4LiI4Liy4LiE4LiwCivguIjguLLguITguLUKK+C4iOC4suC4hwor4LiI4LmI4Liy4LiHCivguIjguYnguLLguIcKK+C4iOC4suC4h+C4p+C4suC4hwor4LiI4Liy4LiUCivguIjguLLguJXguLgKK+C4iOC4suC4leC4uOC4o+C4h+C4hOC5jAor4LiI4Liy4LiV4Li44Lij4LiZ4LiV4LmMCivguIjguLLguJXguLjguKPguLHguJnguJXguYwKK+C4iOC4suC4leC4uOC4o+C4tOC4gQor4LiI4Liy4LiZCivguIjguYnguLLguJkKK+C4iOC4suC4mgor4LiI4Liy4Lia4Lix4LilCivguIjguLLguJrguLHguKXguKLguYwKK+C4iOC4suC4mwor4LiI4Liy4Lib4LiE4Li44LiTCivguIjguLLguJvguJjguKMKK+C4iOC4suC4m+C5gOC4p+C4lwor4LiI4Liy4LihCivguIjguLLguKHguIjguLjguKPguLUKK+C4iOC4suC4oeC4owor4LiI4Liy4Lih4Lij4Li1CivguIjguLLguKHguLXguIHguKMKK+C4iOC5iOC4suC4ogor4LiI4Liy4LijCivguIjguYjguLLguKPguIcKK+C4iOC4suC4o+C4p+C4suC4gQor4LiI4Liy4Lij4Liw4LmE4LiZCivguIjguLLguKPguLDguJrguLUKK+C4iOC4suC4o+C4tOC4gQor4LiI4Liy4Lij4Li1CivguIjguLLguKPguLXguJUKK+C4iOC4suC4o+C4tuC4gQor4LiI4Liy4Lij4Li4CivguIjguYnguLLguKXguLDguKvguKfguLHguYjguJkKK+C4iOC4suC4pwor4LiI4LmI4Liy4LinCivguIjguYnguLLguKcKK+C4iOC5iOC4suC4q+C4p+C4seC4gQor4LiI4LizCivguIjguYnguLMKK+C4iOC4s+C4geC4p+C5iOC4sgor4LiI4Liz4LiB4Lix4LiUCivguIjguLPguIfguLLguKIKK+C4iOC5ieC4s+C4iOC4teC5iQor4LiI4Liz4LmA4LiICivguIjguLPguYDguJTguLTguKEKK+C4iOC4s+C4l+C4p+C4ogor4LiI4Liz4LiX4Lix4LiaCivguIjguLPguJfguLLguJoKK+C4iOC4s+C5gOC4l+C4tOC4lAor4LiI4Liz4LmB4LiX4LiHCivguIjguLPguJnguIcKK+C4iOC4s+C4meC4mQor4LiI4Liz4LiZ4Lij4Lij4LiI4LmMCivguIjguLPguJnguKPguKPguIjguLIKK+C4iOC4s+C4meC4p+C4mQor4LiI4Liz4LiZ4Lit4LiHCivguIjguLPguJnguLHguJoKK+C4iOC4s+C4meC4seC4pQor4LiI4Liz4LiZ4LizCivguIjguLPguYDguJnguLXguKLguJkKK+C4iOC4s+C5gOC4meC4teC4ouC4oQor4LiI4Liz4LmA4LiZ4Li14Lii4LijCivguIjguLPguYHguJnguIEKK+C4iOC4s+C5guC4meC4l+C4ouC5jAor4LiI4Liz4Lia4LmI4LihCivguIjguYnguLPguJrguYrguLAKK+C4iOC4s+C4muC4seC4hwor4LiI4Liz4Lia4Lix4LiaCivguIjguLPguYDguJrguKgKK+C4iOC5ieC4s+C5gOC4muC5ieC4sgor4LiI4Liz4LmB4LiaCivguIjguLPguJvguLIKK+C4iOC4s+C4m+C4suC4lOC4sAor4LiI4Liz4Lib4Li1CivguIjguLPguJvguLnguJkKK+C4iOC4s+C4nuC4p+C4gQor4LiI4Liz4LmA4Lie4Liy4LiwCivguIjguLPguYHguJ7guKPguIEKK+C4iOC5ieC4s+C4oeC5iOC4swor4LiI4Liz4Lij4LiUCivguIjguLPguKPguLHguKoKK+C4iOC4s+C4o+C4suC4jQor4LiI4Liz4Lij4Liy4LiiCivguIjguLPguKPguLnguI0KK+C4iOC4s+C5gOC4o+C4tOC4jQor4LiI4Liz4LmA4Lij4Li14Lii4LiHCivguIjguLPguKXguK3guIcKK+C4iOC4s+C4peC4suC4ogor4LiI4Liz4LmA4Lil4Liy4LiwCivguIjguLPguYDguKXguLLguLDguJXguLIKK+C4iOC4s+C5geC4peC4hwor4LiI4Liz4LmB4Lil4LmI4LiZCivguIjguLPguKvguJnguLHguJoKK+C4iOC5i+C4s+C4q+C4meC4seC4mgor4LiI4Liz4Lir4LiZ4LmI4Liy4LiiCivguIjguLPguKvguKPguLAKK+C4iOC4s+C4q+C4peC5iOC4rQor4LiI4Liz4Lir4Lil4Lit4LiBCivguIjguLPguKvguKXguLHguIEKK+C4iOC4s+C4q+C4seC4mQor4LiI4Liz4Lir4Liy4LiiCivguIjguLPguKvguLjguJQKK+C4iOC4s+C5gOC4q+C4teC4ouC4hwor4LiI4Liz4Lit4Lin4LiUCivguIjguLPguK3guLfguYjguJkKK+C4iOC4tAor4LiI4Li04LiBCivguIjguLTguYrguIHguYLguIHguYsKK+C4iOC4tOC5iOC4hwor4LiI4Li04LmJ4LiH4LiI4LiBCivguIjguLTguIfguIjguYnguK0KK+C4iOC4tOC5ieC4h+C4iOC4reC4gQor4LiI4Li04LiH4LiI4Lix4LiHCivguIjguLTguYnguIfguIjguLHguIcKK+C4iOC4tOC4h+C5guC4iOC5iQor4LiI4Li04LmJ4LiH4Lir4Lij4Li14LiUCivguIjguLTguYnguIfguKvguKPguLXguJTguJzguLUKK+C4iOC4tOC4h+C4q+C4seC4mQor4LiI4Li04LiH4Lir4Li44LiZCivguIjguLTguYnguIfguYDguKvguKXguJkKK+C4iOC4tOC4lQor4LiI4Li04LiV4LiB4Liy4LiY4Liy4LiZCivguIjguLTguJXguIHguLbguYjguIfguKrguLPguJnguLbguIEKK+C4iOC4tOC4leC5g+C4iAor4LiI4Li04LiV4LiV4LmMCivguIjguLTguJXguJXguLLguJnguLjguJvguLHguKrguKrguJnguLIKK+C4iOC4tOC4leC4meC4suC4lgor4LiI4Li04LiV4LiZ4Li04Lii4LihCivguIjguLTguJXguJrguLPguJrguLHguJQKK+C4iOC4tOC4leC5geC4nuC4l+C4ouC5jAor4LiI4Li04LiV4Lig4Liy4LieCivguIjguLTguJXguKDguLkKK+C4iOC4tOC4leC4owor4LiI4Li04LiV4Lij4LiI4Li44LilCivguIjguLTguJXguKPguKXguJTguLIKK+C4iOC4tOC4leC4o+C4sgor4LiI4Li04LiV4Lij4Liy4Lij4LiI4Li04LiqCivguIjguLTguJXguYTguKPguYnguKrguLPguJnguLbguIEKK+C4iOC4tOC4leC4p+C4tOC4l+C4ouC4sgor4LiI4Li04LiV4Lin4Li04Liq4Lix4LiiCivguIjguLTguJXguYDguKfguIrguKjguLLguKrguJXguKPguYwKK+C4iOC4tOC4leC4qOC4suC4quC4leC4o+C5jAor4LiI4Li04LiV4Liq4Liz4LiZ4Li24LiBCivguIjguLTguJnguYDguIjguLIKK+C4iOC4tOC4meC4lOC4sgor4LiI4Li04LiZ4LiU4Liy4Liq4LmI4Liy4Lir4Lij4Li1CivguIjguLTguJnguJTguLLguKvguJnguLIKK+C4iOC4tOC4meC4lOC4suC4q+C4o+C4sgor4LiI4Li04LiZ4LiU4Liy4Lit4Lij4Liq4LiyCivguIjguLTguJnguJXguYwKK+C4iOC4tOC4mgor4LiI4Li04LmK4Lia4LiI4LmK4Lit4LiiCivguIjguLTguJvguLLguJbguLAKK+C4iOC4tOC5iOC4oQor4LiI4Li04LmJ4LihCivguIjguLTguYvguKEKK+C4iOC4tOC5ieC4oeC4geC5ieC4reC4hwor4LiI4Li04LmJ4Lih4Lil4Li04LmJ4LihCivguIjguLTguKPguLHguJnguJTguKMKK+C4iOC4tOC4o+C4suC4ouC4uOC4qgor4LiI4Li04LmK4LinCivguIjguLTguYvguKcKK+C4iOC4tQor4LiI4Li14LmICivguIjguLXguYkKK+C4iOC4teC5iwor4LiI4Li14LmL4LiI4LmJ4LitCivguIjguLXguIjguLnguYkKK+C4iOC4teC5iuC4iOC4ueC5iQor4LiI4Li14LmB4LiI4LmK4LiaCivguIjguLXguYrguJQKK+C4iOC4teC4mQor4LiI4Li14LiZ4LmB4LiqCivguIjguLXguJoKK+C4iOC4teC5guC4mgor4LiI4Li14Lie4LijCivguIjguLXguKEKK+C4iOC4teC4p+C4owor4LiI4Li24LiHCivguIjguLbguYjguIcKK+C4iOC4tuC5ieC4hwor4LiI4Li34LiUCivguIjguLfguYnguJnguYDguIjguLfguK3guIEKK+C4iOC4uAor4LiI4Li44LiBCivguIjguLjguYrguIHguIHguKPguLnguYoKK+C4iOC4uOC4geC4iOC4tOC4gQor4LiI4Li44LiB4LiK4Li1CivguIjguLjguIHguJzguLLguKEKK+C4iOC4uOC4geC4nuC4o+C4suC4q+C4oeC4k+C5jAor4LiI4Li44LiB4LmC4Lij4Lir4Li04LiZ4Li1CivguIjguLjguYjguIcKK+C4iOC4uOC5ieC4h+C4iOC4seC4hwor4LiI4Li44LmL4LiH4LiI4Li04LmL4LiHCivguIjguLjguYvguIjguLXguYsKK+C4iOC4uOC4keC4sgor4LiI4Li44LiTCivguIjguLjguJPguJPguLXguKLguJrguJcKK+C4iOC4uOC4lAor4LiI4Li44LiV4Li0CivguIjguLjguJXguLnguJvguJvguLLguJXguI3guLLguJMKK+C4iOC4uOC4l+C4qgor4LiI4Li44LiZCivguIjguLjguYjguJkKK+C4iOC4uOC5ieC4mQor4LiI4Li44LmJ4LiZ4LiI4LmJ4Liy4LiZCivguIjguLjguJnguIjguLnguYsKK+C4iOC4uOC5ieC4meC4iOC4ueC5igor4LiI4Li44LiZ4LiX4LiB4Liy4LijCivguIjguLjguJnguKrguLUKK+C4iOC4uOC4mgor4LiI4Li44LmK4LiaCivguIjguLjguJrguIjguLTguJoKK+C4iOC4uOC5iuC4muC5geC4iOC4hwor4LiI4Li44LmI4LihCivguIjguLjguYnguKEKK+C4iOC4uOC5i+C4oeC4iOC4tOC5i+C4oQor4LiI4Li44Lih4Lie4LiPCivguIjguLjguKHguJ7guKPguKfguJQKK+C4iOC4uOC4oeC4nuC4pQor4LiI4Li44Lih4Lie4Li04LiVCivguIjguLjguKHguYLguJ7guKXguYgKK+C4iOC4uOC5iOC4ogor4LiI4Li44LmJ4LiiCivguIjguLjguKPguJMKK+C4iOC4uOC4o+C4tQor4LiI4Li44LmE4LijCivguIjguLjguKXguIjguK3guKHguYDguIHguKXguYnguLIKK+C4iOC4uOC4peC4p+C4h+C4qOC5jAor4LiI4Li44Lis4LiyCivguIjguLjguKzguLLguKPguLLguIrguKHguJnguJXguKPguLUKK+C4iOC4uQor4LiI4Li54LmICivguIjguLnguYkKK+C4iOC4ueC5iwor4LiI4Li54LiHCivguIjguLnguYnguIjguLXguYkKK+C4iOC4ueC5iuC4lAor4LiI4Li54LiaCivguIjguLnguKPguJMKK+C5gOC4iAor4LmA4LiI4LmKCivguYDguIjguYrguIEKK+C5gOC4iOC5iOC4hwor4LmA4LiI4LmK4LiHCivguYDguIjguYfguJQKK+C5gOC4iOC5h+C4lOC4leC4sOC4hOC4peC4tQor4LmA4LiI4LiU4Li14Lii4LmMCivguYDguIjguJUKK+C5gOC4iOC4leC4meC4sgor4LmA4LiI4LiV4Lie4Lix4LiH4LiE4Li1CivguYDguIjguJXguKHguLnguKXguYDguJ7guKXguLTguIcKK+C5gOC4iOC4leC4quC4tOC4gQor4LmA4LiI4LiV4Li04LiiCivguYDguIjguYLguJXguJvguKPguLTguKLguI3guLLguJMKK+C5gOC4iOC5guC4leC4p+C4tOC4oeC4uOC4leC4tAor4LmA4LiI4LiZCivguYDguIjguYfguJoKK+C5gOC4iOC4o+C4iOC4sgor4LmA4LiI4Lij4Li04LiNCivguYDguIjguKPguLTguJQKK+C5gOC4iOC4o+C4teC4ouC4hwor4LmA4LiI4Lil4Li14Lii4LiHCivguYDguIjguKfguYfguJQKK+C5gOC4iOC4qeC4juC4sgor4LmA4LiI4LmK4Liq4Lix4LinCivguYDguIjguK0KK+C5gOC4iOC5iOC4rQor4LmA4LiI4LmL4LitCivguYDguIjguYvguK3guYDguIjguYrguK3guLAKK+C5gOC4iOC4reC4o+C5jOC5gOC4oeC5gOC4meC4teC4ouC4oQor4LmA4LiI4Lit4LiwCivguYDguIjguLIKK+C5gOC4iOC5iOC4sgor4LmA4LiI4LmJ4LiyCivguYDguIjguYrguLIKK+C5gOC4iOC5ieC4suC4nuC4o+C4sOC4ouC4sgor4LmA4LiI4LmJ4Liy4Lif4LmJ4Liy4Lir4LiN4Li04LiH4Liq4Li04Lij4Li04LiZ4LiY4LijCivguYDguIjguLLguLAKK+C5gOC4iOC4tOC5iOC4hwor4LmA4LiI4Li04LiUCivguYDguIjguLTguYjguJkKK+C5gOC4iOC4tOC4oQor4LmA4LiI4Li14LmK4Lii4LiBCivguYDguIjguLXguKLguIcKK+C5gOC4iOC4teC4ouC4lAor4LmA4LiI4Li14Lii4LiZCivguYDguIjguLXguYvguKLguJkKK+C5gOC4iOC4teC5iuC4ouC4mgor4LmA4LiI4Li14Lii4LihCivguYDguIjguLXguYvguKLguKHguYDguIjguLXguYnguKLguKEKK+C5gOC4iOC4teC4ouC4owor4LmA4LiI4Li14Lii4Lij4Liw4LmE4LiZCivguYDguIjguLXguKLguKPguLDguJrguLLguJQKK+C5gOC4iOC4teC4ouC4pwor4LmA4LiI4Li14LmK4Lii4Lin4LiI4LmK4Liy4LinCivguYDguIjguLfguK0KK+C5gOC4iOC4t+C5iOC4reC4mQor4LmA4LiI4Li34LmJ4Lit4LiiCivguYDguIjguLfguK3guKrguKEKK+C5geC4iAor4LmB4LiI4LmJCivguYHguIjguYsKK+C5geC4iOC4gQor4LmB4LiI4LiHCivguYHguIjguYnguIcKK+C5geC4iOC4h+C4peC4reC4mQor4LmB4LiI4LmK4LiUCivguYHguIjguJTguYHguIjguYkKK+C5geC4iOC5iuC4lOC5geC4iOC5iwor4LmB4LiI4LiV4LijCivguYHguIjguYnguJkKK+C5geC4iOC4mgor4LmB4LiI4LmI4LihCivguYHguIjguYjguKHguIjguLHguJnguJfguKPguYwKK+C5geC4iOC4owor4LmB4LiI4Lij4LiBCivguYHguIjguKPguIcKK+C5geC4iOC4pwor4LmB4LiI4LmJ4LinCivguYHguIjguYvguKcKK+C5geC4iOC5ieC4p+C5hgor4LmB4LiI4LiwCivguYLguIjguIEKK+C5guC4iOC5iuC4gQor4LmC4LiI4LiHCivguYLguIjguIfguIHguKPguLDguYDguJrguJnguJXguLXguYDguKvguKXguYfguIEKK+C5guC4iOC5iOC4h+C4hOC4o+C4tuC5iOC4oQor4LmC4LiI4LmL4LiH4LiE4Lij4Li24LmI4LihCivguYLguIjguYjguIfguITguKPguLjguYjguKEKK+C5guC4iOC4h+C5guC4hOC4o+C5iOC4hwor4LmC4LiI4LmL4LiH4LmA4LiI4LmL4LiHCivguYLguIjguYjguIfguYHguIjguYnguIcKK+C5guC4iOC4lwor4LmC4LiI4LiX4LiB4LmMCivguYLguIjguJfguJnguLIKK+C5guC4iOC4l+C4ouC5jAor4LmC4LiI4LiZCivguYLguIjguKEKK+C5guC4iOC4owor4LmC4LiI4Lij4LiB4Lij4Lij4LihCivguYLguIjguKUKK+C5guC4iOC4qQor4LmC4LiI4Lip4LiI4Lix4LiZCivguYPguIgKK+C5hOC4iAor4LmE4LiI4LmJCivguYTguIjguYnguYYKK+C5hOC4iOC4owor4LiJCivguInguIEKK+C4ieC4geC4oeC4suC4p+C4iOC4owor4LiJ4LiB4Lij4Lij4LiI4LmMCivguInguIHguLLguIgKK+C4ieC4geC4suC4iOC4ieC4geC4o+C4o+C4iOC5jAor4LiJ4LiB4Liy4Lih4Liy4Lie4LiI4LijCivguInguIfguJkKK+C4ieC4h+C4suC4ogor4LiJ4LiT4LiwCivguInguJfguKfguLLguKMKK+C4ieC4l+C4sAor4LiJ4LiX4Liy4LiZ4Lio4Liy4Lil4LiyCivguInguJfguLbguIcKK+C4ieC4meC4p+C4mQor4LiJ4LiZ4Lix4LiHCivguInguJnguLLguIEKK+C4ieC4meC4swor4LiJ4Lia4LiaCivguInguJrguLHguIcKK+C4ieC4muC4seC4lAor4LiJ4Lia4Lix4LiaCivguInguJrguLMKK+C4ieC4oQor4LiJ4Lih4LiaCivguInguKHguKfguIEKK+C4ieC4oeC4p+C4ogor4LiJ4Lih4LmI4Lit4LiHCivguInguKHguLHguIcKK+C4ieC4oeC4seC4mQor4LiJ4Lih4LiyCivguInguKHguLMKK+C4ieC4pQor4LiJ4Lil4Lin4LiiCivguInguKXguK3guIcKK+C4ieC4peC4reC4oQor4LiJ4Lil4Lix4LiBCivguInguKXguLHguJoKK+C4ieC4peC4suC4gQor4LiJ4Lil4Liy4LiB4Lia4Liy4LiHCivguInguKXguLLguIcKK+C4ieC4peC4suC4lAor4LiJ4Lil4Liy4LihCivguInguKXguLLguKIKK+C4ieC4peC4tOC4pwor4LiJ4Lil4Li14LiBCivguInguKXguLgKK+C4ieC4peC4uOC4geC4ieC4peC4p+C4ogor4LiJ4Lil4Li5CivguInguKfguKIKK+C4ieC4p+C4sAor4LiJ4Lin4Lix4LiU4LmA4LiJ4Lin4Li14Lii4LiZCivguInguKfguLLguIcKK+C4ieC4p+C4tQor4LiJ4Liq4LiBCivguInguKzguKDguLTguI3guYLguI0KK+C4ieC5ieC4rQor4LiJ4Lit4LiBCivguInguK3guIHguKnguLHguJXguKPguLTguKLguYwKK+C4ieC5iOC4reC4hwor4LiJ4Lit4LiU4LmGCivguInguLAKK+C4ieC4sOC4geC4sAor4LiJ4Liw4LiJ4Liy4LiUCivguInguLDguInguLLguJkKK+C4ieC4sOC4ieC5iOC4swor4LiJ4Liw4LiJ4Li14LmICivguInguLDguYDguInguLfguYjguK3guKIKK+C4ieC4sOC4leC5ieC4sgor4LiJ4Liw4LiZ4Lix4LmJ4LiZCivguInguLDguJnguLXguYkKK+C4ieC4sOC4reC5ieC4reC4mQor4LiJ4Lix4LiB4LiB4LiwCivguInguLHguJAKK+C4ieC4seC4kOC4oeC4sAor4LiJ4Lix4LiUCivguInguLHguJXguKMKK+C4ieC4seC4l+C4l+C4seC4meC4leC5jAor4LiJ4Lix4LiZCivguInguLHguJnguJfguYwKK+C4ieC4seC4meC4l+C4sAor4LiJ4Lix4LiZ4LiX4Li04LiVCivguInguLHguJnguKfguLjguJLguLQKK+C4ieC4seC4mgor4LiJ4Lix4Lia4LmGCivguInguLHguJ7guJ7guKPguKPguJPguKPguLHguIfguKrguLUKK+C4ieC4seC4ouC4ouC4sgor4LiJ4Liy4LiBCivguInguLLguIcKK+C4ieC5iOC4suC4hwor4LiJ4LmI4Liy4LiJ4Liy4LinCivguInguLLguJQKK+C4ieC4suC4lOC4ieC4suC4mQor4LiJ4Liy4LiV4LiB4Lig4Lix4LiiCivguInguLLguJfguJnguLAKK+C4ieC4suC4mQor4LiJ4Liy4LiaCivguInguLLguJrguInguKfguKIKK+C4ieC4suC4mwor4LiJ4Liy4LiiCivguInguLLguKLguLIKK+C4ieC4suC4o+C4tOC4geC4sgor4LiJ4Liy4LinCivguInguYjguLMKK+C4ieC4s+C4ieC4sgor4LiJ4Liz4LmA4LiJ4LiHCivguInguLPguYHguInguLAKK+C4ieC4tOC5iOC4hwor4LiJ4Li04LiZCivguInguLTguJnguJfguYwKK+C4ieC4tOC4mgor4LiJ4Li04Lih4Lie4Lil4Li1CivguInguLTguKcKK+C4ieC4teC5iAor4LiJ4Li14LiBCivguInguLXguJQKK+C4ieC4uAor4LiJ4Li44LiBCivguInguLjguJQKK+C4ieC4uOC4mQor4LiJ4Li44LibCivguInguLjguKIKK+C4ieC4uOC4ouC4ieC4suC4ogor4LiJ4Li44Lij4Li04LiB4LiyCivguInguLnguYgKK+C4ieC4ueC5iOC4ieC4teC5iAor4LiJ4Li54LiUCivguInguLnguJTguInguLLguJQKK+C5gOC4iQor4LmA4LiJ4LiBCivguYDguInguYLguIEKK+C5gOC4ieC5iOC4hwor4LmA4LiJ4LiUCivguYDguInguJcKK+C5gOC4ieC4meC4teC4ouC4mQor4LmA4LiJ4Lie4Liy4LiwCivguYDguInguKIKK+C5gOC4ieC4peC4ogor4LmA4LiJ4Lil4LinCivguYDguInguKXguLIKK+C5gOC4ieC4peC4tOC4oQor4LmA4LiJ4Lil4Li14LmI4LiiCivguYDguInguKXguLXguKLguIcKK+C5gOC4ieC4peC4teC5iOC4ouC4hwor4LmA4LiJ4Lil4Li14Lii4LiaCivguYDguInguKXguLXguKLguKcKK+C5gOC4ieC4p+C4teC4ouC4hwor4LmA4LiJ4Lin4Li14Lii4LiZCivguYDguInguK3guLAKK+C5gOC4ieC4sgor4LmA4LiJ4Liy4LiB4LmK4Lin4LiiCivguYDguInguLLguYLguInguJQKK+C5gOC4ieC4suC4ruC4t+C5ieC4rQor4LmA4LiJ4Liy4LiwCivguYDguInguLTguJQKK+C5gOC4ieC4tOC4mgor4LmA4LiJ4Li04Lia4LmGCivguYDguInguLXguKLguIcKK+C5gOC4ieC4teC4ouC4h+C4nuC4o+C5ieC4suC4lOC4swor4LmA4LiJ4Li14Lii4LiH4Lie4Lij4LmJ4Liy4LiZ4Liy4LiH4LmB4LitCivguYDguInguLXguKLguIfguJ7guKPguYnguLLguKHguK3guI0KK+C5gOC4ieC4teC4ouC4lAor4LmA4LiJ4Li14Lii4LiaCivguYDguInguLXguYjguKLguKcKK+C5gOC4ieC4t+C4reC4mQor4LmA4LiJ4Li34LmI4Lit4LiiCivguYHguIkKK+C5geC4ieC5iAor4LmB4LiJ4LiBCivguYHguInguIHguYYKK+C5geC4ieC4hwor4LmB4LiJ4LmI4LiHCivguYHguInguKXguJoKK+C5geC4ieC4peC5ieC4oQor4LmB4LiJ4Lil4LmJ4Lih4LmB4LiK4LmI4Lih4LiK4LmJ4Lit4LiiCivguYHguInguKXguLAKK+C5geC4ieC4pwor4LmB4LiJ4LiwCivguYLguIkKK+C5guC4ieC5iAor4LmC4LiJ4LmA4LiBCivguYLguInguYjguIfguInguYjguLLguIcKK+C5guC4ieC4h+C5gOC4ieC4hwor4LmC4LiJ4LiUCivguYLguInguJnguJQKK+C5guC4ieC4mgor4LmC4LiJ4LmA4Lia4LmKCivguYLguInguKEKK+C5guC4ieC4oeC4h+C4suC4oQor4LmC4LiJ4Lil4LiBCivguYTguInguJkKK+C5hOC4ieC5hOC4pQor4LiKCivguIrguIEKK+C4iuC4geC4sgor4LiK4LiE4LijCivguIrguITguLHguJUKK+C4iuC4hOC4seC4lwor4LiK4LiE4Lix4LiZCivguIrguIcKK+C4iuC4h+C4hOC4sgor4LiK4LiH4LmC4LiECivguIrguIfguIbguYwKK+C4iuC4h+C4huC4sgor4LiK4LiO4LiyCivguIrguI7guLTguKUKK+C4iuC4lAor4LiK4LiX4Li24LiHCivguIrguJkKK+C4iuC4meC4gQor4LiK4LiZ4LiB4LiB4Lij4Lij4LihCivguIrguJnguJnguLUKK+C4iuC4meC4muC4lwor4LiK4LiZ4Lih4LmMCivguIrguJnguKfguJkKK+C4iuC4meC4sAor4LiK4LiZ4Lix4LiBCivguIrguJnguLIKK+C4iuC4meC4suC4hwor4LiK4LiZ4Li0CivguIrguJnguLTguIEKK+C4iuC4meC4tOC4geC4sgor4LiK4LiZ4Li04LiUCivguIrguJnguLTguJTguLIKK+C4iuC4meC4tOC4qAor4LiK4LmA4LiZ4LiV4LiV4Li1CivguIrguJrguLIKK+C4iuC4m+C4mQor4LiK4Lib4LmC4Lii4LiECivguIrguKEKK+C4iuC4oeC4iuC4p+C4mQor4LiK4Lih4LiU4LiK4Lih4LmJ4Lit4LiiCivguIrguKHguJnguLLguJQKK+C4iuC4oeC4mgor4LiK4Lih4Lie4Li5CivguIrguKHguJ7guLnguYgKK+C4iuC4oeC4nuC4ueC4nuC4suC4lOC4muC5iOC4sgor4LiK4Lih4Lij4LihCivguIrguKHguYDguKXguLLguLAKK+C4iuC4oeC4quC4p+C4meC4quC4p+C4o+C4o+C4hOC5jAor4LiK4Lih4LmJ4Lit4LiiCivguIrguKHguLHguJkKK+C4iuC4oeC4sgor4LiK4Lih4LmJ4Liy4LiiCivguIrguYTguKEKK+C4iuC4ogor4LiK4Lii4Lix4Lih4Lia4LiU4Li1CivguIrguKLguLIKK+C4iuC4ouC4uOC4leC4tAor4LiK4LmC4LiiCivguIrguKMKK+C4iuC4o+C4leC4sgor4LiK4Lij4LiX4Li24LiHCivguIrguKPguYLguKHguKUKK+C4iuC4o+C5hOC4oQor4LiK4Lij4Lij4Liy4LiHCivguIrguKPguKPguLTguJkKK+C4iuC4o+C5geC4o+C4hwor4LiK4Lij4LmB4Lij4LmI4LiHCivguIrguKPguYDguKXguLfguK3guJQKK+C4iuC4o+C5guC4peC4hwor4LiK4Lij4Lit4LiB4LiK4Lij4Lix4LiHCivguIrguKPguK3guK3guJoKK+C4iuC4o+C4reC4seC4lAor4LiK4Lij4Lit4LmI4LizCivguIrguKPguK3guLfguYnguK0KK+C4iuC4o+C4reC4uOC5iOC4oQor4LiK4Lij4LiwCivguIrguKPguLDguIfguKEKK+C4iuC4o+C4sOC4h+C5iOC4reC4mQor4LiK4Lij4Liw4LiH4LizCivguIrguKPguLDguJTguLHguJQKK+C4iuC4o+C4sOC4lOC4t+C5iOC4mQor4LiK4Lij4Liw4LmA4LiU4Li14Lii4LiUCivguIrguKPguLDguJrguK3guJoKK+C4iuC4o+C4sOC4muC4suC4mgor4LiK4Lij4Liw4Lih4LiUCivguIrguKPguLDguKHguLHguKcKK+C4iuC4o+C4sOC4oeC4t+C5iOC4mQor4LiK4Lij4Liw4Lih4Li44LiB4LiK4Lij4Liw4Lih4Lit4LihCivguIrguKPguLDguKHguLjguYjguJkKK+C4iuC4o+C4sOC5gOC4oeC4teC4ouC4hwor4LiK4Lij4Liw4LmA4Lih4Li14Lii4LiZCivguIrguKPguLDguKXguK0KK+C4iuC4o+C4sOC4peC4reC4hwor4LiK4Lij4Liw4Lil4LmI4Lit4LiHCivguIrguKPguLDguKXguLHguYjguIcKK+C4iuC4o+C4sOC4peC4seC4lAor4LiK4Lij4Liw4Lil4LmJ4LizCivguIrguKPguLDguKXguLgKK+C4iuC4o+C4sOC5geC4peC4hwor4LiK4Lij4Liw4Lit4Lix4LiaCivguIrguKPguLDguK3guLLguJoKK+C4iuC4o+C4sOC5gOC4reC4oQor4LiK4Lij4Lix4LiUCivguIrguKPguLHguKcKK+C4iuC4o+C4sgor4LiK4Lij4Liy4LiB4Liy4LiB4Li1CivguIrguKPguLLguJoKK+C4iuC4o+C4suC4muC4iuC4o+C4seC4mgor4LiK4Lij4Liy4Lii4Li4CivguIrguKPguLTguJkKK+C4iuC4o+C4uOC4gQor4LiK4Lij4Li54LiaCivguIrguKUKK+C4iuC4peC4tQor4LiK4Lil4Li54LiB4LiyCivguIrguYDguKUKK+C4iuC5guC4peC4hwor4LiK4LmC4Lil4LihCivguIrguYjguKfguIcKK+C4iuC5iOC4p+C4h+C4l+C4o+C4seC4nuC4ouC5jAor4LiK4LmI4Lin4LiH4Liq4Li04LiX4LiY4Li04LmMCivguIrguKfguJQKK+C4iuC4p+C4mQor4LiK4Lin4LiiCivguIrguYjguKfguKIKK+C4iuC4p+C4owor4LiK4Lin4Lil4Li04LiVCivguIrguKfguLHguIEKK+C4iuC4p+C4sgor4LiK4Lin4Liy4LilCivguIrguKfguLLguKXguLIKK+C4iuC5geC4p+C4hwor4LiK4LmI4LitCivguIrguK3guIEKK+C4iuC5h+C4reC4gQor4LiK4LmH4Lit4LiB4LiB4Liy4Lij4Li1CivguIrguYfguK3guIHguYLguIHguYDguKXguJUKK+C4iuC5h+C4reC4geC5guC4geC5geC4peC4lQor4LiK4Lit4LiHCivguIrguYjguK3guIcKK+C4iuC5ieC4reC4hwor4LiK4LmJ4Lit4LiH4LiZ4Liy4LiHCivguIrguYnguK3guIfguJnguLLguIfguITguKXguLXguYgKK+C4iuC5ieC4reC4h+C5geC4oeC4pwor4LiK4Lit4LiZCivguIrguYjguK3guJkKK+C4iuC5ieC4reC4mQor4LiK4LmJ4Lit4LiZ4LiZ4Liy4LiHCivguIrguK3guJoKK+C4iuC4reC4oQor4LiK4LmI4Lit4LiiCivguIrguYnguK3guKIKK+C4iuC5ieC4reC4ouC4iuC5iOC4suC4h+C4o+C4swor4LiK4LmJ4Lit4Lii4LiZ4Liy4LiH4Lij4LizCivguIrguK3guKXguYzguIEKK+C4iuC4reC5iOC4swor4LiK4Lit4Li34LmJ4LitCivguIrguK3guLjguYjguKEKK+C4iuC4sAor4LiK4Liw4LiE4Lij4Liy4LihCivguIrguLDguIfguK3guIEKK+C4iuC4sOC4h+C5iOC4reC4mQor4LiK4Liw4LiH4Lix4LiBCivguIrguLDguIfguLHguJQKK+C4iuC4sOC4h+C4suC4mgor4LiK4Liw4LiH4LmJ4LizCivguIrguLDguIfguLjguYnguKEKK+C4iuC4sOC5gOC4h+C5ieC4rQor4LiK4Liw4LmA4LiH4Li34LmJ4Lit4LihCivguIrguLDguYHguIfguYkKK+C4iuC4sOC5guC4h+C4gQor4LiK4Liw4LiJ4LmI4LiyCivguIrguLDguIrguYjguK3guIcKK+C4iuC4sOC4iuC5ieC4sgor4LiK4Liw4LiK4Li04LiUCivguIrguLDguJTguLXguIrguLDguKPguYnguLLguKIKK+C4iuC4sOC5guC4lAor4LiK4Liw4LiV4LiyCivguIrguLDguJXguYnguLIKK+C4iuC4sOC4meC4tQor4LiK4Liw4LiZ4Li44LiHCivguIrguLDguYDguJnguLLguLAKK+C4iuC4sOC4nuC4peC4uQor4LiK4Liw4LmA4Lie4Lil4Li04LiHCivguIrguLDguKHguJQKK+C4iuC4sOC4oeC4lOC4leC5ieC4mQor4LiK4Liw4Lih4LiaCivguIrguLDguKHguKfguIcKK+C4iuC4sOC4oeC4seC4hwor4LiK4Liw4Lih4Lix4LiUCivguIrguLDguYHguKHguYgKK+C4iuC4sOC4o+C4reC4ogor4LiK4Liw4Lil4LitCivguIrguLDguKXguK3guKEKK+C4iuC4sOC4peC4sOC4geC4sgor4LiK4Liw4Lil4LmI4LiyCivguIrguLDguKXguLTguJkKK+C4iuC4sOC4peC4ueC4lAor4LiK4Liw4LmA4Lil4LiHCivguIrguLDguYDguKXguKIKK+C4iuC4sOC5geC4peC5h+C4gQor4LiK4Liw4LmB4Lil4LiHCivguIrguLDguKfguLHguIcKK+C4iuC4sOC4p+C4suC4gQor4LiK4Liw4Lin4Liy4LiUCivguIrguLDguKfguLjguYnguIcKK+C4iuC4sOC5gOC4p+C4tOC4geC4iuC4sOC4p+C4suC4gQor4LiK4Liw4LmB4Lin4LiHCivguIrguLDguK3guKEKK+C4iuC4sOC4reC5ieC4reC4mQor4LiK4Liw4LmA4Lit4LihCivguIrguLDguYLguK3guJkKK+C4iuC4seC4gQor4LiK4Lix4LiB4LiE4Lij4Liy4LihCivguIrguLHguIHguIrguYnguLIKK+C4iuC4seC4geC4q+C4meC5ieC4sgor4LiK4Lix4LiHCivguIrguLHguYjguIcKK+C4iuC4seC4h+C4hOC4sgor4LiK4Lix4LiH4LmA4LiG4Lii4Lii4LiB4LiwCivguIrguLHguIrguKfguLLguKUKK+C4iuC4seC4jwor4LiK4Lix4LiUCivguIrguLHguJTguIrguYnguLIKK+C4iuC4seC4mQor4LiK4Lix4LmJ4LiZCivguIrguLHguJnguIHguLLguJQKK+C4iuC4seC4meC4iuC4tQor4LiK4Lix4LiZ4LiV4Liy4LiG4LijCivguIrguLHguJnguJXguLgKK+C4iuC4seC4meC4meC4sOC4leC4uAor4LiK4Lix4LiZ4LiZ4Li4CivguIrguLHguJnguJnguLjguIHguLAKK+C4iuC4seC4meC5guC4o+C4hwor4LiK4Lix4LiZ4Lip4LiyCivguIrguLHguJnguKrguLnguJXguKMKK+C4iuC4seC4m+C4mQor4LiK4Lix4LieCivguIrguLHguKHguJ7guLnguJnguJcKK+C4iuC4seC4ogor4LiK4Lix4Lii4LiB4Lij4Liw4Liq4LieCivguIrguLHguKLguJrguLLguJkKK+C4iuC4seC4ouC4nuC4pOC4geC4qeC5jAor4LiK4Lix4Lii4Lig4Li54Lih4Li0CivguIrguLHguKLguYDguKDguKPguLUKK+C4iuC4seC4ouC4oeC4h+C4hOC4pQor4LiK4Lix4Lii4Lih4LiH4LiE4Lil4LiE4Liy4LiW4LiyCivguIrguLHguKXguKXguLjguIHguLIKK+C4iuC4seC5iOC4pwor4LiK4Lix4LmJ4LinCivguIrguLHguKfguIrguKEKK+C4iuC4seC5iOC4p+C5geC4leC5iOC4p+C5iOC4sgor4LiK4LiyCivguIrguYnguLIKK+C4iuC4suC4hOC4owor4LiK4Liy4LiE4Lij4Li04LiVCivguIrguLLguITguKPguLTguKLguLLguJnguLjguYLguKLguIQKK+C4iuC5iOC4suC4hwor4LiK4LmJ4Liy4LiHCivguIrguYnguLLguIfguIHguKPguLAKK+C4iuC5iOC4suC4h+C4geC4o+C4sOC5hOC4owor4LiK4LmJ4Liy4LiH4LiU4LizCivguIrguYnguLLguIfguYHguJTguIcKK+C4iuC5iOC4suC4h+C4l+C4reC4hwor4LiK4LmI4Liy4LiH4LiZ4LmJ4Liy4LinCivguIrguYnguLLguIfguYDguJzguLfguK3guIEKK+C4iuC5iOC4suC4h+C5gOC4q+C4peC5h+C4gQor4LiK4LmJ4Liy4LiK4LmI4Lit4LiZCivguIrguLLguI0KK+C4iuC4suC4lAor4LiK4Liy4LiU4LiBCivguIrguLLguJXguJrguLjguKnguKLguYwKK+C4iuC4suC4leC4o+C4tQor4LiK4Liy4LiV4LiwCivguIrguLLguJXguLIKK+C4iuC4suC4leC4tAor4LiK4Liy4LiV4Li04LiY4Lij4Lij4LihCivguIrguLLguJXguLTguJ7guLHguJnguJjguLjguYwKK+C4iuC4suC4leC4tOC4nuC4seC4meC4mOC4uOC5jOC4p+C4o+C4o+C4k+C4meC4sgor4LiK4Liy4LiV4Li04Lie4Lix4LiZ4LiY4Li44LmM4Lin4Li04LiX4Lii4LiyCivguIrguLLguJXguLTguKDguLnguKHguLQKK+C4iuC4suC4leC4tOC4oeC4suC4peC4sgor4LiK4Liy4LiV4Li04Lij4LiqCivguIrguLLguJXguLTguKrguLHguKHguJrguLHguJnguJnguYwKK+C4iuC4suC4mQor4LiK4Liy4LiZ4Lin4Liy4LiX4Li04LiBCivguIrguLLguJnguLgKK+C4iuC4suC4meC4uOC4geC4sAor4LiK4LmJ4Liy4Lib4Li14LmICivguIrguYnguLLguJvguLXguYjguYTguKvguJkKK+C4iuC5ieC4suC5geC4m+C5ieC4mQor4LiK4LmJ4Liy4Lie4Lil4Li5CivguIrguLLguKEKK+C4iuC4suC4oeC4nuC4ueC4meC4lwor4LiK4Liy4Lih4Liy4LiU4LijCivguIrguLLguKHguLLguJTguLIKK+C4iuC4suC4oeC4suC4leC4uAor4LiK4Liy4LiiCivguIrguLLguKLguJjguIcKK+C4iuC4suC4ouC4nOC5ieC4suC4quC4teC4lOC4sgor4LiK4Liy4Lii4LiyCivguIrguLLguKMKK+C4iuC4suC4o+C4tQor4LiK4Liy4LilCivguIrguLLguKXguLIKK+C4iuC4suC4peC4tOC4meC4tQor4LiK4LmJ4Liy4LmA4Lil4Li34Lit4LiUCivguIrguLLguKcKK+C4iuC4suC4p+C4tQor4LiK4Liy4Lir4LmMCivguIrguYnguLLguKvguKHguK3guIcKK+C4iuC4suC4q+C4o+C4seC4meC4meC4suC4p+C4tQor4LiK4LizCivguIrguYjguLMKK+C4iuC5ieC4swor4LiK4Liz4LiH4Lix4LiUCivguIrguLPguIfguLLguKIKK+C4iuC4s+C4h+C4t+C4rQor4LiK4LmI4Liz4LiK4Lit4LiHCivguIrguYjguLPguIrguYjguLIKK+C4iuC4s+C4meC4mQor4LiK4Liz4LiZ4Lij4LijCivguIrguLPguJnguLAKK+C4iuC4s+C4meC4seC4jQor4LiK4Liz4LiZ4Lix4LiZCivguIrguLPguJnguLLguI0KK+C4iuC4s+C4meC4tAor4LiK4Liz4LmA4LiZ4Li14Lii4LiZCivguIrguLPguYDguJnguLXguKLguKMKK+C4iuC4s+C4oeC4sOC4meC4suC4lAor4LiK4Liz4Lih4Liw4LmA4Lil4Li14Lii4LiHCivguIrguLPguKPguYjguKfguKIKK+C4iuC4s+C4o+C4sAor4LiK4LmJ4Liz4Lij4Lix4LmI4LinCivguIrguLPguKPguLjguJQKK+C4iuC4s+C5gOC4o+C4sgor4LiK4Liz4LmA4Lij4Liy4LiwCivguIrguLPguKXguLIKK+C4iuC4s+C5gOC4peC4t+C4reC4hwor4LiK4Liz4LmB4Lir4Lil4LiwCivguIrguLQKK+C4iuC4tOC4hwor4LiK4Li04LmI4LiHCivguIrguLTguIfguIrguLHguIcKK+C4iuC4tOC4h+C4iuC4seC4mQor4LiK4Li04LiH4LiK4LmJ4LiyCivguIrguLTguIfguIrguYnguLLguIrguLLguKXguLUKK+C4iuC4tOC4h+C4iuC4teC5iAor4LiK4Li04LiH4Lie4Lil4LiaCivguIrguLTguIfguK7guLfguYnguK0KK+C4iuC4tOC4iuC4sAor4LiK4Li04LiK4Li0CivguIrguLTguJPguJPguLAKK+C4iuC4tOC4lAor4LiK4Li04LmA4LiU4LiZ4LiX4Lij4Li14Lii4LmMCivguIrguLTguJUKK+C4iuC4tOC4mQor4LiK4Li04LmI4LiZCivguIrguLTguYnguJkKK+C4iuC4tOC4meC5guC4lQor4LiK4Li04LiZ4Lia4Li44LiV4LijCivguIrguLTguJnguKrguLLguKrguJnguYwKK+C4iuC4tOC4oQor4LiK4Li04Lih4LmB4Lib4LiZ4LiL4Li1CivguIrguLTguKLguLIKK+C4iuC4tOC4o+C4k+C4sAor4LiK4Li04Lij4LiwCivguIrguLTguKfguKvguLIKK+C4iuC4tOC4quC4sgor4LiK4Li1CivguIrguLXguYgKK+C4iuC4teC5iQor4LiK4Li14LieCivguIrguLXguJ/guK3guIcKK+C4iuC4teC4o+C4kwor4LiK4Li14Lij4LiwCivguIrguLXguKfguLAKK+C4iuC4teC4reC4sOC4q+C5jAor4LiK4Li34LiUCivguIrguLfguYjguJkKK+C4iuC4t+C5ieC4mQor4LiK4Li34LmI4LitCivguIrguLfguYnguK0KK+C4iuC4uAor4LiK4Li44LiBCivguIrguLjguIHguIrguLUKK+C4iuC4uOC5iOC4hwor4LiK4Li44LmJ4LiHCivguIrguLjguJQKK+C4iuC4uOC4leC4tAor4LiK4Li44LiZCivguIrguLjguJoKK+C4iuC4uOC4muC4iuC4uQor4LiK4Li44LihCivguIrguLjguYjguKEKK+C4iuC4uOC4oeC4meC4uOC4oQor4LiK4Li44Lih4Lie4LijCivguIrguLjguKHguJ7guLIKK+C4iuC4uOC4oeC5gOC4nuC5h+C4lAor4LiK4Li44Lih4LmB4Lie4Lij4LiBCivguIrguLjguKHguKPguLjguKEKK+C4iuC4uOC4oeC4quC4suC4ogor4LiK4Li44Lih4LmB4Liq4LiHCivguIrguLjguKHguYDguKvguYfguJQKK+C4iuC4uOC5iOC4ogor4LiK4Li44LmI4Lii4LmGCivguIrguLjguKXguKHguLjguJkKK+C4iuC4uOC4peC4tQor4LiK4Li44Lip4LiT4LiwCivguIrguLkKK+C4iuC4ueC5iQor4LmA4LiK4LmH4LiECivguYDguIrguYnguIcKK+C5gOC4iuC4h+C5gOC4peC4hwor4LmA4LiK4LmJ4LiH4Lin4Lix4LiaCivguYDguIrguYfguJQKK+C5gOC4iuC5h+C4lOC4q+C4meC5ieC4sgor4LmA4LiK4LiZCivguYDguIrguYjguJkKK+C5gOC4iuC4ogor4LmA4LiK4Lij4LiyCivguYDguIrguKPguLLguLAKK+C5gOC4iuC4o+C4tOC4lAor4LmA4LiK4Lil4LiHCivguYDguIrguKXguKIKK+C5gOC4iuC4peC5geC4peC5h+C4gQor4LmA4LiK4Lil4Li14Lii4LiHCivguYDguIrguKfguIcKK+C5gOC4iuC4qeC4kOC4sgor4LmA4LiK4LitCivguYDguIrguYjguLIKK+C5gOC4iuC5ieC4sgor4LmA4LiK4Liy4Lin4LmMCivguYDguIrguLLguKfguJnguYwKK+C5gOC4iuC4tOC4hwor4LmA4LiK4Li04LiH4LiB4LilCivguYDguIrguLTguIfguIvguYnguK3guJkKK+C5gOC4iuC4tOC4h+C5gOC4lOC4teC4ouC4pwor4LmA4LiK4Li04LiH4LmA4LiU4Li14LmI4Lii4LinCivguYDguIrguLTguIfguKHguLjguKEKK+C5gOC4iuC4tOC4h+C5gOC4p+C4teC4ouC4mQor4LmA4LiK4Li04LiH4Lit4Lij4Lij4LiWCivguYDguIrguLTguI0KK+C5gOC4iuC4tOC4lAor4LmA4LiK4Li04LmJ4LiVCivguYDguIrguLXguKIKK+C5gOC4iuC4teC5ieC4ogor4LmA4LiK4Li14Lii4LiHCivguYDguIrguLXguYjguKLguJkKK+C5gOC4iuC4teC5iOC4ouC4meC4q+C4oeC4suC4gQor4LmA4LiK4Li14Lii4LiaCivguYDguIrguLXguYjguKLguKEKK+C5gOC4iuC4teC4ouC4owor4LmA4LiK4Li14Lii4Lij4LmMCivguYDguIrguLXguKLguKPguJPguYwKK+C5gOC4iuC4teC4ouC4pwor4LmA4LiK4Li14LmI4Lii4LinCivguYDguIrguLfguYjguK0KK+C5gOC4iuC4t+C5ieC4rQor4LmA4LiK4Li34Lit4LiBCivguYDguIrguLfguYjguK3guIcKK+C5gOC4iuC4t+C5iOC4reC4h+C4iuC5ieC4sgor4LmA4LiK4Li34Lit4LiUCivguYDguIrguLfguK3guJkKK+C5gOC4iuC4t+C5iOC4reC4oQor4LmA4LiK4Li34LmI4Lit4Lin4Lix4LiZCivguYHguIoKK+C5geC4iuC5iAor4LmB4LiK4LmI4LiHCivguYHguIrguIfguKHguLIKK+C5geC4iuC4muC5iuC4p+C4ogor4LmB4LiK4LmI4LihCivguYHguIrguKHguYDguJvguI0KK+C5geC4iuC4oeC4oOC4uQor4LmB4LiK4Lij4LmMCivguYHguIrguKPguIcKK+C5geC4iuC4peC5iOC4oQor4LmB4LiK4LiwCivguYLguIrguIEKK+C5guC4iuC4geC5hgor4LmC4LiK4LiB4Li44LiZCivguYLguIrguIQKK+C5guC4iuC4h+C5guC4peC4hwor4LmC4LiK4LiU4LiBCivguYLguIrguJTguLbguIEKK+C5guC4iuC4lQor4LmC4LiK4LiV4LiBCivguYLguIrguJXguLQKK+C5guC4iuC4mQor4LmC4LiK4Lih4LmC4Lij4LihCivguYLguIrguKIKK+C5guC4iuC4ouC4h+C4geC4suC4owor4LmC4LiK4Lii4LiK4Liy4LiiCivguYLguIrguKLguJXguLTguKoKK+C5guC4iuC4o+C4oQor4LmC4LiK4Lin4LmMCivguYPguIrguYgKK+C5g+C4iuC5iQor4LmE4LiKCivguYTguIrguJnguLAKK+C5hOC4iuC4ogor4LmE4LiK4LmC4LiiCivguIsKK+C4i+C4gQor4LiL4LmI4LiBCivguIvguIfguJTguLMKK+C4i+C5iOC4h+C4ruC4t+C5ieC4rQor4LiL4LiH4LmJ4LiyCivguIvguJQKK+C4i+C4mQor4LiL4LmI4LiZCivguIvguYnguJkKK+C4i+C4mgor4LiL4LihCivguIvguKPguK3guIHguIvguKPguLHguIcKK+C4i+C4p+C4lAor4LiL4Lin4LiU4LmA4LiLCivguIvguKfguJTguJfguKPguIcKK+C4i+C4p+C4mQor4LiL4Lin4LiiCivguIvguK0KK+C4i+C4reC4gQor4LiL4Lit4LiHCivguIvguYjguK3guIcKK+C4i+C5ieC4reC4hwor4LiL4Lit4LiH4Lie4Lil4Li5CivguIvguK3guIfguYHguKHguKcKK+C4i+C5ieC4reC4h+C5geC4oeC4pwor4LiL4Lit4LmB4LiLCivguIvguYnguK3guYHguIvguYkKK+C4i+C4reC4mQor4LiL4LmI4Lit4LiZCivguIvguYnguK3guJkKK+C4i+C5iOC4reC4meC4geC4peC4tOC5iOC4mQor4LiL4LmI4Lit4LiZ4LiX4Lij4Liy4LiiCivguIvguK3guKEKK+C4i+C5iOC4reC4oQor4LiL4LmJ4Lit4LihCivguIvguK3guKHguIvguYjguK0KK+C4i+C4reC4ogor4LiL4Lit4LiqCivguIvguLDguIvguKPguYnguLLguKcKK+C4i+C4sOC4i+C5iOC4reC4hwor4LiL4Liw4LiL4Lit4LmA4LiL4Li14LiiCivguIvguLDguIvguLTguIHguIvguLDguYHguIsKK+C4i+C4sOC4i+C4tOC4mgor4LiL4Liw4LmA4LiL4Liy4LiwCivguIvguLDguYDguIvguLXguKLguJoKK+C4i+C4seC4gQor4LiL4Lix4LiB4Liq4LmJ4Liy4LinCivguIvguLHguIcKK+C4i+C4seC5ieC4hwor4LiL4Lix4LiH4LiB4Liw4LiV4Liy4LiiCivguIvguLHguIfguYHguIvguKcKK+C4i+C4seC4h+C4leC4suC4ogor4LiL4Lix4LiUCivguIvguLHguYnguJkKK+C4i+C4seC4meC4leC4suC4hOC4peC4reC4qgor4LiL4Lix4LiaCivguIvguLHguJrguIvguLXguYgKK+C4i+C4seC4oQor4LiL4Lix4Lil4Lif4LiyCivguIvguLHguKXguYLguKcKK+C4i+C4seC5ieC4pwor4LiL4Lix4Lin4Lib4LiyCivguIvguLIKK+C4i+C5iOC4sgor4LiL4Liy4LiBCivguIvguLLguIHguLjguKPguLAKK+C4i+C4suC5hOC4gQor4LiL4Liy4LiHCivguIvguYjguLLguIcKK+C4i+C4suC4lAor4LiL4Liy4LiZCivguIvguYjguLLguJkKK+C4i+C4suC4muC4i+C5iOC4suC4mQor4LiL4Liy4Lia4LiL4Li24LmJ4LiHCivguIvguYjguLLguYLguJrguLAKK+C4i+C4suC4m+C4seC5iuC4pwor4LiL4Liy4LmB4Lih4LmA4Lij4Li14Lii4LihCivguIvguYnguLLguKIKK+C4i+C4suC5guC4ouC4meC4suC4o+C4sAor4LiL4Liy4Lij4LmMCivguIvguLLguKPguLTguJnguLIKK+C4i+C4suC4peC4suC5gOC4m+C4sgor4LiL4Liy4LinCivguIvguYjguLLguKvguKPguLTguYjguKEKK+C4i+C5ieC4swor4LiL4Li0CivguIvguLTguIEKK+C4i+C4tOC4geC4i+C4teC5iQor4LiL4Li04LiB4LmB4LiL4LmH4LiBCivguIvguLTguIHguLLguKPguYwKK+C4i+C4tOC4h+C5guC4hOC4meC4sgor4LiL4Li04LmI4LiZCivguIvguLTguJnguJXguLbguYrguIcKK+C4i+C4tOC4meC4meC4suC4oeC4tOC4gQor4LiL4Li04LiZ4LmB4LiqCivguIvguLTguJoKK+C4i+C4tOC4muC5hgor4LiL4Li04LibCivguIvguLTguJ/guLTguKXguLTguKoKK+C4i+C4tOC5ieC4oQor4LiL4Li04Lil4Li04LiE4Lit4LiZCivguIvguLTguKcKK+C4i+C4tQor4LiL4Li14LmICivguIvguLXguIEKK+C4i+C4teC5ieC4i+C4reC4mQor4LiL4Li14LmJ4LiL4Lix4LmJ4LinCivguIvguLXguYDguIvguYfguIHguYTguInguYgKK+C4i+C4teC5gOC4i+C4teC4ouC4oQor4LiL4Li14LiUCivguIvguLXguJnguK3guJkKK+C4i+C4teC4m+C5iOC4suC4ogor4LiL4Li14LmA4Lih4LiZ4LiV4LmMCivguIvguLXguYDguKPguLXguKLguKEKK+C4i+C4teC4peC4teC5gOC4meC4teC4ouC4oQor4LiL4Li14Lit4Li04LmJ4LinCivguIvguLbguIEKK+C4i+C4tuC5iOC4hwor4LiL4Li24LmJ4LiHCivguIvguLbguKEKK+C4i+C4t+C5iOC4rQor4LiL4Li34LmJ4LitCivguIvguLfguYjguK3guYYKK+C4i+C4t+C5ieC4reC4q+C4meC5ieC4sgor4LiL4Li44LiBCivguIvguLjguIHguIvguJkKK+C4i+C4uOC4hwor4LiL4Li44LiZCivguIvguLjguJoKK+C4i+C4uOC4muC4i+C4tOC4mgor4LiL4Li44Lia4LiL4Li54LmICivguIvguLjguJsKK+C4i+C4uOC5iOC4oQor4LiL4Li44LmJ4LihCivguIvguLjguYnguKHguIHguKPguLDguJXguYjguLLguKIKK+C4i+C4uOC5iOC4oeC4i+C5iOC4suC4oQor4LiL4Li44Lih4LmB4LiL4LinCivguIvguLjguYjguKHguYDguKrguLXguKLguIcKK+C4i+C4uOC4ogor4LiL4Li54LmICivguIvguLnguYjguIHguLHguYnguJnguKPguLHguYnguKfguYTguIvguKHguLLguJkKK+C4i+C4ueC5guC4hOC4o+C4qgor4LiL4Li54LiUCivguIvguLnguYnguJQKK+C4i+C4ueC4lOC4i+C4suC4lAor4LiL4Li54LiaCivguYDguIsKK+C5gOC4i+C5h+C4gQor4LmA4LiL4LmB4LiE4LiZ4LiV4LmMCivguYDguIvguYfguIcKK+C5gOC4i+C5iOC4hwor4LmA4LiL4LmJ4LiHCivguYDguIvguYfguIfguYHguIvguYgKK+C5gOC4i+C4lQor4LmA4LiL4LiZCivguYDguIvguYfguJkKK+C5gOC4i+C5iOC4mQor4LmA4LiL4LiZ4LiV4Li04LiB4Lij4Lix4LihCivguYDguIvguJnguJXguLTguYDguKHguJXguKMKK+C5gOC4i+C4meC4leC4tOC4peC4tOC4leC4owor4LmA4LiL4LmI4LiZ4LmA4Lir4Lil4LmJ4LiyCivguYDguIvguJvguLHguIHguJXguLDguIHguKPguYnguK0KK+C5gOC4i+C4nwor4LmA4LiL4Lij4LiyCivguYDguIvguKPguLLguLAKK+C5gOC4i+C4o+C4uOC5iOC4oQor4LmA4LiL4Lil4LmA4LiL4Li14Lii4LiqCivguYDguIvguKXguKXguYwKK+C5gOC4i+C4peC4peC4ueC4peC4reC4ouC4lOC5jAor4LmA4LiL4Lil4Lil4Li54LmC4Lil4LiqCivguYDguIvguKXguKrguYzguYHguKHguJkKK+C5gOC4i+C5iOC4rQor4LmA4LiL4Lit4Lij4LmMCivguYDguIvguK3guKPguYzguYLguITguYDguJnguLXguKLguKEKK+C5gOC4i+C4reC4sAor4LmA4LiL4LiyCivguYDguIvguYnguLLguIvguLXguYkKK+C5gOC4i+C4suC4sAor4LmA4LiL4Li04LiHCivguYDguIvguLTguYnguIcKK+C5gOC4i+C4teC4ouC4mQor4LmA4LiL4Li14Lii4LiaCivguYDguIvguLXguKLguKHguIvguLUKK+C5gOC4i+C4teC4ouC4pwor4LmA4LiL4Li14LmI4Lii4LinCivguYDguIvguLXguYnguKLguKcKK+C5gOC4i+C4teC5iOC4ouC4p+C4geC4suC4hwor4LmA4LiL4Li34LmI4Lit4LiHCivguYHguIsKK+C5geC4i+C5iAor4LmB4LiL4LmH4LiB4LiE4Liy4Lij4Li04LiZCivguYHguIvguIHguLjguKIKK+C5geC4i+C4hwor4LmB4LiL4LiH4LmB4LiL4LinCivguYHguIvguJQKK+C5geC4i+C4lOC5hgor4LmB4LiL4LiZ4LiU4LmM4Lin4Li04LiKCivguYHguIvguJoKK+C5geC4i+C4oQor4LmB4LiL4Lii4Li04LiUCivguYHguIvguYjguKcKK+C5geC4i+C4sAor4LmC4LiLCivguYLguIvguYgKK+C5guC4i+C4gQor4LmC4LiL4LmI4LiHCivguYLguIvguIfguYLguILguJTguIcKK+C5guC4i+C5gOC4iwor4LmC4LiL4LiU4LiyCivguYLguIvguJTguLLguYHguJzguJTguYDguJzguLIKK+C5guC4i+C4lOC4suC5hOC4nwor4LmC4LiL4LmA4LiU4Li14Lii4LihCivguYLguIvguKEKK+C5guC4i+C4o+C4oQor4LmC4LiL4Lil4LiyCivguYTguIsKK+C5hOC4i+C5iQor4LmE4LiL4LmA4LiB4Li04LilCivguYTguIvguYLguITguKXguJkKK+C5hOC4i+C4meC5jAor4LmE4LiL4Lii4Liy4LmE4LiZ4LiU4LmMCivguYTguIvguKPguYkKK+C5hOC4i+C5gOC4o+C4mQor4LmE4LiL4LmC4LilCivguYTguIvguYjguKvguLnguYkKK+C4jAor4LiM4Lil4LiyCivguIzguKXguLQKK+C4jOC4qQor4LiM4Lix4Lil4Lil4LmMCivguIzguLHguKXguKXguIHguLHguJPguJDguYwKK+C4jOC4suC4mQor4LiM4Liy4LiZ4Lil4Liy4Lig4Li1CivguIzguLLguJnguLLguJfguLTguKrguLHguIfguIHguLTguYDguKXguKrguLLguJfguLTguIzguLLguJkKK+C4jOC4ueC4gQor4LmA4LiM4LitCivguYLguIzguJEKK+C4jQor4LiN4LiN4LmI4Liy4LiiCivguI3guKfguJkKK+C4jeC4seC4leC4leC4tAor4LiN4Liy4LiT4Li1CivguI3guLLguJTguLIKK+C4jeC4suC4leC4m+C4o+C4tOC4jeC4jeC4sgor4LiN4Liy4LiV4Lix4LiV4LiW4LiI4Lij4Li04Lii4LiyCivguI3guLLguJXguLQKK+C4jeC4suC4mQor4LiN4Liy4Lib4LiBCivguI3guLLguKLguJvguI/guLTguJrguLHguJXguLQKK+C4jeC4suC4ouC4m+C4j+C4tOC4m+C4seC4meC5guC4mQor4LiN4Li04LiZCivguI3guLTguJoKK+C4jeC4teC5iAor4LiN4Li14LmI4Lib4Li44LmI4LiZCivguYDguI3guKLguJjguKPguKPguKEKK+C5hOC4jeC4ouC4mOC4o+C4o+C4oQor4LiOCivguI7guITguKPguLAKK+C4juC4teC4geC4sgor4LiPCivguI/guLHguIfguIHguJrguJTguLUKK+C4j+C4seC4h+C4geC4qOC4suC4peC4sgor4LiP4Lix4LiH4LiB4LiwCivguI/guLHguIfguIHguLLguKMKK+C4j+C4seC4h+C4hOC4sAor4LiP4Lix4LiH4LiE4LiyCivguI/guLHguI/guI/guJnguLUKK+C4j+C4suC4h+C4geC4owor4LiP4Liy4LijCivguI/guLjguJPguJDguLjguIEKK+C4kAor4LiQ4LiB4Lix4LiUCivguJDguLLguIHguLnguKMKK+C4kOC4suC4mQor4LiQ4Liy4LiZ4LiwCivguJDguLLguJnguLXguKLguLAKK+C4kOC4suC4m+C4meC4sgor4LiQ4Liy4Lii4Li1CivguJDguLTguJUKK+C4kOC4tOC4leC4tAor4LiRCivguJHguLLguKvguIEKK+C4keC4suC4q+C4sAor4LiR4Li04Lih4Lig4LmMCivguJIKK+C5gOC4kuC5iOC4sgor4LiTCivguJPguKPguIfguITguYwKK+C4k+C4seC4kAor4LmA4LiT4LijCivguJQKK+C4lOC4gQor4LiU4LiHCivguJTguYnguIcKK+C4lOC4h+C4p+C4suC4ogor4LiU4LmJ4LiZCivguJTguJnguYLguJTguYgKK+C4lOC4meC4leC4o+C4tQor4LiU4LiZ4LiiCivguJTguJnguKLguLIKK+C4lOC4meC4seC4ogor4LiU4LiZ4Li4CivguJTguJnguLkKK+C4lOC4muC4seC4mQor4LiU4Lia4Lix4Liq4Lin4Li04LiZCivguJTguJrguLHguKrguKfguLTguJnguLUKK+C4lOC4muC4seC4quC4p+C4tQor4LiU4LihCivguJTguKHguYTguKMKK+C4lOC4owor4LiU4Lij4LiH4LiE4LmMCivguJTguKPguJPguLQKK+C4lOC4o+C4k+C4tQor4LiU4Lij4LiY4Liy4LiZCivguJTguKPguKPguIrguJnguLUKK+C4lOC4o+C4peC4sgor4LiU4Lij4Liy4Lif4LiV4LmMCivguJTguKPguLQKK+C4lOC4o+C4tQor4LiU4Lij4Li4CivguJTguKPguLjguJMKK+C4lOC4o+C4uOC4k+C4tQor4LiU4Lik4LiW4Li1CivguJTguKUKK+C4lOC4peC4oOC4suC4hAor4LiU4Lin4LiHCivguJTguYnguKfguIcKK+C4lOC4p+C4iAor4LiU4Lin4LiUCivguJTguYjguKfguJkKK+C4lOC5ieC4p+C4mQor4LiU4LmJ4Lin4Lih4LmA4LiU4Li14LmJ4Lii4LihCivguJTguYnguKfguKIKK+C4lOC4p+C4pQor4LiU4Lit4LiBCivguJTguK3guIHguIHguLDguJfguLfguK0KK+C4lOC4reC4geC4l+C4reC4hwor4LiU4Lit4LiB4Lif4LmJ4Lit4LiZCivguJTguK3guIHguYTguKHguYnguJfguLDguYDguKUKK+C4lOC4reC4geC4quC4o+C5ieC4reC4ogor4LiU4Lit4LiB4Lit4Liy4LinCivguJTguK3guIcKK+C4lOC5ieC4reC4hwor4LiU4LmI4Lit4LiH4LmGCivguJTguYnguK3guIfguYYKK+C4lOC4reC4h+C4ieC4suC4ogor4LiU4Lit4LiH4LiU4Li24LiHCivguJTguK3guIfguKvguLLguKIKK+C4lOC4reC4lAor4LiU4Lit4LiZCivguJTguYjguK3guJkKK+C4lOC4reC4oQor4LiU4LmJ4Lit4LihCivguJTguK3guKIKK+C4lOC5ieC4reC4ogor4LiU4Lit4Lil4Lil4Liy4Lij4LmMCivguJTguLAKK+C4lOC4sOC5guC4leC5iuC4sOC4ouC4uOC4leC4tOC4mOC4o+C4o+C4oQor4LiU4Liw4Lir4Lih4Lix4LiHCivguJTguLHguIEKK+C4lOC4seC4geC4lOC4mQor4LiU4Lix4LiB4LiU4Liy4LiZCivguJTguLHguIHguYDguJTguLXguYnguKIKK+C4lOC4seC4geC5geC4lOC5iQor4LiU4Lix4LiB4Lip4LiBCivguJTguLHguIHguKnguJMKK+C4lOC4seC4geC4qeC4k+C4tQor4LiU4Lix4LiB4Lip4Lix4LiZCivguJTguLHguIcKK+C4lOC4seC5iOC4hwor4LiU4Lix4LmJ4LiHCivguJTguLHguYnguIfguYDguJTguLTguKEKK+C4lOC4seC4iuC4meC4tQor4LiU4Lix4LiUCivguJTguLHguJTguJvguKXguLHguIEKK+C4lOC4seC4leC4iuC5jAor4LiU4Lix4LiZCivguJTguLHguYnguJkKK+C4lOC4seC4meC5gOC4q+C4tOC4oQor4LiU4Lix4LiaCivguJTguLHguKHguJ7guYwKK+C4lOC4seC5ieC4p+C5gOC4lOC4teC5ieC4ogor4LiU4Lix4Liq4LiB4LijCivguJTguLHguKrguIHguKPguLUKK+C4lOC4sgor4LiU4LmI4LiyCivguJTguLLguIEKK+C4lOC5iOC4suC4hwor4LiU4LmJ4Liy4LiHCivguJTguLLguJQKK+C4lOC4suC4lOC4leC4sOC4geC4seC5iOC4pwor4LiU4Liy4LiZCivguJTguYjguLLguJkKK+C4lOC5ieC4suC4mQor4LiU4Liy4LiaCivguJTguLLguJrguKoKK+C4lOC4suC4oQor4LiU4LmJ4Liy4LihCivguJTguYnguLLguKHguIjguLTguYnguKcKK+C4lOC4suC4oeC4nuC5jAor4LiU4Liy4Lih4LijCivguJTguLLguKIKK+C4lOC5ieC4suC4ogor4LiU4Liy4LijCivguJTguLLguKPguIEKK+C4lOC4suC4o+C4k+C4tQor4LiU4Liy4Lij4LiU4Liy4LipCivguJTguLLguKPguLIKK+C4lOC4suC4pQor4LiU4Liy4Lil4Lix4LiUCivguJTguLLguKXguLgKK+C4lOC4suC4peC4uOC4igor4LiU4Liy4LmE4Lil4Lil4Liy4Lih4LiwCivguJTguLLguKcKK+C4lOC5iOC4suC4pwor4LiU4LmJ4Liy4LinCivguJTguLLguKfguIHguKPguLDguIjguLLguKIKK+C4lOC4suC4p+C4lOC4tuC4h+C4quC5jAor4LiU4Liy4Lin4Lia4LiqCivguJTguLLguKfguYDguKPguLfguK3guIcKK+C4lOC4suC4qQor4LiU4Liy4Lir4LiH4Lix4LiZCivguJTguLLguKvguKXguLHguIcKK+C4lOC4suC4rAor4LiU4LizCivguJTguYjguLMKK+C4lOC5ieC4swor4LiU4Liz4LmG4LmB4LiU4LiH4LmGCivguJTguLPguIHguKUKK+C4lOC4s+C5gOC4geC4tOC4hwor4LiU4Liz4LmB4LiE4LiHCivguJTguLPguJTguIcKK+C4lOC4s+C4meC4suC4kwor4LiU4Liz4LiZ4Liy4LiZCivguJTguLPguJnguLkKK+C4lOC4s+C5gOC4meC4tOC4mQor4LiU4Liz4LmA4LiZ4Li14Lii4LiZCivguJTguLPguYDguJnguLXguKLguKMKK+C4lOC4s+C4muC4pQor4LiU4Liz4Lie4Lit4LiHCivguJTguLPguKPguLHguKoKK+C4lOC4s+C4o+C4tAor4LiU4Liz4Lij4Li1CivguJTguLPguKPguLkKK+C4lOC4s+C5hOC4owor4LiU4Liz4Lik4Lip4LiT4LiyCivguJTguLPguYDguKXguLTguIcKK+C4lOC4s+C5geC4peC4hwor4LiU4Liz4Lir4LiZ4Lix4LiBCivguJTguLPguKvguJnguLQKK+C4lOC4s+C4reC4p+C4lAor4LiU4Li04LiBCivguJTguLTguIHguYYKK+C4lOC4tOC4hwor4LiU4Li04LmI4LiHCivguJTguLTguInguLHguJkKK+C4lOC4tOC4kAor4LiU4Li04LiV4LiW4LmMCivguJTguLTguJbguLUKK+C4lOC4tOC4mQor4LiU4Li04LmJ4LiZCivguJTguLTguJoKK+C4lOC4tOC4muC4lOC4tQor4LiU4Li04Lij4Lix4LiI4LiJ4Liy4LiZCivguJTguLTguYDguKPguIEKK+C4lOC4tOC4peC4gQor4LiU4Li04LmI4LinCivguJTguLTguYnguKcKK+C4lOC4tOC5ieC4p+C5gOC4lOC4teC5ieC4ouC4pwor4LiU4Li04Lip4LiQ4LmMCivguJTguLTguKrguYLguJ7guKPguYDguIvguLXguKLguKEKK+C4lOC4tQor4LiU4Li14LiB4Lij4Li1CivguJTguLXguInguLHguJkKK+C4lOC4teC5gOC4i+C4pQor4LiU4Li14LiUCivguJTguLXguJTguLXguJfguLUKK+C4lOC4teC4meC4suC4hOC4o+C4suC4igor4LiU4Li14Lia4Li44LiBCivguJTguLXguJvguKXguLUKK+C4lOC4teC5gOC4m+C4o+C4quC4iuC4seC4mQor4LiU4Li14Lic4LiyCivguJTguLXguJ7guKMKK+C4lOC4teC4ouC4sgor4LiU4Li14Lir4Lih4Li1CivguJTguLXguKvguKXguLUKK+C4lOC4tuC4gQor4LiU4Li24LiHCivguJTguLbguYjguIcKK+C4lOC4tuC4h+C4quC4sAor4LiU4Li24LmI4LihCivguJTguLfguYjguJkKK+C4lOC4t+C5iOC4oQor4LiU4Li34LitCivguJTguLfguYnguK0KK+C4lOC4uAor4LiU4Li44LiBCivguJTguLjguIHguJTguLTguIEKK+C4lOC4uOC4geC4l+C4sOC5gOC4pQor4LiU4Li44LmJ4LiHCivguJTguLjguYnguIfguJTguLTguYnguIcKK+C4lOC4uOC4iAor4LiU4Li44LiI4LiU4Lix4LiHCivguJTguLjguIjguKvguJnguLbguYjguIcKK+C4lOC4uOC4lAor4LiU4Li44LiZCivguJTguLjguYnguJkKK+C4lOC4uOC4muC5hgor4LiU4Li44LihCivguJTguLjguYjguKEKK+C4lOC4uOC5iOC4oeC5hgor4LiU4Li44LmI4LiiCivguJTguLjguKPguIQKK+C4lOC4uOC4o+C4h+C4hOC5jAor4LiU4Li44Lij4LiH4LiE4Li1CivguJTguLjguKPguLTguKLguLAKK+C4lOC4uOC4o+C4tOC4ouC4suC4h+C4hOC5jAor4LiU4Li44LilCivguJTguLjguKnguI7guLUKK+C4lOC4uOC4qeC4k+C4tQor4LiU4Li44Lip4LiT4Li14Lig4Liy4LieCivguJTguLjguKnguLTguJUKK+C4lOC4uOC4quC4tOC4lQor4LiU4Li44LmA4Lir4Lin4LmI4LiyCivguJTguLkKK+C4lOC4ueC4geC5hOC4geC5iOC4lOC4swor4LiU4Li54LiB4LiE4LmI4Liy4LiHCivguJTguLnguIHguIrguYnguLLguIcKK+C4lOC4ueC4geC4owor4LiU4Li54LiUCivguYDguJQKK+C5gOC4lOC5iAor4LmA4LiU4LiBCivguYDguJTguYfguIEKK+C5gOC4lOC4geC4i+C5jOC5guC4l+C4o+C4qgor4LmA4LiU4LiE4Liy4LiB4Lij4Lix4LihCivguYDguJTguITguLLguYDguKHguJXguKMKK+C5gOC4lOC4hOC4suC4peC4tOC4leC4owor4LmA4LiU4LmJ4LiHCivguYDguJTguYfguIgKK+C5gOC4lOC4igor4LmA4LiU4LiK4LiZ4LmMCivguYDguJTguIrguJnguLAKK+C5gOC4lOC4iuC4sAor4LmA4LiU4LmC4LiKCivguYDguJTguIvguLTguIHguKPguLHguKEKK+C5gOC4lOC4i+C4tOC5gOC4oeC4leC4owor4LmA4LiU4LiL4Li04Lil4Li04LiV4LijCivguYDguJTguYfguJQKK+C5gOC4lOC4mQor4LmA4LiU4LmI4LiZCivguYDguJTguJnguKHguLLguKPguYzguIEKK+C5gOC4lOC4o+C4seC4iOC4ieC4suC4mQor4LmA4LiU4LmL4LitCivguYDguJTguYvguK3guJTguYvguLIKK+C5gOC4lOC4sgor4LmA4LiU4LmI4LiyCivguYDguJTguYnguLIKK+C5gOC4lOC5iOC4suC5hgor4LmA4LiU4LmJ4Liy4LiU4Li04LiZCivguYDguJTguYnguLLguKXguKEKK+C5gOC4lOC4suC4sAor4LmA4LiU4Li04LiZCivguYDguJTguLTguYjguJkKK+C5gOC4lOC4tOC4oQor4LmA4LiU4Li14LmJ4LiiCivguYDguJTguLXguKLguIcKK+C5gOC4lOC4teC4ouC4lAor4LmA4LiU4Li14Lii4LijCivguYDguJTguLXguKLguKPguJTguLLguKkKK+C5gOC4lOC4teC4ouC4o+C4luC5jAor4LmA4LiU4Li14Lii4Lij4LiW4Li14Lii4LmMCivguYDguJTguLXguKLguKPguLHguIjguInguLLguJkKK+C5gOC4lOC4teC4ouC4pwor4LmA4LiU4Li14LmI4Lii4LinCivguYDguJTguLXguYvguKLguKcKK+C5gOC4lOC4teC4ouC4sAor4LmA4LiU4Li34LmI4LitCivguYDguJTguLfguK3guIEKK+C5gOC4lOC4t+C5iOC4reC4hwor4LmA4LiU4Li34Lit4LiUCivguYDguJTguLfguK3guJkKK+C5gOC4lOC4t+C4reC4ogor4LmB4LiUCivguYHguJTguYgKK+C5geC4lOC4gQor4LmB4LiU4LmH4LiB4LmGCivguYHguJTguIHguIfguLIKK+C5geC4lOC4geC5geC4lOC5iQor4LmB4LiU4LmH4LiB4LmB4LiU4LmJCivguYHguJTguIcKK+C5geC4lOC4h+C4meC5ieC4swor4LmB4LiU4LiUCivguYHguJTguJkKK+C5geC4lOC5iOC4mQor4LmB4LiU4LmI4Lin4LmGCivguYHguJTguLAKK+C5guC4lAor4LmC4LiU4LmICivguYLguJTguIHguYDguJTguIEKK+C5guC4lOC5iOC4hwor4LmC4LiU4LiUCivguYLguJTguJkKK+C5guC4lOC4meC4seC4lQor4LmC4LiU4LmK4Lib4Lii4LiyCivguYLguJTguKEKK+C5guC4lOC4oeC4owor4LmC4LiU4LiiCivguYLguJTguKMKK+C5guC4lOC4o+C4kwor4LmD4LiUCivguYTguJQKK+C5hOC4lOC5iQor4LmE4LiU4LmB4LiL4LmH4LiB4LiE4Liy4LmE4Lij4LiE4LmMCivguYTguJTguJnguLLguYTguKHguJXguYwKK+C5hOC4lOC5guC4meC5gOC4quC4suC4o+C5jAor4LmE4LiU4LmA4Lij4LiB4LiV4Lij4Li04LiB4LiL4LmMCivguYTguJTguK3guLLguKPguLUKK+C4lQor4LiV4LiBCivguJXguYrguIHguYLguJUKK+C4leC4hwor4LiV4LmL4LiHCivguJXguIfguInguLTguJkKK+C4leC4h+C4tOC4lAor4LiV4LiH4Li44LmI4LiZCivguJXguJQKK+C4leC4luC4suC4hOC4lQor4LiV4LiX4Lix4LiH4LiE4Lin4Li04Lih4Li44LiV4LiV4Li0CivguJXguJkKK+C4leC5ieC4mQor4LiV4LiZ4Lix4LiiCivguJXguJnguLgKK+C4leC4mgor4LiV4Lia4Lii4Li44LiHCivguJXguJrguLAKK+C4leC4m+C4sOC4meC4teC4ouC4sAor4LiV4LihCivguJXguYnguKEKK+C4leC4oeC4ueC4gQor4LiV4LmC4Lih4LmC4LiK4LiV4Li04Lib4Lij4Liy4Lii4LmC4LiZCivguJXguYLguKHguJXguKHguJvguKPguLLguKLguYLguJkKK+C4leC5guC4oeC4meC4uOC4lwor4LiV4LmC4Lih4LmE4Lie4Lij4Li1CivguJXguYLguKHguKvguKMKK+C4leC4ouC4suC4hAor4LiV4Lii4Liy4LiE4Li1CivguJXguKLguLjguJXguLQKK+C4leC4o+C4hwor4LiV4Lij4LiH4LmGCivguJXguKPguJPguLUKK+C4leC4o+C4oQor4LiV4Lij4Lih4Lin4LilCivguJXguKPguKPguIHguLAKK+C4leC4o+C4peC4mgor4LiV4Lij4Lil4Lit4LiUCivguJXguKPguKXguLAKK+C4leC4o+C4peC4sgor4LiV4Lij4Lil4Liy4LiUCivguJXguKPguYDguKXguLTguJQKK+C4leC4o+C4p+C4iAor4LiV4Lij4Lin4LiUCivguJXguKPguKfguJkKK+C4leC4o+C4p+C4ogor4LiV4Lij4Lit4LiBCivguJXguKPguK3guIcKK+C4leC4o+C4reC4oeC5g+C4iAor4LiV4Lij4Lit4Lih4LiV4Lij4LihCivguJXguKPguLAKK+C4leC4o+C4sOC4geC4pQor4LiV4Lij4Liw4LiB4Lin4LiZCivguJXguKPguLDguIHguK3guIcKK+C4leC4o+C4sOC4geC4seC4lAor4LiV4Lij4Liw4LiB4Liy4LijCivguJXguKPguLDguIHguLnguKUKK+C4leC4o+C4sOC4hOC4seC4owor4LiV4Lij4Liw4LiH4LmI4Lit4LiHCivguJXguKPguLDguIjguLHguIEKK+C4leC4o+C4sOC4iuC4seC4gQor4LiV4Lij4Liw4LiU4LiBCivguJXguKPguLDguJTguLLguKkKK+C4leC4o+C4sOC5gOC4leC4o+C4teC4ouC4oQor4LiV4Lij4Liw4LmB4LiV4LmJ4LiZCivguJXguKPguLDguJfguKPguKfguIcKK+C4leC4o+C4sOC4meC4suC4pwor4LiV4Lij4Liw4LmE4LiZCivguJXguKPguLDguJrguIEKK+C4leC4o+C4sOC4muC4reC4gQor4LiV4Lij4Liw4Lia4Lit4LiHCivguJXguKPguLDguJrguLHguJQKK+C4leC4o+C4sOC4muC4seC4mQor4LiV4Lij4Liw4LmA4Lia4LmH4LiHCivguJXguKPguLDguYHguJrguYgKK+C4leC4o+C4sOC5geC4muC4gQor4LiV4Lij4Liw4LmB4Lia4LiHCivguJXguKPguLDguYHguJrguJkKK+C4leC4o+C4sOC5geC4muC5iOC4mQor4LiV4Lij4Liw4LmC4Lia4LihCivguJXguKPguLDguJ7guK3guIcKK+C4leC4o+C4sOC4nuC4seC4hwor4LiV4Lij4Liw4Lih4Li34LmI4LiZCivguJXguKPguLDguYLguKHguIgKK+C4leC4o+C4sOC4peC4suC4geC4suC4owor4LiV4Lij4Liw4Lin4Lix4LiZCivguJXguKPguLDguYDguKfguYfguJQKK+C4leC4o+C4sOC5gOC4p+C4mQor4LiV4Lij4Liw4LmA4Lin4LiZ4LmE4Lie4LijCivguJXguKPguLDguYDguKfguJnguKfguLHguJkKK+C4leC4o+C4sOC4quC4seC4gQor4LiV4Lij4Liw4Lir4LiH4LmI4Lit4LiHCivguJXguKPguLDguKvguIfguYjguLLguJkKK+C4leC4o+C4sOC4q+C4meC4gQor4LiV4Lij4Liw4Lir4LiZ4Lix4LiBCivguJXguKPguLDguKvguJnguYjguLMKK+C4leC4o+C4sOC4q+C4meC4teC5iAor4LiV4Lij4Liw4Lit4LijCivguJXguKPguLDguK3guLLguKUKK+C4leC4o+C4sOC5guC4reC4oQor4LiV4Lij4Lix4LiHCivguJXguKPguLHguIfguITguYwKK+C4leC4o+C4seC4mgor4LiV4Lij4Lix4Lia4Lif4Lix4LiHCivguJXguKPguLHguKIKK+C4leC4o+C4seC4ouC4leC4o+C4tuC4h+C4qOC5jAor4LiV4Lij4Lix4LiqCivguJXguKPguLHguKrguKrguLIKK+C4leC4o+C4sgor4LiV4Lij4Liy4LiB4LiV4Lij4LizCivguJXguKPguLLguIrguLkKK+C4leC4o+C4suC4mgor4LiV4Lij4Liy4Liq4Lix4LiHCivguJXguKPguLMKK+C4leC4o+C5iOC4swor4LiV4Lij4Li0CivguJXguKPguLTguKcKK+C4leC4o+C4tQor4LiV4Lij4Li14Lib4Lij4Liw4LiU4Lix4LiaCivguJXguKPguLXguJvguKfguLLguKIKK+C4leC4o+C4teC4nuC4tOC4mOC4nuC4o+C4o+C4kwor4LiV4Lij4Li14LmA4Lie4LiK4Lij4LiX4Lix4LiT4LiR4Li1CivguJXguKPguLXguYDguJ7guIrguKPguJ7guKfguIcKK+C4leC4o+C4teC4ouC4oeC4gQor4LiV4Lij4Li14Lii4Lix4Lih4Lib4Lin4Liy4LiiCivguJXguKPguLbguIEKK+C4leC4o+C4tuC4hwor4LiV4Lij4Li4CivguJXguKPguLjguJMKK+C4leC4o+C4uOC4ogor4LiV4Lij4Li44LipCivguJXguKPguLjguKnguIjguLXguJkKK+C4leC4o+C4uQor4LiV4Lij4Li54LmICivguJXguKTguJMKK+C4leC4pOC4leC4teC4ouC4sAor4LiV4Lik4LiXCivguJXguKTguJsKK+C4leC4pOC4qeC4k+C4sgor4LiV4Lik4LmFCivguJXguKUKK+C4leC4peC4gQor4LiV4Lil4LiB4Lia4Liy4LiV4LijCivguJXguKXguJoKK+C4leC4peC4reC4lAor4LiV4Lil4LiwCivguJXguKXguLHguJoKK+C4leC4peC4seC4muC4meC4suC4gQor4LiV4Lil4Liy4LiUCivguJXguKXguLTguYjguIcKK+C4leC4peC4tuC4hwor4LiV4Lin4LiHCivguJXguYjguKfguJkKK+C4leC5ieC4p+C4oeC5gOC4leC4teC5ieC4ouC4oQor4LiV4Lin4Lix4LiBCivguJXguKfguLHguJQKK+C4leC4p+C4suC4lAor4LiV4LitCivguJXguYjguK0KK+C4leC5ieC4rQor4LiV4Lit4LiBCivguJXguYrguK3guIEKK+C4leC5iuC4reC4geC4leC5i+C4reC4ogor4LiV4Lit4LiHCivguJXguYnguK3guIcKK+C4leC4reC4h+C4geC4o+C4suC4ogor4LiV4LmJ4Lit4LiH4LiB4Liy4LijCivguJXguK3guIfguJXguK3guKIKK+C4leC4reC4h+C4leC4tuC4hwor4LiV4LmJ4Lit4LiH4LmA4LiVCivguJXguK3guIfguYHguJXguIEKK+C4leC5iOC4reC4h+C5geC4leC5iOC4hwor4LiV4Lit4LiH4LmA4Lib4Lij4Li14Lii4LiHCivguJXguYnguK3guIfguKrguLnguYkKK+C4leC4reC4h+C5gOC4q+C4peC4t+C4reC4hwor4LiV4Lit4LiUCivguJXguK3guJTguJXguYjguK0KK+C4leC4reC4mQor4LiV4LmJ4Lit4LiZCivguJXguK3guJoKK+C4leC4reC5gOC4muC4sgor4LiV4Lit4LihCivguJXguYjguK3guKEKK+C4leC5i+C4reC4oQor4LiV4LmI4Lit4Lih4LiZ4LmJ4LizCivguJXguYjguK3guKIKK+C4leC5ieC4reC4ogor4LiV4LmJ4Lit4Lii4LiV4Lij4Li04LmI4LiHCivguJXguYnguK3guKLguJXguLTguYjguIcKK+C4leC5ieC4reC4ouC4leC4teC4p+C4tOC4lAor4LiV4Lit4LmB4LiiCivguJXguK3guKPguYzguJvguLTguYLguJQKK+C4leC5iOC4reC5hOC4quC5iQor4LiV4Lit4LmB4Lir4LilCivguJXguLAKK+C4leC4sOC4geC4o+C4mQor4LiV4Liw4LiB4Lij4LihCivguJXguLDguIHguKPguKfguKIKK+C4leC4sOC4geC4o+C5ieC4rQor4LiV4Liw4LiB4Lij4LmI4Lit4LihCivguJXguLDguIHguKPguLHguJkKK+C4leC4sOC4geC4o+C4seC4mgor4LiV4Liw4LiB4Lij4LmJ4LiyCivguJXguLDguIHguKPguLLguKEKK+C4leC4sOC4geC4o+C4uOC4lAor4LiV4Liw4LiB4Lij4Li44LihCivguJXguLDguIHguKPguLjguKHguJXguLDguIHguKPguLLguKEKK+C4leC4sOC4geC4peC4sAor4LiV4Liw4LiB4Lil4Liy4LihCivguJXguLDguIHguKfguJQKK+C4leC4sOC4geC4rQor4LiV4Liw4LiB4Lit4LiZCivguJXguLDguIHguLHguIcKK+C4leC4sOC4geC4seC5iOC4pwor4LiV4Liw4LiB4Liy4LiHCivguJXguLDguIHguLLguJQKK+C4leC4sOC4geC4suC4ogor4LiV4Liw4LiB4Liy4LinCivguJXguLDguIHguLXguYkKK+C4leC4sOC4geC4uOC4geC4leC4sOC4geC4seC4gQor4LiV4Liw4LiB4Li44LiiCivguJXguLDguIHguLkKK+C4leC4sOC4geC4ueC4lAor4LiV4Liw4LmA4LiB4Li14Lii4LiB4LiV4Liw4LiB4Liy4LiiCivguJXguLDguYDguIHguLXguKLguIcKK+C4leC4sOC5gOC4geC4teC4ouC4mgor4LiV4Liw4LmB4LiBCivguJXguLDguYHguIHguYgKK+C4leC4sOC5geC4geC4o+C4hwor4LiV4Liw4LmC4LiBCivguJXguLDguYLguIHguYkKK+C4leC4sOC5guC4geC4gQor4LiV4Liw4LmC4LiB4LiZCivguJXguLDguYLguIHguKPguIcKK+C4leC4sOC5guC4geC4o+C4oQor4LiV4Liw4LmE4LiB4LijCivguJXguLDguILguJoKK+C4leC4sOC4guC4rQor4LiV4Liw4LiC4Liy4LiaCivguJXguLDguILguLTguJTguJXguLDguILguKfguIcKK+C4leC4sOC5gOC4guC5iQor4LiV4Liw4LmA4LiC4LmH4LiaCivguJXguLDguYDguILguLTguIcKK+C4leC4sOC5guC4guC4hwor4LiV4Liw4LiE4Lij4LmJ4LitCivguJXguLDguITguKPguK3guIcKK+C4leC4sOC4hOC4o+C4seC5iOC4meC4leC4sOC4hOC4o+C4rQor4LiV4Liw4LiE4Lij4LmJ4LizCivguJXguLDguITguKPguLTguKcKK+C4leC4sOC4hOC4o+C4uOC4mgor4LiV4Liw4LiE4Lil4Lix4Lia4LiV4Liw4LiE4Lil4LmJ4Liy4LiiCivguJXguLDguITguK3guIEKK+C4leC4sOC4hOC4seC4mQor4LiV4Liw4LiE4LmJ4LiyCivguJXguLDguITguLLguIEKK+C4leC4sOC4hOC4suC4hwor4LiV4Liw4LiE4LmJ4Liy4LiZCivguJXguLDguITguLTguKcKK+C4leC4sOC4hOC4uOC5iOC4oQor4LiV4Liw4LmA4LiE4Lij4Li14Lii4LinCivguJXguLDguYDguITguLXguKLguJkKK+C4leC4sOC5gOC4hOC4teC4ouC4meC4l+C4reC4hwor4LiV4Liw4LmA4LiE4Li14Lii4LinCivguJXguLDguYHguITguIcKK+C4leC4sOC5hOC4hOC4o+C5iAor4LiV4Liw4LmE4LiE4Lij4LmJCivguJXguLDguYDguIbguYgKK+C4leC4sOC5geC4h+C5iQor4LiV4Liw4LiV4Li04LiZCivguJXguLDguYHguJXguKPguYnguJkKK+C4leC4sOC4meC4reC4ogor4LiV4Liw4LiZ4Liy4LinCivguJXguLDguJrguKEKK+C4leC4sOC4muC4reC4hwor4LiV4Liw4Lia4Lit4LiH4LiB4Lix4LiZCivguJXguLDguJrguK3guIfguYDguJ7guIrguKMKK+C4leC4sOC4muC4reC4ogor4LiV4Liw4Lia4Lix4LiZCivguJXguLDguJrguLTguYnguIcKK+C4leC4sOC4muC4tOC4lAor4LiV4Liw4Lia4Li04LiU4LiV4Liw4Lia4Lit4LiiCivguJXguLDguJrguLXguYnguJXguLDguJrguLHguJkKK+C4leC4sOC4muC4tuC4hwor4LiV4Liw4Lia4Li44LmJ4LiiCivguJXguLDguJrguLjguYnguKLguYYKK+C4leC4sOC4muC4ueC4mQor4LiV4Liw4LmA4Lia4LmH4LiHCivguJXguLDguYDguJrguYfguIfguKHguLLguJkKK+C4leC4sOC5geC4muC4gQor4LiV4Liw4LmB4Lia4LiHCivguJXguLDguYLguJrguKEKK+C4leC4sOC5hOC4mgor4LiV4Liw4Lib4LiaCivguJXguLDguJvguKXguLTguIcKK+C4leC4sOC4m+C4seC4lOC4leC4sOC4m+C5iOC4reC4hwor4LiV4Liw4Lib4Li04LmJ4LiHCivguJXguLDguJvguLjguYjguKHguJXguLDguJvguYjguLMKK+C4leC4sOC4m+C4uQor4LiV4Liw4Lie4LiHCivguJXguLDguJ7guJQKK+C4leC4sOC4nuC4reC4hwor4LiV4Liw4Lie4Lix4LiBCivguJXguLDguJ7guLHguIcKK+C4leC4sOC4nuC4seC4lAor4LiV4Liw4Lie4Lix4LmJ4LiZCivguJXguLDguJ7guLLguIEKK+C4leC4sOC4nuC4suC4mQor4LiV4Liw4Lie4Liy4LiaCivguJXguLDguJ7guLLguJrguJnguYnguLMKK+C4leC4sOC4nuC4suC4ogor4LiV4Liw4Lie4Li24LiUCivguJXguLDguJ7guLjguYjguJkKK+C4leC4sOC5gOC4nuC4o+C4sgor4LiV4Liw4LmA4Lie4Li04LiHCivguJXguLDguYDguJ7guLTguJQKK+C4leC4sOC5gOC4nuC4tOC5iOC4mQor4LiV4Liw4LmA4Lie4Li14Lii4LiZCivguJXguLDguYLguJ7guIEKK+C4leC4sOC5guC4nuC4hwor4LiV4Liw4LmC4Lie4LiZCivguJXguLDguYDguKDguLIKK+C4leC4sOC5g+C4oOC5iQor4LiV4Liw4Lih4LmI4LitCivguJXguLDguKHguK3guKIKK+C4leC4sOC4oeC4reC4ouC4quC4sOC4peC4sgor4LiV4Liw4Lij4Lix4LiHCivguJXguLDguKPguLHguIfguIHguLDguJnguLkKK+C4leC4sOC4o+C4seC4h+C4leC4seC4hwor4LiV4Liw4Lij4Liy4LiHCivguJXguLDguKXguK3guIcKK+C4leC4sOC4peC4reC4mQor4LiV4Liw4Lil4LmI4Lit4LihCivguJXguLDguKXguYjguK3guKHguJvguYnguK3guKEKK+C4leC4sOC4peC4sAor4LiV4Liw4Lil4Liy4LiZCivguJXguLDguKXguLTguIfguJvguKXguLTguIcKK+C4leC4sOC4peC4tOC4mgor4LiV4Liw4Lil4Li14LiV4Liw4Lil4Liy4LiZCivguJXguLDguKXguLbguIcKK+C4leC4sOC4peC4uOC4hwor4LiV4Liw4Lil4Li44LmI4LihCivguJXguLDguKXguLjguKHguJrguK3guJkKK+C4leC4sOC4peC4uOC5iOC4oeC5guC4m+C4hwor4LiV4Liw4Lil4Li44Lih4Lie4LitCivguJXguLDguKXguLjguKHguJ7guLjguIEKK+C4leC4sOC4peC4uOC5iOC4oeC4reC4tOC4lAor4LiV4Liw4Lil4Li44LiiCivguJXguLDguYDguKXguIcKK+C4leC4sOC5geC4peC4h+C5geC4geC4hwor4LiV4Liw4LmE4LilCivguJXguLDguKfguLHguJkKK+C4leC4sOC4p+C4suC4hwor4LiV4Liw4LmA4Lin4LiZCivguJXguLDguKvguJnguLbguYjguIfguKPguLHguJQKK+C4leC4sOC4q+C4peC4tOC4pwor4LiV4Liw4Lir4Lil4Li44LiBCivguJXguLDguKvguKXguLjguIcKK+C4leC4sOC5gOC4q+C4peC4meC5geC4m+C5i+C4mQor4LiV4Liw4LmA4Lir4Lil4Liy4Liw4LmA4Lib4Liy4LiwCivguJXguLDguYHguKvguIfguYjguKcKK+C4leC4sOC5geC4q+C4oeC4sOC5geC4guC4sAor4LiV4Liw4LmB4Lir4Lil4LiZ4LmB4Lib4LmL4LiZCivguJXguLDguYLguKvguIfguIEKK+C4leC4seC5iuC4gQor4LiV4Lix4LiB4LiB4LiwCivguJXguLHguIHguYDguJXguLfguK3guJkKK+C4leC4seC5iuC4geC5geC4leC4mQor4LiV4Lix4LiB4LijCivguJXguLHguIHguKnguIEKK+C4leC4seC4geC4qeC4kwor4LiV4Lix4LiB4Lip4LiT4Li1CivguJXguLHguIHguKnguLHguKIKK+C4leC4seC4hwor4LiV4Lix4LmI4LiHCivguJXguLHguYnguIcKK+C4leC4seC4h+C5gOC4gQor4LiV4Lix4LiH4LiJ4LmI4Liy4LiiCivguJXguLHguIfguJXguLTguJQKK+C4leC4seC4h+C5gOC4oQor4LiV4Lix4LiH4Lin4Liy4LiiCivguJXguLHguIfguYLguK3guYsKK+C4leC4seC4iOC4ieC4gQor4LiV4Lix4LiI4LiJ4LiZ4Li1CivguJXguLHguJPguJHguLjguKUKK+C4leC4seC4k+C4q+C4seC4geC4qeC4seC4ogor4LiV4Lix4LiT4Lir4LiyCivguJXguLHguJQKK+C4leC4seC4luC4ouC5jAor4LiV4Lix4LiZCivguJXguLHguJnguJXguKPguLAKK+C4leC4seC4meC4leC4tAor4LiV4Lix4LiZ4Lir4LiBCivguJXguLHguJnguKvguKLguIcKK+C4leC4seC4meC5gOC4q+C4tOC4oQor4LiV4Lix4LiaCivguJXguLHguJrguYDguJXguYjguLIKK+C4leC4seC4muC4m+C4tOC5ieC4hwor4LiV4Lix4Lia4LmA4Lib4LmH4LiUCivguJXguLHguKcKK+C4leC4seC5i+C4pwor4LiV4Lix4Lin4LiV4Li34LiUCivguJXguLHguYnguKfguYLguJwKK+C4leC4seC5ieC4p+C4quC4tOC4pwor4LiV4Lix4LmJ4Lin4LmA4Lir4Li14LmI4LiiCivguJXguLIKK+C4leC4suC4gQor4LiV4Liy4LiHCivguJXguYjguLLguIcKK+C4leC4suC4lAor4LiV4Liy4LiZCivguJXguYjguLLguJkKK+C4leC5ieC4suC4mQor4LiV4Liy4LiZ4LiZ4LiB4LiB4LiUCivguJXguLLguJnguYDguKrguLXguYnguKLguJkKK+C4leC4suC4meC4q+C4gQor4LiV4Liy4LiZ4Lir4Lih4LmI4Lit4LiZCivguJXguLLguJnguYDguKvguKXguLfguK3guIcKK+C4leC4suC4meC4tQor4LiV4Liy4LiaCivguJXguLLguJ3guLHguYjguIcKK+C4leC4suC4oQor4LiV4Liy4Lih4Lie4LiwCivguJXguLLguKHguLDguYHguJkKK+C4leC4suC4oeC4tOC4mQor4LiV4Liy4LiiCivguJXguYnguLLguKIKK+C4leC5iuC4suC4ouC4leC4suC4ogor4LiV4Liy4Lij4Liy4LmE4LiVCivguJXguLLguYDguKPguLfguK3guIrguLHguKIKK+C4leC4suC4pQor4LiV4Liy4Lil4Liy4LiZCivguJXguLLguKXguLgKK+C4leC4suC4peC4uOC4igor4LiV4Liy4LinCivguJXguLLguYDguKrguLfguK0KK+C4leC4suC4q+C4peC4tOC5iOC4hwor4LiV4Liy4LisCivguJXguLMKK+C4leC5iOC4swor4LiV4Liz4LiZ4Liy4LiZCivguJXguLPguYDguJnguLTguJkKK+C4leC4s+C5gOC4meC4teC4ouC4mQor4LiV4Liz4Lia4LilCivguJXguLPguYHguJoKK+C4leC5ieC4s+C4m+C4uOC4gQor4LiV4LmJ4Liz4Lic4Liy4LiHCivguJXguYnguLPguJ7guKPguKfguJQKK+C4leC4s+C4oeC4sOC4q+C4h+C4hwor4LiV4Liz4LmB4LiiCivguJXguLPguKPguKfguIgKK+C4leC4s+C4o+C4seC4mgor4LiV4Liz4Lij4LiyCivguJXguLPguKPguLgKK+C4leC4s+C4peC4tuC4hwor4LiV4Liz4LmA4Liq4LiyCivguJXguLPguKvguJnguLHguIEKK+C4leC4s+C4q+C4meC4tAor4LiV4Liz4Lir4Lij4LiwCivguJXguLPguYHguKvguJnguYjguIcKK+C4leC4tAor4LiV4Li04LiB4LiC4LiN4Liy4LiTCivguJXguLTguIHguLAKK+C4leC4tOC4geC4suC4q+C4peC4seC4hwor4LiV4Li04LiHCivguJXguLTguYjguIcKK+C4leC4tOC5i+C4hwor4LiV4Li04LmL4LiH4LmGCivguJXguLTguYjguIfguJXguLHguYjguIcKK+C4leC4tOC4h+C4quC4leC4tAor4LiV4Li04LmI4LiH4Lir4Liy4LiiCivguJXguLTguJMKK+C4leC4tOC4k+C4p+C4seC4leC4luC4suC4o+C4geC4p+C4tOC4meC4seC4ogor4LiV4Li04LiUCivguJXguLTguJTguYYKK+C4leC4tOC4leC4leC4tOC4gQor4LiV4Li04LiV4LiV4Li04LijCivguJXguLTguJXguJYKK+C4leC4tOC4luC4tQor4LiV4Li04Lib4LiyCivguJXguLTguJvguLLguJbguLAKK+C4leC4tOC4oeC4tAor4LiV4Li04Lih4Li04LiH4LiE4Lil4LiwCivguJXguLTguKMKK+C4leC4tOC4o+C4seC4iOC4ieC4suC4mQor4LiV4Li04LilCivguJXguLTguKXguIEKK+C4leC4tOC5ieC4pwor4LiV4Li04Liq4Lij4LiT4LiE4Lih4LiZ4Li54Lib4Liq4Lix4Lih4Lib4LiX4LiyCivguJXguLUKK+C4leC4teC5iAor4LiV4Li14LmLCivguJXguLXguJfguK3guIcKK+C4leC4teC4mQor4LiV4Li14LiZ4LiI4LmJ4LizCivguJXguLXguJnguYDguJfguLXguKLguJkKK+C4leC4teC4meC5geC4o+C4lAor4LiV4Li14LiaCivguJXguLXguKPguJbguLAKK+C4leC4teC4o+C4sAor4LiV4Li14Lir4Lih4LiyCivguJXguLYKK+C4leC4tuC5hgor4LiV4Li24LiBCivguJXguLbguIHguYYKK+C4leC4tuC5ieC4geC5hgor4LiV4Li24LmJ4LiB4LiV4Lix4LmJ4LiBCivguJXguLbguIcKK+C4leC4tuC4lOC4leC4t+C5i+C4rQor4LiV4Li24LmK4LiU4LiV4Li34LmL4LitCivguJXguLfguJQKK+C4leC4t+C5iOC4mQor4LiV4Li34LmJ4LiZCivguJXguLfguYnguK0KK+C4leC4t+C5iuC4rQor4LiV4Li34LmL4LitCivguJXguLfguK3guK7guKfguJkKK+C4leC4uAor4LiV4Li44LmKCivguJXguLjguYYKK+C4leC4uOC5iuC4geC5geC4gQor4LiV4Li44LmK4LiB4LiV4LiyCivguJXguLjguYrguIHguJXguYjguLMKK+C4leC4uOC5iuC4geC4leC5iOC4s+C4meC5ieC4s+C4l+C4reC4hwor4LiV4Li44LiB4LiV4Li04LiBCivguJXguLjguYrguIHguJXguLTguYrguIEKK+C4leC4uOC5iuC4geC4leC4uOC5iOC4mQor4LiV4Li44LmK4LiB4LiV4Li44LmL4LiiCivguJXguLjguIcKK+C4leC4uOC5ieC4h+C4geC5iOC4sgor4LiV4Li44LmJ4LiH4LiV4Li04LmJ4LiHCivguJXguLjguYrguJTguJXguLnguYgKK+C4leC4uOC4mQor4LiV4Li44LmI4LiZCivguJXguLjguYvguJkKK+C4leC4uOC5ieC4meC5geC4i+C4sAor4LiV4Li44LmI4LiZ4LiV4LmI4Liy4LiZCivguJXguLjguJnguLLguKvguIfguLHguJkKK+C4leC4uOC4muC5hgor4LiV4Li44LmJ4Lia4LmGCivguJXguLjguYrguJrguJvguYjguK3guIcKK+C4leC4uOC4m+C4seC4lOC4leC4uOC4m+C5iOC4reC4hwor4LiV4Li44Lib4Lix4LiU4LiV4Li44LmA4Lib4LmLCivguJXguLjguYjguKEKK+C4leC4uOC5ieC4oQor4LiV4Li44LmL4LihCivguJXguLjguYrguKHguYYKK+C4leC4uOC5iuC4oeC5huC4leC5ieC4reC4oeC5hgor4LiV4Li44LmJ4Lih4LiB4Lin4LmJ4Liy4LinCivguJXguLjguKHguIHguLIKK+C4leC4uOC5ieC4oeC5geC4i+C4sAor4LiV4Li44Lih4LiV4Lix4LiHCivguJXguLjguYnguKHguYDguJXguYvguJkKK+C4leC4uOC5ieC4oeC4m+C4teC5iAor4LiV4Li44Lih4LieCivguJXguLjguYjguKIKK+C4leC4uOC5ieC4ogor4LiV4Li44LmK4LiiCivguJXguLjguYjguKLguYYKK+C4leC4uOC5ieC4ouC5hgor4LiV4Li44LmL4Lii4LiV4Li44LmI4LiiCivguJXguLjguKPguIQKK+C4leC4uOC4o+C4h+C4hOC5jAor4LiV4Li44Lij4Li04Lii4Liy4LiH4LiE4LmMCivguJXguLjguKXguKrguLQKK+C4leC4uOC4peC4sgor4LiV4Li44Lir4Lij4Lix4LiU4LiV4Li44LmA4Lir4Lij4LmICivguJXguLkKK+C4leC4ueC5iAor4LiV4Li54LmJCivguJXguLnguIEKK+C4leC4ueC4lAor4LiV4Li54LiU4LiH4Lit4LiZCivguJXguLnguJoKK+C4leC4ueC4oQor4LiV4Li54Lil4Li04LmI4LiZ4Liu4Li34LmJ4LitCivguJXguLnguKvguJnguLIKK+C5gOC4lQor4LmA4LiV4LiBCivguYDguJXguYfguIEKK+C5gOC4leC5h+C4hwor4LmA4LiV4LmI4LiHCivguYDguJXguIoKK+C5gOC4leC5guC4igor4LmA4LiV4LmJ4LiZCivguYDguJXguYfguJnguJfguYwKK+C5gOC4leC5h+C4oQor4LmA4LiV4LiiCivguYDguJXguYnguKIKK+C5gOC4leC5iuC4ogor4LmA4LiV4Lij4LmICivguYDguJXguKPguYfguJQKK+C5gOC4leC4o+C5h+C4lOC5gOC4leC4o+C5iAor4LmA4LiV4Lij4LmH4LiU4LmA4LiV4Lij4LiZCivguYDguJXguKPguJkKK+C5gOC4leC4o+C4tOC4hwor4LmA4LiV4Lij4Li14Lii4LiUCivguYDguJXguKPguLXguKLguJoKK+C5gOC4leC4o+C4teC4ouC4oQor4LmA4LiV4Lij4Li14Lii4Lih4LiV4Lij4LihCivguYDguJXguKXguLAKK+C5gOC4leC4peC4tOC4lAor4LmA4LiV4Lin4LmH4LiUCivguYDguJXguYjguK0KK+C5gOC4leC4reC4sAor4LmA4LiV4LiwCivguYDguJXguYrguLAKK+C5gOC4leC5iuC4sOC4iOC4uOC5iuC4ogor4LmA4LiV4LmK4Liw4LiX4LmI4LiyCivguYDguJXguLIKK+C5gOC4leC5iOC4sgor4LmA4LiV4LmJ4LiyCivguYDguJXguYvguLIKK+C5gOC4leC5iOC4suC4geC4o+C4sOC4quC4uOC4mQor4LmA4LiV4LmI4Liy4LiB4Li04LiZ4Lic4Lix4LiB4Lia4Li44LmJ4LiHCivguYDguJXguYjguLLguYDguIHguLXguKLguJQKK+C5gOC4leC5ieC4suC5gOC4iOC4teC5ieC4ouC4pwor4LmA4LiV4LmI4Liy4LiX4Lit4LiHCivguYDguJXguYjguLLguJfguK3guYDguKrguLfguYjguK0KK+C5gOC4leC5ieC4suC4l+C4tuC4hwor4LmA4LiV4LmI4Liy4Lia4LmJ4LiyCivguYDguJXguYjguLLguKPguLHguYnguIcKK+C5gOC4leC5iOC4suC4o+C5ieC4suC4hwor4LmA4LiV4LmI4Liy4LmA4Lil4Li34Lit4LiZCivguYDguJXguYnguLLguKrguYjguKfguJkKK+C5gOC4leC5ieC4suC5gOC4quC4teC4ouC4mgor4LmA4LiV4LmI4Liy4Lir4Lix4LiaCivguYDguJXguYnguLLguKvguLnguYkKK+C5gOC4leC5ieC4suC4ruC4p+C4ogor4LmA4LiV4LmK4Liy4LiwCivguYDguJXguLLguLDguYHguJXguLAKK+C5gOC4leC4tOC5iOC4hwor4LmA4LiV4Li04LiZ4LmA4LiV4LmI4LitCivguYDguJXguLTguJoKK+C5gOC4leC4tOC4oQor4LmA4LiV4Li14LmI4LiiCivguYDguJXguLXguYnguKIKK+C5gOC4leC4teC4ouC4hwor4LmA4LiV4Li14Lii4LiZCivguYDguJXguLXguKLguJoKK+C5gOC4leC4teC5iuC4ouC4oQor4LmA4LiV4Li14LmL4Lii4LihCivguYDguJXguLXguKLguKPguJbguYwKK+C5gOC4leC4teC4ouC4pwor4LmA4LiV4Li14LmI4Lii4LinCivguYDguJXguLfguYnguK0KK+C5gOC4leC4t+C4reC4mQor4LmB4LiV4LmICivguYHguJXguYkKK+C5geC4leC5iOC5hgor4LmB4LiV4LiBCivguYHguJXguYjguIHguYjguK3guJnguYHguJXguYjguIHguLXguYkKK+C5geC4leC5iOC4geC4teC5ieC5geC4leC5iOC4geC5iOC4reC4mQor4LmB4LiV4LiHCivguYHguJXguYjguIcKK+C5geC4leC4h+C5gOC4oQor4LmB4LiV4LmJ4LiI4Li04LmL4LinCivguYHguJXguJQKK+C5geC4leC5iuC4lOC5geC4leC5iwor4LmB4LiV4LiZCivguYHguJXguYnguKEKK+C5geC4leC4owor4LmB4LiV4Lij4LiwCivguYHguJXguYnguKfguYHguKPguYnguKcKK+C5geC4leC4sAor4LmC4LiVCivguYLguJXguYkKK+C5guC4leC4gQor4LmC4LiV4LmJ4LiHCivguYLguJXguYnguIfguYYKK+C5guC4leC4h+C5huC5gOC4leC4h+C5hgor4LmC4LiV4LiH4LmA4LiV4LiHCivguYLguJXguI7guIEKK+C5guC4leC5iuC4lAor4LmC4LiV4LmL4LmA4LiV4LmLCivguYLguJXguJkKK+C5guC4leC4meC4lAor4LmC4LiV4LmJ4LmC4LicCivguYLguJXguKHguKMKK+C5guC4leC4oeC4o+C4mOC4owor4LmC4LiV4LiiCivguYLguJXguKPguIEKK+C5guC4leC4o+C4geC5hOC4leC4owor4LmC4LiV4Lij4LiUCivguYLguJXguYnguKvguKXguIcKK+C5guC4leC5iuC4sAor4LmD4LiV4LmJCivguYTguJUKK+C5hOC4leC5iAor4LmE4LiV4LmJCivguYTguJXguYsKK+C5hOC4leC5ieC4geC5i+C4hwor4LmE4LiV4LmJ4Lid4Li44LmI4LiZCivguYTguJXguYjguYTguKHguYkKK+C5hOC4leC4owor4LmE4LiV4Lij4LiB4Li04Lio4Lii4LiyCivguYTguJXguKPguJTguLLguKLguLjguIQKK+C5hOC4leC4o+C5iOC4leC4o+C4reC4hwor4LmE4LiV4Lij4LiiCivguYTguJXguYnguKvguKfguLHguJkKK+C5hOC4leC5ieC4reC5i+C4reC4hwor4LiWCivguJbguIEKK+C4luC4geC4pQor4LiW4LiH4Lix4LiZCivguJbguIfguLLguJQKK+C4luC4lAor4LiW4LiZCivguJbguJnguJkKK+C4luC4meC4mwor4LiW4LiZ4Lit4LihCivguJbguJnguLHguJQKK+C4luC4meC4seC4mQor4LiW4LiZ4LizCivguJbguJnguLTguKEKK+C4luC4meC4tOC4oeC4quC4o+C5ieC4reC4ogor4LiW4LiaCivguJbguJrguJTguLUKK+C4luC4oQor4LiW4LmI4LihCivguJbguKHguK0KK+C4luC4oeC4tuC4h+C4l+C4tuC4hwor4LiW4LilCivguJbguKXguIEKK+C4luC4peC4geC4muC4suC4leC4owor4LiW4Lil4LiZCivguJbguKXguKEKK+C4luC4peC5iOC4oQor4LiW4Lil4Lit4LiBCivguJbguKXguLHguIEKK+C4luC4peC4seC4mQor4LiW4Lil4LiyCivguJbguKXguLLguIEKK+C4luC4peC4suC4ogor4LiW4Lil4LizCivguJbguKXguLXguJbguKXguLMKK+C4luC4peC4tuC4h+C4leC4sgor4LiW4Lil4Li44LiHCivguJbguKXguLjguJkKK+C4luC5iOC4p+C4hwor4LiW4LmJ4Lin4LiZCivguJbguYnguKfguKIKK+C4luC5ieC4p+C4ouC5guC4luC4hwor4LiW4Lin4Lix4LiUCivguJbguKfguLHguKUKK+C4luC4p+C4seC4peC4ouC5jAor4LiW4Lin4Liy4LiiCivguJbguKfguLTguJkKK+C4luC4p+C4tOC4pQor4LiW4LmI4LitCivguJbguYnguK0KK+C4luC4reC4gQor4LiW4Lit4LiHCivguJbguYjguK3guIcKK+C4luC5ieC4reC4hwor4LiW4Lit4LiUCivguJbguK3guJkKK+C4luC4reC4mgor4LiW4Lit4Lia4LmB4LiW4LiaCivguJbguYjguK3guKEKK+C4luC4reC4ogor4LiW4LmI4Lit4LiiCivguJbguYnguK3guKIKK+C4luC4sAor4LiW4Liw4LiB4Lix4LiUCivguJbguLDguYDguIHguLTguJkKK+C4luC4sOC5guC4geC4mQor4LiW4Liw4LiW4Lix4LmI4LiZCivguJbguLDguJbguLHguJoKK+C4luC4sOC4luC4uOC4meC4luC4sOC4luC4seC4mQor4LiW4Liw4Lih4Lix4LiU4LiW4Liw4LmB4Lih4LiHCivguJbguLHguIEKK+C4luC4seC4hwor4LiW4Lix4LmI4LiHCivguJbguLHguJPguJHguLTguKUKK+C4luC4seC4lAor4LiW4Lix4LiX4LiYCivguJbguLHguJkKK+C4luC4seC5iOC4mQor4LiW4Lix4LmI4LiZ4LmGCivguJbguLHguJoKK+C4luC4seC4muC5hgor4LiW4Lix4Lih4Lig4LmMCivguJbguLHguKcKK+C4luC4seC5iOC4pwor4LiW4Lix4LmI4Lin4LiC4Liy4LinCivguJbguLIKK+C4luC5ieC4sgor4LiW4Liy4LiBCivguJbguLLguIcKK+C4luC5iOC4suC4hwor4LiW4Liy4LiUCivguJbguLLguJkKK+C4luC5iOC4suC4mQor4LiW4Liy4LiaCivguJbguLLguKEKK+C4luC4suC4oeC4sAor4LiW4LmI4Liy4LiiCivguJbguYjguLLguKLguYDguJTguLXguKLguKcKK+C4luC5iOC4suC4pwor4LiW4Liy4Lin4LijCivguJbguLLguKfguKPguJjguLTguKPguLIKK+C4luC4suC4p+C4o+C4p+C4seC4leC4luC4uAor4LiW4LmJ4LizCivguJbguLTguYjguJkKK+C4luC4tQor4LiW4Li14LmICivguJbguLXguYjguYYKK+C4luC4teC4mgor4LiW4Li14Lia4LiJ4Lix4LiUCivguJbguLbguIEKK+C4luC4tuC4hwor4LiW4Li34LitCivguJbguLjguIcKK+C4luC4uOC4mQor4LiW4Li44LiiCivguJbguLjguKUKK+C4luC4uOC4peC4peC4sAor4LiW4Li5CivguJbguLnguIEKK+C5gOC4luC4geC4tOC4hwor4LmA4LiW4LiZCivguYDguJbguKHguLTguJkKK+C5gOC4luC4owor4LmA4LiW4Lij4LiwCivguYDguJbguKXguYTguJbguKUKK+C5gOC4luC4peC4tOC4gQor4LmA4LiW4Lil4Li04LiHCivguYDguJbguKXguLfguK3guIHguJbguKXguJkKK+C5gOC4luC5iOC4rQor4LmA4LiW4Lit4LiwCivguYDguJbguLIKK+C5gOC4luC5ieC4sgor4LmA4LiW4Liy4LiE4Lix4LiZCivguYDguJbguLLguITguLHguJnguYDguKvguKXguYfguIEKK+C5gOC4luC4suC5gOC4h+C4suC4sAor4LmA4LiW4Liy4Lih4Lin4LiBCivguYDguJbguLLguKfguLHguKXguKLguYzguYDguILguLXguKLguKcKK+C5gOC4luC4suC4p+C4seC4peC4ouC5jOC4m+C4ueC4mQor4LmA4LiW4Liy4Lin4Lix4Lil4Lii4LmM4LmA4Lib4Lij4Li14Lii4LiHCivguYDguJbguLLguKfguLHguKXguKLguYzguKLguK3guJTguJTguYnguKfguJkKK+C5gOC4luC4suC4p+C4seC4peC4ouC5jOC5gOC4q+C4peC5h+C4gQor4LmA4LiW4Liy4Liq4Li04LiH4LmC4LiVCivguYDguJbguLLguKvguLHguKfguJTguYnguKfguJkKK+C5gOC4luC4suC4sAor4LmA4LiW4Li04LiBCivguYDguJbguLTguIcKK+C5gOC4luC4tOC4lAor4LmA4LiW4Li04LiU4LmA4LiX4Li04LiHCivguYDguJbguLTguJkKK+C5gOC4luC4teC4ouC4hwor4LmA4LiW4Li14Lii4LijCivguYDguJbguLfguK0KK+C5gOC4luC4t+C4reC4gQor4LmA4LiW4Li34LmI4Lit4LiZCivguYHguJYKK+C5geC4luC4gQor4LmB4LiW4LiHCivguYHguJbguJkKK+C5geC4luC4mgor4LmB4LiW4LihCivguYHguJbguKXguIcKK+C5geC4luC4peC4mgor4LmB4LiW4LinCivguYLguJYKK+C5guC4luC4hwor4LmC4LiW4LiH4LmA4LiW4LiHCivguYLguJbguJoKK+C5guC4luC4oQor4LmC4LiW4Lih4LiZ4Liy4LiB4Liy4LijCivguYTguJYKK+C5hOC4luC5iAor4LmE4LiW4LmJCivguYTguJbguIcKK+C5hOC4luC4pQor4LiXCivguJfguIEKK+C4l+C4geC4peC5ieC4sgor4LiX4LmB4LiB4Lil4LmJ4LinCivguJfguYjguIcKK+C4l+C4h+C4seC4mQor4LiX4LiK4Li1CivguJfguJQKK+C4l+C4lOC5guC4l+C4o+C5iOC4qwor4LiX4LiXCivguJfguJjguLQKK+C4l+C4mQor4LiX4LmJ4LiZCivguJfguJnguJTguLUKK+C4l+C4meC4leC5jAor4LiX4LiZ4LmC4LiX4LmICivguJfguJnguKEKK+C4l+C4meC4quC4oeC4uOC4l+C4owor4LiX4LiZ4Liy4LiiCivguJfguJoKK+C4l+C4muC4p+C4hwor4LiX4LihCivguJfguKHguIEKK+C4l+C4oeC4mQor4LiX4Lih4LiaCivguJfguKHguK0KK+C4l+C4oeC4tOC4rAor4LiX4LmA4Lih4Li04LiZCivguJfguYLguKHguJkKK+C4l+C4ouC4reC4ogor4LiX4Lii4LiyCivguJfguYHguKLguIcKK+C4l+C4owor4LiX4Lij4LiHCivguJfguKPguIfguIHguKPguLDguYDguJfguLXguKLguKEKK+C4l+C4o+C4h+C4muC4suC4lOC4suC4pQor4LiX4Lij4LiX4Li24LiHCivguJfguKPguJ7guLUKK+C4l+C4o+C4oeC4suC4l+C4o+C4geC4o+C4o+C4oQor4LiX4Lij4Lih4Liy4LiZCivguJfguKPguKHguLjguIEKK+C4l+C4o+C4o+C4l+C4tuC4hwor4LiX4Lij4Lij4LibCivguJfguKPguKPguJvguJPguYwKK+C4l+C4o+C4o+C4m+C4k+C4sAor4LiX4Lij4Lij4Lio4LiZ4LiwCivguJfguKPguKPguKjguJnguLXguKLguYwKK+C4l+C4o+C5gOC4peC5iOC4q+C5jAor4LiX4Lij4Lin4LiHCivguJfguKPguKfguJQKK+C4l+C4o+C4p+C4lOC4l+C4o+C4hwor4LiX4Lij4Lin4Liy4LijCivguJfguKPguKrguK3guIfguJfguKPguKrguLjguKEKK+C4l+C4o+C4quC4suC4ogor4LiX4Lij4Liq4Li44LihCivguJfguKPguKvguJQKK+C4l+C4o+C4q+C4mQor4LiX4Lij4Lir4Lin4LilCivguJfguKPguKvguLbguIcKK+C4l+C4o+C4q+C4tuC4h+C4l+C4o+C4q+C4p+C4pQor4LiX4Lij4Lir4Li5CivguJfguKPguYDguKvguKUKK+C4l+C4o+C4rQor4LiX4Lij4Lit4Lih4LmC4Lia4LiZCivguJfguKPguK3guLbguIcKK+C4l+C4o+C4reC4uOC5ieC4oQor4LiX4Lij4Liw4LiZ4LiHCivguJfguKPguLDguJnguLLguKcKK+C4l+C4o+C4seC4nuC4ouC5jAor4LiX4Lij4Lix4Lih4LmA4Lib4LmH4LiVCivguJfguKPguLHguKrguJXguYwKK+C4l+C4o+C4suC4meC4i+C4tOC4quC5gOC4leC4reC4o+C5jAor4LiX4Lij4Liy4LiaCivguJfguKPguLLguKEKK+C4l+C4o+C4suC4ogor4LiX4Lij4Liy4Lii4LiC4Liy4LinCivguJfguKPguLTguJfguKMKK+C4l+C4o+C4uOC4lAor4LiX4Lij4Li44LihCivguJfguKPguLjguKHguILguLHguJPguJHguYwKK+C4l+C4o+C4uOC4oeC4oeC4seC4ogor4LiX4Lij4Li44Lih4Lin4Liy4Liq4Li1CivguJfguKPguLjguKHguYDguKjguKPguKnguJDguYwKK+C4l+C4o+C4uOC4oeC4suC4o+C4tAor4LiX4Lij4Li44Lih4Liy4Lil4Lix4LiiCivguJfguKPguLnguYgKK+C4l+C4pOC4qeC4juC4tQor4LiX4LilCivguJfguKXguJrguKEKK+C4l+C4peC4reC4tuC4hwor4LiX4Lil4Liy4LiiCivguJfguKXguLTguJcKK+C4l+C4peC4tOC4l+C4l+C4gQor4LiX4Lin4LiHCivguJfguYnguKfguIcKK+C4l+C5iOC4p+C4h+C4l+C5iOC4sgor4LiX4LmI4Lin4LiH4LiX4Liz4LiZ4Lit4LiHCivguJfguYjguKfguIfguJfguLUKK+C4l+C4p+C4lAor4LiX4Lin4LiU4Li24LiH4Liq4LmMCivguJfguKfguJkKK+C4l+C5ieC4p+C4mQor4LiX4LmI4Lin4LihCivguJfguYnguKfguKEKK+C4l+C5ieC4p+C4oeC5hgor4LiX4Lin4LiiCivguJfguYjguKfguKIKK+C4l+C5ieC4p+C4ogor4LiX4Lin4Lii4LiwCivguJfguKfguK3guKIKK+C4l+C4p+C4seC4leC4lOC4tuC4h+C4quC5jAor4LiX4Lin4Lix4LiiCivguJfguKfguLIKK+C4l+C4p+C5iOC4sgor4LiX4Lin4Liy4Lia4Lij4Lii4Li44LiECivguJfguKfguLLguKIKK+C4l+C4p+C4suC4owor4LiX4Lin4Liy4Lij4Liy4Lin4LiU4Li1CivguJfguKfguLQKK+C4l+C4p+C4tOC4igor4LiX4Lin4Li04LiV4Li14LiiCivguJfguKfguLTguJXguLXguKLguLIKK+C4l+C4p+C4tOC4owor4LiX4Lin4Li1CivguJfguKfguLXguJsKK+C4l+C4p+C4teC4m+C4tQor4LiX4LioCivguJfguKjguLIKK+C4l+C4qOC4suC4h+C4hOC5jAor4LiX4Liq4Lih4Li1CivguJfguKrguLIKK+C4l+C4q+C4o+C4sAor4LiX4Lir4Liy4LijCivguJfguK0KK+C4l+C5iOC4rQor4LiX4LmJ4LitCivguJfguK3guIEKK+C4l+C4reC4hwor4LiX4LmI4Lit4LiHCivguJfguYnguK3guIcKK+C4l+C4reC4h+C4geC4p+C4suC4pwor4LiX4Lit4LiH4LmA4LiE4Lij4Li34LitCivguJfguK3guIfguJjguKPguKPguKHguIrguLLguJXguLQKK+C4l+C4reC4h+C5gOC4nOC4t+C4reC4gQor4LiX4Lit4LiH4Lie4Lij4Liw4LiC4Li44LiZCivguJfguK3guIfguJ7guKXguLgKK+C4l+C5ieC4reC4h+C4nuC4peC4uAor4LiX4Lit4LiH4Lie4Lix4LiZ4LiK4LmI4Liy4LiHCivguJfguK3guIfguJ7guLHguJnguJTguLjguKUKK+C4l+C4reC4h+C4oOC4uQor4LiX4Lit4LiH4Lih4LmJ4Lin4LiZCivguJfguK3guIfguKLguYnguK3guKIKK+C4l+C4reC4h+C4peC4tOC4mQor4LiX4Lit4LiH4Lir4Lil4Liy4LiHCivguJfguK3guIfguYLguKvguKXguIcKK+C4l+C4reC4h+C4reC4uOC5hOC4owor4LiX4Lit4LiUCivguJfguK3guJkKK+C4l+C5iOC4reC4mQor4LiX4Lit4LiZ4LiL4Li04LilCivguJfguK3guJ/guJ/guLXguYgKK+C4l+C4reC4oQor4LiX4LmI4Lit4Lih4LmGCivguJfguK3guKIKK+C4l+C4reC4o+C5jOC4meC4suC5guC4lAor4LiX4Lit4LmA4Lij4Li14Lii4LihCivguJfguLAKK+C4l+C4sOC4h+C4seC4mQor4LiX4Liw4LiX4LmI4Liy4LinCivguJfguLDguYDguJfguLXguKLguJQKK+C4l+C4sOC4meC4hwor4LiX4Liw4LiZ4LiZCivguJfguLDguJnguLAKK+C4l+C4sOC4meC4sgor4LiX4Liw4LiZ4Liy4LiZCivguJfguLDguJnguLgKK+C4l+C4sOC4muC4uQor4LiX4Liw4LmA4Lia4Li14Lii4LiZCivguJfguLDguKHguLHguJTguJfguLDguYHguKHguIcKK+C4l+C4sOC4oeC4tuC4mQor4LiX4Liw4Lih4Li34LmI4LiZCivguJfguLDguYHguKHguYjguIcKK+C4l+C4sOC4ouC4suC4l+C4sOC5geC4ouC5geC4qgor4LiX4Liw4Lii4Liy4LiZCivguJfguLDguYDguKLguK3guJfguLDguKLguLLguJkKK+C4l+C4sOC5geC4ogor4LiX4Liw4Lij4LmI4Lit4LiX4Liw4LmB4Lij4LmICivguJfguLDguKXguKfguIcKK+C4l+C4sOC4peC4reC4gQor4LiX4Liw4Lil4LmI4Lit4LiX4Liw4Lil4LmI4LiyCivguJfguLDguKXguLHguIEKK+C4l+C4sOC4peC4seC4geC4l+C4sOC5geC4peC4hwor4LiX4Liw4Lil4Liy4LiiCivguJfguLDguKXguLTguYjguJkKK+C4l+C4sOC4peC4tuC5iOC4hwor4LiX4Liw4Lil4Li4CivguJfguLDguKXguLjguJfguLDguKXguLLguJQKK+C4l+C4sOC5gOC4pQor4LiX4Liw4LmA4Lil4LmJ4LiZCivguJfguLDguYDguKXguLLguLAKK+C4l+C4sOC4p+C4suC4ogor4LiX4Liw4LmA4Lin4LiZCivguJfguLHguIEKK+C4l+C4seC4geC4guC5jAor4LiX4Lix4LiB4LiC4Li04LiNCivguJfguLHguIHguILguLTguJMKK+C4l+C4seC4geC4guC4tOC4k+C4sgor4LiX4Lix4LiB4LiC4Li04LiT4Liy4Lia4LiWCivguJfguLHguIHguILguLTguJPguLLguKfguLHguI8KK+C4l+C4seC4geC4guC4tOC5guC4k+C4l+C4gQor4LiX4Lix4LiB4LiC4Li04LmE4LiT4Lii4Lia4Li44LiE4LiE4LilCivguJfguLHguIHguJfguK0KK+C4l+C4seC4geC4l+C4tOC4mQor4LiX4Lix4LiB4Lip4LiwCivguJfguLHguIHguKnguLIKK+C4l+C4seC4geC4qeC4tOC4kwor4LiX4Lix4LiB4Lip4Li04LiT4LiyCivguJfguLHguITguJjguYwKK+C4l+C4seC4hwor4LiX4Lix4LmI4LiHCivguJfguLHguYnguIcKK+C4l+C4seC4h+C4p+C4pQor4LiX4Lix4LiH4Lin4Li14LmJ4LiX4Lix4LiH4Lin4LilCivguJfguLHguIfguKrguYDguJXguJkKK+C4l+C4seC4k+C4keC4geC4o+C4o+C4oQor4LiX4Lix4LiT4LiR4LiG4Liy4LiVCivguJfguLHguJPguJHguJjguKMKK+C4l+C4seC4k+C4keC4meC4suC4ouC4gQor4LiX4Lix4LiT4LiR4LiZ4Li04LiE4LihCivguJfguLHguJPguJHguJnguLXguJXguLQKK+C4l+C4seC4k+C4keC5jOC4muC4mQor4LiX4Lix4LiT4LiR4Lib4Liy4Lio4LiBCivguJfguLHguJPguJHguKDguLHguKIKK+C4l+C4seC4k+C4keC4oeC4uOC4ggor4LiX4Lix4LiT4LiR4Lii4Liy4LiV4Lij4LiyCivguJfguLHguJPguJHguKfguLTguJfguKLguLIKK+C4l+C4seC4k+C4keC4quC4luC4suC4mQor4LiX4Lix4LiT4LiR4Liq4Lii4Liy4LihCivguJfguLHguJPguJHguLAKK+C4l+C4seC4k+C4keC4tOC4geC4sgor4LiX4Lix4LiT4LiR4Li04Lih4LiyCivguJfguLHguJPguJHguLUKK+C4l+C4seC4k+C4keC4teC4muC4lwor4LiX4Lix4LiUCivguJfguLHguJTguJfguLIKK+C4l+C4seC4lQor4LiX4Lix4LiZCivguJfguLHguJnguJXguYwKK+C4l+C4seC4meC4leC4tOC4mQor4LiX4Lix4LiZ4LiV4Li1CivguJfguLHguJnguJjguYwKK+C4l+C4seC4mgor4LiX4Lix4Lia4LmA4LiB4Lip4LiV4LijCivguJfguLHguJrguJfguLTguKEKK+C4l+C4seC4muC5gOC4peC5h+C4gQor4LiX4Lix4Lia4Liq4Lih4Li04LiH4LiE4Lil4LiyCivguJfguLHguJsKK+C4l+C4seC4m+C4mQor4LiX4Lix4LieCivguJfguLHguJ7guJ7guLAKK+C4l+C4seC4nuC4nuC4tQor4LiX4Lix4Lih4Lih4LiwCivguJfguLHguYjguKcKK+C4l+C4seC4qAor4LiX4Lix4Lio4LiZ4LmMCivguJfguLHguKjguJnguLAKK+C4l+C4seC4qOC4meC4sgor4LiX4Lix4Lio4LiZ4Li14Lii4LmMCivguJfguLHguKjguYTguJnguKIKK+C4l+C4seC4quC4meC4suC4meC4uOC4leC4o+C4tOC4ouC4sAor4LiX4Lix4Lis4LirCivguJfguLHguKzguKvguLTguIHguKPguJPguYwKK+C4l+C4seC4rOC4q+C4teC4geC4o+C4o+C4oQor4LiX4LiyCivguJfguYjguLIKK+C4l+C5ieC4sgor4LiX4Liy4LiBCivguJfguLLguIcKK+C4l+C5ieC4suC4hwor4LiX4Liy4LiQ4LiwCivguJfguLLguJDguLTguIHguLAKK+C4l+C4suC4kuC4sAor4LiX4Liy4LiS4Li04LiB4LiwCivguJfguLLguJkKK+C4l+C5iOC4suC4mQor4LiX4Liy4LiZ4LiB4Lix4LiT4LiR4LmMCivguJfguLLguJnguIHguLLguKEKK+C4l+C4suC4meC4leC5jAor4LiX4Liy4LiZ4LiV4Liw4Lin4Lix4LiZCivguJfguLLguJnguJjguKPguKPguKEKK+C4l+C4suC4meC4muC4lOC4tQor4LiX4Liy4LiZ4Lia4Liy4Lij4Lih4Li1CivguJfguLLguJnguJ4KK+C4l+C4suC4meC4qOC4teC4pQor4LiX4Liy4LiZ4Liq4Lih4Liy4Lia4Lix4LiV4Li0CivguJfguLLguJnguLLguJjguLTguJrguJTguLUKK+C4l+C4suC4mgor4LiX4Liy4LihCivguJfguYjguLLguKHguIHguKXguLLguIcKK+C4l+C4suC4oeC4o+C4tOC4gQor4LiX4Liy4LiiCivguJfguYnguLLguKIKK+C4l+C4suC4ouC4gQor4LiX4Liy4Lii4Lix4LiKCivguJfguLLguKLguLIKK+C4l+C4suC4ouC4suC4lAor4LiX4Liy4Lii4Liy4LiXCivguJfguLLguKPguIEKK+C4l+C4suC4o+C5jOC4i+C4suC4mQor4LiX4Liy4Lij4Lie4Li1CivguJfguLLguKPguLTguIHguLIKK+C4l+C4suC4o+C4uAor4LiX4Liy4Lij4Li44LiTCivguJfguLLguKPguLjguJPguIHguKPguKPguKEKK+C4l+C4suC4pwor4LiX4LmI4Liy4LinCivguJfguYnguLLguKcKK+C4l+C4suC4qQor4LiX4Liy4LiqCivguJfguLLguKrguLUKK+C4l+C4swor4LiX4Liz4LiH4LiZCivguJfguLPguJnguJoKK+C4l+C4s+C4meC4p+C4ogor4LiX4Liz4LiZ4Lit4LiHCivguJfguLPguJnguLLguKIKK+C4l+C4s+C4meC4uAor4LiX4Liz4LiZ4Li54LilCivguJfguLPguYDguJnguLIKK+C4l+C4s+C5gOC4meC4teC4ouC4mgor4LiX4Liz4LmA4LiZ4Li14Lii4LihCivguJfguLPguKHguLHguIcKK+C4l+C4s+C5hOC4oQor4LiX4Liz4Lil4Liy4LiiCivguJfguLPguYDguKUKK+C4l+C4s+C4p+C4mQor4LiX4Li04LiE4Lix4Lih4Lie4LijCivguJfguLTguIbguLHguKHguJ7guKMKK+C4l+C4tOC5ieC4hwor4LiX4Li04LiH4LmA4LiI4Lit4Lij4LmMCivguJfguLTguYnguIfguJbguYjguK3guJkKK+C4l+C4tOC5ieC4h+C4l+C4ueC4lAor4LiX4Li04LiKCivguJfguLTguI/guJDguIrguLjguIHguKPguKPguKEKK+C4l+C4tOC4j+C4kOC4sAor4LiX4Li04LiP4LiQ4Liy4LiZ4Li44LiE4LiV4Li0CivguJfguLTguJDguLQKK+C4l+C4tOC4lAor4LiX4Li04LiVCivguJfguLTguJkKK+C4l+C4tOC4meC4suC4lwor4LiX4Li04LieCivguJfguLTguJ7guKLguYwKK+C4l+C4tOC4nuC4sgor4LiX4Li04LihCivguJfguLTguYjguKEKK+C4l+C4tOC4oeC4l+C4reC4hwor4LiX4Li04LinCivguJfguLTguKfguIfguITguJUKK+C4l+C4tOC4p+C4l+C4seC4qOC4meC5jAor4LiX4Li04Lin4Liq4LiwCivguJfguLTguKfguLIKK+C4l+C4tOC4qAor4LiX4Li04Lio4LiyCivguJfguLUKK+C4l+C4teC5iAor4LiX4Li14LibCivguJfguLXguKEKK+C4l+C4teC4p+C4tQor4LiX4Li14LmA4Lit4LiZ4LiX4Li1CivguJfguLbguIEKK+C4l+C4tuC5iOC4hwor4LiX4Li24LmJ4LiHCivguJfguLbguJTguJfguLfguK0KK+C4l+C4tuC4meC4l+C4tuC4gQor4LiX4Li24LiaCivguJfguLbguKEKK+C4l+C4tuC5iOC4oQor4LiX4Li34LmI4LitCivguJfguLgKK+C4l+C4uOC4gQor4LiX4Li44LiB4LiCCivguJfguLjguIHguILguYwKK+C4l+C4uOC4geC4guC4seC4geC4qeC4seC4ogor4LiX4Li44LiB4LiPCivguJfguLjguIHguKnguJTguKMKK+C4l+C4uOC4geC4sAor4LiX4Li44LiB4Lix4LiHCivguJfguLjguIHguLnguKUKK+C4l+C4uOC4hOC4leC4sAor4LiX4Li44LiE4LiV4Li0CivguJfguLjguYjguIcKK+C4l+C4uOC5ieC4hwor4LiX4Li44LiH4LiH4LiwCivguJfguLjguIfguYDguJfguIcKK+C4l+C4uOC4iOC4iOC4tOC4k+C4k+C4sAor4LiX4Li44LiI4Lij4Li04LiVCivguJfguLjguI/guJDguLAKK+C4l+C4uOC4j+C4kOC4uOC4peC4peC4sAor4LiX4Li44LiUCivguJfguLjguJXguKfguLTguKXguLHguKHguJ7guLTguJXguKHguLLguKXguLIKK+C4l+C4uOC4leC4tOC4ouC4suC4quC4suC4rOC4qwor4LiX4Li44LiX4Lij4Lij4Lio4LiZ4LiZ4Li04Lii4LihCivguJfguLjguJkKK+C4l+C4uOC5iOC4mQor4LiX4Li44LiZ4LiZ4Li04Lih4Li04LiVCivguJfguLjguJnguLTguKLguKEKK+C4l+C4uOC4mgor4LiX4Li44Lia4LiX4Li5CivguJfguLjguJvguJvguLHguI3guI3guLIKK+C4l+C4uOC4nuC4nuC4o+C4o+C4kwor4LiX4Li44Lie4Lie4LilCivguJfguLjguJ7guJ7guKXguKDguLLguJ4KK+C4l+C4uOC4nuC4oOC4tOC4geC4guC4oOC4seC4ogor4LiX4Li44Lie4Lig4Li04LiB4LiC4Lix4LiZ4LiU4Lij4LiB4Lix4LibCivguJfguLjguKEKK+C4l+C4uOC5iOC4oQor4LiX4Li44LmJ4LihCivguJfguLjguKHguYLguJkKK+C4l+C4uOC4ogor4LiX4Li44LmJ4LiiCivguJfguLjguKPguJkKK+C4l+C4uOC4o+C4seC4luC4ouC4sgor4LiX4Li44Lij4Lix4LioCivguJfguLjguKPguLLguITguKEKK+C4l+C4uOC4o+C4suC4iOC4suC4owor4LiX4Li44Lij4Liy4LiY4Lin4LiyCivguJfguLjguYDguKPguKgKK+C4l+C4uOC5gOC4o+C4teC4ouC4mQor4LiX4Li44LmA4Lij4Li14Lii4LiZ4LmB4LiC4LiBCivguJfguLjguKXguLHguIHguJfguLjguYDguKUKK+C4l+C4uOC5gOC4peC4sgor4LiX4Li44Lin4Li04LiK4Liy4LiZCivguJfguLjguKfguLTguJgKK+C4l+C4uOC4qOC4teC4pQor4LiX4Li44Liq4Liq4LiwCivguJfguLjguKrguKrguLXguKUKK+C4l+C4uQor4LiX4Li54LmICivguJfguLnguYkKK+C4l+C4ueC5iOC4i+C4teC5iQor4LiX4Li54LiVCivguJfguLnguJXguLLguJnguLjguJfguLnguJUKK+C4l+C4ueC4mQor4LiX4Li54LiaCivguJfguLnguKEKK+C4l+C4ueC5gOC4o+C4meC4tOC4l+C4suC4mQor4LiX4Li54LilCivguJfguLnguYDguKXguLXguKLguKEKK+C4l+C4ueC4qeC4gQor4LmA4LiXCivguYDguJfguYgKK+C5gOC4l+C4hOC4meC4tOC4hAor4LmA4LiX4LiE4LiZ4Li14LmA4LiL4Li14Lii4LihCivguYDguJfguITguYLguJnguYLguKXguKLguLUKK+C5gOC4l+C4hwor4LmA4LiX4LmJ4LiHCivguYDguJfguYnguIfguYDguJXguYnguIcKK+C5gOC4l+C5ieC4h+C4l+C4ueC4lAor4LmA4LiX4LmH4LiICivguYDguJfguJnguJnguLTguKoKK+C5gOC4l+C5gOC4muC4tOC4peC5gOC4l+C4meC4meC4tOC4qgor4LmA4LiX4LibCivguYDguJfguJ4KK+C5gOC4l+C4nuC4l+C4suC4o+C4uQor4LmA4LiX4Lie4LiX4Liy4LmC4LijCivguYDguJfguJ7guLIKK+C5gOC4l+C4nuC4tOC4mQor4LmA4LiX4Lie4Li1CivguYDguJfguJ7guLXguJvguLHguIHguKnguLUKK+C5gOC4l+C5guC4ngor4LmA4LiX4Lih4Lib4Li44Lij4LiwCivguYDguJfguKPguLTguJQKK+C5gOC4l+C4peC4peC4ueC5gOC4o+C4teC4ouC4oQor4LmA4LiX4Lin4LiU4LiyCivguYDguJfguKfguJnguLAKK+C5gOC4l+C4p+C4oOC4suC4p+C4sAor4LmA4LiX4Lin4Lij4LiwCivguYDguJfguKfguKfguLLguIjguLTguIHguLAKK+C5gOC4l+C4p+C4p+C4suC4iOC4tOC4quC4o+C4k+C4hOC4oeC4meC5jAor4LmA4LiX4Lin4LioCivguYDguJfguKfguKkKK+C5gOC4l+C4p+C4quC4uOC4hOC4meC4mOC5jAor4LmA4LiX4Lin4LitCivguYDguJfguKfguLHguI0KK+C5gOC4l+C4p+C4seC4mQor4LmA4LiX4Lin4Li1CivguYDguJfguKgKK+C5gOC4l+C4qOC4gQor4LmA4LiX4Lio4LiZ4LmMCivguYDguJfguKjguJnguLIKK+C5gOC4l+C4qOC4sAor4LmA4LiX4Lir4LmMCivguYDguJfguYjguKvguYwKK+C5gOC4l+C5iOC4rQor4LmA4LiX4LmJ4LitCivguYDguJfguK3guI0KK+C5gOC4l+C4reC4oQor4LmA4LiX4Lit4Lij4LmM4LmA4Lia4Li14Lii4LihCivguYDguJfguK3guKPguYzguYLguKHguKHguLTguYDguJXguK3guKPguYwKK+C5gOC4l+C4reC4sOC4l+C4sAor4LmA4LiX4LiyCivguYDguJfguYjguLIKK+C5gOC4l+C5ieC4sgor4LmA4LiX4LmJ4Liy4LiK4LmJ4Liy4LiHCivguYDguJfguYjguLLguKHguLHguIEKK+C5gOC4l+C5ieC4suC4ouC4suC4ouC4oeC5iOC4reC4oQor4LmA4LiX4LmI4Liy4Lij4Li24LiHCivguYDguJfguYnguLLguKrguLLguJkKK+C5gOC4l+C4suC4sOC4q+C5jAor4LmA4LiX4Li04LiBCivguYDguJfguLTguYjguIcKK+C5gOC4l+C4tOC4h+C4muC4reC4hwor4LmA4LiX4Li04LiUCivguYDguJfguLTguJkKK+C5gOC4l+C4tOC4mgor4LmA4LiX4Li04Lia4LmGCivguYDguJfguLTguYnguKEKK+C5gOC4l+C4teC4ouC4hwor4LmA4LiX4Li14Lii4LiZCivguYDguJfguLXguYnguKLguJkKK+C5gOC4l+C4teC4ouC4mgor4LmA4LiX4Li14Lii4LijCivguYDguJfguLXguYnguKLguKMKK+C5gOC4l+C4teC4ouC4pwor4LmA4LiX4Li14LmI4Lii4LinCivguYDguJfguLfguK0KK+C5gOC4l+C4t+C5iOC4rQor4LmA4LiX4Li34LmJ4LitCivguYDguJfguLfguK3guIEKK+C5gOC4l+C4t+C4reC4geC5gOC4guC4sgor4LmA4LiX4Li34Lit4LiB4LmA4LiW4Liy4LmA4Lir4Lil4LmI4Liy4LiB4LitCivguYDguJfguLfguK3guJkKK+C5geC4l+C5iAor4LmB4LiX4LmJCivguYHguJfguYfguIHguIvguLXguYgKK+C5geC4l+C4hwor4LmB4LiX4LmI4LiHCivguYHguJfguYnguIcKK+C5geC4l+C5h+C4h+C4geC5jOC4meC5ieC4swor4LmB4LiX4LiH4LiX4Lin4LiiCivguYHguJfguIfguKfguLTguKrguLHguKIKK+C5geC4l+C4leC4ouC5jAor4LmB4LiX4LiZCivguYHguJfguYjguJkKK+C5geC4l+C4meC5gOC4iOC4meC4leC5jAor4LmB4LiX4LiZ4LiX4Liy4Lil4Lix4LihCivguYHguJfguJoKK+C5geC4l+C4o+C4gQor4LmB4LiX4Lij4LiB4LmA4LiV4Lit4Lij4LmMCivguYHguJfguKXguYDguKXguLXguKLguKEKK+C5geC4l+C4sAor4LmC4LiXCivguYLguJfguYgKK+C5guC4l+C4geC5gOC4l+C4gQor4LmC4LiX4LiH4LmGCivguYLguJfguIfguYDguJfguIcKK+C5guC4l+C4k+C4sAor4LmC4LiX4LiY4LiBCivguYLguJfguJkKK+C5guC4l+C4meC5guC4l+C5iAor4LmC4LiX4Lih4LiZ4Lix4LiqCivguYLguJfguKPguJMKK+C5guC4l+C4o+C4oQor4LmC4LiX4Lij4Liy4Lin4Li04LiBCivguYLguJfguKXguLIKK+C5guC4l+C4qQor4LmC4LiX4Lip4LiB4Lij4LiT4LmMCivguYLguJfguKnguITguLjguJMKK+C5guC4l+C4qeC4leC4o+C4seC4ogor4LmC4LiX4Lip4LiX4Lix4LiT4LiR4LmMCivguYLguJfguKnguYLguJ7guKIKK+C5guC4l+C4qeC4oeC4q+C4seC4meC4leC5jAor4LmC4LiX4Lip4LiyCivguYLguJfguKrguLAKK+C5guC4l+C5guC4qgor4LmC4LiX4Lir4Lis4LiwCivguYLguJfguKvguKzguLTguJnguLUKK+C5hOC4lwor4LmE4LiX4LmJCivguYTguJfguIHguK0KK+C5hOC4l+C5gOC4l+C5gOC4meC4teC4ouC4oQor4LmE4LiX4Lif4Lit4Lii4LiU4LmMCivguYTguJfguKIKK+C5hOC4l+C4ouC4mOC4o+C4o+C4oQor4LmE4LiX4LijCivguYTguJfguKPguK3guKLguJTguYwKK+C5hOC4l+C4p+C4sAor4LiYCivguJjguIcKK+C4mOC4h+C4geC5jAor4LiY4LiKCivguJjguIrguLUKK+C4mOC4leC4o+C4kAor4LiY4LiZCivguJjguJnguLHguIcKK+C4mOC4meC4suC4hOC4suC4owor4LiY4LiZ4Liy4LiT4Lix4LiV4Li0CivguJjguJnguLLguJXguKEKK+C4mOC4meC4suC4mOC4suC4owor4LiY4LiZ4Liy4LiY4Li04Lia4LiU4Li1CivguJjguJnguLLguJjguLTguJsKK+C4mOC4meC4suC4mOC4tOC4m+C4seC4leC4ouC5jAor4LiY4LiZ4Liy4LiZ4Li44LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJjguJnguLLguKPguLHguIHguKnguYwKK+C4mOC4meC4tOC4lQor4LiY4LiZ4Li04Lip4LiQ4LiyCivguJjguJnguLgKK+C4mOC4meC4uQor4LiY4LmA4LiZ4LioCivguJjguYDguJnguKjguKfguKMKK+C4mOC5guC4meC4m+C4iOC4seC4ogor4LiY4LmE4LiZ4Lio4Lin4Lij4Lij4Lii4LmMCivguJjguKEKK+C4mOC4oeC4geC4o+C4gQor4LiY4LijCivguJjguKPguIcKK+C4mOC4o+C4kwor4LiY4Lij4LiT4Li04LiZCivguJjguKPguJPguLTguJnguJfguKPguYwKK+C4mOC4o+C4k+C4tOC4qAor4LiY4Lij4LiT4Li04Lio4LijCivguJjguKPguJPguLTguKjguKfguKPguYwKK+C4mOC4o+C4k+C4tQor4LiY4Lij4Lih4Liy4LiZCivguJjguKPguKPguKEKK+C4mOC4o+C4o+C4oeC4sAor4LiY4Lij4LiyCivguJjguKPguLTguKnguJXguKPguLUKK+C4mOC5gOC4o+C4qAor4LiY4LmA4Lij4Lip4LiV4Lij4Li1CivguJjguKfguLHguIoKK+C4mOC4seC4h+C4gQor4LiY4Lix4LiKCivguJjguLHguI0KK+C4mOC4seC4meC4ouC4sgor4LiY4Lix4LiZ4Lii4Liy4Lin4Liy4LiXCivguJjguLHguJnguKfguLLguITguKEKK+C4mOC4seC4oeC4oeC4sAor4LiY4Liy4LiU4LiyCivguJjguLLguJXguKPguLUKK+C4mOC4suC4leC4p+C4suC4geC4owor4LiY4Liy4LiV4Li4CivguJjguLLguJXguLjguKHguKHguLTguKrguKrguLIKK+C4mOC4suC4meC4tOC4mQor4LiY4Liy4LiZ4Li04LiZ4LiX4Lij4LmMCivguJjguLLguJnguLUKK+C4mOC4suC4owor4LiY4Liy4Lij4LiB4Liz4LiZ4Lix4LilCivguJjguLLguKPguITguLPguJnguLHguKUKK+C4mOC4suC4o+C4kwor4LiY4Liy4Lij4LiT4LiwCivguJjguLLguKPguJPguLIKK+C4mOC4suC4o+C4sgor4LiY4Liy4Lip4LiV4Lij4Li1CivguJjguLPguKHguKPguIfguITguYwKK+C4mOC4s+C4o+C4hwor4LiY4Li04LiU4LiyCivguJjguLTguJXguLQKK+C4mOC4teC4o+C4sAor4LiY4Li44LiKCivguJjguLjguJTguIfguITguYwKK+C4mOC4uOC4lQor4LiY4Li44LiV4LiV4LiwCivguJjguLjguKEKK+C4mOC4uOC4oeC4sAor4LiY4Li44Lij4LiwCivguJjguLjguKPguLMKK+C4mOC4uOC4peC4tQor4LiY4Li44Lir4Lij4LmI4LizCivguJjguLnguJsKK+C5gOC4mOC4meC4uAor4LmA4LiY4LitCivguYDguJjguLXguKLguKMKK+C5guC4mOC5iAor4LmC4LiY4Lin4LiZCivguJkKK+C4meC4gQor4LiZ4LiB4LiB4Lij4Liw4LiX4Li44LiHCivguJnguIHguLjguKUKK+C4meC4ggor4LiZ4LiECivguJnguITguKMKK+C4meC4hOC4o+C4geC4seC4k+C4keC5jAor4LiZ4LiE4Lij4Lia4Liy4LilCivguJnguITguKPguKHguLHguJPguJHguJnguLIKK+C4meC4hOC4o+C4o+C4seC4kAor4LiZ4LiE4Lij4Lin4Liy4Liq4Li1CivguJnguITguKPguYLguKrguKDguLTguJPguLUKK+C4meC4hOC4o+C5guC4quC5gOC4oOC4k+C4tQor4LiZ4LiE4Lij4Lir4Lil4Lin4LiHCivguJnguITguKPguLLguJfguKMKK+C4meC4hOC4o+C4tOC4meC4l+C4o+C5jAor4LiZ4LiE4LmA4Lij4LioCivguJnguIcKK+C4meC4h+C4hOC4uOC4kAor4LiZ4LiXCivguJnguJfguLUKK+C4meC4meC4leC4o+C4sgor4LiZ4LiZ4LiX4LmMCivguJnguJnguJfguIEKK+C4meC4meC4l+C4o+C4tQor4LiZ4LiZ4LiX4Lil4Li1CivguJnguJnguJfguLQKK+C4meC4mgor4LiZ4Lib4Li44LiH4Liq4LiB4Lil4Li04LiH4LiE4LmMCivguJnguJvguLjguIfguKrguIHguKXguLbguIfguITguYwKK+C4meC4nuC5gOC4geC4leC4meC5jAor4LiZ4Lie4LmA4LiB4LmJ4LiyCivguJnguJ7guITguLjguJMKK+C4meC4nuC5gOC4hOC4o+C4suC4sOC4q+C5jAor4LiZ4Lie4LiZ4Li04LiVCivguJnguJ7guJvguI7guKUKK+C4meC4nuC4nuC4pQor4LiZ4Lie4Lie4Lin4LiHCivguJnguJ7guJ7guLHguJkKK+C4meC4nuC4o+C4seC4leC4meC5jAor4LiZ4Lie4Lio4LiBCivguJnguJ7guKjguLnguKUKK+C4meC4oOC4geC4suC4meC4leC5jAor4LiZ4Lig4LiE4LiKCivguJnguKDguITguJXguLQKK+C4meC4oOC4iOC4owor4LiZ4Lig4LiI4Lix4LiB4Lip4Li4CivguJnguKDguJTguKUKK+C4meC4oOC4l+C4p+C4teC4mwor4LiZ4Lig4Lib4Lij4Liy4LiTCivguJnguKDguKHguJPguJHguKUKK+C4meC4oOC4oeC4k+C4tQor4LiZ4Lig4Lih4Lix4LiiCivguJnguKDguKPguLnguJsKK+C4meC4oOC5gOC4o+C4k+C4uQor4LiZ4Lig4Lin4Li04LiW4Li1CivguJnguKDguKjguLnguKUKK+C4meC4oOC4quC4tOC4meC4mOC4uOC5jAor4LiZ4Lig4LiyCivguJnguKDguLLguIHguLLguKgKK+C4meC4oOC4suC4peC4seC4ogor4LiZ4LihCivguJnguKHguJnguLLguJkKK+C4meC4oeC4sAor4LiZ4Lih4Lix4LiB4LiB4Liy4LijCivguJnguKHguLHguKrguIHguLLguKMKK+C4meC4oeC4suC4iwor4LiZ4Lii4LiZ4LiwCivguJnguKLguJnguLIKK+C4meC4ouC4sAor4LiZ4Lii4Lix4LiB4Lip4LmMCivguJnguKPguIEKK+C4meC4o+C4geC4suC4owor4LiZ4Lij4Liy4LiY4Li04LibCivguJnguKPguLTguJnguJfguKPguYwKK+C4meC4o+C4tOC4qAor4LiZ4Lij4Li04Lio4Lin4LijCivguJnguKPguLUKK+C4meC5gOC4o+C4meC4l+C4o+C4quC4ueC4owor4LiZ4LmA4Lij4LioCivguJnguYDguKPguKjguKfguKMKK+C4meC5gOC4o+C4qOC4p+C4o+C5jOC4iuC4meC4iuC5ieC4suC4hwor4LiZ4LmA4Lij4Lio4Li54LijCivguJnguKTguYLguIbguKkKK+C4meC4pOC4leC4ouC5jAor4LiZ4Lik4LiZ4Liy4LiXCivguJnguKTguJ7guLLguJkKK+C4meC4pOC4oeC4pQor4LiZ4Lik4Lih4Liy4LiTCivguJnguKTguKHguLTguJUKK+C4meC4peC4suC4jwor4LiZ4Lil4Li04LiZCivguJnguKfguIHguLAKK+C4meC4p+C4lAor4LiZ4Lin4LiZ4Li04Lii4Liy4LiiCivguJnguKfguKEKK+C4meC5iOC4p+C4oQor4LiZ4Lin4LiiCivguJnguKfguKUKK+C4meC4p+C4reC4o+C4q+C4suC4l+C4tOC4hOC4uOC4kwor4LiZ4Lin4Lix4LiH4LiE4Liq4Lix4LiV4LiW4Li44Lio4Liy4Liq4LiZ4LmMCivguJnguKfguLLguKPguLAKK+C4meC4p+C4suC4reC4o+C4q+C4suC4mOC4tOC4hOC4uOC4kwor4LiZ4Lir4Liy4LiU4LiBCivguJnguKvguLLguJkKK+C4meC4q+C4suC4o+C4uAor4LiZ4Lir4Li44LiVCivguJnguKwKK+C4meC4rOC4mwor4LiZ4LitCivguJnguK3guIEKK+C4meC4reC4hwor4LiZ4LmI4Lit4LiHCivguJnguYnguK3guIcKK+C4meC5iOC4reC4h+C5geC4meC5iOC4hwor4LiZ4Lit4LiVCivguJnguK3guJkKK+C4meC4reC4mgor4LiZ4LmJ4Lit4LihCivguJnguYnguK3guKIKK+C4meC5ieC4reC4ouC4q+C4meC5iOC4sgor4LiZ4LmJ4Lit4Lii4LmC4Lir4LiZ4LmI4LiHCivguJnguLAKK+C4meC4sOC5geC4meC5iOC4hwor4LiZ4Lix4LiBCivguJnguLHguIHguIHguLAKK+C4meC4seC4geC4guC4seC4lQor4LiZ4Lix4LiB4LiH4Liy4LiZCivguJnguLHguIHguJXguLAKK+C4meC4seC4geC4owor4LiZ4Lix4LiB4Lip4Lix4LiV4LijCivguJnguLHguIHguKrguKPguLLguIoKK+C4meC4seC4ggor4LiZ4Lix4LiECivguJnguLHguITguITguLAKK+C4meC4seC4hwor4LiZ4Lix4LmI4LiHCivguJnguLHguIfguITguLHguKUKK+C4meC4seC4iAor4LiZ4Lix4LiPCivguJnguLHguI/guIEKK+C4meC4seC4kQor4LiZ4Lix4LiUCivguJnguLHguJTguJTguLIKK+C4meC4seC4leC4luC4uOC5jAor4LiZ4Lix4LmI4LiZCivguJnguLHguYnguJkKK+C4meC4seC4meC4l+C4l+C4suC4ouC4tQor4LiZ4Lix4LiZ4LiX4LiZ4LmMCivguJnguLHguJnguJfguJnguLLguIHguLLguKMKK+C4meC4seC4meC4l+C4tAor4LiZ4Lix4LiaCivguJnguLHguJrguJvguKPguLDguKrguLIKK+C4meC4seC4muC4m+C4o+C4sOC4quC4suC4reC4sOC5hOC4owor4LiZ4Lix4LiiCivguJnguLHguKLguJnguYwKK+C4meC4seC4ouC4meC4sgor4LiZ4Lix4LinCivguJnguLIKK+C4meC5iOC4sgor4LiZ4LmJ4LiyCivguJnguLLguIEKK+C4meC4suC4geC4muC4uOC4lAor4LiZ4Liy4LiB4Liy4Liq4Liy4Lir4Lij4Li1CivguJnguLLguIQKK+C4meC4suC4hOC4owor4LiZ4Liy4LiE4LiyCivguJnguLLguITguLLguKfguYLguKXguIEKK+C4meC4suC4hOC4suC4quC4meC5jAor4LiZ4Liy4LiE4Li04LiZ4LiX4Lij4LmMCivguJnguLLguITguLUKK+C4meC4suC5gOC4hOC4meC4l+C4o+C5jAor4LiZ4Liy4LmA4LiE4LioCivguJnguLLguYDguITguKjguKfguKMKK+C4meC4suC5guC4hOC4o+C4hOC4tOC4meC4l+C4owor4LiZ4Liy4LiHCivguJnguLLguIfguJnguKfguKUKK+C4meC4suC4h+C4meC4ueC4mQor4LiZ4Liy4LiH4LmB4Lii4LmJ4LihCivguJnguLLguIfguKPguKEKK+C4meC4suC4h+C5gOC4peC5h+C4lAor4LiZ4Liy4LiH4LmA4Lil4Li04LmJ4LiHCivguJnguLLguIfguKvguIfguKrguYwKK+C4meC4suC4h+C4reC4suC4ogor4LiZ4Liy4LiH4LmB4Lit4LmI4LiZCivguJnguLLguIvguLIKK+C4meC4suC4i+C4tQor4LiZ4Liy4LiPCivguJnguLLguI/guIEKK+C4meC4suC4j+C4geC4o+C4o+C4oQor4LiZ4Liy4LiP4LiU4LiZ4LiV4Lij4Li1CivguJnguLLguI/guKjguLTguKXguJvguYwKK+C4meC4suC4lAor4LiZ4Liy4LiWCivguJnguLLguJcKK+C4meC4suC4l+C4tQor4LiZ4Liy4LiZCivguJnguYjguLLguJkKK+C4meC4suC4meC4seC4hOC4o+C4qgor4LiZ4Liy4LiZ4Lix4LiV4LinCivguJnguLLguJnguLHguJvguIHguLLguKMKK+C4meC4suC4meC4sgor4LiZ4Liy4LmA4LiZ4LiBCivguJnguLLguJoKK+C4meC4suC4oOC4tAor4LiZ4Liy4Lig4Li1CivguJnguLLguKEKK+C4meC4suC4oeC4muC4seC4leC4owor4LiZ4Liy4Lih4Lib4Liy4LiB4LiB4LiyCivguJnguLLguKHguYHguJ3guIcKK+C4meC4suC4oeC4quC4geC4uOC4pQor4LiZ4Liy4LiiCivguJnguYjguLLguKIKK+C4meC4suC4ouC4gQor4LiZ4Liy4Lii4Li04LiB4LiyCivguJnguLLguKPguJcKK+C4meC4suC4o+C4sgor4LiZ4Liy4Lij4Liy4Lii4LiT4LmMCivguJnguLLguKPguLUKK+C4meC4suC5gOC4o+C4qAor4LiZ4Liy4Lil4Li04Lin4Lix4LiZCivguJnguLLguKXguLUKK+C4meC4suC4pwor4LiZ4LmJ4Liy4LinCivguJnguLLguKfguLIKK+C4meC4suC4p+C4tOC4gQor4LiZ4Liy4Lin4Li04LiZCivguJnguLLguKfguLUKK+C4meC4suC5gOC4p+C4qAor4LiZ4Liy4LioCivguJnguLLguKrguJnguLAKK+C4meC4suC4quC4sgor4LiZ4Liy4Liq4Li04LiBCivguJnguLLguKzguLTguIHguLIKK+C4meC4suC4rOC4tOC5gOC4gQor4LiZ4Liy4Lis4Li1CivguJnguLMKK+C4meC5ieC4swor4LiZ4LmJ4Liz4LiV4Liw4LiB4Li5CivguJnguYnguLPguJXguLDguYLguIEKK+C4meC4tAor4LiZ4Li04LiB4LiC4LiwCivguJnguLTguIHguILguLHguJnguJXguYwKK+C4meC4tOC4geC5gOC4guC4mwor4LiZ4Li04LiB4LijCivguJnguLTguIHguKPguK3guKLguJTguYwKK+C4meC4tOC4geC4suC4ogor4LiZ4Li04LmA4LiB4Li04LilCivguJnguLTguITguKEKK+C4meC4tOC4hOC4o+C4meC4luC5jAor4LiZ4Li04LiE4Lir4LiwCivguJnguLTguITguKvguLTguJUKK+C4meC4tOC4hOC4suC4peC4seC4ogor4LiZ4Li04LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJnguLTguYLguITguJXguLTguJkKK+C4meC4tOC5guC4hOC4o+C4mAor4LiZ4Li04LmC4LiE4Lij4LihCivguJnguLTguIcKK+C4meC4tOC5iOC4hwor4LiZ4Li04LiICivguJnguLTguJQKK+C4meC4tOC4leC4ouC5jAor4LiZ4Li04LiV4Li0CivguJnguLTguJfguKMKK+C4meC4tOC4l+C4o+C4o+C4qOC4geC4suC4owor4LiZ4Li04LiX4Lij4LiyCivguJnguLTguJfguLHguKjguJnguYwKK+C4meC4tOC4l+C4suC4hgor4LiZ4Li04LiX4Liy4LiZCivguJnguLTguYDguJfguKgKK+C4meC4tOC5gOC4l+C4qOC4geC5jAor4LiZ4Li04LiY4Liy4LiZCivguJnguLTguJjguLQKK+C4meC4tOC4meC4l+C4sgor4LiZ4Li04LiZ4LiZ4LiwCivguJnguLTguJnguJnguLLguJcKK+C4meC4tOC4meC4q+C4uOC4lQor4LiZ4Li04LiZ4Liy4LiXCivguJnguLTguJrguLLguJUKK+C4meC4tOC4m+C4o+C4tOC4ouC4suC4ogor4LiZ4Li04Lib4Lix4LiI4LiB4Liy4LijCivguJnguLTguJ7guIjguJnguYwKK+C4meC4tOC4nuC4meC4mOC5jAor4LiZ4Li04Lie4Lie4Liy4LiZCivguJnguLTguJ7guJ7guLTguJfguLIKK+C4meC4tOC4nuC4seC4l+C4mOC5jAor4LiZ4Li04Lie4Lix4LiZ4LiY4LmMCivguJnguLTguJ7guLTguJcKK+C4meC4tOC5gOC4nuC4lwor4LiZ4Li04Lig4LiyCivguJnguLTguYjguKEKK+C4meC4tOC5ieC4oQor4LiZ4Li04Lih4LiZ4LiV4LmMCivguJnguLTguKHguKHguLLguJkKK+C4meC4tOC4oeC4oeC4suC4meC4o+C4lOC4tQor4LiZ4Li04Lih4Li04LiVCivguJnguLTguKLguJUKK+C4meC4tOC4ouC4oQor4LiZ4Li04Lii4Lii4Liy4LiZCivguJnguLTguKLguKLguLLguJnguLTguIEKK+C4meC4tOC4ouC4seC4leC4tOC4meC4tOC4ouC4oQor4LiZ4Li04Lii4Liy4LihCivguJnguLTguKLguLLguKIKK+C4meC4tOC4ouC4uOC4lQor4LiZ4Li04Lij4Lie4Lix4LiV4LijCivguJnguLTguKPguKHguLLguJMKK+C4meC4tOC4o+C4oeC4tOC4lQor4LiZ4Li04Lij4Lix4Lie4Lie4Li44LiXCivguJnguLTguKPguLLguKgKK+C4meC4tOC4o+C4uOC4geC4leC4tAor4LiZ4Li04Lij4Li44LiV4LiV4Li0CivguJnguLTguKPguLjguJfguJjguYwKK+C4meC4tOC5guC4o+C4mAor4LiZ4Li04LilCivguJnguLTguYjguKcKK+C4meC4tOC5ieC4pwor4LiZ4Li04Lin4LiE4Lil4Li14Lit4Li04LiBCivguJnguLTguKfguYDguITguKXguLXguKLguKPguYwKK+C4meC4tOC4p+C5gOC4hOC4peC4teC4ouC4qgor4LiZ4Li04Lin4LiV4Lij4Lit4LiZCivguJnguLTguKfguKPguJPguYwKK+C4meC4tOC4p+C4seC4leC4meC5jAor4LiZ4Li04Lin4Lix4LiV4Li0CivguJnguLTguKfguLLguJUKK+C4meC4tOC4p+C4suC4qgor4LiZ4Li04Lin4Liy4Liq4LiZ4LmMCivguJnguLTguYDguKfguKgKK+C4meC4tOC5gOC4p+C4qOC4meC5jAor4LiZ4Li04Lio4LiyCivguJnguLTguKnguIHguKPguKEKK+C4meC4tOC4qeC4suC4lwor4LiZ4Li04Liq4Liq4Lix4LiE4LiE4Li04Lii4Lin4Lix4LiV4LiW4Li4CivguJnguLTguKrguKrguLHguITguITguLXguKLguYwKK+C4meC4tOC4quC4seC4igor4LiZ4Li04Liq4Lix4LiiCivguJnguLTguKrguLLguJcKK+C4meC4tOC4quC4tOC4lQor4LiZ4Li04Liq4Li14LiX4LiZ4LiwCivguJnguLTguYDguKrguJgKK+C4meC4tOC4q+C4teC4meC4sAor4LiZ4Li14LmICivguJnguLXguYkKK+C4meC4teC4leC4tAor4LiZ4Li14LmI4LiZ4Lix4LiZCivguJnguLXguKPguJnguLLguJcKK+C4meC4teC4reC4reC4mQor4LiZ4Li14LmC4Lit4LiU4Li14LmA4Lih4Li14Lii4LihCivguJnguLbguIEKK+C4meC4tuC4hwor4LiZ4Li24LmI4LiHCivguJnguLgKK+C4meC4uOC4hwor4LiZ4Li44LmI4LiHCivguJnguLjguIoKK+C4meC4uOC4lAor4LiZ4Li44LiVCivguJnguLjguYjguJkKK+C4meC4uOC5ieC4ogor4LiZ4Li54LiZCivguJnguLnguYjguJkKK+C4meC4ueC5ieC4mQor4LmA4LiZ4LiB4LiC4LiwCivguYDguJnguIHguILguLHguKEKK+C5gOC4meC4hOC5hOC4lwor4LmA4LiZ4LiVCivguYDguJnguJXguJrguK3guKUKK+C5gOC4meC4leC4owor4LmA4LiZ4LiV4Li0CivguYDguJnguYnguJkKK+C5gOC4meC4muC4tOC4p+C4peC4sgor4LmA4LiZ4Lib4LiI4Li54LiZCivguYDguJnguJvguJfguLnguYDguJnguLXguKLguKEKK+C5gOC4meC4oeC4tAor4LmA4LiZ4Lih4Li04LiV4LiB4LiwCivguYDguJnguKHguLTguJnguJjguKMKK+C5gOC4meC4ogor4LmA4LiZ4Lii4Lii4LiwCivguYDguJnguKPguIHguLHguJPguJDguLUKK+C5gOC4meC4o+C4hOC4uOC4kwor4LmA4LiZ4Lij4LmA4LiX4LioCivguYDguJnguKPguJnguLLguJYKK+C5gOC4meC4o+C4oeC4tOC4lQor4LmA4LiZ4Lij4Liw4Lie4Li54Liq4Li1CivguYDguJnguKnguLLguJcKK+C5gOC4meC4rQor4LmA4LiZ4LmJ4LitCivguYDguJnguLIKK+C5gOC4meC5iOC4sgor4LmA4LiZ4Liy4Lin4LiZ4Li04LiVCivguYDguJnguLTguJkKK+C5gOC4meC4tOC5iOC4mQor4LmA4LiZ4Li04LiaCivguYDguJnguLXguKLguIcKK+C5gOC4meC4teC4ouC4mQor4LmA4LiZ4Li14Lii4LihCivguYDguJnguLXguKLguKMKK+C5gOC4meC4teC4ouC4o+C4l+C4uOC4geC4guC5jAor4LmA4LiZ4Li14Lii4Lij4LmA4LiX4LioCivguYDguJnguLXguKLguKPguJnguLLguJcKK+C5gOC4meC4t+C5ieC4rQor4LmA4LiZ4Li34Lit4LiHCivguYDguJnguLfguYjguK3guIcKK+C5gOC4meC4t+C4reC4ogor4LmA4LiZ4Li34LmJ4Lit4LmA4Lii4Li34LmJ4LitCivguYHguJnguYgKK+C5geC4meC5iOC4hwor4LmB4LiZ4LmI4LiZCivguYHguJnguJoKK+C5geC4meC4oQor4LmB4LiZ4LinCivguYHguJnguYjguKcKK+C5geC4meC4sAor4LmB4LiZ4Liw4LmB4Lir4LiZCivguYLguJkKK+C5guC4meC5ieC4lQor4LmC4LiZ4LiZCivguYLguJnguYjguJkKK+C5guC4meC5ieC4mQor4LmC4LiZ4LmA4LiZCivguYLguJnguYDguJrguYDguKXguLXguKLguKEKK+C5guC4meC5ieC4oQor4LmC4LiZ4Lih4Lie4Lij4Lij4LiTCivguYLguJnguKPguLIKK+C5guC4meC4o+C4tQor4LmD4LiZCivguYTguJkKK+C5hOC4meC4leC5jOC4hOC4peC4seC4mgor4LmE4LiZ4LmC4LiV4Lij4LmA4LiI4LiZCivguYTguJnguJfguYzguITguKXguLHguJoKK+C5hOC4meC4peC4reC4mQor4LmE4LiZ4Lit4Liy4LiL4Li14LiZCivguYTguJnguYLguK3guYDguJrguLXguKLguKEKK+C4mgor4Lia4LmICivguJrguIEKK+C4muC4hwor4Lia4LmI4LiHCivguJrguIfguIHguYwKK+C4muC5iuC4h+C5gOC4muC5iuC4hwor4Lia4LiH4Liq4Li44LmMCivguJrguIfguK3guLHguJrguJrguIfguKPguLIKK+C4muC5iOC4h+C4reC4seC4muC4muC5iOC4h+C4o+C4sgor4Lia4LiPCivguJrguJQKK+C4muC4lOC4tOC4meC4l+C4o+C5jAor4Lia4LiU4Li1CivguJrguJYKK+C4muC4lwor4Lia4LiX4LiZ4Li1CivguJrguJfguJrguIfguIHguIoKK+C4muC4l+C4muC4h+C4quC4uOC5jAor4Lia4LiX4Lia4Li54Lij4LiT4LmMCivguJrguJfguJ7guLHguJnguJjguYwKK+C4muC4l+C4oOC4suC4iuC4meC5jAor4Lia4LiX4Lig4Liy4LiK4LiZ4Li14Lii4LmMCivguJrguJfguKHguLLguKXguKLguYwKK+C4muC4l+C4o+C4seC4igor4Lia4LiX4Lin4LmA4Lij4LioCivguJrguJfguKfguKXguLHguI3guIrguYwKK+C4muC4l+C4p+C4suC4owor4Lia4LiX4Lio4Lij4Li1CivguJrguJfguKjguLHguJ7guJfguYwKK+C4muC4l+C4quC4luC4suC4mQor4Lia4LiX4Liy4Lih4Lie4Li44LiKCivguJrguYLguJfguJkKK+C4muC4mQor4Lia4LmI4LiZCivguJrguJ7guLTguJXguKMKK+C4muC4nuC4tOC4mAor4Lia4LmI4LihCivguJrguKPguKEKK+C4muC4o+C4oeC4seC4leC4luC5jAor4Lia4Lij4Lij4LiB4Lin4LiUCivguJrguKPguKPguIjguIcKK+C4muC4o+C4o+C4iOC4luC4o+C4k+C5jAor4Lia4Lij4Lij4LiI4LiaCivguJrguKPguKPguIjguKfguJoKK+C4muC4o+C4o+C4iOC4uAor4Lia4Lij4Lij4LmA4LiI4Li04LiUCivguJrguKPguKPguJMKK+C4muC4o+C4o+C4k+C4suC4geC4suC4owor4Lia4Lij4Lij4LiT4Liy4LiE4LihCivguJrguKPguKPguJPguLLguJjguLTguIHguLLguKMKK+C4muC4o+C4o+C4k+C4suC4meC4uOC4geC4o+C4oQor4Lia4Lij4Lij4LiT4Liy4Lij4Lix4LiB4Lip4LmMCivguJrguKPguKPguJPguLLguKPguLHguIHguKnguKjguLLguKrguJXguKPguYwKK+C4muC4o+C4o+C4lOC4sgor4Lia4Lij4Lij4LiU4Liy4LiBCivguJrguKPguKPguJTguLLguKjguLHguIHguJTguLTguYwKK+C4muC4o+C4o+C4leC4suC4meC4tuC4gQor4Lia4Lij4Lij4LiW4LijCivguJrguKPguKPguJfguKEKK+C4muC4o+C4o+C4l+C4seC4lAor4Lia4Lij4Lij4LiX4Lix4LiaCivguJrguKPguKPguJfguLLguJkKK+C4muC4o+C4o+C4l+C4uOC4gQor4Lia4Lij4Lij4LmA4LiX4LiyCivguJrguKPguKPguYDguJfguLfguK3guIcKK+C4muC4o+C4o+C4ngor4Lia4Lij4Lij4Lie4LmMCivguJrguKPguKPguJ7guIrguLIKK+C4muC4o+C4o+C4nuC4iuC4tOC4lQor4Lia4Lij4Lij4Lie4LiVCivguJrguKPguKPguKLguIcKK+C4muC4o+C4o+C4ouC4h+C4hOC5jAor4Lia4Lij4Lij4Lii4LmA4Lin4LiB4Lip4LiB4LmMCivguJrguKPguKPguKLguLLguIHguLLguKgKK+C4muC4o+C4o+C4ouC4suC4ogor4Lia4Lij4Lij4Lil4Lix4LiiCivguJrguKPguKPguKXguLLguKIKK+C4muC4o+C4o+C4peC4uAor4Lia4Lij4Lij4LmA4Lil4LiHCivguJrguKPguKPguYLguKXguKEKK+C4muC4o+C4o+C4qeC4seC4lwor4Lia4Lij4Lij4Liq4LiaCivguJrguKPguKPguKrguJ4KK+C4muC4o+C4o+C4quC4oQor4Lia4Lij4Lij4Liq4Liy4LiZCivguJrguKPguKPguKrguLLguKMKK+C4muC4o+C4o+C4q+C4suC4mQor4Lia4Lij4Lij4Lir4Liy4LijCivguJrguKPguLHguJQKK+C4muC4o+C4seC5iOC4meC4lOC4tQor4Lia4Lij4Lix4Lio4Lin4LmMCivguJrguKPguLLguIHguKPguKEKK+C4muC4o+C4suC4l+C4uOC4geC4o+C4sgor4Lia4Lij4Liy4Lil4Li1CivguJrguKPguLTguIHguKPguKEKK+C4muC4o+C4tOC4geC4o+C4o+C4oQor4Lia4Lij4Li04LiB4Lix4LibCivguJrguKPguLTguIHguLLguKMKK+C4muC4o+C4tOC4guC4sgor4Lia4Lij4Li04LiC4Liy4LijCivguJrguKPguLTguITguJPguKvguYwKK+C4muC4o+C4tOC4iOC4suC4hAor4Lia4Lij4Li04LiI4Liy4Lij4LiBCivguJrguKPguLTguIjguLLguKPguLTguIHguLIKK+C4muC4o+C4tOC5gOC4ieC4lwor4Lia4Lij4Li04LiK4LiZCivguJrguKPguLTguJPguLLguKLguIEKK+C4muC4o+C4tOC4lOC4iOC5jAor4Lia4Lij4Li04Lia4LiXCivguJrguKPguLTguJrguKfguKPguJPguYwKK+C4muC4o+C4tOC4muC4suC4pQor4Lia4Lij4Li04Lia4Li54Lij4LiT4LmMCivguJrguKPguLTguJ7guJnguJjguYwKK+C4muC4o+C4tOC4nuC4seC4leC4owor4Lia4Lij4Li04Lie4Lix4LiZ4LiY4LmMCivguJrguKPguLTguJ7guLLguIrguIEKK+C4muC4o+C4tOC4nuC4suC4iuC4tOC4geC4sgor4Lia4Lij4Li04Lie4Liy4LiK4Li1CivguJrguKPguLTguJ7guLLguKMKK+C4muC4o+C4tOC4oOC4seC4k+C4keC5jAor4Lia4Lij4Li04Lig4Liy4LipCivguJrguKPguLTguYLguKDguIQKK+C4muC4o+C4tOC4oeC4suC4qgor4Lia4Lij4Li04Lii4Liy4LiiCivguJrguKPguLTguKPguKEKK+C4muC4o+C4tOC4o+C4seC4geC4qeC5jAor4Lia4Lij4Li04Lij4Liy4LiKCivguJrguKPguLTguKfguKPguKPguJUKK+C4muC4o+C4tOC4p+C4suC4owor4Lia4Lij4Li04Lin4Liy4LiqCivguJrguKPguLTguYDguKfguJMKK+C4muC4o+C4tOC4qeC4geC4suC4owor4Lia4Lij4Li04Lip4Lix4LiXCivguJrguKPguLTguKrguIrguJkKK+C4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jAor4Lia4Lij4Li04Lir4Liy4LijCivguJrguKPguLTguKvguLLguKoKK+C4muC4o+C4t+C5i+C4rQor4Lia4Lik4LiH4LiE4LieCivguJrguKXguYfguK3guIEKK+C4muC4p+C4gQor4Lia4Lin4LiHCivguJrguYjguKfguIcKK+C4muC4p+C4igor4Lia4Lin4LiZCivguJrguYnguKfguJkKK+C4muC4p+C4mgor4Lia4Lin4LihCivguJrguYrguKfguKIKK+C4muC4p+C4owor4Lia4Lin4Lij4LmC4LiV4LiO4LiBCivguJrguKvguKXguLTguYjguKEKK+C4muC4rQor4Lia4LmI4LitCivguJrguYnguK0KK+C4muC4reC4gQor4Lia4Lit4LiHCivguJrguYjguK3guIcKK+C4muC5ieC4reC4hwor4Lia4LmK4Lit4LiHCivguJrguYrguK3guIfguYYKK+C4muC5ieC4reC4h+C4leC4sOC4peC4sgor4Lia4LmJ4Lit4LiH4LmB4Lia4LmK4LinCivguJrguK3guIfguKvguKXguLIKK+C4muC4reC4lAor4Lia4Lit4LiZCivguJrguYjguK3guJkKK+C4muC4reC4meC4peC4suC4ouC4geC4o+C4sOC4q+C4meC4gQor4Lia4Lit4LiaCivguJrguYnguK3guKEKK+C4muC5i+C4reC4oQor4Lia4Lit4Lih4Lia4LmMCivguJrguYjguK3guKIKK+C4muC5i+C4reC4ogor4Lia4LmI4Lit4Lii4LmGCivguJrguK3guKPguLDguYDguJ7guYfguJQKK+C4muC4reC4o+C4sOC4oeC4suC4mQor4Lia4Lit4LilCivguJrguK3guKXguKXguLnguJkKK+C4muC5ieC4reC4q+C4uOC5ieC4mQor4Lia4LmK4LiwCivguJrguLDguInguYjguK0KK+C4muC4sOC4q+C4oeC4teC5iAor4Lia4Lix4LiBCivguJrguLHguITguYDguJXguKPguLUKK+C4muC4seC4hwor4Lia4Lix4LmJ4LiHCivguJrguLHguIfguIHguLDguYLguKUKK+C4muC4seC4h+C4geC4seC4lAor4Lia4Lix4LiH4LmA4LiB4Li04LiUCivguJrguLHguIfguYLguIHguKPguKLguJXguLHguKfguJzguLnguYkKK+C4muC4seC4h+C5guC4geC4o+C4ouC4leC4seC4p+C5gOC4oeC4teC4ogor4Lia4Lix4LiH4LmC4LiB4Lil4LiZCivguJrguLHguIfguITguJkKK+C4muC4seC4h+C4hOC4oQor4Lia4Lix4LiH4LiE4LilCivguJrguLHguIfguITguKfguKMKK+C4muC4seC4h+C4hOC4seC4mgor4Lia4Lix4LiH4LiE4Lix4LilCivguJrguLHguIfguYLguITguKXguJkKK+C4muC4seC4h+C5geC4l+C4o+C4gQor4Lia4Lix4LiH4Lin4Liy4LiiCivguJrguLHguIfguYDguKfguLXguKLguJkKK+C4muC4seC4h+C4quC4uOC4geC4uOC4pQor4Lia4Lix4LiH4Liq4Li44LiB4Li54Lil4Li04LiBCivguJrguLHguIfguKrguLnguKPguKLguYwKK+C4muC4seC4h+C4q+C4p+C4mQor4Lia4Lix4LiH4Lir4Lin4LiZ4LiE4Lin4Lix4LiZCivguJrguLHguIfguYDguKvguJXguLgKK+C4muC4seC4h+C5gOC4q+C4tOC4mQor4Lia4Lix4LiH4LmA4Lir4Li14Lii4LiZCivguJrguLHguIfguK3guKMKK+C4muC4seC4h+C4reC4p+C4iAor4Lia4Lix4LiH4Lit4Liy4LiICivguJrguLHguIfguK3guLTguIcKK+C4muC4seC4h+C4reC4ueC4owor4Lia4Lix4LiH4LmA4Lit4Li04LiNCivguJrguLHguI3guIjguIEKK+C4muC4seC4jeC4iOC4o+C4h+C4hOC5jAor4Lia4Lix4LiN4LiK4LijCivguJrguLHguI3guIrguLIKK+C4muC4seC4jeC4iuC4tQor4Lia4Lix4LiN4LiN4Lix4LiV4Li0CivguJrguLHguI3guKvguLIKK+C4muC4seC4jwor4Lia4Lix4LiQ4Lii4Liy4Lie4Lik4LiVCivguJrguLHguJPguJHguKMKK+C4muC4seC4k+C4keC4tOC4lQor4Lia4Lix4LiT4LiR4Li04LiV4Lii4LmMCivguJrguLHguJPguJHguLgKK+C4muC4seC4k+C4keC4ueC4owor4Lia4Lix4LiT4LmA4LiR4Liy4Liw4LiB4LmMCivguJrguLHguJPguJPguLLguKoKK+C4muC4seC4k+C4o+C4qgor4Lia4Lix4LiT4Lij4Liq4Li1CivguJrguLHguJQKK+C4muC4seC4lOC4geC4o+C4tQor4Lia4Lix4LiU4LiL4LiaCivguJrguLHguJTguJrguIcKK+C4muC4seC4lOC4quC4tQor4Lia4Lix4LiV4LijCivguJrguLHguJfguKHguYwKK+C4muC4seC4mQor4Lia4Lix4LmI4LiZCivguJrguLHguYnguJkKK+C4muC4seC4meC4geC4p+C4lAor4Lia4Lix4LiZ4LiI4Lin4LiaCivguJrguLHguJnguIjguK3guKIKK+C4muC4seC4meC4lOC4pQor4Lia4Lix4LiZ4LiU4Liy4LilCivguJrguLHguJnguYDguJTguLTguJkKK+C4muC4seC4meC5guC4lOC4ogor4Lia4Lix4LiZ4LmE4LiUCivguJrguLHguJnguJfguLLguKIKK+C4muC4seC4meC4l+C4tuC4gQor4Lia4Lix4LiZ4LiX4Li24LiHCivguJrguLHguJnguYDguJfguLTguIcKK+C4muC4seC4meC4ouC4sOC4muC4seC4meC4ouC4seC4hwor4Lia4Lix4LiZ4Lil4Li34LitCivguJrguLHguJnguYDguKvguLTguJkKK+C4muC4seC4m+C4nOC4suC4quC4sAor4Lia4Lix4LieCivguJrguLHguJ7guIrguLIKK+C4muC4seC4nuC4iuC4tOC4lQor4Lia4Lix4Lie4Lie4Liy4LiKCivguJrguLHguJ7guJ7guLLguIrguJnguYwKK+C4muC4seC4nuC4nuC4suC4iuC4meC4teC4ouC4geC4o+C4o+C4oQor4Lia4Lix4LilCivguJrguLHguKXguKXguJ4KK+C4muC4seC4peC4peC4seC4h+C4geC5jAor4Lia4Lix4Lil4Lil4Li54LiZCivguJrguLHguKXguYDguKXguYjguJXguYwKK+C4muC4seC4peC4p+C4sAor4Lia4Lix4LinCivguJrguLHguKfguYDguJTguLfguYjguK0KK+C4muC4seC4p+C4leC4ueC4oQor4Lia4Lix4Lin4Lia4LiBCivguJrguLHguKfguKrguKfguKPguKPguITguYwKK+C4muC4sgor4Lia4LmI4LiyCivguJrguYnguLIKK+C4muC5ieC4suC5hgor4Lia4Liy4LiBCivguJrguLLguIcKK+C4muC5iOC4suC4hwor4Lia4LmJ4Liy4LiHCivguJrguLLguIfguIHguK3guIEKK+C4muC4suC4h+C4quC4uAor4Lia4Liy4LiI4LiBCivguJrguLLguIjguKPguLXguKLguYwKK+C4muC4suC4iOC4tOC4geC4sgor4Lia4Liy4LiL4Liy4Lij4LmMCivguJrguLLguIvguLTguKXguKXguLHguKoKK+C4muC4suC4lAor4Lia4Liy4LiU4LiX4Liw4LiI4Li04LiVCivguJrguLLguJTguJfguLDguJ7guLTguKkKK+C4muC4suC4lOC4l+C4sOC4ouC4seC4gQor4Lia4Liy4LiU4Lir4Lih4Liy4LiiCivguJrguLLguJTguYTguKvguKEKK+C4muC4suC4lOC4suC4pQor4Lia4Liy4LmB4LiU4LiHCivguJrguLLguJUKK+C4muC4suC4leC4owor4Lia4Liy4LiXCivguJrguLLguJfguJoKK+C4muC4suC4l+C4muC4h+C4geC4igor4Lia4Liy4LiX4Lia4Lij4Li04LiI4Liy4Lij4Li04LiB4LiyCivguJrguLLguJfguKfguLTguJbguLUKK+C4muC4suC4l+C4quC4geC4uOC4k+C4tQor4Lia4Liy4LiX4Lir4Lil4Lin4LiHCivguJrguLLguJfguLLguJjguLbguIEKK+C4muC4suC4l+C4uOC4geC4sgor4Lia4Liy4LiZCivguJrguYnguLLguJkKK+C4muC4suC4meC4oeC4h+C4hOC4pQor4Lia4Liy4LiZ4Li14Lii4LiwCivguJrguYnguLLguJrguYjguJkKK+C4muC5ieC4suC4muC5i+C4sgor4Lia4Liy4Lia4Li1CivguJrguLLguJrguLkKK+C4muC4suC4muC4ueC4mQor4Lia4Liy4LibCivguJrguLLguJvguYDguITguKPguLLguLDguKvguYwKK+C4muC4suC4m+C4l+C4pOC4qeC4juC4tQor4Lia4Liy4Lib4Lih4Li04LiV4LijCivguJrguLLguJvguKfguLLguJcKK+C4muC4suC4nuC4gQor4Lia4LmI4Liy4Lie4LiBCivguJrguLLguKIKK+C4muC5iOC4suC4ogor4Lia4LmJ4Liy4LiiCivguJrguLLguKLguKrguLjguKvguKPguLUKK+C4muC4suC5gOC4ouC4teC4ogor4Lia4Liy4LmC4LiiCivguJrguLLguKPguYwKK+C4muC4suC4o+C4meC4tQor4Lia4Liy4Lij4LmM4Lia4Li04LiE4Li04LinCivguJrguLLguKPguYzguYDguJrguKUKK+C4muC4suC4o+C4oeC4tQor4Lia4Liy4Lij4LmM4LmA4Lij4LilCivguJrguLLguKPguYzguYDguKXguKLguYwKK+C4muC4suC4o+C4reC4oeC4tOC5gOC4leC4reC4o+C5jAor4Lia4LmJ4Liy4Lij4Liw4Lia4Li44LmI4LiZCivguJrguYnguLLguKPguYjguLLguJfguYjguLIKK+C4muC4suC5gOC4o+C4teC4ouC4mQor4Lia4Liy4LmA4Lij4Li14Lii4LihCivguJrguLLguKUKK+C4muC4suC4peC4tQor4Lia4LmI4Liy4LinCivguJrguYjguLLguKfguILguLjguJkKK+C4muC4suC4qAor4Lia4Liy4Lio4LiB4LmMCivguJrguLLguKrguYDguIHguJXguJrguK3guKUKK+C4muC5ieC4suC4q+C4oeC4uQor4Lia4Liy4Lir4Lil4Li1CivguJrguYnguLLguKvguKfguYjguLIKK+C4muC5iOC4suC4reC5ieC4suC4ogor4Lia4LmL4LizCivguJrguLPguYDguJfguLTguIcKK+C4muC4s+C4meC4suC4jQor4Lia4Liz4Lia4Lin4LiHCivguJrguLPguJrguLHguJQKK+C4muC4s+C5guC4mgor4Lia4Liz4LmC4Lia4LiiCivguJrguLPguYLguJrguKUKK+C4muC4s+C5gOC4nuC5h+C4jQor4Lia4Liz4Lij4Liy4LiaCivguJrguLPguKPguLLguKgKK+C4muC4s+C4o+C4uOC4hwor4Lia4Liz4Lij4Li5CivguJrguLPguYDguKPguK0KK+C4muC4s+C4q+C4ouC4seC4lAor4Lia4Liz4LmA4Lir4LiZ4LmH4LiICivguJrguLQKK+C4muC4tOC4geC4uQor4Lia4Li04LiQCivguJrguLTguJQKK+C4muC4tOC4lOC4owor4Lia4Li04LiU4Lir4Lil4LmI4LiyCivguJrguLTguJTguLIKK+C4muC4tOC4leC4uAor4Lia4Li04LiV4Li44LiI4LiJ4LiyCivguJrguLTguJXguLjguKPguIfguITguYwKK+C4muC4tOC4leC4uOC5gOC4o+C4qAor4Lia4Li04LiV4Li44LilCivguJrguLTguJXguLjguKXguLIKK+C4muC4tOC4leC4uOC4peC4suC4meC4tQor4Lia4Li04LiZCivguJrguLTguYjguJkKK+C4muC4tOC4meC4ouC4sgor4Lia4Li04Lil4LmA4Lil4Li14Lii4LiUCivguJrguLTguKfguYDguKPguJXguJXguYwKK+C4muC4tOC4qOC4suC4iAor4Lia4Li04Liq4Lih4Lix4LiXCivguJrguLXguYkKK+C4muC4teC4geC4uQor4Lia4Li14LiR4LiyCivguJrguLXguJXguLIKK+C4muC4teC4mgor4Lia4Li14LmA4Lii4LioCivguJrguLbguIEKK+C4muC4tuC4geC4muC4tuC4mQor4Lia4Li24LiHCivguJrguLbguYjguIcKK+C4muC4tuC5ieC4hwor4Lia4Li4CivguJrguLjguIEKK+C4muC4uOC4hOC4hOC4pQor4Lia4Li44LiE4Lil4Liy4LiB4LijCivguJrguLjguITguKXguLLguJjguLTguKnguJDguLLguJkKK+C4muC4uOC4hOC4peC4tOC4gQor4Lia4Li44LiHCivguJrguLjguYjguIcKK+C4muC4uOC5ieC4hwor4Lia4Li44LiNCivguJrguLjguI3guYDguILguJUKK+C4muC4uOC4jeC4jeC4suC4meC4uOC4oOC4suC4ngor4Lia4Li44LiN4LiN4Liy4Lig4Li04LiZ4Li04Lir4Liy4LijCivguJrguLjguI3guI3guLLguKDguLTguKrguLHguIfguILguLLguKMKK+C4muC4uOC4jeC4meC4tOC4mOC4tAor4Lia4Li44LiN4Lij4Liy4Lio4Li1CivguJrguLjguI3guKTguJfguJjguLTguYwKK+C4muC4uOC4k+C4keC4o+C4tOC4gQor4Lia4Li44LiT4Lih4Li1CivguJrguLjguJPguKLguYwKK+C4muC4uOC4leC4owor4Lia4Li44LiV4Lij4LiY4Lij4Lij4LihCivguJrguLjguJXguKPguLIKK+C4muC4uOC4leC4o+C4tQor4Lia4Li44LiV4Lij4Li14LiV4Lij4Liw4Liq4Li44LihCivguJrguLjguJbguLjguIrguJkKK+C4muC4uOC4l+C4hOC4pQor4Lia4Li44LmL4LiZCivguJrguLjguJnguJnguLDguJrguLjguJnguJnguLHguIcKK+C4muC4uOC4meC4meC4suC4hAor4Lia4Li44LiaCivguJrguLjguJ7guYDguJ7guJnguLTguKfguLLguKrguLLguJnguLjguKrguJXguLTguI3guLLguJMKK+C4muC4uOC4nuC5gOC4nuC4quC4seC4meC4meC4tOC4p+C4suC4qgor4Lia4Li44Lie4LmC4LieCivguJrguLjguJ/guYDguJ/guYjguJXguYwKK+C4muC4uOC5i+C4oQor4Lia4Li44LmI4Lih4Lia4LmI4Liy4LihCivguJrguLjguYnguKIKK+C4muC4uOC5ieC4ouC4m+C4suC4gQor4Lia4Li44Lij4LiT4LiwCivguJrguLjguKPguJ7guIHguLjguKjguKUKK+C4muC4uOC4o+C4nuC4l+C4tOC4qAor4Lia4Li44Lij4Lie4LiZ4Li04Lih4Li04LiVCivguJrguLjguKPguJ7guJrguJcKK+C4muC4uOC4o+C4nuC4oOC4seC4l+C4o+C4muC4lwor4Lia4Li44Lij4Lie4Liy4LiI4Liy4Lij4Lii4LmMCivguJrguLjguKPguJ7guLLguKnguLLguJIKK+C4muC4uOC4o+C4sAor4Lia4Li44Lij4Lix4LiV4LiW4Li04Lih4LiX4Li04LioCivguJrguLjguKPguLLguJMKK+C4muC4uOC4o+C4suC4k+C4l+C4uOC4leC4tOC4ouC4tOC4geC4sgor4Lia4Li44Lij4Li04LiZ4LiX4Lij4LmMCivguJrguLjguKPguLTguKHguJfguLTguKgKK+C4muC4uOC4o+C4tOC4oeC4nuC4o+C4o+C4qeC4sgor4Lia4Li44Lij4Li04Lih4Liq4Li04LiX4LiY4Li0CivguJrguLjguKPguLUKK+C4muC4uOC4o+C4uOC4qQor4Lia4Li44Lij4Li44Lip4LmC4LiX4LipCivguJrguLjguKPguLjguKnguJjguKPguKPguKEKK+C4muC4uOC5gOC4o+C4oOC4ngor4Lia4Li44LmA4Lij4Lig4Lix4LiVCivguJrguLjguYLguKPguJfguLHguYjguIcKK+C4muC4uOC4qeC4geC4owor4Lia4Li44Lip4Lia4LiBCivguJrguLjguKnguJrguIcKK+C4muC4uOC4qeC4muC4seC4mQor4Lia4Li44Lip4Lia4LiyCivguJrguLjguKnguJrguLLguKHguLTguJnguJXguKPguLIKK+C4muC4uOC4qeC4m+C4o+C4suC4hAor4Lia4Li44Lip4Lib4LiwCivguJrguLjguKnguKIKK+C4muC4uOC4qeC4ouC5jAor4Lia4Li44Lip4Lii4LmM4LiZ4LmJ4Liz4LiX4Lit4LiHCivguJrguLjguKnguKPguLLguITguLHguKEKK+C4muC4uOC4q+C4h+C4hwor4Lia4Li44Lir4LiH4Lix4LiZCivguJrguLjguKvguIfguLIKK+C4muC4uOC4q+C4o+C4hwor4Lia4Li44Lir4Lij4Li14LmICivguJrguLjguKvguKPguLXguYjguJ7guKPguLDguKPguLLguKEKK+C4muC4uOC4q+C4peC4seC4mQor4Lia4Li54LmICivguJrguLnguYkKK+C4muC4ueC5igor4Lia4Li54LiK4LiZ4Li14Lii4Liq4LiW4Liy4LiZCivguJrguLnguIrguLIKK+C4muC4ueC4iuC4tOC5guC4lAor4Lia4Li54LiK4Li04LiVCivguJrguLnguJQKK+C4muC4ueC4lOC4uQor4Lia4Li54LijCivguJrguLnguKPguJPguYwKK+C4muC4ueC4o+C4k+C4sAor4Lia4Li54Lij4LieCivguJrguLnguKPguJ7guLIKK+C4muC4ueC4o+C4nuC4suC4iOC4suC4o+C4ouC5jAor4Lia4Li54Lij4Li1CivguYDguJrguYkKK+C5gOC4muC5igor4LmA4Lia4LiE4Lit4LiZCivguYDguJrguYjguIcKK+C5gOC4muC4h+C4geC4suC4peC4sOC4meC4tQor4LmA4Lia4LmK4LiI4Li14LmLCivguYDguJrguI3guIHguLLguJnguLUKK+C5gOC4muC4jeC4iAor4LmA4Lia4LiN4LiI4LiBCivguYDguJrguI3guIjguKHguLLguKgKK+C5gOC4muC4jeC4iOC4sgor4LmA4Lia4LiN4LiI4Liy4LiH4LiE4LmMCivguYDguJrguI3guI3guLIKK+C5gOC4muC4jeC4nuC4suC4lAor4LmA4Lia4LmH4LiUCivguYDguJrguYfguJTguYDguJXguKXguYfguJQKK+C5gOC4muC5h+C4lOC5gOC4quC4o+C5h+C4iAor4LmA4Lia4LiV4LiyCivguYDguJrguJnguIvguLTguJkKK+C5gOC4muC4meC5hOC4i+C4meC5jAor4LmA4Lia4Lij4LiBCivguYDguJrguKPguLTguKXguYDguKXguLXguKLguKEKK+C5gOC4muC4o+C4teC4ouC4mQor4LmA4Lia4LmA4Lij4LmI4LiV4LmMCivguYDguJrguKoKK+C5gOC4muC4quC4muC4reC4pQor4LmA4Lia4LmJ4LitCivguYDguJrguK3guKPguYwKK+C5gOC4muC4reC4o+C5jOC4hOC4teC5gOC4peC4teC4ouC4oQor4LmA4Lia4LmJ4Lit4LmA4Lij4LmI4LitCivguYDguJrguYnguK3guYDguKPguYjguK3guYDguJfguYjguK0KK+C5gOC4muC5ieC4reC5gOC4o+C4tOC5iOC4oQor4LmA4Lia4LmJ4Lit4LmA4Lij4Li04LmI4Lih4LmA4LiX4Li04LmI4LihCivguYDguJrguK3guLAKK+C5gOC4muC4sAor4LmA4Lia4LiyCivguYDguJrguYnguLIKK+C5gOC4muC4suC4o+C4suC4kwor4LmA4Lia4Liy4LiwCivguYDguJrguLTguIEKK+C5gOC4muC4tOC5iOC4hwor4LmA4Lia4Li14LmJ4LiiCivguYDguJrguLXguKLguIEKK+C5gOC4muC4teC5iOC4ouC4hwor4LmA4Lia4Li14Lii4LiUCivguYDguJrguLXguKLguJkKK+C5gOC4muC4teC4ouC4o+C5jAor4LmA4Lia4Li14LmJ4Lii4LinCivguYDguJrguLfguK0KK+C5gOC4muC4t+C5iOC4rQor4LmA4Lia4Li34LmJ4LitCivguYDguJrguLfguYnguK3guIcKK+C5gOC4muC4t+C4reC4mQor4LmB4LiaCivguYHguJrguYkKK+C5geC4muC4gQor4LmB4Lia4LiE4LiX4Li14LmA4Lij4Li14LiiIEUKK+C5geC4muC5iOC4hwor4LmB4Lia4LiH4LiE4LmMCivguYHguJrguJTguKHguLTguJnguJXguLHguJkKK+C5geC4muC4leC5gOC4leC4reC4o+C4teC5iAor4LmB4Lia4LiZCivguYHguJrguJnguYLguIgKK+C5geC4muC4mgor4LmB4Lia4LmH4LiaCivguYHguJrguKPguIEKK+C5geC4muC5gOC4o+C4teC4ouC4oQor4LmB4Lia4Lir4Lil4LiyCivguYHguJrguLAKK+C5geC4muC4sOC5geC4iwor4LmC4LiaCivguYLguJrguYkKK+C5guC4muC5iwor4LmC4Lia4LiBCivguYLguJrguIHguILguKPguJPguLUKK+C5guC4muC4geC4teC5iQor4LmC4Lia4LiK4Li44LiBCivguYLguJrguJTguIEKK+C5guC4muC4lQor4LmC4Lia4LiV4Lix4LmL4LiZCivguYLguJrguJnguLHguKoKK+C5guC4muC5iuC5gOC4muC5igor4LmC4Lia4LiiCivguYLguJrguKPguKHguLXguJkKK+C5guC4muC4o+C4reC4mQor4LmC4Lia4Lij4Liy4LiTCivguYLguJrguKfguYzguKXguLTguYjguIcKK+C5guC4muC4quC4luC5jAor4LmD4LiaCivguYPguJrguYkKK+C5g+C4muC4o+C4sOC4geC4sgor4LmE4Lia4LmI4LmGCivguYTguJrguITguLLguKPguYzguJrguK3guYDguJnguJUKK+C5hOC4muC5gOC4muC4tOC4pQor4LibCivguJvguIEKK+C4m+C4geC4leC4tAor4Lib4LiB4Lij4LiT4LmMCivguJvguIHguKPguJPguLHguKEKK+C4m+C4geC4suC4owor4Lib4LiB4Li04LiT4LiB4LiwCivguJvguIHguLXguKPguJPguLHguKEKK+C4m+C5guC4geC4j+C4tAor4Lib4LiE4Li44LiTCivguJvguIcKK+C4m+C5iOC4hwor4Lib4LiH4Lib4Lix4LiHCivguJvguIrguLLguJrguJTguLUKK+C4m+C4juC4pQor4Lib4LiP4Lix4LiBCivguJvguI/guLTguIHguKPguJPguYwKK+C4m+C4j+C4tOC4geC4o+C4o+C4oQor4Lib4LiP4Li04LiB4Lij4Lij4Lih4Liq4LiH4LiE4Lij4Liy4LihCivguJvguI/guLTguIHguLLguKPguLAKK+C4m+C4j+C4tOC4geC4tOC4o+C4tOC4ouC4sgor4Lib4LiP4Li04LiB4Li54LilCivguJvguI/guLTguITguITguKvguLTguJUKK+C4m+C4j+C4tOC4hOC4oQor4Lib4LiP4Li04LiE4Liy4Lir4LiBCivguJvguI/guLTguIbguLAKK+C4m+C4j+C4tOC4iOC4iOC4quC4oeC4uOC4m+C4muC4suC4lwor4Lib4LiP4Li04LiK4Li14Lin4LiZ4LiwCivguJvguI/guLTguI3guI3guLIKK+C4m+C4j+C4tOC4jeC4suC4kwor4Lib4LiP4Li04LiX4Li04LiZCivguJvguI/guLTguJrguJYKK+C4m+C4j+C4tOC4muC4seC4leC4tAor4Lib4LiP4Li04Lib4LiX4LiyCivguJvguI/guLTguJvguLHguIHguKnguYwKK+C4m+C4j+C4tOC4m+C4seC4mQor4Lib4LiP4Li04Lib4Li44LiI4LiJ4Liy4Lie4Lii4Liy4LiB4Lij4LiT4LmMCivguJvguI/guLTguJvguLjguIjguInguLLguKfguLLguJfguLUKK+C4m+C4j+C4tOC4nuC4seC4l+C4mOC5jAor4Lib4LiP4Li04Lie4Liy4LiB4Lii4LmMCivguJvguI/guLTguKDguLLguIQKK+C4m+C4j+C4tOC4oOC4suC4kwor4Lib4LiP4Li04Lig4Liy4LiT4LiB4Lin4Li1CivguJvguI/guLTguKDguLLguJPguJvguI/guLTguKrguLHguKHguKDguLTguJfguLIKK+C4m+C4j+C4tOC4oOC4suC4k+C5guC4p+C4q+C4suC4owor4Lib4LiP4Li04Lih4LiyCivguJvguI/guLTguKHguLLguIHguKMKK+C4m+C4j+C4tOC4ouC4suC4ogor4Lib4LiP4Li04Lii4Li44LiX4LiY4LmMCivguJvguI/guLTguKPguJ4KK+C4m+C4j+C4tOC4o+C4ueC4mwor4Lib4LiP4Li04LmC4Lil4LihCivguJvguI/guLTguKfguLHguJXguLQKK+C4m+C4j+C4tOC4p+C4suC4lQor4Lib4LiP4Li04Lin4Liy4LiXCivguJvguI/guLTguYDguKfguJgKK+C4m+C4j+C4tOC4quC4meC4mOC4tAor4Lib4LiP4Li04Liq4Lin4LiwCivguJvguI/guLTguKrguLHguIfguILguKPguJPguYwKK+C4m+C4j+C4tOC4quC4seC4meC4luC4suC4owor4Lib4LiP4Li04Liq4Lix4Lih4Lig4Li04LiX4LiyCivguJvguI/guLTguYDguKrguJgKK+C4m+C4kOC4nuC4tQor4Lib4LiQ4LihCivguJvguJDguKHguJTguLjguKrguLTguJUKK+C4m+C4kOC4oeC4nuC4ouC4suC4muC4suC4pQor4Lib4LiQ4Lih4Liq4Lih4LmC4Lie4LiY4Li0CivguJvguJDguKHguLLguKrguLLguJIKK+C4m+C4kOC4p+C4tQor4Lib4LiT4LiVCivguJvguJPguLLguKEKK+C4m+C4k+C4tOC4mOC4suC4mQor4Lib4LiT4Li04LiY4Li0CivguJvguJPguLXguJUKK+C4m+C4lAor4Lib4LiU4LmC4Lib4LmJCivguJvguJTguLTguKfguKPguLHguJTguLIKK+C4m+C4leC4seC4leC4o+C4tQor4Lib4LiV4Li0CivguJvguJXguLTguKLguLHguJUKK+C4m+C4luC4nuC4tQor4Lib4LiW4Lih4Lix4LiHCivguJvguJbguKfguLUKK+C4m+C4l+C4seC4geC4guC4tOC4kwor4Lib4LiX4Lix4LiP4LiQ4Liy4LiZCivguJvguJfguLHguKrguJbguLLguJkKK+C4m+C4l+C4suC4mQor4Lib4LiX4Liy4LiZ4Li44LiB4Lij4LihCivguJvguJfguLXguJsKK+C4m+C4l+C4uOC4oQor4Lib4LiY4Liy4LiZCivguJvguJkKK+C4m+C5iOC4mQor4Lib4LiZ4Lix4LiU4LiU4LiyCivguJvguJnguLjguJcKK+C4m+C4mgor4Lib4Lib4Lix4LiN4LiI4LiwCivguJvguKEKK+C4m+C4o+C4gQor4Lib4Lij4LiB4LiV4Li0CivguJvguKPguIcKK+C4m+C4o+C4lAor4Lib4Lij4LiV4Lii4Lix4LiB4Lip4LmMCivguJvguKPguJXguKLguLLguIQKK+C4m+C4o+C4leC5gOC4ouC4gQor4Lib4Lij4LiX4Lix4LiV4LiV4Li54Lib4LiK4Li14Lin4Li1CivguJvguKPguJkKK+C4m+C4o+C4meC4meC4tOC4muC4seC4leC4tAor4Lib4Lij4LiZ4Lix4LiiCivguJvguKPguJoKK+C4m+C4o+C4m+C4seC4geC4qeC5jAor4Lib4Lij4LmA4Lih4Lir4LiwCivguJvguKPguYLguKXguIEKK+C4m+C4o+C4p+C4lAor4Lib4Lij4Lin4LiZ4LmB4Lib4LijCivguJvguKPguKfguLLguJfguLUKK+C4m+C4o+C4p+C4tOC4quC4seC4ouC4quC4teC4oeC4sgor4Lib4Lij4Lio4Li4CivguJvguKPguKrguLTguJUKK+C4m+C4o+C5i+C4rQor4Lib4Lij4Lit4LiH4LiU4Lit4LiHCivguJvguKPguK3guJQKK+C4m+C4o+C4reC4lOC5hgor4Lib4Lij4Lit4LiXCivguJvguKPguK3guKIKK+C4m+C4o+C4reC4ouC5hgor4Lib4Lij4LiwCivguJvguKPguLDguIHguJoKK+C4m+C4o+C4sOC4geC4pOC4lQor4Lib4Lij4Liw4LiB4Lik4LiV4Li0CivguJvguKPguLDguIHguKUKK+C4m+C4o+C4sOC4geC4p+C4lAor4Lib4Lij4Liw4LiB4Lit4LiaCivguJvguKPguLDguIHguLHguJkKK+C4m+C4o+C4sOC4geC4seC4mgor4Lib4Lij4Liw4LiB4Liy4LiiCivguJvguKPguLDguIHguLLguKMKK+C4m+C4o+C4sOC4geC4suC4qAor4Lib4Lij4Liw4LiB4Liy4Lio4LiBCivguJvguKPguLDguIHguLLguKjguJnguLXguKLguIHguKPguKPguKEKK+C4m+C4o+C4sOC4geC4suC4qOC4meC4teC4ouC4muC4seC4leC4owor4Lib4Lij4Liw4LiB4Liy4Lio4Li04LiVCivguJvguKPguLDguIHguLMKK+C4m+C4o+C4sOC4geC4tOC4lAor4Lib4Lij4Liw4LiB4Li04LiVCivguJvguKPguLDguIHguLXguKPguJPguIEKK+C4m+C4o+C4sOC5gOC4geC4teC4ouC4o+C4k+C4gQor4Lib4Lij4Liw4LmB4LiB4LiBCivguJvguKPguLDguITguJQKK+C4m+C4o+C4sOC4hOC4meC4mOC4o+C4o+C4ngor4Lib4Lij4Liw4LiE4LiZ4LiY4Lij4Lij4Lie4LmMCivguJvguKPguLDguITguJoKK+C4m+C4o+C4sOC4hOC4reC4hwor4Lib4Lij4Liw4LiE4Lix4Lia4Lib4Lij4Liw4LiE4Lit4LiHCivguJvguKPguLDguITguLHguKXguKDguYwKK+C4m+C4o+C4sOC4hOC4swor4Lib4Lij4Liw4LiE4Liz4LmE4LiB4LmICivguJvguKPguLDguITguLPguJTguLXguITguKfguLLguKIKK+C4m+C4o+C4sOC4hOC4tOC5iOC4mQor4Lib4Lij4Liw4LiE4Li04LmI4LiZ4Lin4Li04LiZ4LiK4LiyCivguJvguKPguLDguITguLjguJMKK+C4m+C4o+C4sOC5gOC4hOC4mQor4Lib4Lij4Liw4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguJvguKPguLDguYLguITguJkKK+C4m+C4o+C4sOC5guC4hOC4meC4mOC4o+C4o+C4mgor4Lib4Lij4Liw4LmC4LiE4LiZ4LiY4Lij4Lij4Lie4LmMCivguJvguKPguLDguYLguITguKEKK+C4m+C4o+C4sOC4iOC4hwor4Lib4Lij4Liw4LiI4LiNCivguJvguKPguLDguIjguJoKK+C4m+C4o+C4sOC4iOC4p+C4mgor4Lib4Lij4Liw4LiI4LmL4Lit4Lib4Lij4Liw4LmB4LiI4LmLCivguJvguKPguLDguIjguLHguIHguKnguYwKK+C4m+C4o+C4sOC4iOC4seC4jQor4Lib4Lij4Liw4LiI4Lix4LiZCivguJvguKPguLDguIjguLLguIEKK+C4m+C4o+C4sOC4iOC4suC4hAor4Lib4Lij4Liw4LiI4Liy4LiZCivguJvguKPguLDguIjguLMKK+C4m+C4o+C4sOC4iOC4tOC4oQor4Lib4Lij4Liw4LiI4Li04LmJ4Lih4Lib4Lij4Liw4LiI4LmI4Lit4LiHCivguJvguKPguLDguIjguLTguYnguKHguJvguKPguLDguYDguIjguYvguK0KK+C4m+C4o+C4sOC4iOC4uAor4Lib4Lij4Liw4LiI4Li44LiE4Lih4LiZ4LmMCivguJvguKPguLDguIjguLjguJrguLHguJkKK+C4m+C4o+C4sOC5gOC4iOC4gQor4Lib4Lij4Liw4LmA4LiI4Li04LiUCivguJvguKPguLDguYDguIjguLXguKLguJQKK+C4m+C4o+C4sOC5geC4iAor4Lib4Lij4Liw4LiK4LiUCivguJvguKPguLDguIrguJkKK+C4m+C4o+C4sOC4iuC4p+C4oQor4Lib4Lij4Liw4LiK4Lin4LijCivguJvguKPguLDguIrguLHguJkKK+C4m+C4o+C4sOC4iuC4sgor4Lib4Lij4Liw4LiK4Li04LiUCivguJvguKPguLDguIrguLUKK+C4m+C4o+C4sOC4iuC4uOC4oQor4Lib4Lij4Liw4LmA4LiK4Li04LiNCivguJvguKPguLDguJPguJUKK+C4m+C4o+C4sOC4k+C4oQor4Lib4Lij4Liw4LiT4Liy4LihCivguJvguKPguLDguJPguLTguJjguLLguJkKK+C4m+C4o+C4sOC4k+C4tOC4mOC4tAor4Lib4Lij4Liw4LiT4Li14LiVCivguJvguKPguLDguJPguLjguJcKK+C4m+C4o+C4sOC4lOC4hwor4Lib4Lij4Liw4LiU4LiH4LmB4LiU4LiHCivguJvguKPguLDguJTguJkKK+C4m+C4o+C4sOC4lOC4p+C4mQor4Lib4Lij4Liw4LiU4Lit4LiZCivguJvguKPguLDguJTguK3guKIKK+C4m+C4o+C4sOC4lOC4seC4gQor4Lib4Lij4Liw4LiU4Lix4LiHCivguJvguKPguLDguJTguLHguJoKK+C4m+C4o+C4sOC4lOC4sgor4Lib4Lij4Liw4LiU4Liy4LiBCivguJvguKPguLDguJTguLLguJsKK+C4m+C4o+C4sOC4lOC4suC4qQor4Lib4Lij4Liw4LiU4Li04LiK4LiN4LiyCivguJvguKPguLDguJTguLTguJTguJvguKPguLDguJTguK3guKIKK+C4m+C4o+C4sOC4lOC4tOC4l+C4tOC4mQor4Lib4Lij4Liw4LiU4Li04Lij4LieCivguJvguKPguLDguJTguLTguKnguJDguYwKK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC4suC4mQor4Lib4Lij4Liw4LiU4Li4CivguJvguKPguLDguJTguLjguIcKK+C4m+C4o+C4sOC4lOC4uOC4iAor4Lib4Lij4Liw4LiU4Li54LmICivguJvguKPguLDguYDguJQKK+C4m+C4o+C4sOC5gOC4lOC5h+C4mQor4Lib4Lij4Liw4LmA4LiU4Lii4LiBCivguJvguKPguLDguYDguJTguLTguKEKK+C4m+C4o+C4sOC5gOC4lOC4teC4ouC4hwor4Lib4Lij4Liw4LmA4LiU4Li14LmL4Lii4LinCivguJvguKPguLDguYHguJTguIcKK+C4m+C4o+C4sOC5geC4lOC4sAor4Lib4Lij4Liw4LmC4LiU4LiiCivguJvguKPguLDguJXguIcKK+C4m+C4o+C4sOC4leC4ouC4suC4hAor4Lib4Lij4Liw4LiV4Lix4LiBCivguJvguKPguLDguJXguLLguJvguLAKK+C4m+C4o+C4sOC4leC4tOC4iuC4jeC4sgor4Lib4Lij4Liw4LiV4Li04LiN4Liy4LiTCivguJvguKPguLDguJXguLTguJfguLTguJkKK+C4m+C4o+C4sOC4leC4tOC4oeC4suC4geC4o+C4o+C4oQor4Lib4Lij4Liw4LiV4Li04Lij4LieCivguJvguKPguLDguJXguLTguKjguKPguLHguJ4KK+C4m+C4o+C4sOC4leC4uQor4Lib4Lij4Liw4LiW4LihCivguJvguKPguLDguJbguKHguIjguLTguJnguJTguLIKK+C4m+C4o+C4sOC4l+C4oQor4Lib4Lij4Liw4LiX4Lii4LiUCivguJvguKPguLDguJfguYnguKfguIcKK+C4m+C4o+C4sOC4l+C4p+C4mQor4Lib4Lij4Liw4LiX4Lix4LiB4Lip4LmMCivguJvguKPguLDguJfguLHguIHguKnguLTguJMKK+C4m+C4o+C4sOC4l+C4seC4hwor4Lib4Lij4Liw4LiX4Lix4LiUCivguJvguKPguLDguJfguLHguJoKK+C4m+C4o+C4sOC4l+C5iOC4sgor4Lib4Lij4Liw4LiX4Liy4LiB4Lil4LmJ4Lit4LiHCivguJvguKPguLDguJfguLLguJkKK+C4m+C4o+C4sOC4l+C4suC4ogor4Lib4Lij4Liw4LiX4Liy4Lio4Li1CivguJvguKPguLDguJfguLTguJkKK+C4m+C4o+C4sOC4l+C4tOC5iOC4mQor4Lib4Lij4Liw4LiX4Li14LibCivguJvguKPguLDguJfguLjguIEKK+C4m+C4o+C4sOC4l+C4uOC4kAor4Lib4Lij4Liw4LiX4Li44LiQ4LiI4Li04LiVCivguJvguKPguLDguJfguLjguJkKK+C4m+C4o+C4sOC4l+C4uOC4oeC4o+C4suC4hAor4Lib4Lij4Liw4LiX4Li44LipCivguJvguKPguLDguJfguLjguKnguI/guYwKK+C4m+C4o+C4sOC4l+C4uOC4qeC4j+C4iOC4tOC4lQor4Lib4Lij4Liw4LiX4Li44Lip4LiQ4LmMCivguJvguKPguLDguJfguLjguKnguJDguIjguLTguJUKK+C4m+C4o+C4sOC5gOC4l+C4qAor4Lib4Lij4Liw4LmA4LiX4LiyCivguJvguKPguLDguYDguJfguYnguLIKK+C4m+C4o+C4sOC5gOC4l+C4teC4ouC4lAor4Lib4Lij4Liw4LmA4LiX4Li14Lii4LiaCivguJvguKPguLDguYDguJfguLfguK3guIcKK+C4m+C4o+C4sOC4mOC4suC4mQor4Lib4Lij4Liw4LiY4Liy4LiZ4Liy4LiY4Li04Lia4LiU4Li1CivguJvguKPguLDguJnguKEKK+C4m+C4o+C4sOC4meC4rQor4Lib4Lij4Liw4LiZ4Lit4LihCivguJvguKPguLDguJnguLHguIcKK+C4m+C4o+C4sOC4meC4seC4m+C4lOC4sgor4Lib4Lij4Liw4LiZ4Li14LmJCivguJvguKPguLDguJnguLXguJvguKPguLDguJnguK3guKEKK+C4m+C4o+C4sOC4muC4seC4lAor4Lib4Lij4Liw4Lia4Liy4LiVCivguJvguKPguLDguJvguKPguLLguJkKK+C4m+C4o+C4sOC4m+C4o+C4suC4ogor4Lib4Lij4Liw4Lib4LiyCivguJvguKPguLDguYDguJvguKPguLXguYnguKLguIcKK+C4m+C4o+C4sOC5gOC4m+C4o+C4teC5ieC4ouC4pwor4Lib4Lij4Liw4LmB4Lib4Lij4LmJ4LiZCivguJvguKPguLDguJ7guIjguJnguYwKK+C4m+C4o+C4sOC4nuC4meC4mOC5jAor4Lib4Lij4Liw4Lie4Lij4LihCivguJvguKPguLDguJ7guKTguJXguLQKK+C4m+C4o+C4sOC4nuC4pOC4l+C4mOC4tOC5jAor4Lib4Lij4Liw4Lie4Lix4LiUCivguJvguKPguLDguJ7guLHguJfguJjguYwKK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jAor4Lib4Lij4Liw4Lie4Liy4LiVCivguJvguKPguLDguJ7guLLguKjguKHguKvguKPguJPguJ4KK+C4m+C4o+C4sOC4nuC4suC4qgor4Lib4Lij4Liw4Lie4Liy4LisCivguJvguKPguLDguJ7guLTguJMKK+C4m+C4o+C4sOC4nuC4tOC4oeC4nuC5jOC4m+C4o+C4sOC4nuC4suC4ogor4Lib4Lij4Liw4Lie4Li44LiX4LiY4LmMCivguJvguKPguLDguYDguJ7guJPguLUKK+C4m+C4o+C4sOC5gOC4nuC5ieC4rQor4Lib4Lij4Liw4LmB4Lie4Lij4LmI4LiH4Lib4Lij4Liw4LmB4Lie4Lij4LinCivguJvguKPguLDguYLguJ7guJgKK+C4m+C4o+C4sOC5hOC4ngor4Lib4Lij4Liw4LmE4Lie4LijCivguJvguKPguLDguKDguJ4KK+C4m+C4o+C4sOC4oOC4seC4quC4quC4owor4Lib4Lij4Liw4Lig4LiyCivguJvguKPguLDguKDguLLguJ4KK+C4m+C4o+C4sOC4oOC4suC4qQor4Lib4Lij4Liw4Lig4Liy4LiqCivguJvguKPguLDguKDguLnguKjguLHguIHguJTguLTguYwKK+C4m+C4o+C4sOC5gOC4oOC4lwor4Lib4Lij4Liw4Lih4LiHCivguJvguKPguLDguKHguKfguI0KK+C4m+C4o+C4sOC4oeC4p+C4pQor4Lib4Lij4Liw4Lih4Lix4LiV4LiV4LiwCivguJvguKPguLDguKHguLLguJMKK+C4m+C4o+C4sOC4oeC4suC4lwor4Lib4Lij4Liw4Lih4Li44LiCCivguJvguKPguLDguKHguLjguJcKK+C4m+C4o+C4sOC4oeC4ueC4pQor4Lib4Lij4Liw4LmA4Lih4Li04LiZCivguJvguKPguLDguYLguKHguIcKK+C4m+C4o+C4sOC5guC4oeC4l+C4ouC5jAor4Lib4Lij4Liw4Lii4LiH4LiE4LmMCivguJvguKPguLDguKLguLjguIHguJXguYwKK+C4m+C4o+C4sOC4ouC4uOC4l+C4mOC5jAor4Lib4Lij4Liw4Lii4Li44LijCivguJvguKPguLDguKLguLnguKMKK+C4m+C4o+C4sOC5guC4ouC4hAor4Lib4Lij4Liw4LmC4Lii4LiE4Liq4Lix4Lih4Lib4LiX4LiyCivguJvguKPguLDguYLguKLguIrguJnguYwKK+C4m+C4o+C4sOC5guC4o+C4q+C4tOC4lQor4Lib4Lij4Liw4Lil4Lih4Lie4LmMCivguJvguKPguLDguKXguK3guIcKK+C4m+C4o+C4sOC4peC4seC4ogor4Lib4Lij4Liw4Lil4Liy4LiVCivguJvguKPguLDguKXguLLguKIKK+C4m+C4o+C4sOC4peC4tuC4hwor4Lib4Lij4Liw4Lil4Li4CivguJvguKPguLDguKXguLjguIcKK+C4m+C4o+C4sOC5gOC4peC5iOC4q+C5jAor4Lib4Lij4Liw4LmA4Lil4LmJ4Liy4Lib4Lij4Liw4LmC4Lil4LihCivguJvguKPguLDguYLguKXguJvguKPguLDguYDguKUKK+C4m+C4o+C4sOC5guC4peC4oQor4Lib4Lij4Liw4Lin4Lij4Lij4LiVCivguJvguKPguLDguKfguKPguKPguJXguJnguYwKK+C4m+C4o+C4sOC4p+C4seC4leC4tAor4Lib4Lij4Liw4Lin4Liy4LiVCivguJvguKPguLDguKfguLLguJfguLUKK+C4m+C4o+C4sOC4p+C4suC4pQor4Lib4Lij4Liw4Lin4Liy4Lil4Lib4Lix4LiX4Lih4LmMCivguJvguKPguLDguKfguLLguKXguJzguKUKK+C4m+C4o+C4sOC4p+C4suC4peC4p+C4o+C4o+C4kwor4Lib4Lij4Liw4Lin4Liy4LiqCivguJvguKPguLDguKfguLTguIcKK+C4m+C4o+C4sOC4p+C4tOC4igor4Lib4Lij4Liw4Lin4Li04LiV4LijCivguJvguKPguLDguKfguLXguJMKK+C4m+C4o+C4sOC5gOC4p+C4k+C4tQor4Lib4Lij4Liw4LmA4Lin4Lib4Lij4Liw4Lin4Li04LiHCivguJvguKPguLDguYDguKfguKgKK+C4m+C4o+C4sOC5gOC4p+C4qOC4meC5jAor4Lib4Lij4Liw4Lio4LihCivguJvguKPguLDguKjguLLguKrguJnguYwKK+C4m+C4o+C4sOC4qOC4uAor4Lib4Lij4Liw4Liq4LiBCivguJvguKPguLDguKrguIfguITguYwKK+C4m+C4o+C4sOC4quC4mgor4Lib4Lij4Liw4Liq4LieCivguJvguKPguLDguKrguKEKK+C4m+C4o+C4sOC4quC4sAor4Lib4Lij4Liw4Liq4Lix4LiBCivguJvguKPguLDguKrguLHguJnguJnguLLguIHguLLguKMKK+C4m+C4o+C4sOC4quC4seC4ouC4q+C5jAor4Lib4Lij4Liw4Liq4LiyCivguJvguKPguLDguKrguLLguJcKK+C4m+C4o+C4sOC4quC4suC4l+C4geC4suC4owor4Lib4Lij4Liw4Liq4Liy4LiX4Lij4Li54LibCivguJvguKPguLDguKrguLLguJjguJnguYwKK+C4m+C4o+C4sOC4quC4suC4mQor4Lib4Lij4Liw4Liq4Liy4LijCivguJvguKPguLDguKrguLTguJfguJjguLTguYwKK+C4m+C4o+C4sOC4quC4teC4m+C4o+C4sOC4quC4sgor4Lib4Lij4Liw4Liq4Li54LiVCivguJvguKPguLDguKrguLnguJXguLQKK+C4m+C4o+C4sOC5gOC4quC4muC4seC4meC4reC4suC4geC4hwor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQCivguJvguKPguLDguYHguKrguJrguLHguJkKK+C4m+C4o+C4sOC4q+C4meC4tuC5iOC4hwor4Lib4Lij4Liw4Lir4Lih4Lix4LiZCivguJvguKPguLDguKvguKHguYjguLIKK+C4m+C4o+C4sOC4q+C4ouC4seC4lAor4Lib4Lij4Liw4Lir4Lij4LiT4LmMCivguJvguKPguLDguKvguKXguLLguJQKK+C4m+C4o+C4sOC4q+C4peC4suC4lwor4Lib4Lij4Liw4Lir4Lil4LmI4LizCivguJvguKPguLDguKvguKXguLTguYjguKEKK+C4m+C4o+C4sOC4q+C4p+C4seC4lAor4Lib4Lij4Liw4Lir4Lin4Lix4LmI4LiZCivguJvguKPguLDguKvguKfguYjguLIKK+C4m+C4o+C4sOC4q+C4seC4lQor4Lib4Lij4Liw4Lir4Liy4LiTCivguJvguKPguLDguKvguLLguKMKK+C4m+C4o+C4sOC4q+C4suC4qgor4Lib4Lij4Liw4LmA4Lir4LilCivguJvguKPguLDguYDguKvguKoKK+C4m+C4o+C4sOC5gOC4q+C4teC4ouC4pQor4Lib4Lij4Liw4LmE4Lir4Lih4Liq4Li44Lir4Lij4Li1CivguJvguKPguLDguK3guJoKK+C4m+C4o+C4sOC4reC4owor4Lib4Lij4Liw4Lit4Li24LiHCivguJvguKPguLDguK3guLjguIEKK+C4m+C4o+C4sOC5gOC4reC4teC4ouC4hwor4Lib4Lij4Liw4LmB4Lit4LiBCivguJvguKPguLDguK7guLLguKEKK+C4m+C4o+C4seC4gQor4Lib4Lij4Lix4LiB4Lib4Lij4LizCivguJvguKPguLHguIHguKHguLAKK+C4m+C4o+C4seC4geC4q+C4seC4geC4nuC4seC4hwor4Lib4Lij4Lix4LiHCivguJvguKPguLHguIrguI3guLIKK+C4m+C4o+C4seC4lAor4Lib4Lij4Lix4LiV4LiW4LiI4Lij4Li04Lii4LiyCivguJvguKPguLHguJXguKLguJnguJXguYwKK+C4m+C4o+C4seC4leC4ouC4seC4geC4qeC5jAor4Lib4Lij4Lix4LiV4Lii4Lix4LiZ4LiV4LmMCivguJvguKPguLHguJXguKLguLHguKIKK+C4m+C4o+C4seC4leC4ouC4uOC4leC4muC4seC4mQor4Lib4Lij4Lix4LiV4Lii4Li44Lia4Lix4LiZCivguJvguKPguLHguJXguKLguLnguKkKK+C4m+C4o+C4seC4leC4ouC4ueC4q+C5jAor4Lib4Lij4Lix4LiV4LmA4Lii4LiBCivguJvguKPguLHguJkKK+C4m+C4o+C4seC5iOC4mQor4Lib4Lij4Lix4LmJ4LiZCivguJvguKPguLHguJoKK+C4m+C4o+C4seC4m+C4p+C4suC4lwor4Lib4Lij4Lix4Lih4Lib4Lij4LiyCivguJvguKPguLHguKHguKHguLjguILguLIKK+C4m+C4o+C4seC4qOC4iOC4tOC4oQor4Lib4Lij4Lix4Lio4LiZ4LiyCivguJvguKPguLHguKjguJnguLUKK+C4m+C4o+C4seC4qOC4p+C5jAor4Lib4Lij4LmI4LiyCivguJvguKPguLLguIHguI8KK+C4m+C4o+C4suC4geC4o+C4oQor4Lib4Lij4Liy4LiB4Lik4LiVCivguJvguKPguLLguIHguLLguKMKK+C4m+C4o+C4suC4hOC4oOC4suC4owor4Lib4Lij4Liy4LiE4Liy4LijCivguJvguKPguLLguIcKK+C4m+C4o+C4suC4h+C4hOC5jAor4Lib4Lij4Liy4LiH4LiE4LiT4LiwCivguJvguKPguLLguIjguLXguJkKK+C4m+C4o+C4suC4iuC4jeC5jAor4Lib4Lij4Liy4LiK4LiN4LiyCivguJvguKPguLLguIrguLHguKIKK+C4m+C4o+C4suC4iuC4suC4m+C4seC4leC4ouC4p+C4tOC4p+C4suC4q+C4sAor4Lib4Lij4Liy4LiK4Li04LiVCivguJvguKPguLLguJMKK+C4m+C4o+C4suC4k+C4tQor4Lib4Lij4Liy4LiUCivguJvguKPguLLguJXguLTguKvguLLguKPguKLguYwKK+C4m+C4o+C4suC4l+C4uOC4geC4o+C4sgor4Lib4Lij4Liy4LiZCivguJvguKPguLLguJnguLUKK+C4m+C4o+C4suC4mgor4Lib4Lij4Liy4Lia4LiU4Liy4Lig4Li04LmA4Lip4LiBCivguJvguKPguLLguJvguJXguYwKK+C4m+C4o+C4suC4oOC4ngor4Lib4Lij4Liy4LihCivguJvguKPguLLguKHguLLguKoKK+C4m+C4o+C4suC5guC4oeC4igor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMCivguJvguKPguLLguKIKK+C4m+C4o+C4suC4o+C4luC4meC4sgor4Lib4Lij4Liy4Lij4LigCivguJvguKPguLLguKPguKHguKDguYwKK+C4m+C4o+C4suC4qAor4Lib4Lij4Liy4Lio4LiI4Liy4LiBCivguJvguKPguLLguKjguLHguKIKK+C4m+C4o+C4suC4qeC4k+C4tQor4Lib4Lij4Liy4Lip4Liy4LiTCivguJvguKPguLLguKrguLHguKIKK+C4m+C4o+C4suC4quC4suC4lwor4Lib4Lij4LizCivguJvguKPguLQKK+C4m+C4o+C4tOC4gQor4Lib4Lij4Li04LiB4LiC4Liy4LijCivguJvguKPguLTguIHguKPguKPguKEKK+C4m+C4o+C4tOC4geC4seC4mwor4Lib4Lij4Li04LiC4LiyCivguJvguKPguLTguITguJPguKvguYwKK+C4m+C4o+C4tOC4hgor4Lib4Lij4Li04LiI4Liy4LiECivguJvguKPguLTguIjguLLguKPguLTguIHguLIKK+C4m+C4o+C4tOC5gOC4ieC4lwor4Lib4Lij4Li04LiK4LiZCivguJvguKPguLTguIvguLbguKEKK+C4m+C4o+C4tOC4jeC4jeC4sgor4Lib4Lij4Li04LiT4Liy4LihCivguJvguKPguLTguJPguLLguKLguIEKK+C4m+C4o+C4tOC4leC4leC4sAor4Lib4Lij4Li04LiV4LmC4LiV4LiX4LiBCivguJvguKPguLTguJXguKLguLLguIQKK+C4m+C4o+C4tOC4leC4owor4Lib4Lij4Li04LiX4Lij4Lij4Lio4LiZ4LmMCivguJvguKPguLTguJfguLHguKLguKvguLHguITguITguLUKK+C4m+C4o+C4tOC4l+C4seC4qOC4meC5jAor4Lib4Lij4Li04LmA4LiX4LieCivguJvguKPguLTguYDguJfguJ7guJnguYwKK+C4m+C4o+C4tOC5gOC4l+C4p+C4meC4sAor4Lib4Lij4Li04LmA4LiX4Lin4LiwCivguJvguKPguLTguJnguLTguJ7guJ7guLLguJkKK+C4m+C4o+C4tOC4mgor4Lib4Lij4Li04Lib4Lix4LiZ4LiW4LmMCivguJvguKPguLTguJ7guJnguJjguYwKK+C4m+C4o+C4tOC4nuC4seC4leC4owor4Lib4Lij4Li04Lie4Lix4LiZ4LiY4LmMCivguJvguKPguLTguJ7guLLguIrguIEKK+C4m+C4o+C4tOC4oOC4seC4k+C4keC5jAor4Lib4Lij4Li04Lig4Liy4LipCivguJvguKPguLTguKDguLLguKnguJPguYwKK+C4m+C4o+C4tOC4oOC4uOC4jeC4iuC5jAor4Lib4Lij4Li04Lig4Li54Lih4Li0CivguJvguKPguLTguYLguKDguIQKK+C4m+C4o+C4tOC5iOC4oQor4Lib4Lij4Li04Lih4LiT4LiR4LilCivguJvguKPguLTguKHguLHguJcKK+C4m+C4o+C4tOC4oeC4suC4kwor4Lib4Lij4Li04Lih4Liy4LiV4LijCivguJvguKPguLTguKLguLHguJXguLQKK+C4m+C4o+C4tOC4ouC4seC4leC4tOC4mOC4o+C4o+C4oQor4Lib4Lij4Li04Lii4Liy4LiiCivguJvguKPguLTguYDguKLguKgKK+C4m+C4o+C4tOC5guC4ouC4quC4suC4mQor4Lib4Lij4Li04Lin4Lij4Lij4LiVCivguJvguKPguLTguKfguLHguJXguKMKK+C4m+C4o+C4tOC4p+C4suC4owor4Lib4Lij4Li04Lin4Liy4LiqCivguJvguKPguLTguKfguLTguJXguIEKK+C4m+C4o+C4tOC5gOC4p+C4kwor4Lib4Lij4Li04Lio4LiZ4LiyCivguJvguKPguLTguKnguIHguLLguKMKK+C4m+C4o+C4tOC4qeC4seC4lwor4Lib4Lij4Li04Liq4Lix4LiN4LiN4Li5CivguJvguKPguLTguKrguLjguJfguJjguLQKK+C4m+C4o+C4tOC4q+C4suC4mQor4Lib4Lij4Li04Lir4Liy4LijCivguJvguKPguLTguKvguLLguKoKK+C4m+C4o+C4teC5iAor4Lib4Lij4Li14LiK4LiN4LiyCivguJvguKPguLXguIrguLIKK+C4m+C4o+C4teC5iuC4lAor4Lib4Lij4Li14LiU4LiyCivguJvguKPguLXguJTguLQKK+C4m+C4o+C4teC4lOC4tOC5jAor4Lib4Lij4Li14LiU4Li1CivguJvguKPguLXguJXguLQKK+C4m+C4o+C4teC4ogor4Lib4Lij4Li14Lii4LiyCivguJvguKPguLbguIEKK+C4m+C4o+C4tuC4geC4qeC4sgor4Lib4Lij4Li24LiHCivguJvguKPguLfguK0KK+C4m+C4o+C4t+C5i+C4rQor4Lib4Lij4Li4CivguJvguKPguLjguIcKK+C4m+C4o+C4uQor4Lib4Lij4Li54LmLCivguJvguKPguLnguJQKK+C4m+C4o+C4ueC5iuC4nwor4Lib4Lik4LiH4LiE4LieCivguJvguKTguIjguInguLIKK+C4m+C4pOC4qeC4juC4suC4h+C4hOC5jAor4Lib4Lik4Lip4LiQCivguJvguKTguKnguJPguYwKK+C4m+C4peC4gQor4Lib4Lil4LiB4LmA4Lib4Lil4Li14LmJ4LiiCivguJvguKXguIcKK+C4m+C4peC5iOC4hwor4Lib4Lil4LiUCivguJvguKXguYnguJkKK+C4m+C4peC4p+C4gQor4Lib4Lil4Lit4LiBCivguJvguKXguYjguK3guIcKK+C4m+C4peC5ieC4reC4hwor4Lib4Lil4Lit4LiUCivguJvguKXguYnguK3guJkKK+C4m+C4peC4reC4mgor4Lib4Lil4Lit4LihCivguJvguKXguYjguK3guKIKK+C4m+C4peC4sAor4Lib4Lil4Lix4LiBCivguJvguKXguLHguYrguIEKK+C4m+C4peC4seC5iuC4geC5hOC4nwor4Lib4Lil4Lix4LiHCivguJvguKXguLHguYjguIcKK+C4m+C4peC4seC4lAor4Lib4Lil4Lix4LiU4LiC4Li04LiBCivguJvguKXguLIKK+C4m+C4peC4suC4gQor4Lib4Lil4Liy4LiU4Liy4LinCivguJvguKXguLLguJUKK+C4m+C4peC4suC4mgor4Lib4Lil4Liy4Lid4LiyCivguJvguKXguLLguKIKK+C4m+C4peC4suC4ouC4meC4suC4geC4suC4owor4Lib4Lil4Liy4LmC4Lil4Lih4LiyCivguJvguKXguLLguKfguLLguKwKK+C4m+C4peC4suC4quC5gOC4leC4reC4o+C5jAor4Lib4Lil4Liy4Liq4LiZ4Liy4LiB4Liy4LijCivguJvguKXguLLguKvguKHguLbguIEKK+C4m+C4peC5ieC4swor4Lib4Lil4LmJ4Liz4Lib4Lil4Li44LiBCivguJvguKXguLTguIcKK+C4m+C4peC4tOC4lAor4Lib4Lil4Li04LmJ4LiZCivguJvguKXguLTguYLguJ7guJgKK+C4m+C4peC4tOC4oQor4Lib4Lil4Li04LmI4LihCivguJvguKXguLTguKcKK+C4m+C4peC4tQor4Lib4Lil4Li14LiBCivguJvguKXguLfguYnguKEKK+C4m+C4peC4uOC4gQor4Lib4Lil4Li54LiBCivguJvguKfguIHguYDguJvguLXguKLguIEKK+C4m+C4p+C4hwor4Lib4LmI4Lin4LiHCivguJvguKfguJQKK+C4m+C5iOC4p+C4mQor4Lib4LmJ4Lin4LiZCivguJvguYnguKfguJnguYDguJvguLXguYnguKLguJkKK+C4m+C5iOC4p+C4ogor4Lib4Lin4Lix4LiV4LiZ4LmMCivguJvguKfguLHguJXguKLguLLguIHguLLguKMKK+C4m+C4p+C4suC4lQor4Lib4Lin4Liy4Lij4LiT4LiyCivguJvguKfguLLguKUKK+C4m+C4p+C4suC4qgor4Lib4Lin4Liy4LisCivguJvguKfguLTguIoKK+C4m+C4p+C4tOC4leC4owor4Lib4Lin4Li04LiYCivguJvguKfguLTguYDguKfguIEKK+C4m+C4p+C4teC4kwor4Lib4Lin4Li44LiV4Li0CivguJvguYDguKfguJPguLUKK+C4m+C5gOC4p+C4qgor4Lib4LmA4Lin4Liq4LiZ4LmMCivguJvguKjguLgKK+C4m+C4quC4ngor4Lib4Liq4Lix4LiZ4LiZ4LiwCivguJvguKrguLHguKLguKvguLAKK+C4m+C4quC4suC4lwor4Lib4Liq4Liy4LiZCivguJvguKrguLLguKrguJnguYwKK+C4m+C4quC4uAor4Lib4Liq4Li44LiVCivguJvguKrguLnguJXguLQKK+C4m+C4q+C4seC4h+C4qgor4Lib4Lir4Lix4LiH4Liq4LiZCivguJvguKvguLLguJkKK+C4m+C4q+C4suC4owor4Lib4Lir4Liy4LiqCivguJvguK0KK+C4m+C5ieC4rQor4Lib4LmL4LitCivguJvguK3guIEKK+C4m+C4reC4hwor4Lib4LmI4Lit4LiHCivguJvguYnguK3guIcKK+C4m+C4reC4lAor4Lib4Lit4LiZCivguJvguYnguK3guJkKK+C4m+C4reC4meC5hgor4Lib4Lit4LiZ4LiU4LmMCivguJvguK3guYDguJnguLLguLAKK+C4m+C4reC4mgor4Lib4Lit4LihCivguJvguYnguK3guKEKK+C4m+C5i+C4reC4oQor4Lib4Lit4LiiCivguJvguYnguK3guKIKK+C4m+C4sAor4Lib4Liw4LiB4LiZCivguJvguLDguIHguLHguIcKK+C4m+C4sOC4geC4suC4m+C4sOC4geC4seC4hwor4Lib4Liw4LiB4Liy4Lij4Lix4LiHCivguJvguLDguIHguLMKK+C4m+C4sOC4guC4suC4pwor4Lib4Liw4LiH4Lix4Lia4Lib4Liw4LiH4LmI4Lit4LiZCivguJvguLDguJXguLLguJnguLUKK+C4m+C4sOC4leC4suC4m+C4sgor4Lib4Liw4LiV4Liy4Lij4Liw4LiB4Liy4Lir4Lil4LiyCivguJvguLDguJXguLTguJTguJvguLDguJXguYjguK0KK+C4m+C4sOC4leC4tOC4ouC4suC4mQor4Lib4Liw4LmA4LiV4LiwCivguJvguLDguJfguLAKK+C4m+C4sOC4l+C4sOC4m+C4sOC4l+C4seC4hwor4Lib4Liw4LiX4Li4CivguJvguLDguJfguLjguJkKK+C4m+C4sOC4muC4uOC4gQor4Lib4Liw4Lib4LiZCivguJvguLDguKHguIcKK+C4m+C4sOC4o+C4suC4peC4tQor4Lib4Liw4Lij4LizCivguJvguLDguKXguK3guKEKK+C4m+C4sOC5gOC4peC4hwor4Lib4Liw4LmB4Lil4LmI4LihCivguJvguLDguYHguKXguYjguKHguYYKK+C4m+C4sOC5guC4peC4hwor4Lib4Liw4Lin4Liw4Lir4Lil4LizCivguJvguLDguKfguLDguKvguKXguLTguYjguKEKK+C4m+C4sOC5gOC4quC4q+C4o+C4seC4meC4reC4suC4geC4hwor4Lib4Liw4Lir4LiH4Lix4LiaCivguJvguLDguKvguIfguLHguJrguYYKK+C4m+C4sOC4q+C4meC4seC4mQor4Lib4Liw4Lir4Lih4Lix4LiZ4Lit4Liy4Lir4Lii4Li1CivguJvguLDguKvguKXguLTguYjguKEKK+C4m+C4sOC4q+C4seC4hwor4Lib4Liw4LmA4Lir4Lil4Liy4LiwCivguJvguLDguYDguKvguKXguLLguLDguJvguLDguYHguKvguKXguLAKK+C4m+C4seC4gQor4Lib4Lix4LiB4LiC4LmMCivguJvguLHguIHguYDguJvguYnguLIKK+C4m+C4seC4geC4qeC5jAor4Lib4Lix4LiB4Lip4LiyCivguJvguLHguIHguKnguLLguKrguKfguKPguKPguITguYwKK+C4m+C4seC4geC4qeC4tOC4mQor4Lib4Lix4LiB4Lip4Li04Lia4LiU4Li1CivguJvguLHguIHguKnguLTguKHguLLguKPguIQKK+C4m+C4seC4geC4qeC4tOC4o+C4suC4igor4Lib4Lix4LiB4Lip4Li04Liq4Li04LiH4Lir4LmMCivguJvguLHguIHguKnguLUKK+C4m+C4seC4hOC4q+C4sAor4Lib4Lix4LiHCivguJvguLHguYjguIcKK+C4m+C4seC4h+C4quC4uOC5jAor4Lib4Lix4LiH4Liq4Li44LiB4Li44LilCivguJvguLHguIjguIjguLHguJXguJXguLAKK+C4m+C4seC4iOC4iOC4seC4ogor4Lib4Lix4LiI4LiI4Liy4Lih4Li04LiV4LijCivguJvguLHguIjguIjguLjguITguKHguJnguYwKK+C4m+C4seC4iOC4iOC4uOC4l+C4mOC4o+C4k+C5jAor4Lib4Lix4LiI4LiI4Li44Lia4Lix4LiZCivguJvguLHguIjguIjguLnguKoKK+C4m+C4seC4iOC4iOC4ueC4q+C4sAor4Lib4Lix4LiI4LmA4LiI4LiBCivguJvguLHguIjguYDguIjguIHguIrguJkKK+C4m+C4seC4iOC5gOC4iOC4geC4muC4uOC4hOC4hOC4pQor4Lib4Lix4LiI4LmA4LiI4LiB4Lie4Li44LiX4LiY4LiwCivguJvguLHguIjguYDguIjguIHguYLguJ7guJjguLQKK+C4m+C4seC4iOC5gOC4iOC4geC4quC4oeC4suC4l+C4suC4mQor4Lib4Lix4LiI4LmC4LiI4Lib4LiB4Liy4Lij4LiB4Li04LiICivguJvguLHguIjguInguLIKK+C4m+C4seC4iOC4ieC4tOC4oQor4Lib4Lix4LiI4LiW4Lij4LiT4LmMCivguJvguLHguIjguJnguLbguIEKK+C4m+C4seC4iOC4ouC4suC4geC4suC4owor4Lib4Lix4LiI4LmA4Lin4LiB4LiC4LiT4LmMCivguJvguLHguIrguIrguKMKK+C4m+C4seC4iuC4iuC4uOC4mQor4Lib4Lix4LiN4LiI4LiBCivguJvguLHguI3guIjguKEKK+C4m+C4seC4jeC4iOC4p+C4teC4quC4leC4tAor4Lib4Lix4LiN4LiN4Lix4LiV4Li0CivguJvguLHguI3guI3guLIKK+C4m+C4seC4jeC4q+C4sgor4Lib4Lix4LiPCivguJvguLHguI/guJnguLAKK+C4m+C4seC4kOC4ouC4suC4p+C4seC4lQor4Lib4Lix4LiT4LiR4Lij4Lir4Lix4LiV4LiW4Li1CivguJvguLHguJPguJHguLjguJvguKXguLLguKoKK+C4m+C4seC4k+C4k+C4sAor4Lib4Lix4LiT4LiT4Lix4LiV4LiV4Li04LiB4Lin4Lix4LiK4LiK4LiwCivguJvguLHguJPguJPguLLguKoKK+C4m+C4seC4k+C4k+C4suC4quC4geC5jAor4Lib4Lix4LiT4Lij4Liq4LihCivguJvguLHguJPguKPguKrguLUKK+C4m+C4seC4k+C4q+C4tAor4Lib4Lix4LiUCivguJvguLHguJTguYYKK+C4m+C4seC4lOC5hOC4luC4oQor4Lib4Lix4LiV4LiE4Liy4LiUCivguJvguLHguJXguIjguLHguJXguJbguKPguJPguYwKK+C4m+C4seC4leC4iOC4seC4meC4leC5jAor4Lib4Lix4LiV4LiV4LiwCivguJvguLHguJXguJXguLDguYDguKXguLXguYjguKLguJkKK+C4m+C4seC4leC4leC4suC4meC4teC4geC4sAor4Lib4Lix4LiV4LiV4Liy4LiZ4Li24LiBCivguJvguLHguJXguJXguLLguKHguLjguYLguKHguJfguJnguLIKK+C4m+C4seC4leC4leC4suC5gOC4p+C4teC4ogor4Lib4Lix4LiV4LiV4Li0CivguJvguLHguJXguJXguLTguIEKK+C4m+C4seC4leC4luC4owor4Lib4Lix4LiV4LiW4LiwCivguJvguLHguJXguJnguLQKK+C4m+C4seC4leC4meC4tQor4Lib4Lix4LiV4Lii4Lix4LiiCivguJvguLHguJXguKvguKXguYjguLIKK+C4m+C4seC4luC4nuC4tQor4Lib4Lix4LiW4Lin4Li1CivguJvguLHguJkKK+C4m+C4seC5iOC4mQor4Lib4Lix4LmJ4LiZCivguJvguLHguYnguJnguIjguLHguYjguJkKK+C4m+C4seC4meC4iOC4uOC5gOC4q+C4o+C5h+C4iAor4Lib4Lix4LiZ4Lil4LihCivguJvguLHguYnguJnguKvguKLguLIKK+C4m+C4seC5ieC4meC5gOC4q+C4meC5iOC4hwor4Lib4Lix4LiaCivguJvguLHguYrguJoKK+C4m+C4seC4m+C4nOC4suC4quC4sAor4Lib4Lix4Lie4Lie4Liy4LiK4LiZ4LiwCivguJvguLHguJ7guJ7guLLguIrguJnguLXguKLguIHguKPguKPguKEKK+C4m+C4seC4nuC4oOC4suC4o+C4sAor4Lib4Lix4LmK4LihCivguJvguLHguYrguKHguYHguIHguYfguKoKK+C4m+C4seC5iuC4oeC4meC5ieC4s+C4oeC4seC4mQor4Lib4Lix4Lii4LiB4LiwCivguJvguLHguKLguIHguLIKK+C4m+C4seC4ouC4ouC4tOC4geC4sgor4Lib4Lix4LmI4LinCivguJvguLHguKfguYDguJvguLXguKIKK+C4m+C4seC5ieC4p+C5gOC4m+C4teC5ieC4ogor4Lib4Lix4Lio4LiI4Li04LihCivguJvguLHguKjguJXguLHguJkKK+C4m+C4seC4qOC4leC4uQor4Lib4Lix4Liq4Liq4Lix4LiX4LiY4Li0CivguJvguLHguKrguKrguLLguKfguLAKK+C4m+C4seC4quC4quC4suC4quC4sAor4Lib4LiyCivguJvguYjguLIKK+C4m+C5ieC4sgor4Lib4LmL4LiyCivguJvguLLguIEKK+C4m+C4suC4hwor4Lib4LmI4Liy4LiHCivguJvguYnguLLguIcKK+C4m+C5ieC4suC4h+C4m+C5iOC4sgor4Lib4Liy4LiI4LiZ4LiwCivguJvguLLguIjguKPguLXguKLguYwKK+C4m+C4suC4iOC4suC4o+C4ouC5jAor4Lib4Liy4LiI4Li04LiV4LiV4Li14Lii4LmMCivguJvguLLguIjguLXguJkKK+C4m+C4suC4j+C4peC4tAor4Lib4Liy4LiP4Li04Lia4LiXCivguJvguLLguI/guLTguJrguLjguITguITguKXguLTguIEKK+C4m+C4suC4j+C4tOC5guC4oOC4hAor4Lib4Liy4LiP4Li04Lir4Liy4Lij4Li04Lii4LmMCivguJvguLLguJDguLAKK+C4m+C4suC4k+C4sAor4Lib4Liy4LiT4Li0CivguJvguLLguJPguLUKK+C4m+C4suC4lAor4Lib4Liy4LiU4Lir4Liy4LinCivguJvguLLguJXguLTguYLguKHguIHguILguYwKK+C4m+C4suC4leC4tQor4Lib4Liy4LmA4LiV4LmK4LiwCivguJvguLLguJcKK+C4m+C4suC4l+C4mwor4Lib4Liy4LiX4LmI4Lit4LiH4LmC4LiB4LmLCivguJvguLLguJfguLHguIfguIHguLIKK+C4m+C4suC4l+C4suC4mQor4Lib4Liy4LiX4Li44LiB4LiyCivguJvguLLguJkKK+C4m+C5iOC4suC4mQor4Lib4LmJ4Liy4LiZCivguJvguLLguJnguJTguIcKK+C4m+C5ieC4suC4meC4peC4oQor4Lib4Liy4LiZ4LiwCivguJvguLLguJnguLTguYDguKLguJkKK+C4m+C4suC4meC4teC4ouC4sAor4Lib4LmJ4Liy4LiaCivguJvguYrguLLguJoKK+C4m+C4suC4m+C4reC4q+C4ouC4teC4quC4seC4h+C4huC4suC4leC4sgor4Lib4Liy4Lie4LiI4LiZ4LmMCivguJvguLLguKEKK+C4m+C4suC5guC4oeC4geC4guC5jAor4Lib4LmI4Liy4LiiCivguJvguYnguLLguKIKK+C4m+C4suC4ouC4suC4qgor4Lib4Liy4Lij4LmM4LiBCivguJvguLLguKPguYzguYDguIHguJXguYwKK+C4m+C4suC4o+C5jOC4leC4tQor4Lib4Liy4Lij4Lih4Li1CivguJvguLLguKPguKnguJPguLUKK+C4m+C4suC4o+C4suC4iuC4tOC4gQor4Lib4Liy4Lij4Li04LiJ4Lix4LiV4LijCivguJvguLLguKPguLTguIrguLLguJUKK+C4m+C4suC4o+C4tOC4quC4uOC4l+C4mOC4tOC4qOC4teC4pQor4Lib4Liy4Lij4Li44Lib4LiZ4LiwCivguJvguLLguKUKK+C4m+C4suC4peC5jOC4oQor4Lib4Liy4Lil4Li04LmE4Lil4Lii4LiB4LmMCivguJvguLLguKXguLUKK+C4m+C5iOC4suC4pwor4Lib4LmK4Liy4LinCivguJvguLLguKfguYYKK+C4m+C4suC4p+C4gQor4Lib4Liy4Lin4LiI4LiZ4LiwCivguJvguLLguKfguLLguKMKK+C4m+C4suC4qeC4suC4kwor4Lib4Liy4LiqCivguJvguLLguKrguLLguJMKK+C4m+C4suC4quC4suC4l+C4tOC4geC4sAor4Lib4Liy4Lir4LiZ4Lix4LiZCivguJvguLLguKvguLXguYgKK+C4m+C4suC4q+C4uOC4kwor4Lib4LizCivguJvguYnguLMKK+C4m+C5ieC4s+C5huC5gOC4m+C5i+C4reC5hgor4Lib4LmJ4Liz4LmA4Lib4LmJ4LitCivguJvguYnguLPguYDguJvguYvguK0KK+C4m+C4tOC4geC4meC4tOC4gQor4Lib4Li04LiB4Lit4Lix4LieCivguJvguLTguIfguITguKUKK+C4m+C4tOC4h+C4hOC4peC4sAor4Lib4Li04LiH4Lib4Lit4LiHCivguJvguLTguI7guIEKK+C4m+C4tOC4j+C4kOC4sAor4Lib4Li04LiQ4Li0CivguJvguLTguJPguJHguLAKK+C4m+C4tOC4lAor4Lib4Li04LiU4LmA4LiV4LmK4Liy4LiwCivguJvguLTguJXguJXguLAKK+C4m+C4tOC4leC4sgor4Lib4Li04LiV4Li4CivguJvguLTguJXguLjguIjguInguLIKK+C4m+C4tOC4leC4uOC4pQor4Lib4Li04LiV4Li44Lil4LiyCivguJvguLTguJXguLjguKXguLLguJnguLUKK+C4m+C4tOC5guC4leC4o+C5gOC4peC4teC4ouC4oQor4Lib4Li04LmI4LiZCivguJvguLTguYrguJkKK+C4m+C4tOC5iuC4meC5hgor4Lib4Li04LmI4LiZ4LiV4LitCivguJvguLTguYjguJnguYLguJUKK+C4m+C4tOC4m+C4nOC4peC4tQor4Lib4Li04LmI4LihCivguJvguLTguYnguKEKK+C4m+C4tOC4ouC4seC4h+C4hOC4uAor4Lib4Li04Lij4Lix4LiZ4Liu4LiyCivguJvguLTguKXguLHguJnguJjguJnguYwKK+C4m+C4tOC5i+C4pwor4Lib4Li04Lio4Liy4LiICivguJvguLTguKrguLHguIcKK+C4m+C4tOC5hOC4qgor4Lib4Li04Lir4LiBCivguJvguLTguKvguKXguLHguYjguJkKK+C4m+C4tQor4Lib4Li14LmICivguJvguLXguYkKK+C4m+C4teC5iwor4Lib4Li14LiBCivguJvguLXguI7guIHguIbguKMKK+C4m+C4teC4kOC4geC4sAor4Lib4Li14LiQ4LiwCivguJvguLXguYrguJQKK+C4m+C4teC4leC4geC4quC4tOC4kwor4Lib4Li14LiV4Li0CivguJvguLXguJkKK+C4m+C4teC4mgor4Lib4Li14LmK4LiaCivguJvguLXguYLguJvguYoKK+C4m+C4teC4qOC4suC4iAor4Lib4Li14LisCivguJvguLXguKzguIEKK+C4m+C4teC4rOC4sgor4Lib4Li24LiBCivguJvguLbguIcKK+C4m+C4tuC5iOC4hwor4Lib4Li24LmK4LiHCivguJvguLbguYvguIcKK+C4m+C4tuC5ieC4lAor4Lib4Li24LmJ4LiZCivguJvguLbguKHguJvguLfguYnguK0KK+C4m+C4t+C4lOC4m+C4tuC4hwor4Lib4Li34LiZCivguJvguLfguK0KK+C4m+C4t+C5ieC4rQor4Lib4Li34LmL4LitCivguJvguLgKK+C4m+C4uOC5igor4Lib4Li44LiBCivguJvguLjguIHguJvguLjguKIKK+C4m+C4uOC5iuC4geC4peC4uOC4gQor4Lib4Li44LiE4Lil4LiwCivguJvguLjguYnguIfguIHguLXguYsKK+C4m+C4uOC4h+C4hOC4ngor4Lib4Li44LiH4LiE4Lin4LiwCivguJvguLjguIfguKXguLTguIfguITguYwKK+C4m+C4uOC4h+C4peC4tuC4h+C4hOC5jAor4Lib4Li44LiI4LiJ4LiyCivguJvguLjguI8KK+C4m+C4uOC4k+C4keC4o+C4tOC4gQor4Lib4Li44LiUCivguJvguLjguJXguJXguLAKK+C4m+C4uOC4leC4l+C4suC4o+C4l+C4suC4mQor4Lib4Li44LiW4Li44LiK4LiZCivguJvguLjguJnguYDguJfguYjguLLguIHguYvguIcKK+C4m+C4uOC4meC4meC4suC4hAor4Lib4Li44LiZ4Lig4LieCivguJvguLjguJnguLHguJrguJvguLjguJnguLHguIcKK+C4m+C4uOC4meC4seC4nuC4quC4uAor4Lib4Li44LiaCivguJvguLjguYrguJoKK+C4m+C4uOC4muC4m+C4seC4mgor4Lib4Li44LmK4Lia4Lib4Lix4LmK4LiaCivguJvguLjguJvguJzguLAKK+C4m+C4uOC4m+C4sAor4Lib4Li44Lie4Lie4LiwCivguJvguLjguYjguKEKK+C4m+C4uOC5ieC4oQor4Lib4Li44LmL4LihCivguJvguLjguYjguKHguJvguKXguLIKK+C4m+C4uOC5ieC4oeC5gOC4m+C5ieC4hwor4Lib4Li44LmI4Lih4LmA4Lib4Li34Lit4LiBCivguJvguLjguYnguKHguYDguJvguLfguK3guIEKK+C4m+C4uOC4oeC4sgor4Lib4Li44LiiCivguJvguLjguYnguKIKK+C4m+C4uOC5i+C4ogor4Lib4Li44LijCivguJvguLjguKPguJPguLAKK+C4m+C4uOC4o+C4seC4leC4luC4tOC4oeC4l+C4tOC4qAor4Lib4Li44Lij4Liy4LiTCivguJvguLjguKPguLLguJPguLAKK+C4m+C4uOC4o+C4tOC4oeC4l+C4tOC4qAor4Lib4Li44Lij4Li04Lih4Lie4Lij4Lij4Lip4LiyCivguJvguLjguKPguLTguKrguKDguLLguKfguLAKK+C4m+C4uOC4o+C4tOC5guC4quC4lOC4oQor4Lib4Li44LmA4Lij4LiI4Liy4Lij4Li04LiBCivguJvguLjguYLguKPguKvguLTguJUKK+C4m+C4uOC4peC4peC4tOC4h+C4hOC5jAor4Lib4Li44Lil4Lil4Li24LiH4LiE4LmMCivguJvguLjguKXguLTguJnguJfguYwKK+C4m+C4uOC4peC4uQor4Lib4Li44LmA4Lil4LiHCivguJvguLjguYDguKXguIfguYYKK+C4m+C4uOC5guC4peC4m+C4uOC5gOC4pQor4Lib4Li44LmB4Lir4Lil4LiwCivguJvguLjguKzguKfguLAKK+C4m+C4uQor4Lib4Li54LmICivguJvguLnguIrguIHguLAKK+C4m+C4ueC4iuC4meC4teC4ouC4sAor4Lib4Li54LiK4LiyCivguJvguLnguIrguLTguJUKK+C4m+C4ueC4lAor4Lib4Li54LiU4LiB4LiB4Liq4LmJ4Lih4Lih4LitCivguJvguLnguJXguLQKK+C4m+C4ueC4mQor4Lib4Li54LihCivguJvguLnguYnguKLguKLguLXguYnguJvguLnguYnguKLguLMKK+C4m+C4ueC5iOC4ouC5iOC4sgor4Lib4Li54Lij4LiwCivguJvguLnguKXguLkKK+C4m+C4ueC4p+C4sgor4LmA4Lib4LmJCivguYDguJvguYsKK+C5gOC4m+C4gQor4LmA4Lib4LmK4LiBCivguYDguJvguIHguILguYwKK+C5gOC4m+C5iOC4hwor4LmA4Lib4LmJ4LiHCivguYDguJvguYrguIcKK+C5gOC4m+C5i+C4hwor4LmA4Lib4LmH4LiUCivguYDguJvguYfguJTguYTguIvguYnguYTguIHguYjguJXguK3guJTguKrguKXguLHguIHguKPguK3guJTguKvguKHguLnguKrguLUKK+C5gOC4m+C5h+C4mQor4LmA4Lib4LmH4LiZ4LiV4LmJ4LiZCivguYDguJvguKLguKLguLLguKUKK+C5gOC4m+C4owor4LmA4Lib4Lij4LmH4LiHCivguYDguJvguKPguJUKK+C5gOC4m+C4o+C4oQor4LmA4Lib4Lij4LiiCivguYDguJvguKPguKLguYYKK+C5gOC4m+C4o+C4rQor4LmA4Lib4Lij4Lit4LiwCivguYDguJvguKPguLIKK+C5gOC4m+C4o+C4suC4sAor4LmA4Lib4Lij4Liy4Liw4LmB4Lib4Lij4LiwCivguYDguJvguKPguLXguKLguIcKK+C5gOC4m+C4o+C4teC5ieC4ouC4hwor4LmA4Lib4Lij4Li14Lii4LiNCivguYDguJvguKPguLXguKLguJoKK+C5gOC4m+C4o+C4teC5iOC4ouC4oQor4LmA4Lib4Lij4Li14Lii4LinCivguYDguJvguKPguLXguYnguKLguKcKK+C5gOC4m+C4o+C4teC5ieC4ouC4p+C4q+C4p+C4suC4mQor4LmA4Lib4Lij4Li14Lii4LiwCivguYDguJvguKPguLXguYrguKLguLAKK+C5gOC4m+C4o+C4t+C5iOC4reC4hwor4LmA4Lib4Lij4Li34LmJ4Lit4LiiCivguYDguJvguKUKK+C5gOC4m+C4peC5iOC4hwor4LmA4Lib4Lil4LinCivguYDguJvguKXguLIKK+C5gOC4m+C4peC5iOC4sgor4LmA4Lib4Lil4LmJ4LiyCivguYDguJvguKXguLLguLAKK+C5gOC4m+C4peC4teC5ieC4ogor4LmA4Lib4Lil4Li14LmI4Lii4LiZCivguYDguJvguKXguLXguYjguKLguKEKK+C5gOC4m+C4peC4teC5iOC4ouC4pwor4LmA4Lib4Lil4Li14LmI4Lii4Lin4LiU4LizCivguYDguJvguKXguLfguK3guIEKK+C5gOC4m+C4peC4t+C4reC4geC4geC4o+C4sOC5gOC4l+C4teC4ouC4oQor4LmA4Lib4Lil4Li34Lit4LiHCivguYDguJvguKXguLfguYnguK3guIcKK+C5gOC4m+C4peC4t+C4reC4ogor4LmA4Lib4LioCivguYDguJvguKjguKUKK+C5gOC4m+C4qOC4seC4qgor4LmA4Lib4Liq4LiB4Liy4LijCivguYDguJvguKrguKUKK+C5gOC4m+C4quC4uOC4jQor4LmA4Lib4Liq4Li44LmE4LiT4LiiCivguYDguJvguYvguK0KK+C5gOC4m+C5ieC4reC5gOC4ouC5ieC4rQor4LmA4Lib4Lit4Lij4LmM4LmA4LiL4LmH4LiZ4LiV4LmMCivguYDguJvguYvguK3guYDguKvguKXguK0KK+C5gOC4m+C4sAor4LmA4Lib4Liw4Lib4LiwCivguYDguJvguLIKK+C5gOC4m+C5iOC4sgor4LmA4Lib4LmJ4LiyCivguYDguJvguYrguLIKK+C5gOC4m+C5i+C4sgor4LmA4Lib4LmL4Liy4Liu4Li34LmJ4LitCivguYDguJvguLLguLAKK+C5gOC4m+C4suC4sOC5gOC4m+C4teC5iuC4ouC4sAor4LmA4Lib4Liy4Liw4LmB4Lib4LiwCivguYDguJvguLLguLDguYDguKvguKXguLLguLAKK+C5gOC4m+C4tOC4gQor4LmA4Lib4Li04LiHCivguYDguJvguLTguIfguYYKK+C5gOC4m+C4tOC4h+C4oeC4suC4hwor4LmA4Lib4Li04LiUCivguYDguJvguLTguYjguJkKK+C5gOC4m+C4tOC4mgor4LmA4Lib4Li04LmK4LiaCivguYDguJvguLTguJrguILguYnguLLguKcKK+C5gOC4m+C4teC4ogor4LmA4Lib4Li14Lii4LiBCivguYDguJvguLXguYrguKLguIEKK+C5gOC4m+C4teC4ouC5geC4iuC4o+C5jAor4LmA4Lib4Li14LmK4Lii4LiaCivguYDguJvguLXguYjguKLguKEKK+C5gOC4m+C4teC4ouC4pwor4LmA4Lib4Li14LmJ4Lii4LinCivguYDguJvguLXguKLguKvguKfguKIKK+C5gOC4m+C4teC4ouC4sAor4LmA4Lib4Li34Lit4LiBCivguYDguJvguLfguYnguK3guJkKK+C5geC4mwor4LmB4Lib4LmJ4LiHCivguYHguJvguYvguIcKK+C5geC4m+C5ieC4h+C5geC4iuC5iAor4LmB4Lib4LiUCivguYHguJvguYrguJQKK+C5geC4m+C4l+C4uQor4LmB4Lib4LmJ4LiZCivguYHguJvguJoKK+C5geC4m+C5iuC4mgor4LmB4Lib4LihCivguYHguJvguKMKK+C5geC4m+C4o+C5iwor4LmB4Lib4Lij4LiBCivguYHguJvguKPguIcKK+C5geC4m+C4o+C5iOC4hwor4LmB4Lib4Lij4LiH4Lil4LmJ4Liy4LiH4LiC4Lin4LiUCivguYHguJvguKPguIfguKvguLnguKvguJnguLkKK+C5geC4m+C4o+C5iuC4lAor4LmB4Lib4Lij4LmJ4LiZCivguYHguJvguKPguYvguJkKK+C5geC4m+C4o+C5i+C5geC4m+C4o+C5ieC4mQor4LmB4Lib4Lij4LiwCivguYHguJvguKUKK+C5geC4m+C4peC5iQor4LmB4Lib4Lil4LiBCivguYHguJvguKXguIcKK+C5geC4m+C4peC4mQor4LmB4Lib4Lil4LiaCivguYHguJvguYnguKcKK+C5geC4m+C5iuC4pwor4LmB4Lib4LmL4LinCivguYHguJvguLAKK+C5geC4m+C5iuC4sAor4LmB4Lib4LmK4Liw4LiL4LiwCivguYLguJsKK+C5guC4m+C5iAor4LmC4Lib4LmJCivguYLguJvguYoKK+C5guC4m+C4gQor4LmC4Lib4LmK4LiBCivguYLguJvguYrguIHguYDguIHguK3guKPguYwKK+C5guC4m+C4geC4guC4o+C4k+C4tQor4LmC4Lib4LmA4LiBCivguYLguJvguIcKK+C5guC4m+C5iOC4hwor4LmC4Lib4LmJ4LiHCivguYLguJvguYjguIfguILguYjguLLguKEKK+C5guC4m+C4h+C4peC4suC4hwor4LmC4Lib4LmI4LiH4Lin4Li04LiUCivguYLguJvguYnguIfguYLguKvguKLguIcKK+C5guC4m+C4kOC4m+C4l+C4sgor4LmC4Lib4LiU4LiBCivguYLguJvguJXguJbguIHguLAKK+C5guC4m+C4mQor4LmC4Lib4LibCivguYLguJvguYrguKLguIHguLHguYnguIEKK+C5guC4m+C5iuC4ouC5gOC4i+C4teC4ouC4mQor4LmC4Lib4Lij4LiHCivguYLguJvguKPguYjguIcKK+C5guC4m+C4o+C4lAor4LmC4Lib4Lij4LiV4Lit4LiZCivguYLguJvguKPguJXguLXguJkKK+C5guC4m+C4o+C5gOC4leC4quC5geC4leC4meC4leC5jAor4LmC4Lib4Lij4LmB4LiX4Lij4LiB4LmA4LiV4Lit4Lij4LmMCivguYLguJvguKPguKIKK+C5guC4m+C4o+C4teC4quC4oOC4sgor4LmC4Lib4Lil4LmI4LiHCivguYLguJvguKXguLTguYLguK0KK+C5guC4m+C5guC4pQor4LmC4Lib4LiqCivguYLguJvguKrguIEKK+C5guC4m+C4quC4geC4suC4o+C5jOC4lAor4LmC4Lib4Liq4LmA4LiV4Lit4Lij4LmMCivguYLguJvguKrguLLguKfguJnguLTguIHguKHguLnguKUKK+C5guC4m+C4sAor4LmC4Lib4LmK4LiwCivguYLguJvguYrguLDguIjguYnguLLguKIKK+C5hOC4mwor4LmE4Lib4LmICivguYTguJvguYsKK+C5hOC4m+C5i+C5gOC4m+C5iwor4LmE4Lib4Lii4Liy4LilCivguYTguJvguKPguKnguJPguLXguKLguYwKK+C5hOC4m+C4peC5iAor4LmE4Lib4Lio4Liy4LiICivguYTguJvguKjguLLguIjguLUKK+C4nAor4Lic4LiBCivguJzguIHguYDguKPguLfguK3guIEKK+C4nOC4geC4sgor4Lic4LiB4Liy4LiiCivguJzguITguKEKK+C4nOC4hwor4Lic4LiH4LiBCivguJzguIfguKEKK+C4nOC4h+C4owor4Lic4LiH4Lit4LiZCivguJzguIfguK3guJoKK+C4nOC4h+C4sAor4Lic4LiH4Liy4LiUCivguJzguIfguYjguLLguJkKK+C4nOC4iOC4hwor4Lic4LiI4LiNCivguJzguIjguLHguI0KK+C4nOC4iOC4suC4mQor4Lic4LiK4Li44LihCivguJzguI3guLIKK+C4nOC4k+C4sAor4Lic4LiT4Li04LiZCivguJzguJQKK+C4nOC4lOC4uOC4hwor4Lic4LmA4LiU4Li04LiZCivguJzguJfguKEKK+C4nOC4meC4p+C4gQor4Lic4LiZ4Lin4LiKCivguJzguJnguLHguIcKK+C4nOC4meC4tOC4lAor4Lic4LiZ4Li24LiBCivguJzguKEKK+C4nOC4oeC4meC4suC4hwor4Lic4Lii4Lit4LiHCivguJzguKLguYjguLPguYDguJzguKLguK0KK+C4nOC4o+C4quC4uAor4Lic4Lij4Li04LiVCivguJzguKPguLjguJ7guIEKK+C4nOC4pQor4Lic4Lil4LiBCivguJzguKXguITguLjguJkKK+C4nOC4peC4hOC4uOC4meC4tQor4Lic4Lil4LiHCivguJzguKXguK0KK+C4nOC4peC5h+C4reC4hwor4Lic4Lil4LmH4Lit4LiiCivguJzguKXguLAKK+C4nOC4peC4seC4gQor4Lic4Lil4Lix4LiUCivguJzguKXguLHguJoKK+C4nOC4peC4seC4p+C4sAor4Lic4Lil4LiyCivguJzguKXguLLguI0KK+C4nOC4peC4tAor4Lic4Lil4Li04LiB4LiwCivguJzguKXguLTguJUKK+C4nOC4peC4tOC4mQor4Lic4Lil4Li1CivguJzguKXguLXguJzguKXguLLguKEKK+C4nOC4peC4tuC4gQor4Lic4Lil4Li24LmI4LiHCivguJzguKXguLfguK0KK+C4nOC4peC4uAor4Lic4Lil4Li44LiHCivguJzguKXguLjguJQKK+C4nOC4peC4uOC4mQor4Lic4Lil4Li44LiaCivguJzguKXguLjguKIKK+C4nOC4peC4uQor4Lic4Lin4LiyCivguJzguKrguKEKK+C4nOC4quC4oeC5gOC4quC4o+C5h+C4iAor4Lic4Liq4Liy4LiZCivguJzguKrguLLguKIKK+C4nOC4quC4suC4owor4Lic4Lit4LiBCivguJzguK3guIcKK+C4nOC5iOC4reC4hwor4Lic4LmI4Lit4LiZCivguJzguK3guJoKK+C4nOC4reC4oQor4Lic4LmH4Lit4LiiCivguJzguYjguK3guKIKK+C4nOC4reC4p+C4lAor4Lic4Lit4Li54LiZCivguJzguLAKK+C4nOC4sOC5geC4hOC4hwor4Lic4Liw4LiU4LiyCivguJzguLDguKrguLIKK+C4nOC4sOC4q+C4oeC4tQor4Lic4Liw4Lit4Lit4LiaCivguJzguLDguK3guLfguJTguJzguLDguK3guKEKK+C4nOC4seC4gQor4Lic4Lix4LiB4LmE4LiBCivguJzguLHguIHguILguKfguIcKK+C4nOC4seC4geC4guC4teC5ieC4guC4p+C4hwor4Lic4Lix4LiB4LmC4LiJ4LihCivguJzguLHguIHguIrguLUKK+C4nOC4seC4geC4leC4muC4iuC4p+C4sgor4Lic4Lix4LiB4LiX4Lit4LiU4Lii4Lit4LiUCivguJzguLHguIHguJrguLjguYnguIcKK+C4nOC4seC4geC4muC4uOC5ieC4h+C4guC4seC4mQor4Lic4Lix4LiB4Lia4Li44LmJ4LiH4LiI4Li14LiZCivguJzguLHguIHguJrguLjguYnguIfguJfguLDguYDguKUKK+C4nOC4seC4geC4muC4uOC5ieC4h+C4neC4o+C4seC5iOC4hwor4Lic4Lix4LiB4Lia4Li44LmJ4LiH4Lij4LmJ4Lin4LihCivguJzguLHguIHguJrguLjguYnguIfguKPguLHguYnguKcKK+C4nOC4seC4geC5gOC4muC4teC5ieC4ogor4Lic4Lix4LiB4LmA4Lia4Li14LmJ4Lii4LmD4Lir4LiN4LmICivguJzguLHguIHguJvguKXguLHguIcKK+C4nOC4seC4geC4m+C4uOC5iOC4oeC4m+C4peC4sgor4Lic4Lix4LiB4LmA4Lic4LmH4LiUCivguJzguLHguIHguYTguJzguYgKK+C4nOC4seC4geC4o+C4ueC5ieC4meC4reC4mQor4Lic4Lix4LiB4LmB4Lin4LmI4LiZCivguJzguLHguIHguKrguLLguJoKK+C4nOC4seC4geC4quC4suC4oeC4q+C4suC4pwor4Lic4Lix4LiB4LmA4Liq4Li14LmJ4Lii4LiZCivguJzguLHguIHguKvguJnguK3guIEKK+C4nOC4seC4geC4q+C4meC4reC4hwor4Lic4Lix4LiB4Lir4LiZ4Liy4LihCivguJzguLHguIHguKvguKfguLLguJkKK+C4nOC4seC4geC5hOC4q+C4oQor4Lic4Lix4LiB4Lit4Li14LmB4Lib4LiwCivguJzguLHguITguITguLjguJMKK+C4nOC4seC4hOC4hOC4uOC4k+C4tQor4Lic4Lix4LiHCivguJzguLHguJQKK+C4nOC4seC4mQor4Lic4Lix4LiaCivguJzguLHguKXguITguLjguJnguLUKK+C4nOC4seC4pwor4Lic4Lix4Lin4LiwCivguJzguLHguKrguKrguLAKK+C4nOC4sgor4Lic4LmI4LiyCivguJzguYnguLIKK+C4nOC4suC4gQor4Lic4Liy4LiHCivguJzguYjguLLguIcKK+C4nOC4suC4k+C4tOC4lQor4Lic4Liy4LiUCivguJzguLLguJXguLQKK+C4nOC5iOC4suC4mQor4Lic4Liy4LihCivguJzguLLguKIKK+C4nOC5iOC4suC4ogor4Lic4LmJ4Liy4LiiCivguJzguLLguKUKK+C4nOC4suC4peC4hOC4uOC4mQor4Lic4Liy4Lil4LiyCivguJzguYjguLLguKcKK+C4nOC4suC4quC4uOC4gQor4Lic4LmJ4Liy4Liu4Liy4LiUCivguJzguLMKK+C4nOC5ieC4s+C5hgor4Lic4Li0CivguJzguLTguIcKK+C4nOC4tOC4lAor4Lic4Li04LiU4LiBCivguJzguLTguJUKK+C4nOC4tOC4mQor4Lic4Li04LinCivguJzguLUKK+C4nOC4teC4leC4reC4h+C5gOC4q+C4peC4t+C4reC4hwor4Lic4Li14LmJ4Lin4LmMCivguJzguLbguIcKK+C4nOC4tuC5iOC4hwor4Lic4Li24LmJ4LiHCivguJzguLfguYjguJkKK+C4nOC4uAor4Lic4Li44LiUCivguJzguLjguKLguJzguIcKK+C4nOC4uOC4quC4o+C4suC4hOC4sgor4Lic4Li54LmJCivguJzguLnguIEKK+C5gOC4nAor4LmA4Lic4LiHCivguYDguJzguIrguLTguI0KK+C5gOC4nOC5h+C4lAor4LmA4Lic4LiU4LmH4LiICivguYDguJzguJTguLTguKEKK+C5gOC4nOC4lOC4teC4ouC4hwor4LmA4Lic4LmI4LiZCivguYDguJzguJnguLTguIEKK+C5gOC4nOC4ogor4LmA4Lic4Lii4LitCivguYDguJzguKLguLTguJoKK+C5gOC4nOC4pQor4LmA4Lic4Lil4LmICivguYDguJzguKXguYkKK+C5gOC4nOC4peC5h+C4lAor4LmA4Lic4Lil4LitCivguYDguJzguKXguLAKK+C5gOC4nOC4peC4suC4sAor4LmA4Lic4Lil4Liy4Liw4LmB4Lic4Lil4LiwCivguYDguJzguKXguLXguKLguIcKK+C5gOC4nOC4reC5gOC4o+C4rQor4LmA4Lic4Lit4Li04LiNCivguYDguJzguK3guLTguKUKK+C5gOC4nOC4sAor4LmA4Lic4LiyCivguYDguJzguYjguLIKK+C5gOC4nOC5ieC4sgor4LmA4Lic4LmJ4Liy4Lic4LiHCivguYDguJzguLLguLAKK+C5gOC4nOC4tOC5ieC4hwor4LmA4Lic4Li04LiZCivguYDguJzguLTguJnguYYKK+C5gOC4nOC4teC4ouC4mQor4LmA4Lic4Li14Lii4LiwCivguYDguJzguLfguK0KK+C5gOC4nOC4t+C5iOC4rQor4LmA4Lic4Li34Lit4LiBCivguYDguJzguLfguK3guJQKK+C5gOC4nOC4t+C4reC4mQor4LmA4Lic4Li34LmI4Lit4LiZCivguYHguJzguYgKK+C5geC4nOC4gQor4LmB4Lic4LiHCivguYHguJzguJQKK+C5geC4nOC4lOC5gOC4nOC4sgor4LmB4Lic4LiU4LmA4Liq4Li14Lii4LiHCivguYHguJzguJkKK+C5geC4nOC5iOC4mQor4LmB4Lic4LiZ4LiBCivguYHguJzguKUKK+C5geC4nOC4peC4hwor4LmB4Lic4Lil4LmH4LiaCivguYHguJzguKXguYfguJrguYYKK+C5geC4nOC4peC5h+C4pwor4LmB4Lic4Lil4LiwCivguYHguJzguYjguKcKK+C5geC4nOC5ieC4pwor4LmC4LicCivguYLguJzguIcKK+C5guC4nOC4j+C4kOC4seC4nuC4nuC4sAor4LmC4Lic4LiZCivguYLguJzguKIKK+C5guC4nOC4peC5iAor4LmC4Lic4Lil4LiB4LmA4Lic4Lil4LiBCivguYLguJzguKXguLAKK+C5guC4nOC4reC4mQor4LmC4Lic4LiwCivguYTguJwKK+C5hOC4nOC5iAor4LmE4Lic4LiXCivguYTguJzguYjguJzguLHguIcKK+C4nQor4Lid4LiZCivguJ3guKPguLHguYjguIcKK+C4neC4o+C4seC5iOC4h+C5gOC4qOC4qgor4Lid4Lij4Lix4LmI4LiZCivguJ3guYjguK0KK+C4neC4reC4ogor4Lid4Lix4LiBCivguJ3guLHguIHguJ3guYjguLLguKIKK+C4neC4seC4geC5g+C4neC5iAor4Lid4Lix4LiHCivguJ3guLHguYjguIcKK+C4neC4seC4lAor4Lid4Lix4LiZCivguJ3guLIKK+C4neC5iOC4sgor4Lid4LmJ4LiyCivguJ3guLLguIEKK+C4neC4suC4hwor4Lid4Liy4LiUCivguJ3guLLguJkKK+C4neC4suC4ogor4Lid4LmI4Liy4LiiCivguJ3guYnguLLguKIKK+C4neC4tOC5iOC4mQor4Lid4Li1CivguJ3guLXguYgKK+C4neC4teC4gQor4Lid4Li14Lir4Lih4Lit4LiaCivguJ3guLbguIEKK+C4neC4t+C4lAor4Lid4Li34LiZCivguJ3guLjguYjguJkKK+C4neC4ueC4hwor4LmA4Lid4LmJ4LiyCivguYDguJ3guLfguK0KK+C5gOC4neC4t+C4reC4gQor4LmA4Lid4Li34Lit4LiHCivguYDguJ3guLfguYjguK3guJkKK+C5geC4neC4gQor4LmB4Lid4LiHCivguYHguJ3guJQKK+C5g+C4neC5iAor4LmE4LidCivguJ4KK+C4nuC4gQor4Lie4LiB4LiI4LijCivguJ7guIHguJnguLjguYjguJkKK+C4nuC4geC4nuC5iOC4suC4ogor4Lie4LiB4Lil4LihCivguJ7guIHguKvguLTguJkKK+C4nuC4geC4reC4suC4p+C4uOC4mAor4Lie4LiB4LiyCivguJ7guIHguLjguKPguLAKK+C4nuC4geC4uOC4pQor4Lie4LiHCivguJ7guIfguKjguYwKK+C4nuC4iOC4meC5jAor4Lie4LiI4LiZ4LiyCivguJ7guIjguJnguLLguKPguJYKK+C4nuC4iOC4meC4teC4ouC5jAor4Lie4LiI4Lih4Liy4LiZCivguJ7guIjguLUKK+C4nuC4iuC4o+C4sAor4Lie4LiN4LiyCivguJ7guI3guLLguJMKK+C4nuC4jeC4suC5hOC4nwor4Lie4LiN4Liy4Lil4LitCivguJ7guJPguLTguIoKK+C4nuC4k+C4tOC4iuC4ouC5jAor4Lie4LiUCivguJ7guJjguLkKK+C4nuC4mQor4Lie4LmI4LiZCivguJ7guYnguJkKK+C4nuC4meC4oQor4Lie4LiZ4Lit4LiHCivguJ7guJnguK3guKEKK+C4nuC4meC4seC4gQor4Lie4LiZ4Lix4LiB4LiH4Liy4LiZCivguJ7guJnguLHguIcKK+C4nuC4meC4seC4lOC4owor4Lie4LiZ4Lix4LiZCivguJ7guJnguLHguKoKK+C4nuC4meC4sgor4Lie4LiZ4Liy4LiUCivguJ7guJnguLLguJnguJTguKMKK+C4nuC4meC4suC4meC4leC5jAor4Lie4LiZ4Liy4LiiCivguJ7guJnguLTguJTguLIKK+C4nuC4meC4tOC4lQor4Lie4LiZ4Li14Lii4LiBCivguJ7guYDguJnguIEKK+C4nuC5gOC4meC4iOC4owor4Lie4LiaCivguJ7guJrguLkKK+C4nuC4oeC5iOC4sgor4Lie4Lii4LiKCivguJ7guKLguIrguJnguYwKK+C4nuC4ouC4leC4tOC5gOC4o+C4gQor4Lie4Lii4LiZ4LiV4LmMCivguJ7guKLguKgKK+C4nuC4ouC4seC4gQor4Lie4Lii4Lix4LiE4LiG4LmMCivguJ7guKLguLHguIrguJnguYwKK+C4nuC4ouC4seC4jeC4iuC4meC4sAor4Lie4Lii4Lix4LiVCivguJ7guKLguLHguJoKK+C4nuC4ouC4suC4geC4o+C4k+C5jAor4Lie4Lii4Liy4LiG4Lij4LmMCivguJ7guKLguLLguIfguITguYwKK+C4nuC4ouC4suC4mOC4tAor4Lie4Lii4Liy4LiZCivguJ7guKLguLLguJrguLLguJcKK+C4nuC4ouC4suC4muC4suC4pQor4Lie4Lii4Liy4LihCivguJ7guKLguLLguKLguLLguKEKK+C4nuC4ouC4suC4pQor4Lie4Lii4Li4CivguJ7guKLguLjguIcKK+C4nuC4ouC4uOC4q+C4owor4Lie4Lii4Li44Lir4LiwCivguJ7guKLguLnguYjguKvguYwKK+C4nuC5gOC4ouC4teC4ogor4Lie4LijCivguJ7guKPguJUKK+C4nuC4o+C4oQor4Lie4Lij4Lih4LiE4LiUCivguJ7guKPguKHguYHguJTguJkKK+C4nuC4o+C4oeC4oeC4tAor4Lie4Lij4Lij4LiECivguJ7guKPguKPguITguYwKK+C4nuC4o+C4o+C4hOC4suC4meC4leC5jAor4Lie4Lij4Lij4LiTCivguJ7guKPguKPguJPguJnguLIKK+C4nuC4o+C4o+C4k+C4o+C4suC4ogor4Lie4Lij4Lij4LiU4Li24LiBCivguJ7guKPguKPguKXguLLguKIKK+C4nuC4o+C4o+C4qQor4Lie4Lij4Lij4LmA4Lir4LiyCivguJ7guKPguKPguYDguK3guLTguI0KK+C4nuC4o+C4p+C4h+C5gOC4nuC4o+C4teC4ouC4hwor4Lie4Lij4Lin4LiUCivguJ7guKPguKfguJkKK+C4nuC4o+C4q+C4oQor4Lie4Lij4Lit4LiBCivguJ7guKPguYjguK3guIcKK+C4nuC4o+C5ieC4reC4hwor4Lie4Lij4Lit4LiUCivguJ7guKPguYnguK3guKEKK+C4nuC4o+C5iOC4reC4oeC4nuC4o+C5ieC4rQor4Lie4Lij4LmI4Lit4LiiCivguJ7guKPguYnguK3guKIKK+C4nuC4o+C4sAor4Lie4Lij4Liw4LiI4Lix4LiZ4LiX4Lij4LmM4LiE4Lij4Li24LmI4LiH4LiL4Li14LiBCivguJ7guKPguLDguYDguIjguYnguLLguKXguK3guKLguJbguLLguJQKK+C4nuC4o+C4sOC5gOC4iOC5ieC4suC4q+C5ieC4suC4nuC4o+C4sOC4reC4h+C4hOC5jAor4Lie4Lij4Liw4LiZ4Lit4LihCivguJ7guKPguLDguJnguLLguJQKK+C4nuC4o+C4sOC4ouC4suC5gOC4peC5h+C4muC4hOC4o+C4uOC4kQor4Lie4Lij4Liw4Lii4Liy4Lin4Lix4LiZCivguJ7guKPguLDguKXguJoKK+C4nuC4o+C4sOC4peC4t+C4rQor4Lie4Lij4Liw4LmB4Lin4LinCivguJ7guKPguLDguKvguLIKK+C4nuC4o+C4sOC4q+C4suC4oQor4Lie4Lij4Liw4Lir4Li04LiUCivguJ7guKPguLDguK7guLLguKEKK+C4nuC4o+C4seC4geC4nuC4o+C5ieC4reC4oQor4Lie4Lij4Lix4LmI4LiHCivguJ7guKPguLHguJQKK+C4nuC4o+C4seC5iOC4mQor4Lie4Lij4Lix4LiaCivguJ7guKPguYjguLIKK+C4nuC4o+C5ieC4sgor4Lie4Lij4Liy4LiBCivguJ7guKPguLLguIcKK+C4nuC4o+C5iOC4suC4hwor4Lie4Lij4Liy4LiUCivguJ7guKPguLLguJkKK+C4nuC4o+C4suC4ogor4Lie4Lij4Liy4LinCivguJ7guKPguLLguKvguKHguJPguYwKK+C4nuC4o+C4suC4q+C4oeC4k+C4tQor4Lie4Lij4Liy4Lir4Lih4Li1CivguJ7guKPguLMKK+C4nuC4o+C5iOC4swor4Lie4Lij4LmJ4LizCivguJ7guKPguLPguYYKK+C4nuC4o+C4tOC4gQor4Lie4Lij4Li04LmJ4LiHCivguJ7guKPguLTguJoKK+C4nuC4o+C4tOC4muC5hOC4q+C4pwor4Lie4Lij4Li04LmJ4LihCivguJ7guKPguLbguIcKK+C4nuC4o+C4tuC4mQor4Lie4Lij4Li24LiaCivguJ7guKPguLfguJQKK+C4nuC4o+C4t+C5ieC4rQor4Lie4Lij4Li4CivguJ7guKPguLjguIEKK+C4nuC4o+C4uOC5iOC4hwor4Lie4Lij4Li44LmI4LiH4LiZ4Li14LmJCivguJ7guKPguLjguJkKK+C4nuC4o+C4uQor4Lie4Lij4Li54LiUCivguJ7guKTguIHguKnguYwKK+C4nuC4pOC4kgor4Lie4Lik4LiS4LiyCivguJ7guKTguJLguLQKK+C4nuC4pOC4lQor4Lie4Lik4LiV4Li0CivguJ7guKTguJfguJjguYwKK+C4nuC4pOC4l+C4mOC4tOC5jAor4Lie4Lik4LiZ4LiV4LmMCivguJ7guKTguJnguJfguYwKK+C4nuC4pOC4meC4l+C4suC4owor4Lie4Lik4LiZ4LiX4Li04LmMCivguJ7guKTguKDguLnguKnguJMKK+C4nuC4pOC4oOC4ueC4qeC4tOC4lQor4Lie4Lik4Lip4LiI4Li04LiBCivguJ7guKTguKnguKAKK+C4nuC4pOC4q+C4seC4quC4muC4lOC4tQor4Lie4LilCivguJ7guKXguIHguLLguKIKK+C4nuC4peC4geC4suC4owor4Lie4Lil4LiC4Lix4LiZ4LiY4LmMCivguJ7guKXguITguKfguLLguKEKK+C4nuC4peC5gOC4l+C4ngor4Lie4Lil4LiaCivguJ7guKXguYDguKHguLfguK3guIcKK+C4nuC4peC5gOC4o+C4t+C4reC4mQor4Lie4Lil4LmC4Lil4LiBCivguJ7guKXguKfguIEKK+C4nuC4peC4p+C4hwor4Lie4Lil4Lin4LiU4LiB4Li04LiZ4Lil4Li54LiBCivguJ7guKXguKfguJTguYPguKvguI3guYgKK+C4nuC4peC4p+C4seC4lQor4Lie4Lil4Lio4Liy4Liq4LiV4Lij4LmMCivguJ7guKXguKjguLXguIHguKnguLIKK+C4nuC4peC4quC4tOC4h+C4q+C5jAor4Lie4Lil4LitCivguJ7guKXguYnguK0KK+C4nuC4peC4reC4hwor4Lie4Lil4Lit4LiUCivguJ7guKXguK3guJkKK+C4nuC4peC4reC4oeC5geC4nuC4peC4oQor4Lie4Lil4Lit4LiiCivguJ7guKXguYjguK3guKIKK+C4nuC4peC4sAor4Lie4Lil4Liw4LiB4Liz4Lil4Lix4LiHCivguJ7guKXguLDguJ7guKXguLIKK+C4nuC4peC4seC5iOC4gQor4Lie4Lil4Lix4LiHCivguJ7guKXguLHguYjguIcKK+C4nuC4peC4seC5ieC4hwor4Lie4Lil4Lix4LiUCivguJ7guKXguLHguJkKK+C4nuC4peC4seC4mgor4Lie4Lil4Lix4Lia4Lie4Lil4LiyCivguJ7guKXguLHguJrguJ7guKXguLbguIcKK+C4nuC4peC4seC5iOC4pwor4Lie4Lil4LmI4LiyCivguJ7guKXguLLguIHguKMKK+C4nuC4peC4suC4hwor4Lie4Lil4Liy4LiNCivguJ7guKXguLLguJQKK+C4nuC4peC4suC4lOC4tOC4qOC4seC4ogor4Lie4Lil4Liy4LiY4Li04LiB4Liy4LijCivguJ7guKXguYjguLLguJkKK+C4nuC4peC4suC4meC4suC4oeC4seC4ogor4Lie4Lil4Liy4LiZ4Li24LiBCivguJ7guKXguLLguKEKK+C4nuC4peC5iOC4suC4oQor4Lie4Lil4Liy4LiiCivguJ7guKXguLLguKLguKHguYnguLIKK+C4nuC4peC4suC4quC4leC4tOC4gQor4Lie4Lil4Liy4Liq4Lih4LiyCivguJ7guKXguLLguKvguIEKK+C4nuC4peC4swor4Lie4Lil4LmJ4LizCivguJ7guKXguLPguKDguLHguIcKK+C4nuC4peC4tAor4Lie4Lil4Li04LiBCivguJ7guKXguLTguJ7guLHguJcKK+C4nuC4peC4tOC5ieC4pwor4Lie4Lil4Li1CivguJ7guKXguLXguKHguLjguIIKK+C4nuC4peC4uAor4Lie4Lil4Li44LiBCivguJ7guKXguLjguYjguIEKK+C4nuC4peC4uOC4geC4nuC4peC5iOC4suC4mQor4Lie4Lil4Li44LmI4LiHCivguJ7guKXguLjguYnguJkKK+C4nuC4peC4uOC5iOC4oeC4nuC4peC5iOC4suC4oQor4Lie4Lil4Li44LmI4LiiCivguJ7guKXguLjguYnguKIKK+C4nuC4peC4uQor4Lie4Lil4Li54LmB4LiBCivguJ7guKXguLnguITguLLguKcKK+C4nuC4peC4ueC4leC5ieC4mQor4Lie4Lil4Li54LmC4LiVCivguJ7guKXguLnguYLguJfguYDguJnguLXguKLguKEKK+C4nuC4p+C4gQor4Lie4Lin4LiHCivguJ7guYjguKfguIcKK+C4nuC4p+C4mQor4Lie4Lin4LiiCivguJ7guKrguIEKK+C4nuC4quC4mQor4Lie4Liq4Li4CivguJ7guKrguLjguKrguIfguIHguKPguLLguJnguJXguYwKK+C4nuC4q+C4pQor4Lie4Lir4Li4CivguJ7guKvguLjguKUKK+C4nuC4q+C4uQor4Lie4LitCivguJ7guYjguK0KK+C4nuC5ieC4rQor4Lie4Lit4LiBCivguJ7guK3guIHguJ7guLnguJkKK+C4nuC4reC4hOC5gOC4geC4leC4muC4uOC4hAor4Lie4LmI4Lit4LiE4LmJ4Liy4LiV4Li14LmA4Lih4Li14LiiCivguJ7guK3guIcKK+C4nuC5ieC4reC4hwor4Lie4Lit4LiZCivguJ7guYnguK3guKEKK+C4nuC4reC5guC4peC5gOC4meC4teC4ouC4oQor4Lie4LiwCivguJ7guYjguLAKK+C4nuC4sOC4h+C4sgor4Lie4Liw4LiH4Liy4LiaCivguJ7guLDguIfguLLguJrguYYKK+C4nuC4sOC4iOC4hwor4Lie4Liw4LiX4Liz4Lih4Liw4Lij4LiHCivguJ7guLDguJnguK0KK+C4nuC4sOC5gOC4meC5ieC4suC4nuC4sOC4meC4rQor4Lie4Liw4LmA4LiZ4LmJ4Liy4Lie4Liw4LiZ4Li24LiHCivguJ7guLDguYDguJnguLTguJkKK+C4nuC4sOC5gOC4meC4teC4ouC4hwor4Lie4Liw4LmB4LiZ4LiHCivguJ7guLDguYTguJnguKIKK+C4nuC4sOC4nuC4suC4mQor4Lie4Liw4Lie4Li04LiHCivguJ7guLDguYDguJ7guLTguIcKK+C4nuC4sOC4ouC4reC4oQor4Lie4Liw4Lii4Li44Lie4Lii4Li44LiHCivguJ7guLDguKLguLnguIcKK+C4nuC4sOC4ouC4ueC4mQor4Lie4Liw4LmA4Lii4Li04LiaCivguJ7guLDguYDguKLguLTguJrguYYKK+C4nuC4sOC5gOC4ouC4teC4ogor4Lie4Liw4Lij4Li44LiH4Lie4Liw4Lij4Lix4LiHCivguJ7guLDguYDguKXguKIKK+C4nuC4sOC5guC4peC5iQor4Lie4Liw4LmE4LilCivguJ7guLDguKfguIcKK+C4nuC4sOC4p+C4seC4geC4nuC4sOC4p+C4mQor4Lie4Liw4Lin4LiyCivguJ7guLDguKfguYnguLLguJ7guLDguKfguLHguIcKK+C4nuC4sOC4reC4hwor4Lie4Liw4Lit4Liy4LiB4Lie4Liw4Lit4LizCivguJ7guLDguK3guLfguJTguJ7guLDguK3guKEKK+C4nuC4seC4gQor4Lie4Lix4LiB4LiV4Lij4LmMCivguJ7guLHguIHguJXguKPguLIKK+C4nuC4seC4geC4leC4sgor4Lie4Lix4LiB4LmB4Lie4LinCivguJ7guLHguIHguKMKK+C4nuC4seC4hwor4Lie4Lix4LiH4LiB4LiyCivguJ7guLHguIfguITguLIKK+C4nuC4seC4h+C4h+C4sgor4Lie4Lix4LiH4Lic4Li34LiUCivguJ7guLHguIfguJ7guKfguKIKK+C4nuC4seC4h+C4nuC4reC4mQor4Lie4Lix4LiH4Lie4Liy4LiZCivguJ7guLHguIfguJ7guLLguJoKK+C4nuC4seC4h+C5gOC4nuC4ogor4Lie4Lix4LiH4Lil4Liy4LiHCivguJ7guLHguIoKK+C4nuC4seC4iuC4meC4tQor4Lie4Lix4LiK4LijCivguJ7guLHguI3guIjguIEKK+C4nuC4seC4jeC4iOC4meC5jAor4Lie4Lix4LiS4LiB4Li1CivguJ7guLHguJLguJnguLAKK+C4nuC4seC4kuC4meC4sgor4Lie4Lix4LiUCivguJ7guLHguJTguIrguLIKK+C4nuC4seC4lOC4i+C4suC4lAor4Lie4Lix4LiU4LiU4Li24LiH4Liq4LmMCivguJ7guLHguJTguYHguJ7guKcKK+C4nuC4seC4lOC4q+C4peC4p+C4hwor4Lie4Lix4LiV4LiV4Li04LiH4Liq4LiwCivguJ7guLHguJXguKMKK+C4nuC4seC4l+C4mOC5jAor4Lie4Lix4LiX4LiY4Lii4LiyCivguJ7guLHguJfguKMKK+C4nuC4seC4mQor4Lie4Lix4LiZ4LiH4Li5CivguJ7guLHguJnguIjguLMKK+C4nuC4seC4meC5hOC4ieC4mQor4Lie4Lix4LiZ4LiV4Lix4LiZCivguJ7guLHguJnguJXguLkKK+C4nuC4seC4meC4l+C4suC4hwor4Lie4Lix4LiZ4LiY4LmMCivguJ7guLHguJnguJjguJnguLAKK+C4nuC4seC4meC4mOC4meC4swor4Lie4Lix4LiZ4LiY4LiwCivguJ7guLHguJnguJjguLgKK+C4nuC4seC4meC4mOC4uOC5jAor4Lie4Lix4LiZ4Lil4Lit4LiBCivguJ7guLHguJnguKXguLLguKIKK+C4nuC4seC4meC4peC4swor4Lie4Lix4LiZ4Lil4Li24LiBCivguJ7guLHguJnguKXguLbguIHguJ7guLHguJnguKXguLfguK0KK+C4nuC4seC4meC5gOC4peC4tOC4qAor4Lie4Lix4LiZ4LmA4Lit4Li04LiNCivguJ7guLHguJoKK+C4nuC4seC4muC4nOC5iOC4sgor4Lie4Lix4LifCivguJ7guLHguKXguKXguKAKK+C4nuC4seC4peC4p+C4seC4mQor4Lie4Lix4LinCivguJ7guLHguKfguLAKK+C4nuC4seC4qOC4lOC4tQor4Lie4Lix4Liq4LiU4Li4CivguJ7guLHguKrguYDguJTguLIKK+C4nuC4seC4quC4leC4o+C5jAor4Lie4Lix4Liq4LiW4Liy4LiZCivguJ7guLIKK+C4nuC4suC4gQor4Lie4Liy4LiB4LmA4Lie4Li14Lii4LijCivguJ7guLLguIHguKLguYwKK+C4nuC4suC4hwor4Lie4LmI4Liy4LiHCivguJ7guLLguIrguLUKK+C4nuC4suC4kwor4Lie4Liy4LiT4Li04LiKCivguJ7guLLguJPguLTguIrguKLguYwKK+C4nuC4suC4k+C4tOC4meC4tQor4Lie4Liy4LiT4Li1CivguJ7guLLguJQKK+C4nuC4suC4lOC5hOC4ieC4mQor4Lie4Liy4LiVCivguJ7guLLguJcKK+C4nuC4suC4l+C4ouC5jAor4Lie4Liy4LiYCivguJ7guLLguJjguLIKK+C4nuC4suC4mQor4Lie4LmI4Liy4LiZCivguJ7guLLguJnguKMKK+C4nuC4suC4oQor4Lie4Liy4LiiCivguJ7guYjguLLguKIKK+C4nuC4suC4ouC4oeC5ieC4sgor4Lie4Liy4Lii4Lix4LieCivguJ7guLLguKLguLgKK+C4nuC4suC4o+C5jOC5gOC4i+C4gQor4Lie4Liy4Lij4LiTCivguJ7guLLguKPguJPguLAKK+C4nuC4suC4o+C5jOC4leC5gOC4meC4reC4o+C5jAor4Lie4Liy4Lij4LiyCivguJ7guLLguKPguLLguJ/guLTguJkKK+C4nuC4suC4pQor4Lie4Liy4Lil4LiyCivguJ7guLLguKXguLUKK+C4nuC4suC4peC4teC4q+C4peC4suC4ouC4q+C4meC5ieC4sgor4Lie4Liy4Lil4Li44LiBCivguJ7guLLguYLguKUKK+C4nuC4suC5hOC4pQor4Lie4Liy4LiqCivguJ7guLLguKrguJnguYwKK+C4nuC4suC4quC4meC4sgor4Lie4Liy4Liq4Li44LiB4Lij4Li1CivguJ7guYjguLLguKvguYwKK+C4nuC4suC4q+C4meC4sAor4Lie4Liy4Lir4LiwCivguJ7guLLguKvguLIKK+C4nuC4suC4q+C4tOC4o+C4geC4sAor4Lie4Liy4Lir4Li04Lij4LiwCivguJ7guLLguKvguLgKK+C4nuC4suC5gOC4q+C4o+C4lAor4Lie4Liy4LmA4Lir4Li14Lii4LijCivguJ7guLLguKwKK+C4nuC4suC4rOC4q+C4sAor4Lie4Liy4Lis4LiwCivguJ7guLMKK+C4nuC4s+C5huC4nuC4tuC4oeC5hgor4Lie4Liz4LiZ4Lix4LiBCivguJ7guLPguJ7guKfguIEKK+C4nuC4s+C4nuC4tuC4oQor4Lie4Liz4Lil4LiyCivguJ7guLTguIHguKUKK+C4nuC4tOC4geC4quC4tOC4lQor4Lie4Li04LiB4Lix4LiUCivguJ7guLTguIHguLHguJXguLQKK+C4nuC4tOC4geC4seC4mQor4Lie4Li04LiB4Liy4LijCivguJ7guLTguIHguLjguKUKK+C4nuC4tOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lie4Li04LiG4LiZ4LmMCivguJ7guLTguIbguYDguJnguKgKK+C4nuC4tOC4huC5gOC4meC4qOC4p+C4owor4Lie4Li04LiG4Liy4LiVCivguJ7guLTguIcKK+C4nuC4tOC4iOC4pQor4Lie4Li04LiI4Lix4LiiCivguJ7guLTguIjguLLguKMKK+C4nuC4tOC4iOC4suC4o+C4k+C5jAor4Lie4Li04LiI4Liy4Lij4LiT4LiyCivguJ7guLTguIjguLTguJUKK+C4nuC4tOC4iOC4tOC4leC4owor4Lie4Li04LiK4LiN4LmMCivguJ7guLTguIrguKIKK+C4nuC4tOC4iuC4seC4ogor4Lie4Li04LiK4Liy4LiZCivguJ7guLTguIrguLTguJUKK+C4nuC4tOC5gOC4iuC4kAor4Lie4Li04LmA4LiK4Li14Lii4LijCivguJ7guLTguJHguLnguKPguKLguYwKK+C4nuC4tOC4kwor4Lie4Li04LiU4LiX4Li54LilCivguJ7guLTguJTguKPguIEKK+C4nuC4tOC4lOC4suC4mQor4Lie4Li04LmC4LiU4LijCivguJ7guLTguJXguKMKK+C4nuC4tOC4luC4tQor4Lie4Li04LiW4Li14Lie4Li04LiW4Lix4LiZCivguJ7guLTguJfguKLguYwKK+C4nuC4tOC4l+C4ouC4sgor4Lie4Li04LiX4Lix4LiB4Lip4LmMCivguJ7guLTguJfguLHguIHguKnguYzguKrguLHguJnguJXguLQKK+C4nuC4tOC4l+C4ueC4owor4Lie4Li04LmA4LiX4LioCivguJ7guLTguJjguLLguJkKK+C4nuC4tOC4mOC4tQor4Lie4Li04LiY4Li4CivguJ7guLTguJjguLjguKMKK+C4nuC4tOC5guC4mOC5iAor4Lie4Li04LiZ4LiX4Li4CivguJ7guLTguJnguJ7guIcKK+C4nuC4tOC5iOC4meC4nuC4seC5iOC4hwor4Lie4Li04LiZ4Lit4Lia4Lie4Li04LmA4LiX4LiyCivguJ7guLTguJnguLHguKIKK+C4nuC4tOC4meC4suC4qAor4Lie4Li04LiZ4Li04LiICivguJ7guLTguJnguLTguJUKK+C4nuC4tOC4meC4tOC4qAor4Lie4Li04LiZ4Li04Lio4LiI4Lix4LiiCivguJ7guLTguYDguJnguJUKK+C4nuC4tOC4muC4seC4leC4tAor4Lie4Li04Lia4Liy4LiBCivguJ7guLTguJrguLjguKUKK+C4nuC4tOC4muC4ueC4pQor4Lie4Li04Lib4Lij4Li04LiVCivguJ7guLTguJvguKXguLLguKgKK+C4nuC4tOC4m+C4seC4quC4quC4meC4sgor4Lie4Li04Lie4Lij4Lij4LiYCivguJ7guLTguJ7guKPguKPguJjguJnguYwKK+C4nuC4tOC4nuC4seC4geC4nuC4tOC4nuC5iOC4p+C4mQor4Lie4Li04Lie4Lix4LiSCivguJ7guLTguJ7guLHguJLguJnguYwKK+C4nuC4tOC4nuC4suC4geC4qeC5jAor4Lie4Li04Lie4Liy4LiB4Lip4LiyCivguJ7guLTguJ7guLLguJcKK+C4nuC4tOC4nuC4tOC4mAor4Lie4Li04Lig4LieCivguJ7guLTguKDguLHguIoKK+C4nuC4tOC4oOC4suC4hAor4Lie4Li04Lig4Li54Lip4LiT4LiwCivguJ7guLTguYDguKDguIEKK+C4nuC4tOC4oeC4nuC5jAor4Lie4Li04Lih4Lie4LiB4Liy4Lij4Lix4LiHCivguJ7guLTguKHguJ7guLIKK+C4nuC4tOC4oeC5guC4nuC4q+C4meC4sAor4Lie4Li04Lih4LilCivguJ7guLTguKHguYDguKrguJkKK+C4nuC4tOC4oeC4suC4mQor4Lie4Li04Lih4Li44LiCCivguJ7guLTguYLguKHguIHguILguYwKK+C4nuC4tOC5guC4oeC4geC4qeC5jAor4Lie4Li04LmC4Lii4LiB4Lie4Li04LmA4LiB4LiZCivguJ7guLTguYLguKLguIQKK+C4nuC4tOC4owor4Lie4Li04Lij4Lit4LiUCivguJ7guLTguKPguLLguIHguKUKK+C4nuC4tOC4o+C4suC4mgor4Lie4Li04Lij4Liy4LihCivguJ7guLTguKPguLLguKXguLHguKIKK+C4nuC4tOC4o+C4tOC4ouC4sAor4Lie4Li04Lij4Li14LmJ4Lie4Li04LmE4LijCivguJ7guLTguKPguLjguJMKK+C4nuC4tOC4o+C4uOC4mAor4Lie4Li04Lij4Li44Lis4Lir4LmMCivguJ7guLTguYDguKPguJnguJfguKPguYwKK+C4nuC4tOC5gOC4o+C4suC4sAor4Lie4Li04LmC4Lij4LiYCivguJ7guLTguYLguKPguJjguJnguLAKK+C4nuC4tOC5hOC4owor4Lie4Li04Lil4Lix4LiH4LiB4Liy4Liq4LiyCivguJ7guLTguKXguLLguJsKK+C4nuC4tOC4peC4suC4peC4qgor4Lie4Li04Lil4Liy4LiqCivguJ7guLTguKXguLTguJvguJTguLIKK+C4nuC4tOC5guC4peC4pQor4Lie4Li04LmE4LilCivguJ7guLTguKgKK+C4nuC4tOC4qOC4p+C4hwor4Lie4Li04Lio4Lin4Liy4LiqCivguJ7guLTguKjguLLguKUKK+C4nuC4tOC4qOC4uOC4l+C4mOC4tOC5jAor4Lie4Li04LmA4Lio4LipCivguJ7guLTguKkKK+C4nuC4tOC4qeC4kOC4suC4mQor4Lie4Li04Lip4LiZ4Liy4Lio4LiZ4LmMCivguJ7guLTguKrguJTguLLguKMKK+C4nuC4tOC4quC4oeC4owor4Lie4Li04Liq4Lih4Lix4LiiCivguJ7guLTguKrguLHguIcKK+C4nuC4tOC4quC4seC4igor4Lie4Li04Liq4Lix4LiN4LiN4Li1CivguJ7guLTguKrguLHguKIKK+C4nuC4tOC4quC4tOC4kAor4Lie4Li04Liq4Li44LiX4LiY4Li04LmMCivguJ7guLTguKrguLnguIjguJnguYwKK+C4nuC4tOC4q+C4hAor4Lie4Li04Lir4Liy4LijCivguJ7guLTguKzguLLguKMKK+C4nuC4tQor4Lie4Li14LmICivguJ7guLXguYkKK+C4nuC4teC4igor4Lie4Li14LiK4LiE4LiT4Li04LiVCivguJ7guLXguYnguYLguJ7guYkKK+C4nuC4teC4o+C4sOC4oeC4tOC4lAor4Lie4Li24LiHCivguJ7guLbguYjguIcKK+C4nuC4tuC5iOC4mgor4Lie4Li24LihCivguJ7guLbguKHguJ7guLMKK+C4nuC4t+C4igor4Lie4Li34LiUCivguJ7guLfguYnguJkKK+C4nuC4uAor4Lie4Li44LiBCivguJ7guLjguIHguLLguKEKK+C4nuC4uOC4hwor4Lie4Li44LmI4LiHCivguJ7guLjguIfguYHguIEKK+C4nuC4uOC4h+C4iOC4hwor4Lie4Li44LiH4LiU4LitCivguJ7guLjguIfguJfguLDguKXguLLguKIKK+C4nuC4uOC4h+C4m+C4peC4sgor4Lie4Li44LiSCivguJ7guLjguJLguLQKK+C4nuC4uOC4lAor4Lie4Li44LiU4LiV4Liy4LiZCivguJ7guLjguJfguJgKK+C4nuC4uOC4l+C4mOC4iuC4suC4lAor4Lie4Li44LiX4LiY4Lij4Lix4LiB4Lip4LiyCivguJ7guLjguJfguJjguLAKK+C4nuC4uOC4l+C4mOC4tAor4Lie4Li44LiX4LmC4LiY4LmICivguJ7guLjguJfguKPguLIKK+C4nuC4uOC4mAor4Lie4Li44LmI4LihCivguJ7guLjguKHguYDguKPguLXguKLguIcKK+C4nuC4uOC5ieC4ogor4Lie4Li5CivguJ7guLnguYgKK+C4nuC4ueC4geC4suC4oQor4Lie4Li54LiUCivguJ7guLnguJkKK+C4nuC4ueC5ieC4mQor4LmA4LieCivguYDguJ7guYfguIEKK+C5gOC4nuC4geC4sgor4LmA4Lie4LiE4LiwCivguYDguJ7guYfguIcKK+C5gOC4nuC5iOC4hwor4LmA4Lie4LmH4LiICivguYDguJ7guIrguInguKXguLnguIHguKPguKPguKEKK+C5gOC4nuC4iuC4jOC4huC4suC4lQor4LmA4Lie4LiK4LijCivguYDguJ7guIrguKPguIHguKXguLHguJoKK+C5gOC4nuC4iuC4o+C4lOC4sgor4LmA4Lie4LiK4Lij4LiZ4Li04Lil4LiI4Li04LiZ4LiU4LiyCivguYDguJ7guIrguKPguJvguKPguLLguJPguLUKK+C5gOC4nuC4iuC4o+C4pOC4geC4qeC5jAor4LmA4Lie4LiK4Lij4Liq4Lix4LiH4LiG4Liy4LiVCivguYDguJ7guIrguKPguKvguKXguLXguIEKK+C5gOC4nuC4iuC4o+C4q+C4tuC4hwor4LmA4Lie4LiK4Lij4Liy4Lii4Li44LiYCivguYDguJ7guYfguI0KK+C5gOC4nuC4keC4ueC4o+C4tOC4ouC5jAor4LmA4Lie4LiT4Li1CivguYDguJ7guYfguJTguJfguLnguKUKK+C5gOC4nuC4lOC4suC4mQor4LmA4Lie4LiV4LijCivguYDguJ7guJcKK+C5gOC4nuC4l+C4meC4sgor4LmA4Lie4LiX4Lii4Liy4LiY4LijCivguYDguJ7guJfguLLguKIKK+C5gOC4nuC4l+C4uOC4muC4suC4ogor4LmA4Lie4LmC4LiX4Lia4Liy4LiiCivguYDguJ7guJnguIHguKfguLTguJkKK+C5gOC4nuC5iOC4meC4nuC5iOC4suC4mQor4LmA4Lie4LiZ4Li14Lii4LiUCivguYDguJ7guYnguKIKK+C5gOC4nuC4o+C4hwor4LmA4Lie4Lij4LiL4Li14LmC4Lit4LiU4Li14LmA4Lih4Li14Lii4LihCivguYDguJ7guKPguLIKK+C5gOC4nuC4o+C4suC4sAor4LmA4Lie4Lij4Li04LiUCivguYDguJ7guKPguLTguKgKK+C5gOC4nuC4o+C4teC4ouC4gQor4LmA4Lie4Lij4Li14Lii4LiHCivguYDguJ7guKPguLXguKLguJoKK+C5gOC4nuC4o+C4teC5ieC4ouC4oQor4LmA4Lie4Lij4Li14Lii4LinCivguYDguJ7guKPguLfguYjguK0KK+C5gOC4nuC4o+C4t+C4reC4hwor4LmA4Lie4LilCivguYDguJ7guKXguIcKK+C5gOC4nuC4peC5h+C4lAor4LmA4Lie4Lil4LmJ4LmC4Lie4Lil4LmJCivguYDguJ7guKXguLIKK+C5gOC4nuC4peC4suC4sAor4LmA4Lie4Lil4Liy4Liw4LmB4Lie4Lil4LiwCivguYDguJ7guKXguLTguIcKK+C5gOC4nuC4peC4tOC4lOC5gOC4nuC4peC4tOC4mQor4LmA4Lie4Lil4Li04LiZCivguYDguJ7guKXguLXguKIKK+C5gOC4nuC4peC4teC5ieC4ogor4LmA4Lie4Lil4Li14LmI4Lii4LiHCivguYDguJ7guKgKK+C5gOC4nuC4qOC4ouC4seC4meC4lOC4owor4LmA4Lie4LiqCivguYDguJ7guKrguKXguLLguJQKK+C5gOC4nuC5iOC4rQor4LmA4Lie4LmJ4LitCivguYDguJ7guK3guLTguI0KK+C5gOC4nuC4sAor4LmA4Lie4Li04LiBCivguYDguJ7guLTguIHguYDguInguKIKK+C5gOC4nuC4tOC4hwor4LmA4Lie4Li04LmI4LiHCivguYDguJ7guLTguJTguYDguJ7guYnguKIKK+C5gOC4nuC4tOC5iOC4oQor4LmA4Lie4Li14LmJ4LiiCivguYDguJ7guLXguKLguIcKK+C5gOC4nuC4teC5ieC4ouC4hwor4LmA4Lie4Li14Lii4LiH4Lit4LitCivguYDguJ7guLXguKLguIrguJnguYwKK+C5gOC4nuC4teC4ouC4mQor4LmA4Lie4Li14LmJ4Lii4LiZCivguYDguJ7guLXguKLguJoKK+C5gOC4nuC4teC4ouC4owor4LmA4Lie4Li34LmI4LitCivguYDguJ7guLfguYjguK3guJkKK+C5geC4ngor4LmB4Lie4LmJCivguYHguJ7guIcKK+C5geC4nuC5iOC4hwor4LmB4Lie4LiH4Lie4Lin4LiiCivguYHguJ7guIfguJ7guKfguKLguJ3guKPguLHguYjguIcKK+C5geC4nuC5h+C4h+C5geC4nuC4pwor4LmB4Lie4LiX4Lii4LmMCivguYHguJ7guJfguKLguLIKK+C5geC4nuC4mQor4LmB4Lie4LmI4LiZCivguYHguJ7guJnguIEKK+C5geC4nuC4meC4h+C5gOC4iuC4tOC4hwor4LmB4Lie4LiZ4LiU4LiyCivguYHguJ7guKMKK+C5geC4nuC4o+C5iAor4LmB4Lie4Lij4LiBCivguYHguJ7guKPguYjguIcKK+C5geC4nuC4o+C4pwor4LmB4Lie4Lij4LmJ4LinCivguYHguJ7guKXguIcKK+C5geC4nuC4peC4l+C4tOC4meC4seC4oQor4LmB4Lie4Lil4LihCivguYHguJ7guKXguYDguKXguYDguJTguLXguKLguKEKK+C5geC4nuC4peC4sAor4LmB4Lie4Lil4Liw4LmC4Lil4LihCivguYHguJ7guKcKK+C5geC4nuC5ieC4pwor4LmB4Lie4Lio4Lii4LmMCivguYHguJ7guKjguKLguLIKK+C5geC4nuC4sAor4LmB4Lie4Liw4LmC4Lil4LihCivguYLguJ4KK+C5guC4nuC4gQor4LmC4Lie4LiB4Lie4Liy4LiiCivguYLguJ7guIcKK+C5guC4nuC4h+C4nuC4suC4hwor4LmC4Lie4LiK4LiM4LiH4LiE4LmMCivguYLguJ7guIvguLTguJXguKPguK3guJkKK+C5guC4nuC4lAor4LmC4Lie4LmB4LiX4Liq4LmA4LiL4Li14Lii4LihCivguYLguJ7guJgKK+C5guC4nuC4mOC4tOC5jAor4LmC4Lie4LiZCivguYLguJ7guYnguJkKK+C5guC4nuC4meC4l+C4sOC4meC4sgor4LmC4Lie4Lia4Liy4LiiCivguYLguJ7guJzguLHguJkKK+C5guC4nuC4ogor4LmC4Lie4Lii4LihCivguYLguJ7guKLguKHguLHguJkKK+C5guC4nuC4ouC4oeC4suC4mQor4LmC4Lie4Lij4LiBCivguYLguJ7guKPguIcKK+C5guC4nuC4o+C5guC4l+C5geC4reC4geC4l+C4tOC5gOC4meC4teC4ouC4oQor4LmC4Lie4Lij4Lih4Li14LmA4LiX4Li14Lii4LihCivguYLguJ7guKPguLDguJTguIEKK+C5guC4nuC4peC5iAor4LmC4Lie4Lil4LiHCivguYLguJ7guKXguYjguIcKK+C5guC4nuC4peC5ieC4hwor4LmC4Lie4Lil4LiZCivguYLguJ7guKXguYnguYDguJ7guKXguYkKK+C5guC4nuC4peC4sAor4LmC4Lie4Liq4LieCivguYTguJ4KK+C5hOC4nuC5iAor4LmE4Lie4LiI4Li04LiV4LijCivguYTguJ7guIrguJkKK+C5hOC4nuC4iuC4ouC4meC4leC5jAor4LmE4Lie4LiR4Li54Lij4Lii4LmMCivguYTguJ7guYLguJTguKMKK+C5hOC4nuC4l+C4tQor4LmE4Lie4Lia4Li54Lil4Lii4LmMCivguYTguJ7guJ7guKPguKPguJMKK+C5hOC4nuC5gOC4nuC4tOC4lAor4LmE4Lie4Lih4Lit4LiBCivguYTguJ7guKHguYnguLIKK+C5hOC4nuC4owor4LmE4Lie4Lij4LmICivguYTguJ7guKPguIjguLTguJXguKMKK+C5hOC4nuC4o+C4iuC4mQor4LmE4Lie4Lij4LiK4Lii4LiZ4LiV4LmMCivguYTguJ7guKPguJHguLnguKPguKLguYwKK+C5hOC4nuC4o+C4l+C4tQor4LmE4Lie4Lij4Lia4Li54Lil4Lii4LmMCivguYTguJ7guKPguYDguKPguLLguLAKK+C5hOC4nuC4o+C4quC4suC4oeC4geC4rQor4LmE4Lie4Lij4Lix4LiKCivguYTguJ7guKPguLMKK+C5hOC4nuC4o+C4tOC4mQor4LmE4Lie4Lij4Li1CivguYTguJ7guKPguLkKK+C5hOC4nuC5gOC4o+C4suC4sAor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMCivguYTguJ7guKUKK+C5hOC4nuC4peC5iAor4LmE4Lie4Lio4Liy4LiCCivguYTguJ7guKjguLLguKUKK+C5hOC4nuC5gOC4qOC4qQor4LmE4Lie4Liq4LieCivguYTguJ7guKrguLTguJAKK+C5hOC4nuC4q+C4suC4owor4LifCivguJ/guIEKK+C4n+C5ieC4hwor4Lif4Lij4Lix4LiB4LmC4LiX4LiqCivguJ/guKPguLUKK+C4n+C4peC4reC4o+C5jOC5guC4iuC4p+C5jAor4Lif4Lil4Li54Lit4Lit4Lij4Li14LiZCivguJ/guYjguK0KK+C4n+C5ieC4rQor4Lif4Lit4LiBCivguJ/guK3guIcKK+C4n+C5iOC4reC4hwor4Lif4LmJ4Lit4LiHCivguJ/guK3guJQKK+C4n+C4reC4mQor4Lif4LmI4Lit4LiZCivguJ/guYnguK3guJkKK+C4n+C5ieC4reC5geC4n+C5iQor4Lif4Lit4Lij4LmM4LihCivguJ/guK3guKPguYzguKHguLLguKXguJTguLXguYTguK7guJTguYwKK+C4n+C4reC4o+C5jOC4oeC4suC4peC4tOC4mQor4Lif4Lit4Liq4LiL4Li04LilCivguJ/guK3guKrguJ/guK3guKPguLHguKoKK+C4n+C4reC4quC5gOC4n+C4lQor4Lif4Liw4Lif4Lix4LiUCivguJ/guLDguJ/guLHguYjguJkKK+C4n+C4sOC4n+C5iOC4suC4ogor4Lif4Lix4LiBCivguJ/guLHguIHguJ/guLjguYnguJkKK+C4n+C4seC4hwor4Lif4Lix4LiH4LiB4LmM4LiK4Lix4LiZCivguJ/guLHguIfguYDguJ7guKPguLLguLAKK+C4n+C4seC4lAor4Lif4Lix4LiZCivguJ/guLHguYjguJkKK+C4n+C4seC5ieC4mQor4Lif4Lix4LiZ4LiK4LmJ4Liy4LiHCivguJ/guYnguLIKK+C4n+C4suC4gQor4Lif4Liy4LiHCivguJ/guYjguLLguIcKK+C4n+C4suC4lAor4Lif4Liy4LiX4Lit4LihCivguJ/guLLguJkKK+C4n+C5ieC4suC4neC5iOC4rQor4Lif4LmI4Liy4LihCivguJ/guYnguLLguKHguLjguYjguKIKK+C4n+C4suC4ogor4Lif4Liy4Lij4LmM4LihCivguJ/guLLguKrguIvguLTguKrguJXguYwKK+C4n+C4tOC4gQor4Lif4Li04LiUCivguJ/guLTguJUKK+C4n+C4tOC4mgor4Lif4Li04Lil4LmM4LihCivguJ/guLTguKfguKrguYwKK+C4n+C4tOC4quC4tOC4geC4quC5jAor4Lif4Li14LmICivguJ/guLXguYkKK+C4n+C4t+C4mQor4Lif4Li34LmJ4LiZCivguJ/guLfguKEKK+C4n+C4uAor4Lif4Li44LmJ4LiHCivguJ/guLjguJUKK+C4n+C4uOC4mQor4Lif4Li44LiaCivguJ/guLjguYjguJoKK+C4n+C4uOC4n+C4sAor4Lif4Li44LmI4Lih4LmA4Lif4Li34Lit4LiiCivguJ/guLjguKXguKrguYHguIHguYrguJsKK+C4n+C4uQor4Lif4Li54LmICivguJ/guLnguIEKK+C4n+C4ueC4lAor4Lif4Li54LihCivguYDguJ/guYfguJQKK+C5gOC4n+C5ieC4mQor4LmA4Lif4Lil4LiU4LmM4Liq4Lib4Liy4Lij4LmMCivguYDguJ/guYnguK0KK+C5gOC4n+C4reC4o+C5jOC4meC4tOC5gOC4iOC4reC4o+C5jAor4LmA4Lif4Lit4Lij4LmM4LmA4Lih4Li14Lii4LihCivguYDguJ/guK3guLAKK+C5gOC4n+C4sAor4LmA4Lif4Li04LiZCivguYDguJ/guLTguKPguYzguJkKK+C5gOC4n+C4teC5ieC4ouC4oQor4LmA4Lif4Li14LmJ4Lii4LinCivguYDguJ/guLfguK0KK+C5gOC4n+C4t+C5iOC4rQor4LmA4Lif4Li34LmJ4LitCivguYDguJ/guLfguK3guIcKK+C5gOC4n+C4t+C5ieC4reC4hwor4LmA4Lif4Li34Lit4LiZCivguYDguJ/guLfguK3guKIKK+C5geC4n+C5iAor4LmB4Lif4LiHCivguYHguJ/guIrguLHguYjguJkKK+C5geC4n+C4mQor4LmB4Lif4LiZ4LiL4Li1CivguYHguJ/guJoKK+C5geC4n+C5ieC4oQor4LmB4Lif4Lij4LmMCivguYHguJ/guKPguJnguYDguIvguLXguKLguKEKK+C5geC4n+C4peC4geC4i+C5jAor4LmB4Lif4Lil4LiVCivguYHguJ/guLAKK+C5guC4n+C4geC4seC4qgor4LmE4LifCivguKAKK+C4oOC4hAor4Lig4LiE4Lin4LiU4Li1CivguKDguITguKfguLHguJUKK+C4oOC4hOC4p+C4seC4l+C4hOC4teC4leC4sgor4Lig4LiE4Lin4Lix4LiZ4LiV4LmMCivguKDguITguKfguLHguKEKK+C4oOC4hOC4p+C4sgor4Lig4LiE4Lin4Liy4LiZCivguKDguITguLHguJnguJfguKXguLIKK+C4oOC4hOC4tOC4meC4tQor4Lig4LiTCivguKDguJPguLTguJTguLIKK+C4oOC4ngor4Lig4Lih4LiB4Liy4LijCivguKDguKHguKMKK+C4oOC4oeC4uAor4Lig4Lih4Li44LiB4LiwCivguKDguKHguLjguIHguLIKK+C4oOC4ouC4seC4meC4leC4o+C4suC4ogor4Lig4Lii4Liy4LiE4LiV4Li0CivguKDguKMKK+C4oOC4o+C4k+C4tQor4Lig4Lij4LiVCivguKDguKPguJXguKfguKPguKPguKkKK+C4oOC4o+C4leC4qOC4suC4quC4leC4o+C5jAor4Lig4Lij4Lij4LiU4LijCivguKDguKPguKPguJTguLIKK+C4oOC4o+C4o+C4ouC4sgor4Lig4Lij4Liw4Lih4LijCivguKDguKPguLDguKHguKPguLUKK+C4oOC4o+C4seC4quC4lOC4suC4qQor4Lig4Lij4Liy4LiU4LijCivguKDguKPguLLguJTguLIKK+C4oOC4o+C4tOC4ouC4sgor4Lig4Lij4Li5CivguKDguKTguIfguITguLLguKMKK+C4oOC4pOC4lOC4gQor4Lig4Lik4LiU4Li1CivguKDguKTguJXguKLguYwKK+C4oOC4pOC4qAor4Lig4Lik4Lip4LiP4LmMCivguKDguKcKK+C4oOC4p+C4seC4hOC4owor4Lig4Lin4Lix4LiH4LiE4LmMCivguKDguLHguIHguILguLAKK+C4oOC4seC4geC4lOC4tQor4Lig4Lix4LiB4LiV4LiwCivguKDguLHguIHguJXguLQKK+C4oOC4seC4geC4qeC5jAor4Lig4Lix4LiECivguKDguLHguITguJnguYwKK+C4oOC4seC4h+C4hOC4sAor4Lig4Lix4LiH4LiE4Li1CivguKDguLHguIgKK+C4oOC4seC4jeC4iuC4sAor4Lig4Lix4LiT4LiR4LmMCivguKDguLHguJPguJHguITguKPguKPguKAKK+C4oOC4seC4k+C4keC4meC4sAor4Lig4Lix4LiT4LiR4Liy4LiE4Liy4LijCivguKDguLHguJPguJHguLLguITguLLguKPguLTguIEKK+C4oOC4seC4k+C4keC4suC4o+C4seC4geC4qeC5jAor4Lig4Lix4LiT4LiR4Li5CivguKDguLHguJUKK+C4oOC4seC4leC4owor4Lig4Lix4LiX4LijCivguKDguLHguJ4KK+C4oOC4seC4ogor4Lig4Lix4Liq4LiU4LiyCivguKDguLHguKrguJXguKPguLIKK+C4oOC4seC4quC4oeC4sAor4Lig4Lix4Liq4Liq4LijCivguKDguLIKK+C4oOC4suC4hAor4Lig4Liy4LiE4Lig4Li54Lih4Li0CivguKDguLLguITguKLguYwKK+C4oOC4suC4hOC4ouC4suC4meC4uOC4p+C4seC4leC4tAor4Lig4Liy4LiE4Li04LiZ4Li1CivguKDguLLguITguLTguYTguJnguKIKK+C4oOC4suC4hOC4tQor4Lig4Liy4LiE4Li14Lii4LiwCivguKDguLLguIrguJnguLAKK+C4oOC4suC4iuC4tQor4Lig4Liy4LiTCivguKDguLLguJPguIEKK+C4oOC4suC4k+C4tQor4Lig4Liy4LiT4Li4CivguKDguLLguJTguKMKK+C4oOC4suC4lOC4sgor4Lig4Liy4LiV4LijCivguKDguLLguJXguLIKK+C4oOC4suC4leC4tOC4geC4sAor4Lig4Liy4LiV4Li04Lii4LiwCivguKDguLLguJXguLgKK+C4oOC4suC4ngor4Lig4Liy4Lie4Lii4LmMCivguKDguLLguJ7guKLguJnguJXguYwKK+C4oOC4suC4oQor4Lig4Liy4LiiCivguKDguLLguKMKK+C4oOC4suC4o+C4lOC4tQor4Lig4Liy4Lij4LiVCivguKDguLLguKPguJXguLUKK+C4oOC4suC4o+C4ouC4l+C4o+C4seC4nuC4ouC5jAor4Lig4Liy4Lij4Lii4LiyCivguKDguLLguKPguYLguKPguIcKK+C4oOC4suC4o+C4sAor4Lig4Liy4Lij4LiyCivguKDguLLguKfguJnguLIKK+C4oOC4suC4p+C4sAor4Lig4Liy4LipCivguKDguLLguKnguIEKK+C4oOC4suC4qeC4k+C5jAor4Lig4Liy4Lip4LiyCivguKDguLLguKnguLTguJUKK+C4oOC4suC4qeC4tQor4Lig4Liy4LiqCivguKDguLLguKrguJnguYwKK+C4oOC4suC4quC4sgor4Lig4Liy4Liq4Li44LijCivguKDguLTguIHguILguLIKK+C4oOC4tOC4geC4guC4uAor4Lig4Li04LiB4LiC4Li44LiZ4Li1CivguKDguLTguIHguKnguLIKK+C4oOC4tOC4geC4qeC4uAor4Lig4Li04LiB4Lip4Li44LiT4Li1CivguKDguLTguIfguITguLLguKMKK+C4oOC4tOC4h+C4qgor4Lig4Li04LiH4Liq4LiZ4LiwCivguKDguLTguIfguKrguKMKK+C4oOC4tOC4jeC5guC4jQor4Lig4Li04LiV4LiV4Li0CivguKDguLTguJcKK+C4oOC4tOC4meC4l+C5jAor4Lig4Li04Lii4LmC4LiiCivguKDguLTguKPguKHguKLguYwKK+C4oOC4tOC4o+C4oeC4ouC5jOC4quC4uOC4o+C4suC4h+C4hOC5jAor4Lig4Li04Lip4Lix4LiKCivguKDguLTguKoKK+C4oOC4tOC4quC4seC4gQor4Lig4Li14LiV4LiwCivguKDguLXguKEKK+C4oOC4teC4o+C4uAor4Lig4Li44LiB4LiV4LmMCivguKDguLjguILguLHguJkKK+C4oOC4uOC4igor4Lig4Li44LiN4LiKCivguKDguLjguJUKK+C4oOC4uOC4oQor4Lig4Li44Lih4Lij4LiwCivguKDguLjguKHguKPguLIKK+C4oOC4uOC4oeC4o+C4tOC4mQor4Lig4Li44Lih4Lij4Li1CivguKDguLjguKHguYDguKPguKgKK+C4oOC4uOC4qgor4Lig4Li5CivguKDguLnguYgKK+C4oOC4ueC5guC4igor4Lig4Li54LiU4Liy4LiUCivguKDguLnguJUKK+C4oOC4ueC4leC4tAor4Lig4Li54LiV4Li1CivguKDguLnguKEKK+C4oOC4ueC4oeC4tAor4Lig4Li54Lih4Li04LiE4Li44LmJ4Lih4LiB4Lix4LiZCivguKDguLnguKHguLTguYHguJ7guYkKK+C4oOC4ueC4oeC4tQor4Lig4Li54Lij4LmC4Lil4LiBCivguKDguLnguKPguLQKK+C4oOC4ueC4o+C4tQor4Lig4Li54Lip4LiyCivguKDguLnguKnguLTguJUKK+C5gOC4oOC4geC4sAor4LmA4Lig4LiE4LiwCivguYDguKDguJXguKPguLIKK+C5gOC4oOC4lwor4LmA4Lig4Lij4LinCivguYDguKDguKPguLQKK+C5gOC4oOC4o+C4tQor4LmA4Lig4Liq4Lix4LiKCivguYDguKDguKrguLHguIrguYDguJ7guKXguLIKK+C5guC4oOC4hAor4LmC4Lig4LiE4LiX4Lij4Lix4Lie4Lii4LmMCivguYLguKDguITguKDguLHguJPguJHguYwKK+C5guC4oOC4hOC4ouC4l+C4o+C4seC4nuC4ouC5jAor4LmC4Lig4LiE4Li04LiZCivguYLguKDguITguLUKK+C5guC4oOC5hOC4hOC4ogor4LmC4Lig4LmE4LiE4Lio4Lin4Lij4Lij4Lii4LmMCivguYLguKDguIoKK+C5guC4oOC4iuC4gQor4LmC4Lig4LiK4LiZ4LmMCivguYLguKDguIrguJnguLAKK+C5guC4oOC4iuC4meC4suC4geC4owor4LmC4Lig4LiK4LiZ4Liy4LiB4Liy4LijCivguYLguKDguIrguJnguLLguKvguLLguKMKK+C5hOC4oOC4o+C4ngor4LmE4Lig4Lij4Li04LiZCivguYTguKDguKPguLUKK+C5hOC4oOC4qeC4seC4iuC4hOC4uOC4o+C4uAor4LmE4Lig4Lip4Lix4LiK4Lii4LmMCivguKEKK+C4oeC4gQor4Lih4LiB4LijCivguKHguIHguKPguIHguLjguJPguJHguKUKK+C4oeC4geC4o+C5gOC4geC4leC4meC5jAor4Lih4LiB4Lij4LiY4Lin4Lix4LiKCivguKHguIHguKPguJ7guLLguKvguJkKK+C4oeC4geC4o+C4suC4geC4owor4Lih4LiB4Lij4Liy4LiE4LihCivguKHguIHguKPguLLguKXguLHguKIKK+C4oeC4geC4o+C4suC4p+C4suC4qgor4Lih4LiB4LiqCivguKHguIHguLjguI4KK+C4oeC4geC4uOC4pQor4Lih4LiE4LiYCivguKHguIYKK+C4oeC4huC4p+C4seC4mQor4Lih4LiG4LiyCivguKHguYjguIcKK+C4oeC4h+C4geC4uOC4jgor4Lih4LiH4LmC4LiB4Lij4LiiCivguKHguIfguITguKUKK+C4oeC4h+C4hOC4peC4iOC4seC4geC4owor4Lih4LiH4LiE4Lil4Lie4Li04LiY4Li1CivguKHguIfguITguKXguKfguLLguJcKK+C4oeC4h+C4hOC4peC4p+C4suC4owor4Lih4LiH4LiE4Lil4Liq4Lih4Lij4LiqCivguKHguIfguITguKXguKrguKHguLHguKIKK+C4oeC4h+C4hOC4peC4quC4ueC4leC4owor4Lih4LiH4LiE4Lil4Lir4Lix4LiV4LiW4Li1CivguKHguJPguJHguYwKK+C4oeC4k+C4keC4gQor4Lih4LiT4LiR4LiZ4LiwCivguKHguJPguJHguJsKK+C4oeC4k+C4keC4pQor4Lih4LiT4LiR4LiyCivguKHguJPguJHguLLguKPguJ4KK+C4oeC4k+C4keC4tOC4owor4Lih4LiT4LmA4LiR4Li14Lii4LijCivguKHguJPguLUKK+C4oeC4lAor4Lih4LiU4LmA4LiX4LmH4LiICivguKHguJTguKLguK3guJoKK+C4oeC4lOC4peC4ueC4gQor4Lih4LiU4Liy4LiiCivguKHguJTguLUKK+C4oeC4leC4sAor4Lih4LiV4Li0CivguKHguJcKK+C4oeC4l+C4meC4sAor4Lih4LiX4LiZ4Li14Lii4LiwCivguKHguJjguLgKK+C4oeC4mOC4uOC4o+C4sAor4Lih4LiZCivguKHguYjguJkKK+C4oeC4meC4leC5jAor4Lih4LiZ4LiV4Lij4LmMCivguKHguJnguJXguKPguLUKK+C4oeC4meC4l+C5jAor4Lih4LiZ4LiX4Li04LijCivguKHguJnguJfguLTguKPguLLguKXguLHguKIKK+C4oeC4meC5gOC4l+C4teC4ouC4owor4Lih4LiZ4Liq4Li04LiB4Liy4LijCivguKHguJnguLHguKoKK+C4oeC4meC4suC5guC4mwor4Lih4LiZ4Li04Lih4LiZ4LiyCivguKHguJnguLTguKXguLIKK+C4oeC4meC4teC4oeC4meC4sgor4Lih4LiZ4Li4CivguKHguJnguLjguI0KK+C4oeC4meC4uOC4qeC4ouC5jAor4Lih4LiZ4Li44Liq4Liy4LijCivguKHguJnguLkKK+C4oeC4meC4ueC4quC4suC4owor4Lih4LmC4LiZCivguKHguYLguJnguKPguLLguKvguYwKK+C4oeC5guC4meC4quC4suC4owor4Lih4LmC4LiZ4Liq4Liy4LmA4Lij4LmICivguKHguYLguJnguKvguYzguKPguLIKK+C4oeC4oeC4seC4h+C4geC4suC4owor4Lih4Lih4Liy4LiBCivguKHguKLguLjguKPguLAKK+C4oeC4ouC4ueC4ggor4Lih4Lii4Li54LijCivguKHguKMKK+C4oeC4o+C4geC4lQor4Lih4Lij4LiE4LiyCivguKHguKPguJHguJsKK+C4oeC4o+C4k+C5jAor4Lih4Lij4LiT4LiwCivguKHguKPguJTguIEKK+C4oeC4o+C4o+C4hAor4Lih4Lij4Lij4LiE4LiyCivguKHguKPguKPguJXguKIKK+C4oeC4o+C4o+C4leC4seC4ogor4Lih4Lij4Lij4LiX4LiZCivguKHguKPguKPguKLguLLguJcKK+C4oeC4o+C4o+C4qQor4Lih4Lij4Liq4Li44LihCivguKHguKPguLHguKHguYDguJfguKgKK+C4oeC4o+C4suC4meC4hOC4p+C4suC4mQor4Lih4Lij4Li04LiICivguKHguKPguLTguKLguLLguJcKK+C4oeC4o+C4teC4iOC4tAor4Lih4Lij4Li4CivguKHguKPguLjguJUKK+C4oeC4pOC4hAor4Lih4Lik4LiE4Lii4LmMCivguKHguKTguIjguInguLIKK+C4oeC4pOC4lOC4gQor4Lih4Lik4LiVCivguKHguKTguJXguIEKK+C4oeC4pOC4leC4ouC4uQor4Lih4Lik4LiX4Li04LiH4LiE4LmMCivguKHguKTguJfguLgKK+C4oeC4pOC4mOC4uAor4Lih4Lik4Lip4LiyCivguKHguKUKK+C4oeC4peC5guC4hAor4Lih4Lil4LiX4Li04LiZCivguKHguKXguJkKK+C4oeC4peC5iOC4mQor4Lih4Lil4Lin4LiBCivguKHguKXguYjguK3guJkKK+C4oeC4peC5iOC4reC4ogor4Lih4Lil4LiwCivguKHguKXguLHguIEKK+C4oeC4peC4seC4h+C5gOC4oeC4peC4t+C4reC4hwor4Lih4Lil4LmJ4LiyCivguKHguKXguLLguIEKK+C4oeC4peC5ieC4suC4hwor4Lih4Lil4Liy4LiZCivguKHguKXguYjguLLguJkKK+C4oeC4peC4suC4ogor4Lih4Lil4Liy4Lii4Li5CivguKHguKXguLLguKcKK+C4oeC4peC5iOC4suC4p+C5gOC4oeC4peC4sgor4Lih4Lil4Liy4Lir4Lij4LiyCivguKHguKXguLTguJkKK+C4oeC4peC4tOC5ieC4mQor4Lih4Lil4Li34LmI4LiZCivguKHguKfguIEKK+C4oeC5iOC4p+C4hwor4Lih4Lin4LiZCivguKHguYjguKfguJkKK+C4oeC5ieC4p+C4mQor4Lih4Lin4LiiCivguKHguYjguKfguKIKK+C4oeC5ieC4p+C4ogor4Lih4Lin4LilCivguKHguKrguLLguKMKK+C4oeC4quC4suC4o+C4gQor4Lih4Liq4Liy4Lij4LiE4Lix4LilCivguKHguKrguLQKK+C4oeC4q+C4geC4o+C4o+C4oQor4Lih4Lir4Lij4LiT4LieCivguKHguKvguKPguKPguIYKK+C4oeC4q+C4o+C4o+C4k+C4ngor4Lih4Lir4Lij4Liq4LieCivguKHguKvguLHguIjguInguKPguLTguKLguLAKK+C4oeC4q+C4seC4k+C4k+C4ngor4Lih4Lir4Lix4LiVCivguKHguKvguLHguJXguIYKK+C4oeC4q+C4seC4l+C4mOC4meC4sAor4Lih4Lir4Lix4LiZ4LiV4LmMCivguKHguKvguLHguJ7guKDguLLguIQKK+C4oeC4q+C4seC4pQor4Lih4Lir4Lix4Lil4LiB4LiwCivguKHguKvguLHguKjguIjguKPguKPguKLguYwKK+C4oeC4q+C4sgor4Lih4Lir4Liy4LiB4LiQ4Li04LiZCivguKHguKvguLLguIHguLLguKwKK+C4oeC4q+C4suC4guC4seC4meC4mOC4gQor4Lih4Lir4Liy4LiI4Lix4LiB4LijCivguKHguKvguLLguIrguJkKK+C4oeC4q+C4suC4iuC4seC4ogor4Lih4Lir4Liy4LiK4Liy4LiV4Li0CivguKHguKvguLLguYLguIrguJXguKPguLHguJUKK+C4oeC4q+C4suC4lOC5hOC4l+C4ogor4Lih4Lir4Liy4LiU4LmA4Lil4LmH4LiBCivguKHguKvguLLguJXguKHguLAKK+C4oeC4q+C4suC5hOC4luC5iAor4Lih4Lir4Liy4LiX4Lin4Li14LibCivguKHguKvguLLguYDguJfguJ4KK+C4oeC4q+C4suC5gOC4l+C4nuC4tQor4Lih4Lir4Liy4LmA4LiX4Lin4Li1CivguKHguKvguLLguJjguLLguJXguLgKK+C4oeC4q+C4suC4meC4o+C4gQor4Lih4Lir4Liy4LiZ4Liq4LiwCivguKHguKvguLLguJnguLTguIHguLLguKIKK+C4oeC4q+C4suC4meC4tOC4pQor4Lih4Lir4Liy4Lia4Lie4Li04LiV4LijCivguKHguKvguLLguJrguKPguLTguIjguLLguIQKK+C4oeC4q+C4suC4muC4seC4k+C4keC4tOC4lQor4Lih4Lir4Liy4Lia4Li44Lij4Li44LipCivguKHguKvguLLguJ7guJkKK+C4oeC4q+C4suC4nuC4o+C4q+C4oQor4Lih4Lir4Liy4Lig4Liy4Lij4LiVCivguKHguKvguLLguKDguLTguYDguJnguKnguIHguKPguKHguJPguYwKK+C4oeC4q+C4suC4oOC4ueC4lQor4Lih4Lir4Liy4LmA4Lih4LiGCivguKHguKvguLLguKLguLLguJkKK+C4oeC4q+C4suC4ouC4uOC4hAor4Lih4Lir4Liy4Lij4LiT4LieCivguKHguKvguLLguKPguLLguIoKK+C4oeC4q+C4suC4o+C4suC4iuC4peC4teC4peC4sgor4Lih4Lir4Liy4Lik4LiB4Lip4LmMCivguKHguKvguLLguKXguLDguKXguKfguKIKK+C4oeC4q+C4suC4peC4sOC4peC4suC4ogor4Lih4Lir4Liy4Lin4LiH4Lio4LmMCivguKHguKvguLLguKfguKPguKPguIQKK+C4oeC4q+C4suC4p+C4seC4lQor4Lih4Lir4Liy4Lin4Li04LiX4Lii4Liy4Lil4Lix4LiiCivguKHguKvguLLguKjguLHguIHguKPguLLguIoKK+C4oeC4q+C4suC4qOC4suC4pQor4Lih4Lir4Liy4Lio4Li54LiZ4Lii4LmMCivguKHguKvguLLguYDguKjguKPguKnguJDguLUKK+C4oeC4q+C4suC4quC4h+C4geC4o+C4suC4meC4leC5jAor4Lih4Lir4Liy4Liq4LiH4LiE4Lij4Liy4LihCivguKHguKvguLLguKrguJTguKHguKDguYwKK+C4oeC4q+C4suC4quC4lOC4swor4Lih4Lir4Liy4Liq4Lih4Li44LiX4LijCivguKHguKvguLLguKrguLHguJnguJnguLTguJrguLLguJUKK+C4oeC4q+C4suC4quC4suC4p+C4gQor4Lih4Lir4Liy4Liq4Liy4Lin4Li04LiB4LiyCivguKHguKvguLLguKrguLTguJfguJjguLTguYLguIrguIQKK+C4oeC4q+C4suC4quC4teC4oeC4sgor4Lih4Lir4Liy4LmA4Liq4Lin4LiBCivguKHguKvguLLguKvguIfguKrguYwKK+C4oeC4q+C4suC4q+C4tOC4h+C4hOC4uOC5jAor4Lih4Lir4Liy4Lit4Liz4LiZ4Liy4LiICivguKHguKvguLLguK3guLPguKHguLLguJXguKLguYwKK+C4oeC4q+C4suC4reC4uOC4iAor4Lih4Lir4Liy4Lit4Li44LiUCivguKHguKvguLLguK3guLjguJvguKPguLLguIHguKMKK+C4oeC4q+C4tAor4Lih4Lir4Li04LiH4Liq4LmMCivguKHguKvguLTguJfguJjguLQKK+C4oeC4q+C4tOC4meC4l+C5jAor4Lih4Lir4Li04Lih4LiyCivguKHguKvguLTguKjguKMKK+C4oeC4q+C4tOC4qOC4p+C4owor4Lih4Lir4Li04LipCivguKHguKvguLTguKnguLUKK+C4oeC4q+C4tuC4oeC4sgor4Lih4Lir4Li44LiU4Li04Lik4LiB4Lip4LmMCivguKHguKvguLjguKPguJTguLUKK+C4oeC4q+C4uOC4o+C4leC4tOC4quC4seC4jeC4jeC4sgor4Lih4Lir4Li5CivguKHguYDguKvguJnguJfguKPguYwKK+C4oeC5gOC4q+C4ouC4h+C4hOC5jAor4Lih4LmA4Lir4LioCivguKHguYDguKvguKjguKfguKMKK+C4oeC5gOC4q+C4qOC4seC4geC4lOC4tOC5jAor4Lih4LmA4Lir4Liq4Lix4LiB4LiC4LmMCivguKHguYDguKvguKrguLQKK+C4oeC5gOC4q+C4quC4tQor4Lih4LmA4Lir4Liy4Lip4LiYCivguKHguYDguKvguLLguKzguLLguKMKK+C4oeC5guC4q+C4hgor4Lih4LmC4Lir4Lij4LiX4Li24LiBCivguKHguYLguKvguKPguKrguJ4KK+C4oeC5guC4q+C4o+C4tQor4Lih4LmC4Lir4Lip4LiYCivguKHguYLguKvguKzguLLguKMKK+C4oeC5hOC4q+C4qOC4p+C4o+C4o+C4ouC5jAor4Lih4LitCivguKHguK3guIcKK+C4oeC5iOC4reC4hwor4Lih4Lit4LiH4LmC4LiB4Lil4Lit4Lii4LiU4LmMCivguKHguK3guIfguITguKPguYjguK0KK+C4oeC5iOC4reC4h+C5gOC4l+C5iOC4hwor4Lih4Lit4LiNCivguKHguYjguK3guJXguYnguK0KK+C4oeC4reC5gOC4leC4reC4o+C5jAor4Lih4Lit4LiZCivguKHguYjguK3guJkKK+C4oeC4reC4meC5hOC4guC5iAor4Lih4Lit4LiaCivguKHguYjguK3guKIKK+C4oeC4reC4o+C5jOC4n+C4teC4mQor4Lih4Lit4Lij4Liw4LiB4Li54LmICivguKHguK3guKXguYLguJfguKoKK+C4oeC5iOC4reC4peC4reC4geC4oeC5iOC4reC5geC4peC4gQor4Lih4LmI4Lit4Liu4LmI4Lit4LihCivguKHguLAKK+C4oeC4sOC4geC4o+C4ueC4lAor4Lih4Liw4LiB4Lil4LmI4LizCivguKHguLDguIHguK3guIEKK+C4oeC4sOC4geC5iOC4reC4hwor4Lih4Liw4LiB4LmI4Lit4LiV4Liy4Lir4Lih4Li5CivguKHguLDguIHguLDguYLguKPguJnguLUKK+C4oeC4sOC4geC4sgor4Lih4Liw4LmA4LiB4Lil4Li34LitCivguKHguLDguYDguIHguLXguYvguKLguIcKK+C4oeC4sOC4guC5iOC4p+C4hwor4Lih4Liw4LiC4Lin4Li04LiUCivguKHguLDguILguLLguKEKK+C4oeC4sOC4guC4suC4oeC5gOC4l+C4qAor4Lih4Liw4LiC4Liy4Lih4Lib4LmJ4Lit4Lih4LiU4Li04LiZCivguKHguLDguYDguILguLfguK0KK+C4oeC4sOC5gOC4guC4t+C4reC4l+C4p+C4suC4ogor4Lih4Liw4LmA4LiC4Li34Lit4LmA4LiX4LioCivguKHguLDguYDguILguLfguK3guJ7guKfguIcKK+C4oeC4sOC5gOC4guC4t+C4reC4oeC4reC4jQor4Lih4Liw4LmB4LiC4LmI4LiZCivguKHguLDguITguLAKK+C4oeC4sOC4hOC4seC4h+C5geC4lOC4hwor4Lih4Liw4LiE4LmI4LiyCivguKHguLDguITguLPguYTguIHguYgKK+C4oeC4sOC4hOC4s+C4lOC4teC4hOC4p+C4suC4ogor4Lih4Liw4LiH4Lix4LiZCivguKHguLDguIfguLHguYjguKcKK+C4oeC4sOC4h+C4uOC4oeC4oeC4sOC4h+C4suC4q+C4peC4sgor4Lih4Liw4LiL4Lix4LiBCivguKHguLDguIvguLLguIcKK+C4oeC4sOC4i+C5iOC4suC4mQor4Lih4Liw4LiU4Liw4LiC4Li14LmJ4LiZ4LiBCivguKHguLDguJTguLHguJkKK+C4oeC4sOC4lOC4sgor4Lih4Liw4LiU4Li54LiBCivguKHguLDguYDguJTguKvguKfguLUKK+C4oeC4sOC5gOC4lOC4t+C5iOC4rQor4Lih4Liw4LiV4LmJ4Lit4LiHCivguKHguLDguJXguLDguJrguLAKK+C4oeC4sOC4leC4suC4lAor4Lih4Liw4LiV4Liy4Lir4Liw4Lij4Li1CivguKHguLDguJXguLUKK+C4oeC4sOC4leC4tuC5iOC4hwor4Lih4Liw4LiV4Li34LmL4LiZCivguKHguLDguJXguLnguKEKK+C4oeC4sOC5geC4leC4gQor4Lih4Liw4LiZ4Liy4LinCivguKHguLDguJvguKPguLLguIcKK+C4oeC4sOC4m+C4o+C4tOC4hwor4Lih4Liw4Lib4LmI4Lit4LiHCivguKHguLDguJ3guYjguK0KK+C4oeC4sOC4nuC4o+C5ieC4suC4pwor4Lih4Liw4Lie4Lil4Lix4LiaCivguKHguLDguJ7guLnguJQKK+C4oeC4sOC5geC4nuC4mQor4Lih4Liw4LmB4Lie4Lij4LmJ4LinCivguKHguLDguYDguJ/guLfguK3guIcKK+C4oeC4sOC5geC4n+C4mQor4Lih4Liw4LmE4LifCivguKHguLDguKHguYjguKfguIcKK+C4oeC4sOC4oeC5iOC4suC4pwor4Lih4Liw4Lih4Li14LmICivguKHguLDguKHguLfguYjguJkKK+C4oeC4sOC4oeC4uOC4lAor4Lih4Liw4LmA4Lih4LitCivguKHguLDguYDguKHguLXguKIKK+C4oeC4sOC5gOC4oeC4t+C5iOC4reC4ogor4Lih4Liw4LmB4LihCivguKHguLDguKLguIcKK+C4oeC4sOC4ouC4oQor4Lih4Liw4Lij4LiwCivguKHguLDguKPguLTguJQKK+C4oeC4sOC4o+C4t+C4mQor4Lih4Liw4Lij4Li44LihCivguKHguLDguKPguLjguKHguKHguLDguJXguLjguYnguKEKK+C4oeC4sOC5gOC4o+C5h+C4hwor4Lih4Liw4LmA4Lij4Li34LmI4Lit4LiHCivguKHguLDguYLguKPguIcKK+C4oeC4sOC4peC4sOC4geC4rQor4Lih4Liw4Lil4Liy4Lij4Lit4LiB4Lix4LiZCivguKHguLDguKXguLMKK+C4oeC4sOC4peC4tAor4Lih4Liw4Lil4Li04LiZCivguKHguLDguKXguLTguYjguKEKK+C4oeC4sOC4peC4tOC5gOC4peC4t+C5ieC4reC4ogor4Lih4Liw4Lil4Li04Lit4LmI4Lit4LiHCivguKHguLDguKXguLfguYjguJkKK+C4oeC4sOC4peC4t+C4oeC4lOC4swor4Lih4Liw4Lil4Li44Lil4Li1CivguKHguLDguKfguLLguKMKK+C4oeC4sOC4q+C4peC4tOC5iOC4oQor4Lih4Liw4Lir4Lin4LiUCivguKHguLDguKvguLDguKvguKHguLHguJQKK+C4oeC4sOC4q+C4seC4pQor4Lih4Liw4Lir4Liy4LiUCivguKHguLDguKvguLTguYjguIcKK+C4oeC4sOC5gOC4q+C4oeC4t+C5iOC4reC4ogor4Lih4Liw4Lit4Li24LiBCivguKHguLDguK7guK3guIHguIHguLLguJnguLUKK+C4oeC4seC4gQor4Lih4Lix4LiB4LiB4Liw4Lil4Li14Lic4LilCivguKHguLHguIHguIHguLDguKrguLHguJkKK+C4oeC4seC4geC4guC4sAor4Lih4Lix4LmI4LiB4LiC4Lix4LmJ4LiBCivguKHguLHguIHguILguLTguIHguLIKK+C4oeC4seC4geC4guC4tOC4geC4suC4iuC4suC4leC4tAor4Lih4Lix4LiB4LiP4LiB4LiwCivguKHguLHguIHguI/guLAKK+C4oeC4seC4hOC4hOC4sAor4Lih4Lix4LiE4LiE4Li44LmA4LiX4Lio4LiB4LmMCivguKHguLHguITguKrguLTguKPguLAKK+C4oeC4seC4huC4p+C4sgor4Lih4Lix4LiG4Lin4Liy4LiZCivguKHguLHguYjguIcKK+C4oeC4seC4h+C4geC4hwor4Lih4Lix4LiH4LiB4LijCivguKHguLHguIfguIHguLgKK+C4oeC4seC4h+C4hOC4peC4sAor4Lih4Lix4LiH4LiE4LmI4LiyCivguKHguLHguIfguITguLjguJQKK+C4oeC4seC4h+C4leC4suC4mQor4Lih4Lix4LiH4Liq4LiwCivguKHguLHguIfguKrguLUKK+C4oeC4seC4h+C4q+C4h+C4seC4mQor4Lih4Lix4LiI4LiI4LiwCivguKHguLHguIjguIjguLgKK+C4oeC4seC4iOC4ieC4o+C4sAor4Lih4Lix4LiI4LiJ4Lij4Li04Lii4LiwCivguKHguLHguIjguInguKPguLUKK+C4oeC4seC4iOC4ieC4sAor4Lih4Lix4LiI4LiJ4LiyCivguKHguLHguIrguIrguLAKK+C4oeC4seC4iuC4iuC4suC4owor4Lih4Lix4LiN4LiI4LiBCivguKHguLHguI3guIjguLIKK+C4oeC4seC4jeC4iuC4tOC4qeC4kAor4Lih4Lix4LiN4LiK4Li04Lip4LiQ4LiyCivguKHguLHguI3guIrguLXguKMKK+C4oeC4seC4jeC4iuC4uAor4Lih4Lix4LiN4LiK4Li44Liq4LiyCivguKHguLHguI3guIrguLnguKrguLIKK+C4oeC4seC4jeC5gOC4iuC4j+C4kOC4sAor4Lih4Lix4LiN4LmA4LiK4LiP4LiQ4Li04LiB4LiyCivguKHguLHguI3guYDguIrguLXguKLguKMKK+C4oeC4seC4j+C4kOC4sAor4Lih4Lix4LiT4LiR4LiZ4LiyCivguKHguLHguJPguJHguLjguIEKK+C4oeC4seC4lAor4Lih4Lix4LiU4Lir4Lih4Li14LmICivguKHguLHguJTguKvguKHguLkKK+C4oeC4seC4lOC4q+C4p+C4suC4ogor4Lih4Lix4LiV4LiV4LiwCivguKHguLHguJXguJXguLHguKIKK+C4oeC4seC4leC4leC4sgor4Lih4Lix4LiV4LiV4Li04LiB4LiyCivguKHguLHguJXguJbguIEKK+C4oeC4seC4leC4luC4peC4uOC4h+C4hOC5jAor4Lih4Lix4LiV4LiiCivguKHguLHguJXguKrguKLguLAKK+C4oeC4seC4leC4quC4ouC4sgor4Lih4Lix4LiV4Liq4LijCivguKHguLHguJXguKrguKPguKPguKLguYwKK+C4oeC4seC4l+C4meC4sAor4Lih4Lix4LiX4LiZ4Li14Lii4LiwCivguKHguLHguJfguKLguLAKK+C4oeC4seC4mOC4ouC4oQor4Lih4Lix4LiY4Lii4Lih4LiyCivguKHguLHguJjguKLguLHguJnguKvguYwKK+C4oeC4seC4mOC4ouC4seC4quC4luC5jAor4Lih4Lix4LiZCivguKHguLHguYjguJkKK+C4oeC4seC4meC4lOC4tQor4Lih4Lix4LiZ4LiV4LiyCivguKHguLHguJnguJbguLAKK+C4oeC4seC4meC4l+C4tOC4owor4Lih4Lix4LiZ4LiX4Li04Lij4Liy4Lil4Lix4LiiCivguKHguLHguJnguYTguKrguYkKK+C4oeC4seC4mgor4Lih4Lix4Lia4LmGCivguKHguLHguYnguKEKK+C4oeC4seC4oeC4oeC4teC5iAor4Lih4Lix4LiiCivguKHguLHguKXguIEKK+C4oeC4seC4peC4peC4sAor4Lih4Lix4Lil4Lil4Li04LiB4LiyCivguKHguLHguKcKK+C4oeC4seC5iOC4pwor4Lih4Lix4Lio4Lii4LiyCivguKHguLHguKrguJTguIEKK+C4oeC4seC4quC4lOC4uAor4Lih4Lix4Liq4LiV4Liy4Lij4LmM4LiUCivguKHguLHguKrguJXguLgKK+C4oeC4seC4quC4oeC4seC5iOC4mQor4Lih4Lix4Liq4Lii4Li04LiUCivguKHguLHguKrguKPguLnguYgKK+C4oeC4seC4quC4peC4tOC4mQor4Lih4Lix4Liq4Liq4Li4CivguKHguLIKK+C4oeC5ieC4sgor4Lih4Liy4LiBCivguKHguLLguITguKrguLTguKPguLAKK+C4oeC4suC4huC4sAor4Lih4LmJ4Liy4LiHCivguKHguLLguIfguKrguLAKK+C4oeC4suC4k+C4ngor4Lih4Liy4LiT4Lin4Li04LiB4LiyCivguKHguLLguJQKK+C4oeC4suC4lOC4sgor4Lih4Liy4LiV4LiH4LiE4LmMCivguKHguLLguJXguKMKK+C4oeC4suC4leC4o+C4geC4suC4owor4Lih4Liy4LiV4Lij4LiI4Lit4LiU4Lij4LiWCivguKHguLLguJXguKPguJDguLLguJkKK+C4oeC4suC4leC4o+C5geC4oeC5ieC4mQor4Lih4Liy4LiV4Lij4Lin4LmI4LiyCivguKHguLLguJXguKPguLIKK+C4oeC4suC4leC4pAor4Lih4Liy4LiV4Lik4LiB4LiwCivguKHguLLguJXguKrguKPguKPguKLguYwKK+C4oeC4suC4leC4seC4h+C4hAor4Lih4Liy4LiV4LiyCivguKHguLLguJXguLLguKHguKvguLAKK+C4oeC4suC4leC4suC4oeC4q+C4seC4ouC4geC4sAor4Lih4Liy4LiV4Liy4Lih4Lir4Lix4Lii4LiB4LiyCivguKHguLLguJXguLLguKHguKvguLHguKLguKLguLTguIHguLIKK+C4oeC4suC4leC4suC4oeC4q+C4sgor4Lih4Liy4LiV4Li04LiBCivguKHguLLguJXguLTguIHguLIKK+C4oeC4suC4leC4tQor4Lih4Liy4LiV4Li4CivguKHguLLguJXguLjguIjguInguLIKK+C4oeC4suC4leC4uOC4o+C4h+C4hOC5jAor4Lih4Liy4LiV4Li44LmA4Lij4LioCivguKHguLLguJXguLjguKXguLAKK+C4oeC4suC4leC4uOC4peC4sgor4Lih4Liy4LiV4Li44Lil4Liy4LiZ4Li1CivguKHguLLguJXguLjguKXguLjguIfguITguYwKK+C4oeC4suC4lwor4Lih4Liy4LiX4LiZCivguKHguYnguLLguJfguKXguLLguKLguYLguKPguIcKK+C4oeC4suC4mOC4ouC4oeC4tOC4geC4sAor4Lih4Liy4LiY4Li44LijCivguKHguLLguJjguLjguKrguKMKK+C4oeC4suC4mOC4ueC4owor4Lih4Liy4LiZCivguKHguYjguLLguJkKK+C4oeC5ieC4suC4mQor4Lih4Liy4LiZ4LieCivguKHguYjguLLguJnguKXguLLguKIKK+C4oeC5iOC4suC4meC4reC4tOC4meC4l+C4meC4tOC4pQor4Lih4Liy4LiZ4LiwCivguKHguLLguJnguLHguJUKK+C4oeC4suC4meC4seC4qgor4Lih4Liy4LiZ4Li04LiVCivguKHguLLguJnguLUKK+C4oeC4suC4meC4uOC4qQor4Lih4Liy4LmC4LiZ4LiK4LiN4LmMCivguKHguLLguJoKK+C4oeC4suC4m+C4gQor4Lih4Liy4Lig4LiyCivguKHguYnguLLguKEKK+C4oeC4suC4ogor4Lih4LmI4Liy4LiiCivguKHguYnguLLguKIKK+C4oeC4suC4ouC4seC4hwor4Lih4Liy4Lii4LiyCivguKHguLLguKMKK+C4oeC4suC4o+C4hAor4Lih4Liy4Lij4LiE4Lit4Lir4Lit4LiiCivguKHguLLguKPguIrguLQKK+C4oeC4suC4o+C4iuC4tOC4lQor4Lih4Liy4Lij4LiU4LijCivguKHguLLguKPguJTguLIKK+C4oeC4suC4o+C5jOC4lOC4tOC4geC4o+C4suC4quC5jAor4Lih4Liy4Lij4Lic4LiI4LiNCivguKHguLLguKPguKLguLIKK+C4oeC4suC4o+C4ouC4suC4lwor4Lih4Liy4Lij4Lin4Li04LiK4Lix4LiiCivguKHguLLguKPguKfguLTguIrguLTguJUKK+C4oeC4suC4o+C5gOC4p+C4leC4suC4pQor4Lih4Liy4Lij4Lio4Lij4Li1CivguKHguLLguKPguKnguLIKK+C4oeC4suC4o+C4quC4seC4h+C4hOC4oQor4Lih4Liy4Lij4Lir4Lix4Lin4LiC4LiZCivguKHguLLguKPguKvguLHguKfguYPguIgKK+C4oeC4suC4o+C4sAor4Lih4Liy4Lij4Liy4LiY4Lit4LiZCivguKHguYnguLLguKPguLMKK+C4oeC4suC4o+C4tAor4Lih4Liy4Lij4Li04LiVCivguKHguLLguKPguLTguKnguLAKK+C4oeC4suC4o+C4tOC4quC4sAor4Lih4Liy4Lij4Li44LiVCivguKHguLLguKPguLjguKHguKHguLLguJXguLjguYnguKEKK+C4oeC4suC4peC4ouC5jAor4Lih4Liy4Lil4Lix4LiiCivguKHguLLguKXguLIKK+C4oeC4suC4peC4suC4leC4tQor4Lih4Liy4Lil4Liy4LmA4Lij4Li14LiiCivguKHguLLguKXguLMKK+C4oeC4suC4peC4tOC4meC4tQor4Lih4Liy4Lil4Li1CivguKHguLLguKXguLjguJUKK+C4oeC4suC4p+C4quC4sAor4Lih4Liy4Lin4Liy4LijCivguKHguLLguKgKK+C4oeC4suC4qgor4Lih4Liy4Liq4LiBCivguKHguYnguLLguKrguLDguJrguLHguJTguIHguLXguJoKK+C4oeC4suC4q+C5jAor4Lih4LmI4Liy4Lir4LmMCivguKHguLLguKvguLTguKoKK+C4oeC5iOC4suC5gOC4q+C4oeC4teC5iOC4ouC4pwor4Lih4Liy4Lis4LiBCivguKHguYnguLLguK3guYnguKfguJkKK+C4oeC4s+C5gOC4peC4t+C4reC4hwor4Lih4Li0CivguKHguLTguIQKK+C4oeC4tOC5iOC4hwor4Lih4Li04LiH4LmC4LiECivguKHguLTguIjguInguLIKK+C4oeC4tOC4iuC4iuC4seC4meC4meC4suC4o+C4tQor4Lih4Li04LiL4LiL4Lix4LiHCivguKHguLTguJQKK+C4oeC4tOC4lOC4q+C4oeC4tQor4Lih4Li04LiV4LijCivguKHguLTguJXguLQKK+C4oeC4tOC4luC4ouC4sgor4Lih4Li04LiW4Li44LiZCivguKHguLTguJfguJjguLAKK+C4oeC4tOC4l+C4mOC4tQor4Lih4Li04LiZ4LiV4Lij4LiyCivguKHguLTguJnguJXguLIKK+C4oeC4tOC4meC4q+C4oeC5ieC4rQor4Lih4Li04LiZ4LmI4LiyCivguKHguLTguJnguYjguLLguKXguYjguLAKK+C4oeC4tOC4meC5iOC4suC5gOC4peC5iOC4sgor4Lih4Li04LmJ4LihCivguKHguLTguKLguLIKK+C4oeC4tOC5hOC4ogor4Lih4Li04Lij4Lix4LiZ4LiV4Li1CivguKHguLTguKXguKXguLTguIHguKPguLHguKEKK+C4oeC4tOC4peC4peC4tOC4muC4suC4o+C5jAor4Lih4Li04Lil4Lix4LiB4LiC4LiwCivguKHguLTguKXguLHguIHguILguLkKK+C4oeC4tOC4peC4suC4lQor4Lih4Li04Lil4Li04LmA4Lih4LiV4LijCivguKHguLTguKrguIHguKPguLUKK+C4oeC4tOC4quC4i+C4sgor4Lih4Li1CivguKHguLXguYgKK+C4oeC4teC4lAor4Lih4Li14LiU4Lii4Lix4LiaCivguKHguLXguYDguJfguJkKK+C4oeC4teC4mQor4Lih4Li14LmI4Liq4Lix4LmJ4LinCivguKHguLbguIEKK+C4oeC4tuC4hwor4Lih4Li24LiH4Lin4Liy4Lie4Liy4LmC4Lin4LiiCivguKHguLbguJkKK+C4oeC4t+C4lAor4Lih4Li34LiZCivguKHguLfguYjguJkKK+C4oeC4t+C4rQor4Lih4Li34LmJ4LitCivguKHguLgKK+C4oeC4uOC4gQor4Lih4Li44LiB4LiU4LiyCivguKHguLjguIHguJTguLLguKvguLLguKMKK+C4oeC4uOC4geC4uOC4owor4Lih4Li44LiB4Li44LilCivguKHguLjguIIKK+C4oeC4uOC5guC4guC5guC4peC4geC4meC4sAor4Lih4Li44LiE4LiE4LiwCivguKHguLjguITguJjguYwKK+C4oeC4uOC4hOC4owor4Lih4Li44LiHCivguKHguLjguYjguIcKK+C4oeC4uOC5ieC4hwor4Lih4Li44LiH4LiB4Lij4Liw4LiV4LmI4Liy4LiiCivguKHguLjguIjguInguLIKK+C4oeC4uOC4iOC4mQor4Lih4Li44LiI4Lil4Li04LiZ4LiX4LmMCivguKHguLjguI3guIjguJnguLAKK+C4oeC4uOC4jeC4igor4Lih4Li44LiQ4Li0CivguKHguLjguJPguJEKK+C4oeC4uOC4k+C4keC4gQor4Lih4Li44LiUCivguKHguLjguJUKK+C4oeC4uOC4leC4leC4sAor4Lih4Li44LiV4LiV4LiyCivguKHguLjguJXguJXguLQKK+C4oeC4uOC4leC4tAor4Lih4Li44LiV4Li04LiH4LiE4LmMCivguKHguLjguJfguIQKK+C4oeC4uOC4l+C4hOC4owor4Lih4Li44LiX4LiX4LiyCivguKHguLjguJfguJjguIrguLAKK+C4oeC4uOC4l+C4mOC4sgor4Lih4Li44LiX4Lij4LiyCivguKHguLjguJfguKPguLTguIHguLIKK+C4oeC4uOC4l+C4sOC4peC4uAor4Lih4Li44LiX4LiyCivguKHguLjguJfguLTguIHguLIKK+C4oeC4uOC4l+C4tOC4h+C4hOC5jAor4Lih4Li44LiX4Li04LiV4LiyCivguKHguLjguJfguLTguJkKK+C4oeC4uOC4l+C4uAor4Lih4Li44LmI4LiZCivguKHguLjguJnguLQKK+C4oeC4uOC4meC4tQor4Lih4Li44LiaCivguKHguLjguJrguYYKK+C4oeC4uOC4oQor4Lih4Li44LmI4LihCivguKHguLjguYnguKEKK+C4oeC4uOC5iOC4ogor4Lih4Li44Lij4LiKCivguKHguLjguKPguJjguLIKK+C4oeC4uOC4peC4quC4sAor4Lih4Li44Lil4Li44LiVCivguKHguLjguKXguLkKK+C4oeC4uOC4quC4peC4tOC4oQor4Lih4Li44Liq4LiwCivguKHguLjguKrguLIKK+C4oeC4uOC4quC4tOC4gQor4Lih4Li44Lir4LiH4Li04LiUCivguKHguLjguKvguJnguYjguLLguKIKK+C4oeC4uOC4q+C4uOC4lQor4Lih4Li54LiBCivguKHguLnguIHguKHguLHguJkKK+C4oeC4ueC4geC4q+C4peC4p+C4hwor4Lih4Li54LiL4Lix4LiHCivguKHguLnguYDguIvguK0KK+C4oeC4ueC4leC4owor4Lih4Li54LmI4LiX4Li54LmICivguKHguLnguJkKK+C4oeC4ueC4oeC4oeC4suC4oQor4Lih4Li54Lij4LiU4Li1CivguKHguLnguKPguJXguLQKK+C4oeC4ueC4o+C4mOC4sgor4Lih4Li54LilCivguKHguLnguKXguLIKK+C4oeC4ueC4peC4tOC4geC4suC4geC4owor4Lih4Li54LmI4Lil4Li14LmICivguKHguLnguYjguYDguKXguYgKK+C4oeC4ueC4quC4tOC4gQor4LmA4LihCivguYDguKHguYfguIEKK+C5gOC4oeC4geC4sOC5gOC4ruC4tOC4o+C4leC4i+C5jAor4LmA4Lih4LiC4Lil4LiyCivguYDguKHguIYKK+C5gOC4oeC4huC4ieC4suC4ogor4LmA4Lih4LiG4Lie4Lix4LiUCivguYDguKHguYfguIcKK+C5gOC4oeC4h+C4reC4sOC4m+C4sgor4LmA4Lih4LmH4LiUCivguYDguKHguJXguJXguLIKK+C5gOC4oeC4leC5hOC4leC4o+C4ogor4LmA4Lih4LiV4LijCivguYDguKHguJXguKPguLTguIEKK+C5gOC4oeC4leC4o+C4tOC4geC4leC4seC4mQor4LmA4Lih4LiW4Li44LiZCivguYDguKHguJcKK+C5gOC4oeC4l+C4meC4tQor4LmA4Lih4LiX4Li04LiZ4Li1CivguYDguKHguJfguLTguKXguYHguK3guKXguIHguK3guK7guK3guKXguYwKK+C5gOC4oeC5guC4lwor4LmA4Lih4LiYCivguYDguKHguJjguLIKK+C5gOC4oeC4mOC4suC4p+C4tQor4LmA4Lih4LiY4Li1CivguYDguKHguJkKK+C5gOC4oeC5iOC4mQor4LmA4Lih4LmJ4LiZCivguYDguKHguJnguYDguJTguKfguLXguYDguKXguLXguKLguKEKK+C5gOC4oeC4meC4l+C4reC4pQor4LmA4Lih4LiZ4Li5CivguYDguKHguYnguKEKK+C5gOC4oeC4ouC5jOC5gOC4lOC4ouC5jAor4LmA4Lih4Lij4Lix4LiiCivguYDguKHguKPguLgKK+C5gOC4oeC4peC5jAor4LmA4Lih4Lil4LiBCivguYDguKHguKXguYfguJQKK+C5gOC4oeC4peC4t+C4reC4hwor4LmA4Lih4Lil4Li34LmI4Lit4LiiCivguYDguKHguKXguLfguYnguK3guKIKK+C5gOC4oeC4qQor4LmA4Lih4LirCivguYDguKHguKvguYwKK+C5gOC4oeC4q+C4mQor4LmA4Lih4LiwCivguYDguKHguLIKK+C5gOC4oeC5iOC4sgor4LmA4Lih4LmJ4LiyCivguYDguKHguYnguLLguYDguITguYnguLIKK+C5gOC4oeC4suC4o+C4tQor4LmA4Lih4Liy4Lil4Li04LiUCivguYDguKHguLLguKXguLUKK+C5gOC4oeC4suC4q+C5jAor4LmA4Lih4Liy4LiwCivguYDguKHguLLguLDguJXguLLguYLguKLguIHguLHguIEKK+C5gOC4oeC4tOC4hwor4LmA4Lih4Li04LiZCivguYDguKHguLTguKUKK+C5gOC4oeC4teC4ogor4LmA4Lih4Li14Lii4LiHCivguYDguKHguLXguYjguKLguIcKK+C5gOC4oeC4teC5ieC4ouC4mQor4LmA4Lih4Li14LmJ4Lii4Lin4LmGCivguYDguKHguLfguK0KK+C5gOC4oeC4t+C5iOC4rQor4LmA4Lih4Li34LmJ4LitCivguYDguKHguLfguK3guIEKK+C5gOC4oeC4t+C4reC4hwor4LmA4Lih4Li34Lit4LiaCivguYDguKHguLfguYjguK3guKIKK+C5geC4oeC5iAor4LmB4Lih4LmJCivguYHguKHguIEKK+C5geC4oeC4geC4meC4teC5gOC4i+C4teC4ouC4oQor4LmB4Lih4LiHCivguYHguKHguIfguIHguLLguJnguLTguJkKK+C5geC4oeC4h+C4geC4suC4meC4teC4qgor4LmB4Lih4LiH4Lib4Liy4LiB4LiI4Lit4LiaCivguYHguKHguIfguYTguJ/guYDguJTguLfguK3guJnguKvguYnguLIKK+C5geC4oeC5iOC4h+C4oeC5ieC4suC4hwor4LmB4Lih4LiH4Lil4Lix4LiBCivguYHguKHguYjguJXguLDguIfguLLguKcKK+C5geC4oeC5iOC4leC4suC4ogor4LmB4Lih4LiZCivguYHguKHguYjguJkKK+C5geC4oeC5ieC4mQor4LmB4Lih4LmJ4LiZ4LmA4LiC4Li14Lii4LiZCivguYHguKHguJnguJTguLLguKPguLTguJkKK+C5geC4oeC5iOC4oeC5iOC4suC4meC4peC4reC4h+C5hOC4mQor4LmB4Lih4LijCivguYHguKHguKXguIcKK+C5geC4oeC4peC4mgor4LmB4Lih4LinCivguYHguKHguYnguKcKK+C5geC4oeC4sAor4LmC4LihCivguYLguKHguYgKK+C5guC4oeC5iQor4LmC4Lih4LiBCivguYLguKHguIHguILguYwKK+C5guC4oeC4geC5guC4hOC4gQor4LmC4Lih4LiB4Lip4LiwCivguYLguKHguIHguLjguKUKK+C5guC4oeC4huC4sAor4LmC4Lih4LiG4Li14Lii4LiwCivguYLguKHguIcKK+C5guC4oeC5iOC4hwor4LmC4Lih4LiH4LiE4Lij4Li44LmI4LihCivguYLguKHguYDguJXguYfguKUKK+C5guC4oeC4l+C4meC4sgor4LmC4Lih4LiZCivguYLguKHguYDguJnguJXguYwKK+C5guC4oeC5guC4meC5geC4i+C5h+C4geC4hOC4suC5hOC4o+C4lOC5jAor4LmC4Lih4LmE4LiZ4LiiCivguYLguKHguKHguLnguKvguYwKK+C5guC4oeC4oeC4ueC4q+C4sAor4LmC4Lih4LmA4LihCivguYLguKHguKPguLIKK+C5guC4oeC4o+C4tQor4LmC4Lih4LmA4Lij4LioCivguYLguKHguKXguLTguJrguJTguLXguJnguLHguKEKK+C5guC4oeC4peC4tQor4LmC4Lih4LmA4Lil4LiB4Li44LilCivguYLguKHguKkKK+C5guC4oeC4qeC4gQor4LmC4Lih4Lip4LiTCivguYLguKHguYDguKrguKoKK+C5guC4oeC5iOC4q+C5jAor4LmC4Lih4Lir4LiwCivguYLguKHguYLguKsKK+C5hOC4oeC4geC4sgor4LmE4Lih4LiE4Lij4Lit4LiZCivguYTguKHguYLguITguIHguKPguLHguKEKK+C5hOC4oeC5guC4hOC4o+C4n+C4tOC4peC5jOC4oQor4LmE4Lih4LmC4LiE4Lij4LmC4Lif4LiZCivguYTguKHguYLguITguKPguKHguLTguYDguJXguK3guKPguYwKK+C5hOC4oeC5guC4hOC4o+C5gOC4oeC4leC4owor4LmE4Lih4LmC4LiE4Lij4Lil4Li04LiV4LijCivguYTguKHguYLguITguKPguYDguKfguJ8KK+C5hOC4oeC4leC4o+C4tQor4LmE4Lih4LmI4LmE4Lih4LmJCivguYTguKHguKLguKPguLLguJoKK+C5hOC4oeC4peC5jAor4LiiCivguKLguIEKK+C4ouC4geC4geC4o+C4sOC4muC4seC4leC4owor4Lii4LiB4LiZCivguKLguIcKK+C4ouC4h+C4ouC4uOC4l+C4mOC5jAor4Lii4LiH4LmC4Lii4LmICivguKLguIrguLjguKPguYDguKfguJcKK+C4ouC4leC4tAor4Lii4LiW4LiyCivguKLguYjguJkKK+C4ouC4meC4leC5jAor4Lii4LiZ4LiV4Lij4LmMCivguKLguKEKK+C4ouC4oeC4gQor4Lii4Lih4LmC4LiU4LiiCivguKLguKHguJnguLIKK+C4ouC4oeC4pQor4Lii4Lij4Lij4Lii4LiHCivguKLguKUKK+C4ouC4pwor4Lii4Lin4LiB4Liq4LiyCivguKLguKfguIcKK+C4ouC4p+C4lAor4Lii4Lin4LiU4Lii4Liy4LiZCivguKLguKfguJkKK+C4ouC4p+C4mgor4Lii4LmJ4Lin4LiiCivguKLguKfguKPguKLguLLguJXguKMKK+C4ouC4p+C4sgor4Lii4Lin4Liy4LiE4Li4CivguKLguKgKK+C4ouC5guC4qgor4Lii4LitCivguKLguK3guIEKK+C4ouC4reC4geC4ouC5ieC4reC4mQor4Lii4LmH4Lit4LiB4LmB4Lii4LmH4LiBCivguKLguYfguK3guIHguYHguKLguYfguIHguYYKK+C4ouC4reC4hwor4Lii4LmI4Lit4LiHCivguKLguYnguK3guIcKK+C4ouC4reC4h+C5hgor4Lii4LmI4Lit4LiH4LmA4Lir4LiH4LmH4LiUCivguKLguK3guJQKK+C4ouC4reC4lOC4iOC4suC4gQor4Lii4Lit4LiZCivguKLguYnguK3guJkKK+C4ouC4reC4mgor4Lii4Lit4LihCivguKLguYjguK3guKEKK+C4ouC5ieC4reC4oQor4Lii4LmI4Lit4LiiCivguKLguYnguK3guKIKK+C4ouC5ieC4reC5geC4ouC5iQor4Lii4LiwCivguKLguYjguLAKK+C4ouC4sOC4h+C4seC4meC4iOC4sOC4hOC4seC4mgor4Lii4Liw4Lii4Lit4LiaCivguKLguLDguKLguLHguJkKK+C4ouC4sOC4ouC4seC4mgor4Lii4Liw4Lii4Liy4LiZCivguKLguLDguKLguYnguLLguKIKK+C4ouC4sOC4ouC5ieC4suC4pwor4Lii4Liw4LmB4Lii4LmJ4LiHCivguKLguLDguKvguLTguJfguLIKK+C4ouC4seC4gQor4Lii4Lix4LiB4LiC4LmMCivguKLguLHguIHguILguLTguJnguLUKK+C4ouC4seC4geC5gOC4nuC4o+C4teC4ogor4Lii4Lix4LiB4Lii4Li14LmI4Lii4Lix4LiB4Lii4Lix4LiZCivguKLguLHguIHguKLguLXguYjguKLguLHguIHguKvguKLguLIKK+C4ouC4seC4geC5geC4ouC5iOC4ouC4seC4geC4ouC4seC4mQor4Lii4Lix4LiB4Lip4LmMCivguKLguLHguIHguKnguLTguJPguLUKK+C4ouC4seC4geC4qeC4tQor4Lii4Lix4LiB4Lir4Lii4Liy4LinCivguKLguLHguIcKK+C4ouC4seC5ieC4hwor4Lii4Lix4LiH4LiB4Liy4Lir4Lil4LiyCivguKLguLHguYjguIfguKLguLfguJkKK+C4ouC4seC4h+C4q+C4ouC4seC4hwor4Lii4Lix4LiK4LmC4LiN4Lib4Lin4Li14LiVCivguKLguLHguIrguJkKK+C4ouC4seC4iuC4oeC4suC4mQor4Lii4Lix4LiNCivguKLguLHguI3guI3guLAKK+C4ouC4seC4jeC4jeC4seC4h+C4hOC5jAor4Lii4Lix4LiQ4Li0CivguKLguLHguJDguLTguKHguJjguLjguIHguLIKK+C4ouC4seC4lAor4Lii4Lix4LiV4Li04Lig4Lix4LiH4LiE4LmMCivguKLguLHguJkKK+C4ouC4seC5iOC4mQor4Lii4Lix4LiZ4LiV4LmMCivguKLguLHguJnguJXguKPguYwKK+C4ouC4seC5iOC4meC4leC4sOC4meC4tQor4Lii4Lix4LiZ4LmA4Lii4LmJ4LiyCivguKLguLHguJoKK+C4ouC4seC4muC5hgor4Lii4Lix4Lia4Lii4Lix4LmJ4LiHCivguKLguLHguYjguKcKK+C4ouC4seC5ieC4pwor4Lii4Lix4LmJ4Lin4LmA4Lii4Li14LmJ4LiiCivguKLguLHguKfguKPguKLguLLguJXguKMKK+C4ouC4seC4qeC4j+C4tAor4Lii4LiyCivguKLguYjguLIKK+C4ouC4suC4gQor4Lii4Liy4LiECivguKLguLLguITguLgKK+C4ouC4suC4hOC4uQor4Lii4Liy4LiHCivguKLguYjguLLguIcKK+C4ouC5iOC4suC4h+C4l+C4o+C4suC4ogor4Lii4Liy4LiI4LiBCivguKLguLLguIjguJkKK+C4ouC4suC4iOC4meC4gQor4Lii4Liy4LiI4LiZ4LiyCivguKLguLLguYTguInguJkKK+C4ouC4suC4iuC4gQor4Lii4Liy4LiUCivguKLguLLguJTguLIKK+C4ouC4suC4leC4meC4sgor4Lii4Liy4LiV4LijCivguKLguLLguJXguKPguLIKK+C4ouC4suC4mQor4Lii4LmI4Liy4LiZCivguKLguLLguJnguIEKK+C4ouC5iOC4suC4meC4geC4reC4muC4meC4suC4hwor4Lii4LmI4Liy4LiZ4LiX4Lij4Liy4LiiCivguKLguYjguLLguJnguJ7guLLguYLguKvguKEKK+C4ouC5iOC4suC4meC4oeC4hOC4p+C4suC4ogor4Lii4Liy4LiZ4Lih4Liy4LioCivguKLguYjguLLguJnguKXguLTguYDguKDguLIKK+C4ouC5iOC4suC4meC4suC4hwor4Lii4LmI4Liy4LiZ4Liy4LiH4LiK4LmJ4Liy4LiHCivguKLguLLguJnguLUKK+C4ouC4suC4meC4uOC4oeC4suC4qAor4Lii4Liy4LiaCivguKLguLLguJrguYYKK+C4ouC5iOC4suC4oQor4Lii4Liy4Lih4LiB4Liy4Lil4Li04LiBCivguKLguLLguKHguYDguIHguLIKK+C4ouC4suC4oeC4seC4geC4geC4suC4owor4Lii4Liy4Lih4Li04LiBCivguKLguLLguKIKK+C4ouC5ieC4suC4ogor4Lii4Liy4Lii4Li1CivguKLguLLguKcKK+C4ouC5ieC4suC4pwor4Lii4Liy4Lin4LiB4Liy4Lil4Li04LiBCivguKLguLLguKfguIrguLXguKfguLTguIEKK+C4ouC4suC4p+C4seC4qgor4Lii4Liy4Lir4Lii4Lix4LiHCivguKLguLLguKvguKLguLIKK+C4ouC4suC4q+C4ouC4tQor4Lii4LizCivguKLguYjguLMKK+C4ouC5ieC4swor4Lii4Liz4Lii4Liy4LihCivguKLguLPguYDguKLguLXguKIKK+C4ouC5iOC4s+C5geC4ouC5iAor4Lii4LmJ4Liz4LmA4Lir4Lii4LitCivguKLguLTguIEKK+C4ouC4tOC4geC5hgor4Lii4Li04LiHCivguKLguLTguYjguIcKK+C4ouC4tOC4h+C4n+C4seC4mQor4Lii4Li04LiP4LiQ4LiwCivguKLguLTguJAKK+C4ouC4tOC4mQor4Lii4Li04LiaCivguKLguLTguJrguYYKK+C4ouC4tOC4m+C4i+C4seC4oQor4Lii4Li04Lib4LiL4Li1CivguKLguLTguYnguKEKK+C4ouC4tOC4oeC4meC4suC4quC4leC4tOC4gQor4Lii4Li04Lir4Lin4LiyCivguKLguLUKK+C4ouC4teC5iAor4Lii4Li14LmI4LiB4LmI4LiyCivguKLguLXguYjguYDguIEKK+C4ouC4teC5iOC5gOC4guC5iOC4hwor4Lii4Li14LmI4LmC4LiWCivguKLguLXguJkKK+C4ouC4teC5iOC5guC4m+C5iQor4Lii4Li14LmI4Lig4Li54LmICivguKLguLXguKPguLLguJ8KK+C4ouC4teC5iOC4quC4gQor4Lii4Li14LmI4Liq4LiHCivguKLguLXguYjguKrguJkKK+C4ouC4teC5iOC4quC4suC4mQor4Lii4Li14LmI4Liq4LmI4Liy4LiZCivguKLguLXguYjguKrguLTguJoKK+C4ouC4teC5iOC4quC4uOC5iOC4mQor4Lii4Li14LmI4Lir4Lij4LiwCivguKLguLXguYjguKvguKPguYjguLIKK+C4ouC4teC5iOC4q+C5ieC4rQor4Lii4Li14LmI4Lir4Li44LiaCivguKLguLbguIHguKLguLfguK0KK+C4ouC4t+C4lAor4Lii4Li34LiZCivguKLguLfguYjguJkKK+C4ouC4t+C4oQor4Lii4Li34LmJ4LitCivguKLguLgKK+C4ouC4uOC4geC4geC4o+C4sOC4muC4seC4leC4owor4Lii4Li44LiB4LiU4Li0CivguKLguLjguIHguJXguYwKK+C4ouC4uOC4geC4leC4tAor4Lii4Li44LiECivguKLguLjguITguJnguJjguKMKK+C4ouC4uOC4hOC4pQor4Lii4Li44LiE4Lil4Lia4Liy4LiXCivguKLguLjguITguLHguJnguJXguYwKK+C4ouC4uOC4hOC4seC4meC4mOC4owor4Lii4Li44LiE4Li44LiZ4LiY4LijCivguKLguLjguIcKK+C4ouC4uOC5iOC4hwor4Lii4Li44LmJ4LiHCivguKLguLjguIfguIHguKfguLLguJQKK+C4ouC4uOC4h+C4m+C4seC4lAor4Lii4Li44LiUCivguKLguLjguJUKK+C4ouC4uOC4leC4tAor4Lii4Li44LiX4LiY4LmMCivguKLguLjguJfguJjguJnguLIKK+C4ouC4uOC4mgor4Lii4Li44LmI4Lia4Lii4Lix4LmI4LiaCivguKLguLjguJrguKLguLTguJoKK+C4ouC4uOC4muC4pQor4Lii4Li44Lie4LiU4Li1CivguKLguLjguJ7guLIKK+C4ouC4uOC4nuC4suC4mQor4Lii4Li44Lie4Liy4Lie4Liy4LilCivguKLguLjguJ7guLLguJ7guLTguJkKK+C4ouC4uOC5iOC4oeC4ouC5iOC4suC4oQor4Lii4Li44LmI4LiiCivguKLguLjguYnguKIKK+C4ouC4uOC4o+C4muC4suC4leC4owor4Lii4Li44Lij4Lii4Liy4LiV4LijCivguKLguLjguKfguJTguLUKK+C4ouC4uOC4p+C4sgor4Lii4Li44Lin4Liy4LiZCivguKLguLjguKvguJrguLLguJXguKMKK+C4ouC4uQor4Lii4Li54LmICivguKLguLnguITguLLguKXguLTguJvguJXguLHguKoKK+C4ouC4ueC4hwor4Lii4Li54LmC4LiUCivguKLguLnguJbguLAKK+C4ouC4ueC4luC4tOC4geC4sgor4Lii4Li54Lib4LiwCivguKLguLnguKPguKLguLLguJXguKMKK+C4ouC4ueC4o+C4tOC4gQor4Lii4Li54LmA4Lij4LiZ4Lix4LiqCivguKLguLnguYDguKPguYDguJnguLXguKLguKEKK+C4ouC4ueC5guC4o+C5gOC4nuC4teC4ouC4oQor4Lii4Li54Lip4LiwCivguKLguLnguYjguK3guLXguYgKK+C5gOC4ouC5iQor4LmA4Lii4LmGCivguYDguKLguIcKK+C5gOC4ouC4i+C4uQor4LmA4Lii4LmH4LiUCivguYDguKLguYfguJkKK+C5gOC4ouC5h+C4meC4leC4suC5guC4nwor4LmA4Lii4LmH4LiZ4LmA4LiV4Liy4LmC4LifCivguYDguKLguYfguJoKK+C5gOC4ouC4oOC4uOC4ouC4ouC4sAor4LmA4Lii4LmJ4LiiCivguYDguKLguK0KK+C5gOC4ouC5iOC4rQor4LmA4Lii4Lit4Lij4Lih4Lix4LiZCivguYDguKLguK3guKcKK+C5gOC4ouC5iOC4reC4q+C4ouC4tOC5iOC4hwor4LmA4Lii4Lit4LiwCivguYDguKLguLIKK+C5gOC4ouC5ieC4sgor4LmA4Lii4Liy4Lin4LmMCivguYDguKLguLLguKfguJ7guLIKK+C5gOC4ouC4suC4p+C4nuC4suC4k+C4tQor4LmA4Lii4Liy4Lin4Lie4Liy4LiZCivguYDguKLguLTguIcKK+C5gOC4ouC4tOC4mQor4LmA4Lii4Li04LmI4LiZCivguYDguKLguLTguJnguKLguK0KK+C5gOC4ouC4tOC4muC5hgor4LmA4Lii4Li04Lia4Lii4Liy4LiaCivguYDguKLguLTguYnguKEKK+C5gOC4ouC4teC4ogor4LmA4Lii4Li14LmI4Lii4LiHCivguYDguKLguLXguKLguIfguJzguLIKK+C5gOC4ouC4teC5iOC4ouC4h+C4reC4ouC5iOC4suC4hwor4LmA4Lii4Li14Lii4LiU4Lii4Lix4LiUCivguYDguKLguLXguKLguJkKK+C5gOC4ouC4teC4ouC4mgor4LmA4Lii4Li14LmI4Lii4LihCivguYDguKLguLXguYjguKLguKHguKfguLTguKHguLLguJkKK+C5gOC4ouC4teC4ouC4o+C4muC4seC4mgor4LmA4Lii4Li14Lii4Lij4Lii4LiHCivguYDguKLguLXguKLguKcKK+C5gOC4ouC4teC5iOC4ouC4pwor4LmA4Lii4Li14LmI4Lii4Lin4LiH4Li14LinCivguYDguKLguLXguKLguKfguKLguIcKK+C5gOC4ouC4teC4ouC4p+C4ouC4sgor4LmA4Lii4Li34LitCivguYDguKLguLfguYjguK0KK+C5gOC4ouC4t+C5ieC4rQor4LmA4Lii4Li34Lit4LiBCivguYDguKLguLfguK3guIcKK+C5gOC4ouC4t+C5iOC4reC4hwor4LmA4Lii4Li34LmJ4Lit4LiHCivguYDguKLguLfguK3guJkKK+C5gOC4ouC4t+C5ieC4reC4mQor4LmB4Lii4LmICivguYHguKLguYkKK+C5geC4ouC4gQor4LmB4Lii4LiHCivguYHguKLguYjguIcKK+C5geC4ouC5ieC4hwor4LmB4Lii4LiH4LmB4Lii4LmICivguYHguKLguIfguYHguKLguYkKK+C5geC4ouC4mgor4LmB4Lii4LmH4LiaCivguYHguKLguKEKK+C5geC4ouC5ieC4oQor4LmB4Lii4LmB4LiqCivguYHguKLguLAKK+C5guC4ogor4LmC4Lii4LmJCivguYLguKLguIEKK+C5guC4ouC4geC4leC4o+C5jAor4LmC4Lii4LiE4LmA4LiB4LiT4LiR4LmMCivguYLguKLguITguKLguLAKK+C5guC4ouC4hOC4sAor4LmC4Lii4LiE4Li04LiZCivguYLguKLguITguLUKK+C5guC4ouC4hwor4LmC4Lii4LmI4LiH4LmGCivguYLguKLguIfguYLguKLguYgKK+C5guC4ouC4iuC4gQor4LmC4Lii4LiK4LiZ4LmMCivguYLguKLguIrguJnguLIKK+C5guC4ouC4lAor4LmC4Lii4LiVCivguYLguKLguJbguLTguIHguLAKK+C5guC4ouC4l+C4sOC4geC4sgor4LmC4Lii4LiY4LiyCivguYLguKLguJkKK+C5guC4ouC4meC4gQor4LmC4Lii4LiZ4Li04LmC4LiqCivguYLguKLguJnguLTguYLguKrguKHguJnguKrguLTguIHguLLguKMKK+C5guC4ouC4meC4tQor4LmC4Lii4Lie4LiZ4LiwCivguYLguKLguKEKK+C5guC4ouC5guC4qgor4LmD4LiiCivguYTguKIKK+C5hOC4ouC5iAor4LmE4Lii4LiU4Li1CivguYTguKLguYTguJ4KK+C5hOC4ouC5hOC4ogor4LmE4Lii4LmI4LmE4Lii4LmICivguKMKK+C4o+C4gQor4Lij4LiB4LiK4LmJ4Liy4LiHCivguKPguIHguJ/guYnguLIKK+C4o+C4hwor4Lij4LiH4LiB4Li44LmMCivguKPguIfguITguYwKK+C4o+C4h+C4o+C4reC4hwor4Lij4LiI4LiZ4LiyCivguKPguIjguYDguKPguIIKK+C4o+C4iOC5gOC4peC4ggor4Lij4LiI4Li04LiVCivguKPguIrguIHguLAKK+C4o+C4iuC4leC4sAor4Lij4LiK4LiZ4Li0CivguKPguIrguJnguLUKK+C4o+C4iuC4meC4teC4ouC5jAor4Lij4LiK4LiwCivguKPguJMKK+C4o+C4lAor4Lij4LiU4Li1CivguKPguJXguJnguLAKK+C4o+C4leC4sAor4Lij4LiV4Li0CivguKPguJYKK+C4o+C4luC4m+C4uOC4h+C4hOC4ngor4Lij4LiW4Lib4Li44LiH4LiE4LinCivguKPguJbguKLguLIKK+C4o+C4luC4suC4meC4tuC4gQor4Lij4LmA4LiW4Liq4Lig4LiwCivguKPguJcKK+C4o+C4l+C4meC4sAor4Lij4LiZCivguKPguYjguJkKK+C4o+C5ieC4mQor4Lij4LiZ4LiUCivguKPguJoKK+C4o+C4muC4qgor4Lij4Lia4Liy4LiNCivguKPguJ4KK+C4o+C4nuC4sgor4Lij4Lie4Li0CivguKPguJ7guLUKK+C4o+C4oQor4Lij4Lih4LiT4Li14Lii4LmMCivguKPguKHguKLguYwKK+C4o+C4oeC5gOC4ouC4qAor4Lij4Lii4LiwCivguKPguKfguIEKK+C4o+C4p+C4hwor4Lij4LmI4Lin4LiHCivguKPguKfguJQKK+C4o+C4p+C4mQor4Lij4LmI4Lin4LiZCivguKPguKfguJoKK+C4o+C4p+C4oQor4Lij4LmI4Lin4LihCivguKPguKfguKIKK+C4o+C4p+C4ouC5hgor4Lij4Lin4LiwCivguKPguKfguLQKK+C4o+C4p+C4tQor4Lij4Lio4LiZ4LiyCivguKPguKoKK+C4o+C4quC4gQor4Lij4Liq4LiZ4LiyCivguKPguKrguKrguLjguITguJnguJjguYwKK+C4o+C4quC4suC4ouC4meC5gOC4p+C4lwor4Lij4Liq4Li04LiBCivguKPguKvguLHguJcKK+C4o+C4q+C4seC4qgor4Lij4Lir4Lix4Liq4Lii4LmMCivguKPguKvguLTguJUKK+C4o+C5guC4qwor4Lij4LitCivguKPguYjguK0KK+C4o+C4reC4gQor4Lij4Lit4LiHCivguKPguYjguK3guIcKK+C4o+C5ieC4reC4hwor4Lij4Lit4LiH4LmA4LiH4LmH4LiHCivguKPguYjguK3guIfguYHguKPguYjguIcKK+C4o+C4reC4lAor4Lij4Lit4LiZCivguKPguYjguK3guJkKK+C4o+C5ieC4reC4mQor4Lij4LmI4Lit4LiZ4LiX4Lit4LiHCivguKPguK3guJoKK+C4o+C4reC4oQor4Lij4Lit4Lih4LiK4Lit4LihCivguKPguK3guKHguKPguYjguK0KK+C4o+C4reC4ogor4Lij4LmI4Lit4LiiCivguKPguYnguK3guKIKK+C4o+C5ieC4reC4ouC4o+C4uQor4Lij4LmI4Lit4LmB4Lij4LmICivguKPguLAKK+C4o+C4sOC4geC4sAor4Lij4Liw4LiB4LiyCivguKPguLDguIHguLMKK+C4o+C4sOC5gOC4geC4sOC4o+C4sOC4geC4sAor4Lij4Liw4LiE4LiZCivguKPguLDguITguLLguIcKK+C4o+C4sOC4hOC4suC4ogor4Lij4Liw4LmA4LiE4LmH4LiU4Lij4Liw4LiE4Liy4LiiCivguKPguLDguYHguITguLAKK+C4o+C4sOC4huC4seC4hwor4Lij4Liw4LiH4LihCivguKPguLDguIfguKHguYTguJ7guKMKK+C4o+C4sOC4h+C4seC4mgor4Lij4Liw4LiH4Lix4Lia4Lie4Li04LipCivguKPguLDguIfguLXguYgKK+C4o+C4sOC5geC4h+C5iQor4Lij4Liw4LmC4LiH4LiB4Lir4Li04LiZCivguKPguLDguIrguKfguKIKK+C4o+C4sOC4lOC4oQor4Lij4Liw4LiU4LiwCivguKPguLDguJTguLHguJoKK+C4o+C4sOC4lOC4sgor4Lij4Liw4LiU4LmI4Liy4LinCivguKPguLDguJTguLkKK+C4o+C4sOC5gOC4lOC5iOC4mQor4Lij4Liw4LmA4LiU4Li14Lii4LiHCivguKPguLDguYHguJQKK+C4o+C4sOC4leC4uQor4Lij4Liw4LiX4LiBCivguKPguLDguJfguJQKK+C4o+C4sOC4l+C4oQor4Lij4Liw4LiX4Lin4LiiCivguKPguLDguJfguK3guJQKK+C4o+C4sOC4l+C4sgor4Lij4Liw4LiX4Li24LiBCivguKPguLDguJfguLbguIcKK+C4o+C4sOC5geC4l+C4sAor4Lij4Liw4LiZ4Lix4LihCivguKPguLDguJnguLLguJQKK+C4o+C4sOC4meC4suC4mgor4Lij4Liw4LiZ4Liy4LihCivguKPguLDguJnguLLguKcKK+C4o+C4sOC5gOC4meC4mQor4Lij4Liw4LmA4LiZ4LiZ4Lij4Liw4LiZ4Liy4LiUCivguKPguLDguYDguJnguKPguLDguJnguLLguJQKK+C4o+C4sOC5gOC4meC4teC4ouC4lAor4Lij4Liw4LmB4LiZ4LiHCivguKPguLDguYHguJnguLAKK+C4o+C4sOC4muC4mgor4Lij4Liw4Lia4LihCivguKPguLDguJrguK3guJoKK+C4o+C4sOC4muC4seC4lAor4Lij4Liw4Lia4Lix4LiaCivguKPguLDguJrguLLguI0KK+C4o+C4sOC4muC4suC4lAor4Lij4Liw4Lia4Liy4LiZ4Li1CivguKPguLDguJrguLLguJnguLXguYkKK+C4o+C4sOC4muC4suC4ogor4Lij4Liw4Lia4LizCivguKPguLDguJrguLQKK+C4o+C4sOC4muC4tOC4pQor4Lij4Liw4Lia4Li34LitCivguKPguLDguJrguLgKK+C4o+C4sOC4muC4uQor4Lij4Liw4LmA4Lia4LiHCivguKPguLDguYDguJrguYfguIcKK+C4o+C4sOC5gOC4muC4tOC4lAor4Lij4Liw4LmA4Lia4Li14Lii4LiHCivguKPguLDguYDguJrguLXguKLguJkKK+C4o+C4sOC5gOC4muC4teC4ouC4mgor4Lij4Liw4LmB4Lia4LiaCivguKPguLDguYPguJoKK+C4o+C4sOC4oeC4seC4lOC4o+C4sOC4p+C4seC4hwor4Lij4Liw4Lih4LiyCivguKPguLDguKHguLLguJQKK+C4o+C4sOC5gOC4oeC4teC4ouC4owor4Lij4Liw4Lii4LmI4LitCivguKPguLDguKLguYjguK3guKEKK+C4o+C4sOC4ouC4sAor4Lij4Liw4Lii4Lix4LiHCivguKPguLDguKLguLHguYnguIcKK+C4o+C4sOC4ouC4seC4lAor4Lij4Liw4Lii4Lix4LiaCivguKPguLDguKLguYnguLIKK+C4o+C4sOC4ouC4suC4mQor4Lij4Liw4Lii4Liy4LiaCivguKPguLDguKLguLLguKHguKPguLDguKLguLHguJoKK+C4o+C4sOC4ouC4swor4Lij4Liw4Lii4Li04Lia4Lij4Liw4Lii4Lix4LiaCivguKPguLDguYLguKLguIcKK+C4o+C4sOC4o+C4p+C4ogor4Lij4Liw4Lij4Lit4LiHCivguKPguLDguKPguYjguK3guJkKK+C4o+C4sOC4o+C4seC4pwor4Lij4Liw4Lij4Liy4LiZCivguKPguLDguKPguYjguLLguKIKK+C4o+C4sOC4o+C4suC4pwor4Lij4Liw4Lij4Li04LiBCivguKPguLDguKPguLXguYgKK+C4o+C4sOC4o+C4tuC4hwor4Lij4Liw4Lij4Li34LmI4LiZCivguKPguLDguKPguLfguYnguJkKK+C4o+C4sOC5gOC4owor4Lij4Liw4LmA4Lij4LmICivguKPguLDguYDguKPguYnguIcKK+C4o+C4sOC5gOC4o+C5h+C4pwor4Lij4Liw4LmA4Lij4Li04LiHCivguKPguLDguYDguKPguLXguKLguIcKK+C4o+C4sOC5gOC4o+C4teC4ouC4oQor4Lij4Liw4LmA4Lij4Li34LmI4Lit4LiiCivguKPguLDguYHguKPguYgKK+C4o+C4sOC5geC4o+C4hwor4Lij4Liw4Lil4LiHCivguKPguLDguKXguKfguIcKK+C4o+C4sOC4peC4reC4gQor4Lij4Liw4Lil4Lix4LiUCivguKPguLDguKXguLbguIEKK+C4o+C4sOC4peC4uOC4gQor4Lij4Liw4Lil4Li44LiHCivguKPguLDguYDguKXguLTguIcKK+C4o+C4sOC5gOC4peC4teC4ouC4lAor4Lij4Liw4Lin4Lix4LiHCivguKPguLDguKfguLHguIfguYTguJ7guKMKK+C4o+C4sOC4p+C4seC4h+C4p+C4seC4mQor4Lij4Liw4Lin4Liy4LiHCivguKPguLDguKfguLLguJTguKPguLDguYTguKcKK+C4o+C4sOC4p+C4suC4oQor4Lij4Liw4Lin4Liy4LiiCivguKPguLDguKfguLTguIcKK+C4o+C4sOC5geC4p+C4hwor4Lij4Liw4LmB4Lin4LiU4Lij4Liw4Lin4Lix4LiHCivguKPguLDguYTguKcKK+C4o+C4sOC4quC4suC4ogor4Lij4Liw4Liq4LmI4Liz4Lij4Liw4Liq4Liy4LiiCivguKPguLDguKrguLUKK+C4o+C4sOC5gOC4quC4tOC4lOC4o+C4sOC4quC4seC4hwor4Lij4Liw4Lir4LiB4Lij4Liw4LmA4Lir4Li04LiZCivguKPguLDguKvguIcKK+C4o+C4sOC4q+C4p+C4ogor4Lij4Liw4Lir4Lin4LmI4Liy4LiHCivguKPguLDguKvguK3guIfguKPguLDguYHguKvguIcKK+C4o+C4sOC4q+C4reC4mgor4Lij4Liw4Lir4Lix4LiUCivguKPguLDguKvguLLguKIKK+C4o+C4sOC4q+C4uOC4ogor4Lij4Liw4LmA4Lir4LmH4LiICivguKPguLDguYDguKvguKIKK+C4o+C4sOC5gOC4q+C4o+C4sOC4q+C4mQor4Lij4Liw4LmA4Lir4Lir4LiZCivguKPguLDguYDguKvguKvguLHguJkKK+C4o+C4sOC5gOC4q+C4tOC4lAor4Lij4Liw4LmA4Lir4Li04LiZ4Lij4Liw4Lir4LiBCivguKPguLDguYHguKvguIEKK+C4o+C4sOC5geC4q+C4hwor4Lij4Liw4LmC4Lir4LiiCivguKPguLDguK3guKHguKPguLDguK3guLIKK+C4o+C4sOC4reC4sgor4Lij4Liw4Lit4Li04LiU4Lij4Liw4Lit4LiyCivguKPguLDguK3guLbguIEKK+C4o+C4sOC4reC4uAor4Lij4Liw4LmB4Lit4LiZCivguKPguLHguIEKK+C4o+C4seC4geC4guC5jAor4Lij4Lix4LiB4LiC4Liq4LiwCivguKPguLHguIHguILguLIKK+C4o+C4seC4geC4guC4tOC4lQor4Lij4Lix4LiB4LiU4LibCivguKPguLHguIHguJTguLAKK+C4o+C4seC4geC4leC4sAor4Lij4Lix4LiB4Lia4Li14LmJCivguKPguLHguIHguYDguKPguYgKK+C4o+C4seC4geC5geC4o+C5iQor4Lij4Lix4LiB4Lip4LmMCivguKPguLHguIHguKnguLIKK+C4o+C4seC4hwor4Lij4Lix4LmJ4LiHCivguKPguLHguIfguYHguIEKK+C4o+C4seC4h+C4hOC5jAor4Lij4Lix4LiH4LiE4Lin4Liy4LiZCivguKPguLHguIfguYHguIQKK+C4o+C4seC4h+C4meC4suC4mQor4Lij4Lix4LiH4Lij4Lit4LiHCivguKPguLHguIfguKfguLHguJQKK+C4o+C4seC4h+C4quC4tAor4Lij4Lix4LiH4Liq4Li04Lih4Lix4LiZ4LiV4Li44LmMCivguKPguLHguIfguKrguLTguKHguLIKK+C4o+C4seC4h+C4quC4tQor4Lij4Lix4LiH4Lir4Lii4Liy4LinCivguKPguLHguIjguInguLIKK+C4o+C4seC4igor4Lij4Lix4LiK4LiB4LiwCivguKPguLHguIrguIrguLgKK+C4o+C4seC4iuC4juC4suC4oOC4tOC5gOC4qeC4gQor4Lij4Lix4LiK4LiZ4LiwCivguKPguLHguIrguJnguLUKK+C4o+C4seC4jeC4iOC4p+C4mQor4Lij4Lix4LiP4LiQ4Liy4Lig4Li04Lib4Liy4Lil4LmC4LiZ4Lia4Liy4LiiCivguKPguLHguJAKK+C4o+C4seC4lAor4Lij4Lix4LiVCivguKPguLHguJXguITguJkKK+C4o+C4seC4leC4leC4seC4jeC4jeC4uQor4Lij4Lix4LiV4LiV4Li0CivguKPguLHguJXguJnguYwKK+C4o+C4seC4leC4meC4sAor4Lij4Lix4LiV4Lih4LiyCivguKPguLHguJYKK+C4o+C4seC4luC4ouC4sgor4Lij4Lix4LiX4LmA4LiX4Lit4Lij4LmM4Lif4Lit4Lij4LmM4LmA4LiU4Li14Lii4LihCivguKPguLHguJkKK+C4o+C4seC5ieC4mQor4Lij4Lix4LiZ4LiK4LiZ4Lij4Lix4LiZ4LmB4LiK4LiHCivguKPguLHguJnguJfguJQKK+C4o+C4seC4meC4l+C4p+C4ogor4Lij4Lix4LiZ4LiX4LizCivguKPguLHguJnguYHguJfguLAKK+C4o+C4seC4meC4mOC4sAor4Lij4Lix4LiaCivguKPguLHguKHguKDguLIKK+C4o+C4seC4oeC4oeC4teC5iAor4Lij4Lix4Lih4Lii4LmMCivguKPguLHguKIKK+C4o+C4seC4pwor4Lij4Lix4LmI4LinCivguKPguLHguYnguKcKK+C4o+C4seC4qOC4oeC4tOC4oeC4seC4leC4tAor4Lij4Lix4Lio4Lih4Li04Lih4Liy4LiZCivguKPguLHguKjguKHguLUKK+C4o+C4seC4qeC4juC4suC4geC4owor4Lij4Lix4Liq4Liq4LiwCivguKPguLIKK+C4o+C5iOC4sgor4Lij4LmJ4LiyCivguKPguLLguIEKK+C4o+C4suC4geC4qeC4qgor4Lij4Liy4LiB4LmC4Lip4LiqCivguKPguLLguIHguKrguLLguJQKK+C4o+C4suC4hOC4sAor4Lij4Liy4LiE4LiyCivguKPguLLguITguLTguJkKK+C4o+C4suC4hOC4tQor4Lij4Liy4LiHCivguKPguYjguLLguIcKK+C4o+C5ieC4suC4hwor4Lij4Liy4LiH4LiI4Li34LiUCivguKPguLLguIfguIrguLLguIcKK+C4o+C4suC4h+C4lOC4swor4Lij4Liy4LiH4LmB4LiU4LiHCivguKPguLLguIfguJnguLLguJkKK+C4o+C4suC4h+C4p+C4seC4pQor4Lij4Liy4LiKCivguKPguLLguIrguI3guLUKK+C4o+C4suC4iuC4lOC4seC4lAor4Lij4Liy4LiK4Lie4Lik4LiB4Lip4LmMCivguKPguLLguIrguKHguLLguJPguJ4KK+C4o+C4suC4iuC4ouC5jAor4Lij4Liy4LiK4LiwCivguKPguLLguIrguLHguJkKK+C4o+C4suC4iuC4seC4meC4ouC5jAor4Lij4Liy4LiK4Lix4LiiCivguKPguLLguIrguLIKK+C4o+C4suC4iuC4suC4ouC4leC4meC4sAor4Lij4Liy4LiK4Liy4Lin4LiU4Li1CivguKPguLLguIrguLQKK+C4o+C4suC4iuC4tOC4meC4tQor4Lij4Liy4LiK4Li1CivguKPguLLguYDguIrguJkKK+C4o+C4suC5gOC4iuC4meC4l+C4o+C4ouC4suC4mQor4Lij4Liy4LiNCivguKPguLLguI3guKPguK3guJkKK+C4o+C4suC4lAor4Lij4Liy4LiVCivguKPguLLguJXguKMKK+C4o+C4suC4leC4o+C4tQor4Lij4Liy4LiV4Lij4Li14Lib4Lij4Liw4LiU4Lix4Lia4LiU4Liy4LinCivguKPguLLguYLguJcKK+C4o+C4suC4mOC4sgor4Lij4Liy4LiZCivguKPguYjguLLguJkKK+C4o+C5ieC4suC4mQor4Lij4Liy4LiaCivguKPguLLguJ7guJPguYwKK+C4o+C4suC4oQor4Lij4Liy4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li04LmMCivguKPguLLguKHguKrguLnguKMKK+C4o+C4suC4oeC4seC4jQor4Lij4Liy4Lih4LiyCivguKPguLLguKIKK+C4o+C5iOC4suC4ogor4Lij4LmJ4Liy4LiiCivguKPguYjguLLguKLguKPguLHguIcKK+C4o+C4suC4pwor4Lij4LmJ4Liy4LinCivguKPguLLguKfguLUKK+C4o+C4suC4qOC4tQor4Lij4Liy4Lip4LiO4LijCivguKPguLLguKnguI7guKPguYwKK+C4o+C4suC4qeC4leC4o+C4tQor4Lij4Liy4Lip4Lij4Liy4LiV4Lij4Li04LiZCivguKPguLLguKnguKPguLLguJXguKPguLUKK+C4o+C4suC4quC4tQor4Lij4Liy4Lir4Li4CivguKPguYjguLLguKvguLjguYwKK+C4o+C4suC4q+C4uQor4Lij4LizCivguKPguYjguLMKK+C4o+C4s+C4hOC4suC4jQor4Lij4Liz4LiH4Lix4LiaCivguKPguLPguIjguKfguJkKK+C4o+C4s+C4i+C4uOC4ogor4Lij4Liz4Lia4Liy4LiNCivguKPguLPguJ7guLHguJkKK+C4o+C4s+C4nuC4suC4ogor4Lij4Liz4Lie4Li24LiHCivguKPguLPguYDguJ7guKIKK+C4o+C4s+C5hOC4ngor4Lij4Liz4Lih4Liw4LmA4LiCCivguKPguLPguKHguLDguJnguLIKK+C4o+C4s+C4oeC4sOC4meC4suC4lAor4Lij4Liz4Lih4Liw4Lij4LmI4LitCivguKPguLPguKLguKfguJkKK+C4o+C4s+C4ouC5ieC4reC4ogor4Lij4Liz4LmB4Lii4LmJCivguKPguYjguLPguKPguKfguKIKK+C4o+C4s+C4o+C4suC4jQor4Lij4Liz4Lij4LizCivguKPguLPguYDguKMKK+C4o+C4s+C5hOC4owor4Lij4Liz4Lil4Li24LiBCivguKPguLPguKvguLHguJQKK+C4o+C4s+C4q+C4seC4qgor4Lij4Li0CivguKPguLTguIEKK+C4o+C4tOC4geC5hgor4Lij4Li04LiU4Liq4Li14LiU4Lin4LiHCivguKPguLTguJkKK+C4o+C4tOC5ieC4mQor4Lij4Li04LiZ4LmGCivguKPguLTguJoKK+C4o+C4tOC4muC4muC4tOC5ieC4mQor4Lij4Li04Lia4Lij4Li14LmICivguKPguLTguJrguKvguKPguLXguYgKK+C4o+C4tOC4m+C4uAor4Lij4Li04Lib4Li5CivguKPguLTguKEKK+C4o+C4tOC5ieC4pwor4Lij4Li04Lip4Lii4LiyCivguKPguLUKK+C4o+C4teC5iAor4Lij4Li14LmJCivguKPguLXguYbguILguKfguLLguIfguYYKK+C4o+C4teC5huC4o+C4reC5hgor4Lij4Li14LiUCivguKPguLXguJTguLHguIHguIrguLHguJkKK+C4o+C4teC4lQor4Lij4Li14LmA4LiZ4Li14Lii4LihCivguKPguLXguJoKK+C4o+C4teC4oQor4Lij4Li14Lij4LitCivguKPguLXguYnguKPguLTguIEKK+C4o+C4tuC4geC4leC5jAor4Lij4Li24LiHCivguKPguLbguYnguIcKK+C4o+C4t+C5iOC4mQor4Lij4Li34LmJ4LiZCivguKPguLfguYnguK0KK+C4o+C4uAor4Lij4Li44LiBCivguKPguLjguIHguILguYwKK+C4o+C4uOC4geC4guC4geC4sAor4Lij4Li44LiB4LiC4LiyCivguKPguLjguIHguKPguLjguKIKK+C4o+C4uOC4geC4qeC4sAor4Lij4Li44LmI4LiHCivguKPguLjguYnguIcKK+C4o+C4uOC4h+C4o+C4seC4hwor4Lij4Li44LiICivguKPguLjguIjguJkKK+C4o+C4uOC4iOC4sgor4Lij4Li44LiI4Li0CivguKPguLjguIjguLTguKPguLAKK+C4o+C4uOC4iOC4tOC4o+C4sgor4Lij4Li44LiI4Li1CivguKPguLjguIrguLIKK+C4o+C4uOC4lAor4Lij4Li44LiVCivguKPguLjguJfguJjguYwKK+C4o+C4uOC4l+C4owor4Lij4Li44LiY4Li04LijCivguKPguLjguYDguJjguLXguKLguKMKK+C4o+C4uOC4mQor4Lij4Li44LmI4LiZCivguKPguLjguJrguKPguLnguYgKK+C4o+C4uOC4muC4suC4geC4suC4owor4Lij4Li44LihCivguKPguLjguYjguKEKK+C4o+C4uOC5iOC4oeC4o+C5iOC4suC4oQor4Lij4Li44LiiCivguKPguLjguYjguKIKK+C4o+C4uOC4o+C4uAor4Lij4Li44Lip4LiP4LmMCivguKPguLjguKvguLAKK+C4o+C4uOC4q+C4suC4jQor4Lij4Li5CivguKPguLnguYgKK+C4o+C4ueC5iQor4Lij4Li54LiI4Li1CivguKPguLnguJQKK+C4o+C4ueC4l+C4teC5gOC4meC4teC4ouC4oQor4Lij4Li54LmJ4LiZ4Lit4LiZCivguKPguLnguJrguLTguYDguJTguLXguKLguKEKK+C4o+C4ueC4mwor4Lij4Li54Lib4Li04Lii4LiwCivguKPguLnguJvguLUKK+C4o+C4ueC5gOC4peC5h+C4leC4leC5jAor4Lij4Li54Lir4LiyCivguYDguKPguYgKK+C5gOC4o+C4ggor4LmA4Lij4LiC4LiyCivguYDguKPguILguLLguITguJPguLTguJUKK+C5gOC4o+C5h+C4hwor4LmA4Lij4LmI4LiHCivguYDguKPguYnguIcKK+C5gOC4o+C4k+C4uAor4LmA4Lij4LiT4Li44LiBCivguYDguKPguJPguLkKK+C5gOC4o+C4lOC4reC4mQor4LmA4Lij4LiU4Liy4Lij4LmMCivguYDguKPguYDguJTguLXguKLguKEKK+C5gOC4o+C5ieC4mQor4LmA4Lij4Lii4Lit4LiHCivguYDguKPguKPguKfguJkKK+C5gOC4o+C5hOC4owor4LmA4Lij4LmH4LinCivguYDguKPguYjguKcKK+C5gOC4o+C4p+C4lOC4tQor4LmA4Lij4LitCivguYDguKPguYjguK0KK+C5gOC4o+C4sgor4LmA4Lij4LmI4LiyCivguYDguKPguYnguLIKK+C5gOC4o+C5iOC4suC5hgor4LmA4Lij4Liy4LiwCivguYDguKPguLTguIcKK+C5gOC4o+C4tOC4lAor4LmA4Lij4Li04LihCivguYDguKPguLTguYjguKEKK+C5gOC4o+C4tOC5ieC4oQor4LmA4Lij4Li04Lio4Lij4LmJ4Liy4LiHCivguYDguKPguLXguYjguKIKK+C5gOC4o+C4teC5ieC4ouC5hgor4LmA4Lij4Li14Lii4LiBCivguYDguKPguLXguKLguIcKK+C5gOC4o+C4teC4ouC4h+C5hgor4LmA4Lij4Li14Lii4LiUCivguYDguKPguLXguKLguJkKK+C5gOC4o+C4teC4ouC4mgor4LmA4Lij4Li14Lii4LihCivguYDguKPguLXguYjguKLguKEKK+C5gOC4o+C4teC4ouC4pwor4LmA4Lij4Li14LmI4Lii4LinCivguYDguKPguLXguYnguKLguKfguKPguIEKK+C5gOC4o+C4t+C4rQor4LmA4Lij4Li34LmI4LitCivguYDguKPguLfguYnguK0KK+C5gOC4o+C4t+C4reC4gQor4LmA4Lij4Li34Lit4LiB4Liq4Lin4LiZCivguYDguKPguLfguK3guIcKK+C5gOC4o+C4t+C5iOC4reC4hwor4LmA4Lij4Li34LmJ4Lit4LiHCivguYDguKPguLfguK3guIfguKPguK3guIcKK+C5gOC4o+C4t+C4reC4lAor4LmA4Lij4Li34Lit4LiZCivguYDguKPguLfguYnguK3guJkKK+C5gOC4o+C4t+C5ieC4reC4ogor4LmB4LijCivguYHguKPguYgKK+C5geC4o+C4gQor4LmB4Lij4LmH4LiB4LmA4LiB4LiVCivguYHguKPguIcKK+C5geC4o+C5iOC4hwor4LmB4Lij4LmJ4LiHCivguYHguKPguYjguIfguKPguLTguYnguKcKK+C5geC4o+C5iOC4h+C5hOC4q+C4oQor4LmB4Lij4LiUCivguYHguKPguYnguJnguYHguITguYnguJkKK+C5geC4o+C4oQor4LmB4Lij4LmJ4LinCivguYHguKPguLAKK+C5guC4owor4LmC4Lij4LmICivguYLguKPguIQKK+C5guC4o+C4hwor4LmC4Lij4LiICivguYLguKPguIjguJnguYwKK+C5guC4o+C5gOC4lOC4teC4ouC4oQor4LmC4Lij4LiV4Li1CivguYLguKPguJcKK+C5guC4o+C4l+C4meC4sAor4LmC4Lij4LiYCivguYLguKPguJjguKMKK+C5guC4o+C5gOC4meC4teC4ouC4pwor4LmC4Lij4Lib4LiZ4LiwCivguYLguKPguKEKK+C5guC4o+C4oeC4seC4jeC4iAor4LmC4Lij4Lih4Lix4LiZCivguYLguKPguKHguLHguJnguITguLLguJfguK3guKXguLTguIEKK+C5guC4o+C5gOC4oeC4reC4o+C5jAor4LmC4Lij4LiiCivguYLguKPguYDguKMKK+C5guC4o+C4qQor4LmC4Lij4Lip4LiT4LiwCivguYLguKPguKvguLTguJPguLUKK+C5guC4o+C4q+C4tOC4lQor4LmE4LijCivguYTguKPguYgKK+C5hOC4o+C5iQor4LmE4Lij4Lif4Lix4LiZCivguYTguKPguKLguYwKK+C4pAor4Lik4LiB4Lip4LmMCivguKTguIHguKnguJPguLAKK+C4pOC4hOC5gOC4p+C4lwor4Lik4LiK4LiyCivguKTguIrguLgKK+C4pOC4kwor4Lik4LiU4Li1CivguKTguJTguLXguKLguLIKK+C4pOC4lOC4uQor4Lik4LiVCivguKTguJXguLTguKLguLIKK+C4pOC4leC4uAor4Lik4LiV4Li44Liq4LiZ4Liy4LiZCivguKTguJfguJjguLIKK+C4pOC4l+C4mOC4tOC5jAor4Lik4LiX4Lix4LiiCivguKTguKnguKAKK+C4pOC4qeC4ouC4sgor4Lik4Lip4Li1CivguKTguYUKK+C4pOC5heC4iuC4uAor4Lik4LmF4LiU4Li1CivguKTguYXguJfguLHguKIKK+C4pOC5heC4qeC4tQor4Lik4LmF4Liq4Liy4LiiCivguKUKK+C4peC4gQor4Lil4LiB4Liy4LijCivguKXguIHguLjguIgKK+C4peC4hOC4uOC4kQor4Lil4LiE4Li44LisCivguKXguIbguLgKK+C4peC4hwor4Lil4LmI4LiHCivguKXguIfguIHguLIKK+C4peC5ieC4h+C5gOC4peC5ieC4hwor4Lil4LiUCivguKXguJTguLIKK+C4peC4mQor4Lil4LmI4LiZCivguKXguYnguJkKK+C4peC4mgor4Lil4Lia4LihCivguKXguJrguK3guIcKK+C4peC4m+C4gQor4Lil4Lib4LiZCivguKXguJ4KK+C4peC4nuC4uOC4igor4Lil4LihCivguKXguYjguKEKK+C4peC5ieC4oQor4Lil4Lih4Liy4LiUCivguKXguKPguKPguKXguLjguIcKK+C4peC4peC4meC4sgor4Lil4Lil4Liy4LiPCivguKXguKXguLTguJUKK+C4peC4p+C4gQor4Lil4Lin4LiHCivguKXguYjguKfguIcKK+C4peC5ieC4p+C4hwor4Lil4Lin4LiH4LiE4LmMCivguKXguKfguIfguYDguKXguYnguLIKK+C4peC4p+C4k+C4sAor4Lil4Lin4LiUCivguKXguYnguKfguJkKK+C4peC4p+C4meC4peC4suC4oQor4Lil4Lin4LiZ4LiwCivguKXguYjguKfguKEKK+C4peC4p+C4sAor4Lil4Lin4Li04LiV4LijCivguKXguKvguLgKK+C4peC4q+C4uOC4geC4sAor4Lil4LmI4LitCivguKXguYnguK0KK+C4peC4reC4gQor4Lil4LmH4Lit4LiB4LmA4LiB4LiVCivguKXguK3guIHguYHguKXguIEKK+C4peC4reC4geC4suC4o+C4tOC4l+C4tuC4oQor4Lil4Lit4LiHCivguKXguYjguK3guIcKK+C4peC4reC4h+C4geC4reC4hwor4Lil4Lit4LiH4LiI4Li04LiI4Li54LiUCivguKXguK3guIfguYTguJkKK+C4peC4reC4lAor4Lil4Lit4LiV4LmA4LiV4Lit4Lij4Li14LmICivguKXguK3guJkKK+C4peC5iOC4reC4mQor4Lil4Lit4LiaCivguKXguK3guKEKK+C4peC5ieC4reC4oQor4Lil4Lit4Lih4LiK4Lit4LihCivguKXguYnguK3guKHguJvguKPguKfguJQKK+C4peC4reC4oeC4nuC4reC4gQor4Lil4Lit4LiiCivguKXguYjguK3guKIKK+C4peC5iOC4reC5geC4peC5iAor4Lil4Lit4Lin4LmM4LmA4Lij4LiZ4LmA4LiL4Li14Lii4LihCivguKXguK3guK0KK+C4peC4sAor4Lil4LmI4LiwCivguKXguLDguIHguKUKK+C4peC4sOC4geC4ueC4oeC4sOC4meC4tOC4qgor4Lil4Liw4LiC4Lix4LiU4Lil4Liw4LiC4Li34LiZCivguKXguLDguITguKMKK+C4peC4sOC4hOC4tAor4Lil4Liw4LiE4Li24LiBCivguKXguLDguIfguLLguJQKK+C4peC4sOC4h+C4tOC4lAor4Lil4Liw4LiV4Li04LiI4Li54LiUCivguKXguLDguJrguKHguKXguLDguJrguK3guIcKK+C4peC4sOC4muC4seC4lAor4Lil4Liw4Lia4Li34LitCivguKXguLDguYDguJrguYfguIcKK+C4peC4sOC5guC4muC4oQor4Lil4Liw4Lih4LmI4Lit4LihCivguKXguLDguKHguLHguYjguIcKK+C4peC4sOC4oeC4sgor4Lil4Liw4Lih4Liy4LiZCivguKXguLDguKHguYnguLLguKIKK+C4peC4sOC4oeC4uAor4Lil4Liw4Lih4Li44LiUCivguKXguLDguKHguLjguJkKK+C4peC4sOC5gOC4oeC5h+C4h+C4peC4sOC4hOC4owor4Lil4Liw4LmA4Lih4LmH4LiUCivguKXguLDguYDguKHguK0KK+C4peC4sOC5gOC4oeC4suC4sAor4Lil4Liw4LmA4Lih4Li04LiUCivguKXguLDguYDguKHguLXguKLguJQKK+C4peC4sOC5gOC4oeC4teC4ouC4mgor4Lil4Liw4LmB4Lih4LiwCivguKXguLDguYLguKHguIEKK+C4peC4sOC5guC4oeC4mgor4Lil4Liw4LmE4LihCivguKXguLDguKPguLUKK+C4peC4sOC4peC4meC4peC4sOC4peC4suC4mQor4Lil4Liw4Lil4Lih4Lil4Liw4Lil4Liy4LiiCivguKXguLDguKXguKfguKIKK+C4peC4sOC4peC4reC4gQor4Lil4Liw4Lil4Lit4Lia4Lil4Liw4LmA4Lil4LmJ4LiyCivguKXguLDguKXguLHguIcKK+C4peC4sOC4peC4seC4lAor4Lil4Liw4Lil4LmJ4LiyCivguKXguLDguKXguLLguJkKK+C4peC4sOC4peC4suC4muC4peC4sOC4peC5ieC4p+C4hwor4Lil4Liw4Lil4Liy4LiiCivguKXguLDguKXguYnguLLguKcKK+C4peC4sOC4peC5iOC4s+C4peC4sOC4peC4seC4gQor4Lil4Liw4Lil4Li04LiaCivguKXguLDguKXguLjguIcKK+C4peC4sOC4peC4uOC4oQor4Lil4Liw4LmA4Lil4LiHCivguKXguLDguYDguKXguYnguLIKK+C4peC4sOC5gOC4peC4suC4sAor4Lil4Liw4LmA4Lil4Liy4Liw4Lil4Liw4Lil4Lit4LiHCivguKXguLDguYDguKXguLTguIcKK+C4peC4sOC5gOC4peC4teC4ouC4lAor4Lil4Liw4LmA4Lil4Li14Lii4LiaCivguKXguLDguYDguKXguLfguK3guIEKK+C4peC4sOC5hOC4peC5iQor4Lil4Liw4Lin4LilCivguKXguLDguKfguYnguK0KK+C4peC4sOC4p+C5ieC4sgor4Lil4Liw4Lin4Liy4LiUCivguKXguLDguYDguKfguIcKK+C4peC4sOC5geC4p+C4gQor4Lil4Liw4LmC4Lin4LmJCivguKXguLDguKvguKHguLLguJQKK+C4peC4sOC4q+C4oeC4suC4lOC4jeC4suC4meC4suC4i+C4sOC4ruC5jAor4Lil4Liw4Lir4Lil4Lix4LiUCivguKXguLDguKvguYnguK3guKIKK+C4peC4sOC4q+C4suC4mQor4Lil4Liw4Lir4Li44LmI4LiHCivguKXguLDguYDguKvguKIKK+C4peC4sOC5gOC4q+C4teC5iOC4ogor4Lil4Liw4Lit4Lit4LiHCivguKXguLDguK3guK3guIfguKHguLHguYjguIcKK+C4peC4sOC4reC4suC4ogor4Lil4Liw4LmA4Lit4Li14Lii4LiUCivguKXguLDguYHguK3guJkKK+C4peC4seC4gQor4Lil4Lix4LiB4LiC4LiT4LiwCivguKXguLHguIHguILguJPguLIKK+C4peC4seC4geC4guC4sAor4Lil4Lix4LiB4LiI4Lix4LmI4LiZCivguKXguLHguIHguJvguLTguJTguKXguLHguIHguYDguJvguLTguJQKK+C4peC4seC4geC4qeC4k+C4sAor4Lil4Lix4LiB4Lip4Lih4LiT4LmMCivguKXguLHguIHguKnguKHguLLguJPguLIKK+C4peC4seC4geC4qeC4oeC4tQor4Lil4Lix4LiB4Lip4LiwCivguKXguLHguITguITguLAKK+C4peC4seC4hOC4meC5jAor4Lil4Lix4LiE4LiZ4LiyCivguKXguLHguIcKK+C4peC4seC5iOC4hwor4Lil4Lix4LiH4LiB4LiyCivguKXguLHguIfguITguLQKK+C4peC4seC4h+C4hOC4tQor4Lil4Lix4LiH4LiW4Li24LiHCivguKXguLHguIfguKXguK3guIcKK+C4peC4seC4h+C5gOC4pQor4Lil4Lix4LiH4Liq4Liy4LiUCivguKXguLHguIrguIrguLIKK+C4peC4seC4iuC4iuC4tQor4Lil4Lix4LiN4LiI4LmMCivguKXguLHguI3guIjguIHguKMKK+C4peC4seC4jeC4iQor4Lil4Lix4LiN4LiJ4LiB4LijCivguKXguLHguI3guInguJnguYwKK+C4peC4seC4kOC4tAor4Lil4Lix4LiQ4Li04LiB4LiyCivguKXguLHguJQKK+C4peC4seC4lOC4sgor4Lil4Lix4LiX4LiY4LmMCivguKXguLHguJfguJjguLQKK+C4peC4seC4mQor4Lil4Lix4LmI4LiZCivguKXguLHguJnguYDguJUKK+C4peC4seC4meC5gOC4leC4sgor4Lil4Lix4LiZ4LmE4LiVCivguKXguLHguYjguJnguJbguLHguJkKK+C4peC4seC5iOC4meC4l+C4oQor4Lil4Lix4LiZ4LiX4Lin4LiiCivguKXguLHguJnguYLguJfguKEKK+C4peC4seC4mgor4Lil4Lix4Lie4LiY4LmMCivguKXguLHguJ7guJjguLQKK+C4peC4seC4oAor4Lil4Lix4Lig4LiZ4LiwCivguKXguLHguKDguKLguYwKK+C4peC4seC4oeC4nuC5jAor4Lil4Lix4LiiCivguKXguLHguKfguLAKK+C4peC4sgor4Lil4LmI4LiyCivguKXguYnguLIKK+C4peC4suC4gQor4Lil4Liy4LiB4Lip4LiyCivguKXguLLguILguLIKK+C4peC4suC4hwor4Lil4LmI4Liy4LiHCivguKXguYnguLLguIcKK+C4peC4suC4h+C4hOC4seC4pQor4Lil4Liy4LiH4LiH4Li04LiUCivguKXguLLguIfguKXguLTguIcKK+C4peC4suC4h+C4quC4suC4lAor4Lil4Liy4LiH4Liy4LiUCivguKXguYnguLLguIfguLLguJQKK+C4peC4suC5gOC4h+C5h+C4lAor4Lil4Liy4LiKCivguKXguLLguIrguLIKK+C4peC4suC4jQor4Lil4Liy4LiUCivguKXguLLguJTguYDguKXguLIKK+C4peC5ieC4suC4leC5ieC4sgor4Lil4LmI4Liy4LmA4LiV4Li14Lii4LiHCivguKXguYnguLLguYDguJXguLXguKLguIcKK+C4peC4suC4mQor4Lil4LmI4Liy4LiZCivguKXguLLguJoKK+C4peC4suC4mwor4Lil4Liy4Lie4Lit4LiZCivguKXguLLguJ7guLgKK+C4peC4suC5gOC4ngor4Lil4Liy4LmA4Lie4LiyCivguKXguLLguKAKK+C4peC4suC4oQor4Lil4LmI4Liy4LihCivguKXguLLguKHguLAKK+C4peC4suC4ogor4Lil4LmJ4Liy4LiiCivguKXguLLguKXguJnguLAKK+C4peC4suC4peC4qgor4Lil4Liy4Lil4LiyCivguKXguLLguKcKK+C4peC4suC4p+C4gQor4Lil4Liy4Lin4Lix4LiT4Lii4LmMCivguKXguLLguKfguLIKK+C4peC4suC4quC4meC4sAor4Lil4LizCivguKXguYjguLMKK+C4peC5ieC4swor4Lil4Liz4LmA4LiC4LmH4LiNCivguKXguLPguYHguIIKK+C4peC4s+C5gOC4hOC5h+C4jQor4Lil4Liz4LmA4LiE4Li34Lit4LiHCivguKXguLPguIfguLLguJQKK+C4peC4s+C5gOC4iOC4teC4ouC4gQor4Lil4Liz4LiU4Lin4LiZCivguKXguLPguJTguLHguJoKK+C4peC4s+C4meC4seC4gQor4Lil4Liz4LmA4LiZ4LiyCivguKXguLPguJrguK3guIcKK+C4peC4s+C4muC4suC4gQor4Lil4Liz4Lia4Li4CivguKXguLPguJvguLMKK+C4peC4s+C4nuC4p+C4mQor4Lil4Liz4Lie4Lit4LiHCivguKXguLPguJ7guLHguIcKK+C4peC4s+C4nuC4uQor4Lil4Liz4LmA4Lie4LmH4LiNCivguKXguLPguYDguJ7guLIKK+C4peC4s+C5geC4nuC4hwor4Lil4Liz4LmB4Lie4LiZCivguKXguLPguYLguJ7guIcKK+C4peC4s+C5hOC4nuC5iAor4Lil4Liz4Lig4Li44LiC4Lix4LiZCivguKXguLPguKHguLDguKXguK3guIEKK+C4peC4s+C4oeC4suC4lAor4Lil4Liz4LmA4Lih4Liy4LiwCivguKXguLPguYDguKHguLXguKLguJoKK+C4peC4s+C4ouC4reC4hwor4Lil4Liz4Lii4LiyCivguKXguLPguYTguKIKK+C4peC4s+C4peC4reC4hwor4Lil4LmI4Liz4Lil4LiyCivguKXguLPguKXguLLguJoKK+C4peC4s+C4peC4swor4Lil4Liz4Lil4Li24LiBCivguKXguLPguYDguKXguLLguLAKK+C4peC4s+C5gOC4peC4tOC4gQor4Lil4Liz4LmA4Lil4Li14Lii4LiHCivguKXguLPguYDguKXguLXguKLguJoKK+C4peC4s+C5gOC4p+C4teC4ouC4hwor4Lil4Liz4LmA4Lin4Li14Lii4LiZCivguKXguLPguK3guLjguJQKK+C4peC4s+C5gOC4reC4teC4ouC4gQor4Lil4Liz4LmC4Lit4LiHCivguKXguLQKK+C4peC4tOC4geC4guC4sgor4Lil4Li04LiB4LmE4LiZ4LiV4LmMCivguKXguLTguIHguKnguLIKK+C4peC4tOC4geC4uOC4iAor4Lil4Li04LmA4LiBCivguKXguLTguILguJnguLAKK+C4peC4tOC4guC4quC4tOC4l+C4mOC5jAor4Lil4Li04LiC4Li04LiVCivguKXguLTguIcKK+C4peC4tOC4h+C4hOC5jAor4Lil4Li04LiH4LmC4Lil4LiUCivguKXguLTguJQKK+C4peC4tOC4lQor4Lil4Li04LiV4Lih4Lix4LiqCivguKXguLTguJXguKMKK+C4peC4tOC5gOC4l+C4teC4ouC4oQor4Lil4Li04LmI4LiZCivguKXguLTguYnguJkKK+C4peC4tOC4meC5guC4geC4o+C4ogor4Lil4Li04LiZ4LiI4LiHCivguKXguLTguYnguJnguIjguLXguYgKK+C4peC4tOC5iOC4meC4leC5ieC4mQor4Lil4Li04LmI4LiZ4LiX4Liw4LmA4LilCivguKXguLTguYjguJnguK7guLfguYnguK0KK+C4peC4tOC4meC4tOC4mQor4Lil4Li04LiaCivguKXguLTguJvguJTguLIKK+C4peC4tOC4m+C4leC5jAor4Lil4Li04Lib4Liq4LiV4Li04LiBCivguKXguLTguJvguLQKK+C4peC4tOC4n+C4leC5jAor4Lil4Li04LmA4Lig4LiyCivguKXguLTguYjguKEKK+C4peC4tOC5ieC4oQor4Lil4Li04Lih4Lib4LmMCivguKXguLTguKHguJvguJnguLAKK+C4peC4tOC4peC4tOC4lQor4Lil4Li04LinCivguKXguLTguYjguKcKK+C4peC4tOC4quC4hwor4Lil4Li1CivguKXguLXguYgKK+C4peC4teC5iQor4Lil4Li14LiL4LitCivguKXguLXguJoKK+C4peC4teC4peC4sgor4Lil4Li14Lil4Liy4LioCivguKXguLXguKzguKvguLIKK+C4peC4tuC4gQor4Lil4Li24LiH4LiE4LmMCivguKXguLbguIfguITguYzguJnguLLguKLguJ7guKPguLLguJkKK+C4peC4t+C4lAor4Lil4Li34LmI4LiZCivguKXguLfguYnguJkKK+C4peC4t+C4mgor4Lil4Li34LihCivguKXguLfguK0KK+C4peC4t+C5iOC4rQor4Lil4Li34LmJ4LitCivguKXguLgKK+C4peC4uOC4gQor4Lil4Li44LiB4Lil4LiZCivguKXguLjguIHguKXguLXguYnguKXguLjguIHguKXguJkKK+C4peC4uOC4hwor4Lil4Li44LmJ4LiHCivguKXguLjguJUKK+C4peC4uOC4lwor4Lil4Li44LiX4LiB4LiwCivguKXguLjguJfguJjguYwKK+C4peC4uOC5iOC4mQor4Lil4Li44Lib4LiV4LmMCivguKXguLjguJ7guJjguYwKK+C4peC4uOC4nuC4mOC4geC4sAor4Lil4Li44LmI4LihCivguKXguLjguYjguKHguYDguJnguLfguYnguK0KK+C4peC4uOC4oeC4m+C5jAor4Lil4Li44Lih4Lie4Li1CivguKXguLjguKHguJ7guLkKK+C4peC4uOC4oeC4q+C4oeC4sgor4Lil4Li44LiiCivguKXguLjguYjguKIKK+C4peC4uOC5ieC4ogor4Lil4Li44Lil4Liy4LiiCivguKXguLjguKrguLIKK+C4peC4ueC5iAor4Lil4Li54LiBCivguKXguLnguIHguYDguILguKLguJXguLLguKLguYHguKHguYjguKLguLLguKLguIrguLHguIHguJvguKPguIEKK+C4peC4ueC4geC5gOC4hOC4peC5ieC4sgor4Lil4Li54LiB4Lib4Lij4Liw4LiE4Liz4Lic4Li1CivguKXguLnguIHguJvguLfguJnguYPguKvguI3guYgKK+C4peC4ueC4geC5gOC4reC5h+C4mQor4Lil4Li54LiB4LmA4Lit4LmH4LilCivguKXguLnguILguLAKK+C4peC4ueC4leC4sgor4Lil4Li54LiV4Li04LiB4LiyCivguKXguLnguJfguLXguYDguIrguLXguKLguKEKK+C4peC4ueC4meC4sAor4Lil4Li54LiaCivguKXguLnguYjguKvguKXguLXguYgKK+C5gOC4peC4gQor4LmA4Lil4LmH4LiBCivguYDguKXguYfguIHguJTguLIKK+C5gOC4peC5h+C4geC4ruC4reC4o+C5jOC4mQor4LmA4Lil4LiCCivguYDguKXguILguIHguLAKK+C5gOC4peC4guC4meC4sAor4LmA4Lil4LiC4Lii4LiwCivguYDguKXguILguLIKK+C5gOC4peC5h+C4hwor4LmA4Lil4LmJ4LiHCivguYDguKXguYjguIfguK7guLfguYnguK0KK+C5gOC4peC5gOC4i+C4reC4o+C5jAor4LmA4Lil4LiR4LiR4Li4CivguYDguKXguJMKK+C5gOC4peC4k+C4keC4uAor4LmA4Lil4LmH4LiUCivguYDguKXguJUKK+C5gOC4peC4mQor4LmA4Lil4LmH4LiZCivguYDguKXguYjguJkKK+C5gOC4peC4meC4iOC4hwor4LmA4Lil4LiZ4Liq4LmMCivguYDguKXguJnguKvguLDguKPguLUKK+C5gOC4peC5h+C4mgor4LmA4Lil4Lia4LiHCivguYDguKXguJvguIHguKMKK+C5gOC4peC4m+C4meC5jAor4LmA4Lil4LmA4LibCivguYDguKXguYDguJ4KK+C5gOC4peC5h+C4oQor4LmA4Lil4LmI4LihCivguYDguKXguKIKK+C5gOC4peC4pwor4LmA4Lil4Lin4LiHCivguYDguKXguKfguLnguYLguKXguKoKK+C5gOC4peC4qAor4LmA4Lil4Lip4LiP4Li4CivguYDguKXguKrguYDguJrguLXguKLguJkKK+C5gOC4peC4qwor4LmA4Lil4LmI4Lir4LmMCivguYDguKXguKvguKLguLAKK+C5gOC4peC4q+C4peC4seC4hwor4LmA4Lil4Lir4Lil4LiyCivguYDguKXguKvguLAKK+C5gOC4peC4rQor4LmA4Lil4LiwCivguYDguKXguLIKK+C5gOC4peC5iOC4sgor4LmA4Lil4LmJ4LiyCivguYDguKXguLLguIHguLHguKIKK+C5gOC4peC5iOC4suC5gOC4leC5iuC4hwor4LmA4Lil4LmJ4Liy4LmC4Lil4LihCivguYDguKXguLLguLAKK+C5gOC4peC4tOC4gQor4LmA4Lil4Li04LmJ4LiHCivguYDguKXguLTguJnguYDguKXguYjguK0KK+C5gOC4peC4tOC4qAor4LmA4Lil4Li14LiiCivguYDguKXguLXguKLguIcKK+C5gOC4peC4teC5iOC4ouC4hwor4LmA4Lil4Li14LmJ4Lii4LiHCivguYDguKXguLXguKLguIfguILguLLguKcKK+C5gOC4peC4teC4ouC4h+C4nOC4sgor4LmA4Lil4Li14Lii4LiH4Lid4LmJ4Liy4LiiCivguYDguKXguLXguKLguIfguKHguLHguJkKK+C5gOC4peC4teC4ouC4mQor4LmA4Lil4Li14LmI4Lii4LiZCivguYDguKXguLXguKLguJnguYTguJ8KK+C5gOC4peC4teC4ouC4mgor4LmA4Lil4Li14Lii4LihCivguYDguKXguLXguYjguKLguKEKK+C5gOC4peC4teC4ouC4pwor4LmA4Lil4Li14LmJ4Lii4LinCivguYDguKXguLfguK3guIEKK+C5gOC4peC4t+C4reC4hwor4LmA4Lil4Li34LmI4Lit4LiHCivguYDguKXguLfguK3guJQKK+C5gOC4peC4t+C4reC4mQor4LmA4Lil4Li34LmI4Lit4LiZCivguYDguKXguLfguYjguK3guKEKK+C5gOC4peC4t+C5iOC4reC4oeC5g+C4qgor4LmA4Lil4Li34LmI4Lit4LiiCivguYDguKXguLfguYnguK3guKIKK+C5gOC4peC4t+C5iOC4reC4ouC4peC5ieC4sgor4LmB4LilCivguYHguKXguYgKK+C5geC4peC5iQor4LmB4Lil4LiBCivguYHguKXguYfguIHguYLguJfguKoKK+C5geC4peC4hwor4LmB4Lil4LmI4LiHCivguYHguKXguYnguIcKK+C5geC4peC4mQor4LmB4Lil4LmI4LiZCivguYHguKXguJnguJfguLLguJnguLHguKEKK+C5geC4peC4mgor4LmB4Lil4LmJ4LinCivguYHguKXguLAKK+C5guC4peC5iAor4LmC4Lil4LmJCivguYLguKXguIEKK+C5guC4peC4geC4hOC4leC4tAor4LmC4Lil4LiB4LiI4Lix4LiB4Lip4Li4CivguYLguKXguIHguIrguJnguJnguLUKK+C5guC4peC4geC5gOC4iuC4qeC4kOC5jAor4LmC4Lil4LiB4LiY4Lij4Lij4LihCivguYLguKXguIHguJjguLLguJTguLIKK+C5guC4peC4geC4mOC4suC4leC4uAor4LmC4Lil4LiB4LiZ4Liy4LiWCivguYLguKXguIHguJrguJYKK+C5guC4peC4geC4muC4suC4pQor4LmC4Lil4LiB4Lia4Li04LiU4LijCivguYLguKXguIHguJvguKPguLDguJfguLXguJsKK+C5guC4peC4geC4oeC4suC4o+C4lOC4sgor4LmC4Lil4LiB4Lii4LmMCivguYLguKXguIHguKLguLLguJXguKPguLIKK+C5guC4peC4geC4p+C4seC4iuC4iuC4sAor4LmC4Lil4LiB4Lin4Li04LiX4Li5CivguYLguKXguIHguKjguLHguJ7guJfguYwKK+C5guC4peC4geC4quC4luC4tOC4leC4tAor4LmC4Lil4LiB4Lit4Li44LiU4LijCivguYLguKXguIHguLHguJXguJbguIjguKPguLTguKLguLIKK+C5guC4peC4geC4seC4meC4leC4o+C5jAor4LmC4Lil4LiB4LiyCivguYLguKXguIHguLTguKLguLAKK+C5guC4peC4geC4teC4ouC5jAor4LmC4Lil4LiB4Li14Lii4LiK4LiZCivguYLguKXguIHguLXguKLguKfguLHguJXguKMKK+C5guC4peC4geC4uOC4leC4owor4LmC4Lil4LiB4Li44LiV4Lij4LiY4Lij4Lij4LihCivguYLguKXguIHguLjguJXguKPguKDguLnguKHguLQKK+C5guC4peC5gOC4geC4qAor4LmC4Lil4LiHCivguYLguKXguYjguIcKK+C5guC4peC5ieC4hwor4LmC4Lil4LmJ4LiH4LmC4LiV4LmJ4LiHCivguYLguKXguIjguJnguLAKK+C5guC4peC4k+C4sAor4LmC4Lil4LiUCivguYLguKXguJTguJfguLDguJnguIcKK+C5guC4peC5iOC4leC4tOC5iuC4mQor4LmC4Lil4LmC4LiVCivguYLguKXguJcKK+C5guC4peC4mQor4LmC4Lil4LmJ4LiZCivguYLguKXguJvguLAKK+C5guC4peC4oAor4LmC4Lil4LihCivguYLguKXguKHguLAKK+C5guC4peC4oeC4sgor4LmC4Lil4LilCivguYLguKXguKXguLjguJsKK+C5guC4peC5gOC4pQor4LmC4Lil4LmJ4LmA4Lil4LmJCivguYLguKXguYLguKUKK+C5guC4peC5guC4peC5iQor4LmC4Lil4Lir4LiwCivguYLguKXguKvguLHguIoKK+C5guC4peC4q+C4tOC4lQor4LmC4Lil4LiwCivguYTguKXguYgKK+C5hOC4peC5iQor4LmE4Lil4LiiCivguYTguKXguKXguLIKK+C5hOC4peC5gOC4peC4ogor4LmE4Lil4LmE4Lil4LmJCivguKcKK+C4p+C4gQor4Lin4LiB4LiwCivguKfguIHguLjguKUKK+C4p+C4hwor4Lin4LiH4LiB4LmMCivguKfguIfguIHguJUKK+C4p+C4h+C4qOC5jAor4Lin4LiH4Lio4LiyCivguKfguIfguKnguYwKK+C4p+C4iOC4meC4sAor4Lin4LiI4LiwCivguKfguIjguLIKK+C4p+C4iOC4tQor4Lin4LiK4LiwCivguKfguIrguLTguKPguLAKK+C4p+C4j+C4sAor4Lin4LiP4Liy4LiB4Liy4LijCivguKfguI/guLjguKHguLAKK+C4p+C4k+C4sAor4Lin4LiT4Li04LiKCivguKfguJPguLTguIrguIrguLIKK+C4p+C4k+C4tOC4iuC4ouC5jAor4Lin4LiT4Li04LiK4Lii4LiyCivguKfguJPguLTguJ7guIEKK+C4p+C4lOC4o+C4meC4uQor4Lin4LiU4Li1CivguKfguJXguLAKK+C4p+C4l+C4meC4sAor4Lin4LiX4LiwCivguKfguJfguLHguI3guI3guLjguJXguLIKK+C4p+C4l+C4seC4jeC4jeC4uQor4Lin4LiY4Li44LiB4LiyCivguKfguJjguLkKK+C4p+C4mQor4Lin4LiZ4LiI4LijCivguKfguJnguLHguJvguJXguLQKK+C4p+C4meC4seC4qgor4Lin4LiZ4LiyCivguKfguJnguLLguJnguJXguYwKK+C4p+C4meC4tOC4lOC4sgor4Lin4LiZ4Li04Lie4LiBCivguKfguYDguJnguIjguKMKK+C4p+C5guC4meC4l+C4ouC4suC4mQor4Lin4Lib4LiZ4LiwCivguKfguJvguLgKK+C4p+C4ouC4seC4hOC4huC5jAor4Lin4Lii4Lix4LiN4LiK4LiZ4LiwCivguKfguKLguLHguKHguKvguLAKK+C4p+C4ouC4seC4quC4ouC5jAor4Lin4Lii4Liy4LiB4Lij4LiT4LmMCivguKfguKLguLLguIbguKPguYwKK+C4p+C4ouC4suC4mOC4tAor4Lin4Lii4Liy4LihCivguKfguKLguLLguKLguLLguKEKK+C4p+C4o+C4geC4seC4jeC4jeC4sgor4Lin4Lij4LiB4Liy4LiiCivguKfguKPguIfguITguYwKK+C4p+C4o+C4k+C4sAor4Lin4Lij4LiXCivguKfguKPguJfguLLguJkKK+C4p+C4o+C4meC4suC4o+C4tQor4Lin4Lij4Lib4Lix4LiB4Lip4LmMCivguKfguKPguJ7guJnguLTguJUKK+C4p+C4o+C4oeC4q+C4suC4p+C4tOC4q+C4suC4owor4Lin4Lij4Lii4Li04LiV4LiyCivguKfguKPguKPguIQKK+C4p+C4o+C4o+C4hOC4ouC5jAor4Lin4Lij4Lij4LiKCivguKfguKPguKPguIrguKLguYwKK+C4p+C4o+C4o+C4k+C4meC4sgor4Lin4Lij4Lij4LiT4Lie4Lik4LiV4Li0CivguKfguKPguKPguJPguLAKK+C4p+C4o+C4o+C4k+C4tuC4gQor4Lin4Lij4Lij4LiY4LiBCivguKfguKPguKPguJjguJnguLAKK+C4p+C4o+C4o+C4qQor4Lin4Lij4Lij4Lip4LiyCivguKfguKPguKPguLnguJsKK+C4p+C4o+C4p+C4o+C4o+C4k+C4tOC4meC4tQor4Lin4Lij4Lin4Li04Lir4Liy4LijCivguKfguKPguLHguI3guI3guLkKK+C4p+C4o+C4suC4geC4sAor4Lin4Lij4Liy4LiH4LiE4LiT4LiyCivguKfguKPguLLguKDguKPguJPguYwKK+C4p+C4o+C4suC4ouC4uOC4l+C4mAor4Lin4Lij4Liy4LmC4Lij4Lir4Liy4LijCivguKfguKPguLLguKvguYwKK+C4p+C4o+C4suC4q+C4owor4Lin4Lij4Liy4Lir4LiwCivguKfguKPguLjguJMKK+C4p+C4o+C4uOC4leC4lOC4oQor4Lin4Lij4Li44LiV4Lih4LiwCivguKfguKPguLnguJYKK+C4p+C5guC4o+C4lOC4oQor4Lin4LmC4Lij4LiV4Lih4LiwCivguKfguKTguIEKK+C4p+C4pOC4qeC4oAor4Lin4Lik4Lip4LilCivguKfguKXguLHguIoKK+C4p+C4peC4seC4jeC4iuC5jAor4Lin4Lil4Lix4LiT4LiK4LiZ4LmMCivguKfguKXguLHguKIKK+C4p+C4peC4suC4q+C4gQor4Lin4Lil4Li1CivguKfguKjguIQKK+C4p+C4qOC4sAor4Lin4Lio4Li04LiZCivguKfguKrguJnguLAKK+C4p+C4quC4oOC4sAor4Lin4Liq4Lil4LiwCivguKfguKrguKXguLUKK+C4p+C4quC4p+C4seC4lOC4lOC4tQor4Lin4Liq4Lin4Lix4LiV4LiV4Li1CivguKfguKrguLAKK+C4p+C4quC4seC4meC4leC5jAor4Lin4Liq4Lix4LiZ4LiV4LiU4Li04Lil4LiBCivguKfguKrguLIKK+C4p+C4quC4tQor4Lin4Liq4Li4CivguKfguKrguLjguJjguLIKK+C4p+C4quC4uOC4meC4mOC4o+C4sgor4Lin4Liq4Li44Lih4LiU4Li1CivguKfguKvguLAKK+C4p+C4q+C4sgor4Lin4LitCivguKfguK3guIEKK+C4p+C4reC4geC5geC4p+C4gQor4Lin4LmI4Lit4LiHCivguKfguYjguK3guIfguYTguKcKK+C4p+C4reC4lAor4Lin4Lit4LiZCivguKfguYjguK3guJkKK+C4p+C4reC4peC5gOC4peC4ouC5jOC4muC4reC4pQor4Lin4Lit4LmB4LinCivguKfguLAKK+C4p+C4seC4gQor4Lin4Lix4LiB4LiB4LiwCivguKfguLHguIQKK+C4p+C4seC4hOC4hOC4tOC4ogor4Lin4Lix4LiE4LiE4Li14Lii4LmMCivguKfguLHguITguITguLgKK+C4p+C4seC4hOC4i+C4teC4mQor4Lin4Lix4LiHCivguKfguLHguIfguIHguYwKK+C4p+C4seC4h+C4iuC4sgor4Lin4Lix4LiH4LmA4Lin4LiHCivguKfguLHguIfguKjguLAKK+C4p+C4seC4h+C4quC4sAor4Lin4Lix4LiI4LiI4LiwCivguKfguLHguIjguInguYwKK+C4p+C4seC4iOC4ieC4gQor4Lin4Lix4LiI4LiJ4Lil4LiwCivguKfguLHguIjguJnguYwKK+C4p+C4seC4igor4Lin4Lix4LiK4LiK4LiwCivguKfguLHguIrguIzguYwKK+C4p+C4seC4iuC4nuC4t+C4igor4Lin4Lix4LiK4Lij4LiwCivguKfguLHguI3guIjguIEKK+C4p+C4seC4jeC4iOC4meC4sAor4Lin4Lix4LiN4LiM4LmMCivguKfguLHguI/guIHguLAKK+C4p+C4seC4j+C4j+C4sAor4Lin4Lix4LiP4LiP4Li0CivguKfguLHguJLguIHguLAKK+C4p+C4seC4kuC4geC4tQor4Lin4Lix4LiS4LiZ4LiwCivguKfguLHguJLguJnguLIKK+C4p+C4seC4kwor4Lin4Lix4LiT4LiP4LmMCivguKfguLHguJPguJPguLAKK+C4p+C4seC4k+C4meC4sgor4Lin4Lix4LiUCivguKfguLHguJUKK+C4p+C4seC4leC4leC5jAor4Lin4Lix4LiV4LiV4LiyCivguKfguLHguJXguJbguYwKK+C4p+C4seC4leC4luC4uAor4Lin4Lix4LiV4LiZ4LiwCivguKfguLHguJXguKMKK+C4p+C4seC4leC4o+C4m+C4j+C4tOC4muC4seC4leC4tAor4Lin4Lix4LiV4Liq4LiU4LijCivguKfguLHguJXguKrguLAKK+C4p+C4seC4leC4tAor4Lin4Lix4LiX4LiZ4LmMCivguKfguLHguJkKK+C4p+C4seC4meC4leC5jAor4Lin4Lix4LiZ4LiX4LiZ4LiyCivguKfguLHguJnguJfguJnguLXguKLguYwKK+C4p+C4seC4meC4l+C4sgor4Lin4Lix4LiZ4LiX4Li0CivguKfguLHguJnguJnguLTguJ7guIEKK+C4p+C4seC4meC5gOC4p+C4ouC5jAor4Lin4Lix4LiaCivguKfguLHguJrguYbguKvguKfguLPguYYKK+C4p+C4seC4m+C4m+C4sAor4Lin4Lix4Lih4Lih4Li04LiBCivguKfguLHguKIKK+C4p+C4seC4peC4geC5jAor4Lin4Lix4Lil4LiE4Li4CivguKfguLHguKXguKLguYwKK+C4p+C4seC4peC4peC4oAor4Lin4Lix4Lil4Lil4Li1CivguKfguLHguKcKK+C4p+C4seC4quC4lOC4uAor4Lin4Lix4Liq4LiV4Lij4LmMCivguKfguLHguKrguJnguYwKK+C4p+C4seC4quC4meC4sAor4Lin4Lix4Liq4Liq4LiwCivguKfguLIKK+C4p+C5iOC4sgor4Lin4LmJ4LiyCivguKfguLLguIEKK+C4p+C5ieC4suC4geC5gOC4nuC5ieC4ogor4Lin4Liy4LiB4Lii4LiwCivguKfguLLguIHguKPguLIKK+C4p+C4suC4geC4sAor4Lin4Liy4LiHCivguKfguYjguLLguIcKK+C4p+C5ieC4suC4hwor4Lin4Liy4LiI4LiBCivguKfguLLguIjguLIKK+C4p+C4suC4iOC4suC5hOC4m+C4ouC4sAor4Lin4Liy4LiI4Liy4LilCivguKfguLLguIrguYDguJvguKLguLAKK+C4p+C4suC4j+C4geC4sAor4Lin4Liy4LiT4Li04LiKCivguKfguLLguJPguLTguIrguIHguLAKK+C4p+C4suC4k+C4tOC4iuC4ouC5jAor4Lin4Liy4LiT4Li1CivguKfguLLguJQKK+C4p+C4suC4leC4sAor4Lin4Liy4LiXCivguKfguLLguJfguIEKK+C4p+C4suC4l+C4mQor4Lin4Liy4LiX4Lii4LmMCivguKfguLLguJfguLTguJUKK+C4p+C4suC4l+C4tOC4mQor4Lin4Liy4LiX4Li1CivguKfguLLguJkKK+C4p+C5iOC4suC4mQor4Lin4LmI4Liy4LiZ4LmA4LiE4Lij4Li34LitCivguKfguLLguJnguKMKK+C4p+C4suC5gOC4meC5gOC4lOC4teC4ouC4oQor4Lin4Liy4LiaCivguKfguLLguJvguLAKK+C4p+C4suC4m+C4tOC4leC4sAor4Lin4Liy4Lib4Li1CivguKfguLLguKEKK+C4p+C4suC4oeC4sAor4Lin4Liy4LmC4Lih4LijCivguKfguLLguKIKK+C4p+C5iOC4suC4ogor4Lin4LmJ4Liy4LiiCivguKfguLLguKLguKrguLAKK+C4p+C4suC4ouC4sAor4Lin4Liy4Lii4Lix4LiHCivguKfguLLguKLguLLguKHguLAKK+C4p+C4suC4ouC4uAor4Lin4Liy4Lii4Li44LiB4Li54LilCivguKfguLLguKLguLjguJrguLjguJXguKPguKLguLLguJXguKPguLIKK+C4p+C4suC5guC4ogor4Lin4Liy4LijCivguKfguLLguKPguKfguLLguKPguLQKK+C4p+C4suC4o+C4sAor4Lin4Liy4Lij4Li0CivguKfguLLguKPguLUKK+C4p+C4suC4o+C4uOC4kwor4Lin4Liy4Lij4Li44LiT4Li1CivguKfguLLguKUKK+C4p+C4suC4peC5jOC4pwor4Lin4Liy4Lil4Li04LiB4LiyCivguKfguLLguKXguLjguIHguLIKK+C4p+C4suC4pwor4Lin4LmI4Liy4LinCivguKfguYnguLLguKfguYjguK3guJkKK+C4p+C5ieC4suC4p+C4uOC5iOC4mQor4Lin4Liy4Liq4LiZ4LiwCivguKfguLLguKrguJnguLIKK+C4p+C4suC4quC4ngor4Lin4Liy4Liq4LiwCivguKfguLLguKrguLTguJkKK+C4p+C4suC4quC4tQor4Lin4Liy4Liq4Li44LiB4Lij4Li1CivguKfguLLguKrguLjguIHguLUKK+C4p+C4suC4quC4uOC5gOC4l+C4ngor4Lin4Liy4Lir4LiZ4LiwCivguKfguLLguKvguLAKK+C4p+C4suC4q+C4tOC4meC4tQor4Lin4Liy4LisCivguKfguLQKK+C4p+C4tOC4gQor4Lin4Li04LiB4LiC4Lix4Lih4Lig4LmMCivguKfguLTguIHguILguLHguKHguKDguJnguLAKK+C4p+C4tOC4geC5gOC4guC4mwor4Lin4Li04LiB4LiI4LiwCivguKfguLTguIHguKPguKEKK+C4p+C4tOC4geC4o+C4seC4ogor4Lin4Li04LiB4Lij4Liy4LiZ4LiV4LmMCivguKfguLTguIHguKTguJUKK+C4p+C4tOC4geC4pOC4leC4tAor4Lin4Li04LiB4LilCivguKfguLTguIHguKXguIjguKPguLTguJUKK+C4p+C4tOC4geC4quC4tOC4lQor4Lin4Li04LiB4Lix4LiVCivguKfguLTguIHguLHguJXguLQKK+C4p+C4tOC4geC4seC4mwor4Lin4Li04LiB4Lix4LiiCivguKfguLTguIHguLLguKMKK+C4p+C4tOC4geC4suC4pQor4Lin4Li04LiE4LiV4Lib4Lix4LiI4LiI4Lix4LiiCivguKfguLTguITguKvguLAKK+C4p+C4tOC5gOC4hOC4o+C4suC4sOC4q+C5jAor4Lin4Li04LiG4LiZ4LiwCivguKfguLTguIbguYDguJnguKgKK+C4p+C4tOC4huC5gOC4meC4qOC4p+C4owor4Lin4Li04LiG4Liy4LiVCivguKfguLTguIbguLLguKoKK+C4p+C4tOC4hwor4Lin4Li04LmI4LiHCivguKfguLTguIfguKfguK3guJkKK+C4p+C4tOC4iOC4ieC4tOC4geC4sAor4Lin4Li04LiI4Lii4Li44LiVCivguKfguLTguIjguKPguJPguLAKK+C4p+C4tOC4iOC4pQor4Lin4Li04LiI4Lix4LiB4LiC4LiT4LmMCivguKfguLTguIjguLHguIHguKnguJPguYwKK+C4p+C4tOC4iOC4seC4ogor4Lin4Li04LiI4Liy4LijCivguKfguLTguIjguLLguKPguJPguYwKK+C4p+C4tOC4iOC4tAor4Lin4Li04LiI4Li04LiB4Li04LiI4LiJ4LiyCivguKfguLTguIjguLTguJUKK+C4p+C4tOC4iOC4tOC4leC4owor4Lin4Li04LiI4Li04LiZCivguKfguLTguIjguLjguJMKK+C4p+C4tOC4iOC4uOC4o+C4kwor4Lin4Li04LiK4LiK4LiyCivguKfguLTguIrguIrguLgKK+C4p+C4tOC4iuC4iuC4uOC4lOC4sgor4Lin4Li04LiK4LiK4Li44LiV4LiyCivguKfguLTguIrguIrguLjguKXguJTguLIKK+C4p+C4tOC4iuC4jeC4sAor4Lin4Li04LiK4LiZCivguKfguLTguIrguJnguLUKK+C4p+C4tOC4iuC4seC4ogor4Lin4Li04LiK4LiyCivguKfguLTguIrguLLguJnguJnguLAKK+C4p+C4tOC4iuC4tOC4lQor4Lin4Li04LmA4LiK4Li14Lii4LijCivguKfguLTguI3guI3guLHguJXguJXguLQKK+C4p+C4tOC4jeC4jeC4suC4kwor4Lin4Li04LiN4LiN4Liy4LiT4LiB4LiX4Lij4Lix4Lie4Lii4LmMCivguKfguLTguI3guI3guLkKK+C4p+C4tOC4keC4ueC4o+C4ouC5jAor4Lin4Li04LiT4Lir4Li4CivguKfguLTguJQKK+C4p+C4tOC4lOC4teC4quC4lOC4tQor4Lin4Li04LiV4LiBCivguKfguLTguJXguJbguLLguKMKK+C4p+C4tOC4leC4suC4oeC4tOC4mQor4Lin4Li04LiW4Li1CivguKfguLTguJfguJjguLAKK+C4p+C4tOC4l+C4mOC4seC4h+C4quC4sAor4Lin4Li04LiX4Lii4LiyCivguKfguLTguJfguKLguLgKK+C4p+C4tOC4l+C4ouC4uOC4lQor4Lin4Li04LiX4Lij4Li44Lih4LiwCivguKfguLTguJfguKfguLHguKoKK+C4p+C4tOC4l+C4seC4leC4luC4tAor4Lin4Li04LiX4Liy4Lij4LiT4LmMCivguKfguLTguJfguLLguKXguJnguYwKK+C4p+C4tOC4l+C4tOC4lQor4Lin4Li04LiX4Li5CivguKfguLTguJfguLnguKMKK+C4p+C4tOC5gOC4l+C4p+C4qQor4Lin4Li04LmA4LiX4LioCivguKfguLTguJgKK+C4p+C4tOC4mOC4p+C4sgor4Lin4Li04LiY4LiyCivguKfguLTguJjguLLguJkKK+C4p+C4tOC4mOC4tQor4Lin4Li04LiY4Li44Lij4LiwCivguKfguLTguJjguLkKK+C4p+C4tOC4mOC4ueC4m+C4meC4sAor4Lin4Li04LiZCivguKfguLTguYjguJkKK+C4p+C4tOC4meC4l+C5jAor4Lin4Li04LiZ4Lix4LiZ4LiV4Li5CivguKfguLTguJnguLHguKIKK+C4p+C4tOC4meC4suC4l+C4tQor4Lin4Li04LiZ4Liy4Lii4LiBCivguKfguLTguJnguLLguKgKK+C4p+C4tOC4meC4tOC4iAor4Lin4Li04LiZ4Li04LiI4LiJ4Lix4LiiCivguKfguLTguJnguLTguJUKK+C4p+C4tOC4meC4tOC4muC4suC4lQor4Lin4Li04LiZ4Li04Lib4Liy4LiV4Li04LiBCivguKfguLTguJnguLXguJUKK+C4p+C4tOC5gOC4meC4lQor4Lin4Li04LmC4LiZ4LiX4LiBCivguKfguLTguJrguLHguJXguLQKK+C4p+C4tOC4muC4suC4gQor4Lin4Li04Lia4Li44LilCivguKfguLTguJrguLnguKUKK+C4p+C4tOC4m+C4geC4suC4owor4Lin4Li04Lib4LiP4Li04Liq4Liy4LijCivguKfguLTguJvguYLguKLguIQKK+C4p+C4tOC4m+C4o+C4sOC4geC4suC4owor4Lin4Li04Lib4Lij4Liw4LiV4Li04Liq4Liy4LijCivguKfguLTguJvguKPguLDguYLguKLguIQKK+C4p+C4tOC4m+C4o+C4sOC4peC4suC4mwor4Lin4Li04Lib4Lij4Liw4Lin4Liy4LiqCivguKfguLTguJvguKPguLTguJPguLLguKHguJfguLjguIHguILguYwKK+C4p+C4tOC4m+C4o+C4tOC4lQor4Lin4Li04Lib4Lil4Liy4LibCivguKfguLTguJvguKXguLLguKoKK+C4p+C4tOC4m+C4p+C4suC4qgor4Lin4Li04Lib4Lix4LiB4Lip4LmMCivguKfguLTguJvguLHguKrguKrguIEKK+C4p+C4tOC4m+C4seC4quC4quC4meC4sgor4Lin4Li04Lib4Liy4LiB4LiC4Lix4LiZ4LiY4LmMCivguKfguLTguJ7guLLguIHguKnguYwKK+C4p+C4tOC4nuC4suC4geC4qeC5jOC4p+C4tOC4iOC4suC4o+C4k+C5jAor4Lin4Li04Lie4Li04LiY4LiX4Lix4Lio4LiZ4LiyCivguKfguLTguJ7guLjguJgKK+C4p+C4tOC4oOC4seC4h+C4hOC5jAor4Lin4Li04Lig4Lix4LiKCivguKfguLTguKDguLHguJXguJXguLQKK+C4p+C4tOC4oOC4sgor4Lin4Li04Lig4Liy4LiECivguKfguLTguKDguLLguIoKK+C4p+C4tOC4oOC4suC4lOC4sgor4Lin4Li04Lig4Liy4Lin4Li1CivguKfguLTguKDguLLguKkKK+C4p+C4tOC4oOC4suC4qgor4Lin4Li04Lig4Li5CivguKfguLTguKDguLnguKnguJPguLAKK+C4p+C4tOC4oOC4ueC4qeC4sgor4Lin4Li04Lig4Li54Lip4Li04LiVCivguKfguLTguYDguKDguJXguIHguYwKK+C4p+C4tOC5gOC4oOC4l+C4geC5jAor4Lin4Li04Lih4LiZCivguKfguLTguKHguKUKK+C4p+C4tOC4oeC4peC4seC4gQor4Lin4Li04Lih4Lil4Liy4LiBCivguKfguLTguKHguLHguIfguKrguLIKK+C4p+C4tOC4oeC4seC4leC4tAor4Lin4Li04Lih4Liy4LiZCivguKfguLTguKHguLLguJnguLTguIHguYDguJvguKPguJUKK+C4p+C4tOC4oeC4uOC4ggor4Lin4Li04Lih4Li44LiVCivguKfguLTguKHguLjguJXguJXguLQKK+C4p+C4tOC5gOC4oeC4peC4t+C4reC4hwor4Lin4Li04LmC4Lih4LiB4LiC4LmMCivguKfguLTguYLguKHguIHguKnguKfguLTguJbguLUKK+C4p+C4tOC5gOC4ouC4mQor4Lin4Li04LmC4Lii4LiECivguKfguLTguKPguIfguKPguK3guIcKK+C4p+C4tOC4o+C4leC4sAor4Lin4Li04Lij4Lih4LiT4LiwCivguKfguLTguKPguKfguLAKK+C4p+C4tOC4o+C4sAor4Lin4Li04Lij4Lix4LiH4Lij4Lit4LiHCivguKfguLTguKPguLHguIoKK+C4p+C4tOC4o+C4seC4lQor4Lin4Li04Lij4Lix4LiV4Li0CivguKfguLTguKPguLLguITguLAKK+C4p+C4tOC4o+C4suC4oQor4Lin4Li04Lij4Liy4Lin4LiwCivguKfguLTguKPguLjguJgKK+C4p+C4tOC4o+C4uOC4rOC4q+C5jAor4Lin4Li04Lij4Li44Lis4Lir4LiBCivguKfguLTguKPguLnguJsKK+C4p+C4tOC4o+C4ueC4m+C4seC4geC4qeC5jAor4Lin4Li04LmA4Lij4LiBCivguKfguLTguYDguKPguJnguJfguKPguYwKK+C4p+C4tOC5guC4o+C4hAor4Lin4Li04LmC4Lij4LiICivguKfguLTguYLguKPguIjguJnguYwKK+C4p+C4tOC5guC4o+C4kgor4Lin4Li04LmC4Lij4LiYCivguKfguLTguYLguKPguJjguJnguYwKK+C4p+C4tOC4peC4seC4meC4lOC4sgor4Lin4Li04Lil4Lix4LiiCivguKfguLTguKXguLLguJQKK+C4p+C4tOC4peC4suC4mwor4Lin4Li04Lil4Liy4Lin4Lix4LiT4Lii4LmMCivguKfguLTguKXguLLguKgKK+C4p+C4tOC4peC4suC4qgor4Lin4Li04Lil4Liy4Liq4Li04LiZ4Li1CivguKfguLTguKXguLTguJvguJTguLIKK+C4p+C4tOC4peC4tOC4qOC4oeC4suC4q+C4o+C4sgor4Lin4Li04LmA4Lil4LibCivguKfguLTguYDguKXguJvguJnguLAKK+C4p+C4tOC5guC4peC4gQor4Lin4Li04LmC4Lil4LiB4LiZ4LiwCivguKfguLTguYLguKXguIjguJnguLAKK+C4p+C4tOC5guC4peC4oQor4Lin4Li04LmE4LilCivguKfguLTguKcKK+C4p+C4tOC4p+C4o+C4k+C5jAor4Lin4Li04Lin4Lij4Lij4LiY4LiZ4LmMCivguKfguLTguKfguKPguLAKK+C4p+C4tOC4p+C4seC4jwor4Lin4Li04Lin4Lix4LiS4LiZ4LmMCivguKfguLTguKfguLHguJkKK+C4p+C4tOC4p+C4suC4lwor4Lin4Li04Lin4Liy4Lir4LmMCivguKfguLTguKfguLLguKvguLAKK+C4p+C4tOC4p+C4tOC4iAor4Lin4Li04Lin4Li04LiVCivguKfguLTguKfguLTguJgKK+C4p+C4tOC5gOC4p+C4gQor4Lin4Li04Lio4Lij4Li44LiVCivguKfguLTguKjguLHguJcKK+C4p+C4tOC4qOC4seC4peC4ouC5jAor4Lin4Li04Lio4Liy4LiC4LiwCivguKfguLTguKjguLLguILguLIKK+C4p+C4tOC4qOC4suC4h+C4hOC5jAor4Lin4Li04Lio4Liy4LilCivguKfguLTguKjguLTguKnguI/guYwKK+C4p+C4tOC4qOC4uOC4l+C4mOC5jAor4Lin4Li04Lio4Li44LiX4LiY4Li04LmMCivguKfguLTguYDguKjguKkKK+C4p+C4tOC5gOC4qOC4qeC4k+C5jAor4Lin4Li04Lip4LiT4Li4CivguKfguLTguKnguJPguLjguIHguKPguKPguKEKK+C4p+C4tOC4qeC4mOC4owor4Lin4Li04Lip4Lix4LiB4LiV4LmMCivguKfguLTguKnguLHguKIKK+C4p+C4tOC4qeC4suC4kwor4Lin4Li04Lip4Li44Lin4Lix4LiVCivguKfguLTguKrguIHguLXguYkKK+C4p+C4tOC4quC4o+C4o+C4iuC4meC4teC4ouC5jAor4Lin4Li04Liq4Lik4LiVCivguKfguLTguKrguKrguLjguIHguKPguKPguKEKK+C4p+C4tOC4quC4seC4h+C5guC4ouC4hAor4Lin4Li04Liq4Lix4LiK4LiZ4LiyCivguKfguLTguKrguLHguI3guI3guLUKK+C4p+C4tOC4quC4seC4ogor4Lin4Li04Liq4Liy4LiC4LiwCivguKfguLTguKrguLLguILguLIKK+C4p+C4tOC4quC4suC4oeC4seC4jQor4Lin4Li04Liq4Liy4LijCivguKfguLTguKrguLLguKPguJcKK+C4p+C4tOC4quC4suC4pQor4Lin4Li04Liq4Liy4Liq4LiwCivguKfguLTguKrguLLguKvguIHguLTguIgKK+C4p+C4tOC4quC4tOC4kAor4Lin4Li04Liq4Li44LiH4LiE4Liy4Lih4Liq4Li14Lih4LiyCivguKfguLTguKrguLjguJfguJjguYwKK+C4p+C4tOC4quC4uOC4l+C4mOC4tOC5jAor4Lin4Li04Liq4Li54LiV4LijCivguKfguLTguYDguKrguJcKK+C4p+C4tOC5gOC4quC4quC4meC4sAor4Lin4Li04Lir4LiECivguKfguLTguKvguIfguITguYwKK+C4p+C4tOC4q+C4peC4seC5iOC4mQor4Lin4Li04Lir4Lix4Lib4Lib4LiV4Li0CivguKfguLTguKvguLLguKLguKrguLAKK+C4p+C4tOC4q+C4suC4owor4Lin4Li04Lir4Li0CivguKfguLTguKvguLTguIfguKrguLAKK+C4p+C4tOC4q+C4tOC4h+C4quC4sgor4Lin4Li04LmA4Lir4Liq4Lig4Liy4LiE4Li1CivguKfguLTguYDguKvguKrguLIKK+C4p+C4tOC4rOC4seC4h+C4hOC5jAor4Lin4Li04Lis4Liy4LijCivguKfguLUKK+C4p+C4teC4iOC4tAor4Lin4Li14LiK4LiZ4Li1CivguKfguLXguIvguYjguLIKK+C4p+C4teC4k+C4sgor4Lin4Li14LmJ4LiUCivguKfguLXguYjguKfguLHguJkKK+C4p+C4teC5iOC5geC4p+C4pwor4Lin4Li14Liq4LiwCivguKfguLjguYnguIcKK+C4p+C4uOC4kOC4tAor4Lin4Li44LiSCivguKfguLjguJLguLQKK+C4p+C4uOC4lAor4Lin4Li44LmI4LiZCivguKfguLjguYnguJkKK+C4p+C4uOC4mgor4Lin4Li44LmJ4LiiCivguKfguLjguKXguYHguJ/guKPguKEKK+C4p+C4ueC5iQor4Lin4Li54LiU4Lin4Liy4LiUCivguKfguLnguJoKK+C4p+C4ueC5iOC4p+C4suC4oQor4LmA4Lin4LmJCivguYDguKfguIQKK+C5gOC4p+C4hOC4tOC4mQor4LmA4Lin4LiE4Li1CivguYDguKfguIgKK+C5gOC4p+C4igor4LmA4Lin4LiK4Lii4Lix4LiZ4LiV4LmMCivguYDguKfguYTguIrguKLguKLguLHguJnguJXguYzguKPguLLguIrguKPguJYKK+C5gOC4p+C4kOC4meC5jAor4LmA4Lin4LiT4LiwCivguYDguKfguJPguLQKK+C5gOC4p+C4k+C4tOC4gQor4LmA4Lin4LiT4Li4CivguYDguKfguJXguJnguYwKK+C5gOC4p+C4leC4owor4LmA4Lin4LiV4Liy4LilCivguYDguKfguJcKK+C5gOC4p+C4l+C4meC4sgor4LmA4Lin4LiX4Lii4LmMCivguYDguKfguJfguLLguIfguITguYwKK+C5gOC4p+C4l+C4suC4h+C4hOC4qOC4suC4quC4leC4o+C5jAor4LmA4Lin4LiX4Liy4LiZ4LiV4LmMCivguYDguKfguJfguLLguJnguJXguLAKK+C5gOC4p+C4l+C4tAor4LmA4Lin4LiX4Li1CivguYDguKfguJjguLAKK+C5gOC4p+C4mOC4tQor4LmA4Lin4LiZCivguYDguKfguYnguJkKK+C5gOC4p+C4meC5hOC4leC4ogor4LmA4Lin4LmE4LiZ4LiiCivguYDguKfguKHguLAKK+C5gOC4p+C4oeC4seC4lQor4LmA4Lin4Lih4Liy4LiV4Li04LiBCivguYDguKfguYnguKIKK+C5gOC4p+C4owor4LmA4Lin4Lij4Lih4LiT4Li1CivguYDguKfguKPguLUKK+C5gOC4p+C5guC4o+C4iOC4meC5jAor4LmA4Lin4Lil4LiyCivguYDguKfguYDguKXguJnguIvguLUKK+C5gOC4p+C4p+C4seC4kwor4LmA4Lin4Lin4Lix4LiT4LiT4Li04Lii4LiwCivguYDguKfguKjguKHguYwKK+C5gOC4p+C4qOC4ouC5jAor4LmA4Lin4Lio4Lii4LiyCivguYDguKfguKrguJnguYwKK+C5gOC4p+C4quC4oOC4uQor4LmA4Lin4Liq4Lih4LmMCivguYDguKfguKrguKHguLAKK+C5gOC4p+C4quC4p+C4seC4kwor4LmA4Lin4Liq4Liq4LiwCivguYDguKfguKrguKrguLHguJnguJTguKMKK+C5gOC4p+C4quC4quC4uOC4geC4o+C4o+C4oQor4LmA4Lin4Liq4Liq4Li44Lin4Lix4LiTCivguYDguKfguKrguLLguKPguLHguIoKK+C5gOC4p+C4quC4tAor4LmA4Lin4Liq4Li04Lii4LiyCivguYDguKfguKvguJkKK+C5gOC4p+C4q+C4sAor4LmA4Lin4Lir4Lix4LiH4LiE4LmMCivguYDguKfguKvguLHguJvguJXguLQKK+C5gOC4p+C4q+C4sgor4LmA4Lin4Lir4Liy4Lii4LiqCivguYDguKfguKzguLgKK+C5gOC4p+C4rOC4uOC4o+C4tOC4ogor4LmA4Lin4LmI4LitCivguYDguKfguYnguLIKK+C5gOC4p+C4tOC4gQor4LmA4Lin4Li04LmJ4LiHCivguYDguKfguLXguYjguKIKK+C5gOC4p+C4teC4ouC4hwor4LmA4Lin4Li14Lii4LiZCivguYDguKfguLXguKLguKMKK+C5gOC4p+C4teC5iOC4ouC4pwor4LmB4Lin4LmJCivguYHguKfguIcKK+C5geC4p+C5ieC4hwor4LmB4Lin4LiUCivguYHguKfguJXguKMKK+C5geC4p+C4mQor4LmB4Lin4LmI4LiZCivguYHguKfguJnguJTguLIKK+C5geC4p+C4mgor4LmB4Lin4LihCivguYHguKfguKcKK+C5geC4p+C5iOC4pwor4LmB4Lin4Lin4Lin4Li04LmA4LiK4Li14Lii4LijCivguYHguKfguLAKK+C5guC4pwor4LmC4Lin4LmICivguYLguKfguIHguLLguKMKK+C5guC4p+C5iOC4hwor4LmC4Lin4LiVCivguYLguKfguJfguLLguJkKK+C5guC4p+C4ogor4LmC4Lin4LmJ4LiiCivguYLguKfguKLguKfguLLguKIKK+C5guC4p+C5ieC5gOC4p+C5iQor4LmC4Lin4Liq4Liy4LiZCivguYLguKfguKvguLLguKMKK+C5hOC4pwor4LmE4Lin4LmJCivguYTguKfguIHguLnguJPguJDguYwKK+C5hOC4p+C4keC4ueC4o+C4ouC5jAor4LmE4Lin4LiX4Lii4LmMCivguYTguKfguJ7guIjguJnguYwKK+C5hOC4p+C4ouC4suC4geC4o+C4k+C5jAor4LmE4Lin4Lii4Liy4Lin4Lix4LiI4LiB4LijCivguYTguKfguKLguLLguKfguLHguIjguKHguLHguKIKK+C5hOC4p+C4o+C4seC4qgor4LmE4Lin4Lin4Lij4Lij4LiTCivguYTguKfguKnguJPguJ4KK+C5hOC4p+C5guC4reC4peC4tOC4mQor4LioCivguKjguIEKK+C4qOC4geC4jwor4Lio4LiB4LilCivguKjguIHguLjguJkKK+C4qOC4geC4uOC4meC4tAor4Lio4LiB4Li44LiZ4Li1CivguKjguIfguIHguLIKK+C4qOC4iOC4tOC4muC4lOC4tQor4Lio4LiI4Li1CivguKjguJAKK+C4qOC4lOC4gQor4Lio4LiVCivguKjguJXguIEKK+C4qOC4meC4tAor4Lio4LmE4LiZ4Liq4LmMCivguKjguJ4KK+C4qOC4nuC4pQor4Lio4LihCivguKjguKHguJkKK+C4qOC4oeC4meC4tQor4Lio4Lih4LiZ4Li14Lii4LmMCivguKjguKHguKjguLLguJkKK+C4qOC4ogor4Lio4Lii4LiZ4LiwCivguKjguKLguJnguLXguKLguYwKK+C4qOC4ouC4suC4oQor4Lio4Lii4Liy4Lih4LiB4Lix4LiT4LiQ4LmMCivguKjguKLguLLguKHguKUKK+C4qOC4owor4Lio4Lij4LiT4Li0CivguKjguKPguJnguLLguKPguLLguKLguJPguYwKK+C4qOC4o+C4oAor4Lio4Lij4Lih4LiT4LiwCivguKjguKPguKPguIHguKMKK+C4qOC4o+C4o+C4geC4o+C4sgor4Lio4Lij4Lij4Lie4Lij4Li1CivguKjguKPguKfguJPguLAKK+C4qOC4o+C4p+C4k+C4teC4ouC5jAor4Lio4Lij4Lin4Li04Lip4LiQ4LiyCivguKjguKPguLHguJYKK+C4qOC4o+C4seC4luC4meC4sAor4Lio4Lij4Lix4LiXCivguKjguKPguLHguJfguJjguLIKK+C4qOC4o+C4seC4meC4luC5jAor4Lio4Lij4Lix4LiZ4Lii4LmMCivguKjguKPguLHguJnguKLguLkKK+C4qOC4o+C4seC4ogor4Lio4Lij4Liy4LiX4LiY4LmMCivguKjguKPguLLguJnguJXguYwKK+C4qOC4o+C4suC4ngor4Lio4Lij4Liy4Lie4LiBCivguKjguKPguLLguKLguLAKK+C4qOC4o+C4suC4p+C4gQor4Lio4Lij4Liy4Lin4LiT4LiwCivguKjguKPguLLguKfguKPguJPguYwKK+C4qOC4o+C4suC4p+C4uOC4mAor4Lio4Lij4Liy4Liq4LiZ4LmMCivguKjguKPguLUKK+C4qOC4o+C4teC4leC4o+C4seC4hwor4Lio4Lij4Li14Lip4LiwCivguKjguKPguLXguKrguLHguIfguITguLXguJUKK+C4qOC4o+C4uOC4lQor4Lio4Lij4Li44LiV4Li0CivguKjguKTguIHguLLguKUKK+C4qOC4pOC4hOC4suC4pQor4Lio4Lik4LiH4LiE4LmMCivguKjguKTguIfguITguLLguKMKK+C4qOC4pOC4h+C4hOC4suC4o+C4tOC4mQor4Lio4Lik4LiH4LiE4Liy4Lij4Li1CivguKjguKXguKAKK+C4qOC4peC4seC4lgor4Lio4Lil4Li04Lip4LiP4LmMCivguKjguKXguLTguKnguLIKK+C4qOC4pwor4Lio4Lin4Lio4Li44LijCivguKjguKfguLHguKjguJkKK+C4qOC4p+C4seC4qgor4Lio4Lin4LiyCivguKjguKfguLLguJkKK+C4qOC4p+C4suC4qgor4Lio4Lin4Li04LiVCivguKjguKfguLTguJXguKMKK+C4qOC4qOC4sAor4Lio4Lio4Li0CivguKjguKjguLTguJkKK+C4qOC4qOC4tQor4Lio4Liq4LiyCivguKjguK0KK+C4qOC4reC4gQor4Lio4Lix4LiB4LiU4LiyCivguKjguLHguIHguJTguLQKK+C4qOC4seC4geC4lOC4tOC5jAor4Lio4Lix4LiB4LiV4Li0CivguKjguLHguIHguKLguYwKK+C4qOC4seC4geC4ouC4sAor4Lio4Lix4LiB4Lij4Liy4LiKCivguKjguLHguIfguIHguKMKK+C4qOC4seC4h+C4geC4sgor4Lio4Lix4LiH4LiB4Li4CivguKjguLHguJXguKPguLgKK+C4qOC4seC4leC4o+C4uQor4Lio4Lix4LiX4LiY4LiZ4LiwCivguKjguLHguJnguKrguJnguLAKK+C4qOC4seC4meC4quC4meC4teC4ouC5jAor4Lio4Lix4Lie4LiX4LmMCivguKjguLHguKHguKLguLgKK+C4qOC4seC4ouC4ouC4sgor4Lio4Lix4LilCivguKjguLHguKXguIEKK+C4qOC4seC4peC4geC4tQor4Lio4Lix4Liq4LiU4LijCivguKjguLHguKrguJXguKPguLIKK+C4qOC4seC4quC4leC4o+C4tQor4Lio4Lix4Liq4LiiCivguKjguLLguIEKK+C4qOC4suC4geC4leC4sAor4Lio4Liy4LiB4Lii4LiwCivguKjguLLguIHguKfguKMKK+C4qOC4suC4geC4suC4h+C4hOC5jAor4Lio4Liy4LiB4Li04LiZ4Li1CivguKjguLLguI7guIEKK+C4qOC4suC4kOC4ouC4sAor4Lio4Liy4LiTCivguKjguLLguJUKK+C4qOC4suC4mQor4Lio4Liy4LiZ4LiV4LmMCivguKjguLLguJnguJXguLQKK+C4qOC4suC4meC4tOC4lQor4Lio4Liy4LibCivguKjguLLguJ7guJfguYwKK+C4qOC4suC4nuC4owor4Lio4Liy4Lih4LiwCivguKjguLLguKHguLIKK+C4qOC4suC4oeC4teC4pQor4Lio4Liy4Lij4LiXCivguKjguLLguKPguJfguLnguKUKK+C4qOC4suC4o+C4tOC4geC4sgor4Lio4Liy4LilCivguKjguLLguKXguLIKK+C4qOC4suC4peC4tAor4Lio4Liy4Lio4Lin4Lix4LiVCivguKjguLLguKrguIEKK+C4qOC4suC4quC4lOC4sgor4Lio4Liy4Liq4LiV4Lij4LmMCivguKjguLLguKrguJXguKPguLIKK+C4qOC4suC4quC4meC5jAor4Lio4Liy4Liq4LiZ4LiyCivguKjguLLguKrguJnguLXguKLguYwKK+C4qOC4suC4quC5guC4meC4p+C4suC4lwor4Lio4Li04LiB4Lip4LiBCivguKjguLTguIHguLLguKMKK+C4qOC4tOC4guC4owor4Lio4Li04LiC4Lij4Li04LiZCivguKjguLTguILguKPguLUKK+C4qOC4tOC4guC4seC4k+C4keC5jAor4Lio4Li04LiC4LiyCivguKjguLTguITguLLguKUKK+C4qOC4tOC4h+C4guC4owor4Lio4Li04LiH4LiC4Lij4Li04LiZCivguKjguLTguJUKK+C4qOC4tOC4luC4tQor4Lio4Li04Lie4Li04Lij4LiwCivguKjguLTguKPguLAKK+C4qOC4tOC4o+C4sgor4Lio4Li04Lij4Liy4Lih4Lie4Li44LiKCivguKjguLTguYLguKPguKPguLLguJoKK+C4qOC4tOC4peC4m+C5jAor4Lio4Li04Lil4Lib4LiwCivguKjguLTguKXguLIKK+C4qOC4tOC4p+C4sAor4Lio4Li04Lin4Li04LiB4LiyCivguKjguLTguKjguLXguKPguLAKK+C4qOC4tOC4qOC4uAor4Lio4Li04Lip4LiO4Li0CivguKjguLTguKnguI/guYwKK+C4qOC4tOC4qeC4ouC5jAor4Lio4Li14LiB4LijCivguKjguLXguILguKMKK+C4qOC4teC4leC4pQor4Lio4Li14LilCivguKjguLbguIEKK+C4qOC4tuC4geC4qeC4sgor4Lio4Li44LiB4Lij4LmMCivguKjguLjguIHguKXguLHguKEKK+C4qOC4uOC4geC4sAor4Lio4Li44LiI4Li0CivguKjguLjguJPguJHguLIKK+C4qOC4uOC4k+C4keC4tQor4Lio4Li44LiX4LiYCivguKjguLjguJfguJjguLQKK+C4qOC4uOC4mQor4Lio4Li44LiZ4Lix4LiBCivguKjguLjguJnguLQKK+C4qOC4uOC4peC4tQor4Lio4Li44Lip4Li04LijCivguKjguLjguKnguLTguKUKK+C4qOC4ueC4geC4owor4Lio4Li54LiX4LijCivguKjguLnguJnguKLguYwKK+C4qOC4ueC4pQor4Lio4Li54Lil4Li04LiZCivguYDguKjguKPguJPguLUKK+C5gOC4qOC4o+C4qeC4kOC5jAor4LmA4Lio4Lij4Lip4LiQ4Li1CivguYDguKjguKPguYnguLIKK+C5gOC4qOC4peC4qQor4LmA4Lio4Lin4LiU4LiH4LiE4LmMCivguYDguKjguKfguJTguLXguKAKK+C5gOC4qOC4p+C4lQor4LmA4Lio4Lin4LiV4LijCivguYDguKjguKfguLLguKUKK+C5gOC4qOC4qQor4LmA4Lio4Liy4LmE4LiI4LiiCivguYDguKjguLLguKPguYwKK+C5gOC4qOC4suC4o+C4ouC4sAor4LmA4Lio4Li04LiBCivguYDguKjguLXguKLguKMKK+C5guC4qOC4gQor4LmC4Lio4LiB4LiyCivguYLguKjguIHguLUKK+C5guC4qOC4iOC4meC4sAor4LmC4Lio4LiI4LiZ4Li14Lii4LiwCivguYLguKjguIjguLQKK+C5guC4qOC4luC4sAor4LmC4Lio4LiY4LiZ4LiwCivguYLguKjguJzguLAKK+C5guC4qOC4oAor4LmC4Lio4Lig4LiZCivguYLguKjguKDguLIKK+C5guC4qOC4oOC4tOC4lQor4LmC4Lio4Lig4Li04LiZCivguYLguKjguKDguLTguKnguJDguYwKK+C5guC4qOC4oOC4tQor4LmC4Lio4Lij4LiT4Li0CivguYLguKjguKPguJPguLUKK+C5guC4qOC4o+C4lOC4sgor4LmC4Lio4Lij4LiV4LijCivguYLguKjguKXguIEKK+C5guC4qOC4p+C4oOC4suC4ngor4LmE4Lio4LilCivguYTguKjguKfguLAKK+C4qQor4Lip4Lih4LiyCivguKnguLHguI8KK+C4qeC4seC4j+C4geC4sAor4Lip4Lix4LiRCivguKnguLHguJMKK+C4qeC4seC4qQor4Lip4Lix4Lip4LiP4Li1CivguKnguLHguKnguJAKK+C4qeC4seC4qeC4kOC4tQor4Lip4Liy4Lij4Lig4Liy4LiE4Lit4LijCivguYLguKnguJHguKgKK+C5guC4qeC4keC4qOC4seC4mQor4LiqCivguKrguIEKK+C4quC4geC4j+C4sAor4Liq4LiB4LiQ4Liy4LiZCivguKrguIHguJfguLLguITguLLguKHguLUKK+C4quC4geC4meC4mOC5jAor4Liq4LiB4Lib4Lij4LiBCivguKrguIHguKPguJPguLXguKLguYwKK+C4quC4geC4o+C4o+C4iOC5jAor4Liq4LiB4Lij4Lij4LiWCivguKrguIHguKPguKPguKHguIHguKPguLTguKLguLIKK+C4quC4geC4o+C4seC4oQor4Liq4LiB4Lij4Li5CivguKrguIHguKUKK+C4quC4geC4seC4lAor4Liq4LiB4Lix4LiU4LmB4LiE4Lij4LmICivguKrguIHguLIKK+C4quC4geC4suC4ouC5geC4peC4mgor4Liq4LiB4Liy4LinCivguKrguIHguLTguJfguLLguITguLLguKHguLUKK+C4quC4geC4tQor4Liq4LiB4Li44LiTCivguKrguIHguLjguJPguLIKK+C4quC4geC4uOC4k+C4tQor4Liq4LiB4Li44LiZCivguKrguIHguLjguJnguJXguYwKK+C4quC4geC4uOC4pQor4Liq4LmA4LiB4LiVCivguKrguYHguIHguJnguYDguJTguLXguKLguKEKK+C4quC4guC4sAor4Liq4LiC4LiyCivguKrguILguLQKK+C4quC4hwor4Liq4LmI4LiHCivguKrguIfguIHguKMKK+C4quC4h+C4geC4o+C4suC4meC4leC5jAor4Liq4LiH4LiB4LiyCivguKrguIfguYLguIHguIgKK+C4quC4h+C4hOC5jAor4Liq4LiH4LiE4LijCivguKrguIfguITguKPguLLguKEKK+C4quC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Liq4LiH4LiG4LmMCivguKrguIfguJoKK+C4quC4h+C4p+C4mQor4Liq4LiH4LmA4Lip4LibCivguKrguYjguIfguKrguIHguLLguKMKK+C4quC4h+C4quC4seC4ogor4Liq4LiH4Liq4Liy4LijCivguKrguIfguLHguJQKK+C4quC4h+C5iOC4sgor4Liq4LiI4LmK4Lin4LiUCivguKrguJAKK+C4quC4k+C4keC5jAor4Liq4LiUCivguKrguJTguIEKK+C4quC4lOC4mQor4Liq4LiU4Lih4Lig4LmMCivguKrguJTguLHguJkKK+C4quC4lOC4seC4mgor4Liq4LiU4Lix4Lia4Lib4LiB4Lij4LiT4LmMCivguKrguJTguLMKK+C4quC4lOC4tQor4Liq4LiU4Li44LiU4Li1CivguKrguJTguLnguJsKK+C4quC4lQor4Liq4LiV4LiBCivguKrguJXguJkKK+C4quC4leC4o+C4reC4meC5gOC4iuC4teC4ouC4oQor4Liq4LiV4Lij4Li04LiB4LiZ4Li04LiZCivguKrguJXguKPguLUKK+C4quC4leC4seC4mQor4Liq4LiV4Lix4LiZ4Lii4LmMCivguKrguJXguLHguJ7guJjguYwKK+C4quC4leC4seC4n+C4n+C5jAor4Liq4LiV4Lix4Lih4Lig4LmMCivguKrguJXguLLguIfguITguYwKK+C4quC4leC4suC4n+C4n+C5jAor4Liq4LiV4Li0CivguKrguJXguLTguYrguIEKK+C4quC4leC4tQor4Liq4LiV4Li14LihCivguKrguJXguLkKK+C4quC4leC4ueC4mwor4Liq4LmA4LiV4LmH4LiBCivguKrguYDguJXguJnguYDguKXguKoKK+C4quC5gOC4leC4ouC5jAor4Liq4LmE4LiV4Lij4LmK4LiE4LmMCivguKrguJbguJkKK+C4quC4luC4muC4lOC4tQor4Liq4LiW4LilCivguKrguJbguKfguLXguKPguLAKK+C4quC4luC4suC4mQor4Liq4LiW4Liy4LiZ4LiwCivguKrguJbguLLguJnguLUKK+C4quC4luC4suC4muC4gQor4Liq4LiW4Liy4Lia4Lix4LiZCivguKrguJbguLLguJvguJnguLIKK+C4quC4luC4suC4m+C4meC4tOC4gQor4Liq4LiW4Liy4Lib4LiZ4Li14Lii4Lie4Lii4Liy4LiB4Lij4LiT4LmMCivguKrguJbguLLguJvguJnguLXguKLguKfguLLguJfguLUKK+C4quC4luC4suC4m+C4seC4leC4ouC4geC4o+C4o+C4oQor4Liq4LiW4Liy4Lie4LijCivguKrguJbguLLguKUKK+C4quC4luC4suC4p+C4owor4Liq4LiW4Li04LiVCivguKrguJbguLTguJXguJnguKjguLLguKrguJXguKPguYwKK+C4quC4luC4tOC4leC4tAor4Liq4LiW4Li44LilCivguKrguJbguLnguJsKK+C4quC4l+C4suC4owor4Liq4LiX4Li24LiHCivguKrguJfguLjguKEKK+C4quC4mOC4mQor4Liq4LiY4Li44Liq4LiwCivguKrguJkKK+C4quC5ieC4mQor4Liq4LiZ4LmA4LiU4LiBCivguKrguJnguJfguJnguLIKK+C4quC4meC4l+C4o+C4o+C4qAor4Liq4LiZ4LiX4Lij4Lij4Lio4LiZ4LmMCivguKrguJnguJfguLTguKgKK+C4quC4meC5gOC4l+C4qAor4Liq4LiZ4LmA4LiX4LmI4Lir4LmMCivguKrguJnguJjguKLguLIKK+C4quC4meC4mOC4tAor4Liq4LiZ4LiY4Li04Lit4Lil4LiH4LiB4LiVCivguKrguJnguJnguKPguLLguITguLIKK+C4quC4meC4oQor4Liq4LiZ4Lin4LiZCivguKrguJnguKrguKPguYnguK3guKIKK+C4quC4meC4reC4hwor4Liq4LiZ4Lit4LiaCivguKrguJnguK3guKEKK+C4quC4meC4sAor4Liq4LiZ4Lix4LiUCivguKrguJnguLHguYjguJkKK+C4quC4meC4seC4mgor4Liq4LiZ4Lix4Lia4Liq4LiZ4Li44LiZCivguKrguJnguLLguJTguIEKK+C4quC4meC4suC4mQor4Liq4LiZ4Liy4Lia4LiBCivguKrguJnguLLguJrguLHguJkKK+C4quC4meC4suC4oQor4Liq4LiZ4Liy4Lii4Li4CivguKrguJnguLTguIEKK+C4quC4meC4tOC4lwor4Liq4LiZ4Li04LiYCivguKrguJnguLTguKEKK+C4quC4meC4tOC4oeC4quC4o+C5ieC4reC4ogor4Liq4LiZ4Li44LiBCivguKrguJnguLjguIHguYDguIHguK3guKPguYwKK+C4quC4meC4uOC4ggor4Liq4LiZ4Li44LiVCivguKrguJnguLjguYjguJkKK+C4quC4mgor4Liq4Lia4LiHCivguKrguJrguIgKK+C4quC4muC4lgor4Liq4Lia4LmA4Liq4Li14LiiCivguKrguJrguLHguJkKK+C4quC4muC4suC4ogor4Liq4Lia4Li54LmICivguKrguYTguJoKK+C4quC4m+C4o+C4tOC4hwor4Liq4Lib4Liy4LmA4LiB4LiV4LiV4Li1CivguKrguJvguLLguKIKK+C4quC4m+C4tOC4o+C4tOC4lQor4Liq4LmA4Lib4LiB4LiV4Lij4Lix4LihCivguKrguYDguJvguIHguYLguJfguKPguKrguYLguITguJsKK+C4quC5hOC4m+C4o+C4tOC4peC4peC4seC4oQor4Liq4Lie4Lix4LmJ4LiZCivguKrguJ7guLLguJoKK+C4quC4oOC4seC4h+C4hOC4oeC4k+C4keC4pQor4Liq4Lig4LiyCivguKrguKDguLLguIQKK+C4quC4oOC4suC4ngor4Liq4Lig4Liy4Lin4LiwCivguKrguKEKK+C4quC5ieC4oQor4Liq4Lih4LiB4Liy4LijCivguKrguKHguIjguLLguKPguLUKK+C4quC4oeC4iuC4teC4p+C4tOC4leC4sgor4Liq4Lih4LiK4Li14Lin4Li04LiY4Lij4Lij4LihCivguKrguKHguI3guLIKK+C4quC4oeC5gOC4jeC4qAor4Liq4Lih4LiT4LiwCivguKrguKHguJTguLbguIfguKrguYwKK+C4quC4oeC4lOC4uOC4pQor4Liq4Lih4LmA4LiU4LmH4LiICivguKrguKHguJbguLAKK+C4quC4oeC4meC4suC4hOC4uOC4kwor4Liq4Lih4Lia4Lix4LiV4Li0CivguKrguKHguJrguLjguIHguKrguKHguJrguLHguJkKK+C4quC4oeC4muC4ueC4o+C4k+C5jAor4Liq4Lih4Lia4Li54Lij4LiT4Liy4LiN4Liy4Liq4Li04LiX4LiY4Li04Lij4Liy4LiK4Lii4LmMCivguKrguKHguJvguKPguLDguJTguLUKK+C4quC4oeC4m+C4pOC4lOC4tQor4Liq4Lih4Lib4Lik4LmF4LiU4Li1CivguKrguKHguJzguLjguKoKK+C4quC4oeC4nuC4h+C4qOC5jAor4Liq4Lih4Lie4LilCivguKrguKHguJ7guLHguIHguJnguLHguIHguIHguLLguKMKK+C4quC4oeC4nuC4seC4leC4quC4owor4Liq4Lih4Lie4Liy4LiqCivguKrguKHguYDguJ7guIoKK+C4quC4oeC5guC4nuC4mOC4meC5jAor4Liq4Lih4LmC4Lie4LiY4Li0CivguKrguKHguKDguJ4KK+C4quC4oeC4oOC4suC4owor4Liq4Lih4LmC4Lig4LiECivguKrguKHguYLguKDguIoKK+C4quC4oeC4oeC4lQor4Liq4Lih4Lih4LiV4Li0CivguKrguKHguKHguLLguJXguKMKK+C4quC4oeC4oeC4uOC4leC4tAor4Liq4Lih4Lih4Li54LilCivguKrguKHguYLguKHguJcKK+C4quC4oeC5guC4ouC4hAor4Liq4Lih4LijCivguKrguKHguKPguJQKK+C4quC4oeC4o+C4o+C4lgor4Liq4Lih4Lij4LiqCivguKrguKHguKTguJTguLUKK+C4quC4oeC4pOC4leC4tAor4Liq4Lih4Lik4LmF4LiU4Li1CivguKrguKHguKfguLHguKIKK+C4quC4oeC4p+C4suC4ouC4sAor4Liq4Lih4LmA4Liq4Lij4LmH4LiICivguKrguKHguK0KK+C4quC4oeC4reC4hwor4Liq4Lih4Lit4Liq4Liz4LmA4Lig4LiyCivguKrguKHguLHguIQKK+C4quC4oeC4seC4hOC4owor4Liq4Lih4Lix4LiH4LiE4Li1CivguKrguKHguLHguIoKK+C4quC4oeC4seC4iuC4iuC4sgor4Liq4Lih4Lix4LiVCivguKrguKHguLHguJkKK+C4quC4oeC4seC4meC4leC5jAor4Liq4Lih4Lix4LiiCivguKrguKHguLIKK+C4quC4oeC4suC4hOC4oQor4Liq4Lih4Liy4LiI4Liy4LijCivguKrguKHguLLguIrguLTguIEKK+C4quC4oeC4suC4l+C4suC4mQor4Liq4Lih4Liy4LiY4Li0CivguKrguKHguLLguJkKK+C4quC4oeC4suC4meC4seC4leC4leC4sgor4Liq4Lih4Liy4LmC4LiZ4LiV4Lih4LmMCivguKrguKHguLLguJrguLHguJXguLQKK+C4quC4oeC4suC4nuC4seC4meC4mOC4o+C4seC4kAor4Liq4Lih4Liy4LiqCivguKrguKHguYjguLPguYDguKrguKHguK0KK+C4quC4oeC4tOC4hwor4Liq4Lih4Li04LiH4LiX4Lit4LiHCivguKrguKHguLTguJUKK+C4quC4oeC4tOC4leC4tAor4Liq4Lih4Li04LiX4LiY4LmMCivguKrguKHguLTguJfguJjguLQKK+C4quC4oeC4tQor4Liq4Lih4Li14LibCivguKrguKHguLXguKMKK+C4quC4oeC4uOC4gQor4Liq4Lih4Li44LiI4LiI4Lix4LiiCivguKrguKHguLjguIjguYDguInguJcKK+C4quC4oeC4uOC4j+C4kOC4suC4mQor4Liq4Lih4Li44LiUCivguKrguKHguLjguJXguJbguLLguJkKK+C4quC4oeC4uOC4l+C4owor4Liq4Lih4Li44LiX4Lij4LiBCivguKrguKHguLjguJfguLHguKIKK+C4quC4oeC4uOC4l+C4tOC4lQor4Liq4Lih4Li44LiZCivguKrguKHguLjguJnguYTguJ7guKMKK+C4quC4oeC4uOC4peC5geC4p+C5ieC4hwor4Liq4Lih4Li44Lir4LmMCivguKrguYLguKHguJjguLLguJkKK+C4quC5guC4oeC4quC4owor4Liq4Lii4LiUCivguKrguKLguJnguLAKK+C4quC4ouC4mgor4Liq4Lii4Lih4Lie4LijCivguKrguKLguKHguKDguLkKK+C4quC4ouC4reC4hwor4Liq4Lii4Lit4LiZCivguKrguKLguLHguKHguJ7guKMKK+C4quC4ouC4seC4oeC4p+C4o+C4sgor4Liq4Lii4Liy4LihCivguKrguKLguLLguKIKK+C4quC4ouC4tOC4pwor4Liq4Lii4Li04LmJ4LinCivguKrguKLguLjguYjguJkKK+C4quC4ouC4uOC4oeC4nuC4owor4Liq4Lii4Li44Lih4Lig4Li5CivguKrguKMKK+C4quC4o+C4gQor4Liq4Lij4LiHCivguKrguKPguYjguIcKK+C4quC4o+C4j+C4sAor4Liq4Lij4LiT4LiwCivguKrguKPguJTguLHguIEKK+C4quC4o+C4lOC4tuC5iOC4mQor4Liq4Lij4LiU4Li34LmI4LiZCivguKrguKPguJXguLAKK+C4quC4o+C4leC4seC4gQor4Liq4Lij4LiX4LiwCivguKrguKPguJfguLbguIcKK+C4quC4o+C5geC4l+C4mgor4Liq4Lij4LiZ4Li44LiBCivguKrguKPguYDguJnguLLguLAKK+C4quC4o+C5hOC4mQor4Liq4Lij4LiaCivguKrguKPguJrguJoKK+C4quC4o+C4muC4seC4mgor4Liq4Lij4LieCivguKrguKPguYDguJ7guIrguI0KK+C4quC4o+C4oOC4sAor4Liq4Lij4Lig4Lix4LiN4LiN4LiwCivguKrguKPguKDguLkKK+C4quC4o+C4oQor4Liq4Lij4LijCivguKrguKPguKPguITguYwKK+C4quC4o+C4o+C4ngor4Liq4Lij4Lij4Lie4Lix4LiK4LiNCivguKrguKPguKPguYDguJ7guIrguI0KK+C4quC4o+C4o+C5gOC4nuC4iuC4uOC4lOC4sgor4Liq4Lij4Lij4Lin4LiHCivguKrguKPguKPguYDguKrguKPguLTguI0KK+C4quC4o+C4peC4mQor4Liq4Lij4Lil4LihCivguKrguKPguKXguKHguKrguKXguKfguJkKK+C4quC4o+C4peC4reC4lAor4Liq4Lij4Lil4Lit4LiZCivguKrguKPguKXguLAKK+C4quC4o+C4peC5ieC4suC4ogor4Liq4Lij4Lil4Li04LiUCivguKrguKPguYDguKXguIIKK+C4quC4o+C4p+C4hwor4Liq4Lij4Lin4LibCivguKrguKPguKfguKEKK+C4quC4o+C4p+C4pQor4Liq4Lij4Lin4Lil4LmA4LiqCivguKrguKPguKfguKXguYDguKrguYDguK7guK7guLIKK+C4quC4o+C5gOC4quC4o+C4tOC4jQor4Liq4Lij4LmJ4Lit4LiiCivguKrguKPguYnguK3guKLguJfguLDguYHguKIKK+C4quC4o+C4sAor4Liq4Lij4Liw4LiB4LitCivguKrguKPguLDguITguKPguLLguI0KK+C4quC4o+C4sOC4lOC4sAor4Liq4Lij4Liw4LiX4LmJ4Lit4LiZCivguKrguKPguLDguJ7guKPguLHguYjguIcKK+C4quC4o+C4sOC4reC4suC4lAor4Liq4Lij4Liw4Lit4Li34LmJ4LiZCivguKrguKPguLHguYjguIcKK+C4quC4o+C4seC4quC4p+C4lOC4tQor4Liq4Lij4LmI4Liy4LiHCivguKrguKPguYnguLLguIcKK+C4quC4o+C4suC4jQor4Liq4Lij4LmJ4Liy4Lin4LmA4Liq4Li14Lii4LinCivguKrguKPguLTguJUKK+C4quC4o+C4teC5iQor4Liq4Lij4Li14Lij4LiwCivguKrguKPguLXguKrguKTguJoKK+C4quC4o+C4uOC4gQor4Liq4Lij4Li44LiHCivguKrguKPguLjguYLguJnguIEKK+C4quC4o+C4uOC4mwor4Liq4Lij4Li44Liq4Lij4LiwCivguKrguKPguLnguJsKK+C4quC5guC4o+C4igor4Liq4Lik4LiBCivguKrguKTguITguLLguKUKK+C4quC4pOC4lQor4Liq4Lik4Lip4LiO4LmMCivguKrguKTguKnguI7guLUKK+C4quC4pQor4Liq4Lil4LiUCivguKrguKXguJoKK+C4quC4peC4p+C4mQor4Liq4Lil4Lin4LiiCivguKrguKXguK3guJQKK+C4quC4peC4reC4mQor4Liq4Lil4Lit4LiiCivguKrguKXguLAKK+C4quC4peC4sOC4quC4peC4p+C4ogor4Liq4Lil4Lix4LiBCivguKrguKXguLHguIHguYDguJXguYkKK+C4quC4peC4seC4geC4quC4s+C4hOC4seC4jQor4Liq4Lil4Lix4LiUCivguKrguKXguLHguJTguYTguJQKK+C4quC4peC4seC4mgor4Liq4Lil4Lix4LihCivguKrguKXguLHguKcKK+C4quC4peC4sgor4Liq4Lil4Liy4LiBCivguKrguKXguLLguIHguLIKK+C4quC4peC4suC4hwor4Liq4Lil4LmJ4Liy4LiHCivguKrguKXguLLguJQKK+C4quC4peC4suC4leC4seC4mQor4Liq4Lil4Liy4LiaCivguKrguKXguLLguKEKK+C4quC4peC4suC4ogor4Liq4Lil4Li04LiUCivguKrguKXguLTguKUKK+C4quC4peC4tuC4gQor4Liq4Lil4Li24LiHCivguKrguKXguLjguJUKK+C4quC4peC4uOC4mgor4Liq4Lil4Li44Lih4Lie4LijCivguKrguYHguKXguIcKK+C4quC5guC4peC4lAor4Liq4LmE4Lil4LiU4LmMCivguKrguKfguIEKK+C4quC5ieC4p+C4hwor4Liq4Lin4LiUCivguKrguKfguJkKK+C4quC5iOC4p+C4mQor4Liq4Lin4LiZ4LiwCivguKrguKfguJnguLTguJUKK+C4quC4p+C4mgor4Liq4Lin4LihCivguKrguYnguKfguKEKK+C4quC4p+C4ogor4Liq4LmI4Lin4LiiCivguKrguYnguKfguKIKK+C4quC4p+C4ouC4oQor4Liq4Lin4LijCivguKrguKfguKPguKPguITguYwKK+C4quC4p+C4o+C4o+C4ouC4sgor4Liq4Lin4LiwCivguKrguKfguLHguKrguJTguLTguYwKK+C4quC4p+C4seC4quC4lOC4tQor4Liq4Lin4Lix4Liq4LiV4Li04LiB4LiwCivguKrguKfguLIKK+C4quC4p+C4suC4hOC4lQor4Liq4Lin4Liy4LiHCivguKrguKfguYjguLLguIcKK+C4quC4p+C4suC4lAor4Liq4Lin4Liy4LiU4Li0CivguKrguKfguLLguJcKK+C4quC4p+C4suC4mQor4Liq4Lin4LmI4Liy4LiZCivguKrguKfguYnguLLguJkKK+C4quC4p+C4suC4mgor4Liq4Lin4Liy4Lih4Li0CivguKrguKfguLLguKHguLUKK+C4quC4p+C4suC4ogor4Liq4Lin4Liy4Liq4LiU4Li04LmMCivguKrguKfguLLguKvguLAKK+C4quC4p+C4tOC4hwor4Liq4Lin4Li04LiH4Liq4Lin4Liy4LiiCivguKrguKfguLTguI3guI3guLLguJPguIHguJfguKPguLHguJ7guKLguYwKK+C4quC4p+C4tOC4leC4i+C5jAor4Liq4Liq4Liy4LijCivguKrguKrguLjguKPguLAKK+C4quC4quC4uOC4o+C4tQor4Liq4Lir4Lix4Lih4Lia4LiU4Li1CivguKrguKvguLHguKrguKPguLHguIfguKrguLUKK+C4quC4q+C4seC4quC4quC4sAor4Liq4Lir4Lix4Liq4LiyCivguKrguK0KK+C4quC5iOC4rQor4Liq4Lit4LiHCivguKrguYjguK3guIcKK+C4quC5ieC4reC4hwor4Liq4Lit4LiUCivguKrguK3guJkKK+C4quC5iOC4reC4mQor4Liq4Lit4LiaCivguKrguK3guJ7guKXguK0KK+C4quC5ieC4reC4oQor4Liq4Lit4LiiCivguKrguYjguK3guYDguKrguLXguKLguJQKK+C4quC4sAor4Liq4Liw4LiB4LiUCivguKrguLDguIHguK0KK+C4quC4sOC4geC4suC4hwor4Liq4Liw4LiB4Liy4Lij4LiwCivguKrguLDguIHguLLguKPguLDguJXguLLguKvguKPguLIKK+C4quC4sOC4geC4tOC4lAor4Liq4Liw4LmA4LiB4LmH4LiUCivguKrguLDguYHguIEKK+C4quC4sOC4hOC4o+C5ieC4rQor4Liq4Liw4LiE4Lij4Liy4LiNCivguKrguLDguITguYnguLLguJkKK+C4quC4sOC5gOC4h+C4suC4sOC4quC4sOC5geC4h+C4sAor4Liq4Liw4LmD4LiICivguKrguLDguJTguKEKK+C4quC4sOC4lOC4p+C4gQor4Liq4Liw4LiU4Lix4LiBCivguKrguLDguJTguLTguYnguIcKK+C4quC4sOC4lOC4tuC4hwor4Liq4Liw4LiU4Li34LitCivguKrguLDguJTguLjguYnguIcKK+C4quC4sOC4lOC4uOC4lAor4Liq4Liw4LmA4LiU4LmH4LiUCivguKrguLDguYDguJTguLIKK+C4quC4sOC5gOC4lOC4suC4sAor4Liq4Liw4LiV4LitCivguKrguLDguJXguLLguKvguKHguLHguJkKK+C4quC4sOC4leC4tgor4Liq4Liw4LiV4Li34LitCivguKrguLDguJXguLgKK+C4quC4sOC5gOC4leC5iuC4sAor4Liq4Liw4LmC4LiV4LiBCivguKrguLDguJfguIEKK+C4quC4sOC4l+C4mQor4Liq4Liw4LiX4LmJ4Lit4LiZCivguKrguLDguJfguYnguLLguJkKK+C4quC4sOC4l+C4tuC4gQor4Liq4Liw4LiX4Li24LiZCivguKrguLDguJfguLbguYjguJkKK+C4quC4sOC5gOC4l+C4tOC4mQor4Liq4Liw4LmA4LiX4Li04LmJ4LiZCivguKrguLDguYDguJfguLfguK3guJkKK+C4quC4sOC5gOC4l+C4t+C5ieC4reC4mQor4Liq4Liw4Lia4LiwCivguKrguLDguJrguLHguIEKK+C4quC4sOC4muC4seC4lAor4Liq4Liw4Lia4Lix4LmJ4LiZCivguKrguLDguJrguLHguJnguIfguLIKK+C4quC4sOC4muC4seC4meC4h+C4suC4leC5ieC4mQor4Liq4Liw4Lia4LmJ4LiyCivguKrguLDguJrguLkKK+C4quC4sOC5geC4muC4hwor4Liq4Liw4LmA4Lib4Liw4Liq4Liw4Lib4LiwCivguKrguLDguJ7guKPguLHguIEKK+C4quC4sOC4nuC4o+C4seC5iOC4hwor4Liq4Liw4Lie4Lij4Li24LiH4LiB4Lil4Lix4LinCivguKrguLDguJ7guKPguLbguJoKK+C4quC4sOC4nuC4seC4gQor4Liq4Liw4Lie4Lix4LiHCivguKrguLDguJ7guLHguJQKK+C4quC4sOC4nuC4seC5ieC4mQor4Liq4Liw4Lie4Liy4LiZCivguKrguLDguJ7guLLguKIKK+C4quC4sOC5gOC4nuC4o+C5iOC4sgor4Liq4Liw4LmC4Lie4LiBCivguKrguLDguYDguKDguLIKK+C4quC4sOC5g+C4oOC5iQor4Liq4Liw4LmC4Lih4LiHCivguKrguLDguKPguLDguJXguLAKK+C4quC4sOC4o+C4sOC5geC4q+C4meC5iAor4Liq4Liw4Lij4Li14LiV4Lie4LiH4Lio4LmMCivguKrguLDguKXguLDguJvguLDguJXguLjguYjguJkKK+C4quC4sOC4peC4suC4hwor4Liq4Liw4Lil4Li24Lih4Liq4Liw4Lil4Li34LitCivguKrguLDguKfguLXguYnguJTguKrguLDguKfguYnguLLguJQKK+C4quC4sOC4quC4oQor4Liq4Liw4Liq4Liy4LiHCivguKrguLDguK3guLLguIcKK+C4quC4sOC4reC4suC4lAor4Liq4Liw4Lit4LmJ4Liy4LiZCivguKrguLDguK3guLTguYnguIcKK+C4quC4sOC4reC4tOC4lOC4quC4sOC5gOC4reC4teC4ouC4mQor4Liq4Liw4Lit4Li24LiBCivguKrguLDguK3guLfguYnguJkKK+C4quC4sOC5gOC4reC4pwor4Liq4Liw4LmA4Lit4Lit4LiwCivguKrguLDguYLguK3guJTguKrguLDguK3guIcKK+C4quC4sOC5hOC4rQor4Liq4Lix4LiBCivguKrguLHguIHguIHguLAKK+C4quC4seC4geC4geC4seC4iOC4iOC4sAor4Liq4Lix4LiB4LiB4Liy4Lij4LiwCivguKrguLHguIHguILguKPguLIKK+C4quC4seC4geC4guC4tQor4Liq4Lix4LiB4LiP4LiwCivguKrguLHguIHguJXguLAKK+C4quC4seC4geC4ouC4sAor4Liq4Lix4LiB4Lin4LiyCivguKrguLHguIHguKvguKXguLLguJQKK+C4quC4seC4guC4ouC4sAor4Liq4Lix4LiECivguKrguLHguITguITguLAKK+C4quC4seC5iOC4hwor4Liq4Lix4LiH4LiB4Lih4LiX4Lij4Lix4Lie4Lii4LmMCivguKrguLHguIfguIHguKMKK+C4quC4seC4h+C4geC4sOC4leC4seC4hwor4Liq4Lix4LiH4LiB4Liw4Lin4Lix4LiHCivguKrguLHguIfguIHguLDguKfguLLguJQKK+C4quC4seC4h+C4geC4sOC4quC4tQor4Liq4Lix4LiH4LiB4Lix4LiUCivguKrguLHguIfguIHguLHguJvguJvguLAKK+C4quC4seC4h+C4geC4sgor4Liq4Lix4LiH4LiB4Liy4LijCivguKrguLHguIfguIHguLLguKgKK+C4quC4seC4h+C4geC4tOC5gOC4peC4qgor4Liq4Lix4LiH4LmA4LiB4LiVCivguKrguLHguIfguILguYwKK+C4quC4seC4h+C4guC4leC4sAor4Liq4Lix4LiH4LiC4Lii4LiyCivguKrguLHguIfguILguKXguLTguIEKK+C4quC4seC4h+C4guC4peC4tOC4geC4sgor4Liq4Lix4LiH4LiC4Lin4Liy4LiZ4LijCivguKrguLHguIfguILguLLguKMKK+C4quC4seC4h+C4guC4suC4o+C4l+C4uOC4geC4guC5jAor4Liq4Lix4LiH4LiC4Liy4Lij4LiY4Lij4Lij4LihCivguKrguLHguIfguILguLLguKPguYLguKXguIEKK+C4quC4seC4h+C4guC4suC4o+C4reC4uOC5gOC4muC4geC4guC4sgor4Liq4Lix4LiH4LmA4LiC4LibCivguKrguLHguIfguYLguILguKAKK+C4quC4seC4h+C4hOC5jAor4Liq4Lix4LiH4LiE4LihCivguKrguLHguIfguITguKHguJnguLTguKLguKEKK+C4quC4seC4h+C4hOC4oeC4p+C4tOC4l+C4ouC4sgor4Liq4Lix4LiH4LiE4Lih4Lio4Liy4Liq4LiV4Lij4LmMCivguKrguLHguIfguITguKHguKjguLbguIHguKnguLIKK+C4quC4seC4h+C4hOC4oeC4quC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Liq4Lix4LiH4LiE4Lir4LiwCivguKrguLHguIfguITguLHguIcKK+C4quC4seC4h+C4hOC4suC4leC4sgor4Liq4Lix4LiH4LiE4Liy4Lii4LiZ4LiyCivguKrguLHguIfguITguLLguKLguJnguLLguKIKK+C4quC4seC4h+C4hOC4teC4lQor4Liq4Lix4LiH4LiE4Li14LiV4Li0CivguKrguLHguIfguYDguITguYfguJQKK+C4quC4seC4h+C5gOC4hOC4o+C4suC4sOC4q+C5jAor4Liq4Lix4LiH4LiG4Liy4LiP4Li0CivguKrguLHguIfguJTguLHguIEKK+C4quC4seC4h+C4m+C4sOC4leC4tOC5gOC4q+C4h+C4sAor4Liq4Lix4LiH4Lib4Liw4Lil4Li04LmA4Lir4LiH4LiwCivguKrguLHguIfguYLguKLguIQKK+C4quC4seC4h+C5guC4ouC4iuC4meC5jAor4Liq4Lix4LiH4Lin4LijCivguKrguLHguIfguKfguLHguIjguInguKPguLAKK+C4quC4seC4h+C4p+C4seC4mOC4ouC4suC4ogor4Liq4Lix4LiH4Lin4Liy4LilCivguKrguLHguIfguKfguLLguKoKK+C4quC4seC4h+C5gOC4p+C4igor4Liq4Lix4LiH4LmA4Lin4LiiCivguKrguLHguIfguYDguKfguLXguKLguJkKK+C4quC4seC4h+C4quC4geC4pOC4lQor4Liq4Lix4LiH4Liq4LiB4Liy4LijCivguKrguLHguIfguKrguJTguKHguKDguYwKK+C4quC4seC4h+C4quC4meC4l+C4meC4sgor4Liq4Lix4LmI4LiH4Liq4LiZ4LiX4LiZ4LiyCivguKrguLHguIfguKrguKPguKPguITguYwKK+C4quC4seC4h+C4quC4suC4o+C4p+C4seC4jwor4Liq4Lix4LiH4Liq4Li04LiX4LiY4Li0CivguKrguLHguIfguKrguLjguJfguJjguYwKK+C4quC4seC4h+C4quC4uOC4l+C4mOC4tAor4Liq4Lix4LiH4Lir4LijCivguKrguLHguIfguKvguKPguJPguYwKK+C4quC4seC4h+C4q+C4o+C4o+C4qQor4Liq4Lix4LiH4Lir4Liy4LijCivguKrguLHguIfguKvguLLguKPguLTguKHguJfguKPguLHguJ7guKLguYwKK+C4quC4seC4h+C4q+C4suC4o+C4tOC4oeC4sAor4Liq4Lix4LiH4Lir4Li04LiVCivguKrguLHguIgKK+C4quC4seC4iOC4iOC4sAor4Liq4Lix4LiI4LiI4LiyCivguKrguLHguIrguIzguLAKK+C4quC4seC4iuC4jOC4suC4ouC4sAor4Liq4Lix4LiK4LiM4Li4CivguKrguLHguI3guIjguKMKK+C4quC4seC4jeC4iOC4suC4owor4Liq4Lix4LiN4LmA4LiI4LiV4LiZ4LiyCivguKrguLHguI3guIrguLLguJXguI3guLLguJMKK+C4quC4seC4jeC4iuC4suC4leC4quC4o+C4sAor4Liq4Lix4LiN4LiK4Liy4LiV4Li0CivguKrguLHguI3guIrguLXguJ7guJnguKPguIEKK+C4quC4seC4jeC4jOC4sgor4Liq4Lix4LiN4LiN4LiyCivguKrguLHguI3guI3guLLguJMKK+C4quC4seC4jeC4jeC4tQor4Liq4Lix4LiN4LmC4LiN4LiK4LiZ4LmMCivguKrguLHguI3guYLguKLguIQKK+C4quC4seC4jeC4peC4seC4geC4qeC4k+C5jAor4Liq4Lix4LiQ4Li0CivguKrguLHguJPguJDguLLguJkKK+C4quC4seC4k+C4kOC4tOC4leC4tAor4Liq4Lix4LiT4LiR4LmMCivguKrguLHguJPguKvguYwKK+C4quC4seC4lAor4Liq4Lix4LiU4LiI4Lit4LiHCivguKrguLHguJUKK+C4quC4seC4leC4leC4muC4h+C4geC4igor4Liq4Lix4LiV4LiV4Lia4Lij4Lij4LiTCivguKrguLHguJXguJXguJrguLjguKnguKLguYwKK+C4quC4seC4leC4leC4p+C4k+C4tOC4iuC4iuC4sgor4Liq4Lix4LiV4LiV4LiwCivguKrguLHguJXguJXguLkKK+C4quC4seC4leC4lgor4Liq4Lix4LiV4LiW4Lix4LiZ4LiU4LijCivguKrguLHguJXguJbguLIKK+C4quC4seC4leC4luC4tAor4Liq4Lix4LiV4LiW4Li4CivguKrguLHguJXguJrguKPguKPguJMKK+C4quC4seC4leC4muC4o+C4tOC4oOC4seC4k+C4keC5jAor4Liq4Lix4LiV4Lii4LmMCivguKrguLHguJXguKfguYwKK+C4quC4seC4leC4p+C4sgor4Liq4Lix4LiX4LiY4Lij4Lij4LihCivguKrguLHguJfguJjguLIKK+C4quC4seC4l+C4mOC4tOC4h+C4p+C4tOC4q+C4suC4o+C4tOC4gQor4Liq4Lix4LiX4LiY4Li04Lin4Li04Lir4Liy4Lij4Li04LiBCivguKrguLHguJfguKjguLLguKrguJXguKPguYwKK+C4quC4seC4mQor4Liq4Lix4LmI4LiZCivguKrguLHguYnguJkKK+C4quC4seC4meC4lOC4suC4mQor4Liq4Lix4LiZ4LiU4Liy4LibCivguKrguLHguJnguJTguLjguKnguI7guLUKK+C4quC4seC4meC5gOC4lOC4gQor4Liq4Lix4LiZ4LmC4LiU4LipCivguKrguLHguJnguJXguYwKK+C4quC4seC4meC4leC4leC4tAor4Liq4Lix4LiZ4LiV4Liw4Lib4Liy4Lib4LiyCivguKrguLHguJnguJXguLDguYLguKMKK+C4quC4seC4meC4leC4sOC4p+C4sgor4Liq4Lix4LiZ4LiV4Li0CivguKrguLHguJnguJXguLTguIHguLAKK+C4quC4seC4meC4leC4tOC5gOC4geC4meC4tOC4l+C4suC4mQor4Liq4Lix4LiZ4LiV4Li44LiP4LiQ4Li1CivguKrguLHguJnguJbguKPguLAKK+C4quC4seC4meC4luC4p+C4sAor4Liq4Lix4LiZ4LiW4Lix4LiVCivguKrguLHguJnguJbguLLguKMKK+C4quC4seC4meC4l+C4meC4sAor4Liq4Lix4LiZ4LiX4LiZ4Liy4LiB4Liy4LijCivguKrguLHguJnguJfguLAKK+C4quC4seC4meC4l+C4seC4lAor4Liq4Lix4LiZ4LiX4Lix4Liq4LiZ4LiwCivguKrguLHguJnguJfguLLguJkKK+C4quC4seC4meC4l+C4tOC4kOC4tAor4Liq4Lix4LiZ4LiX4Li04LiqCivguKrguLHguJnguYDguJfguKoKK+C4quC4seC4meC5gOC4l+C4qwor4Liq4Lix4LiZ4LmA4LiX4LmI4Lir4LmMCivguKrguLHguJnguJjguLLguJkKK+C4quC4seC4meC4meC4tOC4mOC4tAor4Liq4Lix4LiZ4LiZ4Li04Lia4Liy4LiVCivguKrguLHguJnguJnguLTguKfguLLguKoKK+C4quC4seC4meC4meC4tOC5gOC4p+C4qgor4Liq4Lix4LiZ4LiZ4Li04Lip4LiQ4Liy4LiZCivguKrguLHguJnguJ7guKPguYnguLLguJnguLLguIfguYHguK0KK+C4quC4seC4meC4nuC4o+C5ieC4suC4oeC4reC4jQor4Liq4Lix4LiZ4Lie4Lij4LmJ4Liy4Lir4Lit4LihCivguKrguLHguJnguKPguKfguIcKK+C4quC4seC4meC4peC4tuC4gQor4Liq4Lix4LiZ4Liq4LiB4Lik4LiVCivguKrguLHguJoKK+C4quC4seC4muC4m+C4peC4seC4mgor4Liq4Lix4Lia4Lib4Lil4Li14LmJCivguKrguLHguJrguJvguLDguKPguLHguIfguYDguIQKK+C4quC4seC4muC4m+C4suC4gQor4Liq4Lix4Lib4LiE4Lix4LiaCivguKrguLHguJvguJTguJkKK+C4quC4seC4m+C5guC4lOC4gQor4Liq4Lix4Lib4LmC4LiU4LiB4Liq4Lix4Lib4LiU4LiZCivguKrguLHguJvguJfguJkKK+C4quC4seC4m+C4m+C4sAor4Liq4Lix4Lib4Lib4Liy4Lii4LiB4Liy4Lij4Li1CivguKrguLHguJvguJvguLQKK+C4quC4seC4m+C4m+C4uOC4o+C4uOC4qQor4Liq4Lix4Lib4Lij4Liw4Lii4Li44LiX4LiY4LmMCivguKrguLHguJvguKvguIfguIEKK+C4quC4seC4m+C5gOC4q+C4o+C5iOC4rQor4Liq4Lix4LieCivguKrguLHguJ7guJ7guLAKK+C4quC4seC4nuC4nuC4seC4jeC4jeC4uQor4Liq4Lix4Lie4LmA4Lie4Liq4Lix4LiV4LiV4LiyCivguKrguLHguJ7guYDguJ7guYDguKvguKPguLAKK+C4quC4seC4nuC4ouC4reC4gQor4Liq4Lix4Lif4Lix4LiZ4LiE4LiZ4LiX4LiyCivguKrguLHguKHguI3guI3guLIKK+C4quC4seC4oeC4muC4ueC4o+C4k+C5jAor4Liq4Lix4Lih4Lib4LiK4Lix4LiN4LiN4LiwCivguKrguLHguKHguJvguJfguLIKK+C4quC4seC4oeC4m+C4l+C4suC4mQor4Liq4Lix4Lih4Lib4Lii4Li44LiVCivguKrguLHguKHguJvguYLguKLguIQKK+C4quC4seC4oeC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jAor4Liq4Lix4Lih4Lib4Lij4Liw4Lir4Liy4LijCivguKrguLHguKHguJvguKPguLLguKLguKDguJ4KK+C4quC4seC4oeC4m+C4o+C4suC4ouC4tOC4geC4oOC4ngor4Liq4Lix4Lih4Lib4Lix4LiV4LiV4Li0CivguKrguLHguKHguJzguLHguJvguKXguLLguJsKK+C4quC4seC4oeC4nOC4seC4qgor4Liq4Lix4Lih4Lie4LilCivguKrguLHguKHguJ7guKvguLjguKXguLIKK+C4quC4seC4oeC4nuC4seC4leC4quC4owor4Liq4Lix4Lih4Lie4Lix4LiX4LiY4LmMCivguKrguLHguKHguJ7guLHguJnguJjguYwKK+C4quC4seC4oeC4nuC4seC4meC4mOC4meC5jAor4Liq4Lix4Lih4Lie4Liy4LiY4LiwCivguKrguLHguKHguJ7guLLguKPguLAKK+C4quC4seC4oeC4nuC4suC4q+C4meC5jAor4Liq4Lix4Lih4Lie4Liy4Lir4LiwCivguKrguLHguKHguJ7guLjguJfguJjguLAKK+C4quC4seC4oeC5guC4nuC4mOC4tAor4Liq4Lix4Lih4Lig4Lin4LiwCivguKrguLHguKHguKDguYDguKfguKrguLUKK+C4quC4seC4oeC4oOC4seC4lQor4Liq4Lix4Lih4Lig4Lix4LiV4LiV4LiwCivguKrguLHguKHguKDguLLguKnguJPguYwKK+C4quC4seC4oeC5gOC4oOC4l+C4sAor4Liq4Lix4Lih4LmC4Lig4LiE4LiB4Liy4LiiCivguKrguLHguKHguKHguJnguLIKK+C4quC4seC4oeC4oeC4seC4m+C4mOC4suC4mQor4Liq4Lix4Lih4Lih4LiyCivguKrguLHguKHguYLguKHguJfguJnguLXguKLguIHguJbguLIKK+C4quC4seC4oeC4pOC4l+C4mOC4tAor4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMCivguKrguLHguKLguJnguYwKK+C4quC4seC4peC4peC4sAor4Liq4Lix4Lil4Lil4Liy4LibCivguKrguLHguKrguJTguLUKK+C4quC4seC4quC4quC4sAor4Liq4Lix4Liq4Liq4Li4CivguKrguLHguKrguKrguLkKK+C4quC4seC4quC4uOC4o+C4tQor4Liq4LiyCivguKrguYjguLIKK+C4quC4suC4gQor4Liq4Liy4LiB4Lij4Lij4LiI4LmMCivguKrguLLguIHguKUKK+C4quC4suC4geC4qeC4tOC4mQor4Liq4Liy4LiB4Lip4Li1CivguKrguLLguIHguLHguIjguInguLIKK+C4quC4suC4geC4seC4peC4ouC5jAor4Liq4Liy4LiB4Li04Lii4LiwCivguKrguLLguYDguIEKK+C4quC4suC4guC4sgor4Liq4Liy4LiE4LijCivguKrguLLguITguYDguKPguKgKK+C4quC4suC4hOC4uQor4Liq4Liy4LiHCivguKrguLLguIfguKvguYjguLIKK+C4quC4suC4juC4gQor4Liq4Liy4LiT4Li1CivguKrguLLguJQKK+C4quC4suC4lQor4Liq4Liy4LiV4Lij4LiyCivguKrguLLguYTguJbguKIKK+C4quC4suC4l+C4owor4Liq4Liy4LiX4Li04LiqCivguKrguLLguJfguLgKK+C4quC4suC5guC4lwor4Liq4Liy4LiY4LiBCivguKrguLLguJjguJkKK+C4quC4suC4mOC4ouC4sAor4Liq4Liy4LiY4Lii4Liy4LiiCivguKrguLLguJjguLLguKPguJPguYwKK+C4quC4suC4mOC4suC4o+C4k+C4sAor4Liq4Liy4LiY4Li04LiVCivguKrguLLguJjguLgKK+C4quC4suC4mOC4uOC4quC4sAor4Liq4Liy4LiZCivguKrguLLguJnguJXguKfguLAKK+C4quC4suC4meC4uAor4Liq4Liy4LiZ4Li44Lio4Li04Lip4Lii4LmMCivguKrguLLguJnguLkKK+C4quC4suC4mgor4Liq4Liy4Lia4Liq4Li54LiNCivguKrguLLguJrguLLguJkKK+C4quC4suC4mwor4Liq4Liy4Lib4LmE4LiV4LiiCivguKrguLLguJvguKrguKPguKMKK+C4quC4suC4oQor4Liq4Liy4Lih4LiK4Li44LiBCivguKrguLLguKHguYDguJPguKMKK+C4quC4suC4oeC5gOC4k+C4o+C4tQor4Liq4Liy4Lih4LiZ4LiV4LmMCivguKrguLLguKHguKLguJfguKPguLHguJ7guKLguYwKK+C4quC4suC4oeC4o+C4qgor4Liq4Liy4Lih4LilCivguKrguLLguKHguKrguLTguJoKK+C4quC4suC4oeC4seC4hOC4hOC4tQor4Liq4Liy4Lih4Lix4LiNCivguKrguLLguKHguLHguJXguJbguLTguKLguLAKK+C4quC4suC4oeC4suC4meC4ouC5jAor4Liq4Liy4Lih4Liy4Lij4LiWCivguKrguLLguKHguLTguIEKK+C4quC4suC4oeC4tOC4lQor4Liq4Liy4Lih4Li04LiZ4Li1CivguKrguLLguKHguLTguKDguLHguIHguJTguLTguYwKK+C4quC4suC4oeC4tOC4qgor4Liq4Liy4Lih4Li1CivguKrguLLguKHguLXguIjguLTguIHguKPguKPguKEKK+C4quC4suC4ogor4Liq4LmI4Liy4LiiCivguKrguYnguLLguKIKK+C4quC4suC4ouC4iuC4uQor4Liq4Liy4Lii4LiV4LiyCivguKrguLLguKLguYDguKfguJfguKLguYwKK+C4quC4suC4ouC4seC4k+C4q+C5jAor4Liq4Liy4Lii4Liy4Lir4LmMCivguKrguLLguKMKK+C4quC4suC4o+C4geC4o+C4oeC4mOC4o+C4o+C4oeC5jAor4Liq4Liy4Lij4LiE4LiU4Li1CivguKrguLLguKPguYDguITguKHguLUKK+C4quC4suC4o+C4k+C4teC4ouC4mOC4o+C4o+C4oQor4Liq4Liy4Lij4LiV4Lij4LiyCivguKrguLLguKPguJbguLUKK+C4quC4suC4o+C4lwor4Liq4Liy4Lij4LiX4LiyCivguKrguLLguKPguJfguLTguKgKK+C4quC4suC4o+C4l+C4uOC4geC4guC5jAor4Liq4Liy4Lij4LiY4Lij4Lij4LihCivguKrguLLguKPguJnguLTguYDguJfguKgKK+C4quC4suC4o+C4muC4mgor4Liq4Liy4Lij4Lia4Lij4Lij4LiTCivguKrguLLguKPguJrguKPguLTguKrguLjguJfguJjguLTguYwKK+C4quC4suC4o+C4muC4seC4jQor4Liq4Liy4Lij4Lia4Lix4LiaCivguKrguYnguLLguKPguJrguLHguJoKK+C4quC4suC4o+C4muC4suC4jQor4Liq4Liy4Lij4Lib4Lij4Liw4LiB4Lit4LiaCivguKrguLLguKPguJvguKPguLDguYLguKLguIrguJnguYwKK+C4quC4suC4o+C4nuC4seC4lAor4Liq4Liy4Lij4Lie4Lix4LiZCivguKrguLLguKPguJ7guLLguIfguITguYwKK+C4quC4suC4o+C4oOC4suC4ngor4Liq4Liy4Lij4Lig4Li1CivguKrguLLguKPguYTguKHguKIKK+C4quC4suC4o+C4o+C4seC4gQor4Liq4Liy4Lij4Lil4Liw4Lil4Liy4LiiCivguKrguLLguKPguYDguKXguKcKK+C4quC4suC4o+C4p+C4seC4lAor4Liq4Liy4Lij4Lin4Lix4LiV4LijCivguKrguLLguKPguKrguYnguKEKK+C4quC4suC4o+C4q+C4meC4uQor4Liq4Liy4Lij4LiwCivguKrguLLguKPguLDguYLguIHguIEKK+C4quC4suC4o+C4sOC5gOC4mQor4Liq4Liy4Lij4Liw4Lie4LiyCivguKrguLLguKPguLDguJ7guLLguYDguK7guYLguKUKK+C4quC4suC4o+C4sOC4p+C4reC4mQor4Liq4Liy4Lij4Liw4Lin4Liy4Lij4Li1CivguKrguLLguKPguLDguKrguLDguKHguLIKK+C4quC4suC4o+C4sOC4quC4s+C4hOC4seC4jQor4Liq4Liy4Lij4Lix4LiV4LiW4LiwCivguKrguLLguKPguLHguJfguJjguYwKK+C4quC4suC4o+C4seC4oeC4oOC5jAor4Liq4Liy4Lij4Liy4LiT4Li14Lii4LiB4LijCivguKrguLLguKPguLLguJPguLXguKLguLAKK+C4quC4suC4o+C4suC4meC4uOC4geC4o+C4oQor4Liq4Liy4Lij4Li14Lij4Li04LiB4LiY4Liy4LiV4Li4CivguKrguLLguKPguLnguJsKK+C4quC4suC5guC4o+C4igor4Liq4Liy4Lil4LiwCivguKrguLLguKXguLDguKfguJkKK+C4quC4suC4peC4tAor4Liq4Liy4Lil4Li04LiB4LiyCivguKrguLLguKXguLTguJnguLUKK+C4quC4suC4peC4tQor4Liq4Liy4Lil4Li14LmICivguKrguLLguKXguLkKK+C4quC4suC5guC4peC4q+C4tOC4lQor4Liq4Liy4LinCivguKrguLLguKfguIEKK+C4quC4suC4p+C4geC4o+C4sOC4l+C4t+C4muC4q+C4rQor4Liq4Liy4Lin4LiZ4LmJ4Lit4Lii4LmA4Lil4LmI4LiZ4LiZ4LmJ4LizCivguKrguLLguKfguJnguLAKK+C4quC4suC4p+C4tOC4geC4sgor4Liq4Liy4Lin4Li04LiV4LijCivguKrguLLguKfguLTguJXguKPguLUKK+C4quC4suC4quC4meC5jAor4Liq4Liy4Liq4LiZ4LiyCivguKrguLLguKvguKPguYjguLLguKIKK+C4quC4suC4q+C4o+C4tQor4Liq4LmI4Liy4Lir4Lij4Li1CivguKrguLLguKvguLHguKoKK+C4quC4suC5gOC4q+C4leC4uAor4Liq4Liy4LmB4Lir4Lij4LiBCivguKrguLLguKzguLjguKPguLAKK+C4quC4swor4Liq4LmI4LizCivguKrguLPguITguLHguI0KK+C4quC4s+C4i+C5iOC4suC4hwor4Liq4Liz4LmB4LiU4LiHCivguKrguLPguJfguLHguJoKK+C4quC4s+C4meC4p+C4lAor4Liq4Liz4LiZ4Lin4LiZCivguKrguLPguJnguK3guIcKK+C4quC4s+C4meC4seC4gQor4Liq4Liz4LiZ4Liy4LiZCivguKrguLPguJnguLbguIcKK+C4quC4s+C5gOC4meC4sgor4Liq4Liz4LmA4LiZ4Li14Lii4LiHCivguKrguLPguYDguJnguLXguKLguJkKK+C4quC4s+C4muC4reC4gQor4Liq4Liz4Lia4Lix4LiU4Liq4Liz4LiZ4Lin4LiZCivguKrguLPguJvguLDguKXguK0KK+C4quC4s+C4m+C4sOC4q+C4peC4seC4hwor4Liq4Liz4Lib4Lix4LmJ4LiZCivguKrguLPguJvguLHguJnguJnguLUKK+C4quC4s+C5gOC4oOC4sgor4Liq4Liz4LmA4Lig4Liy4LiX4Lit4LiHCivguKrguLPguKHguLDguIfguLIKK+C4quC4s+C4oeC4sOC5guC4meC4hOC4o+C4seC4pwor4Liq4Liz4Lih4Liw4LmC4LiZ4Lib4Liw4LiK4Liy4LiB4LijCivguKrguLPguKHguLDguKXguK0KK+C4quC4s+C4oeC4sOC5gOC4peC5gOC4l+C5gOC4oeC4sgor4Liq4Liz4Lih4Liw4Lir4LiyCivguKrguLPguKPguJQKK+C4quC4s+C4o+C4p+C4iAor4Liq4Liz4Lij4Lin4LihCivguKrguLPguKPguKfguKIKK+C4quC4s+C4o+C4p+C4pQor4Liq4Liz4Lij4Lit4LiBCivguKrguLPguKPguK3guIcKK+C4quC4s+C4o+C4seC4mgor4Liq4Liz4Lij4Liy4LiBCivguKrguLPguKPguLLguI0KK+C4quC4s+C4o+C4tOC4lAor4Liq4Liz4LmA4Lij4LmH4LiICivguKrguLPguYDguKPguLIKK+C4quC4s+C5gOC4o+C4tOC4hwor4Liq4Liz4LmC4Lij4LiHCivguKrguLPguKXguLHguIEKK+C4quC4s+C4peC4suC4mQor4Liq4Liz4Lil4Li1CivguKrguLPguYHguKXguIcKK+C4quC4s+C4quC4o+C5ieC4suC4hwor4Liq4Liz4Liq4LiyCivguKrguLPguYDguKrguYfguJQKK+C4quC5iOC4s+C5gOC4quC4teC4ogor4Liq4Liz4Lir4Lij4Lin4LiUCivguKrguLPguKvguKPguLHguJoKK+C4quC4s+C4q+C4sgor4Liq4Liz4LmA4Lir4LiZ4Li14Lii4LiBCivguKrguLPguYDguKvguKPguYgKK+C4quC4s+C4reC4reC4ogor4Liq4Liz4Lit4Liy4LiHCivguKrguLQKK+C4quC4tOC4geC4guC5jAor4Liq4Li04LiB4LiC4Lih4Liy4LiZ4LiyCivguKrguLTguIHguILguLIKK+C4quC4tOC4guC4owor4Liq4Li04LiC4Lij4Li1CivguKrguLTguILguYDguKPguKgKK+C4quC4tOC4guC4sgor4Liq4Li04LiC4Li1CivguKrguLTguITguLLguKUKK+C4quC4tOC4hwor4Liq4Li04LmI4LiHCivguKrguLTguIfguILguKMKK+C4quC4tOC4h+C4hOC5jAor4Liq4Li04LiH4LiE4Lil4Li04LmJ4LiHCivguKrguLTguIfguITguKXguLUKK+C4quC4tOC4h+C4hOC4suC4owor4Liq4Li04LiH4LiE4Liy4LilCivguKrguLTguIfguITguLUKK+C4quC4tOC4h+C5guC4lQor4Liq4Li04LiH4LmC4LiV4LiX4Liw4LmA4LilCivguKrguLTguIfguKrguLLguKPguLLguKrguLHguJXguKfguYwKK+C4quC4tOC4h+C4q+C5jAor4Liq4Li04LiH4Lir4LilCivguKrguLTguI3guIjguJnguYwKK+C4quC4tOC4lQor4Liq4Li04LmC4LiV4LiX4LiB4Lin4Liy4Lij4Li1CivguKrguLTguJbguLTguKUKK+C4quC4tOC4l+C4mOC5jAor4Liq4Li04LiX4LiY4Li0CivguKrguLTguJfguJjguLTguYwKK+C4quC4tOC4mOC4ouC4sAor4Liq4Li04LiZCivguKrguLTguYnguJkKK+C4quC4tOC4meC4l+C4ueC4o+C4sAor4Liq4Li04LiZ4LiY4LieCivguKrguLTguJnguJjguLgKK+C4quC4tOC4meC4mOC4uOC4o+C4sAor4Liq4Li04LiZ4LmA4LiY4Liy4Lin4LmMCivguKrguLTguJnguLAKK+C4quC4tOC4meC4suC4lAor4Liq4Li04LiZ4Li04LiX4LiY4LmMCivguKrguLTguJnguLUKK+C4quC4tOC5gOC4meC4o+C4uAor4Liq4Li04LmA4LiZ4Lir4LiBCivguKrguLTguYDguJnguKvguJnguLXguKLguLAKK+C4quC4tOC5gOC4meC4q+C4sAor4Liq4Li04LmA4LiZ4Lir4LiyCivguKrguLTguYDguJnguYjguKvguLIKK+C4quC4tOC4mgor4Liq4Li04Lib4Lib4LiwCivguKrguLTguJ7guJnguLAKK+C4quC4tOC4oeC4nuC4peC4tQor4Liq4Li04Lij4LiwCivguKrguLTguKPguLQKK+C4quC4tOC4o+C4tQor4Liq4Li04Lil4LiyCivguKrguLTguYLguKXguIEKK+C4quC4tOC4pwor4Liq4Li04LmI4LinCivguKrguLTguKfguLAKK+C4quC4tOC4p+C4tOC4geC4sgor4Liq4Li04Lir4LiZ4LiyCivguKrguLUKK+C4quC4teC5iAor4Liq4Li14LmJCivguKrguLXguIHguKPguLjguJQKK+C4quC4teC4geC4sgor4Liq4Li14LiB4Li44LiZCivguKrguLXguILguYnguLLguIcKK+C4quC4teC4iOC4seC4gQor4Liq4Li14LiK4Lih4Lie4Li54LiU4LiHCivguKrguLXguIrguKHguJ7guLnguKrguKfguJkKK+C4quC4teC4lAor4Liq4Li14LiU4LitCivguKrguLXguJXguYnguJkKK+C4quC4teC4l+C4seC4meC4lOC4owor4Liq4Li14LmI4Lia4LiXCivguKrguLXguJ/guLHguJnguJnguLLguIfguYHguK0KK+C4quC4teC4oeC4seC4meC4leC5jAor4Liq4Li14Lih4LiyCivguKrguLXguKXguLDguKHguLHguJkKK+C4quC4teC4peC4seC4nuC4nuC4leC4m+C4o+C4suC4oeC4suC4qgor4Liq4Li14Lin4Li04LiB4LiyCivguKrguLXguKfguLTguKDguLIKK+C4quC4teC4quC4rQor4Liq4Li14Liq4LiwCivguKrguLXguKrguLIKK+C4quC4teC4quC4uOC4gQor4Liq4Li14LmA4Liq4Li14Lii4LiUCivguKrguLXguYDguKrguLfguYnguK3guJnguYnguK3guKIKK+C4quC4teC4q+C5jAor4Liq4Li14Lir4LiwCivguKrguLbguIEKK+C4quC4tuC4hwor4Liq4Li34LiaCivguKrguLfguYjguK0KK+C4quC4uAor4Liq4Li44LiBCivguKrguLjguIHguILguYwKK+C4quC4uOC4geC4owor4Liq4Li44LiB4Lij4LihCivguKrguLjguIHguLMKK+C4quC4uOC4geC4teC5ieC4ouC4suC4geC4teC5iQor4Liq4Li44LiCCivguKrguLjguILguLTguJkKK+C4quC4uOC4guC4tQor4Liq4Li44LiC4Li44LihCivguKrguLjguILguLjguKHguLLguKUKK+C4quC4uOC4hOC4lQor4Liq4Li44LiE4LiV4Li0CivguKrguLjguITguJnguJjguYwKK+C4quC4uOC4hOC4seC4meC4mOC5jAor4Liq4Li44LiH4LiB4LiwCivguKrguLjguIfguKrguLTguIcKK+C4quC4uOC4h+C4quC4uOC4oeC4suC4owor4Liq4Li44LiH4Liq4Li44Lih4Liy4Lij4Li1CivguKrguLjguIjguKPguLTguJUKK+C4quC4uOC4iOC4q+C4meC4teC5iAor4Liq4Li44LiI4LiwCivguKrguLjguIjguLQKK+C4quC4uOC4iOC4tOC4lQor4Liq4Li44LiI4Li04LiV4LijCivguKrguLjguIrguJkKK+C4quC4uOC4iuC4seC4oeC4muC4lOC4tQor4Liq4Li44LiK4LiyCivguKrguLjguIrguLLguJTguLIKK+C4quC4uOC4jQor4Liq4Li44LiTCivguKrguLjguJPguKvguLIKK+C4quC4uOC4k+C4tOC4quC4sgor4Liq4Li44LiUCivguKrguLjguJTguKrguIfguKfguJkKK+C4quC4uOC4lOC4sgor4Liq4Li44LiVCivguKrguLjguJXguJXguLAKK+C4quC4uOC4leC4leC4seC4meC4leC4sAor4Liq4Li44LiV4LiV4Lix4LiZ4LiV4Liw4Lib4Li04LiO4LiBCivguKrguLjguJXguLQKK+C4quC4uOC4l+C4mOC5jAor4Liq4Li44LiX4LiY4Li0CivguKrguLjguJfguKPguKPguKjguJnguYwKK+C4quC4uOC4l+C4seC4qOC4meC5jAor4Liq4Li44LiY4Lij4Lij4Lih4LmA4LiX4Lin4Liq4Lig4LiyCivguKrguLjguJjguLIKK+C4quC4uOC4mOC4tQor4Liq4Li44LiZ4LiX4LijCivguKrguLjguJnguJfguKPguLUKK+C4quC4uOC4meC4l+C4o+C4teC4ouC4sAor4Liq4Li44LiZ4Lix4LiCCivguKrguLjguJnguLHguJnguJfguYwKK+C4quC4uOC5guC4meC4gQor4Liq4Li44Lia4LiU4Li1CivguKrguLjguJrguKPguKPguJMKK+C4quC4uOC4muC4tOC4mQor4Liq4Li44Lib4Lij4Li14LiU4Li04LmMCivguKrguLjguJvguKPguLXguKLguYwKK+C4quC4uOC4m+C4suC4k+C4tQor4Liq4Li44Lie4Lie4Lix4LiVCivguKrguLjguJ7guKPguKPguJMKK+C4quC4uOC4nuC4o+C4o+C4k+C4luC4seC4mQor4Liq4Li44Lie4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMCivguKrguLjguKDguKMKK+C4quC4uOC4oOC4seC4hAor4Liq4Li44Lig4LiyCivguKrguLjguKDguLLguJ4KK+C4quC4uOC4oOC4suC4qeC4tOC4lQor4Liq4Li44LihCivguKrguLjguYjguKEKK+C4quC4uOC4oeC4l+C4uOC4oQor4Liq4Li44Lih4LiZCivguKrguLjguKHguJnguLAKK+C4quC4uOC4oeC4meC4seC4qgor4Liq4Li44Lih4LiZ4LiyCivguKrguLjguYnguKHguYDguKrguLXguKLguIcKK+C4quC4uOC4oeC4sAor4Liq4Li44Lih4Liy4Lil4Li1CivguKrguLjguYDguKHguJgKK+C4quC4uOC5gOC4oeC4o+C4uAor4Liq4Li44LmJ4LiiCivguKrguLjguKPguIfguITguYwKK+C4quC4uOC4o+C4oOC4tQor4Liq4Li44Lij4Lix4LiH4LiE4LmMCivguKrguLjguKPguLHguJXguLQKK+C4quC4uOC4o+C4seC4quC4p+C4lOC4tQor4Liq4Li44Lij4LiyCivguKrguLjguKPguLLguIfguITguYzguIjguLPguYDguKPguLXguKLguIcKK+C4quC4uOC4o+C4suC4mOC4tOC4m+C5hOC4leC4ogor4Liq4Li44Lij4Li04LiZ4LiX4Lij4Liy4Lir4Li5CivguKrguLjguKPguLTguKLguIcKK+C4quC4uOC4o+C4tOC4ouC4mQor4Liq4Li44Lij4Li04Lii4LiwCivguKrguLjguKPguLTguKLguLHguJkKK+C4quC4uOC4o+C4tOC4ouC4sgor4Liq4Li44Lij4Li04Lii4Li44Lib4Lij4Liy4LiE4LiyCivguKrguLjguKPguLTguYDguKLguJnguJfguKPguYwKK+C4quC4uOC4o+C4tOC5gOC4ouC4qAor4Liq4Li44Lij4Li04LmC4LiiCivguKrguLjguKPguLjguYjguKLguKrguLjguKPguYjguLLguKIKK+C4quC4uOC4peC4leC5iOC4suC4mQor4Liq4Li44LinCivguKrguLjguKfguKDguLLguJ4KK+C4quC4uOC4p+C4o+C4o+C4kwor4Liq4Li44Lin4Liy4LiZCivguKrguLjguKfguLTguJnguLHguKIKK+C4quC4uOC4p+C4tOC4oeC4pQor4Liq4Li44Lip4Li04LijCivguKrguLjguKrguLLguJkKK+C4quC4uOC4q+C4meC4seC4lQor4Liq4Li44Lir4Lij4LmI4LiHCivguKrguLjguKvguKPguYjguLLguKIKK+C4quC4uOC4q+C4pOC4lwor4Liq4Li44Lir4Lix4LiXCivguKrguLjguYDguKvguKPguYjguLIKK+C4quC4uQor4Liq4Li54LmJCivguKrguLnguIHguKnguKEKK+C4quC4ueC4hwor4Liq4Li54LiI4LiB4LiwCivguKrguLnguIjguJnguLAKK+C4quC4ueC4iOC4tAor4Liq4Li54LiNCivguKrguLnguJQKK+C4quC4ueC4lQor4Liq4Li54LiV4LijCivguKrguLnguJXguLQKK+C4quC4ueC4lwor4Liq4Li54LiZ4Li4CivguKrguLnguJoKK+C4quC4ueC4m+C4sAor4Liq4Li54LijCivguKrguLnguKPguKLguYwKK+C4quC4ueC4o+C4tAor4Liq4Li54Liq4Li1CivguYDguKoKK+C5gOC4quC4gQor4LmA4Liq4LiB4LiC4LiwCivguYDguKrguILguLAKK+C5gOC4quC5h+C4hwor4LmA4Liq4LmJ4LiHCivguYDguKrguIfguLXguYjguKLguKEKK+C5gOC4quC4ieC4p+C4mQor4LmA4Liq4LiP4LiQ4Li1CivguYDguKrguJPguLUKK+C5gOC4quC4lAor4LmA4Liq4LiU4LmH4LiICivguYDguKrguJXguLgKK+C5gOC4quC4luC4teC4ouC4owor4LmA4Liq4LmC4LiXCivguYDguKrguJkKK+C5gOC4quC5ieC4mQor4LmA4Liq4LiZ4LiHCivguYDguKrguJnguYjguIcKK+C5gOC4quC4meC5iOC4q+C5jAor4LmA4Liq4LiZ4LmI4Lir4LmM4LiI4Lix4LiZ4LiX4Lij4LmM4LiC4Liy4LinCivguYDguKrguJnguYjguKvguYzguIjguLHguJnguJfguKPguYzguYHguJTguIcKK+C5gOC4quC4meC4q+C4sgor4LmA4Liq4LiZ4LmI4Lir4LiyCivguYDguKrguJnguK0KK+C5gOC4quC4meC4sAor4LmA4Liq4LiZ4LiyCivguYDguKrguJnguYjguLIKK+C5gOC4quC4meC4suC4geC4uOC4jgor4LmA4Liq4LiZ4Liy4LiH4LiE4LmMCivguYDguKrguJnguLLguIfguITguJnguLTguIHguKMKK+C5gOC4quC4meC4suC4meC4tQor4LmA4Liq4LiZ4Liy4Liq4LiZ4LiwCivguYDguKrguJnguLLguLAKK+C5gOC4quC4meC4tQor4LmA4Liq4LiZ4Li14Lii4LmMCivguYDguKrguJnguLXguKLguJQKK+C5gOC4quC4meC4teC4ouC4sAor4LmA4Liq4Lia4LiiCivguYDguKrguJrguLXguKLguIcKK+C5gOC4quC4ngor4LmA4Liq4Lie4Lii4LmMCivguYDguKrguYDguJ7guKUKK+C5gOC4quC4oOC4sgor4LmA4Liq4Lih4LmH4LiUCivguYDguKrguKHguK0KK+C5gOC4quC4oeC4sgor4LmA4Liq4Lih4Li14Lii4LiZCivguYDguKrguKHguLfguK3guJkKK+C5gOC4quC4ogor4LmA4Liq4Lij4LmH4LiICivguYDguKrguKPguLTguJQKK+C5gOC4quC4o+C4tOC4oQor4LmA4Liq4Lij4Li1CivguYDguKrguKXguJQKK+C5gOC4quC4peC4lOC4nuC4seC4h+C4nuC4reC4mQor4LmA4Liq4Lil4LiyCivguYDguKrguKXguLXguYjguKLguIcKK+C5gOC4quC4peC4t+C4reC4geC4quC4peC4mQor4LmA4Liq4LmC4LilCivguYDguKrguKfguIEKK+C5gOC4quC4p+C4geC4suC4oeC4suC4leC4ouC5jAor4LmA4Liq4Lin4LiZ4LiwCivguYDguKrguKfguJnguLIKK+C5gOC4quC4p+C4ogor4LmA4Liq4Lin4Lii4Lie4Lij4Liw4LiK4Liy4LiV4Li0CivguYDguKrguKfguLXguKLguJkKK+C5gOC4quC4quC4o+C4p+C4hwor4LmA4Liq4Liq4Lij4Lin4LilCivguYDguKrguLIKK+C5gOC4quC5ieC4sgor4LmA4Liq4Liy4Lij4LmMCivguYDguKrguLLguKPguKDguKLguYwKK+C5gOC4quC4suC4o+C4tQor4LmA4Liq4Liy4Lin4LiT4Li04LiVCivguYDguKrguLLguKfguJnguLAKK+C5gOC4quC4suC4p+C4meC4sgor4LmA4Liq4Liy4Lin4LiZ4Liy4LiB4Liy4LijCivguYDguKrguLLguKfguJnguLXguKLguYwKK+C5gOC4quC4suC4q+C4pOC4lwor4LmA4Liq4Liy4LiwCivguYDguKrguLLguLDguYHguKrguLAKK+C5gOC4quC4tOC4o+C5jOC4iAor4LmA4Liq4Li04Lij4LmM4LifCivguYDguKrguLXguKIKK+C5gOC4quC4teC5iOC4ogor4LmA4Liq4Li14Lii4LiHCivguYDguKrguLXguYjguKLguIcKK+C5gOC4quC4teC4ouC4lAor4LmA4Liq4Li14LmJ4Lii4LiZCivguYDguKrguLXguKLguJoKK+C5gOC4quC4teC4ouC4oQor4LmA4Liq4Li14LmI4Lii4LihCivguYDguKrguLXguYnguKLguKEKK+C5gOC4quC4teC4ouC4pwor4LmA4Liq4Li14LmI4Lii4LinCivguYDguKrguLXguYnguKLguKcKK+C5gOC4quC4t+C4rQor4LmA4Liq4Li34LmI4LitCivguYDguKrguLfguYnguK0KK+C5gOC4quC4t+C4reC4gQor4LmA4Liq4Li34LmI4Lit4LihCivguYHguKoKK+C5geC4quC5iAor4LmB4Liq4LmJCivguYHguKrguIEKK+C5geC4quC4hwor4LmB4Liq4LiUCivguYHguKrguJTguIcKK+C5geC4quC4leC4oeC4m+C5jAor4LmB4Liq4LiZCivguYHguKrguJnguIcKK+C5geC4quC4meC4ouC5jAor4LmB4Liq4LiZ4LmA4Liq4LiZ4Liy4LiwCivguYHguKrguJoKK+C5geC4quC4muC4gQor4LmB4Liq4LihCivguYHguKrguKLguIEKK+C5geC4quC4ouC4hwor4LmB4Liq4Lii4LiwCivguYHguKrguKPguIEKK+C5geC4quC4o+C5ieC4hwor4LmB4Liq4Lil4LiHCivguYHguKrguKXguIfguYPguIgKK+C5geC4quC4peC4h+C5gOC4muC4t+C5iOC4rQor4LmB4Liq4Lin4LiHCivguYHguKrguK3guIEKK+C5geC4quC4sAor4LmC4Liq4LiBCivguYLguKrguIHguYLguJTguIEKK+C5guC4quC4geC4seC4meC4leC5jAor4LmC4Liq4LiB4Liy4LiU4Liy4LiZ4LiyCivguYLguKrguYLguITguKPguIEKK+C5guC4quC4kwor4LmC4Liq4LiT4LiR4LmMCivguYLguKrguJPguLQKK+C5guC4quC4k+C4tQor4LmC4Liq4LiUCivguYLguKrguJTguIEKK+C5guC4quC4lOC4oQor4LmC4Liq4LiU4LiyCivguYLguKrguJUKK+C5guC4quC4leC4luC4tAor4LmC4Liq4LiX4LiBCivguYLguKrguJfguKMKK+C5guC4quC4mOC4gQor4LmC4Liq4LiY4LiZ4LiwCivguYLguKrguJkKK+C5guC4quC4m+C4suC4mQor4LmC4Liq4Lig4LiTCivguYLguKrguKDguLIKK+C5guC4quC4oOC4tOC4k+C4tQor4LmC4Liq4Lig4Li1CivguYLguKrguYDguKDguJPguLUKK+C5guC4quC4oQor4LmC4Liq4Lih4LiZ4Lix4LiqCivguYLguKrguKHguKEKK+C5guC4quC4oeC4ouC5jAor4LmC4Liq4Lih4Liq4LmI4Lit4LiH4LmB4Liq4LiHCivguYLguKrguKPguYjguIcKK+C5guC4quC4o+C4iAor4LmC4Liq4Lij4Lix4LiI4LiI4LiwCivguYLguKrguKfguKPguKPguJMKK+C5guC4quC4q+C4uOC5ieC4ogor4LmC4Liq4Lis4LiqCivguYPguKoKK+C5g+C4quC5iAor4LmE4LiqCivguYTguKrguYkKK+C5hOC4quC4ogor4LmE4Liq4Lii4LiyCivguYTguKrguKPguYkKK+C5hOC4quC4pwor4LmE4Liq4LmJ4Lir4Li54LmJCivguKsKK+C4q+C4gQor4Lir4LiB4Lia4LiXCivguKvguIHguYLguKXguYgKK+C4q+C4hwor4Lir4LiH4LiBCivguKvguIfguKrguYwKK+C4q+C4h+C4quC5jOC4l+C4reC4hwor4Lir4LiH4Liq4LmM4Lir4Lii4LiBCivguKvguIfguK0KK+C4q+C4h+C4reC4gQor4Lir4LiH4LmI4Lit4LiHCivguKvguIfguK3guIfguYHguKvguIfguIcKK+C4q+C4h+C4reC4lAor4Lir4LiH4Lit4LiU4LmGCivguKvguIfguK3guJkKK+C4q+C4h+C5iOC4reC4oQor4Lir4LiH4Lit4LiiCivguKvguIfguYjguK3guKIKK+C4q+C4h+C4seC4gQor4Lir4LiH4Lix4LiaCivguKvguIfguYjguLLguIcKK+C4q+C4h+C4suC4ogor4Lir4LiH4LmI4Liy4LinCivguKvguIfguLMKK+C4q+C4h+C4tOC4gQor4Lir4LiH4Li04LiHCivguKvguIfguLTguKEKK+C4q+C4h+C4tuC4gQor4Lir4LiH4Li44LiH4Lir4LiH4Li04LiHCivguKvguIfguLjguJTguKvguIfguLTguJQKK+C4q+C4h+C4uOC4mgor4Lir4LiH4Li44Lia4Lir4LiH4Lix4LiaCivguKvguIfguLjguYjguKIKK+C4q+C4jeC5ieC4sgor4Lir4LiN4LmJ4Liy4Lib4Liy4LiB4LiE4Lit4LiBCivguKvguI3guYnguLLguJ3guKPguLHguYjguJkKK+C4q+C4jeC5ieC4suC4ouC4reC4h+C5hOC4nwor4Lir4LiN4LmJ4Liy4Lir4LiZ4Lin4LiU4LmB4Lih4LinCivguKvguI3guLTguIcKK+C4q+C4jeC4tOC4mgor4Lir4LiUCivguKvguJXguLAKK+C4q+C4l+C4seC4ogor4Lir4LiZCivguKvguJnguKfguIEKK+C4q+C4meC5iOC4p+C4hwor4Lir4LiZ4Lin4LiUCivguKvguJnguKfguJTguJnguLLguITguKPguLLguIoKK+C4q+C4meC4p+C4lOC4nuC4o+C4suC4q+C4oeC4k+C5jAor4Lir4LiZ4Lin4LiU4LmB4Lih4LinCivguKvguJnguYjguKfguKIKK+C4q+C4meC5iOC4p+C4ouC4geC4tOC4lQor4Lir4LiZ4LitCivguKvguJnguYjguK0KK+C4q+C4meC4reC4gQor4Lir4LiZ4Lit4LiB4LiK4LmJ4Liy4LiHCivguKvguJnguK3guIcKK+C4q+C4meC4reC4h+C5geC4i+C4hwor4Lir4LiZ4Lit4LiZCivguKvguJnguK3guJnguJXguLLguJnguKvguKLguLLguIEKK+C4q+C4meC5iOC4reC4ogor4Lir4LiZ4LmH4Lit4Lii4LmB4LiZ4LmICivguKvguJnguLAKK+C4q+C4meC4seC4gQor4Lir4LiZ4Lix4LiHCivguKvguJnguLHguIfguIHguKXguLLguIfguKfguLHguJkKK+C4q+C4meC4seC4h+C4quC4t+C4rQor4Lir4LiZ4Lix4LmI4LiZCivguKvguJnguLHguJoKK+C4q+C4meC4sgor4Lir4LiZ4LmJ4LiyCivguKvguJnguLLguIHguLLguKrguKPguLUKK+C4q+C4meC5iOC4suC4hwor4Lir4LiZ4Liy4LiUCivguKvguJnguLLguJkKK+C4q+C4meC4suC4oQor4Lir4LiZ4LmI4Liy4LiiCivguKvguJnguLLguKcKK+C4q+C4meC4swor4Lir4LiZ4Liz4LmA4Lil4Li14LmJ4Lii4LiaCivguKvguJnguLUKK+C4q+C4meC4teC5iQor4Lir4LiZ4Li14LiaCivguKvguJnguLXguYDguKrguLfguK0KK+C4q+C4meC4tuC4gQor4Lir4LiZ4Li24LmI4LiHCivguKvguJnguLbguJoKK+C4q+C4meC4t+C4lAor4Lir4LiZ4Li4CivguKvguJnguLjguIfguKvguJnguLTguIcKK+C4q+C4meC4uOC4mQor4Lir4LiZ4Li44LiaCivguKvguJnguLjguYjguKEKK+C4q+C4meC4uOC5iOC4ogor4Lir4LiZ4Li5CivguKvguYjguKEKK+C4q+C4oeC4gQor4Lir4Lih4LiUCivguKvguKHguYjguJkKK+C4q+C4oeC4p+C4gQor4Lir4Lih4Lin4LiUCivguKvguKHguK0KK+C4q+C4oeC5iOC4rQor4Lir4Lih4LmJ4LitCivguKvguKHguK3guIEKK+C4q+C4oeC4reC4hwor4Lir4Lih4LmI4Lit4LiHCivguKvguKHguK3guJkKK+C4q+C4oeC5iOC4reC4mQor4Lir4Lih4Lit4LiaCivguKvguKHguYjguK3guKEKK+C4q+C4oeC4reC4ogor4Lir4Lih4Lix4LiBCivguKvguKHguLHguJQKK+C4q+C4oeC4seC4mQor4Lir4Lih4Lix4LmI4LiZCivguKvguKHguLHguYnguJkKK+C4q+C4oeC4seC5iOC4meC5hOC4quC5iQor4Lir4Lih4Lix4LiaCivguKvguKHguLIKK+C4q+C4oeC5iOC4sgor4Lir4Lih4LmJ4LiyCivguKvguKHguLLguIEKK+C4q+C4oeC4suC4hwor4Lir4Lih4Liy4LiI4LmI4LitCivguKvguKHguLLguJQKK+C4q+C4oeC4suC4leC5i+C4sgor4Lir4Lih4Liy4Lih4Li44LmI4LiiCivguKvguKHguLLguKHguLjguYnguKIKK+C4q+C4oeC4suC5hOC4oeC5iQor4Lir4Lih4Liy4LiiCivguKvguKHguYnguLLguKIKK+C4q+C4oeC4suC4o+C5iOC4sgor4Lir4Lih4LmI4LizCivguKvguKHguLTguYjguJkKK+C4q+C4oeC4tQor4Lir4Lih4Li14LmICivguKvguKHguLXguYDguKvguKHguYfguJkKK+C4q+C4oeC4tuC4gQor4Lir4Lih4Li34LiZCivguKvguKHguLfguYjguJkKK+C4q+C4oeC4uOC4lAor4Lir4Lih4Li44LiZCivguKvguKHguLjguJoKK+C4q+C4oeC4uOC5iOC4ogor4Lir4Lih4Li44Lii4LiC4Liy4LinCivguKvguKHguLkKK+C4q+C4oeC4ueC5iAor4Lir4Lih4Li54Liq4Lix4LiHCivguKvguKHguLnguKrguLUKK+C4q+C4ouC4gQor4Lir4Lii4LmI4LiHCivguKvguKLguJQKK+C4q+C4ouC4p+C4gQor4Lir4Lii4Lin4LiZCivguKvguKLguKfguJnguYLguKXguYkKK+C4q+C4ouC4p+C4mgor4Lir4Lii4Lit4LiBCivguKvguKLguYfguK3guIHguKvguKLguYfguK3guKIKK+C4q+C4ouC4reC4hwor4Lir4Lii4LmI4Lit4LiHCivguKvguKLguYfguK3guIfguYHguKvguKLguYfguIcKK+C4q+C4ouC4reC4lAor4Lir4Lii4Lit4LiZCivguKvguKLguYjguK3guJkKK+C4q+C4ouC5iOC4reC4oQor4Lir4Lii4Lit4Lih4LmB4Lir4Lii4LihCivguKvguKLguK3guKIKK+C4q+C4ouC5iOC4reC4ogor4Lir4Lii4Lix4LiBCivguKvguKLguLHguIHguYDguKvguKLguLIKK+C4q+C4ouC4seC4hwor4Lir4Lii4Lix4LmI4LiHCivguKvguKLguLHguIfguKvguKLguLHguIcKK+C4q+C4ouC4seC4lAor4Lir4Lii4Lix4LiZCivguKvguKLguLHguJoKK+C4q+C4ouC4seC5iOC4p+C5gOC4oeC4t+C4reC4hwor4Lir4Lii4LmI4LiyCivguKvguKLguLLguIHguYDguKLguLfguYjguK0KK+C4q+C4ouC4suC4geC5hOC4ouC5iAor4Lir4Lii4LmI4Liy4LiH4LiE4LmJ4LizCivguKvguKLguLLguJQKK+C4q+C4ouC4suC4mgor4Lir4Lii4Liy4LihCivguKvguKLguLLguKcKK+C4q+C4ouC5ieC4suC4pwor4Lir4Lii4Liz4LiJ4LmI4LiyCivguKvguKLguLPguYDguJsKK+C4q+C4ouC4s+C5geC4q+C4ouC4reC4sAor4Lir4Lii4Liz4LmB4Lir4Lii4LiwCivguKvguKLguLTguIEKK+C4q+C4ouC4tOC5iOC4hwor4Lir4Lii4Li04LiaCivguKvguKLguLTguKEKK+C4q+C4ouC4tQor4Lir4Lii4Li14LmICivguKvguKLguLgKK+C4q+C4ouC4uOC4geC4q+C4ouC4tOC4gQor4Lir4Lii4Li44LiUCivguKvguKLguLjguYjguJkKK+C4q+C4ouC4uOC4muC5hgor4Lir4Lii4Li44Lih4Lir4Lii4Li04LihCivguKvguKLguLnguIHguKLguLIKK+C4q+C4owor4Lir4Lij4LiE4Li44LiTCivguKvguKPguJTguLLguKUKK+C4q+C4o+C4lOC4tQor4Lir4Lij4LiaCivguKvguKPguKPguKkKK+C4q+C4o+C4o+C4qeC4sgor4Lir4Lij4LitCivguKvguKPguK3guIEKK+C4q+C4o+C5h+C4reC4oeC5geC4q+C4o+C5h+C4oQor4Lir4Lij4Lit4Lii4LmGCivguKvguKPguLAKK+C4q+C4o+C4seC4muC5hgor4Lir4Lij4LiyCivguKvguKPguLQKK+C4q+C4o+C4tOC5iOC4hwor4Lir4Lij4Li04LiT4LiwCivguKvguKPguLTguJPguLHguIfguITguYwKK+C4q+C4o+C4tOC4lQor4Lir4Lij4Li04LiV4LiB4Li1CivguKvguKPguLXguYgKK+C4q+C4o+C4teC4lAor4Lir4Lij4Li14LiV4LiB4Li1CivguKvguKPguLfguK0KK+C4q+C4o+C4uOC5iOC4mQor4Lir4Lij4Li44Lia4LmGCivguKvguKPguLjguJrguKPguLnguYgKK+C4q+C4o+C4uOC4muC4q+C4o+C4ueC5iAor4Lir4Lij4Li44LmI4LihCivguKvguKPguLkKK+C4q+C4o+C4ueC4q+C4o+C4sgor4Lir4Lik4LiX4LiiCivguKvguKTguJfguKLguYwKK+C4q+C4pOC4l+C4seC4ogor4Lir4Lik4Lip4LiO4LmMCivguKvguKTguKnguI7guLUKK+C4q+C4pOC4q+C4o+C4o+C4qeC5jAor4Lir4Lik4LmC4Lir4LiUCivguKvguKUKK+C4q+C4peC4hwor4Lir4Lil4LiUCivguKvguKXguJkKK+C4q+C4peC5iOC4mQor4Lir4Lil4LiaCivguKvguKXguYjguKEKK+C4q+C4peC4p+C4hwor4Lir4Lil4Lin4LihCivguKvguKXguK0KK+C4q+C4peC5iOC4rQor4Lir4Lil4Lit4LiBCivguKvguKXguK3guJQKK+C4q+C4peC4reC4mQor4Lir4Lil4LmH4Lit4LiZCivguKvguKXguYjguK3guJkKK+C4q+C4peC5h+C4reC4meC5hgor4Lir4Lil4Lit4LihCivguKvguKXguLAKK+C4q+C4peC4sOC4q+C4peC4p+C4oQor4Lir4Lil4Lix4LiBCivguKvguKXguLHguIcKK+C4q+C4peC4seC5iOC4hwor4Lir4Lil4Lix4LiU4LmGCivguKvguKXguLHguYjguJkKK+C4q+C4peC4seC4mgor4Lir4Lil4Lix4LinCivguKvguKXguLIKK+C4q+C4peC5ieC4sgor4Lir4Lil4Liy4LiBCivguKvguKXguLLguJcKK+C4q+C4peC4suC4l+C4p+C4lAor4Lir4Lil4Liy4LiZCivguKvguKXguLLguJoKK+C4q+C4peC4suC4oQor4Lir4Lil4Liy4LiiCivguKvguKXguLLguKcKK+C4q+C4peC4suC4q+C4pQor4Lir4Lil4Li04LiBCivguKvguKXguLTguYjguIcKK+C4q+C4peC4tOC4lwor4Lir4Lil4Li04LiZCivguKvguKXguLTguKEKK+C4q+C4peC4tOC4pwor4Lir4Lil4Li04LmI4LinCivguKvguKXguLUKK+C4q+C4peC4teC4gQor4Lir4Lil4Li14LmC4LiBCivguKvguKXguLXguJoKK+C4q+C4peC4teC4ruC4t+C5ieC4rQor4Lir4Lil4Li34LiaCivguKvguKXguLjguIHguKvguKXguLTguIEKK+C4q+C4peC4uOC4lAor4Lir4Lil4Li44LiZ4LmGCivguKvguKXguLjguJoKK+C4q+C4peC4uOC4oQor4Lir4Lil4Li44Lih4Lie4LitCivguKvguKXguLjguKHguJ7guLUKK+C4q+C4peC4ueC5iAor4Lir4Lin4LiHCivguKvguYjguKfguIcKK+C4q+C5ieC4p+C4hwor4Lir4Lin4LiUCivguKvguKfguJkKK+C4q+C5ieC4p+C4mQor4Lir4Lin4LiZ4LiE4Liz4LiZ4Li24LiHCivguKvguKfguKIKK+C4q+C5iOC4p+C4ogor4Lir4LmJ4Lin4LiiCivguKvguKfguK0KK+C4q+C4p+C4reC4lAor4Lir4Lin4LmH4Lit4Lii4LmGCivguKvguKfguLAKK+C4q+C4p+C4seC4hwor4Lir4Lin4Lix4LiUCivguKvguKfguLHguYjguJkKK+C4q+C4p+C4seC4meC4ouC4tOC4q+C4p+C4sgor4Lir4Lin4Lix4LinCivguKvguKfguLHguKfguKPguYjguK0KK+C4q+C4p+C4seC4p+C5gOC4o+C4suC4sAor4Lir4Lin4LiyCivguKvguKfguYjguLIKK+C4q+C4p+C5ieC4sgor4Lir4Lin4Liy4LiBCivguKvguKfguYjguLLguIcKK+C4q+C4p+C4suC4lAor4Lir4Lin4Liy4LiZCivguKvguKfguYjguLLguJkKK+C4q+C4p+C4suC4oQor4Lir4Lin4Liy4LiiCivguKvguKfguLMKK+C4q+C4p+C4tOC4lAor4Lir4Lin4Li04LinCivguKvguKfguLUKK+C4q+C4p+C4teC5iAor4Lir4Lin4Li14LiUCivguKvguKfguLfguK0KK+C4q+C4p+C4uOC4lOC4q+C4p+C4tOC4lAor4Lir4Lin4Li44LihCivguKvguKfguLnguJQKK+C4q+C4rQor4Lir4LmI4LitCivguKvguYnguK0KK+C4q+C4reC4gQor4Lir4Lit4LiHCivguKvguYnguK3guIcKK+C4q+C4reC4mQor4Lir4LmI4Lit4LiZCivguKvguK3guJoKK+C4q+C4reC4oQor4Lir4LmJ4Lit4LihCivguKvguK3guKEw77+9CivguYDguKvguKHguLHguJnguJXguYwKK+C5gOC4q+C4oeC4sgor4LmA4Lir4Lih4Liy4Lii4Lix4LiZCivguYDguKvguKHguLLguLAKK+C5gOC4q+C4oeC4teC4ouC4pwor4LmA4Lir4Lih4Li14LmI4Lii4LinCivguYDguKvguKHguLfguK3guIcKK+C5gOC4q+C4oeC4t+C4reC4lAor4LmA4Lir4Lih4Li34Lit4LiU4LiE4LiZCivguYDguKvguKHguLfguK3guJTguYLguKXguJQKK+C5gOC4q+C4oeC4t+C4reC4mQor4LmA4Lir4Lih4Li34LmI4Lit4LiiCivguYDguKvguKHguLfguYjguK3guKLguYYKK+C5gOC4q+C4ogor4LmA4Lir4Lii4LiHCivguYDguKvguKLguYjguK3guKIKK+C5gOC4q+C4ouC4sgor4LmA4Lir4Lii4LmI4LiyCivguYDguKvguKLguYnguLIKK+C5gOC4q+C4ouC5iOC4suC5hgor4LmA4Lir4Lii4Liy4LiwCivguYDguKvguKLguLLguLDguYYKK+C5gOC4q+C4ouC4suC4sOC4ouC5iOC4suC4hwor4LmA4Lir4Lii4Liy4Liw4LmB4Lir4Lii4LiwCivguYDguKvguKLguLTguIcKK+C5gOC4q+C4ouC4tOC4muC5hgor4LmA4Lir4Lii4Li14Lii4LiUCivguYDguKvguKLguLXguKLguJoKK+C5gOC4q+C4ouC4teC5iOC4ouC4pwor4LmA4Lir4Lii4Li34LmI4LitCivguYDguKvguKLguLfguK3guIEKK+C5gOC4q+C4o+C4seC4jeC4jeC4tOC4gQor4LmA4Lir4Lij4LiyCivguYDguKvguKPguLLguLDguYYKK+C5gOC4q+C4o+C4teC4ouC4jQor4LmA4Lir4Lil4LmICivguYDguKvguKXguYfguIEKK+C5gOC4q+C4peC4mQor4LmA4Lir4Lil4LinCivguYDguKvguKXguK0KK+C5gOC4q+C4peC4sgor4LmA4Lir4Lil4LmI4LiyCivguYDguKvguKXguYnguLIKK+C5gOC4q+C4peC4suC4iuC4sOC5guC4reC4mQor4LmA4Lir4Lil4Liy4Lir4Lil4LiBCivguYDguKvguKXguLLguYDguKvguKLguYgKK+C5gOC4q+C4peC4suC4sOC5geC4q+C4peC4sAor4LmA4Lir4Lil4Li04LiHCivguYDguKvguKXguLTguIfguYDguIjguLTguYnguIcKK+C5gOC4q+C4peC4teC4ouC4mQor4LmA4Lir4Lil4Li14LmI4Lii4LihCivguYDguKvguKXguLXguKLguKcKK+C5gOC4q+C4peC4t+C4rQor4LmA4Lir4Lil4Li34Lit4LiBCivguYDguKvguKXguLfguK3guIcKK+C5gOC4q+C4peC4t+C4reC4mgor4LmA4Lir4Lil4Li34Lit4LihCivguYDguKvguKXguLfguYjguK3guKEKK+C5gOC4q+C4pwor4LmA4Lir4Lin4LmICivguYDguKvguKfguIcKK+C5gOC4q+C4p+C4ogor4LmA4Lir4Lin4Lit4LiwCivguYDguKvguKfguK3guLDguKvguKfguLAKK+C5gOC4q+C4p+C4teC5iOC4ouC4hwor4LmA4Lir4LmI4LitCivguYDguKvguK3guLAKK+C5gOC4q+C4sAor4LmA4Lir4Liw4Lir4LiwCivguYDguKvguLIKK+C5gOC4q+C5iOC4sgor4LmA4Lir4Liy4LiwCivguYDguKvguLTguJkKK+C5gOC4q+C4tOC4oQor4LmA4Lir4Li14LmJ4LiiCivguYDguKvguLXguKLguIcKK+C5gOC4q+C4teC4ouC4mQor4LmA4Lir4Li14LmJ4Lii4LiZCivguYDguKvguLXguYnguKLguKEKK+C5gOC4q+C4teC5iOC4ouC4pwor4LmA4Lir4Li34LmI4LitCivguYDguKvguLfguK3guJQKK+C5geC4qwor4LmB4Lir4LmICivguYHguKvguYkKK+C5geC4q+C4gQor4LmB4Lir4LiHCivguYHguKvguIfguYgKK+C5geC4q+C5iOC4hwor4LmB4Lir4LmJ4LiHCivguYHguKvguIfguYfguIEKK+C5geC4q+C4h+C5geC4geC5iwor4LmB4Lir4LiH4LmI4LiHCivguYHguKvguIfguJkKK+C5geC4q+C4mQor4LmB4Lir4LmJ4LiZCivguYHguKvguJnguIcKK+C5geC4q+C4meC4mgor4LmB4Lir4LiZ4LihCivguYHguKvguJoKK+C5geC4q+C4oQor4LmB4Lir4Lih4LmICivguYHguKvguKHguYjguKEKK+C5geC4q+C4oeC4sAor4LmB4Lir4LiiCivguYHguKvguKLguYgKK+C5geC4q+C4ouC4hwor4LmB4Lir4Lii4LmI4LiHCivguYHguKvguKLguKEKK+C5geC4q+C4ouC4sAor4LmB4Lir4Lii4Liw4LmGCivguYHguKvguKUKK+C5geC4q+C4peC5iAor4LmB4Lir4Lil4LiBCivguYHguKvguKXguYjguIcKK+C5geC4q+C4peC4mQor4LmB4Lir4Lil4LihCivguYHguKvguKXguLAKK+C5geC4q+C4pwor4LmB4Lir4LmJ4LinCivguYHguKvguKfguIEKK+C5geC4q+C4p+C5iOC4hwor4LmB4Lir4Lin4LiUCivguYHguKvguKfguJkKK+C5geC4q+C4p+C4sAor4LmB4Lir4LiwCivguYHguKvguLDguYYKK+C5guC4q+C5iAor4LmC4Lir4LiBCivguYLguKvguIcKK+C5guC4q+C4lAor4LmC4Lir4LiZCivguYLguKvguJnguIEKK+C5guC4q+C4meC5iOC4hwor4LmC4Lir4LihCivguYLguKvguKHguYgKK+C5guC4q+C4oeC4geC4o+C4o+C4oQor4LmC4Lir4Lih4LiB4Li54LiT4LiR4LmMCivguYLguKvguKHguYjguIcKK+C5guC4q+C4oeC4lAor4LmC4Lir4LiiCivguYLguKvguKLguIHguYDguKvguKLguIEKK+C5guC4q+C4ouC4hwor4LmC4Lir4Lii4LmI4LiHCivguYLguKvguKMKK+C5guC4q+C4o+C4hwor4LmC4Lir4Lij4LiH4LmA4Lir4Lij4LiHCivguYLguKvguKPguJTguLLguIjguLLguKPguKLguYwKK+C5guC4q+C4o+C4sOC4nuC4sgor4LmC4Lir4LilCivguYLguKvguKXguYgKK+C5guC4q+C4peC4h+C5guC4iOC5ieC4hwor4LmC4Lir4LinCivguYLguKvguKfguYgKK+C5guC4q+C4p+C5iQor4LmC4Lir4Lin4LiB4LmA4Lir4Lin4LiBCivguYLguKvguKfguIcKK+C5guC4q+C4p+C4lAor4LmC4Lir4Lin4LiVCivguYPguKvguYkKK+C5g+C4q+C4jeC5iAor4LmD4Lir4Lih4LmICivguYTguKsKK+C5hOC4q+C5iAor4LmE4Lir4LmJCivguYTguKvguJkKK+C5hOC4q+C4oQor4LmE4Lir4Lih4LmJCivguYTguKvguKPguJMKK+C5hOC4q+C4pQor4LmE4Lir4Lil4LmICivguYTguKvguKcKK+C5hOC4q+C4p+C5iQor4LmE4Lir4Lin4LmGCivguYTguKvguKvguKXguLMKK+C4rQor4Lit4LiBCivguK3guIHguJXguLHguI3guI3guLjguJXguLIKK+C4reC4geC4leC4seC4jeC4jeC4uQor4Lit4LiB4LiZ4Li04Lip4LiQ4LmMCivguK3guIHguKPguJPguLXguKLguYwKK+C4reC4geC4o+C4o+C4oeC4geC4o+C4tOC4ouC4sgor4Lit4LiB4Lix4Lib4Lib4Li04Lii4LiwCivguK3guIHguLLguKXguIjguLXguKfguKMKK+C4reC4geC4suC4peC4tOC5guC4gQor4Lit4LiB4Li04Lij4Li04Lii4LiX4Li04LiQ4Li0CivguK3guIHguLjguKjguKUKK+C4reC4hOC4leC4tAor4Lit4LiE4LmA4LiZ4Liq4Lix4LiZCivguK3guITguLLguJgKK+C4reC4hgor4Lit4LiHCivguK3guIfguIHguYwKK+C4reC4h+C4hOC5jAor4Lit4LiH4LiE4Lih4LiZ4LiV4Lij4Li1CivguK3guIfguITguKHguKPguKPguKkKK+C4reC4h+C4hOC4uOC4pQor4Lit4LiH4LiE4Li44Lil4Li1CivguK3guIfguKjguYwKK+C4reC4h+C4qOC4sgor4Lit4LiH4Lit4Liy4LiICivguK3guIfguLjguYjguJkKK+C4reC4iOC4owor4Lit4LiI4Lil4LiyCivguK3guIjguLTguJXguJXguLQKK+C4reC4iOC4tOC4meC4leC4sgor4Lit4LiI4Li04LiZ4LmE4LiV4LiiCivguK3guIjguLTguKPguLAKK+C4reC5gOC4iOC4peC4gQor4Lit4LmA4LiI4Lil4LiwCivguK3guIoKK+C4reC4iuC4tOC4mQor4Lit4LiK4Li04LiZ4Li1CivguK3guIrguLTguKMKK+C4reC4iuC4teC4p+C4p+C4tOC4l+C4ogor4Lit4LiP4Lin4Li1CivguK3guJPguLQKK+C4reC4k+C4uAor4Lit4LiT4Li5CivguK3guYLguJPguJfguLHguKIKK+C4reC4lAor4Lit4LiU4Li0CivguK3guJTguLTguJbguLUKK+C4reC4lOC4tOC5gOC4l+C4ngor4Lit4LiU4Li04LmA4Lij4LiBCivguK3guJTguLTguKjguKMKK+C4reC4lOC4tOC4qOC4p+C4owor4Lit4LiU4Li04Lio4Lix4LiiCivguK3guJTguLXguJUKK+C4reC4lOC4uOC4pQor4Lit4LiU4Li44Lil4Lii4LmMCivguK3guJXguLQKK+C4reC4leC4tOC4iuC4suC4lQor4Lit4LiV4Li04LiV4Lix4LiT4Lir4LiyCivguK3guJXguLTguJbguLTguJ7guKXguLUKK+C4reC4leC4tOC5gOC4l+C4ngor4Lit4LiV4Li04Lij4Liy4LiKCivguK3guJXguLTguYDguKPguIEKK+C4reC4leC4tOC4quC4suC4owor4Lit4LiV4Li04Liy4Lih4LiZ4LiwCivguK3guJXguLXguJXguLHguIfguKrguI3guLLguJMKK+C4reC4luC4o+C4o+C4nuC5gOC4p+C4lwor4Lit4LiX4Li04LiV4Li0CivguK3guJfguLTguJnguJnguLLguJfguLLguJkKK+C4reC4l+C4tOC4meC4meC4suC4l+C4suC4ouC4tQor4Lit4LiY4Lij4Lij4LihCivguK3guJjguLQKK+C4reC4mOC4tOC4geC4o+C4k+C5jAor4Lit4LiY4Li04LiB4Liy4LijCivguK3guJjguLTguITguKEKK+C4reC4mOC4tOC4iOC4tOC4lQor4Lit4LiY4Li04LiP4LiQ4Liy4LiZCivguK3guJjguLTguJrguJTguLUKK+C4reC4mOC4tOC4muC4suC4ogor4Lit4LiY4Li04LibCivguK3guJjguLTguKHguLLguJXguKMKK+C4reC4mOC4tOC4oeC4uOC4leC4leC4tAor4Lit4LiY4Li04LmC4Lih4LiB4LiC4LmMCivguK3guJjguLTguKPguLLguIoKK+C4reC4mOC4tOC4p+C4suC4qgor4Lit4LiY4Li04Lin4Liy4Liq4LiZ4LiwCivguK3guJjguLTguKjguLXguKUKK+C4reC4mOC4tOC4qeC4kOC4suC4mQor4Lit4LiY4Li24LiBCivguK3guYnguJkKK+C4reC4meC4h+C4hOC5jAor4Lit4LiZ4LiH4LiE4LiT4LiwCivguK3guJnguJjguLTguKfguKMKK+C4reC4meC4meC4leC5jAor4Lit4LiZ4Lig4Li04Lij4LiV4Li0CivguK3guJnguKLguLAKK+C4reC4meC4o+C4o+C4hgor4Lit4LiZ4Lij4Lij4LiWCivguK3guJnguKPguLTguKLguJvguKPguLTguYDguKLguKrguJnguLIKK+C4reC4meC4pQor4Lit4LiZ4Lin4Lix4LiKCivguK3guYnguJnguK3guYnguK0KK+C4reC4meC4seC4jQor4Lit4LiZ4Lix4LiV4LiV4Lil4Lix4LiB4Lip4LiT4LiwCivguK3guJnguLHguJXguJXguLIKK+C4reC4meC4seC4meC4leC5jAor4Lit4LiZ4Lix4LihCivguK3guJnguLLguITguJUKK+C4reC4meC4suC4hOC4suC4oeC4tQor4Lit4LiZ4Liy4LiE4Liy4Lij4Li04LiBCivguK3guJnguLLguITguLLguKPguLTguKLguYDguJ7guKgKK+C4reC4meC4suC4iOC4suC4owor4Lit4LiZ4Liy4LiWCivguK3guJnguLLguJbguLIKK+C4reC4meC4suC4l+C4owor4Lit4LiZ4Liy4LiY4Li04Lib4LmE4LiV4LiiCivguK3guJnguLLguKHguLHguKIKK+C4reC4meC4suC4o+C4ouC4sAor4Lit4LiZ4Liy4Lil4Lix4LiiCivguK3guJnguLLguKfguKPguJPguI3guLLguJMKK+C4reC4meC4swor4Lit4LiZ4Li04LiICivguK3guJnguLTguIjguIjguLHguIcKK+C4reC4meC4tOC4iOC4iOC4sgor4Lit4LiZ4Li04LiP4LiQ4Liy4Lij4Lih4LiT4LmMCivguK3guJnguLTguKLguJUKK+C4reC4meC4tOC4ouC4oQor4Lit4LiZ4Li04LilCivguK3guJnguLTguKfguKPguKPguJUKK+C4reC4meC4tOC4p+C4o+C4o+C4leC4meC5jAor4Lit4LiZ4Li04Lip4LiP4LmMCivguK3guJnguLXguIHguLAKK+C4reC4meC4teC4iAor4Lit4LiZ4Li24LiBCivguK3guJnguLbguYjguIcKK+C4reC4meC4uAor4Lit4LiZ4Li44LiB4LijCivguK3guJnguLjguIHguKPguKEKK+C4reC4meC4uOC4geC4o+C4o+C4oeC4geC4suC4owor4Lit4LiZ4Li44LiB4Lij4Liw4LmA4Lia4Li14Lii4LiUCivguK3guJnguLjguIHguLLguIrguLLguJQKK+C4reC4meC4uOC4geC4suC4owor4Lit4LiZ4Li44LiB4Li54LilCivguK3guJnguLjguITguLLguKHguLTguIEKK+C4reC4meC4uOC4hOC4suC4oeC4tQor4Lit4LiZ4Li44LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguK3guJnguLjguIjguKMKK+C4reC4meC4uOC4igor4Lit4LiZ4Li44LiK4LiyCivguK3guJnguLjguIrguLLguJUKK+C4reC4meC4uOC4iuC4tOC4lQor4Lit4LiZ4Li44LiN4Liy4LiVCivguK3guJnguLjguI3guLLguYLguJXguJXguLjguKXguLLguIHguLLguKMKK+C4reC4meC4uOC5gOC4luC4o+C4sAor4Lit4LiZ4Li44LiX4Li04LiZCivguK3guJnguLjguJrguJcKK+C4reC4meC4uOC4muC4suC4pQor4Lit4LiZ4Li44Lia4Li44LieCivguK3guJnguLjguJvguKPguLTguI3guI3guLIKK+C4reC4meC4uOC4m+C4quC4seC4oeC4muC4seC4mQor4Lit4LiZ4Li44Lib4Lix4Liq4LiZ4LiyCivguK3guJnguLjguJ7guIfguKjguYwKK+C4reC4meC4uOC4nuC4meC4mOC5jAor4Lit4LiZ4Li44Lie4Lix4LiZ4LiY4LmMCivguK3guJnguLjguYLguJ7guJgKK+C4reC4meC4uOC4oOC4o+C4o+C4ouC4sgor4Lit4LiZ4Li44Lig4Liy4LiECivguK3guJnguLjguKDguLLguKkKK+C4reC4meC4uOC4oeC4seC4leC4tAor4Lit4LiZ4Li44Lih4Liy4LiV4Lij4LiyCivguK3guJnguLjguKHguLLguJkKK+C4reC4meC4uOC4oeC4ueC4pQor4Lit4LiZ4Li44LmC4Lih4LiX4LiZ4LiyCivguK3guJnguLjguYLguKLguIQKK+C4reC4meC4uOC4o+C4seC4geC4qeC5jAor4Lit4LiZ4Li44Lij4Liy4LiKCivguK3guJnguLjguKPguLLguJjguLIKK+C4reC4meC4uOC4o+C4ueC4mwor4Lit4LiZ4Li44LmC4Lil4LihCivguK3guJnguLjguKfguIfguKjguYwKK+C4reC4meC4uOC4p+C4seC4lQor4Lit4LiZ4Li44Lin4Liy4LiVCivguK3guJnguLjguKjguLLguKrguIEKK+C4reC4meC4uOC4qOC4suC4quC4meC5jAor4Lit4LiZ4Li44Lio4Liy4Liq4LiZ4Liy4LiI4Liy4Lij4Lii4LmMCivguK3guJnguLjguKjguLTguKnguI/guYwKK+C4reC4meC4uOC4quC4leC4tAor4Lit4LiZ4Li44Liq4LiZ4LiY4Li0CivguK3guJnguLjguKrguKDguLLguIHguLLguIrguLLguJQKK+C4reC4meC4uOC4quC4owor4Lit4LiZ4Li44Liq4Lij4LiT4LmMCivguK3guJnguLjguKrguLHguI3guI3guLIKK+C4reC4meC4uOC4quC4seC4ogor4Lit4LiZ4Li44Liq4Liy4Lin4Lij4Li14Lii4LmMCivguK3guJnguLjguKrguLLguKrguJnguLUKK+C4reC5gOC4meC4gQor4Lit4LmA4LiZ4LiB4LiE4Li44LiTCivguK3guYDguJnguIHguKfguLTguJgKK+C4reC5gOC4meC4iOC4reC4meC4suC4lgor4Lit4LmA4LiZ4LiN4LiK4Liy4Lig4Li04Liq4Lix4LiH4LiC4Liy4LijCivguK3guYDguJnguKrguJnguLIKK+C4reC5guC4meC4iuC4sgor4Lit4LmC4LiZ4LiU4Liy4LiVCivguK3guJoKK+C4reC4muC5gOC4iuC4ogor4Lit4Lia4Liy4LiiCivguK3guJsKK+C4reC4m+C4geC4suC4owor4Lit4Lib4LiX4Liy4LiZCivguK3guJvguYDguJfguKgKK+C4reC4m+C4oOC4suC4hOC4ouC5jAor4Lit4Lib4Lih4LiH4LiE4LilCivguK3guJvguKHguLLguJkKK+C4reC4m+C4ouC4qAor4Lit4Lib4Lij4LiB4LiV4Li0CivguK3guJvguKPguLDguKHguLLguJMKK+C4reC4m+C4o+C4sOC4oeC4suC4lwor4Lit4Lib4Lij4Liw4LmE4Lih4LiiCivguK3guJvguKPguLHguJMKK+C4reC4m+C4o+C4sgor4Lit4Lib4Lij4Liy4LiK4Lix4LiiCivguK3guJvguKPguLLguIrguLTguJUKK+C4reC4m+C4o+C4suC4mAor4Lit4Lib4Lij4Liy4Lib4Lij4LmA4LiI4LiV4LiZ4LiyCivguK3guJvguKPguLLguJvguKPguYDguKfguJfguJnguLXguKLguIHguKPguKPguKEKK+C4reC4m+C4o+C4tOC4oeC4suC4kwor4Lit4Lib4Lij4Li04Lir4Liy4Lij4Li04Lii4LiY4Lij4Lij4LihCivguK3guJvguKXguLHguIHguKnguJPguYwKK+C4reC4m+C5guC4peC4geC4meC5jAor4Lit4Lib4Lin4Liy4LiXCivguK3guJvguKvguLLguKMKK+C4reC4m+C4seC4k+C4k+C4geC4m+C4j+C4tOC4m+C4l+C4sgor4Lit4Lib4Lix4LiX4Lij4LieCivguK3guJvguLLguIjguLLguKLguJnguLAKK+C4reC4m+C4suC4iOC4tQor4Lit4Lib4Liy4LiI4Li14LiZCivguK3guJvguLjguI3guI3guLLguKDguLTguKrguLHguIfguILguLLguKMKK+C4reC5gOC4m+C4q+C4tAor4Lit4Lie4LiI4LiZ4LmMCivguK3guJ7guJ7guLAKK+C4reC4nuC4ouC4ngor4Lit4Lie4Lii4Liy4Lia4Liy4LiX4Lin4Li04LiV4LiBCivguK3guJ7guKUKK+C4reC4nuC4peC4sgor4Lit4Lie4Liy4Lij4LmM4LiV4LmA4Lih4LiZ4LiV4LmMCivguK3guKDguKcKK+C4reC4oOC4seC4ngor4Lit4Lig4Lix4LiiCivguK3guKDguLQKK+C4reC4oOC4tOC4hOC4oQor4Lit4Lig4Li04LiG4Liy4LiVCivguK3guKDguLTguIjguInguLIKK+C4reC4oOC4tOC4iOC4jOC4sgor4Lit4Lig4Li04LiK4LiZCivguK3guKDguLTguIrguLHguKIKK+C4reC4oOC4tOC4iuC4suC4lQor4Lit4Lig4Li04LiK4Li04LiVCivguK3guKDguLTguI3guI3guLIKK+C4reC4oOC4tOC4jeC4jeC4suC4kwor4Lit4Lig4Li04LiQ4Liy4LiZCivguK3guKDguLTguJjguKPguKPguKEKK+C4reC4oOC4tOC4mOC4suC4mQor4Lit4Lig4Li04LmE4LiY4LiiCivguK3guKDguLTguJnguLHguJnguJfguYwKK+C4reC4oOC4tOC4meC4seC4ogor4Lit4Lig4Li04LiZ4Liy4LiXCivguK3guKDguLTguJnguLTguKvguLLguKMKK+C4reC4oOC4tOC5gOC4meC4qeC4geC4o+C4oeC4k+C5jAor4Lit4Lig4Li04Lia4Liy4LilCivguK3guKDguLTguJvguKPguLHguIrguI3guLIKK+C4reC4oOC4tOC4m+C4o+C4suC4ogor4Lit4Lig4Li04Lih4Lir4Liy4Lit4Liz4LiZ4Liy4LiICivguK3guKDguLTguKHguLLguJnguLAKK+C4reC4oOC4tOC4oeC4uOC4ggor4Lit4Lig4Li04Lij4LiU4Li1CivguK3guKDguLTguKPguJXguLQKK+C4reC4oOC4tOC4o+C4oeC4ouC5jAor4Lit4Lig4Li04Lij4Lix4LiB4Lip4LmMCivguK3guKDguLTguKPguLHguJDguKHguJnguJXguKPguLUKK+C4reC4oOC4tOC4o+C4suC4oQor4Lit4Lig4Li04Lij4Li44LiVCivguK3guKDguLTguKPguLjguKEKK+C4reC4oOC4tOC4o+C4ueC4mwor4Lit4Lig4Li04Lil4Lix4LiB4LiC4Li04LiVCivguK3guKDguLTguKXguLLguKoKK+C4reC4oOC4tOC5gOC4peC4m+C4meC5jAor4Lit4Lig4Li04Lin4Lix4LiZ4LiX4LmMCivguK3guKDguLTguKfguLLguJcKK+C4reC4oOC4tOC4p+C4suC4l+C4meC5jAor4Lit4Lig4Li04LmA4Lip4LiBCivguK3guKDguLTguKrguJfguJjguLTguYwKK+C4reC4oOC4tOC4quC4oeC5guC4nuC4mOC4tAor4Lit4Lig4Li04Liq4Lih4Lix4LiiCivguK3guKDguLTguKrguLHguIfguILguLLguKMKK+C4reC4oOC4tOC4quC4seC4oeC5guC4nuC4mOC4tAor4Lit4Lig4Li04Liq4Li04LiVCivguK3guKDguLnguJUKK+C4reC4oQor4Lit4LmJ4LihCivguK3guKHguJXguLAKK+C4reC4oeC4meC4uOC4qeC4ouC5jAor4Lit4Lih4LijCivguK3guKHguKPguJrguJTguLUKK+C4reC4oeC4o+C4m+C4uOC4o+C4sAor4Lit4Lih4Lij4Lij4Lix4LiV4LiZ4LmMCivguK3guKHguKPguKPguLLguIoKK+C4reC4oeC4o+C4quC4leC4o+C4tQor4Lit4Lih4LmA4Lij4LioCivguK3guKHguYDguKPguKjguKfguKMKK+C4reC4oeC4pOC4lQor4Lit4Lih4Lik4LiV4Lii4Li5CivguK3guKHguLHguIjguIjguLAKK+C4reC4oeC4seC4leC4owor4Lit4Lih4Liy4LiV4Lii4LmMCivguK3guKHguLLguKfguKrguLgKK+C4reC4oeC4suC4p+C4suC4quC4tQor4Lit4Lih4Li04LiV4LijCivguK3guYDguKHguKPguLTguIHguLHguJkKK+C4reC4ogor4Lit4Lii4LiZCivguK3guKLguLHguKoKK+C4reC4ouC5iOC4sgor4Lit4Lii4Liy4LiBCivguK3guKLguYjguLLguIcKK+C4reC4ouC4uOC4leC4tOC4mOC4o+C4o+C4oQor4Lit4Lii4Li44LiX4LiY4LmMCivguK3guKLguLnguYgKK+C4reC4owor4Lit4Lij4LiKCivguK3guKPguIrguKMKK+C4reC4o+C4iuC4uOC4mQor4Lit4Lij4LiTCivguK3guKPguJTguLUKK+C4reC4o+C4leC4tAor4Lit4Lij4LmE4LiXCivguK3guKPguJjguLLguJkKK+C4reC4o+C4meC4uOC4igor4Lit4Lij4Lie4Li04LiZ4LiX4LmMCivguK3guKPguJ7guLTguKEKK+C4reC4o+C4o+C4hAor4Lit4Lij4Lij4LiGCivguK3guKPguKPguIbguKLguYwKK+C4reC4o+C4o+C4iOC4meC5jAor4Lit4Lij4Lij4LiT4LieCivguK3guKPguKPguJYKK+C4reC4o+C4o+C4mAor4Lit4Lij4Lij4LiY4Liy4LiH4LiE4LmMCivguK3guKPguKrguLjguKEKK+C4reC4o+C4q+C4sAor4Lit4Lij4Lir4Lix4LiHCivguK3guKPguKvguLHguJUKK+C4reC4o+C4q+C4seC4mQor4Lit4Lij4Lir4Lix4LiZ4LiV4LmMCivguK3guKPguYjguK3guKIKK+C4reC4o+C4seC4jQor4Lit4Lij4Lix4LiZ4LiV4LmMCivguK3guKPguLLguJTguLUKK+C4reC4o+C4suC4leC4tAor4Lit4Lij4LmI4Liy4LihCivguK3guKPguLQKK+C4reC4o+C4tOC4mQor4Lit4Lij4Li04Lii4LiB4LiwCivguK3guKPguLTguKLguLAKK+C4reC4o+C4uAor4Lit4Lij4Li44LiTCivguK3guKPguLjguYjguKEKK+C4reC4o+C4ueC4mwor4Lit4Lil4LiH4LiB4LiVCivguK3guKXguIfguIHguKPguJPguYwKK+C4reC4peC4h+C4geC4suC4owor4Lit4Lil4Lin4LiZCivguK3guKXguYDguKfguIcKK+C4reC4peC4q+C4oeC5iOC4suC4mQor4Lit4Lil4LmI4Lit4LiH4LiJ4LmI4Lit4LiHCivguK3guKXguLHguIHguYDguK3guKXguLfguYjguK0KK+C4reC4peC4seC4iuC4iuC4tQor4Lit4Lil4LmI4Liy4LiH4LiJ4LmI4Liy4LiHCivguK3guKXguLQKK+C4reC4peC4tOC4h+C4hOC5jAor4Lit4Lil4Li24LiH4LiE4LmMCivguK3guKXguLbguYjguIfguInguLbguYjguIcKK+C4reC5guC4peC4q+C4sAor4Lit4Lin4LiBCivguK3guYnguKfguIEKK+C4reC4p+C4geC4suC4qAor4Lit4Lin4LmA4LiE4Lij4Liy4Liw4Lir4LmMCivguK3guKfguIjguKMKK+C4reC4p+C4iuC4seC4ogor4Lit4Lin4LiK4Liy4LiVCivguK3guKfguJQKK+C4reC4p+C4leC4suC4owor4Lit4Lin4LiZCivguK3guYnguKfguJkKK+C4reC4p+C4meC4tAor4Lit4Lin4LiaCivguK3guKfguKHguIfguITguKUKK+C4reC4p+C4oeC4reC4swor4Lit4LmJ4Lin4Lih4LmA4Lit4Li14LiiCivguK3guKfguKIKK+C4reC4p+C4ouC4p+C4sAor4Lit4Lin4Lij4Li44LiX4LiY4LmMCivguK3guKfguKPguLjguJjguJfguIEKK+C4reC4p+C4pQor4Lit4Lin4Liq4Liy4LiZCivguK3guKfguKvguLLguKMKK+C4reC4p+C4seC4leC4luC4sgor4Lit4Lin4Lix4Lii4Lin4LiwCivguK3guKfguLHguKrguJTguLIKK+C4reC4p+C4suC4iOC4tQor4Lit4Lin4Li04LiI4Li1CivguK3guKfguLTguIrguIrguLIKK+C4reC4p+C4tOC4jeC4jeC4uQor4Lit4Lin4Li04Lij4Li44LiX4LiY4LmMCivguK3guKfguLTguYLguKPguJjguJnguYwKK+C4reC4p+C4teC4iOC4tAor4Lit4LmA4Lin4LiI4Li1CivguK3guYDguKfguYTguJnguKLguKrguLHguJXguKfguYwKK+C4reC5guC4qOC4gQor4Lit4Liq4LiH4LmE4LiC4LiiCivguK3guKrguJnguLUKK+C4reC4quC4oAor4Lit4Liq4Lih4LiB4Liy4LijCivguK3guKrguKHguKHguLLguJXguKMKK+C4reC4quC4o+C4nuC4tOC4qQor4Lit4Liq4Lix4LiH4LiB4Lih4LiX4Lij4Lix4Lie4Lii4LmMCivguK3guKrguLHguIfguILguJXguJjguKPguKPguKEKK+C4reC4quC4seC4h+C4q+C4suC4o+C4tOC4oeC4sAor4Lit4Liq4Lix4LiN4LiN4Li1CivguK3guKrguLHguI3guYHguJTguKvguKfguLIKK+C4reC4quC4seC4leC4luC4nuC4pOC4geC4qeC5jAor4Lit4Liq4Lix4LiV4Lii4LmMCivguK3guKrguLLguJjguKMKK+C4reC4quC4suC4mOC4uAor4Lit4Liq4Liy4Lie4LiV4Li0CivguK3guKrguLQKK+C4reC4quC4tOC4lQor4Lit4Liq4Li14LiV4Lii4Liy4LiZ4Li44Lie4Lii4Lix4LiN4LiK4LiZ4LiwCivguK3guKrguLXguJXguLQKK+C4reC4quC4uAor4Lit4Liq4Li44LiI4Li0CivguK3guKrguLjguI3guIHguLHguKXguJvguYwKK+C4reC4quC4uOC4meC4teC4muC4suC4lQor4Lit4Liq4Li44LigCivguK3guKrguLjguKPguLTguJnguJfguKPguYwKK+C4reC4quC4uOC4o+C4tQor4Lit4Liq4Li44LmA4Lij4LiZ4LiX4Lij4LmMCivguK3guKrguLjguYDguKPguKgKK+C4reC4quC4ueC4owor4Lit4LmA4LiqCivguK3guYDguKrguIHguILguLAKK+C4reC5gOC4quC4guC4sAor4Lit4LmA4Liq4Lin4LiZ4LiwCivguK3guYDguKrguKfguJnguLIKK+C4reC4qwor4Lit4Lir4Lix4LiH4LiB4Liy4LijCivguK3guKvguLQKK+C4reC4q+C4tOC4h+C4quC4sgor4Lit4Lir4Li24LiH4Liq4LiyCivguK3guYDguKvguJXguLjguIHguJfguLTguJDguLQKK+C4reC5guC4q+C4quC4tAor4Lit4LitCivguK3guYnguK0KK+C4reC5i+C4rQor4Lit4Lit4LiBCivguK3guK3guIHguIvguLTguYDguIjguJkKK+C4reC4reC4geC4i+C4tOC5gOC4lOC4iuC4seC4mQor4Lit4Lit4LiB4LmE4LiL4LiU4LmMCivguK3guYjguK3guIcKK+C4reC5i+C4reC4hwor4Lit4LmJ4Lit4LiH4LmB4Lit4LmJ4LiHCivguK3guK3guYDguIvguLLguLAKK+C4reC4reC4lAor4Lit4LmK4Lit4LiU4LmG4LmB4Lit4LmK4LiU4LmGCivguK3guYrguK3guJTguYHguK3guYrguJQKK+C4reC5iOC4reC4mQor4Lit4LmJ4Lit4LiZCivguK3guK3guJnguIvguYwKK+C4reC4reC4meC4i+C4reC4mQor4Lit4LmI4Lit4LiZ4LiL4Lit4LiZCivguK3guYnguK3guJnguYHguK3guYnguJkKK+C4reC4reC4n+C4n+C4tOC4qAor4Lit4Lit4LihCivguK3guYjguK3guKEKK+C4reC5ieC4reC4oQor4Lit4Lit4Lih4LiE4Lij4Lit4LihCivguK3guK3guKHguIrguK3guKEKK+C4reC4reC4oeC4i+C4reC4oQor4Lit4LmJ4Lit4Lih4LmB4Lit4LmJ4LihCivguK3guYjguK3guKIKK+C4reC5ieC4reC4ogor4Lit4LmL4Lit4LiiCivguK3guYnguK3guKLguKrguYnguK3guKIKK+C4reC5ieC4reC4ouC4reC4tOC5iOC4hwor4Lit4Lit4Lij4LmM4LmB4LiB4LiZCivguK3guK3guKPguYzguYDguJTguLTguKPguYzguJ8KK+C4reC4reC4quC5gOC4oeC4teC4ouC4oQor4Lit4LmJ4Lit4LmB4Lit4LmJCivguK3guYrguLAKK+C4reC4sOC4hOC4o+C5ieC4suC4pwor4Lit4Liw4LmA4LiE4Li34LmJ4LitCivguK3guLDguIjguLXguJkKK+C4reC4sOC5geC4iAor4Lit4Liw4LmA4LiL4LiX4Li04Lil4Li14LiZCivguK3guLDguJTguKPguLfguJnguLLguKXguLTguJkKK+C4reC4sOC4lOC4seC4gQor4Lit4Liw4LiU4Li44LiHCivguK3guLDguJXguK3guKEKK+C4reC4sOC4meC4sAor4Lit4Liw4LiZ4Lix4LmJ4LiZCivguK3guLDguJnguLXguYkKK+C4reC4sOC4oeC4teC4muC4sgor4Lit4Liw4LmA4Lih4Lij4Li04LmA4LiL4Li14Lii4LihCivguK3guLDguKPguYnguLLguK3guKPguYjguLLguKEKK+C4reC4sOC5hOC4owor4Lit4Liw4Lil4Lix4LiH4LiB4Liy4LijCivguK3guLDguKXguLjguYjguKHguK3guKXguYjguKfguKIKK+C4reC4sOC4peC4uOC5ieC4oeC4reC4peC5iOC4p+C4ogor4Lit4Liw4Lil4Li54Lih4Li04LmA4LiZ4Li14Lii4LihCivguK3guLDguKvguKEKK+C4reC4sOC5hOC4q+C4peC5iAor4Lit4Liw4Lit4Li34LmJ4LitCivguK3guLDguYDguK3guLfguYnguK3guKIKK+C4reC4seC4gQor4Lit4Lix4LmJ4LiBCivguK3guLHguYrguIEKK+C4reC4seC5ieC4geC5hgor4Lit4Lix4LmK4LiB4LmGCivguK3guLHguIHguIHguLAKK+C4reC4seC4geC5guC4geC4mOC4sAor4Lit4Lix4LiB4LmC4LiB4Liq4Lin4Lix4LiV4LiW4Li4CivguK3guLHguIHguIIKK+C4reC4seC4geC4guC4o+C4sAor4Lit4Lix4LiB4LiC4Lij4Liy4LiZ4Li44LiB4Lij4Lih4Lig4Li54Lih4Li04Lio4Liy4Liq4LiV4Lij4LmMCivguK3guLHguIHguILguLLguJkKK+C4reC4seC4geC5guC4ggor4Lit4Lix4LiB4LmC4LiC4Lig4Li04LiT4Li1CivguK3guLHguIHguYLguILguYDguKDguJPguLUKK+C4reC4seC4geC4qeC4owor4Lit4Lix4LiB4Lip4LiwCivguK3guLHguIHguYDguKnguLLguKvguLTguJPguLUKK+C4reC4seC4geC5gOC4quC4mgor4Lit4Lix4LiB4Lit4LmI4Lin4LiZCivguK3guLHguITguITguLAKK+C4reC4seC4hOC4hOC4tAor4Lit4Lix4LiE4LiE4Li1CivguK3guLHguITguJnguLQKK+C4reC4seC4hOC4meC4tQor4Lit4Lix4LiE4LiZ4Li14LiB4Lij4Li14LiR4LiyCivguK3guLHguIcKK+C4reC4seC4h+C4geC5jAor4Lit4Lix4LiH4LiB4LiZ4LiwCivguK3guLHguIfguIHguKTguKkKK+C4reC4seC4h+C4geC4p+C4lAor4Lit4Lix4LiH4LiB4Liw4Lil4Li44LiHCivguK3guLHguIfguIHguLIKK+C4reC4seC4h+C4geC4suC4mgor4Lit4Lix4LiH4LiB4Li44LijCivguK3guLHguIfguIHguLjguKgKK+C4reC4seC4h+C4geC4ueC4owor4Lit4Lix4LiH4LiE4LiT4LiwCivguK3guLHguIfguITguJPguLIKK+C4reC4seC4h+C4hOC4sAor4Lit4Lix4LiH4LiE4Liy4LijCivguK3guLHguIfguITguLLguKoKK+C4reC4seC4h+C4hOC4teC4o+C4qgor4Lit4Lix4LiH4LiE4Li44LiQCivguK3guLHguIfguIbguLLguJUKK+C4reC4seC5ieC4h+C5gOC4m+C4sgor4Lit4Lix4LmJ4LiH4Lih4LmJ4LitCivguK3guLHguYnguIfguKLguLXguYgKK+C4reC4seC5ieC4h+C5guC4peC5iAor4Lit4Lix4LiH4Lio4LiwCivguK3guLHguIfguKjguLgKK+C4reC4seC4h+C4qOC4uOC4gQor4Lit4Lix4LiH4Liq4LiV4Lij4Lit4LihCivguK3guLHguIfguKrguJnguLIKK+C4reC4seC4h+C4quC4sAor4Lit4Lix4LiI4LiB4Lil4Lix4LiaCivguK3guLHguIjguIjguLHguJnguJXguYwKK+C4reC4seC4iOC4iOC4seC4ogor4Lit4Lix4LiI4LiI4Li0CivguK3guLHguIjguIjguLjguJUKK+C4reC4seC4iOC5gOC4iOC4geC4sAor4Lit4Lix4LiI4LiJ4Lij4LiyCivguK3guLHguIjguInguKPguLTguKLguLAKK+C4reC4seC4iOC4meC4sgor4Lit4Lix4LiK4LiM4LiyCivguK3guLHguIrguIzguLLguIjguLLguKMKK+C4reC4seC4iuC4jOC4suC4qOC4seC4ogor4Lit4Lix4LiK4LiM4Liy4Liq4Lix4LiiCivguK3guLHguIrguJrguLLguKUKK+C4reC4seC4jeC4guC4ouC4oQor4Lit4Lix4LiN4LiK4LiZ4LiwCivguK3guLHguI3guIrguKXguLUKK+C4reC4seC4jeC4iuC4seC4mQor4Lit4Lix4LiN4LmA4LiK4Li04LiNCivguK3guLHguI3guI3guLAKK+C4reC4seC4jeC4m+C4o+C4sOC4geC4suC4qAor4Lit4Lix4LiN4Lih4Lix4LiN4LiN4LiwCivguK3guLHguI3guKPguLnguJsKK+C4reC4seC4jwor4Lit4Lix4LiP4LiQCivguK3guLHguI/guJnguLIKK+C4reC4seC4kAor4Lit4Lix4LiQ4Lih4LiwCivguK3guLHguJDguKzguKoKK+C4reC4seC4kOC4tAor4Lit4Lix4LiT4LiR4LiwCivguK3guLHguJPguJPguJ4KK+C4reC4seC4lAor4Lit4Lix4LiU4LmB4LiICivguK3guLHguJXguITguLHguJQKK+C4reC4seC4leC4iOC4o+C4tOC4ouC4sgor4Lit4Lix4LiV4LiV4LiwCivguK3guLHguJXguJXguLIKK+C4reC4seC4leC4luC5jAor4Lit4Lix4LiV4LiW4LiwCivguK3guLHguJXguYLguJnguKHguLHguJXguLQKK+C4reC4seC4leC4o+C4iuC4sAor4Lit4Lix4LiV4Lij4LiyCivguK3guLHguJXguKXguLHguJQKK+C4reC4seC4l+C4l+C4sgor4Lit4Lix4LiX4LiY4LmMCivguK3guLHguJfguJjguLIKK+C4reC4seC4l+C4mOC4suC4mQor4Lit4Lix4LiY4Lii4Liy4LiV4Lih4Lin4Li04LiX4Lii4LiyCivguK3guLHguJjguKLguLLguKIKK+C4reC4seC4mOC4ouC4suC4qOC4seC4ogor4Lit4Lix4LiZCivguK3guLHguYnguJkKK+C4reC4seC5i+C4mQor4Lit4Lix4LiZ4LiU4LiBCivguK3guLHguJnguJTguKMKK+C4reC4seC4meC4lOC4seC4mgor4Lit4Lix4LiZ4LiU4LmK4Liy4LiBCivguK3guLHguJnguYLguJTguYrguIEKK+C4reC4seC4meC4leC4owor4Lit4Lix4LiZ4LiV4Lij4LiY4Liy4LiZCivguK3guLHguJnguJXguKPguLIKK+C4reC4seC4meC4leC4o+C4suC4ogor4Lit4Lix4LiZ4LiV4Li04LiBCivguK3guLHguJnguJXguLTguKHguLAKK+C4reC4seC4meC5gOC4lQor4Lit4Lix4LiZ4LmC4LiVCivguK3guLHguJnguYHguJbguYnguIcKK+C4reC4seC4meC4l+C4uAor4Lit4Lix4LiZ4LmC4LiX4LilCivguK3guLHguJnguJnguLAKK+C4reC4seC4meC4ouC4sAor4Lit4Lix4LiZ4LmC4Lii4LiZ4Lii4LiwCivguK3guLHguJnguKfguLHguKIKK+C4reC4seC4meC5gOC4p+C4qgor4Lit4Lix4LiaCivguK3guLHguJrguJvguLLguIcKK+C4reC4seC4m+C4geC4sAor4Lit4Lix4Lib4LiB4Liy4LijCivguK3guLHguJvguI/guLTguIbguLAKK+C4reC4seC4m+C4j+C4tOC4oOC4suC4hAor4Lit4Lix4Lib4Lib4LiwCivguK3guLHguJvguKDguLLguITguKLguYwKK+C4reC4seC4m+C4oeC4h+C4hOC4pQor4Lit4Lix4Lib4Lii4LioCivguK3guLHguJvguKPguLDguKHguLLguJMKK+C4reC4seC4m+C4o+C4sOC4oeC4suC4lwor4Lit4Lix4Lib4Lij4Liw4LmE4Lih4LiiCivguK3guLHguJvguKPguLLguIrguLHguKIKK+C4reC4seC4m+C4o+C4teC4ouC5jAor4Lit4Lix4Lib4Lil4Lix4LiB4Lip4LiT4LmMCivguK3guLHguJvguKrguKMKK+C4reC4seC4nuC4nuC4uOC4lwor4Lit4Lix4Lie4LmC4Lie4Lir4Liy4Lij4Li04LiBCivguK3guLHguJ7guKDguLHguJnguJTguKMKK+C4reC4seC4nuC4oOC4suC4mQor4Lit4Lix4Lie4Lig4Liy4LiqCivguK3guLHguKEKK+C4reC4seC4oeC4nuC4owor4Lit4Lix4Lih4Lie4LiyCivguK3guLHguKHguJ7guLTguKUKK+C4reC4seC4oeC4nuC4uAor4Lit4Lix4Lii4LiB4LiwCivguK3guLHguKLguIHguLIKK+C4reC4seC4ouC4geC4suC4owor4Lit4Lix4Lii4LiB4Li1CivguK3guLHguKLguKLguLAKK+C4reC4seC4ouC4ouC4suC4oOC4o+C4tOC4ouC4sgor4Lit4Lix4Lii4Lii4Li04LiB4LiyCivguK3guLHguKXguJXguKPguLLguYTguKfguYLguK3guYDguKXguJUKK+C4reC4seC5iOC4pwor4Lit4Lix4LmK4LinCivguK3guLHguKjguIjguKPguKPguKLguYwKK+C4reC4seC4qOC5gOC4iOC4o+C4teC4ouC5jAor4Lit4Lix4Lip4LiO4Lih4LiwCivguK3guLHguKrguJTguIcKK+C4reC4seC4quC4lOC4oQor4Lit4Lix4Liq4LiZ4Li1CivguK3guLHguKrguKHguLTguKHguLLguJnguLAKK+C4reC4seC4quC4quC4sAor4Lit4Lix4Liq4Liq4Lix4LiV4LiW4Lie4Lik4LiB4Lip4LmMCivguK3guLHguKrguKrguLgKK+C4reC4sgor4Lit4LmI4LiyCivguK3guYnguLIKK+C4reC4suC4geC4hwor4Lit4Liy4LiB4LijCivguK3guLLguIHguLHguIfguILguLIKK+C4reC4suC4geC4seC4mwor4Lit4Liy4LiB4Lix4Lih4Lib4LiZ4LiwCivguK3guLLguIHguLHguKHguJvguLAKK+C4reC4suC4geC4suC4owor4Lit4Liy4LiB4Liy4LioCivguK3guLLguIHguLTguI3guIjguLHguI3guI3guLAKK+C4reC4suC4geC4ueC4pQor4Lit4Liy4LmA4LiB4Li14Lii4Lij4LiT4LmMCivguK3guLLguILguKLguLLguJUKK+C4reC4suC4guC4ouC4suC4mQor4Lit4Liy4LiE4LmA4LiZ4Lii4LmMCivguK3guLLguITguKEKK+C4reC4suC4hOC4o+C4q+C4suC4ouC4k+C4tQor4Lit4Liy4LiE4Lix4LiZ4LiV4Li44LiB4LiwCivguK3guLLguITguLLguKMKK+C4reC4suC4huC4suC4lQor4Lit4Liy4LiG4Liy4LiV4LiZ4LiwCivguK3guYjguLLguIcKK+C4reC5ieC4suC4hwor4Lit4Liy4LiH4LiC4LiZ4Liy4LiHCivguK3guYnguLLguIfguKfguYnguLLguIcKK+C4reC4suC4iAor4Lit4Liy4LiI4LihCivguK3guLLguIjguKHguJkKK+C4reC4suC4iOC4suC4lAor4Lit4Liy4LiI4Liy4LijCivguK3guLLguIjguLLguKPguKLguYwKK+C4reC4suC4iOC4tOC4kwor4Lit4Liy4LmA4LiI4Li14Lii4LiZCivguK3guLLguIrguI3guLHguJvguJXguLQKK+C4reC4suC4iuC4jeC4seC4m+C4leC4tOC5jAor4Lit4Liy4LiK4LiN4LiyCivguK3guLLguIrguKfguLAKK+C4reC4suC4iuC4sgor4Lit4Liy4LiK4Liy4LiZCivguK3guLLguIrguLLguJnguLQKK+C4reC4suC4iuC4suC5hOC4meC4ogor4Lit4Liy4LiK4Li14LieCivguK3guLLguIrguLXguKfguIEKK+C4reC4suC4iuC4teC4p+C4meC4sAor4Lit4Liy4LiK4Li14Lin4LiwCivguK3guLLguI3guLIKK+C4reC4suC4j+C4suC4leC4sgor4Lit4Liy4LiT4Lix4LiV4Li0CivguK3guLLguJPguLIKK+C4reC4suC4k+C4suC4m+C4gQor4Lit4Liy4LiT4Liy4Lib4LiZCivguK3guLLguJQKK+C4reC4suC4lOC5hgor4Lit4Liy4LiU4Li44Lil4Lii4LmMCivguK3guLLguJTguLnguKMKK+C4reC4suC4lOC4ueC4peC4ouC5jAor4Lit4Liy4LmA4LiU4LmK4LiwCivguK3guLLguJXguKHguLHguJkKK+C4reC4suC4leC4uOC4owor4Lit4Liy4LiW4Lij4Lij4Lie4LmMCivguK3guLLguJbguKPguKPguJ7guJPguYwKK+C4reC4suC4luC4o+C4o+C4nuC4k+C4sAor4Lit4Liy4LiX4Lih4Liy4LiPCivguK3guLLguJfguKMKK+C4reC4suC4l+C4suC4leC4sgor4Lit4Liy4LiX4Liy4LiZCivguK3guLLguJfguLTguIHguKfguLUKK+C4reC4suC4l+C4tOC4leC4ouC5jAor4Lit4Liy4LiX4Li14LiZ4LieCivguK3guLLguJfguLXguJnguKcKK+C4reC4suC4l+C4tuC4gQor4Lit4Liy4LmA4LiX4LioCivguK3guLLguJjguKPguKPguKEKK+C4reC4suC4mOC4o+C4o+C4oeC5jAor4Lit4Liy4LiY4Lij4Lij4Lih4Li04LiBCivguK3guLLguJjguKPguKPguKHguLbguIEKK+C4reC4suC4mOC4suC4mQor4Lit4Liy4LiY4Liy4LijCivguK3guLLguJkKK+C4reC5iOC4suC4mQor4Lit4Liy4LiZ4LiBCivguK3guLLguJnguJkKK+C4reC4suC4meC4meC4l+C5jAor4Lit4Liy4LiZ4LiwCivguK3guLLguJnguLHguJnguJfguYwKK+C4reC4suC4meC4seC4meC4l+C4meC4sAor4Lit4Liy4LiZ4Lix4LihCivguK3guLLguJnguLMKK+C4reC4suC4meC4tOC4gQor4Lit4Liy4LiZ4Li04Liq4LiH4LiG4LmMCivguK3guLLguJnguLjguKDguLLguJ4KK+C4reC4suC4meC4uOC4oOC4suC4p+C4sAor4Lit4Liy4LiaCivguK3guLLguJrguLHguIcKK+C4reC4suC4muC4seC4leC4tAor4Lit4Liy4Lia4Lix4LiZCivguK3guLLguJrguLkKK+C4reC4suC4m+C4k+C4sAor4Lit4Liy4Lib4LiwCivguK3guLLguJvguLLguJnguLAKK+C4reC4suC5guC4mwor4Lit4Liy4Lie4Lix4LiUCivguK3guLLguJ7guLHguJfguJjguYwKK+C4reC4suC4nuC4seC4meC4mOC5jAor4Lit4Liy4Lie4Lix4LiZ4LiY4LiZ4LiwCivguK3guLLguJ7guLLguJgKK+C4reC4suC4nuC4tOC4pQor4Lit4Liy4LmA4Lie4LioCivguK3guLLguKDguKPguJPguYwKK+C4reC4suC4oOC4seC4ngor4Lit4Liy4Lig4Lix4Liq4Lij4LiwCivguK3guLLguKDguLIKK+C4reC4suC4oOC4suC4qgor4Lit4Liy4LmC4Lig4LiECivguK3guLLguKHguKXguIEKK+C4reC4suC4oeC4seC4ogor4Lit4Liy4Lih4LiyCivguK3guLLguKHguLTguKkKK+C4reC4suC4oeC4tOC4qgor4Lit4Liy4LiiCivguK3guYnguLLguKIKK+C4reC4suC4ouC4lQor4Lit4Liy4Lii4LiV4LiZ4LiwCivguK3guLLguKLguJkKK+C4reC4suC4ouC4seC4lAor4Lit4Liy4Lii4Lix4LiVCivguK3guLLguKLguLHguJkKK+C4reC4suC4ouC4suC4iOC4meC4sAor4Lit4Liy4Lii4Liy4LiZCivguK3guLLguKLguLgKK+C4reC4suC4ouC4uOC4geC4leC4geC4sAor4Lit4Liy4Lii4Li44LiV4LiB4LiwCivguK3guLLguKLguLjguJgKK+C4reC4suC4ouC4uOC4qQor4Lit4Liy4Lij4LmM4LiB4Lit4LiZCivguK3guLLguKPguJTguLUKK+C4reC4suC4o+C5jOC4lQor4Lit4Liy4Lij4LiV4Li0CivguK3guLLguKPguJfguKPguLIKK+C4reC4suC4o+C4muC4tOC4hAor4Lit4Liy4Lij4LmM4LihCivguK3guLLguKPguKHguJPguYwKK+C4reC4suC4o+C4ouC4sAor4Lit4Liy4Lij4LiwCivguK3guLLguKPguLHguIHguILguLIKK+C4reC4suC4o+C4seC4geC4qeC5jAor4Lit4Liy4Lij4Lix4LiNCivguK3guLLguKPguLHguI3guI3guLTguIEKK+C4reC4suC4o+C4seC4k+C4ouC5jAor4Lit4Liy4Lij4Lix4LiT4Lii4LiB4LiwCivguK3guLLguKPguLHguJXguLQKK+C4reC4suC4o+C4seC4oeC4oOC5jAor4Lit4Liy4Lij4Liy4LiY4LiZ4LmMCivguK3guLLguKPguLLguJjguJnguLIKK+C4reC4suC4o+C4suC4oQor4Lit4Liy4Lij4Li1CivguK3guLLguKPguLjguKEKK+C4reC4suC4peC4m+C4meC5jAor4Lit4Liy4Lil4Lib4LiZ4LiwCivguK3guLLguKXguLDguKfguLLguJQKK+C4reC4suC4peC4seC4geC4qeC4k+C5jAor4Lit4Liy4Lil4Lix4LiiCivguK3guLLguKXguLHguKcKK+C4reC4suC4peC4tAor4Lit4Liy4Lil4Li1CivguK3guLLguYLguKXguIEKK+C4reC4suC4pwor4Lit4LmI4Liy4LinCivguK3guYnguLLguKcKK+C4reC4suC4p+C4o+C4k+C5jAor4Lit4Liy4Lin4Lix4LiK4LiZ4Liy4LiB4Liy4LijCivguK3guLLguKfguLLguKoKK+C4reC4suC4p+C4suC4q+C4sAor4Lit4Liy4Lin4Li04LilCivguK3guLLguKfguLjguJUKK+C4reC4suC4p+C4uOC4mAor4Lit4Liy4Lin4Li44LmC4LiqCivguK3guLLguYDguKfguIQKK+C4reC4suC5gOC4p+C4qAor4Lit4Liy4Lio4Lij4LihCivguK3guLLguKjguKPguKHguJrguJcKK+C4reC4suC4qOC5gOC4peC4qeC4sgor4Lit4Liy4Lio4Lix4LiiCivguK3guLLguKjguLgKK+C4reC4suC5gOC4qOC4teC4ouC4owor4Lit4Liy4Lip4Liy4LiSCivguK3guLLguKrguJnguLAKK+C4reC4suC4quC4oOC4tOC4p+C4suC4iOC4sgor4Lit4Liy4Liq4Lii4Liy4LiZ4Li44Liq4Lix4LiiCivguK3guLLguKrguKfguIHguKnguLHguKIKK+C4reC4suC4quC4p+C4geC4tOC5gOC4peC4qgor4Lit4Liy4Liq4Lix4LiNCivguK3guLLguKrguLHguJXguKLguYwKK+C4reC4suC4quC4seC4meC4meC4sAor4Lit4Liy4Liq4LiyCivguK3guLLguKrguLLguKzguKvguYwKK+C4reC4suC4quC4tOC4jeC4iOC5jAor4Lit4Liy4Liq4Li04LiZCivguK3guLLguKrguLnguKMKK+C4reC4suC5gOC4quC4teC5iOC4ogor4Lit4Liy4LmB4Liq4LiwCivguK3guLLguKvguJUKK+C4reC4suC4q+C4leC4tQor4Lit4Liy4Lir4LiZ4Li1CivguK3guLLguKvguJnguLkKK+C4reC4suC4q+C4oQor4Lit4Liy4Lir4Lii4Lix4LiHCivguK3guLLguKvguKLguLHguJkKK+C4reC4suC4q+C4owor4Lit4Liy4Lir4Lij4Lix4LiU4LiB4Lix4LiU4LiV4Li04LiB4LiyCivguK3guLLguKvguKPguLHguJoKK+C4reC4suC4q+C4peC4seC4geC4reC4suC5gOC4q+C4peC4t+C5iOC4rQor4Lit4Liy4Lir4Liy4LijCivguK3guLLguKvguLjguJTguLUKK+C4reC4suC4rOC4q+C4gQor4Lit4Liy4Lis4Liy4Lir4LiZ4LiwCivguK3guLMKK+C4reC5iOC4swor4Lit4Liz4LmB4LiU4LiHCivguK3guLPguJnguJQKK+C4reC4s+C4meC4meC4leC5jAor4Lit4Liz4LiZ4Lij4Lij4LiGCivguK3guLPguJnguKfguKIKK+C4reC4s+C4meC4suC4iAor4Lit4Liz4LiZ4Liy4LiWCivguK3guLPguJnguLTguJAKK+C4reC4s+C4meC4tOC4qeC4kOC5jAor4Lit4Liz4Lib4Lil4Lix4LiHCivguK3guLPguJ7guJkKK+C4reC4s+C4nuC4sOC4meC4swor4Lit4Liz4Lie4Lix4LiZCivguK3guLPguYTguJ4KK+C4reC4s+C5gOC4oOC4rQor4Lit4Liz4LmA4Lig4Lit4LmD4LiICivguK3guLPguKHguKMKK+C4reC4s+C4oeC4pOC4hOC5guC4iuC4hAor4Lit4Liz4Lih4Lik4LiVCivguK3guLPguKHguKvguLTguJUKK+C4reC4s+C4oeC4suC4leC4ouC5jAor4Lit4Liz4Lii4Lin4LiZCivguK3guLPguKPguLjguIcKK+C4reC4s+C4peC4sgor4Lit4Liz4Lit4Lin4LihCivguK3guYnguLPguK3guLbguYnguIcKK+C4reC4tOC4gQor4Lit4Li04LiHCivguK3guLTguIfguITguYwKK+C4reC4tOC4h+C4reC4owor4Lit4Li04LiI4LiJ4LiyCivguK3guLTguInguLHguJkKK+C4reC4tOC4iuC4ouC4sgor4Lit4Li04LiQCivguK3guLTguJMKK+C4reC4tOC4lAor4Lit4Li04LiV4LiW4Li1CivguK3guLTguJXguYDguJfguKPguLXguKLguKEKK+C4reC4tOC4leC5gOC4l+C4reC4o+C5jOC5gOC4muC4teC4ouC4oQor4Lit4Li04LiV4Li04Lir4Liy4LiqCivguK3guLTguJfguJjguLQKK+C4reC4tOC4mOC5guC4peC4gQor4Lit4Li04LiZCivguK3guLTguJnguIvguLnguKXguLTguJkKK+C4reC4tOC4meC5gOC4lOC4teC4ogor4Lit4Li04LiZ4LmA4LiU4Li14Lii4LiZ4LmB4LiU4LiHCivguK3guLTguJnguYDguJTguLXguKLguKEKK+C4reC4tOC4meC4l+C5jAor4Lit4Li04LiZ4LiX4LiC4Li14LilCivguK3guLTguJnguJfguJnguLTguKUKK+C4reC4tOC4meC4l+C4meC4tOC4peC4meC5ieC4swor4Lit4Li04LiZ4LiX4Lic4Lil4Lix4LihCivguK3guLTguJnguJfguKPguYwKK+C4reC4tOC4meC4l+C4o+C4tQor4Lit4Li04LiZ4LiX4Lij4Li14Lii4LmMCivguK3guLTguJnguJfguLXguKfguKMKK+C4reC4tOC4meC4l+C4uAor4Lit4Li04LiZ4LiY4LiZ4LmMCivguK3guLTguJnguJ/guKPguLLguYDguKPguJQKK+C4reC4tOC4meC5geC4peC4sOC4q+C4ouC4seC4hwor4Lit4Li04LiZ4Lin4Lit4Lii4LiL4LmMCivguK3guLTguYjguKEKK+C4reC4tOC4oeC4seC4peC4iuC4seC4mQor4Lit4Li04Lij4Li04LmA4LiU4Li14Lii4LihCivguK3guLTguKPguLTguKLguLIKK+C4reC4tOC4o+C4uOC4nuC5gOC4nuC4lwor4Lit4Li04Lil4Li5CivguK3guLTguYDguKXguYfguIHguJXguKPguK3guJkKK+C4reC4tOC5gOC4peC5h+C4geC4l+C4o+C4reC4meC4tOC4geC4quC5jAor4Lit4Li04LmA4Lil4LmH4LiB4LmC4LiX4LiZCivguK3guLTguKgKK+C4reC4tOC4qOC4owor4Lit4Li04Lio4Lin4LijCivguK3guLTguKnguI/guYwKK+C4reC4tOC4qeC4j+C4tQor4Lit4Li04LiqCivguK3guLTguKrguJXguKPguLUKK+C4reC4tOC4quC4o+C4sAor4Lit4Li04Liq4Lij4Li04Lii4LiwCivguK3guLTguKrguKrguLIKK+C4reC4tOC4quC4seC4leC4o+C4tQor4Lit4Li04Liq4Li0CivguK3guLTguKrguLUKK+C4reC4tOC4q+C4oeC5iOC4suC4oQor4Lit4Li1CivguK3guLXguYgKK+C4reC4teC5iQor4Lit4Li14LmKCivguK3guLXguYsKK+C4reC4teC4gQor4Lit4Li14LiB4LmJ4LitCivguK3guLXguIHguYvguK3guKIKK+C4reC4teC4geC4sgor4Lit4Li14LiB4LmL4LiyCivguK3guLXguYDguIHguYnguIcKK+C4reC4teC5gOC4geC4o+C5h+C4hwor4Lit4Li14LmA4LiB4LmJ4Lit4Li14LiB4Lix4LiHCivguK3guLXguYHguIEKK+C4reC4teC5geC4geC5iAor4Lit4Li14LmB4LiB4LmJCivguK3guLXguYLguIHguYnguIcKK+C4reC4teC5guC4geC5iuC4sAor4Lit4Li14LiE4Lin4LmI4Liz4Lit4Li14Lir4LiH4Liy4LiiCivguK3guLXguIjguLnguYkKK+C4reC4teC4ieC4seC4mQor4Lit4Li14LiJ4Li44Lii4Lit4Li14LmB4LiJ4LiBCivguK3guLXguIrguLjguIEKK+C4reC4teC5iuC4lAor4Lit4Li14LiU4Lit4LiBCivguK3guLXguJTguLPguK3guLXguYHguJTguIcKK+C4reC4teC4leC4seC4pwor4Lit4Li14LiV4Liy4LilCivguK3guLXguYDguJXguYnguK0KK+C4reC4teC5guC4leC5iQor4Lit4Li14LiW4LmI4Liy4LiHCivguK3guLXguJfguLjguIEKK+C4reC4teC4l+C4uOC4mgor4Lit4Li14LmA4LiX4Lit4Lij4LmMCivguK3guLXguJnguLjguIfguJXguLjguIfguJnguLHguIcKK+C4reC4teC4meC4ueC4mQor4Lit4Li14LmC4LiZCivguK3guLXguYLguJnguIfguYLguJXguIfguYDguJnguIcKK+C4reC4teC4muC4tuC5ieC4hwor4Lit4Li14Lib4Li44LiUCivguK3guLXguYDguJvguYfguJQKK+C4reC4teC5gOC4m+C5ieC4sgor4Lit4Li14LmB4Lib4LiwCivguK3guLXguYLguJvguIcKK+C4reC4teC5gOC4nuC4sgor4Lit4Li14Lih4Li5CivguK3guLXguKPguKEKK+C4reC4teC4o+C4uOC5ieC4hwor4Lit4Li14LmB4Lij4LiU4LmB4LiI4LmK4LiU4LmB4LiI4LmLCivguK3guLXguYHguKPguYnguYHguJfguYnguYHguJXguYgKK+C4reC4teC4peC4reC4hwor4Lit4Li14Lil4LmI4Lit4Lii4Lib4LmI4Lit4Lii4LmB4LitCivguK3guLXguKXguLjguYnguKEKK+C4reC4teC4peC4uOC5iOC4ouC4ieC4uOC4ouC5geC4ieC4gQor4Lit4Li14LmA4Lil4Li04LmJ4LiHCivguK3guLXguYHguKXguYjguIcKK+C4reC4teC5guC4peC4hwor4Lit4Li14Lio4Lin4LijCivguK3guLXguKoKK+C4reC4teC4quC5gOC4leC4reC4o+C5jAor4Lit4Li14Liq4LiyCivguK3guLXguKrguLLguJkKK+C4reC4teC4quC4uOC4geC4reC4teC5g+C4qgor4Lit4Li14Lir4LiZ4Lit4LiH4Lit4Li14LmB4Lir4LiZ4LiHCivguK3guLXguKvguKPguK3guJoKK+C4reC4teC4q+C4peC4seC4geC4reC4teC5gOC4q+C4peC4t+C5iOC4rQor4Lit4Li14Lir4Lil4Lix4LiU4LiW4Lix4LiU4LiX4LiyCivguK3guLXguKvguKXguLUKK+C4reC4teC4q+C4peC4uOC4geC4guC4peC4uOC4geC4guC4peC4seC4gQor4Lit4Li14Lir4Lil4Li44LiB4LiC4Lil4Li44LiB4LiC4Lil4Li44LmI4LiiCivguK3guLXguKvguKXguLjguKLguInguLjguKLguYHguInguIEKK+C4reC4teC5gOC4q+C5h+C4mQor4Lit4Li14LmA4Lir4LiZ4LmH4LiaCivguK3guLXguYDguKvguJnguLXguKLguKcKK+C4reC4teC5gOC4q+C4ouC4teC5iOC4ouC4pwor4Lit4Li14LmA4Lir4Lil4Liw4LmA4LiC4Lil4Liw4LiC4Lil4LiwCivguK3guLXguYDguKvguKXguLDguYDguILguLDguILguLAKK+C4reC4teC5guC4q+C4meC5iOC4reC4teC5gOC4q+C4meC5iAor4Lit4Li14LmC4Lir4Lil4LiB4LmC4LiC4Lil4LiB4LmA4LiC4Lil4LiBCivguK3guLXguYHguK3guYjguJkKK+C4reC4tgor4Lit4Li24LiBCivguK3guLbguYrguIEKK+C4reC4tuC4geC4l+C4tuC4gQor4Lit4Li24LiB4Lit4Lix4LiBCivguK3guLbguIcKK+C4reC4tuC5iOC4hwor4Lit4Li24LmJ4LiHCivguK3guLbguJQKK+C4reC4tuC4lOC4leC4sOC4m+C4t+C4rQor4Lit4Li24LmJ4LiU4LiX4Li24LmI4LiUCivguK3guLbguJkKK+C4reC4t+C4lAor4Lit4Li34LmI4LiZCivguK3guLfguYnguJkKK+C4reC4t+C4rQor4Lit4Li34LmJ4LitCivguK3guLgKK+C4reC4uOC4gQor4Lit4Li44LiB4LiB4LiyCivguK3guLjguIHguKTguKnguI/guYwKK+C4reC4uOC4geC4peC4sgor4Lit4Li44LiECivguK3guLjguITguKMKK+C4reC4uOC4hOC4q+C4meC4tOC4oeC4tOC4lQor4Lit4Li44LiE4Lir4LiwCivguK3guLjguYLguIbguKkKK+C4reC4uOC5ieC4hwor4Lit4Li44LiICivguK3guLjguIjguIjguLLguKPguLAKK+C4reC4uOC4iOC4ieC4uAor4Lit4Li44LiI4LmA4LiJ4LiXCivguK3guLjguIjguLLguJQKK+C4reC4uOC4iuC4uAor4Lit4Li44LiN4LiJ4Liy4LiI4Lij4Li04Lii4LiyCivguK3guLjguI/guJDguLLguIHguLLguKMKK+C4reC4uOC4k+C4q+C4sAor4Lit4Li44LiT4Lir4Li04LiqCivguK3guLjguJPguLIKK+C4reC4uOC4lAor4Lit4Li44LiU4LmA4LiV4LiyCivguK3guLjguJTguKEKK+C4reC4uOC4lOC4owor4Lit4Li44LiU4Lir4LiZ4Li44LiZCivguK3guLjguJTguLLguIHguLHguJkKK+C4reC4uOC4leC4lOC4oQor4Lit4Li44LiV4LiU4LijCivguK3guLjguJXguJXguKHguLAKK+C4reC4uOC4leC4muC4pQor4Lit4Li44LiV4Lie4Li04LiUCivguK3guLjguJXguKPguLIKK+C4reC4uOC4leC4o+C4tAor4Lit4Li44LiV4Lil4Li44LiUCivguK3guLjguJXguKrguYjguLLguKvguYwKK+C4reC4uOC4leC4quC4suC4q+C4sAor4Lit4Li44LiV4Li4CivguK3guLjguJfguIEKK+C4reC4uOC4l+C4l+C4suC4oQor4Lit4Li44LiX4LiY4Lij4LiT4LmMCivguK3guLjguJfguJjguLHguIgKK+C4reC4uOC4l+C4ouC4suC4mQor4Lit4Li44LiX4LijCivguK3guLjguJfguKPguLTguKLguLAKK+C4reC4uOC4l+C4peC4uOC4oQor4Lit4Li44LiX4Lix4LiiCivguK3guLjguJfguLLguJkKK+C4reC4uOC4l+C4suC4owor4Lit4Li44LiX4Liy4Lir4Lij4LiT4LmMCivguK3guLjguJfguLTguKgKK+C4reC4uOC4l+C4uOC4oeC4nuC4owor4Lit4Li44LmA4LiX4LioCivguK3guLjguYDguJfguKrguLTguIHguYDguIjguJTguLXguKLguYwKK+C4reC4uOC4mOC4seC4iAor4Lit4Li44LmI4LiZCivguK3guLjguJnguLLguIHguLHguJkKK+C4reC4uOC4mgor4Lit4Li44Lia4LilCivguK3guLjguJrguLAKK+C4reC4uOC4muC5iuC4sAor4Lit4Li44Lia4Lix4LiV4Li0CivguK3guLjguJrguLLguJcKK+C4reC4uOC4muC4suC4l+C4p+C5jAor4Lit4Li44Lia4Liy4LiiCivguK3guLjguJrguLLguKrguIEKK+C4reC4uOC4muC4suC4quC4tOC4geC4sgor4Lit4Li44LmA4Lia4LiB4LiC4LiyCivguK3guLjguYLguJrguKrguJYKK+C4reC4uOC5guC4muC4quC4luC4q+C4seC4leC4luC4tQor4Lit4Li44LibCivguK3guLjguJvguIHguKPguJPguYwKK+C4reC4uOC4m+C4geC4o+C4oQor4Lit4Li44Lib4LiB4Liy4LijCivguK3guLjguJvguIHguLLguKPguLAKK+C4reC4uOC4m+C4geC4suC4qOC4quC4suC4owor4Lit4Li44Lib4LiB4Li04LiT4LiT4LiwCivguK3guLjguJvguIHguLTguYDguKXguKoKK+C4reC4uOC4m+C4huC4suC4leC4geC4geC4o+C4o+C4oQor4Lit4Li44Lib4LiI4Liy4LijCivguK3guLjguJvguJbguLHguKHguKDguYwKK+C4reC4uOC4m+C4luC4seC4oeC4oOC4gQor4Lit4Li44Lib4LiX4LihCivguK3guLjguJvguJfguLnguJUKK+C4reC4uOC4m+C5gOC4l+C4qAor4Lit4Li44Lib4LmA4LiX4LmI4Lir4LmMCivguK3guLjguJvguJjguLQKK+C4reC4uOC4m+C4mOC4tOC4p+C4tOC5gOC4p+C4gQor4Lit4Li44Lib4LiZ4Lix4LiiCivguK3guLjguJvguJnguLLguKLguIEKK+C4reC4uOC4m+C4meC4suC4ouC4mQor4Lit4Li44Lib4LiZ4Li04LiB4LiC4Li04LiVCivguK3guLjguJvguJnguLTguIHguKnguLTguJUKK+C4reC4uOC4m+C4meC4tOC4qeC4seC4lwor4Lit4Li44Lib4LiZ4Li04Liq4Lix4LiiCivguK3guLjguJvguJrguKUKK+C4reC4uOC4m+C4muC4seC4leC4tAor4Lit4Li44Lib4Lia4Liy4LiXCivguK3guLjguJvguJ7guLHguJfguJjguYwKK+C4reC4uOC4m+C4nuC4seC4meC4mOC5jAor4Lit4Li44Lib4Lig4Li04LmA4Lip4LiBCivguK3guLjguJvguYLguKDguIQKK+C4reC4uOC4m+C4oeC4sgor4Lit4Li44Lib4Lih4Liy4LiZCivguK3guLjguJvguKHguLLguK3guLjguJvguYTguKHguKIKK+C4reC4uOC4m+C5hOC4oeC4ogor4Lit4Li44Lib4Lii4Li44Lin4Lij4Liy4LiKCivguK3guLjguJvguYLguKLguIQKK+C4reC4uOC4m+C5guC4ouC4o+C4suC4igor4Lit4Li44Lib4Lij4Liy4LiB4LijCivguK3guLjguJvguKPguLLguITguLIKK+C4reC4uOC4m+C4o+C4suC4igor4Lit4Li44Lib4Lij4Li0CivguK3guLjguJvguYLguKXguIHguJnguYwKK+C4reC4uOC4m+C5guC4peC4geC4q+C5jAor4Lit4Li44Lib4Liq4Lih4Lia4LiXCivguK3guLjguJvguKrguKHguJrguLHguJkKK+C4reC4uOC4m+C4quC4o+C4o+C4hAor4Lit4Li44Lib4Liq4Lix4Lih4Lia4Lix4LiZCivguK3guLjguJvguKrguLHguKHguJvguJfguLIKK+C4reC4uOC4m+C4ruC4suC4lAor4Lit4Li44Lib4Lix4LiK4LiM4Liy4Lii4LmMCivguK3guLjguJvguLHguIrguIzguLLguKLguLAKK+C4reC4uOC4m+C4seC4j+C4kOC4suC4gQor4Lit4Li44Lib4Lix4LiP4LiQ4Liy4LiZ4LiwCivguK3guLjguJvguLHguJfguKfguLAKK+C4reC4uOC4m+C4suC4guC4ouC4suC4mQor4Lit4Li44Lib4Liy4LiY4Lii4Liy4LiiCivguK3guLjguJvguLLguKLguLLguKoKK+C4reC4uOC4m+C4suC4q+C4meC4sgor4Lit4Li44Lig4LmC4LiV4Liq4LiH4LiG4LmMCivguK3guLjguKDguLHguKIKK+C4reC4uOC5ieC4oQor4Lit4Li44Lih4LiH4LiE4LmMCivguK3guLjguKHguKHguLHguJUKK+C4reC4uOC4oeC4sgor4Lit4Li44LmC4Lih4LiH4LiE4LmMCivguK3guLjguKIKK+C4reC4uOC5ieC4ogor4Lit4Li44LmK4LiiCivguK3guLjguKLguKLguLLguJkKK+C4reC4uOC4ouC4ouC4suC4oQor4Lit4Li44Lii4LmC4Lii4LiECivguK3guLjguKPguIQKK+C4reC4uOC4o+C4kwor4Lit4Li44Lij4Lie4Li1CivguK3guLjguKPguKoKK+C4reC4uOC4o+C4sAor4Lit4Li44Lij4Lix4LiH4Lit4Li44LiV4Lix4LiHCivguK3guLjguKPguLHguIjguInguJfguLAKK+C4reC4uOC4o+C4seC4iOC4ieC4seC4lwor4Lit4Li44Lij4LiyCivguK3guLjguKPguLgKK+C4reC4uOC5hOC4owor4Lit4Li44Lil4Lib4LiZ4LiwCivguK3guLjguKXguYLguKXguIgKK+C4reC4uOC4peC5guC4peC4peC4sAor4Lit4Li44Lil4Liy4Lih4LiBCivguK3guLjguKXguLTguJQKK+C4reC4uOC4peC4ueC4gQor4Lit4Li44LmC4Lil4LiBCivguK3guLjguKfguLAKK+C4reC4uOC5geC4p+C5iQor4Lit4Li44Lip4LiT4Li14Lip4LmMCivguK3guLjguKnguKEKK+C4reC4uOC4qeC4oeC4seC4mQor4Lit4Li44Lip4LiyCivguK3guLjguKnguLLguKvguLAKK+C4reC4uOC4quC4oAor4Lit4Li44Liq4Lin4LiwCivguK3guLjguKrguKrguYjguLLguKvguYwKK+C4reC4uOC4quC4quC4suC4q+C4sAor4Lit4Li44Liq4LiyCivguK3guLjguKrguLgKK+C4reC4uOC4quC4uOC4oAor4Lit4Li44Liq4Li44LihCivguK3guLjguKvguKPguLHguJoKK+C4reC4uOC4q+C4peC4mgor4Lit4Li44LmA4Lir4Lih4LmICivguK3guLjguKzguLLguKMKK+C4reC4uQor4Lit4Li54LmICivguK3guLnguYkKK+C4reC4ueC5iwor4Lit4Li54LiQCivguK3guLnguJQKK+C4reC4ueC4oQor4Lit4Li54Lij4Li5CivguK3guLnguYvguK3guLXguYsKK+C5gOC4rQor4LmA4Lit4LmJCivguYDguK3guYnguYbguYHguK3guYjguJkKK+C5gOC4reC4gQor4LmA4Lit4LmK4LiBCivguYDguK3guIHguYDguILguJnguIEKK+C5gOC4reC4geC4iOC4seC4geC4qeC4uAor4LmA4Lit4LiB4LiI4Li04LiVCivguYDguK3guIHguInguLHguJnguJfguYwKK+C5gOC4reC4geC4iuC4mQor4LmA4Lit4LiB4LiL4LmC4LibCivguYDguK3guIHguIvguYDguKPguKLguYwKK+C5gOC4reC4geC5gOC4l+C4qAor4LmA4Lit4LiB4LmC4LiX4LipCivguYDguK3guIHguJnguLHguKIKK+C5gOC4reC4geC4muC4uOC4hOC4hOC4pQor4LmA4Lit4LiB4Lia4Li44Lij4Li44LipCivguYDguK3guIHguJ7guIjguJnguYwKK+C5gOC4reC4geC4nuC4seC4meC4mOC5jAor4LmA4Lit4LiB4Lig4LieCivguYDguK3guIHguKDguKPguLTguKLguLIKK+C5gOC4reC4geC4oOC4seC4geC4lOC4tOC5jAor4LmA4Lit4LiB4Lig4Liy4LiE4Li1CivguYDguK3guIHguKDguLLguJ4KK+C5gOC4reC4geC4oQor4LmA4Lit4LiB4Lih4LiV4Li0CivguYDguK3guIHguKHguLHguKIKK+C5gOC4reC4geC4o+C4o+C4luC4m+C4o+C4sOC5guC4ouC4hAor4LmA4Lit4LiB4Lij4LiqCivguYDguK3guIHguKPguLAKK+C5gOC4reC4geC4o+C4suC4igor4LmA4Lit4LiB4Lil4Lix4LiB4Lip4LiT4LmMCivguYDguK3guIHguKjguIEKK+C5gOC4reC4geC4qgor4LmA4Lit4LiB4Liq4Lih4Lix4LiH4LiE4Li1CivguYDguK3guIHguKrguLLguKMKK+C5gOC4reC4geC4quC4tOC4l+C4mOC4tOC5jAor4LmA4Lit4LiB4Lit4Lix4LiE4Lij4Lij4Liy4LiK4LiX4Li54LiVCivguYDguK3guIHguK3guLgKK+C5gOC4reC4geC4seC4hOC4leC4sgor4LmA4Lit4LiB4Lix4LiH4Liq4Lie4Lii4Liy4LiB4Lij4LiT4LmMCivguYDguK3guIHguLHguIfguKrguKfguLLguJfguLUKK+C5gOC4reC4geC4seC4leC4oOC4suC4ngor4LmA4Lit4LiB4LiyCivguYDguK3guYnguIHguLIKK+C5gOC4reC4geC4tOC4geC4sgor4LmA4Lit4LiB4Li14Lig4Li54LiVCivguYDguK3guYDguITguK3guKPguYwKK+C5gOC4reC4hwor4LmA4Lit4LmH4LiHCivguYDguK3guYvguIcKK+C5gOC4reC5gOC4iuC4teC5iOC4ouC4meC5gOC4geC4oeC4quC5jAor4LmA4Lit4LmH4LiUCivguYDguK3guJTguKrguYwKK+C5gOC4reC4leC4l+C4seC4hOC4hOC4sAor4LmA4Lit4LmJ4LmA4LiVCivguYDguK3guJfguLTguKXguYHguK3guKXguIHguK3guK7guK3guKXguYwKK+C5gOC4reC4mQor4LmA4Lit4LmH4LiZCivguYDguK3guJnguYTguIvguKHguYwKK+C5gOC4reC5h+C4meC4lOC4uQor4LmA4Lit4LiZ4LiX4Lij4Liy4LiZ4LiL4LmMCivguYDguK3guKEKK+C5gOC4reC5h+C4oeC4muC4o+C4tOC5guC4rQor4LmA4Lit4LiiCivguYDguK3guYjguKIKK+C5gOC4reC5iuC4ogor4LmA4Lit4LmL4LiiCivguYDguK3guYDguKLguYjguJnguJXguYwKK+C5gOC4reC4o+C5h+C4lOC4reC4o+C5iOC4reC4ogor4LmA4Lit4Lij4Liy4Lin4Lix4LiTCivguYDguK3guKXguLIKK+C5gOC4reC4peC4suC4rOC4uOC4gQor4LmA4Lit4LinCivguYDguK3guYrguKcKK+C5gOC4reC4p+C4seC4hwor4LmA4Lit4LmJ4Lir4Lih4Li24LiHCivguYDguK3guKvguLTguJvguLHguKrguKrguLTguYLguIEKK+C5gOC4reC4q+C4tOC4oOC4tOC4geC4guC4uOC4reC4uOC4m+C4quC4seC4oeC4m+C4l+C4sgor4LmA4Lit4Lis4LiBCivguYDguK3guKzguLIKK+C5gOC4reC4rQor4LmA4Lit4LmI4LitCivguYDguK3guK3guKPguYzguYDguJrguLXguKLguKEKK+C5gOC4reC5ieC4reC4o+C4sOC5gOC4q+C4ogor4LmA4Lit4LmJ4Lit4LmA4Lij4LmJ4LitCivguYDguK3guYnguK3guYDguK7guK0KK+C5gOC4reC5ieC5geC4reC5iOC4mQor4LmA4Lit4LmK4LiwCivguYDguK3guLDguYPguIgKK+C5gOC4reC4sOC4reC4sAor4LmA4Lit4LiyCivguYDguK3guYnguLIKK+C5gOC4reC4suC4l+C4suC4owor4LmA4Lit4Liy4LiX4Liy4Lij4Lii4LmMCivguYDguK3guLLguKPguKoKK+C5gOC4reC4suC4rOC4suC4owor4LmA4Lit4Liy4Liw4Lil4Liy4LiiCivguYDguK3guLTguIEKK+C5gOC4reC4tOC5ieC4gQor4LmA4Lit4Li04LiZCivguYDguK3guLTguYnguJkKK+C5gOC4reC4tOC4mgor4LmA4Lit4Li14Lii4LiHCivguYDguK3guLXguYnguKLguIcKK+C5gOC4reC4teC4ouC4lAor4LmA4Lit4Li14LmK4Lii4LiUCivguYDguK3guLXguKLguJkKK+C5gOC4reC4teC5iOC4ouC4mQor4LmA4Lit4Li14LmI4Lii4LihCivguYDguK3guLXguYrguKLguKEKK+C5gOC4reC4teC5ieC4ouC4oeC4iOC4uOC5iuC4mQor4LmA4Lit4Li14LmJ4Lii4Lih4LmA4Lif4Li14LmJ4Lii4LihCivguYDguK3guLXguYjguKLguKcKK+C5gOC4reC4teC5ieC4ouC4pwor4LmA4Lit4Li34LmJ4LitCivguYDguK3guLfguYnguK3guIcKK+C5gOC4reC4t+C5ieC4reC4h+C4iuC4seC4mQor4LmA4Lit4Li34Lit4LiUCivguYDguK3guLfguK3guJkKK+C5gOC4reC4t+C5ieC4reC4mQor4LmA4Lit4Li34Lit4LihCivguYDguK3guLfguYnguK3guKEKK+C5gOC4reC4t+C5iOC4reC4ogor4LmA4Lit4Li34LmJ4Lit4LiiCivguYDguK3guLfguYjguK3guKLguYYKK+C5geC4rQor4LmB4Lit4LmJCivguYHguK3guYsKK+C5geC4reC4gQor4LmB4Lit4LiB4LiX4Li04LmA4LiZ4Li14Lii4LihCivguYHguK3guYjguIcKK+C5geC4reC5ieC4h+C5geC4oeC5ieC4hwor4LmB4Lit4LiUCivguYHguK3guYnguJQKK+C5geC4reC5iuC4lAor4LmB4Lit4LiU4LmGCivguYHguK3guYrguJTguYYKK+C5geC4reC5iOC4mQor4LmB4Lit4LiZ4LiV4Li04LmA4LiI4LiZCivguYHguK3guJnguJXguLTguJrguK3guJTguLUKK+C5geC4reC4meC4leC4tOC4reC4tOC5gOC4peC5h+C4geC4leC4o+C4reC4mQor4LmB4Lit4LmI4LiZ4Lil4LihCivguYHguK3guYLguJnguJQKK+C5geC4reC4mgor4LmB4Lit4LmJ4LihCivguYHguK3guKHguYHguJvguKPguYwKK+C5geC4reC4oeC5gOC4n+C4leC4suC4oeC4teC4mQor4LmB4Lit4Lih4Lih4Li04LmA4LiV4Lit4Lij4LmMCivguYHguK3guKHguYLguKHguYDguJnguLXguKIKK+C5geC4reC4o+C5iOC4oQor4LmB4Lit4Lij4LmM4LmC4Liu4Liq4LmA4LiV4LiqCivguYHguK3guKXguIHguK3guK7guK3guKXguYwKK+C5geC4reC4peC4n+C4sgor4LmB4Lit4LinCivguYHguK3guYjguKcKK+C5geC4reC5ieC4p+C5geC4i+C5iOC4pwor4LmB4Lit4Liq4LiX4Liy4LiX4Li14LiZCivguYHguK3guKrguYTguJ7guKPguLTguJkKK+C5geC4reC4quC4n+C4seC4peC4leC5jAor4LmB4Lit4Lir4LiZ4Lix4LiHCivguYHguK3guK3guKfguKIKK+C5geC4reC4reC4seC4lAor4LmC4LitCivguYLguK3guYgKK+C5guC4reC5iQor4LmC4Lit4LmLCivguYLguK3guIEKK+C5guC4reC5ieC4gQor4LmC4Lit4LmK4LiBCivguYLguK3guIHguLLguKoKK+C5guC4reC4huC4sAor4LmC4Lit4LmI4LiHCivguYLguK3guIfguIHguLLguKMKK+C5guC4reC4h+C5guC4guC4lOC4hwor4LmC4Lit4LiK4LiwCivguYLguK3guIrguLIKK+C5guC4reC5guC4i+C4mQor4LmC4Lit4LiQCivguYLguK3guJQKK+C5guC4reC4lQor4LmC4Lit4LiV4LiV4Lix4Lib4Lib4LiwCivguYLguK3guJfguJnguLAKK+C5guC4reC4mQor4LmC4Lit4LiaCivguYLguK3guJvguJvguLLguJXguLTguIHguLAKK+C5guC4reC5gOC4m+C4gQor4LmC4Lit4Lig4LiyCivguYLguK3guKDguLLguKoKK+C5guC4reC4oQor4LmC4Lit4LiiCivguYLguK3guYrguKIKK+C5guC4reC4o+C4qgor4LmC4Lit4Lil4Liw4Lie4LmI4LitCivguYLguK3guKXguLTguKHguJvguLTguIEKK+C5guC4reC5gOC4peC4teC5ieC4ouC4hwor4LmC4Lit4Lin4Liy4LiXCivguYLguK3guKnguJDguYwKK+C5guC4reC4quC4lgor4LmC4Lit4Liq4Liy4LiZCivguYLguK3guKvguJnguK0KK+C5guC4reC4q+C5jOC4oQor4LmC4Lit4Lir4Lix4LiHCivguYLguK3guKzguLLguKMKK+C5guC4reC5ieC5gOC4reC5iQor4LmC4Lit4LmA4Lit4LiL4Li04LiqCivguYLguK3guYnguYLguK4KK+C5hOC4rQor4LmE4Lit4LmJ4LmA4LiC4LmJCivguYTguK3guYLguIvguYLguJfguJsKK+C5hOC4reC4meC5jOC4quC5hOC4leC5gOC4meC4teC4ouC4oQor4LmE4Lit4Lii4Lij4LiyCivguYTguK3guKLguYDguKPguKgKK+C5hOC4reC4o+C4suC4nuC4lQor4LmE4Lit4Lij4Liy4Lin4Lix4LiTCivguYTguK3guKjguIHguKPguLXguKEKK+C5hOC4reC4qOC4p+C4o+C4o+C4ouC5jAor4LmE4Lit4Lit4Lit4LiZCivguYTguK3guYLguK3guJTguLXguJkKK+C4rgor4Liu4LiB4LmA4LiB4Li14LmJ4Lii4LiZCivguK7guIHguKXguIHguIvguLTguYjguKcKK+C4ruC5ieC4hwor4Liu4LiUCivguK7guKfguIfguIvguLjguYnguKIKK+C4ruC4p+C4mQor4Liu4LmJ4Lin4LiZCivguK7guYnguKfguJnguKvguKHguLkKK+C4ruC4p+C4mgor4Liu4Lin4LiiCivguK7guYjguK0KK+C4ruC5ieC4rQor4Liu4Lit4LiB4LiB4Li14LmJCivguK7guYjguK3guIcKK+C4ruC5iOC4reC4h+C5gOC4leC5iQor4Liu4Lit4LiH4LmA4Liu4LiyCivguK7guK3guJQKK+C4ruC4reC4leC4lOC4reC4gQor4Liu4LmI4Lit4LihCivguK7guYjguK3guKHguJTguIcKK+C4ruC5iOC4reC4oeC5gOC4oeC4t+C4reC4hwor4Liu4LmI4Lit4Lih4Lij4Li04LiZCivguK7guK3guKPguYzguYLguKHguJkKK+C4ruC4reC4peC5geC4peC4meC4lOC5jAor4Liu4Lit4Lil4Lix4LiZ4LiU4LiyCivguK7guLAKK+C4ruC4seC4gQor4Liu4Lix4LiB4LmGCivguK7guLHguIfguYDguKUKK+C4ruC4seC4lOC5gOC4iuC5ieC4ogor4Liu4Lix4LmI4LiZCivguK7guLHguYnguKcKK+C4ruC4sgor4Liu4LmJ4LiyCivguK7guYjguLLguYYKK+C4ruC5iOC4suC4h+C4q+C4peC4p+C4hwor4Liu4Liy4LihCivguK7guLLguKPguLLguITguLXguKPguLUKK+C4ruC4suC5gOC4o+C5h+C4oQor4Liu4Liy4Lir4LmM4LmA4LiZ4Li14Lii4LihCivguK7guLTguYYKK+C4ruC4tOC4iOC5gOC4o+C4suC4sOC4q+C5jAor4Liu4Li04LiZ4LiU4Li5CivguK7guLTguJvguJvguLXguYkKK+C4ruC4tOC4m+C5guC4m+C5guC4m+C5gOC4leC4oeC4seC4qgor4Liu4Li04Liq4LiX4Li14LmA4Lij4Li14LiiCivguK7guLXguYkKK+C4ruC4teC5gOC4peC4teC4ouC4oQor4Liu4Li2CivguK7guLbguIEKK+C4ruC4tuC4lAor4Liu4Li24LihCivguK7guLbguYjguKEKK+C4ruC4tuC4ogor4Liu4Li34LiU4Liu4Liy4LiUCivguK7guLfguK0KK+C4ruC4t+C5iOC4rQor4Liu4Li34LmJ4LitCivguK7guLjguJQKK+C4ruC4uOC4mgor4Liu4Li44Lii4LmA4Lil4Liu4Li44LiiCivguK7guLnguYkKK+C4ruC4ueC4gQor4Liu4Li54LihCivguYDguK4KK+C5gOC4ruC5iQor4LmA4Liu4LiB4LiV4Liy4Lij4LmMCivguYDguK7guIHguYLguJXguIHguKPguLHguKEKK+C5gOC4ruC4geC5guC4leC5gOC4oeC4leC4owor4LmA4Liu4LiB4LmC4LiV4Lil4Li04LiV4LijCivguYDguK7guIcKK+C5gOC4ruC5guC4oeC5guC4geC4peC4muC4tOC4mQor4LmA4Liu4LiiCivguYDguK7guYnguKIKK+C5gOC4ruC5guC4o+C4reC4teC4mQor4LmA4Liu4Lil4Li04LiE4Lit4Lib4LmA4LiV4Lit4Lij4LmMCivguYDguK7guYnguKcKK+C5gOC4ruC4rQor4LmA4Liu4LmJ4LitCivguYDguK7guLTguKPguJXguIvguYwKK+C5gOC4ruC4teC4ogor4LmA4Liu4Li14LmJ4Lii4LiZCivguYDguK7guLXguYnguKLguJoKK+C5gOC4ruC4teC5ieC4ouC4pwor4LmA4Liu4Li34Lit4LiBCivguYDguK7guLfguK3guJkKK+C5geC4rgor4LmB4Liu4LmICivguYHguK7guYjguIHguLbguYrguJkKK+C5geC4ruC4meC4lOC5jOC4muC4reC4pQor4LmB4Liu4Lif4LmA4LiZ4Li14Lii4LihCivguYHguK7guKEKK+C5geC4ruC4oeC5gOC4muC4reC4o+C5jOC5gOC4geC4reC4o+C5jAor4LmB4Liu4LiwCivguYLguK4KK+C5guC4ruC4gQor4LmC4Liu4LmA4LiV4LmH4LilCivguYLguK7guKXguYDguKHguLXguKLguKEKK+C5guC4ruC4sAor4LmE4Liu4LmJCivguYTguK7guYLguIHguKPguKHguLTguYDguJXguK3guKPguYwKK+C5hOC4ruC4lOC5jOC4m+C4suC4o+C5jOC4gQor4LmE4Liu4LiU4Lij4LiyCivguYTguK7guYLguJTguKPguITguLLguKPguYzguJrguK3guJkKK+C5hOC4ruC5guC4lOC4o+C5gOC4iOC4mQor4LmE4Liu4LmC4LiU4Lij4LmA4LiI4LiZ4LiL4Lix4Lil4LmE4Lif4LiU4LmMCivguYTguK7guYLguJTguKPguYDguIjguJnguYDguJ7guK3guKPguYzguK3guK3guIHguYTguIvguJTguYwKK+C5hOC4ruC5guC4lOC4o+C4oeC4tOC5gOC4leC4reC4o+C5jAor4LmE4Liu4LmE4LifCivguYTguK7guYLguKUKK+C5hOC4ruC4ruC4tQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3RoYWk2LnVjcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90aGFpNi51Y3MKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWFmN2JjMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS90aGFpNi51Y3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvQ29tcG9zaXRpb25FeGNsdXNpb25zLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL0NvbXBvc2l0aW9uRXhjbHVzaW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjIwNTI4YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL0NvbXBvc2l0aW9uRXhjbHVzaW9ucy50eHQKQEAgLTAsMCArMSwxNzkgQEAKKyMgQ29tcG9zaXRpb25FeGNsdXNpb25zLTQuMS4wLnR4dAorIyBEYXRlOiAyMDA1LTAzLTE3LCAxNToyMTowMCBQU1QgW0tXXQorIworIyBUaGlzIGZpbGUgbGlzdHMgdGhlIGNoYXJhY3RlcnMgZnJvbSB0aGUgVUFYICMxNSBDb21wb3NpdGlvbiBFeGNsdXNpb24gVGFibGUuCisjCisjIFRoaXMgZmlsZSBpcyBhIG5vcm1hdGl2ZSBjb250cmlidXRvcnkgZGF0YSBmaWxlIGluIHRoZQorIyBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZS4KKyMKKyMgQ29weXJpZ2h0IChjKSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLgorIyBGb3IgdGVybXMgb2YgdXNlLCBzZWUgaHR0cDovL3d3dy51bmljb2RlLm9yZy90ZXJtc19vZl91c2UuaHRtbAorIworIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlCisjIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvI1ByaW1hcnkgRXhjbHVzaW9uIExpc3QgVGFibGUKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgKDEpIFNjcmlwdCBTcGVjaWZpY3MKKyMgVGhpcyBsaXN0IG9mIGNoYXJhY3RlcnMgY2Fubm90IGJlIGRlcml2ZWQgZnJvbSB0aGUgVW5pY29kZURhdGEgZmlsZS4KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKzA5NTggICAgIyAgREVWQU5BR0FSSSBMRVRURVIgUUEKKzA5NTkgICAgIyAgREVWQU5BR0FSSSBMRVRURVIgS0hIQQorMDk1QSAgICAjICBERVZBTkFHQVJJIExFVFRFUiBHSEhBCiswOTVCICAgICMgIERFVkFOQUdBUkkgTEVUVEVSIFpBCiswOTVDICAgICMgIERFVkFOQUdBUkkgTEVUVEVSIEREREhBCiswOTVEICAgICMgIERFVkFOQUdBUkkgTEVUVEVSIFJIQQorMDk1RSAgICAjICBERVZBTkFHQVJJIExFVFRFUiBGQQorMDk1RiAgICAjICBERVZBTkFHQVJJIExFVFRFUiBZWUEKKzA5REMgICAgIyAgQkVOR0FMSSBMRVRURVIgUlJBCiswOUREICAgICMgIEJFTkdBTEkgTEVUVEVSIFJIQQorMDlERiAgICAjICBCRU5HQUxJIExFVFRFUiBZWUEKKzBBMzMgICAgIyAgR1VSTVVLSEkgTEVUVEVSIExMQQorMEEzNiAgICAjICBHVVJNVUtISSBMRVRURVIgU0hBCiswQTU5ICAgICMgIEdVUk1VS0hJIExFVFRFUiBLSEhBCiswQTVBICAgICMgIEdVUk1VS0hJIExFVFRFUiBHSEhBCiswQTVCICAgICMgIEdVUk1VS0hJIExFVFRFUiBaQQorMEE1RSAgICAjICBHVVJNVUtISSBMRVRURVIgRkEKKzBCNUMgICAgIyAgT1JJWUEgTEVUVEVSIFJSQQorMEI1RCAgICAjICBPUklZQSBMRVRURVIgUkhBCiswRjQzICAgICMgIFRJQkVUQU4gTEVUVEVSIEdIQQorMEY0RCAgICAjICBUSUJFVEFOIExFVFRFUiBEREhBCiswRjUyICAgICMgIFRJQkVUQU4gTEVUVEVSIERIQQorMEY1NyAgICAjICBUSUJFVEFOIExFVFRFUiBCSEEKKzBGNUMgICAgIyAgVElCRVRBTiBMRVRURVIgRFpIQQorMEY2OSAgICAjICBUSUJFVEFOIExFVFRFUiBLU1NBCiswRjc2ICAgICMgIFRJQkVUQU4gVk9XRUwgU0lHTiBWT0NBTElDIFIKKzBGNzggICAgIyAgVElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgTAorMEY5MyAgICAjICBUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgR0hBCiswRjlEICAgICMgIFRJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEREhBCiswRkEyICAgICMgIFRJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBESEEKKzBGQTcgICAgIyAgVElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEJIQQorMEZBQyAgICAjICBUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRFpIQQorMEZCOSAgICAjICBUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgS1NTQQorRkIxRCAgICAjICBIRUJSRVcgTEVUVEVSIFlPRCBXSVRIIEhJUklRCitGQjFGICAgICMgIEhFQlJFVyBMSUdBVFVSRSBZSURESVNIIFlPRCBZT0QgUEFUQUgKK0ZCMkEgICAgIyAgSEVCUkVXIExFVFRFUiBTSElOIFdJVEggU0hJTiBET1QKK0ZCMkIgICAgIyAgSEVCUkVXIExFVFRFUiBTSElOIFdJVEggU0lOIERPVAorRkIyQyAgICAjICBIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0ggQU5EIFNISU4gRE9UCitGQjJEICAgICMgIEhFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSCBBTkQgU0lOIERPVAorRkIyRSAgICAjICBIRUJSRVcgTEVUVEVSIEFMRUYgV0lUSCBQQVRBSAorRkIyRiAgICAjICBIRUJSRVcgTEVUVEVSIEFMRUYgV0lUSCBRQU1BVFMKK0ZCMzAgICAgIyAgSEVCUkVXIExFVFRFUiBBTEVGIFdJVEggTUFQSVEKK0ZCMzEgICAgIyAgSEVCUkVXIExFVFRFUiBCRVQgV0lUSCBEQUdFU0gKK0ZCMzIgICAgIyAgSEVCUkVXIExFVFRFUiBHSU1FTCBXSVRIIERBR0VTSAorRkIzMyAgICAjICBIRUJSRVcgTEVUVEVSIERBTEVUIFdJVEggREFHRVNICitGQjM0ICAgICMgIEhFQlJFVyBMRVRURVIgSEUgV0lUSCBNQVBJUQorRkIzNSAgICAjICBIRUJSRVcgTEVUVEVSIFZBViBXSVRIIERBR0VTSAorRkIzNiAgICAjICBIRUJSRVcgTEVUVEVSIFpBWUlOIFdJVEggREFHRVNICitGQjM4ICAgICMgIEhFQlJFVyBMRVRURVIgVEVUIFdJVEggREFHRVNICitGQjM5ICAgICMgIEhFQlJFVyBMRVRURVIgWU9EIFdJVEggREFHRVNICitGQjNBICAgICMgIEhFQlJFVyBMRVRURVIgRklOQUwgS0FGIFdJVEggREFHRVNICitGQjNCICAgICMgIEhFQlJFVyBMRVRURVIgS0FGIFdJVEggREFHRVNICitGQjNDICAgICMgIEhFQlJFVyBMRVRURVIgTEFNRUQgV0lUSCBEQUdFU0gKK0ZCM0UgICAgIyAgSEVCUkVXIExFVFRFUiBNRU0gV0lUSCBEQUdFU0gKK0ZCNDAgICAgIyAgSEVCUkVXIExFVFRFUiBOVU4gV0lUSCBEQUdFU0gKK0ZCNDEgICAgIyAgSEVCUkVXIExFVFRFUiBTQU1FS0ggV0lUSCBEQUdFU0gKK0ZCNDMgICAgIyAgSEVCUkVXIExFVFRFUiBGSU5BTCBQRSBXSVRIIERBR0VTSAorRkI0NCAgICAjICBIRUJSRVcgTEVUVEVSIFBFIFdJVEggREFHRVNICitGQjQ2ICAgICMgIEhFQlJFVyBMRVRURVIgVFNBREkgV0lUSCBEQUdFU0gKK0ZCNDcgICAgIyAgSEVCUkVXIExFVFRFUiBRT0YgV0lUSCBEQUdFU0gKK0ZCNDggICAgIyAgSEVCUkVXIExFVFRFUiBSRVNIIFdJVEggREFHRVNICitGQjQ5ICAgICMgIEhFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSAorRkI0QSAgICAjICBIRUJSRVcgTEVUVEVSIFRBViBXSVRIIERBR0VTSAorRkI0QiAgICAjICBIRUJSRVcgTEVUVEVSIFZBViBXSVRIIEhPTEFNCitGQjRDICAgICMgIEhFQlJFVyBMRVRURVIgQkVUIFdJVEggUkFGRQorRkI0RCAgICAjICBIRUJSRVcgTEVUVEVSIEtBRiBXSVRIIFJBRkUKK0ZCNEUgICAgIyAgSEVCUkVXIExFVFRFUiBQRSBXSVRIIFJBRkUKKworIyBUb3RhbCBjb2RlIHBvaW50czogNjcKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgKDIpIFBvc3QgQ29tcG9zaXRpb24gVmVyc2lvbiBwcmVjb21wb3NlZCBjaGFyYWN0ZXJzCisjIFRoZXNlIGNoYXJhY3RlcnMgY2Fubm90IGJlIGRlcml2ZWQgc29sZWx5IGZyb20gdGhlIFVuaWNvZGVEYXRhLnR4dCBmaWxlCisjIGluIHRoaXMgdmVyc2lvbiBvZiBVbmljb2RlLgorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworMkFEQyAgICAjICBGT1JLSU5HCisxRDE1RSAgICMgIE1VU0lDQUwgU1lNQk9MIEhBTEYgTk9URQorMUQxNUYgICAjICBNVVNJQ0FMIFNZTUJPTCBRVUFSVEVSIE5PVEUKKzFEMTYwICAgIyAgTVVTSUNBTCBTWU1CT0wgRUlHSFRIIE5PVEUKKzFEMTYxICAgIyAgTVVTSUNBTCBTWU1CT0wgU0lYVEVFTlRIIE5PVEUKKzFEMTYyICAgIyAgTVVTSUNBTCBTWU1CT0wgVEhJUlRZLVNFQ09ORCBOT1RFCisxRDE2MyAgICMgIE1VU0lDQUwgU1lNQk9MIFNJWFRZLUZPVVJUSCBOT1RFCisxRDE2NCAgICMgIE1VU0lDQUwgU1lNQk9MIE9ORSBIVU5EUkVEIFRXRU5UWS1FSUdIVEggTk9URQorMUQxQkIgICAjICBNVVNJQ0FMIFNZTUJPTCBNSU5JTUEKKzFEMUJDICAgIyAgTVVTSUNBTCBTWU1CT0wgTUlOSU1BIEJMQUNLCisxRDFCRCAgICMgIE1VU0lDQUwgU1lNQk9MIFNFTUlNSU5JTUEgV0hJVEUKKzFEMUJFICAgIyAgTVVTSUNBTCBTWU1CT0wgU0VNSU1JTklNQSBCTEFDSworMUQxQkYgICAjICBNVVNJQ0FMIFNZTUJPTCBGVVNBIFdISVRFCisxRDFDMCAgICMgIE1VU0lDQUwgU1lNQk9MIEZVU0EgQkxBQ0sKKworIyBUb3RhbCBjb2RlIHBvaW50czogMTQKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgKDMpIFNpbmdsZXRvbiBEZWNvbXBvc2l0aW9ucworIyBUaGVzZSBjaGFyYWN0ZXJzIGNhbiBiZSBkZXJpdmVkIGZyb20gdGhlIFVuaWNvZGVEYXRhIGZpbGUKKyMgYnkgaW5jbHVkaW5nIGFsbCBjaGFyYWN0ZXJzIHdob3NlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uCisjIGNvbnNpc3RzIG9mIGEgc2luZ2xlIGNoYXJhY3Rlci4KKyMgVGhlc2UgY2hhcmFjdGVycyBhcmUgc2ltcGx5IHF1b3RlZCBoZXJlIGZvciByZWZlcmVuY2UuCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIDAzNDAuLjAzNDEgICAgICAgWzJdIENPTUJJTklORyBHUkFWRSBUT05FIE1BUksuLkNPTUJJTklORyBBQ1VURSBUT05FIE1BUksKKyMgMDM0MyAgICAgICAgICAgICAgICAgQ09NQklOSU5HIEdSRUVLIEtPUk9OSVMKKyMgMDM3NCAgICAgICAgICAgICAgICAgR1JFRUsgTlVNRVJBTCBTSUdOCisjIDAzN0UgICAgICAgICAgICAgICAgIEdSRUVLIFFVRVNUSU9OIE1BUksKKyMgMDM4NyAgICAgICAgICAgICAgICAgR1JFRUsgQU5PIFRFTEVJQQorIyAxRjcxICAgICAgICAgICAgICAgICBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBCisjIDFGNzMgICAgICAgICAgICAgICAgIEdSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggT1hJQQorIyAxRjc1ICAgICAgICAgICAgICAgICBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggT1hJQQorIyAxRjc3ICAgICAgICAgICAgICAgICBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIE9YSUEKKyMgMUY3OSAgICAgICAgICAgICAgICAgR1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBPWElBCisjIDFGN0IgICAgICAgICAgICAgICAgIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggT1hJQQorIyAxRjdEICAgICAgICAgICAgICAgICBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBPWElBCisjIDFGQkIgICAgICAgICAgICAgICAgIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQQorIyAxRkJFICAgICAgICAgICAgICAgICBHUkVFSyBQUk9TR0VHUkFNTUVOSQorIyAxRkM5ICAgICAgICAgICAgICAgICBHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggT1hJQQorIyAxRkNCICAgICAgICAgICAgICAgICBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBPWElBCisjIDFGRDMgICAgICAgICAgICAgICAgIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBPWElBCisjIDFGREIgICAgICAgICAgICAgICAgIEdSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBPWElBCisjIDFGRTMgICAgICAgICAgICAgICAgIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBPWElBCisjIDFGRUIgICAgICAgICAgICAgICAgIEdSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBPWElBCisjIDFGRUUuLjFGRUYgICAgICAgWzJdIEdSRUVLIERJQUxZVElLQSBBTkQgT1hJQS4uR1JFRUsgVkFSSUEKKyMgMUZGOSAgICAgICAgICAgICAgICAgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIE9YSUEKKyMgMUZGQiAgICAgICAgICAgICAgICAgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBPWElBCisjIDFGRkQgICAgICAgICAgICAgICAgIEdSRUVLIE9YSUEKKyMgMjAwMC4uMjAwMSAgICAgICBbMl0gRU4gUVVBRC4uRU0gUVVBRAorIyAyMTI2ICAgICAgICAgICAgICAgICBPSE0gU0lHTgorIyAyMTJBLi4yMTJCICAgICAgIFsyXSBLRUxWSU4gU0lHTi4uQU5HU1RST00gU0lHTgorIyAyMzI5ICAgICAgICAgICAgICAgICBMRUZULVBPSU5USU5HIEFOR0xFIEJSQUNLRVQKKyMgMjMyQSAgICAgICAgICAgICAgICAgUklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVAorIyBGOTAwLi5GQTBEICAgICBbMjcwXSBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMC4uQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEQKKyMgRkExMCAgICAgICAgICAgICAgICAgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTAKKyMgRkExMiAgICAgICAgICAgICAgICAgQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTIKKyMgRkExNS4uRkExRSAgICAgIFsxMF0gQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTUuLkNKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFFCisjIEZBMjAgICAgICAgICAgICAgICAgIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIwCisjIEZBMjIgICAgICAgICAgICAgICAgIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIyCisjIEZBMjUuLkZBMjYgICAgICAgWzJdIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI1Li5DSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyNgorIyBGQTJBLi5GQTJEICAgICAgIFs0XSBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyQS4uQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkQKKyMgRkEzMC4uRkE2QSAgICAgIFs1OV0gQ0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzAuLkNKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTZBCisjIEZBNzAuLkZBRDkgICAgIFsxMDZdIENKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTcwLi5DSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFEOQorIyAyRjgwMC4uMkZBMUQgICBbNTQyXSBDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDAuLkNKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExRAorCisjIFRvdGFsIGNvZGUgcG9pbnRzOiA5MjQKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgKDQpIE5vbi1TdGFydGVyIERlY29tcG9zaXRpb25zCisjIFRoZXNlIGNoYXJhY3RlcnMgY2FuIGJlIGRlcml2ZWQgZnJvbSB0aGUgVW5pY29kZURhdGEgZmlsZQorIyBieSBpbmNsdWRpbmcgYWxsIGNoYXJhY3RlcnMgd2hvc2UgY2Fub25pY2FsIGRlY29tcG9zaXRpb24gY29uc2lzdHMKKyMgb2YgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzLCB0aGUgZmlyc3Qgb2Ygd2hpY2ggaGFzIGEgbm9uLXplcm8KKyMgY29tYmluaW5nIGNsYXNzLgorIyBUaGVzZSBjaGFyYWN0ZXJzIGFyZSBzaW1wbHkgcXVvdGVkIGhlcmUgZm9yIHJlZmVyZW5jZS4KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgMDM0NCAgICAgICAgICAgICAgICAgQ09NQklOSU5HIEdSRUVLIERJQUxZVElLQSBUT05PUworIyAwRjczICAgICAgICAgICAgICAgICBUSUJFVEFOIFZPV0VMIFNJR04gSUkKKyMgMEY3NSAgICAgICAgICAgICAgICAgVElCRVRBTiBWT1dFTCBTSUdOIFVVCisjIDBGODEgICAgICAgICAgICAgICAgIFRJQkVUQU4gVk9XRUwgU0lHTiBSRVZFUlNFRCBJSQorCisjIFRvdGFsIGNvZGUgcG9pbnRzOiA0CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL05vcm1hbGl6YXRpb25Db3JyZWN0aW9ucy50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Ob3JtYWxpemF0aW9uQ29ycmVjdGlvbnMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzOTFhY2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Ob3JtYWxpemF0aW9uQ29ycmVjdGlvbnMudHh0CkBAIC0wLDAgKzEsNDggQEAKKyMgTm9ybWFsaXphdGlvbkNvcnJlY3Rpb25zLTQuMS4wLnR4dAorIyBEYXRlOiAyMDA1LTAzLTE3LCAxNToyMTowMCBQU1QgW0tXXQorIworIyBUaGlzIGZpbGUgaXMgYSBub3JtYXRpdmUgY29udHJpYnV0b3J5IGRhdGEgZmlsZSBpbiB0aGUKKyMgVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UuCisjCisjIENvcHlyaWdodCAoYykgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4KKyMgRm9yIHRlcm1zIG9mIHVzZSwgc2VlIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvdGVybXNfb2ZfdXNlLmh0bWwKKyMKKyMgVGhlIG5vcm1hbGl6YXRpb24gc3RhYmlsaXphdGlvbiBwb2xpY3kgb2YgdGhlIFVuaWNvZGUKKyMgQ29uc29ydGl1bSBvcmRpbmFyaWx5IHByZWNsdWRlcyBhbnkgY2hhbmdlIHRvIHRoZSBkZWNvbXBvc2l0aW9uCisjIGZvciBhbnkgY2hhcmFjdGVyLCBvbmNlIGVzdGFibGlzaGVkIGluIGEgcmVsZXZhbnQgdmVyc2lvbgorIyBvZiB0aGUgVW5pY29kZURhdGEudHh0IGRhdGEgZmlsZS4gSG93ZXZlciwgdW5kZXIgY2VydGFpbgorIyBleGNlcHRpb25hbCAoYW5kIHJhcmUpIGNvbmRpdGlvbnMsIGFuIGVycm9yIGluIGEgZGVjb21wb3NpdGlvbgorIyBtYXBwaW5nIG1heSBiZSBkaXNjb3ZlcmVkIHRoYXQgaXMgdHJ1bHkganVzdCBhbiB1bmludGVuZGVkCisjIHR5cG8gaW4gdGhlIGRhdGEsIGFuZCBub3QgYSBtYXR0ZXIgb2YgZHViaW91cyBpbnRlcnByZXRhdGlvbi4KKyMKKyMgV2hlbmV2ZXIgc3VjaCBhbiBlcnJvciBtYXkgYmUgZm91bmQsIGFuZCBpZiBpdCBtZWV0cyB0aGUKKyMgcmVxdWlyZW1lbnRzIGZvciBwb3NzaWJsZSBleGNlcHRpb25zIHRvIG5vcm1hbGl6YXRpb24KKyMgc3RhYmlsaXR5LCB0aGUgY29ycmVjdGlvbiBpcyBlbnRlcmVkIGluIHRoaXMgZGF0YSBmaWxlLAorIyBzbyB0aGF0IGFueSBpbXBsZW1lbnRhdGlvbiBkZXBlbmRpbmcgb24gYWJzb2x1dGUgc3RhYmlsaXR5CisjIG9mIG5vcm1hbGl6YXRpb24sICppbmNsdWRpbmcqIGFueSBlcnJvcnMgaW4gdGhlIGRhdGEsIGNhbgorIyBzYWZlbHkgcmVjb25zdHJ1Y3QgdGhlIGV4YWN0IHN0YXRlIG9mIHRoZSBkYXRhIHRhYmxlcyBhdAorIyBhbnkgZ2l2ZW4gdmVyc2lvbiBvZiBVbmljb2RlLgorIworIyBDdXJyZW50bHkgdGhpcyBsaXN0IGhhcyBleGFjdGx5IHNpeCBlbnRyaWVzIGluIGl0LCBvbmUgZm9yIHRoZQorIyB0eXBvIGZvdW5kIGFuZCBjb3JyZWN0ZWQgaW4gQ29ycmlnZW5kdW0gIzMsIGFuZCBmaXZlIGZvcgorIyB0aGUgdHlwb3MgYW5kIG1pc2lkZW50aWZpY2F0aW9ucyBmb3VuZCBhbmQgY29ycmVjdGVkIGluIAorIyBDb3JyaWdlbmR1bSAjNC4gQWxsIGVmZm9ydHMKKyMgd2lsbCBiZSBtYWRlIHRvIGtlZXAgdGhlIGVudHJpZXMgbGltaXRlZCB0byBqdXN0IHRob3NlIGZpeGVzLgorIworIyBJbnRlcnByZXRhdGlvbiBvZiB0aGUgZmllbGRzOgorIyAgIEZpZWxkIDE6IFVuaWNvZGUgY29kZSBwb2ludAorIyAgIEZpZWxkIDI6IE9yaWdpbmFsIChlcnJvbmVvdXMpIGRlY29tcG9zaXRpb24KKyMgICBGaWVsZCAzOiBDb3JyZWN0ZWQgZGVjb21wb3NpdGlvbgorIyAgIEZpZWxkIDQ6IFZlcnNpb24gb2YgVW5pY29kZSBmb3Igd2hpY2ggdGhlIGNvcnJlY3Rpb24gd2FzCisjICAgICAgICAgICAgZW50ZXJlZCBpbnRvIFVuaWNvZGVEYXRhLnR4dCwgaW4gbi5uLm4gZm9ybWF0LgorIyAgIENvbW1lbnQ6IEluZGljYXRlcyB0aGUgVW5pY29kZSBDb3JyaWdlbmR1bSB3aGljaCBkb2N1bWVudHMgCisjICAgICAgICAgICAgdGhlIGNvcnJlY3Rpb24KKyMKKyMgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBVQVggIzE1LCBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXMuCisjCitGOTUxOzk2RkI7OTY0QjszLjIuMCAjIENvcnJpZ2VuZHVtIDMKKzJGODY4OzIxMzZBOzM2RkM7NC4wLjAgIyBDb3JyaWdlbmR1bSA0CisyRjg3NDs1RjMzOzVGNTM7NC4wLjAgIyBDb3JyaWdlbmR1bSA0CisyRjkxRjs0M0FCOzI0M0FCOzQuMC4wICMgQ29ycmlnZW5kdW0gNAorMkY5NUY7N0FBRTs3QUVFOzQuMC4wICMgQ29ycmlnZW5kdW0gNAorMkY5QkY7NEQ1Nzs0NUQ3OzQuMC4wICMgQ29ycmlnZW5kdW0gNApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvTm9ybWFsaXphdGlvblRlc3QtMy4yLjAudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kYXRhL3VuaWNvZGUvTm9ybWFsaXphdGlvblRlc3QtMy4yLjAudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzODUwZjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Ob3JtYWxpemF0aW9uVGVzdC0zLjIuMC50eHQKQEAgLTAsMCArMSwxNzA0MiBAQAorIyBOb3JtYWxpemF0aW9uVGVzdC0zLjIuMC50eHQKKyMgRGF0ZTogMjAwMi0wMy0xOSwyMzozMToxOCBHTVQgW01EXQorIworIyBOb3RlOiBDb2RlIHBvaW50cyB3aG9zZSBkZWNvbXBvc2l0aW9uIGNoYW5nZWQgc2luY2UgdGhlIFVuaWNvZGUgdmVyc2lvbgorIyBmb3IgdGhpcyBOb3JtYWxpemF0aW9uVGVzdC50eHQgYXJlIGNvbW1lbnRlZCBvdXQgYW5kIGFyZSBvbmx5IHRlc3RlZCB3aXRoCisjIHRoZSBjdXJyZW50IE5vcm1hbGl6YXRpb25UZXN0LnR4dCBpbiBpY3Uvc291cmNlL2RhdGEvdW5pZGF0YS8uCisjIFNlZSBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMudHh0CisjIGFuZCBzZWFyY2ggZm9yICJOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMiIGluIHRoaXMgZmlsZS4KKyMgbWFya3VzIDIwMDNtYXIwNQorIworIyBOb3JtYWxpemF0aW9uIFRlc3QgU3VpdGUKKyMgRm9ybWF0OgorIworIyAgIENvbHVtbnMgKGMxLCBjMiwuLi4pIGFyZSBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucworIyAgIENvbW1lbnRzIGFyZSBpbmRpY2F0ZWQgd2l0aCBoYXNoIG1hcmtzCisjCisjIENPTkZPUk1BTkNFOgorIyAxLiBUaGUgZm9sbG93aW5nIGludmFyaWFudHMgbXVzdCBiZSB0cnVlIGZvciBhbGwgY29uZm9ybWFudCBpbXBsZW1lbnRhdGlvbnMKKyMKKyMgICAgTkZDCisjICAgICAgYzIgPT0gIE5GQyhjMSkgPT0gIE5GQyhjMikgPT0gIE5GQyhjMykKKyMgICAgICBjNCA9PSAgTkZDKGM0KSA9PSAgTkZDKGM1KQorIworIyAgICBORkQKKyMgICAgICBjMyA9PSAgTkZEKGMxKSA9PSAgTkZEKGMyKSA9PSAgTkZEKGMzKQorIyAgICAgIGM1ID09ICBORkQoYzQpID09ICBORkQoYzUpCisjCisjICAgIE5GS0MKKyMgICAgICBjNCA9PSBORktDKGMxKSA9PSBORktDKGMyKSA9PSBORktDKGMzKSA9PSBORktDKGM0KSA9PSBORktDKGM1KQorIworIyAgICBORktECisjICAgICAgYzUgPT0gTkZLRChjMSkgPT0gTkZLRChjMikgPT0gTkZLRChjMykgPT0gTkZLRChjNCkgPT0gTkZLRChjNSkKKyMKKyMgMi4gRm9yIGV2ZXJ5IGFzc2lnbmVkIFVuaWNvZGUgMy4xLjAgY29kZSBwb2ludCBYIHRoYXQgaXMgbm90IHNwZWNpZmljYWxseQorIyAgICBsaXN0ZWQgaW4gUGFydCAxLCB0aGUgZm9sbG93aW5nIGludmFyaWFudHMgbXVzdCBiZSB0cnVlIGZvciBhbGwgY29uZm9ybWFudAorIyAgICBpbXBsZW1lbnRhdGlvbnM6CisjCisjICAgICAgWCA9PSBORkMoWCkgPT0gTkZEKFgpID09IE5GS0MoWCkgPT0gTkZLRChYKQorIworQFBhcnQwICMgU3BlY2lmaWMgY2FzZXMKKyMKKzFFMEE7MUUwQTswMDQ0IDAzMDc7MUUwQTswMDQ0IDAzMDc7CisxRTBDOzFFMEM7MDA0NCAwMzIzOzFFMEM7MDA0NCAwMzIzOworMUUwQSAwMzIzOzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7CisxRTBDIDAzMDc7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsKKzAwNDQgMDMwNyAwMzIzOzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7CiswMDQ0IDAzMjMgMDMwNzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OworMUUwQSAwMzFCOzFFMEEgMDMxQjswMDQ0IDAzMUIgMDMwNzsxRTBBIDAzMUI7MDA0NCAwMzFCIDAzMDc7CisxRTBDIDAzMUI7MUUwQyAwMzFCOzAwNDQgMDMxQiAwMzIzOzFFMEMgMDMxQjswMDQ0IDAzMUIgMDMyMzsKKzFFMEEgMDMxQiAwMzIzOzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsKKzFFMEMgMDMxQiAwMzA3OzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsKKzAwNDQgMDMxQiAwMzA3IDAzMjM7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OworMDA0NCAwMzFCIDAzMjMgMDMwNzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7CiswMEM4OzAwQzg7MDA0NSAwMzAwOzAwQzg7MDA0NSAwMzAwOworMDExMjswMTEyOzAwNDUgMDMwNDswMTEyOzAwNDUgMDMwNDsKKzAwNDUgMDMwMDswMEM4OzAwNDUgMDMwMDswMEM4OzAwNDUgMDMwMDsKKzAwNDUgMDMwNDswMTEyOzAwNDUgMDMwNDswMTEyOzAwNDUgMDMwNDsKKzFFMTQ7MUUxNDswMDQ1IDAzMDQgMDMwMDsxRTE0OzAwNDUgMDMwNCAwMzAwOworMDExMiAwMzAwOzFFMTQ7MDA0NSAwMzA0IDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsKKzFFMTQgMDMwNDsxRTE0IDAzMDQ7MDA0NSAwMzA0IDAzMDAgMDMwNDsxRTE0IDAzMDQ7MDA0NSAwMzA0IDAzMDAgMDMwNDsKKzAwNDUgMDMwNCAwMzAwOzFFMTQ7MDA0NSAwMzA0IDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsKKzAwNDUgMDMwMCAwMzA0OzAwQzggMDMwNDswMDQ1IDAzMDAgMDMwNDswMEM4IDAzMDQ7MDA0NSAwMzAwIDAzMDQ7CiswNUI4IDA1QjkgMDVCMSAwNTkxIDA1QzMgMDVCMCAwNUFDIDA1OUY7MDVCMSAwNUI4IDA1QjkgMDU5MSAwNUMzIDA1QjAgMDVBQyAwNTlGOzA1QjEgMDVCOCAwNUI5IDA1OTEgMDVDMyAwNUIwIDA1QUMgMDU5RjswNUIxIDA1QjggMDVCOSAwNTkxIDA1QzMgMDVCMCAwNUFDIDA1OUY7MDVCMSAwNUI4IDA1QjkgMDU5MSAwNUMzIDA1QjAgMDVBQyAwNTlGOworMDU5MiAwNUI3IDA1QkMgMDVBNSAwNUIwIDA1QzAgMDVDNCAwNUFEOzA1QjAgMDVCNyAwNUJDIDA1QTUgMDU5MiAwNUMwIDA1QUQgMDVDNDswNUIwIDA1QjcgMDVCQyAwNUE1IDA1OTIgMDVDMCAwNUFEIDA1QzQ7MDVCMCAwNUI3IDA1QkMgMDVBNSAwNTkyIDA1QzAgMDVBRCAwNUM0OzA1QjAgMDVCNyAwNUJDIDA1QTUgMDU5MiAwNUMwIDA1QUQgMDVDNDsKKyMKK0BQYXJ0MSAjIENoYXJhY3RlciBieSBjaGFyYWN0ZXIgdGVzdAorIyBBbGwgY2hhcmFjdGVycyBub3QgZXhwbGljaXRseSBvY2N1cnJpbmcgaW4gYzEgb2YgUGFydCAxIGhhdmUgaWRlbnRpY2FsIE5GQywgRCwgS0MsIEtEIGZvcm1zLgorIworMDBBMDswMEEwOzAwQTA7MDAyMDswMDIwOworMDBBODswMEE4OzAwQTg7MDAyMCAwMzA4OzAwMjAgMDMwODsKKzAwQUE7MDBBQTswMEFBOzAwNjE7MDA2MTsKKzAwQUY7MDBBRjswMEFGOzAwMjAgMDMwNDswMDIwIDAzMDQ7CiswMEIyOzAwQjI7MDBCMjswMDMyOzAwMzI7CiswMEIzOzAwQjM7MDBCMzswMDMzOzAwMzM7CiswMEI0OzAwQjQ7MDBCNDswMDIwIDAzMDE7MDAyMCAwMzAxOworMDBCNTswMEI1OzAwQjU7MDNCQzswM0JDOworMDBCODswMEI4OzAwQjg7MDAyMCAwMzI3OzAwMjAgMDMyNzsKKzAwQjk7MDBCOTswMEI5OzAwMzE7MDAzMTsKKzAwQkE7MDBCQTswMEJBOzAwNkY7MDA2RjsKKzAwQkM7MDBCQzswMEJDOzAwMzEgMjA0NCAwMDM0OzAwMzEgMjA0NCAwMDM0OworMDBCRDswMEJEOzAwQkQ7MDAzMSAyMDQ0IDAwMzI7MDAzMSAyMDQ0IDAwMzI7CiswMEJFOzAwQkU7MDBCRTswMDMzIDIwNDQgMDAzNDswMDMzIDIwNDQgMDAzNDsKKzAwQzA7MDBDMDswMDQxIDAzMDA7MDBDMDswMDQxIDAzMDA7CiswMEMxOzAwQzE7MDA0MSAwMzAxOzAwQzE7MDA0MSAwMzAxOworMDBDMjswMEMyOzAwNDEgMDMwMjswMEMyOzAwNDEgMDMwMjsKKzAwQzM7MDBDMzswMDQxIDAzMDM7MDBDMzswMDQxIDAzMDM7CiswMEM0OzAwQzQ7MDA0MSAwMzA4OzAwQzQ7MDA0MSAwMzA4OworMDBDNTswMEM1OzAwNDEgMDMwQTswMEM1OzAwNDEgMDMwQTsKKzAwQzc7MDBDNzswMDQzIDAzMjc7MDBDNzswMDQzIDAzMjc7CiswMEM4OzAwQzg7MDA0NSAwMzAwOzAwQzg7MDA0NSAwMzAwOworMDBDOTswMEM5OzAwNDUgMDMwMTswMEM5OzAwNDUgMDMwMTsKKzAwQ0E7MDBDQTswMDQ1IDAzMDI7MDBDQTswMDQ1IDAzMDI7CiswMENCOzAwQ0I7MDA0NSAwMzA4OzAwQ0I7MDA0NSAwMzA4OworMDBDQzswMENDOzAwNDkgMDMwMDswMENDOzAwNDkgMDMwMDsKKzAwQ0Q7MDBDRDswMDQ5IDAzMDE7MDBDRDswMDQ5IDAzMDE7CiswMENFOzAwQ0U7MDA0OSAwMzAyOzAwQ0U7MDA0OSAwMzAyOworMDBDRjswMENGOzAwNDkgMDMwODswMENGOzAwNDkgMDMwODsKKzAwRDE7MDBEMTswMDRFIDAzMDM7MDBEMTswMDRFIDAzMDM7CiswMEQyOzAwRDI7MDA0RiAwMzAwOzAwRDI7MDA0RiAwMzAwOworMDBEMzswMEQzOzAwNEYgMDMwMTswMEQzOzAwNEYgMDMwMTsKKzAwRDQ7MDBENDswMDRGIDAzMDI7MDBENDswMDRGIDAzMDI7CiswMEQ1OzAwRDU7MDA0RiAwMzAzOzAwRDU7MDA0RiAwMzAzOworMDBENjswMEQ2OzAwNEYgMDMwODswMEQ2OzAwNEYgMDMwODsKKzAwRDk7MDBEOTswMDU1IDAzMDA7MDBEOTswMDU1IDAzMDA7CiswMERBOzAwREE7MDA1NSAwMzAxOzAwREE7MDA1NSAwMzAxOworMDBEQjswMERCOzAwNTUgMDMwMjswMERCOzAwNTUgMDMwMjsKKzAwREM7MDBEQzswMDU1IDAzMDg7MDBEQzswMDU1IDAzMDg7CiswMEREOzAwREQ7MDA1OSAwMzAxOzAwREQ7MDA1OSAwMzAxOworMDBFMDswMEUwOzAwNjEgMDMwMDswMEUwOzAwNjEgMDMwMDsKKzAwRTE7MDBFMTswMDYxIDAzMDE7MDBFMTswMDYxIDAzMDE7CiswMEUyOzAwRTI7MDA2MSAwMzAyOzAwRTI7MDA2MSAwMzAyOworMDBFMzswMEUzOzAwNjEgMDMwMzswMEUzOzAwNjEgMDMwMzsKKzAwRTQ7MDBFNDswMDYxIDAzMDg7MDBFNDswMDYxIDAzMDg7CiswMEU1OzAwRTU7MDA2MSAwMzBBOzAwRTU7MDA2MSAwMzBBOworMDBFNzswMEU3OzAwNjMgMDMyNzswMEU3OzAwNjMgMDMyNzsKKzAwRTg7MDBFODswMDY1IDAzMDA7MDBFODswMDY1IDAzMDA7CiswMEU5OzAwRTk7MDA2NSAwMzAxOzAwRTk7MDA2NSAwMzAxOworMDBFQTswMEVBOzAwNjUgMDMwMjswMEVBOzAwNjUgMDMwMjsKKzAwRUI7MDBFQjswMDY1IDAzMDg7MDBFQjswMDY1IDAzMDg7CiswMEVDOzAwRUM7MDA2OSAwMzAwOzAwRUM7MDA2OSAwMzAwOworMDBFRDswMEVEOzAwNjkgMDMwMTswMEVEOzAwNjkgMDMwMTsKKzAwRUU7MDBFRTswMDY5IDAzMDI7MDBFRTswMDY5IDAzMDI7CiswMEVGOzAwRUY7MDA2OSAwMzA4OzAwRUY7MDA2OSAwMzA4OworMDBGMTswMEYxOzAwNkUgMDMwMzswMEYxOzAwNkUgMDMwMzsKKzAwRjI7MDBGMjswMDZGIDAzMDA7MDBGMjswMDZGIDAzMDA7CiswMEYzOzAwRjM7MDA2RiAwMzAxOzAwRjM7MDA2RiAwMzAxOworMDBGNDswMEY0OzAwNkYgMDMwMjswMEY0OzAwNkYgMDMwMjsKKzAwRjU7MDBGNTswMDZGIDAzMDM7MDBGNTswMDZGIDAzMDM7CiswMEY2OzAwRjY7MDA2RiAwMzA4OzAwRjY7MDA2RiAwMzA4OworMDBGOTswMEY5OzAwNzUgMDMwMDswMEY5OzAwNzUgMDMwMDsKKzAwRkE7MDBGQTswMDc1IDAzMDE7MDBGQTswMDc1IDAzMDE7CiswMEZCOzAwRkI7MDA3NSAwMzAyOzAwRkI7MDA3NSAwMzAyOworMDBGQzswMEZDOzAwNzUgMDMwODswMEZDOzAwNzUgMDMwODsKKzAwRkQ7MDBGRDswMDc5IDAzMDE7MDBGRDswMDc5IDAzMDE7CiswMEZGOzAwRkY7MDA3OSAwMzA4OzAwRkY7MDA3OSAwMzA4OworMDEwMDswMTAwOzAwNDEgMDMwNDswMTAwOzAwNDEgMDMwNDsKKzAxMDE7MDEwMTswMDYxIDAzMDQ7MDEwMTswMDYxIDAzMDQ7CiswMTAyOzAxMDI7MDA0MSAwMzA2OzAxMDI7MDA0MSAwMzA2OworMDEwMzswMTAzOzAwNjEgMDMwNjswMTAzOzAwNjEgMDMwNjsKKzAxMDQ7MDEwNDswMDQxIDAzMjg7MDEwNDswMDQxIDAzMjg7CiswMTA1OzAxMDU7MDA2MSAwMzI4OzAxMDU7MDA2MSAwMzI4OworMDEwNjswMTA2OzAwNDMgMDMwMTswMTA2OzAwNDMgMDMwMTsKKzAxMDc7MDEwNzswMDYzIDAzMDE7MDEwNzswMDYzIDAzMDE7CiswMTA4OzAxMDg7MDA0MyAwMzAyOzAxMDg7MDA0MyAwMzAyOworMDEwOTswMTA5OzAwNjMgMDMwMjswMTA5OzAwNjMgMDMwMjsKKzAxMEE7MDEwQTswMDQzIDAzMDc7MDEwQTswMDQzIDAzMDc7CiswMTBCOzAxMEI7MDA2MyAwMzA3OzAxMEI7MDA2MyAwMzA3OworMDEwQzswMTBDOzAwNDMgMDMwQzswMTBDOzAwNDMgMDMwQzsKKzAxMEQ7MDEwRDswMDYzIDAzMEM7MDEwRDswMDYzIDAzMEM7CiswMTBFOzAxMEU7MDA0NCAwMzBDOzAxMEU7MDA0NCAwMzBDOworMDEwRjswMTBGOzAwNjQgMDMwQzswMTBGOzAwNjQgMDMwQzsKKzAxMTI7MDExMjswMDQ1IDAzMDQ7MDExMjswMDQ1IDAzMDQ7CiswMTEzOzAxMTM7MDA2NSAwMzA0OzAxMTM7MDA2NSAwMzA0OworMDExNDswMTE0OzAwNDUgMDMwNjswMTE0OzAwNDUgMDMwNjsKKzAxMTU7MDExNTswMDY1IDAzMDY7MDExNTswMDY1IDAzMDY7CiswMTE2OzAxMTY7MDA0NSAwMzA3OzAxMTY7MDA0NSAwMzA3OworMDExNzswMTE3OzAwNjUgMDMwNzswMTE3OzAwNjUgMDMwNzsKKzAxMTg7MDExODswMDQ1IDAzMjg7MDExODswMDQ1IDAzMjg7CiswMTE5OzAxMTk7MDA2NSAwMzI4OzAxMTk7MDA2NSAwMzI4OworMDExQTswMTFBOzAwNDUgMDMwQzswMTFBOzAwNDUgMDMwQzsKKzAxMUI7MDExQjswMDY1IDAzMEM7MDExQjswMDY1IDAzMEM7CiswMTFDOzAxMUM7MDA0NyAwMzAyOzAxMUM7MDA0NyAwMzAyOworMDExRDswMTFEOzAwNjcgMDMwMjswMTFEOzAwNjcgMDMwMjsKKzAxMUU7MDExRTswMDQ3IDAzMDY7MDExRTswMDQ3IDAzMDY7CiswMTFGOzAxMUY7MDA2NyAwMzA2OzAxMUY7MDA2NyAwMzA2OworMDEyMDswMTIwOzAwNDcgMDMwNzswMTIwOzAwNDcgMDMwNzsKKzAxMjE7MDEyMTswMDY3IDAzMDc7MDEyMTswMDY3IDAzMDc7CiswMTIyOzAxMjI7MDA0NyAwMzI3OzAxMjI7MDA0NyAwMzI3OworMDEyMzswMTIzOzAwNjcgMDMyNzswMTIzOzAwNjcgMDMyNzsKKzAxMjQ7MDEyNDswMDQ4IDAzMDI7MDEyNDswMDQ4IDAzMDI7CiswMTI1OzAxMjU7MDA2OCAwMzAyOzAxMjU7MDA2OCAwMzAyOworMDEyODswMTI4OzAwNDkgMDMwMzswMTI4OzAwNDkgMDMwMzsKKzAxMjk7MDEyOTswMDY5IDAzMDM7MDEyOTswMDY5IDAzMDM7CiswMTJBOzAxMkE7MDA0OSAwMzA0OzAxMkE7MDA0OSAwMzA0OworMDEyQjswMTJCOzAwNjkgMDMwNDswMTJCOzAwNjkgMDMwNDsKKzAxMkM7MDEyQzswMDQ5IDAzMDY7MDEyQzswMDQ5IDAzMDY7CiswMTJEOzAxMkQ7MDA2OSAwMzA2OzAxMkQ7MDA2OSAwMzA2OworMDEyRTswMTJFOzAwNDkgMDMyODswMTJFOzAwNDkgMDMyODsKKzAxMkY7MDEyRjswMDY5IDAzMjg7MDEyRjswMDY5IDAzMjg7CiswMTMwOzAxMzA7MDA0OSAwMzA3OzAxMzA7MDA0OSAwMzA3OworMDEzMjswMTMyOzAxMzI7MDA0OSAwMDRBOzAwNDkgMDA0QTsKKzAxMzM7MDEzMzswMTMzOzAwNjkgMDA2QTswMDY5IDAwNkE7CiswMTM0OzAxMzQ7MDA0QSAwMzAyOzAxMzQ7MDA0QSAwMzAyOworMDEzNTswMTM1OzAwNkEgMDMwMjswMTM1OzAwNkEgMDMwMjsKKzAxMzY7MDEzNjswMDRCIDAzMjc7MDEzNjswMDRCIDAzMjc7CiswMTM3OzAxMzc7MDA2QiAwMzI3OzAxMzc7MDA2QiAwMzI3OworMDEzOTswMTM5OzAwNEMgMDMwMTswMTM5OzAwNEMgMDMwMTsKKzAxM0E7MDEzQTswMDZDIDAzMDE7MDEzQTswMDZDIDAzMDE7CiswMTNCOzAxM0I7MDA0QyAwMzI3OzAxM0I7MDA0QyAwMzI3OworMDEzQzswMTNDOzAwNkMgMDMyNzswMTNDOzAwNkMgMDMyNzsKKzAxM0Q7MDEzRDswMDRDIDAzMEM7MDEzRDswMDRDIDAzMEM7CiswMTNFOzAxM0U7MDA2QyAwMzBDOzAxM0U7MDA2QyAwMzBDOworMDEzRjswMTNGOzAxM0Y7MDA0QyAwMEI3OzAwNEMgMDBCNzsKKzAxNDA7MDE0MDswMTQwOzAwNkMgMDBCNzswMDZDIDAwQjc7CiswMTQzOzAxNDM7MDA0RSAwMzAxOzAxNDM7MDA0RSAwMzAxOworMDE0NDswMTQ0OzAwNkUgMDMwMTswMTQ0OzAwNkUgMDMwMTsKKzAxNDU7MDE0NTswMDRFIDAzMjc7MDE0NTswMDRFIDAzMjc7CiswMTQ2OzAxNDY7MDA2RSAwMzI3OzAxNDY7MDA2RSAwMzI3OworMDE0NzswMTQ3OzAwNEUgMDMwQzswMTQ3OzAwNEUgMDMwQzsKKzAxNDg7MDE0ODswMDZFIDAzMEM7MDE0ODswMDZFIDAzMEM7CiswMTQ5OzAxNDk7MDE0OTswMkJDIDAwNkU7MDJCQyAwMDZFOworMDE0QzswMTRDOzAwNEYgMDMwNDswMTRDOzAwNEYgMDMwNDsKKzAxNEQ7MDE0RDswMDZGIDAzMDQ7MDE0RDswMDZGIDAzMDQ7CiswMTRFOzAxNEU7MDA0RiAwMzA2OzAxNEU7MDA0RiAwMzA2OworMDE0RjswMTRGOzAwNkYgMDMwNjswMTRGOzAwNkYgMDMwNjsKKzAxNTA7MDE1MDswMDRGIDAzMEI7MDE1MDswMDRGIDAzMEI7CiswMTUxOzAxNTE7MDA2RiAwMzBCOzAxNTE7MDA2RiAwMzBCOworMDE1NDswMTU0OzAwNTIgMDMwMTswMTU0OzAwNTIgMDMwMTsKKzAxNTU7MDE1NTswMDcyIDAzMDE7MDE1NTswMDcyIDAzMDE7CiswMTU2OzAxNTY7MDA1MiAwMzI3OzAxNTY7MDA1MiAwMzI3OworMDE1NzswMTU3OzAwNzIgMDMyNzswMTU3OzAwNzIgMDMyNzsKKzAxNTg7MDE1ODswMDUyIDAzMEM7MDE1ODswMDUyIDAzMEM7CiswMTU5OzAxNTk7MDA3MiAwMzBDOzAxNTk7MDA3MiAwMzBDOworMDE1QTswMTVBOzAwNTMgMDMwMTswMTVBOzAwNTMgMDMwMTsKKzAxNUI7MDE1QjswMDczIDAzMDE7MDE1QjswMDczIDAzMDE7CiswMTVDOzAxNUM7MDA1MyAwMzAyOzAxNUM7MDA1MyAwMzAyOworMDE1RDswMTVEOzAwNzMgMDMwMjswMTVEOzAwNzMgMDMwMjsKKzAxNUU7MDE1RTswMDUzIDAzMjc7MDE1RTswMDUzIDAzMjc7CiswMTVGOzAxNUY7MDA3MyAwMzI3OzAxNUY7MDA3MyAwMzI3OworMDE2MDswMTYwOzAwNTMgMDMwQzswMTYwOzAwNTMgMDMwQzsKKzAxNjE7MDE2MTswMDczIDAzMEM7MDE2MTswMDczIDAzMEM7CiswMTYyOzAxNjI7MDA1NCAwMzI3OzAxNjI7MDA1NCAwMzI3OworMDE2MzswMTYzOzAwNzQgMDMyNzswMTYzOzAwNzQgMDMyNzsKKzAxNjQ7MDE2NDswMDU0IDAzMEM7MDE2NDswMDU0IDAzMEM7CiswMTY1OzAxNjU7MDA3NCAwMzBDOzAxNjU7MDA3NCAwMzBDOworMDE2ODswMTY4OzAwNTUgMDMwMzswMTY4OzAwNTUgMDMwMzsKKzAxNjk7MDE2OTswMDc1IDAzMDM7MDE2OTswMDc1IDAzMDM7CiswMTZBOzAxNkE7MDA1NSAwMzA0OzAxNkE7MDA1NSAwMzA0OworMDE2QjswMTZCOzAwNzUgMDMwNDswMTZCOzAwNzUgMDMwNDsKKzAxNkM7MDE2QzswMDU1IDAzMDY7MDE2QzswMDU1IDAzMDY7CiswMTZEOzAxNkQ7MDA3NSAwMzA2OzAxNkQ7MDA3NSAwMzA2OworMDE2RTswMTZFOzAwNTUgMDMwQTswMTZFOzAwNTUgMDMwQTsKKzAxNkY7MDE2RjswMDc1IDAzMEE7MDE2RjswMDc1IDAzMEE7CiswMTcwOzAxNzA7MDA1NSAwMzBCOzAxNzA7MDA1NSAwMzBCOworMDE3MTswMTcxOzAwNzUgMDMwQjswMTcxOzAwNzUgMDMwQjsKKzAxNzI7MDE3MjswMDU1IDAzMjg7MDE3MjswMDU1IDAzMjg7CiswMTczOzAxNzM7MDA3NSAwMzI4OzAxNzM7MDA3NSAwMzI4OworMDE3NDswMTc0OzAwNTcgMDMwMjswMTc0OzAwNTcgMDMwMjsKKzAxNzU7MDE3NTswMDc3IDAzMDI7MDE3NTswMDc3IDAzMDI7CiswMTc2OzAxNzY7MDA1OSAwMzAyOzAxNzY7MDA1OSAwMzAyOworMDE3NzswMTc3OzAwNzkgMDMwMjswMTc3OzAwNzkgMDMwMjsKKzAxNzg7MDE3ODswMDU5IDAzMDg7MDE3ODswMDU5IDAzMDg7CiswMTc5OzAxNzk7MDA1QSAwMzAxOzAxNzk7MDA1QSAwMzAxOworMDE3QTswMTdBOzAwN0EgMDMwMTswMTdBOzAwN0EgMDMwMTsKKzAxN0I7MDE3QjswMDVBIDAzMDc7MDE3QjswMDVBIDAzMDc7CiswMTdDOzAxN0M7MDA3QSAwMzA3OzAxN0M7MDA3QSAwMzA3OworMDE3RDswMTdEOzAwNUEgMDMwQzswMTdEOzAwNUEgMDMwQzsKKzAxN0U7MDE3RTswMDdBIDAzMEM7MDE3RTswMDdBIDAzMEM7CiswMTdGOzAxN0Y7MDE3RjswMDczOzAwNzM7CiswMUEwOzAxQTA7MDA0RiAwMzFCOzAxQTA7MDA0RiAwMzFCOworMDFBMTswMUExOzAwNkYgMDMxQjswMUExOzAwNkYgMDMxQjsKKzAxQUY7MDFBRjswMDU1IDAzMUI7MDFBRjswMDU1IDAzMUI7CiswMUIwOzAxQjA7MDA3NSAwMzFCOzAxQjA7MDA3NSAwMzFCOworMDFDNDswMUM0OzAxQzQ7MDA0NCAwMTdEOzAwNDQgMDA1QSAwMzBDOworMDFDNTswMUM1OzAxQzU7MDA0NCAwMTdFOzAwNDQgMDA3QSAwMzBDOworMDFDNjswMUM2OzAxQzY7MDA2NCAwMTdFOzAwNjQgMDA3QSAwMzBDOworMDFDNzswMUM3OzAxQzc7MDA0QyAwMDRBOzAwNEMgMDA0QTsKKzAxQzg7MDFDODswMUM4OzAwNEMgMDA2QTswMDRDIDAwNkE7CiswMUM5OzAxQzk7MDFDOTswMDZDIDAwNkE7MDA2QyAwMDZBOworMDFDQTswMUNBOzAxQ0E7MDA0RSAwMDRBOzAwNEUgMDA0QTsKKzAxQ0I7MDFDQjswMUNCOzAwNEUgMDA2QTswMDRFIDAwNkE7CiswMUNDOzAxQ0M7MDFDQzswMDZFIDAwNkE7MDA2RSAwMDZBOworMDFDRDswMUNEOzAwNDEgMDMwQzswMUNEOzAwNDEgMDMwQzsKKzAxQ0U7MDFDRTswMDYxIDAzMEM7MDFDRTswMDYxIDAzMEM7CiswMUNGOzAxQ0Y7MDA0OSAwMzBDOzAxQ0Y7MDA0OSAwMzBDOworMDFEMDswMUQwOzAwNjkgMDMwQzswMUQwOzAwNjkgMDMwQzsKKzAxRDE7MDFEMTswMDRGIDAzMEM7MDFEMTswMDRGIDAzMEM7CiswMUQyOzAxRDI7MDA2RiAwMzBDOzAxRDI7MDA2RiAwMzBDOworMDFEMzswMUQzOzAwNTUgMDMwQzswMUQzOzAwNTUgMDMwQzsKKzAxRDQ7MDFENDswMDc1IDAzMEM7MDFENDswMDc1IDAzMEM7CiswMUQ1OzAxRDU7MDA1NSAwMzA4IDAzMDQ7MDFENTswMDU1IDAzMDggMDMwNDsKKzAxRDY7MDFENjswMDc1IDAzMDggMDMwNDswMUQ2OzAwNzUgMDMwOCAwMzA0OworMDFENzswMUQ3OzAwNTUgMDMwOCAwMzAxOzAxRDc7MDA1NSAwMzA4IDAzMDE7CiswMUQ4OzAxRDg7MDA3NSAwMzA4IDAzMDE7MDFEODswMDc1IDAzMDggMDMwMTsKKzAxRDk7MDFEOTswMDU1IDAzMDggMDMwQzswMUQ5OzAwNTUgMDMwOCAwMzBDOworMDFEQTswMURBOzAwNzUgMDMwOCAwMzBDOzAxREE7MDA3NSAwMzA4IDAzMEM7CiswMURCOzAxREI7MDA1NSAwMzA4IDAzMDA7MDFEQjswMDU1IDAzMDggMDMwMDsKKzAxREM7MDFEQzswMDc1IDAzMDggMDMwMDswMURDOzAwNzUgMDMwOCAwMzAwOworMDFERTswMURFOzAwNDEgMDMwOCAwMzA0OzAxREU7MDA0MSAwMzA4IDAzMDQ7CiswMURGOzAxREY7MDA2MSAwMzA4IDAzMDQ7MDFERjswMDYxIDAzMDggMDMwNDsKKzAxRTA7MDFFMDswMDQxIDAzMDcgMDMwNDswMUUwOzAwNDEgMDMwNyAwMzA0OworMDFFMTswMUUxOzAwNjEgMDMwNyAwMzA0OzAxRTE7MDA2MSAwMzA3IDAzMDQ7CiswMUUyOzAxRTI7MDBDNiAwMzA0OzAxRTI7MDBDNiAwMzA0OworMDFFMzswMUUzOzAwRTYgMDMwNDswMUUzOzAwRTYgMDMwNDsKKzAxRTY7MDFFNjswMDQ3IDAzMEM7MDFFNjswMDQ3IDAzMEM7CiswMUU3OzAxRTc7MDA2NyAwMzBDOzAxRTc7MDA2NyAwMzBDOworMDFFODswMUU4OzAwNEIgMDMwQzswMUU4OzAwNEIgMDMwQzsKKzAxRTk7MDFFOTswMDZCIDAzMEM7MDFFOTswMDZCIDAzMEM7CiswMUVBOzAxRUE7MDA0RiAwMzI4OzAxRUE7MDA0RiAwMzI4OworMDFFQjswMUVCOzAwNkYgMDMyODswMUVCOzAwNkYgMDMyODsKKzAxRUM7MDFFQzswMDRGIDAzMjggMDMwNDswMUVDOzAwNEYgMDMyOCAwMzA0OworMDFFRDswMUVEOzAwNkYgMDMyOCAwMzA0OzAxRUQ7MDA2RiAwMzI4IDAzMDQ7CiswMUVFOzAxRUU7MDFCNyAwMzBDOzAxRUU7MDFCNyAwMzBDOworMDFFRjswMUVGOzAyOTIgMDMwQzswMUVGOzAyOTIgMDMwQzsKKzAxRjA7MDFGMDswMDZBIDAzMEM7MDFGMDswMDZBIDAzMEM7CiswMUYxOzAxRjE7MDFGMTswMDQ0IDAwNUE7MDA0NCAwMDVBOworMDFGMjswMUYyOzAxRjI7MDA0NCAwMDdBOzAwNDQgMDA3QTsKKzAxRjM7MDFGMzswMUYzOzAwNjQgMDA3QTswMDY0IDAwN0E7CiswMUY0OzAxRjQ7MDA0NyAwMzAxOzAxRjQ7MDA0NyAwMzAxOworMDFGNTswMUY1OzAwNjcgMDMwMTswMUY1OzAwNjcgMDMwMTsKKzAxRjg7MDFGODswMDRFIDAzMDA7MDFGODswMDRFIDAzMDA7CiswMUY5OzAxRjk7MDA2RSAwMzAwOzAxRjk7MDA2RSAwMzAwOworMDFGQTswMUZBOzAwNDEgMDMwQSAwMzAxOzAxRkE7MDA0MSAwMzBBIDAzMDE7CiswMUZCOzAxRkI7MDA2MSAwMzBBIDAzMDE7MDFGQjswMDYxIDAzMEEgMDMwMTsKKzAxRkM7MDFGQzswMEM2IDAzMDE7MDFGQzswMEM2IDAzMDE7CiswMUZEOzAxRkQ7MDBFNiAwMzAxOzAxRkQ7MDBFNiAwMzAxOworMDFGRTswMUZFOzAwRDggMDMwMTswMUZFOzAwRDggMDMwMTsKKzAxRkY7MDFGRjswMEY4IDAzMDE7MDFGRjswMEY4IDAzMDE7CiswMjAwOzAyMDA7MDA0MSAwMzBGOzAyMDA7MDA0MSAwMzBGOworMDIwMTswMjAxOzAwNjEgMDMwRjswMjAxOzAwNjEgMDMwRjsKKzAyMDI7MDIwMjswMDQxIDAzMTE7MDIwMjswMDQxIDAzMTE7CiswMjAzOzAyMDM7MDA2MSAwMzExOzAyMDM7MDA2MSAwMzExOworMDIwNDswMjA0OzAwNDUgMDMwRjswMjA0OzAwNDUgMDMwRjsKKzAyMDU7MDIwNTswMDY1IDAzMEY7MDIwNTswMDY1IDAzMEY7CiswMjA2OzAyMDY7MDA0NSAwMzExOzAyMDY7MDA0NSAwMzExOworMDIwNzswMjA3OzAwNjUgMDMxMTswMjA3OzAwNjUgMDMxMTsKKzAyMDg7MDIwODswMDQ5IDAzMEY7MDIwODswMDQ5IDAzMEY7CiswMjA5OzAyMDk7MDA2OSAwMzBGOzAyMDk7MDA2OSAwMzBGOworMDIwQTswMjBBOzAwNDkgMDMxMTswMjBBOzAwNDkgMDMxMTsKKzAyMEI7MDIwQjswMDY5IDAzMTE7MDIwQjswMDY5IDAzMTE7CiswMjBDOzAyMEM7MDA0RiAwMzBGOzAyMEM7MDA0RiAwMzBGOworMDIwRDswMjBEOzAwNkYgMDMwRjswMjBEOzAwNkYgMDMwRjsKKzAyMEU7MDIwRTswMDRGIDAzMTE7MDIwRTswMDRGIDAzMTE7CiswMjBGOzAyMEY7MDA2RiAwMzExOzAyMEY7MDA2RiAwMzExOworMDIxMDswMjEwOzAwNTIgMDMwRjswMjEwOzAwNTIgMDMwRjsKKzAyMTE7MDIxMTswMDcyIDAzMEY7MDIxMTswMDcyIDAzMEY7CiswMjEyOzAyMTI7MDA1MiAwMzExOzAyMTI7MDA1MiAwMzExOworMDIxMzswMjEzOzAwNzIgMDMxMTswMjEzOzAwNzIgMDMxMTsKKzAyMTQ7MDIxNDswMDU1IDAzMEY7MDIxNDswMDU1IDAzMEY7CiswMjE1OzAyMTU7MDA3NSAwMzBGOzAyMTU7MDA3NSAwMzBGOworMDIxNjswMjE2OzAwNTUgMDMxMTswMjE2OzAwNTUgMDMxMTsKKzAyMTc7MDIxNzswMDc1IDAzMTE7MDIxNzswMDc1IDAzMTE7CiswMjE4OzAyMTg7MDA1MyAwMzI2OzAyMTg7MDA1MyAwMzI2OworMDIxOTswMjE5OzAwNzMgMDMyNjswMjE5OzAwNzMgMDMyNjsKKzAyMUE7MDIxQTswMDU0IDAzMjY7MDIxQTswMDU0IDAzMjY7CiswMjFCOzAyMUI7MDA3NCAwMzI2OzAyMUI7MDA3NCAwMzI2OworMDIxRTswMjFFOzAwNDggMDMwQzswMjFFOzAwNDggMDMwQzsKKzAyMUY7MDIxRjswMDY4IDAzMEM7MDIxRjswMDY4IDAzMEM7CiswMjI2OzAyMjY7MDA0MSAwMzA3OzAyMjY7MDA0MSAwMzA3OworMDIyNzswMjI3OzAwNjEgMDMwNzswMjI3OzAwNjEgMDMwNzsKKzAyMjg7MDIyODswMDQ1IDAzMjc7MDIyODswMDQ1IDAzMjc7CiswMjI5OzAyMjk7MDA2NSAwMzI3OzAyMjk7MDA2NSAwMzI3OworMDIyQTswMjJBOzAwNEYgMDMwOCAwMzA0OzAyMkE7MDA0RiAwMzA4IDAzMDQ7CiswMjJCOzAyMkI7MDA2RiAwMzA4IDAzMDQ7MDIyQjswMDZGIDAzMDggMDMwNDsKKzAyMkM7MDIyQzswMDRGIDAzMDMgMDMwNDswMjJDOzAwNEYgMDMwMyAwMzA0OworMDIyRDswMjJEOzAwNkYgMDMwMyAwMzA0OzAyMkQ7MDA2RiAwMzAzIDAzMDQ7CiswMjJFOzAyMkU7MDA0RiAwMzA3OzAyMkU7MDA0RiAwMzA3OworMDIyRjswMjJGOzAwNkYgMDMwNzswMjJGOzAwNkYgMDMwNzsKKzAyMzA7MDIzMDswMDRGIDAzMDcgMDMwNDswMjMwOzAwNEYgMDMwNyAwMzA0OworMDIzMTswMjMxOzAwNkYgMDMwNyAwMzA0OzAyMzE7MDA2RiAwMzA3IDAzMDQ7CiswMjMyOzAyMzI7MDA1OSAwMzA0OzAyMzI7MDA1OSAwMzA0OworMDIzMzswMjMzOzAwNzkgMDMwNDswMjMzOzAwNzkgMDMwNDsKKzAyQjA7MDJCMDswMkIwOzAwNjg7MDA2ODsKKzAyQjE7MDJCMTswMkIxOzAyNjY7MDI2NjsKKzAyQjI7MDJCMjswMkIyOzAwNkE7MDA2QTsKKzAyQjM7MDJCMzswMkIzOzAwNzI7MDA3MjsKKzAyQjQ7MDJCNDswMkI0OzAyNzk7MDI3OTsKKzAyQjU7MDJCNTswMkI1OzAyN0I7MDI3QjsKKzAyQjY7MDJCNjswMkI2OzAyODE7MDI4MTsKKzAyQjc7MDJCNzswMkI3OzAwNzc7MDA3NzsKKzAyQjg7MDJCODswMkI4OzAwNzk7MDA3OTsKKzAyRDg7MDJEODswMkQ4OzAwMjAgMDMwNjswMDIwIDAzMDY7CiswMkQ5OzAyRDk7MDJEOTswMDIwIDAzMDc7MDAyMCAwMzA3OworMDJEQTswMkRBOzAyREE7MDAyMCAwMzBBOzAwMjAgMDMwQTsKKzAyREI7MDJEQjswMkRCOzAwMjAgMDMyODswMDIwIDAzMjg7CiswMkRDOzAyREM7MDJEQzswMDIwIDAzMDM7MDAyMCAwMzAzOworMDJERDswMkREOzAyREQ7MDAyMCAwMzBCOzAwMjAgMDMwQjsKKzAyRTA7MDJFMDswMkUwOzAyNjM7MDI2MzsKKzAyRTE7MDJFMTswMkUxOzAwNkM7MDA2QzsKKzAyRTI7MDJFMjswMkUyOzAwNzM7MDA3MzsKKzAyRTM7MDJFMzswMkUzOzAwNzg7MDA3ODsKKzAyRTQ7MDJFNDswMkU0OzAyOTU7MDI5NTsKKzAzNDA7MDMwMDswMzAwOzAzMDA7MDMwMDsKKzAzNDE7MDMwMTswMzAxOzAzMDE7MDMwMTsKKzAzNDM7MDMxMzswMzEzOzAzMTM7MDMxMzsKKzAzNDQ7MDMwOCAwMzAxOzAzMDggMDMwMTswMzA4IDAzMDE7MDMwOCAwMzAxOworMDM3NDswMkI5OzAyQjk7MDJCOTswMkI5OworMDM3QTswMzdBOzAzN0E7MDAyMCAwMzQ1OzAwMjAgMDM0NTsKKzAzN0U7MDAzQjswMDNCOzAwM0I7MDAzQjsKKzAzODQ7MDM4NDswMzg0OzAwMjAgMDMwMTswMDIwIDAzMDE7CiswMzg1OzAzODU7MDBBOCAwMzAxOzAwMjAgMDMwOCAwMzAxOzAwMjAgMDMwOCAwMzAxOworMDM4NjswMzg2OzAzOTEgMDMwMTswMzg2OzAzOTEgMDMwMTsKKzAzODc7MDBCNzswMEI3OzAwQjc7MDBCNzsKKzAzODg7MDM4ODswMzk1IDAzMDE7MDM4ODswMzk1IDAzMDE7CiswMzg5OzAzODk7MDM5NyAwMzAxOzAzODk7MDM5NyAwMzAxOworMDM4QTswMzhBOzAzOTkgMDMwMTswMzhBOzAzOTkgMDMwMTsKKzAzOEM7MDM4QzswMzlGIDAzMDE7MDM4QzswMzlGIDAzMDE7CiswMzhFOzAzOEU7MDNBNSAwMzAxOzAzOEU7MDNBNSAwMzAxOworMDM4RjswMzhGOzAzQTkgMDMwMTswMzhGOzAzQTkgMDMwMTsKKzAzOTA7MDM5MDswM0I5IDAzMDggMDMwMTswMzkwOzAzQjkgMDMwOCAwMzAxOworMDNBQTswM0FBOzAzOTkgMDMwODswM0FBOzAzOTkgMDMwODsKKzAzQUI7MDNBQjswM0E1IDAzMDg7MDNBQjswM0E1IDAzMDg7CiswM0FDOzAzQUM7MDNCMSAwMzAxOzAzQUM7MDNCMSAwMzAxOworMDNBRDswM0FEOzAzQjUgMDMwMTswM0FEOzAzQjUgMDMwMTsKKzAzQUU7MDNBRTswM0I3IDAzMDE7MDNBRTswM0I3IDAzMDE7CiswM0FGOzAzQUY7MDNCOSAwMzAxOzAzQUY7MDNCOSAwMzAxOworMDNCMDswM0IwOzAzQzUgMDMwOCAwMzAxOzAzQjA7MDNDNSAwMzA4IDAzMDE7CiswM0NBOzAzQ0E7MDNCOSAwMzA4OzAzQ0E7MDNCOSAwMzA4OworMDNDQjswM0NCOzAzQzUgMDMwODswM0NCOzAzQzUgMDMwODsKKzAzQ0M7MDNDQzswM0JGIDAzMDE7MDNDQzswM0JGIDAzMDE7CiswM0NEOzAzQ0Q7MDNDNSAwMzAxOzAzQ0Q7MDNDNSAwMzAxOworMDNDRTswM0NFOzAzQzkgMDMwMTswM0NFOzAzQzkgMDMwMTsKKzAzRDA7MDNEMDswM0QwOzAzQjI7MDNCMjsKKzAzRDE7MDNEMTswM0QxOzAzQjg7MDNCODsKKzAzRDI7MDNEMjswM0QyOzAzQTU7MDNBNTsKKzAzRDM7MDNEMzswM0QyIDAzMDE7MDM4RTswM0E1IDAzMDE7CiswM0Q0OzAzRDQ7MDNEMiAwMzA4OzAzQUI7MDNBNSAwMzA4OworMDNENTswM0Q1OzAzRDU7MDNDNjswM0M2OworMDNENjswM0Q2OzAzRDY7MDNDMDswM0MwOworMDNGMDswM0YwOzAzRjA7MDNCQTswM0JBOworMDNGMTswM0YxOzAzRjE7MDNDMTswM0MxOworMDNGMjswM0YyOzAzRjI7MDNDMjswM0MyOworMDNGNDswM0Y0OzAzRjQ7MDM5ODswMzk4OworMDNGNTswM0Y1OzAzRjU7MDNCNTswM0I1OworMDQwMDswNDAwOzA0MTUgMDMwMDswNDAwOzA0MTUgMDMwMDsKKzA0MDE7MDQwMTswNDE1IDAzMDg7MDQwMTswNDE1IDAzMDg7CiswNDAzOzA0MDM7MDQxMyAwMzAxOzA0MDM7MDQxMyAwMzAxOworMDQwNzswNDA3OzA0MDYgMDMwODswNDA3OzA0MDYgMDMwODsKKzA0MEM7MDQwQzswNDFBIDAzMDE7MDQwQzswNDFBIDAzMDE7CiswNDBEOzA0MEQ7MDQxOCAwMzAwOzA0MEQ7MDQxOCAwMzAwOworMDQwRTswNDBFOzA0MjMgMDMwNjswNDBFOzA0MjMgMDMwNjsKKzA0MTk7MDQxOTswNDE4IDAzMDY7MDQxOTswNDE4IDAzMDY7CiswNDM5OzA0Mzk7MDQzOCAwMzA2OzA0Mzk7MDQzOCAwMzA2OworMDQ1MDswNDUwOzA0MzUgMDMwMDswNDUwOzA0MzUgMDMwMDsKKzA0NTE7MDQ1MTswNDM1IDAzMDg7MDQ1MTswNDM1IDAzMDg7CiswNDUzOzA0NTM7MDQzMyAwMzAxOzA0NTM7MDQzMyAwMzAxOworMDQ1NzswNDU3OzA0NTYgMDMwODswNDU3OzA0NTYgMDMwODsKKzA0NUM7MDQ1QzswNDNBIDAzMDE7MDQ1QzswNDNBIDAzMDE7CiswNDVEOzA0NUQ7MDQzOCAwMzAwOzA0NUQ7MDQzOCAwMzAwOworMDQ1RTswNDVFOzA0NDMgMDMwNjswNDVFOzA0NDMgMDMwNjsKKzA0NzY7MDQ3NjswNDc0IDAzMEY7MDQ3NjswNDc0IDAzMEY7CiswNDc3OzA0Nzc7MDQ3NSAwMzBGOzA0Nzc7MDQ3NSAwMzBGOworMDRDMTswNEMxOzA0MTYgMDMwNjswNEMxOzA0MTYgMDMwNjsKKzA0QzI7MDRDMjswNDM2IDAzMDY7MDRDMjswNDM2IDAzMDY7CiswNEQwOzA0RDA7MDQxMCAwMzA2OzA0RDA7MDQxMCAwMzA2OworMDREMTswNEQxOzA0MzAgMDMwNjswNEQxOzA0MzAgMDMwNjsKKzA0RDI7MDREMjswNDEwIDAzMDg7MDREMjswNDEwIDAzMDg7CiswNEQzOzA0RDM7MDQzMCAwMzA4OzA0RDM7MDQzMCAwMzA4OworMDRENjswNEQ2OzA0MTUgMDMwNjswNEQ2OzA0MTUgMDMwNjsKKzA0RDc7MDRENzswNDM1IDAzMDY7MDRENzswNDM1IDAzMDY7CiswNERBOzA0REE7MDREOCAwMzA4OzA0REE7MDREOCAwMzA4OworMDREQjswNERCOzA0RDkgMDMwODswNERCOzA0RDkgMDMwODsKKzA0REM7MDREQzswNDE2IDAzMDg7MDREQzswNDE2IDAzMDg7CiswNEREOzA0REQ7MDQzNiAwMzA4OzA0REQ7MDQzNiAwMzA4OworMDRERTswNERFOzA0MTcgMDMwODswNERFOzA0MTcgMDMwODsKKzA0REY7MDRERjswNDM3IDAzMDg7MDRERjswNDM3IDAzMDg7CiswNEUyOzA0RTI7MDQxOCAwMzA0OzA0RTI7MDQxOCAwMzA0OworMDRFMzswNEUzOzA0MzggMDMwNDswNEUzOzA0MzggMDMwNDsKKzA0RTQ7MDRFNDswNDE4IDAzMDg7MDRFNDswNDE4IDAzMDg7CiswNEU1OzA0RTU7MDQzOCAwMzA4OzA0RTU7MDQzOCAwMzA4OworMDRFNjswNEU2OzA0MUUgMDMwODswNEU2OzA0MUUgMDMwODsKKzA0RTc7MDRFNzswNDNFIDAzMDg7MDRFNzswNDNFIDAzMDg7CiswNEVBOzA0RUE7MDRFOCAwMzA4OzA0RUE7MDRFOCAwMzA4OworMDRFQjswNEVCOzA0RTkgMDMwODswNEVCOzA0RTkgMDMwODsKKzA0RUM7MDRFQzswNDJEIDAzMDg7MDRFQzswNDJEIDAzMDg7CiswNEVEOzA0RUQ7MDQ0RCAwMzA4OzA0RUQ7MDQ0RCAwMzA4OworMDRFRTswNEVFOzA0MjMgMDMwNDswNEVFOzA0MjMgMDMwNDsKKzA0RUY7MDRFRjswNDQzIDAzMDQ7MDRFRjswNDQzIDAzMDQ7CiswNEYwOzA0RjA7MDQyMyAwMzA4OzA0RjA7MDQyMyAwMzA4OworMDRGMTswNEYxOzA0NDMgMDMwODswNEYxOzA0NDMgMDMwODsKKzA0RjI7MDRGMjswNDIzIDAzMEI7MDRGMjswNDIzIDAzMEI7CiswNEYzOzA0RjM7MDQ0MyAwMzBCOzA0RjM7MDQ0MyAwMzBCOworMDRGNDswNEY0OzA0MjcgMDMwODswNEY0OzA0MjcgMDMwODsKKzA0RjU7MDRGNTswNDQ3IDAzMDg7MDRGNTswNDQ3IDAzMDg7CiswNEY4OzA0Rjg7MDQyQiAwMzA4OzA0Rjg7MDQyQiAwMzA4OworMDRGOTswNEY5OzA0NEIgMDMwODswNEY5OzA0NEIgMDMwODsKKzA1ODc7MDU4NzswNTg3OzA1NjUgMDU4MjswNTY1IDA1ODI7CiswNjIyOzA2MjI7MDYyNyAwNjUzOzA2MjI7MDYyNyAwNjUzOworMDYyMzswNjIzOzA2MjcgMDY1NDswNjIzOzA2MjcgMDY1NDsKKzA2MjQ7MDYyNDswNjQ4IDA2NTQ7MDYyNDswNjQ4IDA2NTQ7CiswNjI1OzA2MjU7MDYyNyAwNjU1OzA2MjU7MDYyNyAwNjU1OworMDYyNjswNjI2OzA2NEEgMDY1NDswNjI2OzA2NEEgMDY1NDsKKzA2NzU7MDY3NTswNjc1OzA2MjcgMDY3NDswNjI3IDA2NzQ7CiswNjc2OzA2NzY7MDY3NjswNjQ4IDA2NzQ7MDY0OCAwNjc0OworMDY3NzswNjc3OzA2Nzc7MDZDNyAwNjc0OzA2QzcgMDY3NDsKKzA2Nzg7MDY3ODswNjc4OzA2NEEgMDY3NDswNjRBIDA2NzQ7CiswNkMwOzA2QzA7MDZENSAwNjU0OzA2QzA7MDZENSAwNjU0OworMDZDMjswNkMyOzA2QzEgMDY1NDswNkMyOzA2QzEgMDY1NDsKKzA2RDM7MDZEMzswNkQyIDA2NTQ7MDZEMzswNkQyIDA2NTQ7CiswOTI5OzA5Mjk7MDkyOCAwOTNDOzA5Mjk7MDkyOCAwOTNDOworMDkzMTswOTMxOzA5MzAgMDkzQzswOTMxOzA5MzAgMDkzQzsKKzA5MzQ7MDkzNDswOTMzIDA5M0M7MDkzNDswOTMzIDA5M0M7CiswOTU4OzA5MTUgMDkzQzswOTE1IDA5M0M7MDkxNSAwOTNDOzA5MTUgMDkzQzsKKzA5NTk7MDkxNiAwOTNDOzA5MTYgMDkzQzswOTE2IDA5M0M7MDkxNiAwOTNDOworMDk1QTswOTE3IDA5M0M7MDkxNyAwOTNDOzA5MTcgMDkzQzswOTE3IDA5M0M7CiswOTVCOzA5MUMgMDkzQzswOTFDIDA5M0M7MDkxQyAwOTNDOzA5MUMgMDkzQzsKKzA5NUM7MDkyMSAwOTNDOzA5MjEgMDkzQzswOTIxIDA5M0M7MDkyMSAwOTNDOworMDk1RDswOTIyIDA5M0M7MDkyMiAwOTNDOzA5MjIgMDkzQzswOTIyIDA5M0M7CiswOTVFOzA5MkIgMDkzQzswOTJCIDA5M0M7MDkyQiAwOTNDOzA5MkIgMDkzQzsKKzA5NUY7MDkyRiAwOTNDOzA5MkYgMDkzQzswOTJGIDA5M0M7MDkyRiAwOTNDOworMDlDQjswOUNCOzA5QzcgMDlCRTswOUNCOzA5QzcgMDlCRTsKKzA5Q0M7MDlDQzswOUM3IDA5RDc7MDlDQzswOUM3IDA5RDc7CiswOURDOzA5QTEgMDlCQzswOUExIDA5QkM7MDlBMSAwOUJDOzA5QTEgMDlCQzsKKzA5REQ7MDlBMiAwOUJDOzA5QTIgMDlCQzswOUEyIDA5QkM7MDlBMiAwOUJDOworMDlERjswOUFGIDA5QkM7MDlBRiAwOUJDOzA5QUYgMDlCQzswOUFGIDA5QkM7CiswQTMzOzBBMzIgMEEzQzswQTMyIDBBM0M7MEEzMiAwQTNDOzBBMzIgMEEzQzsKKzBBMzY7MEEzOCAwQTNDOzBBMzggMEEzQzswQTM4IDBBM0M7MEEzOCAwQTNDOworMEE1OTswQTE2IDBBM0M7MEExNiAwQTNDOzBBMTYgMEEzQzswQTE2IDBBM0M7CiswQTVBOzBBMTcgMEEzQzswQTE3IDBBM0M7MEExNyAwQTNDOzBBMTcgMEEzQzsKKzBBNUI7MEExQyAwQTNDOzBBMUMgMEEzQzswQTFDIDBBM0M7MEExQyAwQTNDOworMEE1RTswQTJCIDBBM0M7MEEyQiAwQTNDOzBBMkIgMEEzQzswQTJCIDBBM0M7CiswQjQ4OzBCNDg7MEI0NyAwQjU2OzBCNDg7MEI0NyAwQjU2OworMEI0QjswQjRCOzBCNDcgMEIzRTswQjRCOzBCNDcgMEIzRTsKKzBCNEM7MEI0QzswQjQ3IDBCNTc7MEI0QzswQjQ3IDBCNTc7CiswQjVDOzBCMjEgMEIzQzswQjIxIDBCM0M7MEIyMSAwQjNDOzBCMjEgMEIzQzsKKzBCNUQ7MEIyMiAwQjNDOzBCMjIgMEIzQzswQjIyIDBCM0M7MEIyMiAwQjNDOworMEI5NDswQjk0OzBCOTIgMEJENzswQjk0OzBCOTIgMEJENzsKKzBCQ0E7MEJDQTswQkM2IDBCQkU7MEJDQTswQkM2IDBCQkU7CiswQkNCOzBCQ0I7MEJDNyAwQkJFOzBCQ0I7MEJDNyAwQkJFOworMEJDQzswQkNDOzBCQzYgMEJENzswQkNDOzBCQzYgMEJENzsKKzBDNDg7MEM0ODswQzQ2IDBDNTY7MEM0ODswQzQ2IDBDNTY7CiswQ0MwOzBDQzA7MENCRiAwQ0Q1OzBDQzA7MENCRiAwQ0Q1OworMENDNzswQ0M3OzBDQzYgMENENTswQ0M3OzBDQzYgMENENTsKKzBDQzg7MENDODswQ0M2IDBDRDY7MENDODswQ0M2IDBDRDY7CiswQ0NBOzBDQ0E7MENDNiAwQ0MyOzBDQ0E7MENDNiAwQ0MyOworMENDQjswQ0NCOzBDQzYgMENDMiAwQ0Q1OzBDQ0I7MENDNiAwQ0MyIDBDRDU7CiswRDRBOzBENEE7MEQ0NiAwRDNFOzBENEE7MEQ0NiAwRDNFOworMEQ0QjswRDRCOzBENDcgMEQzRTswRDRCOzBENDcgMEQzRTsKKzBENEM7MEQ0QzswRDQ2IDBENTc7MEQ0QzswRDQ2IDBENTc7CiswRERBOzBEREE7MEREOSAwRENBOzBEREE7MEREOSAwRENBOworMEREQzswRERDOzBERDkgMERDRjswRERDOzBERDkgMERDRjsKKzBEREQ7MERERDswREQ5IDBEQ0YgMERDQTswREREOzBERDkgMERDRiAwRENBOworMERERTswRERFOzBERDkgMERERjswRERFOzBERDkgMERERjsKKzBFMzM7MEUzMzswRTMzOzBFNEQgMEUzMjswRTREIDBFMzI7CiswRUIzOzBFQjM7MEVCMzswRUNEIDBFQjI7MEVDRCAwRUIyOworMEVEQzswRURDOzBFREM7MEVBQiAwRTk5OzBFQUIgMEU5OTsKKzBFREQ7MEVERDswRUREOzBFQUIgMEVBMTswRUFCIDBFQTE7CiswRjBDOzBGMEM7MEYwQzswRjBCOzBGMEI7CiswRjQzOzBGNDIgMEZCNzswRjQyIDBGQjc7MEY0MiAwRkI3OzBGNDIgMEZCNzsKKzBGNEQ7MEY0QyAwRkI3OzBGNEMgMEZCNzswRjRDIDBGQjc7MEY0QyAwRkI3OworMEY1MjswRjUxIDBGQjc7MEY1MSAwRkI3OzBGNTEgMEZCNzswRjUxIDBGQjc7CiswRjU3OzBGNTYgMEZCNzswRjU2IDBGQjc7MEY1NiAwRkI3OzBGNTYgMEZCNzsKKzBGNUM7MEY1QiAwRkI3OzBGNUIgMEZCNzswRjVCIDBGQjc7MEY1QiAwRkI3OworMEY2OTswRjQwIDBGQjU7MEY0MCAwRkI1OzBGNDAgMEZCNTswRjQwIDBGQjU7CiswRjczOzBGNzEgMEY3MjswRjcxIDBGNzI7MEY3MSAwRjcyOzBGNzEgMEY3MjsKKzBGNzU7MEY3MSAwRjc0OzBGNzEgMEY3NDswRjcxIDBGNzQ7MEY3MSAwRjc0OworMEY3NjswRkIyIDBGODA7MEZCMiAwRjgwOzBGQjIgMEY4MDswRkIyIDBGODA7CiswRjc3OzBGNzc7MEY3NzswRkIyIDBGNzEgMEY4MDswRkIyIDBGNzEgMEY4MDsKKzBGNzg7MEZCMyAwRjgwOzBGQjMgMEY4MDswRkIzIDBGODA7MEZCMyAwRjgwOworMEY3OTswRjc5OzBGNzk7MEZCMyAwRjcxIDBGODA7MEZCMyAwRjcxIDBGODA7CiswRjgxOzBGNzEgMEY4MDswRjcxIDBGODA7MEY3MSAwRjgwOzBGNzEgMEY4MDsKKzBGOTM7MEY5MiAwRkI3OzBGOTIgMEZCNzswRjkyIDBGQjc7MEY5MiAwRkI3OworMEY5RDswRjlDIDBGQjc7MEY5QyAwRkI3OzBGOUMgMEZCNzswRjlDIDBGQjc7CiswRkEyOzBGQTEgMEZCNzswRkExIDBGQjc7MEZBMSAwRkI3OzBGQTEgMEZCNzsKKzBGQTc7MEZBNiAwRkI3OzBGQTYgMEZCNzswRkE2IDBGQjc7MEZBNiAwRkI3OworMEZBQzswRkFCIDBGQjc7MEZBQiAwRkI3OzBGQUIgMEZCNzswRkFCIDBGQjc7CiswRkI5OzBGOTAgMEZCNTswRjkwIDBGQjU7MEY5MCAwRkI1OzBGOTAgMEZCNTsKKzEwMjY7MTAyNjsxMDI1IDEwMkU7MTAyNjsxMDI1IDEwMkU7CisxRTAwOzFFMDA7MDA0MSAwMzI1OzFFMDA7MDA0MSAwMzI1OworMUUwMTsxRTAxOzAwNjEgMDMyNTsxRTAxOzAwNjEgMDMyNTsKKzFFMDI7MUUwMjswMDQyIDAzMDc7MUUwMjswMDQyIDAzMDc7CisxRTAzOzFFMDM7MDA2MiAwMzA3OzFFMDM7MDA2MiAwMzA3OworMUUwNDsxRTA0OzAwNDIgMDMyMzsxRTA0OzAwNDIgMDMyMzsKKzFFMDU7MUUwNTswMDYyIDAzMjM7MUUwNTswMDYyIDAzMjM7CisxRTA2OzFFMDY7MDA0MiAwMzMxOzFFMDY7MDA0MiAwMzMxOworMUUwNzsxRTA3OzAwNjIgMDMzMTsxRTA3OzAwNjIgMDMzMTsKKzFFMDg7MUUwODswMDQzIDAzMjcgMDMwMTsxRTA4OzAwNDMgMDMyNyAwMzAxOworMUUwOTsxRTA5OzAwNjMgMDMyNyAwMzAxOzFFMDk7MDA2MyAwMzI3IDAzMDE7CisxRTBBOzFFMEE7MDA0NCAwMzA3OzFFMEE7MDA0NCAwMzA3OworMUUwQjsxRTBCOzAwNjQgMDMwNzsxRTBCOzAwNjQgMDMwNzsKKzFFMEM7MUUwQzswMDQ0IDAzMjM7MUUwQzswMDQ0IDAzMjM7CisxRTBEOzFFMEQ7MDA2NCAwMzIzOzFFMEQ7MDA2NCAwMzIzOworMUUwRTsxRTBFOzAwNDQgMDMzMTsxRTBFOzAwNDQgMDMzMTsKKzFFMEY7MUUwRjswMDY0IDAzMzE7MUUwRjswMDY0IDAzMzE7CisxRTEwOzFFMTA7MDA0NCAwMzI3OzFFMTA7MDA0NCAwMzI3OworMUUxMTsxRTExOzAwNjQgMDMyNzsxRTExOzAwNjQgMDMyNzsKKzFFMTI7MUUxMjswMDQ0IDAzMkQ7MUUxMjswMDQ0IDAzMkQ7CisxRTEzOzFFMTM7MDA2NCAwMzJEOzFFMTM7MDA2NCAwMzJEOworMUUxNDsxRTE0OzAwNDUgMDMwNCAwMzAwOzFFMTQ7MDA0NSAwMzA0IDAzMDA7CisxRTE1OzFFMTU7MDA2NSAwMzA0IDAzMDA7MUUxNTswMDY1IDAzMDQgMDMwMDsKKzFFMTY7MUUxNjswMDQ1IDAzMDQgMDMwMTsxRTE2OzAwNDUgMDMwNCAwMzAxOworMUUxNzsxRTE3OzAwNjUgMDMwNCAwMzAxOzFFMTc7MDA2NSAwMzA0IDAzMDE7CisxRTE4OzFFMTg7MDA0NSAwMzJEOzFFMTg7MDA0NSAwMzJEOworMUUxOTsxRTE5OzAwNjUgMDMyRDsxRTE5OzAwNjUgMDMyRDsKKzFFMUE7MUUxQTswMDQ1IDAzMzA7MUUxQTswMDQ1IDAzMzA7CisxRTFCOzFFMUI7MDA2NSAwMzMwOzFFMUI7MDA2NSAwMzMwOworMUUxQzsxRTFDOzAwNDUgMDMyNyAwMzA2OzFFMUM7MDA0NSAwMzI3IDAzMDY7CisxRTFEOzFFMUQ7MDA2NSAwMzI3IDAzMDY7MUUxRDswMDY1IDAzMjcgMDMwNjsKKzFFMUU7MUUxRTswMDQ2IDAzMDc7MUUxRTswMDQ2IDAzMDc7CisxRTFGOzFFMUY7MDA2NiAwMzA3OzFFMUY7MDA2NiAwMzA3OworMUUyMDsxRTIwOzAwNDcgMDMwNDsxRTIwOzAwNDcgMDMwNDsKKzFFMjE7MUUyMTswMDY3IDAzMDQ7MUUyMTswMDY3IDAzMDQ7CisxRTIyOzFFMjI7MDA0OCAwMzA3OzFFMjI7MDA0OCAwMzA3OworMUUyMzsxRTIzOzAwNjggMDMwNzsxRTIzOzAwNjggMDMwNzsKKzFFMjQ7MUUyNDswMDQ4IDAzMjM7MUUyNDswMDQ4IDAzMjM7CisxRTI1OzFFMjU7MDA2OCAwMzIzOzFFMjU7MDA2OCAwMzIzOworMUUyNjsxRTI2OzAwNDggMDMwODsxRTI2OzAwNDggMDMwODsKKzFFMjc7MUUyNzswMDY4IDAzMDg7MUUyNzswMDY4IDAzMDg7CisxRTI4OzFFMjg7MDA0OCAwMzI3OzFFMjg7MDA0OCAwMzI3OworMUUyOTsxRTI5OzAwNjggMDMyNzsxRTI5OzAwNjggMDMyNzsKKzFFMkE7MUUyQTswMDQ4IDAzMkU7MUUyQTswMDQ4IDAzMkU7CisxRTJCOzFFMkI7MDA2OCAwMzJFOzFFMkI7MDA2OCAwMzJFOworMUUyQzsxRTJDOzAwNDkgMDMzMDsxRTJDOzAwNDkgMDMzMDsKKzFFMkQ7MUUyRDswMDY5IDAzMzA7MUUyRDswMDY5IDAzMzA7CisxRTJFOzFFMkU7MDA0OSAwMzA4IDAzMDE7MUUyRTswMDQ5IDAzMDggMDMwMTsKKzFFMkY7MUUyRjswMDY5IDAzMDggMDMwMTsxRTJGOzAwNjkgMDMwOCAwMzAxOworMUUzMDsxRTMwOzAwNEIgMDMwMTsxRTMwOzAwNEIgMDMwMTsKKzFFMzE7MUUzMTswMDZCIDAzMDE7MUUzMTswMDZCIDAzMDE7CisxRTMyOzFFMzI7MDA0QiAwMzIzOzFFMzI7MDA0QiAwMzIzOworMUUzMzsxRTMzOzAwNkIgMDMyMzsxRTMzOzAwNkIgMDMyMzsKKzFFMzQ7MUUzNDswMDRCIDAzMzE7MUUzNDswMDRCIDAzMzE7CisxRTM1OzFFMzU7MDA2QiAwMzMxOzFFMzU7MDA2QiAwMzMxOworMUUzNjsxRTM2OzAwNEMgMDMyMzsxRTM2OzAwNEMgMDMyMzsKKzFFMzc7MUUzNzswMDZDIDAzMjM7MUUzNzswMDZDIDAzMjM7CisxRTM4OzFFMzg7MDA0QyAwMzIzIDAzMDQ7MUUzODswMDRDIDAzMjMgMDMwNDsKKzFFMzk7MUUzOTswMDZDIDAzMjMgMDMwNDsxRTM5OzAwNkMgMDMyMyAwMzA0OworMUUzQTsxRTNBOzAwNEMgMDMzMTsxRTNBOzAwNEMgMDMzMTsKKzFFM0I7MUUzQjswMDZDIDAzMzE7MUUzQjswMDZDIDAzMzE7CisxRTNDOzFFM0M7MDA0QyAwMzJEOzFFM0M7MDA0QyAwMzJEOworMUUzRDsxRTNEOzAwNkMgMDMyRDsxRTNEOzAwNkMgMDMyRDsKKzFFM0U7MUUzRTswMDREIDAzMDE7MUUzRTswMDREIDAzMDE7CisxRTNGOzFFM0Y7MDA2RCAwMzAxOzFFM0Y7MDA2RCAwMzAxOworMUU0MDsxRTQwOzAwNEQgMDMwNzsxRTQwOzAwNEQgMDMwNzsKKzFFNDE7MUU0MTswMDZEIDAzMDc7MUU0MTswMDZEIDAzMDc7CisxRTQyOzFFNDI7MDA0RCAwMzIzOzFFNDI7MDA0RCAwMzIzOworMUU0MzsxRTQzOzAwNkQgMDMyMzsxRTQzOzAwNkQgMDMyMzsKKzFFNDQ7MUU0NDswMDRFIDAzMDc7MUU0NDswMDRFIDAzMDc7CisxRTQ1OzFFNDU7MDA2RSAwMzA3OzFFNDU7MDA2RSAwMzA3OworMUU0NjsxRTQ2OzAwNEUgMDMyMzsxRTQ2OzAwNEUgMDMyMzsKKzFFNDc7MUU0NzswMDZFIDAzMjM7MUU0NzswMDZFIDAzMjM7CisxRTQ4OzFFNDg7MDA0RSAwMzMxOzFFNDg7MDA0RSAwMzMxOworMUU0OTsxRTQ5OzAwNkUgMDMzMTsxRTQ5OzAwNkUgMDMzMTsKKzFFNEE7MUU0QTswMDRFIDAzMkQ7MUU0QTswMDRFIDAzMkQ7CisxRTRCOzFFNEI7MDA2RSAwMzJEOzFFNEI7MDA2RSAwMzJEOworMUU0QzsxRTRDOzAwNEYgMDMwMyAwMzAxOzFFNEM7MDA0RiAwMzAzIDAzMDE7CisxRTREOzFFNEQ7MDA2RiAwMzAzIDAzMDE7MUU0RDswMDZGIDAzMDMgMDMwMTsKKzFFNEU7MUU0RTswMDRGIDAzMDMgMDMwODsxRTRFOzAwNEYgMDMwMyAwMzA4OworMUU0RjsxRTRGOzAwNkYgMDMwMyAwMzA4OzFFNEY7MDA2RiAwMzAzIDAzMDg7CisxRTUwOzFFNTA7MDA0RiAwMzA0IDAzMDA7MUU1MDswMDRGIDAzMDQgMDMwMDsKKzFFNTE7MUU1MTswMDZGIDAzMDQgMDMwMDsxRTUxOzAwNkYgMDMwNCAwMzAwOworMUU1MjsxRTUyOzAwNEYgMDMwNCAwMzAxOzFFNTI7MDA0RiAwMzA0IDAzMDE7CisxRTUzOzFFNTM7MDA2RiAwMzA0IDAzMDE7MUU1MzswMDZGIDAzMDQgMDMwMTsKKzFFNTQ7MUU1NDswMDUwIDAzMDE7MUU1NDswMDUwIDAzMDE7CisxRTU1OzFFNTU7MDA3MCAwMzAxOzFFNTU7MDA3MCAwMzAxOworMUU1NjsxRTU2OzAwNTAgMDMwNzsxRTU2OzAwNTAgMDMwNzsKKzFFNTc7MUU1NzswMDcwIDAzMDc7MUU1NzswMDcwIDAzMDc7CisxRTU4OzFFNTg7MDA1MiAwMzA3OzFFNTg7MDA1MiAwMzA3OworMUU1OTsxRTU5OzAwNzIgMDMwNzsxRTU5OzAwNzIgMDMwNzsKKzFFNUE7MUU1QTswMDUyIDAzMjM7MUU1QTswMDUyIDAzMjM7CisxRTVCOzFFNUI7MDA3MiAwMzIzOzFFNUI7MDA3MiAwMzIzOworMUU1QzsxRTVDOzAwNTIgMDMyMyAwMzA0OzFFNUM7MDA1MiAwMzIzIDAzMDQ7CisxRTVEOzFFNUQ7MDA3MiAwMzIzIDAzMDQ7MUU1RDswMDcyIDAzMjMgMDMwNDsKKzFFNUU7MUU1RTswMDUyIDAzMzE7MUU1RTswMDUyIDAzMzE7CisxRTVGOzFFNUY7MDA3MiAwMzMxOzFFNUY7MDA3MiAwMzMxOworMUU2MDsxRTYwOzAwNTMgMDMwNzsxRTYwOzAwNTMgMDMwNzsKKzFFNjE7MUU2MTswMDczIDAzMDc7MUU2MTswMDczIDAzMDc7CisxRTYyOzFFNjI7MDA1MyAwMzIzOzFFNjI7MDA1MyAwMzIzOworMUU2MzsxRTYzOzAwNzMgMDMyMzsxRTYzOzAwNzMgMDMyMzsKKzFFNjQ7MUU2NDswMDUzIDAzMDEgMDMwNzsxRTY0OzAwNTMgMDMwMSAwMzA3OworMUU2NTsxRTY1OzAwNzMgMDMwMSAwMzA3OzFFNjU7MDA3MyAwMzAxIDAzMDc7CisxRTY2OzFFNjY7MDA1MyAwMzBDIDAzMDc7MUU2NjswMDUzIDAzMEMgMDMwNzsKKzFFNjc7MUU2NzswMDczIDAzMEMgMDMwNzsxRTY3OzAwNzMgMDMwQyAwMzA3OworMUU2ODsxRTY4OzAwNTMgMDMyMyAwMzA3OzFFNjg7MDA1MyAwMzIzIDAzMDc7CisxRTY5OzFFNjk7MDA3MyAwMzIzIDAzMDc7MUU2OTswMDczIDAzMjMgMDMwNzsKKzFFNkE7MUU2QTswMDU0IDAzMDc7MUU2QTswMDU0IDAzMDc7CisxRTZCOzFFNkI7MDA3NCAwMzA3OzFFNkI7MDA3NCAwMzA3OworMUU2QzsxRTZDOzAwNTQgMDMyMzsxRTZDOzAwNTQgMDMyMzsKKzFFNkQ7MUU2RDswMDc0IDAzMjM7MUU2RDswMDc0IDAzMjM7CisxRTZFOzFFNkU7MDA1NCAwMzMxOzFFNkU7MDA1NCAwMzMxOworMUU2RjsxRTZGOzAwNzQgMDMzMTsxRTZGOzAwNzQgMDMzMTsKKzFFNzA7MUU3MDswMDU0IDAzMkQ7MUU3MDswMDU0IDAzMkQ7CisxRTcxOzFFNzE7MDA3NCAwMzJEOzFFNzE7MDA3NCAwMzJEOworMUU3MjsxRTcyOzAwNTUgMDMyNDsxRTcyOzAwNTUgMDMyNDsKKzFFNzM7MUU3MzswMDc1IDAzMjQ7MUU3MzswMDc1IDAzMjQ7CisxRTc0OzFFNzQ7MDA1NSAwMzMwOzFFNzQ7MDA1NSAwMzMwOworMUU3NTsxRTc1OzAwNzUgMDMzMDsxRTc1OzAwNzUgMDMzMDsKKzFFNzY7MUU3NjswMDU1IDAzMkQ7MUU3NjswMDU1IDAzMkQ7CisxRTc3OzFFNzc7MDA3NSAwMzJEOzFFNzc7MDA3NSAwMzJEOworMUU3ODsxRTc4OzAwNTUgMDMwMyAwMzAxOzFFNzg7MDA1NSAwMzAzIDAzMDE7CisxRTc5OzFFNzk7MDA3NSAwMzAzIDAzMDE7MUU3OTswMDc1IDAzMDMgMDMwMTsKKzFFN0E7MUU3QTswMDU1IDAzMDQgMDMwODsxRTdBOzAwNTUgMDMwNCAwMzA4OworMUU3QjsxRTdCOzAwNzUgMDMwNCAwMzA4OzFFN0I7MDA3NSAwMzA0IDAzMDg7CisxRTdDOzFFN0M7MDA1NiAwMzAzOzFFN0M7MDA1NiAwMzAzOworMUU3RDsxRTdEOzAwNzYgMDMwMzsxRTdEOzAwNzYgMDMwMzsKKzFFN0U7MUU3RTswMDU2IDAzMjM7MUU3RTswMDU2IDAzMjM7CisxRTdGOzFFN0Y7MDA3NiAwMzIzOzFFN0Y7MDA3NiAwMzIzOworMUU4MDsxRTgwOzAwNTcgMDMwMDsxRTgwOzAwNTcgMDMwMDsKKzFFODE7MUU4MTswMDc3IDAzMDA7MUU4MTswMDc3IDAzMDA7CisxRTgyOzFFODI7MDA1NyAwMzAxOzFFODI7MDA1NyAwMzAxOworMUU4MzsxRTgzOzAwNzcgMDMwMTsxRTgzOzAwNzcgMDMwMTsKKzFFODQ7MUU4NDswMDU3IDAzMDg7MUU4NDswMDU3IDAzMDg7CisxRTg1OzFFODU7MDA3NyAwMzA4OzFFODU7MDA3NyAwMzA4OworMUU4NjsxRTg2OzAwNTcgMDMwNzsxRTg2OzAwNTcgMDMwNzsKKzFFODc7MUU4NzswMDc3IDAzMDc7MUU4NzswMDc3IDAzMDc7CisxRTg4OzFFODg7MDA1NyAwMzIzOzFFODg7MDA1NyAwMzIzOworMUU4OTsxRTg5OzAwNzcgMDMyMzsxRTg5OzAwNzcgMDMyMzsKKzFFOEE7MUU4QTswMDU4IDAzMDc7MUU4QTswMDU4IDAzMDc7CisxRThCOzFFOEI7MDA3OCAwMzA3OzFFOEI7MDA3OCAwMzA3OworMUU4QzsxRThDOzAwNTggMDMwODsxRThDOzAwNTggMDMwODsKKzFFOEQ7MUU4RDswMDc4IDAzMDg7MUU4RDswMDc4IDAzMDg7CisxRThFOzFFOEU7MDA1OSAwMzA3OzFFOEU7MDA1OSAwMzA3OworMUU4RjsxRThGOzAwNzkgMDMwNzsxRThGOzAwNzkgMDMwNzsKKzFFOTA7MUU5MDswMDVBIDAzMDI7MUU5MDswMDVBIDAzMDI7CisxRTkxOzFFOTE7MDA3QSAwMzAyOzFFOTE7MDA3QSAwMzAyOworMUU5MjsxRTkyOzAwNUEgMDMyMzsxRTkyOzAwNUEgMDMyMzsKKzFFOTM7MUU5MzswMDdBIDAzMjM7MUU5MzswMDdBIDAzMjM7CisxRTk0OzFFOTQ7MDA1QSAwMzMxOzFFOTQ7MDA1QSAwMzMxOworMUU5NTsxRTk1OzAwN0EgMDMzMTsxRTk1OzAwN0EgMDMzMTsKKzFFOTY7MUU5NjswMDY4IDAzMzE7MUU5NjswMDY4IDAzMzE7CisxRTk3OzFFOTc7MDA3NCAwMzA4OzFFOTc7MDA3NCAwMzA4OworMUU5ODsxRTk4OzAwNzcgMDMwQTsxRTk4OzAwNzcgMDMwQTsKKzFFOTk7MUU5OTswMDc5IDAzMEE7MUU5OTswMDc5IDAzMEE7CisxRTlBOzFFOUE7MUU5QTswMDYxIDAyQkU7MDA2MSAwMkJFOworMUU5QjsxRTlCOzAxN0YgMDMwNzsxRTYxOzAwNzMgMDMwNzsKKzFFQTA7MUVBMDswMDQxIDAzMjM7MUVBMDswMDQxIDAzMjM7CisxRUExOzFFQTE7MDA2MSAwMzIzOzFFQTE7MDA2MSAwMzIzOworMUVBMjsxRUEyOzAwNDEgMDMwOTsxRUEyOzAwNDEgMDMwOTsKKzFFQTM7MUVBMzswMDYxIDAzMDk7MUVBMzswMDYxIDAzMDk7CisxRUE0OzFFQTQ7MDA0MSAwMzAyIDAzMDE7MUVBNDswMDQxIDAzMDIgMDMwMTsKKzFFQTU7MUVBNTswMDYxIDAzMDIgMDMwMTsxRUE1OzAwNjEgMDMwMiAwMzAxOworMUVBNjsxRUE2OzAwNDEgMDMwMiAwMzAwOzFFQTY7MDA0MSAwMzAyIDAzMDA7CisxRUE3OzFFQTc7MDA2MSAwMzAyIDAzMDA7MUVBNzswMDYxIDAzMDIgMDMwMDsKKzFFQTg7MUVBODswMDQxIDAzMDIgMDMwOTsxRUE4OzAwNDEgMDMwMiAwMzA5OworMUVBOTsxRUE5OzAwNjEgMDMwMiAwMzA5OzFFQTk7MDA2MSAwMzAyIDAzMDk7CisxRUFBOzFFQUE7MDA0MSAwMzAyIDAzMDM7MUVBQTswMDQxIDAzMDIgMDMwMzsKKzFFQUI7MUVBQjswMDYxIDAzMDIgMDMwMzsxRUFCOzAwNjEgMDMwMiAwMzAzOworMUVBQzsxRUFDOzAwNDEgMDMyMyAwMzAyOzFFQUM7MDA0MSAwMzIzIDAzMDI7CisxRUFEOzFFQUQ7MDA2MSAwMzIzIDAzMDI7MUVBRDswMDYxIDAzMjMgMDMwMjsKKzFFQUU7MUVBRTswMDQxIDAzMDYgMDMwMTsxRUFFOzAwNDEgMDMwNiAwMzAxOworMUVBRjsxRUFGOzAwNjEgMDMwNiAwMzAxOzFFQUY7MDA2MSAwMzA2IDAzMDE7CisxRUIwOzFFQjA7MDA0MSAwMzA2IDAzMDA7MUVCMDswMDQxIDAzMDYgMDMwMDsKKzFFQjE7MUVCMTswMDYxIDAzMDYgMDMwMDsxRUIxOzAwNjEgMDMwNiAwMzAwOworMUVCMjsxRUIyOzAwNDEgMDMwNiAwMzA5OzFFQjI7MDA0MSAwMzA2IDAzMDk7CisxRUIzOzFFQjM7MDA2MSAwMzA2IDAzMDk7MUVCMzswMDYxIDAzMDYgMDMwOTsKKzFFQjQ7MUVCNDswMDQxIDAzMDYgMDMwMzsxRUI0OzAwNDEgMDMwNiAwMzAzOworMUVCNTsxRUI1OzAwNjEgMDMwNiAwMzAzOzFFQjU7MDA2MSAwMzA2IDAzMDM7CisxRUI2OzFFQjY7MDA0MSAwMzIzIDAzMDY7MUVCNjswMDQxIDAzMjMgMDMwNjsKKzFFQjc7MUVCNzswMDYxIDAzMjMgMDMwNjsxRUI3OzAwNjEgMDMyMyAwMzA2OworMUVCODsxRUI4OzAwNDUgMDMyMzsxRUI4OzAwNDUgMDMyMzsKKzFFQjk7MUVCOTswMDY1IDAzMjM7MUVCOTswMDY1IDAzMjM7CisxRUJBOzFFQkE7MDA0NSAwMzA5OzFFQkE7MDA0NSAwMzA5OworMUVCQjsxRUJCOzAwNjUgMDMwOTsxRUJCOzAwNjUgMDMwOTsKKzFFQkM7MUVCQzswMDQ1IDAzMDM7MUVCQzswMDQ1IDAzMDM7CisxRUJEOzFFQkQ7MDA2NSAwMzAzOzFFQkQ7MDA2NSAwMzAzOworMUVCRTsxRUJFOzAwNDUgMDMwMiAwMzAxOzFFQkU7MDA0NSAwMzAyIDAzMDE7CisxRUJGOzFFQkY7MDA2NSAwMzAyIDAzMDE7MUVCRjswMDY1IDAzMDIgMDMwMTsKKzFFQzA7MUVDMDswMDQ1IDAzMDIgMDMwMDsxRUMwOzAwNDUgMDMwMiAwMzAwOworMUVDMTsxRUMxOzAwNjUgMDMwMiAwMzAwOzFFQzE7MDA2NSAwMzAyIDAzMDA7CisxRUMyOzFFQzI7MDA0NSAwMzAyIDAzMDk7MUVDMjswMDQ1IDAzMDIgMDMwOTsKKzFFQzM7MUVDMzswMDY1IDAzMDIgMDMwOTsxRUMzOzAwNjUgMDMwMiAwMzA5OworMUVDNDsxRUM0OzAwNDUgMDMwMiAwMzAzOzFFQzQ7MDA0NSAwMzAyIDAzMDM7CisxRUM1OzFFQzU7MDA2NSAwMzAyIDAzMDM7MUVDNTswMDY1IDAzMDIgMDMwMzsKKzFFQzY7MUVDNjswMDQ1IDAzMjMgMDMwMjsxRUM2OzAwNDUgMDMyMyAwMzAyOworMUVDNzsxRUM3OzAwNjUgMDMyMyAwMzAyOzFFQzc7MDA2NSAwMzIzIDAzMDI7CisxRUM4OzFFQzg7MDA0OSAwMzA5OzFFQzg7MDA0OSAwMzA5OworMUVDOTsxRUM5OzAwNjkgMDMwOTsxRUM5OzAwNjkgMDMwOTsKKzFFQ0E7MUVDQTswMDQ5IDAzMjM7MUVDQTswMDQ5IDAzMjM7CisxRUNCOzFFQ0I7MDA2OSAwMzIzOzFFQ0I7MDA2OSAwMzIzOworMUVDQzsxRUNDOzAwNEYgMDMyMzsxRUNDOzAwNEYgMDMyMzsKKzFFQ0Q7MUVDRDswMDZGIDAzMjM7MUVDRDswMDZGIDAzMjM7CisxRUNFOzFFQ0U7MDA0RiAwMzA5OzFFQ0U7MDA0RiAwMzA5OworMUVDRjsxRUNGOzAwNkYgMDMwOTsxRUNGOzAwNkYgMDMwOTsKKzFFRDA7MUVEMDswMDRGIDAzMDIgMDMwMTsxRUQwOzAwNEYgMDMwMiAwMzAxOworMUVEMTsxRUQxOzAwNkYgMDMwMiAwMzAxOzFFRDE7MDA2RiAwMzAyIDAzMDE7CisxRUQyOzFFRDI7MDA0RiAwMzAyIDAzMDA7MUVEMjswMDRGIDAzMDIgMDMwMDsKKzFFRDM7MUVEMzswMDZGIDAzMDIgMDMwMDsxRUQzOzAwNkYgMDMwMiAwMzAwOworMUVENDsxRUQ0OzAwNEYgMDMwMiAwMzA5OzFFRDQ7MDA0RiAwMzAyIDAzMDk7CisxRUQ1OzFFRDU7MDA2RiAwMzAyIDAzMDk7MUVENTswMDZGIDAzMDIgMDMwOTsKKzFFRDY7MUVENjswMDRGIDAzMDIgMDMwMzsxRUQ2OzAwNEYgMDMwMiAwMzAzOworMUVENzsxRUQ3OzAwNkYgMDMwMiAwMzAzOzFFRDc7MDA2RiAwMzAyIDAzMDM7CisxRUQ4OzFFRDg7MDA0RiAwMzIzIDAzMDI7MUVEODswMDRGIDAzMjMgMDMwMjsKKzFFRDk7MUVEOTswMDZGIDAzMjMgMDMwMjsxRUQ5OzAwNkYgMDMyMyAwMzAyOworMUVEQTsxRURBOzAwNEYgMDMxQiAwMzAxOzFFREE7MDA0RiAwMzFCIDAzMDE7CisxRURCOzFFREI7MDA2RiAwMzFCIDAzMDE7MUVEQjswMDZGIDAzMUIgMDMwMTsKKzFFREM7MUVEQzswMDRGIDAzMUIgMDMwMDsxRURDOzAwNEYgMDMxQiAwMzAwOworMUVERDsxRUREOzAwNkYgMDMxQiAwMzAwOzFFREQ7MDA2RiAwMzFCIDAzMDA7CisxRURFOzFFREU7MDA0RiAwMzFCIDAzMDk7MUVERTswMDRGIDAzMUIgMDMwOTsKKzFFREY7MUVERjswMDZGIDAzMUIgMDMwOTsxRURGOzAwNkYgMDMxQiAwMzA5OworMUVFMDsxRUUwOzAwNEYgMDMxQiAwMzAzOzFFRTA7MDA0RiAwMzFCIDAzMDM7CisxRUUxOzFFRTE7MDA2RiAwMzFCIDAzMDM7MUVFMTswMDZGIDAzMUIgMDMwMzsKKzFFRTI7MUVFMjswMDRGIDAzMUIgMDMyMzsxRUUyOzAwNEYgMDMxQiAwMzIzOworMUVFMzsxRUUzOzAwNkYgMDMxQiAwMzIzOzFFRTM7MDA2RiAwMzFCIDAzMjM7CisxRUU0OzFFRTQ7MDA1NSAwMzIzOzFFRTQ7MDA1NSAwMzIzOworMUVFNTsxRUU1OzAwNzUgMDMyMzsxRUU1OzAwNzUgMDMyMzsKKzFFRTY7MUVFNjswMDU1IDAzMDk7MUVFNjswMDU1IDAzMDk7CisxRUU3OzFFRTc7MDA3NSAwMzA5OzFFRTc7MDA3NSAwMzA5OworMUVFODsxRUU4OzAwNTUgMDMxQiAwMzAxOzFFRTg7MDA1NSAwMzFCIDAzMDE7CisxRUU5OzFFRTk7MDA3NSAwMzFCIDAzMDE7MUVFOTswMDc1IDAzMUIgMDMwMTsKKzFFRUE7MUVFQTswMDU1IDAzMUIgMDMwMDsxRUVBOzAwNTUgMDMxQiAwMzAwOworMUVFQjsxRUVCOzAwNzUgMDMxQiAwMzAwOzFFRUI7MDA3NSAwMzFCIDAzMDA7CisxRUVDOzFFRUM7MDA1NSAwMzFCIDAzMDk7MUVFQzswMDU1IDAzMUIgMDMwOTsKKzFFRUQ7MUVFRDswMDc1IDAzMUIgMDMwOTsxRUVEOzAwNzUgMDMxQiAwMzA5OworMUVFRTsxRUVFOzAwNTUgMDMxQiAwMzAzOzFFRUU7MDA1NSAwMzFCIDAzMDM7CisxRUVGOzFFRUY7MDA3NSAwMzFCIDAzMDM7MUVFRjswMDc1IDAzMUIgMDMwMzsKKzFFRjA7MUVGMDswMDU1IDAzMUIgMDMyMzsxRUYwOzAwNTUgMDMxQiAwMzIzOworMUVGMTsxRUYxOzAwNzUgMDMxQiAwMzIzOzFFRjE7MDA3NSAwMzFCIDAzMjM7CisxRUYyOzFFRjI7MDA1OSAwMzAwOzFFRjI7MDA1OSAwMzAwOworMUVGMzsxRUYzOzAwNzkgMDMwMDsxRUYzOzAwNzkgMDMwMDsKKzFFRjQ7MUVGNDswMDU5IDAzMjM7MUVGNDswMDU5IDAzMjM7CisxRUY1OzFFRjU7MDA3OSAwMzIzOzFFRjU7MDA3OSAwMzIzOworMUVGNjsxRUY2OzAwNTkgMDMwOTsxRUY2OzAwNTkgMDMwOTsKKzFFRjc7MUVGNzswMDc5IDAzMDk7MUVGNzswMDc5IDAzMDk7CisxRUY4OzFFRjg7MDA1OSAwMzAzOzFFRjg7MDA1OSAwMzAzOworMUVGOTsxRUY5OzAwNzkgMDMwMzsxRUY5OzAwNzkgMDMwMzsKKzFGMDA7MUYwMDswM0IxIDAzMTM7MUYwMDswM0IxIDAzMTM7CisxRjAxOzFGMDE7MDNCMSAwMzE0OzFGMDE7MDNCMSAwMzE0OworMUYwMjsxRjAyOzAzQjEgMDMxMyAwMzAwOzFGMDI7MDNCMSAwMzEzIDAzMDA7CisxRjAzOzFGMDM7MDNCMSAwMzE0IDAzMDA7MUYwMzswM0IxIDAzMTQgMDMwMDsKKzFGMDQ7MUYwNDswM0IxIDAzMTMgMDMwMTsxRjA0OzAzQjEgMDMxMyAwMzAxOworMUYwNTsxRjA1OzAzQjEgMDMxNCAwMzAxOzFGMDU7MDNCMSAwMzE0IDAzMDE7CisxRjA2OzFGMDY7MDNCMSAwMzEzIDAzNDI7MUYwNjswM0IxIDAzMTMgMDM0MjsKKzFGMDc7MUYwNzswM0IxIDAzMTQgMDM0MjsxRjA3OzAzQjEgMDMxNCAwMzQyOworMUYwODsxRjA4OzAzOTEgMDMxMzsxRjA4OzAzOTEgMDMxMzsKKzFGMDk7MUYwOTswMzkxIDAzMTQ7MUYwOTswMzkxIDAzMTQ7CisxRjBBOzFGMEE7MDM5MSAwMzEzIDAzMDA7MUYwQTswMzkxIDAzMTMgMDMwMDsKKzFGMEI7MUYwQjswMzkxIDAzMTQgMDMwMDsxRjBCOzAzOTEgMDMxNCAwMzAwOworMUYwQzsxRjBDOzAzOTEgMDMxMyAwMzAxOzFGMEM7MDM5MSAwMzEzIDAzMDE7CisxRjBEOzFGMEQ7MDM5MSAwMzE0IDAzMDE7MUYwRDswMzkxIDAzMTQgMDMwMTsKKzFGMEU7MUYwRTswMzkxIDAzMTMgMDM0MjsxRjBFOzAzOTEgMDMxMyAwMzQyOworMUYwRjsxRjBGOzAzOTEgMDMxNCAwMzQyOzFGMEY7MDM5MSAwMzE0IDAzNDI7CisxRjEwOzFGMTA7MDNCNSAwMzEzOzFGMTA7MDNCNSAwMzEzOworMUYxMTsxRjExOzAzQjUgMDMxNDsxRjExOzAzQjUgMDMxNDsKKzFGMTI7MUYxMjswM0I1IDAzMTMgMDMwMDsxRjEyOzAzQjUgMDMxMyAwMzAwOworMUYxMzsxRjEzOzAzQjUgMDMxNCAwMzAwOzFGMTM7MDNCNSAwMzE0IDAzMDA7CisxRjE0OzFGMTQ7MDNCNSAwMzEzIDAzMDE7MUYxNDswM0I1IDAzMTMgMDMwMTsKKzFGMTU7MUYxNTswM0I1IDAzMTQgMDMwMTsxRjE1OzAzQjUgMDMxNCAwMzAxOworMUYxODsxRjE4OzAzOTUgMDMxMzsxRjE4OzAzOTUgMDMxMzsKKzFGMTk7MUYxOTswMzk1IDAzMTQ7MUYxOTswMzk1IDAzMTQ7CisxRjFBOzFGMUE7MDM5NSAwMzEzIDAzMDA7MUYxQTswMzk1IDAzMTMgMDMwMDsKKzFGMUI7MUYxQjswMzk1IDAzMTQgMDMwMDsxRjFCOzAzOTUgMDMxNCAwMzAwOworMUYxQzsxRjFDOzAzOTUgMDMxMyAwMzAxOzFGMUM7MDM5NSAwMzEzIDAzMDE7CisxRjFEOzFGMUQ7MDM5NSAwMzE0IDAzMDE7MUYxRDswMzk1IDAzMTQgMDMwMTsKKzFGMjA7MUYyMDswM0I3IDAzMTM7MUYyMDswM0I3IDAzMTM7CisxRjIxOzFGMjE7MDNCNyAwMzE0OzFGMjE7MDNCNyAwMzE0OworMUYyMjsxRjIyOzAzQjcgMDMxMyAwMzAwOzFGMjI7MDNCNyAwMzEzIDAzMDA7CisxRjIzOzFGMjM7MDNCNyAwMzE0IDAzMDA7MUYyMzswM0I3IDAzMTQgMDMwMDsKKzFGMjQ7MUYyNDswM0I3IDAzMTMgMDMwMTsxRjI0OzAzQjcgMDMxMyAwMzAxOworMUYyNTsxRjI1OzAzQjcgMDMxNCAwMzAxOzFGMjU7MDNCNyAwMzE0IDAzMDE7CisxRjI2OzFGMjY7MDNCNyAwMzEzIDAzNDI7MUYyNjswM0I3IDAzMTMgMDM0MjsKKzFGMjc7MUYyNzswM0I3IDAzMTQgMDM0MjsxRjI3OzAzQjcgMDMxNCAwMzQyOworMUYyODsxRjI4OzAzOTcgMDMxMzsxRjI4OzAzOTcgMDMxMzsKKzFGMjk7MUYyOTswMzk3IDAzMTQ7MUYyOTswMzk3IDAzMTQ7CisxRjJBOzFGMkE7MDM5NyAwMzEzIDAzMDA7MUYyQTswMzk3IDAzMTMgMDMwMDsKKzFGMkI7MUYyQjswMzk3IDAzMTQgMDMwMDsxRjJCOzAzOTcgMDMxNCAwMzAwOworMUYyQzsxRjJDOzAzOTcgMDMxMyAwMzAxOzFGMkM7MDM5NyAwMzEzIDAzMDE7CisxRjJEOzFGMkQ7MDM5NyAwMzE0IDAzMDE7MUYyRDswMzk3IDAzMTQgMDMwMTsKKzFGMkU7MUYyRTswMzk3IDAzMTMgMDM0MjsxRjJFOzAzOTcgMDMxMyAwMzQyOworMUYyRjsxRjJGOzAzOTcgMDMxNCAwMzQyOzFGMkY7MDM5NyAwMzE0IDAzNDI7CisxRjMwOzFGMzA7MDNCOSAwMzEzOzFGMzA7MDNCOSAwMzEzOworMUYzMTsxRjMxOzAzQjkgMDMxNDsxRjMxOzAzQjkgMDMxNDsKKzFGMzI7MUYzMjswM0I5IDAzMTMgMDMwMDsxRjMyOzAzQjkgMDMxMyAwMzAwOworMUYzMzsxRjMzOzAzQjkgMDMxNCAwMzAwOzFGMzM7MDNCOSAwMzE0IDAzMDA7CisxRjM0OzFGMzQ7MDNCOSAwMzEzIDAzMDE7MUYzNDswM0I5IDAzMTMgMDMwMTsKKzFGMzU7MUYzNTswM0I5IDAzMTQgMDMwMTsxRjM1OzAzQjkgMDMxNCAwMzAxOworMUYzNjsxRjM2OzAzQjkgMDMxMyAwMzQyOzFGMzY7MDNCOSAwMzEzIDAzNDI7CisxRjM3OzFGMzc7MDNCOSAwMzE0IDAzNDI7MUYzNzswM0I5IDAzMTQgMDM0MjsKKzFGMzg7MUYzODswMzk5IDAzMTM7MUYzODswMzk5IDAzMTM7CisxRjM5OzFGMzk7MDM5OSAwMzE0OzFGMzk7MDM5OSAwMzE0OworMUYzQTsxRjNBOzAzOTkgMDMxMyAwMzAwOzFGM0E7MDM5OSAwMzEzIDAzMDA7CisxRjNCOzFGM0I7MDM5OSAwMzE0IDAzMDA7MUYzQjswMzk5IDAzMTQgMDMwMDsKKzFGM0M7MUYzQzswMzk5IDAzMTMgMDMwMTsxRjNDOzAzOTkgMDMxMyAwMzAxOworMUYzRDsxRjNEOzAzOTkgMDMxNCAwMzAxOzFGM0Q7MDM5OSAwMzE0IDAzMDE7CisxRjNFOzFGM0U7MDM5OSAwMzEzIDAzNDI7MUYzRTswMzk5IDAzMTMgMDM0MjsKKzFGM0Y7MUYzRjswMzk5IDAzMTQgMDM0MjsxRjNGOzAzOTkgMDMxNCAwMzQyOworMUY0MDsxRjQwOzAzQkYgMDMxMzsxRjQwOzAzQkYgMDMxMzsKKzFGNDE7MUY0MTswM0JGIDAzMTQ7MUY0MTswM0JGIDAzMTQ7CisxRjQyOzFGNDI7MDNCRiAwMzEzIDAzMDA7MUY0MjswM0JGIDAzMTMgMDMwMDsKKzFGNDM7MUY0MzswM0JGIDAzMTQgMDMwMDsxRjQzOzAzQkYgMDMxNCAwMzAwOworMUY0NDsxRjQ0OzAzQkYgMDMxMyAwMzAxOzFGNDQ7MDNCRiAwMzEzIDAzMDE7CisxRjQ1OzFGNDU7MDNCRiAwMzE0IDAzMDE7MUY0NTswM0JGIDAzMTQgMDMwMTsKKzFGNDg7MUY0ODswMzlGIDAzMTM7MUY0ODswMzlGIDAzMTM7CisxRjQ5OzFGNDk7MDM5RiAwMzE0OzFGNDk7MDM5RiAwMzE0OworMUY0QTsxRjRBOzAzOUYgMDMxMyAwMzAwOzFGNEE7MDM5RiAwMzEzIDAzMDA7CisxRjRCOzFGNEI7MDM5RiAwMzE0IDAzMDA7MUY0QjswMzlGIDAzMTQgMDMwMDsKKzFGNEM7MUY0QzswMzlGIDAzMTMgMDMwMTsxRjRDOzAzOUYgMDMxMyAwMzAxOworMUY0RDsxRjREOzAzOUYgMDMxNCAwMzAxOzFGNEQ7MDM5RiAwMzE0IDAzMDE7CisxRjUwOzFGNTA7MDNDNSAwMzEzOzFGNTA7MDNDNSAwMzEzOworMUY1MTsxRjUxOzAzQzUgMDMxNDsxRjUxOzAzQzUgMDMxNDsKKzFGNTI7MUY1MjswM0M1IDAzMTMgMDMwMDsxRjUyOzAzQzUgMDMxMyAwMzAwOworMUY1MzsxRjUzOzAzQzUgMDMxNCAwMzAwOzFGNTM7MDNDNSAwMzE0IDAzMDA7CisxRjU0OzFGNTQ7MDNDNSAwMzEzIDAzMDE7MUY1NDswM0M1IDAzMTMgMDMwMTsKKzFGNTU7MUY1NTswM0M1IDAzMTQgMDMwMTsxRjU1OzAzQzUgMDMxNCAwMzAxOworMUY1NjsxRjU2OzAzQzUgMDMxMyAwMzQyOzFGNTY7MDNDNSAwMzEzIDAzNDI7CisxRjU3OzFGNTc7MDNDNSAwMzE0IDAzNDI7MUY1NzswM0M1IDAzMTQgMDM0MjsKKzFGNTk7MUY1OTswM0E1IDAzMTQ7MUY1OTswM0E1IDAzMTQ7CisxRjVCOzFGNUI7MDNBNSAwMzE0IDAzMDA7MUY1QjswM0E1IDAzMTQgMDMwMDsKKzFGNUQ7MUY1RDswM0E1IDAzMTQgMDMwMTsxRjVEOzAzQTUgMDMxNCAwMzAxOworMUY1RjsxRjVGOzAzQTUgMDMxNCAwMzQyOzFGNUY7MDNBNSAwMzE0IDAzNDI7CisxRjYwOzFGNjA7MDNDOSAwMzEzOzFGNjA7MDNDOSAwMzEzOworMUY2MTsxRjYxOzAzQzkgMDMxNDsxRjYxOzAzQzkgMDMxNDsKKzFGNjI7MUY2MjswM0M5IDAzMTMgMDMwMDsxRjYyOzAzQzkgMDMxMyAwMzAwOworMUY2MzsxRjYzOzAzQzkgMDMxNCAwMzAwOzFGNjM7MDNDOSAwMzE0IDAzMDA7CisxRjY0OzFGNjQ7MDNDOSAwMzEzIDAzMDE7MUY2NDswM0M5IDAzMTMgMDMwMTsKKzFGNjU7MUY2NTswM0M5IDAzMTQgMDMwMTsxRjY1OzAzQzkgMDMxNCAwMzAxOworMUY2NjsxRjY2OzAzQzkgMDMxMyAwMzQyOzFGNjY7MDNDOSAwMzEzIDAzNDI7CisxRjY3OzFGNjc7MDNDOSAwMzE0IDAzNDI7MUY2NzswM0M5IDAzMTQgMDM0MjsKKzFGNjg7MUY2ODswM0E5IDAzMTM7MUY2ODswM0E5IDAzMTM7CisxRjY5OzFGNjk7MDNBOSAwMzE0OzFGNjk7MDNBOSAwMzE0OworMUY2QTsxRjZBOzAzQTkgMDMxMyAwMzAwOzFGNkE7MDNBOSAwMzEzIDAzMDA7CisxRjZCOzFGNkI7MDNBOSAwMzE0IDAzMDA7MUY2QjswM0E5IDAzMTQgMDMwMDsKKzFGNkM7MUY2QzswM0E5IDAzMTMgMDMwMTsxRjZDOzAzQTkgMDMxMyAwMzAxOworMUY2RDsxRjZEOzAzQTkgMDMxNCAwMzAxOzFGNkQ7MDNBOSAwMzE0IDAzMDE7CisxRjZFOzFGNkU7MDNBOSAwMzEzIDAzNDI7MUY2RTswM0E5IDAzMTMgMDM0MjsKKzFGNkY7MUY2RjswM0E5IDAzMTQgMDM0MjsxRjZGOzAzQTkgMDMxNCAwMzQyOworMUY3MDsxRjcwOzAzQjEgMDMwMDsxRjcwOzAzQjEgMDMwMDsKKzFGNzE7MDNBQzswM0IxIDAzMDE7MDNBQzswM0IxIDAzMDE7CisxRjcyOzFGNzI7MDNCNSAwMzAwOzFGNzI7MDNCNSAwMzAwOworMUY3MzswM0FEOzAzQjUgMDMwMTswM0FEOzAzQjUgMDMwMTsKKzFGNzQ7MUY3NDswM0I3IDAzMDA7MUY3NDswM0I3IDAzMDA7CisxRjc1OzAzQUU7MDNCNyAwMzAxOzAzQUU7MDNCNyAwMzAxOworMUY3NjsxRjc2OzAzQjkgMDMwMDsxRjc2OzAzQjkgMDMwMDsKKzFGNzc7MDNBRjswM0I5IDAzMDE7MDNBRjswM0I5IDAzMDE7CisxRjc4OzFGNzg7MDNCRiAwMzAwOzFGNzg7MDNCRiAwMzAwOworMUY3OTswM0NDOzAzQkYgMDMwMTswM0NDOzAzQkYgMDMwMTsKKzFGN0E7MUY3QTswM0M1IDAzMDA7MUY3QTswM0M1IDAzMDA7CisxRjdCOzAzQ0Q7MDNDNSAwMzAxOzAzQ0Q7MDNDNSAwMzAxOworMUY3QzsxRjdDOzAzQzkgMDMwMDsxRjdDOzAzQzkgMDMwMDsKKzFGN0Q7MDNDRTswM0M5IDAzMDE7MDNDRTswM0M5IDAzMDE7CisxRjgwOzFGODA7MDNCMSAwMzEzIDAzNDU7MUY4MDswM0IxIDAzMTMgMDM0NTsKKzFGODE7MUY4MTswM0IxIDAzMTQgMDM0NTsxRjgxOzAzQjEgMDMxNCAwMzQ1OworMUY4MjsxRjgyOzAzQjEgMDMxMyAwMzAwIDAzNDU7MUY4MjswM0IxIDAzMTMgMDMwMCAwMzQ1OworMUY4MzsxRjgzOzAzQjEgMDMxNCAwMzAwIDAzNDU7MUY4MzswM0IxIDAzMTQgMDMwMCAwMzQ1OworMUY4NDsxRjg0OzAzQjEgMDMxMyAwMzAxIDAzNDU7MUY4NDswM0IxIDAzMTMgMDMwMSAwMzQ1OworMUY4NTsxRjg1OzAzQjEgMDMxNCAwMzAxIDAzNDU7MUY4NTswM0IxIDAzMTQgMDMwMSAwMzQ1OworMUY4NjsxRjg2OzAzQjEgMDMxMyAwMzQyIDAzNDU7MUY4NjswM0IxIDAzMTMgMDM0MiAwMzQ1OworMUY4NzsxRjg3OzAzQjEgMDMxNCAwMzQyIDAzNDU7MUY4NzswM0IxIDAzMTQgMDM0MiAwMzQ1OworMUY4ODsxRjg4OzAzOTEgMDMxMyAwMzQ1OzFGODg7MDM5MSAwMzEzIDAzNDU7CisxRjg5OzFGODk7MDM5MSAwMzE0IDAzNDU7MUY4OTswMzkxIDAzMTQgMDM0NTsKKzFGOEE7MUY4QTswMzkxIDAzMTMgMDMwMCAwMzQ1OzFGOEE7MDM5MSAwMzEzIDAzMDAgMDM0NTsKKzFGOEI7MUY4QjswMzkxIDAzMTQgMDMwMCAwMzQ1OzFGOEI7MDM5MSAwMzE0IDAzMDAgMDM0NTsKKzFGOEM7MUY4QzswMzkxIDAzMTMgMDMwMSAwMzQ1OzFGOEM7MDM5MSAwMzEzIDAzMDEgMDM0NTsKKzFGOEQ7MUY4RDswMzkxIDAzMTQgMDMwMSAwMzQ1OzFGOEQ7MDM5MSAwMzE0IDAzMDEgMDM0NTsKKzFGOEU7MUY4RTswMzkxIDAzMTMgMDM0MiAwMzQ1OzFGOEU7MDM5MSAwMzEzIDAzNDIgMDM0NTsKKzFGOEY7MUY4RjswMzkxIDAzMTQgMDM0MiAwMzQ1OzFGOEY7MDM5MSAwMzE0IDAzNDIgMDM0NTsKKzFGOTA7MUY5MDswM0I3IDAzMTMgMDM0NTsxRjkwOzAzQjcgMDMxMyAwMzQ1OworMUY5MTsxRjkxOzAzQjcgMDMxNCAwMzQ1OzFGOTE7MDNCNyAwMzE0IDAzNDU7CisxRjkyOzFGOTI7MDNCNyAwMzEzIDAzMDAgMDM0NTsxRjkyOzAzQjcgMDMxMyAwMzAwIDAzNDU7CisxRjkzOzFGOTM7MDNCNyAwMzE0IDAzMDAgMDM0NTsxRjkzOzAzQjcgMDMxNCAwMzAwIDAzNDU7CisxRjk0OzFGOTQ7MDNCNyAwMzEzIDAzMDEgMDM0NTsxRjk0OzAzQjcgMDMxMyAwMzAxIDAzNDU7CisxRjk1OzFGOTU7MDNCNyAwMzE0IDAzMDEgMDM0NTsxRjk1OzAzQjcgMDMxNCAwMzAxIDAzNDU7CisxRjk2OzFGOTY7MDNCNyAwMzEzIDAzNDIgMDM0NTsxRjk2OzAzQjcgMDMxMyAwMzQyIDAzNDU7CisxRjk3OzFGOTc7MDNCNyAwMzE0IDAzNDIgMDM0NTsxRjk3OzAzQjcgMDMxNCAwMzQyIDAzNDU7CisxRjk4OzFGOTg7MDM5NyAwMzEzIDAzNDU7MUY5ODswMzk3IDAzMTMgMDM0NTsKKzFGOTk7MUY5OTswMzk3IDAzMTQgMDM0NTsxRjk5OzAzOTcgMDMxNCAwMzQ1OworMUY5QTsxRjlBOzAzOTcgMDMxMyAwMzAwIDAzNDU7MUY5QTswMzk3IDAzMTMgMDMwMCAwMzQ1OworMUY5QjsxRjlCOzAzOTcgMDMxNCAwMzAwIDAzNDU7MUY5QjswMzk3IDAzMTQgMDMwMCAwMzQ1OworMUY5QzsxRjlDOzAzOTcgMDMxMyAwMzAxIDAzNDU7MUY5QzswMzk3IDAzMTMgMDMwMSAwMzQ1OworMUY5RDsxRjlEOzAzOTcgMDMxNCAwMzAxIDAzNDU7MUY5RDswMzk3IDAzMTQgMDMwMSAwMzQ1OworMUY5RTsxRjlFOzAzOTcgMDMxMyAwMzQyIDAzNDU7MUY5RTswMzk3IDAzMTMgMDM0MiAwMzQ1OworMUY5RjsxRjlGOzAzOTcgMDMxNCAwMzQyIDAzNDU7MUY5RjswMzk3IDAzMTQgMDM0MiAwMzQ1OworMUZBMDsxRkEwOzAzQzkgMDMxMyAwMzQ1OzFGQTA7MDNDOSAwMzEzIDAzNDU7CisxRkExOzFGQTE7MDNDOSAwMzE0IDAzNDU7MUZBMTswM0M5IDAzMTQgMDM0NTsKKzFGQTI7MUZBMjswM0M5IDAzMTMgMDMwMCAwMzQ1OzFGQTI7MDNDOSAwMzEzIDAzMDAgMDM0NTsKKzFGQTM7MUZBMzswM0M5IDAzMTQgMDMwMCAwMzQ1OzFGQTM7MDNDOSAwMzE0IDAzMDAgMDM0NTsKKzFGQTQ7MUZBNDswM0M5IDAzMTMgMDMwMSAwMzQ1OzFGQTQ7MDNDOSAwMzEzIDAzMDEgMDM0NTsKKzFGQTU7MUZBNTswM0M5IDAzMTQgMDMwMSAwMzQ1OzFGQTU7MDNDOSAwMzE0IDAzMDEgMDM0NTsKKzFGQTY7MUZBNjswM0M5IDAzMTMgMDM0MiAwMzQ1OzFGQTY7MDNDOSAwMzEzIDAzNDIgMDM0NTsKKzFGQTc7MUZBNzswM0M5IDAzMTQgMDM0MiAwMzQ1OzFGQTc7MDNDOSAwMzE0IDAzNDIgMDM0NTsKKzFGQTg7MUZBODswM0E5IDAzMTMgMDM0NTsxRkE4OzAzQTkgMDMxMyAwMzQ1OworMUZBOTsxRkE5OzAzQTkgMDMxNCAwMzQ1OzFGQTk7MDNBOSAwMzE0IDAzNDU7CisxRkFBOzFGQUE7MDNBOSAwMzEzIDAzMDAgMDM0NTsxRkFBOzAzQTkgMDMxMyAwMzAwIDAzNDU7CisxRkFCOzFGQUI7MDNBOSAwMzE0IDAzMDAgMDM0NTsxRkFCOzAzQTkgMDMxNCAwMzAwIDAzNDU7CisxRkFDOzFGQUM7MDNBOSAwMzEzIDAzMDEgMDM0NTsxRkFDOzAzQTkgMDMxMyAwMzAxIDAzNDU7CisxRkFEOzFGQUQ7MDNBOSAwMzE0IDAzMDEgMDM0NTsxRkFEOzAzQTkgMDMxNCAwMzAxIDAzNDU7CisxRkFFOzFGQUU7MDNBOSAwMzEzIDAzNDIgMDM0NTsxRkFFOzAzQTkgMDMxMyAwMzQyIDAzNDU7CisxRkFGOzFGQUY7MDNBOSAwMzE0IDAzNDIgMDM0NTsxRkFGOzAzQTkgMDMxNCAwMzQyIDAzNDU7CisxRkIwOzFGQjA7MDNCMSAwMzA2OzFGQjA7MDNCMSAwMzA2OworMUZCMTsxRkIxOzAzQjEgMDMwNDsxRkIxOzAzQjEgMDMwNDsKKzFGQjI7MUZCMjswM0IxIDAzMDAgMDM0NTsxRkIyOzAzQjEgMDMwMCAwMzQ1OworMUZCMzsxRkIzOzAzQjEgMDM0NTsxRkIzOzAzQjEgMDM0NTsKKzFGQjQ7MUZCNDswM0IxIDAzMDEgMDM0NTsxRkI0OzAzQjEgMDMwMSAwMzQ1OworMUZCNjsxRkI2OzAzQjEgMDM0MjsxRkI2OzAzQjEgMDM0MjsKKzFGQjc7MUZCNzswM0IxIDAzNDIgMDM0NTsxRkI3OzAzQjEgMDM0MiAwMzQ1OworMUZCODsxRkI4OzAzOTEgMDMwNjsxRkI4OzAzOTEgMDMwNjsKKzFGQjk7MUZCOTswMzkxIDAzMDQ7MUZCOTswMzkxIDAzMDQ7CisxRkJBOzFGQkE7MDM5MSAwMzAwOzFGQkE7MDM5MSAwMzAwOworMUZCQjswMzg2OzAzOTEgMDMwMTswMzg2OzAzOTEgMDMwMTsKKzFGQkM7MUZCQzswMzkxIDAzNDU7MUZCQzswMzkxIDAzNDU7CisxRkJEOzFGQkQ7MUZCRDswMDIwIDAzMTM7MDAyMCAwMzEzOworMUZCRTswM0I5OzAzQjk7MDNCOTswM0I5OworMUZCRjsxRkJGOzFGQkY7MDAyMCAwMzEzOzAwMjAgMDMxMzsKKzFGQzA7MUZDMDsxRkMwOzAwMjAgMDM0MjswMDIwIDAzNDI7CisxRkMxOzFGQzE7MDBBOCAwMzQyOzAwMjAgMDMwOCAwMzQyOzAwMjAgMDMwOCAwMzQyOworMUZDMjsxRkMyOzAzQjcgMDMwMCAwMzQ1OzFGQzI7MDNCNyAwMzAwIDAzNDU7CisxRkMzOzFGQzM7MDNCNyAwMzQ1OzFGQzM7MDNCNyAwMzQ1OworMUZDNDsxRkM0OzAzQjcgMDMwMSAwMzQ1OzFGQzQ7MDNCNyAwMzAxIDAzNDU7CisxRkM2OzFGQzY7MDNCNyAwMzQyOzFGQzY7MDNCNyAwMzQyOworMUZDNzsxRkM3OzAzQjcgMDM0MiAwMzQ1OzFGQzc7MDNCNyAwMzQyIDAzNDU7CisxRkM4OzFGQzg7MDM5NSAwMzAwOzFGQzg7MDM5NSAwMzAwOworMUZDOTswMzg4OzAzOTUgMDMwMTswMzg4OzAzOTUgMDMwMTsKKzFGQ0E7MUZDQTswMzk3IDAzMDA7MUZDQTswMzk3IDAzMDA7CisxRkNCOzAzODk7MDM5NyAwMzAxOzAzODk7MDM5NyAwMzAxOworMUZDQzsxRkNDOzAzOTcgMDM0NTsxRkNDOzAzOTcgMDM0NTsKKzFGQ0Q7MUZDRDsxRkJGIDAzMDA7MDAyMCAwMzEzIDAzMDA7MDAyMCAwMzEzIDAzMDA7CisxRkNFOzFGQ0U7MUZCRiAwMzAxOzAwMjAgMDMxMyAwMzAxOzAwMjAgMDMxMyAwMzAxOworMUZDRjsxRkNGOzFGQkYgMDM0MjswMDIwIDAzMTMgMDM0MjswMDIwIDAzMTMgMDM0MjsKKzFGRDA7MUZEMDswM0I5IDAzMDY7MUZEMDswM0I5IDAzMDY7CisxRkQxOzFGRDE7MDNCOSAwMzA0OzFGRDE7MDNCOSAwMzA0OworMUZEMjsxRkQyOzAzQjkgMDMwOCAwMzAwOzFGRDI7MDNCOSAwMzA4IDAzMDA7CisxRkQzOzAzOTA7MDNCOSAwMzA4IDAzMDE7MDM5MDswM0I5IDAzMDggMDMwMTsKKzFGRDY7MUZENjswM0I5IDAzNDI7MUZENjswM0I5IDAzNDI7CisxRkQ3OzFGRDc7MDNCOSAwMzA4IDAzNDI7MUZENzswM0I5IDAzMDggMDM0MjsKKzFGRDg7MUZEODswMzk5IDAzMDY7MUZEODswMzk5IDAzMDY7CisxRkQ5OzFGRDk7MDM5OSAwMzA0OzFGRDk7MDM5OSAwMzA0OworMUZEQTsxRkRBOzAzOTkgMDMwMDsxRkRBOzAzOTkgMDMwMDsKKzFGREI7MDM4QTswMzk5IDAzMDE7MDM4QTswMzk5IDAzMDE7CisxRkREOzFGREQ7MUZGRSAwMzAwOzAwMjAgMDMxNCAwMzAwOzAwMjAgMDMxNCAwMzAwOworMUZERTsxRkRFOzFGRkUgMDMwMTswMDIwIDAzMTQgMDMwMTswMDIwIDAzMTQgMDMwMTsKKzFGREY7MUZERjsxRkZFIDAzNDI7MDAyMCAwMzE0IDAzNDI7MDAyMCAwMzE0IDAzNDI7CisxRkUwOzFGRTA7MDNDNSAwMzA2OzFGRTA7MDNDNSAwMzA2OworMUZFMTsxRkUxOzAzQzUgMDMwNDsxRkUxOzAzQzUgMDMwNDsKKzFGRTI7MUZFMjswM0M1IDAzMDggMDMwMDsxRkUyOzAzQzUgMDMwOCAwMzAwOworMUZFMzswM0IwOzAzQzUgMDMwOCAwMzAxOzAzQjA7MDNDNSAwMzA4IDAzMDE7CisxRkU0OzFGRTQ7MDNDMSAwMzEzOzFGRTQ7MDNDMSAwMzEzOworMUZFNTsxRkU1OzAzQzEgMDMxNDsxRkU1OzAzQzEgMDMxNDsKKzFGRTY7MUZFNjswM0M1IDAzNDI7MUZFNjswM0M1IDAzNDI7CisxRkU3OzFGRTc7MDNDNSAwMzA4IDAzNDI7MUZFNzswM0M1IDAzMDggMDM0MjsKKzFGRTg7MUZFODswM0E1IDAzMDY7MUZFODswM0E1IDAzMDY7CisxRkU5OzFGRTk7MDNBNSAwMzA0OzFGRTk7MDNBNSAwMzA0OworMUZFQTsxRkVBOzAzQTUgMDMwMDsxRkVBOzAzQTUgMDMwMDsKKzFGRUI7MDM4RTswM0E1IDAzMDE7MDM4RTswM0E1IDAzMDE7CisxRkVDOzFGRUM7MDNBMSAwMzE0OzFGRUM7MDNBMSAwMzE0OworMUZFRDsxRkVEOzAwQTggMDMwMDswMDIwIDAzMDggMDMwMDswMDIwIDAzMDggMDMwMDsKKzFGRUU7MDM4NTswMEE4IDAzMDE7MDAyMCAwMzA4IDAzMDE7MDAyMCAwMzA4IDAzMDE7CisxRkVGOzAwNjA7MDA2MDswMDYwOzAwNjA7CisxRkYyOzFGRjI7MDNDOSAwMzAwIDAzNDU7MUZGMjswM0M5IDAzMDAgMDM0NTsKKzFGRjM7MUZGMzswM0M5IDAzNDU7MUZGMzswM0M5IDAzNDU7CisxRkY0OzFGRjQ7MDNDOSAwMzAxIDAzNDU7MUZGNDswM0M5IDAzMDEgMDM0NTsKKzFGRjY7MUZGNjswM0M5IDAzNDI7MUZGNjswM0M5IDAzNDI7CisxRkY3OzFGRjc7MDNDOSAwMzQyIDAzNDU7MUZGNzswM0M5IDAzNDIgMDM0NTsKKzFGRjg7MUZGODswMzlGIDAzMDA7MUZGODswMzlGIDAzMDA7CisxRkY5OzAzOEM7MDM5RiAwMzAxOzAzOEM7MDM5RiAwMzAxOworMUZGQTsxRkZBOzAzQTkgMDMwMDsxRkZBOzAzQTkgMDMwMDsKKzFGRkI7MDM4RjswM0E5IDAzMDE7MDM4RjswM0E5IDAzMDE7CisxRkZDOzFGRkM7MDNBOSAwMzQ1OzFGRkM7MDNBOSAwMzQ1OworMUZGRDswMEI0OzAwQjQ7MDAyMCAwMzAxOzAwMjAgMDMwMTsKKzFGRkU7MUZGRTsxRkZFOzAwMjAgMDMxNDswMDIwIDAzMTQ7CisyMDAwOzIwMDI7MjAwMjswMDIwOzAwMjA7CisyMDAxOzIwMDM7MjAwMzswMDIwOzAwMjA7CisyMDAyOzIwMDI7MjAwMjswMDIwOzAwMjA7CisyMDAzOzIwMDM7MjAwMzswMDIwOzAwMjA7CisyMDA0OzIwMDQ7MjAwNDswMDIwOzAwMjA7CisyMDA1OzIwMDU7MjAwNTswMDIwOzAwMjA7CisyMDA2OzIwMDY7MjAwNjswMDIwOzAwMjA7CisyMDA3OzIwMDc7MjAwNzswMDIwOzAwMjA7CisyMDA4OzIwMDg7MjAwODswMDIwOzAwMjA7CisyMDA5OzIwMDk7MjAwOTswMDIwOzAwMjA7CisyMDBBOzIwMEE7MjAwQTswMDIwOzAwMjA7CisyMDExOzIwMTE7MjAxMTsyMDEwOzIwMTA7CisyMDE3OzIwMTc7MjAxNzswMDIwIDAzMzM7MDAyMCAwMzMzOworMjAyNDsyMDI0OzIwMjQ7MDAyRTswMDJFOworMjAyNTsyMDI1OzIwMjU7MDAyRSAwMDJFOzAwMkUgMDAyRTsKKzIwMjY7MjAyNjsyMDI2OzAwMkUgMDAyRSAwMDJFOzAwMkUgMDAyRSAwMDJFOworMjAyRjsyMDJGOzIwMkY7MDAyMDswMDIwOworMjAzMzsyMDMzOzIwMzM7MjAzMiAyMDMyOzIwMzIgMjAzMjsKKzIwMzQ7MjAzNDsyMDM0OzIwMzIgMjAzMiAyMDMyOzIwMzIgMjAzMiAyMDMyOworMjAzNjsyMDM2OzIwMzY7MjAzNSAyMDM1OzIwMzUgMjAzNTsKKzIwMzc7MjAzNzsyMDM3OzIwMzUgMjAzNSAyMDM1OzIwMzUgMjAzNSAyMDM1OworMjAzQzsyMDNDOzIwM0M7MDAyMSAwMDIxOzAwMjEgMDAyMTsKKzIwM0U7MjAzRTsyMDNFOzAwMjAgMDMwNTswMDIwIDAzMDU7CisyMDQ3OzIwNDc7MjA0NzswMDNGIDAwM0Y7MDAzRiAwMDNGOworMjA0ODsyMDQ4OzIwNDg7MDAzRiAwMDIxOzAwM0YgMDAyMTsKKzIwNDk7MjA0OTsyMDQ5OzAwMjEgMDAzRjswMDIxIDAwM0Y7CisyMDU3OzIwNTc7MjA1NzsyMDMyIDIwMzIgMjAzMiAyMDMyOzIwMzIgMjAzMiAyMDMyIDIwMzI7CisyMDVGOzIwNUY7MjA1RjswMDIwOzAwMjA7CisyMDcwOzIwNzA7MjA3MDswMDMwOzAwMzA7CisyMDcxOzIwNzE7MjA3MTswMDY5OzAwNjk7CisyMDc0OzIwNzQ7MjA3NDswMDM0OzAwMzQ7CisyMDc1OzIwNzU7MjA3NTswMDM1OzAwMzU7CisyMDc2OzIwNzY7MjA3NjswMDM2OzAwMzY7CisyMDc3OzIwNzc7MjA3NzswMDM3OzAwMzc7CisyMDc4OzIwNzg7MjA3ODswMDM4OzAwMzg7CisyMDc5OzIwNzk7MjA3OTswMDM5OzAwMzk7CisyMDdBOzIwN0E7MjA3QTswMDJCOzAwMkI7CisyMDdCOzIwN0I7MjA3QjsyMjEyOzIyMTI7CisyMDdDOzIwN0M7MjA3QzswMDNEOzAwM0Q7CisyMDdEOzIwN0Q7MjA3RDswMDI4OzAwMjg7CisyMDdFOzIwN0U7MjA3RTswMDI5OzAwMjk7CisyMDdGOzIwN0Y7MjA3RjswMDZFOzAwNkU7CisyMDgwOzIwODA7MjA4MDswMDMwOzAwMzA7CisyMDgxOzIwODE7MjA4MTswMDMxOzAwMzE7CisyMDgyOzIwODI7MjA4MjswMDMyOzAwMzI7CisyMDgzOzIwODM7MjA4MzswMDMzOzAwMzM7CisyMDg0OzIwODQ7MjA4NDswMDM0OzAwMzQ7CisyMDg1OzIwODU7MjA4NTswMDM1OzAwMzU7CisyMDg2OzIwODY7MjA4NjswMDM2OzAwMzY7CisyMDg3OzIwODc7MjA4NzswMDM3OzAwMzc7CisyMDg4OzIwODg7MjA4ODswMDM4OzAwMzg7CisyMDg5OzIwODk7MjA4OTswMDM5OzAwMzk7CisyMDhBOzIwOEE7MjA4QTswMDJCOzAwMkI7CisyMDhCOzIwOEI7MjA4QjsyMjEyOzIyMTI7CisyMDhDOzIwOEM7MjA4QzswMDNEOzAwM0Q7CisyMDhEOzIwOEQ7MjA4RDswMDI4OzAwMjg7CisyMDhFOzIwOEU7MjA4RTswMDI5OzAwMjk7CisyMEE4OzIwQTg7MjBBODswMDUyIDAwNzM7MDA1MiAwMDczOworMjEwMDsyMTAwOzIxMDA7MDA2MSAwMDJGIDAwNjM7MDA2MSAwMDJGIDAwNjM7CisyMTAxOzIxMDE7MjEwMTswMDYxIDAwMkYgMDA3MzswMDYxIDAwMkYgMDA3MzsKKzIxMDI7MjEwMjsyMTAyOzAwNDM7MDA0MzsKKzIxMDM7MjEwMzsyMTAzOzAwQjAgMDA0MzswMEIwIDAwNDM7CisyMTA1OzIxMDU7MjEwNTswMDYzIDAwMkYgMDA2RjswMDYzIDAwMkYgMDA2RjsKKzIxMDY7MjEwNjsyMTA2OzAwNjMgMDAyRiAwMDc1OzAwNjMgMDAyRiAwMDc1OworMjEwNzsyMTA3OzIxMDc7MDE5MDswMTkwOworMjEwOTsyMTA5OzIxMDk7MDBCMCAwMDQ2OzAwQjAgMDA0NjsKKzIxMEE7MjEwQTsyMTBBOzAwNjc7MDA2NzsKKzIxMEI7MjEwQjsyMTBCOzAwNDg7MDA0ODsKKzIxMEM7MjEwQzsyMTBDOzAwNDg7MDA0ODsKKzIxMEQ7MjEwRDsyMTBEOzAwNDg7MDA0ODsKKzIxMEU7MjEwRTsyMTBFOzAwNjg7MDA2ODsKKzIxMEY7MjEwRjsyMTBGOzAxMjc7MDEyNzsKKzIxMTA7MjExMDsyMTEwOzAwNDk7MDA0OTsKKzIxMTE7MjExMTsyMTExOzAwNDk7MDA0OTsKKzIxMTI7MjExMjsyMTEyOzAwNEM7MDA0QzsKKzIxMTM7MjExMzsyMTEzOzAwNkM7MDA2QzsKKzIxMTU7MjExNTsyMTE1OzAwNEU7MDA0RTsKKzIxMTY7MjExNjsyMTE2OzAwNEUgMDA2RjswMDRFIDAwNkY7CisyMTE5OzIxMTk7MjExOTswMDUwOzAwNTA7CisyMTFBOzIxMUE7MjExQTswMDUxOzAwNTE7CisyMTFCOzIxMUI7MjExQjswMDUyOzAwNTI7CisyMTFDOzIxMUM7MjExQzswMDUyOzAwNTI7CisyMTFEOzIxMUQ7MjExRDswMDUyOzAwNTI7CisyMTIwOzIxMjA7MjEyMDswMDUzIDAwNEQ7MDA1MyAwMDREOworMjEyMTsyMTIxOzIxMjE7MDA1NCAwMDQ1IDAwNEM7MDA1NCAwMDQ1IDAwNEM7CisyMTIyOzIxMjI7MjEyMjswMDU0IDAwNEQ7MDA1NCAwMDREOworMjEyNDsyMTI0OzIxMjQ7MDA1QTswMDVBOworMjEyNjswM0E5OzAzQTk7MDNBOTswM0E5OworMjEyODsyMTI4OzIxMjg7MDA1QTswMDVBOworMjEyQTswMDRCOzAwNEI7MDA0QjswMDRCOworMjEyQjswMEM1OzAwNDEgMDMwQTswMEM1OzAwNDEgMDMwQTsKKzIxMkM7MjEyQzsyMTJDOzAwNDI7MDA0MjsKKzIxMkQ7MjEyRDsyMTJEOzAwNDM7MDA0MzsKKzIxMkY7MjEyRjsyMTJGOzAwNjU7MDA2NTsKKzIxMzA7MjEzMDsyMTMwOzAwNDU7MDA0NTsKKzIxMzE7MjEzMTsyMTMxOzAwNDY7MDA0NjsKKzIxMzM7MjEzMzsyMTMzOzAwNEQ7MDA0RDsKKzIxMzQ7MjEzNDsyMTM0OzAwNkY7MDA2RjsKKzIxMzU7MjEzNTsyMTM1OzA1RDA7MDVEMDsKKzIxMzY7MjEzNjsyMTM2OzA1RDE7MDVEMTsKKzIxMzc7MjEzNzsyMTM3OzA1RDI7MDVEMjsKKzIxMzg7MjEzODsyMTM4OzA1RDM7MDVEMzsKKzIxMzk7MjEzOTsyMTM5OzAwNjk7MDA2OTsKKzIxM0Q7MjEzRDsyMTNEOzAzQjM7MDNCMzsKKzIxM0U7MjEzRTsyMTNFOzAzOTM7MDM5MzsKKzIxM0Y7MjEzRjsyMTNGOzAzQTA7MDNBMDsKKzIxNDA7MjE0MDsyMTQwOzIyMTE7MjIxMTsKKzIxNDU7MjE0NTsyMTQ1OzAwNDQ7MDA0NDsKKzIxNDY7MjE0NjsyMTQ2OzAwNjQ7MDA2NDsKKzIxNDc7MjE0NzsyMTQ3OzAwNjU7MDA2NTsKKzIxNDg7MjE0ODsyMTQ4OzAwNjk7MDA2OTsKKzIxNDk7MjE0OTsyMTQ5OzAwNkE7MDA2QTsKKzIxNTM7MjE1MzsyMTUzOzAwMzEgMjA0NCAwMDMzOzAwMzEgMjA0NCAwMDMzOworMjE1NDsyMTU0OzIxNTQ7MDAzMiAyMDQ0IDAwMzM7MDAzMiAyMDQ0IDAwMzM7CisyMTU1OzIxNTU7MjE1NTswMDMxIDIwNDQgMDAzNTswMDMxIDIwNDQgMDAzNTsKKzIxNTY7MjE1NjsyMTU2OzAwMzIgMjA0NCAwMDM1OzAwMzIgMjA0NCAwMDM1OworMjE1NzsyMTU3OzIxNTc7MDAzMyAyMDQ0IDAwMzU7MDAzMyAyMDQ0IDAwMzU7CisyMTU4OzIxNTg7MjE1ODswMDM0IDIwNDQgMDAzNTswMDM0IDIwNDQgMDAzNTsKKzIxNTk7MjE1OTsyMTU5OzAwMzEgMjA0NCAwMDM2OzAwMzEgMjA0NCAwMDM2OworMjE1QTsyMTVBOzIxNUE7MDAzNSAyMDQ0IDAwMzY7MDAzNSAyMDQ0IDAwMzY7CisyMTVCOzIxNUI7MjE1QjswMDMxIDIwNDQgMDAzODswMDMxIDIwNDQgMDAzODsKKzIxNUM7MjE1QzsyMTVDOzAwMzMgMjA0NCAwMDM4OzAwMzMgMjA0NCAwMDM4OworMjE1RDsyMTVEOzIxNUQ7MDAzNSAyMDQ0IDAwMzg7MDAzNSAyMDQ0IDAwMzg7CisyMTVFOzIxNUU7MjE1RTswMDM3IDIwNDQgMDAzODswMDM3IDIwNDQgMDAzODsKKzIxNUY7MjE1RjsyMTVGOzAwMzEgMjA0NDswMDMxIDIwNDQ7CisyMTYwOzIxNjA7MjE2MDswMDQ5OzAwNDk7CisyMTYxOzIxNjE7MjE2MTswMDQ5IDAwNDk7MDA0OSAwMDQ5OworMjE2MjsyMTYyOzIxNjI7MDA0OSAwMDQ5IDAwNDk7MDA0OSAwMDQ5IDAwNDk7CisyMTYzOzIxNjM7MjE2MzswMDQ5IDAwNTY7MDA0OSAwMDU2OworMjE2NDsyMTY0OzIxNjQ7MDA1NjswMDU2OworMjE2NTsyMTY1OzIxNjU7MDA1NiAwMDQ5OzAwNTYgMDA0OTsKKzIxNjY7MjE2NjsyMTY2OzAwNTYgMDA0OSAwMDQ5OzAwNTYgMDA0OSAwMDQ5OworMjE2NzsyMTY3OzIxNjc7MDA1NiAwMDQ5IDAwNDkgMDA0OTswMDU2IDAwNDkgMDA0OSAwMDQ5OworMjE2ODsyMTY4OzIxNjg7MDA0OSAwMDU4OzAwNDkgMDA1ODsKKzIxNjk7MjE2OTsyMTY5OzAwNTg7MDA1ODsKKzIxNkE7MjE2QTsyMTZBOzAwNTggMDA0OTswMDU4IDAwNDk7CisyMTZCOzIxNkI7MjE2QjswMDU4IDAwNDkgMDA0OTswMDU4IDAwNDkgMDA0OTsKKzIxNkM7MjE2QzsyMTZDOzAwNEM7MDA0QzsKKzIxNkQ7MjE2RDsyMTZEOzAwNDM7MDA0MzsKKzIxNkU7MjE2RTsyMTZFOzAwNDQ7MDA0NDsKKzIxNkY7MjE2RjsyMTZGOzAwNEQ7MDA0RDsKKzIxNzA7MjE3MDsyMTcwOzAwNjk7MDA2OTsKKzIxNzE7MjE3MTsyMTcxOzAwNjkgMDA2OTswMDY5IDAwNjk7CisyMTcyOzIxNzI7MjE3MjswMDY5IDAwNjkgMDA2OTswMDY5IDAwNjkgMDA2OTsKKzIxNzM7MjE3MzsyMTczOzAwNjkgMDA3NjswMDY5IDAwNzY7CisyMTc0OzIxNzQ7MjE3NDswMDc2OzAwNzY7CisyMTc1OzIxNzU7MjE3NTswMDc2IDAwNjk7MDA3NiAwMDY5OworMjE3NjsyMTc2OzIxNzY7MDA3NiAwMDY5IDAwNjk7MDA3NiAwMDY5IDAwNjk7CisyMTc3OzIxNzc7MjE3NzswMDc2IDAwNjkgMDA2OSAwMDY5OzAwNzYgMDA2OSAwMDY5IDAwNjk7CisyMTc4OzIxNzg7MjE3ODswMDY5IDAwNzg7MDA2OSAwMDc4OworMjE3OTsyMTc5OzIxNzk7MDA3ODswMDc4OworMjE3QTsyMTdBOzIxN0E7MDA3OCAwMDY5OzAwNzggMDA2OTsKKzIxN0I7MjE3QjsyMTdCOzAwNzggMDA2OSAwMDY5OzAwNzggMDA2OSAwMDY5OworMjE3QzsyMTdDOzIxN0M7MDA2QzswMDZDOworMjE3RDsyMTdEOzIxN0Q7MDA2MzswMDYzOworMjE3RTsyMTdFOzIxN0U7MDA2NDswMDY0OworMjE3RjsyMTdGOzIxN0Y7MDA2RDswMDZEOworMjE5QTsyMTlBOzIxOTAgMDMzODsyMTlBOzIxOTAgMDMzODsKKzIxOUI7MjE5QjsyMTkyIDAzMzg7MjE5QjsyMTkyIDAzMzg7CisyMUFFOzIxQUU7MjE5NCAwMzM4OzIxQUU7MjE5NCAwMzM4OworMjFDRDsyMUNEOzIxRDAgMDMzODsyMUNEOzIxRDAgMDMzODsKKzIxQ0U7MjFDRTsyMUQ0IDAzMzg7MjFDRTsyMUQ0IDAzMzg7CisyMUNGOzIxQ0Y7MjFEMiAwMzM4OzIxQ0Y7MjFEMiAwMzM4OworMjIwNDsyMjA0OzIyMDMgMDMzODsyMjA0OzIyMDMgMDMzODsKKzIyMDk7MjIwOTsyMjA4IDAzMzg7MjIwOTsyMjA4IDAzMzg7CisyMjBDOzIyMEM7MjIwQiAwMzM4OzIyMEM7MjIwQiAwMzM4OworMjIyNDsyMjI0OzIyMjMgMDMzODsyMjI0OzIyMjMgMDMzODsKKzIyMjY7MjIyNjsyMjI1IDAzMzg7MjIyNjsyMjI1IDAzMzg7CisyMjJDOzIyMkM7MjIyQzsyMjJCIDIyMkI7MjIyQiAyMjJCOworMjIyRDsyMjJEOzIyMkQ7MjIyQiAyMjJCIDIyMkI7MjIyQiAyMjJCIDIyMkI7CisyMjJGOzIyMkY7MjIyRjsyMjJFIDIyMkU7MjIyRSAyMjJFOworMjIzMDsyMjMwOzIyMzA7MjIyRSAyMjJFIDIyMkU7MjIyRSAyMjJFIDIyMkU7CisyMjQxOzIyNDE7MjIzQyAwMzM4OzIyNDE7MjIzQyAwMzM4OworMjI0NDsyMjQ0OzIyNDMgMDMzODsyMjQ0OzIyNDMgMDMzODsKKzIyNDc7MjI0NzsyMjQ1IDAzMzg7MjI0NzsyMjQ1IDAzMzg7CisyMjQ5OzIyNDk7MjI0OCAwMzM4OzIyNDk7MjI0OCAwMzM4OworMjI2MDsyMjYwOzAwM0QgMDMzODsyMjYwOzAwM0QgMDMzODsKKzIyNjI7MjI2MjsyMjYxIDAzMzg7MjI2MjsyMjYxIDAzMzg7CisyMjZEOzIyNkQ7MjI0RCAwMzM4OzIyNkQ7MjI0RCAwMzM4OworMjI2RTsyMjZFOzAwM0MgMDMzODsyMjZFOzAwM0MgMDMzODsKKzIyNkY7MjI2RjswMDNFIDAzMzg7MjI2RjswMDNFIDAzMzg7CisyMjcwOzIyNzA7MjI2NCAwMzM4OzIyNzA7MjI2NCAwMzM4OworMjI3MTsyMjcxOzIyNjUgMDMzODsyMjcxOzIyNjUgMDMzODsKKzIyNzQ7MjI3NDsyMjcyIDAzMzg7MjI3NDsyMjcyIDAzMzg7CisyMjc1OzIyNzU7MjI3MyAwMzM4OzIyNzU7MjI3MyAwMzM4OworMjI3ODsyMjc4OzIyNzYgMDMzODsyMjc4OzIyNzYgMDMzODsKKzIyNzk7MjI3OTsyMjc3IDAzMzg7MjI3OTsyMjc3IDAzMzg7CisyMjgwOzIyODA7MjI3QSAwMzM4OzIyODA7MjI3QSAwMzM4OworMjI4MTsyMjgxOzIyN0IgMDMzODsyMjgxOzIyN0IgMDMzODsKKzIyODQ7MjI4NDsyMjgyIDAzMzg7MjI4NDsyMjgyIDAzMzg7CisyMjg1OzIyODU7MjI4MyAwMzM4OzIyODU7MjI4MyAwMzM4OworMjI4ODsyMjg4OzIyODYgMDMzODsyMjg4OzIyODYgMDMzODsKKzIyODk7MjI4OTsyMjg3IDAzMzg7MjI4OTsyMjg3IDAzMzg7CisyMkFDOzIyQUM7MjJBMiAwMzM4OzIyQUM7MjJBMiAwMzM4OworMjJBRDsyMkFEOzIyQTggMDMzODsyMkFEOzIyQTggMDMzODsKKzIyQUU7MjJBRTsyMkE5IDAzMzg7MjJBRTsyMkE5IDAzMzg7CisyMkFGOzIyQUY7MjJBQiAwMzM4OzIyQUY7MjJBQiAwMzM4OworMjJFMDsyMkUwOzIyN0MgMDMzODsyMkUwOzIyN0MgMDMzODsKKzIyRTE7MjJFMTsyMjdEIDAzMzg7MjJFMTsyMjdEIDAzMzg7CisyMkUyOzIyRTI7MjI5MSAwMzM4OzIyRTI7MjI5MSAwMzM4OworMjJFMzsyMkUzOzIyOTIgMDMzODsyMkUzOzIyOTIgMDMzODsKKzIyRUE7MjJFQTsyMkIyIDAzMzg7MjJFQTsyMkIyIDAzMzg7CisyMkVCOzIyRUI7MjJCMyAwMzM4OzIyRUI7MjJCMyAwMzM4OworMjJFQzsyMkVDOzIyQjQgMDMzODsyMkVDOzIyQjQgMDMzODsKKzIyRUQ7MjJFRDsyMkI1IDAzMzg7MjJFRDsyMkI1IDAzMzg7CisyMzI5OzMwMDg7MzAwODszMDA4OzMwMDg7CisyMzJBOzMwMDk7MzAwOTszMDA5OzMwMDk7CisyNDYwOzI0NjA7MjQ2MDswMDMxOzAwMzE7CisyNDYxOzI0NjE7MjQ2MTswMDMyOzAwMzI7CisyNDYyOzI0NjI7MjQ2MjswMDMzOzAwMzM7CisyNDYzOzI0NjM7MjQ2MzswMDM0OzAwMzQ7CisyNDY0OzI0NjQ7MjQ2NDswMDM1OzAwMzU7CisyNDY1OzI0NjU7MjQ2NTswMDM2OzAwMzY7CisyNDY2OzI0NjY7MjQ2NjswMDM3OzAwMzc7CisyNDY3OzI0Njc7MjQ2NzswMDM4OzAwMzg7CisyNDY4OzI0Njg7MjQ2ODswMDM5OzAwMzk7CisyNDY5OzI0Njk7MjQ2OTswMDMxIDAwMzA7MDAzMSAwMDMwOworMjQ2QTsyNDZBOzI0NkE7MDAzMSAwMDMxOzAwMzEgMDAzMTsKKzI0NkI7MjQ2QjsyNDZCOzAwMzEgMDAzMjswMDMxIDAwMzI7CisyNDZDOzI0NkM7MjQ2QzswMDMxIDAwMzM7MDAzMSAwMDMzOworMjQ2RDsyNDZEOzI0NkQ7MDAzMSAwMDM0OzAwMzEgMDAzNDsKKzI0NkU7MjQ2RTsyNDZFOzAwMzEgMDAzNTswMDMxIDAwMzU7CisyNDZGOzI0NkY7MjQ2RjswMDMxIDAwMzY7MDAzMSAwMDM2OworMjQ3MDsyNDcwOzI0NzA7MDAzMSAwMDM3OzAwMzEgMDAzNzsKKzI0NzE7MjQ3MTsyNDcxOzAwMzEgMDAzODswMDMxIDAwMzg7CisyNDcyOzI0NzI7MjQ3MjswMDMxIDAwMzk7MDAzMSAwMDM5OworMjQ3MzsyNDczOzI0NzM7MDAzMiAwMDMwOzAwMzIgMDAzMDsKKzI0NzQ7MjQ3NDsyNDc0OzAwMjggMDAzMSAwMDI5OzAwMjggMDAzMSAwMDI5OworMjQ3NTsyNDc1OzI0NzU7MDAyOCAwMDMyIDAwMjk7MDAyOCAwMDMyIDAwMjk7CisyNDc2OzI0NzY7MjQ3NjswMDI4IDAwMzMgMDAyOTswMDI4IDAwMzMgMDAyOTsKKzI0Nzc7MjQ3NzsyNDc3OzAwMjggMDAzNCAwMDI5OzAwMjggMDAzNCAwMDI5OworMjQ3ODsyNDc4OzI0Nzg7MDAyOCAwMDM1IDAwMjk7MDAyOCAwMDM1IDAwMjk7CisyNDc5OzI0Nzk7MjQ3OTswMDI4IDAwMzYgMDAyOTswMDI4IDAwMzYgMDAyOTsKKzI0N0E7MjQ3QTsyNDdBOzAwMjggMDAzNyAwMDI5OzAwMjggMDAzNyAwMDI5OworMjQ3QjsyNDdCOzI0N0I7MDAyOCAwMDM4IDAwMjk7MDAyOCAwMDM4IDAwMjk7CisyNDdDOzI0N0M7MjQ3QzswMDI4IDAwMzkgMDAyOTswMDI4IDAwMzkgMDAyOTsKKzI0N0Q7MjQ3RDsyNDdEOzAwMjggMDAzMSAwMDMwIDAwMjk7MDAyOCAwMDMxIDAwMzAgMDAyOTsKKzI0N0U7MjQ3RTsyNDdFOzAwMjggMDAzMSAwMDMxIDAwMjk7MDAyOCAwMDMxIDAwMzEgMDAyOTsKKzI0N0Y7MjQ3RjsyNDdGOzAwMjggMDAzMSAwMDMyIDAwMjk7MDAyOCAwMDMxIDAwMzIgMDAyOTsKKzI0ODA7MjQ4MDsyNDgwOzAwMjggMDAzMSAwMDMzIDAwMjk7MDAyOCAwMDMxIDAwMzMgMDAyOTsKKzI0ODE7MjQ4MTsyNDgxOzAwMjggMDAzMSAwMDM0IDAwMjk7MDAyOCAwMDMxIDAwMzQgMDAyOTsKKzI0ODI7MjQ4MjsyNDgyOzAwMjggMDAzMSAwMDM1IDAwMjk7MDAyOCAwMDMxIDAwMzUgMDAyOTsKKzI0ODM7MjQ4MzsyNDgzOzAwMjggMDAzMSAwMDM2IDAwMjk7MDAyOCAwMDMxIDAwMzYgMDAyOTsKKzI0ODQ7MjQ4NDsyNDg0OzAwMjggMDAzMSAwMDM3IDAwMjk7MDAyOCAwMDMxIDAwMzcgMDAyOTsKKzI0ODU7MjQ4NTsyNDg1OzAwMjggMDAzMSAwMDM4IDAwMjk7MDAyOCAwMDMxIDAwMzggMDAyOTsKKzI0ODY7MjQ4NjsyNDg2OzAwMjggMDAzMSAwMDM5IDAwMjk7MDAyOCAwMDMxIDAwMzkgMDAyOTsKKzI0ODc7MjQ4NzsyNDg3OzAwMjggMDAzMiAwMDMwIDAwMjk7MDAyOCAwMDMyIDAwMzAgMDAyOTsKKzI0ODg7MjQ4ODsyNDg4OzAwMzEgMDAyRTswMDMxIDAwMkU7CisyNDg5OzI0ODk7MjQ4OTswMDMyIDAwMkU7MDAzMiAwMDJFOworMjQ4QTsyNDhBOzI0OEE7MDAzMyAwMDJFOzAwMzMgMDAyRTsKKzI0OEI7MjQ4QjsyNDhCOzAwMzQgMDAyRTswMDM0IDAwMkU7CisyNDhDOzI0OEM7MjQ4QzswMDM1IDAwMkU7MDAzNSAwMDJFOworMjQ4RDsyNDhEOzI0OEQ7MDAzNiAwMDJFOzAwMzYgMDAyRTsKKzI0OEU7MjQ4RTsyNDhFOzAwMzcgMDAyRTswMDM3IDAwMkU7CisyNDhGOzI0OEY7MjQ4RjswMDM4IDAwMkU7MDAzOCAwMDJFOworMjQ5MDsyNDkwOzI0OTA7MDAzOSAwMDJFOzAwMzkgMDAyRTsKKzI0OTE7MjQ5MTsyNDkxOzAwMzEgMDAzMCAwMDJFOzAwMzEgMDAzMCAwMDJFOworMjQ5MjsyNDkyOzI0OTI7MDAzMSAwMDMxIDAwMkU7MDAzMSAwMDMxIDAwMkU7CisyNDkzOzI0OTM7MjQ5MzswMDMxIDAwMzIgMDAyRTswMDMxIDAwMzIgMDAyRTsKKzI0OTQ7MjQ5NDsyNDk0OzAwMzEgMDAzMyAwMDJFOzAwMzEgMDAzMyAwMDJFOworMjQ5NTsyNDk1OzI0OTU7MDAzMSAwMDM0IDAwMkU7MDAzMSAwMDM0IDAwMkU7CisyNDk2OzI0OTY7MjQ5NjswMDMxIDAwMzUgMDAyRTswMDMxIDAwMzUgMDAyRTsKKzI0OTc7MjQ5NzsyNDk3OzAwMzEgMDAzNiAwMDJFOzAwMzEgMDAzNiAwMDJFOworMjQ5ODsyNDk4OzI0OTg7MDAzMSAwMDM3IDAwMkU7MDAzMSAwMDM3IDAwMkU7CisyNDk5OzI0OTk7MjQ5OTswMDMxIDAwMzggMDAyRTswMDMxIDAwMzggMDAyRTsKKzI0OUE7MjQ5QTsyNDlBOzAwMzEgMDAzOSAwMDJFOzAwMzEgMDAzOSAwMDJFOworMjQ5QjsyNDlCOzI0OUI7MDAzMiAwMDMwIDAwMkU7MDAzMiAwMDMwIDAwMkU7CisyNDlDOzI0OUM7MjQ5QzswMDI4IDAwNjEgMDAyOTswMDI4IDAwNjEgMDAyOTsKKzI0OUQ7MjQ5RDsyNDlEOzAwMjggMDA2MiAwMDI5OzAwMjggMDA2MiAwMDI5OworMjQ5RTsyNDlFOzI0OUU7MDAyOCAwMDYzIDAwMjk7MDAyOCAwMDYzIDAwMjk7CisyNDlGOzI0OUY7MjQ5RjswMDI4IDAwNjQgMDAyOTswMDI4IDAwNjQgMDAyOTsKKzI0QTA7MjRBMDsyNEEwOzAwMjggMDA2NSAwMDI5OzAwMjggMDA2NSAwMDI5OworMjRBMTsyNEExOzI0QTE7MDAyOCAwMDY2IDAwMjk7MDAyOCAwMDY2IDAwMjk7CisyNEEyOzI0QTI7MjRBMjswMDI4IDAwNjcgMDAyOTswMDI4IDAwNjcgMDAyOTsKKzI0QTM7MjRBMzsyNEEzOzAwMjggMDA2OCAwMDI5OzAwMjggMDA2OCAwMDI5OworMjRBNDsyNEE0OzI0QTQ7MDAyOCAwMDY5IDAwMjk7MDAyOCAwMDY5IDAwMjk7CisyNEE1OzI0QTU7MjRBNTswMDI4IDAwNkEgMDAyOTswMDI4IDAwNkEgMDAyOTsKKzI0QTY7MjRBNjsyNEE2OzAwMjggMDA2QiAwMDI5OzAwMjggMDA2QiAwMDI5OworMjRBNzsyNEE3OzI0QTc7MDAyOCAwMDZDIDAwMjk7MDAyOCAwMDZDIDAwMjk7CisyNEE4OzI0QTg7MjRBODswMDI4IDAwNkQgMDAyOTswMDI4IDAwNkQgMDAyOTsKKzI0QTk7MjRBOTsyNEE5OzAwMjggMDA2RSAwMDI5OzAwMjggMDA2RSAwMDI5OworMjRBQTsyNEFBOzI0QUE7MDAyOCAwMDZGIDAwMjk7MDAyOCAwMDZGIDAwMjk7CisyNEFCOzI0QUI7MjRBQjswMDI4IDAwNzAgMDAyOTswMDI4IDAwNzAgMDAyOTsKKzI0QUM7MjRBQzsyNEFDOzAwMjggMDA3MSAwMDI5OzAwMjggMDA3MSAwMDI5OworMjRBRDsyNEFEOzI0QUQ7MDAyOCAwMDcyIDAwMjk7MDAyOCAwMDcyIDAwMjk7CisyNEFFOzI0QUU7MjRBRTswMDI4IDAwNzMgMDAyOTswMDI4IDAwNzMgMDAyOTsKKzI0QUY7MjRBRjsyNEFGOzAwMjggMDA3NCAwMDI5OzAwMjggMDA3NCAwMDI5OworMjRCMDsyNEIwOzI0QjA7MDAyOCAwMDc1IDAwMjk7MDAyOCAwMDc1IDAwMjk7CisyNEIxOzI0QjE7MjRCMTswMDI4IDAwNzYgMDAyOTswMDI4IDAwNzYgMDAyOTsKKzI0QjI7MjRCMjsyNEIyOzAwMjggMDA3NyAwMDI5OzAwMjggMDA3NyAwMDI5OworMjRCMzsyNEIzOzI0QjM7MDAyOCAwMDc4IDAwMjk7MDAyOCAwMDc4IDAwMjk7CisyNEI0OzI0QjQ7MjRCNDswMDI4IDAwNzkgMDAyOTswMDI4IDAwNzkgMDAyOTsKKzI0QjU7MjRCNTsyNEI1OzAwMjggMDA3QSAwMDI5OzAwMjggMDA3QSAwMDI5OworMjRCNjsyNEI2OzI0QjY7MDA0MTswMDQxOworMjRCNzsyNEI3OzI0Qjc7MDA0MjswMDQyOworMjRCODsyNEI4OzI0Qjg7MDA0MzswMDQzOworMjRCOTsyNEI5OzI0Qjk7MDA0NDswMDQ0OworMjRCQTsyNEJBOzI0QkE7MDA0NTswMDQ1OworMjRCQjsyNEJCOzI0QkI7MDA0NjswMDQ2OworMjRCQzsyNEJDOzI0QkM7MDA0NzswMDQ3OworMjRCRDsyNEJEOzI0QkQ7MDA0ODswMDQ4OworMjRCRTsyNEJFOzI0QkU7MDA0OTswMDQ5OworMjRCRjsyNEJGOzI0QkY7MDA0QTswMDRBOworMjRDMDsyNEMwOzI0QzA7MDA0QjswMDRCOworMjRDMTsyNEMxOzI0QzE7MDA0QzswMDRDOworMjRDMjsyNEMyOzI0QzI7MDA0RDswMDREOworMjRDMzsyNEMzOzI0QzM7MDA0RTswMDRFOworMjRDNDsyNEM0OzI0QzQ7MDA0RjswMDRGOworMjRDNTsyNEM1OzI0QzU7MDA1MDswMDUwOworMjRDNjsyNEM2OzI0QzY7MDA1MTswMDUxOworMjRDNzsyNEM3OzI0Qzc7MDA1MjswMDUyOworMjRDODsyNEM4OzI0Qzg7MDA1MzswMDUzOworMjRDOTsyNEM5OzI0Qzk7MDA1NDswMDU0OworMjRDQTsyNENBOzI0Q0E7MDA1NTswMDU1OworMjRDQjsyNENCOzI0Q0I7MDA1NjswMDU2OworMjRDQzsyNENDOzI0Q0M7MDA1NzswMDU3OworMjRDRDsyNENEOzI0Q0Q7MDA1ODswMDU4OworMjRDRTsyNENFOzI0Q0U7MDA1OTswMDU5OworMjRDRjsyNENGOzI0Q0Y7MDA1QTswMDVBOworMjREMDsyNEQwOzI0RDA7MDA2MTswMDYxOworMjREMTsyNEQxOzI0RDE7MDA2MjswMDYyOworMjREMjsyNEQyOzI0RDI7MDA2MzswMDYzOworMjREMzsyNEQzOzI0RDM7MDA2NDswMDY0OworMjRENDsyNEQ0OzI0RDQ7MDA2NTswMDY1OworMjRENTsyNEQ1OzI0RDU7MDA2NjswMDY2OworMjRENjsyNEQ2OzI0RDY7MDA2NzswMDY3OworMjRENzsyNEQ3OzI0RDc7MDA2ODswMDY4OworMjREODsyNEQ4OzI0RDg7MDA2OTswMDY5OworMjREOTsyNEQ5OzI0RDk7MDA2QTswMDZBOworMjREQTsyNERBOzI0REE7MDA2QjswMDZCOworMjREQjsyNERCOzI0REI7MDA2QzswMDZDOworMjREQzsyNERDOzI0REM7MDA2RDswMDZEOworMjRERDsyNEREOzI0REQ7MDA2RTswMDZFOworMjRERTsyNERFOzI0REU7MDA2RjswMDZGOworMjRERjsyNERGOzI0REY7MDA3MDswMDcwOworMjRFMDsyNEUwOzI0RTA7MDA3MTswMDcxOworMjRFMTsyNEUxOzI0RTE7MDA3MjswMDcyOworMjRFMjsyNEUyOzI0RTI7MDA3MzswMDczOworMjRFMzsyNEUzOzI0RTM7MDA3NDswMDc0OworMjRFNDsyNEU0OzI0RTQ7MDA3NTswMDc1OworMjRFNTsyNEU1OzI0RTU7MDA3NjswMDc2OworMjRFNjsyNEU2OzI0RTY7MDA3NzswMDc3OworMjRFNzsyNEU3OzI0RTc7MDA3ODswMDc4OworMjRFODsyNEU4OzI0RTg7MDA3OTswMDc5OworMjRFOTsyNEU5OzI0RTk7MDA3QTswMDdBOworMjRFQTsyNEVBOzI0RUE7MDAzMDswMDMwOworMkEwQzsyQTBDOzJBMEM7MjIyQiAyMjJCIDIyMkIgMjIyQjsyMjJCIDIyMkIgMjIyQiAyMjJCOworMkE3NDsyQTc0OzJBNzQ7MDAzQSAwMDNBIDAwM0Q7MDAzQSAwMDNBIDAwM0Q7CisyQTc1OzJBNzU7MkE3NTswMDNEIDAwM0Q7MDAzRCAwMDNEOworMkE3NjsyQTc2OzJBNzY7MDAzRCAwMDNEIDAwM0Q7MDAzRCAwMDNEIDAwM0Q7CisyQURDOzJBREQgMDMzODsyQUREIDAzMzg7MkFERCAwMzM4OzJBREQgMDMzODsKKzJFOUY7MkU5RjsyRTlGOzZCQ0Q7NkJDRDsKKzJFRjM7MkVGMzsyRUYzOzlGOUY7OUY5RjsKKzJGMDA7MkYwMDsyRjAwOzRFMDA7NEUwMDsKKzJGMDE7MkYwMTsyRjAxOzRFMjg7NEUyODsKKzJGMDI7MkYwMjsyRjAyOzRFMzY7NEUzNjsKKzJGMDM7MkYwMzsyRjAzOzRFM0Y7NEUzRjsKKzJGMDQ7MkYwNDsyRjA0OzRFNTk7NEU1OTsKKzJGMDU7MkYwNTsyRjA1OzRFODU7NEU4NTsKKzJGMDY7MkYwNjsyRjA2OzRFOEM7NEU4QzsKKzJGMDc7MkYwNzsyRjA3OzRFQTA7NEVBMDsKKzJGMDg7MkYwODsyRjA4OzRFQkE7NEVCQTsKKzJGMDk7MkYwOTsyRjA5OzUxM0Y7NTEzRjsKKzJGMEE7MkYwQTsyRjBBOzUxNjU7NTE2NTsKKzJGMEI7MkYwQjsyRjBCOzUxNkI7NTE2QjsKKzJGMEM7MkYwQzsyRjBDOzUxODI7NTE4MjsKKzJGMEQ7MkYwRDsyRjBEOzUxOTY7NTE5NjsKKzJGMEU7MkYwRTsyRjBFOzUxQUI7NTFBQjsKKzJGMEY7MkYwRjsyRjBGOzUxRTA7NTFFMDsKKzJGMTA7MkYxMDsyRjEwOzUxRjU7NTFGNTsKKzJGMTE7MkYxMTsyRjExOzUyMDA7NTIwMDsKKzJGMTI7MkYxMjsyRjEyOzUyOUI7NTI5QjsKKzJGMTM7MkYxMzsyRjEzOzUyRjk7NTJGOTsKKzJGMTQ7MkYxNDsyRjE0OzUzMTU7NTMxNTsKKzJGMTU7MkYxNTsyRjE1OzUzMUE7NTMxQTsKKzJGMTY7MkYxNjsyRjE2OzUzMzg7NTMzODsKKzJGMTc7MkYxNzsyRjE3OzUzNDE7NTM0MTsKKzJGMTg7MkYxODsyRjE4OzUzNUM7NTM1QzsKKzJGMTk7MkYxOTsyRjE5OzUzNjk7NTM2OTsKKzJGMUE7MkYxQTsyRjFBOzUzODI7NTM4MjsKKzJGMUI7MkYxQjsyRjFCOzUzQjY7NTNCNjsKKzJGMUM7MkYxQzsyRjFDOzUzQzg7NTNDODsKKzJGMUQ7MkYxRDsyRjFEOzUzRTM7NTNFMzsKKzJGMUU7MkYxRTsyRjFFOzU2RDc7NTZENzsKKzJGMUY7MkYxRjsyRjFGOzU3MUY7NTcxRjsKKzJGMjA7MkYyMDsyRjIwOzU4RUI7NThFQjsKKzJGMjE7MkYyMTsyRjIxOzU5MDI7NTkwMjsKKzJGMjI7MkYyMjsyRjIyOzU5MEE7NTkwQTsKKzJGMjM7MkYyMzsyRjIzOzU5MTU7NTkxNTsKKzJGMjQ7MkYyNDsyRjI0OzU5Mjc7NTkyNzsKKzJGMjU7MkYyNTsyRjI1OzU5NzM7NTk3MzsKKzJGMjY7MkYyNjsyRjI2OzVCNTA7NUI1MDsKKzJGMjc7MkYyNzsyRjI3OzVCODA7NUI4MDsKKzJGMjg7MkYyODsyRjI4OzVCRjg7NUJGODsKKzJGMjk7MkYyOTsyRjI5OzVDMEY7NUMwRjsKKzJGMkE7MkYyQTsyRjJBOzVDMjI7NUMyMjsKKzJGMkI7MkYyQjsyRjJCOzVDMzg7NUMzODsKKzJGMkM7MkYyQzsyRjJDOzVDNkU7NUM2RTsKKzJGMkQ7MkYyRDsyRjJEOzVDNzE7NUM3MTsKKzJGMkU7MkYyRTsyRjJFOzVEREI7NUREQjsKKzJGMkY7MkYyRjsyRjJGOzVERTU7NURFNTsKKzJGMzA7MkYzMDsyRjMwOzVERjE7NURGMTsKKzJGMzE7MkYzMTsyRjMxOzVERkU7NURGRTsKKzJGMzI7MkYzMjsyRjMyOzVFNzI7NUU3MjsKKzJGMzM7MkYzMzsyRjMzOzVFN0E7NUU3QTsKKzJGMzQ7MkYzNDsyRjM0OzVFN0Y7NUU3RjsKKzJGMzU7MkYzNTsyRjM1OzVFRjQ7NUVGNDsKKzJGMzY7MkYzNjsyRjM2OzVFRkU7NUVGRTsKKzJGMzc7MkYzNzsyRjM3OzVGMEI7NUYwQjsKKzJGMzg7MkYzODsyRjM4OzVGMTM7NUYxMzsKKzJGMzk7MkYzOTsyRjM5OzVGNTA7NUY1MDsKKzJGM0E7MkYzQTsyRjNBOzVGNjE7NUY2MTsKKzJGM0I7MkYzQjsyRjNCOzVGNzM7NUY3MzsKKzJGM0M7MkYzQzsyRjNDOzVGQzM7NUZDMzsKKzJGM0Q7MkYzRDsyRjNEOzYyMDg7NjIwODsKKzJGM0U7MkYzRTsyRjNFOzYyMzY7NjIzNjsKKzJGM0Y7MkYzRjsyRjNGOzYyNEI7NjI0QjsKKzJGNDA7MkY0MDsyRjQwOzY1MkY7NjUyRjsKKzJGNDE7MkY0MTsyRjQxOzY1MzQ7NjUzNDsKKzJGNDI7MkY0MjsyRjQyOzY1ODc7NjU4NzsKKzJGNDM7MkY0MzsyRjQzOzY1OTc7NjU5NzsKKzJGNDQ7MkY0NDsyRjQ0OzY1QTQ7NjVBNDsKKzJGNDU7MkY0NTsyRjQ1OzY1Qjk7NjVCOTsKKzJGNDY7MkY0NjsyRjQ2OzY1RTA7NjVFMDsKKzJGNDc7MkY0NzsyRjQ3OzY1RTU7NjVFNTsKKzJGNDg7MkY0ODsyRjQ4OzY2RjA7NjZGMDsKKzJGNDk7MkY0OTsyRjQ5OzY3MDg7NjcwODsKKzJGNEE7MkY0QTsyRjRBOzY3Mjg7NjcyODsKKzJGNEI7MkY0QjsyRjRCOzZCMjA7NkIyMDsKKzJGNEM7MkY0QzsyRjRDOzZCNjI7NkI2MjsKKzJGNEQ7MkY0RDsyRjREOzZCNzk7NkI3OTsKKzJGNEU7MkY0RTsyRjRFOzZCQjM7NkJCMzsKKzJGNEY7MkY0RjsyRjRGOzZCQ0I7NkJDQjsKKzJGNTA7MkY1MDsyRjUwOzZCRDQ7NkJENDsKKzJGNTE7MkY1MTsyRjUxOzZCREI7NkJEQjsKKzJGNTI7MkY1MjsyRjUyOzZDMEY7NkMwRjsKKzJGNTM7MkY1MzsyRjUzOzZDMTQ7NkMxNDsKKzJGNTQ7MkY1NDsyRjU0OzZDMzQ7NkMzNDsKKzJGNTU7MkY1NTsyRjU1OzcwNkI7NzA2QjsKKzJGNTY7MkY1NjsyRjU2OzcyMkE7NzIyQTsKKzJGNTc7MkY1NzsyRjU3OzcyMzY7NzIzNjsKKzJGNTg7MkY1ODsyRjU4OzcyM0I7NzIzQjsKKzJGNTk7MkY1OTsyRjU5OzcyM0Y7NzIzRjsKKzJGNUE7MkY1QTsyRjVBOzcyNDc7NzI0NzsKKzJGNUI7MkY1QjsyRjVCOzcyNTk7NzI1OTsKKzJGNUM7MkY1QzsyRjVDOzcyNUI7NzI1QjsKKzJGNUQ7MkY1RDsyRjVEOzcyQUM7NzJBQzsKKzJGNUU7MkY1RTsyRjVFOzczODQ7NzM4NDsKKzJGNUY7MkY1RjsyRjVGOzczODk7NzM4OTsKKzJGNjA7MkY2MDsyRjYwOzc0REM7NzREQzsKKzJGNjE7MkY2MTsyRjYxOzc0RTY7NzRFNjsKKzJGNjI7MkY2MjsyRjYyOzc1MTg7NzUxODsKKzJGNjM7MkY2MzsyRjYzOzc1MUY7NzUxRjsKKzJGNjQ7MkY2NDsyRjY0Ozc1Mjg7NzUyODsKKzJGNjU7MkY2NTsyRjY1Ozc1MzA7NzUzMDsKKzJGNjY7MkY2NjsyRjY2Ozc1OEI7NzU4QjsKKzJGNjc7MkY2NzsyRjY3Ozc1OTI7NzU5MjsKKzJGNjg7MkY2ODsyRjY4Ozc2NzY7NzY3NjsKKzJGNjk7MkY2OTsyRjY5Ozc2N0Q7NzY3RDsKKzJGNkE7MkY2QTsyRjZBOzc2QUU7NzZBRTsKKzJGNkI7MkY2QjsyRjZCOzc2QkY7NzZCRjsKKzJGNkM7MkY2QzsyRjZDOzc2RUU7NzZFRTsKKzJGNkQ7MkY2RDsyRjZEOzc3REI7NzdEQjsKKzJGNkU7MkY2RTsyRjZFOzc3RTI7NzdFMjsKKzJGNkY7MkY2RjsyRjZGOzc3RjM7NzdGMzsKKzJGNzA7MkY3MDsyRjcwOzc5M0E7NzkzQTsKKzJGNzE7MkY3MTsyRjcxOzc5Qjg7NzlCODsKKzJGNzI7MkY3MjsyRjcyOzc5QkU7NzlCRTsKKzJGNzM7MkY3MzsyRjczOzdBNzQ7N0E3NDsKKzJGNzQ7MkY3NDsyRjc0OzdBQ0I7N0FDQjsKKzJGNzU7MkY3NTsyRjc1OzdBRjk7N0FGOTsKKzJGNzY7MkY3NjsyRjc2OzdDNzM7N0M3MzsKKzJGNzc7MkY3NzsyRjc3OzdDRjg7N0NGODsKKzJGNzg7MkY3ODsyRjc4OzdGMzY7N0YzNjsKKzJGNzk7MkY3OTsyRjc5OzdGNTE7N0Y1MTsKKzJGN0E7MkY3QTsyRjdBOzdGOEE7N0Y4QTsKKzJGN0I7MkY3QjsyRjdCOzdGQkQ7N0ZCRDsKKzJGN0M7MkY3QzsyRjdDOzgwMDE7ODAwMTsKKzJGN0Q7MkY3RDsyRjdEOzgwMEM7ODAwQzsKKzJGN0U7MkY3RTsyRjdFOzgwMTI7ODAxMjsKKzJGN0Y7MkY3RjsyRjdGOzgwMzM7ODAzMzsKKzJGODA7MkY4MDsyRjgwOzgwN0Y7ODA3RjsKKzJGODE7MkY4MTsyRjgxOzgwODk7ODA4OTsKKzJGODI7MkY4MjsyRjgyOzgxRTM7ODFFMzsKKzJGODM7MkY4MzsyRjgzOzgxRUE7ODFFQTsKKzJGODQ7MkY4NDsyRjg0OzgxRjM7ODFGMzsKKzJGODU7MkY4NTsyRjg1OzgxRkM7ODFGQzsKKzJGODY7MkY4NjsyRjg2OzgyMEM7ODIwQzsKKzJGODc7MkY4NzsyRjg3OzgyMUI7ODIxQjsKKzJGODg7MkY4ODsyRjg4OzgyMUY7ODIxRjsKKzJGODk7MkY4OTsyRjg5OzgyNkU7ODI2RTsKKzJGOEE7MkY4QTsyRjhBOzgyNzI7ODI3MjsKKzJGOEI7MkY4QjsyRjhCOzgyNzg7ODI3ODsKKzJGOEM7MkY4QzsyRjhDOzg2NEQ7ODY0RDsKKzJGOEQ7MkY4RDsyRjhEOzg2NkI7ODY2QjsKKzJGOEU7MkY4RTsyRjhFOzg4NDA7ODg0MDsKKzJGOEY7MkY4RjsyRjhGOzg4NEM7ODg0QzsKKzJGOTA7MkY5MDsyRjkwOzg4NjM7ODg2MzsKKzJGOTE7MkY5MTsyRjkxOzg5N0U7ODk3RTsKKzJGOTI7MkY5MjsyRjkyOzg5OEI7ODk4QjsKKzJGOTM7MkY5MzsyRjkzOzg5RDI7ODlEMjsKKzJGOTQ7MkY5NDsyRjk0OzhBMDA7OEEwMDsKKzJGOTU7MkY5NTsyRjk1OzhDMzc7OEMzNzsKKzJGOTY7MkY5NjsyRjk2OzhDNDY7OEM0NjsKKzJGOTc7MkY5NzsyRjk3OzhDNTU7OEM1NTsKKzJGOTg7MkY5ODsyRjk4OzhDNzg7OEM3ODsKKzJGOTk7MkY5OTsyRjk5OzhDOUQ7OEM5RDsKKzJGOUE7MkY5QTsyRjlBOzhENjQ7OEQ2NDsKKzJGOUI7MkY5QjsyRjlCOzhENzA7OEQ3MDsKKzJGOUM7MkY5QzsyRjlDOzhEQjM7OERCMzsKKzJGOUQ7MkY5RDsyRjlEOzhFQUI7OEVBQjsKKzJGOUU7MkY5RTsyRjlFOzhFQ0E7OEVDQTsKKzJGOUY7MkY5RjsyRjlGOzhGOUI7OEY5QjsKKzJGQTA7MkZBMDsyRkEwOzhGQjA7OEZCMDsKKzJGQTE7MkZBMTsyRkExOzhGQjU7OEZCNTsKKzJGQTI7MkZBMjsyRkEyOzkwOTE7OTA5MTsKKzJGQTM7MkZBMzsyRkEzOzkxNDk7OTE0OTsKKzJGQTQ7MkZBNDsyRkE0OzkxQzY7OTFDNjsKKzJGQTU7MkZBNTsyRkE1OzkxQ0M7OTFDQzsKKzJGQTY7MkZBNjsyRkE2OzkxRDE7OTFEMTsKKzJGQTc7MkZBNzsyRkE3Ozk1Nzc7OTU3NzsKKzJGQTg7MkZBODsyRkE4Ozk1ODA7OTU4MDsKKzJGQTk7MkZBOTsyRkE5Ozk2MUM7OTYxQzsKKzJGQUE7MkZBQTsyRkFBOzk2QjY7OTZCNjsKKzJGQUI7MkZBQjsyRkFCOzk2Qjk7OTZCOTsKKzJGQUM7MkZBQzsyRkFDOzk2RTg7OTZFODsKKzJGQUQ7MkZBRDsyRkFEOzk3NTE7OTc1MTsKKzJGQUU7MkZBRTsyRkFFOzk3NUU7OTc1RTsKKzJGQUY7MkZBRjsyRkFGOzk3NjI7OTc2MjsKKzJGQjA7MkZCMDsyRkIwOzk3Njk7OTc2OTsKKzJGQjE7MkZCMTsyRkIxOzk3Q0I7OTdDQjsKKzJGQjI7MkZCMjsyRkIyOzk3RUQ7OTdFRDsKKzJGQjM7MkZCMzsyRkIzOzk3RjM7OTdGMzsKKzJGQjQ7MkZCNDsyRkI0Ozk4MDE7OTgwMTsKKzJGQjU7MkZCNTsyRkI1Ozk4QTg7OThBODsKKzJGQjY7MkZCNjsyRkI2Ozk4REI7OThEQjsKKzJGQjc7MkZCNzsyRkI3Ozk4REY7OThERjsKKzJGQjg7MkZCODsyRkI4Ozk5OTY7OTk5NjsKKzJGQjk7MkZCOTsyRkI5Ozk5OTk7OTk5OTsKKzJGQkE7MkZCQTsyRkJBOzk5QUM7OTlBQzsKKzJGQkI7MkZCQjsyRkJCOzlBQTg7OUFBODsKKzJGQkM7MkZCQzsyRkJDOzlBRDg7OUFEODsKKzJGQkQ7MkZCRDsyRkJEOzlBREY7OUFERjsKKzJGQkU7MkZCRTsyRkJFOzlCMjU7OUIyNTsKKzJGQkY7MkZCRjsyRkJGOzlCMkY7OUIyRjsKKzJGQzA7MkZDMDsyRkMwOzlCMzI7OUIzMjsKKzJGQzE7MkZDMTsyRkMxOzlCM0M7OUIzQzsKKzJGQzI7MkZDMjsyRkMyOzlCNUE7OUI1QTsKKzJGQzM7MkZDMzsyRkMzOzlDRTU7OUNFNTsKKzJGQzQ7MkZDNDsyRkM0OzlFNzU7OUU3NTsKKzJGQzU7MkZDNTsyRkM1OzlFN0Y7OUU3RjsKKzJGQzY7MkZDNjsyRkM2OzlFQTU7OUVBNTsKKzJGQzc7MkZDNzsyRkM3OzlFQkI7OUVCQjsKKzJGQzg7MkZDODsyRkM4OzlFQzM7OUVDMzsKKzJGQzk7MkZDOTsyRkM5OzlFQ0Q7OUVDRDsKKzJGQ0E7MkZDQTsyRkNBOzlFRDE7OUVEMTsKKzJGQ0I7MkZDQjsyRkNCOzlFRjk7OUVGOTsKKzJGQ0M7MkZDQzsyRkNDOzlFRkQ7OUVGRDsKKzJGQ0Q7MkZDRDsyRkNEOzlGMEU7OUYwRTsKKzJGQ0U7MkZDRTsyRkNFOzlGMTM7OUYxMzsKKzJGQ0Y7MkZDRjsyRkNGOzlGMjA7OUYyMDsKKzJGRDA7MkZEMDsyRkQwOzlGM0I7OUYzQjsKKzJGRDE7MkZEMTsyRkQxOzlGNEE7OUY0QTsKKzJGRDI7MkZEMjsyRkQyOzlGNTI7OUY1MjsKKzJGRDM7MkZEMzsyRkQzOzlGOEQ7OUY4RDsKKzJGRDQ7MkZENDsyRkQ0OzlGOUM7OUY5QzsKKzJGRDU7MkZENTsyRkQ1OzlGQTA7OUZBMDsKKzMwMDA7MzAwMDszMDAwOzAwMjA7MDAyMDsKKzMwMzY7MzAzNjszMDM2OzMwMTI7MzAxMjsKKzMwMzg7MzAzODszMDM4OzUzNDE7NTM0MTsKKzMwMzk7MzAzOTszMDM5OzUzNDQ7NTM0NDsKKzMwM0E7MzAzQTszMDNBOzUzNDU7NTM0NTsKKzMwNEM7MzA0QzszMDRCIDMwOTk7MzA0QzszMDRCIDMwOTk7CiszMDRFOzMwNEU7MzA0RCAzMDk5OzMwNEU7MzA0RCAzMDk5OworMzA1MDszMDUwOzMwNEYgMzA5OTszMDUwOzMwNEYgMzA5OTsKKzMwNTI7MzA1MjszMDUxIDMwOTk7MzA1MjszMDUxIDMwOTk7CiszMDU0OzMwNTQ7MzA1MyAzMDk5OzMwNTQ7MzA1MyAzMDk5OworMzA1NjszMDU2OzMwNTUgMzA5OTszMDU2OzMwNTUgMzA5OTsKKzMwNTg7MzA1ODszMDU3IDMwOTk7MzA1ODszMDU3IDMwOTk7CiszMDVBOzMwNUE7MzA1OSAzMDk5OzMwNUE7MzA1OSAzMDk5OworMzA1QzszMDVDOzMwNUIgMzA5OTszMDVDOzMwNUIgMzA5OTsKKzMwNUU7MzA1RTszMDVEIDMwOTk7MzA1RTszMDVEIDMwOTk7CiszMDYwOzMwNjA7MzA1RiAzMDk5OzMwNjA7MzA1RiAzMDk5OworMzA2MjszMDYyOzMwNjEgMzA5OTszMDYyOzMwNjEgMzA5OTsKKzMwNjU7MzA2NTszMDY0IDMwOTk7MzA2NTszMDY0IDMwOTk7CiszMDY3OzMwNjc7MzA2NiAzMDk5OzMwNjc7MzA2NiAzMDk5OworMzA2OTszMDY5OzMwNjggMzA5OTszMDY5OzMwNjggMzA5OTsKKzMwNzA7MzA3MDszMDZGIDMwOTk7MzA3MDszMDZGIDMwOTk7CiszMDcxOzMwNzE7MzA2RiAzMDlBOzMwNzE7MzA2RiAzMDlBOworMzA3MzszMDczOzMwNzIgMzA5OTszMDczOzMwNzIgMzA5OTsKKzMwNzQ7MzA3NDszMDcyIDMwOUE7MzA3NDszMDcyIDMwOUE7CiszMDc2OzMwNzY7MzA3NSAzMDk5OzMwNzY7MzA3NSAzMDk5OworMzA3NzszMDc3OzMwNzUgMzA5QTszMDc3OzMwNzUgMzA5QTsKKzMwNzk7MzA3OTszMDc4IDMwOTk7MzA3OTszMDc4IDMwOTk7CiszMDdBOzMwN0E7MzA3OCAzMDlBOzMwN0E7MzA3OCAzMDlBOworMzA3QzszMDdDOzMwN0IgMzA5OTszMDdDOzMwN0IgMzA5OTsKKzMwN0Q7MzA3RDszMDdCIDMwOUE7MzA3RDszMDdCIDMwOUE7CiszMDk0OzMwOTQ7MzA0NiAzMDk5OzMwOTQ7MzA0NiAzMDk5OworMzA5QjszMDlCOzMwOUI7MDAyMCAzMDk5OzAwMjAgMzA5OTsKKzMwOUM7MzA5QzszMDlDOzAwMjAgMzA5QTswMDIwIDMwOUE7CiszMDlFOzMwOUU7MzA5RCAzMDk5OzMwOUU7MzA5RCAzMDk5OworMzA5RjszMDlGOzMwOUY7MzA4OCAzMDhBOzMwODggMzA4QTsKKzMwQUM7MzBBQzszMEFCIDMwOTk7MzBBQzszMEFCIDMwOTk7CiszMEFFOzMwQUU7MzBBRCAzMDk5OzMwQUU7MzBBRCAzMDk5OworMzBCMDszMEIwOzMwQUYgMzA5OTszMEIwOzMwQUYgMzA5OTsKKzMwQjI7MzBCMjszMEIxIDMwOTk7MzBCMjszMEIxIDMwOTk7CiszMEI0OzMwQjQ7MzBCMyAzMDk5OzMwQjQ7MzBCMyAzMDk5OworMzBCNjszMEI2OzMwQjUgMzA5OTszMEI2OzMwQjUgMzA5OTsKKzMwQjg7MzBCODszMEI3IDMwOTk7MzBCODszMEI3IDMwOTk7CiszMEJBOzMwQkE7MzBCOSAzMDk5OzMwQkE7MzBCOSAzMDk5OworMzBCQzszMEJDOzMwQkIgMzA5OTszMEJDOzMwQkIgMzA5OTsKKzMwQkU7MzBCRTszMEJEIDMwOTk7MzBCRTszMEJEIDMwOTk7CiszMEMwOzMwQzA7MzBCRiAzMDk5OzMwQzA7MzBCRiAzMDk5OworMzBDMjszMEMyOzMwQzEgMzA5OTszMEMyOzMwQzEgMzA5OTsKKzMwQzU7MzBDNTszMEM0IDMwOTk7MzBDNTszMEM0IDMwOTk7CiszMEM3OzMwQzc7MzBDNiAzMDk5OzMwQzc7MzBDNiAzMDk5OworMzBDOTszMEM5OzMwQzggMzA5OTszMEM5OzMwQzggMzA5OTsKKzMwRDA7MzBEMDszMENGIDMwOTk7MzBEMDszMENGIDMwOTk7CiszMEQxOzMwRDE7MzBDRiAzMDlBOzMwRDE7MzBDRiAzMDlBOworMzBEMzszMEQzOzMwRDIgMzA5OTszMEQzOzMwRDIgMzA5OTsKKzMwRDQ7MzBENDszMEQyIDMwOUE7MzBENDszMEQyIDMwOUE7CiszMEQ2OzMwRDY7MzBENSAzMDk5OzMwRDY7MzBENSAzMDk5OworMzBENzszMEQ3OzMwRDUgMzA5QTszMEQ3OzMwRDUgMzA5QTsKKzMwRDk7MzBEOTszMEQ4IDMwOTk7MzBEOTszMEQ4IDMwOTk7CiszMERBOzMwREE7MzBEOCAzMDlBOzMwREE7MzBEOCAzMDlBOworMzBEQzszMERDOzMwREIgMzA5OTszMERDOzMwREIgMzA5OTsKKzMwREQ7MzBERDszMERCIDMwOUE7MzBERDszMERCIDMwOUE7CiszMEY0OzMwRjQ7MzBBNiAzMDk5OzMwRjQ7MzBBNiAzMDk5OworMzBGNzszMEY3OzMwRUYgMzA5OTszMEY3OzMwRUYgMzA5OTsKKzMwRjg7MzBGODszMEYwIDMwOTk7MzBGODszMEYwIDMwOTk7CiszMEY5OzMwRjk7MzBGMSAzMDk5OzMwRjk7MzBGMSAzMDk5OworMzBGQTszMEZBOzMwRjIgMzA5OTszMEZBOzMwRjIgMzA5OTsKKzMwRkU7MzBGRTszMEZEIDMwOTk7MzBGRTszMEZEIDMwOTk7CiszMEZGOzMwRkY7MzBGRjszMEIzIDMwQzg7MzBCMyAzMEM4OworMzEzMTszMTMxOzMxMzE7MTEwMDsxMTAwOworMzEzMjszMTMyOzMxMzI7MTEwMTsxMTAxOworMzEzMzszMTMzOzMxMzM7MTFBQTsxMUFBOworMzEzNDszMTM0OzMxMzQ7MTEwMjsxMTAyOworMzEzNTszMTM1OzMxMzU7MTFBQzsxMUFDOworMzEzNjszMTM2OzMxMzY7MTFBRDsxMUFEOworMzEzNzszMTM3OzMxMzc7MTEwMzsxMTAzOworMzEzODszMTM4OzMxMzg7MTEwNDsxMTA0OworMzEzOTszMTM5OzMxMzk7MTEwNTsxMTA1OworMzEzQTszMTNBOzMxM0E7MTFCMDsxMUIwOworMzEzQjszMTNCOzMxM0I7MTFCMTsxMUIxOworMzEzQzszMTNDOzMxM0M7MTFCMjsxMUIyOworMzEzRDszMTNEOzMxM0Q7MTFCMzsxMUIzOworMzEzRTszMTNFOzMxM0U7MTFCNDsxMUI0OworMzEzRjszMTNGOzMxM0Y7MTFCNTsxMUI1OworMzE0MDszMTQwOzMxNDA7MTExQTsxMTFBOworMzE0MTszMTQxOzMxNDE7MTEwNjsxMTA2OworMzE0MjszMTQyOzMxNDI7MTEwNzsxMTA3OworMzE0MzszMTQzOzMxNDM7MTEwODsxMTA4OworMzE0NDszMTQ0OzMxNDQ7MTEyMTsxMTIxOworMzE0NTszMTQ1OzMxNDU7MTEwOTsxMTA5OworMzE0NjszMTQ2OzMxNDY7MTEwQTsxMTBBOworMzE0NzszMTQ3OzMxNDc7MTEwQjsxMTBCOworMzE0ODszMTQ4OzMxNDg7MTEwQzsxMTBDOworMzE0OTszMTQ5OzMxNDk7MTEwRDsxMTBEOworMzE0QTszMTRBOzMxNEE7MTEwRTsxMTBFOworMzE0QjszMTRCOzMxNEI7MTEwRjsxMTBGOworMzE0QzszMTRDOzMxNEM7MTExMDsxMTEwOworMzE0RDszMTREOzMxNEQ7MTExMTsxMTExOworMzE0RTszMTRFOzMxNEU7MTExMjsxMTEyOworMzE0RjszMTRGOzMxNEY7MTE2MTsxMTYxOworMzE1MDszMTUwOzMxNTA7MTE2MjsxMTYyOworMzE1MTszMTUxOzMxNTE7MTE2MzsxMTYzOworMzE1MjszMTUyOzMxNTI7MTE2NDsxMTY0OworMzE1MzszMTUzOzMxNTM7MTE2NTsxMTY1OworMzE1NDszMTU0OzMxNTQ7MTE2NjsxMTY2OworMzE1NTszMTU1OzMxNTU7MTE2NzsxMTY3OworMzE1NjszMTU2OzMxNTY7MTE2ODsxMTY4OworMzE1NzszMTU3OzMxNTc7MTE2OTsxMTY5OworMzE1ODszMTU4OzMxNTg7MTE2QTsxMTZBOworMzE1OTszMTU5OzMxNTk7MTE2QjsxMTZCOworMzE1QTszMTVBOzMxNUE7MTE2QzsxMTZDOworMzE1QjszMTVCOzMxNUI7MTE2RDsxMTZEOworMzE1QzszMTVDOzMxNUM7MTE2RTsxMTZFOworMzE1RDszMTVEOzMxNUQ7MTE2RjsxMTZGOworMzE1RTszMTVFOzMxNUU7MTE3MDsxMTcwOworMzE1RjszMTVGOzMxNUY7MTE3MTsxMTcxOworMzE2MDszMTYwOzMxNjA7MTE3MjsxMTcyOworMzE2MTszMTYxOzMxNjE7MTE3MzsxMTczOworMzE2MjszMTYyOzMxNjI7MTE3NDsxMTc0OworMzE2MzszMTYzOzMxNjM7MTE3NTsxMTc1OworMzE2NDszMTY0OzMxNjQ7MTE2MDsxMTYwOworMzE2NTszMTY1OzMxNjU7MTExNDsxMTE0OworMzE2NjszMTY2OzMxNjY7MTExNTsxMTE1OworMzE2NzszMTY3OzMxNjc7MTFDNzsxMUM3OworMzE2ODszMTY4OzMxNjg7MTFDODsxMUM4OworMzE2OTszMTY5OzMxNjk7MTFDQzsxMUNDOworMzE2QTszMTZBOzMxNkE7MTFDRTsxMUNFOworMzE2QjszMTZCOzMxNkI7MTFEMzsxMUQzOworMzE2QzszMTZDOzMxNkM7MTFENzsxMUQ3OworMzE2RDszMTZEOzMxNkQ7MTFEOTsxMUQ5OworMzE2RTszMTZFOzMxNkU7MTExQzsxMTFDOworMzE2RjszMTZGOzMxNkY7MTFERDsxMUREOworMzE3MDszMTcwOzMxNzA7MTFERjsxMURGOworMzE3MTszMTcxOzMxNzE7MTExRDsxMTFEOworMzE3MjszMTcyOzMxNzI7MTExRTsxMTFFOworMzE3MzszMTczOzMxNzM7MTEyMDsxMTIwOworMzE3NDszMTc0OzMxNzQ7MTEyMjsxMTIyOworMzE3NTszMTc1OzMxNzU7MTEyMzsxMTIzOworMzE3NjszMTc2OzMxNzY7MTEyNzsxMTI3OworMzE3NzszMTc3OzMxNzc7MTEyOTsxMTI5OworMzE3ODszMTc4OzMxNzg7MTEyQjsxMTJCOworMzE3OTszMTc5OzMxNzk7MTEyQzsxMTJDOworMzE3QTszMTdBOzMxN0E7MTEyRDsxMTJEOworMzE3QjszMTdCOzMxN0I7MTEyRTsxMTJFOworMzE3QzszMTdDOzMxN0M7MTEyRjsxMTJGOworMzE3RDszMTdEOzMxN0Q7MTEzMjsxMTMyOworMzE3RTszMTdFOzMxN0U7MTEzNjsxMTM2OworMzE3RjszMTdGOzMxN0Y7MTE0MDsxMTQwOworMzE4MDszMTgwOzMxODA7MTE0NzsxMTQ3OworMzE4MTszMTgxOzMxODE7MTE0QzsxMTRDOworMzE4MjszMTgyOzMxODI7MTFGMTsxMUYxOworMzE4MzszMTgzOzMxODM7MTFGMjsxMUYyOworMzE4NDszMTg0OzMxODQ7MTE1NzsxMTU3OworMzE4NTszMTg1OzMxODU7MTE1ODsxMTU4OworMzE4NjszMTg2OzMxODY7MTE1OTsxMTU5OworMzE4NzszMTg3OzMxODc7MTE4NDsxMTg0OworMzE4ODszMTg4OzMxODg7MTE4NTsxMTg1OworMzE4OTszMTg5OzMxODk7MTE4ODsxMTg4OworMzE4QTszMThBOzMxOEE7MTE5MTsxMTkxOworMzE4QjszMThCOzMxOEI7MTE5MjsxMTkyOworMzE4QzszMThDOzMxOEM7MTE5NDsxMTk0OworMzE4RDszMThEOzMxOEQ7MTE5RTsxMTlFOworMzE4RTszMThFOzMxOEU7MTFBMTsxMUExOworMzE5MjszMTkyOzMxOTI7NEUwMDs0RTAwOworMzE5MzszMTkzOzMxOTM7NEU4Qzs0RThDOworMzE5NDszMTk0OzMxOTQ7NEUwOTs0RTA5OworMzE5NTszMTk1OzMxOTU7NTZEQjs1NkRCOworMzE5NjszMTk2OzMxOTY7NEUwQTs0RTBBOworMzE5NzszMTk3OzMxOTc7NEUyRDs0RTJEOworMzE5ODszMTk4OzMxOTg7NEUwQjs0RTBCOworMzE5OTszMTk5OzMxOTk7NzUzMjs3NTMyOworMzE5QTszMTlBOzMxOUE7NEU1OTs0RTU5OworMzE5QjszMTlCOzMxOUI7NEUxOTs0RTE5OworMzE5QzszMTlDOzMxOUM7NEUwMTs0RTAxOworMzE5RDszMTlEOzMxOUQ7NTkyOTs1OTI5OworMzE5RTszMTlFOzMxOUU7NTczMDs1NzMwOworMzE5RjszMTlGOzMxOUY7NEVCQTs0RUJBOworMzIwMDszMjAwOzMyMDA7MDAyOCAxMTAwIDAwMjk7MDAyOCAxMTAwIDAwMjk7CiszMjAxOzMyMDE7MzIwMTswMDI4IDExMDIgMDAyOTswMDI4IDExMDIgMDAyOTsKKzMyMDI7MzIwMjszMjAyOzAwMjggMTEwMyAwMDI5OzAwMjggMTEwMyAwMDI5OworMzIwMzszMjAzOzMyMDM7MDAyOCAxMTA1IDAwMjk7MDAyOCAxMTA1IDAwMjk7CiszMjA0OzMyMDQ7MzIwNDswMDI4IDExMDYgMDAyOTswMDI4IDExMDYgMDAyOTsKKzMyMDU7MzIwNTszMjA1OzAwMjggMTEwNyAwMDI5OzAwMjggMTEwNyAwMDI5OworMzIwNjszMjA2OzMyMDY7MDAyOCAxMTA5IDAwMjk7MDAyOCAxMTA5IDAwMjk7CiszMjA3OzMyMDc7MzIwNzswMDI4IDExMEIgMDAyOTswMDI4IDExMEIgMDAyOTsKKzMyMDg7MzIwODszMjA4OzAwMjggMTEwQyAwMDI5OzAwMjggMTEwQyAwMDI5OworMzIwOTszMjA5OzMyMDk7MDAyOCAxMTBFIDAwMjk7MDAyOCAxMTBFIDAwMjk7CiszMjBBOzMyMEE7MzIwQTswMDI4IDExMEYgMDAyOTswMDI4IDExMEYgMDAyOTsKKzMyMEI7MzIwQjszMjBCOzAwMjggMTExMCAwMDI5OzAwMjggMTExMCAwMDI5OworMzIwQzszMjBDOzMyMEM7MDAyOCAxMTExIDAwMjk7MDAyOCAxMTExIDAwMjk7CiszMjBEOzMyMEQ7MzIwRDswMDI4IDExMTIgMDAyOTswMDI4IDExMTIgMDAyOTsKKzMyMEU7MzIwRTszMjBFOzAwMjggQUMwMCAwMDI5OzAwMjggMTEwMCAxMTYxIDAwMjk7CiszMjBGOzMyMEY7MzIwRjswMDI4IEIwOTggMDAyOTswMDI4IDExMDIgMTE2MSAwMDI5OworMzIxMDszMjEwOzMyMTA7MDAyOCBCMkU0IDAwMjk7MDAyOCAxMTAzIDExNjEgMDAyOTsKKzMyMTE7MzIxMTszMjExOzAwMjggQjc3QyAwMDI5OzAwMjggMTEwNSAxMTYxIDAwMjk7CiszMjEyOzMyMTI7MzIxMjswMDI4IEI5QzggMDAyOTswMDI4IDExMDYgMTE2MSAwMDI5OworMzIxMzszMjEzOzMyMTM7MDAyOCBCQzE0IDAwMjk7MDAyOCAxMTA3IDExNjEgMDAyOTsKKzMyMTQ7MzIxNDszMjE0OzAwMjggQzBBQyAwMDI5OzAwMjggMTEwOSAxMTYxIDAwMjk7CiszMjE1OzMyMTU7MzIxNTswMDI4IEM1NDQgMDAyOTswMDI4IDExMEIgMTE2MSAwMDI5OworMzIxNjszMjE2OzMyMTY7MDAyOCBDNzkwIDAwMjk7MDAyOCAxMTBDIDExNjEgMDAyOTsKKzMyMTc7MzIxNzszMjE3OzAwMjggQ0MyOCAwMDI5OzAwMjggMTEwRSAxMTYxIDAwMjk7CiszMjE4OzMyMTg7MzIxODswMDI4IENFNzQgMDAyOTswMDI4IDExMEYgMTE2MSAwMDI5OworMzIxOTszMjE5OzMyMTk7MDAyOCBEMEMwIDAwMjk7MDAyOCAxMTEwIDExNjEgMDAyOTsKKzMyMUE7MzIxQTszMjFBOzAwMjggRDMwQyAwMDI5OzAwMjggMTExMSAxMTYxIDAwMjk7CiszMjFCOzMyMUI7MzIxQjswMDI4IEQ1NTggMDAyOTswMDI4IDExMTIgMTE2MSAwMDI5OworMzIxQzszMjFDOzMyMUM7MDAyOCBDOEZDIDAwMjk7MDAyOCAxMTBDIDExNkUgMDAyOTsKKzMyMjA7MzIyMDszMjIwOzAwMjggNEUwMCAwMDI5OzAwMjggNEUwMCAwMDI5OworMzIyMTszMjIxOzMyMjE7MDAyOCA0RThDIDAwMjk7MDAyOCA0RThDIDAwMjk7CiszMjIyOzMyMjI7MzIyMjswMDI4IDRFMDkgMDAyOTswMDI4IDRFMDkgMDAyOTsKKzMyMjM7MzIyMzszMjIzOzAwMjggNTZEQiAwMDI5OzAwMjggNTZEQiAwMDI5OworMzIyNDszMjI0OzMyMjQ7MDAyOCA0RTk0IDAwMjk7MDAyOCA0RTk0IDAwMjk7CiszMjI1OzMyMjU7MzIyNTswMDI4IDUxNkQgMDAyOTswMDI4IDUxNkQgMDAyOTsKKzMyMjY7MzIyNjszMjI2OzAwMjggNEUwMyAwMDI5OzAwMjggNEUwMyAwMDI5OworMzIyNzszMjI3OzMyMjc7MDAyOCA1MTZCIDAwMjk7MDAyOCA1MTZCIDAwMjk7CiszMjI4OzMyMjg7MzIyODswMDI4IDRFNUQgMDAyOTswMDI4IDRFNUQgMDAyOTsKKzMyMjk7MzIyOTszMjI5OzAwMjggNTM0MSAwMDI5OzAwMjggNTM0MSAwMDI5OworMzIyQTszMjJBOzMyMkE7MDAyOCA2NzA4IDAwMjk7MDAyOCA2NzA4IDAwMjk7CiszMjJCOzMyMkI7MzIyQjswMDI4IDcwNkIgMDAyOTswMDI4IDcwNkIgMDAyOTsKKzMyMkM7MzIyQzszMjJDOzAwMjggNkMzNCAwMDI5OzAwMjggNkMzNCAwMDI5OworMzIyRDszMjJEOzMyMkQ7MDAyOCA2NzI4IDAwMjk7MDAyOCA2NzI4IDAwMjk7CiszMjJFOzMyMkU7MzIyRTswMDI4IDkxRDEgMDAyOTswMDI4IDkxRDEgMDAyOTsKKzMyMkY7MzIyRjszMjJGOzAwMjggNTcxRiAwMDI5OzAwMjggNTcxRiAwMDI5OworMzIzMDszMjMwOzMyMzA7MDAyOCA2NUU1IDAwMjk7MDAyOCA2NUU1IDAwMjk7CiszMjMxOzMyMzE7MzIzMTswMDI4IDY4MkEgMDAyOTswMDI4IDY4MkEgMDAyOTsKKzMyMzI7MzIzMjszMjMyOzAwMjggNjcwOSAwMDI5OzAwMjggNjcwOSAwMDI5OworMzIzMzszMjMzOzMyMzM7MDAyOCA3OTNFIDAwMjk7MDAyOCA3OTNFIDAwMjk7CiszMjM0OzMyMzQ7MzIzNDswMDI4IDU0MEQgMDAyOTswMDI4IDU0MEQgMDAyOTsKKzMyMzU7MzIzNTszMjM1OzAwMjggNzI3OSAwMDI5OzAwMjggNzI3OSAwMDI5OworMzIzNjszMjM2OzMyMzY7MDAyOCA4Q0ExIDAwMjk7MDAyOCA4Q0ExIDAwMjk7CiszMjM3OzMyMzc7MzIzNzswMDI4IDc5NUQgMDAyOTswMDI4IDc5NUQgMDAyOTsKKzMyMzg7MzIzODszMjM4OzAwMjggNTJCNCAwMDI5OzAwMjggNTJCNCAwMDI5OworMzIzOTszMjM5OzMyMzk7MDAyOCA0RUUzIDAwMjk7MDAyOCA0RUUzIDAwMjk7CiszMjNBOzMyM0E7MzIzQTswMDI4IDU0N0MgMDAyOTswMDI4IDU0N0MgMDAyOTsKKzMyM0I7MzIzQjszMjNCOzAwMjggNUI2NiAwMDI5OzAwMjggNUI2NiAwMDI5OworMzIzQzszMjNDOzMyM0M7MDAyOCA3NkUzIDAwMjk7MDAyOCA3NkUzIDAwMjk7CiszMjNEOzMyM0Q7MzIzRDswMDI4IDRGMDEgMDAyOTswMDI4IDRGMDEgMDAyOTsKKzMyM0U7MzIzRTszMjNFOzAwMjggOENDNyAwMDI5OzAwMjggOENDNyAwMDI5OworMzIzRjszMjNGOzMyM0Y7MDAyOCA1MzU0IDAwMjk7MDAyOCA1MzU0IDAwMjk7CiszMjQwOzMyNDA7MzI0MDswMDI4IDc5NkQgMDAyOTswMDI4IDc5NkQgMDAyOTsKKzMyNDE7MzI0MTszMjQxOzAwMjggNEYxMSAwMDI5OzAwMjggNEYxMSAwMDI5OworMzI0MjszMjQyOzMyNDI7MDAyOCA4MUVBIDAwMjk7MDAyOCA4MUVBIDAwMjk7CiszMjQzOzMyNDM7MzI0MzswMDI4IDgxRjMgMDAyOTswMDI4IDgxRjMgMDAyOTsKKzMyNTE7MzI1MTszMjUxOzAwMzIgMDAzMTswMDMyIDAwMzE7CiszMjUyOzMyNTI7MzI1MjswMDMyIDAwMzI7MDAzMiAwMDMyOworMzI1MzszMjUzOzMyNTM7MDAzMiAwMDMzOzAwMzIgMDAzMzsKKzMyNTQ7MzI1NDszMjU0OzAwMzIgMDAzNDswMDMyIDAwMzQ7CiszMjU1OzMyNTU7MzI1NTswMDMyIDAwMzU7MDAzMiAwMDM1OworMzI1NjszMjU2OzMyNTY7MDAzMiAwMDM2OzAwMzIgMDAzNjsKKzMyNTc7MzI1NzszMjU3OzAwMzIgMDAzNzswMDMyIDAwMzc7CiszMjU4OzMyNTg7MzI1ODswMDMyIDAwMzg7MDAzMiAwMDM4OworMzI1OTszMjU5OzMyNTk7MDAzMiAwMDM5OzAwMzIgMDAzOTsKKzMyNUE7MzI1QTszMjVBOzAwMzMgMDAzMDswMDMzIDAwMzA7CiszMjVCOzMyNUI7MzI1QjswMDMzIDAwMzE7MDAzMyAwMDMxOworMzI1QzszMjVDOzMyNUM7MDAzMyAwMDMyOzAwMzMgMDAzMjsKKzMyNUQ7MzI1RDszMjVEOzAwMzMgMDAzMzswMDMzIDAwMzM7CiszMjVFOzMyNUU7MzI1RTswMDMzIDAwMzQ7MDAzMyAwMDM0OworMzI1RjszMjVGOzMyNUY7MDAzMyAwMDM1OzAwMzMgMDAzNTsKKzMyNjA7MzI2MDszMjYwOzExMDA7MTEwMDsKKzMyNjE7MzI2MTszMjYxOzExMDI7MTEwMjsKKzMyNjI7MzI2MjszMjYyOzExMDM7MTEwMzsKKzMyNjM7MzI2MzszMjYzOzExMDU7MTEwNTsKKzMyNjQ7MzI2NDszMjY0OzExMDY7MTEwNjsKKzMyNjU7MzI2NTszMjY1OzExMDc7MTEwNzsKKzMyNjY7MzI2NjszMjY2OzExMDk7MTEwOTsKKzMyNjc7MzI2NzszMjY3OzExMEI7MTEwQjsKKzMyNjg7MzI2ODszMjY4OzExMEM7MTEwQzsKKzMyNjk7MzI2OTszMjY5OzExMEU7MTEwRTsKKzMyNkE7MzI2QTszMjZBOzExMEY7MTEwRjsKKzMyNkI7MzI2QjszMjZCOzExMTA7MTExMDsKKzMyNkM7MzI2QzszMjZDOzExMTE7MTExMTsKKzMyNkQ7MzI2RDszMjZEOzExMTI7MTExMjsKKzMyNkU7MzI2RTszMjZFO0FDMDA7MTEwMCAxMTYxOworMzI2RjszMjZGOzMyNkY7QjA5ODsxMTAyIDExNjE7CiszMjcwOzMyNzA7MzI3MDtCMkU0OzExMDMgMTE2MTsKKzMyNzE7MzI3MTszMjcxO0I3N0M7MTEwNSAxMTYxOworMzI3MjszMjcyOzMyNzI7QjlDODsxMTA2IDExNjE7CiszMjczOzMyNzM7MzI3MztCQzE0OzExMDcgMTE2MTsKKzMyNzQ7MzI3NDszMjc0O0MwQUM7MTEwOSAxMTYxOworMzI3NTszMjc1OzMyNzU7QzU0NDsxMTBCIDExNjE7CiszMjc2OzMyNzY7MzI3NjtDNzkwOzExMEMgMTE2MTsKKzMyNzc7MzI3NzszMjc3O0NDMjg7MTEwRSAxMTYxOworMzI3ODszMjc4OzMyNzg7Q0U3NDsxMTBGIDExNjE7CiszMjc5OzMyNzk7MzI3OTtEMEMwOzExMTAgMTE2MTsKKzMyN0E7MzI3QTszMjdBO0QzMEM7MTExMSAxMTYxOworMzI3QjszMjdCOzMyN0I7RDU1ODsxMTEyIDExNjE7CiszMjgwOzMyODA7MzI4MDs0RTAwOzRFMDA7CiszMjgxOzMyODE7MzI4MTs0RThDOzRFOEM7CiszMjgyOzMyODI7MzI4Mjs0RTA5OzRFMDk7CiszMjgzOzMyODM7MzI4Mzs1NkRCOzU2REI7CiszMjg0OzMyODQ7MzI4NDs0RTk0OzRFOTQ7CiszMjg1OzMyODU7MzI4NTs1MTZEOzUxNkQ7CiszMjg2OzMyODY7MzI4Njs0RTAzOzRFMDM7CiszMjg3OzMyODc7MzI4Nzs1MTZCOzUxNkI7CiszMjg4OzMyODg7MzI4ODs0RTVEOzRFNUQ7CiszMjg5OzMyODk7MzI4OTs1MzQxOzUzNDE7CiszMjhBOzMyOEE7MzI4QTs2NzA4OzY3MDg7CiszMjhCOzMyOEI7MzI4Qjs3MDZCOzcwNkI7CiszMjhDOzMyOEM7MzI4Qzs2QzM0OzZDMzQ7CiszMjhEOzMyOEQ7MzI4RDs2NzI4OzY3Mjg7CiszMjhFOzMyOEU7MzI4RTs5MUQxOzkxRDE7CiszMjhGOzMyOEY7MzI4Rjs1NzFGOzU3MUY7CiszMjkwOzMyOTA7MzI5MDs2NUU1OzY1RTU7CiszMjkxOzMyOTE7MzI5MTs2ODJBOzY4MkE7CiszMjkyOzMyOTI7MzI5Mjs2NzA5OzY3MDk7CiszMjkzOzMyOTM7MzI5Mzs3OTNFOzc5M0U7CiszMjk0OzMyOTQ7MzI5NDs1NDBEOzU0MEQ7CiszMjk1OzMyOTU7MzI5NTs3Mjc5OzcyNzk7CiszMjk2OzMyOTY7MzI5Njs4Q0ExOzhDQTE7CiszMjk3OzMyOTc7MzI5Nzs3OTVEOzc5NUQ7CiszMjk4OzMyOTg7MzI5ODs1MkI0OzUyQjQ7CiszMjk5OzMyOTk7MzI5OTs3OUQ4Ozc5RDg7CiszMjlBOzMyOUE7MzI5QTs3NTM3Ozc1Mzc7CiszMjlCOzMyOUI7MzI5Qjs1OTczOzU5NzM7CiszMjlDOzMyOUM7MzI5Qzs5MDY5OzkwNjk7CiszMjlEOzMyOUQ7MzI5RDs1MTJBOzUxMkE7CiszMjlFOzMyOUU7MzI5RTs1MzcwOzUzNzA7CiszMjlGOzMyOUY7MzI5Rjs2Q0U4OzZDRTg7CiszMkEwOzMyQTA7MzJBMDs5ODA1Ozk4MDU7CiszMkExOzMyQTE7MzJBMTs0RjExOzRGMTE7CiszMkEyOzMyQTI7MzJBMjs1MTk5OzUxOTk7CiszMkEzOzMyQTM7MzJBMzs2QjYzOzZCNjM7CiszMkE0OzMyQTQ7MzJBNDs0RTBBOzRFMEE7CiszMkE1OzMyQTU7MzJBNTs0RTJEOzRFMkQ7CiszMkE2OzMyQTY7MzJBNjs0RTBCOzRFMEI7CiszMkE3OzMyQTc7MzJBNzs1REU2OzVERTY7CiszMkE4OzMyQTg7MzJBODs1M0YzOzUzRjM7CiszMkE5OzMyQTk7MzJBOTs1MzNCOzUzM0I7CiszMkFBOzMyQUE7MzJBQTs1Qjk3OzVCOTc7CiszMkFCOzMyQUI7MzJBQjs1QjY2OzVCNjY7CiszMkFDOzMyQUM7MzJBQzs3NkUzOzc2RTM7CiszMkFEOzMyQUQ7MzJBRDs0RjAxOzRGMDE7CiszMkFFOzMyQUU7MzJBRTs4Q0M3OzhDQzc7CiszMkFGOzMyQUY7MzJBRjs1MzU0OzUzNTQ7CiszMkIwOzMyQjA7MzJCMDs1OTFDOzU5MUM7CiszMkIxOzMyQjE7MzJCMTswMDMzIDAwMzY7MDAzMyAwMDM2OworMzJCMjszMkIyOzMyQjI7MDAzMyAwMDM3OzAwMzMgMDAzNzsKKzMyQjM7MzJCMzszMkIzOzAwMzMgMDAzODswMDMzIDAwMzg7CiszMkI0OzMyQjQ7MzJCNDswMDMzIDAwMzk7MDAzMyAwMDM5OworMzJCNTszMkI1OzMyQjU7MDAzNCAwMDMwOzAwMzQgMDAzMDsKKzMyQjY7MzJCNjszMkI2OzAwMzQgMDAzMTswMDM0IDAwMzE7CiszMkI3OzMyQjc7MzJCNzswMDM0IDAwMzI7MDAzNCAwMDMyOworMzJCODszMkI4OzMyQjg7MDAzNCAwMDMzOzAwMzQgMDAzMzsKKzMyQjk7MzJCOTszMkI5OzAwMzQgMDAzNDswMDM0IDAwMzQ7CiszMkJBOzMyQkE7MzJCQTswMDM0IDAwMzU7MDAzNCAwMDM1OworMzJCQjszMkJCOzMyQkI7MDAzNCAwMDM2OzAwMzQgMDAzNjsKKzMyQkM7MzJCQzszMkJDOzAwMzQgMDAzNzswMDM0IDAwMzc7CiszMkJEOzMyQkQ7MzJCRDswMDM0IDAwMzg7MDAzNCAwMDM4OworMzJCRTszMkJFOzMyQkU7MDAzNCAwMDM5OzAwMzQgMDAzOTsKKzMyQkY7MzJCRjszMkJGOzAwMzUgMDAzMDswMDM1IDAwMzA7CiszMkMwOzMyQzA7MzJDMDswMDMxIDY3MDg7MDAzMSA2NzA4OworMzJDMTszMkMxOzMyQzE7MDAzMiA2NzA4OzAwMzIgNjcwODsKKzMyQzI7MzJDMjszMkMyOzAwMzMgNjcwODswMDMzIDY3MDg7CiszMkMzOzMyQzM7MzJDMzswMDM0IDY3MDg7MDAzNCA2NzA4OworMzJDNDszMkM0OzMyQzQ7MDAzNSA2NzA4OzAwMzUgNjcwODsKKzMyQzU7MzJDNTszMkM1OzAwMzYgNjcwODswMDM2IDY3MDg7CiszMkM2OzMyQzY7MzJDNjswMDM3IDY3MDg7MDAzNyA2NzA4OworMzJDNzszMkM3OzMyQzc7MDAzOCA2NzA4OzAwMzggNjcwODsKKzMyQzg7MzJDODszMkM4OzAwMzkgNjcwODswMDM5IDY3MDg7CiszMkM5OzMyQzk7MzJDOTswMDMxIDAwMzAgNjcwODswMDMxIDAwMzAgNjcwODsKKzMyQ0E7MzJDQTszMkNBOzAwMzEgMDAzMSA2NzA4OzAwMzEgMDAzMSA2NzA4OworMzJDQjszMkNCOzMyQ0I7MDAzMSAwMDMyIDY3MDg7MDAzMSAwMDMyIDY3MDg7CiszMkQwOzMyRDA7MzJEMDszMEEyOzMwQTI7CiszMkQxOzMyRDE7MzJEMTszMEE0OzMwQTQ7CiszMkQyOzMyRDI7MzJEMjszMEE2OzMwQTY7CiszMkQzOzMyRDM7MzJEMzszMEE4OzMwQTg7CiszMkQ0OzMyRDQ7MzJENDszMEFBOzMwQUE7CiszMkQ1OzMyRDU7MzJENTszMEFCOzMwQUI7CiszMkQ2OzMyRDY7MzJENjszMEFEOzMwQUQ7CiszMkQ3OzMyRDc7MzJENzszMEFGOzMwQUY7CiszMkQ4OzMyRDg7MzJEODszMEIxOzMwQjE7CiszMkQ5OzMyRDk7MzJEOTszMEIzOzMwQjM7CiszMkRBOzMyREE7MzJEQTszMEI1OzMwQjU7CiszMkRCOzMyREI7MzJEQjszMEI3OzMwQjc7CiszMkRDOzMyREM7MzJEQzszMEI5OzMwQjk7CiszMkREOzMyREQ7MzJERDszMEJCOzMwQkI7CiszMkRFOzMyREU7MzJERTszMEJEOzMwQkQ7CiszMkRGOzMyREY7MzJERjszMEJGOzMwQkY7CiszMkUwOzMyRTA7MzJFMDszMEMxOzMwQzE7CiszMkUxOzMyRTE7MzJFMTszMEM0OzMwQzQ7CiszMkUyOzMyRTI7MzJFMjszMEM2OzMwQzY7CiszMkUzOzMyRTM7MzJFMzszMEM4OzMwQzg7CiszMkU0OzMyRTQ7MzJFNDszMENBOzMwQ0E7CiszMkU1OzMyRTU7MzJFNTszMENCOzMwQ0I7CiszMkU2OzMyRTY7MzJFNjszMENDOzMwQ0M7CiszMkU3OzMyRTc7MzJFNzszMENEOzMwQ0Q7CiszMkU4OzMyRTg7MzJFODszMENFOzMwQ0U7CiszMkU5OzMyRTk7MzJFOTszMENGOzMwQ0Y7CiszMkVBOzMyRUE7MzJFQTszMEQyOzMwRDI7CiszMkVCOzMyRUI7MzJFQjszMEQ1OzMwRDU7CiszMkVDOzMyRUM7MzJFQzszMEQ4OzMwRDg7CiszMkVEOzMyRUQ7MzJFRDszMERCOzMwREI7CiszMkVFOzMyRUU7MzJFRTszMERFOzMwREU7CiszMkVGOzMyRUY7MzJFRjszMERGOzMwREY7CiszMkYwOzMyRjA7MzJGMDszMEUwOzMwRTA7CiszMkYxOzMyRjE7MzJGMTszMEUxOzMwRTE7CiszMkYyOzMyRjI7MzJGMjszMEUyOzMwRTI7CiszMkYzOzMyRjM7MzJGMzszMEU0OzMwRTQ7CiszMkY0OzMyRjQ7MzJGNDszMEU2OzMwRTY7CiszMkY1OzMyRjU7MzJGNTszMEU4OzMwRTg7CiszMkY2OzMyRjY7MzJGNjszMEU5OzMwRTk7CiszMkY3OzMyRjc7MzJGNzszMEVBOzMwRUE7CiszMkY4OzMyRjg7MzJGODszMEVCOzMwRUI7CiszMkY5OzMyRjk7MzJGOTszMEVDOzMwRUM7CiszMkZBOzMyRkE7MzJGQTszMEVEOzMwRUQ7CiszMkZCOzMyRkI7MzJGQjszMEVGOzMwRUY7CiszMkZDOzMyRkM7MzJGQzszMEYwOzMwRjA7CiszMkZEOzMyRkQ7MzJGRDszMEYxOzMwRjE7CiszMkZFOzMyRkU7MzJGRTszMEYyOzMwRjI7CiszMzAwOzMzMDA7MzMwMDszMEEyIDMwRDEgMzBGQyAzMEM4OzMwQTIgMzBDRiAzMDlBIDMwRkMgMzBDODsKKzMzMDE7MzMwMTszMzAxOzMwQTIgMzBFQiAzMEQ1IDMwQTE7MzBBMiAzMEVCIDMwRDUgMzBBMTsKKzMzMDI7MzMwMjszMzAyOzMwQTIgMzBGMyAzMERBIDMwQTI7MzBBMiAzMEYzIDMwRDggMzA5QSAzMEEyOworMzMwMzszMzAzOzMzMDM7MzBBMiAzMEZDIDMwRUI7MzBBMiAzMEZDIDMwRUI7CiszMzA0OzMzMDQ7MzMwNDszMEE0IDMwQ0IgMzBGMyAzMEIwOzMwQTQgMzBDQiAzMEYzIDMwQUYgMzA5OTsKKzMzMDU7MzMwNTszMzA1OzMwQTQgMzBGMyAzMEMxOzMwQTQgMzBGMyAzMEMxOworMzMwNjszMzA2OzMzMDY7MzBBNiAzMEE5IDMwRjM7MzBBNiAzMEE5IDMwRjM7CiszMzA3OzMzMDc7MzMwNzszMEE4IDMwQjkgMzBBRiAzMEZDIDMwQzk7MzBBOCAzMEI5IDMwQUYgMzBGQyAzMEM4IDMwOTk7CiszMzA4OzMzMDg7MzMwODszMEE4IDMwRkMgMzBBQiAzMEZDOzMwQTggMzBGQyAzMEFCIDMwRkM7CiszMzA5OzMzMDk7MzMwOTszMEFBIDMwRjMgMzBCOTszMEFBIDMwRjMgMzBCOTsKKzMzMEE7MzMwQTszMzBBOzMwQUEgMzBGQyAzMEUwOzMwQUEgMzBGQyAzMEUwOworMzMwQjszMzBCOzMzMEI7MzBBQiAzMEE0IDMwRUE7MzBBQiAzMEE0IDMwRUE7CiszMzBDOzMzMEM7MzMwQzszMEFCIDMwRTkgMzBDMyAzMEM4OzMwQUIgMzBFOSAzMEMzIDMwQzg7CiszMzBEOzMzMEQ7MzMwRDszMEFCIDMwRUQgMzBFQSAzMEZDOzMwQUIgMzBFRCAzMEVBIDMwRkM7CiszMzBFOzMzMEU7MzMwRTszMEFDIDMwRUQgMzBGMzszMEFCIDMwOTkgMzBFRCAzMEYzOworMzMwRjszMzBGOzMzMEY7MzBBQyAzMEYzIDMwREU7MzBBQiAzMDk5IDMwRjMgMzBERTsKKzMzMTA7MzMxMDszMzEwOzMwQUUgMzBBQzszMEFEIDMwOTkgMzBBQiAzMDk5OworMzMxMTszMzExOzMzMTE7MzBBRSAzMENCIDMwRkM7MzBBRCAzMDk5IDMwQ0IgMzBGQzsKKzMzMTI7MzMxMjszMzEyOzMwQUQgMzBFNSAzMEVBIDMwRkM7MzBBRCAzMEU1IDMwRUEgMzBGQzsKKzMzMTM7MzMxMzszMzEzOzMwQUUgMzBFQiAzMEMwIDMwRkM7MzBBRCAzMDk5IDMwRUIgMzBCRiAzMDk5IDMwRkM7CiszMzE0OzMzMTQ7MzMxNDszMEFEIDMwRUQ7MzBBRCAzMEVEOworMzMxNTszMzE1OzMzMTU7MzBBRCAzMEVEIDMwQjAgMzBFOSAzMEUwOzMwQUQgMzBFRCAzMEFGIDMwOTkgMzBFOSAzMEUwOworMzMxNjszMzE2OzMzMTY7MzBBRCAzMEVEIDMwRTEgMzBGQyAzMEM4IDMwRUI7MzBBRCAzMEVEIDMwRTEgMzBGQyAzMEM4IDMwRUI7CiszMzE3OzMzMTc7MzMxNzszMEFEIDMwRUQgMzBFRiAzMEMzIDMwQzg7MzBBRCAzMEVEIDMwRUYgMzBDMyAzMEM4OworMzMxODszMzE4OzMzMTg7MzBCMCAzMEU5IDMwRTA7MzBBRiAzMDk5IDMwRTkgMzBFMDsKKzMzMTk7MzMxOTszMzE5OzMwQjAgMzBFOSAzMEUwIDMwQzggMzBGMzszMEFGIDMwOTkgMzBFOSAzMEUwIDMwQzggMzBGMzsKKzMzMUE7MzMxQTszMzFBOzMwQUYgMzBFQiAzMEJDIDMwQTQgMzBFRDszMEFGIDMwRUIgMzBCQiAzMDk5IDMwQTQgMzBFRDsKKzMzMUI7MzMxQjszMzFCOzMwQUYgMzBFRCAzMEZDIDMwQ0Q7MzBBRiAzMEVEIDMwRkMgMzBDRDsKKzMzMUM7MzMxQzszMzFDOzMwQjEgMzBGQyAzMEI5OzMwQjEgMzBGQyAzMEI5OworMzMxRDszMzFEOzMzMUQ7MzBCMyAzMEVCIDMwQ0E7MzBCMyAzMEVCIDMwQ0E7CiszMzFFOzMzMUU7MzMxRTszMEIzIDMwRkMgMzBERDszMEIzIDMwRkMgMzBEQiAzMDlBOworMzMxRjszMzFGOzMzMUY7MzBCNSAzMEE0IDMwQUYgMzBFQjszMEI1IDMwQTQgMzBBRiAzMEVCOworMzMyMDszMzIwOzMzMjA7MzBCNSAzMEYzIDMwQzEgMzBGQyAzMEUwOzMwQjUgMzBGMyAzMEMxIDMwRkMgMzBFMDsKKzMzMjE7MzMyMTszMzIxOzMwQjcgMzBFQSAzMEYzIDMwQjA7MzBCNyAzMEVBIDMwRjMgMzBBRiAzMDk5OworMzMyMjszMzIyOzMzMjI7MzBCQiAzMEYzIDMwQzE7MzBCQiAzMEYzIDMwQzE7CiszMzIzOzMzMjM7MzMyMzszMEJCIDMwRjMgMzBDODszMEJCIDMwRjMgMzBDODsKKzMzMjQ7MzMyNDszMzI0OzMwQzAgMzBGQyAzMEI5OzMwQkYgMzA5OSAzMEZDIDMwQjk7CiszMzI1OzMzMjU7MzMyNTszMEM3IDMwQjc7MzBDNiAzMDk5IDMwQjc7CiszMzI2OzMzMjY7MzMyNjszMEM5IDMwRUI7MzBDOCAzMDk5IDMwRUI7CiszMzI3OzMzMjc7MzMyNzszMEM4IDMwRjM7MzBDOCAzMEYzOworMzMyODszMzI4OzMzMjg7MzBDQSAzMENFOzMwQ0EgMzBDRTsKKzMzMjk7MzMyOTszMzI5OzMwQ0UgMzBDMyAzMEM4OzMwQ0UgMzBDMyAzMEM4OworMzMyQTszMzJBOzMzMkE7MzBDRiAzMEE0IDMwQzQ7MzBDRiAzMEE0IDMwQzQ7CiszMzJCOzMzMkI7MzMyQjszMEQxIDMwRkMgMzBCQiAzMEYzIDMwQzg7MzBDRiAzMDlBIDMwRkMgMzBCQiAzMEYzIDMwQzg7CiszMzJDOzMzMkM7MzMyQzszMEQxIDMwRkMgMzBDNDszMENGIDMwOUEgMzBGQyAzMEM0OworMzMyRDszMzJEOzMzMkQ7MzBEMCAzMEZDIDMwRUMgMzBFQjszMENGIDMwOTkgMzBGQyAzMEVDIDMwRUI7CiszMzJFOzMzMkU7MzMyRTszMEQ0IDMwQTIgMzBCOSAzMEM4IDMwRUI7MzBEMiAzMDlBIDMwQTIgMzBCOSAzMEM4IDMwRUI7CiszMzJGOzMzMkY7MzMyRjszMEQ0IDMwQUYgMzBFQjszMEQyIDMwOUEgMzBBRiAzMEVCOworMzMzMDszMzMwOzMzMzA7MzBENCAzMEIzOzMwRDIgMzA5QSAzMEIzOworMzMzMTszMzMxOzMzMzE7MzBEMyAzMEVCOzMwRDIgMzA5OSAzMEVCOworMzMzMjszMzMyOzMzMzI7MzBENSAzMEExIDMwRTkgMzBDMyAzMEM5OzMwRDUgMzBBMSAzMEU5IDMwQzMgMzBDOCAzMDk5OworMzMzMzszMzMzOzMzMzM7MzBENSAzMEEzIDMwRkMgMzBDODszMEQ1IDMwQTMgMzBGQyAzMEM4OworMzMzNDszMzM0OzMzMzQ7MzBENiAzMEMzIDMwQjcgMzBBNyAzMEVCOzMwRDUgMzA5OSAzMEMzIDMwQjcgMzBBNyAzMEVCOworMzMzNTszMzM1OzMzMzU7MzBENSAzMEU5IDMwRjM7MzBENSAzMEU5IDMwRjM7CiszMzM2OzMzMzY7MzMzNjszMEQ4IDMwQUYgMzBCRiAzMEZDIDMwRUI7MzBEOCAzMEFGIDMwQkYgMzBGQyAzMEVCOworMzMzNzszMzM3OzMzMzc7MzBEQSAzMEJEOzMwRDggMzA5QSAzMEJEOworMzMzODszMzM4OzMzMzg7MzBEQSAzMENCIDMwRDI7MzBEOCAzMDlBIDMwQ0IgMzBEMjsKKzMzMzk7MzMzOTszMzM5OzMwRDggMzBFQiAzMEM0OzMwRDggMzBFQiAzMEM0OworMzMzQTszMzNBOzMzM0E7MzBEQSAzMEYzIDMwQjk7MzBEOCAzMDlBIDMwRjMgMzBCOTsKKzMzM0I7MzMzQjszMzNCOzMwREEgMzBGQyAzMEI4OzMwRDggMzA5QSAzMEZDIDMwQjcgMzA5OTsKKzMzM0M7MzMzQzszMzNDOzMwRDkgMzBGQyAzMEJGOzMwRDggMzA5OSAzMEZDIDMwQkY7CiszMzNEOzMzM0Q7MzMzRDszMEREIDMwQTQgMzBGMyAzMEM4OzMwREIgMzA5QSAzMEE0IDMwRjMgMzBDODsKKzMzM0U7MzMzRTszMzNFOzMwREMgMzBFQiAzMEM4OzMwREIgMzA5OSAzMEVCIDMwQzg7CiszMzNGOzMzM0Y7MzMzRjszMERCIDMwRjM7MzBEQiAzMEYzOworMzM0MDszMzQwOzMzNDA7MzBERCAzMEYzIDMwQzk7MzBEQiAzMDlBIDMwRjMgMzBDOCAzMDk5OworMzM0MTszMzQxOzMzNDE7MzBEQiAzMEZDIDMwRUI7MzBEQiAzMEZDIDMwRUI7CiszMzQyOzMzNDI7MzM0MjszMERCIDMwRkMgMzBGMzszMERCIDMwRkMgMzBGMzsKKzMzNDM7MzM0MzszMzQzOzMwREUgMzBBNCAzMEFGIDMwRUQ7MzBERSAzMEE0IDMwQUYgMzBFRDsKKzMzNDQ7MzM0NDszMzQ0OzMwREUgMzBBNCAzMEVCOzMwREUgMzBBNCAzMEVCOworMzM0NTszMzQ1OzMzNDU7MzBERSAzMEMzIDMwQ0Y7MzBERSAzMEMzIDMwQ0Y7CiszMzQ2OzMzNDY7MzM0NjszMERFIDMwRUIgMzBBRjszMERFIDMwRUIgMzBBRjsKKzMzNDc7MzM0NzszMzQ3OzMwREUgMzBGMyAzMEI3IDMwRTcgMzBGMzszMERFIDMwRjMgMzBCNyAzMEU3IDMwRjM7CiszMzQ4OzMzNDg7MzM0ODszMERGIDMwQUYgMzBFRCAzMEYzOzMwREYgMzBBRiAzMEVEIDMwRjM7CiszMzQ5OzMzNDk7MzM0OTszMERGIDMwRUE7MzBERiAzMEVBOworMzM0QTszMzRBOzMzNEE7MzBERiAzMEVBIDMwRDAgMzBGQyAzMEVCOzMwREYgMzBFQSAzMENGIDMwOTkgMzBGQyAzMEVCOworMzM0QjszMzRCOzMzNEI7MzBFMSAzMEFDOzMwRTEgMzBBQiAzMDk5OworMzM0QzszMzRDOzMzNEM7MzBFMSAzMEFDIDMwQzggMzBGMzszMEUxIDMwQUIgMzA5OSAzMEM4IDMwRjM7CiszMzREOzMzNEQ7MzM0RDszMEUxIDMwRkMgMzBDOCAzMEVCOzMwRTEgMzBGQyAzMEM4IDMwRUI7CiszMzRFOzMzNEU7MzM0RTszMEU0IDMwRkMgMzBDOTszMEU0IDMwRkMgMzBDOCAzMDk5OworMzM0RjszMzRGOzMzNEY7MzBFNCAzMEZDIDMwRUI7MzBFNCAzMEZDIDMwRUI7CiszMzUwOzMzNTA7MzM1MDszMEU2IDMwQTIgMzBGMzszMEU2IDMwQTIgMzBGMzsKKzMzNTE7MzM1MTszMzUxOzMwRUEgMzBDMyAzMEM4IDMwRUI7MzBFQSAzMEMzIDMwQzggMzBFQjsKKzMzNTI7MzM1MjszMzUyOzMwRUEgMzBFOTszMEVBIDMwRTk7CiszMzUzOzMzNTM7MzM1MzszMEVCIDMwRDQgMzBGQzszMEVCIDMwRDIgMzA5QSAzMEZDOworMzM1NDszMzU0OzMzNTQ7MzBFQiAzMEZDIDMwRDYgMzBFQjszMEVCIDMwRkMgMzBENSAzMDk5IDMwRUI7CiszMzU1OzMzNTU7MzM1NTszMEVDIDMwRTA7MzBFQyAzMEUwOworMzM1NjszMzU2OzMzNTY7MzBFQyAzMEYzIDMwQzggMzBCMiAzMEYzOzMwRUMgMzBGMyAzMEM4IDMwQjEgMzA5OSAzMEYzOworMzM1NzszMzU3OzMzNTc7MzBFRiAzMEMzIDMwQzg7MzBFRiAzMEMzIDMwQzg7CiszMzU4OzMzNTg7MzM1ODswMDMwIDcwQjk7MDAzMCA3MEI5OworMzM1OTszMzU5OzMzNTk7MDAzMSA3MEI5OzAwMzEgNzBCOTsKKzMzNUE7MzM1QTszMzVBOzAwMzIgNzBCOTswMDMyIDcwQjk7CiszMzVCOzMzNUI7MzM1QjswMDMzIDcwQjk7MDAzMyA3MEI5OworMzM1QzszMzVDOzMzNUM7MDAzNCA3MEI5OzAwMzQgNzBCOTsKKzMzNUQ7MzM1RDszMzVEOzAwMzUgNzBCOTswMDM1IDcwQjk7CiszMzVFOzMzNUU7MzM1RTswMDM2IDcwQjk7MDAzNiA3MEI5OworMzM1RjszMzVGOzMzNUY7MDAzNyA3MEI5OzAwMzcgNzBCOTsKKzMzNjA7MzM2MDszMzYwOzAwMzggNzBCOTswMDM4IDcwQjk7CiszMzYxOzMzNjE7MzM2MTswMDM5IDcwQjk7MDAzOSA3MEI5OworMzM2MjszMzYyOzMzNjI7MDAzMSAwMDMwIDcwQjk7MDAzMSAwMDMwIDcwQjk7CiszMzYzOzMzNjM7MzM2MzswMDMxIDAwMzEgNzBCOTswMDMxIDAwMzEgNzBCOTsKKzMzNjQ7MzM2NDszMzY0OzAwMzEgMDAzMiA3MEI5OzAwMzEgMDAzMiA3MEI5OworMzM2NTszMzY1OzMzNjU7MDAzMSAwMDMzIDcwQjk7MDAzMSAwMDMzIDcwQjk7CiszMzY2OzMzNjY7MzM2NjswMDMxIDAwMzQgNzBCOTswMDMxIDAwMzQgNzBCOTsKKzMzNjc7MzM2NzszMzY3OzAwMzEgMDAzNSA3MEI5OzAwMzEgMDAzNSA3MEI5OworMzM2ODszMzY4OzMzNjg7MDAzMSAwMDM2IDcwQjk7MDAzMSAwMDM2IDcwQjk7CiszMzY5OzMzNjk7MzM2OTswMDMxIDAwMzcgNzBCOTswMDMxIDAwMzcgNzBCOTsKKzMzNkE7MzM2QTszMzZBOzAwMzEgMDAzOCA3MEI5OzAwMzEgMDAzOCA3MEI5OworMzM2QjszMzZCOzMzNkI7MDAzMSAwMDM5IDcwQjk7MDAzMSAwMDM5IDcwQjk7CiszMzZDOzMzNkM7MzM2QzswMDMyIDAwMzAgNzBCOTswMDMyIDAwMzAgNzBCOTsKKzMzNkQ7MzM2RDszMzZEOzAwMzIgMDAzMSA3MEI5OzAwMzIgMDAzMSA3MEI5OworMzM2RTszMzZFOzMzNkU7MDAzMiAwMDMyIDcwQjk7MDAzMiAwMDMyIDcwQjk7CiszMzZGOzMzNkY7MzM2RjswMDMyIDAwMzMgNzBCOTswMDMyIDAwMzMgNzBCOTsKKzMzNzA7MzM3MDszMzcwOzAwMzIgMDAzNCA3MEI5OzAwMzIgMDAzNCA3MEI5OworMzM3MTszMzcxOzMzNzE7MDA2OCAwMDUwIDAwNjE7MDA2OCAwMDUwIDAwNjE7CiszMzcyOzMzNzI7MzM3MjswMDY0IDAwNjE7MDA2NCAwMDYxOworMzM3MzszMzczOzMzNzM7MDA0MSAwMDU1OzAwNDEgMDA1NTsKKzMzNzQ7MzM3NDszMzc0OzAwNjIgMDA2MSAwMDcyOzAwNjIgMDA2MSAwMDcyOworMzM3NTszMzc1OzMzNzU7MDA2RiAwMDU2OzAwNkYgMDA1NjsKKzMzNzY7MzM3NjszMzc2OzAwNzAgMDA2MzswMDcwIDAwNjM7CiszMzdCOzMzN0I7MzM3Qjs1RTczIDYyMTA7NUU3MyA2MjEwOworMzM3QzszMzdDOzMzN0M7NjYyRCA1NDhDOzY2MkQgNTQ4QzsKKzMzN0Q7MzM3RDszMzdEOzU5MjcgNkI2Mzs1OTI3IDZCNjM7CiszMzdFOzMzN0U7MzM3RTs2NjBFIDZDQkI7NjYwRSA2Q0JCOworMzM3RjszMzdGOzMzN0Y7NjgyQSA1RjBGIDRGMUEgNzkzRTs2ODJBIDVGMEYgNEYxQSA3OTNFOworMzM4MDszMzgwOzMzODA7MDA3MCAwMDQxOzAwNzAgMDA0MTsKKzMzODE7MzM4MTszMzgxOzAwNkUgMDA0MTswMDZFIDAwNDE7CiszMzgyOzMzODI7MzM4MjswM0JDIDAwNDE7MDNCQyAwMDQxOworMzM4MzszMzgzOzMzODM7MDA2RCAwMDQxOzAwNkQgMDA0MTsKKzMzODQ7MzM4NDszMzg0OzAwNkIgMDA0MTswMDZCIDAwNDE7CiszMzg1OzMzODU7MzM4NTswMDRCIDAwNDI7MDA0QiAwMDQyOworMzM4NjszMzg2OzMzODY7MDA0RCAwMDQyOzAwNEQgMDA0MjsKKzMzODc7MzM4NzszMzg3OzAwNDcgMDA0MjswMDQ3IDAwNDI7CiszMzg4OzMzODg7MzM4ODswMDYzIDAwNjEgMDA2QzswMDYzIDAwNjEgMDA2QzsKKzMzODk7MzM4OTszMzg5OzAwNkIgMDA2MyAwMDYxIDAwNkM7MDA2QiAwMDYzIDAwNjEgMDA2QzsKKzMzOEE7MzM4QTszMzhBOzAwNzAgMDA0NjswMDcwIDAwNDY7CiszMzhCOzMzOEI7MzM4QjswMDZFIDAwNDY7MDA2RSAwMDQ2OworMzM4QzszMzhDOzMzOEM7MDNCQyAwMDQ2OzAzQkMgMDA0NjsKKzMzOEQ7MzM4RDszMzhEOzAzQkMgMDA2NzswM0JDIDAwNjc7CiszMzhFOzMzOEU7MzM4RTswMDZEIDAwNjc7MDA2RCAwMDY3OworMzM4RjszMzhGOzMzOEY7MDA2QiAwMDY3OzAwNkIgMDA2NzsKKzMzOTA7MzM5MDszMzkwOzAwNDggMDA3QTswMDQ4IDAwN0E7CiszMzkxOzMzOTE7MzM5MTswMDZCIDAwNDggMDA3QTswMDZCIDAwNDggMDA3QTsKKzMzOTI7MzM5MjszMzkyOzAwNEQgMDA0OCAwMDdBOzAwNEQgMDA0OCAwMDdBOworMzM5MzszMzkzOzMzOTM7MDA0NyAwMDQ4IDAwN0E7MDA0NyAwMDQ4IDAwN0E7CiszMzk0OzMzOTQ7MzM5NDswMDU0IDAwNDggMDA3QTswMDU0IDAwNDggMDA3QTsKKzMzOTU7MzM5NTszMzk1OzAzQkMgMDA2QzswM0JDIDAwNkM7CiszMzk2OzMzOTY7MzM5NjswMDZEIDAwNkM7MDA2RCAwMDZDOworMzM5NzszMzk3OzMzOTc7MDA2NCAwMDZDOzAwNjQgMDA2QzsKKzMzOTg7MzM5ODszMzk4OzAwNkIgMDA2QzswMDZCIDAwNkM7CiszMzk5OzMzOTk7MzM5OTswMDY2IDAwNkQ7MDA2NiAwMDZEOworMzM5QTszMzlBOzMzOUE7MDA2RSAwMDZEOzAwNkUgMDA2RDsKKzMzOUI7MzM5QjszMzlCOzAzQkMgMDA2RDswM0JDIDAwNkQ7CiszMzlDOzMzOUM7MzM5QzswMDZEIDAwNkQ7MDA2RCAwMDZEOworMzM5RDszMzlEOzMzOUQ7MDA2MyAwMDZEOzAwNjMgMDA2RDsKKzMzOUU7MzM5RTszMzlFOzAwNkIgMDA2RDswMDZCIDAwNkQ7CiszMzlGOzMzOUY7MzM5RjswMDZEIDAwNkQgMDAzMjswMDZEIDAwNkQgMDAzMjsKKzMzQTA7MzNBMDszM0EwOzAwNjMgMDA2RCAwMDMyOzAwNjMgMDA2RCAwMDMyOworMzNBMTszM0ExOzMzQTE7MDA2RCAwMDMyOzAwNkQgMDAzMjsKKzMzQTI7MzNBMjszM0EyOzAwNkIgMDA2RCAwMDMyOzAwNkIgMDA2RCAwMDMyOworMzNBMzszM0EzOzMzQTM7MDA2RCAwMDZEIDAwMzM7MDA2RCAwMDZEIDAwMzM7CiszM0E0OzMzQTQ7MzNBNDswMDYzIDAwNkQgMDAzMzswMDYzIDAwNkQgMDAzMzsKKzMzQTU7MzNBNTszM0E1OzAwNkQgMDAzMzswMDZEIDAwMzM7CiszM0E2OzMzQTY7MzNBNjswMDZCIDAwNkQgMDAzMzswMDZCIDAwNkQgMDAzMzsKKzMzQTc7MzNBNzszM0E3OzAwNkQgMjIxNSAwMDczOzAwNkQgMjIxNSAwMDczOworMzNBODszM0E4OzMzQTg7MDA2RCAyMjE1IDAwNzMgMDAzMjswMDZEIDIyMTUgMDA3MyAwMDMyOworMzNBOTszM0E5OzMzQTk7MDA1MCAwMDYxOzAwNTAgMDA2MTsKKzMzQUE7MzNBQTszM0FBOzAwNkIgMDA1MCAwMDYxOzAwNkIgMDA1MCAwMDYxOworMzNBQjszM0FCOzMzQUI7MDA0RCAwMDUwIDAwNjE7MDA0RCAwMDUwIDAwNjE7CiszM0FDOzMzQUM7MzNBQzswMDQ3IDAwNTAgMDA2MTswMDQ3IDAwNTAgMDA2MTsKKzMzQUQ7MzNBRDszM0FEOzAwNzIgMDA2MSAwMDY0OzAwNzIgMDA2MSAwMDY0OworMzNBRTszM0FFOzMzQUU7MDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczOzAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MzsKKzMzQUY7MzNBRjszM0FGOzAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MyAwMDMyOzAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MyAwMDMyOworMzNCMDszM0IwOzMzQjA7MDA3MCAwMDczOzAwNzAgMDA3MzsKKzMzQjE7MzNCMTszM0IxOzAwNkUgMDA3MzswMDZFIDAwNzM7CiszM0IyOzMzQjI7MzNCMjswM0JDIDAwNzM7MDNCQyAwMDczOworMzNCMzszM0IzOzMzQjM7MDA2RCAwMDczOzAwNkQgMDA3MzsKKzMzQjQ7MzNCNDszM0I0OzAwNzAgMDA1NjswMDcwIDAwNTY7CiszM0I1OzMzQjU7MzNCNTswMDZFIDAwNTY7MDA2RSAwMDU2OworMzNCNjszM0I2OzMzQjY7MDNCQyAwMDU2OzAzQkMgMDA1NjsKKzMzQjc7MzNCNzszM0I3OzAwNkQgMDA1NjswMDZEIDAwNTY7CiszM0I4OzMzQjg7MzNCODswMDZCIDAwNTY7MDA2QiAwMDU2OworMzNCOTszM0I5OzMzQjk7MDA0RCAwMDU2OzAwNEQgMDA1NjsKKzMzQkE7MzNCQTszM0JBOzAwNzAgMDA1NzswMDcwIDAwNTc7CiszM0JCOzMzQkI7MzNCQjswMDZFIDAwNTc7MDA2RSAwMDU3OworMzNCQzszM0JDOzMzQkM7MDNCQyAwMDU3OzAzQkMgMDA1NzsKKzMzQkQ7MzNCRDszM0JEOzAwNkQgMDA1NzswMDZEIDAwNTc7CiszM0JFOzMzQkU7MzNCRTswMDZCIDAwNTc7MDA2QiAwMDU3OworMzNCRjszM0JGOzMzQkY7MDA0RCAwMDU3OzAwNEQgMDA1NzsKKzMzQzA7MzNDMDszM0MwOzAwNkIgMDNBOTswMDZCIDAzQTk7CiszM0MxOzMzQzE7MzNDMTswMDREIDAzQTk7MDA0RCAwM0E5OworMzNDMjszM0MyOzMzQzI7MDA2MSAwMDJFIDAwNkQgMDAyRTswMDYxIDAwMkUgMDA2RCAwMDJFOworMzNDMzszM0MzOzMzQzM7MDA0MiAwMDcxOzAwNDIgMDA3MTsKKzMzQzQ7MzNDNDszM0M0OzAwNjMgMDA2MzswMDYzIDAwNjM7CiszM0M1OzMzQzU7MzNDNTswMDYzIDAwNjQ7MDA2MyAwMDY0OworMzNDNjszM0M2OzMzQzY7MDA0MyAyMjE1IDAwNkIgMDA2NzswMDQzIDIyMTUgMDA2QiAwMDY3OworMzNDNzszM0M3OzMzQzc7MDA0MyAwMDZGIDAwMkU7MDA0MyAwMDZGIDAwMkU7CiszM0M4OzMzQzg7MzNDODswMDY0IDAwNDI7MDA2NCAwMDQyOworMzNDOTszM0M5OzMzQzk7MDA0NyAwMDc5OzAwNDcgMDA3OTsKKzMzQ0E7MzNDQTszM0NBOzAwNjggMDA2MTswMDY4IDAwNjE7CiszM0NCOzMzQ0I7MzNDQjswMDQ4IDAwNTA7MDA0OCAwMDUwOworMzNDQzszM0NDOzMzQ0M7MDA2OSAwMDZFOzAwNjkgMDA2RTsKKzMzQ0Q7MzNDRDszM0NEOzAwNEIgMDA0QjswMDRCIDAwNEI7CiszM0NFOzMzQ0U7MzNDRTswMDRCIDAwNEQ7MDA0QiAwMDREOworMzNDRjszM0NGOzMzQ0Y7MDA2QiAwMDc0OzAwNkIgMDA3NDsKKzMzRDA7MzNEMDszM0QwOzAwNkMgMDA2RDswMDZDIDAwNkQ7CiszM0QxOzMzRDE7MzNEMTswMDZDIDAwNkU7MDA2QyAwMDZFOworMzNEMjszM0QyOzMzRDI7MDA2QyAwMDZGIDAwNjc7MDA2QyAwMDZGIDAwNjc7CiszM0QzOzMzRDM7MzNEMzswMDZDIDAwNzg7MDA2QyAwMDc4OworMzNENDszM0Q0OzMzRDQ7MDA2RCAwMDYyOzAwNkQgMDA2MjsKKzMzRDU7MzNENTszM0Q1OzAwNkQgMDA2OSAwMDZDOzAwNkQgMDA2OSAwMDZDOworMzNENjszM0Q2OzMzRDY7MDA2RCAwMDZGIDAwNkM7MDA2RCAwMDZGIDAwNkM7CiszM0Q3OzMzRDc7MzNENzswMDUwIDAwNDg7MDA1MCAwMDQ4OworMzNEODszM0Q4OzMzRDg7MDA3MCAwMDJFIDAwNkQgMDAyRTswMDcwIDAwMkUgMDA2RCAwMDJFOworMzNEOTszM0Q5OzMzRDk7MDA1MCAwMDUwIDAwNEQ7MDA1MCAwMDUwIDAwNEQ7CiszM0RBOzMzREE7MzNEQTswMDUwIDAwNTI7MDA1MCAwMDUyOworMzNEQjszM0RCOzMzREI7MDA3MyAwMDcyOzAwNzMgMDA3MjsKKzMzREM7MzNEQzszM0RDOzAwNTMgMDA3NjswMDUzIDAwNzY7CiszM0REOzMzREQ7MzNERDswMDU3IDAwNjI7MDA1NyAwMDYyOworMzNFMDszM0UwOzMzRTA7MDAzMSA2NUU1OzAwMzEgNjVFNTsKKzMzRTE7MzNFMTszM0UxOzAwMzIgNjVFNTswMDMyIDY1RTU7CiszM0UyOzMzRTI7MzNFMjswMDMzIDY1RTU7MDAzMyA2NUU1OworMzNFMzszM0UzOzMzRTM7MDAzNCA2NUU1OzAwMzQgNjVFNTsKKzMzRTQ7MzNFNDszM0U0OzAwMzUgNjVFNTswMDM1IDY1RTU7CiszM0U1OzMzRTU7MzNFNTswMDM2IDY1RTU7MDAzNiA2NUU1OworMzNFNjszM0U2OzMzRTY7MDAzNyA2NUU1OzAwMzcgNjVFNTsKKzMzRTc7MzNFNzszM0U3OzAwMzggNjVFNTswMDM4IDY1RTU7CiszM0U4OzMzRTg7MzNFODswMDM5IDY1RTU7MDAzOSA2NUU1OworMzNFOTszM0U5OzMzRTk7MDAzMSAwMDMwIDY1RTU7MDAzMSAwMDMwIDY1RTU7CiszM0VBOzMzRUE7MzNFQTswMDMxIDAwMzEgNjVFNTswMDMxIDAwMzEgNjVFNTsKKzMzRUI7MzNFQjszM0VCOzAwMzEgMDAzMiA2NUU1OzAwMzEgMDAzMiA2NUU1OworMzNFQzszM0VDOzMzRUM7MDAzMSAwMDMzIDY1RTU7MDAzMSAwMDMzIDY1RTU7CiszM0VEOzMzRUQ7MzNFRDswMDMxIDAwMzQgNjVFNTswMDMxIDAwMzQgNjVFNTsKKzMzRUU7MzNFRTszM0VFOzAwMzEgMDAzNSA2NUU1OzAwMzEgMDAzNSA2NUU1OworMzNFRjszM0VGOzMzRUY7MDAzMSAwMDM2IDY1RTU7MDAzMSAwMDM2IDY1RTU7CiszM0YwOzMzRjA7MzNGMDswMDMxIDAwMzcgNjVFNTswMDMxIDAwMzcgNjVFNTsKKzMzRjE7MzNGMTszM0YxOzAwMzEgMDAzOCA2NUU1OzAwMzEgMDAzOCA2NUU1OworMzNGMjszM0YyOzMzRjI7MDAzMSAwMDM5IDY1RTU7MDAzMSAwMDM5IDY1RTU7CiszM0YzOzMzRjM7MzNGMzswMDMyIDAwMzAgNjVFNTswMDMyIDAwMzAgNjVFNTsKKzMzRjQ7MzNGNDszM0Y0OzAwMzIgMDAzMSA2NUU1OzAwMzIgMDAzMSA2NUU1OworMzNGNTszM0Y1OzMzRjU7MDAzMiAwMDMyIDY1RTU7MDAzMiAwMDMyIDY1RTU7CiszM0Y2OzMzRjY7MzNGNjswMDMyIDAwMzMgNjVFNTswMDMyIDAwMzMgNjVFNTsKKzMzRjc7MzNGNzszM0Y3OzAwMzIgMDAzNCA2NUU1OzAwMzIgMDAzNCA2NUU1OworMzNGODszM0Y4OzMzRjg7MDAzMiAwMDM1IDY1RTU7MDAzMiAwMDM1IDY1RTU7CiszM0Y5OzMzRjk7MzNGOTswMDMyIDAwMzYgNjVFNTswMDMyIDAwMzYgNjVFNTsKKzMzRkE7MzNGQTszM0ZBOzAwMzIgMDAzNyA2NUU1OzAwMzIgMDAzNyA2NUU1OworMzNGQjszM0ZCOzMzRkI7MDAzMiAwMDM4IDY1RTU7MDAzMiAwMDM4IDY1RTU7CiszM0ZDOzMzRkM7MzNGQzswMDMyIDAwMzkgNjVFNTswMDMyIDAwMzkgNjVFNTsKKzMzRkQ7MzNGRDszM0ZEOzAwMzMgMDAzMCA2NUU1OzAwMzMgMDAzMCA2NUU1OworMzNGRTszM0ZFOzMzRkU7MDAzMyAwMDMxIDY1RTU7MDAzMyAwMDMxIDY1RTU7CitBQzAwO0FDMDA7MTEwMCAxMTYxO0FDMDA7MTEwMCAxMTYxOworQUMwMTtBQzAxOzExMDAgMTE2MSAxMUE4O0FDMDE7MTEwMCAxMTYxIDExQTg7CitBQzAyO0FDMDI7MTEwMCAxMTYxIDExQTk7QUMwMjsxMTAwIDExNjEgMTFBOTsKK0FDMDM7QUMwMzsxMTAwIDExNjEgMTFBQTtBQzAzOzExMDAgMTE2MSAxMUFBOworQUMwNDtBQzA0OzExMDAgMTE2MSAxMUFCO0FDMDQ7MTEwMCAxMTYxIDExQUI7CitBQzA1O0FDMDU7MTEwMCAxMTYxIDExQUM7QUMwNTsxMTAwIDExNjEgMTFBQzsKK0FDMDY7QUMwNjsxMTAwIDExNjEgMTFBRDtBQzA2OzExMDAgMTE2MSAxMUFEOworQUMwNztBQzA3OzExMDAgMTE2MSAxMUFFO0FDMDc7MTEwMCAxMTYxIDExQUU7CitBQzA4O0FDMDg7MTEwMCAxMTYxIDExQUY7QUMwODsxMTAwIDExNjEgMTFBRjsKK0FDMDk7QUMwOTsxMTAwIDExNjEgMTFCMDtBQzA5OzExMDAgMTE2MSAxMUIwOworQUMwQTtBQzBBOzExMDAgMTE2MSAxMUIxO0FDMEE7MTEwMCAxMTYxIDExQjE7CitBQzBCO0FDMEI7MTEwMCAxMTYxIDExQjI7QUMwQjsxMTAwIDExNjEgMTFCMjsKK0FDMEM7QUMwQzsxMTAwIDExNjEgMTFCMztBQzBDOzExMDAgMTE2MSAxMUIzOworQUMwRDtBQzBEOzExMDAgMTE2MSAxMUI0O0FDMEQ7MTEwMCAxMTYxIDExQjQ7CitBQzBFO0FDMEU7MTEwMCAxMTYxIDExQjU7QUMwRTsxMTAwIDExNjEgMTFCNTsKK0FDMEY7QUMwRjsxMTAwIDExNjEgMTFCNjtBQzBGOzExMDAgMTE2MSAxMUI2OworQUMxMDtBQzEwOzExMDAgMTE2MSAxMUI3O0FDMTA7MTEwMCAxMTYxIDExQjc7CitBQzExO0FDMTE7MTEwMCAxMTYxIDExQjg7QUMxMTsxMTAwIDExNjEgMTFCODsKK0FDMTI7QUMxMjsxMTAwIDExNjEgMTFCOTtBQzEyOzExMDAgMTE2MSAxMUI5OworQUMxMztBQzEzOzExMDAgMTE2MSAxMUJBO0FDMTM7MTEwMCAxMTYxIDExQkE7CitBQzE0O0FDMTQ7MTEwMCAxMTYxIDExQkI7QUMxNDsxMTAwIDExNjEgMTFCQjsKK0FDMTU7QUMxNTsxMTAwIDExNjEgMTFCQztBQzE1OzExMDAgMTE2MSAxMUJDOworQUMxNjtBQzE2OzExMDAgMTE2MSAxMUJEO0FDMTY7MTEwMCAxMTYxIDExQkQ7CitBQzE3O0FDMTc7MTEwMCAxMTYxIDExQkU7QUMxNzsxMTAwIDExNjEgMTFCRTsKK0FDMTg7QUMxODsxMTAwIDExNjEgMTFCRjtBQzE4OzExMDAgMTE2MSAxMUJGOworQUMxOTtBQzE5OzExMDAgMTE2MSAxMUMwO0FDMTk7MTEwMCAxMTYxIDExQzA7CitBQzFBO0FDMUE7MTEwMCAxMTYxIDExQzE7QUMxQTsxMTAwIDExNjEgMTFDMTsKK0FDMUI7QUMxQjsxMTAwIDExNjEgMTFDMjtBQzFCOzExMDAgMTE2MSAxMUMyOworQUMxQztBQzFDOzExMDAgMTE2MjtBQzFDOzExMDAgMTE2MjsKK0FDMUQ7QUMxRDsxMTAwIDExNjIgMTFBODtBQzFEOzExMDAgMTE2MiAxMUE4OworQUMxRTtBQzFFOzExMDAgMTE2MiAxMUE5O0FDMUU7MTEwMCAxMTYyIDExQTk7CitBQzFGO0FDMUY7MTEwMCAxMTYyIDExQUE7QUMxRjsxMTAwIDExNjIgMTFBQTsKK0FDMjA7QUMyMDsxMTAwIDExNjIgMTFBQjtBQzIwOzExMDAgMTE2MiAxMUFCOworQUMyMTtBQzIxOzExMDAgMTE2MiAxMUFDO0FDMjE7MTEwMCAxMTYyIDExQUM7CitBQzIyO0FDMjI7MTEwMCAxMTYyIDExQUQ7QUMyMjsxMTAwIDExNjIgMTFBRDsKK0FDMjM7QUMyMzsxMTAwIDExNjIgMTFBRTtBQzIzOzExMDAgMTE2MiAxMUFFOworQUMyNDtBQzI0OzExMDAgMTE2MiAxMUFGO0FDMjQ7MTEwMCAxMTYyIDExQUY7CitBQzI1O0FDMjU7MTEwMCAxMTYyIDExQjA7QUMyNTsxMTAwIDExNjIgMTFCMDsKK0FDMjY7QUMyNjsxMTAwIDExNjIgMTFCMTtBQzI2OzExMDAgMTE2MiAxMUIxOworQUMyNztBQzI3OzExMDAgMTE2MiAxMUIyO0FDMjc7MTEwMCAxMTYyIDExQjI7CitBQzI4O0FDMjg7MTEwMCAxMTYyIDExQjM7QUMyODsxMTAwIDExNjIgMTFCMzsKK0FDMjk7QUMyOTsxMTAwIDExNjIgMTFCNDtBQzI5OzExMDAgMTE2MiAxMUI0OworQUMyQTtBQzJBOzExMDAgMTE2MiAxMUI1O0FDMkE7MTEwMCAxMTYyIDExQjU7CitBQzJCO0FDMkI7MTEwMCAxMTYyIDExQjY7QUMyQjsxMTAwIDExNjIgMTFCNjsKK0FDMkM7QUMyQzsxMTAwIDExNjIgMTFCNztBQzJDOzExMDAgMTE2MiAxMUI3OworQUMyRDtBQzJEOzExMDAgMTE2MiAxMUI4O0FDMkQ7MTEwMCAxMTYyIDExQjg7CitBQzJFO0FDMkU7MTEwMCAxMTYyIDExQjk7QUMyRTsxMTAwIDExNjIgMTFCOTsKK0FDMkY7QUMyRjsxMTAwIDExNjIgMTFCQTtBQzJGOzExMDAgMTE2MiAxMUJBOworQUMzMDtBQzMwOzExMDAgMTE2MiAxMUJCO0FDMzA7MTEwMCAxMTYyIDExQkI7CitBQzMxO0FDMzE7MTEwMCAxMTYyIDExQkM7QUMzMTsxMTAwIDExNjIgMTFCQzsKK0FDMzI7QUMzMjsxMTAwIDExNjIgMTFCRDtBQzMyOzExMDAgMTE2MiAxMUJEOworQUMzMztBQzMzOzExMDAgMTE2MiAxMUJFO0FDMzM7MTEwMCAxMTYyIDExQkU7CitBQzM0O0FDMzQ7MTEwMCAxMTYyIDExQkY7QUMzNDsxMTAwIDExNjIgMTFCRjsKK0FDMzU7QUMzNTsxMTAwIDExNjIgMTFDMDtBQzM1OzExMDAgMTE2MiAxMUMwOworQUMzNjtBQzM2OzExMDAgMTE2MiAxMUMxO0FDMzY7MTEwMCAxMTYyIDExQzE7CitBQzM3O0FDMzc7MTEwMCAxMTYyIDExQzI7QUMzNzsxMTAwIDExNjIgMTFDMjsKK0FDMzg7QUMzODsxMTAwIDExNjM7QUMzODsxMTAwIDExNjM7CitBQzM5O0FDMzk7MTEwMCAxMTYzIDExQTg7QUMzOTsxMTAwIDExNjMgMTFBODsKK0FDM0E7QUMzQTsxMTAwIDExNjMgMTFBOTtBQzNBOzExMDAgMTE2MyAxMUE5OworQUMzQjtBQzNCOzExMDAgMTE2MyAxMUFBO0FDM0I7MTEwMCAxMTYzIDExQUE7CitBQzNDO0FDM0M7MTEwMCAxMTYzIDExQUI7QUMzQzsxMTAwIDExNjMgMTFBQjsKK0FDM0Q7QUMzRDsxMTAwIDExNjMgMTFBQztBQzNEOzExMDAgMTE2MyAxMUFDOworQUMzRTtBQzNFOzExMDAgMTE2MyAxMUFEO0FDM0U7MTEwMCAxMTYzIDExQUQ7CitBQzNGO0FDM0Y7MTEwMCAxMTYzIDExQUU7QUMzRjsxMTAwIDExNjMgMTFBRTsKK0FDNDA7QUM0MDsxMTAwIDExNjMgMTFBRjtBQzQwOzExMDAgMTE2MyAxMUFGOworQUM0MTtBQzQxOzExMDAgMTE2MyAxMUIwO0FDNDE7MTEwMCAxMTYzIDExQjA7CitBQzQyO0FDNDI7MTEwMCAxMTYzIDExQjE7QUM0MjsxMTAwIDExNjMgMTFCMTsKK0FDNDM7QUM0MzsxMTAwIDExNjMgMTFCMjtBQzQzOzExMDAgMTE2MyAxMUIyOworQUM0NDtBQzQ0OzExMDAgMTE2MyAxMUIzO0FDNDQ7MTEwMCAxMTYzIDExQjM7CitBQzQ1O0FDNDU7MTEwMCAxMTYzIDExQjQ7QUM0NTsxMTAwIDExNjMgMTFCNDsKK0FDNDY7QUM0NjsxMTAwIDExNjMgMTFCNTtBQzQ2OzExMDAgMTE2MyAxMUI1OworQUM0NztBQzQ3OzExMDAgMTE2MyAxMUI2O0FDNDc7MTEwMCAxMTYzIDExQjY7CitBQzQ4O0FDNDg7MTEwMCAxMTYzIDExQjc7QUM0ODsxMTAwIDExNjMgMTFCNzsKK0FDNDk7QUM0OTsxMTAwIDExNjMgMTFCODtBQzQ5OzExMDAgMTE2MyAxMUI4OworQUM0QTtBQzRBOzExMDAgMTE2MyAxMUI5O0FDNEE7MTEwMCAxMTYzIDExQjk7CitBQzRCO0FDNEI7MTEwMCAxMTYzIDExQkE7QUM0QjsxMTAwIDExNjMgMTFCQTsKK0FDNEM7QUM0QzsxMTAwIDExNjMgMTFCQjtBQzRDOzExMDAgMTE2MyAxMUJCOworQUM0RDtBQzREOzExMDAgMTE2MyAxMUJDO0FDNEQ7MTEwMCAxMTYzIDExQkM7CitBQzRFO0FDNEU7MTEwMCAxMTYzIDExQkQ7QUM0RTsxMTAwIDExNjMgMTFCRDsKK0FDNEY7QUM0RjsxMTAwIDExNjMgMTFCRTtBQzRGOzExMDAgMTE2MyAxMUJFOworQUM1MDtBQzUwOzExMDAgMTE2MyAxMUJGO0FDNTA7MTEwMCAxMTYzIDExQkY7CitBQzUxO0FDNTE7MTEwMCAxMTYzIDExQzA7QUM1MTsxMTAwIDExNjMgMTFDMDsKK0FDNTI7QUM1MjsxMTAwIDExNjMgMTFDMTtBQzUyOzExMDAgMTE2MyAxMUMxOworQUM1MztBQzUzOzExMDAgMTE2MyAxMUMyO0FDNTM7MTEwMCAxMTYzIDExQzI7CitBQzU0O0FDNTQ7MTEwMCAxMTY0O0FDNTQ7MTEwMCAxMTY0OworQUM1NTtBQzU1OzExMDAgMTE2NCAxMUE4O0FDNTU7MTEwMCAxMTY0IDExQTg7CitBQzU2O0FDNTY7MTEwMCAxMTY0IDExQTk7QUM1NjsxMTAwIDExNjQgMTFBOTsKK0FDNTc7QUM1NzsxMTAwIDExNjQgMTFBQTtBQzU3OzExMDAgMTE2NCAxMUFBOworQUM1ODtBQzU4OzExMDAgMTE2NCAxMUFCO0FDNTg7MTEwMCAxMTY0IDExQUI7CitBQzU5O0FDNTk7MTEwMCAxMTY0IDExQUM7QUM1OTsxMTAwIDExNjQgMTFBQzsKK0FDNUE7QUM1QTsxMTAwIDExNjQgMTFBRDtBQzVBOzExMDAgMTE2NCAxMUFEOworQUM1QjtBQzVCOzExMDAgMTE2NCAxMUFFO0FDNUI7MTEwMCAxMTY0IDExQUU7CitBQzVDO0FDNUM7MTEwMCAxMTY0IDExQUY7QUM1QzsxMTAwIDExNjQgMTFBRjsKK0FDNUQ7QUM1RDsxMTAwIDExNjQgMTFCMDtBQzVEOzExMDAgMTE2NCAxMUIwOworQUM1RTtBQzVFOzExMDAgMTE2NCAxMUIxO0FDNUU7MTEwMCAxMTY0IDExQjE7CitBQzVGO0FDNUY7MTEwMCAxMTY0IDExQjI7QUM1RjsxMTAwIDExNjQgMTFCMjsKK0FDNjA7QUM2MDsxMTAwIDExNjQgMTFCMztBQzYwOzExMDAgMTE2NCAxMUIzOworQUM2MTtBQzYxOzExMDAgMTE2NCAxMUI0O0FDNjE7MTEwMCAxMTY0IDExQjQ7CitBQzYyO0FDNjI7MTEwMCAxMTY0IDExQjU7QUM2MjsxMTAwIDExNjQgMTFCNTsKK0FDNjM7QUM2MzsxMTAwIDExNjQgMTFCNjtBQzYzOzExMDAgMTE2NCAxMUI2OworQUM2NDtBQzY0OzExMDAgMTE2NCAxMUI3O0FDNjQ7MTEwMCAxMTY0IDExQjc7CitBQzY1O0FDNjU7MTEwMCAxMTY0IDExQjg7QUM2NTsxMTAwIDExNjQgMTFCODsKK0FDNjY7QUM2NjsxMTAwIDExNjQgMTFCOTtBQzY2OzExMDAgMTE2NCAxMUI5OworQUM2NztBQzY3OzExMDAgMTE2NCAxMUJBO0FDNjc7MTEwMCAxMTY0IDExQkE7CitBQzY4O0FDNjg7MTEwMCAxMTY0IDExQkI7QUM2ODsxMTAwIDExNjQgMTFCQjsKK0FDNjk7QUM2OTsxMTAwIDExNjQgMTFCQztBQzY5OzExMDAgMTE2NCAxMUJDOworQUM2QTtBQzZBOzExMDAgMTE2NCAxMUJEO0FDNkE7MTEwMCAxMTY0IDExQkQ7CitBQzZCO0FDNkI7MTEwMCAxMTY0IDExQkU7QUM2QjsxMTAwIDExNjQgMTFCRTsKK0FDNkM7QUM2QzsxMTAwIDExNjQgMTFCRjtBQzZDOzExMDAgMTE2NCAxMUJGOworQUM2RDtBQzZEOzExMDAgMTE2NCAxMUMwO0FDNkQ7MTEwMCAxMTY0IDExQzA7CitBQzZFO0FDNkU7MTEwMCAxMTY0IDExQzE7QUM2RTsxMTAwIDExNjQgMTFDMTsKK0FDNkY7QUM2RjsxMTAwIDExNjQgMTFDMjtBQzZGOzExMDAgMTE2NCAxMUMyOworQUM3MDtBQzcwOzExMDAgMTE2NTtBQzcwOzExMDAgMTE2NTsKK0FDNzE7QUM3MTsxMTAwIDExNjUgMTFBODtBQzcxOzExMDAgMTE2NSAxMUE4OworQUM3MjtBQzcyOzExMDAgMTE2NSAxMUE5O0FDNzI7MTEwMCAxMTY1IDExQTk7CitBQzczO0FDNzM7MTEwMCAxMTY1IDExQUE7QUM3MzsxMTAwIDExNjUgMTFBQTsKK0FDNzQ7QUM3NDsxMTAwIDExNjUgMTFBQjtBQzc0OzExMDAgMTE2NSAxMUFCOworQUM3NTtBQzc1OzExMDAgMTE2NSAxMUFDO0FDNzU7MTEwMCAxMTY1IDExQUM7CitBQzc2O0FDNzY7MTEwMCAxMTY1IDExQUQ7QUM3NjsxMTAwIDExNjUgMTFBRDsKK0FDNzc7QUM3NzsxMTAwIDExNjUgMTFBRTtBQzc3OzExMDAgMTE2NSAxMUFFOworQUM3ODtBQzc4OzExMDAgMTE2NSAxMUFGO0FDNzg7MTEwMCAxMTY1IDExQUY7CitBQzc5O0FDNzk7MTEwMCAxMTY1IDExQjA7QUM3OTsxMTAwIDExNjUgMTFCMDsKK0FDN0E7QUM3QTsxMTAwIDExNjUgMTFCMTtBQzdBOzExMDAgMTE2NSAxMUIxOworQUM3QjtBQzdCOzExMDAgMTE2NSAxMUIyO0FDN0I7MTEwMCAxMTY1IDExQjI7CitBQzdDO0FDN0M7MTEwMCAxMTY1IDExQjM7QUM3QzsxMTAwIDExNjUgMTFCMzsKK0FDN0Q7QUM3RDsxMTAwIDExNjUgMTFCNDtBQzdEOzExMDAgMTE2NSAxMUI0OworQUM3RTtBQzdFOzExMDAgMTE2NSAxMUI1O0FDN0U7MTEwMCAxMTY1IDExQjU7CitBQzdGO0FDN0Y7MTEwMCAxMTY1IDExQjY7QUM3RjsxMTAwIDExNjUgMTFCNjsKK0FDODA7QUM4MDsxMTAwIDExNjUgMTFCNztBQzgwOzExMDAgMTE2NSAxMUI3OworQUM4MTtBQzgxOzExMDAgMTE2NSAxMUI4O0FDODE7MTEwMCAxMTY1IDExQjg7CitBQzgyO0FDODI7MTEwMCAxMTY1IDExQjk7QUM4MjsxMTAwIDExNjUgMTFCOTsKK0FDODM7QUM4MzsxMTAwIDExNjUgMTFCQTtBQzgzOzExMDAgMTE2NSAxMUJBOworQUM4NDtBQzg0OzExMDAgMTE2NSAxMUJCO0FDODQ7MTEwMCAxMTY1IDExQkI7CitBQzg1O0FDODU7MTEwMCAxMTY1IDExQkM7QUM4NTsxMTAwIDExNjUgMTFCQzsKK0FDODY7QUM4NjsxMTAwIDExNjUgMTFCRDtBQzg2OzExMDAgMTE2NSAxMUJEOworQUM4NztBQzg3OzExMDAgMTE2NSAxMUJFO0FDODc7MTEwMCAxMTY1IDExQkU7CitBQzg4O0FDODg7MTEwMCAxMTY1IDExQkY7QUM4ODsxMTAwIDExNjUgMTFCRjsKK0FDODk7QUM4OTsxMTAwIDExNjUgMTFDMDtBQzg5OzExMDAgMTE2NSAxMUMwOworQUM4QTtBQzhBOzExMDAgMTE2NSAxMUMxO0FDOEE7MTEwMCAxMTY1IDExQzE7CitBQzhCO0FDOEI7MTEwMCAxMTY1IDExQzI7QUM4QjsxMTAwIDExNjUgMTFDMjsKK0FDOEM7QUM4QzsxMTAwIDExNjY7QUM4QzsxMTAwIDExNjY7CitBQzhEO0FDOEQ7MTEwMCAxMTY2IDExQTg7QUM4RDsxMTAwIDExNjYgMTFBODsKK0FDOEU7QUM4RTsxMTAwIDExNjYgMTFBOTtBQzhFOzExMDAgMTE2NiAxMUE5OworQUM4RjtBQzhGOzExMDAgMTE2NiAxMUFBO0FDOEY7MTEwMCAxMTY2IDExQUE7CitBQzkwO0FDOTA7MTEwMCAxMTY2IDExQUI7QUM5MDsxMTAwIDExNjYgMTFBQjsKK0FDOTE7QUM5MTsxMTAwIDExNjYgMTFBQztBQzkxOzExMDAgMTE2NiAxMUFDOworQUM5MjtBQzkyOzExMDAgMTE2NiAxMUFEO0FDOTI7MTEwMCAxMTY2IDExQUQ7CitBQzkzO0FDOTM7MTEwMCAxMTY2IDExQUU7QUM5MzsxMTAwIDExNjYgMTFBRTsKK0FDOTQ7QUM5NDsxMTAwIDExNjYgMTFBRjtBQzk0OzExMDAgMTE2NiAxMUFGOworQUM5NTtBQzk1OzExMDAgMTE2NiAxMUIwO0FDOTU7MTEwMCAxMTY2IDExQjA7CitBQzk2O0FDOTY7MTEwMCAxMTY2IDExQjE7QUM5NjsxMTAwIDExNjYgMTFCMTsKK0FDOTc7QUM5NzsxMTAwIDExNjYgMTFCMjtBQzk3OzExMDAgMTE2NiAxMUIyOworQUM5ODtBQzk4OzExMDAgMTE2NiAxMUIzO0FDOTg7MTEwMCAxMTY2IDExQjM7CitBQzk5O0FDOTk7MTEwMCAxMTY2IDExQjQ7QUM5OTsxMTAwIDExNjYgMTFCNDsKK0FDOUE7QUM5QTsxMTAwIDExNjYgMTFCNTtBQzlBOzExMDAgMTE2NiAxMUI1OworQUM5QjtBQzlCOzExMDAgMTE2NiAxMUI2O0FDOUI7MTEwMCAxMTY2IDExQjY7CitBQzlDO0FDOUM7MTEwMCAxMTY2IDExQjc7QUM5QzsxMTAwIDExNjYgMTFCNzsKK0FDOUQ7QUM5RDsxMTAwIDExNjYgMTFCODtBQzlEOzExMDAgMTE2NiAxMUI4OworQUM5RTtBQzlFOzExMDAgMTE2NiAxMUI5O0FDOUU7MTEwMCAxMTY2IDExQjk7CitBQzlGO0FDOUY7MTEwMCAxMTY2IDExQkE7QUM5RjsxMTAwIDExNjYgMTFCQTsKK0FDQTA7QUNBMDsxMTAwIDExNjYgMTFCQjtBQ0EwOzExMDAgMTE2NiAxMUJCOworQUNBMTtBQ0ExOzExMDAgMTE2NiAxMUJDO0FDQTE7MTEwMCAxMTY2IDExQkM7CitBQ0EyO0FDQTI7MTEwMCAxMTY2IDExQkQ7QUNBMjsxMTAwIDExNjYgMTFCRDsKK0FDQTM7QUNBMzsxMTAwIDExNjYgMTFCRTtBQ0EzOzExMDAgMTE2NiAxMUJFOworQUNBNDtBQ0E0OzExMDAgMTE2NiAxMUJGO0FDQTQ7MTEwMCAxMTY2IDExQkY7CitBQ0E1O0FDQTU7MTEwMCAxMTY2IDExQzA7QUNBNTsxMTAwIDExNjYgMTFDMDsKK0FDQTY7QUNBNjsxMTAwIDExNjYgMTFDMTtBQ0E2OzExMDAgMTE2NiAxMUMxOworQUNBNztBQ0E3OzExMDAgMTE2NiAxMUMyO0FDQTc7MTEwMCAxMTY2IDExQzI7CitBQ0E4O0FDQTg7MTEwMCAxMTY3O0FDQTg7MTEwMCAxMTY3OworQUNBOTtBQ0E5OzExMDAgMTE2NyAxMUE4O0FDQTk7MTEwMCAxMTY3IDExQTg7CitBQ0FBO0FDQUE7MTEwMCAxMTY3IDExQTk7QUNBQTsxMTAwIDExNjcgMTFBOTsKK0FDQUI7QUNBQjsxMTAwIDExNjcgMTFBQTtBQ0FCOzExMDAgMTE2NyAxMUFBOworQUNBQztBQ0FDOzExMDAgMTE2NyAxMUFCO0FDQUM7MTEwMCAxMTY3IDExQUI7CitBQ0FEO0FDQUQ7MTEwMCAxMTY3IDExQUM7QUNBRDsxMTAwIDExNjcgMTFBQzsKK0FDQUU7QUNBRTsxMTAwIDExNjcgMTFBRDtBQ0FFOzExMDAgMTE2NyAxMUFEOworQUNBRjtBQ0FGOzExMDAgMTE2NyAxMUFFO0FDQUY7MTEwMCAxMTY3IDExQUU7CitBQ0IwO0FDQjA7MTEwMCAxMTY3IDExQUY7QUNCMDsxMTAwIDExNjcgMTFBRjsKK0FDQjE7QUNCMTsxMTAwIDExNjcgMTFCMDtBQ0IxOzExMDAgMTE2NyAxMUIwOworQUNCMjtBQ0IyOzExMDAgMTE2NyAxMUIxO0FDQjI7MTEwMCAxMTY3IDExQjE7CitBQ0IzO0FDQjM7MTEwMCAxMTY3IDExQjI7QUNCMzsxMTAwIDExNjcgMTFCMjsKK0FDQjQ7QUNCNDsxMTAwIDExNjcgMTFCMztBQ0I0OzExMDAgMTE2NyAxMUIzOworQUNCNTtBQ0I1OzExMDAgMTE2NyAxMUI0O0FDQjU7MTEwMCAxMTY3IDExQjQ7CitBQ0I2O0FDQjY7MTEwMCAxMTY3IDExQjU7QUNCNjsxMTAwIDExNjcgMTFCNTsKK0FDQjc7QUNCNzsxMTAwIDExNjcgMTFCNjtBQ0I3OzExMDAgMTE2NyAxMUI2OworQUNCODtBQ0I4OzExMDAgMTE2NyAxMUI3O0FDQjg7MTEwMCAxMTY3IDExQjc7CitBQ0I5O0FDQjk7MTEwMCAxMTY3IDExQjg7QUNCOTsxMTAwIDExNjcgMTFCODsKK0FDQkE7QUNCQTsxMTAwIDExNjcgMTFCOTtBQ0JBOzExMDAgMTE2NyAxMUI5OworQUNCQjtBQ0JCOzExMDAgMTE2NyAxMUJBO0FDQkI7MTEwMCAxMTY3IDExQkE7CitBQ0JDO0FDQkM7MTEwMCAxMTY3IDExQkI7QUNCQzsxMTAwIDExNjcgMTFCQjsKK0FDQkQ7QUNCRDsxMTAwIDExNjcgMTFCQztBQ0JEOzExMDAgMTE2NyAxMUJDOworQUNCRTtBQ0JFOzExMDAgMTE2NyAxMUJEO0FDQkU7MTEwMCAxMTY3IDExQkQ7CitBQ0JGO0FDQkY7MTEwMCAxMTY3IDExQkU7QUNCRjsxMTAwIDExNjcgMTFCRTsKK0FDQzA7QUNDMDsxMTAwIDExNjcgMTFCRjtBQ0MwOzExMDAgMTE2NyAxMUJGOworQUNDMTtBQ0MxOzExMDAgMTE2NyAxMUMwO0FDQzE7MTEwMCAxMTY3IDExQzA7CitBQ0MyO0FDQzI7MTEwMCAxMTY3IDExQzE7QUNDMjsxMTAwIDExNjcgMTFDMTsKK0FDQzM7QUNDMzsxMTAwIDExNjcgMTFDMjtBQ0MzOzExMDAgMTE2NyAxMUMyOworQUNDNDtBQ0M0OzExMDAgMTE2ODtBQ0M0OzExMDAgMTE2ODsKK0FDQzU7QUNDNTsxMTAwIDExNjggMTFBODtBQ0M1OzExMDAgMTE2OCAxMUE4OworQUNDNjtBQ0M2OzExMDAgMTE2OCAxMUE5O0FDQzY7MTEwMCAxMTY4IDExQTk7CitBQ0M3O0FDQzc7MTEwMCAxMTY4IDExQUE7QUNDNzsxMTAwIDExNjggMTFBQTsKK0FDQzg7QUNDODsxMTAwIDExNjggMTFBQjtBQ0M4OzExMDAgMTE2OCAxMUFCOworQUNDOTtBQ0M5OzExMDAgMTE2OCAxMUFDO0FDQzk7MTEwMCAxMTY4IDExQUM7CitBQ0NBO0FDQ0E7MTEwMCAxMTY4IDExQUQ7QUNDQTsxMTAwIDExNjggMTFBRDsKK0FDQ0I7QUNDQjsxMTAwIDExNjggMTFBRTtBQ0NCOzExMDAgMTE2OCAxMUFFOworQUNDQztBQ0NDOzExMDAgMTE2OCAxMUFGO0FDQ0M7MTEwMCAxMTY4IDExQUY7CitBQ0NEO0FDQ0Q7MTEwMCAxMTY4IDExQjA7QUNDRDsxMTAwIDExNjggMTFCMDsKK0FDQ0U7QUNDRTsxMTAwIDExNjggMTFCMTtBQ0NFOzExMDAgMTE2OCAxMUIxOworQUNDRjtBQ0NGOzExMDAgMTE2OCAxMUIyO0FDQ0Y7MTEwMCAxMTY4IDExQjI7CitBQ0QwO0FDRDA7MTEwMCAxMTY4IDExQjM7QUNEMDsxMTAwIDExNjggMTFCMzsKK0FDRDE7QUNEMTsxMTAwIDExNjggMTFCNDtBQ0QxOzExMDAgMTE2OCAxMUI0OworQUNEMjtBQ0QyOzExMDAgMTE2OCAxMUI1O0FDRDI7MTEwMCAxMTY4IDExQjU7CitBQ0QzO0FDRDM7MTEwMCAxMTY4IDExQjY7QUNEMzsxMTAwIDExNjggMTFCNjsKK0FDRDQ7QUNENDsxMTAwIDExNjggMTFCNztBQ0Q0OzExMDAgMTE2OCAxMUI3OworQUNENTtBQ0Q1OzExMDAgMTE2OCAxMUI4O0FDRDU7MTEwMCAxMTY4IDExQjg7CitBQ0Q2O0FDRDY7MTEwMCAxMTY4IDExQjk7QUNENjsxMTAwIDExNjggMTFCOTsKK0FDRDc7QUNENzsxMTAwIDExNjggMTFCQTtBQ0Q3OzExMDAgMTE2OCAxMUJBOworQUNEODtBQ0Q4OzExMDAgMTE2OCAxMUJCO0FDRDg7MTEwMCAxMTY4IDExQkI7CitBQ0Q5O0FDRDk7MTEwMCAxMTY4IDExQkM7QUNEOTsxMTAwIDExNjggMTFCQzsKK0FDREE7QUNEQTsxMTAwIDExNjggMTFCRDtBQ0RBOzExMDAgMTE2OCAxMUJEOworQUNEQjtBQ0RCOzExMDAgMTE2OCAxMUJFO0FDREI7MTEwMCAxMTY4IDExQkU7CitBQ0RDO0FDREM7MTEwMCAxMTY4IDExQkY7QUNEQzsxMTAwIDExNjggMTFCRjsKK0FDREQ7QUNERDsxMTAwIDExNjggMTFDMDtBQ0REOzExMDAgMTE2OCAxMUMwOworQUNERTtBQ0RFOzExMDAgMTE2OCAxMUMxO0FDREU7MTEwMCAxMTY4IDExQzE7CitBQ0RGO0FDREY7MTEwMCAxMTY4IDExQzI7QUNERjsxMTAwIDExNjggMTFDMjsKK0FDRTA7QUNFMDsxMTAwIDExNjk7QUNFMDsxMTAwIDExNjk7CitBQ0UxO0FDRTE7MTEwMCAxMTY5IDExQTg7QUNFMTsxMTAwIDExNjkgMTFBODsKK0FDRTI7QUNFMjsxMTAwIDExNjkgMTFBOTtBQ0UyOzExMDAgMTE2OSAxMUE5OworQUNFMztBQ0UzOzExMDAgMTE2OSAxMUFBO0FDRTM7MTEwMCAxMTY5IDExQUE7CitBQ0U0O0FDRTQ7MTEwMCAxMTY5IDExQUI7QUNFNDsxMTAwIDExNjkgMTFBQjsKK0FDRTU7QUNFNTsxMTAwIDExNjkgMTFBQztBQ0U1OzExMDAgMTE2OSAxMUFDOworQUNFNjtBQ0U2OzExMDAgMTE2OSAxMUFEO0FDRTY7MTEwMCAxMTY5IDExQUQ7CitBQ0U3O0FDRTc7MTEwMCAxMTY5IDExQUU7QUNFNzsxMTAwIDExNjkgMTFBRTsKK0FDRTg7QUNFODsxMTAwIDExNjkgMTFBRjtBQ0U4OzExMDAgMTE2OSAxMUFGOworQUNFOTtBQ0U5OzExMDAgMTE2OSAxMUIwO0FDRTk7MTEwMCAxMTY5IDExQjA7CitBQ0VBO0FDRUE7MTEwMCAxMTY5IDExQjE7QUNFQTsxMTAwIDExNjkgMTFCMTsKK0FDRUI7QUNFQjsxMTAwIDExNjkgMTFCMjtBQ0VCOzExMDAgMTE2OSAxMUIyOworQUNFQztBQ0VDOzExMDAgMTE2OSAxMUIzO0FDRUM7MTEwMCAxMTY5IDExQjM7CitBQ0VEO0FDRUQ7MTEwMCAxMTY5IDExQjQ7QUNFRDsxMTAwIDExNjkgMTFCNDsKK0FDRUU7QUNFRTsxMTAwIDExNjkgMTFCNTtBQ0VFOzExMDAgMTE2OSAxMUI1OworQUNFRjtBQ0VGOzExMDAgMTE2OSAxMUI2O0FDRUY7MTEwMCAxMTY5IDExQjY7CitBQ0YwO0FDRjA7MTEwMCAxMTY5IDExQjc7QUNGMDsxMTAwIDExNjkgMTFCNzsKK0FDRjE7QUNGMTsxMTAwIDExNjkgMTFCODtBQ0YxOzExMDAgMTE2OSAxMUI4OworQUNGMjtBQ0YyOzExMDAgMTE2OSAxMUI5O0FDRjI7MTEwMCAxMTY5IDExQjk7CitBQ0YzO0FDRjM7MTEwMCAxMTY5IDExQkE7QUNGMzsxMTAwIDExNjkgMTFCQTsKK0FDRjQ7QUNGNDsxMTAwIDExNjkgMTFCQjtBQ0Y0OzExMDAgMTE2OSAxMUJCOworQUNGNTtBQ0Y1OzExMDAgMTE2OSAxMUJDO0FDRjU7MTEwMCAxMTY5IDExQkM7CitBQ0Y2O0FDRjY7MTEwMCAxMTY5IDExQkQ7QUNGNjsxMTAwIDExNjkgMTFCRDsKK0FDRjc7QUNGNzsxMTAwIDExNjkgMTFCRTtBQ0Y3OzExMDAgMTE2OSAxMUJFOworQUNGODtBQ0Y4OzExMDAgMTE2OSAxMUJGO0FDRjg7MTEwMCAxMTY5IDExQkY7CitBQ0Y5O0FDRjk7MTEwMCAxMTY5IDExQzA7QUNGOTsxMTAwIDExNjkgMTFDMDsKK0FDRkE7QUNGQTsxMTAwIDExNjkgMTFDMTtBQ0ZBOzExMDAgMTE2OSAxMUMxOworQUNGQjtBQ0ZCOzExMDAgMTE2OSAxMUMyO0FDRkI7MTEwMCAxMTY5IDExQzI7CitBQ0ZDO0FDRkM7MTEwMCAxMTZBO0FDRkM7MTEwMCAxMTZBOworQUNGRDtBQ0ZEOzExMDAgMTE2QSAxMUE4O0FDRkQ7MTEwMCAxMTZBIDExQTg7CitBQ0ZFO0FDRkU7MTEwMCAxMTZBIDExQTk7QUNGRTsxMTAwIDExNkEgMTFBOTsKK0FDRkY7QUNGRjsxMTAwIDExNkEgMTFBQTtBQ0ZGOzExMDAgMTE2QSAxMUFBOworQUQwMDtBRDAwOzExMDAgMTE2QSAxMUFCO0FEMDA7MTEwMCAxMTZBIDExQUI7CitBRDAxO0FEMDE7MTEwMCAxMTZBIDExQUM7QUQwMTsxMTAwIDExNkEgMTFBQzsKK0FEMDI7QUQwMjsxMTAwIDExNkEgMTFBRDtBRDAyOzExMDAgMTE2QSAxMUFEOworQUQwMztBRDAzOzExMDAgMTE2QSAxMUFFO0FEMDM7MTEwMCAxMTZBIDExQUU7CitBRDA0O0FEMDQ7MTEwMCAxMTZBIDExQUY7QUQwNDsxMTAwIDExNkEgMTFBRjsKK0FEMDU7QUQwNTsxMTAwIDExNkEgMTFCMDtBRDA1OzExMDAgMTE2QSAxMUIwOworQUQwNjtBRDA2OzExMDAgMTE2QSAxMUIxO0FEMDY7MTEwMCAxMTZBIDExQjE7CitBRDA3O0FEMDc7MTEwMCAxMTZBIDExQjI7QUQwNzsxMTAwIDExNkEgMTFCMjsKK0FEMDg7QUQwODsxMTAwIDExNkEgMTFCMztBRDA4OzExMDAgMTE2QSAxMUIzOworQUQwOTtBRDA5OzExMDAgMTE2QSAxMUI0O0FEMDk7MTEwMCAxMTZBIDExQjQ7CitBRDBBO0FEMEE7MTEwMCAxMTZBIDExQjU7QUQwQTsxMTAwIDExNkEgMTFCNTsKK0FEMEI7QUQwQjsxMTAwIDExNkEgMTFCNjtBRDBCOzExMDAgMTE2QSAxMUI2OworQUQwQztBRDBDOzExMDAgMTE2QSAxMUI3O0FEMEM7MTEwMCAxMTZBIDExQjc7CitBRDBEO0FEMEQ7MTEwMCAxMTZBIDExQjg7QUQwRDsxMTAwIDExNkEgMTFCODsKK0FEMEU7QUQwRTsxMTAwIDExNkEgMTFCOTtBRDBFOzExMDAgMTE2QSAxMUI5OworQUQwRjtBRDBGOzExMDAgMTE2QSAxMUJBO0FEMEY7MTEwMCAxMTZBIDExQkE7CitBRDEwO0FEMTA7MTEwMCAxMTZBIDExQkI7QUQxMDsxMTAwIDExNkEgMTFCQjsKK0FEMTE7QUQxMTsxMTAwIDExNkEgMTFCQztBRDExOzExMDAgMTE2QSAxMUJDOworQUQxMjtBRDEyOzExMDAgMTE2QSAxMUJEO0FEMTI7MTEwMCAxMTZBIDExQkQ7CitBRDEzO0FEMTM7MTEwMCAxMTZBIDExQkU7QUQxMzsxMTAwIDExNkEgMTFCRTsKK0FEMTQ7QUQxNDsxMTAwIDExNkEgMTFCRjtBRDE0OzExMDAgMTE2QSAxMUJGOworQUQxNTtBRDE1OzExMDAgMTE2QSAxMUMwO0FEMTU7MTEwMCAxMTZBIDExQzA7CitBRDE2O0FEMTY7MTEwMCAxMTZBIDExQzE7QUQxNjsxMTAwIDExNkEgMTFDMTsKK0FEMTc7QUQxNzsxMTAwIDExNkEgMTFDMjtBRDE3OzExMDAgMTE2QSAxMUMyOworQUQxODtBRDE4OzExMDAgMTE2QjtBRDE4OzExMDAgMTE2QjsKK0FEMTk7QUQxOTsxMTAwIDExNkIgMTFBODtBRDE5OzExMDAgMTE2QiAxMUE4OworQUQxQTtBRDFBOzExMDAgMTE2QiAxMUE5O0FEMUE7MTEwMCAxMTZCIDExQTk7CitBRDFCO0FEMUI7MTEwMCAxMTZCIDExQUE7QUQxQjsxMTAwIDExNkIgMTFBQTsKK0FEMUM7QUQxQzsxMTAwIDExNkIgMTFBQjtBRDFDOzExMDAgMTE2QiAxMUFCOworQUQxRDtBRDFEOzExMDAgMTE2QiAxMUFDO0FEMUQ7MTEwMCAxMTZCIDExQUM7CitBRDFFO0FEMUU7MTEwMCAxMTZCIDExQUQ7QUQxRTsxMTAwIDExNkIgMTFBRDsKK0FEMUY7QUQxRjsxMTAwIDExNkIgMTFBRTtBRDFGOzExMDAgMTE2QiAxMUFFOworQUQyMDtBRDIwOzExMDAgMTE2QiAxMUFGO0FEMjA7MTEwMCAxMTZCIDExQUY7CitBRDIxO0FEMjE7MTEwMCAxMTZCIDExQjA7QUQyMTsxMTAwIDExNkIgMTFCMDsKK0FEMjI7QUQyMjsxMTAwIDExNkIgMTFCMTtBRDIyOzExMDAgMTE2QiAxMUIxOworQUQyMztBRDIzOzExMDAgMTE2QiAxMUIyO0FEMjM7MTEwMCAxMTZCIDExQjI7CitBRDI0O0FEMjQ7MTEwMCAxMTZCIDExQjM7QUQyNDsxMTAwIDExNkIgMTFCMzsKK0FEMjU7QUQyNTsxMTAwIDExNkIgMTFCNDtBRDI1OzExMDAgMTE2QiAxMUI0OworQUQyNjtBRDI2OzExMDAgMTE2QiAxMUI1O0FEMjY7MTEwMCAxMTZCIDExQjU7CitBRDI3O0FEMjc7MTEwMCAxMTZCIDExQjY7QUQyNzsxMTAwIDExNkIgMTFCNjsKK0FEMjg7QUQyODsxMTAwIDExNkIgMTFCNztBRDI4OzExMDAgMTE2QiAxMUI3OworQUQyOTtBRDI5OzExMDAgMTE2QiAxMUI4O0FEMjk7MTEwMCAxMTZCIDExQjg7CitBRDJBO0FEMkE7MTEwMCAxMTZCIDExQjk7QUQyQTsxMTAwIDExNkIgMTFCOTsKK0FEMkI7QUQyQjsxMTAwIDExNkIgMTFCQTtBRDJCOzExMDAgMTE2QiAxMUJBOworQUQyQztBRDJDOzExMDAgMTE2QiAxMUJCO0FEMkM7MTEwMCAxMTZCIDExQkI7CitBRDJEO0FEMkQ7MTEwMCAxMTZCIDExQkM7QUQyRDsxMTAwIDExNkIgMTFCQzsKK0FEMkU7QUQyRTsxMTAwIDExNkIgMTFCRDtBRDJFOzExMDAgMTE2QiAxMUJEOworQUQyRjtBRDJGOzExMDAgMTE2QiAxMUJFO0FEMkY7MTEwMCAxMTZCIDExQkU7CitBRDMwO0FEMzA7MTEwMCAxMTZCIDExQkY7QUQzMDsxMTAwIDExNkIgMTFCRjsKK0FEMzE7QUQzMTsxMTAwIDExNkIgMTFDMDtBRDMxOzExMDAgMTE2QiAxMUMwOworQUQzMjtBRDMyOzExMDAgMTE2QiAxMUMxO0FEMzI7MTEwMCAxMTZCIDExQzE7CitBRDMzO0FEMzM7MTEwMCAxMTZCIDExQzI7QUQzMzsxMTAwIDExNkIgMTFDMjsKK0FEMzQ7QUQzNDsxMTAwIDExNkM7QUQzNDsxMTAwIDExNkM7CitBRDM1O0FEMzU7MTEwMCAxMTZDIDExQTg7QUQzNTsxMTAwIDExNkMgMTFBODsKK0FEMzY7QUQzNjsxMTAwIDExNkMgMTFBOTtBRDM2OzExMDAgMTE2QyAxMUE5OworQUQzNztBRDM3OzExMDAgMTE2QyAxMUFBO0FEMzc7MTEwMCAxMTZDIDExQUE7CitBRDM4O0FEMzg7MTEwMCAxMTZDIDExQUI7QUQzODsxMTAwIDExNkMgMTFBQjsKK0FEMzk7QUQzOTsxMTAwIDExNkMgMTFBQztBRDM5OzExMDAgMTE2QyAxMUFDOworQUQzQTtBRDNBOzExMDAgMTE2QyAxMUFEO0FEM0E7MTEwMCAxMTZDIDExQUQ7CitBRDNCO0FEM0I7MTEwMCAxMTZDIDExQUU7QUQzQjsxMTAwIDExNkMgMTFBRTsKK0FEM0M7QUQzQzsxMTAwIDExNkMgMTFBRjtBRDNDOzExMDAgMTE2QyAxMUFGOworQUQzRDtBRDNEOzExMDAgMTE2QyAxMUIwO0FEM0Q7MTEwMCAxMTZDIDExQjA7CitBRDNFO0FEM0U7MTEwMCAxMTZDIDExQjE7QUQzRTsxMTAwIDExNkMgMTFCMTsKK0FEM0Y7QUQzRjsxMTAwIDExNkMgMTFCMjtBRDNGOzExMDAgMTE2QyAxMUIyOworQUQ0MDtBRDQwOzExMDAgMTE2QyAxMUIzO0FENDA7MTEwMCAxMTZDIDExQjM7CitBRDQxO0FENDE7MTEwMCAxMTZDIDExQjQ7QUQ0MTsxMTAwIDExNkMgMTFCNDsKK0FENDI7QUQ0MjsxMTAwIDExNkMgMTFCNTtBRDQyOzExMDAgMTE2QyAxMUI1OworQUQ0MztBRDQzOzExMDAgMTE2QyAxMUI2O0FENDM7MTEwMCAxMTZDIDExQjY7CitBRDQ0O0FENDQ7MTEwMCAxMTZDIDExQjc7QUQ0NDsxMTAwIDExNkMgMTFCNzsKK0FENDU7QUQ0NTsxMTAwIDExNkMgMTFCODtBRDQ1OzExMDAgMTE2QyAxMUI4OworQUQ0NjtBRDQ2OzExMDAgMTE2QyAxMUI5O0FENDY7MTEwMCAxMTZDIDExQjk7CitBRDQ3O0FENDc7MTEwMCAxMTZDIDExQkE7QUQ0NzsxMTAwIDExNkMgMTFCQTsKK0FENDg7QUQ0ODsxMTAwIDExNkMgMTFCQjtBRDQ4OzExMDAgMTE2QyAxMUJCOworQUQ0OTtBRDQ5OzExMDAgMTE2QyAxMUJDO0FENDk7MTEwMCAxMTZDIDExQkM7CitBRDRBO0FENEE7MTEwMCAxMTZDIDExQkQ7QUQ0QTsxMTAwIDExNkMgMTFCRDsKK0FENEI7QUQ0QjsxMTAwIDExNkMgMTFCRTtBRDRCOzExMDAgMTE2QyAxMUJFOworQUQ0QztBRDRDOzExMDAgMTE2QyAxMUJGO0FENEM7MTEwMCAxMTZDIDExQkY7CitBRDREO0FENEQ7MTEwMCAxMTZDIDExQzA7QUQ0RDsxMTAwIDExNkMgMTFDMDsKK0FENEU7QUQ0RTsxMTAwIDExNkMgMTFDMTtBRDRFOzExMDAgMTE2QyAxMUMxOworQUQ0RjtBRDRGOzExMDAgMTE2QyAxMUMyO0FENEY7MTEwMCAxMTZDIDExQzI7CitBRDUwO0FENTA7MTEwMCAxMTZEO0FENTA7MTEwMCAxMTZEOworQUQ1MTtBRDUxOzExMDAgMTE2RCAxMUE4O0FENTE7MTEwMCAxMTZEIDExQTg7CitBRDUyO0FENTI7MTEwMCAxMTZEIDExQTk7QUQ1MjsxMTAwIDExNkQgMTFBOTsKK0FENTM7QUQ1MzsxMTAwIDExNkQgMTFBQTtBRDUzOzExMDAgMTE2RCAxMUFBOworQUQ1NDtBRDU0OzExMDAgMTE2RCAxMUFCO0FENTQ7MTEwMCAxMTZEIDExQUI7CitBRDU1O0FENTU7MTEwMCAxMTZEIDExQUM7QUQ1NTsxMTAwIDExNkQgMTFBQzsKK0FENTY7QUQ1NjsxMTAwIDExNkQgMTFBRDtBRDU2OzExMDAgMTE2RCAxMUFEOworQUQ1NztBRDU3OzExMDAgMTE2RCAxMUFFO0FENTc7MTEwMCAxMTZEIDExQUU7CitBRDU4O0FENTg7MTEwMCAxMTZEIDExQUY7QUQ1ODsxMTAwIDExNkQgMTFBRjsKK0FENTk7QUQ1OTsxMTAwIDExNkQgMTFCMDtBRDU5OzExMDAgMTE2RCAxMUIwOworQUQ1QTtBRDVBOzExMDAgMTE2RCAxMUIxO0FENUE7MTEwMCAxMTZEIDExQjE7CitBRDVCO0FENUI7MTEwMCAxMTZEIDExQjI7QUQ1QjsxMTAwIDExNkQgMTFCMjsKK0FENUM7QUQ1QzsxMTAwIDExNkQgMTFCMztBRDVDOzExMDAgMTE2RCAxMUIzOworQUQ1RDtBRDVEOzExMDAgMTE2RCAxMUI0O0FENUQ7MTEwMCAxMTZEIDExQjQ7CitBRDVFO0FENUU7MTEwMCAxMTZEIDExQjU7QUQ1RTsxMTAwIDExNkQgMTFCNTsKK0FENUY7QUQ1RjsxMTAwIDExNkQgMTFCNjtBRDVGOzExMDAgMTE2RCAxMUI2OworQUQ2MDtBRDYwOzExMDAgMTE2RCAxMUI3O0FENjA7MTEwMCAxMTZEIDExQjc7CitBRDYxO0FENjE7MTEwMCAxMTZEIDExQjg7QUQ2MTsxMTAwIDExNkQgMTFCODsKK0FENjI7QUQ2MjsxMTAwIDExNkQgMTFCOTtBRDYyOzExMDAgMTE2RCAxMUI5OworQUQ2MztBRDYzOzExMDAgMTE2RCAxMUJBO0FENjM7MTEwMCAxMTZEIDExQkE7CitBRDY0O0FENjQ7MTEwMCAxMTZEIDExQkI7QUQ2NDsxMTAwIDExNkQgMTFCQjsKK0FENjU7QUQ2NTsxMTAwIDExNkQgMTFCQztBRDY1OzExMDAgMTE2RCAxMUJDOworQUQ2NjtBRDY2OzExMDAgMTE2RCAxMUJEO0FENjY7MTEwMCAxMTZEIDExQkQ7CitBRDY3O0FENjc7MTEwMCAxMTZEIDExQkU7QUQ2NzsxMTAwIDExNkQgMTFCRTsKK0FENjg7QUQ2ODsxMTAwIDExNkQgMTFCRjtBRDY4OzExMDAgMTE2RCAxMUJGOworQUQ2OTtBRDY5OzExMDAgMTE2RCAxMUMwO0FENjk7MTEwMCAxMTZEIDExQzA7CitBRDZBO0FENkE7MTEwMCAxMTZEIDExQzE7QUQ2QTsxMTAwIDExNkQgMTFDMTsKK0FENkI7QUQ2QjsxMTAwIDExNkQgMTFDMjtBRDZCOzExMDAgMTE2RCAxMUMyOworQUQ2QztBRDZDOzExMDAgMTE2RTtBRDZDOzExMDAgMTE2RTsKK0FENkQ7QUQ2RDsxMTAwIDExNkUgMTFBODtBRDZEOzExMDAgMTE2RSAxMUE4OworQUQ2RTtBRDZFOzExMDAgMTE2RSAxMUE5O0FENkU7MTEwMCAxMTZFIDExQTk7CitBRDZGO0FENkY7MTEwMCAxMTZFIDExQUE7QUQ2RjsxMTAwIDExNkUgMTFBQTsKK0FENzA7QUQ3MDsxMTAwIDExNkUgMTFBQjtBRDcwOzExMDAgMTE2RSAxMUFCOworQUQ3MTtBRDcxOzExMDAgMTE2RSAxMUFDO0FENzE7MTEwMCAxMTZFIDExQUM7CitBRDcyO0FENzI7MTEwMCAxMTZFIDExQUQ7QUQ3MjsxMTAwIDExNkUgMTFBRDsKK0FENzM7QUQ3MzsxMTAwIDExNkUgMTFBRTtBRDczOzExMDAgMTE2RSAxMUFFOworQUQ3NDtBRDc0OzExMDAgMTE2RSAxMUFGO0FENzQ7MTEwMCAxMTZFIDExQUY7CitBRDc1O0FENzU7MTEwMCAxMTZFIDExQjA7QUQ3NTsxMTAwIDExNkUgMTFCMDsKK0FENzY7QUQ3NjsxMTAwIDExNkUgMTFCMTtBRDc2OzExMDAgMTE2RSAxMUIxOworQUQ3NztBRDc3OzExMDAgMTE2RSAxMUIyO0FENzc7MTEwMCAxMTZFIDExQjI7CitBRDc4O0FENzg7MTEwMCAxMTZFIDExQjM7QUQ3ODsxMTAwIDExNkUgMTFCMzsKK0FENzk7QUQ3OTsxMTAwIDExNkUgMTFCNDtBRDc5OzExMDAgMTE2RSAxMUI0OworQUQ3QTtBRDdBOzExMDAgMTE2RSAxMUI1O0FEN0E7MTEwMCAxMTZFIDExQjU7CitBRDdCO0FEN0I7MTEwMCAxMTZFIDExQjY7QUQ3QjsxMTAwIDExNkUgMTFCNjsKK0FEN0M7QUQ3QzsxMTAwIDExNkUgMTFCNztBRDdDOzExMDAgMTE2RSAxMUI3OworQUQ3RDtBRDdEOzExMDAgMTE2RSAxMUI4O0FEN0Q7MTEwMCAxMTZFIDExQjg7CitBRDdFO0FEN0U7MTEwMCAxMTZFIDExQjk7QUQ3RTsxMTAwIDExNkUgMTFCOTsKK0FEN0Y7QUQ3RjsxMTAwIDExNkUgMTFCQTtBRDdGOzExMDAgMTE2RSAxMUJBOworQUQ4MDtBRDgwOzExMDAgMTE2RSAxMUJCO0FEODA7MTEwMCAxMTZFIDExQkI7CitBRDgxO0FEODE7MTEwMCAxMTZFIDExQkM7QUQ4MTsxMTAwIDExNkUgMTFCQzsKK0FEODI7QUQ4MjsxMTAwIDExNkUgMTFCRDtBRDgyOzExMDAgMTE2RSAxMUJEOworQUQ4MztBRDgzOzExMDAgMTE2RSAxMUJFO0FEODM7MTEwMCAxMTZFIDExQkU7CitBRDg0O0FEODQ7MTEwMCAxMTZFIDExQkY7QUQ4NDsxMTAwIDExNkUgMTFCRjsKK0FEODU7QUQ4NTsxMTAwIDExNkUgMTFDMDtBRDg1OzExMDAgMTE2RSAxMUMwOworQUQ4NjtBRDg2OzExMDAgMTE2RSAxMUMxO0FEODY7MTEwMCAxMTZFIDExQzE7CitBRDg3O0FEODc7MTEwMCAxMTZFIDExQzI7QUQ4NzsxMTAwIDExNkUgMTFDMjsKK0FEODg7QUQ4ODsxMTAwIDExNkY7QUQ4ODsxMTAwIDExNkY7CitBRDg5O0FEODk7MTEwMCAxMTZGIDExQTg7QUQ4OTsxMTAwIDExNkYgMTFBODsKK0FEOEE7QUQ4QTsxMTAwIDExNkYgMTFBOTtBRDhBOzExMDAgMTE2RiAxMUE5OworQUQ4QjtBRDhCOzExMDAgMTE2RiAxMUFBO0FEOEI7MTEwMCAxMTZGIDExQUE7CitBRDhDO0FEOEM7MTEwMCAxMTZGIDExQUI7QUQ4QzsxMTAwIDExNkYgMTFBQjsKK0FEOEQ7QUQ4RDsxMTAwIDExNkYgMTFBQztBRDhEOzExMDAgMTE2RiAxMUFDOworQUQ4RTtBRDhFOzExMDAgMTE2RiAxMUFEO0FEOEU7MTEwMCAxMTZGIDExQUQ7CitBRDhGO0FEOEY7MTEwMCAxMTZGIDExQUU7QUQ4RjsxMTAwIDExNkYgMTFBRTsKK0FEOTA7QUQ5MDsxMTAwIDExNkYgMTFBRjtBRDkwOzExMDAgMTE2RiAxMUFGOworQUQ5MTtBRDkxOzExMDAgMTE2RiAxMUIwO0FEOTE7MTEwMCAxMTZGIDExQjA7CitBRDkyO0FEOTI7MTEwMCAxMTZGIDExQjE7QUQ5MjsxMTAwIDExNkYgMTFCMTsKK0FEOTM7QUQ5MzsxMTAwIDExNkYgMTFCMjtBRDkzOzExMDAgMTE2RiAxMUIyOworQUQ5NDtBRDk0OzExMDAgMTE2RiAxMUIzO0FEOTQ7MTEwMCAxMTZGIDExQjM7CitBRDk1O0FEOTU7MTEwMCAxMTZGIDExQjQ7QUQ5NTsxMTAwIDExNkYgMTFCNDsKK0FEOTY7QUQ5NjsxMTAwIDExNkYgMTFCNTtBRDk2OzExMDAgMTE2RiAxMUI1OworQUQ5NztBRDk3OzExMDAgMTE2RiAxMUI2O0FEOTc7MTEwMCAxMTZGIDExQjY7CitBRDk4O0FEOTg7MTEwMCAxMTZGIDExQjc7QUQ5ODsxMTAwIDExNkYgMTFCNzsKK0FEOTk7QUQ5OTsxMTAwIDExNkYgMTFCODtBRDk5OzExMDAgMTE2RiAxMUI4OworQUQ5QTtBRDlBOzExMDAgMTE2RiAxMUI5O0FEOUE7MTEwMCAxMTZGIDExQjk7CitBRDlCO0FEOUI7MTEwMCAxMTZGIDExQkE7QUQ5QjsxMTAwIDExNkYgMTFCQTsKK0FEOUM7QUQ5QzsxMTAwIDExNkYgMTFCQjtBRDlDOzExMDAgMTE2RiAxMUJCOworQUQ5RDtBRDlEOzExMDAgMTE2RiAxMUJDO0FEOUQ7MTEwMCAxMTZGIDExQkM7CitBRDlFO0FEOUU7MTEwMCAxMTZGIDExQkQ7QUQ5RTsxMTAwIDExNkYgMTFCRDsKK0FEOUY7QUQ5RjsxMTAwIDExNkYgMTFCRTtBRDlGOzExMDAgMTE2RiAxMUJFOworQURBMDtBREEwOzExMDAgMTE2RiAxMUJGO0FEQTA7MTEwMCAxMTZGIDExQkY7CitBREExO0FEQTE7MTEwMCAxMTZGIDExQzA7QURBMTsxMTAwIDExNkYgMTFDMDsKK0FEQTI7QURBMjsxMTAwIDExNkYgMTFDMTtBREEyOzExMDAgMTE2RiAxMUMxOworQURBMztBREEzOzExMDAgMTE2RiAxMUMyO0FEQTM7MTEwMCAxMTZGIDExQzI7CitBREE0O0FEQTQ7MTEwMCAxMTcwO0FEQTQ7MTEwMCAxMTcwOworQURBNTtBREE1OzExMDAgMTE3MCAxMUE4O0FEQTU7MTEwMCAxMTcwIDExQTg7CitBREE2O0FEQTY7MTEwMCAxMTcwIDExQTk7QURBNjsxMTAwIDExNzAgMTFBOTsKK0FEQTc7QURBNzsxMTAwIDExNzAgMTFBQTtBREE3OzExMDAgMTE3MCAxMUFBOworQURBODtBREE4OzExMDAgMTE3MCAxMUFCO0FEQTg7MTEwMCAxMTcwIDExQUI7CitBREE5O0FEQTk7MTEwMCAxMTcwIDExQUM7QURBOTsxMTAwIDExNzAgMTFBQzsKK0FEQUE7QURBQTsxMTAwIDExNzAgMTFBRDtBREFBOzExMDAgMTE3MCAxMUFEOworQURBQjtBREFCOzExMDAgMTE3MCAxMUFFO0FEQUI7MTEwMCAxMTcwIDExQUU7CitBREFDO0FEQUM7MTEwMCAxMTcwIDExQUY7QURBQzsxMTAwIDExNzAgMTFBRjsKK0FEQUQ7QURBRDsxMTAwIDExNzAgMTFCMDtBREFEOzExMDAgMTE3MCAxMUIwOworQURBRTtBREFFOzExMDAgMTE3MCAxMUIxO0FEQUU7MTEwMCAxMTcwIDExQjE7CitBREFGO0FEQUY7MTEwMCAxMTcwIDExQjI7QURBRjsxMTAwIDExNzAgMTFCMjsKK0FEQjA7QURCMDsxMTAwIDExNzAgMTFCMztBREIwOzExMDAgMTE3MCAxMUIzOworQURCMTtBREIxOzExMDAgMTE3MCAxMUI0O0FEQjE7MTEwMCAxMTcwIDExQjQ7CitBREIyO0FEQjI7MTEwMCAxMTcwIDExQjU7QURCMjsxMTAwIDExNzAgMTFCNTsKK0FEQjM7QURCMzsxMTAwIDExNzAgMTFCNjtBREIzOzExMDAgMTE3MCAxMUI2OworQURCNDtBREI0OzExMDAgMTE3MCAxMUI3O0FEQjQ7MTEwMCAxMTcwIDExQjc7CitBREI1O0FEQjU7MTEwMCAxMTcwIDExQjg7QURCNTsxMTAwIDExNzAgMTFCODsKK0FEQjY7QURCNjsxMTAwIDExNzAgMTFCOTtBREI2OzExMDAgMTE3MCAxMUI5OworQURCNztBREI3OzExMDAgMTE3MCAxMUJBO0FEQjc7MTEwMCAxMTcwIDExQkE7CitBREI4O0FEQjg7MTEwMCAxMTcwIDExQkI7QURCODsxMTAwIDExNzAgMTFCQjsKK0FEQjk7QURCOTsxMTAwIDExNzAgMTFCQztBREI5OzExMDAgMTE3MCAxMUJDOworQURCQTtBREJBOzExMDAgMTE3MCAxMUJEO0FEQkE7MTEwMCAxMTcwIDExQkQ7CitBREJCO0FEQkI7MTEwMCAxMTcwIDExQkU7QURCQjsxMTAwIDExNzAgMTFCRTsKK0FEQkM7QURCQzsxMTAwIDExNzAgMTFCRjtBREJDOzExMDAgMTE3MCAxMUJGOworQURCRDtBREJEOzExMDAgMTE3MCAxMUMwO0FEQkQ7MTEwMCAxMTcwIDExQzA7CitBREJFO0FEQkU7MTEwMCAxMTcwIDExQzE7QURCRTsxMTAwIDExNzAgMTFDMTsKK0FEQkY7QURCRjsxMTAwIDExNzAgMTFDMjtBREJGOzExMDAgMTE3MCAxMUMyOworQURDMDtBREMwOzExMDAgMTE3MTtBREMwOzExMDAgMTE3MTsKK0FEQzE7QURDMTsxMTAwIDExNzEgMTFBODtBREMxOzExMDAgMTE3MSAxMUE4OworQURDMjtBREMyOzExMDAgMTE3MSAxMUE5O0FEQzI7MTEwMCAxMTcxIDExQTk7CitBREMzO0FEQzM7MTEwMCAxMTcxIDExQUE7QURDMzsxMTAwIDExNzEgMTFBQTsKK0FEQzQ7QURDNDsxMTAwIDExNzEgMTFBQjtBREM0OzExMDAgMTE3MSAxMUFCOworQURDNTtBREM1OzExMDAgMTE3MSAxMUFDO0FEQzU7MTEwMCAxMTcxIDExQUM7CitBREM2O0FEQzY7MTEwMCAxMTcxIDExQUQ7QURDNjsxMTAwIDExNzEgMTFBRDsKK0FEQzc7QURDNzsxMTAwIDExNzEgMTFBRTtBREM3OzExMDAgMTE3MSAxMUFFOworQURDODtBREM4OzExMDAgMTE3MSAxMUFGO0FEQzg7MTEwMCAxMTcxIDExQUY7CitBREM5O0FEQzk7MTEwMCAxMTcxIDExQjA7QURDOTsxMTAwIDExNzEgMTFCMDsKK0FEQ0E7QURDQTsxMTAwIDExNzEgMTFCMTtBRENBOzExMDAgMTE3MSAxMUIxOworQURDQjtBRENCOzExMDAgMTE3MSAxMUIyO0FEQ0I7MTEwMCAxMTcxIDExQjI7CitBRENDO0FEQ0M7MTEwMCAxMTcxIDExQjM7QURDQzsxMTAwIDExNzEgMTFCMzsKK0FEQ0Q7QURDRDsxMTAwIDExNzEgMTFCNDtBRENEOzExMDAgMTE3MSAxMUI0OworQURDRTtBRENFOzExMDAgMTE3MSAxMUI1O0FEQ0U7MTEwMCAxMTcxIDExQjU7CitBRENGO0FEQ0Y7MTEwMCAxMTcxIDExQjY7QURDRjsxMTAwIDExNzEgMTFCNjsKK0FERDA7QUREMDsxMTAwIDExNzEgMTFCNztBREQwOzExMDAgMTE3MSAxMUI3OworQUREMTtBREQxOzExMDAgMTE3MSAxMUI4O0FERDE7MTEwMCAxMTcxIDExQjg7CitBREQyO0FERDI7MTEwMCAxMTcxIDExQjk7QUREMjsxMTAwIDExNzEgMTFCOTsKK0FERDM7QUREMzsxMTAwIDExNzEgMTFCQTtBREQzOzExMDAgMTE3MSAxMUJBOworQURENDtBREQ0OzExMDAgMTE3MSAxMUJCO0FERDQ7MTEwMCAxMTcxIDExQkI7CitBREQ1O0FERDU7MTEwMCAxMTcxIDExQkM7QURENTsxMTAwIDExNzEgMTFCQzsKK0FERDY7QURENjsxMTAwIDExNzEgMTFCRDtBREQ2OzExMDAgMTE3MSAxMUJEOworQURENztBREQ3OzExMDAgMTE3MSAxMUJFO0FERDc7MTEwMCAxMTcxIDExQkU7CitBREQ4O0FERDg7MTEwMCAxMTcxIDExQkY7QUREODsxMTAwIDExNzEgMTFCRjsKK0FERDk7QUREOTsxMTAwIDExNzEgMTFDMDtBREQ5OzExMDAgMTE3MSAxMUMwOworQUREQTtBRERBOzExMDAgMTE3MSAxMUMxO0FEREE7MTEwMCAxMTcxIDExQzE7CitBRERCO0FEREI7MTEwMCAxMTcxIDExQzI7QUREQjsxMTAwIDExNzEgMTFDMjsKK0FEREM7QUREQzsxMTAwIDExNzI7QUREQzsxMTAwIDExNzI7CitBREREO0FEREQ7MTEwMCAxMTcyIDExQTg7QURERDsxMTAwIDExNzIgMTFBODsKK0FEREU7QURERTsxMTAwIDExNzIgMTFBOTtBRERFOzExMDAgMTE3MiAxMUE5OworQURERjtBRERGOzExMDAgMTE3MiAxMUFBO0FEREY7MTEwMCAxMTcyIDExQUE7CitBREUwO0FERTA7MTEwMCAxMTcyIDExQUI7QURFMDsxMTAwIDExNzIgMTFBQjsKK0FERTE7QURFMTsxMTAwIDExNzIgMTFBQztBREUxOzExMDAgMTE3MiAxMUFDOworQURFMjtBREUyOzExMDAgMTE3MiAxMUFEO0FERTI7MTEwMCAxMTcyIDExQUQ7CitBREUzO0FERTM7MTEwMCAxMTcyIDExQUU7QURFMzsxMTAwIDExNzIgMTFBRTsKK0FERTQ7QURFNDsxMTAwIDExNzIgMTFBRjtBREU0OzExMDAgMTE3MiAxMUFGOworQURFNTtBREU1OzExMDAgMTE3MiAxMUIwO0FERTU7MTEwMCAxMTcyIDExQjA7CitBREU2O0FERTY7MTEwMCAxMTcyIDExQjE7QURFNjsxMTAwIDExNzIgMTFCMTsKK0FERTc7QURFNzsxMTAwIDExNzIgMTFCMjtBREU3OzExMDAgMTE3MiAxMUIyOworQURFODtBREU4OzExMDAgMTE3MiAxMUIzO0FERTg7MTEwMCAxMTcyIDExQjM7CitBREU5O0FERTk7MTEwMCAxMTcyIDExQjQ7QURFOTsxMTAwIDExNzIgMTFCNDsKK0FERUE7QURFQTsxMTAwIDExNzIgMTFCNTtBREVBOzExMDAgMTE3MiAxMUI1OworQURFQjtBREVCOzExMDAgMTE3MiAxMUI2O0FERUI7MTEwMCAxMTcyIDExQjY7CitBREVDO0FERUM7MTEwMCAxMTcyIDExQjc7QURFQzsxMTAwIDExNzIgMTFCNzsKK0FERUQ7QURFRDsxMTAwIDExNzIgMTFCODtBREVEOzExMDAgMTE3MiAxMUI4OworQURFRTtBREVFOzExMDAgMTE3MiAxMUI5O0FERUU7MTEwMCAxMTcyIDExQjk7CitBREVGO0FERUY7MTEwMCAxMTcyIDExQkE7QURFRjsxMTAwIDExNzIgMTFCQTsKK0FERjA7QURGMDsxMTAwIDExNzIgMTFCQjtBREYwOzExMDAgMTE3MiAxMUJCOworQURGMTtBREYxOzExMDAgMTE3MiAxMUJDO0FERjE7MTEwMCAxMTcyIDExQkM7CitBREYyO0FERjI7MTEwMCAxMTcyIDExQkQ7QURGMjsxMTAwIDExNzIgMTFCRDsKK0FERjM7QURGMzsxMTAwIDExNzIgMTFCRTtBREYzOzExMDAgMTE3MiAxMUJFOworQURGNDtBREY0OzExMDAgMTE3MiAxMUJGO0FERjQ7MTEwMCAxMTcyIDExQkY7CitBREY1O0FERjU7MTEwMCAxMTcyIDExQzA7QURGNTsxMTAwIDExNzIgMTFDMDsKK0FERjY7QURGNjsxMTAwIDExNzIgMTFDMTtBREY2OzExMDAgMTE3MiAxMUMxOworQURGNztBREY3OzExMDAgMTE3MiAxMUMyO0FERjc7MTEwMCAxMTcyIDExQzI7CitBREY4O0FERjg7MTEwMCAxMTczO0FERjg7MTEwMCAxMTczOworQURGOTtBREY5OzExMDAgMTE3MyAxMUE4O0FERjk7MTEwMCAxMTczIDExQTg7CitBREZBO0FERkE7MTEwMCAxMTczIDExQTk7QURGQTsxMTAwIDExNzMgMTFBOTsKK0FERkI7QURGQjsxMTAwIDExNzMgMTFBQTtBREZCOzExMDAgMTE3MyAxMUFBOworQURGQztBREZDOzExMDAgMTE3MyAxMUFCO0FERkM7MTEwMCAxMTczIDExQUI7CitBREZEO0FERkQ7MTEwMCAxMTczIDExQUM7QURGRDsxMTAwIDExNzMgMTFBQzsKK0FERkU7QURGRTsxMTAwIDExNzMgMTFBRDtBREZFOzExMDAgMTE3MyAxMUFEOworQURGRjtBREZGOzExMDAgMTE3MyAxMUFFO0FERkY7MTEwMCAxMTczIDExQUU7CitBRTAwO0FFMDA7MTEwMCAxMTczIDExQUY7QUUwMDsxMTAwIDExNzMgMTFBRjsKK0FFMDE7QUUwMTsxMTAwIDExNzMgMTFCMDtBRTAxOzExMDAgMTE3MyAxMUIwOworQUUwMjtBRTAyOzExMDAgMTE3MyAxMUIxO0FFMDI7MTEwMCAxMTczIDExQjE7CitBRTAzO0FFMDM7MTEwMCAxMTczIDExQjI7QUUwMzsxMTAwIDExNzMgMTFCMjsKK0FFMDQ7QUUwNDsxMTAwIDExNzMgMTFCMztBRTA0OzExMDAgMTE3MyAxMUIzOworQUUwNTtBRTA1OzExMDAgMTE3MyAxMUI0O0FFMDU7MTEwMCAxMTczIDExQjQ7CitBRTA2O0FFMDY7MTEwMCAxMTczIDExQjU7QUUwNjsxMTAwIDExNzMgMTFCNTsKK0FFMDc7QUUwNzsxMTAwIDExNzMgMTFCNjtBRTA3OzExMDAgMTE3MyAxMUI2OworQUUwODtBRTA4OzExMDAgMTE3MyAxMUI3O0FFMDg7MTEwMCAxMTczIDExQjc7CitBRTA5O0FFMDk7MTEwMCAxMTczIDExQjg7QUUwOTsxMTAwIDExNzMgMTFCODsKK0FFMEE7QUUwQTsxMTAwIDExNzMgMTFCOTtBRTBBOzExMDAgMTE3MyAxMUI5OworQUUwQjtBRTBCOzExMDAgMTE3MyAxMUJBO0FFMEI7MTEwMCAxMTczIDExQkE7CitBRTBDO0FFMEM7MTEwMCAxMTczIDExQkI7QUUwQzsxMTAwIDExNzMgMTFCQjsKK0FFMEQ7QUUwRDsxMTAwIDExNzMgMTFCQztBRTBEOzExMDAgMTE3MyAxMUJDOworQUUwRTtBRTBFOzExMDAgMTE3MyAxMUJEO0FFMEU7MTEwMCAxMTczIDExQkQ7CitBRTBGO0FFMEY7MTEwMCAxMTczIDExQkU7QUUwRjsxMTAwIDExNzMgMTFCRTsKK0FFMTA7QUUxMDsxMTAwIDExNzMgMTFCRjtBRTEwOzExMDAgMTE3MyAxMUJGOworQUUxMTtBRTExOzExMDAgMTE3MyAxMUMwO0FFMTE7MTEwMCAxMTczIDExQzA7CitBRTEyO0FFMTI7MTEwMCAxMTczIDExQzE7QUUxMjsxMTAwIDExNzMgMTFDMTsKK0FFMTM7QUUxMzsxMTAwIDExNzMgMTFDMjtBRTEzOzExMDAgMTE3MyAxMUMyOworQUUxNDtBRTE0OzExMDAgMTE3NDtBRTE0OzExMDAgMTE3NDsKK0FFMTU7QUUxNTsxMTAwIDExNzQgMTFBODtBRTE1OzExMDAgMTE3NCAxMUE4OworQUUxNjtBRTE2OzExMDAgMTE3NCAxMUE5O0FFMTY7MTEwMCAxMTc0IDExQTk7CitBRTE3O0FFMTc7MTEwMCAxMTc0IDExQUE7QUUxNzsxMTAwIDExNzQgMTFBQTsKK0FFMTg7QUUxODsxMTAwIDExNzQgMTFBQjtBRTE4OzExMDAgMTE3NCAxMUFCOworQUUxOTtBRTE5OzExMDAgMTE3NCAxMUFDO0FFMTk7MTEwMCAxMTc0IDExQUM7CitBRTFBO0FFMUE7MTEwMCAxMTc0IDExQUQ7QUUxQTsxMTAwIDExNzQgMTFBRDsKK0FFMUI7QUUxQjsxMTAwIDExNzQgMTFBRTtBRTFCOzExMDAgMTE3NCAxMUFFOworQUUxQztBRTFDOzExMDAgMTE3NCAxMUFGO0FFMUM7MTEwMCAxMTc0IDExQUY7CitBRTFEO0FFMUQ7MTEwMCAxMTc0IDExQjA7QUUxRDsxMTAwIDExNzQgMTFCMDsKK0FFMUU7QUUxRTsxMTAwIDExNzQgMTFCMTtBRTFFOzExMDAgMTE3NCAxMUIxOworQUUxRjtBRTFGOzExMDAgMTE3NCAxMUIyO0FFMUY7MTEwMCAxMTc0IDExQjI7CitBRTIwO0FFMjA7MTEwMCAxMTc0IDExQjM7QUUyMDsxMTAwIDExNzQgMTFCMzsKK0FFMjE7QUUyMTsxMTAwIDExNzQgMTFCNDtBRTIxOzExMDAgMTE3NCAxMUI0OworQUUyMjtBRTIyOzExMDAgMTE3NCAxMUI1O0FFMjI7MTEwMCAxMTc0IDExQjU7CitBRTIzO0FFMjM7MTEwMCAxMTc0IDExQjY7QUUyMzsxMTAwIDExNzQgMTFCNjsKK0FFMjQ7QUUyNDsxMTAwIDExNzQgMTFCNztBRTI0OzExMDAgMTE3NCAxMUI3OworQUUyNTtBRTI1OzExMDAgMTE3NCAxMUI4O0FFMjU7MTEwMCAxMTc0IDExQjg7CitBRTI2O0FFMjY7MTEwMCAxMTc0IDExQjk7QUUyNjsxMTAwIDExNzQgMTFCOTsKK0FFMjc7QUUyNzsxMTAwIDExNzQgMTFCQTtBRTI3OzExMDAgMTE3NCAxMUJBOworQUUyODtBRTI4OzExMDAgMTE3NCAxMUJCO0FFMjg7MTEwMCAxMTc0IDExQkI7CitBRTI5O0FFMjk7MTEwMCAxMTc0IDExQkM7QUUyOTsxMTAwIDExNzQgMTFCQzsKK0FFMkE7QUUyQTsxMTAwIDExNzQgMTFCRDtBRTJBOzExMDAgMTE3NCAxMUJEOworQUUyQjtBRTJCOzExMDAgMTE3NCAxMUJFO0FFMkI7MTEwMCAxMTc0IDExQkU7CitBRTJDO0FFMkM7MTEwMCAxMTc0IDExQkY7QUUyQzsxMTAwIDExNzQgMTFCRjsKK0FFMkQ7QUUyRDsxMTAwIDExNzQgMTFDMDtBRTJEOzExMDAgMTE3NCAxMUMwOworQUUyRTtBRTJFOzExMDAgMTE3NCAxMUMxO0FFMkU7MTEwMCAxMTc0IDExQzE7CitBRTJGO0FFMkY7MTEwMCAxMTc0IDExQzI7QUUyRjsxMTAwIDExNzQgMTFDMjsKK0FFMzA7QUUzMDsxMTAwIDExNzU7QUUzMDsxMTAwIDExNzU7CitBRTMxO0FFMzE7MTEwMCAxMTc1IDExQTg7QUUzMTsxMTAwIDExNzUgMTFBODsKK0FFMzI7QUUzMjsxMTAwIDExNzUgMTFBOTtBRTMyOzExMDAgMTE3NSAxMUE5OworQUUzMztBRTMzOzExMDAgMTE3NSAxMUFBO0FFMzM7MTEwMCAxMTc1IDExQUE7CitBRTM0O0FFMzQ7MTEwMCAxMTc1IDExQUI7QUUzNDsxMTAwIDExNzUgMTFBQjsKK0FFMzU7QUUzNTsxMTAwIDExNzUgMTFBQztBRTM1OzExMDAgMTE3NSAxMUFDOworQUUzNjtBRTM2OzExMDAgMTE3NSAxMUFEO0FFMzY7MTEwMCAxMTc1IDExQUQ7CitBRTM3O0FFMzc7MTEwMCAxMTc1IDExQUU7QUUzNzsxMTAwIDExNzUgMTFBRTsKK0FFMzg7QUUzODsxMTAwIDExNzUgMTFBRjtBRTM4OzExMDAgMTE3NSAxMUFGOworQUUzOTtBRTM5OzExMDAgMTE3NSAxMUIwO0FFMzk7MTEwMCAxMTc1IDExQjA7CitBRTNBO0FFM0E7MTEwMCAxMTc1IDExQjE7QUUzQTsxMTAwIDExNzUgMTFCMTsKK0FFM0I7QUUzQjsxMTAwIDExNzUgMTFCMjtBRTNCOzExMDAgMTE3NSAxMUIyOworQUUzQztBRTNDOzExMDAgMTE3NSAxMUIzO0FFM0M7MTEwMCAxMTc1IDExQjM7CitBRTNEO0FFM0Q7MTEwMCAxMTc1IDExQjQ7QUUzRDsxMTAwIDExNzUgMTFCNDsKK0FFM0U7QUUzRTsxMTAwIDExNzUgMTFCNTtBRTNFOzExMDAgMTE3NSAxMUI1OworQUUzRjtBRTNGOzExMDAgMTE3NSAxMUI2O0FFM0Y7MTEwMCAxMTc1IDExQjY7CitBRTQwO0FFNDA7MTEwMCAxMTc1IDExQjc7QUU0MDsxMTAwIDExNzUgMTFCNzsKK0FFNDE7QUU0MTsxMTAwIDExNzUgMTFCODtBRTQxOzExMDAgMTE3NSAxMUI4OworQUU0MjtBRTQyOzExMDAgMTE3NSAxMUI5O0FFNDI7MTEwMCAxMTc1IDExQjk7CitBRTQzO0FFNDM7MTEwMCAxMTc1IDExQkE7QUU0MzsxMTAwIDExNzUgMTFCQTsKK0FFNDQ7QUU0NDsxMTAwIDExNzUgMTFCQjtBRTQ0OzExMDAgMTE3NSAxMUJCOworQUU0NTtBRTQ1OzExMDAgMTE3NSAxMUJDO0FFNDU7MTEwMCAxMTc1IDExQkM7CitBRTQ2O0FFNDY7MTEwMCAxMTc1IDExQkQ7QUU0NjsxMTAwIDExNzUgMTFCRDsKK0FFNDc7QUU0NzsxMTAwIDExNzUgMTFCRTtBRTQ3OzExMDAgMTE3NSAxMUJFOworQUU0ODtBRTQ4OzExMDAgMTE3NSAxMUJGO0FFNDg7MTEwMCAxMTc1IDExQkY7CitBRTQ5O0FFNDk7MTEwMCAxMTc1IDExQzA7QUU0OTsxMTAwIDExNzUgMTFDMDsKK0FFNEE7QUU0QTsxMTAwIDExNzUgMTFDMTtBRTRBOzExMDAgMTE3NSAxMUMxOworQUU0QjtBRTRCOzExMDAgMTE3NSAxMUMyO0FFNEI7MTEwMCAxMTc1IDExQzI7CitBRTRDO0FFNEM7MTEwMSAxMTYxO0FFNEM7MTEwMSAxMTYxOworQUU0RDtBRTREOzExMDEgMTE2MSAxMUE4O0FFNEQ7MTEwMSAxMTYxIDExQTg7CitBRTRFO0FFNEU7MTEwMSAxMTYxIDExQTk7QUU0RTsxMTAxIDExNjEgMTFBOTsKK0FFNEY7QUU0RjsxMTAxIDExNjEgMTFBQTtBRTRGOzExMDEgMTE2MSAxMUFBOworQUU1MDtBRTUwOzExMDEgMTE2MSAxMUFCO0FFNTA7MTEwMSAxMTYxIDExQUI7CitBRTUxO0FFNTE7MTEwMSAxMTYxIDExQUM7QUU1MTsxMTAxIDExNjEgMTFBQzsKK0FFNTI7QUU1MjsxMTAxIDExNjEgMTFBRDtBRTUyOzExMDEgMTE2MSAxMUFEOworQUU1MztBRTUzOzExMDEgMTE2MSAxMUFFO0FFNTM7MTEwMSAxMTYxIDExQUU7CitBRTU0O0FFNTQ7MTEwMSAxMTYxIDExQUY7QUU1NDsxMTAxIDExNjEgMTFBRjsKK0FFNTU7QUU1NTsxMTAxIDExNjEgMTFCMDtBRTU1OzExMDEgMTE2MSAxMUIwOworQUU1NjtBRTU2OzExMDEgMTE2MSAxMUIxO0FFNTY7MTEwMSAxMTYxIDExQjE7CitBRTU3O0FFNTc7MTEwMSAxMTYxIDExQjI7QUU1NzsxMTAxIDExNjEgMTFCMjsKK0FFNTg7QUU1ODsxMTAxIDExNjEgMTFCMztBRTU4OzExMDEgMTE2MSAxMUIzOworQUU1OTtBRTU5OzExMDEgMTE2MSAxMUI0O0FFNTk7MTEwMSAxMTYxIDExQjQ7CitBRTVBO0FFNUE7MTEwMSAxMTYxIDExQjU7QUU1QTsxMTAxIDExNjEgMTFCNTsKK0FFNUI7QUU1QjsxMTAxIDExNjEgMTFCNjtBRTVCOzExMDEgMTE2MSAxMUI2OworQUU1QztBRTVDOzExMDEgMTE2MSAxMUI3O0FFNUM7MTEwMSAxMTYxIDExQjc7CitBRTVEO0FFNUQ7MTEwMSAxMTYxIDExQjg7QUU1RDsxMTAxIDExNjEgMTFCODsKK0FFNUU7QUU1RTsxMTAxIDExNjEgMTFCOTtBRTVFOzExMDEgMTE2MSAxMUI5OworQUU1RjtBRTVGOzExMDEgMTE2MSAxMUJBO0FFNUY7MTEwMSAxMTYxIDExQkE7CitBRTYwO0FFNjA7MTEwMSAxMTYxIDExQkI7QUU2MDsxMTAxIDExNjEgMTFCQjsKK0FFNjE7QUU2MTsxMTAxIDExNjEgMTFCQztBRTYxOzExMDEgMTE2MSAxMUJDOworQUU2MjtBRTYyOzExMDEgMTE2MSAxMUJEO0FFNjI7MTEwMSAxMTYxIDExQkQ7CitBRTYzO0FFNjM7MTEwMSAxMTYxIDExQkU7QUU2MzsxMTAxIDExNjEgMTFCRTsKK0FFNjQ7QUU2NDsxMTAxIDExNjEgMTFCRjtBRTY0OzExMDEgMTE2MSAxMUJGOworQUU2NTtBRTY1OzExMDEgMTE2MSAxMUMwO0FFNjU7MTEwMSAxMTYxIDExQzA7CitBRTY2O0FFNjY7MTEwMSAxMTYxIDExQzE7QUU2NjsxMTAxIDExNjEgMTFDMTsKK0FFNjc7QUU2NzsxMTAxIDExNjEgMTFDMjtBRTY3OzExMDEgMTE2MSAxMUMyOworQUU2ODtBRTY4OzExMDEgMTE2MjtBRTY4OzExMDEgMTE2MjsKK0FFNjk7QUU2OTsxMTAxIDExNjIgMTFBODtBRTY5OzExMDEgMTE2MiAxMUE4OworQUU2QTtBRTZBOzExMDEgMTE2MiAxMUE5O0FFNkE7MTEwMSAxMTYyIDExQTk7CitBRTZCO0FFNkI7MTEwMSAxMTYyIDExQUE7QUU2QjsxMTAxIDExNjIgMTFBQTsKK0FFNkM7QUU2QzsxMTAxIDExNjIgMTFBQjtBRTZDOzExMDEgMTE2MiAxMUFCOworQUU2RDtBRTZEOzExMDEgMTE2MiAxMUFDO0FFNkQ7MTEwMSAxMTYyIDExQUM7CitBRTZFO0FFNkU7MTEwMSAxMTYyIDExQUQ7QUU2RTsxMTAxIDExNjIgMTFBRDsKK0FFNkY7QUU2RjsxMTAxIDExNjIgMTFBRTtBRTZGOzExMDEgMTE2MiAxMUFFOworQUU3MDtBRTcwOzExMDEgMTE2MiAxMUFGO0FFNzA7MTEwMSAxMTYyIDExQUY7CitBRTcxO0FFNzE7MTEwMSAxMTYyIDExQjA7QUU3MTsxMTAxIDExNjIgMTFCMDsKK0FFNzI7QUU3MjsxMTAxIDExNjIgMTFCMTtBRTcyOzExMDEgMTE2MiAxMUIxOworQUU3MztBRTczOzExMDEgMTE2MiAxMUIyO0FFNzM7MTEwMSAxMTYyIDExQjI7CitBRTc0O0FFNzQ7MTEwMSAxMTYyIDExQjM7QUU3NDsxMTAxIDExNjIgMTFCMzsKK0FFNzU7QUU3NTsxMTAxIDExNjIgMTFCNDtBRTc1OzExMDEgMTE2MiAxMUI0OworQUU3NjtBRTc2OzExMDEgMTE2MiAxMUI1O0FFNzY7MTEwMSAxMTYyIDExQjU7CitBRTc3O0FFNzc7MTEwMSAxMTYyIDExQjY7QUU3NzsxMTAxIDExNjIgMTFCNjsKK0FFNzg7QUU3ODsxMTAxIDExNjIgMTFCNztBRTc4OzExMDEgMTE2MiAxMUI3OworQUU3OTtBRTc5OzExMDEgMTE2MiAxMUI4O0FFNzk7MTEwMSAxMTYyIDExQjg7CitBRTdBO0FFN0E7MTEwMSAxMTYyIDExQjk7QUU3QTsxMTAxIDExNjIgMTFCOTsKK0FFN0I7QUU3QjsxMTAxIDExNjIgMTFCQTtBRTdCOzExMDEgMTE2MiAxMUJBOworQUU3QztBRTdDOzExMDEgMTE2MiAxMUJCO0FFN0M7MTEwMSAxMTYyIDExQkI7CitBRTdEO0FFN0Q7MTEwMSAxMTYyIDExQkM7QUU3RDsxMTAxIDExNjIgMTFCQzsKK0FFN0U7QUU3RTsxMTAxIDExNjIgMTFCRDtBRTdFOzExMDEgMTE2MiAxMUJEOworQUU3RjtBRTdGOzExMDEgMTE2MiAxMUJFO0FFN0Y7MTEwMSAxMTYyIDExQkU7CitBRTgwO0FFODA7MTEwMSAxMTYyIDExQkY7QUU4MDsxMTAxIDExNjIgMTFCRjsKK0FFODE7QUU4MTsxMTAxIDExNjIgMTFDMDtBRTgxOzExMDEgMTE2MiAxMUMwOworQUU4MjtBRTgyOzExMDEgMTE2MiAxMUMxO0FFODI7MTEwMSAxMTYyIDExQzE7CitBRTgzO0FFODM7MTEwMSAxMTYyIDExQzI7QUU4MzsxMTAxIDExNjIgMTFDMjsKK0FFODQ7QUU4NDsxMTAxIDExNjM7QUU4NDsxMTAxIDExNjM7CitBRTg1O0FFODU7MTEwMSAxMTYzIDExQTg7QUU4NTsxMTAxIDExNjMgMTFBODsKK0FFODY7QUU4NjsxMTAxIDExNjMgMTFBOTtBRTg2OzExMDEgMTE2MyAxMUE5OworQUU4NztBRTg3OzExMDEgMTE2MyAxMUFBO0FFODc7MTEwMSAxMTYzIDExQUE7CitBRTg4O0FFODg7MTEwMSAxMTYzIDExQUI7QUU4ODsxMTAxIDExNjMgMTFBQjsKK0FFODk7QUU4OTsxMTAxIDExNjMgMTFBQztBRTg5OzExMDEgMTE2MyAxMUFDOworQUU4QTtBRThBOzExMDEgMTE2MyAxMUFEO0FFOEE7MTEwMSAxMTYzIDExQUQ7CitBRThCO0FFOEI7MTEwMSAxMTYzIDExQUU7QUU4QjsxMTAxIDExNjMgMTFBRTsKK0FFOEM7QUU4QzsxMTAxIDExNjMgMTFBRjtBRThDOzExMDEgMTE2MyAxMUFGOworQUU4RDtBRThEOzExMDEgMTE2MyAxMUIwO0FFOEQ7MTEwMSAxMTYzIDExQjA7CitBRThFO0FFOEU7MTEwMSAxMTYzIDExQjE7QUU4RTsxMTAxIDExNjMgMTFCMTsKK0FFOEY7QUU4RjsxMTAxIDExNjMgMTFCMjtBRThGOzExMDEgMTE2MyAxMUIyOworQUU5MDtBRTkwOzExMDEgMTE2MyAxMUIzO0FFOTA7MTEwMSAxMTYzIDExQjM7CitBRTkxO0FFOTE7MTEwMSAxMTYzIDExQjQ7QUU5MTsxMTAxIDExNjMgMTFCNDsKK0FFOTI7QUU5MjsxMTAxIDExNjMgMTFCNTtBRTkyOzExMDEgMTE2MyAxMUI1OworQUU5MztBRTkzOzExMDEgMTE2MyAxMUI2O0FFOTM7MTEwMSAxMTYzIDExQjY7CitBRTk0O0FFOTQ7MTEwMSAxMTYzIDExQjc7QUU5NDsxMTAxIDExNjMgMTFCNzsKK0FFOTU7QUU5NTsxMTAxIDExNjMgMTFCODtBRTk1OzExMDEgMTE2MyAxMUI4OworQUU5NjtBRTk2OzExMDEgMTE2MyAxMUI5O0FFOTY7MTEwMSAxMTYzIDExQjk7CitBRTk3O0FFOTc7MTEwMSAxMTYzIDExQkE7QUU5NzsxMTAxIDExNjMgMTFCQTsKK0FFOTg7QUU5ODsxMTAxIDExNjMgMTFCQjtBRTk4OzExMDEgMTE2MyAxMUJCOworQUU5OTtBRTk5OzExMDEgMTE2MyAxMUJDO0FFOTk7MTEwMSAxMTYzIDExQkM7CitBRTlBO0FFOUE7MTEwMSAxMTYzIDExQkQ7QUU5QTsxMTAxIDExNjMgMTFCRDsKK0FFOUI7QUU5QjsxMTAxIDExNjMgMTFCRTtBRTlCOzExMDEgMTE2MyAxMUJFOworQUU5QztBRTlDOzExMDEgMTE2MyAxMUJGO0FFOUM7MTEwMSAxMTYzIDExQkY7CitBRTlEO0FFOUQ7MTEwMSAxMTYzIDExQzA7QUU5RDsxMTAxIDExNjMgMTFDMDsKK0FFOUU7QUU5RTsxMTAxIDExNjMgMTFDMTtBRTlFOzExMDEgMTE2MyAxMUMxOworQUU5RjtBRTlGOzExMDEgMTE2MyAxMUMyO0FFOUY7MTEwMSAxMTYzIDExQzI7CitBRUEwO0FFQTA7MTEwMSAxMTY0O0FFQTA7MTEwMSAxMTY0OworQUVBMTtBRUExOzExMDEgMTE2NCAxMUE4O0FFQTE7MTEwMSAxMTY0IDExQTg7CitBRUEyO0FFQTI7MTEwMSAxMTY0IDExQTk7QUVBMjsxMTAxIDExNjQgMTFBOTsKK0FFQTM7QUVBMzsxMTAxIDExNjQgMTFBQTtBRUEzOzExMDEgMTE2NCAxMUFBOworQUVBNDtBRUE0OzExMDEgMTE2NCAxMUFCO0FFQTQ7MTEwMSAxMTY0IDExQUI7CitBRUE1O0FFQTU7MTEwMSAxMTY0IDExQUM7QUVBNTsxMTAxIDExNjQgMTFBQzsKK0FFQTY7QUVBNjsxMTAxIDExNjQgMTFBRDtBRUE2OzExMDEgMTE2NCAxMUFEOworQUVBNztBRUE3OzExMDEgMTE2NCAxMUFFO0FFQTc7MTEwMSAxMTY0IDExQUU7CitBRUE4O0FFQTg7MTEwMSAxMTY0IDExQUY7QUVBODsxMTAxIDExNjQgMTFBRjsKK0FFQTk7QUVBOTsxMTAxIDExNjQgMTFCMDtBRUE5OzExMDEgMTE2NCAxMUIwOworQUVBQTtBRUFBOzExMDEgMTE2NCAxMUIxO0FFQUE7MTEwMSAxMTY0IDExQjE7CitBRUFCO0FFQUI7MTEwMSAxMTY0IDExQjI7QUVBQjsxMTAxIDExNjQgMTFCMjsKK0FFQUM7QUVBQzsxMTAxIDExNjQgMTFCMztBRUFDOzExMDEgMTE2NCAxMUIzOworQUVBRDtBRUFEOzExMDEgMTE2NCAxMUI0O0FFQUQ7MTEwMSAxMTY0IDExQjQ7CitBRUFFO0FFQUU7MTEwMSAxMTY0IDExQjU7QUVBRTsxMTAxIDExNjQgMTFCNTsKK0FFQUY7QUVBRjsxMTAxIDExNjQgMTFCNjtBRUFGOzExMDEgMTE2NCAxMUI2OworQUVCMDtBRUIwOzExMDEgMTE2NCAxMUI3O0FFQjA7MTEwMSAxMTY0IDExQjc7CitBRUIxO0FFQjE7MTEwMSAxMTY0IDExQjg7QUVCMTsxMTAxIDExNjQgMTFCODsKK0FFQjI7QUVCMjsxMTAxIDExNjQgMTFCOTtBRUIyOzExMDEgMTE2NCAxMUI5OworQUVCMztBRUIzOzExMDEgMTE2NCAxMUJBO0FFQjM7MTEwMSAxMTY0IDExQkE7CitBRUI0O0FFQjQ7MTEwMSAxMTY0IDExQkI7QUVCNDsxMTAxIDExNjQgMTFCQjsKK0FFQjU7QUVCNTsxMTAxIDExNjQgMTFCQztBRUI1OzExMDEgMTE2NCAxMUJDOworQUVCNjtBRUI2OzExMDEgMTE2NCAxMUJEO0FFQjY7MTEwMSAxMTY0IDExQkQ7CitBRUI3O0FFQjc7MTEwMSAxMTY0IDExQkU7QUVCNzsxMTAxIDExNjQgMTFCRTsKK0FFQjg7QUVCODsxMTAxIDExNjQgMTFCRjtBRUI4OzExMDEgMTE2NCAxMUJGOworQUVCOTtBRUI5OzExMDEgMTE2NCAxMUMwO0FFQjk7MTEwMSAxMTY0IDExQzA7CitBRUJBO0FFQkE7MTEwMSAxMTY0IDExQzE7QUVCQTsxMTAxIDExNjQgMTFDMTsKK0FFQkI7QUVCQjsxMTAxIDExNjQgMTFDMjtBRUJCOzExMDEgMTE2NCAxMUMyOworQUVCQztBRUJDOzExMDEgMTE2NTtBRUJDOzExMDEgMTE2NTsKK0FFQkQ7QUVCRDsxMTAxIDExNjUgMTFBODtBRUJEOzExMDEgMTE2NSAxMUE4OworQUVCRTtBRUJFOzExMDEgMTE2NSAxMUE5O0FFQkU7MTEwMSAxMTY1IDExQTk7CitBRUJGO0FFQkY7MTEwMSAxMTY1IDExQUE7QUVCRjsxMTAxIDExNjUgMTFBQTsKK0FFQzA7QUVDMDsxMTAxIDExNjUgMTFBQjtBRUMwOzExMDEgMTE2NSAxMUFCOworQUVDMTtBRUMxOzExMDEgMTE2NSAxMUFDO0FFQzE7MTEwMSAxMTY1IDExQUM7CitBRUMyO0FFQzI7MTEwMSAxMTY1IDExQUQ7QUVDMjsxMTAxIDExNjUgMTFBRDsKK0FFQzM7QUVDMzsxMTAxIDExNjUgMTFBRTtBRUMzOzExMDEgMTE2NSAxMUFFOworQUVDNDtBRUM0OzExMDEgMTE2NSAxMUFGO0FFQzQ7MTEwMSAxMTY1IDExQUY7CitBRUM1O0FFQzU7MTEwMSAxMTY1IDExQjA7QUVDNTsxMTAxIDExNjUgMTFCMDsKK0FFQzY7QUVDNjsxMTAxIDExNjUgMTFCMTtBRUM2OzExMDEgMTE2NSAxMUIxOworQUVDNztBRUM3OzExMDEgMTE2NSAxMUIyO0FFQzc7MTEwMSAxMTY1IDExQjI7CitBRUM4O0FFQzg7MTEwMSAxMTY1IDExQjM7QUVDODsxMTAxIDExNjUgMTFCMzsKK0FFQzk7QUVDOTsxMTAxIDExNjUgMTFCNDtBRUM5OzExMDEgMTE2NSAxMUI0OworQUVDQTtBRUNBOzExMDEgMTE2NSAxMUI1O0FFQ0E7MTEwMSAxMTY1IDExQjU7CitBRUNCO0FFQ0I7MTEwMSAxMTY1IDExQjY7QUVDQjsxMTAxIDExNjUgMTFCNjsKK0FFQ0M7QUVDQzsxMTAxIDExNjUgMTFCNztBRUNDOzExMDEgMTE2NSAxMUI3OworQUVDRDtBRUNEOzExMDEgMTE2NSAxMUI4O0FFQ0Q7MTEwMSAxMTY1IDExQjg7CitBRUNFO0FFQ0U7MTEwMSAxMTY1IDExQjk7QUVDRTsxMTAxIDExNjUgMTFCOTsKK0FFQ0Y7QUVDRjsxMTAxIDExNjUgMTFCQTtBRUNGOzExMDEgMTE2NSAxMUJBOworQUVEMDtBRUQwOzExMDEgMTE2NSAxMUJCO0FFRDA7MTEwMSAxMTY1IDExQkI7CitBRUQxO0FFRDE7MTEwMSAxMTY1IDExQkM7QUVEMTsxMTAxIDExNjUgMTFCQzsKK0FFRDI7QUVEMjsxMTAxIDExNjUgMTFCRDtBRUQyOzExMDEgMTE2NSAxMUJEOworQUVEMztBRUQzOzExMDEgMTE2NSAxMUJFO0FFRDM7MTEwMSAxMTY1IDExQkU7CitBRUQ0O0FFRDQ7MTEwMSAxMTY1IDExQkY7QUVENDsxMTAxIDExNjUgMTFCRjsKK0FFRDU7QUVENTsxMTAxIDExNjUgMTFDMDtBRUQ1OzExMDEgMTE2NSAxMUMwOworQUVENjtBRUQ2OzExMDEgMTE2NSAxMUMxO0FFRDY7MTEwMSAxMTY1IDExQzE7CitBRUQ3O0FFRDc7MTEwMSAxMTY1IDExQzI7QUVENzsxMTAxIDExNjUgMTFDMjsKK0FFRDg7QUVEODsxMTAxIDExNjY7QUVEODsxMTAxIDExNjY7CitBRUQ5O0FFRDk7MTEwMSAxMTY2IDExQTg7QUVEOTsxMTAxIDExNjYgMTFBODsKK0FFREE7QUVEQTsxMTAxIDExNjYgMTFBOTtBRURBOzExMDEgMTE2NiAxMUE5OworQUVEQjtBRURCOzExMDEgMTE2NiAxMUFBO0FFREI7MTEwMSAxMTY2IDExQUE7CitBRURDO0FFREM7MTEwMSAxMTY2IDExQUI7QUVEQzsxMTAxIDExNjYgMTFBQjsKK0FFREQ7QUVERDsxMTAxIDExNjYgMTFBQztBRUREOzExMDEgMTE2NiAxMUFDOworQUVERTtBRURFOzExMDEgMTE2NiAxMUFEO0FFREU7MTEwMSAxMTY2IDExQUQ7CitBRURGO0FFREY7MTEwMSAxMTY2IDExQUU7QUVERjsxMTAxIDExNjYgMTFBRTsKK0FFRTA7QUVFMDsxMTAxIDExNjYgMTFBRjtBRUUwOzExMDEgMTE2NiAxMUFGOworQUVFMTtBRUUxOzExMDEgMTE2NiAxMUIwO0FFRTE7MTEwMSAxMTY2IDExQjA7CitBRUUyO0FFRTI7MTEwMSAxMTY2IDExQjE7QUVFMjsxMTAxIDExNjYgMTFCMTsKK0FFRTM7QUVFMzsxMTAxIDExNjYgMTFCMjtBRUUzOzExMDEgMTE2NiAxMUIyOworQUVFNDtBRUU0OzExMDEgMTE2NiAxMUIzO0FFRTQ7MTEwMSAxMTY2IDExQjM7CitBRUU1O0FFRTU7MTEwMSAxMTY2IDExQjQ7QUVFNTsxMTAxIDExNjYgMTFCNDsKK0FFRTY7QUVFNjsxMTAxIDExNjYgMTFCNTtBRUU2OzExMDEgMTE2NiAxMUI1OworQUVFNztBRUU3OzExMDEgMTE2NiAxMUI2O0FFRTc7MTEwMSAxMTY2IDExQjY7CitBRUU4O0FFRTg7MTEwMSAxMTY2IDExQjc7QUVFODsxMTAxIDExNjYgMTFCNzsKK0FFRTk7QUVFOTsxMTAxIDExNjYgMTFCODtBRUU5OzExMDEgMTE2NiAxMUI4OworQUVFQTtBRUVBOzExMDEgMTE2NiAxMUI5O0FFRUE7MTEwMSAxMTY2IDExQjk7CitBRUVCO0FFRUI7MTEwMSAxMTY2IDExQkE7QUVFQjsxMTAxIDExNjYgMTFCQTsKK0FFRUM7QUVFQzsxMTAxIDExNjYgMTFCQjtBRUVDOzExMDEgMTE2NiAxMUJCOworQUVFRDtBRUVEOzExMDEgMTE2NiAxMUJDO0FFRUQ7MTEwMSAxMTY2IDExQkM7CitBRUVFO0FFRUU7MTEwMSAxMTY2IDExQkQ7QUVFRTsxMTAxIDExNjYgMTFCRDsKK0FFRUY7QUVFRjsxMTAxIDExNjYgMTFCRTtBRUVGOzExMDEgMTE2NiAxMUJFOworQUVGMDtBRUYwOzExMDEgMTE2NiAxMUJGO0FFRjA7MTEwMSAxMTY2IDExQkY7CitBRUYxO0FFRjE7MTEwMSAxMTY2IDExQzA7QUVGMTsxMTAxIDExNjYgMTFDMDsKK0FFRjI7QUVGMjsxMTAxIDExNjYgMTFDMTtBRUYyOzExMDEgMTE2NiAxMUMxOworQUVGMztBRUYzOzExMDEgMTE2NiAxMUMyO0FFRjM7MTEwMSAxMTY2IDExQzI7CitBRUY0O0FFRjQ7MTEwMSAxMTY3O0FFRjQ7MTEwMSAxMTY3OworQUVGNTtBRUY1OzExMDEgMTE2NyAxMUE4O0FFRjU7MTEwMSAxMTY3IDExQTg7CitBRUY2O0FFRjY7MTEwMSAxMTY3IDExQTk7QUVGNjsxMTAxIDExNjcgMTFBOTsKK0FFRjc7QUVGNzsxMTAxIDExNjcgMTFBQTtBRUY3OzExMDEgMTE2NyAxMUFBOworQUVGODtBRUY4OzExMDEgMTE2NyAxMUFCO0FFRjg7MTEwMSAxMTY3IDExQUI7CitBRUY5O0FFRjk7MTEwMSAxMTY3IDExQUM7QUVGOTsxMTAxIDExNjcgMTFBQzsKK0FFRkE7QUVGQTsxMTAxIDExNjcgMTFBRDtBRUZBOzExMDEgMTE2NyAxMUFEOworQUVGQjtBRUZCOzExMDEgMTE2NyAxMUFFO0FFRkI7MTEwMSAxMTY3IDExQUU7CitBRUZDO0FFRkM7MTEwMSAxMTY3IDExQUY7QUVGQzsxMTAxIDExNjcgMTFBRjsKK0FFRkQ7QUVGRDsxMTAxIDExNjcgMTFCMDtBRUZEOzExMDEgMTE2NyAxMUIwOworQUVGRTtBRUZFOzExMDEgMTE2NyAxMUIxO0FFRkU7MTEwMSAxMTY3IDExQjE7CitBRUZGO0FFRkY7MTEwMSAxMTY3IDExQjI7QUVGRjsxMTAxIDExNjcgMTFCMjsKK0FGMDA7QUYwMDsxMTAxIDExNjcgMTFCMztBRjAwOzExMDEgMTE2NyAxMUIzOworQUYwMTtBRjAxOzExMDEgMTE2NyAxMUI0O0FGMDE7MTEwMSAxMTY3IDExQjQ7CitBRjAyO0FGMDI7MTEwMSAxMTY3IDExQjU7QUYwMjsxMTAxIDExNjcgMTFCNTsKK0FGMDM7QUYwMzsxMTAxIDExNjcgMTFCNjtBRjAzOzExMDEgMTE2NyAxMUI2OworQUYwNDtBRjA0OzExMDEgMTE2NyAxMUI3O0FGMDQ7MTEwMSAxMTY3IDExQjc7CitBRjA1O0FGMDU7MTEwMSAxMTY3IDExQjg7QUYwNTsxMTAxIDExNjcgMTFCODsKK0FGMDY7QUYwNjsxMTAxIDExNjcgMTFCOTtBRjA2OzExMDEgMTE2NyAxMUI5OworQUYwNztBRjA3OzExMDEgMTE2NyAxMUJBO0FGMDc7MTEwMSAxMTY3IDExQkE7CitBRjA4O0FGMDg7MTEwMSAxMTY3IDExQkI7QUYwODsxMTAxIDExNjcgMTFCQjsKK0FGMDk7QUYwOTsxMTAxIDExNjcgMTFCQztBRjA5OzExMDEgMTE2NyAxMUJDOworQUYwQTtBRjBBOzExMDEgMTE2NyAxMUJEO0FGMEE7MTEwMSAxMTY3IDExQkQ7CitBRjBCO0FGMEI7MTEwMSAxMTY3IDExQkU7QUYwQjsxMTAxIDExNjcgMTFCRTsKK0FGMEM7QUYwQzsxMTAxIDExNjcgMTFCRjtBRjBDOzExMDEgMTE2NyAxMUJGOworQUYwRDtBRjBEOzExMDEgMTE2NyAxMUMwO0FGMEQ7MTEwMSAxMTY3IDExQzA7CitBRjBFO0FGMEU7MTEwMSAxMTY3IDExQzE7QUYwRTsxMTAxIDExNjcgMTFDMTsKK0FGMEY7QUYwRjsxMTAxIDExNjcgMTFDMjtBRjBGOzExMDEgMTE2NyAxMUMyOworQUYxMDtBRjEwOzExMDEgMTE2ODtBRjEwOzExMDEgMTE2ODsKK0FGMTE7QUYxMTsxMTAxIDExNjggMTFBODtBRjExOzExMDEgMTE2OCAxMUE4OworQUYxMjtBRjEyOzExMDEgMTE2OCAxMUE5O0FGMTI7MTEwMSAxMTY4IDExQTk7CitBRjEzO0FGMTM7MTEwMSAxMTY4IDExQUE7QUYxMzsxMTAxIDExNjggMTFBQTsKK0FGMTQ7QUYxNDsxMTAxIDExNjggMTFBQjtBRjE0OzExMDEgMTE2OCAxMUFCOworQUYxNTtBRjE1OzExMDEgMTE2OCAxMUFDO0FGMTU7MTEwMSAxMTY4IDExQUM7CitBRjE2O0FGMTY7MTEwMSAxMTY4IDExQUQ7QUYxNjsxMTAxIDExNjggMTFBRDsKK0FGMTc7QUYxNzsxMTAxIDExNjggMTFBRTtBRjE3OzExMDEgMTE2OCAxMUFFOworQUYxODtBRjE4OzExMDEgMTE2OCAxMUFGO0FGMTg7MTEwMSAxMTY4IDExQUY7CitBRjE5O0FGMTk7MTEwMSAxMTY4IDExQjA7QUYxOTsxMTAxIDExNjggMTFCMDsKK0FGMUE7QUYxQTsxMTAxIDExNjggMTFCMTtBRjFBOzExMDEgMTE2OCAxMUIxOworQUYxQjtBRjFCOzExMDEgMTE2OCAxMUIyO0FGMUI7MTEwMSAxMTY4IDExQjI7CitBRjFDO0FGMUM7MTEwMSAxMTY4IDExQjM7QUYxQzsxMTAxIDExNjggMTFCMzsKK0FGMUQ7QUYxRDsxMTAxIDExNjggMTFCNDtBRjFEOzExMDEgMTE2OCAxMUI0OworQUYxRTtBRjFFOzExMDEgMTE2OCAxMUI1O0FGMUU7MTEwMSAxMTY4IDExQjU7CitBRjFGO0FGMUY7MTEwMSAxMTY4IDExQjY7QUYxRjsxMTAxIDExNjggMTFCNjsKK0FGMjA7QUYyMDsxMTAxIDExNjggMTFCNztBRjIwOzExMDEgMTE2OCAxMUI3OworQUYyMTtBRjIxOzExMDEgMTE2OCAxMUI4O0FGMjE7MTEwMSAxMTY4IDExQjg7CitBRjIyO0FGMjI7MTEwMSAxMTY4IDExQjk7QUYyMjsxMTAxIDExNjggMTFCOTsKK0FGMjM7QUYyMzsxMTAxIDExNjggMTFCQTtBRjIzOzExMDEgMTE2OCAxMUJBOworQUYyNDtBRjI0OzExMDEgMTE2OCAxMUJCO0FGMjQ7MTEwMSAxMTY4IDExQkI7CitBRjI1O0FGMjU7MTEwMSAxMTY4IDExQkM7QUYyNTsxMTAxIDExNjggMTFCQzsKK0FGMjY7QUYyNjsxMTAxIDExNjggMTFCRDtBRjI2OzExMDEgMTE2OCAxMUJEOworQUYyNztBRjI3OzExMDEgMTE2OCAxMUJFO0FGMjc7MTEwMSAxMTY4IDExQkU7CitBRjI4O0FGMjg7MTEwMSAxMTY4IDExQkY7QUYyODsxMTAxIDExNjggMTFCRjsKK0FGMjk7QUYyOTsxMTAxIDExNjggMTFDMDtBRjI5OzExMDEgMTE2OCAxMUMwOworQUYyQTtBRjJBOzExMDEgMTE2OCAxMUMxO0FGMkE7MTEwMSAxMTY4IDExQzE7CitBRjJCO0FGMkI7MTEwMSAxMTY4IDExQzI7QUYyQjsxMTAxIDExNjggMTFDMjsKK0FGMkM7QUYyQzsxMTAxIDExNjk7QUYyQzsxMTAxIDExNjk7CitBRjJEO0FGMkQ7MTEwMSAxMTY5IDExQTg7QUYyRDsxMTAxIDExNjkgMTFBODsKK0FGMkU7QUYyRTsxMTAxIDExNjkgMTFBOTtBRjJFOzExMDEgMTE2OSAxMUE5OworQUYyRjtBRjJGOzExMDEgMTE2OSAxMUFBO0FGMkY7MTEwMSAxMTY5IDExQUE7CitBRjMwO0FGMzA7MTEwMSAxMTY5IDExQUI7QUYzMDsxMTAxIDExNjkgMTFBQjsKK0FGMzE7QUYzMTsxMTAxIDExNjkgMTFBQztBRjMxOzExMDEgMTE2OSAxMUFDOworQUYzMjtBRjMyOzExMDEgMTE2OSAxMUFEO0FGMzI7MTEwMSAxMTY5IDExQUQ7CitBRjMzO0FGMzM7MTEwMSAxMTY5IDExQUU7QUYzMzsxMTAxIDExNjkgMTFBRTsKK0FGMzQ7QUYzNDsxMTAxIDExNjkgMTFBRjtBRjM0OzExMDEgMTE2OSAxMUFGOworQUYzNTtBRjM1OzExMDEgMTE2OSAxMUIwO0FGMzU7MTEwMSAxMTY5IDExQjA7CitBRjM2O0FGMzY7MTEwMSAxMTY5IDExQjE7QUYzNjsxMTAxIDExNjkgMTFCMTsKK0FGMzc7QUYzNzsxMTAxIDExNjkgMTFCMjtBRjM3OzExMDEgMTE2OSAxMUIyOworQUYzODtBRjM4OzExMDEgMTE2OSAxMUIzO0FGMzg7MTEwMSAxMTY5IDExQjM7CitBRjM5O0FGMzk7MTEwMSAxMTY5IDExQjQ7QUYzOTsxMTAxIDExNjkgMTFCNDsKK0FGM0E7QUYzQTsxMTAxIDExNjkgMTFCNTtBRjNBOzExMDEgMTE2OSAxMUI1OworQUYzQjtBRjNCOzExMDEgMTE2OSAxMUI2O0FGM0I7MTEwMSAxMTY5IDExQjY7CitBRjNDO0FGM0M7MTEwMSAxMTY5IDExQjc7QUYzQzsxMTAxIDExNjkgMTFCNzsKK0FGM0Q7QUYzRDsxMTAxIDExNjkgMTFCODtBRjNEOzExMDEgMTE2OSAxMUI4OworQUYzRTtBRjNFOzExMDEgMTE2OSAxMUI5O0FGM0U7MTEwMSAxMTY5IDExQjk7CitBRjNGO0FGM0Y7MTEwMSAxMTY5IDExQkE7QUYzRjsxMTAxIDExNjkgMTFCQTsKK0FGNDA7QUY0MDsxMTAxIDExNjkgMTFCQjtBRjQwOzExMDEgMTE2OSAxMUJCOworQUY0MTtBRjQxOzExMDEgMTE2OSAxMUJDO0FGNDE7MTEwMSAxMTY5IDExQkM7CitBRjQyO0FGNDI7MTEwMSAxMTY5IDExQkQ7QUY0MjsxMTAxIDExNjkgMTFCRDsKK0FGNDM7QUY0MzsxMTAxIDExNjkgMTFCRTtBRjQzOzExMDEgMTE2OSAxMUJFOworQUY0NDtBRjQ0OzExMDEgMTE2OSAxMUJGO0FGNDQ7MTEwMSAxMTY5IDExQkY7CitBRjQ1O0FGNDU7MTEwMSAxMTY5IDExQzA7QUY0NTsxMTAxIDExNjkgMTFDMDsKK0FGNDY7QUY0NjsxMTAxIDExNjkgMTFDMTtBRjQ2OzExMDEgMTE2OSAxMUMxOworQUY0NztBRjQ3OzExMDEgMTE2OSAxMUMyO0FGNDc7MTEwMSAxMTY5IDExQzI7CitBRjQ4O0FGNDg7MTEwMSAxMTZBO0FGNDg7MTEwMSAxMTZBOworQUY0OTtBRjQ5OzExMDEgMTE2QSAxMUE4O0FGNDk7MTEwMSAxMTZBIDExQTg7CitBRjRBO0FGNEE7MTEwMSAxMTZBIDExQTk7QUY0QTsxMTAxIDExNkEgMTFBOTsKK0FGNEI7QUY0QjsxMTAxIDExNkEgMTFBQTtBRjRCOzExMDEgMTE2QSAxMUFBOworQUY0QztBRjRDOzExMDEgMTE2QSAxMUFCO0FGNEM7MTEwMSAxMTZBIDExQUI7CitBRjREO0FGNEQ7MTEwMSAxMTZBIDExQUM7QUY0RDsxMTAxIDExNkEgMTFBQzsKK0FGNEU7QUY0RTsxMTAxIDExNkEgMTFBRDtBRjRFOzExMDEgMTE2QSAxMUFEOworQUY0RjtBRjRGOzExMDEgMTE2QSAxMUFFO0FGNEY7MTEwMSAxMTZBIDExQUU7CitBRjUwO0FGNTA7MTEwMSAxMTZBIDExQUY7QUY1MDsxMTAxIDExNkEgMTFBRjsKK0FGNTE7QUY1MTsxMTAxIDExNkEgMTFCMDtBRjUxOzExMDEgMTE2QSAxMUIwOworQUY1MjtBRjUyOzExMDEgMTE2QSAxMUIxO0FGNTI7MTEwMSAxMTZBIDExQjE7CitBRjUzO0FGNTM7MTEwMSAxMTZBIDExQjI7QUY1MzsxMTAxIDExNkEgMTFCMjsKK0FGNTQ7QUY1NDsxMTAxIDExNkEgMTFCMztBRjU0OzExMDEgMTE2QSAxMUIzOworQUY1NTtBRjU1OzExMDEgMTE2QSAxMUI0O0FGNTU7MTEwMSAxMTZBIDExQjQ7CitBRjU2O0FGNTY7MTEwMSAxMTZBIDExQjU7QUY1NjsxMTAxIDExNkEgMTFCNTsKK0FGNTc7QUY1NzsxMTAxIDExNkEgMTFCNjtBRjU3OzExMDEgMTE2QSAxMUI2OworQUY1ODtBRjU4OzExMDEgMTE2QSAxMUI3O0FGNTg7MTEwMSAxMTZBIDExQjc7CitBRjU5O0FGNTk7MTEwMSAxMTZBIDExQjg7QUY1OTsxMTAxIDExNkEgMTFCODsKK0FGNUE7QUY1QTsxMTAxIDExNkEgMTFCOTtBRjVBOzExMDEgMTE2QSAxMUI5OworQUY1QjtBRjVCOzExMDEgMTE2QSAxMUJBO0FGNUI7MTEwMSAxMTZBIDExQkE7CitBRjVDO0FGNUM7MTEwMSAxMTZBIDExQkI7QUY1QzsxMTAxIDExNkEgMTFCQjsKK0FGNUQ7QUY1RDsxMTAxIDExNkEgMTFCQztBRjVEOzExMDEgMTE2QSAxMUJDOworQUY1RTtBRjVFOzExMDEgMTE2QSAxMUJEO0FGNUU7MTEwMSAxMTZBIDExQkQ7CitBRjVGO0FGNUY7MTEwMSAxMTZBIDExQkU7QUY1RjsxMTAxIDExNkEgMTFCRTsKK0FGNjA7QUY2MDsxMTAxIDExNkEgMTFCRjtBRjYwOzExMDEgMTE2QSAxMUJGOworQUY2MTtBRjYxOzExMDEgMTE2QSAxMUMwO0FGNjE7MTEwMSAxMTZBIDExQzA7CitBRjYyO0FGNjI7MTEwMSAxMTZBIDExQzE7QUY2MjsxMTAxIDExNkEgMTFDMTsKK0FGNjM7QUY2MzsxMTAxIDExNkEgMTFDMjtBRjYzOzExMDEgMTE2QSAxMUMyOworQUY2NDtBRjY0OzExMDEgMTE2QjtBRjY0OzExMDEgMTE2QjsKK0FGNjU7QUY2NTsxMTAxIDExNkIgMTFBODtBRjY1OzExMDEgMTE2QiAxMUE4OworQUY2NjtBRjY2OzExMDEgMTE2QiAxMUE5O0FGNjY7MTEwMSAxMTZCIDExQTk7CitBRjY3O0FGNjc7MTEwMSAxMTZCIDExQUE7QUY2NzsxMTAxIDExNkIgMTFBQTsKK0FGNjg7QUY2ODsxMTAxIDExNkIgMTFBQjtBRjY4OzExMDEgMTE2QiAxMUFCOworQUY2OTtBRjY5OzExMDEgMTE2QiAxMUFDO0FGNjk7MTEwMSAxMTZCIDExQUM7CitBRjZBO0FGNkE7MTEwMSAxMTZCIDExQUQ7QUY2QTsxMTAxIDExNkIgMTFBRDsKK0FGNkI7QUY2QjsxMTAxIDExNkIgMTFBRTtBRjZCOzExMDEgMTE2QiAxMUFFOworQUY2QztBRjZDOzExMDEgMTE2QiAxMUFGO0FGNkM7MTEwMSAxMTZCIDExQUY7CitBRjZEO0FGNkQ7MTEwMSAxMTZCIDExQjA7QUY2RDsxMTAxIDExNkIgMTFCMDsKK0FGNkU7QUY2RTsxMTAxIDExNkIgMTFCMTtBRjZFOzExMDEgMTE2QiAxMUIxOworQUY2RjtBRjZGOzExMDEgMTE2QiAxMUIyO0FGNkY7MTEwMSAxMTZCIDExQjI7CitBRjcwO0FGNzA7MTEwMSAxMTZCIDExQjM7QUY3MDsxMTAxIDExNkIgMTFCMzsKK0FGNzE7QUY3MTsxMTAxIDExNkIgMTFCNDtBRjcxOzExMDEgMTE2QiAxMUI0OworQUY3MjtBRjcyOzExMDEgMTE2QiAxMUI1O0FGNzI7MTEwMSAxMTZCIDExQjU7CitBRjczO0FGNzM7MTEwMSAxMTZCIDExQjY7QUY3MzsxMTAxIDExNkIgMTFCNjsKK0FGNzQ7QUY3NDsxMTAxIDExNkIgMTFCNztBRjc0OzExMDEgMTE2QiAxMUI3OworQUY3NTtBRjc1OzExMDEgMTE2QiAxMUI4O0FGNzU7MTEwMSAxMTZCIDExQjg7CitBRjc2O0FGNzY7MTEwMSAxMTZCIDExQjk7QUY3NjsxMTAxIDExNkIgMTFCOTsKK0FGNzc7QUY3NzsxMTAxIDExNkIgMTFCQTtBRjc3OzExMDEgMTE2QiAxMUJBOworQUY3ODtBRjc4OzExMDEgMTE2QiAxMUJCO0FGNzg7MTEwMSAxMTZCIDExQkI7CitBRjc5O0FGNzk7MTEwMSAxMTZCIDExQkM7QUY3OTsxMTAxIDExNkIgMTFCQzsKK0FGN0E7QUY3QTsxMTAxIDExNkIgMTFCRDtBRjdBOzExMDEgMTE2QiAxMUJEOworQUY3QjtBRjdCOzExMDEgMTE2QiAxMUJFO0FGN0I7MTEwMSAxMTZCIDExQkU7CitBRjdDO0FGN0M7MTEwMSAxMTZCIDExQkY7QUY3QzsxMTAxIDExNkIgMTFCRjsKK0FGN0Q7QUY3RDsxMTAxIDExNkIgMTFDMDtBRjdEOzExMDEgMTE2QiAxMUMwOworQUY3RTtBRjdFOzExMDEgMTE2QiAxMUMxO0FGN0U7MTEwMSAxMTZCIDExQzE7CitBRjdGO0FGN0Y7MTEwMSAxMTZCIDExQzI7QUY3RjsxMTAxIDExNkIgMTFDMjsKK0FGODA7QUY4MDsxMTAxIDExNkM7QUY4MDsxMTAxIDExNkM7CitBRjgxO0FGODE7MTEwMSAxMTZDIDExQTg7QUY4MTsxMTAxIDExNkMgMTFBODsKK0FGODI7QUY4MjsxMTAxIDExNkMgMTFBOTtBRjgyOzExMDEgMTE2QyAxMUE5OworQUY4MztBRjgzOzExMDEgMTE2QyAxMUFBO0FGODM7MTEwMSAxMTZDIDExQUE7CitBRjg0O0FGODQ7MTEwMSAxMTZDIDExQUI7QUY4NDsxMTAxIDExNkMgMTFBQjsKK0FGODU7QUY4NTsxMTAxIDExNkMgMTFBQztBRjg1OzExMDEgMTE2QyAxMUFDOworQUY4NjtBRjg2OzExMDEgMTE2QyAxMUFEO0FGODY7MTEwMSAxMTZDIDExQUQ7CitBRjg3O0FGODc7MTEwMSAxMTZDIDExQUU7QUY4NzsxMTAxIDExNkMgMTFBRTsKK0FGODg7QUY4ODsxMTAxIDExNkMgMTFBRjtBRjg4OzExMDEgMTE2QyAxMUFGOworQUY4OTtBRjg5OzExMDEgMTE2QyAxMUIwO0FGODk7MTEwMSAxMTZDIDExQjA7CitBRjhBO0FGOEE7MTEwMSAxMTZDIDExQjE7QUY4QTsxMTAxIDExNkMgMTFCMTsKK0FGOEI7QUY4QjsxMTAxIDExNkMgMTFCMjtBRjhCOzExMDEgMTE2QyAxMUIyOworQUY4QztBRjhDOzExMDEgMTE2QyAxMUIzO0FGOEM7MTEwMSAxMTZDIDExQjM7CitBRjhEO0FGOEQ7MTEwMSAxMTZDIDExQjQ7QUY4RDsxMTAxIDExNkMgMTFCNDsKK0FGOEU7QUY4RTsxMTAxIDExNkMgMTFCNTtBRjhFOzExMDEgMTE2QyAxMUI1OworQUY4RjtBRjhGOzExMDEgMTE2QyAxMUI2O0FGOEY7MTEwMSAxMTZDIDExQjY7CitBRjkwO0FGOTA7MTEwMSAxMTZDIDExQjc7QUY5MDsxMTAxIDExNkMgMTFCNzsKK0FGOTE7QUY5MTsxMTAxIDExNkMgMTFCODtBRjkxOzExMDEgMTE2QyAxMUI4OworQUY5MjtBRjkyOzExMDEgMTE2QyAxMUI5O0FGOTI7MTEwMSAxMTZDIDExQjk7CitBRjkzO0FGOTM7MTEwMSAxMTZDIDExQkE7QUY5MzsxMTAxIDExNkMgMTFCQTsKK0FGOTQ7QUY5NDsxMTAxIDExNkMgMTFCQjtBRjk0OzExMDEgMTE2QyAxMUJCOworQUY5NTtBRjk1OzExMDEgMTE2QyAxMUJDO0FGOTU7MTEwMSAxMTZDIDExQkM7CitBRjk2O0FGOTY7MTEwMSAxMTZDIDExQkQ7QUY5NjsxMTAxIDExNkMgMTFCRDsKK0FGOTc7QUY5NzsxMTAxIDExNkMgMTFCRTtBRjk3OzExMDEgMTE2QyAxMUJFOworQUY5ODtBRjk4OzExMDEgMTE2QyAxMUJGO0FGOTg7MTEwMSAxMTZDIDExQkY7CitBRjk5O0FGOTk7MTEwMSAxMTZDIDExQzA7QUY5OTsxMTAxIDExNkMgMTFDMDsKK0FGOUE7QUY5QTsxMTAxIDExNkMgMTFDMTtBRjlBOzExMDEgMTE2QyAxMUMxOworQUY5QjtBRjlCOzExMDEgMTE2QyAxMUMyO0FGOUI7MTEwMSAxMTZDIDExQzI7CitBRjlDO0FGOUM7MTEwMSAxMTZEO0FGOUM7MTEwMSAxMTZEOworQUY5RDtBRjlEOzExMDEgMTE2RCAxMUE4O0FGOUQ7MTEwMSAxMTZEIDExQTg7CitBRjlFO0FGOUU7MTEwMSAxMTZEIDExQTk7QUY5RTsxMTAxIDExNkQgMTFBOTsKK0FGOUY7QUY5RjsxMTAxIDExNkQgMTFBQTtBRjlGOzExMDEgMTE2RCAxMUFBOworQUZBMDtBRkEwOzExMDEgMTE2RCAxMUFCO0FGQTA7MTEwMSAxMTZEIDExQUI7CitBRkExO0FGQTE7MTEwMSAxMTZEIDExQUM7QUZBMTsxMTAxIDExNkQgMTFBQzsKK0FGQTI7QUZBMjsxMTAxIDExNkQgMTFBRDtBRkEyOzExMDEgMTE2RCAxMUFEOworQUZBMztBRkEzOzExMDEgMTE2RCAxMUFFO0FGQTM7MTEwMSAxMTZEIDExQUU7CitBRkE0O0FGQTQ7MTEwMSAxMTZEIDExQUY7QUZBNDsxMTAxIDExNkQgMTFBRjsKK0FGQTU7QUZBNTsxMTAxIDExNkQgMTFCMDtBRkE1OzExMDEgMTE2RCAxMUIwOworQUZBNjtBRkE2OzExMDEgMTE2RCAxMUIxO0FGQTY7MTEwMSAxMTZEIDExQjE7CitBRkE3O0FGQTc7MTEwMSAxMTZEIDExQjI7QUZBNzsxMTAxIDExNkQgMTFCMjsKK0FGQTg7QUZBODsxMTAxIDExNkQgMTFCMztBRkE4OzExMDEgMTE2RCAxMUIzOworQUZBOTtBRkE5OzExMDEgMTE2RCAxMUI0O0FGQTk7MTEwMSAxMTZEIDExQjQ7CitBRkFBO0FGQUE7MTEwMSAxMTZEIDExQjU7QUZBQTsxMTAxIDExNkQgMTFCNTsKK0FGQUI7QUZBQjsxMTAxIDExNkQgMTFCNjtBRkFCOzExMDEgMTE2RCAxMUI2OworQUZBQztBRkFDOzExMDEgMTE2RCAxMUI3O0FGQUM7MTEwMSAxMTZEIDExQjc7CitBRkFEO0FGQUQ7MTEwMSAxMTZEIDExQjg7QUZBRDsxMTAxIDExNkQgMTFCODsKK0FGQUU7QUZBRTsxMTAxIDExNkQgMTFCOTtBRkFFOzExMDEgMTE2RCAxMUI5OworQUZBRjtBRkFGOzExMDEgMTE2RCAxMUJBO0FGQUY7MTEwMSAxMTZEIDExQkE7CitBRkIwO0FGQjA7MTEwMSAxMTZEIDExQkI7QUZCMDsxMTAxIDExNkQgMTFCQjsKK0FGQjE7QUZCMTsxMTAxIDExNkQgMTFCQztBRkIxOzExMDEgMTE2RCAxMUJDOworQUZCMjtBRkIyOzExMDEgMTE2RCAxMUJEO0FGQjI7MTEwMSAxMTZEIDExQkQ7CitBRkIzO0FGQjM7MTEwMSAxMTZEIDExQkU7QUZCMzsxMTAxIDExNkQgMTFCRTsKK0FGQjQ7QUZCNDsxMTAxIDExNkQgMTFCRjtBRkI0OzExMDEgMTE2RCAxMUJGOworQUZCNTtBRkI1OzExMDEgMTE2RCAxMUMwO0FGQjU7MTEwMSAxMTZEIDExQzA7CitBRkI2O0FGQjY7MTEwMSAxMTZEIDExQzE7QUZCNjsxMTAxIDExNkQgMTFDMTsKK0FGQjc7QUZCNzsxMTAxIDExNkQgMTFDMjtBRkI3OzExMDEgMTE2RCAxMUMyOworQUZCODtBRkI4OzExMDEgMTE2RTtBRkI4OzExMDEgMTE2RTsKK0FGQjk7QUZCOTsxMTAxIDExNkUgMTFBODtBRkI5OzExMDEgMTE2RSAxMUE4OworQUZCQTtBRkJBOzExMDEgMTE2RSAxMUE5O0FGQkE7MTEwMSAxMTZFIDExQTk7CitBRkJCO0FGQkI7MTEwMSAxMTZFIDExQUE7QUZCQjsxMTAxIDExNkUgMTFBQTsKK0FGQkM7QUZCQzsxMTAxIDExNkUgMTFBQjtBRkJDOzExMDEgMTE2RSAxMUFCOworQUZCRDtBRkJEOzExMDEgMTE2RSAxMUFDO0FGQkQ7MTEwMSAxMTZFIDExQUM7CitBRkJFO0FGQkU7MTEwMSAxMTZFIDExQUQ7QUZCRTsxMTAxIDExNkUgMTFBRDsKK0FGQkY7QUZCRjsxMTAxIDExNkUgMTFBRTtBRkJGOzExMDEgMTE2RSAxMUFFOworQUZDMDtBRkMwOzExMDEgMTE2RSAxMUFGO0FGQzA7MTEwMSAxMTZFIDExQUY7CitBRkMxO0FGQzE7MTEwMSAxMTZFIDExQjA7QUZDMTsxMTAxIDExNkUgMTFCMDsKK0FGQzI7QUZDMjsxMTAxIDExNkUgMTFCMTtBRkMyOzExMDEgMTE2RSAxMUIxOworQUZDMztBRkMzOzExMDEgMTE2RSAxMUIyO0FGQzM7MTEwMSAxMTZFIDExQjI7CitBRkM0O0FGQzQ7MTEwMSAxMTZFIDExQjM7QUZDNDsxMTAxIDExNkUgMTFCMzsKK0FGQzU7QUZDNTsxMTAxIDExNkUgMTFCNDtBRkM1OzExMDEgMTE2RSAxMUI0OworQUZDNjtBRkM2OzExMDEgMTE2RSAxMUI1O0FGQzY7MTEwMSAxMTZFIDExQjU7CitBRkM3O0FGQzc7MTEwMSAxMTZFIDExQjY7QUZDNzsxMTAxIDExNkUgMTFCNjsKK0FGQzg7QUZDODsxMTAxIDExNkUgMTFCNztBRkM4OzExMDEgMTE2RSAxMUI3OworQUZDOTtBRkM5OzExMDEgMTE2RSAxMUI4O0FGQzk7MTEwMSAxMTZFIDExQjg7CitBRkNBO0FGQ0E7MTEwMSAxMTZFIDExQjk7QUZDQTsxMTAxIDExNkUgMTFCOTsKK0FGQ0I7QUZDQjsxMTAxIDExNkUgMTFCQTtBRkNCOzExMDEgMTE2RSAxMUJBOworQUZDQztBRkNDOzExMDEgMTE2RSAxMUJCO0FGQ0M7MTEwMSAxMTZFIDExQkI7CitBRkNEO0FGQ0Q7MTEwMSAxMTZFIDExQkM7QUZDRDsxMTAxIDExNkUgMTFCQzsKK0FGQ0U7QUZDRTsxMTAxIDExNkUgMTFCRDtBRkNFOzExMDEgMTE2RSAxMUJEOworQUZDRjtBRkNGOzExMDEgMTE2RSAxMUJFO0FGQ0Y7MTEwMSAxMTZFIDExQkU7CitBRkQwO0FGRDA7MTEwMSAxMTZFIDExQkY7QUZEMDsxMTAxIDExNkUgMTFCRjsKK0FGRDE7QUZEMTsxMTAxIDExNkUgMTFDMDtBRkQxOzExMDEgMTE2RSAxMUMwOworQUZEMjtBRkQyOzExMDEgMTE2RSAxMUMxO0FGRDI7MTEwMSAxMTZFIDExQzE7CitBRkQzO0FGRDM7MTEwMSAxMTZFIDExQzI7QUZEMzsxMTAxIDExNkUgMTFDMjsKK0FGRDQ7QUZENDsxMTAxIDExNkY7QUZENDsxMTAxIDExNkY7CitBRkQ1O0FGRDU7MTEwMSAxMTZGIDExQTg7QUZENTsxMTAxIDExNkYgMTFBODsKK0FGRDY7QUZENjsxMTAxIDExNkYgMTFBOTtBRkQ2OzExMDEgMTE2RiAxMUE5OworQUZENztBRkQ3OzExMDEgMTE2RiAxMUFBO0FGRDc7MTEwMSAxMTZGIDExQUE7CitBRkQ4O0FGRDg7MTEwMSAxMTZGIDExQUI7QUZEODsxMTAxIDExNkYgMTFBQjsKK0FGRDk7QUZEOTsxMTAxIDExNkYgMTFBQztBRkQ5OzExMDEgMTE2RiAxMUFDOworQUZEQTtBRkRBOzExMDEgMTE2RiAxMUFEO0FGREE7MTEwMSAxMTZGIDExQUQ7CitBRkRCO0FGREI7MTEwMSAxMTZGIDExQUU7QUZEQjsxMTAxIDExNkYgMTFBRTsKK0FGREM7QUZEQzsxMTAxIDExNkYgMTFBRjtBRkRDOzExMDEgMTE2RiAxMUFGOworQUZERDtBRkREOzExMDEgMTE2RiAxMUIwO0FGREQ7MTEwMSAxMTZGIDExQjA7CitBRkRFO0FGREU7MTEwMSAxMTZGIDExQjE7QUZERTsxMTAxIDExNkYgMTFCMTsKK0FGREY7QUZERjsxMTAxIDExNkYgMTFCMjtBRkRGOzExMDEgMTE2RiAxMUIyOworQUZFMDtBRkUwOzExMDEgMTE2RiAxMUIzO0FGRTA7MTEwMSAxMTZGIDExQjM7CitBRkUxO0FGRTE7MTEwMSAxMTZGIDExQjQ7QUZFMTsxMTAxIDExNkYgMTFCNDsKK0FGRTI7QUZFMjsxMTAxIDExNkYgMTFCNTtBRkUyOzExMDEgMTE2RiAxMUI1OworQUZFMztBRkUzOzExMDEgMTE2RiAxMUI2O0FGRTM7MTEwMSAxMTZGIDExQjY7CitBRkU0O0FGRTQ7MTEwMSAxMTZGIDExQjc7QUZFNDsxMTAxIDExNkYgMTFCNzsKK0FGRTU7QUZFNTsxMTAxIDExNkYgMTFCODtBRkU1OzExMDEgMTE2RiAxMUI4OworQUZFNjtBRkU2OzExMDEgMTE2RiAxMUI5O0FGRTY7MTEwMSAxMTZGIDExQjk7CitBRkU3O0FGRTc7MTEwMSAxMTZGIDExQkE7QUZFNzsxMTAxIDExNkYgMTFCQTsKK0FGRTg7QUZFODsxMTAxIDExNkYgMTFCQjtBRkU4OzExMDEgMTE2RiAxMUJCOworQUZFOTtBRkU5OzExMDEgMTE2RiAxMUJDO0FGRTk7MTEwMSAxMTZGIDExQkM7CitBRkVBO0FGRUE7MTEwMSAxMTZGIDExQkQ7QUZFQTsxMTAxIDExNkYgMTFCRDsKK0FGRUI7QUZFQjsxMTAxIDExNkYgMTFCRTtBRkVCOzExMDEgMTE2RiAxMUJFOworQUZFQztBRkVDOzExMDEgMTE2RiAxMUJGO0FGRUM7MTEwMSAxMTZGIDExQkY7CitBRkVEO0FGRUQ7MTEwMSAxMTZGIDExQzA7QUZFRDsxMTAxIDExNkYgMTFDMDsKK0FGRUU7QUZFRTsxMTAxIDExNkYgMTFDMTtBRkVFOzExMDEgMTE2RiAxMUMxOworQUZFRjtBRkVGOzExMDEgMTE2RiAxMUMyO0FGRUY7MTEwMSAxMTZGIDExQzI7CitBRkYwO0FGRjA7MTEwMSAxMTcwO0FGRjA7MTEwMSAxMTcwOworQUZGMTtBRkYxOzExMDEgMTE3MCAxMUE4O0FGRjE7MTEwMSAxMTcwIDExQTg7CitBRkYyO0FGRjI7MTEwMSAxMTcwIDExQTk7QUZGMjsxMTAxIDExNzAgMTFBOTsKK0FGRjM7QUZGMzsxMTAxIDExNzAgMTFBQTtBRkYzOzExMDEgMTE3MCAxMUFBOworQUZGNDtBRkY0OzExMDEgMTE3MCAxMUFCO0FGRjQ7MTEwMSAxMTcwIDExQUI7CitBRkY1O0FGRjU7MTEwMSAxMTcwIDExQUM7QUZGNTsxMTAxIDExNzAgMTFBQzsKK0FGRjY7QUZGNjsxMTAxIDExNzAgMTFBRDtBRkY2OzExMDEgMTE3MCAxMUFEOworQUZGNztBRkY3OzExMDEgMTE3MCAxMUFFO0FGRjc7MTEwMSAxMTcwIDExQUU7CitBRkY4O0FGRjg7MTEwMSAxMTcwIDExQUY7QUZGODsxMTAxIDExNzAgMTFBRjsKK0FGRjk7QUZGOTsxMTAxIDExNzAgMTFCMDtBRkY5OzExMDEgMTE3MCAxMUIwOworQUZGQTtBRkZBOzExMDEgMTE3MCAxMUIxO0FGRkE7MTEwMSAxMTcwIDExQjE7CitBRkZCO0FGRkI7MTEwMSAxMTcwIDExQjI7QUZGQjsxMTAxIDExNzAgMTFCMjsKK0FGRkM7QUZGQzsxMTAxIDExNzAgMTFCMztBRkZDOzExMDEgMTE3MCAxMUIzOworQUZGRDtBRkZEOzExMDEgMTE3MCAxMUI0O0FGRkQ7MTEwMSAxMTcwIDExQjQ7CitBRkZFO0FGRkU7MTEwMSAxMTcwIDExQjU7QUZGRTsxMTAxIDExNzAgMTFCNTsKK0FGRkY7QUZGRjsxMTAxIDExNzAgMTFCNjtBRkZGOzExMDEgMTE3MCAxMUI2OworQjAwMDtCMDAwOzExMDEgMTE3MCAxMUI3O0IwMDA7MTEwMSAxMTcwIDExQjc7CitCMDAxO0IwMDE7MTEwMSAxMTcwIDExQjg7QjAwMTsxMTAxIDExNzAgMTFCODsKK0IwMDI7QjAwMjsxMTAxIDExNzAgMTFCOTtCMDAyOzExMDEgMTE3MCAxMUI5OworQjAwMztCMDAzOzExMDEgMTE3MCAxMUJBO0IwMDM7MTEwMSAxMTcwIDExQkE7CitCMDA0O0IwMDQ7MTEwMSAxMTcwIDExQkI7QjAwNDsxMTAxIDExNzAgMTFCQjsKK0IwMDU7QjAwNTsxMTAxIDExNzAgMTFCQztCMDA1OzExMDEgMTE3MCAxMUJDOworQjAwNjtCMDA2OzExMDEgMTE3MCAxMUJEO0IwMDY7MTEwMSAxMTcwIDExQkQ7CitCMDA3O0IwMDc7MTEwMSAxMTcwIDExQkU7QjAwNzsxMTAxIDExNzAgMTFCRTsKK0IwMDg7QjAwODsxMTAxIDExNzAgMTFCRjtCMDA4OzExMDEgMTE3MCAxMUJGOworQjAwOTtCMDA5OzExMDEgMTE3MCAxMUMwO0IwMDk7MTEwMSAxMTcwIDExQzA7CitCMDBBO0IwMEE7MTEwMSAxMTcwIDExQzE7QjAwQTsxMTAxIDExNzAgMTFDMTsKK0IwMEI7QjAwQjsxMTAxIDExNzAgMTFDMjtCMDBCOzExMDEgMTE3MCAxMUMyOworQjAwQztCMDBDOzExMDEgMTE3MTtCMDBDOzExMDEgMTE3MTsKK0IwMEQ7QjAwRDsxMTAxIDExNzEgMTFBODtCMDBEOzExMDEgMTE3MSAxMUE4OworQjAwRTtCMDBFOzExMDEgMTE3MSAxMUE5O0IwMEU7MTEwMSAxMTcxIDExQTk7CitCMDBGO0IwMEY7MTEwMSAxMTcxIDExQUE7QjAwRjsxMTAxIDExNzEgMTFBQTsKK0IwMTA7QjAxMDsxMTAxIDExNzEgMTFBQjtCMDEwOzExMDEgMTE3MSAxMUFCOworQjAxMTtCMDExOzExMDEgMTE3MSAxMUFDO0IwMTE7MTEwMSAxMTcxIDExQUM7CitCMDEyO0IwMTI7MTEwMSAxMTcxIDExQUQ7QjAxMjsxMTAxIDExNzEgMTFBRDsKK0IwMTM7QjAxMzsxMTAxIDExNzEgMTFBRTtCMDEzOzExMDEgMTE3MSAxMUFFOworQjAxNDtCMDE0OzExMDEgMTE3MSAxMUFGO0IwMTQ7MTEwMSAxMTcxIDExQUY7CitCMDE1O0IwMTU7MTEwMSAxMTcxIDExQjA7QjAxNTsxMTAxIDExNzEgMTFCMDsKK0IwMTY7QjAxNjsxMTAxIDExNzEgMTFCMTtCMDE2OzExMDEgMTE3MSAxMUIxOworQjAxNztCMDE3OzExMDEgMTE3MSAxMUIyO0IwMTc7MTEwMSAxMTcxIDExQjI7CitCMDE4O0IwMTg7MTEwMSAxMTcxIDExQjM7QjAxODsxMTAxIDExNzEgMTFCMzsKK0IwMTk7QjAxOTsxMTAxIDExNzEgMTFCNDtCMDE5OzExMDEgMTE3MSAxMUI0OworQjAxQTtCMDFBOzExMDEgMTE3MSAxMUI1O0IwMUE7MTEwMSAxMTcxIDExQjU7CitCMDFCO0IwMUI7MTEwMSAxMTcxIDExQjY7QjAxQjsxMTAxIDExNzEgMTFCNjsKK0IwMUM7QjAxQzsxMTAxIDExNzEgMTFCNztCMDFDOzExMDEgMTE3MSAxMUI3OworQjAxRDtCMDFEOzExMDEgMTE3MSAxMUI4O0IwMUQ7MTEwMSAxMTcxIDExQjg7CitCMDFFO0IwMUU7MTEwMSAxMTcxIDExQjk7QjAxRTsxMTAxIDExNzEgMTFCOTsKK0IwMUY7QjAxRjsxMTAxIDExNzEgMTFCQTtCMDFGOzExMDEgMTE3MSAxMUJBOworQjAyMDtCMDIwOzExMDEgMTE3MSAxMUJCO0IwMjA7MTEwMSAxMTcxIDExQkI7CitCMDIxO0IwMjE7MTEwMSAxMTcxIDExQkM7QjAyMTsxMTAxIDExNzEgMTFCQzsKK0IwMjI7QjAyMjsxMTAxIDExNzEgMTFCRDtCMDIyOzExMDEgMTE3MSAxMUJEOworQjAyMztCMDIzOzExMDEgMTE3MSAxMUJFO0IwMjM7MTEwMSAxMTcxIDExQkU7CitCMDI0O0IwMjQ7MTEwMSAxMTcxIDExQkY7QjAyNDsxMTAxIDExNzEgMTFCRjsKK0IwMjU7QjAyNTsxMTAxIDExNzEgMTFDMDtCMDI1OzExMDEgMTE3MSAxMUMwOworQjAyNjtCMDI2OzExMDEgMTE3MSAxMUMxO0IwMjY7MTEwMSAxMTcxIDExQzE7CitCMDI3O0IwMjc7MTEwMSAxMTcxIDExQzI7QjAyNzsxMTAxIDExNzEgMTFDMjsKK0IwMjg7QjAyODsxMTAxIDExNzI7QjAyODsxMTAxIDExNzI7CitCMDI5O0IwMjk7MTEwMSAxMTcyIDExQTg7QjAyOTsxMTAxIDExNzIgMTFBODsKK0IwMkE7QjAyQTsxMTAxIDExNzIgMTFBOTtCMDJBOzExMDEgMTE3MiAxMUE5OworQjAyQjtCMDJCOzExMDEgMTE3MiAxMUFBO0IwMkI7MTEwMSAxMTcyIDExQUE7CitCMDJDO0IwMkM7MTEwMSAxMTcyIDExQUI7QjAyQzsxMTAxIDExNzIgMTFBQjsKK0IwMkQ7QjAyRDsxMTAxIDExNzIgMTFBQztCMDJEOzExMDEgMTE3MiAxMUFDOworQjAyRTtCMDJFOzExMDEgMTE3MiAxMUFEO0IwMkU7MTEwMSAxMTcyIDExQUQ7CitCMDJGO0IwMkY7MTEwMSAxMTcyIDExQUU7QjAyRjsxMTAxIDExNzIgMTFBRTsKK0IwMzA7QjAzMDsxMTAxIDExNzIgMTFBRjtCMDMwOzExMDEgMTE3MiAxMUFGOworQjAzMTtCMDMxOzExMDEgMTE3MiAxMUIwO0IwMzE7MTEwMSAxMTcyIDExQjA7CitCMDMyO0IwMzI7MTEwMSAxMTcyIDExQjE7QjAzMjsxMTAxIDExNzIgMTFCMTsKK0IwMzM7QjAzMzsxMTAxIDExNzIgMTFCMjtCMDMzOzExMDEgMTE3MiAxMUIyOworQjAzNDtCMDM0OzExMDEgMTE3MiAxMUIzO0IwMzQ7MTEwMSAxMTcyIDExQjM7CitCMDM1O0IwMzU7MTEwMSAxMTcyIDExQjQ7QjAzNTsxMTAxIDExNzIgMTFCNDsKK0IwMzY7QjAzNjsxMTAxIDExNzIgMTFCNTtCMDM2OzExMDEgMTE3MiAxMUI1OworQjAzNztCMDM3OzExMDEgMTE3MiAxMUI2O0IwMzc7MTEwMSAxMTcyIDExQjY7CitCMDM4O0IwMzg7MTEwMSAxMTcyIDExQjc7QjAzODsxMTAxIDExNzIgMTFCNzsKK0IwMzk7QjAzOTsxMTAxIDExNzIgMTFCODtCMDM5OzExMDEgMTE3MiAxMUI4OworQjAzQTtCMDNBOzExMDEgMTE3MiAxMUI5O0IwM0E7MTEwMSAxMTcyIDExQjk7CitCMDNCO0IwM0I7MTEwMSAxMTcyIDExQkE7QjAzQjsxMTAxIDExNzIgMTFCQTsKK0IwM0M7QjAzQzsxMTAxIDExNzIgMTFCQjtCMDNDOzExMDEgMTE3MiAxMUJCOworQjAzRDtCMDNEOzExMDEgMTE3MiAxMUJDO0IwM0Q7MTEwMSAxMTcyIDExQkM7CitCMDNFO0IwM0U7MTEwMSAxMTcyIDExQkQ7QjAzRTsxMTAxIDExNzIgMTFCRDsKK0IwM0Y7QjAzRjsxMTAxIDExNzIgMTFCRTtCMDNGOzExMDEgMTE3MiAxMUJFOworQjA0MDtCMDQwOzExMDEgMTE3MiAxMUJGO0IwNDA7MTEwMSAxMTcyIDExQkY7CitCMDQxO0IwNDE7MTEwMSAxMTcyIDExQzA7QjA0MTsxMTAxIDExNzIgMTFDMDsKK0IwNDI7QjA0MjsxMTAxIDExNzIgMTFDMTtCMDQyOzExMDEgMTE3MiAxMUMxOworQjA0MztCMDQzOzExMDEgMTE3MiAxMUMyO0IwNDM7MTEwMSAxMTcyIDExQzI7CitCMDQ0O0IwNDQ7MTEwMSAxMTczO0IwNDQ7MTEwMSAxMTczOworQjA0NTtCMDQ1OzExMDEgMTE3MyAxMUE4O0IwNDU7MTEwMSAxMTczIDExQTg7CitCMDQ2O0IwNDY7MTEwMSAxMTczIDExQTk7QjA0NjsxMTAxIDExNzMgMTFBOTsKK0IwNDc7QjA0NzsxMTAxIDExNzMgMTFBQTtCMDQ3OzExMDEgMTE3MyAxMUFBOworQjA0ODtCMDQ4OzExMDEgMTE3MyAxMUFCO0IwNDg7MTEwMSAxMTczIDExQUI7CitCMDQ5O0IwNDk7MTEwMSAxMTczIDExQUM7QjA0OTsxMTAxIDExNzMgMTFBQzsKK0IwNEE7QjA0QTsxMTAxIDExNzMgMTFBRDtCMDRBOzExMDEgMTE3MyAxMUFEOworQjA0QjtCMDRCOzExMDEgMTE3MyAxMUFFO0IwNEI7MTEwMSAxMTczIDExQUU7CitCMDRDO0IwNEM7MTEwMSAxMTczIDExQUY7QjA0QzsxMTAxIDExNzMgMTFBRjsKK0IwNEQ7QjA0RDsxMTAxIDExNzMgMTFCMDtCMDREOzExMDEgMTE3MyAxMUIwOworQjA0RTtCMDRFOzExMDEgMTE3MyAxMUIxO0IwNEU7MTEwMSAxMTczIDExQjE7CitCMDRGO0IwNEY7MTEwMSAxMTczIDExQjI7QjA0RjsxMTAxIDExNzMgMTFCMjsKK0IwNTA7QjA1MDsxMTAxIDExNzMgMTFCMztCMDUwOzExMDEgMTE3MyAxMUIzOworQjA1MTtCMDUxOzExMDEgMTE3MyAxMUI0O0IwNTE7MTEwMSAxMTczIDExQjQ7CitCMDUyO0IwNTI7MTEwMSAxMTczIDExQjU7QjA1MjsxMTAxIDExNzMgMTFCNTsKK0IwNTM7QjA1MzsxMTAxIDExNzMgMTFCNjtCMDUzOzExMDEgMTE3MyAxMUI2OworQjA1NDtCMDU0OzExMDEgMTE3MyAxMUI3O0IwNTQ7MTEwMSAxMTczIDExQjc7CitCMDU1O0IwNTU7MTEwMSAxMTczIDExQjg7QjA1NTsxMTAxIDExNzMgMTFCODsKK0IwNTY7QjA1NjsxMTAxIDExNzMgMTFCOTtCMDU2OzExMDEgMTE3MyAxMUI5OworQjA1NztCMDU3OzExMDEgMTE3MyAxMUJBO0IwNTc7MTEwMSAxMTczIDExQkE7CitCMDU4O0IwNTg7MTEwMSAxMTczIDExQkI7QjA1ODsxMTAxIDExNzMgMTFCQjsKK0IwNTk7QjA1OTsxMTAxIDExNzMgMTFCQztCMDU5OzExMDEgMTE3MyAxMUJDOworQjA1QTtCMDVBOzExMDEgMTE3MyAxMUJEO0IwNUE7MTEwMSAxMTczIDExQkQ7CitCMDVCO0IwNUI7MTEwMSAxMTczIDExQkU7QjA1QjsxMTAxIDExNzMgMTFCRTsKK0IwNUM7QjA1QzsxMTAxIDExNzMgMTFCRjtCMDVDOzExMDEgMTE3MyAxMUJGOworQjA1RDtCMDVEOzExMDEgMTE3MyAxMUMwO0IwNUQ7MTEwMSAxMTczIDExQzA7CitCMDVFO0IwNUU7MTEwMSAxMTczIDExQzE7QjA1RTsxMTAxIDExNzMgMTFDMTsKK0IwNUY7QjA1RjsxMTAxIDExNzMgMTFDMjtCMDVGOzExMDEgMTE3MyAxMUMyOworQjA2MDtCMDYwOzExMDEgMTE3NDtCMDYwOzExMDEgMTE3NDsKK0IwNjE7QjA2MTsxMTAxIDExNzQgMTFBODtCMDYxOzExMDEgMTE3NCAxMUE4OworQjA2MjtCMDYyOzExMDEgMTE3NCAxMUE5O0IwNjI7MTEwMSAxMTc0IDExQTk7CitCMDYzO0IwNjM7MTEwMSAxMTc0IDExQUE7QjA2MzsxMTAxIDExNzQgMTFBQTsKK0IwNjQ7QjA2NDsxMTAxIDExNzQgMTFBQjtCMDY0OzExMDEgMTE3NCAxMUFCOworQjA2NTtCMDY1OzExMDEgMTE3NCAxMUFDO0IwNjU7MTEwMSAxMTc0IDExQUM7CitCMDY2O0IwNjY7MTEwMSAxMTc0IDExQUQ7QjA2NjsxMTAxIDExNzQgMTFBRDsKK0IwNjc7QjA2NzsxMTAxIDExNzQgMTFBRTtCMDY3OzExMDEgMTE3NCAxMUFFOworQjA2ODtCMDY4OzExMDEgMTE3NCAxMUFGO0IwNjg7MTEwMSAxMTc0IDExQUY7CitCMDY5O0IwNjk7MTEwMSAxMTc0IDExQjA7QjA2OTsxMTAxIDExNzQgMTFCMDsKK0IwNkE7QjA2QTsxMTAxIDExNzQgMTFCMTtCMDZBOzExMDEgMTE3NCAxMUIxOworQjA2QjtCMDZCOzExMDEgMTE3NCAxMUIyO0IwNkI7MTEwMSAxMTc0IDExQjI7CitCMDZDO0IwNkM7MTEwMSAxMTc0IDExQjM7QjA2QzsxMTAxIDExNzQgMTFCMzsKK0IwNkQ7QjA2RDsxMTAxIDExNzQgMTFCNDtCMDZEOzExMDEgMTE3NCAxMUI0OworQjA2RTtCMDZFOzExMDEgMTE3NCAxMUI1O0IwNkU7MTEwMSAxMTc0IDExQjU7CitCMDZGO0IwNkY7MTEwMSAxMTc0IDExQjY7QjA2RjsxMTAxIDExNzQgMTFCNjsKK0IwNzA7QjA3MDsxMTAxIDExNzQgMTFCNztCMDcwOzExMDEgMTE3NCAxMUI3OworQjA3MTtCMDcxOzExMDEgMTE3NCAxMUI4O0IwNzE7MTEwMSAxMTc0IDExQjg7CitCMDcyO0IwNzI7MTEwMSAxMTc0IDExQjk7QjA3MjsxMTAxIDExNzQgMTFCOTsKK0IwNzM7QjA3MzsxMTAxIDExNzQgMTFCQTtCMDczOzExMDEgMTE3NCAxMUJBOworQjA3NDtCMDc0OzExMDEgMTE3NCAxMUJCO0IwNzQ7MTEwMSAxMTc0IDExQkI7CitCMDc1O0IwNzU7MTEwMSAxMTc0IDExQkM7QjA3NTsxMTAxIDExNzQgMTFCQzsKK0IwNzY7QjA3NjsxMTAxIDExNzQgMTFCRDtCMDc2OzExMDEgMTE3NCAxMUJEOworQjA3NztCMDc3OzExMDEgMTE3NCAxMUJFO0IwNzc7MTEwMSAxMTc0IDExQkU7CitCMDc4O0IwNzg7MTEwMSAxMTc0IDExQkY7QjA3ODsxMTAxIDExNzQgMTFCRjsKK0IwNzk7QjA3OTsxMTAxIDExNzQgMTFDMDtCMDc5OzExMDEgMTE3NCAxMUMwOworQjA3QTtCMDdBOzExMDEgMTE3NCAxMUMxO0IwN0E7MTEwMSAxMTc0IDExQzE7CitCMDdCO0IwN0I7MTEwMSAxMTc0IDExQzI7QjA3QjsxMTAxIDExNzQgMTFDMjsKK0IwN0M7QjA3QzsxMTAxIDExNzU7QjA3QzsxMTAxIDExNzU7CitCMDdEO0IwN0Q7MTEwMSAxMTc1IDExQTg7QjA3RDsxMTAxIDExNzUgMTFBODsKK0IwN0U7QjA3RTsxMTAxIDExNzUgMTFBOTtCMDdFOzExMDEgMTE3NSAxMUE5OworQjA3RjtCMDdGOzExMDEgMTE3NSAxMUFBO0IwN0Y7MTEwMSAxMTc1IDExQUE7CitCMDgwO0IwODA7MTEwMSAxMTc1IDExQUI7QjA4MDsxMTAxIDExNzUgMTFBQjsKK0IwODE7QjA4MTsxMTAxIDExNzUgMTFBQztCMDgxOzExMDEgMTE3NSAxMUFDOworQjA4MjtCMDgyOzExMDEgMTE3NSAxMUFEO0IwODI7MTEwMSAxMTc1IDExQUQ7CitCMDgzO0IwODM7MTEwMSAxMTc1IDExQUU7QjA4MzsxMTAxIDExNzUgMTFBRTsKK0IwODQ7QjA4NDsxMTAxIDExNzUgMTFBRjtCMDg0OzExMDEgMTE3NSAxMUFGOworQjA4NTtCMDg1OzExMDEgMTE3NSAxMUIwO0IwODU7MTEwMSAxMTc1IDExQjA7CitCMDg2O0IwODY7MTEwMSAxMTc1IDExQjE7QjA4NjsxMTAxIDExNzUgMTFCMTsKK0IwODc7QjA4NzsxMTAxIDExNzUgMTFCMjtCMDg3OzExMDEgMTE3NSAxMUIyOworQjA4ODtCMDg4OzExMDEgMTE3NSAxMUIzO0IwODg7MTEwMSAxMTc1IDExQjM7CitCMDg5O0IwODk7MTEwMSAxMTc1IDExQjQ7QjA4OTsxMTAxIDExNzUgMTFCNDsKK0IwOEE7QjA4QTsxMTAxIDExNzUgMTFCNTtCMDhBOzExMDEgMTE3NSAxMUI1OworQjA4QjtCMDhCOzExMDEgMTE3NSAxMUI2O0IwOEI7MTEwMSAxMTc1IDExQjY7CitCMDhDO0IwOEM7MTEwMSAxMTc1IDExQjc7QjA4QzsxMTAxIDExNzUgMTFCNzsKK0IwOEQ7QjA4RDsxMTAxIDExNzUgMTFCODtCMDhEOzExMDEgMTE3NSAxMUI4OworQjA4RTtCMDhFOzExMDEgMTE3NSAxMUI5O0IwOEU7MTEwMSAxMTc1IDExQjk7CitCMDhGO0IwOEY7MTEwMSAxMTc1IDExQkE7QjA4RjsxMTAxIDExNzUgMTFCQTsKK0IwOTA7QjA5MDsxMTAxIDExNzUgMTFCQjtCMDkwOzExMDEgMTE3NSAxMUJCOworQjA5MTtCMDkxOzExMDEgMTE3NSAxMUJDO0IwOTE7MTEwMSAxMTc1IDExQkM7CitCMDkyO0IwOTI7MTEwMSAxMTc1IDExQkQ7QjA5MjsxMTAxIDExNzUgMTFCRDsKK0IwOTM7QjA5MzsxMTAxIDExNzUgMTFCRTtCMDkzOzExMDEgMTE3NSAxMUJFOworQjA5NDtCMDk0OzExMDEgMTE3NSAxMUJGO0IwOTQ7MTEwMSAxMTc1IDExQkY7CitCMDk1O0IwOTU7MTEwMSAxMTc1IDExQzA7QjA5NTsxMTAxIDExNzUgMTFDMDsKK0IwOTY7QjA5NjsxMTAxIDExNzUgMTFDMTtCMDk2OzExMDEgMTE3NSAxMUMxOworQjA5NztCMDk3OzExMDEgMTE3NSAxMUMyO0IwOTc7MTEwMSAxMTc1IDExQzI7CitCMDk4O0IwOTg7MTEwMiAxMTYxO0IwOTg7MTEwMiAxMTYxOworQjA5OTtCMDk5OzExMDIgMTE2MSAxMUE4O0IwOTk7MTEwMiAxMTYxIDExQTg7CitCMDlBO0IwOUE7MTEwMiAxMTYxIDExQTk7QjA5QTsxMTAyIDExNjEgMTFBOTsKK0IwOUI7QjA5QjsxMTAyIDExNjEgMTFBQTtCMDlCOzExMDIgMTE2MSAxMUFBOworQjA5QztCMDlDOzExMDIgMTE2MSAxMUFCO0IwOUM7MTEwMiAxMTYxIDExQUI7CitCMDlEO0IwOUQ7MTEwMiAxMTYxIDExQUM7QjA5RDsxMTAyIDExNjEgMTFBQzsKK0IwOUU7QjA5RTsxMTAyIDExNjEgMTFBRDtCMDlFOzExMDIgMTE2MSAxMUFEOworQjA5RjtCMDlGOzExMDIgMTE2MSAxMUFFO0IwOUY7MTEwMiAxMTYxIDExQUU7CitCMEEwO0IwQTA7MTEwMiAxMTYxIDExQUY7QjBBMDsxMTAyIDExNjEgMTFBRjsKK0IwQTE7QjBBMTsxMTAyIDExNjEgMTFCMDtCMEExOzExMDIgMTE2MSAxMUIwOworQjBBMjtCMEEyOzExMDIgMTE2MSAxMUIxO0IwQTI7MTEwMiAxMTYxIDExQjE7CitCMEEzO0IwQTM7MTEwMiAxMTYxIDExQjI7QjBBMzsxMTAyIDExNjEgMTFCMjsKK0IwQTQ7QjBBNDsxMTAyIDExNjEgMTFCMztCMEE0OzExMDIgMTE2MSAxMUIzOworQjBBNTtCMEE1OzExMDIgMTE2MSAxMUI0O0IwQTU7MTEwMiAxMTYxIDExQjQ7CitCMEE2O0IwQTY7MTEwMiAxMTYxIDExQjU7QjBBNjsxMTAyIDExNjEgMTFCNTsKK0IwQTc7QjBBNzsxMTAyIDExNjEgMTFCNjtCMEE3OzExMDIgMTE2MSAxMUI2OworQjBBODtCMEE4OzExMDIgMTE2MSAxMUI3O0IwQTg7MTEwMiAxMTYxIDExQjc7CitCMEE5O0IwQTk7MTEwMiAxMTYxIDExQjg7QjBBOTsxMTAyIDExNjEgMTFCODsKK0IwQUE7QjBBQTsxMTAyIDExNjEgMTFCOTtCMEFBOzExMDIgMTE2MSAxMUI5OworQjBBQjtCMEFCOzExMDIgMTE2MSAxMUJBO0IwQUI7MTEwMiAxMTYxIDExQkE7CitCMEFDO0IwQUM7MTEwMiAxMTYxIDExQkI7QjBBQzsxMTAyIDExNjEgMTFCQjsKK0IwQUQ7QjBBRDsxMTAyIDExNjEgMTFCQztCMEFEOzExMDIgMTE2MSAxMUJDOworQjBBRTtCMEFFOzExMDIgMTE2MSAxMUJEO0IwQUU7MTEwMiAxMTYxIDExQkQ7CitCMEFGO0IwQUY7MTEwMiAxMTYxIDExQkU7QjBBRjsxMTAyIDExNjEgMTFCRTsKK0IwQjA7QjBCMDsxMTAyIDExNjEgMTFCRjtCMEIwOzExMDIgMTE2MSAxMUJGOworQjBCMTtCMEIxOzExMDIgMTE2MSAxMUMwO0IwQjE7MTEwMiAxMTYxIDExQzA7CitCMEIyO0IwQjI7MTEwMiAxMTYxIDExQzE7QjBCMjsxMTAyIDExNjEgMTFDMTsKK0IwQjM7QjBCMzsxMTAyIDExNjEgMTFDMjtCMEIzOzExMDIgMTE2MSAxMUMyOworQjBCNDtCMEI0OzExMDIgMTE2MjtCMEI0OzExMDIgMTE2MjsKK0IwQjU7QjBCNTsxMTAyIDExNjIgMTFBODtCMEI1OzExMDIgMTE2MiAxMUE4OworQjBCNjtCMEI2OzExMDIgMTE2MiAxMUE5O0IwQjY7MTEwMiAxMTYyIDExQTk7CitCMEI3O0IwQjc7MTEwMiAxMTYyIDExQUE7QjBCNzsxMTAyIDExNjIgMTFBQTsKK0IwQjg7QjBCODsxMTAyIDExNjIgMTFBQjtCMEI4OzExMDIgMTE2MiAxMUFCOworQjBCOTtCMEI5OzExMDIgMTE2MiAxMUFDO0IwQjk7MTEwMiAxMTYyIDExQUM7CitCMEJBO0IwQkE7MTEwMiAxMTYyIDExQUQ7QjBCQTsxMTAyIDExNjIgMTFBRDsKK0IwQkI7QjBCQjsxMTAyIDExNjIgMTFBRTtCMEJCOzExMDIgMTE2MiAxMUFFOworQjBCQztCMEJDOzExMDIgMTE2MiAxMUFGO0IwQkM7MTEwMiAxMTYyIDExQUY7CitCMEJEO0IwQkQ7MTEwMiAxMTYyIDExQjA7QjBCRDsxMTAyIDExNjIgMTFCMDsKK0IwQkU7QjBCRTsxMTAyIDExNjIgMTFCMTtCMEJFOzExMDIgMTE2MiAxMUIxOworQjBCRjtCMEJGOzExMDIgMTE2MiAxMUIyO0IwQkY7MTEwMiAxMTYyIDExQjI7CitCMEMwO0IwQzA7MTEwMiAxMTYyIDExQjM7QjBDMDsxMTAyIDExNjIgMTFCMzsKK0IwQzE7QjBDMTsxMTAyIDExNjIgMTFCNDtCMEMxOzExMDIgMTE2MiAxMUI0OworQjBDMjtCMEMyOzExMDIgMTE2MiAxMUI1O0IwQzI7MTEwMiAxMTYyIDExQjU7CitCMEMzO0IwQzM7MTEwMiAxMTYyIDExQjY7QjBDMzsxMTAyIDExNjIgMTFCNjsKK0IwQzQ7QjBDNDsxMTAyIDExNjIgMTFCNztCMEM0OzExMDIgMTE2MiAxMUI3OworQjBDNTtCMEM1OzExMDIgMTE2MiAxMUI4O0IwQzU7MTEwMiAxMTYyIDExQjg7CitCMEM2O0IwQzY7MTEwMiAxMTYyIDExQjk7QjBDNjsxMTAyIDExNjIgMTFCOTsKK0IwQzc7QjBDNzsxMTAyIDExNjIgMTFCQTtCMEM3OzExMDIgMTE2MiAxMUJBOworQjBDODtCMEM4OzExMDIgMTE2MiAxMUJCO0IwQzg7MTEwMiAxMTYyIDExQkI7CitCMEM5O0IwQzk7MTEwMiAxMTYyIDExQkM7QjBDOTsxMTAyIDExNjIgMTFCQzsKK0IwQ0E7QjBDQTsxMTAyIDExNjIgMTFCRDtCMENBOzExMDIgMTE2MiAxMUJEOworQjBDQjtCMENCOzExMDIgMTE2MiAxMUJFO0IwQ0I7MTEwMiAxMTYyIDExQkU7CitCMENDO0IwQ0M7MTEwMiAxMTYyIDExQkY7QjBDQzsxMTAyIDExNjIgMTFCRjsKK0IwQ0Q7QjBDRDsxMTAyIDExNjIgMTFDMDtCMENEOzExMDIgMTE2MiAxMUMwOworQjBDRTtCMENFOzExMDIgMTE2MiAxMUMxO0IwQ0U7MTEwMiAxMTYyIDExQzE7CitCMENGO0IwQ0Y7MTEwMiAxMTYyIDExQzI7QjBDRjsxMTAyIDExNjIgMTFDMjsKK0IwRDA7QjBEMDsxMTAyIDExNjM7QjBEMDsxMTAyIDExNjM7CitCMEQxO0IwRDE7MTEwMiAxMTYzIDExQTg7QjBEMTsxMTAyIDExNjMgMTFBODsKK0IwRDI7QjBEMjsxMTAyIDExNjMgMTFBOTtCMEQyOzExMDIgMTE2MyAxMUE5OworQjBEMztCMEQzOzExMDIgMTE2MyAxMUFBO0IwRDM7MTEwMiAxMTYzIDExQUE7CitCMEQ0O0IwRDQ7MTEwMiAxMTYzIDExQUI7QjBENDsxMTAyIDExNjMgMTFBQjsKK0IwRDU7QjBENTsxMTAyIDExNjMgMTFBQztCMEQ1OzExMDIgMTE2MyAxMUFDOworQjBENjtCMEQ2OzExMDIgMTE2MyAxMUFEO0IwRDY7MTEwMiAxMTYzIDExQUQ7CitCMEQ3O0IwRDc7MTEwMiAxMTYzIDExQUU7QjBENzsxMTAyIDExNjMgMTFBRTsKK0IwRDg7QjBEODsxMTAyIDExNjMgMTFBRjtCMEQ4OzExMDIgMTE2MyAxMUFGOworQjBEOTtCMEQ5OzExMDIgMTE2MyAxMUIwO0IwRDk7MTEwMiAxMTYzIDExQjA7CitCMERBO0IwREE7MTEwMiAxMTYzIDExQjE7QjBEQTsxMTAyIDExNjMgMTFCMTsKK0IwREI7QjBEQjsxMTAyIDExNjMgMTFCMjtCMERCOzExMDIgMTE2MyAxMUIyOworQjBEQztCMERDOzExMDIgMTE2MyAxMUIzO0IwREM7MTEwMiAxMTYzIDExQjM7CitCMEREO0IwREQ7MTEwMiAxMTYzIDExQjQ7QjBERDsxMTAyIDExNjMgMTFCNDsKK0IwREU7QjBERTsxMTAyIDExNjMgMTFCNTtCMERFOzExMDIgMTE2MyAxMUI1OworQjBERjtCMERGOzExMDIgMTE2MyAxMUI2O0IwREY7MTEwMiAxMTYzIDExQjY7CitCMEUwO0IwRTA7MTEwMiAxMTYzIDExQjc7QjBFMDsxMTAyIDExNjMgMTFCNzsKK0IwRTE7QjBFMTsxMTAyIDExNjMgMTFCODtCMEUxOzExMDIgMTE2MyAxMUI4OworQjBFMjtCMEUyOzExMDIgMTE2MyAxMUI5O0IwRTI7MTEwMiAxMTYzIDExQjk7CitCMEUzO0IwRTM7MTEwMiAxMTYzIDExQkE7QjBFMzsxMTAyIDExNjMgMTFCQTsKK0IwRTQ7QjBFNDsxMTAyIDExNjMgMTFCQjtCMEU0OzExMDIgMTE2MyAxMUJCOworQjBFNTtCMEU1OzExMDIgMTE2MyAxMUJDO0IwRTU7MTEwMiAxMTYzIDExQkM7CitCMEU2O0IwRTY7MTEwMiAxMTYzIDExQkQ7QjBFNjsxMTAyIDExNjMgMTFCRDsKK0IwRTc7QjBFNzsxMTAyIDExNjMgMTFCRTtCMEU3OzExMDIgMTE2MyAxMUJFOworQjBFODtCMEU4OzExMDIgMTE2MyAxMUJGO0IwRTg7MTEwMiAxMTYzIDExQkY7CitCMEU5O0IwRTk7MTEwMiAxMTYzIDExQzA7QjBFOTsxMTAyIDExNjMgMTFDMDsKK0IwRUE7QjBFQTsxMTAyIDExNjMgMTFDMTtCMEVBOzExMDIgMTE2MyAxMUMxOworQjBFQjtCMEVCOzExMDIgMTE2MyAxMUMyO0IwRUI7MTEwMiAxMTYzIDExQzI7CitCMEVDO0IwRUM7MTEwMiAxMTY0O0IwRUM7MTEwMiAxMTY0OworQjBFRDtCMEVEOzExMDIgMTE2NCAxMUE4O0IwRUQ7MTEwMiAxMTY0IDExQTg7CitCMEVFO0IwRUU7MTEwMiAxMTY0IDExQTk7QjBFRTsxMTAyIDExNjQgMTFBOTsKK0IwRUY7QjBFRjsxMTAyIDExNjQgMTFBQTtCMEVGOzExMDIgMTE2NCAxMUFBOworQjBGMDtCMEYwOzExMDIgMTE2NCAxMUFCO0IwRjA7MTEwMiAxMTY0IDExQUI7CitCMEYxO0IwRjE7MTEwMiAxMTY0IDExQUM7QjBGMTsxMTAyIDExNjQgMTFBQzsKK0IwRjI7QjBGMjsxMTAyIDExNjQgMTFBRDtCMEYyOzExMDIgMTE2NCAxMUFEOworQjBGMztCMEYzOzExMDIgMTE2NCAxMUFFO0IwRjM7MTEwMiAxMTY0IDExQUU7CitCMEY0O0IwRjQ7MTEwMiAxMTY0IDExQUY7QjBGNDsxMTAyIDExNjQgMTFBRjsKK0IwRjU7QjBGNTsxMTAyIDExNjQgMTFCMDtCMEY1OzExMDIgMTE2NCAxMUIwOworQjBGNjtCMEY2OzExMDIgMTE2NCAxMUIxO0IwRjY7MTEwMiAxMTY0IDExQjE7CitCMEY3O0IwRjc7MTEwMiAxMTY0IDExQjI7QjBGNzsxMTAyIDExNjQgMTFCMjsKK0IwRjg7QjBGODsxMTAyIDExNjQgMTFCMztCMEY4OzExMDIgMTE2NCAxMUIzOworQjBGOTtCMEY5OzExMDIgMTE2NCAxMUI0O0IwRjk7MTEwMiAxMTY0IDExQjQ7CitCMEZBO0IwRkE7MTEwMiAxMTY0IDExQjU7QjBGQTsxMTAyIDExNjQgMTFCNTsKK0IwRkI7QjBGQjsxMTAyIDExNjQgMTFCNjtCMEZCOzExMDIgMTE2NCAxMUI2OworQjBGQztCMEZDOzExMDIgMTE2NCAxMUI3O0IwRkM7MTEwMiAxMTY0IDExQjc7CitCMEZEO0IwRkQ7MTEwMiAxMTY0IDExQjg7QjBGRDsxMTAyIDExNjQgMTFCODsKK0IwRkU7QjBGRTsxMTAyIDExNjQgMTFCOTtCMEZFOzExMDIgMTE2NCAxMUI5OworQjBGRjtCMEZGOzExMDIgMTE2NCAxMUJBO0IwRkY7MTEwMiAxMTY0IDExQkE7CitCMTAwO0IxMDA7MTEwMiAxMTY0IDExQkI7QjEwMDsxMTAyIDExNjQgMTFCQjsKK0IxMDE7QjEwMTsxMTAyIDExNjQgMTFCQztCMTAxOzExMDIgMTE2NCAxMUJDOworQjEwMjtCMTAyOzExMDIgMTE2NCAxMUJEO0IxMDI7MTEwMiAxMTY0IDExQkQ7CitCMTAzO0IxMDM7MTEwMiAxMTY0IDExQkU7QjEwMzsxMTAyIDExNjQgMTFCRTsKK0IxMDQ7QjEwNDsxMTAyIDExNjQgMTFCRjtCMTA0OzExMDIgMTE2NCAxMUJGOworQjEwNTtCMTA1OzExMDIgMTE2NCAxMUMwO0IxMDU7MTEwMiAxMTY0IDExQzA7CitCMTA2O0IxMDY7MTEwMiAxMTY0IDExQzE7QjEwNjsxMTAyIDExNjQgMTFDMTsKK0IxMDc7QjEwNzsxMTAyIDExNjQgMTFDMjtCMTA3OzExMDIgMTE2NCAxMUMyOworQjEwODtCMTA4OzExMDIgMTE2NTtCMTA4OzExMDIgMTE2NTsKK0IxMDk7QjEwOTsxMTAyIDExNjUgMTFBODtCMTA5OzExMDIgMTE2NSAxMUE4OworQjEwQTtCMTBBOzExMDIgMTE2NSAxMUE5O0IxMEE7MTEwMiAxMTY1IDExQTk7CitCMTBCO0IxMEI7MTEwMiAxMTY1IDExQUE7QjEwQjsxMTAyIDExNjUgMTFBQTsKK0IxMEM7QjEwQzsxMTAyIDExNjUgMTFBQjtCMTBDOzExMDIgMTE2NSAxMUFCOworQjEwRDtCMTBEOzExMDIgMTE2NSAxMUFDO0IxMEQ7MTEwMiAxMTY1IDExQUM7CitCMTBFO0IxMEU7MTEwMiAxMTY1IDExQUQ7QjEwRTsxMTAyIDExNjUgMTFBRDsKK0IxMEY7QjEwRjsxMTAyIDExNjUgMTFBRTtCMTBGOzExMDIgMTE2NSAxMUFFOworQjExMDtCMTEwOzExMDIgMTE2NSAxMUFGO0IxMTA7MTEwMiAxMTY1IDExQUY7CitCMTExO0IxMTE7MTEwMiAxMTY1IDExQjA7QjExMTsxMTAyIDExNjUgMTFCMDsKK0IxMTI7QjExMjsxMTAyIDExNjUgMTFCMTtCMTEyOzExMDIgMTE2NSAxMUIxOworQjExMztCMTEzOzExMDIgMTE2NSAxMUIyO0IxMTM7MTEwMiAxMTY1IDExQjI7CitCMTE0O0IxMTQ7MTEwMiAxMTY1IDExQjM7QjExNDsxMTAyIDExNjUgMTFCMzsKK0IxMTU7QjExNTsxMTAyIDExNjUgMTFCNDtCMTE1OzExMDIgMTE2NSAxMUI0OworQjExNjtCMTE2OzExMDIgMTE2NSAxMUI1O0IxMTY7MTEwMiAxMTY1IDExQjU7CitCMTE3O0IxMTc7MTEwMiAxMTY1IDExQjY7QjExNzsxMTAyIDExNjUgMTFCNjsKK0IxMTg7QjExODsxMTAyIDExNjUgMTFCNztCMTE4OzExMDIgMTE2NSAxMUI3OworQjExOTtCMTE5OzExMDIgMTE2NSAxMUI4O0IxMTk7MTEwMiAxMTY1IDExQjg7CitCMTFBO0IxMUE7MTEwMiAxMTY1IDExQjk7QjExQTsxMTAyIDExNjUgMTFCOTsKK0IxMUI7QjExQjsxMTAyIDExNjUgMTFCQTtCMTFCOzExMDIgMTE2NSAxMUJBOworQjExQztCMTFDOzExMDIgMTE2NSAxMUJCO0IxMUM7MTEwMiAxMTY1IDExQkI7CitCMTFEO0IxMUQ7MTEwMiAxMTY1IDExQkM7QjExRDsxMTAyIDExNjUgMTFCQzsKK0IxMUU7QjExRTsxMTAyIDExNjUgMTFCRDtCMTFFOzExMDIgMTE2NSAxMUJEOworQjExRjtCMTFGOzExMDIgMTE2NSAxMUJFO0IxMUY7MTEwMiAxMTY1IDExQkU7CitCMTIwO0IxMjA7MTEwMiAxMTY1IDExQkY7QjEyMDsxMTAyIDExNjUgMTFCRjsKK0IxMjE7QjEyMTsxMTAyIDExNjUgMTFDMDtCMTIxOzExMDIgMTE2NSAxMUMwOworQjEyMjtCMTIyOzExMDIgMTE2NSAxMUMxO0IxMjI7MTEwMiAxMTY1IDExQzE7CitCMTIzO0IxMjM7MTEwMiAxMTY1IDExQzI7QjEyMzsxMTAyIDExNjUgMTFDMjsKK0IxMjQ7QjEyNDsxMTAyIDExNjY7QjEyNDsxMTAyIDExNjY7CitCMTI1O0IxMjU7MTEwMiAxMTY2IDExQTg7QjEyNTsxMTAyIDExNjYgMTFBODsKK0IxMjY7QjEyNjsxMTAyIDExNjYgMTFBOTtCMTI2OzExMDIgMTE2NiAxMUE5OworQjEyNztCMTI3OzExMDIgMTE2NiAxMUFBO0IxMjc7MTEwMiAxMTY2IDExQUE7CitCMTI4O0IxMjg7MTEwMiAxMTY2IDExQUI7QjEyODsxMTAyIDExNjYgMTFBQjsKK0IxMjk7QjEyOTsxMTAyIDExNjYgMTFBQztCMTI5OzExMDIgMTE2NiAxMUFDOworQjEyQTtCMTJBOzExMDIgMTE2NiAxMUFEO0IxMkE7MTEwMiAxMTY2IDExQUQ7CitCMTJCO0IxMkI7MTEwMiAxMTY2IDExQUU7QjEyQjsxMTAyIDExNjYgMTFBRTsKK0IxMkM7QjEyQzsxMTAyIDExNjYgMTFBRjtCMTJDOzExMDIgMTE2NiAxMUFGOworQjEyRDtCMTJEOzExMDIgMTE2NiAxMUIwO0IxMkQ7MTEwMiAxMTY2IDExQjA7CitCMTJFO0IxMkU7MTEwMiAxMTY2IDExQjE7QjEyRTsxMTAyIDExNjYgMTFCMTsKK0IxMkY7QjEyRjsxMTAyIDExNjYgMTFCMjtCMTJGOzExMDIgMTE2NiAxMUIyOworQjEzMDtCMTMwOzExMDIgMTE2NiAxMUIzO0IxMzA7MTEwMiAxMTY2IDExQjM7CitCMTMxO0IxMzE7MTEwMiAxMTY2IDExQjQ7QjEzMTsxMTAyIDExNjYgMTFCNDsKK0IxMzI7QjEzMjsxMTAyIDExNjYgMTFCNTtCMTMyOzExMDIgMTE2NiAxMUI1OworQjEzMztCMTMzOzExMDIgMTE2NiAxMUI2O0IxMzM7MTEwMiAxMTY2IDExQjY7CitCMTM0O0IxMzQ7MTEwMiAxMTY2IDExQjc7QjEzNDsxMTAyIDExNjYgMTFCNzsKK0IxMzU7QjEzNTsxMTAyIDExNjYgMTFCODtCMTM1OzExMDIgMTE2NiAxMUI4OworQjEzNjtCMTM2OzExMDIgMTE2NiAxMUI5O0IxMzY7MTEwMiAxMTY2IDExQjk7CitCMTM3O0IxMzc7MTEwMiAxMTY2IDExQkE7QjEzNzsxMTAyIDExNjYgMTFCQTsKK0IxMzg7QjEzODsxMTAyIDExNjYgMTFCQjtCMTM4OzExMDIgMTE2NiAxMUJCOworQjEzOTtCMTM5OzExMDIgMTE2NiAxMUJDO0IxMzk7MTEwMiAxMTY2IDExQkM7CitCMTNBO0IxM0E7MTEwMiAxMTY2IDExQkQ7QjEzQTsxMTAyIDExNjYgMTFCRDsKK0IxM0I7QjEzQjsxMTAyIDExNjYgMTFCRTtCMTNCOzExMDIgMTE2NiAxMUJFOworQjEzQztCMTNDOzExMDIgMTE2NiAxMUJGO0IxM0M7MTEwMiAxMTY2IDExQkY7CitCMTNEO0IxM0Q7MTEwMiAxMTY2IDExQzA7QjEzRDsxMTAyIDExNjYgMTFDMDsKK0IxM0U7QjEzRTsxMTAyIDExNjYgMTFDMTtCMTNFOzExMDIgMTE2NiAxMUMxOworQjEzRjtCMTNGOzExMDIgMTE2NiAxMUMyO0IxM0Y7MTEwMiAxMTY2IDExQzI7CitCMTQwO0IxNDA7MTEwMiAxMTY3O0IxNDA7MTEwMiAxMTY3OworQjE0MTtCMTQxOzExMDIgMTE2NyAxMUE4O0IxNDE7MTEwMiAxMTY3IDExQTg7CitCMTQyO0IxNDI7MTEwMiAxMTY3IDExQTk7QjE0MjsxMTAyIDExNjcgMTFBOTsKK0IxNDM7QjE0MzsxMTAyIDExNjcgMTFBQTtCMTQzOzExMDIgMTE2NyAxMUFBOworQjE0NDtCMTQ0OzExMDIgMTE2NyAxMUFCO0IxNDQ7MTEwMiAxMTY3IDExQUI7CitCMTQ1O0IxNDU7MTEwMiAxMTY3IDExQUM7QjE0NTsxMTAyIDExNjcgMTFBQzsKK0IxNDY7QjE0NjsxMTAyIDExNjcgMTFBRDtCMTQ2OzExMDIgMTE2NyAxMUFEOworQjE0NztCMTQ3OzExMDIgMTE2NyAxMUFFO0IxNDc7MTEwMiAxMTY3IDExQUU7CitCMTQ4O0IxNDg7MTEwMiAxMTY3IDExQUY7QjE0ODsxMTAyIDExNjcgMTFBRjsKK0IxNDk7QjE0OTsxMTAyIDExNjcgMTFCMDtCMTQ5OzExMDIgMTE2NyAxMUIwOworQjE0QTtCMTRBOzExMDIgMTE2NyAxMUIxO0IxNEE7MTEwMiAxMTY3IDExQjE7CitCMTRCO0IxNEI7MTEwMiAxMTY3IDExQjI7QjE0QjsxMTAyIDExNjcgMTFCMjsKK0IxNEM7QjE0QzsxMTAyIDExNjcgMTFCMztCMTRDOzExMDIgMTE2NyAxMUIzOworQjE0RDtCMTREOzExMDIgMTE2NyAxMUI0O0IxNEQ7MTEwMiAxMTY3IDExQjQ7CitCMTRFO0IxNEU7MTEwMiAxMTY3IDExQjU7QjE0RTsxMTAyIDExNjcgMTFCNTsKK0IxNEY7QjE0RjsxMTAyIDExNjcgMTFCNjtCMTRGOzExMDIgMTE2NyAxMUI2OworQjE1MDtCMTUwOzExMDIgMTE2NyAxMUI3O0IxNTA7MTEwMiAxMTY3IDExQjc7CitCMTUxO0IxNTE7MTEwMiAxMTY3IDExQjg7QjE1MTsxMTAyIDExNjcgMTFCODsKK0IxNTI7QjE1MjsxMTAyIDExNjcgMTFCOTtCMTUyOzExMDIgMTE2NyAxMUI5OworQjE1MztCMTUzOzExMDIgMTE2NyAxMUJBO0IxNTM7MTEwMiAxMTY3IDExQkE7CitCMTU0O0IxNTQ7MTEwMiAxMTY3IDExQkI7QjE1NDsxMTAyIDExNjcgMTFCQjsKK0IxNTU7QjE1NTsxMTAyIDExNjcgMTFCQztCMTU1OzExMDIgMTE2NyAxMUJDOworQjE1NjtCMTU2OzExMDIgMTE2NyAxMUJEO0IxNTY7MTEwMiAxMTY3IDExQkQ7CitCMTU3O0IxNTc7MTEwMiAxMTY3IDExQkU7QjE1NzsxMTAyIDExNjcgMTFCRTsKK0IxNTg7QjE1ODsxMTAyIDExNjcgMTFCRjtCMTU4OzExMDIgMTE2NyAxMUJGOworQjE1OTtCMTU5OzExMDIgMTE2NyAxMUMwO0IxNTk7MTEwMiAxMTY3IDExQzA7CitCMTVBO0IxNUE7MTEwMiAxMTY3IDExQzE7QjE1QTsxMTAyIDExNjcgMTFDMTsKK0IxNUI7QjE1QjsxMTAyIDExNjcgMTFDMjtCMTVCOzExMDIgMTE2NyAxMUMyOworQjE1QztCMTVDOzExMDIgMTE2ODtCMTVDOzExMDIgMTE2ODsKK0IxNUQ7QjE1RDsxMTAyIDExNjggMTFBODtCMTVEOzExMDIgMTE2OCAxMUE4OworQjE1RTtCMTVFOzExMDIgMTE2OCAxMUE5O0IxNUU7MTEwMiAxMTY4IDExQTk7CitCMTVGO0IxNUY7MTEwMiAxMTY4IDExQUE7QjE1RjsxMTAyIDExNjggMTFBQTsKK0IxNjA7QjE2MDsxMTAyIDExNjggMTFBQjtCMTYwOzExMDIgMTE2OCAxMUFCOworQjE2MTtCMTYxOzExMDIgMTE2OCAxMUFDO0IxNjE7MTEwMiAxMTY4IDExQUM7CitCMTYyO0IxNjI7MTEwMiAxMTY4IDExQUQ7QjE2MjsxMTAyIDExNjggMTFBRDsKK0IxNjM7QjE2MzsxMTAyIDExNjggMTFBRTtCMTYzOzExMDIgMTE2OCAxMUFFOworQjE2NDtCMTY0OzExMDIgMTE2OCAxMUFGO0IxNjQ7MTEwMiAxMTY4IDExQUY7CitCMTY1O0IxNjU7MTEwMiAxMTY4IDExQjA7QjE2NTsxMTAyIDExNjggMTFCMDsKK0IxNjY7QjE2NjsxMTAyIDExNjggMTFCMTtCMTY2OzExMDIgMTE2OCAxMUIxOworQjE2NztCMTY3OzExMDIgMTE2OCAxMUIyO0IxNjc7MTEwMiAxMTY4IDExQjI7CitCMTY4O0IxNjg7MTEwMiAxMTY4IDExQjM7QjE2ODsxMTAyIDExNjggMTFCMzsKK0IxNjk7QjE2OTsxMTAyIDExNjggMTFCNDtCMTY5OzExMDIgMTE2OCAxMUI0OworQjE2QTtCMTZBOzExMDIgMTE2OCAxMUI1O0IxNkE7MTEwMiAxMTY4IDExQjU7CitCMTZCO0IxNkI7MTEwMiAxMTY4IDExQjY7QjE2QjsxMTAyIDExNjggMTFCNjsKK0IxNkM7QjE2QzsxMTAyIDExNjggMTFCNztCMTZDOzExMDIgMTE2OCAxMUI3OworQjE2RDtCMTZEOzExMDIgMTE2OCAxMUI4O0IxNkQ7MTEwMiAxMTY4IDExQjg7CitCMTZFO0IxNkU7MTEwMiAxMTY4IDExQjk7QjE2RTsxMTAyIDExNjggMTFCOTsKK0IxNkY7QjE2RjsxMTAyIDExNjggMTFCQTtCMTZGOzExMDIgMTE2OCAxMUJBOworQjE3MDtCMTcwOzExMDIgMTE2OCAxMUJCO0IxNzA7MTEwMiAxMTY4IDExQkI7CitCMTcxO0IxNzE7MTEwMiAxMTY4IDExQkM7QjE3MTsxMTAyIDExNjggMTFCQzsKK0IxNzI7QjE3MjsxMTAyIDExNjggMTFCRDtCMTcyOzExMDIgMTE2OCAxMUJEOworQjE3MztCMTczOzExMDIgMTE2OCAxMUJFO0IxNzM7MTEwMiAxMTY4IDExQkU7CitCMTc0O0IxNzQ7MTEwMiAxMTY4IDExQkY7QjE3NDsxMTAyIDExNjggMTFCRjsKK0IxNzU7QjE3NTsxMTAyIDExNjggMTFDMDtCMTc1OzExMDIgMTE2OCAxMUMwOworQjE3NjtCMTc2OzExMDIgMTE2OCAxMUMxO0IxNzY7MTEwMiAxMTY4IDExQzE7CitCMTc3O0IxNzc7MTEwMiAxMTY4IDExQzI7QjE3NzsxMTAyIDExNjggMTFDMjsKK0IxNzg7QjE3ODsxMTAyIDExNjk7QjE3ODsxMTAyIDExNjk7CitCMTc5O0IxNzk7MTEwMiAxMTY5IDExQTg7QjE3OTsxMTAyIDExNjkgMTFBODsKK0IxN0E7QjE3QTsxMTAyIDExNjkgMTFBOTtCMTdBOzExMDIgMTE2OSAxMUE5OworQjE3QjtCMTdCOzExMDIgMTE2OSAxMUFBO0IxN0I7MTEwMiAxMTY5IDExQUE7CitCMTdDO0IxN0M7MTEwMiAxMTY5IDExQUI7QjE3QzsxMTAyIDExNjkgMTFBQjsKK0IxN0Q7QjE3RDsxMTAyIDExNjkgMTFBQztCMTdEOzExMDIgMTE2OSAxMUFDOworQjE3RTtCMTdFOzExMDIgMTE2OSAxMUFEO0IxN0U7MTEwMiAxMTY5IDExQUQ7CitCMTdGO0IxN0Y7MTEwMiAxMTY5IDExQUU7QjE3RjsxMTAyIDExNjkgMTFBRTsKK0IxODA7QjE4MDsxMTAyIDExNjkgMTFBRjtCMTgwOzExMDIgMTE2OSAxMUFGOworQjE4MTtCMTgxOzExMDIgMTE2OSAxMUIwO0IxODE7MTEwMiAxMTY5IDExQjA7CitCMTgyO0IxODI7MTEwMiAxMTY5IDExQjE7QjE4MjsxMTAyIDExNjkgMTFCMTsKK0IxODM7QjE4MzsxMTAyIDExNjkgMTFCMjtCMTgzOzExMDIgMTE2OSAxMUIyOworQjE4NDtCMTg0OzExMDIgMTE2OSAxMUIzO0IxODQ7MTEwMiAxMTY5IDExQjM7CitCMTg1O0IxODU7MTEwMiAxMTY5IDExQjQ7QjE4NTsxMTAyIDExNjkgMTFCNDsKK0IxODY7QjE4NjsxMTAyIDExNjkgMTFCNTtCMTg2OzExMDIgMTE2OSAxMUI1OworQjE4NztCMTg3OzExMDIgMTE2OSAxMUI2O0IxODc7MTEwMiAxMTY5IDExQjY7CitCMTg4O0IxODg7MTEwMiAxMTY5IDExQjc7QjE4ODsxMTAyIDExNjkgMTFCNzsKK0IxODk7QjE4OTsxMTAyIDExNjkgMTFCODtCMTg5OzExMDIgMTE2OSAxMUI4OworQjE4QTtCMThBOzExMDIgMTE2OSAxMUI5O0IxOEE7MTEwMiAxMTY5IDExQjk7CitCMThCO0IxOEI7MTEwMiAxMTY5IDExQkE7QjE4QjsxMTAyIDExNjkgMTFCQTsKK0IxOEM7QjE4QzsxMTAyIDExNjkgMTFCQjtCMThDOzExMDIgMTE2OSAxMUJCOworQjE4RDtCMThEOzExMDIgMTE2OSAxMUJDO0IxOEQ7MTEwMiAxMTY5IDExQkM7CitCMThFO0IxOEU7MTEwMiAxMTY5IDExQkQ7QjE4RTsxMTAyIDExNjkgMTFCRDsKK0IxOEY7QjE4RjsxMTAyIDExNjkgMTFCRTtCMThGOzExMDIgMTE2OSAxMUJFOworQjE5MDtCMTkwOzExMDIgMTE2OSAxMUJGO0IxOTA7MTEwMiAxMTY5IDExQkY7CitCMTkxO0IxOTE7MTEwMiAxMTY5IDExQzA7QjE5MTsxMTAyIDExNjkgMTFDMDsKK0IxOTI7QjE5MjsxMTAyIDExNjkgMTFDMTtCMTkyOzExMDIgMTE2OSAxMUMxOworQjE5MztCMTkzOzExMDIgMTE2OSAxMUMyO0IxOTM7MTEwMiAxMTY5IDExQzI7CitCMTk0O0IxOTQ7MTEwMiAxMTZBO0IxOTQ7MTEwMiAxMTZBOworQjE5NTtCMTk1OzExMDIgMTE2QSAxMUE4O0IxOTU7MTEwMiAxMTZBIDExQTg7CitCMTk2O0IxOTY7MTEwMiAxMTZBIDExQTk7QjE5NjsxMTAyIDExNkEgMTFBOTsKK0IxOTc7QjE5NzsxMTAyIDExNkEgMTFBQTtCMTk3OzExMDIgMTE2QSAxMUFBOworQjE5ODtCMTk4OzExMDIgMTE2QSAxMUFCO0IxOTg7MTEwMiAxMTZBIDExQUI7CitCMTk5O0IxOTk7MTEwMiAxMTZBIDExQUM7QjE5OTsxMTAyIDExNkEgMTFBQzsKK0IxOUE7QjE5QTsxMTAyIDExNkEgMTFBRDtCMTlBOzExMDIgMTE2QSAxMUFEOworQjE5QjtCMTlCOzExMDIgMTE2QSAxMUFFO0IxOUI7MTEwMiAxMTZBIDExQUU7CitCMTlDO0IxOUM7MTEwMiAxMTZBIDExQUY7QjE5QzsxMTAyIDExNkEgMTFBRjsKK0IxOUQ7QjE5RDsxMTAyIDExNkEgMTFCMDtCMTlEOzExMDIgMTE2QSAxMUIwOworQjE5RTtCMTlFOzExMDIgMTE2QSAxMUIxO0IxOUU7MTEwMiAxMTZBIDExQjE7CitCMTlGO0IxOUY7MTEwMiAxMTZBIDExQjI7QjE5RjsxMTAyIDExNkEgMTFCMjsKK0IxQTA7QjFBMDsxMTAyIDExNkEgMTFCMztCMUEwOzExMDIgMTE2QSAxMUIzOworQjFBMTtCMUExOzExMDIgMTE2QSAxMUI0O0IxQTE7MTEwMiAxMTZBIDExQjQ7CitCMUEyO0IxQTI7MTEwMiAxMTZBIDExQjU7QjFBMjsxMTAyIDExNkEgMTFCNTsKK0IxQTM7QjFBMzsxMTAyIDExNkEgMTFCNjtCMUEzOzExMDIgMTE2QSAxMUI2OworQjFBNDtCMUE0OzExMDIgMTE2QSAxMUI3O0IxQTQ7MTEwMiAxMTZBIDExQjc7CitCMUE1O0IxQTU7MTEwMiAxMTZBIDExQjg7QjFBNTsxMTAyIDExNkEgMTFCODsKK0IxQTY7QjFBNjsxMTAyIDExNkEgMTFCOTtCMUE2OzExMDIgMTE2QSAxMUI5OworQjFBNztCMUE3OzExMDIgMTE2QSAxMUJBO0IxQTc7MTEwMiAxMTZBIDExQkE7CitCMUE4O0IxQTg7MTEwMiAxMTZBIDExQkI7QjFBODsxMTAyIDExNkEgMTFCQjsKK0IxQTk7QjFBOTsxMTAyIDExNkEgMTFCQztCMUE5OzExMDIgMTE2QSAxMUJDOworQjFBQTtCMUFBOzExMDIgMTE2QSAxMUJEO0IxQUE7MTEwMiAxMTZBIDExQkQ7CitCMUFCO0IxQUI7MTEwMiAxMTZBIDExQkU7QjFBQjsxMTAyIDExNkEgMTFCRTsKK0IxQUM7QjFBQzsxMTAyIDExNkEgMTFCRjtCMUFDOzExMDIgMTE2QSAxMUJGOworQjFBRDtCMUFEOzExMDIgMTE2QSAxMUMwO0IxQUQ7MTEwMiAxMTZBIDExQzA7CitCMUFFO0IxQUU7MTEwMiAxMTZBIDExQzE7QjFBRTsxMTAyIDExNkEgMTFDMTsKK0IxQUY7QjFBRjsxMTAyIDExNkEgMTFDMjtCMUFGOzExMDIgMTE2QSAxMUMyOworQjFCMDtCMUIwOzExMDIgMTE2QjtCMUIwOzExMDIgMTE2QjsKK0IxQjE7QjFCMTsxMTAyIDExNkIgMTFBODtCMUIxOzExMDIgMTE2QiAxMUE4OworQjFCMjtCMUIyOzExMDIgMTE2QiAxMUE5O0IxQjI7MTEwMiAxMTZCIDExQTk7CitCMUIzO0IxQjM7MTEwMiAxMTZCIDExQUE7QjFCMzsxMTAyIDExNkIgMTFBQTsKK0IxQjQ7QjFCNDsxMTAyIDExNkIgMTFBQjtCMUI0OzExMDIgMTE2QiAxMUFCOworQjFCNTtCMUI1OzExMDIgMTE2QiAxMUFDO0IxQjU7MTEwMiAxMTZCIDExQUM7CitCMUI2O0IxQjY7MTEwMiAxMTZCIDExQUQ7QjFCNjsxMTAyIDExNkIgMTFBRDsKK0IxQjc7QjFCNzsxMTAyIDExNkIgMTFBRTtCMUI3OzExMDIgMTE2QiAxMUFFOworQjFCODtCMUI4OzExMDIgMTE2QiAxMUFGO0IxQjg7MTEwMiAxMTZCIDExQUY7CitCMUI5O0IxQjk7MTEwMiAxMTZCIDExQjA7QjFCOTsxMTAyIDExNkIgMTFCMDsKK0IxQkE7QjFCQTsxMTAyIDExNkIgMTFCMTtCMUJBOzExMDIgMTE2QiAxMUIxOworQjFCQjtCMUJCOzExMDIgMTE2QiAxMUIyO0IxQkI7MTEwMiAxMTZCIDExQjI7CitCMUJDO0IxQkM7MTEwMiAxMTZCIDExQjM7QjFCQzsxMTAyIDExNkIgMTFCMzsKK0IxQkQ7QjFCRDsxMTAyIDExNkIgMTFCNDtCMUJEOzExMDIgMTE2QiAxMUI0OworQjFCRTtCMUJFOzExMDIgMTE2QiAxMUI1O0IxQkU7MTEwMiAxMTZCIDExQjU7CitCMUJGO0IxQkY7MTEwMiAxMTZCIDExQjY7QjFCRjsxMTAyIDExNkIgMTFCNjsKK0IxQzA7QjFDMDsxMTAyIDExNkIgMTFCNztCMUMwOzExMDIgMTE2QiAxMUI3OworQjFDMTtCMUMxOzExMDIgMTE2QiAxMUI4O0IxQzE7MTEwMiAxMTZCIDExQjg7CitCMUMyO0IxQzI7MTEwMiAxMTZCIDExQjk7QjFDMjsxMTAyIDExNkIgMTFCOTsKK0IxQzM7QjFDMzsxMTAyIDExNkIgMTFCQTtCMUMzOzExMDIgMTE2QiAxMUJBOworQjFDNDtCMUM0OzExMDIgMTE2QiAxMUJCO0IxQzQ7MTEwMiAxMTZCIDExQkI7CitCMUM1O0IxQzU7MTEwMiAxMTZCIDExQkM7QjFDNTsxMTAyIDExNkIgMTFCQzsKK0IxQzY7QjFDNjsxMTAyIDExNkIgMTFCRDtCMUM2OzExMDIgMTE2QiAxMUJEOworQjFDNztCMUM3OzExMDIgMTE2QiAxMUJFO0IxQzc7MTEwMiAxMTZCIDExQkU7CitCMUM4O0IxQzg7MTEwMiAxMTZCIDExQkY7QjFDODsxMTAyIDExNkIgMTFCRjsKK0IxQzk7QjFDOTsxMTAyIDExNkIgMTFDMDtCMUM5OzExMDIgMTE2QiAxMUMwOworQjFDQTtCMUNBOzExMDIgMTE2QiAxMUMxO0IxQ0E7MTEwMiAxMTZCIDExQzE7CitCMUNCO0IxQ0I7MTEwMiAxMTZCIDExQzI7QjFDQjsxMTAyIDExNkIgMTFDMjsKK0IxQ0M7QjFDQzsxMTAyIDExNkM7QjFDQzsxMTAyIDExNkM7CitCMUNEO0IxQ0Q7MTEwMiAxMTZDIDExQTg7QjFDRDsxMTAyIDExNkMgMTFBODsKK0IxQ0U7QjFDRTsxMTAyIDExNkMgMTFBOTtCMUNFOzExMDIgMTE2QyAxMUE5OworQjFDRjtCMUNGOzExMDIgMTE2QyAxMUFBO0IxQ0Y7MTEwMiAxMTZDIDExQUE7CitCMUQwO0IxRDA7MTEwMiAxMTZDIDExQUI7QjFEMDsxMTAyIDExNkMgMTFBQjsKK0IxRDE7QjFEMTsxMTAyIDExNkMgMTFBQztCMUQxOzExMDIgMTE2QyAxMUFDOworQjFEMjtCMUQyOzExMDIgMTE2QyAxMUFEO0IxRDI7MTEwMiAxMTZDIDExQUQ7CitCMUQzO0IxRDM7MTEwMiAxMTZDIDExQUU7QjFEMzsxMTAyIDExNkMgMTFBRTsKK0IxRDQ7QjFENDsxMTAyIDExNkMgMTFBRjtCMUQ0OzExMDIgMTE2QyAxMUFGOworQjFENTtCMUQ1OzExMDIgMTE2QyAxMUIwO0IxRDU7MTEwMiAxMTZDIDExQjA7CitCMUQ2O0IxRDY7MTEwMiAxMTZDIDExQjE7QjFENjsxMTAyIDExNkMgMTFCMTsKK0IxRDc7QjFENzsxMTAyIDExNkMgMTFCMjtCMUQ3OzExMDIgMTE2QyAxMUIyOworQjFEODtCMUQ4OzExMDIgMTE2QyAxMUIzO0IxRDg7MTEwMiAxMTZDIDExQjM7CitCMUQ5O0IxRDk7MTEwMiAxMTZDIDExQjQ7QjFEOTsxMTAyIDExNkMgMTFCNDsKK0IxREE7QjFEQTsxMTAyIDExNkMgMTFCNTtCMURBOzExMDIgMTE2QyAxMUI1OworQjFEQjtCMURCOzExMDIgMTE2QyAxMUI2O0IxREI7MTEwMiAxMTZDIDExQjY7CitCMURDO0IxREM7MTEwMiAxMTZDIDExQjc7QjFEQzsxMTAyIDExNkMgMTFCNzsKK0IxREQ7QjFERDsxMTAyIDExNkMgMTFCODtCMUREOzExMDIgMTE2QyAxMUI4OworQjFERTtCMURFOzExMDIgMTE2QyAxMUI5O0IxREU7MTEwMiAxMTZDIDExQjk7CitCMURGO0IxREY7MTEwMiAxMTZDIDExQkE7QjFERjsxMTAyIDExNkMgMTFCQTsKK0IxRTA7QjFFMDsxMTAyIDExNkMgMTFCQjtCMUUwOzExMDIgMTE2QyAxMUJCOworQjFFMTtCMUUxOzExMDIgMTE2QyAxMUJDO0IxRTE7MTEwMiAxMTZDIDExQkM7CitCMUUyO0IxRTI7MTEwMiAxMTZDIDExQkQ7QjFFMjsxMTAyIDExNkMgMTFCRDsKK0IxRTM7QjFFMzsxMTAyIDExNkMgMTFCRTtCMUUzOzExMDIgMTE2QyAxMUJFOworQjFFNDtCMUU0OzExMDIgMTE2QyAxMUJGO0IxRTQ7MTEwMiAxMTZDIDExQkY7CitCMUU1O0IxRTU7MTEwMiAxMTZDIDExQzA7QjFFNTsxMTAyIDExNkMgMTFDMDsKK0IxRTY7QjFFNjsxMTAyIDExNkMgMTFDMTtCMUU2OzExMDIgMTE2QyAxMUMxOworQjFFNztCMUU3OzExMDIgMTE2QyAxMUMyO0IxRTc7MTEwMiAxMTZDIDExQzI7CitCMUU4O0IxRTg7MTEwMiAxMTZEO0IxRTg7MTEwMiAxMTZEOworQjFFOTtCMUU5OzExMDIgMTE2RCAxMUE4O0IxRTk7MTEwMiAxMTZEIDExQTg7CitCMUVBO0IxRUE7MTEwMiAxMTZEIDExQTk7QjFFQTsxMTAyIDExNkQgMTFBOTsKK0IxRUI7QjFFQjsxMTAyIDExNkQgMTFBQTtCMUVCOzExMDIgMTE2RCAxMUFBOworQjFFQztCMUVDOzExMDIgMTE2RCAxMUFCO0IxRUM7MTEwMiAxMTZEIDExQUI7CitCMUVEO0IxRUQ7MTEwMiAxMTZEIDExQUM7QjFFRDsxMTAyIDExNkQgMTFBQzsKK0IxRUU7QjFFRTsxMTAyIDExNkQgMTFBRDtCMUVFOzExMDIgMTE2RCAxMUFEOworQjFFRjtCMUVGOzExMDIgMTE2RCAxMUFFO0IxRUY7MTEwMiAxMTZEIDExQUU7CitCMUYwO0IxRjA7MTEwMiAxMTZEIDExQUY7QjFGMDsxMTAyIDExNkQgMTFBRjsKK0IxRjE7QjFGMTsxMTAyIDExNkQgMTFCMDtCMUYxOzExMDIgMTE2RCAxMUIwOworQjFGMjtCMUYyOzExMDIgMTE2RCAxMUIxO0IxRjI7MTEwMiAxMTZEIDExQjE7CitCMUYzO0IxRjM7MTEwMiAxMTZEIDExQjI7QjFGMzsxMTAyIDExNkQgMTFCMjsKK0IxRjQ7QjFGNDsxMTAyIDExNkQgMTFCMztCMUY0OzExMDIgMTE2RCAxMUIzOworQjFGNTtCMUY1OzExMDIgMTE2RCAxMUI0O0IxRjU7MTEwMiAxMTZEIDExQjQ7CitCMUY2O0IxRjY7MTEwMiAxMTZEIDExQjU7QjFGNjsxMTAyIDExNkQgMTFCNTsKK0IxRjc7QjFGNzsxMTAyIDExNkQgMTFCNjtCMUY3OzExMDIgMTE2RCAxMUI2OworQjFGODtCMUY4OzExMDIgMTE2RCAxMUI3O0IxRjg7MTEwMiAxMTZEIDExQjc7CitCMUY5O0IxRjk7MTEwMiAxMTZEIDExQjg7QjFGOTsxMTAyIDExNkQgMTFCODsKK0IxRkE7QjFGQTsxMTAyIDExNkQgMTFCOTtCMUZBOzExMDIgMTE2RCAxMUI5OworQjFGQjtCMUZCOzExMDIgMTE2RCAxMUJBO0IxRkI7MTEwMiAxMTZEIDExQkE7CitCMUZDO0IxRkM7MTEwMiAxMTZEIDExQkI7QjFGQzsxMTAyIDExNkQgMTFCQjsKK0IxRkQ7QjFGRDsxMTAyIDExNkQgMTFCQztCMUZEOzExMDIgMTE2RCAxMUJDOworQjFGRTtCMUZFOzExMDIgMTE2RCAxMUJEO0IxRkU7MTEwMiAxMTZEIDExQkQ7CitCMUZGO0IxRkY7MTEwMiAxMTZEIDExQkU7QjFGRjsxMTAyIDExNkQgMTFCRTsKK0IyMDA7QjIwMDsxMTAyIDExNkQgMTFCRjtCMjAwOzExMDIgMTE2RCAxMUJGOworQjIwMTtCMjAxOzExMDIgMTE2RCAxMUMwO0IyMDE7MTEwMiAxMTZEIDExQzA7CitCMjAyO0IyMDI7MTEwMiAxMTZEIDExQzE7QjIwMjsxMTAyIDExNkQgMTFDMTsKK0IyMDM7QjIwMzsxMTAyIDExNkQgMTFDMjtCMjAzOzExMDIgMTE2RCAxMUMyOworQjIwNDtCMjA0OzExMDIgMTE2RTtCMjA0OzExMDIgMTE2RTsKK0IyMDU7QjIwNTsxMTAyIDExNkUgMTFBODtCMjA1OzExMDIgMTE2RSAxMUE4OworQjIwNjtCMjA2OzExMDIgMTE2RSAxMUE5O0IyMDY7MTEwMiAxMTZFIDExQTk7CitCMjA3O0IyMDc7MTEwMiAxMTZFIDExQUE7QjIwNzsxMTAyIDExNkUgMTFBQTsKK0IyMDg7QjIwODsxMTAyIDExNkUgMTFBQjtCMjA4OzExMDIgMTE2RSAxMUFCOworQjIwOTtCMjA5OzExMDIgMTE2RSAxMUFDO0IyMDk7MTEwMiAxMTZFIDExQUM7CitCMjBBO0IyMEE7MTEwMiAxMTZFIDExQUQ7QjIwQTsxMTAyIDExNkUgMTFBRDsKK0IyMEI7QjIwQjsxMTAyIDExNkUgMTFBRTtCMjBCOzExMDIgMTE2RSAxMUFFOworQjIwQztCMjBDOzExMDIgMTE2RSAxMUFGO0IyMEM7MTEwMiAxMTZFIDExQUY7CitCMjBEO0IyMEQ7MTEwMiAxMTZFIDExQjA7QjIwRDsxMTAyIDExNkUgMTFCMDsKK0IyMEU7QjIwRTsxMTAyIDExNkUgMTFCMTtCMjBFOzExMDIgMTE2RSAxMUIxOworQjIwRjtCMjBGOzExMDIgMTE2RSAxMUIyO0IyMEY7MTEwMiAxMTZFIDExQjI7CitCMjEwO0IyMTA7MTEwMiAxMTZFIDExQjM7QjIxMDsxMTAyIDExNkUgMTFCMzsKK0IyMTE7QjIxMTsxMTAyIDExNkUgMTFCNDtCMjExOzExMDIgMTE2RSAxMUI0OworQjIxMjtCMjEyOzExMDIgMTE2RSAxMUI1O0IyMTI7MTEwMiAxMTZFIDExQjU7CitCMjEzO0IyMTM7MTEwMiAxMTZFIDExQjY7QjIxMzsxMTAyIDExNkUgMTFCNjsKK0IyMTQ7QjIxNDsxMTAyIDExNkUgMTFCNztCMjE0OzExMDIgMTE2RSAxMUI3OworQjIxNTtCMjE1OzExMDIgMTE2RSAxMUI4O0IyMTU7MTEwMiAxMTZFIDExQjg7CitCMjE2O0IyMTY7MTEwMiAxMTZFIDExQjk7QjIxNjsxMTAyIDExNkUgMTFCOTsKK0IyMTc7QjIxNzsxMTAyIDExNkUgMTFCQTtCMjE3OzExMDIgMTE2RSAxMUJBOworQjIxODtCMjE4OzExMDIgMTE2RSAxMUJCO0IyMTg7MTEwMiAxMTZFIDExQkI7CitCMjE5O0IyMTk7MTEwMiAxMTZFIDExQkM7QjIxOTsxMTAyIDExNkUgMTFCQzsKK0IyMUE7QjIxQTsxMTAyIDExNkUgMTFCRDtCMjFBOzExMDIgMTE2RSAxMUJEOworQjIxQjtCMjFCOzExMDIgMTE2RSAxMUJFO0IyMUI7MTEwMiAxMTZFIDExQkU7CitCMjFDO0IyMUM7MTEwMiAxMTZFIDExQkY7QjIxQzsxMTAyIDExNkUgMTFCRjsKK0IyMUQ7QjIxRDsxMTAyIDExNkUgMTFDMDtCMjFEOzExMDIgMTE2RSAxMUMwOworQjIxRTtCMjFFOzExMDIgMTE2RSAxMUMxO0IyMUU7MTEwMiAxMTZFIDExQzE7CitCMjFGO0IyMUY7MTEwMiAxMTZFIDExQzI7QjIxRjsxMTAyIDExNkUgMTFDMjsKK0IyMjA7QjIyMDsxMTAyIDExNkY7QjIyMDsxMTAyIDExNkY7CitCMjIxO0IyMjE7MTEwMiAxMTZGIDExQTg7QjIyMTsxMTAyIDExNkYgMTFBODsKK0IyMjI7QjIyMjsxMTAyIDExNkYgMTFBOTtCMjIyOzExMDIgMTE2RiAxMUE5OworQjIyMztCMjIzOzExMDIgMTE2RiAxMUFBO0IyMjM7MTEwMiAxMTZGIDExQUE7CitCMjI0O0IyMjQ7MTEwMiAxMTZGIDExQUI7QjIyNDsxMTAyIDExNkYgMTFBQjsKK0IyMjU7QjIyNTsxMTAyIDExNkYgMTFBQztCMjI1OzExMDIgMTE2RiAxMUFDOworQjIyNjtCMjI2OzExMDIgMTE2RiAxMUFEO0IyMjY7MTEwMiAxMTZGIDExQUQ7CitCMjI3O0IyMjc7MTEwMiAxMTZGIDExQUU7QjIyNzsxMTAyIDExNkYgMTFBRTsKK0IyMjg7QjIyODsxMTAyIDExNkYgMTFBRjtCMjI4OzExMDIgMTE2RiAxMUFGOworQjIyOTtCMjI5OzExMDIgMTE2RiAxMUIwO0IyMjk7MTEwMiAxMTZGIDExQjA7CitCMjJBO0IyMkE7MTEwMiAxMTZGIDExQjE7QjIyQTsxMTAyIDExNkYgMTFCMTsKK0IyMkI7QjIyQjsxMTAyIDExNkYgMTFCMjtCMjJCOzExMDIgMTE2RiAxMUIyOworQjIyQztCMjJDOzExMDIgMTE2RiAxMUIzO0IyMkM7MTEwMiAxMTZGIDExQjM7CitCMjJEO0IyMkQ7MTEwMiAxMTZGIDExQjQ7QjIyRDsxMTAyIDExNkYgMTFCNDsKK0IyMkU7QjIyRTsxMTAyIDExNkYgMTFCNTtCMjJFOzExMDIgMTE2RiAxMUI1OworQjIyRjtCMjJGOzExMDIgMTE2RiAxMUI2O0IyMkY7MTEwMiAxMTZGIDExQjY7CitCMjMwO0IyMzA7MTEwMiAxMTZGIDExQjc7QjIzMDsxMTAyIDExNkYgMTFCNzsKK0IyMzE7QjIzMTsxMTAyIDExNkYgMTFCODtCMjMxOzExMDIgMTE2RiAxMUI4OworQjIzMjtCMjMyOzExMDIgMTE2RiAxMUI5O0IyMzI7MTEwMiAxMTZGIDExQjk7CitCMjMzO0IyMzM7MTEwMiAxMTZGIDExQkE7QjIzMzsxMTAyIDExNkYgMTFCQTsKK0IyMzQ7QjIzNDsxMTAyIDExNkYgMTFCQjtCMjM0OzExMDIgMTE2RiAxMUJCOworQjIzNTtCMjM1OzExMDIgMTE2RiAxMUJDO0IyMzU7MTEwMiAxMTZGIDExQkM7CitCMjM2O0IyMzY7MTEwMiAxMTZGIDExQkQ7QjIzNjsxMTAyIDExNkYgMTFCRDsKK0IyMzc7QjIzNzsxMTAyIDExNkYgMTFCRTtCMjM3OzExMDIgMTE2RiAxMUJFOworQjIzODtCMjM4OzExMDIgMTE2RiAxMUJGO0IyMzg7MTEwMiAxMTZGIDExQkY7CitCMjM5O0IyMzk7MTEwMiAxMTZGIDExQzA7QjIzOTsxMTAyIDExNkYgMTFDMDsKK0IyM0E7QjIzQTsxMTAyIDExNkYgMTFDMTtCMjNBOzExMDIgMTE2RiAxMUMxOworQjIzQjtCMjNCOzExMDIgMTE2RiAxMUMyO0IyM0I7MTEwMiAxMTZGIDExQzI7CitCMjNDO0IyM0M7MTEwMiAxMTcwO0IyM0M7MTEwMiAxMTcwOworQjIzRDtCMjNEOzExMDIgMTE3MCAxMUE4O0IyM0Q7MTEwMiAxMTcwIDExQTg7CitCMjNFO0IyM0U7MTEwMiAxMTcwIDExQTk7QjIzRTsxMTAyIDExNzAgMTFBOTsKK0IyM0Y7QjIzRjsxMTAyIDExNzAgMTFBQTtCMjNGOzExMDIgMTE3MCAxMUFBOworQjI0MDtCMjQwOzExMDIgMTE3MCAxMUFCO0IyNDA7MTEwMiAxMTcwIDExQUI7CitCMjQxO0IyNDE7MTEwMiAxMTcwIDExQUM7QjI0MTsxMTAyIDExNzAgMTFBQzsKK0IyNDI7QjI0MjsxMTAyIDExNzAgMTFBRDtCMjQyOzExMDIgMTE3MCAxMUFEOworQjI0MztCMjQzOzExMDIgMTE3MCAxMUFFO0IyNDM7MTEwMiAxMTcwIDExQUU7CitCMjQ0O0IyNDQ7MTEwMiAxMTcwIDExQUY7QjI0NDsxMTAyIDExNzAgMTFBRjsKK0IyNDU7QjI0NTsxMTAyIDExNzAgMTFCMDtCMjQ1OzExMDIgMTE3MCAxMUIwOworQjI0NjtCMjQ2OzExMDIgMTE3MCAxMUIxO0IyNDY7MTEwMiAxMTcwIDExQjE7CitCMjQ3O0IyNDc7MTEwMiAxMTcwIDExQjI7QjI0NzsxMTAyIDExNzAgMTFCMjsKK0IyNDg7QjI0ODsxMTAyIDExNzAgMTFCMztCMjQ4OzExMDIgMTE3MCAxMUIzOworQjI0OTtCMjQ5OzExMDIgMTE3MCAxMUI0O0IyNDk7MTEwMiAxMTcwIDExQjQ7CitCMjRBO0IyNEE7MTEwMiAxMTcwIDExQjU7QjI0QTsxMTAyIDExNzAgMTFCNTsKK0IyNEI7QjI0QjsxMTAyIDExNzAgMTFCNjtCMjRCOzExMDIgMTE3MCAxMUI2OworQjI0QztCMjRDOzExMDIgMTE3MCAxMUI3O0IyNEM7MTEwMiAxMTcwIDExQjc7CitCMjREO0IyNEQ7MTEwMiAxMTcwIDExQjg7QjI0RDsxMTAyIDExNzAgMTFCODsKK0IyNEU7QjI0RTsxMTAyIDExNzAgMTFCOTtCMjRFOzExMDIgMTE3MCAxMUI5OworQjI0RjtCMjRGOzExMDIgMTE3MCAxMUJBO0IyNEY7MTEwMiAxMTcwIDExQkE7CitCMjUwO0IyNTA7MTEwMiAxMTcwIDExQkI7QjI1MDsxMTAyIDExNzAgMTFCQjsKK0IyNTE7QjI1MTsxMTAyIDExNzAgMTFCQztCMjUxOzExMDIgMTE3MCAxMUJDOworQjI1MjtCMjUyOzExMDIgMTE3MCAxMUJEO0IyNTI7MTEwMiAxMTcwIDExQkQ7CitCMjUzO0IyNTM7MTEwMiAxMTcwIDExQkU7QjI1MzsxMTAyIDExNzAgMTFCRTsKK0IyNTQ7QjI1NDsxMTAyIDExNzAgMTFCRjtCMjU0OzExMDIgMTE3MCAxMUJGOworQjI1NTtCMjU1OzExMDIgMTE3MCAxMUMwO0IyNTU7MTEwMiAxMTcwIDExQzA7CitCMjU2O0IyNTY7MTEwMiAxMTcwIDExQzE7QjI1NjsxMTAyIDExNzAgMTFDMTsKK0IyNTc7QjI1NzsxMTAyIDExNzAgMTFDMjtCMjU3OzExMDIgMTE3MCAxMUMyOworQjI1ODtCMjU4OzExMDIgMTE3MTtCMjU4OzExMDIgMTE3MTsKK0IyNTk7QjI1OTsxMTAyIDExNzEgMTFBODtCMjU5OzExMDIgMTE3MSAxMUE4OworQjI1QTtCMjVBOzExMDIgMTE3MSAxMUE5O0IyNUE7MTEwMiAxMTcxIDExQTk7CitCMjVCO0IyNUI7MTEwMiAxMTcxIDExQUE7QjI1QjsxMTAyIDExNzEgMTFBQTsKK0IyNUM7QjI1QzsxMTAyIDExNzEgMTFBQjtCMjVDOzExMDIgMTE3MSAxMUFCOworQjI1RDtCMjVEOzExMDIgMTE3MSAxMUFDO0IyNUQ7MTEwMiAxMTcxIDExQUM7CitCMjVFO0IyNUU7MTEwMiAxMTcxIDExQUQ7QjI1RTsxMTAyIDExNzEgMTFBRDsKK0IyNUY7QjI1RjsxMTAyIDExNzEgMTFBRTtCMjVGOzExMDIgMTE3MSAxMUFFOworQjI2MDtCMjYwOzExMDIgMTE3MSAxMUFGO0IyNjA7MTEwMiAxMTcxIDExQUY7CitCMjYxO0IyNjE7MTEwMiAxMTcxIDExQjA7QjI2MTsxMTAyIDExNzEgMTFCMDsKK0IyNjI7QjI2MjsxMTAyIDExNzEgMTFCMTtCMjYyOzExMDIgMTE3MSAxMUIxOworQjI2MztCMjYzOzExMDIgMTE3MSAxMUIyO0IyNjM7MTEwMiAxMTcxIDExQjI7CitCMjY0O0IyNjQ7MTEwMiAxMTcxIDExQjM7QjI2NDsxMTAyIDExNzEgMTFCMzsKK0IyNjU7QjI2NTsxMTAyIDExNzEgMTFCNDtCMjY1OzExMDIgMTE3MSAxMUI0OworQjI2NjtCMjY2OzExMDIgMTE3MSAxMUI1O0IyNjY7MTEwMiAxMTcxIDExQjU7CitCMjY3O0IyNjc7MTEwMiAxMTcxIDExQjY7QjI2NzsxMTAyIDExNzEgMTFCNjsKK0IyNjg7QjI2ODsxMTAyIDExNzEgMTFCNztCMjY4OzExMDIgMTE3MSAxMUI3OworQjI2OTtCMjY5OzExMDIgMTE3MSAxMUI4O0IyNjk7MTEwMiAxMTcxIDExQjg7CitCMjZBO0IyNkE7MTEwMiAxMTcxIDExQjk7QjI2QTsxMTAyIDExNzEgMTFCOTsKK0IyNkI7QjI2QjsxMTAyIDExNzEgMTFCQTtCMjZCOzExMDIgMTE3MSAxMUJBOworQjI2QztCMjZDOzExMDIgMTE3MSAxMUJCO0IyNkM7MTEwMiAxMTcxIDExQkI7CitCMjZEO0IyNkQ7MTEwMiAxMTcxIDExQkM7QjI2RDsxMTAyIDExNzEgMTFCQzsKK0IyNkU7QjI2RTsxMTAyIDExNzEgMTFCRDtCMjZFOzExMDIgMTE3MSAxMUJEOworQjI2RjtCMjZGOzExMDIgMTE3MSAxMUJFO0IyNkY7MTEwMiAxMTcxIDExQkU7CitCMjcwO0IyNzA7MTEwMiAxMTcxIDExQkY7QjI3MDsxMTAyIDExNzEgMTFCRjsKK0IyNzE7QjI3MTsxMTAyIDExNzEgMTFDMDtCMjcxOzExMDIgMTE3MSAxMUMwOworQjI3MjtCMjcyOzExMDIgMTE3MSAxMUMxO0IyNzI7MTEwMiAxMTcxIDExQzE7CitCMjczO0IyNzM7MTEwMiAxMTcxIDExQzI7QjI3MzsxMTAyIDExNzEgMTFDMjsKK0IyNzQ7QjI3NDsxMTAyIDExNzI7QjI3NDsxMTAyIDExNzI7CitCMjc1O0IyNzU7MTEwMiAxMTcyIDExQTg7QjI3NTsxMTAyIDExNzIgMTFBODsKK0IyNzY7QjI3NjsxMTAyIDExNzIgMTFBOTtCMjc2OzExMDIgMTE3MiAxMUE5OworQjI3NztCMjc3OzExMDIgMTE3MiAxMUFBO0IyNzc7MTEwMiAxMTcyIDExQUE7CitCMjc4O0IyNzg7MTEwMiAxMTcyIDExQUI7QjI3ODsxMTAyIDExNzIgMTFBQjsKK0IyNzk7QjI3OTsxMTAyIDExNzIgMTFBQztCMjc5OzExMDIgMTE3MiAxMUFDOworQjI3QTtCMjdBOzExMDIgMTE3MiAxMUFEO0IyN0E7MTEwMiAxMTcyIDExQUQ7CitCMjdCO0IyN0I7MTEwMiAxMTcyIDExQUU7QjI3QjsxMTAyIDExNzIgMTFBRTsKK0IyN0M7QjI3QzsxMTAyIDExNzIgMTFBRjtCMjdDOzExMDIgMTE3MiAxMUFGOworQjI3RDtCMjdEOzExMDIgMTE3MiAxMUIwO0IyN0Q7MTEwMiAxMTcyIDExQjA7CitCMjdFO0IyN0U7MTEwMiAxMTcyIDExQjE7QjI3RTsxMTAyIDExNzIgMTFCMTsKK0IyN0Y7QjI3RjsxMTAyIDExNzIgMTFCMjtCMjdGOzExMDIgMTE3MiAxMUIyOworQjI4MDtCMjgwOzExMDIgMTE3MiAxMUIzO0IyODA7MTEwMiAxMTcyIDExQjM7CitCMjgxO0IyODE7MTEwMiAxMTcyIDExQjQ7QjI4MTsxMTAyIDExNzIgMTFCNDsKK0IyODI7QjI4MjsxMTAyIDExNzIgMTFCNTtCMjgyOzExMDIgMTE3MiAxMUI1OworQjI4MztCMjgzOzExMDIgMTE3MiAxMUI2O0IyODM7MTEwMiAxMTcyIDExQjY7CitCMjg0O0IyODQ7MTEwMiAxMTcyIDExQjc7QjI4NDsxMTAyIDExNzIgMTFCNzsKK0IyODU7QjI4NTsxMTAyIDExNzIgMTFCODtCMjg1OzExMDIgMTE3MiAxMUI4OworQjI4NjtCMjg2OzExMDIgMTE3MiAxMUI5O0IyODY7MTEwMiAxMTcyIDExQjk7CitCMjg3O0IyODc7MTEwMiAxMTcyIDExQkE7QjI4NzsxMTAyIDExNzIgMTFCQTsKK0IyODg7QjI4ODsxMTAyIDExNzIgMTFCQjtCMjg4OzExMDIgMTE3MiAxMUJCOworQjI4OTtCMjg5OzExMDIgMTE3MiAxMUJDO0IyODk7MTEwMiAxMTcyIDExQkM7CitCMjhBO0IyOEE7MTEwMiAxMTcyIDExQkQ7QjI4QTsxMTAyIDExNzIgMTFCRDsKK0IyOEI7QjI4QjsxMTAyIDExNzIgMTFCRTtCMjhCOzExMDIgMTE3MiAxMUJFOworQjI4QztCMjhDOzExMDIgMTE3MiAxMUJGO0IyOEM7MTEwMiAxMTcyIDExQkY7CitCMjhEO0IyOEQ7MTEwMiAxMTcyIDExQzA7QjI4RDsxMTAyIDExNzIgMTFDMDsKK0IyOEU7QjI4RTsxMTAyIDExNzIgMTFDMTtCMjhFOzExMDIgMTE3MiAxMUMxOworQjI4RjtCMjhGOzExMDIgMTE3MiAxMUMyO0IyOEY7MTEwMiAxMTcyIDExQzI7CitCMjkwO0IyOTA7MTEwMiAxMTczO0IyOTA7MTEwMiAxMTczOworQjI5MTtCMjkxOzExMDIgMTE3MyAxMUE4O0IyOTE7MTEwMiAxMTczIDExQTg7CitCMjkyO0IyOTI7MTEwMiAxMTczIDExQTk7QjI5MjsxMTAyIDExNzMgMTFBOTsKK0IyOTM7QjI5MzsxMTAyIDExNzMgMTFBQTtCMjkzOzExMDIgMTE3MyAxMUFBOworQjI5NDtCMjk0OzExMDIgMTE3MyAxMUFCO0IyOTQ7MTEwMiAxMTczIDExQUI7CitCMjk1O0IyOTU7MTEwMiAxMTczIDExQUM7QjI5NTsxMTAyIDExNzMgMTFBQzsKK0IyOTY7QjI5NjsxMTAyIDExNzMgMTFBRDtCMjk2OzExMDIgMTE3MyAxMUFEOworQjI5NztCMjk3OzExMDIgMTE3MyAxMUFFO0IyOTc7MTEwMiAxMTczIDExQUU7CitCMjk4O0IyOTg7MTEwMiAxMTczIDExQUY7QjI5ODsxMTAyIDExNzMgMTFBRjsKK0IyOTk7QjI5OTsxMTAyIDExNzMgMTFCMDtCMjk5OzExMDIgMTE3MyAxMUIwOworQjI5QTtCMjlBOzExMDIgMTE3MyAxMUIxO0IyOUE7MTEwMiAxMTczIDExQjE7CitCMjlCO0IyOUI7MTEwMiAxMTczIDExQjI7QjI5QjsxMTAyIDExNzMgMTFCMjsKK0IyOUM7QjI5QzsxMTAyIDExNzMgMTFCMztCMjlDOzExMDIgMTE3MyAxMUIzOworQjI5RDtCMjlEOzExMDIgMTE3MyAxMUI0O0IyOUQ7MTEwMiAxMTczIDExQjQ7CitCMjlFO0IyOUU7MTEwMiAxMTczIDExQjU7QjI5RTsxMTAyIDExNzMgMTFCNTsKK0IyOUY7QjI5RjsxMTAyIDExNzMgMTFCNjtCMjlGOzExMDIgMTE3MyAxMUI2OworQjJBMDtCMkEwOzExMDIgMTE3MyAxMUI3O0IyQTA7MTEwMiAxMTczIDExQjc7CitCMkExO0IyQTE7MTEwMiAxMTczIDExQjg7QjJBMTsxMTAyIDExNzMgMTFCODsKK0IyQTI7QjJBMjsxMTAyIDExNzMgMTFCOTtCMkEyOzExMDIgMTE3MyAxMUI5OworQjJBMztCMkEzOzExMDIgMTE3MyAxMUJBO0IyQTM7MTEwMiAxMTczIDExQkE7CitCMkE0O0IyQTQ7MTEwMiAxMTczIDExQkI7QjJBNDsxMTAyIDExNzMgMTFCQjsKK0IyQTU7QjJBNTsxMTAyIDExNzMgMTFCQztCMkE1OzExMDIgMTE3MyAxMUJDOworQjJBNjtCMkE2OzExMDIgMTE3MyAxMUJEO0IyQTY7MTEwMiAxMTczIDExQkQ7CitCMkE3O0IyQTc7MTEwMiAxMTczIDExQkU7QjJBNzsxMTAyIDExNzMgMTFCRTsKK0IyQTg7QjJBODsxMTAyIDExNzMgMTFCRjtCMkE4OzExMDIgMTE3MyAxMUJGOworQjJBOTtCMkE5OzExMDIgMTE3MyAxMUMwO0IyQTk7MTEwMiAxMTczIDExQzA7CitCMkFBO0IyQUE7MTEwMiAxMTczIDExQzE7QjJBQTsxMTAyIDExNzMgMTFDMTsKK0IyQUI7QjJBQjsxMTAyIDExNzMgMTFDMjtCMkFCOzExMDIgMTE3MyAxMUMyOworQjJBQztCMkFDOzExMDIgMTE3NDtCMkFDOzExMDIgMTE3NDsKK0IyQUQ7QjJBRDsxMTAyIDExNzQgMTFBODtCMkFEOzExMDIgMTE3NCAxMUE4OworQjJBRTtCMkFFOzExMDIgMTE3NCAxMUE5O0IyQUU7MTEwMiAxMTc0IDExQTk7CitCMkFGO0IyQUY7MTEwMiAxMTc0IDExQUE7QjJBRjsxMTAyIDExNzQgMTFBQTsKK0IyQjA7QjJCMDsxMTAyIDExNzQgMTFBQjtCMkIwOzExMDIgMTE3NCAxMUFCOworQjJCMTtCMkIxOzExMDIgMTE3NCAxMUFDO0IyQjE7MTEwMiAxMTc0IDExQUM7CitCMkIyO0IyQjI7MTEwMiAxMTc0IDExQUQ7QjJCMjsxMTAyIDExNzQgMTFBRDsKK0IyQjM7QjJCMzsxMTAyIDExNzQgMTFBRTtCMkIzOzExMDIgMTE3NCAxMUFFOworQjJCNDtCMkI0OzExMDIgMTE3NCAxMUFGO0IyQjQ7MTEwMiAxMTc0IDExQUY7CitCMkI1O0IyQjU7MTEwMiAxMTc0IDExQjA7QjJCNTsxMTAyIDExNzQgMTFCMDsKK0IyQjY7QjJCNjsxMTAyIDExNzQgMTFCMTtCMkI2OzExMDIgMTE3NCAxMUIxOworQjJCNztCMkI3OzExMDIgMTE3NCAxMUIyO0IyQjc7MTEwMiAxMTc0IDExQjI7CitCMkI4O0IyQjg7MTEwMiAxMTc0IDExQjM7QjJCODsxMTAyIDExNzQgMTFCMzsKK0IyQjk7QjJCOTsxMTAyIDExNzQgMTFCNDtCMkI5OzExMDIgMTE3NCAxMUI0OworQjJCQTtCMkJBOzExMDIgMTE3NCAxMUI1O0IyQkE7MTEwMiAxMTc0IDExQjU7CitCMkJCO0IyQkI7MTEwMiAxMTc0IDExQjY7QjJCQjsxMTAyIDExNzQgMTFCNjsKK0IyQkM7QjJCQzsxMTAyIDExNzQgMTFCNztCMkJDOzExMDIgMTE3NCAxMUI3OworQjJCRDtCMkJEOzExMDIgMTE3NCAxMUI4O0IyQkQ7MTEwMiAxMTc0IDExQjg7CitCMkJFO0IyQkU7MTEwMiAxMTc0IDExQjk7QjJCRTsxMTAyIDExNzQgMTFCOTsKK0IyQkY7QjJCRjsxMTAyIDExNzQgMTFCQTtCMkJGOzExMDIgMTE3NCAxMUJBOworQjJDMDtCMkMwOzExMDIgMTE3NCAxMUJCO0IyQzA7MTEwMiAxMTc0IDExQkI7CitCMkMxO0IyQzE7MTEwMiAxMTc0IDExQkM7QjJDMTsxMTAyIDExNzQgMTFCQzsKK0IyQzI7QjJDMjsxMTAyIDExNzQgMTFCRDtCMkMyOzExMDIgMTE3NCAxMUJEOworQjJDMztCMkMzOzExMDIgMTE3NCAxMUJFO0IyQzM7MTEwMiAxMTc0IDExQkU7CitCMkM0O0IyQzQ7MTEwMiAxMTc0IDExQkY7QjJDNDsxMTAyIDExNzQgMTFCRjsKK0IyQzU7QjJDNTsxMTAyIDExNzQgMTFDMDtCMkM1OzExMDIgMTE3NCAxMUMwOworQjJDNjtCMkM2OzExMDIgMTE3NCAxMUMxO0IyQzY7MTEwMiAxMTc0IDExQzE7CitCMkM3O0IyQzc7MTEwMiAxMTc0IDExQzI7QjJDNzsxMTAyIDExNzQgMTFDMjsKK0IyQzg7QjJDODsxMTAyIDExNzU7QjJDODsxMTAyIDExNzU7CitCMkM5O0IyQzk7MTEwMiAxMTc1IDExQTg7QjJDOTsxMTAyIDExNzUgMTFBODsKK0IyQ0E7QjJDQTsxMTAyIDExNzUgMTFBOTtCMkNBOzExMDIgMTE3NSAxMUE5OworQjJDQjtCMkNCOzExMDIgMTE3NSAxMUFBO0IyQ0I7MTEwMiAxMTc1IDExQUE7CitCMkNDO0IyQ0M7MTEwMiAxMTc1IDExQUI7QjJDQzsxMTAyIDExNzUgMTFBQjsKK0IyQ0Q7QjJDRDsxMTAyIDExNzUgMTFBQztCMkNEOzExMDIgMTE3NSAxMUFDOworQjJDRTtCMkNFOzExMDIgMTE3NSAxMUFEO0IyQ0U7MTEwMiAxMTc1IDExQUQ7CitCMkNGO0IyQ0Y7MTEwMiAxMTc1IDExQUU7QjJDRjsxMTAyIDExNzUgMTFBRTsKK0IyRDA7QjJEMDsxMTAyIDExNzUgMTFBRjtCMkQwOzExMDIgMTE3NSAxMUFGOworQjJEMTtCMkQxOzExMDIgMTE3NSAxMUIwO0IyRDE7MTEwMiAxMTc1IDExQjA7CitCMkQyO0IyRDI7MTEwMiAxMTc1IDExQjE7QjJEMjsxMTAyIDExNzUgMTFCMTsKK0IyRDM7QjJEMzsxMTAyIDExNzUgMTFCMjtCMkQzOzExMDIgMTE3NSAxMUIyOworQjJENDtCMkQ0OzExMDIgMTE3NSAxMUIzO0IyRDQ7MTEwMiAxMTc1IDExQjM7CitCMkQ1O0IyRDU7MTEwMiAxMTc1IDExQjQ7QjJENTsxMTAyIDExNzUgMTFCNDsKK0IyRDY7QjJENjsxMTAyIDExNzUgMTFCNTtCMkQ2OzExMDIgMTE3NSAxMUI1OworQjJENztCMkQ3OzExMDIgMTE3NSAxMUI2O0IyRDc7MTEwMiAxMTc1IDExQjY7CitCMkQ4O0IyRDg7MTEwMiAxMTc1IDExQjc7QjJEODsxMTAyIDExNzUgMTFCNzsKK0IyRDk7QjJEOTsxMTAyIDExNzUgMTFCODtCMkQ5OzExMDIgMTE3NSAxMUI4OworQjJEQTtCMkRBOzExMDIgMTE3NSAxMUI5O0IyREE7MTEwMiAxMTc1IDExQjk7CitCMkRCO0IyREI7MTEwMiAxMTc1IDExQkE7QjJEQjsxMTAyIDExNzUgMTFCQTsKK0IyREM7QjJEQzsxMTAyIDExNzUgMTFCQjtCMkRDOzExMDIgMTE3NSAxMUJCOworQjJERDtCMkREOzExMDIgMTE3NSAxMUJDO0IyREQ7MTEwMiAxMTc1IDExQkM7CitCMkRFO0IyREU7MTEwMiAxMTc1IDExQkQ7QjJERTsxMTAyIDExNzUgMTFCRDsKK0IyREY7QjJERjsxMTAyIDExNzUgMTFCRTtCMkRGOzExMDIgMTE3NSAxMUJFOworQjJFMDtCMkUwOzExMDIgMTE3NSAxMUJGO0IyRTA7MTEwMiAxMTc1IDExQkY7CitCMkUxO0IyRTE7MTEwMiAxMTc1IDExQzA7QjJFMTsxMTAyIDExNzUgMTFDMDsKK0IyRTI7QjJFMjsxMTAyIDExNzUgMTFDMTtCMkUyOzExMDIgMTE3NSAxMUMxOworQjJFMztCMkUzOzExMDIgMTE3NSAxMUMyO0IyRTM7MTEwMiAxMTc1IDExQzI7CitCMkU0O0IyRTQ7MTEwMyAxMTYxO0IyRTQ7MTEwMyAxMTYxOworQjJFNTtCMkU1OzExMDMgMTE2MSAxMUE4O0IyRTU7MTEwMyAxMTYxIDExQTg7CitCMkU2O0IyRTY7MTEwMyAxMTYxIDExQTk7QjJFNjsxMTAzIDExNjEgMTFBOTsKK0IyRTc7QjJFNzsxMTAzIDExNjEgMTFBQTtCMkU3OzExMDMgMTE2MSAxMUFBOworQjJFODtCMkU4OzExMDMgMTE2MSAxMUFCO0IyRTg7MTEwMyAxMTYxIDExQUI7CitCMkU5O0IyRTk7MTEwMyAxMTYxIDExQUM7QjJFOTsxMTAzIDExNjEgMTFBQzsKK0IyRUE7QjJFQTsxMTAzIDExNjEgMTFBRDtCMkVBOzExMDMgMTE2MSAxMUFEOworQjJFQjtCMkVCOzExMDMgMTE2MSAxMUFFO0IyRUI7MTEwMyAxMTYxIDExQUU7CitCMkVDO0IyRUM7MTEwMyAxMTYxIDExQUY7QjJFQzsxMTAzIDExNjEgMTFBRjsKK0IyRUQ7QjJFRDsxMTAzIDExNjEgMTFCMDtCMkVEOzExMDMgMTE2MSAxMUIwOworQjJFRTtCMkVFOzExMDMgMTE2MSAxMUIxO0IyRUU7MTEwMyAxMTYxIDExQjE7CitCMkVGO0IyRUY7MTEwMyAxMTYxIDExQjI7QjJFRjsxMTAzIDExNjEgMTFCMjsKK0IyRjA7QjJGMDsxMTAzIDExNjEgMTFCMztCMkYwOzExMDMgMTE2MSAxMUIzOworQjJGMTtCMkYxOzExMDMgMTE2MSAxMUI0O0IyRjE7MTEwMyAxMTYxIDExQjQ7CitCMkYyO0IyRjI7MTEwMyAxMTYxIDExQjU7QjJGMjsxMTAzIDExNjEgMTFCNTsKK0IyRjM7QjJGMzsxMTAzIDExNjEgMTFCNjtCMkYzOzExMDMgMTE2MSAxMUI2OworQjJGNDtCMkY0OzExMDMgMTE2MSAxMUI3O0IyRjQ7MTEwMyAxMTYxIDExQjc7CitCMkY1O0IyRjU7MTEwMyAxMTYxIDExQjg7QjJGNTsxMTAzIDExNjEgMTFCODsKK0IyRjY7QjJGNjsxMTAzIDExNjEgMTFCOTtCMkY2OzExMDMgMTE2MSAxMUI5OworQjJGNztCMkY3OzExMDMgMTE2MSAxMUJBO0IyRjc7MTEwMyAxMTYxIDExQkE7CitCMkY4O0IyRjg7MTEwMyAxMTYxIDExQkI7QjJGODsxMTAzIDExNjEgMTFCQjsKK0IyRjk7QjJGOTsxMTAzIDExNjEgMTFCQztCMkY5OzExMDMgMTE2MSAxMUJDOworQjJGQTtCMkZBOzExMDMgMTE2MSAxMUJEO0IyRkE7MTEwMyAxMTYxIDExQkQ7CitCMkZCO0IyRkI7MTEwMyAxMTYxIDExQkU7QjJGQjsxMTAzIDExNjEgMTFCRTsKK0IyRkM7QjJGQzsxMTAzIDExNjEgMTFCRjtCMkZDOzExMDMgMTE2MSAxMUJGOworQjJGRDtCMkZEOzExMDMgMTE2MSAxMUMwO0IyRkQ7MTEwMyAxMTYxIDExQzA7CitCMkZFO0IyRkU7MTEwMyAxMTYxIDExQzE7QjJGRTsxMTAzIDExNjEgMTFDMTsKK0IyRkY7QjJGRjsxMTAzIDExNjEgMTFDMjtCMkZGOzExMDMgMTE2MSAxMUMyOworQjMwMDtCMzAwOzExMDMgMTE2MjtCMzAwOzExMDMgMTE2MjsKK0IzMDE7QjMwMTsxMTAzIDExNjIgMTFBODtCMzAxOzExMDMgMTE2MiAxMUE4OworQjMwMjtCMzAyOzExMDMgMTE2MiAxMUE5O0IzMDI7MTEwMyAxMTYyIDExQTk7CitCMzAzO0IzMDM7MTEwMyAxMTYyIDExQUE7QjMwMzsxMTAzIDExNjIgMTFBQTsKK0IzMDQ7QjMwNDsxMTAzIDExNjIgMTFBQjtCMzA0OzExMDMgMTE2MiAxMUFCOworQjMwNTtCMzA1OzExMDMgMTE2MiAxMUFDO0IzMDU7MTEwMyAxMTYyIDExQUM7CitCMzA2O0IzMDY7MTEwMyAxMTYyIDExQUQ7QjMwNjsxMTAzIDExNjIgMTFBRDsKK0IzMDc7QjMwNzsxMTAzIDExNjIgMTFBRTtCMzA3OzExMDMgMTE2MiAxMUFFOworQjMwODtCMzA4OzExMDMgMTE2MiAxMUFGO0IzMDg7MTEwMyAxMTYyIDExQUY7CitCMzA5O0IzMDk7MTEwMyAxMTYyIDExQjA7QjMwOTsxMTAzIDExNjIgMTFCMDsKK0IzMEE7QjMwQTsxMTAzIDExNjIgMTFCMTtCMzBBOzExMDMgMTE2MiAxMUIxOworQjMwQjtCMzBCOzExMDMgMTE2MiAxMUIyO0IzMEI7MTEwMyAxMTYyIDExQjI7CitCMzBDO0IzMEM7MTEwMyAxMTYyIDExQjM7QjMwQzsxMTAzIDExNjIgMTFCMzsKK0IzMEQ7QjMwRDsxMTAzIDExNjIgMTFCNDtCMzBEOzExMDMgMTE2MiAxMUI0OworQjMwRTtCMzBFOzExMDMgMTE2MiAxMUI1O0IzMEU7MTEwMyAxMTYyIDExQjU7CitCMzBGO0IzMEY7MTEwMyAxMTYyIDExQjY7QjMwRjsxMTAzIDExNjIgMTFCNjsKK0IzMTA7QjMxMDsxMTAzIDExNjIgMTFCNztCMzEwOzExMDMgMTE2MiAxMUI3OworQjMxMTtCMzExOzExMDMgMTE2MiAxMUI4O0IzMTE7MTEwMyAxMTYyIDExQjg7CitCMzEyO0IzMTI7MTEwMyAxMTYyIDExQjk7QjMxMjsxMTAzIDExNjIgMTFCOTsKK0IzMTM7QjMxMzsxMTAzIDExNjIgMTFCQTtCMzEzOzExMDMgMTE2MiAxMUJBOworQjMxNDtCMzE0OzExMDMgMTE2MiAxMUJCO0IzMTQ7MTEwMyAxMTYyIDExQkI7CitCMzE1O0IzMTU7MTEwMyAxMTYyIDExQkM7QjMxNTsxMTAzIDExNjIgMTFCQzsKK0IzMTY7QjMxNjsxMTAzIDExNjIgMTFCRDtCMzE2OzExMDMgMTE2MiAxMUJEOworQjMxNztCMzE3OzExMDMgMTE2MiAxMUJFO0IzMTc7MTEwMyAxMTYyIDExQkU7CitCMzE4O0IzMTg7MTEwMyAxMTYyIDExQkY7QjMxODsxMTAzIDExNjIgMTFCRjsKK0IzMTk7QjMxOTsxMTAzIDExNjIgMTFDMDtCMzE5OzExMDMgMTE2MiAxMUMwOworQjMxQTtCMzFBOzExMDMgMTE2MiAxMUMxO0IzMUE7MTEwMyAxMTYyIDExQzE7CitCMzFCO0IzMUI7MTEwMyAxMTYyIDExQzI7QjMxQjsxMTAzIDExNjIgMTFDMjsKK0IzMUM7QjMxQzsxMTAzIDExNjM7QjMxQzsxMTAzIDExNjM7CitCMzFEO0IzMUQ7MTEwMyAxMTYzIDExQTg7QjMxRDsxMTAzIDExNjMgMTFBODsKK0IzMUU7QjMxRTsxMTAzIDExNjMgMTFBOTtCMzFFOzExMDMgMTE2MyAxMUE5OworQjMxRjtCMzFGOzExMDMgMTE2MyAxMUFBO0IzMUY7MTEwMyAxMTYzIDExQUE7CitCMzIwO0IzMjA7MTEwMyAxMTYzIDExQUI7QjMyMDsxMTAzIDExNjMgMTFBQjsKK0IzMjE7QjMyMTsxMTAzIDExNjMgMTFBQztCMzIxOzExMDMgMTE2MyAxMUFDOworQjMyMjtCMzIyOzExMDMgMTE2MyAxMUFEO0IzMjI7MTEwMyAxMTYzIDExQUQ7CitCMzIzO0IzMjM7MTEwMyAxMTYzIDExQUU7QjMyMzsxMTAzIDExNjMgMTFBRTsKK0IzMjQ7QjMyNDsxMTAzIDExNjMgMTFBRjtCMzI0OzExMDMgMTE2MyAxMUFGOworQjMyNTtCMzI1OzExMDMgMTE2MyAxMUIwO0IzMjU7MTEwMyAxMTYzIDExQjA7CitCMzI2O0IzMjY7MTEwMyAxMTYzIDExQjE7QjMyNjsxMTAzIDExNjMgMTFCMTsKK0IzMjc7QjMyNzsxMTAzIDExNjMgMTFCMjtCMzI3OzExMDMgMTE2MyAxMUIyOworQjMyODtCMzI4OzExMDMgMTE2MyAxMUIzO0IzMjg7MTEwMyAxMTYzIDExQjM7CitCMzI5O0IzMjk7MTEwMyAxMTYzIDExQjQ7QjMyOTsxMTAzIDExNjMgMTFCNDsKK0IzMkE7QjMyQTsxMTAzIDExNjMgMTFCNTtCMzJBOzExMDMgMTE2MyAxMUI1OworQjMyQjtCMzJCOzExMDMgMTE2MyAxMUI2O0IzMkI7MTEwMyAxMTYzIDExQjY7CitCMzJDO0IzMkM7MTEwMyAxMTYzIDExQjc7QjMyQzsxMTAzIDExNjMgMTFCNzsKK0IzMkQ7QjMyRDsxMTAzIDExNjMgMTFCODtCMzJEOzExMDMgMTE2MyAxMUI4OworQjMyRTtCMzJFOzExMDMgMTE2MyAxMUI5O0IzMkU7MTEwMyAxMTYzIDExQjk7CitCMzJGO0IzMkY7MTEwMyAxMTYzIDExQkE7QjMyRjsxMTAzIDExNjMgMTFCQTsKK0IzMzA7QjMzMDsxMTAzIDExNjMgMTFCQjtCMzMwOzExMDMgMTE2MyAxMUJCOworQjMzMTtCMzMxOzExMDMgMTE2MyAxMUJDO0IzMzE7MTEwMyAxMTYzIDExQkM7CitCMzMyO0IzMzI7MTEwMyAxMTYzIDExQkQ7QjMzMjsxMTAzIDExNjMgMTFCRDsKK0IzMzM7QjMzMzsxMTAzIDExNjMgMTFCRTtCMzMzOzExMDMgMTE2MyAxMUJFOworQjMzNDtCMzM0OzExMDMgMTE2MyAxMUJGO0IzMzQ7MTEwMyAxMTYzIDExQkY7CitCMzM1O0IzMzU7MTEwMyAxMTYzIDExQzA7QjMzNTsxMTAzIDExNjMgMTFDMDsKK0IzMzY7QjMzNjsxMTAzIDExNjMgMTFDMTtCMzM2OzExMDMgMTE2MyAxMUMxOworQjMzNztCMzM3OzExMDMgMTE2MyAxMUMyO0IzMzc7MTEwMyAxMTYzIDExQzI7CitCMzM4O0IzMzg7MTEwMyAxMTY0O0IzMzg7MTEwMyAxMTY0OworQjMzOTtCMzM5OzExMDMgMTE2NCAxMUE4O0IzMzk7MTEwMyAxMTY0IDExQTg7CitCMzNBO0IzM0E7MTEwMyAxMTY0IDExQTk7QjMzQTsxMTAzIDExNjQgMTFBOTsKK0IzM0I7QjMzQjsxMTAzIDExNjQgMTFBQTtCMzNCOzExMDMgMTE2NCAxMUFBOworQjMzQztCMzNDOzExMDMgMTE2NCAxMUFCO0IzM0M7MTEwMyAxMTY0IDExQUI7CitCMzNEO0IzM0Q7MTEwMyAxMTY0IDExQUM7QjMzRDsxMTAzIDExNjQgMTFBQzsKK0IzM0U7QjMzRTsxMTAzIDExNjQgMTFBRDtCMzNFOzExMDMgMTE2NCAxMUFEOworQjMzRjtCMzNGOzExMDMgMTE2NCAxMUFFO0IzM0Y7MTEwMyAxMTY0IDExQUU7CitCMzQwO0IzNDA7MTEwMyAxMTY0IDExQUY7QjM0MDsxMTAzIDExNjQgMTFBRjsKK0IzNDE7QjM0MTsxMTAzIDExNjQgMTFCMDtCMzQxOzExMDMgMTE2NCAxMUIwOworQjM0MjtCMzQyOzExMDMgMTE2NCAxMUIxO0IzNDI7MTEwMyAxMTY0IDExQjE7CitCMzQzO0IzNDM7MTEwMyAxMTY0IDExQjI7QjM0MzsxMTAzIDExNjQgMTFCMjsKK0IzNDQ7QjM0NDsxMTAzIDExNjQgMTFCMztCMzQ0OzExMDMgMTE2NCAxMUIzOworQjM0NTtCMzQ1OzExMDMgMTE2NCAxMUI0O0IzNDU7MTEwMyAxMTY0IDExQjQ7CitCMzQ2O0IzNDY7MTEwMyAxMTY0IDExQjU7QjM0NjsxMTAzIDExNjQgMTFCNTsKK0IzNDc7QjM0NzsxMTAzIDExNjQgMTFCNjtCMzQ3OzExMDMgMTE2NCAxMUI2OworQjM0ODtCMzQ4OzExMDMgMTE2NCAxMUI3O0IzNDg7MTEwMyAxMTY0IDExQjc7CitCMzQ5O0IzNDk7MTEwMyAxMTY0IDExQjg7QjM0OTsxMTAzIDExNjQgMTFCODsKK0IzNEE7QjM0QTsxMTAzIDExNjQgMTFCOTtCMzRBOzExMDMgMTE2NCAxMUI5OworQjM0QjtCMzRCOzExMDMgMTE2NCAxMUJBO0IzNEI7MTEwMyAxMTY0IDExQkE7CitCMzRDO0IzNEM7MTEwMyAxMTY0IDExQkI7QjM0QzsxMTAzIDExNjQgMTFCQjsKK0IzNEQ7QjM0RDsxMTAzIDExNjQgMTFCQztCMzREOzExMDMgMTE2NCAxMUJDOworQjM0RTtCMzRFOzExMDMgMTE2NCAxMUJEO0IzNEU7MTEwMyAxMTY0IDExQkQ7CitCMzRGO0IzNEY7MTEwMyAxMTY0IDExQkU7QjM0RjsxMTAzIDExNjQgMTFCRTsKK0IzNTA7QjM1MDsxMTAzIDExNjQgMTFCRjtCMzUwOzExMDMgMTE2NCAxMUJGOworQjM1MTtCMzUxOzExMDMgMTE2NCAxMUMwO0IzNTE7MTEwMyAxMTY0IDExQzA7CitCMzUyO0IzNTI7MTEwMyAxMTY0IDExQzE7QjM1MjsxMTAzIDExNjQgMTFDMTsKK0IzNTM7QjM1MzsxMTAzIDExNjQgMTFDMjtCMzUzOzExMDMgMTE2NCAxMUMyOworQjM1NDtCMzU0OzExMDMgMTE2NTtCMzU0OzExMDMgMTE2NTsKK0IzNTU7QjM1NTsxMTAzIDExNjUgMTFBODtCMzU1OzExMDMgMTE2NSAxMUE4OworQjM1NjtCMzU2OzExMDMgMTE2NSAxMUE5O0IzNTY7MTEwMyAxMTY1IDExQTk7CitCMzU3O0IzNTc7MTEwMyAxMTY1IDExQUE7QjM1NzsxMTAzIDExNjUgMTFBQTsKK0IzNTg7QjM1ODsxMTAzIDExNjUgMTFBQjtCMzU4OzExMDMgMTE2NSAxMUFCOworQjM1OTtCMzU5OzExMDMgMTE2NSAxMUFDO0IzNTk7MTEwMyAxMTY1IDExQUM7CitCMzVBO0IzNUE7MTEwMyAxMTY1IDExQUQ7QjM1QTsxMTAzIDExNjUgMTFBRDsKK0IzNUI7QjM1QjsxMTAzIDExNjUgMTFBRTtCMzVCOzExMDMgMTE2NSAxMUFFOworQjM1QztCMzVDOzExMDMgMTE2NSAxMUFGO0IzNUM7MTEwMyAxMTY1IDExQUY7CitCMzVEO0IzNUQ7MTEwMyAxMTY1IDExQjA7QjM1RDsxMTAzIDExNjUgMTFCMDsKK0IzNUU7QjM1RTsxMTAzIDExNjUgMTFCMTtCMzVFOzExMDMgMTE2NSAxMUIxOworQjM1RjtCMzVGOzExMDMgMTE2NSAxMUIyO0IzNUY7MTEwMyAxMTY1IDExQjI7CitCMzYwO0IzNjA7MTEwMyAxMTY1IDExQjM7QjM2MDsxMTAzIDExNjUgMTFCMzsKK0IzNjE7QjM2MTsxMTAzIDExNjUgMTFCNDtCMzYxOzExMDMgMTE2NSAxMUI0OworQjM2MjtCMzYyOzExMDMgMTE2NSAxMUI1O0IzNjI7MTEwMyAxMTY1IDExQjU7CitCMzYzO0IzNjM7MTEwMyAxMTY1IDExQjY7QjM2MzsxMTAzIDExNjUgMTFCNjsKK0IzNjQ7QjM2NDsxMTAzIDExNjUgMTFCNztCMzY0OzExMDMgMTE2NSAxMUI3OworQjM2NTtCMzY1OzExMDMgMTE2NSAxMUI4O0IzNjU7MTEwMyAxMTY1IDExQjg7CitCMzY2O0IzNjY7MTEwMyAxMTY1IDExQjk7QjM2NjsxMTAzIDExNjUgMTFCOTsKK0IzNjc7QjM2NzsxMTAzIDExNjUgMTFCQTtCMzY3OzExMDMgMTE2NSAxMUJBOworQjM2ODtCMzY4OzExMDMgMTE2NSAxMUJCO0IzNjg7MTEwMyAxMTY1IDExQkI7CitCMzY5O0IzNjk7MTEwMyAxMTY1IDExQkM7QjM2OTsxMTAzIDExNjUgMTFCQzsKK0IzNkE7QjM2QTsxMTAzIDExNjUgMTFCRDtCMzZBOzExMDMgMTE2NSAxMUJEOworQjM2QjtCMzZCOzExMDMgMTE2NSAxMUJFO0IzNkI7MTEwMyAxMTY1IDExQkU7CitCMzZDO0IzNkM7MTEwMyAxMTY1IDExQkY7QjM2QzsxMTAzIDExNjUgMTFCRjsKK0IzNkQ7QjM2RDsxMTAzIDExNjUgMTFDMDtCMzZEOzExMDMgMTE2NSAxMUMwOworQjM2RTtCMzZFOzExMDMgMTE2NSAxMUMxO0IzNkU7MTEwMyAxMTY1IDExQzE7CitCMzZGO0IzNkY7MTEwMyAxMTY1IDExQzI7QjM2RjsxMTAzIDExNjUgMTFDMjsKK0IzNzA7QjM3MDsxMTAzIDExNjY7QjM3MDsxMTAzIDExNjY7CitCMzcxO0IzNzE7MTEwMyAxMTY2IDExQTg7QjM3MTsxMTAzIDExNjYgMTFBODsKK0IzNzI7QjM3MjsxMTAzIDExNjYgMTFBOTtCMzcyOzExMDMgMTE2NiAxMUE5OworQjM3MztCMzczOzExMDMgMTE2NiAxMUFBO0IzNzM7MTEwMyAxMTY2IDExQUE7CitCMzc0O0IzNzQ7MTEwMyAxMTY2IDExQUI7QjM3NDsxMTAzIDExNjYgMTFBQjsKK0IzNzU7QjM3NTsxMTAzIDExNjYgMTFBQztCMzc1OzExMDMgMTE2NiAxMUFDOworQjM3NjtCMzc2OzExMDMgMTE2NiAxMUFEO0IzNzY7MTEwMyAxMTY2IDExQUQ7CitCMzc3O0IzNzc7MTEwMyAxMTY2IDExQUU7QjM3NzsxMTAzIDExNjYgMTFBRTsKK0IzNzg7QjM3ODsxMTAzIDExNjYgMTFBRjtCMzc4OzExMDMgMTE2NiAxMUFGOworQjM3OTtCMzc5OzExMDMgMTE2NiAxMUIwO0IzNzk7MTEwMyAxMTY2IDExQjA7CitCMzdBO0IzN0E7MTEwMyAxMTY2IDExQjE7QjM3QTsxMTAzIDExNjYgMTFCMTsKK0IzN0I7QjM3QjsxMTAzIDExNjYgMTFCMjtCMzdCOzExMDMgMTE2NiAxMUIyOworQjM3QztCMzdDOzExMDMgMTE2NiAxMUIzO0IzN0M7MTEwMyAxMTY2IDExQjM7CitCMzdEO0IzN0Q7MTEwMyAxMTY2IDExQjQ7QjM3RDsxMTAzIDExNjYgMTFCNDsKK0IzN0U7QjM3RTsxMTAzIDExNjYgMTFCNTtCMzdFOzExMDMgMTE2NiAxMUI1OworQjM3RjtCMzdGOzExMDMgMTE2NiAxMUI2O0IzN0Y7MTEwMyAxMTY2IDExQjY7CitCMzgwO0IzODA7MTEwMyAxMTY2IDExQjc7QjM4MDsxMTAzIDExNjYgMTFCNzsKK0IzODE7QjM4MTsxMTAzIDExNjYgMTFCODtCMzgxOzExMDMgMTE2NiAxMUI4OworQjM4MjtCMzgyOzExMDMgMTE2NiAxMUI5O0IzODI7MTEwMyAxMTY2IDExQjk7CitCMzgzO0IzODM7MTEwMyAxMTY2IDExQkE7QjM4MzsxMTAzIDExNjYgMTFCQTsKK0IzODQ7QjM4NDsxMTAzIDExNjYgMTFCQjtCMzg0OzExMDMgMTE2NiAxMUJCOworQjM4NTtCMzg1OzExMDMgMTE2NiAxMUJDO0IzODU7MTEwMyAxMTY2IDExQkM7CitCMzg2O0IzODY7MTEwMyAxMTY2IDExQkQ7QjM4NjsxMTAzIDExNjYgMTFCRDsKK0IzODc7QjM4NzsxMTAzIDExNjYgMTFCRTtCMzg3OzExMDMgMTE2NiAxMUJFOworQjM4ODtCMzg4OzExMDMgMTE2NiAxMUJGO0IzODg7MTEwMyAxMTY2IDExQkY7CitCMzg5O0IzODk7MTEwMyAxMTY2IDExQzA7QjM4OTsxMTAzIDExNjYgMTFDMDsKK0IzOEE7QjM4QTsxMTAzIDExNjYgMTFDMTtCMzhBOzExMDMgMTE2NiAxMUMxOworQjM4QjtCMzhCOzExMDMgMTE2NiAxMUMyO0IzOEI7MTEwMyAxMTY2IDExQzI7CitCMzhDO0IzOEM7MTEwMyAxMTY3O0IzOEM7MTEwMyAxMTY3OworQjM4RDtCMzhEOzExMDMgMTE2NyAxMUE4O0IzOEQ7MTEwMyAxMTY3IDExQTg7CitCMzhFO0IzOEU7MTEwMyAxMTY3IDExQTk7QjM4RTsxMTAzIDExNjcgMTFBOTsKK0IzOEY7QjM4RjsxMTAzIDExNjcgMTFBQTtCMzhGOzExMDMgMTE2NyAxMUFBOworQjM5MDtCMzkwOzExMDMgMTE2NyAxMUFCO0IzOTA7MTEwMyAxMTY3IDExQUI7CitCMzkxO0IzOTE7MTEwMyAxMTY3IDExQUM7QjM5MTsxMTAzIDExNjcgMTFBQzsKK0IzOTI7QjM5MjsxMTAzIDExNjcgMTFBRDtCMzkyOzExMDMgMTE2NyAxMUFEOworQjM5MztCMzkzOzExMDMgMTE2NyAxMUFFO0IzOTM7MTEwMyAxMTY3IDExQUU7CitCMzk0O0IzOTQ7MTEwMyAxMTY3IDExQUY7QjM5NDsxMTAzIDExNjcgMTFBRjsKK0IzOTU7QjM5NTsxMTAzIDExNjcgMTFCMDtCMzk1OzExMDMgMTE2NyAxMUIwOworQjM5NjtCMzk2OzExMDMgMTE2NyAxMUIxO0IzOTY7MTEwMyAxMTY3IDExQjE7CitCMzk3O0IzOTc7MTEwMyAxMTY3IDExQjI7QjM5NzsxMTAzIDExNjcgMTFCMjsKK0IzOTg7QjM5ODsxMTAzIDExNjcgMTFCMztCMzk4OzExMDMgMTE2NyAxMUIzOworQjM5OTtCMzk5OzExMDMgMTE2NyAxMUI0O0IzOTk7MTEwMyAxMTY3IDExQjQ7CitCMzlBO0IzOUE7MTEwMyAxMTY3IDExQjU7QjM5QTsxMTAzIDExNjcgMTFCNTsKK0IzOUI7QjM5QjsxMTAzIDExNjcgMTFCNjtCMzlCOzExMDMgMTE2NyAxMUI2OworQjM5QztCMzlDOzExMDMgMTE2NyAxMUI3O0IzOUM7MTEwMyAxMTY3IDExQjc7CitCMzlEO0IzOUQ7MTEwMyAxMTY3IDExQjg7QjM5RDsxMTAzIDExNjcgMTFCODsKK0IzOUU7QjM5RTsxMTAzIDExNjcgMTFCOTtCMzlFOzExMDMgMTE2NyAxMUI5OworQjM5RjtCMzlGOzExMDMgMTE2NyAxMUJBO0IzOUY7MTEwMyAxMTY3IDExQkE7CitCM0EwO0IzQTA7MTEwMyAxMTY3IDExQkI7QjNBMDsxMTAzIDExNjcgMTFCQjsKK0IzQTE7QjNBMTsxMTAzIDExNjcgMTFCQztCM0ExOzExMDMgMTE2NyAxMUJDOworQjNBMjtCM0EyOzExMDMgMTE2NyAxMUJEO0IzQTI7MTEwMyAxMTY3IDExQkQ7CitCM0EzO0IzQTM7MTEwMyAxMTY3IDExQkU7QjNBMzsxMTAzIDExNjcgMTFCRTsKK0IzQTQ7QjNBNDsxMTAzIDExNjcgMTFCRjtCM0E0OzExMDMgMTE2NyAxMUJGOworQjNBNTtCM0E1OzExMDMgMTE2NyAxMUMwO0IzQTU7MTEwMyAxMTY3IDExQzA7CitCM0E2O0IzQTY7MTEwMyAxMTY3IDExQzE7QjNBNjsxMTAzIDExNjcgMTFDMTsKK0IzQTc7QjNBNzsxMTAzIDExNjcgMTFDMjtCM0E3OzExMDMgMTE2NyAxMUMyOworQjNBODtCM0E4OzExMDMgMTE2ODtCM0E4OzExMDMgMTE2ODsKK0IzQTk7QjNBOTsxMTAzIDExNjggMTFBODtCM0E5OzExMDMgMTE2OCAxMUE4OworQjNBQTtCM0FBOzExMDMgMTE2OCAxMUE5O0IzQUE7MTEwMyAxMTY4IDExQTk7CitCM0FCO0IzQUI7MTEwMyAxMTY4IDExQUE7QjNBQjsxMTAzIDExNjggMTFBQTsKK0IzQUM7QjNBQzsxMTAzIDExNjggMTFBQjtCM0FDOzExMDMgMTE2OCAxMUFCOworQjNBRDtCM0FEOzExMDMgMTE2OCAxMUFDO0IzQUQ7MTEwMyAxMTY4IDExQUM7CitCM0FFO0IzQUU7MTEwMyAxMTY4IDExQUQ7QjNBRTsxMTAzIDExNjggMTFBRDsKK0IzQUY7QjNBRjsxMTAzIDExNjggMTFBRTtCM0FGOzExMDMgMTE2OCAxMUFFOworQjNCMDtCM0IwOzExMDMgMTE2OCAxMUFGO0IzQjA7MTEwMyAxMTY4IDExQUY7CitCM0IxO0IzQjE7MTEwMyAxMTY4IDExQjA7QjNCMTsxMTAzIDExNjggMTFCMDsKK0IzQjI7QjNCMjsxMTAzIDExNjggMTFCMTtCM0IyOzExMDMgMTE2OCAxMUIxOworQjNCMztCM0IzOzExMDMgMTE2OCAxMUIyO0IzQjM7MTEwMyAxMTY4IDExQjI7CitCM0I0O0IzQjQ7MTEwMyAxMTY4IDExQjM7QjNCNDsxMTAzIDExNjggMTFCMzsKK0IzQjU7QjNCNTsxMTAzIDExNjggMTFCNDtCM0I1OzExMDMgMTE2OCAxMUI0OworQjNCNjtCM0I2OzExMDMgMTE2OCAxMUI1O0IzQjY7MTEwMyAxMTY4IDExQjU7CitCM0I3O0IzQjc7MTEwMyAxMTY4IDExQjY7QjNCNzsxMTAzIDExNjggMTFCNjsKK0IzQjg7QjNCODsxMTAzIDExNjggMTFCNztCM0I4OzExMDMgMTE2OCAxMUI3OworQjNCOTtCM0I5OzExMDMgMTE2OCAxMUI4O0IzQjk7MTEwMyAxMTY4IDExQjg7CitCM0JBO0IzQkE7MTEwMyAxMTY4IDExQjk7QjNCQTsxMTAzIDExNjggMTFCOTsKK0IzQkI7QjNCQjsxMTAzIDExNjggMTFCQTtCM0JCOzExMDMgMTE2OCAxMUJBOworQjNCQztCM0JDOzExMDMgMTE2OCAxMUJCO0IzQkM7MTEwMyAxMTY4IDExQkI7CitCM0JEO0IzQkQ7MTEwMyAxMTY4IDExQkM7QjNCRDsxMTAzIDExNjggMTFCQzsKK0IzQkU7QjNCRTsxMTAzIDExNjggMTFCRDtCM0JFOzExMDMgMTE2OCAxMUJEOworQjNCRjtCM0JGOzExMDMgMTE2OCAxMUJFO0IzQkY7MTEwMyAxMTY4IDExQkU7CitCM0MwO0IzQzA7MTEwMyAxMTY4IDExQkY7QjNDMDsxMTAzIDExNjggMTFCRjsKK0IzQzE7QjNDMTsxMTAzIDExNjggMTFDMDtCM0MxOzExMDMgMTE2OCAxMUMwOworQjNDMjtCM0MyOzExMDMgMTE2OCAxMUMxO0IzQzI7MTEwMyAxMTY4IDExQzE7CitCM0MzO0IzQzM7MTEwMyAxMTY4IDExQzI7QjNDMzsxMTAzIDExNjggMTFDMjsKK0IzQzQ7QjNDNDsxMTAzIDExNjk7QjNDNDsxMTAzIDExNjk7CitCM0M1O0IzQzU7MTEwMyAxMTY5IDExQTg7QjNDNTsxMTAzIDExNjkgMTFBODsKK0IzQzY7QjNDNjsxMTAzIDExNjkgMTFBOTtCM0M2OzExMDMgMTE2OSAxMUE5OworQjNDNztCM0M3OzExMDMgMTE2OSAxMUFBO0IzQzc7MTEwMyAxMTY5IDExQUE7CitCM0M4O0IzQzg7MTEwMyAxMTY5IDExQUI7QjNDODsxMTAzIDExNjkgMTFBQjsKK0IzQzk7QjNDOTsxMTAzIDExNjkgMTFBQztCM0M5OzExMDMgMTE2OSAxMUFDOworQjNDQTtCM0NBOzExMDMgMTE2OSAxMUFEO0IzQ0E7MTEwMyAxMTY5IDExQUQ7CitCM0NCO0IzQ0I7MTEwMyAxMTY5IDExQUU7QjNDQjsxMTAzIDExNjkgMTFBRTsKK0IzQ0M7QjNDQzsxMTAzIDExNjkgMTFBRjtCM0NDOzExMDMgMTE2OSAxMUFGOworQjNDRDtCM0NEOzExMDMgMTE2OSAxMUIwO0IzQ0Q7MTEwMyAxMTY5IDExQjA7CitCM0NFO0IzQ0U7MTEwMyAxMTY5IDExQjE7QjNDRTsxMTAzIDExNjkgMTFCMTsKK0IzQ0Y7QjNDRjsxMTAzIDExNjkgMTFCMjtCM0NGOzExMDMgMTE2OSAxMUIyOworQjNEMDtCM0QwOzExMDMgMTE2OSAxMUIzO0IzRDA7MTEwMyAxMTY5IDExQjM7CitCM0QxO0IzRDE7MTEwMyAxMTY5IDExQjQ7QjNEMTsxMTAzIDExNjkgMTFCNDsKK0IzRDI7QjNEMjsxMTAzIDExNjkgMTFCNTtCM0QyOzExMDMgMTE2OSAxMUI1OworQjNEMztCM0QzOzExMDMgMTE2OSAxMUI2O0IzRDM7MTEwMyAxMTY5IDExQjY7CitCM0Q0O0IzRDQ7MTEwMyAxMTY5IDExQjc7QjNENDsxMTAzIDExNjkgMTFCNzsKK0IzRDU7QjNENTsxMTAzIDExNjkgMTFCODtCM0Q1OzExMDMgMTE2OSAxMUI4OworQjNENjtCM0Q2OzExMDMgMTE2OSAxMUI5O0IzRDY7MTEwMyAxMTY5IDExQjk7CitCM0Q3O0IzRDc7MTEwMyAxMTY5IDExQkE7QjNENzsxMTAzIDExNjkgMTFCQTsKK0IzRDg7QjNEODsxMTAzIDExNjkgMTFCQjtCM0Q4OzExMDMgMTE2OSAxMUJCOworQjNEOTtCM0Q5OzExMDMgMTE2OSAxMUJDO0IzRDk7MTEwMyAxMTY5IDExQkM7CitCM0RBO0IzREE7MTEwMyAxMTY5IDExQkQ7QjNEQTsxMTAzIDExNjkgMTFCRDsKK0IzREI7QjNEQjsxMTAzIDExNjkgMTFCRTtCM0RCOzExMDMgMTE2OSAxMUJFOworQjNEQztCM0RDOzExMDMgMTE2OSAxMUJGO0IzREM7MTEwMyAxMTY5IDExQkY7CitCM0REO0IzREQ7MTEwMyAxMTY5IDExQzA7QjNERDsxMTAzIDExNjkgMTFDMDsKK0IzREU7QjNERTsxMTAzIDExNjkgMTFDMTtCM0RFOzExMDMgMTE2OSAxMUMxOworQjNERjtCM0RGOzExMDMgMTE2OSAxMUMyO0IzREY7MTEwMyAxMTY5IDExQzI7CitCM0UwO0IzRTA7MTEwMyAxMTZBO0IzRTA7MTEwMyAxMTZBOworQjNFMTtCM0UxOzExMDMgMTE2QSAxMUE4O0IzRTE7MTEwMyAxMTZBIDExQTg7CitCM0UyO0IzRTI7MTEwMyAxMTZBIDExQTk7QjNFMjsxMTAzIDExNkEgMTFBOTsKK0IzRTM7QjNFMzsxMTAzIDExNkEgMTFBQTtCM0UzOzExMDMgMTE2QSAxMUFBOworQjNFNDtCM0U0OzExMDMgMTE2QSAxMUFCO0IzRTQ7MTEwMyAxMTZBIDExQUI7CitCM0U1O0IzRTU7MTEwMyAxMTZBIDExQUM7QjNFNTsxMTAzIDExNkEgMTFBQzsKK0IzRTY7QjNFNjsxMTAzIDExNkEgMTFBRDtCM0U2OzExMDMgMTE2QSAxMUFEOworQjNFNztCM0U3OzExMDMgMTE2QSAxMUFFO0IzRTc7MTEwMyAxMTZBIDExQUU7CitCM0U4O0IzRTg7MTEwMyAxMTZBIDExQUY7QjNFODsxMTAzIDExNkEgMTFBRjsKK0IzRTk7QjNFOTsxMTAzIDExNkEgMTFCMDtCM0U5OzExMDMgMTE2QSAxMUIwOworQjNFQTtCM0VBOzExMDMgMTE2QSAxMUIxO0IzRUE7MTEwMyAxMTZBIDExQjE7CitCM0VCO0IzRUI7MTEwMyAxMTZBIDExQjI7QjNFQjsxMTAzIDExNkEgMTFCMjsKK0IzRUM7QjNFQzsxMTAzIDExNkEgMTFCMztCM0VDOzExMDMgMTE2QSAxMUIzOworQjNFRDtCM0VEOzExMDMgMTE2QSAxMUI0O0IzRUQ7MTEwMyAxMTZBIDExQjQ7CitCM0VFO0IzRUU7MTEwMyAxMTZBIDExQjU7QjNFRTsxMTAzIDExNkEgMTFCNTsKK0IzRUY7QjNFRjsxMTAzIDExNkEgMTFCNjtCM0VGOzExMDMgMTE2QSAxMUI2OworQjNGMDtCM0YwOzExMDMgMTE2QSAxMUI3O0IzRjA7MTEwMyAxMTZBIDExQjc7CitCM0YxO0IzRjE7MTEwMyAxMTZBIDExQjg7QjNGMTsxMTAzIDExNkEgMTFCODsKK0IzRjI7QjNGMjsxMTAzIDExNkEgMTFCOTtCM0YyOzExMDMgMTE2QSAxMUI5OworQjNGMztCM0YzOzExMDMgMTE2QSAxMUJBO0IzRjM7MTEwMyAxMTZBIDExQkE7CitCM0Y0O0IzRjQ7MTEwMyAxMTZBIDExQkI7QjNGNDsxMTAzIDExNkEgMTFCQjsKK0IzRjU7QjNGNTsxMTAzIDExNkEgMTFCQztCM0Y1OzExMDMgMTE2QSAxMUJDOworQjNGNjtCM0Y2OzExMDMgMTE2QSAxMUJEO0IzRjY7MTEwMyAxMTZBIDExQkQ7CitCM0Y3O0IzRjc7MTEwMyAxMTZBIDExQkU7QjNGNzsxMTAzIDExNkEgMTFCRTsKK0IzRjg7QjNGODsxMTAzIDExNkEgMTFCRjtCM0Y4OzExMDMgMTE2QSAxMUJGOworQjNGOTtCM0Y5OzExMDMgMTE2QSAxMUMwO0IzRjk7MTEwMyAxMTZBIDExQzA7CitCM0ZBO0IzRkE7MTEwMyAxMTZBIDExQzE7QjNGQTsxMTAzIDExNkEgMTFDMTsKK0IzRkI7QjNGQjsxMTAzIDExNkEgMTFDMjtCM0ZCOzExMDMgMTE2QSAxMUMyOworQjNGQztCM0ZDOzExMDMgMTE2QjtCM0ZDOzExMDMgMTE2QjsKK0IzRkQ7QjNGRDsxMTAzIDExNkIgMTFBODtCM0ZEOzExMDMgMTE2QiAxMUE4OworQjNGRTtCM0ZFOzExMDMgMTE2QiAxMUE5O0IzRkU7MTEwMyAxMTZCIDExQTk7CitCM0ZGO0IzRkY7MTEwMyAxMTZCIDExQUE7QjNGRjsxMTAzIDExNkIgMTFBQTsKK0I0MDA7QjQwMDsxMTAzIDExNkIgMTFBQjtCNDAwOzExMDMgMTE2QiAxMUFCOworQjQwMTtCNDAxOzExMDMgMTE2QiAxMUFDO0I0MDE7MTEwMyAxMTZCIDExQUM7CitCNDAyO0I0MDI7MTEwMyAxMTZCIDExQUQ7QjQwMjsxMTAzIDExNkIgMTFBRDsKK0I0MDM7QjQwMzsxMTAzIDExNkIgMTFBRTtCNDAzOzExMDMgMTE2QiAxMUFFOworQjQwNDtCNDA0OzExMDMgMTE2QiAxMUFGO0I0MDQ7MTEwMyAxMTZCIDExQUY7CitCNDA1O0I0MDU7MTEwMyAxMTZCIDExQjA7QjQwNTsxMTAzIDExNkIgMTFCMDsKK0I0MDY7QjQwNjsxMTAzIDExNkIgMTFCMTtCNDA2OzExMDMgMTE2QiAxMUIxOworQjQwNztCNDA3OzExMDMgMTE2QiAxMUIyO0I0MDc7MTEwMyAxMTZCIDExQjI7CitCNDA4O0I0MDg7MTEwMyAxMTZCIDExQjM7QjQwODsxMTAzIDExNkIgMTFCMzsKK0I0MDk7QjQwOTsxMTAzIDExNkIgMTFCNDtCNDA5OzExMDMgMTE2QiAxMUI0OworQjQwQTtCNDBBOzExMDMgMTE2QiAxMUI1O0I0MEE7MTEwMyAxMTZCIDExQjU7CitCNDBCO0I0MEI7MTEwMyAxMTZCIDExQjY7QjQwQjsxMTAzIDExNkIgMTFCNjsKK0I0MEM7QjQwQzsxMTAzIDExNkIgMTFCNztCNDBDOzExMDMgMTE2QiAxMUI3OworQjQwRDtCNDBEOzExMDMgMTE2QiAxMUI4O0I0MEQ7MTEwMyAxMTZCIDExQjg7CitCNDBFO0I0MEU7MTEwMyAxMTZCIDExQjk7QjQwRTsxMTAzIDExNkIgMTFCOTsKK0I0MEY7QjQwRjsxMTAzIDExNkIgMTFCQTtCNDBGOzExMDMgMTE2QiAxMUJBOworQjQxMDtCNDEwOzExMDMgMTE2QiAxMUJCO0I0MTA7MTEwMyAxMTZCIDExQkI7CitCNDExO0I0MTE7MTEwMyAxMTZCIDExQkM7QjQxMTsxMTAzIDExNkIgMTFCQzsKK0I0MTI7QjQxMjsxMTAzIDExNkIgMTFCRDtCNDEyOzExMDMgMTE2QiAxMUJEOworQjQxMztCNDEzOzExMDMgMTE2QiAxMUJFO0I0MTM7MTEwMyAxMTZCIDExQkU7CitCNDE0O0I0MTQ7MTEwMyAxMTZCIDExQkY7QjQxNDsxMTAzIDExNkIgMTFCRjsKK0I0MTU7QjQxNTsxMTAzIDExNkIgMTFDMDtCNDE1OzExMDMgMTE2QiAxMUMwOworQjQxNjtCNDE2OzExMDMgMTE2QiAxMUMxO0I0MTY7MTEwMyAxMTZCIDExQzE7CitCNDE3O0I0MTc7MTEwMyAxMTZCIDExQzI7QjQxNzsxMTAzIDExNkIgMTFDMjsKK0I0MTg7QjQxODsxMTAzIDExNkM7QjQxODsxMTAzIDExNkM7CitCNDE5O0I0MTk7MTEwMyAxMTZDIDExQTg7QjQxOTsxMTAzIDExNkMgMTFBODsKK0I0MUE7QjQxQTsxMTAzIDExNkMgMTFBOTtCNDFBOzExMDMgMTE2QyAxMUE5OworQjQxQjtCNDFCOzExMDMgMTE2QyAxMUFBO0I0MUI7MTEwMyAxMTZDIDExQUE7CitCNDFDO0I0MUM7MTEwMyAxMTZDIDExQUI7QjQxQzsxMTAzIDExNkMgMTFBQjsKK0I0MUQ7QjQxRDsxMTAzIDExNkMgMTFBQztCNDFEOzExMDMgMTE2QyAxMUFDOworQjQxRTtCNDFFOzExMDMgMTE2QyAxMUFEO0I0MUU7MTEwMyAxMTZDIDExQUQ7CitCNDFGO0I0MUY7MTEwMyAxMTZDIDExQUU7QjQxRjsxMTAzIDExNkMgMTFBRTsKK0I0MjA7QjQyMDsxMTAzIDExNkMgMTFBRjtCNDIwOzExMDMgMTE2QyAxMUFGOworQjQyMTtCNDIxOzExMDMgMTE2QyAxMUIwO0I0MjE7MTEwMyAxMTZDIDExQjA7CitCNDIyO0I0MjI7MTEwMyAxMTZDIDExQjE7QjQyMjsxMTAzIDExNkMgMTFCMTsKK0I0MjM7QjQyMzsxMTAzIDExNkMgMTFCMjtCNDIzOzExMDMgMTE2QyAxMUIyOworQjQyNDtCNDI0OzExMDMgMTE2QyAxMUIzO0I0MjQ7MTEwMyAxMTZDIDExQjM7CitCNDI1O0I0MjU7MTEwMyAxMTZDIDExQjQ7QjQyNTsxMTAzIDExNkMgMTFCNDsKK0I0MjY7QjQyNjsxMTAzIDExNkMgMTFCNTtCNDI2OzExMDMgMTE2QyAxMUI1OworQjQyNztCNDI3OzExMDMgMTE2QyAxMUI2O0I0Mjc7MTEwMyAxMTZDIDExQjY7CitCNDI4O0I0Mjg7MTEwMyAxMTZDIDExQjc7QjQyODsxMTAzIDExNkMgMTFCNzsKK0I0Mjk7QjQyOTsxMTAzIDExNkMgMTFCODtCNDI5OzExMDMgMTE2QyAxMUI4OworQjQyQTtCNDJBOzExMDMgMTE2QyAxMUI5O0I0MkE7MTEwMyAxMTZDIDExQjk7CitCNDJCO0I0MkI7MTEwMyAxMTZDIDExQkE7QjQyQjsxMTAzIDExNkMgMTFCQTsKK0I0MkM7QjQyQzsxMTAzIDExNkMgMTFCQjtCNDJDOzExMDMgMTE2QyAxMUJCOworQjQyRDtCNDJEOzExMDMgMTE2QyAxMUJDO0I0MkQ7MTEwMyAxMTZDIDExQkM7CitCNDJFO0I0MkU7MTEwMyAxMTZDIDExQkQ7QjQyRTsxMTAzIDExNkMgMTFCRDsKK0I0MkY7QjQyRjsxMTAzIDExNkMgMTFCRTtCNDJGOzExMDMgMTE2QyAxMUJFOworQjQzMDtCNDMwOzExMDMgMTE2QyAxMUJGO0I0MzA7MTEwMyAxMTZDIDExQkY7CitCNDMxO0I0MzE7MTEwMyAxMTZDIDExQzA7QjQzMTsxMTAzIDExNkMgMTFDMDsKK0I0MzI7QjQzMjsxMTAzIDExNkMgMTFDMTtCNDMyOzExMDMgMTE2QyAxMUMxOworQjQzMztCNDMzOzExMDMgMTE2QyAxMUMyO0I0MzM7MTEwMyAxMTZDIDExQzI7CitCNDM0O0I0MzQ7MTEwMyAxMTZEO0I0MzQ7MTEwMyAxMTZEOworQjQzNTtCNDM1OzExMDMgMTE2RCAxMUE4O0I0MzU7MTEwMyAxMTZEIDExQTg7CitCNDM2O0I0MzY7MTEwMyAxMTZEIDExQTk7QjQzNjsxMTAzIDExNkQgMTFBOTsKK0I0Mzc7QjQzNzsxMTAzIDExNkQgMTFBQTtCNDM3OzExMDMgMTE2RCAxMUFBOworQjQzODtCNDM4OzExMDMgMTE2RCAxMUFCO0I0Mzg7MTEwMyAxMTZEIDExQUI7CitCNDM5O0I0Mzk7MTEwMyAxMTZEIDExQUM7QjQzOTsxMTAzIDExNkQgMTFBQzsKK0I0M0E7QjQzQTsxMTAzIDExNkQgMTFBRDtCNDNBOzExMDMgMTE2RCAxMUFEOworQjQzQjtCNDNCOzExMDMgMTE2RCAxMUFFO0I0M0I7MTEwMyAxMTZEIDExQUU7CitCNDNDO0I0M0M7MTEwMyAxMTZEIDExQUY7QjQzQzsxMTAzIDExNkQgMTFBRjsKK0I0M0Q7QjQzRDsxMTAzIDExNkQgMTFCMDtCNDNEOzExMDMgMTE2RCAxMUIwOworQjQzRTtCNDNFOzExMDMgMTE2RCAxMUIxO0I0M0U7MTEwMyAxMTZEIDExQjE7CitCNDNGO0I0M0Y7MTEwMyAxMTZEIDExQjI7QjQzRjsxMTAzIDExNkQgMTFCMjsKK0I0NDA7QjQ0MDsxMTAzIDExNkQgMTFCMztCNDQwOzExMDMgMTE2RCAxMUIzOworQjQ0MTtCNDQxOzExMDMgMTE2RCAxMUI0O0I0NDE7MTEwMyAxMTZEIDExQjQ7CitCNDQyO0I0NDI7MTEwMyAxMTZEIDExQjU7QjQ0MjsxMTAzIDExNkQgMTFCNTsKK0I0NDM7QjQ0MzsxMTAzIDExNkQgMTFCNjtCNDQzOzExMDMgMTE2RCAxMUI2OworQjQ0NDtCNDQ0OzExMDMgMTE2RCAxMUI3O0I0NDQ7MTEwMyAxMTZEIDExQjc7CitCNDQ1O0I0NDU7MTEwMyAxMTZEIDExQjg7QjQ0NTsxMTAzIDExNkQgMTFCODsKK0I0NDY7QjQ0NjsxMTAzIDExNkQgMTFCOTtCNDQ2OzExMDMgMTE2RCAxMUI5OworQjQ0NztCNDQ3OzExMDMgMTE2RCAxMUJBO0I0NDc7MTEwMyAxMTZEIDExQkE7CitCNDQ4O0I0NDg7MTEwMyAxMTZEIDExQkI7QjQ0ODsxMTAzIDExNkQgMTFCQjsKK0I0NDk7QjQ0OTsxMTAzIDExNkQgMTFCQztCNDQ5OzExMDMgMTE2RCAxMUJDOworQjQ0QTtCNDRBOzExMDMgMTE2RCAxMUJEO0I0NEE7MTEwMyAxMTZEIDExQkQ7CitCNDRCO0I0NEI7MTEwMyAxMTZEIDExQkU7QjQ0QjsxMTAzIDExNkQgMTFCRTsKK0I0NEM7QjQ0QzsxMTAzIDExNkQgMTFCRjtCNDRDOzExMDMgMTE2RCAxMUJGOworQjQ0RDtCNDREOzExMDMgMTE2RCAxMUMwO0I0NEQ7MTEwMyAxMTZEIDExQzA7CitCNDRFO0I0NEU7MTEwMyAxMTZEIDExQzE7QjQ0RTsxMTAzIDExNkQgMTFDMTsKK0I0NEY7QjQ0RjsxMTAzIDExNkQgMTFDMjtCNDRGOzExMDMgMTE2RCAxMUMyOworQjQ1MDtCNDUwOzExMDMgMTE2RTtCNDUwOzExMDMgMTE2RTsKK0I0NTE7QjQ1MTsxMTAzIDExNkUgMTFBODtCNDUxOzExMDMgMTE2RSAxMUE4OworQjQ1MjtCNDUyOzExMDMgMTE2RSAxMUE5O0I0NTI7MTEwMyAxMTZFIDExQTk7CitCNDUzO0I0NTM7MTEwMyAxMTZFIDExQUE7QjQ1MzsxMTAzIDExNkUgMTFBQTsKK0I0NTQ7QjQ1NDsxMTAzIDExNkUgMTFBQjtCNDU0OzExMDMgMTE2RSAxMUFCOworQjQ1NTtCNDU1OzExMDMgMTE2RSAxMUFDO0I0NTU7MTEwMyAxMTZFIDExQUM7CitCNDU2O0I0NTY7MTEwMyAxMTZFIDExQUQ7QjQ1NjsxMTAzIDExNkUgMTFBRDsKK0I0NTc7QjQ1NzsxMTAzIDExNkUgMTFBRTtCNDU3OzExMDMgMTE2RSAxMUFFOworQjQ1ODtCNDU4OzExMDMgMTE2RSAxMUFGO0I0NTg7MTEwMyAxMTZFIDExQUY7CitCNDU5O0I0NTk7MTEwMyAxMTZFIDExQjA7QjQ1OTsxMTAzIDExNkUgMTFCMDsKK0I0NUE7QjQ1QTsxMTAzIDExNkUgMTFCMTtCNDVBOzExMDMgMTE2RSAxMUIxOworQjQ1QjtCNDVCOzExMDMgMTE2RSAxMUIyO0I0NUI7MTEwMyAxMTZFIDExQjI7CitCNDVDO0I0NUM7MTEwMyAxMTZFIDExQjM7QjQ1QzsxMTAzIDExNkUgMTFCMzsKK0I0NUQ7QjQ1RDsxMTAzIDExNkUgMTFCNDtCNDVEOzExMDMgMTE2RSAxMUI0OworQjQ1RTtCNDVFOzExMDMgMTE2RSAxMUI1O0I0NUU7MTEwMyAxMTZFIDExQjU7CitCNDVGO0I0NUY7MTEwMyAxMTZFIDExQjY7QjQ1RjsxMTAzIDExNkUgMTFCNjsKK0I0NjA7QjQ2MDsxMTAzIDExNkUgMTFCNztCNDYwOzExMDMgMTE2RSAxMUI3OworQjQ2MTtCNDYxOzExMDMgMTE2RSAxMUI4O0I0NjE7MTEwMyAxMTZFIDExQjg7CitCNDYyO0I0NjI7MTEwMyAxMTZFIDExQjk7QjQ2MjsxMTAzIDExNkUgMTFCOTsKK0I0NjM7QjQ2MzsxMTAzIDExNkUgMTFCQTtCNDYzOzExMDMgMTE2RSAxMUJBOworQjQ2NDtCNDY0OzExMDMgMTE2RSAxMUJCO0I0NjQ7MTEwMyAxMTZFIDExQkI7CitCNDY1O0I0NjU7MTEwMyAxMTZFIDExQkM7QjQ2NTsxMTAzIDExNkUgMTFCQzsKK0I0NjY7QjQ2NjsxMTAzIDExNkUgMTFCRDtCNDY2OzExMDMgMTE2RSAxMUJEOworQjQ2NztCNDY3OzExMDMgMTE2RSAxMUJFO0I0Njc7MTEwMyAxMTZFIDExQkU7CitCNDY4O0I0Njg7MTEwMyAxMTZFIDExQkY7QjQ2ODsxMTAzIDExNkUgMTFCRjsKK0I0Njk7QjQ2OTsxMTAzIDExNkUgMTFDMDtCNDY5OzExMDMgMTE2RSAxMUMwOworQjQ2QTtCNDZBOzExMDMgMTE2RSAxMUMxO0I0NkE7MTEwMyAxMTZFIDExQzE7CitCNDZCO0I0NkI7MTEwMyAxMTZFIDExQzI7QjQ2QjsxMTAzIDExNkUgMTFDMjsKK0I0NkM7QjQ2QzsxMTAzIDExNkY7QjQ2QzsxMTAzIDExNkY7CitCNDZEO0I0NkQ7MTEwMyAxMTZGIDExQTg7QjQ2RDsxMTAzIDExNkYgMTFBODsKK0I0NkU7QjQ2RTsxMTAzIDExNkYgMTFBOTtCNDZFOzExMDMgMTE2RiAxMUE5OworQjQ2RjtCNDZGOzExMDMgMTE2RiAxMUFBO0I0NkY7MTEwMyAxMTZGIDExQUE7CitCNDcwO0I0NzA7MTEwMyAxMTZGIDExQUI7QjQ3MDsxMTAzIDExNkYgMTFBQjsKK0I0NzE7QjQ3MTsxMTAzIDExNkYgMTFBQztCNDcxOzExMDMgMTE2RiAxMUFDOworQjQ3MjtCNDcyOzExMDMgMTE2RiAxMUFEO0I0NzI7MTEwMyAxMTZGIDExQUQ7CitCNDczO0I0NzM7MTEwMyAxMTZGIDExQUU7QjQ3MzsxMTAzIDExNkYgMTFBRTsKK0I0NzQ7QjQ3NDsxMTAzIDExNkYgMTFBRjtCNDc0OzExMDMgMTE2RiAxMUFGOworQjQ3NTtCNDc1OzExMDMgMTE2RiAxMUIwO0I0NzU7MTEwMyAxMTZGIDExQjA7CitCNDc2O0I0NzY7MTEwMyAxMTZGIDExQjE7QjQ3NjsxMTAzIDExNkYgMTFCMTsKK0I0Nzc7QjQ3NzsxMTAzIDExNkYgMTFCMjtCNDc3OzExMDMgMTE2RiAxMUIyOworQjQ3ODtCNDc4OzExMDMgMTE2RiAxMUIzO0I0Nzg7MTEwMyAxMTZGIDExQjM7CitCNDc5O0I0Nzk7MTEwMyAxMTZGIDExQjQ7QjQ3OTsxMTAzIDExNkYgMTFCNDsKK0I0N0E7QjQ3QTsxMTAzIDExNkYgMTFCNTtCNDdBOzExMDMgMTE2RiAxMUI1OworQjQ3QjtCNDdCOzExMDMgMTE2RiAxMUI2O0I0N0I7MTEwMyAxMTZGIDExQjY7CitCNDdDO0I0N0M7MTEwMyAxMTZGIDExQjc7QjQ3QzsxMTAzIDExNkYgMTFCNzsKK0I0N0Q7QjQ3RDsxMTAzIDExNkYgMTFCODtCNDdEOzExMDMgMTE2RiAxMUI4OworQjQ3RTtCNDdFOzExMDMgMTE2RiAxMUI5O0I0N0U7MTEwMyAxMTZGIDExQjk7CitCNDdGO0I0N0Y7MTEwMyAxMTZGIDExQkE7QjQ3RjsxMTAzIDExNkYgMTFCQTsKK0I0ODA7QjQ4MDsxMTAzIDExNkYgMTFCQjtCNDgwOzExMDMgMTE2RiAxMUJCOworQjQ4MTtCNDgxOzExMDMgMTE2RiAxMUJDO0I0ODE7MTEwMyAxMTZGIDExQkM7CitCNDgyO0I0ODI7MTEwMyAxMTZGIDExQkQ7QjQ4MjsxMTAzIDExNkYgMTFCRDsKK0I0ODM7QjQ4MzsxMTAzIDExNkYgMTFCRTtCNDgzOzExMDMgMTE2RiAxMUJFOworQjQ4NDtCNDg0OzExMDMgMTE2RiAxMUJGO0I0ODQ7MTEwMyAxMTZGIDExQkY7CitCNDg1O0I0ODU7MTEwMyAxMTZGIDExQzA7QjQ4NTsxMTAzIDExNkYgMTFDMDsKK0I0ODY7QjQ4NjsxMTAzIDExNkYgMTFDMTtCNDg2OzExMDMgMTE2RiAxMUMxOworQjQ4NztCNDg3OzExMDMgMTE2RiAxMUMyO0I0ODc7MTEwMyAxMTZGIDExQzI7CitCNDg4O0I0ODg7MTEwMyAxMTcwO0I0ODg7MTEwMyAxMTcwOworQjQ4OTtCNDg5OzExMDMgMTE3MCAxMUE4O0I0ODk7MTEwMyAxMTcwIDExQTg7CitCNDhBO0I0OEE7MTEwMyAxMTcwIDExQTk7QjQ4QTsxMTAzIDExNzAgMTFBOTsKK0I0OEI7QjQ4QjsxMTAzIDExNzAgMTFBQTtCNDhCOzExMDMgMTE3MCAxMUFBOworQjQ4QztCNDhDOzExMDMgMTE3MCAxMUFCO0I0OEM7MTEwMyAxMTcwIDExQUI7CitCNDhEO0I0OEQ7MTEwMyAxMTcwIDExQUM7QjQ4RDsxMTAzIDExNzAgMTFBQzsKK0I0OEU7QjQ4RTsxMTAzIDExNzAgMTFBRDtCNDhFOzExMDMgMTE3MCAxMUFEOworQjQ4RjtCNDhGOzExMDMgMTE3MCAxMUFFO0I0OEY7MTEwMyAxMTcwIDExQUU7CitCNDkwO0I0OTA7MTEwMyAxMTcwIDExQUY7QjQ5MDsxMTAzIDExNzAgMTFBRjsKK0I0OTE7QjQ5MTsxMTAzIDExNzAgMTFCMDtCNDkxOzExMDMgMTE3MCAxMUIwOworQjQ5MjtCNDkyOzExMDMgMTE3MCAxMUIxO0I0OTI7MTEwMyAxMTcwIDExQjE7CitCNDkzO0I0OTM7MTEwMyAxMTcwIDExQjI7QjQ5MzsxMTAzIDExNzAgMTFCMjsKK0I0OTQ7QjQ5NDsxMTAzIDExNzAgMTFCMztCNDk0OzExMDMgMTE3MCAxMUIzOworQjQ5NTtCNDk1OzExMDMgMTE3MCAxMUI0O0I0OTU7MTEwMyAxMTcwIDExQjQ7CitCNDk2O0I0OTY7MTEwMyAxMTcwIDExQjU7QjQ5NjsxMTAzIDExNzAgMTFCNTsKK0I0OTc7QjQ5NzsxMTAzIDExNzAgMTFCNjtCNDk3OzExMDMgMTE3MCAxMUI2OworQjQ5ODtCNDk4OzExMDMgMTE3MCAxMUI3O0I0OTg7MTEwMyAxMTcwIDExQjc7CitCNDk5O0I0OTk7MTEwMyAxMTcwIDExQjg7QjQ5OTsxMTAzIDExNzAgMTFCODsKK0I0OUE7QjQ5QTsxMTAzIDExNzAgMTFCOTtCNDlBOzExMDMgMTE3MCAxMUI5OworQjQ5QjtCNDlCOzExMDMgMTE3MCAxMUJBO0I0OUI7MTEwMyAxMTcwIDExQkE7CitCNDlDO0I0OUM7MTEwMyAxMTcwIDExQkI7QjQ5QzsxMTAzIDExNzAgMTFCQjsKK0I0OUQ7QjQ5RDsxMTAzIDExNzAgMTFCQztCNDlEOzExMDMgMTE3MCAxMUJDOworQjQ5RTtCNDlFOzExMDMgMTE3MCAxMUJEO0I0OUU7MTEwMyAxMTcwIDExQkQ7CitCNDlGO0I0OUY7MTEwMyAxMTcwIDExQkU7QjQ5RjsxMTAzIDExNzAgMTFCRTsKK0I0QTA7QjRBMDsxMTAzIDExNzAgMTFCRjtCNEEwOzExMDMgMTE3MCAxMUJGOworQjRBMTtCNEExOzExMDMgMTE3MCAxMUMwO0I0QTE7MTEwMyAxMTcwIDExQzA7CitCNEEyO0I0QTI7MTEwMyAxMTcwIDExQzE7QjRBMjsxMTAzIDExNzAgMTFDMTsKK0I0QTM7QjRBMzsxMTAzIDExNzAgMTFDMjtCNEEzOzExMDMgMTE3MCAxMUMyOworQjRBNDtCNEE0OzExMDMgMTE3MTtCNEE0OzExMDMgMTE3MTsKK0I0QTU7QjRBNTsxMTAzIDExNzEgMTFBODtCNEE1OzExMDMgMTE3MSAxMUE4OworQjRBNjtCNEE2OzExMDMgMTE3MSAxMUE5O0I0QTY7MTEwMyAxMTcxIDExQTk7CitCNEE3O0I0QTc7MTEwMyAxMTcxIDExQUE7QjRBNzsxMTAzIDExNzEgMTFBQTsKK0I0QTg7QjRBODsxMTAzIDExNzEgMTFBQjtCNEE4OzExMDMgMTE3MSAxMUFCOworQjRBOTtCNEE5OzExMDMgMTE3MSAxMUFDO0I0QTk7MTEwMyAxMTcxIDExQUM7CitCNEFBO0I0QUE7MTEwMyAxMTcxIDExQUQ7QjRBQTsxMTAzIDExNzEgMTFBRDsKK0I0QUI7QjRBQjsxMTAzIDExNzEgMTFBRTtCNEFCOzExMDMgMTE3MSAxMUFFOworQjRBQztCNEFDOzExMDMgMTE3MSAxMUFGO0I0QUM7MTEwMyAxMTcxIDExQUY7CitCNEFEO0I0QUQ7MTEwMyAxMTcxIDExQjA7QjRBRDsxMTAzIDExNzEgMTFCMDsKK0I0QUU7QjRBRTsxMTAzIDExNzEgMTFCMTtCNEFFOzExMDMgMTE3MSAxMUIxOworQjRBRjtCNEFGOzExMDMgMTE3MSAxMUIyO0I0QUY7MTEwMyAxMTcxIDExQjI7CitCNEIwO0I0QjA7MTEwMyAxMTcxIDExQjM7QjRCMDsxMTAzIDExNzEgMTFCMzsKK0I0QjE7QjRCMTsxMTAzIDExNzEgMTFCNDtCNEIxOzExMDMgMTE3MSAxMUI0OworQjRCMjtCNEIyOzExMDMgMTE3MSAxMUI1O0I0QjI7MTEwMyAxMTcxIDExQjU7CitCNEIzO0I0QjM7MTEwMyAxMTcxIDExQjY7QjRCMzsxMTAzIDExNzEgMTFCNjsKK0I0QjQ7QjRCNDsxMTAzIDExNzEgMTFCNztCNEI0OzExMDMgMTE3MSAxMUI3OworQjRCNTtCNEI1OzExMDMgMTE3MSAxMUI4O0I0QjU7MTEwMyAxMTcxIDExQjg7CitCNEI2O0I0QjY7MTEwMyAxMTcxIDExQjk7QjRCNjsxMTAzIDExNzEgMTFCOTsKK0I0Qjc7QjRCNzsxMTAzIDExNzEgMTFCQTtCNEI3OzExMDMgMTE3MSAxMUJBOworQjRCODtCNEI4OzExMDMgMTE3MSAxMUJCO0I0Qjg7MTEwMyAxMTcxIDExQkI7CitCNEI5O0I0Qjk7MTEwMyAxMTcxIDExQkM7QjRCOTsxMTAzIDExNzEgMTFCQzsKK0I0QkE7QjRCQTsxMTAzIDExNzEgMTFCRDtCNEJBOzExMDMgMTE3MSAxMUJEOworQjRCQjtCNEJCOzExMDMgMTE3MSAxMUJFO0I0QkI7MTEwMyAxMTcxIDExQkU7CitCNEJDO0I0QkM7MTEwMyAxMTcxIDExQkY7QjRCQzsxMTAzIDExNzEgMTFCRjsKK0I0QkQ7QjRCRDsxMTAzIDExNzEgMTFDMDtCNEJEOzExMDMgMTE3MSAxMUMwOworQjRCRTtCNEJFOzExMDMgMTE3MSAxMUMxO0I0QkU7MTEwMyAxMTcxIDExQzE7CitCNEJGO0I0QkY7MTEwMyAxMTcxIDExQzI7QjRCRjsxMTAzIDExNzEgMTFDMjsKK0I0QzA7QjRDMDsxMTAzIDExNzI7QjRDMDsxMTAzIDExNzI7CitCNEMxO0I0QzE7MTEwMyAxMTcyIDExQTg7QjRDMTsxMTAzIDExNzIgMTFBODsKK0I0QzI7QjRDMjsxMTAzIDExNzIgMTFBOTtCNEMyOzExMDMgMTE3MiAxMUE5OworQjRDMztCNEMzOzExMDMgMTE3MiAxMUFBO0I0QzM7MTEwMyAxMTcyIDExQUE7CitCNEM0O0I0QzQ7MTEwMyAxMTcyIDExQUI7QjRDNDsxMTAzIDExNzIgMTFBQjsKK0I0QzU7QjRDNTsxMTAzIDExNzIgMTFBQztCNEM1OzExMDMgMTE3MiAxMUFDOworQjRDNjtCNEM2OzExMDMgMTE3MiAxMUFEO0I0QzY7MTEwMyAxMTcyIDExQUQ7CitCNEM3O0I0Qzc7MTEwMyAxMTcyIDExQUU7QjRDNzsxMTAzIDExNzIgMTFBRTsKK0I0Qzg7QjRDODsxMTAzIDExNzIgMTFBRjtCNEM4OzExMDMgMTE3MiAxMUFGOworQjRDOTtCNEM5OzExMDMgMTE3MiAxMUIwO0I0Qzk7MTEwMyAxMTcyIDExQjA7CitCNENBO0I0Q0E7MTEwMyAxMTcyIDExQjE7QjRDQTsxMTAzIDExNzIgMTFCMTsKK0I0Q0I7QjRDQjsxMTAzIDExNzIgMTFCMjtCNENCOzExMDMgMTE3MiAxMUIyOworQjRDQztCNENDOzExMDMgMTE3MiAxMUIzO0I0Q0M7MTEwMyAxMTcyIDExQjM7CitCNENEO0I0Q0Q7MTEwMyAxMTcyIDExQjQ7QjRDRDsxMTAzIDExNzIgMTFCNDsKK0I0Q0U7QjRDRTsxMTAzIDExNzIgMTFCNTtCNENFOzExMDMgMTE3MiAxMUI1OworQjRDRjtCNENGOzExMDMgMTE3MiAxMUI2O0I0Q0Y7MTEwMyAxMTcyIDExQjY7CitCNEQwO0I0RDA7MTEwMyAxMTcyIDExQjc7QjREMDsxMTAzIDExNzIgMTFCNzsKK0I0RDE7QjREMTsxMTAzIDExNzIgMTFCODtCNEQxOzExMDMgMTE3MiAxMUI4OworQjREMjtCNEQyOzExMDMgMTE3MiAxMUI5O0I0RDI7MTEwMyAxMTcyIDExQjk7CitCNEQzO0I0RDM7MTEwMyAxMTcyIDExQkE7QjREMzsxMTAzIDExNzIgMTFCQTsKK0I0RDQ7QjRENDsxMTAzIDExNzIgMTFCQjtCNEQ0OzExMDMgMTE3MiAxMUJCOworQjRENTtCNEQ1OzExMDMgMTE3MiAxMUJDO0I0RDU7MTEwMyAxMTcyIDExQkM7CitCNEQ2O0I0RDY7MTEwMyAxMTcyIDExQkQ7QjRENjsxMTAzIDExNzIgMTFCRDsKK0I0RDc7QjRENzsxMTAzIDExNzIgMTFCRTtCNEQ3OzExMDMgMTE3MiAxMUJFOworQjREODtCNEQ4OzExMDMgMTE3MiAxMUJGO0I0RDg7MTEwMyAxMTcyIDExQkY7CitCNEQ5O0I0RDk7MTEwMyAxMTcyIDExQzA7QjREOTsxMTAzIDExNzIgMTFDMDsKK0I0REE7QjREQTsxMTAzIDExNzIgMTFDMTtCNERBOzExMDMgMTE3MiAxMUMxOworQjREQjtCNERCOzExMDMgMTE3MiAxMUMyO0I0REI7MTEwMyAxMTcyIDExQzI7CitCNERDO0I0REM7MTEwMyAxMTczO0I0REM7MTEwMyAxMTczOworQjRERDtCNEREOzExMDMgMTE3MyAxMUE4O0I0REQ7MTEwMyAxMTczIDExQTg7CitCNERFO0I0REU7MTEwMyAxMTczIDExQTk7QjRERTsxMTAzIDExNzMgMTFBOTsKK0I0REY7QjRERjsxMTAzIDExNzMgMTFBQTtCNERGOzExMDMgMTE3MyAxMUFBOworQjRFMDtCNEUwOzExMDMgMTE3MyAxMUFCO0I0RTA7MTEwMyAxMTczIDExQUI7CitCNEUxO0I0RTE7MTEwMyAxMTczIDExQUM7QjRFMTsxMTAzIDExNzMgMTFBQzsKK0I0RTI7QjRFMjsxMTAzIDExNzMgMTFBRDtCNEUyOzExMDMgMTE3MyAxMUFEOworQjRFMztCNEUzOzExMDMgMTE3MyAxMUFFO0I0RTM7MTEwMyAxMTczIDExQUU7CitCNEU0O0I0RTQ7MTEwMyAxMTczIDExQUY7QjRFNDsxMTAzIDExNzMgMTFBRjsKK0I0RTU7QjRFNTsxMTAzIDExNzMgMTFCMDtCNEU1OzExMDMgMTE3MyAxMUIwOworQjRFNjtCNEU2OzExMDMgMTE3MyAxMUIxO0I0RTY7MTEwMyAxMTczIDExQjE7CitCNEU3O0I0RTc7MTEwMyAxMTczIDExQjI7QjRFNzsxMTAzIDExNzMgMTFCMjsKK0I0RTg7QjRFODsxMTAzIDExNzMgMTFCMztCNEU4OzExMDMgMTE3MyAxMUIzOworQjRFOTtCNEU5OzExMDMgMTE3MyAxMUI0O0I0RTk7MTEwMyAxMTczIDExQjQ7CitCNEVBO0I0RUE7MTEwMyAxMTczIDExQjU7QjRFQTsxMTAzIDExNzMgMTFCNTsKK0I0RUI7QjRFQjsxMTAzIDExNzMgMTFCNjtCNEVCOzExMDMgMTE3MyAxMUI2OworQjRFQztCNEVDOzExMDMgMTE3MyAxMUI3O0I0RUM7MTEwMyAxMTczIDExQjc7CitCNEVEO0I0RUQ7MTEwMyAxMTczIDExQjg7QjRFRDsxMTAzIDExNzMgMTFCODsKK0I0RUU7QjRFRTsxMTAzIDExNzMgMTFCOTtCNEVFOzExMDMgMTE3MyAxMUI5OworQjRFRjtCNEVGOzExMDMgMTE3MyAxMUJBO0I0RUY7MTEwMyAxMTczIDExQkE7CitCNEYwO0I0RjA7MTEwMyAxMTczIDExQkI7QjRGMDsxMTAzIDExNzMgMTFCQjsKK0I0RjE7QjRGMTsxMTAzIDExNzMgMTFCQztCNEYxOzExMDMgMTE3MyAxMUJDOworQjRGMjtCNEYyOzExMDMgMTE3MyAxMUJEO0I0RjI7MTEwMyAxMTczIDExQkQ7CitCNEYzO0I0RjM7MTEwMyAxMTczIDExQkU7QjRGMzsxMTAzIDExNzMgMTFCRTsKK0I0RjQ7QjRGNDsxMTAzIDExNzMgMTFCRjtCNEY0OzExMDMgMTE3MyAxMUJGOworQjRGNTtCNEY1OzExMDMgMTE3MyAxMUMwO0I0RjU7MTEwMyAxMTczIDExQzA7CitCNEY2O0I0RjY7MTEwMyAxMTczIDExQzE7QjRGNjsxMTAzIDExNzMgMTFDMTsKK0I0Rjc7QjRGNzsxMTAzIDExNzMgMTFDMjtCNEY3OzExMDMgMTE3MyAxMUMyOworQjRGODtCNEY4OzExMDMgMTE3NDtCNEY4OzExMDMgMTE3NDsKK0I0Rjk7QjRGOTsxMTAzIDExNzQgMTFBODtCNEY5OzExMDMgMTE3NCAxMUE4OworQjRGQTtCNEZBOzExMDMgMTE3NCAxMUE5O0I0RkE7MTEwMyAxMTc0IDExQTk7CitCNEZCO0I0RkI7MTEwMyAxMTc0IDExQUE7QjRGQjsxMTAzIDExNzQgMTFBQTsKK0I0RkM7QjRGQzsxMTAzIDExNzQgMTFBQjtCNEZDOzExMDMgMTE3NCAxMUFCOworQjRGRDtCNEZEOzExMDMgMTE3NCAxMUFDO0I0RkQ7MTEwMyAxMTc0IDExQUM7CitCNEZFO0I0RkU7MTEwMyAxMTc0IDExQUQ7QjRGRTsxMTAzIDExNzQgMTFBRDsKK0I0RkY7QjRGRjsxMTAzIDExNzQgMTFBRTtCNEZGOzExMDMgMTE3NCAxMUFFOworQjUwMDtCNTAwOzExMDMgMTE3NCAxMUFGO0I1MDA7MTEwMyAxMTc0IDExQUY7CitCNTAxO0I1MDE7MTEwMyAxMTc0IDExQjA7QjUwMTsxMTAzIDExNzQgMTFCMDsKK0I1MDI7QjUwMjsxMTAzIDExNzQgMTFCMTtCNTAyOzExMDMgMTE3NCAxMUIxOworQjUwMztCNTAzOzExMDMgMTE3NCAxMUIyO0I1MDM7MTEwMyAxMTc0IDExQjI7CitCNTA0O0I1MDQ7MTEwMyAxMTc0IDExQjM7QjUwNDsxMTAzIDExNzQgMTFCMzsKK0I1MDU7QjUwNTsxMTAzIDExNzQgMTFCNDtCNTA1OzExMDMgMTE3NCAxMUI0OworQjUwNjtCNTA2OzExMDMgMTE3NCAxMUI1O0I1MDY7MTEwMyAxMTc0IDExQjU7CitCNTA3O0I1MDc7MTEwMyAxMTc0IDExQjY7QjUwNzsxMTAzIDExNzQgMTFCNjsKK0I1MDg7QjUwODsxMTAzIDExNzQgMTFCNztCNTA4OzExMDMgMTE3NCAxMUI3OworQjUwOTtCNTA5OzExMDMgMTE3NCAxMUI4O0I1MDk7MTEwMyAxMTc0IDExQjg7CitCNTBBO0I1MEE7MTEwMyAxMTc0IDExQjk7QjUwQTsxMTAzIDExNzQgMTFCOTsKK0I1MEI7QjUwQjsxMTAzIDExNzQgMTFCQTtCNTBCOzExMDMgMTE3NCAxMUJBOworQjUwQztCNTBDOzExMDMgMTE3NCAxMUJCO0I1MEM7MTEwMyAxMTc0IDExQkI7CitCNTBEO0I1MEQ7MTEwMyAxMTc0IDExQkM7QjUwRDsxMTAzIDExNzQgMTFCQzsKK0I1MEU7QjUwRTsxMTAzIDExNzQgMTFCRDtCNTBFOzExMDMgMTE3NCAxMUJEOworQjUwRjtCNTBGOzExMDMgMTE3NCAxMUJFO0I1MEY7MTEwMyAxMTc0IDExQkU7CitCNTEwO0I1MTA7MTEwMyAxMTc0IDExQkY7QjUxMDsxMTAzIDExNzQgMTFCRjsKK0I1MTE7QjUxMTsxMTAzIDExNzQgMTFDMDtCNTExOzExMDMgMTE3NCAxMUMwOworQjUxMjtCNTEyOzExMDMgMTE3NCAxMUMxO0I1MTI7MTEwMyAxMTc0IDExQzE7CitCNTEzO0I1MTM7MTEwMyAxMTc0IDExQzI7QjUxMzsxMTAzIDExNzQgMTFDMjsKK0I1MTQ7QjUxNDsxMTAzIDExNzU7QjUxNDsxMTAzIDExNzU7CitCNTE1O0I1MTU7MTEwMyAxMTc1IDExQTg7QjUxNTsxMTAzIDExNzUgMTFBODsKK0I1MTY7QjUxNjsxMTAzIDExNzUgMTFBOTtCNTE2OzExMDMgMTE3NSAxMUE5OworQjUxNztCNTE3OzExMDMgMTE3NSAxMUFBO0I1MTc7MTEwMyAxMTc1IDExQUE7CitCNTE4O0I1MTg7MTEwMyAxMTc1IDExQUI7QjUxODsxMTAzIDExNzUgMTFBQjsKK0I1MTk7QjUxOTsxMTAzIDExNzUgMTFBQztCNTE5OzExMDMgMTE3NSAxMUFDOworQjUxQTtCNTFBOzExMDMgMTE3NSAxMUFEO0I1MUE7MTEwMyAxMTc1IDExQUQ7CitCNTFCO0I1MUI7MTEwMyAxMTc1IDExQUU7QjUxQjsxMTAzIDExNzUgMTFBRTsKK0I1MUM7QjUxQzsxMTAzIDExNzUgMTFBRjtCNTFDOzExMDMgMTE3NSAxMUFGOworQjUxRDtCNTFEOzExMDMgMTE3NSAxMUIwO0I1MUQ7MTEwMyAxMTc1IDExQjA7CitCNTFFO0I1MUU7MTEwMyAxMTc1IDExQjE7QjUxRTsxMTAzIDExNzUgMTFCMTsKK0I1MUY7QjUxRjsxMTAzIDExNzUgMTFCMjtCNTFGOzExMDMgMTE3NSAxMUIyOworQjUyMDtCNTIwOzExMDMgMTE3NSAxMUIzO0I1MjA7MTEwMyAxMTc1IDExQjM7CitCNTIxO0I1MjE7MTEwMyAxMTc1IDExQjQ7QjUyMTsxMTAzIDExNzUgMTFCNDsKK0I1MjI7QjUyMjsxMTAzIDExNzUgMTFCNTtCNTIyOzExMDMgMTE3NSAxMUI1OworQjUyMztCNTIzOzExMDMgMTE3NSAxMUI2O0I1MjM7MTEwMyAxMTc1IDExQjY7CitCNTI0O0I1MjQ7MTEwMyAxMTc1IDExQjc7QjUyNDsxMTAzIDExNzUgMTFCNzsKK0I1MjU7QjUyNTsxMTAzIDExNzUgMTFCODtCNTI1OzExMDMgMTE3NSAxMUI4OworQjUyNjtCNTI2OzExMDMgMTE3NSAxMUI5O0I1MjY7MTEwMyAxMTc1IDExQjk7CitCNTI3O0I1Mjc7MTEwMyAxMTc1IDExQkE7QjUyNzsxMTAzIDExNzUgMTFCQTsKK0I1Mjg7QjUyODsxMTAzIDExNzUgMTFCQjtCNTI4OzExMDMgMTE3NSAxMUJCOworQjUyOTtCNTI5OzExMDMgMTE3NSAxMUJDO0I1Mjk7MTEwMyAxMTc1IDExQkM7CitCNTJBO0I1MkE7MTEwMyAxMTc1IDExQkQ7QjUyQTsxMTAzIDExNzUgMTFCRDsKK0I1MkI7QjUyQjsxMTAzIDExNzUgMTFCRTtCNTJCOzExMDMgMTE3NSAxMUJFOworQjUyQztCNTJDOzExMDMgMTE3NSAxMUJGO0I1MkM7MTEwMyAxMTc1IDExQkY7CitCNTJEO0I1MkQ7MTEwMyAxMTc1IDExQzA7QjUyRDsxMTAzIDExNzUgMTFDMDsKK0I1MkU7QjUyRTsxMTAzIDExNzUgMTFDMTtCNTJFOzExMDMgMTE3NSAxMUMxOworQjUyRjtCNTJGOzExMDMgMTE3NSAxMUMyO0I1MkY7MTEwMyAxMTc1IDExQzI7CitCNTMwO0I1MzA7MTEwNCAxMTYxO0I1MzA7MTEwNCAxMTYxOworQjUzMTtCNTMxOzExMDQgMTE2MSAxMUE4O0I1MzE7MTEwNCAxMTYxIDExQTg7CitCNTMyO0I1MzI7MTEwNCAxMTYxIDExQTk7QjUzMjsxMTA0IDExNjEgMTFBOTsKK0I1MzM7QjUzMzsxMTA0IDExNjEgMTFBQTtCNTMzOzExMDQgMTE2MSAxMUFBOworQjUzNDtCNTM0OzExMDQgMTE2MSAxMUFCO0I1MzQ7MTEwNCAxMTYxIDExQUI7CitCNTM1O0I1MzU7MTEwNCAxMTYxIDExQUM7QjUzNTsxMTA0IDExNjEgMTFBQzsKK0I1MzY7QjUzNjsxMTA0IDExNjEgMTFBRDtCNTM2OzExMDQgMTE2MSAxMUFEOworQjUzNztCNTM3OzExMDQgMTE2MSAxMUFFO0I1Mzc7MTEwNCAxMTYxIDExQUU7CitCNTM4O0I1Mzg7MTEwNCAxMTYxIDExQUY7QjUzODsxMTA0IDExNjEgMTFBRjsKK0I1Mzk7QjUzOTsxMTA0IDExNjEgMTFCMDtCNTM5OzExMDQgMTE2MSAxMUIwOworQjUzQTtCNTNBOzExMDQgMTE2MSAxMUIxO0I1M0E7MTEwNCAxMTYxIDExQjE7CitCNTNCO0I1M0I7MTEwNCAxMTYxIDExQjI7QjUzQjsxMTA0IDExNjEgMTFCMjsKK0I1M0M7QjUzQzsxMTA0IDExNjEgMTFCMztCNTNDOzExMDQgMTE2MSAxMUIzOworQjUzRDtCNTNEOzExMDQgMTE2MSAxMUI0O0I1M0Q7MTEwNCAxMTYxIDExQjQ7CitCNTNFO0I1M0U7MTEwNCAxMTYxIDExQjU7QjUzRTsxMTA0IDExNjEgMTFCNTsKK0I1M0Y7QjUzRjsxMTA0IDExNjEgMTFCNjtCNTNGOzExMDQgMTE2MSAxMUI2OworQjU0MDtCNTQwOzExMDQgMTE2MSAxMUI3O0I1NDA7MTEwNCAxMTYxIDExQjc7CitCNTQxO0I1NDE7MTEwNCAxMTYxIDExQjg7QjU0MTsxMTA0IDExNjEgMTFCODsKK0I1NDI7QjU0MjsxMTA0IDExNjEgMTFCOTtCNTQyOzExMDQgMTE2MSAxMUI5OworQjU0MztCNTQzOzExMDQgMTE2MSAxMUJBO0I1NDM7MTEwNCAxMTYxIDExQkE7CitCNTQ0O0I1NDQ7MTEwNCAxMTYxIDExQkI7QjU0NDsxMTA0IDExNjEgMTFCQjsKK0I1NDU7QjU0NTsxMTA0IDExNjEgMTFCQztCNTQ1OzExMDQgMTE2MSAxMUJDOworQjU0NjtCNTQ2OzExMDQgMTE2MSAxMUJEO0I1NDY7MTEwNCAxMTYxIDExQkQ7CitCNTQ3O0I1NDc7MTEwNCAxMTYxIDExQkU7QjU0NzsxMTA0IDExNjEgMTFCRTsKK0I1NDg7QjU0ODsxMTA0IDExNjEgMTFCRjtCNTQ4OzExMDQgMTE2MSAxMUJGOworQjU0OTtCNTQ5OzExMDQgMTE2MSAxMUMwO0I1NDk7MTEwNCAxMTYxIDExQzA7CitCNTRBO0I1NEE7MTEwNCAxMTYxIDExQzE7QjU0QTsxMTA0IDExNjEgMTFDMTsKK0I1NEI7QjU0QjsxMTA0IDExNjEgMTFDMjtCNTRCOzExMDQgMTE2MSAxMUMyOworQjU0QztCNTRDOzExMDQgMTE2MjtCNTRDOzExMDQgMTE2MjsKK0I1NEQ7QjU0RDsxMTA0IDExNjIgMTFBODtCNTREOzExMDQgMTE2MiAxMUE4OworQjU0RTtCNTRFOzExMDQgMTE2MiAxMUE5O0I1NEU7MTEwNCAxMTYyIDExQTk7CitCNTRGO0I1NEY7MTEwNCAxMTYyIDExQUE7QjU0RjsxMTA0IDExNjIgMTFBQTsKK0I1NTA7QjU1MDsxMTA0IDExNjIgMTFBQjtCNTUwOzExMDQgMTE2MiAxMUFCOworQjU1MTtCNTUxOzExMDQgMTE2MiAxMUFDO0I1NTE7MTEwNCAxMTYyIDExQUM7CitCNTUyO0I1NTI7MTEwNCAxMTYyIDExQUQ7QjU1MjsxMTA0IDExNjIgMTFBRDsKK0I1NTM7QjU1MzsxMTA0IDExNjIgMTFBRTtCNTUzOzExMDQgMTE2MiAxMUFFOworQjU1NDtCNTU0OzExMDQgMTE2MiAxMUFGO0I1NTQ7MTEwNCAxMTYyIDExQUY7CitCNTU1O0I1NTU7MTEwNCAxMTYyIDExQjA7QjU1NTsxMTA0IDExNjIgMTFCMDsKK0I1NTY7QjU1NjsxMTA0IDExNjIgMTFCMTtCNTU2OzExMDQgMTE2MiAxMUIxOworQjU1NztCNTU3OzExMDQgMTE2MiAxMUIyO0I1NTc7MTEwNCAxMTYyIDExQjI7CitCNTU4O0I1NTg7MTEwNCAxMTYyIDExQjM7QjU1ODsxMTA0IDExNjIgMTFCMzsKK0I1NTk7QjU1OTsxMTA0IDExNjIgMTFCNDtCNTU5OzExMDQgMTE2MiAxMUI0OworQjU1QTtCNTVBOzExMDQgMTE2MiAxMUI1O0I1NUE7MTEwNCAxMTYyIDExQjU7CitCNTVCO0I1NUI7MTEwNCAxMTYyIDExQjY7QjU1QjsxMTA0IDExNjIgMTFCNjsKK0I1NUM7QjU1QzsxMTA0IDExNjIgMTFCNztCNTVDOzExMDQgMTE2MiAxMUI3OworQjU1RDtCNTVEOzExMDQgMTE2MiAxMUI4O0I1NUQ7MTEwNCAxMTYyIDExQjg7CitCNTVFO0I1NUU7MTEwNCAxMTYyIDExQjk7QjU1RTsxMTA0IDExNjIgMTFCOTsKK0I1NUY7QjU1RjsxMTA0IDExNjIgMTFCQTtCNTVGOzExMDQgMTE2MiAxMUJBOworQjU2MDtCNTYwOzExMDQgMTE2MiAxMUJCO0I1NjA7MTEwNCAxMTYyIDExQkI7CitCNTYxO0I1NjE7MTEwNCAxMTYyIDExQkM7QjU2MTsxMTA0IDExNjIgMTFCQzsKK0I1NjI7QjU2MjsxMTA0IDExNjIgMTFCRDtCNTYyOzExMDQgMTE2MiAxMUJEOworQjU2MztCNTYzOzExMDQgMTE2MiAxMUJFO0I1NjM7MTEwNCAxMTYyIDExQkU7CitCNTY0O0I1NjQ7MTEwNCAxMTYyIDExQkY7QjU2NDsxMTA0IDExNjIgMTFCRjsKK0I1NjU7QjU2NTsxMTA0IDExNjIgMTFDMDtCNTY1OzExMDQgMTE2MiAxMUMwOworQjU2NjtCNTY2OzExMDQgMTE2MiAxMUMxO0I1NjY7MTEwNCAxMTYyIDExQzE7CitCNTY3O0I1Njc7MTEwNCAxMTYyIDExQzI7QjU2NzsxMTA0IDExNjIgMTFDMjsKK0I1Njg7QjU2ODsxMTA0IDExNjM7QjU2ODsxMTA0IDExNjM7CitCNTY5O0I1Njk7MTEwNCAxMTYzIDExQTg7QjU2OTsxMTA0IDExNjMgMTFBODsKK0I1NkE7QjU2QTsxMTA0IDExNjMgMTFBOTtCNTZBOzExMDQgMTE2MyAxMUE5OworQjU2QjtCNTZCOzExMDQgMTE2MyAxMUFBO0I1NkI7MTEwNCAxMTYzIDExQUE7CitCNTZDO0I1NkM7MTEwNCAxMTYzIDExQUI7QjU2QzsxMTA0IDExNjMgMTFBQjsKK0I1NkQ7QjU2RDsxMTA0IDExNjMgMTFBQztCNTZEOzExMDQgMTE2MyAxMUFDOworQjU2RTtCNTZFOzExMDQgMTE2MyAxMUFEO0I1NkU7MTEwNCAxMTYzIDExQUQ7CitCNTZGO0I1NkY7MTEwNCAxMTYzIDExQUU7QjU2RjsxMTA0IDExNjMgMTFBRTsKK0I1NzA7QjU3MDsxMTA0IDExNjMgMTFBRjtCNTcwOzExMDQgMTE2MyAxMUFGOworQjU3MTtCNTcxOzExMDQgMTE2MyAxMUIwO0I1NzE7MTEwNCAxMTYzIDExQjA7CitCNTcyO0I1NzI7MTEwNCAxMTYzIDExQjE7QjU3MjsxMTA0IDExNjMgMTFCMTsKK0I1NzM7QjU3MzsxMTA0IDExNjMgMTFCMjtCNTczOzExMDQgMTE2MyAxMUIyOworQjU3NDtCNTc0OzExMDQgMTE2MyAxMUIzO0I1NzQ7MTEwNCAxMTYzIDExQjM7CitCNTc1O0I1NzU7MTEwNCAxMTYzIDExQjQ7QjU3NTsxMTA0IDExNjMgMTFCNDsKK0I1NzY7QjU3NjsxMTA0IDExNjMgMTFCNTtCNTc2OzExMDQgMTE2MyAxMUI1OworQjU3NztCNTc3OzExMDQgMTE2MyAxMUI2O0I1Nzc7MTEwNCAxMTYzIDExQjY7CitCNTc4O0I1Nzg7MTEwNCAxMTYzIDExQjc7QjU3ODsxMTA0IDExNjMgMTFCNzsKK0I1Nzk7QjU3OTsxMTA0IDExNjMgMTFCODtCNTc5OzExMDQgMTE2MyAxMUI4OworQjU3QTtCNTdBOzExMDQgMTE2MyAxMUI5O0I1N0E7MTEwNCAxMTYzIDExQjk7CitCNTdCO0I1N0I7MTEwNCAxMTYzIDExQkE7QjU3QjsxMTA0IDExNjMgMTFCQTsKK0I1N0M7QjU3QzsxMTA0IDExNjMgMTFCQjtCNTdDOzExMDQgMTE2MyAxMUJCOworQjU3RDtCNTdEOzExMDQgMTE2MyAxMUJDO0I1N0Q7MTEwNCAxMTYzIDExQkM7CitCNTdFO0I1N0U7MTEwNCAxMTYzIDExQkQ7QjU3RTsxMTA0IDExNjMgMTFCRDsKK0I1N0Y7QjU3RjsxMTA0IDExNjMgMTFCRTtCNTdGOzExMDQgMTE2MyAxMUJFOworQjU4MDtCNTgwOzExMDQgMTE2MyAxMUJGO0I1ODA7MTEwNCAxMTYzIDExQkY7CitCNTgxO0I1ODE7MTEwNCAxMTYzIDExQzA7QjU4MTsxMTA0IDExNjMgMTFDMDsKK0I1ODI7QjU4MjsxMTA0IDExNjMgMTFDMTtCNTgyOzExMDQgMTE2MyAxMUMxOworQjU4MztCNTgzOzExMDQgMTE2MyAxMUMyO0I1ODM7MTEwNCAxMTYzIDExQzI7CitCNTg0O0I1ODQ7MTEwNCAxMTY0O0I1ODQ7MTEwNCAxMTY0OworQjU4NTtCNTg1OzExMDQgMTE2NCAxMUE4O0I1ODU7MTEwNCAxMTY0IDExQTg7CitCNTg2O0I1ODY7MTEwNCAxMTY0IDExQTk7QjU4NjsxMTA0IDExNjQgMTFBOTsKK0I1ODc7QjU4NzsxMTA0IDExNjQgMTFBQTtCNTg3OzExMDQgMTE2NCAxMUFBOworQjU4ODtCNTg4OzExMDQgMTE2NCAxMUFCO0I1ODg7MTEwNCAxMTY0IDExQUI7CitCNTg5O0I1ODk7MTEwNCAxMTY0IDExQUM7QjU4OTsxMTA0IDExNjQgMTFBQzsKK0I1OEE7QjU4QTsxMTA0IDExNjQgMTFBRDtCNThBOzExMDQgMTE2NCAxMUFEOworQjU4QjtCNThCOzExMDQgMTE2NCAxMUFFO0I1OEI7MTEwNCAxMTY0IDExQUU7CitCNThDO0I1OEM7MTEwNCAxMTY0IDExQUY7QjU4QzsxMTA0IDExNjQgMTFBRjsKK0I1OEQ7QjU4RDsxMTA0IDExNjQgMTFCMDtCNThEOzExMDQgMTE2NCAxMUIwOworQjU4RTtCNThFOzExMDQgMTE2NCAxMUIxO0I1OEU7MTEwNCAxMTY0IDExQjE7CitCNThGO0I1OEY7MTEwNCAxMTY0IDExQjI7QjU4RjsxMTA0IDExNjQgMTFCMjsKK0I1OTA7QjU5MDsxMTA0IDExNjQgMTFCMztCNTkwOzExMDQgMTE2NCAxMUIzOworQjU5MTtCNTkxOzExMDQgMTE2NCAxMUI0O0I1OTE7MTEwNCAxMTY0IDExQjQ7CitCNTkyO0I1OTI7MTEwNCAxMTY0IDExQjU7QjU5MjsxMTA0IDExNjQgMTFCNTsKK0I1OTM7QjU5MzsxMTA0IDExNjQgMTFCNjtCNTkzOzExMDQgMTE2NCAxMUI2OworQjU5NDtCNTk0OzExMDQgMTE2NCAxMUI3O0I1OTQ7MTEwNCAxMTY0IDExQjc7CitCNTk1O0I1OTU7MTEwNCAxMTY0IDExQjg7QjU5NTsxMTA0IDExNjQgMTFCODsKK0I1OTY7QjU5NjsxMTA0IDExNjQgMTFCOTtCNTk2OzExMDQgMTE2NCAxMUI5OworQjU5NztCNTk3OzExMDQgMTE2NCAxMUJBO0I1OTc7MTEwNCAxMTY0IDExQkE7CitCNTk4O0I1OTg7MTEwNCAxMTY0IDExQkI7QjU5ODsxMTA0IDExNjQgMTFCQjsKK0I1OTk7QjU5OTsxMTA0IDExNjQgMTFCQztCNTk5OzExMDQgMTE2NCAxMUJDOworQjU5QTtCNTlBOzExMDQgMTE2NCAxMUJEO0I1OUE7MTEwNCAxMTY0IDExQkQ7CitCNTlCO0I1OUI7MTEwNCAxMTY0IDExQkU7QjU5QjsxMTA0IDExNjQgMTFCRTsKK0I1OUM7QjU5QzsxMTA0IDExNjQgMTFCRjtCNTlDOzExMDQgMTE2NCAxMUJGOworQjU5RDtCNTlEOzExMDQgMTE2NCAxMUMwO0I1OUQ7MTEwNCAxMTY0IDExQzA7CitCNTlFO0I1OUU7MTEwNCAxMTY0IDExQzE7QjU5RTsxMTA0IDExNjQgMTFDMTsKK0I1OUY7QjU5RjsxMTA0IDExNjQgMTFDMjtCNTlGOzExMDQgMTE2NCAxMUMyOworQjVBMDtCNUEwOzExMDQgMTE2NTtCNUEwOzExMDQgMTE2NTsKK0I1QTE7QjVBMTsxMTA0IDExNjUgMTFBODtCNUExOzExMDQgMTE2NSAxMUE4OworQjVBMjtCNUEyOzExMDQgMTE2NSAxMUE5O0I1QTI7MTEwNCAxMTY1IDExQTk7CitCNUEzO0I1QTM7MTEwNCAxMTY1IDExQUE7QjVBMzsxMTA0IDExNjUgMTFBQTsKK0I1QTQ7QjVBNDsxMTA0IDExNjUgMTFBQjtCNUE0OzExMDQgMTE2NSAxMUFCOworQjVBNTtCNUE1OzExMDQgMTE2NSAxMUFDO0I1QTU7MTEwNCAxMTY1IDExQUM7CitCNUE2O0I1QTY7MTEwNCAxMTY1IDExQUQ7QjVBNjsxMTA0IDExNjUgMTFBRDsKK0I1QTc7QjVBNzsxMTA0IDExNjUgMTFBRTtCNUE3OzExMDQgMTE2NSAxMUFFOworQjVBODtCNUE4OzExMDQgMTE2NSAxMUFGO0I1QTg7MTEwNCAxMTY1IDExQUY7CitCNUE5O0I1QTk7MTEwNCAxMTY1IDExQjA7QjVBOTsxMTA0IDExNjUgMTFCMDsKK0I1QUE7QjVBQTsxMTA0IDExNjUgMTFCMTtCNUFBOzExMDQgMTE2NSAxMUIxOworQjVBQjtCNUFCOzExMDQgMTE2NSAxMUIyO0I1QUI7MTEwNCAxMTY1IDExQjI7CitCNUFDO0I1QUM7MTEwNCAxMTY1IDExQjM7QjVBQzsxMTA0IDExNjUgMTFCMzsKK0I1QUQ7QjVBRDsxMTA0IDExNjUgMTFCNDtCNUFEOzExMDQgMTE2NSAxMUI0OworQjVBRTtCNUFFOzExMDQgMTE2NSAxMUI1O0I1QUU7MTEwNCAxMTY1IDExQjU7CitCNUFGO0I1QUY7MTEwNCAxMTY1IDExQjY7QjVBRjsxMTA0IDExNjUgMTFCNjsKK0I1QjA7QjVCMDsxMTA0IDExNjUgMTFCNztCNUIwOzExMDQgMTE2NSAxMUI3OworQjVCMTtCNUIxOzExMDQgMTE2NSAxMUI4O0I1QjE7MTEwNCAxMTY1IDExQjg7CitCNUIyO0I1QjI7MTEwNCAxMTY1IDExQjk7QjVCMjsxMTA0IDExNjUgMTFCOTsKK0I1QjM7QjVCMzsxMTA0IDExNjUgMTFCQTtCNUIzOzExMDQgMTE2NSAxMUJBOworQjVCNDtCNUI0OzExMDQgMTE2NSAxMUJCO0I1QjQ7MTEwNCAxMTY1IDExQkI7CitCNUI1O0I1QjU7MTEwNCAxMTY1IDExQkM7QjVCNTsxMTA0IDExNjUgMTFCQzsKK0I1QjY7QjVCNjsxMTA0IDExNjUgMTFCRDtCNUI2OzExMDQgMTE2NSAxMUJEOworQjVCNztCNUI3OzExMDQgMTE2NSAxMUJFO0I1Qjc7MTEwNCAxMTY1IDExQkU7CitCNUI4O0I1Qjg7MTEwNCAxMTY1IDExQkY7QjVCODsxMTA0IDExNjUgMTFCRjsKK0I1Qjk7QjVCOTsxMTA0IDExNjUgMTFDMDtCNUI5OzExMDQgMTE2NSAxMUMwOworQjVCQTtCNUJBOzExMDQgMTE2NSAxMUMxO0I1QkE7MTEwNCAxMTY1IDExQzE7CitCNUJCO0I1QkI7MTEwNCAxMTY1IDExQzI7QjVCQjsxMTA0IDExNjUgMTFDMjsKK0I1QkM7QjVCQzsxMTA0IDExNjY7QjVCQzsxMTA0IDExNjY7CitCNUJEO0I1QkQ7MTEwNCAxMTY2IDExQTg7QjVCRDsxMTA0IDExNjYgMTFBODsKK0I1QkU7QjVCRTsxMTA0IDExNjYgMTFBOTtCNUJFOzExMDQgMTE2NiAxMUE5OworQjVCRjtCNUJGOzExMDQgMTE2NiAxMUFBO0I1QkY7MTEwNCAxMTY2IDExQUE7CitCNUMwO0I1QzA7MTEwNCAxMTY2IDExQUI7QjVDMDsxMTA0IDExNjYgMTFBQjsKK0I1QzE7QjVDMTsxMTA0IDExNjYgMTFBQztCNUMxOzExMDQgMTE2NiAxMUFDOworQjVDMjtCNUMyOzExMDQgMTE2NiAxMUFEO0I1QzI7MTEwNCAxMTY2IDExQUQ7CitCNUMzO0I1QzM7MTEwNCAxMTY2IDExQUU7QjVDMzsxMTA0IDExNjYgMTFBRTsKK0I1QzQ7QjVDNDsxMTA0IDExNjYgMTFBRjtCNUM0OzExMDQgMTE2NiAxMUFGOworQjVDNTtCNUM1OzExMDQgMTE2NiAxMUIwO0I1QzU7MTEwNCAxMTY2IDExQjA7CitCNUM2O0I1QzY7MTEwNCAxMTY2IDExQjE7QjVDNjsxMTA0IDExNjYgMTFCMTsKK0I1Qzc7QjVDNzsxMTA0IDExNjYgMTFCMjtCNUM3OzExMDQgMTE2NiAxMUIyOworQjVDODtCNUM4OzExMDQgMTE2NiAxMUIzO0I1Qzg7MTEwNCAxMTY2IDExQjM7CitCNUM5O0I1Qzk7MTEwNCAxMTY2IDExQjQ7QjVDOTsxMTA0IDExNjYgMTFCNDsKK0I1Q0E7QjVDQTsxMTA0IDExNjYgMTFCNTtCNUNBOzExMDQgMTE2NiAxMUI1OworQjVDQjtCNUNCOzExMDQgMTE2NiAxMUI2O0I1Q0I7MTEwNCAxMTY2IDExQjY7CitCNUNDO0I1Q0M7MTEwNCAxMTY2IDExQjc7QjVDQzsxMTA0IDExNjYgMTFCNzsKK0I1Q0Q7QjVDRDsxMTA0IDExNjYgMTFCODtCNUNEOzExMDQgMTE2NiAxMUI4OworQjVDRTtCNUNFOzExMDQgMTE2NiAxMUI5O0I1Q0U7MTEwNCAxMTY2IDExQjk7CitCNUNGO0I1Q0Y7MTEwNCAxMTY2IDExQkE7QjVDRjsxMTA0IDExNjYgMTFCQTsKK0I1RDA7QjVEMDsxMTA0IDExNjYgMTFCQjtCNUQwOzExMDQgMTE2NiAxMUJCOworQjVEMTtCNUQxOzExMDQgMTE2NiAxMUJDO0I1RDE7MTEwNCAxMTY2IDExQkM7CitCNUQyO0I1RDI7MTEwNCAxMTY2IDExQkQ7QjVEMjsxMTA0IDExNjYgMTFCRDsKK0I1RDM7QjVEMzsxMTA0IDExNjYgMTFCRTtCNUQzOzExMDQgMTE2NiAxMUJFOworQjVENDtCNUQ0OzExMDQgMTE2NiAxMUJGO0I1RDQ7MTEwNCAxMTY2IDExQkY7CitCNUQ1O0I1RDU7MTEwNCAxMTY2IDExQzA7QjVENTsxMTA0IDExNjYgMTFDMDsKK0I1RDY7QjVENjsxMTA0IDExNjYgMTFDMTtCNUQ2OzExMDQgMTE2NiAxMUMxOworQjVENztCNUQ3OzExMDQgMTE2NiAxMUMyO0I1RDc7MTEwNCAxMTY2IDExQzI7CitCNUQ4O0I1RDg7MTEwNCAxMTY3O0I1RDg7MTEwNCAxMTY3OworQjVEOTtCNUQ5OzExMDQgMTE2NyAxMUE4O0I1RDk7MTEwNCAxMTY3IDExQTg7CitCNURBO0I1REE7MTEwNCAxMTY3IDExQTk7QjVEQTsxMTA0IDExNjcgMTFBOTsKK0I1REI7QjVEQjsxMTA0IDExNjcgMTFBQTtCNURCOzExMDQgMTE2NyAxMUFBOworQjVEQztCNURDOzExMDQgMTE2NyAxMUFCO0I1REM7MTEwNCAxMTY3IDExQUI7CitCNUREO0I1REQ7MTEwNCAxMTY3IDExQUM7QjVERDsxMTA0IDExNjcgMTFBQzsKK0I1REU7QjVERTsxMTA0IDExNjcgMTFBRDtCNURFOzExMDQgMTE2NyAxMUFEOworQjVERjtCNURGOzExMDQgMTE2NyAxMUFFO0I1REY7MTEwNCAxMTY3IDExQUU7CitCNUUwO0I1RTA7MTEwNCAxMTY3IDExQUY7QjVFMDsxMTA0IDExNjcgMTFBRjsKK0I1RTE7QjVFMTsxMTA0IDExNjcgMTFCMDtCNUUxOzExMDQgMTE2NyAxMUIwOworQjVFMjtCNUUyOzExMDQgMTE2NyAxMUIxO0I1RTI7MTEwNCAxMTY3IDExQjE7CitCNUUzO0I1RTM7MTEwNCAxMTY3IDExQjI7QjVFMzsxMTA0IDExNjcgMTFCMjsKK0I1RTQ7QjVFNDsxMTA0IDExNjcgMTFCMztCNUU0OzExMDQgMTE2NyAxMUIzOworQjVFNTtCNUU1OzExMDQgMTE2NyAxMUI0O0I1RTU7MTEwNCAxMTY3IDExQjQ7CitCNUU2O0I1RTY7MTEwNCAxMTY3IDExQjU7QjVFNjsxMTA0IDExNjcgMTFCNTsKK0I1RTc7QjVFNzsxMTA0IDExNjcgMTFCNjtCNUU3OzExMDQgMTE2NyAxMUI2OworQjVFODtCNUU4OzExMDQgMTE2NyAxMUI3O0I1RTg7MTEwNCAxMTY3IDExQjc7CitCNUU5O0I1RTk7MTEwNCAxMTY3IDExQjg7QjVFOTsxMTA0IDExNjcgMTFCODsKK0I1RUE7QjVFQTsxMTA0IDExNjcgMTFCOTtCNUVBOzExMDQgMTE2NyAxMUI5OworQjVFQjtCNUVCOzExMDQgMTE2NyAxMUJBO0I1RUI7MTEwNCAxMTY3IDExQkE7CitCNUVDO0I1RUM7MTEwNCAxMTY3IDExQkI7QjVFQzsxMTA0IDExNjcgMTFCQjsKK0I1RUQ7QjVFRDsxMTA0IDExNjcgMTFCQztCNUVEOzExMDQgMTE2NyAxMUJDOworQjVFRTtCNUVFOzExMDQgMTE2NyAxMUJEO0I1RUU7MTEwNCAxMTY3IDExQkQ7CitCNUVGO0I1RUY7MTEwNCAxMTY3IDExQkU7QjVFRjsxMTA0IDExNjcgMTFCRTsKK0I1RjA7QjVGMDsxMTA0IDExNjcgMTFCRjtCNUYwOzExMDQgMTE2NyAxMUJGOworQjVGMTtCNUYxOzExMDQgMTE2NyAxMUMwO0I1RjE7MTEwNCAxMTY3IDExQzA7CitCNUYyO0I1RjI7MTEwNCAxMTY3IDExQzE7QjVGMjsxMTA0IDExNjcgMTFDMTsKK0I1RjM7QjVGMzsxMTA0IDExNjcgMTFDMjtCNUYzOzExMDQgMTE2NyAxMUMyOworQjVGNDtCNUY0OzExMDQgMTE2ODtCNUY0OzExMDQgMTE2ODsKK0I1RjU7QjVGNTsxMTA0IDExNjggMTFBODtCNUY1OzExMDQgMTE2OCAxMUE4OworQjVGNjtCNUY2OzExMDQgMTE2OCAxMUE5O0I1RjY7MTEwNCAxMTY4IDExQTk7CitCNUY3O0I1Rjc7MTEwNCAxMTY4IDExQUE7QjVGNzsxMTA0IDExNjggMTFBQTsKK0I1Rjg7QjVGODsxMTA0IDExNjggMTFBQjtCNUY4OzExMDQgMTE2OCAxMUFCOworQjVGOTtCNUY5OzExMDQgMTE2OCAxMUFDO0I1Rjk7MTEwNCAxMTY4IDExQUM7CitCNUZBO0I1RkE7MTEwNCAxMTY4IDExQUQ7QjVGQTsxMTA0IDExNjggMTFBRDsKK0I1RkI7QjVGQjsxMTA0IDExNjggMTFBRTtCNUZCOzExMDQgMTE2OCAxMUFFOworQjVGQztCNUZDOzExMDQgMTE2OCAxMUFGO0I1RkM7MTEwNCAxMTY4IDExQUY7CitCNUZEO0I1RkQ7MTEwNCAxMTY4IDExQjA7QjVGRDsxMTA0IDExNjggMTFCMDsKK0I1RkU7QjVGRTsxMTA0IDExNjggMTFCMTtCNUZFOzExMDQgMTE2OCAxMUIxOworQjVGRjtCNUZGOzExMDQgMTE2OCAxMUIyO0I1RkY7MTEwNCAxMTY4IDExQjI7CitCNjAwO0I2MDA7MTEwNCAxMTY4IDExQjM7QjYwMDsxMTA0IDExNjggMTFCMzsKK0I2MDE7QjYwMTsxMTA0IDExNjggMTFCNDtCNjAxOzExMDQgMTE2OCAxMUI0OworQjYwMjtCNjAyOzExMDQgMTE2OCAxMUI1O0I2MDI7MTEwNCAxMTY4IDExQjU7CitCNjAzO0I2MDM7MTEwNCAxMTY4IDExQjY7QjYwMzsxMTA0IDExNjggMTFCNjsKK0I2MDQ7QjYwNDsxMTA0IDExNjggMTFCNztCNjA0OzExMDQgMTE2OCAxMUI3OworQjYwNTtCNjA1OzExMDQgMTE2OCAxMUI4O0I2MDU7MTEwNCAxMTY4IDExQjg7CitCNjA2O0I2MDY7MTEwNCAxMTY4IDExQjk7QjYwNjsxMTA0IDExNjggMTFCOTsKK0I2MDc7QjYwNzsxMTA0IDExNjggMTFCQTtCNjA3OzExMDQgMTE2OCAxMUJBOworQjYwODtCNjA4OzExMDQgMTE2OCAxMUJCO0I2MDg7MTEwNCAxMTY4IDExQkI7CitCNjA5O0I2MDk7MTEwNCAxMTY4IDExQkM7QjYwOTsxMTA0IDExNjggMTFCQzsKK0I2MEE7QjYwQTsxMTA0IDExNjggMTFCRDtCNjBBOzExMDQgMTE2OCAxMUJEOworQjYwQjtCNjBCOzExMDQgMTE2OCAxMUJFO0I2MEI7MTEwNCAxMTY4IDExQkU7CitCNjBDO0I2MEM7MTEwNCAxMTY4IDExQkY7QjYwQzsxMTA0IDExNjggMTFCRjsKK0I2MEQ7QjYwRDsxMTA0IDExNjggMTFDMDtCNjBEOzExMDQgMTE2OCAxMUMwOworQjYwRTtCNjBFOzExMDQgMTE2OCAxMUMxO0I2MEU7MTEwNCAxMTY4IDExQzE7CitCNjBGO0I2MEY7MTEwNCAxMTY4IDExQzI7QjYwRjsxMTA0IDExNjggMTFDMjsKK0I2MTA7QjYxMDsxMTA0IDExNjk7QjYxMDsxMTA0IDExNjk7CitCNjExO0I2MTE7MTEwNCAxMTY5IDExQTg7QjYxMTsxMTA0IDExNjkgMTFBODsKK0I2MTI7QjYxMjsxMTA0IDExNjkgMTFBOTtCNjEyOzExMDQgMTE2OSAxMUE5OworQjYxMztCNjEzOzExMDQgMTE2OSAxMUFBO0I2MTM7MTEwNCAxMTY5IDExQUE7CitCNjE0O0I2MTQ7MTEwNCAxMTY5IDExQUI7QjYxNDsxMTA0IDExNjkgMTFBQjsKK0I2MTU7QjYxNTsxMTA0IDExNjkgMTFBQztCNjE1OzExMDQgMTE2OSAxMUFDOworQjYxNjtCNjE2OzExMDQgMTE2OSAxMUFEO0I2MTY7MTEwNCAxMTY5IDExQUQ7CitCNjE3O0I2MTc7MTEwNCAxMTY5IDExQUU7QjYxNzsxMTA0IDExNjkgMTFBRTsKK0I2MTg7QjYxODsxMTA0IDExNjkgMTFBRjtCNjE4OzExMDQgMTE2OSAxMUFGOworQjYxOTtCNjE5OzExMDQgMTE2OSAxMUIwO0I2MTk7MTEwNCAxMTY5IDExQjA7CitCNjFBO0I2MUE7MTEwNCAxMTY5IDExQjE7QjYxQTsxMTA0IDExNjkgMTFCMTsKK0I2MUI7QjYxQjsxMTA0IDExNjkgMTFCMjtCNjFCOzExMDQgMTE2OSAxMUIyOworQjYxQztCNjFDOzExMDQgMTE2OSAxMUIzO0I2MUM7MTEwNCAxMTY5IDExQjM7CitCNjFEO0I2MUQ7MTEwNCAxMTY5IDExQjQ7QjYxRDsxMTA0IDExNjkgMTFCNDsKK0I2MUU7QjYxRTsxMTA0IDExNjkgMTFCNTtCNjFFOzExMDQgMTE2OSAxMUI1OworQjYxRjtCNjFGOzExMDQgMTE2OSAxMUI2O0I2MUY7MTEwNCAxMTY5IDExQjY7CitCNjIwO0I2MjA7MTEwNCAxMTY5IDExQjc7QjYyMDsxMTA0IDExNjkgMTFCNzsKK0I2MjE7QjYyMTsxMTA0IDExNjkgMTFCODtCNjIxOzExMDQgMTE2OSAxMUI4OworQjYyMjtCNjIyOzExMDQgMTE2OSAxMUI5O0I2MjI7MTEwNCAxMTY5IDExQjk7CitCNjIzO0I2MjM7MTEwNCAxMTY5IDExQkE7QjYyMzsxMTA0IDExNjkgMTFCQTsKK0I2MjQ7QjYyNDsxMTA0IDExNjkgMTFCQjtCNjI0OzExMDQgMTE2OSAxMUJCOworQjYyNTtCNjI1OzExMDQgMTE2OSAxMUJDO0I2MjU7MTEwNCAxMTY5IDExQkM7CitCNjI2O0I2MjY7MTEwNCAxMTY5IDExQkQ7QjYyNjsxMTA0IDExNjkgMTFCRDsKK0I2Mjc7QjYyNzsxMTA0IDExNjkgMTFCRTtCNjI3OzExMDQgMTE2OSAxMUJFOworQjYyODtCNjI4OzExMDQgMTE2OSAxMUJGO0I2Mjg7MTEwNCAxMTY5IDExQkY7CitCNjI5O0I2Mjk7MTEwNCAxMTY5IDExQzA7QjYyOTsxMTA0IDExNjkgMTFDMDsKK0I2MkE7QjYyQTsxMTA0IDExNjkgMTFDMTtCNjJBOzExMDQgMTE2OSAxMUMxOworQjYyQjtCNjJCOzExMDQgMTE2OSAxMUMyO0I2MkI7MTEwNCAxMTY5IDExQzI7CitCNjJDO0I2MkM7MTEwNCAxMTZBO0I2MkM7MTEwNCAxMTZBOworQjYyRDtCNjJEOzExMDQgMTE2QSAxMUE4O0I2MkQ7MTEwNCAxMTZBIDExQTg7CitCNjJFO0I2MkU7MTEwNCAxMTZBIDExQTk7QjYyRTsxMTA0IDExNkEgMTFBOTsKK0I2MkY7QjYyRjsxMTA0IDExNkEgMTFBQTtCNjJGOzExMDQgMTE2QSAxMUFBOworQjYzMDtCNjMwOzExMDQgMTE2QSAxMUFCO0I2MzA7MTEwNCAxMTZBIDExQUI7CitCNjMxO0I2MzE7MTEwNCAxMTZBIDExQUM7QjYzMTsxMTA0IDExNkEgMTFBQzsKK0I2MzI7QjYzMjsxMTA0IDExNkEgMTFBRDtCNjMyOzExMDQgMTE2QSAxMUFEOworQjYzMztCNjMzOzExMDQgMTE2QSAxMUFFO0I2MzM7MTEwNCAxMTZBIDExQUU7CitCNjM0O0I2MzQ7MTEwNCAxMTZBIDExQUY7QjYzNDsxMTA0IDExNkEgMTFBRjsKK0I2MzU7QjYzNTsxMTA0IDExNkEgMTFCMDtCNjM1OzExMDQgMTE2QSAxMUIwOworQjYzNjtCNjM2OzExMDQgMTE2QSAxMUIxO0I2MzY7MTEwNCAxMTZBIDExQjE7CitCNjM3O0I2Mzc7MTEwNCAxMTZBIDExQjI7QjYzNzsxMTA0IDExNkEgMTFCMjsKK0I2Mzg7QjYzODsxMTA0IDExNkEgMTFCMztCNjM4OzExMDQgMTE2QSAxMUIzOworQjYzOTtCNjM5OzExMDQgMTE2QSAxMUI0O0I2Mzk7MTEwNCAxMTZBIDExQjQ7CitCNjNBO0I2M0E7MTEwNCAxMTZBIDExQjU7QjYzQTsxMTA0IDExNkEgMTFCNTsKK0I2M0I7QjYzQjsxMTA0IDExNkEgMTFCNjtCNjNCOzExMDQgMTE2QSAxMUI2OworQjYzQztCNjNDOzExMDQgMTE2QSAxMUI3O0I2M0M7MTEwNCAxMTZBIDExQjc7CitCNjNEO0I2M0Q7MTEwNCAxMTZBIDExQjg7QjYzRDsxMTA0IDExNkEgMTFCODsKK0I2M0U7QjYzRTsxMTA0IDExNkEgMTFCOTtCNjNFOzExMDQgMTE2QSAxMUI5OworQjYzRjtCNjNGOzExMDQgMTE2QSAxMUJBO0I2M0Y7MTEwNCAxMTZBIDExQkE7CitCNjQwO0I2NDA7MTEwNCAxMTZBIDExQkI7QjY0MDsxMTA0IDExNkEgMTFCQjsKK0I2NDE7QjY0MTsxMTA0IDExNkEgMTFCQztCNjQxOzExMDQgMTE2QSAxMUJDOworQjY0MjtCNjQyOzExMDQgMTE2QSAxMUJEO0I2NDI7MTEwNCAxMTZBIDExQkQ7CitCNjQzO0I2NDM7MTEwNCAxMTZBIDExQkU7QjY0MzsxMTA0IDExNkEgMTFCRTsKK0I2NDQ7QjY0NDsxMTA0IDExNkEgMTFCRjtCNjQ0OzExMDQgMTE2QSAxMUJGOworQjY0NTtCNjQ1OzExMDQgMTE2QSAxMUMwO0I2NDU7MTEwNCAxMTZBIDExQzA7CitCNjQ2O0I2NDY7MTEwNCAxMTZBIDExQzE7QjY0NjsxMTA0IDExNkEgMTFDMTsKK0I2NDc7QjY0NzsxMTA0IDExNkEgMTFDMjtCNjQ3OzExMDQgMTE2QSAxMUMyOworQjY0ODtCNjQ4OzExMDQgMTE2QjtCNjQ4OzExMDQgMTE2QjsKK0I2NDk7QjY0OTsxMTA0IDExNkIgMTFBODtCNjQ5OzExMDQgMTE2QiAxMUE4OworQjY0QTtCNjRBOzExMDQgMTE2QiAxMUE5O0I2NEE7MTEwNCAxMTZCIDExQTk7CitCNjRCO0I2NEI7MTEwNCAxMTZCIDExQUE7QjY0QjsxMTA0IDExNkIgMTFBQTsKK0I2NEM7QjY0QzsxMTA0IDExNkIgMTFBQjtCNjRDOzExMDQgMTE2QiAxMUFCOworQjY0RDtCNjREOzExMDQgMTE2QiAxMUFDO0I2NEQ7MTEwNCAxMTZCIDExQUM7CitCNjRFO0I2NEU7MTEwNCAxMTZCIDExQUQ7QjY0RTsxMTA0IDExNkIgMTFBRDsKK0I2NEY7QjY0RjsxMTA0IDExNkIgMTFBRTtCNjRGOzExMDQgMTE2QiAxMUFFOworQjY1MDtCNjUwOzExMDQgMTE2QiAxMUFGO0I2NTA7MTEwNCAxMTZCIDExQUY7CitCNjUxO0I2NTE7MTEwNCAxMTZCIDExQjA7QjY1MTsxMTA0IDExNkIgMTFCMDsKK0I2NTI7QjY1MjsxMTA0IDExNkIgMTFCMTtCNjUyOzExMDQgMTE2QiAxMUIxOworQjY1MztCNjUzOzExMDQgMTE2QiAxMUIyO0I2NTM7MTEwNCAxMTZCIDExQjI7CitCNjU0O0I2NTQ7MTEwNCAxMTZCIDExQjM7QjY1NDsxMTA0IDExNkIgMTFCMzsKK0I2NTU7QjY1NTsxMTA0IDExNkIgMTFCNDtCNjU1OzExMDQgMTE2QiAxMUI0OworQjY1NjtCNjU2OzExMDQgMTE2QiAxMUI1O0I2NTY7MTEwNCAxMTZCIDExQjU7CitCNjU3O0I2NTc7MTEwNCAxMTZCIDExQjY7QjY1NzsxMTA0IDExNkIgMTFCNjsKK0I2NTg7QjY1ODsxMTA0IDExNkIgMTFCNztCNjU4OzExMDQgMTE2QiAxMUI3OworQjY1OTtCNjU5OzExMDQgMTE2QiAxMUI4O0I2NTk7MTEwNCAxMTZCIDExQjg7CitCNjVBO0I2NUE7MTEwNCAxMTZCIDExQjk7QjY1QTsxMTA0IDExNkIgMTFCOTsKK0I2NUI7QjY1QjsxMTA0IDExNkIgMTFCQTtCNjVCOzExMDQgMTE2QiAxMUJBOworQjY1QztCNjVDOzExMDQgMTE2QiAxMUJCO0I2NUM7MTEwNCAxMTZCIDExQkI7CitCNjVEO0I2NUQ7MTEwNCAxMTZCIDExQkM7QjY1RDsxMTA0IDExNkIgMTFCQzsKK0I2NUU7QjY1RTsxMTA0IDExNkIgMTFCRDtCNjVFOzExMDQgMTE2QiAxMUJEOworQjY1RjtCNjVGOzExMDQgMTE2QiAxMUJFO0I2NUY7MTEwNCAxMTZCIDExQkU7CitCNjYwO0I2NjA7MTEwNCAxMTZCIDExQkY7QjY2MDsxMTA0IDExNkIgMTFCRjsKK0I2NjE7QjY2MTsxMTA0IDExNkIgMTFDMDtCNjYxOzExMDQgMTE2QiAxMUMwOworQjY2MjtCNjYyOzExMDQgMTE2QiAxMUMxO0I2NjI7MTEwNCAxMTZCIDExQzE7CitCNjYzO0I2NjM7MTEwNCAxMTZCIDExQzI7QjY2MzsxMTA0IDExNkIgMTFDMjsKK0I2NjQ7QjY2NDsxMTA0IDExNkM7QjY2NDsxMTA0IDExNkM7CitCNjY1O0I2NjU7MTEwNCAxMTZDIDExQTg7QjY2NTsxMTA0IDExNkMgMTFBODsKK0I2NjY7QjY2NjsxMTA0IDExNkMgMTFBOTtCNjY2OzExMDQgMTE2QyAxMUE5OworQjY2NztCNjY3OzExMDQgMTE2QyAxMUFBO0I2Njc7MTEwNCAxMTZDIDExQUE7CitCNjY4O0I2Njg7MTEwNCAxMTZDIDExQUI7QjY2ODsxMTA0IDExNkMgMTFBQjsKK0I2Njk7QjY2OTsxMTA0IDExNkMgMTFBQztCNjY5OzExMDQgMTE2QyAxMUFDOworQjY2QTtCNjZBOzExMDQgMTE2QyAxMUFEO0I2NkE7MTEwNCAxMTZDIDExQUQ7CitCNjZCO0I2NkI7MTEwNCAxMTZDIDExQUU7QjY2QjsxMTA0IDExNkMgMTFBRTsKK0I2NkM7QjY2QzsxMTA0IDExNkMgMTFBRjtCNjZDOzExMDQgMTE2QyAxMUFGOworQjY2RDtCNjZEOzExMDQgMTE2QyAxMUIwO0I2NkQ7MTEwNCAxMTZDIDExQjA7CitCNjZFO0I2NkU7MTEwNCAxMTZDIDExQjE7QjY2RTsxMTA0IDExNkMgMTFCMTsKK0I2NkY7QjY2RjsxMTA0IDExNkMgMTFCMjtCNjZGOzExMDQgMTE2QyAxMUIyOworQjY3MDtCNjcwOzExMDQgMTE2QyAxMUIzO0I2NzA7MTEwNCAxMTZDIDExQjM7CitCNjcxO0I2NzE7MTEwNCAxMTZDIDExQjQ7QjY3MTsxMTA0IDExNkMgMTFCNDsKK0I2NzI7QjY3MjsxMTA0IDExNkMgMTFCNTtCNjcyOzExMDQgMTE2QyAxMUI1OworQjY3MztCNjczOzExMDQgMTE2QyAxMUI2O0I2NzM7MTEwNCAxMTZDIDExQjY7CitCNjc0O0I2NzQ7MTEwNCAxMTZDIDExQjc7QjY3NDsxMTA0IDExNkMgMTFCNzsKK0I2NzU7QjY3NTsxMTA0IDExNkMgMTFCODtCNjc1OzExMDQgMTE2QyAxMUI4OworQjY3NjtCNjc2OzExMDQgMTE2QyAxMUI5O0I2NzY7MTEwNCAxMTZDIDExQjk7CitCNjc3O0I2Nzc7MTEwNCAxMTZDIDExQkE7QjY3NzsxMTA0IDExNkMgMTFCQTsKK0I2Nzg7QjY3ODsxMTA0IDExNkMgMTFCQjtCNjc4OzExMDQgMTE2QyAxMUJCOworQjY3OTtCNjc5OzExMDQgMTE2QyAxMUJDO0I2Nzk7MTEwNCAxMTZDIDExQkM7CitCNjdBO0I2N0E7MTEwNCAxMTZDIDExQkQ7QjY3QTsxMTA0IDExNkMgMTFCRDsKK0I2N0I7QjY3QjsxMTA0IDExNkMgMTFCRTtCNjdCOzExMDQgMTE2QyAxMUJFOworQjY3QztCNjdDOzExMDQgMTE2QyAxMUJGO0I2N0M7MTEwNCAxMTZDIDExQkY7CitCNjdEO0I2N0Q7MTEwNCAxMTZDIDExQzA7QjY3RDsxMTA0IDExNkMgMTFDMDsKK0I2N0U7QjY3RTsxMTA0IDExNkMgMTFDMTtCNjdFOzExMDQgMTE2QyAxMUMxOworQjY3RjtCNjdGOzExMDQgMTE2QyAxMUMyO0I2N0Y7MTEwNCAxMTZDIDExQzI7CitCNjgwO0I2ODA7MTEwNCAxMTZEO0I2ODA7MTEwNCAxMTZEOworQjY4MTtCNjgxOzExMDQgMTE2RCAxMUE4O0I2ODE7MTEwNCAxMTZEIDExQTg7CitCNjgyO0I2ODI7MTEwNCAxMTZEIDExQTk7QjY4MjsxMTA0IDExNkQgMTFBOTsKK0I2ODM7QjY4MzsxMTA0IDExNkQgMTFBQTtCNjgzOzExMDQgMTE2RCAxMUFBOworQjY4NDtCNjg0OzExMDQgMTE2RCAxMUFCO0I2ODQ7MTEwNCAxMTZEIDExQUI7CitCNjg1O0I2ODU7MTEwNCAxMTZEIDExQUM7QjY4NTsxMTA0IDExNkQgMTFBQzsKK0I2ODY7QjY4NjsxMTA0IDExNkQgMTFBRDtCNjg2OzExMDQgMTE2RCAxMUFEOworQjY4NztCNjg3OzExMDQgMTE2RCAxMUFFO0I2ODc7MTEwNCAxMTZEIDExQUU7CitCNjg4O0I2ODg7MTEwNCAxMTZEIDExQUY7QjY4ODsxMTA0IDExNkQgMTFBRjsKK0I2ODk7QjY4OTsxMTA0IDExNkQgMTFCMDtCNjg5OzExMDQgMTE2RCAxMUIwOworQjY4QTtCNjhBOzExMDQgMTE2RCAxMUIxO0I2OEE7MTEwNCAxMTZEIDExQjE7CitCNjhCO0I2OEI7MTEwNCAxMTZEIDExQjI7QjY4QjsxMTA0IDExNkQgMTFCMjsKK0I2OEM7QjY4QzsxMTA0IDExNkQgMTFCMztCNjhDOzExMDQgMTE2RCAxMUIzOworQjY4RDtCNjhEOzExMDQgMTE2RCAxMUI0O0I2OEQ7MTEwNCAxMTZEIDExQjQ7CitCNjhFO0I2OEU7MTEwNCAxMTZEIDExQjU7QjY4RTsxMTA0IDExNkQgMTFCNTsKK0I2OEY7QjY4RjsxMTA0IDExNkQgMTFCNjtCNjhGOzExMDQgMTE2RCAxMUI2OworQjY5MDtCNjkwOzExMDQgMTE2RCAxMUI3O0I2OTA7MTEwNCAxMTZEIDExQjc7CitCNjkxO0I2OTE7MTEwNCAxMTZEIDExQjg7QjY5MTsxMTA0IDExNkQgMTFCODsKK0I2OTI7QjY5MjsxMTA0IDExNkQgMTFCOTtCNjkyOzExMDQgMTE2RCAxMUI5OworQjY5MztCNjkzOzExMDQgMTE2RCAxMUJBO0I2OTM7MTEwNCAxMTZEIDExQkE7CitCNjk0O0I2OTQ7MTEwNCAxMTZEIDExQkI7QjY5NDsxMTA0IDExNkQgMTFCQjsKK0I2OTU7QjY5NTsxMTA0IDExNkQgMTFCQztCNjk1OzExMDQgMTE2RCAxMUJDOworQjY5NjtCNjk2OzExMDQgMTE2RCAxMUJEO0I2OTY7MTEwNCAxMTZEIDExQkQ7CitCNjk3O0I2OTc7MTEwNCAxMTZEIDExQkU7QjY5NzsxMTA0IDExNkQgMTFCRTsKK0I2OTg7QjY5ODsxMTA0IDExNkQgMTFCRjtCNjk4OzExMDQgMTE2RCAxMUJGOworQjY5OTtCNjk5OzExMDQgMTE2RCAxMUMwO0I2OTk7MTEwNCAxMTZEIDExQzA7CitCNjlBO0I2OUE7MTEwNCAxMTZEIDExQzE7QjY5QTsxMTA0IDExNkQgMTFDMTsKK0I2OUI7QjY5QjsxMTA0IDExNkQgMTFDMjtCNjlCOzExMDQgMTE2RCAxMUMyOworQjY5QztCNjlDOzExMDQgMTE2RTtCNjlDOzExMDQgMTE2RTsKK0I2OUQ7QjY5RDsxMTA0IDExNkUgMTFBODtCNjlEOzExMDQgMTE2RSAxMUE4OworQjY5RTtCNjlFOzExMDQgMTE2RSAxMUE5O0I2OUU7MTEwNCAxMTZFIDExQTk7CitCNjlGO0I2OUY7MTEwNCAxMTZFIDExQUE7QjY5RjsxMTA0IDExNkUgMTFBQTsKK0I2QTA7QjZBMDsxMTA0IDExNkUgMTFBQjtCNkEwOzExMDQgMTE2RSAxMUFCOworQjZBMTtCNkExOzExMDQgMTE2RSAxMUFDO0I2QTE7MTEwNCAxMTZFIDExQUM7CitCNkEyO0I2QTI7MTEwNCAxMTZFIDExQUQ7QjZBMjsxMTA0IDExNkUgMTFBRDsKK0I2QTM7QjZBMzsxMTA0IDExNkUgMTFBRTtCNkEzOzExMDQgMTE2RSAxMUFFOworQjZBNDtCNkE0OzExMDQgMTE2RSAxMUFGO0I2QTQ7MTEwNCAxMTZFIDExQUY7CitCNkE1O0I2QTU7MTEwNCAxMTZFIDExQjA7QjZBNTsxMTA0IDExNkUgMTFCMDsKK0I2QTY7QjZBNjsxMTA0IDExNkUgMTFCMTtCNkE2OzExMDQgMTE2RSAxMUIxOworQjZBNztCNkE3OzExMDQgMTE2RSAxMUIyO0I2QTc7MTEwNCAxMTZFIDExQjI7CitCNkE4O0I2QTg7MTEwNCAxMTZFIDExQjM7QjZBODsxMTA0IDExNkUgMTFCMzsKK0I2QTk7QjZBOTsxMTA0IDExNkUgMTFCNDtCNkE5OzExMDQgMTE2RSAxMUI0OworQjZBQTtCNkFBOzExMDQgMTE2RSAxMUI1O0I2QUE7MTEwNCAxMTZFIDExQjU7CitCNkFCO0I2QUI7MTEwNCAxMTZFIDExQjY7QjZBQjsxMTA0IDExNkUgMTFCNjsKK0I2QUM7QjZBQzsxMTA0IDExNkUgMTFCNztCNkFDOzExMDQgMTE2RSAxMUI3OworQjZBRDtCNkFEOzExMDQgMTE2RSAxMUI4O0I2QUQ7MTEwNCAxMTZFIDExQjg7CitCNkFFO0I2QUU7MTEwNCAxMTZFIDExQjk7QjZBRTsxMTA0IDExNkUgMTFCOTsKK0I2QUY7QjZBRjsxMTA0IDExNkUgMTFCQTtCNkFGOzExMDQgMTE2RSAxMUJBOworQjZCMDtCNkIwOzExMDQgMTE2RSAxMUJCO0I2QjA7MTEwNCAxMTZFIDExQkI7CitCNkIxO0I2QjE7MTEwNCAxMTZFIDExQkM7QjZCMTsxMTA0IDExNkUgMTFCQzsKK0I2QjI7QjZCMjsxMTA0IDExNkUgMTFCRDtCNkIyOzExMDQgMTE2RSAxMUJEOworQjZCMztCNkIzOzExMDQgMTE2RSAxMUJFO0I2QjM7MTEwNCAxMTZFIDExQkU7CitCNkI0O0I2QjQ7MTEwNCAxMTZFIDExQkY7QjZCNDsxMTA0IDExNkUgMTFCRjsKK0I2QjU7QjZCNTsxMTA0IDExNkUgMTFDMDtCNkI1OzExMDQgMTE2RSAxMUMwOworQjZCNjtCNkI2OzExMDQgMTE2RSAxMUMxO0I2QjY7MTEwNCAxMTZFIDExQzE7CitCNkI3O0I2Qjc7MTEwNCAxMTZFIDExQzI7QjZCNzsxMTA0IDExNkUgMTFDMjsKK0I2Qjg7QjZCODsxMTA0IDExNkY7QjZCODsxMTA0IDExNkY7CitCNkI5O0I2Qjk7MTEwNCAxMTZGIDExQTg7QjZCOTsxMTA0IDExNkYgMTFBODsKK0I2QkE7QjZCQTsxMTA0IDExNkYgMTFBOTtCNkJBOzExMDQgMTE2RiAxMUE5OworQjZCQjtCNkJCOzExMDQgMTE2RiAxMUFBO0I2QkI7MTEwNCAxMTZGIDExQUE7CitCNkJDO0I2QkM7MTEwNCAxMTZGIDExQUI7QjZCQzsxMTA0IDExNkYgMTFBQjsKK0I2QkQ7QjZCRDsxMTA0IDExNkYgMTFBQztCNkJEOzExMDQgMTE2RiAxMUFDOworQjZCRTtCNkJFOzExMDQgMTE2RiAxMUFEO0I2QkU7MTEwNCAxMTZGIDExQUQ7CitCNkJGO0I2QkY7MTEwNCAxMTZGIDExQUU7QjZCRjsxMTA0IDExNkYgMTFBRTsKK0I2QzA7QjZDMDsxMTA0IDExNkYgMTFBRjtCNkMwOzExMDQgMTE2RiAxMUFGOworQjZDMTtCNkMxOzExMDQgMTE2RiAxMUIwO0I2QzE7MTEwNCAxMTZGIDExQjA7CitCNkMyO0I2QzI7MTEwNCAxMTZGIDExQjE7QjZDMjsxMTA0IDExNkYgMTFCMTsKK0I2QzM7QjZDMzsxMTA0IDExNkYgMTFCMjtCNkMzOzExMDQgMTE2RiAxMUIyOworQjZDNDtCNkM0OzExMDQgMTE2RiAxMUIzO0I2QzQ7MTEwNCAxMTZGIDExQjM7CitCNkM1O0I2QzU7MTEwNCAxMTZGIDExQjQ7QjZDNTsxMTA0IDExNkYgMTFCNDsKK0I2QzY7QjZDNjsxMTA0IDExNkYgMTFCNTtCNkM2OzExMDQgMTE2RiAxMUI1OworQjZDNztCNkM3OzExMDQgMTE2RiAxMUI2O0I2Qzc7MTEwNCAxMTZGIDExQjY7CitCNkM4O0I2Qzg7MTEwNCAxMTZGIDExQjc7QjZDODsxMTA0IDExNkYgMTFCNzsKK0I2Qzk7QjZDOTsxMTA0IDExNkYgMTFCODtCNkM5OzExMDQgMTE2RiAxMUI4OworQjZDQTtCNkNBOzExMDQgMTE2RiAxMUI5O0I2Q0E7MTEwNCAxMTZGIDExQjk7CitCNkNCO0I2Q0I7MTEwNCAxMTZGIDExQkE7QjZDQjsxMTA0IDExNkYgMTFCQTsKK0I2Q0M7QjZDQzsxMTA0IDExNkYgMTFCQjtCNkNDOzExMDQgMTE2RiAxMUJCOworQjZDRDtCNkNEOzExMDQgMTE2RiAxMUJDO0I2Q0Q7MTEwNCAxMTZGIDExQkM7CitCNkNFO0I2Q0U7MTEwNCAxMTZGIDExQkQ7QjZDRTsxMTA0IDExNkYgMTFCRDsKK0I2Q0Y7QjZDRjsxMTA0IDExNkYgMTFCRTtCNkNGOzExMDQgMTE2RiAxMUJFOworQjZEMDtCNkQwOzExMDQgMTE2RiAxMUJGO0I2RDA7MTEwNCAxMTZGIDExQkY7CitCNkQxO0I2RDE7MTEwNCAxMTZGIDExQzA7QjZEMTsxMTA0IDExNkYgMTFDMDsKK0I2RDI7QjZEMjsxMTA0IDExNkYgMTFDMTtCNkQyOzExMDQgMTE2RiAxMUMxOworQjZEMztCNkQzOzExMDQgMTE2RiAxMUMyO0I2RDM7MTEwNCAxMTZGIDExQzI7CitCNkQ0O0I2RDQ7MTEwNCAxMTcwO0I2RDQ7MTEwNCAxMTcwOworQjZENTtCNkQ1OzExMDQgMTE3MCAxMUE4O0I2RDU7MTEwNCAxMTcwIDExQTg7CitCNkQ2O0I2RDY7MTEwNCAxMTcwIDExQTk7QjZENjsxMTA0IDExNzAgMTFBOTsKK0I2RDc7QjZENzsxMTA0IDExNzAgMTFBQTtCNkQ3OzExMDQgMTE3MCAxMUFBOworQjZEODtCNkQ4OzExMDQgMTE3MCAxMUFCO0I2RDg7MTEwNCAxMTcwIDExQUI7CitCNkQ5O0I2RDk7MTEwNCAxMTcwIDExQUM7QjZEOTsxMTA0IDExNzAgMTFBQzsKK0I2REE7QjZEQTsxMTA0IDExNzAgMTFBRDtCNkRBOzExMDQgMTE3MCAxMUFEOworQjZEQjtCNkRCOzExMDQgMTE3MCAxMUFFO0I2REI7MTEwNCAxMTcwIDExQUU7CitCNkRDO0I2REM7MTEwNCAxMTcwIDExQUY7QjZEQzsxMTA0IDExNzAgMTFBRjsKK0I2REQ7QjZERDsxMTA0IDExNzAgMTFCMDtCNkREOzExMDQgMTE3MCAxMUIwOworQjZERTtCNkRFOzExMDQgMTE3MCAxMUIxO0I2REU7MTEwNCAxMTcwIDExQjE7CitCNkRGO0I2REY7MTEwNCAxMTcwIDExQjI7QjZERjsxMTA0IDExNzAgMTFCMjsKK0I2RTA7QjZFMDsxMTA0IDExNzAgMTFCMztCNkUwOzExMDQgMTE3MCAxMUIzOworQjZFMTtCNkUxOzExMDQgMTE3MCAxMUI0O0I2RTE7MTEwNCAxMTcwIDExQjQ7CitCNkUyO0I2RTI7MTEwNCAxMTcwIDExQjU7QjZFMjsxMTA0IDExNzAgMTFCNTsKK0I2RTM7QjZFMzsxMTA0IDExNzAgMTFCNjtCNkUzOzExMDQgMTE3MCAxMUI2OworQjZFNDtCNkU0OzExMDQgMTE3MCAxMUI3O0I2RTQ7MTEwNCAxMTcwIDExQjc7CitCNkU1O0I2RTU7MTEwNCAxMTcwIDExQjg7QjZFNTsxMTA0IDExNzAgMTFCODsKK0I2RTY7QjZFNjsxMTA0IDExNzAgMTFCOTtCNkU2OzExMDQgMTE3MCAxMUI5OworQjZFNztCNkU3OzExMDQgMTE3MCAxMUJBO0I2RTc7MTEwNCAxMTcwIDExQkE7CitCNkU4O0I2RTg7MTEwNCAxMTcwIDExQkI7QjZFODsxMTA0IDExNzAgMTFCQjsKK0I2RTk7QjZFOTsxMTA0IDExNzAgMTFCQztCNkU5OzExMDQgMTE3MCAxMUJDOworQjZFQTtCNkVBOzExMDQgMTE3MCAxMUJEO0I2RUE7MTEwNCAxMTcwIDExQkQ7CitCNkVCO0I2RUI7MTEwNCAxMTcwIDExQkU7QjZFQjsxMTA0IDExNzAgMTFCRTsKK0I2RUM7QjZFQzsxMTA0IDExNzAgMTFCRjtCNkVDOzExMDQgMTE3MCAxMUJGOworQjZFRDtCNkVEOzExMDQgMTE3MCAxMUMwO0I2RUQ7MTEwNCAxMTcwIDExQzA7CitCNkVFO0I2RUU7MTEwNCAxMTcwIDExQzE7QjZFRTsxMTA0IDExNzAgMTFDMTsKK0I2RUY7QjZFRjsxMTA0IDExNzAgMTFDMjtCNkVGOzExMDQgMTE3MCAxMUMyOworQjZGMDtCNkYwOzExMDQgMTE3MTtCNkYwOzExMDQgMTE3MTsKK0I2RjE7QjZGMTsxMTA0IDExNzEgMTFBODtCNkYxOzExMDQgMTE3MSAxMUE4OworQjZGMjtCNkYyOzExMDQgMTE3MSAxMUE5O0I2RjI7MTEwNCAxMTcxIDExQTk7CitCNkYzO0I2RjM7MTEwNCAxMTcxIDExQUE7QjZGMzsxMTA0IDExNzEgMTFBQTsKK0I2RjQ7QjZGNDsxMTA0IDExNzEgMTFBQjtCNkY0OzExMDQgMTE3MSAxMUFCOworQjZGNTtCNkY1OzExMDQgMTE3MSAxMUFDO0I2RjU7MTEwNCAxMTcxIDExQUM7CitCNkY2O0I2RjY7MTEwNCAxMTcxIDExQUQ7QjZGNjsxMTA0IDExNzEgMTFBRDsKK0I2Rjc7QjZGNzsxMTA0IDExNzEgMTFBRTtCNkY3OzExMDQgMTE3MSAxMUFFOworQjZGODtCNkY4OzExMDQgMTE3MSAxMUFGO0I2Rjg7MTEwNCAxMTcxIDExQUY7CitCNkY5O0I2Rjk7MTEwNCAxMTcxIDExQjA7QjZGOTsxMTA0IDExNzEgMTFCMDsKK0I2RkE7QjZGQTsxMTA0IDExNzEgMTFCMTtCNkZBOzExMDQgMTE3MSAxMUIxOworQjZGQjtCNkZCOzExMDQgMTE3MSAxMUIyO0I2RkI7MTEwNCAxMTcxIDExQjI7CitCNkZDO0I2RkM7MTEwNCAxMTcxIDExQjM7QjZGQzsxMTA0IDExNzEgMTFCMzsKK0I2RkQ7QjZGRDsxMTA0IDExNzEgMTFCNDtCNkZEOzExMDQgMTE3MSAxMUI0OworQjZGRTtCNkZFOzExMDQgMTE3MSAxMUI1O0I2RkU7MTEwNCAxMTcxIDExQjU7CitCNkZGO0I2RkY7MTEwNCAxMTcxIDExQjY7QjZGRjsxMTA0IDExNzEgMTFCNjsKK0I3MDA7QjcwMDsxMTA0IDExNzEgMTFCNztCNzAwOzExMDQgMTE3MSAxMUI3OworQjcwMTtCNzAxOzExMDQgMTE3MSAxMUI4O0I3MDE7MTEwNCAxMTcxIDExQjg7CitCNzAyO0I3MDI7MTEwNCAxMTcxIDExQjk7QjcwMjsxMTA0IDExNzEgMTFCOTsKK0I3MDM7QjcwMzsxMTA0IDExNzEgMTFCQTtCNzAzOzExMDQgMTE3MSAxMUJBOworQjcwNDtCNzA0OzExMDQgMTE3MSAxMUJCO0I3MDQ7MTEwNCAxMTcxIDExQkI7CitCNzA1O0I3MDU7MTEwNCAxMTcxIDExQkM7QjcwNTsxMTA0IDExNzEgMTFCQzsKK0I3MDY7QjcwNjsxMTA0IDExNzEgMTFCRDtCNzA2OzExMDQgMTE3MSAxMUJEOworQjcwNztCNzA3OzExMDQgMTE3MSAxMUJFO0I3MDc7MTEwNCAxMTcxIDExQkU7CitCNzA4O0I3MDg7MTEwNCAxMTcxIDExQkY7QjcwODsxMTA0IDExNzEgMTFCRjsKK0I3MDk7QjcwOTsxMTA0IDExNzEgMTFDMDtCNzA5OzExMDQgMTE3MSAxMUMwOworQjcwQTtCNzBBOzExMDQgMTE3MSAxMUMxO0I3MEE7MTEwNCAxMTcxIDExQzE7CitCNzBCO0I3MEI7MTEwNCAxMTcxIDExQzI7QjcwQjsxMTA0IDExNzEgMTFDMjsKK0I3MEM7QjcwQzsxMTA0IDExNzI7QjcwQzsxMTA0IDExNzI7CitCNzBEO0I3MEQ7MTEwNCAxMTcyIDExQTg7QjcwRDsxMTA0IDExNzIgMTFBODsKK0I3MEU7QjcwRTsxMTA0IDExNzIgMTFBOTtCNzBFOzExMDQgMTE3MiAxMUE5OworQjcwRjtCNzBGOzExMDQgMTE3MiAxMUFBO0I3MEY7MTEwNCAxMTcyIDExQUE7CitCNzEwO0I3MTA7MTEwNCAxMTcyIDExQUI7QjcxMDsxMTA0IDExNzIgMTFBQjsKK0I3MTE7QjcxMTsxMTA0IDExNzIgMTFBQztCNzExOzExMDQgMTE3MiAxMUFDOworQjcxMjtCNzEyOzExMDQgMTE3MiAxMUFEO0I3MTI7MTEwNCAxMTcyIDExQUQ7CitCNzEzO0I3MTM7MTEwNCAxMTcyIDExQUU7QjcxMzsxMTA0IDExNzIgMTFBRTsKK0I3MTQ7QjcxNDsxMTA0IDExNzIgMTFBRjtCNzE0OzExMDQgMTE3MiAxMUFGOworQjcxNTtCNzE1OzExMDQgMTE3MiAxMUIwO0I3MTU7MTEwNCAxMTcyIDExQjA7CitCNzE2O0I3MTY7MTEwNCAxMTcyIDExQjE7QjcxNjsxMTA0IDExNzIgMTFCMTsKK0I3MTc7QjcxNzsxMTA0IDExNzIgMTFCMjtCNzE3OzExMDQgMTE3MiAxMUIyOworQjcxODtCNzE4OzExMDQgMTE3MiAxMUIzO0I3MTg7MTEwNCAxMTcyIDExQjM7CitCNzE5O0I3MTk7MTEwNCAxMTcyIDExQjQ7QjcxOTsxMTA0IDExNzIgMTFCNDsKK0I3MUE7QjcxQTsxMTA0IDExNzIgMTFCNTtCNzFBOzExMDQgMTE3MiAxMUI1OworQjcxQjtCNzFCOzExMDQgMTE3MiAxMUI2O0I3MUI7MTEwNCAxMTcyIDExQjY7CitCNzFDO0I3MUM7MTEwNCAxMTcyIDExQjc7QjcxQzsxMTA0IDExNzIgMTFCNzsKK0I3MUQ7QjcxRDsxMTA0IDExNzIgMTFCODtCNzFEOzExMDQgMTE3MiAxMUI4OworQjcxRTtCNzFFOzExMDQgMTE3MiAxMUI5O0I3MUU7MTEwNCAxMTcyIDExQjk7CitCNzFGO0I3MUY7MTEwNCAxMTcyIDExQkE7QjcxRjsxMTA0IDExNzIgMTFCQTsKK0I3MjA7QjcyMDsxMTA0IDExNzIgMTFCQjtCNzIwOzExMDQgMTE3MiAxMUJCOworQjcyMTtCNzIxOzExMDQgMTE3MiAxMUJDO0I3MjE7MTEwNCAxMTcyIDExQkM7CitCNzIyO0I3MjI7MTEwNCAxMTcyIDExQkQ7QjcyMjsxMTA0IDExNzIgMTFCRDsKK0I3MjM7QjcyMzsxMTA0IDExNzIgMTFCRTtCNzIzOzExMDQgMTE3MiAxMUJFOworQjcyNDtCNzI0OzExMDQgMTE3MiAxMUJGO0I3MjQ7MTEwNCAxMTcyIDExQkY7CitCNzI1O0I3MjU7MTEwNCAxMTcyIDExQzA7QjcyNTsxMTA0IDExNzIgMTFDMDsKK0I3MjY7QjcyNjsxMTA0IDExNzIgMTFDMTtCNzI2OzExMDQgMTE3MiAxMUMxOworQjcyNztCNzI3OzExMDQgMTE3MiAxMUMyO0I3Mjc7MTEwNCAxMTcyIDExQzI7CitCNzI4O0I3Mjg7MTEwNCAxMTczO0I3Mjg7MTEwNCAxMTczOworQjcyOTtCNzI5OzExMDQgMTE3MyAxMUE4O0I3Mjk7MTEwNCAxMTczIDExQTg7CitCNzJBO0I3MkE7MTEwNCAxMTczIDExQTk7QjcyQTsxMTA0IDExNzMgMTFBOTsKK0I3MkI7QjcyQjsxMTA0IDExNzMgMTFBQTtCNzJCOzExMDQgMTE3MyAxMUFBOworQjcyQztCNzJDOzExMDQgMTE3MyAxMUFCO0I3MkM7MTEwNCAxMTczIDExQUI7CitCNzJEO0I3MkQ7MTEwNCAxMTczIDExQUM7QjcyRDsxMTA0IDExNzMgMTFBQzsKK0I3MkU7QjcyRTsxMTA0IDExNzMgMTFBRDtCNzJFOzExMDQgMTE3MyAxMUFEOworQjcyRjtCNzJGOzExMDQgMTE3MyAxMUFFO0I3MkY7MTEwNCAxMTczIDExQUU7CitCNzMwO0I3MzA7MTEwNCAxMTczIDExQUY7QjczMDsxMTA0IDExNzMgMTFBRjsKK0I3MzE7QjczMTsxMTA0IDExNzMgMTFCMDtCNzMxOzExMDQgMTE3MyAxMUIwOworQjczMjtCNzMyOzExMDQgMTE3MyAxMUIxO0I3MzI7MTEwNCAxMTczIDExQjE7CitCNzMzO0I3MzM7MTEwNCAxMTczIDExQjI7QjczMzsxMTA0IDExNzMgMTFCMjsKK0I3MzQ7QjczNDsxMTA0IDExNzMgMTFCMztCNzM0OzExMDQgMTE3MyAxMUIzOworQjczNTtCNzM1OzExMDQgMTE3MyAxMUI0O0I3MzU7MTEwNCAxMTczIDExQjQ7CitCNzM2O0I3MzY7MTEwNCAxMTczIDExQjU7QjczNjsxMTA0IDExNzMgMTFCNTsKK0I3Mzc7QjczNzsxMTA0IDExNzMgMTFCNjtCNzM3OzExMDQgMTE3MyAxMUI2OworQjczODtCNzM4OzExMDQgMTE3MyAxMUI3O0I3Mzg7MTEwNCAxMTczIDExQjc7CitCNzM5O0I3Mzk7MTEwNCAxMTczIDExQjg7QjczOTsxMTA0IDExNzMgMTFCODsKK0I3M0E7QjczQTsxMTA0IDExNzMgMTFCOTtCNzNBOzExMDQgMTE3MyAxMUI5OworQjczQjtCNzNCOzExMDQgMTE3MyAxMUJBO0I3M0I7MTEwNCAxMTczIDExQkE7CitCNzNDO0I3M0M7MTEwNCAxMTczIDExQkI7QjczQzsxMTA0IDExNzMgMTFCQjsKK0I3M0Q7QjczRDsxMTA0IDExNzMgMTFCQztCNzNEOzExMDQgMTE3MyAxMUJDOworQjczRTtCNzNFOzExMDQgMTE3MyAxMUJEO0I3M0U7MTEwNCAxMTczIDExQkQ7CitCNzNGO0I3M0Y7MTEwNCAxMTczIDExQkU7QjczRjsxMTA0IDExNzMgMTFCRTsKK0I3NDA7Qjc0MDsxMTA0IDExNzMgMTFCRjtCNzQwOzExMDQgMTE3MyAxMUJGOworQjc0MTtCNzQxOzExMDQgMTE3MyAxMUMwO0I3NDE7MTEwNCAxMTczIDExQzA7CitCNzQyO0I3NDI7MTEwNCAxMTczIDExQzE7Qjc0MjsxMTA0IDExNzMgMTFDMTsKK0I3NDM7Qjc0MzsxMTA0IDExNzMgMTFDMjtCNzQzOzExMDQgMTE3MyAxMUMyOworQjc0NDtCNzQ0OzExMDQgMTE3NDtCNzQ0OzExMDQgMTE3NDsKK0I3NDU7Qjc0NTsxMTA0IDExNzQgMTFBODtCNzQ1OzExMDQgMTE3NCAxMUE4OworQjc0NjtCNzQ2OzExMDQgMTE3NCAxMUE5O0I3NDY7MTEwNCAxMTc0IDExQTk7CitCNzQ3O0I3NDc7MTEwNCAxMTc0IDExQUE7Qjc0NzsxMTA0IDExNzQgMTFBQTsKK0I3NDg7Qjc0ODsxMTA0IDExNzQgMTFBQjtCNzQ4OzExMDQgMTE3NCAxMUFCOworQjc0OTtCNzQ5OzExMDQgMTE3NCAxMUFDO0I3NDk7MTEwNCAxMTc0IDExQUM7CitCNzRBO0I3NEE7MTEwNCAxMTc0IDExQUQ7Qjc0QTsxMTA0IDExNzQgMTFBRDsKK0I3NEI7Qjc0QjsxMTA0IDExNzQgMTFBRTtCNzRCOzExMDQgMTE3NCAxMUFFOworQjc0QztCNzRDOzExMDQgMTE3NCAxMUFGO0I3NEM7MTEwNCAxMTc0IDExQUY7CitCNzREO0I3NEQ7MTEwNCAxMTc0IDExQjA7Qjc0RDsxMTA0IDExNzQgMTFCMDsKK0I3NEU7Qjc0RTsxMTA0IDExNzQgMTFCMTtCNzRFOzExMDQgMTE3NCAxMUIxOworQjc0RjtCNzRGOzExMDQgMTE3NCAxMUIyO0I3NEY7MTEwNCAxMTc0IDExQjI7CitCNzUwO0I3NTA7MTEwNCAxMTc0IDExQjM7Qjc1MDsxMTA0IDExNzQgMTFCMzsKK0I3NTE7Qjc1MTsxMTA0IDExNzQgMTFCNDtCNzUxOzExMDQgMTE3NCAxMUI0OworQjc1MjtCNzUyOzExMDQgMTE3NCAxMUI1O0I3NTI7MTEwNCAxMTc0IDExQjU7CitCNzUzO0I3NTM7MTEwNCAxMTc0IDExQjY7Qjc1MzsxMTA0IDExNzQgMTFCNjsKK0I3NTQ7Qjc1NDsxMTA0IDExNzQgMTFCNztCNzU0OzExMDQgMTE3NCAxMUI3OworQjc1NTtCNzU1OzExMDQgMTE3NCAxMUI4O0I3NTU7MTEwNCAxMTc0IDExQjg7CitCNzU2O0I3NTY7MTEwNCAxMTc0IDExQjk7Qjc1NjsxMTA0IDExNzQgMTFCOTsKK0I3NTc7Qjc1NzsxMTA0IDExNzQgMTFCQTtCNzU3OzExMDQgMTE3NCAxMUJBOworQjc1ODtCNzU4OzExMDQgMTE3NCAxMUJCO0I3NTg7MTEwNCAxMTc0IDExQkI7CitCNzU5O0I3NTk7MTEwNCAxMTc0IDExQkM7Qjc1OTsxMTA0IDExNzQgMTFCQzsKK0I3NUE7Qjc1QTsxMTA0IDExNzQgMTFCRDtCNzVBOzExMDQgMTE3NCAxMUJEOworQjc1QjtCNzVCOzExMDQgMTE3NCAxMUJFO0I3NUI7MTEwNCAxMTc0IDExQkU7CitCNzVDO0I3NUM7MTEwNCAxMTc0IDExQkY7Qjc1QzsxMTA0IDExNzQgMTFCRjsKK0I3NUQ7Qjc1RDsxMTA0IDExNzQgMTFDMDtCNzVEOzExMDQgMTE3NCAxMUMwOworQjc1RTtCNzVFOzExMDQgMTE3NCAxMUMxO0I3NUU7MTEwNCAxMTc0IDExQzE7CitCNzVGO0I3NUY7MTEwNCAxMTc0IDExQzI7Qjc1RjsxMTA0IDExNzQgMTFDMjsKK0I3NjA7Qjc2MDsxMTA0IDExNzU7Qjc2MDsxMTA0IDExNzU7CitCNzYxO0I3NjE7MTEwNCAxMTc1IDExQTg7Qjc2MTsxMTA0IDExNzUgMTFBODsKK0I3NjI7Qjc2MjsxMTA0IDExNzUgMTFBOTtCNzYyOzExMDQgMTE3NSAxMUE5OworQjc2MztCNzYzOzExMDQgMTE3NSAxMUFBO0I3NjM7MTEwNCAxMTc1IDExQUE7CitCNzY0O0I3NjQ7MTEwNCAxMTc1IDExQUI7Qjc2NDsxMTA0IDExNzUgMTFBQjsKK0I3NjU7Qjc2NTsxMTA0IDExNzUgMTFBQztCNzY1OzExMDQgMTE3NSAxMUFDOworQjc2NjtCNzY2OzExMDQgMTE3NSAxMUFEO0I3NjY7MTEwNCAxMTc1IDExQUQ7CitCNzY3O0I3Njc7MTEwNCAxMTc1IDExQUU7Qjc2NzsxMTA0IDExNzUgMTFBRTsKK0I3Njg7Qjc2ODsxMTA0IDExNzUgMTFBRjtCNzY4OzExMDQgMTE3NSAxMUFGOworQjc2OTtCNzY5OzExMDQgMTE3NSAxMUIwO0I3Njk7MTEwNCAxMTc1IDExQjA7CitCNzZBO0I3NkE7MTEwNCAxMTc1IDExQjE7Qjc2QTsxMTA0IDExNzUgMTFCMTsKK0I3NkI7Qjc2QjsxMTA0IDExNzUgMTFCMjtCNzZCOzExMDQgMTE3NSAxMUIyOworQjc2QztCNzZDOzExMDQgMTE3NSAxMUIzO0I3NkM7MTEwNCAxMTc1IDExQjM7CitCNzZEO0I3NkQ7MTEwNCAxMTc1IDExQjQ7Qjc2RDsxMTA0IDExNzUgMTFCNDsKK0I3NkU7Qjc2RTsxMTA0IDExNzUgMTFCNTtCNzZFOzExMDQgMTE3NSAxMUI1OworQjc2RjtCNzZGOzExMDQgMTE3NSAxMUI2O0I3NkY7MTEwNCAxMTc1IDExQjY7CitCNzcwO0I3NzA7MTEwNCAxMTc1IDExQjc7Qjc3MDsxMTA0IDExNzUgMTFCNzsKK0I3NzE7Qjc3MTsxMTA0IDExNzUgMTFCODtCNzcxOzExMDQgMTE3NSAxMUI4OworQjc3MjtCNzcyOzExMDQgMTE3NSAxMUI5O0I3NzI7MTEwNCAxMTc1IDExQjk7CitCNzczO0I3NzM7MTEwNCAxMTc1IDExQkE7Qjc3MzsxMTA0IDExNzUgMTFCQTsKK0I3NzQ7Qjc3NDsxMTA0IDExNzUgMTFCQjtCNzc0OzExMDQgMTE3NSAxMUJCOworQjc3NTtCNzc1OzExMDQgMTE3NSAxMUJDO0I3NzU7MTEwNCAxMTc1IDExQkM7CitCNzc2O0I3NzY7MTEwNCAxMTc1IDExQkQ7Qjc3NjsxMTA0IDExNzUgMTFCRDsKK0I3Nzc7Qjc3NzsxMTA0IDExNzUgMTFCRTtCNzc3OzExMDQgMTE3NSAxMUJFOworQjc3ODtCNzc4OzExMDQgMTE3NSAxMUJGO0I3Nzg7MTEwNCAxMTc1IDExQkY7CitCNzc5O0I3Nzk7MTEwNCAxMTc1IDExQzA7Qjc3OTsxMTA0IDExNzUgMTFDMDsKK0I3N0E7Qjc3QTsxMTA0IDExNzUgMTFDMTtCNzdBOzExMDQgMTE3NSAxMUMxOworQjc3QjtCNzdCOzExMDQgMTE3NSAxMUMyO0I3N0I7MTEwNCAxMTc1IDExQzI7CitCNzdDO0I3N0M7MTEwNSAxMTYxO0I3N0M7MTEwNSAxMTYxOworQjc3RDtCNzdEOzExMDUgMTE2MSAxMUE4O0I3N0Q7MTEwNSAxMTYxIDExQTg7CitCNzdFO0I3N0U7MTEwNSAxMTYxIDExQTk7Qjc3RTsxMTA1IDExNjEgMTFBOTsKK0I3N0Y7Qjc3RjsxMTA1IDExNjEgMTFBQTtCNzdGOzExMDUgMTE2MSAxMUFBOworQjc4MDtCNzgwOzExMDUgMTE2MSAxMUFCO0I3ODA7MTEwNSAxMTYxIDExQUI7CitCNzgxO0I3ODE7MTEwNSAxMTYxIDExQUM7Qjc4MTsxMTA1IDExNjEgMTFBQzsKK0I3ODI7Qjc4MjsxMTA1IDExNjEgMTFBRDtCNzgyOzExMDUgMTE2MSAxMUFEOworQjc4MztCNzgzOzExMDUgMTE2MSAxMUFFO0I3ODM7MTEwNSAxMTYxIDExQUU7CitCNzg0O0I3ODQ7MTEwNSAxMTYxIDExQUY7Qjc4NDsxMTA1IDExNjEgMTFBRjsKK0I3ODU7Qjc4NTsxMTA1IDExNjEgMTFCMDtCNzg1OzExMDUgMTE2MSAxMUIwOworQjc4NjtCNzg2OzExMDUgMTE2MSAxMUIxO0I3ODY7MTEwNSAxMTYxIDExQjE7CitCNzg3O0I3ODc7MTEwNSAxMTYxIDExQjI7Qjc4NzsxMTA1IDExNjEgMTFCMjsKK0I3ODg7Qjc4ODsxMTA1IDExNjEgMTFCMztCNzg4OzExMDUgMTE2MSAxMUIzOworQjc4OTtCNzg5OzExMDUgMTE2MSAxMUI0O0I3ODk7MTEwNSAxMTYxIDExQjQ7CitCNzhBO0I3OEE7MTEwNSAxMTYxIDExQjU7Qjc4QTsxMTA1IDExNjEgMTFCNTsKK0I3OEI7Qjc4QjsxMTA1IDExNjEgMTFCNjtCNzhCOzExMDUgMTE2MSAxMUI2OworQjc4QztCNzhDOzExMDUgMTE2MSAxMUI3O0I3OEM7MTEwNSAxMTYxIDExQjc7CitCNzhEO0I3OEQ7MTEwNSAxMTYxIDExQjg7Qjc4RDsxMTA1IDExNjEgMTFCODsKK0I3OEU7Qjc4RTsxMTA1IDExNjEgMTFCOTtCNzhFOzExMDUgMTE2MSAxMUI5OworQjc4RjtCNzhGOzExMDUgMTE2MSAxMUJBO0I3OEY7MTEwNSAxMTYxIDExQkE7CitCNzkwO0I3OTA7MTEwNSAxMTYxIDExQkI7Qjc5MDsxMTA1IDExNjEgMTFCQjsKK0I3OTE7Qjc5MTsxMTA1IDExNjEgMTFCQztCNzkxOzExMDUgMTE2MSAxMUJDOworQjc5MjtCNzkyOzExMDUgMTE2MSAxMUJEO0I3OTI7MTEwNSAxMTYxIDExQkQ7CitCNzkzO0I3OTM7MTEwNSAxMTYxIDExQkU7Qjc5MzsxMTA1IDExNjEgMTFCRTsKK0I3OTQ7Qjc5NDsxMTA1IDExNjEgMTFCRjtCNzk0OzExMDUgMTE2MSAxMUJGOworQjc5NTtCNzk1OzExMDUgMTE2MSAxMUMwO0I3OTU7MTEwNSAxMTYxIDExQzA7CitCNzk2O0I3OTY7MTEwNSAxMTYxIDExQzE7Qjc5NjsxMTA1IDExNjEgMTFDMTsKK0I3OTc7Qjc5NzsxMTA1IDExNjEgMTFDMjtCNzk3OzExMDUgMTE2MSAxMUMyOworQjc5ODtCNzk4OzExMDUgMTE2MjtCNzk4OzExMDUgMTE2MjsKK0I3OTk7Qjc5OTsxMTA1IDExNjIgMTFBODtCNzk5OzExMDUgMTE2MiAxMUE4OworQjc5QTtCNzlBOzExMDUgMTE2MiAxMUE5O0I3OUE7MTEwNSAxMTYyIDExQTk7CitCNzlCO0I3OUI7MTEwNSAxMTYyIDExQUE7Qjc5QjsxMTA1IDExNjIgMTFBQTsKK0I3OUM7Qjc5QzsxMTA1IDExNjIgMTFBQjtCNzlDOzExMDUgMTE2MiAxMUFCOworQjc5RDtCNzlEOzExMDUgMTE2MiAxMUFDO0I3OUQ7MTEwNSAxMTYyIDExQUM7CitCNzlFO0I3OUU7MTEwNSAxMTYyIDExQUQ7Qjc5RTsxMTA1IDExNjIgMTFBRDsKK0I3OUY7Qjc5RjsxMTA1IDExNjIgMTFBRTtCNzlGOzExMDUgMTE2MiAxMUFFOworQjdBMDtCN0EwOzExMDUgMTE2MiAxMUFGO0I3QTA7MTEwNSAxMTYyIDExQUY7CitCN0ExO0I3QTE7MTEwNSAxMTYyIDExQjA7QjdBMTsxMTA1IDExNjIgMTFCMDsKK0I3QTI7QjdBMjsxMTA1IDExNjIgMTFCMTtCN0EyOzExMDUgMTE2MiAxMUIxOworQjdBMztCN0EzOzExMDUgMTE2MiAxMUIyO0I3QTM7MTEwNSAxMTYyIDExQjI7CitCN0E0O0I3QTQ7MTEwNSAxMTYyIDExQjM7QjdBNDsxMTA1IDExNjIgMTFCMzsKK0I3QTU7QjdBNTsxMTA1IDExNjIgMTFCNDtCN0E1OzExMDUgMTE2MiAxMUI0OworQjdBNjtCN0E2OzExMDUgMTE2MiAxMUI1O0I3QTY7MTEwNSAxMTYyIDExQjU7CitCN0E3O0I3QTc7MTEwNSAxMTYyIDExQjY7QjdBNzsxMTA1IDExNjIgMTFCNjsKK0I3QTg7QjdBODsxMTA1IDExNjIgMTFCNztCN0E4OzExMDUgMTE2MiAxMUI3OworQjdBOTtCN0E5OzExMDUgMTE2MiAxMUI4O0I3QTk7MTEwNSAxMTYyIDExQjg7CitCN0FBO0I3QUE7MTEwNSAxMTYyIDExQjk7QjdBQTsxMTA1IDExNjIgMTFCOTsKK0I3QUI7QjdBQjsxMTA1IDExNjIgMTFCQTtCN0FCOzExMDUgMTE2MiAxMUJBOworQjdBQztCN0FDOzExMDUgMTE2MiAxMUJCO0I3QUM7MTEwNSAxMTYyIDExQkI7CitCN0FEO0I3QUQ7MTEwNSAxMTYyIDExQkM7QjdBRDsxMTA1IDExNjIgMTFCQzsKK0I3QUU7QjdBRTsxMTA1IDExNjIgMTFCRDtCN0FFOzExMDUgMTE2MiAxMUJEOworQjdBRjtCN0FGOzExMDUgMTE2MiAxMUJFO0I3QUY7MTEwNSAxMTYyIDExQkU7CitCN0IwO0I3QjA7MTEwNSAxMTYyIDExQkY7QjdCMDsxMTA1IDExNjIgMTFCRjsKK0I3QjE7QjdCMTsxMTA1IDExNjIgMTFDMDtCN0IxOzExMDUgMTE2MiAxMUMwOworQjdCMjtCN0IyOzExMDUgMTE2MiAxMUMxO0I3QjI7MTEwNSAxMTYyIDExQzE7CitCN0IzO0I3QjM7MTEwNSAxMTYyIDExQzI7QjdCMzsxMTA1IDExNjIgMTFDMjsKK0I3QjQ7QjdCNDsxMTA1IDExNjM7QjdCNDsxMTA1IDExNjM7CitCN0I1O0I3QjU7MTEwNSAxMTYzIDExQTg7QjdCNTsxMTA1IDExNjMgMTFBODsKK0I3QjY7QjdCNjsxMTA1IDExNjMgMTFBOTtCN0I2OzExMDUgMTE2MyAxMUE5OworQjdCNztCN0I3OzExMDUgMTE2MyAxMUFBO0I3Qjc7MTEwNSAxMTYzIDExQUE7CitCN0I4O0I3Qjg7MTEwNSAxMTYzIDExQUI7QjdCODsxMTA1IDExNjMgMTFBQjsKK0I3Qjk7QjdCOTsxMTA1IDExNjMgMTFBQztCN0I5OzExMDUgMTE2MyAxMUFDOworQjdCQTtCN0JBOzExMDUgMTE2MyAxMUFEO0I3QkE7MTEwNSAxMTYzIDExQUQ7CitCN0JCO0I3QkI7MTEwNSAxMTYzIDExQUU7QjdCQjsxMTA1IDExNjMgMTFBRTsKK0I3QkM7QjdCQzsxMTA1IDExNjMgMTFBRjtCN0JDOzExMDUgMTE2MyAxMUFGOworQjdCRDtCN0JEOzExMDUgMTE2MyAxMUIwO0I3QkQ7MTEwNSAxMTYzIDExQjA7CitCN0JFO0I3QkU7MTEwNSAxMTYzIDExQjE7QjdCRTsxMTA1IDExNjMgMTFCMTsKK0I3QkY7QjdCRjsxMTA1IDExNjMgMTFCMjtCN0JGOzExMDUgMTE2MyAxMUIyOworQjdDMDtCN0MwOzExMDUgMTE2MyAxMUIzO0I3QzA7MTEwNSAxMTYzIDExQjM7CitCN0MxO0I3QzE7MTEwNSAxMTYzIDExQjQ7QjdDMTsxMTA1IDExNjMgMTFCNDsKK0I3QzI7QjdDMjsxMTA1IDExNjMgMTFCNTtCN0MyOzExMDUgMTE2MyAxMUI1OworQjdDMztCN0MzOzExMDUgMTE2MyAxMUI2O0I3QzM7MTEwNSAxMTYzIDExQjY7CitCN0M0O0I3QzQ7MTEwNSAxMTYzIDExQjc7QjdDNDsxMTA1IDExNjMgMTFCNzsKK0I3QzU7QjdDNTsxMTA1IDExNjMgMTFCODtCN0M1OzExMDUgMTE2MyAxMUI4OworQjdDNjtCN0M2OzExMDUgMTE2MyAxMUI5O0I3QzY7MTEwNSAxMTYzIDExQjk7CitCN0M3O0I3Qzc7MTEwNSAxMTYzIDExQkE7QjdDNzsxMTA1IDExNjMgMTFCQTsKK0I3Qzg7QjdDODsxMTA1IDExNjMgMTFCQjtCN0M4OzExMDUgMTE2MyAxMUJCOworQjdDOTtCN0M5OzExMDUgMTE2MyAxMUJDO0I3Qzk7MTEwNSAxMTYzIDExQkM7CitCN0NBO0I3Q0E7MTEwNSAxMTYzIDExQkQ7QjdDQTsxMTA1IDExNjMgMTFCRDsKK0I3Q0I7QjdDQjsxMTA1IDExNjMgMTFCRTtCN0NCOzExMDUgMTE2MyAxMUJFOworQjdDQztCN0NDOzExMDUgMTE2MyAxMUJGO0I3Q0M7MTEwNSAxMTYzIDExQkY7CitCN0NEO0I3Q0Q7MTEwNSAxMTYzIDExQzA7QjdDRDsxMTA1IDExNjMgMTFDMDsKK0I3Q0U7QjdDRTsxMTA1IDExNjMgMTFDMTtCN0NFOzExMDUgMTE2MyAxMUMxOworQjdDRjtCN0NGOzExMDUgMTE2MyAxMUMyO0I3Q0Y7MTEwNSAxMTYzIDExQzI7CitCN0QwO0I3RDA7MTEwNSAxMTY0O0I3RDA7MTEwNSAxMTY0OworQjdEMTtCN0QxOzExMDUgMTE2NCAxMUE4O0I3RDE7MTEwNSAxMTY0IDExQTg7CitCN0QyO0I3RDI7MTEwNSAxMTY0IDExQTk7QjdEMjsxMTA1IDExNjQgMTFBOTsKK0I3RDM7QjdEMzsxMTA1IDExNjQgMTFBQTtCN0QzOzExMDUgMTE2NCAxMUFBOworQjdENDtCN0Q0OzExMDUgMTE2NCAxMUFCO0I3RDQ7MTEwNSAxMTY0IDExQUI7CitCN0Q1O0I3RDU7MTEwNSAxMTY0IDExQUM7QjdENTsxMTA1IDExNjQgMTFBQzsKK0I3RDY7QjdENjsxMTA1IDExNjQgMTFBRDtCN0Q2OzExMDUgMTE2NCAxMUFEOworQjdENztCN0Q3OzExMDUgMTE2NCAxMUFFO0I3RDc7MTEwNSAxMTY0IDExQUU7CitCN0Q4O0I3RDg7MTEwNSAxMTY0IDExQUY7QjdEODsxMTA1IDExNjQgMTFBRjsKK0I3RDk7QjdEOTsxMTA1IDExNjQgMTFCMDtCN0Q5OzExMDUgMTE2NCAxMUIwOworQjdEQTtCN0RBOzExMDUgMTE2NCAxMUIxO0I3REE7MTEwNSAxMTY0IDExQjE7CitCN0RCO0I3REI7MTEwNSAxMTY0IDExQjI7QjdEQjsxMTA1IDExNjQgMTFCMjsKK0I3REM7QjdEQzsxMTA1IDExNjQgMTFCMztCN0RDOzExMDUgMTE2NCAxMUIzOworQjdERDtCN0REOzExMDUgMTE2NCAxMUI0O0I3REQ7MTEwNSAxMTY0IDExQjQ7CitCN0RFO0I3REU7MTEwNSAxMTY0IDExQjU7QjdERTsxMTA1IDExNjQgMTFCNTsKK0I3REY7QjdERjsxMTA1IDExNjQgMTFCNjtCN0RGOzExMDUgMTE2NCAxMUI2OworQjdFMDtCN0UwOzExMDUgMTE2NCAxMUI3O0I3RTA7MTEwNSAxMTY0IDExQjc7CitCN0UxO0I3RTE7MTEwNSAxMTY0IDExQjg7QjdFMTsxMTA1IDExNjQgMTFCODsKK0I3RTI7QjdFMjsxMTA1IDExNjQgMTFCOTtCN0UyOzExMDUgMTE2NCAxMUI5OworQjdFMztCN0UzOzExMDUgMTE2NCAxMUJBO0I3RTM7MTEwNSAxMTY0IDExQkE7CitCN0U0O0I3RTQ7MTEwNSAxMTY0IDExQkI7QjdFNDsxMTA1IDExNjQgMTFCQjsKK0I3RTU7QjdFNTsxMTA1IDExNjQgMTFCQztCN0U1OzExMDUgMTE2NCAxMUJDOworQjdFNjtCN0U2OzExMDUgMTE2NCAxMUJEO0I3RTY7MTEwNSAxMTY0IDExQkQ7CitCN0U3O0I3RTc7MTEwNSAxMTY0IDExQkU7QjdFNzsxMTA1IDExNjQgMTFCRTsKK0I3RTg7QjdFODsxMTA1IDExNjQgMTFCRjtCN0U4OzExMDUgMTE2NCAxMUJGOworQjdFOTtCN0U5OzExMDUgMTE2NCAxMUMwO0I3RTk7MTEwNSAxMTY0IDExQzA7CitCN0VBO0I3RUE7MTEwNSAxMTY0IDExQzE7QjdFQTsxMTA1IDExNjQgMTFDMTsKK0I3RUI7QjdFQjsxMTA1IDExNjQgMTFDMjtCN0VCOzExMDUgMTE2NCAxMUMyOworQjdFQztCN0VDOzExMDUgMTE2NTtCN0VDOzExMDUgMTE2NTsKK0I3RUQ7QjdFRDsxMTA1IDExNjUgMTFBODtCN0VEOzExMDUgMTE2NSAxMUE4OworQjdFRTtCN0VFOzExMDUgMTE2NSAxMUE5O0I3RUU7MTEwNSAxMTY1IDExQTk7CitCN0VGO0I3RUY7MTEwNSAxMTY1IDExQUE7QjdFRjsxMTA1IDExNjUgMTFBQTsKK0I3RjA7QjdGMDsxMTA1IDExNjUgMTFBQjtCN0YwOzExMDUgMTE2NSAxMUFCOworQjdGMTtCN0YxOzExMDUgMTE2NSAxMUFDO0I3RjE7MTEwNSAxMTY1IDExQUM7CitCN0YyO0I3RjI7MTEwNSAxMTY1IDExQUQ7QjdGMjsxMTA1IDExNjUgMTFBRDsKK0I3RjM7QjdGMzsxMTA1IDExNjUgMTFBRTtCN0YzOzExMDUgMTE2NSAxMUFFOworQjdGNDtCN0Y0OzExMDUgMTE2NSAxMUFGO0I3RjQ7MTEwNSAxMTY1IDExQUY7CitCN0Y1O0I3RjU7MTEwNSAxMTY1IDExQjA7QjdGNTsxMTA1IDExNjUgMTFCMDsKK0I3RjY7QjdGNjsxMTA1IDExNjUgMTFCMTtCN0Y2OzExMDUgMTE2NSAxMUIxOworQjdGNztCN0Y3OzExMDUgMTE2NSAxMUIyO0I3Rjc7MTEwNSAxMTY1IDExQjI7CitCN0Y4O0I3Rjg7MTEwNSAxMTY1IDExQjM7QjdGODsxMTA1IDExNjUgMTFCMzsKK0I3Rjk7QjdGOTsxMTA1IDExNjUgMTFCNDtCN0Y5OzExMDUgMTE2NSAxMUI0OworQjdGQTtCN0ZBOzExMDUgMTE2NSAxMUI1O0I3RkE7MTEwNSAxMTY1IDExQjU7CitCN0ZCO0I3RkI7MTEwNSAxMTY1IDExQjY7QjdGQjsxMTA1IDExNjUgMTFCNjsKK0I3RkM7QjdGQzsxMTA1IDExNjUgMTFCNztCN0ZDOzExMDUgMTE2NSAxMUI3OworQjdGRDtCN0ZEOzExMDUgMTE2NSAxMUI4O0I3RkQ7MTEwNSAxMTY1IDExQjg7CitCN0ZFO0I3RkU7MTEwNSAxMTY1IDExQjk7QjdGRTsxMTA1IDExNjUgMTFCOTsKK0I3RkY7QjdGRjsxMTA1IDExNjUgMTFCQTtCN0ZGOzExMDUgMTE2NSAxMUJBOworQjgwMDtCODAwOzExMDUgMTE2NSAxMUJCO0I4MDA7MTEwNSAxMTY1IDExQkI7CitCODAxO0I4MDE7MTEwNSAxMTY1IDExQkM7QjgwMTsxMTA1IDExNjUgMTFCQzsKK0I4MDI7QjgwMjsxMTA1IDExNjUgMTFCRDtCODAyOzExMDUgMTE2NSAxMUJEOworQjgwMztCODAzOzExMDUgMTE2NSAxMUJFO0I4MDM7MTEwNSAxMTY1IDExQkU7CitCODA0O0I4MDQ7MTEwNSAxMTY1IDExQkY7QjgwNDsxMTA1IDExNjUgMTFCRjsKK0I4MDU7QjgwNTsxMTA1IDExNjUgMTFDMDtCODA1OzExMDUgMTE2NSAxMUMwOworQjgwNjtCODA2OzExMDUgMTE2NSAxMUMxO0I4MDY7MTEwNSAxMTY1IDExQzE7CitCODA3O0I4MDc7MTEwNSAxMTY1IDExQzI7QjgwNzsxMTA1IDExNjUgMTFDMjsKK0I4MDg7QjgwODsxMTA1IDExNjY7QjgwODsxMTA1IDExNjY7CitCODA5O0I4MDk7MTEwNSAxMTY2IDExQTg7QjgwOTsxMTA1IDExNjYgMTFBODsKK0I4MEE7QjgwQTsxMTA1IDExNjYgMTFBOTtCODBBOzExMDUgMTE2NiAxMUE5OworQjgwQjtCODBCOzExMDUgMTE2NiAxMUFBO0I4MEI7MTEwNSAxMTY2IDExQUE7CitCODBDO0I4MEM7MTEwNSAxMTY2IDExQUI7QjgwQzsxMTA1IDExNjYgMTFBQjsKK0I4MEQ7QjgwRDsxMTA1IDExNjYgMTFBQztCODBEOzExMDUgMTE2NiAxMUFDOworQjgwRTtCODBFOzExMDUgMTE2NiAxMUFEO0I4MEU7MTEwNSAxMTY2IDExQUQ7CitCODBGO0I4MEY7MTEwNSAxMTY2IDExQUU7QjgwRjsxMTA1IDExNjYgMTFBRTsKK0I4MTA7QjgxMDsxMTA1IDExNjYgMTFBRjtCODEwOzExMDUgMTE2NiAxMUFGOworQjgxMTtCODExOzExMDUgMTE2NiAxMUIwO0I4MTE7MTEwNSAxMTY2IDExQjA7CitCODEyO0I4MTI7MTEwNSAxMTY2IDExQjE7QjgxMjsxMTA1IDExNjYgMTFCMTsKK0I4MTM7QjgxMzsxMTA1IDExNjYgMTFCMjtCODEzOzExMDUgMTE2NiAxMUIyOworQjgxNDtCODE0OzExMDUgMTE2NiAxMUIzO0I4MTQ7MTEwNSAxMTY2IDExQjM7CitCODE1O0I4MTU7MTEwNSAxMTY2IDExQjQ7QjgxNTsxMTA1IDExNjYgMTFCNDsKK0I4MTY7QjgxNjsxMTA1IDExNjYgMTFCNTtCODE2OzExMDUgMTE2NiAxMUI1OworQjgxNztCODE3OzExMDUgMTE2NiAxMUI2O0I4MTc7MTEwNSAxMTY2IDExQjY7CitCODE4O0I4MTg7MTEwNSAxMTY2IDExQjc7QjgxODsxMTA1IDExNjYgMTFCNzsKK0I4MTk7QjgxOTsxMTA1IDExNjYgMTFCODtCODE5OzExMDUgMTE2NiAxMUI4OworQjgxQTtCODFBOzExMDUgMTE2NiAxMUI5O0I4MUE7MTEwNSAxMTY2IDExQjk7CitCODFCO0I4MUI7MTEwNSAxMTY2IDExQkE7QjgxQjsxMTA1IDExNjYgMTFCQTsKK0I4MUM7QjgxQzsxMTA1IDExNjYgMTFCQjtCODFDOzExMDUgMTE2NiAxMUJCOworQjgxRDtCODFEOzExMDUgMTE2NiAxMUJDO0I4MUQ7MTEwNSAxMTY2IDExQkM7CitCODFFO0I4MUU7MTEwNSAxMTY2IDExQkQ7QjgxRTsxMTA1IDExNjYgMTFCRDsKK0I4MUY7QjgxRjsxMTA1IDExNjYgMTFCRTtCODFGOzExMDUgMTE2NiAxMUJFOworQjgyMDtCODIwOzExMDUgMTE2NiAxMUJGO0I4MjA7MTEwNSAxMTY2IDExQkY7CitCODIxO0I4MjE7MTEwNSAxMTY2IDExQzA7QjgyMTsxMTA1IDExNjYgMTFDMDsKK0I4MjI7QjgyMjsxMTA1IDExNjYgMTFDMTtCODIyOzExMDUgMTE2NiAxMUMxOworQjgyMztCODIzOzExMDUgMTE2NiAxMUMyO0I4MjM7MTEwNSAxMTY2IDExQzI7CitCODI0O0I4MjQ7MTEwNSAxMTY3O0I4MjQ7MTEwNSAxMTY3OworQjgyNTtCODI1OzExMDUgMTE2NyAxMUE4O0I4MjU7MTEwNSAxMTY3IDExQTg7CitCODI2O0I4MjY7MTEwNSAxMTY3IDExQTk7QjgyNjsxMTA1IDExNjcgMTFBOTsKK0I4Mjc7QjgyNzsxMTA1IDExNjcgMTFBQTtCODI3OzExMDUgMTE2NyAxMUFBOworQjgyODtCODI4OzExMDUgMTE2NyAxMUFCO0I4Mjg7MTEwNSAxMTY3IDExQUI7CitCODI5O0I4Mjk7MTEwNSAxMTY3IDExQUM7QjgyOTsxMTA1IDExNjcgMTFBQzsKK0I4MkE7QjgyQTsxMTA1IDExNjcgMTFBRDtCODJBOzExMDUgMTE2NyAxMUFEOworQjgyQjtCODJCOzExMDUgMTE2NyAxMUFFO0I4MkI7MTEwNSAxMTY3IDExQUU7CitCODJDO0I4MkM7MTEwNSAxMTY3IDExQUY7QjgyQzsxMTA1IDExNjcgMTFBRjsKK0I4MkQ7QjgyRDsxMTA1IDExNjcgMTFCMDtCODJEOzExMDUgMTE2NyAxMUIwOworQjgyRTtCODJFOzExMDUgMTE2NyAxMUIxO0I4MkU7MTEwNSAxMTY3IDExQjE7CitCODJGO0I4MkY7MTEwNSAxMTY3IDExQjI7QjgyRjsxMTA1IDExNjcgMTFCMjsKK0I4MzA7QjgzMDsxMTA1IDExNjcgMTFCMztCODMwOzExMDUgMTE2NyAxMUIzOworQjgzMTtCODMxOzExMDUgMTE2NyAxMUI0O0I4MzE7MTEwNSAxMTY3IDExQjQ7CitCODMyO0I4MzI7MTEwNSAxMTY3IDExQjU7QjgzMjsxMTA1IDExNjcgMTFCNTsKK0I4MzM7QjgzMzsxMTA1IDExNjcgMTFCNjtCODMzOzExMDUgMTE2NyAxMUI2OworQjgzNDtCODM0OzExMDUgMTE2NyAxMUI3O0I4MzQ7MTEwNSAxMTY3IDExQjc7CitCODM1O0I4MzU7MTEwNSAxMTY3IDExQjg7QjgzNTsxMTA1IDExNjcgMTFCODsKK0I4MzY7QjgzNjsxMTA1IDExNjcgMTFCOTtCODM2OzExMDUgMTE2NyAxMUI5OworQjgzNztCODM3OzExMDUgMTE2NyAxMUJBO0I4Mzc7MTEwNSAxMTY3IDExQkE7CitCODM4O0I4Mzg7MTEwNSAxMTY3IDExQkI7QjgzODsxMTA1IDExNjcgMTFCQjsKK0I4Mzk7QjgzOTsxMTA1IDExNjcgMTFCQztCODM5OzExMDUgMTE2NyAxMUJDOworQjgzQTtCODNBOzExMDUgMTE2NyAxMUJEO0I4M0E7MTEwNSAxMTY3IDExQkQ7CitCODNCO0I4M0I7MTEwNSAxMTY3IDExQkU7QjgzQjsxMTA1IDExNjcgMTFCRTsKK0I4M0M7QjgzQzsxMTA1IDExNjcgMTFCRjtCODNDOzExMDUgMTE2NyAxMUJGOworQjgzRDtCODNEOzExMDUgMTE2NyAxMUMwO0I4M0Q7MTEwNSAxMTY3IDExQzA7CitCODNFO0I4M0U7MTEwNSAxMTY3IDExQzE7QjgzRTsxMTA1IDExNjcgMTFDMTsKK0I4M0Y7QjgzRjsxMTA1IDExNjcgMTFDMjtCODNGOzExMDUgMTE2NyAxMUMyOworQjg0MDtCODQwOzExMDUgMTE2ODtCODQwOzExMDUgMTE2ODsKK0I4NDE7Qjg0MTsxMTA1IDExNjggMTFBODtCODQxOzExMDUgMTE2OCAxMUE4OworQjg0MjtCODQyOzExMDUgMTE2OCAxMUE5O0I4NDI7MTEwNSAxMTY4IDExQTk7CitCODQzO0I4NDM7MTEwNSAxMTY4IDExQUE7Qjg0MzsxMTA1IDExNjggMTFBQTsKK0I4NDQ7Qjg0NDsxMTA1IDExNjggMTFBQjtCODQ0OzExMDUgMTE2OCAxMUFCOworQjg0NTtCODQ1OzExMDUgMTE2OCAxMUFDO0I4NDU7MTEwNSAxMTY4IDExQUM7CitCODQ2O0I4NDY7MTEwNSAxMTY4IDExQUQ7Qjg0NjsxMTA1IDExNjggMTFBRDsKK0I4NDc7Qjg0NzsxMTA1IDExNjggMTFBRTtCODQ3OzExMDUgMTE2OCAxMUFFOworQjg0ODtCODQ4OzExMDUgMTE2OCAxMUFGO0I4NDg7MTEwNSAxMTY4IDExQUY7CitCODQ5O0I4NDk7MTEwNSAxMTY4IDExQjA7Qjg0OTsxMTA1IDExNjggMTFCMDsKK0I4NEE7Qjg0QTsxMTA1IDExNjggMTFCMTtCODRBOzExMDUgMTE2OCAxMUIxOworQjg0QjtCODRCOzExMDUgMTE2OCAxMUIyO0I4NEI7MTEwNSAxMTY4IDExQjI7CitCODRDO0I4NEM7MTEwNSAxMTY4IDExQjM7Qjg0QzsxMTA1IDExNjggMTFCMzsKK0I4NEQ7Qjg0RDsxMTA1IDExNjggMTFCNDtCODREOzExMDUgMTE2OCAxMUI0OworQjg0RTtCODRFOzExMDUgMTE2OCAxMUI1O0I4NEU7MTEwNSAxMTY4IDExQjU7CitCODRGO0I4NEY7MTEwNSAxMTY4IDExQjY7Qjg0RjsxMTA1IDExNjggMTFCNjsKK0I4NTA7Qjg1MDsxMTA1IDExNjggMTFCNztCODUwOzExMDUgMTE2OCAxMUI3OworQjg1MTtCODUxOzExMDUgMTE2OCAxMUI4O0I4NTE7MTEwNSAxMTY4IDExQjg7CitCODUyO0I4NTI7MTEwNSAxMTY4IDExQjk7Qjg1MjsxMTA1IDExNjggMTFCOTsKK0I4NTM7Qjg1MzsxMTA1IDExNjggMTFCQTtCODUzOzExMDUgMTE2OCAxMUJBOworQjg1NDtCODU0OzExMDUgMTE2OCAxMUJCO0I4NTQ7MTEwNSAxMTY4IDExQkI7CitCODU1O0I4NTU7MTEwNSAxMTY4IDExQkM7Qjg1NTsxMTA1IDExNjggMTFCQzsKK0I4NTY7Qjg1NjsxMTA1IDExNjggMTFCRDtCODU2OzExMDUgMTE2OCAxMUJEOworQjg1NztCODU3OzExMDUgMTE2OCAxMUJFO0I4NTc7MTEwNSAxMTY4IDExQkU7CitCODU4O0I4NTg7MTEwNSAxMTY4IDExQkY7Qjg1ODsxMTA1IDExNjggMTFCRjsKK0I4NTk7Qjg1OTsxMTA1IDExNjggMTFDMDtCODU5OzExMDUgMTE2OCAxMUMwOworQjg1QTtCODVBOzExMDUgMTE2OCAxMUMxO0I4NUE7MTEwNSAxMTY4IDExQzE7CitCODVCO0I4NUI7MTEwNSAxMTY4IDExQzI7Qjg1QjsxMTA1IDExNjggMTFDMjsKK0I4NUM7Qjg1QzsxMTA1IDExNjk7Qjg1QzsxMTA1IDExNjk7CitCODVEO0I4NUQ7MTEwNSAxMTY5IDExQTg7Qjg1RDsxMTA1IDExNjkgMTFBODsKK0I4NUU7Qjg1RTsxMTA1IDExNjkgMTFBOTtCODVFOzExMDUgMTE2OSAxMUE5OworQjg1RjtCODVGOzExMDUgMTE2OSAxMUFBO0I4NUY7MTEwNSAxMTY5IDExQUE7CitCODYwO0I4NjA7MTEwNSAxMTY5IDExQUI7Qjg2MDsxMTA1IDExNjkgMTFBQjsKK0I4NjE7Qjg2MTsxMTA1IDExNjkgMTFBQztCODYxOzExMDUgMTE2OSAxMUFDOworQjg2MjtCODYyOzExMDUgMTE2OSAxMUFEO0I4NjI7MTEwNSAxMTY5IDExQUQ7CitCODYzO0I4NjM7MTEwNSAxMTY5IDExQUU7Qjg2MzsxMTA1IDExNjkgMTFBRTsKK0I4NjQ7Qjg2NDsxMTA1IDExNjkgMTFBRjtCODY0OzExMDUgMTE2OSAxMUFGOworQjg2NTtCODY1OzExMDUgMTE2OSAxMUIwO0I4NjU7MTEwNSAxMTY5IDExQjA7CitCODY2O0I4NjY7MTEwNSAxMTY5IDExQjE7Qjg2NjsxMTA1IDExNjkgMTFCMTsKK0I4Njc7Qjg2NzsxMTA1IDExNjkgMTFCMjtCODY3OzExMDUgMTE2OSAxMUIyOworQjg2ODtCODY4OzExMDUgMTE2OSAxMUIzO0I4Njg7MTEwNSAxMTY5IDExQjM7CitCODY5O0I4Njk7MTEwNSAxMTY5IDExQjQ7Qjg2OTsxMTA1IDExNjkgMTFCNDsKK0I4NkE7Qjg2QTsxMTA1IDExNjkgMTFCNTtCODZBOzExMDUgMTE2OSAxMUI1OworQjg2QjtCODZCOzExMDUgMTE2OSAxMUI2O0I4NkI7MTEwNSAxMTY5IDExQjY7CitCODZDO0I4NkM7MTEwNSAxMTY5IDExQjc7Qjg2QzsxMTA1IDExNjkgMTFCNzsKK0I4NkQ7Qjg2RDsxMTA1IDExNjkgMTFCODtCODZEOzExMDUgMTE2OSAxMUI4OworQjg2RTtCODZFOzExMDUgMTE2OSAxMUI5O0I4NkU7MTEwNSAxMTY5IDExQjk7CitCODZGO0I4NkY7MTEwNSAxMTY5IDExQkE7Qjg2RjsxMTA1IDExNjkgMTFCQTsKK0I4NzA7Qjg3MDsxMTA1IDExNjkgMTFCQjtCODcwOzExMDUgMTE2OSAxMUJCOworQjg3MTtCODcxOzExMDUgMTE2OSAxMUJDO0I4NzE7MTEwNSAxMTY5IDExQkM7CitCODcyO0I4NzI7MTEwNSAxMTY5IDExQkQ7Qjg3MjsxMTA1IDExNjkgMTFCRDsKK0I4NzM7Qjg3MzsxMTA1IDExNjkgMTFCRTtCODczOzExMDUgMTE2OSAxMUJFOworQjg3NDtCODc0OzExMDUgMTE2OSAxMUJGO0I4NzQ7MTEwNSAxMTY5IDExQkY7CitCODc1O0I4NzU7MTEwNSAxMTY5IDExQzA7Qjg3NTsxMTA1IDExNjkgMTFDMDsKK0I4NzY7Qjg3NjsxMTA1IDExNjkgMTFDMTtCODc2OzExMDUgMTE2OSAxMUMxOworQjg3NztCODc3OzExMDUgMTE2OSAxMUMyO0I4Nzc7MTEwNSAxMTY5IDExQzI7CitCODc4O0I4Nzg7MTEwNSAxMTZBO0I4Nzg7MTEwNSAxMTZBOworQjg3OTtCODc5OzExMDUgMTE2QSAxMUE4O0I4Nzk7MTEwNSAxMTZBIDExQTg7CitCODdBO0I4N0E7MTEwNSAxMTZBIDExQTk7Qjg3QTsxMTA1IDExNkEgMTFBOTsKK0I4N0I7Qjg3QjsxMTA1IDExNkEgMTFBQTtCODdCOzExMDUgMTE2QSAxMUFBOworQjg3QztCODdDOzExMDUgMTE2QSAxMUFCO0I4N0M7MTEwNSAxMTZBIDExQUI7CitCODdEO0I4N0Q7MTEwNSAxMTZBIDExQUM7Qjg3RDsxMTA1IDExNkEgMTFBQzsKK0I4N0U7Qjg3RTsxMTA1IDExNkEgMTFBRDtCODdFOzExMDUgMTE2QSAxMUFEOworQjg3RjtCODdGOzExMDUgMTE2QSAxMUFFO0I4N0Y7MTEwNSAxMTZBIDExQUU7CitCODgwO0I4ODA7MTEwNSAxMTZBIDExQUY7Qjg4MDsxMTA1IDExNkEgMTFBRjsKK0I4ODE7Qjg4MTsxMTA1IDExNkEgMTFCMDtCODgxOzExMDUgMTE2QSAxMUIwOworQjg4MjtCODgyOzExMDUgMTE2QSAxMUIxO0I4ODI7MTEwNSAxMTZBIDExQjE7CitCODgzO0I4ODM7MTEwNSAxMTZBIDExQjI7Qjg4MzsxMTA1IDExNkEgMTFCMjsKK0I4ODQ7Qjg4NDsxMTA1IDExNkEgMTFCMztCODg0OzExMDUgMTE2QSAxMUIzOworQjg4NTtCODg1OzExMDUgMTE2QSAxMUI0O0I4ODU7MTEwNSAxMTZBIDExQjQ7CitCODg2O0I4ODY7MTEwNSAxMTZBIDExQjU7Qjg4NjsxMTA1IDExNkEgMTFCNTsKK0I4ODc7Qjg4NzsxMTA1IDExNkEgMTFCNjtCODg3OzExMDUgMTE2QSAxMUI2OworQjg4ODtCODg4OzExMDUgMTE2QSAxMUI3O0I4ODg7MTEwNSAxMTZBIDExQjc7CitCODg5O0I4ODk7MTEwNSAxMTZBIDExQjg7Qjg4OTsxMTA1IDExNkEgMTFCODsKK0I4OEE7Qjg4QTsxMTA1IDExNkEgMTFCOTtCODhBOzExMDUgMTE2QSAxMUI5OworQjg4QjtCODhCOzExMDUgMTE2QSAxMUJBO0I4OEI7MTEwNSAxMTZBIDExQkE7CitCODhDO0I4OEM7MTEwNSAxMTZBIDExQkI7Qjg4QzsxMTA1IDExNkEgMTFCQjsKK0I4OEQ7Qjg4RDsxMTA1IDExNkEgMTFCQztCODhEOzExMDUgMTE2QSAxMUJDOworQjg4RTtCODhFOzExMDUgMTE2QSAxMUJEO0I4OEU7MTEwNSAxMTZBIDExQkQ7CitCODhGO0I4OEY7MTEwNSAxMTZBIDExQkU7Qjg4RjsxMTA1IDExNkEgMTFCRTsKK0I4OTA7Qjg5MDsxMTA1IDExNkEgMTFCRjtCODkwOzExMDUgMTE2QSAxMUJGOworQjg5MTtCODkxOzExMDUgMTE2QSAxMUMwO0I4OTE7MTEwNSAxMTZBIDExQzA7CitCODkyO0I4OTI7MTEwNSAxMTZBIDExQzE7Qjg5MjsxMTA1IDExNkEgMTFDMTsKK0I4OTM7Qjg5MzsxMTA1IDExNkEgMTFDMjtCODkzOzExMDUgMTE2QSAxMUMyOworQjg5NDtCODk0OzExMDUgMTE2QjtCODk0OzExMDUgMTE2QjsKK0I4OTU7Qjg5NTsxMTA1IDExNkIgMTFBODtCODk1OzExMDUgMTE2QiAxMUE4OworQjg5NjtCODk2OzExMDUgMTE2QiAxMUE5O0I4OTY7MTEwNSAxMTZCIDExQTk7CitCODk3O0I4OTc7MTEwNSAxMTZCIDExQUE7Qjg5NzsxMTA1IDExNkIgMTFBQTsKK0I4OTg7Qjg5ODsxMTA1IDExNkIgMTFBQjtCODk4OzExMDUgMTE2QiAxMUFCOworQjg5OTtCODk5OzExMDUgMTE2QiAxMUFDO0I4OTk7MTEwNSAxMTZCIDExQUM7CitCODlBO0I4OUE7MTEwNSAxMTZCIDExQUQ7Qjg5QTsxMTA1IDExNkIgMTFBRDsKK0I4OUI7Qjg5QjsxMTA1IDExNkIgMTFBRTtCODlCOzExMDUgMTE2QiAxMUFFOworQjg5QztCODlDOzExMDUgMTE2QiAxMUFGO0I4OUM7MTEwNSAxMTZCIDExQUY7CitCODlEO0I4OUQ7MTEwNSAxMTZCIDExQjA7Qjg5RDsxMTA1IDExNkIgMTFCMDsKK0I4OUU7Qjg5RTsxMTA1IDExNkIgMTFCMTtCODlFOzExMDUgMTE2QiAxMUIxOworQjg5RjtCODlGOzExMDUgMTE2QiAxMUIyO0I4OUY7MTEwNSAxMTZCIDExQjI7CitCOEEwO0I4QTA7MTEwNSAxMTZCIDExQjM7QjhBMDsxMTA1IDExNkIgMTFCMzsKK0I4QTE7QjhBMTsxMTA1IDExNkIgMTFCNDtCOEExOzExMDUgMTE2QiAxMUI0OworQjhBMjtCOEEyOzExMDUgMTE2QiAxMUI1O0I4QTI7MTEwNSAxMTZCIDExQjU7CitCOEEzO0I4QTM7MTEwNSAxMTZCIDExQjY7QjhBMzsxMTA1IDExNkIgMTFCNjsKK0I4QTQ7QjhBNDsxMTA1IDExNkIgMTFCNztCOEE0OzExMDUgMTE2QiAxMUI3OworQjhBNTtCOEE1OzExMDUgMTE2QiAxMUI4O0I4QTU7MTEwNSAxMTZCIDExQjg7CitCOEE2O0I4QTY7MTEwNSAxMTZCIDExQjk7QjhBNjsxMTA1IDExNkIgMTFCOTsKK0I4QTc7QjhBNzsxMTA1IDExNkIgMTFCQTtCOEE3OzExMDUgMTE2QiAxMUJBOworQjhBODtCOEE4OzExMDUgMTE2QiAxMUJCO0I4QTg7MTEwNSAxMTZCIDExQkI7CitCOEE5O0I4QTk7MTEwNSAxMTZCIDExQkM7QjhBOTsxMTA1IDExNkIgMTFCQzsKK0I4QUE7QjhBQTsxMTA1IDExNkIgMTFCRDtCOEFBOzExMDUgMTE2QiAxMUJEOworQjhBQjtCOEFCOzExMDUgMTE2QiAxMUJFO0I4QUI7MTEwNSAxMTZCIDExQkU7CitCOEFDO0I4QUM7MTEwNSAxMTZCIDExQkY7QjhBQzsxMTA1IDExNkIgMTFCRjsKK0I4QUQ7QjhBRDsxMTA1IDExNkIgMTFDMDtCOEFEOzExMDUgMTE2QiAxMUMwOworQjhBRTtCOEFFOzExMDUgMTE2QiAxMUMxO0I4QUU7MTEwNSAxMTZCIDExQzE7CitCOEFGO0I4QUY7MTEwNSAxMTZCIDExQzI7QjhBRjsxMTA1IDExNkIgMTFDMjsKK0I4QjA7QjhCMDsxMTA1IDExNkM7QjhCMDsxMTA1IDExNkM7CitCOEIxO0I4QjE7MTEwNSAxMTZDIDExQTg7QjhCMTsxMTA1IDExNkMgMTFBODsKK0I4QjI7QjhCMjsxMTA1IDExNkMgMTFBOTtCOEIyOzExMDUgMTE2QyAxMUE5OworQjhCMztCOEIzOzExMDUgMTE2QyAxMUFBO0I4QjM7MTEwNSAxMTZDIDExQUE7CitCOEI0O0I4QjQ7MTEwNSAxMTZDIDExQUI7QjhCNDsxMTA1IDExNkMgMTFBQjsKK0I4QjU7QjhCNTsxMTA1IDExNkMgMTFBQztCOEI1OzExMDUgMTE2QyAxMUFDOworQjhCNjtCOEI2OzExMDUgMTE2QyAxMUFEO0I4QjY7MTEwNSAxMTZDIDExQUQ7CitCOEI3O0I4Qjc7MTEwNSAxMTZDIDExQUU7QjhCNzsxMTA1IDExNkMgMTFBRTsKK0I4Qjg7QjhCODsxMTA1IDExNkMgMTFBRjtCOEI4OzExMDUgMTE2QyAxMUFGOworQjhCOTtCOEI5OzExMDUgMTE2QyAxMUIwO0I4Qjk7MTEwNSAxMTZDIDExQjA7CitCOEJBO0I4QkE7MTEwNSAxMTZDIDExQjE7QjhCQTsxMTA1IDExNkMgMTFCMTsKK0I4QkI7QjhCQjsxMTA1IDExNkMgMTFCMjtCOEJCOzExMDUgMTE2QyAxMUIyOworQjhCQztCOEJDOzExMDUgMTE2QyAxMUIzO0I4QkM7MTEwNSAxMTZDIDExQjM7CitCOEJEO0I4QkQ7MTEwNSAxMTZDIDExQjQ7QjhCRDsxMTA1IDExNkMgMTFCNDsKK0I4QkU7QjhCRTsxMTA1IDExNkMgMTFCNTtCOEJFOzExMDUgMTE2QyAxMUI1OworQjhCRjtCOEJGOzExMDUgMTE2QyAxMUI2O0I4QkY7MTEwNSAxMTZDIDExQjY7CitCOEMwO0I4QzA7MTEwNSAxMTZDIDExQjc7QjhDMDsxMTA1IDExNkMgMTFCNzsKK0I4QzE7QjhDMTsxMTA1IDExNkMgMTFCODtCOEMxOzExMDUgMTE2QyAxMUI4OworQjhDMjtCOEMyOzExMDUgMTE2QyAxMUI5O0I4QzI7MTEwNSAxMTZDIDExQjk7CitCOEMzO0I4QzM7MTEwNSAxMTZDIDExQkE7QjhDMzsxMTA1IDExNkMgMTFCQTsKK0I4QzQ7QjhDNDsxMTA1IDExNkMgMTFCQjtCOEM0OzExMDUgMTE2QyAxMUJCOworQjhDNTtCOEM1OzExMDUgMTE2QyAxMUJDO0I4QzU7MTEwNSAxMTZDIDExQkM7CitCOEM2O0I4QzY7MTEwNSAxMTZDIDExQkQ7QjhDNjsxMTA1IDExNkMgMTFCRDsKK0I4Qzc7QjhDNzsxMTA1IDExNkMgMTFCRTtCOEM3OzExMDUgMTE2QyAxMUJFOworQjhDODtCOEM4OzExMDUgMTE2QyAxMUJGO0I4Qzg7MTEwNSAxMTZDIDExQkY7CitCOEM5O0I4Qzk7MTEwNSAxMTZDIDExQzA7QjhDOTsxMTA1IDExNkMgMTFDMDsKK0I4Q0E7QjhDQTsxMTA1IDExNkMgMTFDMTtCOENBOzExMDUgMTE2QyAxMUMxOworQjhDQjtCOENCOzExMDUgMTE2QyAxMUMyO0I4Q0I7MTEwNSAxMTZDIDExQzI7CitCOENDO0I4Q0M7MTEwNSAxMTZEO0I4Q0M7MTEwNSAxMTZEOworQjhDRDtCOENEOzExMDUgMTE2RCAxMUE4O0I4Q0Q7MTEwNSAxMTZEIDExQTg7CitCOENFO0I4Q0U7MTEwNSAxMTZEIDExQTk7QjhDRTsxMTA1IDExNkQgMTFBOTsKK0I4Q0Y7QjhDRjsxMTA1IDExNkQgMTFBQTtCOENGOzExMDUgMTE2RCAxMUFBOworQjhEMDtCOEQwOzExMDUgMTE2RCAxMUFCO0I4RDA7MTEwNSAxMTZEIDExQUI7CitCOEQxO0I4RDE7MTEwNSAxMTZEIDExQUM7QjhEMTsxMTA1IDExNkQgMTFBQzsKK0I4RDI7QjhEMjsxMTA1IDExNkQgMTFBRDtCOEQyOzExMDUgMTE2RCAxMUFEOworQjhEMztCOEQzOzExMDUgMTE2RCAxMUFFO0I4RDM7MTEwNSAxMTZEIDExQUU7CitCOEQ0O0I4RDQ7MTEwNSAxMTZEIDExQUY7QjhENDsxMTA1IDExNkQgMTFBRjsKK0I4RDU7QjhENTsxMTA1IDExNkQgMTFCMDtCOEQ1OzExMDUgMTE2RCAxMUIwOworQjhENjtCOEQ2OzExMDUgMTE2RCAxMUIxO0I4RDY7MTEwNSAxMTZEIDExQjE7CitCOEQ3O0I4RDc7MTEwNSAxMTZEIDExQjI7QjhENzsxMTA1IDExNkQgMTFCMjsKK0I4RDg7QjhEODsxMTA1IDExNkQgMTFCMztCOEQ4OzExMDUgMTE2RCAxMUIzOworQjhEOTtCOEQ5OzExMDUgMTE2RCAxMUI0O0I4RDk7MTEwNSAxMTZEIDExQjQ7CitCOERBO0I4REE7MTEwNSAxMTZEIDExQjU7QjhEQTsxMTA1IDExNkQgMTFCNTsKK0I4REI7QjhEQjsxMTA1IDExNkQgMTFCNjtCOERCOzExMDUgMTE2RCAxMUI2OworQjhEQztCOERDOzExMDUgMTE2RCAxMUI3O0I4REM7MTEwNSAxMTZEIDExQjc7CitCOEREO0I4REQ7MTEwNSAxMTZEIDExQjg7QjhERDsxMTA1IDExNkQgMTFCODsKK0I4REU7QjhERTsxMTA1IDExNkQgMTFCOTtCOERFOzExMDUgMTE2RCAxMUI5OworQjhERjtCOERGOzExMDUgMTE2RCAxMUJBO0I4REY7MTEwNSAxMTZEIDExQkE7CitCOEUwO0I4RTA7MTEwNSAxMTZEIDExQkI7QjhFMDsxMTA1IDExNkQgMTFCQjsKK0I4RTE7QjhFMTsxMTA1IDExNkQgMTFCQztCOEUxOzExMDUgMTE2RCAxMUJDOworQjhFMjtCOEUyOzExMDUgMTE2RCAxMUJEO0I4RTI7MTEwNSAxMTZEIDExQkQ7CitCOEUzO0I4RTM7MTEwNSAxMTZEIDExQkU7QjhFMzsxMTA1IDExNkQgMTFCRTsKK0I4RTQ7QjhFNDsxMTA1IDExNkQgMTFCRjtCOEU0OzExMDUgMTE2RCAxMUJGOworQjhFNTtCOEU1OzExMDUgMTE2RCAxMUMwO0I4RTU7MTEwNSAxMTZEIDExQzA7CitCOEU2O0I4RTY7MTEwNSAxMTZEIDExQzE7QjhFNjsxMTA1IDExNkQgMTFDMTsKK0I4RTc7QjhFNzsxMTA1IDExNkQgMTFDMjtCOEU3OzExMDUgMTE2RCAxMUMyOworQjhFODtCOEU4OzExMDUgMTE2RTtCOEU4OzExMDUgMTE2RTsKK0I4RTk7QjhFOTsxMTA1IDExNkUgMTFBODtCOEU5OzExMDUgMTE2RSAxMUE4OworQjhFQTtCOEVBOzExMDUgMTE2RSAxMUE5O0I4RUE7MTEwNSAxMTZFIDExQTk7CitCOEVCO0I4RUI7MTEwNSAxMTZFIDExQUE7QjhFQjsxMTA1IDExNkUgMTFBQTsKK0I4RUM7QjhFQzsxMTA1IDExNkUgMTFBQjtCOEVDOzExMDUgMTE2RSAxMUFCOworQjhFRDtCOEVEOzExMDUgMTE2RSAxMUFDO0I4RUQ7MTEwNSAxMTZFIDExQUM7CitCOEVFO0I4RUU7MTEwNSAxMTZFIDExQUQ7QjhFRTsxMTA1IDExNkUgMTFBRDsKK0I4RUY7QjhFRjsxMTA1IDExNkUgMTFBRTtCOEVGOzExMDUgMTE2RSAxMUFFOworQjhGMDtCOEYwOzExMDUgMTE2RSAxMUFGO0I4RjA7MTEwNSAxMTZFIDExQUY7CitCOEYxO0I4RjE7MTEwNSAxMTZFIDExQjA7QjhGMTsxMTA1IDExNkUgMTFCMDsKK0I4RjI7QjhGMjsxMTA1IDExNkUgMTFCMTtCOEYyOzExMDUgMTE2RSAxMUIxOworQjhGMztCOEYzOzExMDUgMTE2RSAxMUIyO0I4RjM7MTEwNSAxMTZFIDExQjI7CitCOEY0O0I4RjQ7MTEwNSAxMTZFIDExQjM7QjhGNDsxMTA1IDExNkUgMTFCMzsKK0I4RjU7QjhGNTsxMTA1IDExNkUgMTFCNDtCOEY1OzExMDUgMTE2RSAxMUI0OworQjhGNjtCOEY2OzExMDUgMTE2RSAxMUI1O0I4RjY7MTEwNSAxMTZFIDExQjU7CitCOEY3O0I4Rjc7MTEwNSAxMTZFIDExQjY7QjhGNzsxMTA1IDExNkUgMTFCNjsKK0I4Rjg7QjhGODsxMTA1IDExNkUgMTFCNztCOEY4OzExMDUgMTE2RSAxMUI3OworQjhGOTtCOEY5OzExMDUgMTE2RSAxMUI4O0I4Rjk7MTEwNSAxMTZFIDExQjg7CitCOEZBO0I4RkE7MTEwNSAxMTZFIDExQjk7QjhGQTsxMTA1IDExNkUgMTFCOTsKK0I4RkI7QjhGQjsxMTA1IDExNkUgMTFCQTtCOEZCOzExMDUgMTE2RSAxMUJBOworQjhGQztCOEZDOzExMDUgMTE2RSAxMUJCO0I4RkM7MTEwNSAxMTZFIDExQkI7CitCOEZEO0I4RkQ7MTEwNSAxMTZFIDExQkM7QjhGRDsxMTA1IDExNkUgMTFCQzsKK0I4RkU7QjhGRTsxMTA1IDExNkUgMTFCRDtCOEZFOzExMDUgMTE2RSAxMUJEOworQjhGRjtCOEZGOzExMDUgMTE2RSAxMUJFO0I4RkY7MTEwNSAxMTZFIDExQkU7CitCOTAwO0I5MDA7MTEwNSAxMTZFIDExQkY7QjkwMDsxMTA1IDExNkUgMTFCRjsKK0I5MDE7QjkwMTsxMTA1IDExNkUgMTFDMDtCOTAxOzExMDUgMTE2RSAxMUMwOworQjkwMjtCOTAyOzExMDUgMTE2RSAxMUMxO0I5MDI7MTEwNSAxMTZFIDExQzE7CitCOTAzO0I5MDM7MTEwNSAxMTZFIDExQzI7QjkwMzsxMTA1IDExNkUgMTFDMjsKK0I5MDQ7QjkwNDsxMTA1IDExNkY7QjkwNDsxMTA1IDExNkY7CitCOTA1O0I5MDU7MTEwNSAxMTZGIDExQTg7QjkwNTsxMTA1IDExNkYgMTFBODsKK0I5MDY7QjkwNjsxMTA1IDExNkYgMTFBOTtCOTA2OzExMDUgMTE2RiAxMUE5OworQjkwNztCOTA3OzExMDUgMTE2RiAxMUFBO0I5MDc7MTEwNSAxMTZGIDExQUE7CitCOTA4O0I5MDg7MTEwNSAxMTZGIDExQUI7QjkwODsxMTA1IDExNkYgMTFBQjsKK0I5MDk7QjkwOTsxMTA1IDExNkYgMTFBQztCOTA5OzExMDUgMTE2RiAxMUFDOworQjkwQTtCOTBBOzExMDUgMTE2RiAxMUFEO0I5MEE7MTEwNSAxMTZGIDExQUQ7CitCOTBCO0I5MEI7MTEwNSAxMTZGIDExQUU7QjkwQjsxMTA1IDExNkYgMTFBRTsKK0I5MEM7QjkwQzsxMTA1IDExNkYgMTFBRjtCOTBDOzExMDUgMTE2RiAxMUFGOworQjkwRDtCOTBEOzExMDUgMTE2RiAxMUIwO0I5MEQ7MTEwNSAxMTZGIDExQjA7CitCOTBFO0I5MEU7MTEwNSAxMTZGIDExQjE7QjkwRTsxMTA1IDExNkYgMTFCMTsKK0I5MEY7QjkwRjsxMTA1IDExNkYgMTFCMjtCOTBGOzExMDUgMTE2RiAxMUIyOworQjkxMDtCOTEwOzExMDUgMTE2RiAxMUIzO0I5MTA7MTEwNSAxMTZGIDExQjM7CitCOTExO0I5MTE7MTEwNSAxMTZGIDExQjQ7QjkxMTsxMTA1IDExNkYgMTFCNDsKK0I5MTI7QjkxMjsxMTA1IDExNkYgMTFCNTtCOTEyOzExMDUgMTE2RiAxMUI1OworQjkxMztCOTEzOzExMDUgMTE2RiAxMUI2O0I5MTM7MTEwNSAxMTZGIDExQjY7CitCOTE0O0I5MTQ7MTEwNSAxMTZGIDExQjc7QjkxNDsxMTA1IDExNkYgMTFCNzsKK0I5MTU7QjkxNTsxMTA1IDExNkYgMTFCODtCOTE1OzExMDUgMTE2RiAxMUI4OworQjkxNjtCOTE2OzExMDUgMTE2RiAxMUI5O0I5MTY7MTEwNSAxMTZGIDExQjk7CitCOTE3O0I5MTc7MTEwNSAxMTZGIDExQkE7QjkxNzsxMTA1IDExNkYgMTFCQTsKK0I5MTg7QjkxODsxMTA1IDExNkYgMTFCQjtCOTE4OzExMDUgMTE2RiAxMUJCOworQjkxOTtCOTE5OzExMDUgMTE2RiAxMUJDO0I5MTk7MTEwNSAxMTZGIDExQkM7CitCOTFBO0I5MUE7MTEwNSAxMTZGIDExQkQ7QjkxQTsxMTA1IDExNkYgMTFCRDsKK0I5MUI7QjkxQjsxMTA1IDExNkYgMTFCRTtCOTFCOzExMDUgMTE2RiAxMUJFOworQjkxQztCOTFDOzExMDUgMTE2RiAxMUJGO0I5MUM7MTEwNSAxMTZGIDExQkY7CitCOTFEO0I5MUQ7MTEwNSAxMTZGIDExQzA7QjkxRDsxMTA1IDExNkYgMTFDMDsKK0I5MUU7QjkxRTsxMTA1IDExNkYgMTFDMTtCOTFFOzExMDUgMTE2RiAxMUMxOworQjkxRjtCOTFGOzExMDUgMTE2RiAxMUMyO0I5MUY7MTEwNSAxMTZGIDExQzI7CitCOTIwO0I5MjA7MTEwNSAxMTcwO0I5MjA7MTEwNSAxMTcwOworQjkyMTtCOTIxOzExMDUgMTE3MCAxMUE4O0I5MjE7MTEwNSAxMTcwIDExQTg7CitCOTIyO0I5MjI7MTEwNSAxMTcwIDExQTk7QjkyMjsxMTA1IDExNzAgMTFBOTsKK0I5MjM7QjkyMzsxMTA1IDExNzAgMTFBQTtCOTIzOzExMDUgMTE3MCAxMUFBOworQjkyNDtCOTI0OzExMDUgMTE3MCAxMUFCO0I5MjQ7MTEwNSAxMTcwIDExQUI7CitCOTI1O0I5MjU7MTEwNSAxMTcwIDExQUM7QjkyNTsxMTA1IDExNzAgMTFBQzsKK0I5MjY7QjkyNjsxMTA1IDExNzAgMTFBRDtCOTI2OzExMDUgMTE3MCAxMUFEOworQjkyNztCOTI3OzExMDUgMTE3MCAxMUFFO0I5Mjc7MTEwNSAxMTcwIDExQUU7CitCOTI4O0I5Mjg7MTEwNSAxMTcwIDExQUY7QjkyODsxMTA1IDExNzAgMTFBRjsKK0I5Mjk7QjkyOTsxMTA1IDExNzAgMTFCMDtCOTI5OzExMDUgMTE3MCAxMUIwOworQjkyQTtCOTJBOzExMDUgMTE3MCAxMUIxO0I5MkE7MTEwNSAxMTcwIDExQjE7CitCOTJCO0I5MkI7MTEwNSAxMTcwIDExQjI7QjkyQjsxMTA1IDExNzAgMTFCMjsKK0I5MkM7QjkyQzsxMTA1IDExNzAgMTFCMztCOTJDOzExMDUgMTE3MCAxMUIzOworQjkyRDtCOTJEOzExMDUgMTE3MCAxMUI0O0I5MkQ7MTEwNSAxMTcwIDExQjQ7CitCOTJFO0I5MkU7MTEwNSAxMTcwIDExQjU7QjkyRTsxMTA1IDExNzAgMTFCNTsKK0I5MkY7QjkyRjsxMTA1IDExNzAgMTFCNjtCOTJGOzExMDUgMTE3MCAxMUI2OworQjkzMDtCOTMwOzExMDUgMTE3MCAxMUI3O0I5MzA7MTEwNSAxMTcwIDExQjc7CitCOTMxO0I5MzE7MTEwNSAxMTcwIDExQjg7QjkzMTsxMTA1IDExNzAgMTFCODsKK0I5MzI7QjkzMjsxMTA1IDExNzAgMTFCOTtCOTMyOzExMDUgMTE3MCAxMUI5OworQjkzMztCOTMzOzExMDUgMTE3MCAxMUJBO0I5MzM7MTEwNSAxMTcwIDExQkE7CitCOTM0O0I5MzQ7MTEwNSAxMTcwIDExQkI7QjkzNDsxMTA1IDExNzAgMTFCQjsKK0I5MzU7QjkzNTsxMTA1IDExNzAgMTFCQztCOTM1OzExMDUgMTE3MCAxMUJDOworQjkzNjtCOTM2OzExMDUgMTE3MCAxMUJEO0I5MzY7MTEwNSAxMTcwIDExQkQ7CitCOTM3O0I5Mzc7MTEwNSAxMTcwIDExQkU7QjkzNzsxMTA1IDExNzAgMTFCRTsKK0I5Mzg7QjkzODsxMTA1IDExNzAgMTFCRjtCOTM4OzExMDUgMTE3MCAxMUJGOworQjkzOTtCOTM5OzExMDUgMTE3MCAxMUMwO0I5Mzk7MTEwNSAxMTcwIDExQzA7CitCOTNBO0I5M0E7MTEwNSAxMTcwIDExQzE7QjkzQTsxMTA1IDExNzAgMTFDMTsKK0I5M0I7QjkzQjsxMTA1IDExNzAgMTFDMjtCOTNCOzExMDUgMTE3MCAxMUMyOworQjkzQztCOTNDOzExMDUgMTE3MTtCOTNDOzExMDUgMTE3MTsKK0I5M0Q7QjkzRDsxMTA1IDExNzEgMTFBODtCOTNEOzExMDUgMTE3MSAxMUE4OworQjkzRTtCOTNFOzExMDUgMTE3MSAxMUE5O0I5M0U7MTEwNSAxMTcxIDExQTk7CitCOTNGO0I5M0Y7MTEwNSAxMTcxIDExQUE7QjkzRjsxMTA1IDExNzEgMTFBQTsKK0I5NDA7Qjk0MDsxMTA1IDExNzEgMTFBQjtCOTQwOzExMDUgMTE3MSAxMUFCOworQjk0MTtCOTQxOzExMDUgMTE3MSAxMUFDO0I5NDE7MTEwNSAxMTcxIDExQUM7CitCOTQyO0I5NDI7MTEwNSAxMTcxIDExQUQ7Qjk0MjsxMTA1IDExNzEgMTFBRDsKK0I5NDM7Qjk0MzsxMTA1IDExNzEgMTFBRTtCOTQzOzExMDUgMTE3MSAxMUFFOworQjk0NDtCOTQ0OzExMDUgMTE3MSAxMUFGO0I5NDQ7MTEwNSAxMTcxIDExQUY7CitCOTQ1O0I5NDU7MTEwNSAxMTcxIDExQjA7Qjk0NTsxMTA1IDExNzEgMTFCMDsKK0I5NDY7Qjk0NjsxMTA1IDExNzEgMTFCMTtCOTQ2OzExMDUgMTE3MSAxMUIxOworQjk0NztCOTQ3OzExMDUgMTE3MSAxMUIyO0I5NDc7MTEwNSAxMTcxIDExQjI7CitCOTQ4O0I5NDg7MTEwNSAxMTcxIDExQjM7Qjk0ODsxMTA1IDExNzEgMTFCMzsKK0I5NDk7Qjk0OTsxMTA1IDExNzEgMTFCNDtCOTQ5OzExMDUgMTE3MSAxMUI0OworQjk0QTtCOTRBOzExMDUgMTE3MSAxMUI1O0I5NEE7MTEwNSAxMTcxIDExQjU7CitCOTRCO0I5NEI7MTEwNSAxMTcxIDExQjY7Qjk0QjsxMTA1IDExNzEgMTFCNjsKK0I5NEM7Qjk0QzsxMTA1IDExNzEgMTFCNztCOTRDOzExMDUgMTE3MSAxMUI3OworQjk0RDtCOTREOzExMDUgMTE3MSAxMUI4O0I5NEQ7MTEwNSAxMTcxIDExQjg7CitCOTRFO0I5NEU7MTEwNSAxMTcxIDExQjk7Qjk0RTsxMTA1IDExNzEgMTFCOTsKK0I5NEY7Qjk0RjsxMTA1IDExNzEgMTFCQTtCOTRGOzExMDUgMTE3MSAxMUJBOworQjk1MDtCOTUwOzExMDUgMTE3MSAxMUJCO0I5NTA7MTEwNSAxMTcxIDExQkI7CitCOTUxO0I5NTE7MTEwNSAxMTcxIDExQkM7Qjk1MTsxMTA1IDExNzEgMTFCQzsKK0I5NTI7Qjk1MjsxMTA1IDExNzEgMTFCRDtCOTUyOzExMDUgMTE3MSAxMUJEOworQjk1MztCOTUzOzExMDUgMTE3MSAxMUJFO0I5NTM7MTEwNSAxMTcxIDExQkU7CitCOTU0O0I5NTQ7MTEwNSAxMTcxIDExQkY7Qjk1NDsxMTA1IDExNzEgMTFCRjsKK0I5NTU7Qjk1NTsxMTA1IDExNzEgMTFDMDtCOTU1OzExMDUgMTE3MSAxMUMwOworQjk1NjtCOTU2OzExMDUgMTE3MSAxMUMxO0I5NTY7MTEwNSAxMTcxIDExQzE7CitCOTU3O0I5NTc7MTEwNSAxMTcxIDExQzI7Qjk1NzsxMTA1IDExNzEgMTFDMjsKK0I5NTg7Qjk1ODsxMTA1IDExNzI7Qjk1ODsxMTA1IDExNzI7CitCOTU5O0I5NTk7MTEwNSAxMTcyIDExQTg7Qjk1OTsxMTA1IDExNzIgMTFBODsKK0I5NUE7Qjk1QTsxMTA1IDExNzIgMTFBOTtCOTVBOzExMDUgMTE3MiAxMUE5OworQjk1QjtCOTVCOzExMDUgMTE3MiAxMUFBO0I5NUI7MTEwNSAxMTcyIDExQUE7CitCOTVDO0I5NUM7MTEwNSAxMTcyIDExQUI7Qjk1QzsxMTA1IDExNzIgMTFBQjsKK0I5NUQ7Qjk1RDsxMTA1IDExNzIgMTFBQztCOTVEOzExMDUgMTE3MiAxMUFDOworQjk1RTtCOTVFOzExMDUgMTE3MiAxMUFEO0I5NUU7MTEwNSAxMTcyIDExQUQ7CitCOTVGO0I5NUY7MTEwNSAxMTcyIDExQUU7Qjk1RjsxMTA1IDExNzIgMTFBRTsKK0I5NjA7Qjk2MDsxMTA1IDExNzIgMTFBRjtCOTYwOzExMDUgMTE3MiAxMUFGOworQjk2MTtCOTYxOzExMDUgMTE3MiAxMUIwO0I5NjE7MTEwNSAxMTcyIDExQjA7CitCOTYyO0I5NjI7MTEwNSAxMTcyIDExQjE7Qjk2MjsxMTA1IDExNzIgMTFCMTsKK0I5NjM7Qjk2MzsxMTA1IDExNzIgMTFCMjtCOTYzOzExMDUgMTE3MiAxMUIyOworQjk2NDtCOTY0OzExMDUgMTE3MiAxMUIzO0I5NjQ7MTEwNSAxMTcyIDExQjM7CitCOTY1O0I5NjU7MTEwNSAxMTcyIDExQjQ7Qjk2NTsxMTA1IDExNzIgMTFCNDsKK0I5NjY7Qjk2NjsxMTA1IDExNzIgMTFCNTtCOTY2OzExMDUgMTE3MiAxMUI1OworQjk2NztCOTY3OzExMDUgMTE3MiAxMUI2O0I5Njc7MTEwNSAxMTcyIDExQjY7CitCOTY4O0I5Njg7MTEwNSAxMTcyIDExQjc7Qjk2ODsxMTA1IDExNzIgMTFCNzsKK0I5Njk7Qjk2OTsxMTA1IDExNzIgMTFCODtCOTY5OzExMDUgMTE3MiAxMUI4OworQjk2QTtCOTZBOzExMDUgMTE3MiAxMUI5O0I5NkE7MTEwNSAxMTcyIDExQjk7CitCOTZCO0I5NkI7MTEwNSAxMTcyIDExQkE7Qjk2QjsxMTA1IDExNzIgMTFCQTsKK0I5NkM7Qjk2QzsxMTA1IDExNzIgMTFCQjtCOTZDOzExMDUgMTE3MiAxMUJCOworQjk2RDtCOTZEOzExMDUgMTE3MiAxMUJDO0I5NkQ7MTEwNSAxMTcyIDExQkM7CitCOTZFO0I5NkU7MTEwNSAxMTcyIDExQkQ7Qjk2RTsxMTA1IDExNzIgMTFCRDsKK0I5NkY7Qjk2RjsxMTA1IDExNzIgMTFCRTtCOTZGOzExMDUgMTE3MiAxMUJFOworQjk3MDtCOTcwOzExMDUgMTE3MiAxMUJGO0I5NzA7MTEwNSAxMTcyIDExQkY7CitCOTcxO0I5NzE7MTEwNSAxMTcyIDExQzA7Qjk3MTsxMTA1IDExNzIgMTFDMDsKK0I5NzI7Qjk3MjsxMTA1IDExNzIgMTFDMTtCOTcyOzExMDUgMTE3MiAxMUMxOworQjk3MztCOTczOzExMDUgMTE3MiAxMUMyO0I5NzM7MTEwNSAxMTcyIDExQzI7CitCOTc0O0I5NzQ7MTEwNSAxMTczO0I5NzQ7MTEwNSAxMTczOworQjk3NTtCOTc1OzExMDUgMTE3MyAxMUE4O0I5NzU7MTEwNSAxMTczIDExQTg7CitCOTc2O0I5NzY7MTEwNSAxMTczIDExQTk7Qjk3NjsxMTA1IDExNzMgMTFBOTsKK0I5Nzc7Qjk3NzsxMTA1IDExNzMgMTFBQTtCOTc3OzExMDUgMTE3MyAxMUFBOworQjk3ODtCOTc4OzExMDUgMTE3MyAxMUFCO0I5Nzg7MTEwNSAxMTczIDExQUI7CitCOTc5O0I5Nzk7MTEwNSAxMTczIDExQUM7Qjk3OTsxMTA1IDExNzMgMTFBQzsKK0I5N0E7Qjk3QTsxMTA1IDExNzMgMTFBRDtCOTdBOzExMDUgMTE3MyAxMUFEOworQjk3QjtCOTdCOzExMDUgMTE3MyAxMUFFO0I5N0I7MTEwNSAxMTczIDExQUU7CitCOTdDO0I5N0M7MTEwNSAxMTczIDExQUY7Qjk3QzsxMTA1IDExNzMgMTFBRjsKK0I5N0Q7Qjk3RDsxMTA1IDExNzMgMTFCMDtCOTdEOzExMDUgMTE3MyAxMUIwOworQjk3RTtCOTdFOzExMDUgMTE3MyAxMUIxO0I5N0U7MTEwNSAxMTczIDExQjE7CitCOTdGO0I5N0Y7MTEwNSAxMTczIDExQjI7Qjk3RjsxMTA1IDExNzMgMTFCMjsKK0I5ODA7Qjk4MDsxMTA1IDExNzMgMTFCMztCOTgwOzExMDUgMTE3MyAxMUIzOworQjk4MTtCOTgxOzExMDUgMTE3MyAxMUI0O0I5ODE7MTEwNSAxMTczIDExQjQ7CitCOTgyO0I5ODI7MTEwNSAxMTczIDExQjU7Qjk4MjsxMTA1IDExNzMgMTFCNTsKK0I5ODM7Qjk4MzsxMTA1IDExNzMgMTFCNjtCOTgzOzExMDUgMTE3MyAxMUI2OworQjk4NDtCOTg0OzExMDUgMTE3MyAxMUI3O0I5ODQ7MTEwNSAxMTczIDExQjc7CitCOTg1O0I5ODU7MTEwNSAxMTczIDExQjg7Qjk4NTsxMTA1IDExNzMgMTFCODsKK0I5ODY7Qjk4NjsxMTA1IDExNzMgMTFCOTtCOTg2OzExMDUgMTE3MyAxMUI5OworQjk4NztCOTg3OzExMDUgMTE3MyAxMUJBO0I5ODc7MTEwNSAxMTczIDExQkE7CitCOTg4O0I5ODg7MTEwNSAxMTczIDExQkI7Qjk4ODsxMTA1IDExNzMgMTFCQjsKK0I5ODk7Qjk4OTsxMTA1IDExNzMgMTFCQztCOTg5OzExMDUgMTE3MyAxMUJDOworQjk4QTtCOThBOzExMDUgMTE3MyAxMUJEO0I5OEE7MTEwNSAxMTczIDExQkQ7CitCOThCO0I5OEI7MTEwNSAxMTczIDExQkU7Qjk4QjsxMTA1IDExNzMgMTFCRTsKK0I5OEM7Qjk4QzsxMTA1IDExNzMgMTFCRjtCOThDOzExMDUgMTE3MyAxMUJGOworQjk4RDtCOThEOzExMDUgMTE3MyAxMUMwO0I5OEQ7MTEwNSAxMTczIDExQzA7CitCOThFO0I5OEU7MTEwNSAxMTczIDExQzE7Qjk4RTsxMTA1IDExNzMgMTFDMTsKK0I5OEY7Qjk4RjsxMTA1IDExNzMgMTFDMjtCOThGOzExMDUgMTE3MyAxMUMyOworQjk5MDtCOTkwOzExMDUgMTE3NDtCOTkwOzExMDUgMTE3NDsKK0I5OTE7Qjk5MTsxMTA1IDExNzQgMTFBODtCOTkxOzExMDUgMTE3NCAxMUE4OworQjk5MjtCOTkyOzExMDUgMTE3NCAxMUE5O0I5OTI7MTEwNSAxMTc0IDExQTk7CitCOTkzO0I5OTM7MTEwNSAxMTc0IDExQUE7Qjk5MzsxMTA1IDExNzQgMTFBQTsKK0I5OTQ7Qjk5NDsxMTA1IDExNzQgMTFBQjtCOTk0OzExMDUgMTE3NCAxMUFCOworQjk5NTtCOTk1OzExMDUgMTE3NCAxMUFDO0I5OTU7MTEwNSAxMTc0IDExQUM7CitCOTk2O0I5OTY7MTEwNSAxMTc0IDExQUQ7Qjk5NjsxMTA1IDExNzQgMTFBRDsKK0I5OTc7Qjk5NzsxMTA1IDExNzQgMTFBRTtCOTk3OzExMDUgMTE3NCAxMUFFOworQjk5ODtCOTk4OzExMDUgMTE3NCAxMUFGO0I5OTg7MTEwNSAxMTc0IDExQUY7CitCOTk5O0I5OTk7MTEwNSAxMTc0IDExQjA7Qjk5OTsxMTA1IDExNzQgMTFCMDsKK0I5OUE7Qjk5QTsxMTA1IDExNzQgMTFCMTtCOTlBOzExMDUgMTE3NCAxMUIxOworQjk5QjtCOTlCOzExMDUgMTE3NCAxMUIyO0I5OUI7MTEwNSAxMTc0IDExQjI7CitCOTlDO0I5OUM7MTEwNSAxMTc0IDExQjM7Qjk5QzsxMTA1IDExNzQgMTFCMzsKK0I5OUQ7Qjk5RDsxMTA1IDExNzQgMTFCNDtCOTlEOzExMDUgMTE3NCAxMUI0OworQjk5RTtCOTlFOzExMDUgMTE3NCAxMUI1O0I5OUU7MTEwNSAxMTc0IDExQjU7CitCOTlGO0I5OUY7MTEwNSAxMTc0IDExQjY7Qjk5RjsxMTA1IDExNzQgMTFCNjsKK0I5QTA7QjlBMDsxMTA1IDExNzQgMTFCNztCOUEwOzExMDUgMTE3NCAxMUI3OworQjlBMTtCOUExOzExMDUgMTE3NCAxMUI4O0I5QTE7MTEwNSAxMTc0IDExQjg7CitCOUEyO0I5QTI7MTEwNSAxMTc0IDExQjk7QjlBMjsxMTA1IDExNzQgMTFCOTsKK0I5QTM7QjlBMzsxMTA1IDExNzQgMTFCQTtCOUEzOzExMDUgMTE3NCAxMUJBOworQjlBNDtCOUE0OzExMDUgMTE3NCAxMUJCO0I5QTQ7MTEwNSAxMTc0IDExQkI7CitCOUE1O0I5QTU7MTEwNSAxMTc0IDExQkM7QjlBNTsxMTA1IDExNzQgMTFCQzsKK0I5QTY7QjlBNjsxMTA1IDExNzQgMTFCRDtCOUE2OzExMDUgMTE3NCAxMUJEOworQjlBNztCOUE3OzExMDUgMTE3NCAxMUJFO0I5QTc7MTEwNSAxMTc0IDExQkU7CitCOUE4O0I5QTg7MTEwNSAxMTc0IDExQkY7QjlBODsxMTA1IDExNzQgMTFCRjsKK0I5QTk7QjlBOTsxMTA1IDExNzQgMTFDMDtCOUE5OzExMDUgMTE3NCAxMUMwOworQjlBQTtCOUFBOzExMDUgMTE3NCAxMUMxO0I5QUE7MTEwNSAxMTc0IDExQzE7CitCOUFCO0I5QUI7MTEwNSAxMTc0IDExQzI7QjlBQjsxMTA1IDExNzQgMTFDMjsKK0I5QUM7QjlBQzsxMTA1IDExNzU7QjlBQzsxMTA1IDExNzU7CitCOUFEO0I5QUQ7MTEwNSAxMTc1IDExQTg7QjlBRDsxMTA1IDExNzUgMTFBODsKK0I5QUU7QjlBRTsxMTA1IDExNzUgMTFBOTtCOUFFOzExMDUgMTE3NSAxMUE5OworQjlBRjtCOUFGOzExMDUgMTE3NSAxMUFBO0I5QUY7MTEwNSAxMTc1IDExQUE7CitCOUIwO0I5QjA7MTEwNSAxMTc1IDExQUI7QjlCMDsxMTA1IDExNzUgMTFBQjsKK0I5QjE7QjlCMTsxMTA1IDExNzUgMTFBQztCOUIxOzExMDUgMTE3NSAxMUFDOworQjlCMjtCOUIyOzExMDUgMTE3NSAxMUFEO0I5QjI7MTEwNSAxMTc1IDExQUQ7CitCOUIzO0I5QjM7MTEwNSAxMTc1IDExQUU7QjlCMzsxMTA1IDExNzUgMTFBRTsKK0I5QjQ7QjlCNDsxMTA1IDExNzUgMTFBRjtCOUI0OzExMDUgMTE3NSAxMUFGOworQjlCNTtCOUI1OzExMDUgMTE3NSAxMUIwO0I5QjU7MTEwNSAxMTc1IDExQjA7CitCOUI2O0I5QjY7MTEwNSAxMTc1IDExQjE7QjlCNjsxMTA1IDExNzUgMTFCMTsKK0I5Qjc7QjlCNzsxMTA1IDExNzUgMTFCMjtCOUI3OzExMDUgMTE3NSAxMUIyOworQjlCODtCOUI4OzExMDUgMTE3NSAxMUIzO0I5Qjg7MTEwNSAxMTc1IDExQjM7CitCOUI5O0I5Qjk7MTEwNSAxMTc1IDExQjQ7QjlCOTsxMTA1IDExNzUgMTFCNDsKK0I5QkE7QjlCQTsxMTA1IDExNzUgMTFCNTtCOUJBOzExMDUgMTE3NSAxMUI1OworQjlCQjtCOUJCOzExMDUgMTE3NSAxMUI2O0I5QkI7MTEwNSAxMTc1IDExQjY7CitCOUJDO0I5QkM7MTEwNSAxMTc1IDExQjc7QjlCQzsxMTA1IDExNzUgMTFCNzsKK0I5QkQ7QjlCRDsxMTA1IDExNzUgMTFCODtCOUJEOzExMDUgMTE3NSAxMUI4OworQjlCRTtCOUJFOzExMDUgMTE3NSAxMUI5O0I5QkU7MTEwNSAxMTc1IDExQjk7CitCOUJGO0I5QkY7MTEwNSAxMTc1IDExQkE7QjlCRjsxMTA1IDExNzUgMTFCQTsKK0I5QzA7QjlDMDsxMTA1IDExNzUgMTFCQjtCOUMwOzExMDUgMTE3NSAxMUJCOworQjlDMTtCOUMxOzExMDUgMTE3NSAxMUJDO0I5QzE7MTEwNSAxMTc1IDExQkM7CitCOUMyO0I5QzI7MTEwNSAxMTc1IDExQkQ7QjlDMjsxMTA1IDExNzUgMTFCRDsKK0I5QzM7QjlDMzsxMTA1IDExNzUgMTFCRTtCOUMzOzExMDUgMTE3NSAxMUJFOworQjlDNDtCOUM0OzExMDUgMTE3NSAxMUJGO0I5QzQ7MTEwNSAxMTc1IDExQkY7CitCOUM1O0I5QzU7MTEwNSAxMTc1IDExQzA7QjlDNTsxMTA1IDExNzUgMTFDMDsKK0I5QzY7QjlDNjsxMTA1IDExNzUgMTFDMTtCOUM2OzExMDUgMTE3NSAxMUMxOworQjlDNztCOUM3OzExMDUgMTE3NSAxMUMyO0I5Qzc7MTEwNSAxMTc1IDExQzI7CitCOUM4O0I5Qzg7MTEwNiAxMTYxO0I5Qzg7MTEwNiAxMTYxOworQjlDOTtCOUM5OzExMDYgMTE2MSAxMUE4O0I5Qzk7MTEwNiAxMTYxIDExQTg7CitCOUNBO0I5Q0E7MTEwNiAxMTYxIDExQTk7QjlDQTsxMTA2IDExNjEgMTFBOTsKK0I5Q0I7QjlDQjsxMTA2IDExNjEgMTFBQTtCOUNCOzExMDYgMTE2MSAxMUFBOworQjlDQztCOUNDOzExMDYgMTE2MSAxMUFCO0I5Q0M7MTEwNiAxMTYxIDExQUI7CitCOUNEO0I5Q0Q7MTEwNiAxMTYxIDExQUM7QjlDRDsxMTA2IDExNjEgMTFBQzsKK0I5Q0U7QjlDRTsxMTA2IDExNjEgMTFBRDtCOUNFOzExMDYgMTE2MSAxMUFEOworQjlDRjtCOUNGOzExMDYgMTE2MSAxMUFFO0I5Q0Y7MTEwNiAxMTYxIDExQUU7CitCOUQwO0I5RDA7MTEwNiAxMTYxIDExQUY7QjlEMDsxMTA2IDExNjEgMTFBRjsKK0I5RDE7QjlEMTsxMTA2IDExNjEgMTFCMDtCOUQxOzExMDYgMTE2MSAxMUIwOworQjlEMjtCOUQyOzExMDYgMTE2MSAxMUIxO0I5RDI7MTEwNiAxMTYxIDExQjE7CitCOUQzO0I5RDM7MTEwNiAxMTYxIDExQjI7QjlEMzsxMTA2IDExNjEgMTFCMjsKK0I5RDQ7QjlENDsxMTA2IDExNjEgMTFCMztCOUQ0OzExMDYgMTE2MSAxMUIzOworQjlENTtCOUQ1OzExMDYgMTE2MSAxMUI0O0I5RDU7MTEwNiAxMTYxIDExQjQ7CitCOUQ2O0I5RDY7MTEwNiAxMTYxIDExQjU7QjlENjsxMTA2IDExNjEgMTFCNTsKK0I5RDc7QjlENzsxMTA2IDExNjEgMTFCNjtCOUQ3OzExMDYgMTE2MSAxMUI2OworQjlEODtCOUQ4OzExMDYgMTE2MSAxMUI3O0I5RDg7MTEwNiAxMTYxIDExQjc7CitCOUQ5O0I5RDk7MTEwNiAxMTYxIDExQjg7QjlEOTsxMTA2IDExNjEgMTFCODsKK0I5REE7QjlEQTsxMTA2IDExNjEgMTFCOTtCOURBOzExMDYgMTE2MSAxMUI5OworQjlEQjtCOURCOzExMDYgMTE2MSAxMUJBO0I5REI7MTEwNiAxMTYxIDExQkE7CitCOURDO0I5REM7MTEwNiAxMTYxIDExQkI7QjlEQzsxMTA2IDExNjEgMTFCQjsKK0I5REQ7QjlERDsxMTA2IDExNjEgMTFCQztCOUREOzExMDYgMTE2MSAxMUJDOworQjlERTtCOURFOzExMDYgMTE2MSAxMUJEO0I5REU7MTEwNiAxMTYxIDExQkQ7CitCOURGO0I5REY7MTEwNiAxMTYxIDExQkU7QjlERjsxMTA2IDExNjEgMTFCRTsKK0I5RTA7QjlFMDsxMTA2IDExNjEgMTFCRjtCOUUwOzExMDYgMTE2MSAxMUJGOworQjlFMTtCOUUxOzExMDYgMTE2MSAxMUMwO0I5RTE7MTEwNiAxMTYxIDExQzA7CitCOUUyO0I5RTI7MTEwNiAxMTYxIDExQzE7QjlFMjsxMTA2IDExNjEgMTFDMTsKK0I5RTM7QjlFMzsxMTA2IDExNjEgMTFDMjtCOUUzOzExMDYgMTE2MSAxMUMyOworQjlFNDtCOUU0OzExMDYgMTE2MjtCOUU0OzExMDYgMTE2MjsKK0I5RTU7QjlFNTsxMTA2IDExNjIgMTFBODtCOUU1OzExMDYgMTE2MiAxMUE4OworQjlFNjtCOUU2OzExMDYgMTE2MiAxMUE5O0I5RTY7MTEwNiAxMTYyIDExQTk7CitCOUU3O0I5RTc7MTEwNiAxMTYyIDExQUE7QjlFNzsxMTA2IDExNjIgMTFBQTsKK0I5RTg7QjlFODsxMTA2IDExNjIgMTFBQjtCOUU4OzExMDYgMTE2MiAxMUFCOworQjlFOTtCOUU5OzExMDYgMTE2MiAxMUFDO0I5RTk7MTEwNiAxMTYyIDExQUM7CitCOUVBO0I5RUE7MTEwNiAxMTYyIDExQUQ7QjlFQTsxMTA2IDExNjIgMTFBRDsKK0I5RUI7QjlFQjsxMTA2IDExNjIgMTFBRTtCOUVCOzExMDYgMTE2MiAxMUFFOworQjlFQztCOUVDOzExMDYgMTE2MiAxMUFGO0I5RUM7MTEwNiAxMTYyIDExQUY7CitCOUVEO0I5RUQ7MTEwNiAxMTYyIDExQjA7QjlFRDsxMTA2IDExNjIgMTFCMDsKK0I5RUU7QjlFRTsxMTA2IDExNjIgMTFCMTtCOUVFOzExMDYgMTE2MiAxMUIxOworQjlFRjtCOUVGOzExMDYgMTE2MiAxMUIyO0I5RUY7MTEwNiAxMTYyIDExQjI7CitCOUYwO0I5RjA7MTEwNiAxMTYyIDExQjM7QjlGMDsxMTA2IDExNjIgMTFCMzsKK0I5RjE7QjlGMTsxMTA2IDExNjIgMTFCNDtCOUYxOzExMDYgMTE2MiAxMUI0OworQjlGMjtCOUYyOzExMDYgMTE2MiAxMUI1O0I5RjI7MTEwNiAxMTYyIDExQjU7CitCOUYzO0I5RjM7MTEwNiAxMTYyIDExQjY7QjlGMzsxMTA2IDExNjIgMTFCNjsKK0I5RjQ7QjlGNDsxMTA2IDExNjIgMTFCNztCOUY0OzExMDYgMTE2MiAxMUI3OworQjlGNTtCOUY1OzExMDYgMTE2MiAxMUI4O0I5RjU7MTEwNiAxMTYyIDExQjg7CitCOUY2O0I5RjY7MTEwNiAxMTYyIDExQjk7QjlGNjsxMTA2IDExNjIgMTFCOTsKK0I5Rjc7QjlGNzsxMTA2IDExNjIgMTFCQTtCOUY3OzExMDYgMTE2MiAxMUJBOworQjlGODtCOUY4OzExMDYgMTE2MiAxMUJCO0I5Rjg7MTEwNiAxMTYyIDExQkI7CitCOUY5O0I5Rjk7MTEwNiAxMTYyIDExQkM7QjlGOTsxMTA2IDExNjIgMTFCQzsKK0I5RkE7QjlGQTsxMTA2IDExNjIgMTFCRDtCOUZBOzExMDYgMTE2MiAxMUJEOworQjlGQjtCOUZCOzExMDYgMTE2MiAxMUJFO0I5RkI7MTEwNiAxMTYyIDExQkU7CitCOUZDO0I5RkM7MTEwNiAxMTYyIDExQkY7QjlGQzsxMTA2IDExNjIgMTFCRjsKK0I5RkQ7QjlGRDsxMTA2IDExNjIgMTFDMDtCOUZEOzExMDYgMTE2MiAxMUMwOworQjlGRTtCOUZFOzExMDYgMTE2MiAxMUMxO0I5RkU7MTEwNiAxMTYyIDExQzE7CitCOUZGO0I5RkY7MTEwNiAxMTYyIDExQzI7QjlGRjsxMTA2IDExNjIgMTFDMjsKK0JBMDA7QkEwMDsxMTA2IDExNjM7QkEwMDsxMTA2IDExNjM7CitCQTAxO0JBMDE7MTEwNiAxMTYzIDExQTg7QkEwMTsxMTA2IDExNjMgMTFBODsKK0JBMDI7QkEwMjsxMTA2IDExNjMgMTFBOTtCQTAyOzExMDYgMTE2MyAxMUE5OworQkEwMztCQTAzOzExMDYgMTE2MyAxMUFBO0JBMDM7MTEwNiAxMTYzIDExQUE7CitCQTA0O0JBMDQ7MTEwNiAxMTYzIDExQUI7QkEwNDsxMTA2IDExNjMgMTFBQjsKK0JBMDU7QkEwNTsxMTA2IDExNjMgMTFBQztCQTA1OzExMDYgMTE2MyAxMUFDOworQkEwNjtCQTA2OzExMDYgMTE2MyAxMUFEO0JBMDY7MTEwNiAxMTYzIDExQUQ7CitCQTA3O0JBMDc7MTEwNiAxMTYzIDExQUU7QkEwNzsxMTA2IDExNjMgMTFBRTsKK0JBMDg7QkEwODsxMTA2IDExNjMgMTFBRjtCQTA4OzExMDYgMTE2MyAxMUFGOworQkEwOTtCQTA5OzExMDYgMTE2MyAxMUIwO0JBMDk7MTEwNiAxMTYzIDExQjA7CitCQTBBO0JBMEE7MTEwNiAxMTYzIDExQjE7QkEwQTsxMTA2IDExNjMgMTFCMTsKK0JBMEI7QkEwQjsxMTA2IDExNjMgMTFCMjtCQTBCOzExMDYgMTE2MyAxMUIyOworQkEwQztCQTBDOzExMDYgMTE2MyAxMUIzO0JBMEM7MTEwNiAxMTYzIDExQjM7CitCQTBEO0JBMEQ7MTEwNiAxMTYzIDExQjQ7QkEwRDsxMTA2IDExNjMgMTFCNDsKK0JBMEU7QkEwRTsxMTA2IDExNjMgMTFCNTtCQTBFOzExMDYgMTE2MyAxMUI1OworQkEwRjtCQTBGOzExMDYgMTE2MyAxMUI2O0JBMEY7MTEwNiAxMTYzIDExQjY7CitCQTEwO0JBMTA7MTEwNiAxMTYzIDExQjc7QkExMDsxMTA2IDExNjMgMTFCNzsKK0JBMTE7QkExMTsxMTA2IDExNjMgMTFCODtCQTExOzExMDYgMTE2MyAxMUI4OworQkExMjtCQTEyOzExMDYgMTE2MyAxMUI5O0JBMTI7MTEwNiAxMTYzIDExQjk7CitCQTEzO0JBMTM7MTEwNiAxMTYzIDExQkE7QkExMzsxMTA2IDExNjMgMTFCQTsKK0JBMTQ7QkExNDsxMTA2IDExNjMgMTFCQjtCQTE0OzExMDYgMTE2MyAxMUJCOworQkExNTtCQTE1OzExMDYgMTE2MyAxMUJDO0JBMTU7MTEwNiAxMTYzIDExQkM7CitCQTE2O0JBMTY7MTEwNiAxMTYzIDExQkQ7QkExNjsxMTA2IDExNjMgMTFCRDsKK0JBMTc7QkExNzsxMTA2IDExNjMgMTFCRTtCQTE3OzExMDYgMTE2MyAxMUJFOworQkExODtCQTE4OzExMDYgMTE2MyAxMUJGO0JBMTg7MTEwNiAxMTYzIDExQkY7CitCQTE5O0JBMTk7MTEwNiAxMTYzIDExQzA7QkExOTsxMTA2IDExNjMgMTFDMDsKK0JBMUE7QkExQTsxMTA2IDExNjMgMTFDMTtCQTFBOzExMDYgMTE2MyAxMUMxOworQkExQjtCQTFCOzExMDYgMTE2MyAxMUMyO0JBMUI7MTEwNiAxMTYzIDExQzI7CitCQTFDO0JBMUM7MTEwNiAxMTY0O0JBMUM7MTEwNiAxMTY0OworQkExRDtCQTFEOzExMDYgMTE2NCAxMUE4O0JBMUQ7MTEwNiAxMTY0IDExQTg7CitCQTFFO0JBMUU7MTEwNiAxMTY0IDExQTk7QkExRTsxMTA2IDExNjQgMTFBOTsKK0JBMUY7QkExRjsxMTA2IDExNjQgMTFBQTtCQTFGOzExMDYgMTE2NCAxMUFBOworQkEyMDtCQTIwOzExMDYgMTE2NCAxMUFCO0JBMjA7MTEwNiAxMTY0IDExQUI7CitCQTIxO0JBMjE7MTEwNiAxMTY0IDExQUM7QkEyMTsxMTA2IDExNjQgMTFBQzsKK0JBMjI7QkEyMjsxMTA2IDExNjQgMTFBRDtCQTIyOzExMDYgMTE2NCAxMUFEOworQkEyMztCQTIzOzExMDYgMTE2NCAxMUFFO0JBMjM7MTEwNiAxMTY0IDExQUU7CitCQTI0O0JBMjQ7MTEwNiAxMTY0IDExQUY7QkEyNDsxMTA2IDExNjQgMTFBRjsKK0JBMjU7QkEyNTsxMTA2IDExNjQgMTFCMDtCQTI1OzExMDYgMTE2NCAxMUIwOworQkEyNjtCQTI2OzExMDYgMTE2NCAxMUIxO0JBMjY7MTEwNiAxMTY0IDExQjE7CitCQTI3O0JBMjc7MTEwNiAxMTY0IDExQjI7QkEyNzsxMTA2IDExNjQgMTFCMjsKK0JBMjg7QkEyODsxMTA2IDExNjQgMTFCMztCQTI4OzExMDYgMTE2NCAxMUIzOworQkEyOTtCQTI5OzExMDYgMTE2NCAxMUI0O0JBMjk7MTEwNiAxMTY0IDExQjQ7CitCQTJBO0JBMkE7MTEwNiAxMTY0IDExQjU7QkEyQTsxMTA2IDExNjQgMTFCNTsKK0JBMkI7QkEyQjsxMTA2IDExNjQgMTFCNjtCQTJCOzExMDYgMTE2NCAxMUI2OworQkEyQztCQTJDOzExMDYgMTE2NCAxMUI3O0JBMkM7MTEwNiAxMTY0IDExQjc7CitCQTJEO0JBMkQ7MTEwNiAxMTY0IDExQjg7QkEyRDsxMTA2IDExNjQgMTFCODsKK0JBMkU7QkEyRTsxMTA2IDExNjQgMTFCOTtCQTJFOzExMDYgMTE2NCAxMUI5OworQkEyRjtCQTJGOzExMDYgMTE2NCAxMUJBO0JBMkY7MTEwNiAxMTY0IDExQkE7CitCQTMwO0JBMzA7MTEwNiAxMTY0IDExQkI7QkEzMDsxMTA2IDExNjQgMTFCQjsKK0JBMzE7QkEzMTsxMTA2IDExNjQgMTFCQztCQTMxOzExMDYgMTE2NCAxMUJDOworQkEzMjtCQTMyOzExMDYgMTE2NCAxMUJEO0JBMzI7MTEwNiAxMTY0IDExQkQ7CitCQTMzO0JBMzM7MTEwNiAxMTY0IDExQkU7QkEzMzsxMTA2IDExNjQgMTFCRTsKK0JBMzQ7QkEzNDsxMTA2IDExNjQgMTFCRjtCQTM0OzExMDYgMTE2NCAxMUJGOworQkEzNTtCQTM1OzExMDYgMTE2NCAxMUMwO0JBMzU7MTEwNiAxMTY0IDExQzA7CitCQTM2O0JBMzY7MTEwNiAxMTY0IDExQzE7QkEzNjsxMTA2IDExNjQgMTFDMTsKK0JBMzc7QkEzNzsxMTA2IDExNjQgMTFDMjtCQTM3OzExMDYgMTE2NCAxMUMyOworQkEzODtCQTM4OzExMDYgMTE2NTtCQTM4OzExMDYgMTE2NTsKK0JBMzk7QkEzOTsxMTA2IDExNjUgMTFBODtCQTM5OzExMDYgMTE2NSAxMUE4OworQkEzQTtCQTNBOzExMDYgMTE2NSAxMUE5O0JBM0E7MTEwNiAxMTY1IDExQTk7CitCQTNCO0JBM0I7MTEwNiAxMTY1IDExQUE7QkEzQjsxMTA2IDExNjUgMTFBQTsKK0JBM0M7QkEzQzsxMTA2IDExNjUgMTFBQjtCQTNDOzExMDYgMTE2NSAxMUFCOworQkEzRDtCQTNEOzExMDYgMTE2NSAxMUFDO0JBM0Q7MTEwNiAxMTY1IDExQUM7CitCQTNFO0JBM0U7MTEwNiAxMTY1IDExQUQ7QkEzRTsxMTA2IDExNjUgMTFBRDsKK0JBM0Y7QkEzRjsxMTA2IDExNjUgMTFBRTtCQTNGOzExMDYgMTE2NSAxMUFFOworQkE0MDtCQTQwOzExMDYgMTE2NSAxMUFGO0JBNDA7MTEwNiAxMTY1IDExQUY7CitCQTQxO0JBNDE7MTEwNiAxMTY1IDExQjA7QkE0MTsxMTA2IDExNjUgMTFCMDsKK0JBNDI7QkE0MjsxMTA2IDExNjUgMTFCMTtCQTQyOzExMDYgMTE2NSAxMUIxOworQkE0MztCQTQzOzExMDYgMTE2NSAxMUIyO0JBNDM7MTEwNiAxMTY1IDExQjI7CitCQTQ0O0JBNDQ7MTEwNiAxMTY1IDExQjM7QkE0NDsxMTA2IDExNjUgMTFCMzsKK0JBNDU7QkE0NTsxMTA2IDExNjUgMTFCNDtCQTQ1OzExMDYgMTE2NSAxMUI0OworQkE0NjtCQTQ2OzExMDYgMTE2NSAxMUI1O0JBNDY7MTEwNiAxMTY1IDExQjU7CitCQTQ3O0JBNDc7MTEwNiAxMTY1IDExQjY7QkE0NzsxMTA2IDExNjUgMTFCNjsKK0JBNDg7QkE0ODsxMTA2IDExNjUgMTFCNztCQTQ4OzExMDYgMTE2NSAxMUI3OworQkE0OTtCQTQ5OzExMDYgMTE2NSAxMUI4O0JBNDk7MTEwNiAxMTY1IDExQjg7CitCQTRBO0JBNEE7MTEwNiAxMTY1IDExQjk7QkE0QTsxMTA2IDExNjUgMTFCOTsKK0JBNEI7QkE0QjsxMTA2IDExNjUgMTFCQTtCQTRCOzExMDYgMTE2NSAxMUJBOworQkE0QztCQTRDOzExMDYgMTE2NSAxMUJCO0JBNEM7MTEwNiAxMTY1IDExQkI7CitCQTREO0JBNEQ7MTEwNiAxMTY1IDExQkM7QkE0RDsxMTA2IDExNjUgMTFCQzsKK0JBNEU7QkE0RTsxMTA2IDExNjUgMTFCRDtCQTRFOzExMDYgMTE2NSAxMUJEOworQkE0RjtCQTRGOzExMDYgMTE2NSAxMUJFO0JBNEY7MTEwNiAxMTY1IDExQkU7CitCQTUwO0JBNTA7MTEwNiAxMTY1IDExQkY7QkE1MDsxMTA2IDExNjUgMTFCRjsKK0JBNTE7QkE1MTsxMTA2IDExNjUgMTFDMDtCQTUxOzExMDYgMTE2NSAxMUMwOworQkE1MjtCQTUyOzExMDYgMTE2NSAxMUMxO0JBNTI7MTEwNiAxMTY1IDExQzE7CitCQTUzO0JBNTM7MTEwNiAxMTY1IDExQzI7QkE1MzsxMTA2IDExNjUgMTFDMjsKK0JBNTQ7QkE1NDsxMTA2IDExNjY7QkE1NDsxMTA2IDExNjY7CitCQTU1O0JBNTU7MTEwNiAxMTY2IDExQTg7QkE1NTsxMTA2IDExNjYgMTFBODsKK0JBNTY7QkE1NjsxMTA2IDExNjYgMTFBOTtCQTU2OzExMDYgMTE2NiAxMUE5OworQkE1NztCQTU3OzExMDYgMTE2NiAxMUFBO0JBNTc7MTEwNiAxMTY2IDExQUE7CitCQTU4O0JBNTg7MTEwNiAxMTY2IDExQUI7QkE1ODsxMTA2IDExNjYgMTFBQjsKK0JBNTk7QkE1OTsxMTA2IDExNjYgMTFBQztCQTU5OzExMDYgMTE2NiAxMUFDOworQkE1QTtCQTVBOzExMDYgMTE2NiAxMUFEO0JBNUE7MTEwNiAxMTY2IDExQUQ7CitCQTVCO0JBNUI7MTEwNiAxMTY2IDExQUU7QkE1QjsxMTA2IDExNjYgMTFBRTsKK0JBNUM7QkE1QzsxMTA2IDExNjYgMTFBRjtCQTVDOzExMDYgMTE2NiAxMUFGOworQkE1RDtCQTVEOzExMDYgMTE2NiAxMUIwO0JBNUQ7MTEwNiAxMTY2IDExQjA7CitCQTVFO0JBNUU7MTEwNiAxMTY2IDExQjE7QkE1RTsxMTA2IDExNjYgMTFCMTsKK0JBNUY7QkE1RjsxMTA2IDExNjYgMTFCMjtCQTVGOzExMDYgMTE2NiAxMUIyOworQkE2MDtCQTYwOzExMDYgMTE2NiAxMUIzO0JBNjA7MTEwNiAxMTY2IDExQjM7CitCQTYxO0JBNjE7MTEwNiAxMTY2IDExQjQ7QkE2MTsxMTA2IDExNjYgMTFCNDsKK0JBNjI7QkE2MjsxMTA2IDExNjYgMTFCNTtCQTYyOzExMDYgMTE2NiAxMUI1OworQkE2MztCQTYzOzExMDYgMTE2NiAxMUI2O0JBNjM7MTEwNiAxMTY2IDExQjY7CitCQTY0O0JBNjQ7MTEwNiAxMTY2IDExQjc7QkE2NDsxMTA2IDExNjYgMTFCNzsKK0JBNjU7QkE2NTsxMTA2IDExNjYgMTFCODtCQTY1OzExMDYgMTE2NiAxMUI4OworQkE2NjtCQTY2OzExMDYgMTE2NiAxMUI5O0JBNjY7MTEwNiAxMTY2IDExQjk7CitCQTY3O0JBNjc7MTEwNiAxMTY2IDExQkE7QkE2NzsxMTA2IDExNjYgMTFCQTsKK0JBNjg7QkE2ODsxMTA2IDExNjYgMTFCQjtCQTY4OzExMDYgMTE2NiAxMUJCOworQkE2OTtCQTY5OzExMDYgMTE2NiAxMUJDO0JBNjk7MTEwNiAxMTY2IDExQkM7CitCQTZBO0JBNkE7MTEwNiAxMTY2IDExQkQ7QkE2QTsxMTA2IDExNjYgMTFCRDsKK0JBNkI7QkE2QjsxMTA2IDExNjYgMTFCRTtCQTZCOzExMDYgMTE2NiAxMUJFOworQkE2QztCQTZDOzExMDYgMTE2NiAxMUJGO0JBNkM7MTEwNiAxMTY2IDExQkY7CitCQTZEO0JBNkQ7MTEwNiAxMTY2IDExQzA7QkE2RDsxMTA2IDExNjYgMTFDMDsKK0JBNkU7QkE2RTsxMTA2IDExNjYgMTFDMTtCQTZFOzExMDYgMTE2NiAxMUMxOworQkE2RjtCQTZGOzExMDYgMTE2NiAxMUMyO0JBNkY7MTEwNiAxMTY2IDExQzI7CitCQTcwO0JBNzA7MTEwNiAxMTY3O0JBNzA7MTEwNiAxMTY3OworQkE3MTtCQTcxOzExMDYgMTE2NyAxMUE4O0JBNzE7MTEwNiAxMTY3IDExQTg7CitCQTcyO0JBNzI7MTEwNiAxMTY3IDExQTk7QkE3MjsxMTA2IDExNjcgMTFBOTsKK0JBNzM7QkE3MzsxMTA2IDExNjcgMTFBQTtCQTczOzExMDYgMTE2NyAxMUFBOworQkE3NDtCQTc0OzExMDYgMTE2NyAxMUFCO0JBNzQ7MTEwNiAxMTY3IDExQUI7CitCQTc1O0JBNzU7MTEwNiAxMTY3IDExQUM7QkE3NTsxMTA2IDExNjcgMTFBQzsKK0JBNzY7QkE3NjsxMTA2IDExNjcgMTFBRDtCQTc2OzExMDYgMTE2NyAxMUFEOworQkE3NztCQTc3OzExMDYgMTE2NyAxMUFFO0JBNzc7MTEwNiAxMTY3IDExQUU7CitCQTc4O0JBNzg7MTEwNiAxMTY3IDExQUY7QkE3ODsxMTA2IDExNjcgMTFBRjsKK0JBNzk7QkE3OTsxMTA2IDExNjcgMTFCMDtCQTc5OzExMDYgMTE2NyAxMUIwOworQkE3QTtCQTdBOzExMDYgMTE2NyAxMUIxO0JBN0E7MTEwNiAxMTY3IDExQjE7CitCQTdCO0JBN0I7MTEwNiAxMTY3IDExQjI7QkE3QjsxMTA2IDExNjcgMTFCMjsKK0JBN0M7QkE3QzsxMTA2IDExNjcgMTFCMztCQTdDOzExMDYgMTE2NyAxMUIzOworQkE3RDtCQTdEOzExMDYgMTE2NyAxMUI0O0JBN0Q7MTEwNiAxMTY3IDExQjQ7CitCQTdFO0JBN0U7MTEwNiAxMTY3IDExQjU7QkE3RTsxMTA2IDExNjcgMTFCNTsKK0JBN0Y7QkE3RjsxMTA2IDExNjcgMTFCNjtCQTdGOzExMDYgMTE2NyAxMUI2OworQkE4MDtCQTgwOzExMDYgMTE2NyAxMUI3O0JBODA7MTEwNiAxMTY3IDExQjc7CitCQTgxO0JBODE7MTEwNiAxMTY3IDExQjg7QkE4MTsxMTA2IDExNjcgMTFCODsKK0JBODI7QkE4MjsxMTA2IDExNjcgMTFCOTtCQTgyOzExMDYgMTE2NyAxMUI5OworQkE4MztCQTgzOzExMDYgMTE2NyAxMUJBO0JBODM7MTEwNiAxMTY3IDExQkE7CitCQTg0O0JBODQ7MTEwNiAxMTY3IDExQkI7QkE4NDsxMTA2IDExNjcgMTFCQjsKK0JBODU7QkE4NTsxMTA2IDExNjcgMTFCQztCQTg1OzExMDYgMTE2NyAxMUJDOworQkE4NjtCQTg2OzExMDYgMTE2NyAxMUJEO0JBODY7MTEwNiAxMTY3IDExQkQ7CitCQTg3O0JBODc7MTEwNiAxMTY3IDExQkU7QkE4NzsxMTA2IDExNjcgMTFCRTsKK0JBODg7QkE4ODsxMTA2IDExNjcgMTFCRjtCQTg4OzExMDYgMTE2NyAxMUJGOworQkE4OTtCQTg5OzExMDYgMTE2NyAxMUMwO0JBODk7MTEwNiAxMTY3IDExQzA7CitCQThBO0JBOEE7MTEwNiAxMTY3IDExQzE7QkE4QTsxMTA2IDExNjcgMTFDMTsKK0JBOEI7QkE4QjsxMTA2IDExNjcgMTFDMjtCQThCOzExMDYgMTE2NyAxMUMyOworQkE4QztCQThDOzExMDYgMTE2ODtCQThDOzExMDYgMTE2ODsKK0JBOEQ7QkE4RDsxMTA2IDExNjggMTFBODtCQThEOzExMDYgMTE2OCAxMUE4OworQkE4RTtCQThFOzExMDYgMTE2OCAxMUE5O0JBOEU7MTEwNiAxMTY4IDExQTk7CitCQThGO0JBOEY7MTEwNiAxMTY4IDExQUE7QkE4RjsxMTA2IDExNjggMTFBQTsKK0JBOTA7QkE5MDsxMTA2IDExNjggMTFBQjtCQTkwOzExMDYgMTE2OCAxMUFCOworQkE5MTtCQTkxOzExMDYgMTE2OCAxMUFDO0JBOTE7MTEwNiAxMTY4IDExQUM7CitCQTkyO0JBOTI7MTEwNiAxMTY4IDExQUQ7QkE5MjsxMTA2IDExNjggMTFBRDsKK0JBOTM7QkE5MzsxMTA2IDExNjggMTFBRTtCQTkzOzExMDYgMTE2OCAxMUFFOworQkE5NDtCQTk0OzExMDYgMTE2OCAxMUFGO0JBOTQ7MTEwNiAxMTY4IDExQUY7CitCQTk1O0JBOTU7MTEwNiAxMTY4IDExQjA7QkE5NTsxMTA2IDExNjggMTFCMDsKK0JBOTY7QkE5NjsxMTA2IDExNjggMTFCMTtCQTk2OzExMDYgMTE2OCAxMUIxOworQkE5NztCQTk3OzExMDYgMTE2OCAxMUIyO0JBOTc7MTEwNiAxMTY4IDExQjI7CitCQTk4O0JBOTg7MTEwNiAxMTY4IDExQjM7QkE5ODsxMTA2IDExNjggMTFCMzsKK0JBOTk7QkE5OTsxMTA2IDExNjggMTFCNDtCQTk5OzExMDYgMTE2OCAxMUI0OworQkE5QTtCQTlBOzExMDYgMTE2OCAxMUI1O0JBOUE7MTEwNiAxMTY4IDExQjU7CitCQTlCO0JBOUI7MTEwNiAxMTY4IDExQjY7QkE5QjsxMTA2IDExNjggMTFCNjsKK0JBOUM7QkE5QzsxMTA2IDExNjggMTFCNztCQTlDOzExMDYgMTE2OCAxMUI3OworQkE5RDtCQTlEOzExMDYgMTE2OCAxMUI4O0JBOUQ7MTEwNiAxMTY4IDExQjg7CitCQTlFO0JBOUU7MTEwNiAxMTY4IDExQjk7QkE5RTsxMTA2IDExNjggMTFCOTsKK0JBOUY7QkE5RjsxMTA2IDExNjggMTFCQTtCQTlGOzExMDYgMTE2OCAxMUJBOworQkFBMDtCQUEwOzExMDYgMTE2OCAxMUJCO0JBQTA7MTEwNiAxMTY4IDExQkI7CitCQUExO0JBQTE7MTEwNiAxMTY4IDExQkM7QkFBMTsxMTA2IDExNjggMTFCQzsKK0JBQTI7QkFBMjsxMTA2IDExNjggMTFCRDtCQUEyOzExMDYgMTE2OCAxMUJEOworQkFBMztCQUEzOzExMDYgMTE2OCAxMUJFO0JBQTM7MTEwNiAxMTY4IDExQkU7CitCQUE0O0JBQTQ7MTEwNiAxMTY4IDExQkY7QkFBNDsxMTA2IDExNjggMTFCRjsKK0JBQTU7QkFBNTsxMTA2IDExNjggMTFDMDtCQUE1OzExMDYgMTE2OCAxMUMwOworQkFBNjtCQUE2OzExMDYgMTE2OCAxMUMxO0JBQTY7MTEwNiAxMTY4IDExQzE7CitCQUE3O0JBQTc7MTEwNiAxMTY4IDExQzI7QkFBNzsxMTA2IDExNjggMTFDMjsKK0JBQTg7QkFBODsxMTA2IDExNjk7QkFBODsxMTA2IDExNjk7CitCQUE5O0JBQTk7MTEwNiAxMTY5IDExQTg7QkFBOTsxMTA2IDExNjkgMTFBODsKK0JBQUE7QkFBQTsxMTA2IDExNjkgMTFBOTtCQUFBOzExMDYgMTE2OSAxMUE5OworQkFBQjtCQUFCOzExMDYgMTE2OSAxMUFBO0JBQUI7MTEwNiAxMTY5IDExQUE7CitCQUFDO0JBQUM7MTEwNiAxMTY5IDExQUI7QkFBQzsxMTA2IDExNjkgMTFBQjsKK0JBQUQ7QkFBRDsxMTA2IDExNjkgMTFBQztCQUFEOzExMDYgMTE2OSAxMUFDOworQkFBRTtCQUFFOzExMDYgMTE2OSAxMUFEO0JBQUU7MTEwNiAxMTY5IDExQUQ7CitCQUFGO0JBQUY7MTEwNiAxMTY5IDExQUU7QkFBRjsxMTA2IDExNjkgMTFBRTsKK0JBQjA7QkFCMDsxMTA2IDExNjkgMTFBRjtCQUIwOzExMDYgMTE2OSAxMUFGOworQkFCMTtCQUIxOzExMDYgMTE2OSAxMUIwO0JBQjE7MTEwNiAxMTY5IDExQjA7CitCQUIyO0JBQjI7MTEwNiAxMTY5IDExQjE7QkFCMjsxMTA2IDExNjkgMTFCMTsKK0JBQjM7QkFCMzsxMTA2IDExNjkgMTFCMjtCQUIzOzExMDYgMTE2OSAxMUIyOworQkFCNDtCQUI0OzExMDYgMTE2OSAxMUIzO0JBQjQ7MTEwNiAxMTY5IDExQjM7CitCQUI1O0JBQjU7MTEwNiAxMTY5IDExQjQ7QkFCNTsxMTA2IDExNjkgMTFCNDsKK0JBQjY7QkFCNjsxMTA2IDExNjkgMTFCNTtCQUI2OzExMDYgMTE2OSAxMUI1OworQkFCNztCQUI3OzExMDYgMTE2OSAxMUI2O0JBQjc7MTEwNiAxMTY5IDExQjY7CitCQUI4O0JBQjg7MTEwNiAxMTY5IDExQjc7QkFCODsxMTA2IDExNjkgMTFCNzsKK0JBQjk7QkFCOTsxMTA2IDExNjkgMTFCODtCQUI5OzExMDYgMTE2OSAxMUI4OworQkFCQTtCQUJBOzExMDYgMTE2OSAxMUI5O0JBQkE7MTEwNiAxMTY5IDExQjk7CitCQUJCO0JBQkI7MTEwNiAxMTY5IDExQkE7QkFCQjsxMTA2IDExNjkgMTFCQTsKK0JBQkM7QkFCQzsxMTA2IDExNjkgMTFCQjtCQUJDOzExMDYgMTE2OSAxMUJCOworQkFCRDtCQUJEOzExMDYgMTE2OSAxMUJDO0JBQkQ7MTEwNiAxMTY5IDExQkM7CitCQUJFO0JBQkU7MTEwNiAxMTY5IDExQkQ7QkFCRTsxMTA2IDExNjkgMTFCRDsKK0JBQkY7QkFCRjsxMTA2IDExNjkgMTFCRTtCQUJGOzExMDYgMTE2OSAxMUJFOworQkFDMDtCQUMwOzExMDYgMTE2OSAxMUJGO0JBQzA7MTEwNiAxMTY5IDExQkY7CitCQUMxO0JBQzE7MTEwNiAxMTY5IDExQzA7QkFDMTsxMTA2IDExNjkgMTFDMDsKK0JBQzI7QkFDMjsxMTA2IDExNjkgMTFDMTtCQUMyOzExMDYgMTE2OSAxMUMxOworQkFDMztCQUMzOzExMDYgMTE2OSAxMUMyO0JBQzM7MTEwNiAxMTY5IDExQzI7CitCQUM0O0JBQzQ7MTEwNiAxMTZBO0JBQzQ7MTEwNiAxMTZBOworQkFDNTtCQUM1OzExMDYgMTE2QSAxMUE4O0JBQzU7MTEwNiAxMTZBIDExQTg7CitCQUM2O0JBQzY7MTEwNiAxMTZBIDExQTk7QkFDNjsxMTA2IDExNkEgMTFBOTsKK0JBQzc7QkFDNzsxMTA2IDExNkEgMTFBQTtCQUM3OzExMDYgMTE2QSAxMUFBOworQkFDODtCQUM4OzExMDYgMTE2QSAxMUFCO0JBQzg7MTEwNiAxMTZBIDExQUI7CitCQUM5O0JBQzk7MTEwNiAxMTZBIDExQUM7QkFDOTsxMTA2IDExNkEgMTFBQzsKK0JBQ0E7QkFDQTsxMTA2IDExNkEgMTFBRDtCQUNBOzExMDYgMTE2QSAxMUFEOworQkFDQjtCQUNCOzExMDYgMTE2QSAxMUFFO0JBQ0I7MTEwNiAxMTZBIDExQUU7CitCQUNDO0JBQ0M7MTEwNiAxMTZBIDExQUY7QkFDQzsxMTA2IDExNkEgMTFBRjsKK0JBQ0Q7QkFDRDsxMTA2IDExNkEgMTFCMDtCQUNEOzExMDYgMTE2QSAxMUIwOworQkFDRTtCQUNFOzExMDYgMTE2QSAxMUIxO0JBQ0U7MTEwNiAxMTZBIDExQjE7CitCQUNGO0JBQ0Y7MTEwNiAxMTZBIDExQjI7QkFDRjsxMTA2IDExNkEgMTFCMjsKK0JBRDA7QkFEMDsxMTA2IDExNkEgMTFCMztCQUQwOzExMDYgMTE2QSAxMUIzOworQkFEMTtCQUQxOzExMDYgMTE2QSAxMUI0O0JBRDE7MTEwNiAxMTZBIDExQjQ7CitCQUQyO0JBRDI7MTEwNiAxMTZBIDExQjU7QkFEMjsxMTA2IDExNkEgMTFCNTsKK0JBRDM7QkFEMzsxMTA2IDExNkEgMTFCNjtCQUQzOzExMDYgMTE2QSAxMUI2OworQkFENDtCQUQ0OzExMDYgMTE2QSAxMUI3O0JBRDQ7MTEwNiAxMTZBIDExQjc7CitCQUQ1O0JBRDU7MTEwNiAxMTZBIDExQjg7QkFENTsxMTA2IDExNkEgMTFCODsKK0JBRDY7QkFENjsxMTA2IDExNkEgMTFCOTtCQUQ2OzExMDYgMTE2QSAxMUI5OworQkFENztCQUQ3OzExMDYgMTE2QSAxMUJBO0JBRDc7MTEwNiAxMTZBIDExQkE7CitCQUQ4O0JBRDg7MTEwNiAxMTZBIDExQkI7QkFEODsxMTA2IDExNkEgMTFCQjsKK0JBRDk7QkFEOTsxMTA2IDExNkEgMTFCQztCQUQ5OzExMDYgMTE2QSAxMUJDOworQkFEQTtCQURBOzExMDYgMTE2QSAxMUJEO0JBREE7MTEwNiAxMTZBIDExQkQ7CitCQURCO0JBREI7MTEwNiAxMTZBIDExQkU7QkFEQjsxMTA2IDExNkEgMTFCRTsKK0JBREM7QkFEQzsxMTA2IDExNkEgMTFCRjtCQURDOzExMDYgMTE2QSAxMUJGOworQkFERDtCQUREOzExMDYgMTE2QSAxMUMwO0JBREQ7MTEwNiAxMTZBIDExQzA7CitCQURFO0JBREU7MTEwNiAxMTZBIDExQzE7QkFERTsxMTA2IDExNkEgMTFDMTsKK0JBREY7QkFERjsxMTA2IDExNkEgMTFDMjtCQURGOzExMDYgMTE2QSAxMUMyOworQkFFMDtCQUUwOzExMDYgMTE2QjtCQUUwOzExMDYgMTE2QjsKK0JBRTE7QkFFMTsxMTA2IDExNkIgMTFBODtCQUUxOzExMDYgMTE2QiAxMUE4OworQkFFMjtCQUUyOzExMDYgMTE2QiAxMUE5O0JBRTI7MTEwNiAxMTZCIDExQTk7CitCQUUzO0JBRTM7MTEwNiAxMTZCIDExQUE7QkFFMzsxMTA2IDExNkIgMTFBQTsKK0JBRTQ7QkFFNDsxMTA2IDExNkIgMTFBQjtCQUU0OzExMDYgMTE2QiAxMUFCOworQkFFNTtCQUU1OzExMDYgMTE2QiAxMUFDO0JBRTU7MTEwNiAxMTZCIDExQUM7CitCQUU2O0JBRTY7MTEwNiAxMTZCIDExQUQ7QkFFNjsxMTA2IDExNkIgMTFBRDsKK0JBRTc7QkFFNzsxMTA2IDExNkIgMTFBRTtCQUU3OzExMDYgMTE2QiAxMUFFOworQkFFODtCQUU4OzExMDYgMTE2QiAxMUFGO0JBRTg7MTEwNiAxMTZCIDExQUY7CitCQUU5O0JBRTk7MTEwNiAxMTZCIDExQjA7QkFFOTsxMTA2IDExNkIgMTFCMDsKK0JBRUE7QkFFQTsxMTA2IDExNkIgMTFCMTtCQUVBOzExMDYgMTE2QiAxMUIxOworQkFFQjtCQUVCOzExMDYgMTE2QiAxMUIyO0JBRUI7MTEwNiAxMTZCIDExQjI7CitCQUVDO0JBRUM7MTEwNiAxMTZCIDExQjM7QkFFQzsxMTA2IDExNkIgMTFCMzsKK0JBRUQ7QkFFRDsxMTA2IDExNkIgMTFCNDtCQUVEOzExMDYgMTE2QiAxMUI0OworQkFFRTtCQUVFOzExMDYgMTE2QiAxMUI1O0JBRUU7MTEwNiAxMTZCIDExQjU7CitCQUVGO0JBRUY7MTEwNiAxMTZCIDExQjY7QkFFRjsxMTA2IDExNkIgMTFCNjsKK0JBRjA7QkFGMDsxMTA2IDExNkIgMTFCNztCQUYwOzExMDYgMTE2QiAxMUI3OworQkFGMTtCQUYxOzExMDYgMTE2QiAxMUI4O0JBRjE7MTEwNiAxMTZCIDExQjg7CitCQUYyO0JBRjI7MTEwNiAxMTZCIDExQjk7QkFGMjsxMTA2IDExNkIgMTFCOTsKK0JBRjM7QkFGMzsxMTA2IDExNkIgMTFCQTtCQUYzOzExMDYgMTE2QiAxMUJBOworQkFGNDtCQUY0OzExMDYgMTE2QiAxMUJCO0JBRjQ7MTEwNiAxMTZCIDExQkI7CitCQUY1O0JBRjU7MTEwNiAxMTZCIDExQkM7QkFGNTsxMTA2IDExNkIgMTFCQzsKK0JBRjY7QkFGNjsxMTA2IDExNkIgMTFCRDtCQUY2OzExMDYgMTE2QiAxMUJEOworQkFGNztCQUY3OzExMDYgMTE2QiAxMUJFO0JBRjc7MTEwNiAxMTZCIDExQkU7CitCQUY4O0JBRjg7MTEwNiAxMTZCIDExQkY7QkFGODsxMTA2IDExNkIgMTFCRjsKK0JBRjk7QkFGOTsxMTA2IDExNkIgMTFDMDtCQUY5OzExMDYgMTE2QiAxMUMwOworQkFGQTtCQUZBOzExMDYgMTE2QiAxMUMxO0JBRkE7MTEwNiAxMTZCIDExQzE7CitCQUZCO0JBRkI7MTEwNiAxMTZCIDExQzI7QkFGQjsxMTA2IDExNkIgMTFDMjsKK0JBRkM7QkFGQzsxMTA2IDExNkM7QkFGQzsxMTA2IDExNkM7CitCQUZEO0JBRkQ7MTEwNiAxMTZDIDExQTg7QkFGRDsxMTA2IDExNkMgMTFBODsKK0JBRkU7QkFGRTsxMTA2IDExNkMgMTFBOTtCQUZFOzExMDYgMTE2QyAxMUE5OworQkFGRjtCQUZGOzExMDYgMTE2QyAxMUFBO0JBRkY7MTEwNiAxMTZDIDExQUE7CitCQjAwO0JCMDA7MTEwNiAxMTZDIDExQUI7QkIwMDsxMTA2IDExNkMgMTFBQjsKK0JCMDE7QkIwMTsxMTA2IDExNkMgMTFBQztCQjAxOzExMDYgMTE2QyAxMUFDOworQkIwMjtCQjAyOzExMDYgMTE2QyAxMUFEO0JCMDI7MTEwNiAxMTZDIDExQUQ7CitCQjAzO0JCMDM7MTEwNiAxMTZDIDExQUU7QkIwMzsxMTA2IDExNkMgMTFBRTsKK0JCMDQ7QkIwNDsxMTA2IDExNkMgMTFBRjtCQjA0OzExMDYgMTE2QyAxMUFGOworQkIwNTtCQjA1OzExMDYgMTE2QyAxMUIwO0JCMDU7MTEwNiAxMTZDIDExQjA7CitCQjA2O0JCMDY7MTEwNiAxMTZDIDExQjE7QkIwNjsxMTA2IDExNkMgMTFCMTsKK0JCMDc7QkIwNzsxMTA2IDExNkMgMTFCMjtCQjA3OzExMDYgMTE2QyAxMUIyOworQkIwODtCQjA4OzExMDYgMTE2QyAxMUIzO0JCMDg7MTEwNiAxMTZDIDExQjM7CitCQjA5O0JCMDk7MTEwNiAxMTZDIDExQjQ7QkIwOTsxMTA2IDExNkMgMTFCNDsKK0JCMEE7QkIwQTsxMTA2IDExNkMgMTFCNTtCQjBBOzExMDYgMTE2QyAxMUI1OworQkIwQjtCQjBCOzExMDYgMTE2QyAxMUI2O0JCMEI7MTEwNiAxMTZDIDExQjY7CitCQjBDO0JCMEM7MTEwNiAxMTZDIDExQjc7QkIwQzsxMTA2IDExNkMgMTFCNzsKK0JCMEQ7QkIwRDsxMTA2IDExNkMgMTFCODtCQjBEOzExMDYgMTE2QyAxMUI4OworQkIwRTtCQjBFOzExMDYgMTE2QyAxMUI5O0JCMEU7MTEwNiAxMTZDIDExQjk7CitCQjBGO0JCMEY7MTEwNiAxMTZDIDExQkE7QkIwRjsxMTA2IDExNkMgMTFCQTsKK0JCMTA7QkIxMDsxMTA2IDExNkMgMTFCQjtCQjEwOzExMDYgMTE2QyAxMUJCOworQkIxMTtCQjExOzExMDYgMTE2QyAxMUJDO0JCMTE7MTEwNiAxMTZDIDExQkM7CitCQjEyO0JCMTI7MTEwNiAxMTZDIDExQkQ7QkIxMjsxMTA2IDExNkMgMTFCRDsKK0JCMTM7QkIxMzsxMTA2IDExNkMgMTFCRTtCQjEzOzExMDYgMTE2QyAxMUJFOworQkIxNDtCQjE0OzExMDYgMTE2QyAxMUJGO0JCMTQ7MTEwNiAxMTZDIDExQkY7CitCQjE1O0JCMTU7MTEwNiAxMTZDIDExQzA7QkIxNTsxMTA2IDExNkMgMTFDMDsKK0JCMTY7QkIxNjsxMTA2IDExNkMgMTFDMTtCQjE2OzExMDYgMTE2QyAxMUMxOworQkIxNztCQjE3OzExMDYgMTE2QyAxMUMyO0JCMTc7MTEwNiAxMTZDIDExQzI7CitCQjE4O0JCMTg7MTEwNiAxMTZEO0JCMTg7MTEwNiAxMTZEOworQkIxOTtCQjE5OzExMDYgMTE2RCAxMUE4O0JCMTk7MTEwNiAxMTZEIDExQTg7CitCQjFBO0JCMUE7MTEwNiAxMTZEIDExQTk7QkIxQTsxMTA2IDExNkQgMTFBOTsKK0JCMUI7QkIxQjsxMTA2IDExNkQgMTFBQTtCQjFCOzExMDYgMTE2RCAxMUFBOworQkIxQztCQjFDOzExMDYgMTE2RCAxMUFCO0JCMUM7MTEwNiAxMTZEIDExQUI7CitCQjFEO0JCMUQ7MTEwNiAxMTZEIDExQUM7QkIxRDsxMTA2IDExNkQgMTFBQzsKK0JCMUU7QkIxRTsxMTA2IDExNkQgMTFBRDtCQjFFOzExMDYgMTE2RCAxMUFEOworQkIxRjtCQjFGOzExMDYgMTE2RCAxMUFFO0JCMUY7MTEwNiAxMTZEIDExQUU7CitCQjIwO0JCMjA7MTEwNiAxMTZEIDExQUY7QkIyMDsxMTA2IDExNkQgMTFBRjsKK0JCMjE7QkIyMTsxMTA2IDExNkQgMTFCMDtCQjIxOzExMDYgMTE2RCAxMUIwOworQkIyMjtCQjIyOzExMDYgMTE2RCAxMUIxO0JCMjI7MTEwNiAxMTZEIDExQjE7CitCQjIzO0JCMjM7MTEwNiAxMTZEIDExQjI7QkIyMzsxMTA2IDExNkQgMTFCMjsKK0JCMjQ7QkIyNDsxMTA2IDExNkQgMTFCMztCQjI0OzExMDYgMTE2RCAxMUIzOworQkIyNTtCQjI1OzExMDYgMTE2RCAxMUI0O0JCMjU7MTEwNiAxMTZEIDExQjQ7CitCQjI2O0JCMjY7MTEwNiAxMTZEIDExQjU7QkIyNjsxMTA2IDExNkQgMTFCNTsKK0JCMjc7QkIyNzsxMTA2IDExNkQgMTFCNjtCQjI3OzExMDYgMTE2RCAxMUI2OworQkIyODtCQjI4OzExMDYgMTE2RCAxMUI3O0JCMjg7MTEwNiAxMTZEIDExQjc7CitCQjI5O0JCMjk7MTEwNiAxMTZEIDExQjg7QkIyOTsxMTA2IDExNkQgMTFCODsKK0JCMkE7QkIyQTsxMTA2IDExNkQgMTFCOTtCQjJBOzExMDYgMTE2RCAxMUI5OworQkIyQjtCQjJCOzExMDYgMTE2RCAxMUJBO0JCMkI7MTEwNiAxMTZEIDExQkE7CitCQjJDO0JCMkM7MTEwNiAxMTZEIDExQkI7QkIyQzsxMTA2IDExNkQgMTFCQjsKK0JCMkQ7QkIyRDsxMTA2IDExNkQgMTFCQztCQjJEOzExMDYgMTE2RCAxMUJDOworQkIyRTtCQjJFOzExMDYgMTE2RCAxMUJEO0JCMkU7MTEwNiAxMTZEIDExQkQ7CitCQjJGO0JCMkY7MTEwNiAxMTZEIDExQkU7QkIyRjsxMTA2IDExNkQgMTFCRTsKK0JCMzA7QkIzMDsxMTA2IDExNkQgMTFCRjtCQjMwOzExMDYgMTE2RCAxMUJGOworQkIzMTtCQjMxOzExMDYgMTE2RCAxMUMwO0JCMzE7MTEwNiAxMTZEIDExQzA7CitCQjMyO0JCMzI7MTEwNiAxMTZEIDExQzE7QkIzMjsxMTA2IDExNkQgMTFDMTsKK0JCMzM7QkIzMzsxMTA2IDExNkQgMTFDMjtCQjMzOzExMDYgMTE2RCAxMUMyOworQkIzNDtCQjM0OzExMDYgMTE2RTtCQjM0OzExMDYgMTE2RTsKK0JCMzU7QkIzNTsxMTA2IDExNkUgMTFBODtCQjM1OzExMDYgMTE2RSAxMUE4OworQkIzNjtCQjM2OzExMDYgMTE2RSAxMUE5O0JCMzY7MTEwNiAxMTZFIDExQTk7CitCQjM3O0JCMzc7MTEwNiAxMTZFIDExQUE7QkIzNzsxMTA2IDExNkUgMTFBQTsKK0JCMzg7QkIzODsxMTA2IDExNkUgMTFBQjtCQjM4OzExMDYgMTE2RSAxMUFCOworQkIzOTtCQjM5OzExMDYgMTE2RSAxMUFDO0JCMzk7MTEwNiAxMTZFIDExQUM7CitCQjNBO0JCM0E7MTEwNiAxMTZFIDExQUQ7QkIzQTsxMTA2IDExNkUgMTFBRDsKK0JCM0I7QkIzQjsxMTA2IDExNkUgMTFBRTtCQjNCOzExMDYgMTE2RSAxMUFFOworQkIzQztCQjNDOzExMDYgMTE2RSAxMUFGO0JCM0M7MTEwNiAxMTZFIDExQUY7CitCQjNEO0JCM0Q7MTEwNiAxMTZFIDExQjA7QkIzRDsxMTA2IDExNkUgMTFCMDsKK0JCM0U7QkIzRTsxMTA2IDExNkUgMTFCMTtCQjNFOzExMDYgMTE2RSAxMUIxOworQkIzRjtCQjNGOzExMDYgMTE2RSAxMUIyO0JCM0Y7MTEwNiAxMTZFIDExQjI7CitCQjQwO0JCNDA7MTEwNiAxMTZFIDExQjM7QkI0MDsxMTA2IDExNkUgMTFCMzsKK0JCNDE7QkI0MTsxMTA2IDExNkUgMTFCNDtCQjQxOzExMDYgMTE2RSAxMUI0OworQkI0MjtCQjQyOzExMDYgMTE2RSAxMUI1O0JCNDI7MTEwNiAxMTZFIDExQjU7CitCQjQzO0JCNDM7MTEwNiAxMTZFIDExQjY7QkI0MzsxMTA2IDExNkUgMTFCNjsKK0JCNDQ7QkI0NDsxMTA2IDExNkUgMTFCNztCQjQ0OzExMDYgMTE2RSAxMUI3OworQkI0NTtCQjQ1OzExMDYgMTE2RSAxMUI4O0JCNDU7MTEwNiAxMTZFIDExQjg7CitCQjQ2O0JCNDY7MTEwNiAxMTZFIDExQjk7QkI0NjsxMTA2IDExNkUgMTFCOTsKK0JCNDc7QkI0NzsxMTA2IDExNkUgMTFCQTtCQjQ3OzExMDYgMTE2RSAxMUJBOworQkI0ODtCQjQ4OzExMDYgMTE2RSAxMUJCO0JCNDg7MTEwNiAxMTZFIDExQkI7CitCQjQ5O0JCNDk7MTEwNiAxMTZFIDExQkM7QkI0OTsxMTA2IDExNkUgMTFCQzsKK0JCNEE7QkI0QTsxMTA2IDExNkUgMTFCRDtCQjRBOzExMDYgMTE2RSAxMUJEOworQkI0QjtCQjRCOzExMDYgMTE2RSAxMUJFO0JCNEI7MTEwNiAxMTZFIDExQkU7CitCQjRDO0JCNEM7MTEwNiAxMTZFIDExQkY7QkI0QzsxMTA2IDExNkUgMTFCRjsKK0JCNEQ7QkI0RDsxMTA2IDExNkUgMTFDMDtCQjREOzExMDYgMTE2RSAxMUMwOworQkI0RTtCQjRFOzExMDYgMTE2RSAxMUMxO0JCNEU7MTEwNiAxMTZFIDExQzE7CitCQjRGO0JCNEY7MTEwNiAxMTZFIDExQzI7QkI0RjsxMTA2IDExNkUgMTFDMjsKK0JCNTA7QkI1MDsxMTA2IDExNkY7QkI1MDsxMTA2IDExNkY7CitCQjUxO0JCNTE7MTEwNiAxMTZGIDExQTg7QkI1MTsxMTA2IDExNkYgMTFBODsKK0JCNTI7QkI1MjsxMTA2IDExNkYgMTFBOTtCQjUyOzExMDYgMTE2RiAxMUE5OworQkI1MztCQjUzOzExMDYgMTE2RiAxMUFBO0JCNTM7MTEwNiAxMTZGIDExQUE7CitCQjU0O0JCNTQ7MTEwNiAxMTZGIDExQUI7QkI1NDsxMTA2IDExNkYgMTFBQjsKK0JCNTU7QkI1NTsxMTA2IDExNkYgMTFBQztCQjU1OzExMDYgMTE2RiAxMUFDOworQkI1NjtCQjU2OzExMDYgMTE2RiAxMUFEO0JCNTY7MTEwNiAxMTZGIDExQUQ7CitCQjU3O0JCNTc7MTEwNiAxMTZGIDExQUU7QkI1NzsxMTA2IDExNkYgMTFBRTsKK0JCNTg7QkI1ODsxMTA2IDExNkYgMTFBRjtCQjU4OzExMDYgMTE2RiAxMUFGOworQkI1OTtCQjU5OzExMDYgMTE2RiAxMUIwO0JCNTk7MTEwNiAxMTZGIDExQjA7CitCQjVBO0JCNUE7MTEwNiAxMTZGIDExQjE7QkI1QTsxMTA2IDExNkYgMTFCMTsKK0JCNUI7QkI1QjsxMTA2IDExNkYgMTFCMjtCQjVCOzExMDYgMTE2RiAxMUIyOworQkI1QztCQjVDOzExMDYgMTE2RiAxMUIzO0JCNUM7MTEwNiAxMTZGIDExQjM7CitCQjVEO0JCNUQ7MTEwNiAxMTZGIDExQjQ7QkI1RDsxMTA2IDExNkYgMTFCNDsKK0JCNUU7QkI1RTsxMTA2IDExNkYgMTFCNTtCQjVFOzExMDYgMTE2RiAxMUI1OworQkI1RjtCQjVGOzExMDYgMTE2RiAxMUI2O0JCNUY7MTEwNiAxMTZGIDExQjY7CitCQjYwO0JCNjA7MTEwNiAxMTZGIDExQjc7QkI2MDsxMTA2IDExNkYgMTFCNzsKK0JCNjE7QkI2MTsxMTA2IDExNkYgMTFCODtCQjYxOzExMDYgMTE2RiAxMUI4OworQkI2MjtCQjYyOzExMDYgMTE2RiAxMUI5O0JCNjI7MTEwNiAxMTZGIDExQjk7CitCQjYzO0JCNjM7MTEwNiAxMTZGIDExQkE7QkI2MzsxMTA2IDExNkYgMTFCQTsKK0JCNjQ7QkI2NDsxMTA2IDExNkYgMTFCQjtCQjY0OzExMDYgMTE2RiAxMUJCOworQkI2NTtCQjY1OzExMDYgMTE2RiAxMUJDO0JCNjU7MTEwNiAxMTZGIDExQkM7CitCQjY2O0JCNjY7MTEwNiAxMTZGIDExQkQ7QkI2NjsxMTA2IDExNkYgMTFCRDsKK0JCNjc7QkI2NzsxMTA2IDExNkYgMTFCRTtCQjY3OzExMDYgMTE2RiAxMUJFOworQkI2ODtCQjY4OzExMDYgMTE2RiAxMUJGO0JCNjg7MTEwNiAxMTZGIDExQkY7CitCQjY5O0JCNjk7MTEwNiAxMTZGIDExQzA7QkI2OTsxMTA2IDExNkYgMTFDMDsKK0JCNkE7QkI2QTsxMTA2IDExNkYgMTFDMTtCQjZBOzExMDYgMTE2RiAxMUMxOworQkI2QjtCQjZCOzExMDYgMTE2RiAxMUMyO0JCNkI7MTEwNiAxMTZGIDExQzI7CitCQjZDO0JCNkM7MTEwNiAxMTcwO0JCNkM7MTEwNiAxMTcwOworQkI2RDtCQjZEOzExMDYgMTE3MCAxMUE4O0JCNkQ7MTEwNiAxMTcwIDExQTg7CitCQjZFO0JCNkU7MTEwNiAxMTcwIDExQTk7QkI2RTsxMTA2IDExNzAgMTFBOTsKK0JCNkY7QkI2RjsxMTA2IDExNzAgMTFBQTtCQjZGOzExMDYgMTE3MCAxMUFBOworQkI3MDtCQjcwOzExMDYgMTE3MCAxMUFCO0JCNzA7MTEwNiAxMTcwIDExQUI7CitCQjcxO0JCNzE7MTEwNiAxMTcwIDExQUM7QkI3MTsxMTA2IDExNzAgMTFBQzsKK0JCNzI7QkI3MjsxMTA2IDExNzAgMTFBRDtCQjcyOzExMDYgMTE3MCAxMUFEOworQkI3MztCQjczOzExMDYgMTE3MCAxMUFFO0JCNzM7MTEwNiAxMTcwIDExQUU7CitCQjc0O0JCNzQ7MTEwNiAxMTcwIDExQUY7QkI3NDsxMTA2IDExNzAgMTFBRjsKK0JCNzU7QkI3NTsxMTA2IDExNzAgMTFCMDtCQjc1OzExMDYgMTE3MCAxMUIwOworQkI3NjtCQjc2OzExMDYgMTE3MCAxMUIxO0JCNzY7MTEwNiAxMTcwIDExQjE7CitCQjc3O0JCNzc7MTEwNiAxMTcwIDExQjI7QkI3NzsxMTA2IDExNzAgMTFCMjsKK0JCNzg7QkI3ODsxMTA2IDExNzAgMTFCMztCQjc4OzExMDYgMTE3MCAxMUIzOworQkI3OTtCQjc5OzExMDYgMTE3MCAxMUI0O0JCNzk7MTEwNiAxMTcwIDExQjQ7CitCQjdBO0JCN0E7MTEwNiAxMTcwIDExQjU7QkI3QTsxMTA2IDExNzAgMTFCNTsKK0JCN0I7QkI3QjsxMTA2IDExNzAgMTFCNjtCQjdCOzExMDYgMTE3MCAxMUI2OworQkI3QztCQjdDOzExMDYgMTE3MCAxMUI3O0JCN0M7MTEwNiAxMTcwIDExQjc7CitCQjdEO0JCN0Q7MTEwNiAxMTcwIDExQjg7QkI3RDsxMTA2IDExNzAgMTFCODsKK0JCN0U7QkI3RTsxMTA2IDExNzAgMTFCOTtCQjdFOzExMDYgMTE3MCAxMUI5OworQkI3RjtCQjdGOzExMDYgMTE3MCAxMUJBO0JCN0Y7MTEwNiAxMTcwIDExQkE7CitCQjgwO0JCODA7MTEwNiAxMTcwIDExQkI7QkI4MDsxMTA2IDExNzAgMTFCQjsKK0JCODE7QkI4MTsxMTA2IDExNzAgMTFCQztCQjgxOzExMDYgMTE3MCAxMUJDOworQkI4MjtCQjgyOzExMDYgMTE3MCAxMUJEO0JCODI7MTEwNiAxMTcwIDExQkQ7CitCQjgzO0JCODM7MTEwNiAxMTcwIDExQkU7QkI4MzsxMTA2IDExNzAgMTFCRTsKK0JCODQ7QkI4NDsxMTA2IDExNzAgMTFCRjtCQjg0OzExMDYgMTE3MCAxMUJGOworQkI4NTtCQjg1OzExMDYgMTE3MCAxMUMwO0JCODU7MTEwNiAxMTcwIDExQzA7CitCQjg2O0JCODY7MTEwNiAxMTcwIDExQzE7QkI4NjsxMTA2IDExNzAgMTFDMTsKK0JCODc7QkI4NzsxMTA2IDExNzAgMTFDMjtCQjg3OzExMDYgMTE3MCAxMUMyOworQkI4ODtCQjg4OzExMDYgMTE3MTtCQjg4OzExMDYgMTE3MTsKK0JCODk7QkI4OTsxMTA2IDExNzEgMTFBODtCQjg5OzExMDYgMTE3MSAxMUE4OworQkI4QTtCQjhBOzExMDYgMTE3MSAxMUE5O0JCOEE7MTEwNiAxMTcxIDExQTk7CitCQjhCO0JCOEI7MTEwNiAxMTcxIDExQUE7QkI4QjsxMTA2IDExNzEgMTFBQTsKK0JCOEM7QkI4QzsxMTA2IDExNzEgMTFBQjtCQjhDOzExMDYgMTE3MSAxMUFCOworQkI4RDtCQjhEOzExMDYgMTE3MSAxMUFDO0JCOEQ7MTEwNiAxMTcxIDExQUM7CitCQjhFO0JCOEU7MTEwNiAxMTcxIDExQUQ7QkI4RTsxMTA2IDExNzEgMTFBRDsKK0JCOEY7QkI4RjsxMTA2IDExNzEgMTFBRTtCQjhGOzExMDYgMTE3MSAxMUFFOworQkI5MDtCQjkwOzExMDYgMTE3MSAxMUFGO0JCOTA7MTEwNiAxMTcxIDExQUY7CitCQjkxO0JCOTE7MTEwNiAxMTcxIDExQjA7QkI5MTsxMTA2IDExNzEgMTFCMDsKK0JCOTI7QkI5MjsxMTA2IDExNzEgMTFCMTtCQjkyOzExMDYgMTE3MSAxMUIxOworQkI5MztCQjkzOzExMDYgMTE3MSAxMUIyO0JCOTM7MTEwNiAxMTcxIDExQjI7CitCQjk0O0JCOTQ7MTEwNiAxMTcxIDExQjM7QkI5NDsxMTA2IDExNzEgMTFCMzsKK0JCOTU7QkI5NTsxMTA2IDExNzEgMTFCNDtCQjk1OzExMDYgMTE3MSAxMUI0OworQkI5NjtCQjk2OzExMDYgMTE3MSAxMUI1O0JCOTY7MTEwNiAxMTcxIDExQjU7CitCQjk3O0JCOTc7MTEwNiAxMTcxIDExQjY7QkI5NzsxMTA2IDExNzEgMTFCNjsKK0JCOTg7QkI5ODsxMTA2IDExNzEgMTFCNztCQjk4OzExMDYgMTE3MSAxMUI3OworQkI5OTtCQjk5OzExMDYgMTE3MSAxMUI4O0JCOTk7MTEwNiAxMTcxIDExQjg7CitCQjlBO0JCOUE7MTEwNiAxMTcxIDExQjk7QkI5QTsxMTA2IDExNzEgMTFCOTsKK0JCOUI7QkI5QjsxMTA2IDExNzEgMTFCQTtCQjlCOzExMDYgMTE3MSAxMUJBOworQkI5QztCQjlDOzExMDYgMTE3MSAxMUJCO0JCOUM7MTEwNiAxMTcxIDExQkI7CitCQjlEO0JCOUQ7MTEwNiAxMTcxIDExQkM7QkI5RDsxMTA2IDExNzEgMTFCQzsKK0JCOUU7QkI5RTsxMTA2IDExNzEgMTFCRDtCQjlFOzExMDYgMTE3MSAxMUJEOworQkI5RjtCQjlGOzExMDYgMTE3MSAxMUJFO0JCOUY7MTEwNiAxMTcxIDExQkU7CitCQkEwO0JCQTA7MTEwNiAxMTcxIDExQkY7QkJBMDsxMTA2IDExNzEgMTFCRjsKK0JCQTE7QkJBMTsxMTA2IDExNzEgMTFDMDtCQkExOzExMDYgMTE3MSAxMUMwOworQkJBMjtCQkEyOzExMDYgMTE3MSAxMUMxO0JCQTI7MTEwNiAxMTcxIDExQzE7CitCQkEzO0JCQTM7MTEwNiAxMTcxIDExQzI7QkJBMzsxMTA2IDExNzEgMTFDMjsKK0JCQTQ7QkJBNDsxMTA2IDExNzI7QkJBNDsxMTA2IDExNzI7CitCQkE1O0JCQTU7MTEwNiAxMTcyIDExQTg7QkJBNTsxMTA2IDExNzIgMTFBODsKK0JCQTY7QkJBNjsxMTA2IDExNzIgMTFBOTtCQkE2OzExMDYgMTE3MiAxMUE5OworQkJBNztCQkE3OzExMDYgMTE3MiAxMUFBO0JCQTc7MTEwNiAxMTcyIDExQUE7CitCQkE4O0JCQTg7MTEwNiAxMTcyIDExQUI7QkJBODsxMTA2IDExNzIgMTFBQjsKK0JCQTk7QkJBOTsxMTA2IDExNzIgMTFBQztCQkE5OzExMDYgMTE3MiAxMUFDOworQkJBQTtCQkFBOzExMDYgMTE3MiAxMUFEO0JCQUE7MTEwNiAxMTcyIDExQUQ7CitCQkFCO0JCQUI7MTEwNiAxMTcyIDExQUU7QkJBQjsxMTA2IDExNzIgMTFBRTsKK0JCQUM7QkJBQzsxMTA2IDExNzIgMTFBRjtCQkFDOzExMDYgMTE3MiAxMUFGOworQkJBRDtCQkFEOzExMDYgMTE3MiAxMUIwO0JCQUQ7MTEwNiAxMTcyIDExQjA7CitCQkFFO0JCQUU7MTEwNiAxMTcyIDExQjE7QkJBRTsxMTA2IDExNzIgMTFCMTsKK0JCQUY7QkJBRjsxMTA2IDExNzIgMTFCMjtCQkFGOzExMDYgMTE3MiAxMUIyOworQkJCMDtCQkIwOzExMDYgMTE3MiAxMUIzO0JCQjA7MTEwNiAxMTcyIDExQjM7CitCQkIxO0JCQjE7MTEwNiAxMTcyIDExQjQ7QkJCMTsxMTA2IDExNzIgMTFCNDsKK0JCQjI7QkJCMjsxMTA2IDExNzIgMTFCNTtCQkIyOzExMDYgMTE3MiAxMUI1OworQkJCMztCQkIzOzExMDYgMTE3MiAxMUI2O0JCQjM7MTEwNiAxMTcyIDExQjY7CitCQkI0O0JCQjQ7MTEwNiAxMTcyIDExQjc7QkJCNDsxMTA2IDExNzIgMTFCNzsKK0JCQjU7QkJCNTsxMTA2IDExNzIgMTFCODtCQkI1OzExMDYgMTE3MiAxMUI4OworQkJCNjtCQkI2OzExMDYgMTE3MiAxMUI5O0JCQjY7MTEwNiAxMTcyIDExQjk7CitCQkI3O0JCQjc7MTEwNiAxMTcyIDExQkE7QkJCNzsxMTA2IDExNzIgMTFCQTsKK0JCQjg7QkJCODsxMTA2IDExNzIgMTFCQjtCQkI4OzExMDYgMTE3MiAxMUJCOworQkJCOTtCQkI5OzExMDYgMTE3MiAxMUJDO0JCQjk7MTEwNiAxMTcyIDExQkM7CitCQkJBO0JCQkE7MTEwNiAxMTcyIDExQkQ7QkJCQTsxMTA2IDExNzIgMTFCRDsKK0JCQkI7QkJCQjsxMTA2IDExNzIgMTFCRTtCQkJCOzExMDYgMTE3MiAxMUJFOworQkJCQztCQkJDOzExMDYgMTE3MiAxMUJGO0JCQkM7MTEwNiAxMTcyIDExQkY7CitCQkJEO0JCQkQ7MTEwNiAxMTcyIDExQzA7QkJCRDsxMTA2IDExNzIgMTFDMDsKK0JCQkU7QkJCRTsxMTA2IDExNzIgMTFDMTtCQkJFOzExMDYgMTE3MiAxMUMxOworQkJCRjtCQkJGOzExMDYgMTE3MiAxMUMyO0JCQkY7MTEwNiAxMTcyIDExQzI7CitCQkMwO0JCQzA7MTEwNiAxMTczO0JCQzA7MTEwNiAxMTczOworQkJDMTtCQkMxOzExMDYgMTE3MyAxMUE4O0JCQzE7MTEwNiAxMTczIDExQTg7CitCQkMyO0JCQzI7MTEwNiAxMTczIDExQTk7QkJDMjsxMTA2IDExNzMgMTFBOTsKK0JCQzM7QkJDMzsxMTA2IDExNzMgMTFBQTtCQkMzOzExMDYgMTE3MyAxMUFBOworQkJDNDtCQkM0OzExMDYgMTE3MyAxMUFCO0JCQzQ7MTEwNiAxMTczIDExQUI7CitCQkM1O0JCQzU7MTEwNiAxMTczIDExQUM7QkJDNTsxMTA2IDExNzMgMTFBQzsKK0JCQzY7QkJDNjsxMTA2IDExNzMgMTFBRDtCQkM2OzExMDYgMTE3MyAxMUFEOworQkJDNztCQkM3OzExMDYgMTE3MyAxMUFFO0JCQzc7MTEwNiAxMTczIDExQUU7CitCQkM4O0JCQzg7MTEwNiAxMTczIDExQUY7QkJDODsxMTA2IDExNzMgMTFBRjsKK0JCQzk7QkJDOTsxMTA2IDExNzMgMTFCMDtCQkM5OzExMDYgMTE3MyAxMUIwOworQkJDQTtCQkNBOzExMDYgMTE3MyAxMUIxO0JCQ0E7MTEwNiAxMTczIDExQjE7CitCQkNCO0JCQ0I7MTEwNiAxMTczIDExQjI7QkJDQjsxMTA2IDExNzMgMTFCMjsKK0JCQ0M7QkJDQzsxMTA2IDExNzMgMTFCMztCQkNDOzExMDYgMTE3MyAxMUIzOworQkJDRDtCQkNEOzExMDYgMTE3MyAxMUI0O0JCQ0Q7MTEwNiAxMTczIDExQjQ7CitCQkNFO0JCQ0U7MTEwNiAxMTczIDExQjU7QkJDRTsxMTA2IDExNzMgMTFCNTsKK0JCQ0Y7QkJDRjsxMTA2IDExNzMgMTFCNjtCQkNGOzExMDYgMTE3MyAxMUI2OworQkJEMDtCQkQwOzExMDYgMTE3MyAxMUI3O0JCRDA7MTEwNiAxMTczIDExQjc7CitCQkQxO0JCRDE7MTEwNiAxMTczIDExQjg7QkJEMTsxMTA2IDExNzMgMTFCODsKK0JCRDI7QkJEMjsxMTA2IDExNzMgMTFCOTtCQkQyOzExMDYgMTE3MyAxMUI5OworQkJEMztCQkQzOzExMDYgMTE3MyAxMUJBO0JCRDM7MTEwNiAxMTczIDExQkE7CitCQkQ0O0JCRDQ7MTEwNiAxMTczIDExQkI7QkJENDsxMTA2IDExNzMgMTFCQjsKK0JCRDU7QkJENTsxMTA2IDExNzMgMTFCQztCQkQ1OzExMDYgMTE3MyAxMUJDOworQkJENjtCQkQ2OzExMDYgMTE3MyAxMUJEO0JCRDY7MTEwNiAxMTczIDExQkQ7CitCQkQ3O0JCRDc7MTEwNiAxMTczIDExQkU7QkJENzsxMTA2IDExNzMgMTFCRTsKK0JCRDg7QkJEODsxMTA2IDExNzMgMTFCRjtCQkQ4OzExMDYgMTE3MyAxMUJGOworQkJEOTtCQkQ5OzExMDYgMTE3MyAxMUMwO0JCRDk7MTEwNiAxMTczIDExQzA7CitCQkRBO0JCREE7MTEwNiAxMTczIDExQzE7QkJEQTsxMTA2IDExNzMgMTFDMTsKK0JCREI7QkJEQjsxMTA2IDExNzMgMTFDMjtCQkRCOzExMDYgMTE3MyAxMUMyOworQkJEQztCQkRDOzExMDYgMTE3NDtCQkRDOzExMDYgMTE3NDsKK0JCREQ7QkJERDsxMTA2IDExNzQgMTFBODtCQkREOzExMDYgMTE3NCAxMUE4OworQkJERTtCQkRFOzExMDYgMTE3NCAxMUE5O0JCREU7MTEwNiAxMTc0IDExQTk7CitCQkRGO0JCREY7MTEwNiAxMTc0IDExQUE7QkJERjsxMTA2IDExNzQgMTFBQTsKK0JCRTA7QkJFMDsxMTA2IDExNzQgMTFBQjtCQkUwOzExMDYgMTE3NCAxMUFCOworQkJFMTtCQkUxOzExMDYgMTE3NCAxMUFDO0JCRTE7MTEwNiAxMTc0IDExQUM7CitCQkUyO0JCRTI7MTEwNiAxMTc0IDExQUQ7QkJFMjsxMTA2IDExNzQgMTFBRDsKK0JCRTM7QkJFMzsxMTA2IDExNzQgMTFBRTtCQkUzOzExMDYgMTE3NCAxMUFFOworQkJFNDtCQkU0OzExMDYgMTE3NCAxMUFGO0JCRTQ7MTEwNiAxMTc0IDExQUY7CitCQkU1O0JCRTU7MTEwNiAxMTc0IDExQjA7QkJFNTsxMTA2IDExNzQgMTFCMDsKK0JCRTY7QkJFNjsxMTA2IDExNzQgMTFCMTtCQkU2OzExMDYgMTE3NCAxMUIxOworQkJFNztCQkU3OzExMDYgMTE3NCAxMUIyO0JCRTc7MTEwNiAxMTc0IDExQjI7CitCQkU4O0JCRTg7MTEwNiAxMTc0IDExQjM7QkJFODsxMTA2IDExNzQgMTFCMzsKK0JCRTk7QkJFOTsxMTA2IDExNzQgMTFCNDtCQkU5OzExMDYgMTE3NCAxMUI0OworQkJFQTtCQkVBOzExMDYgMTE3NCAxMUI1O0JCRUE7MTEwNiAxMTc0IDExQjU7CitCQkVCO0JCRUI7MTEwNiAxMTc0IDExQjY7QkJFQjsxMTA2IDExNzQgMTFCNjsKK0JCRUM7QkJFQzsxMTA2IDExNzQgMTFCNztCQkVDOzExMDYgMTE3NCAxMUI3OworQkJFRDtCQkVEOzExMDYgMTE3NCAxMUI4O0JCRUQ7MTEwNiAxMTc0IDExQjg7CitCQkVFO0JCRUU7MTEwNiAxMTc0IDExQjk7QkJFRTsxMTA2IDExNzQgMTFCOTsKK0JCRUY7QkJFRjsxMTA2IDExNzQgMTFCQTtCQkVGOzExMDYgMTE3NCAxMUJBOworQkJGMDtCQkYwOzExMDYgMTE3NCAxMUJCO0JCRjA7MTEwNiAxMTc0IDExQkI7CitCQkYxO0JCRjE7MTEwNiAxMTc0IDExQkM7QkJGMTsxMTA2IDExNzQgMTFCQzsKK0JCRjI7QkJGMjsxMTA2IDExNzQgMTFCRDtCQkYyOzExMDYgMTE3NCAxMUJEOworQkJGMztCQkYzOzExMDYgMTE3NCAxMUJFO0JCRjM7MTEwNiAxMTc0IDExQkU7CitCQkY0O0JCRjQ7MTEwNiAxMTc0IDExQkY7QkJGNDsxMTA2IDExNzQgMTFCRjsKK0JCRjU7QkJGNTsxMTA2IDExNzQgMTFDMDtCQkY1OzExMDYgMTE3NCAxMUMwOworQkJGNjtCQkY2OzExMDYgMTE3NCAxMUMxO0JCRjY7MTEwNiAxMTc0IDExQzE7CitCQkY3O0JCRjc7MTEwNiAxMTc0IDExQzI7QkJGNzsxMTA2IDExNzQgMTFDMjsKK0JCRjg7QkJGODsxMTA2IDExNzU7QkJGODsxMTA2IDExNzU7CitCQkY5O0JCRjk7MTEwNiAxMTc1IDExQTg7QkJGOTsxMTA2IDExNzUgMTFBODsKK0JCRkE7QkJGQTsxMTA2IDExNzUgMTFBOTtCQkZBOzExMDYgMTE3NSAxMUE5OworQkJGQjtCQkZCOzExMDYgMTE3NSAxMUFBO0JCRkI7MTEwNiAxMTc1IDExQUE7CitCQkZDO0JCRkM7MTEwNiAxMTc1IDExQUI7QkJGQzsxMTA2IDExNzUgMTFBQjsKK0JCRkQ7QkJGRDsxMTA2IDExNzUgMTFBQztCQkZEOzExMDYgMTE3NSAxMUFDOworQkJGRTtCQkZFOzExMDYgMTE3NSAxMUFEO0JCRkU7MTEwNiAxMTc1IDExQUQ7CitCQkZGO0JCRkY7MTEwNiAxMTc1IDExQUU7QkJGRjsxMTA2IDExNzUgMTFBRTsKK0JDMDA7QkMwMDsxMTA2IDExNzUgMTFBRjtCQzAwOzExMDYgMTE3NSAxMUFGOworQkMwMTtCQzAxOzExMDYgMTE3NSAxMUIwO0JDMDE7MTEwNiAxMTc1IDExQjA7CitCQzAyO0JDMDI7MTEwNiAxMTc1IDExQjE7QkMwMjsxMTA2IDExNzUgMTFCMTsKK0JDMDM7QkMwMzsxMTA2IDExNzUgMTFCMjtCQzAzOzExMDYgMTE3NSAxMUIyOworQkMwNDtCQzA0OzExMDYgMTE3NSAxMUIzO0JDMDQ7MTEwNiAxMTc1IDExQjM7CitCQzA1O0JDMDU7MTEwNiAxMTc1IDExQjQ7QkMwNTsxMTA2IDExNzUgMTFCNDsKK0JDMDY7QkMwNjsxMTA2IDExNzUgMTFCNTtCQzA2OzExMDYgMTE3NSAxMUI1OworQkMwNztCQzA3OzExMDYgMTE3NSAxMUI2O0JDMDc7MTEwNiAxMTc1IDExQjY7CitCQzA4O0JDMDg7MTEwNiAxMTc1IDExQjc7QkMwODsxMTA2IDExNzUgMTFCNzsKK0JDMDk7QkMwOTsxMTA2IDExNzUgMTFCODtCQzA5OzExMDYgMTE3NSAxMUI4OworQkMwQTtCQzBBOzExMDYgMTE3NSAxMUI5O0JDMEE7MTEwNiAxMTc1IDExQjk7CitCQzBCO0JDMEI7MTEwNiAxMTc1IDExQkE7QkMwQjsxMTA2IDExNzUgMTFCQTsKK0JDMEM7QkMwQzsxMTA2IDExNzUgMTFCQjtCQzBDOzExMDYgMTE3NSAxMUJCOworQkMwRDtCQzBEOzExMDYgMTE3NSAxMUJDO0JDMEQ7MTEwNiAxMTc1IDExQkM7CitCQzBFO0JDMEU7MTEwNiAxMTc1IDExQkQ7QkMwRTsxMTA2IDExNzUgMTFCRDsKK0JDMEY7QkMwRjsxMTA2IDExNzUgMTFCRTtCQzBGOzExMDYgMTE3NSAxMUJFOworQkMxMDtCQzEwOzExMDYgMTE3NSAxMUJGO0JDMTA7MTEwNiAxMTc1IDExQkY7CitCQzExO0JDMTE7MTEwNiAxMTc1IDExQzA7QkMxMTsxMTA2IDExNzUgMTFDMDsKK0JDMTI7QkMxMjsxMTA2IDExNzUgMTFDMTtCQzEyOzExMDYgMTE3NSAxMUMxOworQkMxMztCQzEzOzExMDYgMTE3NSAxMUMyO0JDMTM7MTEwNiAxMTc1IDExQzI7CitCQzE0O0JDMTQ7MTEwNyAxMTYxO0JDMTQ7MTEwNyAxMTYxOworQkMxNTtCQzE1OzExMDcgMTE2MSAxMUE4O0JDMTU7MTEwNyAxMTYxIDExQTg7CitCQzE2O0JDMTY7MTEwNyAxMTYxIDExQTk7QkMxNjsxMTA3IDExNjEgMTFBOTsKK0JDMTc7QkMxNzsxMTA3IDExNjEgMTFBQTtCQzE3OzExMDcgMTE2MSAxMUFBOworQkMxODtCQzE4OzExMDcgMTE2MSAxMUFCO0JDMTg7MTEwNyAxMTYxIDExQUI7CitCQzE5O0JDMTk7MTEwNyAxMTYxIDExQUM7QkMxOTsxMTA3IDExNjEgMTFBQzsKK0JDMUE7QkMxQTsxMTA3IDExNjEgMTFBRDtCQzFBOzExMDcgMTE2MSAxMUFEOworQkMxQjtCQzFCOzExMDcgMTE2MSAxMUFFO0JDMUI7MTEwNyAxMTYxIDExQUU7CitCQzFDO0JDMUM7MTEwNyAxMTYxIDExQUY7QkMxQzsxMTA3IDExNjEgMTFBRjsKK0JDMUQ7QkMxRDsxMTA3IDExNjEgMTFCMDtCQzFEOzExMDcgMTE2MSAxMUIwOworQkMxRTtCQzFFOzExMDcgMTE2MSAxMUIxO0JDMUU7MTEwNyAxMTYxIDExQjE7CitCQzFGO0JDMUY7MTEwNyAxMTYxIDExQjI7QkMxRjsxMTA3IDExNjEgMTFCMjsKK0JDMjA7QkMyMDsxMTA3IDExNjEgMTFCMztCQzIwOzExMDcgMTE2MSAxMUIzOworQkMyMTtCQzIxOzExMDcgMTE2MSAxMUI0O0JDMjE7MTEwNyAxMTYxIDExQjQ7CitCQzIyO0JDMjI7MTEwNyAxMTYxIDExQjU7QkMyMjsxMTA3IDExNjEgMTFCNTsKK0JDMjM7QkMyMzsxMTA3IDExNjEgMTFCNjtCQzIzOzExMDcgMTE2MSAxMUI2OworQkMyNDtCQzI0OzExMDcgMTE2MSAxMUI3O0JDMjQ7MTEwNyAxMTYxIDExQjc7CitCQzI1O0JDMjU7MTEwNyAxMTYxIDExQjg7QkMyNTsxMTA3IDExNjEgMTFCODsKK0JDMjY7QkMyNjsxMTA3IDExNjEgMTFCOTtCQzI2OzExMDcgMTE2MSAxMUI5OworQkMyNztCQzI3OzExMDcgMTE2MSAxMUJBO0JDMjc7MTEwNyAxMTYxIDExQkE7CitCQzI4O0JDMjg7MTEwNyAxMTYxIDExQkI7QkMyODsxMTA3IDExNjEgMTFCQjsKK0JDMjk7QkMyOTsxMTA3IDExNjEgMTFCQztCQzI5OzExMDcgMTE2MSAxMUJDOworQkMyQTtCQzJBOzExMDcgMTE2MSAxMUJEO0JDMkE7MTEwNyAxMTYxIDExQkQ7CitCQzJCO0JDMkI7MTEwNyAxMTYxIDExQkU7QkMyQjsxMTA3IDExNjEgMTFCRTsKK0JDMkM7QkMyQzsxMTA3IDExNjEgMTFCRjtCQzJDOzExMDcgMTE2MSAxMUJGOworQkMyRDtCQzJEOzExMDcgMTE2MSAxMUMwO0JDMkQ7MTEwNyAxMTYxIDExQzA7CitCQzJFO0JDMkU7MTEwNyAxMTYxIDExQzE7QkMyRTsxMTA3IDExNjEgMTFDMTsKK0JDMkY7QkMyRjsxMTA3IDExNjEgMTFDMjtCQzJGOzExMDcgMTE2MSAxMUMyOworQkMzMDtCQzMwOzExMDcgMTE2MjtCQzMwOzExMDcgMTE2MjsKK0JDMzE7QkMzMTsxMTA3IDExNjIgMTFBODtCQzMxOzExMDcgMTE2MiAxMUE4OworQkMzMjtCQzMyOzExMDcgMTE2MiAxMUE5O0JDMzI7MTEwNyAxMTYyIDExQTk7CitCQzMzO0JDMzM7MTEwNyAxMTYyIDExQUE7QkMzMzsxMTA3IDExNjIgMTFBQTsKK0JDMzQ7QkMzNDsxMTA3IDExNjIgMTFBQjtCQzM0OzExMDcgMTE2MiAxMUFCOworQkMzNTtCQzM1OzExMDcgMTE2MiAxMUFDO0JDMzU7MTEwNyAxMTYyIDExQUM7CitCQzM2O0JDMzY7MTEwNyAxMTYyIDExQUQ7QkMzNjsxMTA3IDExNjIgMTFBRDsKK0JDMzc7QkMzNzsxMTA3IDExNjIgMTFBRTtCQzM3OzExMDcgMTE2MiAxMUFFOworQkMzODtCQzM4OzExMDcgMTE2MiAxMUFGO0JDMzg7MTEwNyAxMTYyIDExQUY7CitCQzM5O0JDMzk7MTEwNyAxMTYyIDExQjA7QkMzOTsxMTA3IDExNjIgMTFCMDsKK0JDM0E7QkMzQTsxMTA3IDExNjIgMTFCMTtCQzNBOzExMDcgMTE2MiAxMUIxOworQkMzQjtCQzNCOzExMDcgMTE2MiAxMUIyO0JDM0I7MTEwNyAxMTYyIDExQjI7CitCQzNDO0JDM0M7MTEwNyAxMTYyIDExQjM7QkMzQzsxMTA3IDExNjIgMTFCMzsKK0JDM0Q7QkMzRDsxMTA3IDExNjIgMTFCNDtCQzNEOzExMDcgMTE2MiAxMUI0OworQkMzRTtCQzNFOzExMDcgMTE2MiAxMUI1O0JDM0U7MTEwNyAxMTYyIDExQjU7CitCQzNGO0JDM0Y7MTEwNyAxMTYyIDExQjY7QkMzRjsxMTA3IDExNjIgMTFCNjsKK0JDNDA7QkM0MDsxMTA3IDExNjIgMTFCNztCQzQwOzExMDcgMTE2MiAxMUI3OworQkM0MTtCQzQxOzExMDcgMTE2MiAxMUI4O0JDNDE7MTEwNyAxMTYyIDExQjg7CitCQzQyO0JDNDI7MTEwNyAxMTYyIDExQjk7QkM0MjsxMTA3IDExNjIgMTFCOTsKK0JDNDM7QkM0MzsxMTA3IDExNjIgMTFCQTtCQzQzOzExMDcgMTE2MiAxMUJBOworQkM0NDtCQzQ0OzExMDcgMTE2MiAxMUJCO0JDNDQ7MTEwNyAxMTYyIDExQkI7CitCQzQ1O0JDNDU7MTEwNyAxMTYyIDExQkM7QkM0NTsxMTA3IDExNjIgMTFCQzsKK0JDNDY7QkM0NjsxMTA3IDExNjIgMTFCRDtCQzQ2OzExMDcgMTE2MiAxMUJEOworQkM0NztCQzQ3OzExMDcgMTE2MiAxMUJFO0JDNDc7MTEwNyAxMTYyIDExQkU7CitCQzQ4O0JDNDg7MTEwNyAxMTYyIDExQkY7QkM0ODsxMTA3IDExNjIgMTFCRjsKK0JDNDk7QkM0OTsxMTA3IDExNjIgMTFDMDtCQzQ5OzExMDcgMTE2MiAxMUMwOworQkM0QTtCQzRBOzExMDcgMTE2MiAxMUMxO0JDNEE7MTEwNyAxMTYyIDExQzE7CitCQzRCO0JDNEI7MTEwNyAxMTYyIDExQzI7QkM0QjsxMTA3IDExNjIgMTFDMjsKK0JDNEM7QkM0QzsxMTA3IDExNjM7QkM0QzsxMTA3IDExNjM7CitCQzREO0JDNEQ7MTEwNyAxMTYzIDExQTg7QkM0RDsxMTA3IDExNjMgMTFBODsKK0JDNEU7QkM0RTsxMTA3IDExNjMgMTFBOTtCQzRFOzExMDcgMTE2MyAxMUE5OworQkM0RjtCQzRGOzExMDcgMTE2MyAxMUFBO0JDNEY7MTEwNyAxMTYzIDExQUE7CitCQzUwO0JDNTA7MTEwNyAxMTYzIDExQUI7QkM1MDsxMTA3IDExNjMgMTFBQjsKK0JDNTE7QkM1MTsxMTA3IDExNjMgMTFBQztCQzUxOzExMDcgMTE2MyAxMUFDOworQkM1MjtCQzUyOzExMDcgMTE2MyAxMUFEO0JDNTI7MTEwNyAxMTYzIDExQUQ7CitCQzUzO0JDNTM7MTEwNyAxMTYzIDExQUU7QkM1MzsxMTA3IDExNjMgMTFBRTsKK0JDNTQ7QkM1NDsxMTA3IDExNjMgMTFBRjtCQzU0OzExMDcgMTE2MyAxMUFGOworQkM1NTtCQzU1OzExMDcgMTE2MyAxMUIwO0JDNTU7MTEwNyAxMTYzIDExQjA7CitCQzU2O0JDNTY7MTEwNyAxMTYzIDExQjE7QkM1NjsxMTA3IDExNjMgMTFCMTsKK0JDNTc7QkM1NzsxMTA3IDExNjMgMTFCMjtCQzU3OzExMDcgMTE2MyAxMUIyOworQkM1ODtCQzU4OzExMDcgMTE2MyAxMUIzO0JDNTg7MTEwNyAxMTYzIDExQjM7CitCQzU5O0JDNTk7MTEwNyAxMTYzIDExQjQ7QkM1OTsxMTA3IDExNjMgMTFCNDsKK0JDNUE7QkM1QTsxMTA3IDExNjMgMTFCNTtCQzVBOzExMDcgMTE2MyAxMUI1OworQkM1QjtCQzVCOzExMDcgMTE2MyAxMUI2O0JDNUI7MTEwNyAxMTYzIDExQjY7CitCQzVDO0JDNUM7MTEwNyAxMTYzIDExQjc7QkM1QzsxMTA3IDExNjMgMTFCNzsKK0JDNUQ7QkM1RDsxMTA3IDExNjMgMTFCODtCQzVEOzExMDcgMTE2MyAxMUI4OworQkM1RTtCQzVFOzExMDcgMTE2MyAxMUI5O0JDNUU7MTEwNyAxMTYzIDExQjk7CitCQzVGO0JDNUY7MTEwNyAxMTYzIDExQkE7QkM1RjsxMTA3IDExNjMgMTFCQTsKK0JDNjA7QkM2MDsxMTA3IDExNjMgMTFCQjtCQzYwOzExMDcgMTE2MyAxMUJCOworQkM2MTtCQzYxOzExMDcgMTE2MyAxMUJDO0JDNjE7MTEwNyAxMTYzIDExQkM7CitCQzYyO0JDNjI7MTEwNyAxMTYzIDExQkQ7QkM2MjsxMTA3IDExNjMgMTFCRDsKK0JDNjM7QkM2MzsxMTA3IDExNjMgMTFCRTtCQzYzOzExMDcgMTE2MyAxMUJFOworQkM2NDtCQzY0OzExMDcgMTE2MyAxMUJGO0JDNjQ7MTEwNyAxMTYzIDExQkY7CitCQzY1O0JDNjU7MTEwNyAxMTYzIDExQzA7QkM2NTsxMTA3IDExNjMgMTFDMDsKK0JDNjY7QkM2NjsxMTA3IDExNjMgMTFDMTtCQzY2OzExMDcgMTE2MyAxMUMxOworQkM2NztCQzY3OzExMDcgMTE2MyAxMUMyO0JDNjc7MTEwNyAxMTYzIDExQzI7CitCQzY4O0JDNjg7MTEwNyAxMTY0O0JDNjg7MTEwNyAxMTY0OworQkM2OTtCQzY5OzExMDcgMTE2NCAxMUE4O0JDNjk7MTEwNyAxMTY0IDExQTg7CitCQzZBO0JDNkE7MTEwNyAxMTY0IDExQTk7QkM2QTsxMTA3IDExNjQgMTFBOTsKK0JDNkI7QkM2QjsxMTA3IDExNjQgMTFBQTtCQzZCOzExMDcgMTE2NCAxMUFBOworQkM2QztCQzZDOzExMDcgMTE2NCAxMUFCO0JDNkM7MTEwNyAxMTY0IDExQUI7CitCQzZEO0JDNkQ7MTEwNyAxMTY0IDExQUM7QkM2RDsxMTA3IDExNjQgMTFBQzsKK0JDNkU7QkM2RTsxMTA3IDExNjQgMTFBRDtCQzZFOzExMDcgMTE2NCAxMUFEOworQkM2RjtCQzZGOzExMDcgMTE2NCAxMUFFO0JDNkY7MTEwNyAxMTY0IDExQUU7CitCQzcwO0JDNzA7MTEwNyAxMTY0IDExQUY7QkM3MDsxMTA3IDExNjQgMTFBRjsKK0JDNzE7QkM3MTsxMTA3IDExNjQgMTFCMDtCQzcxOzExMDcgMTE2NCAxMUIwOworQkM3MjtCQzcyOzExMDcgMTE2NCAxMUIxO0JDNzI7MTEwNyAxMTY0IDExQjE7CitCQzczO0JDNzM7MTEwNyAxMTY0IDExQjI7QkM3MzsxMTA3IDExNjQgMTFCMjsKK0JDNzQ7QkM3NDsxMTA3IDExNjQgMTFCMztCQzc0OzExMDcgMTE2NCAxMUIzOworQkM3NTtCQzc1OzExMDcgMTE2NCAxMUI0O0JDNzU7MTEwNyAxMTY0IDExQjQ7CitCQzc2O0JDNzY7MTEwNyAxMTY0IDExQjU7QkM3NjsxMTA3IDExNjQgMTFCNTsKK0JDNzc7QkM3NzsxMTA3IDExNjQgMTFCNjtCQzc3OzExMDcgMTE2NCAxMUI2OworQkM3ODtCQzc4OzExMDcgMTE2NCAxMUI3O0JDNzg7MTEwNyAxMTY0IDExQjc7CitCQzc5O0JDNzk7MTEwNyAxMTY0IDExQjg7QkM3OTsxMTA3IDExNjQgMTFCODsKK0JDN0E7QkM3QTsxMTA3IDExNjQgMTFCOTtCQzdBOzExMDcgMTE2NCAxMUI5OworQkM3QjtCQzdCOzExMDcgMTE2NCAxMUJBO0JDN0I7MTEwNyAxMTY0IDExQkE7CitCQzdDO0JDN0M7MTEwNyAxMTY0IDExQkI7QkM3QzsxMTA3IDExNjQgMTFCQjsKK0JDN0Q7QkM3RDsxMTA3IDExNjQgMTFCQztCQzdEOzExMDcgMTE2NCAxMUJDOworQkM3RTtCQzdFOzExMDcgMTE2NCAxMUJEO0JDN0U7MTEwNyAxMTY0IDExQkQ7CitCQzdGO0JDN0Y7MTEwNyAxMTY0IDExQkU7QkM3RjsxMTA3IDExNjQgMTFCRTsKK0JDODA7QkM4MDsxMTA3IDExNjQgMTFCRjtCQzgwOzExMDcgMTE2NCAxMUJGOworQkM4MTtCQzgxOzExMDcgMTE2NCAxMUMwO0JDODE7MTEwNyAxMTY0IDExQzA7CitCQzgyO0JDODI7MTEwNyAxMTY0IDExQzE7QkM4MjsxMTA3IDExNjQgMTFDMTsKK0JDODM7QkM4MzsxMTA3IDExNjQgMTFDMjtCQzgzOzExMDcgMTE2NCAxMUMyOworQkM4NDtCQzg0OzExMDcgMTE2NTtCQzg0OzExMDcgMTE2NTsKK0JDODU7QkM4NTsxMTA3IDExNjUgMTFBODtCQzg1OzExMDcgMTE2NSAxMUE4OworQkM4NjtCQzg2OzExMDcgMTE2NSAxMUE5O0JDODY7MTEwNyAxMTY1IDExQTk7CitCQzg3O0JDODc7MTEwNyAxMTY1IDExQUE7QkM4NzsxMTA3IDExNjUgMTFBQTsKK0JDODg7QkM4ODsxMTA3IDExNjUgMTFBQjtCQzg4OzExMDcgMTE2NSAxMUFCOworQkM4OTtCQzg5OzExMDcgMTE2NSAxMUFDO0JDODk7MTEwNyAxMTY1IDExQUM7CitCQzhBO0JDOEE7MTEwNyAxMTY1IDExQUQ7QkM4QTsxMTA3IDExNjUgMTFBRDsKK0JDOEI7QkM4QjsxMTA3IDExNjUgMTFBRTtCQzhCOzExMDcgMTE2NSAxMUFFOworQkM4QztCQzhDOzExMDcgMTE2NSAxMUFGO0JDOEM7MTEwNyAxMTY1IDExQUY7CitCQzhEO0JDOEQ7MTEwNyAxMTY1IDExQjA7QkM4RDsxMTA3IDExNjUgMTFCMDsKK0JDOEU7QkM4RTsxMTA3IDExNjUgMTFCMTtCQzhFOzExMDcgMTE2NSAxMUIxOworQkM4RjtCQzhGOzExMDcgMTE2NSAxMUIyO0JDOEY7MTEwNyAxMTY1IDExQjI7CitCQzkwO0JDOTA7MTEwNyAxMTY1IDExQjM7QkM5MDsxMTA3IDExNjUgMTFCMzsKK0JDOTE7QkM5MTsxMTA3IDExNjUgMTFCNDtCQzkxOzExMDcgMTE2NSAxMUI0OworQkM5MjtCQzkyOzExMDcgMTE2NSAxMUI1O0JDOTI7MTEwNyAxMTY1IDExQjU7CitCQzkzO0JDOTM7MTEwNyAxMTY1IDExQjY7QkM5MzsxMTA3IDExNjUgMTFCNjsKK0JDOTQ7QkM5NDsxMTA3IDExNjUgMTFCNztCQzk0OzExMDcgMTE2NSAxMUI3OworQkM5NTtCQzk1OzExMDcgMTE2NSAxMUI4O0JDOTU7MTEwNyAxMTY1IDExQjg7CitCQzk2O0JDOTY7MTEwNyAxMTY1IDExQjk7QkM5NjsxMTA3IDExNjUgMTFCOTsKK0JDOTc7QkM5NzsxMTA3IDExNjUgMTFCQTtCQzk3OzExMDcgMTE2NSAxMUJBOworQkM5ODtCQzk4OzExMDcgMTE2NSAxMUJCO0JDOTg7MTEwNyAxMTY1IDExQkI7CitCQzk5O0JDOTk7MTEwNyAxMTY1IDExQkM7QkM5OTsxMTA3IDExNjUgMTFCQzsKK0JDOUE7QkM5QTsxMTA3IDExNjUgMTFCRDtCQzlBOzExMDcgMTE2NSAxMUJEOworQkM5QjtCQzlCOzExMDcgMTE2NSAxMUJFO0JDOUI7MTEwNyAxMTY1IDExQkU7CitCQzlDO0JDOUM7MTEwNyAxMTY1IDExQkY7QkM5QzsxMTA3IDExNjUgMTFCRjsKK0JDOUQ7QkM5RDsxMTA3IDExNjUgMTFDMDtCQzlEOzExMDcgMTE2NSAxMUMwOworQkM5RTtCQzlFOzExMDcgMTE2NSAxMUMxO0JDOUU7MTEwNyAxMTY1IDExQzE7CitCQzlGO0JDOUY7MTEwNyAxMTY1IDExQzI7QkM5RjsxMTA3IDExNjUgMTFDMjsKK0JDQTA7QkNBMDsxMTA3IDExNjY7QkNBMDsxMTA3IDExNjY7CitCQ0ExO0JDQTE7MTEwNyAxMTY2IDExQTg7QkNBMTsxMTA3IDExNjYgMTFBODsKK0JDQTI7QkNBMjsxMTA3IDExNjYgMTFBOTtCQ0EyOzExMDcgMTE2NiAxMUE5OworQkNBMztCQ0EzOzExMDcgMTE2NiAxMUFBO0JDQTM7MTEwNyAxMTY2IDExQUE7CitCQ0E0O0JDQTQ7MTEwNyAxMTY2IDExQUI7QkNBNDsxMTA3IDExNjYgMTFBQjsKK0JDQTU7QkNBNTsxMTA3IDExNjYgMTFBQztCQ0E1OzExMDcgMTE2NiAxMUFDOworQkNBNjtCQ0E2OzExMDcgMTE2NiAxMUFEO0JDQTY7MTEwNyAxMTY2IDExQUQ7CitCQ0E3O0JDQTc7MTEwNyAxMTY2IDExQUU7QkNBNzsxMTA3IDExNjYgMTFBRTsKK0JDQTg7QkNBODsxMTA3IDExNjYgMTFBRjtCQ0E4OzExMDcgMTE2NiAxMUFGOworQkNBOTtCQ0E5OzExMDcgMTE2NiAxMUIwO0JDQTk7MTEwNyAxMTY2IDExQjA7CitCQ0FBO0JDQUE7MTEwNyAxMTY2IDExQjE7QkNBQTsxMTA3IDExNjYgMTFCMTsKK0JDQUI7QkNBQjsxMTA3IDExNjYgMTFCMjtCQ0FCOzExMDcgMTE2NiAxMUIyOworQkNBQztCQ0FDOzExMDcgMTE2NiAxMUIzO0JDQUM7MTEwNyAxMTY2IDExQjM7CitCQ0FEO0JDQUQ7MTEwNyAxMTY2IDExQjQ7QkNBRDsxMTA3IDExNjYgMTFCNDsKK0JDQUU7QkNBRTsxMTA3IDExNjYgMTFCNTtCQ0FFOzExMDcgMTE2NiAxMUI1OworQkNBRjtCQ0FGOzExMDcgMTE2NiAxMUI2O0JDQUY7MTEwNyAxMTY2IDExQjY7CitCQ0IwO0JDQjA7MTEwNyAxMTY2IDExQjc7QkNCMDsxMTA3IDExNjYgMTFCNzsKK0JDQjE7QkNCMTsxMTA3IDExNjYgMTFCODtCQ0IxOzExMDcgMTE2NiAxMUI4OworQkNCMjtCQ0IyOzExMDcgMTE2NiAxMUI5O0JDQjI7MTEwNyAxMTY2IDExQjk7CitCQ0IzO0JDQjM7MTEwNyAxMTY2IDExQkE7QkNCMzsxMTA3IDExNjYgMTFCQTsKK0JDQjQ7QkNCNDsxMTA3IDExNjYgMTFCQjtCQ0I0OzExMDcgMTE2NiAxMUJCOworQkNCNTtCQ0I1OzExMDcgMTE2NiAxMUJDO0JDQjU7MTEwNyAxMTY2IDExQkM7CitCQ0I2O0JDQjY7MTEwNyAxMTY2IDExQkQ7QkNCNjsxMTA3IDExNjYgMTFCRDsKK0JDQjc7QkNCNzsxMTA3IDExNjYgMTFCRTtCQ0I3OzExMDcgMTE2NiAxMUJFOworQkNCODtCQ0I4OzExMDcgMTE2NiAxMUJGO0JDQjg7MTEwNyAxMTY2IDExQkY7CitCQ0I5O0JDQjk7MTEwNyAxMTY2IDExQzA7QkNCOTsxMTA3IDExNjYgMTFDMDsKK0JDQkE7QkNCQTsxMTA3IDExNjYgMTFDMTtCQ0JBOzExMDcgMTE2NiAxMUMxOworQkNCQjtCQ0JCOzExMDcgMTE2NiAxMUMyO0JDQkI7MTEwNyAxMTY2IDExQzI7CitCQ0JDO0JDQkM7MTEwNyAxMTY3O0JDQkM7MTEwNyAxMTY3OworQkNCRDtCQ0JEOzExMDcgMTE2NyAxMUE4O0JDQkQ7MTEwNyAxMTY3IDExQTg7CitCQ0JFO0JDQkU7MTEwNyAxMTY3IDExQTk7QkNCRTsxMTA3IDExNjcgMTFBOTsKK0JDQkY7QkNCRjsxMTA3IDExNjcgMTFBQTtCQ0JGOzExMDcgMTE2NyAxMUFBOworQkNDMDtCQ0MwOzExMDcgMTE2NyAxMUFCO0JDQzA7MTEwNyAxMTY3IDExQUI7CitCQ0MxO0JDQzE7MTEwNyAxMTY3IDExQUM7QkNDMTsxMTA3IDExNjcgMTFBQzsKK0JDQzI7QkNDMjsxMTA3IDExNjcgMTFBRDtCQ0MyOzExMDcgMTE2NyAxMUFEOworQkNDMztCQ0MzOzExMDcgMTE2NyAxMUFFO0JDQzM7MTEwNyAxMTY3IDExQUU7CitCQ0M0O0JDQzQ7MTEwNyAxMTY3IDExQUY7QkNDNDsxMTA3IDExNjcgMTFBRjsKK0JDQzU7QkNDNTsxMTA3IDExNjcgMTFCMDtCQ0M1OzExMDcgMTE2NyAxMUIwOworQkNDNjtCQ0M2OzExMDcgMTE2NyAxMUIxO0JDQzY7MTEwNyAxMTY3IDExQjE7CitCQ0M3O0JDQzc7MTEwNyAxMTY3IDExQjI7QkNDNzsxMTA3IDExNjcgMTFCMjsKK0JDQzg7QkNDODsxMTA3IDExNjcgMTFCMztCQ0M4OzExMDcgMTE2NyAxMUIzOworQkNDOTtCQ0M5OzExMDcgMTE2NyAxMUI0O0JDQzk7MTEwNyAxMTY3IDExQjQ7CitCQ0NBO0JDQ0E7MTEwNyAxMTY3IDExQjU7QkNDQTsxMTA3IDExNjcgMTFCNTsKK0JDQ0I7QkNDQjsxMTA3IDExNjcgMTFCNjtCQ0NCOzExMDcgMTE2NyAxMUI2OworQkNDQztCQ0NDOzExMDcgMTE2NyAxMUI3O0JDQ0M7MTEwNyAxMTY3IDExQjc7CitCQ0NEO0JDQ0Q7MTEwNyAxMTY3IDExQjg7QkNDRDsxMTA3IDExNjcgMTFCODsKK0JDQ0U7QkNDRTsxMTA3IDExNjcgMTFCOTtCQ0NFOzExMDcgMTE2NyAxMUI5OworQkNDRjtCQ0NGOzExMDcgMTE2NyAxMUJBO0JDQ0Y7MTEwNyAxMTY3IDExQkE7CitCQ0QwO0JDRDA7MTEwNyAxMTY3IDExQkI7QkNEMDsxMTA3IDExNjcgMTFCQjsKK0JDRDE7QkNEMTsxMTA3IDExNjcgMTFCQztCQ0QxOzExMDcgMTE2NyAxMUJDOworQkNEMjtCQ0QyOzExMDcgMTE2NyAxMUJEO0JDRDI7MTEwNyAxMTY3IDExQkQ7CitCQ0QzO0JDRDM7MTEwNyAxMTY3IDExQkU7QkNEMzsxMTA3IDExNjcgMTFCRTsKK0JDRDQ7QkNENDsxMTA3IDExNjcgMTFCRjtCQ0Q0OzExMDcgMTE2NyAxMUJGOworQkNENTtCQ0Q1OzExMDcgMTE2NyAxMUMwO0JDRDU7MTEwNyAxMTY3IDExQzA7CitCQ0Q2O0JDRDY7MTEwNyAxMTY3IDExQzE7QkNENjsxMTA3IDExNjcgMTFDMTsKK0JDRDc7QkNENzsxMTA3IDExNjcgMTFDMjtCQ0Q3OzExMDcgMTE2NyAxMUMyOworQkNEODtCQ0Q4OzExMDcgMTE2ODtCQ0Q4OzExMDcgMTE2ODsKK0JDRDk7QkNEOTsxMTA3IDExNjggMTFBODtCQ0Q5OzExMDcgMTE2OCAxMUE4OworQkNEQTtCQ0RBOzExMDcgMTE2OCAxMUE5O0JDREE7MTEwNyAxMTY4IDExQTk7CitCQ0RCO0JDREI7MTEwNyAxMTY4IDExQUE7QkNEQjsxMTA3IDExNjggMTFBQTsKK0JDREM7QkNEQzsxMTA3IDExNjggMTFBQjtCQ0RDOzExMDcgMTE2OCAxMUFCOworQkNERDtCQ0REOzExMDcgMTE2OCAxMUFDO0JDREQ7MTEwNyAxMTY4IDExQUM7CitCQ0RFO0JDREU7MTEwNyAxMTY4IDExQUQ7QkNERTsxMTA3IDExNjggMTFBRDsKK0JDREY7QkNERjsxMTA3IDExNjggMTFBRTtCQ0RGOzExMDcgMTE2OCAxMUFFOworQkNFMDtCQ0UwOzExMDcgMTE2OCAxMUFGO0JDRTA7MTEwNyAxMTY4IDExQUY7CitCQ0UxO0JDRTE7MTEwNyAxMTY4IDExQjA7QkNFMTsxMTA3IDExNjggMTFCMDsKK0JDRTI7QkNFMjsxMTA3IDExNjggMTFCMTtCQ0UyOzExMDcgMTE2OCAxMUIxOworQkNFMztCQ0UzOzExMDcgMTE2OCAxMUIyO0JDRTM7MTEwNyAxMTY4IDExQjI7CitCQ0U0O0JDRTQ7MTEwNyAxMTY4IDExQjM7QkNFNDsxMTA3IDExNjggMTFCMzsKK0JDRTU7QkNFNTsxMTA3IDExNjggMTFCNDtCQ0U1OzExMDcgMTE2OCAxMUI0OworQkNFNjtCQ0U2OzExMDcgMTE2OCAxMUI1O0JDRTY7MTEwNyAxMTY4IDExQjU7CitCQ0U3O0JDRTc7MTEwNyAxMTY4IDExQjY7QkNFNzsxMTA3IDExNjggMTFCNjsKK0JDRTg7QkNFODsxMTA3IDExNjggMTFCNztCQ0U4OzExMDcgMTE2OCAxMUI3OworQkNFOTtCQ0U5OzExMDcgMTE2OCAxMUI4O0JDRTk7MTEwNyAxMTY4IDExQjg7CitCQ0VBO0JDRUE7MTEwNyAxMTY4IDExQjk7QkNFQTsxMTA3IDExNjggMTFCOTsKK0JDRUI7QkNFQjsxMTA3IDExNjggMTFCQTtCQ0VCOzExMDcgMTE2OCAxMUJBOworQkNFQztCQ0VDOzExMDcgMTE2OCAxMUJCO0JDRUM7MTEwNyAxMTY4IDExQkI7CitCQ0VEO0JDRUQ7MTEwNyAxMTY4IDExQkM7QkNFRDsxMTA3IDExNjggMTFCQzsKK0JDRUU7QkNFRTsxMTA3IDExNjggMTFCRDtCQ0VFOzExMDcgMTE2OCAxMUJEOworQkNFRjtCQ0VGOzExMDcgMTE2OCAxMUJFO0JDRUY7MTEwNyAxMTY4IDExQkU7CitCQ0YwO0JDRjA7MTEwNyAxMTY4IDExQkY7QkNGMDsxMTA3IDExNjggMTFCRjsKK0JDRjE7QkNGMTsxMTA3IDExNjggMTFDMDtCQ0YxOzExMDcgMTE2OCAxMUMwOworQkNGMjtCQ0YyOzExMDcgMTE2OCAxMUMxO0JDRjI7MTEwNyAxMTY4IDExQzE7CitCQ0YzO0JDRjM7MTEwNyAxMTY4IDExQzI7QkNGMzsxMTA3IDExNjggMTFDMjsKK0JDRjQ7QkNGNDsxMTA3IDExNjk7QkNGNDsxMTA3IDExNjk7CitCQ0Y1O0JDRjU7MTEwNyAxMTY5IDExQTg7QkNGNTsxMTA3IDExNjkgMTFBODsKK0JDRjY7QkNGNjsxMTA3IDExNjkgMTFBOTtCQ0Y2OzExMDcgMTE2OSAxMUE5OworQkNGNztCQ0Y3OzExMDcgMTE2OSAxMUFBO0JDRjc7MTEwNyAxMTY5IDExQUE7CitCQ0Y4O0JDRjg7MTEwNyAxMTY5IDExQUI7QkNGODsxMTA3IDExNjkgMTFBQjsKK0JDRjk7QkNGOTsxMTA3IDExNjkgMTFBQztCQ0Y5OzExMDcgMTE2OSAxMUFDOworQkNGQTtCQ0ZBOzExMDcgMTE2OSAxMUFEO0JDRkE7MTEwNyAxMTY5IDExQUQ7CitCQ0ZCO0JDRkI7MTEwNyAxMTY5IDExQUU7QkNGQjsxMTA3IDExNjkgMTFBRTsKK0JDRkM7QkNGQzsxMTA3IDExNjkgMTFBRjtCQ0ZDOzExMDcgMTE2OSAxMUFGOworQkNGRDtCQ0ZEOzExMDcgMTE2OSAxMUIwO0JDRkQ7MTEwNyAxMTY5IDExQjA7CitCQ0ZFO0JDRkU7MTEwNyAxMTY5IDExQjE7QkNGRTsxMTA3IDExNjkgMTFCMTsKK0JDRkY7QkNGRjsxMTA3IDExNjkgMTFCMjtCQ0ZGOzExMDcgMTE2OSAxMUIyOworQkQwMDtCRDAwOzExMDcgMTE2OSAxMUIzO0JEMDA7MTEwNyAxMTY5IDExQjM7CitCRDAxO0JEMDE7MTEwNyAxMTY5IDExQjQ7QkQwMTsxMTA3IDExNjkgMTFCNDsKK0JEMDI7QkQwMjsxMTA3IDExNjkgMTFCNTtCRDAyOzExMDcgMTE2OSAxMUI1OworQkQwMztCRDAzOzExMDcgMTE2OSAxMUI2O0JEMDM7MTEwNyAxMTY5IDExQjY7CitCRDA0O0JEMDQ7MTEwNyAxMTY5IDExQjc7QkQwNDsxMTA3IDExNjkgMTFCNzsKK0JEMDU7QkQwNTsxMTA3IDExNjkgMTFCODtCRDA1OzExMDcgMTE2OSAxMUI4OworQkQwNjtCRDA2OzExMDcgMTE2OSAxMUI5O0JEMDY7MTEwNyAxMTY5IDExQjk7CitCRDA3O0JEMDc7MTEwNyAxMTY5IDExQkE7QkQwNzsxMTA3IDExNjkgMTFCQTsKK0JEMDg7QkQwODsxMTA3IDExNjkgMTFCQjtCRDA4OzExMDcgMTE2OSAxMUJCOworQkQwOTtCRDA5OzExMDcgMTE2OSAxMUJDO0JEMDk7MTEwNyAxMTY5IDExQkM7CitCRDBBO0JEMEE7MTEwNyAxMTY5IDExQkQ7QkQwQTsxMTA3IDExNjkgMTFCRDsKK0JEMEI7QkQwQjsxMTA3IDExNjkgMTFCRTtCRDBCOzExMDcgMTE2OSAxMUJFOworQkQwQztCRDBDOzExMDcgMTE2OSAxMUJGO0JEMEM7MTEwNyAxMTY5IDExQkY7CitCRDBEO0JEMEQ7MTEwNyAxMTY5IDExQzA7QkQwRDsxMTA3IDExNjkgMTFDMDsKK0JEMEU7QkQwRTsxMTA3IDExNjkgMTFDMTtCRDBFOzExMDcgMTE2OSAxMUMxOworQkQwRjtCRDBGOzExMDcgMTE2OSAxMUMyO0JEMEY7MTEwNyAxMTY5IDExQzI7CitCRDEwO0JEMTA7MTEwNyAxMTZBO0JEMTA7MTEwNyAxMTZBOworQkQxMTtCRDExOzExMDcgMTE2QSAxMUE4O0JEMTE7MTEwNyAxMTZBIDExQTg7CitCRDEyO0JEMTI7MTEwNyAxMTZBIDExQTk7QkQxMjsxMTA3IDExNkEgMTFBOTsKK0JEMTM7QkQxMzsxMTA3IDExNkEgMTFBQTtCRDEzOzExMDcgMTE2QSAxMUFBOworQkQxNDtCRDE0OzExMDcgMTE2QSAxMUFCO0JEMTQ7MTEwNyAxMTZBIDExQUI7CitCRDE1O0JEMTU7MTEwNyAxMTZBIDExQUM7QkQxNTsxMTA3IDExNkEgMTFBQzsKK0JEMTY7QkQxNjsxMTA3IDExNkEgMTFBRDtCRDE2OzExMDcgMTE2QSAxMUFEOworQkQxNztCRDE3OzExMDcgMTE2QSAxMUFFO0JEMTc7MTEwNyAxMTZBIDExQUU7CitCRDE4O0JEMTg7MTEwNyAxMTZBIDExQUY7QkQxODsxMTA3IDExNkEgMTFBRjsKK0JEMTk7QkQxOTsxMTA3IDExNkEgMTFCMDtCRDE5OzExMDcgMTE2QSAxMUIwOworQkQxQTtCRDFBOzExMDcgMTE2QSAxMUIxO0JEMUE7MTEwNyAxMTZBIDExQjE7CitCRDFCO0JEMUI7MTEwNyAxMTZBIDExQjI7QkQxQjsxMTA3IDExNkEgMTFCMjsKK0JEMUM7QkQxQzsxMTA3IDExNkEgMTFCMztCRDFDOzExMDcgMTE2QSAxMUIzOworQkQxRDtCRDFEOzExMDcgMTE2QSAxMUI0O0JEMUQ7MTEwNyAxMTZBIDExQjQ7CitCRDFFO0JEMUU7MTEwNyAxMTZBIDExQjU7QkQxRTsxMTA3IDExNkEgMTFCNTsKK0JEMUY7QkQxRjsxMTA3IDExNkEgMTFCNjtCRDFGOzExMDcgMTE2QSAxMUI2OworQkQyMDtCRDIwOzExMDcgMTE2QSAxMUI3O0JEMjA7MTEwNyAxMTZBIDExQjc7CitCRDIxO0JEMjE7MTEwNyAxMTZBIDExQjg7QkQyMTsxMTA3IDExNkEgMTFCODsKK0JEMjI7QkQyMjsxMTA3IDExNkEgMTFCOTtCRDIyOzExMDcgMTE2QSAxMUI5OworQkQyMztCRDIzOzExMDcgMTE2QSAxMUJBO0JEMjM7MTEwNyAxMTZBIDExQkE7CitCRDI0O0JEMjQ7MTEwNyAxMTZBIDExQkI7QkQyNDsxMTA3IDExNkEgMTFCQjsKK0JEMjU7QkQyNTsxMTA3IDExNkEgMTFCQztCRDI1OzExMDcgMTE2QSAxMUJDOworQkQyNjtCRDI2OzExMDcgMTE2QSAxMUJEO0JEMjY7MTEwNyAxMTZBIDExQkQ7CitCRDI3O0JEMjc7MTEwNyAxMTZBIDExQkU7QkQyNzsxMTA3IDExNkEgMTFCRTsKK0JEMjg7QkQyODsxMTA3IDExNkEgMTFCRjtCRDI4OzExMDcgMTE2QSAxMUJGOworQkQyOTtCRDI5OzExMDcgMTE2QSAxMUMwO0JEMjk7MTEwNyAxMTZBIDExQzA7CitCRDJBO0JEMkE7MTEwNyAxMTZBIDExQzE7QkQyQTsxMTA3IDExNkEgMTFDMTsKK0JEMkI7QkQyQjsxMTA3IDExNkEgMTFDMjtCRDJCOzExMDcgMTE2QSAxMUMyOworQkQyQztCRDJDOzExMDcgMTE2QjtCRDJDOzExMDcgMTE2QjsKK0JEMkQ7QkQyRDsxMTA3IDExNkIgMTFBODtCRDJEOzExMDcgMTE2QiAxMUE4OworQkQyRTtCRDJFOzExMDcgMTE2QiAxMUE5O0JEMkU7MTEwNyAxMTZCIDExQTk7CitCRDJGO0JEMkY7MTEwNyAxMTZCIDExQUE7QkQyRjsxMTA3IDExNkIgMTFBQTsKK0JEMzA7QkQzMDsxMTA3IDExNkIgMTFBQjtCRDMwOzExMDcgMTE2QiAxMUFCOworQkQzMTtCRDMxOzExMDcgMTE2QiAxMUFDO0JEMzE7MTEwNyAxMTZCIDExQUM7CitCRDMyO0JEMzI7MTEwNyAxMTZCIDExQUQ7QkQzMjsxMTA3IDExNkIgMTFBRDsKK0JEMzM7QkQzMzsxMTA3IDExNkIgMTFBRTtCRDMzOzExMDcgMTE2QiAxMUFFOworQkQzNDtCRDM0OzExMDcgMTE2QiAxMUFGO0JEMzQ7MTEwNyAxMTZCIDExQUY7CitCRDM1O0JEMzU7MTEwNyAxMTZCIDExQjA7QkQzNTsxMTA3IDExNkIgMTFCMDsKK0JEMzY7QkQzNjsxMTA3IDExNkIgMTFCMTtCRDM2OzExMDcgMTE2QiAxMUIxOworQkQzNztCRDM3OzExMDcgMTE2QiAxMUIyO0JEMzc7MTEwNyAxMTZCIDExQjI7CitCRDM4O0JEMzg7MTEwNyAxMTZCIDExQjM7QkQzODsxMTA3IDExNkIgMTFCMzsKK0JEMzk7QkQzOTsxMTA3IDExNkIgMTFCNDtCRDM5OzExMDcgMTE2QiAxMUI0OworQkQzQTtCRDNBOzExMDcgMTE2QiAxMUI1O0JEM0E7MTEwNyAxMTZCIDExQjU7CitCRDNCO0JEM0I7MTEwNyAxMTZCIDExQjY7QkQzQjsxMTA3IDExNkIgMTFCNjsKK0JEM0M7QkQzQzsxMTA3IDExNkIgMTFCNztCRDNDOzExMDcgMTE2QiAxMUI3OworQkQzRDtCRDNEOzExMDcgMTE2QiAxMUI4O0JEM0Q7MTEwNyAxMTZCIDExQjg7CitCRDNFO0JEM0U7MTEwNyAxMTZCIDExQjk7QkQzRTsxMTA3IDExNkIgMTFCOTsKK0JEM0Y7QkQzRjsxMTA3IDExNkIgMTFCQTtCRDNGOzExMDcgMTE2QiAxMUJBOworQkQ0MDtCRDQwOzExMDcgMTE2QiAxMUJCO0JENDA7MTEwNyAxMTZCIDExQkI7CitCRDQxO0JENDE7MTEwNyAxMTZCIDExQkM7QkQ0MTsxMTA3IDExNkIgMTFCQzsKK0JENDI7QkQ0MjsxMTA3IDExNkIgMTFCRDtCRDQyOzExMDcgMTE2QiAxMUJEOworQkQ0MztCRDQzOzExMDcgMTE2QiAxMUJFO0JENDM7MTEwNyAxMTZCIDExQkU7CitCRDQ0O0JENDQ7MTEwNyAxMTZCIDExQkY7QkQ0NDsxMTA3IDExNkIgMTFCRjsKK0JENDU7QkQ0NTsxMTA3IDExNkIgMTFDMDtCRDQ1OzExMDcgMTE2QiAxMUMwOworQkQ0NjtCRDQ2OzExMDcgMTE2QiAxMUMxO0JENDY7MTEwNyAxMTZCIDExQzE7CitCRDQ3O0JENDc7MTEwNyAxMTZCIDExQzI7QkQ0NzsxMTA3IDExNkIgMTFDMjsKK0JENDg7QkQ0ODsxMTA3IDExNkM7QkQ0ODsxMTA3IDExNkM7CitCRDQ5O0JENDk7MTEwNyAxMTZDIDExQTg7QkQ0OTsxMTA3IDExNkMgMTFBODsKK0JENEE7QkQ0QTsxMTA3IDExNkMgMTFBOTtCRDRBOzExMDcgMTE2QyAxMUE5OworQkQ0QjtCRDRCOzExMDcgMTE2QyAxMUFBO0JENEI7MTEwNyAxMTZDIDExQUE7CitCRDRDO0JENEM7MTEwNyAxMTZDIDExQUI7QkQ0QzsxMTA3IDExNkMgMTFBQjsKK0JENEQ7QkQ0RDsxMTA3IDExNkMgMTFBQztCRDREOzExMDcgMTE2QyAxMUFDOworQkQ0RTtCRDRFOzExMDcgMTE2QyAxMUFEO0JENEU7MTEwNyAxMTZDIDExQUQ7CitCRDRGO0JENEY7MTEwNyAxMTZDIDExQUU7QkQ0RjsxMTA3IDExNkMgMTFBRTsKK0JENTA7QkQ1MDsxMTA3IDExNkMgMTFBRjtCRDUwOzExMDcgMTE2QyAxMUFGOworQkQ1MTtCRDUxOzExMDcgMTE2QyAxMUIwO0JENTE7MTEwNyAxMTZDIDExQjA7CitCRDUyO0JENTI7MTEwNyAxMTZDIDExQjE7QkQ1MjsxMTA3IDExNkMgMTFCMTsKK0JENTM7QkQ1MzsxMTA3IDExNkMgMTFCMjtCRDUzOzExMDcgMTE2QyAxMUIyOworQkQ1NDtCRDU0OzExMDcgMTE2QyAxMUIzO0JENTQ7MTEwNyAxMTZDIDExQjM7CitCRDU1O0JENTU7MTEwNyAxMTZDIDExQjQ7QkQ1NTsxMTA3IDExNkMgMTFCNDsKK0JENTY7QkQ1NjsxMTA3IDExNkMgMTFCNTtCRDU2OzExMDcgMTE2QyAxMUI1OworQkQ1NztCRDU3OzExMDcgMTE2QyAxMUI2O0JENTc7MTEwNyAxMTZDIDExQjY7CitCRDU4O0JENTg7MTEwNyAxMTZDIDExQjc7QkQ1ODsxMTA3IDExNkMgMTFCNzsKK0JENTk7QkQ1OTsxMTA3IDExNkMgMTFCODtCRDU5OzExMDcgMTE2QyAxMUI4OworQkQ1QTtCRDVBOzExMDcgMTE2QyAxMUI5O0JENUE7MTEwNyAxMTZDIDExQjk7CitCRDVCO0JENUI7MTEwNyAxMTZDIDExQkE7QkQ1QjsxMTA3IDExNkMgMTFCQTsKK0JENUM7QkQ1QzsxMTA3IDExNkMgMTFCQjtCRDVDOzExMDcgMTE2QyAxMUJCOworQkQ1RDtCRDVEOzExMDcgMTE2QyAxMUJDO0JENUQ7MTEwNyAxMTZDIDExQkM7CitCRDVFO0JENUU7MTEwNyAxMTZDIDExQkQ7QkQ1RTsxMTA3IDExNkMgMTFCRDsKK0JENUY7QkQ1RjsxMTA3IDExNkMgMTFCRTtCRDVGOzExMDcgMTE2QyAxMUJFOworQkQ2MDtCRDYwOzExMDcgMTE2QyAxMUJGO0JENjA7MTEwNyAxMTZDIDExQkY7CitCRDYxO0JENjE7MTEwNyAxMTZDIDExQzA7QkQ2MTsxMTA3IDExNkMgMTFDMDsKK0JENjI7QkQ2MjsxMTA3IDExNkMgMTFDMTtCRDYyOzExMDcgMTE2QyAxMUMxOworQkQ2MztCRDYzOzExMDcgMTE2QyAxMUMyO0JENjM7MTEwNyAxMTZDIDExQzI7CitCRDY0O0JENjQ7MTEwNyAxMTZEO0JENjQ7MTEwNyAxMTZEOworQkQ2NTtCRDY1OzExMDcgMTE2RCAxMUE4O0JENjU7MTEwNyAxMTZEIDExQTg7CitCRDY2O0JENjY7MTEwNyAxMTZEIDExQTk7QkQ2NjsxMTA3IDExNkQgMTFBOTsKK0JENjc7QkQ2NzsxMTA3IDExNkQgMTFBQTtCRDY3OzExMDcgMTE2RCAxMUFBOworQkQ2ODtCRDY4OzExMDcgMTE2RCAxMUFCO0JENjg7MTEwNyAxMTZEIDExQUI7CitCRDY5O0JENjk7MTEwNyAxMTZEIDExQUM7QkQ2OTsxMTA3IDExNkQgMTFBQzsKK0JENkE7QkQ2QTsxMTA3IDExNkQgMTFBRDtCRDZBOzExMDcgMTE2RCAxMUFEOworQkQ2QjtCRDZCOzExMDcgMTE2RCAxMUFFO0JENkI7MTEwNyAxMTZEIDExQUU7CitCRDZDO0JENkM7MTEwNyAxMTZEIDExQUY7QkQ2QzsxMTA3IDExNkQgMTFBRjsKK0JENkQ7QkQ2RDsxMTA3IDExNkQgMTFCMDtCRDZEOzExMDcgMTE2RCAxMUIwOworQkQ2RTtCRDZFOzExMDcgMTE2RCAxMUIxO0JENkU7MTEwNyAxMTZEIDExQjE7CitCRDZGO0JENkY7MTEwNyAxMTZEIDExQjI7QkQ2RjsxMTA3IDExNkQgMTFCMjsKK0JENzA7QkQ3MDsxMTA3IDExNkQgMTFCMztCRDcwOzExMDcgMTE2RCAxMUIzOworQkQ3MTtCRDcxOzExMDcgMTE2RCAxMUI0O0JENzE7MTEwNyAxMTZEIDExQjQ7CitCRDcyO0JENzI7MTEwNyAxMTZEIDExQjU7QkQ3MjsxMTA3IDExNkQgMTFCNTsKK0JENzM7QkQ3MzsxMTA3IDExNkQgMTFCNjtCRDczOzExMDcgMTE2RCAxMUI2OworQkQ3NDtCRDc0OzExMDcgMTE2RCAxMUI3O0JENzQ7MTEwNyAxMTZEIDExQjc7CitCRDc1O0JENzU7MTEwNyAxMTZEIDExQjg7QkQ3NTsxMTA3IDExNkQgMTFCODsKK0JENzY7QkQ3NjsxMTA3IDExNkQgMTFCOTtCRDc2OzExMDcgMTE2RCAxMUI5OworQkQ3NztCRDc3OzExMDcgMTE2RCAxMUJBO0JENzc7MTEwNyAxMTZEIDExQkE7CitCRDc4O0JENzg7MTEwNyAxMTZEIDExQkI7QkQ3ODsxMTA3IDExNkQgMTFCQjsKK0JENzk7QkQ3OTsxMTA3IDExNkQgMTFCQztCRDc5OzExMDcgMTE2RCAxMUJDOworQkQ3QTtCRDdBOzExMDcgMTE2RCAxMUJEO0JEN0E7MTEwNyAxMTZEIDExQkQ7CitCRDdCO0JEN0I7MTEwNyAxMTZEIDExQkU7QkQ3QjsxMTA3IDExNkQgMTFCRTsKK0JEN0M7QkQ3QzsxMTA3IDExNkQgMTFCRjtCRDdDOzExMDcgMTE2RCAxMUJGOworQkQ3RDtCRDdEOzExMDcgMTE2RCAxMUMwO0JEN0Q7MTEwNyAxMTZEIDExQzA7CitCRDdFO0JEN0U7MTEwNyAxMTZEIDExQzE7QkQ3RTsxMTA3IDExNkQgMTFDMTsKK0JEN0Y7QkQ3RjsxMTA3IDExNkQgMTFDMjtCRDdGOzExMDcgMTE2RCAxMUMyOworQkQ4MDtCRDgwOzExMDcgMTE2RTtCRDgwOzExMDcgMTE2RTsKK0JEODE7QkQ4MTsxMTA3IDExNkUgMTFBODtCRDgxOzExMDcgMTE2RSAxMUE4OworQkQ4MjtCRDgyOzExMDcgMTE2RSAxMUE5O0JEODI7MTEwNyAxMTZFIDExQTk7CitCRDgzO0JEODM7MTEwNyAxMTZFIDExQUE7QkQ4MzsxMTA3IDExNkUgMTFBQTsKK0JEODQ7QkQ4NDsxMTA3IDExNkUgMTFBQjtCRDg0OzExMDcgMTE2RSAxMUFCOworQkQ4NTtCRDg1OzExMDcgMTE2RSAxMUFDO0JEODU7MTEwNyAxMTZFIDExQUM7CitCRDg2O0JEODY7MTEwNyAxMTZFIDExQUQ7QkQ4NjsxMTA3IDExNkUgMTFBRDsKK0JEODc7QkQ4NzsxMTA3IDExNkUgMTFBRTtCRDg3OzExMDcgMTE2RSAxMUFFOworQkQ4ODtCRDg4OzExMDcgMTE2RSAxMUFGO0JEODg7MTEwNyAxMTZFIDExQUY7CitCRDg5O0JEODk7MTEwNyAxMTZFIDExQjA7QkQ4OTsxMTA3IDExNkUgMTFCMDsKK0JEOEE7QkQ4QTsxMTA3IDExNkUgMTFCMTtCRDhBOzExMDcgMTE2RSAxMUIxOworQkQ4QjtCRDhCOzExMDcgMTE2RSAxMUIyO0JEOEI7MTEwNyAxMTZFIDExQjI7CitCRDhDO0JEOEM7MTEwNyAxMTZFIDExQjM7QkQ4QzsxMTA3IDExNkUgMTFCMzsKK0JEOEQ7QkQ4RDsxMTA3IDExNkUgMTFCNDtCRDhEOzExMDcgMTE2RSAxMUI0OworQkQ4RTtCRDhFOzExMDcgMTE2RSAxMUI1O0JEOEU7MTEwNyAxMTZFIDExQjU7CitCRDhGO0JEOEY7MTEwNyAxMTZFIDExQjY7QkQ4RjsxMTA3IDExNkUgMTFCNjsKK0JEOTA7QkQ5MDsxMTA3IDExNkUgMTFCNztCRDkwOzExMDcgMTE2RSAxMUI3OworQkQ5MTtCRDkxOzExMDcgMTE2RSAxMUI4O0JEOTE7MTEwNyAxMTZFIDExQjg7CitCRDkyO0JEOTI7MTEwNyAxMTZFIDExQjk7QkQ5MjsxMTA3IDExNkUgMTFCOTsKK0JEOTM7QkQ5MzsxMTA3IDExNkUgMTFCQTtCRDkzOzExMDcgMTE2RSAxMUJBOworQkQ5NDtCRDk0OzExMDcgMTE2RSAxMUJCO0JEOTQ7MTEwNyAxMTZFIDExQkI7CitCRDk1O0JEOTU7MTEwNyAxMTZFIDExQkM7QkQ5NTsxMTA3IDExNkUgMTFCQzsKK0JEOTY7QkQ5NjsxMTA3IDExNkUgMTFCRDtCRDk2OzExMDcgMTE2RSAxMUJEOworQkQ5NztCRDk3OzExMDcgMTE2RSAxMUJFO0JEOTc7MTEwNyAxMTZFIDExQkU7CitCRDk4O0JEOTg7MTEwNyAxMTZFIDExQkY7QkQ5ODsxMTA3IDExNkUgMTFCRjsKK0JEOTk7QkQ5OTsxMTA3IDExNkUgMTFDMDtCRDk5OzExMDcgMTE2RSAxMUMwOworQkQ5QTtCRDlBOzExMDcgMTE2RSAxMUMxO0JEOUE7MTEwNyAxMTZFIDExQzE7CitCRDlCO0JEOUI7MTEwNyAxMTZFIDExQzI7QkQ5QjsxMTA3IDExNkUgMTFDMjsKK0JEOUM7QkQ5QzsxMTA3IDExNkY7QkQ5QzsxMTA3IDExNkY7CitCRDlEO0JEOUQ7MTEwNyAxMTZGIDExQTg7QkQ5RDsxMTA3IDExNkYgMTFBODsKK0JEOUU7QkQ5RTsxMTA3IDExNkYgMTFBOTtCRDlFOzExMDcgMTE2RiAxMUE5OworQkQ5RjtCRDlGOzExMDcgMTE2RiAxMUFBO0JEOUY7MTEwNyAxMTZGIDExQUE7CitCREEwO0JEQTA7MTEwNyAxMTZGIDExQUI7QkRBMDsxMTA3IDExNkYgMTFBQjsKK0JEQTE7QkRBMTsxMTA3IDExNkYgMTFBQztCREExOzExMDcgMTE2RiAxMUFDOworQkRBMjtCREEyOzExMDcgMTE2RiAxMUFEO0JEQTI7MTEwNyAxMTZGIDExQUQ7CitCREEzO0JEQTM7MTEwNyAxMTZGIDExQUU7QkRBMzsxMTA3IDExNkYgMTFBRTsKK0JEQTQ7QkRBNDsxMTA3IDExNkYgMTFBRjtCREE0OzExMDcgMTE2RiAxMUFGOworQkRBNTtCREE1OzExMDcgMTE2RiAxMUIwO0JEQTU7MTEwNyAxMTZGIDExQjA7CitCREE2O0JEQTY7MTEwNyAxMTZGIDExQjE7QkRBNjsxMTA3IDExNkYgMTFCMTsKK0JEQTc7QkRBNzsxMTA3IDExNkYgMTFCMjtCREE3OzExMDcgMTE2RiAxMUIyOworQkRBODtCREE4OzExMDcgMTE2RiAxMUIzO0JEQTg7MTEwNyAxMTZGIDExQjM7CitCREE5O0JEQTk7MTEwNyAxMTZGIDExQjQ7QkRBOTsxMTA3IDExNkYgMTFCNDsKK0JEQUE7QkRBQTsxMTA3IDExNkYgMTFCNTtCREFBOzExMDcgMTE2RiAxMUI1OworQkRBQjtCREFCOzExMDcgMTE2RiAxMUI2O0JEQUI7MTEwNyAxMTZGIDExQjY7CitCREFDO0JEQUM7MTEwNyAxMTZGIDExQjc7QkRBQzsxMTA3IDExNkYgMTFCNzsKK0JEQUQ7QkRBRDsxMTA3IDExNkYgMTFCODtCREFEOzExMDcgMTE2RiAxMUI4OworQkRBRTtCREFFOzExMDcgMTE2RiAxMUI5O0JEQUU7MTEwNyAxMTZGIDExQjk7CitCREFGO0JEQUY7MTEwNyAxMTZGIDExQkE7QkRBRjsxMTA3IDExNkYgMTFCQTsKK0JEQjA7QkRCMDsxMTA3IDExNkYgMTFCQjtCREIwOzExMDcgMTE2RiAxMUJCOworQkRCMTtCREIxOzExMDcgMTE2RiAxMUJDO0JEQjE7MTEwNyAxMTZGIDExQkM7CitCREIyO0JEQjI7MTEwNyAxMTZGIDExQkQ7QkRCMjsxMTA3IDExNkYgMTFCRDsKK0JEQjM7QkRCMzsxMTA3IDExNkYgMTFCRTtCREIzOzExMDcgMTE2RiAxMUJFOworQkRCNDtCREI0OzExMDcgMTE2RiAxMUJGO0JEQjQ7MTEwNyAxMTZGIDExQkY7CitCREI1O0JEQjU7MTEwNyAxMTZGIDExQzA7QkRCNTsxMTA3IDExNkYgMTFDMDsKK0JEQjY7QkRCNjsxMTA3IDExNkYgMTFDMTtCREI2OzExMDcgMTE2RiAxMUMxOworQkRCNztCREI3OzExMDcgMTE2RiAxMUMyO0JEQjc7MTEwNyAxMTZGIDExQzI7CitCREI4O0JEQjg7MTEwNyAxMTcwO0JEQjg7MTEwNyAxMTcwOworQkRCOTtCREI5OzExMDcgMTE3MCAxMUE4O0JEQjk7MTEwNyAxMTcwIDExQTg7CitCREJBO0JEQkE7MTEwNyAxMTcwIDExQTk7QkRCQTsxMTA3IDExNzAgMTFBOTsKK0JEQkI7QkRCQjsxMTA3IDExNzAgMTFBQTtCREJCOzExMDcgMTE3MCAxMUFBOworQkRCQztCREJDOzExMDcgMTE3MCAxMUFCO0JEQkM7MTEwNyAxMTcwIDExQUI7CitCREJEO0JEQkQ7MTEwNyAxMTcwIDExQUM7QkRCRDsxMTA3IDExNzAgMTFBQzsKK0JEQkU7QkRCRTsxMTA3IDExNzAgMTFBRDtCREJFOzExMDcgMTE3MCAxMUFEOworQkRCRjtCREJGOzExMDcgMTE3MCAxMUFFO0JEQkY7MTEwNyAxMTcwIDExQUU7CitCREMwO0JEQzA7MTEwNyAxMTcwIDExQUY7QkRDMDsxMTA3IDExNzAgMTFBRjsKK0JEQzE7QkRDMTsxMTA3IDExNzAgMTFCMDtCREMxOzExMDcgMTE3MCAxMUIwOworQkRDMjtCREMyOzExMDcgMTE3MCAxMUIxO0JEQzI7MTEwNyAxMTcwIDExQjE7CitCREMzO0JEQzM7MTEwNyAxMTcwIDExQjI7QkRDMzsxMTA3IDExNzAgMTFCMjsKK0JEQzQ7QkRDNDsxMTA3IDExNzAgMTFCMztCREM0OzExMDcgMTE3MCAxMUIzOworQkRDNTtCREM1OzExMDcgMTE3MCAxMUI0O0JEQzU7MTEwNyAxMTcwIDExQjQ7CitCREM2O0JEQzY7MTEwNyAxMTcwIDExQjU7QkRDNjsxMTA3IDExNzAgMTFCNTsKK0JEQzc7QkRDNzsxMTA3IDExNzAgMTFCNjtCREM3OzExMDcgMTE3MCAxMUI2OworQkRDODtCREM4OzExMDcgMTE3MCAxMUI3O0JEQzg7MTEwNyAxMTcwIDExQjc7CitCREM5O0JEQzk7MTEwNyAxMTcwIDExQjg7QkRDOTsxMTA3IDExNzAgMTFCODsKK0JEQ0E7QkRDQTsxMTA3IDExNzAgMTFCOTtCRENBOzExMDcgMTE3MCAxMUI5OworQkRDQjtCRENCOzExMDcgMTE3MCAxMUJBO0JEQ0I7MTEwNyAxMTcwIDExQkE7CitCRENDO0JEQ0M7MTEwNyAxMTcwIDExQkI7QkRDQzsxMTA3IDExNzAgMTFCQjsKK0JEQ0Q7QkRDRDsxMTA3IDExNzAgMTFCQztCRENEOzExMDcgMTE3MCAxMUJDOworQkRDRTtCRENFOzExMDcgMTE3MCAxMUJEO0JEQ0U7MTEwNyAxMTcwIDExQkQ7CitCRENGO0JEQ0Y7MTEwNyAxMTcwIDExQkU7QkRDRjsxMTA3IDExNzAgMTFCRTsKK0JERDA7QkREMDsxMTA3IDExNzAgMTFCRjtCREQwOzExMDcgMTE3MCAxMUJGOworQkREMTtCREQxOzExMDcgMTE3MCAxMUMwO0JERDE7MTEwNyAxMTcwIDExQzA7CitCREQyO0JERDI7MTEwNyAxMTcwIDExQzE7QkREMjsxMTA3IDExNzAgMTFDMTsKK0JERDM7QkREMzsxMTA3IDExNzAgMTFDMjtCREQzOzExMDcgMTE3MCAxMUMyOworQkRENDtCREQ0OzExMDcgMTE3MTtCREQ0OzExMDcgMTE3MTsKK0JERDU7QkRENTsxMTA3IDExNzEgMTFBODtCREQ1OzExMDcgMTE3MSAxMUE4OworQkRENjtCREQ2OzExMDcgMTE3MSAxMUE5O0JERDY7MTEwNyAxMTcxIDExQTk7CitCREQ3O0JERDc7MTEwNyAxMTcxIDExQUE7QkRENzsxMTA3IDExNzEgMTFBQTsKK0JERDg7QkREODsxMTA3IDExNzEgMTFBQjtCREQ4OzExMDcgMTE3MSAxMUFCOworQkREOTtCREQ5OzExMDcgMTE3MSAxMUFDO0JERDk7MTEwNyAxMTcxIDExQUM7CitCRERBO0JEREE7MTEwNyAxMTcxIDExQUQ7QkREQTsxMTA3IDExNzEgMTFBRDsKK0JEREI7QkREQjsxMTA3IDExNzEgMTFBRTtCRERCOzExMDcgMTE3MSAxMUFFOworQkREQztCRERDOzExMDcgMTE3MSAxMUFGO0JEREM7MTEwNyAxMTcxIDExQUY7CitCREREO0JEREQ7MTEwNyAxMTcxIDExQjA7QkRERDsxMTA3IDExNzEgMTFCMDsKK0JEREU7QkRERTsxMTA3IDExNzEgMTFCMTtCRERFOzExMDcgMTE3MSAxMUIxOworQkRERjtCRERGOzExMDcgMTE3MSAxMUIyO0JEREY7MTEwNyAxMTcxIDExQjI7CitCREUwO0JERTA7MTEwNyAxMTcxIDExQjM7QkRFMDsxMTA3IDExNzEgMTFCMzsKK0JERTE7QkRFMTsxMTA3IDExNzEgMTFCNDtCREUxOzExMDcgMTE3MSAxMUI0OworQkRFMjtCREUyOzExMDcgMTE3MSAxMUI1O0JERTI7MTEwNyAxMTcxIDExQjU7CitCREUzO0JERTM7MTEwNyAxMTcxIDExQjY7QkRFMzsxMTA3IDExNzEgMTFCNjsKK0JERTQ7QkRFNDsxMTA3IDExNzEgMTFCNztCREU0OzExMDcgMTE3MSAxMUI3OworQkRFNTtCREU1OzExMDcgMTE3MSAxMUI4O0JERTU7MTEwNyAxMTcxIDExQjg7CitCREU2O0JERTY7MTEwNyAxMTcxIDExQjk7QkRFNjsxMTA3IDExNzEgMTFCOTsKK0JERTc7QkRFNzsxMTA3IDExNzEgMTFCQTtCREU3OzExMDcgMTE3MSAxMUJBOworQkRFODtCREU4OzExMDcgMTE3MSAxMUJCO0JERTg7MTEwNyAxMTcxIDExQkI7CitCREU5O0JERTk7MTEwNyAxMTcxIDExQkM7QkRFOTsxMTA3IDExNzEgMTFCQzsKK0JERUE7QkRFQTsxMTA3IDExNzEgMTFCRDtCREVBOzExMDcgMTE3MSAxMUJEOworQkRFQjtCREVCOzExMDcgMTE3MSAxMUJFO0JERUI7MTEwNyAxMTcxIDExQkU7CitCREVDO0JERUM7MTEwNyAxMTcxIDExQkY7QkRFQzsxMTA3IDExNzEgMTFCRjsKK0JERUQ7QkRFRDsxMTA3IDExNzEgMTFDMDtCREVEOzExMDcgMTE3MSAxMUMwOworQkRFRTtCREVFOzExMDcgMTE3MSAxMUMxO0JERUU7MTEwNyAxMTcxIDExQzE7CitCREVGO0JERUY7MTEwNyAxMTcxIDExQzI7QkRFRjsxMTA3IDExNzEgMTFDMjsKK0JERjA7QkRGMDsxMTA3IDExNzI7QkRGMDsxMTA3IDExNzI7CitCREYxO0JERjE7MTEwNyAxMTcyIDExQTg7QkRGMTsxMTA3IDExNzIgMTFBODsKK0JERjI7QkRGMjsxMTA3IDExNzIgMTFBOTtCREYyOzExMDcgMTE3MiAxMUE5OworQkRGMztCREYzOzExMDcgMTE3MiAxMUFBO0JERjM7MTEwNyAxMTcyIDExQUE7CitCREY0O0JERjQ7MTEwNyAxMTcyIDExQUI7QkRGNDsxMTA3IDExNzIgMTFBQjsKK0JERjU7QkRGNTsxMTA3IDExNzIgMTFBQztCREY1OzExMDcgMTE3MiAxMUFDOworQkRGNjtCREY2OzExMDcgMTE3MiAxMUFEO0JERjY7MTEwNyAxMTcyIDExQUQ7CitCREY3O0JERjc7MTEwNyAxMTcyIDExQUU7QkRGNzsxMTA3IDExNzIgMTFBRTsKK0JERjg7QkRGODsxMTA3IDExNzIgMTFBRjtCREY4OzExMDcgMTE3MiAxMUFGOworQkRGOTtCREY5OzExMDcgMTE3MiAxMUIwO0JERjk7MTEwNyAxMTcyIDExQjA7CitCREZBO0JERkE7MTEwNyAxMTcyIDExQjE7QkRGQTsxMTA3IDExNzIgMTFCMTsKK0JERkI7QkRGQjsxMTA3IDExNzIgMTFCMjtCREZCOzExMDcgMTE3MiAxMUIyOworQkRGQztCREZDOzExMDcgMTE3MiAxMUIzO0JERkM7MTEwNyAxMTcyIDExQjM7CitCREZEO0JERkQ7MTEwNyAxMTcyIDExQjQ7QkRGRDsxMTA3IDExNzIgMTFCNDsKK0JERkU7QkRGRTsxMTA3IDExNzIgMTFCNTtCREZFOzExMDcgMTE3MiAxMUI1OworQkRGRjtCREZGOzExMDcgMTE3MiAxMUI2O0JERkY7MTEwNyAxMTcyIDExQjY7CitCRTAwO0JFMDA7MTEwNyAxMTcyIDExQjc7QkUwMDsxMTA3IDExNzIgMTFCNzsKK0JFMDE7QkUwMTsxMTA3IDExNzIgMTFCODtCRTAxOzExMDcgMTE3MiAxMUI4OworQkUwMjtCRTAyOzExMDcgMTE3MiAxMUI5O0JFMDI7MTEwNyAxMTcyIDExQjk7CitCRTAzO0JFMDM7MTEwNyAxMTcyIDExQkE7QkUwMzsxMTA3IDExNzIgMTFCQTsKK0JFMDQ7QkUwNDsxMTA3IDExNzIgMTFCQjtCRTA0OzExMDcgMTE3MiAxMUJCOworQkUwNTtCRTA1OzExMDcgMTE3MiAxMUJDO0JFMDU7MTEwNyAxMTcyIDExQkM7CitCRTA2O0JFMDY7MTEwNyAxMTcyIDExQkQ7QkUwNjsxMTA3IDExNzIgMTFCRDsKK0JFMDc7QkUwNzsxMTA3IDExNzIgMTFCRTtCRTA3OzExMDcgMTE3MiAxMUJFOworQkUwODtCRTA4OzExMDcgMTE3MiAxMUJGO0JFMDg7MTEwNyAxMTcyIDExQkY7CitCRTA5O0JFMDk7MTEwNyAxMTcyIDExQzA7QkUwOTsxMTA3IDExNzIgMTFDMDsKK0JFMEE7QkUwQTsxMTA3IDExNzIgMTFDMTtCRTBBOzExMDcgMTE3MiAxMUMxOworQkUwQjtCRTBCOzExMDcgMTE3MiAxMUMyO0JFMEI7MTEwNyAxMTcyIDExQzI7CitCRTBDO0JFMEM7MTEwNyAxMTczO0JFMEM7MTEwNyAxMTczOworQkUwRDtCRTBEOzExMDcgMTE3MyAxMUE4O0JFMEQ7MTEwNyAxMTczIDExQTg7CitCRTBFO0JFMEU7MTEwNyAxMTczIDExQTk7QkUwRTsxMTA3IDExNzMgMTFBOTsKK0JFMEY7QkUwRjsxMTA3IDExNzMgMTFBQTtCRTBGOzExMDcgMTE3MyAxMUFBOworQkUxMDtCRTEwOzExMDcgMTE3MyAxMUFCO0JFMTA7MTEwNyAxMTczIDExQUI7CitCRTExO0JFMTE7MTEwNyAxMTczIDExQUM7QkUxMTsxMTA3IDExNzMgMTFBQzsKK0JFMTI7QkUxMjsxMTA3IDExNzMgMTFBRDtCRTEyOzExMDcgMTE3MyAxMUFEOworQkUxMztCRTEzOzExMDcgMTE3MyAxMUFFO0JFMTM7MTEwNyAxMTczIDExQUU7CitCRTE0O0JFMTQ7MTEwNyAxMTczIDExQUY7QkUxNDsxMTA3IDExNzMgMTFBRjsKK0JFMTU7QkUxNTsxMTA3IDExNzMgMTFCMDtCRTE1OzExMDcgMTE3MyAxMUIwOworQkUxNjtCRTE2OzExMDcgMTE3MyAxMUIxO0JFMTY7MTEwNyAxMTczIDExQjE7CitCRTE3O0JFMTc7MTEwNyAxMTczIDExQjI7QkUxNzsxMTA3IDExNzMgMTFCMjsKK0JFMTg7QkUxODsxMTA3IDExNzMgMTFCMztCRTE4OzExMDcgMTE3MyAxMUIzOworQkUxOTtCRTE5OzExMDcgMTE3MyAxMUI0O0JFMTk7MTEwNyAxMTczIDExQjQ7CitCRTFBO0JFMUE7MTEwNyAxMTczIDExQjU7QkUxQTsxMTA3IDExNzMgMTFCNTsKK0JFMUI7QkUxQjsxMTA3IDExNzMgMTFCNjtCRTFCOzExMDcgMTE3MyAxMUI2OworQkUxQztCRTFDOzExMDcgMTE3MyAxMUI3O0JFMUM7MTEwNyAxMTczIDExQjc7CitCRTFEO0JFMUQ7MTEwNyAxMTczIDExQjg7QkUxRDsxMTA3IDExNzMgMTFCODsKK0JFMUU7QkUxRTsxMTA3IDExNzMgMTFCOTtCRTFFOzExMDcgMTE3MyAxMUI5OworQkUxRjtCRTFGOzExMDcgMTE3MyAxMUJBO0JFMUY7MTEwNyAxMTczIDExQkE7CitCRTIwO0JFMjA7MTEwNyAxMTczIDExQkI7QkUyMDsxMTA3IDExNzMgMTFCQjsKK0JFMjE7QkUyMTsxMTA3IDExNzMgMTFCQztCRTIxOzExMDcgMTE3MyAxMUJDOworQkUyMjtCRTIyOzExMDcgMTE3MyAxMUJEO0JFMjI7MTEwNyAxMTczIDExQkQ7CitCRTIzO0JFMjM7MTEwNyAxMTczIDExQkU7QkUyMzsxMTA3IDExNzMgMTFCRTsKK0JFMjQ7QkUyNDsxMTA3IDExNzMgMTFCRjtCRTI0OzExMDcgMTE3MyAxMUJGOworQkUyNTtCRTI1OzExMDcgMTE3MyAxMUMwO0JFMjU7MTEwNyAxMTczIDExQzA7CitCRTI2O0JFMjY7MTEwNyAxMTczIDExQzE7QkUyNjsxMTA3IDExNzMgMTFDMTsKK0JFMjc7QkUyNzsxMTA3IDExNzMgMTFDMjtCRTI3OzExMDcgMTE3MyAxMUMyOworQkUyODtCRTI4OzExMDcgMTE3NDtCRTI4OzExMDcgMTE3NDsKK0JFMjk7QkUyOTsxMTA3IDExNzQgMTFBODtCRTI5OzExMDcgMTE3NCAxMUE4OworQkUyQTtCRTJBOzExMDcgMTE3NCAxMUE5O0JFMkE7MTEwNyAxMTc0IDExQTk7CitCRTJCO0JFMkI7MTEwNyAxMTc0IDExQUE7QkUyQjsxMTA3IDExNzQgMTFBQTsKK0JFMkM7QkUyQzsxMTA3IDExNzQgMTFBQjtCRTJDOzExMDcgMTE3NCAxMUFCOworQkUyRDtCRTJEOzExMDcgMTE3NCAxMUFDO0JFMkQ7MTEwNyAxMTc0IDExQUM7CitCRTJFO0JFMkU7MTEwNyAxMTc0IDExQUQ7QkUyRTsxMTA3IDExNzQgMTFBRDsKK0JFMkY7QkUyRjsxMTA3IDExNzQgMTFBRTtCRTJGOzExMDcgMTE3NCAxMUFFOworQkUzMDtCRTMwOzExMDcgMTE3NCAxMUFGO0JFMzA7MTEwNyAxMTc0IDExQUY7CitCRTMxO0JFMzE7MTEwNyAxMTc0IDExQjA7QkUzMTsxMTA3IDExNzQgMTFCMDsKK0JFMzI7QkUzMjsxMTA3IDExNzQgMTFCMTtCRTMyOzExMDcgMTE3NCAxMUIxOworQkUzMztCRTMzOzExMDcgMTE3NCAxMUIyO0JFMzM7MTEwNyAxMTc0IDExQjI7CitCRTM0O0JFMzQ7MTEwNyAxMTc0IDExQjM7QkUzNDsxMTA3IDExNzQgMTFCMzsKK0JFMzU7QkUzNTsxMTA3IDExNzQgMTFCNDtCRTM1OzExMDcgMTE3NCAxMUI0OworQkUzNjtCRTM2OzExMDcgMTE3NCAxMUI1O0JFMzY7MTEwNyAxMTc0IDExQjU7CitCRTM3O0JFMzc7MTEwNyAxMTc0IDExQjY7QkUzNzsxMTA3IDExNzQgMTFCNjsKK0JFMzg7QkUzODsxMTA3IDExNzQgMTFCNztCRTM4OzExMDcgMTE3NCAxMUI3OworQkUzOTtCRTM5OzExMDcgMTE3NCAxMUI4O0JFMzk7MTEwNyAxMTc0IDExQjg7CitCRTNBO0JFM0E7MTEwNyAxMTc0IDExQjk7QkUzQTsxMTA3IDExNzQgMTFCOTsKK0JFM0I7QkUzQjsxMTA3IDExNzQgMTFCQTtCRTNCOzExMDcgMTE3NCAxMUJBOworQkUzQztCRTNDOzExMDcgMTE3NCAxMUJCO0JFM0M7MTEwNyAxMTc0IDExQkI7CitCRTNEO0JFM0Q7MTEwNyAxMTc0IDExQkM7QkUzRDsxMTA3IDExNzQgMTFCQzsKK0JFM0U7QkUzRTsxMTA3IDExNzQgMTFCRDtCRTNFOzExMDcgMTE3NCAxMUJEOworQkUzRjtCRTNGOzExMDcgMTE3NCAxMUJFO0JFM0Y7MTEwNyAxMTc0IDExQkU7CitCRTQwO0JFNDA7MTEwNyAxMTc0IDExQkY7QkU0MDsxMTA3IDExNzQgMTFCRjsKK0JFNDE7QkU0MTsxMTA3IDExNzQgMTFDMDtCRTQxOzExMDcgMTE3NCAxMUMwOworQkU0MjtCRTQyOzExMDcgMTE3NCAxMUMxO0JFNDI7MTEwNyAxMTc0IDExQzE7CitCRTQzO0JFNDM7MTEwNyAxMTc0IDExQzI7QkU0MzsxMTA3IDExNzQgMTFDMjsKK0JFNDQ7QkU0NDsxMTA3IDExNzU7QkU0NDsxMTA3IDExNzU7CitCRTQ1O0JFNDU7MTEwNyAxMTc1IDExQTg7QkU0NTsxMTA3IDExNzUgMTFBODsKK0JFNDY7QkU0NjsxMTA3IDExNzUgMTFBOTtCRTQ2OzExMDcgMTE3NSAxMUE5OworQkU0NztCRTQ3OzExMDcgMTE3NSAxMUFBO0JFNDc7MTEwNyAxMTc1IDExQUE7CitCRTQ4O0JFNDg7MTEwNyAxMTc1IDExQUI7QkU0ODsxMTA3IDExNzUgMTFBQjsKK0JFNDk7QkU0OTsxMTA3IDExNzUgMTFBQztCRTQ5OzExMDcgMTE3NSAxMUFDOworQkU0QTtCRTRBOzExMDcgMTE3NSAxMUFEO0JFNEE7MTEwNyAxMTc1IDExQUQ7CitCRTRCO0JFNEI7MTEwNyAxMTc1IDExQUU7QkU0QjsxMTA3IDExNzUgMTFBRTsKK0JFNEM7QkU0QzsxMTA3IDExNzUgMTFBRjtCRTRDOzExMDcgMTE3NSAxMUFGOworQkU0RDtCRTREOzExMDcgMTE3NSAxMUIwO0JFNEQ7MTEwNyAxMTc1IDExQjA7CitCRTRFO0JFNEU7MTEwNyAxMTc1IDExQjE7QkU0RTsxMTA3IDExNzUgMTFCMTsKK0JFNEY7QkU0RjsxMTA3IDExNzUgMTFCMjtCRTRGOzExMDcgMTE3NSAxMUIyOworQkU1MDtCRTUwOzExMDcgMTE3NSAxMUIzO0JFNTA7MTEwNyAxMTc1IDExQjM7CitCRTUxO0JFNTE7MTEwNyAxMTc1IDExQjQ7QkU1MTsxMTA3IDExNzUgMTFCNDsKK0JFNTI7QkU1MjsxMTA3IDExNzUgMTFCNTtCRTUyOzExMDcgMTE3NSAxMUI1OworQkU1MztCRTUzOzExMDcgMTE3NSAxMUI2O0JFNTM7MTEwNyAxMTc1IDExQjY7CitCRTU0O0JFNTQ7MTEwNyAxMTc1IDExQjc7QkU1NDsxMTA3IDExNzUgMTFCNzsKK0JFNTU7QkU1NTsxMTA3IDExNzUgMTFCODtCRTU1OzExMDcgMTE3NSAxMUI4OworQkU1NjtCRTU2OzExMDcgMTE3NSAxMUI5O0JFNTY7MTEwNyAxMTc1IDExQjk7CitCRTU3O0JFNTc7MTEwNyAxMTc1IDExQkE7QkU1NzsxMTA3IDExNzUgMTFCQTsKK0JFNTg7QkU1ODsxMTA3IDExNzUgMTFCQjtCRTU4OzExMDcgMTE3NSAxMUJCOworQkU1OTtCRTU5OzExMDcgMTE3NSAxMUJDO0JFNTk7MTEwNyAxMTc1IDExQkM7CitCRTVBO0JFNUE7MTEwNyAxMTc1IDExQkQ7QkU1QTsxMTA3IDExNzUgMTFCRDsKK0JFNUI7QkU1QjsxMTA3IDExNzUgMTFCRTtCRTVCOzExMDcgMTE3NSAxMUJFOworQkU1QztCRTVDOzExMDcgMTE3NSAxMUJGO0JFNUM7MTEwNyAxMTc1IDExQkY7CitCRTVEO0JFNUQ7MTEwNyAxMTc1IDExQzA7QkU1RDsxMTA3IDExNzUgMTFDMDsKK0JFNUU7QkU1RTsxMTA3IDExNzUgMTFDMTtCRTVFOzExMDcgMTE3NSAxMUMxOworQkU1RjtCRTVGOzExMDcgMTE3NSAxMUMyO0JFNUY7MTEwNyAxMTc1IDExQzI7CitCRTYwO0JFNjA7MTEwOCAxMTYxO0JFNjA7MTEwOCAxMTYxOworQkU2MTtCRTYxOzExMDggMTE2MSAxMUE4O0JFNjE7MTEwOCAxMTYxIDExQTg7CitCRTYyO0JFNjI7MTEwOCAxMTYxIDExQTk7QkU2MjsxMTA4IDExNjEgMTFBOTsKK0JFNjM7QkU2MzsxMTA4IDExNjEgMTFBQTtCRTYzOzExMDggMTE2MSAxMUFBOworQkU2NDtCRTY0OzExMDggMTE2MSAxMUFCO0JFNjQ7MTEwOCAxMTYxIDExQUI7CitCRTY1O0JFNjU7MTEwOCAxMTYxIDExQUM7QkU2NTsxMTA4IDExNjEgMTFBQzsKK0JFNjY7QkU2NjsxMTA4IDExNjEgMTFBRDtCRTY2OzExMDggMTE2MSAxMUFEOworQkU2NztCRTY3OzExMDggMTE2MSAxMUFFO0JFNjc7MTEwOCAxMTYxIDExQUU7CitCRTY4O0JFNjg7MTEwOCAxMTYxIDExQUY7QkU2ODsxMTA4IDExNjEgMTFBRjsKK0JFNjk7QkU2OTsxMTA4IDExNjEgMTFCMDtCRTY5OzExMDggMTE2MSAxMUIwOworQkU2QTtCRTZBOzExMDggMTE2MSAxMUIxO0JFNkE7MTEwOCAxMTYxIDExQjE7CitCRTZCO0JFNkI7MTEwOCAxMTYxIDExQjI7QkU2QjsxMTA4IDExNjEgMTFCMjsKK0JFNkM7QkU2QzsxMTA4IDExNjEgMTFCMztCRTZDOzExMDggMTE2MSAxMUIzOworQkU2RDtCRTZEOzExMDggMTE2MSAxMUI0O0JFNkQ7MTEwOCAxMTYxIDExQjQ7CitCRTZFO0JFNkU7MTEwOCAxMTYxIDExQjU7QkU2RTsxMTA4IDExNjEgMTFCNTsKK0JFNkY7QkU2RjsxMTA4IDExNjEgMTFCNjtCRTZGOzExMDggMTE2MSAxMUI2OworQkU3MDtCRTcwOzExMDggMTE2MSAxMUI3O0JFNzA7MTEwOCAxMTYxIDExQjc7CitCRTcxO0JFNzE7MTEwOCAxMTYxIDExQjg7QkU3MTsxMTA4IDExNjEgMTFCODsKK0JFNzI7QkU3MjsxMTA4IDExNjEgMTFCOTtCRTcyOzExMDggMTE2MSAxMUI5OworQkU3MztCRTczOzExMDggMTE2MSAxMUJBO0JFNzM7MTEwOCAxMTYxIDExQkE7CitCRTc0O0JFNzQ7MTEwOCAxMTYxIDExQkI7QkU3NDsxMTA4IDExNjEgMTFCQjsKK0JFNzU7QkU3NTsxMTA4IDExNjEgMTFCQztCRTc1OzExMDggMTE2MSAxMUJDOworQkU3NjtCRTc2OzExMDggMTE2MSAxMUJEO0JFNzY7MTEwOCAxMTYxIDExQkQ7CitCRTc3O0JFNzc7MTEwOCAxMTYxIDExQkU7QkU3NzsxMTA4IDExNjEgMTFCRTsKK0JFNzg7QkU3ODsxMTA4IDExNjEgMTFCRjtCRTc4OzExMDggMTE2MSAxMUJGOworQkU3OTtCRTc5OzExMDggMTE2MSAxMUMwO0JFNzk7MTEwOCAxMTYxIDExQzA7CitCRTdBO0JFN0E7MTEwOCAxMTYxIDExQzE7QkU3QTsxMTA4IDExNjEgMTFDMTsKK0JFN0I7QkU3QjsxMTA4IDExNjEgMTFDMjtCRTdCOzExMDggMTE2MSAxMUMyOworQkU3QztCRTdDOzExMDggMTE2MjtCRTdDOzExMDggMTE2MjsKK0JFN0Q7QkU3RDsxMTA4IDExNjIgMTFBODtCRTdEOzExMDggMTE2MiAxMUE4OworQkU3RTtCRTdFOzExMDggMTE2MiAxMUE5O0JFN0U7MTEwOCAxMTYyIDExQTk7CitCRTdGO0JFN0Y7MTEwOCAxMTYyIDExQUE7QkU3RjsxMTA4IDExNjIgMTFBQTsKK0JFODA7QkU4MDsxMTA4IDExNjIgMTFBQjtCRTgwOzExMDggMTE2MiAxMUFCOworQkU4MTtCRTgxOzExMDggMTE2MiAxMUFDO0JFODE7MTEwOCAxMTYyIDExQUM7CitCRTgyO0JFODI7MTEwOCAxMTYyIDExQUQ7QkU4MjsxMTA4IDExNjIgMTFBRDsKK0JFODM7QkU4MzsxMTA4IDExNjIgMTFBRTtCRTgzOzExMDggMTE2MiAxMUFFOworQkU4NDtCRTg0OzExMDggMTE2MiAxMUFGO0JFODQ7MTEwOCAxMTYyIDExQUY7CitCRTg1O0JFODU7MTEwOCAxMTYyIDExQjA7QkU4NTsxMTA4IDExNjIgMTFCMDsKK0JFODY7QkU4NjsxMTA4IDExNjIgMTFCMTtCRTg2OzExMDggMTE2MiAxMUIxOworQkU4NztCRTg3OzExMDggMTE2MiAxMUIyO0JFODc7MTEwOCAxMTYyIDExQjI7CitCRTg4O0JFODg7MTEwOCAxMTYyIDExQjM7QkU4ODsxMTA4IDExNjIgMTFCMzsKK0JFODk7QkU4OTsxMTA4IDExNjIgMTFCNDtCRTg5OzExMDggMTE2MiAxMUI0OworQkU4QTtCRThBOzExMDggMTE2MiAxMUI1O0JFOEE7MTEwOCAxMTYyIDExQjU7CitCRThCO0JFOEI7MTEwOCAxMTYyIDExQjY7QkU4QjsxMTA4IDExNjIgMTFCNjsKK0JFOEM7QkU4QzsxMTA4IDExNjIgMTFCNztCRThDOzExMDggMTE2MiAxMUI3OworQkU4RDtCRThEOzExMDggMTE2MiAxMUI4O0JFOEQ7MTEwOCAxMTYyIDExQjg7CitCRThFO0JFOEU7MTEwOCAxMTYyIDExQjk7QkU4RTsxMTA4IDExNjIgMTFCOTsKK0JFOEY7QkU4RjsxMTA4IDExNjIgMTFCQTtCRThGOzExMDggMTE2MiAxMUJBOworQkU5MDtCRTkwOzExMDggMTE2MiAxMUJCO0JFOTA7MTEwOCAxMTYyIDExQkI7CitCRTkxO0JFOTE7MTEwOCAxMTYyIDExQkM7QkU5MTsxMTA4IDExNjIgMTFCQzsKK0JFOTI7QkU5MjsxMTA4IDExNjIgMTFCRDtCRTkyOzExMDggMTE2MiAxMUJEOworQkU5MztCRTkzOzExMDggMTE2MiAxMUJFO0JFOTM7MTEwOCAxMTYyIDExQkU7CitCRTk0O0JFOTQ7MTEwOCAxMTYyIDExQkY7QkU5NDsxMTA4IDExNjIgMTFCRjsKK0JFOTU7QkU5NTsxMTA4IDExNjIgMTFDMDtCRTk1OzExMDggMTE2MiAxMUMwOworQkU5NjtCRTk2OzExMDggMTE2MiAxMUMxO0JFOTY7MTEwOCAxMTYyIDExQzE7CitCRTk3O0JFOTc7MTEwOCAxMTYyIDExQzI7QkU5NzsxMTA4IDExNjIgMTFDMjsKK0JFOTg7QkU5ODsxMTA4IDExNjM7QkU5ODsxMTA4IDExNjM7CitCRTk5O0JFOTk7MTEwOCAxMTYzIDExQTg7QkU5OTsxMTA4IDExNjMgMTFBODsKK0JFOUE7QkU5QTsxMTA4IDExNjMgMTFBOTtCRTlBOzExMDggMTE2MyAxMUE5OworQkU5QjtCRTlCOzExMDggMTE2MyAxMUFBO0JFOUI7MTEwOCAxMTYzIDExQUE7CitCRTlDO0JFOUM7MTEwOCAxMTYzIDExQUI7QkU5QzsxMTA4IDExNjMgMTFBQjsKK0JFOUQ7QkU5RDsxMTA4IDExNjMgMTFBQztCRTlEOzExMDggMTE2MyAxMUFDOworQkU5RTtCRTlFOzExMDggMTE2MyAxMUFEO0JFOUU7MTEwOCAxMTYzIDExQUQ7CitCRTlGO0JFOUY7MTEwOCAxMTYzIDExQUU7QkU5RjsxMTA4IDExNjMgMTFBRTsKK0JFQTA7QkVBMDsxMTA4IDExNjMgMTFBRjtCRUEwOzExMDggMTE2MyAxMUFGOworQkVBMTtCRUExOzExMDggMTE2MyAxMUIwO0JFQTE7MTEwOCAxMTYzIDExQjA7CitCRUEyO0JFQTI7MTEwOCAxMTYzIDExQjE7QkVBMjsxMTA4IDExNjMgMTFCMTsKK0JFQTM7QkVBMzsxMTA4IDExNjMgMTFCMjtCRUEzOzExMDggMTE2MyAxMUIyOworQkVBNDtCRUE0OzExMDggMTE2MyAxMUIzO0JFQTQ7MTEwOCAxMTYzIDExQjM7CitCRUE1O0JFQTU7MTEwOCAxMTYzIDExQjQ7QkVBNTsxMTA4IDExNjMgMTFCNDsKK0JFQTY7QkVBNjsxMTA4IDExNjMgMTFCNTtCRUE2OzExMDggMTE2MyAxMUI1OworQkVBNztCRUE3OzExMDggMTE2MyAxMUI2O0JFQTc7MTEwOCAxMTYzIDExQjY7CitCRUE4O0JFQTg7MTEwOCAxMTYzIDExQjc7QkVBODsxMTA4IDExNjMgMTFCNzsKK0JFQTk7QkVBOTsxMTA4IDExNjMgMTFCODtCRUE5OzExMDggMTE2MyAxMUI4OworQkVBQTtCRUFBOzExMDggMTE2MyAxMUI5O0JFQUE7MTEwOCAxMTYzIDExQjk7CitCRUFCO0JFQUI7MTEwOCAxMTYzIDExQkE7QkVBQjsxMTA4IDExNjMgMTFCQTsKK0JFQUM7QkVBQzsxMTA4IDExNjMgMTFCQjtCRUFDOzExMDggMTE2MyAxMUJCOworQkVBRDtCRUFEOzExMDggMTE2MyAxMUJDO0JFQUQ7MTEwOCAxMTYzIDExQkM7CitCRUFFO0JFQUU7MTEwOCAxMTYzIDExQkQ7QkVBRTsxMTA4IDExNjMgMTFCRDsKK0JFQUY7QkVBRjsxMTA4IDExNjMgMTFCRTtCRUFGOzExMDggMTE2MyAxMUJFOworQkVCMDtCRUIwOzExMDggMTE2MyAxMUJGO0JFQjA7MTEwOCAxMTYzIDExQkY7CitCRUIxO0JFQjE7MTEwOCAxMTYzIDExQzA7QkVCMTsxMTA4IDExNjMgMTFDMDsKK0JFQjI7QkVCMjsxMTA4IDExNjMgMTFDMTtCRUIyOzExMDggMTE2MyAxMUMxOworQkVCMztCRUIzOzExMDggMTE2MyAxMUMyO0JFQjM7MTEwOCAxMTYzIDExQzI7CitCRUI0O0JFQjQ7MTEwOCAxMTY0O0JFQjQ7MTEwOCAxMTY0OworQkVCNTtCRUI1OzExMDggMTE2NCAxMUE4O0JFQjU7MTEwOCAxMTY0IDExQTg7CitCRUI2O0JFQjY7MTEwOCAxMTY0IDExQTk7QkVCNjsxMTA4IDExNjQgMTFBOTsKK0JFQjc7QkVCNzsxMTA4IDExNjQgMTFBQTtCRUI3OzExMDggMTE2NCAxMUFBOworQkVCODtCRUI4OzExMDggMTE2NCAxMUFCO0JFQjg7MTEwOCAxMTY0IDExQUI7CitCRUI5O0JFQjk7MTEwOCAxMTY0IDExQUM7QkVCOTsxMTA4IDExNjQgMTFBQzsKK0JFQkE7QkVCQTsxMTA4IDExNjQgMTFBRDtCRUJBOzExMDggMTE2NCAxMUFEOworQkVCQjtCRUJCOzExMDggMTE2NCAxMUFFO0JFQkI7MTEwOCAxMTY0IDExQUU7CitCRUJDO0JFQkM7MTEwOCAxMTY0IDExQUY7QkVCQzsxMTA4IDExNjQgMTFBRjsKK0JFQkQ7QkVCRDsxMTA4IDExNjQgMTFCMDtCRUJEOzExMDggMTE2NCAxMUIwOworQkVCRTtCRUJFOzExMDggMTE2NCAxMUIxO0JFQkU7MTEwOCAxMTY0IDExQjE7CitCRUJGO0JFQkY7MTEwOCAxMTY0IDExQjI7QkVCRjsxMTA4IDExNjQgMTFCMjsKK0JFQzA7QkVDMDsxMTA4IDExNjQgMTFCMztCRUMwOzExMDggMTE2NCAxMUIzOworQkVDMTtCRUMxOzExMDggMTE2NCAxMUI0O0JFQzE7MTEwOCAxMTY0IDExQjQ7CitCRUMyO0JFQzI7MTEwOCAxMTY0IDExQjU7QkVDMjsxMTA4IDExNjQgMTFCNTsKK0JFQzM7QkVDMzsxMTA4IDExNjQgMTFCNjtCRUMzOzExMDggMTE2NCAxMUI2OworQkVDNDtCRUM0OzExMDggMTE2NCAxMUI3O0JFQzQ7MTEwOCAxMTY0IDExQjc7CitCRUM1O0JFQzU7MTEwOCAxMTY0IDExQjg7QkVDNTsxMTA4IDExNjQgMTFCODsKK0JFQzY7QkVDNjsxMTA4IDExNjQgMTFCOTtCRUM2OzExMDggMTE2NCAxMUI5OworQkVDNztCRUM3OzExMDggMTE2NCAxMUJBO0JFQzc7MTEwOCAxMTY0IDExQkE7CitCRUM4O0JFQzg7MTEwOCAxMTY0IDExQkI7QkVDODsxMTA4IDExNjQgMTFCQjsKK0JFQzk7QkVDOTsxMTA4IDExNjQgMTFCQztCRUM5OzExMDggMTE2NCAxMUJDOworQkVDQTtCRUNBOzExMDggMTE2NCAxMUJEO0JFQ0E7MTEwOCAxMTY0IDExQkQ7CitCRUNCO0JFQ0I7MTEwOCAxMTY0IDExQkU7QkVDQjsxMTA4IDExNjQgMTFCRTsKK0JFQ0M7QkVDQzsxMTA4IDExNjQgMTFCRjtCRUNDOzExMDggMTE2NCAxMUJGOworQkVDRDtCRUNEOzExMDggMTE2NCAxMUMwO0JFQ0Q7MTEwOCAxMTY0IDExQzA7CitCRUNFO0JFQ0U7MTEwOCAxMTY0IDExQzE7QkVDRTsxMTA4IDExNjQgMTFDMTsKK0JFQ0Y7QkVDRjsxMTA4IDExNjQgMTFDMjtCRUNGOzExMDggMTE2NCAxMUMyOworQkVEMDtCRUQwOzExMDggMTE2NTtCRUQwOzExMDggMTE2NTsKK0JFRDE7QkVEMTsxMTA4IDExNjUgMTFBODtCRUQxOzExMDggMTE2NSAxMUE4OworQkVEMjtCRUQyOzExMDggMTE2NSAxMUE5O0JFRDI7MTEwOCAxMTY1IDExQTk7CitCRUQzO0JFRDM7MTEwOCAxMTY1IDExQUE7QkVEMzsxMTA4IDExNjUgMTFBQTsKK0JFRDQ7QkVENDsxMTA4IDExNjUgMTFBQjtCRUQ0OzExMDggMTE2NSAxMUFCOworQkVENTtCRUQ1OzExMDggMTE2NSAxMUFDO0JFRDU7MTEwOCAxMTY1IDExQUM7CitCRUQ2O0JFRDY7MTEwOCAxMTY1IDExQUQ7QkVENjsxMTA4IDExNjUgMTFBRDsKK0JFRDc7QkVENzsxMTA4IDExNjUgMTFBRTtCRUQ3OzExMDggMTE2NSAxMUFFOworQkVEODtCRUQ4OzExMDggMTE2NSAxMUFGO0JFRDg7MTEwOCAxMTY1IDExQUY7CitCRUQ5O0JFRDk7MTEwOCAxMTY1IDExQjA7QkVEOTsxMTA4IDExNjUgMTFCMDsKK0JFREE7QkVEQTsxMTA4IDExNjUgMTFCMTtCRURBOzExMDggMTE2NSAxMUIxOworQkVEQjtCRURCOzExMDggMTE2NSAxMUIyO0JFREI7MTEwOCAxMTY1IDExQjI7CitCRURDO0JFREM7MTEwOCAxMTY1IDExQjM7QkVEQzsxMTA4IDExNjUgMTFCMzsKK0JFREQ7QkVERDsxMTA4IDExNjUgMTFCNDtCRUREOzExMDggMTE2NSAxMUI0OworQkVERTtCRURFOzExMDggMTE2NSAxMUI1O0JFREU7MTEwOCAxMTY1IDExQjU7CitCRURGO0JFREY7MTEwOCAxMTY1IDExQjY7QkVERjsxMTA4IDExNjUgMTFCNjsKK0JFRTA7QkVFMDsxMTA4IDExNjUgMTFCNztCRUUwOzExMDggMTE2NSAxMUI3OworQkVFMTtCRUUxOzExMDggMTE2NSAxMUI4O0JFRTE7MTEwOCAxMTY1IDExQjg7CitCRUUyO0JFRTI7MTEwOCAxMTY1IDExQjk7QkVFMjsxMTA4IDExNjUgMTFCOTsKK0JFRTM7QkVFMzsxMTA4IDExNjUgMTFCQTtCRUUzOzExMDggMTE2NSAxMUJBOworQkVFNDtCRUU0OzExMDggMTE2NSAxMUJCO0JFRTQ7MTEwOCAxMTY1IDExQkI7CitCRUU1O0JFRTU7MTEwOCAxMTY1IDExQkM7QkVFNTsxMTA4IDExNjUgMTFCQzsKK0JFRTY7QkVFNjsxMTA4IDExNjUgMTFCRDtCRUU2OzExMDggMTE2NSAxMUJEOworQkVFNztCRUU3OzExMDggMTE2NSAxMUJFO0JFRTc7MTEwOCAxMTY1IDExQkU7CitCRUU4O0JFRTg7MTEwOCAxMTY1IDExQkY7QkVFODsxMTA4IDExNjUgMTFCRjsKK0JFRTk7QkVFOTsxMTA4IDExNjUgMTFDMDtCRUU5OzExMDggMTE2NSAxMUMwOworQkVFQTtCRUVBOzExMDggMTE2NSAxMUMxO0JFRUE7MTEwOCAxMTY1IDExQzE7CitCRUVCO0JFRUI7MTEwOCAxMTY1IDExQzI7QkVFQjsxMTA4IDExNjUgMTFDMjsKK0JFRUM7QkVFQzsxMTA4IDExNjY7QkVFQzsxMTA4IDExNjY7CitCRUVEO0JFRUQ7MTEwOCAxMTY2IDExQTg7QkVFRDsxMTA4IDExNjYgMTFBODsKK0JFRUU7QkVFRTsxMTA4IDExNjYgMTFBOTtCRUVFOzExMDggMTE2NiAxMUE5OworQkVFRjtCRUVGOzExMDggMTE2NiAxMUFBO0JFRUY7MTEwOCAxMTY2IDExQUE7CitCRUYwO0JFRjA7MTEwOCAxMTY2IDExQUI7QkVGMDsxMTA4IDExNjYgMTFBQjsKK0JFRjE7QkVGMTsxMTA4IDExNjYgMTFBQztCRUYxOzExMDggMTE2NiAxMUFDOworQkVGMjtCRUYyOzExMDggMTE2NiAxMUFEO0JFRjI7MTEwOCAxMTY2IDExQUQ7CitCRUYzO0JFRjM7MTEwOCAxMTY2IDExQUU7QkVGMzsxMTA4IDExNjYgMTFBRTsKK0JFRjQ7QkVGNDsxMTA4IDExNjYgMTFBRjtCRUY0OzExMDggMTE2NiAxMUFGOworQkVGNTtCRUY1OzExMDggMTE2NiAxMUIwO0JFRjU7MTEwOCAxMTY2IDExQjA7CitCRUY2O0JFRjY7MTEwOCAxMTY2IDExQjE7QkVGNjsxMTA4IDExNjYgMTFCMTsKK0JFRjc7QkVGNzsxMTA4IDExNjYgMTFCMjtCRUY3OzExMDggMTE2NiAxMUIyOworQkVGODtCRUY4OzExMDggMTE2NiAxMUIzO0JFRjg7MTEwOCAxMTY2IDExQjM7CitCRUY5O0JFRjk7MTEwOCAxMTY2IDExQjQ7QkVGOTsxMTA4IDExNjYgMTFCNDsKK0JFRkE7QkVGQTsxMTA4IDExNjYgMTFCNTtCRUZBOzExMDggMTE2NiAxMUI1OworQkVGQjtCRUZCOzExMDggMTE2NiAxMUI2O0JFRkI7MTEwOCAxMTY2IDExQjY7CitCRUZDO0JFRkM7MTEwOCAxMTY2IDExQjc7QkVGQzsxMTA4IDExNjYgMTFCNzsKK0JFRkQ7QkVGRDsxMTA4IDExNjYgMTFCODtCRUZEOzExMDggMTE2NiAxMUI4OworQkVGRTtCRUZFOzExMDggMTE2NiAxMUI5O0JFRkU7MTEwOCAxMTY2IDExQjk7CitCRUZGO0JFRkY7MTEwOCAxMTY2IDExQkE7QkVGRjsxMTA4IDExNjYgMTFCQTsKK0JGMDA7QkYwMDsxMTA4IDExNjYgMTFCQjtCRjAwOzExMDggMTE2NiAxMUJCOworQkYwMTtCRjAxOzExMDggMTE2NiAxMUJDO0JGMDE7MTEwOCAxMTY2IDExQkM7CitCRjAyO0JGMDI7MTEwOCAxMTY2IDExQkQ7QkYwMjsxMTA4IDExNjYgMTFCRDsKK0JGMDM7QkYwMzsxMTA4IDExNjYgMTFCRTtCRjAzOzExMDggMTE2NiAxMUJFOworQkYwNDtCRjA0OzExMDggMTE2NiAxMUJGO0JGMDQ7MTEwOCAxMTY2IDExQkY7CitCRjA1O0JGMDU7MTEwOCAxMTY2IDExQzA7QkYwNTsxMTA4IDExNjYgMTFDMDsKK0JGMDY7QkYwNjsxMTA4IDExNjYgMTFDMTtCRjA2OzExMDggMTE2NiAxMUMxOworQkYwNztCRjA3OzExMDggMTE2NiAxMUMyO0JGMDc7MTEwOCAxMTY2IDExQzI7CitCRjA4O0JGMDg7MTEwOCAxMTY3O0JGMDg7MTEwOCAxMTY3OworQkYwOTtCRjA5OzExMDggMTE2NyAxMUE4O0JGMDk7MTEwOCAxMTY3IDExQTg7CitCRjBBO0JGMEE7MTEwOCAxMTY3IDExQTk7QkYwQTsxMTA4IDExNjcgMTFBOTsKK0JGMEI7QkYwQjsxMTA4IDExNjcgMTFBQTtCRjBCOzExMDggMTE2NyAxMUFBOworQkYwQztCRjBDOzExMDggMTE2NyAxMUFCO0JGMEM7MTEwOCAxMTY3IDExQUI7CitCRjBEO0JGMEQ7MTEwOCAxMTY3IDExQUM7QkYwRDsxMTA4IDExNjcgMTFBQzsKK0JGMEU7QkYwRTsxMTA4IDExNjcgMTFBRDtCRjBFOzExMDggMTE2NyAxMUFEOworQkYwRjtCRjBGOzExMDggMTE2NyAxMUFFO0JGMEY7MTEwOCAxMTY3IDExQUU7CitCRjEwO0JGMTA7MTEwOCAxMTY3IDExQUY7QkYxMDsxMTA4IDExNjcgMTFBRjsKK0JGMTE7QkYxMTsxMTA4IDExNjcgMTFCMDtCRjExOzExMDggMTE2NyAxMUIwOworQkYxMjtCRjEyOzExMDggMTE2NyAxMUIxO0JGMTI7MTEwOCAxMTY3IDExQjE7CitCRjEzO0JGMTM7MTEwOCAxMTY3IDExQjI7QkYxMzsxMTA4IDExNjcgMTFCMjsKK0JGMTQ7QkYxNDsxMTA4IDExNjcgMTFCMztCRjE0OzExMDggMTE2NyAxMUIzOworQkYxNTtCRjE1OzExMDggMTE2NyAxMUI0O0JGMTU7MTEwOCAxMTY3IDExQjQ7CitCRjE2O0JGMTY7MTEwOCAxMTY3IDExQjU7QkYxNjsxMTA4IDExNjcgMTFCNTsKK0JGMTc7QkYxNzsxMTA4IDExNjcgMTFCNjtCRjE3OzExMDggMTE2NyAxMUI2OworQkYxODtCRjE4OzExMDggMTE2NyAxMUI3O0JGMTg7MTEwOCAxMTY3IDExQjc7CitCRjE5O0JGMTk7MTEwOCAxMTY3IDExQjg7QkYxOTsxMTA4IDExNjcgMTFCODsKK0JGMUE7QkYxQTsxMTA4IDExNjcgMTFCOTtCRjFBOzExMDggMTE2NyAxMUI5OworQkYxQjtCRjFCOzExMDggMTE2NyAxMUJBO0JGMUI7MTEwOCAxMTY3IDExQkE7CitCRjFDO0JGMUM7MTEwOCAxMTY3IDExQkI7QkYxQzsxMTA4IDExNjcgMTFCQjsKK0JGMUQ7QkYxRDsxMTA4IDExNjcgMTFCQztCRjFEOzExMDggMTE2NyAxMUJDOworQkYxRTtCRjFFOzExMDggMTE2NyAxMUJEO0JGMUU7MTEwOCAxMTY3IDExQkQ7CitCRjFGO0JGMUY7MTEwOCAxMTY3IDExQkU7QkYxRjsxMTA4IDExNjcgMTFCRTsKK0JGMjA7QkYyMDsxMTA4IDExNjcgMTFCRjtCRjIwOzExMDggMTE2NyAxMUJGOworQkYyMTtCRjIxOzExMDggMTE2NyAxMUMwO0JGMjE7MTEwOCAxMTY3IDExQzA7CitCRjIyO0JGMjI7MTEwOCAxMTY3IDExQzE7QkYyMjsxMTA4IDExNjcgMTFDMTsKK0JGMjM7QkYyMzsxMTA4IDExNjcgMTFDMjtCRjIzOzExMDggMTE2NyAxMUMyOworQkYyNDtCRjI0OzExMDggMTE2ODtCRjI0OzExMDggMTE2ODsKK0JGMjU7QkYyNTsxMTA4IDExNjggMTFBODtCRjI1OzExMDggMTE2OCAxMUE4OworQkYyNjtCRjI2OzExMDggMTE2OCAxMUE5O0JGMjY7MTEwOCAxMTY4IDExQTk7CitCRjI3O0JGMjc7MTEwOCAxMTY4IDExQUE7QkYyNzsxMTA4IDExNjggMTFBQTsKK0JGMjg7QkYyODsxMTA4IDExNjggMTFBQjtCRjI4OzExMDggMTE2OCAxMUFCOworQkYyOTtCRjI5OzExMDggMTE2OCAxMUFDO0JGMjk7MTEwOCAxMTY4IDExQUM7CitCRjJBO0JGMkE7MTEwOCAxMTY4IDExQUQ7QkYyQTsxMTA4IDExNjggMTFBRDsKK0JGMkI7QkYyQjsxMTA4IDExNjggMTFBRTtCRjJCOzExMDggMTE2OCAxMUFFOworQkYyQztCRjJDOzExMDggMTE2OCAxMUFGO0JGMkM7MTEwOCAxMTY4IDExQUY7CitCRjJEO0JGMkQ7MTEwOCAxMTY4IDExQjA7QkYyRDsxMTA4IDExNjggMTFCMDsKK0JGMkU7QkYyRTsxMTA4IDExNjggMTFCMTtCRjJFOzExMDggMTE2OCAxMUIxOworQkYyRjtCRjJGOzExMDggMTE2OCAxMUIyO0JGMkY7MTEwOCAxMTY4IDExQjI7CitCRjMwO0JGMzA7MTEwOCAxMTY4IDExQjM7QkYzMDsxMTA4IDExNjggMTFCMzsKK0JGMzE7QkYzMTsxMTA4IDExNjggMTFCNDtCRjMxOzExMDggMTE2OCAxMUI0OworQkYzMjtCRjMyOzExMDggMTE2OCAxMUI1O0JGMzI7MTEwOCAxMTY4IDExQjU7CitCRjMzO0JGMzM7MTEwOCAxMTY4IDExQjY7QkYzMzsxMTA4IDExNjggMTFCNjsKK0JGMzQ7QkYzNDsxMTA4IDExNjggMTFCNztCRjM0OzExMDggMTE2OCAxMUI3OworQkYzNTtCRjM1OzExMDggMTE2OCAxMUI4O0JGMzU7MTEwOCAxMTY4IDExQjg7CitCRjM2O0JGMzY7MTEwOCAxMTY4IDExQjk7QkYzNjsxMTA4IDExNjggMTFCOTsKK0JGMzc7QkYzNzsxMTA4IDExNjggMTFCQTtCRjM3OzExMDggMTE2OCAxMUJBOworQkYzODtCRjM4OzExMDggMTE2OCAxMUJCO0JGMzg7MTEwOCAxMTY4IDExQkI7CitCRjM5O0JGMzk7MTEwOCAxMTY4IDExQkM7QkYzOTsxMTA4IDExNjggMTFCQzsKK0JGM0E7QkYzQTsxMTA4IDExNjggMTFCRDtCRjNBOzExMDggMTE2OCAxMUJEOworQkYzQjtCRjNCOzExMDggMTE2OCAxMUJFO0JGM0I7MTEwOCAxMTY4IDExQkU7CitCRjNDO0JGM0M7MTEwOCAxMTY4IDExQkY7QkYzQzsxMTA4IDExNjggMTFCRjsKK0JGM0Q7QkYzRDsxMTA4IDExNjggMTFDMDtCRjNEOzExMDggMTE2OCAxMUMwOworQkYzRTtCRjNFOzExMDggMTE2OCAxMUMxO0JGM0U7MTEwOCAxMTY4IDExQzE7CitCRjNGO0JGM0Y7MTEwOCAxMTY4IDExQzI7QkYzRjsxMTA4IDExNjggMTFDMjsKK0JGNDA7QkY0MDsxMTA4IDExNjk7QkY0MDsxMTA4IDExNjk7CitCRjQxO0JGNDE7MTEwOCAxMTY5IDExQTg7QkY0MTsxMTA4IDExNjkgMTFBODsKK0JGNDI7QkY0MjsxMTA4IDExNjkgMTFBOTtCRjQyOzExMDggMTE2OSAxMUE5OworQkY0MztCRjQzOzExMDggMTE2OSAxMUFBO0JGNDM7MTEwOCAxMTY5IDExQUE7CitCRjQ0O0JGNDQ7MTEwOCAxMTY5IDExQUI7QkY0NDsxMTA4IDExNjkgMTFBQjsKK0JGNDU7QkY0NTsxMTA4IDExNjkgMTFBQztCRjQ1OzExMDggMTE2OSAxMUFDOworQkY0NjtCRjQ2OzExMDggMTE2OSAxMUFEO0JGNDY7MTEwOCAxMTY5IDExQUQ7CitCRjQ3O0JGNDc7MTEwOCAxMTY5IDExQUU7QkY0NzsxMTA4IDExNjkgMTFBRTsKK0JGNDg7QkY0ODsxMTA4IDExNjkgMTFBRjtCRjQ4OzExMDggMTE2OSAxMUFGOworQkY0OTtCRjQ5OzExMDggMTE2OSAxMUIwO0JGNDk7MTEwOCAxMTY5IDExQjA7CitCRjRBO0JGNEE7MTEwOCAxMTY5IDExQjE7QkY0QTsxMTA4IDExNjkgMTFCMTsKK0JGNEI7QkY0QjsxMTA4IDExNjkgMTFCMjtCRjRCOzExMDggMTE2OSAxMUIyOworQkY0QztCRjRDOzExMDggMTE2OSAxMUIzO0JGNEM7MTEwOCAxMTY5IDExQjM7CitCRjREO0JGNEQ7MTEwOCAxMTY5IDExQjQ7QkY0RDsxMTA4IDExNjkgMTFCNDsKK0JGNEU7QkY0RTsxMTA4IDExNjkgMTFCNTtCRjRFOzExMDggMTE2OSAxMUI1OworQkY0RjtCRjRGOzExMDggMTE2OSAxMUI2O0JGNEY7MTEwOCAxMTY5IDExQjY7CitCRjUwO0JGNTA7MTEwOCAxMTY5IDExQjc7QkY1MDsxMTA4IDExNjkgMTFCNzsKK0JGNTE7QkY1MTsxMTA4IDExNjkgMTFCODtCRjUxOzExMDggMTE2OSAxMUI4OworQkY1MjtCRjUyOzExMDggMTE2OSAxMUI5O0JGNTI7MTEwOCAxMTY5IDExQjk7CitCRjUzO0JGNTM7MTEwOCAxMTY5IDExQkE7QkY1MzsxMTA4IDExNjkgMTFCQTsKK0JGNTQ7QkY1NDsxMTA4IDExNjkgMTFCQjtCRjU0OzExMDggMTE2OSAxMUJCOworQkY1NTtCRjU1OzExMDggMTE2OSAxMUJDO0JGNTU7MTEwOCAxMTY5IDExQkM7CitCRjU2O0JGNTY7MTEwOCAxMTY5IDExQkQ7QkY1NjsxMTA4IDExNjkgMTFCRDsKK0JGNTc7QkY1NzsxMTA4IDExNjkgMTFCRTtCRjU3OzExMDggMTE2OSAxMUJFOworQkY1ODtCRjU4OzExMDggMTE2OSAxMUJGO0JGNTg7MTEwOCAxMTY5IDExQkY7CitCRjU5O0JGNTk7MTEwOCAxMTY5IDExQzA7QkY1OTsxMTA4IDExNjkgMTFDMDsKK0JGNUE7QkY1QTsxMTA4IDExNjkgMTFDMTtCRjVBOzExMDggMTE2OSAxMUMxOworQkY1QjtCRjVCOzExMDggMTE2OSAxMUMyO0JGNUI7MTEwOCAxMTY5IDExQzI7CitCRjVDO0JGNUM7MTEwOCAxMTZBO0JGNUM7MTEwOCAxMTZBOworQkY1RDtCRjVEOzExMDggMTE2QSAxMUE4O0JGNUQ7MTEwOCAxMTZBIDExQTg7CitCRjVFO0JGNUU7MTEwOCAxMTZBIDExQTk7QkY1RTsxMTA4IDExNkEgMTFBOTsKK0JGNUY7QkY1RjsxMTA4IDExNkEgMTFBQTtCRjVGOzExMDggMTE2QSAxMUFBOworQkY2MDtCRjYwOzExMDggMTE2QSAxMUFCO0JGNjA7MTEwOCAxMTZBIDExQUI7CitCRjYxO0JGNjE7MTEwOCAxMTZBIDExQUM7QkY2MTsxMTA4IDExNkEgMTFBQzsKK0JGNjI7QkY2MjsxMTA4IDExNkEgMTFBRDtCRjYyOzExMDggMTE2QSAxMUFEOworQkY2MztCRjYzOzExMDggMTE2QSAxMUFFO0JGNjM7MTEwOCAxMTZBIDExQUU7CitCRjY0O0JGNjQ7MTEwOCAxMTZBIDExQUY7QkY2NDsxMTA4IDExNkEgMTFBRjsKK0JGNjU7QkY2NTsxMTA4IDExNkEgMTFCMDtCRjY1OzExMDggMTE2QSAxMUIwOworQkY2NjtCRjY2OzExMDggMTE2QSAxMUIxO0JGNjY7MTEwOCAxMTZBIDExQjE7CitCRjY3O0JGNjc7MTEwOCAxMTZBIDExQjI7QkY2NzsxMTA4IDExNkEgMTFCMjsKK0JGNjg7QkY2ODsxMTA4IDExNkEgMTFCMztCRjY4OzExMDggMTE2QSAxMUIzOworQkY2OTtCRjY5OzExMDggMTE2QSAxMUI0O0JGNjk7MTEwOCAxMTZBIDExQjQ7CitCRjZBO0JGNkE7MTEwOCAxMTZBIDExQjU7QkY2QTsxMTA4IDExNkEgMTFCNTsKK0JGNkI7QkY2QjsxMTA4IDExNkEgMTFCNjtCRjZCOzExMDggMTE2QSAxMUI2OworQkY2QztCRjZDOzExMDggMTE2QSAxMUI3O0JGNkM7MTEwOCAxMTZBIDExQjc7CitCRjZEO0JGNkQ7MTEwOCAxMTZBIDExQjg7QkY2RDsxMTA4IDExNkEgMTFCODsKK0JGNkU7QkY2RTsxMTA4IDExNkEgMTFCOTtCRjZFOzExMDggMTE2QSAxMUI5OworQkY2RjtCRjZGOzExMDggMTE2QSAxMUJBO0JGNkY7MTEwOCAxMTZBIDExQkE7CitCRjcwO0JGNzA7MTEwOCAxMTZBIDExQkI7QkY3MDsxMTA4IDExNkEgMTFCQjsKK0JGNzE7QkY3MTsxMTA4IDExNkEgMTFCQztCRjcxOzExMDggMTE2QSAxMUJDOworQkY3MjtCRjcyOzExMDggMTE2QSAxMUJEO0JGNzI7MTEwOCAxMTZBIDExQkQ7CitCRjczO0JGNzM7MTEwOCAxMTZBIDExQkU7QkY3MzsxMTA4IDExNkEgMTFCRTsKK0JGNzQ7QkY3NDsxMTA4IDExNkEgMTFCRjtCRjc0OzExMDggMTE2QSAxMUJGOworQkY3NTtCRjc1OzExMDggMTE2QSAxMUMwO0JGNzU7MTEwOCAxMTZBIDExQzA7CitCRjc2O0JGNzY7MTEwOCAxMTZBIDExQzE7QkY3NjsxMTA4IDExNkEgMTFDMTsKK0JGNzc7QkY3NzsxMTA4IDExNkEgMTFDMjtCRjc3OzExMDggMTE2QSAxMUMyOworQkY3ODtCRjc4OzExMDggMTE2QjtCRjc4OzExMDggMTE2QjsKK0JGNzk7QkY3OTsxMTA4IDExNkIgMTFBODtCRjc5OzExMDggMTE2QiAxMUE4OworQkY3QTtCRjdBOzExMDggMTE2QiAxMUE5O0JGN0E7MTEwOCAxMTZCIDExQTk7CitCRjdCO0JGN0I7MTEwOCAxMTZCIDExQUE7QkY3QjsxMTA4IDExNkIgMTFBQTsKK0JGN0M7QkY3QzsxMTA4IDExNkIgMTFBQjtCRjdDOzExMDggMTE2QiAxMUFCOworQkY3RDtCRjdEOzExMDggMTE2QiAxMUFDO0JGN0Q7MTEwOCAxMTZCIDExQUM7CitCRjdFO0JGN0U7MTEwOCAxMTZCIDExQUQ7QkY3RTsxMTA4IDExNkIgMTFBRDsKK0JGN0Y7QkY3RjsxMTA4IDExNkIgMTFBRTtCRjdGOzExMDggMTE2QiAxMUFFOworQkY4MDtCRjgwOzExMDggMTE2QiAxMUFGO0JGODA7MTEwOCAxMTZCIDExQUY7CitCRjgxO0JGODE7MTEwOCAxMTZCIDExQjA7QkY4MTsxMTA4IDExNkIgMTFCMDsKK0JGODI7QkY4MjsxMTA4IDExNkIgMTFCMTtCRjgyOzExMDggMTE2QiAxMUIxOworQkY4MztCRjgzOzExMDggMTE2QiAxMUIyO0JGODM7MTEwOCAxMTZCIDExQjI7CitCRjg0O0JGODQ7MTEwOCAxMTZCIDExQjM7QkY4NDsxMTA4IDExNkIgMTFCMzsKK0JGODU7QkY4NTsxMTA4IDExNkIgMTFCNDtCRjg1OzExMDggMTE2QiAxMUI0OworQkY4NjtCRjg2OzExMDggMTE2QiAxMUI1O0JGODY7MTEwOCAxMTZCIDExQjU7CitCRjg3O0JGODc7MTEwOCAxMTZCIDExQjY7QkY4NzsxMTA4IDExNkIgMTFCNjsKK0JGODg7QkY4ODsxMTA4IDExNkIgMTFCNztCRjg4OzExMDggMTE2QiAxMUI3OworQkY4OTtCRjg5OzExMDggMTE2QiAxMUI4O0JGODk7MTEwOCAxMTZCIDExQjg7CitCRjhBO0JGOEE7MTEwOCAxMTZCIDExQjk7QkY4QTsxMTA4IDExNkIgMTFCOTsKK0JGOEI7QkY4QjsxMTA4IDExNkIgMTFCQTtCRjhCOzExMDggMTE2QiAxMUJBOworQkY4QztCRjhDOzExMDggMTE2QiAxMUJCO0JGOEM7MTEwOCAxMTZCIDExQkI7CitCRjhEO0JGOEQ7MTEwOCAxMTZCIDExQkM7QkY4RDsxMTA4IDExNkIgMTFCQzsKK0JGOEU7QkY4RTsxMTA4IDExNkIgMTFCRDtCRjhFOzExMDggMTE2QiAxMUJEOworQkY4RjtCRjhGOzExMDggMTE2QiAxMUJFO0JGOEY7MTEwOCAxMTZCIDExQkU7CitCRjkwO0JGOTA7MTEwOCAxMTZCIDExQkY7QkY5MDsxMTA4IDExNkIgMTFCRjsKK0JGOTE7QkY5MTsxMTA4IDExNkIgMTFDMDtCRjkxOzExMDggMTE2QiAxMUMwOworQkY5MjtCRjkyOzExMDggMTE2QiAxMUMxO0JGOTI7MTEwOCAxMTZCIDExQzE7CitCRjkzO0JGOTM7MTEwOCAxMTZCIDExQzI7QkY5MzsxMTA4IDExNkIgMTFDMjsKK0JGOTQ7QkY5NDsxMTA4IDExNkM7QkY5NDsxMTA4IDExNkM7CitCRjk1O0JGOTU7MTEwOCAxMTZDIDExQTg7QkY5NTsxMTA4IDExNkMgMTFBODsKK0JGOTY7QkY5NjsxMTA4IDExNkMgMTFBOTtCRjk2OzExMDggMTE2QyAxMUE5OworQkY5NztCRjk3OzExMDggMTE2QyAxMUFBO0JGOTc7MTEwOCAxMTZDIDExQUE7CitCRjk4O0JGOTg7MTEwOCAxMTZDIDExQUI7QkY5ODsxMTA4IDExNkMgMTFBQjsKK0JGOTk7QkY5OTsxMTA4IDExNkMgMTFBQztCRjk5OzExMDggMTE2QyAxMUFDOworQkY5QTtCRjlBOzExMDggMTE2QyAxMUFEO0JGOUE7MTEwOCAxMTZDIDExQUQ7CitCRjlCO0JGOUI7MTEwOCAxMTZDIDExQUU7QkY5QjsxMTA4IDExNkMgMTFBRTsKK0JGOUM7QkY5QzsxMTA4IDExNkMgMTFBRjtCRjlDOzExMDggMTE2QyAxMUFGOworQkY5RDtCRjlEOzExMDggMTE2QyAxMUIwO0JGOUQ7MTEwOCAxMTZDIDExQjA7CitCRjlFO0JGOUU7MTEwOCAxMTZDIDExQjE7QkY5RTsxMTA4IDExNkMgMTFCMTsKK0JGOUY7QkY5RjsxMTA4IDExNkMgMTFCMjtCRjlGOzExMDggMTE2QyAxMUIyOworQkZBMDtCRkEwOzExMDggMTE2QyAxMUIzO0JGQTA7MTEwOCAxMTZDIDExQjM7CitCRkExO0JGQTE7MTEwOCAxMTZDIDExQjQ7QkZBMTsxMTA4IDExNkMgMTFCNDsKK0JGQTI7QkZBMjsxMTA4IDExNkMgMTFCNTtCRkEyOzExMDggMTE2QyAxMUI1OworQkZBMztCRkEzOzExMDggMTE2QyAxMUI2O0JGQTM7MTEwOCAxMTZDIDExQjY7CitCRkE0O0JGQTQ7MTEwOCAxMTZDIDExQjc7QkZBNDsxMTA4IDExNkMgMTFCNzsKK0JGQTU7QkZBNTsxMTA4IDExNkMgMTFCODtCRkE1OzExMDggMTE2QyAxMUI4OworQkZBNjtCRkE2OzExMDggMTE2QyAxMUI5O0JGQTY7MTEwOCAxMTZDIDExQjk7CitCRkE3O0JGQTc7MTEwOCAxMTZDIDExQkE7QkZBNzsxMTA4IDExNkMgMTFCQTsKK0JGQTg7QkZBODsxMTA4IDExNkMgMTFCQjtCRkE4OzExMDggMTE2QyAxMUJCOworQkZBOTtCRkE5OzExMDggMTE2QyAxMUJDO0JGQTk7MTEwOCAxMTZDIDExQkM7CitCRkFBO0JGQUE7MTEwOCAxMTZDIDExQkQ7QkZBQTsxMTA4IDExNkMgMTFCRDsKK0JGQUI7QkZBQjsxMTA4IDExNkMgMTFCRTtCRkFCOzExMDggMTE2QyAxMUJFOworQkZBQztCRkFDOzExMDggMTE2QyAxMUJGO0JGQUM7MTEwOCAxMTZDIDExQkY7CitCRkFEO0JGQUQ7MTEwOCAxMTZDIDExQzA7QkZBRDsxMTA4IDExNkMgMTFDMDsKK0JGQUU7QkZBRTsxMTA4IDExNkMgMTFDMTtCRkFFOzExMDggMTE2QyAxMUMxOworQkZBRjtCRkFGOzExMDggMTE2QyAxMUMyO0JGQUY7MTEwOCAxMTZDIDExQzI7CitCRkIwO0JGQjA7MTEwOCAxMTZEO0JGQjA7MTEwOCAxMTZEOworQkZCMTtCRkIxOzExMDggMTE2RCAxMUE4O0JGQjE7MTEwOCAxMTZEIDExQTg7CitCRkIyO0JGQjI7MTEwOCAxMTZEIDExQTk7QkZCMjsxMTA4IDExNkQgMTFBOTsKK0JGQjM7QkZCMzsxMTA4IDExNkQgMTFBQTtCRkIzOzExMDggMTE2RCAxMUFBOworQkZCNDtCRkI0OzExMDggMTE2RCAxMUFCO0JGQjQ7MTEwOCAxMTZEIDExQUI7CitCRkI1O0JGQjU7MTEwOCAxMTZEIDExQUM7QkZCNTsxMTA4IDExNkQgMTFBQzsKK0JGQjY7QkZCNjsxMTA4IDExNkQgMTFBRDtCRkI2OzExMDggMTE2RCAxMUFEOworQkZCNztCRkI3OzExMDggMTE2RCAxMUFFO0JGQjc7MTEwOCAxMTZEIDExQUU7CitCRkI4O0JGQjg7MTEwOCAxMTZEIDExQUY7QkZCODsxMTA4IDExNkQgMTFBRjsKK0JGQjk7QkZCOTsxMTA4IDExNkQgMTFCMDtCRkI5OzExMDggMTE2RCAxMUIwOworQkZCQTtCRkJBOzExMDggMTE2RCAxMUIxO0JGQkE7MTEwOCAxMTZEIDExQjE7CitCRkJCO0JGQkI7MTEwOCAxMTZEIDExQjI7QkZCQjsxMTA4IDExNkQgMTFCMjsKK0JGQkM7QkZCQzsxMTA4IDExNkQgMTFCMztCRkJDOzExMDggMTE2RCAxMUIzOworQkZCRDtCRkJEOzExMDggMTE2RCAxMUI0O0JGQkQ7MTEwOCAxMTZEIDExQjQ7CitCRkJFO0JGQkU7MTEwOCAxMTZEIDExQjU7QkZCRTsxMTA4IDExNkQgMTFCNTsKK0JGQkY7QkZCRjsxMTA4IDExNkQgMTFCNjtCRkJGOzExMDggMTE2RCAxMUI2OworQkZDMDtCRkMwOzExMDggMTE2RCAxMUI3O0JGQzA7MTEwOCAxMTZEIDExQjc7CitCRkMxO0JGQzE7MTEwOCAxMTZEIDExQjg7QkZDMTsxMTA4IDExNkQgMTFCODsKK0JGQzI7QkZDMjsxMTA4IDExNkQgMTFCOTtCRkMyOzExMDggMTE2RCAxMUI5OworQkZDMztCRkMzOzExMDggMTE2RCAxMUJBO0JGQzM7MTEwOCAxMTZEIDExQkE7CitCRkM0O0JGQzQ7MTEwOCAxMTZEIDExQkI7QkZDNDsxMTA4IDExNkQgMTFCQjsKK0JGQzU7QkZDNTsxMTA4IDExNkQgMTFCQztCRkM1OzExMDggMTE2RCAxMUJDOworQkZDNjtCRkM2OzExMDggMTE2RCAxMUJEO0JGQzY7MTEwOCAxMTZEIDExQkQ7CitCRkM3O0JGQzc7MTEwOCAxMTZEIDExQkU7QkZDNzsxMTA4IDExNkQgMTFCRTsKK0JGQzg7QkZDODsxMTA4IDExNkQgMTFCRjtCRkM4OzExMDggMTE2RCAxMUJGOworQkZDOTtCRkM5OzExMDggMTE2RCAxMUMwO0JGQzk7MTEwOCAxMTZEIDExQzA7CitCRkNBO0JGQ0E7MTEwOCAxMTZEIDExQzE7QkZDQTsxMTA4IDExNkQgMTFDMTsKK0JGQ0I7QkZDQjsxMTA4IDExNkQgMTFDMjtCRkNCOzExMDggMTE2RCAxMUMyOworQkZDQztCRkNDOzExMDggMTE2RTtCRkNDOzExMDggMTE2RTsKK0JGQ0Q7QkZDRDsxMTA4IDExNkUgMTFBODtCRkNEOzExMDggMTE2RSAxMUE4OworQkZDRTtCRkNFOzExMDggMTE2RSAxMUE5O0JGQ0U7MTEwOCAxMTZFIDExQTk7CitCRkNGO0JGQ0Y7MTEwOCAxMTZFIDExQUE7QkZDRjsxMTA4IDExNkUgMTFBQTsKK0JGRDA7QkZEMDsxMTA4IDExNkUgMTFBQjtCRkQwOzExMDggMTE2RSAxMUFCOworQkZEMTtCRkQxOzExMDggMTE2RSAxMUFDO0JGRDE7MTEwOCAxMTZFIDExQUM7CitCRkQyO0JGRDI7MTEwOCAxMTZFIDExQUQ7QkZEMjsxMTA4IDExNkUgMTFBRDsKK0JGRDM7QkZEMzsxMTA4IDExNkUgMTFBRTtCRkQzOzExMDggMTE2RSAxMUFFOworQkZENDtCRkQ0OzExMDggMTE2RSAxMUFGO0JGRDQ7MTEwOCAxMTZFIDExQUY7CitCRkQ1O0JGRDU7MTEwOCAxMTZFIDExQjA7QkZENTsxMTA4IDExNkUgMTFCMDsKK0JGRDY7QkZENjsxMTA4IDExNkUgMTFCMTtCRkQ2OzExMDggMTE2RSAxMUIxOworQkZENztCRkQ3OzExMDggMTE2RSAxMUIyO0JGRDc7MTEwOCAxMTZFIDExQjI7CitCRkQ4O0JGRDg7MTEwOCAxMTZFIDExQjM7QkZEODsxMTA4IDExNkUgMTFCMzsKK0JGRDk7QkZEOTsxMTA4IDExNkUgMTFCNDtCRkQ5OzExMDggMTE2RSAxMUI0OworQkZEQTtCRkRBOzExMDggMTE2RSAxMUI1O0JGREE7MTEwOCAxMTZFIDExQjU7CitCRkRCO0JGREI7MTEwOCAxMTZFIDExQjY7QkZEQjsxMTA4IDExNkUgMTFCNjsKK0JGREM7QkZEQzsxMTA4IDExNkUgMTFCNztCRkRDOzExMDggMTE2RSAxMUI3OworQkZERDtCRkREOzExMDggMTE2RSAxMUI4O0JGREQ7MTEwOCAxMTZFIDExQjg7CitCRkRFO0JGREU7MTEwOCAxMTZFIDExQjk7QkZERTsxMTA4IDExNkUgMTFCOTsKK0JGREY7QkZERjsxMTA4IDExNkUgMTFCQTtCRkRGOzExMDggMTE2RSAxMUJBOworQkZFMDtCRkUwOzExMDggMTE2RSAxMUJCO0JGRTA7MTEwOCAxMTZFIDExQkI7CitCRkUxO0JGRTE7MTEwOCAxMTZFIDExQkM7QkZFMTsxMTA4IDExNkUgMTFCQzsKK0JGRTI7QkZFMjsxMTA4IDExNkUgMTFCRDtCRkUyOzExMDggMTE2RSAxMUJEOworQkZFMztCRkUzOzExMDggMTE2RSAxMUJFO0JGRTM7MTEwOCAxMTZFIDExQkU7CitCRkU0O0JGRTQ7MTEwOCAxMTZFIDExQkY7QkZFNDsxMTA4IDExNkUgMTFCRjsKK0JGRTU7QkZFNTsxMTA4IDExNkUgMTFDMDtCRkU1OzExMDggMTE2RSAxMUMwOworQkZFNjtCRkU2OzExMDggMTE2RSAxMUMxO0JGRTY7MTEwOCAxMTZFIDExQzE7CitCRkU3O0JGRTc7MTEwOCAxMTZFIDExQzI7QkZFNzsxMTA4IDExNkUgMTFDMjsKK0JGRTg7QkZFODsxMTA4IDExNkY7QkZFODsxMTA4IDExNkY7CitCRkU5O0JGRTk7MTEwOCAxMTZGIDExQTg7QkZFOTsxMTA4IDExNkYgMTFBODsKK0JGRUE7QkZFQTsxMTA4IDExNkYgMTFBOTtCRkVBOzExMDggMTE2RiAxMUE5OworQkZFQjtCRkVCOzExMDggMTE2RiAxMUFBO0JGRUI7MTEwOCAxMTZGIDExQUE7CitCRkVDO0JGRUM7MTEwOCAxMTZGIDExQUI7QkZFQzsxMTA4IDExNkYgMTFBQjsKK0JGRUQ7QkZFRDsxMTA4IDExNkYgMTFBQztCRkVEOzExMDggMTE2RiAxMUFDOworQkZFRTtCRkVFOzExMDggMTE2RiAxMUFEO0JGRUU7MTEwOCAxMTZGIDExQUQ7CitCRkVGO0JGRUY7MTEwOCAxMTZGIDExQUU7QkZFRjsxMTA4IDExNkYgMTFBRTsKK0JGRjA7QkZGMDsxMTA4IDExNkYgMTFBRjtCRkYwOzExMDggMTE2RiAxMUFGOworQkZGMTtCRkYxOzExMDggMTE2RiAxMUIwO0JGRjE7MTEwOCAxMTZGIDExQjA7CitCRkYyO0JGRjI7MTEwOCAxMTZGIDExQjE7QkZGMjsxMTA4IDExNkYgMTFCMTsKK0JGRjM7QkZGMzsxMTA4IDExNkYgMTFCMjtCRkYzOzExMDggMTE2RiAxMUIyOworQkZGNDtCRkY0OzExMDggMTE2RiAxMUIzO0JGRjQ7MTEwOCAxMTZGIDExQjM7CitCRkY1O0JGRjU7MTEwOCAxMTZGIDExQjQ7QkZGNTsxMTA4IDExNkYgMTFCNDsKK0JGRjY7QkZGNjsxMTA4IDExNkYgMTFCNTtCRkY2OzExMDggMTE2RiAxMUI1OworQkZGNztCRkY3OzExMDggMTE2RiAxMUI2O0JGRjc7MTEwOCAxMTZGIDExQjY7CitCRkY4O0JGRjg7MTEwOCAxMTZGIDExQjc7QkZGODsxMTA4IDExNkYgMTFCNzsKK0JGRjk7QkZGOTsxMTA4IDExNkYgMTFCODtCRkY5OzExMDggMTE2RiAxMUI4OworQkZGQTtCRkZBOzExMDggMTE2RiAxMUI5O0JGRkE7MTEwOCAxMTZGIDExQjk7CitCRkZCO0JGRkI7MTEwOCAxMTZGIDExQkE7QkZGQjsxMTA4IDExNkYgMTFCQTsKK0JGRkM7QkZGQzsxMTA4IDExNkYgMTFCQjtCRkZDOzExMDggMTE2RiAxMUJCOworQkZGRDtCRkZEOzExMDggMTE2RiAxMUJDO0JGRkQ7MTEwOCAxMTZGIDExQkM7CitCRkZFO0JGRkU7MTEwOCAxMTZGIDExQkQ7QkZGRTsxMTA4IDExNkYgMTFCRDsKK0JGRkY7QkZGRjsxMTA4IDExNkYgMTFCRTtCRkZGOzExMDggMTE2RiAxMUJFOworQzAwMDtDMDAwOzExMDggMTE2RiAxMUJGO0MwMDA7MTEwOCAxMTZGIDExQkY7CitDMDAxO0MwMDE7MTEwOCAxMTZGIDExQzA7QzAwMTsxMTA4IDExNkYgMTFDMDsKK0MwMDI7QzAwMjsxMTA4IDExNkYgMTFDMTtDMDAyOzExMDggMTE2RiAxMUMxOworQzAwMztDMDAzOzExMDggMTE2RiAxMUMyO0MwMDM7MTEwOCAxMTZGIDExQzI7CitDMDA0O0MwMDQ7MTEwOCAxMTcwO0MwMDQ7MTEwOCAxMTcwOworQzAwNTtDMDA1OzExMDggMTE3MCAxMUE4O0MwMDU7MTEwOCAxMTcwIDExQTg7CitDMDA2O0MwMDY7MTEwOCAxMTcwIDExQTk7QzAwNjsxMTA4IDExNzAgMTFBOTsKK0MwMDc7QzAwNzsxMTA4IDExNzAgMTFBQTtDMDA3OzExMDggMTE3MCAxMUFBOworQzAwODtDMDA4OzExMDggMTE3MCAxMUFCO0MwMDg7MTEwOCAxMTcwIDExQUI7CitDMDA5O0MwMDk7MTEwOCAxMTcwIDExQUM7QzAwOTsxMTA4IDExNzAgMTFBQzsKK0MwMEE7QzAwQTsxMTA4IDExNzAgMTFBRDtDMDBBOzExMDggMTE3MCAxMUFEOworQzAwQjtDMDBCOzExMDggMTE3MCAxMUFFO0MwMEI7MTEwOCAxMTcwIDExQUU7CitDMDBDO0MwMEM7MTEwOCAxMTcwIDExQUY7QzAwQzsxMTA4IDExNzAgMTFBRjsKK0MwMEQ7QzAwRDsxMTA4IDExNzAgMTFCMDtDMDBEOzExMDggMTE3MCAxMUIwOworQzAwRTtDMDBFOzExMDggMTE3MCAxMUIxO0MwMEU7MTEwOCAxMTcwIDExQjE7CitDMDBGO0MwMEY7MTEwOCAxMTcwIDExQjI7QzAwRjsxMTA4IDExNzAgMTFCMjsKK0MwMTA7QzAxMDsxMTA4IDExNzAgMTFCMztDMDEwOzExMDggMTE3MCAxMUIzOworQzAxMTtDMDExOzExMDggMTE3MCAxMUI0O0MwMTE7MTEwOCAxMTcwIDExQjQ7CitDMDEyO0MwMTI7MTEwOCAxMTcwIDExQjU7QzAxMjsxMTA4IDExNzAgMTFCNTsKK0MwMTM7QzAxMzsxMTA4IDExNzAgMTFCNjtDMDEzOzExMDggMTE3MCAxMUI2OworQzAxNDtDMDE0OzExMDggMTE3MCAxMUI3O0MwMTQ7MTEwOCAxMTcwIDExQjc7CitDMDE1O0MwMTU7MTEwOCAxMTcwIDExQjg7QzAxNTsxMTA4IDExNzAgMTFCODsKK0MwMTY7QzAxNjsxMTA4IDExNzAgMTFCOTtDMDE2OzExMDggMTE3MCAxMUI5OworQzAxNztDMDE3OzExMDggMTE3MCAxMUJBO0MwMTc7MTEwOCAxMTcwIDExQkE7CitDMDE4O0MwMTg7MTEwOCAxMTcwIDExQkI7QzAxODsxMTA4IDExNzAgMTFCQjsKK0MwMTk7QzAxOTsxMTA4IDExNzAgMTFCQztDMDE5OzExMDggMTE3MCAxMUJDOworQzAxQTtDMDFBOzExMDggMTE3MCAxMUJEO0MwMUE7MTEwOCAxMTcwIDExQkQ7CitDMDFCO0MwMUI7MTEwOCAxMTcwIDExQkU7QzAxQjsxMTA4IDExNzAgMTFCRTsKK0MwMUM7QzAxQzsxMTA4IDExNzAgMTFCRjtDMDFDOzExMDggMTE3MCAxMUJGOworQzAxRDtDMDFEOzExMDggMTE3MCAxMUMwO0MwMUQ7MTEwOCAxMTcwIDExQzA7CitDMDFFO0MwMUU7MTEwOCAxMTcwIDExQzE7QzAxRTsxMTA4IDExNzAgMTFDMTsKK0MwMUY7QzAxRjsxMTA4IDExNzAgMTFDMjtDMDFGOzExMDggMTE3MCAxMUMyOworQzAyMDtDMDIwOzExMDggMTE3MTtDMDIwOzExMDggMTE3MTsKK0MwMjE7QzAyMTsxMTA4IDExNzEgMTFBODtDMDIxOzExMDggMTE3MSAxMUE4OworQzAyMjtDMDIyOzExMDggMTE3MSAxMUE5O0MwMjI7MTEwOCAxMTcxIDExQTk7CitDMDIzO0MwMjM7MTEwOCAxMTcxIDExQUE7QzAyMzsxMTA4IDExNzEgMTFBQTsKK0MwMjQ7QzAyNDsxMTA4IDExNzEgMTFBQjtDMDI0OzExMDggMTE3MSAxMUFCOworQzAyNTtDMDI1OzExMDggMTE3MSAxMUFDO0MwMjU7MTEwOCAxMTcxIDExQUM7CitDMDI2O0MwMjY7MTEwOCAxMTcxIDExQUQ7QzAyNjsxMTA4IDExNzEgMTFBRDsKK0MwMjc7QzAyNzsxMTA4IDExNzEgMTFBRTtDMDI3OzExMDggMTE3MSAxMUFFOworQzAyODtDMDI4OzExMDggMTE3MSAxMUFGO0MwMjg7MTEwOCAxMTcxIDExQUY7CitDMDI5O0MwMjk7MTEwOCAxMTcxIDExQjA7QzAyOTsxMTA4IDExNzEgMTFCMDsKK0MwMkE7QzAyQTsxMTA4IDExNzEgMTFCMTtDMDJBOzExMDggMTE3MSAxMUIxOworQzAyQjtDMDJCOzExMDggMTE3MSAxMUIyO0MwMkI7MTEwOCAxMTcxIDExQjI7CitDMDJDO0MwMkM7MTEwOCAxMTcxIDExQjM7QzAyQzsxMTA4IDExNzEgMTFCMzsKK0MwMkQ7QzAyRDsxMTA4IDExNzEgMTFCNDtDMDJEOzExMDggMTE3MSAxMUI0OworQzAyRTtDMDJFOzExMDggMTE3MSAxMUI1O0MwMkU7MTEwOCAxMTcxIDExQjU7CitDMDJGO0MwMkY7MTEwOCAxMTcxIDExQjY7QzAyRjsxMTA4IDExNzEgMTFCNjsKK0MwMzA7QzAzMDsxMTA4IDExNzEgMTFCNztDMDMwOzExMDggMTE3MSAxMUI3OworQzAzMTtDMDMxOzExMDggMTE3MSAxMUI4O0MwMzE7MTEwOCAxMTcxIDExQjg7CitDMDMyO0MwMzI7MTEwOCAxMTcxIDExQjk7QzAzMjsxMTA4IDExNzEgMTFCOTsKK0MwMzM7QzAzMzsxMTA4IDExNzEgMTFCQTtDMDMzOzExMDggMTE3MSAxMUJBOworQzAzNDtDMDM0OzExMDggMTE3MSAxMUJCO0MwMzQ7MTEwOCAxMTcxIDExQkI7CitDMDM1O0MwMzU7MTEwOCAxMTcxIDExQkM7QzAzNTsxMTA4IDExNzEgMTFCQzsKK0MwMzY7QzAzNjsxMTA4IDExNzEgMTFCRDtDMDM2OzExMDggMTE3MSAxMUJEOworQzAzNztDMDM3OzExMDggMTE3MSAxMUJFO0MwMzc7MTEwOCAxMTcxIDExQkU7CitDMDM4O0MwMzg7MTEwOCAxMTcxIDExQkY7QzAzODsxMTA4IDExNzEgMTFCRjsKK0MwMzk7QzAzOTsxMTA4IDExNzEgMTFDMDtDMDM5OzExMDggMTE3MSAxMUMwOworQzAzQTtDMDNBOzExMDggMTE3MSAxMUMxO0MwM0E7MTEwOCAxMTcxIDExQzE7CitDMDNCO0MwM0I7MTEwOCAxMTcxIDExQzI7QzAzQjsxMTA4IDExNzEgMTFDMjsKK0MwM0M7QzAzQzsxMTA4IDExNzI7QzAzQzsxMTA4IDExNzI7CitDMDNEO0MwM0Q7MTEwOCAxMTcyIDExQTg7QzAzRDsxMTA4IDExNzIgMTFBODsKK0MwM0U7QzAzRTsxMTA4IDExNzIgMTFBOTtDMDNFOzExMDggMTE3MiAxMUE5OworQzAzRjtDMDNGOzExMDggMTE3MiAxMUFBO0MwM0Y7MTEwOCAxMTcyIDExQUE7CitDMDQwO0MwNDA7MTEwOCAxMTcyIDExQUI7QzA0MDsxMTA4IDExNzIgMTFBQjsKK0MwNDE7QzA0MTsxMTA4IDExNzIgMTFBQztDMDQxOzExMDggMTE3MiAxMUFDOworQzA0MjtDMDQyOzExMDggMTE3MiAxMUFEO0MwNDI7MTEwOCAxMTcyIDExQUQ7CitDMDQzO0MwNDM7MTEwOCAxMTcyIDExQUU7QzA0MzsxMTA4IDExNzIgMTFBRTsKK0MwNDQ7QzA0NDsxMTA4IDExNzIgMTFBRjtDMDQ0OzExMDggMTE3MiAxMUFGOworQzA0NTtDMDQ1OzExMDggMTE3MiAxMUIwO0MwNDU7MTEwOCAxMTcyIDExQjA7CitDMDQ2O0MwNDY7MTEwOCAxMTcyIDExQjE7QzA0NjsxMTA4IDExNzIgMTFCMTsKK0MwNDc7QzA0NzsxMTA4IDExNzIgMTFCMjtDMDQ3OzExMDggMTE3MiAxMUIyOworQzA0ODtDMDQ4OzExMDggMTE3MiAxMUIzO0MwNDg7MTEwOCAxMTcyIDExQjM7CitDMDQ5O0MwNDk7MTEwOCAxMTcyIDExQjQ7QzA0OTsxMTA4IDExNzIgMTFCNDsKK0MwNEE7QzA0QTsxMTA4IDExNzIgMTFCNTtDMDRBOzExMDggMTE3MiAxMUI1OworQzA0QjtDMDRCOzExMDggMTE3MiAxMUI2O0MwNEI7MTEwOCAxMTcyIDExQjY7CitDMDRDO0MwNEM7MTEwOCAxMTcyIDExQjc7QzA0QzsxMTA4IDExNzIgMTFCNzsKK0MwNEQ7QzA0RDsxMTA4IDExNzIgMTFCODtDMDREOzExMDggMTE3MiAxMUI4OworQzA0RTtDMDRFOzExMDggMTE3MiAxMUI5O0MwNEU7MTEwOCAxMTcyIDExQjk7CitDMDRGO0MwNEY7MTEwOCAxMTcyIDExQkE7QzA0RjsxMTA4IDExNzIgMTFCQTsKK0MwNTA7QzA1MDsxMTA4IDExNzIgMTFCQjtDMDUwOzExMDggMTE3MiAxMUJCOworQzA1MTtDMDUxOzExMDggMTE3MiAxMUJDO0MwNTE7MTEwOCAxMTcyIDExQkM7CitDMDUyO0MwNTI7MTEwOCAxMTcyIDExQkQ7QzA1MjsxMTA4IDExNzIgMTFCRDsKK0MwNTM7QzA1MzsxMTA4IDExNzIgMTFCRTtDMDUzOzExMDggMTE3MiAxMUJFOworQzA1NDtDMDU0OzExMDggMTE3MiAxMUJGO0MwNTQ7MTEwOCAxMTcyIDExQkY7CitDMDU1O0MwNTU7MTEwOCAxMTcyIDExQzA7QzA1NTsxMTA4IDExNzIgMTFDMDsKK0MwNTY7QzA1NjsxMTA4IDExNzIgMTFDMTtDMDU2OzExMDggMTE3MiAxMUMxOworQzA1NztDMDU3OzExMDggMTE3MiAxMUMyO0MwNTc7MTEwOCAxMTcyIDExQzI7CitDMDU4O0MwNTg7MTEwOCAxMTczO0MwNTg7MTEwOCAxMTczOworQzA1OTtDMDU5OzExMDggMTE3MyAxMUE4O0MwNTk7MTEwOCAxMTczIDExQTg7CitDMDVBO0MwNUE7MTEwOCAxMTczIDExQTk7QzA1QTsxMTA4IDExNzMgMTFBOTsKK0MwNUI7QzA1QjsxMTA4IDExNzMgMTFBQTtDMDVCOzExMDggMTE3MyAxMUFBOworQzA1QztDMDVDOzExMDggMTE3MyAxMUFCO0MwNUM7MTEwOCAxMTczIDExQUI7CitDMDVEO0MwNUQ7MTEwOCAxMTczIDExQUM7QzA1RDsxMTA4IDExNzMgMTFBQzsKK0MwNUU7QzA1RTsxMTA4IDExNzMgMTFBRDtDMDVFOzExMDggMTE3MyAxMUFEOworQzA1RjtDMDVGOzExMDggMTE3MyAxMUFFO0MwNUY7MTEwOCAxMTczIDExQUU7CitDMDYwO0MwNjA7MTEwOCAxMTczIDExQUY7QzA2MDsxMTA4IDExNzMgMTFBRjsKK0MwNjE7QzA2MTsxMTA4IDExNzMgMTFCMDtDMDYxOzExMDggMTE3MyAxMUIwOworQzA2MjtDMDYyOzExMDggMTE3MyAxMUIxO0MwNjI7MTEwOCAxMTczIDExQjE7CitDMDYzO0MwNjM7MTEwOCAxMTczIDExQjI7QzA2MzsxMTA4IDExNzMgMTFCMjsKK0MwNjQ7QzA2NDsxMTA4IDExNzMgMTFCMztDMDY0OzExMDggMTE3MyAxMUIzOworQzA2NTtDMDY1OzExMDggMTE3MyAxMUI0O0MwNjU7MTEwOCAxMTczIDExQjQ7CitDMDY2O0MwNjY7MTEwOCAxMTczIDExQjU7QzA2NjsxMTA4IDExNzMgMTFCNTsKK0MwNjc7QzA2NzsxMTA4IDExNzMgMTFCNjtDMDY3OzExMDggMTE3MyAxMUI2OworQzA2ODtDMDY4OzExMDggMTE3MyAxMUI3O0MwNjg7MTEwOCAxMTczIDExQjc7CitDMDY5O0MwNjk7MTEwOCAxMTczIDExQjg7QzA2OTsxMTA4IDExNzMgMTFCODsKK0MwNkE7QzA2QTsxMTA4IDExNzMgMTFCOTtDMDZBOzExMDggMTE3MyAxMUI5OworQzA2QjtDMDZCOzExMDggMTE3MyAxMUJBO0MwNkI7MTEwOCAxMTczIDExQkE7CitDMDZDO0MwNkM7MTEwOCAxMTczIDExQkI7QzA2QzsxMTA4IDExNzMgMTFCQjsKK0MwNkQ7QzA2RDsxMTA4IDExNzMgMTFCQztDMDZEOzExMDggMTE3MyAxMUJDOworQzA2RTtDMDZFOzExMDggMTE3MyAxMUJEO0MwNkU7MTEwOCAxMTczIDExQkQ7CitDMDZGO0MwNkY7MTEwOCAxMTczIDExQkU7QzA2RjsxMTA4IDExNzMgMTFCRTsKK0MwNzA7QzA3MDsxMTA4IDExNzMgMTFCRjtDMDcwOzExMDggMTE3MyAxMUJGOworQzA3MTtDMDcxOzExMDggMTE3MyAxMUMwO0MwNzE7MTEwOCAxMTczIDExQzA7CitDMDcyO0MwNzI7MTEwOCAxMTczIDExQzE7QzA3MjsxMTA4IDExNzMgMTFDMTsKK0MwNzM7QzA3MzsxMTA4IDExNzMgMTFDMjtDMDczOzExMDggMTE3MyAxMUMyOworQzA3NDtDMDc0OzExMDggMTE3NDtDMDc0OzExMDggMTE3NDsKK0MwNzU7QzA3NTsxMTA4IDExNzQgMTFBODtDMDc1OzExMDggMTE3NCAxMUE4OworQzA3NjtDMDc2OzExMDggMTE3NCAxMUE5O0MwNzY7MTEwOCAxMTc0IDExQTk7CitDMDc3O0MwNzc7MTEwOCAxMTc0IDExQUE7QzA3NzsxMTA4IDExNzQgMTFBQTsKK0MwNzg7QzA3ODsxMTA4IDExNzQgMTFBQjtDMDc4OzExMDggMTE3NCAxMUFCOworQzA3OTtDMDc5OzExMDggMTE3NCAxMUFDO0MwNzk7MTEwOCAxMTc0IDExQUM7CitDMDdBO0MwN0E7MTEwOCAxMTc0IDExQUQ7QzA3QTsxMTA4IDExNzQgMTFBRDsKK0MwN0I7QzA3QjsxMTA4IDExNzQgMTFBRTtDMDdCOzExMDggMTE3NCAxMUFFOworQzA3QztDMDdDOzExMDggMTE3NCAxMUFGO0MwN0M7MTEwOCAxMTc0IDExQUY7CitDMDdEO0MwN0Q7MTEwOCAxMTc0IDExQjA7QzA3RDsxMTA4IDExNzQgMTFCMDsKK0MwN0U7QzA3RTsxMTA4IDExNzQgMTFCMTtDMDdFOzExMDggMTE3NCAxMUIxOworQzA3RjtDMDdGOzExMDggMTE3NCAxMUIyO0MwN0Y7MTEwOCAxMTc0IDExQjI7CitDMDgwO0MwODA7MTEwOCAxMTc0IDExQjM7QzA4MDsxMTA4IDExNzQgMTFCMzsKK0MwODE7QzA4MTsxMTA4IDExNzQgMTFCNDtDMDgxOzExMDggMTE3NCAxMUI0OworQzA4MjtDMDgyOzExMDggMTE3NCAxMUI1O0MwODI7MTEwOCAxMTc0IDExQjU7CitDMDgzO0MwODM7MTEwOCAxMTc0IDExQjY7QzA4MzsxMTA4IDExNzQgMTFCNjsKK0MwODQ7QzA4NDsxMTA4IDExNzQgMTFCNztDMDg0OzExMDggMTE3NCAxMUI3OworQzA4NTtDMDg1OzExMDggMTE3NCAxMUI4O0MwODU7MTEwOCAxMTc0IDExQjg7CitDMDg2O0MwODY7MTEwOCAxMTc0IDExQjk7QzA4NjsxMTA4IDExNzQgMTFCOTsKK0MwODc7QzA4NzsxMTA4IDExNzQgMTFCQTtDMDg3OzExMDggMTE3NCAxMUJBOworQzA4ODtDMDg4OzExMDggMTE3NCAxMUJCO0MwODg7MTEwOCAxMTc0IDExQkI7CitDMDg5O0MwODk7MTEwOCAxMTc0IDExQkM7QzA4OTsxMTA4IDExNzQgMTFCQzsKK0MwOEE7QzA4QTsxMTA4IDExNzQgMTFCRDtDMDhBOzExMDggMTE3NCAxMUJEOworQzA4QjtDMDhCOzExMDggMTE3NCAxMUJFO0MwOEI7MTEwOCAxMTc0IDExQkU7CitDMDhDO0MwOEM7MTEwOCAxMTc0IDExQkY7QzA4QzsxMTA4IDExNzQgMTFCRjsKK0MwOEQ7QzA4RDsxMTA4IDExNzQgMTFDMDtDMDhEOzExMDggMTE3NCAxMUMwOworQzA4RTtDMDhFOzExMDggMTE3NCAxMUMxO0MwOEU7MTEwOCAxMTc0IDExQzE7CitDMDhGO0MwOEY7MTEwOCAxMTc0IDExQzI7QzA4RjsxMTA4IDExNzQgMTFDMjsKK0MwOTA7QzA5MDsxMTA4IDExNzU7QzA5MDsxMTA4IDExNzU7CitDMDkxO0MwOTE7MTEwOCAxMTc1IDExQTg7QzA5MTsxMTA4IDExNzUgMTFBODsKK0MwOTI7QzA5MjsxMTA4IDExNzUgMTFBOTtDMDkyOzExMDggMTE3NSAxMUE5OworQzA5MztDMDkzOzExMDggMTE3NSAxMUFBO0MwOTM7MTEwOCAxMTc1IDExQUE7CitDMDk0O0MwOTQ7MTEwOCAxMTc1IDExQUI7QzA5NDsxMTA4IDExNzUgMTFBQjsKK0MwOTU7QzA5NTsxMTA4IDExNzUgMTFBQztDMDk1OzExMDggMTE3NSAxMUFDOworQzA5NjtDMDk2OzExMDggMTE3NSAxMUFEO0MwOTY7MTEwOCAxMTc1IDExQUQ7CitDMDk3O0MwOTc7MTEwOCAxMTc1IDExQUU7QzA5NzsxMTA4IDExNzUgMTFBRTsKK0MwOTg7QzA5ODsxMTA4IDExNzUgMTFBRjtDMDk4OzExMDggMTE3NSAxMUFGOworQzA5OTtDMDk5OzExMDggMTE3NSAxMUIwO0MwOTk7MTEwOCAxMTc1IDExQjA7CitDMDlBO0MwOUE7MTEwOCAxMTc1IDExQjE7QzA5QTsxMTA4IDExNzUgMTFCMTsKK0MwOUI7QzA5QjsxMTA4IDExNzUgMTFCMjtDMDlCOzExMDggMTE3NSAxMUIyOworQzA5QztDMDlDOzExMDggMTE3NSAxMUIzO0MwOUM7MTEwOCAxMTc1IDExQjM7CitDMDlEO0MwOUQ7MTEwOCAxMTc1IDExQjQ7QzA5RDsxMTA4IDExNzUgMTFCNDsKK0MwOUU7QzA5RTsxMTA4IDExNzUgMTFCNTtDMDlFOzExMDggMTE3NSAxMUI1OworQzA5RjtDMDlGOzExMDggMTE3NSAxMUI2O0MwOUY7MTEwOCAxMTc1IDExQjY7CitDMEEwO0MwQTA7MTEwOCAxMTc1IDExQjc7QzBBMDsxMTA4IDExNzUgMTFCNzsKK0MwQTE7QzBBMTsxMTA4IDExNzUgMTFCODtDMEExOzExMDggMTE3NSAxMUI4OworQzBBMjtDMEEyOzExMDggMTE3NSAxMUI5O0MwQTI7MTEwOCAxMTc1IDExQjk7CitDMEEzO0MwQTM7MTEwOCAxMTc1IDExQkE7QzBBMzsxMTA4IDExNzUgMTFCQTsKK0MwQTQ7QzBBNDsxMTA4IDExNzUgMTFCQjtDMEE0OzExMDggMTE3NSAxMUJCOworQzBBNTtDMEE1OzExMDggMTE3NSAxMUJDO0MwQTU7MTEwOCAxMTc1IDExQkM7CitDMEE2O0MwQTY7MTEwOCAxMTc1IDExQkQ7QzBBNjsxMTA4IDExNzUgMTFCRDsKK0MwQTc7QzBBNzsxMTA4IDExNzUgMTFCRTtDMEE3OzExMDggMTE3NSAxMUJFOworQzBBODtDMEE4OzExMDggMTE3NSAxMUJGO0MwQTg7MTEwOCAxMTc1IDExQkY7CitDMEE5O0MwQTk7MTEwOCAxMTc1IDExQzA7QzBBOTsxMTA4IDExNzUgMTFDMDsKK0MwQUE7QzBBQTsxMTA4IDExNzUgMTFDMTtDMEFBOzExMDggMTE3NSAxMUMxOworQzBBQjtDMEFCOzExMDggMTE3NSAxMUMyO0MwQUI7MTEwOCAxMTc1IDExQzI7CitDMEFDO0MwQUM7MTEwOSAxMTYxO0MwQUM7MTEwOSAxMTYxOworQzBBRDtDMEFEOzExMDkgMTE2MSAxMUE4O0MwQUQ7MTEwOSAxMTYxIDExQTg7CitDMEFFO0MwQUU7MTEwOSAxMTYxIDExQTk7QzBBRTsxMTA5IDExNjEgMTFBOTsKK0MwQUY7QzBBRjsxMTA5IDExNjEgMTFBQTtDMEFGOzExMDkgMTE2MSAxMUFBOworQzBCMDtDMEIwOzExMDkgMTE2MSAxMUFCO0MwQjA7MTEwOSAxMTYxIDExQUI7CitDMEIxO0MwQjE7MTEwOSAxMTYxIDExQUM7QzBCMTsxMTA5IDExNjEgMTFBQzsKK0MwQjI7QzBCMjsxMTA5IDExNjEgMTFBRDtDMEIyOzExMDkgMTE2MSAxMUFEOworQzBCMztDMEIzOzExMDkgMTE2MSAxMUFFO0MwQjM7MTEwOSAxMTYxIDExQUU7CitDMEI0O0MwQjQ7MTEwOSAxMTYxIDExQUY7QzBCNDsxMTA5IDExNjEgMTFBRjsKK0MwQjU7QzBCNTsxMTA5IDExNjEgMTFCMDtDMEI1OzExMDkgMTE2MSAxMUIwOworQzBCNjtDMEI2OzExMDkgMTE2MSAxMUIxO0MwQjY7MTEwOSAxMTYxIDExQjE7CitDMEI3O0MwQjc7MTEwOSAxMTYxIDExQjI7QzBCNzsxMTA5IDExNjEgMTFCMjsKK0MwQjg7QzBCODsxMTA5IDExNjEgMTFCMztDMEI4OzExMDkgMTE2MSAxMUIzOworQzBCOTtDMEI5OzExMDkgMTE2MSAxMUI0O0MwQjk7MTEwOSAxMTYxIDExQjQ7CitDMEJBO0MwQkE7MTEwOSAxMTYxIDExQjU7QzBCQTsxMTA5IDExNjEgMTFCNTsKK0MwQkI7QzBCQjsxMTA5IDExNjEgMTFCNjtDMEJCOzExMDkgMTE2MSAxMUI2OworQzBCQztDMEJDOzExMDkgMTE2MSAxMUI3O0MwQkM7MTEwOSAxMTYxIDExQjc7CitDMEJEO0MwQkQ7MTEwOSAxMTYxIDExQjg7QzBCRDsxMTA5IDExNjEgMTFCODsKK0MwQkU7QzBCRTsxMTA5IDExNjEgMTFCOTtDMEJFOzExMDkgMTE2MSAxMUI5OworQzBCRjtDMEJGOzExMDkgMTE2MSAxMUJBO0MwQkY7MTEwOSAxMTYxIDExQkE7CitDMEMwO0MwQzA7MTEwOSAxMTYxIDExQkI7QzBDMDsxMTA5IDExNjEgMTFCQjsKK0MwQzE7QzBDMTsxMTA5IDExNjEgMTFCQztDMEMxOzExMDkgMTE2MSAxMUJDOworQzBDMjtDMEMyOzExMDkgMTE2MSAxMUJEO0MwQzI7MTEwOSAxMTYxIDExQkQ7CitDMEMzO0MwQzM7MTEwOSAxMTYxIDExQkU7QzBDMzsxMTA5IDExNjEgMTFCRTsKK0MwQzQ7QzBDNDsxMTA5IDExNjEgMTFCRjtDMEM0OzExMDkgMTE2MSAxMUJGOworQzBDNTtDMEM1OzExMDkgMTE2MSAxMUMwO0MwQzU7MTEwOSAxMTYxIDExQzA7CitDMEM2O0MwQzY7MTEwOSAxMTYxIDExQzE7QzBDNjsxMTA5IDExNjEgMTFDMTsKK0MwQzc7QzBDNzsxMTA5IDExNjEgMTFDMjtDMEM3OzExMDkgMTE2MSAxMUMyOworQzBDODtDMEM4OzExMDkgMTE2MjtDMEM4OzExMDkgMTE2MjsKK0MwQzk7QzBDOTsxMTA5IDExNjIgMTFBODtDMEM5OzExMDkgMTE2MiAxMUE4OworQzBDQTtDMENBOzExMDkgMTE2MiAxMUE5O0MwQ0E7MTEwOSAxMTYyIDExQTk7CitDMENCO0MwQ0I7MTEwOSAxMTYyIDExQUE7QzBDQjsxMTA5IDExNjIgMTFBQTsKK0MwQ0M7QzBDQzsxMTA5IDExNjIgMTFBQjtDMENDOzExMDkgMTE2MiAxMUFCOworQzBDRDtDMENEOzExMDkgMTE2MiAxMUFDO0MwQ0Q7MTEwOSAxMTYyIDExQUM7CitDMENFO0MwQ0U7MTEwOSAxMTYyIDExQUQ7QzBDRTsxMTA5IDExNjIgMTFBRDsKK0MwQ0Y7QzBDRjsxMTA5IDExNjIgMTFBRTtDMENGOzExMDkgMTE2MiAxMUFFOworQzBEMDtDMEQwOzExMDkgMTE2MiAxMUFGO0MwRDA7MTEwOSAxMTYyIDExQUY7CitDMEQxO0MwRDE7MTEwOSAxMTYyIDExQjA7QzBEMTsxMTA5IDExNjIgMTFCMDsKK0MwRDI7QzBEMjsxMTA5IDExNjIgMTFCMTtDMEQyOzExMDkgMTE2MiAxMUIxOworQzBEMztDMEQzOzExMDkgMTE2MiAxMUIyO0MwRDM7MTEwOSAxMTYyIDExQjI7CitDMEQ0O0MwRDQ7MTEwOSAxMTYyIDExQjM7QzBENDsxMTA5IDExNjIgMTFCMzsKK0MwRDU7QzBENTsxMTA5IDExNjIgMTFCNDtDMEQ1OzExMDkgMTE2MiAxMUI0OworQzBENjtDMEQ2OzExMDkgMTE2MiAxMUI1O0MwRDY7MTEwOSAxMTYyIDExQjU7CitDMEQ3O0MwRDc7MTEwOSAxMTYyIDExQjY7QzBENzsxMTA5IDExNjIgMTFCNjsKK0MwRDg7QzBEODsxMTA5IDExNjIgMTFCNztDMEQ4OzExMDkgMTE2MiAxMUI3OworQzBEOTtDMEQ5OzExMDkgMTE2MiAxMUI4O0MwRDk7MTEwOSAxMTYyIDExQjg7CitDMERBO0MwREE7MTEwOSAxMTYyIDExQjk7QzBEQTsxMTA5IDExNjIgMTFCOTsKK0MwREI7QzBEQjsxMTA5IDExNjIgMTFCQTtDMERCOzExMDkgMTE2MiAxMUJBOworQzBEQztDMERDOzExMDkgMTE2MiAxMUJCO0MwREM7MTEwOSAxMTYyIDExQkI7CitDMEREO0MwREQ7MTEwOSAxMTYyIDExQkM7QzBERDsxMTA5IDExNjIgMTFCQzsKK0MwREU7QzBERTsxMTA5IDExNjIgMTFCRDtDMERFOzExMDkgMTE2MiAxMUJEOworQzBERjtDMERGOzExMDkgMTE2MiAxMUJFO0MwREY7MTEwOSAxMTYyIDExQkU7CitDMEUwO0MwRTA7MTEwOSAxMTYyIDExQkY7QzBFMDsxMTA5IDExNjIgMTFCRjsKK0MwRTE7QzBFMTsxMTA5IDExNjIgMTFDMDtDMEUxOzExMDkgMTE2MiAxMUMwOworQzBFMjtDMEUyOzExMDkgMTE2MiAxMUMxO0MwRTI7MTEwOSAxMTYyIDExQzE7CitDMEUzO0MwRTM7MTEwOSAxMTYyIDExQzI7QzBFMzsxMTA5IDExNjIgMTFDMjsKK0MwRTQ7QzBFNDsxMTA5IDExNjM7QzBFNDsxMTA5IDExNjM7CitDMEU1O0MwRTU7MTEwOSAxMTYzIDExQTg7QzBFNTsxMTA5IDExNjMgMTFBODsKK0MwRTY7QzBFNjsxMTA5IDExNjMgMTFBOTtDMEU2OzExMDkgMTE2MyAxMUE5OworQzBFNztDMEU3OzExMDkgMTE2MyAxMUFBO0MwRTc7MTEwOSAxMTYzIDExQUE7CitDMEU4O0MwRTg7MTEwOSAxMTYzIDExQUI7QzBFODsxMTA5IDExNjMgMTFBQjsKK0MwRTk7QzBFOTsxMTA5IDExNjMgMTFBQztDMEU5OzExMDkgMTE2MyAxMUFDOworQzBFQTtDMEVBOzExMDkgMTE2MyAxMUFEO0MwRUE7MTEwOSAxMTYzIDExQUQ7CitDMEVCO0MwRUI7MTEwOSAxMTYzIDExQUU7QzBFQjsxMTA5IDExNjMgMTFBRTsKK0MwRUM7QzBFQzsxMTA5IDExNjMgMTFBRjtDMEVDOzExMDkgMTE2MyAxMUFGOworQzBFRDtDMEVEOzExMDkgMTE2MyAxMUIwO0MwRUQ7MTEwOSAxMTYzIDExQjA7CitDMEVFO0MwRUU7MTEwOSAxMTYzIDExQjE7QzBFRTsxMTA5IDExNjMgMTFCMTsKK0MwRUY7QzBFRjsxMTA5IDExNjMgMTFCMjtDMEVGOzExMDkgMTE2MyAxMUIyOworQzBGMDtDMEYwOzExMDkgMTE2MyAxMUIzO0MwRjA7MTEwOSAxMTYzIDExQjM7CitDMEYxO0MwRjE7MTEwOSAxMTYzIDExQjQ7QzBGMTsxMTA5IDExNjMgMTFCNDsKK0MwRjI7QzBGMjsxMTA5IDExNjMgMTFCNTtDMEYyOzExMDkgMTE2MyAxMUI1OworQzBGMztDMEYzOzExMDkgMTE2MyAxMUI2O0MwRjM7MTEwOSAxMTYzIDExQjY7CitDMEY0O0MwRjQ7MTEwOSAxMTYzIDExQjc7QzBGNDsxMTA5IDExNjMgMTFCNzsKK0MwRjU7QzBGNTsxMTA5IDExNjMgMTFCODtDMEY1OzExMDkgMTE2MyAxMUI4OworQzBGNjtDMEY2OzExMDkgMTE2MyAxMUI5O0MwRjY7MTEwOSAxMTYzIDExQjk7CitDMEY3O0MwRjc7MTEwOSAxMTYzIDExQkE7QzBGNzsxMTA5IDExNjMgMTFCQTsKK0MwRjg7QzBGODsxMTA5IDExNjMgMTFCQjtDMEY4OzExMDkgMTE2MyAxMUJCOworQzBGOTtDMEY5OzExMDkgMTE2MyAxMUJDO0MwRjk7MTEwOSAxMTYzIDExQkM7CitDMEZBO0MwRkE7MTEwOSAxMTYzIDExQkQ7QzBGQTsxMTA5IDExNjMgMTFCRDsKK0MwRkI7QzBGQjsxMTA5IDExNjMgMTFCRTtDMEZCOzExMDkgMTE2MyAxMUJFOworQzBGQztDMEZDOzExMDkgMTE2MyAxMUJGO0MwRkM7MTEwOSAxMTYzIDExQkY7CitDMEZEO0MwRkQ7MTEwOSAxMTYzIDExQzA7QzBGRDsxMTA5IDExNjMgMTFDMDsKK0MwRkU7QzBGRTsxMTA5IDExNjMgMTFDMTtDMEZFOzExMDkgMTE2MyAxMUMxOworQzBGRjtDMEZGOzExMDkgMTE2MyAxMUMyO0MwRkY7MTEwOSAxMTYzIDExQzI7CitDMTAwO0MxMDA7MTEwOSAxMTY0O0MxMDA7MTEwOSAxMTY0OworQzEwMTtDMTAxOzExMDkgMTE2NCAxMUE4O0MxMDE7MTEwOSAxMTY0IDExQTg7CitDMTAyO0MxMDI7MTEwOSAxMTY0IDExQTk7QzEwMjsxMTA5IDExNjQgMTFBOTsKK0MxMDM7QzEwMzsxMTA5IDExNjQgMTFBQTtDMTAzOzExMDkgMTE2NCAxMUFBOworQzEwNDtDMTA0OzExMDkgMTE2NCAxMUFCO0MxMDQ7MTEwOSAxMTY0IDExQUI7CitDMTA1O0MxMDU7MTEwOSAxMTY0IDExQUM7QzEwNTsxMTA5IDExNjQgMTFBQzsKK0MxMDY7QzEwNjsxMTA5IDExNjQgMTFBRDtDMTA2OzExMDkgMTE2NCAxMUFEOworQzEwNztDMTA3OzExMDkgMTE2NCAxMUFFO0MxMDc7MTEwOSAxMTY0IDExQUU7CitDMTA4O0MxMDg7MTEwOSAxMTY0IDExQUY7QzEwODsxMTA5IDExNjQgMTFBRjsKK0MxMDk7QzEwOTsxMTA5IDExNjQgMTFCMDtDMTA5OzExMDkgMTE2NCAxMUIwOworQzEwQTtDMTBBOzExMDkgMTE2NCAxMUIxO0MxMEE7MTEwOSAxMTY0IDExQjE7CitDMTBCO0MxMEI7MTEwOSAxMTY0IDExQjI7QzEwQjsxMTA5IDExNjQgMTFCMjsKK0MxMEM7QzEwQzsxMTA5IDExNjQgMTFCMztDMTBDOzExMDkgMTE2NCAxMUIzOworQzEwRDtDMTBEOzExMDkgMTE2NCAxMUI0O0MxMEQ7MTEwOSAxMTY0IDExQjQ7CitDMTBFO0MxMEU7MTEwOSAxMTY0IDExQjU7QzEwRTsxMTA5IDExNjQgMTFCNTsKK0MxMEY7QzEwRjsxMTA5IDExNjQgMTFCNjtDMTBGOzExMDkgMTE2NCAxMUI2OworQzExMDtDMTEwOzExMDkgMTE2NCAxMUI3O0MxMTA7MTEwOSAxMTY0IDExQjc7CitDMTExO0MxMTE7MTEwOSAxMTY0IDExQjg7QzExMTsxMTA5IDExNjQgMTFCODsKK0MxMTI7QzExMjsxMTA5IDExNjQgMTFCOTtDMTEyOzExMDkgMTE2NCAxMUI5OworQzExMztDMTEzOzExMDkgMTE2NCAxMUJBO0MxMTM7MTEwOSAxMTY0IDExQkE7CitDMTE0O0MxMTQ7MTEwOSAxMTY0IDExQkI7QzExNDsxMTA5IDExNjQgMTFCQjsKK0MxMTU7QzExNTsxMTA5IDExNjQgMTFCQztDMTE1OzExMDkgMTE2NCAxMUJDOworQzExNjtDMTE2OzExMDkgMTE2NCAxMUJEO0MxMTY7MTEwOSAxMTY0IDExQkQ7CitDMTE3O0MxMTc7MTEwOSAxMTY0IDExQkU7QzExNzsxMTA5IDExNjQgMTFCRTsKK0MxMTg7QzExODsxMTA5IDExNjQgMTFCRjtDMTE4OzExMDkgMTE2NCAxMUJGOworQzExOTtDMTE5OzExMDkgMTE2NCAxMUMwO0MxMTk7MTEwOSAxMTY0IDExQzA7CitDMTFBO0MxMUE7MTEwOSAxMTY0IDExQzE7QzExQTsxMTA5IDExNjQgMTFDMTsKK0MxMUI7QzExQjsxMTA5IDExNjQgMTFDMjtDMTFCOzExMDkgMTE2NCAxMUMyOworQzExQztDMTFDOzExMDkgMTE2NTtDMTFDOzExMDkgMTE2NTsKK0MxMUQ7QzExRDsxMTA5IDExNjUgMTFBODtDMTFEOzExMDkgMTE2NSAxMUE4OworQzExRTtDMTFFOzExMDkgMTE2NSAxMUE5O0MxMUU7MTEwOSAxMTY1IDExQTk7CitDMTFGO0MxMUY7MTEwOSAxMTY1IDExQUE7QzExRjsxMTA5IDExNjUgMTFBQTsKK0MxMjA7QzEyMDsxMTA5IDExNjUgMTFBQjtDMTIwOzExMDkgMTE2NSAxMUFCOworQzEyMTtDMTIxOzExMDkgMTE2NSAxMUFDO0MxMjE7MTEwOSAxMTY1IDExQUM7CitDMTIyO0MxMjI7MTEwOSAxMTY1IDExQUQ7QzEyMjsxMTA5IDExNjUgMTFBRDsKK0MxMjM7QzEyMzsxMTA5IDExNjUgMTFBRTtDMTIzOzExMDkgMTE2NSAxMUFFOworQzEyNDtDMTI0OzExMDkgMTE2NSAxMUFGO0MxMjQ7MTEwOSAxMTY1IDExQUY7CitDMTI1O0MxMjU7MTEwOSAxMTY1IDExQjA7QzEyNTsxMTA5IDExNjUgMTFCMDsKK0MxMjY7QzEyNjsxMTA5IDExNjUgMTFCMTtDMTI2OzExMDkgMTE2NSAxMUIxOworQzEyNztDMTI3OzExMDkgMTE2NSAxMUIyO0MxMjc7MTEwOSAxMTY1IDExQjI7CitDMTI4O0MxMjg7MTEwOSAxMTY1IDExQjM7QzEyODsxMTA5IDExNjUgMTFCMzsKK0MxMjk7QzEyOTsxMTA5IDExNjUgMTFCNDtDMTI5OzExMDkgMTE2NSAxMUI0OworQzEyQTtDMTJBOzExMDkgMTE2NSAxMUI1O0MxMkE7MTEwOSAxMTY1IDExQjU7CitDMTJCO0MxMkI7MTEwOSAxMTY1IDExQjY7QzEyQjsxMTA5IDExNjUgMTFCNjsKK0MxMkM7QzEyQzsxMTA5IDExNjUgMTFCNztDMTJDOzExMDkgMTE2NSAxMUI3OworQzEyRDtDMTJEOzExMDkgMTE2NSAxMUI4O0MxMkQ7MTEwOSAxMTY1IDExQjg7CitDMTJFO0MxMkU7MTEwOSAxMTY1IDExQjk7QzEyRTsxMTA5IDExNjUgMTFCOTsKK0MxMkY7QzEyRjsxMTA5IDExNjUgMTFCQTtDMTJGOzExMDkgMTE2NSAxMUJBOworQzEzMDtDMTMwOzExMDkgMTE2NSAxMUJCO0MxMzA7MTEwOSAxMTY1IDExQkI7CitDMTMxO0MxMzE7MTEwOSAxMTY1IDExQkM7QzEzMTsxMTA5IDExNjUgMTFCQzsKK0MxMzI7QzEzMjsxMTA5IDExNjUgMTFCRDtDMTMyOzExMDkgMTE2NSAxMUJEOworQzEzMztDMTMzOzExMDkgMTE2NSAxMUJFO0MxMzM7MTEwOSAxMTY1IDExQkU7CitDMTM0O0MxMzQ7MTEwOSAxMTY1IDExQkY7QzEzNDsxMTA5IDExNjUgMTFCRjsKK0MxMzU7QzEzNTsxMTA5IDExNjUgMTFDMDtDMTM1OzExMDkgMTE2NSAxMUMwOworQzEzNjtDMTM2OzExMDkgMTE2NSAxMUMxO0MxMzY7MTEwOSAxMTY1IDExQzE7CitDMTM3O0MxMzc7MTEwOSAxMTY1IDExQzI7QzEzNzsxMTA5IDExNjUgMTFDMjsKK0MxMzg7QzEzODsxMTA5IDExNjY7QzEzODsxMTA5IDExNjY7CitDMTM5O0MxMzk7MTEwOSAxMTY2IDExQTg7QzEzOTsxMTA5IDExNjYgMTFBODsKK0MxM0E7QzEzQTsxMTA5IDExNjYgMTFBOTtDMTNBOzExMDkgMTE2NiAxMUE5OworQzEzQjtDMTNCOzExMDkgMTE2NiAxMUFBO0MxM0I7MTEwOSAxMTY2IDExQUE7CitDMTNDO0MxM0M7MTEwOSAxMTY2IDExQUI7QzEzQzsxMTA5IDExNjYgMTFBQjsKK0MxM0Q7QzEzRDsxMTA5IDExNjYgMTFBQztDMTNEOzExMDkgMTE2NiAxMUFDOworQzEzRTtDMTNFOzExMDkgMTE2NiAxMUFEO0MxM0U7MTEwOSAxMTY2IDExQUQ7CitDMTNGO0MxM0Y7MTEwOSAxMTY2IDExQUU7QzEzRjsxMTA5IDExNjYgMTFBRTsKK0MxNDA7QzE0MDsxMTA5IDExNjYgMTFBRjtDMTQwOzExMDkgMTE2NiAxMUFGOworQzE0MTtDMTQxOzExMDkgMTE2NiAxMUIwO0MxNDE7MTEwOSAxMTY2IDExQjA7CitDMTQyO0MxNDI7MTEwOSAxMTY2IDExQjE7QzE0MjsxMTA5IDExNjYgMTFCMTsKK0MxNDM7QzE0MzsxMTA5IDExNjYgMTFCMjtDMTQzOzExMDkgMTE2NiAxMUIyOworQzE0NDtDMTQ0OzExMDkgMTE2NiAxMUIzO0MxNDQ7MTEwOSAxMTY2IDExQjM7CitDMTQ1O0MxNDU7MTEwOSAxMTY2IDExQjQ7QzE0NTsxMTA5IDExNjYgMTFCNDsKK0MxNDY7QzE0NjsxMTA5IDExNjYgMTFCNTtDMTQ2OzExMDkgMTE2NiAxMUI1OworQzE0NztDMTQ3OzExMDkgMTE2NiAxMUI2O0MxNDc7MTEwOSAxMTY2IDExQjY7CitDMTQ4O0MxNDg7MTEwOSAxMTY2IDExQjc7QzE0ODsxMTA5IDExNjYgMTFCNzsKK0MxNDk7QzE0OTsxMTA5IDExNjYgMTFCODtDMTQ5OzExMDkgMTE2NiAxMUI4OworQzE0QTtDMTRBOzExMDkgMTE2NiAxMUI5O0MxNEE7MTEwOSAxMTY2IDExQjk7CitDMTRCO0MxNEI7MTEwOSAxMTY2IDExQkE7QzE0QjsxMTA5IDExNjYgMTFCQTsKK0MxNEM7QzE0QzsxMTA5IDExNjYgMTFCQjtDMTRDOzExMDkgMTE2NiAxMUJCOworQzE0RDtDMTREOzExMDkgMTE2NiAxMUJDO0MxNEQ7MTEwOSAxMTY2IDExQkM7CitDMTRFO0MxNEU7MTEwOSAxMTY2IDExQkQ7QzE0RTsxMTA5IDExNjYgMTFCRDsKK0MxNEY7QzE0RjsxMTA5IDExNjYgMTFCRTtDMTRGOzExMDkgMTE2NiAxMUJFOworQzE1MDtDMTUwOzExMDkgMTE2NiAxMUJGO0MxNTA7MTEwOSAxMTY2IDExQkY7CitDMTUxO0MxNTE7MTEwOSAxMTY2IDExQzA7QzE1MTsxMTA5IDExNjYgMTFDMDsKK0MxNTI7QzE1MjsxMTA5IDExNjYgMTFDMTtDMTUyOzExMDkgMTE2NiAxMUMxOworQzE1MztDMTUzOzExMDkgMTE2NiAxMUMyO0MxNTM7MTEwOSAxMTY2IDExQzI7CitDMTU0O0MxNTQ7MTEwOSAxMTY3O0MxNTQ7MTEwOSAxMTY3OworQzE1NTtDMTU1OzExMDkgMTE2NyAxMUE4O0MxNTU7MTEwOSAxMTY3IDExQTg7CitDMTU2O0MxNTY7MTEwOSAxMTY3IDExQTk7QzE1NjsxMTA5IDExNjcgMTFBOTsKK0MxNTc7QzE1NzsxMTA5IDExNjcgMTFBQTtDMTU3OzExMDkgMTE2NyAxMUFBOworQzE1ODtDMTU4OzExMDkgMTE2NyAxMUFCO0MxNTg7MTEwOSAxMTY3IDExQUI7CitDMTU5O0MxNTk7MTEwOSAxMTY3IDExQUM7QzE1OTsxMTA5IDExNjcgMTFBQzsKK0MxNUE7QzE1QTsxMTA5IDExNjcgMTFBRDtDMTVBOzExMDkgMTE2NyAxMUFEOworQzE1QjtDMTVCOzExMDkgMTE2NyAxMUFFO0MxNUI7MTEwOSAxMTY3IDExQUU7CitDMTVDO0MxNUM7MTEwOSAxMTY3IDExQUY7QzE1QzsxMTA5IDExNjcgMTFBRjsKK0MxNUQ7QzE1RDsxMTA5IDExNjcgMTFCMDtDMTVEOzExMDkgMTE2NyAxMUIwOworQzE1RTtDMTVFOzExMDkgMTE2NyAxMUIxO0MxNUU7MTEwOSAxMTY3IDExQjE7CitDMTVGO0MxNUY7MTEwOSAxMTY3IDExQjI7QzE1RjsxMTA5IDExNjcgMTFCMjsKK0MxNjA7QzE2MDsxMTA5IDExNjcgMTFCMztDMTYwOzExMDkgMTE2NyAxMUIzOworQzE2MTtDMTYxOzExMDkgMTE2NyAxMUI0O0MxNjE7MTEwOSAxMTY3IDExQjQ7CitDMTYyO0MxNjI7MTEwOSAxMTY3IDExQjU7QzE2MjsxMTA5IDExNjcgMTFCNTsKK0MxNjM7QzE2MzsxMTA5IDExNjcgMTFCNjtDMTYzOzExMDkgMTE2NyAxMUI2OworQzE2NDtDMTY0OzExMDkgMTE2NyAxMUI3O0MxNjQ7MTEwOSAxMTY3IDExQjc7CitDMTY1O0MxNjU7MTEwOSAxMTY3IDExQjg7QzE2NTsxMTA5IDExNjcgMTFCODsKK0MxNjY7QzE2NjsxMTA5IDExNjcgMTFCOTtDMTY2OzExMDkgMTE2NyAxMUI5OworQzE2NztDMTY3OzExMDkgMTE2NyAxMUJBO0MxNjc7MTEwOSAxMTY3IDExQkE7CitDMTY4O0MxNjg7MTEwOSAxMTY3IDExQkI7QzE2ODsxMTA5IDExNjcgMTFCQjsKK0MxNjk7QzE2OTsxMTA5IDExNjcgMTFCQztDMTY5OzExMDkgMTE2NyAxMUJDOworQzE2QTtDMTZBOzExMDkgMTE2NyAxMUJEO0MxNkE7MTEwOSAxMTY3IDExQkQ7CitDMTZCO0MxNkI7MTEwOSAxMTY3IDExQkU7QzE2QjsxMTA5IDExNjcgMTFCRTsKK0MxNkM7QzE2QzsxMTA5IDExNjcgMTFCRjtDMTZDOzExMDkgMTE2NyAxMUJGOworQzE2RDtDMTZEOzExMDkgMTE2NyAxMUMwO0MxNkQ7MTEwOSAxMTY3IDExQzA7CitDMTZFO0MxNkU7MTEwOSAxMTY3IDExQzE7QzE2RTsxMTA5IDExNjcgMTFDMTsKK0MxNkY7QzE2RjsxMTA5IDExNjcgMTFDMjtDMTZGOzExMDkgMTE2NyAxMUMyOworQzE3MDtDMTcwOzExMDkgMTE2ODtDMTcwOzExMDkgMTE2ODsKK0MxNzE7QzE3MTsxMTA5IDExNjggMTFBODtDMTcxOzExMDkgMTE2OCAxMUE4OworQzE3MjtDMTcyOzExMDkgMTE2OCAxMUE5O0MxNzI7MTEwOSAxMTY4IDExQTk7CitDMTczO0MxNzM7MTEwOSAxMTY4IDExQUE7QzE3MzsxMTA5IDExNjggMTFBQTsKK0MxNzQ7QzE3NDsxMTA5IDExNjggMTFBQjtDMTc0OzExMDkgMTE2OCAxMUFCOworQzE3NTtDMTc1OzExMDkgMTE2OCAxMUFDO0MxNzU7MTEwOSAxMTY4IDExQUM7CitDMTc2O0MxNzY7MTEwOSAxMTY4IDExQUQ7QzE3NjsxMTA5IDExNjggMTFBRDsKK0MxNzc7QzE3NzsxMTA5IDExNjggMTFBRTtDMTc3OzExMDkgMTE2OCAxMUFFOworQzE3ODtDMTc4OzExMDkgMTE2OCAxMUFGO0MxNzg7MTEwOSAxMTY4IDExQUY7CitDMTc5O0MxNzk7MTEwOSAxMTY4IDExQjA7QzE3OTsxMTA5IDExNjggMTFCMDsKK0MxN0E7QzE3QTsxMTA5IDExNjggMTFCMTtDMTdBOzExMDkgMTE2OCAxMUIxOworQzE3QjtDMTdCOzExMDkgMTE2OCAxMUIyO0MxN0I7MTEwOSAxMTY4IDExQjI7CitDMTdDO0MxN0M7MTEwOSAxMTY4IDExQjM7QzE3QzsxMTA5IDExNjggMTFCMzsKK0MxN0Q7QzE3RDsxMTA5IDExNjggMTFCNDtDMTdEOzExMDkgMTE2OCAxMUI0OworQzE3RTtDMTdFOzExMDkgMTE2OCAxMUI1O0MxN0U7MTEwOSAxMTY4IDExQjU7CitDMTdGO0MxN0Y7MTEwOSAxMTY4IDExQjY7QzE3RjsxMTA5IDExNjggMTFCNjsKK0MxODA7QzE4MDsxMTA5IDExNjggMTFCNztDMTgwOzExMDkgMTE2OCAxMUI3OworQzE4MTtDMTgxOzExMDkgMTE2OCAxMUI4O0MxODE7MTEwOSAxMTY4IDExQjg7CitDMTgyO0MxODI7MTEwOSAxMTY4IDExQjk7QzE4MjsxMTA5IDExNjggMTFCOTsKK0MxODM7QzE4MzsxMTA5IDExNjggMTFCQTtDMTgzOzExMDkgMTE2OCAxMUJBOworQzE4NDtDMTg0OzExMDkgMTE2OCAxMUJCO0MxODQ7MTEwOSAxMTY4IDExQkI7CitDMTg1O0MxODU7MTEwOSAxMTY4IDExQkM7QzE4NTsxMTA5IDExNjggMTFCQzsKK0MxODY7QzE4NjsxMTA5IDExNjggMTFCRDtDMTg2OzExMDkgMTE2OCAxMUJEOworQzE4NztDMTg3OzExMDkgMTE2OCAxMUJFO0MxODc7MTEwOSAxMTY4IDExQkU7CitDMTg4O0MxODg7MTEwOSAxMTY4IDExQkY7QzE4ODsxMTA5IDExNjggMTFCRjsKK0MxODk7QzE4OTsxMTA5IDExNjggMTFDMDtDMTg5OzExMDkgMTE2OCAxMUMwOworQzE4QTtDMThBOzExMDkgMTE2OCAxMUMxO0MxOEE7MTEwOSAxMTY4IDExQzE7CitDMThCO0MxOEI7MTEwOSAxMTY4IDExQzI7QzE4QjsxMTA5IDExNjggMTFDMjsKK0MxOEM7QzE4QzsxMTA5IDExNjk7QzE4QzsxMTA5IDExNjk7CitDMThEO0MxOEQ7MTEwOSAxMTY5IDExQTg7QzE4RDsxMTA5IDExNjkgMTFBODsKK0MxOEU7QzE4RTsxMTA5IDExNjkgMTFBOTtDMThFOzExMDkgMTE2OSAxMUE5OworQzE4RjtDMThGOzExMDkgMTE2OSAxMUFBO0MxOEY7MTEwOSAxMTY5IDExQUE7CitDMTkwO0MxOTA7MTEwOSAxMTY5IDExQUI7QzE5MDsxMTA5IDExNjkgMTFBQjsKK0MxOTE7QzE5MTsxMTA5IDExNjkgMTFBQztDMTkxOzExMDkgMTE2OSAxMUFDOworQzE5MjtDMTkyOzExMDkgMTE2OSAxMUFEO0MxOTI7MTEwOSAxMTY5IDExQUQ7CitDMTkzO0MxOTM7MTEwOSAxMTY5IDExQUU7QzE5MzsxMTA5IDExNjkgMTFBRTsKK0MxOTQ7QzE5NDsxMTA5IDExNjkgMTFBRjtDMTk0OzExMDkgMTE2OSAxMUFGOworQzE5NTtDMTk1OzExMDkgMTE2OSAxMUIwO0MxOTU7MTEwOSAxMTY5IDExQjA7CitDMTk2O0MxOTY7MTEwOSAxMTY5IDExQjE7QzE5NjsxMTA5IDExNjkgMTFCMTsKK0MxOTc7QzE5NzsxMTA5IDExNjkgMTFCMjtDMTk3OzExMDkgMTE2OSAxMUIyOworQzE5ODtDMTk4OzExMDkgMTE2OSAxMUIzO0MxOTg7MTEwOSAxMTY5IDExQjM7CitDMTk5O0MxOTk7MTEwOSAxMTY5IDExQjQ7QzE5OTsxMTA5IDExNjkgMTFCNDsKK0MxOUE7QzE5QTsxMTA5IDExNjkgMTFCNTtDMTlBOzExMDkgMTE2OSAxMUI1OworQzE5QjtDMTlCOzExMDkgMTE2OSAxMUI2O0MxOUI7MTEwOSAxMTY5IDExQjY7CitDMTlDO0MxOUM7MTEwOSAxMTY5IDExQjc7QzE5QzsxMTA5IDExNjkgMTFCNzsKK0MxOUQ7QzE5RDsxMTA5IDExNjkgMTFCODtDMTlEOzExMDkgMTE2OSAxMUI4OworQzE5RTtDMTlFOzExMDkgMTE2OSAxMUI5O0MxOUU7MTEwOSAxMTY5IDExQjk7CitDMTlGO0MxOUY7MTEwOSAxMTY5IDExQkE7QzE5RjsxMTA5IDExNjkgMTFCQTsKK0MxQTA7QzFBMDsxMTA5IDExNjkgMTFCQjtDMUEwOzExMDkgMTE2OSAxMUJCOworQzFBMTtDMUExOzExMDkgMTE2OSAxMUJDO0MxQTE7MTEwOSAxMTY5IDExQkM7CitDMUEyO0MxQTI7MTEwOSAxMTY5IDExQkQ7QzFBMjsxMTA5IDExNjkgMTFCRDsKK0MxQTM7QzFBMzsxMTA5IDExNjkgMTFCRTtDMUEzOzExMDkgMTE2OSAxMUJFOworQzFBNDtDMUE0OzExMDkgMTE2OSAxMUJGO0MxQTQ7MTEwOSAxMTY5IDExQkY7CitDMUE1O0MxQTU7MTEwOSAxMTY5IDExQzA7QzFBNTsxMTA5IDExNjkgMTFDMDsKK0MxQTY7QzFBNjsxMTA5IDExNjkgMTFDMTtDMUE2OzExMDkgMTE2OSAxMUMxOworQzFBNztDMUE3OzExMDkgMTE2OSAxMUMyO0MxQTc7MTEwOSAxMTY5IDExQzI7CitDMUE4O0MxQTg7MTEwOSAxMTZBO0MxQTg7MTEwOSAxMTZBOworQzFBOTtDMUE5OzExMDkgMTE2QSAxMUE4O0MxQTk7MTEwOSAxMTZBIDExQTg7CitDMUFBO0MxQUE7MTEwOSAxMTZBIDExQTk7QzFBQTsxMTA5IDExNkEgMTFBOTsKK0MxQUI7QzFBQjsxMTA5IDExNkEgMTFBQTtDMUFCOzExMDkgMTE2QSAxMUFBOworQzFBQztDMUFDOzExMDkgMTE2QSAxMUFCO0MxQUM7MTEwOSAxMTZBIDExQUI7CitDMUFEO0MxQUQ7MTEwOSAxMTZBIDExQUM7QzFBRDsxMTA5IDExNkEgMTFBQzsKK0MxQUU7QzFBRTsxMTA5IDExNkEgMTFBRDtDMUFFOzExMDkgMTE2QSAxMUFEOworQzFBRjtDMUFGOzExMDkgMTE2QSAxMUFFO0MxQUY7MTEwOSAxMTZBIDExQUU7CitDMUIwO0MxQjA7MTEwOSAxMTZBIDExQUY7QzFCMDsxMTA5IDExNkEgMTFBRjsKK0MxQjE7QzFCMTsxMTA5IDExNkEgMTFCMDtDMUIxOzExMDkgMTE2QSAxMUIwOworQzFCMjtDMUIyOzExMDkgMTE2QSAxMUIxO0MxQjI7MTEwOSAxMTZBIDExQjE7CitDMUIzO0MxQjM7MTEwOSAxMTZBIDExQjI7QzFCMzsxMTA5IDExNkEgMTFCMjsKK0MxQjQ7QzFCNDsxMTA5IDExNkEgMTFCMztDMUI0OzExMDkgMTE2QSAxMUIzOworQzFCNTtDMUI1OzExMDkgMTE2QSAxMUI0O0MxQjU7MTEwOSAxMTZBIDExQjQ7CitDMUI2O0MxQjY7MTEwOSAxMTZBIDExQjU7QzFCNjsxMTA5IDExNkEgMTFCNTsKK0MxQjc7QzFCNzsxMTA5IDExNkEgMTFCNjtDMUI3OzExMDkgMTE2QSAxMUI2OworQzFCODtDMUI4OzExMDkgMTE2QSAxMUI3O0MxQjg7MTEwOSAxMTZBIDExQjc7CitDMUI5O0MxQjk7MTEwOSAxMTZBIDExQjg7QzFCOTsxMTA5IDExNkEgMTFCODsKK0MxQkE7QzFCQTsxMTA5IDExNkEgMTFCOTtDMUJBOzExMDkgMTE2QSAxMUI5OworQzFCQjtDMUJCOzExMDkgMTE2QSAxMUJBO0MxQkI7MTEwOSAxMTZBIDExQkE7CitDMUJDO0MxQkM7MTEwOSAxMTZBIDExQkI7QzFCQzsxMTA5IDExNkEgMTFCQjsKK0MxQkQ7QzFCRDsxMTA5IDExNkEgMTFCQztDMUJEOzExMDkgMTE2QSAxMUJDOworQzFCRTtDMUJFOzExMDkgMTE2QSAxMUJEO0MxQkU7MTEwOSAxMTZBIDExQkQ7CitDMUJGO0MxQkY7MTEwOSAxMTZBIDExQkU7QzFCRjsxMTA5IDExNkEgMTFCRTsKK0MxQzA7QzFDMDsxMTA5IDExNkEgMTFCRjtDMUMwOzExMDkgMTE2QSAxMUJGOworQzFDMTtDMUMxOzExMDkgMTE2QSAxMUMwO0MxQzE7MTEwOSAxMTZBIDExQzA7CitDMUMyO0MxQzI7MTEwOSAxMTZBIDExQzE7QzFDMjsxMTA5IDExNkEgMTFDMTsKK0MxQzM7QzFDMzsxMTA5IDExNkEgMTFDMjtDMUMzOzExMDkgMTE2QSAxMUMyOworQzFDNDtDMUM0OzExMDkgMTE2QjtDMUM0OzExMDkgMTE2QjsKK0MxQzU7QzFDNTsxMTA5IDExNkIgMTFBODtDMUM1OzExMDkgMTE2QiAxMUE4OworQzFDNjtDMUM2OzExMDkgMTE2QiAxMUE5O0MxQzY7MTEwOSAxMTZCIDExQTk7CitDMUM3O0MxQzc7MTEwOSAxMTZCIDExQUE7QzFDNzsxMTA5IDExNkIgMTFBQTsKK0MxQzg7QzFDODsxMTA5IDExNkIgMTFBQjtDMUM4OzExMDkgMTE2QiAxMUFCOworQzFDOTtDMUM5OzExMDkgMTE2QiAxMUFDO0MxQzk7MTEwOSAxMTZCIDExQUM7CitDMUNBO0MxQ0E7MTEwOSAxMTZCIDExQUQ7QzFDQTsxMTA5IDExNkIgMTFBRDsKK0MxQ0I7QzFDQjsxMTA5IDExNkIgMTFBRTtDMUNCOzExMDkgMTE2QiAxMUFFOworQzFDQztDMUNDOzExMDkgMTE2QiAxMUFGO0MxQ0M7MTEwOSAxMTZCIDExQUY7CitDMUNEO0MxQ0Q7MTEwOSAxMTZCIDExQjA7QzFDRDsxMTA5IDExNkIgMTFCMDsKK0MxQ0U7QzFDRTsxMTA5IDExNkIgMTFCMTtDMUNFOzExMDkgMTE2QiAxMUIxOworQzFDRjtDMUNGOzExMDkgMTE2QiAxMUIyO0MxQ0Y7MTEwOSAxMTZCIDExQjI7CitDMUQwO0MxRDA7MTEwOSAxMTZCIDExQjM7QzFEMDsxMTA5IDExNkIgMTFCMzsKK0MxRDE7QzFEMTsxMTA5IDExNkIgMTFCNDtDMUQxOzExMDkgMTE2QiAxMUI0OworQzFEMjtDMUQyOzExMDkgMTE2QiAxMUI1O0MxRDI7MTEwOSAxMTZCIDExQjU7CitDMUQzO0MxRDM7MTEwOSAxMTZCIDExQjY7QzFEMzsxMTA5IDExNkIgMTFCNjsKK0MxRDQ7QzFENDsxMTA5IDExNkIgMTFCNztDMUQ0OzExMDkgMTE2QiAxMUI3OworQzFENTtDMUQ1OzExMDkgMTE2QiAxMUI4O0MxRDU7MTEwOSAxMTZCIDExQjg7CitDMUQ2O0MxRDY7MTEwOSAxMTZCIDExQjk7QzFENjsxMTA5IDExNkIgMTFCOTsKK0MxRDc7QzFENzsxMTA5IDExNkIgMTFCQTtDMUQ3OzExMDkgMTE2QiAxMUJBOworQzFEODtDMUQ4OzExMDkgMTE2QiAxMUJCO0MxRDg7MTEwOSAxMTZCIDExQkI7CitDMUQ5O0MxRDk7MTEwOSAxMTZCIDExQkM7QzFEOTsxMTA5IDExNkIgMTFCQzsKK0MxREE7QzFEQTsxMTA5IDExNkIgMTFCRDtDMURBOzExMDkgMTE2QiAxMUJEOworQzFEQjtDMURCOzExMDkgMTE2QiAxMUJFO0MxREI7MTEwOSAxMTZCIDExQkU7CitDMURDO0MxREM7MTEwOSAxMTZCIDExQkY7QzFEQzsxMTA5IDExNkIgMTFCRjsKK0MxREQ7QzFERDsxMTA5IDExNkIgMTFDMDtDMUREOzExMDkgMTE2QiAxMUMwOworQzFERTtDMURFOzExMDkgMTE2QiAxMUMxO0MxREU7MTEwOSAxMTZCIDExQzE7CitDMURGO0MxREY7MTEwOSAxMTZCIDExQzI7QzFERjsxMTA5IDExNkIgMTFDMjsKK0MxRTA7QzFFMDsxMTA5IDExNkM7QzFFMDsxMTA5IDExNkM7CitDMUUxO0MxRTE7MTEwOSAxMTZDIDExQTg7QzFFMTsxMTA5IDExNkMgMTFBODsKK0MxRTI7QzFFMjsxMTA5IDExNkMgMTFBOTtDMUUyOzExMDkgMTE2QyAxMUE5OworQzFFMztDMUUzOzExMDkgMTE2QyAxMUFBO0MxRTM7MTEwOSAxMTZDIDExQUE7CitDMUU0O0MxRTQ7MTEwOSAxMTZDIDExQUI7QzFFNDsxMTA5IDExNkMgMTFBQjsKK0MxRTU7QzFFNTsxMTA5IDExNkMgMTFBQztDMUU1OzExMDkgMTE2QyAxMUFDOworQzFFNjtDMUU2OzExMDkgMTE2QyAxMUFEO0MxRTY7MTEwOSAxMTZDIDExQUQ7CitDMUU3O0MxRTc7MTEwOSAxMTZDIDExQUU7QzFFNzsxMTA5IDExNkMgMTFBRTsKK0MxRTg7QzFFODsxMTA5IDExNkMgMTFBRjtDMUU4OzExMDkgMTE2QyAxMUFGOworQzFFOTtDMUU5OzExMDkgMTE2QyAxMUIwO0MxRTk7MTEwOSAxMTZDIDExQjA7CitDMUVBO0MxRUE7MTEwOSAxMTZDIDExQjE7QzFFQTsxMTA5IDExNkMgMTFCMTsKK0MxRUI7QzFFQjsxMTA5IDExNkMgMTFCMjtDMUVCOzExMDkgMTE2QyAxMUIyOworQzFFQztDMUVDOzExMDkgMTE2QyAxMUIzO0MxRUM7MTEwOSAxMTZDIDExQjM7CitDMUVEO0MxRUQ7MTEwOSAxMTZDIDExQjQ7QzFFRDsxMTA5IDExNkMgMTFCNDsKK0MxRUU7QzFFRTsxMTA5IDExNkMgMTFCNTtDMUVFOzExMDkgMTE2QyAxMUI1OworQzFFRjtDMUVGOzExMDkgMTE2QyAxMUI2O0MxRUY7MTEwOSAxMTZDIDExQjY7CitDMUYwO0MxRjA7MTEwOSAxMTZDIDExQjc7QzFGMDsxMTA5IDExNkMgMTFCNzsKK0MxRjE7QzFGMTsxMTA5IDExNkMgMTFCODtDMUYxOzExMDkgMTE2QyAxMUI4OworQzFGMjtDMUYyOzExMDkgMTE2QyAxMUI5O0MxRjI7MTEwOSAxMTZDIDExQjk7CitDMUYzO0MxRjM7MTEwOSAxMTZDIDExQkE7QzFGMzsxMTA5IDExNkMgMTFCQTsKK0MxRjQ7QzFGNDsxMTA5IDExNkMgMTFCQjtDMUY0OzExMDkgMTE2QyAxMUJCOworQzFGNTtDMUY1OzExMDkgMTE2QyAxMUJDO0MxRjU7MTEwOSAxMTZDIDExQkM7CitDMUY2O0MxRjY7MTEwOSAxMTZDIDExQkQ7QzFGNjsxMTA5IDExNkMgMTFCRDsKK0MxRjc7QzFGNzsxMTA5IDExNkMgMTFCRTtDMUY3OzExMDkgMTE2QyAxMUJFOworQzFGODtDMUY4OzExMDkgMTE2QyAxMUJGO0MxRjg7MTEwOSAxMTZDIDExQkY7CitDMUY5O0MxRjk7MTEwOSAxMTZDIDExQzA7QzFGOTsxMTA5IDExNkMgMTFDMDsKK0MxRkE7QzFGQTsxMTA5IDExNkMgMTFDMTtDMUZBOzExMDkgMTE2QyAxMUMxOworQzFGQjtDMUZCOzExMDkgMTE2QyAxMUMyO0MxRkI7MTEwOSAxMTZDIDExQzI7CitDMUZDO0MxRkM7MTEwOSAxMTZEO0MxRkM7MTEwOSAxMTZEOworQzFGRDtDMUZEOzExMDkgMTE2RCAxMUE4O0MxRkQ7MTEwOSAxMTZEIDExQTg7CitDMUZFO0MxRkU7MTEwOSAxMTZEIDExQTk7QzFGRTsxMTA5IDExNkQgMTFBOTsKK0MxRkY7QzFGRjsxMTA5IDExNkQgMTFBQTtDMUZGOzExMDkgMTE2RCAxMUFBOworQzIwMDtDMjAwOzExMDkgMTE2RCAxMUFCO0MyMDA7MTEwOSAxMTZEIDExQUI7CitDMjAxO0MyMDE7MTEwOSAxMTZEIDExQUM7QzIwMTsxMTA5IDExNkQgMTFBQzsKK0MyMDI7QzIwMjsxMTA5IDExNkQgMTFBRDtDMjAyOzExMDkgMTE2RCAxMUFEOworQzIwMztDMjAzOzExMDkgMTE2RCAxMUFFO0MyMDM7MTEwOSAxMTZEIDExQUU7CitDMjA0O0MyMDQ7MTEwOSAxMTZEIDExQUY7QzIwNDsxMTA5IDExNkQgMTFBRjsKK0MyMDU7QzIwNTsxMTA5IDExNkQgMTFCMDtDMjA1OzExMDkgMTE2RCAxMUIwOworQzIwNjtDMjA2OzExMDkgMTE2RCAxMUIxO0MyMDY7MTEwOSAxMTZEIDExQjE7CitDMjA3O0MyMDc7MTEwOSAxMTZEIDExQjI7QzIwNzsxMTA5IDExNkQgMTFCMjsKK0MyMDg7QzIwODsxMTA5IDExNkQgMTFCMztDMjA4OzExMDkgMTE2RCAxMUIzOworQzIwOTtDMjA5OzExMDkgMTE2RCAxMUI0O0MyMDk7MTEwOSAxMTZEIDExQjQ7CitDMjBBO0MyMEE7MTEwOSAxMTZEIDExQjU7QzIwQTsxMTA5IDExNkQgMTFCNTsKK0MyMEI7QzIwQjsxMTA5IDExNkQgMTFCNjtDMjBCOzExMDkgMTE2RCAxMUI2OworQzIwQztDMjBDOzExMDkgMTE2RCAxMUI3O0MyMEM7MTEwOSAxMTZEIDExQjc7CitDMjBEO0MyMEQ7MTEwOSAxMTZEIDExQjg7QzIwRDsxMTA5IDExNkQgMTFCODsKK0MyMEU7QzIwRTsxMTA5IDExNkQgMTFCOTtDMjBFOzExMDkgMTE2RCAxMUI5OworQzIwRjtDMjBGOzExMDkgMTE2RCAxMUJBO0MyMEY7MTEwOSAxMTZEIDExQkE7CitDMjEwO0MyMTA7MTEwOSAxMTZEIDExQkI7QzIxMDsxMTA5IDExNkQgMTFCQjsKK0MyMTE7QzIxMTsxMTA5IDExNkQgMTFCQztDMjExOzExMDkgMTE2RCAxMUJDOworQzIxMjtDMjEyOzExMDkgMTE2RCAxMUJEO0MyMTI7MTEwOSAxMTZEIDExQkQ7CitDMjEzO0MyMTM7MTEwOSAxMTZEIDExQkU7QzIxMzsxMTA5IDExNkQgMTFCRTsKK0MyMTQ7QzIxNDsxMTA5IDExNkQgMTFCRjtDMjE0OzExMDkgMTE2RCAxMUJGOworQzIxNTtDMjE1OzExMDkgMTE2RCAxMUMwO0MyMTU7MTEwOSAxMTZEIDExQzA7CitDMjE2O0MyMTY7MTEwOSAxMTZEIDExQzE7QzIxNjsxMTA5IDExNkQgMTFDMTsKK0MyMTc7QzIxNzsxMTA5IDExNkQgMTFDMjtDMjE3OzExMDkgMTE2RCAxMUMyOworQzIxODtDMjE4OzExMDkgMTE2RTtDMjE4OzExMDkgMTE2RTsKK0MyMTk7QzIxOTsxMTA5IDExNkUgMTFBODtDMjE5OzExMDkgMTE2RSAxMUE4OworQzIxQTtDMjFBOzExMDkgMTE2RSAxMUE5O0MyMUE7MTEwOSAxMTZFIDExQTk7CitDMjFCO0MyMUI7MTEwOSAxMTZFIDExQUE7QzIxQjsxMTA5IDExNkUgMTFBQTsKK0MyMUM7QzIxQzsxMTA5IDExNkUgMTFBQjtDMjFDOzExMDkgMTE2RSAxMUFCOworQzIxRDtDMjFEOzExMDkgMTE2RSAxMUFDO0MyMUQ7MTEwOSAxMTZFIDExQUM7CitDMjFFO0MyMUU7MTEwOSAxMTZFIDExQUQ7QzIxRTsxMTA5IDExNkUgMTFBRDsKK0MyMUY7QzIxRjsxMTA5IDExNkUgMTFBRTtDMjFGOzExMDkgMTE2RSAxMUFFOworQzIyMDtDMjIwOzExMDkgMTE2RSAxMUFGO0MyMjA7MTEwOSAxMTZFIDExQUY7CitDMjIxO0MyMjE7MTEwOSAxMTZFIDExQjA7QzIyMTsxMTA5IDExNkUgMTFCMDsKK0MyMjI7QzIyMjsxMTA5IDExNkUgMTFCMTtDMjIyOzExMDkgMTE2RSAxMUIxOworQzIyMztDMjIzOzExMDkgMTE2RSAxMUIyO0MyMjM7MTEwOSAxMTZFIDExQjI7CitDMjI0O0MyMjQ7MTEwOSAxMTZFIDExQjM7QzIyNDsxMTA5IDExNkUgMTFCMzsKK0MyMjU7QzIyNTsxMTA5IDExNkUgMTFCNDtDMjI1OzExMDkgMTE2RSAxMUI0OworQzIyNjtDMjI2OzExMDkgMTE2RSAxMUI1O0MyMjY7MTEwOSAxMTZFIDExQjU7CitDMjI3O0MyMjc7MTEwOSAxMTZFIDExQjY7QzIyNzsxMTA5IDExNkUgMTFCNjsKK0MyMjg7QzIyODsxMTA5IDExNkUgMTFCNztDMjI4OzExMDkgMTE2RSAxMUI3OworQzIyOTtDMjI5OzExMDkgMTE2RSAxMUI4O0MyMjk7MTEwOSAxMTZFIDExQjg7CitDMjJBO0MyMkE7MTEwOSAxMTZFIDExQjk7QzIyQTsxMTA5IDExNkUgMTFCOTsKK0MyMkI7QzIyQjsxMTA5IDExNkUgMTFCQTtDMjJCOzExMDkgMTE2RSAxMUJBOworQzIyQztDMjJDOzExMDkgMTE2RSAxMUJCO0MyMkM7MTEwOSAxMTZFIDExQkI7CitDMjJEO0MyMkQ7MTEwOSAxMTZFIDExQkM7QzIyRDsxMTA5IDExNkUgMTFCQzsKK0MyMkU7QzIyRTsxMTA5IDExNkUgMTFCRDtDMjJFOzExMDkgMTE2RSAxMUJEOworQzIyRjtDMjJGOzExMDkgMTE2RSAxMUJFO0MyMkY7MTEwOSAxMTZFIDExQkU7CitDMjMwO0MyMzA7MTEwOSAxMTZFIDExQkY7QzIzMDsxMTA5IDExNkUgMTFCRjsKK0MyMzE7QzIzMTsxMTA5IDExNkUgMTFDMDtDMjMxOzExMDkgMTE2RSAxMUMwOworQzIzMjtDMjMyOzExMDkgMTE2RSAxMUMxO0MyMzI7MTEwOSAxMTZFIDExQzE7CitDMjMzO0MyMzM7MTEwOSAxMTZFIDExQzI7QzIzMzsxMTA5IDExNkUgMTFDMjsKK0MyMzQ7QzIzNDsxMTA5IDExNkY7QzIzNDsxMTA5IDExNkY7CitDMjM1O0MyMzU7MTEwOSAxMTZGIDExQTg7QzIzNTsxMTA5IDExNkYgMTFBODsKK0MyMzY7QzIzNjsxMTA5IDExNkYgMTFBOTtDMjM2OzExMDkgMTE2RiAxMUE5OworQzIzNztDMjM3OzExMDkgMTE2RiAxMUFBO0MyMzc7MTEwOSAxMTZGIDExQUE7CitDMjM4O0MyMzg7MTEwOSAxMTZGIDExQUI7QzIzODsxMTA5IDExNkYgMTFBQjsKK0MyMzk7QzIzOTsxMTA5IDExNkYgMTFBQztDMjM5OzExMDkgMTE2RiAxMUFDOworQzIzQTtDMjNBOzExMDkgMTE2RiAxMUFEO0MyM0E7MTEwOSAxMTZGIDExQUQ7CitDMjNCO0MyM0I7MTEwOSAxMTZGIDExQUU7QzIzQjsxMTA5IDExNkYgMTFBRTsKK0MyM0M7QzIzQzsxMTA5IDExNkYgMTFBRjtDMjNDOzExMDkgMTE2RiAxMUFGOworQzIzRDtDMjNEOzExMDkgMTE2RiAxMUIwO0MyM0Q7MTEwOSAxMTZGIDExQjA7CitDMjNFO0MyM0U7MTEwOSAxMTZGIDExQjE7QzIzRTsxMTA5IDExNkYgMTFCMTsKK0MyM0Y7QzIzRjsxMTA5IDExNkYgMTFCMjtDMjNGOzExMDkgMTE2RiAxMUIyOworQzI0MDtDMjQwOzExMDkgMTE2RiAxMUIzO0MyNDA7MTEwOSAxMTZGIDExQjM7CitDMjQxO0MyNDE7MTEwOSAxMTZGIDExQjQ7QzI0MTsxMTA5IDExNkYgMTFCNDsKK0MyNDI7QzI0MjsxMTA5IDExNkYgMTFCNTtDMjQyOzExMDkgMTE2RiAxMUI1OworQzI0MztDMjQzOzExMDkgMTE2RiAxMUI2O0MyNDM7MTEwOSAxMTZGIDExQjY7CitDMjQ0O0MyNDQ7MTEwOSAxMTZGIDExQjc7QzI0NDsxMTA5IDExNkYgMTFCNzsKK0MyNDU7QzI0NTsxMTA5IDExNkYgMTFCODtDMjQ1OzExMDkgMTE2RiAxMUI4OworQzI0NjtDMjQ2OzExMDkgMTE2RiAxMUI5O0MyNDY7MTEwOSAxMTZGIDExQjk7CitDMjQ3O0MyNDc7MTEwOSAxMTZGIDExQkE7QzI0NzsxMTA5IDExNkYgMTFCQTsKK0MyNDg7QzI0ODsxMTA5IDExNkYgMTFCQjtDMjQ4OzExMDkgMTE2RiAxMUJCOworQzI0OTtDMjQ5OzExMDkgMTE2RiAxMUJDO0MyNDk7MTEwOSAxMTZGIDExQkM7CitDMjRBO0MyNEE7MTEwOSAxMTZGIDExQkQ7QzI0QTsxMTA5IDExNkYgMTFCRDsKK0MyNEI7QzI0QjsxMTA5IDExNkYgMTFCRTtDMjRCOzExMDkgMTE2RiAxMUJFOworQzI0QztDMjRDOzExMDkgMTE2RiAxMUJGO0MyNEM7MTEwOSAxMTZGIDExQkY7CitDMjREO0MyNEQ7MTEwOSAxMTZGIDExQzA7QzI0RDsxMTA5IDExNkYgMTFDMDsKK0MyNEU7QzI0RTsxMTA5IDExNkYgMTFDMTtDMjRFOzExMDkgMTE2RiAxMUMxOworQzI0RjtDMjRGOzExMDkgMTE2RiAxMUMyO0MyNEY7MTEwOSAxMTZGIDExQzI7CitDMjUwO0MyNTA7MTEwOSAxMTcwO0MyNTA7MTEwOSAxMTcwOworQzI1MTtDMjUxOzExMDkgMTE3MCAxMUE4O0MyNTE7MTEwOSAxMTcwIDExQTg7CitDMjUyO0MyNTI7MTEwOSAxMTcwIDExQTk7QzI1MjsxMTA5IDExNzAgMTFBOTsKK0MyNTM7QzI1MzsxMTA5IDExNzAgMTFBQTtDMjUzOzExMDkgMTE3MCAxMUFBOworQzI1NDtDMjU0OzExMDkgMTE3MCAxMUFCO0MyNTQ7MTEwOSAxMTcwIDExQUI7CitDMjU1O0MyNTU7MTEwOSAxMTcwIDExQUM7QzI1NTsxMTA5IDExNzAgMTFBQzsKK0MyNTY7QzI1NjsxMTA5IDExNzAgMTFBRDtDMjU2OzExMDkgMTE3MCAxMUFEOworQzI1NztDMjU3OzExMDkgMTE3MCAxMUFFO0MyNTc7MTEwOSAxMTcwIDExQUU7CitDMjU4O0MyNTg7MTEwOSAxMTcwIDExQUY7QzI1ODsxMTA5IDExNzAgMTFBRjsKK0MyNTk7QzI1OTsxMTA5IDExNzAgMTFCMDtDMjU5OzExMDkgMTE3MCAxMUIwOworQzI1QTtDMjVBOzExMDkgMTE3MCAxMUIxO0MyNUE7MTEwOSAxMTcwIDExQjE7CitDMjVCO0MyNUI7MTEwOSAxMTcwIDExQjI7QzI1QjsxMTA5IDExNzAgMTFCMjsKK0MyNUM7QzI1QzsxMTA5IDExNzAgMTFCMztDMjVDOzExMDkgMTE3MCAxMUIzOworQzI1RDtDMjVEOzExMDkgMTE3MCAxMUI0O0MyNUQ7MTEwOSAxMTcwIDExQjQ7CitDMjVFO0MyNUU7MTEwOSAxMTcwIDExQjU7QzI1RTsxMTA5IDExNzAgMTFCNTsKK0MyNUY7QzI1RjsxMTA5IDExNzAgMTFCNjtDMjVGOzExMDkgMTE3MCAxMUI2OworQzI2MDtDMjYwOzExMDkgMTE3MCAxMUI3O0MyNjA7MTEwOSAxMTcwIDExQjc7CitDMjYxO0MyNjE7MTEwOSAxMTcwIDExQjg7QzI2MTsxMTA5IDExNzAgMTFCODsKK0MyNjI7QzI2MjsxMTA5IDExNzAgMTFCOTtDMjYyOzExMDkgMTE3MCAxMUI5OworQzI2MztDMjYzOzExMDkgMTE3MCAxMUJBO0MyNjM7MTEwOSAxMTcwIDExQkE7CitDMjY0O0MyNjQ7MTEwOSAxMTcwIDExQkI7QzI2NDsxMTA5IDExNzAgMTFCQjsKK0MyNjU7QzI2NTsxMTA5IDExNzAgMTFCQztDMjY1OzExMDkgMTE3MCAxMUJDOworQzI2NjtDMjY2OzExMDkgMTE3MCAxMUJEO0MyNjY7MTEwOSAxMTcwIDExQkQ7CitDMjY3O0MyNjc7MTEwOSAxMTcwIDExQkU7QzI2NzsxMTA5IDExNzAgMTFCRTsKK0MyNjg7QzI2ODsxMTA5IDExNzAgMTFCRjtDMjY4OzExMDkgMTE3MCAxMUJGOworQzI2OTtDMjY5OzExMDkgMTE3MCAxMUMwO0MyNjk7MTEwOSAxMTcwIDExQzA7CitDMjZBO0MyNkE7MTEwOSAxMTcwIDExQzE7QzI2QTsxMTA5IDExNzAgMTFDMTsKK0MyNkI7QzI2QjsxMTA5IDExNzAgMTFDMjtDMjZCOzExMDkgMTE3MCAxMUMyOworQzI2QztDMjZDOzExMDkgMTE3MTtDMjZDOzExMDkgMTE3MTsKK0MyNkQ7QzI2RDsxMTA5IDExNzEgMTFBODtDMjZEOzExMDkgMTE3MSAxMUE4OworQzI2RTtDMjZFOzExMDkgMTE3MSAxMUE5O0MyNkU7MTEwOSAxMTcxIDExQTk7CitDMjZGO0MyNkY7MTEwOSAxMTcxIDExQUE7QzI2RjsxMTA5IDExNzEgMTFBQTsKK0MyNzA7QzI3MDsxMTA5IDExNzEgMTFBQjtDMjcwOzExMDkgMTE3MSAxMUFCOworQzI3MTtDMjcxOzExMDkgMTE3MSAxMUFDO0MyNzE7MTEwOSAxMTcxIDExQUM7CitDMjcyO0MyNzI7MTEwOSAxMTcxIDExQUQ7QzI3MjsxMTA5IDExNzEgMTFBRDsKK0MyNzM7QzI3MzsxMTA5IDExNzEgMTFBRTtDMjczOzExMDkgMTE3MSAxMUFFOworQzI3NDtDMjc0OzExMDkgMTE3MSAxMUFGO0MyNzQ7MTEwOSAxMTcxIDExQUY7CitDMjc1O0MyNzU7MTEwOSAxMTcxIDExQjA7QzI3NTsxMTA5IDExNzEgMTFCMDsKK0MyNzY7QzI3NjsxMTA5IDExNzEgMTFCMTtDMjc2OzExMDkgMTE3MSAxMUIxOworQzI3NztDMjc3OzExMDkgMTE3MSAxMUIyO0MyNzc7MTEwOSAxMTcxIDExQjI7CitDMjc4O0MyNzg7MTEwOSAxMTcxIDExQjM7QzI3ODsxMTA5IDExNzEgMTFCMzsKK0MyNzk7QzI3OTsxMTA5IDExNzEgMTFCNDtDMjc5OzExMDkgMTE3MSAxMUI0OworQzI3QTtDMjdBOzExMDkgMTE3MSAxMUI1O0MyN0E7MTEwOSAxMTcxIDExQjU7CitDMjdCO0MyN0I7MTEwOSAxMTcxIDExQjY7QzI3QjsxMTA5IDExNzEgMTFCNjsKK0MyN0M7QzI3QzsxMTA5IDExNzEgMTFCNztDMjdDOzExMDkgMTE3MSAxMUI3OworQzI3RDtDMjdEOzExMDkgMTE3MSAxMUI4O0MyN0Q7MTEwOSAxMTcxIDExQjg7CitDMjdFO0MyN0U7MTEwOSAxMTcxIDExQjk7QzI3RTsxMTA5IDExNzEgMTFCOTsKK0MyN0Y7QzI3RjsxMTA5IDExNzEgMTFCQTtDMjdGOzExMDkgMTE3MSAxMUJBOworQzI4MDtDMjgwOzExMDkgMTE3MSAxMUJCO0MyODA7MTEwOSAxMTcxIDExQkI7CitDMjgxO0MyODE7MTEwOSAxMTcxIDExQkM7QzI4MTsxMTA5IDExNzEgMTFCQzsKK0MyODI7QzI4MjsxMTA5IDExNzEgMTFCRDtDMjgyOzExMDkgMTE3MSAxMUJEOworQzI4MztDMjgzOzExMDkgMTE3MSAxMUJFO0MyODM7MTEwOSAxMTcxIDExQkU7CitDMjg0O0MyODQ7MTEwOSAxMTcxIDExQkY7QzI4NDsxMTA5IDExNzEgMTFCRjsKK0MyODU7QzI4NTsxMTA5IDExNzEgMTFDMDtDMjg1OzExMDkgMTE3MSAxMUMwOworQzI4NjtDMjg2OzExMDkgMTE3MSAxMUMxO0MyODY7MTEwOSAxMTcxIDExQzE7CitDMjg3O0MyODc7MTEwOSAxMTcxIDExQzI7QzI4NzsxMTA5IDExNzEgMTFDMjsKK0MyODg7QzI4ODsxMTA5IDExNzI7QzI4ODsxMTA5IDExNzI7CitDMjg5O0MyODk7MTEwOSAxMTcyIDExQTg7QzI4OTsxMTA5IDExNzIgMTFBODsKK0MyOEE7QzI4QTsxMTA5IDExNzIgMTFBOTtDMjhBOzExMDkgMTE3MiAxMUE5OworQzI4QjtDMjhCOzExMDkgMTE3MiAxMUFBO0MyOEI7MTEwOSAxMTcyIDExQUE7CitDMjhDO0MyOEM7MTEwOSAxMTcyIDExQUI7QzI4QzsxMTA5IDExNzIgMTFBQjsKK0MyOEQ7QzI4RDsxMTA5IDExNzIgMTFBQztDMjhEOzExMDkgMTE3MiAxMUFDOworQzI4RTtDMjhFOzExMDkgMTE3MiAxMUFEO0MyOEU7MTEwOSAxMTcyIDExQUQ7CitDMjhGO0MyOEY7MTEwOSAxMTcyIDExQUU7QzI4RjsxMTA5IDExNzIgMTFBRTsKK0MyOTA7QzI5MDsxMTA5IDExNzIgMTFBRjtDMjkwOzExMDkgMTE3MiAxMUFGOworQzI5MTtDMjkxOzExMDkgMTE3MiAxMUIwO0MyOTE7MTEwOSAxMTcyIDExQjA7CitDMjkyO0MyOTI7MTEwOSAxMTcyIDExQjE7QzI5MjsxMTA5IDExNzIgMTFCMTsKK0MyOTM7QzI5MzsxMTA5IDExNzIgMTFCMjtDMjkzOzExMDkgMTE3MiAxMUIyOworQzI5NDtDMjk0OzExMDkgMTE3MiAxMUIzO0MyOTQ7MTEwOSAxMTcyIDExQjM7CitDMjk1O0MyOTU7MTEwOSAxMTcyIDExQjQ7QzI5NTsxMTA5IDExNzIgMTFCNDsKK0MyOTY7QzI5NjsxMTA5IDExNzIgMTFCNTtDMjk2OzExMDkgMTE3MiAxMUI1OworQzI5NztDMjk3OzExMDkgMTE3MiAxMUI2O0MyOTc7MTEwOSAxMTcyIDExQjY7CitDMjk4O0MyOTg7MTEwOSAxMTcyIDExQjc7QzI5ODsxMTA5IDExNzIgMTFCNzsKK0MyOTk7QzI5OTsxMTA5IDExNzIgMTFCODtDMjk5OzExMDkgMTE3MiAxMUI4OworQzI5QTtDMjlBOzExMDkgMTE3MiAxMUI5O0MyOUE7MTEwOSAxMTcyIDExQjk7CitDMjlCO0MyOUI7MTEwOSAxMTcyIDExQkE7QzI5QjsxMTA5IDExNzIgMTFCQTsKK0MyOUM7QzI5QzsxMTA5IDExNzIgMTFCQjtDMjlDOzExMDkgMTE3MiAxMUJCOworQzI5RDtDMjlEOzExMDkgMTE3MiAxMUJDO0MyOUQ7MTEwOSAxMTcyIDExQkM7CitDMjlFO0MyOUU7MTEwOSAxMTcyIDExQkQ7QzI5RTsxMTA5IDExNzIgMTFCRDsKK0MyOUY7QzI5RjsxMTA5IDExNzIgMTFCRTtDMjlGOzExMDkgMTE3MiAxMUJFOworQzJBMDtDMkEwOzExMDkgMTE3MiAxMUJGO0MyQTA7MTEwOSAxMTcyIDExQkY7CitDMkExO0MyQTE7MTEwOSAxMTcyIDExQzA7QzJBMTsxMTA5IDExNzIgMTFDMDsKK0MyQTI7QzJBMjsxMTA5IDExNzIgMTFDMTtDMkEyOzExMDkgMTE3MiAxMUMxOworQzJBMztDMkEzOzExMDkgMTE3MiAxMUMyO0MyQTM7MTEwOSAxMTcyIDExQzI7CitDMkE0O0MyQTQ7MTEwOSAxMTczO0MyQTQ7MTEwOSAxMTczOworQzJBNTtDMkE1OzExMDkgMTE3MyAxMUE4O0MyQTU7MTEwOSAxMTczIDExQTg7CitDMkE2O0MyQTY7MTEwOSAxMTczIDExQTk7QzJBNjsxMTA5IDExNzMgMTFBOTsKK0MyQTc7QzJBNzsxMTA5IDExNzMgMTFBQTtDMkE3OzExMDkgMTE3MyAxMUFBOworQzJBODtDMkE4OzExMDkgMTE3MyAxMUFCO0MyQTg7MTEwOSAxMTczIDExQUI7CitDMkE5O0MyQTk7MTEwOSAxMTczIDExQUM7QzJBOTsxMTA5IDExNzMgMTFBQzsKK0MyQUE7QzJBQTsxMTA5IDExNzMgMTFBRDtDMkFBOzExMDkgMTE3MyAxMUFEOworQzJBQjtDMkFCOzExMDkgMTE3MyAxMUFFO0MyQUI7MTEwOSAxMTczIDExQUU7CitDMkFDO0MyQUM7MTEwOSAxMTczIDExQUY7QzJBQzsxMTA5IDExNzMgMTFBRjsKK0MyQUQ7QzJBRDsxMTA5IDExNzMgMTFCMDtDMkFEOzExMDkgMTE3MyAxMUIwOworQzJBRTtDMkFFOzExMDkgMTE3MyAxMUIxO0MyQUU7MTEwOSAxMTczIDExQjE7CitDMkFGO0MyQUY7MTEwOSAxMTczIDExQjI7QzJBRjsxMTA5IDExNzMgMTFCMjsKK0MyQjA7QzJCMDsxMTA5IDExNzMgMTFCMztDMkIwOzExMDkgMTE3MyAxMUIzOworQzJCMTtDMkIxOzExMDkgMTE3MyAxMUI0O0MyQjE7MTEwOSAxMTczIDExQjQ7CitDMkIyO0MyQjI7MTEwOSAxMTczIDExQjU7QzJCMjsxMTA5IDExNzMgMTFCNTsKK0MyQjM7QzJCMzsxMTA5IDExNzMgMTFCNjtDMkIzOzExMDkgMTE3MyAxMUI2OworQzJCNDtDMkI0OzExMDkgMTE3MyAxMUI3O0MyQjQ7MTEwOSAxMTczIDExQjc7CitDMkI1O0MyQjU7MTEwOSAxMTczIDExQjg7QzJCNTsxMTA5IDExNzMgMTFCODsKK0MyQjY7QzJCNjsxMTA5IDExNzMgMTFCOTtDMkI2OzExMDkgMTE3MyAxMUI5OworQzJCNztDMkI3OzExMDkgMTE3MyAxMUJBO0MyQjc7MTEwOSAxMTczIDExQkE7CitDMkI4O0MyQjg7MTEwOSAxMTczIDExQkI7QzJCODsxMTA5IDExNzMgMTFCQjsKK0MyQjk7QzJCOTsxMTA5IDExNzMgMTFCQztDMkI5OzExMDkgMTE3MyAxMUJDOworQzJCQTtDMkJBOzExMDkgMTE3MyAxMUJEO0MyQkE7MTEwOSAxMTczIDExQkQ7CitDMkJCO0MyQkI7MTEwOSAxMTczIDExQkU7QzJCQjsxMTA5IDExNzMgMTFCRTsKK0MyQkM7QzJCQzsxMTA5IDExNzMgMTFCRjtDMkJDOzExMDkgMTE3MyAxMUJGOworQzJCRDtDMkJEOzExMDkgMTE3MyAxMUMwO0MyQkQ7MTEwOSAxMTczIDExQzA7CitDMkJFO0MyQkU7MTEwOSAxMTczIDExQzE7QzJCRTsxMTA5IDExNzMgMTFDMTsKK0MyQkY7QzJCRjsxMTA5IDExNzMgMTFDMjtDMkJGOzExMDkgMTE3MyAxMUMyOworQzJDMDtDMkMwOzExMDkgMTE3NDtDMkMwOzExMDkgMTE3NDsKK0MyQzE7QzJDMTsxMTA5IDExNzQgMTFBODtDMkMxOzExMDkgMTE3NCAxMUE4OworQzJDMjtDMkMyOzExMDkgMTE3NCAxMUE5O0MyQzI7MTEwOSAxMTc0IDExQTk7CitDMkMzO0MyQzM7MTEwOSAxMTc0IDExQUE7QzJDMzsxMTA5IDExNzQgMTFBQTsKK0MyQzQ7QzJDNDsxMTA5IDExNzQgMTFBQjtDMkM0OzExMDkgMTE3NCAxMUFCOworQzJDNTtDMkM1OzExMDkgMTE3NCAxMUFDO0MyQzU7MTEwOSAxMTc0IDExQUM7CitDMkM2O0MyQzY7MTEwOSAxMTc0IDExQUQ7QzJDNjsxMTA5IDExNzQgMTFBRDsKK0MyQzc7QzJDNzsxMTA5IDExNzQgMTFBRTtDMkM3OzExMDkgMTE3NCAxMUFFOworQzJDODtDMkM4OzExMDkgMTE3NCAxMUFGO0MyQzg7MTEwOSAxMTc0IDExQUY7CitDMkM5O0MyQzk7MTEwOSAxMTc0IDExQjA7QzJDOTsxMTA5IDExNzQgMTFCMDsKK0MyQ0E7QzJDQTsxMTA5IDExNzQgMTFCMTtDMkNBOzExMDkgMTE3NCAxMUIxOworQzJDQjtDMkNCOzExMDkgMTE3NCAxMUIyO0MyQ0I7MTEwOSAxMTc0IDExQjI7CitDMkNDO0MyQ0M7MTEwOSAxMTc0IDExQjM7QzJDQzsxMTA5IDExNzQgMTFCMzsKK0MyQ0Q7QzJDRDsxMTA5IDExNzQgMTFCNDtDMkNEOzExMDkgMTE3NCAxMUI0OworQzJDRTtDMkNFOzExMDkgMTE3NCAxMUI1O0MyQ0U7MTEwOSAxMTc0IDExQjU7CitDMkNGO0MyQ0Y7MTEwOSAxMTc0IDExQjY7QzJDRjsxMTA5IDExNzQgMTFCNjsKK0MyRDA7QzJEMDsxMTA5IDExNzQgMTFCNztDMkQwOzExMDkgMTE3NCAxMUI3OworQzJEMTtDMkQxOzExMDkgMTE3NCAxMUI4O0MyRDE7MTEwOSAxMTc0IDExQjg7CitDMkQyO0MyRDI7MTEwOSAxMTc0IDExQjk7QzJEMjsxMTA5IDExNzQgMTFCOTsKK0MyRDM7QzJEMzsxMTA5IDExNzQgMTFCQTtDMkQzOzExMDkgMTE3NCAxMUJBOworQzJENDtDMkQ0OzExMDkgMTE3NCAxMUJCO0MyRDQ7MTEwOSAxMTc0IDExQkI7CitDMkQ1O0MyRDU7MTEwOSAxMTc0IDExQkM7QzJENTsxMTA5IDExNzQgMTFCQzsKK0MyRDY7QzJENjsxMTA5IDExNzQgMTFCRDtDMkQ2OzExMDkgMTE3NCAxMUJEOworQzJENztDMkQ3OzExMDkgMTE3NCAxMUJFO0MyRDc7MTEwOSAxMTc0IDExQkU7CitDMkQ4O0MyRDg7MTEwOSAxMTc0IDExQkY7QzJEODsxMTA5IDExNzQgMTFCRjsKK0MyRDk7QzJEOTsxMTA5IDExNzQgMTFDMDtDMkQ5OzExMDkgMTE3NCAxMUMwOworQzJEQTtDMkRBOzExMDkgMTE3NCAxMUMxO0MyREE7MTEwOSAxMTc0IDExQzE7CitDMkRCO0MyREI7MTEwOSAxMTc0IDExQzI7QzJEQjsxMTA5IDExNzQgMTFDMjsKK0MyREM7QzJEQzsxMTA5IDExNzU7QzJEQzsxMTA5IDExNzU7CitDMkREO0MyREQ7MTEwOSAxMTc1IDExQTg7QzJERDsxMTA5IDExNzUgMTFBODsKK0MyREU7QzJERTsxMTA5IDExNzUgMTFBOTtDMkRFOzExMDkgMTE3NSAxMUE5OworQzJERjtDMkRGOzExMDkgMTE3NSAxMUFBO0MyREY7MTEwOSAxMTc1IDExQUE7CitDMkUwO0MyRTA7MTEwOSAxMTc1IDExQUI7QzJFMDsxMTA5IDExNzUgMTFBQjsKK0MyRTE7QzJFMTsxMTA5IDExNzUgMTFBQztDMkUxOzExMDkgMTE3NSAxMUFDOworQzJFMjtDMkUyOzExMDkgMTE3NSAxMUFEO0MyRTI7MTEwOSAxMTc1IDExQUQ7CitDMkUzO0MyRTM7MTEwOSAxMTc1IDExQUU7QzJFMzsxMTA5IDExNzUgMTFBRTsKK0MyRTQ7QzJFNDsxMTA5IDExNzUgMTFBRjtDMkU0OzExMDkgMTE3NSAxMUFGOworQzJFNTtDMkU1OzExMDkgMTE3NSAxMUIwO0MyRTU7MTEwOSAxMTc1IDExQjA7CitDMkU2O0MyRTY7MTEwOSAxMTc1IDExQjE7QzJFNjsxMTA5IDExNzUgMTFCMTsKK0MyRTc7QzJFNzsxMTA5IDExNzUgMTFCMjtDMkU3OzExMDkgMTE3NSAxMUIyOworQzJFODtDMkU4OzExMDkgMTE3NSAxMUIzO0MyRTg7MTEwOSAxMTc1IDExQjM7CitDMkU5O0MyRTk7MTEwOSAxMTc1IDExQjQ7QzJFOTsxMTA5IDExNzUgMTFCNDsKK0MyRUE7QzJFQTsxMTA5IDExNzUgMTFCNTtDMkVBOzExMDkgMTE3NSAxMUI1OworQzJFQjtDMkVCOzExMDkgMTE3NSAxMUI2O0MyRUI7MTEwOSAxMTc1IDExQjY7CitDMkVDO0MyRUM7MTEwOSAxMTc1IDExQjc7QzJFQzsxMTA5IDExNzUgMTFCNzsKK0MyRUQ7QzJFRDsxMTA5IDExNzUgMTFCODtDMkVEOzExMDkgMTE3NSAxMUI4OworQzJFRTtDMkVFOzExMDkgMTE3NSAxMUI5O0MyRUU7MTEwOSAxMTc1IDExQjk7CitDMkVGO0MyRUY7MTEwOSAxMTc1IDExQkE7QzJFRjsxMTA5IDExNzUgMTFCQTsKK0MyRjA7QzJGMDsxMTA5IDExNzUgMTFCQjtDMkYwOzExMDkgMTE3NSAxMUJCOworQzJGMTtDMkYxOzExMDkgMTE3NSAxMUJDO0MyRjE7MTEwOSAxMTc1IDExQkM7CitDMkYyO0MyRjI7MTEwOSAxMTc1IDExQkQ7QzJGMjsxMTA5IDExNzUgMTFCRDsKK0MyRjM7QzJGMzsxMTA5IDExNzUgMTFCRTtDMkYzOzExMDkgMTE3NSAxMUJFOworQzJGNDtDMkY0OzExMDkgMTE3NSAxMUJGO0MyRjQ7MTEwOSAxMTc1IDExQkY7CitDMkY1O0MyRjU7MTEwOSAxMTc1IDExQzA7QzJGNTsxMTA5IDExNzUgMTFDMDsKK0MyRjY7QzJGNjsxMTA5IDExNzUgMTFDMTtDMkY2OzExMDkgMTE3NSAxMUMxOworQzJGNztDMkY3OzExMDkgMTE3NSAxMUMyO0MyRjc7MTEwOSAxMTc1IDExQzI7CitDMkY4O0MyRjg7MTEwQSAxMTYxO0MyRjg7MTEwQSAxMTYxOworQzJGOTtDMkY5OzExMEEgMTE2MSAxMUE4O0MyRjk7MTEwQSAxMTYxIDExQTg7CitDMkZBO0MyRkE7MTEwQSAxMTYxIDExQTk7QzJGQTsxMTBBIDExNjEgMTFBOTsKK0MyRkI7QzJGQjsxMTBBIDExNjEgMTFBQTtDMkZCOzExMEEgMTE2MSAxMUFBOworQzJGQztDMkZDOzExMEEgMTE2MSAxMUFCO0MyRkM7MTEwQSAxMTYxIDExQUI7CitDMkZEO0MyRkQ7MTEwQSAxMTYxIDExQUM7QzJGRDsxMTBBIDExNjEgMTFBQzsKK0MyRkU7QzJGRTsxMTBBIDExNjEgMTFBRDtDMkZFOzExMEEgMTE2MSAxMUFEOworQzJGRjtDMkZGOzExMEEgMTE2MSAxMUFFO0MyRkY7MTEwQSAxMTYxIDExQUU7CitDMzAwO0MzMDA7MTEwQSAxMTYxIDExQUY7QzMwMDsxMTBBIDExNjEgMTFBRjsKK0MzMDE7QzMwMTsxMTBBIDExNjEgMTFCMDtDMzAxOzExMEEgMTE2MSAxMUIwOworQzMwMjtDMzAyOzExMEEgMTE2MSAxMUIxO0MzMDI7MTEwQSAxMTYxIDExQjE7CitDMzAzO0MzMDM7MTEwQSAxMTYxIDExQjI7QzMwMzsxMTBBIDExNjEgMTFCMjsKK0MzMDQ7QzMwNDsxMTBBIDExNjEgMTFCMztDMzA0OzExMEEgMTE2MSAxMUIzOworQzMwNTtDMzA1OzExMEEgMTE2MSAxMUI0O0MzMDU7MTEwQSAxMTYxIDExQjQ7CitDMzA2O0MzMDY7MTEwQSAxMTYxIDExQjU7QzMwNjsxMTBBIDExNjEgMTFCNTsKK0MzMDc7QzMwNzsxMTBBIDExNjEgMTFCNjtDMzA3OzExMEEgMTE2MSAxMUI2OworQzMwODtDMzA4OzExMEEgMTE2MSAxMUI3O0MzMDg7MTEwQSAxMTYxIDExQjc7CitDMzA5O0MzMDk7MTEwQSAxMTYxIDExQjg7QzMwOTsxMTBBIDExNjEgMTFCODsKK0MzMEE7QzMwQTsxMTBBIDExNjEgMTFCOTtDMzBBOzExMEEgMTE2MSAxMUI5OworQzMwQjtDMzBCOzExMEEgMTE2MSAxMUJBO0MzMEI7MTEwQSAxMTYxIDExQkE7CitDMzBDO0MzMEM7MTEwQSAxMTYxIDExQkI7QzMwQzsxMTBBIDExNjEgMTFCQjsKK0MzMEQ7QzMwRDsxMTBBIDExNjEgMTFCQztDMzBEOzExMEEgMTE2MSAxMUJDOworQzMwRTtDMzBFOzExMEEgMTE2MSAxMUJEO0MzMEU7MTEwQSAxMTYxIDExQkQ7CitDMzBGO0MzMEY7MTEwQSAxMTYxIDExQkU7QzMwRjsxMTBBIDExNjEgMTFCRTsKK0MzMTA7QzMxMDsxMTBBIDExNjEgMTFCRjtDMzEwOzExMEEgMTE2MSAxMUJGOworQzMxMTtDMzExOzExMEEgMTE2MSAxMUMwO0MzMTE7MTEwQSAxMTYxIDExQzA7CitDMzEyO0MzMTI7MTEwQSAxMTYxIDExQzE7QzMxMjsxMTBBIDExNjEgMTFDMTsKK0MzMTM7QzMxMzsxMTBBIDExNjEgMTFDMjtDMzEzOzExMEEgMTE2MSAxMUMyOworQzMxNDtDMzE0OzExMEEgMTE2MjtDMzE0OzExMEEgMTE2MjsKK0MzMTU7QzMxNTsxMTBBIDExNjIgMTFBODtDMzE1OzExMEEgMTE2MiAxMUE4OworQzMxNjtDMzE2OzExMEEgMTE2MiAxMUE5O0MzMTY7MTEwQSAxMTYyIDExQTk7CitDMzE3O0MzMTc7MTEwQSAxMTYyIDExQUE7QzMxNzsxMTBBIDExNjIgMTFBQTsKK0MzMTg7QzMxODsxMTBBIDExNjIgMTFBQjtDMzE4OzExMEEgMTE2MiAxMUFCOworQzMxOTtDMzE5OzExMEEgMTE2MiAxMUFDO0MzMTk7MTEwQSAxMTYyIDExQUM7CitDMzFBO0MzMUE7MTEwQSAxMTYyIDExQUQ7QzMxQTsxMTBBIDExNjIgMTFBRDsKK0MzMUI7QzMxQjsxMTBBIDExNjIgMTFBRTtDMzFCOzExMEEgMTE2MiAxMUFFOworQzMxQztDMzFDOzExMEEgMTE2MiAxMUFGO0MzMUM7MTEwQSAxMTYyIDExQUY7CitDMzFEO0MzMUQ7MTEwQSAxMTYyIDExQjA7QzMxRDsxMTBBIDExNjIgMTFCMDsKK0MzMUU7QzMxRTsxMTBBIDExNjIgMTFCMTtDMzFFOzExMEEgMTE2MiAxMUIxOworQzMxRjtDMzFGOzExMEEgMTE2MiAxMUIyO0MzMUY7MTEwQSAxMTYyIDExQjI7CitDMzIwO0MzMjA7MTEwQSAxMTYyIDExQjM7QzMyMDsxMTBBIDExNjIgMTFCMzsKK0MzMjE7QzMyMTsxMTBBIDExNjIgMTFCNDtDMzIxOzExMEEgMTE2MiAxMUI0OworQzMyMjtDMzIyOzExMEEgMTE2MiAxMUI1O0MzMjI7MTEwQSAxMTYyIDExQjU7CitDMzIzO0MzMjM7MTEwQSAxMTYyIDExQjY7QzMyMzsxMTBBIDExNjIgMTFCNjsKK0MzMjQ7QzMyNDsxMTBBIDExNjIgMTFCNztDMzI0OzExMEEgMTE2MiAxMUI3OworQzMyNTtDMzI1OzExMEEgMTE2MiAxMUI4O0MzMjU7MTEwQSAxMTYyIDExQjg7CitDMzI2O0MzMjY7MTEwQSAxMTYyIDExQjk7QzMyNjsxMTBBIDExNjIgMTFCOTsKK0MzMjc7QzMyNzsxMTBBIDExNjIgMTFCQTtDMzI3OzExMEEgMTE2MiAxMUJBOworQzMyODtDMzI4OzExMEEgMTE2MiAxMUJCO0MzMjg7MTEwQSAxMTYyIDExQkI7CitDMzI5O0MzMjk7MTEwQSAxMTYyIDExQkM7QzMyOTsxMTBBIDExNjIgMTFCQzsKK0MzMkE7QzMyQTsxMTBBIDExNjIgMTFCRDtDMzJBOzExMEEgMTE2MiAxMUJEOworQzMyQjtDMzJCOzExMEEgMTE2MiAxMUJFO0MzMkI7MTEwQSAxMTYyIDExQkU7CitDMzJDO0MzMkM7MTEwQSAxMTYyIDExQkY7QzMyQzsxMTBBIDExNjIgMTFCRjsKK0MzMkQ7QzMyRDsxMTBBIDExNjIgMTFDMDtDMzJEOzExMEEgMTE2MiAxMUMwOworQzMyRTtDMzJFOzExMEEgMTE2MiAxMUMxO0MzMkU7MTEwQSAxMTYyIDExQzE7CitDMzJGO0MzMkY7MTEwQSAxMTYyIDExQzI7QzMyRjsxMTBBIDExNjIgMTFDMjsKK0MzMzA7QzMzMDsxMTBBIDExNjM7QzMzMDsxMTBBIDExNjM7CitDMzMxO0MzMzE7MTEwQSAxMTYzIDExQTg7QzMzMTsxMTBBIDExNjMgMTFBODsKK0MzMzI7QzMzMjsxMTBBIDExNjMgMTFBOTtDMzMyOzExMEEgMTE2MyAxMUE5OworQzMzMztDMzMzOzExMEEgMTE2MyAxMUFBO0MzMzM7MTEwQSAxMTYzIDExQUE7CitDMzM0O0MzMzQ7MTEwQSAxMTYzIDExQUI7QzMzNDsxMTBBIDExNjMgMTFBQjsKK0MzMzU7QzMzNTsxMTBBIDExNjMgMTFBQztDMzM1OzExMEEgMTE2MyAxMUFDOworQzMzNjtDMzM2OzExMEEgMTE2MyAxMUFEO0MzMzY7MTEwQSAxMTYzIDExQUQ7CitDMzM3O0MzMzc7MTEwQSAxMTYzIDExQUU7QzMzNzsxMTBBIDExNjMgMTFBRTsKK0MzMzg7QzMzODsxMTBBIDExNjMgMTFBRjtDMzM4OzExMEEgMTE2MyAxMUFGOworQzMzOTtDMzM5OzExMEEgMTE2MyAxMUIwO0MzMzk7MTEwQSAxMTYzIDExQjA7CitDMzNBO0MzM0E7MTEwQSAxMTYzIDExQjE7QzMzQTsxMTBBIDExNjMgMTFCMTsKK0MzM0I7QzMzQjsxMTBBIDExNjMgMTFCMjtDMzNCOzExMEEgMTE2MyAxMUIyOworQzMzQztDMzNDOzExMEEgMTE2MyAxMUIzO0MzM0M7MTEwQSAxMTYzIDExQjM7CitDMzNEO0MzM0Q7MTEwQSAxMTYzIDExQjQ7QzMzRDsxMTBBIDExNjMgMTFCNDsKK0MzM0U7QzMzRTsxMTBBIDExNjMgMTFCNTtDMzNFOzExMEEgMTE2MyAxMUI1OworQzMzRjtDMzNGOzExMEEgMTE2MyAxMUI2O0MzM0Y7MTEwQSAxMTYzIDExQjY7CitDMzQwO0MzNDA7MTEwQSAxMTYzIDExQjc7QzM0MDsxMTBBIDExNjMgMTFCNzsKK0MzNDE7QzM0MTsxMTBBIDExNjMgMTFCODtDMzQxOzExMEEgMTE2MyAxMUI4OworQzM0MjtDMzQyOzExMEEgMTE2MyAxMUI5O0MzNDI7MTEwQSAxMTYzIDExQjk7CitDMzQzO0MzNDM7MTEwQSAxMTYzIDExQkE7QzM0MzsxMTBBIDExNjMgMTFCQTsKK0MzNDQ7QzM0NDsxMTBBIDExNjMgMTFCQjtDMzQ0OzExMEEgMTE2MyAxMUJCOworQzM0NTtDMzQ1OzExMEEgMTE2MyAxMUJDO0MzNDU7MTEwQSAxMTYzIDExQkM7CitDMzQ2O0MzNDY7MTEwQSAxMTYzIDExQkQ7QzM0NjsxMTBBIDExNjMgMTFCRDsKK0MzNDc7QzM0NzsxMTBBIDExNjMgMTFCRTtDMzQ3OzExMEEgMTE2MyAxMUJFOworQzM0ODtDMzQ4OzExMEEgMTE2MyAxMUJGO0MzNDg7MTEwQSAxMTYzIDExQkY7CitDMzQ5O0MzNDk7MTEwQSAxMTYzIDExQzA7QzM0OTsxMTBBIDExNjMgMTFDMDsKK0MzNEE7QzM0QTsxMTBBIDExNjMgMTFDMTtDMzRBOzExMEEgMTE2MyAxMUMxOworQzM0QjtDMzRCOzExMEEgMTE2MyAxMUMyO0MzNEI7MTEwQSAxMTYzIDExQzI7CitDMzRDO0MzNEM7MTEwQSAxMTY0O0MzNEM7MTEwQSAxMTY0OworQzM0RDtDMzREOzExMEEgMTE2NCAxMUE4O0MzNEQ7MTEwQSAxMTY0IDExQTg7CitDMzRFO0MzNEU7MTEwQSAxMTY0IDExQTk7QzM0RTsxMTBBIDExNjQgMTFBOTsKK0MzNEY7QzM0RjsxMTBBIDExNjQgMTFBQTtDMzRGOzExMEEgMTE2NCAxMUFBOworQzM1MDtDMzUwOzExMEEgMTE2NCAxMUFCO0MzNTA7MTEwQSAxMTY0IDExQUI7CitDMzUxO0MzNTE7MTEwQSAxMTY0IDExQUM7QzM1MTsxMTBBIDExNjQgMTFBQzsKK0MzNTI7QzM1MjsxMTBBIDExNjQgMTFBRDtDMzUyOzExMEEgMTE2NCAxMUFEOworQzM1MztDMzUzOzExMEEgMTE2NCAxMUFFO0MzNTM7MTEwQSAxMTY0IDExQUU7CitDMzU0O0MzNTQ7MTEwQSAxMTY0IDExQUY7QzM1NDsxMTBBIDExNjQgMTFBRjsKK0MzNTU7QzM1NTsxMTBBIDExNjQgMTFCMDtDMzU1OzExMEEgMTE2NCAxMUIwOworQzM1NjtDMzU2OzExMEEgMTE2NCAxMUIxO0MzNTY7MTEwQSAxMTY0IDExQjE7CitDMzU3O0MzNTc7MTEwQSAxMTY0IDExQjI7QzM1NzsxMTBBIDExNjQgMTFCMjsKK0MzNTg7QzM1ODsxMTBBIDExNjQgMTFCMztDMzU4OzExMEEgMTE2NCAxMUIzOworQzM1OTtDMzU5OzExMEEgMTE2NCAxMUI0O0MzNTk7MTEwQSAxMTY0IDExQjQ7CitDMzVBO0MzNUE7MTEwQSAxMTY0IDExQjU7QzM1QTsxMTBBIDExNjQgMTFCNTsKK0MzNUI7QzM1QjsxMTBBIDExNjQgMTFCNjtDMzVCOzExMEEgMTE2NCAxMUI2OworQzM1QztDMzVDOzExMEEgMTE2NCAxMUI3O0MzNUM7MTEwQSAxMTY0IDExQjc7CitDMzVEO0MzNUQ7MTEwQSAxMTY0IDExQjg7QzM1RDsxMTBBIDExNjQgMTFCODsKK0MzNUU7QzM1RTsxMTBBIDExNjQgMTFCOTtDMzVFOzExMEEgMTE2NCAxMUI5OworQzM1RjtDMzVGOzExMEEgMTE2NCAxMUJBO0MzNUY7MTEwQSAxMTY0IDExQkE7CitDMzYwO0MzNjA7MTEwQSAxMTY0IDExQkI7QzM2MDsxMTBBIDExNjQgMTFCQjsKK0MzNjE7QzM2MTsxMTBBIDExNjQgMTFCQztDMzYxOzExMEEgMTE2NCAxMUJDOworQzM2MjtDMzYyOzExMEEgMTE2NCAxMUJEO0MzNjI7MTEwQSAxMTY0IDExQkQ7CitDMzYzO0MzNjM7MTEwQSAxMTY0IDExQkU7QzM2MzsxMTBBIDExNjQgMTFCRTsKK0MzNjQ7QzM2NDsxMTBBIDExNjQgMTFCRjtDMzY0OzExMEEgMTE2NCAxMUJGOworQzM2NTtDMzY1OzExMEEgMTE2NCAxMUMwO0MzNjU7MTEwQSAxMTY0IDExQzA7CitDMzY2O0MzNjY7MTEwQSAxMTY0IDExQzE7QzM2NjsxMTBBIDExNjQgMTFDMTsKK0MzNjc7QzM2NzsxMTBBIDExNjQgMTFDMjtDMzY3OzExMEEgMTE2NCAxMUMyOworQzM2ODtDMzY4OzExMEEgMTE2NTtDMzY4OzExMEEgMTE2NTsKK0MzNjk7QzM2OTsxMTBBIDExNjUgMTFBODtDMzY5OzExMEEgMTE2NSAxMUE4OworQzM2QTtDMzZBOzExMEEgMTE2NSAxMUE5O0MzNkE7MTEwQSAxMTY1IDExQTk7CitDMzZCO0MzNkI7MTEwQSAxMTY1IDExQUE7QzM2QjsxMTBBIDExNjUgMTFBQTsKK0MzNkM7QzM2QzsxMTBBIDExNjUgMTFBQjtDMzZDOzExMEEgMTE2NSAxMUFCOworQzM2RDtDMzZEOzExMEEgMTE2NSAxMUFDO0MzNkQ7MTEwQSAxMTY1IDExQUM7CitDMzZFO0MzNkU7MTEwQSAxMTY1IDExQUQ7QzM2RTsxMTBBIDExNjUgMTFBRDsKK0MzNkY7QzM2RjsxMTBBIDExNjUgMTFBRTtDMzZGOzExMEEgMTE2NSAxMUFFOworQzM3MDtDMzcwOzExMEEgMTE2NSAxMUFGO0MzNzA7MTEwQSAxMTY1IDExQUY7CitDMzcxO0MzNzE7MTEwQSAxMTY1IDExQjA7QzM3MTsxMTBBIDExNjUgMTFCMDsKK0MzNzI7QzM3MjsxMTBBIDExNjUgMTFCMTtDMzcyOzExMEEgMTE2NSAxMUIxOworQzM3MztDMzczOzExMEEgMTE2NSAxMUIyO0MzNzM7MTEwQSAxMTY1IDExQjI7CitDMzc0O0MzNzQ7MTEwQSAxMTY1IDExQjM7QzM3NDsxMTBBIDExNjUgMTFCMzsKK0MzNzU7QzM3NTsxMTBBIDExNjUgMTFCNDtDMzc1OzExMEEgMTE2NSAxMUI0OworQzM3NjtDMzc2OzExMEEgMTE2NSAxMUI1O0MzNzY7MTEwQSAxMTY1IDExQjU7CitDMzc3O0MzNzc7MTEwQSAxMTY1IDExQjY7QzM3NzsxMTBBIDExNjUgMTFCNjsKK0MzNzg7QzM3ODsxMTBBIDExNjUgMTFCNztDMzc4OzExMEEgMTE2NSAxMUI3OworQzM3OTtDMzc5OzExMEEgMTE2NSAxMUI4O0MzNzk7MTEwQSAxMTY1IDExQjg7CitDMzdBO0MzN0E7MTEwQSAxMTY1IDExQjk7QzM3QTsxMTBBIDExNjUgMTFCOTsKK0MzN0I7QzM3QjsxMTBBIDExNjUgMTFCQTtDMzdCOzExMEEgMTE2NSAxMUJBOworQzM3QztDMzdDOzExMEEgMTE2NSAxMUJCO0MzN0M7MTEwQSAxMTY1IDExQkI7CitDMzdEO0MzN0Q7MTEwQSAxMTY1IDExQkM7QzM3RDsxMTBBIDExNjUgMTFCQzsKK0MzN0U7QzM3RTsxMTBBIDExNjUgMTFCRDtDMzdFOzExMEEgMTE2NSAxMUJEOworQzM3RjtDMzdGOzExMEEgMTE2NSAxMUJFO0MzN0Y7MTEwQSAxMTY1IDExQkU7CitDMzgwO0MzODA7MTEwQSAxMTY1IDExQkY7QzM4MDsxMTBBIDExNjUgMTFCRjsKK0MzODE7QzM4MTsxMTBBIDExNjUgMTFDMDtDMzgxOzExMEEgMTE2NSAxMUMwOworQzM4MjtDMzgyOzExMEEgMTE2NSAxMUMxO0MzODI7MTEwQSAxMTY1IDExQzE7CitDMzgzO0MzODM7MTEwQSAxMTY1IDExQzI7QzM4MzsxMTBBIDExNjUgMTFDMjsKK0MzODQ7QzM4NDsxMTBBIDExNjY7QzM4NDsxMTBBIDExNjY7CitDMzg1O0MzODU7MTEwQSAxMTY2IDExQTg7QzM4NTsxMTBBIDExNjYgMTFBODsKK0MzODY7QzM4NjsxMTBBIDExNjYgMTFBOTtDMzg2OzExMEEgMTE2NiAxMUE5OworQzM4NztDMzg3OzExMEEgMTE2NiAxMUFBO0MzODc7MTEwQSAxMTY2IDExQUE7CitDMzg4O0MzODg7MTEwQSAxMTY2IDExQUI7QzM4ODsxMTBBIDExNjYgMTFBQjsKK0MzODk7QzM4OTsxMTBBIDExNjYgMTFBQztDMzg5OzExMEEgMTE2NiAxMUFDOworQzM4QTtDMzhBOzExMEEgMTE2NiAxMUFEO0MzOEE7MTEwQSAxMTY2IDExQUQ7CitDMzhCO0MzOEI7MTEwQSAxMTY2IDExQUU7QzM4QjsxMTBBIDExNjYgMTFBRTsKK0MzOEM7QzM4QzsxMTBBIDExNjYgMTFBRjtDMzhDOzExMEEgMTE2NiAxMUFGOworQzM4RDtDMzhEOzExMEEgMTE2NiAxMUIwO0MzOEQ7MTEwQSAxMTY2IDExQjA7CitDMzhFO0MzOEU7MTEwQSAxMTY2IDExQjE7QzM4RTsxMTBBIDExNjYgMTFCMTsKK0MzOEY7QzM4RjsxMTBBIDExNjYgMTFCMjtDMzhGOzExMEEgMTE2NiAxMUIyOworQzM5MDtDMzkwOzExMEEgMTE2NiAxMUIzO0MzOTA7MTEwQSAxMTY2IDExQjM7CitDMzkxO0MzOTE7MTEwQSAxMTY2IDExQjQ7QzM5MTsxMTBBIDExNjYgMTFCNDsKK0MzOTI7QzM5MjsxMTBBIDExNjYgMTFCNTtDMzkyOzExMEEgMTE2NiAxMUI1OworQzM5MztDMzkzOzExMEEgMTE2NiAxMUI2O0MzOTM7MTEwQSAxMTY2IDExQjY7CitDMzk0O0MzOTQ7MTEwQSAxMTY2IDExQjc7QzM5NDsxMTBBIDExNjYgMTFCNzsKK0MzOTU7QzM5NTsxMTBBIDExNjYgMTFCODtDMzk1OzExMEEgMTE2NiAxMUI4OworQzM5NjtDMzk2OzExMEEgMTE2NiAxMUI5O0MzOTY7MTEwQSAxMTY2IDExQjk7CitDMzk3O0MzOTc7MTEwQSAxMTY2IDExQkE7QzM5NzsxMTBBIDExNjYgMTFCQTsKK0MzOTg7QzM5ODsxMTBBIDExNjYgMTFCQjtDMzk4OzExMEEgMTE2NiAxMUJCOworQzM5OTtDMzk5OzExMEEgMTE2NiAxMUJDO0MzOTk7MTEwQSAxMTY2IDExQkM7CitDMzlBO0MzOUE7MTEwQSAxMTY2IDExQkQ7QzM5QTsxMTBBIDExNjYgMTFCRDsKK0MzOUI7QzM5QjsxMTBBIDExNjYgMTFCRTtDMzlCOzExMEEgMTE2NiAxMUJFOworQzM5QztDMzlDOzExMEEgMTE2NiAxMUJGO0MzOUM7MTEwQSAxMTY2IDExQkY7CitDMzlEO0MzOUQ7MTEwQSAxMTY2IDExQzA7QzM5RDsxMTBBIDExNjYgMTFDMDsKK0MzOUU7QzM5RTsxMTBBIDExNjYgMTFDMTtDMzlFOzExMEEgMTE2NiAxMUMxOworQzM5RjtDMzlGOzExMEEgMTE2NiAxMUMyO0MzOUY7MTEwQSAxMTY2IDExQzI7CitDM0EwO0MzQTA7MTEwQSAxMTY3O0MzQTA7MTEwQSAxMTY3OworQzNBMTtDM0ExOzExMEEgMTE2NyAxMUE4O0MzQTE7MTEwQSAxMTY3IDExQTg7CitDM0EyO0MzQTI7MTEwQSAxMTY3IDExQTk7QzNBMjsxMTBBIDExNjcgMTFBOTsKK0MzQTM7QzNBMzsxMTBBIDExNjcgMTFBQTtDM0EzOzExMEEgMTE2NyAxMUFBOworQzNBNDtDM0E0OzExMEEgMTE2NyAxMUFCO0MzQTQ7MTEwQSAxMTY3IDExQUI7CitDM0E1O0MzQTU7MTEwQSAxMTY3IDExQUM7QzNBNTsxMTBBIDExNjcgMTFBQzsKK0MzQTY7QzNBNjsxMTBBIDExNjcgMTFBRDtDM0E2OzExMEEgMTE2NyAxMUFEOworQzNBNztDM0E3OzExMEEgMTE2NyAxMUFFO0MzQTc7MTEwQSAxMTY3IDExQUU7CitDM0E4O0MzQTg7MTEwQSAxMTY3IDExQUY7QzNBODsxMTBBIDExNjcgMTFBRjsKK0MzQTk7QzNBOTsxMTBBIDExNjcgMTFCMDtDM0E5OzExMEEgMTE2NyAxMUIwOworQzNBQTtDM0FBOzExMEEgMTE2NyAxMUIxO0MzQUE7MTEwQSAxMTY3IDExQjE7CitDM0FCO0MzQUI7MTEwQSAxMTY3IDExQjI7QzNBQjsxMTBBIDExNjcgMTFCMjsKK0MzQUM7QzNBQzsxMTBBIDExNjcgMTFCMztDM0FDOzExMEEgMTE2NyAxMUIzOworQzNBRDtDM0FEOzExMEEgMTE2NyAxMUI0O0MzQUQ7MTEwQSAxMTY3IDExQjQ7CitDM0FFO0MzQUU7MTEwQSAxMTY3IDExQjU7QzNBRTsxMTBBIDExNjcgMTFCNTsKK0MzQUY7QzNBRjsxMTBBIDExNjcgMTFCNjtDM0FGOzExMEEgMTE2NyAxMUI2OworQzNCMDtDM0IwOzExMEEgMTE2NyAxMUI3O0MzQjA7MTEwQSAxMTY3IDExQjc7CitDM0IxO0MzQjE7MTEwQSAxMTY3IDExQjg7QzNCMTsxMTBBIDExNjcgMTFCODsKK0MzQjI7QzNCMjsxMTBBIDExNjcgMTFCOTtDM0IyOzExMEEgMTE2NyAxMUI5OworQzNCMztDM0IzOzExMEEgMTE2NyAxMUJBO0MzQjM7MTEwQSAxMTY3IDExQkE7CitDM0I0O0MzQjQ7MTEwQSAxMTY3IDExQkI7QzNCNDsxMTBBIDExNjcgMTFCQjsKK0MzQjU7QzNCNTsxMTBBIDExNjcgMTFCQztDM0I1OzExMEEgMTE2NyAxMUJDOworQzNCNjtDM0I2OzExMEEgMTE2NyAxMUJEO0MzQjY7MTEwQSAxMTY3IDExQkQ7CitDM0I3O0MzQjc7MTEwQSAxMTY3IDExQkU7QzNCNzsxMTBBIDExNjcgMTFCRTsKK0MzQjg7QzNCODsxMTBBIDExNjcgMTFCRjtDM0I4OzExMEEgMTE2NyAxMUJGOworQzNCOTtDM0I5OzExMEEgMTE2NyAxMUMwO0MzQjk7MTEwQSAxMTY3IDExQzA7CitDM0JBO0MzQkE7MTEwQSAxMTY3IDExQzE7QzNCQTsxMTBBIDExNjcgMTFDMTsKK0MzQkI7QzNCQjsxMTBBIDExNjcgMTFDMjtDM0JCOzExMEEgMTE2NyAxMUMyOworQzNCQztDM0JDOzExMEEgMTE2ODtDM0JDOzExMEEgMTE2ODsKK0MzQkQ7QzNCRDsxMTBBIDExNjggMTFBODtDM0JEOzExMEEgMTE2OCAxMUE4OworQzNCRTtDM0JFOzExMEEgMTE2OCAxMUE5O0MzQkU7MTEwQSAxMTY4IDExQTk7CitDM0JGO0MzQkY7MTEwQSAxMTY4IDExQUE7QzNCRjsxMTBBIDExNjggMTFBQTsKK0MzQzA7QzNDMDsxMTBBIDExNjggMTFBQjtDM0MwOzExMEEgMTE2OCAxMUFCOworQzNDMTtDM0MxOzExMEEgMTE2OCAxMUFDO0MzQzE7MTEwQSAxMTY4IDExQUM7CitDM0MyO0MzQzI7MTEwQSAxMTY4IDExQUQ7QzNDMjsxMTBBIDExNjggMTFBRDsKK0MzQzM7QzNDMzsxMTBBIDExNjggMTFBRTtDM0MzOzExMEEgMTE2OCAxMUFFOworQzNDNDtDM0M0OzExMEEgMTE2OCAxMUFGO0MzQzQ7MTEwQSAxMTY4IDExQUY7CitDM0M1O0MzQzU7MTEwQSAxMTY4IDExQjA7QzNDNTsxMTBBIDExNjggMTFCMDsKK0MzQzY7QzNDNjsxMTBBIDExNjggMTFCMTtDM0M2OzExMEEgMTE2OCAxMUIxOworQzNDNztDM0M3OzExMEEgMTE2OCAxMUIyO0MzQzc7MTEwQSAxMTY4IDExQjI7CitDM0M4O0MzQzg7MTEwQSAxMTY4IDExQjM7QzNDODsxMTBBIDExNjggMTFCMzsKK0MzQzk7QzNDOTsxMTBBIDExNjggMTFCNDtDM0M5OzExMEEgMTE2OCAxMUI0OworQzNDQTtDM0NBOzExMEEgMTE2OCAxMUI1O0MzQ0E7MTEwQSAxMTY4IDExQjU7CitDM0NCO0MzQ0I7MTEwQSAxMTY4IDExQjY7QzNDQjsxMTBBIDExNjggMTFCNjsKK0MzQ0M7QzNDQzsxMTBBIDExNjggMTFCNztDM0NDOzExMEEgMTE2OCAxMUI3OworQzNDRDtDM0NEOzExMEEgMTE2OCAxMUI4O0MzQ0Q7MTEwQSAxMTY4IDExQjg7CitDM0NFO0MzQ0U7MTEwQSAxMTY4IDExQjk7QzNDRTsxMTBBIDExNjggMTFCOTsKK0MzQ0Y7QzNDRjsxMTBBIDExNjggMTFCQTtDM0NGOzExMEEgMTE2OCAxMUJBOworQzNEMDtDM0QwOzExMEEgMTE2OCAxMUJCO0MzRDA7MTEwQSAxMTY4IDExQkI7CitDM0QxO0MzRDE7MTEwQSAxMTY4IDExQkM7QzNEMTsxMTBBIDExNjggMTFCQzsKK0MzRDI7QzNEMjsxMTBBIDExNjggMTFCRDtDM0QyOzExMEEgMTE2OCAxMUJEOworQzNEMztDM0QzOzExMEEgMTE2OCAxMUJFO0MzRDM7MTEwQSAxMTY4IDExQkU7CitDM0Q0O0MzRDQ7MTEwQSAxMTY4IDExQkY7QzNENDsxMTBBIDExNjggMTFCRjsKK0MzRDU7QzNENTsxMTBBIDExNjggMTFDMDtDM0Q1OzExMEEgMTE2OCAxMUMwOworQzNENjtDM0Q2OzExMEEgMTE2OCAxMUMxO0MzRDY7MTEwQSAxMTY4IDExQzE7CitDM0Q3O0MzRDc7MTEwQSAxMTY4IDExQzI7QzNENzsxMTBBIDExNjggMTFDMjsKK0MzRDg7QzNEODsxMTBBIDExNjk7QzNEODsxMTBBIDExNjk7CitDM0Q5O0MzRDk7MTEwQSAxMTY5IDExQTg7QzNEOTsxMTBBIDExNjkgMTFBODsKK0MzREE7QzNEQTsxMTBBIDExNjkgMTFBOTtDM0RBOzExMEEgMTE2OSAxMUE5OworQzNEQjtDM0RCOzExMEEgMTE2OSAxMUFBO0MzREI7MTEwQSAxMTY5IDExQUE7CitDM0RDO0MzREM7MTEwQSAxMTY5IDExQUI7QzNEQzsxMTBBIDExNjkgMTFBQjsKK0MzREQ7QzNERDsxMTBBIDExNjkgMTFBQztDM0REOzExMEEgMTE2OSAxMUFDOworQzNERTtDM0RFOzExMEEgMTE2OSAxMUFEO0MzREU7MTEwQSAxMTY5IDExQUQ7CitDM0RGO0MzREY7MTEwQSAxMTY5IDExQUU7QzNERjsxMTBBIDExNjkgMTFBRTsKK0MzRTA7QzNFMDsxMTBBIDExNjkgMTFBRjtDM0UwOzExMEEgMTE2OSAxMUFGOworQzNFMTtDM0UxOzExMEEgMTE2OSAxMUIwO0MzRTE7MTEwQSAxMTY5IDExQjA7CitDM0UyO0MzRTI7MTEwQSAxMTY5IDExQjE7QzNFMjsxMTBBIDExNjkgMTFCMTsKK0MzRTM7QzNFMzsxMTBBIDExNjkgMTFCMjtDM0UzOzExMEEgMTE2OSAxMUIyOworQzNFNDtDM0U0OzExMEEgMTE2OSAxMUIzO0MzRTQ7MTEwQSAxMTY5IDExQjM7CitDM0U1O0MzRTU7MTEwQSAxMTY5IDExQjQ7QzNFNTsxMTBBIDExNjkgMTFCNDsKK0MzRTY7QzNFNjsxMTBBIDExNjkgMTFCNTtDM0U2OzExMEEgMTE2OSAxMUI1OworQzNFNztDM0U3OzExMEEgMTE2OSAxMUI2O0MzRTc7MTEwQSAxMTY5IDExQjY7CitDM0U4O0MzRTg7MTEwQSAxMTY5IDExQjc7QzNFODsxMTBBIDExNjkgMTFCNzsKK0MzRTk7QzNFOTsxMTBBIDExNjkgMTFCODtDM0U5OzExMEEgMTE2OSAxMUI4OworQzNFQTtDM0VBOzExMEEgMTE2OSAxMUI5O0MzRUE7MTEwQSAxMTY5IDExQjk7CitDM0VCO0MzRUI7MTEwQSAxMTY5IDExQkE7QzNFQjsxMTBBIDExNjkgMTFCQTsKK0MzRUM7QzNFQzsxMTBBIDExNjkgMTFCQjtDM0VDOzExMEEgMTE2OSAxMUJCOworQzNFRDtDM0VEOzExMEEgMTE2OSAxMUJDO0MzRUQ7MTEwQSAxMTY5IDExQkM7CitDM0VFO0MzRUU7MTEwQSAxMTY5IDExQkQ7QzNFRTsxMTBBIDExNjkgMTFCRDsKK0MzRUY7QzNFRjsxMTBBIDExNjkgMTFCRTtDM0VGOzExMEEgMTE2OSAxMUJFOworQzNGMDtDM0YwOzExMEEgMTE2OSAxMUJGO0MzRjA7MTEwQSAxMTY5IDExQkY7CitDM0YxO0MzRjE7MTEwQSAxMTY5IDExQzA7QzNGMTsxMTBBIDExNjkgMTFDMDsKK0MzRjI7QzNGMjsxMTBBIDExNjkgMTFDMTtDM0YyOzExMEEgMTE2OSAxMUMxOworQzNGMztDM0YzOzExMEEgMTE2OSAxMUMyO0MzRjM7MTEwQSAxMTY5IDExQzI7CitDM0Y0O0MzRjQ7MTEwQSAxMTZBO0MzRjQ7MTEwQSAxMTZBOworQzNGNTtDM0Y1OzExMEEgMTE2QSAxMUE4O0MzRjU7MTEwQSAxMTZBIDExQTg7CitDM0Y2O0MzRjY7MTEwQSAxMTZBIDExQTk7QzNGNjsxMTBBIDExNkEgMTFBOTsKK0MzRjc7QzNGNzsxMTBBIDExNkEgMTFBQTtDM0Y3OzExMEEgMTE2QSAxMUFBOworQzNGODtDM0Y4OzExMEEgMTE2QSAxMUFCO0MzRjg7MTEwQSAxMTZBIDExQUI7CitDM0Y5O0MzRjk7MTEwQSAxMTZBIDExQUM7QzNGOTsxMTBBIDExNkEgMTFBQzsKK0MzRkE7QzNGQTsxMTBBIDExNkEgMTFBRDtDM0ZBOzExMEEgMTE2QSAxMUFEOworQzNGQjtDM0ZCOzExMEEgMTE2QSAxMUFFO0MzRkI7MTEwQSAxMTZBIDExQUU7CitDM0ZDO0MzRkM7MTEwQSAxMTZBIDExQUY7QzNGQzsxMTBBIDExNkEgMTFBRjsKK0MzRkQ7QzNGRDsxMTBBIDExNkEgMTFCMDtDM0ZEOzExMEEgMTE2QSAxMUIwOworQzNGRTtDM0ZFOzExMEEgMTE2QSAxMUIxO0MzRkU7MTEwQSAxMTZBIDExQjE7CitDM0ZGO0MzRkY7MTEwQSAxMTZBIDExQjI7QzNGRjsxMTBBIDExNkEgMTFCMjsKK0M0MDA7QzQwMDsxMTBBIDExNkEgMTFCMztDNDAwOzExMEEgMTE2QSAxMUIzOworQzQwMTtDNDAxOzExMEEgMTE2QSAxMUI0O0M0MDE7MTEwQSAxMTZBIDExQjQ7CitDNDAyO0M0MDI7MTEwQSAxMTZBIDExQjU7QzQwMjsxMTBBIDExNkEgMTFCNTsKK0M0MDM7QzQwMzsxMTBBIDExNkEgMTFCNjtDNDAzOzExMEEgMTE2QSAxMUI2OworQzQwNDtDNDA0OzExMEEgMTE2QSAxMUI3O0M0MDQ7MTEwQSAxMTZBIDExQjc7CitDNDA1O0M0MDU7MTEwQSAxMTZBIDExQjg7QzQwNTsxMTBBIDExNkEgMTFCODsKK0M0MDY7QzQwNjsxMTBBIDExNkEgMTFCOTtDNDA2OzExMEEgMTE2QSAxMUI5OworQzQwNztDNDA3OzExMEEgMTE2QSAxMUJBO0M0MDc7MTEwQSAxMTZBIDExQkE7CitDNDA4O0M0MDg7MTEwQSAxMTZBIDExQkI7QzQwODsxMTBBIDExNkEgMTFCQjsKK0M0MDk7QzQwOTsxMTBBIDExNkEgMTFCQztDNDA5OzExMEEgMTE2QSAxMUJDOworQzQwQTtDNDBBOzExMEEgMTE2QSAxMUJEO0M0MEE7MTEwQSAxMTZBIDExQkQ7CitDNDBCO0M0MEI7MTEwQSAxMTZBIDExQkU7QzQwQjsxMTBBIDExNkEgMTFCRTsKK0M0MEM7QzQwQzsxMTBBIDExNkEgMTFCRjtDNDBDOzExMEEgMTE2QSAxMUJGOworQzQwRDtDNDBEOzExMEEgMTE2QSAxMUMwO0M0MEQ7MTEwQSAxMTZBIDExQzA7CitDNDBFO0M0MEU7MTEwQSAxMTZBIDExQzE7QzQwRTsxMTBBIDExNkEgMTFDMTsKK0M0MEY7QzQwRjsxMTBBIDExNkEgMTFDMjtDNDBGOzExMEEgMTE2QSAxMUMyOworQzQxMDtDNDEwOzExMEEgMTE2QjtDNDEwOzExMEEgMTE2QjsKK0M0MTE7QzQxMTsxMTBBIDExNkIgMTFBODtDNDExOzExMEEgMTE2QiAxMUE4OworQzQxMjtDNDEyOzExMEEgMTE2QiAxMUE5O0M0MTI7MTEwQSAxMTZCIDExQTk7CitDNDEzO0M0MTM7MTEwQSAxMTZCIDExQUE7QzQxMzsxMTBBIDExNkIgMTFBQTsKK0M0MTQ7QzQxNDsxMTBBIDExNkIgMTFBQjtDNDE0OzExMEEgMTE2QiAxMUFCOworQzQxNTtDNDE1OzExMEEgMTE2QiAxMUFDO0M0MTU7MTEwQSAxMTZCIDExQUM7CitDNDE2O0M0MTY7MTEwQSAxMTZCIDExQUQ7QzQxNjsxMTBBIDExNkIgMTFBRDsKK0M0MTc7QzQxNzsxMTBBIDExNkIgMTFBRTtDNDE3OzExMEEgMTE2QiAxMUFFOworQzQxODtDNDE4OzExMEEgMTE2QiAxMUFGO0M0MTg7MTEwQSAxMTZCIDExQUY7CitDNDE5O0M0MTk7MTEwQSAxMTZCIDExQjA7QzQxOTsxMTBBIDExNkIgMTFCMDsKK0M0MUE7QzQxQTsxMTBBIDExNkIgMTFCMTtDNDFBOzExMEEgMTE2QiAxMUIxOworQzQxQjtDNDFCOzExMEEgMTE2QiAxMUIyO0M0MUI7MTEwQSAxMTZCIDExQjI7CitDNDFDO0M0MUM7MTEwQSAxMTZCIDExQjM7QzQxQzsxMTBBIDExNkIgMTFCMzsKK0M0MUQ7QzQxRDsxMTBBIDExNkIgMTFCNDtDNDFEOzExMEEgMTE2QiAxMUI0OworQzQxRTtDNDFFOzExMEEgMTE2QiAxMUI1O0M0MUU7MTEwQSAxMTZCIDExQjU7CitDNDFGO0M0MUY7MTEwQSAxMTZCIDExQjY7QzQxRjsxMTBBIDExNkIgMTFCNjsKK0M0MjA7QzQyMDsxMTBBIDExNkIgMTFCNztDNDIwOzExMEEgMTE2QiAxMUI3OworQzQyMTtDNDIxOzExMEEgMTE2QiAxMUI4O0M0MjE7MTEwQSAxMTZCIDExQjg7CitDNDIyO0M0MjI7MTEwQSAxMTZCIDExQjk7QzQyMjsxMTBBIDExNkIgMTFCOTsKK0M0MjM7QzQyMzsxMTBBIDExNkIgMTFCQTtDNDIzOzExMEEgMTE2QiAxMUJBOworQzQyNDtDNDI0OzExMEEgMTE2QiAxMUJCO0M0MjQ7MTEwQSAxMTZCIDExQkI7CitDNDI1O0M0MjU7MTEwQSAxMTZCIDExQkM7QzQyNTsxMTBBIDExNkIgMTFCQzsKK0M0MjY7QzQyNjsxMTBBIDExNkIgMTFCRDtDNDI2OzExMEEgMTE2QiAxMUJEOworQzQyNztDNDI3OzExMEEgMTE2QiAxMUJFO0M0Mjc7MTEwQSAxMTZCIDExQkU7CitDNDI4O0M0Mjg7MTEwQSAxMTZCIDExQkY7QzQyODsxMTBBIDExNkIgMTFCRjsKK0M0Mjk7QzQyOTsxMTBBIDExNkIgMTFDMDtDNDI5OzExMEEgMTE2QiAxMUMwOworQzQyQTtDNDJBOzExMEEgMTE2QiAxMUMxO0M0MkE7MTEwQSAxMTZCIDExQzE7CitDNDJCO0M0MkI7MTEwQSAxMTZCIDExQzI7QzQyQjsxMTBBIDExNkIgMTFDMjsKK0M0MkM7QzQyQzsxMTBBIDExNkM7QzQyQzsxMTBBIDExNkM7CitDNDJEO0M0MkQ7MTEwQSAxMTZDIDExQTg7QzQyRDsxMTBBIDExNkMgMTFBODsKK0M0MkU7QzQyRTsxMTBBIDExNkMgMTFBOTtDNDJFOzExMEEgMTE2QyAxMUE5OworQzQyRjtDNDJGOzExMEEgMTE2QyAxMUFBO0M0MkY7MTEwQSAxMTZDIDExQUE7CitDNDMwO0M0MzA7MTEwQSAxMTZDIDExQUI7QzQzMDsxMTBBIDExNkMgMTFBQjsKK0M0MzE7QzQzMTsxMTBBIDExNkMgMTFBQztDNDMxOzExMEEgMTE2QyAxMUFDOworQzQzMjtDNDMyOzExMEEgMTE2QyAxMUFEO0M0MzI7MTEwQSAxMTZDIDExQUQ7CitDNDMzO0M0MzM7MTEwQSAxMTZDIDExQUU7QzQzMzsxMTBBIDExNkMgMTFBRTsKK0M0MzQ7QzQzNDsxMTBBIDExNkMgMTFBRjtDNDM0OzExMEEgMTE2QyAxMUFGOworQzQzNTtDNDM1OzExMEEgMTE2QyAxMUIwO0M0MzU7MTEwQSAxMTZDIDExQjA7CitDNDM2O0M0MzY7MTEwQSAxMTZDIDExQjE7QzQzNjsxMTBBIDExNkMgMTFCMTsKK0M0Mzc7QzQzNzsxMTBBIDExNkMgMTFCMjtDNDM3OzExMEEgMTE2QyAxMUIyOworQzQzODtDNDM4OzExMEEgMTE2QyAxMUIzO0M0Mzg7MTEwQSAxMTZDIDExQjM7CitDNDM5O0M0Mzk7MTEwQSAxMTZDIDExQjQ7QzQzOTsxMTBBIDExNkMgMTFCNDsKK0M0M0E7QzQzQTsxMTBBIDExNkMgMTFCNTtDNDNBOzExMEEgMTE2QyAxMUI1OworQzQzQjtDNDNCOzExMEEgMTE2QyAxMUI2O0M0M0I7MTEwQSAxMTZDIDExQjY7CitDNDNDO0M0M0M7MTEwQSAxMTZDIDExQjc7QzQzQzsxMTBBIDExNkMgMTFCNzsKK0M0M0Q7QzQzRDsxMTBBIDExNkMgMTFCODtDNDNEOzExMEEgMTE2QyAxMUI4OworQzQzRTtDNDNFOzExMEEgMTE2QyAxMUI5O0M0M0U7MTEwQSAxMTZDIDExQjk7CitDNDNGO0M0M0Y7MTEwQSAxMTZDIDExQkE7QzQzRjsxMTBBIDExNkMgMTFCQTsKK0M0NDA7QzQ0MDsxMTBBIDExNkMgMTFCQjtDNDQwOzExMEEgMTE2QyAxMUJCOworQzQ0MTtDNDQxOzExMEEgMTE2QyAxMUJDO0M0NDE7MTEwQSAxMTZDIDExQkM7CitDNDQyO0M0NDI7MTEwQSAxMTZDIDExQkQ7QzQ0MjsxMTBBIDExNkMgMTFCRDsKK0M0NDM7QzQ0MzsxMTBBIDExNkMgMTFCRTtDNDQzOzExMEEgMTE2QyAxMUJFOworQzQ0NDtDNDQ0OzExMEEgMTE2QyAxMUJGO0M0NDQ7MTEwQSAxMTZDIDExQkY7CitDNDQ1O0M0NDU7MTEwQSAxMTZDIDExQzA7QzQ0NTsxMTBBIDExNkMgMTFDMDsKK0M0NDY7QzQ0NjsxMTBBIDExNkMgMTFDMTtDNDQ2OzExMEEgMTE2QyAxMUMxOworQzQ0NztDNDQ3OzExMEEgMTE2QyAxMUMyO0M0NDc7MTEwQSAxMTZDIDExQzI7CitDNDQ4O0M0NDg7MTEwQSAxMTZEO0M0NDg7MTEwQSAxMTZEOworQzQ0OTtDNDQ5OzExMEEgMTE2RCAxMUE4O0M0NDk7MTEwQSAxMTZEIDExQTg7CitDNDRBO0M0NEE7MTEwQSAxMTZEIDExQTk7QzQ0QTsxMTBBIDExNkQgMTFBOTsKK0M0NEI7QzQ0QjsxMTBBIDExNkQgMTFBQTtDNDRCOzExMEEgMTE2RCAxMUFBOworQzQ0QztDNDRDOzExMEEgMTE2RCAxMUFCO0M0NEM7MTEwQSAxMTZEIDExQUI7CitDNDREO0M0NEQ7MTEwQSAxMTZEIDExQUM7QzQ0RDsxMTBBIDExNkQgMTFBQzsKK0M0NEU7QzQ0RTsxMTBBIDExNkQgMTFBRDtDNDRFOzExMEEgMTE2RCAxMUFEOworQzQ0RjtDNDRGOzExMEEgMTE2RCAxMUFFO0M0NEY7MTEwQSAxMTZEIDExQUU7CitDNDUwO0M0NTA7MTEwQSAxMTZEIDExQUY7QzQ1MDsxMTBBIDExNkQgMTFBRjsKK0M0NTE7QzQ1MTsxMTBBIDExNkQgMTFCMDtDNDUxOzExMEEgMTE2RCAxMUIwOworQzQ1MjtDNDUyOzExMEEgMTE2RCAxMUIxO0M0NTI7MTEwQSAxMTZEIDExQjE7CitDNDUzO0M0NTM7MTEwQSAxMTZEIDExQjI7QzQ1MzsxMTBBIDExNkQgMTFCMjsKK0M0NTQ7QzQ1NDsxMTBBIDExNkQgMTFCMztDNDU0OzExMEEgMTE2RCAxMUIzOworQzQ1NTtDNDU1OzExMEEgMTE2RCAxMUI0O0M0NTU7MTEwQSAxMTZEIDExQjQ7CitDNDU2O0M0NTY7MTEwQSAxMTZEIDExQjU7QzQ1NjsxMTBBIDExNkQgMTFCNTsKK0M0NTc7QzQ1NzsxMTBBIDExNkQgMTFCNjtDNDU3OzExMEEgMTE2RCAxMUI2OworQzQ1ODtDNDU4OzExMEEgMTE2RCAxMUI3O0M0NTg7MTEwQSAxMTZEIDExQjc7CitDNDU5O0M0NTk7MTEwQSAxMTZEIDExQjg7QzQ1OTsxMTBBIDExNkQgMTFCODsKK0M0NUE7QzQ1QTsxMTBBIDExNkQgMTFCOTtDNDVBOzExMEEgMTE2RCAxMUI5OworQzQ1QjtDNDVCOzExMEEgMTE2RCAxMUJBO0M0NUI7MTEwQSAxMTZEIDExQkE7CitDNDVDO0M0NUM7MTEwQSAxMTZEIDExQkI7QzQ1QzsxMTBBIDExNkQgMTFCQjsKK0M0NUQ7QzQ1RDsxMTBBIDExNkQgMTFCQztDNDVEOzExMEEgMTE2RCAxMUJDOworQzQ1RTtDNDVFOzExMEEgMTE2RCAxMUJEO0M0NUU7MTEwQSAxMTZEIDExQkQ7CitDNDVGO0M0NUY7MTEwQSAxMTZEIDExQkU7QzQ1RjsxMTBBIDExNkQgMTFCRTsKK0M0NjA7QzQ2MDsxMTBBIDExNkQgMTFCRjtDNDYwOzExMEEgMTE2RCAxMUJGOworQzQ2MTtDNDYxOzExMEEgMTE2RCAxMUMwO0M0NjE7MTEwQSAxMTZEIDExQzA7CitDNDYyO0M0NjI7MTEwQSAxMTZEIDExQzE7QzQ2MjsxMTBBIDExNkQgMTFDMTsKK0M0NjM7QzQ2MzsxMTBBIDExNkQgMTFDMjtDNDYzOzExMEEgMTE2RCAxMUMyOworQzQ2NDtDNDY0OzExMEEgMTE2RTtDNDY0OzExMEEgMTE2RTsKK0M0NjU7QzQ2NTsxMTBBIDExNkUgMTFBODtDNDY1OzExMEEgMTE2RSAxMUE4OworQzQ2NjtDNDY2OzExMEEgMTE2RSAxMUE5O0M0NjY7MTEwQSAxMTZFIDExQTk7CitDNDY3O0M0Njc7MTEwQSAxMTZFIDExQUE7QzQ2NzsxMTBBIDExNkUgMTFBQTsKK0M0Njg7QzQ2ODsxMTBBIDExNkUgMTFBQjtDNDY4OzExMEEgMTE2RSAxMUFCOworQzQ2OTtDNDY5OzExMEEgMTE2RSAxMUFDO0M0Njk7MTEwQSAxMTZFIDExQUM7CitDNDZBO0M0NkE7MTEwQSAxMTZFIDExQUQ7QzQ2QTsxMTBBIDExNkUgMTFBRDsKK0M0NkI7QzQ2QjsxMTBBIDExNkUgMTFBRTtDNDZCOzExMEEgMTE2RSAxMUFFOworQzQ2QztDNDZDOzExMEEgMTE2RSAxMUFGO0M0NkM7MTEwQSAxMTZFIDExQUY7CitDNDZEO0M0NkQ7MTEwQSAxMTZFIDExQjA7QzQ2RDsxMTBBIDExNkUgMTFCMDsKK0M0NkU7QzQ2RTsxMTBBIDExNkUgMTFCMTtDNDZFOzExMEEgMTE2RSAxMUIxOworQzQ2RjtDNDZGOzExMEEgMTE2RSAxMUIyO0M0NkY7MTEwQSAxMTZFIDExQjI7CitDNDcwO0M0NzA7MTEwQSAxMTZFIDExQjM7QzQ3MDsxMTBBIDExNkUgMTFCMzsKK0M0NzE7QzQ3MTsxMTBBIDExNkUgMTFCNDtDNDcxOzExMEEgMTE2RSAxMUI0OworQzQ3MjtDNDcyOzExMEEgMTE2RSAxMUI1O0M0NzI7MTEwQSAxMTZFIDExQjU7CitDNDczO0M0NzM7MTEwQSAxMTZFIDExQjY7QzQ3MzsxMTBBIDExNkUgMTFCNjsKK0M0NzQ7QzQ3NDsxMTBBIDExNkUgMTFCNztDNDc0OzExMEEgMTE2RSAxMUI3OworQzQ3NTtDNDc1OzExMEEgMTE2RSAxMUI4O0M0NzU7MTEwQSAxMTZFIDExQjg7CitDNDc2O0M0NzY7MTEwQSAxMTZFIDExQjk7QzQ3NjsxMTBBIDExNkUgMTFCOTsKK0M0Nzc7QzQ3NzsxMTBBIDExNkUgMTFCQTtDNDc3OzExMEEgMTE2RSAxMUJBOworQzQ3ODtDNDc4OzExMEEgMTE2RSAxMUJCO0M0Nzg7MTEwQSAxMTZFIDExQkI7CitDNDc5O0M0Nzk7MTEwQSAxMTZFIDExQkM7QzQ3OTsxMTBBIDExNkUgMTFCQzsKK0M0N0E7QzQ3QTsxMTBBIDExNkUgMTFCRDtDNDdBOzExMEEgMTE2RSAxMUJEOworQzQ3QjtDNDdCOzExMEEgMTE2RSAxMUJFO0M0N0I7MTEwQSAxMTZFIDExQkU7CitDNDdDO0M0N0M7MTEwQSAxMTZFIDExQkY7QzQ3QzsxMTBBIDExNkUgMTFCRjsKK0M0N0Q7QzQ3RDsxMTBBIDExNkUgMTFDMDtDNDdEOzExMEEgMTE2RSAxMUMwOworQzQ3RTtDNDdFOzExMEEgMTE2RSAxMUMxO0M0N0U7MTEwQSAxMTZFIDExQzE7CitDNDdGO0M0N0Y7MTEwQSAxMTZFIDExQzI7QzQ3RjsxMTBBIDExNkUgMTFDMjsKK0M0ODA7QzQ4MDsxMTBBIDExNkY7QzQ4MDsxMTBBIDExNkY7CitDNDgxO0M0ODE7MTEwQSAxMTZGIDExQTg7QzQ4MTsxMTBBIDExNkYgMTFBODsKK0M0ODI7QzQ4MjsxMTBBIDExNkYgMTFBOTtDNDgyOzExMEEgMTE2RiAxMUE5OworQzQ4MztDNDgzOzExMEEgMTE2RiAxMUFBO0M0ODM7MTEwQSAxMTZGIDExQUE7CitDNDg0O0M0ODQ7MTEwQSAxMTZGIDExQUI7QzQ4NDsxMTBBIDExNkYgMTFBQjsKK0M0ODU7QzQ4NTsxMTBBIDExNkYgMTFBQztDNDg1OzExMEEgMTE2RiAxMUFDOworQzQ4NjtDNDg2OzExMEEgMTE2RiAxMUFEO0M0ODY7MTEwQSAxMTZGIDExQUQ7CitDNDg3O0M0ODc7MTEwQSAxMTZGIDExQUU7QzQ4NzsxMTBBIDExNkYgMTFBRTsKK0M0ODg7QzQ4ODsxMTBBIDExNkYgMTFBRjtDNDg4OzExMEEgMTE2RiAxMUFGOworQzQ4OTtDNDg5OzExMEEgMTE2RiAxMUIwO0M0ODk7MTEwQSAxMTZGIDExQjA7CitDNDhBO0M0OEE7MTEwQSAxMTZGIDExQjE7QzQ4QTsxMTBBIDExNkYgMTFCMTsKK0M0OEI7QzQ4QjsxMTBBIDExNkYgMTFCMjtDNDhCOzExMEEgMTE2RiAxMUIyOworQzQ4QztDNDhDOzExMEEgMTE2RiAxMUIzO0M0OEM7MTEwQSAxMTZGIDExQjM7CitDNDhEO0M0OEQ7MTEwQSAxMTZGIDExQjQ7QzQ4RDsxMTBBIDExNkYgMTFCNDsKK0M0OEU7QzQ4RTsxMTBBIDExNkYgMTFCNTtDNDhFOzExMEEgMTE2RiAxMUI1OworQzQ4RjtDNDhGOzExMEEgMTE2RiAxMUI2O0M0OEY7MTEwQSAxMTZGIDExQjY7CitDNDkwO0M0OTA7MTEwQSAxMTZGIDExQjc7QzQ5MDsxMTBBIDExNkYgMTFCNzsKK0M0OTE7QzQ5MTsxMTBBIDExNkYgMTFCODtDNDkxOzExMEEgMTE2RiAxMUI4OworQzQ5MjtDNDkyOzExMEEgMTE2RiAxMUI5O0M0OTI7MTEwQSAxMTZGIDExQjk7CitDNDkzO0M0OTM7MTEwQSAxMTZGIDExQkE7QzQ5MzsxMTBBIDExNkYgMTFCQTsKK0M0OTQ7QzQ5NDsxMTBBIDExNkYgMTFCQjtDNDk0OzExMEEgMTE2RiAxMUJCOworQzQ5NTtDNDk1OzExMEEgMTE2RiAxMUJDO0M0OTU7MTEwQSAxMTZGIDExQkM7CitDNDk2O0M0OTY7MTEwQSAxMTZGIDExQkQ7QzQ5NjsxMTBBIDExNkYgMTFCRDsKK0M0OTc7QzQ5NzsxMTBBIDExNkYgMTFCRTtDNDk3OzExMEEgMTE2RiAxMUJFOworQzQ5ODtDNDk4OzExMEEgMTE2RiAxMUJGO0M0OTg7MTEwQSAxMTZGIDExQkY7CitDNDk5O0M0OTk7MTEwQSAxMTZGIDExQzA7QzQ5OTsxMTBBIDExNkYgMTFDMDsKK0M0OUE7QzQ5QTsxMTBBIDExNkYgMTFDMTtDNDlBOzExMEEgMTE2RiAxMUMxOworQzQ5QjtDNDlCOzExMEEgMTE2RiAxMUMyO0M0OUI7MTEwQSAxMTZGIDExQzI7CitDNDlDO0M0OUM7MTEwQSAxMTcwO0M0OUM7MTEwQSAxMTcwOworQzQ5RDtDNDlEOzExMEEgMTE3MCAxMUE4O0M0OUQ7MTEwQSAxMTcwIDExQTg7CitDNDlFO0M0OUU7MTEwQSAxMTcwIDExQTk7QzQ5RTsxMTBBIDExNzAgMTFBOTsKK0M0OUY7QzQ5RjsxMTBBIDExNzAgMTFBQTtDNDlGOzExMEEgMTE3MCAxMUFBOworQzRBMDtDNEEwOzExMEEgMTE3MCAxMUFCO0M0QTA7MTEwQSAxMTcwIDExQUI7CitDNEExO0M0QTE7MTEwQSAxMTcwIDExQUM7QzRBMTsxMTBBIDExNzAgMTFBQzsKK0M0QTI7QzRBMjsxMTBBIDExNzAgMTFBRDtDNEEyOzExMEEgMTE3MCAxMUFEOworQzRBMztDNEEzOzExMEEgMTE3MCAxMUFFO0M0QTM7MTEwQSAxMTcwIDExQUU7CitDNEE0O0M0QTQ7MTEwQSAxMTcwIDExQUY7QzRBNDsxMTBBIDExNzAgMTFBRjsKK0M0QTU7QzRBNTsxMTBBIDExNzAgMTFCMDtDNEE1OzExMEEgMTE3MCAxMUIwOworQzRBNjtDNEE2OzExMEEgMTE3MCAxMUIxO0M0QTY7MTEwQSAxMTcwIDExQjE7CitDNEE3O0M0QTc7MTEwQSAxMTcwIDExQjI7QzRBNzsxMTBBIDExNzAgMTFCMjsKK0M0QTg7QzRBODsxMTBBIDExNzAgMTFCMztDNEE4OzExMEEgMTE3MCAxMUIzOworQzRBOTtDNEE5OzExMEEgMTE3MCAxMUI0O0M0QTk7MTEwQSAxMTcwIDExQjQ7CitDNEFBO0M0QUE7MTEwQSAxMTcwIDExQjU7QzRBQTsxMTBBIDExNzAgMTFCNTsKK0M0QUI7QzRBQjsxMTBBIDExNzAgMTFCNjtDNEFCOzExMEEgMTE3MCAxMUI2OworQzRBQztDNEFDOzExMEEgMTE3MCAxMUI3O0M0QUM7MTEwQSAxMTcwIDExQjc7CitDNEFEO0M0QUQ7MTEwQSAxMTcwIDExQjg7QzRBRDsxMTBBIDExNzAgMTFCODsKK0M0QUU7QzRBRTsxMTBBIDExNzAgMTFCOTtDNEFFOzExMEEgMTE3MCAxMUI5OworQzRBRjtDNEFGOzExMEEgMTE3MCAxMUJBO0M0QUY7MTEwQSAxMTcwIDExQkE7CitDNEIwO0M0QjA7MTEwQSAxMTcwIDExQkI7QzRCMDsxMTBBIDExNzAgMTFCQjsKK0M0QjE7QzRCMTsxMTBBIDExNzAgMTFCQztDNEIxOzExMEEgMTE3MCAxMUJDOworQzRCMjtDNEIyOzExMEEgMTE3MCAxMUJEO0M0QjI7MTEwQSAxMTcwIDExQkQ7CitDNEIzO0M0QjM7MTEwQSAxMTcwIDExQkU7QzRCMzsxMTBBIDExNzAgMTFCRTsKK0M0QjQ7QzRCNDsxMTBBIDExNzAgMTFCRjtDNEI0OzExMEEgMTE3MCAxMUJGOworQzRCNTtDNEI1OzExMEEgMTE3MCAxMUMwO0M0QjU7MTEwQSAxMTcwIDExQzA7CitDNEI2O0M0QjY7MTEwQSAxMTcwIDExQzE7QzRCNjsxMTBBIDExNzAgMTFDMTsKK0M0Qjc7QzRCNzsxMTBBIDExNzAgMTFDMjtDNEI3OzExMEEgMTE3MCAxMUMyOworQzRCODtDNEI4OzExMEEgMTE3MTtDNEI4OzExMEEgMTE3MTsKK0M0Qjk7QzRCOTsxMTBBIDExNzEgMTFBODtDNEI5OzExMEEgMTE3MSAxMUE4OworQzRCQTtDNEJBOzExMEEgMTE3MSAxMUE5O0M0QkE7MTEwQSAxMTcxIDExQTk7CitDNEJCO0M0QkI7MTEwQSAxMTcxIDExQUE7QzRCQjsxMTBBIDExNzEgMTFBQTsKK0M0QkM7QzRCQzsxMTBBIDExNzEgMTFBQjtDNEJDOzExMEEgMTE3MSAxMUFCOworQzRCRDtDNEJEOzExMEEgMTE3MSAxMUFDO0M0QkQ7MTEwQSAxMTcxIDExQUM7CitDNEJFO0M0QkU7MTEwQSAxMTcxIDExQUQ7QzRCRTsxMTBBIDExNzEgMTFBRDsKK0M0QkY7QzRCRjsxMTBBIDExNzEgMTFBRTtDNEJGOzExMEEgMTE3MSAxMUFFOworQzRDMDtDNEMwOzExMEEgMTE3MSAxMUFGO0M0QzA7MTEwQSAxMTcxIDExQUY7CitDNEMxO0M0QzE7MTEwQSAxMTcxIDExQjA7QzRDMTsxMTBBIDExNzEgMTFCMDsKK0M0QzI7QzRDMjsxMTBBIDExNzEgMTFCMTtDNEMyOzExMEEgMTE3MSAxMUIxOworQzRDMztDNEMzOzExMEEgMTE3MSAxMUIyO0M0QzM7MTEwQSAxMTcxIDExQjI7CitDNEM0O0M0QzQ7MTEwQSAxMTcxIDExQjM7QzRDNDsxMTBBIDExNzEgMTFCMzsKK0M0QzU7QzRDNTsxMTBBIDExNzEgMTFCNDtDNEM1OzExMEEgMTE3MSAxMUI0OworQzRDNjtDNEM2OzExMEEgMTE3MSAxMUI1O0M0QzY7MTEwQSAxMTcxIDExQjU7CitDNEM3O0M0Qzc7MTEwQSAxMTcxIDExQjY7QzRDNzsxMTBBIDExNzEgMTFCNjsKK0M0Qzg7QzRDODsxMTBBIDExNzEgMTFCNztDNEM4OzExMEEgMTE3MSAxMUI3OworQzRDOTtDNEM5OzExMEEgMTE3MSAxMUI4O0M0Qzk7MTEwQSAxMTcxIDExQjg7CitDNENBO0M0Q0E7MTEwQSAxMTcxIDExQjk7QzRDQTsxMTBBIDExNzEgMTFCOTsKK0M0Q0I7QzRDQjsxMTBBIDExNzEgMTFCQTtDNENCOzExMEEgMTE3MSAxMUJBOworQzRDQztDNENDOzExMEEgMTE3MSAxMUJCO0M0Q0M7MTEwQSAxMTcxIDExQkI7CitDNENEO0M0Q0Q7MTEwQSAxMTcxIDExQkM7QzRDRDsxMTBBIDExNzEgMTFCQzsKK0M0Q0U7QzRDRTsxMTBBIDExNzEgMTFCRDtDNENFOzExMEEgMTE3MSAxMUJEOworQzRDRjtDNENGOzExMEEgMTE3MSAxMUJFO0M0Q0Y7MTEwQSAxMTcxIDExQkU7CitDNEQwO0M0RDA7MTEwQSAxMTcxIDExQkY7QzREMDsxMTBBIDExNzEgMTFCRjsKK0M0RDE7QzREMTsxMTBBIDExNzEgMTFDMDtDNEQxOzExMEEgMTE3MSAxMUMwOworQzREMjtDNEQyOzExMEEgMTE3MSAxMUMxO0M0RDI7MTEwQSAxMTcxIDExQzE7CitDNEQzO0M0RDM7MTEwQSAxMTcxIDExQzI7QzREMzsxMTBBIDExNzEgMTFDMjsKK0M0RDQ7QzRENDsxMTBBIDExNzI7QzRENDsxMTBBIDExNzI7CitDNEQ1O0M0RDU7MTEwQSAxMTcyIDExQTg7QzRENTsxMTBBIDExNzIgMTFBODsKK0M0RDY7QzRENjsxMTBBIDExNzIgMTFBOTtDNEQ2OzExMEEgMTE3MiAxMUE5OworQzRENztDNEQ3OzExMEEgMTE3MiAxMUFBO0M0RDc7MTEwQSAxMTcyIDExQUE7CitDNEQ4O0M0RDg7MTEwQSAxMTcyIDExQUI7QzREODsxMTBBIDExNzIgMTFBQjsKK0M0RDk7QzREOTsxMTBBIDExNzIgMTFBQztDNEQ5OzExMEEgMTE3MiAxMUFDOworQzREQTtDNERBOzExMEEgMTE3MiAxMUFEO0M0REE7MTEwQSAxMTcyIDExQUQ7CitDNERCO0M0REI7MTEwQSAxMTcyIDExQUU7QzREQjsxMTBBIDExNzIgMTFBRTsKK0M0REM7QzREQzsxMTBBIDExNzIgMTFBRjtDNERDOzExMEEgMTE3MiAxMUFGOworQzRERDtDNEREOzExMEEgMTE3MiAxMUIwO0M0REQ7MTEwQSAxMTcyIDExQjA7CitDNERFO0M0REU7MTEwQSAxMTcyIDExQjE7QzRERTsxMTBBIDExNzIgMTFCMTsKK0M0REY7QzRERjsxMTBBIDExNzIgMTFCMjtDNERGOzExMEEgMTE3MiAxMUIyOworQzRFMDtDNEUwOzExMEEgMTE3MiAxMUIzO0M0RTA7MTEwQSAxMTcyIDExQjM7CitDNEUxO0M0RTE7MTEwQSAxMTcyIDExQjQ7QzRFMTsxMTBBIDExNzIgMTFCNDsKK0M0RTI7QzRFMjsxMTBBIDExNzIgMTFCNTtDNEUyOzExMEEgMTE3MiAxMUI1OworQzRFMztDNEUzOzExMEEgMTE3MiAxMUI2O0M0RTM7MTEwQSAxMTcyIDExQjY7CitDNEU0O0M0RTQ7MTEwQSAxMTcyIDExQjc7QzRFNDsxMTBBIDExNzIgMTFCNzsKK0M0RTU7QzRFNTsxMTBBIDExNzIgMTFCODtDNEU1OzExMEEgMTE3MiAxMUI4OworQzRFNjtDNEU2OzExMEEgMTE3MiAxMUI5O0M0RTY7MTEwQSAxMTcyIDExQjk7CitDNEU3O0M0RTc7MTEwQSAxMTcyIDExQkE7QzRFNzsxMTBBIDExNzIgMTFCQTsKK0M0RTg7QzRFODsxMTBBIDExNzIgMTFCQjtDNEU4OzExMEEgMTE3MiAxMUJCOworQzRFOTtDNEU5OzExMEEgMTE3MiAxMUJDO0M0RTk7MTEwQSAxMTcyIDExQkM7CitDNEVBO0M0RUE7MTEwQSAxMTcyIDExQkQ7QzRFQTsxMTBBIDExNzIgMTFCRDsKK0M0RUI7QzRFQjsxMTBBIDExNzIgMTFCRTtDNEVCOzExMEEgMTE3MiAxMUJFOworQzRFQztDNEVDOzExMEEgMTE3MiAxMUJGO0M0RUM7MTEwQSAxMTcyIDExQkY7CitDNEVEO0M0RUQ7MTEwQSAxMTcyIDExQzA7QzRFRDsxMTBBIDExNzIgMTFDMDsKK0M0RUU7QzRFRTsxMTBBIDExNzIgMTFDMTtDNEVFOzExMEEgMTE3MiAxMUMxOworQzRFRjtDNEVGOzExMEEgMTE3MiAxMUMyO0M0RUY7MTEwQSAxMTcyIDExQzI7CitDNEYwO0M0RjA7MTEwQSAxMTczO0M0RjA7MTEwQSAxMTczOworQzRGMTtDNEYxOzExMEEgMTE3MyAxMUE4O0M0RjE7MTEwQSAxMTczIDExQTg7CitDNEYyO0M0RjI7MTEwQSAxMTczIDExQTk7QzRGMjsxMTBBIDExNzMgMTFBOTsKK0M0RjM7QzRGMzsxMTBBIDExNzMgMTFBQTtDNEYzOzExMEEgMTE3MyAxMUFBOworQzRGNDtDNEY0OzExMEEgMTE3MyAxMUFCO0M0RjQ7MTEwQSAxMTczIDExQUI7CitDNEY1O0M0RjU7MTEwQSAxMTczIDExQUM7QzRGNTsxMTBBIDExNzMgMTFBQzsKK0M0RjY7QzRGNjsxMTBBIDExNzMgMTFBRDtDNEY2OzExMEEgMTE3MyAxMUFEOworQzRGNztDNEY3OzExMEEgMTE3MyAxMUFFO0M0Rjc7MTEwQSAxMTczIDExQUU7CitDNEY4O0M0Rjg7MTEwQSAxMTczIDExQUY7QzRGODsxMTBBIDExNzMgMTFBRjsKK0M0Rjk7QzRGOTsxMTBBIDExNzMgMTFCMDtDNEY5OzExMEEgMTE3MyAxMUIwOworQzRGQTtDNEZBOzExMEEgMTE3MyAxMUIxO0M0RkE7MTEwQSAxMTczIDExQjE7CitDNEZCO0M0RkI7MTEwQSAxMTczIDExQjI7QzRGQjsxMTBBIDExNzMgMTFCMjsKK0M0RkM7QzRGQzsxMTBBIDExNzMgMTFCMztDNEZDOzExMEEgMTE3MyAxMUIzOworQzRGRDtDNEZEOzExMEEgMTE3MyAxMUI0O0M0RkQ7MTEwQSAxMTczIDExQjQ7CitDNEZFO0M0RkU7MTEwQSAxMTczIDExQjU7QzRGRTsxMTBBIDExNzMgMTFCNTsKK0M0RkY7QzRGRjsxMTBBIDExNzMgMTFCNjtDNEZGOzExMEEgMTE3MyAxMUI2OworQzUwMDtDNTAwOzExMEEgMTE3MyAxMUI3O0M1MDA7MTEwQSAxMTczIDExQjc7CitDNTAxO0M1MDE7MTEwQSAxMTczIDExQjg7QzUwMTsxMTBBIDExNzMgMTFCODsKK0M1MDI7QzUwMjsxMTBBIDExNzMgMTFCOTtDNTAyOzExMEEgMTE3MyAxMUI5OworQzUwMztDNTAzOzExMEEgMTE3MyAxMUJBO0M1MDM7MTEwQSAxMTczIDExQkE7CitDNTA0O0M1MDQ7MTEwQSAxMTczIDExQkI7QzUwNDsxMTBBIDExNzMgMTFCQjsKK0M1MDU7QzUwNTsxMTBBIDExNzMgMTFCQztDNTA1OzExMEEgMTE3MyAxMUJDOworQzUwNjtDNTA2OzExMEEgMTE3MyAxMUJEO0M1MDY7MTEwQSAxMTczIDExQkQ7CitDNTA3O0M1MDc7MTEwQSAxMTczIDExQkU7QzUwNzsxMTBBIDExNzMgMTFCRTsKK0M1MDg7QzUwODsxMTBBIDExNzMgMTFCRjtDNTA4OzExMEEgMTE3MyAxMUJGOworQzUwOTtDNTA5OzExMEEgMTE3MyAxMUMwO0M1MDk7MTEwQSAxMTczIDExQzA7CitDNTBBO0M1MEE7MTEwQSAxMTczIDExQzE7QzUwQTsxMTBBIDExNzMgMTFDMTsKK0M1MEI7QzUwQjsxMTBBIDExNzMgMTFDMjtDNTBCOzExMEEgMTE3MyAxMUMyOworQzUwQztDNTBDOzExMEEgMTE3NDtDNTBDOzExMEEgMTE3NDsKK0M1MEQ7QzUwRDsxMTBBIDExNzQgMTFBODtDNTBEOzExMEEgMTE3NCAxMUE4OworQzUwRTtDNTBFOzExMEEgMTE3NCAxMUE5O0M1MEU7MTEwQSAxMTc0IDExQTk7CitDNTBGO0M1MEY7MTEwQSAxMTc0IDExQUE7QzUwRjsxMTBBIDExNzQgMTFBQTsKK0M1MTA7QzUxMDsxMTBBIDExNzQgMTFBQjtDNTEwOzExMEEgMTE3NCAxMUFCOworQzUxMTtDNTExOzExMEEgMTE3NCAxMUFDO0M1MTE7MTEwQSAxMTc0IDExQUM7CitDNTEyO0M1MTI7MTEwQSAxMTc0IDExQUQ7QzUxMjsxMTBBIDExNzQgMTFBRDsKK0M1MTM7QzUxMzsxMTBBIDExNzQgMTFBRTtDNTEzOzExMEEgMTE3NCAxMUFFOworQzUxNDtDNTE0OzExMEEgMTE3NCAxMUFGO0M1MTQ7MTEwQSAxMTc0IDExQUY7CitDNTE1O0M1MTU7MTEwQSAxMTc0IDExQjA7QzUxNTsxMTBBIDExNzQgMTFCMDsKK0M1MTY7QzUxNjsxMTBBIDExNzQgMTFCMTtDNTE2OzExMEEgMTE3NCAxMUIxOworQzUxNztDNTE3OzExMEEgMTE3NCAxMUIyO0M1MTc7MTEwQSAxMTc0IDExQjI7CitDNTE4O0M1MTg7MTEwQSAxMTc0IDExQjM7QzUxODsxMTBBIDExNzQgMTFCMzsKK0M1MTk7QzUxOTsxMTBBIDExNzQgMTFCNDtDNTE5OzExMEEgMTE3NCAxMUI0OworQzUxQTtDNTFBOzExMEEgMTE3NCAxMUI1O0M1MUE7MTEwQSAxMTc0IDExQjU7CitDNTFCO0M1MUI7MTEwQSAxMTc0IDExQjY7QzUxQjsxMTBBIDExNzQgMTFCNjsKK0M1MUM7QzUxQzsxMTBBIDExNzQgMTFCNztDNTFDOzExMEEgMTE3NCAxMUI3OworQzUxRDtDNTFEOzExMEEgMTE3NCAxMUI4O0M1MUQ7MTEwQSAxMTc0IDExQjg7CitDNTFFO0M1MUU7MTEwQSAxMTc0IDExQjk7QzUxRTsxMTBBIDExNzQgMTFCOTsKK0M1MUY7QzUxRjsxMTBBIDExNzQgMTFCQTtDNTFGOzExMEEgMTE3NCAxMUJBOworQzUyMDtDNTIwOzExMEEgMTE3NCAxMUJCO0M1MjA7MTEwQSAxMTc0IDExQkI7CitDNTIxO0M1MjE7MTEwQSAxMTc0IDExQkM7QzUyMTsxMTBBIDExNzQgMTFCQzsKK0M1MjI7QzUyMjsxMTBBIDExNzQgMTFCRDtDNTIyOzExMEEgMTE3NCAxMUJEOworQzUyMztDNTIzOzExMEEgMTE3NCAxMUJFO0M1MjM7MTEwQSAxMTc0IDExQkU7CitDNTI0O0M1MjQ7MTEwQSAxMTc0IDExQkY7QzUyNDsxMTBBIDExNzQgMTFCRjsKK0M1MjU7QzUyNTsxMTBBIDExNzQgMTFDMDtDNTI1OzExMEEgMTE3NCAxMUMwOworQzUyNjtDNTI2OzExMEEgMTE3NCAxMUMxO0M1MjY7MTEwQSAxMTc0IDExQzE7CitDNTI3O0M1Mjc7MTEwQSAxMTc0IDExQzI7QzUyNzsxMTBBIDExNzQgMTFDMjsKK0M1Mjg7QzUyODsxMTBBIDExNzU7QzUyODsxMTBBIDExNzU7CitDNTI5O0M1Mjk7MTEwQSAxMTc1IDExQTg7QzUyOTsxMTBBIDExNzUgMTFBODsKK0M1MkE7QzUyQTsxMTBBIDExNzUgMTFBOTtDNTJBOzExMEEgMTE3NSAxMUE5OworQzUyQjtDNTJCOzExMEEgMTE3NSAxMUFBO0M1MkI7MTEwQSAxMTc1IDExQUE7CitDNTJDO0M1MkM7MTEwQSAxMTc1IDExQUI7QzUyQzsxMTBBIDExNzUgMTFBQjsKK0M1MkQ7QzUyRDsxMTBBIDExNzUgMTFBQztDNTJEOzExMEEgMTE3NSAxMUFDOworQzUyRTtDNTJFOzExMEEgMTE3NSAxMUFEO0M1MkU7MTEwQSAxMTc1IDExQUQ7CitDNTJGO0M1MkY7MTEwQSAxMTc1IDExQUU7QzUyRjsxMTBBIDExNzUgMTFBRTsKK0M1MzA7QzUzMDsxMTBBIDExNzUgMTFBRjtDNTMwOzExMEEgMTE3NSAxMUFGOworQzUzMTtDNTMxOzExMEEgMTE3NSAxMUIwO0M1MzE7MTEwQSAxMTc1IDExQjA7CitDNTMyO0M1MzI7MTEwQSAxMTc1IDExQjE7QzUzMjsxMTBBIDExNzUgMTFCMTsKK0M1MzM7QzUzMzsxMTBBIDExNzUgMTFCMjtDNTMzOzExMEEgMTE3NSAxMUIyOworQzUzNDtDNTM0OzExMEEgMTE3NSAxMUIzO0M1MzQ7MTEwQSAxMTc1IDExQjM7CitDNTM1O0M1MzU7MTEwQSAxMTc1IDExQjQ7QzUzNTsxMTBBIDExNzUgMTFCNDsKK0M1MzY7QzUzNjsxMTBBIDExNzUgMTFCNTtDNTM2OzExMEEgMTE3NSAxMUI1OworQzUzNztDNTM3OzExMEEgMTE3NSAxMUI2O0M1Mzc7MTEwQSAxMTc1IDExQjY7CitDNTM4O0M1Mzg7MTEwQSAxMTc1IDExQjc7QzUzODsxMTBBIDExNzUgMTFCNzsKK0M1Mzk7QzUzOTsxMTBBIDExNzUgMTFCODtDNTM5OzExMEEgMTE3NSAxMUI4OworQzUzQTtDNTNBOzExMEEgMTE3NSAxMUI5O0M1M0E7MTEwQSAxMTc1IDExQjk7CitDNTNCO0M1M0I7MTEwQSAxMTc1IDExQkE7QzUzQjsxMTBBIDExNzUgMTFCQTsKK0M1M0M7QzUzQzsxMTBBIDExNzUgMTFCQjtDNTNDOzExMEEgMTE3NSAxMUJCOworQzUzRDtDNTNEOzExMEEgMTE3NSAxMUJDO0M1M0Q7MTEwQSAxMTc1IDExQkM7CitDNTNFO0M1M0U7MTEwQSAxMTc1IDExQkQ7QzUzRTsxMTBBIDExNzUgMTFCRDsKK0M1M0Y7QzUzRjsxMTBBIDExNzUgMTFCRTtDNTNGOzExMEEgMTE3NSAxMUJFOworQzU0MDtDNTQwOzExMEEgMTE3NSAxMUJGO0M1NDA7MTEwQSAxMTc1IDExQkY7CitDNTQxO0M1NDE7MTEwQSAxMTc1IDExQzA7QzU0MTsxMTBBIDExNzUgMTFDMDsKK0M1NDI7QzU0MjsxMTBBIDExNzUgMTFDMTtDNTQyOzExMEEgMTE3NSAxMUMxOworQzU0MztDNTQzOzExMEEgMTE3NSAxMUMyO0M1NDM7MTEwQSAxMTc1IDExQzI7CitDNTQ0O0M1NDQ7MTEwQiAxMTYxO0M1NDQ7MTEwQiAxMTYxOworQzU0NTtDNTQ1OzExMEIgMTE2MSAxMUE4O0M1NDU7MTEwQiAxMTYxIDExQTg7CitDNTQ2O0M1NDY7MTEwQiAxMTYxIDExQTk7QzU0NjsxMTBCIDExNjEgMTFBOTsKK0M1NDc7QzU0NzsxMTBCIDExNjEgMTFBQTtDNTQ3OzExMEIgMTE2MSAxMUFBOworQzU0ODtDNTQ4OzExMEIgMTE2MSAxMUFCO0M1NDg7MTEwQiAxMTYxIDExQUI7CitDNTQ5O0M1NDk7MTEwQiAxMTYxIDExQUM7QzU0OTsxMTBCIDExNjEgMTFBQzsKK0M1NEE7QzU0QTsxMTBCIDExNjEgMTFBRDtDNTRBOzExMEIgMTE2MSAxMUFEOworQzU0QjtDNTRCOzExMEIgMTE2MSAxMUFFO0M1NEI7MTEwQiAxMTYxIDExQUU7CitDNTRDO0M1NEM7MTEwQiAxMTYxIDExQUY7QzU0QzsxMTBCIDExNjEgMTFBRjsKK0M1NEQ7QzU0RDsxMTBCIDExNjEgMTFCMDtDNTREOzExMEIgMTE2MSAxMUIwOworQzU0RTtDNTRFOzExMEIgMTE2MSAxMUIxO0M1NEU7MTEwQiAxMTYxIDExQjE7CitDNTRGO0M1NEY7MTEwQiAxMTYxIDExQjI7QzU0RjsxMTBCIDExNjEgMTFCMjsKK0M1NTA7QzU1MDsxMTBCIDExNjEgMTFCMztDNTUwOzExMEIgMTE2MSAxMUIzOworQzU1MTtDNTUxOzExMEIgMTE2MSAxMUI0O0M1NTE7MTEwQiAxMTYxIDExQjQ7CitDNTUyO0M1NTI7MTEwQiAxMTYxIDExQjU7QzU1MjsxMTBCIDExNjEgMTFCNTsKK0M1NTM7QzU1MzsxMTBCIDExNjEgMTFCNjtDNTUzOzExMEIgMTE2MSAxMUI2OworQzU1NDtDNTU0OzExMEIgMTE2MSAxMUI3O0M1NTQ7MTEwQiAxMTYxIDExQjc7CitDNTU1O0M1NTU7MTEwQiAxMTYxIDExQjg7QzU1NTsxMTBCIDExNjEgMTFCODsKK0M1NTY7QzU1NjsxMTBCIDExNjEgMTFCOTtDNTU2OzExMEIgMTE2MSAxMUI5OworQzU1NztDNTU3OzExMEIgMTE2MSAxMUJBO0M1NTc7MTEwQiAxMTYxIDExQkE7CitDNTU4O0M1NTg7MTEwQiAxMTYxIDExQkI7QzU1ODsxMTBCIDExNjEgMTFCQjsKK0M1NTk7QzU1OTsxMTBCIDExNjEgMTFCQztDNTU5OzExMEIgMTE2MSAxMUJDOworQzU1QTtDNTVBOzExMEIgMTE2MSAxMUJEO0M1NUE7MTEwQiAxMTYxIDExQkQ7CitDNTVCO0M1NUI7MTEwQiAxMTYxIDExQkU7QzU1QjsxMTBCIDExNjEgMTFCRTsKK0M1NUM7QzU1QzsxMTBCIDExNjEgMTFCRjtDNTVDOzExMEIgMTE2MSAxMUJGOworQzU1RDtDNTVEOzExMEIgMTE2MSAxMUMwO0M1NUQ7MTEwQiAxMTYxIDExQzA7CitDNTVFO0M1NUU7MTEwQiAxMTYxIDExQzE7QzU1RTsxMTBCIDExNjEgMTFDMTsKK0M1NUY7QzU1RjsxMTBCIDExNjEgMTFDMjtDNTVGOzExMEIgMTE2MSAxMUMyOworQzU2MDtDNTYwOzExMEIgMTE2MjtDNTYwOzExMEIgMTE2MjsKK0M1NjE7QzU2MTsxMTBCIDExNjIgMTFBODtDNTYxOzExMEIgMTE2MiAxMUE4OworQzU2MjtDNTYyOzExMEIgMTE2MiAxMUE5O0M1NjI7MTEwQiAxMTYyIDExQTk7CitDNTYzO0M1NjM7MTEwQiAxMTYyIDExQUE7QzU2MzsxMTBCIDExNjIgMTFBQTsKK0M1NjQ7QzU2NDsxMTBCIDExNjIgMTFBQjtDNTY0OzExMEIgMTE2MiAxMUFCOworQzU2NTtDNTY1OzExMEIgMTE2MiAxMUFDO0M1NjU7MTEwQiAxMTYyIDExQUM7CitDNTY2O0M1NjY7MTEwQiAxMTYyIDExQUQ7QzU2NjsxMTBCIDExNjIgMTFBRDsKK0M1Njc7QzU2NzsxMTBCIDExNjIgMTFBRTtDNTY3OzExMEIgMTE2MiAxMUFFOworQzU2ODtDNTY4OzExMEIgMTE2MiAxMUFGO0M1Njg7MTEwQiAxMTYyIDExQUY7CitDNTY5O0M1Njk7MTEwQiAxMTYyIDExQjA7QzU2OTsxMTBCIDExNjIgMTFCMDsKK0M1NkE7QzU2QTsxMTBCIDExNjIgMTFCMTtDNTZBOzExMEIgMTE2MiAxMUIxOworQzU2QjtDNTZCOzExMEIgMTE2MiAxMUIyO0M1NkI7MTEwQiAxMTYyIDExQjI7CitDNTZDO0M1NkM7MTEwQiAxMTYyIDExQjM7QzU2QzsxMTBCIDExNjIgMTFCMzsKK0M1NkQ7QzU2RDsxMTBCIDExNjIgMTFCNDtDNTZEOzExMEIgMTE2MiAxMUI0OworQzU2RTtDNTZFOzExMEIgMTE2MiAxMUI1O0M1NkU7MTEwQiAxMTYyIDExQjU7CitDNTZGO0M1NkY7MTEwQiAxMTYyIDExQjY7QzU2RjsxMTBCIDExNjIgMTFCNjsKK0M1NzA7QzU3MDsxMTBCIDExNjIgMTFCNztDNTcwOzExMEIgMTE2MiAxMUI3OworQzU3MTtDNTcxOzExMEIgMTE2MiAxMUI4O0M1NzE7MTEwQiAxMTYyIDExQjg7CitDNTcyO0M1NzI7MTEwQiAxMTYyIDExQjk7QzU3MjsxMTBCIDExNjIgMTFCOTsKK0M1NzM7QzU3MzsxMTBCIDExNjIgMTFCQTtDNTczOzExMEIgMTE2MiAxMUJBOworQzU3NDtDNTc0OzExMEIgMTE2MiAxMUJCO0M1NzQ7MTEwQiAxMTYyIDExQkI7CitDNTc1O0M1NzU7MTEwQiAxMTYyIDExQkM7QzU3NTsxMTBCIDExNjIgMTFCQzsKK0M1NzY7QzU3NjsxMTBCIDExNjIgMTFCRDtDNTc2OzExMEIgMTE2MiAxMUJEOworQzU3NztDNTc3OzExMEIgMTE2MiAxMUJFO0M1Nzc7MTEwQiAxMTYyIDExQkU7CitDNTc4O0M1Nzg7MTEwQiAxMTYyIDExQkY7QzU3ODsxMTBCIDExNjIgMTFCRjsKK0M1Nzk7QzU3OTsxMTBCIDExNjIgMTFDMDtDNTc5OzExMEIgMTE2MiAxMUMwOworQzU3QTtDNTdBOzExMEIgMTE2MiAxMUMxO0M1N0E7MTEwQiAxMTYyIDExQzE7CitDNTdCO0M1N0I7MTEwQiAxMTYyIDExQzI7QzU3QjsxMTBCIDExNjIgMTFDMjsKK0M1N0M7QzU3QzsxMTBCIDExNjM7QzU3QzsxMTBCIDExNjM7CitDNTdEO0M1N0Q7MTEwQiAxMTYzIDExQTg7QzU3RDsxMTBCIDExNjMgMTFBODsKK0M1N0U7QzU3RTsxMTBCIDExNjMgMTFBOTtDNTdFOzExMEIgMTE2MyAxMUE5OworQzU3RjtDNTdGOzExMEIgMTE2MyAxMUFBO0M1N0Y7MTEwQiAxMTYzIDExQUE7CitDNTgwO0M1ODA7MTEwQiAxMTYzIDExQUI7QzU4MDsxMTBCIDExNjMgMTFBQjsKK0M1ODE7QzU4MTsxMTBCIDExNjMgMTFBQztDNTgxOzExMEIgMTE2MyAxMUFDOworQzU4MjtDNTgyOzExMEIgMTE2MyAxMUFEO0M1ODI7MTEwQiAxMTYzIDExQUQ7CitDNTgzO0M1ODM7MTEwQiAxMTYzIDExQUU7QzU4MzsxMTBCIDExNjMgMTFBRTsKK0M1ODQ7QzU4NDsxMTBCIDExNjMgMTFBRjtDNTg0OzExMEIgMTE2MyAxMUFGOworQzU4NTtDNTg1OzExMEIgMTE2MyAxMUIwO0M1ODU7MTEwQiAxMTYzIDExQjA7CitDNTg2O0M1ODY7MTEwQiAxMTYzIDExQjE7QzU4NjsxMTBCIDExNjMgMTFCMTsKK0M1ODc7QzU4NzsxMTBCIDExNjMgMTFCMjtDNTg3OzExMEIgMTE2MyAxMUIyOworQzU4ODtDNTg4OzExMEIgMTE2MyAxMUIzO0M1ODg7MTEwQiAxMTYzIDExQjM7CitDNTg5O0M1ODk7MTEwQiAxMTYzIDExQjQ7QzU4OTsxMTBCIDExNjMgMTFCNDsKK0M1OEE7QzU4QTsxMTBCIDExNjMgMTFCNTtDNThBOzExMEIgMTE2MyAxMUI1OworQzU4QjtDNThCOzExMEIgMTE2MyAxMUI2O0M1OEI7MTEwQiAxMTYzIDExQjY7CitDNThDO0M1OEM7MTEwQiAxMTYzIDExQjc7QzU4QzsxMTBCIDExNjMgMTFCNzsKK0M1OEQ7QzU4RDsxMTBCIDExNjMgMTFCODtDNThEOzExMEIgMTE2MyAxMUI4OworQzU4RTtDNThFOzExMEIgMTE2MyAxMUI5O0M1OEU7MTEwQiAxMTYzIDExQjk7CitDNThGO0M1OEY7MTEwQiAxMTYzIDExQkE7QzU4RjsxMTBCIDExNjMgMTFCQTsKK0M1OTA7QzU5MDsxMTBCIDExNjMgMTFCQjtDNTkwOzExMEIgMTE2MyAxMUJCOworQzU5MTtDNTkxOzExMEIgMTE2MyAxMUJDO0M1OTE7MTEwQiAxMTYzIDExQkM7CitDNTkyO0M1OTI7MTEwQiAxMTYzIDExQkQ7QzU5MjsxMTBCIDExNjMgMTFCRDsKK0M1OTM7QzU5MzsxMTBCIDExNjMgMTFCRTtDNTkzOzExMEIgMTE2MyAxMUJFOworQzU5NDtDNTk0OzExMEIgMTE2MyAxMUJGO0M1OTQ7MTEwQiAxMTYzIDExQkY7CitDNTk1O0M1OTU7MTEwQiAxMTYzIDExQzA7QzU5NTsxMTBCIDExNjMgMTFDMDsKK0M1OTY7QzU5NjsxMTBCIDExNjMgMTFDMTtDNTk2OzExMEIgMTE2MyAxMUMxOworQzU5NztDNTk3OzExMEIgMTE2MyAxMUMyO0M1OTc7MTEwQiAxMTYzIDExQzI7CitDNTk4O0M1OTg7MTEwQiAxMTY0O0M1OTg7MTEwQiAxMTY0OworQzU5OTtDNTk5OzExMEIgMTE2NCAxMUE4O0M1OTk7MTEwQiAxMTY0IDExQTg7CitDNTlBO0M1OUE7MTEwQiAxMTY0IDExQTk7QzU5QTsxMTBCIDExNjQgMTFBOTsKK0M1OUI7QzU5QjsxMTBCIDExNjQgMTFBQTtDNTlCOzExMEIgMTE2NCAxMUFBOworQzU5QztDNTlDOzExMEIgMTE2NCAxMUFCO0M1OUM7MTEwQiAxMTY0IDExQUI7CitDNTlEO0M1OUQ7MTEwQiAxMTY0IDExQUM7QzU5RDsxMTBCIDExNjQgMTFBQzsKK0M1OUU7QzU5RTsxMTBCIDExNjQgMTFBRDtDNTlFOzExMEIgMTE2NCAxMUFEOworQzU5RjtDNTlGOzExMEIgMTE2NCAxMUFFO0M1OUY7MTEwQiAxMTY0IDExQUU7CitDNUEwO0M1QTA7MTEwQiAxMTY0IDExQUY7QzVBMDsxMTBCIDExNjQgMTFBRjsKK0M1QTE7QzVBMTsxMTBCIDExNjQgMTFCMDtDNUExOzExMEIgMTE2NCAxMUIwOworQzVBMjtDNUEyOzExMEIgMTE2NCAxMUIxO0M1QTI7MTEwQiAxMTY0IDExQjE7CitDNUEzO0M1QTM7MTEwQiAxMTY0IDExQjI7QzVBMzsxMTBCIDExNjQgMTFCMjsKK0M1QTQ7QzVBNDsxMTBCIDExNjQgMTFCMztDNUE0OzExMEIgMTE2NCAxMUIzOworQzVBNTtDNUE1OzExMEIgMTE2NCAxMUI0O0M1QTU7MTEwQiAxMTY0IDExQjQ7CitDNUE2O0M1QTY7MTEwQiAxMTY0IDExQjU7QzVBNjsxMTBCIDExNjQgMTFCNTsKK0M1QTc7QzVBNzsxMTBCIDExNjQgMTFCNjtDNUE3OzExMEIgMTE2NCAxMUI2OworQzVBODtDNUE4OzExMEIgMTE2NCAxMUI3O0M1QTg7MTEwQiAxMTY0IDExQjc7CitDNUE5O0M1QTk7MTEwQiAxMTY0IDExQjg7QzVBOTsxMTBCIDExNjQgMTFCODsKK0M1QUE7QzVBQTsxMTBCIDExNjQgMTFCOTtDNUFBOzExMEIgMTE2NCAxMUI5OworQzVBQjtDNUFCOzExMEIgMTE2NCAxMUJBO0M1QUI7MTEwQiAxMTY0IDExQkE7CitDNUFDO0M1QUM7MTEwQiAxMTY0IDExQkI7QzVBQzsxMTBCIDExNjQgMTFCQjsKK0M1QUQ7QzVBRDsxMTBCIDExNjQgMTFCQztDNUFEOzExMEIgMTE2NCAxMUJDOworQzVBRTtDNUFFOzExMEIgMTE2NCAxMUJEO0M1QUU7MTEwQiAxMTY0IDExQkQ7CitDNUFGO0M1QUY7MTEwQiAxMTY0IDExQkU7QzVBRjsxMTBCIDExNjQgMTFCRTsKK0M1QjA7QzVCMDsxMTBCIDExNjQgMTFCRjtDNUIwOzExMEIgMTE2NCAxMUJGOworQzVCMTtDNUIxOzExMEIgMTE2NCAxMUMwO0M1QjE7MTEwQiAxMTY0IDExQzA7CitDNUIyO0M1QjI7MTEwQiAxMTY0IDExQzE7QzVCMjsxMTBCIDExNjQgMTFDMTsKK0M1QjM7QzVCMzsxMTBCIDExNjQgMTFDMjtDNUIzOzExMEIgMTE2NCAxMUMyOworQzVCNDtDNUI0OzExMEIgMTE2NTtDNUI0OzExMEIgMTE2NTsKK0M1QjU7QzVCNTsxMTBCIDExNjUgMTFBODtDNUI1OzExMEIgMTE2NSAxMUE4OworQzVCNjtDNUI2OzExMEIgMTE2NSAxMUE5O0M1QjY7MTEwQiAxMTY1IDExQTk7CitDNUI3O0M1Qjc7MTEwQiAxMTY1IDExQUE7QzVCNzsxMTBCIDExNjUgMTFBQTsKK0M1Qjg7QzVCODsxMTBCIDExNjUgMTFBQjtDNUI4OzExMEIgMTE2NSAxMUFCOworQzVCOTtDNUI5OzExMEIgMTE2NSAxMUFDO0M1Qjk7MTEwQiAxMTY1IDExQUM7CitDNUJBO0M1QkE7MTEwQiAxMTY1IDExQUQ7QzVCQTsxMTBCIDExNjUgMTFBRDsKK0M1QkI7QzVCQjsxMTBCIDExNjUgMTFBRTtDNUJCOzExMEIgMTE2NSAxMUFFOworQzVCQztDNUJDOzExMEIgMTE2NSAxMUFGO0M1QkM7MTEwQiAxMTY1IDExQUY7CitDNUJEO0M1QkQ7MTEwQiAxMTY1IDExQjA7QzVCRDsxMTBCIDExNjUgMTFCMDsKK0M1QkU7QzVCRTsxMTBCIDExNjUgMTFCMTtDNUJFOzExMEIgMTE2NSAxMUIxOworQzVCRjtDNUJGOzExMEIgMTE2NSAxMUIyO0M1QkY7MTEwQiAxMTY1IDExQjI7CitDNUMwO0M1QzA7MTEwQiAxMTY1IDExQjM7QzVDMDsxMTBCIDExNjUgMTFCMzsKK0M1QzE7QzVDMTsxMTBCIDExNjUgMTFCNDtDNUMxOzExMEIgMTE2NSAxMUI0OworQzVDMjtDNUMyOzExMEIgMTE2NSAxMUI1O0M1QzI7MTEwQiAxMTY1IDExQjU7CitDNUMzO0M1QzM7MTEwQiAxMTY1IDExQjY7QzVDMzsxMTBCIDExNjUgMTFCNjsKK0M1QzQ7QzVDNDsxMTBCIDExNjUgMTFCNztDNUM0OzExMEIgMTE2NSAxMUI3OworQzVDNTtDNUM1OzExMEIgMTE2NSAxMUI4O0M1QzU7MTEwQiAxMTY1IDExQjg7CitDNUM2O0M1QzY7MTEwQiAxMTY1IDExQjk7QzVDNjsxMTBCIDExNjUgMTFCOTsKK0M1Qzc7QzVDNzsxMTBCIDExNjUgMTFCQTtDNUM3OzExMEIgMTE2NSAxMUJBOworQzVDODtDNUM4OzExMEIgMTE2NSAxMUJCO0M1Qzg7MTEwQiAxMTY1IDExQkI7CitDNUM5O0M1Qzk7MTEwQiAxMTY1IDExQkM7QzVDOTsxMTBCIDExNjUgMTFCQzsKK0M1Q0E7QzVDQTsxMTBCIDExNjUgMTFCRDtDNUNBOzExMEIgMTE2NSAxMUJEOworQzVDQjtDNUNCOzExMEIgMTE2NSAxMUJFO0M1Q0I7MTEwQiAxMTY1IDExQkU7CitDNUNDO0M1Q0M7MTEwQiAxMTY1IDExQkY7QzVDQzsxMTBCIDExNjUgMTFCRjsKK0M1Q0Q7QzVDRDsxMTBCIDExNjUgMTFDMDtDNUNEOzExMEIgMTE2NSAxMUMwOworQzVDRTtDNUNFOzExMEIgMTE2NSAxMUMxO0M1Q0U7MTEwQiAxMTY1IDExQzE7CitDNUNGO0M1Q0Y7MTEwQiAxMTY1IDExQzI7QzVDRjsxMTBCIDExNjUgMTFDMjsKK0M1RDA7QzVEMDsxMTBCIDExNjY7QzVEMDsxMTBCIDExNjY7CitDNUQxO0M1RDE7MTEwQiAxMTY2IDExQTg7QzVEMTsxMTBCIDExNjYgMTFBODsKK0M1RDI7QzVEMjsxMTBCIDExNjYgMTFBOTtDNUQyOzExMEIgMTE2NiAxMUE5OworQzVEMztDNUQzOzExMEIgMTE2NiAxMUFBO0M1RDM7MTEwQiAxMTY2IDExQUE7CitDNUQ0O0M1RDQ7MTEwQiAxMTY2IDExQUI7QzVENDsxMTBCIDExNjYgMTFBQjsKK0M1RDU7QzVENTsxMTBCIDExNjYgMTFBQztDNUQ1OzExMEIgMTE2NiAxMUFDOworQzVENjtDNUQ2OzExMEIgMTE2NiAxMUFEO0M1RDY7MTEwQiAxMTY2IDExQUQ7CitDNUQ3O0M1RDc7MTEwQiAxMTY2IDExQUU7QzVENzsxMTBCIDExNjYgMTFBRTsKK0M1RDg7QzVEODsxMTBCIDExNjYgMTFBRjtDNUQ4OzExMEIgMTE2NiAxMUFGOworQzVEOTtDNUQ5OzExMEIgMTE2NiAxMUIwO0M1RDk7MTEwQiAxMTY2IDExQjA7CitDNURBO0M1REE7MTEwQiAxMTY2IDExQjE7QzVEQTsxMTBCIDExNjYgMTFCMTsKK0M1REI7QzVEQjsxMTBCIDExNjYgMTFCMjtDNURCOzExMEIgMTE2NiAxMUIyOworQzVEQztDNURDOzExMEIgMTE2NiAxMUIzO0M1REM7MTEwQiAxMTY2IDExQjM7CitDNUREO0M1REQ7MTEwQiAxMTY2IDExQjQ7QzVERDsxMTBCIDExNjYgMTFCNDsKK0M1REU7QzVERTsxMTBCIDExNjYgMTFCNTtDNURFOzExMEIgMTE2NiAxMUI1OworQzVERjtDNURGOzExMEIgMTE2NiAxMUI2O0M1REY7MTEwQiAxMTY2IDExQjY7CitDNUUwO0M1RTA7MTEwQiAxMTY2IDExQjc7QzVFMDsxMTBCIDExNjYgMTFCNzsKK0M1RTE7QzVFMTsxMTBCIDExNjYgMTFCODtDNUUxOzExMEIgMTE2NiAxMUI4OworQzVFMjtDNUUyOzExMEIgMTE2NiAxMUI5O0M1RTI7MTEwQiAxMTY2IDExQjk7CitDNUUzO0M1RTM7MTEwQiAxMTY2IDExQkE7QzVFMzsxMTBCIDExNjYgMTFCQTsKK0M1RTQ7QzVFNDsxMTBCIDExNjYgMTFCQjtDNUU0OzExMEIgMTE2NiAxMUJCOworQzVFNTtDNUU1OzExMEIgMTE2NiAxMUJDO0M1RTU7MTEwQiAxMTY2IDExQkM7CitDNUU2O0M1RTY7MTEwQiAxMTY2IDExQkQ7QzVFNjsxMTBCIDExNjYgMTFCRDsKK0M1RTc7QzVFNzsxMTBCIDExNjYgMTFCRTtDNUU3OzExMEIgMTE2NiAxMUJFOworQzVFODtDNUU4OzExMEIgMTE2NiAxMUJGO0M1RTg7MTEwQiAxMTY2IDExQkY7CitDNUU5O0M1RTk7MTEwQiAxMTY2IDExQzA7QzVFOTsxMTBCIDExNjYgMTFDMDsKK0M1RUE7QzVFQTsxMTBCIDExNjYgMTFDMTtDNUVBOzExMEIgMTE2NiAxMUMxOworQzVFQjtDNUVCOzExMEIgMTE2NiAxMUMyO0M1RUI7MTEwQiAxMTY2IDExQzI7CitDNUVDO0M1RUM7MTEwQiAxMTY3O0M1RUM7MTEwQiAxMTY3OworQzVFRDtDNUVEOzExMEIgMTE2NyAxMUE4O0M1RUQ7MTEwQiAxMTY3IDExQTg7CitDNUVFO0M1RUU7MTEwQiAxMTY3IDExQTk7QzVFRTsxMTBCIDExNjcgMTFBOTsKK0M1RUY7QzVFRjsxMTBCIDExNjcgMTFBQTtDNUVGOzExMEIgMTE2NyAxMUFBOworQzVGMDtDNUYwOzExMEIgMTE2NyAxMUFCO0M1RjA7MTEwQiAxMTY3IDExQUI7CitDNUYxO0M1RjE7MTEwQiAxMTY3IDExQUM7QzVGMTsxMTBCIDExNjcgMTFBQzsKK0M1RjI7QzVGMjsxMTBCIDExNjcgMTFBRDtDNUYyOzExMEIgMTE2NyAxMUFEOworQzVGMztDNUYzOzExMEIgMTE2NyAxMUFFO0M1RjM7MTEwQiAxMTY3IDExQUU7CitDNUY0O0M1RjQ7MTEwQiAxMTY3IDExQUY7QzVGNDsxMTBCIDExNjcgMTFBRjsKK0M1RjU7QzVGNTsxMTBCIDExNjcgMTFCMDtDNUY1OzExMEIgMTE2NyAxMUIwOworQzVGNjtDNUY2OzExMEIgMTE2NyAxMUIxO0M1RjY7MTEwQiAxMTY3IDExQjE7CitDNUY3O0M1Rjc7MTEwQiAxMTY3IDExQjI7QzVGNzsxMTBCIDExNjcgMTFCMjsKK0M1Rjg7QzVGODsxMTBCIDExNjcgMTFCMztDNUY4OzExMEIgMTE2NyAxMUIzOworQzVGOTtDNUY5OzExMEIgMTE2NyAxMUI0O0M1Rjk7MTEwQiAxMTY3IDExQjQ7CitDNUZBO0M1RkE7MTEwQiAxMTY3IDExQjU7QzVGQTsxMTBCIDExNjcgMTFCNTsKK0M1RkI7QzVGQjsxMTBCIDExNjcgMTFCNjtDNUZCOzExMEIgMTE2NyAxMUI2OworQzVGQztDNUZDOzExMEIgMTE2NyAxMUI3O0M1RkM7MTEwQiAxMTY3IDExQjc7CitDNUZEO0M1RkQ7MTEwQiAxMTY3IDExQjg7QzVGRDsxMTBCIDExNjcgMTFCODsKK0M1RkU7QzVGRTsxMTBCIDExNjcgMTFCOTtDNUZFOzExMEIgMTE2NyAxMUI5OworQzVGRjtDNUZGOzExMEIgMTE2NyAxMUJBO0M1RkY7MTEwQiAxMTY3IDExQkE7CitDNjAwO0M2MDA7MTEwQiAxMTY3IDExQkI7QzYwMDsxMTBCIDExNjcgMTFCQjsKK0M2MDE7QzYwMTsxMTBCIDExNjcgMTFCQztDNjAxOzExMEIgMTE2NyAxMUJDOworQzYwMjtDNjAyOzExMEIgMTE2NyAxMUJEO0M2MDI7MTEwQiAxMTY3IDExQkQ7CitDNjAzO0M2MDM7MTEwQiAxMTY3IDExQkU7QzYwMzsxMTBCIDExNjcgMTFCRTsKK0M2MDQ7QzYwNDsxMTBCIDExNjcgMTFCRjtDNjA0OzExMEIgMTE2NyAxMUJGOworQzYwNTtDNjA1OzExMEIgMTE2NyAxMUMwO0M2MDU7MTEwQiAxMTY3IDExQzA7CitDNjA2O0M2MDY7MTEwQiAxMTY3IDExQzE7QzYwNjsxMTBCIDExNjcgMTFDMTsKK0M2MDc7QzYwNzsxMTBCIDExNjcgMTFDMjtDNjA3OzExMEIgMTE2NyAxMUMyOworQzYwODtDNjA4OzExMEIgMTE2ODtDNjA4OzExMEIgMTE2ODsKK0M2MDk7QzYwOTsxMTBCIDExNjggMTFBODtDNjA5OzExMEIgMTE2OCAxMUE4OworQzYwQTtDNjBBOzExMEIgMTE2OCAxMUE5O0M2MEE7MTEwQiAxMTY4IDExQTk7CitDNjBCO0M2MEI7MTEwQiAxMTY4IDExQUE7QzYwQjsxMTBCIDExNjggMTFBQTsKK0M2MEM7QzYwQzsxMTBCIDExNjggMTFBQjtDNjBDOzExMEIgMTE2OCAxMUFCOworQzYwRDtDNjBEOzExMEIgMTE2OCAxMUFDO0M2MEQ7MTEwQiAxMTY4IDExQUM7CitDNjBFO0M2MEU7MTEwQiAxMTY4IDExQUQ7QzYwRTsxMTBCIDExNjggMTFBRDsKK0M2MEY7QzYwRjsxMTBCIDExNjggMTFBRTtDNjBGOzExMEIgMTE2OCAxMUFFOworQzYxMDtDNjEwOzExMEIgMTE2OCAxMUFGO0M2MTA7MTEwQiAxMTY4IDExQUY7CitDNjExO0M2MTE7MTEwQiAxMTY4IDExQjA7QzYxMTsxMTBCIDExNjggMTFCMDsKK0M2MTI7QzYxMjsxMTBCIDExNjggMTFCMTtDNjEyOzExMEIgMTE2OCAxMUIxOworQzYxMztDNjEzOzExMEIgMTE2OCAxMUIyO0M2MTM7MTEwQiAxMTY4IDExQjI7CitDNjE0O0M2MTQ7MTEwQiAxMTY4IDExQjM7QzYxNDsxMTBCIDExNjggMTFCMzsKK0M2MTU7QzYxNTsxMTBCIDExNjggMTFCNDtDNjE1OzExMEIgMTE2OCAxMUI0OworQzYxNjtDNjE2OzExMEIgMTE2OCAxMUI1O0M2MTY7MTEwQiAxMTY4IDExQjU7CitDNjE3O0M2MTc7MTEwQiAxMTY4IDExQjY7QzYxNzsxMTBCIDExNjggMTFCNjsKK0M2MTg7QzYxODsxMTBCIDExNjggMTFCNztDNjE4OzExMEIgMTE2OCAxMUI3OworQzYxOTtDNjE5OzExMEIgMTE2OCAxMUI4O0M2MTk7MTEwQiAxMTY4IDExQjg7CitDNjFBO0M2MUE7MTEwQiAxMTY4IDExQjk7QzYxQTsxMTBCIDExNjggMTFCOTsKK0M2MUI7QzYxQjsxMTBCIDExNjggMTFCQTtDNjFCOzExMEIgMTE2OCAxMUJBOworQzYxQztDNjFDOzExMEIgMTE2OCAxMUJCO0M2MUM7MTEwQiAxMTY4IDExQkI7CitDNjFEO0M2MUQ7MTEwQiAxMTY4IDExQkM7QzYxRDsxMTBCIDExNjggMTFCQzsKK0M2MUU7QzYxRTsxMTBCIDExNjggMTFCRDtDNjFFOzExMEIgMTE2OCAxMUJEOworQzYxRjtDNjFGOzExMEIgMTE2OCAxMUJFO0M2MUY7MTEwQiAxMTY4IDExQkU7CitDNjIwO0M2MjA7MTEwQiAxMTY4IDExQkY7QzYyMDsxMTBCIDExNjggMTFCRjsKK0M2MjE7QzYyMTsxMTBCIDExNjggMTFDMDtDNjIxOzExMEIgMTE2OCAxMUMwOworQzYyMjtDNjIyOzExMEIgMTE2OCAxMUMxO0M2MjI7MTEwQiAxMTY4IDExQzE7CitDNjIzO0M2MjM7MTEwQiAxMTY4IDExQzI7QzYyMzsxMTBCIDExNjggMTFDMjsKK0M2MjQ7QzYyNDsxMTBCIDExNjk7QzYyNDsxMTBCIDExNjk7CitDNjI1O0M2MjU7MTEwQiAxMTY5IDExQTg7QzYyNTsxMTBCIDExNjkgMTFBODsKK0M2MjY7QzYyNjsxMTBCIDExNjkgMTFBOTtDNjI2OzExMEIgMTE2OSAxMUE5OworQzYyNztDNjI3OzExMEIgMTE2OSAxMUFBO0M2Mjc7MTEwQiAxMTY5IDExQUE7CitDNjI4O0M2Mjg7MTEwQiAxMTY5IDExQUI7QzYyODsxMTBCIDExNjkgMTFBQjsKK0M2Mjk7QzYyOTsxMTBCIDExNjkgMTFBQztDNjI5OzExMEIgMTE2OSAxMUFDOworQzYyQTtDNjJBOzExMEIgMTE2OSAxMUFEO0M2MkE7MTEwQiAxMTY5IDExQUQ7CitDNjJCO0M2MkI7MTEwQiAxMTY5IDExQUU7QzYyQjsxMTBCIDExNjkgMTFBRTsKK0M2MkM7QzYyQzsxMTBCIDExNjkgMTFBRjtDNjJDOzExMEIgMTE2OSAxMUFGOworQzYyRDtDNjJEOzExMEIgMTE2OSAxMUIwO0M2MkQ7MTEwQiAxMTY5IDExQjA7CitDNjJFO0M2MkU7MTEwQiAxMTY5IDExQjE7QzYyRTsxMTBCIDExNjkgMTFCMTsKK0M2MkY7QzYyRjsxMTBCIDExNjkgMTFCMjtDNjJGOzExMEIgMTE2OSAxMUIyOworQzYzMDtDNjMwOzExMEIgMTE2OSAxMUIzO0M2MzA7MTEwQiAxMTY5IDExQjM7CitDNjMxO0M2MzE7MTEwQiAxMTY5IDExQjQ7QzYzMTsxMTBCIDExNjkgMTFCNDsKK0M2MzI7QzYzMjsxMTBCIDExNjkgMTFCNTtDNjMyOzExMEIgMTE2OSAxMUI1OworQzYzMztDNjMzOzExMEIgMTE2OSAxMUI2O0M2MzM7MTEwQiAxMTY5IDExQjY7CitDNjM0O0M2MzQ7MTEwQiAxMTY5IDExQjc7QzYzNDsxMTBCIDExNjkgMTFCNzsKK0M2MzU7QzYzNTsxMTBCIDExNjkgMTFCODtDNjM1OzExMEIgMTE2OSAxMUI4OworQzYzNjtDNjM2OzExMEIgMTE2OSAxMUI5O0M2MzY7MTEwQiAxMTY5IDExQjk7CitDNjM3O0M2Mzc7MTEwQiAxMTY5IDExQkE7QzYzNzsxMTBCIDExNjkgMTFCQTsKK0M2Mzg7QzYzODsxMTBCIDExNjkgMTFCQjtDNjM4OzExMEIgMTE2OSAxMUJCOworQzYzOTtDNjM5OzExMEIgMTE2OSAxMUJDO0M2Mzk7MTEwQiAxMTY5IDExQkM7CitDNjNBO0M2M0E7MTEwQiAxMTY5IDExQkQ7QzYzQTsxMTBCIDExNjkgMTFCRDsKK0M2M0I7QzYzQjsxMTBCIDExNjkgMTFCRTtDNjNCOzExMEIgMTE2OSAxMUJFOworQzYzQztDNjNDOzExMEIgMTE2OSAxMUJGO0M2M0M7MTEwQiAxMTY5IDExQkY7CitDNjNEO0M2M0Q7MTEwQiAxMTY5IDExQzA7QzYzRDsxMTBCIDExNjkgMTFDMDsKK0M2M0U7QzYzRTsxMTBCIDExNjkgMTFDMTtDNjNFOzExMEIgMTE2OSAxMUMxOworQzYzRjtDNjNGOzExMEIgMTE2OSAxMUMyO0M2M0Y7MTEwQiAxMTY5IDExQzI7CitDNjQwO0M2NDA7MTEwQiAxMTZBO0M2NDA7MTEwQiAxMTZBOworQzY0MTtDNjQxOzExMEIgMTE2QSAxMUE4O0M2NDE7MTEwQiAxMTZBIDExQTg7CitDNjQyO0M2NDI7MTEwQiAxMTZBIDExQTk7QzY0MjsxMTBCIDExNkEgMTFBOTsKK0M2NDM7QzY0MzsxMTBCIDExNkEgMTFBQTtDNjQzOzExMEIgMTE2QSAxMUFBOworQzY0NDtDNjQ0OzExMEIgMTE2QSAxMUFCO0M2NDQ7MTEwQiAxMTZBIDExQUI7CitDNjQ1O0M2NDU7MTEwQiAxMTZBIDExQUM7QzY0NTsxMTBCIDExNkEgMTFBQzsKK0M2NDY7QzY0NjsxMTBCIDExNkEgMTFBRDtDNjQ2OzExMEIgMTE2QSAxMUFEOworQzY0NztDNjQ3OzExMEIgMTE2QSAxMUFFO0M2NDc7MTEwQiAxMTZBIDExQUU7CitDNjQ4O0M2NDg7MTEwQiAxMTZBIDExQUY7QzY0ODsxMTBCIDExNkEgMTFBRjsKK0M2NDk7QzY0OTsxMTBCIDExNkEgMTFCMDtDNjQ5OzExMEIgMTE2QSAxMUIwOworQzY0QTtDNjRBOzExMEIgMTE2QSAxMUIxO0M2NEE7MTEwQiAxMTZBIDExQjE7CitDNjRCO0M2NEI7MTEwQiAxMTZBIDExQjI7QzY0QjsxMTBCIDExNkEgMTFCMjsKK0M2NEM7QzY0QzsxMTBCIDExNkEgMTFCMztDNjRDOzExMEIgMTE2QSAxMUIzOworQzY0RDtDNjREOzExMEIgMTE2QSAxMUI0O0M2NEQ7MTEwQiAxMTZBIDExQjQ7CitDNjRFO0M2NEU7MTEwQiAxMTZBIDExQjU7QzY0RTsxMTBCIDExNkEgMTFCNTsKK0M2NEY7QzY0RjsxMTBCIDExNkEgMTFCNjtDNjRGOzExMEIgMTE2QSAxMUI2OworQzY1MDtDNjUwOzExMEIgMTE2QSAxMUI3O0M2NTA7MTEwQiAxMTZBIDExQjc7CitDNjUxO0M2NTE7MTEwQiAxMTZBIDExQjg7QzY1MTsxMTBCIDExNkEgMTFCODsKK0M2NTI7QzY1MjsxMTBCIDExNkEgMTFCOTtDNjUyOzExMEIgMTE2QSAxMUI5OworQzY1MztDNjUzOzExMEIgMTE2QSAxMUJBO0M2NTM7MTEwQiAxMTZBIDExQkE7CitDNjU0O0M2NTQ7MTEwQiAxMTZBIDExQkI7QzY1NDsxMTBCIDExNkEgMTFCQjsKK0M2NTU7QzY1NTsxMTBCIDExNkEgMTFCQztDNjU1OzExMEIgMTE2QSAxMUJDOworQzY1NjtDNjU2OzExMEIgMTE2QSAxMUJEO0M2NTY7MTEwQiAxMTZBIDExQkQ7CitDNjU3O0M2NTc7MTEwQiAxMTZBIDExQkU7QzY1NzsxMTBCIDExNkEgMTFCRTsKK0M2NTg7QzY1ODsxMTBCIDExNkEgMTFCRjtDNjU4OzExMEIgMTE2QSAxMUJGOworQzY1OTtDNjU5OzExMEIgMTE2QSAxMUMwO0M2NTk7MTEwQiAxMTZBIDExQzA7CitDNjVBO0M2NUE7MTEwQiAxMTZBIDExQzE7QzY1QTsxMTBCIDExNkEgMTFDMTsKK0M2NUI7QzY1QjsxMTBCIDExNkEgMTFDMjtDNjVCOzExMEIgMTE2QSAxMUMyOworQzY1QztDNjVDOzExMEIgMTE2QjtDNjVDOzExMEIgMTE2QjsKK0M2NUQ7QzY1RDsxMTBCIDExNkIgMTFBODtDNjVEOzExMEIgMTE2QiAxMUE4OworQzY1RTtDNjVFOzExMEIgMTE2QiAxMUE5O0M2NUU7MTEwQiAxMTZCIDExQTk7CitDNjVGO0M2NUY7MTEwQiAxMTZCIDExQUE7QzY1RjsxMTBCIDExNkIgMTFBQTsKK0M2NjA7QzY2MDsxMTBCIDExNkIgMTFBQjtDNjYwOzExMEIgMTE2QiAxMUFCOworQzY2MTtDNjYxOzExMEIgMTE2QiAxMUFDO0M2NjE7MTEwQiAxMTZCIDExQUM7CitDNjYyO0M2NjI7MTEwQiAxMTZCIDExQUQ7QzY2MjsxMTBCIDExNkIgMTFBRDsKK0M2NjM7QzY2MzsxMTBCIDExNkIgMTFBRTtDNjYzOzExMEIgMTE2QiAxMUFFOworQzY2NDtDNjY0OzExMEIgMTE2QiAxMUFGO0M2NjQ7MTEwQiAxMTZCIDExQUY7CitDNjY1O0M2NjU7MTEwQiAxMTZCIDExQjA7QzY2NTsxMTBCIDExNkIgMTFCMDsKK0M2NjY7QzY2NjsxMTBCIDExNkIgMTFCMTtDNjY2OzExMEIgMTE2QiAxMUIxOworQzY2NztDNjY3OzExMEIgMTE2QiAxMUIyO0M2Njc7MTEwQiAxMTZCIDExQjI7CitDNjY4O0M2Njg7MTEwQiAxMTZCIDExQjM7QzY2ODsxMTBCIDExNkIgMTFCMzsKK0M2Njk7QzY2OTsxMTBCIDExNkIgMTFCNDtDNjY5OzExMEIgMTE2QiAxMUI0OworQzY2QTtDNjZBOzExMEIgMTE2QiAxMUI1O0M2NkE7MTEwQiAxMTZCIDExQjU7CitDNjZCO0M2NkI7MTEwQiAxMTZCIDExQjY7QzY2QjsxMTBCIDExNkIgMTFCNjsKK0M2NkM7QzY2QzsxMTBCIDExNkIgMTFCNztDNjZDOzExMEIgMTE2QiAxMUI3OworQzY2RDtDNjZEOzExMEIgMTE2QiAxMUI4O0M2NkQ7MTEwQiAxMTZCIDExQjg7CitDNjZFO0M2NkU7MTEwQiAxMTZCIDExQjk7QzY2RTsxMTBCIDExNkIgMTFCOTsKK0M2NkY7QzY2RjsxMTBCIDExNkIgMTFCQTtDNjZGOzExMEIgMTE2QiAxMUJBOworQzY3MDtDNjcwOzExMEIgMTE2QiAxMUJCO0M2NzA7MTEwQiAxMTZCIDExQkI7CitDNjcxO0M2NzE7MTEwQiAxMTZCIDExQkM7QzY3MTsxMTBCIDExNkIgMTFCQzsKK0M2NzI7QzY3MjsxMTBCIDExNkIgMTFCRDtDNjcyOzExMEIgMTE2QiAxMUJEOworQzY3MztDNjczOzExMEIgMTE2QiAxMUJFO0M2NzM7MTEwQiAxMTZCIDExQkU7CitDNjc0O0M2NzQ7MTEwQiAxMTZCIDExQkY7QzY3NDsxMTBCIDExNkIgMTFCRjsKK0M2NzU7QzY3NTsxMTBCIDExNkIgMTFDMDtDNjc1OzExMEIgMTE2QiAxMUMwOworQzY3NjtDNjc2OzExMEIgMTE2QiAxMUMxO0M2NzY7MTEwQiAxMTZCIDExQzE7CitDNjc3O0M2Nzc7MTEwQiAxMTZCIDExQzI7QzY3NzsxMTBCIDExNkIgMTFDMjsKK0M2Nzg7QzY3ODsxMTBCIDExNkM7QzY3ODsxMTBCIDExNkM7CitDNjc5O0M2Nzk7MTEwQiAxMTZDIDExQTg7QzY3OTsxMTBCIDExNkMgMTFBODsKK0M2N0E7QzY3QTsxMTBCIDExNkMgMTFBOTtDNjdBOzExMEIgMTE2QyAxMUE5OworQzY3QjtDNjdCOzExMEIgMTE2QyAxMUFBO0M2N0I7MTEwQiAxMTZDIDExQUE7CitDNjdDO0M2N0M7MTEwQiAxMTZDIDExQUI7QzY3QzsxMTBCIDExNkMgMTFBQjsKK0M2N0Q7QzY3RDsxMTBCIDExNkMgMTFBQztDNjdEOzExMEIgMTE2QyAxMUFDOworQzY3RTtDNjdFOzExMEIgMTE2QyAxMUFEO0M2N0U7MTEwQiAxMTZDIDExQUQ7CitDNjdGO0M2N0Y7MTEwQiAxMTZDIDExQUU7QzY3RjsxMTBCIDExNkMgMTFBRTsKK0M2ODA7QzY4MDsxMTBCIDExNkMgMTFBRjtDNjgwOzExMEIgMTE2QyAxMUFGOworQzY4MTtDNjgxOzExMEIgMTE2QyAxMUIwO0M2ODE7MTEwQiAxMTZDIDExQjA7CitDNjgyO0M2ODI7MTEwQiAxMTZDIDExQjE7QzY4MjsxMTBCIDExNkMgMTFCMTsKK0M2ODM7QzY4MzsxMTBCIDExNkMgMTFCMjtDNjgzOzExMEIgMTE2QyAxMUIyOworQzY4NDtDNjg0OzExMEIgMTE2QyAxMUIzO0M2ODQ7MTEwQiAxMTZDIDExQjM7CitDNjg1O0M2ODU7MTEwQiAxMTZDIDExQjQ7QzY4NTsxMTBCIDExNkMgMTFCNDsKK0M2ODY7QzY4NjsxMTBCIDExNkMgMTFCNTtDNjg2OzExMEIgMTE2QyAxMUI1OworQzY4NztDNjg3OzExMEIgMTE2QyAxMUI2O0M2ODc7MTEwQiAxMTZDIDExQjY7CitDNjg4O0M2ODg7MTEwQiAxMTZDIDExQjc7QzY4ODsxMTBCIDExNkMgMTFCNzsKK0M2ODk7QzY4OTsxMTBCIDExNkMgMTFCODtDNjg5OzExMEIgMTE2QyAxMUI4OworQzY4QTtDNjhBOzExMEIgMTE2QyAxMUI5O0M2OEE7MTEwQiAxMTZDIDExQjk7CitDNjhCO0M2OEI7MTEwQiAxMTZDIDExQkE7QzY4QjsxMTBCIDExNkMgMTFCQTsKK0M2OEM7QzY4QzsxMTBCIDExNkMgMTFCQjtDNjhDOzExMEIgMTE2QyAxMUJCOworQzY4RDtDNjhEOzExMEIgMTE2QyAxMUJDO0M2OEQ7MTEwQiAxMTZDIDExQkM7CitDNjhFO0M2OEU7MTEwQiAxMTZDIDExQkQ7QzY4RTsxMTBCIDExNkMgMTFCRDsKK0M2OEY7QzY4RjsxMTBCIDExNkMgMTFCRTtDNjhGOzExMEIgMTE2QyAxMUJFOworQzY5MDtDNjkwOzExMEIgMTE2QyAxMUJGO0M2OTA7MTEwQiAxMTZDIDExQkY7CitDNjkxO0M2OTE7MTEwQiAxMTZDIDExQzA7QzY5MTsxMTBCIDExNkMgMTFDMDsKK0M2OTI7QzY5MjsxMTBCIDExNkMgMTFDMTtDNjkyOzExMEIgMTE2QyAxMUMxOworQzY5MztDNjkzOzExMEIgMTE2QyAxMUMyO0M2OTM7MTEwQiAxMTZDIDExQzI7CitDNjk0O0M2OTQ7MTEwQiAxMTZEO0M2OTQ7MTEwQiAxMTZEOworQzY5NTtDNjk1OzExMEIgMTE2RCAxMUE4O0M2OTU7MTEwQiAxMTZEIDExQTg7CitDNjk2O0M2OTY7MTEwQiAxMTZEIDExQTk7QzY5NjsxMTBCIDExNkQgMTFBOTsKK0M2OTc7QzY5NzsxMTBCIDExNkQgMTFBQTtDNjk3OzExMEIgMTE2RCAxMUFBOworQzY5ODtDNjk4OzExMEIgMTE2RCAxMUFCO0M2OTg7MTEwQiAxMTZEIDExQUI7CitDNjk5O0M2OTk7MTEwQiAxMTZEIDExQUM7QzY5OTsxMTBCIDExNkQgMTFBQzsKK0M2OUE7QzY5QTsxMTBCIDExNkQgMTFBRDtDNjlBOzExMEIgMTE2RCAxMUFEOworQzY5QjtDNjlCOzExMEIgMTE2RCAxMUFFO0M2OUI7MTEwQiAxMTZEIDExQUU7CitDNjlDO0M2OUM7MTEwQiAxMTZEIDExQUY7QzY5QzsxMTBCIDExNkQgMTFBRjsKK0M2OUQ7QzY5RDsxMTBCIDExNkQgMTFCMDtDNjlEOzExMEIgMTE2RCAxMUIwOworQzY5RTtDNjlFOzExMEIgMTE2RCAxMUIxO0M2OUU7MTEwQiAxMTZEIDExQjE7CitDNjlGO0M2OUY7MTEwQiAxMTZEIDExQjI7QzY5RjsxMTBCIDExNkQgMTFCMjsKK0M2QTA7QzZBMDsxMTBCIDExNkQgMTFCMztDNkEwOzExMEIgMTE2RCAxMUIzOworQzZBMTtDNkExOzExMEIgMTE2RCAxMUI0O0M2QTE7MTEwQiAxMTZEIDExQjQ7CitDNkEyO0M2QTI7MTEwQiAxMTZEIDExQjU7QzZBMjsxMTBCIDExNkQgMTFCNTsKK0M2QTM7QzZBMzsxMTBCIDExNkQgMTFCNjtDNkEzOzExMEIgMTE2RCAxMUI2OworQzZBNDtDNkE0OzExMEIgMTE2RCAxMUI3O0M2QTQ7MTEwQiAxMTZEIDExQjc7CitDNkE1O0M2QTU7MTEwQiAxMTZEIDExQjg7QzZBNTsxMTBCIDExNkQgMTFCODsKK0M2QTY7QzZBNjsxMTBCIDExNkQgMTFCOTtDNkE2OzExMEIgMTE2RCAxMUI5OworQzZBNztDNkE3OzExMEIgMTE2RCAxMUJBO0M2QTc7MTEwQiAxMTZEIDExQkE7CitDNkE4O0M2QTg7MTEwQiAxMTZEIDExQkI7QzZBODsxMTBCIDExNkQgMTFCQjsKK0M2QTk7QzZBOTsxMTBCIDExNkQgMTFCQztDNkE5OzExMEIgMTE2RCAxMUJDOworQzZBQTtDNkFBOzExMEIgMTE2RCAxMUJEO0M2QUE7MTEwQiAxMTZEIDExQkQ7CitDNkFCO0M2QUI7MTEwQiAxMTZEIDExQkU7QzZBQjsxMTBCIDExNkQgMTFCRTsKK0M2QUM7QzZBQzsxMTBCIDExNkQgMTFCRjtDNkFDOzExMEIgMTE2RCAxMUJGOworQzZBRDtDNkFEOzExMEIgMTE2RCAxMUMwO0M2QUQ7MTEwQiAxMTZEIDExQzA7CitDNkFFO0M2QUU7MTEwQiAxMTZEIDExQzE7QzZBRTsxMTBCIDExNkQgMTFDMTsKK0M2QUY7QzZBRjsxMTBCIDExNkQgMTFDMjtDNkFGOzExMEIgMTE2RCAxMUMyOworQzZCMDtDNkIwOzExMEIgMTE2RTtDNkIwOzExMEIgMTE2RTsKK0M2QjE7QzZCMTsxMTBCIDExNkUgMTFBODtDNkIxOzExMEIgMTE2RSAxMUE4OworQzZCMjtDNkIyOzExMEIgMTE2RSAxMUE5O0M2QjI7MTEwQiAxMTZFIDExQTk7CitDNkIzO0M2QjM7MTEwQiAxMTZFIDExQUE7QzZCMzsxMTBCIDExNkUgMTFBQTsKK0M2QjQ7QzZCNDsxMTBCIDExNkUgMTFBQjtDNkI0OzExMEIgMTE2RSAxMUFCOworQzZCNTtDNkI1OzExMEIgMTE2RSAxMUFDO0M2QjU7MTEwQiAxMTZFIDExQUM7CitDNkI2O0M2QjY7MTEwQiAxMTZFIDExQUQ7QzZCNjsxMTBCIDExNkUgMTFBRDsKK0M2Qjc7QzZCNzsxMTBCIDExNkUgMTFBRTtDNkI3OzExMEIgMTE2RSAxMUFFOworQzZCODtDNkI4OzExMEIgMTE2RSAxMUFGO0M2Qjg7MTEwQiAxMTZFIDExQUY7CitDNkI5O0M2Qjk7MTEwQiAxMTZFIDExQjA7QzZCOTsxMTBCIDExNkUgMTFCMDsKK0M2QkE7QzZCQTsxMTBCIDExNkUgMTFCMTtDNkJBOzExMEIgMTE2RSAxMUIxOworQzZCQjtDNkJCOzExMEIgMTE2RSAxMUIyO0M2QkI7MTEwQiAxMTZFIDExQjI7CitDNkJDO0M2QkM7MTEwQiAxMTZFIDExQjM7QzZCQzsxMTBCIDExNkUgMTFCMzsKK0M2QkQ7QzZCRDsxMTBCIDExNkUgMTFCNDtDNkJEOzExMEIgMTE2RSAxMUI0OworQzZCRTtDNkJFOzExMEIgMTE2RSAxMUI1O0M2QkU7MTEwQiAxMTZFIDExQjU7CitDNkJGO0M2QkY7MTEwQiAxMTZFIDExQjY7QzZCRjsxMTBCIDExNkUgMTFCNjsKK0M2QzA7QzZDMDsxMTBCIDExNkUgMTFCNztDNkMwOzExMEIgMTE2RSAxMUI3OworQzZDMTtDNkMxOzExMEIgMTE2RSAxMUI4O0M2QzE7MTEwQiAxMTZFIDExQjg7CitDNkMyO0M2QzI7MTEwQiAxMTZFIDExQjk7QzZDMjsxMTBCIDExNkUgMTFCOTsKK0M2QzM7QzZDMzsxMTBCIDExNkUgMTFCQTtDNkMzOzExMEIgMTE2RSAxMUJBOworQzZDNDtDNkM0OzExMEIgMTE2RSAxMUJCO0M2QzQ7MTEwQiAxMTZFIDExQkI7CitDNkM1O0M2QzU7MTEwQiAxMTZFIDExQkM7QzZDNTsxMTBCIDExNkUgMTFCQzsKK0M2QzY7QzZDNjsxMTBCIDExNkUgMTFCRDtDNkM2OzExMEIgMTE2RSAxMUJEOworQzZDNztDNkM3OzExMEIgMTE2RSAxMUJFO0M2Qzc7MTEwQiAxMTZFIDExQkU7CitDNkM4O0M2Qzg7MTEwQiAxMTZFIDExQkY7QzZDODsxMTBCIDExNkUgMTFCRjsKK0M2Qzk7QzZDOTsxMTBCIDExNkUgMTFDMDtDNkM5OzExMEIgMTE2RSAxMUMwOworQzZDQTtDNkNBOzExMEIgMTE2RSAxMUMxO0M2Q0E7MTEwQiAxMTZFIDExQzE7CitDNkNCO0M2Q0I7MTEwQiAxMTZFIDExQzI7QzZDQjsxMTBCIDExNkUgMTFDMjsKK0M2Q0M7QzZDQzsxMTBCIDExNkY7QzZDQzsxMTBCIDExNkY7CitDNkNEO0M2Q0Q7MTEwQiAxMTZGIDExQTg7QzZDRDsxMTBCIDExNkYgMTFBODsKK0M2Q0U7QzZDRTsxMTBCIDExNkYgMTFBOTtDNkNFOzExMEIgMTE2RiAxMUE5OworQzZDRjtDNkNGOzExMEIgMTE2RiAxMUFBO0M2Q0Y7MTEwQiAxMTZGIDExQUE7CitDNkQwO0M2RDA7MTEwQiAxMTZGIDExQUI7QzZEMDsxMTBCIDExNkYgMTFBQjsKK0M2RDE7QzZEMTsxMTBCIDExNkYgMTFBQztDNkQxOzExMEIgMTE2RiAxMUFDOworQzZEMjtDNkQyOzExMEIgMTE2RiAxMUFEO0M2RDI7MTEwQiAxMTZGIDExQUQ7CitDNkQzO0M2RDM7MTEwQiAxMTZGIDExQUU7QzZEMzsxMTBCIDExNkYgMTFBRTsKK0M2RDQ7QzZENDsxMTBCIDExNkYgMTFBRjtDNkQ0OzExMEIgMTE2RiAxMUFGOworQzZENTtDNkQ1OzExMEIgMTE2RiAxMUIwO0M2RDU7MTEwQiAxMTZGIDExQjA7CitDNkQ2O0M2RDY7MTEwQiAxMTZGIDExQjE7QzZENjsxMTBCIDExNkYgMTFCMTsKK0M2RDc7QzZENzsxMTBCIDExNkYgMTFCMjtDNkQ3OzExMEIgMTE2RiAxMUIyOworQzZEODtDNkQ4OzExMEIgMTE2RiAxMUIzO0M2RDg7MTEwQiAxMTZGIDExQjM7CitDNkQ5O0M2RDk7MTEwQiAxMTZGIDExQjQ7QzZEOTsxMTBCIDExNkYgMTFCNDsKK0M2REE7QzZEQTsxMTBCIDExNkYgMTFCNTtDNkRBOzExMEIgMTE2RiAxMUI1OworQzZEQjtDNkRCOzExMEIgMTE2RiAxMUI2O0M2REI7MTEwQiAxMTZGIDExQjY7CitDNkRDO0M2REM7MTEwQiAxMTZGIDExQjc7QzZEQzsxMTBCIDExNkYgMTFCNzsKK0M2REQ7QzZERDsxMTBCIDExNkYgMTFCODtDNkREOzExMEIgMTE2RiAxMUI4OworQzZERTtDNkRFOzExMEIgMTE2RiAxMUI5O0M2REU7MTEwQiAxMTZGIDExQjk7CitDNkRGO0M2REY7MTEwQiAxMTZGIDExQkE7QzZERjsxMTBCIDExNkYgMTFCQTsKK0M2RTA7QzZFMDsxMTBCIDExNkYgMTFCQjtDNkUwOzExMEIgMTE2RiAxMUJCOworQzZFMTtDNkUxOzExMEIgMTE2RiAxMUJDO0M2RTE7MTEwQiAxMTZGIDExQkM7CitDNkUyO0M2RTI7MTEwQiAxMTZGIDExQkQ7QzZFMjsxMTBCIDExNkYgMTFCRDsKK0M2RTM7QzZFMzsxMTBCIDExNkYgMTFCRTtDNkUzOzExMEIgMTE2RiAxMUJFOworQzZFNDtDNkU0OzExMEIgMTE2RiAxMUJGO0M2RTQ7MTEwQiAxMTZGIDExQkY7CitDNkU1O0M2RTU7MTEwQiAxMTZGIDExQzA7QzZFNTsxMTBCIDExNkYgMTFDMDsKK0M2RTY7QzZFNjsxMTBCIDExNkYgMTFDMTtDNkU2OzExMEIgMTE2RiAxMUMxOworQzZFNztDNkU3OzExMEIgMTE2RiAxMUMyO0M2RTc7MTEwQiAxMTZGIDExQzI7CitDNkU4O0M2RTg7MTEwQiAxMTcwO0M2RTg7MTEwQiAxMTcwOworQzZFOTtDNkU5OzExMEIgMTE3MCAxMUE4O0M2RTk7MTEwQiAxMTcwIDExQTg7CitDNkVBO0M2RUE7MTEwQiAxMTcwIDExQTk7QzZFQTsxMTBCIDExNzAgMTFBOTsKK0M2RUI7QzZFQjsxMTBCIDExNzAgMTFBQTtDNkVCOzExMEIgMTE3MCAxMUFBOworQzZFQztDNkVDOzExMEIgMTE3MCAxMUFCO0M2RUM7MTEwQiAxMTcwIDExQUI7CitDNkVEO0M2RUQ7MTEwQiAxMTcwIDExQUM7QzZFRDsxMTBCIDExNzAgMTFBQzsKK0M2RUU7QzZFRTsxMTBCIDExNzAgMTFBRDtDNkVFOzExMEIgMTE3MCAxMUFEOworQzZFRjtDNkVGOzExMEIgMTE3MCAxMUFFO0M2RUY7MTEwQiAxMTcwIDExQUU7CitDNkYwO0M2RjA7MTEwQiAxMTcwIDExQUY7QzZGMDsxMTBCIDExNzAgMTFBRjsKK0M2RjE7QzZGMTsxMTBCIDExNzAgMTFCMDtDNkYxOzExMEIgMTE3MCAxMUIwOworQzZGMjtDNkYyOzExMEIgMTE3MCAxMUIxO0M2RjI7MTEwQiAxMTcwIDExQjE7CitDNkYzO0M2RjM7MTEwQiAxMTcwIDExQjI7QzZGMzsxMTBCIDExNzAgMTFCMjsKK0M2RjQ7QzZGNDsxMTBCIDExNzAgMTFCMztDNkY0OzExMEIgMTE3MCAxMUIzOworQzZGNTtDNkY1OzExMEIgMTE3MCAxMUI0O0M2RjU7MTEwQiAxMTcwIDExQjQ7CitDNkY2O0M2RjY7MTEwQiAxMTcwIDExQjU7QzZGNjsxMTBCIDExNzAgMTFCNTsKK0M2Rjc7QzZGNzsxMTBCIDExNzAgMTFCNjtDNkY3OzExMEIgMTE3MCAxMUI2OworQzZGODtDNkY4OzExMEIgMTE3MCAxMUI3O0M2Rjg7MTEwQiAxMTcwIDExQjc7CitDNkY5O0M2Rjk7MTEwQiAxMTcwIDExQjg7QzZGOTsxMTBCIDExNzAgMTFCODsKK0M2RkE7QzZGQTsxMTBCIDExNzAgMTFCOTtDNkZBOzExMEIgMTE3MCAxMUI5OworQzZGQjtDNkZCOzExMEIgMTE3MCAxMUJBO0M2RkI7MTEwQiAxMTcwIDExQkE7CitDNkZDO0M2RkM7MTEwQiAxMTcwIDExQkI7QzZGQzsxMTBCIDExNzAgMTFCQjsKK0M2RkQ7QzZGRDsxMTBCIDExNzAgMTFCQztDNkZEOzExMEIgMTE3MCAxMUJDOworQzZGRTtDNkZFOzExMEIgMTE3MCAxMUJEO0M2RkU7MTEwQiAxMTcwIDExQkQ7CitDNkZGO0M2RkY7MTEwQiAxMTcwIDExQkU7QzZGRjsxMTBCIDExNzAgMTFCRTsKK0M3MDA7QzcwMDsxMTBCIDExNzAgMTFCRjtDNzAwOzExMEIgMTE3MCAxMUJGOworQzcwMTtDNzAxOzExMEIgMTE3MCAxMUMwO0M3MDE7MTEwQiAxMTcwIDExQzA7CitDNzAyO0M3MDI7MTEwQiAxMTcwIDExQzE7QzcwMjsxMTBCIDExNzAgMTFDMTsKK0M3MDM7QzcwMzsxMTBCIDExNzAgMTFDMjtDNzAzOzExMEIgMTE3MCAxMUMyOworQzcwNDtDNzA0OzExMEIgMTE3MTtDNzA0OzExMEIgMTE3MTsKK0M3MDU7QzcwNTsxMTBCIDExNzEgMTFBODtDNzA1OzExMEIgMTE3MSAxMUE4OworQzcwNjtDNzA2OzExMEIgMTE3MSAxMUE5O0M3MDY7MTEwQiAxMTcxIDExQTk7CitDNzA3O0M3MDc7MTEwQiAxMTcxIDExQUE7QzcwNzsxMTBCIDExNzEgMTFBQTsKK0M3MDg7QzcwODsxMTBCIDExNzEgMTFBQjtDNzA4OzExMEIgMTE3MSAxMUFCOworQzcwOTtDNzA5OzExMEIgMTE3MSAxMUFDO0M3MDk7MTEwQiAxMTcxIDExQUM7CitDNzBBO0M3MEE7MTEwQiAxMTcxIDExQUQ7QzcwQTsxMTBCIDExNzEgMTFBRDsKK0M3MEI7QzcwQjsxMTBCIDExNzEgMTFBRTtDNzBCOzExMEIgMTE3MSAxMUFFOworQzcwQztDNzBDOzExMEIgMTE3MSAxMUFGO0M3MEM7MTEwQiAxMTcxIDExQUY7CitDNzBEO0M3MEQ7MTEwQiAxMTcxIDExQjA7QzcwRDsxMTBCIDExNzEgMTFCMDsKK0M3MEU7QzcwRTsxMTBCIDExNzEgMTFCMTtDNzBFOzExMEIgMTE3MSAxMUIxOworQzcwRjtDNzBGOzExMEIgMTE3MSAxMUIyO0M3MEY7MTEwQiAxMTcxIDExQjI7CitDNzEwO0M3MTA7MTEwQiAxMTcxIDExQjM7QzcxMDsxMTBCIDExNzEgMTFCMzsKK0M3MTE7QzcxMTsxMTBCIDExNzEgMTFCNDtDNzExOzExMEIgMTE3MSAxMUI0OworQzcxMjtDNzEyOzExMEIgMTE3MSAxMUI1O0M3MTI7MTEwQiAxMTcxIDExQjU7CitDNzEzO0M3MTM7MTEwQiAxMTcxIDExQjY7QzcxMzsxMTBCIDExNzEgMTFCNjsKK0M3MTQ7QzcxNDsxMTBCIDExNzEgMTFCNztDNzE0OzExMEIgMTE3MSAxMUI3OworQzcxNTtDNzE1OzExMEIgMTE3MSAxMUI4O0M3MTU7MTEwQiAxMTcxIDExQjg7CitDNzE2O0M3MTY7MTEwQiAxMTcxIDExQjk7QzcxNjsxMTBCIDExNzEgMTFCOTsKK0M3MTc7QzcxNzsxMTBCIDExNzEgMTFCQTtDNzE3OzExMEIgMTE3MSAxMUJBOworQzcxODtDNzE4OzExMEIgMTE3MSAxMUJCO0M3MTg7MTEwQiAxMTcxIDExQkI7CitDNzE5O0M3MTk7MTEwQiAxMTcxIDExQkM7QzcxOTsxMTBCIDExNzEgMTFCQzsKK0M3MUE7QzcxQTsxMTBCIDExNzEgMTFCRDtDNzFBOzExMEIgMTE3MSAxMUJEOworQzcxQjtDNzFCOzExMEIgMTE3MSAxMUJFO0M3MUI7MTEwQiAxMTcxIDExQkU7CitDNzFDO0M3MUM7MTEwQiAxMTcxIDExQkY7QzcxQzsxMTBCIDExNzEgMTFCRjsKK0M3MUQ7QzcxRDsxMTBCIDExNzEgMTFDMDtDNzFEOzExMEIgMTE3MSAxMUMwOworQzcxRTtDNzFFOzExMEIgMTE3MSAxMUMxO0M3MUU7MTEwQiAxMTcxIDExQzE7CitDNzFGO0M3MUY7MTEwQiAxMTcxIDExQzI7QzcxRjsxMTBCIDExNzEgMTFDMjsKK0M3MjA7QzcyMDsxMTBCIDExNzI7QzcyMDsxMTBCIDExNzI7CitDNzIxO0M3MjE7MTEwQiAxMTcyIDExQTg7QzcyMTsxMTBCIDExNzIgMTFBODsKK0M3MjI7QzcyMjsxMTBCIDExNzIgMTFBOTtDNzIyOzExMEIgMTE3MiAxMUE5OworQzcyMztDNzIzOzExMEIgMTE3MiAxMUFBO0M3MjM7MTEwQiAxMTcyIDExQUE7CitDNzI0O0M3MjQ7MTEwQiAxMTcyIDExQUI7QzcyNDsxMTBCIDExNzIgMTFBQjsKK0M3MjU7QzcyNTsxMTBCIDExNzIgMTFBQztDNzI1OzExMEIgMTE3MiAxMUFDOworQzcyNjtDNzI2OzExMEIgMTE3MiAxMUFEO0M3MjY7MTEwQiAxMTcyIDExQUQ7CitDNzI3O0M3Mjc7MTEwQiAxMTcyIDExQUU7QzcyNzsxMTBCIDExNzIgMTFBRTsKK0M3Mjg7QzcyODsxMTBCIDExNzIgMTFBRjtDNzI4OzExMEIgMTE3MiAxMUFGOworQzcyOTtDNzI5OzExMEIgMTE3MiAxMUIwO0M3Mjk7MTEwQiAxMTcyIDExQjA7CitDNzJBO0M3MkE7MTEwQiAxMTcyIDExQjE7QzcyQTsxMTBCIDExNzIgMTFCMTsKK0M3MkI7QzcyQjsxMTBCIDExNzIgMTFCMjtDNzJCOzExMEIgMTE3MiAxMUIyOworQzcyQztDNzJDOzExMEIgMTE3MiAxMUIzO0M3MkM7MTEwQiAxMTcyIDExQjM7CitDNzJEO0M3MkQ7MTEwQiAxMTcyIDExQjQ7QzcyRDsxMTBCIDExNzIgMTFCNDsKK0M3MkU7QzcyRTsxMTBCIDExNzIgMTFCNTtDNzJFOzExMEIgMTE3MiAxMUI1OworQzcyRjtDNzJGOzExMEIgMTE3MiAxMUI2O0M3MkY7MTEwQiAxMTcyIDExQjY7CitDNzMwO0M3MzA7MTEwQiAxMTcyIDExQjc7QzczMDsxMTBCIDExNzIgMTFCNzsKK0M3MzE7QzczMTsxMTBCIDExNzIgMTFCODtDNzMxOzExMEIgMTE3MiAxMUI4OworQzczMjtDNzMyOzExMEIgMTE3MiAxMUI5O0M3MzI7MTEwQiAxMTcyIDExQjk7CitDNzMzO0M3MzM7MTEwQiAxMTcyIDExQkE7QzczMzsxMTBCIDExNzIgMTFCQTsKK0M3MzQ7QzczNDsxMTBCIDExNzIgMTFCQjtDNzM0OzExMEIgMTE3MiAxMUJCOworQzczNTtDNzM1OzExMEIgMTE3MiAxMUJDO0M3MzU7MTEwQiAxMTcyIDExQkM7CitDNzM2O0M3MzY7MTEwQiAxMTcyIDExQkQ7QzczNjsxMTBCIDExNzIgMTFCRDsKK0M3Mzc7QzczNzsxMTBCIDExNzIgMTFCRTtDNzM3OzExMEIgMTE3MiAxMUJFOworQzczODtDNzM4OzExMEIgMTE3MiAxMUJGO0M3Mzg7MTEwQiAxMTcyIDExQkY7CitDNzM5O0M3Mzk7MTEwQiAxMTcyIDExQzA7QzczOTsxMTBCIDExNzIgMTFDMDsKK0M3M0E7QzczQTsxMTBCIDExNzIgMTFDMTtDNzNBOzExMEIgMTE3MiAxMUMxOworQzczQjtDNzNCOzExMEIgMTE3MiAxMUMyO0M3M0I7MTEwQiAxMTcyIDExQzI7CitDNzNDO0M3M0M7MTEwQiAxMTczO0M3M0M7MTEwQiAxMTczOworQzczRDtDNzNEOzExMEIgMTE3MyAxMUE4O0M3M0Q7MTEwQiAxMTczIDExQTg7CitDNzNFO0M3M0U7MTEwQiAxMTczIDExQTk7QzczRTsxMTBCIDExNzMgMTFBOTsKK0M3M0Y7QzczRjsxMTBCIDExNzMgMTFBQTtDNzNGOzExMEIgMTE3MyAxMUFBOworQzc0MDtDNzQwOzExMEIgMTE3MyAxMUFCO0M3NDA7MTEwQiAxMTczIDExQUI7CitDNzQxO0M3NDE7MTEwQiAxMTczIDExQUM7Qzc0MTsxMTBCIDExNzMgMTFBQzsKK0M3NDI7Qzc0MjsxMTBCIDExNzMgMTFBRDtDNzQyOzExMEIgMTE3MyAxMUFEOworQzc0MztDNzQzOzExMEIgMTE3MyAxMUFFO0M3NDM7MTEwQiAxMTczIDExQUU7CitDNzQ0O0M3NDQ7MTEwQiAxMTczIDExQUY7Qzc0NDsxMTBCIDExNzMgMTFBRjsKK0M3NDU7Qzc0NTsxMTBCIDExNzMgMTFCMDtDNzQ1OzExMEIgMTE3MyAxMUIwOworQzc0NjtDNzQ2OzExMEIgMTE3MyAxMUIxO0M3NDY7MTEwQiAxMTczIDExQjE7CitDNzQ3O0M3NDc7MTEwQiAxMTczIDExQjI7Qzc0NzsxMTBCIDExNzMgMTFCMjsKK0M3NDg7Qzc0ODsxMTBCIDExNzMgMTFCMztDNzQ4OzExMEIgMTE3MyAxMUIzOworQzc0OTtDNzQ5OzExMEIgMTE3MyAxMUI0O0M3NDk7MTEwQiAxMTczIDExQjQ7CitDNzRBO0M3NEE7MTEwQiAxMTczIDExQjU7Qzc0QTsxMTBCIDExNzMgMTFCNTsKK0M3NEI7Qzc0QjsxMTBCIDExNzMgMTFCNjtDNzRCOzExMEIgMTE3MyAxMUI2OworQzc0QztDNzRDOzExMEIgMTE3MyAxMUI3O0M3NEM7MTEwQiAxMTczIDExQjc7CitDNzREO0M3NEQ7MTEwQiAxMTczIDExQjg7Qzc0RDsxMTBCIDExNzMgMTFCODsKK0M3NEU7Qzc0RTsxMTBCIDExNzMgMTFCOTtDNzRFOzExMEIgMTE3MyAxMUI5OworQzc0RjtDNzRGOzExMEIgMTE3MyAxMUJBO0M3NEY7MTEwQiAxMTczIDExQkE7CitDNzUwO0M3NTA7MTEwQiAxMTczIDExQkI7Qzc1MDsxMTBCIDExNzMgMTFCQjsKK0M3NTE7Qzc1MTsxMTBCIDExNzMgMTFCQztDNzUxOzExMEIgMTE3MyAxMUJDOworQzc1MjtDNzUyOzExMEIgMTE3MyAxMUJEO0M3NTI7MTEwQiAxMTczIDExQkQ7CitDNzUzO0M3NTM7MTEwQiAxMTczIDExQkU7Qzc1MzsxMTBCIDExNzMgMTFCRTsKK0M3NTQ7Qzc1NDsxMTBCIDExNzMgMTFCRjtDNzU0OzExMEIgMTE3MyAxMUJGOworQzc1NTtDNzU1OzExMEIgMTE3MyAxMUMwO0M3NTU7MTEwQiAxMTczIDExQzA7CitDNzU2O0M3NTY7MTEwQiAxMTczIDExQzE7Qzc1NjsxMTBCIDExNzMgMTFDMTsKK0M3NTc7Qzc1NzsxMTBCIDExNzMgMTFDMjtDNzU3OzExMEIgMTE3MyAxMUMyOworQzc1ODtDNzU4OzExMEIgMTE3NDtDNzU4OzExMEIgMTE3NDsKK0M3NTk7Qzc1OTsxMTBCIDExNzQgMTFBODtDNzU5OzExMEIgMTE3NCAxMUE4OworQzc1QTtDNzVBOzExMEIgMTE3NCAxMUE5O0M3NUE7MTEwQiAxMTc0IDExQTk7CitDNzVCO0M3NUI7MTEwQiAxMTc0IDExQUE7Qzc1QjsxMTBCIDExNzQgMTFBQTsKK0M3NUM7Qzc1QzsxMTBCIDExNzQgMTFBQjtDNzVDOzExMEIgMTE3NCAxMUFCOworQzc1RDtDNzVEOzExMEIgMTE3NCAxMUFDO0M3NUQ7MTEwQiAxMTc0IDExQUM7CitDNzVFO0M3NUU7MTEwQiAxMTc0IDExQUQ7Qzc1RTsxMTBCIDExNzQgMTFBRDsKK0M3NUY7Qzc1RjsxMTBCIDExNzQgMTFBRTtDNzVGOzExMEIgMTE3NCAxMUFFOworQzc2MDtDNzYwOzExMEIgMTE3NCAxMUFGO0M3NjA7MTEwQiAxMTc0IDExQUY7CitDNzYxO0M3NjE7MTEwQiAxMTc0IDExQjA7Qzc2MTsxMTBCIDExNzQgMTFCMDsKK0M3NjI7Qzc2MjsxMTBCIDExNzQgMTFCMTtDNzYyOzExMEIgMTE3NCAxMUIxOworQzc2MztDNzYzOzExMEIgMTE3NCAxMUIyO0M3NjM7MTEwQiAxMTc0IDExQjI7CitDNzY0O0M3NjQ7MTEwQiAxMTc0IDExQjM7Qzc2NDsxMTBCIDExNzQgMTFCMzsKK0M3NjU7Qzc2NTsxMTBCIDExNzQgMTFCNDtDNzY1OzExMEIgMTE3NCAxMUI0OworQzc2NjtDNzY2OzExMEIgMTE3NCAxMUI1O0M3NjY7MTEwQiAxMTc0IDExQjU7CitDNzY3O0M3Njc7MTEwQiAxMTc0IDExQjY7Qzc2NzsxMTBCIDExNzQgMTFCNjsKK0M3Njg7Qzc2ODsxMTBCIDExNzQgMTFCNztDNzY4OzExMEIgMTE3NCAxMUI3OworQzc2OTtDNzY5OzExMEIgMTE3NCAxMUI4O0M3Njk7MTEwQiAxMTc0IDExQjg7CitDNzZBO0M3NkE7MTEwQiAxMTc0IDExQjk7Qzc2QTsxMTBCIDExNzQgMTFCOTsKK0M3NkI7Qzc2QjsxMTBCIDExNzQgMTFCQTtDNzZCOzExMEIgMTE3NCAxMUJBOworQzc2QztDNzZDOzExMEIgMTE3NCAxMUJCO0M3NkM7MTEwQiAxMTc0IDExQkI7CitDNzZEO0M3NkQ7MTEwQiAxMTc0IDExQkM7Qzc2RDsxMTBCIDExNzQgMTFCQzsKK0M3NkU7Qzc2RTsxMTBCIDExNzQgMTFCRDtDNzZFOzExMEIgMTE3NCAxMUJEOworQzc2RjtDNzZGOzExMEIgMTE3NCAxMUJFO0M3NkY7MTEwQiAxMTc0IDExQkU7CitDNzcwO0M3NzA7MTEwQiAxMTc0IDExQkY7Qzc3MDsxMTBCIDExNzQgMTFCRjsKK0M3NzE7Qzc3MTsxMTBCIDExNzQgMTFDMDtDNzcxOzExMEIgMTE3NCAxMUMwOworQzc3MjtDNzcyOzExMEIgMTE3NCAxMUMxO0M3NzI7MTEwQiAxMTc0IDExQzE7CitDNzczO0M3NzM7MTEwQiAxMTc0IDExQzI7Qzc3MzsxMTBCIDExNzQgMTFDMjsKK0M3NzQ7Qzc3NDsxMTBCIDExNzU7Qzc3NDsxMTBCIDExNzU7CitDNzc1O0M3NzU7MTEwQiAxMTc1IDExQTg7Qzc3NTsxMTBCIDExNzUgMTFBODsKK0M3NzY7Qzc3NjsxMTBCIDExNzUgMTFBOTtDNzc2OzExMEIgMTE3NSAxMUE5OworQzc3NztDNzc3OzExMEIgMTE3NSAxMUFBO0M3Nzc7MTEwQiAxMTc1IDExQUE7CitDNzc4O0M3Nzg7MTEwQiAxMTc1IDExQUI7Qzc3ODsxMTBCIDExNzUgMTFBQjsKK0M3Nzk7Qzc3OTsxMTBCIDExNzUgMTFBQztDNzc5OzExMEIgMTE3NSAxMUFDOworQzc3QTtDNzdBOzExMEIgMTE3NSAxMUFEO0M3N0E7MTEwQiAxMTc1IDExQUQ7CitDNzdCO0M3N0I7MTEwQiAxMTc1IDExQUU7Qzc3QjsxMTBCIDExNzUgMTFBRTsKK0M3N0M7Qzc3QzsxMTBCIDExNzUgMTFBRjtDNzdDOzExMEIgMTE3NSAxMUFGOworQzc3RDtDNzdEOzExMEIgMTE3NSAxMUIwO0M3N0Q7MTEwQiAxMTc1IDExQjA7CitDNzdFO0M3N0U7MTEwQiAxMTc1IDExQjE7Qzc3RTsxMTBCIDExNzUgMTFCMTsKK0M3N0Y7Qzc3RjsxMTBCIDExNzUgMTFCMjtDNzdGOzExMEIgMTE3NSAxMUIyOworQzc4MDtDNzgwOzExMEIgMTE3NSAxMUIzO0M3ODA7MTEwQiAxMTc1IDExQjM7CitDNzgxO0M3ODE7MTEwQiAxMTc1IDExQjQ7Qzc4MTsxMTBCIDExNzUgMTFCNDsKK0M3ODI7Qzc4MjsxMTBCIDExNzUgMTFCNTtDNzgyOzExMEIgMTE3NSAxMUI1OworQzc4MztDNzgzOzExMEIgMTE3NSAxMUI2O0M3ODM7MTEwQiAxMTc1IDExQjY7CitDNzg0O0M3ODQ7MTEwQiAxMTc1IDExQjc7Qzc4NDsxMTBCIDExNzUgMTFCNzsKK0M3ODU7Qzc4NTsxMTBCIDExNzUgMTFCODtDNzg1OzExMEIgMTE3NSAxMUI4OworQzc4NjtDNzg2OzExMEIgMTE3NSAxMUI5O0M3ODY7MTEwQiAxMTc1IDExQjk7CitDNzg3O0M3ODc7MTEwQiAxMTc1IDExQkE7Qzc4NzsxMTBCIDExNzUgMTFCQTsKK0M3ODg7Qzc4ODsxMTBCIDExNzUgMTFCQjtDNzg4OzExMEIgMTE3NSAxMUJCOworQzc4OTtDNzg5OzExMEIgMTE3NSAxMUJDO0M3ODk7MTEwQiAxMTc1IDExQkM7CitDNzhBO0M3OEE7MTEwQiAxMTc1IDExQkQ7Qzc4QTsxMTBCIDExNzUgMTFCRDsKK0M3OEI7Qzc4QjsxMTBCIDExNzUgMTFCRTtDNzhCOzExMEIgMTE3NSAxMUJFOworQzc4QztDNzhDOzExMEIgMTE3NSAxMUJGO0M3OEM7MTEwQiAxMTc1IDExQkY7CitDNzhEO0M3OEQ7MTEwQiAxMTc1IDExQzA7Qzc4RDsxMTBCIDExNzUgMTFDMDsKK0M3OEU7Qzc4RTsxMTBCIDExNzUgMTFDMTtDNzhFOzExMEIgMTE3NSAxMUMxOworQzc4RjtDNzhGOzExMEIgMTE3NSAxMUMyO0M3OEY7MTEwQiAxMTc1IDExQzI7CitDNzkwO0M3OTA7MTEwQyAxMTYxO0M3OTA7MTEwQyAxMTYxOworQzc5MTtDNzkxOzExMEMgMTE2MSAxMUE4O0M3OTE7MTEwQyAxMTYxIDExQTg7CitDNzkyO0M3OTI7MTEwQyAxMTYxIDExQTk7Qzc5MjsxMTBDIDExNjEgMTFBOTsKK0M3OTM7Qzc5MzsxMTBDIDExNjEgMTFBQTtDNzkzOzExMEMgMTE2MSAxMUFBOworQzc5NDtDNzk0OzExMEMgMTE2MSAxMUFCO0M3OTQ7MTEwQyAxMTYxIDExQUI7CitDNzk1O0M3OTU7MTEwQyAxMTYxIDExQUM7Qzc5NTsxMTBDIDExNjEgMTFBQzsKK0M3OTY7Qzc5NjsxMTBDIDExNjEgMTFBRDtDNzk2OzExMEMgMTE2MSAxMUFEOworQzc5NztDNzk3OzExMEMgMTE2MSAxMUFFO0M3OTc7MTEwQyAxMTYxIDExQUU7CitDNzk4O0M3OTg7MTEwQyAxMTYxIDExQUY7Qzc5ODsxMTBDIDExNjEgMTFBRjsKK0M3OTk7Qzc5OTsxMTBDIDExNjEgMTFCMDtDNzk5OzExMEMgMTE2MSAxMUIwOworQzc5QTtDNzlBOzExMEMgMTE2MSAxMUIxO0M3OUE7MTEwQyAxMTYxIDExQjE7CitDNzlCO0M3OUI7MTEwQyAxMTYxIDExQjI7Qzc5QjsxMTBDIDExNjEgMTFCMjsKK0M3OUM7Qzc5QzsxMTBDIDExNjEgMTFCMztDNzlDOzExMEMgMTE2MSAxMUIzOworQzc5RDtDNzlEOzExMEMgMTE2MSAxMUI0O0M3OUQ7MTEwQyAxMTYxIDExQjQ7CitDNzlFO0M3OUU7MTEwQyAxMTYxIDExQjU7Qzc5RTsxMTBDIDExNjEgMTFCNTsKK0M3OUY7Qzc5RjsxMTBDIDExNjEgMTFCNjtDNzlGOzExMEMgMTE2MSAxMUI2OworQzdBMDtDN0EwOzExMEMgMTE2MSAxMUI3O0M3QTA7MTEwQyAxMTYxIDExQjc7CitDN0ExO0M3QTE7MTEwQyAxMTYxIDExQjg7QzdBMTsxMTBDIDExNjEgMTFCODsKK0M3QTI7QzdBMjsxMTBDIDExNjEgMTFCOTtDN0EyOzExMEMgMTE2MSAxMUI5OworQzdBMztDN0EzOzExMEMgMTE2MSAxMUJBO0M3QTM7MTEwQyAxMTYxIDExQkE7CitDN0E0O0M3QTQ7MTEwQyAxMTYxIDExQkI7QzdBNDsxMTBDIDExNjEgMTFCQjsKK0M3QTU7QzdBNTsxMTBDIDExNjEgMTFCQztDN0E1OzExMEMgMTE2MSAxMUJDOworQzdBNjtDN0E2OzExMEMgMTE2MSAxMUJEO0M3QTY7MTEwQyAxMTYxIDExQkQ7CitDN0E3O0M3QTc7MTEwQyAxMTYxIDExQkU7QzdBNzsxMTBDIDExNjEgMTFCRTsKK0M3QTg7QzdBODsxMTBDIDExNjEgMTFCRjtDN0E4OzExMEMgMTE2MSAxMUJGOworQzdBOTtDN0E5OzExMEMgMTE2MSAxMUMwO0M3QTk7MTEwQyAxMTYxIDExQzA7CitDN0FBO0M3QUE7MTEwQyAxMTYxIDExQzE7QzdBQTsxMTBDIDExNjEgMTFDMTsKK0M3QUI7QzdBQjsxMTBDIDExNjEgMTFDMjtDN0FCOzExMEMgMTE2MSAxMUMyOworQzdBQztDN0FDOzExMEMgMTE2MjtDN0FDOzExMEMgMTE2MjsKK0M3QUQ7QzdBRDsxMTBDIDExNjIgMTFBODtDN0FEOzExMEMgMTE2MiAxMUE4OworQzdBRTtDN0FFOzExMEMgMTE2MiAxMUE5O0M3QUU7MTEwQyAxMTYyIDExQTk7CitDN0FGO0M3QUY7MTEwQyAxMTYyIDExQUE7QzdBRjsxMTBDIDExNjIgMTFBQTsKK0M3QjA7QzdCMDsxMTBDIDExNjIgMTFBQjtDN0IwOzExMEMgMTE2MiAxMUFCOworQzdCMTtDN0IxOzExMEMgMTE2MiAxMUFDO0M3QjE7MTEwQyAxMTYyIDExQUM7CitDN0IyO0M3QjI7MTEwQyAxMTYyIDExQUQ7QzdCMjsxMTBDIDExNjIgMTFBRDsKK0M3QjM7QzdCMzsxMTBDIDExNjIgMTFBRTtDN0IzOzExMEMgMTE2MiAxMUFFOworQzdCNDtDN0I0OzExMEMgMTE2MiAxMUFGO0M3QjQ7MTEwQyAxMTYyIDExQUY7CitDN0I1O0M3QjU7MTEwQyAxMTYyIDExQjA7QzdCNTsxMTBDIDExNjIgMTFCMDsKK0M3QjY7QzdCNjsxMTBDIDExNjIgMTFCMTtDN0I2OzExMEMgMTE2MiAxMUIxOworQzdCNztDN0I3OzExMEMgMTE2MiAxMUIyO0M3Qjc7MTEwQyAxMTYyIDExQjI7CitDN0I4O0M3Qjg7MTEwQyAxMTYyIDExQjM7QzdCODsxMTBDIDExNjIgMTFCMzsKK0M3Qjk7QzdCOTsxMTBDIDExNjIgMTFCNDtDN0I5OzExMEMgMTE2MiAxMUI0OworQzdCQTtDN0JBOzExMEMgMTE2MiAxMUI1O0M3QkE7MTEwQyAxMTYyIDExQjU7CitDN0JCO0M3QkI7MTEwQyAxMTYyIDExQjY7QzdCQjsxMTBDIDExNjIgMTFCNjsKK0M3QkM7QzdCQzsxMTBDIDExNjIgMTFCNztDN0JDOzExMEMgMTE2MiAxMUI3OworQzdCRDtDN0JEOzExMEMgMTE2MiAxMUI4O0M3QkQ7MTEwQyAxMTYyIDExQjg7CitDN0JFO0M3QkU7MTEwQyAxMTYyIDExQjk7QzdCRTsxMTBDIDExNjIgMTFCOTsKK0M3QkY7QzdCRjsxMTBDIDExNjIgMTFCQTtDN0JGOzExMEMgMTE2MiAxMUJBOworQzdDMDtDN0MwOzExMEMgMTE2MiAxMUJCO0M3QzA7MTEwQyAxMTYyIDExQkI7CitDN0MxO0M3QzE7MTEwQyAxMTYyIDExQkM7QzdDMTsxMTBDIDExNjIgMTFCQzsKK0M3QzI7QzdDMjsxMTBDIDExNjIgMTFCRDtDN0MyOzExMEMgMTE2MiAxMUJEOworQzdDMztDN0MzOzExMEMgMTE2MiAxMUJFO0M3QzM7MTEwQyAxMTYyIDExQkU7CitDN0M0O0M3QzQ7MTEwQyAxMTYyIDExQkY7QzdDNDsxMTBDIDExNjIgMTFCRjsKK0M3QzU7QzdDNTsxMTBDIDExNjIgMTFDMDtDN0M1OzExMEMgMTE2MiAxMUMwOworQzdDNjtDN0M2OzExMEMgMTE2MiAxMUMxO0M3QzY7MTEwQyAxMTYyIDExQzE7CitDN0M3O0M3Qzc7MTEwQyAxMTYyIDExQzI7QzdDNzsxMTBDIDExNjIgMTFDMjsKK0M3Qzg7QzdDODsxMTBDIDExNjM7QzdDODsxMTBDIDExNjM7CitDN0M5O0M3Qzk7MTEwQyAxMTYzIDExQTg7QzdDOTsxMTBDIDExNjMgMTFBODsKK0M3Q0E7QzdDQTsxMTBDIDExNjMgMTFBOTtDN0NBOzExMEMgMTE2MyAxMUE5OworQzdDQjtDN0NCOzExMEMgMTE2MyAxMUFBO0M3Q0I7MTEwQyAxMTYzIDExQUE7CitDN0NDO0M3Q0M7MTEwQyAxMTYzIDExQUI7QzdDQzsxMTBDIDExNjMgMTFBQjsKK0M3Q0Q7QzdDRDsxMTBDIDExNjMgMTFBQztDN0NEOzExMEMgMTE2MyAxMUFDOworQzdDRTtDN0NFOzExMEMgMTE2MyAxMUFEO0M3Q0U7MTEwQyAxMTYzIDExQUQ7CitDN0NGO0M3Q0Y7MTEwQyAxMTYzIDExQUU7QzdDRjsxMTBDIDExNjMgMTFBRTsKK0M3RDA7QzdEMDsxMTBDIDExNjMgMTFBRjtDN0QwOzExMEMgMTE2MyAxMUFGOworQzdEMTtDN0QxOzExMEMgMTE2MyAxMUIwO0M3RDE7MTEwQyAxMTYzIDExQjA7CitDN0QyO0M3RDI7MTEwQyAxMTYzIDExQjE7QzdEMjsxMTBDIDExNjMgMTFCMTsKK0M3RDM7QzdEMzsxMTBDIDExNjMgMTFCMjtDN0QzOzExMEMgMTE2MyAxMUIyOworQzdENDtDN0Q0OzExMEMgMTE2MyAxMUIzO0M3RDQ7MTEwQyAxMTYzIDExQjM7CitDN0Q1O0M3RDU7MTEwQyAxMTYzIDExQjQ7QzdENTsxMTBDIDExNjMgMTFCNDsKK0M3RDY7QzdENjsxMTBDIDExNjMgMTFCNTtDN0Q2OzExMEMgMTE2MyAxMUI1OworQzdENztDN0Q3OzExMEMgMTE2MyAxMUI2O0M3RDc7MTEwQyAxMTYzIDExQjY7CitDN0Q4O0M3RDg7MTEwQyAxMTYzIDExQjc7QzdEODsxMTBDIDExNjMgMTFCNzsKK0M3RDk7QzdEOTsxMTBDIDExNjMgMTFCODtDN0Q5OzExMEMgMTE2MyAxMUI4OworQzdEQTtDN0RBOzExMEMgMTE2MyAxMUI5O0M3REE7MTEwQyAxMTYzIDExQjk7CitDN0RCO0M3REI7MTEwQyAxMTYzIDExQkE7QzdEQjsxMTBDIDExNjMgMTFCQTsKK0M3REM7QzdEQzsxMTBDIDExNjMgMTFCQjtDN0RDOzExMEMgMTE2MyAxMUJCOworQzdERDtDN0REOzExMEMgMTE2MyAxMUJDO0M3REQ7MTEwQyAxMTYzIDExQkM7CitDN0RFO0M3REU7MTEwQyAxMTYzIDExQkQ7QzdERTsxMTBDIDExNjMgMTFCRDsKK0M3REY7QzdERjsxMTBDIDExNjMgMTFCRTtDN0RGOzExMEMgMTE2MyAxMUJFOworQzdFMDtDN0UwOzExMEMgMTE2MyAxMUJGO0M3RTA7MTEwQyAxMTYzIDExQkY7CitDN0UxO0M3RTE7MTEwQyAxMTYzIDExQzA7QzdFMTsxMTBDIDExNjMgMTFDMDsKK0M3RTI7QzdFMjsxMTBDIDExNjMgMTFDMTtDN0UyOzExMEMgMTE2MyAxMUMxOworQzdFMztDN0UzOzExMEMgMTE2MyAxMUMyO0M3RTM7MTEwQyAxMTYzIDExQzI7CitDN0U0O0M3RTQ7MTEwQyAxMTY0O0M3RTQ7MTEwQyAxMTY0OworQzdFNTtDN0U1OzExMEMgMTE2NCAxMUE4O0M3RTU7MTEwQyAxMTY0IDExQTg7CitDN0U2O0M3RTY7MTEwQyAxMTY0IDExQTk7QzdFNjsxMTBDIDExNjQgMTFBOTsKK0M3RTc7QzdFNzsxMTBDIDExNjQgMTFBQTtDN0U3OzExMEMgMTE2NCAxMUFBOworQzdFODtDN0U4OzExMEMgMTE2NCAxMUFCO0M3RTg7MTEwQyAxMTY0IDExQUI7CitDN0U5O0M3RTk7MTEwQyAxMTY0IDExQUM7QzdFOTsxMTBDIDExNjQgMTFBQzsKK0M3RUE7QzdFQTsxMTBDIDExNjQgMTFBRDtDN0VBOzExMEMgMTE2NCAxMUFEOworQzdFQjtDN0VCOzExMEMgMTE2NCAxMUFFO0M3RUI7MTEwQyAxMTY0IDExQUU7CitDN0VDO0M3RUM7MTEwQyAxMTY0IDExQUY7QzdFQzsxMTBDIDExNjQgMTFBRjsKK0M3RUQ7QzdFRDsxMTBDIDExNjQgMTFCMDtDN0VEOzExMEMgMTE2NCAxMUIwOworQzdFRTtDN0VFOzExMEMgMTE2NCAxMUIxO0M3RUU7MTEwQyAxMTY0IDExQjE7CitDN0VGO0M3RUY7MTEwQyAxMTY0IDExQjI7QzdFRjsxMTBDIDExNjQgMTFCMjsKK0M3RjA7QzdGMDsxMTBDIDExNjQgMTFCMztDN0YwOzExMEMgMTE2NCAxMUIzOworQzdGMTtDN0YxOzExMEMgMTE2NCAxMUI0O0M3RjE7MTEwQyAxMTY0IDExQjQ7CitDN0YyO0M3RjI7MTEwQyAxMTY0IDExQjU7QzdGMjsxMTBDIDExNjQgMTFCNTsKK0M3RjM7QzdGMzsxMTBDIDExNjQgMTFCNjtDN0YzOzExMEMgMTE2NCAxMUI2OworQzdGNDtDN0Y0OzExMEMgMTE2NCAxMUI3O0M3RjQ7MTEwQyAxMTY0IDExQjc7CitDN0Y1O0M3RjU7MTEwQyAxMTY0IDExQjg7QzdGNTsxMTBDIDExNjQgMTFCODsKK0M3RjY7QzdGNjsxMTBDIDExNjQgMTFCOTtDN0Y2OzExMEMgMTE2NCAxMUI5OworQzdGNztDN0Y3OzExMEMgMTE2NCAxMUJBO0M3Rjc7MTEwQyAxMTY0IDExQkE7CitDN0Y4O0M3Rjg7MTEwQyAxMTY0IDExQkI7QzdGODsxMTBDIDExNjQgMTFCQjsKK0M3Rjk7QzdGOTsxMTBDIDExNjQgMTFCQztDN0Y5OzExMEMgMTE2NCAxMUJDOworQzdGQTtDN0ZBOzExMEMgMTE2NCAxMUJEO0M3RkE7MTEwQyAxMTY0IDExQkQ7CitDN0ZCO0M3RkI7MTEwQyAxMTY0IDExQkU7QzdGQjsxMTBDIDExNjQgMTFCRTsKK0M3RkM7QzdGQzsxMTBDIDExNjQgMTFCRjtDN0ZDOzExMEMgMTE2NCAxMUJGOworQzdGRDtDN0ZEOzExMEMgMTE2NCAxMUMwO0M3RkQ7MTEwQyAxMTY0IDExQzA7CitDN0ZFO0M3RkU7MTEwQyAxMTY0IDExQzE7QzdGRTsxMTBDIDExNjQgMTFDMTsKK0M3RkY7QzdGRjsxMTBDIDExNjQgMTFDMjtDN0ZGOzExMEMgMTE2NCAxMUMyOworQzgwMDtDODAwOzExMEMgMTE2NTtDODAwOzExMEMgMTE2NTsKK0M4MDE7QzgwMTsxMTBDIDExNjUgMTFBODtDODAxOzExMEMgMTE2NSAxMUE4OworQzgwMjtDODAyOzExMEMgMTE2NSAxMUE5O0M4MDI7MTEwQyAxMTY1IDExQTk7CitDODAzO0M4MDM7MTEwQyAxMTY1IDExQUE7QzgwMzsxMTBDIDExNjUgMTFBQTsKK0M4MDQ7QzgwNDsxMTBDIDExNjUgMTFBQjtDODA0OzExMEMgMTE2NSAxMUFCOworQzgwNTtDODA1OzExMEMgMTE2NSAxMUFDO0M4MDU7MTEwQyAxMTY1IDExQUM7CitDODA2O0M4MDY7MTEwQyAxMTY1IDExQUQ7QzgwNjsxMTBDIDExNjUgMTFBRDsKK0M4MDc7QzgwNzsxMTBDIDExNjUgMTFBRTtDODA3OzExMEMgMTE2NSAxMUFFOworQzgwODtDODA4OzExMEMgMTE2NSAxMUFGO0M4MDg7MTEwQyAxMTY1IDExQUY7CitDODA5O0M4MDk7MTEwQyAxMTY1IDExQjA7QzgwOTsxMTBDIDExNjUgMTFCMDsKK0M4MEE7QzgwQTsxMTBDIDExNjUgMTFCMTtDODBBOzExMEMgMTE2NSAxMUIxOworQzgwQjtDODBCOzExMEMgMTE2NSAxMUIyO0M4MEI7MTEwQyAxMTY1IDExQjI7CitDODBDO0M4MEM7MTEwQyAxMTY1IDExQjM7QzgwQzsxMTBDIDExNjUgMTFCMzsKK0M4MEQ7QzgwRDsxMTBDIDExNjUgMTFCNDtDODBEOzExMEMgMTE2NSAxMUI0OworQzgwRTtDODBFOzExMEMgMTE2NSAxMUI1O0M4MEU7MTEwQyAxMTY1IDExQjU7CitDODBGO0M4MEY7MTEwQyAxMTY1IDExQjY7QzgwRjsxMTBDIDExNjUgMTFCNjsKK0M4MTA7QzgxMDsxMTBDIDExNjUgMTFCNztDODEwOzExMEMgMTE2NSAxMUI3OworQzgxMTtDODExOzExMEMgMTE2NSAxMUI4O0M4MTE7MTEwQyAxMTY1IDExQjg7CitDODEyO0M4MTI7MTEwQyAxMTY1IDExQjk7QzgxMjsxMTBDIDExNjUgMTFCOTsKK0M4MTM7QzgxMzsxMTBDIDExNjUgMTFCQTtDODEzOzExMEMgMTE2NSAxMUJBOworQzgxNDtDODE0OzExMEMgMTE2NSAxMUJCO0M4MTQ7MTEwQyAxMTY1IDExQkI7CitDODE1O0M4MTU7MTEwQyAxMTY1IDExQkM7QzgxNTsxMTBDIDExNjUgMTFCQzsKK0M4MTY7QzgxNjsxMTBDIDExNjUgMTFCRDtDODE2OzExMEMgMTE2NSAxMUJEOworQzgxNztDODE3OzExMEMgMTE2NSAxMUJFO0M4MTc7MTEwQyAxMTY1IDExQkU7CitDODE4O0M4MTg7MTEwQyAxMTY1IDExQkY7QzgxODsxMTBDIDExNjUgMTFCRjsKK0M4MTk7QzgxOTsxMTBDIDExNjUgMTFDMDtDODE5OzExMEMgMTE2NSAxMUMwOworQzgxQTtDODFBOzExMEMgMTE2NSAxMUMxO0M4MUE7MTEwQyAxMTY1IDExQzE7CitDODFCO0M4MUI7MTEwQyAxMTY1IDExQzI7QzgxQjsxMTBDIDExNjUgMTFDMjsKK0M4MUM7QzgxQzsxMTBDIDExNjY7QzgxQzsxMTBDIDExNjY7CitDODFEO0M4MUQ7MTEwQyAxMTY2IDExQTg7QzgxRDsxMTBDIDExNjYgMTFBODsKK0M4MUU7QzgxRTsxMTBDIDExNjYgMTFBOTtDODFFOzExMEMgMTE2NiAxMUE5OworQzgxRjtDODFGOzExMEMgMTE2NiAxMUFBO0M4MUY7MTEwQyAxMTY2IDExQUE7CitDODIwO0M4MjA7MTEwQyAxMTY2IDExQUI7QzgyMDsxMTBDIDExNjYgMTFBQjsKK0M4MjE7QzgyMTsxMTBDIDExNjYgMTFBQztDODIxOzExMEMgMTE2NiAxMUFDOworQzgyMjtDODIyOzExMEMgMTE2NiAxMUFEO0M4MjI7MTEwQyAxMTY2IDExQUQ7CitDODIzO0M4MjM7MTEwQyAxMTY2IDExQUU7QzgyMzsxMTBDIDExNjYgMTFBRTsKK0M4MjQ7QzgyNDsxMTBDIDExNjYgMTFBRjtDODI0OzExMEMgMTE2NiAxMUFGOworQzgyNTtDODI1OzExMEMgMTE2NiAxMUIwO0M4MjU7MTEwQyAxMTY2IDExQjA7CitDODI2O0M4MjY7MTEwQyAxMTY2IDExQjE7QzgyNjsxMTBDIDExNjYgMTFCMTsKK0M4Mjc7QzgyNzsxMTBDIDExNjYgMTFCMjtDODI3OzExMEMgMTE2NiAxMUIyOworQzgyODtDODI4OzExMEMgMTE2NiAxMUIzO0M4Mjg7MTEwQyAxMTY2IDExQjM7CitDODI5O0M4Mjk7MTEwQyAxMTY2IDExQjQ7QzgyOTsxMTBDIDExNjYgMTFCNDsKK0M4MkE7QzgyQTsxMTBDIDExNjYgMTFCNTtDODJBOzExMEMgMTE2NiAxMUI1OworQzgyQjtDODJCOzExMEMgMTE2NiAxMUI2O0M4MkI7MTEwQyAxMTY2IDExQjY7CitDODJDO0M4MkM7MTEwQyAxMTY2IDExQjc7QzgyQzsxMTBDIDExNjYgMTFCNzsKK0M4MkQ7QzgyRDsxMTBDIDExNjYgMTFCODtDODJEOzExMEMgMTE2NiAxMUI4OworQzgyRTtDODJFOzExMEMgMTE2NiAxMUI5O0M4MkU7MTEwQyAxMTY2IDExQjk7CitDODJGO0M4MkY7MTEwQyAxMTY2IDExQkE7QzgyRjsxMTBDIDExNjYgMTFCQTsKK0M4MzA7QzgzMDsxMTBDIDExNjYgMTFCQjtDODMwOzExMEMgMTE2NiAxMUJCOworQzgzMTtDODMxOzExMEMgMTE2NiAxMUJDO0M4MzE7MTEwQyAxMTY2IDExQkM7CitDODMyO0M4MzI7MTEwQyAxMTY2IDExQkQ7QzgzMjsxMTBDIDExNjYgMTFCRDsKK0M4MzM7QzgzMzsxMTBDIDExNjYgMTFCRTtDODMzOzExMEMgMTE2NiAxMUJFOworQzgzNDtDODM0OzExMEMgMTE2NiAxMUJGO0M4MzQ7MTEwQyAxMTY2IDExQkY7CitDODM1O0M4MzU7MTEwQyAxMTY2IDExQzA7QzgzNTsxMTBDIDExNjYgMTFDMDsKK0M4MzY7QzgzNjsxMTBDIDExNjYgMTFDMTtDODM2OzExMEMgMTE2NiAxMUMxOworQzgzNztDODM3OzExMEMgMTE2NiAxMUMyO0M4Mzc7MTEwQyAxMTY2IDExQzI7CitDODM4O0M4Mzg7MTEwQyAxMTY3O0M4Mzg7MTEwQyAxMTY3OworQzgzOTtDODM5OzExMEMgMTE2NyAxMUE4O0M4Mzk7MTEwQyAxMTY3IDExQTg7CitDODNBO0M4M0E7MTEwQyAxMTY3IDExQTk7QzgzQTsxMTBDIDExNjcgMTFBOTsKK0M4M0I7QzgzQjsxMTBDIDExNjcgMTFBQTtDODNCOzExMEMgMTE2NyAxMUFBOworQzgzQztDODNDOzExMEMgMTE2NyAxMUFCO0M4M0M7MTEwQyAxMTY3IDExQUI7CitDODNEO0M4M0Q7MTEwQyAxMTY3IDExQUM7QzgzRDsxMTBDIDExNjcgMTFBQzsKK0M4M0U7QzgzRTsxMTBDIDExNjcgMTFBRDtDODNFOzExMEMgMTE2NyAxMUFEOworQzgzRjtDODNGOzExMEMgMTE2NyAxMUFFO0M4M0Y7MTEwQyAxMTY3IDExQUU7CitDODQwO0M4NDA7MTEwQyAxMTY3IDExQUY7Qzg0MDsxMTBDIDExNjcgMTFBRjsKK0M4NDE7Qzg0MTsxMTBDIDExNjcgMTFCMDtDODQxOzExMEMgMTE2NyAxMUIwOworQzg0MjtDODQyOzExMEMgMTE2NyAxMUIxO0M4NDI7MTEwQyAxMTY3IDExQjE7CitDODQzO0M4NDM7MTEwQyAxMTY3IDExQjI7Qzg0MzsxMTBDIDExNjcgMTFCMjsKK0M4NDQ7Qzg0NDsxMTBDIDExNjcgMTFCMztDODQ0OzExMEMgMTE2NyAxMUIzOworQzg0NTtDODQ1OzExMEMgMTE2NyAxMUI0O0M4NDU7MTEwQyAxMTY3IDExQjQ7CitDODQ2O0M4NDY7MTEwQyAxMTY3IDExQjU7Qzg0NjsxMTBDIDExNjcgMTFCNTsKK0M4NDc7Qzg0NzsxMTBDIDExNjcgMTFCNjtDODQ3OzExMEMgMTE2NyAxMUI2OworQzg0ODtDODQ4OzExMEMgMTE2NyAxMUI3O0M4NDg7MTEwQyAxMTY3IDExQjc7CitDODQ5O0M4NDk7MTEwQyAxMTY3IDExQjg7Qzg0OTsxMTBDIDExNjcgMTFCODsKK0M4NEE7Qzg0QTsxMTBDIDExNjcgMTFCOTtDODRBOzExMEMgMTE2NyAxMUI5OworQzg0QjtDODRCOzExMEMgMTE2NyAxMUJBO0M4NEI7MTEwQyAxMTY3IDExQkE7CitDODRDO0M4NEM7MTEwQyAxMTY3IDExQkI7Qzg0QzsxMTBDIDExNjcgMTFCQjsKK0M4NEQ7Qzg0RDsxMTBDIDExNjcgMTFCQztDODREOzExMEMgMTE2NyAxMUJDOworQzg0RTtDODRFOzExMEMgMTE2NyAxMUJEO0M4NEU7MTEwQyAxMTY3IDExQkQ7CitDODRGO0M4NEY7MTEwQyAxMTY3IDExQkU7Qzg0RjsxMTBDIDExNjcgMTFCRTsKK0M4NTA7Qzg1MDsxMTBDIDExNjcgMTFCRjtDODUwOzExMEMgMTE2NyAxMUJGOworQzg1MTtDODUxOzExMEMgMTE2NyAxMUMwO0M4NTE7MTEwQyAxMTY3IDExQzA7CitDODUyO0M4NTI7MTEwQyAxMTY3IDExQzE7Qzg1MjsxMTBDIDExNjcgMTFDMTsKK0M4NTM7Qzg1MzsxMTBDIDExNjcgMTFDMjtDODUzOzExMEMgMTE2NyAxMUMyOworQzg1NDtDODU0OzExMEMgMTE2ODtDODU0OzExMEMgMTE2ODsKK0M4NTU7Qzg1NTsxMTBDIDExNjggMTFBODtDODU1OzExMEMgMTE2OCAxMUE4OworQzg1NjtDODU2OzExMEMgMTE2OCAxMUE5O0M4NTY7MTEwQyAxMTY4IDExQTk7CitDODU3O0M4NTc7MTEwQyAxMTY4IDExQUE7Qzg1NzsxMTBDIDExNjggMTFBQTsKK0M4NTg7Qzg1ODsxMTBDIDExNjggMTFBQjtDODU4OzExMEMgMTE2OCAxMUFCOworQzg1OTtDODU5OzExMEMgMTE2OCAxMUFDO0M4NTk7MTEwQyAxMTY4IDExQUM7CitDODVBO0M4NUE7MTEwQyAxMTY4IDExQUQ7Qzg1QTsxMTBDIDExNjggMTFBRDsKK0M4NUI7Qzg1QjsxMTBDIDExNjggMTFBRTtDODVCOzExMEMgMTE2OCAxMUFFOworQzg1QztDODVDOzExMEMgMTE2OCAxMUFGO0M4NUM7MTEwQyAxMTY4IDExQUY7CitDODVEO0M4NUQ7MTEwQyAxMTY4IDExQjA7Qzg1RDsxMTBDIDExNjggMTFCMDsKK0M4NUU7Qzg1RTsxMTBDIDExNjggMTFCMTtDODVFOzExMEMgMTE2OCAxMUIxOworQzg1RjtDODVGOzExMEMgMTE2OCAxMUIyO0M4NUY7MTEwQyAxMTY4IDExQjI7CitDODYwO0M4NjA7MTEwQyAxMTY4IDExQjM7Qzg2MDsxMTBDIDExNjggMTFCMzsKK0M4NjE7Qzg2MTsxMTBDIDExNjggMTFCNDtDODYxOzExMEMgMTE2OCAxMUI0OworQzg2MjtDODYyOzExMEMgMTE2OCAxMUI1O0M4NjI7MTEwQyAxMTY4IDExQjU7CitDODYzO0M4NjM7MTEwQyAxMTY4IDExQjY7Qzg2MzsxMTBDIDExNjggMTFCNjsKK0M4NjQ7Qzg2NDsxMTBDIDExNjggMTFCNztDODY0OzExMEMgMTE2OCAxMUI3OworQzg2NTtDODY1OzExMEMgMTE2OCAxMUI4O0M4NjU7MTEwQyAxMTY4IDExQjg7CitDODY2O0M4NjY7MTEwQyAxMTY4IDExQjk7Qzg2NjsxMTBDIDExNjggMTFCOTsKK0M4Njc7Qzg2NzsxMTBDIDExNjggMTFCQTtDODY3OzExMEMgMTE2OCAxMUJBOworQzg2ODtDODY4OzExMEMgMTE2OCAxMUJCO0M4Njg7MTEwQyAxMTY4IDExQkI7CitDODY5O0M4Njk7MTEwQyAxMTY4IDExQkM7Qzg2OTsxMTBDIDExNjggMTFCQzsKK0M4NkE7Qzg2QTsxMTBDIDExNjggMTFCRDtDODZBOzExMEMgMTE2OCAxMUJEOworQzg2QjtDODZCOzExMEMgMTE2OCAxMUJFO0M4NkI7MTEwQyAxMTY4IDExQkU7CitDODZDO0M4NkM7MTEwQyAxMTY4IDExQkY7Qzg2QzsxMTBDIDExNjggMTFCRjsKK0M4NkQ7Qzg2RDsxMTBDIDExNjggMTFDMDtDODZEOzExMEMgMTE2OCAxMUMwOworQzg2RTtDODZFOzExMEMgMTE2OCAxMUMxO0M4NkU7MTEwQyAxMTY4IDExQzE7CitDODZGO0M4NkY7MTEwQyAxMTY4IDExQzI7Qzg2RjsxMTBDIDExNjggMTFDMjsKK0M4NzA7Qzg3MDsxMTBDIDExNjk7Qzg3MDsxMTBDIDExNjk7CitDODcxO0M4NzE7MTEwQyAxMTY5IDExQTg7Qzg3MTsxMTBDIDExNjkgMTFBODsKK0M4NzI7Qzg3MjsxMTBDIDExNjkgMTFBOTtDODcyOzExMEMgMTE2OSAxMUE5OworQzg3MztDODczOzExMEMgMTE2OSAxMUFBO0M4NzM7MTEwQyAxMTY5IDExQUE7CitDODc0O0M4NzQ7MTEwQyAxMTY5IDExQUI7Qzg3NDsxMTBDIDExNjkgMTFBQjsKK0M4NzU7Qzg3NTsxMTBDIDExNjkgMTFBQztDODc1OzExMEMgMTE2OSAxMUFDOworQzg3NjtDODc2OzExMEMgMTE2OSAxMUFEO0M4NzY7MTEwQyAxMTY5IDExQUQ7CitDODc3O0M4Nzc7MTEwQyAxMTY5IDExQUU7Qzg3NzsxMTBDIDExNjkgMTFBRTsKK0M4Nzg7Qzg3ODsxMTBDIDExNjkgMTFBRjtDODc4OzExMEMgMTE2OSAxMUFGOworQzg3OTtDODc5OzExMEMgMTE2OSAxMUIwO0M4Nzk7MTEwQyAxMTY5IDExQjA7CitDODdBO0M4N0E7MTEwQyAxMTY5IDExQjE7Qzg3QTsxMTBDIDExNjkgMTFCMTsKK0M4N0I7Qzg3QjsxMTBDIDExNjkgMTFCMjtDODdCOzExMEMgMTE2OSAxMUIyOworQzg3QztDODdDOzExMEMgMTE2OSAxMUIzO0M4N0M7MTEwQyAxMTY5IDExQjM7CitDODdEO0M4N0Q7MTEwQyAxMTY5IDExQjQ7Qzg3RDsxMTBDIDExNjkgMTFCNDsKK0M4N0U7Qzg3RTsxMTBDIDExNjkgMTFCNTtDODdFOzExMEMgMTE2OSAxMUI1OworQzg3RjtDODdGOzExMEMgMTE2OSAxMUI2O0M4N0Y7MTEwQyAxMTY5IDExQjY7CitDODgwO0M4ODA7MTEwQyAxMTY5IDExQjc7Qzg4MDsxMTBDIDExNjkgMTFCNzsKK0M4ODE7Qzg4MTsxMTBDIDExNjkgMTFCODtDODgxOzExMEMgMTE2OSAxMUI4OworQzg4MjtDODgyOzExMEMgMTE2OSAxMUI5O0M4ODI7MTEwQyAxMTY5IDExQjk7CitDODgzO0M4ODM7MTEwQyAxMTY5IDExQkE7Qzg4MzsxMTBDIDExNjkgMTFCQTsKK0M4ODQ7Qzg4NDsxMTBDIDExNjkgMTFCQjtDODg0OzExMEMgMTE2OSAxMUJCOworQzg4NTtDODg1OzExMEMgMTE2OSAxMUJDO0M4ODU7MTEwQyAxMTY5IDExQkM7CitDODg2O0M4ODY7MTEwQyAxMTY5IDExQkQ7Qzg4NjsxMTBDIDExNjkgMTFCRDsKK0M4ODc7Qzg4NzsxMTBDIDExNjkgMTFCRTtDODg3OzExMEMgMTE2OSAxMUJFOworQzg4ODtDODg4OzExMEMgMTE2OSAxMUJGO0M4ODg7MTEwQyAxMTY5IDExQkY7CitDODg5O0M4ODk7MTEwQyAxMTY5IDExQzA7Qzg4OTsxMTBDIDExNjkgMTFDMDsKK0M4OEE7Qzg4QTsxMTBDIDExNjkgMTFDMTtDODhBOzExMEMgMTE2OSAxMUMxOworQzg4QjtDODhCOzExMEMgMTE2OSAxMUMyO0M4OEI7MTEwQyAxMTY5IDExQzI7CitDODhDO0M4OEM7MTEwQyAxMTZBO0M4OEM7MTEwQyAxMTZBOworQzg4RDtDODhEOzExMEMgMTE2QSAxMUE4O0M4OEQ7MTEwQyAxMTZBIDExQTg7CitDODhFO0M4OEU7MTEwQyAxMTZBIDExQTk7Qzg4RTsxMTBDIDExNkEgMTFBOTsKK0M4OEY7Qzg4RjsxMTBDIDExNkEgMTFBQTtDODhGOzExMEMgMTE2QSAxMUFBOworQzg5MDtDODkwOzExMEMgMTE2QSAxMUFCO0M4OTA7MTEwQyAxMTZBIDExQUI7CitDODkxO0M4OTE7MTEwQyAxMTZBIDExQUM7Qzg5MTsxMTBDIDExNkEgMTFBQzsKK0M4OTI7Qzg5MjsxMTBDIDExNkEgMTFBRDtDODkyOzExMEMgMTE2QSAxMUFEOworQzg5MztDODkzOzExMEMgMTE2QSAxMUFFO0M4OTM7MTEwQyAxMTZBIDExQUU7CitDODk0O0M4OTQ7MTEwQyAxMTZBIDExQUY7Qzg5NDsxMTBDIDExNkEgMTFBRjsKK0M4OTU7Qzg5NTsxMTBDIDExNkEgMTFCMDtDODk1OzExMEMgMTE2QSAxMUIwOworQzg5NjtDODk2OzExMEMgMTE2QSAxMUIxO0M4OTY7MTEwQyAxMTZBIDExQjE7CitDODk3O0M4OTc7MTEwQyAxMTZBIDExQjI7Qzg5NzsxMTBDIDExNkEgMTFCMjsKK0M4OTg7Qzg5ODsxMTBDIDExNkEgMTFCMztDODk4OzExMEMgMTE2QSAxMUIzOworQzg5OTtDODk5OzExMEMgMTE2QSAxMUI0O0M4OTk7MTEwQyAxMTZBIDExQjQ7CitDODlBO0M4OUE7MTEwQyAxMTZBIDExQjU7Qzg5QTsxMTBDIDExNkEgMTFCNTsKK0M4OUI7Qzg5QjsxMTBDIDExNkEgMTFCNjtDODlCOzExMEMgMTE2QSAxMUI2OworQzg5QztDODlDOzExMEMgMTE2QSAxMUI3O0M4OUM7MTEwQyAxMTZBIDExQjc7CitDODlEO0M4OUQ7MTEwQyAxMTZBIDExQjg7Qzg5RDsxMTBDIDExNkEgMTFCODsKK0M4OUU7Qzg5RTsxMTBDIDExNkEgMTFCOTtDODlFOzExMEMgMTE2QSAxMUI5OworQzg5RjtDODlGOzExMEMgMTE2QSAxMUJBO0M4OUY7MTEwQyAxMTZBIDExQkE7CitDOEEwO0M4QTA7MTEwQyAxMTZBIDExQkI7QzhBMDsxMTBDIDExNkEgMTFCQjsKK0M4QTE7QzhBMTsxMTBDIDExNkEgMTFCQztDOEExOzExMEMgMTE2QSAxMUJDOworQzhBMjtDOEEyOzExMEMgMTE2QSAxMUJEO0M4QTI7MTEwQyAxMTZBIDExQkQ7CitDOEEzO0M4QTM7MTEwQyAxMTZBIDExQkU7QzhBMzsxMTBDIDExNkEgMTFCRTsKK0M4QTQ7QzhBNDsxMTBDIDExNkEgMTFCRjtDOEE0OzExMEMgMTE2QSAxMUJGOworQzhBNTtDOEE1OzExMEMgMTE2QSAxMUMwO0M4QTU7MTEwQyAxMTZBIDExQzA7CitDOEE2O0M4QTY7MTEwQyAxMTZBIDExQzE7QzhBNjsxMTBDIDExNkEgMTFDMTsKK0M4QTc7QzhBNzsxMTBDIDExNkEgMTFDMjtDOEE3OzExMEMgMTE2QSAxMUMyOworQzhBODtDOEE4OzExMEMgMTE2QjtDOEE4OzExMEMgMTE2QjsKK0M4QTk7QzhBOTsxMTBDIDExNkIgMTFBODtDOEE5OzExMEMgMTE2QiAxMUE4OworQzhBQTtDOEFBOzExMEMgMTE2QiAxMUE5O0M4QUE7MTEwQyAxMTZCIDExQTk7CitDOEFCO0M4QUI7MTEwQyAxMTZCIDExQUE7QzhBQjsxMTBDIDExNkIgMTFBQTsKK0M4QUM7QzhBQzsxMTBDIDExNkIgMTFBQjtDOEFDOzExMEMgMTE2QiAxMUFCOworQzhBRDtDOEFEOzExMEMgMTE2QiAxMUFDO0M4QUQ7MTEwQyAxMTZCIDExQUM7CitDOEFFO0M4QUU7MTEwQyAxMTZCIDExQUQ7QzhBRTsxMTBDIDExNkIgMTFBRDsKK0M4QUY7QzhBRjsxMTBDIDExNkIgMTFBRTtDOEFGOzExMEMgMTE2QiAxMUFFOworQzhCMDtDOEIwOzExMEMgMTE2QiAxMUFGO0M4QjA7MTEwQyAxMTZCIDExQUY7CitDOEIxO0M4QjE7MTEwQyAxMTZCIDExQjA7QzhCMTsxMTBDIDExNkIgMTFCMDsKK0M4QjI7QzhCMjsxMTBDIDExNkIgMTFCMTtDOEIyOzExMEMgMTE2QiAxMUIxOworQzhCMztDOEIzOzExMEMgMTE2QiAxMUIyO0M4QjM7MTEwQyAxMTZCIDExQjI7CitDOEI0O0M4QjQ7MTEwQyAxMTZCIDExQjM7QzhCNDsxMTBDIDExNkIgMTFCMzsKK0M4QjU7QzhCNTsxMTBDIDExNkIgMTFCNDtDOEI1OzExMEMgMTE2QiAxMUI0OworQzhCNjtDOEI2OzExMEMgMTE2QiAxMUI1O0M4QjY7MTEwQyAxMTZCIDExQjU7CitDOEI3O0M4Qjc7MTEwQyAxMTZCIDExQjY7QzhCNzsxMTBDIDExNkIgMTFCNjsKK0M4Qjg7QzhCODsxMTBDIDExNkIgMTFCNztDOEI4OzExMEMgMTE2QiAxMUI3OworQzhCOTtDOEI5OzExMEMgMTE2QiAxMUI4O0M4Qjk7MTEwQyAxMTZCIDExQjg7CitDOEJBO0M4QkE7MTEwQyAxMTZCIDExQjk7QzhCQTsxMTBDIDExNkIgMTFCOTsKK0M4QkI7QzhCQjsxMTBDIDExNkIgMTFCQTtDOEJCOzExMEMgMTE2QiAxMUJBOworQzhCQztDOEJDOzExMEMgMTE2QiAxMUJCO0M4QkM7MTEwQyAxMTZCIDExQkI7CitDOEJEO0M4QkQ7MTEwQyAxMTZCIDExQkM7QzhCRDsxMTBDIDExNkIgMTFCQzsKK0M4QkU7QzhCRTsxMTBDIDExNkIgMTFCRDtDOEJFOzExMEMgMTE2QiAxMUJEOworQzhCRjtDOEJGOzExMEMgMTE2QiAxMUJFO0M4QkY7MTEwQyAxMTZCIDExQkU7CitDOEMwO0M4QzA7MTEwQyAxMTZCIDExQkY7QzhDMDsxMTBDIDExNkIgMTFCRjsKK0M4QzE7QzhDMTsxMTBDIDExNkIgMTFDMDtDOEMxOzExMEMgMTE2QiAxMUMwOworQzhDMjtDOEMyOzExMEMgMTE2QiAxMUMxO0M4QzI7MTEwQyAxMTZCIDExQzE7CitDOEMzO0M4QzM7MTEwQyAxMTZCIDExQzI7QzhDMzsxMTBDIDExNkIgMTFDMjsKK0M4QzQ7QzhDNDsxMTBDIDExNkM7QzhDNDsxMTBDIDExNkM7CitDOEM1O0M4QzU7MTEwQyAxMTZDIDExQTg7QzhDNTsxMTBDIDExNkMgMTFBODsKK0M4QzY7QzhDNjsxMTBDIDExNkMgMTFBOTtDOEM2OzExMEMgMTE2QyAxMUE5OworQzhDNztDOEM3OzExMEMgMTE2QyAxMUFBO0M4Qzc7MTEwQyAxMTZDIDExQUE7CitDOEM4O0M4Qzg7MTEwQyAxMTZDIDExQUI7QzhDODsxMTBDIDExNkMgMTFBQjsKK0M4Qzk7QzhDOTsxMTBDIDExNkMgMTFBQztDOEM5OzExMEMgMTE2QyAxMUFDOworQzhDQTtDOENBOzExMEMgMTE2QyAxMUFEO0M4Q0E7MTEwQyAxMTZDIDExQUQ7CitDOENCO0M4Q0I7MTEwQyAxMTZDIDExQUU7QzhDQjsxMTBDIDExNkMgMTFBRTsKK0M4Q0M7QzhDQzsxMTBDIDExNkMgMTFBRjtDOENDOzExMEMgMTE2QyAxMUFGOworQzhDRDtDOENEOzExMEMgMTE2QyAxMUIwO0M4Q0Q7MTEwQyAxMTZDIDExQjA7CitDOENFO0M4Q0U7MTEwQyAxMTZDIDExQjE7QzhDRTsxMTBDIDExNkMgMTFCMTsKK0M4Q0Y7QzhDRjsxMTBDIDExNkMgMTFCMjtDOENGOzExMEMgMTE2QyAxMUIyOworQzhEMDtDOEQwOzExMEMgMTE2QyAxMUIzO0M4RDA7MTEwQyAxMTZDIDExQjM7CitDOEQxO0M4RDE7MTEwQyAxMTZDIDExQjQ7QzhEMTsxMTBDIDExNkMgMTFCNDsKK0M4RDI7QzhEMjsxMTBDIDExNkMgMTFCNTtDOEQyOzExMEMgMTE2QyAxMUI1OworQzhEMztDOEQzOzExMEMgMTE2QyAxMUI2O0M4RDM7MTEwQyAxMTZDIDExQjY7CitDOEQ0O0M4RDQ7MTEwQyAxMTZDIDExQjc7QzhENDsxMTBDIDExNkMgMTFCNzsKK0M4RDU7QzhENTsxMTBDIDExNkMgMTFCODtDOEQ1OzExMEMgMTE2QyAxMUI4OworQzhENjtDOEQ2OzExMEMgMTE2QyAxMUI5O0M4RDY7MTEwQyAxMTZDIDExQjk7CitDOEQ3O0M4RDc7MTEwQyAxMTZDIDExQkE7QzhENzsxMTBDIDExNkMgMTFCQTsKK0M4RDg7QzhEODsxMTBDIDExNkMgMTFCQjtDOEQ4OzExMEMgMTE2QyAxMUJCOworQzhEOTtDOEQ5OzExMEMgMTE2QyAxMUJDO0M4RDk7MTEwQyAxMTZDIDExQkM7CitDOERBO0M4REE7MTEwQyAxMTZDIDExQkQ7QzhEQTsxMTBDIDExNkMgMTFCRDsKK0M4REI7QzhEQjsxMTBDIDExNkMgMTFCRTtDOERCOzExMEMgMTE2QyAxMUJFOworQzhEQztDOERDOzExMEMgMTE2QyAxMUJGO0M4REM7MTEwQyAxMTZDIDExQkY7CitDOEREO0M4REQ7MTEwQyAxMTZDIDExQzA7QzhERDsxMTBDIDExNkMgMTFDMDsKK0M4REU7QzhERTsxMTBDIDExNkMgMTFDMTtDOERFOzExMEMgMTE2QyAxMUMxOworQzhERjtDOERGOzExMEMgMTE2QyAxMUMyO0M4REY7MTEwQyAxMTZDIDExQzI7CitDOEUwO0M4RTA7MTEwQyAxMTZEO0M4RTA7MTEwQyAxMTZEOworQzhFMTtDOEUxOzExMEMgMTE2RCAxMUE4O0M4RTE7MTEwQyAxMTZEIDExQTg7CitDOEUyO0M4RTI7MTEwQyAxMTZEIDExQTk7QzhFMjsxMTBDIDExNkQgMTFBOTsKK0M4RTM7QzhFMzsxMTBDIDExNkQgMTFBQTtDOEUzOzExMEMgMTE2RCAxMUFBOworQzhFNDtDOEU0OzExMEMgMTE2RCAxMUFCO0M4RTQ7MTEwQyAxMTZEIDExQUI7CitDOEU1O0M4RTU7MTEwQyAxMTZEIDExQUM7QzhFNTsxMTBDIDExNkQgMTFBQzsKK0M4RTY7QzhFNjsxMTBDIDExNkQgMTFBRDtDOEU2OzExMEMgMTE2RCAxMUFEOworQzhFNztDOEU3OzExMEMgMTE2RCAxMUFFO0M4RTc7MTEwQyAxMTZEIDExQUU7CitDOEU4O0M4RTg7MTEwQyAxMTZEIDExQUY7QzhFODsxMTBDIDExNkQgMTFBRjsKK0M4RTk7QzhFOTsxMTBDIDExNkQgMTFCMDtDOEU5OzExMEMgMTE2RCAxMUIwOworQzhFQTtDOEVBOzExMEMgMTE2RCAxMUIxO0M4RUE7MTEwQyAxMTZEIDExQjE7CitDOEVCO0M4RUI7MTEwQyAxMTZEIDExQjI7QzhFQjsxMTBDIDExNkQgMTFCMjsKK0M4RUM7QzhFQzsxMTBDIDExNkQgMTFCMztDOEVDOzExMEMgMTE2RCAxMUIzOworQzhFRDtDOEVEOzExMEMgMTE2RCAxMUI0O0M4RUQ7MTEwQyAxMTZEIDExQjQ7CitDOEVFO0M4RUU7MTEwQyAxMTZEIDExQjU7QzhFRTsxMTBDIDExNkQgMTFCNTsKK0M4RUY7QzhFRjsxMTBDIDExNkQgMTFCNjtDOEVGOzExMEMgMTE2RCAxMUI2OworQzhGMDtDOEYwOzExMEMgMTE2RCAxMUI3O0M4RjA7MTEwQyAxMTZEIDExQjc7CitDOEYxO0M4RjE7MTEwQyAxMTZEIDExQjg7QzhGMTsxMTBDIDExNkQgMTFCODsKK0M4RjI7QzhGMjsxMTBDIDExNkQgMTFCOTtDOEYyOzExMEMgMTE2RCAxMUI5OworQzhGMztDOEYzOzExMEMgMTE2RCAxMUJBO0M4RjM7MTEwQyAxMTZEIDExQkE7CitDOEY0O0M4RjQ7MTEwQyAxMTZEIDExQkI7QzhGNDsxMTBDIDExNkQgMTFCQjsKK0M4RjU7QzhGNTsxMTBDIDExNkQgMTFCQztDOEY1OzExMEMgMTE2RCAxMUJDOworQzhGNjtDOEY2OzExMEMgMTE2RCAxMUJEO0M4RjY7MTEwQyAxMTZEIDExQkQ7CitDOEY3O0M4Rjc7MTEwQyAxMTZEIDExQkU7QzhGNzsxMTBDIDExNkQgMTFCRTsKK0M4Rjg7QzhGODsxMTBDIDExNkQgMTFCRjtDOEY4OzExMEMgMTE2RCAxMUJGOworQzhGOTtDOEY5OzExMEMgMTE2RCAxMUMwO0M4Rjk7MTEwQyAxMTZEIDExQzA7CitDOEZBO0M4RkE7MTEwQyAxMTZEIDExQzE7QzhGQTsxMTBDIDExNkQgMTFDMTsKK0M4RkI7QzhGQjsxMTBDIDExNkQgMTFDMjtDOEZCOzExMEMgMTE2RCAxMUMyOworQzhGQztDOEZDOzExMEMgMTE2RTtDOEZDOzExMEMgMTE2RTsKK0M4RkQ7QzhGRDsxMTBDIDExNkUgMTFBODtDOEZEOzExMEMgMTE2RSAxMUE4OworQzhGRTtDOEZFOzExMEMgMTE2RSAxMUE5O0M4RkU7MTEwQyAxMTZFIDExQTk7CitDOEZGO0M4RkY7MTEwQyAxMTZFIDExQUE7QzhGRjsxMTBDIDExNkUgMTFBQTsKK0M5MDA7QzkwMDsxMTBDIDExNkUgMTFBQjtDOTAwOzExMEMgMTE2RSAxMUFCOworQzkwMTtDOTAxOzExMEMgMTE2RSAxMUFDO0M5MDE7MTEwQyAxMTZFIDExQUM7CitDOTAyO0M5MDI7MTEwQyAxMTZFIDExQUQ7QzkwMjsxMTBDIDExNkUgMTFBRDsKK0M5MDM7QzkwMzsxMTBDIDExNkUgMTFBRTtDOTAzOzExMEMgMTE2RSAxMUFFOworQzkwNDtDOTA0OzExMEMgMTE2RSAxMUFGO0M5MDQ7MTEwQyAxMTZFIDExQUY7CitDOTA1O0M5MDU7MTEwQyAxMTZFIDExQjA7QzkwNTsxMTBDIDExNkUgMTFCMDsKK0M5MDY7QzkwNjsxMTBDIDExNkUgMTFCMTtDOTA2OzExMEMgMTE2RSAxMUIxOworQzkwNztDOTA3OzExMEMgMTE2RSAxMUIyO0M5MDc7MTEwQyAxMTZFIDExQjI7CitDOTA4O0M5MDg7MTEwQyAxMTZFIDExQjM7QzkwODsxMTBDIDExNkUgMTFCMzsKK0M5MDk7QzkwOTsxMTBDIDExNkUgMTFCNDtDOTA5OzExMEMgMTE2RSAxMUI0OworQzkwQTtDOTBBOzExMEMgMTE2RSAxMUI1O0M5MEE7MTEwQyAxMTZFIDExQjU7CitDOTBCO0M5MEI7MTEwQyAxMTZFIDExQjY7QzkwQjsxMTBDIDExNkUgMTFCNjsKK0M5MEM7QzkwQzsxMTBDIDExNkUgMTFCNztDOTBDOzExMEMgMTE2RSAxMUI3OworQzkwRDtDOTBEOzExMEMgMTE2RSAxMUI4O0M5MEQ7MTEwQyAxMTZFIDExQjg7CitDOTBFO0M5MEU7MTEwQyAxMTZFIDExQjk7QzkwRTsxMTBDIDExNkUgMTFCOTsKK0M5MEY7QzkwRjsxMTBDIDExNkUgMTFCQTtDOTBGOzExMEMgMTE2RSAxMUJBOworQzkxMDtDOTEwOzExMEMgMTE2RSAxMUJCO0M5MTA7MTEwQyAxMTZFIDExQkI7CitDOTExO0M5MTE7MTEwQyAxMTZFIDExQkM7QzkxMTsxMTBDIDExNkUgMTFCQzsKK0M5MTI7QzkxMjsxMTBDIDExNkUgMTFCRDtDOTEyOzExMEMgMTE2RSAxMUJEOworQzkxMztDOTEzOzExMEMgMTE2RSAxMUJFO0M5MTM7MTEwQyAxMTZFIDExQkU7CitDOTE0O0M5MTQ7MTEwQyAxMTZFIDExQkY7QzkxNDsxMTBDIDExNkUgMTFCRjsKK0M5MTU7QzkxNTsxMTBDIDExNkUgMTFDMDtDOTE1OzExMEMgMTE2RSAxMUMwOworQzkxNjtDOTE2OzExMEMgMTE2RSAxMUMxO0M5MTY7MTEwQyAxMTZFIDExQzE7CitDOTE3O0M5MTc7MTEwQyAxMTZFIDExQzI7QzkxNzsxMTBDIDExNkUgMTFDMjsKK0M5MTg7QzkxODsxMTBDIDExNkY7QzkxODsxMTBDIDExNkY7CitDOTE5O0M5MTk7MTEwQyAxMTZGIDExQTg7QzkxOTsxMTBDIDExNkYgMTFBODsKK0M5MUE7QzkxQTsxMTBDIDExNkYgMTFBOTtDOTFBOzExMEMgMTE2RiAxMUE5OworQzkxQjtDOTFCOzExMEMgMTE2RiAxMUFBO0M5MUI7MTEwQyAxMTZGIDExQUE7CitDOTFDO0M5MUM7MTEwQyAxMTZGIDExQUI7QzkxQzsxMTBDIDExNkYgMTFBQjsKK0M5MUQ7QzkxRDsxMTBDIDExNkYgMTFBQztDOTFEOzExMEMgMTE2RiAxMUFDOworQzkxRTtDOTFFOzExMEMgMTE2RiAxMUFEO0M5MUU7MTEwQyAxMTZGIDExQUQ7CitDOTFGO0M5MUY7MTEwQyAxMTZGIDExQUU7QzkxRjsxMTBDIDExNkYgMTFBRTsKK0M5MjA7QzkyMDsxMTBDIDExNkYgMTFBRjtDOTIwOzExMEMgMTE2RiAxMUFGOworQzkyMTtDOTIxOzExMEMgMTE2RiAxMUIwO0M5MjE7MTEwQyAxMTZGIDExQjA7CitDOTIyO0M5MjI7MTEwQyAxMTZGIDExQjE7QzkyMjsxMTBDIDExNkYgMTFCMTsKK0M5MjM7QzkyMzsxMTBDIDExNkYgMTFCMjtDOTIzOzExMEMgMTE2RiAxMUIyOworQzkyNDtDOTI0OzExMEMgMTE2RiAxMUIzO0M5MjQ7MTEwQyAxMTZGIDExQjM7CitDOTI1O0M5MjU7MTEwQyAxMTZGIDExQjQ7QzkyNTsxMTBDIDExNkYgMTFCNDsKK0M5MjY7QzkyNjsxMTBDIDExNkYgMTFCNTtDOTI2OzExMEMgMTE2RiAxMUI1OworQzkyNztDOTI3OzExMEMgMTE2RiAxMUI2O0M5Mjc7MTEwQyAxMTZGIDExQjY7CitDOTI4O0M5Mjg7MTEwQyAxMTZGIDExQjc7QzkyODsxMTBDIDExNkYgMTFCNzsKK0M5Mjk7QzkyOTsxMTBDIDExNkYgMTFCODtDOTI5OzExMEMgMTE2RiAxMUI4OworQzkyQTtDOTJBOzExMEMgMTE2RiAxMUI5O0M5MkE7MTEwQyAxMTZGIDExQjk7CitDOTJCO0M5MkI7MTEwQyAxMTZGIDExQkE7QzkyQjsxMTBDIDExNkYgMTFCQTsKK0M5MkM7QzkyQzsxMTBDIDExNkYgMTFCQjtDOTJDOzExMEMgMTE2RiAxMUJCOworQzkyRDtDOTJEOzExMEMgMTE2RiAxMUJDO0M5MkQ7MTEwQyAxMTZGIDExQkM7CitDOTJFO0M5MkU7MTEwQyAxMTZGIDExQkQ7QzkyRTsxMTBDIDExNkYgMTFCRDsKK0M5MkY7QzkyRjsxMTBDIDExNkYgMTFCRTtDOTJGOzExMEMgMTE2RiAxMUJFOworQzkzMDtDOTMwOzExMEMgMTE2RiAxMUJGO0M5MzA7MTEwQyAxMTZGIDExQkY7CitDOTMxO0M5MzE7MTEwQyAxMTZGIDExQzA7QzkzMTsxMTBDIDExNkYgMTFDMDsKK0M5MzI7QzkzMjsxMTBDIDExNkYgMTFDMTtDOTMyOzExMEMgMTE2RiAxMUMxOworQzkzMztDOTMzOzExMEMgMTE2RiAxMUMyO0M5MzM7MTEwQyAxMTZGIDExQzI7CitDOTM0O0M5MzQ7MTEwQyAxMTcwO0M5MzQ7MTEwQyAxMTcwOworQzkzNTtDOTM1OzExMEMgMTE3MCAxMUE4O0M5MzU7MTEwQyAxMTcwIDExQTg7CitDOTM2O0M5MzY7MTEwQyAxMTcwIDExQTk7QzkzNjsxMTBDIDExNzAgMTFBOTsKK0M5Mzc7QzkzNzsxMTBDIDExNzAgMTFBQTtDOTM3OzExMEMgMTE3MCAxMUFBOworQzkzODtDOTM4OzExMEMgMTE3MCAxMUFCO0M5Mzg7MTEwQyAxMTcwIDExQUI7CitDOTM5O0M5Mzk7MTEwQyAxMTcwIDExQUM7QzkzOTsxMTBDIDExNzAgMTFBQzsKK0M5M0E7QzkzQTsxMTBDIDExNzAgMTFBRDtDOTNBOzExMEMgMTE3MCAxMUFEOworQzkzQjtDOTNCOzExMEMgMTE3MCAxMUFFO0M5M0I7MTEwQyAxMTcwIDExQUU7CitDOTNDO0M5M0M7MTEwQyAxMTcwIDExQUY7QzkzQzsxMTBDIDExNzAgMTFBRjsKK0M5M0Q7QzkzRDsxMTBDIDExNzAgMTFCMDtDOTNEOzExMEMgMTE3MCAxMUIwOworQzkzRTtDOTNFOzExMEMgMTE3MCAxMUIxO0M5M0U7MTEwQyAxMTcwIDExQjE7CitDOTNGO0M5M0Y7MTEwQyAxMTcwIDExQjI7QzkzRjsxMTBDIDExNzAgMTFCMjsKK0M5NDA7Qzk0MDsxMTBDIDExNzAgMTFCMztDOTQwOzExMEMgMTE3MCAxMUIzOworQzk0MTtDOTQxOzExMEMgMTE3MCAxMUI0O0M5NDE7MTEwQyAxMTcwIDExQjQ7CitDOTQyO0M5NDI7MTEwQyAxMTcwIDExQjU7Qzk0MjsxMTBDIDExNzAgMTFCNTsKK0M5NDM7Qzk0MzsxMTBDIDExNzAgMTFCNjtDOTQzOzExMEMgMTE3MCAxMUI2OworQzk0NDtDOTQ0OzExMEMgMTE3MCAxMUI3O0M5NDQ7MTEwQyAxMTcwIDExQjc7CitDOTQ1O0M5NDU7MTEwQyAxMTcwIDExQjg7Qzk0NTsxMTBDIDExNzAgMTFCODsKK0M5NDY7Qzk0NjsxMTBDIDExNzAgMTFCOTtDOTQ2OzExMEMgMTE3MCAxMUI5OworQzk0NztDOTQ3OzExMEMgMTE3MCAxMUJBO0M5NDc7MTEwQyAxMTcwIDExQkE7CitDOTQ4O0M5NDg7MTEwQyAxMTcwIDExQkI7Qzk0ODsxMTBDIDExNzAgMTFCQjsKK0M5NDk7Qzk0OTsxMTBDIDExNzAgMTFCQztDOTQ5OzExMEMgMTE3MCAxMUJDOworQzk0QTtDOTRBOzExMEMgMTE3MCAxMUJEO0M5NEE7MTEwQyAxMTcwIDExQkQ7CitDOTRCO0M5NEI7MTEwQyAxMTcwIDExQkU7Qzk0QjsxMTBDIDExNzAgMTFCRTsKK0M5NEM7Qzk0QzsxMTBDIDExNzAgMTFCRjtDOTRDOzExMEMgMTE3MCAxMUJGOworQzk0RDtDOTREOzExMEMgMTE3MCAxMUMwO0M5NEQ7MTEwQyAxMTcwIDExQzA7CitDOTRFO0M5NEU7MTEwQyAxMTcwIDExQzE7Qzk0RTsxMTBDIDExNzAgMTFDMTsKK0M5NEY7Qzk0RjsxMTBDIDExNzAgMTFDMjtDOTRGOzExMEMgMTE3MCAxMUMyOworQzk1MDtDOTUwOzExMEMgMTE3MTtDOTUwOzExMEMgMTE3MTsKK0M5NTE7Qzk1MTsxMTBDIDExNzEgMTFBODtDOTUxOzExMEMgMTE3MSAxMUE4OworQzk1MjtDOTUyOzExMEMgMTE3MSAxMUE5O0M5NTI7MTEwQyAxMTcxIDExQTk7CitDOTUzO0M5NTM7MTEwQyAxMTcxIDExQUE7Qzk1MzsxMTBDIDExNzEgMTFBQTsKK0M5NTQ7Qzk1NDsxMTBDIDExNzEgMTFBQjtDOTU0OzExMEMgMTE3MSAxMUFCOworQzk1NTtDOTU1OzExMEMgMTE3MSAxMUFDO0M5NTU7MTEwQyAxMTcxIDExQUM7CitDOTU2O0M5NTY7MTEwQyAxMTcxIDExQUQ7Qzk1NjsxMTBDIDExNzEgMTFBRDsKK0M5NTc7Qzk1NzsxMTBDIDExNzEgMTFBRTtDOTU3OzExMEMgMTE3MSAxMUFFOworQzk1ODtDOTU4OzExMEMgMTE3MSAxMUFGO0M5NTg7MTEwQyAxMTcxIDExQUY7CitDOTU5O0M5NTk7MTEwQyAxMTcxIDExQjA7Qzk1OTsxMTBDIDExNzEgMTFCMDsKK0M5NUE7Qzk1QTsxMTBDIDExNzEgMTFCMTtDOTVBOzExMEMgMTE3MSAxMUIxOworQzk1QjtDOTVCOzExMEMgMTE3MSAxMUIyO0M5NUI7MTEwQyAxMTcxIDExQjI7CitDOTVDO0M5NUM7MTEwQyAxMTcxIDExQjM7Qzk1QzsxMTBDIDExNzEgMTFCMzsKK0M5NUQ7Qzk1RDsxMTBDIDExNzEgMTFCNDtDOTVEOzExMEMgMTE3MSAxMUI0OworQzk1RTtDOTVFOzExMEMgMTE3MSAxMUI1O0M5NUU7MTEwQyAxMTcxIDExQjU7CitDOTVGO0M5NUY7MTEwQyAxMTcxIDExQjY7Qzk1RjsxMTBDIDExNzEgMTFCNjsKK0M5NjA7Qzk2MDsxMTBDIDExNzEgMTFCNztDOTYwOzExMEMgMTE3MSAxMUI3OworQzk2MTtDOTYxOzExMEMgMTE3MSAxMUI4O0M5NjE7MTEwQyAxMTcxIDExQjg7CitDOTYyO0M5NjI7MTEwQyAxMTcxIDExQjk7Qzk2MjsxMTBDIDExNzEgMTFCOTsKK0M5NjM7Qzk2MzsxMTBDIDExNzEgMTFCQTtDOTYzOzExMEMgMTE3MSAxMUJBOworQzk2NDtDOTY0OzExMEMgMTE3MSAxMUJCO0M5NjQ7MTEwQyAxMTcxIDExQkI7CitDOTY1O0M5NjU7MTEwQyAxMTcxIDExQkM7Qzk2NTsxMTBDIDExNzEgMTFCQzsKK0M5NjY7Qzk2NjsxMTBDIDExNzEgMTFCRDtDOTY2OzExMEMgMTE3MSAxMUJEOworQzk2NztDOTY3OzExMEMgMTE3MSAxMUJFO0M5Njc7MTEwQyAxMTcxIDExQkU7CitDOTY4O0M5Njg7MTEwQyAxMTcxIDExQkY7Qzk2ODsxMTBDIDExNzEgMTFCRjsKK0M5Njk7Qzk2OTsxMTBDIDExNzEgMTFDMDtDOTY5OzExMEMgMTE3MSAxMUMwOworQzk2QTtDOTZBOzExMEMgMTE3MSAxMUMxO0M5NkE7MTEwQyAxMTcxIDExQzE7CitDOTZCO0M5NkI7MTEwQyAxMTcxIDExQzI7Qzk2QjsxMTBDIDExNzEgMTFDMjsKK0M5NkM7Qzk2QzsxMTBDIDExNzI7Qzk2QzsxMTBDIDExNzI7CitDOTZEO0M5NkQ7MTEwQyAxMTcyIDExQTg7Qzk2RDsxMTBDIDExNzIgMTFBODsKK0M5NkU7Qzk2RTsxMTBDIDExNzIgMTFBOTtDOTZFOzExMEMgMTE3MiAxMUE5OworQzk2RjtDOTZGOzExMEMgMTE3MiAxMUFBO0M5NkY7MTEwQyAxMTcyIDExQUE7CitDOTcwO0M5NzA7MTEwQyAxMTcyIDExQUI7Qzk3MDsxMTBDIDExNzIgMTFBQjsKK0M5NzE7Qzk3MTsxMTBDIDExNzIgMTFBQztDOTcxOzExMEMgMTE3MiAxMUFDOworQzk3MjtDOTcyOzExMEMgMTE3MiAxMUFEO0M5NzI7MTEwQyAxMTcyIDExQUQ7CitDOTczO0M5NzM7MTEwQyAxMTcyIDExQUU7Qzk3MzsxMTBDIDExNzIgMTFBRTsKK0M5NzQ7Qzk3NDsxMTBDIDExNzIgMTFBRjtDOTc0OzExMEMgMTE3MiAxMUFGOworQzk3NTtDOTc1OzExMEMgMTE3MiAxMUIwO0M5NzU7MTEwQyAxMTcyIDExQjA7CitDOTc2O0M5NzY7MTEwQyAxMTcyIDExQjE7Qzk3NjsxMTBDIDExNzIgMTFCMTsKK0M5Nzc7Qzk3NzsxMTBDIDExNzIgMTFCMjtDOTc3OzExMEMgMTE3MiAxMUIyOworQzk3ODtDOTc4OzExMEMgMTE3MiAxMUIzO0M5Nzg7MTEwQyAxMTcyIDExQjM7CitDOTc5O0M5Nzk7MTEwQyAxMTcyIDExQjQ7Qzk3OTsxMTBDIDExNzIgMTFCNDsKK0M5N0E7Qzk3QTsxMTBDIDExNzIgMTFCNTtDOTdBOzExMEMgMTE3MiAxMUI1OworQzk3QjtDOTdCOzExMEMgMTE3MiAxMUI2O0M5N0I7MTEwQyAxMTcyIDExQjY7CitDOTdDO0M5N0M7MTEwQyAxMTcyIDExQjc7Qzk3QzsxMTBDIDExNzIgMTFCNzsKK0M5N0Q7Qzk3RDsxMTBDIDExNzIgMTFCODtDOTdEOzExMEMgMTE3MiAxMUI4OworQzk3RTtDOTdFOzExMEMgMTE3MiAxMUI5O0M5N0U7MTEwQyAxMTcyIDExQjk7CitDOTdGO0M5N0Y7MTEwQyAxMTcyIDExQkE7Qzk3RjsxMTBDIDExNzIgMTFCQTsKK0M5ODA7Qzk4MDsxMTBDIDExNzIgMTFCQjtDOTgwOzExMEMgMTE3MiAxMUJCOworQzk4MTtDOTgxOzExMEMgMTE3MiAxMUJDO0M5ODE7MTEwQyAxMTcyIDExQkM7CitDOTgyO0M5ODI7MTEwQyAxMTcyIDExQkQ7Qzk4MjsxMTBDIDExNzIgMTFCRDsKK0M5ODM7Qzk4MzsxMTBDIDExNzIgMTFCRTtDOTgzOzExMEMgMTE3MiAxMUJFOworQzk4NDtDOTg0OzExMEMgMTE3MiAxMUJGO0M5ODQ7MTEwQyAxMTcyIDExQkY7CitDOTg1O0M5ODU7MTEwQyAxMTcyIDExQzA7Qzk4NTsxMTBDIDExNzIgMTFDMDsKK0M5ODY7Qzk4NjsxMTBDIDExNzIgMTFDMTtDOTg2OzExMEMgMTE3MiAxMUMxOworQzk4NztDOTg3OzExMEMgMTE3MiAxMUMyO0M5ODc7MTEwQyAxMTcyIDExQzI7CitDOTg4O0M5ODg7MTEwQyAxMTczO0M5ODg7MTEwQyAxMTczOworQzk4OTtDOTg5OzExMEMgMTE3MyAxMUE4O0M5ODk7MTEwQyAxMTczIDExQTg7CitDOThBO0M5OEE7MTEwQyAxMTczIDExQTk7Qzk4QTsxMTBDIDExNzMgMTFBOTsKK0M5OEI7Qzk4QjsxMTBDIDExNzMgMTFBQTtDOThCOzExMEMgMTE3MyAxMUFBOworQzk4QztDOThDOzExMEMgMTE3MyAxMUFCO0M5OEM7MTEwQyAxMTczIDExQUI7CitDOThEO0M5OEQ7MTEwQyAxMTczIDExQUM7Qzk4RDsxMTBDIDExNzMgMTFBQzsKK0M5OEU7Qzk4RTsxMTBDIDExNzMgMTFBRDtDOThFOzExMEMgMTE3MyAxMUFEOworQzk4RjtDOThGOzExMEMgMTE3MyAxMUFFO0M5OEY7MTEwQyAxMTczIDExQUU7CitDOTkwO0M5OTA7MTEwQyAxMTczIDExQUY7Qzk5MDsxMTBDIDExNzMgMTFBRjsKK0M5OTE7Qzk5MTsxMTBDIDExNzMgMTFCMDtDOTkxOzExMEMgMTE3MyAxMUIwOworQzk5MjtDOTkyOzExMEMgMTE3MyAxMUIxO0M5OTI7MTEwQyAxMTczIDExQjE7CitDOTkzO0M5OTM7MTEwQyAxMTczIDExQjI7Qzk5MzsxMTBDIDExNzMgMTFCMjsKK0M5OTQ7Qzk5NDsxMTBDIDExNzMgMTFCMztDOTk0OzExMEMgMTE3MyAxMUIzOworQzk5NTtDOTk1OzExMEMgMTE3MyAxMUI0O0M5OTU7MTEwQyAxMTczIDExQjQ7CitDOTk2O0M5OTY7MTEwQyAxMTczIDExQjU7Qzk5NjsxMTBDIDExNzMgMTFCNTsKK0M5OTc7Qzk5NzsxMTBDIDExNzMgMTFCNjtDOTk3OzExMEMgMTE3MyAxMUI2OworQzk5ODtDOTk4OzExMEMgMTE3MyAxMUI3O0M5OTg7MTEwQyAxMTczIDExQjc7CitDOTk5O0M5OTk7MTEwQyAxMTczIDExQjg7Qzk5OTsxMTBDIDExNzMgMTFCODsKK0M5OUE7Qzk5QTsxMTBDIDExNzMgMTFCOTtDOTlBOzExMEMgMTE3MyAxMUI5OworQzk5QjtDOTlCOzExMEMgMTE3MyAxMUJBO0M5OUI7MTEwQyAxMTczIDExQkE7CitDOTlDO0M5OUM7MTEwQyAxMTczIDExQkI7Qzk5QzsxMTBDIDExNzMgMTFCQjsKK0M5OUQ7Qzk5RDsxMTBDIDExNzMgMTFCQztDOTlEOzExMEMgMTE3MyAxMUJDOworQzk5RTtDOTlFOzExMEMgMTE3MyAxMUJEO0M5OUU7MTEwQyAxMTczIDExQkQ7CitDOTlGO0M5OUY7MTEwQyAxMTczIDExQkU7Qzk5RjsxMTBDIDExNzMgMTFCRTsKK0M5QTA7QzlBMDsxMTBDIDExNzMgMTFCRjtDOUEwOzExMEMgMTE3MyAxMUJGOworQzlBMTtDOUExOzExMEMgMTE3MyAxMUMwO0M5QTE7MTEwQyAxMTczIDExQzA7CitDOUEyO0M5QTI7MTEwQyAxMTczIDExQzE7QzlBMjsxMTBDIDExNzMgMTFDMTsKK0M5QTM7QzlBMzsxMTBDIDExNzMgMTFDMjtDOUEzOzExMEMgMTE3MyAxMUMyOworQzlBNDtDOUE0OzExMEMgMTE3NDtDOUE0OzExMEMgMTE3NDsKK0M5QTU7QzlBNTsxMTBDIDExNzQgMTFBODtDOUE1OzExMEMgMTE3NCAxMUE4OworQzlBNjtDOUE2OzExMEMgMTE3NCAxMUE5O0M5QTY7MTEwQyAxMTc0IDExQTk7CitDOUE3O0M5QTc7MTEwQyAxMTc0IDExQUE7QzlBNzsxMTBDIDExNzQgMTFBQTsKK0M5QTg7QzlBODsxMTBDIDExNzQgMTFBQjtDOUE4OzExMEMgMTE3NCAxMUFCOworQzlBOTtDOUE5OzExMEMgMTE3NCAxMUFDO0M5QTk7MTEwQyAxMTc0IDExQUM7CitDOUFBO0M5QUE7MTEwQyAxMTc0IDExQUQ7QzlBQTsxMTBDIDExNzQgMTFBRDsKK0M5QUI7QzlBQjsxMTBDIDExNzQgMTFBRTtDOUFCOzExMEMgMTE3NCAxMUFFOworQzlBQztDOUFDOzExMEMgMTE3NCAxMUFGO0M5QUM7MTEwQyAxMTc0IDExQUY7CitDOUFEO0M5QUQ7MTEwQyAxMTc0IDExQjA7QzlBRDsxMTBDIDExNzQgMTFCMDsKK0M5QUU7QzlBRTsxMTBDIDExNzQgMTFCMTtDOUFFOzExMEMgMTE3NCAxMUIxOworQzlBRjtDOUFGOzExMEMgMTE3NCAxMUIyO0M5QUY7MTEwQyAxMTc0IDExQjI7CitDOUIwO0M5QjA7MTEwQyAxMTc0IDExQjM7QzlCMDsxMTBDIDExNzQgMTFCMzsKK0M5QjE7QzlCMTsxMTBDIDExNzQgMTFCNDtDOUIxOzExMEMgMTE3NCAxMUI0OworQzlCMjtDOUIyOzExMEMgMTE3NCAxMUI1O0M5QjI7MTEwQyAxMTc0IDExQjU7CitDOUIzO0M5QjM7MTEwQyAxMTc0IDExQjY7QzlCMzsxMTBDIDExNzQgMTFCNjsKK0M5QjQ7QzlCNDsxMTBDIDExNzQgMTFCNztDOUI0OzExMEMgMTE3NCAxMUI3OworQzlCNTtDOUI1OzExMEMgMTE3NCAxMUI4O0M5QjU7MTEwQyAxMTc0IDExQjg7CitDOUI2O0M5QjY7MTEwQyAxMTc0IDExQjk7QzlCNjsxMTBDIDExNzQgMTFCOTsKK0M5Qjc7QzlCNzsxMTBDIDExNzQgMTFCQTtDOUI3OzExMEMgMTE3NCAxMUJBOworQzlCODtDOUI4OzExMEMgMTE3NCAxMUJCO0M5Qjg7MTEwQyAxMTc0IDExQkI7CitDOUI5O0M5Qjk7MTEwQyAxMTc0IDExQkM7QzlCOTsxMTBDIDExNzQgMTFCQzsKK0M5QkE7QzlCQTsxMTBDIDExNzQgMTFCRDtDOUJBOzExMEMgMTE3NCAxMUJEOworQzlCQjtDOUJCOzExMEMgMTE3NCAxMUJFO0M5QkI7MTEwQyAxMTc0IDExQkU7CitDOUJDO0M5QkM7MTEwQyAxMTc0IDExQkY7QzlCQzsxMTBDIDExNzQgMTFCRjsKK0M5QkQ7QzlCRDsxMTBDIDExNzQgMTFDMDtDOUJEOzExMEMgMTE3NCAxMUMwOworQzlCRTtDOUJFOzExMEMgMTE3NCAxMUMxO0M5QkU7MTEwQyAxMTc0IDExQzE7CitDOUJGO0M5QkY7MTEwQyAxMTc0IDExQzI7QzlCRjsxMTBDIDExNzQgMTFDMjsKK0M5QzA7QzlDMDsxMTBDIDExNzU7QzlDMDsxMTBDIDExNzU7CitDOUMxO0M5QzE7MTEwQyAxMTc1IDExQTg7QzlDMTsxMTBDIDExNzUgMTFBODsKK0M5QzI7QzlDMjsxMTBDIDExNzUgMTFBOTtDOUMyOzExMEMgMTE3NSAxMUE5OworQzlDMztDOUMzOzExMEMgMTE3NSAxMUFBO0M5QzM7MTEwQyAxMTc1IDExQUE7CitDOUM0O0M5QzQ7MTEwQyAxMTc1IDExQUI7QzlDNDsxMTBDIDExNzUgMTFBQjsKK0M5QzU7QzlDNTsxMTBDIDExNzUgMTFBQztDOUM1OzExMEMgMTE3NSAxMUFDOworQzlDNjtDOUM2OzExMEMgMTE3NSAxMUFEO0M5QzY7MTEwQyAxMTc1IDExQUQ7CitDOUM3O0M5Qzc7MTEwQyAxMTc1IDExQUU7QzlDNzsxMTBDIDExNzUgMTFBRTsKK0M5Qzg7QzlDODsxMTBDIDExNzUgMTFBRjtDOUM4OzExMEMgMTE3NSAxMUFGOworQzlDOTtDOUM5OzExMEMgMTE3NSAxMUIwO0M5Qzk7MTEwQyAxMTc1IDExQjA7CitDOUNBO0M5Q0E7MTEwQyAxMTc1IDExQjE7QzlDQTsxMTBDIDExNzUgMTFCMTsKK0M5Q0I7QzlDQjsxMTBDIDExNzUgMTFCMjtDOUNCOzExMEMgMTE3NSAxMUIyOworQzlDQztDOUNDOzExMEMgMTE3NSAxMUIzO0M5Q0M7MTEwQyAxMTc1IDExQjM7CitDOUNEO0M5Q0Q7MTEwQyAxMTc1IDExQjQ7QzlDRDsxMTBDIDExNzUgMTFCNDsKK0M5Q0U7QzlDRTsxMTBDIDExNzUgMTFCNTtDOUNFOzExMEMgMTE3NSAxMUI1OworQzlDRjtDOUNGOzExMEMgMTE3NSAxMUI2O0M5Q0Y7MTEwQyAxMTc1IDExQjY7CitDOUQwO0M5RDA7MTEwQyAxMTc1IDExQjc7QzlEMDsxMTBDIDExNzUgMTFCNzsKK0M5RDE7QzlEMTsxMTBDIDExNzUgMTFCODtDOUQxOzExMEMgMTE3NSAxMUI4OworQzlEMjtDOUQyOzExMEMgMTE3NSAxMUI5O0M5RDI7MTEwQyAxMTc1IDExQjk7CitDOUQzO0M5RDM7MTEwQyAxMTc1IDExQkE7QzlEMzsxMTBDIDExNzUgMTFCQTsKK0M5RDQ7QzlENDsxMTBDIDExNzUgMTFCQjtDOUQ0OzExMEMgMTE3NSAxMUJCOworQzlENTtDOUQ1OzExMEMgMTE3NSAxMUJDO0M5RDU7MTEwQyAxMTc1IDExQkM7CitDOUQ2O0M5RDY7MTEwQyAxMTc1IDExQkQ7QzlENjsxMTBDIDExNzUgMTFCRDsKK0M5RDc7QzlENzsxMTBDIDExNzUgMTFCRTtDOUQ3OzExMEMgMTE3NSAxMUJFOworQzlEODtDOUQ4OzExMEMgMTE3NSAxMUJGO0M5RDg7MTEwQyAxMTc1IDExQkY7CitDOUQ5O0M5RDk7MTEwQyAxMTc1IDExQzA7QzlEOTsxMTBDIDExNzUgMTFDMDsKK0M5REE7QzlEQTsxMTBDIDExNzUgMTFDMTtDOURBOzExMEMgMTE3NSAxMUMxOworQzlEQjtDOURCOzExMEMgMTE3NSAxMUMyO0M5REI7MTEwQyAxMTc1IDExQzI7CitDOURDO0M5REM7MTEwRCAxMTYxO0M5REM7MTEwRCAxMTYxOworQzlERDtDOUREOzExMEQgMTE2MSAxMUE4O0M5REQ7MTEwRCAxMTYxIDExQTg7CitDOURFO0M5REU7MTEwRCAxMTYxIDExQTk7QzlERTsxMTBEIDExNjEgMTFBOTsKK0M5REY7QzlERjsxMTBEIDExNjEgMTFBQTtDOURGOzExMEQgMTE2MSAxMUFBOworQzlFMDtDOUUwOzExMEQgMTE2MSAxMUFCO0M5RTA7MTEwRCAxMTYxIDExQUI7CitDOUUxO0M5RTE7MTEwRCAxMTYxIDExQUM7QzlFMTsxMTBEIDExNjEgMTFBQzsKK0M5RTI7QzlFMjsxMTBEIDExNjEgMTFBRDtDOUUyOzExMEQgMTE2MSAxMUFEOworQzlFMztDOUUzOzExMEQgMTE2MSAxMUFFO0M5RTM7MTEwRCAxMTYxIDExQUU7CitDOUU0O0M5RTQ7MTEwRCAxMTYxIDExQUY7QzlFNDsxMTBEIDExNjEgMTFBRjsKK0M5RTU7QzlFNTsxMTBEIDExNjEgMTFCMDtDOUU1OzExMEQgMTE2MSAxMUIwOworQzlFNjtDOUU2OzExMEQgMTE2MSAxMUIxO0M5RTY7MTEwRCAxMTYxIDExQjE7CitDOUU3O0M5RTc7MTEwRCAxMTYxIDExQjI7QzlFNzsxMTBEIDExNjEgMTFCMjsKK0M5RTg7QzlFODsxMTBEIDExNjEgMTFCMztDOUU4OzExMEQgMTE2MSAxMUIzOworQzlFOTtDOUU5OzExMEQgMTE2MSAxMUI0O0M5RTk7MTEwRCAxMTYxIDExQjQ7CitDOUVBO0M5RUE7MTEwRCAxMTYxIDExQjU7QzlFQTsxMTBEIDExNjEgMTFCNTsKK0M5RUI7QzlFQjsxMTBEIDExNjEgMTFCNjtDOUVCOzExMEQgMTE2MSAxMUI2OworQzlFQztDOUVDOzExMEQgMTE2MSAxMUI3O0M5RUM7MTEwRCAxMTYxIDExQjc7CitDOUVEO0M5RUQ7MTEwRCAxMTYxIDExQjg7QzlFRDsxMTBEIDExNjEgMTFCODsKK0M5RUU7QzlFRTsxMTBEIDExNjEgMTFCOTtDOUVFOzExMEQgMTE2MSAxMUI5OworQzlFRjtDOUVGOzExMEQgMTE2MSAxMUJBO0M5RUY7MTEwRCAxMTYxIDExQkE7CitDOUYwO0M5RjA7MTEwRCAxMTYxIDExQkI7QzlGMDsxMTBEIDExNjEgMTFCQjsKK0M5RjE7QzlGMTsxMTBEIDExNjEgMTFCQztDOUYxOzExMEQgMTE2MSAxMUJDOworQzlGMjtDOUYyOzExMEQgMTE2MSAxMUJEO0M5RjI7MTEwRCAxMTYxIDExQkQ7CitDOUYzO0M5RjM7MTEwRCAxMTYxIDExQkU7QzlGMzsxMTBEIDExNjEgMTFCRTsKK0M5RjQ7QzlGNDsxMTBEIDExNjEgMTFCRjtDOUY0OzExMEQgMTE2MSAxMUJGOworQzlGNTtDOUY1OzExMEQgMTE2MSAxMUMwO0M5RjU7MTEwRCAxMTYxIDExQzA7CitDOUY2O0M5RjY7MTEwRCAxMTYxIDExQzE7QzlGNjsxMTBEIDExNjEgMTFDMTsKK0M5Rjc7QzlGNzsxMTBEIDExNjEgMTFDMjtDOUY3OzExMEQgMTE2MSAxMUMyOworQzlGODtDOUY4OzExMEQgMTE2MjtDOUY4OzExMEQgMTE2MjsKK0M5Rjk7QzlGOTsxMTBEIDExNjIgMTFBODtDOUY5OzExMEQgMTE2MiAxMUE4OworQzlGQTtDOUZBOzExMEQgMTE2MiAxMUE5O0M5RkE7MTEwRCAxMTYyIDExQTk7CitDOUZCO0M5RkI7MTEwRCAxMTYyIDExQUE7QzlGQjsxMTBEIDExNjIgMTFBQTsKK0M5RkM7QzlGQzsxMTBEIDExNjIgMTFBQjtDOUZDOzExMEQgMTE2MiAxMUFCOworQzlGRDtDOUZEOzExMEQgMTE2MiAxMUFDO0M5RkQ7MTEwRCAxMTYyIDExQUM7CitDOUZFO0M5RkU7MTEwRCAxMTYyIDExQUQ7QzlGRTsxMTBEIDExNjIgMTFBRDsKK0M5RkY7QzlGRjsxMTBEIDExNjIgMTFBRTtDOUZGOzExMEQgMTE2MiAxMUFFOworQ0EwMDtDQTAwOzExMEQgMTE2MiAxMUFGO0NBMDA7MTEwRCAxMTYyIDExQUY7CitDQTAxO0NBMDE7MTEwRCAxMTYyIDExQjA7Q0EwMTsxMTBEIDExNjIgMTFCMDsKK0NBMDI7Q0EwMjsxMTBEIDExNjIgMTFCMTtDQTAyOzExMEQgMTE2MiAxMUIxOworQ0EwMztDQTAzOzExMEQgMTE2MiAxMUIyO0NBMDM7MTEwRCAxMTYyIDExQjI7CitDQTA0O0NBMDQ7MTEwRCAxMTYyIDExQjM7Q0EwNDsxMTBEIDExNjIgMTFCMzsKK0NBMDU7Q0EwNTsxMTBEIDExNjIgMTFCNDtDQTA1OzExMEQgMTE2MiAxMUI0OworQ0EwNjtDQTA2OzExMEQgMTE2MiAxMUI1O0NBMDY7MTEwRCAxMTYyIDExQjU7CitDQTA3O0NBMDc7MTEwRCAxMTYyIDExQjY7Q0EwNzsxMTBEIDExNjIgMTFCNjsKK0NBMDg7Q0EwODsxMTBEIDExNjIgMTFCNztDQTA4OzExMEQgMTE2MiAxMUI3OworQ0EwOTtDQTA5OzExMEQgMTE2MiAxMUI4O0NBMDk7MTEwRCAxMTYyIDExQjg7CitDQTBBO0NBMEE7MTEwRCAxMTYyIDExQjk7Q0EwQTsxMTBEIDExNjIgMTFCOTsKK0NBMEI7Q0EwQjsxMTBEIDExNjIgMTFCQTtDQTBCOzExMEQgMTE2MiAxMUJBOworQ0EwQztDQTBDOzExMEQgMTE2MiAxMUJCO0NBMEM7MTEwRCAxMTYyIDExQkI7CitDQTBEO0NBMEQ7MTEwRCAxMTYyIDExQkM7Q0EwRDsxMTBEIDExNjIgMTFCQzsKK0NBMEU7Q0EwRTsxMTBEIDExNjIgMTFCRDtDQTBFOzExMEQgMTE2MiAxMUJEOworQ0EwRjtDQTBGOzExMEQgMTE2MiAxMUJFO0NBMEY7MTEwRCAxMTYyIDExQkU7CitDQTEwO0NBMTA7MTEwRCAxMTYyIDExQkY7Q0ExMDsxMTBEIDExNjIgMTFCRjsKK0NBMTE7Q0ExMTsxMTBEIDExNjIgMTFDMDtDQTExOzExMEQgMTE2MiAxMUMwOworQ0ExMjtDQTEyOzExMEQgMTE2MiAxMUMxO0NBMTI7MTEwRCAxMTYyIDExQzE7CitDQTEzO0NBMTM7MTEwRCAxMTYyIDExQzI7Q0ExMzsxMTBEIDExNjIgMTFDMjsKK0NBMTQ7Q0ExNDsxMTBEIDExNjM7Q0ExNDsxMTBEIDExNjM7CitDQTE1O0NBMTU7MTEwRCAxMTYzIDExQTg7Q0ExNTsxMTBEIDExNjMgMTFBODsKK0NBMTY7Q0ExNjsxMTBEIDExNjMgMTFBOTtDQTE2OzExMEQgMTE2MyAxMUE5OworQ0ExNztDQTE3OzExMEQgMTE2MyAxMUFBO0NBMTc7MTEwRCAxMTYzIDExQUE7CitDQTE4O0NBMTg7MTEwRCAxMTYzIDExQUI7Q0ExODsxMTBEIDExNjMgMTFBQjsKK0NBMTk7Q0ExOTsxMTBEIDExNjMgMTFBQztDQTE5OzExMEQgMTE2MyAxMUFDOworQ0ExQTtDQTFBOzExMEQgMTE2MyAxMUFEO0NBMUE7MTEwRCAxMTYzIDExQUQ7CitDQTFCO0NBMUI7MTEwRCAxMTYzIDExQUU7Q0ExQjsxMTBEIDExNjMgMTFBRTsKK0NBMUM7Q0ExQzsxMTBEIDExNjMgMTFBRjtDQTFDOzExMEQgMTE2MyAxMUFGOworQ0ExRDtDQTFEOzExMEQgMTE2MyAxMUIwO0NBMUQ7MTEwRCAxMTYzIDExQjA7CitDQTFFO0NBMUU7MTEwRCAxMTYzIDExQjE7Q0ExRTsxMTBEIDExNjMgMTFCMTsKK0NBMUY7Q0ExRjsxMTBEIDExNjMgMTFCMjtDQTFGOzExMEQgMTE2MyAxMUIyOworQ0EyMDtDQTIwOzExMEQgMTE2MyAxMUIzO0NBMjA7MTEwRCAxMTYzIDExQjM7CitDQTIxO0NBMjE7MTEwRCAxMTYzIDExQjQ7Q0EyMTsxMTBEIDExNjMgMTFCNDsKK0NBMjI7Q0EyMjsxMTBEIDExNjMgMTFCNTtDQTIyOzExMEQgMTE2MyAxMUI1OworQ0EyMztDQTIzOzExMEQgMTE2MyAxMUI2O0NBMjM7MTEwRCAxMTYzIDExQjY7CitDQTI0O0NBMjQ7MTEwRCAxMTYzIDExQjc7Q0EyNDsxMTBEIDExNjMgMTFCNzsKK0NBMjU7Q0EyNTsxMTBEIDExNjMgMTFCODtDQTI1OzExMEQgMTE2MyAxMUI4OworQ0EyNjtDQTI2OzExMEQgMTE2MyAxMUI5O0NBMjY7MTEwRCAxMTYzIDExQjk7CitDQTI3O0NBMjc7MTEwRCAxMTYzIDExQkE7Q0EyNzsxMTBEIDExNjMgMTFCQTsKK0NBMjg7Q0EyODsxMTBEIDExNjMgMTFCQjtDQTI4OzExMEQgMTE2MyAxMUJCOworQ0EyOTtDQTI5OzExMEQgMTE2MyAxMUJDO0NBMjk7MTEwRCAxMTYzIDExQkM7CitDQTJBO0NBMkE7MTEwRCAxMTYzIDExQkQ7Q0EyQTsxMTBEIDExNjMgMTFCRDsKK0NBMkI7Q0EyQjsxMTBEIDExNjMgMTFCRTtDQTJCOzExMEQgMTE2MyAxMUJFOworQ0EyQztDQTJDOzExMEQgMTE2MyAxMUJGO0NBMkM7MTEwRCAxMTYzIDExQkY7CitDQTJEO0NBMkQ7MTEwRCAxMTYzIDExQzA7Q0EyRDsxMTBEIDExNjMgMTFDMDsKK0NBMkU7Q0EyRTsxMTBEIDExNjMgMTFDMTtDQTJFOzExMEQgMTE2MyAxMUMxOworQ0EyRjtDQTJGOzExMEQgMTE2MyAxMUMyO0NBMkY7MTEwRCAxMTYzIDExQzI7CitDQTMwO0NBMzA7MTEwRCAxMTY0O0NBMzA7MTEwRCAxMTY0OworQ0EzMTtDQTMxOzExMEQgMTE2NCAxMUE4O0NBMzE7MTEwRCAxMTY0IDExQTg7CitDQTMyO0NBMzI7MTEwRCAxMTY0IDExQTk7Q0EzMjsxMTBEIDExNjQgMTFBOTsKK0NBMzM7Q0EzMzsxMTBEIDExNjQgMTFBQTtDQTMzOzExMEQgMTE2NCAxMUFBOworQ0EzNDtDQTM0OzExMEQgMTE2NCAxMUFCO0NBMzQ7MTEwRCAxMTY0IDExQUI7CitDQTM1O0NBMzU7MTEwRCAxMTY0IDExQUM7Q0EzNTsxMTBEIDExNjQgMTFBQzsKK0NBMzY7Q0EzNjsxMTBEIDExNjQgMTFBRDtDQTM2OzExMEQgMTE2NCAxMUFEOworQ0EzNztDQTM3OzExMEQgMTE2NCAxMUFFO0NBMzc7MTEwRCAxMTY0IDExQUU7CitDQTM4O0NBMzg7MTEwRCAxMTY0IDExQUY7Q0EzODsxMTBEIDExNjQgMTFBRjsKK0NBMzk7Q0EzOTsxMTBEIDExNjQgMTFCMDtDQTM5OzExMEQgMTE2NCAxMUIwOworQ0EzQTtDQTNBOzExMEQgMTE2NCAxMUIxO0NBM0E7MTEwRCAxMTY0IDExQjE7CitDQTNCO0NBM0I7MTEwRCAxMTY0IDExQjI7Q0EzQjsxMTBEIDExNjQgMTFCMjsKK0NBM0M7Q0EzQzsxMTBEIDExNjQgMTFCMztDQTNDOzExMEQgMTE2NCAxMUIzOworQ0EzRDtDQTNEOzExMEQgMTE2NCAxMUI0O0NBM0Q7MTEwRCAxMTY0IDExQjQ7CitDQTNFO0NBM0U7MTEwRCAxMTY0IDExQjU7Q0EzRTsxMTBEIDExNjQgMTFCNTsKK0NBM0Y7Q0EzRjsxMTBEIDExNjQgMTFCNjtDQTNGOzExMEQgMTE2NCAxMUI2OworQ0E0MDtDQTQwOzExMEQgMTE2NCAxMUI3O0NBNDA7MTEwRCAxMTY0IDExQjc7CitDQTQxO0NBNDE7MTEwRCAxMTY0IDExQjg7Q0E0MTsxMTBEIDExNjQgMTFCODsKK0NBNDI7Q0E0MjsxMTBEIDExNjQgMTFCOTtDQTQyOzExMEQgMTE2NCAxMUI5OworQ0E0MztDQTQzOzExMEQgMTE2NCAxMUJBO0NBNDM7MTEwRCAxMTY0IDExQkE7CitDQTQ0O0NBNDQ7MTEwRCAxMTY0IDExQkI7Q0E0NDsxMTBEIDExNjQgMTFCQjsKK0NBNDU7Q0E0NTsxMTBEIDExNjQgMTFCQztDQTQ1OzExMEQgMTE2NCAxMUJDOworQ0E0NjtDQTQ2OzExMEQgMTE2NCAxMUJEO0NBNDY7MTEwRCAxMTY0IDExQkQ7CitDQTQ3O0NBNDc7MTEwRCAxMTY0IDExQkU7Q0E0NzsxMTBEIDExNjQgMTFCRTsKK0NBNDg7Q0E0ODsxMTBEIDExNjQgMTFCRjtDQTQ4OzExMEQgMTE2NCAxMUJGOworQ0E0OTtDQTQ5OzExMEQgMTE2NCAxMUMwO0NBNDk7MTEwRCAxMTY0IDExQzA7CitDQTRBO0NBNEE7MTEwRCAxMTY0IDExQzE7Q0E0QTsxMTBEIDExNjQgMTFDMTsKK0NBNEI7Q0E0QjsxMTBEIDExNjQgMTFDMjtDQTRCOzExMEQgMTE2NCAxMUMyOworQ0E0QztDQTRDOzExMEQgMTE2NTtDQTRDOzExMEQgMTE2NTsKK0NBNEQ7Q0E0RDsxMTBEIDExNjUgMTFBODtDQTREOzExMEQgMTE2NSAxMUE4OworQ0E0RTtDQTRFOzExMEQgMTE2NSAxMUE5O0NBNEU7MTEwRCAxMTY1IDExQTk7CitDQTRGO0NBNEY7MTEwRCAxMTY1IDExQUE7Q0E0RjsxMTBEIDExNjUgMTFBQTsKK0NBNTA7Q0E1MDsxMTBEIDExNjUgMTFBQjtDQTUwOzExMEQgMTE2NSAxMUFCOworQ0E1MTtDQTUxOzExMEQgMTE2NSAxMUFDO0NBNTE7MTEwRCAxMTY1IDExQUM7CitDQTUyO0NBNTI7MTEwRCAxMTY1IDExQUQ7Q0E1MjsxMTBEIDExNjUgMTFBRDsKK0NBNTM7Q0E1MzsxMTBEIDExNjUgMTFBRTtDQTUzOzExMEQgMTE2NSAxMUFFOworQ0E1NDtDQTU0OzExMEQgMTE2NSAxMUFGO0NBNTQ7MTEwRCAxMTY1IDExQUY7CitDQTU1O0NBNTU7MTEwRCAxMTY1IDExQjA7Q0E1NTsxMTBEIDExNjUgMTFCMDsKK0NBNTY7Q0E1NjsxMTBEIDExNjUgMTFCMTtDQTU2OzExMEQgMTE2NSAxMUIxOworQ0E1NztDQTU3OzExMEQgMTE2NSAxMUIyO0NBNTc7MTEwRCAxMTY1IDExQjI7CitDQTU4O0NBNTg7MTEwRCAxMTY1IDExQjM7Q0E1ODsxMTBEIDExNjUgMTFCMzsKK0NBNTk7Q0E1OTsxMTBEIDExNjUgMTFCNDtDQTU5OzExMEQgMTE2NSAxMUI0OworQ0E1QTtDQTVBOzExMEQgMTE2NSAxMUI1O0NBNUE7MTEwRCAxMTY1IDExQjU7CitDQTVCO0NBNUI7MTEwRCAxMTY1IDExQjY7Q0E1QjsxMTBEIDExNjUgMTFCNjsKK0NBNUM7Q0E1QzsxMTBEIDExNjUgMTFCNztDQTVDOzExMEQgMTE2NSAxMUI3OworQ0E1RDtDQTVEOzExMEQgMTE2NSAxMUI4O0NBNUQ7MTEwRCAxMTY1IDExQjg7CitDQTVFO0NBNUU7MTEwRCAxMTY1IDExQjk7Q0E1RTsxMTBEIDExNjUgMTFCOTsKK0NBNUY7Q0E1RjsxMTBEIDExNjUgMTFCQTtDQTVGOzExMEQgMTE2NSAxMUJBOworQ0E2MDtDQTYwOzExMEQgMTE2NSAxMUJCO0NBNjA7MTEwRCAxMTY1IDExQkI7CitDQTYxO0NBNjE7MTEwRCAxMTY1IDExQkM7Q0E2MTsxMTBEIDExNjUgMTFCQzsKK0NBNjI7Q0E2MjsxMTBEIDExNjUgMTFCRDtDQTYyOzExMEQgMTE2NSAxMUJEOworQ0E2MztDQTYzOzExMEQgMTE2NSAxMUJFO0NBNjM7MTEwRCAxMTY1IDExQkU7CitDQTY0O0NBNjQ7MTEwRCAxMTY1IDExQkY7Q0E2NDsxMTBEIDExNjUgMTFCRjsKK0NBNjU7Q0E2NTsxMTBEIDExNjUgMTFDMDtDQTY1OzExMEQgMTE2NSAxMUMwOworQ0E2NjtDQTY2OzExMEQgMTE2NSAxMUMxO0NBNjY7MTEwRCAxMTY1IDExQzE7CitDQTY3O0NBNjc7MTEwRCAxMTY1IDExQzI7Q0E2NzsxMTBEIDExNjUgMTFDMjsKK0NBNjg7Q0E2ODsxMTBEIDExNjY7Q0E2ODsxMTBEIDExNjY7CitDQTY5O0NBNjk7MTEwRCAxMTY2IDExQTg7Q0E2OTsxMTBEIDExNjYgMTFBODsKK0NBNkE7Q0E2QTsxMTBEIDExNjYgMTFBOTtDQTZBOzExMEQgMTE2NiAxMUE5OworQ0E2QjtDQTZCOzExMEQgMTE2NiAxMUFBO0NBNkI7MTEwRCAxMTY2IDExQUE7CitDQTZDO0NBNkM7MTEwRCAxMTY2IDExQUI7Q0E2QzsxMTBEIDExNjYgMTFBQjsKK0NBNkQ7Q0E2RDsxMTBEIDExNjYgMTFBQztDQTZEOzExMEQgMTE2NiAxMUFDOworQ0E2RTtDQTZFOzExMEQgMTE2NiAxMUFEO0NBNkU7MTEwRCAxMTY2IDExQUQ7CitDQTZGO0NBNkY7MTEwRCAxMTY2IDExQUU7Q0E2RjsxMTBEIDExNjYgMTFBRTsKK0NBNzA7Q0E3MDsxMTBEIDExNjYgMTFBRjtDQTcwOzExMEQgMTE2NiAxMUFGOworQ0E3MTtDQTcxOzExMEQgMTE2NiAxMUIwO0NBNzE7MTEwRCAxMTY2IDExQjA7CitDQTcyO0NBNzI7MTEwRCAxMTY2IDExQjE7Q0E3MjsxMTBEIDExNjYgMTFCMTsKK0NBNzM7Q0E3MzsxMTBEIDExNjYgMTFCMjtDQTczOzExMEQgMTE2NiAxMUIyOworQ0E3NDtDQTc0OzExMEQgMTE2NiAxMUIzO0NBNzQ7MTEwRCAxMTY2IDExQjM7CitDQTc1O0NBNzU7MTEwRCAxMTY2IDExQjQ7Q0E3NTsxMTBEIDExNjYgMTFCNDsKK0NBNzY7Q0E3NjsxMTBEIDExNjYgMTFCNTtDQTc2OzExMEQgMTE2NiAxMUI1OworQ0E3NztDQTc3OzExMEQgMTE2NiAxMUI2O0NBNzc7MTEwRCAxMTY2IDExQjY7CitDQTc4O0NBNzg7MTEwRCAxMTY2IDExQjc7Q0E3ODsxMTBEIDExNjYgMTFCNzsKK0NBNzk7Q0E3OTsxMTBEIDExNjYgMTFCODtDQTc5OzExMEQgMTE2NiAxMUI4OworQ0E3QTtDQTdBOzExMEQgMTE2NiAxMUI5O0NBN0E7MTEwRCAxMTY2IDExQjk7CitDQTdCO0NBN0I7MTEwRCAxMTY2IDExQkE7Q0E3QjsxMTBEIDExNjYgMTFCQTsKK0NBN0M7Q0E3QzsxMTBEIDExNjYgMTFCQjtDQTdDOzExMEQgMTE2NiAxMUJCOworQ0E3RDtDQTdEOzExMEQgMTE2NiAxMUJDO0NBN0Q7MTEwRCAxMTY2IDExQkM7CitDQTdFO0NBN0U7MTEwRCAxMTY2IDExQkQ7Q0E3RTsxMTBEIDExNjYgMTFCRDsKK0NBN0Y7Q0E3RjsxMTBEIDExNjYgMTFCRTtDQTdGOzExMEQgMTE2NiAxMUJFOworQ0E4MDtDQTgwOzExMEQgMTE2NiAxMUJGO0NBODA7MTEwRCAxMTY2IDExQkY7CitDQTgxO0NBODE7MTEwRCAxMTY2IDExQzA7Q0E4MTsxMTBEIDExNjYgMTFDMDsKK0NBODI7Q0E4MjsxMTBEIDExNjYgMTFDMTtDQTgyOzExMEQgMTE2NiAxMUMxOworQ0E4MztDQTgzOzExMEQgMTE2NiAxMUMyO0NBODM7MTEwRCAxMTY2IDExQzI7CitDQTg0O0NBODQ7MTEwRCAxMTY3O0NBODQ7MTEwRCAxMTY3OworQ0E4NTtDQTg1OzExMEQgMTE2NyAxMUE4O0NBODU7MTEwRCAxMTY3IDExQTg7CitDQTg2O0NBODY7MTEwRCAxMTY3IDExQTk7Q0E4NjsxMTBEIDExNjcgMTFBOTsKK0NBODc7Q0E4NzsxMTBEIDExNjcgMTFBQTtDQTg3OzExMEQgMTE2NyAxMUFBOworQ0E4ODtDQTg4OzExMEQgMTE2NyAxMUFCO0NBODg7MTEwRCAxMTY3IDExQUI7CitDQTg5O0NBODk7MTEwRCAxMTY3IDExQUM7Q0E4OTsxMTBEIDExNjcgMTFBQzsKK0NBOEE7Q0E4QTsxMTBEIDExNjcgMTFBRDtDQThBOzExMEQgMTE2NyAxMUFEOworQ0E4QjtDQThCOzExMEQgMTE2NyAxMUFFO0NBOEI7MTEwRCAxMTY3IDExQUU7CitDQThDO0NBOEM7MTEwRCAxMTY3IDExQUY7Q0E4QzsxMTBEIDExNjcgMTFBRjsKK0NBOEQ7Q0E4RDsxMTBEIDExNjcgMTFCMDtDQThEOzExMEQgMTE2NyAxMUIwOworQ0E4RTtDQThFOzExMEQgMTE2NyAxMUIxO0NBOEU7MTEwRCAxMTY3IDExQjE7CitDQThGO0NBOEY7MTEwRCAxMTY3IDExQjI7Q0E4RjsxMTBEIDExNjcgMTFCMjsKK0NBOTA7Q0E5MDsxMTBEIDExNjcgMTFCMztDQTkwOzExMEQgMTE2NyAxMUIzOworQ0E5MTtDQTkxOzExMEQgMTE2NyAxMUI0O0NBOTE7MTEwRCAxMTY3IDExQjQ7CitDQTkyO0NBOTI7MTEwRCAxMTY3IDExQjU7Q0E5MjsxMTBEIDExNjcgMTFCNTsKK0NBOTM7Q0E5MzsxMTBEIDExNjcgMTFCNjtDQTkzOzExMEQgMTE2NyAxMUI2OworQ0E5NDtDQTk0OzExMEQgMTE2NyAxMUI3O0NBOTQ7MTEwRCAxMTY3IDExQjc7CitDQTk1O0NBOTU7MTEwRCAxMTY3IDExQjg7Q0E5NTsxMTBEIDExNjcgMTFCODsKK0NBOTY7Q0E5NjsxMTBEIDExNjcgMTFCOTtDQTk2OzExMEQgMTE2NyAxMUI5OworQ0E5NztDQTk3OzExMEQgMTE2NyAxMUJBO0NBOTc7MTEwRCAxMTY3IDExQkE7CitDQTk4O0NBOTg7MTEwRCAxMTY3IDExQkI7Q0E5ODsxMTBEIDExNjcgMTFCQjsKK0NBOTk7Q0E5OTsxMTBEIDExNjcgMTFCQztDQTk5OzExMEQgMTE2NyAxMUJDOworQ0E5QTtDQTlBOzExMEQgMTE2NyAxMUJEO0NBOUE7MTEwRCAxMTY3IDExQkQ7CitDQTlCO0NBOUI7MTEwRCAxMTY3IDExQkU7Q0E5QjsxMTBEIDExNjcgMTFCRTsKK0NBOUM7Q0E5QzsxMTBEIDExNjcgMTFCRjtDQTlDOzExMEQgMTE2NyAxMUJGOworQ0E5RDtDQTlEOzExMEQgMTE2NyAxMUMwO0NBOUQ7MTEwRCAxMTY3IDExQzA7CitDQTlFO0NBOUU7MTEwRCAxMTY3IDExQzE7Q0E5RTsxMTBEIDExNjcgMTFDMTsKK0NBOUY7Q0E5RjsxMTBEIDExNjcgMTFDMjtDQTlGOzExMEQgMTE2NyAxMUMyOworQ0FBMDtDQUEwOzExMEQgMTE2ODtDQUEwOzExMEQgMTE2ODsKK0NBQTE7Q0FBMTsxMTBEIDExNjggMTFBODtDQUExOzExMEQgMTE2OCAxMUE4OworQ0FBMjtDQUEyOzExMEQgMTE2OCAxMUE5O0NBQTI7MTEwRCAxMTY4IDExQTk7CitDQUEzO0NBQTM7MTEwRCAxMTY4IDExQUE7Q0FBMzsxMTBEIDExNjggMTFBQTsKK0NBQTQ7Q0FBNDsxMTBEIDExNjggMTFBQjtDQUE0OzExMEQgMTE2OCAxMUFCOworQ0FBNTtDQUE1OzExMEQgMTE2OCAxMUFDO0NBQTU7MTEwRCAxMTY4IDExQUM7CitDQUE2O0NBQTY7MTEwRCAxMTY4IDExQUQ7Q0FBNjsxMTBEIDExNjggMTFBRDsKK0NBQTc7Q0FBNzsxMTBEIDExNjggMTFBRTtDQUE3OzExMEQgMTE2OCAxMUFFOworQ0FBODtDQUE4OzExMEQgMTE2OCAxMUFGO0NBQTg7MTEwRCAxMTY4IDExQUY7CitDQUE5O0NBQTk7MTEwRCAxMTY4IDExQjA7Q0FBOTsxMTBEIDExNjggMTFCMDsKK0NBQUE7Q0FBQTsxMTBEIDExNjggMTFCMTtDQUFBOzExMEQgMTE2OCAxMUIxOworQ0FBQjtDQUFCOzExMEQgMTE2OCAxMUIyO0NBQUI7MTEwRCAxMTY4IDExQjI7CitDQUFDO0NBQUM7MTEwRCAxMTY4IDExQjM7Q0FBQzsxMTBEIDExNjggMTFCMzsKK0NBQUQ7Q0FBRDsxMTBEIDExNjggMTFCNDtDQUFEOzExMEQgMTE2OCAxMUI0OworQ0FBRTtDQUFFOzExMEQgMTE2OCAxMUI1O0NBQUU7MTEwRCAxMTY4IDExQjU7CitDQUFGO0NBQUY7MTEwRCAxMTY4IDExQjY7Q0FBRjsxMTBEIDExNjggMTFCNjsKK0NBQjA7Q0FCMDsxMTBEIDExNjggMTFCNztDQUIwOzExMEQgMTE2OCAxMUI3OworQ0FCMTtDQUIxOzExMEQgMTE2OCAxMUI4O0NBQjE7MTEwRCAxMTY4IDExQjg7CitDQUIyO0NBQjI7MTEwRCAxMTY4IDExQjk7Q0FCMjsxMTBEIDExNjggMTFCOTsKK0NBQjM7Q0FCMzsxMTBEIDExNjggMTFCQTtDQUIzOzExMEQgMTE2OCAxMUJBOworQ0FCNDtDQUI0OzExMEQgMTE2OCAxMUJCO0NBQjQ7MTEwRCAxMTY4IDExQkI7CitDQUI1O0NBQjU7MTEwRCAxMTY4IDExQkM7Q0FCNTsxMTBEIDExNjggMTFCQzsKK0NBQjY7Q0FCNjsxMTBEIDExNjggMTFCRDtDQUI2OzExMEQgMTE2OCAxMUJEOworQ0FCNztDQUI3OzExMEQgMTE2OCAxMUJFO0NBQjc7MTEwRCAxMTY4IDExQkU7CitDQUI4O0NBQjg7MTEwRCAxMTY4IDExQkY7Q0FCODsxMTBEIDExNjggMTFCRjsKK0NBQjk7Q0FCOTsxMTBEIDExNjggMTFDMDtDQUI5OzExMEQgMTE2OCAxMUMwOworQ0FCQTtDQUJBOzExMEQgMTE2OCAxMUMxO0NBQkE7MTEwRCAxMTY4IDExQzE7CitDQUJCO0NBQkI7MTEwRCAxMTY4IDExQzI7Q0FCQjsxMTBEIDExNjggMTFDMjsKK0NBQkM7Q0FCQzsxMTBEIDExNjk7Q0FCQzsxMTBEIDExNjk7CitDQUJEO0NBQkQ7MTEwRCAxMTY5IDExQTg7Q0FCRDsxMTBEIDExNjkgMTFBODsKK0NBQkU7Q0FCRTsxMTBEIDExNjkgMTFBOTtDQUJFOzExMEQgMTE2OSAxMUE5OworQ0FCRjtDQUJGOzExMEQgMTE2OSAxMUFBO0NBQkY7MTEwRCAxMTY5IDExQUE7CitDQUMwO0NBQzA7MTEwRCAxMTY5IDExQUI7Q0FDMDsxMTBEIDExNjkgMTFBQjsKK0NBQzE7Q0FDMTsxMTBEIDExNjkgMTFBQztDQUMxOzExMEQgMTE2OSAxMUFDOworQ0FDMjtDQUMyOzExMEQgMTE2OSAxMUFEO0NBQzI7MTEwRCAxMTY5IDExQUQ7CitDQUMzO0NBQzM7MTEwRCAxMTY5IDExQUU7Q0FDMzsxMTBEIDExNjkgMTFBRTsKK0NBQzQ7Q0FDNDsxMTBEIDExNjkgMTFBRjtDQUM0OzExMEQgMTE2OSAxMUFGOworQ0FDNTtDQUM1OzExMEQgMTE2OSAxMUIwO0NBQzU7MTEwRCAxMTY5IDExQjA7CitDQUM2O0NBQzY7MTEwRCAxMTY5IDExQjE7Q0FDNjsxMTBEIDExNjkgMTFCMTsKK0NBQzc7Q0FDNzsxMTBEIDExNjkgMTFCMjtDQUM3OzExMEQgMTE2OSAxMUIyOworQ0FDODtDQUM4OzExMEQgMTE2OSAxMUIzO0NBQzg7MTEwRCAxMTY5IDExQjM7CitDQUM5O0NBQzk7MTEwRCAxMTY5IDExQjQ7Q0FDOTsxMTBEIDExNjkgMTFCNDsKK0NBQ0E7Q0FDQTsxMTBEIDExNjkgMTFCNTtDQUNBOzExMEQgMTE2OSAxMUI1OworQ0FDQjtDQUNCOzExMEQgMTE2OSAxMUI2O0NBQ0I7MTEwRCAxMTY5IDExQjY7CitDQUNDO0NBQ0M7MTEwRCAxMTY5IDExQjc7Q0FDQzsxMTBEIDExNjkgMTFCNzsKK0NBQ0Q7Q0FDRDsxMTBEIDExNjkgMTFCODtDQUNEOzExMEQgMTE2OSAxMUI4OworQ0FDRTtDQUNFOzExMEQgMTE2OSAxMUI5O0NBQ0U7MTEwRCAxMTY5IDExQjk7CitDQUNGO0NBQ0Y7MTEwRCAxMTY5IDExQkE7Q0FDRjsxMTBEIDExNjkgMTFCQTsKK0NBRDA7Q0FEMDsxMTBEIDExNjkgMTFCQjtDQUQwOzExMEQgMTE2OSAxMUJCOworQ0FEMTtDQUQxOzExMEQgMTE2OSAxMUJDO0NBRDE7MTEwRCAxMTY5IDExQkM7CitDQUQyO0NBRDI7MTEwRCAxMTY5IDExQkQ7Q0FEMjsxMTBEIDExNjkgMTFCRDsKK0NBRDM7Q0FEMzsxMTBEIDExNjkgMTFCRTtDQUQzOzExMEQgMTE2OSAxMUJFOworQ0FENDtDQUQ0OzExMEQgMTE2OSAxMUJGO0NBRDQ7MTEwRCAxMTY5IDExQkY7CitDQUQ1O0NBRDU7MTEwRCAxMTY5IDExQzA7Q0FENTsxMTBEIDExNjkgMTFDMDsKK0NBRDY7Q0FENjsxMTBEIDExNjkgMTFDMTtDQUQ2OzExMEQgMTE2OSAxMUMxOworQ0FENztDQUQ3OzExMEQgMTE2OSAxMUMyO0NBRDc7MTEwRCAxMTY5IDExQzI7CitDQUQ4O0NBRDg7MTEwRCAxMTZBO0NBRDg7MTEwRCAxMTZBOworQ0FEOTtDQUQ5OzExMEQgMTE2QSAxMUE4O0NBRDk7MTEwRCAxMTZBIDExQTg7CitDQURBO0NBREE7MTEwRCAxMTZBIDExQTk7Q0FEQTsxMTBEIDExNkEgMTFBOTsKK0NBREI7Q0FEQjsxMTBEIDExNkEgMTFBQTtDQURCOzExMEQgMTE2QSAxMUFBOworQ0FEQztDQURDOzExMEQgMTE2QSAxMUFCO0NBREM7MTEwRCAxMTZBIDExQUI7CitDQUREO0NBREQ7MTEwRCAxMTZBIDExQUM7Q0FERDsxMTBEIDExNkEgMTFBQzsKK0NBREU7Q0FERTsxMTBEIDExNkEgMTFBRDtDQURFOzExMEQgMTE2QSAxMUFEOworQ0FERjtDQURGOzExMEQgMTE2QSAxMUFFO0NBREY7MTEwRCAxMTZBIDExQUU7CitDQUUwO0NBRTA7MTEwRCAxMTZBIDExQUY7Q0FFMDsxMTBEIDExNkEgMTFBRjsKK0NBRTE7Q0FFMTsxMTBEIDExNkEgMTFCMDtDQUUxOzExMEQgMTE2QSAxMUIwOworQ0FFMjtDQUUyOzExMEQgMTE2QSAxMUIxO0NBRTI7MTEwRCAxMTZBIDExQjE7CitDQUUzO0NBRTM7MTEwRCAxMTZBIDExQjI7Q0FFMzsxMTBEIDExNkEgMTFCMjsKK0NBRTQ7Q0FFNDsxMTBEIDExNkEgMTFCMztDQUU0OzExMEQgMTE2QSAxMUIzOworQ0FFNTtDQUU1OzExMEQgMTE2QSAxMUI0O0NBRTU7MTEwRCAxMTZBIDExQjQ7CitDQUU2O0NBRTY7MTEwRCAxMTZBIDExQjU7Q0FFNjsxMTBEIDExNkEgMTFCNTsKK0NBRTc7Q0FFNzsxMTBEIDExNkEgMTFCNjtDQUU3OzExMEQgMTE2QSAxMUI2OworQ0FFODtDQUU4OzExMEQgMTE2QSAxMUI3O0NBRTg7MTEwRCAxMTZBIDExQjc7CitDQUU5O0NBRTk7MTEwRCAxMTZBIDExQjg7Q0FFOTsxMTBEIDExNkEgMTFCODsKK0NBRUE7Q0FFQTsxMTBEIDExNkEgMTFCOTtDQUVBOzExMEQgMTE2QSAxMUI5OworQ0FFQjtDQUVCOzExMEQgMTE2QSAxMUJBO0NBRUI7MTEwRCAxMTZBIDExQkE7CitDQUVDO0NBRUM7MTEwRCAxMTZBIDExQkI7Q0FFQzsxMTBEIDExNkEgMTFCQjsKK0NBRUQ7Q0FFRDsxMTBEIDExNkEgMTFCQztDQUVEOzExMEQgMTE2QSAxMUJDOworQ0FFRTtDQUVFOzExMEQgMTE2QSAxMUJEO0NBRUU7MTEwRCAxMTZBIDExQkQ7CitDQUVGO0NBRUY7MTEwRCAxMTZBIDExQkU7Q0FFRjsxMTBEIDExNkEgMTFCRTsKK0NBRjA7Q0FGMDsxMTBEIDExNkEgMTFCRjtDQUYwOzExMEQgMTE2QSAxMUJGOworQ0FGMTtDQUYxOzExMEQgMTE2QSAxMUMwO0NBRjE7MTEwRCAxMTZBIDExQzA7CitDQUYyO0NBRjI7MTEwRCAxMTZBIDExQzE7Q0FGMjsxMTBEIDExNkEgMTFDMTsKK0NBRjM7Q0FGMzsxMTBEIDExNkEgMTFDMjtDQUYzOzExMEQgMTE2QSAxMUMyOworQ0FGNDtDQUY0OzExMEQgMTE2QjtDQUY0OzExMEQgMTE2QjsKK0NBRjU7Q0FGNTsxMTBEIDExNkIgMTFBODtDQUY1OzExMEQgMTE2QiAxMUE4OworQ0FGNjtDQUY2OzExMEQgMTE2QiAxMUE5O0NBRjY7MTEwRCAxMTZCIDExQTk7CitDQUY3O0NBRjc7MTEwRCAxMTZCIDExQUE7Q0FGNzsxMTBEIDExNkIgMTFBQTsKK0NBRjg7Q0FGODsxMTBEIDExNkIgMTFBQjtDQUY4OzExMEQgMTE2QiAxMUFCOworQ0FGOTtDQUY5OzExMEQgMTE2QiAxMUFDO0NBRjk7MTEwRCAxMTZCIDExQUM7CitDQUZBO0NBRkE7MTEwRCAxMTZCIDExQUQ7Q0FGQTsxMTBEIDExNkIgMTFBRDsKK0NBRkI7Q0FGQjsxMTBEIDExNkIgMTFBRTtDQUZCOzExMEQgMTE2QiAxMUFFOworQ0FGQztDQUZDOzExMEQgMTE2QiAxMUFGO0NBRkM7MTEwRCAxMTZCIDExQUY7CitDQUZEO0NBRkQ7MTEwRCAxMTZCIDExQjA7Q0FGRDsxMTBEIDExNkIgMTFCMDsKK0NBRkU7Q0FGRTsxMTBEIDExNkIgMTFCMTtDQUZFOzExMEQgMTE2QiAxMUIxOworQ0FGRjtDQUZGOzExMEQgMTE2QiAxMUIyO0NBRkY7MTEwRCAxMTZCIDExQjI7CitDQjAwO0NCMDA7MTEwRCAxMTZCIDExQjM7Q0IwMDsxMTBEIDExNkIgMTFCMzsKK0NCMDE7Q0IwMTsxMTBEIDExNkIgMTFCNDtDQjAxOzExMEQgMTE2QiAxMUI0OworQ0IwMjtDQjAyOzExMEQgMTE2QiAxMUI1O0NCMDI7MTEwRCAxMTZCIDExQjU7CitDQjAzO0NCMDM7MTEwRCAxMTZCIDExQjY7Q0IwMzsxMTBEIDExNkIgMTFCNjsKK0NCMDQ7Q0IwNDsxMTBEIDExNkIgMTFCNztDQjA0OzExMEQgMTE2QiAxMUI3OworQ0IwNTtDQjA1OzExMEQgMTE2QiAxMUI4O0NCMDU7MTEwRCAxMTZCIDExQjg7CitDQjA2O0NCMDY7MTEwRCAxMTZCIDExQjk7Q0IwNjsxMTBEIDExNkIgMTFCOTsKK0NCMDc7Q0IwNzsxMTBEIDExNkIgMTFCQTtDQjA3OzExMEQgMTE2QiAxMUJBOworQ0IwODtDQjA4OzExMEQgMTE2QiAxMUJCO0NCMDg7MTEwRCAxMTZCIDExQkI7CitDQjA5O0NCMDk7MTEwRCAxMTZCIDExQkM7Q0IwOTsxMTBEIDExNkIgMTFCQzsKK0NCMEE7Q0IwQTsxMTBEIDExNkIgMTFCRDtDQjBBOzExMEQgMTE2QiAxMUJEOworQ0IwQjtDQjBCOzExMEQgMTE2QiAxMUJFO0NCMEI7MTEwRCAxMTZCIDExQkU7CitDQjBDO0NCMEM7MTEwRCAxMTZCIDExQkY7Q0IwQzsxMTBEIDExNkIgMTFCRjsKK0NCMEQ7Q0IwRDsxMTBEIDExNkIgMTFDMDtDQjBEOzExMEQgMTE2QiAxMUMwOworQ0IwRTtDQjBFOzExMEQgMTE2QiAxMUMxO0NCMEU7MTEwRCAxMTZCIDExQzE7CitDQjBGO0NCMEY7MTEwRCAxMTZCIDExQzI7Q0IwRjsxMTBEIDExNkIgMTFDMjsKK0NCMTA7Q0IxMDsxMTBEIDExNkM7Q0IxMDsxMTBEIDExNkM7CitDQjExO0NCMTE7MTEwRCAxMTZDIDExQTg7Q0IxMTsxMTBEIDExNkMgMTFBODsKK0NCMTI7Q0IxMjsxMTBEIDExNkMgMTFBOTtDQjEyOzExMEQgMTE2QyAxMUE5OworQ0IxMztDQjEzOzExMEQgMTE2QyAxMUFBO0NCMTM7MTEwRCAxMTZDIDExQUE7CitDQjE0O0NCMTQ7MTEwRCAxMTZDIDExQUI7Q0IxNDsxMTBEIDExNkMgMTFBQjsKK0NCMTU7Q0IxNTsxMTBEIDExNkMgMTFBQztDQjE1OzExMEQgMTE2QyAxMUFDOworQ0IxNjtDQjE2OzExMEQgMTE2QyAxMUFEO0NCMTY7MTEwRCAxMTZDIDExQUQ7CitDQjE3O0NCMTc7MTEwRCAxMTZDIDExQUU7Q0IxNzsxMTBEIDExNkMgMTFBRTsKK0NCMTg7Q0IxODsxMTBEIDExNkMgMTFBRjtDQjE4OzExMEQgMTE2QyAxMUFGOworQ0IxOTtDQjE5OzExMEQgMTE2QyAxMUIwO0NCMTk7MTEwRCAxMTZDIDExQjA7CitDQjFBO0NCMUE7MTEwRCAxMTZDIDExQjE7Q0IxQTsxMTBEIDExNkMgMTFCMTsKK0NCMUI7Q0IxQjsxMTBEIDExNkMgMTFCMjtDQjFCOzExMEQgMTE2QyAxMUIyOworQ0IxQztDQjFDOzExMEQgMTE2QyAxMUIzO0NCMUM7MTEwRCAxMTZDIDExQjM7CitDQjFEO0NCMUQ7MTEwRCAxMTZDIDExQjQ7Q0IxRDsxMTBEIDExNkMgMTFCNDsKK0NCMUU7Q0IxRTsxMTBEIDExNkMgMTFCNTtDQjFFOzExMEQgMTE2QyAxMUI1OworQ0IxRjtDQjFGOzExMEQgMTE2QyAxMUI2O0NCMUY7MTEwRCAxMTZDIDExQjY7CitDQjIwO0NCMjA7MTEwRCAxMTZDIDExQjc7Q0IyMDsxMTBEIDExNkMgMTFCNzsKK0NCMjE7Q0IyMTsxMTBEIDExNkMgMTFCODtDQjIxOzExMEQgMTE2QyAxMUI4OworQ0IyMjtDQjIyOzExMEQgMTE2QyAxMUI5O0NCMjI7MTEwRCAxMTZDIDExQjk7CitDQjIzO0NCMjM7MTEwRCAxMTZDIDExQkE7Q0IyMzsxMTBEIDExNkMgMTFCQTsKK0NCMjQ7Q0IyNDsxMTBEIDExNkMgMTFCQjtDQjI0OzExMEQgMTE2QyAxMUJCOworQ0IyNTtDQjI1OzExMEQgMTE2QyAxMUJDO0NCMjU7MTEwRCAxMTZDIDExQkM7CitDQjI2O0NCMjY7MTEwRCAxMTZDIDExQkQ7Q0IyNjsxMTBEIDExNkMgMTFCRDsKK0NCMjc7Q0IyNzsxMTBEIDExNkMgMTFCRTtDQjI3OzExMEQgMTE2QyAxMUJFOworQ0IyODtDQjI4OzExMEQgMTE2QyAxMUJGO0NCMjg7MTEwRCAxMTZDIDExQkY7CitDQjI5O0NCMjk7MTEwRCAxMTZDIDExQzA7Q0IyOTsxMTBEIDExNkMgMTFDMDsKK0NCMkE7Q0IyQTsxMTBEIDExNkMgMTFDMTtDQjJBOzExMEQgMTE2QyAxMUMxOworQ0IyQjtDQjJCOzExMEQgMTE2QyAxMUMyO0NCMkI7MTEwRCAxMTZDIDExQzI7CitDQjJDO0NCMkM7MTEwRCAxMTZEO0NCMkM7MTEwRCAxMTZEOworQ0IyRDtDQjJEOzExMEQgMTE2RCAxMUE4O0NCMkQ7MTEwRCAxMTZEIDExQTg7CitDQjJFO0NCMkU7MTEwRCAxMTZEIDExQTk7Q0IyRTsxMTBEIDExNkQgMTFBOTsKK0NCMkY7Q0IyRjsxMTBEIDExNkQgMTFBQTtDQjJGOzExMEQgMTE2RCAxMUFBOworQ0IzMDtDQjMwOzExMEQgMTE2RCAxMUFCO0NCMzA7MTEwRCAxMTZEIDExQUI7CitDQjMxO0NCMzE7MTEwRCAxMTZEIDExQUM7Q0IzMTsxMTBEIDExNkQgMTFBQzsKK0NCMzI7Q0IzMjsxMTBEIDExNkQgMTFBRDtDQjMyOzExMEQgMTE2RCAxMUFEOworQ0IzMztDQjMzOzExMEQgMTE2RCAxMUFFO0NCMzM7MTEwRCAxMTZEIDExQUU7CitDQjM0O0NCMzQ7MTEwRCAxMTZEIDExQUY7Q0IzNDsxMTBEIDExNkQgMTFBRjsKK0NCMzU7Q0IzNTsxMTBEIDExNkQgMTFCMDtDQjM1OzExMEQgMTE2RCAxMUIwOworQ0IzNjtDQjM2OzExMEQgMTE2RCAxMUIxO0NCMzY7MTEwRCAxMTZEIDExQjE7CitDQjM3O0NCMzc7MTEwRCAxMTZEIDExQjI7Q0IzNzsxMTBEIDExNkQgMTFCMjsKK0NCMzg7Q0IzODsxMTBEIDExNkQgMTFCMztDQjM4OzExMEQgMTE2RCAxMUIzOworQ0IzOTtDQjM5OzExMEQgMTE2RCAxMUI0O0NCMzk7MTEwRCAxMTZEIDExQjQ7CitDQjNBO0NCM0E7MTEwRCAxMTZEIDExQjU7Q0IzQTsxMTBEIDExNkQgMTFCNTsKK0NCM0I7Q0IzQjsxMTBEIDExNkQgMTFCNjtDQjNCOzExMEQgMTE2RCAxMUI2OworQ0IzQztDQjNDOzExMEQgMTE2RCAxMUI3O0NCM0M7MTEwRCAxMTZEIDExQjc7CitDQjNEO0NCM0Q7MTEwRCAxMTZEIDExQjg7Q0IzRDsxMTBEIDExNkQgMTFCODsKK0NCM0U7Q0IzRTsxMTBEIDExNkQgMTFCOTtDQjNFOzExMEQgMTE2RCAxMUI5OworQ0IzRjtDQjNGOzExMEQgMTE2RCAxMUJBO0NCM0Y7MTEwRCAxMTZEIDExQkE7CitDQjQwO0NCNDA7MTEwRCAxMTZEIDExQkI7Q0I0MDsxMTBEIDExNkQgMTFCQjsKK0NCNDE7Q0I0MTsxMTBEIDExNkQgMTFCQztDQjQxOzExMEQgMTE2RCAxMUJDOworQ0I0MjtDQjQyOzExMEQgMTE2RCAxMUJEO0NCNDI7MTEwRCAxMTZEIDExQkQ7CitDQjQzO0NCNDM7MTEwRCAxMTZEIDExQkU7Q0I0MzsxMTBEIDExNkQgMTFCRTsKK0NCNDQ7Q0I0NDsxMTBEIDExNkQgMTFCRjtDQjQ0OzExMEQgMTE2RCAxMUJGOworQ0I0NTtDQjQ1OzExMEQgMTE2RCAxMUMwO0NCNDU7MTEwRCAxMTZEIDExQzA7CitDQjQ2O0NCNDY7MTEwRCAxMTZEIDExQzE7Q0I0NjsxMTBEIDExNkQgMTFDMTsKK0NCNDc7Q0I0NzsxMTBEIDExNkQgMTFDMjtDQjQ3OzExMEQgMTE2RCAxMUMyOworQ0I0ODtDQjQ4OzExMEQgMTE2RTtDQjQ4OzExMEQgMTE2RTsKK0NCNDk7Q0I0OTsxMTBEIDExNkUgMTFBODtDQjQ5OzExMEQgMTE2RSAxMUE4OworQ0I0QTtDQjRBOzExMEQgMTE2RSAxMUE5O0NCNEE7MTEwRCAxMTZFIDExQTk7CitDQjRCO0NCNEI7MTEwRCAxMTZFIDExQUE7Q0I0QjsxMTBEIDExNkUgMTFBQTsKK0NCNEM7Q0I0QzsxMTBEIDExNkUgMTFBQjtDQjRDOzExMEQgMTE2RSAxMUFCOworQ0I0RDtDQjREOzExMEQgMTE2RSAxMUFDO0NCNEQ7MTEwRCAxMTZFIDExQUM7CitDQjRFO0NCNEU7MTEwRCAxMTZFIDExQUQ7Q0I0RTsxMTBEIDExNkUgMTFBRDsKK0NCNEY7Q0I0RjsxMTBEIDExNkUgMTFBRTtDQjRGOzExMEQgMTE2RSAxMUFFOworQ0I1MDtDQjUwOzExMEQgMTE2RSAxMUFGO0NCNTA7MTEwRCAxMTZFIDExQUY7CitDQjUxO0NCNTE7MTEwRCAxMTZFIDExQjA7Q0I1MTsxMTBEIDExNkUgMTFCMDsKK0NCNTI7Q0I1MjsxMTBEIDExNkUgMTFCMTtDQjUyOzExMEQgMTE2RSAxMUIxOworQ0I1MztDQjUzOzExMEQgMTE2RSAxMUIyO0NCNTM7MTEwRCAxMTZFIDExQjI7CitDQjU0O0NCNTQ7MTEwRCAxMTZFIDExQjM7Q0I1NDsxMTBEIDExNkUgMTFCMzsKK0NCNTU7Q0I1NTsxMTBEIDExNkUgMTFCNDtDQjU1OzExMEQgMTE2RSAxMUI0OworQ0I1NjtDQjU2OzExMEQgMTE2RSAxMUI1O0NCNTY7MTEwRCAxMTZFIDExQjU7CitDQjU3O0NCNTc7MTEwRCAxMTZFIDExQjY7Q0I1NzsxMTBEIDExNkUgMTFCNjsKK0NCNTg7Q0I1ODsxMTBEIDExNkUgMTFCNztDQjU4OzExMEQgMTE2RSAxMUI3OworQ0I1OTtDQjU5OzExMEQgMTE2RSAxMUI4O0NCNTk7MTEwRCAxMTZFIDExQjg7CitDQjVBO0NCNUE7MTEwRCAxMTZFIDExQjk7Q0I1QTsxMTBEIDExNkUgMTFCOTsKK0NCNUI7Q0I1QjsxMTBEIDExNkUgMTFCQTtDQjVCOzExMEQgMTE2RSAxMUJBOworQ0I1QztDQjVDOzExMEQgMTE2RSAxMUJCO0NCNUM7MTEwRCAxMTZFIDExQkI7CitDQjVEO0NCNUQ7MTEwRCAxMTZFIDExQkM7Q0I1RDsxMTBEIDExNkUgMTFCQzsKK0NCNUU7Q0I1RTsxMTBEIDExNkUgMTFCRDtDQjVFOzExMEQgMTE2RSAxMUJEOworQ0I1RjtDQjVGOzExMEQgMTE2RSAxMUJFO0NCNUY7MTEwRCAxMTZFIDExQkU7CitDQjYwO0NCNjA7MTEwRCAxMTZFIDExQkY7Q0I2MDsxMTBEIDExNkUgMTFCRjsKK0NCNjE7Q0I2MTsxMTBEIDExNkUgMTFDMDtDQjYxOzExMEQgMTE2RSAxMUMwOworQ0I2MjtDQjYyOzExMEQgMTE2RSAxMUMxO0NCNjI7MTEwRCAxMTZFIDExQzE7CitDQjYzO0NCNjM7MTEwRCAxMTZFIDExQzI7Q0I2MzsxMTBEIDExNkUgMTFDMjsKK0NCNjQ7Q0I2NDsxMTBEIDExNkY7Q0I2NDsxMTBEIDExNkY7CitDQjY1O0NCNjU7MTEwRCAxMTZGIDExQTg7Q0I2NTsxMTBEIDExNkYgMTFBODsKK0NCNjY7Q0I2NjsxMTBEIDExNkYgMTFBOTtDQjY2OzExMEQgMTE2RiAxMUE5OworQ0I2NztDQjY3OzExMEQgMTE2RiAxMUFBO0NCNjc7MTEwRCAxMTZGIDExQUE7CitDQjY4O0NCNjg7MTEwRCAxMTZGIDExQUI7Q0I2ODsxMTBEIDExNkYgMTFBQjsKK0NCNjk7Q0I2OTsxMTBEIDExNkYgMTFBQztDQjY5OzExMEQgMTE2RiAxMUFDOworQ0I2QTtDQjZBOzExMEQgMTE2RiAxMUFEO0NCNkE7MTEwRCAxMTZGIDExQUQ7CitDQjZCO0NCNkI7MTEwRCAxMTZGIDExQUU7Q0I2QjsxMTBEIDExNkYgMTFBRTsKK0NCNkM7Q0I2QzsxMTBEIDExNkYgMTFBRjtDQjZDOzExMEQgMTE2RiAxMUFGOworQ0I2RDtDQjZEOzExMEQgMTE2RiAxMUIwO0NCNkQ7MTEwRCAxMTZGIDExQjA7CitDQjZFO0NCNkU7MTEwRCAxMTZGIDExQjE7Q0I2RTsxMTBEIDExNkYgMTFCMTsKK0NCNkY7Q0I2RjsxMTBEIDExNkYgMTFCMjtDQjZGOzExMEQgMTE2RiAxMUIyOworQ0I3MDtDQjcwOzExMEQgMTE2RiAxMUIzO0NCNzA7MTEwRCAxMTZGIDExQjM7CitDQjcxO0NCNzE7MTEwRCAxMTZGIDExQjQ7Q0I3MTsxMTBEIDExNkYgMTFCNDsKK0NCNzI7Q0I3MjsxMTBEIDExNkYgMTFCNTtDQjcyOzExMEQgMTE2RiAxMUI1OworQ0I3MztDQjczOzExMEQgMTE2RiAxMUI2O0NCNzM7MTEwRCAxMTZGIDExQjY7CitDQjc0O0NCNzQ7MTEwRCAxMTZGIDExQjc7Q0I3NDsxMTBEIDExNkYgMTFCNzsKK0NCNzU7Q0I3NTsxMTBEIDExNkYgMTFCODtDQjc1OzExMEQgMTE2RiAxMUI4OworQ0I3NjtDQjc2OzExMEQgMTE2RiAxMUI5O0NCNzY7MTEwRCAxMTZGIDExQjk7CitDQjc3O0NCNzc7MTEwRCAxMTZGIDExQkE7Q0I3NzsxMTBEIDExNkYgMTFCQTsKK0NCNzg7Q0I3ODsxMTBEIDExNkYgMTFCQjtDQjc4OzExMEQgMTE2RiAxMUJCOworQ0I3OTtDQjc5OzExMEQgMTE2RiAxMUJDO0NCNzk7MTEwRCAxMTZGIDExQkM7CitDQjdBO0NCN0E7MTEwRCAxMTZGIDExQkQ7Q0I3QTsxMTBEIDExNkYgMTFCRDsKK0NCN0I7Q0I3QjsxMTBEIDExNkYgMTFCRTtDQjdCOzExMEQgMTE2RiAxMUJFOworQ0I3QztDQjdDOzExMEQgMTE2RiAxMUJGO0NCN0M7MTEwRCAxMTZGIDExQkY7CitDQjdEO0NCN0Q7MTEwRCAxMTZGIDExQzA7Q0I3RDsxMTBEIDExNkYgMTFDMDsKK0NCN0U7Q0I3RTsxMTBEIDExNkYgMTFDMTtDQjdFOzExMEQgMTE2RiAxMUMxOworQ0I3RjtDQjdGOzExMEQgMTE2RiAxMUMyO0NCN0Y7MTEwRCAxMTZGIDExQzI7CitDQjgwO0NCODA7MTEwRCAxMTcwO0NCODA7MTEwRCAxMTcwOworQ0I4MTtDQjgxOzExMEQgMTE3MCAxMUE4O0NCODE7MTEwRCAxMTcwIDExQTg7CitDQjgyO0NCODI7MTEwRCAxMTcwIDExQTk7Q0I4MjsxMTBEIDExNzAgMTFBOTsKK0NCODM7Q0I4MzsxMTBEIDExNzAgMTFBQTtDQjgzOzExMEQgMTE3MCAxMUFBOworQ0I4NDtDQjg0OzExMEQgMTE3MCAxMUFCO0NCODQ7MTEwRCAxMTcwIDExQUI7CitDQjg1O0NCODU7MTEwRCAxMTcwIDExQUM7Q0I4NTsxMTBEIDExNzAgMTFBQzsKK0NCODY7Q0I4NjsxMTBEIDExNzAgMTFBRDtDQjg2OzExMEQgMTE3MCAxMUFEOworQ0I4NztDQjg3OzExMEQgMTE3MCAxMUFFO0NCODc7MTEwRCAxMTcwIDExQUU7CitDQjg4O0NCODg7MTEwRCAxMTcwIDExQUY7Q0I4ODsxMTBEIDExNzAgMTFBRjsKK0NCODk7Q0I4OTsxMTBEIDExNzAgMTFCMDtDQjg5OzExMEQgMTE3MCAxMUIwOworQ0I4QTtDQjhBOzExMEQgMTE3MCAxMUIxO0NCOEE7MTEwRCAxMTcwIDExQjE7CitDQjhCO0NCOEI7MTEwRCAxMTcwIDExQjI7Q0I4QjsxMTBEIDExNzAgMTFCMjsKK0NCOEM7Q0I4QzsxMTBEIDExNzAgMTFCMztDQjhDOzExMEQgMTE3MCAxMUIzOworQ0I4RDtDQjhEOzExMEQgMTE3MCAxMUI0O0NCOEQ7MTEwRCAxMTcwIDExQjQ7CitDQjhFO0NCOEU7MTEwRCAxMTcwIDExQjU7Q0I4RTsxMTBEIDExNzAgMTFCNTsKK0NCOEY7Q0I4RjsxMTBEIDExNzAgMTFCNjtDQjhGOzExMEQgMTE3MCAxMUI2OworQ0I5MDtDQjkwOzExMEQgMTE3MCAxMUI3O0NCOTA7MTEwRCAxMTcwIDExQjc7CitDQjkxO0NCOTE7MTEwRCAxMTcwIDExQjg7Q0I5MTsxMTBEIDExNzAgMTFCODsKK0NCOTI7Q0I5MjsxMTBEIDExNzAgMTFCOTtDQjkyOzExMEQgMTE3MCAxMUI5OworQ0I5MztDQjkzOzExMEQgMTE3MCAxMUJBO0NCOTM7MTEwRCAxMTcwIDExQkE7CitDQjk0O0NCOTQ7MTEwRCAxMTcwIDExQkI7Q0I5NDsxMTBEIDExNzAgMTFCQjsKK0NCOTU7Q0I5NTsxMTBEIDExNzAgMTFCQztDQjk1OzExMEQgMTE3MCAxMUJDOworQ0I5NjtDQjk2OzExMEQgMTE3MCAxMUJEO0NCOTY7MTEwRCAxMTcwIDExQkQ7CitDQjk3O0NCOTc7MTEwRCAxMTcwIDExQkU7Q0I5NzsxMTBEIDExNzAgMTFCRTsKK0NCOTg7Q0I5ODsxMTBEIDExNzAgMTFCRjtDQjk4OzExMEQgMTE3MCAxMUJGOworQ0I5OTtDQjk5OzExMEQgMTE3MCAxMUMwO0NCOTk7MTEwRCAxMTcwIDExQzA7CitDQjlBO0NCOUE7MTEwRCAxMTcwIDExQzE7Q0I5QTsxMTBEIDExNzAgMTFDMTsKK0NCOUI7Q0I5QjsxMTBEIDExNzAgMTFDMjtDQjlCOzExMEQgMTE3MCAxMUMyOworQ0I5QztDQjlDOzExMEQgMTE3MTtDQjlDOzExMEQgMTE3MTsKK0NCOUQ7Q0I5RDsxMTBEIDExNzEgMTFBODtDQjlEOzExMEQgMTE3MSAxMUE4OworQ0I5RTtDQjlFOzExMEQgMTE3MSAxMUE5O0NCOUU7MTEwRCAxMTcxIDExQTk7CitDQjlGO0NCOUY7MTEwRCAxMTcxIDExQUE7Q0I5RjsxMTBEIDExNzEgMTFBQTsKK0NCQTA7Q0JBMDsxMTBEIDExNzEgMTFBQjtDQkEwOzExMEQgMTE3MSAxMUFCOworQ0JBMTtDQkExOzExMEQgMTE3MSAxMUFDO0NCQTE7MTEwRCAxMTcxIDExQUM7CitDQkEyO0NCQTI7MTEwRCAxMTcxIDExQUQ7Q0JBMjsxMTBEIDExNzEgMTFBRDsKK0NCQTM7Q0JBMzsxMTBEIDExNzEgMTFBRTtDQkEzOzExMEQgMTE3MSAxMUFFOworQ0JBNDtDQkE0OzExMEQgMTE3MSAxMUFGO0NCQTQ7MTEwRCAxMTcxIDExQUY7CitDQkE1O0NCQTU7MTEwRCAxMTcxIDExQjA7Q0JBNTsxMTBEIDExNzEgMTFCMDsKK0NCQTY7Q0JBNjsxMTBEIDExNzEgMTFCMTtDQkE2OzExMEQgMTE3MSAxMUIxOworQ0JBNztDQkE3OzExMEQgMTE3MSAxMUIyO0NCQTc7MTEwRCAxMTcxIDExQjI7CitDQkE4O0NCQTg7MTEwRCAxMTcxIDExQjM7Q0JBODsxMTBEIDExNzEgMTFCMzsKK0NCQTk7Q0JBOTsxMTBEIDExNzEgMTFCNDtDQkE5OzExMEQgMTE3MSAxMUI0OworQ0JBQTtDQkFBOzExMEQgMTE3MSAxMUI1O0NCQUE7MTEwRCAxMTcxIDExQjU7CitDQkFCO0NCQUI7MTEwRCAxMTcxIDExQjY7Q0JBQjsxMTBEIDExNzEgMTFCNjsKK0NCQUM7Q0JBQzsxMTBEIDExNzEgMTFCNztDQkFDOzExMEQgMTE3MSAxMUI3OworQ0JBRDtDQkFEOzExMEQgMTE3MSAxMUI4O0NCQUQ7MTEwRCAxMTcxIDExQjg7CitDQkFFO0NCQUU7MTEwRCAxMTcxIDExQjk7Q0JBRTsxMTBEIDExNzEgMTFCOTsKK0NCQUY7Q0JBRjsxMTBEIDExNzEgMTFCQTtDQkFGOzExMEQgMTE3MSAxMUJBOworQ0JCMDtDQkIwOzExMEQgMTE3MSAxMUJCO0NCQjA7MTEwRCAxMTcxIDExQkI7CitDQkIxO0NCQjE7MTEwRCAxMTcxIDExQkM7Q0JCMTsxMTBEIDExNzEgMTFCQzsKK0NCQjI7Q0JCMjsxMTBEIDExNzEgMTFCRDtDQkIyOzExMEQgMTE3MSAxMUJEOworQ0JCMztDQkIzOzExMEQgMTE3MSAxMUJFO0NCQjM7MTEwRCAxMTcxIDExQkU7CitDQkI0O0NCQjQ7MTEwRCAxMTcxIDExQkY7Q0JCNDsxMTBEIDExNzEgMTFCRjsKK0NCQjU7Q0JCNTsxMTBEIDExNzEgMTFDMDtDQkI1OzExMEQgMTE3MSAxMUMwOworQ0JCNjtDQkI2OzExMEQgMTE3MSAxMUMxO0NCQjY7MTEwRCAxMTcxIDExQzE7CitDQkI3O0NCQjc7MTEwRCAxMTcxIDExQzI7Q0JCNzsxMTBEIDExNzEgMTFDMjsKK0NCQjg7Q0JCODsxMTBEIDExNzI7Q0JCODsxMTBEIDExNzI7CitDQkI5O0NCQjk7MTEwRCAxMTcyIDExQTg7Q0JCOTsxMTBEIDExNzIgMTFBODsKK0NCQkE7Q0JCQTsxMTBEIDExNzIgMTFBOTtDQkJBOzExMEQgMTE3MiAxMUE5OworQ0JCQjtDQkJCOzExMEQgMTE3MiAxMUFBO0NCQkI7MTEwRCAxMTcyIDExQUE7CitDQkJDO0NCQkM7MTEwRCAxMTcyIDExQUI7Q0JCQzsxMTBEIDExNzIgMTFBQjsKK0NCQkQ7Q0JCRDsxMTBEIDExNzIgMTFBQztDQkJEOzExMEQgMTE3MiAxMUFDOworQ0JCRTtDQkJFOzExMEQgMTE3MiAxMUFEO0NCQkU7MTEwRCAxMTcyIDExQUQ7CitDQkJGO0NCQkY7MTEwRCAxMTcyIDExQUU7Q0JCRjsxMTBEIDExNzIgMTFBRTsKK0NCQzA7Q0JDMDsxMTBEIDExNzIgMTFBRjtDQkMwOzExMEQgMTE3MiAxMUFGOworQ0JDMTtDQkMxOzExMEQgMTE3MiAxMUIwO0NCQzE7MTEwRCAxMTcyIDExQjA7CitDQkMyO0NCQzI7MTEwRCAxMTcyIDExQjE7Q0JDMjsxMTBEIDExNzIgMTFCMTsKK0NCQzM7Q0JDMzsxMTBEIDExNzIgMTFCMjtDQkMzOzExMEQgMTE3MiAxMUIyOworQ0JDNDtDQkM0OzExMEQgMTE3MiAxMUIzO0NCQzQ7MTEwRCAxMTcyIDExQjM7CitDQkM1O0NCQzU7MTEwRCAxMTcyIDExQjQ7Q0JDNTsxMTBEIDExNzIgMTFCNDsKK0NCQzY7Q0JDNjsxMTBEIDExNzIgMTFCNTtDQkM2OzExMEQgMTE3MiAxMUI1OworQ0JDNztDQkM3OzExMEQgMTE3MiAxMUI2O0NCQzc7MTEwRCAxMTcyIDExQjY7CitDQkM4O0NCQzg7MTEwRCAxMTcyIDExQjc7Q0JDODsxMTBEIDExNzIgMTFCNzsKK0NCQzk7Q0JDOTsxMTBEIDExNzIgMTFCODtDQkM5OzExMEQgMTE3MiAxMUI4OworQ0JDQTtDQkNBOzExMEQgMTE3MiAxMUI5O0NCQ0E7MTEwRCAxMTcyIDExQjk7CitDQkNCO0NCQ0I7MTEwRCAxMTcyIDExQkE7Q0JDQjsxMTBEIDExNzIgMTFCQTsKK0NCQ0M7Q0JDQzsxMTBEIDExNzIgMTFCQjtDQkNDOzExMEQgMTE3MiAxMUJCOworQ0JDRDtDQkNEOzExMEQgMTE3MiAxMUJDO0NCQ0Q7MTEwRCAxMTcyIDExQkM7CitDQkNFO0NCQ0U7MTEwRCAxMTcyIDExQkQ7Q0JDRTsxMTBEIDExNzIgMTFCRDsKK0NCQ0Y7Q0JDRjsxMTBEIDExNzIgMTFCRTtDQkNGOzExMEQgMTE3MiAxMUJFOworQ0JEMDtDQkQwOzExMEQgMTE3MiAxMUJGO0NCRDA7MTEwRCAxMTcyIDExQkY7CitDQkQxO0NCRDE7MTEwRCAxMTcyIDExQzA7Q0JEMTsxMTBEIDExNzIgMTFDMDsKK0NCRDI7Q0JEMjsxMTBEIDExNzIgMTFDMTtDQkQyOzExMEQgMTE3MiAxMUMxOworQ0JEMztDQkQzOzExMEQgMTE3MiAxMUMyO0NCRDM7MTEwRCAxMTcyIDExQzI7CitDQkQ0O0NCRDQ7MTEwRCAxMTczO0NCRDQ7MTEwRCAxMTczOworQ0JENTtDQkQ1OzExMEQgMTE3MyAxMUE4O0NCRDU7MTEwRCAxMTczIDExQTg7CitDQkQ2O0NCRDY7MTEwRCAxMTczIDExQTk7Q0JENjsxMTBEIDExNzMgMTFBOTsKK0NCRDc7Q0JENzsxMTBEIDExNzMgMTFBQTtDQkQ3OzExMEQgMTE3MyAxMUFBOworQ0JEODtDQkQ4OzExMEQgMTE3MyAxMUFCO0NCRDg7MTEwRCAxMTczIDExQUI7CitDQkQ5O0NCRDk7MTEwRCAxMTczIDExQUM7Q0JEOTsxMTBEIDExNzMgMTFBQzsKK0NCREE7Q0JEQTsxMTBEIDExNzMgMTFBRDtDQkRBOzExMEQgMTE3MyAxMUFEOworQ0JEQjtDQkRCOzExMEQgMTE3MyAxMUFFO0NCREI7MTEwRCAxMTczIDExQUU7CitDQkRDO0NCREM7MTEwRCAxMTczIDExQUY7Q0JEQzsxMTBEIDExNzMgMTFBRjsKK0NCREQ7Q0JERDsxMTBEIDExNzMgMTFCMDtDQkREOzExMEQgMTE3MyAxMUIwOworQ0JERTtDQkRFOzExMEQgMTE3MyAxMUIxO0NCREU7MTEwRCAxMTczIDExQjE7CitDQkRGO0NCREY7MTEwRCAxMTczIDExQjI7Q0JERjsxMTBEIDExNzMgMTFCMjsKK0NCRTA7Q0JFMDsxMTBEIDExNzMgMTFCMztDQkUwOzExMEQgMTE3MyAxMUIzOworQ0JFMTtDQkUxOzExMEQgMTE3MyAxMUI0O0NCRTE7MTEwRCAxMTczIDExQjQ7CitDQkUyO0NCRTI7MTEwRCAxMTczIDExQjU7Q0JFMjsxMTBEIDExNzMgMTFCNTsKK0NCRTM7Q0JFMzsxMTBEIDExNzMgMTFCNjtDQkUzOzExMEQgMTE3MyAxMUI2OworQ0JFNDtDQkU0OzExMEQgMTE3MyAxMUI3O0NCRTQ7MTEwRCAxMTczIDExQjc7CitDQkU1O0NCRTU7MTEwRCAxMTczIDExQjg7Q0JFNTsxMTBEIDExNzMgMTFCODsKK0NCRTY7Q0JFNjsxMTBEIDExNzMgMTFCOTtDQkU2OzExMEQgMTE3MyAxMUI5OworQ0JFNztDQkU3OzExMEQgMTE3MyAxMUJBO0NCRTc7MTEwRCAxMTczIDExQkE7CitDQkU4O0NCRTg7MTEwRCAxMTczIDExQkI7Q0JFODsxMTBEIDExNzMgMTFCQjsKK0NCRTk7Q0JFOTsxMTBEIDExNzMgMTFCQztDQkU5OzExMEQgMTE3MyAxMUJDOworQ0JFQTtDQkVBOzExMEQgMTE3MyAxMUJEO0NCRUE7MTEwRCAxMTczIDExQkQ7CitDQkVCO0NCRUI7MTEwRCAxMTczIDExQkU7Q0JFQjsxMTBEIDExNzMgMTFCRTsKK0NCRUM7Q0JFQzsxMTBEIDExNzMgMTFCRjtDQkVDOzExMEQgMTE3MyAxMUJGOworQ0JFRDtDQkVEOzExMEQgMTE3MyAxMUMwO0NCRUQ7MTEwRCAxMTczIDExQzA7CitDQkVFO0NCRUU7MTEwRCAxMTczIDExQzE7Q0JFRTsxMTBEIDExNzMgMTFDMTsKK0NCRUY7Q0JFRjsxMTBEIDExNzMgMTFDMjtDQkVGOzExMEQgMTE3MyAxMUMyOworQ0JGMDtDQkYwOzExMEQgMTE3NDtDQkYwOzExMEQgMTE3NDsKK0NCRjE7Q0JGMTsxMTBEIDExNzQgMTFBODtDQkYxOzExMEQgMTE3NCAxMUE4OworQ0JGMjtDQkYyOzExMEQgMTE3NCAxMUE5O0NCRjI7MTEwRCAxMTc0IDExQTk7CitDQkYzO0NCRjM7MTEwRCAxMTc0IDExQUE7Q0JGMzsxMTBEIDExNzQgMTFBQTsKK0NCRjQ7Q0JGNDsxMTBEIDExNzQgMTFBQjtDQkY0OzExMEQgMTE3NCAxMUFCOworQ0JGNTtDQkY1OzExMEQgMTE3NCAxMUFDO0NCRjU7MTEwRCAxMTc0IDExQUM7CitDQkY2O0NCRjY7MTEwRCAxMTc0IDExQUQ7Q0JGNjsxMTBEIDExNzQgMTFBRDsKK0NCRjc7Q0JGNzsxMTBEIDExNzQgMTFBRTtDQkY3OzExMEQgMTE3NCAxMUFFOworQ0JGODtDQkY4OzExMEQgMTE3NCAxMUFGO0NCRjg7MTEwRCAxMTc0IDExQUY7CitDQkY5O0NCRjk7MTEwRCAxMTc0IDExQjA7Q0JGOTsxMTBEIDExNzQgMTFCMDsKK0NCRkE7Q0JGQTsxMTBEIDExNzQgMTFCMTtDQkZBOzExMEQgMTE3NCAxMUIxOworQ0JGQjtDQkZCOzExMEQgMTE3NCAxMUIyO0NCRkI7MTEwRCAxMTc0IDExQjI7CitDQkZDO0NCRkM7MTEwRCAxMTc0IDExQjM7Q0JGQzsxMTBEIDExNzQgMTFCMzsKK0NCRkQ7Q0JGRDsxMTBEIDExNzQgMTFCNDtDQkZEOzExMEQgMTE3NCAxMUI0OworQ0JGRTtDQkZFOzExMEQgMTE3NCAxMUI1O0NCRkU7MTEwRCAxMTc0IDExQjU7CitDQkZGO0NCRkY7MTEwRCAxMTc0IDExQjY7Q0JGRjsxMTBEIDExNzQgMTFCNjsKK0NDMDA7Q0MwMDsxMTBEIDExNzQgMTFCNztDQzAwOzExMEQgMTE3NCAxMUI3OworQ0MwMTtDQzAxOzExMEQgMTE3NCAxMUI4O0NDMDE7MTEwRCAxMTc0IDExQjg7CitDQzAyO0NDMDI7MTEwRCAxMTc0IDExQjk7Q0MwMjsxMTBEIDExNzQgMTFCOTsKK0NDMDM7Q0MwMzsxMTBEIDExNzQgMTFCQTtDQzAzOzExMEQgMTE3NCAxMUJBOworQ0MwNDtDQzA0OzExMEQgMTE3NCAxMUJCO0NDMDQ7MTEwRCAxMTc0IDExQkI7CitDQzA1O0NDMDU7MTEwRCAxMTc0IDExQkM7Q0MwNTsxMTBEIDExNzQgMTFCQzsKK0NDMDY7Q0MwNjsxMTBEIDExNzQgMTFCRDtDQzA2OzExMEQgMTE3NCAxMUJEOworQ0MwNztDQzA3OzExMEQgMTE3NCAxMUJFO0NDMDc7MTEwRCAxMTc0IDExQkU7CitDQzA4O0NDMDg7MTEwRCAxMTc0IDExQkY7Q0MwODsxMTBEIDExNzQgMTFCRjsKK0NDMDk7Q0MwOTsxMTBEIDExNzQgMTFDMDtDQzA5OzExMEQgMTE3NCAxMUMwOworQ0MwQTtDQzBBOzExMEQgMTE3NCAxMUMxO0NDMEE7MTEwRCAxMTc0IDExQzE7CitDQzBCO0NDMEI7MTEwRCAxMTc0IDExQzI7Q0MwQjsxMTBEIDExNzQgMTFDMjsKK0NDMEM7Q0MwQzsxMTBEIDExNzU7Q0MwQzsxMTBEIDExNzU7CitDQzBEO0NDMEQ7MTEwRCAxMTc1IDExQTg7Q0MwRDsxMTBEIDExNzUgMTFBODsKK0NDMEU7Q0MwRTsxMTBEIDExNzUgMTFBOTtDQzBFOzExMEQgMTE3NSAxMUE5OworQ0MwRjtDQzBGOzExMEQgMTE3NSAxMUFBO0NDMEY7MTEwRCAxMTc1IDExQUE7CitDQzEwO0NDMTA7MTEwRCAxMTc1IDExQUI7Q0MxMDsxMTBEIDExNzUgMTFBQjsKK0NDMTE7Q0MxMTsxMTBEIDExNzUgMTFBQztDQzExOzExMEQgMTE3NSAxMUFDOworQ0MxMjtDQzEyOzExMEQgMTE3NSAxMUFEO0NDMTI7MTEwRCAxMTc1IDExQUQ7CitDQzEzO0NDMTM7MTEwRCAxMTc1IDExQUU7Q0MxMzsxMTBEIDExNzUgMTFBRTsKK0NDMTQ7Q0MxNDsxMTBEIDExNzUgMTFBRjtDQzE0OzExMEQgMTE3NSAxMUFGOworQ0MxNTtDQzE1OzExMEQgMTE3NSAxMUIwO0NDMTU7MTEwRCAxMTc1IDExQjA7CitDQzE2O0NDMTY7MTEwRCAxMTc1IDExQjE7Q0MxNjsxMTBEIDExNzUgMTFCMTsKK0NDMTc7Q0MxNzsxMTBEIDExNzUgMTFCMjtDQzE3OzExMEQgMTE3NSAxMUIyOworQ0MxODtDQzE4OzExMEQgMTE3NSAxMUIzO0NDMTg7MTEwRCAxMTc1IDExQjM7CitDQzE5O0NDMTk7MTEwRCAxMTc1IDExQjQ7Q0MxOTsxMTBEIDExNzUgMTFCNDsKK0NDMUE7Q0MxQTsxMTBEIDExNzUgMTFCNTtDQzFBOzExMEQgMTE3NSAxMUI1OworQ0MxQjtDQzFCOzExMEQgMTE3NSAxMUI2O0NDMUI7MTEwRCAxMTc1IDExQjY7CitDQzFDO0NDMUM7MTEwRCAxMTc1IDExQjc7Q0MxQzsxMTBEIDExNzUgMTFCNzsKK0NDMUQ7Q0MxRDsxMTBEIDExNzUgMTFCODtDQzFEOzExMEQgMTE3NSAxMUI4OworQ0MxRTtDQzFFOzExMEQgMTE3NSAxMUI5O0NDMUU7MTEwRCAxMTc1IDExQjk7CitDQzFGO0NDMUY7MTEwRCAxMTc1IDExQkE7Q0MxRjsxMTBEIDExNzUgMTFCQTsKK0NDMjA7Q0MyMDsxMTBEIDExNzUgMTFCQjtDQzIwOzExMEQgMTE3NSAxMUJCOworQ0MyMTtDQzIxOzExMEQgMTE3NSAxMUJDO0NDMjE7MTEwRCAxMTc1IDExQkM7CitDQzIyO0NDMjI7MTEwRCAxMTc1IDExQkQ7Q0MyMjsxMTBEIDExNzUgMTFCRDsKK0NDMjM7Q0MyMzsxMTBEIDExNzUgMTFCRTtDQzIzOzExMEQgMTE3NSAxMUJFOworQ0MyNDtDQzI0OzExMEQgMTE3NSAxMUJGO0NDMjQ7MTEwRCAxMTc1IDExQkY7CitDQzI1O0NDMjU7MTEwRCAxMTc1IDExQzA7Q0MyNTsxMTBEIDExNzUgMTFDMDsKK0NDMjY7Q0MyNjsxMTBEIDExNzUgMTFDMTtDQzI2OzExMEQgMTE3NSAxMUMxOworQ0MyNztDQzI3OzExMEQgMTE3NSAxMUMyO0NDMjc7MTEwRCAxMTc1IDExQzI7CitDQzI4O0NDMjg7MTEwRSAxMTYxO0NDMjg7MTEwRSAxMTYxOworQ0MyOTtDQzI5OzExMEUgMTE2MSAxMUE4O0NDMjk7MTEwRSAxMTYxIDExQTg7CitDQzJBO0NDMkE7MTEwRSAxMTYxIDExQTk7Q0MyQTsxMTBFIDExNjEgMTFBOTsKK0NDMkI7Q0MyQjsxMTBFIDExNjEgMTFBQTtDQzJCOzExMEUgMTE2MSAxMUFBOworQ0MyQztDQzJDOzExMEUgMTE2MSAxMUFCO0NDMkM7MTEwRSAxMTYxIDExQUI7CitDQzJEO0NDMkQ7MTEwRSAxMTYxIDExQUM7Q0MyRDsxMTBFIDExNjEgMTFBQzsKK0NDMkU7Q0MyRTsxMTBFIDExNjEgMTFBRDtDQzJFOzExMEUgMTE2MSAxMUFEOworQ0MyRjtDQzJGOzExMEUgMTE2MSAxMUFFO0NDMkY7MTEwRSAxMTYxIDExQUU7CitDQzMwO0NDMzA7MTEwRSAxMTYxIDExQUY7Q0MzMDsxMTBFIDExNjEgMTFBRjsKK0NDMzE7Q0MzMTsxMTBFIDExNjEgMTFCMDtDQzMxOzExMEUgMTE2MSAxMUIwOworQ0MzMjtDQzMyOzExMEUgMTE2MSAxMUIxO0NDMzI7MTEwRSAxMTYxIDExQjE7CitDQzMzO0NDMzM7MTEwRSAxMTYxIDExQjI7Q0MzMzsxMTBFIDExNjEgMTFCMjsKK0NDMzQ7Q0MzNDsxMTBFIDExNjEgMTFCMztDQzM0OzExMEUgMTE2MSAxMUIzOworQ0MzNTtDQzM1OzExMEUgMTE2MSAxMUI0O0NDMzU7MTEwRSAxMTYxIDExQjQ7CitDQzM2O0NDMzY7MTEwRSAxMTYxIDExQjU7Q0MzNjsxMTBFIDExNjEgMTFCNTsKK0NDMzc7Q0MzNzsxMTBFIDExNjEgMTFCNjtDQzM3OzExMEUgMTE2MSAxMUI2OworQ0MzODtDQzM4OzExMEUgMTE2MSAxMUI3O0NDMzg7MTEwRSAxMTYxIDExQjc7CitDQzM5O0NDMzk7MTEwRSAxMTYxIDExQjg7Q0MzOTsxMTBFIDExNjEgMTFCODsKK0NDM0E7Q0MzQTsxMTBFIDExNjEgMTFCOTtDQzNBOzExMEUgMTE2MSAxMUI5OworQ0MzQjtDQzNCOzExMEUgMTE2MSAxMUJBO0NDM0I7MTEwRSAxMTYxIDExQkE7CitDQzNDO0NDM0M7MTEwRSAxMTYxIDExQkI7Q0MzQzsxMTBFIDExNjEgMTFCQjsKK0NDM0Q7Q0MzRDsxMTBFIDExNjEgMTFCQztDQzNEOzExMEUgMTE2MSAxMUJDOworQ0MzRTtDQzNFOzExMEUgMTE2MSAxMUJEO0NDM0U7MTEwRSAxMTYxIDExQkQ7CitDQzNGO0NDM0Y7MTEwRSAxMTYxIDExQkU7Q0MzRjsxMTBFIDExNjEgMTFCRTsKK0NDNDA7Q0M0MDsxMTBFIDExNjEgMTFCRjtDQzQwOzExMEUgMTE2MSAxMUJGOworQ0M0MTtDQzQxOzExMEUgMTE2MSAxMUMwO0NDNDE7MTEwRSAxMTYxIDExQzA7CitDQzQyO0NDNDI7MTEwRSAxMTYxIDExQzE7Q0M0MjsxMTBFIDExNjEgMTFDMTsKK0NDNDM7Q0M0MzsxMTBFIDExNjEgMTFDMjtDQzQzOzExMEUgMTE2MSAxMUMyOworQ0M0NDtDQzQ0OzExMEUgMTE2MjtDQzQ0OzExMEUgMTE2MjsKK0NDNDU7Q0M0NTsxMTBFIDExNjIgMTFBODtDQzQ1OzExMEUgMTE2MiAxMUE4OworQ0M0NjtDQzQ2OzExMEUgMTE2MiAxMUE5O0NDNDY7MTEwRSAxMTYyIDExQTk7CitDQzQ3O0NDNDc7MTEwRSAxMTYyIDExQUE7Q0M0NzsxMTBFIDExNjIgMTFBQTsKK0NDNDg7Q0M0ODsxMTBFIDExNjIgMTFBQjtDQzQ4OzExMEUgMTE2MiAxMUFCOworQ0M0OTtDQzQ5OzExMEUgMTE2MiAxMUFDO0NDNDk7MTEwRSAxMTYyIDExQUM7CitDQzRBO0NDNEE7MTEwRSAxMTYyIDExQUQ7Q0M0QTsxMTBFIDExNjIgMTFBRDsKK0NDNEI7Q0M0QjsxMTBFIDExNjIgMTFBRTtDQzRCOzExMEUgMTE2MiAxMUFFOworQ0M0QztDQzRDOzExMEUgMTE2MiAxMUFGO0NDNEM7MTEwRSAxMTYyIDExQUY7CitDQzREO0NDNEQ7MTEwRSAxMTYyIDExQjA7Q0M0RDsxMTBFIDExNjIgMTFCMDsKK0NDNEU7Q0M0RTsxMTBFIDExNjIgMTFCMTtDQzRFOzExMEUgMTE2MiAxMUIxOworQ0M0RjtDQzRGOzExMEUgMTE2MiAxMUIyO0NDNEY7MTEwRSAxMTYyIDExQjI7CitDQzUwO0NDNTA7MTEwRSAxMTYyIDExQjM7Q0M1MDsxMTBFIDExNjIgMTFCMzsKK0NDNTE7Q0M1MTsxMTBFIDExNjIgMTFCNDtDQzUxOzExMEUgMTE2MiAxMUI0OworQ0M1MjtDQzUyOzExMEUgMTE2MiAxMUI1O0NDNTI7MTEwRSAxMTYyIDExQjU7CitDQzUzO0NDNTM7MTEwRSAxMTYyIDExQjY7Q0M1MzsxMTBFIDExNjIgMTFCNjsKK0NDNTQ7Q0M1NDsxMTBFIDExNjIgMTFCNztDQzU0OzExMEUgMTE2MiAxMUI3OworQ0M1NTtDQzU1OzExMEUgMTE2MiAxMUI4O0NDNTU7MTEwRSAxMTYyIDExQjg7CitDQzU2O0NDNTY7MTEwRSAxMTYyIDExQjk7Q0M1NjsxMTBFIDExNjIgMTFCOTsKK0NDNTc7Q0M1NzsxMTBFIDExNjIgMTFCQTtDQzU3OzExMEUgMTE2MiAxMUJBOworQ0M1ODtDQzU4OzExMEUgMTE2MiAxMUJCO0NDNTg7MTEwRSAxMTYyIDExQkI7CitDQzU5O0NDNTk7MTEwRSAxMTYyIDExQkM7Q0M1OTsxMTBFIDExNjIgMTFCQzsKK0NDNUE7Q0M1QTsxMTBFIDExNjIgMTFCRDtDQzVBOzExMEUgMTE2MiAxMUJEOworQ0M1QjtDQzVCOzExMEUgMTE2MiAxMUJFO0NDNUI7MTEwRSAxMTYyIDExQkU7CitDQzVDO0NDNUM7MTEwRSAxMTYyIDExQkY7Q0M1QzsxMTBFIDExNjIgMTFCRjsKK0NDNUQ7Q0M1RDsxMTBFIDExNjIgMTFDMDtDQzVEOzExMEUgMTE2MiAxMUMwOworQ0M1RTtDQzVFOzExMEUgMTE2MiAxMUMxO0NDNUU7MTEwRSAxMTYyIDExQzE7CitDQzVGO0NDNUY7MTEwRSAxMTYyIDExQzI7Q0M1RjsxMTBFIDExNjIgMTFDMjsKK0NDNjA7Q0M2MDsxMTBFIDExNjM7Q0M2MDsxMTBFIDExNjM7CitDQzYxO0NDNjE7MTEwRSAxMTYzIDExQTg7Q0M2MTsxMTBFIDExNjMgMTFBODsKK0NDNjI7Q0M2MjsxMTBFIDExNjMgMTFBOTtDQzYyOzExMEUgMTE2MyAxMUE5OworQ0M2MztDQzYzOzExMEUgMTE2MyAxMUFBO0NDNjM7MTEwRSAxMTYzIDExQUE7CitDQzY0O0NDNjQ7MTEwRSAxMTYzIDExQUI7Q0M2NDsxMTBFIDExNjMgMTFBQjsKK0NDNjU7Q0M2NTsxMTBFIDExNjMgMTFBQztDQzY1OzExMEUgMTE2MyAxMUFDOworQ0M2NjtDQzY2OzExMEUgMTE2MyAxMUFEO0NDNjY7MTEwRSAxMTYzIDExQUQ7CitDQzY3O0NDNjc7MTEwRSAxMTYzIDExQUU7Q0M2NzsxMTBFIDExNjMgMTFBRTsKK0NDNjg7Q0M2ODsxMTBFIDExNjMgMTFBRjtDQzY4OzExMEUgMTE2MyAxMUFGOworQ0M2OTtDQzY5OzExMEUgMTE2MyAxMUIwO0NDNjk7MTEwRSAxMTYzIDExQjA7CitDQzZBO0NDNkE7MTEwRSAxMTYzIDExQjE7Q0M2QTsxMTBFIDExNjMgMTFCMTsKK0NDNkI7Q0M2QjsxMTBFIDExNjMgMTFCMjtDQzZCOzExMEUgMTE2MyAxMUIyOworQ0M2QztDQzZDOzExMEUgMTE2MyAxMUIzO0NDNkM7MTEwRSAxMTYzIDExQjM7CitDQzZEO0NDNkQ7MTEwRSAxMTYzIDExQjQ7Q0M2RDsxMTBFIDExNjMgMTFCNDsKK0NDNkU7Q0M2RTsxMTBFIDExNjMgMTFCNTtDQzZFOzExMEUgMTE2MyAxMUI1OworQ0M2RjtDQzZGOzExMEUgMTE2MyAxMUI2O0NDNkY7MTEwRSAxMTYzIDExQjY7CitDQzcwO0NDNzA7MTEwRSAxMTYzIDExQjc7Q0M3MDsxMTBFIDExNjMgMTFCNzsKK0NDNzE7Q0M3MTsxMTBFIDExNjMgMTFCODtDQzcxOzExMEUgMTE2MyAxMUI4OworQ0M3MjtDQzcyOzExMEUgMTE2MyAxMUI5O0NDNzI7MTEwRSAxMTYzIDExQjk7CitDQzczO0NDNzM7MTEwRSAxMTYzIDExQkE7Q0M3MzsxMTBFIDExNjMgMTFCQTsKK0NDNzQ7Q0M3NDsxMTBFIDExNjMgMTFCQjtDQzc0OzExMEUgMTE2MyAxMUJCOworQ0M3NTtDQzc1OzExMEUgMTE2MyAxMUJDO0NDNzU7MTEwRSAxMTYzIDExQkM7CitDQzc2O0NDNzY7MTEwRSAxMTYzIDExQkQ7Q0M3NjsxMTBFIDExNjMgMTFCRDsKK0NDNzc7Q0M3NzsxMTBFIDExNjMgMTFCRTtDQzc3OzExMEUgMTE2MyAxMUJFOworQ0M3ODtDQzc4OzExMEUgMTE2MyAxMUJGO0NDNzg7MTEwRSAxMTYzIDExQkY7CitDQzc5O0NDNzk7MTEwRSAxMTYzIDExQzA7Q0M3OTsxMTBFIDExNjMgMTFDMDsKK0NDN0E7Q0M3QTsxMTBFIDExNjMgMTFDMTtDQzdBOzExMEUgMTE2MyAxMUMxOworQ0M3QjtDQzdCOzExMEUgMTE2MyAxMUMyO0NDN0I7MTEwRSAxMTYzIDExQzI7CitDQzdDO0NDN0M7MTEwRSAxMTY0O0NDN0M7MTEwRSAxMTY0OworQ0M3RDtDQzdEOzExMEUgMTE2NCAxMUE4O0NDN0Q7MTEwRSAxMTY0IDExQTg7CitDQzdFO0NDN0U7MTEwRSAxMTY0IDExQTk7Q0M3RTsxMTBFIDExNjQgMTFBOTsKK0NDN0Y7Q0M3RjsxMTBFIDExNjQgMTFBQTtDQzdGOzExMEUgMTE2NCAxMUFBOworQ0M4MDtDQzgwOzExMEUgMTE2NCAxMUFCO0NDODA7MTEwRSAxMTY0IDExQUI7CitDQzgxO0NDODE7MTEwRSAxMTY0IDExQUM7Q0M4MTsxMTBFIDExNjQgMTFBQzsKK0NDODI7Q0M4MjsxMTBFIDExNjQgMTFBRDtDQzgyOzExMEUgMTE2NCAxMUFEOworQ0M4MztDQzgzOzExMEUgMTE2NCAxMUFFO0NDODM7MTEwRSAxMTY0IDExQUU7CitDQzg0O0NDODQ7MTEwRSAxMTY0IDExQUY7Q0M4NDsxMTBFIDExNjQgMTFBRjsKK0NDODU7Q0M4NTsxMTBFIDExNjQgMTFCMDtDQzg1OzExMEUgMTE2NCAxMUIwOworQ0M4NjtDQzg2OzExMEUgMTE2NCAxMUIxO0NDODY7MTEwRSAxMTY0IDExQjE7CitDQzg3O0NDODc7MTEwRSAxMTY0IDExQjI7Q0M4NzsxMTBFIDExNjQgMTFCMjsKK0NDODg7Q0M4ODsxMTBFIDExNjQgMTFCMztDQzg4OzExMEUgMTE2NCAxMUIzOworQ0M4OTtDQzg5OzExMEUgMTE2NCAxMUI0O0NDODk7MTEwRSAxMTY0IDExQjQ7CitDQzhBO0NDOEE7MTEwRSAxMTY0IDExQjU7Q0M4QTsxMTBFIDExNjQgMTFCNTsKK0NDOEI7Q0M4QjsxMTBFIDExNjQgMTFCNjtDQzhCOzExMEUgMTE2NCAxMUI2OworQ0M4QztDQzhDOzExMEUgMTE2NCAxMUI3O0NDOEM7MTEwRSAxMTY0IDExQjc7CitDQzhEO0NDOEQ7MTEwRSAxMTY0IDExQjg7Q0M4RDsxMTBFIDExNjQgMTFCODsKK0NDOEU7Q0M4RTsxMTBFIDExNjQgMTFCOTtDQzhFOzExMEUgMTE2NCAxMUI5OworQ0M4RjtDQzhGOzExMEUgMTE2NCAxMUJBO0NDOEY7MTEwRSAxMTY0IDExQkE7CitDQzkwO0NDOTA7MTEwRSAxMTY0IDExQkI7Q0M5MDsxMTBFIDExNjQgMTFCQjsKK0NDOTE7Q0M5MTsxMTBFIDExNjQgMTFCQztDQzkxOzExMEUgMTE2NCAxMUJDOworQ0M5MjtDQzkyOzExMEUgMTE2NCAxMUJEO0NDOTI7MTEwRSAxMTY0IDExQkQ7CitDQzkzO0NDOTM7MTEwRSAxMTY0IDExQkU7Q0M5MzsxMTBFIDExNjQgMTFCRTsKK0NDOTQ7Q0M5NDsxMTBFIDExNjQgMTFCRjtDQzk0OzExMEUgMTE2NCAxMUJGOworQ0M5NTtDQzk1OzExMEUgMTE2NCAxMUMwO0NDOTU7MTEwRSAxMTY0IDExQzA7CitDQzk2O0NDOTY7MTEwRSAxMTY0IDExQzE7Q0M5NjsxMTBFIDExNjQgMTFDMTsKK0NDOTc7Q0M5NzsxMTBFIDExNjQgMTFDMjtDQzk3OzExMEUgMTE2NCAxMUMyOworQ0M5ODtDQzk4OzExMEUgMTE2NTtDQzk4OzExMEUgMTE2NTsKK0NDOTk7Q0M5OTsxMTBFIDExNjUgMTFBODtDQzk5OzExMEUgMTE2NSAxMUE4OworQ0M5QTtDQzlBOzExMEUgMTE2NSAxMUE5O0NDOUE7MTEwRSAxMTY1IDExQTk7CitDQzlCO0NDOUI7MTEwRSAxMTY1IDExQUE7Q0M5QjsxMTBFIDExNjUgMTFBQTsKK0NDOUM7Q0M5QzsxMTBFIDExNjUgMTFBQjtDQzlDOzExMEUgMTE2NSAxMUFCOworQ0M5RDtDQzlEOzExMEUgMTE2NSAxMUFDO0NDOUQ7MTEwRSAxMTY1IDExQUM7CitDQzlFO0NDOUU7MTEwRSAxMTY1IDExQUQ7Q0M5RTsxMTBFIDExNjUgMTFBRDsKK0NDOUY7Q0M5RjsxMTBFIDExNjUgMTFBRTtDQzlGOzExMEUgMTE2NSAxMUFFOworQ0NBMDtDQ0EwOzExMEUgMTE2NSAxMUFGO0NDQTA7MTEwRSAxMTY1IDExQUY7CitDQ0ExO0NDQTE7MTEwRSAxMTY1IDExQjA7Q0NBMTsxMTBFIDExNjUgMTFCMDsKK0NDQTI7Q0NBMjsxMTBFIDExNjUgMTFCMTtDQ0EyOzExMEUgMTE2NSAxMUIxOworQ0NBMztDQ0EzOzExMEUgMTE2NSAxMUIyO0NDQTM7MTEwRSAxMTY1IDExQjI7CitDQ0E0O0NDQTQ7MTEwRSAxMTY1IDExQjM7Q0NBNDsxMTBFIDExNjUgMTFCMzsKK0NDQTU7Q0NBNTsxMTBFIDExNjUgMTFCNDtDQ0E1OzExMEUgMTE2NSAxMUI0OworQ0NBNjtDQ0E2OzExMEUgMTE2NSAxMUI1O0NDQTY7MTEwRSAxMTY1IDExQjU7CitDQ0E3O0NDQTc7MTEwRSAxMTY1IDExQjY7Q0NBNzsxMTBFIDExNjUgMTFCNjsKK0NDQTg7Q0NBODsxMTBFIDExNjUgMTFCNztDQ0E4OzExMEUgMTE2NSAxMUI3OworQ0NBOTtDQ0E5OzExMEUgMTE2NSAxMUI4O0NDQTk7MTEwRSAxMTY1IDExQjg7CitDQ0FBO0NDQUE7MTEwRSAxMTY1IDExQjk7Q0NBQTsxMTBFIDExNjUgMTFCOTsKK0NDQUI7Q0NBQjsxMTBFIDExNjUgMTFCQTtDQ0FCOzExMEUgMTE2NSAxMUJBOworQ0NBQztDQ0FDOzExMEUgMTE2NSAxMUJCO0NDQUM7MTEwRSAxMTY1IDExQkI7CitDQ0FEO0NDQUQ7MTEwRSAxMTY1IDExQkM7Q0NBRDsxMTBFIDExNjUgMTFCQzsKK0NDQUU7Q0NBRTsxMTBFIDExNjUgMTFCRDtDQ0FFOzExMEUgMTE2NSAxMUJEOworQ0NBRjtDQ0FGOzExMEUgMTE2NSAxMUJFO0NDQUY7MTEwRSAxMTY1IDExQkU7CitDQ0IwO0NDQjA7MTEwRSAxMTY1IDExQkY7Q0NCMDsxMTBFIDExNjUgMTFCRjsKK0NDQjE7Q0NCMTsxMTBFIDExNjUgMTFDMDtDQ0IxOzExMEUgMTE2NSAxMUMwOworQ0NCMjtDQ0IyOzExMEUgMTE2NSAxMUMxO0NDQjI7MTEwRSAxMTY1IDExQzE7CitDQ0IzO0NDQjM7MTEwRSAxMTY1IDExQzI7Q0NCMzsxMTBFIDExNjUgMTFDMjsKK0NDQjQ7Q0NCNDsxMTBFIDExNjY7Q0NCNDsxMTBFIDExNjY7CitDQ0I1O0NDQjU7MTEwRSAxMTY2IDExQTg7Q0NCNTsxMTBFIDExNjYgMTFBODsKK0NDQjY7Q0NCNjsxMTBFIDExNjYgMTFBOTtDQ0I2OzExMEUgMTE2NiAxMUE5OworQ0NCNztDQ0I3OzExMEUgMTE2NiAxMUFBO0NDQjc7MTEwRSAxMTY2IDExQUE7CitDQ0I4O0NDQjg7MTEwRSAxMTY2IDExQUI7Q0NCODsxMTBFIDExNjYgMTFBQjsKK0NDQjk7Q0NCOTsxMTBFIDExNjYgMTFBQztDQ0I5OzExMEUgMTE2NiAxMUFDOworQ0NCQTtDQ0JBOzExMEUgMTE2NiAxMUFEO0NDQkE7MTEwRSAxMTY2IDExQUQ7CitDQ0JCO0NDQkI7MTEwRSAxMTY2IDExQUU7Q0NCQjsxMTBFIDExNjYgMTFBRTsKK0NDQkM7Q0NCQzsxMTBFIDExNjYgMTFBRjtDQ0JDOzExMEUgMTE2NiAxMUFGOworQ0NCRDtDQ0JEOzExMEUgMTE2NiAxMUIwO0NDQkQ7MTEwRSAxMTY2IDExQjA7CitDQ0JFO0NDQkU7MTEwRSAxMTY2IDExQjE7Q0NCRTsxMTBFIDExNjYgMTFCMTsKK0NDQkY7Q0NCRjsxMTBFIDExNjYgMTFCMjtDQ0JGOzExMEUgMTE2NiAxMUIyOworQ0NDMDtDQ0MwOzExMEUgMTE2NiAxMUIzO0NDQzA7MTEwRSAxMTY2IDExQjM7CitDQ0MxO0NDQzE7MTEwRSAxMTY2IDExQjQ7Q0NDMTsxMTBFIDExNjYgMTFCNDsKK0NDQzI7Q0NDMjsxMTBFIDExNjYgMTFCNTtDQ0MyOzExMEUgMTE2NiAxMUI1OworQ0NDMztDQ0MzOzExMEUgMTE2NiAxMUI2O0NDQzM7MTEwRSAxMTY2IDExQjY7CitDQ0M0O0NDQzQ7MTEwRSAxMTY2IDExQjc7Q0NDNDsxMTBFIDExNjYgMTFCNzsKK0NDQzU7Q0NDNTsxMTBFIDExNjYgMTFCODtDQ0M1OzExMEUgMTE2NiAxMUI4OworQ0NDNjtDQ0M2OzExMEUgMTE2NiAxMUI5O0NDQzY7MTEwRSAxMTY2IDExQjk7CitDQ0M3O0NDQzc7MTEwRSAxMTY2IDExQkE7Q0NDNzsxMTBFIDExNjYgMTFCQTsKK0NDQzg7Q0NDODsxMTBFIDExNjYgMTFCQjtDQ0M4OzExMEUgMTE2NiAxMUJCOworQ0NDOTtDQ0M5OzExMEUgMTE2NiAxMUJDO0NDQzk7MTEwRSAxMTY2IDExQkM7CitDQ0NBO0NDQ0E7MTEwRSAxMTY2IDExQkQ7Q0NDQTsxMTBFIDExNjYgMTFCRDsKK0NDQ0I7Q0NDQjsxMTBFIDExNjYgMTFCRTtDQ0NCOzExMEUgMTE2NiAxMUJFOworQ0NDQztDQ0NDOzExMEUgMTE2NiAxMUJGO0NDQ0M7MTEwRSAxMTY2IDExQkY7CitDQ0NEO0NDQ0Q7MTEwRSAxMTY2IDExQzA7Q0NDRDsxMTBFIDExNjYgMTFDMDsKK0NDQ0U7Q0NDRTsxMTBFIDExNjYgMTFDMTtDQ0NFOzExMEUgMTE2NiAxMUMxOworQ0NDRjtDQ0NGOzExMEUgMTE2NiAxMUMyO0NDQ0Y7MTEwRSAxMTY2IDExQzI7CitDQ0QwO0NDRDA7MTEwRSAxMTY3O0NDRDA7MTEwRSAxMTY3OworQ0NEMTtDQ0QxOzExMEUgMTE2NyAxMUE4O0NDRDE7MTEwRSAxMTY3IDExQTg7CitDQ0QyO0NDRDI7MTEwRSAxMTY3IDExQTk7Q0NEMjsxMTBFIDExNjcgMTFBOTsKK0NDRDM7Q0NEMzsxMTBFIDExNjcgMTFBQTtDQ0QzOzExMEUgMTE2NyAxMUFBOworQ0NENDtDQ0Q0OzExMEUgMTE2NyAxMUFCO0NDRDQ7MTEwRSAxMTY3IDExQUI7CitDQ0Q1O0NDRDU7MTEwRSAxMTY3IDExQUM7Q0NENTsxMTBFIDExNjcgMTFBQzsKK0NDRDY7Q0NENjsxMTBFIDExNjcgMTFBRDtDQ0Q2OzExMEUgMTE2NyAxMUFEOworQ0NENztDQ0Q3OzExMEUgMTE2NyAxMUFFO0NDRDc7MTEwRSAxMTY3IDExQUU7CitDQ0Q4O0NDRDg7MTEwRSAxMTY3IDExQUY7Q0NEODsxMTBFIDExNjcgMTFBRjsKK0NDRDk7Q0NEOTsxMTBFIDExNjcgMTFCMDtDQ0Q5OzExMEUgMTE2NyAxMUIwOworQ0NEQTtDQ0RBOzExMEUgMTE2NyAxMUIxO0NDREE7MTEwRSAxMTY3IDExQjE7CitDQ0RCO0NDREI7MTEwRSAxMTY3IDExQjI7Q0NEQjsxMTBFIDExNjcgMTFCMjsKK0NDREM7Q0NEQzsxMTBFIDExNjcgMTFCMztDQ0RDOzExMEUgMTE2NyAxMUIzOworQ0NERDtDQ0REOzExMEUgMTE2NyAxMUI0O0NDREQ7MTEwRSAxMTY3IDExQjQ7CitDQ0RFO0NDREU7MTEwRSAxMTY3IDExQjU7Q0NERTsxMTBFIDExNjcgMTFCNTsKK0NDREY7Q0NERjsxMTBFIDExNjcgMTFCNjtDQ0RGOzExMEUgMTE2NyAxMUI2OworQ0NFMDtDQ0UwOzExMEUgMTE2NyAxMUI3O0NDRTA7MTEwRSAxMTY3IDExQjc7CitDQ0UxO0NDRTE7MTEwRSAxMTY3IDExQjg7Q0NFMTsxMTBFIDExNjcgMTFCODsKK0NDRTI7Q0NFMjsxMTBFIDExNjcgMTFCOTtDQ0UyOzExMEUgMTE2NyAxMUI5OworQ0NFMztDQ0UzOzExMEUgMTE2NyAxMUJBO0NDRTM7MTEwRSAxMTY3IDExQkE7CitDQ0U0O0NDRTQ7MTEwRSAxMTY3IDExQkI7Q0NFNDsxMTBFIDExNjcgMTFCQjsKK0NDRTU7Q0NFNTsxMTBFIDExNjcgMTFCQztDQ0U1OzExMEUgMTE2NyAxMUJDOworQ0NFNjtDQ0U2OzExMEUgMTE2NyAxMUJEO0NDRTY7MTEwRSAxMTY3IDExQkQ7CitDQ0U3O0NDRTc7MTEwRSAxMTY3IDExQkU7Q0NFNzsxMTBFIDExNjcgMTFCRTsKK0NDRTg7Q0NFODsxMTBFIDExNjcgMTFCRjtDQ0U4OzExMEUgMTE2NyAxMUJGOworQ0NFOTtDQ0U5OzExMEUgMTE2NyAxMUMwO0NDRTk7MTEwRSAxMTY3IDExQzA7CitDQ0VBO0NDRUE7MTEwRSAxMTY3IDExQzE7Q0NFQTsxMTBFIDExNjcgMTFDMTsKK0NDRUI7Q0NFQjsxMTBFIDExNjcgMTFDMjtDQ0VCOzExMEUgMTE2NyAxMUMyOworQ0NFQztDQ0VDOzExMEUgMTE2ODtDQ0VDOzExMEUgMTE2ODsKK0NDRUQ7Q0NFRDsxMTBFIDExNjggMTFBODtDQ0VEOzExMEUgMTE2OCAxMUE4OworQ0NFRTtDQ0VFOzExMEUgMTE2OCAxMUE5O0NDRUU7MTEwRSAxMTY4IDExQTk7CitDQ0VGO0NDRUY7MTEwRSAxMTY4IDExQUE7Q0NFRjsxMTBFIDExNjggMTFBQTsKK0NDRjA7Q0NGMDsxMTBFIDExNjggMTFBQjtDQ0YwOzExMEUgMTE2OCAxMUFCOworQ0NGMTtDQ0YxOzExMEUgMTE2OCAxMUFDO0NDRjE7MTEwRSAxMTY4IDExQUM7CitDQ0YyO0NDRjI7MTEwRSAxMTY4IDExQUQ7Q0NGMjsxMTBFIDExNjggMTFBRDsKK0NDRjM7Q0NGMzsxMTBFIDExNjggMTFBRTtDQ0YzOzExMEUgMTE2OCAxMUFFOworQ0NGNDtDQ0Y0OzExMEUgMTE2OCAxMUFGO0NDRjQ7MTEwRSAxMTY4IDExQUY7CitDQ0Y1O0NDRjU7MTEwRSAxMTY4IDExQjA7Q0NGNTsxMTBFIDExNjggMTFCMDsKK0NDRjY7Q0NGNjsxMTBFIDExNjggMTFCMTtDQ0Y2OzExMEUgMTE2OCAxMUIxOworQ0NGNztDQ0Y3OzExMEUgMTE2OCAxMUIyO0NDRjc7MTEwRSAxMTY4IDExQjI7CitDQ0Y4O0NDRjg7MTEwRSAxMTY4IDExQjM7Q0NGODsxMTBFIDExNjggMTFCMzsKK0NDRjk7Q0NGOTsxMTBFIDExNjggMTFCNDtDQ0Y5OzExMEUgMTE2OCAxMUI0OworQ0NGQTtDQ0ZBOzExMEUgMTE2OCAxMUI1O0NDRkE7MTEwRSAxMTY4IDExQjU7CitDQ0ZCO0NDRkI7MTEwRSAxMTY4IDExQjY7Q0NGQjsxMTBFIDExNjggMTFCNjsKK0NDRkM7Q0NGQzsxMTBFIDExNjggMTFCNztDQ0ZDOzExMEUgMTE2OCAxMUI3OworQ0NGRDtDQ0ZEOzExMEUgMTE2OCAxMUI4O0NDRkQ7MTEwRSAxMTY4IDExQjg7CitDQ0ZFO0NDRkU7MTEwRSAxMTY4IDExQjk7Q0NGRTsxMTBFIDExNjggMTFCOTsKK0NDRkY7Q0NGRjsxMTBFIDExNjggMTFCQTtDQ0ZGOzExMEUgMTE2OCAxMUJBOworQ0QwMDtDRDAwOzExMEUgMTE2OCAxMUJCO0NEMDA7MTEwRSAxMTY4IDExQkI7CitDRDAxO0NEMDE7MTEwRSAxMTY4IDExQkM7Q0QwMTsxMTBFIDExNjggMTFCQzsKK0NEMDI7Q0QwMjsxMTBFIDExNjggMTFCRDtDRDAyOzExMEUgMTE2OCAxMUJEOworQ0QwMztDRDAzOzExMEUgMTE2OCAxMUJFO0NEMDM7MTEwRSAxMTY4IDExQkU7CitDRDA0O0NEMDQ7MTEwRSAxMTY4IDExQkY7Q0QwNDsxMTBFIDExNjggMTFCRjsKK0NEMDU7Q0QwNTsxMTBFIDExNjggMTFDMDtDRDA1OzExMEUgMTE2OCAxMUMwOworQ0QwNjtDRDA2OzExMEUgMTE2OCAxMUMxO0NEMDY7MTEwRSAxMTY4IDExQzE7CitDRDA3O0NEMDc7MTEwRSAxMTY4IDExQzI7Q0QwNzsxMTBFIDExNjggMTFDMjsKK0NEMDg7Q0QwODsxMTBFIDExNjk7Q0QwODsxMTBFIDExNjk7CitDRDA5O0NEMDk7MTEwRSAxMTY5IDExQTg7Q0QwOTsxMTBFIDExNjkgMTFBODsKK0NEMEE7Q0QwQTsxMTBFIDExNjkgMTFBOTtDRDBBOzExMEUgMTE2OSAxMUE5OworQ0QwQjtDRDBCOzExMEUgMTE2OSAxMUFBO0NEMEI7MTEwRSAxMTY5IDExQUE7CitDRDBDO0NEMEM7MTEwRSAxMTY5IDExQUI7Q0QwQzsxMTBFIDExNjkgMTFBQjsKK0NEMEQ7Q0QwRDsxMTBFIDExNjkgMTFBQztDRDBEOzExMEUgMTE2OSAxMUFDOworQ0QwRTtDRDBFOzExMEUgMTE2OSAxMUFEO0NEMEU7MTEwRSAxMTY5IDExQUQ7CitDRDBGO0NEMEY7MTEwRSAxMTY5IDExQUU7Q0QwRjsxMTBFIDExNjkgMTFBRTsKK0NEMTA7Q0QxMDsxMTBFIDExNjkgMTFBRjtDRDEwOzExMEUgMTE2OSAxMUFGOworQ0QxMTtDRDExOzExMEUgMTE2OSAxMUIwO0NEMTE7MTEwRSAxMTY5IDExQjA7CitDRDEyO0NEMTI7MTEwRSAxMTY5IDExQjE7Q0QxMjsxMTBFIDExNjkgMTFCMTsKK0NEMTM7Q0QxMzsxMTBFIDExNjkgMTFCMjtDRDEzOzExMEUgMTE2OSAxMUIyOworQ0QxNDtDRDE0OzExMEUgMTE2OSAxMUIzO0NEMTQ7MTEwRSAxMTY5IDExQjM7CitDRDE1O0NEMTU7MTEwRSAxMTY5IDExQjQ7Q0QxNTsxMTBFIDExNjkgMTFCNDsKK0NEMTY7Q0QxNjsxMTBFIDExNjkgMTFCNTtDRDE2OzExMEUgMTE2OSAxMUI1OworQ0QxNztDRDE3OzExMEUgMTE2OSAxMUI2O0NEMTc7MTEwRSAxMTY5IDExQjY7CitDRDE4O0NEMTg7MTEwRSAxMTY5IDExQjc7Q0QxODsxMTBFIDExNjkgMTFCNzsKK0NEMTk7Q0QxOTsxMTBFIDExNjkgMTFCODtDRDE5OzExMEUgMTE2OSAxMUI4OworQ0QxQTtDRDFBOzExMEUgMTE2OSAxMUI5O0NEMUE7MTEwRSAxMTY5IDExQjk7CitDRDFCO0NEMUI7MTEwRSAxMTY5IDExQkE7Q0QxQjsxMTBFIDExNjkgMTFCQTsKK0NEMUM7Q0QxQzsxMTBFIDExNjkgMTFCQjtDRDFDOzExMEUgMTE2OSAxMUJCOworQ0QxRDtDRDFEOzExMEUgMTE2OSAxMUJDO0NEMUQ7MTEwRSAxMTY5IDExQkM7CitDRDFFO0NEMUU7MTEwRSAxMTY5IDExQkQ7Q0QxRTsxMTBFIDExNjkgMTFCRDsKK0NEMUY7Q0QxRjsxMTBFIDExNjkgMTFCRTtDRDFGOzExMEUgMTE2OSAxMUJFOworQ0QyMDtDRDIwOzExMEUgMTE2OSAxMUJGO0NEMjA7MTEwRSAxMTY5IDExQkY7CitDRDIxO0NEMjE7MTEwRSAxMTY5IDExQzA7Q0QyMTsxMTBFIDExNjkgMTFDMDsKK0NEMjI7Q0QyMjsxMTBFIDExNjkgMTFDMTtDRDIyOzExMEUgMTE2OSAxMUMxOworQ0QyMztDRDIzOzExMEUgMTE2OSAxMUMyO0NEMjM7MTEwRSAxMTY5IDExQzI7CitDRDI0O0NEMjQ7MTEwRSAxMTZBO0NEMjQ7MTEwRSAxMTZBOworQ0QyNTtDRDI1OzExMEUgMTE2QSAxMUE4O0NEMjU7MTEwRSAxMTZBIDExQTg7CitDRDI2O0NEMjY7MTEwRSAxMTZBIDExQTk7Q0QyNjsxMTBFIDExNkEgMTFBOTsKK0NEMjc7Q0QyNzsxMTBFIDExNkEgMTFBQTtDRDI3OzExMEUgMTE2QSAxMUFBOworQ0QyODtDRDI4OzExMEUgMTE2QSAxMUFCO0NEMjg7MTEwRSAxMTZBIDExQUI7CitDRDI5O0NEMjk7MTEwRSAxMTZBIDExQUM7Q0QyOTsxMTBFIDExNkEgMTFBQzsKK0NEMkE7Q0QyQTsxMTBFIDExNkEgMTFBRDtDRDJBOzExMEUgMTE2QSAxMUFEOworQ0QyQjtDRDJCOzExMEUgMTE2QSAxMUFFO0NEMkI7MTEwRSAxMTZBIDExQUU7CitDRDJDO0NEMkM7MTEwRSAxMTZBIDExQUY7Q0QyQzsxMTBFIDExNkEgMTFBRjsKK0NEMkQ7Q0QyRDsxMTBFIDExNkEgMTFCMDtDRDJEOzExMEUgMTE2QSAxMUIwOworQ0QyRTtDRDJFOzExMEUgMTE2QSAxMUIxO0NEMkU7MTEwRSAxMTZBIDExQjE7CitDRDJGO0NEMkY7MTEwRSAxMTZBIDExQjI7Q0QyRjsxMTBFIDExNkEgMTFCMjsKK0NEMzA7Q0QzMDsxMTBFIDExNkEgMTFCMztDRDMwOzExMEUgMTE2QSAxMUIzOworQ0QzMTtDRDMxOzExMEUgMTE2QSAxMUI0O0NEMzE7MTEwRSAxMTZBIDExQjQ7CitDRDMyO0NEMzI7MTEwRSAxMTZBIDExQjU7Q0QzMjsxMTBFIDExNkEgMTFCNTsKK0NEMzM7Q0QzMzsxMTBFIDExNkEgMTFCNjtDRDMzOzExMEUgMTE2QSAxMUI2OworQ0QzNDtDRDM0OzExMEUgMTE2QSAxMUI3O0NEMzQ7MTEwRSAxMTZBIDExQjc7CitDRDM1O0NEMzU7MTEwRSAxMTZBIDExQjg7Q0QzNTsxMTBFIDExNkEgMTFCODsKK0NEMzY7Q0QzNjsxMTBFIDExNkEgMTFCOTtDRDM2OzExMEUgMTE2QSAxMUI5OworQ0QzNztDRDM3OzExMEUgMTE2QSAxMUJBO0NEMzc7MTEwRSAxMTZBIDExQkE7CitDRDM4O0NEMzg7MTEwRSAxMTZBIDExQkI7Q0QzODsxMTBFIDExNkEgMTFCQjsKK0NEMzk7Q0QzOTsxMTBFIDExNkEgMTFCQztDRDM5OzExMEUgMTE2QSAxMUJDOworQ0QzQTtDRDNBOzExMEUgMTE2QSAxMUJEO0NEM0E7MTEwRSAxMTZBIDExQkQ7CitDRDNCO0NEM0I7MTEwRSAxMTZBIDExQkU7Q0QzQjsxMTBFIDExNkEgMTFCRTsKK0NEM0M7Q0QzQzsxMTBFIDExNkEgMTFCRjtDRDNDOzExMEUgMTE2QSAxMUJGOworQ0QzRDtDRDNEOzExMEUgMTE2QSAxMUMwO0NEM0Q7MTEwRSAxMTZBIDExQzA7CitDRDNFO0NEM0U7MTEwRSAxMTZBIDExQzE7Q0QzRTsxMTBFIDExNkEgMTFDMTsKK0NEM0Y7Q0QzRjsxMTBFIDExNkEgMTFDMjtDRDNGOzExMEUgMTE2QSAxMUMyOworQ0Q0MDtDRDQwOzExMEUgMTE2QjtDRDQwOzExMEUgMTE2QjsKK0NENDE7Q0Q0MTsxMTBFIDExNkIgMTFBODtDRDQxOzExMEUgMTE2QiAxMUE4OworQ0Q0MjtDRDQyOzExMEUgMTE2QiAxMUE5O0NENDI7MTEwRSAxMTZCIDExQTk7CitDRDQzO0NENDM7MTEwRSAxMTZCIDExQUE7Q0Q0MzsxMTBFIDExNkIgMTFBQTsKK0NENDQ7Q0Q0NDsxMTBFIDExNkIgMTFBQjtDRDQ0OzExMEUgMTE2QiAxMUFCOworQ0Q0NTtDRDQ1OzExMEUgMTE2QiAxMUFDO0NENDU7MTEwRSAxMTZCIDExQUM7CitDRDQ2O0NENDY7MTEwRSAxMTZCIDExQUQ7Q0Q0NjsxMTBFIDExNkIgMTFBRDsKK0NENDc7Q0Q0NzsxMTBFIDExNkIgMTFBRTtDRDQ3OzExMEUgMTE2QiAxMUFFOworQ0Q0ODtDRDQ4OzExMEUgMTE2QiAxMUFGO0NENDg7MTEwRSAxMTZCIDExQUY7CitDRDQ5O0NENDk7MTEwRSAxMTZCIDExQjA7Q0Q0OTsxMTBFIDExNkIgMTFCMDsKK0NENEE7Q0Q0QTsxMTBFIDExNkIgMTFCMTtDRDRBOzExMEUgMTE2QiAxMUIxOworQ0Q0QjtDRDRCOzExMEUgMTE2QiAxMUIyO0NENEI7MTEwRSAxMTZCIDExQjI7CitDRDRDO0NENEM7MTEwRSAxMTZCIDExQjM7Q0Q0QzsxMTBFIDExNkIgMTFCMzsKK0NENEQ7Q0Q0RDsxMTBFIDExNkIgMTFCNDtDRDREOzExMEUgMTE2QiAxMUI0OworQ0Q0RTtDRDRFOzExMEUgMTE2QiAxMUI1O0NENEU7MTEwRSAxMTZCIDExQjU7CitDRDRGO0NENEY7MTEwRSAxMTZCIDExQjY7Q0Q0RjsxMTBFIDExNkIgMTFCNjsKK0NENTA7Q0Q1MDsxMTBFIDExNkIgMTFCNztDRDUwOzExMEUgMTE2QiAxMUI3OworQ0Q1MTtDRDUxOzExMEUgMTE2QiAxMUI4O0NENTE7MTEwRSAxMTZCIDExQjg7CitDRDUyO0NENTI7MTEwRSAxMTZCIDExQjk7Q0Q1MjsxMTBFIDExNkIgMTFCOTsKK0NENTM7Q0Q1MzsxMTBFIDExNkIgMTFCQTtDRDUzOzExMEUgMTE2QiAxMUJBOworQ0Q1NDtDRDU0OzExMEUgMTE2QiAxMUJCO0NENTQ7MTEwRSAxMTZCIDExQkI7CitDRDU1O0NENTU7MTEwRSAxMTZCIDExQkM7Q0Q1NTsxMTBFIDExNkIgMTFCQzsKK0NENTY7Q0Q1NjsxMTBFIDExNkIgMTFCRDtDRDU2OzExMEUgMTE2QiAxMUJEOworQ0Q1NztDRDU3OzExMEUgMTE2QiAxMUJFO0NENTc7MTEwRSAxMTZCIDExQkU7CitDRDU4O0NENTg7MTEwRSAxMTZCIDExQkY7Q0Q1ODsxMTBFIDExNkIgMTFCRjsKK0NENTk7Q0Q1OTsxMTBFIDExNkIgMTFDMDtDRDU5OzExMEUgMTE2QiAxMUMwOworQ0Q1QTtDRDVBOzExMEUgMTE2QiAxMUMxO0NENUE7MTEwRSAxMTZCIDExQzE7CitDRDVCO0NENUI7MTEwRSAxMTZCIDExQzI7Q0Q1QjsxMTBFIDExNkIgMTFDMjsKK0NENUM7Q0Q1QzsxMTBFIDExNkM7Q0Q1QzsxMTBFIDExNkM7CitDRDVEO0NENUQ7MTEwRSAxMTZDIDExQTg7Q0Q1RDsxMTBFIDExNkMgMTFBODsKK0NENUU7Q0Q1RTsxMTBFIDExNkMgMTFBOTtDRDVFOzExMEUgMTE2QyAxMUE5OworQ0Q1RjtDRDVGOzExMEUgMTE2QyAxMUFBO0NENUY7MTEwRSAxMTZDIDExQUE7CitDRDYwO0NENjA7MTEwRSAxMTZDIDExQUI7Q0Q2MDsxMTBFIDExNkMgMTFBQjsKK0NENjE7Q0Q2MTsxMTBFIDExNkMgMTFBQztDRDYxOzExMEUgMTE2QyAxMUFDOworQ0Q2MjtDRDYyOzExMEUgMTE2QyAxMUFEO0NENjI7MTEwRSAxMTZDIDExQUQ7CitDRDYzO0NENjM7MTEwRSAxMTZDIDExQUU7Q0Q2MzsxMTBFIDExNkMgMTFBRTsKK0NENjQ7Q0Q2NDsxMTBFIDExNkMgMTFBRjtDRDY0OzExMEUgMTE2QyAxMUFGOworQ0Q2NTtDRDY1OzExMEUgMTE2QyAxMUIwO0NENjU7MTEwRSAxMTZDIDExQjA7CitDRDY2O0NENjY7MTEwRSAxMTZDIDExQjE7Q0Q2NjsxMTBFIDExNkMgMTFCMTsKK0NENjc7Q0Q2NzsxMTBFIDExNkMgMTFCMjtDRDY3OzExMEUgMTE2QyAxMUIyOworQ0Q2ODtDRDY4OzExMEUgMTE2QyAxMUIzO0NENjg7MTEwRSAxMTZDIDExQjM7CitDRDY5O0NENjk7MTEwRSAxMTZDIDExQjQ7Q0Q2OTsxMTBFIDExNkMgMTFCNDsKK0NENkE7Q0Q2QTsxMTBFIDExNkMgMTFCNTtDRDZBOzExMEUgMTE2QyAxMUI1OworQ0Q2QjtDRDZCOzExMEUgMTE2QyAxMUI2O0NENkI7MTEwRSAxMTZDIDExQjY7CitDRDZDO0NENkM7MTEwRSAxMTZDIDExQjc7Q0Q2QzsxMTBFIDExNkMgMTFCNzsKK0NENkQ7Q0Q2RDsxMTBFIDExNkMgMTFCODtDRDZEOzExMEUgMTE2QyAxMUI4OworQ0Q2RTtDRDZFOzExMEUgMTE2QyAxMUI5O0NENkU7MTEwRSAxMTZDIDExQjk7CitDRDZGO0NENkY7MTEwRSAxMTZDIDExQkE7Q0Q2RjsxMTBFIDExNkMgMTFCQTsKK0NENzA7Q0Q3MDsxMTBFIDExNkMgMTFCQjtDRDcwOzExMEUgMTE2QyAxMUJCOworQ0Q3MTtDRDcxOzExMEUgMTE2QyAxMUJDO0NENzE7MTEwRSAxMTZDIDExQkM7CitDRDcyO0NENzI7MTEwRSAxMTZDIDExQkQ7Q0Q3MjsxMTBFIDExNkMgMTFCRDsKK0NENzM7Q0Q3MzsxMTBFIDExNkMgMTFCRTtDRDczOzExMEUgMTE2QyAxMUJFOworQ0Q3NDtDRDc0OzExMEUgMTE2QyAxMUJGO0NENzQ7MTEwRSAxMTZDIDExQkY7CitDRDc1O0NENzU7MTEwRSAxMTZDIDExQzA7Q0Q3NTsxMTBFIDExNkMgMTFDMDsKK0NENzY7Q0Q3NjsxMTBFIDExNkMgMTFDMTtDRDc2OzExMEUgMTE2QyAxMUMxOworQ0Q3NztDRDc3OzExMEUgMTE2QyAxMUMyO0NENzc7MTEwRSAxMTZDIDExQzI7CitDRDc4O0NENzg7MTEwRSAxMTZEO0NENzg7MTEwRSAxMTZEOworQ0Q3OTtDRDc5OzExMEUgMTE2RCAxMUE4O0NENzk7MTEwRSAxMTZEIDExQTg7CitDRDdBO0NEN0E7MTEwRSAxMTZEIDExQTk7Q0Q3QTsxMTBFIDExNkQgMTFBOTsKK0NEN0I7Q0Q3QjsxMTBFIDExNkQgMTFBQTtDRDdCOzExMEUgMTE2RCAxMUFBOworQ0Q3QztDRDdDOzExMEUgMTE2RCAxMUFCO0NEN0M7MTEwRSAxMTZEIDExQUI7CitDRDdEO0NEN0Q7MTEwRSAxMTZEIDExQUM7Q0Q3RDsxMTBFIDExNkQgMTFBQzsKK0NEN0U7Q0Q3RTsxMTBFIDExNkQgMTFBRDtDRDdFOzExMEUgMTE2RCAxMUFEOworQ0Q3RjtDRDdGOzExMEUgMTE2RCAxMUFFO0NEN0Y7MTEwRSAxMTZEIDExQUU7CitDRDgwO0NEODA7MTEwRSAxMTZEIDExQUY7Q0Q4MDsxMTBFIDExNkQgMTFBRjsKK0NEODE7Q0Q4MTsxMTBFIDExNkQgMTFCMDtDRDgxOzExMEUgMTE2RCAxMUIwOworQ0Q4MjtDRDgyOzExMEUgMTE2RCAxMUIxO0NEODI7MTEwRSAxMTZEIDExQjE7CitDRDgzO0NEODM7MTEwRSAxMTZEIDExQjI7Q0Q4MzsxMTBFIDExNkQgMTFCMjsKK0NEODQ7Q0Q4NDsxMTBFIDExNkQgMTFCMztDRDg0OzExMEUgMTE2RCAxMUIzOworQ0Q4NTtDRDg1OzExMEUgMTE2RCAxMUI0O0NEODU7MTEwRSAxMTZEIDExQjQ7CitDRDg2O0NEODY7MTEwRSAxMTZEIDExQjU7Q0Q4NjsxMTBFIDExNkQgMTFCNTsKK0NEODc7Q0Q4NzsxMTBFIDExNkQgMTFCNjtDRDg3OzExMEUgMTE2RCAxMUI2OworQ0Q4ODtDRDg4OzExMEUgMTE2RCAxMUI3O0NEODg7MTEwRSAxMTZEIDExQjc7CitDRDg5O0NEODk7MTEwRSAxMTZEIDExQjg7Q0Q4OTsxMTBFIDExNkQgMTFCODsKK0NEOEE7Q0Q4QTsxMTBFIDExNkQgMTFCOTtDRDhBOzExMEUgMTE2RCAxMUI5OworQ0Q4QjtDRDhCOzExMEUgMTE2RCAxMUJBO0NEOEI7MTEwRSAxMTZEIDExQkE7CitDRDhDO0NEOEM7MTEwRSAxMTZEIDExQkI7Q0Q4QzsxMTBFIDExNkQgMTFCQjsKK0NEOEQ7Q0Q4RDsxMTBFIDExNkQgMTFCQztDRDhEOzExMEUgMTE2RCAxMUJDOworQ0Q4RTtDRDhFOzExMEUgMTE2RCAxMUJEO0NEOEU7MTEwRSAxMTZEIDExQkQ7CitDRDhGO0NEOEY7MTEwRSAxMTZEIDExQkU7Q0Q4RjsxMTBFIDExNkQgMTFCRTsKK0NEOTA7Q0Q5MDsxMTBFIDExNkQgMTFCRjtDRDkwOzExMEUgMTE2RCAxMUJGOworQ0Q5MTtDRDkxOzExMEUgMTE2RCAxMUMwO0NEOTE7MTEwRSAxMTZEIDExQzA7CitDRDkyO0NEOTI7MTEwRSAxMTZEIDExQzE7Q0Q5MjsxMTBFIDExNkQgMTFDMTsKK0NEOTM7Q0Q5MzsxMTBFIDExNkQgMTFDMjtDRDkzOzExMEUgMTE2RCAxMUMyOworQ0Q5NDtDRDk0OzExMEUgMTE2RTtDRDk0OzExMEUgMTE2RTsKK0NEOTU7Q0Q5NTsxMTBFIDExNkUgMTFBODtDRDk1OzExMEUgMTE2RSAxMUE4OworQ0Q5NjtDRDk2OzExMEUgMTE2RSAxMUE5O0NEOTY7MTEwRSAxMTZFIDExQTk7CitDRDk3O0NEOTc7MTEwRSAxMTZFIDExQUE7Q0Q5NzsxMTBFIDExNkUgMTFBQTsKK0NEOTg7Q0Q5ODsxMTBFIDExNkUgMTFBQjtDRDk4OzExMEUgMTE2RSAxMUFCOworQ0Q5OTtDRDk5OzExMEUgMTE2RSAxMUFDO0NEOTk7MTEwRSAxMTZFIDExQUM7CitDRDlBO0NEOUE7MTEwRSAxMTZFIDExQUQ7Q0Q5QTsxMTBFIDExNkUgMTFBRDsKK0NEOUI7Q0Q5QjsxMTBFIDExNkUgMTFBRTtDRDlCOzExMEUgMTE2RSAxMUFFOworQ0Q5QztDRDlDOzExMEUgMTE2RSAxMUFGO0NEOUM7MTEwRSAxMTZFIDExQUY7CitDRDlEO0NEOUQ7MTEwRSAxMTZFIDExQjA7Q0Q5RDsxMTBFIDExNkUgMTFCMDsKK0NEOUU7Q0Q5RTsxMTBFIDExNkUgMTFCMTtDRDlFOzExMEUgMTE2RSAxMUIxOworQ0Q5RjtDRDlGOzExMEUgMTE2RSAxMUIyO0NEOUY7MTEwRSAxMTZFIDExQjI7CitDREEwO0NEQTA7MTEwRSAxMTZFIDExQjM7Q0RBMDsxMTBFIDExNkUgMTFCMzsKK0NEQTE7Q0RBMTsxMTBFIDExNkUgMTFCNDtDREExOzExMEUgMTE2RSAxMUI0OworQ0RBMjtDREEyOzExMEUgMTE2RSAxMUI1O0NEQTI7MTEwRSAxMTZFIDExQjU7CitDREEzO0NEQTM7MTEwRSAxMTZFIDExQjY7Q0RBMzsxMTBFIDExNkUgMTFCNjsKK0NEQTQ7Q0RBNDsxMTBFIDExNkUgMTFCNztDREE0OzExMEUgMTE2RSAxMUI3OworQ0RBNTtDREE1OzExMEUgMTE2RSAxMUI4O0NEQTU7MTEwRSAxMTZFIDExQjg7CitDREE2O0NEQTY7MTEwRSAxMTZFIDExQjk7Q0RBNjsxMTBFIDExNkUgMTFCOTsKK0NEQTc7Q0RBNzsxMTBFIDExNkUgMTFCQTtDREE3OzExMEUgMTE2RSAxMUJBOworQ0RBODtDREE4OzExMEUgMTE2RSAxMUJCO0NEQTg7MTEwRSAxMTZFIDExQkI7CitDREE5O0NEQTk7MTEwRSAxMTZFIDExQkM7Q0RBOTsxMTBFIDExNkUgMTFCQzsKK0NEQUE7Q0RBQTsxMTBFIDExNkUgMTFCRDtDREFBOzExMEUgMTE2RSAxMUJEOworQ0RBQjtDREFCOzExMEUgMTE2RSAxMUJFO0NEQUI7MTEwRSAxMTZFIDExQkU7CitDREFDO0NEQUM7MTEwRSAxMTZFIDExQkY7Q0RBQzsxMTBFIDExNkUgMTFCRjsKK0NEQUQ7Q0RBRDsxMTBFIDExNkUgMTFDMDtDREFEOzExMEUgMTE2RSAxMUMwOworQ0RBRTtDREFFOzExMEUgMTE2RSAxMUMxO0NEQUU7MTEwRSAxMTZFIDExQzE7CitDREFGO0NEQUY7MTEwRSAxMTZFIDExQzI7Q0RBRjsxMTBFIDExNkUgMTFDMjsKK0NEQjA7Q0RCMDsxMTBFIDExNkY7Q0RCMDsxMTBFIDExNkY7CitDREIxO0NEQjE7MTEwRSAxMTZGIDExQTg7Q0RCMTsxMTBFIDExNkYgMTFBODsKK0NEQjI7Q0RCMjsxMTBFIDExNkYgMTFBOTtDREIyOzExMEUgMTE2RiAxMUE5OworQ0RCMztDREIzOzExMEUgMTE2RiAxMUFBO0NEQjM7MTEwRSAxMTZGIDExQUE7CitDREI0O0NEQjQ7MTEwRSAxMTZGIDExQUI7Q0RCNDsxMTBFIDExNkYgMTFBQjsKK0NEQjU7Q0RCNTsxMTBFIDExNkYgMTFBQztDREI1OzExMEUgMTE2RiAxMUFDOworQ0RCNjtDREI2OzExMEUgMTE2RiAxMUFEO0NEQjY7MTEwRSAxMTZGIDExQUQ7CitDREI3O0NEQjc7MTEwRSAxMTZGIDExQUU7Q0RCNzsxMTBFIDExNkYgMTFBRTsKK0NEQjg7Q0RCODsxMTBFIDExNkYgMTFBRjtDREI4OzExMEUgMTE2RiAxMUFGOworQ0RCOTtDREI5OzExMEUgMTE2RiAxMUIwO0NEQjk7MTEwRSAxMTZGIDExQjA7CitDREJBO0NEQkE7MTEwRSAxMTZGIDExQjE7Q0RCQTsxMTBFIDExNkYgMTFCMTsKK0NEQkI7Q0RCQjsxMTBFIDExNkYgMTFCMjtDREJCOzExMEUgMTE2RiAxMUIyOworQ0RCQztDREJDOzExMEUgMTE2RiAxMUIzO0NEQkM7MTEwRSAxMTZGIDExQjM7CitDREJEO0NEQkQ7MTEwRSAxMTZGIDExQjQ7Q0RCRDsxMTBFIDExNkYgMTFCNDsKK0NEQkU7Q0RCRTsxMTBFIDExNkYgMTFCNTtDREJFOzExMEUgMTE2RiAxMUI1OworQ0RCRjtDREJGOzExMEUgMTE2RiAxMUI2O0NEQkY7MTEwRSAxMTZGIDExQjY7CitDREMwO0NEQzA7MTEwRSAxMTZGIDExQjc7Q0RDMDsxMTBFIDExNkYgMTFCNzsKK0NEQzE7Q0RDMTsxMTBFIDExNkYgMTFCODtDREMxOzExMEUgMTE2RiAxMUI4OworQ0RDMjtDREMyOzExMEUgMTE2RiAxMUI5O0NEQzI7MTEwRSAxMTZGIDExQjk7CitDREMzO0NEQzM7MTEwRSAxMTZGIDExQkE7Q0RDMzsxMTBFIDExNkYgMTFCQTsKK0NEQzQ7Q0RDNDsxMTBFIDExNkYgMTFCQjtDREM0OzExMEUgMTE2RiAxMUJCOworQ0RDNTtDREM1OzExMEUgMTE2RiAxMUJDO0NEQzU7MTEwRSAxMTZGIDExQkM7CitDREM2O0NEQzY7MTEwRSAxMTZGIDExQkQ7Q0RDNjsxMTBFIDExNkYgMTFCRDsKK0NEQzc7Q0RDNzsxMTBFIDExNkYgMTFCRTtDREM3OzExMEUgMTE2RiAxMUJFOworQ0RDODtDREM4OzExMEUgMTE2RiAxMUJGO0NEQzg7MTEwRSAxMTZGIDExQkY7CitDREM5O0NEQzk7MTEwRSAxMTZGIDExQzA7Q0RDOTsxMTBFIDExNkYgMTFDMDsKK0NEQ0E7Q0RDQTsxMTBFIDExNkYgMTFDMTtDRENBOzExMEUgMTE2RiAxMUMxOworQ0RDQjtDRENCOzExMEUgMTE2RiAxMUMyO0NEQ0I7MTEwRSAxMTZGIDExQzI7CitDRENDO0NEQ0M7MTEwRSAxMTcwO0NEQ0M7MTEwRSAxMTcwOworQ0RDRDtDRENEOzExMEUgMTE3MCAxMUE4O0NEQ0Q7MTEwRSAxMTcwIDExQTg7CitDRENFO0NEQ0U7MTEwRSAxMTcwIDExQTk7Q0RDRTsxMTBFIDExNzAgMTFBOTsKK0NEQ0Y7Q0RDRjsxMTBFIDExNzAgMTFBQTtDRENGOzExMEUgMTE3MCAxMUFBOworQ0REMDtDREQwOzExMEUgMTE3MCAxMUFCO0NERDA7MTEwRSAxMTcwIDExQUI7CitDREQxO0NERDE7MTEwRSAxMTcwIDExQUM7Q0REMTsxMTBFIDExNzAgMTFBQzsKK0NERDI7Q0REMjsxMTBFIDExNzAgMTFBRDtDREQyOzExMEUgMTE3MCAxMUFEOworQ0REMztDREQzOzExMEUgMTE3MCAxMUFFO0NERDM7MTEwRSAxMTcwIDExQUU7CitDREQ0O0NERDQ7MTEwRSAxMTcwIDExQUY7Q0RENDsxMTBFIDExNzAgMTFBRjsKK0NERDU7Q0RENTsxMTBFIDExNzAgMTFCMDtDREQ1OzExMEUgMTE3MCAxMUIwOworQ0RENjtDREQ2OzExMEUgMTE3MCAxMUIxO0NERDY7MTEwRSAxMTcwIDExQjE7CitDREQ3O0NERDc7MTEwRSAxMTcwIDExQjI7Q0RENzsxMTBFIDExNzAgMTFCMjsKK0NERDg7Q0REODsxMTBFIDExNzAgMTFCMztDREQ4OzExMEUgMTE3MCAxMUIzOworQ0REOTtDREQ5OzExMEUgMTE3MCAxMUI0O0NERDk7MTEwRSAxMTcwIDExQjQ7CitDRERBO0NEREE7MTEwRSAxMTcwIDExQjU7Q0REQTsxMTBFIDExNzAgMTFCNTsKK0NEREI7Q0REQjsxMTBFIDExNzAgMTFCNjtDRERCOzExMEUgMTE3MCAxMUI2OworQ0REQztDRERDOzExMEUgMTE3MCAxMUI3O0NEREM7MTEwRSAxMTcwIDExQjc7CitDREREO0NEREQ7MTEwRSAxMTcwIDExQjg7Q0RERDsxMTBFIDExNzAgMTFCODsKK0NEREU7Q0RERTsxMTBFIDExNzAgMTFCOTtDRERFOzExMEUgMTE3MCAxMUI5OworQ0RERjtDRERGOzExMEUgMTE3MCAxMUJBO0NEREY7MTEwRSAxMTcwIDExQkE7CitDREUwO0NERTA7MTEwRSAxMTcwIDExQkI7Q0RFMDsxMTBFIDExNzAgMTFCQjsKK0NERTE7Q0RFMTsxMTBFIDExNzAgMTFCQztDREUxOzExMEUgMTE3MCAxMUJDOworQ0RFMjtDREUyOzExMEUgMTE3MCAxMUJEO0NERTI7MTEwRSAxMTcwIDExQkQ7CitDREUzO0NERTM7MTEwRSAxMTcwIDExQkU7Q0RFMzsxMTBFIDExNzAgMTFCRTsKK0NERTQ7Q0RFNDsxMTBFIDExNzAgMTFCRjtDREU0OzExMEUgMTE3MCAxMUJGOworQ0RFNTtDREU1OzExMEUgMTE3MCAxMUMwO0NERTU7MTEwRSAxMTcwIDExQzA7CitDREU2O0NERTY7MTEwRSAxMTcwIDExQzE7Q0RFNjsxMTBFIDExNzAgMTFDMTsKK0NERTc7Q0RFNzsxMTBFIDExNzAgMTFDMjtDREU3OzExMEUgMTE3MCAxMUMyOworQ0RFODtDREU4OzExMEUgMTE3MTtDREU4OzExMEUgMTE3MTsKK0NERTk7Q0RFOTsxMTBFIDExNzEgMTFBODtDREU5OzExMEUgMTE3MSAxMUE4OworQ0RFQTtDREVBOzExMEUgMTE3MSAxMUE5O0NERUE7MTEwRSAxMTcxIDExQTk7CitDREVCO0NERUI7MTEwRSAxMTcxIDExQUE7Q0RFQjsxMTBFIDExNzEgMTFBQTsKK0NERUM7Q0RFQzsxMTBFIDExNzEgMTFBQjtDREVDOzExMEUgMTE3MSAxMUFCOworQ0RFRDtDREVEOzExMEUgMTE3MSAxMUFDO0NERUQ7MTEwRSAxMTcxIDExQUM7CitDREVFO0NERUU7MTEwRSAxMTcxIDExQUQ7Q0RFRTsxMTBFIDExNzEgMTFBRDsKK0NERUY7Q0RFRjsxMTBFIDExNzEgMTFBRTtDREVGOzExMEUgMTE3MSAxMUFFOworQ0RGMDtDREYwOzExMEUgMTE3MSAxMUFGO0NERjA7MTEwRSAxMTcxIDExQUY7CitDREYxO0NERjE7MTEwRSAxMTcxIDExQjA7Q0RGMTsxMTBFIDExNzEgMTFCMDsKK0NERjI7Q0RGMjsxMTBFIDExNzEgMTFCMTtDREYyOzExMEUgMTE3MSAxMUIxOworQ0RGMztDREYzOzExMEUgMTE3MSAxMUIyO0NERjM7MTEwRSAxMTcxIDExQjI7CitDREY0O0NERjQ7MTEwRSAxMTcxIDExQjM7Q0RGNDsxMTBFIDExNzEgMTFCMzsKK0NERjU7Q0RGNTsxMTBFIDExNzEgMTFCNDtDREY1OzExMEUgMTE3MSAxMUI0OworQ0RGNjtDREY2OzExMEUgMTE3MSAxMUI1O0NERjY7MTEwRSAxMTcxIDExQjU7CitDREY3O0NERjc7MTEwRSAxMTcxIDExQjY7Q0RGNzsxMTBFIDExNzEgMTFCNjsKK0NERjg7Q0RGODsxMTBFIDExNzEgMTFCNztDREY4OzExMEUgMTE3MSAxMUI3OworQ0RGOTtDREY5OzExMEUgMTE3MSAxMUI4O0NERjk7MTEwRSAxMTcxIDExQjg7CitDREZBO0NERkE7MTEwRSAxMTcxIDExQjk7Q0RGQTsxMTBFIDExNzEgMTFCOTsKK0NERkI7Q0RGQjsxMTBFIDExNzEgMTFCQTtDREZCOzExMEUgMTE3MSAxMUJBOworQ0RGQztDREZDOzExMEUgMTE3MSAxMUJCO0NERkM7MTEwRSAxMTcxIDExQkI7CitDREZEO0NERkQ7MTEwRSAxMTcxIDExQkM7Q0RGRDsxMTBFIDExNzEgMTFCQzsKK0NERkU7Q0RGRTsxMTBFIDExNzEgMTFCRDtDREZFOzExMEUgMTE3MSAxMUJEOworQ0RGRjtDREZGOzExMEUgMTE3MSAxMUJFO0NERkY7MTEwRSAxMTcxIDExQkU7CitDRTAwO0NFMDA7MTEwRSAxMTcxIDExQkY7Q0UwMDsxMTBFIDExNzEgMTFCRjsKK0NFMDE7Q0UwMTsxMTBFIDExNzEgMTFDMDtDRTAxOzExMEUgMTE3MSAxMUMwOworQ0UwMjtDRTAyOzExMEUgMTE3MSAxMUMxO0NFMDI7MTEwRSAxMTcxIDExQzE7CitDRTAzO0NFMDM7MTEwRSAxMTcxIDExQzI7Q0UwMzsxMTBFIDExNzEgMTFDMjsKK0NFMDQ7Q0UwNDsxMTBFIDExNzI7Q0UwNDsxMTBFIDExNzI7CitDRTA1O0NFMDU7MTEwRSAxMTcyIDExQTg7Q0UwNTsxMTBFIDExNzIgMTFBODsKK0NFMDY7Q0UwNjsxMTBFIDExNzIgMTFBOTtDRTA2OzExMEUgMTE3MiAxMUE5OworQ0UwNztDRTA3OzExMEUgMTE3MiAxMUFBO0NFMDc7MTEwRSAxMTcyIDExQUE7CitDRTA4O0NFMDg7MTEwRSAxMTcyIDExQUI7Q0UwODsxMTBFIDExNzIgMTFBQjsKK0NFMDk7Q0UwOTsxMTBFIDExNzIgMTFBQztDRTA5OzExMEUgMTE3MiAxMUFDOworQ0UwQTtDRTBBOzExMEUgMTE3MiAxMUFEO0NFMEE7MTEwRSAxMTcyIDExQUQ7CitDRTBCO0NFMEI7MTEwRSAxMTcyIDExQUU7Q0UwQjsxMTBFIDExNzIgMTFBRTsKK0NFMEM7Q0UwQzsxMTBFIDExNzIgMTFBRjtDRTBDOzExMEUgMTE3MiAxMUFGOworQ0UwRDtDRTBEOzExMEUgMTE3MiAxMUIwO0NFMEQ7MTEwRSAxMTcyIDExQjA7CitDRTBFO0NFMEU7MTEwRSAxMTcyIDExQjE7Q0UwRTsxMTBFIDExNzIgMTFCMTsKK0NFMEY7Q0UwRjsxMTBFIDExNzIgMTFCMjtDRTBGOzExMEUgMTE3MiAxMUIyOworQ0UxMDtDRTEwOzExMEUgMTE3MiAxMUIzO0NFMTA7MTEwRSAxMTcyIDExQjM7CitDRTExO0NFMTE7MTEwRSAxMTcyIDExQjQ7Q0UxMTsxMTBFIDExNzIgMTFCNDsKK0NFMTI7Q0UxMjsxMTBFIDExNzIgMTFCNTtDRTEyOzExMEUgMTE3MiAxMUI1OworQ0UxMztDRTEzOzExMEUgMTE3MiAxMUI2O0NFMTM7MTEwRSAxMTcyIDExQjY7CitDRTE0O0NFMTQ7MTEwRSAxMTcyIDExQjc7Q0UxNDsxMTBFIDExNzIgMTFCNzsKK0NFMTU7Q0UxNTsxMTBFIDExNzIgMTFCODtDRTE1OzExMEUgMTE3MiAxMUI4OworQ0UxNjtDRTE2OzExMEUgMTE3MiAxMUI5O0NFMTY7MTEwRSAxMTcyIDExQjk7CitDRTE3O0NFMTc7MTEwRSAxMTcyIDExQkE7Q0UxNzsxMTBFIDExNzIgMTFCQTsKK0NFMTg7Q0UxODsxMTBFIDExNzIgMTFCQjtDRTE4OzExMEUgMTE3MiAxMUJCOworQ0UxOTtDRTE5OzExMEUgMTE3MiAxMUJDO0NFMTk7MTEwRSAxMTcyIDExQkM7CitDRTFBO0NFMUE7MTEwRSAxMTcyIDExQkQ7Q0UxQTsxMTBFIDExNzIgMTFCRDsKK0NFMUI7Q0UxQjsxMTBFIDExNzIgMTFCRTtDRTFCOzExMEUgMTE3MiAxMUJFOworQ0UxQztDRTFDOzExMEUgMTE3MiAxMUJGO0NFMUM7MTEwRSAxMTcyIDExQkY7CitDRTFEO0NFMUQ7MTEwRSAxMTcyIDExQzA7Q0UxRDsxMTBFIDExNzIgMTFDMDsKK0NFMUU7Q0UxRTsxMTBFIDExNzIgMTFDMTtDRTFFOzExMEUgMTE3MiAxMUMxOworQ0UxRjtDRTFGOzExMEUgMTE3MiAxMUMyO0NFMUY7MTEwRSAxMTcyIDExQzI7CitDRTIwO0NFMjA7MTEwRSAxMTczO0NFMjA7MTEwRSAxMTczOworQ0UyMTtDRTIxOzExMEUgMTE3MyAxMUE4O0NFMjE7MTEwRSAxMTczIDExQTg7CitDRTIyO0NFMjI7MTEwRSAxMTczIDExQTk7Q0UyMjsxMTBFIDExNzMgMTFBOTsKK0NFMjM7Q0UyMzsxMTBFIDExNzMgMTFBQTtDRTIzOzExMEUgMTE3MyAxMUFBOworQ0UyNDtDRTI0OzExMEUgMTE3MyAxMUFCO0NFMjQ7MTEwRSAxMTczIDExQUI7CitDRTI1O0NFMjU7MTEwRSAxMTczIDExQUM7Q0UyNTsxMTBFIDExNzMgMTFBQzsKK0NFMjY7Q0UyNjsxMTBFIDExNzMgMTFBRDtDRTI2OzExMEUgMTE3MyAxMUFEOworQ0UyNztDRTI3OzExMEUgMTE3MyAxMUFFO0NFMjc7MTEwRSAxMTczIDExQUU7CitDRTI4O0NFMjg7MTEwRSAxMTczIDExQUY7Q0UyODsxMTBFIDExNzMgMTFBRjsKK0NFMjk7Q0UyOTsxMTBFIDExNzMgMTFCMDtDRTI5OzExMEUgMTE3MyAxMUIwOworQ0UyQTtDRTJBOzExMEUgMTE3MyAxMUIxO0NFMkE7MTEwRSAxMTczIDExQjE7CitDRTJCO0NFMkI7MTEwRSAxMTczIDExQjI7Q0UyQjsxMTBFIDExNzMgMTFCMjsKK0NFMkM7Q0UyQzsxMTBFIDExNzMgMTFCMztDRTJDOzExMEUgMTE3MyAxMUIzOworQ0UyRDtDRTJEOzExMEUgMTE3MyAxMUI0O0NFMkQ7MTEwRSAxMTczIDExQjQ7CitDRTJFO0NFMkU7MTEwRSAxMTczIDExQjU7Q0UyRTsxMTBFIDExNzMgMTFCNTsKK0NFMkY7Q0UyRjsxMTBFIDExNzMgMTFCNjtDRTJGOzExMEUgMTE3MyAxMUI2OworQ0UzMDtDRTMwOzExMEUgMTE3MyAxMUI3O0NFMzA7MTEwRSAxMTczIDExQjc7CitDRTMxO0NFMzE7MTEwRSAxMTczIDExQjg7Q0UzMTsxMTBFIDExNzMgMTFCODsKK0NFMzI7Q0UzMjsxMTBFIDExNzMgMTFCOTtDRTMyOzExMEUgMTE3MyAxMUI5OworQ0UzMztDRTMzOzExMEUgMTE3MyAxMUJBO0NFMzM7MTEwRSAxMTczIDExQkE7CitDRTM0O0NFMzQ7MTEwRSAxMTczIDExQkI7Q0UzNDsxMTBFIDExNzMgMTFCQjsKK0NFMzU7Q0UzNTsxMTBFIDExNzMgMTFCQztDRTM1OzExMEUgMTE3MyAxMUJDOworQ0UzNjtDRTM2OzExMEUgMTE3MyAxMUJEO0NFMzY7MTEwRSAxMTczIDExQkQ7CitDRTM3O0NFMzc7MTEwRSAxMTczIDExQkU7Q0UzNzsxMTBFIDExNzMgMTFCRTsKK0NFMzg7Q0UzODsxMTBFIDExNzMgMTFCRjtDRTM4OzExMEUgMTE3MyAxMUJGOworQ0UzOTtDRTM5OzExMEUgMTE3MyAxMUMwO0NFMzk7MTEwRSAxMTczIDExQzA7CitDRTNBO0NFM0E7MTEwRSAxMTczIDExQzE7Q0UzQTsxMTBFIDExNzMgMTFDMTsKK0NFM0I7Q0UzQjsxMTBFIDExNzMgMTFDMjtDRTNCOzExMEUgMTE3MyAxMUMyOworQ0UzQztDRTNDOzExMEUgMTE3NDtDRTNDOzExMEUgMTE3NDsKK0NFM0Q7Q0UzRDsxMTBFIDExNzQgMTFBODtDRTNEOzExMEUgMTE3NCAxMUE4OworQ0UzRTtDRTNFOzExMEUgMTE3NCAxMUE5O0NFM0U7MTEwRSAxMTc0IDExQTk7CitDRTNGO0NFM0Y7MTEwRSAxMTc0IDExQUE7Q0UzRjsxMTBFIDExNzQgMTFBQTsKK0NFNDA7Q0U0MDsxMTBFIDExNzQgMTFBQjtDRTQwOzExMEUgMTE3NCAxMUFCOworQ0U0MTtDRTQxOzExMEUgMTE3NCAxMUFDO0NFNDE7MTEwRSAxMTc0IDExQUM7CitDRTQyO0NFNDI7MTEwRSAxMTc0IDExQUQ7Q0U0MjsxMTBFIDExNzQgMTFBRDsKK0NFNDM7Q0U0MzsxMTBFIDExNzQgMTFBRTtDRTQzOzExMEUgMTE3NCAxMUFFOworQ0U0NDtDRTQ0OzExMEUgMTE3NCAxMUFGO0NFNDQ7MTEwRSAxMTc0IDExQUY7CitDRTQ1O0NFNDU7MTEwRSAxMTc0IDExQjA7Q0U0NTsxMTBFIDExNzQgMTFCMDsKK0NFNDY7Q0U0NjsxMTBFIDExNzQgMTFCMTtDRTQ2OzExMEUgMTE3NCAxMUIxOworQ0U0NztDRTQ3OzExMEUgMTE3NCAxMUIyO0NFNDc7MTEwRSAxMTc0IDExQjI7CitDRTQ4O0NFNDg7MTEwRSAxMTc0IDExQjM7Q0U0ODsxMTBFIDExNzQgMTFCMzsKK0NFNDk7Q0U0OTsxMTBFIDExNzQgMTFCNDtDRTQ5OzExMEUgMTE3NCAxMUI0OworQ0U0QTtDRTRBOzExMEUgMTE3NCAxMUI1O0NFNEE7MTEwRSAxMTc0IDExQjU7CitDRTRCO0NFNEI7MTEwRSAxMTc0IDExQjY7Q0U0QjsxMTBFIDExNzQgMTFCNjsKK0NFNEM7Q0U0QzsxMTBFIDExNzQgMTFCNztDRTRDOzExMEUgMTE3NCAxMUI3OworQ0U0RDtDRTREOzExMEUgMTE3NCAxMUI4O0NFNEQ7MTEwRSAxMTc0IDExQjg7CitDRTRFO0NFNEU7MTEwRSAxMTc0IDExQjk7Q0U0RTsxMTBFIDExNzQgMTFCOTsKK0NFNEY7Q0U0RjsxMTBFIDExNzQgMTFCQTtDRTRGOzExMEUgMTE3NCAxMUJBOworQ0U1MDtDRTUwOzExMEUgMTE3NCAxMUJCO0NFNTA7MTEwRSAxMTc0IDExQkI7CitDRTUxO0NFNTE7MTEwRSAxMTc0IDExQkM7Q0U1MTsxMTBFIDExNzQgMTFCQzsKK0NFNTI7Q0U1MjsxMTBFIDExNzQgMTFCRDtDRTUyOzExMEUgMTE3NCAxMUJEOworQ0U1MztDRTUzOzExMEUgMTE3NCAxMUJFO0NFNTM7MTEwRSAxMTc0IDExQkU7CitDRTU0O0NFNTQ7MTEwRSAxMTc0IDExQkY7Q0U1NDsxMTBFIDExNzQgMTFCRjsKK0NFNTU7Q0U1NTsxMTBFIDExNzQgMTFDMDtDRTU1OzExMEUgMTE3NCAxMUMwOworQ0U1NjtDRTU2OzExMEUgMTE3NCAxMUMxO0NFNTY7MTEwRSAxMTc0IDExQzE7CitDRTU3O0NFNTc7MTEwRSAxMTc0IDExQzI7Q0U1NzsxMTBFIDExNzQgMTFDMjsKK0NFNTg7Q0U1ODsxMTBFIDExNzU7Q0U1ODsxMTBFIDExNzU7CitDRTU5O0NFNTk7MTEwRSAxMTc1IDExQTg7Q0U1OTsxMTBFIDExNzUgMTFBODsKK0NFNUE7Q0U1QTsxMTBFIDExNzUgMTFBOTtDRTVBOzExMEUgMTE3NSAxMUE5OworQ0U1QjtDRTVCOzExMEUgMTE3NSAxMUFBO0NFNUI7MTEwRSAxMTc1IDExQUE7CitDRTVDO0NFNUM7MTEwRSAxMTc1IDExQUI7Q0U1QzsxMTBFIDExNzUgMTFBQjsKK0NFNUQ7Q0U1RDsxMTBFIDExNzUgMTFBQztDRTVEOzExMEUgMTE3NSAxMUFDOworQ0U1RTtDRTVFOzExMEUgMTE3NSAxMUFEO0NFNUU7MTEwRSAxMTc1IDExQUQ7CitDRTVGO0NFNUY7MTEwRSAxMTc1IDExQUU7Q0U1RjsxMTBFIDExNzUgMTFBRTsKK0NFNjA7Q0U2MDsxMTBFIDExNzUgMTFBRjtDRTYwOzExMEUgMTE3NSAxMUFGOworQ0U2MTtDRTYxOzExMEUgMTE3NSAxMUIwO0NFNjE7MTEwRSAxMTc1IDExQjA7CitDRTYyO0NFNjI7MTEwRSAxMTc1IDExQjE7Q0U2MjsxMTBFIDExNzUgMTFCMTsKK0NFNjM7Q0U2MzsxMTBFIDExNzUgMTFCMjtDRTYzOzExMEUgMTE3NSAxMUIyOworQ0U2NDtDRTY0OzExMEUgMTE3NSAxMUIzO0NFNjQ7MTEwRSAxMTc1IDExQjM7CitDRTY1O0NFNjU7MTEwRSAxMTc1IDExQjQ7Q0U2NTsxMTBFIDExNzUgMTFCNDsKK0NFNjY7Q0U2NjsxMTBFIDExNzUgMTFCNTtDRTY2OzExMEUgMTE3NSAxMUI1OworQ0U2NztDRTY3OzExMEUgMTE3NSAxMUI2O0NFNjc7MTEwRSAxMTc1IDExQjY7CitDRTY4O0NFNjg7MTEwRSAxMTc1IDExQjc7Q0U2ODsxMTBFIDExNzUgMTFCNzsKK0NFNjk7Q0U2OTsxMTBFIDExNzUgMTFCODtDRTY5OzExMEUgMTE3NSAxMUI4OworQ0U2QTtDRTZBOzExMEUgMTE3NSAxMUI5O0NFNkE7MTEwRSAxMTc1IDExQjk7CitDRTZCO0NFNkI7MTEwRSAxMTc1IDExQkE7Q0U2QjsxMTBFIDExNzUgMTFCQTsKK0NFNkM7Q0U2QzsxMTBFIDExNzUgMTFCQjtDRTZDOzExMEUgMTE3NSAxMUJCOworQ0U2RDtDRTZEOzExMEUgMTE3NSAxMUJDO0NFNkQ7MTEwRSAxMTc1IDExQkM7CitDRTZFO0NFNkU7MTEwRSAxMTc1IDExQkQ7Q0U2RTsxMTBFIDExNzUgMTFCRDsKK0NFNkY7Q0U2RjsxMTBFIDExNzUgMTFCRTtDRTZGOzExMEUgMTE3NSAxMUJFOworQ0U3MDtDRTcwOzExMEUgMTE3NSAxMUJGO0NFNzA7MTEwRSAxMTc1IDExQkY7CitDRTcxO0NFNzE7MTEwRSAxMTc1IDExQzA7Q0U3MTsxMTBFIDExNzUgMTFDMDsKK0NFNzI7Q0U3MjsxMTBFIDExNzUgMTFDMTtDRTcyOzExMEUgMTE3NSAxMUMxOworQ0U3MztDRTczOzExMEUgMTE3NSAxMUMyO0NFNzM7MTEwRSAxMTc1IDExQzI7CitDRTc0O0NFNzQ7MTEwRiAxMTYxO0NFNzQ7MTEwRiAxMTYxOworQ0U3NTtDRTc1OzExMEYgMTE2MSAxMUE4O0NFNzU7MTEwRiAxMTYxIDExQTg7CitDRTc2O0NFNzY7MTEwRiAxMTYxIDExQTk7Q0U3NjsxMTBGIDExNjEgMTFBOTsKK0NFNzc7Q0U3NzsxMTBGIDExNjEgMTFBQTtDRTc3OzExMEYgMTE2MSAxMUFBOworQ0U3ODtDRTc4OzExMEYgMTE2MSAxMUFCO0NFNzg7MTEwRiAxMTYxIDExQUI7CitDRTc5O0NFNzk7MTEwRiAxMTYxIDExQUM7Q0U3OTsxMTBGIDExNjEgMTFBQzsKK0NFN0E7Q0U3QTsxMTBGIDExNjEgMTFBRDtDRTdBOzExMEYgMTE2MSAxMUFEOworQ0U3QjtDRTdCOzExMEYgMTE2MSAxMUFFO0NFN0I7MTEwRiAxMTYxIDExQUU7CitDRTdDO0NFN0M7MTEwRiAxMTYxIDExQUY7Q0U3QzsxMTBGIDExNjEgMTFBRjsKK0NFN0Q7Q0U3RDsxMTBGIDExNjEgMTFCMDtDRTdEOzExMEYgMTE2MSAxMUIwOworQ0U3RTtDRTdFOzExMEYgMTE2MSAxMUIxO0NFN0U7MTEwRiAxMTYxIDExQjE7CitDRTdGO0NFN0Y7MTEwRiAxMTYxIDExQjI7Q0U3RjsxMTBGIDExNjEgMTFCMjsKK0NFODA7Q0U4MDsxMTBGIDExNjEgMTFCMztDRTgwOzExMEYgMTE2MSAxMUIzOworQ0U4MTtDRTgxOzExMEYgMTE2MSAxMUI0O0NFODE7MTEwRiAxMTYxIDExQjQ7CitDRTgyO0NFODI7MTEwRiAxMTYxIDExQjU7Q0U4MjsxMTBGIDExNjEgMTFCNTsKK0NFODM7Q0U4MzsxMTBGIDExNjEgMTFCNjtDRTgzOzExMEYgMTE2MSAxMUI2OworQ0U4NDtDRTg0OzExMEYgMTE2MSAxMUI3O0NFODQ7MTEwRiAxMTYxIDExQjc7CitDRTg1O0NFODU7MTEwRiAxMTYxIDExQjg7Q0U4NTsxMTBGIDExNjEgMTFCODsKK0NFODY7Q0U4NjsxMTBGIDExNjEgMTFCOTtDRTg2OzExMEYgMTE2MSAxMUI5OworQ0U4NztDRTg3OzExMEYgMTE2MSAxMUJBO0NFODc7MTEwRiAxMTYxIDExQkE7CitDRTg4O0NFODg7MTEwRiAxMTYxIDExQkI7Q0U4ODsxMTBGIDExNjEgMTFCQjsKK0NFODk7Q0U4OTsxMTBGIDExNjEgMTFCQztDRTg5OzExMEYgMTE2MSAxMUJDOworQ0U4QTtDRThBOzExMEYgMTE2MSAxMUJEO0NFOEE7MTEwRiAxMTYxIDExQkQ7CitDRThCO0NFOEI7MTEwRiAxMTYxIDExQkU7Q0U4QjsxMTBGIDExNjEgMTFCRTsKK0NFOEM7Q0U4QzsxMTBGIDExNjEgMTFCRjtDRThDOzExMEYgMTE2MSAxMUJGOworQ0U4RDtDRThEOzExMEYgMTE2MSAxMUMwO0NFOEQ7MTEwRiAxMTYxIDExQzA7CitDRThFO0NFOEU7MTEwRiAxMTYxIDExQzE7Q0U4RTsxMTBGIDExNjEgMTFDMTsKK0NFOEY7Q0U4RjsxMTBGIDExNjEgMTFDMjtDRThGOzExMEYgMTE2MSAxMUMyOworQ0U5MDtDRTkwOzExMEYgMTE2MjtDRTkwOzExMEYgMTE2MjsKK0NFOTE7Q0U5MTsxMTBGIDExNjIgMTFBODtDRTkxOzExMEYgMTE2MiAxMUE4OworQ0U5MjtDRTkyOzExMEYgMTE2MiAxMUE5O0NFOTI7MTEwRiAxMTYyIDExQTk7CitDRTkzO0NFOTM7MTEwRiAxMTYyIDExQUE7Q0U5MzsxMTBGIDExNjIgMTFBQTsKK0NFOTQ7Q0U5NDsxMTBGIDExNjIgMTFBQjtDRTk0OzExMEYgMTE2MiAxMUFCOworQ0U5NTtDRTk1OzExMEYgMTE2MiAxMUFDO0NFOTU7MTEwRiAxMTYyIDExQUM7CitDRTk2O0NFOTY7MTEwRiAxMTYyIDExQUQ7Q0U5NjsxMTBGIDExNjIgMTFBRDsKK0NFOTc7Q0U5NzsxMTBGIDExNjIgMTFBRTtDRTk3OzExMEYgMTE2MiAxMUFFOworQ0U5ODtDRTk4OzExMEYgMTE2MiAxMUFGO0NFOTg7MTEwRiAxMTYyIDExQUY7CitDRTk5O0NFOTk7MTEwRiAxMTYyIDExQjA7Q0U5OTsxMTBGIDExNjIgMTFCMDsKK0NFOUE7Q0U5QTsxMTBGIDExNjIgMTFCMTtDRTlBOzExMEYgMTE2MiAxMUIxOworQ0U5QjtDRTlCOzExMEYgMTE2MiAxMUIyO0NFOUI7MTEwRiAxMTYyIDExQjI7CitDRTlDO0NFOUM7MTEwRiAxMTYyIDExQjM7Q0U5QzsxMTBGIDExNjIgMTFCMzsKK0NFOUQ7Q0U5RDsxMTBGIDExNjIgMTFCNDtDRTlEOzExMEYgMTE2MiAxMUI0OworQ0U5RTtDRTlFOzExMEYgMTE2MiAxMUI1O0NFOUU7MTEwRiAxMTYyIDExQjU7CitDRTlGO0NFOUY7MTEwRiAxMTYyIDExQjY7Q0U5RjsxMTBGIDExNjIgMTFCNjsKK0NFQTA7Q0VBMDsxMTBGIDExNjIgMTFCNztDRUEwOzExMEYgMTE2MiAxMUI3OworQ0VBMTtDRUExOzExMEYgMTE2MiAxMUI4O0NFQTE7MTEwRiAxMTYyIDExQjg7CitDRUEyO0NFQTI7MTEwRiAxMTYyIDExQjk7Q0VBMjsxMTBGIDExNjIgMTFCOTsKK0NFQTM7Q0VBMzsxMTBGIDExNjIgMTFCQTtDRUEzOzExMEYgMTE2MiAxMUJBOworQ0VBNDtDRUE0OzExMEYgMTE2MiAxMUJCO0NFQTQ7MTEwRiAxMTYyIDExQkI7CitDRUE1O0NFQTU7MTEwRiAxMTYyIDExQkM7Q0VBNTsxMTBGIDExNjIgMTFCQzsKK0NFQTY7Q0VBNjsxMTBGIDExNjIgMTFCRDtDRUE2OzExMEYgMTE2MiAxMUJEOworQ0VBNztDRUE3OzExMEYgMTE2MiAxMUJFO0NFQTc7MTEwRiAxMTYyIDExQkU7CitDRUE4O0NFQTg7MTEwRiAxMTYyIDExQkY7Q0VBODsxMTBGIDExNjIgMTFCRjsKK0NFQTk7Q0VBOTsxMTBGIDExNjIgMTFDMDtDRUE5OzExMEYgMTE2MiAxMUMwOworQ0VBQTtDRUFBOzExMEYgMTE2MiAxMUMxO0NFQUE7MTEwRiAxMTYyIDExQzE7CitDRUFCO0NFQUI7MTEwRiAxMTYyIDExQzI7Q0VBQjsxMTBGIDExNjIgMTFDMjsKK0NFQUM7Q0VBQzsxMTBGIDExNjM7Q0VBQzsxMTBGIDExNjM7CitDRUFEO0NFQUQ7MTEwRiAxMTYzIDExQTg7Q0VBRDsxMTBGIDExNjMgMTFBODsKK0NFQUU7Q0VBRTsxMTBGIDExNjMgMTFBOTtDRUFFOzExMEYgMTE2MyAxMUE5OworQ0VBRjtDRUFGOzExMEYgMTE2MyAxMUFBO0NFQUY7MTEwRiAxMTYzIDExQUE7CitDRUIwO0NFQjA7MTEwRiAxMTYzIDExQUI7Q0VCMDsxMTBGIDExNjMgMTFBQjsKK0NFQjE7Q0VCMTsxMTBGIDExNjMgMTFBQztDRUIxOzExMEYgMTE2MyAxMUFDOworQ0VCMjtDRUIyOzExMEYgMTE2MyAxMUFEO0NFQjI7MTEwRiAxMTYzIDExQUQ7CitDRUIzO0NFQjM7MTEwRiAxMTYzIDExQUU7Q0VCMzsxMTBGIDExNjMgMTFBRTsKK0NFQjQ7Q0VCNDsxMTBGIDExNjMgMTFBRjtDRUI0OzExMEYgMTE2MyAxMUFGOworQ0VCNTtDRUI1OzExMEYgMTE2MyAxMUIwO0NFQjU7MTEwRiAxMTYzIDExQjA7CitDRUI2O0NFQjY7MTEwRiAxMTYzIDExQjE7Q0VCNjsxMTBGIDExNjMgMTFCMTsKK0NFQjc7Q0VCNzsxMTBGIDExNjMgMTFCMjtDRUI3OzExMEYgMTE2MyAxMUIyOworQ0VCODtDRUI4OzExMEYgMTE2MyAxMUIzO0NFQjg7MTEwRiAxMTYzIDExQjM7CitDRUI5O0NFQjk7MTEwRiAxMTYzIDExQjQ7Q0VCOTsxMTBGIDExNjMgMTFCNDsKK0NFQkE7Q0VCQTsxMTBGIDExNjMgMTFCNTtDRUJBOzExMEYgMTE2MyAxMUI1OworQ0VCQjtDRUJCOzExMEYgMTE2MyAxMUI2O0NFQkI7MTEwRiAxMTYzIDExQjY7CitDRUJDO0NFQkM7MTEwRiAxMTYzIDExQjc7Q0VCQzsxMTBGIDExNjMgMTFCNzsKK0NFQkQ7Q0VCRDsxMTBGIDExNjMgMTFCODtDRUJEOzExMEYgMTE2MyAxMUI4OworQ0VCRTtDRUJFOzExMEYgMTE2MyAxMUI5O0NFQkU7MTEwRiAxMTYzIDExQjk7CitDRUJGO0NFQkY7MTEwRiAxMTYzIDExQkE7Q0VCRjsxMTBGIDExNjMgMTFCQTsKK0NFQzA7Q0VDMDsxMTBGIDExNjMgMTFCQjtDRUMwOzExMEYgMTE2MyAxMUJCOworQ0VDMTtDRUMxOzExMEYgMTE2MyAxMUJDO0NFQzE7MTEwRiAxMTYzIDExQkM7CitDRUMyO0NFQzI7MTEwRiAxMTYzIDExQkQ7Q0VDMjsxMTBGIDExNjMgMTFCRDsKK0NFQzM7Q0VDMzsxMTBGIDExNjMgMTFCRTtDRUMzOzExMEYgMTE2MyAxMUJFOworQ0VDNDtDRUM0OzExMEYgMTE2MyAxMUJGO0NFQzQ7MTEwRiAxMTYzIDExQkY7CitDRUM1O0NFQzU7MTEwRiAxMTYzIDExQzA7Q0VDNTsxMTBGIDExNjMgMTFDMDsKK0NFQzY7Q0VDNjsxMTBGIDExNjMgMTFDMTtDRUM2OzExMEYgMTE2MyAxMUMxOworQ0VDNztDRUM3OzExMEYgMTE2MyAxMUMyO0NFQzc7MTEwRiAxMTYzIDExQzI7CitDRUM4O0NFQzg7MTEwRiAxMTY0O0NFQzg7MTEwRiAxMTY0OworQ0VDOTtDRUM5OzExMEYgMTE2NCAxMUE4O0NFQzk7MTEwRiAxMTY0IDExQTg7CitDRUNBO0NFQ0E7MTEwRiAxMTY0IDExQTk7Q0VDQTsxMTBGIDExNjQgMTFBOTsKK0NFQ0I7Q0VDQjsxMTBGIDExNjQgMTFBQTtDRUNCOzExMEYgMTE2NCAxMUFBOworQ0VDQztDRUNDOzExMEYgMTE2NCAxMUFCO0NFQ0M7MTEwRiAxMTY0IDExQUI7CitDRUNEO0NFQ0Q7MTEwRiAxMTY0IDExQUM7Q0VDRDsxMTBGIDExNjQgMTFBQzsKK0NFQ0U7Q0VDRTsxMTBGIDExNjQgMTFBRDtDRUNFOzExMEYgMTE2NCAxMUFEOworQ0VDRjtDRUNGOzExMEYgMTE2NCAxMUFFO0NFQ0Y7MTEwRiAxMTY0IDExQUU7CitDRUQwO0NFRDA7MTEwRiAxMTY0IDExQUY7Q0VEMDsxMTBGIDExNjQgMTFBRjsKK0NFRDE7Q0VEMTsxMTBGIDExNjQgMTFCMDtDRUQxOzExMEYgMTE2NCAxMUIwOworQ0VEMjtDRUQyOzExMEYgMTE2NCAxMUIxO0NFRDI7MTEwRiAxMTY0IDExQjE7CitDRUQzO0NFRDM7MTEwRiAxMTY0IDExQjI7Q0VEMzsxMTBGIDExNjQgMTFCMjsKK0NFRDQ7Q0VENDsxMTBGIDExNjQgMTFCMztDRUQ0OzExMEYgMTE2NCAxMUIzOworQ0VENTtDRUQ1OzExMEYgMTE2NCAxMUI0O0NFRDU7MTEwRiAxMTY0IDExQjQ7CitDRUQ2O0NFRDY7MTEwRiAxMTY0IDExQjU7Q0VENjsxMTBGIDExNjQgMTFCNTsKK0NFRDc7Q0VENzsxMTBGIDExNjQgMTFCNjtDRUQ3OzExMEYgMTE2NCAxMUI2OworQ0VEODtDRUQ4OzExMEYgMTE2NCAxMUI3O0NFRDg7MTEwRiAxMTY0IDExQjc7CitDRUQ5O0NFRDk7MTEwRiAxMTY0IDExQjg7Q0VEOTsxMTBGIDExNjQgMTFCODsKK0NFREE7Q0VEQTsxMTBGIDExNjQgMTFCOTtDRURBOzExMEYgMTE2NCAxMUI5OworQ0VEQjtDRURCOzExMEYgMTE2NCAxMUJBO0NFREI7MTEwRiAxMTY0IDExQkE7CitDRURDO0NFREM7MTEwRiAxMTY0IDExQkI7Q0VEQzsxMTBGIDExNjQgMTFCQjsKK0NFREQ7Q0VERDsxMTBGIDExNjQgMTFCQztDRUREOzExMEYgMTE2NCAxMUJDOworQ0VERTtDRURFOzExMEYgMTE2NCAxMUJEO0NFREU7MTEwRiAxMTY0IDExQkQ7CitDRURGO0NFREY7MTEwRiAxMTY0IDExQkU7Q0VERjsxMTBGIDExNjQgMTFCRTsKK0NFRTA7Q0VFMDsxMTBGIDExNjQgMTFCRjtDRUUwOzExMEYgMTE2NCAxMUJGOworQ0VFMTtDRUUxOzExMEYgMTE2NCAxMUMwO0NFRTE7MTEwRiAxMTY0IDExQzA7CitDRUUyO0NFRTI7MTEwRiAxMTY0IDExQzE7Q0VFMjsxMTBGIDExNjQgMTFDMTsKK0NFRTM7Q0VFMzsxMTBGIDExNjQgMTFDMjtDRUUzOzExMEYgMTE2NCAxMUMyOworQ0VFNDtDRUU0OzExMEYgMTE2NTtDRUU0OzExMEYgMTE2NTsKK0NFRTU7Q0VFNTsxMTBGIDExNjUgMTFBODtDRUU1OzExMEYgMTE2NSAxMUE4OworQ0VFNjtDRUU2OzExMEYgMTE2NSAxMUE5O0NFRTY7MTEwRiAxMTY1IDExQTk7CitDRUU3O0NFRTc7MTEwRiAxMTY1IDExQUE7Q0VFNzsxMTBGIDExNjUgMTFBQTsKK0NFRTg7Q0VFODsxMTBGIDExNjUgMTFBQjtDRUU4OzExMEYgMTE2NSAxMUFCOworQ0VFOTtDRUU5OzExMEYgMTE2NSAxMUFDO0NFRTk7MTEwRiAxMTY1IDExQUM7CitDRUVBO0NFRUE7MTEwRiAxMTY1IDExQUQ7Q0VFQTsxMTBGIDExNjUgMTFBRDsKK0NFRUI7Q0VFQjsxMTBGIDExNjUgMTFBRTtDRUVCOzExMEYgMTE2NSAxMUFFOworQ0VFQztDRUVDOzExMEYgMTE2NSAxMUFGO0NFRUM7MTEwRiAxMTY1IDExQUY7CitDRUVEO0NFRUQ7MTEwRiAxMTY1IDExQjA7Q0VFRDsxMTBGIDExNjUgMTFCMDsKK0NFRUU7Q0VFRTsxMTBGIDExNjUgMTFCMTtDRUVFOzExMEYgMTE2NSAxMUIxOworQ0VFRjtDRUVGOzExMEYgMTE2NSAxMUIyO0NFRUY7MTEwRiAxMTY1IDExQjI7CitDRUYwO0NFRjA7MTEwRiAxMTY1IDExQjM7Q0VGMDsxMTBGIDExNjUgMTFCMzsKK0NFRjE7Q0VGMTsxMTBGIDExNjUgMTFCNDtDRUYxOzExMEYgMTE2NSAxMUI0OworQ0VGMjtDRUYyOzExMEYgMTE2NSAxMUI1O0NFRjI7MTEwRiAxMTY1IDExQjU7CitDRUYzO0NFRjM7MTEwRiAxMTY1IDExQjY7Q0VGMzsxMTBGIDExNjUgMTFCNjsKK0NFRjQ7Q0VGNDsxMTBGIDExNjUgMTFCNztDRUY0OzExMEYgMTE2NSAxMUI3OworQ0VGNTtDRUY1OzExMEYgMTE2NSAxMUI4O0NFRjU7MTEwRiAxMTY1IDExQjg7CitDRUY2O0NFRjY7MTEwRiAxMTY1IDExQjk7Q0VGNjsxMTBGIDExNjUgMTFCOTsKK0NFRjc7Q0VGNzsxMTBGIDExNjUgMTFCQTtDRUY3OzExMEYgMTE2NSAxMUJBOworQ0VGODtDRUY4OzExMEYgMTE2NSAxMUJCO0NFRjg7MTEwRiAxMTY1IDExQkI7CitDRUY5O0NFRjk7MTEwRiAxMTY1IDExQkM7Q0VGOTsxMTBGIDExNjUgMTFCQzsKK0NFRkE7Q0VGQTsxMTBGIDExNjUgMTFCRDtDRUZBOzExMEYgMTE2NSAxMUJEOworQ0VGQjtDRUZCOzExMEYgMTE2NSAxMUJFO0NFRkI7MTEwRiAxMTY1IDExQkU7CitDRUZDO0NFRkM7MTEwRiAxMTY1IDExQkY7Q0VGQzsxMTBGIDExNjUgMTFCRjsKK0NFRkQ7Q0VGRDsxMTBGIDExNjUgMTFDMDtDRUZEOzExMEYgMTE2NSAxMUMwOworQ0VGRTtDRUZFOzExMEYgMTE2NSAxMUMxO0NFRkU7MTEwRiAxMTY1IDExQzE7CitDRUZGO0NFRkY7MTEwRiAxMTY1IDExQzI7Q0VGRjsxMTBGIDExNjUgMTFDMjsKK0NGMDA7Q0YwMDsxMTBGIDExNjY7Q0YwMDsxMTBGIDExNjY7CitDRjAxO0NGMDE7MTEwRiAxMTY2IDExQTg7Q0YwMTsxMTBGIDExNjYgMTFBODsKK0NGMDI7Q0YwMjsxMTBGIDExNjYgMTFBOTtDRjAyOzExMEYgMTE2NiAxMUE5OworQ0YwMztDRjAzOzExMEYgMTE2NiAxMUFBO0NGMDM7MTEwRiAxMTY2IDExQUE7CitDRjA0O0NGMDQ7MTEwRiAxMTY2IDExQUI7Q0YwNDsxMTBGIDExNjYgMTFBQjsKK0NGMDU7Q0YwNTsxMTBGIDExNjYgMTFBQztDRjA1OzExMEYgMTE2NiAxMUFDOworQ0YwNjtDRjA2OzExMEYgMTE2NiAxMUFEO0NGMDY7MTEwRiAxMTY2IDExQUQ7CitDRjA3O0NGMDc7MTEwRiAxMTY2IDExQUU7Q0YwNzsxMTBGIDExNjYgMTFBRTsKK0NGMDg7Q0YwODsxMTBGIDExNjYgMTFBRjtDRjA4OzExMEYgMTE2NiAxMUFGOworQ0YwOTtDRjA5OzExMEYgMTE2NiAxMUIwO0NGMDk7MTEwRiAxMTY2IDExQjA7CitDRjBBO0NGMEE7MTEwRiAxMTY2IDExQjE7Q0YwQTsxMTBGIDExNjYgMTFCMTsKK0NGMEI7Q0YwQjsxMTBGIDExNjYgMTFCMjtDRjBCOzExMEYgMTE2NiAxMUIyOworQ0YwQztDRjBDOzExMEYgMTE2NiAxMUIzO0NGMEM7MTEwRiAxMTY2IDExQjM7CitDRjBEO0NGMEQ7MTEwRiAxMTY2IDExQjQ7Q0YwRDsxMTBGIDExNjYgMTFCNDsKK0NGMEU7Q0YwRTsxMTBGIDExNjYgMTFCNTtDRjBFOzExMEYgMTE2NiAxMUI1OworQ0YwRjtDRjBGOzExMEYgMTE2NiAxMUI2O0NGMEY7MTEwRiAxMTY2IDExQjY7CitDRjEwO0NGMTA7MTEwRiAxMTY2IDExQjc7Q0YxMDsxMTBGIDExNjYgMTFCNzsKK0NGMTE7Q0YxMTsxMTBGIDExNjYgMTFCODtDRjExOzExMEYgMTE2NiAxMUI4OworQ0YxMjtDRjEyOzExMEYgMTE2NiAxMUI5O0NGMTI7MTEwRiAxMTY2IDExQjk7CitDRjEzO0NGMTM7MTEwRiAxMTY2IDExQkE7Q0YxMzsxMTBGIDExNjYgMTFCQTsKK0NGMTQ7Q0YxNDsxMTBGIDExNjYgMTFCQjtDRjE0OzExMEYgMTE2NiAxMUJCOworQ0YxNTtDRjE1OzExMEYgMTE2NiAxMUJDO0NGMTU7MTEwRiAxMTY2IDExQkM7CitDRjE2O0NGMTY7MTEwRiAxMTY2IDExQkQ7Q0YxNjsxMTBGIDExNjYgMTFCRDsKK0NGMTc7Q0YxNzsxMTBGIDExNjYgMTFCRTtDRjE3OzExMEYgMTE2NiAxMUJFOworQ0YxODtDRjE4OzExMEYgMTE2NiAxMUJGO0NGMTg7MTEwRiAxMTY2IDExQkY7CitDRjE5O0NGMTk7MTEwRiAxMTY2IDExQzA7Q0YxOTsxMTBGIDExNjYgMTFDMDsKK0NGMUE7Q0YxQTsxMTBGIDExNjYgMTFDMTtDRjFBOzExMEYgMTE2NiAxMUMxOworQ0YxQjtDRjFCOzExMEYgMTE2NiAxMUMyO0NGMUI7MTEwRiAxMTY2IDExQzI7CitDRjFDO0NGMUM7MTEwRiAxMTY3O0NGMUM7MTEwRiAxMTY3OworQ0YxRDtDRjFEOzExMEYgMTE2NyAxMUE4O0NGMUQ7MTEwRiAxMTY3IDExQTg7CitDRjFFO0NGMUU7MTEwRiAxMTY3IDExQTk7Q0YxRTsxMTBGIDExNjcgMTFBOTsKK0NGMUY7Q0YxRjsxMTBGIDExNjcgMTFBQTtDRjFGOzExMEYgMTE2NyAxMUFBOworQ0YyMDtDRjIwOzExMEYgMTE2NyAxMUFCO0NGMjA7MTEwRiAxMTY3IDExQUI7CitDRjIxO0NGMjE7MTEwRiAxMTY3IDExQUM7Q0YyMTsxMTBGIDExNjcgMTFBQzsKK0NGMjI7Q0YyMjsxMTBGIDExNjcgMTFBRDtDRjIyOzExMEYgMTE2NyAxMUFEOworQ0YyMztDRjIzOzExMEYgMTE2NyAxMUFFO0NGMjM7MTEwRiAxMTY3IDExQUU7CitDRjI0O0NGMjQ7MTEwRiAxMTY3IDExQUY7Q0YyNDsxMTBGIDExNjcgMTFBRjsKK0NGMjU7Q0YyNTsxMTBGIDExNjcgMTFCMDtDRjI1OzExMEYgMTE2NyAxMUIwOworQ0YyNjtDRjI2OzExMEYgMTE2NyAxMUIxO0NGMjY7MTEwRiAxMTY3IDExQjE7CitDRjI3O0NGMjc7MTEwRiAxMTY3IDExQjI7Q0YyNzsxMTBGIDExNjcgMTFCMjsKK0NGMjg7Q0YyODsxMTBGIDExNjcgMTFCMztDRjI4OzExMEYgMTE2NyAxMUIzOworQ0YyOTtDRjI5OzExMEYgMTE2NyAxMUI0O0NGMjk7MTEwRiAxMTY3IDExQjQ7CitDRjJBO0NGMkE7MTEwRiAxMTY3IDExQjU7Q0YyQTsxMTBGIDExNjcgMTFCNTsKK0NGMkI7Q0YyQjsxMTBGIDExNjcgMTFCNjtDRjJCOzExMEYgMTE2NyAxMUI2OworQ0YyQztDRjJDOzExMEYgMTE2NyAxMUI3O0NGMkM7MTEwRiAxMTY3IDExQjc7CitDRjJEO0NGMkQ7MTEwRiAxMTY3IDExQjg7Q0YyRDsxMTBGIDExNjcgMTFCODsKK0NGMkU7Q0YyRTsxMTBGIDExNjcgMTFCOTtDRjJFOzExMEYgMTE2NyAxMUI5OworQ0YyRjtDRjJGOzExMEYgMTE2NyAxMUJBO0NGMkY7MTEwRiAxMTY3IDExQkE7CitDRjMwO0NGMzA7MTEwRiAxMTY3IDExQkI7Q0YzMDsxMTBGIDExNjcgMTFCQjsKK0NGMzE7Q0YzMTsxMTBGIDExNjcgMTFCQztDRjMxOzExMEYgMTE2NyAxMUJDOworQ0YzMjtDRjMyOzExMEYgMTE2NyAxMUJEO0NGMzI7MTEwRiAxMTY3IDExQkQ7CitDRjMzO0NGMzM7MTEwRiAxMTY3IDExQkU7Q0YzMzsxMTBGIDExNjcgMTFCRTsKK0NGMzQ7Q0YzNDsxMTBGIDExNjcgMTFCRjtDRjM0OzExMEYgMTE2NyAxMUJGOworQ0YzNTtDRjM1OzExMEYgMTE2NyAxMUMwO0NGMzU7MTEwRiAxMTY3IDExQzA7CitDRjM2O0NGMzY7MTEwRiAxMTY3IDExQzE7Q0YzNjsxMTBGIDExNjcgMTFDMTsKK0NGMzc7Q0YzNzsxMTBGIDExNjcgMTFDMjtDRjM3OzExMEYgMTE2NyAxMUMyOworQ0YzODtDRjM4OzExMEYgMTE2ODtDRjM4OzExMEYgMTE2ODsKK0NGMzk7Q0YzOTsxMTBGIDExNjggMTFBODtDRjM5OzExMEYgMTE2OCAxMUE4OworQ0YzQTtDRjNBOzExMEYgMTE2OCAxMUE5O0NGM0E7MTEwRiAxMTY4IDExQTk7CitDRjNCO0NGM0I7MTEwRiAxMTY4IDExQUE7Q0YzQjsxMTBGIDExNjggMTFBQTsKK0NGM0M7Q0YzQzsxMTBGIDExNjggMTFBQjtDRjNDOzExMEYgMTE2OCAxMUFCOworQ0YzRDtDRjNEOzExMEYgMTE2OCAxMUFDO0NGM0Q7MTEwRiAxMTY4IDExQUM7CitDRjNFO0NGM0U7MTEwRiAxMTY4IDExQUQ7Q0YzRTsxMTBGIDExNjggMTFBRDsKK0NGM0Y7Q0YzRjsxMTBGIDExNjggMTFBRTtDRjNGOzExMEYgMTE2OCAxMUFFOworQ0Y0MDtDRjQwOzExMEYgMTE2OCAxMUFGO0NGNDA7MTEwRiAxMTY4IDExQUY7CitDRjQxO0NGNDE7MTEwRiAxMTY4IDExQjA7Q0Y0MTsxMTBGIDExNjggMTFCMDsKK0NGNDI7Q0Y0MjsxMTBGIDExNjggMTFCMTtDRjQyOzExMEYgMTE2OCAxMUIxOworQ0Y0MztDRjQzOzExMEYgMTE2OCAxMUIyO0NGNDM7MTEwRiAxMTY4IDExQjI7CitDRjQ0O0NGNDQ7MTEwRiAxMTY4IDExQjM7Q0Y0NDsxMTBGIDExNjggMTFCMzsKK0NGNDU7Q0Y0NTsxMTBGIDExNjggMTFCNDtDRjQ1OzExMEYgMTE2OCAxMUI0OworQ0Y0NjtDRjQ2OzExMEYgMTE2OCAxMUI1O0NGNDY7MTEwRiAxMTY4IDExQjU7CitDRjQ3O0NGNDc7MTEwRiAxMTY4IDExQjY7Q0Y0NzsxMTBGIDExNjggMTFCNjsKK0NGNDg7Q0Y0ODsxMTBGIDExNjggMTFCNztDRjQ4OzExMEYgMTE2OCAxMUI3OworQ0Y0OTtDRjQ5OzExMEYgMTE2OCAxMUI4O0NGNDk7MTEwRiAxMTY4IDExQjg7CitDRjRBO0NGNEE7MTEwRiAxMTY4IDExQjk7Q0Y0QTsxMTBGIDExNjggMTFCOTsKK0NGNEI7Q0Y0QjsxMTBGIDExNjggMTFCQTtDRjRCOzExMEYgMTE2OCAxMUJBOworQ0Y0QztDRjRDOzExMEYgMTE2OCAxMUJCO0NGNEM7MTEwRiAxMTY4IDExQkI7CitDRjREO0NGNEQ7MTEwRiAxMTY4IDExQkM7Q0Y0RDsxMTBGIDExNjggMTFCQzsKK0NGNEU7Q0Y0RTsxMTBGIDExNjggMTFCRDtDRjRFOzExMEYgMTE2OCAxMUJEOworQ0Y0RjtDRjRGOzExMEYgMTE2OCAxMUJFO0NGNEY7MTEwRiAxMTY4IDExQkU7CitDRjUwO0NGNTA7MTEwRiAxMTY4IDExQkY7Q0Y1MDsxMTBGIDExNjggMTFCRjsKK0NGNTE7Q0Y1MTsxMTBGIDExNjggMTFDMDtDRjUxOzExMEYgMTE2OCAxMUMwOworQ0Y1MjtDRjUyOzExMEYgMTE2OCAxMUMxO0NGNTI7MTEwRiAxMTY4IDExQzE7CitDRjUzO0NGNTM7MTEwRiAxMTY4IDExQzI7Q0Y1MzsxMTBGIDExNjggMTFDMjsKK0NGNTQ7Q0Y1NDsxMTBGIDExNjk7Q0Y1NDsxMTBGIDExNjk7CitDRjU1O0NGNTU7MTEwRiAxMTY5IDExQTg7Q0Y1NTsxMTBGIDExNjkgMTFBODsKK0NGNTY7Q0Y1NjsxMTBGIDExNjkgMTFBOTtDRjU2OzExMEYgMTE2OSAxMUE5OworQ0Y1NztDRjU3OzExMEYgMTE2OSAxMUFBO0NGNTc7MTEwRiAxMTY5IDExQUE7CitDRjU4O0NGNTg7MTEwRiAxMTY5IDExQUI7Q0Y1ODsxMTBGIDExNjkgMTFBQjsKK0NGNTk7Q0Y1OTsxMTBGIDExNjkgMTFBQztDRjU5OzExMEYgMTE2OSAxMUFDOworQ0Y1QTtDRjVBOzExMEYgMTE2OSAxMUFEO0NGNUE7MTEwRiAxMTY5IDExQUQ7CitDRjVCO0NGNUI7MTEwRiAxMTY5IDExQUU7Q0Y1QjsxMTBGIDExNjkgMTFBRTsKK0NGNUM7Q0Y1QzsxMTBGIDExNjkgMTFBRjtDRjVDOzExMEYgMTE2OSAxMUFGOworQ0Y1RDtDRjVEOzExMEYgMTE2OSAxMUIwO0NGNUQ7MTEwRiAxMTY5IDExQjA7CitDRjVFO0NGNUU7MTEwRiAxMTY5IDExQjE7Q0Y1RTsxMTBGIDExNjkgMTFCMTsKK0NGNUY7Q0Y1RjsxMTBGIDExNjkgMTFCMjtDRjVGOzExMEYgMTE2OSAxMUIyOworQ0Y2MDtDRjYwOzExMEYgMTE2OSAxMUIzO0NGNjA7MTEwRiAxMTY5IDExQjM7CitDRjYxO0NGNjE7MTEwRiAxMTY5IDExQjQ7Q0Y2MTsxMTBGIDExNjkgMTFCNDsKK0NGNjI7Q0Y2MjsxMTBGIDExNjkgMTFCNTtDRjYyOzExMEYgMTE2OSAxMUI1OworQ0Y2MztDRjYzOzExMEYgMTE2OSAxMUI2O0NGNjM7MTEwRiAxMTY5IDExQjY7CitDRjY0O0NGNjQ7MTEwRiAxMTY5IDExQjc7Q0Y2NDsxMTBGIDExNjkgMTFCNzsKK0NGNjU7Q0Y2NTsxMTBGIDExNjkgMTFCODtDRjY1OzExMEYgMTE2OSAxMUI4OworQ0Y2NjtDRjY2OzExMEYgMTE2OSAxMUI5O0NGNjY7MTEwRiAxMTY5IDExQjk7CitDRjY3O0NGNjc7MTEwRiAxMTY5IDExQkE7Q0Y2NzsxMTBGIDExNjkgMTFCQTsKK0NGNjg7Q0Y2ODsxMTBGIDExNjkgMTFCQjtDRjY4OzExMEYgMTE2OSAxMUJCOworQ0Y2OTtDRjY5OzExMEYgMTE2OSAxMUJDO0NGNjk7MTEwRiAxMTY5IDExQkM7CitDRjZBO0NGNkE7MTEwRiAxMTY5IDExQkQ7Q0Y2QTsxMTBGIDExNjkgMTFCRDsKK0NGNkI7Q0Y2QjsxMTBGIDExNjkgMTFCRTtDRjZCOzExMEYgMTE2OSAxMUJFOworQ0Y2QztDRjZDOzExMEYgMTE2OSAxMUJGO0NGNkM7MTEwRiAxMTY5IDExQkY7CitDRjZEO0NGNkQ7MTEwRiAxMTY5IDExQzA7Q0Y2RDsxMTBGIDExNjkgMTFDMDsKK0NGNkU7Q0Y2RTsxMTBGIDExNjkgMTFDMTtDRjZFOzExMEYgMTE2OSAxMUMxOworQ0Y2RjtDRjZGOzExMEYgMTE2OSAxMUMyO0NGNkY7MTEwRiAxMTY5IDExQzI7CitDRjcwO0NGNzA7MTEwRiAxMTZBO0NGNzA7MTEwRiAxMTZBOworQ0Y3MTtDRjcxOzExMEYgMTE2QSAxMUE4O0NGNzE7MTEwRiAxMTZBIDExQTg7CitDRjcyO0NGNzI7MTEwRiAxMTZBIDExQTk7Q0Y3MjsxMTBGIDExNkEgMTFBOTsKK0NGNzM7Q0Y3MzsxMTBGIDExNkEgMTFBQTtDRjczOzExMEYgMTE2QSAxMUFBOworQ0Y3NDtDRjc0OzExMEYgMTE2QSAxMUFCO0NGNzQ7MTEwRiAxMTZBIDExQUI7CitDRjc1O0NGNzU7MTEwRiAxMTZBIDExQUM7Q0Y3NTsxMTBGIDExNkEgMTFBQzsKK0NGNzY7Q0Y3NjsxMTBGIDExNkEgMTFBRDtDRjc2OzExMEYgMTE2QSAxMUFEOworQ0Y3NztDRjc3OzExMEYgMTE2QSAxMUFFO0NGNzc7MTEwRiAxMTZBIDExQUU7CitDRjc4O0NGNzg7MTEwRiAxMTZBIDExQUY7Q0Y3ODsxMTBGIDExNkEgMTFBRjsKK0NGNzk7Q0Y3OTsxMTBGIDExNkEgMTFCMDtDRjc5OzExMEYgMTE2QSAxMUIwOworQ0Y3QTtDRjdBOzExMEYgMTE2QSAxMUIxO0NGN0E7MTEwRiAxMTZBIDExQjE7CitDRjdCO0NGN0I7MTEwRiAxMTZBIDExQjI7Q0Y3QjsxMTBGIDExNkEgMTFCMjsKK0NGN0M7Q0Y3QzsxMTBGIDExNkEgMTFCMztDRjdDOzExMEYgMTE2QSAxMUIzOworQ0Y3RDtDRjdEOzExMEYgMTE2QSAxMUI0O0NGN0Q7MTEwRiAxMTZBIDExQjQ7CitDRjdFO0NGN0U7MTEwRiAxMTZBIDExQjU7Q0Y3RTsxMTBGIDExNkEgMTFCNTsKK0NGN0Y7Q0Y3RjsxMTBGIDExNkEgMTFCNjtDRjdGOzExMEYgMTE2QSAxMUI2OworQ0Y4MDtDRjgwOzExMEYgMTE2QSAxMUI3O0NGODA7MTEwRiAxMTZBIDExQjc7CitDRjgxO0NGODE7MTEwRiAxMTZBIDExQjg7Q0Y4MTsxMTBGIDExNkEgMTFCODsKK0NGODI7Q0Y4MjsxMTBGIDExNkEgMTFCOTtDRjgyOzExMEYgMTE2QSAxMUI5OworQ0Y4MztDRjgzOzExMEYgMTE2QSAxMUJBO0NGODM7MTEwRiAxMTZBIDExQkE7CitDRjg0O0NGODQ7MTEwRiAxMTZBIDExQkI7Q0Y4NDsxMTBGIDExNkEgMTFCQjsKK0NGODU7Q0Y4NTsxMTBGIDExNkEgMTFCQztDRjg1OzExMEYgMTE2QSAxMUJDOworQ0Y4NjtDRjg2OzExMEYgMTE2QSAxMUJEO0NGODY7MTEwRiAxMTZBIDExQkQ7CitDRjg3O0NGODc7MTEwRiAxMTZBIDExQkU7Q0Y4NzsxMTBGIDExNkEgMTFCRTsKK0NGODg7Q0Y4ODsxMTBGIDExNkEgMTFCRjtDRjg4OzExMEYgMTE2QSAxMUJGOworQ0Y4OTtDRjg5OzExMEYgMTE2QSAxMUMwO0NGODk7MTEwRiAxMTZBIDExQzA7CitDRjhBO0NGOEE7MTEwRiAxMTZBIDExQzE7Q0Y4QTsxMTBGIDExNkEgMTFDMTsKK0NGOEI7Q0Y4QjsxMTBGIDExNkEgMTFDMjtDRjhCOzExMEYgMTE2QSAxMUMyOworQ0Y4QztDRjhDOzExMEYgMTE2QjtDRjhDOzExMEYgMTE2QjsKK0NGOEQ7Q0Y4RDsxMTBGIDExNkIgMTFBODtDRjhEOzExMEYgMTE2QiAxMUE4OworQ0Y4RTtDRjhFOzExMEYgMTE2QiAxMUE5O0NGOEU7MTEwRiAxMTZCIDExQTk7CitDRjhGO0NGOEY7MTEwRiAxMTZCIDExQUE7Q0Y4RjsxMTBGIDExNkIgMTFBQTsKK0NGOTA7Q0Y5MDsxMTBGIDExNkIgMTFBQjtDRjkwOzExMEYgMTE2QiAxMUFCOworQ0Y5MTtDRjkxOzExMEYgMTE2QiAxMUFDO0NGOTE7MTEwRiAxMTZCIDExQUM7CitDRjkyO0NGOTI7MTEwRiAxMTZCIDExQUQ7Q0Y5MjsxMTBGIDExNkIgMTFBRDsKK0NGOTM7Q0Y5MzsxMTBGIDExNkIgMTFBRTtDRjkzOzExMEYgMTE2QiAxMUFFOworQ0Y5NDtDRjk0OzExMEYgMTE2QiAxMUFGO0NGOTQ7MTEwRiAxMTZCIDExQUY7CitDRjk1O0NGOTU7MTEwRiAxMTZCIDExQjA7Q0Y5NTsxMTBGIDExNkIgMTFCMDsKK0NGOTY7Q0Y5NjsxMTBGIDExNkIgMTFCMTtDRjk2OzExMEYgMTE2QiAxMUIxOworQ0Y5NztDRjk3OzExMEYgMTE2QiAxMUIyO0NGOTc7MTEwRiAxMTZCIDExQjI7CitDRjk4O0NGOTg7MTEwRiAxMTZCIDExQjM7Q0Y5ODsxMTBGIDExNkIgMTFCMzsKK0NGOTk7Q0Y5OTsxMTBGIDExNkIgMTFCNDtDRjk5OzExMEYgMTE2QiAxMUI0OworQ0Y5QTtDRjlBOzExMEYgMTE2QiAxMUI1O0NGOUE7MTEwRiAxMTZCIDExQjU7CitDRjlCO0NGOUI7MTEwRiAxMTZCIDExQjY7Q0Y5QjsxMTBGIDExNkIgMTFCNjsKK0NGOUM7Q0Y5QzsxMTBGIDExNkIgMTFCNztDRjlDOzExMEYgMTE2QiAxMUI3OworQ0Y5RDtDRjlEOzExMEYgMTE2QiAxMUI4O0NGOUQ7MTEwRiAxMTZCIDExQjg7CitDRjlFO0NGOUU7MTEwRiAxMTZCIDExQjk7Q0Y5RTsxMTBGIDExNkIgMTFCOTsKK0NGOUY7Q0Y5RjsxMTBGIDExNkIgMTFCQTtDRjlGOzExMEYgMTE2QiAxMUJBOworQ0ZBMDtDRkEwOzExMEYgMTE2QiAxMUJCO0NGQTA7MTEwRiAxMTZCIDExQkI7CitDRkExO0NGQTE7MTEwRiAxMTZCIDExQkM7Q0ZBMTsxMTBGIDExNkIgMTFCQzsKK0NGQTI7Q0ZBMjsxMTBGIDExNkIgMTFCRDtDRkEyOzExMEYgMTE2QiAxMUJEOworQ0ZBMztDRkEzOzExMEYgMTE2QiAxMUJFO0NGQTM7MTEwRiAxMTZCIDExQkU7CitDRkE0O0NGQTQ7MTEwRiAxMTZCIDExQkY7Q0ZBNDsxMTBGIDExNkIgMTFCRjsKK0NGQTU7Q0ZBNTsxMTBGIDExNkIgMTFDMDtDRkE1OzExMEYgMTE2QiAxMUMwOworQ0ZBNjtDRkE2OzExMEYgMTE2QiAxMUMxO0NGQTY7MTEwRiAxMTZCIDExQzE7CitDRkE3O0NGQTc7MTEwRiAxMTZCIDExQzI7Q0ZBNzsxMTBGIDExNkIgMTFDMjsKK0NGQTg7Q0ZBODsxMTBGIDExNkM7Q0ZBODsxMTBGIDExNkM7CitDRkE5O0NGQTk7MTEwRiAxMTZDIDExQTg7Q0ZBOTsxMTBGIDExNkMgMTFBODsKK0NGQUE7Q0ZBQTsxMTBGIDExNkMgMTFBOTtDRkFBOzExMEYgMTE2QyAxMUE5OworQ0ZBQjtDRkFCOzExMEYgMTE2QyAxMUFBO0NGQUI7MTEwRiAxMTZDIDExQUE7CitDRkFDO0NGQUM7MTEwRiAxMTZDIDExQUI7Q0ZBQzsxMTBGIDExNkMgMTFBQjsKK0NGQUQ7Q0ZBRDsxMTBGIDExNkMgMTFBQztDRkFEOzExMEYgMTE2QyAxMUFDOworQ0ZBRTtDRkFFOzExMEYgMTE2QyAxMUFEO0NGQUU7MTEwRiAxMTZDIDExQUQ7CitDRkFGO0NGQUY7MTEwRiAxMTZDIDExQUU7Q0ZBRjsxMTBGIDExNkMgMTFBRTsKK0NGQjA7Q0ZCMDsxMTBGIDExNkMgMTFBRjtDRkIwOzExMEYgMTE2QyAxMUFGOworQ0ZCMTtDRkIxOzExMEYgMTE2QyAxMUIwO0NGQjE7MTEwRiAxMTZDIDExQjA7CitDRkIyO0NGQjI7MTEwRiAxMTZDIDExQjE7Q0ZCMjsxMTBGIDExNkMgMTFCMTsKK0NGQjM7Q0ZCMzsxMTBGIDExNkMgMTFCMjtDRkIzOzExMEYgMTE2QyAxMUIyOworQ0ZCNDtDRkI0OzExMEYgMTE2QyAxMUIzO0NGQjQ7MTEwRiAxMTZDIDExQjM7CitDRkI1O0NGQjU7MTEwRiAxMTZDIDExQjQ7Q0ZCNTsxMTBGIDExNkMgMTFCNDsKK0NGQjY7Q0ZCNjsxMTBGIDExNkMgMTFCNTtDRkI2OzExMEYgMTE2QyAxMUI1OworQ0ZCNztDRkI3OzExMEYgMTE2QyAxMUI2O0NGQjc7MTEwRiAxMTZDIDExQjY7CitDRkI4O0NGQjg7MTEwRiAxMTZDIDExQjc7Q0ZCODsxMTBGIDExNkMgMTFCNzsKK0NGQjk7Q0ZCOTsxMTBGIDExNkMgMTFCODtDRkI5OzExMEYgMTE2QyAxMUI4OworQ0ZCQTtDRkJBOzExMEYgMTE2QyAxMUI5O0NGQkE7MTEwRiAxMTZDIDExQjk7CitDRkJCO0NGQkI7MTEwRiAxMTZDIDExQkE7Q0ZCQjsxMTBGIDExNkMgMTFCQTsKK0NGQkM7Q0ZCQzsxMTBGIDExNkMgMTFCQjtDRkJDOzExMEYgMTE2QyAxMUJCOworQ0ZCRDtDRkJEOzExMEYgMTE2QyAxMUJDO0NGQkQ7MTEwRiAxMTZDIDExQkM7CitDRkJFO0NGQkU7MTEwRiAxMTZDIDExQkQ7Q0ZCRTsxMTBGIDExNkMgMTFCRDsKK0NGQkY7Q0ZCRjsxMTBGIDExNkMgMTFCRTtDRkJGOzExMEYgMTE2QyAxMUJFOworQ0ZDMDtDRkMwOzExMEYgMTE2QyAxMUJGO0NGQzA7MTEwRiAxMTZDIDExQkY7CitDRkMxO0NGQzE7MTEwRiAxMTZDIDExQzA7Q0ZDMTsxMTBGIDExNkMgMTFDMDsKK0NGQzI7Q0ZDMjsxMTBGIDExNkMgMTFDMTtDRkMyOzExMEYgMTE2QyAxMUMxOworQ0ZDMztDRkMzOzExMEYgMTE2QyAxMUMyO0NGQzM7MTEwRiAxMTZDIDExQzI7CitDRkM0O0NGQzQ7MTEwRiAxMTZEO0NGQzQ7MTEwRiAxMTZEOworQ0ZDNTtDRkM1OzExMEYgMTE2RCAxMUE4O0NGQzU7MTEwRiAxMTZEIDExQTg7CitDRkM2O0NGQzY7MTEwRiAxMTZEIDExQTk7Q0ZDNjsxMTBGIDExNkQgMTFBOTsKK0NGQzc7Q0ZDNzsxMTBGIDExNkQgMTFBQTtDRkM3OzExMEYgMTE2RCAxMUFBOworQ0ZDODtDRkM4OzExMEYgMTE2RCAxMUFCO0NGQzg7MTEwRiAxMTZEIDExQUI7CitDRkM5O0NGQzk7MTEwRiAxMTZEIDExQUM7Q0ZDOTsxMTBGIDExNkQgMTFBQzsKK0NGQ0E7Q0ZDQTsxMTBGIDExNkQgMTFBRDtDRkNBOzExMEYgMTE2RCAxMUFEOworQ0ZDQjtDRkNCOzExMEYgMTE2RCAxMUFFO0NGQ0I7MTEwRiAxMTZEIDExQUU7CitDRkNDO0NGQ0M7MTEwRiAxMTZEIDExQUY7Q0ZDQzsxMTBGIDExNkQgMTFBRjsKK0NGQ0Q7Q0ZDRDsxMTBGIDExNkQgMTFCMDtDRkNEOzExMEYgMTE2RCAxMUIwOworQ0ZDRTtDRkNFOzExMEYgMTE2RCAxMUIxO0NGQ0U7MTEwRiAxMTZEIDExQjE7CitDRkNGO0NGQ0Y7MTEwRiAxMTZEIDExQjI7Q0ZDRjsxMTBGIDExNkQgMTFCMjsKK0NGRDA7Q0ZEMDsxMTBGIDExNkQgMTFCMztDRkQwOzExMEYgMTE2RCAxMUIzOworQ0ZEMTtDRkQxOzExMEYgMTE2RCAxMUI0O0NGRDE7MTEwRiAxMTZEIDExQjQ7CitDRkQyO0NGRDI7MTEwRiAxMTZEIDExQjU7Q0ZEMjsxMTBGIDExNkQgMTFCNTsKK0NGRDM7Q0ZEMzsxMTBGIDExNkQgMTFCNjtDRkQzOzExMEYgMTE2RCAxMUI2OworQ0ZENDtDRkQ0OzExMEYgMTE2RCAxMUI3O0NGRDQ7MTEwRiAxMTZEIDExQjc7CitDRkQ1O0NGRDU7MTEwRiAxMTZEIDExQjg7Q0ZENTsxMTBGIDExNkQgMTFCODsKK0NGRDY7Q0ZENjsxMTBGIDExNkQgMTFCOTtDRkQ2OzExMEYgMTE2RCAxMUI5OworQ0ZENztDRkQ3OzExMEYgMTE2RCAxMUJBO0NGRDc7MTEwRiAxMTZEIDExQkE7CitDRkQ4O0NGRDg7MTEwRiAxMTZEIDExQkI7Q0ZEODsxMTBGIDExNkQgMTFCQjsKK0NGRDk7Q0ZEOTsxMTBGIDExNkQgMTFCQztDRkQ5OzExMEYgMTE2RCAxMUJDOworQ0ZEQTtDRkRBOzExMEYgMTE2RCAxMUJEO0NGREE7MTEwRiAxMTZEIDExQkQ7CitDRkRCO0NGREI7MTEwRiAxMTZEIDExQkU7Q0ZEQjsxMTBGIDExNkQgMTFCRTsKK0NGREM7Q0ZEQzsxMTBGIDExNkQgMTFCRjtDRkRDOzExMEYgMTE2RCAxMUJGOworQ0ZERDtDRkREOzExMEYgMTE2RCAxMUMwO0NGREQ7MTEwRiAxMTZEIDExQzA7CitDRkRFO0NGREU7MTEwRiAxMTZEIDExQzE7Q0ZERTsxMTBGIDExNkQgMTFDMTsKK0NGREY7Q0ZERjsxMTBGIDExNkQgMTFDMjtDRkRGOzExMEYgMTE2RCAxMUMyOworQ0ZFMDtDRkUwOzExMEYgMTE2RTtDRkUwOzExMEYgMTE2RTsKK0NGRTE7Q0ZFMTsxMTBGIDExNkUgMTFBODtDRkUxOzExMEYgMTE2RSAxMUE4OworQ0ZFMjtDRkUyOzExMEYgMTE2RSAxMUE5O0NGRTI7MTEwRiAxMTZFIDExQTk7CitDRkUzO0NGRTM7MTEwRiAxMTZFIDExQUE7Q0ZFMzsxMTBGIDExNkUgMTFBQTsKK0NGRTQ7Q0ZFNDsxMTBGIDExNkUgMTFBQjtDRkU0OzExMEYgMTE2RSAxMUFCOworQ0ZFNTtDRkU1OzExMEYgMTE2RSAxMUFDO0NGRTU7MTEwRiAxMTZFIDExQUM7CitDRkU2O0NGRTY7MTEwRiAxMTZFIDExQUQ7Q0ZFNjsxMTBGIDExNkUgMTFBRDsKK0NGRTc7Q0ZFNzsxMTBGIDExNkUgMTFBRTtDRkU3OzExMEYgMTE2RSAxMUFFOworQ0ZFODtDRkU4OzExMEYgMTE2RSAxMUFGO0NGRTg7MTEwRiAxMTZFIDExQUY7CitDRkU5O0NGRTk7MTEwRiAxMTZFIDExQjA7Q0ZFOTsxMTBGIDExNkUgMTFCMDsKK0NGRUE7Q0ZFQTsxMTBGIDExNkUgMTFCMTtDRkVBOzExMEYgMTE2RSAxMUIxOworQ0ZFQjtDRkVCOzExMEYgMTE2RSAxMUIyO0NGRUI7MTEwRiAxMTZFIDExQjI7CitDRkVDO0NGRUM7MTEwRiAxMTZFIDExQjM7Q0ZFQzsxMTBGIDExNkUgMTFCMzsKK0NGRUQ7Q0ZFRDsxMTBGIDExNkUgMTFCNDtDRkVEOzExMEYgMTE2RSAxMUI0OworQ0ZFRTtDRkVFOzExMEYgMTE2RSAxMUI1O0NGRUU7MTEwRiAxMTZFIDExQjU7CitDRkVGO0NGRUY7MTEwRiAxMTZFIDExQjY7Q0ZFRjsxMTBGIDExNkUgMTFCNjsKK0NGRjA7Q0ZGMDsxMTBGIDExNkUgMTFCNztDRkYwOzExMEYgMTE2RSAxMUI3OworQ0ZGMTtDRkYxOzExMEYgMTE2RSAxMUI4O0NGRjE7MTEwRiAxMTZFIDExQjg7CitDRkYyO0NGRjI7MTEwRiAxMTZFIDExQjk7Q0ZGMjsxMTBGIDExNkUgMTFCOTsKK0NGRjM7Q0ZGMzsxMTBGIDExNkUgMTFCQTtDRkYzOzExMEYgMTE2RSAxMUJBOworQ0ZGNDtDRkY0OzExMEYgMTE2RSAxMUJCO0NGRjQ7MTEwRiAxMTZFIDExQkI7CitDRkY1O0NGRjU7MTEwRiAxMTZFIDExQkM7Q0ZGNTsxMTBGIDExNkUgMTFCQzsKK0NGRjY7Q0ZGNjsxMTBGIDExNkUgMTFCRDtDRkY2OzExMEYgMTE2RSAxMUJEOworQ0ZGNztDRkY3OzExMEYgMTE2RSAxMUJFO0NGRjc7MTEwRiAxMTZFIDExQkU7CitDRkY4O0NGRjg7MTEwRiAxMTZFIDExQkY7Q0ZGODsxMTBGIDExNkUgMTFCRjsKK0NGRjk7Q0ZGOTsxMTBGIDExNkUgMTFDMDtDRkY5OzExMEYgMTE2RSAxMUMwOworQ0ZGQTtDRkZBOzExMEYgMTE2RSAxMUMxO0NGRkE7MTEwRiAxMTZFIDExQzE7CitDRkZCO0NGRkI7MTEwRiAxMTZFIDExQzI7Q0ZGQjsxMTBGIDExNkUgMTFDMjsKK0NGRkM7Q0ZGQzsxMTBGIDExNkY7Q0ZGQzsxMTBGIDExNkY7CitDRkZEO0NGRkQ7MTEwRiAxMTZGIDExQTg7Q0ZGRDsxMTBGIDExNkYgMTFBODsKK0NGRkU7Q0ZGRTsxMTBGIDExNkYgMTFBOTtDRkZFOzExMEYgMTE2RiAxMUE5OworQ0ZGRjtDRkZGOzExMEYgMTE2RiAxMUFBO0NGRkY7MTEwRiAxMTZGIDExQUE7CitEMDAwO0QwMDA7MTEwRiAxMTZGIDExQUI7RDAwMDsxMTBGIDExNkYgMTFBQjsKK0QwMDE7RDAwMTsxMTBGIDExNkYgMTFBQztEMDAxOzExMEYgMTE2RiAxMUFDOworRDAwMjtEMDAyOzExMEYgMTE2RiAxMUFEO0QwMDI7MTEwRiAxMTZGIDExQUQ7CitEMDAzO0QwMDM7MTEwRiAxMTZGIDExQUU7RDAwMzsxMTBGIDExNkYgMTFBRTsKK0QwMDQ7RDAwNDsxMTBGIDExNkYgMTFBRjtEMDA0OzExMEYgMTE2RiAxMUFGOworRDAwNTtEMDA1OzExMEYgMTE2RiAxMUIwO0QwMDU7MTEwRiAxMTZGIDExQjA7CitEMDA2O0QwMDY7MTEwRiAxMTZGIDExQjE7RDAwNjsxMTBGIDExNkYgMTFCMTsKK0QwMDc7RDAwNzsxMTBGIDExNkYgMTFCMjtEMDA3OzExMEYgMTE2RiAxMUIyOworRDAwODtEMDA4OzExMEYgMTE2RiAxMUIzO0QwMDg7MTEwRiAxMTZGIDExQjM7CitEMDA5O0QwMDk7MTEwRiAxMTZGIDExQjQ7RDAwOTsxMTBGIDExNkYgMTFCNDsKK0QwMEE7RDAwQTsxMTBGIDExNkYgMTFCNTtEMDBBOzExMEYgMTE2RiAxMUI1OworRDAwQjtEMDBCOzExMEYgMTE2RiAxMUI2O0QwMEI7MTEwRiAxMTZGIDExQjY7CitEMDBDO0QwMEM7MTEwRiAxMTZGIDExQjc7RDAwQzsxMTBGIDExNkYgMTFCNzsKK0QwMEQ7RDAwRDsxMTBGIDExNkYgMTFCODtEMDBEOzExMEYgMTE2RiAxMUI4OworRDAwRTtEMDBFOzExMEYgMTE2RiAxMUI5O0QwMEU7MTEwRiAxMTZGIDExQjk7CitEMDBGO0QwMEY7MTEwRiAxMTZGIDExQkE7RDAwRjsxMTBGIDExNkYgMTFCQTsKK0QwMTA7RDAxMDsxMTBGIDExNkYgMTFCQjtEMDEwOzExMEYgMTE2RiAxMUJCOworRDAxMTtEMDExOzExMEYgMTE2RiAxMUJDO0QwMTE7MTEwRiAxMTZGIDExQkM7CitEMDEyO0QwMTI7MTEwRiAxMTZGIDExQkQ7RDAxMjsxMTBGIDExNkYgMTFCRDsKK0QwMTM7RDAxMzsxMTBGIDExNkYgMTFCRTtEMDEzOzExMEYgMTE2RiAxMUJFOworRDAxNDtEMDE0OzExMEYgMTE2RiAxMUJGO0QwMTQ7MTEwRiAxMTZGIDExQkY7CitEMDE1O0QwMTU7MTEwRiAxMTZGIDExQzA7RDAxNTsxMTBGIDExNkYgMTFDMDsKK0QwMTY7RDAxNjsxMTBGIDExNkYgMTFDMTtEMDE2OzExMEYgMTE2RiAxMUMxOworRDAxNztEMDE3OzExMEYgMTE2RiAxMUMyO0QwMTc7MTEwRiAxMTZGIDExQzI7CitEMDE4O0QwMTg7MTEwRiAxMTcwO0QwMTg7MTEwRiAxMTcwOworRDAxOTtEMDE5OzExMEYgMTE3MCAxMUE4O0QwMTk7MTEwRiAxMTcwIDExQTg7CitEMDFBO0QwMUE7MTEwRiAxMTcwIDExQTk7RDAxQTsxMTBGIDExNzAgMTFBOTsKK0QwMUI7RDAxQjsxMTBGIDExNzAgMTFBQTtEMDFCOzExMEYgMTE3MCAxMUFBOworRDAxQztEMDFDOzExMEYgMTE3MCAxMUFCO0QwMUM7MTEwRiAxMTcwIDExQUI7CitEMDFEO0QwMUQ7MTEwRiAxMTcwIDExQUM7RDAxRDsxMTBGIDExNzAgMTFBQzsKK0QwMUU7RDAxRTsxMTBGIDExNzAgMTFBRDtEMDFFOzExMEYgMTE3MCAxMUFEOworRDAxRjtEMDFGOzExMEYgMTE3MCAxMUFFO0QwMUY7MTEwRiAxMTcwIDExQUU7CitEMDIwO0QwMjA7MTEwRiAxMTcwIDExQUY7RDAyMDsxMTBGIDExNzAgMTFBRjsKK0QwMjE7RDAyMTsxMTBGIDExNzAgMTFCMDtEMDIxOzExMEYgMTE3MCAxMUIwOworRDAyMjtEMDIyOzExMEYgMTE3MCAxMUIxO0QwMjI7MTEwRiAxMTcwIDExQjE7CitEMDIzO0QwMjM7MTEwRiAxMTcwIDExQjI7RDAyMzsxMTBGIDExNzAgMTFCMjsKK0QwMjQ7RDAyNDsxMTBGIDExNzAgMTFCMztEMDI0OzExMEYgMTE3MCAxMUIzOworRDAyNTtEMDI1OzExMEYgMTE3MCAxMUI0O0QwMjU7MTEwRiAxMTcwIDExQjQ7CitEMDI2O0QwMjY7MTEwRiAxMTcwIDExQjU7RDAyNjsxMTBGIDExNzAgMTFCNTsKK0QwMjc7RDAyNzsxMTBGIDExNzAgMTFCNjtEMDI3OzExMEYgMTE3MCAxMUI2OworRDAyODtEMDI4OzExMEYgMTE3MCAxMUI3O0QwMjg7MTEwRiAxMTcwIDExQjc7CitEMDI5O0QwMjk7MTEwRiAxMTcwIDExQjg7RDAyOTsxMTBGIDExNzAgMTFCODsKK0QwMkE7RDAyQTsxMTBGIDExNzAgMTFCOTtEMDJBOzExMEYgMTE3MCAxMUI5OworRDAyQjtEMDJCOzExMEYgMTE3MCAxMUJBO0QwMkI7MTEwRiAxMTcwIDExQkE7CitEMDJDO0QwMkM7MTEwRiAxMTcwIDExQkI7RDAyQzsxMTBGIDExNzAgMTFCQjsKK0QwMkQ7RDAyRDsxMTBGIDExNzAgMTFCQztEMDJEOzExMEYgMTE3MCAxMUJDOworRDAyRTtEMDJFOzExMEYgMTE3MCAxMUJEO0QwMkU7MTEwRiAxMTcwIDExQkQ7CitEMDJGO0QwMkY7MTEwRiAxMTcwIDExQkU7RDAyRjsxMTBGIDExNzAgMTFCRTsKK0QwMzA7RDAzMDsxMTBGIDExNzAgMTFCRjtEMDMwOzExMEYgMTE3MCAxMUJGOworRDAzMTtEMDMxOzExMEYgMTE3MCAxMUMwO0QwMzE7MTEwRiAxMTcwIDExQzA7CitEMDMyO0QwMzI7MTEwRiAxMTcwIDExQzE7RDAzMjsxMTBGIDExNzAgMTFDMTsKK0QwMzM7RDAzMzsxMTBGIDExNzAgMTFDMjtEMDMzOzExMEYgMTE3MCAxMUMyOworRDAzNDtEMDM0OzExMEYgMTE3MTtEMDM0OzExMEYgMTE3MTsKK0QwMzU7RDAzNTsxMTBGIDExNzEgMTFBODtEMDM1OzExMEYgMTE3MSAxMUE4OworRDAzNjtEMDM2OzExMEYgMTE3MSAxMUE5O0QwMzY7MTEwRiAxMTcxIDExQTk7CitEMDM3O0QwMzc7MTEwRiAxMTcxIDExQUE7RDAzNzsxMTBGIDExNzEgMTFBQTsKK0QwMzg7RDAzODsxMTBGIDExNzEgMTFBQjtEMDM4OzExMEYgMTE3MSAxMUFCOworRDAzOTtEMDM5OzExMEYgMTE3MSAxMUFDO0QwMzk7MTEwRiAxMTcxIDExQUM7CitEMDNBO0QwM0E7MTEwRiAxMTcxIDExQUQ7RDAzQTsxMTBGIDExNzEgMTFBRDsKK0QwM0I7RDAzQjsxMTBGIDExNzEgMTFBRTtEMDNCOzExMEYgMTE3MSAxMUFFOworRDAzQztEMDNDOzExMEYgMTE3MSAxMUFGO0QwM0M7MTEwRiAxMTcxIDExQUY7CitEMDNEO0QwM0Q7MTEwRiAxMTcxIDExQjA7RDAzRDsxMTBGIDExNzEgMTFCMDsKK0QwM0U7RDAzRTsxMTBGIDExNzEgMTFCMTtEMDNFOzExMEYgMTE3MSAxMUIxOworRDAzRjtEMDNGOzExMEYgMTE3MSAxMUIyO0QwM0Y7MTEwRiAxMTcxIDExQjI7CitEMDQwO0QwNDA7MTEwRiAxMTcxIDExQjM7RDA0MDsxMTBGIDExNzEgMTFCMzsKK0QwNDE7RDA0MTsxMTBGIDExNzEgMTFCNDtEMDQxOzExMEYgMTE3MSAxMUI0OworRDA0MjtEMDQyOzExMEYgMTE3MSAxMUI1O0QwNDI7MTEwRiAxMTcxIDExQjU7CitEMDQzO0QwNDM7MTEwRiAxMTcxIDExQjY7RDA0MzsxMTBGIDExNzEgMTFCNjsKK0QwNDQ7RDA0NDsxMTBGIDExNzEgMTFCNztEMDQ0OzExMEYgMTE3MSAxMUI3OworRDA0NTtEMDQ1OzExMEYgMTE3MSAxMUI4O0QwNDU7MTEwRiAxMTcxIDExQjg7CitEMDQ2O0QwNDY7MTEwRiAxMTcxIDExQjk7RDA0NjsxMTBGIDExNzEgMTFCOTsKK0QwNDc7RDA0NzsxMTBGIDExNzEgMTFCQTtEMDQ3OzExMEYgMTE3MSAxMUJBOworRDA0ODtEMDQ4OzExMEYgMTE3MSAxMUJCO0QwNDg7MTEwRiAxMTcxIDExQkI7CitEMDQ5O0QwNDk7MTEwRiAxMTcxIDExQkM7RDA0OTsxMTBGIDExNzEgMTFCQzsKK0QwNEE7RDA0QTsxMTBGIDExNzEgMTFCRDtEMDRBOzExMEYgMTE3MSAxMUJEOworRDA0QjtEMDRCOzExMEYgMTE3MSAxMUJFO0QwNEI7MTEwRiAxMTcxIDExQkU7CitEMDRDO0QwNEM7MTEwRiAxMTcxIDExQkY7RDA0QzsxMTBGIDExNzEgMTFCRjsKK0QwNEQ7RDA0RDsxMTBGIDExNzEgMTFDMDtEMDREOzExMEYgMTE3MSAxMUMwOworRDA0RTtEMDRFOzExMEYgMTE3MSAxMUMxO0QwNEU7MTEwRiAxMTcxIDExQzE7CitEMDRGO0QwNEY7MTEwRiAxMTcxIDExQzI7RDA0RjsxMTBGIDExNzEgMTFDMjsKK0QwNTA7RDA1MDsxMTBGIDExNzI7RDA1MDsxMTBGIDExNzI7CitEMDUxO0QwNTE7MTEwRiAxMTcyIDExQTg7RDA1MTsxMTBGIDExNzIgMTFBODsKK0QwNTI7RDA1MjsxMTBGIDExNzIgMTFBOTtEMDUyOzExMEYgMTE3MiAxMUE5OworRDA1MztEMDUzOzExMEYgMTE3MiAxMUFBO0QwNTM7MTEwRiAxMTcyIDExQUE7CitEMDU0O0QwNTQ7MTEwRiAxMTcyIDExQUI7RDA1NDsxMTBGIDExNzIgMTFBQjsKK0QwNTU7RDA1NTsxMTBGIDExNzIgMTFBQztEMDU1OzExMEYgMTE3MiAxMUFDOworRDA1NjtEMDU2OzExMEYgMTE3MiAxMUFEO0QwNTY7MTEwRiAxMTcyIDExQUQ7CitEMDU3O0QwNTc7MTEwRiAxMTcyIDExQUU7RDA1NzsxMTBGIDExNzIgMTFBRTsKK0QwNTg7RDA1ODsxMTBGIDExNzIgMTFBRjtEMDU4OzExMEYgMTE3MiAxMUFGOworRDA1OTtEMDU5OzExMEYgMTE3MiAxMUIwO0QwNTk7MTEwRiAxMTcyIDExQjA7CitEMDVBO0QwNUE7MTEwRiAxMTcyIDExQjE7RDA1QTsxMTBGIDExNzIgMTFCMTsKK0QwNUI7RDA1QjsxMTBGIDExNzIgMTFCMjtEMDVCOzExMEYgMTE3MiAxMUIyOworRDA1QztEMDVDOzExMEYgMTE3MiAxMUIzO0QwNUM7MTEwRiAxMTcyIDExQjM7CitEMDVEO0QwNUQ7MTEwRiAxMTcyIDExQjQ7RDA1RDsxMTBGIDExNzIgMTFCNDsKK0QwNUU7RDA1RTsxMTBGIDExNzIgMTFCNTtEMDVFOzExMEYgMTE3MiAxMUI1OworRDA1RjtEMDVGOzExMEYgMTE3MiAxMUI2O0QwNUY7MTEwRiAxMTcyIDExQjY7CitEMDYwO0QwNjA7MTEwRiAxMTcyIDExQjc7RDA2MDsxMTBGIDExNzIgMTFCNzsKK0QwNjE7RDA2MTsxMTBGIDExNzIgMTFCODtEMDYxOzExMEYgMTE3MiAxMUI4OworRDA2MjtEMDYyOzExMEYgMTE3MiAxMUI5O0QwNjI7MTEwRiAxMTcyIDExQjk7CitEMDYzO0QwNjM7MTEwRiAxMTcyIDExQkE7RDA2MzsxMTBGIDExNzIgMTFCQTsKK0QwNjQ7RDA2NDsxMTBGIDExNzIgMTFCQjtEMDY0OzExMEYgMTE3MiAxMUJCOworRDA2NTtEMDY1OzExMEYgMTE3MiAxMUJDO0QwNjU7MTEwRiAxMTcyIDExQkM7CitEMDY2O0QwNjY7MTEwRiAxMTcyIDExQkQ7RDA2NjsxMTBGIDExNzIgMTFCRDsKK0QwNjc7RDA2NzsxMTBGIDExNzIgMTFCRTtEMDY3OzExMEYgMTE3MiAxMUJFOworRDA2ODtEMDY4OzExMEYgMTE3MiAxMUJGO0QwNjg7MTEwRiAxMTcyIDExQkY7CitEMDY5O0QwNjk7MTEwRiAxMTcyIDExQzA7RDA2OTsxMTBGIDExNzIgMTFDMDsKK0QwNkE7RDA2QTsxMTBGIDExNzIgMTFDMTtEMDZBOzExMEYgMTE3MiAxMUMxOworRDA2QjtEMDZCOzExMEYgMTE3MiAxMUMyO0QwNkI7MTEwRiAxMTcyIDExQzI7CitEMDZDO0QwNkM7MTEwRiAxMTczO0QwNkM7MTEwRiAxMTczOworRDA2RDtEMDZEOzExMEYgMTE3MyAxMUE4O0QwNkQ7MTEwRiAxMTczIDExQTg7CitEMDZFO0QwNkU7MTEwRiAxMTczIDExQTk7RDA2RTsxMTBGIDExNzMgMTFBOTsKK0QwNkY7RDA2RjsxMTBGIDExNzMgMTFBQTtEMDZGOzExMEYgMTE3MyAxMUFBOworRDA3MDtEMDcwOzExMEYgMTE3MyAxMUFCO0QwNzA7MTEwRiAxMTczIDExQUI7CitEMDcxO0QwNzE7MTEwRiAxMTczIDExQUM7RDA3MTsxMTBGIDExNzMgMTFBQzsKK0QwNzI7RDA3MjsxMTBGIDExNzMgMTFBRDtEMDcyOzExMEYgMTE3MyAxMUFEOworRDA3MztEMDczOzExMEYgMTE3MyAxMUFFO0QwNzM7MTEwRiAxMTczIDExQUU7CitEMDc0O0QwNzQ7MTEwRiAxMTczIDExQUY7RDA3NDsxMTBGIDExNzMgMTFBRjsKK0QwNzU7RDA3NTsxMTBGIDExNzMgMTFCMDtEMDc1OzExMEYgMTE3MyAxMUIwOworRDA3NjtEMDc2OzExMEYgMTE3MyAxMUIxO0QwNzY7MTEwRiAxMTczIDExQjE7CitEMDc3O0QwNzc7MTEwRiAxMTczIDExQjI7RDA3NzsxMTBGIDExNzMgMTFCMjsKK0QwNzg7RDA3ODsxMTBGIDExNzMgMTFCMztEMDc4OzExMEYgMTE3MyAxMUIzOworRDA3OTtEMDc5OzExMEYgMTE3MyAxMUI0O0QwNzk7MTEwRiAxMTczIDExQjQ7CitEMDdBO0QwN0E7MTEwRiAxMTczIDExQjU7RDA3QTsxMTBGIDExNzMgMTFCNTsKK0QwN0I7RDA3QjsxMTBGIDExNzMgMTFCNjtEMDdCOzExMEYgMTE3MyAxMUI2OworRDA3QztEMDdDOzExMEYgMTE3MyAxMUI3O0QwN0M7MTEwRiAxMTczIDExQjc7CitEMDdEO0QwN0Q7MTEwRiAxMTczIDExQjg7RDA3RDsxMTBGIDExNzMgMTFCODsKK0QwN0U7RDA3RTsxMTBGIDExNzMgMTFCOTtEMDdFOzExMEYgMTE3MyAxMUI5OworRDA3RjtEMDdGOzExMEYgMTE3MyAxMUJBO0QwN0Y7MTEwRiAxMTczIDExQkE7CitEMDgwO0QwODA7MTEwRiAxMTczIDExQkI7RDA4MDsxMTBGIDExNzMgMTFCQjsKK0QwODE7RDA4MTsxMTBGIDExNzMgMTFCQztEMDgxOzExMEYgMTE3MyAxMUJDOworRDA4MjtEMDgyOzExMEYgMTE3MyAxMUJEO0QwODI7MTEwRiAxMTczIDExQkQ7CitEMDgzO0QwODM7MTEwRiAxMTczIDExQkU7RDA4MzsxMTBGIDExNzMgMTFCRTsKK0QwODQ7RDA4NDsxMTBGIDExNzMgMTFCRjtEMDg0OzExMEYgMTE3MyAxMUJGOworRDA4NTtEMDg1OzExMEYgMTE3MyAxMUMwO0QwODU7MTEwRiAxMTczIDExQzA7CitEMDg2O0QwODY7MTEwRiAxMTczIDExQzE7RDA4NjsxMTBGIDExNzMgMTFDMTsKK0QwODc7RDA4NzsxMTBGIDExNzMgMTFDMjtEMDg3OzExMEYgMTE3MyAxMUMyOworRDA4ODtEMDg4OzExMEYgMTE3NDtEMDg4OzExMEYgMTE3NDsKK0QwODk7RDA4OTsxMTBGIDExNzQgMTFBODtEMDg5OzExMEYgMTE3NCAxMUE4OworRDA4QTtEMDhBOzExMEYgMTE3NCAxMUE5O0QwOEE7MTEwRiAxMTc0IDExQTk7CitEMDhCO0QwOEI7MTEwRiAxMTc0IDExQUE7RDA4QjsxMTBGIDExNzQgMTFBQTsKK0QwOEM7RDA4QzsxMTBGIDExNzQgMTFBQjtEMDhDOzExMEYgMTE3NCAxMUFCOworRDA4RDtEMDhEOzExMEYgMTE3NCAxMUFDO0QwOEQ7MTEwRiAxMTc0IDExQUM7CitEMDhFO0QwOEU7MTEwRiAxMTc0IDExQUQ7RDA4RTsxMTBGIDExNzQgMTFBRDsKK0QwOEY7RDA4RjsxMTBGIDExNzQgMTFBRTtEMDhGOzExMEYgMTE3NCAxMUFFOworRDA5MDtEMDkwOzExMEYgMTE3NCAxMUFGO0QwOTA7MTEwRiAxMTc0IDExQUY7CitEMDkxO0QwOTE7MTEwRiAxMTc0IDExQjA7RDA5MTsxMTBGIDExNzQgMTFCMDsKK0QwOTI7RDA5MjsxMTBGIDExNzQgMTFCMTtEMDkyOzExMEYgMTE3NCAxMUIxOworRDA5MztEMDkzOzExMEYgMTE3NCAxMUIyO0QwOTM7MTEwRiAxMTc0IDExQjI7CitEMDk0O0QwOTQ7MTEwRiAxMTc0IDExQjM7RDA5NDsxMTBGIDExNzQgMTFCMzsKK0QwOTU7RDA5NTsxMTBGIDExNzQgMTFCNDtEMDk1OzExMEYgMTE3NCAxMUI0OworRDA5NjtEMDk2OzExMEYgMTE3NCAxMUI1O0QwOTY7MTEwRiAxMTc0IDExQjU7CitEMDk3O0QwOTc7MTEwRiAxMTc0IDExQjY7RDA5NzsxMTBGIDExNzQgMTFCNjsKK0QwOTg7RDA5ODsxMTBGIDExNzQgMTFCNztEMDk4OzExMEYgMTE3NCAxMUI3OworRDA5OTtEMDk5OzExMEYgMTE3NCAxMUI4O0QwOTk7MTEwRiAxMTc0IDExQjg7CitEMDlBO0QwOUE7MTEwRiAxMTc0IDExQjk7RDA5QTsxMTBGIDExNzQgMTFCOTsKK0QwOUI7RDA5QjsxMTBGIDExNzQgMTFCQTtEMDlCOzExMEYgMTE3NCAxMUJBOworRDA5QztEMDlDOzExMEYgMTE3NCAxMUJCO0QwOUM7MTEwRiAxMTc0IDExQkI7CitEMDlEO0QwOUQ7MTEwRiAxMTc0IDExQkM7RDA5RDsxMTBGIDExNzQgMTFCQzsKK0QwOUU7RDA5RTsxMTBGIDExNzQgMTFCRDtEMDlFOzExMEYgMTE3NCAxMUJEOworRDA5RjtEMDlGOzExMEYgMTE3NCAxMUJFO0QwOUY7MTEwRiAxMTc0IDExQkU7CitEMEEwO0QwQTA7MTEwRiAxMTc0IDExQkY7RDBBMDsxMTBGIDExNzQgMTFCRjsKK0QwQTE7RDBBMTsxMTBGIDExNzQgMTFDMDtEMEExOzExMEYgMTE3NCAxMUMwOworRDBBMjtEMEEyOzExMEYgMTE3NCAxMUMxO0QwQTI7MTEwRiAxMTc0IDExQzE7CitEMEEzO0QwQTM7MTEwRiAxMTc0IDExQzI7RDBBMzsxMTBGIDExNzQgMTFDMjsKK0QwQTQ7RDBBNDsxMTBGIDExNzU7RDBBNDsxMTBGIDExNzU7CitEMEE1O0QwQTU7MTEwRiAxMTc1IDExQTg7RDBBNTsxMTBGIDExNzUgMTFBODsKK0QwQTY7RDBBNjsxMTBGIDExNzUgMTFBOTtEMEE2OzExMEYgMTE3NSAxMUE5OworRDBBNztEMEE3OzExMEYgMTE3NSAxMUFBO0QwQTc7MTEwRiAxMTc1IDExQUE7CitEMEE4O0QwQTg7MTEwRiAxMTc1IDExQUI7RDBBODsxMTBGIDExNzUgMTFBQjsKK0QwQTk7RDBBOTsxMTBGIDExNzUgMTFBQztEMEE5OzExMEYgMTE3NSAxMUFDOworRDBBQTtEMEFBOzExMEYgMTE3NSAxMUFEO0QwQUE7MTEwRiAxMTc1IDExQUQ7CitEMEFCO0QwQUI7MTEwRiAxMTc1IDExQUU7RDBBQjsxMTBGIDExNzUgMTFBRTsKK0QwQUM7RDBBQzsxMTBGIDExNzUgMTFBRjtEMEFDOzExMEYgMTE3NSAxMUFGOworRDBBRDtEMEFEOzExMEYgMTE3NSAxMUIwO0QwQUQ7MTEwRiAxMTc1IDExQjA7CitEMEFFO0QwQUU7MTEwRiAxMTc1IDExQjE7RDBBRTsxMTBGIDExNzUgMTFCMTsKK0QwQUY7RDBBRjsxMTBGIDExNzUgMTFCMjtEMEFGOzExMEYgMTE3NSAxMUIyOworRDBCMDtEMEIwOzExMEYgMTE3NSAxMUIzO0QwQjA7MTEwRiAxMTc1IDExQjM7CitEMEIxO0QwQjE7MTEwRiAxMTc1IDExQjQ7RDBCMTsxMTBGIDExNzUgMTFCNDsKK0QwQjI7RDBCMjsxMTBGIDExNzUgMTFCNTtEMEIyOzExMEYgMTE3NSAxMUI1OworRDBCMztEMEIzOzExMEYgMTE3NSAxMUI2O0QwQjM7MTEwRiAxMTc1IDExQjY7CitEMEI0O0QwQjQ7MTEwRiAxMTc1IDExQjc7RDBCNDsxMTBGIDExNzUgMTFCNzsKK0QwQjU7RDBCNTsxMTBGIDExNzUgMTFCODtEMEI1OzExMEYgMTE3NSAxMUI4OworRDBCNjtEMEI2OzExMEYgMTE3NSAxMUI5O0QwQjY7MTEwRiAxMTc1IDExQjk7CitEMEI3O0QwQjc7MTEwRiAxMTc1IDExQkE7RDBCNzsxMTBGIDExNzUgMTFCQTsKK0QwQjg7RDBCODsxMTBGIDExNzUgMTFCQjtEMEI4OzExMEYgMTE3NSAxMUJCOworRDBCOTtEMEI5OzExMEYgMTE3NSAxMUJDO0QwQjk7MTEwRiAxMTc1IDExQkM7CitEMEJBO0QwQkE7MTEwRiAxMTc1IDExQkQ7RDBCQTsxMTBGIDExNzUgMTFCRDsKK0QwQkI7RDBCQjsxMTBGIDExNzUgMTFCRTtEMEJCOzExMEYgMTE3NSAxMUJFOworRDBCQztEMEJDOzExMEYgMTE3NSAxMUJGO0QwQkM7MTEwRiAxMTc1IDExQkY7CitEMEJEO0QwQkQ7MTEwRiAxMTc1IDExQzA7RDBCRDsxMTBGIDExNzUgMTFDMDsKK0QwQkU7RDBCRTsxMTBGIDExNzUgMTFDMTtEMEJFOzExMEYgMTE3NSAxMUMxOworRDBCRjtEMEJGOzExMEYgMTE3NSAxMUMyO0QwQkY7MTEwRiAxMTc1IDExQzI7CitEMEMwO0QwQzA7MTExMCAxMTYxO0QwQzA7MTExMCAxMTYxOworRDBDMTtEMEMxOzExMTAgMTE2MSAxMUE4O0QwQzE7MTExMCAxMTYxIDExQTg7CitEMEMyO0QwQzI7MTExMCAxMTYxIDExQTk7RDBDMjsxMTEwIDExNjEgMTFBOTsKK0QwQzM7RDBDMzsxMTEwIDExNjEgMTFBQTtEMEMzOzExMTAgMTE2MSAxMUFBOworRDBDNDtEMEM0OzExMTAgMTE2MSAxMUFCO0QwQzQ7MTExMCAxMTYxIDExQUI7CitEMEM1O0QwQzU7MTExMCAxMTYxIDExQUM7RDBDNTsxMTEwIDExNjEgMTFBQzsKK0QwQzY7RDBDNjsxMTEwIDExNjEgMTFBRDtEMEM2OzExMTAgMTE2MSAxMUFEOworRDBDNztEMEM3OzExMTAgMTE2MSAxMUFFO0QwQzc7MTExMCAxMTYxIDExQUU7CitEMEM4O0QwQzg7MTExMCAxMTYxIDExQUY7RDBDODsxMTEwIDExNjEgMTFBRjsKK0QwQzk7RDBDOTsxMTEwIDExNjEgMTFCMDtEMEM5OzExMTAgMTE2MSAxMUIwOworRDBDQTtEMENBOzExMTAgMTE2MSAxMUIxO0QwQ0E7MTExMCAxMTYxIDExQjE7CitEMENCO0QwQ0I7MTExMCAxMTYxIDExQjI7RDBDQjsxMTEwIDExNjEgMTFCMjsKK0QwQ0M7RDBDQzsxMTEwIDExNjEgMTFCMztEMENDOzExMTAgMTE2MSAxMUIzOworRDBDRDtEMENEOzExMTAgMTE2MSAxMUI0O0QwQ0Q7MTExMCAxMTYxIDExQjQ7CitEMENFO0QwQ0U7MTExMCAxMTYxIDExQjU7RDBDRTsxMTEwIDExNjEgMTFCNTsKK0QwQ0Y7RDBDRjsxMTEwIDExNjEgMTFCNjtEMENGOzExMTAgMTE2MSAxMUI2OworRDBEMDtEMEQwOzExMTAgMTE2MSAxMUI3O0QwRDA7MTExMCAxMTYxIDExQjc7CitEMEQxO0QwRDE7MTExMCAxMTYxIDExQjg7RDBEMTsxMTEwIDExNjEgMTFCODsKK0QwRDI7RDBEMjsxMTEwIDExNjEgMTFCOTtEMEQyOzExMTAgMTE2MSAxMUI5OworRDBEMztEMEQzOzExMTAgMTE2MSAxMUJBO0QwRDM7MTExMCAxMTYxIDExQkE7CitEMEQ0O0QwRDQ7MTExMCAxMTYxIDExQkI7RDBENDsxMTEwIDExNjEgMTFCQjsKK0QwRDU7RDBENTsxMTEwIDExNjEgMTFCQztEMEQ1OzExMTAgMTE2MSAxMUJDOworRDBENjtEMEQ2OzExMTAgMTE2MSAxMUJEO0QwRDY7MTExMCAxMTYxIDExQkQ7CitEMEQ3O0QwRDc7MTExMCAxMTYxIDExQkU7RDBENzsxMTEwIDExNjEgMTFCRTsKK0QwRDg7RDBEODsxMTEwIDExNjEgMTFCRjtEMEQ4OzExMTAgMTE2MSAxMUJGOworRDBEOTtEMEQ5OzExMTAgMTE2MSAxMUMwO0QwRDk7MTExMCAxMTYxIDExQzA7CitEMERBO0QwREE7MTExMCAxMTYxIDExQzE7RDBEQTsxMTEwIDExNjEgMTFDMTsKK0QwREI7RDBEQjsxMTEwIDExNjEgMTFDMjtEMERCOzExMTAgMTE2MSAxMUMyOworRDBEQztEMERDOzExMTAgMTE2MjtEMERDOzExMTAgMTE2MjsKK0QwREQ7RDBERDsxMTEwIDExNjIgMTFBODtEMEREOzExMTAgMTE2MiAxMUE4OworRDBERTtEMERFOzExMTAgMTE2MiAxMUE5O0QwREU7MTExMCAxMTYyIDExQTk7CitEMERGO0QwREY7MTExMCAxMTYyIDExQUE7RDBERjsxMTEwIDExNjIgMTFBQTsKK0QwRTA7RDBFMDsxMTEwIDExNjIgMTFBQjtEMEUwOzExMTAgMTE2MiAxMUFCOworRDBFMTtEMEUxOzExMTAgMTE2MiAxMUFDO0QwRTE7MTExMCAxMTYyIDExQUM7CitEMEUyO0QwRTI7MTExMCAxMTYyIDExQUQ7RDBFMjsxMTEwIDExNjIgMTFBRDsKK0QwRTM7RDBFMzsxMTEwIDExNjIgMTFBRTtEMEUzOzExMTAgMTE2MiAxMUFFOworRDBFNDtEMEU0OzExMTAgMTE2MiAxMUFGO0QwRTQ7MTExMCAxMTYyIDExQUY7CitEMEU1O0QwRTU7MTExMCAxMTYyIDExQjA7RDBFNTsxMTEwIDExNjIgMTFCMDsKK0QwRTY7RDBFNjsxMTEwIDExNjIgMTFCMTtEMEU2OzExMTAgMTE2MiAxMUIxOworRDBFNztEMEU3OzExMTAgMTE2MiAxMUIyO0QwRTc7MTExMCAxMTYyIDExQjI7CitEMEU4O0QwRTg7MTExMCAxMTYyIDExQjM7RDBFODsxMTEwIDExNjIgMTFCMzsKK0QwRTk7RDBFOTsxMTEwIDExNjIgMTFCNDtEMEU5OzExMTAgMTE2MiAxMUI0OworRDBFQTtEMEVBOzExMTAgMTE2MiAxMUI1O0QwRUE7MTExMCAxMTYyIDExQjU7CitEMEVCO0QwRUI7MTExMCAxMTYyIDExQjY7RDBFQjsxMTEwIDExNjIgMTFCNjsKK0QwRUM7RDBFQzsxMTEwIDExNjIgMTFCNztEMEVDOzExMTAgMTE2MiAxMUI3OworRDBFRDtEMEVEOzExMTAgMTE2MiAxMUI4O0QwRUQ7MTExMCAxMTYyIDExQjg7CitEMEVFO0QwRUU7MTExMCAxMTYyIDExQjk7RDBFRTsxMTEwIDExNjIgMTFCOTsKK0QwRUY7RDBFRjsxMTEwIDExNjIgMTFCQTtEMEVGOzExMTAgMTE2MiAxMUJBOworRDBGMDtEMEYwOzExMTAgMTE2MiAxMUJCO0QwRjA7MTExMCAxMTYyIDExQkI7CitEMEYxO0QwRjE7MTExMCAxMTYyIDExQkM7RDBGMTsxMTEwIDExNjIgMTFCQzsKK0QwRjI7RDBGMjsxMTEwIDExNjIgMTFCRDtEMEYyOzExMTAgMTE2MiAxMUJEOworRDBGMztEMEYzOzExMTAgMTE2MiAxMUJFO0QwRjM7MTExMCAxMTYyIDExQkU7CitEMEY0O0QwRjQ7MTExMCAxMTYyIDExQkY7RDBGNDsxMTEwIDExNjIgMTFCRjsKK0QwRjU7RDBGNTsxMTEwIDExNjIgMTFDMDtEMEY1OzExMTAgMTE2MiAxMUMwOworRDBGNjtEMEY2OzExMTAgMTE2MiAxMUMxO0QwRjY7MTExMCAxMTYyIDExQzE7CitEMEY3O0QwRjc7MTExMCAxMTYyIDExQzI7RDBGNzsxMTEwIDExNjIgMTFDMjsKK0QwRjg7RDBGODsxMTEwIDExNjM7RDBGODsxMTEwIDExNjM7CitEMEY5O0QwRjk7MTExMCAxMTYzIDExQTg7RDBGOTsxMTEwIDExNjMgMTFBODsKK0QwRkE7RDBGQTsxMTEwIDExNjMgMTFBOTtEMEZBOzExMTAgMTE2MyAxMUE5OworRDBGQjtEMEZCOzExMTAgMTE2MyAxMUFBO0QwRkI7MTExMCAxMTYzIDExQUE7CitEMEZDO0QwRkM7MTExMCAxMTYzIDExQUI7RDBGQzsxMTEwIDExNjMgMTFBQjsKK0QwRkQ7RDBGRDsxMTEwIDExNjMgMTFBQztEMEZEOzExMTAgMTE2MyAxMUFDOworRDBGRTtEMEZFOzExMTAgMTE2MyAxMUFEO0QwRkU7MTExMCAxMTYzIDExQUQ7CitEMEZGO0QwRkY7MTExMCAxMTYzIDExQUU7RDBGRjsxMTEwIDExNjMgMTFBRTsKK0QxMDA7RDEwMDsxMTEwIDExNjMgMTFBRjtEMTAwOzExMTAgMTE2MyAxMUFGOworRDEwMTtEMTAxOzExMTAgMTE2MyAxMUIwO0QxMDE7MTExMCAxMTYzIDExQjA7CitEMTAyO0QxMDI7MTExMCAxMTYzIDExQjE7RDEwMjsxMTEwIDExNjMgMTFCMTsKK0QxMDM7RDEwMzsxMTEwIDExNjMgMTFCMjtEMTAzOzExMTAgMTE2MyAxMUIyOworRDEwNDtEMTA0OzExMTAgMTE2MyAxMUIzO0QxMDQ7MTExMCAxMTYzIDExQjM7CitEMTA1O0QxMDU7MTExMCAxMTYzIDExQjQ7RDEwNTsxMTEwIDExNjMgMTFCNDsKK0QxMDY7RDEwNjsxMTEwIDExNjMgMTFCNTtEMTA2OzExMTAgMTE2MyAxMUI1OworRDEwNztEMTA3OzExMTAgMTE2MyAxMUI2O0QxMDc7MTExMCAxMTYzIDExQjY7CitEMTA4O0QxMDg7MTExMCAxMTYzIDExQjc7RDEwODsxMTEwIDExNjMgMTFCNzsKK0QxMDk7RDEwOTsxMTEwIDExNjMgMTFCODtEMTA5OzExMTAgMTE2MyAxMUI4OworRDEwQTtEMTBBOzExMTAgMTE2MyAxMUI5O0QxMEE7MTExMCAxMTYzIDExQjk7CitEMTBCO0QxMEI7MTExMCAxMTYzIDExQkE7RDEwQjsxMTEwIDExNjMgMTFCQTsKK0QxMEM7RDEwQzsxMTEwIDExNjMgMTFCQjtEMTBDOzExMTAgMTE2MyAxMUJCOworRDEwRDtEMTBEOzExMTAgMTE2MyAxMUJDO0QxMEQ7MTExMCAxMTYzIDExQkM7CitEMTBFO0QxMEU7MTExMCAxMTYzIDExQkQ7RDEwRTsxMTEwIDExNjMgMTFCRDsKK0QxMEY7RDEwRjsxMTEwIDExNjMgMTFCRTtEMTBGOzExMTAgMTE2MyAxMUJFOworRDExMDtEMTEwOzExMTAgMTE2MyAxMUJGO0QxMTA7MTExMCAxMTYzIDExQkY7CitEMTExO0QxMTE7MTExMCAxMTYzIDExQzA7RDExMTsxMTEwIDExNjMgMTFDMDsKK0QxMTI7RDExMjsxMTEwIDExNjMgMTFDMTtEMTEyOzExMTAgMTE2MyAxMUMxOworRDExMztEMTEzOzExMTAgMTE2MyAxMUMyO0QxMTM7MTExMCAxMTYzIDExQzI7CitEMTE0O0QxMTQ7MTExMCAxMTY0O0QxMTQ7MTExMCAxMTY0OworRDExNTtEMTE1OzExMTAgMTE2NCAxMUE4O0QxMTU7MTExMCAxMTY0IDExQTg7CitEMTE2O0QxMTY7MTExMCAxMTY0IDExQTk7RDExNjsxMTEwIDExNjQgMTFBOTsKK0QxMTc7RDExNzsxMTEwIDExNjQgMTFBQTtEMTE3OzExMTAgMTE2NCAxMUFBOworRDExODtEMTE4OzExMTAgMTE2NCAxMUFCO0QxMTg7MTExMCAxMTY0IDExQUI7CitEMTE5O0QxMTk7MTExMCAxMTY0IDExQUM7RDExOTsxMTEwIDExNjQgMTFBQzsKK0QxMUE7RDExQTsxMTEwIDExNjQgMTFBRDtEMTFBOzExMTAgMTE2NCAxMUFEOworRDExQjtEMTFCOzExMTAgMTE2NCAxMUFFO0QxMUI7MTExMCAxMTY0IDExQUU7CitEMTFDO0QxMUM7MTExMCAxMTY0IDExQUY7RDExQzsxMTEwIDExNjQgMTFBRjsKK0QxMUQ7RDExRDsxMTEwIDExNjQgMTFCMDtEMTFEOzExMTAgMTE2NCAxMUIwOworRDExRTtEMTFFOzExMTAgMTE2NCAxMUIxO0QxMUU7MTExMCAxMTY0IDExQjE7CitEMTFGO0QxMUY7MTExMCAxMTY0IDExQjI7RDExRjsxMTEwIDExNjQgMTFCMjsKK0QxMjA7RDEyMDsxMTEwIDExNjQgMTFCMztEMTIwOzExMTAgMTE2NCAxMUIzOworRDEyMTtEMTIxOzExMTAgMTE2NCAxMUI0O0QxMjE7MTExMCAxMTY0IDExQjQ7CitEMTIyO0QxMjI7MTExMCAxMTY0IDExQjU7RDEyMjsxMTEwIDExNjQgMTFCNTsKK0QxMjM7RDEyMzsxMTEwIDExNjQgMTFCNjtEMTIzOzExMTAgMTE2NCAxMUI2OworRDEyNDtEMTI0OzExMTAgMTE2NCAxMUI3O0QxMjQ7MTExMCAxMTY0IDExQjc7CitEMTI1O0QxMjU7MTExMCAxMTY0IDExQjg7RDEyNTsxMTEwIDExNjQgMTFCODsKK0QxMjY7RDEyNjsxMTEwIDExNjQgMTFCOTtEMTI2OzExMTAgMTE2NCAxMUI5OworRDEyNztEMTI3OzExMTAgMTE2NCAxMUJBO0QxMjc7MTExMCAxMTY0IDExQkE7CitEMTI4O0QxMjg7MTExMCAxMTY0IDExQkI7RDEyODsxMTEwIDExNjQgMTFCQjsKK0QxMjk7RDEyOTsxMTEwIDExNjQgMTFCQztEMTI5OzExMTAgMTE2NCAxMUJDOworRDEyQTtEMTJBOzExMTAgMTE2NCAxMUJEO0QxMkE7MTExMCAxMTY0IDExQkQ7CitEMTJCO0QxMkI7MTExMCAxMTY0IDExQkU7RDEyQjsxMTEwIDExNjQgMTFCRTsKK0QxMkM7RDEyQzsxMTEwIDExNjQgMTFCRjtEMTJDOzExMTAgMTE2NCAxMUJGOworRDEyRDtEMTJEOzExMTAgMTE2NCAxMUMwO0QxMkQ7MTExMCAxMTY0IDExQzA7CitEMTJFO0QxMkU7MTExMCAxMTY0IDExQzE7RDEyRTsxMTEwIDExNjQgMTFDMTsKK0QxMkY7RDEyRjsxMTEwIDExNjQgMTFDMjtEMTJGOzExMTAgMTE2NCAxMUMyOworRDEzMDtEMTMwOzExMTAgMTE2NTtEMTMwOzExMTAgMTE2NTsKK0QxMzE7RDEzMTsxMTEwIDExNjUgMTFBODtEMTMxOzExMTAgMTE2NSAxMUE4OworRDEzMjtEMTMyOzExMTAgMTE2NSAxMUE5O0QxMzI7MTExMCAxMTY1IDExQTk7CitEMTMzO0QxMzM7MTExMCAxMTY1IDExQUE7RDEzMzsxMTEwIDExNjUgMTFBQTsKK0QxMzQ7RDEzNDsxMTEwIDExNjUgMTFBQjtEMTM0OzExMTAgMTE2NSAxMUFCOworRDEzNTtEMTM1OzExMTAgMTE2NSAxMUFDO0QxMzU7MTExMCAxMTY1IDExQUM7CitEMTM2O0QxMzY7MTExMCAxMTY1IDExQUQ7RDEzNjsxMTEwIDExNjUgMTFBRDsKK0QxMzc7RDEzNzsxMTEwIDExNjUgMTFBRTtEMTM3OzExMTAgMTE2NSAxMUFFOworRDEzODtEMTM4OzExMTAgMTE2NSAxMUFGO0QxMzg7MTExMCAxMTY1IDExQUY7CitEMTM5O0QxMzk7MTExMCAxMTY1IDExQjA7RDEzOTsxMTEwIDExNjUgMTFCMDsKK0QxM0E7RDEzQTsxMTEwIDExNjUgMTFCMTtEMTNBOzExMTAgMTE2NSAxMUIxOworRDEzQjtEMTNCOzExMTAgMTE2NSAxMUIyO0QxM0I7MTExMCAxMTY1IDExQjI7CitEMTNDO0QxM0M7MTExMCAxMTY1IDExQjM7RDEzQzsxMTEwIDExNjUgMTFCMzsKK0QxM0Q7RDEzRDsxMTEwIDExNjUgMTFCNDtEMTNEOzExMTAgMTE2NSAxMUI0OworRDEzRTtEMTNFOzExMTAgMTE2NSAxMUI1O0QxM0U7MTExMCAxMTY1IDExQjU7CitEMTNGO0QxM0Y7MTExMCAxMTY1IDExQjY7RDEzRjsxMTEwIDExNjUgMTFCNjsKK0QxNDA7RDE0MDsxMTEwIDExNjUgMTFCNztEMTQwOzExMTAgMTE2NSAxMUI3OworRDE0MTtEMTQxOzExMTAgMTE2NSAxMUI4O0QxNDE7MTExMCAxMTY1IDExQjg7CitEMTQyO0QxNDI7MTExMCAxMTY1IDExQjk7RDE0MjsxMTEwIDExNjUgMTFCOTsKK0QxNDM7RDE0MzsxMTEwIDExNjUgMTFCQTtEMTQzOzExMTAgMTE2NSAxMUJBOworRDE0NDtEMTQ0OzExMTAgMTE2NSAxMUJCO0QxNDQ7MTExMCAxMTY1IDExQkI7CitEMTQ1O0QxNDU7MTExMCAxMTY1IDExQkM7RDE0NTsxMTEwIDExNjUgMTFCQzsKK0QxNDY7RDE0NjsxMTEwIDExNjUgMTFCRDtEMTQ2OzExMTAgMTE2NSAxMUJEOworRDE0NztEMTQ3OzExMTAgMTE2NSAxMUJFO0QxNDc7MTExMCAxMTY1IDExQkU7CitEMTQ4O0QxNDg7MTExMCAxMTY1IDExQkY7RDE0ODsxMTEwIDExNjUgMTFCRjsKK0QxNDk7RDE0OTsxMTEwIDExNjUgMTFDMDtEMTQ5OzExMTAgMTE2NSAxMUMwOworRDE0QTtEMTRBOzExMTAgMTE2NSAxMUMxO0QxNEE7MTExMCAxMTY1IDExQzE7CitEMTRCO0QxNEI7MTExMCAxMTY1IDExQzI7RDE0QjsxMTEwIDExNjUgMTFDMjsKK0QxNEM7RDE0QzsxMTEwIDExNjY7RDE0QzsxMTEwIDExNjY7CitEMTREO0QxNEQ7MTExMCAxMTY2IDExQTg7RDE0RDsxMTEwIDExNjYgMTFBODsKK0QxNEU7RDE0RTsxMTEwIDExNjYgMTFBOTtEMTRFOzExMTAgMTE2NiAxMUE5OworRDE0RjtEMTRGOzExMTAgMTE2NiAxMUFBO0QxNEY7MTExMCAxMTY2IDExQUE7CitEMTUwO0QxNTA7MTExMCAxMTY2IDExQUI7RDE1MDsxMTEwIDExNjYgMTFBQjsKK0QxNTE7RDE1MTsxMTEwIDExNjYgMTFBQztEMTUxOzExMTAgMTE2NiAxMUFDOworRDE1MjtEMTUyOzExMTAgMTE2NiAxMUFEO0QxNTI7MTExMCAxMTY2IDExQUQ7CitEMTUzO0QxNTM7MTExMCAxMTY2IDExQUU7RDE1MzsxMTEwIDExNjYgMTFBRTsKK0QxNTQ7RDE1NDsxMTEwIDExNjYgMTFBRjtEMTU0OzExMTAgMTE2NiAxMUFGOworRDE1NTtEMTU1OzExMTAgMTE2NiAxMUIwO0QxNTU7MTExMCAxMTY2IDExQjA7CitEMTU2O0QxNTY7MTExMCAxMTY2IDExQjE7RDE1NjsxMTEwIDExNjYgMTFCMTsKK0QxNTc7RDE1NzsxMTEwIDExNjYgMTFCMjtEMTU3OzExMTAgMTE2NiAxMUIyOworRDE1ODtEMTU4OzExMTAgMTE2NiAxMUIzO0QxNTg7MTExMCAxMTY2IDExQjM7CitEMTU5O0QxNTk7MTExMCAxMTY2IDExQjQ7RDE1OTsxMTEwIDExNjYgMTFCNDsKK0QxNUE7RDE1QTsxMTEwIDExNjYgMTFCNTtEMTVBOzExMTAgMTE2NiAxMUI1OworRDE1QjtEMTVCOzExMTAgMTE2NiAxMUI2O0QxNUI7MTExMCAxMTY2IDExQjY7CitEMTVDO0QxNUM7MTExMCAxMTY2IDExQjc7RDE1QzsxMTEwIDExNjYgMTFCNzsKK0QxNUQ7RDE1RDsxMTEwIDExNjYgMTFCODtEMTVEOzExMTAgMTE2NiAxMUI4OworRDE1RTtEMTVFOzExMTAgMTE2NiAxMUI5O0QxNUU7MTExMCAxMTY2IDExQjk7CitEMTVGO0QxNUY7MTExMCAxMTY2IDExQkE7RDE1RjsxMTEwIDExNjYgMTFCQTsKK0QxNjA7RDE2MDsxMTEwIDExNjYgMTFCQjtEMTYwOzExMTAgMTE2NiAxMUJCOworRDE2MTtEMTYxOzExMTAgMTE2NiAxMUJDO0QxNjE7MTExMCAxMTY2IDExQkM7CitEMTYyO0QxNjI7MTExMCAxMTY2IDExQkQ7RDE2MjsxMTEwIDExNjYgMTFCRDsKK0QxNjM7RDE2MzsxMTEwIDExNjYgMTFCRTtEMTYzOzExMTAgMTE2NiAxMUJFOworRDE2NDtEMTY0OzExMTAgMTE2NiAxMUJGO0QxNjQ7MTExMCAxMTY2IDExQkY7CitEMTY1O0QxNjU7MTExMCAxMTY2IDExQzA7RDE2NTsxMTEwIDExNjYgMTFDMDsKK0QxNjY7RDE2NjsxMTEwIDExNjYgMTFDMTtEMTY2OzExMTAgMTE2NiAxMUMxOworRDE2NztEMTY3OzExMTAgMTE2NiAxMUMyO0QxNjc7MTExMCAxMTY2IDExQzI7CitEMTY4O0QxNjg7MTExMCAxMTY3O0QxNjg7MTExMCAxMTY3OworRDE2OTtEMTY5OzExMTAgMTE2NyAxMUE4O0QxNjk7MTExMCAxMTY3IDExQTg7CitEMTZBO0QxNkE7MTExMCAxMTY3IDExQTk7RDE2QTsxMTEwIDExNjcgMTFBOTsKK0QxNkI7RDE2QjsxMTEwIDExNjcgMTFBQTtEMTZCOzExMTAgMTE2NyAxMUFBOworRDE2QztEMTZDOzExMTAgMTE2NyAxMUFCO0QxNkM7MTExMCAxMTY3IDExQUI7CitEMTZEO0QxNkQ7MTExMCAxMTY3IDExQUM7RDE2RDsxMTEwIDExNjcgMTFBQzsKK0QxNkU7RDE2RTsxMTEwIDExNjcgMTFBRDtEMTZFOzExMTAgMTE2NyAxMUFEOworRDE2RjtEMTZGOzExMTAgMTE2NyAxMUFFO0QxNkY7MTExMCAxMTY3IDExQUU7CitEMTcwO0QxNzA7MTExMCAxMTY3IDExQUY7RDE3MDsxMTEwIDExNjcgMTFBRjsKK0QxNzE7RDE3MTsxMTEwIDExNjcgMTFCMDtEMTcxOzExMTAgMTE2NyAxMUIwOworRDE3MjtEMTcyOzExMTAgMTE2NyAxMUIxO0QxNzI7MTExMCAxMTY3IDExQjE7CitEMTczO0QxNzM7MTExMCAxMTY3IDExQjI7RDE3MzsxMTEwIDExNjcgMTFCMjsKK0QxNzQ7RDE3NDsxMTEwIDExNjcgMTFCMztEMTc0OzExMTAgMTE2NyAxMUIzOworRDE3NTtEMTc1OzExMTAgMTE2NyAxMUI0O0QxNzU7MTExMCAxMTY3IDExQjQ7CitEMTc2O0QxNzY7MTExMCAxMTY3IDExQjU7RDE3NjsxMTEwIDExNjcgMTFCNTsKK0QxNzc7RDE3NzsxMTEwIDExNjcgMTFCNjtEMTc3OzExMTAgMTE2NyAxMUI2OworRDE3ODtEMTc4OzExMTAgMTE2NyAxMUI3O0QxNzg7MTExMCAxMTY3IDExQjc7CitEMTc5O0QxNzk7MTExMCAxMTY3IDExQjg7RDE3OTsxMTEwIDExNjcgMTFCODsKK0QxN0E7RDE3QTsxMTEwIDExNjcgMTFCOTtEMTdBOzExMTAgMTE2NyAxMUI5OworRDE3QjtEMTdCOzExMTAgMTE2NyAxMUJBO0QxN0I7MTExMCAxMTY3IDExQkE7CitEMTdDO0QxN0M7MTExMCAxMTY3IDExQkI7RDE3QzsxMTEwIDExNjcgMTFCQjsKK0QxN0Q7RDE3RDsxMTEwIDExNjcgMTFCQztEMTdEOzExMTAgMTE2NyAxMUJDOworRDE3RTtEMTdFOzExMTAgMTE2NyAxMUJEO0QxN0U7MTExMCAxMTY3IDExQkQ7CitEMTdGO0QxN0Y7MTExMCAxMTY3IDExQkU7RDE3RjsxMTEwIDExNjcgMTFCRTsKK0QxODA7RDE4MDsxMTEwIDExNjcgMTFCRjtEMTgwOzExMTAgMTE2NyAxMUJGOworRDE4MTtEMTgxOzExMTAgMTE2NyAxMUMwO0QxODE7MTExMCAxMTY3IDExQzA7CitEMTgyO0QxODI7MTExMCAxMTY3IDExQzE7RDE4MjsxMTEwIDExNjcgMTFDMTsKK0QxODM7RDE4MzsxMTEwIDExNjcgMTFDMjtEMTgzOzExMTAgMTE2NyAxMUMyOworRDE4NDtEMTg0OzExMTAgMTE2ODtEMTg0OzExMTAgMTE2ODsKK0QxODU7RDE4NTsxMTEwIDExNjggMTFBODtEMTg1OzExMTAgMTE2OCAxMUE4OworRDE4NjtEMTg2OzExMTAgMTE2OCAxMUE5O0QxODY7MTExMCAxMTY4IDExQTk7CitEMTg3O0QxODc7MTExMCAxMTY4IDExQUE7RDE4NzsxMTEwIDExNjggMTFBQTsKK0QxODg7RDE4ODsxMTEwIDExNjggMTFBQjtEMTg4OzExMTAgMTE2OCAxMUFCOworRDE4OTtEMTg5OzExMTAgMTE2OCAxMUFDO0QxODk7MTExMCAxMTY4IDExQUM7CitEMThBO0QxOEE7MTExMCAxMTY4IDExQUQ7RDE4QTsxMTEwIDExNjggMTFBRDsKK0QxOEI7RDE4QjsxMTEwIDExNjggMTFBRTtEMThCOzExMTAgMTE2OCAxMUFFOworRDE4QztEMThDOzExMTAgMTE2OCAxMUFGO0QxOEM7MTExMCAxMTY4IDExQUY7CitEMThEO0QxOEQ7MTExMCAxMTY4IDExQjA7RDE4RDsxMTEwIDExNjggMTFCMDsKK0QxOEU7RDE4RTsxMTEwIDExNjggMTFCMTtEMThFOzExMTAgMTE2OCAxMUIxOworRDE4RjtEMThGOzExMTAgMTE2OCAxMUIyO0QxOEY7MTExMCAxMTY4IDExQjI7CitEMTkwO0QxOTA7MTExMCAxMTY4IDExQjM7RDE5MDsxMTEwIDExNjggMTFCMzsKK0QxOTE7RDE5MTsxMTEwIDExNjggMTFCNDtEMTkxOzExMTAgMTE2OCAxMUI0OworRDE5MjtEMTkyOzExMTAgMTE2OCAxMUI1O0QxOTI7MTExMCAxMTY4IDExQjU7CitEMTkzO0QxOTM7MTExMCAxMTY4IDExQjY7RDE5MzsxMTEwIDExNjggMTFCNjsKK0QxOTQ7RDE5NDsxMTEwIDExNjggMTFCNztEMTk0OzExMTAgMTE2OCAxMUI3OworRDE5NTtEMTk1OzExMTAgMTE2OCAxMUI4O0QxOTU7MTExMCAxMTY4IDExQjg7CitEMTk2O0QxOTY7MTExMCAxMTY4IDExQjk7RDE5NjsxMTEwIDExNjggMTFCOTsKK0QxOTc7RDE5NzsxMTEwIDExNjggMTFCQTtEMTk3OzExMTAgMTE2OCAxMUJBOworRDE5ODtEMTk4OzExMTAgMTE2OCAxMUJCO0QxOTg7MTExMCAxMTY4IDExQkI7CitEMTk5O0QxOTk7MTExMCAxMTY4IDExQkM7RDE5OTsxMTEwIDExNjggMTFCQzsKK0QxOUE7RDE5QTsxMTEwIDExNjggMTFCRDtEMTlBOzExMTAgMTE2OCAxMUJEOworRDE5QjtEMTlCOzExMTAgMTE2OCAxMUJFO0QxOUI7MTExMCAxMTY4IDExQkU7CitEMTlDO0QxOUM7MTExMCAxMTY4IDExQkY7RDE5QzsxMTEwIDExNjggMTFCRjsKK0QxOUQ7RDE5RDsxMTEwIDExNjggMTFDMDtEMTlEOzExMTAgMTE2OCAxMUMwOworRDE5RTtEMTlFOzExMTAgMTE2OCAxMUMxO0QxOUU7MTExMCAxMTY4IDExQzE7CitEMTlGO0QxOUY7MTExMCAxMTY4IDExQzI7RDE5RjsxMTEwIDExNjggMTFDMjsKK0QxQTA7RDFBMDsxMTEwIDExNjk7RDFBMDsxMTEwIDExNjk7CitEMUExO0QxQTE7MTExMCAxMTY5IDExQTg7RDFBMTsxMTEwIDExNjkgMTFBODsKK0QxQTI7RDFBMjsxMTEwIDExNjkgMTFBOTtEMUEyOzExMTAgMTE2OSAxMUE5OworRDFBMztEMUEzOzExMTAgMTE2OSAxMUFBO0QxQTM7MTExMCAxMTY5IDExQUE7CitEMUE0O0QxQTQ7MTExMCAxMTY5IDExQUI7RDFBNDsxMTEwIDExNjkgMTFBQjsKK0QxQTU7RDFBNTsxMTEwIDExNjkgMTFBQztEMUE1OzExMTAgMTE2OSAxMUFDOworRDFBNjtEMUE2OzExMTAgMTE2OSAxMUFEO0QxQTY7MTExMCAxMTY5IDExQUQ7CitEMUE3O0QxQTc7MTExMCAxMTY5IDExQUU7RDFBNzsxMTEwIDExNjkgMTFBRTsKK0QxQTg7RDFBODsxMTEwIDExNjkgMTFBRjtEMUE4OzExMTAgMTE2OSAxMUFGOworRDFBOTtEMUE5OzExMTAgMTE2OSAxMUIwO0QxQTk7MTExMCAxMTY5IDExQjA7CitEMUFBO0QxQUE7MTExMCAxMTY5IDExQjE7RDFBQTsxMTEwIDExNjkgMTFCMTsKK0QxQUI7RDFBQjsxMTEwIDExNjkgMTFCMjtEMUFCOzExMTAgMTE2OSAxMUIyOworRDFBQztEMUFDOzExMTAgMTE2OSAxMUIzO0QxQUM7MTExMCAxMTY5IDExQjM7CitEMUFEO0QxQUQ7MTExMCAxMTY5IDExQjQ7RDFBRDsxMTEwIDExNjkgMTFCNDsKK0QxQUU7RDFBRTsxMTEwIDExNjkgMTFCNTtEMUFFOzExMTAgMTE2OSAxMUI1OworRDFBRjtEMUFGOzExMTAgMTE2OSAxMUI2O0QxQUY7MTExMCAxMTY5IDExQjY7CitEMUIwO0QxQjA7MTExMCAxMTY5IDExQjc7RDFCMDsxMTEwIDExNjkgMTFCNzsKK0QxQjE7RDFCMTsxMTEwIDExNjkgMTFCODtEMUIxOzExMTAgMTE2OSAxMUI4OworRDFCMjtEMUIyOzExMTAgMTE2OSAxMUI5O0QxQjI7MTExMCAxMTY5IDExQjk7CitEMUIzO0QxQjM7MTExMCAxMTY5IDExQkE7RDFCMzsxMTEwIDExNjkgMTFCQTsKK0QxQjQ7RDFCNDsxMTEwIDExNjkgMTFCQjtEMUI0OzExMTAgMTE2OSAxMUJCOworRDFCNTtEMUI1OzExMTAgMTE2OSAxMUJDO0QxQjU7MTExMCAxMTY5IDExQkM7CitEMUI2O0QxQjY7MTExMCAxMTY5IDExQkQ7RDFCNjsxMTEwIDExNjkgMTFCRDsKK0QxQjc7RDFCNzsxMTEwIDExNjkgMTFCRTtEMUI3OzExMTAgMTE2OSAxMUJFOworRDFCODtEMUI4OzExMTAgMTE2OSAxMUJGO0QxQjg7MTExMCAxMTY5IDExQkY7CitEMUI5O0QxQjk7MTExMCAxMTY5IDExQzA7RDFCOTsxMTEwIDExNjkgMTFDMDsKK0QxQkE7RDFCQTsxMTEwIDExNjkgMTFDMTtEMUJBOzExMTAgMTE2OSAxMUMxOworRDFCQjtEMUJCOzExMTAgMTE2OSAxMUMyO0QxQkI7MTExMCAxMTY5IDExQzI7CitEMUJDO0QxQkM7MTExMCAxMTZBO0QxQkM7MTExMCAxMTZBOworRDFCRDtEMUJEOzExMTAgMTE2QSAxMUE4O0QxQkQ7MTExMCAxMTZBIDExQTg7CitEMUJFO0QxQkU7MTExMCAxMTZBIDExQTk7RDFCRTsxMTEwIDExNkEgMTFBOTsKK0QxQkY7RDFCRjsxMTEwIDExNkEgMTFBQTtEMUJGOzExMTAgMTE2QSAxMUFBOworRDFDMDtEMUMwOzExMTAgMTE2QSAxMUFCO0QxQzA7MTExMCAxMTZBIDExQUI7CitEMUMxO0QxQzE7MTExMCAxMTZBIDExQUM7RDFDMTsxMTEwIDExNkEgMTFBQzsKK0QxQzI7RDFDMjsxMTEwIDExNkEgMTFBRDtEMUMyOzExMTAgMTE2QSAxMUFEOworRDFDMztEMUMzOzExMTAgMTE2QSAxMUFFO0QxQzM7MTExMCAxMTZBIDExQUU7CitEMUM0O0QxQzQ7MTExMCAxMTZBIDExQUY7RDFDNDsxMTEwIDExNkEgMTFBRjsKK0QxQzU7RDFDNTsxMTEwIDExNkEgMTFCMDtEMUM1OzExMTAgMTE2QSAxMUIwOworRDFDNjtEMUM2OzExMTAgMTE2QSAxMUIxO0QxQzY7MTExMCAxMTZBIDExQjE7CitEMUM3O0QxQzc7MTExMCAxMTZBIDExQjI7RDFDNzsxMTEwIDExNkEgMTFCMjsKK0QxQzg7RDFDODsxMTEwIDExNkEgMTFCMztEMUM4OzExMTAgMTE2QSAxMUIzOworRDFDOTtEMUM5OzExMTAgMTE2QSAxMUI0O0QxQzk7MTExMCAxMTZBIDExQjQ7CitEMUNBO0QxQ0E7MTExMCAxMTZBIDExQjU7RDFDQTsxMTEwIDExNkEgMTFCNTsKK0QxQ0I7RDFDQjsxMTEwIDExNkEgMTFCNjtEMUNCOzExMTAgMTE2QSAxMUI2OworRDFDQztEMUNDOzExMTAgMTE2QSAxMUI3O0QxQ0M7MTExMCAxMTZBIDExQjc7CitEMUNEO0QxQ0Q7MTExMCAxMTZBIDExQjg7RDFDRDsxMTEwIDExNkEgMTFCODsKK0QxQ0U7RDFDRTsxMTEwIDExNkEgMTFCOTtEMUNFOzExMTAgMTE2QSAxMUI5OworRDFDRjtEMUNGOzExMTAgMTE2QSAxMUJBO0QxQ0Y7MTExMCAxMTZBIDExQkE7CitEMUQwO0QxRDA7MTExMCAxMTZBIDExQkI7RDFEMDsxMTEwIDExNkEgMTFCQjsKK0QxRDE7RDFEMTsxMTEwIDExNkEgMTFCQztEMUQxOzExMTAgMTE2QSAxMUJDOworRDFEMjtEMUQyOzExMTAgMTE2QSAxMUJEO0QxRDI7MTExMCAxMTZBIDExQkQ7CitEMUQzO0QxRDM7MTExMCAxMTZBIDExQkU7RDFEMzsxMTEwIDExNkEgMTFCRTsKK0QxRDQ7RDFENDsxMTEwIDExNkEgMTFCRjtEMUQ0OzExMTAgMTE2QSAxMUJGOworRDFENTtEMUQ1OzExMTAgMTE2QSAxMUMwO0QxRDU7MTExMCAxMTZBIDExQzA7CitEMUQ2O0QxRDY7MTExMCAxMTZBIDExQzE7RDFENjsxMTEwIDExNkEgMTFDMTsKK0QxRDc7RDFENzsxMTEwIDExNkEgMTFDMjtEMUQ3OzExMTAgMTE2QSAxMUMyOworRDFEODtEMUQ4OzExMTAgMTE2QjtEMUQ4OzExMTAgMTE2QjsKK0QxRDk7RDFEOTsxMTEwIDExNkIgMTFBODtEMUQ5OzExMTAgMTE2QiAxMUE4OworRDFEQTtEMURBOzExMTAgMTE2QiAxMUE5O0QxREE7MTExMCAxMTZCIDExQTk7CitEMURCO0QxREI7MTExMCAxMTZCIDExQUE7RDFEQjsxMTEwIDExNkIgMTFBQTsKK0QxREM7RDFEQzsxMTEwIDExNkIgMTFBQjtEMURDOzExMTAgMTE2QiAxMUFCOworRDFERDtEMUREOzExMTAgMTE2QiAxMUFDO0QxREQ7MTExMCAxMTZCIDExQUM7CitEMURFO0QxREU7MTExMCAxMTZCIDExQUQ7RDFERTsxMTEwIDExNkIgMTFBRDsKK0QxREY7RDFERjsxMTEwIDExNkIgMTFBRTtEMURGOzExMTAgMTE2QiAxMUFFOworRDFFMDtEMUUwOzExMTAgMTE2QiAxMUFGO0QxRTA7MTExMCAxMTZCIDExQUY7CitEMUUxO0QxRTE7MTExMCAxMTZCIDExQjA7RDFFMTsxMTEwIDExNkIgMTFCMDsKK0QxRTI7RDFFMjsxMTEwIDExNkIgMTFCMTtEMUUyOzExMTAgMTE2QiAxMUIxOworRDFFMztEMUUzOzExMTAgMTE2QiAxMUIyO0QxRTM7MTExMCAxMTZCIDExQjI7CitEMUU0O0QxRTQ7MTExMCAxMTZCIDExQjM7RDFFNDsxMTEwIDExNkIgMTFCMzsKK0QxRTU7RDFFNTsxMTEwIDExNkIgMTFCNDtEMUU1OzExMTAgMTE2QiAxMUI0OworRDFFNjtEMUU2OzExMTAgMTE2QiAxMUI1O0QxRTY7MTExMCAxMTZCIDExQjU7CitEMUU3O0QxRTc7MTExMCAxMTZCIDExQjY7RDFFNzsxMTEwIDExNkIgMTFCNjsKK0QxRTg7RDFFODsxMTEwIDExNkIgMTFCNztEMUU4OzExMTAgMTE2QiAxMUI3OworRDFFOTtEMUU5OzExMTAgMTE2QiAxMUI4O0QxRTk7MTExMCAxMTZCIDExQjg7CitEMUVBO0QxRUE7MTExMCAxMTZCIDExQjk7RDFFQTsxMTEwIDExNkIgMTFCOTsKK0QxRUI7RDFFQjsxMTEwIDExNkIgMTFCQTtEMUVCOzExMTAgMTE2QiAxMUJBOworRDFFQztEMUVDOzExMTAgMTE2QiAxMUJCO0QxRUM7MTExMCAxMTZCIDExQkI7CitEMUVEO0QxRUQ7MTExMCAxMTZCIDExQkM7RDFFRDsxMTEwIDExNkIgMTFCQzsKK0QxRUU7RDFFRTsxMTEwIDExNkIgMTFCRDtEMUVFOzExMTAgMTE2QiAxMUJEOworRDFFRjtEMUVGOzExMTAgMTE2QiAxMUJFO0QxRUY7MTExMCAxMTZCIDExQkU7CitEMUYwO0QxRjA7MTExMCAxMTZCIDExQkY7RDFGMDsxMTEwIDExNkIgMTFCRjsKK0QxRjE7RDFGMTsxMTEwIDExNkIgMTFDMDtEMUYxOzExMTAgMTE2QiAxMUMwOworRDFGMjtEMUYyOzExMTAgMTE2QiAxMUMxO0QxRjI7MTExMCAxMTZCIDExQzE7CitEMUYzO0QxRjM7MTExMCAxMTZCIDExQzI7RDFGMzsxMTEwIDExNkIgMTFDMjsKK0QxRjQ7RDFGNDsxMTEwIDExNkM7RDFGNDsxMTEwIDExNkM7CitEMUY1O0QxRjU7MTExMCAxMTZDIDExQTg7RDFGNTsxMTEwIDExNkMgMTFBODsKK0QxRjY7RDFGNjsxMTEwIDExNkMgMTFBOTtEMUY2OzExMTAgMTE2QyAxMUE5OworRDFGNztEMUY3OzExMTAgMTE2QyAxMUFBO0QxRjc7MTExMCAxMTZDIDExQUE7CitEMUY4O0QxRjg7MTExMCAxMTZDIDExQUI7RDFGODsxMTEwIDExNkMgMTFBQjsKK0QxRjk7RDFGOTsxMTEwIDExNkMgMTFBQztEMUY5OzExMTAgMTE2QyAxMUFDOworRDFGQTtEMUZBOzExMTAgMTE2QyAxMUFEO0QxRkE7MTExMCAxMTZDIDExQUQ7CitEMUZCO0QxRkI7MTExMCAxMTZDIDExQUU7RDFGQjsxMTEwIDExNkMgMTFBRTsKK0QxRkM7RDFGQzsxMTEwIDExNkMgMTFBRjtEMUZDOzExMTAgMTE2QyAxMUFGOworRDFGRDtEMUZEOzExMTAgMTE2QyAxMUIwO0QxRkQ7MTExMCAxMTZDIDExQjA7CitEMUZFO0QxRkU7MTExMCAxMTZDIDExQjE7RDFGRTsxMTEwIDExNkMgMTFCMTsKK0QxRkY7RDFGRjsxMTEwIDExNkMgMTFCMjtEMUZGOzExMTAgMTE2QyAxMUIyOworRDIwMDtEMjAwOzExMTAgMTE2QyAxMUIzO0QyMDA7MTExMCAxMTZDIDExQjM7CitEMjAxO0QyMDE7MTExMCAxMTZDIDExQjQ7RDIwMTsxMTEwIDExNkMgMTFCNDsKK0QyMDI7RDIwMjsxMTEwIDExNkMgMTFCNTtEMjAyOzExMTAgMTE2QyAxMUI1OworRDIwMztEMjAzOzExMTAgMTE2QyAxMUI2O0QyMDM7MTExMCAxMTZDIDExQjY7CitEMjA0O0QyMDQ7MTExMCAxMTZDIDExQjc7RDIwNDsxMTEwIDExNkMgMTFCNzsKK0QyMDU7RDIwNTsxMTEwIDExNkMgMTFCODtEMjA1OzExMTAgMTE2QyAxMUI4OworRDIwNjtEMjA2OzExMTAgMTE2QyAxMUI5O0QyMDY7MTExMCAxMTZDIDExQjk7CitEMjA3O0QyMDc7MTExMCAxMTZDIDExQkE7RDIwNzsxMTEwIDExNkMgMTFCQTsKK0QyMDg7RDIwODsxMTEwIDExNkMgMTFCQjtEMjA4OzExMTAgMTE2QyAxMUJCOworRDIwOTtEMjA5OzExMTAgMTE2QyAxMUJDO0QyMDk7MTExMCAxMTZDIDExQkM7CitEMjBBO0QyMEE7MTExMCAxMTZDIDExQkQ7RDIwQTsxMTEwIDExNkMgMTFCRDsKK0QyMEI7RDIwQjsxMTEwIDExNkMgMTFCRTtEMjBCOzExMTAgMTE2QyAxMUJFOworRDIwQztEMjBDOzExMTAgMTE2QyAxMUJGO0QyMEM7MTExMCAxMTZDIDExQkY7CitEMjBEO0QyMEQ7MTExMCAxMTZDIDExQzA7RDIwRDsxMTEwIDExNkMgMTFDMDsKK0QyMEU7RDIwRTsxMTEwIDExNkMgMTFDMTtEMjBFOzExMTAgMTE2QyAxMUMxOworRDIwRjtEMjBGOzExMTAgMTE2QyAxMUMyO0QyMEY7MTExMCAxMTZDIDExQzI7CitEMjEwO0QyMTA7MTExMCAxMTZEO0QyMTA7MTExMCAxMTZEOworRDIxMTtEMjExOzExMTAgMTE2RCAxMUE4O0QyMTE7MTExMCAxMTZEIDExQTg7CitEMjEyO0QyMTI7MTExMCAxMTZEIDExQTk7RDIxMjsxMTEwIDExNkQgMTFBOTsKK0QyMTM7RDIxMzsxMTEwIDExNkQgMTFBQTtEMjEzOzExMTAgMTE2RCAxMUFBOworRDIxNDtEMjE0OzExMTAgMTE2RCAxMUFCO0QyMTQ7MTExMCAxMTZEIDExQUI7CitEMjE1O0QyMTU7MTExMCAxMTZEIDExQUM7RDIxNTsxMTEwIDExNkQgMTFBQzsKK0QyMTY7RDIxNjsxMTEwIDExNkQgMTFBRDtEMjE2OzExMTAgMTE2RCAxMUFEOworRDIxNztEMjE3OzExMTAgMTE2RCAxMUFFO0QyMTc7MTExMCAxMTZEIDExQUU7CitEMjE4O0QyMTg7MTExMCAxMTZEIDExQUY7RDIxODsxMTEwIDExNkQgMTFBRjsKK0QyMTk7RDIxOTsxMTEwIDExNkQgMTFCMDtEMjE5OzExMTAgMTE2RCAxMUIwOworRDIxQTtEMjFBOzExMTAgMTE2RCAxMUIxO0QyMUE7MTExMCAxMTZEIDExQjE7CitEMjFCO0QyMUI7MTExMCAxMTZEIDExQjI7RDIxQjsxMTEwIDExNkQgMTFCMjsKK0QyMUM7RDIxQzsxMTEwIDExNkQgMTFCMztEMjFDOzExMTAgMTE2RCAxMUIzOworRDIxRDtEMjFEOzExMTAgMTE2RCAxMUI0O0QyMUQ7MTExMCAxMTZEIDExQjQ7CitEMjFFO0QyMUU7MTExMCAxMTZEIDExQjU7RDIxRTsxMTEwIDExNkQgMTFCNTsKK0QyMUY7RDIxRjsxMTEwIDExNkQgMTFCNjtEMjFGOzExMTAgMTE2RCAxMUI2OworRDIyMDtEMjIwOzExMTAgMTE2RCAxMUI3O0QyMjA7MTExMCAxMTZEIDExQjc7CitEMjIxO0QyMjE7MTExMCAxMTZEIDExQjg7RDIyMTsxMTEwIDExNkQgMTFCODsKK0QyMjI7RDIyMjsxMTEwIDExNkQgMTFCOTtEMjIyOzExMTAgMTE2RCAxMUI5OworRDIyMztEMjIzOzExMTAgMTE2RCAxMUJBO0QyMjM7MTExMCAxMTZEIDExQkE7CitEMjI0O0QyMjQ7MTExMCAxMTZEIDExQkI7RDIyNDsxMTEwIDExNkQgMTFCQjsKK0QyMjU7RDIyNTsxMTEwIDExNkQgMTFCQztEMjI1OzExMTAgMTE2RCAxMUJDOworRDIyNjtEMjI2OzExMTAgMTE2RCAxMUJEO0QyMjY7MTExMCAxMTZEIDExQkQ7CitEMjI3O0QyMjc7MTExMCAxMTZEIDExQkU7RDIyNzsxMTEwIDExNkQgMTFCRTsKK0QyMjg7RDIyODsxMTEwIDExNkQgMTFCRjtEMjI4OzExMTAgMTE2RCAxMUJGOworRDIyOTtEMjI5OzExMTAgMTE2RCAxMUMwO0QyMjk7MTExMCAxMTZEIDExQzA7CitEMjJBO0QyMkE7MTExMCAxMTZEIDExQzE7RDIyQTsxMTEwIDExNkQgMTFDMTsKK0QyMkI7RDIyQjsxMTEwIDExNkQgMTFDMjtEMjJCOzExMTAgMTE2RCAxMUMyOworRDIyQztEMjJDOzExMTAgMTE2RTtEMjJDOzExMTAgMTE2RTsKK0QyMkQ7RDIyRDsxMTEwIDExNkUgMTFBODtEMjJEOzExMTAgMTE2RSAxMUE4OworRDIyRTtEMjJFOzExMTAgMTE2RSAxMUE5O0QyMkU7MTExMCAxMTZFIDExQTk7CitEMjJGO0QyMkY7MTExMCAxMTZFIDExQUE7RDIyRjsxMTEwIDExNkUgMTFBQTsKK0QyMzA7RDIzMDsxMTEwIDExNkUgMTFBQjtEMjMwOzExMTAgMTE2RSAxMUFCOworRDIzMTtEMjMxOzExMTAgMTE2RSAxMUFDO0QyMzE7MTExMCAxMTZFIDExQUM7CitEMjMyO0QyMzI7MTExMCAxMTZFIDExQUQ7RDIzMjsxMTEwIDExNkUgMTFBRDsKK0QyMzM7RDIzMzsxMTEwIDExNkUgMTFBRTtEMjMzOzExMTAgMTE2RSAxMUFFOworRDIzNDtEMjM0OzExMTAgMTE2RSAxMUFGO0QyMzQ7MTExMCAxMTZFIDExQUY7CitEMjM1O0QyMzU7MTExMCAxMTZFIDExQjA7RDIzNTsxMTEwIDExNkUgMTFCMDsKK0QyMzY7RDIzNjsxMTEwIDExNkUgMTFCMTtEMjM2OzExMTAgMTE2RSAxMUIxOworRDIzNztEMjM3OzExMTAgMTE2RSAxMUIyO0QyMzc7MTExMCAxMTZFIDExQjI7CitEMjM4O0QyMzg7MTExMCAxMTZFIDExQjM7RDIzODsxMTEwIDExNkUgMTFCMzsKK0QyMzk7RDIzOTsxMTEwIDExNkUgMTFCNDtEMjM5OzExMTAgMTE2RSAxMUI0OworRDIzQTtEMjNBOzExMTAgMTE2RSAxMUI1O0QyM0E7MTExMCAxMTZFIDExQjU7CitEMjNCO0QyM0I7MTExMCAxMTZFIDExQjY7RDIzQjsxMTEwIDExNkUgMTFCNjsKK0QyM0M7RDIzQzsxMTEwIDExNkUgMTFCNztEMjNDOzExMTAgMTE2RSAxMUI3OworRDIzRDtEMjNEOzExMTAgMTE2RSAxMUI4O0QyM0Q7MTExMCAxMTZFIDExQjg7CitEMjNFO0QyM0U7MTExMCAxMTZFIDExQjk7RDIzRTsxMTEwIDExNkUgMTFCOTsKK0QyM0Y7RDIzRjsxMTEwIDExNkUgMTFCQTtEMjNGOzExMTAgMTE2RSAxMUJBOworRDI0MDtEMjQwOzExMTAgMTE2RSAxMUJCO0QyNDA7MTExMCAxMTZFIDExQkI7CitEMjQxO0QyNDE7MTExMCAxMTZFIDExQkM7RDI0MTsxMTEwIDExNkUgMTFCQzsKK0QyNDI7RDI0MjsxMTEwIDExNkUgMTFCRDtEMjQyOzExMTAgMTE2RSAxMUJEOworRDI0MztEMjQzOzExMTAgMTE2RSAxMUJFO0QyNDM7MTExMCAxMTZFIDExQkU7CitEMjQ0O0QyNDQ7MTExMCAxMTZFIDExQkY7RDI0NDsxMTEwIDExNkUgMTFCRjsKK0QyNDU7RDI0NTsxMTEwIDExNkUgMTFDMDtEMjQ1OzExMTAgMTE2RSAxMUMwOworRDI0NjtEMjQ2OzExMTAgMTE2RSAxMUMxO0QyNDY7MTExMCAxMTZFIDExQzE7CitEMjQ3O0QyNDc7MTExMCAxMTZFIDExQzI7RDI0NzsxMTEwIDExNkUgMTFDMjsKK0QyNDg7RDI0ODsxMTEwIDExNkY7RDI0ODsxMTEwIDExNkY7CitEMjQ5O0QyNDk7MTExMCAxMTZGIDExQTg7RDI0OTsxMTEwIDExNkYgMTFBODsKK0QyNEE7RDI0QTsxMTEwIDExNkYgMTFBOTtEMjRBOzExMTAgMTE2RiAxMUE5OworRDI0QjtEMjRCOzExMTAgMTE2RiAxMUFBO0QyNEI7MTExMCAxMTZGIDExQUE7CitEMjRDO0QyNEM7MTExMCAxMTZGIDExQUI7RDI0QzsxMTEwIDExNkYgMTFBQjsKK0QyNEQ7RDI0RDsxMTEwIDExNkYgMTFBQztEMjREOzExMTAgMTE2RiAxMUFDOworRDI0RTtEMjRFOzExMTAgMTE2RiAxMUFEO0QyNEU7MTExMCAxMTZGIDExQUQ7CitEMjRGO0QyNEY7MTExMCAxMTZGIDExQUU7RDI0RjsxMTEwIDExNkYgMTFBRTsKK0QyNTA7RDI1MDsxMTEwIDExNkYgMTFBRjtEMjUwOzExMTAgMTE2RiAxMUFGOworRDI1MTtEMjUxOzExMTAgMTE2RiAxMUIwO0QyNTE7MTExMCAxMTZGIDExQjA7CitEMjUyO0QyNTI7MTExMCAxMTZGIDExQjE7RDI1MjsxMTEwIDExNkYgMTFCMTsKK0QyNTM7RDI1MzsxMTEwIDExNkYgMTFCMjtEMjUzOzExMTAgMTE2RiAxMUIyOworRDI1NDtEMjU0OzExMTAgMTE2RiAxMUIzO0QyNTQ7MTExMCAxMTZGIDExQjM7CitEMjU1O0QyNTU7MTExMCAxMTZGIDExQjQ7RDI1NTsxMTEwIDExNkYgMTFCNDsKK0QyNTY7RDI1NjsxMTEwIDExNkYgMTFCNTtEMjU2OzExMTAgMTE2RiAxMUI1OworRDI1NztEMjU3OzExMTAgMTE2RiAxMUI2O0QyNTc7MTExMCAxMTZGIDExQjY7CitEMjU4O0QyNTg7MTExMCAxMTZGIDExQjc7RDI1ODsxMTEwIDExNkYgMTFCNzsKK0QyNTk7RDI1OTsxMTEwIDExNkYgMTFCODtEMjU5OzExMTAgMTE2RiAxMUI4OworRDI1QTtEMjVBOzExMTAgMTE2RiAxMUI5O0QyNUE7MTExMCAxMTZGIDExQjk7CitEMjVCO0QyNUI7MTExMCAxMTZGIDExQkE7RDI1QjsxMTEwIDExNkYgMTFCQTsKK0QyNUM7RDI1QzsxMTEwIDExNkYgMTFCQjtEMjVDOzExMTAgMTE2RiAxMUJCOworRDI1RDtEMjVEOzExMTAgMTE2RiAxMUJDO0QyNUQ7MTExMCAxMTZGIDExQkM7CitEMjVFO0QyNUU7MTExMCAxMTZGIDExQkQ7RDI1RTsxMTEwIDExNkYgMTFCRDsKK0QyNUY7RDI1RjsxMTEwIDExNkYgMTFCRTtEMjVGOzExMTAgMTE2RiAxMUJFOworRDI2MDtEMjYwOzExMTAgMTE2RiAxMUJGO0QyNjA7MTExMCAxMTZGIDExQkY7CitEMjYxO0QyNjE7MTExMCAxMTZGIDExQzA7RDI2MTsxMTEwIDExNkYgMTFDMDsKK0QyNjI7RDI2MjsxMTEwIDExNkYgMTFDMTtEMjYyOzExMTAgMTE2RiAxMUMxOworRDI2MztEMjYzOzExMTAgMTE2RiAxMUMyO0QyNjM7MTExMCAxMTZGIDExQzI7CitEMjY0O0QyNjQ7MTExMCAxMTcwO0QyNjQ7MTExMCAxMTcwOworRDI2NTtEMjY1OzExMTAgMTE3MCAxMUE4O0QyNjU7MTExMCAxMTcwIDExQTg7CitEMjY2O0QyNjY7MTExMCAxMTcwIDExQTk7RDI2NjsxMTEwIDExNzAgMTFBOTsKK0QyNjc7RDI2NzsxMTEwIDExNzAgMTFBQTtEMjY3OzExMTAgMTE3MCAxMUFBOworRDI2ODtEMjY4OzExMTAgMTE3MCAxMUFCO0QyNjg7MTExMCAxMTcwIDExQUI7CitEMjY5O0QyNjk7MTExMCAxMTcwIDExQUM7RDI2OTsxMTEwIDExNzAgMTFBQzsKK0QyNkE7RDI2QTsxMTEwIDExNzAgMTFBRDtEMjZBOzExMTAgMTE3MCAxMUFEOworRDI2QjtEMjZCOzExMTAgMTE3MCAxMUFFO0QyNkI7MTExMCAxMTcwIDExQUU7CitEMjZDO0QyNkM7MTExMCAxMTcwIDExQUY7RDI2QzsxMTEwIDExNzAgMTFBRjsKK0QyNkQ7RDI2RDsxMTEwIDExNzAgMTFCMDtEMjZEOzExMTAgMTE3MCAxMUIwOworRDI2RTtEMjZFOzExMTAgMTE3MCAxMUIxO0QyNkU7MTExMCAxMTcwIDExQjE7CitEMjZGO0QyNkY7MTExMCAxMTcwIDExQjI7RDI2RjsxMTEwIDExNzAgMTFCMjsKK0QyNzA7RDI3MDsxMTEwIDExNzAgMTFCMztEMjcwOzExMTAgMTE3MCAxMUIzOworRDI3MTtEMjcxOzExMTAgMTE3MCAxMUI0O0QyNzE7MTExMCAxMTcwIDExQjQ7CitEMjcyO0QyNzI7MTExMCAxMTcwIDExQjU7RDI3MjsxMTEwIDExNzAgMTFCNTsKK0QyNzM7RDI3MzsxMTEwIDExNzAgMTFCNjtEMjczOzExMTAgMTE3MCAxMUI2OworRDI3NDtEMjc0OzExMTAgMTE3MCAxMUI3O0QyNzQ7MTExMCAxMTcwIDExQjc7CitEMjc1O0QyNzU7MTExMCAxMTcwIDExQjg7RDI3NTsxMTEwIDExNzAgMTFCODsKK0QyNzY7RDI3NjsxMTEwIDExNzAgMTFCOTtEMjc2OzExMTAgMTE3MCAxMUI5OworRDI3NztEMjc3OzExMTAgMTE3MCAxMUJBO0QyNzc7MTExMCAxMTcwIDExQkE7CitEMjc4O0QyNzg7MTExMCAxMTcwIDExQkI7RDI3ODsxMTEwIDExNzAgMTFCQjsKK0QyNzk7RDI3OTsxMTEwIDExNzAgMTFCQztEMjc5OzExMTAgMTE3MCAxMUJDOworRDI3QTtEMjdBOzExMTAgMTE3MCAxMUJEO0QyN0E7MTExMCAxMTcwIDExQkQ7CitEMjdCO0QyN0I7MTExMCAxMTcwIDExQkU7RDI3QjsxMTEwIDExNzAgMTFCRTsKK0QyN0M7RDI3QzsxMTEwIDExNzAgMTFCRjtEMjdDOzExMTAgMTE3MCAxMUJGOworRDI3RDtEMjdEOzExMTAgMTE3MCAxMUMwO0QyN0Q7MTExMCAxMTcwIDExQzA7CitEMjdFO0QyN0U7MTExMCAxMTcwIDExQzE7RDI3RTsxMTEwIDExNzAgMTFDMTsKK0QyN0Y7RDI3RjsxMTEwIDExNzAgMTFDMjtEMjdGOzExMTAgMTE3MCAxMUMyOworRDI4MDtEMjgwOzExMTAgMTE3MTtEMjgwOzExMTAgMTE3MTsKK0QyODE7RDI4MTsxMTEwIDExNzEgMTFBODtEMjgxOzExMTAgMTE3MSAxMUE4OworRDI4MjtEMjgyOzExMTAgMTE3MSAxMUE5O0QyODI7MTExMCAxMTcxIDExQTk7CitEMjgzO0QyODM7MTExMCAxMTcxIDExQUE7RDI4MzsxMTEwIDExNzEgMTFBQTsKK0QyODQ7RDI4NDsxMTEwIDExNzEgMTFBQjtEMjg0OzExMTAgMTE3MSAxMUFCOworRDI4NTtEMjg1OzExMTAgMTE3MSAxMUFDO0QyODU7MTExMCAxMTcxIDExQUM7CitEMjg2O0QyODY7MTExMCAxMTcxIDExQUQ7RDI4NjsxMTEwIDExNzEgMTFBRDsKK0QyODc7RDI4NzsxMTEwIDExNzEgMTFBRTtEMjg3OzExMTAgMTE3MSAxMUFFOworRDI4ODtEMjg4OzExMTAgMTE3MSAxMUFGO0QyODg7MTExMCAxMTcxIDExQUY7CitEMjg5O0QyODk7MTExMCAxMTcxIDExQjA7RDI4OTsxMTEwIDExNzEgMTFCMDsKK0QyOEE7RDI4QTsxMTEwIDExNzEgMTFCMTtEMjhBOzExMTAgMTE3MSAxMUIxOworRDI4QjtEMjhCOzExMTAgMTE3MSAxMUIyO0QyOEI7MTExMCAxMTcxIDExQjI7CitEMjhDO0QyOEM7MTExMCAxMTcxIDExQjM7RDI4QzsxMTEwIDExNzEgMTFCMzsKK0QyOEQ7RDI4RDsxMTEwIDExNzEgMTFCNDtEMjhEOzExMTAgMTE3MSAxMUI0OworRDI4RTtEMjhFOzExMTAgMTE3MSAxMUI1O0QyOEU7MTExMCAxMTcxIDExQjU7CitEMjhGO0QyOEY7MTExMCAxMTcxIDExQjY7RDI4RjsxMTEwIDExNzEgMTFCNjsKK0QyOTA7RDI5MDsxMTEwIDExNzEgMTFCNztEMjkwOzExMTAgMTE3MSAxMUI3OworRDI5MTtEMjkxOzExMTAgMTE3MSAxMUI4O0QyOTE7MTExMCAxMTcxIDExQjg7CitEMjkyO0QyOTI7MTExMCAxMTcxIDExQjk7RDI5MjsxMTEwIDExNzEgMTFCOTsKK0QyOTM7RDI5MzsxMTEwIDExNzEgMTFCQTtEMjkzOzExMTAgMTE3MSAxMUJBOworRDI5NDtEMjk0OzExMTAgMTE3MSAxMUJCO0QyOTQ7MTExMCAxMTcxIDExQkI7CitEMjk1O0QyOTU7MTExMCAxMTcxIDExQkM7RDI5NTsxMTEwIDExNzEgMTFCQzsKK0QyOTY7RDI5NjsxMTEwIDExNzEgMTFCRDtEMjk2OzExMTAgMTE3MSAxMUJEOworRDI5NztEMjk3OzExMTAgMTE3MSAxMUJFO0QyOTc7MTExMCAxMTcxIDExQkU7CitEMjk4O0QyOTg7MTExMCAxMTcxIDExQkY7RDI5ODsxMTEwIDExNzEgMTFCRjsKK0QyOTk7RDI5OTsxMTEwIDExNzEgMTFDMDtEMjk5OzExMTAgMTE3MSAxMUMwOworRDI5QTtEMjlBOzExMTAgMTE3MSAxMUMxO0QyOUE7MTExMCAxMTcxIDExQzE7CitEMjlCO0QyOUI7MTExMCAxMTcxIDExQzI7RDI5QjsxMTEwIDExNzEgMTFDMjsKK0QyOUM7RDI5QzsxMTEwIDExNzI7RDI5QzsxMTEwIDExNzI7CitEMjlEO0QyOUQ7MTExMCAxMTcyIDExQTg7RDI5RDsxMTEwIDExNzIgMTFBODsKK0QyOUU7RDI5RTsxMTEwIDExNzIgMTFBOTtEMjlFOzExMTAgMTE3MiAxMUE5OworRDI5RjtEMjlGOzExMTAgMTE3MiAxMUFBO0QyOUY7MTExMCAxMTcyIDExQUE7CitEMkEwO0QyQTA7MTExMCAxMTcyIDExQUI7RDJBMDsxMTEwIDExNzIgMTFBQjsKK0QyQTE7RDJBMTsxMTEwIDExNzIgMTFBQztEMkExOzExMTAgMTE3MiAxMUFDOworRDJBMjtEMkEyOzExMTAgMTE3MiAxMUFEO0QyQTI7MTExMCAxMTcyIDExQUQ7CitEMkEzO0QyQTM7MTExMCAxMTcyIDExQUU7RDJBMzsxMTEwIDExNzIgMTFBRTsKK0QyQTQ7RDJBNDsxMTEwIDExNzIgMTFBRjtEMkE0OzExMTAgMTE3MiAxMUFGOworRDJBNTtEMkE1OzExMTAgMTE3MiAxMUIwO0QyQTU7MTExMCAxMTcyIDExQjA7CitEMkE2O0QyQTY7MTExMCAxMTcyIDExQjE7RDJBNjsxMTEwIDExNzIgMTFCMTsKK0QyQTc7RDJBNzsxMTEwIDExNzIgMTFCMjtEMkE3OzExMTAgMTE3MiAxMUIyOworRDJBODtEMkE4OzExMTAgMTE3MiAxMUIzO0QyQTg7MTExMCAxMTcyIDExQjM7CitEMkE5O0QyQTk7MTExMCAxMTcyIDExQjQ7RDJBOTsxMTEwIDExNzIgMTFCNDsKK0QyQUE7RDJBQTsxMTEwIDExNzIgMTFCNTtEMkFBOzExMTAgMTE3MiAxMUI1OworRDJBQjtEMkFCOzExMTAgMTE3MiAxMUI2O0QyQUI7MTExMCAxMTcyIDExQjY7CitEMkFDO0QyQUM7MTExMCAxMTcyIDExQjc7RDJBQzsxMTEwIDExNzIgMTFCNzsKK0QyQUQ7RDJBRDsxMTEwIDExNzIgMTFCODtEMkFEOzExMTAgMTE3MiAxMUI4OworRDJBRTtEMkFFOzExMTAgMTE3MiAxMUI5O0QyQUU7MTExMCAxMTcyIDExQjk7CitEMkFGO0QyQUY7MTExMCAxMTcyIDExQkE7RDJBRjsxMTEwIDExNzIgMTFCQTsKK0QyQjA7RDJCMDsxMTEwIDExNzIgMTFCQjtEMkIwOzExMTAgMTE3MiAxMUJCOworRDJCMTtEMkIxOzExMTAgMTE3MiAxMUJDO0QyQjE7MTExMCAxMTcyIDExQkM7CitEMkIyO0QyQjI7MTExMCAxMTcyIDExQkQ7RDJCMjsxMTEwIDExNzIgMTFCRDsKK0QyQjM7RDJCMzsxMTEwIDExNzIgMTFCRTtEMkIzOzExMTAgMTE3MiAxMUJFOworRDJCNDtEMkI0OzExMTAgMTE3MiAxMUJGO0QyQjQ7MTExMCAxMTcyIDExQkY7CitEMkI1O0QyQjU7MTExMCAxMTcyIDExQzA7RDJCNTsxMTEwIDExNzIgMTFDMDsKK0QyQjY7RDJCNjsxMTEwIDExNzIgMTFDMTtEMkI2OzExMTAgMTE3MiAxMUMxOworRDJCNztEMkI3OzExMTAgMTE3MiAxMUMyO0QyQjc7MTExMCAxMTcyIDExQzI7CitEMkI4O0QyQjg7MTExMCAxMTczO0QyQjg7MTExMCAxMTczOworRDJCOTtEMkI5OzExMTAgMTE3MyAxMUE4O0QyQjk7MTExMCAxMTczIDExQTg7CitEMkJBO0QyQkE7MTExMCAxMTczIDExQTk7RDJCQTsxMTEwIDExNzMgMTFBOTsKK0QyQkI7RDJCQjsxMTEwIDExNzMgMTFBQTtEMkJCOzExMTAgMTE3MyAxMUFBOworRDJCQztEMkJDOzExMTAgMTE3MyAxMUFCO0QyQkM7MTExMCAxMTczIDExQUI7CitEMkJEO0QyQkQ7MTExMCAxMTczIDExQUM7RDJCRDsxMTEwIDExNzMgMTFBQzsKK0QyQkU7RDJCRTsxMTEwIDExNzMgMTFBRDtEMkJFOzExMTAgMTE3MyAxMUFEOworRDJCRjtEMkJGOzExMTAgMTE3MyAxMUFFO0QyQkY7MTExMCAxMTczIDExQUU7CitEMkMwO0QyQzA7MTExMCAxMTczIDExQUY7RDJDMDsxMTEwIDExNzMgMTFBRjsKK0QyQzE7RDJDMTsxMTEwIDExNzMgMTFCMDtEMkMxOzExMTAgMTE3MyAxMUIwOworRDJDMjtEMkMyOzExMTAgMTE3MyAxMUIxO0QyQzI7MTExMCAxMTczIDExQjE7CitEMkMzO0QyQzM7MTExMCAxMTczIDExQjI7RDJDMzsxMTEwIDExNzMgMTFCMjsKK0QyQzQ7RDJDNDsxMTEwIDExNzMgMTFCMztEMkM0OzExMTAgMTE3MyAxMUIzOworRDJDNTtEMkM1OzExMTAgMTE3MyAxMUI0O0QyQzU7MTExMCAxMTczIDExQjQ7CitEMkM2O0QyQzY7MTExMCAxMTczIDExQjU7RDJDNjsxMTEwIDExNzMgMTFCNTsKK0QyQzc7RDJDNzsxMTEwIDExNzMgMTFCNjtEMkM3OzExMTAgMTE3MyAxMUI2OworRDJDODtEMkM4OzExMTAgMTE3MyAxMUI3O0QyQzg7MTExMCAxMTczIDExQjc7CitEMkM5O0QyQzk7MTExMCAxMTczIDExQjg7RDJDOTsxMTEwIDExNzMgMTFCODsKK0QyQ0E7RDJDQTsxMTEwIDExNzMgMTFCOTtEMkNBOzExMTAgMTE3MyAxMUI5OworRDJDQjtEMkNCOzExMTAgMTE3MyAxMUJBO0QyQ0I7MTExMCAxMTczIDExQkE7CitEMkNDO0QyQ0M7MTExMCAxMTczIDExQkI7RDJDQzsxMTEwIDExNzMgMTFCQjsKK0QyQ0Q7RDJDRDsxMTEwIDExNzMgMTFCQztEMkNEOzExMTAgMTE3MyAxMUJDOworRDJDRTtEMkNFOzExMTAgMTE3MyAxMUJEO0QyQ0U7MTExMCAxMTczIDExQkQ7CitEMkNGO0QyQ0Y7MTExMCAxMTczIDExQkU7RDJDRjsxMTEwIDExNzMgMTFCRTsKK0QyRDA7RDJEMDsxMTEwIDExNzMgMTFCRjtEMkQwOzExMTAgMTE3MyAxMUJGOworRDJEMTtEMkQxOzExMTAgMTE3MyAxMUMwO0QyRDE7MTExMCAxMTczIDExQzA7CitEMkQyO0QyRDI7MTExMCAxMTczIDExQzE7RDJEMjsxMTEwIDExNzMgMTFDMTsKK0QyRDM7RDJEMzsxMTEwIDExNzMgMTFDMjtEMkQzOzExMTAgMTE3MyAxMUMyOworRDJENDtEMkQ0OzExMTAgMTE3NDtEMkQ0OzExMTAgMTE3NDsKK0QyRDU7RDJENTsxMTEwIDExNzQgMTFBODtEMkQ1OzExMTAgMTE3NCAxMUE4OworRDJENjtEMkQ2OzExMTAgMTE3NCAxMUE5O0QyRDY7MTExMCAxMTc0IDExQTk7CitEMkQ3O0QyRDc7MTExMCAxMTc0IDExQUE7RDJENzsxMTEwIDExNzQgMTFBQTsKK0QyRDg7RDJEODsxMTEwIDExNzQgMTFBQjtEMkQ4OzExMTAgMTE3NCAxMUFCOworRDJEOTtEMkQ5OzExMTAgMTE3NCAxMUFDO0QyRDk7MTExMCAxMTc0IDExQUM7CitEMkRBO0QyREE7MTExMCAxMTc0IDExQUQ7RDJEQTsxMTEwIDExNzQgMTFBRDsKK0QyREI7RDJEQjsxMTEwIDExNzQgMTFBRTtEMkRCOzExMTAgMTE3NCAxMUFFOworRDJEQztEMkRDOzExMTAgMTE3NCAxMUFGO0QyREM7MTExMCAxMTc0IDExQUY7CitEMkREO0QyREQ7MTExMCAxMTc0IDExQjA7RDJERDsxMTEwIDExNzQgMTFCMDsKK0QyREU7RDJERTsxMTEwIDExNzQgMTFCMTtEMkRFOzExMTAgMTE3NCAxMUIxOworRDJERjtEMkRGOzExMTAgMTE3NCAxMUIyO0QyREY7MTExMCAxMTc0IDExQjI7CitEMkUwO0QyRTA7MTExMCAxMTc0IDExQjM7RDJFMDsxMTEwIDExNzQgMTFCMzsKK0QyRTE7RDJFMTsxMTEwIDExNzQgMTFCNDtEMkUxOzExMTAgMTE3NCAxMUI0OworRDJFMjtEMkUyOzExMTAgMTE3NCAxMUI1O0QyRTI7MTExMCAxMTc0IDExQjU7CitEMkUzO0QyRTM7MTExMCAxMTc0IDExQjY7RDJFMzsxMTEwIDExNzQgMTFCNjsKK0QyRTQ7RDJFNDsxMTEwIDExNzQgMTFCNztEMkU0OzExMTAgMTE3NCAxMUI3OworRDJFNTtEMkU1OzExMTAgMTE3NCAxMUI4O0QyRTU7MTExMCAxMTc0IDExQjg7CitEMkU2O0QyRTY7MTExMCAxMTc0IDExQjk7RDJFNjsxMTEwIDExNzQgMTFCOTsKK0QyRTc7RDJFNzsxMTEwIDExNzQgMTFCQTtEMkU3OzExMTAgMTE3NCAxMUJBOworRDJFODtEMkU4OzExMTAgMTE3NCAxMUJCO0QyRTg7MTExMCAxMTc0IDExQkI7CitEMkU5O0QyRTk7MTExMCAxMTc0IDExQkM7RDJFOTsxMTEwIDExNzQgMTFCQzsKK0QyRUE7RDJFQTsxMTEwIDExNzQgMTFCRDtEMkVBOzExMTAgMTE3NCAxMUJEOworRDJFQjtEMkVCOzExMTAgMTE3NCAxMUJFO0QyRUI7MTExMCAxMTc0IDExQkU7CitEMkVDO0QyRUM7MTExMCAxMTc0IDExQkY7RDJFQzsxMTEwIDExNzQgMTFCRjsKK0QyRUQ7RDJFRDsxMTEwIDExNzQgMTFDMDtEMkVEOzExMTAgMTE3NCAxMUMwOworRDJFRTtEMkVFOzExMTAgMTE3NCAxMUMxO0QyRUU7MTExMCAxMTc0IDExQzE7CitEMkVGO0QyRUY7MTExMCAxMTc0IDExQzI7RDJFRjsxMTEwIDExNzQgMTFDMjsKK0QyRjA7RDJGMDsxMTEwIDExNzU7RDJGMDsxMTEwIDExNzU7CitEMkYxO0QyRjE7MTExMCAxMTc1IDExQTg7RDJGMTsxMTEwIDExNzUgMTFBODsKK0QyRjI7RDJGMjsxMTEwIDExNzUgMTFBOTtEMkYyOzExMTAgMTE3NSAxMUE5OworRDJGMztEMkYzOzExMTAgMTE3NSAxMUFBO0QyRjM7MTExMCAxMTc1IDExQUE7CitEMkY0O0QyRjQ7MTExMCAxMTc1IDExQUI7RDJGNDsxMTEwIDExNzUgMTFBQjsKK0QyRjU7RDJGNTsxMTEwIDExNzUgMTFBQztEMkY1OzExMTAgMTE3NSAxMUFDOworRDJGNjtEMkY2OzExMTAgMTE3NSAxMUFEO0QyRjY7MTExMCAxMTc1IDExQUQ7CitEMkY3O0QyRjc7MTExMCAxMTc1IDExQUU7RDJGNzsxMTEwIDExNzUgMTFBRTsKK0QyRjg7RDJGODsxMTEwIDExNzUgMTFBRjtEMkY4OzExMTAgMTE3NSAxMUFGOworRDJGOTtEMkY5OzExMTAgMTE3NSAxMUIwO0QyRjk7MTExMCAxMTc1IDExQjA7CitEMkZBO0QyRkE7MTExMCAxMTc1IDExQjE7RDJGQTsxMTEwIDExNzUgMTFCMTsKK0QyRkI7RDJGQjsxMTEwIDExNzUgMTFCMjtEMkZCOzExMTAgMTE3NSAxMUIyOworRDJGQztEMkZDOzExMTAgMTE3NSAxMUIzO0QyRkM7MTExMCAxMTc1IDExQjM7CitEMkZEO0QyRkQ7MTExMCAxMTc1IDExQjQ7RDJGRDsxMTEwIDExNzUgMTFCNDsKK0QyRkU7RDJGRTsxMTEwIDExNzUgMTFCNTtEMkZFOzExMTAgMTE3NSAxMUI1OworRDJGRjtEMkZGOzExMTAgMTE3NSAxMUI2O0QyRkY7MTExMCAxMTc1IDExQjY7CitEMzAwO0QzMDA7MTExMCAxMTc1IDExQjc7RDMwMDsxMTEwIDExNzUgMTFCNzsKK0QzMDE7RDMwMTsxMTEwIDExNzUgMTFCODtEMzAxOzExMTAgMTE3NSAxMUI4OworRDMwMjtEMzAyOzExMTAgMTE3NSAxMUI5O0QzMDI7MTExMCAxMTc1IDExQjk7CitEMzAzO0QzMDM7MTExMCAxMTc1IDExQkE7RDMwMzsxMTEwIDExNzUgMTFCQTsKK0QzMDQ7RDMwNDsxMTEwIDExNzUgMTFCQjtEMzA0OzExMTAgMTE3NSAxMUJCOworRDMwNTtEMzA1OzExMTAgMTE3NSAxMUJDO0QzMDU7MTExMCAxMTc1IDExQkM7CitEMzA2O0QzMDY7MTExMCAxMTc1IDExQkQ7RDMwNjsxMTEwIDExNzUgMTFCRDsKK0QzMDc7RDMwNzsxMTEwIDExNzUgMTFCRTtEMzA3OzExMTAgMTE3NSAxMUJFOworRDMwODtEMzA4OzExMTAgMTE3NSAxMUJGO0QzMDg7MTExMCAxMTc1IDExQkY7CitEMzA5O0QzMDk7MTExMCAxMTc1IDExQzA7RDMwOTsxMTEwIDExNzUgMTFDMDsKK0QzMEE7RDMwQTsxMTEwIDExNzUgMTFDMTtEMzBBOzExMTAgMTE3NSAxMUMxOworRDMwQjtEMzBCOzExMTAgMTE3NSAxMUMyO0QzMEI7MTExMCAxMTc1IDExQzI7CitEMzBDO0QzMEM7MTExMSAxMTYxO0QzMEM7MTExMSAxMTYxOworRDMwRDtEMzBEOzExMTEgMTE2MSAxMUE4O0QzMEQ7MTExMSAxMTYxIDExQTg7CitEMzBFO0QzMEU7MTExMSAxMTYxIDExQTk7RDMwRTsxMTExIDExNjEgMTFBOTsKK0QzMEY7RDMwRjsxMTExIDExNjEgMTFBQTtEMzBGOzExMTEgMTE2MSAxMUFBOworRDMxMDtEMzEwOzExMTEgMTE2MSAxMUFCO0QzMTA7MTExMSAxMTYxIDExQUI7CitEMzExO0QzMTE7MTExMSAxMTYxIDExQUM7RDMxMTsxMTExIDExNjEgMTFBQzsKK0QzMTI7RDMxMjsxMTExIDExNjEgMTFBRDtEMzEyOzExMTEgMTE2MSAxMUFEOworRDMxMztEMzEzOzExMTEgMTE2MSAxMUFFO0QzMTM7MTExMSAxMTYxIDExQUU7CitEMzE0O0QzMTQ7MTExMSAxMTYxIDExQUY7RDMxNDsxMTExIDExNjEgMTFBRjsKK0QzMTU7RDMxNTsxMTExIDExNjEgMTFCMDtEMzE1OzExMTEgMTE2MSAxMUIwOworRDMxNjtEMzE2OzExMTEgMTE2MSAxMUIxO0QzMTY7MTExMSAxMTYxIDExQjE7CitEMzE3O0QzMTc7MTExMSAxMTYxIDExQjI7RDMxNzsxMTExIDExNjEgMTFCMjsKK0QzMTg7RDMxODsxMTExIDExNjEgMTFCMztEMzE4OzExMTEgMTE2MSAxMUIzOworRDMxOTtEMzE5OzExMTEgMTE2MSAxMUI0O0QzMTk7MTExMSAxMTYxIDExQjQ7CitEMzFBO0QzMUE7MTExMSAxMTYxIDExQjU7RDMxQTsxMTExIDExNjEgMTFCNTsKK0QzMUI7RDMxQjsxMTExIDExNjEgMTFCNjtEMzFCOzExMTEgMTE2MSAxMUI2OworRDMxQztEMzFDOzExMTEgMTE2MSAxMUI3O0QzMUM7MTExMSAxMTYxIDExQjc7CitEMzFEO0QzMUQ7MTExMSAxMTYxIDExQjg7RDMxRDsxMTExIDExNjEgMTFCODsKK0QzMUU7RDMxRTsxMTExIDExNjEgMTFCOTtEMzFFOzExMTEgMTE2MSAxMUI5OworRDMxRjtEMzFGOzExMTEgMTE2MSAxMUJBO0QzMUY7MTExMSAxMTYxIDExQkE7CitEMzIwO0QzMjA7MTExMSAxMTYxIDExQkI7RDMyMDsxMTExIDExNjEgMTFCQjsKK0QzMjE7RDMyMTsxMTExIDExNjEgMTFCQztEMzIxOzExMTEgMTE2MSAxMUJDOworRDMyMjtEMzIyOzExMTEgMTE2MSAxMUJEO0QzMjI7MTExMSAxMTYxIDExQkQ7CitEMzIzO0QzMjM7MTExMSAxMTYxIDExQkU7RDMyMzsxMTExIDExNjEgMTFCRTsKK0QzMjQ7RDMyNDsxMTExIDExNjEgMTFCRjtEMzI0OzExMTEgMTE2MSAxMUJGOworRDMyNTtEMzI1OzExMTEgMTE2MSAxMUMwO0QzMjU7MTExMSAxMTYxIDExQzA7CitEMzI2O0QzMjY7MTExMSAxMTYxIDExQzE7RDMyNjsxMTExIDExNjEgMTFDMTsKK0QzMjc7RDMyNzsxMTExIDExNjEgMTFDMjtEMzI3OzExMTEgMTE2MSAxMUMyOworRDMyODtEMzI4OzExMTEgMTE2MjtEMzI4OzExMTEgMTE2MjsKK0QzMjk7RDMyOTsxMTExIDExNjIgMTFBODtEMzI5OzExMTEgMTE2MiAxMUE4OworRDMyQTtEMzJBOzExMTEgMTE2MiAxMUE5O0QzMkE7MTExMSAxMTYyIDExQTk7CitEMzJCO0QzMkI7MTExMSAxMTYyIDExQUE7RDMyQjsxMTExIDExNjIgMTFBQTsKK0QzMkM7RDMyQzsxMTExIDExNjIgMTFBQjtEMzJDOzExMTEgMTE2MiAxMUFCOworRDMyRDtEMzJEOzExMTEgMTE2MiAxMUFDO0QzMkQ7MTExMSAxMTYyIDExQUM7CitEMzJFO0QzMkU7MTExMSAxMTYyIDExQUQ7RDMyRTsxMTExIDExNjIgMTFBRDsKK0QzMkY7RDMyRjsxMTExIDExNjIgMTFBRTtEMzJGOzExMTEgMTE2MiAxMUFFOworRDMzMDtEMzMwOzExMTEgMTE2MiAxMUFGO0QzMzA7MTExMSAxMTYyIDExQUY7CitEMzMxO0QzMzE7MTExMSAxMTYyIDExQjA7RDMzMTsxMTExIDExNjIgMTFCMDsKK0QzMzI7RDMzMjsxMTExIDExNjIgMTFCMTtEMzMyOzExMTEgMTE2MiAxMUIxOworRDMzMztEMzMzOzExMTEgMTE2MiAxMUIyO0QzMzM7MTExMSAxMTYyIDExQjI7CitEMzM0O0QzMzQ7MTExMSAxMTYyIDExQjM7RDMzNDsxMTExIDExNjIgMTFCMzsKK0QzMzU7RDMzNTsxMTExIDExNjIgMTFCNDtEMzM1OzExMTEgMTE2MiAxMUI0OworRDMzNjtEMzM2OzExMTEgMTE2MiAxMUI1O0QzMzY7MTExMSAxMTYyIDExQjU7CitEMzM3O0QzMzc7MTExMSAxMTYyIDExQjY7RDMzNzsxMTExIDExNjIgMTFCNjsKK0QzMzg7RDMzODsxMTExIDExNjIgMTFCNztEMzM4OzExMTEgMTE2MiAxMUI3OworRDMzOTtEMzM5OzExMTEgMTE2MiAxMUI4O0QzMzk7MTExMSAxMTYyIDExQjg7CitEMzNBO0QzM0E7MTExMSAxMTYyIDExQjk7RDMzQTsxMTExIDExNjIgMTFCOTsKK0QzM0I7RDMzQjsxMTExIDExNjIgMTFCQTtEMzNCOzExMTEgMTE2MiAxMUJBOworRDMzQztEMzNDOzExMTEgMTE2MiAxMUJCO0QzM0M7MTExMSAxMTYyIDExQkI7CitEMzNEO0QzM0Q7MTExMSAxMTYyIDExQkM7RDMzRDsxMTExIDExNjIgMTFCQzsKK0QzM0U7RDMzRTsxMTExIDExNjIgMTFCRDtEMzNFOzExMTEgMTE2MiAxMUJEOworRDMzRjtEMzNGOzExMTEgMTE2MiAxMUJFO0QzM0Y7MTExMSAxMTYyIDExQkU7CitEMzQwO0QzNDA7MTExMSAxMTYyIDExQkY7RDM0MDsxMTExIDExNjIgMTFCRjsKK0QzNDE7RDM0MTsxMTExIDExNjIgMTFDMDtEMzQxOzExMTEgMTE2MiAxMUMwOworRDM0MjtEMzQyOzExMTEgMTE2MiAxMUMxO0QzNDI7MTExMSAxMTYyIDExQzE7CitEMzQzO0QzNDM7MTExMSAxMTYyIDExQzI7RDM0MzsxMTExIDExNjIgMTFDMjsKK0QzNDQ7RDM0NDsxMTExIDExNjM7RDM0NDsxMTExIDExNjM7CitEMzQ1O0QzNDU7MTExMSAxMTYzIDExQTg7RDM0NTsxMTExIDExNjMgMTFBODsKK0QzNDY7RDM0NjsxMTExIDExNjMgMTFBOTtEMzQ2OzExMTEgMTE2MyAxMUE5OworRDM0NztEMzQ3OzExMTEgMTE2MyAxMUFBO0QzNDc7MTExMSAxMTYzIDExQUE7CitEMzQ4O0QzNDg7MTExMSAxMTYzIDExQUI7RDM0ODsxMTExIDExNjMgMTFBQjsKK0QzNDk7RDM0OTsxMTExIDExNjMgMTFBQztEMzQ5OzExMTEgMTE2MyAxMUFDOworRDM0QTtEMzRBOzExMTEgMTE2MyAxMUFEO0QzNEE7MTExMSAxMTYzIDExQUQ7CitEMzRCO0QzNEI7MTExMSAxMTYzIDExQUU7RDM0QjsxMTExIDExNjMgMTFBRTsKK0QzNEM7RDM0QzsxMTExIDExNjMgMTFBRjtEMzRDOzExMTEgMTE2MyAxMUFGOworRDM0RDtEMzREOzExMTEgMTE2MyAxMUIwO0QzNEQ7MTExMSAxMTYzIDExQjA7CitEMzRFO0QzNEU7MTExMSAxMTYzIDExQjE7RDM0RTsxMTExIDExNjMgMTFCMTsKK0QzNEY7RDM0RjsxMTExIDExNjMgMTFCMjtEMzRGOzExMTEgMTE2MyAxMUIyOworRDM1MDtEMzUwOzExMTEgMTE2MyAxMUIzO0QzNTA7MTExMSAxMTYzIDExQjM7CitEMzUxO0QzNTE7MTExMSAxMTYzIDExQjQ7RDM1MTsxMTExIDExNjMgMTFCNDsKK0QzNTI7RDM1MjsxMTExIDExNjMgMTFCNTtEMzUyOzExMTEgMTE2MyAxMUI1OworRDM1MztEMzUzOzExMTEgMTE2MyAxMUI2O0QzNTM7MTExMSAxMTYzIDExQjY7CitEMzU0O0QzNTQ7MTExMSAxMTYzIDExQjc7RDM1NDsxMTExIDExNjMgMTFCNzsKK0QzNTU7RDM1NTsxMTExIDExNjMgMTFCODtEMzU1OzExMTEgMTE2MyAxMUI4OworRDM1NjtEMzU2OzExMTEgMTE2MyAxMUI5O0QzNTY7MTExMSAxMTYzIDExQjk7CitEMzU3O0QzNTc7MTExMSAxMTYzIDExQkE7RDM1NzsxMTExIDExNjMgMTFCQTsKK0QzNTg7RDM1ODsxMTExIDExNjMgMTFCQjtEMzU4OzExMTEgMTE2MyAxMUJCOworRDM1OTtEMzU5OzExMTEgMTE2MyAxMUJDO0QzNTk7MTExMSAxMTYzIDExQkM7CitEMzVBO0QzNUE7MTExMSAxMTYzIDExQkQ7RDM1QTsxMTExIDExNjMgMTFCRDsKK0QzNUI7RDM1QjsxMTExIDExNjMgMTFCRTtEMzVCOzExMTEgMTE2MyAxMUJFOworRDM1QztEMzVDOzExMTEgMTE2MyAxMUJGO0QzNUM7MTExMSAxMTYzIDExQkY7CitEMzVEO0QzNUQ7MTExMSAxMTYzIDExQzA7RDM1RDsxMTExIDExNjMgMTFDMDsKK0QzNUU7RDM1RTsxMTExIDExNjMgMTFDMTtEMzVFOzExMTEgMTE2MyAxMUMxOworRDM1RjtEMzVGOzExMTEgMTE2MyAxMUMyO0QzNUY7MTExMSAxMTYzIDExQzI7CitEMzYwO0QzNjA7MTExMSAxMTY0O0QzNjA7MTExMSAxMTY0OworRDM2MTtEMzYxOzExMTEgMTE2NCAxMUE4O0QzNjE7MTExMSAxMTY0IDExQTg7CitEMzYyO0QzNjI7MTExMSAxMTY0IDExQTk7RDM2MjsxMTExIDExNjQgMTFBOTsKK0QzNjM7RDM2MzsxMTExIDExNjQgMTFBQTtEMzYzOzExMTEgMTE2NCAxMUFBOworRDM2NDtEMzY0OzExMTEgMTE2NCAxMUFCO0QzNjQ7MTExMSAxMTY0IDExQUI7CitEMzY1O0QzNjU7MTExMSAxMTY0IDExQUM7RDM2NTsxMTExIDExNjQgMTFBQzsKK0QzNjY7RDM2NjsxMTExIDExNjQgMTFBRDtEMzY2OzExMTEgMTE2NCAxMUFEOworRDM2NztEMzY3OzExMTEgMTE2NCAxMUFFO0QzNjc7MTExMSAxMTY0IDExQUU7CitEMzY4O0QzNjg7MTExMSAxMTY0IDExQUY7RDM2ODsxMTExIDExNjQgMTFBRjsKK0QzNjk7RDM2OTsxMTExIDExNjQgMTFCMDtEMzY5OzExMTEgMTE2NCAxMUIwOworRDM2QTtEMzZBOzExMTEgMTE2NCAxMUIxO0QzNkE7MTExMSAxMTY0IDExQjE7CitEMzZCO0QzNkI7MTExMSAxMTY0IDExQjI7RDM2QjsxMTExIDExNjQgMTFCMjsKK0QzNkM7RDM2QzsxMTExIDExNjQgMTFCMztEMzZDOzExMTEgMTE2NCAxMUIzOworRDM2RDtEMzZEOzExMTEgMTE2NCAxMUI0O0QzNkQ7MTExMSAxMTY0IDExQjQ7CitEMzZFO0QzNkU7MTExMSAxMTY0IDExQjU7RDM2RTsxMTExIDExNjQgMTFCNTsKK0QzNkY7RDM2RjsxMTExIDExNjQgMTFCNjtEMzZGOzExMTEgMTE2NCAxMUI2OworRDM3MDtEMzcwOzExMTEgMTE2NCAxMUI3O0QzNzA7MTExMSAxMTY0IDExQjc7CitEMzcxO0QzNzE7MTExMSAxMTY0IDExQjg7RDM3MTsxMTExIDExNjQgMTFCODsKK0QzNzI7RDM3MjsxMTExIDExNjQgMTFCOTtEMzcyOzExMTEgMTE2NCAxMUI5OworRDM3MztEMzczOzExMTEgMTE2NCAxMUJBO0QzNzM7MTExMSAxMTY0IDExQkE7CitEMzc0O0QzNzQ7MTExMSAxMTY0IDExQkI7RDM3NDsxMTExIDExNjQgMTFCQjsKK0QzNzU7RDM3NTsxMTExIDExNjQgMTFCQztEMzc1OzExMTEgMTE2NCAxMUJDOworRDM3NjtEMzc2OzExMTEgMTE2NCAxMUJEO0QzNzY7MTExMSAxMTY0IDExQkQ7CitEMzc3O0QzNzc7MTExMSAxMTY0IDExQkU7RDM3NzsxMTExIDExNjQgMTFCRTsKK0QzNzg7RDM3ODsxMTExIDExNjQgMTFCRjtEMzc4OzExMTEgMTE2NCAxMUJGOworRDM3OTtEMzc5OzExMTEgMTE2NCAxMUMwO0QzNzk7MTExMSAxMTY0IDExQzA7CitEMzdBO0QzN0E7MTExMSAxMTY0IDExQzE7RDM3QTsxMTExIDExNjQgMTFDMTsKK0QzN0I7RDM3QjsxMTExIDExNjQgMTFDMjtEMzdCOzExMTEgMTE2NCAxMUMyOworRDM3QztEMzdDOzExMTEgMTE2NTtEMzdDOzExMTEgMTE2NTsKK0QzN0Q7RDM3RDsxMTExIDExNjUgMTFBODtEMzdEOzExMTEgMTE2NSAxMUE4OworRDM3RTtEMzdFOzExMTEgMTE2NSAxMUE5O0QzN0U7MTExMSAxMTY1IDExQTk7CitEMzdGO0QzN0Y7MTExMSAxMTY1IDExQUE7RDM3RjsxMTExIDExNjUgMTFBQTsKK0QzODA7RDM4MDsxMTExIDExNjUgMTFBQjtEMzgwOzExMTEgMTE2NSAxMUFCOworRDM4MTtEMzgxOzExMTEgMTE2NSAxMUFDO0QzODE7MTExMSAxMTY1IDExQUM7CitEMzgyO0QzODI7MTExMSAxMTY1IDExQUQ7RDM4MjsxMTExIDExNjUgMTFBRDsKK0QzODM7RDM4MzsxMTExIDExNjUgMTFBRTtEMzgzOzExMTEgMTE2NSAxMUFFOworRDM4NDtEMzg0OzExMTEgMTE2NSAxMUFGO0QzODQ7MTExMSAxMTY1IDExQUY7CitEMzg1O0QzODU7MTExMSAxMTY1IDExQjA7RDM4NTsxMTExIDExNjUgMTFCMDsKK0QzODY7RDM4NjsxMTExIDExNjUgMTFCMTtEMzg2OzExMTEgMTE2NSAxMUIxOworRDM4NztEMzg3OzExMTEgMTE2NSAxMUIyO0QzODc7MTExMSAxMTY1IDExQjI7CitEMzg4O0QzODg7MTExMSAxMTY1IDExQjM7RDM4ODsxMTExIDExNjUgMTFCMzsKK0QzODk7RDM4OTsxMTExIDExNjUgMTFCNDtEMzg5OzExMTEgMTE2NSAxMUI0OworRDM4QTtEMzhBOzExMTEgMTE2NSAxMUI1O0QzOEE7MTExMSAxMTY1IDExQjU7CitEMzhCO0QzOEI7MTExMSAxMTY1IDExQjY7RDM4QjsxMTExIDExNjUgMTFCNjsKK0QzOEM7RDM4QzsxMTExIDExNjUgMTFCNztEMzhDOzExMTEgMTE2NSAxMUI3OworRDM4RDtEMzhEOzExMTEgMTE2NSAxMUI4O0QzOEQ7MTExMSAxMTY1IDExQjg7CitEMzhFO0QzOEU7MTExMSAxMTY1IDExQjk7RDM4RTsxMTExIDExNjUgMTFCOTsKK0QzOEY7RDM4RjsxMTExIDExNjUgMTFCQTtEMzhGOzExMTEgMTE2NSAxMUJBOworRDM5MDtEMzkwOzExMTEgMTE2NSAxMUJCO0QzOTA7MTExMSAxMTY1IDExQkI7CitEMzkxO0QzOTE7MTExMSAxMTY1IDExQkM7RDM5MTsxMTExIDExNjUgMTFCQzsKK0QzOTI7RDM5MjsxMTExIDExNjUgMTFCRDtEMzkyOzExMTEgMTE2NSAxMUJEOworRDM5MztEMzkzOzExMTEgMTE2NSAxMUJFO0QzOTM7MTExMSAxMTY1IDExQkU7CitEMzk0O0QzOTQ7MTExMSAxMTY1IDExQkY7RDM5NDsxMTExIDExNjUgMTFCRjsKK0QzOTU7RDM5NTsxMTExIDExNjUgMTFDMDtEMzk1OzExMTEgMTE2NSAxMUMwOworRDM5NjtEMzk2OzExMTEgMTE2NSAxMUMxO0QzOTY7MTExMSAxMTY1IDExQzE7CitEMzk3O0QzOTc7MTExMSAxMTY1IDExQzI7RDM5NzsxMTExIDExNjUgMTFDMjsKK0QzOTg7RDM5ODsxMTExIDExNjY7RDM5ODsxMTExIDExNjY7CitEMzk5O0QzOTk7MTExMSAxMTY2IDExQTg7RDM5OTsxMTExIDExNjYgMTFBODsKK0QzOUE7RDM5QTsxMTExIDExNjYgMTFBOTtEMzlBOzExMTEgMTE2NiAxMUE5OworRDM5QjtEMzlCOzExMTEgMTE2NiAxMUFBO0QzOUI7MTExMSAxMTY2IDExQUE7CitEMzlDO0QzOUM7MTExMSAxMTY2IDExQUI7RDM5QzsxMTExIDExNjYgMTFBQjsKK0QzOUQ7RDM5RDsxMTExIDExNjYgMTFBQztEMzlEOzExMTEgMTE2NiAxMUFDOworRDM5RTtEMzlFOzExMTEgMTE2NiAxMUFEO0QzOUU7MTExMSAxMTY2IDExQUQ7CitEMzlGO0QzOUY7MTExMSAxMTY2IDExQUU7RDM5RjsxMTExIDExNjYgMTFBRTsKK0QzQTA7RDNBMDsxMTExIDExNjYgMTFBRjtEM0EwOzExMTEgMTE2NiAxMUFGOworRDNBMTtEM0ExOzExMTEgMTE2NiAxMUIwO0QzQTE7MTExMSAxMTY2IDExQjA7CitEM0EyO0QzQTI7MTExMSAxMTY2IDExQjE7RDNBMjsxMTExIDExNjYgMTFCMTsKK0QzQTM7RDNBMzsxMTExIDExNjYgMTFCMjtEM0EzOzExMTEgMTE2NiAxMUIyOworRDNBNDtEM0E0OzExMTEgMTE2NiAxMUIzO0QzQTQ7MTExMSAxMTY2IDExQjM7CitEM0E1O0QzQTU7MTExMSAxMTY2IDExQjQ7RDNBNTsxMTExIDExNjYgMTFCNDsKK0QzQTY7RDNBNjsxMTExIDExNjYgMTFCNTtEM0E2OzExMTEgMTE2NiAxMUI1OworRDNBNztEM0E3OzExMTEgMTE2NiAxMUI2O0QzQTc7MTExMSAxMTY2IDExQjY7CitEM0E4O0QzQTg7MTExMSAxMTY2IDExQjc7RDNBODsxMTExIDExNjYgMTFCNzsKK0QzQTk7RDNBOTsxMTExIDExNjYgMTFCODtEM0E5OzExMTEgMTE2NiAxMUI4OworRDNBQTtEM0FBOzExMTEgMTE2NiAxMUI5O0QzQUE7MTExMSAxMTY2IDExQjk7CitEM0FCO0QzQUI7MTExMSAxMTY2IDExQkE7RDNBQjsxMTExIDExNjYgMTFCQTsKK0QzQUM7RDNBQzsxMTExIDExNjYgMTFCQjtEM0FDOzExMTEgMTE2NiAxMUJCOworRDNBRDtEM0FEOzExMTEgMTE2NiAxMUJDO0QzQUQ7MTExMSAxMTY2IDExQkM7CitEM0FFO0QzQUU7MTExMSAxMTY2IDExQkQ7RDNBRTsxMTExIDExNjYgMTFCRDsKK0QzQUY7RDNBRjsxMTExIDExNjYgMTFCRTtEM0FGOzExMTEgMTE2NiAxMUJFOworRDNCMDtEM0IwOzExMTEgMTE2NiAxMUJGO0QzQjA7MTExMSAxMTY2IDExQkY7CitEM0IxO0QzQjE7MTExMSAxMTY2IDExQzA7RDNCMTsxMTExIDExNjYgMTFDMDsKK0QzQjI7RDNCMjsxMTExIDExNjYgMTFDMTtEM0IyOzExMTEgMTE2NiAxMUMxOworRDNCMztEM0IzOzExMTEgMTE2NiAxMUMyO0QzQjM7MTExMSAxMTY2IDExQzI7CitEM0I0O0QzQjQ7MTExMSAxMTY3O0QzQjQ7MTExMSAxMTY3OworRDNCNTtEM0I1OzExMTEgMTE2NyAxMUE4O0QzQjU7MTExMSAxMTY3IDExQTg7CitEM0I2O0QzQjY7MTExMSAxMTY3IDExQTk7RDNCNjsxMTExIDExNjcgMTFBOTsKK0QzQjc7RDNCNzsxMTExIDExNjcgMTFBQTtEM0I3OzExMTEgMTE2NyAxMUFBOworRDNCODtEM0I4OzExMTEgMTE2NyAxMUFCO0QzQjg7MTExMSAxMTY3IDExQUI7CitEM0I5O0QzQjk7MTExMSAxMTY3IDExQUM7RDNCOTsxMTExIDExNjcgMTFBQzsKK0QzQkE7RDNCQTsxMTExIDExNjcgMTFBRDtEM0JBOzExMTEgMTE2NyAxMUFEOworRDNCQjtEM0JCOzExMTEgMTE2NyAxMUFFO0QzQkI7MTExMSAxMTY3IDExQUU7CitEM0JDO0QzQkM7MTExMSAxMTY3IDExQUY7RDNCQzsxMTExIDExNjcgMTFBRjsKK0QzQkQ7RDNCRDsxMTExIDExNjcgMTFCMDtEM0JEOzExMTEgMTE2NyAxMUIwOworRDNCRTtEM0JFOzExMTEgMTE2NyAxMUIxO0QzQkU7MTExMSAxMTY3IDExQjE7CitEM0JGO0QzQkY7MTExMSAxMTY3IDExQjI7RDNCRjsxMTExIDExNjcgMTFCMjsKK0QzQzA7RDNDMDsxMTExIDExNjcgMTFCMztEM0MwOzExMTEgMTE2NyAxMUIzOworRDNDMTtEM0MxOzExMTEgMTE2NyAxMUI0O0QzQzE7MTExMSAxMTY3IDExQjQ7CitEM0MyO0QzQzI7MTExMSAxMTY3IDExQjU7RDNDMjsxMTExIDExNjcgMTFCNTsKK0QzQzM7RDNDMzsxMTExIDExNjcgMTFCNjtEM0MzOzExMTEgMTE2NyAxMUI2OworRDNDNDtEM0M0OzExMTEgMTE2NyAxMUI3O0QzQzQ7MTExMSAxMTY3IDExQjc7CitEM0M1O0QzQzU7MTExMSAxMTY3IDExQjg7RDNDNTsxMTExIDExNjcgMTFCODsKK0QzQzY7RDNDNjsxMTExIDExNjcgMTFCOTtEM0M2OzExMTEgMTE2NyAxMUI5OworRDNDNztEM0M3OzExMTEgMTE2NyAxMUJBO0QzQzc7MTExMSAxMTY3IDExQkE7CitEM0M4O0QzQzg7MTExMSAxMTY3IDExQkI7RDNDODsxMTExIDExNjcgMTFCQjsKK0QzQzk7RDNDOTsxMTExIDExNjcgMTFCQztEM0M5OzExMTEgMTE2NyAxMUJDOworRDNDQTtEM0NBOzExMTEgMTE2NyAxMUJEO0QzQ0E7MTExMSAxMTY3IDExQkQ7CitEM0NCO0QzQ0I7MTExMSAxMTY3IDExQkU7RDNDQjsxMTExIDExNjcgMTFCRTsKK0QzQ0M7RDNDQzsxMTExIDExNjcgMTFCRjtEM0NDOzExMTEgMTE2NyAxMUJGOworRDNDRDtEM0NEOzExMTEgMTE2NyAxMUMwO0QzQ0Q7MTExMSAxMTY3IDExQzA7CitEM0NFO0QzQ0U7MTExMSAxMTY3IDExQzE7RDNDRTsxMTExIDExNjcgMTFDMTsKK0QzQ0Y7RDNDRjsxMTExIDExNjcgMTFDMjtEM0NGOzExMTEgMTE2NyAxMUMyOworRDNEMDtEM0QwOzExMTEgMTE2ODtEM0QwOzExMTEgMTE2ODsKK0QzRDE7RDNEMTsxMTExIDExNjggMTFBODtEM0QxOzExMTEgMTE2OCAxMUE4OworRDNEMjtEM0QyOzExMTEgMTE2OCAxMUE5O0QzRDI7MTExMSAxMTY4IDExQTk7CitEM0QzO0QzRDM7MTExMSAxMTY4IDExQUE7RDNEMzsxMTExIDExNjggMTFBQTsKK0QzRDQ7RDNENDsxMTExIDExNjggMTFBQjtEM0Q0OzExMTEgMTE2OCAxMUFCOworRDNENTtEM0Q1OzExMTEgMTE2OCAxMUFDO0QzRDU7MTExMSAxMTY4IDExQUM7CitEM0Q2O0QzRDY7MTExMSAxMTY4IDExQUQ7RDNENjsxMTExIDExNjggMTFBRDsKK0QzRDc7RDNENzsxMTExIDExNjggMTFBRTtEM0Q3OzExMTEgMTE2OCAxMUFFOworRDNEODtEM0Q4OzExMTEgMTE2OCAxMUFGO0QzRDg7MTExMSAxMTY4IDExQUY7CitEM0Q5O0QzRDk7MTExMSAxMTY4IDExQjA7RDNEOTsxMTExIDExNjggMTFCMDsKK0QzREE7RDNEQTsxMTExIDExNjggMTFCMTtEM0RBOzExMTEgMTE2OCAxMUIxOworRDNEQjtEM0RCOzExMTEgMTE2OCAxMUIyO0QzREI7MTExMSAxMTY4IDExQjI7CitEM0RDO0QzREM7MTExMSAxMTY4IDExQjM7RDNEQzsxMTExIDExNjggMTFCMzsKK0QzREQ7RDNERDsxMTExIDExNjggMTFCNDtEM0REOzExMTEgMTE2OCAxMUI0OworRDNERTtEM0RFOzExMTEgMTE2OCAxMUI1O0QzREU7MTExMSAxMTY4IDExQjU7CitEM0RGO0QzREY7MTExMSAxMTY4IDExQjY7RDNERjsxMTExIDExNjggMTFCNjsKK0QzRTA7RDNFMDsxMTExIDExNjggMTFCNztEM0UwOzExMTEgMTE2OCAxMUI3OworRDNFMTtEM0UxOzExMTEgMTE2OCAxMUI4O0QzRTE7MTExMSAxMTY4IDExQjg7CitEM0UyO0QzRTI7MTExMSAxMTY4IDExQjk7RDNFMjsxMTExIDExNjggMTFCOTsKK0QzRTM7RDNFMzsxMTExIDExNjggMTFCQTtEM0UzOzExMTEgMTE2OCAxMUJBOworRDNFNDtEM0U0OzExMTEgMTE2OCAxMUJCO0QzRTQ7MTExMSAxMTY4IDExQkI7CitEM0U1O0QzRTU7MTExMSAxMTY4IDExQkM7RDNFNTsxMTExIDExNjggMTFCQzsKK0QzRTY7RDNFNjsxMTExIDExNjggMTFCRDtEM0U2OzExMTEgMTE2OCAxMUJEOworRDNFNztEM0U3OzExMTEgMTE2OCAxMUJFO0QzRTc7MTExMSAxMTY4IDExQkU7CitEM0U4O0QzRTg7MTExMSAxMTY4IDExQkY7RDNFODsxMTExIDExNjggMTFCRjsKK0QzRTk7RDNFOTsxMTExIDExNjggMTFDMDtEM0U5OzExMTEgMTE2OCAxMUMwOworRDNFQTtEM0VBOzExMTEgMTE2OCAxMUMxO0QzRUE7MTExMSAxMTY4IDExQzE7CitEM0VCO0QzRUI7MTExMSAxMTY4IDExQzI7RDNFQjsxMTExIDExNjggMTFDMjsKK0QzRUM7RDNFQzsxMTExIDExNjk7RDNFQzsxMTExIDExNjk7CitEM0VEO0QzRUQ7MTExMSAxMTY5IDExQTg7RDNFRDsxMTExIDExNjkgMTFBODsKK0QzRUU7RDNFRTsxMTExIDExNjkgMTFBOTtEM0VFOzExMTEgMTE2OSAxMUE5OworRDNFRjtEM0VGOzExMTEgMTE2OSAxMUFBO0QzRUY7MTExMSAxMTY5IDExQUE7CitEM0YwO0QzRjA7MTExMSAxMTY5IDExQUI7RDNGMDsxMTExIDExNjkgMTFBQjsKK0QzRjE7RDNGMTsxMTExIDExNjkgMTFBQztEM0YxOzExMTEgMTE2OSAxMUFDOworRDNGMjtEM0YyOzExMTEgMTE2OSAxMUFEO0QzRjI7MTExMSAxMTY5IDExQUQ7CitEM0YzO0QzRjM7MTExMSAxMTY5IDExQUU7RDNGMzsxMTExIDExNjkgMTFBRTsKK0QzRjQ7RDNGNDsxMTExIDExNjkgMTFBRjtEM0Y0OzExMTEgMTE2OSAxMUFGOworRDNGNTtEM0Y1OzExMTEgMTE2OSAxMUIwO0QzRjU7MTExMSAxMTY5IDExQjA7CitEM0Y2O0QzRjY7MTExMSAxMTY5IDExQjE7RDNGNjsxMTExIDExNjkgMTFCMTsKK0QzRjc7RDNGNzsxMTExIDExNjkgMTFCMjtEM0Y3OzExMTEgMTE2OSAxMUIyOworRDNGODtEM0Y4OzExMTEgMTE2OSAxMUIzO0QzRjg7MTExMSAxMTY5IDExQjM7CitEM0Y5O0QzRjk7MTExMSAxMTY5IDExQjQ7RDNGOTsxMTExIDExNjkgMTFCNDsKK0QzRkE7RDNGQTsxMTExIDExNjkgMTFCNTtEM0ZBOzExMTEgMTE2OSAxMUI1OworRDNGQjtEM0ZCOzExMTEgMTE2OSAxMUI2O0QzRkI7MTExMSAxMTY5IDExQjY7CitEM0ZDO0QzRkM7MTExMSAxMTY5IDExQjc7RDNGQzsxMTExIDExNjkgMTFCNzsKK0QzRkQ7RDNGRDsxMTExIDExNjkgMTFCODtEM0ZEOzExMTEgMTE2OSAxMUI4OworRDNGRTtEM0ZFOzExMTEgMTE2OSAxMUI5O0QzRkU7MTExMSAxMTY5IDExQjk7CitEM0ZGO0QzRkY7MTExMSAxMTY5IDExQkE7RDNGRjsxMTExIDExNjkgMTFCQTsKK0Q0MDA7RDQwMDsxMTExIDExNjkgMTFCQjtENDAwOzExMTEgMTE2OSAxMUJCOworRDQwMTtENDAxOzExMTEgMTE2OSAxMUJDO0Q0MDE7MTExMSAxMTY5IDExQkM7CitENDAyO0Q0MDI7MTExMSAxMTY5IDExQkQ7RDQwMjsxMTExIDExNjkgMTFCRDsKK0Q0MDM7RDQwMzsxMTExIDExNjkgMTFCRTtENDAzOzExMTEgMTE2OSAxMUJFOworRDQwNDtENDA0OzExMTEgMTE2OSAxMUJGO0Q0MDQ7MTExMSAxMTY5IDExQkY7CitENDA1O0Q0MDU7MTExMSAxMTY5IDExQzA7RDQwNTsxMTExIDExNjkgMTFDMDsKK0Q0MDY7RDQwNjsxMTExIDExNjkgMTFDMTtENDA2OzExMTEgMTE2OSAxMUMxOworRDQwNztENDA3OzExMTEgMTE2OSAxMUMyO0Q0MDc7MTExMSAxMTY5IDExQzI7CitENDA4O0Q0MDg7MTExMSAxMTZBO0Q0MDg7MTExMSAxMTZBOworRDQwOTtENDA5OzExMTEgMTE2QSAxMUE4O0Q0MDk7MTExMSAxMTZBIDExQTg7CitENDBBO0Q0MEE7MTExMSAxMTZBIDExQTk7RDQwQTsxMTExIDExNkEgMTFBOTsKK0Q0MEI7RDQwQjsxMTExIDExNkEgMTFBQTtENDBCOzExMTEgMTE2QSAxMUFBOworRDQwQztENDBDOzExMTEgMTE2QSAxMUFCO0Q0MEM7MTExMSAxMTZBIDExQUI7CitENDBEO0Q0MEQ7MTExMSAxMTZBIDExQUM7RDQwRDsxMTExIDExNkEgMTFBQzsKK0Q0MEU7RDQwRTsxMTExIDExNkEgMTFBRDtENDBFOzExMTEgMTE2QSAxMUFEOworRDQwRjtENDBGOzExMTEgMTE2QSAxMUFFO0Q0MEY7MTExMSAxMTZBIDExQUU7CitENDEwO0Q0MTA7MTExMSAxMTZBIDExQUY7RDQxMDsxMTExIDExNkEgMTFBRjsKK0Q0MTE7RDQxMTsxMTExIDExNkEgMTFCMDtENDExOzExMTEgMTE2QSAxMUIwOworRDQxMjtENDEyOzExMTEgMTE2QSAxMUIxO0Q0MTI7MTExMSAxMTZBIDExQjE7CitENDEzO0Q0MTM7MTExMSAxMTZBIDExQjI7RDQxMzsxMTExIDExNkEgMTFCMjsKK0Q0MTQ7RDQxNDsxMTExIDExNkEgMTFCMztENDE0OzExMTEgMTE2QSAxMUIzOworRDQxNTtENDE1OzExMTEgMTE2QSAxMUI0O0Q0MTU7MTExMSAxMTZBIDExQjQ7CitENDE2O0Q0MTY7MTExMSAxMTZBIDExQjU7RDQxNjsxMTExIDExNkEgMTFCNTsKK0Q0MTc7RDQxNzsxMTExIDExNkEgMTFCNjtENDE3OzExMTEgMTE2QSAxMUI2OworRDQxODtENDE4OzExMTEgMTE2QSAxMUI3O0Q0MTg7MTExMSAxMTZBIDExQjc7CitENDE5O0Q0MTk7MTExMSAxMTZBIDExQjg7RDQxOTsxMTExIDExNkEgMTFCODsKK0Q0MUE7RDQxQTsxMTExIDExNkEgMTFCOTtENDFBOzExMTEgMTE2QSAxMUI5OworRDQxQjtENDFCOzExMTEgMTE2QSAxMUJBO0Q0MUI7MTExMSAxMTZBIDExQkE7CitENDFDO0Q0MUM7MTExMSAxMTZBIDExQkI7RDQxQzsxMTExIDExNkEgMTFCQjsKK0Q0MUQ7RDQxRDsxMTExIDExNkEgMTFCQztENDFEOzExMTEgMTE2QSAxMUJDOworRDQxRTtENDFFOzExMTEgMTE2QSAxMUJEO0Q0MUU7MTExMSAxMTZBIDExQkQ7CitENDFGO0Q0MUY7MTExMSAxMTZBIDExQkU7RDQxRjsxMTExIDExNkEgMTFCRTsKK0Q0MjA7RDQyMDsxMTExIDExNkEgMTFCRjtENDIwOzExMTEgMTE2QSAxMUJGOworRDQyMTtENDIxOzExMTEgMTE2QSAxMUMwO0Q0MjE7MTExMSAxMTZBIDExQzA7CitENDIyO0Q0MjI7MTExMSAxMTZBIDExQzE7RDQyMjsxMTExIDExNkEgMTFDMTsKK0Q0MjM7RDQyMzsxMTExIDExNkEgMTFDMjtENDIzOzExMTEgMTE2QSAxMUMyOworRDQyNDtENDI0OzExMTEgMTE2QjtENDI0OzExMTEgMTE2QjsKK0Q0MjU7RDQyNTsxMTExIDExNkIgMTFBODtENDI1OzExMTEgMTE2QiAxMUE4OworRDQyNjtENDI2OzExMTEgMTE2QiAxMUE5O0Q0MjY7MTExMSAxMTZCIDExQTk7CitENDI3O0Q0Mjc7MTExMSAxMTZCIDExQUE7RDQyNzsxMTExIDExNkIgMTFBQTsKK0Q0Mjg7RDQyODsxMTExIDExNkIgMTFBQjtENDI4OzExMTEgMTE2QiAxMUFCOworRDQyOTtENDI5OzExMTEgMTE2QiAxMUFDO0Q0Mjk7MTExMSAxMTZCIDExQUM7CitENDJBO0Q0MkE7MTExMSAxMTZCIDExQUQ7RDQyQTsxMTExIDExNkIgMTFBRDsKK0Q0MkI7RDQyQjsxMTExIDExNkIgMTFBRTtENDJCOzExMTEgMTE2QiAxMUFFOworRDQyQztENDJDOzExMTEgMTE2QiAxMUFGO0Q0MkM7MTExMSAxMTZCIDExQUY7CitENDJEO0Q0MkQ7MTExMSAxMTZCIDExQjA7RDQyRDsxMTExIDExNkIgMTFCMDsKK0Q0MkU7RDQyRTsxMTExIDExNkIgMTFCMTtENDJFOzExMTEgMTE2QiAxMUIxOworRDQyRjtENDJGOzExMTEgMTE2QiAxMUIyO0Q0MkY7MTExMSAxMTZCIDExQjI7CitENDMwO0Q0MzA7MTExMSAxMTZCIDExQjM7RDQzMDsxMTExIDExNkIgMTFCMzsKK0Q0MzE7RDQzMTsxMTExIDExNkIgMTFCNDtENDMxOzExMTEgMTE2QiAxMUI0OworRDQzMjtENDMyOzExMTEgMTE2QiAxMUI1O0Q0MzI7MTExMSAxMTZCIDExQjU7CitENDMzO0Q0MzM7MTExMSAxMTZCIDExQjY7RDQzMzsxMTExIDExNkIgMTFCNjsKK0Q0MzQ7RDQzNDsxMTExIDExNkIgMTFCNztENDM0OzExMTEgMTE2QiAxMUI3OworRDQzNTtENDM1OzExMTEgMTE2QiAxMUI4O0Q0MzU7MTExMSAxMTZCIDExQjg7CitENDM2O0Q0MzY7MTExMSAxMTZCIDExQjk7RDQzNjsxMTExIDExNkIgMTFCOTsKK0Q0Mzc7RDQzNzsxMTExIDExNkIgMTFCQTtENDM3OzExMTEgMTE2QiAxMUJBOworRDQzODtENDM4OzExMTEgMTE2QiAxMUJCO0Q0Mzg7MTExMSAxMTZCIDExQkI7CitENDM5O0Q0Mzk7MTExMSAxMTZCIDExQkM7RDQzOTsxMTExIDExNkIgMTFCQzsKK0Q0M0E7RDQzQTsxMTExIDExNkIgMTFCRDtENDNBOzExMTEgMTE2QiAxMUJEOworRDQzQjtENDNCOzExMTEgMTE2QiAxMUJFO0Q0M0I7MTExMSAxMTZCIDExQkU7CitENDNDO0Q0M0M7MTExMSAxMTZCIDExQkY7RDQzQzsxMTExIDExNkIgMTFCRjsKK0Q0M0Q7RDQzRDsxMTExIDExNkIgMTFDMDtENDNEOzExMTEgMTE2QiAxMUMwOworRDQzRTtENDNFOzExMTEgMTE2QiAxMUMxO0Q0M0U7MTExMSAxMTZCIDExQzE7CitENDNGO0Q0M0Y7MTExMSAxMTZCIDExQzI7RDQzRjsxMTExIDExNkIgMTFDMjsKK0Q0NDA7RDQ0MDsxMTExIDExNkM7RDQ0MDsxMTExIDExNkM7CitENDQxO0Q0NDE7MTExMSAxMTZDIDExQTg7RDQ0MTsxMTExIDExNkMgMTFBODsKK0Q0NDI7RDQ0MjsxMTExIDExNkMgMTFBOTtENDQyOzExMTEgMTE2QyAxMUE5OworRDQ0MztENDQzOzExMTEgMTE2QyAxMUFBO0Q0NDM7MTExMSAxMTZDIDExQUE7CitENDQ0O0Q0NDQ7MTExMSAxMTZDIDExQUI7RDQ0NDsxMTExIDExNkMgMTFBQjsKK0Q0NDU7RDQ0NTsxMTExIDExNkMgMTFBQztENDQ1OzExMTEgMTE2QyAxMUFDOworRDQ0NjtENDQ2OzExMTEgMTE2QyAxMUFEO0Q0NDY7MTExMSAxMTZDIDExQUQ7CitENDQ3O0Q0NDc7MTExMSAxMTZDIDExQUU7RDQ0NzsxMTExIDExNkMgMTFBRTsKK0Q0NDg7RDQ0ODsxMTExIDExNkMgMTFBRjtENDQ4OzExMTEgMTE2QyAxMUFGOworRDQ0OTtENDQ5OzExMTEgMTE2QyAxMUIwO0Q0NDk7MTExMSAxMTZDIDExQjA7CitENDRBO0Q0NEE7MTExMSAxMTZDIDExQjE7RDQ0QTsxMTExIDExNkMgMTFCMTsKK0Q0NEI7RDQ0QjsxMTExIDExNkMgMTFCMjtENDRCOzExMTEgMTE2QyAxMUIyOworRDQ0QztENDRDOzExMTEgMTE2QyAxMUIzO0Q0NEM7MTExMSAxMTZDIDExQjM7CitENDREO0Q0NEQ7MTExMSAxMTZDIDExQjQ7RDQ0RDsxMTExIDExNkMgMTFCNDsKK0Q0NEU7RDQ0RTsxMTExIDExNkMgMTFCNTtENDRFOzExMTEgMTE2QyAxMUI1OworRDQ0RjtENDRGOzExMTEgMTE2QyAxMUI2O0Q0NEY7MTExMSAxMTZDIDExQjY7CitENDUwO0Q0NTA7MTExMSAxMTZDIDExQjc7RDQ1MDsxMTExIDExNkMgMTFCNzsKK0Q0NTE7RDQ1MTsxMTExIDExNkMgMTFCODtENDUxOzExMTEgMTE2QyAxMUI4OworRDQ1MjtENDUyOzExMTEgMTE2QyAxMUI5O0Q0NTI7MTExMSAxMTZDIDExQjk7CitENDUzO0Q0NTM7MTExMSAxMTZDIDExQkE7RDQ1MzsxMTExIDExNkMgMTFCQTsKK0Q0NTQ7RDQ1NDsxMTExIDExNkMgMTFCQjtENDU0OzExMTEgMTE2QyAxMUJCOworRDQ1NTtENDU1OzExMTEgMTE2QyAxMUJDO0Q0NTU7MTExMSAxMTZDIDExQkM7CitENDU2O0Q0NTY7MTExMSAxMTZDIDExQkQ7RDQ1NjsxMTExIDExNkMgMTFCRDsKK0Q0NTc7RDQ1NzsxMTExIDExNkMgMTFCRTtENDU3OzExMTEgMTE2QyAxMUJFOworRDQ1ODtENDU4OzExMTEgMTE2QyAxMUJGO0Q0NTg7MTExMSAxMTZDIDExQkY7CitENDU5O0Q0NTk7MTExMSAxMTZDIDExQzA7RDQ1OTsxMTExIDExNkMgMTFDMDsKK0Q0NUE7RDQ1QTsxMTExIDExNkMgMTFDMTtENDVBOzExMTEgMTE2QyAxMUMxOworRDQ1QjtENDVCOzExMTEgMTE2QyAxMUMyO0Q0NUI7MTExMSAxMTZDIDExQzI7CitENDVDO0Q0NUM7MTExMSAxMTZEO0Q0NUM7MTExMSAxMTZEOworRDQ1RDtENDVEOzExMTEgMTE2RCAxMUE4O0Q0NUQ7MTExMSAxMTZEIDExQTg7CitENDVFO0Q0NUU7MTExMSAxMTZEIDExQTk7RDQ1RTsxMTExIDExNkQgMTFBOTsKK0Q0NUY7RDQ1RjsxMTExIDExNkQgMTFBQTtENDVGOzExMTEgMTE2RCAxMUFBOworRDQ2MDtENDYwOzExMTEgMTE2RCAxMUFCO0Q0NjA7MTExMSAxMTZEIDExQUI7CitENDYxO0Q0NjE7MTExMSAxMTZEIDExQUM7RDQ2MTsxMTExIDExNkQgMTFBQzsKK0Q0NjI7RDQ2MjsxMTExIDExNkQgMTFBRDtENDYyOzExMTEgMTE2RCAxMUFEOworRDQ2MztENDYzOzExMTEgMTE2RCAxMUFFO0Q0NjM7MTExMSAxMTZEIDExQUU7CitENDY0O0Q0NjQ7MTExMSAxMTZEIDExQUY7RDQ2NDsxMTExIDExNkQgMTFBRjsKK0Q0NjU7RDQ2NTsxMTExIDExNkQgMTFCMDtENDY1OzExMTEgMTE2RCAxMUIwOworRDQ2NjtENDY2OzExMTEgMTE2RCAxMUIxO0Q0NjY7MTExMSAxMTZEIDExQjE7CitENDY3O0Q0Njc7MTExMSAxMTZEIDExQjI7RDQ2NzsxMTExIDExNkQgMTFCMjsKK0Q0Njg7RDQ2ODsxMTExIDExNkQgMTFCMztENDY4OzExMTEgMTE2RCAxMUIzOworRDQ2OTtENDY5OzExMTEgMTE2RCAxMUI0O0Q0Njk7MTExMSAxMTZEIDExQjQ7CitENDZBO0Q0NkE7MTExMSAxMTZEIDExQjU7RDQ2QTsxMTExIDExNkQgMTFCNTsKK0Q0NkI7RDQ2QjsxMTExIDExNkQgMTFCNjtENDZCOzExMTEgMTE2RCAxMUI2OworRDQ2QztENDZDOzExMTEgMTE2RCAxMUI3O0Q0NkM7MTExMSAxMTZEIDExQjc7CitENDZEO0Q0NkQ7MTExMSAxMTZEIDExQjg7RDQ2RDsxMTExIDExNkQgMTFCODsKK0Q0NkU7RDQ2RTsxMTExIDExNkQgMTFCOTtENDZFOzExMTEgMTE2RCAxMUI5OworRDQ2RjtENDZGOzExMTEgMTE2RCAxMUJBO0Q0NkY7MTExMSAxMTZEIDExQkE7CitENDcwO0Q0NzA7MTExMSAxMTZEIDExQkI7RDQ3MDsxMTExIDExNkQgMTFCQjsKK0Q0NzE7RDQ3MTsxMTExIDExNkQgMTFCQztENDcxOzExMTEgMTE2RCAxMUJDOworRDQ3MjtENDcyOzExMTEgMTE2RCAxMUJEO0Q0NzI7MTExMSAxMTZEIDExQkQ7CitENDczO0Q0NzM7MTExMSAxMTZEIDExQkU7RDQ3MzsxMTExIDExNkQgMTFCRTsKK0Q0NzQ7RDQ3NDsxMTExIDExNkQgMTFCRjtENDc0OzExMTEgMTE2RCAxMUJGOworRDQ3NTtENDc1OzExMTEgMTE2RCAxMUMwO0Q0NzU7MTExMSAxMTZEIDExQzA7CitENDc2O0Q0NzY7MTExMSAxMTZEIDExQzE7RDQ3NjsxMTExIDExNkQgMTFDMTsKK0Q0Nzc7RDQ3NzsxMTExIDExNkQgMTFDMjtENDc3OzExMTEgMTE2RCAxMUMyOworRDQ3ODtENDc4OzExMTEgMTE2RTtENDc4OzExMTEgMTE2RTsKK0Q0Nzk7RDQ3OTsxMTExIDExNkUgMTFBODtENDc5OzExMTEgMTE2RSAxMUE4OworRDQ3QTtENDdBOzExMTEgMTE2RSAxMUE5O0Q0N0E7MTExMSAxMTZFIDExQTk7CitENDdCO0Q0N0I7MTExMSAxMTZFIDExQUE7RDQ3QjsxMTExIDExNkUgMTFBQTsKK0Q0N0M7RDQ3QzsxMTExIDExNkUgMTFBQjtENDdDOzExMTEgMTE2RSAxMUFCOworRDQ3RDtENDdEOzExMTEgMTE2RSAxMUFDO0Q0N0Q7MTExMSAxMTZFIDExQUM7CitENDdFO0Q0N0U7MTExMSAxMTZFIDExQUQ7RDQ3RTsxMTExIDExNkUgMTFBRDsKK0Q0N0Y7RDQ3RjsxMTExIDExNkUgMTFBRTtENDdGOzExMTEgMTE2RSAxMUFFOworRDQ4MDtENDgwOzExMTEgMTE2RSAxMUFGO0Q0ODA7MTExMSAxMTZFIDExQUY7CitENDgxO0Q0ODE7MTExMSAxMTZFIDExQjA7RDQ4MTsxMTExIDExNkUgMTFCMDsKK0Q0ODI7RDQ4MjsxMTExIDExNkUgMTFCMTtENDgyOzExMTEgMTE2RSAxMUIxOworRDQ4MztENDgzOzExMTEgMTE2RSAxMUIyO0Q0ODM7MTExMSAxMTZFIDExQjI7CitENDg0O0Q0ODQ7MTExMSAxMTZFIDExQjM7RDQ4NDsxMTExIDExNkUgMTFCMzsKK0Q0ODU7RDQ4NTsxMTExIDExNkUgMTFCNDtENDg1OzExMTEgMTE2RSAxMUI0OworRDQ4NjtENDg2OzExMTEgMTE2RSAxMUI1O0Q0ODY7MTExMSAxMTZFIDExQjU7CitENDg3O0Q0ODc7MTExMSAxMTZFIDExQjY7RDQ4NzsxMTExIDExNkUgMTFCNjsKK0Q0ODg7RDQ4ODsxMTExIDExNkUgMTFCNztENDg4OzExMTEgMTE2RSAxMUI3OworRDQ4OTtENDg5OzExMTEgMTE2RSAxMUI4O0Q0ODk7MTExMSAxMTZFIDExQjg7CitENDhBO0Q0OEE7MTExMSAxMTZFIDExQjk7RDQ4QTsxMTExIDExNkUgMTFCOTsKK0Q0OEI7RDQ4QjsxMTExIDExNkUgMTFCQTtENDhCOzExMTEgMTE2RSAxMUJBOworRDQ4QztENDhDOzExMTEgMTE2RSAxMUJCO0Q0OEM7MTExMSAxMTZFIDExQkI7CitENDhEO0Q0OEQ7MTExMSAxMTZFIDExQkM7RDQ4RDsxMTExIDExNkUgMTFCQzsKK0Q0OEU7RDQ4RTsxMTExIDExNkUgMTFCRDtENDhFOzExMTEgMTE2RSAxMUJEOworRDQ4RjtENDhGOzExMTEgMTE2RSAxMUJFO0Q0OEY7MTExMSAxMTZFIDExQkU7CitENDkwO0Q0OTA7MTExMSAxMTZFIDExQkY7RDQ5MDsxMTExIDExNkUgMTFCRjsKK0Q0OTE7RDQ5MTsxMTExIDExNkUgMTFDMDtENDkxOzExMTEgMTE2RSAxMUMwOworRDQ5MjtENDkyOzExMTEgMTE2RSAxMUMxO0Q0OTI7MTExMSAxMTZFIDExQzE7CitENDkzO0Q0OTM7MTExMSAxMTZFIDExQzI7RDQ5MzsxMTExIDExNkUgMTFDMjsKK0Q0OTQ7RDQ5NDsxMTExIDExNkY7RDQ5NDsxMTExIDExNkY7CitENDk1O0Q0OTU7MTExMSAxMTZGIDExQTg7RDQ5NTsxMTExIDExNkYgMTFBODsKK0Q0OTY7RDQ5NjsxMTExIDExNkYgMTFBOTtENDk2OzExMTEgMTE2RiAxMUE5OworRDQ5NztENDk3OzExMTEgMTE2RiAxMUFBO0Q0OTc7MTExMSAxMTZGIDExQUE7CitENDk4O0Q0OTg7MTExMSAxMTZGIDExQUI7RDQ5ODsxMTExIDExNkYgMTFBQjsKK0Q0OTk7RDQ5OTsxMTExIDExNkYgMTFBQztENDk5OzExMTEgMTE2RiAxMUFDOworRDQ5QTtENDlBOzExMTEgMTE2RiAxMUFEO0Q0OUE7MTExMSAxMTZGIDExQUQ7CitENDlCO0Q0OUI7MTExMSAxMTZGIDExQUU7RDQ5QjsxMTExIDExNkYgMTFBRTsKK0Q0OUM7RDQ5QzsxMTExIDExNkYgMTFBRjtENDlDOzExMTEgMTE2RiAxMUFGOworRDQ5RDtENDlEOzExMTEgMTE2RiAxMUIwO0Q0OUQ7MTExMSAxMTZGIDExQjA7CitENDlFO0Q0OUU7MTExMSAxMTZGIDExQjE7RDQ5RTsxMTExIDExNkYgMTFCMTsKK0Q0OUY7RDQ5RjsxMTExIDExNkYgMTFCMjtENDlGOzExMTEgMTE2RiAxMUIyOworRDRBMDtENEEwOzExMTEgMTE2RiAxMUIzO0Q0QTA7MTExMSAxMTZGIDExQjM7CitENEExO0Q0QTE7MTExMSAxMTZGIDExQjQ7RDRBMTsxMTExIDExNkYgMTFCNDsKK0Q0QTI7RDRBMjsxMTExIDExNkYgMTFCNTtENEEyOzExMTEgMTE2RiAxMUI1OworRDRBMztENEEzOzExMTEgMTE2RiAxMUI2O0Q0QTM7MTExMSAxMTZGIDExQjY7CitENEE0O0Q0QTQ7MTExMSAxMTZGIDExQjc7RDRBNDsxMTExIDExNkYgMTFCNzsKK0Q0QTU7RDRBNTsxMTExIDExNkYgMTFCODtENEE1OzExMTEgMTE2RiAxMUI4OworRDRBNjtENEE2OzExMTEgMTE2RiAxMUI5O0Q0QTY7MTExMSAxMTZGIDExQjk7CitENEE3O0Q0QTc7MTExMSAxMTZGIDExQkE7RDRBNzsxMTExIDExNkYgMTFCQTsKK0Q0QTg7RDRBODsxMTExIDExNkYgMTFCQjtENEE4OzExMTEgMTE2RiAxMUJCOworRDRBOTtENEE5OzExMTEgMTE2RiAxMUJDO0Q0QTk7MTExMSAxMTZGIDExQkM7CitENEFBO0Q0QUE7MTExMSAxMTZGIDExQkQ7RDRBQTsxMTExIDExNkYgMTFCRDsKK0Q0QUI7RDRBQjsxMTExIDExNkYgMTFCRTtENEFCOzExMTEgMTE2RiAxMUJFOworRDRBQztENEFDOzExMTEgMTE2RiAxMUJGO0Q0QUM7MTExMSAxMTZGIDExQkY7CitENEFEO0Q0QUQ7MTExMSAxMTZGIDExQzA7RDRBRDsxMTExIDExNkYgMTFDMDsKK0Q0QUU7RDRBRTsxMTExIDExNkYgMTFDMTtENEFFOzExMTEgMTE2RiAxMUMxOworRDRBRjtENEFGOzExMTEgMTE2RiAxMUMyO0Q0QUY7MTExMSAxMTZGIDExQzI7CitENEIwO0Q0QjA7MTExMSAxMTcwO0Q0QjA7MTExMSAxMTcwOworRDRCMTtENEIxOzExMTEgMTE3MCAxMUE4O0Q0QjE7MTExMSAxMTcwIDExQTg7CitENEIyO0Q0QjI7MTExMSAxMTcwIDExQTk7RDRCMjsxMTExIDExNzAgMTFBOTsKK0Q0QjM7RDRCMzsxMTExIDExNzAgMTFBQTtENEIzOzExMTEgMTE3MCAxMUFBOworRDRCNDtENEI0OzExMTEgMTE3MCAxMUFCO0Q0QjQ7MTExMSAxMTcwIDExQUI7CitENEI1O0Q0QjU7MTExMSAxMTcwIDExQUM7RDRCNTsxMTExIDExNzAgMTFBQzsKK0Q0QjY7RDRCNjsxMTExIDExNzAgMTFBRDtENEI2OzExMTEgMTE3MCAxMUFEOworRDRCNztENEI3OzExMTEgMTE3MCAxMUFFO0Q0Qjc7MTExMSAxMTcwIDExQUU7CitENEI4O0Q0Qjg7MTExMSAxMTcwIDExQUY7RDRCODsxMTExIDExNzAgMTFBRjsKK0Q0Qjk7RDRCOTsxMTExIDExNzAgMTFCMDtENEI5OzExMTEgMTE3MCAxMUIwOworRDRCQTtENEJBOzExMTEgMTE3MCAxMUIxO0Q0QkE7MTExMSAxMTcwIDExQjE7CitENEJCO0Q0QkI7MTExMSAxMTcwIDExQjI7RDRCQjsxMTExIDExNzAgMTFCMjsKK0Q0QkM7RDRCQzsxMTExIDExNzAgMTFCMztENEJDOzExMTEgMTE3MCAxMUIzOworRDRCRDtENEJEOzExMTEgMTE3MCAxMUI0O0Q0QkQ7MTExMSAxMTcwIDExQjQ7CitENEJFO0Q0QkU7MTExMSAxMTcwIDExQjU7RDRCRTsxMTExIDExNzAgMTFCNTsKK0Q0QkY7RDRCRjsxMTExIDExNzAgMTFCNjtENEJGOzExMTEgMTE3MCAxMUI2OworRDRDMDtENEMwOzExMTEgMTE3MCAxMUI3O0Q0QzA7MTExMSAxMTcwIDExQjc7CitENEMxO0Q0QzE7MTExMSAxMTcwIDExQjg7RDRDMTsxMTExIDExNzAgMTFCODsKK0Q0QzI7RDRDMjsxMTExIDExNzAgMTFCOTtENEMyOzExMTEgMTE3MCAxMUI5OworRDRDMztENEMzOzExMTEgMTE3MCAxMUJBO0Q0QzM7MTExMSAxMTcwIDExQkE7CitENEM0O0Q0QzQ7MTExMSAxMTcwIDExQkI7RDRDNDsxMTExIDExNzAgMTFCQjsKK0Q0QzU7RDRDNTsxMTExIDExNzAgMTFCQztENEM1OzExMTEgMTE3MCAxMUJDOworRDRDNjtENEM2OzExMTEgMTE3MCAxMUJEO0Q0QzY7MTExMSAxMTcwIDExQkQ7CitENEM3O0Q0Qzc7MTExMSAxMTcwIDExQkU7RDRDNzsxMTExIDExNzAgMTFCRTsKK0Q0Qzg7RDRDODsxMTExIDExNzAgMTFCRjtENEM4OzExMTEgMTE3MCAxMUJGOworRDRDOTtENEM5OzExMTEgMTE3MCAxMUMwO0Q0Qzk7MTExMSAxMTcwIDExQzA7CitENENBO0Q0Q0E7MTExMSAxMTcwIDExQzE7RDRDQTsxMTExIDExNzAgMTFDMTsKK0Q0Q0I7RDRDQjsxMTExIDExNzAgMTFDMjtENENCOzExMTEgMTE3MCAxMUMyOworRDRDQztENENDOzExMTEgMTE3MTtENENDOzExMTEgMTE3MTsKK0Q0Q0Q7RDRDRDsxMTExIDExNzEgMTFBODtENENEOzExMTEgMTE3MSAxMUE4OworRDRDRTtENENFOzExMTEgMTE3MSAxMUE5O0Q0Q0U7MTExMSAxMTcxIDExQTk7CitENENGO0Q0Q0Y7MTExMSAxMTcxIDExQUE7RDRDRjsxMTExIDExNzEgMTFBQTsKK0Q0RDA7RDREMDsxMTExIDExNzEgMTFBQjtENEQwOzExMTEgMTE3MSAxMUFCOworRDREMTtENEQxOzExMTEgMTE3MSAxMUFDO0Q0RDE7MTExMSAxMTcxIDExQUM7CitENEQyO0Q0RDI7MTExMSAxMTcxIDExQUQ7RDREMjsxMTExIDExNzEgMTFBRDsKK0Q0RDM7RDREMzsxMTExIDExNzEgMTFBRTtENEQzOzExMTEgMTE3MSAxMUFFOworRDRENDtENEQ0OzExMTEgMTE3MSAxMUFGO0Q0RDQ7MTExMSAxMTcxIDExQUY7CitENEQ1O0Q0RDU7MTExMSAxMTcxIDExQjA7RDRENTsxMTExIDExNzEgMTFCMDsKK0Q0RDY7RDRENjsxMTExIDExNzEgMTFCMTtENEQ2OzExMTEgMTE3MSAxMUIxOworRDRENztENEQ3OzExMTEgMTE3MSAxMUIyO0Q0RDc7MTExMSAxMTcxIDExQjI7CitENEQ4O0Q0RDg7MTExMSAxMTcxIDExQjM7RDREODsxMTExIDExNzEgMTFCMzsKK0Q0RDk7RDREOTsxMTExIDExNzEgMTFCNDtENEQ5OzExMTEgMTE3MSAxMUI0OworRDREQTtENERBOzExMTEgMTE3MSAxMUI1O0Q0REE7MTExMSAxMTcxIDExQjU7CitENERCO0Q0REI7MTExMSAxMTcxIDExQjY7RDREQjsxMTExIDExNzEgMTFCNjsKK0Q0REM7RDREQzsxMTExIDExNzEgMTFCNztENERDOzExMTEgMTE3MSAxMUI3OworRDRERDtENEREOzExMTEgMTE3MSAxMUI4O0Q0REQ7MTExMSAxMTcxIDExQjg7CitENERFO0Q0REU7MTExMSAxMTcxIDExQjk7RDRERTsxMTExIDExNzEgMTFCOTsKK0Q0REY7RDRERjsxMTExIDExNzEgMTFCQTtENERGOzExMTEgMTE3MSAxMUJBOworRDRFMDtENEUwOzExMTEgMTE3MSAxMUJCO0Q0RTA7MTExMSAxMTcxIDExQkI7CitENEUxO0Q0RTE7MTExMSAxMTcxIDExQkM7RDRFMTsxMTExIDExNzEgMTFCQzsKK0Q0RTI7RDRFMjsxMTExIDExNzEgMTFCRDtENEUyOzExMTEgMTE3MSAxMUJEOworRDRFMztENEUzOzExMTEgMTE3MSAxMUJFO0Q0RTM7MTExMSAxMTcxIDExQkU7CitENEU0O0Q0RTQ7MTExMSAxMTcxIDExQkY7RDRFNDsxMTExIDExNzEgMTFCRjsKK0Q0RTU7RDRFNTsxMTExIDExNzEgMTFDMDtENEU1OzExMTEgMTE3MSAxMUMwOworRDRFNjtENEU2OzExMTEgMTE3MSAxMUMxO0Q0RTY7MTExMSAxMTcxIDExQzE7CitENEU3O0Q0RTc7MTExMSAxMTcxIDExQzI7RDRFNzsxMTExIDExNzEgMTFDMjsKK0Q0RTg7RDRFODsxMTExIDExNzI7RDRFODsxMTExIDExNzI7CitENEU5O0Q0RTk7MTExMSAxMTcyIDExQTg7RDRFOTsxMTExIDExNzIgMTFBODsKK0Q0RUE7RDRFQTsxMTExIDExNzIgMTFBOTtENEVBOzExMTEgMTE3MiAxMUE5OworRDRFQjtENEVCOzExMTEgMTE3MiAxMUFBO0Q0RUI7MTExMSAxMTcyIDExQUE7CitENEVDO0Q0RUM7MTExMSAxMTcyIDExQUI7RDRFQzsxMTExIDExNzIgMTFBQjsKK0Q0RUQ7RDRFRDsxMTExIDExNzIgMTFBQztENEVEOzExMTEgMTE3MiAxMUFDOworRDRFRTtENEVFOzExMTEgMTE3MiAxMUFEO0Q0RUU7MTExMSAxMTcyIDExQUQ7CitENEVGO0Q0RUY7MTExMSAxMTcyIDExQUU7RDRFRjsxMTExIDExNzIgMTFBRTsKK0Q0RjA7RDRGMDsxMTExIDExNzIgMTFBRjtENEYwOzExMTEgMTE3MiAxMUFGOworRDRGMTtENEYxOzExMTEgMTE3MiAxMUIwO0Q0RjE7MTExMSAxMTcyIDExQjA7CitENEYyO0Q0RjI7MTExMSAxMTcyIDExQjE7RDRGMjsxMTExIDExNzIgMTFCMTsKK0Q0RjM7RDRGMzsxMTExIDExNzIgMTFCMjtENEYzOzExMTEgMTE3MiAxMUIyOworRDRGNDtENEY0OzExMTEgMTE3MiAxMUIzO0Q0RjQ7MTExMSAxMTcyIDExQjM7CitENEY1O0Q0RjU7MTExMSAxMTcyIDExQjQ7RDRGNTsxMTExIDExNzIgMTFCNDsKK0Q0RjY7RDRGNjsxMTExIDExNzIgMTFCNTtENEY2OzExMTEgMTE3MiAxMUI1OworRDRGNztENEY3OzExMTEgMTE3MiAxMUI2O0Q0Rjc7MTExMSAxMTcyIDExQjY7CitENEY4O0Q0Rjg7MTExMSAxMTcyIDExQjc7RDRGODsxMTExIDExNzIgMTFCNzsKK0Q0Rjk7RDRGOTsxMTExIDExNzIgMTFCODtENEY5OzExMTEgMTE3MiAxMUI4OworRDRGQTtENEZBOzExMTEgMTE3MiAxMUI5O0Q0RkE7MTExMSAxMTcyIDExQjk7CitENEZCO0Q0RkI7MTExMSAxMTcyIDExQkE7RDRGQjsxMTExIDExNzIgMTFCQTsKK0Q0RkM7RDRGQzsxMTExIDExNzIgMTFCQjtENEZDOzExMTEgMTE3MiAxMUJCOworRDRGRDtENEZEOzExMTEgMTE3MiAxMUJDO0Q0RkQ7MTExMSAxMTcyIDExQkM7CitENEZFO0Q0RkU7MTExMSAxMTcyIDExQkQ7RDRGRTsxMTExIDExNzIgMTFCRDsKK0Q0RkY7RDRGRjsxMTExIDExNzIgMTFCRTtENEZGOzExMTEgMTE3MiAxMUJFOworRDUwMDtENTAwOzExMTEgMTE3MiAxMUJGO0Q1MDA7MTExMSAxMTcyIDExQkY7CitENTAxO0Q1MDE7MTExMSAxMTcyIDExQzA7RDUwMTsxMTExIDExNzIgMTFDMDsKK0Q1MDI7RDUwMjsxMTExIDExNzIgMTFDMTtENTAyOzExMTEgMTE3MiAxMUMxOworRDUwMztENTAzOzExMTEgMTE3MiAxMUMyO0Q1MDM7MTExMSAxMTcyIDExQzI7CitENTA0O0Q1MDQ7MTExMSAxMTczO0Q1MDQ7MTExMSAxMTczOworRDUwNTtENTA1OzExMTEgMTE3MyAxMUE4O0Q1MDU7MTExMSAxMTczIDExQTg7CitENTA2O0Q1MDY7MTExMSAxMTczIDExQTk7RDUwNjsxMTExIDExNzMgMTFBOTsKK0Q1MDc7RDUwNzsxMTExIDExNzMgMTFBQTtENTA3OzExMTEgMTE3MyAxMUFBOworRDUwODtENTA4OzExMTEgMTE3MyAxMUFCO0Q1MDg7MTExMSAxMTczIDExQUI7CitENTA5O0Q1MDk7MTExMSAxMTczIDExQUM7RDUwOTsxMTExIDExNzMgMTFBQzsKK0Q1MEE7RDUwQTsxMTExIDExNzMgMTFBRDtENTBBOzExMTEgMTE3MyAxMUFEOworRDUwQjtENTBCOzExMTEgMTE3MyAxMUFFO0Q1MEI7MTExMSAxMTczIDExQUU7CitENTBDO0Q1MEM7MTExMSAxMTczIDExQUY7RDUwQzsxMTExIDExNzMgMTFBRjsKK0Q1MEQ7RDUwRDsxMTExIDExNzMgMTFCMDtENTBEOzExMTEgMTE3MyAxMUIwOworRDUwRTtENTBFOzExMTEgMTE3MyAxMUIxO0Q1MEU7MTExMSAxMTczIDExQjE7CitENTBGO0Q1MEY7MTExMSAxMTczIDExQjI7RDUwRjsxMTExIDExNzMgMTFCMjsKK0Q1MTA7RDUxMDsxMTExIDExNzMgMTFCMztENTEwOzExMTEgMTE3MyAxMUIzOworRDUxMTtENTExOzExMTEgMTE3MyAxMUI0O0Q1MTE7MTExMSAxMTczIDExQjQ7CitENTEyO0Q1MTI7MTExMSAxMTczIDExQjU7RDUxMjsxMTExIDExNzMgMTFCNTsKK0Q1MTM7RDUxMzsxMTExIDExNzMgMTFCNjtENTEzOzExMTEgMTE3MyAxMUI2OworRDUxNDtENTE0OzExMTEgMTE3MyAxMUI3O0Q1MTQ7MTExMSAxMTczIDExQjc7CitENTE1O0Q1MTU7MTExMSAxMTczIDExQjg7RDUxNTsxMTExIDExNzMgMTFCODsKK0Q1MTY7RDUxNjsxMTExIDExNzMgMTFCOTtENTE2OzExMTEgMTE3MyAxMUI5OworRDUxNztENTE3OzExMTEgMTE3MyAxMUJBO0Q1MTc7MTExMSAxMTczIDExQkE7CitENTE4O0Q1MTg7MTExMSAxMTczIDExQkI7RDUxODsxMTExIDExNzMgMTFCQjsKK0Q1MTk7RDUxOTsxMTExIDExNzMgMTFCQztENTE5OzExMTEgMTE3MyAxMUJDOworRDUxQTtENTFBOzExMTEgMTE3MyAxMUJEO0Q1MUE7MTExMSAxMTczIDExQkQ7CitENTFCO0Q1MUI7MTExMSAxMTczIDExQkU7RDUxQjsxMTExIDExNzMgMTFCRTsKK0Q1MUM7RDUxQzsxMTExIDExNzMgMTFCRjtENTFDOzExMTEgMTE3MyAxMUJGOworRDUxRDtENTFEOzExMTEgMTE3MyAxMUMwO0Q1MUQ7MTExMSAxMTczIDExQzA7CitENTFFO0Q1MUU7MTExMSAxMTczIDExQzE7RDUxRTsxMTExIDExNzMgMTFDMTsKK0Q1MUY7RDUxRjsxMTExIDExNzMgMTFDMjtENTFGOzExMTEgMTE3MyAxMUMyOworRDUyMDtENTIwOzExMTEgMTE3NDtENTIwOzExMTEgMTE3NDsKK0Q1MjE7RDUyMTsxMTExIDExNzQgMTFBODtENTIxOzExMTEgMTE3NCAxMUE4OworRDUyMjtENTIyOzExMTEgMTE3NCAxMUE5O0Q1MjI7MTExMSAxMTc0IDExQTk7CitENTIzO0Q1MjM7MTExMSAxMTc0IDExQUE7RDUyMzsxMTExIDExNzQgMTFBQTsKK0Q1MjQ7RDUyNDsxMTExIDExNzQgMTFBQjtENTI0OzExMTEgMTE3NCAxMUFCOworRDUyNTtENTI1OzExMTEgMTE3NCAxMUFDO0Q1MjU7MTExMSAxMTc0IDExQUM7CitENTI2O0Q1MjY7MTExMSAxMTc0IDExQUQ7RDUyNjsxMTExIDExNzQgMTFBRDsKK0Q1Mjc7RDUyNzsxMTExIDExNzQgMTFBRTtENTI3OzExMTEgMTE3NCAxMUFFOworRDUyODtENTI4OzExMTEgMTE3NCAxMUFGO0Q1Mjg7MTExMSAxMTc0IDExQUY7CitENTI5O0Q1Mjk7MTExMSAxMTc0IDExQjA7RDUyOTsxMTExIDExNzQgMTFCMDsKK0Q1MkE7RDUyQTsxMTExIDExNzQgMTFCMTtENTJBOzExMTEgMTE3NCAxMUIxOworRDUyQjtENTJCOzExMTEgMTE3NCAxMUIyO0Q1MkI7MTExMSAxMTc0IDExQjI7CitENTJDO0Q1MkM7MTExMSAxMTc0IDExQjM7RDUyQzsxMTExIDExNzQgMTFCMzsKK0Q1MkQ7RDUyRDsxMTExIDExNzQgMTFCNDtENTJEOzExMTEgMTE3NCAxMUI0OworRDUyRTtENTJFOzExMTEgMTE3NCAxMUI1O0Q1MkU7MTExMSAxMTc0IDExQjU7CitENTJGO0Q1MkY7MTExMSAxMTc0IDExQjY7RDUyRjsxMTExIDExNzQgMTFCNjsKK0Q1MzA7RDUzMDsxMTExIDExNzQgMTFCNztENTMwOzExMTEgMTE3NCAxMUI3OworRDUzMTtENTMxOzExMTEgMTE3NCAxMUI4O0Q1MzE7MTExMSAxMTc0IDExQjg7CitENTMyO0Q1MzI7MTExMSAxMTc0IDExQjk7RDUzMjsxMTExIDExNzQgMTFCOTsKK0Q1MzM7RDUzMzsxMTExIDExNzQgMTFCQTtENTMzOzExMTEgMTE3NCAxMUJBOworRDUzNDtENTM0OzExMTEgMTE3NCAxMUJCO0Q1MzQ7MTExMSAxMTc0IDExQkI7CitENTM1O0Q1MzU7MTExMSAxMTc0IDExQkM7RDUzNTsxMTExIDExNzQgMTFCQzsKK0Q1MzY7RDUzNjsxMTExIDExNzQgMTFCRDtENTM2OzExMTEgMTE3NCAxMUJEOworRDUzNztENTM3OzExMTEgMTE3NCAxMUJFO0Q1Mzc7MTExMSAxMTc0IDExQkU7CitENTM4O0Q1Mzg7MTExMSAxMTc0IDExQkY7RDUzODsxMTExIDExNzQgMTFCRjsKK0Q1Mzk7RDUzOTsxMTExIDExNzQgMTFDMDtENTM5OzExMTEgMTE3NCAxMUMwOworRDUzQTtENTNBOzExMTEgMTE3NCAxMUMxO0Q1M0E7MTExMSAxMTc0IDExQzE7CitENTNCO0Q1M0I7MTExMSAxMTc0IDExQzI7RDUzQjsxMTExIDExNzQgMTFDMjsKK0Q1M0M7RDUzQzsxMTExIDExNzU7RDUzQzsxMTExIDExNzU7CitENTNEO0Q1M0Q7MTExMSAxMTc1IDExQTg7RDUzRDsxMTExIDExNzUgMTFBODsKK0Q1M0U7RDUzRTsxMTExIDExNzUgMTFBOTtENTNFOzExMTEgMTE3NSAxMUE5OworRDUzRjtENTNGOzExMTEgMTE3NSAxMUFBO0Q1M0Y7MTExMSAxMTc1IDExQUE7CitENTQwO0Q1NDA7MTExMSAxMTc1IDExQUI7RDU0MDsxMTExIDExNzUgMTFBQjsKK0Q1NDE7RDU0MTsxMTExIDExNzUgMTFBQztENTQxOzExMTEgMTE3NSAxMUFDOworRDU0MjtENTQyOzExMTEgMTE3NSAxMUFEO0Q1NDI7MTExMSAxMTc1IDExQUQ7CitENTQzO0Q1NDM7MTExMSAxMTc1IDExQUU7RDU0MzsxMTExIDExNzUgMTFBRTsKK0Q1NDQ7RDU0NDsxMTExIDExNzUgMTFBRjtENTQ0OzExMTEgMTE3NSAxMUFGOworRDU0NTtENTQ1OzExMTEgMTE3NSAxMUIwO0Q1NDU7MTExMSAxMTc1IDExQjA7CitENTQ2O0Q1NDY7MTExMSAxMTc1IDExQjE7RDU0NjsxMTExIDExNzUgMTFCMTsKK0Q1NDc7RDU0NzsxMTExIDExNzUgMTFCMjtENTQ3OzExMTEgMTE3NSAxMUIyOworRDU0ODtENTQ4OzExMTEgMTE3NSAxMUIzO0Q1NDg7MTExMSAxMTc1IDExQjM7CitENTQ5O0Q1NDk7MTExMSAxMTc1IDExQjQ7RDU0OTsxMTExIDExNzUgMTFCNDsKK0Q1NEE7RDU0QTsxMTExIDExNzUgMTFCNTtENTRBOzExMTEgMTE3NSAxMUI1OworRDU0QjtENTRCOzExMTEgMTE3NSAxMUI2O0Q1NEI7MTExMSAxMTc1IDExQjY7CitENTRDO0Q1NEM7MTExMSAxMTc1IDExQjc7RDU0QzsxMTExIDExNzUgMTFCNzsKK0Q1NEQ7RDU0RDsxMTExIDExNzUgMTFCODtENTREOzExMTEgMTE3NSAxMUI4OworRDU0RTtENTRFOzExMTEgMTE3NSAxMUI5O0Q1NEU7MTExMSAxMTc1IDExQjk7CitENTRGO0Q1NEY7MTExMSAxMTc1IDExQkE7RDU0RjsxMTExIDExNzUgMTFCQTsKK0Q1NTA7RDU1MDsxMTExIDExNzUgMTFCQjtENTUwOzExMTEgMTE3NSAxMUJCOworRDU1MTtENTUxOzExMTEgMTE3NSAxMUJDO0Q1NTE7MTExMSAxMTc1IDExQkM7CitENTUyO0Q1NTI7MTExMSAxMTc1IDExQkQ7RDU1MjsxMTExIDExNzUgMTFCRDsKK0Q1NTM7RDU1MzsxMTExIDExNzUgMTFCRTtENTUzOzExMTEgMTE3NSAxMUJFOworRDU1NDtENTU0OzExMTEgMTE3NSAxMUJGO0Q1NTQ7MTExMSAxMTc1IDExQkY7CitENTU1O0Q1NTU7MTExMSAxMTc1IDExQzA7RDU1NTsxMTExIDExNzUgMTFDMDsKK0Q1NTY7RDU1NjsxMTExIDExNzUgMTFDMTtENTU2OzExMTEgMTE3NSAxMUMxOworRDU1NztENTU3OzExMTEgMTE3NSAxMUMyO0Q1NTc7MTExMSAxMTc1IDExQzI7CitENTU4O0Q1NTg7MTExMiAxMTYxO0Q1NTg7MTExMiAxMTYxOworRDU1OTtENTU5OzExMTIgMTE2MSAxMUE4O0Q1NTk7MTExMiAxMTYxIDExQTg7CitENTVBO0Q1NUE7MTExMiAxMTYxIDExQTk7RDU1QTsxMTEyIDExNjEgMTFBOTsKK0Q1NUI7RDU1QjsxMTEyIDExNjEgMTFBQTtENTVCOzExMTIgMTE2MSAxMUFBOworRDU1QztENTVDOzExMTIgMTE2MSAxMUFCO0Q1NUM7MTExMiAxMTYxIDExQUI7CitENTVEO0Q1NUQ7MTExMiAxMTYxIDExQUM7RDU1RDsxMTEyIDExNjEgMTFBQzsKK0Q1NUU7RDU1RTsxMTEyIDExNjEgMTFBRDtENTVFOzExMTIgMTE2MSAxMUFEOworRDU1RjtENTVGOzExMTIgMTE2MSAxMUFFO0Q1NUY7MTExMiAxMTYxIDExQUU7CitENTYwO0Q1NjA7MTExMiAxMTYxIDExQUY7RDU2MDsxMTEyIDExNjEgMTFBRjsKK0Q1NjE7RDU2MTsxMTEyIDExNjEgMTFCMDtENTYxOzExMTIgMTE2MSAxMUIwOworRDU2MjtENTYyOzExMTIgMTE2MSAxMUIxO0Q1NjI7MTExMiAxMTYxIDExQjE7CitENTYzO0Q1NjM7MTExMiAxMTYxIDExQjI7RDU2MzsxMTEyIDExNjEgMTFCMjsKK0Q1NjQ7RDU2NDsxMTEyIDExNjEgMTFCMztENTY0OzExMTIgMTE2MSAxMUIzOworRDU2NTtENTY1OzExMTIgMTE2MSAxMUI0O0Q1NjU7MTExMiAxMTYxIDExQjQ7CitENTY2O0Q1NjY7MTExMiAxMTYxIDExQjU7RDU2NjsxMTEyIDExNjEgMTFCNTsKK0Q1Njc7RDU2NzsxMTEyIDExNjEgMTFCNjtENTY3OzExMTIgMTE2MSAxMUI2OworRDU2ODtENTY4OzExMTIgMTE2MSAxMUI3O0Q1Njg7MTExMiAxMTYxIDExQjc7CitENTY5O0Q1Njk7MTExMiAxMTYxIDExQjg7RDU2OTsxMTEyIDExNjEgMTFCODsKK0Q1NkE7RDU2QTsxMTEyIDExNjEgMTFCOTtENTZBOzExMTIgMTE2MSAxMUI5OworRDU2QjtENTZCOzExMTIgMTE2MSAxMUJBO0Q1NkI7MTExMiAxMTYxIDExQkE7CitENTZDO0Q1NkM7MTExMiAxMTYxIDExQkI7RDU2QzsxMTEyIDExNjEgMTFCQjsKK0Q1NkQ7RDU2RDsxMTEyIDExNjEgMTFCQztENTZEOzExMTIgMTE2MSAxMUJDOworRDU2RTtENTZFOzExMTIgMTE2MSAxMUJEO0Q1NkU7MTExMiAxMTYxIDExQkQ7CitENTZGO0Q1NkY7MTExMiAxMTYxIDExQkU7RDU2RjsxMTEyIDExNjEgMTFCRTsKK0Q1NzA7RDU3MDsxMTEyIDExNjEgMTFCRjtENTcwOzExMTIgMTE2MSAxMUJGOworRDU3MTtENTcxOzExMTIgMTE2MSAxMUMwO0Q1NzE7MTExMiAxMTYxIDExQzA7CitENTcyO0Q1NzI7MTExMiAxMTYxIDExQzE7RDU3MjsxMTEyIDExNjEgMTFDMTsKK0Q1NzM7RDU3MzsxMTEyIDExNjEgMTFDMjtENTczOzExMTIgMTE2MSAxMUMyOworRDU3NDtENTc0OzExMTIgMTE2MjtENTc0OzExMTIgMTE2MjsKK0Q1NzU7RDU3NTsxMTEyIDExNjIgMTFBODtENTc1OzExMTIgMTE2MiAxMUE4OworRDU3NjtENTc2OzExMTIgMTE2MiAxMUE5O0Q1NzY7MTExMiAxMTYyIDExQTk7CitENTc3O0Q1Nzc7MTExMiAxMTYyIDExQUE7RDU3NzsxMTEyIDExNjIgMTFBQTsKK0Q1Nzg7RDU3ODsxMTEyIDExNjIgMTFBQjtENTc4OzExMTIgMTE2MiAxMUFCOworRDU3OTtENTc5OzExMTIgMTE2MiAxMUFDO0Q1Nzk7MTExMiAxMTYyIDExQUM7CitENTdBO0Q1N0E7MTExMiAxMTYyIDExQUQ7RDU3QTsxMTEyIDExNjIgMTFBRDsKK0Q1N0I7RDU3QjsxMTEyIDExNjIgMTFBRTtENTdCOzExMTIgMTE2MiAxMUFFOworRDU3QztENTdDOzExMTIgMTE2MiAxMUFGO0Q1N0M7MTExMiAxMTYyIDExQUY7CitENTdEO0Q1N0Q7MTExMiAxMTYyIDExQjA7RDU3RDsxMTEyIDExNjIgMTFCMDsKK0Q1N0U7RDU3RTsxMTEyIDExNjIgMTFCMTtENTdFOzExMTIgMTE2MiAxMUIxOworRDU3RjtENTdGOzExMTIgMTE2MiAxMUIyO0Q1N0Y7MTExMiAxMTYyIDExQjI7CitENTgwO0Q1ODA7MTExMiAxMTYyIDExQjM7RDU4MDsxMTEyIDExNjIgMTFCMzsKK0Q1ODE7RDU4MTsxMTEyIDExNjIgMTFCNDtENTgxOzExMTIgMTE2MiAxMUI0OworRDU4MjtENTgyOzExMTIgMTE2MiAxMUI1O0Q1ODI7MTExMiAxMTYyIDExQjU7CitENTgzO0Q1ODM7MTExMiAxMTYyIDExQjY7RDU4MzsxMTEyIDExNjIgMTFCNjsKK0Q1ODQ7RDU4NDsxMTEyIDExNjIgMTFCNztENTg0OzExMTIgMTE2MiAxMUI3OworRDU4NTtENTg1OzExMTIgMTE2MiAxMUI4O0Q1ODU7MTExMiAxMTYyIDExQjg7CitENTg2O0Q1ODY7MTExMiAxMTYyIDExQjk7RDU4NjsxMTEyIDExNjIgMTFCOTsKK0Q1ODc7RDU4NzsxMTEyIDExNjIgMTFCQTtENTg3OzExMTIgMTE2MiAxMUJBOworRDU4ODtENTg4OzExMTIgMTE2MiAxMUJCO0Q1ODg7MTExMiAxMTYyIDExQkI7CitENTg5O0Q1ODk7MTExMiAxMTYyIDExQkM7RDU4OTsxMTEyIDExNjIgMTFCQzsKK0Q1OEE7RDU4QTsxMTEyIDExNjIgMTFCRDtENThBOzExMTIgMTE2MiAxMUJEOworRDU4QjtENThCOzExMTIgMTE2MiAxMUJFO0Q1OEI7MTExMiAxMTYyIDExQkU7CitENThDO0Q1OEM7MTExMiAxMTYyIDExQkY7RDU4QzsxMTEyIDExNjIgMTFCRjsKK0Q1OEQ7RDU4RDsxMTEyIDExNjIgMTFDMDtENThEOzExMTIgMTE2MiAxMUMwOworRDU4RTtENThFOzExMTIgMTE2MiAxMUMxO0Q1OEU7MTExMiAxMTYyIDExQzE7CitENThGO0Q1OEY7MTExMiAxMTYyIDExQzI7RDU4RjsxMTEyIDExNjIgMTFDMjsKK0Q1OTA7RDU5MDsxMTEyIDExNjM7RDU5MDsxMTEyIDExNjM7CitENTkxO0Q1OTE7MTExMiAxMTYzIDExQTg7RDU5MTsxMTEyIDExNjMgMTFBODsKK0Q1OTI7RDU5MjsxMTEyIDExNjMgMTFBOTtENTkyOzExMTIgMTE2MyAxMUE5OworRDU5MztENTkzOzExMTIgMTE2MyAxMUFBO0Q1OTM7MTExMiAxMTYzIDExQUE7CitENTk0O0Q1OTQ7MTExMiAxMTYzIDExQUI7RDU5NDsxMTEyIDExNjMgMTFBQjsKK0Q1OTU7RDU5NTsxMTEyIDExNjMgMTFBQztENTk1OzExMTIgMTE2MyAxMUFDOworRDU5NjtENTk2OzExMTIgMTE2MyAxMUFEO0Q1OTY7MTExMiAxMTYzIDExQUQ7CitENTk3O0Q1OTc7MTExMiAxMTYzIDExQUU7RDU5NzsxMTEyIDExNjMgMTFBRTsKK0Q1OTg7RDU5ODsxMTEyIDExNjMgMTFBRjtENTk4OzExMTIgMTE2MyAxMUFGOworRDU5OTtENTk5OzExMTIgMTE2MyAxMUIwO0Q1OTk7MTExMiAxMTYzIDExQjA7CitENTlBO0Q1OUE7MTExMiAxMTYzIDExQjE7RDU5QTsxMTEyIDExNjMgMTFCMTsKK0Q1OUI7RDU5QjsxMTEyIDExNjMgMTFCMjtENTlCOzExMTIgMTE2MyAxMUIyOworRDU5QztENTlDOzExMTIgMTE2MyAxMUIzO0Q1OUM7MTExMiAxMTYzIDExQjM7CitENTlEO0Q1OUQ7MTExMiAxMTYzIDExQjQ7RDU5RDsxMTEyIDExNjMgMTFCNDsKK0Q1OUU7RDU5RTsxMTEyIDExNjMgMTFCNTtENTlFOzExMTIgMTE2MyAxMUI1OworRDU5RjtENTlGOzExMTIgMTE2MyAxMUI2O0Q1OUY7MTExMiAxMTYzIDExQjY7CitENUEwO0Q1QTA7MTExMiAxMTYzIDExQjc7RDVBMDsxMTEyIDExNjMgMTFCNzsKK0Q1QTE7RDVBMTsxMTEyIDExNjMgMTFCODtENUExOzExMTIgMTE2MyAxMUI4OworRDVBMjtENUEyOzExMTIgMTE2MyAxMUI5O0Q1QTI7MTExMiAxMTYzIDExQjk7CitENUEzO0Q1QTM7MTExMiAxMTYzIDExQkE7RDVBMzsxMTEyIDExNjMgMTFCQTsKK0Q1QTQ7RDVBNDsxMTEyIDExNjMgMTFCQjtENUE0OzExMTIgMTE2MyAxMUJCOworRDVBNTtENUE1OzExMTIgMTE2MyAxMUJDO0Q1QTU7MTExMiAxMTYzIDExQkM7CitENUE2O0Q1QTY7MTExMiAxMTYzIDExQkQ7RDVBNjsxMTEyIDExNjMgMTFCRDsKK0Q1QTc7RDVBNzsxMTEyIDExNjMgMTFCRTtENUE3OzExMTIgMTE2MyAxMUJFOworRDVBODtENUE4OzExMTIgMTE2MyAxMUJGO0Q1QTg7MTExMiAxMTYzIDExQkY7CitENUE5O0Q1QTk7MTExMiAxMTYzIDExQzA7RDVBOTsxMTEyIDExNjMgMTFDMDsKK0Q1QUE7RDVBQTsxMTEyIDExNjMgMTFDMTtENUFBOzExMTIgMTE2MyAxMUMxOworRDVBQjtENUFCOzExMTIgMTE2MyAxMUMyO0Q1QUI7MTExMiAxMTYzIDExQzI7CitENUFDO0Q1QUM7MTExMiAxMTY0O0Q1QUM7MTExMiAxMTY0OworRDVBRDtENUFEOzExMTIgMTE2NCAxMUE4O0Q1QUQ7MTExMiAxMTY0IDExQTg7CitENUFFO0Q1QUU7MTExMiAxMTY0IDExQTk7RDVBRTsxMTEyIDExNjQgMTFBOTsKK0Q1QUY7RDVBRjsxMTEyIDExNjQgMTFBQTtENUFGOzExMTIgMTE2NCAxMUFBOworRDVCMDtENUIwOzExMTIgMTE2NCAxMUFCO0Q1QjA7MTExMiAxMTY0IDExQUI7CitENUIxO0Q1QjE7MTExMiAxMTY0IDExQUM7RDVCMTsxMTEyIDExNjQgMTFBQzsKK0Q1QjI7RDVCMjsxMTEyIDExNjQgMTFBRDtENUIyOzExMTIgMTE2NCAxMUFEOworRDVCMztENUIzOzExMTIgMTE2NCAxMUFFO0Q1QjM7MTExMiAxMTY0IDExQUU7CitENUI0O0Q1QjQ7MTExMiAxMTY0IDExQUY7RDVCNDsxMTEyIDExNjQgMTFBRjsKK0Q1QjU7RDVCNTsxMTEyIDExNjQgMTFCMDtENUI1OzExMTIgMTE2NCAxMUIwOworRDVCNjtENUI2OzExMTIgMTE2NCAxMUIxO0Q1QjY7MTExMiAxMTY0IDExQjE7CitENUI3O0Q1Qjc7MTExMiAxMTY0IDExQjI7RDVCNzsxMTEyIDExNjQgMTFCMjsKK0Q1Qjg7RDVCODsxMTEyIDExNjQgMTFCMztENUI4OzExMTIgMTE2NCAxMUIzOworRDVCOTtENUI5OzExMTIgMTE2NCAxMUI0O0Q1Qjk7MTExMiAxMTY0IDExQjQ7CitENUJBO0Q1QkE7MTExMiAxMTY0IDExQjU7RDVCQTsxMTEyIDExNjQgMTFCNTsKK0Q1QkI7RDVCQjsxMTEyIDExNjQgMTFCNjtENUJCOzExMTIgMTE2NCAxMUI2OworRDVCQztENUJDOzExMTIgMTE2NCAxMUI3O0Q1QkM7MTExMiAxMTY0IDExQjc7CitENUJEO0Q1QkQ7MTExMiAxMTY0IDExQjg7RDVCRDsxMTEyIDExNjQgMTFCODsKK0Q1QkU7RDVCRTsxMTEyIDExNjQgMTFCOTtENUJFOzExMTIgMTE2NCAxMUI5OworRDVCRjtENUJGOzExMTIgMTE2NCAxMUJBO0Q1QkY7MTExMiAxMTY0IDExQkE7CitENUMwO0Q1QzA7MTExMiAxMTY0IDExQkI7RDVDMDsxMTEyIDExNjQgMTFCQjsKK0Q1QzE7RDVDMTsxMTEyIDExNjQgMTFCQztENUMxOzExMTIgMTE2NCAxMUJDOworRDVDMjtENUMyOzExMTIgMTE2NCAxMUJEO0Q1QzI7MTExMiAxMTY0IDExQkQ7CitENUMzO0Q1QzM7MTExMiAxMTY0IDExQkU7RDVDMzsxMTEyIDExNjQgMTFCRTsKK0Q1QzQ7RDVDNDsxMTEyIDExNjQgMTFCRjtENUM0OzExMTIgMTE2NCAxMUJGOworRDVDNTtENUM1OzExMTIgMTE2NCAxMUMwO0Q1QzU7MTExMiAxMTY0IDExQzA7CitENUM2O0Q1QzY7MTExMiAxMTY0IDExQzE7RDVDNjsxMTEyIDExNjQgMTFDMTsKK0Q1Qzc7RDVDNzsxMTEyIDExNjQgMTFDMjtENUM3OzExMTIgMTE2NCAxMUMyOworRDVDODtENUM4OzExMTIgMTE2NTtENUM4OzExMTIgMTE2NTsKK0Q1Qzk7RDVDOTsxMTEyIDExNjUgMTFBODtENUM5OzExMTIgMTE2NSAxMUE4OworRDVDQTtENUNBOzExMTIgMTE2NSAxMUE5O0Q1Q0E7MTExMiAxMTY1IDExQTk7CitENUNCO0Q1Q0I7MTExMiAxMTY1IDExQUE7RDVDQjsxMTEyIDExNjUgMTFBQTsKK0Q1Q0M7RDVDQzsxMTEyIDExNjUgMTFBQjtENUNDOzExMTIgMTE2NSAxMUFCOworRDVDRDtENUNEOzExMTIgMTE2NSAxMUFDO0Q1Q0Q7MTExMiAxMTY1IDExQUM7CitENUNFO0Q1Q0U7MTExMiAxMTY1IDExQUQ7RDVDRTsxMTEyIDExNjUgMTFBRDsKK0Q1Q0Y7RDVDRjsxMTEyIDExNjUgMTFBRTtENUNGOzExMTIgMTE2NSAxMUFFOworRDVEMDtENUQwOzExMTIgMTE2NSAxMUFGO0Q1RDA7MTExMiAxMTY1IDExQUY7CitENUQxO0Q1RDE7MTExMiAxMTY1IDExQjA7RDVEMTsxMTEyIDExNjUgMTFCMDsKK0Q1RDI7RDVEMjsxMTEyIDExNjUgMTFCMTtENUQyOzExMTIgMTE2NSAxMUIxOworRDVEMztENUQzOzExMTIgMTE2NSAxMUIyO0Q1RDM7MTExMiAxMTY1IDExQjI7CitENUQ0O0Q1RDQ7MTExMiAxMTY1IDExQjM7RDVENDsxMTEyIDExNjUgMTFCMzsKK0Q1RDU7RDVENTsxMTEyIDExNjUgMTFCNDtENUQ1OzExMTIgMTE2NSAxMUI0OworRDVENjtENUQ2OzExMTIgMTE2NSAxMUI1O0Q1RDY7MTExMiAxMTY1IDExQjU7CitENUQ3O0Q1RDc7MTExMiAxMTY1IDExQjY7RDVENzsxMTEyIDExNjUgMTFCNjsKK0Q1RDg7RDVEODsxMTEyIDExNjUgMTFCNztENUQ4OzExMTIgMTE2NSAxMUI3OworRDVEOTtENUQ5OzExMTIgMTE2NSAxMUI4O0Q1RDk7MTExMiAxMTY1IDExQjg7CitENURBO0Q1REE7MTExMiAxMTY1IDExQjk7RDVEQTsxMTEyIDExNjUgMTFCOTsKK0Q1REI7RDVEQjsxMTEyIDExNjUgMTFCQTtENURCOzExMTIgMTE2NSAxMUJBOworRDVEQztENURDOzExMTIgMTE2NSAxMUJCO0Q1REM7MTExMiAxMTY1IDExQkI7CitENUREO0Q1REQ7MTExMiAxMTY1IDExQkM7RDVERDsxMTEyIDExNjUgMTFCQzsKK0Q1REU7RDVERTsxMTEyIDExNjUgMTFCRDtENURFOzExMTIgMTE2NSAxMUJEOworRDVERjtENURGOzExMTIgMTE2NSAxMUJFO0Q1REY7MTExMiAxMTY1IDExQkU7CitENUUwO0Q1RTA7MTExMiAxMTY1IDExQkY7RDVFMDsxMTEyIDExNjUgMTFCRjsKK0Q1RTE7RDVFMTsxMTEyIDExNjUgMTFDMDtENUUxOzExMTIgMTE2NSAxMUMwOworRDVFMjtENUUyOzExMTIgMTE2NSAxMUMxO0Q1RTI7MTExMiAxMTY1IDExQzE7CitENUUzO0Q1RTM7MTExMiAxMTY1IDExQzI7RDVFMzsxMTEyIDExNjUgMTFDMjsKK0Q1RTQ7RDVFNDsxMTEyIDExNjY7RDVFNDsxMTEyIDExNjY7CitENUU1O0Q1RTU7MTExMiAxMTY2IDExQTg7RDVFNTsxMTEyIDExNjYgMTFBODsKK0Q1RTY7RDVFNjsxMTEyIDExNjYgMTFBOTtENUU2OzExMTIgMTE2NiAxMUE5OworRDVFNztENUU3OzExMTIgMTE2NiAxMUFBO0Q1RTc7MTExMiAxMTY2IDExQUE7CitENUU4O0Q1RTg7MTExMiAxMTY2IDExQUI7RDVFODsxMTEyIDExNjYgMTFBQjsKK0Q1RTk7RDVFOTsxMTEyIDExNjYgMTFBQztENUU5OzExMTIgMTE2NiAxMUFDOworRDVFQTtENUVBOzExMTIgMTE2NiAxMUFEO0Q1RUE7MTExMiAxMTY2IDExQUQ7CitENUVCO0Q1RUI7MTExMiAxMTY2IDExQUU7RDVFQjsxMTEyIDExNjYgMTFBRTsKK0Q1RUM7RDVFQzsxMTEyIDExNjYgMTFBRjtENUVDOzExMTIgMTE2NiAxMUFGOworRDVFRDtENUVEOzExMTIgMTE2NiAxMUIwO0Q1RUQ7MTExMiAxMTY2IDExQjA7CitENUVFO0Q1RUU7MTExMiAxMTY2IDExQjE7RDVFRTsxMTEyIDExNjYgMTFCMTsKK0Q1RUY7RDVFRjsxMTEyIDExNjYgMTFCMjtENUVGOzExMTIgMTE2NiAxMUIyOworRDVGMDtENUYwOzExMTIgMTE2NiAxMUIzO0Q1RjA7MTExMiAxMTY2IDExQjM7CitENUYxO0Q1RjE7MTExMiAxMTY2IDExQjQ7RDVGMTsxMTEyIDExNjYgMTFCNDsKK0Q1RjI7RDVGMjsxMTEyIDExNjYgMTFCNTtENUYyOzExMTIgMTE2NiAxMUI1OworRDVGMztENUYzOzExMTIgMTE2NiAxMUI2O0Q1RjM7MTExMiAxMTY2IDExQjY7CitENUY0O0Q1RjQ7MTExMiAxMTY2IDExQjc7RDVGNDsxMTEyIDExNjYgMTFCNzsKK0Q1RjU7RDVGNTsxMTEyIDExNjYgMTFCODtENUY1OzExMTIgMTE2NiAxMUI4OworRDVGNjtENUY2OzExMTIgMTE2NiAxMUI5O0Q1RjY7MTExMiAxMTY2IDExQjk7CitENUY3O0Q1Rjc7MTExMiAxMTY2IDExQkE7RDVGNzsxMTEyIDExNjYgMTFCQTsKK0Q1Rjg7RDVGODsxMTEyIDExNjYgMTFCQjtENUY4OzExMTIgMTE2NiAxMUJCOworRDVGOTtENUY5OzExMTIgMTE2NiAxMUJDO0Q1Rjk7MTExMiAxMTY2IDExQkM7CitENUZBO0Q1RkE7MTExMiAxMTY2IDExQkQ7RDVGQTsxMTEyIDExNjYgMTFCRDsKK0Q1RkI7RDVGQjsxMTEyIDExNjYgMTFCRTtENUZCOzExMTIgMTE2NiAxMUJFOworRDVGQztENUZDOzExMTIgMTE2NiAxMUJGO0Q1RkM7MTExMiAxMTY2IDExQkY7CitENUZEO0Q1RkQ7MTExMiAxMTY2IDExQzA7RDVGRDsxMTEyIDExNjYgMTFDMDsKK0Q1RkU7RDVGRTsxMTEyIDExNjYgMTFDMTtENUZFOzExMTIgMTE2NiAxMUMxOworRDVGRjtENUZGOzExMTIgMTE2NiAxMUMyO0Q1RkY7MTExMiAxMTY2IDExQzI7CitENjAwO0Q2MDA7MTExMiAxMTY3O0Q2MDA7MTExMiAxMTY3OworRDYwMTtENjAxOzExMTIgMTE2NyAxMUE4O0Q2MDE7MTExMiAxMTY3IDExQTg7CitENjAyO0Q2MDI7MTExMiAxMTY3IDExQTk7RDYwMjsxMTEyIDExNjcgMTFBOTsKK0Q2MDM7RDYwMzsxMTEyIDExNjcgMTFBQTtENjAzOzExMTIgMTE2NyAxMUFBOworRDYwNDtENjA0OzExMTIgMTE2NyAxMUFCO0Q2MDQ7MTExMiAxMTY3IDExQUI7CitENjA1O0Q2MDU7MTExMiAxMTY3IDExQUM7RDYwNTsxMTEyIDExNjcgMTFBQzsKK0Q2MDY7RDYwNjsxMTEyIDExNjcgMTFBRDtENjA2OzExMTIgMTE2NyAxMUFEOworRDYwNztENjA3OzExMTIgMTE2NyAxMUFFO0Q2MDc7MTExMiAxMTY3IDExQUU7CitENjA4O0Q2MDg7MTExMiAxMTY3IDExQUY7RDYwODsxMTEyIDExNjcgMTFBRjsKK0Q2MDk7RDYwOTsxMTEyIDExNjcgMTFCMDtENjA5OzExMTIgMTE2NyAxMUIwOworRDYwQTtENjBBOzExMTIgMTE2NyAxMUIxO0Q2MEE7MTExMiAxMTY3IDExQjE7CitENjBCO0Q2MEI7MTExMiAxMTY3IDExQjI7RDYwQjsxMTEyIDExNjcgMTFCMjsKK0Q2MEM7RDYwQzsxMTEyIDExNjcgMTFCMztENjBDOzExMTIgMTE2NyAxMUIzOworRDYwRDtENjBEOzExMTIgMTE2NyAxMUI0O0Q2MEQ7MTExMiAxMTY3IDExQjQ7CitENjBFO0Q2MEU7MTExMiAxMTY3IDExQjU7RDYwRTsxMTEyIDExNjcgMTFCNTsKK0Q2MEY7RDYwRjsxMTEyIDExNjcgMTFCNjtENjBGOzExMTIgMTE2NyAxMUI2OworRDYxMDtENjEwOzExMTIgMTE2NyAxMUI3O0Q2MTA7MTExMiAxMTY3IDExQjc7CitENjExO0Q2MTE7MTExMiAxMTY3IDExQjg7RDYxMTsxMTEyIDExNjcgMTFCODsKK0Q2MTI7RDYxMjsxMTEyIDExNjcgMTFCOTtENjEyOzExMTIgMTE2NyAxMUI5OworRDYxMztENjEzOzExMTIgMTE2NyAxMUJBO0Q2MTM7MTExMiAxMTY3IDExQkE7CitENjE0O0Q2MTQ7MTExMiAxMTY3IDExQkI7RDYxNDsxMTEyIDExNjcgMTFCQjsKK0Q2MTU7RDYxNTsxMTEyIDExNjcgMTFCQztENjE1OzExMTIgMTE2NyAxMUJDOworRDYxNjtENjE2OzExMTIgMTE2NyAxMUJEO0Q2MTY7MTExMiAxMTY3IDExQkQ7CitENjE3O0Q2MTc7MTExMiAxMTY3IDExQkU7RDYxNzsxMTEyIDExNjcgMTFCRTsKK0Q2MTg7RDYxODsxMTEyIDExNjcgMTFCRjtENjE4OzExMTIgMTE2NyAxMUJGOworRDYxOTtENjE5OzExMTIgMTE2NyAxMUMwO0Q2MTk7MTExMiAxMTY3IDExQzA7CitENjFBO0Q2MUE7MTExMiAxMTY3IDExQzE7RDYxQTsxMTEyIDExNjcgMTFDMTsKK0Q2MUI7RDYxQjsxMTEyIDExNjcgMTFDMjtENjFCOzExMTIgMTE2NyAxMUMyOworRDYxQztENjFDOzExMTIgMTE2ODtENjFDOzExMTIgMTE2ODsKK0Q2MUQ7RDYxRDsxMTEyIDExNjggMTFBODtENjFEOzExMTIgMTE2OCAxMUE4OworRDYxRTtENjFFOzExMTIgMTE2OCAxMUE5O0Q2MUU7MTExMiAxMTY4IDExQTk7CitENjFGO0Q2MUY7MTExMiAxMTY4IDExQUE7RDYxRjsxMTEyIDExNjggMTFBQTsKK0Q2MjA7RDYyMDsxMTEyIDExNjggMTFBQjtENjIwOzExMTIgMTE2OCAxMUFCOworRDYyMTtENjIxOzExMTIgMTE2OCAxMUFDO0Q2MjE7MTExMiAxMTY4IDExQUM7CitENjIyO0Q2MjI7MTExMiAxMTY4IDExQUQ7RDYyMjsxMTEyIDExNjggMTFBRDsKK0Q2MjM7RDYyMzsxMTEyIDExNjggMTFBRTtENjIzOzExMTIgMTE2OCAxMUFFOworRDYyNDtENjI0OzExMTIgMTE2OCAxMUFGO0Q2MjQ7MTExMiAxMTY4IDExQUY7CitENjI1O0Q2MjU7MTExMiAxMTY4IDExQjA7RDYyNTsxMTEyIDExNjggMTFCMDsKK0Q2MjY7RDYyNjsxMTEyIDExNjggMTFCMTtENjI2OzExMTIgMTE2OCAxMUIxOworRDYyNztENjI3OzExMTIgMTE2OCAxMUIyO0Q2Mjc7MTExMiAxMTY4IDExQjI7CitENjI4O0Q2Mjg7MTExMiAxMTY4IDExQjM7RDYyODsxMTEyIDExNjggMTFCMzsKK0Q2Mjk7RDYyOTsxMTEyIDExNjggMTFCNDtENjI5OzExMTIgMTE2OCAxMUI0OworRDYyQTtENjJBOzExMTIgMTE2OCAxMUI1O0Q2MkE7MTExMiAxMTY4IDExQjU7CitENjJCO0Q2MkI7MTExMiAxMTY4IDExQjY7RDYyQjsxMTEyIDExNjggMTFCNjsKK0Q2MkM7RDYyQzsxMTEyIDExNjggMTFCNztENjJDOzExMTIgMTE2OCAxMUI3OworRDYyRDtENjJEOzExMTIgMTE2OCAxMUI4O0Q2MkQ7MTExMiAxMTY4IDExQjg7CitENjJFO0Q2MkU7MTExMiAxMTY4IDExQjk7RDYyRTsxMTEyIDExNjggMTFCOTsKK0Q2MkY7RDYyRjsxMTEyIDExNjggMTFCQTtENjJGOzExMTIgMTE2OCAxMUJBOworRDYzMDtENjMwOzExMTIgMTE2OCAxMUJCO0Q2MzA7MTExMiAxMTY4IDExQkI7CitENjMxO0Q2MzE7MTExMiAxMTY4IDExQkM7RDYzMTsxMTEyIDExNjggMTFCQzsKK0Q2MzI7RDYzMjsxMTEyIDExNjggMTFCRDtENjMyOzExMTIgMTE2OCAxMUJEOworRDYzMztENjMzOzExMTIgMTE2OCAxMUJFO0Q2MzM7MTExMiAxMTY4IDExQkU7CitENjM0O0Q2MzQ7MTExMiAxMTY4IDExQkY7RDYzNDsxMTEyIDExNjggMTFCRjsKK0Q2MzU7RDYzNTsxMTEyIDExNjggMTFDMDtENjM1OzExMTIgMTE2OCAxMUMwOworRDYzNjtENjM2OzExMTIgMTE2OCAxMUMxO0Q2MzY7MTExMiAxMTY4IDExQzE7CitENjM3O0Q2Mzc7MTExMiAxMTY4IDExQzI7RDYzNzsxMTEyIDExNjggMTFDMjsKK0Q2Mzg7RDYzODsxMTEyIDExNjk7RDYzODsxMTEyIDExNjk7CitENjM5O0Q2Mzk7MTExMiAxMTY5IDExQTg7RDYzOTsxMTEyIDExNjkgMTFBODsKK0Q2M0E7RDYzQTsxMTEyIDExNjkgMTFBOTtENjNBOzExMTIgMTE2OSAxMUE5OworRDYzQjtENjNCOzExMTIgMTE2OSAxMUFBO0Q2M0I7MTExMiAxMTY5IDExQUE7CitENjNDO0Q2M0M7MTExMiAxMTY5IDExQUI7RDYzQzsxMTEyIDExNjkgMTFBQjsKK0Q2M0Q7RDYzRDsxMTEyIDExNjkgMTFBQztENjNEOzExMTIgMTE2OSAxMUFDOworRDYzRTtENjNFOzExMTIgMTE2OSAxMUFEO0Q2M0U7MTExMiAxMTY5IDExQUQ7CitENjNGO0Q2M0Y7MTExMiAxMTY5IDExQUU7RDYzRjsxMTEyIDExNjkgMTFBRTsKK0Q2NDA7RDY0MDsxMTEyIDExNjkgMTFBRjtENjQwOzExMTIgMTE2OSAxMUFGOworRDY0MTtENjQxOzExMTIgMTE2OSAxMUIwO0Q2NDE7MTExMiAxMTY5IDExQjA7CitENjQyO0Q2NDI7MTExMiAxMTY5IDExQjE7RDY0MjsxMTEyIDExNjkgMTFCMTsKK0Q2NDM7RDY0MzsxMTEyIDExNjkgMTFCMjtENjQzOzExMTIgMTE2OSAxMUIyOworRDY0NDtENjQ0OzExMTIgMTE2OSAxMUIzO0Q2NDQ7MTExMiAxMTY5IDExQjM7CitENjQ1O0Q2NDU7MTExMiAxMTY5IDExQjQ7RDY0NTsxMTEyIDExNjkgMTFCNDsKK0Q2NDY7RDY0NjsxMTEyIDExNjkgMTFCNTtENjQ2OzExMTIgMTE2OSAxMUI1OworRDY0NztENjQ3OzExMTIgMTE2OSAxMUI2O0Q2NDc7MTExMiAxMTY5IDExQjY7CitENjQ4O0Q2NDg7MTExMiAxMTY5IDExQjc7RDY0ODsxMTEyIDExNjkgMTFCNzsKK0Q2NDk7RDY0OTsxMTEyIDExNjkgMTFCODtENjQ5OzExMTIgMTE2OSAxMUI4OworRDY0QTtENjRBOzExMTIgMTE2OSAxMUI5O0Q2NEE7MTExMiAxMTY5IDExQjk7CitENjRCO0Q2NEI7MTExMiAxMTY5IDExQkE7RDY0QjsxMTEyIDExNjkgMTFCQTsKK0Q2NEM7RDY0QzsxMTEyIDExNjkgMTFCQjtENjRDOzExMTIgMTE2OSAxMUJCOworRDY0RDtENjREOzExMTIgMTE2OSAxMUJDO0Q2NEQ7MTExMiAxMTY5IDExQkM7CitENjRFO0Q2NEU7MTExMiAxMTY5IDExQkQ7RDY0RTsxMTEyIDExNjkgMTFCRDsKK0Q2NEY7RDY0RjsxMTEyIDExNjkgMTFCRTtENjRGOzExMTIgMTE2OSAxMUJFOworRDY1MDtENjUwOzExMTIgMTE2OSAxMUJGO0Q2NTA7MTExMiAxMTY5IDExQkY7CitENjUxO0Q2NTE7MTExMiAxMTY5IDExQzA7RDY1MTsxMTEyIDExNjkgMTFDMDsKK0Q2NTI7RDY1MjsxMTEyIDExNjkgMTFDMTtENjUyOzExMTIgMTE2OSAxMUMxOworRDY1MztENjUzOzExMTIgMTE2OSAxMUMyO0Q2NTM7MTExMiAxMTY5IDExQzI7CitENjU0O0Q2NTQ7MTExMiAxMTZBO0Q2NTQ7MTExMiAxMTZBOworRDY1NTtENjU1OzExMTIgMTE2QSAxMUE4O0Q2NTU7MTExMiAxMTZBIDExQTg7CitENjU2O0Q2NTY7MTExMiAxMTZBIDExQTk7RDY1NjsxMTEyIDExNkEgMTFBOTsKK0Q2NTc7RDY1NzsxMTEyIDExNkEgMTFBQTtENjU3OzExMTIgMTE2QSAxMUFBOworRDY1ODtENjU4OzExMTIgMTE2QSAxMUFCO0Q2NTg7MTExMiAxMTZBIDExQUI7CitENjU5O0Q2NTk7MTExMiAxMTZBIDExQUM7RDY1OTsxMTEyIDExNkEgMTFBQzsKK0Q2NUE7RDY1QTsxMTEyIDExNkEgMTFBRDtENjVBOzExMTIgMTE2QSAxMUFEOworRDY1QjtENjVCOzExMTIgMTE2QSAxMUFFO0Q2NUI7MTExMiAxMTZBIDExQUU7CitENjVDO0Q2NUM7MTExMiAxMTZBIDExQUY7RDY1QzsxMTEyIDExNkEgMTFBRjsKK0Q2NUQ7RDY1RDsxMTEyIDExNkEgMTFCMDtENjVEOzExMTIgMTE2QSAxMUIwOworRDY1RTtENjVFOzExMTIgMTE2QSAxMUIxO0Q2NUU7MTExMiAxMTZBIDExQjE7CitENjVGO0Q2NUY7MTExMiAxMTZBIDExQjI7RDY1RjsxMTEyIDExNkEgMTFCMjsKK0Q2NjA7RDY2MDsxMTEyIDExNkEgMTFCMztENjYwOzExMTIgMTE2QSAxMUIzOworRDY2MTtENjYxOzExMTIgMTE2QSAxMUI0O0Q2NjE7MTExMiAxMTZBIDExQjQ7CitENjYyO0Q2NjI7MTExMiAxMTZBIDExQjU7RDY2MjsxMTEyIDExNkEgMTFCNTsKK0Q2NjM7RDY2MzsxMTEyIDExNkEgMTFCNjtENjYzOzExMTIgMTE2QSAxMUI2OworRDY2NDtENjY0OzExMTIgMTE2QSAxMUI3O0Q2NjQ7MTExMiAxMTZBIDExQjc7CitENjY1O0Q2NjU7MTExMiAxMTZBIDExQjg7RDY2NTsxMTEyIDExNkEgMTFCODsKK0Q2NjY7RDY2NjsxMTEyIDExNkEgMTFCOTtENjY2OzExMTIgMTE2QSAxMUI5OworRDY2NztENjY3OzExMTIgMTE2QSAxMUJBO0Q2Njc7MTExMiAxMTZBIDExQkE7CitENjY4O0Q2Njg7MTExMiAxMTZBIDExQkI7RDY2ODsxMTEyIDExNkEgMTFCQjsKK0Q2Njk7RDY2OTsxMTEyIDExNkEgMTFCQztENjY5OzExMTIgMTE2QSAxMUJDOworRDY2QTtENjZBOzExMTIgMTE2QSAxMUJEO0Q2NkE7MTExMiAxMTZBIDExQkQ7CitENjZCO0Q2NkI7MTExMiAxMTZBIDExQkU7RDY2QjsxMTEyIDExNkEgMTFCRTsKK0Q2NkM7RDY2QzsxMTEyIDExNkEgMTFCRjtENjZDOzExMTIgMTE2QSAxMUJGOworRDY2RDtENjZEOzExMTIgMTE2QSAxMUMwO0Q2NkQ7MTExMiAxMTZBIDExQzA7CitENjZFO0Q2NkU7MTExMiAxMTZBIDExQzE7RDY2RTsxMTEyIDExNkEgMTFDMTsKK0Q2NkY7RDY2RjsxMTEyIDExNkEgMTFDMjtENjZGOzExMTIgMTE2QSAxMUMyOworRDY3MDtENjcwOzExMTIgMTE2QjtENjcwOzExMTIgMTE2QjsKK0Q2NzE7RDY3MTsxMTEyIDExNkIgMTFBODtENjcxOzExMTIgMTE2QiAxMUE4OworRDY3MjtENjcyOzExMTIgMTE2QiAxMUE5O0Q2NzI7MTExMiAxMTZCIDExQTk7CitENjczO0Q2NzM7MTExMiAxMTZCIDExQUE7RDY3MzsxMTEyIDExNkIgMTFBQTsKK0Q2NzQ7RDY3NDsxMTEyIDExNkIgMTFBQjtENjc0OzExMTIgMTE2QiAxMUFCOworRDY3NTtENjc1OzExMTIgMTE2QiAxMUFDO0Q2NzU7MTExMiAxMTZCIDExQUM7CitENjc2O0Q2NzY7MTExMiAxMTZCIDExQUQ7RDY3NjsxMTEyIDExNkIgMTFBRDsKK0Q2Nzc7RDY3NzsxMTEyIDExNkIgMTFBRTtENjc3OzExMTIgMTE2QiAxMUFFOworRDY3ODtENjc4OzExMTIgMTE2QiAxMUFGO0Q2Nzg7MTExMiAxMTZCIDExQUY7CitENjc5O0Q2Nzk7MTExMiAxMTZCIDExQjA7RDY3OTsxMTEyIDExNkIgMTFCMDsKK0Q2N0E7RDY3QTsxMTEyIDExNkIgMTFCMTtENjdBOzExMTIgMTE2QiAxMUIxOworRDY3QjtENjdCOzExMTIgMTE2QiAxMUIyO0Q2N0I7MTExMiAxMTZCIDExQjI7CitENjdDO0Q2N0M7MTExMiAxMTZCIDExQjM7RDY3QzsxMTEyIDExNkIgMTFCMzsKK0Q2N0Q7RDY3RDsxMTEyIDExNkIgMTFCNDtENjdEOzExMTIgMTE2QiAxMUI0OworRDY3RTtENjdFOzExMTIgMTE2QiAxMUI1O0Q2N0U7MTExMiAxMTZCIDExQjU7CitENjdGO0Q2N0Y7MTExMiAxMTZCIDExQjY7RDY3RjsxMTEyIDExNkIgMTFCNjsKK0Q2ODA7RDY4MDsxMTEyIDExNkIgMTFCNztENjgwOzExMTIgMTE2QiAxMUI3OworRDY4MTtENjgxOzExMTIgMTE2QiAxMUI4O0Q2ODE7MTExMiAxMTZCIDExQjg7CitENjgyO0Q2ODI7MTExMiAxMTZCIDExQjk7RDY4MjsxMTEyIDExNkIgMTFCOTsKK0Q2ODM7RDY4MzsxMTEyIDExNkIgMTFCQTtENjgzOzExMTIgMTE2QiAxMUJBOworRDY4NDtENjg0OzExMTIgMTE2QiAxMUJCO0Q2ODQ7MTExMiAxMTZCIDExQkI7CitENjg1O0Q2ODU7MTExMiAxMTZCIDExQkM7RDY4NTsxMTEyIDExNkIgMTFCQzsKK0Q2ODY7RDY4NjsxMTEyIDExNkIgMTFCRDtENjg2OzExMTIgMTE2QiAxMUJEOworRDY4NztENjg3OzExMTIgMTE2QiAxMUJFO0Q2ODc7MTExMiAxMTZCIDExQkU7CitENjg4O0Q2ODg7MTExMiAxMTZCIDExQkY7RDY4ODsxMTEyIDExNkIgMTFCRjsKK0Q2ODk7RDY4OTsxMTEyIDExNkIgMTFDMDtENjg5OzExMTIgMTE2QiAxMUMwOworRDY4QTtENjhBOzExMTIgMTE2QiAxMUMxO0Q2OEE7MTExMiAxMTZCIDExQzE7CitENjhCO0Q2OEI7MTExMiAxMTZCIDExQzI7RDY4QjsxMTEyIDExNkIgMTFDMjsKK0Q2OEM7RDY4QzsxMTEyIDExNkM7RDY4QzsxMTEyIDExNkM7CitENjhEO0Q2OEQ7MTExMiAxMTZDIDExQTg7RDY4RDsxMTEyIDExNkMgMTFBODsKK0Q2OEU7RDY4RTsxMTEyIDExNkMgMTFBOTtENjhFOzExMTIgMTE2QyAxMUE5OworRDY4RjtENjhGOzExMTIgMTE2QyAxMUFBO0Q2OEY7MTExMiAxMTZDIDExQUE7CitENjkwO0Q2OTA7MTExMiAxMTZDIDExQUI7RDY5MDsxMTEyIDExNkMgMTFBQjsKK0Q2OTE7RDY5MTsxMTEyIDExNkMgMTFBQztENjkxOzExMTIgMTE2QyAxMUFDOworRDY5MjtENjkyOzExMTIgMTE2QyAxMUFEO0Q2OTI7MTExMiAxMTZDIDExQUQ7CitENjkzO0Q2OTM7MTExMiAxMTZDIDExQUU7RDY5MzsxMTEyIDExNkMgMTFBRTsKK0Q2OTQ7RDY5NDsxMTEyIDExNkMgMTFBRjtENjk0OzExMTIgMTE2QyAxMUFGOworRDY5NTtENjk1OzExMTIgMTE2QyAxMUIwO0Q2OTU7MTExMiAxMTZDIDExQjA7CitENjk2O0Q2OTY7MTExMiAxMTZDIDExQjE7RDY5NjsxMTEyIDExNkMgMTFCMTsKK0Q2OTc7RDY5NzsxMTEyIDExNkMgMTFCMjtENjk3OzExMTIgMTE2QyAxMUIyOworRDY5ODtENjk4OzExMTIgMTE2QyAxMUIzO0Q2OTg7MTExMiAxMTZDIDExQjM7CitENjk5O0Q2OTk7MTExMiAxMTZDIDExQjQ7RDY5OTsxMTEyIDExNkMgMTFCNDsKK0Q2OUE7RDY5QTsxMTEyIDExNkMgMTFCNTtENjlBOzExMTIgMTE2QyAxMUI1OworRDY5QjtENjlCOzExMTIgMTE2QyAxMUI2O0Q2OUI7MTExMiAxMTZDIDExQjY7CitENjlDO0Q2OUM7MTExMiAxMTZDIDExQjc7RDY5QzsxMTEyIDExNkMgMTFCNzsKK0Q2OUQ7RDY5RDsxMTEyIDExNkMgMTFCODtENjlEOzExMTIgMTE2QyAxMUI4OworRDY5RTtENjlFOzExMTIgMTE2QyAxMUI5O0Q2OUU7MTExMiAxMTZDIDExQjk7CitENjlGO0Q2OUY7MTExMiAxMTZDIDExQkE7RDY5RjsxMTEyIDExNkMgMTFCQTsKK0Q2QTA7RDZBMDsxMTEyIDExNkMgMTFCQjtENkEwOzExMTIgMTE2QyAxMUJCOworRDZBMTtENkExOzExMTIgMTE2QyAxMUJDO0Q2QTE7MTExMiAxMTZDIDExQkM7CitENkEyO0Q2QTI7MTExMiAxMTZDIDExQkQ7RDZBMjsxMTEyIDExNkMgMTFCRDsKK0Q2QTM7RDZBMzsxMTEyIDExNkMgMTFCRTtENkEzOzExMTIgMTE2QyAxMUJFOworRDZBNDtENkE0OzExMTIgMTE2QyAxMUJGO0Q2QTQ7MTExMiAxMTZDIDExQkY7CitENkE1O0Q2QTU7MTExMiAxMTZDIDExQzA7RDZBNTsxMTEyIDExNkMgMTFDMDsKK0Q2QTY7RDZBNjsxMTEyIDExNkMgMTFDMTtENkE2OzExMTIgMTE2QyAxMUMxOworRDZBNztENkE3OzExMTIgMTE2QyAxMUMyO0Q2QTc7MTExMiAxMTZDIDExQzI7CitENkE4O0Q2QTg7MTExMiAxMTZEO0Q2QTg7MTExMiAxMTZEOworRDZBOTtENkE5OzExMTIgMTE2RCAxMUE4O0Q2QTk7MTExMiAxMTZEIDExQTg7CitENkFBO0Q2QUE7MTExMiAxMTZEIDExQTk7RDZBQTsxMTEyIDExNkQgMTFBOTsKK0Q2QUI7RDZBQjsxMTEyIDExNkQgMTFBQTtENkFCOzExMTIgMTE2RCAxMUFBOworRDZBQztENkFDOzExMTIgMTE2RCAxMUFCO0Q2QUM7MTExMiAxMTZEIDExQUI7CitENkFEO0Q2QUQ7MTExMiAxMTZEIDExQUM7RDZBRDsxMTEyIDExNkQgMTFBQzsKK0Q2QUU7RDZBRTsxMTEyIDExNkQgMTFBRDtENkFFOzExMTIgMTE2RCAxMUFEOworRDZBRjtENkFGOzExMTIgMTE2RCAxMUFFO0Q2QUY7MTExMiAxMTZEIDExQUU7CitENkIwO0Q2QjA7MTExMiAxMTZEIDExQUY7RDZCMDsxMTEyIDExNkQgMTFBRjsKK0Q2QjE7RDZCMTsxMTEyIDExNkQgMTFCMDtENkIxOzExMTIgMTE2RCAxMUIwOworRDZCMjtENkIyOzExMTIgMTE2RCAxMUIxO0Q2QjI7MTExMiAxMTZEIDExQjE7CitENkIzO0Q2QjM7MTExMiAxMTZEIDExQjI7RDZCMzsxMTEyIDExNkQgMTFCMjsKK0Q2QjQ7RDZCNDsxMTEyIDExNkQgMTFCMztENkI0OzExMTIgMTE2RCAxMUIzOworRDZCNTtENkI1OzExMTIgMTE2RCAxMUI0O0Q2QjU7MTExMiAxMTZEIDExQjQ7CitENkI2O0Q2QjY7MTExMiAxMTZEIDExQjU7RDZCNjsxMTEyIDExNkQgMTFCNTsKK0Q2Qjc7RDZCNzsxMTEyIDExNkQgMTFCNjtENkI3OzExMTIgMTE2RCAxMUI2OworRDZCODtENkI4OzExMTIgMTE2RCAxMUI3O0Q2Qjg7MTExMiAxMTZEIDExQjc7CitENkI5O0Q2Qjk7MTExMiAxMTZEIDExQjg7RDZCOTsxMTEyIDExNkQgMTFCODsKK0Q2QkE7RDZCQTsxMTEyIDExNkQgMTFCOTtENkJBOzExMTIgMTE2RCAxMUI5OworRDZCQjtENkJCOzExMTIgMTE2RCAxMUJBO0Q2QkI7MTExMiAxMTZEIDExQkE7CitENkJDO0Q2QkM7MTExMiAxMTZEIDExQkI7RDZCQzsxMTEyIDExNkQgMTFCQjsKK0Q2QkQ7RDZCRDsxMTEyIDExNkQgMTFCQztENkJEOzExMTIgMTE2RCAxMUJDOworRDZCRTtENkJFOzExMTIgMTE2RCAxMUJEO0Q2QkU7MTExMiAxMTZEIDExQkQ7CitENkJGO0Q2QkY7MTExMiAxMTZEIDExQkU7RDZCRjsxMTEyIDExNkQgMTFCRTsKK0Q2QzA7RDZDMDsxMTEyIDExNkQgMTFCRjtENkMwOzExMTIgMTE2RCAxMUJGOworRDZDMTtENkMxOzExMTIgMTE2RCAxMUMwO0Q2QzE7MTExMiAxMTZEIDExQzA7CitENkMyO0Q2QzI7MTExMiAxMTZEIDExQzE7RDZDMjsxMTEyIDExNkQgMTFDMTsKK0Q2QzM7RDZDMzsxMTEyIDExNkQgMTFDMjtENkMzOzExMTIgMTE2RCAxMUMyOworRDZDNDtENkM0OzExMTIgMTE2RTtENkM0OzExMTIgMTE2RTsKK0Q2QzU7RDZDNTsxMTEyIDExNkUgMTFBODtENkM1OzExMTIgMTE2RSAxMUE4OworRDZDNjtENkM2OzExMTIgMTE2RSAxMUE5O0Q2QzY7MTExMiAxMTZFIDExQTk7CitENkM3O0Q2Qzc7MTExMiAxMTZFIDExQUE7RDZDNzsxMTEyIDExNkUgMTFBQTsKK0Q2Qzg7RDZDODsxMTEyIDExNkUgMTFBQjtENkM4OzExMTIgMTE2RSAxMUFCOworRDZDOTtENkM5OzExMTIgMTE2RSAxMUFDO0Q2Qzk7MTExMiAxMTZFIDExQUM7CitENkNBO0Q2Q0E7MTExMiAxMTZFIDExQUQ7RDZDQTsxMTEyIDExNkUgMTFBRDsKK0Q2Q0I7RDZDQjsxMTEyIDExNkUgMTFBRTtENkNCOzExMTIgMTE2RSAxMUFFOworRDZDQztENkNDOzExMTIgMTE2RSAxMUFGO0Q2Q0M7MTExMiAxMTZFIDExQUY7CitENkNEO0Q2Q0Q7MTExMiAxMTZFIDExQjA7RDZDRDsxMTEyIDExNkUgMTFCMDsKK0Q2Q0U7RDZDRTsxMTEyIDExNkUgMTFCMTtENkNFOzExMTIgMTE2RSAxMUIxOworRDZDRjtENkNGOzExMTIgMTE2RSAxMUIyO0Q2Q0Y7MTExMiAxMTZFIDExQjI7CitENkQwO0Q2RDA7MTExMiAxMTZFIDExQjM7RDZEMDsxMTEyIDExNkUgMTFCMzsKK0Q2RDE7RDZEMTsxMTEyIDExNkUgMTFCNDtENkQxOzExMTIgMTE2RSAxMUI0OworRDZEMjtENkQyOzExMTIgMTE2RSAxMUI1O0Q2RDI7MTExMiAxMTZFIDExQjU7CitENkQzO0Q2RDM7MTExMiAxMTZFIDExQjY7RDZEMzsxMTEyIDExNkUgMTFCNjsKK0Q2RDQ7RDZENDsxMTEyIDExNkUgMTFCNztENkQ0OzExMTIgMTE2RSAxMUI3OworRDZENTtENkQ1OzExMTIgMTE2RSAxMUI4O0Q2RDU7MTExMiAxMTZFIDExQjg7CitENkQ2O0Q2RDY7MTExMiAxMTZFIDExQjk7RDZENjsxMTEyIDExNkUgMTFCOTsKK0Q2RDc7RDZENzsxMTEyIDExNkUgMTFCQTtENkQ3OzExMTIgMTE2RSAxMUJBOworRDZEODtENkQ4OzExMTIgMTE2RSAxMUJCO0Q2RDg7MTExMiAxMTZFIDExQkI7CitENkQ5O0Q2RDk7MTExMiAxMTZFIDExQkM7RDZEOTsxMTEyIDExNkUgMTFCQzsKK0Q2REE7RDZEQTsxMTEyIDExNkUgMTFCRDtENkRBOzExMTIgMTE2RSAxMUJEOworRDZEQjtENkRCOzExMTIgMTE2RSAxMUJFO0Q2REI7MTExMiAxMTZFIDExQkU7CitENkRDO0Q2REM7MTExMiAxMTZFIDExQkY7RDZEQzsxMTEyIDExNkUgMTFCRjsKK0Q2REQ7RDZERDsxMTEyIDExNkUgMTFDMDtENkREOzExMTIgMTE2RSAxMUMwOworRDZERTtENkRFOzExMTIgMTE2RSAxMUMxO0Q2REU7MTExMiAxMTZFIDExQzE7CitENkRGO0Q2REY7MTExMiAxMTZFIDExQzI7RDZERjsxMTEyIDExNkUgMTFDMjsKK0Q2RTA7RDZFMDsxMTEyIDExNkY7RDZFMDsxMTEyIDExNkY7CitENkUxO0Q2RTE7MTExMiAxMTZGIDExQTg7RDZFMTsxMTEyIDExNkYgMTFBODsKK0Q2RTI7RDZFMjsxMTEyIDExNkYgMTFBOTtENkUyOzExMTIgMTE2RiAxMUE5OworRDZFMztENkUzOzExMTIgMTE2RiAxMUFBO0Q2RTM7MTExMiAxMTZGIDExQUE7CitENkU0O0Q2RTQ7MTExMiAxMTZGIDExQUI7RDZFNDsxMTEyIDExNkYgMTFBQjsKK0Q2RTU7RDZFNTsxMTEyIDExNkYgMTFBQztENkU1OzExMTIgMTE2RiAxMUFDOworRDZFNjtENkU2OzExMTIgMTE2RiAxMUFEO0Q2RTY7MTExMiAxMTZGIDExQUQ7CitENkU3O0Q2RTc7MTExMiAxMTZGIDExQUU7RDZFNzsxMTEyIDExNkYgMTFBRTsKK0Q2RTg7RDZFODsxMTEyIDExNkYgMTFBRjtENkU4OzExMTIgMTE2RiAxMUFGOworRDZFOTtENkU5OzExMTIgMTE2RiAxMUIwO0Q2RTk7MTExMiAxMTZGIDExQjA7CitENkVBO0Q2RUE7MTExMiAxMTZGIDExQjE7RDZFQTsxMTEyIDExNkYgMTFCMTsKK0Q2RUI7RDZFQjsxMTEyIDExNkYgMTFCMjtENkVCOzExMTIgMTE2RiAxMUIyOworRDZFQztENkVDOzExMTIgMTE2RiAxMUIzO0Q2RUM7MTExMiAxMTZGIDExQjM7CitENkVEO0Q2RUQ7MTExMiAxMTZGIDExQjQ7RDZFRDsxMTEyIDExNkYgMTFCNDsKK0Q2RUU7RDZFRTsxMTEyIDExNkYgMTFCNTtENkVFOzExMTIgMTE2RiAxMUI1OworRDZFRjtENkVGOzExMTIgMTE2RiAxMUI2O0Q2RUY7MTExMiAxMTZGIDExQjY7CitENkYwO0Q2RjA7MTExMiAxMTZGIDExQjc7RDZGMDsxMTEyIDExNkYgMTFCNzsKK0Q2RjE7RDZGMTsxMTEyIDExNkYgMTFCODtENkYxOzExMTIgMTE2RiAxMUI4OworRDZGMjtENkYyOzExMTIgMTE2RiAxMUI5O0Q2RjI7MTExMiAxMTZGIDExQjk7CitENkYzO0Q2RjM7MTExMiAxMTZGIDExQkE7RDZGMzsxMTEyIDExNkYgMTFCQTsKK0Q2RjQ7RDZGNDsxMTEyIDExNkYgMTFCQjtENkY0OzExMTIgMTE2RiAxMUJCOworRDZGNTtENkY1OzExMTIgMTE2RiAxMUJDO0Q2RjU7MTExMiAxMTZGIDExQkM7CitENkY2O0Q2RjY7MTExMiAxMTZGIDExQkQ7RDZGNjsxMTEyIDExNkYgMTFCRDsKK0Q2Rjc7RDZGNzsxMTEyIDExNkYgMTFCRTtENkY3OzExMTIgMTE2RiAxMUJFOworRDZGODtENkY4OzExMTIgMTE2RiAxMUJGO0Q2Rjg7MTExMiAxMTZGIDExQkY7CitENkY5O0Q2Rjk7MTExMiAxMTZGIDExQzA7RDZGOTsxMTEyIDExNkYgMTFDMDsKK0Q2RkE7RDZGQTsxMTEyIDExNkYgMTFDMTtENkZBOzExMTIgMTE2RiAxMUMxOworRDZGQjtENkZCOzExMTIgMTE2RiAxMUMyO0Q2RkI7MTExMiAxMTZGIDExQzI7CitENkZDO0Q2RkM7MTExMiAxMTcwO0Q2RkM7MTExMiAxMTcwOworRDZGRDtENkZEOzExMTIgMTE3MCAxMUE4O0Q2RkQ7MTExMiAxMTcwIDExQTg7CitENkZFO0Q2RkU7MTExMiAxMTcwIDExQTk7RDZGRTsxMTEyIDExNzAgMTFBOTsKK0Q2RkY7RDZGRjsxMTEyIDExNzAgMTFBQTtENkZGOzExMTIgMTE3MCAxMUFBOworRDcwMDtENzAwOzExMTIgMTE3MCAxMUFCO0Q3MDA7MTExMiAxMTcwIDExQUI7CitENzAxO0Q3MDE7MTExMiAxMTcwIDExQUM7RDcwMTsxMTEyIDExNzAgMTFBQzsKK0Q3MDI7RDcwMjsxMTEyIDExNzAgMTFBRDtENzAyOzExMTIgMTE3MCAxMUFEOworRDcwMztENzAzOzExMTIgMTE3MCAxMUFFO0Q3MDM7MTExMiAxMTcwIDExQUU7CitENzA0O0Q3MDQ7MTExMiAxMTcwIDExQUY7RDcwNDsxMTEyIDExNzAgMTFBRjsKK0Q3MDU7RDcwNTsxMTEyIDExNzAgMTFCMDtENzA1OzExMTIgMTE3MCAxMUIwOworRDcwNjtENzA2OzExMTIgMTE3MCAxMUIxO0Q3MDY7MTExMiAxMTcwIDExQjE7CitENzA3O0Q3MDc7MTExMiAxMTcwIDExQjI7RDcwNzsxMTEyIDExNzAgMTFCMjsKK0Q3MDg7RDcwODsxMTEyIDExNzAgMTFCMztENzA4OzExMTIgMTE3MCAxMUIzOworRDcwOTtENzA5OzExMTIgMTE3MCAxMUI0O0Q3MDk7MTExMiAxMTcwIDExQjQ7CitENzBBO0Q3MEE7MTExMiAxMTcwIDExQjU7RDcwQTsxMTEyIDExNzAgMTFCNTsKK0Q3MEI7RDcwQjsxMTEyIDExNzAgMTFCNjtENzBCOzExMTIgMTE3MCAxMUI2OworRDcwQztENzBDOzExMTIgMTE3MCAxMUI3O0Q3MEM7MTExMiAxMTcwIDExQjc7CitENzBEO0Q3MEQ7MTExMiAxMTcwIDExQjg7RDcwRDsxMTEyIDExNzAgMTFCODsKK0Q3MEU7RDcwRTsxMTEyIDExNzAgMTFCOTtENzBFOzExMTIgMTE3MCAxMUI5OworRDcwRjtENzBGOzExMTIgMTE3MCAxMUJBO0Q3MEY7MTExMiAxMTcwIDExQkE7CitENzEwO0Q3MTA7MTExMiAxMTcwIDExQkI7RDcxMDsxMTEyIDExNzAgMTFCQjsKK0Q3MTE7RDcxMTsxMTEyIDExNzAgMTFCQztENzExOzExMTIgMTE3MCAxMUJDOworRDcxMjtENzEyOzExMTIgMTE3MCAxMUJEO0Q3MTI7MTExMiAxMTcwIDExQkQ7CitENzEzO0Q3MTM7MTExMiAxMTcwIDExQkU7RDcxMzsxMTEyIDExNzAgMTFCRTsKK0Q3MTQ7RDcxNDsxMTEyIDExNzAgMTFCRjtENzE0OzExMTIgMTE3MCAxMUJGOworRDcxNTtENzE1OzExMTIgMTE3MCAxMUMwO0Q3MTU7MTExMiAxMTcwIDExQzA7CitENzE2O0Q3MTY7MTExMiAxMTcwIDExQzE7RDcxNjsxMTEyIDExNzAgMTFDMTsKK0Q3MTc7RDcxNzsxMTEyIDExNzAgMTFDMjtENzE3OzExMTIgMTE3MCAxMUMyOworRDcxODtENzE4OzExMTIgMTE3MTtENzE4OzExMTIgMTE3MTsKK0Q3MTk7RDcxOTsxMTEyIDExNzEgMTFBODtENzE5OzExMTIgMTE3MSAxMUE4OworRDcxQTtENzFBOzExMTIgMTE3MSAxMUE5O0Q3MUE7MTExMiAxMTcxIDExQTk7CitENzFCO0Q3MUI7MTExMiAxMTcxIDExQUE7RDcxQjsxMTEyIDExNzEgMTFBQTsKK0Q3MUM7RDcxQzsxMTEyIDExNzEgMTFBQjtENzFDOzExMTIgMTE3MSAxMUFCOworRDcxRDtENzFEOzExMTIgMTE3MSAxMUFDO0Q3MUQ7MTExMiAxMTcxIDExQUM7CitENzFFO0Q3MUU7MTExMiAxMTcxIDExQUQ7RDcxRTsxMTEyIDExNzEgMTFBRDsKK0Q3MUY7RDcxRjsxMTEyIDExNzEgMTFBRTtENzFGOzExMTIgMTE3MSAxMUFFOworRDcyMDtENzIwOzExMTIgMTE3MSAxMUFGO0Q3MjA7MTExMiAxMTcxIDExQUY7CitENzIxO0Q3MjE7MTExMiAxMTcxIDExQjA7RDcyMTsxMTEyIDExNzEgMTFCMDsKK0Q3MjI7RDcyMjsxMTEyIDExNzEgMTFCMTtENzIyOzExMTIgMTE3MSAxMUIxOworRDcyMztENzIzOzExMTIgMTE3MSAxMUIyO0Q3MjM7MTExMiAxMTcxIDExQjI7CitENzI0O0Q3MjQ7MTExMiAxMTcxIDExQjM7RDcyNDsxMTEyIDExNzEgMTFCMzsKK0Q3MjU7RDcyNTsxMTEyIDExNzEgMTFCNDtENzI1OzExMTIgMTE3MSAxMUI0OworRDcyNjtENzI2OzExMTIgMTE3MSAxMUI1O0Q3MjY7MTExMiAxMTcxIDExQjU7CitENzI3O0Q3Mjc7MTExMiAxMTcxIDExQjY7RDcyNzsxMTEyIDExNzEgMTFCNjsKK0Q3Mjg7RDcyODsxMTEyIDExNzEgMTFCNztENzI4OzExMTIgMTE3MSAxMUI3OworRDcyOTtENzI5OzExMTIgMTE3MSAxMUI4O0Q3Mjk7MTExMiAxMTcxIDExQjg7CitENzJBO0Q3MkE7MTExMiAxMTcxIDExQjk7RDcyQTsxMTEyIDExNzEgMTFCOTsKK0Q3MkI7RDcyQjsxMTEyIDExNzEgMTFCQTtENzJCOzExMTIgMTE3MSAxMUJBOworRDcyQztENzJDOzExMTIgMTE3MSAxMUJCO0Q3MkM7MTExMiAxMTcxIDExQkI7CitENzJEO0Q3MkQ7MTExMiAxMTcxIDExQkM7RDcyRDsxMTEyIDExNzEgMTFCQzsKK0Q3MkU7RDcyRTsxMTEyIDExNzEgMTFCRDtENzJFOzExMTIgMTE3MSAxMUJEOworRDcyRjtENzJGOzExMTIgMTE3MSAxMUJFO0Q3MkY7MTExMiAxMTcxIDExQkU7CitENzMwO0Q3MzA7MTExMiAxMTcxIDExQkY7RDczMDsxMTEyIDExNzEgMTFCRjsKK0Q3MzE7RDczMTsxMTEyIDExNzEgMTFDMDtENzMxOzExMTIgMTE3MSAxMUMwOworRDczMjtENzMyOzExMTIgMTE3MSAxMUMxO0Q3MzI7MTExMiAxMTcxIDExQzE7CitENzMzO0Q3MzM7MTExMiAxMTcxIDExQzI7RDczMzsxMTEyIDExNzEgMTFDMjsKK0Q3MzQ7RDczNDsxMTEyIDExNzI7RDczNDsxMTEyIDExNzI7CitENzM1O0Q3MzU7MTExMiAxMTcyIDExQTg7RDczNTsxMTEyIDExNzIgMTFBODsKK0Q3MzY7RDczNjsxMTEyIDExNzIgMTFBOTtENzM2OzExMTIgMTE3MiAxMUE5OworRDczNztENzM3OzExMTIgMTE3MiAxMUFBO0Q3Mzc7MTExMiAxMTcyIDExQUE7CitENzM4O0Q3Mzg7MTExMiAxMTcyIDExQUI7RDczODsxMTEyIDExNzIgMTFBQjsKK0Q3Mzk7RDczOTsxMTEyIDExNzIgMTFBQztENzM5OzExMTIgMTE3MiAxMUFDOworRDczQTtENzNBOzExMTIgMTE3MiAxMUFEO0Q3M0E7MTExMiAxMTcyIDExQUQ7CitENzNCO0Q3M0I7MTExMiAxMTcyIDExQUU7RDczQjsxMTEyIDExNzIgMTFBRTsKK0Q3M0M7RDczQzsxMTEyIDExNzIgMTFBRjtENzNDOzExMTIgMTE3MiAxMUFGOworRDczRDtENzNEOzExMTIgMTE3MiAxMUIwO0Q3M0Q7MTExMiAxMTcyIDExQjA7CitENzNFO0Q3M0U7MTExMiAxMTcyIDExQjE7RDczRTsxMTEyIDExNzIgMTFCMTsKK0Q3M0Y7RDczRjsxMTEyIDExNzIgMTFCMjtENzNGOzExMTIgMTE3MiAxMUIyOworRDc0MDtENzQwOzExMTIgMTE3MiAxMUIzO0Q3NDA7MTExMiAxMTcyIDExQjM7CitENzQxO0Q3NDE7MTExMiAxMTcyIDExQjQ7RDc0MTsxMTEyIDExNzIgMTFCNDsKK0Q3NDI7RDc0MjsxMTEyIDExNzIgMTFCNTtENzQyOzExMTIgMTE3MiAxMUI1OworRDc0MztENzQzOzExMTIgMTE3MiAxMUI2O0Q3NDM7MTExMiAxMTcyIDExQjY7CitENzQ0O0Q3NDQ7MTExMiAxMTcyIDExQjc7RDc0NDsxMTEyIDExNzIgMTFCNzsKK0Q3NDU7RDc0NTsxMTEyIDExNzIgMTFCODtENzQ1OzExMTIgMTE3MiAxMUI4OworRDc0NjtENzQ2OzExMTIgMTE3MiAxMUI5O0Q3NDY7MTExMiAxMTcyIDExQjk7CitENzQ3O0Q3NDc7MTExMiAxMTcyIDExQkE7RDc0NzsxMTEyIDExNzIgMTFCQTsKK0Q3NDg7RDc0ODsxMTEyIDExNzIgMTFCQjtENzQ4OzExMTIgMTE3MiAxMUJCOworRDc0OTtENzQ5OzExMTIgMTE3MiAxMUJDO0Q3NDk7MTExMiAxMTcyIDExQkM7CitENzRBO0Q3NEE7MTExMiAxMTcyIDExQkQ7RDc0QTsxMTEyIDExNzIgMTFCRDsKK0Q3NEI7RDc0QjsxMTEyIDExNzIgMTFCRTtENzRCOzExMTIgMTE3MiAxMUJFOworRDc0QztENzRDOzExMTIgMTE3MiAxMUJGO0Q3NEM7MTExMiAxMTcyIDExQkY7CitENzREO0Q3NEQ7MTExMiAxMTcyIDExQzA7RDc0RDsxMTEyIDExNzIgMTFDMDsKK0Q3NEU7RDc0RTsxMTEyIDExNzIgMTFDMTtENzRFOzExMTIgMTE3MiAxMUMxOworRDc0RjtENzRGOzExMTIgMTE3MiAxMUMyO0Q3NEY7MTExMiAxMTcyIDExQzI7CitENzUwO0Q3NTA7MTExMiAxMTczO0Q3NTA7MTExMiAxMTczOworRDc1MTtENzUxOzExMTIgMTE3MyAxMUE4O0Q3NTE7MTExMiAxMTczIDExQTg7CitENzUyO0Q3NTI7MTExMiAxMTczIDExQTk7RDc1MjsxMTEyIDExNzMgMTFBOTsKK0Q3NTM7RDc1MzsxMTEyIDExNzMgMTFBQTtENzUzOzExMTIgMTE3MyAxMUFBOworRDc1NDtENzU0OzExMTIgMTE3MyAxMUFCO0Q3NTQ7MTExMiAxMTczIDExQUI7CitENzU1O0Q3NTU7MTExMiAxMTczIDExQUM7RDc1NTsxMTEyIDExNzMgMTFBQzsKK0Q3NTY7RDc1NjsxMTEyIDExNzMgMTFBRDtENzU2OzExMTIgMTE3MyAxMUFEOworRDc1NztENzU3OzExMTIgMTE3MyAxMUFFO0Q3NTc7MTExMiAxMTczIDExQUU7CitENzU4O0Q3NTg7MTExMiAxMTczIDExQUY7RDc1ODsxMTEyIDExNzMgMTFBRjsKK0Q3NTk7RDc1OTsxMTEyIDExNzMgMTFCMDtENzU5OzExMTIgMTE3MyAxMUIwOworRDc1QTtENzVBOzExMTIgMTE3MyAxMUIxO0Q3NUE7MTExMiAxMTczIDExQjE7CitENzVCO0Q3NUI7MTExMiAxMTczIDExQjI7RDc1QjsxMTEyIDExNzMgMTFCMjsKK0Q3NUM7RDc1QzsxMTEyIDExNzMgMTFCMztENzVDOzExMTIgMTE3MyAxMUIzOworRDc1RDtENzVEOzExMTIgMTE3MyAxMUI0O0Q3NUQ7MTExMiAxMTczIDExQjQ7CitENzVFO0Q3NUU7MTExMiAxMTczIDExQjU7RDc1RTsxMTEyIDExNzMgMTFCNTsKK0Q3NUY7RDc1RjsxMTEyIDExNzMgMTFCNjtENzVGOzExMTIgMTE3MyAxMUI2OworRDc2MDtENzYwOzExMTIgMTE3MyAxMUI3O0Q3NjA7MTExMiAxMTczIDExQjc7CitENzYxO0Q3NjE7MTExMiAxMTczIDExQjg7RDc2MTsxMTEyIDExNzMgMTFCODsKK0Q3NjI7RDc2MjsxMTEyIDExNzMgMTFCOTtENzYyOzExMTIgMTE3MyAxMUI5OworRDc2MztENzYzOzExMTIgMTE3MyAxMUJBO0Q3NjM7MTExMiAxMTczIDExQkE7CitENzY0O0Q3NjQ7MTExMiAxMTczIDExQkI7RDc2NDsxMTEyIDExNzMgMTFCQjsKK0Q3NjU7RDc2NTsxMTEyIDExNzMgMTFCQztENzY1OzExMTIgMTE3MyAxMUJDOworRDc2NjtENzY2OzExMTIgMTE3MyAxMUJEO0Q3NjY7MTExMiAxMTczIDExQkQ7CitENzY3O0Q3Njc7MTExMiAxMTczIDExQkU7RDc2NzsxMTEyIDExNzMgMTFCRTsKK0Q3Njg7RDc2ODsxMTEyIDExNzMgMTFCRjtENzY4OzExMTIgMTE3MyAxMUJGOworRDc2OTtENzY5OzExMTIgMTE3MyAxMUMwO0Q3Njk7MTExMiAxMTczIDExQzA7CitENzZBO0Q3NkE7MTExMiAxMTczIDExQzE7RDc2QTsxMTEyIDExNzMgMTFDMTsKK0Q3NkI7RDc2QjsxMTEyIDExNzMgMTFDMjtENzZCOzExMTIgMTE3MyAxMUMyOworRDc2QztENzZDOzExMTIgMTE3NDtENzZDOzExMTIgMTE3NDsKK0Q3NkQ7RDc2RDsxMTEyIDExNzQgMTFBODtENzZEOzExMTIgMTE3NCAxMUE4OworRDc2RTtENzZFOzExMTIgMTE3NCAxMUE5O0Q3NkU7MTExMiAxMTc0IDExQTk7CitENzZGO0Q3NkY7MTExMiAxMTc0IDExQUE7RDc2RjsxMTEyIDExNzQgMTFBQTsKK0Q3NzA7RDc3MDsxMTEyIDExNzQgMTFBQjtENzcwOzExMTIgMTE3NCAxMUFCOworRDc3MTtENzcxOzExMTIgMTE3NCAxMUFDO0Q3NzE7MTExMiAxMTc0IDExQUM7CitENzcyO0Q3NzI7MTExMiAxMTc0IDExQUQ7RDc3MjsxMTEyIDExNzQgMTFBRDsKK0Q3NzM7RDc3MzsxMTEyIDExNzQgMTFBRTtENzczOzExMTIgMTE3NCAxMUFFOworRDc3NDtENzc0OzExMTIgMTE3NCAxMUFGO0Q3NzQ7MTExMiAxMTc0IDExQUY7CitENzc1O0Q3NzU7MTExMiAxMTc0IDExQjA7RDc3NTsxMTEyIDExNzQgMTFCMDsKK0Q3NzY7RDc3NjsxMTEyIDExNzQgMTFCMTtENzc2OzExMTIgMTE3NCAxMUIxOworRDc3NztENzc3OzExMTIgMTE3NCAxMUIyO0Q3Nzc7MTExMiAxMTc0IDExQjI7CitENzc4O0Q3Nzg7MTExMiAxMTc0IDExQjM7RDc3ODsxMTEyIDExNzQgMTFCMzsKK0Q3Nzk7RDc3OTsxMTEyIDExNzQgMTFCNDtENzc5OzExMTIgMTE3NCAxMUI0OworRDc3QTtENzdBOzExMTIgMTE3NCAxMUI1O0Q3N0E7MTExMiAxMTc0IDExQjU7CitENzdCO0Q3N0I7MTExMiAxMTc0IDExQjY7RDc3QjsxMTEyIDExNzQgMTFCNjsKK0Q3N0M7RDc3QzsxMTEyIDExNzQgMTFCNztENzdDOzExMTIgMTE3NCAxMUI3OworRDc3RDtENzdEOzExMTIgMTE3NCAxMUI4O0Q3N0Q7MTExMiAxMTc0IDExQjg7CitENzdFO0Q3N0U7MTExMiAxMTc0IDExQjk7RDc3RTsxMTEyIDExNzQgMTFCOTsKK0Q3N0Y7RDc3RjsxMTEyIDExNzQgMTFCQTtENzdGOzExMTIgMTE3NCAxMUJBOworRDc4MDtENzgwOzExMTIgMTE3NCAxMUJCO0Q3ODA7MTExMiAxMTc0IDExQkI7CitENzgxO0Q3ODE7MTExMiAxMTc0IDExQkM7RDc4MTsxMTEyIDExNzQgMTFCQzsKK0Q3ODI7RDc4MjsxMTEyIDExNzQgMTFCRDtENzgyOzExMTIgMTE3NCAxMUJEOworRDc4MztENzgzOzExMTIgMTE3NCAxMUJFO0Q3ODM7MTExMiAxMTc0IDExQkU7CitENzg0O0Q3ODQ7MTExMiAxMTc0IDExQkY7RDc4NDsxMTEyIDExNzQgMTFCRjsKK0Q3ODU7RDc4NTsxMTEyIDExNzQgMTFDMDtENzg1OzExMTIgMTE3NCAxMUMwOworRDc4NjtENzg2OzExMTIgMTE3NCAxMUMxO0Q3ODY7MTExMiAxMTc0IDExQzE7CitENzg3O0Q3ODc7MTExMiAxMTc0IDExQzI7RDc4NzsxMTEyIDExNzQgMTFDMjsKK0Q3ODg7RDc4ODsxMTEyIDExNzU7RDc4ODsxMTEyIDExNzU7CitENzg5O0Q3ODk7MTExMiAxMTc1IDExQTg7RDc4OTsxMTEyIDExNzUgMTFBODsKK0Q3OEE7RDc4QTsxMTEyIDExNzUgMTFBOTtENzhBOzExMTIgMTE3NSAxMUE5OworRDc4QjtENzhCOzExMTIgMTE3NSAxMUFBO0Q3OEI7MTExMiAxMTc1IDExQUE7CitENzhDO0Q3OEM7MTExMiAxMTc1IDExQUI7RDc4QzsxMTEyIDExNzUgMTFBQjsKK0Q3OEQ7RDc4RDsxMTEyIDExNzUgMTFBQztENzhEOzExMTIgMTE3NSAxMUFDOworRDc4RTtENzhFOzExMTIgMTE3NSAxMUFEO0Q3OEU7MTExMiAxMTc1IDExQUQ7CitENzhGO0Q3OEY7MTExMiAxMTc1IDExQUU7RDc4RjsxMTEyIDExNzUgMTFBRTsKK0Q3OTA7RDc5MDsxMTEyIDExNzUgMTFBRjtENzkwOzExMTIgMTE3NSAxMUFGOworRDc5MTtENzkxOzExMTIgMTE3NSAxMUIwO0Q3OTE7MTExMiAxMTc1IDExQjA7CitENzkyO0Q3OTI7MTExMiAxMTc1IDExQjE7RDc5MjsxMTEyIDExNzUgMTFCMTsKK0Q3OTM7RDc5MzsxMTEyIDExNzUgMTFCMjtENzkzOzExMTIgMTE3NSAxMUIyOworRDc5NDtENzk0OzExMTIgMTE3NSAxMUIzO0Q3OTQ7MTExMiAxMTc1IDExQjM7CitENzk1O0Q3OTU7MTExMiAxMTc1IDExQjQ7RDc5NTsxMTEyIDExNzUgMTFCNDsKK0Q3OTY7RDc5NjsxMTEyIDExNzUgMTFCNTtENzk2OzExMTIgMTE3NSAxMUI1OworRDc5NztENzk3OzExMTIgMTE3NSAxMUI2O0Q3OTc7MTExMiAxMTc1IDExQjY7CitENzk4O0Q3OTg7MTExMiAxMTc1IDExQjc7RDc5ODsxMTEyIDExNzUgMTFCNzsKK0Q3OTk7RDc5OTsxMTEyIDExNzUgMTFCODtENzk5OzExMTIgMTE3NSAxMUI4OworRDc5QTtENzlBOzExMTIgMTE3NSAxMUI5O0Q3OUE7MTExMiAxMTc1IDExQjk7CitENzlCO0Q3OUI7MTExMiAxMTc1IDExQkE7RDc5QjsxMTEyIDExNzUgMTFCQTsKK0Q3OUM7RDc5QzsxMTEyIDExNzUgMTFCQjtENzlDOzExMTIgMTE3NSAxMUJCOworRDc5RDtENzlEOzExMTIgMTE3NSAxMUJDO0Q3OUQ7MTExMiAxMTc1IDExQkM7CitENzlFO0Q3OUU7MTExMiAxMTc1IDExQkQ7RDc5RTsxMTEyIDExNzUgMTFCRDsKK0Q3OUY7RDc5RjsxMTEyIDExNzUgMTFCRTtENzlGOzExMTIgMTE3NSAxMUJFOworRDdBMDtEN0EwOzExMTIgMTE3NSAxMUJGO0Q3QTA7MTExMiAxMTc1IDExQkY7CitEN0ExO0Q3QTE7MTExMiAxMTc1IDExQzA7RDdBMTsxMTEyIDExNzUgMTFDMDsKK0Q3QTI7RDdBMjsxMTEyIDExNzUgMTFDMTtEN0EyOzExMTIgMTE3NSAxMUMxOworRDdBMztEN0EzOzExMTIgMTE3NSAxMUMyO0Q3QTM7MTExMiAxMTc1IDExQzI7CitGOTAwOzhDNDg7OEM0ODs4QzQ4OzhDNDg7CitGOTAxOzY2RjQ7NjZGNDs2NkY0OzY2RjQ7CitGOTAyOzhFQ0E7OEVDQTs4RUNBOzhFQ0E7CitGOTAzOzhDQzg7OENDODs4Q0M4OzhDQzg7CitGOTA0OzZFRDE7NkVEMTs2RUQxOzZFRDE7CitGOTA1OzRFMzI7NEUzMjs0RTMyOzRFMzI7CitGOTA2OzUzRTU7NTNFNTs1M0U1OzUzRTU7CitGOTA3OzlGOUM7OUY5Qzs5RjlDOzlGOUM7CitGOTA4OzlGOUM7OUY5Qzs5RjlDOzlGOUM7CitGOTA5OzU5NTE7NTk1MTs1OTUxOzU5NTE7CitGOTBBOzkxRDE7OTFEMTs5MUQxOzkxRDE7CitGOTBCOzU1ODc7NTU4Nzs1NTg3OzU1ODc7CitGOTBDOzU5NDg7NTk0ODs1OTQ4OzU5NDg7CitGOTBEOzYxRjY7NjFGNjs2MUY2OzYxRjY7CitGOTBFOzc2Njk7NzY2OTs3NjY5Ozc2Njk7CitGOTBGOzdGODU7N0Y4NTs3Rjg1OzdGODU7CitGOTEwOzg2M0Y7ODYzRjs4NjNGOzg2M0Y7CitGOTExOzg3QkE7ODdCQTs4N0JBOzg3QkE7CitGOTEyOzg4Rjg7ODhGODs4OEY4Ozg4Rjg7CitGOTEzOzkwOEY7OTA4Rjs5MDhGOzkwOEY7CitGOTE0OzZBMDI7NkEwMjs2QTAyOzZBMDI7CitGOTE1OzZEMUI7NkQxQjs2RDFCOzZEMUI7CitGOTE2OzcwRDk7NzBEOTs3MEQ5OzcwRDk7CitGOTE3OzczREU7NzNERTs3M0RFOzczREU7CitGOTE4Ozg0M0Q7ODQzRDs4NDNEOzg0M0Q7CitGOTE5OzkxNkE7OTE2QTs5MTZBOzkxNkE7CitGOTFBOzk5RjE7OTlGMTs5OUYxOzk5RjE7CitGOTFCOzRFODI7NEU4Mjs0RTgyOzRFODI7CitGOTFDOzUzNzU7NTM3NTs1Mzc1OzUzNzU7CitGOTFEOzZCMDQ7NkIwNDs2QjA0OzZCMDQ7CitGOTFFOzcyMUI7NzIxQjs3MjFCOzcyMUI7CitGOTFGOzg2MkQ7ODYyRDs4NjJEOzg2MkQ7CitGOTIwOzlFMUU7OUUxRTs5RTFFOzlFMUU7CitGOTIxOzVENTA7NUQ1MDs1RDUwOzVENTA7CitGOTIyOzZGRUI7NkZFQjs2RkVCOzZGRUI7CitGOTIzOzg1Q0Q7ODVDRDs4NUNEOzg1Q0Q7CitGOTI0Ozg5NjQ7ODk2NDs4OTY0Ozg5NjQ7CitGOTI1OzYyQzk7NjJDOTs2MkM5OzYyQzk7CitGOTI2OzgxRDg7ODFEODs4MUQ4OzgxRDg7CitGOTI3Ozg4MUY7ODgxRjs4ODFGOzg4MUY7CitGOTI4OzVFQ0E7NUVDQTs1RUNBOzVFQ0E7CitGOTI5OzY3MTc7NjcxNzs2NzE3OzY3MTc7CitGOTJBOzZENkE7NkQ2QTs2RDZBOzZENkE7CitGOTJCOzcyRkM7NzJGQzs3MkZDOzcyRkM7CitGOTJDOzkwQ0U7OTBDRTs5MENFOzkwQ0U7CitGOTJEOzRGODY7NEY4Njs0Rjg2OzRGODY7CitGOTJFOzUxQjc7NTFCNzs1MUI3OzUxQjc7CitGOTJGOzUyREU7NTJERTs1MkRFOzUyREU7CitGOTMwOzY0QzQ7NjRDNDs2NEM0OzY0QzQ7CitGOTMxOzZBRDM7NkFEMzs2QUQzOzZBRDM7CitGOTMyOzcyMTA7NzIxMDs3MjEwOzcyMTA7CitGOTMzOzc2RTc7NzZFNzs3NkU3Ozc2RTc7CitGOTM0OzgwMDE7ODAwMTs4MDAxOzgwMDE7CitGOTM1Ozg2MDY7ODYwNjs4NjA2Ozg2MDY7CitGOTM2Ozg2NUM7ODY1Qzs4NjVDOzg2NUM7CitGOTM3OzhERUY7OERFRjs4REVGOzhERUY7CitGOTM4Ozk3MzI7OTczMjs5NzMyOzk3MzI7CitGOTM5OzlCNkY7OUI2Rjs5QjZGOzlCNkY7CitGOTNBOzlERkE7OURGQTs5REZBOzlERkE7CitGOTNCOzc4OEM7Nzg4Qzs3ODhDOzc4OEM7CitGOTNDOzc5N0Y7Nzk3Rjs3OTdGOzc5N0Y7CitGOTNEOzdEQTA7N0RBMDs3REEwOzdEQTA7CitGOTNFOzgzQzk7ODNDOTs4M0M5OzgzQzk7CitGOTNGOzkzMDQ7OTMwNDs5MzA0OzkzMDQ7CitGOTQwOzlFN0Y7OUU3Rjs5RTdGOzlFN0Y7CitGOTQxOzhBRDY7OEFENjs4QUQ2OzhBRDY7CitGOTQyOzU4REY7NThERjs1OERGOzU4REY7CitGOTQzOzVGMDQ7NUYwNDs1RjA0OzVGMDQ7CitGOTQ0OzdDNjA7N0M2MDs3QzYwOzdDNjA7CitGOTQ1OzgwN0U7ODA3RTs4MDdFOzgwN0U7CitGOTQ2OzcyNjI7NzI2Mjs3MjYyOzcyNjI7CitGOTQ3Ozc4Q0E7NzhDQTs3OENBOzc4Q0E7CitGOTQ4OzhDQzI7OENDMjs4Q0MyOzhDQzI7CitGOTQ5Ozk2Rjc7OTZGNzs5NkY3Ozk2Rjc7CitGOTRBOzU4RDg7NThEODs1OEQ4OzU4RDg7CitGOTRCOzVDNjI7NUM2Mjs1QzYyOzVDNjI7CitGOTRDOzZBMTM7NkExMzs2QTEzOzZBMTM7CitGOTREOzZEREE7NkREQTs2RERBOzZEREE7CitGOTRFOzZGMEY7NkYwRjs2RjBGOzZGMEY7CitGOTRGOzdEMkY7N0QyRjs3RDJGOzdEMkY7CitGOTUwOzdFMzc7N0UzNzs3RTM3OzdFMzc7CitGOTUxOzk2NEI7OTY0Qjs5NjRCOzk2NEI7CitGOTUyOzUyRDI7NTJEMjs1MkQyOzUyRDI7CitGOTUzOzgwOEI7ODA4Qjs4MDhCOzgwOEI7CitGOTU0OzUxREM7NTFEQzs1MURDOzUxREM7CitGOTU1OzUxQ0M7NTFDQzs1MUNDOzUxQ0M7CitGOTU2OzdBMUM7N0ExQzs3QTFDOzdBMUM7CitGOTU3OzdEQkU7N0RCRTs3REJFOzdEQkU7CitGOTU4OzgzRjE7ODNGMTs4M0YxOzgzRjE7CitGOTU5Ozk2NzU7OTY3NTs5Njc1Ozk2NzU7CitGOTVBOzhCODA7OEI4MDs4QjgwOzhCODA7CitGOTVCOzYyQ0Y7NjJDRjs2MkNGOzYyQ0Y7CitGOTVDOzZBMDI7NkEwMjs2QTAyOzZBMDI7CitGOTVEOzhBRkU7OEFGRTs4QUZFOzhBRkU7CitGOTVFOzRFMzk7NEUzOTs0RTM5OzRFMzk7CitGOTVGOzVCRTc7NUJFNzs1QkU3OzVCRTc7CitGOTYwOzYwMTI7NjAxMjs2MDEyOzYwMTI7CitGOTYxOzczODc7NzM4Nzs3Mzg3OzczODc7CitGOTYyOzc1NzA7NzU3MDs3NTcwOzc1NzA7CitGOTYzOzUzMTc7NTMxNzs1MzE3OzUzMTc7CitGOTY0Ozc4RkI7NzhGQjs3OEZCOzc4RkI7CitGOTY1OzRGQkY7NEZCRjs0RkJGOzRGQkY7CitGOTY2OzVGQTk7NUZBOTs1RkE5OzVGQTk7CitGOTY3OzRFMEQ7NEUwRDs0RTBEOzRFMEQ7CitGOTY4OzZDQ0M7NkNDQzs2Q0NDOzZDQ0M7CitGOTY5OzY1Nzg7NjU3ODs2NTc4OzY1Nzg7CitGOTZBOzdEMjI7N0QyMjs3RDIyOzdEMjI7CitGOTZCOzUzQzM7NTNDMzs1M0MzOzUzQzM7CitGOTZDOzU4NUU7NTg1RTs1ODVFOzU4NUU7CitGOTZEOzc3MDE7NzcwMTs3NzAxOzc3MDE7CitGOTZFOzg0NDk7ODQ0OTs4NDQ5Ozg0NDk7CitGOTZGOzhBQUE7OEFBQTs4QUFBOzhBQUE7CitGOTcwOzZCQkE7NkJCQTs2QkJBOzZCQkE7CitGOTcxOzhGQjA7OEZCMDs4RkIwOzhGQjA7CitGOTcyOzZDODg7NkM4ODs2Qzg4OzZDODg7CitGOTczOzYyRkU7NjJGRTs2MkZFOzYyRkU7CitGOTc0OzgyRTU7ODJFNTs4MkU1OzgyRTU7CitGOTc1OzYzQTA7NjNBMDs2M0EwOzYzQTA7CitGOTc2Ozc1NjU7NzU2NTs3NTY1Ozc1NjU7CitGOTc3OzRFQUU7NEVBRTs0RUFFOzRFQUU7CitGOTc4OzUxNjk7NTE2OTs1MTY5OzUxNjk7CitGOTc5OzUxQzk7NTFDOTs1MUM5OzUxQzk7CitGOTdBOzY4ODE7Njg4MTs2ODgxOzY4ODE7CitGOTdCOzdDRTc7N0NFNzs3Q0U3OzdDRTc7CitGOTdDOzgyNkY7ODI2Rjs4MjZGOzgyNkY7CitGOTdEOzhBRDI7OEFEMjs4QUQyOzhBRDI7CitGOTdFOzkxQ0Y7OTFDRjs5MUNGOzkxQ0Y7CitGOTdGOzUyRjU7NTJGNTs1MkY1OzUyRjU7CitGOTgwOzU0NDI7NTQ0Mjs1NDQyOzU0NDI7CitGOTgxOzU5NzM7NTk3Mzs1OTczOzU5NzM7CitGOTgyOzVFRUM7NUVFQzs1RUVDOzVFRUM7CitGOTgzOzY1QzU7NjVDNTs2NUM1OzY1QzU7CitGOTg0OzZGRkU7NkZGRTs2RkZFOzZGRkU7CitGOTg1Ozc5MkE7NzkyQTs3OTJBOzc5MkE7CitGOTg2Ozk1QUQ7OTVBRDs5NUFEOzk1QUQ7CitGOTg3OzlBNkE7OUE2QTs5QTZBOzlBNkE7CitGOTg4OzlFOTc7OUU5Nzs5RTk3OzlFOTc7CitGOTg5OzlFQ0U7OUVDRTs5RUNFOzlFQ0U7CitGOThBOzUyOUI7NTI5Qjs1MjlCOzUyOUI7CitGOThCOzY2QzY7NjZDNjs2NkM2OzY2QzY7CitGOThDOzZCNzc7NkI3Nzs2Qjc3OzZCNzc7CitGOThEOzhGNjI7OEY2Mjs4RjYyOzhGNjI7CitGOThFOzVFNzQ7NUU3NDs1RTc0OzVFNzQ7CitGOThGOzYxOTA7NjE5MDs2MTkwOzYxOTA7CitGOTkwOzYyMDA7NjIwMDs2MjAwOzYyMDA7CitGOTkxOzY0OUE7NjQ5QTs2NDlBOzY0OUE7CitGOTkyOzZGMjM7NkYyMzs2RjIzOzZGMjM7CitGOTkzOzcxNDk7NzE0OTs3MTQ5OzcxNDk7CitGOTk0Ozc0ODk7NzQ4OTs3NDg5Ozc0ODk7CitGOTk1Ozc5Q0E7NzlDQTs3OUNBOzc5Q0E7CitGOTk2OzdERjQ7N0RGNDs3REY0OzdERjQ7CitGOTk3OzgwNkY7ODA2Rjs4MDZGOzgwNkY7CitGOTk4OzhGMjY7OEYyNjs4RjI2OzhGMjY7CitGOTk5Ozg0RUU7ODRFRTs4NEVFOzg0RUU7CitGOTlBOzkwMjM7OTAyMzs5MDIzOzkwMjM7CitGOTlCOzkzNEE7OTM0QTs5MzRBOzkzNEE7CitGOTlDOzUyMTc7NTIxNzs1MjE3OzUyMTc7CitGOTlEOzUyQTM7NTJBMzs1MkEzOzUyQTM7CitGOTlFOzU0QkQ7NTRCRDs1NEJEOzU0QkQ7CitGOTlGOzcwQzg7NzBDODs3MEM4OzcwQzg7CitGOUEwOzg4QzI7ODhDMjs4OEMyOzg4QzI7CitGOUExOzhBQUE7OEFBQTs4QUFBOzhBQUE7CitGOUEyOzVFQzk7NUVDOTs1RUM5OzVFQzk7CitGOUEzOzVGRjU7NUZGNTs1RkY1OzVGRjU7CitGOUE0OzYzN0I7NjM3Qjs2MzdCOzYzN0I7CitGOUE1OzZCQUU7NkJBRTs2QkFFOzZCQUU7CitGOUE2OzdDM0U7N0MzRTs3QzNFOzdDM0U7CitGOUE3OzczNzU7NzM3NTs3Mzc1OzczNzU7CitGOUE4OzRFRTQ7NEVFNDs0RUU0OzRFRTQ7CitGOUE5OzU2Rjk7NTZGOTs1NkY5OzU2Rjk7CitGOUFBOzVCRTc7NUJFNzs1QkU3OzVCRTc7CitGOUFCOzVEQkE7NURCQTs1REJBOzVEQkE7CitGOUFDOzYwMUM7NjAxQzs2MDFDOzYwMUM7CitGOUFEOzczQjI7NzNCMjs3M0IyOzczQjI7CitGOUFFOzc0Njk7NzQ2OTs3NDY5Ozc0Njk7CitGOUFGOzdGOUE7N0Y5QTs3RjlBOzdGOUE7CitGOUIwOzgwNDY7ODA0Njs4MDQ2OzgwNDY7CitGOUIxOzkyMzQ7OTIzNDs5MjM0OzkyMzQ7CitGOUIyOzk2RjY7OTZGNjs5NkY2Ozk2RjY7CitGOUIzOzk3NDg7OTc0ODs5NzQ4Ozk3NDg7CitGOUI0Ozk4MTg7OTgxODs5ODE4Ozk4MTg7CitGOUI1OzRGOEI7NEY4Qjs0RjhCOzRGOEI7CitGOUI2Ozc5QUU7NzlBRTs3OUFFOzc5QUU7CitGOUI3OzkxQjQ7OTFCNDs5MUI0OzkxQjQ7CitGOUI4Ozk2Qjg7OTZCODs5NkI4Ozk2Qjg7CitGOUI5OzYwRTE7NjBFMTs2MEUxOzYwRTE7CitGOUJBOzRFODY7NEU4Njs0RTg2OzRFODY7CitGOUJCOzUwREE7NTBEQTs1MERBOzUwREE7CitGOUJDOzVCRUU7NUJFRTs1QkVFOzVCRUU7CitGOUJEOzVDM0Y7NUMzRjs1QzNGOzVDM0Y7CitGOUJFOzY1OTk7NjU5OTs2NTk5OzY1OTk7CitGOUJGOzZBMDI7NkEwMjs2QTAyOzZBMDI7CitGOUMwOzcxQ0U7NzFDRTs3MUNFOzcxQ0U7CitGOUMxOzc2NDI7NzY0Mjs3NjQyOzc2NDI7CitGOUMyOzg0RkM7ODRGQzs4NEZDOzg0RkM7CitGOUMzOzkwN0M7OTA3Qzs5MDdDOzkwN0M7CitGOUM0OzlGOEQ7OUY4RDs5RjhEOzlGOEQ7CitGOUM1OzY2ODg7NjY4ODs2Njg4OzY2ODg7CitGOUM2Ozk2MkU7OTYyRTs5NjJFOzk2MkU7CitGOUM3OzUyODk7NTI4OTs1Mjg5OzUyODk7CitGOUM4OzY3N0I7Njc3Qjs2NzdCOzY3N0I7CitGOUM5OzY3RjM7NjdGMzs2N0YzOzY3RjM7CitGOUNBOzZENDE7NkQ0MTs2RDQxOzZENDE7CitGOUNCOzZFOUM7NkU5Qzs2RTlDOzZFOUM7CitGOUNDOzc0MDk7NzQwOTs3NDA5Ozc0MDk7CitGOUNEOzc1NTk7NzU1OTs3NTU5Ozc1NTk7CitGOUNFOzc4NkI7Nzg2Qjs3ODZCOzc4NkI7CitGOUNGOzdEMTA7N0QxMDs3RDEwOzdEMTA7CitGOUQwOzk4NUU7OTg1RTs5ODVFOzk4NUU7CitGOUQxOzUxNkQ7NTE2RDs1MTZEOzUxNkQ7CitGOUQyOzYyMkU7NjIyRTs2MjJFOzYyMkU7CitGOUQzOzk2Nzg7OTY3ODs5Njc4Ozk2Nzg7CitGOUQ0OzUwMkI7NTAyQjs1MDJCOzUwMkI7CitGOUQ1OzVEMTk7NUQxOTs1RDE5OzVEMTk7CitGOUQ2OzZERUE7NkRFQTs2REVBOzZERUE7CitGOUQ3OzhGMkE7OEYyQTs4RjJBOzhGMkE7CitGOUQ4OzVGOEI7NUY4Qjs1RjhCOzVGOEI7CitGOUQ5OzYxNDQ7NjE0NDs2MTQ0OzYxNDQ7CitGOURBOzY4MTc7NjgxNzs2ODE3OzY4MTc7CitGOURCOzczODc7NzM4Nzs3Mzg3OzczODc7CitGOURDOzk2ODY7OTY4Njs5Njg2Ozk2ODY7CitGOUREOzUyMjk7NTIyOTs1MjI5OzUyMjk7CitGOURFOzU0MEY7NTQwRjs1NDBGOzU0MEY7CitGOURGOzVDNjU7NUM2NTs1QzY1OzVDNjU7CitGOUUwOzY2MTM7NjYxMzs2NjEzOzY2MTM7CitGOUUxOzY3NEU7Njc0RTs2NzRFOzY3NEU7CitGOUUyOzY4QTg7NjhBODs2OEE4OzY4QTg7CitGOUUzOzZDRTU7NkNFNTs2Q0U1OzZDRTU7CitGOUU0Ozc0MDY7NzQwNjs3NDA2Ozc0MDY7CitGOUU1Ozc1RTI7NzVFMjs3NUUyOzc1RTI7CitGOUU2OzdGNzk7N0Y3OTs3Rjc5OzdGNzk7CitGOUU3Ozg4Q0Y7ODhDRjs4OENGOzg4Q0Y7CitGOUU4Ozg4RTE7ODhFMTs4OEUxOzg4RTE7CitGOUU5OzkxQ0M7OTFDQzs5MUNDOzkxQ0M7CitGOUVBOzk2RTI7OTZFMjs5NkUyOzk2RTI7CitGOUVCOzUzM0Y7NTMzRjs1MzNGOzUzM0Y7CitGOUVDOzZFQkE7NkVCQTs2RUJBOzZFQkE7CitGOUVEOzU0MUQ7NTQxRDs1NDFEOzU0MUQ7CitGOUVFOzcxRDA7NzFEMDs3MUQwOzcxRDA7CitGOUVGOzc0OTg7NzQ5ODs3NDk4Ozc0OTg7CitGOUYwOzg1RkE7ODVGQTs4NUZBOzg1RkE7CitGOUYxOzk2QTM7OTZBMzs5NkEzOzk2QTM7CitGOUYyOzlDNTc7OUM1Nzs5QzU3OzlDNTc7CitGOUYzOzlFOUY7OUU5Rjs5RTlGOzlFOUY7CitGOUY0OzY3OTc7Njc5Nzs2Nzk3OzY3OTc7CitGOUY1OzZEQ0I7NkRDQjs2RENCOzZEQ0I7CitGOUY2OzgxRTg7ODFFODs4MUU4OzgxRTg7CitGOUY3OzdBQ0I7N0FDQjs3QUNCOzdBQ0I7CitGOUY4OzdCMjA7N0IyMDs3QjIwOzdCMjA7CitGOUY5OzdDOTI7N0M5Mjs3QzkyOzdDOTI7CitGOUZBOzcyQzA7NzJDMDs3MkMwOzcyQzA7CitGOUZCOzcwOTk7NzA5OTs3MDk5OzcwOTk7CitGOUZDOzhCNTg7OEI1ODs4QjU4OzhCNTg7CitGOUZEOzRFQzA7NEVDMDs0RUMwOzRFQzA7CitGOUZFOzgzMzY7ODMzNjs4MzM2OzgzMzY7CitGOUZGOzUyM0E7NTIzQTs1MjNBOzUyM0E7CitGQTAwOzUyMDc7NTIwNzs1MjA3OzUyMDc7CitGQTAxOzVFQTY7NUVBNjs1RUE2OzVFQTY7CitGQTAyOzYyRDM7NjJEMzs2MkQzOzYyRDM7CitGQTAzOzdDRDY7N0NENjs3Q0Q2OzdDRDY7CitGQTA0OzVCODU7NUI4NTs1Qjg1OzVCODU7CitGQTA1OzZEMUU7NkQxRTs2RDFFOzZEMUU7CitGQTA2OzY2QjQ7NjZCNDs2NkI0OzY2QjQ7CitGQTA3OzhGM0I7OEYzQjs4RjNCOzhGM0I7CitGQTA4Ozg4NEM7ODg0Qzs4ODRDOzg4NEM7CitGQTA5Ozk2NEQ7OTY0RDs5NjREOzk2NEQ7CitGQTBBOzg5OEI7ODk4Qjs4OThCOzg5OEI7CitGQTBCOzVFRDM7NUVEMzs1RUQzOzVFRDM7CitGQTBDOzUxNDA7NTE0MDs1MTQwOzUxNDA7CitGQTBEOzU1QzA7NTVDMDs1NUMwOzU1QzA7CitGQTEwOzU4NUE7NTg1QTs1ODVBOzU4NUE7CitGQTEyOzY2NzQ7NjY3NDs2Njc0OzY2NzQ7CitGQTE1OzUxREU7NTFERTs1MURFOzUxREU7CitGQTE2OzczMkE7NzMyQTs3MzJBOzczMkE7CitGQTE3Ozc2Q0E7NzZDQTs3NkNBOzc2Q0E7CitGQTE4Ozc5M0M7NzkzQzs3OTNDOzc5M0M7CitGQTE5Ozc5NUU7Nzk1RTs3OTVFOzc5NUU7CitGQTFBOzc5NjU7Nzk2NTs3OTY1Ozc5NjU7CitGQTFCOzc5OEY7Nzk4Rjs3OThGOzc5OEY7CitGQTFDOzk3NTY7OTc1Njs5NzU2Ozk3NTY7CitGQTFEOzdDQkU7N0NCRTs3Q0JFOzdDQkU7CitGQTFFOzdGQkQ7N0ZCRDs3RkJEOzdGQkQ7CitGQTIwOzg2MTI7ODYxMjs4NjEyOzg2MTI7CitGQTIyOzhBRjg7OEFGODs4QUY4OzhBRjg7CitGQTI1OzkwMzg7OTAzODs5MDM4OzkwMzg7CitGQTI2OzkwRkQ7OTBGRDs5MEZEOzkwRkQ7CitGQTJBOzk4RUY7OThFRjs5OEVGOzk4RUY7CitGQTJCOzk4RkM7OThGQzs5OEZDOzk4RkM7CitGQTJDOzk5Mjg7OTkyODs5OTI4Ozk5Mjg7CitGQTJEOzlEQjQ7OURCNDs5REI0OzlEQjQ7CitGQTMwOzRGQUU7NEZBRTs0RkFFOzRGQUU7CitGQTMxOzUwRTc7NTBFNzs1MEU3OzUwRTc7CitGQTMyOzUxNEQ7NTE0RDs1MTREOzUxNEQ7CitGQTMzOzUyQzk7NTJDOTs1MkM5OzUyQzk7CitGQTM0OzUyRTQ7NTJFNDs1MkU0OzUyRTQ7CitGQTM1OzUzNTE7NTM1MTs1MzUxOzUzNTE7CitGQTM2OzU1OUQ7NTU5RDs1NTlEOzU1OUQ7CitGQTM3OzU2MDY7NTYwNjs1NjA2OzU2MDY7CitGQTM4OzU2Njg7NTY2ODs1NjY4OzU2Njg7CitGQTM5OzU4NDA7NTg0MDs1ODQwOzU4NDA7CitGQTNBOzU4QTg7NThBODs1OEE4OzU4QTg7CitGQTNCOzVDNjQ7NUM2NDs1QzY0OzVDNjQ7CitGQTNDOzVDNkU7NUM2RTs1QzZFOzVDNkU7CitGQTNEOzYwOTQ7NjA5NDs2MDk0OzYwOTQ7CitGQTNFOzYxNjg7NjE2ODs2MTY4OzYxNjg7CitGQTNGOzYxOEU7NjE4RTs2MThFOzYxOEU7CitGQTQwOzYxRjI7NjFGMjs2MUYyOzYxRjI7CitGQTQxOzY1NEY7NjU0Rjs2NTRGOzY1NEY7CitGQTQyOzY1RTI7NjVFMjs2NUUyOzY1RTI7CitGQTQzOzY2OTE7NjY5MTs2NjkxOzY2OTE7CitGQTQ0OzY4ODU7Njg4NTs2ODg1OzY4ODU7CitGQTQ1OzZENzc7NkQ3Nzs2RDc3OzZENzc7CitGQTQ2OzZFMUE7NkUxQTs2RTFBOzZFMUE7CitGQTQ3OzZGMjI7NkYyMjs2RjIyOzZGMjI7CitGQTQ4OzcxNkU7NzE2RTs3MTZFOzcxNkU7CitGQTQ5OzcyMkI7NzIyQjs3MjJCOzcyMkI7CitGQTRBOzc0MjI7NzQyMjs3NDIyOzc0MjI7CitGQTRCOzc4OTE7Nzg5MTs3ODkxOzc4OTE7CitGQTRDOzc5M0U7NzkzRTs3OTNFOzc5M0U7CitGQTREOzc5NDk7Nzk0OTs3OTQ5Ozc5NDk7CitGQTRFOzc5NDg7Nzk0ODs3OTQ4Ozc5NDg7CitGQTRGOzc5NTA7Nzk1MDs3OTUwOzc5NTA7CitGQTUwOzc5NTY7Nzk1Njs3OTU2Ozc5NTY7CitGQTUxOzc5NUQ7Nzk1RDs3OTVEOzc5NUQ7CitGQTUyOzc5OEQ7Nzk4RDs3OThEOzc5OEQ7CitGQTUzOzc5OEU7Nzk4RTs3OThFOzc5OEU7CitGQTU0OzdBNDA7N0E0MDs3QTQwOzdBNDA7CitGQTU1OzdBODE7N0E4MTs3QTgxOzdBODE7CitGQTU2OzdCQzA7N0JDMDs3QkMwOzdCQzA7CitGQTU3OzdERjQ7N0RGNDs3REY0OzdERjQ7CitGQTU4OzdFMDk7N0UwOTs3RTA5OzdFMDk7CitGQTU5OzdFNDE7N0U0MTs3RTQxOzdFNDE7CitGQTVBOzdGNzI7N0Y3Mjs3RjcyOzdGNzI7CitGQTVCOzgwMDU7ODAwNTs4MDA1OzgwMDU7CitGQTVDOzgxRUQ7ODFFRDs4MUVEOzgxRUQ7CitGQTVEOzgyNzk7ODI3OTs4Mjc5OzgyNzk7CitGQTVFOzgyNzk7ODI3OTs4Mjc5OzgyNzk7CitGQTVGOzg0NTc7ODQ1Nzs4NDU3Ozg0NTc7CitGQTYwOzg5MTA7ODkxMDs4OTEwOzg5MTA7CitGQTYxOzg5OTY7ODk5Njs4OTk2Ozg5OTY7CitGQTYyOzhCMDE7OEIwMTs4QjAxOzhCMDE7CitGQTYzOzhCMzk7OEIzOTs4QjM5OzhCMzk7CitGQTY0OzhDRDM7OENEMzs4Q0QzOzhDRDM7CitGQTY1OzhEMDg7OEQwODs4RDA4OzhEMDg7CitGQTY2OzhGQjY7OEZCNjs4RkI2OzhGQjY7CitGQTY3OzkwMzg7OTAzODs5MDM4OzkwMzg7CitGQTY4Ozk2RTM7OTZFMzs5NkUzOzk2RTM7CitGQTY5Ozk3RkY7OTdGRjs5N0ZGOzk3RkY7CitGQTZBOzk4M0I7OTgzQjs5ODNCOzk4M0I7CitGQjAwO0ZCMDA7RkIwMDswMDY2IDAwNjY7MDA2NiAwMDY2OworRkIwMTtGQjAxO0ZCMDE7MDA2NiAwMDY5OzAwNjYgMDA2OTsKK0ZCMDI7RkIwMjtGQjAyOzAwNjYgMDA2QzswMDY2IDAwNkM7CitGQjAzO0ZCMDM7RkIwMzswMDY2IDAwNjYgMDA2OTswMDY2IDAwNjYgMDA2OTsKK0ZCMDQ7RkIwNDtGQjA0OzAwNjYgMDA2NiAwMDZDOzAwNjYgMDA2NiAwMDZDOworRkIwNTtGQjA1O0ZCMDU7MDA3MyAwMDc0OzAwNzMgMDA3NDsKK0ZCMDY7RkIwNjtGQjA2OzAwNzMgMDA3NDswMDczIDAwNzQ7CitGQjEzO0ZCMTM7RkIxMzswNTc0IDA1NzY7MDU3NCAwNTc2OworRkIxNDtGQjE0O0ZCMTQ7MDU3NCAwNTY1OzA1NzQgMDU2NTsKK0ZCMTU7RkIxNTtGQjE1OzA1NzQgMDU2QjswNTc0IDA1NkI7CitGQjE2O0ZCMTY7RkIxNjswNTdFIDA1NzY7MDU3RSAwNTc2OworRkIxNztGQjE3O0ZCMTc7MDU3NCAwNTZEOzA1NzQgMDU2RDsKK0ZCMUQ7MDVEOSAwNUI0OzA1RDkgMDVCNDswNUQ5IDA1QjQ7MDVEOSAwNUI0OworRkIxRjswNUYyIDA1Qjc7MDVGMiAwNUI3OzA1RjIgMDVCNzswNUYyIDA1Qjc7CitGQjIwO0ZCMjA7RkIyMDswNUUyOzA1RTI7CitGQjIxO0ZCMjE7RkIyMTswNUQwOzA1RDA7CitGQjIyO0ZCMjI7RkIyMjswNUQzOzA1RDM7CitGQjIzO0ZCMjM7RkIyMzswNUQ0OzA1RDQ7CitGQjI0O0ZCMjQ7RkIyNDswNURCOzA1REI7CitGQjI1O0ZCMjU7RkIyNTswNURDOzA1REM7CitGQjI2O0ZCMjY7RkIyNjswNUREOzA1REQ7CitGQjI3O0ZCMjc7RkIyNzswNUU4OzA1RTg7CitGQjI4O0ZCMjg7RkIyODswNUVBOzA1RUE7CitGQjI5O0ZCMjk7RkIyOTswMDJCOzAwMkI7CitGQjJBOzA1RTkgMDVDMTswNUU5IDA1QzE7MDVFOSAwNUMxOzA1RTkgMDVDMTsKK0ZCMkI7MDVFOSAwNUMyOzA1RTkgMDVDMjswNUU5IDA1QzI7MDVFOSAwNUMyOworRkIyQzswNUU5IDA1QkMgMDVDMTswNUU5IDA1QkMgMDVDMTswNUU5IDA1QkMgMDVDMTswNUU5IDA1QkMgMDVDMTsKK0ZCMkQ7MDVFOSAwNUJDIDA1QzI7MDVFOSAwNUJDIDA1QzI7MDVFOSAwNUJDIDA1QzI7MDVFOSAwNUJDIDA1QzI7CitGQjJFOzA1RDAgMDVCNzswNUQwIDA1Qjc7MDVEMCAwNUI3OzA1RDAgMDVCNzsKK0ZCMkY7MDVEMCAwNUI4OzA1RDAgMDVCODswNUQwIDA1Qjg7MDVEMCAwNUI4OworRkIzMDswNUQwIDA1QkM7MDVEMCAwNUJDOzA1RDAgMDVCQzswNUQwIDA1QkM7CitGQjMxOzA1RDEgMDVCQzswNUQxIDA1QkM7MDVEMSAwNUJDOzA1RDEgMDVCQzsKK0ZCMzI7MDVEMiAwNUJDOzA1RDIgMDVCQzswNUQyIDA1QkM7MDVEMiAwNUJDOworRkIzMzswNUQzIDA1QkM7MDVEMyAwNUJDOzA1RDMgMDVCQzswNUQzIDA1QkM7CitGQjM0OzA1RDQgMDVCQzswNUQ0IDA1QkM7MDVENCAwNUJDOzA1RDQgMDVCQzsKK0ZCMzU7MDVENSAwNUJDOzA1RDUgMDVCQzswNUQ1IDA1QkM7MDVENSAwNUJDOworRkIzNjswNUQ2IDA1QkM7MDVENiAwNUJDOzA1RDYgMDVCQzswNUQ2IDA1QkM7CitGQjM4OzA1RDggMDVCQzswNUQ4IDA1QkM7MDVEOCAwNUJDOzA1RDggMDVCQzsKK0ZCMzk7MDVEOSAwNUJDOzA1RDkgMDVCQzswNUQ5IDA1QkM7MDVEOSAwNUJDOworRkIzQTswNURBIDA1QkM7MDVEQSAwNUJDOzA1REEgMDVCQzswNURBIDA1QkM7CitGQjNCOzA1REIgMDVCQzswNURCIDA1QkM7MDVEQiAwNUJDOzA1REIgMDVCQzsKK0ZCM0M7MDVEQyAwNUJDOzA1REMgMDVCQzswNURDIDA1QkM7MDVEQyAwNUJDOworRkIzRTswNURFIDA1QkM7MDVERSAwNUJDOzA1REUgMDVCQzswNURFIDA1QkM7CitGQjQwOzA1RTAgMDVCQzswNUUwIDA1QkM7MDVFMCAwNUJDOzA1RTAgMDVCQzsKK0ZCNDE7MDVFMSAwNUJDOzA1RTEgMDVCQzswNUUxIDA1QkM7MDVFMSAwNUJDOworRkI0MzswNUUzIDA1QkM7MDVFMyAwNUJDOzA1RTMgMDVCQzswNUUzIDA1QkM7CitGQjQ0OzA1RTQgMDVCQzswNUU0IDA1QkM7MDVFNCAwNUJDOzA1RTQgMDVCQzsKK0ZCNDY7MDVFNiAwNUJDOzA1RTYgMDVCQzswNUU2IDA1QkM7MDVFNiAwNUJDOworRkI0NzswNUU3IDA1QkM7MDVFNyAwNUJDOzA1RTcgMDVCQzswNUU3IDA1QkM7CitGQjQ4OzA1RTggMDVCQzswNUU4IDA1QkM7MDVFOCAwNUJDOzA1RTggMDVCQzsKK0ZCNDk7MDVFOSAwNUJDOzA1RTkgMDVCQzswNUU5IDA1QkM7MDVFOSAwNUJDOworRkI0QTswNUVBIDA1QkM7MDVFQSAwNUJDOzA1RUEgMDVCQzswNUVBIDA1QkM7CitGQjRCOzA1RDUgMDVCOTswNUQ1IDA1Qjk7MDVENSAwNUI5OzA1RDUgMDVCOTsKK0ZCNEM7MDVEMSAwNUJGOzA1RDEgMDVCRjswNUQxIDA1QkY7MDVEMSAwNUJGOworRkI0RDswNURCIDA1QkY7MDVEQiAwNUJGOzA1REIgMDVCRjswNURCIDA1QkY7CitGQjRFOzA1RTQgMDVCRjswNUU0IDA1QkY7MDVFNCAwNUJGOzA1RTQgMDVCRjsKK0ZCNEY7RkI0RjtGQjRGOzA1RDAgMDVEQzswNUQwIDA1REM7CitGQjUwO0ZCNTA7RkI1MDswNjcxOzA2NzE7CitGQjUxO0ZCNTE7RkI1MTswNjcxOzA2NzE7CitGQjUyO0ZCNTI7RkI1MjswNjdCOzA2N0I7CitGQjUzO0ZCNTM7RkI1MzswNjdCOzA2N0I7CitGQjU0O0ZCNTQ7RkI1NDswNjdCOzA2N0I7CitGQjU1O0ZCNTU7RkI1NTswNjdCOzA2N0I7CitGQjU2O0ZCNTY7RkI1NjswNjdFOzA2N0U7CitGQjU3O0ZCNTc7RkI1NzswNjdFOzA2N0U7CitGQjU4O0ZCNTg7RkI1ODswNjdFOzA2N0U7CitGQjU5O0ZCNTk7RkI1OTswNjdFOzA2N0U7CitGQjVBO0ZCNUE7RkI1QTswNjgwOzA2ODA7CitGQjVCO0ZCNUI7RkI1QjswNjgwOzA2ODA7CitGQjVDO0ZCNUM7RkI1QzswNjgwOzA2ODA7CitGQjVEO0ZCNUQ7RkI1RDswNjgwOzA2ODA7CitGQjVFO0ZCNUU7RkI1RTswNjdBOzA2N0E7CitGQjVGO0ZCNUY7RkI1RjswNjdBOzA2N0E7CitGQjYwO0ZCNjA7RkI2MDswNjdBOzA2N0E7CitGQjYxO0ZCNjE7RkI2MTswNjdBOzA2N0E7CitGQjYyO0ZCNjI7RkI2MjswNjdGOzA2N0Y7CitGQjYzO0ZCNjM7RkI2MzswNjdGOzA2N0Y7CitGQjY0O0ZCNjQ7RkI2NDswNjdGOzA2N0Y7CitGQjY1O0ZCNjU7RkI2NTswNjdGOzA2N0Y7CitGQjY2O0ZCNjY7RkI2NjswNjc5OzA2Nzk7CitGQjY3O0ZCNjc7RkI2NzswNjc5OzA2Nzk7CitGQjY4O0ZCNjg7RkI2ODswNjc5OzA2Nzk7CitGQjY5O0ZCNjk7RkI2OTswNjc5OzA2Nzk7CitGQjZBO0ZCNkE7RkI2QTswNkE0OzA2QTQ7CitGQjZCO0ZCNkI7RkI2QjswNkE0OzA2QTQ7CitGQjZDO0ZCNkM7RkI2QzswNkE0OzA2QTQ7CitGQjZEO0ZCNkQ7RkI2RDswNkE0OzA2QTQ7CitGQjZFO0ZCNkU7RkI2RTswNkE2OzA2QTY7CitGQjZGO0ZCNkY7RkI2RjswNkE2OzA2QTY7CitGQjcwO0ZCNzA7RkI3MDswNkE2OzA2QTY7CitGQjcxO0ZCNzE7RkI3MTswNkE2OzA2QTY7CitGQjcyO0ZCNzI7RkI3MjswNjg0OzA2ODQ7CitGQjczO0ZCNzM7RkI3MzswNjg0OzA2ODQ7CitGQjc0O0ZCNzQ7RkI3NDswNjg0OzA2ODQ7CitGQjc1O0ZCNzU7RkI3NTswNjg0OzA2ODQ7CitGQjc2O0ZCNzY7RkI3NjswNjgzOzA2ODM7CitGQjc3O0ZCNzc7RkI3NzswNjgzOzA2ODM7CitGQjc4O0ZCNzg7RkI3ODswNjgzOzA2ODM7CitGQjc5O0ZCNzk7RkI3OTswNjgzOzA2ODM7CitGQjdBO0ZCN0E7RkI3QTswNjg2OzA2ODY7CitGQjdCO0ZCN0I7RkI3QjswNjg2OzA2ODY7CitGQjdDO0ZCN0M7RkI3QzswNjg2OzA2ODY7CitGQjdEO0ZCN0Q7RkI3RDswNjg2OzA2ODY7CitGQjdFO0ZCN0U7RkI3RTswNjg3OzA2ODc7CitGQjdGO0ZCN0Y7RkI3RjswNjg3OzA2ODc7CitGQjgwO0ZCODA7RkI4MDswNjg3OzA2ODc7CitGQjgxO0ZCODE7RkI4MTswNjg3OzA2ODc7CitGQjgyO0ZCODI7RkI4MjswNjhEOzA2OEQ7CitGQjgzO0ZCODM7RkI4MzswNjhEOzA2OEQ7CitGQjg0O0ZCODQ7RkI4NDswNjhDOzA2OEM7CitGQjg1O0ZCODU7RkI4NTswNjhDOzA2OEM7CitGQjg2O0ZCODY7RkI4NjswNjhFOzA2OEU7CitGQjg3O0ZCODc7RkI4NzswNjhFOzA2OEU7CitGQjg4O0ZCODg7RkI4ODswNjg4OzA2ODg7CitGQjg5O0ZCODk7RkI4OTswNjg4OzA2ODg7CitGQjhBO0ZCOEE7RkI4QTswNjk4OzA2OTg7CitGQjhCO0ZCOEI7RkI4QjswNjk4OzA2OTg7CitGQjhDO0ZCOEM7RkI4QzswNjkxOzA2OTE7CitGQjhEO0ZCOEQ7RkI4RDswNjkxOzA2OTE7CitGQjhFO0ZCOEU7RkI4RTswNkE5OzA2QTk7CitGQjhGO0ZCOEY7RkI4RjswNkE5OzA2QTk7CitGQjkwO0ZCOTA7RkI5MDswNkE5OzA2QTk7CitGQjkxO0ZCOTE7RkI5MTswNkE5OzA2QTk7CitGQjkyO0ZCOTI7RkI5MjswNkFGOzA2QUY7CitGQjkzO0ZCOTM7RkI5MzswNkFGOzA2QUY7CitGQjk0O0ZCOTQ7RkI5NDswNkFGOzA2QUY7CitGQjk1O0ZCOTU7RkI5NTswNkFGOzA2QUY7CitGQjk2O0ZCOTY7RkI5NjswNkIzOzA2QjM7CitGQjk3O0ZCOTc7RkI5NzswNkIzOzA2QjM7CitGQjk4O0ZCOTg7RkI5ODswNkIzOzA2QjM7CitGQjk5O0ZCOTk7RkI5OTswNkIzOzA2QjM7CitGQjlBO0ZCOUE7RkI5QTswNkIxOzA2QjE7CitGQjlCO0ZCOUI7RkI5QjswNkIxOzA2QjE7CitGQjlDO0ZCOUM7RkI5QzswNkIxOzA2QjE7CitGQjlEO0ZCOUQ7RkI5RDswNkIxOzA2QjE7CitGQjlFO0ZCOUU7RkI5RTswNkJBOzA2QkE7CitGQjlGO0ZCOUY7RkI5RjswNkJBOzA2QkE7CitGQkEwO0ZCQTA7RkJBMDswNkJCOzA2QkI7CitGQkExO0ZCQTE7RkJBMTswNkJCOzA2QkI7CitGQkEyO0ZCQTI7RkJBMjswNkJCOzA2QkI7CitGQkEzO0ZCQTM7RkJBMzswNkJCOzA2QkI7CitGQkE0O0ZCQTQ7RkJBNDswNkMwOzA2RDUgMDY1NDsKK0ZCQTU7RkJBNTtGQkE1OzA2QzA7MDZENSAwNjU0OworRkJBNjtGQkE2O0ZCQTY7MDZDMTswNkMxOworRkJBNztGQkE3O0ZCQTc7MDZDMTswNkMxOworRkJBODtGQkE4O0ZCQTg7MDZDMTswNkMxOworRkJBOTtGQkE5O0ZCQTk7MDZDMTswNkMxOworRkJBQTtGQkFBO0ZCQUE7MDZCRTswNkJFOworRkJBQjtGQkFCO0ZCQUI7MDZCRTswNkJFOworRkJBQztGQkFDO0ZCQUM7MDZCRTswNkJFOworRkJBRDtGQkFEO0ZCQUQ7MDZCRTswNkJFOworRkJBRTtGQkFFO0ZCQUU7MDZEMjswNkQyOworRkJBRjtGQkFGO0ZCQUY7MDZEMjswNkQyOworRkJCMDtGQkIwO0ZCQjA7MDZEMzswNkQyIDA2NTQ7CitGQkIxO0ZCQjE7RkJCMTswNkQzOzA2RDIgMDY1NDsKK0ZCRDM7RkJEMztGQkQzOzA2QUQ7MDZBRDsKK0ZCRDQ7RkJENDtGQkQ0OzA2QUQ7MDZBRDsKK0ZCRDU7RkJENTtGQkQ1OzA2QUQ7MDZBRDsKK0ZCRDY7RkJENjtGQkQ2OzA2QUQ7MDZBRDsKK0ZCRDc7RkJENztGQkQ3OzA2Qzc7MDZDNzsKK0ZCRDg7RkJEODtGQkQ4OzA2Qzc7MDZDNzsKK0ZCRDk7RkJEOTtGQkQ5OzA2QzY7MDZDNjsKK0ZCREE7RkJEQTtGQkRBOzA2QzY7MDZDNjsKK0ZCREI7RkJEQjtGQkRCOzA2Qzg7MDZDODsKK0ZCREM7RkJEQztGQkRDOzA2Qzg7MDZDODsKK0ZCREQ7RkJERDtGQkREOzA2QzcgMDY3NDswNkM3IDA2NzQ7CitGQkRFO0ZCREU7RkJERTswNkNCOzA2Q0I7CitGQkRGO0ZCREY7RkJERjswNkNCOzA2Q0I7CitGQkUwO0ZCRTA7RkJFMDswNkM1OzA2QzU7CitGQkUxO0ZCRTE7RkJFMTswNkM1OzA2QzU7CitGQkUyO0ZCRTI7RkJFMjswNkM5OzA2Qzk7CitGQkUzO0ZCRTM7RkJFMzswNkM5OzA2Qzk7CitGQkU0O0ZCRTQ7RkJFNDswNkQwOzA2RDA7CitGQkU1O0ZCRTU7RkJFNTswNkQwOzA2RDA7CitGQkU2O0ZCRTY7RkJFNjswNkQwOzA2RDA7CitGQkU3O0ZCRTc7RkJFNzswNkQwOzA2RDA7CitGQkU4O0ZCRTg7RkJFODswNjQ5OzA2NDk7CitGQkU5O0ZCRTk7RkJFOTswNjQ5OzA2NDk7CitGQkVBO0ZCRUE7RkJFQTswNjI2IDA2Mjc7MDY0QSAwNjU0IDA2Mjc7CitGQkVCO0ZCRUI7RkJFQjswNjI2IDA2Mjc7MDY0QSAwNjU0IDA2Mjc7CitGQkVDO0ZCRUM7RkJFQzswNjI2IDA2RDU7MDY0QSAwNjU0IDA2RDU7CitGQkVEO0ZCRUQ7RkJFRDswNjI2IDA2RDU7MDY0QSAwNjU0IDA2RDU7CitGQkVFO0ZCRUU7RkJFRTswNjI2IDA2NDg7MDY0QSAwNjU0IDA2NDg7CitGQkVGO0ZCRUY7RkJFRjswNjI2IDA2NDg7MDY0QSAwNjU0IDA2NDg7CitGQkYwO0ZCRjA7RkJGMDswNjI2IDA2Qzc7MDY0QSAwNjU0IDA2Qzc7CitGQkYxO0ZCRjE7RkJGMTswNjI2IDA2Qzc7MDY0QSAwNjU0IDA2Qzc7CitGQkYyO0ZCRjI7RkJGMjswNjI2IDA2QzY7MDY0QSAwNjU0IDA2QzY7CitGQkYzO0ZCRjM7RkJGMzswNjI2IDA2QzY7MDY0QSAwNjU0IDA2QzY7CitGQkY0O0ZCRjQ7RkJGNDswNjI2IDA2Qzg7MDY0QSAwNjU0IDA2Qzg7CitGQkY1O0ZCRjU7RkJGNTswNjI2IDA2Qzg7MDY0QSAwNjU0IDA2Qzg7CitGQkY2O0ZCRjY7RkJGNjswNjI2IDA2RDA7MDY0QSAwNjU0IDA2RDA7CitGQkY3O0ZCRjc7RkJGNzswNjI2IDA2RDA7MDY0QSAwNjU0IDA2RDA7CitGQkY4O0ZCRjg7RkJGODswNjI2IDA2RDA7MDY0QSAwNjU0IDA2RDA7CitGQkY5O0ZCRjk7RkJGOTswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQkZBO0ZCRkE7RkJGQTswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQkZCO0ZCRkI7RkJGQjswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQkZDO0ZCRkM7RkJGQzswNkNDOzA2Q0M7CitGQkZEO0ZCRkQ7RkJGRDswNkNDOzA2Q0M7CitGQkZFO0ZCRkU7RkJGRTswNkNDOzA2Q0M7CitGQkZGO0ZCRkY7RkJGRjswNkNDOzA2Q0M7CitGQzAwO0ZDMDA7RkMwMDswNjI2IDA2MkM7MDY0QSAwNjU0IDA2MkM7CitGQzAxO0ZDMDE7RkMwMTswNjI2IDA2MkQ7MDY0QSAwNjU0IDA2MkQ7CitGQzAyO0ZDMDI7RkMwMjswNjI2IDA2NDU7MDY0QSAwNjU0IDA2NDU7CitGQzAzO0ZDMDM7RkMwMzswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQzA0O0ZDMDQ7RkMwNDswNjI2IDA2NEE7MDY0QSAwNjU0IDA2NEE7CitGQzA1O0ZDMDU7RkMwNTswNjI4IDA2MkM7MDYyOCAwNjJDOworRkMwNjtGQzA2O0ZDMDY7MDYyOCAwNjJEOzA2MjggMDYyRDsKK0ZDMDc7RkMwNztGQzA3OzA2MjggMDYyRTswNjI4IDA2MkU7CitGQzA4O0ZDMDg7RkMwODswNjI4IDA2NDU7MDYyOCAwNjQ1OworRkMwOTtGQzA5O0ZDMDk7MDYyOCAwNjQ5OzA2MjggMDY0OTsKK0ZDMEE7RkMwQTtGQzBBOzA2MjggMDY0QTswNjI4IDA2NEE7CitGQzBCO0ZDMEI7RkMwQjswNjJBIDA2MkM7MDYyQSAwNjJDOworRkMwQztGQzBDO0ZDMEM7MDYyQSAwNjJEOzA2MkEgMDYyRDsKK0ZDMEQ7RkMwRDtGQzBEOzA2MkEgMDYyRTswNjJBIDA2MkU7CitGQzBFO0ZDMEU7RkMwRTswNjJBIDA2NDU7MDYyQSAwNjQ1OworRkMwRjtGQzBGO0ZDMEY7MDYyQSAwNjQ5OzA2MkEgMDY0OTsKK0ZDMTA7RkMxMDtGQzEwOzA2MkEgMDY0QTswNjJBIDA2NEE7CitGQzExO0ZDMTE7RkMxMTswNjJCIDA2MkM7MDYyQiAwNjJDOworRkMxMjtGQzEyO0ZDMTI7MDYyQiAwNjQ1OzA2MkIgMDY0NTsKK0ZDMTM7RkMxMztGQzEzOzA2MkIgMDY0OTswNjJCIDA2NDk7CitGQzE0O0ZDMTQ7RkMxNDswNjJCIDA2NEE7MDYyQiAwNjRBOworRkMxNTtGQzE1O0ZDMTU7MDYyQyAwNjJEOzA2MkMgMDYyRDsKK0ZDMTY7RkMxNjtGQzE2OzA2MkMgMDY0NTswNjJDIDA2NDU7CitGQzE3O0ZDMTc7RkMxNzswNjJEIDA2MkM7MDYyRCAwNjJDOworRkMxODtGQzE4O0ZDMTg7MDYyRCAwNjQ1OzA2MkQgMDY0NTsKK0ZDMTk7RkMxOTtGQzE5OzA2MkUgMDYyQzswNjJFIDA2MkM7CitGQzFBO0ZDMUE7RkMxQTswNjJFIDA2MkQ7MDYyRSAwNjJEOworRkMxQjtGQzFCO0ZDMUI7MDYyRSAwNjQ1OzA2MkUgMDY0NTsKK0ZDMUM7RkMxQztGQzFDOzA2MzMgMDYyQzswNjMzIDA2MkM7CitGQzFEO0ZDMUQ7RkMxRDswNjMzIDA2MkQ7MDYzMyAwNjJEOworRkMxRTtGQzFFO0ZDMUU7MDYzMyAwNjJFOzA2MzMgMDYyRTsKK0ZDMUY7RkMxRjtGQzFGOzA2MzMgMDY0NTswNjMzIDA2NDU7CitGQzIwO0ZDMjA7RkMyMDswNjM1IDA2MkQ7MDYzNSAwNjJEOworRkMyMTtGQzIxO0ZDMjE7MDYzNSAwNjQ1OzA2MzUgMDY0NTsKK0ZDMjI7RkMyMjtGQzIyOzA2MzYgMDYyQzswNjM2IDA2MkM7CitGQzIzO0ZDMjM7RkMyMzswNjM2IDA2MkQ7MDYzNiAwNjJEOworRkMyNDtGQzI0O0ZDMjQ7MDYzNiAwNjJFOzA2MzYgMDYyRTsKK0ZDMjU7RkMyNTtGQzI1OzA2MzYgMDY0NTswNjM2IDA2NDU7CitGQzI2O0ZDMjY7RkMyNjswNjM3IDA2MkQ7MDYzNyAwNjJEOworRkMyNztGQzI3O0ZDMjc7MDYzNyAwNjQ1OzA2MzcgMDY0NTsKK0ZDMjg7RkMyODtGQzI4OzA2MzggMDY0NTswNjM4IDA2NDU7CitGQzI5O0ZDMjk7RkMyOTswNjM5IDA2MkM7MDYzOSAwNjJDOworRkMyQTtGQzJBO0ZDMkE7MDYzOSAwNjQ1OzA2MzkgMDY0NTsKK0ZDMkI7RkMyQjtGQzJCOzA2M0EgMDYyQzswNjNBIDA2MkM7CitGQzJDO0ZDMkM7RkMyQzswNjNBIDA2NDU7MDYzQSAwNjQ1OworRkMyRDtGQzJEO0ZDMkQ7MDY0MSAwNjJDOzA2NDEgMDYyQzsKK0ZDMkU7RkMyRTtGQzJFOzA2NDEgMDYyRDswNjQxIDA2MkQ7CitGQzJGO0ZDMkY7RkMyRjswNjQxIDA2MkU7MDY0MSAwNjJFOworRkMzMDtGQzMwO0ZDMzA7MDY0MSAwNjQ1OzA2NDEgMDY0NTsKK0ZDMzE7RkMzMTtGQzMxOzA2NDEgMDY0OTswNjQxIDA2NDk7CitGQzMyO0ZDMzI7RkMzMjswNjQxIDA2NEE7MDY0MSAwNjRBOworRkMzMztGQzMzO0ZDMzM7MDY0MiAwNjJEOzA2NDIgMDYyRDsKK0ZDMzQ7RkMzNDtGQzM0OzA2NDIgMDY0NTswNjQyIDA2NDU7CitGQzM1O0ZDMzU7RkMzNTswNjQyIDA2NDk7MDY0MiAwNjQ5OworRkMzNjtGQzM2O0ZDMzY7MDY0MiAwNjRBOzA2NDIgMDY0QTsKK0ZDMzc7RkMzNztGQzM3OzA2NDMgMDYyNzswNjQzIDA2Mjc7CitGQzM4O0ZDMzg7RkMzODswNjQzIDA2MkM7MDY0MyAwNjJDOworRkMzOTtGQzM5O0ZDMzk7MDY0MyAwNjJEOzA2NDMgMDYyRDsKK0ZDM0E7RkMzQTtGQzNBOzA2NDMgMDYyRTswNjQzIDA2MkU7CitGQzNCO0ZDM0I7RkMzQjswNjQzIDA2NDQ7MDY0MyAwNjQ0OworRkMzQztGQzNDO0ZDM0M7MDY0MyAwNjQ1OzA2NDMgMDY0NTsKK0ZDM0Q7RkMzRDtGQzNEOzA2NDMgMDY0OTswNjQzIDA2NDk7CitGQzNFO0ZDM0U7RkMzRTswNjQzIDA2NEE7MDY0MyAwNjRBOworRkMzRjtGQzNGO0ZDM0Y7MDY0NCAwNjJDOzA2NDQgMDYyQzsKK0ZDNDA7RkM0MDtGQzQwOzA2NDQgMDYyRDswNjQ0IDA2MkQ7CitGQzQxO0ZDNDE7RkM0MTswNjQ0IDA2MkU7MDY0NCAwNjJFOworRkM0MjtGQzQyO0ZDNDI7MDY0NCAwNjQ1OzA2NDQgMDY0NTsKK0ZDNDM7RkM0MztGQzQzOzA2NDQgMDY0OTswNjQ0IDA2NDk7CitGQzQ0O0ZDNDQ7RkM0NDswNjQ0IDA2NEE7MDY0NCAwNjRBOworRkM0NTtGQzQ1O0ZDNDU7MDY0NSAwNjJDOzA2NDUgMDYyQzsKK0ZDNDY7RkM0NjtGQzQ2OzA2NDUgMDYyRDswNjQ1IDA2MkQ7CitGQzQ3O0ZDNDc7RkM0NzswNjQ1IDA2MkU7MDY0NSAwNjJFOworRkM0ODtGQzQ4O0ZDNDg7MDY0NSAwNjQ1OzA2NDUgMDY0NTsKK0ZDNDk7RkM0OTtGQzQ5OzA2NDUgMDY0OTswNjQ1IDA2NDk7CitGQzRBO0ZDNEE7RkM0QTswNjQ1IDA2NEE7MDY0NSAwNjRBOworRkM0QjtGQzRCO0ZDNEI7MDY0NiAwNjJDOzA2NDYgMDYyQzsKK0ZDNEM7RkM0QztGQzRDOzA2NDYgMDYyRDswNjQ2IDA2MkQ7CitGQzREO0ZDNEQ7RkM0RDswNjQ2IDA2MkU7MDY0NiAwNjJFOworRkM0RTtGQzRFO0ZDNEU7MDY0NiAwNjQ1OzA2NDYgMDY0NTsKK0ZDNEY7RkM0RjtGQzRGOzA2NDYgMDY0OTswNjQ2IDA2NDk7CitGQzUwO0ZDNTA7RkM1MDswNjQ2IDA2NEE7MDY0NiAwNjRBOworRkM1MTtGQzUxO0ZDNTE7MDY0NyAwNjJDOzA2NDcgMDYyQzsKK0ZDNTI7RkM1MjtGQzUyOzA2NDcgMDY0NTswNjQ3IDA2NDU7CitGQzUzO0ZDNTM7RkM1MzswNjQ3IDA2NDk7MDY0NyAwNjQ5OworRkM1NDtGQzU0O0ZDNTQ7MDY0NyAwNjRBOzA2NDcgMDY0QTsKK0ZDNTU7RkM1NTtGQzU1OzA2NEEgMDYyQzswNjRBIDA2MkM7CitGQzU2O0ZDNTY7RkM1NjswNjRBIDA2MkQ7MDY0QSAwNjJEOworRkM1NztGQzU3O0ZDNTc7MDY0QSAwNjJFOzA2NEEgMDYyRTsKK0ZDNTg7RkM1ODtGQzU4OzA2NEEgMDY0NTswNjRBIDA2NDU7CitGQzU5O0ZDNTk7RkM1OTswNjRBIDA2NDk7MDY0QSAwNjQ5OworRkM1QTtGQzVBO0ZDNUE7MDY0QSAwNjRBOzA2NEEgMDY0QTsKK0ZDNUI7RkM1QjtGQzVCOzA2MzAgMDY3MDswNjMwIDA2NzA7CitGQzVDO0ZDNUM7RkM1QzswNjMxIDA2NzA7MDYzMSAwNjcwOworRkM1RDtGQzVEO0ZDNUQ7MDY0OSAwNjcwOzA2NDkgMDY3MDsKK0ZDNUU7RkM1RTtGQzVFOzAwMjAgMDY0QyAwNjUxOzAwMjAgMDY0QyAwNjUxOworRkM1RjtGQzVGO0ZDNUY7MDAyMCAwNjREIDA2NTE7MDAyMCAwNjREIDA2NTE7CitGQzYwO0ZDNjA7RkM2MDswMDIwIDA2NEUgMDY1MTswMDIwIDA2NEUgMDY1MTsKK0ZDNjE7RkM2MTtGQzYxOzAwMjAgMDY0RiAwNjUxOzAwMjAgMDY0RiAwNjUxOworRkM2MjtGQzYyO0ZDNjI7MDAyMCAwNjUwIDA2NTE7MDAyMCAwNjUwIDA2NTE7CitGQzYzO0ZDNjM7RkM2MzswMDIwIDA2NTEgMDY3MDswMDIwIDA2NTEgMDY3MDsKK0ZDNjQ7RkM2NDtGQzY0OzA2MjYgMDYzMTswNjRBIDA2NTQgMDYzMTsKK0ZDNjU7RkM2NTtGQzY1OzA2MjYgMDYzMjswNjRBIDA2NTQgMDYzMjsKK0ZDNjY7RkM2NjtGQzY2OzA2MjYgMDY0NTswNjRBIDA2NTQgMDY0NTsKK0ZDNjc7RkM2NztGQzY3OzA2MjYgMDY0NjswNjRBIDA2NTQgMDY0NjsKK0ZDNjg7RkM2ODtGQzY4OzA2MjYgMDY0OTswNjRBIDA2NTQgMDY0OTsKK0ZDNjk7RkM2OTtGQzY5OzA2MjYgMDY0QTswNjRBIDA2NTQgMDY0QTsKK0ZDNkE7RkM2QTtGQzZBOzA2MjggMDYzMTswNjI4IDA2MzE7CitGQzZCO0ZDNkI7RkM2QjswNjI4IDA2MzI7MDYyOCAwNjMyOworRkM2QztGQzZDO0ZDNkM7MDYyOCAwNjQ1OzA2MjggMDY0NTsKK0ZDNkQ7RkM2RDtGQzZEOzA2MjggMDY0NjswNjI4IDA2NDY7CitGQzZFO0ZDNkU7RkM2RTswNjI4IDA2NDk7MDYyOCAwNjQ5OworRkM2RjtGQzZGO0ZDNkY7MDYyOCAwNjRBOzA2MjggMDY0QTsKK0ZDNzA7RkM3MDtGQzcwOzA2MkEgMDYzMTswNjJBIDA2MzE7CitGQzcxO0ZDNzE7RkM3MTswNjJBIDA2MzI7MDYyQSAwNjMyOworRkM3MjtGQzcyO0ZDNzI7MDYyQSAwNjQ1OzA2MkEgMDY0NTsKK0ZDNzM7RkM3MztGQzczOzA2MkEgMDY0NjswNjJBIDA2NDY7CitGQzc0O0ZDNzQ7RkM3NDswNjJBIDA2NDk7MDYyQSAwNjQ5OworRkM3NTtGQzc1O0ZDNzU7MDYyQSAwNjRBOzA2MkEgMDY0QTsKK0ZDNzY7RkM3NjtGQzc2OzA2MkIgMDYzMTswNjJCIDA2MzE7CitGQzc3O0ZDNzc7RkM3NzswNjJCIDA2MzI7MDYyQiAwNjMyOworRkM3ODtGQzc4O0ZDNzg7MDYyQiAwNjQ1OzA2MkIgMDY0NTsKK0ZDNzk7RkM3OTtGQzc5OzA2MkIgMDY0NjswNjJCIDA2NDY7CitGQzdBO0ZDN0E7RkM3QTswNjJCIDA2NDk7MDYyQiAwNjQ5OworRkM3QjtGQzdCO0ZDN0I7MDYyQiAwNjRBOzA2MkIgMDY0QTsKK0ZDN0M7RkM3QztGQzdDOzA2NDEgMDY0OTswNjQxIDA2NDk7CitGQzdEO0ZDN0Q7RkM3RDswNjQxIDA2NEE7MDY0MSAwNjRBOworRkM3RTtGQzdFO0ZDN0U7MDY0MiAwNjQ5OzA2NDIgMDY0OTsKK0ZDN0Y7RkM3RjtGQzdGOzA2NDIgMDY0QTswNjQyIDA2NEE7CitGQzgwO0ZDODA7RkM4MDswNjQzIDA2Mjc7MDY0MyAwNjI3OworRkM4MTtGQzgxO0ZDODE7MDY0MyAwNjQ0OzA2NDMgMDY0NDsKK0ZDODI7RkM4MjtGQzgyOzA2NDMgMDY0NTswNjQzIDA2NDU7CitGQzgzO0ZDODM7RkM4MzswNjQzIDA2NDk7MDY0MyAwNjQ5OworRkM4NDtGQzg0O0ZDODQ7MDY0MyAwNjRBOzA2NDMgMDY0QTsKK0ZDODU7RkM4NTtGQzg1OzA2NDQgMDY0NTswNjQ0IDA2NDU7CitGQzg2O0ZDODY7RkM4NjswNjQ0IDA2NDk7MDY0NCAwNjQ5OworRkM4NztGQzg3O0ZDODc7MDY0NCAwNjRBOzA2NDQgMDY0QTsKK0ZDODg7RkM4ODtGQzg4OzA2NDUgMDYyNzswNjQ1IDA2Mjc7CitGQzg5O0ZDODk7RkM4OTswNjQ1IDA2NDU7MDY0NSAwNjQ1OworRkM4QTtGQzhBO0ZDOEE7MDY0NiAwNjMxOzA2NDYgMDYzMTsKK0ZDOEI7RkM4QjtGQzhCOzA2NDYgMDYzMjswNjQ2IDA2MzI7CitGQzhDO0ZDOEM7RkM4QzswNjQ2IDA2NDU7MDY0NiAwNjQ1OworRkM4RDtGQzhEO0ZDOEQ7MDY0NiAwNjQ2OzA2NDYgMDY0NjsKK0ZDOEU7RkM4RTtGQzhFOzA2NDYgMDY0OTswNjQ2IDA2NDk7CitGQzhGO0ZDOEY7RkM4RjswNjQ2IDA2NEE7MDY0NiAwNjRBOworRkM5MDtGQzkwO0ZDOTA7MDY0OSAwNjcwOzA2NDkgMDY3MDsKK0ZDOTE7RkM5MTtGQzkxOzA2NEEgMDYzMTswNjRBIDA2MzE7CitGQzkyO0ZDOTI7RkM5MjswNjRBIDA2MzI7MDY0QSAwNjMyOworRkM5MztGQzkzO0ZDOTM7MDY0QSAwNjQ1OzA2NEEgMDY0NTsKK0ZDOTQ7RkM5NDtGQzk0OzA2NEEgMDY0NjswNjRBIDA2NDY7CitGQzk1O0ZDOTU7RkM5NTswNjRBIDA2NDk7MDY0QSAwNjQ5OworRkM5NjtGQzk2O0ZDOTY7MDY0QSAwNjRBOzA2NEEgMDY0QTsKK0ZDOTc7RkM5NztGQzk3OzA2MjYgMDYyQzswNjRBIDA2NTQgMDYyQzsKK0ZDOTg7RkM5ODtGQzk4OzA2MjYgMDYyRDswNjRBIDA2NTQgMDYyRDsKK0ZDOTk7RkM5OTtGQzk5OzA2MjYgMDYyRTswNjRBIDA2NTQgMDYyRTsKK0ZDOUE7RkM5QTtGQzlBOzA2MjYgMDY0NTswNjRBIDA2NTQgMDY0NTsKK0ZDOUI7RkM5QjtGQzlCOzA2MjYgMDY0NzswNjRBIDA2NTQgMDY0NzsKK0ZDOUM7RkM5QztGQzlDOzA2MjggMDYyQzswNjI4IDA2MkM7CitGQzlEO0ZDOUQ7RkM5RDswNjI4IDA2MkQ7MDYyOCAwNjJEOworRkM5RTtGQzlFO0ZDOUU7MDYyOCAwNjJFOzA2MjggMDYyRTsKK0ZDOUY7RkM5RjtGQzlGOzA2MjggMDY0NTswNjI4IDA2NDU7CitGQ0EwO0ZDQTA7RkNBMDswNjI4IDA2NDc7MDYyOCAwNjQ3OworRkNBMTtGQ0ExO0ZDQTE7MDYyQSAwNjJDOzA2MkEgMDYyQzsKK0ZDQTI7RkNBMjtGQ0EyOzA2MkEgMDYyRDswNjJBIDA2MkQ7CitGQ0EzO0ZDQTM7RkNBMzswNjJBIDA2MkU7MDYyQSAwNjJFOworRkNBNDtGQ0E0O0ZDQTQ7MDYyQSAwNjQ1OzA2MkEgMDY0NTsKK0ZDQTU7RkNBNTtGQ0E1OzA2MkEgMDY0NzswNjJBIDA2NDc7CitGQ0E2O0ZDQTY7RkNBNjswNjJCIDA2NDU7MDYyQiAwNjQ1OworRkNBNztGQ0E3O0ZDQTc7MDYyQyAwNjJEOzA2MkMgMDYyRDsKK0ZDQTg7RkNBODtGQ0E4OzA2MkMgMDY0NTswNjJDIDA2NDU7CitGQ0E5O0ZDQTk7RkNBOTswNjJEIDA2MkM7MDYyRCAwNjJDOworRkNBQTtGQ0FBO0ZDQUE7MDYyRCAwNjQ1OzA2MkQgMDY0NTsKK0ZDQUI7RkNBQjtGQ0FCOzA2MkUgMDYyQzswNjJFIDA2MkM7CitGQ0FDO0ZDQUM7RkNBQzswNjJFIDA2NDU7MDYyRSAwNjQ1OworRkNBRDtGQ0FEO0ZDQUQ7MDYzMyAwNjJDOzA2MzMgMDYyQzsKK0ZDQUU7RkNBRTtGQ0FFOzA2MzMgMDYyRDswNjMzIDA2MkQ7CitGQ0FGO0ZDQUY7RkNBRjswNjMzIDA2MkU7MDYzMyAwNjJFOworRkNCMDtGQ0IwO0ZDQjA7MDYzMyAwNjQ1OzA2MzMgMDY0NTsKK0ZDQjE7RkNCMTtGQ0IxOzA2MzUgMDYyRDswNjM1IDA2MkQ7CitGQ0IyO0ZDQjI7RkNCMjswNjM1IDA2MkU7MDYzNSAwNjJFOworRkNCMztGQ0IzO0ZDQjM7MDYzNSAwNjQ1OzA2MzUgMDY0NTsKK0ZDQjQ7RkNCNDtGQ0I0OzA2MzYgMDYyQzswNjM2IDA2MkM7CitGQ0I1O0ZDQjU7RkNCNTswNjM2IDA2MkQ7MDYzNiAwNjJEOworRkNCNjtGQ0I2O0ZDQjY7MDYzNiAwNjJFOzA2MzYgMDYyRTsKK0ZDQjc7RkNCNztGQ0I3OzA2MzYgMDY0NTswNjM2IDA2NDU7CitGQ0I4O0ZDQjg7RkNCODswNjM3IDA2MkQ7MDYzNyAwNjJEOworRkNCOTtGQ0I5O0ZDQjk7MDYzOCAwNjQ1OzA2MzggMDY0NTsKK0ZDQkE7RkNCQTtGQ0JBOzA2MzkgMDYyQzswNjM5IDA2MkM7CitGQ0JCO0ZDQkI7RkNCQjswNjM5IDA2NDU7MDYzOSAwNjQ1OworRkNCQztGQ0JDO0ZDQkM7MDYzQSAwNjJDOzA2M0EgMDYyQzsKK0ZDQkQ7RkNCRDtGQ0JEOzA2M0EgMDY0NTswNjNBIDA2NDU7CitGQ0JFO0ZDQkU7RkNCRTswNjQxIDA2MkM7MDY0MSAwNjJDOworRkNCRjtGQ0JGO0ZDQkY7MDY0MSAwNjJEOzA2NDEgMDYyRDsKK0ZDQzA7RkNDMDtGQ0MwOzA2NDEgMDYyRTswNjQxIDA2MkU7CitGQ0MxO0ZDQzE7RkNDMTswNjQxIDA2NDU7MDY0MSAwNjQ1OworRkNDMjtGQ0MyO0ZDQzI7MDY0MiAwNjJEOzA2NDIgMDYyRDsKK0ZDQzM7RkNDMztGQ0MzOzA2NDIgMDY0NTswNjQyIDA2NDU7CitGQ0M0O0ZDQzQ7RkNDNDswNjQzIDA2MkM7MDY0MyAwNjJDOworRkNDNTtGQ0M1O0ZDQzU7MDY0MyAwNjJEOzA2NDMgMDYyRDsKK0ZDQzY7RkNDNjtGQ0M2OzA2NDMgMDYyRTswNjQzIDA2MkU7CitGQ0M3O0ZDQzc7RkNDNzswNjQzIDA2NDQ7MDY0MyAwNjQ0OworRkNDODtGQ0M4O0ZDQzg7MDY0MyAwNjQ1OzA2NDMgMDY0NTsKK0ZDQzk7RkNDOTtGQ0M5OzA2NDQgMDYyQzswNjQ0IDA2MkM7CitGQ0NBO0ZDQ0E7RkNDQTswNjQ0IDA2MkQ7MDY0NCAwNjJEOworRkNDQjtGQ0NCO0ZDQ0I7MDY0NCAwNjJFOzA2NDQgMDYyRTsKK0ZDQ0M7RkNDQztGQ0NDOzA2NDQgMDY0NTswNjQ0IDA2NDU7CitGQ0NEO0ZDQ0Q7RkNDRDswNjQ0IDA2NDc7MDY0NCAwNjQ3OworRkNDRTtGQ0NFO0ZDQ0U7MDY0NSAwNjJDOzA2NDUgMDYyQzsKK0ZDQ0Y7RkNDRjtGQ0NGOzA2NDUgMDYyRDswNjQ1IDA2MkQ7CitGQ0QwO0ZDRDA7RkNEMDswNjQ1IDA2MkU7MDY0NSAwNjJFOworRkNEMTtGQ0QxO0ZDRDE7MDY0NSAwNjQ1OzA2NDUgMDY0NTsKK0ZDRDI7RkNEMjtGQ0QyOzA2NDYgMDYyQzswNjQ2IDA2MkM7CitGQ0QzO0ZDRDM7RkNEMzswNjQ2IDA2MkQ7MDY0NiAwNjJEOworRkNENDtGQ0Q0O0ZDRDQ7MDY0NiAwNjJFOzA2NDYgMDYyRTsKK0ZDRDU7RkNENTtGQ0Q1OzA2NDYgMDY0NTswNjQ2IDA2NDU7CitGQ0Q2O0ZDRDY7RkNENjswNjQ2IDA2NDc7MDY0NiAwNjQ3OworRkNENztGQ0Q3O0ZDRDc7MDY0NyAwNjJDOzA2NDcgMDYyQzsKK0ZDRDg7RkNEODtGQ0Q4OzA2NDcgMDY0NTswNjQ3IDA2NDU7CitGQ0Q5O0ZDRDk7RkNEOTswNjQ3IDA2NzA7MDY0NyAwNjcwOworRkNEQTtGQ0RBO0ZDREE7MDY0QSAwNjJDOzA2NEEgMDYyQzsKK0ZDREI7RkNEQjtGQ0RCOzA2NEEgMDYyRDswNjRBIDA2MkQ7CitGQ0RDO0ZDREM7RkNEQzswNjRBIDA2MkU7MDY0QSAwNjJFOworRkNERDtGQ0REO0ZDREQ7MDY0QSAwNjQ1OzA2NEEgMDY0NTsKK0ZDREU7RkNERTtGQ0RFOzA2NEEgMDY0NzswNjRBIDA2NDc7CitGQ0RGO0ZDREY7RkNERjswNjI2IDA2NDU7MDY0QSAwNjU0IDA2NDU7CitGQ0UwO0ZDRTA7RkNFMDswNjI2IDA2NDc7MDY0QSAwNjU0IDA2NDc7CitGQ0UxO0ZDRTE7RkNFMTswNjI4IDA2NDU7MDYyOCAwNjQ1OworRkNFMjtGQ0UyO0ZDRTI7MDYyOCAwNjQ3OzA2MjggMDY0NzsKK0ZDRTM7RkNFMztGQ0UzOzA2MkEgMDY0NTswNjJBIDA2NDU7CitGQ0U0O0ZDRTQ7RkNFNDswNjJBIDA2NDc7MDYyQSAwNjQ3OworRkNFNTtGQ0U1O0ZDRTU7MDYyQiAwNjQ1OzA2MkIgMDY0NTsKK0ZDRTY7RkNFNjtGQ0U2OzA2MkIgMDY0NzswNjJCIDA2NDc7CitGQ0U3O0ZDRTc7RkNFNzswNjMzIDA2NDU7MDYzMyAwNjQ1OworRkNFODtGQ0U4O0ZDRTg7MDYzMyAwNjQ3OzA2MzMgMDY0NzsKK0ZDRTk7RkNFOTtGQ0U5OzA2MzQgMDY0NTswNjM0IDA2NDU7CitGQ0VBO0ZDRUE7RkNFQTswNjM0IDA2NDc7MDYzNCAwNjQ3OworRkNFQjtGQ0VCO0ZDRUI7MDY0MyAwNjQ0OzA2NDMgMDY0NDsKK0ZDRUM7RkNFQztGQ0VDOzA2NDMgMDY0NTswNjQzIDA2NDU7CitGQ0VEO0ZDRUQ7RkNFRDswNjQ0IDA2NDU7MDY0NCAwNjQ1OworRkNFRTtGQ0VFO0ZDRUU7MDY0NiAwNjQ1OzA2NDYgMDY0NTsKK0ZDRUY7RkNFRjtGQ0VGOzA2NDYgMDY0NzswNjQ2IDA2NDc7CitGQ0YwO0ZDRjA7RkNGMDswNjRBIDA2NDU7MDY0QSAwNjQ1OworRkNGMTtGQ0YxO0ZDRjE7MDY0QSAwNjQ3OzA2NEEgMDY0NzsKK0ZDRjI7RkNGMjtGQ0YyOzA2NDAgMDY0RSAwNjUxOzA2NDAgMDY0RSAwNjUxOworRkNGMztGQ0YzO0ZDRjM7MDY0MCAwNjRGIDA2NTE7MDY0MCAwNjRGIDA2NTE7CitGQ0Y0O0ZDRjQ7RkNGNDswNjQwIDA2NTAgMDY1MTswNjQwIDA2NTAgMDY1MTsKK0ZDRjU7RkNGNTtGQ0Y1OzA2MzcgMDY0OTswNjM3IDA2NDk7CitGQ0Y2O0ZDRjY7RkNGNjswNjM3IDA2NEE7MDYzNyAwNjRBOworRkNGNztGQ0Y3O0ZDRjc7MDYzOSAwNjQ5OzA2MzkgMDY0OTsKK0ZDRjg7RkNGODtGQ0Y4OzA2MzkgMDY0QTswNjM5IDA2NEE7CitGQ0Y5O0ZDRjk7RkNGOTswNjNBIDA2NDk7MDYzQSAwNjQ5OworRkNGQTtGQ0ZBO0ZDRkE7MDYzQSAwNjRBOzA2M0EgMDY0QTsKK0ZDRkI7RkNGQjtGQ0ZCOzA2MzMgMDY0OTswNjMzIDA2NDk7CitGQ0ZDO0ZDRkM7RkNGQzswNjMzIDA2NEE7MDYzMyAwNjRBOworRkNGRDtGQ0ZEO0ZDRkQ7MDYzNCAwNjQ5OzA2MzQgMDY0OTsKK0ZDRkU7RkNGRTtGQ0ZFOzA2MzQgMDY0QTswNjM0IDA2NEE7CitGQ0ZGO0ZDRkY7RkNGRjswNjJEIDA2NDk7MDYyRCAwNjQ5OworRkQwMDtGRDAwO0ZEMDA7MDYyRCAwNjRBOzA2MkQgMDY0QTsKK0ZEMDE7RkQwMTtGRDAxOzA2MkMgMDY0OTswNjJDIDA2NDk7CitGRDAyO0ZEMDI7RkQwMjswNjJDIDA2NEE7MDYyQyAwNjRBOworRkQwMztGRDAzO0ZEMDM7MDYyRSAwNjQ5OzA2MkUgMDY0OTsKK0ZEMDQ7RkQwNDtGRDA0OzA2MkUgMDY0QTswNjJFIDA2NEE7CitGRDA1O0ZEMDU7RkQwNTswNjM1IDA2NDk7MDYzNSAwNjQ5OworRkQwNjtGRDA2O0ZEMDY7MDYzNSAwNjRBOzA2MzUgMDY0QTsKK0ZEMDc7RkQwNztGRDA3OzA2MzYgMDY0OTswNjM2IDA2NDk7CitGRDA4O0ZEMDg7RkQwODswNjM2IDA2NEE7MDYzNiAwNjRBOworRkQwOTtGRDA5O0ZEMDk7MDYzNCAwNjJDOzA2MzQgMDYyQzsKK0ZEMEE7RkQwQTtGRDBBOzA2MzQgMDYyRDswNjM0IDA2MkQ7CitGRDBCO0ZEMEI7RkQwQjswNjM0IDA2MkU7MDYzNCAwNjJFOworRkQwQztGRDBDO0ZEMEM7MDYzNCAwNjQ1OzA2MzQgMDY0NTsKK0ZEMEQ7RkQwRDtGRDBEOzA2MzQgMDYzMTswNjM0IDA2MzE7CitGRDBFO0ZEMEU7RkQwRTswNjMzIDA2MzE7MDYzMyAwNjMxOworRkQwRjtGRDBGO0ZEMEY7MDYzNSAwNjMxOzA2MzUgMDYzMTsKK0ZEMTA7RkQxMDtGRDEwOzA2MzYgMDYzMTswNjM2IDA2MzE7CitGRDExO0ZEMTE7RkQxMTswNjM3IDA2NDk7MDYzNyAwNjQ5OworRkQxMjtGRDEyO0ZEMTI7MDYzNyAwNjRBOzA2MzcgMDY0QTsKK0ZEMTM7RkQxMztGRDEzOzA2MzkgMDY0OTswNjM5IDA2NDk7CitGRDE0O0ZEMTQ7RkQxNDswNjM5IDA2NEE7MDYzOSAwNjRBOworRkQxNTtGRDE1O0ZEMTU7MDYzQSAwNjQ5OzA2M0EgMDY0OTsKK0ZEMTY7RkQxNjtGRDE2OzA2M0EgMDY0QTswNjNBIDA2NEE7CitGRDE3O0ZEMTc7RkQxNzswNjMzIDA2NDk7MDYzMyAwNjQ5OworRkQxODtGRDE4O0ZEMTg7MDYzMyAwNjRBOzA2MzMgMDY0QTsKK0ZEMTk7RkQxOTtGRDE5OzA2MzQgMDY0OTswNjM0IDA2NDk7CitGRDFBO0ZEMUE7RkQxQTswNjM0IDA2NEE7MDYzNCAwNjRBOworRkQxQjtGRDFCO0ZEMUI7MDYyRCAwNjQ5OzA2MkQgMDY0OTsKK0ZEMUM7RkQxQztGRDFDOzA2MkQgMDY0QTswNjJEIDA2NEE7CitGRDFEO0ZEMUQ7RkQxRDswNjJDIDA2NDk7MDYyQyAwNjQ5OworRkQxRTtGRDFFO0ZEMUU7MDYyQyAwNjRBOzA2MkMgMDY0QTsKK0ZEMUY7RkQxRjtGRDFGOzA2MkUgMDY0OTswNjJFIDA2NDk7CitGRDIwO0ZEMjA7RkQyMDswNjJFIDA2NEE7MDYyRSAwNjRBOworRkQyMTtGRDIxO0ZEMjE7MDYzNSAwNjQ5OzA2MzUgMDY0OTsKK0ZEMjI7RkQyMjtGRDIyOzA2MzUgMDY0QTswNjM1IDA2NEE7CitGRDIzO0ZEMjM7RkQyMzswNjM2IDA2NDk7MDYzNiAwNjQ5OworRkQyNDtGRDI0O0ZEMjQ7MDYzNiAwNjRBOzA2MzYgMDY0QTsKK0ZEMjU7RkQyNTtGRDI1OzA2MzQgMDYyQzswNjM0IDA2MkM7CitGRDI2O0ZEMjY7RkQyNjswNjM0IDA2MkQ7MDYzNCAwNjJEOworRkQyNztGRDI3O0ZEMjc7MDYzNCAwNjJFOzA2MzQgMDYyRTsKK0ZEMjg7RkQyODtGRDI4OzA2MzQgMDY0NTswNjM0IDA2NDU7CitGRDI5O0ZEMjk7RkQyOTswNjM0IDA2MzE7MDYzNCAwNjMxOworRkQyQTtGRDJBO0ZEMkE7MDYzMyAwNjMxOzA2MzMgMDYzMTsKK0ZEMkI7RkQyQjtGRDJCOzA2MzUgMDYzMTswNjM1IDA2MzE7CitGRDJDO0ZEMkM7RkQyQzswNjM2IDA2MzE7MDYzNiAwNjMxOworRkQyRDtGRDJEO0ZEMkQ7MDYzNCAwNjJDOzA2MzQgMDYyQzsKK0ZEMkU7RkQyRTtGRDJFOzA2MzQgMDYyRDswNjM0IDA2MkQ7CitGRDJGO0ZEMkY7RkQyRjswNjM0IDA2MkU7MDYzNCAwNjJFOworRkQzMDtGRDMwO0ZEMzA7MDYzNCAwNjQ1OzA2MzQgMDY0NTsKK0ZEMzE7RkQzMTtGRDMxOzA2MzMgMDY0NzswNjMzIDA2NDc7CitGRDMyO0ZEMzI7RkQzMjswNjM0IDA2NDc7MDYzNCAwNjQ3OworRkQzMztGRDMzO0ZEMzM7MDYzNyAwNjQ1OzA2MzcgMDY0NTsKK0ZEMzQ7RkQzNDtGRDM0OzA2MzMgMDYyQzswNjMzIDA2MkM7CitGRDM1O0ZEMzU7RkQzNTswNjMzIDA2MkQ7MDYzMyAwNjJEOworRkQzNjtGRDM2O0ZEMzY7MDYzMyAwNjJFOzA2MzMgMDYyRTsKK0ZEMzc7RkQzNztGRDM3OzA2MzQgMDYyQzswNjM0IDA2MkM7CitGRDM4O0ZEMzg7RkQzODswNjM0IDA2MkQ7MDYzNCAwNjJEOworRkQzOTtGRDM5O0ZEMzk7MDYzNCAwNjJFOzA2MzQgMDYyRTsKK0ZEM0E7RkQzQTtGRDNBOzA2MzcgMDY0NTswNjM3IDA2NDU7CitGRDNCO0ZEM0I7RkQzQjswNjM4IDA2NDU7MDYzOCAwNjQ1OworRkQzQztGRDNDO0ZEM0M7MDYyNyAwNjRCOzA2MjcgMDY0QjsKK0ZEM0Q7RkQzRDtGRDNEOzA2MjcgMDY0QjswNjI3IDA2NEI7CitGRDUwO0ZENTA7RkQ1MDswNjJBIDA2MkMgMDY0NTswNjJBIDA2MkMgMDY0NTsKK0ZENTE7RkQ1MTtGRDUxOzA2MkEgMDYyRCAwNjJDOzA2MkEgMDYyRCAwNjJDOworRkQ1MjtGRDUyO0ZENTI7MDYyQSAwNjJEIDA2MkM7MDYyQSAwNjJEIDA2MkM7CitGRDUzO0ZENTM7RkQ1MzswNjJBIDA2MkQgMDY0NTswNjJBIDA2MkQgMDY0NTsKK0ZENTQ7RkQ1NDtGRDU0OzA2MkEgMDYyRSAwNjQ1OzA2MkEgMDYyRSAwNjQ1OworRkQ1NTtGRDU1O0ZENTU7MDYyQSAwNjQ1IDA2MkM7MDYyQSAwNjQ1IDA2MkM7CitGRDU2O0ZENTY7RkQ1NjswNjJBIDA2NDUgMDYyRDswNjJBIDA2NDUgMDYyRDsKK0ZENTc7RkQ1NztGRDU3OzA2MkEgMDY0NSAwNjJFOzA2MkEgMDY0NSAwNjJFOworRkQ1ODtGRDU4O0ZENTg7MDYyQyAwNjQ1IDA2MkQ7MDYyQyAwNjQ1IDA2MkQ7CitGRDU5O0ZENTk7RkQ1OTswNjJDIDA2NDUgMDYyRDswNjJDIDA2NDUgMDYyRDsKK0ZENUE7RkQ1QTtGRDVBOzA2MkQgMDY0NSAwNjRBOzA2MkQgMDY0NSAwNjRBOworRkQ1QjtGRDVCO0ZENUI7MDYyRCAwNjQ1IDA2NDk7MDYyRCAwNjQ1IDA2NDk7CitGRDVDO0ZENUM7RkQ1QzswNjMzIDA2MkQgMDYyQzswNjMzIDA2MkQgMDYyQzsKK0ZENUQ7RkQ1RDtGRDVEOzA2MzMgMDYyQyAwNjJEOzA2MzMgMDYyQyAwNjJEOworRkQ1RTtGRDVFO0ZENUU7MDYzMyAwNjJDIDA2NDk7MDYzMyAwNjJDIDA2NDk7CitGRDVGO0ZENUY7RkQ1RjswNjMzIDA2NDUgMDYyRDswNjMzIDA2NDUgMDYyRDsKK0ZENjA7RkQ2MDtGRDYwOzA2MzMgMDY0NSAwNjJEOzA2MzMgMDY0NSAwNjJEOworRkQ2MTtGRDYxO0ZENjE7MDYzMyAwNjQ1IDA2MkM7MDYzMyAwNjQ1IDA2MkM7CitGRDYyO0ZENjI7RkQ2MjswNjMzIDA2NDUgMDY0NTswNjMzIDA2NDUgMDY0NTsKK0ZENjM7RkQ2MztGRDYzOzA2MzMgMDY0NSAwNjQ1OzA2MzMgMDY0NSAwNjQ1OworRkQ2NDtGRDY0O0ZENjQ7MDYzNSAwNjJEIDA2MkQ7MDYzNSAwNjJEIDA2MkQ7CitGRDY1O0ZENjU7RkQ2NTswNjM1IDA2MkQgMDYyRDswNjM1IDA2MkQgMDYyRDsKK0ZENjY7RkQ2NjtGRDY2OzA2MzUgMDY0NSAwNjQ1OzA2MzUgMDY0NSAwNjQ1OworRkQ2NztGRDY3O0ZENjc7MDYzNCAwNjJEIDA2NDU7MDYzNCAwNjJEIDA2NDU7CitGRDY4O0ZENjg7RkQ2ODswNjM0IDA2MkQgMDY0NTswNjM0IDA2MkQgMDY0NTsKK0ZENjk7RkQ2OTtGRDY5OzA2MzQgMDYyQyAwNjRBOzA2MzQgMDYyQyAwNjRBOworRkQ2QTtGRDZBO0ZENkE7MDYzNCAwNjQ1IDA2MkU7MDYzNCAwNjQ1IDA2MkU7CitGRDZCO0ZENkI7RkQ2QjswNjM0IDA2NDUgMDYyRTswNjM0IDA2NDUgMDYyRTsKK0ZENkM7RkQ2QztGRDZDOzA2MzQgMDY0NSAwNjQ1OzA2MzQgMDY0NSAwNjQ1OworRkQ2RDtGRDZEO0ZENkQ7MDYzNCAwNjQ1IDA2NDU7MDYzNCAwNjQ1IDA2NDU7CitGRDZFO0ZENkU7RkQ2RTswNjM2IDA2MkQgMDY0OTswNjM2IDA2MkQgMDY0OTsKK0ZENkY7RkQ2RjtGRDZGOzA2MzYgMDYyRSAwNjQ1OzA2MzYgMDYyRSAwNjQ1OworRkQ3MDtGRDcwO0ZENzA7MDYzNiAwNjJFIDA2NDU7MDYzNiAwNjJFIDA2NDU7CitGRDcxO0ZENzE7RkQ3MTswNjM3IDA2NDUgMDYyRDswNjM3IDA2NDUgMDYyRDsKK0ZENzI7RkQ3MjtGRDcyOzA2MzcgMDY0NSAwNjJEOzA2MzcgMDY0NSAwNjJEOworRkQ3MztGRDczO0ZENzM7MDYzNyAwNjQ1IDA2NDU7MDYzNyAwNjQ1IDA2NDU7CitGRDc0O0ZENzQ7RkQ3NDswNjM3IDA2NDUgMDY0QTswNjM3IDA2NDUgMDY0QTsKK0ZENzU7RkQ3NTtGRDc1OzA2MzkgMDYyQyAwNjQ1OzA2MzkgMDYyQyAwNjQ1OworRkQ3NjtGRDc2O0ZENzY7MDYzOSAwNjQ1IDA2NDU7MDYzOSAwNjQ1IDA2NDU7CitGRDc3O0ZENzc7RkQ3NzswNjM5IDA2NDUgMDY0NTswNjM5IDA2NDUgMDY0NTsKK0ZENzg7RkQ3ODtGRDc4OzA2MzkgMDY0NSAwNjQ5OzA2MzkgMDY0NSAwNjQ5OworRkQ3OTtGRDc5O0ZENzk7MDYzQSAwNjQ1IDA2NDU7MDYzQSAwNjQ1IDA2NDU7CitGRDdBO0ZEN0E7RkQ3QTswNjNBIDA2NDUgMDY0QTswNjNBIDA2NDUgMDY0QTsKK0ZEN0I7RkQ3QjtGRDdCOzA2M0EgMDY0NSAwNjQ5OzA2M0EgMDY0NSAwNjQ5OworRkQ3QztGRDdDO0ZEN0M7MDY0MSAwNjJFIDA2NDU7MDY0MSAwNjJFIDA2NDU7CitGRDdEO0ZEN0Q7RkQ3RDswNjQxIDA2MkUgMDY0NTswNjQxIDA2MkUgMDY0NTsKK0ZEN0U7RkQ3RTtGRDdFOzA2NDIgMDY0NSAwNjJEOzA2NDIgMDY0NSAwNjJEOworRkQ3RjtGRDdGO0ZEN0Y7MDY0MiAwNjQ1IDA2NDU7MDY0MiAwNjQ1IDA2NDU7CitGRDgwO0ZEODA7RkQ4MDswNjQ0IDA2MkQgMDY0NTswNjQ0IDA2MkQgMDY0NTsKK0ZEODE7RkQ4MTtGRDgxOzA2NDQgMDYyRCAwNjRBOzA2NDQgMDYyRCAwNjRBOworRkQ4MjtGRDgyO0ZEODI7MDY0NCAwNjJEIDA2NDk7MDY0NCAwNjJEIDA2NDk7CitGRDgzO0ZEODM7RkQ4MzswNjQ0IDA2MkMgMDYyQzswNjQ0IDA2MkMgMDYyQzsKK0ZEODQ7RkQ4NDtGRDg0OzA2NDQgMDYyQyAwNjJDOzA2NDQgMDYyQyAwNjJDOworRkQ4NTtGRDg1O0ZEODU7MDY0NCAwNjJFIDA2NDU7MDY0NCAwNjJFIDA2NDU7CitGRDg2O0ZEODY7RkQ4NjswNjQ0IDA2MkUgMDY0NTswNjQ0IDA2MkUgMDY0NTsKK0ZEODc7RkQ4NztGRDg3OzA2NDQgMDY0NSAwNjJEOzA2NDQgMDY0NSAwNjJEOworRkQ4ODtGRDg4O0ZEODg7MDY0NCAwNjQ1IDA2MkQ7MDY0NCAwNjQ1IDA2MkQ7CitGRDg5O0ZEODk7RkQ4OTswNjQ1IDA2MkQgMDYyQzswNjQ1IDA2MkQgMDYyQzsKK0ZEOEE7RkQ4QTtGRDhBOzA2NDUgMDYyRCAwNjQ1OzA2NDUgMDYyRCAwNjQ1OworRkQ4QjtGRDhCO0ZEOEI7MDY0NSAwNjJEIDA2NEE7MDY0NSAwNjJEIDA2NEE7CitGRDhDO0ZEOEM7RkQ4QzswNjQ1IDA2MkMgMDYyRDswNjQ1IDA2MkMgMDYyRDsKK0ZEOEQ7RkQ4RDtGRDhEOzA2NDUgMDYyQyAwNjQ1OzA2NDUgMDYyQyAwNjQ1OworRkQ4RTtGRDhFO0ZEOEU7MDY0NSAwNjJFIDA2MkM7MDY0NSAwNjJFIDA2MkM7CitGRDhGO0ZEOEY7RkQ4RjswNjQ1IDA2MkUgMDY0NTswNjQ1IDA2MkUgMDY0NTsKK0ZEOTI7RkQ5MjtGRDkyOzA2NDUgMDYyQyAwNjJFOzA2NDUgMDYyQyAwNjJFOworRkQ5MztGRDkzO0ZEOTM7MDY0NyAwNjQ1IDA2MkM7MDY0NyAwNjQ1IDA2MkM7CitGRDk0O0ZEOTQ7RkQ5NDswNjQ3IDA2NDUgMDY0NTswNjQ3IDA2NDUgMDY0NTsKK0ZEOTU7RkQ5NTtGRDk1OzA2NDYgMDYyRCAwNjQ1OzA2NDYgMDYyRCAwNjQ1OworRkQ5NjtGRDk2O0ZEOTY7MDY0NiAwNjJEIDA2NDk7MDY0NiAwNjJEIDA2NDk7CitGRDk3O0ZEOTc7RkQ5NzswNjQ2IDA2MkMgMDY0NTswNjQ2IDA2MkMgMDY0NTsKK0ZEOTg7RkQ5ODtGRDk4OzA2NDYgMDYyQyAwNjQ1OzA2NDYgMDYyQyAwNjQ1OworRkQ5OTtGRDk5O0ZEOTk7MDY0NiAwNjJDIDA2NDk7MDY0NiAwNjJDIDA2NDk7CitGRDlBO0ZEOUE7RkQ5QTswNjQ2IDA2NDUgMDY0QTswNjQ2IDA2NDUgMDY0QTsKK0ZEOUI7RkQ5QjtGRDlCOzA2NDYgMDY0NSAwNjQ5OzA2NDYgMDY0NSAwNjQ5OworRkQ5QztGRDlDO0ZEOUM7MDY0QSAwNjQ1IDA2NDU7MDY0QSAwNjQ1IDA2NDU7CitGRDlEO0ZEOUQ7RkQ5RDswNjRBIDA2NDUgMDY0NTswNjRBIDA2NDUgMDY0NTsKK0ZEOUU7RkQ5RTtGRDlFOzA2MjggMDYyRSAwNjRBOzA2MjggMDYyRSAwNjRBOworRkQ5RjtGRDlGO0ZEOUY7MDYyQSAwNjJDIDA2NEE7MDYyQSAwNjJDIDA2NEE7CitGREEwO0ZEQTA7RkRBMDswNjJBIDA2MkMgMDY0OTswNjJBIDA2MkMgMDY0OTsKK0ZEQTE7RkRBMTtGREExOzA2MkEgMDYyRSAwNjRBOzA2MkEgMDYyRSAwNjRBOworRkRBMjtGREEyO0ZEQTI7MDYyQSAwNjJFIDA2NDk7MDYyQSAwNjJFIDA2NDk7CitGREEzO0ZEQTM7RkRBMzswNjJBIDA2NDUgMDY0QTswNjJBIDA2NDUgMDY0QTsKK0ZEQTQ7RkRBNDtGREE0OzA2MkEgMDY0NSAwNjQ5OzA2MkEgMDY0NSAwNjQ5OworRkRBNTtGREE1O0ZEQTU7MDYyQyAwNjQ1IDA2NEE7MDYyQyAwNjQ1IDA2NEE7CitGREE2O0ZEQTY7RkRBNjswNjJDIDA2MkQgMDY0OTswNjJDIDA2MkQgMDY0OTsKK0ZEQTc7RkRBNztGREE3OzA2MkMgMDY0NSAwNjQ5OzA2MkMgMDY0NSAwNjQ5OworRkRBODtGREE4O0ZEQTg7MDYzMyAwNjJFIDA2NDk7MDYzMyAwNjJFIDA2NDk7CitGREE5O0ZEQTk7RkRBOTswNjM1IDA2MkQgMDY0QTswNjM1IDA2MkQgMDY0QTsKK0ZEQUE7RkRBQTtGREFBOzA2MzQgMDYyRCAwNjRBOzA2MzQgMDYyRCAwNjRBOworRkRBQjtGREFCO0ZEQUI7MDYzNiAwNjJEIDA2NEE7MDYzNiAwNjJEIDA2NEE7CitGREFDO0ZEQUM7RkRBQzswNjQ0IDA2MkMgMDY0QTswNjQ0IDA2MkMgMDY0QTsKK0ZEQUQ7RkRBRDtGREFEOzA2NDQgMDY0NSAwNjRBOzA2NDQgMDY0NSAwNjRBOworRkRBRTtGREFFO0ZEQUU7MDY0QSAwNjJEIDA2NEE7MDY0QSAwNjJEIDA2NEE7CitGREFGO0ZEQUY7RkRBRjswNjRBIDA2MkMgMDY0QTswNjRBIDA2MkMgMDY0QTsKK0ZEQjA7RkRCMDtGREIwOzA2NEEgMDY0NSAwNjRBOzA2NEEgMDY0NSAwNjRBOworRkRCMTtGREIxO0ZEQjE7MDY0NSAwNjQ1IDA2NEE7MDY0NSAwNjQ1IDA2NEE7CitGREIyO0ZEQjI7RkRCMjswNjQyIDA2NDUgMDY0QTswNjQyIDA2NDUgMDY0QTsKK0ZEQjM7RkRCMztGREIzOzA2NDYgMDYyRCAwNjRBOzA2NDYgMDYyRCAwNjRBOworRkRCNDtGREI0O0ZEQjQ7MDY0MiAwNjQ1IDA2MkQ7MDY0MiAwNjQ1IDA2MkQ7CitGREI1O0ZEQjU7RkRCNTswNjQ0IDA2MkQgMDY0NTswNjQ0IDA2MkQgMDY0NTsKK0ZEQjY7RkRCNjtGREI2OzA2MzkgMDY0NSAwNjRBOzA2MzkgMDY0NSAwNjRBOworRkRCNztGREI3O0ZEQjc7MDY0MyAwNjQ1IDA2NEE7MDY0MyAwNjQ1IDA2NEE7CitGREI4O0ZEQjg7RkRCODswNjQ2IDA2MkMgMDYyRDswNjQ2IDA2MkMgMDYyRDsKK0ZEQjk7RkRCOTtGREI5OzA2NDUgMDYyRSAwNjRBOzA2NDUgMDYyRSAwNjRBOworRkRCQTtGREJBO0ZEQkE7MDY0NCAwNjJDIDA2NDU7MDY0NCAwNjJDIDA2NDU7CitGREJCO0ZEQkI7RkRCQjswNjQzIDA2NDUgMDY0NTswNjQzIDA2NDUgMDY0NTsKK0ZEQkM7RkRCQztGREJDOzA2NDQgMDYyQyAwNjQ1OzA2NDQgMDYyQyAwNjQ1OworRkRCRDtGREJEO0ZEQkQ7MDY0NiAwNjJDIDA2MkQ7MDY0NiAwNjJDIDA2MkQ7CitGREJFO0ZEQkU7RkRCRTswNjJDIDA2MkQgMDY0QTswNjJDIDA2MkQgMDY0QTsKK0ZEQkY7RkRCRjtGREJGOzA2MkQgMDYyQyAwNjRBOzA2MkQgMDYyQyAwNjRBOworRkRDMDtGREMwO0ZEQzA7MDY0NSAwNjJDIDA2NEE7MDY0NSAwNjJDIDA2NEE7CitGREMxO0ZEQzE7RkRDMTswNjQxIDA2NDUgMDY0QTswNjQxIDA2NDUgMDY0QTsKK0ZEQzI7RkRDMjtGREMyOzA2MjggMDYyRCAwNjRBOzA2MjggMDYyRCAwNjRBOworRkRDMztGREMzO0ZEQzM7MDY0MyAwNjQ1IDA2NDU7MDY0MyAwNjQ1IDA2NDU7CitGREM0O0ZEQzQ7RkRDNDswNjM5IDA2MkMgMDY0NTswNjM5IDA2MkMgMDY0NTsKK0ZEQzU7RkRDNTtGREM1OzA2MzUgMDY0NSAwNjQ1OzA2MzUgMDY0NSAwNjQ1OworRkRDNjtGREM2O0ZEQzY7MDYzMyAwNjJFIDA2NEE7MDYzMyAwNjJFIDA2NEE7CitGREM3O0ZEQzc7RkRDNzswNjQ2IDA2MkMgMDY0QTswNjQ2IDA2MkMgMDY0QTsKK0ZERjA7RkRGMDtGREYwOzA2MzUgMDY0NCAwNkQyOzA2MzUgMDY0NCAwNkQyOworRkRGMTtGREYxO0ZERjE7MDY0MiAwNjQ0IDA2RDI7MDY0MiAwNjQ0IDA2RDI7CitGREYyO0ZERjI7RkRGMjswNjI3IDA2NDQgMDY0NCAwNjQ3OzA2MjcgMDY0NCAwNjQ0IDA2NDc7CitGREYzO0ZERjM7RkRGMzswNjI3IDA2NDMgMDYyOCAwNjMxOzA2MjcgMDY0MyAwNjI4IDA2MzE7CitGREY0O0ZERjQ7RkRGNDswNjQ1IDA2MkQgMDY0NSAwNjJGOzA2NDUgMDYyRCAwNjQ1IDA2MkY7CitGREY1O0ZERjU7RkRGNTswNjM1IDA2NDQgMDYzOSAwNjQ1OzA2MzUgMDY0NCAwNjM5IDA2NDU7CitGREY2O0ZERjY7RkRGNjswNjMxIDA2MzMgMDY0OCAwNjQ0OzA2MzEgMDYzMyAwNjQ4IDA2NDQ7CitGREY3O0ZERjc7RkRGNzswNjM5IDA2NDQgMDY0QSAwNjQ3OzA2MzkgMDY0NCAwNjRBIDA2NDc7CitGREY4O0ZERjg7RkRGODswNjQ4IDA2MzMgMDY0NCAwNjQ1OzA2NDggMDYzMyAwNjQ0IDA2NDU7CitGREY5O0ZERjk7RkRGOTswNjM1IDA2NDQgMDY0OTswNjM1IDA2NDQgMDY0OTsKK0ZERkE7RkRGQTtGREZBOzA2MzUgMDY0NCAwNjQ5IDAwMjAgMDYyNyAwNjQ0IDA2NDQgMDY0NyAwMDIwIDA2MzkgMDY0NCAwNjRBIDA2NDcgMDAyMCAwNjQ4IDA2MzMgMDY0NCAwNjQ1OzA2MzUgMDY0NCAwNjQ5IDAwMjAgMDYyNyAwNjQ0IDA2NDQgMDY0NyAwMDIwIDA2MzkgMDY0NCAwNjRBIDA2NDcgMDAyMCAwNjQ4IDA2MzMgMDY0NCAwNjQ1OworRkRGQjtGREZCO0ZERkI7MDYyQyAwNjQ0IDAwMjAgMDYyQyAwNjQ0IDA2MjcgMDY0NCAwNjQ3OzA2MkMgMDY0NCAwMDIwIDA2MkMgMDY0NCAwNjI3IDA2NDQgMDY0NzsKK0ZERkM7RkRGQztGREZDOzA2MzEgMDZDQyAwNjI3IDA2NDQ7MDYzMSAwNkNDIDA2MjcgMDY0NDsKK0ZFMzA7RkUzMDtGRTMwOzAwMkUgMDAyRTswMDJFIDAwMkU7CitGRTMxO0ZFMzE7RkUzMTsyMDE0OzIwMTQ7CitGRTMyO0ZFMzI7RkUzMjsyMDEzOzIwMTM7CitGRTMzO0ZFMzM7RkUzMzswMDVGOzAwNUY7CitGRTM0O0ZFMzQ7RkUzNDswMDVGOzAwNUY7CitGRTM1O0ZFMzU7RkUzNTswMDI4OzAwMjg7CitGRTM2O0ZFMzY7RkUzNjswMDI5OzAwMjk7CitGRTM3O0ZFMzc7RkUzNzswMDdCOzAwN0I7CitGRTM4O0ZFMzg7RkUzODswMDdEOzAwN0Q7CitGRTM5O0ZFMzk7RkUzOTszMDE0OzMwMTQ7CitGRTNBO0ZFM0E7RkUzQTszMDE1OzMwMTU7CitGRTNCO0ZFM0I7RkUzQjszMDEwOzMwMTA7CitGRTNDO0ZFM0M7RkUzQzszMDExOzMwMTE7CitGRTNEO0ZFM0Q7RkUzRDszMDBBOzMwMEE7CitGRTNFO0ZFM0U7RkUzRTszMDBCOzMwMEI7CitGRTNGO0ZFM0Y7RkUzRjszMDA4OzMwMDg7CitGRTQwO0ZFNDA7RkU0MDszMDA5OzMwMDk7CitGRTQxO0ZFNDE7RkU0MTszMDBDOzMwMEM7CitGRTQyO0ZFNDI7RkU0MjszMDBEOzMwMEQ7CitGRTQzO0ZFNDM7RkU0MzszMDBFOzMwMEU7CitGRTQ0O0ZFNDQ7RkU0NDszMDBGOzMwMEY7CitGRTQ5O0ZFNDk7RkU0OTswMDIwIDAzMDU7MDAyMCAwMzA1OworRkU0QTtGRTRBO0ZFNEE7MDAyMCAwMzA1OzAwMjAgMDMwNTsKK0ZFNEI7RkU0QjtGRTRCOzAwMjAgMDMwNTswMDIwIDAzMDU7CitGRTRDO0ZFNEM7RkU0QzswMDIwIDAzMDU7MDAyMCAwMzA1OworRkU0RDtGRTREO0ZFNEQ7MDA1RjswMDVGOworRkU0RTtGRTRFO0ZFNEU7MDA1RjswMDVGOworRkU0RjtGRTRGO0ZFNEY7MDA1RjswMDVGOworRkU1MDtGRTUwO0ZFNTA7MDAyQzswMDJDOworRkU1MTtGRTUxO0ZFNTE7MzAwMTszMDAxOworRkU1MjtGRTUyO0ZFNTI7MDAyRTswMDJFOworRkU1NDtGRTU0O0ZFNTQ7MDAzQjswMDNCOworRkU1NTtGRTU1O0ZFNTU7MDAzQTswMDNBOworRkU1NjtGRTU2O0ZFNTY7MDAzRjswMDNGOworRkU1NztGRTU3O0ZFNTc7MDAyMTswMDIxOworRkU1ODtGRTU4O0ZFNTg7MjAxNDsyMDE0OworRkU1OTtGRTU5O0ZFNTk7MDAyODswMDI4OworRkU1QTtGRTVBO0ZFNUE7MDAyOTswMDI5OworRkU1QjtGRTVCO0ZFNUI7MDA3QjswMDdCOworRkU1QztGRTVDO0ZFNUM7MDA3RDswMDdEOworRkU1RDtGRTVEO0ZFNUQ7MzAxNDszMDE0OworRkU1RTtGRTVFO0ZFNUU7MzAxNTszMDE1OworRkU1RjtGRTVGO0ZFNUY7MDAyMzswMDIzOworRkU2MDtGRTYwO0ZFNjA7MDAyNjswMDI2OworRkU2MTtGRTYxO0ZFNjE7MDAyQTswMDJBOworRkU2MjtGRTYyO0ZFNjI7MDAyQjswMDJCOworRkU2MztGRTYzO0ZFNjM7MDAyRDswMDJEOworRkU2NDtGRTY0O0ZFNjQ7MDAzQzswMDNDOworRkU2NTtGRTY1O0ZFNjU7MDAzRTswMDNFOworRkU2NjtGRTY2O0ZFNjY7MDAzRDswMDNEOworRkU2ODtGRTY4O0ZFNjg7MDA1QzswMDVDOworRkU2OTtGRTY5O0ZFNjk7MDAyNDswMDI0OworRkU2QTtGRTZBO0ZFNkE7MDAyNTswMDI1OworRkU2QjtGRTZCO0ZFNkI7MDA0MDswMDQwOworRkU3MDtGRTcwO0ZFNzA7MDAyMCAwNjRCOzAwMjAgMDY0QjsKK0ZFNzE7RkU3MTtGRTcxOzA2NDAgMDY0QjswNjQwIDA2NEI7CitGRTcyO0ZFNzI7RkU3MjswMDIwIDA2NEM7MDAyMCAwNjRDOworRkU3NDtGRTc0O0ZFNzQ7MDAyMCAwNjREOzAwMjAgMDY0RDsKK0ZFNzY7RkU3NjtGRTc2OzAwMjAgMDY0RTswMDIwIDA2NEU7CitGRTc3O0ZFNzc7RkU3NzswNjQwIDA2NEU7MDY0MCAwNjRFOworRkU3ODtGRTc4O0ZFNzg7MDAyMCAwNjRGOzAwMjAgMDY0RjsKK0ZFNzk7RkU3OTtGRTc5OzA2NDAgMDY0RjswNjQwIDA2NEY7CitGRTdBO0ZFN0E7RkU3QTswMDIwIDA2NTA7MDAyMCAwNjUwOworRkU3QjtGRTdCO0ZFN0I7MDY0MCAwNjUwOzA2NDAgMDY1MDsKK0ZFN0M7RkU3QztGRTdDOzAwMjAgMDY1MTswMDIwIDA2NTE7CitGRTdEO0ZFN0Q7RkU3RDswNjQwIDA2NTE7MDY0MCAwNjUxOworRkU3RTtGRTdFO0ZFN0U7MDAyMCAwNjUyOzAwMjAgMDY1MjsKK0ZFN0Y7RkU3RjtGRTdGOzA2NDAgMDY1MjswNjQwIDA2NTI7CitGRTgwO0ZFODA7RkU4MDswNjIxOzA2MjE7CitGRTgxO0ZFODE7RkU4MTswNjIyOzA2MjcgMDY1MzsKK0ZFODI7RkU4MjtGRTgyOzA2MjI7MDYyNyAwNjUzOworRkU4MztGRTgzO0ZFODM7MDYyMzswNjI3IDA2NTQ7CitGRTg0O0ZFODQ7RkU4NDswNjIzOzA2MjcgMDY1NDsKK0ZFODU7RkU4NTtGRTg1OzA2MjQ7MDY0OCAwNjU0OworRkU4NjtGRTg2O0ZFODY7MDYyNDswNjQ4IDA2NTQ7CitGRTg3O0ZFODc7RkU4NzswNjI1OzA2MjcgMDY1NTsKK0ZFODg7RkU4ODtGRTg4OzA2MjU7MDYyNyAwNjU1OworRkU4OTtGRTg5O0ZFODk7MDYyNjswNjRBIDA2NTQ7CitGRThBO0ZFOEE7RkU4QTswNjI2OzA2NEEgMDY1NDsKK0ZFOEI7RkU4QjtGRThCOzA2MjY7MDY0QSAwNjU0OworRkU4QztGRThDO0ZFOEM7MDYyNjswNjRBIDA2NTQ7CitGRThEO0ZFOEQ7RkU4RDswNjI3OzA2Mjc7CitGRThFO0ZFOEU7RkU4RTswNjI3OzA2Mjc7CitGRThGO0ZFOEY7RkU4RjswNjI4OzA2Mjg7CitGRTkwO0ZFOTA7RkU5MDswNjI4OzA2Mjg7CitGRTkxO0ZFOTE7RkU5MTswNjI4OzA2Mjg7CitGRTkyO0ZFOTI7RkU5MjswNjI4OzA2Mjg7CitGRTkzO0ZFOTM7RkU5MzswNjI5OzA2Mjk7CitGRTk0O0ZFOTQ7RkU5NDswNjI5OzA2Mjk7CitGRTk1O0ZFOTU7RkU5NTswNjJBOzA2MkE7CitGRTk2O0ZFOTY7RkU5NjswNjJBOzA2MkE7CitGRTk3O0ZFOTc7RkU5NzswNjJBOzA2MkE7CitGRTk4O0ZFOTg7RkU5ODswNjJBOzA2MkE7CitGRTk5O0ZFOTk7RkU5OTswNjJCOzA2MkI7CitGRTlBO0ZFOUE7RkU5QTswNjJCOzA2MkI7CitGRTlCO0ZFOUI7RkU5QjswNjJCOzA2MkI7CitGRTlDO0ZFOUM7RkU5QzswNjJCOzA2MkI7CitGRTlEO0ZFOUQ7RkU5RDswNjJDOzA2MkM7CitGRTlFO0ZFOUU7RkU5RTswNjJDOzA2MkM7CitGRTlGO0ZFOUY7RkU5RjswNjJDOzA2MkM7CitGRUEwO0ZFQTA7RkVBMDswNjJDOzA2MkM7CitGRUExO0ZFQTE7RkVBMTswNjJEOzA2MkQ7CitGRUEyO0ZFQTI7RkVBMjswNjJEOzA2MkQ7CitGRUEzO0ZFQTM7RkVBMzswNjJEOzA2MkQ7CitGRUE0O0ZFQTQ7RkVBNDswNjJEOzA2MkQ7CitGRUE1O0ZFQTU7RkVBNTswNjJFOzA2MkU7CitGRUE2O0ZFQTY7RkVBNjswNjJFOzA2MkU7CitGRUE3O0ZFQTc7RkVBNzswNjJFOzA2MkU7CitGRUE4O0ZFQTg7RkVBODswNjJFOzA2MkU7CitGRUE5O0ZFQTk7RkVBOTswNjJGOzA2MkY7CitGRUFBO0ZFQUE7RkVBQTswNjJGOzA2MkY7CitGRUFCO0ZFQUI7RkVBQjswNjMwOzA2MzA7CitGRUFDO0ZFQUM7RkVBQzswNjMwOzA2MzA7CitGRUFEO0ZFQUQ7RkVBRDswNjMxOzA2MzE7CitGRUFFO0ZFQUU7RkVBRTswNjMxOzA2MzE7CitGRUFGO0ZFQUY7RkVBRjswNjMyOzA2MzI7CitGRUIwO0ZFQjA7RkVCMDswNjMyOzA2MzI7CitGRUIxO0ZFQjE7RkVCMTswNjMzOzA2MzM7CitGRUIyO0ZFQjI7RkVCMjswNjMzOzA2MzM7CitGRUIzO0ZFQjM7RkVCMzswNjMzOzA2MzM7CitGRUI0O0ZFQjQ7RkVCNDswNjMzOzA2MzM7CitGRUI1O0ZFQjU7RkVCNTswNjM0OzA2MzQ7CitGRUI2O0ZFQjY7RkVCNjswNjM0OzA2MzQ7CitGRUI3O0ZFQjc7RkVCNzswNjM0OzA2MzQ7CitGRUI4O0ZFQjg7RkVCODswNjM0OzA2MzQ7CitGRUI5O0ZFQjk7RkVCOTswNjM1OzA2MzU7CitGRUJBO0ZFQkE7RkVCQTswNjM1OzA2MzU7CitGRUJCO0ZFQkI7RkVCQjswNjM1OzA2MzU7CitGRUJDO0ZFQkM7RkVCQzswNjM1OzA2MzU7CitGRUJEO0ZFQkQ7RkVCRDswNjM2OzA2MzY7CitGRUJFO0ZFQkU7RkVCRTswNjM2OzA2MzY7CitGRUJGO0ZFQkY7RkVCRjswNjM2OzA2MzY7CitGRUMwO0ZFQzA7RkVDMDswNjM2OzA2MzY7CitGRUMxO0ZFQzE7RkVDMTswNjM3OzA2Mzc7CitGRUMyO0ZFQzI7RkVDMjswNjM3OzA2Mzc7CitGRUMzO0ZFQzM7RkVDMzswNjM3OzA2Mzc7CitGRUM0O0ZFQzQ7RkVDNDswNjM3OzA2Mzc7CitGRUM1O0ZFQzU7RkVDNTswNjM4OzA2Mzg7CitGRUM2O0ZFQzY7RkVDNjswNjM4OzA2Mzg7CitGRUM3O0ZFQzc7RkVDNzswNjM4OzA2Mzg7CitGRUM4O0ZFQzg7RkVDODswNjM4OzA2Mzg7CitGRUM5O0ZFQzk7RkVDOTswNjM5OzA2Mzk7CitGRUNBO0ZFQ0E7RkVDQTswNjM5OzA2Mzk7CitGRUNCO0ZFQ0I7RkVDQjswNjM5OzA2Mzk7CitGRUNDO0ZFQ0M7RkVDQzswNjM5OzA2Mzk7CitGRUNEO0ZFQ0Q7RkVDRDswNjNBOzA2M0E7CitGRUNFO0ZFQ0U7RkVDRTswNjNBOzA2M0E7CitGRUNGO0ZFQ0Y7RkVDRjswNjNBOzA2M0E7CitGRUQwO0ZFRDA7RkVEMDswNjNBOzA2M0E7CitGRUQxO0ZFRDE7RkVEMTswNjQxOzA2NDE7CitGRUQyO0ZFRDI7RkVEMjswNjQxOzA2NDE7CitGRUQzO0ZFRDM7RkVEMzswNjQxOzA2NDE7CitGRUQ0O0ZFRDQ7RkVENDswNjQxOzA2NDE7CitGRUQ1O0ZFRDU7RkVENTswNjQyOzA2NDI7CitGRUQ2O0ZFRDY7RkVENjswNjQyOzA2NDI7CitGRUQ3O0ZFRDc7RkVENzswNjQyOzA2NDI7CitGRUQ4O0ZFRDg7RkVEODswNjQyOzA2NDI7CitGRUQ5O0ZFRDk7RkVEOTswNjQzOzA2NDM7CitGRURBO0ZFREE7RkVEQTswNjQzOzA2NDM7CitGRURCO0ZFREI7RkVEQjswNjQzOzA2NDM7CitGRURDO0ZFREM7RkVEQzswNjQzOzA2NDM7CitGRUREO0ZFREQ7RkVERDswNjQ0OzA2NDQ7CitGRURFO0ZFREU7RkVERTswNjQ0OzA2NDQ7CitGRURGO0ZFREY7RkVERjswNjQ0OzA2NDQ7CitGRUUwO0ZFRTA7RkVFMDswNjQ0OzA2NDQ7CitGRUUxO0ZFRTE7RkVFMTswNjQ1OzA2NDU7CitGRUUyO0ZFRTI7RkVFMjswNjQ1OzA2NDU7CitGRUUzO0ZFRTM7RkVFMzswNjQ1OzA2NDU7CitGRUU0O0ZFRTQ7RkVFNDswNjQ1OzA2NDU7CitGRUU1O0ZFRTU7RkVFNTswNjQ2OzA2NDY7CitGRUU2O0ZFRTY7RkVFNjswNjQ2OzA2NDY7CitGRUU3O0ZFRTc7RkVFNzswNjQ2OzA2NDY7CitGRUU4O0ZFRTg7RkVFODswNjQ2OzA2NDY7CitGRUU5O0ZFRTk7RkVFOTswNjQ3OzA2NDc7CitGRUVBO0ZFRUE7RkVFQTswNjQ3OzA2NDc7CitGRUVCO0ZFRUI7RkVFQjswNjQ3OzA2NDc7CitGRUVDO0ZFRUM7RkVFQzswNjQ3OzA2NDc7CitGRUVEO0ZFRUQ7RkVFRDswNjQ4OzA2NDg7CitGRUVFO0ZFRUU7RkVFRTswNjQ4OzA2NDg7CitGRUVGO0ZFRUY7RkVFRjswNjQ5OzA2NDk7CitGRUYwO0ZFRjA7RkVGMDswNjQ5OzA2NDk7CitGRUYxO0ZFRjE7RkVGMTswNjRBOzA2NEE7CitGRUYyO0ZFRjI7RkVGMjswNjRBOzA2NEE7CitGRUYzO0ZFRjM7RkVGMzswNjRBOzA2NEE7CitGRUY0O0ZFRjQ7RkVGNDswNjRBOzA2NEE7CitGRUY1O0ZFRjU7RkVGNTswNjQ0IDA2MjI7MDY0NCAwNjI3IDA2NTM7CitGRUY2O0ZFRjY7RkVGNjswNjQ0IDA2MjI7MDY0NCAwNjI3IDA2NTM7CitGRUY3O0ZFRjc7RkVGNzswNjQ0IDA2MjM7MDY0NCAwNjI3IDA2NTQ7CitGRUY4O0ZFRjg7RkVGODswNjQ0IDA2MjM7MDY0NCAwNjI3IDA2NTQ7CitGRUY5O0ZFRjk7RkVGOTswNjQ0IDA2MjU7MDY0NCAwNjI3IDA2NTU7CitGRUZBO0ZFRkE7RkVGQTswNjQ0IDA2MjU7MDY0NCAwNjI3IDA2NTU7CitGRUZCO0ZFRkI7RkVGQjswNjQ0IDA2Mjc7MDY0NCAwNjI3OworRkVGQztGRUZDO0ZFRkM7MDY0NCAwNjI3OzA2NDQgMDYyNzsKK0ZGMDE7RkYwMTtGRjAxOzAwMjE7MDAyMTsKK0ZGMDI7RkYwMjtGRjAyOzAwMjI7MDAyMjsKK0ZGMDM7RkYwMztGRjAzOzAwMjM7MDAyMzsKK0ZGMDQ7RkYwNDtGRjA0OzAwMjQ7MDAyNDsKK0ZGMDU7RkYwNTtGRjA1OzAwMjU7MDAyNTsKK0ZGMDY7RkYwNjtGRjA2OzAwMjY7MDAyNjsKK0ZGMDc7RkYwNztGRjA3OzAwMjc7MDAyNzsKK0ZGMDg7RkYwODtGRjA4OzAwMjg7MDAyODsKK0ZGMDk7RkYwOTtGRjA5OzAwMjk7MDAyOTsKK0ZGMEE7RkYwQTtGRjBBOzAwMkE7MDAyQTsKK0ZGMEI7RkYwQjtGRjBCOzAwMkI7MDAyQjsKK0ZGMEM7RkYwQztGRjBDOzAwMkM7MDAyQzsKK0ZGMEQ7RkYwRDtGRjBEOzAwMkQ7MDAyRDsKK0ZGMEU7RkYwRTtGRjBFOzAwMkU7MDAyRTsKK0ZGMEY7RkYwRjtGRjBGOzAwMkY7MDAyRjsKK0ZGMTA7RkYxMDtGRjEwOzAwMzA7MDAzMDsKK0ZGMTE7RkYxMTtGRjExOzAwMzE7MDAzMTsKK0ZGMTI7RkYxMjtGRjEyOzAwMzI7MDAzMjsKK0ZGMTM7RkYxMztGRjEzOzAwMzM7MDAzMzsKK0ZGMTQ7RkYxNDtGRjE0OzAwMzQ7MDAzNDsKK0ZGMTU7RkYxNTtGRjE1OzAwMzU7MDAzNTsKK0ZGMTY7RkYxNjtGRjE2OzAwMzY7MDAzNjsKK0ZGMTc7RkYxNztGRjE3OzAwMzc7MDAzNzsKK0ZGMTg7RkYxODtGRjE4OzAwMzg7MDAzODsKK0ZGMTk7RkYxOTtGRjE5OzAwMzk7MDAzOTsKK0ZGMUE7RkYxQTtGRjFBOzAwM0E7MDAzQTsKK0ZGMUI7RkYxQjtGRjFCOzAwM0I7MDAzQjsKK0ZGMUM7RkYxQztGRjFDOzAwM0M7MDAzQzsKK0ZGMUQ7RkYxRDtGRjFEOzAwM0Q7MDAzRDsKK0ZGMUU7RkYxRTtGRjFFOzAwM0U7MDAzRTsKK0ZGMUY7RkYxRjtGRjFGOzAwM0Y7MDAzRjsKK0ZGMjA7RkYyMDtGRjIwOzAwNDA7MDA0MDsKK0ZGMjE7RkYyMTtGRjIxOzAwNDE7MDA0MTsKK0ZGMjI7RkYyMjtGRjIyOzAwNDI7MDA0MjsKK0ZGMjM7RkYyMztGRjIzOzAwNDM7MDA0MzsKK0ZGMjQ7RkYyNDtGRjI0OzAwNDQ7MDA0NDsKK0ZGMjU7RkYyNTtGRjI1OzAwNDU7MDA0NTsKK0ZGMjY7RkYyNjtGRjI2OzAwNDY7MDA0NjsKK0ZGMjc7RkYyNztGRjI3OzAwNDc7MDA0NzsKK0ZGMjg7RkYyODtGRjI4OzAwNDg7MDA0ODsKK0ZGMjk7RkYyOTtGRjI5OzAwNDk7MDA0OTsKK0ZGMkE7RkYyQTtGRjJBOzAwNEE7MDA0QTsKK0ZGMkI7RkYyQjtGRjJCOzAwNEI7MDA0QjsKK0ZGMkM7RkYyQztGRjJDOzAwNEM7MDA0QzsKK0ZGMkQ7RkYyRDtGRjJEOzAwNEQ7MDA0RDsKK0ZGMkU7RkYyRTtGRjJFOzAwNEU7MDA0RTsKK0ZGMkY7RkYyRjtGRjJGOzAwNEY7MDA0RjsKK0ZGMzA7RkYzMDtGRjMwOzAwNTA7MDA1MDsKK0ZGMzE7RkYzMTtGRjMxOzAwNTE7MDA1MTsKK0ZGMzI7RkYzMjtGRjMyOzAwNTI7MDA1MjsKK0ZGMzM7RkYzMztGRjMzOzAwNTM7MDA1MzsKK0ZGMzQ7RkYzNDtGRjM0OzAwNTQ7MDA1NDsKK0ZGMzU7RkYzNTtGRjM1OzAwNTU7MDA1NTsKK0ZGMzY7RkYzNjtGRjM2OzAwNTY7MDA1NjsKK0ZGMzc7RkYzNztGRjM3OzAwNTc7MDA1NzsKK0ZGMzg7RkYzODtGRjM4OzAwNTg7MDA1ODsKK0ZGMzk7RkYzOTtGRjM5OzAwNTk7MDA1OTsKK0ZGM0E7RkYzQTtGRjNBOzAwNUE7MDA1QTsKK0ZGM0I7RkYzQjtGRjNCOzAwNUI7MDA1QjsKK0ZGM0M7RkYzQztGRjNDOzAwNUM7MDA1QzsKK0ZGM0Q7RkYzRDtGRjNEOzAwNUQ7MDA1RDsKK0ZGM0U7RkYzRTtGRjNFOzAwNUU7MDA1RTsKK0ZGM0Y7RkYzRjtGRjNGOzAwNUY7MDA1RjsKK0ZGNDA7RkY0MDtGRjQwOzAwNjA7MDA2MDsKK0ZGNDE7RkY0MTtGRjQxOzAwNjE7MDA2MTsKK0ZGNDI7RkY0MjtGRjQyOzAwNjI7MDA2MjsKK0ZGNDM7RkY0MztGRjQzOzAwNjM7MDA2MzsKK0ZGNDQ7RkY0NDtGRjQ0OzAwNjQ7MDA2NDsKK0ZGNDU7RkY0NTtGRjQ1OzAwNjU7MDA2NTsKK0ZGNDY7RkY0NjtGRjQ2OzAwNjY7MDA2NjsKK0ZGNDc7RkY0NztGRjQ3OzAwNjc7MDA2NzsKK0ZGNDg7RkY0ODtGRjQ4OzAwNjg7MDA2ODsKK0ZGNDk7RkY0OTtGRjQ5OzAwNjk7MDA2OTsKK0ZGNEE7RkY0QTtGRjRBOzAwNkE7MDA2QTsKK0ZGNEI7RkY0QjtGRjRCOzAwNkI7MDA2QjsKK0ZGNEM7RkY0QztGRjRDOzAwNkM7MDA2QzsKK0ZGNEQ7RkY0RDtGRjREOzAwNkQ7MDA2RDsKK0ZGNEU7RkY0RTtGRjRFOzAwNkU7MDA2RTsKK0ZGNEY7RkY0RjtGRjRGOzAwNkY7MDA2RjsKK0ZGNTA7RkY1MDtGRjUwOzAwNzA7MDA3MDsKK0ZGNTE7RkY1MTtGRjUxOzAwNzE7MDA3MTsKK0ZGNTI7RkY1MjtGRjUyOzAwNzI7MDA3MjsKK0ZGNTM7RkY1MztGRjUzOzAwNzM7MDA3MzsKK0ZGNTQ7RkY1NDtGRjU0OzAwNzQ7MDA3NDsKK0ZGNTU7RkY1NTtGRjU1OzAwNzU7MDA3NTsKK0ZGNTY7RkY1NjtGRjU2OzAwNzY7MDA3NjsKK0ZGNTc7RkY1NztGRjU3OzAwNzc7MDA3NzsKK0ZGNTg7RkY1ODtGRjU4OzAwNzg7MDA3ODsKK0ZGNTk7RkY1OTtGRjU5OzAwNzk7MDA3OTsKK0ZGNUE7RkY1QTtGRjVBOzAwN0E7MDA3QTsKK0ZGNUI7RkY1QjtGRjVCOzAwN0I7MDA3QjsKK0ZGNUM7RkY1QztGRjVDOzAwN0M7MDA3QzsKK0ZGNUQ7RkY1RDtGRjVEOzAwN0Q7MDA3RDsKK0ZGNUU7RkY1RTtGRjVFOzAwN0U7MDA3RTsKK0ZGNUY7RkY1RjtGRjVGOzI5ODU7Mjk4NTsKK0ZGNjA7RkY2MDtGRjYwOzI5ODY7Mjk4NjsKK0ZGNjE7RkY2MTtGRjYxOzMwMDI7MzAwMjsKK0ZGNjI7RkY2MjtGRjYyOzMwMEM7MzAwQzsKK0ZGNjM7RkY2MztGRjYzOzMwMEQ7MzAwRDsKK0ZGNjQ7RkY2NDtGRjY0OzMwMDE7MzAwMTsKK0ZGNjU7RkY2NTtGRjY1OzMwRkI7MzBGQjsKK0ZGNjY7RkY2NjtGRjY2OzMwRjI7MzBGMjsKK0ZGNjc7RkY2NztGRjY3OzMwQTE7MzBBMTsKK0ZGNjg7RkY2ODtGRjY4OzMwQTM7MzBBMzsKK0ZGNjk7RkY2OTtGRjY5OzMwQTU7MzBBNTsKK0ZGNkE7RkY2QTtGRjZBOzMwQTc7MzBBNzsKK0ZGNkI7RkY2QjtGRjZCOzMwQTk7MzBBOTsKK0ZGNkM7RkY2QztGRjZDOzMwRTM7MzBFMzsKK0ZGNkQ7RkY2RDtGRjZEOzMwRTU7MzBFNTsKK0ZGNkU7RkY2RTtGRjZFOzMwRTc7MzBFNzsKK0ZGNkY7RkY2RjtGRjZGOzMwQzM7MzBDMzsKK0ZGNzA7RkY3MDtGRjcwOzMwRkM7MzBGQzsKK0ZGNzE7RkY3MTtGRjcxOzMwQTI7MzBBMjsKK0ZGNzI7RkY3MjtGRjcyOzMwQTQ7MzBBNDsKK0ZGNzM7RkY3MztGRjczOzMwQTY7MzBBNjsKK0ZGNzQ7RkY3NDtGRjc0OzMwQTg7MzBBODsKK0ZGNzU7RkY3NTtGRjc1OzMwQUE7MzBBQTsKK0ZGNzY7RkY3NjtGRjc2OzMwQUI7MzBBQjsKK0ZGNzc7RkY3NztGRjc3OzMwQUQ7MzBBRDsKK0ZGNzg7RkY3ODtGRjc4OzMwQUY7MzBBRjsKK0ZGNzk7RkY3OTtGRjc5OzMwQjE7MzBCMTsKK0ZGN0E7RkY3QTtGRjdBOzMwQjM7MzBCMzsKK0ZGN0I7RkY3QjtGRjdCOzMwQjU7MzBCNTsKK0ZGN0M7RkY3QztGRjdDOzMwQjc7MzBCNzsKK0ZGN0Q7RkY3RDtGRjdEOzMwQjk7MzBCOTsKK0ZGN0U7RkY3RTtGRjdFOzMwQkI7MzBCQjsKK0ZGN0Y7RkY3RjtGRjdGOzMwQkQ7MzBCRDsKK0ZGODA7RkY4MDtGRjgwOzMwQkY7MzBCRjsKK0ZGODE7RkY4MTtGRjgxOzMwQzE7MzBDMTsKK0ZGODI7RkY4MjtGRjgyOzMwQzQ7MzBDNDsKK0ZGODM7RkY4MztGRjgzOzMwQzY7MzBDNjsKK0ZGODQ7RkY4NDtGRjg0OzMwQzg7MzBDODsKK0ZGODU7RkY4NTtGRjg1OzMwQ0E7MzBDQTsKK0ZGODY7RkY4NjtGRjg2OzMwQ0I7MzBDQjsKK0ZGODc7RkY4NztGRjg3OzMwQ0M7MzBDQzsKK0ZGODg7RkY4ODtGRjg4OzMwQ0Q7MzBDRDsKK0ZGODk7RkY4OTtGRjg5OzMwQ0U7MzBDRTsKK0ZGOEE7RkY4QTtGRjhBOzMwQ0Y7MzBDRjsKK0ZGOEI7RkY4QjtGRjhCOzMwRDI7MzBEMjsKK0ZGOEM7RkY4QztGRjhDOzMwRDU7MzBENTsKK0ZGOEQ7RkY4RDtGRjhEOzMwRDg7MzBEODsKK0ZGOEU7RkY4RTtGRjhFOzMwREI7MzBEQjsKK0ZGOEY7RkY4RjtGRjhGOzMwREU7MzBERTsKK0ZGOTA7RkY5MDtGRjkwOzMwREY7MzBERjsKK0ZGOTE7RkY5MTtGRjkxOzMwRTA7MzBFMDsKK0ZGOTI7RkY5MjtGRjkyOzMwRTE7MzBFMTsKK0ZGOTM7RkY5MztGRjkzOzMwRTI7MzBFMjsKK0ZGOTQ7RkY5NDtGRjk0OzMwRTQ7MzBFNDsKK0ZGOTU7RkY5NTtGRjk1OzMwRTY7MzBFNjsKK0ZGOTY7RkY5NjtGRjk2OzMwRTg7MzBFODsKK0ZGOTc7RkY5NztGRjk3OzMwRTk7MzBFOTsKK0ZGOTg7RkY5ODtGRjk4OzMwRUE7MzBFQTsKK0ZGOTk7RkY5OTtGRjk5OzMwRUI7MzBFQjsKK0ZGOUE7RkY5QTtGRjlBOzMwRUM7MzBFQzsKK0ZGOUI7RkY5QjtGRjlCOzMwRUQ7MzBFRDsKK0ZGOUM7RkY5QztGRjlDOzMwRUY7MzBFRjsKK0ZGOUQ7RkY5RDtGRjlEOzMwRjM7MzBGMzsKK0ZGOUU7RkY5RTtGRjlFOzMwOTk7MzA5OTsKK0ZGOUY7RkY5RjtGRjlGOzMwOUE7MzA5QTsKK0ZGQTA7RkZBMDtGRkEwOzExNjA7MTE2MDsKK0ZGQTE7RkZBMTtGRkExOzExMDA7MTEwMDsKK0ZGQTI7RkZBMjtGRkEyOzExMDE7MTEwMTsKK0ZGQTM7RkZBMztGRkEzOzExQUE7MTFBQTsKK0ZGQTQ7RkZBNDtGRkE0OzExMDI7MTEwMjsKK0ZGQTU7RkZBNTtGRkE1OzExQUM7MTFBQzsKK0ZGQTY7RkZBNjtGRkE2OzExQUQ7MTFBRDsKK0ZGQTc7RkZBNztGRkE3OzExMDM7MTEwMzsKK0ZGQTg7RkZBODtGRkE4OzExMDQ7MTEwNDsKK0ZGQTk7RkZBOTtGRkE5OzExMDU7MTEwNTsKK0ZGQUE7RkZBQTtGRkFBOzExQjA7MTFCMDsKK0ZGQUI7RkZBQjtGRkFCOzExQjE7MTFCMTsKK0ZGQUM7RkZBQztGRkFDOzExQjI7MTFCMjsKK0ZGQUQ7RkZBRDtGRkFEOzExQjM7MTFCMzsKK0ZGQUU7RkZBRTtGRkFFOzExQjQ7MTFCNDsKK0ZGQUY7RkZBRjtGRkFGOzExQjU7MTFCNTsKK0ZGQjA7RkZCMDtGRkIwOzExMUE7MTExQTsKK0ZGQjE7RkZCMTtGRkIxOzExMDY7MTEwNjsKK0ZGQjI7RkZCMjtGRkIyOzExMDc7MTEwNzsKK0ZGQjM7RkZCMztGRkIzOzExMDg7MTEwODsKK0ZGQjQ7RkZCNDtGRkI0OzExMjE7MTEyMTsKK0ZGQjU7RkZCNTtGRkI1OzExMDk7MTEwOTsKK0ZGQjY7RkZCNjtGRkI2OzExMEE7MTEwQTsKK0ZGQjc7RkZCNztGRkI3OzExMEI7MTEwQjsKK0ZGQjg7RkZCODtGRkI4OzExMEM7MTEwQzsKK0ZGQjk7RkZCOTtGRkI5OzExMEQ7MTEwRDsKK0ZGQkE7RkZCQTtGRkJBOzExMEU7MTEwRTsKK0ZGQkI7RkZCQjtGRkJCOzExMEY7MTEwRjsKK0ZGQkM7RkZCQztGRkJDOzExMTA7MTExMDsKK0ZGQkQ7RkZCRDtGRkJEOzExMTE7MTExMTsKK0ZGQkU7RkZCRTtGRkJFOzExMTI7MTExMjsKK0ZGQzI7RkZDMjtGRkMyOzExNjE7MTE2MTsKK0ZGQzM7RkZDMztGRkMzOzExNjI7MTE2MjsKK0ZGQzQ7RkZDNDtGRkM0OzExNjM7MTE2MzsKK0ZGQzU7RkZDNTtGRkM1OzExNjQ7MTE2NDsKK0ZGQzY7RkZDNjtGRkM2OzExNjU7MTE2NTsKK0ZGQzc7RkZDNztGRkM3OzExNjY7MTE2NjsKK0ZGQ0E7RkZDQTtGRkNBOzExNjc7MTE2NzsKK0ZGQ0I7RkZDQjtGRkNCOzExNjg7MTE2ODsKK0ZGQ0M7RkZDQztGRkNDOzExNjk7MTE2OTsKK0ZGQ0Q7RkZDRDtGRkNEOzExNkE7MTE2QTsKK0ZGQ0U7RkZDRTtGRkNFOzExNkI7MTE2QjsKK0ZGQ0Y7RkZDRjtGRkNGOzExNkM7MTE2QzsKK0ZGRDI7RkZEMjtGRkQyOzExNkQ7MTE2RDsKK0ZGRDM7RkZEMztGRkQzOzExNkU7MTE2RTsKK0ZGRDQ7RkZENDtGRkQ0OzExNkY7MTE2RjsKK0ZGRDU7RkZENTtGRkQ1OzExNzA7MTE3MDsKK0ZGRDY7RkZENjtGRkQ2OzExNzE7MTE3MTsKK0ZGRDc7RkZENztGRkQ3OzExNzI7MTE3MjsKK0ZGREE7RkZEQTtGRkRBOzExNzM7MTE3MzsKK0ZGREI7RkZEQjtGRkRCOzExNzQ7MTE3NDsKK0ZGREM7RkZEQztGRkRDOzExNzU7MTE3NTsKK0ZGRTA7RkZFMDtGRkUwOzAwQTI7MDBBMjsKK0ZGRTE7RkZFMTtGRkUxOzAwQTM7MDBBMzsKK0ZGRTI7RkZFMjtGRkUyOzAwQUM7MDBBQzsKK0ZGRTM7RkZFMztGRkUzOzAwMjAgMDMwNDswMDIwIDAzMDQ7CitGRkU0O0ZGRTQ7RkZFNDswMEE2OzAwQTY7CitGRkU1O0ZGRTU7RkZFNTswMEE1OzAwQTU7CitGRkU2O0ZGRTY7RkZFNjsyMEE5OzIwQTk7CitGRkU4O0ZGRTg7RkZFODsyNTAyOzI1MDI7CitGRkU5O0ZGRTk7RkZFOTsyMTkwOzIxOTA7CitGRkVBO0ZGRUE7RkZFQTsyMTkxOzIxOTE7CitGRkVCO0ZGRUI7RkZFQjsyMTkyOzIxOTI7CitGRkVDO0ZGRUM7RkZFQzsyMTkzOzIxOTM7CitGRkVEO0ZGRUQ7RkZFRDsyNUEwOzI1QTA7CitGRkVFO0ZGRUU7RkZFRTsyNUNCOzI1Q0I7CisxRDE1RTsxRDE1NyAxRDE2NTsxRDE1NyAxRDE2NTsxRDE1NyAxRDE2NTsxRDE1NyAxRDE2NTsKKzFEMTVGOzFEMTU4IDFEMTY1OzFEMTU4IDFEMTY1OzFEMTU4IDFEMTY1OzFEMTU4IDFEMTY1OworMUQxNjA7MUQxNTggMUQxNjUgMUQxNkU7MUQxNTggMUQxNjUgMUQxNkU7MUQxNTggMUQxNjUgMUQxNkU7MUQxNTggMUQxNjUgMUQxNkU7CisxRDE2MTsxRDE1OCAxRDE2NSAxRDE2RjsxRDE1OCAxRDE2NSAxRDE2RjsxRDE1OCAxRDE2NSAxRDE2RjsxRDE1OCAxRDE2NSAxRDE2RjsKKzFEMTYyOzFEMTU4IDFEMTY1IDFEMTcwOzFEMTU4IDFEMTY1IDFEMTcwOzFEMTU4IDFEMTY1IDFEMTcwOzFEMTU4IDFEMTY1IDFEMTcwOworMUQxNjM7MUQxNTggMUQxNjUgMUQxNzE7MUQxNTggMUQxNjUgMUQxNzE7MUQxNTggMUQxNjUgMUQxNzE7MUQxNTggMUQxNjUgMUQxNzE7CisxRDE2NDsxRDE1OCAxRDE2NSAxRDE3MjsxRDE1OCAxRDE2NSAxRDE3MjsxRDE1OCAxRDE2NSAxRDE3MjsxRDE1OCAxRDE2NSAxRDE3MjsKKzFEMUJCOzFEMUI5IDFEMTY1OzFEMUI5IDFEMTY1OzFEMUI5IDFEMTY1OzFEMUI5IDFEMTY1OworMUQxQkM7MUQxQkEgMUQxNjU7MUQxQkEgMUQxNjU7MUQxQkEgMUQxNjU7MUQxQkEgMUQxNjU7CisxRDFCRDsxRDFCOSAxRDE2NSAxRDE2RTsxRDFCOSAxRDE2NSAxRDE2RTsxRDFCOSAxRDE2NSAxRDE2RTsxRDFCOSAxRDE2NSAxRDE2RTsKKzFEMUJFOzFEMUJBIDFEMTY1IDFEMTZFOzFEMUJBIDFEMTY1IDFEMTZFOzFEMUJBIDFEMTY1IDFEMTZFOzFEMUJBIDFEMTY1IDFEMTZFOworMUQxQkY7MUQxQjkgMUQxNjUgMUQxNkY7MUQxQjkgMUQxNjUgMUQxNkY7MUQxQjkgMUQxNjUgMUQxNkY7MUQxQjkgMUQxNjUgMUQxNkY7CisxRDFDMDsxRDFCQSAxRDE2NSAxRDE2RjsxRDFCQSAxRDE2NSAxRDE2RjsxRDFCQSAxRDE2NSAxRDE2RjsxRDFCQSAxRDE2NSAxRDE2RjsKKzFENDAwOzFENDAwOzFENDAwOzAwNDE7MDA0MTsKKzFENDAxOzFENDAxOzFENDAxOzAwNDI7MDA0MjsKKzFENDAyOzFENDAyOzFENDAyOzAwNDM7MDA0MzsKKzFENDAzOzFENDAzOzFENDAzOzAwNDQ7MDA0NDsKKzFENDA0OzFENDA0OzFENDA0OzAwNDU7MDA0NTsKKzFENDA1OzFENDA1OzFENDA1OzAwNDY7MDA0NjsKKzFENDA2OzFENDA2OzFENDA2OzAwNDc7MDA0NzsKKzFENDA3OzFENDA3OzFENDA3OzAwNDg7MDA0ODsKKzFENDA4OzFENDA4OzFENDA4OzAwNDk7MDA0OTsKKzFENDA5OzFENDA5OzFENDA5OzAwNEE7MDA0QTsKKzFENDBBOzFENDBBOzFENDBBOzAwNEI7MDA0QjsKKzFENDBCOzFENDBCOzFENDBCOzAwNEM7MDA0QzsKKzFENDBDOzFENDBDOzFENDBDOzAwNEQ7MDA0RDsKKzFENDBEOzFENDBEOzFENDBEOzAwNEU7MDA0RTsKKzFENDBFOzFENDBFOzFENDBFOzAwNEY7MDA0RjsKKzFENDBGOzFENDBGOzFENDBGOzAwNTA7MDA1MDsKKzFENDEwOzFENDEwOzFENDEwOzAwNTE7MDA1MTsKKzFENDExOzFENDExOzFENDExOzAwNTI7MDA1MjsKKzFENDEyOzFENDEyOzFENDEyOzAwNTM7MDA1MzsKKzFENDEzOzFENDEzOzFENDEzOzAwNTQ7MDA1NDsKKzFENDE0OzFENDE0OzFENDE0OzAwNTU7MDA1NTsKKzFENDE1OzFENDE1OzFENDE1OzAwNTY7MDA1NjsKKzFENDE2OzFENDE2OzFENDE2OzAwNTc7MDA1NzsKKzFENDE3OzFENDE3OzFENDE3OzAwNTg7MDA1ODsKKzFENDE4OzFENDE4OzFENDE4OzAwNTk7MDA1OTsKKzFENDE5OzFENDE5OzFENDE5OzAwNUE7MDA1QTsKKzFENDFBOzFENDFBOzFENDFBOzAwNjE7MDA2MTsKKzFENDFCOzFENDFCOzFENDFCOzAwNjI7MDA2MjsKKzFENDFDOzFENDFDOzFENDFDOzAwNjM7MDA2MzsKKzFENDFEOzFENDFEOzFENDFEOzAwNjQ7MDA2NDsKKzFENDFFOzFENDFFOzFENDFFOzAwNjU7MDA2NTsKKzFENDFGOzFENDFGOzFENDFGOzAwNjY7MDA2NjsKKzFENDIwOzFENDIwOzFENDIwOzAwNjc7MDA2NzsKKzFENDIxOzFENDIxOzFENDIxOzAwNjg7MDA2ODsKKzFENDIyOzFENDIyOzFENDIyOzAwNjk7MDA2OTsKKzFENDIzOzFENDIzOzFENDIzOzAwNkE7MDA2QTsKKzFENDI0OzFENDI0OzFENDI0OzAwNkI7MDA2QjsKKzFENDI1OzFENDI1OzFENDI1OzAwNkM7MDA2QzsKKzFENDI2OzFENDI2OzFENDI2OzAwNkQ7MDA2RDsKKzFENDI3OzFENDI3OzFENDI3OzAwNkU7MDA2RTsKKzFENDI4OzFENDI4OzFENDI4OzAwNkY7MDA2RjsKKzFENDI5OzFENDI5OzFENDI5OzAwNzA7MDA3MDsKKzFENDJBOzFENDJBOzFENDJBOzAwNzE7MDA3MTsKKzFENDJCOzFENDJCOzFENDJCOzAwNzI7MDA3MjsKKzFENDJDOzFENDJDOzFENDJDOzAwNzM7MDA3MzsKKzFENDJEOzFENDJEOzFENDJEOzAwNzQ7MDA3NDsKKzFENDJFOzFENDJFOzFENDJFOzAwNzU7MDA3NTsKKzFENDJGOzFENDJGOzFENDJGOzAwNzY7MDA3NjsKKzFENDMwOzFENDMwOzFENDMwOzAwNzc7MDA3NzsKKzFENDMxOzFENDMxOzFENDMxOzAwNzg7MDA3ODsKKzFENDMyOzFENDMyOzFENDMyOzAwNzk7MDA3OTsKKzFENDMzOzFENDMzOzFENDMzOzAwN0E7MDA3QTsKKzFENDM0OzFENDM0OzFENDM0OzAwNDE7MDA0MTsKKzFENDM1OzFENDM1OzFENDM1OzAwNDI7MDA0MjsKKzFENDM2OzFENDM2OzFENDM2OzAwNDM7MDA0MzsKKzFENDM3OzFENDM3OzFENDM3OzAwNDQ7MDA0NDsKKzFENDM4OzFENDM4OzFENDM4OzAwNDU7MDA0NTsKKzFENDM5OzFENDM5OzFENDM5OzAwNDY7MDA0NjsKKzFENDNBOzFENDNBOzFENDNBOzAwNDc7MDA0NzsKKzFENDNCOzFENDNCOzFENDNCOzAwNDg7MDA0ODsKKzFENDNDOzFENDNDOzFENDNDOzAwNDk7MDA0OTsKKzFENDNEOzFENDNEOzFENDNEOzAwNEE7MDA0QTsKKzFENDNFOzFENDNFOzFENDNFOzAwNEI7MDA0QjsKKzFENDNGOzFENDNGOzFENDNGOzAwNEM7MDA0QzsKKzFENDQwOzFENDQwOzFENDQwOzAwNEQ7MDA0RDsKKzFENDQxOzFENDQxOzFENDQxOzAwNEU7MDA0RTsKKzFENDQyOzFENDQyOzFENDQyOzAwNEY7MDA0RjsKKzFENDQzOzFENDQzOzFENDQzOzAwNTA7MDA1MDsKKzFENDQ0OzFENDQ0OzFENDQ0OzAwNTE7MDA1MTsKKzFENDQ1OzFENDQ1OzFENDQ1OzAwNTI7MDA1MjsKKzFENDQ2OzFENDQ2OzFENDQ2OzAwNTM7MDA1MzsKKzFENDQ3OzFENDQ3OzFENDQ3OzAwNTQ7MDA1NDsKKzFENDQ4OzFENDQ4OzFENDQ4OzAwNTU7MDA1NTsKKzFENDQ5OzFENDQ5OzFENDQ5OzAwNTY7MDA1NjsKKzFENDRBOzFENDRBOzFENDRBOzAwNTc7MDA1NzsKKzFENDRCOzFENDRCOzFENDRCOzAwNTg7MDA1ODsKKzFENDRDOzFENDRDOzFENDRDOzAwNTk7MDA1OTsKKzFENDREOzFENDREOzFENDREOzAwNUE7MDA1QTsKKzFENDRFOzFENDRFOzFENDRFOzAwNjE7MDA2MTsKKzFENDRGOzFENDRGOzFENDRGOzAwNjI7MDA2MjsKKzFENDUwOzFENDUwOzFENDUwOzAwNjM7MDA2MzsKKzFENDUxOzFENDUxOzFENDUxOzAwNjQ7MDA2NDsKKzFENDUyOzFENDUyOzFENDUyOzAwNjU7MDA2NTsKKzFENDUzOzFENDUzOzFENDUzOzAwNjY7MDA2NjsKKzFENDU0OzFENDU0OzFENDU0OzAwNjc7MDA2NzsKKzFENDU2OzFENDU2OzFENDU2OzAwNjk7MDA2OTsKKzFENDU3OzFENDU3OzFENDU3OzAwNkE7MDA2QTsKKzFENDU4OzFENDU4OzFENDU4OzAwNkI7MDA2QjsKKzFENDU5OzFENDU5OzFENDU5OzAwNkM7MDA2QzsKKzFENDVBOzFENDVBOzFENDVBOzAwNkQ7MDA2RDsKKzFENDVCOzFENDVCOzFENDVCOzAwNkU7MDA2RTsKKzFENDVDOzFENDVDOzFENDVDOzAwNkY7MDA2RjsKKzFENDVEOzFENDVEOzFENDVEOzAwNzA7MDA3MDsKKzFENDVFOzFENDVFOzFENDVFOzAwNzE7MDA3MTsKKzFENDVGOzFENDVGOzFENDVGOzAwNzI7MDA3MjsKKzFENDYwOzFENDYwOzFENDYwOzAwNzM7MDA3MzsKKzFENDYxOzFENDYxOzFENDYxOzAwNzQ7MDA3NDsKKzFENDYyOzFENDYyOzFENDYyOzAwNzU7MDA3NTsKKzFENDYzOzFENDYzOzFENDYzOzAwNzY7MDA3NjsKKzFENDY0OzFENDY0OzFENDY0OzAwNzc7MDA3NzsKKzFENDY1OzFENDY1OzFENDY1OzAwNzg7MDA3ODsKKzFENDY2OzFENDY2OzFENDY2OzAwNzk7MDA3OTsKKzFENDY3OzFENDY3OzFENDY3OzAwN0E7MDA3QTsKKzFENDY4OzFENDY4OzFENDY4OzAwNDE7MDA0MTsKKzFENDY5OzFENDY5OzFENDY5OzAwNDI7MDA0MjsKKzFENDZBOzFENDZBOzFENDZBOzAwNDM7MDA0MzsKKzFENDZCOzFENDZCOzFENDZCOzAwNDQ7MDA0NDsKKzFENDZDOzFENDZDOzFENDZDOzAwNDU7MDA0NTsKKzFENDZEOzFENDZEOzFENDZEOzAwNDY7MDA0NjsKKzFENDZFOzFENDZFOzFENDZFOzAwNDc7MDA0NzsKKzFENDZGOzFENDZGOzFENDZGOzAwNDg7MDA0ODsKKzFENDcwOzFENDcwOzFENDcwOzAwNDk7MDA0OTsKKzFENDcxOzFENDcxOzFENDcxOzAwNEE7MDA0QTsKKzFENDcyOzFENDcyOzFENDcyOzAwNEI7MDA0QjsKKzFENDczOzFENDczOzFENDczOzAwNEM7MDA0QzsKKzFENDc0OzFENDc0OzFENDc0OzAwNEQ7MDA0RDsKKzFENDc1OzFENDc1OzFENDc1OzAwNEU7MDA0RTsKKzFENDc2OzFENDc2OzFENDc2OzAwNEY7MDA0RjsKKzFENDc3OzFENDc3OzFENDc3OzAwNTA7MDA1MDsKKzFENDc4OzFENDc4OzFENDc4OzAwNTE7MDA1MTsKKzFENDc5OzFENDc5OzFENDc5OzAwNTI7MDA1MjsKKzFENDdBOzFENDdBOzFENDdBOzAwNTM7MDA1MzsKKzFENDdCOzFENDdCOzFENDdCOzAwNTQ7MDA1NDsKKzFENDdDOzFENDdDOzFENDdDOzAwNTU7MDA1NTsKKzFENDdEOzFENDdEOzFENDdEOzAwNTY7MDA1NjsKKzFENDdFOzFENDdFOzFENDdFOzAwNTc7MDA1NzsKKzFENDdGOzFENDdGOzFENDdGOzAwNTg7MDA1ODsKKzFENDgwOzFENDgwOzFENDgwOzAwNTk7MDA1OTsKKzFENDgxOzFENDgxOzFENDgxOzAwNUE7MDA1QTsKKzFENDgyOzFENDgyOzFENDgyOzAwNjE7MDA2MTsKKzFENDgzOzFENDgzOzFENDgzOzAwNjI7MDA2MjsKKzFENDg0OzFENDg0OzFENDg0OzAwNjM7MDA2MzsKKzFENDg1OzFENDg1OzFENDg1OzAwNjQ7MDA2NDsKKzFENDg2OzFENDg2OzFENDg2OzAwNjU7MDA2NTsKKzFENDg3OzFENDg3OzFENDg3OzAwNjY7MDA2NjsKKzFENDg4OzFENDg4OzFENDg4OzAwNjc7MDA2NzsKKzFENDg5OzFENDg5OzFENDg5OzAwNjg7MDA2ODsKKzFENDhBOzFENDhBOzFENDhBOzAwNjk7MDA2OTsKKzFENDhCOzFENDhCOzFENDhCOzAwNkE7MDA2QTsKKzFENDhDOzFENDhDOzFENDhDOzAwNkI7MDA2QjsKKzFENDhEOzFENDhEOzFENDhEOzAwNkM7MDA2QzsKKzFENDhFOzFENDhFOzFENDhFOzAwNkQ7MDA2RDsKKzFENDhGOzFENDhGOzFENDhGOzAwNkU7MDA2RTsKKzFENDkwOzFENDkwOzFENDkwOzAwNkY7MDA2RjsKKzFENDkxOzFENDkxOzFENDkxOzAwNzA7MDA3MDsKKzFENDkyOzFENDkyOzFENDkyOzAwNzE7MDA3MTsKKzFENDkzOzFENDkzOzFENDkzOzAwNzI7MDA3MjsKKzFENDk0OzFENDk0OzFENDk0OzAwNzM7MDA3MzsKKzFENDk1OzFENDk1OzFENDk1OzAwNzQ7MDA3NDsKKzFENDk2OzFENDk2OzFENDk2OzAwNzU7MDA3NTsKKzFENDk3OzFENDk3OzFENDk3OzAwNzY7MDA3NjsKKzFENDk4OzFENDk4OzFENDk4OzAwNzc7MDA3NzsKKzFENDk5OzFENDk5OzFENDk5OzAwNzg7MDA3ODsKKzFENDlBOzFENDlBOzFENDlBOzAwNzk7MDA3OTsKKzFENDlCOzFENDlCOzFENDlCOzAwN0E7MDA3QTsKKzFENDlDOzFENDlDOzFENDlDOzAwNDE7MDA0MTsKKzFENDlFOzFENDlFOzFENDlFOzAwNDM7MDA0MzsKKzFENDlGOzFENDlGOzFENDlGOzAwNDQ7MDA0NDsKKzFENEEyOzFENEEyOzFENEEyOzAwNDc7MDA0NzsKKzFENEE1OzFENEE1OzFENEE1OzAwNEE7MDA0QTsKKzFENEE2OzFENEE2OzFENEE2OzAwNEI7MDA0QjsKKzFENEE5OzFENEE5OzFENEE5OzAwNEU7MDA0RTsKKzFENEFBOzFENEFBOzFENEFBOzAwNEY7MDA0RjsKKzFENEFCOzFENEFCOzFENEFCOzAwNTA7MDA1MDsKKzFENEFDOzFENEFDOzFENEFDOzAwNTE7MDA1MTsKKzFENEFFOzFENEFFOzFENEFFOzAwNTM7MDA1MzsKKzFENEFGOzFENEFGOzFENEFGOzAwNTQ7MDA1NDsKKzFENEIwOzFENEIwOzFENEIwOzAwNTU7MDA1NTsKKzFENEIxOzFENEIxOzFENEIxOzAwNTY7MDA1NjsKKzFENEIyOzFENEIyOzFENEIyOzAwNTc7MDA1NzsKKzFENEIzOzFENEIzOzFENEIzOzAwNTg7MDA1ODsKKzFENEI0OzFENEI0OzFENEI0OzAwNTk7MDA1OTsKKzFENEI1OzFENEI1OzFENEI1OzAwNUE7MDA1QTsKKzFENEI2OzFENEI2OzFENEI2OzAwNjE7MDA2MTsKKzFENEI3OzFENEI3OzFENEI3OzAwNjI7MDA2MjsKKzFENEI4OzFENEI4OzFENEI4OzAwNjM7MDA2MzsKKzFENEI5OzFENEI5OzFENEI5OzAwNjQ7MDA2NDsKKzFENEJCOzFENEJCOzFENEJCOzAwNjY7MDA2NjsKKzFENEJEOzFENEJEOzFENEJEOzAwNjg7MDA2ODsKKzFENEJFOzFENEJFOzFENEJFOzAwNjk7MDA2OTsKKzFENEJGOzFENEJGOzFENEJGOzAwNkE7MDA2QTsKKzFENEMwOzFENEMwOzFENEMwOzAwNkI7MDA2QjsKKzFENEMyOzFENEMyOzFENEMyOzAwNkQ7MDA2RDsKKzFENEMzOzFENEMzOzFENEMzOzAwNkU7MDA2RTsKKzFENEM1OzFENEM1OzFENEM1OzAwNzA7MDA3MDsKKzFENEM2OzFENEM2OzFENEM2OzAwNzE7MDA3MTsKKzFENEM3OzFENEM3OzFENEM3OzAwNzI7MDA3MjsKKzFENEM4OzFENEM4OzFENEM4OzAwNzM7MDA3MzsKKzFENEM5OzFENEM5OzFENEM5OzAwNzQ7MDA3NDsKKzFENENBOzFENENBOzFENENBOzAwNzU7MDA3NTsKKzFENENCOzFENENCOzFENENCOzAwNzY7MDA3NjsKKzFENENDOzFENENDOzFENENDOzAwNzc7MDA3NzsKKzFENENEOzFENENEOzFENENEOzAwNzg7MDA3ODsKKzFENENFOzFENENFOzFENENFOzAwNzk7MDA3OTsKKzFENENGOzFENENGOzFENENGOzAwN0E7MDA3QTsKKzFENEQwOzFENEQwOzFENEQwOzAwNDE7MDA0MTsKKzFENEQxOzFENEQxOzFENEQxOzAwNDI7MDA0MjsKKzFENEQyOzFENEQyOzFENEQyOzAwNDM7MDA0MzsKKzFENEQzOzFENEQzOzFENEQzOzAwNDQ7MDA0NDsKKzFENEQ0OzFENEQ0OzFENEQ0OzAwNDU7MDA0NTsKKzFENEQ1OzFENEQ1OzFENEQ1OzAwNDY7MDA0NjsKKzFENEQ2OzFENEQ2OzFENEQ2OzAwNDc7MDA0NzsKKzFENEQ3OzFENEQ3OzFENEQ3OzAwNDg7MDA0ODsKKzFENEQ4OzFENEQ4OzFENEQ4OzAwNDk7MDA0OTsKKzFENEQ5OzFENEQ5OzFENEQ5OzAwNEE7MDA0QTsKKzFENERBOzFENERBOzFENERBOzAwNEI7MDA0QjsKKzFENERCOzFENERCOzFENERCOzAwNEM7MDA0QzsKKzFENERDOzFENERDOzFENERDOzAwNEQ7MDA0RDsKKzFENEREOzFENEREOzFENEREOzAwNEU7MDA0RTsKKzFENERFOzFENERFOzFENERFOzAwNEY7MDA0RjsKKzFENERGOzFENERGOzFENERGOzAwNTA7MDA1MDsKKzFENEUwOzFENEUwOzFENEUwOzAwNTE7MDA1MTsKKzFENEUxOzFENEUxOzFENEUxOzAwNTI7MDA1MjsKKzFENEUyOzFENEUyOzFENEUyOzAwNTM7MDA1MzsKKzFENEUzOzFENEUzOzFENEUzOzAwNTQ7MDA1NDsKKzFENEU0OzFENEU0OzFENEU0OzAwNTU7MDA1NTsKKzFENEU1OzFENEU1OzFENEU1OzAwNTY7MDA1NjsKKzFENEU2OzFENEU2OzFENEU2OzAwNTc7MDA1NzsKKzFENEU3OzFENEU3OzFENEU3OzAwNTg7MDA1ODsKKzFENEU4OzFENEU4OzFENEU4OzAwNTk7MDA1OTsKKzFENEU5OzFENEU5OzFENEU5OzAwNUE7MDA1QTsKKzFENEVBOzFENEVBOzFENEVBOzAwNjE7MDA2MTsKKzFENEVCOzFENEVCOzFENEVCOzAwNjI7MDA2MjsKKzFENEVDOzFENEVDOzFENEVDOzAwNjM7MDA2MzsKKzFENEVEOzFENEVEOzFENEVEOzAwNjQ7MDA2NDsKKzFENEVFOzFENEVFOzFENEVFOzAwNjU7MDA2NTsKKzFENEVGOzFENEVGOzFENEVGOzAwNjY7MDA2NjsKKzFENEYwOzFENEYwOzFENEYwOzAwNjc7MDA2NzsKKzFENEYxOzFENEYxOzFENEYxOzAwNjg7MDA2ODsKKzFENEYyOzFENEYyOzFENEYyOzAwNjk7MDA2OTsKKzFENEYzOzFENEYzOzFENEYzOzAwNkE7MDA2QTsKKzFENEY0OzFENEY0OzFENEY0OzAwNkI7MDA2QjsKKzFENEY1OzFENEY1OzFENEY1OzAwNkM7MDA2QzsKKzFENEY2OzFENEY2OzFENEY2OzAwNkQ7MDA2RDsKKzFENEY3OzFENEY3OzFENEY3OzAwNkU7MDA2RTsKKzFENEY4OzFENEY4OzFENEY4OzAwNkY7MDA2RjsKKzFENEY5OzFENEY5OzFENEY5OzAwNzA7MDA3MDsKKzFENEZBOzFENEZBOzFENEZBOzAwNzE7MDA3MTsKKzFENEZCOzFENEZCOzFENEZCOzAwNzI7MDA3MjsKKzFENEZDOzFENEZDOzFENEZDOzAwNzM7MDA3MzsKKzFENEZEOzFENEZEOzFENEZEOzAwNzQ7MDA3NDsKKzFENEZFOzFENEZFOzFENEZFOzAwNzU7MDA3NTsKKzFENEZGOzFENEZGOzFENEZGOzAwNzY7MDA3NjsKKzFENTAwOzFENTAwOzFENTAwOzAwNzc7MDA3NzsKKzFENTAxOzFENTAxOzFENTAxOzAwNzg7MDA3ODsKKzFENTAyOzFENTAyOzFENTAyOzAwNzk7MDA3OTsKKzFENTAzOzFENTAzOzFENTAzOzAwN0E7MDA3QTsKKzFENTA0OzFENTA0OzFENTA0OzAwNDE7MDA0MTsKKzFENTA1OzFENTA1OzFENTA1OzAwNDI7MDA0MjsKKzFENTA3OzFENTA3OzFENTA3OzAwNDQ7MDA0NDsKKzFENTA4OzFENTA4OzFENTA4OzAwNDU7MDA0NTsKKzFENTA5OzFENTA5OzFENTA5OzAwNDY7MDA0NjsKKzFENTBBOzFENTBBOzFENTBBOzAwNDc7MDA0NzsKKzFENTBEOzFENTBEOzFENTBEOzAwNEE7MDA0QTsKKzFENTBFOzFENTBFOzFENTBFOzAwNEI7MDA0QjsKKzFENTBGOzFENTBGOzFENTBGOzAwNEM7MDA0QzsKKzFENTEwOzFENTEwOzFENTEwOzAwNEQ7MDA0RDsKKzFENTExOzFENTExOzFENTExOzAwNEU7MDA0RTsKKzFENTEyOzFENTEyOzFENTEyOzAwNEY7MDA0RjsKKzFENTEzOzFENTEzOzFENTEzOzAwNTA7MDA1MDsKKzFENTE0OzFENTE0OzFENTE0OzAwNTE7MDA1MTsKKzFENTE2OzFENTE2OzFENTE2OzAwNTM7MDA1MzsKKzFENTE3OzFENTE3OzFENTE3OzAwNTQ7MDA1NDsKKzFENTE4OzFENTE4OzFENTE4OzAwNTU7MDA1NTsKKzFENTE5OzFENTE5OzFENTE5OzAwNTY7MDA1NjsKKzFENTFBOzFENTFBOzFENTFBOzAwNTc7MDA1NzsKKzFENTFCOzFENTFCOzFENTFCOzAwNTg7MDA1ODsKKzFENTFDOzFENTFDOzFENTFDOzAwNTk7MDA1OTsKKzFENTFFOzFENTFFOzFENTFFOzAwNjE7MDA2MTsKKzFENTFGOzFENTFGOzFENTFGOzAwNjI7MDA2MjsKKzFENTIwOzFENTIwOzFENTIwOzAwNjM7MDA2MzsKKzFENTIxOzFENTIxOzFENTIxOzAwNjQ7MDA2NDsKKzFENTIyOzFENTIyOzFENTIyOzAwNjU7MDA2NTsKKzFENTIzOzFENTIzOzFENTIzOzAwNjY7MDA2NjsKKzFENTI0OzFENTI0OzFENTI0OzAwNjc7MDA2NzsKKzFENTI1OzFENTI1OzFENTI1OzAwNjg7MDA2ODsKKzFENTI2OzFENTI2OzFENTI2OzAwNjk7MDA2OTsKKzFENTI3OzFENTI3OzFENTI3OzAwNkE7MDA2QTsKKzFENTI4OzFENTI4OzFENTI4OzAwNkI7MDA2QjsKKzFENTI5OzFENTI5OzFENTI5OzAwNkM7MDA2QzsKKzFENTJBOzFENTJBOzFENTJBOzAwNkQ7MDA2RDsKKzFENTJCOzFENTJCOzFENTJCOzAwNkU7MDA2RTsKKzFENTJDOzFENTJDOzFENTJDOzAwNkY7MDA2RjsKKzFENTJEOzFENTJEOzFENTJEOzAwNzA7MDA3MDsKKzFENTJFOzFENTJFOzFENTJFOzAwNzE7MDA3MTsKKzFENTJGOzFENTJGOzFENTJGOzAwNzI7MDA3MjsKKzFENTMwOzFENTMwOzFENTMwOzAwNzM7MDA3MzsKKzFENTMxOzFENTMxOzFENTMxOzAwNzQ7MDA3NDsKKzFENTMyOzFENTMyOzFENTMyOzAwNzU7MDA3NTsKKzFENTMzOzFENTMzOzFENTMzOzAwNzY7MDA3NjsKKzFENTM0OzFENTM0OzFENTM0OzAwNzc7MDA3NzsKKzFENTM1OzFENTM1OzFENTM1OzAwNzg7MDA3ODsKKzFENTM2OzFENTM2OzFENTM2OzAwNzk7MDA3OTsKKzFENTM3OzFENTM3OzFENTM3OzAwN0E7MDA3QTsKKzFENTM4OzFENTM4OzFENTM4OzAwNDE7MDA0MTsKKzFENTM5OzFENTM5OzFENTM5OzAwNDI7MDA0MjsKKzFENTNCOzFENTNCOzFENTNCOzAwNDQ7MDA0NDsKKzFENTNDOzFENTNDOzFENTNDOzAwNDU7MDA0NTsKKzFENTNEOzFENTNEOzFENTNEOzAwNDY7MDA0NjsKKzFENTNFOzFENTNFOzFENTNFOzAwNDc7MDA0NzsKKzFENTQwOzFENTQwOzFENTQwOzAwNDk7MDA0OTsKKzFENTQxOzFENTQxOzFENTQxOzAwNEE7MDA0QTsKKzFENTQyOzFENTQyOzFENTQyOzAwNEI7MDA0QjsKKzFENTQzOzFENTQzOzFENTQzOzAwNEM7MDA0QzsKKzFENTQ0OzFENTQ0OzFENTQ0OzAwNEQ7MDA0RDsKKzFENTQ2OzFENTQ2OzFENTQ2OzAwNEY7MDA0RjsKKzFENTRBOzFENTRBOzFENTRBOzAwNTM7MDA1MzsKKzFENTRCOzFENTRCOzFENTRCOzAwNTQ7MDA1NDsKKzFENTRDOzFENTRDOzFENTRDOzAwNTU7MDA1NTsKKzFENTREOzFENTREOzFENTREOzAwNTY7MDA1NjsKKzFENTRFOzFENTRFOzFENTRFOzAwNTc7MDA1NzsKKzFENTRGOzFENTRGOzFENTRGOzAwNTg7MDA1ODsKKzFENTUwOzFENTUwOzFENTUwOzAwNTk7MDA1OTsKKzFENTUyOzFENTUyOzFENTUyOzAwNjE7MDA2MTsKKzFENTUzOzFENTUzOzFENTUzOzAwNjI7MDA2MjsKKzFENTU0OzFENTU0OzFENTU0OzAwNjM7MDA2MzsKKzFENTU1OzFENTU1OzFENTU1OzAwNjQ7MDA2NDsKKzFENTU2OzFENTU2OzFENTU2OzAwNjU7MDA2NTsKKzFENTU3OzFENTU3OzFENTU3OzAwNjY7MDA2NjsKKzFENTU4OzFENTU4OzFENTU4OzAwNjc7MDA2NzsKKzFENTU5OzFENTU5OzFENTU5OzAwNjg7MDA2ODsKKzFENTVBOzFENTVBOzFENTVBOzAwNjk7MDA2OTsKKzFENTVCOzFENTVCOzFENTVCOzAwNkE7MDA2QTsKKzFENTVDOzFENTVDOzFENTVDOzAwNkI7MDA2QjsKKzFENTVEOzFENTVEOzFENTVEOzAwNkM7MDA2QzsKKzFENTVFOzFENTVFOzFENTVFOzAwNkQ7MDA2RDsKKzFENTVGOzFENTVGOzFENTVGOzAwNkU7MDA2RTsKKzFENTYwOzFENTYwOzFENTYwOzAwNkY7MDA2RjsKKzFENTYxOzFENTYxOzFENTYxOzAwNzA7MDA3MDsKKzFENTYyOzFENTYyOzFENTYyOzAwNzE7MDA3MTsKKzFENTYzOzFENTYzOzFENTYzOzAwNzI7MDA3MjsKKzFENTY0OzFENTY0OzFENTY0OzAwNzM7MDA3MzsKKzFENTY1OzFENTY1OzFENTY1OzAwNzQ7MDA3NDsKKzFENTY2OzFENTY2OzFENTY2OzAwNzU7MDA3NTsKKzFENTY3OzFENTY3OzFENTY3OzAwNzY7MDA3NjsKKzFENTY4OzFENTY4OzFENTY4OzAwNzc7MDA3NzsKKzFENTY5OzFENTY5OzFENTY5OzAwNzg7MDA3ODsKKzFENTZBOzFENTZBOzFENTZBOzAwNzk7MDA3OTsKKzFENTZCOzFENTZCOzFENTZCOzAwN0E7MDA3QTsKKzFENTZDOzFENTZDOzFENTZDOzAwNDE7MDA0MTsKKzFENTZEOzFENTZEOzFENTZEOzAwNDI7MDA0MjsKKzFENTZFOzFENTZFOzFENTZFOzAwNDM7MDA0MzsKKzFENTZGOzFENTZGOzFENTZGOzAwNDQ7MDA0NDsKKzFENTcwOzFENTcwOzFENTcwOzAwNDU7MDA0NTsKKzFENTcxOzFENTcxOzFENTcxOzAwNDY7MDA0NjsKKzFENTcyOzFENTcyOzFENTcyOzAwNDc7MDA0NzsKKzFENTczOzFENTczOzFENTczOzAwNDg7MDA0ODsKKzFENTc0OzFENTc0OzFENTc0OzAwNDk7MDA0OTsKKzFENTc1OzFENTc1OzFENTc1OzAwNEE7MDA0QTsKKzFENTc2OzFENTc2OzFENTc2OzAwNEI7MDA0QjsKKzFENTc3OzFENTc3OzFENTc3OzAwNEM7MDA0QzsKKzFENTc4OzFENTc4OzFENTc4OzAwNEQ7MDA0RDsKKzFENTc5OzFENTc5OzFENTc5OzAwNEU7MDA0RTsKKzFENTdBOzFENTdBOzFENTdBOzAwNEY7MDA0RjsKKzFENTdCOzFENTdCOzFENTdCOzAwNTA7MDA1MDsKKzFENTdDOzFENTdDOzFENTdDOzAwNTE7MDA1MTsKKzFENTdEOzFENTdEOzFENTdEOzAwNTI7MDA1MjsKKzFENTdFOzFENTdFOzFENTdFOzAwNTM7MDA1MzsKKzFENTdGOzFENTdGOzFENTdGOzAwNTQ7MDA1NDsKKzFENTgwOzFENTgwOzFENTgwOzAwNTU7MDA1NTsKKzFENTgxOzFENTgxOzFENTgxOzAwNTY7MDA1NjsKKzFENTgyOzFENTgyOzFENTgyOzAwNTc7MDA1NzsKKzFENTgzOzFENTgzOzFENTgzOzAwNTg7MDA1ODsKKzFENTg0OzFENTg0OzFENTg0OzAwNTk7MDA1OTsKKzFENTg1OzFENTg1OzFENTg1OzAwNUE7MDA1QTsKKzFENTg2OzFENTg2OzFENTg2OzAwNjE7MDA2MTsKKzFENTg3OzFENTg3OzFENTg3OzAwNjI7MDA2MjsKKzFENTg4OzFENTg4OzFENTg4OzAwNjM7MDA2MzsKKzFENTg5OzFENTg5OzFENTg5OzAwNjQ7MDA2NDsKKzFENThBOzFENThBOzFENThBOzAwNjU7MDA2NTsKKzFENThCOzFENThCOzFENThCOzAwNjY7MDA2NjsKKzFENThDOzFENThDOzFENThDOzAwNjc7MDA2NzsKKzFENThEOzFENThEOzFENThEOzAwNjg7MDA2ODsKKzFENThFOzFENThFOzFENThFOzAwNjk7MDA2OTsKKzFENThGOzFENThGOzFENThGOzAwNkE7MDA2QTsKKzFENTkwOzFENTkwOzFENTkwOzAwNkI7MDA2QjsKKzFENTkxOzFENTkxOzFENTkxOzAwNkM7MDA2QzsKKzFENTkyOzFENTkyOzFENTkyOzAwNkQ7MDA2RDsKKzFENTkzOzFENTkzOzFENTkzOzAwNkU7MDA2RTsKKzFENTk0OzFENTk0OzFENTk0OzAwNkY7MDA2RjsKKzFENTk1OzFENTk1OzFENTk1OzAwNzA7MDA3MDsKKzFENTk2OzFENTk2OzFENTk2OzAwNzE7MDA3MTsKKzFENTk3OzFENTk3OzFENTk3OzAwNzI7MDA3MjsKKzFENTk4OzFENTk4OzFENTk4OzAwNzM7MDA3MzsKKzFENTk5OzFENTk5OzFENTk5OzAwNzQ7MDA3NDsKKzFENTlBOzFENTlBOzFENTlBOzAwNzU7MDA3NTsKKzFENTlCOzFENTlCOzFENTlCOzAwNzY7MDA3NjsKKzFENTlDOzFENTlDOzFENTlDOzAwNzc7MDA3NzsKKzFENTlEOzFENTlEOzFENTlEOzAwNzg7MDA3ODsKKzFENTlFOzFENTlFOzFENTlFOzAwNzk7MDA3OTsKKzFENTlGOzFENTlGOzFENTlGOzAwN0E7MDA3QTsKKzFENUEwOzFENUEwOzFENUEwOzAwNDE7MDA0MTsKKzFENUExOzFENUExOzFENUExOzAwNDI7MDA0MjsKKzFENUEyOzFENUEyOzFENUEyOzAwNDM7MDA0MzsKKzFENUEzOzFENUEzOzFENUEzOzAwNDQ7MDA0NDsKKzFENUE0OzFENUE0OzFENUE0OzAwNDU7MDA0NTsKKzFENUE1OzFENUE1OzFENUE1OzAwNDY7MDA0NjsKKzFENUE2OzFENUE2OzFENUE2OzAwNDc7MDA0NzsKKzFENUE3OzFENUE3OzFENUE3OzAwNDg7MDA0ODsKKzFENUE4OzFENUE4OzFENUE4OzAwNDk7MDA0OTsKKzFENUE5OzFENUE5OzFENUE5OzAwNEE7MDA0QTsKKzFENUFBOzFENUFBOzFENUFBOzAwNEI7MDA0QjsKKzFENUFCOzFENUFCOzFENUFCOzAwNEM7MDA0QzsKKzFENUFDOzFENUFDOzFENUFDOzAwNEQ7MDA0RDsKKzFENUFEOzFENUFEOzFENUFEOzAwNEU7MDA0RTsKKzFENUFFOzFENUFFOzFENUFFOzAwNEY7MDA0RjsKKzFENUFGOzFENUFGOzFENUFGOzAwNTA7MDA1MDsKKzFENUIwOzFENUIwOzFENUIwOzAwNTE7MDA1MTsKKzFENUIxOzFENUIxOzFENUIxOzAwNTI7MDA1MjsKKzFENUIyOzFENUIyOzFENUIyOzAwNTM7MDA1MzsKKzFENUIzOzFENUIzOzFENUIzOzAwNTQ7MDA1NDsKKzFENUI0OzFENUI0OzFENUI0OzAwNTU7MDA1NTsKKzFENUI1OzFENUI1OzFENUI1OzAwNTY7MDA1NjsKKzFENUI2OzFENUI2OzFENUI2OzAwNTc7MDA1NzsKKzFENUI3OzFENUI3OzFENUI3OzAwNTg7MDA1ODsKKzFENUI4OzFENUI4OzFENUI4OzAwNTk7MDA1OTsKKzFENUI5OzFENUI5OzFENUI5OzAwNUE7MDA1QTsKKzFENUJBOzFENUJBOzFENUJBOzAwNjE7MDA2MTsKKzFENUJCOzFENUJCOzFENUJCOzAwNjI7MDA2MjsKKzFENUJDOzFENUJDOzFENUJDOzAwNjM7MDA2MzsKKzFENUJEOzFENUJEOzFENUJEOzAwNjQ7MDA2NDsKKzFENUJFOzFENUJFOzFENUJFOzAwNjU7MDA2NTsKKzFENUJGOzFENUJGOzFENUJGOzAwNjY7MDA2NjsKKzFENUMwOzFENUMwOzFENUMwOzAwNjc7MDA2NzsKKzFENUMxOzFENUMxOzFENUMxOzAwNjg7MDA2ODsKKzFENUMyOzFENUMyOzFENUMyOzAwNjk7MDA2OTsKKzFENUMzOzFENUMzOzFENUMzOzAwNkE7MDA2QTsKKzFENUM0OzFENUM0OzFENUM0OzAwNkI7MDA2QjsKKzFENUM1OzFENUM1OzFENUM1OzAwNkM7MDA2QzsKKzFENUM2OzFENUM2OzFENUM2OzAwNkQ7MDA2RDsKKzFENUM3OzFENUM3OzFENUM3OzAwNkU7MDA2RTsKKzFENUM4OzFENUM4OzFENUM4OzAwNkY7MDA2RjsKKzFENUM5OzFENUM5OzFENUM5OzAwNzA7MDA3MDsKKzFENUNBOzFENUNBOzFENUNBOzAwNzE7MDA3MTsKKzFENUNCOzFENUNCOzFENUNCOzAwNzI7MDA3MjsKKzFENUNDOzFENUNDOzFENUNDOzAwNzM7MDA3MzsKKzFENUNEOzFENUNEOzFENUNEOzAwNzQ7MDA3NDsKKzFENUNFOzFENUNFOzFENUNFOzAwNzU7MDA3NTsKKzFENUNGOzFENUNGOzFENUNGOzAwNzY7MDA3NjsKKzFENUQwOzFENUQwOzFENUQwOzAwNzc7MDA3NzsKKzFENUQxOzFENUQxOzFENUQxOzAwNzg7MDA3ODsKKzFENUQyOzFENUQyOzFENUQyOzAwNzk7MDA3OTsKKzFENUQzOzFENUQzOzFENUQzOzAwN0E7MDA3QTsKKzFENUQ0OzFENUQ0OzFENUQ0OzAwNDE7MDA0MTsKKzFENUQ1OzFENUQ1OzFENUQ1OzAwNDI7MDA0MjsKKzFENUQ2OzFENUQ2OzFENUQ2OzAwNDM7MDA0MzsKKzFENUQ3OzFENUQ3OzFENUQ3OzAwNDQ7MDA0NDsKKzFENUQ4OzFENUQ4OzFENUQ4OzAwNDU7MDA0NTsKKzFENUQ5OzFENUQ5OzFENUQ5OzAwNDY7MDA0NjsKKzFENURBOzFENURBOzFENURBOzAwNDc7MDA0NzsKKzFENURCOzFENURCOzFENURCOzAwNDg7MDA0ODsKKzFENURDOzFENURDOzFENURDOzAwNDk7MDA0OTsKKzFENUREOzFENUREOzFENUREOzAwNEE7MDA0QTsKKzFENURFOzFENURFOzFENURFOzAwNEI7MDA0QjsKKzFENURGOzFENURGOzFENURGOzAwNEM7MDA0QzsKKzFENUUwOzFENUUwOzFENUUwOzAwNEQ7MDA0RDsKKzFENUUxOzFENUUxOzFENUUxOzAwNEU7MDA0RTsKKzFENUUyOzFENUUyOzFENUUyOzAwNEY7MDA0RjsKKzFENUUzOzFENUUzOzFENUUzOzAwNTA7MDA1MDsKKzFENUU0OzFENUU0OzFENUU0OzAwNTE7MDA1MTsKKzFENUU1OzFENUU1OzFENUU1OzAwNTI7MDA1MjsKKzFENUU2OzFENUU2OzFENUU2OzAwNTM7MDA1MzsKKzFENUU3OzFENUU3OzFENUU3OzAwNTQ7MDA1NDsKKzFENUU4OzFENUU4OzFENUU4OzAwNTU7MDA1NTsKKzFENUU5OzFENUU5OzFENUU5OzAwNTY7MDA1NjsKKzFENUVBOzFENUVBOzFENUVBOzAwNTc7MDA1NzsKKzFENUVCOzFENUVCOzFENUVCOzAwNTg7MDA1ODsKKzFENUVDOzFENUVDOzFENUVDOzAwNTk7MDA1OTsKKzFENUVEOzFENUVEOzFENUVEOzAwNUE7MDA1QTsKKzFENUVFOzFENUVFOzFENUVFOzAwNjE7MDA2MTsKKzFENUVGOzFENUVGOzFENUVGOzAwNjI7MDA2MjsKKzFENUYwOzFENUYwOzFENUYwOzAwNjM7MDA2MzsKKzFENUYxOzFENUYxOzFENUYxOzAwNjQ7MDA2NDsKKzFENUYyOzFENUYyOzFENUYyOzAwNjU7MDA2NTsKKzFENUYzOzFENUYzOzFENUYzOzAwNjY7MDA2NjsKKzFENUY0OzFENUY0OzFENUY0OzAwNjc7MDA2NzsKKzFENUY1OzFENUY1OzFENUY1OzAwNjg7MDA2ODsKKzFENUY2OzFENUY2OzFENUY2OzAwNjk7MDA2OTsKKzFENUY3OzFENUY3OzFENUY3OzAwNkE7MDA2QTsKKzFENUY4OzFENUY4OzFENUY4OzAwNkI7MDA2QjsKKzFENUY5OzFENUY5OzFENUY5OzAwNkM7MDA2QzsKKzFENUZBOzFENUZBOzFENUZBOzAwNkQ7MDA2RDsKKzFENUZCOzFENUZCOzFENUZCOzAwNkU7MDA2RTsKKzFENUZDOzFENUZDOzFENUZDOzAwNkY7MDA2RjsKKzFENUZEOzFENUZEOzFENUZEOzAwNzA7MDA3MDsKKzFENUZFOzFENUZFOzFENUZFOzAwNzE7MDA3MTsKKzFENUZGOzFENUZGOzFENUZGOzAwNzI7MDA3MjsKKzFENjAwOzFENjAwOzFENjAwOzAwNzM7MDA3MzsKKzFENjAxOzFENjAxOzFENjAxOzAwNzQ7MDA3NDsKKzFENjAyOzFENjAyOzFENjAyOzAwNzU7MDA3NTsKKzFENjAzOzFENjAzOzFENjAzOzAwNzY7MDA3NjsKKzFENjA0OzFENjA0OzFENjA0OzAwNzc7MDA3NzsKKzFENjA1OzFENjA1OzFENjA1OzAwNzg7MDA3ODsKKzFENjA2OzFENjA2OzFENjA2OzAwNzk7MDA3OTsKKzFENjA3OzFENjA3OzFENjA3OzAwN0E7MDA3QTsKKzFENjA4OzFENjA4OzFENjA4OzAwNDE7MDA0MTsKKzFENjA5OzFENjA5OzFENjA5OzAwNDI7MDA0MjsKKzFENjBBOzFENjBBOzFENjBBOzAwNDM7MDA0MzsKKzFENjBCOzFENjBCOzFENjBCOzAwNDQ7MDA0NDsKKzFENjBDOzFENjBDOzFENjBDOzAwNDU7MDA0NTsKKzFENjBEOzFENjBEOzFENjBEOzAwNDY7MDA0NjsKKzFENjBFOzFENjBFOzFENjBFOzAwNDc7MDA0NzsKKzFENjBGOzFENjBGOzFENjBGOzAwNDg7MDA0ODsKKzFENjEwOzFENjEwOzFENjEwOzAwNDk7MDA0OTsKKzFENjExOzFENjExOzFENjExOzAwNEE7MDA0QTsKKzFENjEyOzFENjEyOzFENjEyOzAwNEI7MDA0QjsKKzFENjEzOzFENjEzOzFENjEzOzAwNEM7MDA0QzsKKzFENjE0OzFENjE0OzFENjE0OzAwNEQ7MDA0RDsKKzFENjE1OzFENjE1OzFENjE1OzAwNEU7MDA0RTsKKzFENjE2OzFENjE2OzFENjE2OzAwNEY7MDA0RjsKKzFENjE3OzFENjE3OzFENjE3OzAwNTA7MDA1MDsKKzFENjE4OzFENjE4OzFENjE4OzAwNTE7MDA1MTsKKzFENjE5OzFENjE5OzFENjE5OzAwNTI7MDA1MjsKKzFENjFBOzFENjFBOzFENjFBOzAwNTM7MDA1MzsKKzFENjFCOzFENjFCOzFENjFCOzAwNTQ7MDA1NDsKKzFENjFDOzFENjFDOzFENjFDOzAwNTU7MDA1NTsKKzFENjFEOzFENjFEOzFENjFEOzAwNTY7MDA1NjsKKzFENjFFOzFENjFFOzFENjFFOzAwNTc7MDA1NzsKKzFENjFGOzFENjFGOzFENjFGOzAwNTg7MDA1ODsKKzFENjIwOzFENjIwOzFENjIwOzAwNTk7MDA1OTsKKzFENjIxOzFENjIxOzFENjIxOzAwNUE7MDA1QTsKKzFENjIyOzFENjIyOzFENjIyOzAwNjE7MDA2MTsKKzFENjIzOzFENjIzOzFENjIzOzAwNjI7MDA2MjsKKzFENjI0OzFENjI0OzFENjI0OzAwNjM7MDA2MzsKKzFENjI1OzFENjI1OzFENjI1OzAwNjQ7MDA2NDsKKzFENjI2OzFENjI2OzFENjI2OzAwNjU7MDA2NTsKKzFENjI3OzFENjI3OzFENjI3OzAwNjY7MDA2NjsKKzFENjI4OzFENjI4OzFENjI4OzAwNjc7MDA2NzsKKzFENjI5OzFENjI5OzFENjI5OzAwNjg7MDA2ODsKKzFENjJBOzFENjJBOzFENjJBOzAwNjk7MDA2OTsKKzFENjJCOzFENjJCOzFENjJCOzAwNkE7MDA2QTsKKzFENjJDOzFENjJDOzFENjJDOzAwNkI7MDA2QjsKKzFENjJEOzFENjJEOzFENjJEOzAwNkM7MDA2QzsKKzFENjJFOzFENjJFOzFENjJFOzAwNkQ7MDA2RDsKKzFENjJGOzFENjJGOzFENjJGOzAwNkU7MDA2RTsKKzFENjMwOzFENjMwOzFENjMwOzAwNkY7MDA2RjsKKzFENjMxOzFENjMxOzFENjMxOzAwNzA7MDA3MDsKKzFENjMyOzFENjMyOzFENjMyOzAwNzE7MDA3MTsKKzFENjMzOzFENjMzOzFENjMzOzAwNzI7MDA3MjsKKzFENjM0OzFENjM0OzFENjM0OzAwNzM7MDA3MzsKKzFENjM1OzFENjM1OzFENjM1OzAwNzQ7MDA3NDsKKzFENjM2OzFENjM2OzFENjM2OzAwNzU7MDA3NTsKKzFENjM3OzFENjM3OzFENjM3OzAwNzY7MDA3NjsKKzFENjM4OzFENjM4OzFENjM4OzAwNzc7MDA3NzsKKzFENjM5OzFENjM5OzFENjM5OzAwNzg7MDA3ODsKKzFENjNBOzFENjNBOzFENjNBOzAwNzk7MDA3OTsKKzFENjNCOzFENjNCOzFENjNCOzAwN0E7MDA3QTsKKzFENjNDOzFENjNDOzFENjNDOzAwNDE7MDA0MTsKKzFENjNEOzFENjNEOzFENjNEOzAwNDI7MDA0MjsKKzFENjNFOzFENjNFOzFENjNFOzAwNDM7MDA0MzsKKzFENjNGOzFENjNGOzFENjNGOzAwNDQ7MDA0NDsKKzFENjQwOzFENjQwOzFENjQwOzAwNDU7MDA0NTsKKzFENjQxOzFENjQxOzFENjQxOzAwNDY7MDA0NjsKKzFENjQyOzFENjQyOzFENjQyOzAwNDc7MDA0NzsKKzFENjQzOzFENjQzOzFENjQzOzAwNDg7MDA0ODsKKzFENjQ0OzFENjQ0OzFENjQ0OzAwNDk7MDA0OTsKKzFENjQ1OzFENjQ1OzFENjQ1OzAwNEE7MDA0QTsKKzFENjQ2OzFENjQ2OzFENjQ2OzAwNEI7MDA0QjsKKzFENjQ3OzFENjQ3OzFENjQ3OzAwNEM7MDA0QzsKKzFENjQ4OzFENjQ4OzFENjQ4OzAwNEQ7MDA0RDsKKzFENjQ5OzFENjQ5OzFENjQ5OzAwNEU7MDA0RTsKKzFENjRBOzFENjRBOzFENjRBOzAwNEY7MDA0RjsKKzFENjRCOzFENjRCOzFENjRCOzAwNTA7MDA1MDsKKzFENjRDOzFENjRDOzFENjRDOzAwNTE7MDA1MTsKKzFENjREOzFENjREOzFENjREOzAwNTI7MDA1MjsKKzFENjRFOzFENjRFOzFENjRFOzAwNTM7MDA1MzsKKzFENjRGOzFENjRGOzFENjRGOzAwNTQ7MDA1NDsKKzFENjUwOzFENjUwOzFENjUwOzAwNTU7MDA1NTsKKzFENjUxOzFENjUxOzFENjUxOzAwNTY7MDA1NjsKKzFENjUyOzFENjUyOzFENjUyOzAwNTc7MDA1NzsKKzFENjUzOzFENjUzOzFENjUzOzAwNTg7MDA1ODsKKzFENjU0OzFENjU0OzFENjU0OzAwNTk7MDA1OTsKKzFENjU1OzFENjU1OzFENjU1OzAwNUE7MDA1QTsKKzFENjU2OzFENjU2OzFENjU2OzAwNjE7MDA2MTsKKzFENjU3OzFENjU3OzFENjU3OzAwNjI7MDA2MjsKKzFENjU4OzFENjU4OzFENjU4OzAwNjM7MDA2MzsKKzFENjU5OzFENjU5OzFENjU5OzAwNjQ7MDA2NDsKKzFENjVBOzFENjVBOzFENjVBOzAwNjU7MDA2NTsKKzFENjVCOzFENjVCOzFENjVCOzAwNjY7MDA2NjsKKzFENjVDOzFENjVDOzFENjVDOzAwNjc7MDA2NzsKKzFENjVEOzFENjVEOzFENjVEOzAwNjg7MDA2ODsKKzFENjVFOzFENjVFOzFENjVFOzAwNjk7MDA2OTsKKzFENjVGOzFENjVGOzFENjVGOzAwNkE7MDA2QTsKKzFENjYwOzFENjYwOzFENjYwOzAwNkI7MDA2QjsKKzFENjYxOzFENjYxOzFENjYxOzAwNkM7MDA2QzsKKzFENjYyOzFENjYyOzFENjYyOzAwNkQ7MDA2RDsKKzFENjYzOzFENjYzOzFENjYzOzAwNkU7MDA2RTsKKzFENjY0OzFENjY0OzFENjY0OzAwNkY7MDA2RjsKKzFENjY1OzFENjY1OzFENjY1OzAwNzA7MDA3MDsKKzFENjY2OzFENjY2OzFENjY2OzAwNzE7MDA3MTsKKzFENjY3OzFENjY3OzFENjY3OzAwNzI7MDA3MjsKKzFENjY4OzFENjY4OzFENjY4OzAwNzM7MDA3MzsKKzFENjY5OzFENjY5OzFENjY5OzAwNzQ7MDA3NDsKKzFENjZBOzFENjZBOzFENjZBOzAwNzU7MDA3NTsKKzFENjZCOzFENjZCOzFENjZCOzAwNzY7MDA3NjsKKzFENjZDOzFENjZDOzFENjZDOzAwNzc7MDA3NzsKKzFENjZEOzFENjZEOzFENjZEOzAwNzg7MDA3ODsKKzFENjZFOzFENjZFOzFENjZFOzAwNzk7MDA3OTsKKzFENjZGOzFENjZGOzFENjZGOzAwN0E7MDA3QTsKKzFENjcwOzFENjcwOzFENjcwOzAwNDE7MDA0MTsKKzFENjcxOzFENjcxOzFENjcxOzAwNDI7MDA0MjsKKzFENjcyOzFENjcyOzFENjcyOzAwNDM7MDA0MzsKKzFENjczOzFENjczOzFENjczOzAwNDQ7MDA0NDsKKzFENjc0OzFENjc0OzFENjc0OzAwNDU7MDA0NTsKKzFENjc1OzFENjc1OzFENjc1OzAwNDY7MDA0NjsKKzFENjc2OzFENjc2OzFENjc2OzAwNDc7MDA0NzsKKzFENjc3OzFENjc3OzFENjc3OzAwNDg7MDA0ODsKKzFENjc4OzFENjc4OzFENjc4OzAwNDk7MDA0OTsKKzFENjc5OzFENjc5OzFENjc5OzAwNEE7MDA0QTsKKzFENjdBOzFENjdBOzFENjdBOzAwNEI7MDA0QjsKKzFENjdCOzFENjdCOzFENjdCOzAwNEM7MDA0QzsKKzFENjdDOzFENjdDOzFENjdDOzAwNEQ7MDA0RDsKKzFENjdEOzFENjdEOzFENjdEOzAwNEU7MDA0RTsKKzFENjdFOzFENjdFOzFENjdFOzAwNEY7MDA0RjsKKzFENjdGOzFENjdGOzFENjdGOzAwNTA7MDA1MDsKKzFENjgwOzFENjgwOzFENjgwOzAwNTE7MDA1MTsKKzFENjgxOzFENjgxOzFENjgxOzAwNTI7MDA1MjsKKzFENjgyOzFENjgyOzFENjgyOzAwNTM7MDA1MzsKKzFENjgzOzFENjgzOzFENjgzOzAwNTQ7MDA1NDsKKzFENjg0OzFENjg0OzFENjg0OzAwNTU7MDA1NTsKKzFENjg1OzFENjg1OzFENjg1OzAwNTY7MDA1NjsKKzFENjg2OzFENjg2OzFENjg2OzAwNTc7MDA1NzsKKzFENjg3OzFENjg3OzFENjg3OzAwNTg7MDA1ODsKKzFENjg4OzFENjg4OzFENjg4OzAwNTk7MDA1OTsKKzFENjg5OzFENjg5OzFENjg5OzAwNUE7MDA1QTsKKzFENjhBOzFENjhBOzFENjhBOzAwNjE7MDA2MTsKKzFENjhCOzFENjhCOzFENjhCOzAwNjI7MDA2MjsKKzFENjhDOzFENjhDOzFENjhDOzAwNjM7MDA2MzsKKzFENjhEOzFENjhEOzFENjhEOzAwNjQ7MDA2NDsKKzFENjhFOzFENjhFOzFENjhFOzAwNjU7MDA2NTsKKzFENjhGOzFENjhGOzFENjhGOzAwNjY7MDA2NjsKKzFENjkwOzFENjkwOzFENjkwOzAwNjc7MDA2NzsKKzFENjkxOzFENjkxOzFENjkxOzAwNjg7MDA2ODsKKzFENjkyOzFENjkyOzFENjkyOzAwNjk7MDA2OTsKKzFENjkzOzFENjkzOzFENjkzOzAwNkE7MDA2QTsKKzFENjk0OzFENjk0OzFENjk0OzAwNkI7MDA2QjsKKzFENjk1OzFENjk1OzFENjk1OzAwNkM7MDA2QzsKKzFENjk2OzFENjk2OzFENjk2OzAwNkQ7MDA2RDsKKzFENjk3OzFENjk3OzFENjk3OzAwNkU7MDA2RTsKKzFENjk4OzFENjk4OzFENjk4OzAwNkY7MDA2RjsKKzFENjk5OzFENjk5OzFENjk5OzAwNzA7MDA3MDsKKzFENjlBOzFENjlBOzFENjlBOzAwNzE7MDA3MTsKKzFENjlCOzFENjlCOzFENjlCOzAwNzI7MDA3MjsKKzFENjlDOzFENjlDOzFENjlDOzAwNzM7MDA3MzsKKzFENjlEOzFENjlEOzFENjlEOzAwNzQ7MDA3NDsKKzFENjlFOzFENjlFOzFENjlFOzAwNzU7MDA3NTsKKzFENjlGOzFENjlGOzFENjlGOzAwNzY7MDA3NjsKKzFENkEwOzFENkEwOzFENkEwOzAwNzc7MDA3NzsKKzFENkExOzFENkExOzFENkExOzAwNzg7MDA3ODsKKzFENkEyOzFENkEyOzFENkEyOzAwNzk7MDA3OTsKKzFENkEzOzFENkEzOzFENkEzOzAwN0E7MDA3QTsKKzFENkE4OzFENkE4OzFENkE4OzAzOTE7MDM5MTsKKzFENkE5OzFENkE5OzFENkE5OzAzOTI7MDM5MjsKKzFENkFBOzFENkFBOzFENkFBOzAzOTM7MDM5MzsKKzFENkFCOzFENkFCOzFENkFCOzAzOTQ7MDM5NDsKKzFENkFDOzFENkFDOzFENkFDOzAzOTU7MDM5NTsKKzFENkFEOzFENkFEOzFENkFEOzAzOTY7MDM5NjsKKzFENkFFOzFENkFFOzFENkFFOzAzOTc7MDM5NzsKKzFENkFGOzFENkFGOzFENkFGOzAzOTg7MDM5ODsKKzFENkIwOzFENkIwOzFENkIwOzAzOTk7MDM5OTsKKzFENkIxOzFENkIxOzFENkIxOzAzOUE7MDM5QTsKKzFENkIyOzFENkIyOzFENkIyOzAzOUI7MDM5QjsKKzFENkIzOzFENkIzOzFENkIzOzAzOUM7MDM5QzsKKzFENkI0OzFENkI0OzFENkI0OzAzOUQ7MDM5RDsKKzFENkI1OzFENkI1OzFENkI1OzAzOUU7MDM5RTsKKzFENkI2OzFENkI2OzFENkI2OzAzOUY7MDM5RjsKKzFENkI3OzFENkI3OzFENkI3OzAzQTA7MDNBMDsKKzFENkI4OzFENkI4OzFENkI4OzAzQTE7MDNBMTsKKzFENkI5OzFENkI5OzFENkI5OzAzOTg7MDM5ODsKKzFENkJBOzFENkJBOzFENkJBOzAzQTM7MDNBMzsKKzFENkJCOzFENkJCOzFENkJCOzAzQTQ7MDNBNDsKKzFENkJDOzFENkJDOzFENkJDOzAzQTU7MDNBNTsKKzFENkJEOzFENkJEOzFENkJEOzAzQTY7MDNBNjsKKzFENkJFOzFENkJFOzFENkJFOzAzQTc7MDNBNzsKKzFENkJGOzFENkJGOzFENkJGOzAzQTg7MDNBODsKKzFENkMwOzFENkMwOzFENkMwOzAzQTk7MDNBOTsKKzFENkMxOzFENkMxOzFENkMxOzIyMDc7MjIwNzsKKzFENkMyOzFENkMyOzFENkMyOzAzQjE7MDNCMTsKKzFENkMzOzFENkMzOzFENkMzOzAzQjI7MDNCMjsKKzFENkM0OzFENkM0OzFENkM0OzAzQjM7MDNCMzsKKzFENkM1OzFENkM1OzFENkM1OzAzQjQ7MDNCNDsKKzFENkM2OzFENkM2OzFENkM2OzAzQjU7MDNCNTsKKzFENkM3OzFENkM3OzFENkM3OzAzQjY7MDNCNjsKKzFENkM4OzFENkM4OzFENkM4OzAzQjc7MDNCNzsKKzFENkM5OzFENkM5OzFENkM5OzAzQjg7MDNCODsKKzFENkNBOzFENkNBOzFENkNBOzAzQjk7MDNCOTsKKzFENkNCOzFENkNCOzFENkNCOzAzQkE7MDNCQTsKKzFENkNDOzFENkNDOzFENkNDOzAzQkI7MDNCQjsKKzFENkNEOzFENkNEOzFENkNEOzAzQkM7MDNCQzsKKzFENkNFOzFENkNFOzFENkNFOzAzQkQ7MDNCRDsKKzFENkNGOzFENkNGOzFENkNGOzAzQkU7MDNCRTsKKzFENkQwOzFENkQwOzFENkQwOzAzQkY7MDNCRjsKKzFENkQxOzFENkQxOzFENkQxOzAzQzA7MDNDMDsKKzFENkQyOzFENkQyOzFENkQyOzAzQzE7MDNDMTsKKzFENkQzOzFENkQzOzFENkQzOzAzQzI7MDNDMjsKKzFENkQ0OzFENkQ0OzFENkQ0OzAzQzM7MDNDMzsKKzFENkQ1OzFENkQ1OzFENkQ1OzAzQzQ7MDNDNDsKKzFENkQ2OzFENkQ2OzFENkQ2OzAzQzU7MDNDNTsKKzFENkQ3OzFENkQ3OzFENkQ3OzAzQzY7MDNDNjsKKzFENkQ4OzFENkQ4OzFENkQ4OzAzQzc7MDNDNzsKKzFENkQ5OzFENkQ5OzFENkQ5OzAzQzg7MDNDODsKKzFENkRBOzFENkRBOzFENkRBOzAzQzk7MDNDOTsKKzFENkRCOzFENkRCOzFENkRCOzIyMDI7MjIwMjsKKzFENkRDOzFENkRDOzFENkRDOzAzQjU7MDNCNTsKKzFENkREOzFENkREOzFENkREOzAzQjg7MDNCODsKKzFENkRFOzFENkRFOzFENkRFOzAzQkE7MDNCQTsKKzFENkRGOzFENkRGOzFENkRGOzAzQzY7MDNDNjsKKzFENkUwOzFENkUwOzFENkUwOzAzQzE7MDNDMTsKKzFENkUxOzFENkUxOzFENkUxOzAzQzA7MDNDMDsKKzFENkUyOzFENkUyOzFENkUyOzAzOTE7MDM5MTsKKzFENkUzOzFENkUzOzFENkUzOzAzOTI7MDM5MjsKKzFENkU0OzFENkU0OzFENkU0OzAzOTM7MDM5MzsKKzFENkU1OzFENkU1OzFENkU1OzAzOTQ7MDM5NDsKKzFENkU2OzFENkU2OzFENkU2OzAzOTU7MDM5NTsKKzFENkU3OzFENkU3OzFENkU3OzAzOTY7MDM5NjsKKzFENkU4OzFENkU4OzFENkU4OzAzOTc7MDM5NzsKKzFENkU5OzFENkU5OzFENkU5OzAzOTg7MDM5ODsKKzFENkVBOzFENkVBOzFENkVBOzAzOTk7MDM5OTsKKzFENkVCOzFENkVCOzFENkVCOzAzOUE7MDM5QTsKKzFENkVDOzFENkVDOzFENkVDOzAzOUI7MDM5QjsKKzFENkVEOzFENkVEOzFENkVEOzAzOUM7MDM5QzsKKzFENkVFOzFENkVFOzFENkVFOzAzOUQ7MDM5RDsKKzFENkVGOzFENkVGOzFENkVGOzAzOUU7MDM5RTsKKzFENkYwOzFENkYwOzFENkYwOzAzOUY7MDM5RjsKKzFENkYxOzFENkYxOzFENkYxOzAzQTA7MDNBMDsKKzFENkYyOzFENkYyOzFENkYyOzAzQTE7MDNBMTsKKzFENkYzOzFENkYzOzFENkYzOzAzOTg7MDM5ODsKKzFENkY0OzFENkY0OzFENkY0OzAzQTM7MDNBMzsKKzFENkY1OzFENkY1OzFENkY1OzAzQTQ7MDNBNDsKKzFENkY2OzFENkY2OzFENkY2OzAzQTU7MDNBNTsKKzFENkY3OzFENkY3OzFENkY3OzAzQTY7MDNBNjsKKzFENkY4OzFENkY4OzFENkY4OzAzQTc7MDNBNzsKKzFENkY5OzFENkY5OzFENkY5OzAzQTg7MDNBODsKKzFENkZBOzFENkZBOzFENkZBOzAzQTk7MDNBOTsKKzFENkZCOzFENkZCOzFENkZCOzIyMDc7MjIwNzsKKzFENkZDOzFENkZDOzFENkZDOzAzQjE7MDNCMTsKKzFENkZEOzFENkZEOzFENkZEOzAzQjI7MDNCMjsKKzFENkZFOzFENkZFOzFENkZFOzAzQjM7MDNCMzsKKzFENkZGOzFENkZGOzFENkZGOzAzQjQ7MDNCNDsKKzFENzAwOzFENzAwOzFENzAwOzAzQjU7MDNCNTsKKzFENzAxOzFENzAxOzFENzAxOzAzQjY7MDNCNjsKKzFENzAyOzFENzAyOzFENzAyOzAzQjc7MDNCNzsKKzFENzAzOzFENzAzOzFENzAzOzAzQjg7MDNCODsKKzFENzA0OzFENzA0OzFENzA0OzAzQjk7MDNCOTsKKzFENzA1OzFENzA1OzFENzA1OzAzQkE7MDNCQTsKKzFENzA2OzFENzA2OzFENzA2OzAzQkI7MDNCQjsKKzFENzA3OzFENzA3OzFENzA3OzAzQkM7MDNCQzsKKzFENzA4OzFENzA4OzFENzA4OzAzQkQ7MDNCRDsKKzFENzA5OzFENzA5OzFENzA5OzAzQkU7MDNCRTsKKzFENzBBOzFENzBBOzFENzBBOzAzQkY7MDNCRjsKKzFENzBCOzFENzBCOzFENzBCOzAzQzA7MDNDMDsKKzFENzBDOzFENzBDOzFENzBDOzAzQzE7MDNDMTsKKzFENzBEOzFENzBEOzFENzBEOzAzQzI7MDNDMjsKKzFENzBFOzFENzBFOzFENzBFOzAzQzM7MDNDMzsKKzFENzBGOzFENzBGOzFENzBGOzAzQzQ7MDNDNDsKKzFENzEwOzFENzEwOzFENzEwOzAzQzU7MDNDNTsKKzFENzExOzFENzExOzFENzExOzAzQzY7MDNDNjsKKzFENzEyOzFENzEyOzFENzEyOzAzQzc7MDNDNzsKKzFENzEzOzFENzEzOzFENzEzOzAzQzg7MDNDODsKKzFENzE0OzFENzE0OzFENzE0OzAzQzk7MDNDOTsKKzFENzE1OzFENzE1OzFENzE1OzIyMDI7MjIwMjsKKzFENzE2OzFENzE2OzFENzE2OzAzQjU7MDNCNTsKKzFENzE3OzFENzE3OzFENzE3OzAzQjg7MDNCODsKKzFENzE4OzFENzE4OzFENzE4OzAzQkE7MDNCQTsKKzFENzE5OzFENzE5OzFENzE5OzAzQzY7MDNDNjsKKzFENzFBOzFENzFBOzFENzFBOzAzQzE7MDNDMTsKKzFENzFCOzFENzFCOzFENzFCOzAzQzA7MDNDMDsKKzFENzFDOzFENzFDOzFENzFDOzAzOTE7MDM5MTsKKzFENzFEOzFENzFEOzFENzFEOzAzOTI7MDM5MjsKKzFENzFFOzFENzFFOzFENzFFOzAzOTM7MDM5MzsKKzFENzFGOzFENzFGOzFENzFGOzAzOTQ7MDM5NDsKKzFENzIwOzFENzIwOzFENzIwOzAzOTU7MDM5NTsKKzFENzIxOzFENzIxOzFENzIxOzAzOTY7MDM5NjsKKzFENzIyOzFENzIyOzFENzIyOzAzOTc7MDM5NzsKKzFENzIzOzFENzIzOzFENzIzOzAzOTg7MDM5ODsKKzFENzI0OzFENzI0OzFENzI0OzAzOTk7MDM5OTsKKzFENzI1OzFENzI1OzFENzI1OzAzOUE7MDM5QTsKKzFENzI2OzFENzI2OzFENzI2OzAzOUI7MDM5QjsKKzFENzI3OzFENzI3OzFENzI3OzAzOUM7MDM5QzsKKzFENzI4OzFENzI4OzFENzI4OzAzOUQ7MDM5RDsKKzFENzI5OzFENzI5OzFENzI5OzAzOUU7MDM5RTsKKzFENzJBOzFENzJBOzFENzJBOzAzOUY7MDM5RjsKKzFENzJCOzFENzJCOzFENzJCOzAzQTA7MDNBMDsKKzFENzJDOzFENzJDOzFENzJDOzAzQTE7MDNBMTsKKzFENzJEOzFENzJEOzFENzJEOzAzOTg7MDM5ODsKKzFENzJFOzFENzJFOzFENzJFOzAzQTM7MDNBMzsKKzFENzJGOzFENzJGOzFENzJGOzAzQTQ7MDNBNDsKKzFENzMwOzFENzMwOzFENzMwOzAzQTU7MDNBNTsKKzFENzMxOzFENzMxOzFENzMxOzAzQTY7MDNBNjsKKzFENzMyOzFENzMyOzFENzMyOzAzQTc7MDNBNzsKKzFENzMzOzFENzMzOzFENzMzOzAzQTg7MDNBODsKKzFENzM0OzFENzM0OzFENzM0OzAzQTk7MDNBOTsKKzFENzM1OzFENzM1OzFENzM1OzIyMDc7MjIwNzsKKzFENzM2OzFENzM2OzFENzM2OzAzQjE7MDNCMTsKKzFENzM3OzFENzM3OzFENzM3OzAzQjI7MDNCMjsKKzFENzM4OzFENzM4OzFENzM4OzAzQjM7MDNCMzsKKzFENzM5OzFENzM5OzFENzM5OzAzQjQ7MDNCNDsKKzFENzNBOzFENzNBOzFENzNBOzAzQjU7MDNCNTsKKzFENzNCOzFENzNCOzFENzNCOzAzQjY7MDNCNjsKKzFENzNDOzFENzNDOzFENzNDOzAzQjc7MDNCNzsKKzFENzNEOzFENzNEOzFENzNEOzAzQjg7MDNCODsKKzFENzNFOzFENzNFOzFENzNFOzAzQjk7MDNCOTsKKzFENzNGOzFENzNGOzFENzNGOzAzQkE7MDNCQTsKKzFENzQwOzFENzQwOzFENzQwOzAzQkI7MDNCQjsKKzFENzQxOzFENzQxOzFENzQxOzAzQkM7MDNCQzsKKzFENzQyOzFENzQyOzFENzQyOzAzQkQ7MDNCRDsKKzFENzQzOzFENzQzOzFENzQzOzAzQkU7MDNCRTsKKzFENzQ0OzFENzQ0OzFENzQ0OzAzQkY7MDNCRjsKKzFENzQ1OzFENzQ1OzFENzQ1OzAzQzA7MDNDMDsKKzFENzQ2OzFENzQ2OzFENzQ2OzAzQzE7MDNDMTsKKzFENzQ3OzFENzQ3OzFENzQ3OzAzQzI7MDNDMjsKKzFENzQ4OzFENzQ4OzFENzQ4OzAzQzM7MDNDMzsKKzFENzQ5OzFENzQ5OzFENzQ5OzAzQzQ7MDNDNDsKKzFENzRBOzFENzRBOzFENzRBOzAzQzU7MDNDNTsKKzFENzRCOzFENzRCOzFENzRCOzAzQzY7MDNDNjsKKzFENzRDOzFENzRDOzFENzRDOzAzQzc7MDNDNzsKKzFENzREOzFENzREOzFENzREOzAzQzg7MDNDODsKKzFENzRFOzFENzRFOzFENzRFOzAzQzk7MDNDOTsKKzFENzRGOzFENzRGOzFENzRGOzIyMDI7MjIwMjsKKzFENzUwOzFENzUwOzFENzUwOzAzQjU7MDNCNTsKKzFENzUxOzFENzUxOzFENzUxOzAzQjg7MDNCODsKKzFENzUyOzFENzUyOzFENzUyOzAzQkE7MDNCQTsKKzFENzUzOzFENzUzOzFENzUzOzAzQzY7MDNDNjsKKzFENzU0OzFENzU0OzFENzU0OzAzQzE7MDNDMTsKKzFENzU1OzFENzU1OzFENzU1OzAzQzA7MDNDMDsKKzFENzU2OzFENzU2OzFENzU2OzAzOTE7MDM5MTsKKzFENzU3OzFENzU3OzFENzU3OzAzOTI7MDM5MjsKKzFENzU4OzFENzU4OzFENzU4OzAzOTM7MDM5MzsKKzFENzU5OzFENzU5OzFENzU5OzAzOTQ7MDM5NDsKKzFENzVBOzFENzVBOzFENzVBOzAzOTU7MDM5NTsKKzFENzVCOzFENzVCOzFENzVCOzAzOTY7MDM5NjsKKzFENzVDOzFENzVDOzFENzVDOzAzOTc7MDM5NzsKKzFENzVEOzFENzVEOzFENzVEOzAzOTg7MDM5ODsKKzFENzVFOzFENzVFOzFENzVFOzAzOTk7MDM5OTsKKzFENzVGOzFENzVGOzFENzVGOzAzOUE7MDM5QTsKKzFENzYwOzFENzYwOzFENzYwOzAzOUI7MDM5QjsKKzFENzYxOzFENzYxOzFENzYxOzAzOUM7MDM5QzsKKzFENzYyOzFENzYyOzFENzYyOzAzOUQ7MDM5RDsKKzFENzYzOzFENzYzOzFENzYzOzAzOUU7MDM5RTsKKzFENzY0OzFENzY0OzFENzY0OzAzOUY7MDM5RjsKKzFENzY1OzFENzY1OzFENzY1OzAzQTA7MDNBMDsKKzFENzY2OzFENzY2OzFENzY2OzAzQTE7MDNBMTsKKzFENzY3OzFENzY3OzFENzY3OzAzOTg7MDM5ODsKKzFENzY4OzFENzY4OzFENzY4OzAzQTM7MDNBMzsKKzFENzY5OzFENzY5OzFENzY5OzAzQTQ7MDNBNDsKKzFENzZBOzFENzZBOzFENzZBOzAzQTU7MDNBNTsKKzFENzZCOzFENzZCOzFENzZCOzAzQTY7MDNBNjsKKzFENzZDOzFENzZDOzFENzZDOzAzQTc7MDNBNzsKKzFENzZEOzFENzZEOzFENzZEOzAzQTg7MDNBODsKKzFENzZFOzFENzZFOzFENzZFOzAzQTk7MDNBOTsKKzFENzZGOzFENzZGOzFENzZGOzIyMDc7MjIwNzsKKzFENzcwOzFENzcwOzFENzcwOzAzQjE7MDNCMTsKKzFENzcxOzFENzcxOzFENzcxOzAzQjI7MDNCMjsKKzFENzcyOzFENzcyOzFENzcyOzAzQjM7MDNCMzsKKzFENzczOzFENzczOzFENzczOzAzQjQ7MDNCNDsKKzFENzc0OzFENzc0OzFENzc0OzAzQjU7MDNCNTsKKzFENzc1OzFENzc1OzFENzc1OzAzQjY7MDNCNjsKKzFENzc2OzFENzc2OzFENzc2OzAzQjc7MDNCNzsKKzFENzc3OzFENzc3OzFENzc3OzAzQjg7MDNCODsKKzFENzc4OzFENzc4OzFENzc4OzAzQjk7MDNCOTsKKzFENzc5OzFENzc5OzFENzc5OzAzQkE7MDNCQTsKKzFENzdBOzFENzdBOzFENzdBOzAzQkI7MDNCQjsKKzFENzdCOzFENzdCOzFENzdCOzAzQkM7MDNCQzsKKzFENzdDOzFENzdDOzFENzdDOzAzQkQ7MDNCRDsKKzFENzdEOzFENzdEOzFENzdEOzAzQkU7MDNCRTsKKzFENzdFOzFENzdFOzFENzdFOzAzQkY7MDNCRjsKKzFENzdGOzFENzdGOzFENzdGOzAzQzA7MDNDMDsKKzFENzgwOzFENzgwOzFENzgwOzAzQzE7MDNDMTsKKzFENzgxOzFENzgxOzFENzgxOzAzQzI7MDNDMjsKKzFENzgyOzFENzgyOzFENzgyOzAzQzM7MDNDMzsKKzFENzgzOzFENzgzOzFENzgzOzAzQzQ7MDNDNDsKKzFENzg0OzFENzg0OzFENzg0OzAzQzU7MDNDNTsKKzFENzg1OzFENzg1OzFENzg1OzAzQzY7MDNDNjsKKzFENzg2OzFENzg2OzFENzg2OzAzQzc7MDNDNzsKKzFENzg3OzFENzg3OzFENzg3OzAzQzg7MDNDODsKKzFENzg4OzFENzg4OzFENzg4OzAzQzk7MDNDOTsKKzFENzg5OzFENzg5OzFENzg5OzIyMDI7MjIwMjsKKzFENzhBOzFENzhBOzFENzhBOzAzQjU7MDNCNTsKKzFENzhCOzFENzhCOzFENzhCOzAzQjg7MDNCODsKKzFENzhDOzFENzhDOzFENzhDOzAzQkE7MDNCQTsKKzFENzhEOzFENzhEOzFENzhEOzAzQzY7MDNDNjsKKzFENzhFOzFENzhFOzFENzhFOzAzQzE7MDNDMTsKKzFENzhGOzFENzhGOzFENzhGOzAzQzA7MDNDMDsKKzFENzkwOzFENzkwOzFENzkwOzAzOTE7MDM5MTsKKzFENzkxOzFENzkxOzFENzkxOzAzOTI7MDM5MjsKKzFENzkyOzFENzkyOzFENzkyOzAzOTM7MDM5MzsKKzFENzkzOzFENzkzOzFENzkzOzAzOTQ7MDM5NDsKKzFENzk0OzFENzk0OzFENzk0OzAzOTU7MDM5NTsKKzFENzk1OzFENzk1OzFENzk1OzAzOTY7MDM5NjsKKzFENzk2OzFENzk2OzFENzk2OzAzOTc7MDM5NzsKKzFENzk3OzFENzk3OzFENzk3OzAzOTg7MDM5ODsKKzFENzk4OzFENzk4OzFENzk4OzAzOTk7MDM5OTsKKzFENzk5OzFENzk5OzFENzk5OzAzOUE7MDM5QTsKKzFENzlBOzFENzlBOzFENzlBOzAzOUI7MDM5QjsKKzFENzlCOzFENzlCOzFENzlCOzAzOUM7MDM5QzsKKzFENzlDOzFENzlDOzFENzlDOzAzOUQ7MDM5RDsKKzFENzlEOzFENzlEOzFENzlEOzAzOUU7MDM5RTsKKzFENzlFOzFENzlFOzFENzlFOzAzOUY7MDM5RjsKKzFENzlGOzFENzlGOzFENzlGOzAzQTA7MDNBMDsKKzFEN0EwOzFEN0EwOzFEN0EwOzAzQTE7MDNBMTsKKzFEN0ExOzFEN0ExOzFEN0ExOzAzOTg7MDM5ODsKKzFEN0EyOzFEN0EyOzFEN0EyOzAzQTM7MDNBMzsKKzFEN0EzOzFEN0EzOzFEN0EzOzAzQTQ7MDNBNDsKKzFEN0E0OzFEN0E0OzFEN0E0OzAzQTU7MDNBNTsKKzFEN0E1OzFEN0E1OzFEN0E1OzAzQTY7MDNBNjsKKzFEN0E2OzFEN0E2OzFEN0E2OzAzQTc7MDNBNzsKKzFEN0E3OzFEN0E3OzFEN0E3OzAzQTg7MDNBODsKKzFEN0E4OzFEN0E4OzFEN0E4OzAzQTk7MDNBOTsKKzFEN0E5OzFEN0E5OzFEN0E5OzIyMDc7MjIwNzsKKzFEN0FBOzFEN0FBOzFEN0FBOzAzQjE7MDNCMTsKKzFEN0FCOzFEN0FCOzFEN0FCOzAzQjI7MDNCMjsKKzFEN0FDOzFEN0FDOzFEN0FDOzAzQjM7MDNCMzsKKzFEN0FEOzFEN0FEOzFEN0FEOzAzQjQ7MDNCNDsKKzFEN0FFOzFEN0FFOzFEN0FFOzAzQjU7MDNCNTsKKzFEN0FGOzFEN0FGOzFEN0FGOzAzQjY7MDNCNjsKKzFEN0IwOzFEN0IwOzFEN0IwOzAzQjc7MDNCNzsKKzFEN0IxOzFEN0IxOzFEN0IxOzAzQjg7MDNCODsKKzFEN0IyOzFEN0IyOzFEN0IyOzAzQjk7MDNCOTsKKzFEN0IzOzFEN0IzOzFEN0IzOzAzQkE7MDNCQTsKKzFEN0I0OzFEN0I0OzFEN0I0OzAzQkI7MDNCQjsKKzFEN0I1OzFEN0I1OzFEN0I1OzAzQkM7MDNCQzsKKzFEN0I2OzFEN0I2OzFEN0I2OzAzQkQ7MDNCRDsKKzFEN0I3OzFEN0I3OzFEN0I3OzAzQkU7MDNCRTsKKzFEN0I4OzFEN0I4OzFEN0I4OzAzQkY7MDNCRjsKKzFEN0I5OzFEN0I5OzFEN0I5OzAzQzA7MDNDMDsKKzFEN0JBOzFEN0JBOzFEN0JBOzAzQzE7MDNDMTsKKzFEN0JCOzFEN0JCOzFEN0JCOzAzQzI7MDNDMjsKKzFEN0JDOzFEN0JDOzFEN0JDOzAzQzM7MDNDMzsKKzFEN0JEOzFEN0JEOzFEN0JEOzAzQzQ7MDNDNDsKKzFEN0JFOzFEN0JFOzFEN0JFOzAzQzU7MDNDNTsKKzFEN0JGOzFEN0JGOzFEN0JGOzAzQzY7MDNDNjsKKzFEN0MwOzFEN0MwOzFEN0MwOzAzQzc7MDNDNzsKKzFEN0MxOzFEN0MxOzFEN0MxOzAzQzg7MDNDODsKKzFEN0MyOzFEN0MyOzFEN0MyOzAzQzk7MDNDOTsKKzFEN0MzOzFEN0MzOzFEN0MzOzIyMDI7MjIwMjsKKzFEN0M0OzFEN0M0OzFEN0M0OzAzQjU7MDNCNTsKKzFEN0M1OzFEN0M1OzFEN0M1OzAzQjg7MDNCODsKKzFEN0M2OzFEN0M2OzFEN0M2OzAzQkE7MDNCQTsKKzFEN0M3OzFEN0M3OzFEN0M3OzAzQzY7MDNDNjsKKzFEN0M4OzFEN0M4OzFEN0M4OzAzQzE7MDNDMTsKKzFEN0M5OzFEN0M5OzFEN0M5OzAzQzA7MDNDMDsKKzFEN0NFOzFEN0NFOzFEN0NFOzAwMzA7MDAzMDsKKzFEN0NGOzFEN0NGOzFEN0NGOzAwMzE7MDAzMTsKKzFEN0QwOzFEN0QwOzFEN0QwOzAwMzI7MDAzMjsKKzFEN0QxOzFEN0QxOzFEN0QxOzAwMzM7MDAzMzsKKzFEN0QyOzFEN0QyOzFEN0QyOzAwMzQ7MDAzNDsKKzFEN0QzOzFEN0QzOzFEN0QzOzAwMzU7MDAzNTsKKzFEN0Q0OzFEN0Q0OzFEN0Q0OzAwMzY7MDAzNjsKKzFEN0Q1OzFEN0Q1OzFEN0Q1OzAwMzc7MDAzNzsKKzFEN0Q2OzFEN0Q2OzFEN0Q2OzAwMzg7MDAzODsKKzFEN0Q3OzFEN0Q3OzFEN0Q3OzAwMzk7MDAzOTsKKzFEN0Q4OzFEN0Q4OzFEN0Q4OzAwMzA7MDAzMDsKKzFEN0Q5OzFEN0Q5OzFEN0Q5OzAwMzE7MDAzMTsKKzFEN0RBOzFEN0RBOzFEN0RBOzAwMzI7MDAzMjsKKzFEN0RCOzFEN0RCOzFEN0RCOzAwMzM7MDAzMzsKKzFEN0RDOzFEN0RDOzFEN0RDOzAwMzQ7MDAzNDsKKzFEN0REOzFEN0REOzFEN0REOzAwMzU7MDAzNTsKKzFEN0RFOzFEN0RFOzFEN0RFOzAwMzY7MDAzNjsKKzFEN0RGOzFEN0RGOzFEN0RGOzAwMzc7MDAzNzsKKzFEN0UwOzFEN0UwOzFEN0UwOzAwMzg7MDAzODsKKzFEN0UxOzFEN0UxOzFEN0UxOzAwMzk7MDAzOTsKKzFEN0UyOzFEN0UyOzFEN0UyOzAwMzA7MDAzMDsKKzFEN0UzOzFEN0UzOzFEN0UzOzAwMzE7MDAzMTsKKzFEN0U0OzFEN0U0OzFEN0U0OzAwMzI7MDAzMjsKKzFEN0U1OzFEN0U1OzFEN0U1OzAwMzM7MDAzMzsKKzFEN0U2OzFEN0U2OzFEN0U2OzAwMzQ7MDAzNDsKKzFEN0U3OzFEN0U3OzFEN0U3OzAwMzU7MDAzNTsKKzFEN0U4OzFEN0U4OzFEN0U4OzAwMzY7MDAzNjsKKzFEN0U5OzFEN0U5OzFEN0U5OzAwMzc7MDAzNzsKKzFEN0VBOzFEN0VBOzFEN0VBOzAwMzg7MDAzODsKKzFEN0VCOzFEN0VCOzFEN0VCOzAwMzk7MDAzOTsKKzFEN0VDOzFEN0VDOzFEN0VDOzAwMzA7MDAzMDsKKzFEN0VEOzFEN0VEOzFEN0VEOzAwMzE7MDAzMTsKKzFEN0VFOzFEN0VFOzFEN0VFOzAwMzI7MDAzMjsKKzFEN0VGOzFEN0VGOzFEN0VGOzAwMzM7MDAzMzsKKzFEN0YwOzFEN0YwOzFEN0YwOzAwMzQ7MDAzNDsKKzFEN0YxOzFEN0YxOzFEN0YxOzAwMzU7MDAzNTsKKzFEN0YyOzFEN0YyOzFEN0YyOzAwMzY7MDAzNjsKKzFEN0YzOzFEN0YzOzFEN0YzOzAwMzc7MDAzNzsKKzFEN0Y0OzFEN0Y0OzFEN0Y0OzAwMzg7MDAzODsKKzFEN0Y1OzFEN0Y1OzFEN0Y1OzAwMzk7MDAzOTsKKzFEN0Y2OzFEN0Y2OzFEN0Y2OzAwMzA7MDAzMDsKKzFEN0Y3OzFEN0Y3OzFEN0Y3OzAwMzE7MDAzMTsKKzFEN0Y4OzFEN0Y4OzFEN0Y4OzAwMzI7MDAzMjsKKzFEN0Y5OzFEN0Y5OzFEN0Y5OzAwMzM7MDAzMzsKKzFEN0ZBOzFEN0ZBOzFEN0ZBOzAwMzQ7MDAzNDsKKzFEN0ZCOzFEN0ZCOzFEN0ZCOzAwMzU7MDAzNTsKKzFEN0ZDOzFEN0ZDOzFEN0ZDOzAwMzY7MDAzNjsKKzFEN0ZEOzFEN0ZEOzFEN0ZEOzAwMzc7MDAzNzsKKzFEN0ZFOzFEN0ZFOzFEN0ZFOzAwMzg7MDAzODsKKzFEN0ZGOzFEN0ZGOzFEN0ZGOzAwMzk7MDAzOTsKKzJGODAwOzRFM0Q7NEUzRDs0RTNEOzRFM0Q7CisyRjgwMTs0RTM4OzRFMzg7NEUzODs0RTM4OworMkY4MDI7NEU0MTs0RTQxOzRFNDE7NEU0MTsKKzJGODAzOzIwMTIyOzIwMTIyOzIwMTIyOzIwMTIyOworMkY4MDQ7NEY2MDs0RjYwOzRGNjA7NEY2MDsKKzJGODA1OzRGQUU7NEZBRTs0RkFFOzRGQUU7CisyRjgwNjs0RkJCOzRGQkI7NEZCQjs0RkJCOworMkY4MDc7NTAwMjs1MDAyOzUwMDI7NTAwMjsKKzJGODA4OzUwN0E7NTA3QTs1MDdBOzUwN0E7CisyRjgwOTs1MDk5OzUwOTk7NTA5OTs1MDk5OworMkY4MEE7NTBFNzs1MEU3OzUwRTc7NTBFNzsKKzJGODBCOzUwQ0Y7NTBDRjs1MENGOzUwQ0Y7CisyRjgwQzszNDlFOzM0OUU7MzQ5RTszNDlFOworMkY4MEQ7MjA2M0E7MjA2M0E7MjA2M0E7MjA2M0E7CisyRjgwRTs1MTREOzUxNEQ7NTE0RDs1MTREOworMkY4MEY7NTE1NDs1MTU0OzUxNTQ7NTE1NDsKKzJGODEwOzUxNjQ7NTE2NDs1MTY0OzUxNjQ7CisyRjgxMTs1MTc3OzUxNzc7NTE3Nzs1MTc3OworMkY4MTI7MjA1MUM7MjA1MUM7MjA1MUM7MjA1MUM7CisyRjgxMzszNEI5OzM0Qjk7MzRCOTszNEI5OworMkY4MTQ7NTE2Nzs1MTY3OzUxNjc7NTE2NzsKKzJGODE1OzUxOEQ7NTE4RDs1MThEOzUxOEQ7CisyRjgxNjsyMDU0QjsyMDU0QjsyMDU0QjsyMDU0QjsKKzJGODE3OzUxOTc7NTE5Nzs1MTk3OzUxOTc7CisyRjgxODs1MUE0OzUxQTQ7NTFBNDs1MUE0OworMkY4MTk7NEVDQzs0RUNDOzRFQ0M7NEVDQzsKKzJGODFBOzUxQUM7NTFBQzs1MUFDOzUxQUM7CisyRjgxQjs1MUI1OzUxQjU7NTFCNTs1MUI1OworMkY4MUM7MjkxREY7MjkxREY7MjkxREY7MjkxREY7CisyRjgxRDs1MUY1OzUxRjU7NTFGNTs1MUY1OworMkY4MUU7NTIwMzs1MjAzOzUyMDM7NTIwMzsKKzJGODFGOzM0REY7MzRERjszNERGOzM0REY7CisyRjgyMDs1MjNCOzUyM0I7NTIzQjs1MjNCOworMkY4MjE7NTI0Njs1MjQ2OzUyNDY7NTI0NjsKKzJGODIyOzUyNzI7NTI3Mjs1MjcyOzUyNzI7CisyRjgyMzs1Mjc3OzUyNzc7NTI3Nzs1Mjc3OworMkY4MjQ7MzUxNTszNTE1OzM1MTU7MzUxNTsKKzJGODI1OzUyQzc7NTJDNzs1MkM3OzUyQzc7CisyRjgyNjs1MkM5OzUyQzk7NTJDOTs1MkM5OworMkY4Mjc7NTJFNDs1MkU0OzUyRTQ7NTJFNDsKKzJGODI4OzUyRkE7NTJGQTs1MkZBOzUyRkE7CisyRjgyOTs1MzA1OzUzMDU7NTMwNTs1MzA1OworMkY4MkE7NTMwNjs1MzA2OzUzMDY7NTMwNjsKKzJGODJCOzUzMTc7NTMxNzs1MzE3OzUzMTc7CisyRjgyQzs1MzQ5OzUzNDk7NTM0OTs1MzQ5OworMkY4MkQ7NTM1MTs1MzUxOzUzNTE7NTM1MTsKKzJGODJFOzUzNUE7NTM1QTs1MzVBOzUzNUE7CisyRjgyRjs1MzczOzUzNzM7NTM3Mzs1MzczOworMkY4MzA7NTM3RDs1MzdEOzUzN0Q7NTM3RDsKKzJGODMxOzUzN0Y7NTM3Rjs1MzdGOzUzN0Y7CisyRjgzMjs1MzdGOzUzN0Y7NTM3Rjs1MzdGOworMkY4MzM7NTM3Rjs1MzdGOzUzN0Y7NTM3RjsKKzJGODM0OzIwQTJDOzIwQTJDOzIwQTJDOzIwQTJDOworMkY4MzU7NzA3MDs3MDcwOzcwNzA7NzA3MDsKKzJGODM2OzUzQ0E7NTNDQTs1M0NBOzUzQ0E7CisyRjgzNzs1M0RGOzUzREY7NTNERjs1M0RGOworMkY4Mzg7MjBCNjM7MjBCNjM7MjBCNjM7MjBCNjM7CisyRjgzOTs1M0VCOzUzRUI7NTNFQjs1M0VCOworMkY4M0E7NTNGMTs1M0YxOzUzRjE7NTNGMTsKKzJGODNCOzU0MDY7NTQwNjs1NDA2OzU0MDY7CisyRjgzQzs1NDlFOzU0OUU7NTQ5RTs1NDlFOworMkY4M0Q7NTQzODs1NDM4OzU0Mzg7NTQzODsKKzJGODNFOzU0NDg7NTQ0ODs1NDQ4OzU0NDg7CisyRjgzRjs1NDY4OzU0Njg7NTQ2ODs1NDY4OworMkY4NDA7NTRBMjs1NEEyOzU0QTI7NTRBMjsKKzJGODQxOzU0RjY7NTRGNjs1NEY2OzU0RjY7CisyRjg0Mjs1NTEwOzU1MTA7NTUxMDs1NTEwOworMkY4NDM7NTU1Mzs1NTUzOzU1NTM7NTU1MzsKKzJGODQ0OzU1NjM7NTU2Mzs1NTYzOzU1NjM7CisyRjg0NTs1NTg0OzU1ODQ7NTU4NDs1NTg0OworMkY4NDY7NTU4NDs1NTg0OzU1ODQ7NTU4NDsKKzJGODQ3OzU1OTk7NTU5OTs1NTk5OzU1OTk7CisyRjg0ODs1NUFCOzU1QUI7NTVBQjs1NUFCOworMkY4NDk7NTVCMzs1NUIzOzU1QjM7NTVCMzsKKzJGODRBOzU1QzI7NTVDMjs1NUMyOzU1QzI7CisyRjg0Qjs1NzE2OzU3MTY7NTcxNjs1NzE2OworMkY4NEM7NTYwNjs1NjA2OzU2MDY7NTYwNjsKKzJGODREOzU3MTc7NTcxNzs1NzE3OzU3MTc7CisyRjg0RTs1NjUxOzU2NTE7NTY1MTs1NjUxOworMkY4NEY7NTY3NDs1Njc0OzU2NzQ7NTY3NDsKKzJGODUwOzUyMDc7NTIwNzs1MjA3OzUyMDc7CisyRjg1MTs1OEVFOzU4RUU7NThFRTs1OEVFOworMkY4NTI7NTdDRTs1N0NFOzU3Q0U7NTdDRTsKKzJGODUzOzU3RjQ7NTdGNDs1N0Y0OzU3RjQ7CisyRjg1NDs1ODBEOzU4MEQ7NTgwRDs1ODBEOworMkY4NTU7NTc4Qjs1NzhCOzU3OEI7NTc4QjsKKzJGODU2OzU4MzI7NTgzMjs1ODMyOzU4MzI7CisyRjg1Nzs1ODMxOzU4MzE7NTgzMTs1ODMxOworMkY4NTg7NThBQzs1OEFDOzU4QUM7NThBQzsKKzJGODU5OzIxNEU0OzIxNEU0OzIxNEU0OzIxNEU0OworMkY4NUE7NThGMjs1OEYyOzU4RjI7NThGMjsKKzJGODVCOzU4Rjc7NThGNzs1OEY3OzU4Rjc7CisyRjg1Qzs1OTA2OzU5MDY7NTkwNjs1OTA2OworMkY4NUQ7NTkxQTs1OTFBOzU5MUE7NTkxQTsKKzJGODVFOzU5MjI7NTkyMjs1OTIyOzU5MjI7CisyRjg1Rjs1OTYyOzU5NjI7NTk2Mjs1OTYyOworMkY4NjA7MjE2QTg7MjE2QTg7MjE2QTg7MjE2QTg7CisyRjg2MTsyMTZFQTsyMTZFQTsyMTZFQTsyMTZFQTsKKzJGODYyOzU5RUM7NTlFQzs1OUVDOzU5RUM7CisyRjg2Mzs1QTFCOzVBMUI7NUExQjs1QTFCOworMkY4NjQ7NUEyNzs1QTI3OzVBMjc7NUEyNzsKKzJGODY1OzU5RDg7NTlEODs1OUQ4OzU5RDg7CisyRjg2Njs1QTY2OzVBNjY7NUE2Njs1QTY2OworMkY4Njc7MzZFRTszNkVFOzM2RUU7MzZFRTsKKyMgTm9ybWFsaXphdGlvbkNvcnJlY3Rpb25zLTQuMC4wLnR4dCAtLSAyRjg2ODsyMTM2QTsyMTM2QTsyMTM2QTsyMTM2QTsKKzJGODY5OzVCMDg7NUIwODs1QjA4OzVCMDg7CisyRjg2QTs1QjNFOzVCM0U7NUIzRTs1QjNFOworMkY4NkI7NUIzRTs1QjNFOzVCM0U7NUIzRTsKKzJGODZDOzIxOUM4OzIxOUM4OzIxOUM4OzIxOUM4OworMkY4NkQ7NUJDMzs1QkMzOzVCQzM7NUJDMzsKKzJGODZFOzVCRDg7NUJEODs1QkQ4OzVCRDg7CisyRjg2Rjs1QkU3OzVCRTc7NUJFNzs1QkU3OworMkY4NzA7NUJGMzs1QkYzOzVCRjM7NUJGMzsKKzJGODcxOzIxQjE4OzIxQjE4OzIxQjE4OzIxQjE4OworMkY4NzI7NUJGRjs1QkZGOzVCRkY7NUJGRjsKKzJGODczOzVDMDY7NUMwNjs1QzA2OzVDMDY7CisjIE5vcm1hbGl6YXRpb25Db3JyZWN0aW9ucy00LjAuMC50eHQgLS0gMkY4NzQ7NUYzMzs1RjMzOzVGMzM7NUYzMzsKKzJGODc1OzVDMjI7NUMyMjs1QzIyOzVDMjI7CisyRjg3NjszNzgxOzM3ODE7Mzc4MTszNzgxOworMkY4Nzc7NUM2MDs1QzYwOzVDNjA7NUM2MDsKKzJGODc4OzVDNkU7NUM2RTs1QzZFOzVDNkU7CisyRjg3OTs1Q0MwOzVDQzA7NUNDMDs1Q0MwOworMkY4N0E7NUM4RDs1QzhEOzVDOEQ7NUM4RDsKKzJGODdCOzIxREU0OzIxREU0OzIxREU0OzIxREU0OworMkY4N0M7NUQ0Mzs1RDQzOzVENDM7NUQ0MzsKKzJGODdEOzIxREU2OzIxREU2OzIxREU2OzIxREU2OworMkY4N0U7NUQ2RTs1RDZFOzVENkU7NUQ2RTsKKzJGODdGOzVENkI7NUQ2Qjs1RDZCOzVENkI7CisyRjg4MDs1RDdDOzVEN0M7NUQ3Qzs1RDdDOworMkY4ODE7NURFMTs1REUxOzVERTE7NURFMTsKKzJGODgyOzVERTI7NURFMjs1REUyOzVERTI7CisyRjg4MzszODJGOzM4MkY7MzgyRjszODJGOworMkY4ODQ7NURGRDs1REZEOzVERkQ7NURGRDsKKzJGODg1OzVFMjg7NUUyODs1RTI4OzVFMjg7CisyRjg4Njs1RTNEOzVFM0Q7NUUzRDs1RTNEOworMkY4ODc7NUU2OTs1RTY5OzVFNjk7NUU2OTsKKzJGODg4OzM4NjI7Mzg2MjszODYyOzM4NjI7CisyRjg4OTsyMjE4MzsyMjE4MzsyMjE4MzsyMjE4MzsKKzJGODhBOzM4N0M7Mzg3QzszODdDOzM4N0M7CisyRjg4Qjs1RUIwOzVFQjA7NUVCMDs1RUIwOworMkY4OEM7NUVCMzs1RUIzOzVFQjM7NUVCMzsKKzJGODhEOzVFQjY7NUVCNjs1RUI2OzVFQjY7CisyRjg4RTs1RUNBOzVFQ0E7NUVDQTs1RUNBOworMkY4OEY7MkEzOTI7MkEzOTI7MkEzOTI7MkEzOTI7CisyRjg5MDs1RUZFOzVFRkU7NUVGRTs1RUZFOworMkY4OTE7MjIzMzE7MjIzMzE7MjIzMzE7MjIzMzE7CisyRjg5MjsyMjMzMTsyMjMzMTsyMjMzMTsyMjMzMTsKKzJGODkzOzgyMDE7ODIwMTs4MjAxOzgyMDE7CisyRjg5NDs1RjIyOzVGMjI7NUYyMjs1RjIyOworMkY4OTU7NUYyMjs1RjIyOzVGMjI7NUYyMjsKKzJGODk2OzM4Qzc7MzhDNzszOEM3OzM4Qzc7CisyRjg5NzsyMzJCODsyMzJCODsyMzJCODsyMzJCODsKKzJGODk4OzI2MURBOzI2MURBOzI2MURBOzI2MURBOworMkY4OTk7NUY2Mjs1RjYyOzVGNjI7NUY2MjsKKzJGODlBOzVGNkI7NUY2Qjs1RjZCOzVGNkI7CisyRjg5QjszOEUzOzM4RTM7MzhFMzszOEUzOworMkY4OUM7NUY5QTs1RjlBOzVGOUE7NUY5QTsKKzJGODlEOzVGQ0Q7NUZDRDs1RkNEOzVGQ0Q7CisyRjg5RTs1RkQ3OzVGRDc7NUZENzs1RkQ3OworMkY4OUY7NUZGOTs1RkY5OzVGRjk7NUZGOTsKKzJGOEEwOzYwODE7NjA4MTs2MDgxOzYwODE7CisyRjhBMTszOTNBOzM5M0E7MzkzQTszOTNBOworMkY4QTI7MzkxQzszOTFDOzM5MUM7MzkxQzsKKzJGOEEzOzYwOTQ7NjA5NDs2MDk0OzYwOTQ7CisyRjhBNDsyMjZENDsyMjZENDsyMjZENDsyMjZENDsKKzJGOEE1OzYwQzc7NjBDNzs2MEM3OzYwQzc7CisyRjhBNjs2MTQ4OzYxNDg7NjE0ODs2MTQ4OworMkY4QTc7NjE0Qzs2MTRDOzYxNEM7NjE0QzsKKzJGOEE4OzYxNEU7NjE0RTs2MTRFOzYxNEU7CisyRjhBOTs2MTRDOzYxNEM7NjE0Qzs2MTRDOworMkY4QUE7NjE3QTs2MTdBOzYxN0E7NjE3QTsKKzJGOEFCOzYxOEU7NjE4RTs2MThFOzYxOEU7CisyRjhBQzs2MUIyOzYxQjI7NjFCMjs2MUIyOworMkY4QUQ7NjFBNDs2MUE0OzYxQTQ7NjFBNDsKKzJGOEFFOzYxQUY7NjFBRjs2MUFGOzYxQUY7CisyRjhBRjs2MURFOzYxREU7NjFERTs2MURFOworMkY4QjA7NjFGMjs2MUYyOzYxRjI7NjFGMjsKKzJGOEIxOzYxRjY7NjFGNjs2MUY2OzYxRjY7CisyRjhCMjs2MjEwOzYyMTA7NjIxMDs2MjEwOworMkY4QjM7NjIxQjs2MjFCOzYyMUI7NjIxQjsKKzJGOEI0OzYyNUQ7NjI1RDs2MjVEOzYyNUQ7CisyRjhCNTs2MkIxOzYyQjE7NjJCMTs2MkIxOworMkY4QjY7NjJENDs2MkQ0OzYyRDQ7NjJENDsKKzJGOEI3OzYzNTA7NjM1MDs2MzUwOzYzNTA7CisyRjhCODsyMkIwQzsyMkIwQzsyMkIwQzsyMkIwQzsKKzJGOEI5OzYzM0Q7NjMzRDs2MzNEOzYzM0Q7CisyRjhCQTs2MkZDOzYyRkM7NjJGQzs2MkZDOworMkY4QkI7NjM2ODs2MzY4OzYzNjg7NjM2ODsKKzJGOEJDOzYzODM7NjM4Mzs2MzgzOzYzODM7CisyRjhCRDs2M0U0OzYzRTQ7NjNFNDs2M0U0OworMkY4QkU7MjJCRjE7MjJCRjE7MjJCRjE7MjJCRjE7CisyRjhCRjs2NDIyOzY0MjI7NjQyMjs2NDIyOworMkY4QzA7NjNDNTs2M0M1OzYzQzU7NjNDNTsKKzJGOEMxOzYzQTk7NjNBOTs2M0E5OzYzQTk7CisyRjhDMjszQTJFOzNBMkU7M0EyRTszQTJFOworMkY4QzM7NjQ2OTs2NDY5OzY0Njk7NjQ2OTsKKzJGOEM0OzY0N0U7NjQ3RTs2NDdFOzY0N0U7CisyRjhDNTs2NDlEOzY0OUQ7NjQ5RDs2NDlEOworMkY4QzY7NjQ3Nzs2NDc3OzY0Nzc7NjQ3NzsKKzJGOEM3OzNBNkM7M0E2QzszQTZDOzNBNkM7CisyRjhDODs2NTRGOzY1NEY7NjU0Rjs2NTRGOworMkY4Qzk7NjU2Qzs2NTZDOzY1NkM7NjU2QzsKKzJGOENBOzIzMDBBOzIzMDBBOzIzMDBBOzIzMDBBOworMkY4Q0I7NjVFMzs2NUUzOzY1RTM7NjVFMzsKKzJGOENDOzY2Rjg7NjZGODs2NkY4OzY2Rjg7CisyRjhDRDs2NjQ5OzY2NDk7NjY0OTs2NjQ5OworMkY4Q0U7M0IxOTszQjE5OzNCMTk7M0IxOTsKKzJGOENGOzY2OTE7NjY5MTs2NjkxOzY2OTE7CisyRjhEMDszQjA4OzNCMDg7M0IwODszQjA4OworMkY4RDE7M0FFNDszQUU0OzNBRTQ7M0FFNDsKKzJGOEQyOzUxOTI7NTE5Mjs1MTkyOzUxOTI7CisyRjhEMzs1MTk1OzUxOTU7NTE5NTs1MTk1OworMkY4RDQ7NjcwMDs2NzAwOzY3MDA7NjcwMDsKKzJGOEQ1OzY2OUM7NjY5Qzs2NjlDOzY2OUM7CisyRjhENjs4MEFEOzgwQUQ7ODBBRDs4MEFEOworMkY4RDc7NDNEOTs0M0Q5OzQzRDk7NDNEOTsKKzJGOEQ4OzY3MTc7NjcxNzs2NzE3OzY3MTc7CisyRjhEOTs2NzFCOzY3MUI7NjcxQjs2NzFCOworMkY4REE7NjcyMTs2NzIxOzY3MjE7NjcyMTsKKzJGOERCOzY3NUU7Njc1RTs2NzVFOzY3NUU7CisyRjhEQzs2NzUzOzY3NTM7Njc1Mzs2NzUzOworMkY4REQ7MjMzQzM7MjMzQzM7MjMzQzM7MjMzQzM7CisyRjhERTszQjQ5OzNCNDk7M0I0OTszQjQ5OworMkY4REY7NjdGQTs2N0ZBOzY3RkE7NjdGQTsKKzJGOEUwOzY3ODU7Njc4NTs2Nzg1OzY3ODU7CisyRjhFMTs2ODUyOzY4NTI7Njg1Mjs2ODUyOworMkY4RTI7Njg4NTs2ODg1OzY4ODU7Njg4NTsKKzJGOEUzOzIzNDZEOzIzNDZEOzIzNDZEOzIzNDZEOworMkY4RTQ7Njg4RTs2ODhFOzY4OEU7Njg4RTsKKzJGOEU1OzY4MUY7NjgxRjs2ODFGOzY4MUY7CisyRjhFNjs2OTE0OzY5MTQ7NjkxNDs2OTE0OworMkY4RTc7M0I5RDszQjlEOzNCOUQ7M0I5RDsKKzJGOEU4OzY5NDI7Njk0Mjs2OTQyOzY5NDI7CisyRjhFOTs2OUEzOzY5QTM7NjlBMzs2OUEzOworMkY4RUE7NjlFQTs2OUVBOzY5RUE7NjlFQTsKKzJGOEVCOzZBQTg7NkFBODs2QUE4OzZBQTg7CisyRjhFQzsyMzZBMzsyMzZBMzsyMzZBMzsyMzZBMzsKKzJGOEVEOzZBREI7NkFEQjs2QURCOzZBREI7CisyRjhFRTszQzE4OzNDMTg7M0MxODszQzE4OworMkY4RUY7NkIyMTs2QjIxOzZCMjE7NkIyMTsKKzJGOEYwOzIzOEE3OzIzOEE3OzIzOEE3OzIzOEE3OworMkY4RjE7NkI1NDs2QjU0OzZCNTQ7NkI1NDsKKzJGOEYyOzNDNEU7M0M0RTszQzRFOzNDNEU7CisyRjhGMzs2QjcyOzZCNzI7NkI3Mjs2QjcyOworMkY4RjQ7NkI5Rjs2QjlGOzZCOUY7NkI5RjsKKzJGOEY1OzZCQkE7NkJCQTs2QkJBOzZCQkE7CisyRjhGNjs2QkJCOzZCQkI7NkJCQjs2QkJCOworMkY4Rjc7MjNBOEQ7MjNBOEQ7MjNBOEQ7MjNBOEQ7CisyRjhGODsyMUQwQjsyMUQwQjsyMUQwQjsyMUQwQjsKKzJGOEY5OzIzQUZBOzIzQUZBOzIzQUZBOzIzQUZBOworMkY4RkE7NkM0RTs2QzRFOzZDNEU7NkM0RTsKKzJGOEZCOzIzQ0JDOzIzQ0JDOzIzQ0JDOzIzQ0JDOworMkY4RkM7NkNCRjs2Q0JGOzZDQkY7NkNCRjsKKzJGOEZEOzZDQ0Q7NkNDRDs2Q0NEOzZDQ0Q7CisyRjhGRTs2QzY3OzZDNjc7NkM2Nzs2QzY3OworMkY4RkY7NkQxNjs2RDE2OzZEMTY7NkQxNjsKKzJGOTAwOzZEM0U7NkQzRTs2RDNFOzZEM0U7CisyRjkwMTs2RDc3OzZENzc7NkQ3Nzs2RDc3OworMkY5MDI7NkQ0MTs2RDQxOzZENDE7NkQ0MTsKKzJGOTAzOzZENjk7NkQ2OTs2RDY5OzZENjk7CisyRjkwNDs2RDc4OzZENzg7NkQ3ODs2RDc4OworMkY5MDU7NkQ4NTs2RDg1OzZEODU7NkQ4NTsKKzJGOTA2OzIzRDFFOzIzRDFFOzIzRDFFOzIzRDFFOworMkY5MDc7NkQzNDs2RDM0OzZEMzQ7NkQzNDsKKzJGOTA4OzZFMkY7NkUyRjs2RTJGOzZFMkY7CisyRjkwOTs2RTZFOzZFNkU7NkU2RTs2RTZFOworMkY5MEE7M0QzMzszRDMzOzNEMzM7M0QzMzsKKzJGOTBCOzZFQ0I7NkVDQjs2RUNCOzZFQ0I7CisyRjkwQzs2RUM3OzZFQzc7NkVDNzs2RUM3OworMkY5MEQ7MjNFRDE7MjNFRDE7MjNFRDE7MjNFRDE7CisyRjkwRTs2REY5OzZERjk7NkRGOTs2REY5OworMkY5MEY7NkY2RTs2RjZFOzZGNkU7NkY2RTsKKzJGOTEwOzIzRjVFOzIzRjVFOzIzRjVFOzIzRjVFOworMkY5MTE7MjNGOEU7MjNGOEU7MjNGOEU7MjNGOEU7CisyRjkxMjs2RkM2OzZGQzY7NkZDNjs2RkM2OworMkY5MTM7NzAzOTs3MDM5OzcwMzk7NzAzOTsKKzJGOTE0OzcwMUU7NzAxRTs3MDFFOzcwMUU7CisyRjkxNTs3MDFCOzcwMUI7NzAxQjs3MDFCOworMkY5MTY7M0Q5NjszRDk2OzNEOTY7M0Q5NjsKKzJGOTE3OzcwNEE7NzA0QTs3MDRBOzcwNEE7CisyRjkxODs3MDdEOzcwN0Q7NzA3RDs3MDdEOworMkY5MTk7NzA3Nzs3MDc3OzcwNzc7NzA3NzsKKzJGOTFBOzcwQUQ7NzBBRDs3MEFEOzcwQUQ7CisyRjkxQjsyMDUyNTsyMDUyNTsyMDUyNTsyMDUyNTsKKzJGOTFDOzcxNDU7NzE0NTs3MTQ1OzcxNDU7CisyRjkxRDsyNDI2MzsyNDI2MzsyNDI2MzsyNDI2MzsKKzJGOTFFOzcxOUM7NzE5Qzs3MTlDOzcxOUM7CisjIE5vcm1hbGl6YXRpb25Db3JyZWN0aW9ucy00LjAuMC50eHQgLS0gMkY5MUY7NDNBQjs0M0FCOzQzQUI7NDNBQjsKKzJGOTIwOzcyMjg7NzIyODs3MjI4OzcyMjg7CisyRjkyMTs3MjM1OzcyMzU7NzIzNTs3MjM1OworMkY5MjI7NzI1MDs3MjUwOzcyNTA7NzI1MDsKKzJGOTIzOzI0NjA4OzI0NjA4OzI0NjA4OzI0NjA4OworMkY5MjQ7NzI4MDs3MjgwOzcyODA7NzI4MDsKKzJGOTI1OzcyOTU7NzI5NTs3Mjk1OzcyOTU7CisyRjkyNjsyNDczNTsyNDczNTsyNDczNTsyNDczNTsKKzJGOTI3OzI0ODE0OzI0ODE0OzI0ODE0OzI0ODE0OworMkY5Mjg7NzM3QTs3MzdBOzczN0E7NzM3QTsKKzJGOTI5OzczOEI7NzM4Qjs3MzhCOzczOEI7CisyRjkyQTszRUFDOzNFQUM7M0VBQzszRUFDOworMkY5MkI7NzNBNTs3M0E1OzczQTU7NzNBNTsKKzJGOTJDOzNFQjg7M0VCODszRUI4OzNFQjg7CisyRjkyRDszRUI4OzNFQjg7M0VCODszRUI4OworMkY5MkU7NzQ0Nzs3NDQ3Ozc0NDc7NzQ0NzsKKzJGOTJGOzc0NUM7NzQ1Qzs3NDVDOzc0NUM7CisyRjkzMDs3NDcxOzc0NzE7NzQ3MTs3NDcxOworMkY5MzE7NzQ4NTs3NDg1Ozc0ODU7NzQ4NTsKKzJGOTMyOzc0Q0E7NzRDQTs3NENBOzc0Q0E7CisyRjkzMzszRjFCOzNGMUI7M0YxQjszRjFCOworMkY5MzQ7NzUyNDs3NTI0Ozc1MjQ7NzUyNDsKKzJGOTM1OzI0QzM2OzI0QzM2OzI0QzM2OzI0QzM2OworMkY5MzY7NzUzRTs3NTNFOzc1M0U7NzUzRTsKKzJGOTM3OzI0QzkyOzI0QzkyOzI0QzkyOzI0QzkyOworMkY5Mzg7NzU3MDs3NTcwOzc1NzA7NzU3MDsKKzJGOTM5OzIyMTlGOzIyMTlGOzIyMTlGOzIyMTlGOworMkY5M0E7NzYxMDs3NjEwOzc2MTA7NzYxMDsKKzJGOTNCOzI0RkExOzI0RkExOzI0RkExOzI0RkExOworMkY5M0M7MjRGQjg7MjRGQjg7MjRGQjg7MjRGQjg7CisyRjkzRDsyNTA0NDsyNTA0NDsyNTA0NDsyNTA0NDsKKzJGOTNFOzNGRkM7M0ZGQzszRkZDOzNGRkM7CisyRjkzRjs0MDA4OzQwMDg7NDAwODs0MDA4OworMkY5NDA7NzZGNDs3NkY0Ozc2RjQ7NzZGNDsKKzJGOTQxOzI1MEYzOzI1MEYzOzI1MEYzOzI1MEYzOworMkY5NDI7MjUwRjI7MjUwRjI7MjUwRjI7MjUwRjI7CisyRjk0MzsyNTExOTsyNTExOTsyNTExOTsyNTExOTsKKzJGOTQ0OzI1MTMzOzI1MTMzOzI1MTMzOzI1MTMzOworMkY5NDU7NzcxRTs3NzFFOzc3MUU7NzcxRTsKKzJGOTQ2Ozc3MUY7NzcxRjs3NzFGOzc3MUY7CisyRjk0Nzs3NzFGOzc3MUY7NzcxRjs3NzFGOworMkY5NDg7Nzc0QTs3NzRBOzc3NEE7Nzc0QTsKKzJGOTQ5OzQwMzk7NDAzOTs0MDM5OzQwMzk7CisyRjk0QTs3NzhCOzc3OEI7Nzc4Qjs3NzhCOworMkY5NEI7NDA0Njs0MDQ2OzQwNDY7NDA0NjsKKzJGOTRDOzQwOTY7NDA5Njs0MDk2OzQwOTY7CisyRjk0RDsyNTQxRDsyNTQxRDsyNTQxRDsyNTQxRDsKKzJGOTRFOzc4NEU7Nzg0RTs3ODRFOzc4NEU7CisyRjk0Rjs3ODhDOzc4OEM7Nzg4Qzs3ODhDOworMkY5NTA7NzhDQzs3OENDOzc4Q0M7NzhDQzsKKzJGOTUxOzQwRTM7NDBFMzs0MEUzOzQwRTM7CisyRjk1MjsyNTYyNjsyNTYyNjsyNTYyNjsyNTYyNjsKKzJGOTUzOzc5NTY7Nzk1Njs3OTU2Ozc5NTY7CisyRjk1NDsyNTY5QTsyNTY5QTsyNTY5QTsyNTY5QTsKKzJGOTU1OzI1NkM1OzI1NkM1OzI1NkM1OzI1NkM1OworMkY5NTY7Nzk4Rjs3OThGOzc5OEY7Nzk4RjsKKzJGOTU3Ozc5RUI7NzlFQjs3OUVCOzc5RUI7CisyRjk1ODs0MTJGOzQxMkY7NDEyRjs0MTJGOworMkY5NTk7N0E0MDs3QTQwOzdBNDA7N0E0MDsKKzJGOTVBOzdBNEE7N0E0QTs3QTRBOzdBNEE7CisyRjk1Qjs3QTRGOzdBNEY7N0E0Rjs3QTRGOworMkY5NUM7MjU5N0M7MjU5N0M7MjU5N0M7MjU5N0M7CisyRjk1RDsyNUFBNzsyNUFBNzsyNUFBNzsyNUFBNzsKKzJGOTVFOzI1QUE3OzI1QUE3OzI1QUE3OzI1QUE3OworIyBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMtNC4wLjAudHh0IC0tIDJGOTVGOzdBQUU7N0FBRTs3QUFFOzdBQUU7CisyRjk2MDs0MjAyOzQyMDI7NDIwMjs0MjAyOworMkY5NjE7MjVCQUI7MjVCQUI7MjVCQUI7MjVCQUI7CisyRjk2Mjs3QkM2OzdCQzY7N0JDNjs3QkM2OworMkY5NjM7N0JDOTs3QkM5OzdCQzk7N0JDOTsKKzJGOTY0OzQyMjc7NDIyNzs0MjI3OzQyMjc7CisyRjk2NTsyNUM4MDsyNUM4MDsyNUM4MDsyNUM4MDsKKzJGOTY2OzdDRDI7N0NEMjs3Q0QyOzdDRDI7CisyRjk2Nzs0MkEwOzQyQTA7NDJBMDs0MkEwOworMkY5Njg7N0NFODs3Q0U4OzdDRTg7N0NFODsKKzJGOTY5OzdDRTM7N0NFMzs3Q0UzOzdDRTM7CisyRjk2QTs3RDAwOzdEMDA7N0QwMDs3RDAwOworMkY5NkI7MjVGODY7MjVGODY7MjVGODY7MjVGODY7CisyRjk2Qzs3RDYzOzdENjM7N0Q2Mzs3RDYzOworMkY5NkQ7NDMwMTs0MzAxOzQzMDE7NDMwMTsKKzJGOTZFOzdEQzc7N0RDNzs3REM3OzdEQzc7CisyRjk2Rjs3RTAyOzdFMDI7N0UwMjs3RTAyOworMkY5NzA7N0U0NTs3RTQ1OzdFNDU7N0U0NTsKKzJGOTcxOzQzMzQ7NDMzNDs0MzM0OzQzMzQ7CisyRjk3MjsyNjIyODsyNjIyODsyNjIyODsyNjIyODsKKzJGOTczOzI2MjQ3OzI2MjQ3OzI2MjQ3OzI2MjQ3OworMkY5NzQ7NDM1OTs0MzU5OzQzNTk7NDM1OTsKKzJGOTc1OzI2MkQ5OzI2MkQ5OzI2MkQ5OzI2MkQ5OworMkY5NzY7N0Y3QTs3RjdBOzdGN0E7N0Y3QTsKKzJGOTc3OzI2MzNFOzI2MzNFOzI2MzNFOzI2MzNFOworMkY5Nzg7N0Y5NTs3Rjk1OzdGOTU7N0Y5NTsKKzJGOTc5OzdGRkE7N0ZGQTs3RkZBOzdGRkE7CisyRjk3QTs4MDA1OzgwMDU7ODAwNTs4MDA1OworMkY5N0I7MjY0REE7MjY0REE7MjY0REE7MjY0REE7CisyRjk3QzsyNjUyMzsyNjUyMzsyNjUyMzsyNjUyMzsKKzJGOTdEOzgwNjA7ODA2MDs4MDYwOzgwNjA7CisyRjk3RTsyNjVBODsyNjVBODsyNjVBODsyNjVBODsKKzJGOTdGOzgwNzA7ODA3MDs4MDcwOzgwNzA7CisyRjk4MDsyMzM1RjsyMzM1RjsyMzM1RjsyMzM1RjsKKzJGOTgxOzQzRDU7NDNENTs0M0Q1OzQzRDU7CisyRjk4Mjs4MEIyOzgwQjI7ODBCMjs4MEIyOworMkY5ODM7ODEwMzs4MTAzOzgxMDM7ODEwMzsKKzJGOTg0OzQ0MEI7NDQwQjs0NDBCOzQ0MEI7CisyRjk4NTs4MTNFOzgxM0U7ODEzRTs4MTNFOworMkY5ODY7NUFCNTs1QUI1OzVBQjU7NUFCNTsKKzJGOTg3OzI2N0E3OzI2N0E3OzI2N0E3OzI2N0E3OworMkY5ODg7MjY3QjU7MjY3QjU7MjY3QjU7MjY3QjU7CisyRjk4OTsyMzM5MzsyMzM5MzsyMzM5MzsyMzM5MzsKKzJGOThBOzIzMzlDOzIzMzlDOzIzMzlDOzIzMzlDOworMkY5OEI7ODIwMTs4MjAxOzgyMDE7ODIwMTsKKzJGOThDOzgyMDQ7ODIwNDs4MjA0OzgyMDQ7CisyRjk4RDs4RjlFOzhGOUU7OEY5RTs4RjlFOworMkY5OEU7NDQ2Qjs0NDZCOzQ0NkI7NDQ2QjsKKzJGOThGOzgyOTE7ODI5MTs4MjkxOzgyOTE7CisyRjk5MDs4MjhCOzgyOEI7ODI4Qjs4MjhCOworMkY5OTE7ODI5RDs4MjlEOzgyOUQ7ODI5RDsKKzJGOTkyOzUyQjM7NTJCMzs1MkIzOzUyQjM7CisyRjk5Mzs4MkIxOzgyQjE7ODJCMTs4MkIxOworMkY5OTQ7ODJCMzs4MkIzOzgyQjM7ODJCMzsKKzJGOTk1OzgyQkQ7ODJCRDs4MkJEOzgyQkQ7CisyRjk5Njs4MkU2OzgyRTY7ODJFNjs4MkU2OworMkY5OTc7MjZCM0M7MjZCM0M7MjZCM0M7MjZCM0M7CisyRjk5ODs4MkU1OzgyRTU7ODJFNTs4MkU1OworMkY5OTk7ODMxRDs4MzFEOzgzMUQ7ODMxRDsKKzJGOTlBOzgzNjM7ODM2Mzs4MzYzOzgzNjM7CisyRjk5Qjs4M0FEOzgzQUQ7ODNBRDs4M0FEOworMkY5OUM7ODMyMzs4MzIzOzgzMjM7ODMyMzsKKzJGOTlEOzgzQkQ7ODNCRDs4M0JEOzgzQkQ7CisyRjk5RTs4M0U3OzgzRTc7ODNFNzs4M0U3OworMkY5OUY7ODQ1Nzs4NDU3Ozg0NTc7ODQ1NzsKKzJGOUEwOzgzNTM7ODM1Mzs4MzUzOzgzNTM7CisyRjlBMTs4M0NBOzgzQ0E7ODNDQTs4M0NBOworMkY5QTI7ODNDQzs4M0NDOzgzQ0M7ODNDQzsKKzJGOUEzOzgzREM7ODNEQzs4M0RDOzgzREM7CisyRjlBNDsyNkMzNjsyNkMzNjsyNkMzNjsyNkMzNjsKKzJGOUE1OzI2RDZCOzI2RDZCOzI2RDZCOzI2RDZCOworMkY5QTY7MjZDRDU7MjZDRDU7MjZDRDU7MjZDRDU7CisyRjlBNzs0NTJCOzQ1MkI7NDUyQjs0NTJCOworMkY5QTg7ODRGMTs4NEYxOzg0RjE7ODRGMTsKKzJGOUE5Ozg0RjM7ODRGMzs4NEYzOzg0RjM7CisyRjlBQTs4NTE2Ozg1MTY7ODUxNjs4NTE2OworMkY5QUI7MjczQ0E7MjczQ0E7MjczQ0E7MjczQ0E7CisyRjlBQzs4NTY0Ozg1NjQ7ODU2NDs4NTY0OworMkY5QUQ7MjZGMkM7MjZGMkM7MjZGMkM7MjZGMkM7CisyRjlBRTs0NTVEOzQ1NUQ7NDU1RDs0NTVEOworMkY5QUY7NDU2MTs0NTYxOzQ1NjE7NDU2MTsKKzJGOUIwOzI2RkIxOzI2RkIxOzI2RkIxOzI2RkIxOworMkY5QjE7MjcwRDI7MjcwRDI7MjcwRDI7MjcwRDI7CisyRjlCMjs0NTZCOzQ1NkI7NDU2Qjs0NTZCOworMkY5QjM7ODY1MDs4NjUwOzg2NTA7ODY1MDsKKzJGOUI0Ozg2NUM7ODY1Qzs4NjVDOzg2NUM7CisyRjlCNTs4NjY3Ozg2Njc7ODY2Nzs4NjY3OworMkY5QjY7ODY2OTs4NjY5Ozg2Njk7ODY2OTsKKzJGOUI3Ozg2QTk7ODZBOTs4NkE5Ozg2QTk7CisyRjlCODs4Njg4Ozg2ODg7ODY4ODs4Njg4OworMkY5Qjk7ODcwRTs4NzBFOzg3MEU7ODcwRTsKKzJGOUJBOzg2RTI7ODZFMjs4NkUyOzg2RTI7CisyRjlCQjs4Nzc5Ozg3Nzk7ODc3OTs4Nzc5OworMkY5QkM7ODcyODs4NzI4Ozg3Mjg7ODcyODsKKzJGOUJEOzg3NkI7ODc2Qjs4NzZCOzg3NkI7CisyRjlCRTs4Nzg2Ozg3ODY7ODc4Njs4Nzg2OworIyBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMtNC4wLjAudHh0IC0tIDJGOUJGOzRENTc7NEQ1Nzs0RDU3OzRENTc7CisyRjlDMDs4N0UxOzg3RTE7ODdFMTs4N0UxOworMkY5QzE7ODgwMTs4ODAxOzg4MDE7ODgwMTsKKzJGOUMyOzQ1Rjk7NDVGOTs0NUY5OzQ1Rjk7CisyRjlDMzs4ODYwOzg4NjA7ODg2MDs4ODYwOworMkY5QzQ7ODg2Mzs4ODYzOzg4NjM7ODg2MzsKKzJGOUM1OzI3NjY3OzI3NjY3OzI3NjY3OzI3NjY3OworMkY5QzY7ODhENzs4OEQ3Ozg4RDc7ODhENzsKKzJGOUM3Ozg4REU7ODhERTs4OERFOzg4REU7CisyRjlDODs0NjM1OzQ2MzU7NDYzNTs0NjM1OworMkY5Qzk7ODhGQTs4OEZBOzg4RkE7ODhGQTsKKzJGOUNBOzM0QkI7MzRCQjszNEJCOzM0QkI7CisyRjlDQjsyNzhBRTsyNzhBRTsyNzhBRTsyNzhBRTsKKzJGOUNDOzI3OTY2OzI3OTY2OzI3OTY2OzI3OTY2OworMkY5Q0Q7NDZCRTs0NkJFOzQ2QkU7NDZCRTsKKzJGOUNFOzQ2Qzc7NDZDNzs0NkM3OzQ2Qzc7CisyRjlDRjs4QUEwOzhBQTA7OEFBMDs4QUEwOworMkY5RDA7OEFFRDs4QUVEOzhBRUQ7OEFFRDsKKzJGOUQxOzhCOEE7OEI4QTs4QjhBOzhCOEE7CisyRjlEMjs4QzU1OzhDNTU7OEM1NTs4QzU1OworMkY5RDM7MjdDQTg7MjdDQTg7MjdDQTg7MjdDQTg7CisyRjlENDs4Q0FCOzhDQUI7OENBQjs4Q0FCOworMkY5RDU7OENDMTs4Q0MxOzhDQzE7OENDMTsKKzJGOUQ2OzhEMUI7OEQxQjs4RDFCOzhEMUI7CisyRjlENzs4RDc3OzhENzc7OEQ3Nzs4RDc3OworMkY5RDg7MjdGMkY7MjdGMkY7MjdGMkY7MjdGMkY7CisyRjlEOTsyMDgwNDsyMDgwNDsyMDgwNDsyMDgwNDsKKzJGOURBOzhEQ0I7OERDQjs4RENCOzhEQ0I7CisyRjlEQjs4REJDOzhEQkM7OERCQzs4REJDOworMkY5REM7OERGMDs4REYwOzhERjA7OERGMDsKKzJGOUREOzIwOERFOzIwOERFOzIwOERFOzIwOERFOworMkY5REU7OEVENDs4RUQ0OzhFRDQ7OEVENDsKKzJGOURGOzhGMzg7OEYzODs4RjM4OzhGMzg7CisyRjlFMDsyODVEMjsyODVEMjsyODVEMjsyODVEMjsKKzJGOUUxOzI4NUVEOzI4NUVEOzI4NUVEOzI4NUVEOworMkY5RTI7OTA5NDs5MDk0OzkwOTQ7OTA5NDsKKzJGOUUzOzkwRjE7OTBGMTs5MEYxOzkwRjE7CisyRjlFNDs5MTExOzkxMTE7OTExMTs5MTExOworMkY5RTU7Mjg3MkU7Mjg3MkU7Mjg3MkU7Mjg3MkU7CisyRjlFNjs5MTFCOzkxMUI7OTExQjs5MTFCOworMkY5RTc7OTIzODs5MjM4OzkyMzg7OTIzODsKKzJGOUU4OzkyRDc7OTJENzs5MkQ3OzkyRDc7CisyRjlFOTs5MkQ4OzkyRDg7OTJEODs5MkQ4OworMkY5RUE7OTI3Qzs5MjdDOzkyN0M7OTI3QzsKKzJGOUVCOzkzRjk7OTNGOTs5M0Y5OzkzRjk7CisyRjlFQzs5NDE1Ozk0MTU7OTQxNTs5NDE1OworMkY5RUQ7MjhCRkE7MjhCRkE7MjhCRkE7MjhCRkE7CisyRjlFRTs5NThCOzk1OEI7OTU4Qjs5NThCOworMkY5RUY7NDk5NTs0OTk1OzQ5OTU7NDk5NTsKKzJGOUYwOzk1Qjc7OTVCNzs5NUI3Ozk1Qjc7CisyRjlGMTsyOEQ3NzsyOEQ3NzsyOEQ3NzsyOEQ3NzsKKzJGOUYyOzQ5RTY7NDlFNjs0OUU2OzQ5RTY7CisyRjlGMzs5NkMzOzk2QzM7OTZDMzs5NkMzOworMkY5RjQ7NURCMjs1REIyOzVEQjI7NURCMjsKKzJGOUY1Ozk3MjM7OTcyMzs5NzIzOzk3MjM7CisyRjlGNjsyOTE0NTsyOTE0NTsyOTE0NTsyOTE0NTsKKzJGOUY3OzI5MjFBOzI5MjFBOzI5MjFBOzI5MjFBOworMkY5Rjg7NEE2RTs0QTZFOzRBNkU7NEE2RTsKKzJGOUY5OzRBNzY7NEE3Njs0QTc2OzRBNzY7CisyRjlGQTs5N0UwOzk3RTA7OTdFMDs5N0UwOworMkY5RkI7Mjk0MEE7Mjk0MEE7Mjk0MEE7Mjk0MEE7CisyRjlGQzs0QUIyOzRBQjI7NEFCMjs0QUIyOworMkY5RkQ7Mjk0OTY7Mjk0OTY7Mjk0OTY7Mjk0OTY7CisyRjlGRTs5ODBCOzk4MEI7OTgwQjs5ODBCOworMkY5RkY7OTgwQjs5ODBCOzk4MEI7OTgwQjsKKzJGQTAwOzk4Mjk7OTgyOTs5ODI5Ozk4Mjk7CisyRkEwMTsyOTVCNjsyOTVCNjsyOTVCNjsyOTVCNjsKKzJGQTAyOzk4RTI7OThFMjs5OEUyOzk4RTI7CisyRkEwMzs0QjMzOzRCMzM7NEIzMzs0QjMzOworMkZBMDQ7OTkyOTs5OTI5Ozk5Mjk7OTkyOTsKKzJGQTA1Ozk5QTc7OTlBNzs5OUE3Ozk5QTc7CisyRkEwNjs5OUMyOzk5QzI7OTlDMjs5OUMyOworMkZBMDc7OTlGRTs5OUZFOzk5RkU7OTlGRTsKKzJGQTA4OzRCQ0U7NEJDRTs0QkNFOzRCQ0U7CisyRkEwOTsyOUIzMDsyOUIzMDsyOUIzMDsyOUIzMDsKKzJGQTBBOzlCMTI7OUIxMjs5QjEyOzlCMTI7CisyRkEwQjs5QzQwOzlDNDA7OUM0MDs5QzQwOworMkZBMEM7OUNGRDs5Q0ZEOzlDRkQ7OUNGRDsKKzJGQTBEOzRDQ0U7NENDRTs0Q0NFOzRDQ0U7CisyRkEwRTs0Q0VEOzRDRUQ7NENFRDs0Q0VEOworMkZBMEY7OUQ2Nzs5RDY3OzlENjc7OUQ2NzsKKzJGQTEwOzJBMENFOzJBMENFOzJBMENFOzJBMENFOworMkZBMTE7NENGODs0Q0Y4OzRDRjg7NENGODsKKzJGQTEyOzJBMTA1OzJBMTA1OzJBMTA1OzJBMTA1OworMkZBMTM7MkEyMEU7MkEyMEU7MkEyMEU7MkEyMEU7CisyRkExNDsyQTI5MTsyQTI5MTsyQTI5MTsyQTI5MTsKKzJGQTE1OzlFQkI7OUVCQjs5RUJCOzlFQkI7CisyRkExNjs0RDU2OzRENTY7NEQ1Njs0RDU2OworMkZBMTc7OUVGOTs5RUY5OzlFRjk7OUVGOTsKKzJGQTE4OzlFRkU7OUVGRTs5RUZFOzlFRkU7CisyRkExOTs5RjA1OzlGMDU7OUYwNTs5RjA1OworMkZBMUE7OUYwRjs5RjBGOzlGMEY7OUYwRjsKKzJGQTFCOzlGMTY7OUYxNjs5RjE2OzlGMTY7CisyRkExQzs5RjNCOzlGM0I7OUYzQjs5RjNCOworMkZBMUQ7MkE2MDA7MkE2MDA7MkE2MDA7MkE2MDA7CisjCitAUGFydDIgIyBDYW5vbmljYWwgT3JkZXIgVGVzdAorIworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzAwIDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMwMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDEgMDA2MjswMEUwIDA1QUUgMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDEgMDMxNSAwMDYyOworMDA2MSAwMzAxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAxIDAzMDAgMDMxNSAwMDYyOzAwRTEgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwMiAwMDYyOzAwRTAgMDVBRSAwMzAyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMiAwMzE1IDAwNjI7CiswMDYxIDAzMDIgMDMxNSAwMzAwIDA1QUUgMDA2MjsxRUE3IDA1QUUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAyIDAzMDAgMDMxNSAwMDYyOzFFQTcgMDVBRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDMgMDA2MjswMEUwIDA1QUUgMDMwMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDMgMDMxNSAwMDYyOworMDA2MSAwMzAzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAzIDAzMDAgMDMxNSAwMDYyOzAwRTMgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwNCAwMDYyOzAwRTAgMDVBRSAwMzA0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwNCAwMzE1IDAwNjI7CiswMDYxIDAzMDQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMTAxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDQgMDMwMCAwMzE1IDAwNjI7MDEwMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA1IDAwNjI7MDBFMCAwNUFFIDAzMDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA1IDAzMTUgMDA2MjsKKzAwNjEgMDMwNSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA2IDAwNjI7MDBFMCAwNUFFIDAzMDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA2IDAzMTUgMDA2MjsKKzAwNjEgMDMwNiAwMzE1IDAzMDAgMDVBRSAwMDYyOzFFQjEgMDVBRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDYgMDMwMCAwMzE1IDAwNjI7MUVCMSAwNUFFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwNiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwNyAwMDYyOzAwRTAgMDVBRSAwMzA3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwNyAwMzE1IDAwNjI7CiswMDYxIDAzMDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMjI3IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDcgMDMwMCAwMzE1IDAwNjI7MDIyNyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA4IDAwNjI7MDBFMCAwNUFFIDAzMDggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDggMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA4IDAzMTUgMDA2MjsKKzAwNjEgMDMwOCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwRTQgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOCAwMzAwIDAzMTUgMDA2MjswMEU0IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDkgMDA2MjswMEUwIDA1QUUgMDMwOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwOSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDkgMDMxNSAwMDYyOworMDA2MSAwMzA5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MUVBMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA5IDAzMDAgMDMxNSAwMDYyOzFFQTMgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwQSAwMDYyOzAwRTAgMDVBRSAwMzBBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwQSAwMzE1IDAwNjI7CiswMDYxIDAzMEEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEU1IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEEgMDMwMCAwMzE1IDAwNjI7MDBFNSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBBIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzBCIDAwNjI7MDBFMCAwNUFFIDAzMEIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzBCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBCIDAzMTUgMDA2MjsKKzAwNjEgMDMwQiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzBDIDAwNjI7MDBFMCAwNUFFIDAzMEMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzBDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBDIDAzMTUgMDA2MjsKKzAwNjEgMDMwQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAxQ0UgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwQyAwMzAwIDAzMTUgMDA2MjswMUNFIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEQgMDA2MjswMEUwIDA1QUUgMDMwRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEQgMDMxNSAwMDYyOworMDA2MSAwMzBEIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEUgMDA2MjswMEUwIDA1QUUgMDMwRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEUgMDMxNSAwMDYyOworMDA2MSAwMzBFIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEYgMDA2MjswMEUwIDA1QUUgMDMwRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEYgMDMxNSAwMDYyOworMDA2MSAwMzBGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDIwMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBGIDAzMDAgMDMxNSAwMDYyOzAyMDEgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMxMCAwMDYyOzAwRTAgMDVBRSAwMzEwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMxMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMCAwMzE1IDAwNjI7CiswMDYxIDAzMTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMxMSAwMDYyOzAwRTAgMDVBRSAwMzExIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzExIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMxMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMSAwMzE1IDAwNjI7CiswMDYxIDAzMTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMjAzIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTEgMDMwMCAwMzE1IDAwNjI7MDIwMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzExIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzEyIDAwNjI7MDBFMCAwNUFFIDAzMTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEyIDAzMTUgMDA2MjsKKzAwNjEgMDMxMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzEzIDAwNjI7MDBFMCAwNUFFIDAzMTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEzIDAzMTUgMDA2MjsKKzAwNjEgMDMxMyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzE0IDAwNjI7MDBFMCAwNUFFIDAzMTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzE0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzE0IDAzMTUgMDA2MjsKKzAwNjEgMDMxNCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzYyIDAzMTUgMDMwMCAwMzE1IDAwNjI7MDBFMCAwMzE1IDAzMTUgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMTUgMDM2MiAwMDYyOzAwRTAgMDMxNSAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzE1IDAzNjIgMDA2MjsKKzAwNjEgMDMxNSAwMzYyIDAzMTUgMDMwMCAwMDYyOzAwRTAgMDMxNSAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzE1IDAzNjIgMDA2MjswMEUwIDAzMTUgMDMxNSAwMzYyIDAwNjI7MDA2MSAwMzAwIDAzMTUgMDMxNSAwMzYyIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMTYgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzE3IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7CiswMDYxIDAzMTcgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxOCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOworMDA2MSAwMzE4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMTkgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjsKKzAwNjEgMDMxOSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzYyIDAzMTUgMDMwMCAwMzFBIDAwNjI7MDBFMCAwMzE1IDAzMUEgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMUEgMDM2MiAwMDYyOzAwRTAgMDMxNSAwMzFBIDAzNjIgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzFBIDAzNjIgMDA2MjsKKzAwNjEgMDMxQSAwMzYyIDAzMTUgMDMwMCAwMDYyOzAwRTAgMDMxQSAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMDAgMDMxQSAwMzE1IDAzNjIgMDA2MjswMEUwIDAzMUEgMDMxNSAwMzYyIDAwNjI7MDA2MSAwMzAwIDAzMUEgMDMxNSAwMzYyIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDAzMUIgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMDMxQiAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzFDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7CiswMDYxIDAzMUMgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxRCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOworMDA2MSAwMzFEIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMUUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjsKKzAwNjEgMDMxRSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzFGIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7CiswMDYxIDAzMUYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyMCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOworMDA2MSAwMzIwIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMUIgMDMyMSAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDMyMSAwMzFCIDAzMjEgMEY3NCAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOworMDA2MSAwMzFCIDAzMjEgMEY3NCAwMzIyIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7CiswMDYxIDAzMjIgMDMxQiAwMzIxIDBGNzQgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyMyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOworMDA2MSAwMzIzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MUVBMSAzMDJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzIzIDAzMTYgMDU5QSAwMDYyOzFFQTEgMzAyQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyMyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyNCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOworMDA2MSAwMzI0IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMjUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjsKKzAwNjEgMDMyNSAwNTlBIDAzMTYgMzAyQSAwMDYyOzFFMDEgMzAyQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNSAwMzE2IDA1OUEgMDA2MjsxRTAxIDMwMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjUgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMjYgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjsKKzAwNjEgMDMyNiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzFCIDAzMjEgMEY3NCAwMzI3IDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7CiswMDYxIDAzMjcgMDMxQiAwMzIxIDBGNzQgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDMxQiAwMzIxIDBGNzQgMDMyOCAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOworMDA2MSAwMzI4IDAzMUIgMDMyMSAwRjc0IDAwNjI7MDEwNSAwRjc0IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI4IDAzMjEgMDMxQiAwMDYyOzAxMDUgMEY3NCAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyOCAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOworMDA2MSAwMzI5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMkEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjsKKzAwNjEgMDMyQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzJCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7CiswMDYxIDAzMkIgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyQyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOworMDA2MSAwMzJDIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMkQgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjsKKzAwNjEgMDMyRCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzJFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7CiswMDYxIDAzMkUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyRiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOworMDA2MSAwMzJGIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMzAgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjsKKzAwNjEgMDMzMCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzMxIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7CiswMDYxIDAzMzEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzMiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOworMDA2MSAwMzMyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMzMgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjsKKzAwNjEgMDMzMyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMDMzNCAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMzNCAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAwMzM1IDAwNjI7MDA2MSAwMzM0IDAzMzUgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM1IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNSAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzUgMDkzQyAwMDYyOworMDA2MSAwMzM1IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNSAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzUgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM1IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDAzMzYgMDA2MjswMDYxIDAzMzQgMDMzNiAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzYgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM2IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNiAwOTNDIDAwNjI7CiswMDYxIDAzMzYgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM2IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNiAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzYgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM2IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMDMzNyAwMDYyOzAwNjEgMDMzNCAwMzM3IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNyAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzcgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM3IDA5M0MgMDA2MjsKKzAwNjEgMDMzNyAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzcgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM3IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNyAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzcgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAwMzM4IDAwNjI7MDA2MSAwMzM0IDAzMzggMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM4IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzOCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzggMDkzQyAwMDYyOworMDA2MSAwMzM4IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzOCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzggMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzOCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOworMDA2MSAwMzM5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzM0EgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjsKKzAwNjEgMDMzQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzNCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7CiswMDYxIDAzM0IgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzQyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOworMDA2MSAwMzNDIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzM0QgMDA2MjswMEUwIDA1QUUgMDMzRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzM0QgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzM0QgMDMxNSAwMDYyOworMDA2MSAwMzNEIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzM0UgMDA2MjswMEUwIDA1QUUgMDMzRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzM0UgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzM0UgMDMxNSAwMDYyOworMDA2MSAwMzNFIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzM0YgMDA2MjswMEUwIDA1QUUgMDMzRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzM0YgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzM0YgMDMxNSAwMDYyOworMDA2MSAwMzNGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDAgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzQwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0MSAwMDYyOzAwRTAgMDVBRSAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMSAwMzE1IDAwNjI7CiswMDYxIDAzNDEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEUxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDEgMDMwMCAwMzE1IDAwNjI7MDBFMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQyIDAwNjI7MDBFMCAwNUFFIDAzNDIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNDIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzQyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzQyIDAzMTUgMDA2MjsKKzAwNjEgMDM0MiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQzIDAwNjI7MDBFMCAwNUFFIDAzMTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEzIDAzMTUgMDA2MjsKKzAwNjEgMDM0MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQ0IDAwNjI7MDBFMCAwNUFFIDAzMDggMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwOCAwMzAxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwOCAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA4IDAzMDEgMDMxNSAwMDYyOworMDA2MSAwMzQ0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFNCAwNUFFIDAzMDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDggMDMwMSAwMzAwIDAzMTUgMDA2MjswMEU0IDA1QUUgMDMwMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOCAwMzAxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzQ1IDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM2MCAwMzQ1IDAzNDUgMDA2MjswMDYxIDAzNjAgMDM0NSAwMzQ1IDAwNjI7MDA2MSAwMzYwIDAzNDUgMDM0NSAwMDYyOzAwNjEgMDM2MCAwMzQ1IDAzNDUgMDA2MjsKKzAwNjEgMDM0NSAwMzQ1IDAzNjAgMDA2MjswMDYxIDAzNjAgMDM0NSAwMzQ1IDAwNjI7MDA2MSAwMzYwIDAzNDUgMDM0NSAwMDYyOzAwNjEgMDM2MCAwMzQ1IDAzNDUgMDA2MjswMDYxIDAzNjAgMDM0NSAwMzQ1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDYgMDA2MjswMEUwIDA1QUUgMDM0NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0NiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNDYgMDMxNSAwMDYyOworMDA2MSAwMzQ2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNDcgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjsKKzAwNjEgMDM0NyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzQ4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7CiswMDYxIDAzNDggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM0OSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOworMDA2MSAwMzQ5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNEEgMDA2MjswMEUwIDA1QUUgMDM0QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNEEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNEEgMDMxNSAwMDYyOworMDA2MSAwMzRBIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNEIgMDA2MjswMEUwIDA1QUUgMDM0QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNEIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNEIgMDMxNSAwMDYyOworMDA2MSAwMzRCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNEMgMDA2MjswMEUwIDA1QUUgMDM0QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNEMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNEMgMDMxNSAwMDYyOworMDA2MSAwMzRDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNEQgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjsKKzAwNjEgMDM0RCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzRFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7CiswMDYxIDAzNEUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDM0NSAwMzYwIDAzNjIgMDM2MCAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYwIDAzNjAgMDM0NSAwMDYyOworMDA2MSAwMzYwIDAzNDUgMDM2MCAwMzYyIDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7MDA2MSAwMzYyIDAzNjAgMDM2MCAwMzQ1IDAwNjI7CiswMDYxIDAzNDUgMDM2MCAwMzYyIDAzNjEgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYxIDAzNDUgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYxIDAzNDUgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYxIDAzNDUgMDA2MjswMDYxIDAzNjIgMDM2MCAwMzYxIDAzNDUgMDA2MjsKKzAwNjEgMDM2MSAwMzQ1IDAzNjAgMDM2MiAwMDYyOzAwNjEgMDM2MiAwMzYxIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYxIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYxIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM2MiAwMzYxIDAzNjAgMDM0NSAwMDYyOworMDA2MSAwMzYwIDAzNjIgMDMxNSAwMzYyIDAwNjI7MDA2MSAwMzE1IDAzNjIgMDM2MiAwMzYwIDAwNjI7MDA2MSAwMzE1IDAzNjIgMDM2MiAwMzYwIDAwNjI7MDA2MSAwMzE1IDAzNjIgMDM2MiAwMzYwIDAwNjI7MDA2MSAwMzE1IDAzNjIgMDM2MiAwMzYwIDAwNjI7CiswMDYxIDAzNjIgMDM2MCAwMzYyIDAzMTUgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzYyIDAzNjAgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2MyAwMDYyOzAwRTAgMDVBRSAwMzYzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzYzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2MyAwMzE1IDAwNjI7CiswMDYxIDAzNjMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NCAwMDYyOzAwRTAgMDVBRSAwMzY0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NCAwMzE1IDAwNjI7CiswMDYxIDAzNjQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NSAwMDYyOzAwRTAgMDVBRSAwMzY1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NSAwMzE1IDAwNjI7CiswMDYxIDAzNjUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NiAwMDYyOzAwRTAgMDVBRSAwMzY2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NiAwMzE1IDAwNjI7CiswMDYxIDAzNjYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NyAwMDYyOzAwRTAgMDVBRSAwMzY3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NyAwMzE1IDAwNjI7CiswMDYxIDAzNjcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2OCAwMDYyOzAwRTAgMDVBRSAwMzY4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY4IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2OCAwMzE1IDAwNjI7CiswMDYxIDAzNjggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2OSAwMDYyOzAwRTAgMDVBRSAwMzY5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2OSAwMzE1IDAwNjI7CiswMDYxIDAzNjkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2QSAwMDYyOzAwRTAgMDVBRSAwMzZBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2QSAwMzE1IDAwNjI7CiswMDYxIDAzNkEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2QiAwMDYyOzAwRTAgMDVBRSAwMzZCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2QiAwMzE1IDAwNjI7CiswMDYxIDAzNkIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2QyAwMDYyOzAwRTAgMDVBRSAwMzZDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2QyAwMzE1IDAwNjI7CiswMDYxIDAzNkMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2RCAwMDYyOzAwRTAgMDVBRSAwMzZEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2RCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2RCAwMzE1IDAwNjI7CiswMDYxIDAzNkQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2RSAwMDYyOzAwRTAgMDVBRSAwMzZFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZFIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2RSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2RSAwMzE1IDAwNjI7CiswMDYxIDAzNkUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2RiAwMDYyOzAwRTAgMDVBRSAwMzZGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2RiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2RiAwMzE1IDAwNjI7CiswMDYxIDAzNkYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4MyAwMDYyOzAwRTAgMDVBRSAwNDgzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDgzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4MyAwMzE1IDAwNjI7CiswMDYxIDA0ODMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4NCAwMDYyOzAwRTAgMDVBRSAwNDg0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4NCAwMzE1IDAwNjI7CiswMDYxIDA0ODQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4NSAwMDYyOzAwRTAgMDVBRSAwNDg1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4NSAwMzE1IDAwNjI7CiswMDYxIDA0ODUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4NiAwMDYyOzAwRTAgMDVBRSAwNDg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4NiAwMzE1IDAwNjI7CiswMDYxIDA0ODYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDU5MSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOworMDA2MSAwNTkxIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTIgMDA2MjswMEUwIDA1QUUgMDU5MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5MiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTIgMDMxNSAwMDYyOworMDA2MSAwNTkyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTMgMDA2MjswMEUwIDA1QUUgMDU5MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTMgMDMxNSAwMDYyOworMDA2MSAwNTkzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTQgMDA2MjswMEUwIDA1QUUgMDU5NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTQgMDMxNSAwMDYyOworMDA2MSAwNTk0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTUgMDA2MjswMEUwIDA1QUUgMDU5NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTUgMDMxNSAwMDYyOworMDA2MSAwNTk1IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1OTYgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjsKKzAwNjEgMDU5NiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNTk3IDAwNjI7MDBFMCAwNUFFIDA1OTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNTk3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk3IDAzMTUgMDA2MjsKKzAwNjEgMDU5NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNTk4IDAwNjI7MDBFMCAwNUFFIDA1OTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTggMDMxNSAwMDYyOzAwRTAgMDVBRSAwNTk4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk4IDAzMTUgMDA2MjsKKzAwNjEgMDU5OCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNTk5IDAwNjI7MDBFMCAwNUFFIDA1OTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTkgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNTk5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk5IDAzMTUgMDA2MjsKKzAwNjEgMDU5OSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAzMDJFIDA1OUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7CiswMDYxIDA1OUEgMzAyRSAwNTlBIDAzMTYgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDU5QiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOworMDA2MSAwNTlCIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUMgMDA2MjswMEUwIDA1QUUgMDU5QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5QyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUMgMDMxNSAwMDYyOworMDA2MSAwNTlDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUQgMDA2MjswMEUwIDA1QUUgMDU5RCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUQgMDMxNSAwMDYyOworMDA2MSAwNTlEIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUUgMDA2MjswMEUwIDA1QUUgMDU5RSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUUgMDMxNSAwMDYyOworMDA2MSAwNTlFIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUYgMDA2MjswMEUwIDA1QUUgMDU5RiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUYgMDMxNSAwMDYyOworMDA2MSAwNTlGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QTAgMDA2MjswMEUwIDA1QUUgMDVBMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QTAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTAgMDMxNSAwMDYyOworMDA2MSAwNUEwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QTEgMDA2MjswMEUwIDA1QUUgMDVBMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTEgMDMxNSAwMDYyOworMDA2MSAwNUExIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QTMgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEzIDA1OUEgMDA2MjsKKzAwNjEgMDVBMyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUEzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEzIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNUE0IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNCAwNTlBIDAwNjI7CiswMDYxIDA1QTQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDVBNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBNSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTUgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTUgMDU5QSAwMDYyOworMDA2MSAwNUE1IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QTUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTUgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTUgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QTYgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE2IDA1OUEgMDA2MjsKKzAwNjEgMDVBNiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNUE3IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNyAwNTlBIDAwNjI7CiswMDYxIDA1QTcgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDVBNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBOCAwMDYyOzAwRTAgMDVBRSAwNUE4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUE4IDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBOCAwMzE1IDAwNjI7CiswMDYxIDA1QTggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBOSAwMDYyOzAwRTAgMDVBRSAwNUE5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUE5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBOSAwMzE1IDAwNjI7CiswMDYxIDA1QTkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBOSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QUEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QUEgMDU5QSAwMDYyOworMDA2MSAwNUFBIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QUEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QUIgMDA2MjswMEUwIDA1QUUgMDVBQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUIgMDMxNSAwMDYyOworMDA2MSAwNUFCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QUMgMDA2MjswMEUwIDA1QUUgMDVBQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBQyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QUMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUMgMDMxNSAwMDYyOworMDA2MSAwNUFDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QUMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDMwMkUgMDU5QSAwMzE2IDA1QUQgMDA2MjswMDYxIDAzMTYgMDU5QSAwNUFEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNUFEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNUFEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNUFEIDMwMkUgMDA2MjsKKzAwNjEgMDVBRCAzMDJFIDA1OUEgMDMxNiAwMDYyOzAwNjEgMDMxNiAwNUFEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNUFEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNUFEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAwNUFEIDA1OUEgMzAyRSAwMDYyOworMDA2MSAwMzAwIDA1QUUgMUQxNkQgMDVBRSAwMDYyOzAwRTAgMUQxNkQgMDVBRSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDA1QUUgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDA1QUUgMDMwMCAwMDYyOworMDA2MSAwNUFFIDAzMDAgMDVBRSAxRDE2RCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDA1QUUgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDA1QUUgMDMwMCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNUFGIDAwNjI7MDBFMCAwNUFFIDA1QUYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNUFGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUFGIDAzMTUgMDA2MjsKKzAwNjEgMDVBRiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNUFGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFGIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNUIxIDA1QjAgMDk0RCAwNUIwIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7CiswMDYxIDA1QjAgMDVCMSAwNUIwIDA5NEQgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjswMDYxIDA5NEQgMDVCMCAwNUIwIDA1QjEgMDA2MjsKKzAwNjEgMDVCMiAwNUIxIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOworMDA2MSAwNUIxIDA1QjIgMDVCMSAwNUIwIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIwIDA1QjEgMDVCMSAwNUIyIDAwNjI7CiswMDYxIDA1QjMgMDVCMiAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjsKKzAwNjEgMDVCMiAwNUIzIDA1QjIgMDVCMSAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMSAwNUIyIDA1QjIgMDVCMyAwMDYyOworMDA2MSAwNUI0IDA1QjMgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7CiswMDYxIDA1QjMgMDVCNCAwNUIzIDA1QjIgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjIgMDVCMyAwNUIzIDA1QjQgMDA2MjsKKzAwNjEgMDVCNSAwNUI0IDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOworMDA2MSAwNUI0IDA1QjUgMDVCNCAwNUIzIDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUIzIDA1QjQgMDVCNCAwNUI1IDAwNjI7CiswMDYxIDA1QjYgMDVCNSAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjsKKzAwNjEgMDVCNSAwNUI2IDA1QjUgMDVCNCAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNCAwNUI1IDA1QjUgMDVCNiAwMDYyOworMDA2MSAwNUI3IDA1QjYgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7CiswMDYxIDA1QjYgMDVCNyAwNUI2IDA1QjUgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjUgMDVCNiAwNUI2IDA1QjcgMDA2MjsKKzAwNjEgMDVCOCAwNUI3IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOworMDA2MSAwNUI3IDA1QjggMDVCNyAwNUI2IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI2IDA1QjcgMDVCNyAwNUI4IDAwNjI7CiswMDYxIDA1QjkgMDVCOCAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjsKKzAwNjEgMDVCOCAwNUI5IDA1QjggMDVCNyAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCNyAwNUI4IDA1QjggMDVCOSAwMDYyOworMDA2MSAwNUJCIDA1QjkgMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7CiswMDYxIDA1QjkgMDVCQiAwNUI5IDA1QjggMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjggMDVCOSAwNUI5IDA1QkIgMDA2MjsKKzAwNjEgMDVCQyAwNUJCIDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOworMDA2MSAwNUJCIDA1QkMgMDVCQiAwNUI5IDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUI5IDA1QkIgMDVCQiAwNUJDIDAwNjI7CiswMDYxIDA1QkQgMDVCQyAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjsKKzAwNjEgMDVCQyAwNUJEIDA1QkMgMDVCQiAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQiAwNUJDIDA1QkMgMDVCRCAwMDYyOworMDA2MSAwNUJGIDA1QkQgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7CiswMDYxIDA1QkQgMDVCRiAwNUJEIDA1QkMgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkMgMDVCRCAwNUJEIDA1QkYgMDA2MjsKKzAwNjEgMDVDMSAwNUJGIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOworMDA2MSAwNUJGIDA1QzEgMDVCRiAwNUJEIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJEIDA1QkYgMDVCRiAwNUMxIDAwNjI7CiswMDYxIDA1QzIgMDVDMSAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjsKKzAwNjEgMDVDMSAwNUMyIDA1QzEgMDVCRiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVCRiAwNUMxIDA1QzEgMDVDMiAwMDYyOworMDA2MSBGQjFFIDA1QzIgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7CiswMDYxIDA1QzIgRkIxRSAwNUMyIDA1QzEgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjswMDYxIDA1QzEgMDVDMiAwNUMyIEZCMUUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVDNCAwMDYyOzAwRTAgMDVBRSAwNUM0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUM0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDVDNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVDNCAwMzE1IDAwNjI7CiswMDYxIDA1QzQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVDNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVDNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVDNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVDNCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDY0QyAwNjRCIEZCMUUgMDY0QiAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOworMDA2MSAwNjRCIDA2NEMgMDY0QiBGQjFFIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7CiswMDYxIDA2NEQgMDY0QyAwNjRCIDA2NEMgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjsKKzAwNjEgMDY0QyAwNjREIDA2NEMgMDY0QiAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOworMDA2MSAwNjRFIDA2NEQgMDY0QyAwNjREIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7CiswMDYxIDA2NEQgMDY0RSAwNjREIDA2NEMgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjsKKzAwNjEgMDY0RiAwNjRFIDA2NEQgMDY0RSAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOworMDA2MSAwNjRFIDA2NEYgMDY0RSAwNjREIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7CiswMDYxIDA2NTAgMDY0RiAwNjRFIDA2NEYgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjsKKzAwNjEgMDY0RiAwNjUwIDA2NEYgMDY0RSAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOworMDA2MSAwNjUxIDA2NTAgMDY0RiAwNjUwIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7CiswMDYxIDA2NTAgMDY1MSAwNjUwIDA2NEYgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjsKKzAwNjEgMDY1MiAwNjUxIDA2NTAgMDY1MSAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOworMDA2MSAwNjUxIDA2NTIgMDY1MSAwNjUwIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7CiswMDYxIDA2NzAgMDY1MiAwNjUxIDA2NTIgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjsKKzAwNjEgMDY1MiAwNjcwIDA2NTIgMDY1MSAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjUzIDAwNjI7MDBFMCAwNUFFIDA2NTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjUzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjUzIDAzMTUgMDA2MjsKKzAwNjEgMDY1MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjU0IDAwNjI7MDBFMCAwNUFFIDA2NTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjU0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjU0IDAzMTUgMDA2MjsKKzAwNjEgMDY1NCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNjU1IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7CiswMDYxIDA2NTUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDcxMSAwNjcwIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MiAwNjcwIDA2NzAgMDcxMSAwMDYyOzAwNjEgMDY1MiAwNjcwIDA2NzAgMDcxMSAwMDYyOzAwNjEgMDY1MiAwNjcwIDA2NzAgMDcxMSAwMDYyOzAwNjEgMDY1MiAwNjcwIDA2NzAgMDcxMSAwMDYyOworMDA2MSAwNjcwIDA3MTEgMDY3MCAwNjUyIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RDYgMDA2MjswMEUwIDA1QUUgMDZENiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZENiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RDYgMDMxNSAwMDYyOworMDA2MSAwNkQ2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RDcgMDA2MjswMEUwIDA1QUUgMDZENyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZENyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RDcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RDcgMDMxNSAwMDYyOworMDA2MSAwNkQ3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RDggMDA2MjswMEUwIDA1QUUgMDZEOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEOCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RDggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RDggMDMxNSAwMDYyOworMDA2MSAwNkQ4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RDggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RDkgMDA2MjswMEUwIDA1QUUgMDZEOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEOSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RDkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RDkgMDMxNSAwMDYyOworMDA2MSAwNkQ5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RDkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2REEgMDA2MjswMEUwIDA1QUUgMDZEQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2REEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2REEgMDMxNSAwMDYyOworMDA2MSAwNkRBIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2REEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2REIgMDA2MjswMEUwIDA1QUUgMDZEQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2REIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2REIgMDMxNSAwMDYyOworMDA2MSAwNkRCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2REIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2REMgMDA2MjswMEUwIDA1QUUgMDZEQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2REMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2REMgMDMxNSAwMDYyOworMDA2MSAwNkRDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2REMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2REYgMDA2MjswMEUwIDA1QUUgMDZERiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZERiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2REYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2REYgMDMxNSAwMDYyOworMDA2MSAwNkRGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2REYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2REYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTAgMDA2MjswMEUwIDA1QUUgMDZFMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTAgMDMxNSAwMDYyOworMDA2MSAwNkUwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTEgMDA2MjswMEUwIDA1QUUgMDZFMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTEgMDMxNSAwMDYyOworMDA2MSAwNkUxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTIgMDA2MjswMEUwIDA1QUUgMDZFMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTIgMDMxNSAwMDYyOworMDA2MSAwNkUyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA2RTMgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkUzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkUzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkUzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkUzIDA1OUEgMDA2MjsKKzAwNjEgMDZFMyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNkUzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkUzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkUzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkUzIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkU0IDAwNjI7MDBFMCAwNUFFIDA2RTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkU0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkU0IDAzMTUgMDA2MjsKKzAwNjEgMDZFNCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkU3IDAwNjI7MDBFMCAwNUFFIDA2RTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkU3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkU3IDAzMTUgMDA2MjsKKzAwNjEgMDZFNyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkU3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkU4IDAwNjI7MDBFMCAwNUFFIDA2RTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTggMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkU4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkU4IDAzMTUgMDA2MjsKKzAwNjEgMDZFOCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkU4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkU4IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNkVBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFQSAwNTlBIDAwNjI7CiswMDYxIDA2RUEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDZFQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFQSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFQiAwMDYyOzAwRTAgMDVBRSAwNkVCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkVCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFQiAwMzE1IDAwNjI7CiswMDYxIDA2RUIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFQiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFQyAwMDYyOzAwRTAgMDVBRSAwNkVDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkVDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFQyAwMzE1IDAwNjI7CiswMDYxIDA2RUMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDZFRCAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RUQgMDU5QSAwMDYyOworMDA2MSAwNkVEIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA2RUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RUQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDBDNTUgMDcxMSAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NzAgMDcxMSAwNzExIDBDNTUgMDA2MjswMDYxIDA2NzAgMDcxMSAwNzExIDBDNTUgMDA2MjswMDYxIDA2NzAgMDcxMSAwNzExIDBDNTUgMDA2MjswMDYxIDA2NzAgMDcxMSAwNzExIDBDNTUgMDA2MjsKKzAwNjEgMDcxMSAwQzU1IDA3MTEgMDY3MCAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzMwIDAwNjI7MDBFMCAwNUFFIDA3MzAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzMwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMwIDAzMTUgMDA2MjsKKzAwNjEgMDczMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzMwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzMxIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczMSAwNTlBIDAwNjI7CiswMDYxIDA3MzEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczMSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczMiAwMDYyOzAwRTAgMDVBRSAwNzMyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczMiAwMzE1IDAwNjI7CiswMDYxIDA3MzIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczMyAwMDYyOzAwRTAgMDVBRSAwNzMzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczMyAwMzE1IDAwNjI7CiswMDYxIDA3MzMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczMyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczNCAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzQgMDU5QSAwMDYyOworMDA2MSAwNzM0IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3MzQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3MzUgMDA2MjswMEUwIDA1QUUgMDczNSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczNSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3MzUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzUgMDMxNSAwMDYyOworMDA2MSAwNzM1IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3MzUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3MzYgMDA2MjswMEUwIDA1QUUgMDczNiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczNiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3MzYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzYgMDMxNSAwMDYyOworMDA2MSAwNzM2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3MzYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3MzcgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM3IDA1OUEgMDA2MjsKKzAwNjEgMDczNyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzM3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM3IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzM4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOCAwNTlBIDAwNjI7CiswMDYxIDA3MzggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzkgMDU5QSAwMDYyOworMDA2MSAwNzM5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3MzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3M0EgMDA2MjswMEUwIDA1QUUgMDczQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczQSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3M0EgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3M0EgMDMxNSAwMDYyOworMDA2MSAwNzNBIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3M0EgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0EgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0EgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0EgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3M0IgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNCIDA1OUEgMDA2MjsKKzAwNjEgMDczQiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNCIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzNDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczQyAwNTlBIDAwNjI7CiswMDYxIDA3M0MgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczQyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczRCAwMDYyOzAwRTAgMDVBRSAwNzNEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczRCAwMzE1IDAwNjI7CiswMDYxIDA3M0QgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczRSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0UgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0UgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0UgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0UgMDU5QSAwMDYyOworMDA2MSAwNzNFIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3M0UgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0UgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0UgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0UgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3M0YgMDA2MjswMEUwIDA1QUUgMDczRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczRiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3M0YgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3M0YgMDMxNSAwMDYyOworMDA2MSAwNzNGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3M0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3M0YgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDAgMDA2MjswMEUwIDA1QUUgMDc0MCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDAgMDMxNSAwMDYyOworMDA2MSAwNzQwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDEgMDA2MjswMEUwIDA1QUUgMDc0MSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDEgMDMxNSAwMDYyOworMDA2MSAwNzQxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3NDIgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQyIDA1OUEgMDA2MjsKKzAwNjEgMDc0MiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzQyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQyIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzQzIDAwNjI7MDBFMCAwNUFFIDA3NDMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzQzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQzIDAzMTUgMDA2MjsKKzAwNjEgMDc0MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzQzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzQ0IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NCAwNTlBIDAwNjI7CiswMDYxIDA3NDQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDc0NCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0NSAwMDYyOzAwRTAgMDVBRSAwNzQ1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQ1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0NSAwMzE1IDAwNjI7CiswMDYxIDA3NDUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDc0NiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDYgMDU5QSAwMDYyOworMDA2MSAwNzQ2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3NDYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDcgMDA2MjswMEUwIDA1QUUgMDc0NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDcgMDMxNSAwMDYyOworMDA2MSAwNzQ3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3NDggMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ4IDA1OUEgMDA2MjsKKzAwNjEgMDc0OCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ4IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzQ5IDAwNjI7MDBFMCAwNUFFIDA3NDkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDkgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzQ5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQ5IDAzMTUgMDA2MjsKKzAwNjEgMDc0OSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzQ5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzRBIDAwNjI7MDBFMCAwNUFFIDA3NEEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NEEgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzRBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzRBIDAzMTUgMDA2MjsKKzAwNjEgMDc0QSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzRBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzRBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzRBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzRBIDAzMDAgMDMxNSAwMDYyOworMDA2MSAzMDk5IDA5M0MgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDA5M0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA5M0MgMzA5OSAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMDk0RCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwOTREIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA5NTEgMDA2MjswMEUwIDA1QUUgMDk1MSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1MSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA5NTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTEgMDMxNSAwMDYyOworMDA2MSAwOTUxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA5NTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA5NTIgMDA2MjswMDYxIDMwMkEgMDMxNiAwOTUyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwOTUyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwOTUyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwOTUyIDA1OUEgMDA2MjsKKzAwNjEgMDk1MiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwOTUyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwOTUyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwOTUyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwOTUyIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwOTUzIDAwNjI7MDBFMCAwNUFFIDA5NTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwOTUzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwOTUzIDAzMTUgMDA2MjsKKzAwNjEgMDk1MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwOTUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTUzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwOTU0IDAwNjI7MDBFMCAwNUFFIDA5NTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwOTU0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwOTU0IDAzMTUgMDA2MjsKKzAwNjEgMDk1NCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwOTU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwOTU0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAzMDk5IDA5M0MgMDMzNCAwOUJDIDAwNjI7MDA2MSAwMzM0IDA5M0MgMDlCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDlCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDlCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMDlCQyAzMDk5IDAwNjI7CiswMDYxIDA5QkMgMzA5OSAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMDlCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDlCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDlCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDlCQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMDlDRCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5Q0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5Q0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5Q0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDA5Q0QgMDVCMCAwMDYyOworMDA2MSAwOUNEIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDA5Q0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5Q0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5Q0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5Q0QgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDBBM0MgMDA2MjswMDYxIDAzMzQgMDkzQyAwQTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQTNDIDMwOTkgMDA2MjsKKzAwNjEgMEEzQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwQTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQTNDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwQTREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEE0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEE0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEE0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEE0RCAwNUIwIDAwNjI7CiswMDYxIDBBNEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMEE0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEE0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEE0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEE0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMzA5OSAwOTNDIDAzMzQgMEFCQyAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBQkMgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBQkMgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBQkMgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBQkMgMzA5OSAwMDYyOworMDA2MSAwQUJDIDMwOTkgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM0IDBBQkMgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBQkMgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBQkMgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBQkMgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBBQ0QgMDA2MjswMDYxIDMwOTkgMDk0RCAwQUNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQUNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQUNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQUNEIDA1QjAgMDA2MjsKKzAwNjEgMEFDRCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQUNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQUNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQUNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQUNEIDA5NEQgMDVCMCAwMDYyOworMDA2MSAzMDk5IDA5M0MgMDMzNCAwQjNDIDAwNjI7MDA2MSAwMzM0IDA5M0MgMEIzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEIzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEIzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEIzQyAzMDk5IDAwNjI7CiswMDYxIDBCM0MgMzA5OSAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMEIzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEIzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEIzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEIzQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEI0RCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCNEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCNEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCNEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCNEQgMDVCMCAwMDYyOworMDA2MSAwQjREIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBCNEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCNEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCNEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCNEQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBCQ0QgMDA2MjswMDYxIDMwOTkgMDk0RCAwQkNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQkNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQkNEIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQkNEIDA1QjAgMDA2MjsKKzAwNjEgMEJDRCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQkNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQkNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQkNEIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQkNEIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwQzREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEM0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEM0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEM0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEM0RCAwNUIwIDAwNjI7CiswMDYxIDBDNEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMEM0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEM0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEM0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEM0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMEM1NiAwQzU1IDA3MTEgMEM1NSAwMDYyOzAwNjEgMDcxMSAwQzU1IDBDNTUgMEM1NiAwMDYyOzAwNjEgMDcxMSAwQzU1IDBDNTUgMEM1NiAwMDYyOzAwNjEgMDcxMSAwQzU1IDBDNTUgMEM1NiAwMDYyOzAwNjEgMDcxMSAwQzU1IDBDNTUgMEM1NiAwMDYyOworMDA2MSAwQzU1IDBDNTYgMEM1NSAwNzExIDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7CiswMDYxIDBFMzggMEM1NiAwQzU1IDBDNTYgMDA2MjswMDYxIDBDNTUgMEM1NiAwQzU2IDBFMzggMDA2MjswMDYxIDBDNTUgMEM1NiAwQzU2IDBFMzggMDA2MjswMDYxIDBDNTUgMEM1NiAwQzU2IDBFMzggMDA2MjswMDYxIDBDNTUgMEM1NiAwQzU2IDBFMzggMDA2MjsKKzAwNjEgMEM1NiAwRTM4IDBDNTYgMEM1NSAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwQ0NEIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7CiswMDYxIDBDQ0QgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEQ0RCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOworMDA2MSAwRDREIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBEQ0EgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjsKKzAwNjEgMERDQSAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwRTQ4IDBFMzggMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7CiswMDYxIDBFMzggMEU0OCAwRTM4IDBDNTYgMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjsKKzAwNjEgMEU0OCAwRTM4IDBDNTYgMEUzOSAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOworMDA2MSAwRTM5IDBFNDggMEUzOCAwQzU2IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBFM0EgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjsKKzAwNjEgMEUzQSAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwRUI4IDBFNDggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7CiswMDYxIDBFNDggMEVCOCAwRTQ4IDBFMzggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjsKKzAwNjEgMEVCOCAwRTQ4IDBFMzggMEU0OSAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOworMDA2MSAwRTQ5IDBFQjggMEU0OCAwRTM4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7CiswMDYxIDBFQjggMEU0OCAwRTM4IDBFNEEgMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjsKKzAwNjEgMEU0QSAwRUI4IDBFNDggMEUzOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOworMDA2MSAwRUI4IDBFNDggMEUzOCAwRTRCIDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7CiswMDYxIDBFNEIgMEVCOCAwRTQ4IDBFMzggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjsKKzAwNjEgMEVDOCAwRUI4IDBFNDggMEVCOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOworMDA2MSAwRUI4IDBFQzggMEVCOCAwRTQ4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7CiswMDYxIDBFQzggMEVCOCAwRTQ4IDBFQjkgMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjsKKzAwNjEgMEVCOSAwRUM4IDBFQjggMEU0OCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOworMDA2MSAwRjcxIDBFQzggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7CiswMDYxIDBFQzggMEY3MSAwRUM4IDBFQjggMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjsKKzAwNjEgMEY3MSAwRUM4IDBFQjggMEVDOSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOworMDA2MSAwRUM5IDBGNzEgMEVDOCAwRUI4IDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7CiswMDYxIDBGNzEgMEVDOCAwRUI4IDBFQ0EgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjsKKzAwNjEgMEVDQSAwRjcxIDBFQzggMEVCOCAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOworMDA2MSAwRjcxIDBFQzggMEVCOCAwRUNCIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7CiswMDYxIDBFQ0IgMEY3MSAwRUM4IDBFQjggMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMEYxOCAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOworMDA2MSAwRjE4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDBGMTkgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjsKKzAwNjEgMEYxOSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwRjM1IDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7CiswMDYxIDBGMzUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMEYzNyAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOworMDA2MSAwRjM3IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDBGMzkgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjsKKzAwNjEgMEYzOSAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOworMDA2MSAwRjcyIDBGNzEgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7CiswMDYxIDBGNzEgMEY3MiAwRjcxIDBFQzggMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY3MiAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOworMDA2MSAwRjcyIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDAzMjEgMEY3NCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjsKKzAwNjEgMEY3NCAwMzIxIDBGNzQgMEY3MiAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjdBIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7CiswMDYxIDBGN0EgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY3QiAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOworMDA2MSAwRjdCIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDBGNzQgMEY3MiAwRjcxIDBGN0MgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjsKKzAwNjEgMEY3QyAwRjc0IDBGNzIgMEY3MSAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjdEIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7CiswMDYxIDBGN0QgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY4MCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOworMDA2MSAwRjgwIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDBGODIgMDA2MjswMEUwIDA1QUUgMEY4MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4MiAwMzE1IDAwNjI7MDBFMCAwNUFFIDBGODIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODIgMDMxNSAwMDYyOworMDA2MSAwRjgyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDBGODMgMDA2MjswMEUwIDA1QUUgMEY4MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDBGODMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODMgMDMxNSAwMDYyOworMDA2MSAwRjgzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBGODQgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjsKKzAwNjEgMEY4NCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwRjg2IDAwNjI7MDBFMCAwNUFFIDBGODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwRjg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwRjg2IDAzMTUgMDA2MjsKKzAwNjEgMEY4NiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwRjg3IDAwNjI7MDBFMCAwNUFFIDBGODcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwRjg3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwRjg3IDAzMTUgMDA2MjsKKzAwNjEgMEY4NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwRkM2IDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7CiswMDYxIDBGQzYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMzA5OSAwOTNDIDAzMzQgMTAzNyAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOworMDA2MSAxMDM3IDMwOTkgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDEwMzkgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjsKKzAwNjEgMTAzOSAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAxNzE0IDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7CiswMDYxIDE3MTQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMTczNCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOworMDA2MSAxNzM0IDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDE3RDIgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjsKKzAwNjEgMTdEMiAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwMzAwIDA1QUUgMUQxNkQgMThBOSAwMDYyOzAwRTAgMUQxNkQgMDVBRSAxOEE5IDAwNjI7MDA2MSAxRDE2RCAwNUFFIDE4QTkgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAxOEE5IDAwNjI7MDA2MSAxRDE2RCAwNUFFIDE4QTkgMDMwMCAwMDYyOworMDA2MSAxOEE5IDAzMDAgMDVBRSAxRDE2RCAwMDYyOzAwRTAgMUQxNkQgMThBOSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAxOEE5IDA1QUUgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMThBOSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAxOEE5IDA1QUUgMDMwMCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEQwIDAwNjI7MDBFMCAwNUFFIDIwRDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEQwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQwIDAzMTUgMDA2MjsKKzAwNjEgMjBEMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEQwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEQxIDAwNjI7MDBFMCAwNUFFIDIwRDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDEgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEQxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQxIDAzMTUgMDA2MjsKKzAwNjEgMjBEMSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEQxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEQxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBEMiAwMDYyOzAwNjEgMDMzNCAyMEQyIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEMiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDIgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQyIDA5M0MgMDA2MjsKKzAwNjEgMjBEMiAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRDIgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQyIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEMiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDIgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEQzIDAwNjI7MDA2MSAwMzM0IDIwRDMgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQzIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEMyAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDMgMDkzQyAwMDYyOworMDA2MSAyMEQzIDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBEMyAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDMgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQzIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEMyAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBENCAwMDYyOzAwRTAgMDVBRSAyMEQ0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ0IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBENCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENCAwMzE1IDAwNjI7CiswMDYxIDIwRDQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBENCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBENSAwMDYyOzAwRTAgMDVBRSAyMEQ1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ1IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBENSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENSAwMzE1IDAwNjI7CiswMDYxIDIwRDUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBENSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBENiAwMDYyOzAwRTAgMDVBRSAyMEQ2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ2IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBENiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENiAwMzE1IDAwNjI7CiswMDYxIDIwRDYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBENyAwMDYyOzAwRTAgMDVBRSAyMEQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQ3IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBENyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENyAwMzE1IDAwNjI7CiswMDYxIDIwRDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBENyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRDggMDA2MjswMDYxIDAzMzQgMjBEOCAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDggMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQ4IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEOCAwOTNDIDAwNjI7CiswMDYxIDIwRDggMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEQ4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEOCAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDggMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQ4IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBEOSAwMDYyOzAwNjEgMDMzNCAyMEQ5IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEOSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDkgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQ5IDA5M0MgMDA2MjsKKzAwNjEgMjBEOSAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRDkgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQ5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEOSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDkgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMERBIDAwNjI7MDA2MSAwMzM0IDIwREEgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMERBIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEQSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwREEgMDkzQyAwMDYyOworMDA2MSAyMERBIDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBEQSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwREEgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMERBIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEQSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBEQiAwMDYyOzAwRTAgMDVBRSAyMERCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMERCIDAzMTUgMDA2MjswMEUwIDA1QUUgMjBEQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEQiAwMzE1IDAwNjI7CiswMDYxIDIwREIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBEQyAwMDYyOzAwRTAgMDVBRSAyMERDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMERDIDAzMTUgMDA2MjswMEUwIDA1QUUgMjBEQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEQyAwMzE1IDAwNjI7CiswMDYxIDIwREMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBFMSAwMDYyOzAwRTAgMDVBRSAyMEUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEUxIDAzMTUgMDA2MjswMEUwIDA1QUUgMjBFMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBFMSAwMzE1IDAwNjI7CiswMDYxIDIwRTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRTUgMDA2MjswMDYxIDAzMzQgMjBFNSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRTUgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEU1IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFNSAwOTNDIDAwNjI7CiswMDYxIDIwRTUgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEU1IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFNSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRTUgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEU1IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBFNiAwMDYyOzAwNjEgMDMzNCAyMEU2IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFNiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRTYgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEU2IDA5M0MgMDA2MjsKKzAwNjEgMjBFNiAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRTYgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEU2IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFNiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRTYgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRTcgMDA2MjswMEUwIDA1QUUgMjBFNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBFNyAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRTcgMDMxNSAwMDYyOworMDA2MSAyMEU3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDIwRTggMDA2MjswMDYxIDMwMkEgMDMxNiAyMEU4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAyMEU4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAyMEU4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAyMEU4IDA1OUEgMDA2MjsKKzAwNjEgMjBFOCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAyMEU4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAyMEU4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAyMEU4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAyMEU4IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEU5IDAwNjI7MDBFMCAwNUFFIDIwRTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRTkgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEU5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEU5IDAzMTUgMDA2MjsKKzAwNjEgMjBFOSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEU5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBFQSAwMDYyOzAwNjEgMDMzNCAyMEVBIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFQSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRUEgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEVBIDA5M0MgMDA2MjsKKzAwNjEgMjBFQSAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRUEgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEVBIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFQSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRUEgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDAzMTYgMzAyQSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjsKKzAwNjEgMzAyQSAwMzE2IDMwMkEgMDMxQiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOworMDA2MSAwMzAwIDA1QUUgMUQxNkQgMzAyQiAwMDYyOzAwRTAgMUQxNkQgMDVBRSAzMDJCIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDMwMkIgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAzMDJCIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDMwMkIgMDMwMCAwMDYyOworMDA2MSAzMDJCIDAzMDAgMDVBRSAxRDE2RCAwMDYyOzAwRTAgMUQxNkQgMzAyQiAwNUFFIDAwNjI7MDA2MSAxRDE2RCAzMDJCIDA1QUUgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMzAyQiAwNUFFIDAwNjI7MDA2MSAxRDE2RCAzMDJCIDA1QUUgMDMwMCAwMDYyOworMDA2MSAwMzYyIDAzMTUgMDMwMCAzMDJDIDAwNjI7MDBFMCAwMzE1IDMwMkMgMDM2MiAwMDYyOzAwNjEgMDMwMCAwMzE1IDMwMkMgMDM2MiAwMDYyOzAwRTAgMDMxNSAzMDJDIDAzNjIgMDA2MjswMDYxIDAzMDAgMDMxNSAzMDJDIDAzNjIgMDA2MjsKKzAwNjEgMzAyQyAwMzYyIDAzMTUgMDMwMCAwMDYyOzAwRTAgMzAyQyAwMzE1IDAzNjIgMDA2MjswMDYxIDAzMDAgMzAyQyAwMzE1IDAzNjIgMDA2MjswMEUwIDMwMkMgMDMxNSAwMzYyIDAwNjI7MDA2MSAwMzAwIDMwMkMgMDMxNSAwMzYyIDAwNjI7CiswMDYxIDMwMkUgMDU5QSAwMzE2IDMwMkQgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjsKKzAwNjEgMzAyRCAzMDJFIDA1OUEgMDMxNiAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOworMDA2MSAxRDE2RCAzMDJFIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjsKKzAwNjEgMzAyRSAxRDE2RCAzMDJFIDA1OUEgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7CiswMDYxIDFEMTZEIDMwMkUgMDU5QSAzMDJGIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRiAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkYgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJGIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRiAxRDE2RCAwMDYyOworMDA2MSAzMDJGIDFEMTZEIDMwMkUgMDU5QSAwMDYyOzAwNjEgMDU5QSAzMDJGIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRiAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkYgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJGIDMwMkUgMUQxNkQgMDA2MjsKKzAwNjEgMDk0RCAzMDk5IDA5M0MgMzA5OSAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOworMDA2MSAzMDk5IDA5NEQgMzA5OSAwOTNDIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7CiswMDYxIDA5NEQgMzA5OSAwOTNDIDMwOUEgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjsKKzAwNjEgMzA5QSAwOTREIDMwOTkgMDkzQyAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOworMDA2MSAwNjRCIEZCMUUgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7CiswMDYxIEZCMUUgMDY0QiBGQjFFIDA1QzIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjswMDYxIDA1QzIgRkIxRSBGQjFFIDA2NEIgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgRkUyMCAwMDYyOzAwRTAgMDVBRSBGRTIwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIwIDAzMTUgMDA2MjswMEUwIDA1QUUgRkUyMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMCAwMzE1IDAwNjI7CiswMDYxIEZFMjAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgRkUyMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgRkUyMSAwMDYyOzAwRTAgMDVBRSBGRTIxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIxIDAzMTUgMDA2MjswMEUwIDA1QUUgRkUyMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMSAwMzE1IDAwNjI7CiswMDYxIEZFMjEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgRkUyMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgRkUyMiAwMDYyOzAwRTAgMDVBRSBGRTIyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIyIDAzMTUgMDA2MjswMEUwIDA1QUUgRkUyMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMiAwMzE1IDAwNjI7CiswMDYxIEZFMjIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgRkUyMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgRkUyMyAwMDYyOzAwRTAgMDVBRSBGRTIzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCBGRTIzIDAzMTUgMDA2MjswMEUwIDA1QUUgRkUyMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMyAwMzE1IDAwNjI7CiswMDYxIEZFMjMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgRkUyMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgRkUyMyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNjUgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjUgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY1IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NSAzMDJBIDAwNjI7CiswMDYxIDFEMTY1IDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTY1IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2NSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNjUgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTY1IDAzMUIgMzAyQSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE2NiAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY2IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjYgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY2IDMwMkEgMDA2MjsKKzAwNjEgMUQxNjYgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNjYgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTY2IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2NiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNjYgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAxRDE2NyAwMDYyOzAwNjEgMDMzNCAxRDE2NyAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY3IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjcgMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2NyAwOTNDIDAwNjI7CiswMDYxIDFEMTY3IDA5M0MgMDMzNCAwMDYyOzAwNjEgMUQxNjcgMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2NyAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY3IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjcgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAxRDE2OCAwMDYyOzAwNjEgMDMzNCAxRDE2OCAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY4IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjggMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2OCAwOTNDIDAwNjI7CiswMDYxIDFEMTY4IDA5M0MgMDMzNCAwMDYyOzAwNjEgMUQxNjggMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2OCAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjggMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAxRDE2OSAwMDYyOzAwNjEgMDMzNCAxRDE2OSAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY5IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjkgMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2OSAwOTNDIDAwNjI7CiswMDYxIDFEMTY5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMUQxNjkgMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2OSAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjkgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA1QUUgMUQxNkQgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjswMDYxIDMwMkUgMUQxNkQgMUQxNkQgMDVBRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7CiswMDYxIDFEMTZEIDA1QUUgMUQxNkQgMzAyRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjswMDYxIDMwMkUgMUQxNkQgMUQxNkQgMDVBRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDFEMTZFIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkUgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZFIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkUgMzAyQSAwMDYyOworMDA2MSAxRDE2RSAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAxRDE2RSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNkUgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTZFIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2RSAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNkYgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkYgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZGIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RiAzMDJBIDAwNjI7CiswMDYxIDFEMTZGIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTZGIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2RiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNkYgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTZGIDAzMUIgMzAyQSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE3MCAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcwIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MCAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzAgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcwIDMwMkEgMDA2MjsKKzAwNjEgMUQxNzAgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNzAgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcwIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MCAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzAgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDFEMTcxIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzEgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcxIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzEgMzAyQSAwMDYyOworMDA2MSAxRDE3MSAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAxRDE3MSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzEgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcxIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MSAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNzIgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcyIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MiAzMDJBIDAwNjI7CiswMDYxIDFEMTcyIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTcyIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcyIDAzMUIgMzAyQSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE3QiAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdCIDA1OUEgMDA2MjsKKzAwNjEgMUQxN0IgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxN0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0IgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTdDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0MgMDU5QSAwMDYyOworMDA2MSAxRDE3QyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE3QyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3QyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxN0QgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0QgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RCAwNTlBIDAwNjI7CiswMDYxIDFEMTdEIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTdEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0QgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdEIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE3RSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0UgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdFIDA1OUEgMDA2MjsKKzAwNjEgMUQxN0UgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxN0UgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0UgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTdGIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0YgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0YgMDU5QSAwMDYyOworMDA2MSAxRDE3RiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE3RiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0YgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxODAgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MCAwNTlBIDAwNjI7CiswMDYxIDFEMTgwIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTgwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgwIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE4MSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgxIDA1OUEgMDA2MjsKKzAwNjEgMUQxODEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxODEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTgyIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODIgMDU5QSAwMDYyOworMDA2MSAxRDE4MiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE4MiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxODUgMDA2MjswMEUwIDA1QUUgMUQxODUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg1IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxODUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg1IDAzMTUgMDA2MjsKKzAwNjEgMUQxODUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxODUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMTg2IDAwNjI7MDBFMCAwNUFFIDFEMTg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4NiAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMTg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4NiAwMzE1IDAwNjI7CiswMDYxIDFEMTg2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMTg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDE4NyAwMDYyOzAwRTAgMDVBRSAxRDE4NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODcgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDE4NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODcgMDMxNSAwMDYyOworMDA2MSAxRDE4NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDE4NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxODggMDA2MjswMEUwIDA1QUUgMUQxODggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg4IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxODggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg4IDAzMTUgMDA2MjsKKzAwNjEgMUQxODggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxODggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMTg5IDAwNjI7MDBFMCAwNUFFIDFEMTg5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4OSAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMTg5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4OSAwMzE1IDAwNjI7CiswMDYxIDFEMTg5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMTg5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE4QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThBIDA1OUEgMDA2MjsKKzAwNjEgMUQxOEEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxOEEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMThBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4QSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxOEEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMThCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEIgMDU5QSAwMDYyOworMDA2MSAxRDE4QiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE4QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxOEIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMThCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4QiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxQUEgMDA2MjswMEUwIDA1QUUgMUQxQUEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFBIDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxQUEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFBIDAzMTUgMDA2MjsKKzAwNjEgMUQxQUEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxQUEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMUFCIDAwNjI7MDBFMCAwNUFFIDFEMUFCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDFBQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMUFCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDFBQiAwMzE1IDAwNjI7CiswMDYxIDFEMUFCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMUFCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDFBQyAwMDYyOzAwRTAgMDVBRSAxRDFBQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUMgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDFBQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUMgMDMxNSAwMDYyOworMDA2MSAxRDFBQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDFBQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxQUQgMDA2MjswMEUwIDA1QUUgMUQxQUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFEIDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxQUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFEIDAzMTUgMDA2MjsKKzAwNjEgMUQxQUQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxQUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUQgMDMwMCAwMzE1IDAwNjI7CisjCisjIEVORCBPRiBGSUxFCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Ob3JtYWxpemF0aW9uVGVzdC50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Ob3JtYWxpemF0aW9uVGVzdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI1ZTRmNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL05vcm1hbGl6YXRpb25UZXN0LnR4dApAQCAtMCwwICsxLDE3NTU4IEBACisjIE5vcm1hbGl6YXRpb25UZXN0LTQuMS4wLnR4dAorIyBEYXRlOiAyMDA1LTAzLTI2LCAwMDozMzoyOSBHTVQgW01EXQorIworIyBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZQorIyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuCisjIEZvciB0ZXJtcyBvZiB1c2UsIHNlZSBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3Rlcm1zX29mX3VzZS5odG1sCisjIEZvciBkb2N1bWVudGF0aW9uLCBzZWUgVUNELmh0bWwKKyMKKyMgTm9ybWFsaXphdGlvbiBUZXN0IFN1aXRlCisjIEZvcm1hdDoKKyMKKyMgICBDb2x1bW5zIChjMSwgYzIsLi4uKSBhcmUgc2VwYXJhdGVkIGJ5IHNlbWljb2xvbnMKKyMgICBDb21tZW50cyBhcmUgaW5kaWNhdGVkIHdpdGggaGFzaCBtYXJrcworIworIyBDT05GT1JNQU5DRToKKyMgMS4gVGhlIGZvbGxvd2luZyBpbnZhcmlhbnRzIG11c3QgYmUgdHJ1ZSBmb3IgYWxsIGNvbmZvcm1hbnQgaW1wbGVtZW50YXRpb25zCisjCisjICAgIE5GQworIyAgICAgIGMyID09ICBORkMoYzEpID09ICBORkMoYzIpID09ICBORkMoYzMpCisjICAgICAgYzQgPT0gIE5GQyhjNCkgPT0gIE5GQyhjNSkKKyMKKyMgICAgTkZECisjICAgICAgYzMgPT0gIE5GRChjMSkgPT0gIE5GRChjMikgPT0gIE5GRChjMykKKyMgICAgICBjNSA9PSAgTkZEKGM0KSA9PSAgTkZEKGM1KQorIworIyAgICBORktDCisjICAgICAgYzQgPT0gTkZLQyhjMSkgPT0gTkZLQyhjMikgPT0gTkZLQyhjMykgPT0gTkZLQyhjNCkgPT0gTkZLQyhjNSkKKyMKKyMgICAgTkZLRAorIyAgICAgIGM1ID09IE5GS0QoYzEpID09IE5GS0QoYzIpID09IE5GS0QoYzMpID09IE5GS0QoYzQpID09IE5GS0QoYzUpCisjCisjIDIuIEZvciBldmVyeSBjb2RlIHBvaW50IFggYXNzaWduZWQgaW4gdGhpcyB2ZXJzaW9uIG9mIFVuaWNvZGUgdGhhdCBpcyBub3Qgc3BlY2lmaWNhbGx5CisjICAgIGxpc3RlZCBpbiBQYXJ0IDEsIHRoZSBmb2xsb3dpbmcgaW52YXJpYW50cyBtdXN0IGJlIHRydWUgZm9yIGFsbCBjb25mb3JtYW50CisjICAgIGltcGxlbWVudGF0aW9uczoKKyMKKyMgICAgICBYID09IE5GQyhYKSA9PSBORkQoWCkgPT0gTkZLQyhYKSA9PSBORktEKFgpCisjCitAUGFydDAgIyBTcGVjaWZpYyBjYXNlcworIworMUUwQTsxRTBBOzAwNDQgMDMwNzsxRTBBOzAwNDQgMDMwNzsKKzFFMEM7MUUwQzswMDQ0IDAzMjM7MUUwQzswMDQ0IDAzMjM7CisxRTBBIDAzMjM7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsKKzFFMEMgMDMwNzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OworMDA0NCAwMzA3IDAzMjM7MUUwQyAwMzA3OzAwNDQgMDMyMyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsKKzAwNDQgMDMyMyAwMzA3OzFFMEMgMDMwNzswMDQ0IDAzMjMgMDMwNzsxRTBDIDAzMDc7MDA0NCAwMzIzIDAzMDc7CisxRTBBIDAzMUI7MUUwQSAwMzFCOzAwNDQgMDMxQiAwMzA3OzFFMEEgMDMxQjswMDQ0IDAzMUIgMDMwNzsKKzFFMEMgMDMxQjsxRTBDIDAzMUI7MDA0NCAwMzFCIDAzMjM7MUUwQyAwMzFCOzAwNDQgMDMxQiAwMzIzOworMUUwQSAwMzFCIDAzMjM7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OworMUUwQyAwMzFCIDAzMDc7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OworMDA0NCAwMzFCIDAzMDcgMDMyMzsxRTBDIDAzMUIgMDMwNzswMDQ0IDAzMUIgMDMyMyAwMzA3OzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7CiswMDQ0IDAzMUIgMDMyMyAwMzA3OzFFMEMgMDMxQiAwMzA3OzAwNDQgMDMxQiAwMzIzIDAzMDc7MUUwQyAwMzFCIDAzMDc7MDA0NCAwMzFCIDAzMjMgMDMwNzsKKzAwQzg7MDBDODswMDQ1IDAzMDA7MDBDODswMDQ1IDAzMDA7CiswMTEyOzAxMTI7MDA0NSAwMzA0OzAxMTI7MDA0NSAwMzA0OworMDA0NSAwMzAwOzAwQzg7MDA0NSAwMzAwOzAwQzg7MDA0NSAwMzAwOworMDA0NSAwMzA0OzAxMTI7MDA0NSAwMzA0OzAxMTI7MDA0NSAwMzA0OworMUUxNDsxRTE0OzAwNDUgMDMwNCAwMzAwOzFFMTQ7MDA0NSAwMzA0IDAzMDA7CiswMTEyIDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsxRTE0OzAwNDUgMDMwNCAwMzAwOworMUUxNCAwMzA0OzFFMTQgMDMwNDswMDQ1IDAzMDQgMDMwMCAwMzA0OzFFMTQgMDMwNDswMDQ1IDAzMDQgMDMwMCAwMzA0OworMDA0NSAwMzA0IDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsxRTE0OzAwNDUgMDMwNCAwMzAwOworMDA0NSAwMzAwIDAzMDQ7MDBDOCAwMzA0OzAwNDUgMDMwMCAwMzA0OzAwQzggMDMwNDswMDQ1IDAzMDAgMDMwNDsKKzA1QjggMDVCOSAwNUIxIDA1OTEgMDVDMyAwNUIwIDA1QUMgMDU5RjswNUIxIDA1QjggMDVCOSAwNTkxIDA1QzMgMDVCMCAwNUFDIDA1OUY7MDVCMSAwNUI4IDA1QjkgMDU5MSAwNUMzIDA1QjAgMDVBQyAwNTlGOzA1QjEgMDVCOCAwNUI5IDA1OTEgMDVDMyAwNUIwIDA1QUMgMDU5RjswNUIxIDA1QjggMDVCOSAwNTkxIDA1QzMgMDVCMCAwNUFDIDA1OUY7CiswNTkyIDA1QjcgMDVCQyAwNUE1IDA1QjAgMDVDMCAwNUM0IDA1QUQ7MDVCMCAwNUI3IDA1QkMgMDVBNSAwNTkyIDA1QzAgMDVBRCAwNUM0OzA1QjAgMDVCNyAwNUJDIDA1QTUgMDU5MiAwNUMwIDA1QUQgMDVDNDswNUIwIDA1QjcgMDVCQyAwNUE1IDA1OTIgMDVDMCAwNUFEIDA1QzQ7MDVCMCAwNUI3IDA1QkMgMDVBNSAwNTkyIDA1QzAgMDVBRCAwNUM0OworIworQFBhcnQxICMgQ2hhcmFjdGVyIGJ5IGNoYXJhY3RlciB0ZXN0CisjIEFsbCBjaGFyYWN0ZXJzIG5vdCBleHBsaWNpdGx5IG9jY3VycmluZyBpbiBjMSBvZiBQYXJ0IDEgaGF2ZSBpZGVudGljYWwgTkZDLCBELCBLQywgS0QgZm9ybXMuCisjCiswMEEwOzAwQTA7MDBBMDswMDIwOzAwMjA7CiswMEE4OzAwQTg7MDBBODswMDIwIDAzMDg7MDAyMCAwMzA4OworMDBBQTswMEFBOzAwQUE7MDA2MTswMDYxOworMDBBRjswMEFGOzAwQUY7MDAyMCAwMzA0OzAwMjAgMDMwNDsKKzAwQjI7MDBCMjswMEIyOzAwMzI7MDAzMjsKKzAwQjM7MDBCMzswMEIzOzAwMzM7MDAzMzsKKzAwQjQ7MDBCNDswMEI0OzAwMjAgMDMwMTswMDIwIDAzMDE7CiswMEI1OzAwQjU7MDBCNTswM0JDOzAzQkM7CiswMEI4OzAwQjg7MDBCODswMDIwIDAzMjc7MDAyMCAwMzI3OworMDBCOTswMEI5OzAwQjk7MDAzMTswMDMxOworMDBCQTswMEJBOzAwQkE7MDA2RjswMDZGOworMDBCQzswMEJDOzAwQkM7MDAzMSAyMDQ0IDAwMzQ7MDAzMSAyMDQ0IDAwMzQ7CiswMEJEOzAwQkQ7MDBCRDswMDMxIDIwNDQgMDAzMjswMDMxIDIwNDQgMDAzMjsKKzAwQkU7MDBCRTswMEJFOzAwMzMgMjA0NCAwMDM0OzAwMzMgMjA0NCAwMDM0OworMDBDMDswMEMwOzAwNDEgMDMwMDswMEMwOzAwNDEgMDMwMDsKKzAwQzE7MDBDMTswMDQxIDAzMDE7MDBDMTswMDQxIDAzMDE7CiswMEMyOzAwQzI7MDA0MSAwMzAyOzAwQzI7MDA0MSAwMzAyOworMDBDMzswMEMzOzAwNDEgMDMwMzswMEMzOzAwNDEgMDMwMzsKKzAwQzQ7MDBDNDswMDQxIDAzMDg7MDBDNDswMDQxIDAzMDg7CiswMEM1OzAwQzU7MDA0MSAwMzBBOzAwQzU7MDA0MSAwMzBBOworMDBDNzswMEM3OzAwNDMgMDMyNzswMEM3OzAwNDMgMDMyNzsKKzAwQzg7MDBDODswMDQ1IDAzMDA7MDBDODswMDQ1IDAzMDA7CiswMEM5OzAwQzk7MDA0NSAwMzAxOzAwQzk7MDA0NSAwMzAxOworMDBDQTswMENBOzAwNDUgMDMwMjswMENBOzAwNDUgMDMwMjsKKzAwQ0I7MDBDQjswMDQ1IDAzMDg7MDBDQjswMDQ1IDAzMDg7CiswMENDOzAwQ0M7MDA0OSAwMzAwOzAwQ0M7MDA0OSAwMzAwOworMDBDRDswMENEOzAwNDkgMDMwMTswMENEOzAwNDkgMDMwMTsKKzAwQ0U7MDBDRTswMDQ5IDAzMDI7MDBDRTswMDQ5IDAzMDI7CiswMENGOzAwQ0Y7MDA0OSAwMzA4OzAwQ0Y7MDA0OSAwMzA4OworMDBEMTswMEQxOzAwNEUgMDMwMzswMEQxOzAwNEUgMDMwMzsKKzAwRDI7MDBEMjswMDRGIDAzMDA7MDBEMjswMDRGIDAzMDA7CiswMEQzOzAwRDM7MDA0RiAwMzAxOzAwRDM7MDA0RiAwMzAxOworMDBENDswMEQ0OzAwNEYgMDMwMjswMEQ0OzAwNEYgMDMwMjsKKzAwRDU7MDBENTswMDRGIDAzMDM7MDBENTswMDRGIDAzMDM7CiswMEQ2OzAwRDY7MDA0RiAwMzA4OzAwRDY7MDA0RiAwMzA4OworMDBEOTswMEQ5OzAwNTUgMDMwMDswMEQ5OzAwNTUgMDMwMDsKKzAwREE7MDBEQTswMDU1IDAzMDE7MDBEQTswMDU1IDAzMDE7CiswMERCOzAwREI7MDA1NSAwMzAyOzAwREI7MDA1NSAwMzAyOworMDBEQzswMERDOzAwNTUgMDMwODswMERDOzAwNTUgMDMwODsKKzAwREQ7MDBERDswMDU5IDAzMDE7MDBERDswMDU5IDAzMDE7CiswMEUwOzAwRTA7MDA2MSAwMzAwOzAwRTA7MDA2MSAwMzAwOworMDBFMTswMEUxOzAwNjEgMDMwMTswMEUxOzAwNjEgMDMwMTsKKzAwRTI7MDBFMjswMDYxIDAzMDI7MDBFMjswMDYxIDAzMDI7CiswMEUzOzAwRTM7MDA2MSAwMzAzOzAwRTM7MDA2MSAwMzAzOworMDBFNDswMEU0OzAwNjEgMDMwODswMEU0OzAwNjEgMDMwODsKKzAwRTU7MDBFNTswMDYxIDAzMEE7MDBFNTswMDYxIDAzMEE7CiswMEU3OzAwRTc7MDA2MyAwMzI3OzAwRTc7MDA2MyAwMzI3OworMDBFODswMEU4OzAwNjUgMDMwMDswMEU4OzAwNjUgMDMwMDsKKzAwRTk7MDBFOTswMDY1IDAzMDE7MDBFOTswMDY1IDAzMDE7CiswMEVBOzAwRUE7MDA2NSAwMzAyOzAwRUE7MDA2NSAwMzAyOworMDBFQjswMEVCOzAwNjUgMDMwODswMEVCOzAwNjUgMDMwODsKKzAwRUM7MDBFQzswMDY5IDAzMDA7MDBFQzswMDY5IDAzMDA7CiswMEVEOzAwRUQ7MDA2OSAwMzAxOzAwRUQ7MDA2OSAwMzAxOworMDBFRTswMEVFOzAwNjkgMDMwMjswMEVFOzAwNjkgMDMwMjsKKzAwRUY7MDBFRjswMDY5IDAzMDg7MDBFRjswMDY5IDAzMDg7CiswMEYxOzAwRjE7MDA2RSAwMzAzOzAwRjE7MDA2RSAwMzAzOworMDBGMjswMEYyOzAwNkYgMDMwMDswMEYyOzAwNkYgMDMwMDsKKzAwRjM7MDBGMzswMDZGIDAzMDE7MDBGMzswMDZGIDAzMDE7CiswMEY0OzAwRjQ7MDA2RiAwMzAyOzAwRjQ7MDA2RiAwMzAyOworMDBGNTswMEY1OzAwNkYgMDMwMzswMEY1OzAwNkYgMDMwMzsKKzAwRjY7MDBGNjswMDZGIDAzMDg7MDBGNjswMDZGIDAzMDg7CiswMEY5OzAwRjk7MDA3NSAwMzAwOzAwRjk7MDA3NSAwMzAwOworMDBGQTswMEZBOzAwNzUgMDMwMTswMEZBOzAwNzUgMDMwMTsKKzAwRkI7MDBGQjswMDc1IDAzMDI7MDBGQjswMDc1IDAzMDI7CiswMEZDOzAwRkM7MDA3NSAwMzA4OzAwRkM7MDA3NSAwMzA4OworMDBGRDswMEZEOzAwNzkgMDMwMTswMEZEOzAwNzkgMDMwMTsKKzAwRkY7MDBGRjswMDc5IDAzMDg7MDBGRjswMDc5IDAzMDg7CiswMTAwOzAxMDA7MDA0MSAwMzA0OzAxMDA7MDA0MSAwMzA0OworMDEwMTswMTAxOzAwNjEgMDMwNDswMTAxOzAwNjEgMDMwNDsKKzAxMDI7MDEwMjswMDQxIDAzMDY7MDEwMjswMDQxIDAzMDY7CiswMTAzOzAxMDM7MDA2MSAwMzA2OzAxMDM7MDA2MSAwMzA2OworMDEwNDswMTA0OzAwNDEgMDMyODswMTA0OzAwNDEgMDMyODsKKzAxMDU7MDEwNTswMDYxIDAzMjg7MDEwNTswMDYxIDAzMjg7CiswMTA2OzAxMDY7MDA0MyAwMzAxOzAxMDY7MDA0MyAwMzAxOworMDEwNzswMTA3OzAwNjMgMDMwMTswMTA3OzAwNjMgMDMwMTsKKzAxMDg7MDEwODswMDQzIDAzMDI7MDEwODswMDQzIDAzMDI7CiswMTA5OzAxMDk7MDA2MyAwMzAyOzAxMDk7MDA2MyAwMzAyOworMDEwQTswMTBBOzAwNDMgMDMwNzswMTBBOzAwNDMgMDMwNzsKKzAxMEI7MDEwQjswMDYzIDAzMDc7MDEwQjswMDYzIDAzMDc7CiswMTBDOzAxMEM7MDA0MyAwMzBDOzAxMEM7MDA0MyAwMzBDOworMDEwRDswMTBEOzAwNjMgMDMwQzswMTBEOzAwNjMgMDMwQzsKKzAxMEU7MDEwRTswMDQ0IDAzMEM7MDEwRTswMDQ0IDAzMEM7CiswMTBGOzAxMEY7MDA2NCAwMzBDOzAxMEY7MDA2NCAwMzBDOworMDExMjswMTEyOzAwNDUgMDMwNDswMTEyOzAwNDUgMDMwNDsKKzAxMTM7MDExMzswMDY1IDAzMDQ7MDExMzswMDY1IDAzMDQ7CiswMTE0OzAxMTQ7MDA0NSAwMzA2OzAxMTQ7MDA0NSAwMzA2OworMDExNTswMTE1OzAwNjUgMDMwNjswMTE1OzAwNjUgMDMwNjsKKzAxMTY7MDExNjswMDQ1IDAzMDc7MDExNjswMDQ1IDAzMDc7CiswMTE3OzAxMTc7MDA2NSAwMzA3OzAxMTc7MDA2NSAwMzA3OworMDExODswMTE4OzAwNDUgMDMyODswMTE4OzAwNDUgMDMyODsKKzAxMTk7MDExOTswMDY1IDAzMjg7MDExOTswMDY1IDAzMjg7CiswMTFBOzAxMUE7MDA0NSAwMzBDOzAxMUE7MDA0NSAwMzBDOworMDExQjswMTFCOzAwNjUgMDMwQzswMTFCOzAwNjUgMDMwQzsKKzAxMUM7MDExQzswMDQ3IDAzMDI7MDExQzswMDQ3IDAzMDI7CiswMTFEOzAxMUQ7MDA2NyAwMzAyOzAxMUQ7MDA2NyAwMzAyOworMDExRTswMTFFOzAwNDcgMDMwNjswMTFFOzAwNDcgMDMwNjsKKzAxMUY7MDExRjswMDY3IDAzMDY7MDExRjswMDY3IDAzMDY7CiswMTIwOzAxMjA7MDA0NyAwMzA3OzAxMjA7MDA0NyAwMzA3OworMDEyMTswMTIxOzAwNjcgMDMwNzswMTIxOzAwNjcgMDMwNzsKKzAxMjI7MDEyMjswMDQ3IDAzMjc7MDEyMjswMDQ3IDAzMjc7CiswMTIzOzAxMjM7MDA2NyAwMzI3OzAxMjM7MDA2NyAwMzI3OworMDEyNDswMTI0OzAwNDggMDMwMjswMTI0OzAwNDggMDMwMjsKKzAxMjU7MDEyNTswMDY4IDAzMDI7MDEyNTswMDY4IDAzMDI7CiswMTI4OzAxMjg7MDA0OSAwMzAzOzAxMjg7MDA0OSAwMzAzOworMDEyOTswMTI5OzAwNjkgMDMwMzswMTI5OzAwNjkgMDMwMzsKKzAxMkE7MDEyQTswMDQ5IDAzMDQ7MDEyQTswMDQ5IDAzMDQ7CiswMTJCOzAxMkI7MDA2OSAwMzA0OzAxMkI7MDA2OSAwMzA0OworMDEyQzswMTJDOzAwNDkgMDMwNjswMTJDOzAwNDkgMDMwNjsKKzAxMkQ7MDEyRDswMDY5IDAzMDY7MDEyRDswMDY5IDAzMDY7CiswMTJFOzAxMkU7MDA0OSAwMzI4OzAxMkU7MDA0OSAwMzI4OworMDEyRjswMTJGOzAwNjkgMDMyODswMTJGOzAwNjkgMDMyODsKKzAxMzA7MDEzMDswMDQ5IDAzMDc7MDEzMDswMDQ5IDAzMDc7CiswMTMyOzAxMzI7MDEzMjswMDQ5IDAwNEE7MDA0OSAwMDRBOworMDEzMzswMTMzOzAxMzM7MDA2OSAwMDZBOzAwNjkgMDA2QTsKKzAxMzQ7MDEzNDswMDRBIDAzMDI7MDEzNDswMDRBIDAzMDI7CiswMTM1OzAxMzU7MDA2QSAwMzAyOzAxMzU7MDA2QSAwMzAyOworMDEzNjswMTM2OzAwNEIgMDMyNzswMTM2OzAwNEIgMDMyNzsKKzAxMzc7MDEzNzswMDZCIDAzMjc7MDEzNzswMDZCIDAzMjc7CiswMTM5OzAxMzk7MDA0QyAwMzAxOzAxMzk7MDA0QyAwMzAxOworMDEzQTswMTNBOzAwNkMgMDMwMTswMTNBOzAwNkMgMDMwMTsKKzAxM0I7MDEzQjswMDRDIDAzMjc7MDEzQjswMDRDIDAzMjc7CiswMTNDOzAxM0M7MDA2QyAwMzI3OzAxM0M7MDA2QyAwMzI3OworMDEzRDswMTNEOzAwNEMgMDMwQzswMTNEOzAwNEMgMDMwQzsKKzAxM0U7MDEzRTswMDZDIDAzMEM7MDEzRTswMDZDIDAzMEM7CiswMTNGOzAxM0Y7MDEzRjswMDRDIDAwQjc7MDA0QyAwMEI3OworMDE0MDswMTQwOzAxNDA7MDA2QyAwMEI3OzAwNkMgMDBCNzsKKzAxNDM7MDE0MzswMDRFIDAzMDE7MDE0MzswMDRFIDAzMDE7CiswMTQ0OzAxNDQ7MDA2RSAwMzAxOzAxNDQ7MDA2RSAwMzAxOworMDE0NTswMTQ1OzAwNEUgMDMyNzswMTQ1OzAwNEUgMDMyNzsKKzAxNDY7MDE0NjswMDZFIDAzMjc7MDE0NjswMDZFIDAzMjc7CiswMTQ3OzAxNDc7MDA0RSAwMzBDOzAxNDc7MDA0RSAwMzBDOworMDE0ODswMTQ4OzAwNkUgMDMwQzswMTQ4OzAwNkUgMDMwQzsKKzAxNDk7MDE0OTswMTQ5OzAyQkMgMDA2RTswMkJDIDAwNkU7CiswMTRDOzAxNEM7MDA0RiAwMzA0OzAxNEM7MDA0RiAwMzA0OworMDE0RDswMTREOzAwNkYgMDMwNDswMTREOzAwNkYgMDMwNDsKKzAxNEU7MDE0RTswMDRGIDAzMDY7MDE0RTswMDRGIDAzMDY7CiswMTRGOzAxNEY7MDA2RiAwMzA2OzAxNEY7MDA2RiAwMzA2OworMDE1MDswMTUwOzAwNEYgMDMwQjswMTUwOzAwNEYgMDMwQjsKKzAxNTE7MDE1MTswMDZGIDAzMEI7MDE1MTswMDZGIDAzMEI7CiswMTU0OzAxNTQ7MDA1MiAwMzAxOzAxNTQ7MDA1MiAwMzAxOworMDE1NTswMTU1OzAwNzIgMDMwMTswMTU1OzAwNzIgMDMwMTsKKzAxNTY7MDE1NjswMDUyIDAzMjc7MDE1NjswMDUyIDAzMjc7CiswMTU3OzAxNTc7MDA3MiAwMzI3OzAxNTc7MDA3MiAwMzI3OworMDE1ODswMTU4OzAwNTIgMDMwQzswMTU4OzAwNTIgMDMwQzsKKzAxNTk7MDE1OTswMDcyIDAzMEM7MDE1OTswMDcyIDAzMEM7CiswMTVBOzAxNUE7MDA1MyAwMzAxOzAxNUE7MDA1MyAwMzAxOworMDE1QjswMTVCOzAwNzMgMDMwMTswMTVCOzAwNzMgMDMwMTsKKzAxNUM7MDE1QzswMDUzIDAzMDI7MDE1QzswMDUzIDAzMDI7CiswMTVEOzAxNUQ7MDA3MyAwMzAyOzAxNUQ7MDA3MyAwMzAyOworMDE1RTswMTVFOzAwNTMgMDMyNzswMTVFOzAwNTMgMDMyNzsKKzAxNUY7MDE1RjswMDczIDAzMjc7MDE1RjswMDczIDAzMjc7CiswMTYwOzAxNjA7MDA1MyAwMzBDOzAxNjA7MDA1MyAwMzBDOworMDE2MTswMTYxOzAwNzMgMDMwQzswMTYxOzAwNzMgMDMwQzsKKzAxNjI7MDE2MjswMDU0IDAzMjc7MDE2MjswMDU0IDAzMjc7CiswMTYzOzAxNjM7MDA3NCAwMzI3OzAxNjM7MDA3NCAwMzI3OworMDE2NDswMTY0OzAwNTQgMDMwQzswMTY0OzAwNTQgMDMwQzsKKzAxNjU7MDE2NTswMDc0IDAzMEM7MDE2NTswMDc0IDAzMEM7CiswMTY4OzAxNjg7MDA1NSAwMzAzOzAxNjg7MDA1NSAwMzAzOworMDE2OTswMTY5OzAwNzUgMDMwMzswMTY5OzAwNzUgMDMwMzsKKzAxNkE7MDE2QTswMDU1IDAzMDQ7MDE2QTswMDU1IDAzMDQ7CiswMTZCOzAxNkI7MDA3NSAwMzA0OzAxNkI7MDA3NSAwMzA0OworMDE2QzswMTZDOzAwNTUgMDMwNjswMTZDOzAwNTUgMDMwNjsKKzAxNkQ7MDE2RDswMDc1IDAzMDY7MDE2RDswMDc1IDAzMDY7CiswMTZFOzAxNkU7MDA1NSAwMzBBOzAxNkU7MDA1NSAwMzBBOworMDE2RjswMTZGOzAwNzUgMDMwQTswMTZGOzAwNzUgMDMwQTsKKzAxNzA7MDE3MDswMDU1IDAzMEI7MDE3MDswMDU1IDAzMEI7CiswMTcxOzAxNzE7MDA3NSAwMzBCOzAxNzE7MDA3NSAwMzBCOworMDE3MjswMTcyOzAwNTUgMDMyODswMTcyOzAwNTUgMDMyODsKKzAxNzM7MDE3MzswMDc1IDAzMjg7MDE3MzswMDc1IDAzMjg7CiswMTc0OzAxNzQ7MDA1NyAwMzAyOzAxNzQ7MDA1NyAwMzAyOworMDE3NTswMTc1OzAwNzcgMDMwMjswMTc1OzAwNzcgMDMwMjsKKzAxNzY7MDE3NjswMDU5IDAzMDI7MDE3NjswMDU5IDAzMDI7CiswMTc3OzAxNzc7MDA3OSAwMzAyOzAxNzc7MDA3OSAwMzAyOworMDE3ODswMTc4OzAwNTkgMDMwODswMTc4OzAwNTkgMDMwODsKKzAxNzk7MDE3OTswMDVBIDAzMDE7MDE3OTswMDVBIDAzMDE7CiswMTdBOzAxN0E7MDA3QSAwMzAxOzAxN0E7MDA3QSAwMzAxOworMDE3QjswMTdCOzAwNUEgMDMwNzswMTdCOzAwNUEgMDMwNzsKKzAxN0M7MDE3QzswMDdBIDAzMDc7MDE3QzswMDdBIDAzMDc7CiswMTdEOzAxN0Q7MDA1QSAwMzBDOzAxN0Q7MDA1QSAwMzBDOworMDE3RTswMTdFOzAwN0EgMDMwQzswMTdFOzAwN0EgMDMwQzsKKzAxN0Y7MDE3RjswMTdGOzAwNzM7MDA3MzsKKzAxQTA7MDFBMDswMDRGIDAzMUI7MDFBMDswMDRGIDAzMUI7CiswMUExOzAxQTE7MDA2RiAwMzFCOzAxQTE7MDA2RiAwMzFCOworMDFBRjswMUFGOzAwNTUgMDMxQjswMUFGOzAwNTUgMDMxQjsKKzAxQjA7MDFCMDswMDc1IDAzMUI7MDFCMDswMDc1IDAzMUI7CiswMUM0OzAxQzQ7MDFDNDswMDQ0IDAxN0Q7MDA0NCAwMDVBIDAzMEM7CiswMUM1OzAxQzU7MDFDNTswMDQ0IDAxN0U7MDA0NCAwMDdBIDAzMEM7CiswMUM2OzAxQzY7MDFDNjswMDY0IDAxN0U7MDA2NCAwMDdBIDAzMEM7CiswMUM3OzAxQzc7MDFDNzswMDRDIDAwNEE7MDA0QyAwMDRBOworMDFDODswMUM4OzAxQzg7MDA0QyAwMDZBOzAwNEMgMDA2QTsKKzAxQzk7MDFDOTswMUM5OzAwNkMgMDA2QTswMDZDIDAwNkE7CiswMUNBOzAxQ0E7MDFDQTswMDRFIDAwNEE7MDA0RSAwMDRBOworMDFDQjswMUNCOzAxQ0I7MDA0RSAwMDZBOzAwNEUgMDA2QTsKKzAxQ0M7MDFDQzswMUNDOzAwNkUgMDA2QTswMDZFIDAwNkE7CiswMUNEOzAxQ0Q7MDA0MSAwMzBDOzAxQ0Q7MDA0MSAwMzBDOworMDFDRTswMUNFOzAwNjEgMDMwQzswMUNFOzAwNjEgMDMwQzsKKzAxQ0Y7MDFDRjswMDQ5IDAzMEM7MDFDRjswMDQ5IDAzMEM7CiswMUQwOzAxRDA7MDA2OSAwMzBDOzAxRDA7MDA2OSAwMzBDOworMDFEMTswMUQxOzAwNEYgMDMwQzswMUQxOzAwNEYgMDMwQzsKKzAxRDI7MDFEMjswMDZGIDAzMEM7MDFEMjswMDZGIDAzMEM7CiswMUQzOzAxRDM7MDA1NSAwMzBDOzAxRDM7MDA1NSAwMzBDOworMDFENDswMUQ0OzAwNzUgMDMwQzswMUQ0OzAwNzUgMDMwQzsKKzAxRDU7MDFENTswMDU1IDAzMDggMDMwNDswMUQ1OzAwNTUgMDMwOCAwMzA0OworMDFENjswMUQ2OzAwNzUgMDMwOCAwMzA0OzAxRDY7MDA3NSAwMzA4IDAzMDQ7CiswMUQ3OzAxRDc7MDA1NSAwMzA4IDAzMDE7MDFENzswMDU1IDAzMDggMDMwMTsKKzAxRDg7MDFEODswMDc1IDAzMDggMDMwMTswMUQ4OzAwNzUgMDMwOCAwMzAxOworMDFEOTswMUQ5OzAwNTUgMDMwOCAwMzBDOzAxRDk7MDA1NSAwMzA4IDAzMEM7CiswMURBOzAxREE7MDA3NSAwMzA4IDAzMEM7MDFEQTswMDc1IDAzMDggMDMwQzsKKzAxREI7MDFEQjswMDU1IDAzMDggMDMwMDswMURCOzAwNTUgMDMwOCAwMzAwOworMDFEQzswMURDOzAwNzUgMDMwOCAwMzAwOzAxREM7MDA3NSAwMzA4IDAzMDA7CiswMURFOzAxREU7MDA0MSAwMzA4IDAzMDQ7MDFERTswMDQxIDAzMDggMDMwNDsKKzAxREY7MDFERjswMDYxIDAzMDggMDMwNDswMURGOzAwNjEgMDMwOCAwMzA0OworMDFFMDswMUUwOzAwNDEgMDMwNyAwMzA0OzAxRTA7MDA0MSAwMzA3IDAzMDQ7CiswMUUxOzAxRTE7MDA2MSAwMzA3IDAzMDQ7MDFFMTswMDYxIDAzMDcgMDMwNDsKKzAxRTI7MDFFMjswMEM2IDAzMDQ7MDFFMjswMEM2IDAzMDQ7CiswMUUzOzAxRTM7MDBFNiAwMzA0OzAxRTM7MDBFNiAwMzA0OworMDFFNjswMUU2OzAwNDcgMDMwQzswMUU2OzAwNDcgMDMwQzsKKzAxRTc7MDFFNzswMDY3IDAzMEM7MDFFNzswMDY3IDAzMEM7CiswMUU4OzAxRTg7MDA0QiAwMzBDOzAxRTg7MDA0QiAwMzBDOworMDFFOTswMUU5OzAwNkIgMDMwQzswMUU5OzAwNkIgMDMwQzsKKzAxRUE7MDFFQTswMDRGIDAzMjg7MDFFQTswMDRGIDAzMjg7CiswMUVCOzAxRUI7MDA2RiAwMzI4OzAxRUI7MDA2RiAwMzI4OworMDFFQzswMUVDOzAwNEYgMDMyOCAwMzA0OzAxRUM7MDA0RiAwMzI4IDAzMDQ7CiswMUVEOzAxRUQ7MDA2RiAwMzI4IDAzMDQ7MDFFRDswMDZGIDAzMjggMDMwNDsKKzAxRUU7MDFFRTswMUI3IDAzMEM7MDFFRTswMUI3IDAzMEM7CiswMUVGOzAxRUY7MDI5MiAwMzBDOzAxRUY7MDI5MiAwMzBDOworMDFGMDswMUYwOzAwNkEgMDMwQzswMUYwOzAwNkEgMDMwQzsKKzAxRjE7MDFGMTswMUYxOzAwNDQgMDA1QTswMDQ0IDAwNUE7CiswMUYyOzAxRjI7MDFGMjswMDQ0IDAwN0E7MDA0NCAwMDdBOworMDFGMzswMUYzOzAxRjM7MDA2NCAwMDdBOzAwNjQgMDA3QTsKKzAxRjQ7MDFGNDswMDQ3IDAzMDE7MDFGNDswMDQ3IDAzMDE7CiswMUY1OzAxRjU7MDA2NyAwMzAxOzAxRjU7MDA2NyAwMzAxOworMDFGODswMUY4OzAwNEUgMDMwMDswMUY4OzAwNEUgMDMwMDsKKzAxRjk7MDFGOTswMDZFIDAzMDA7MDFGOTswMDZFIDAzMDA7CiswMUZBOzAxRkE7MDA0MSAwMzBBIDAzMDE7MDFGQTswMDQxIDAzMEEgMDMwMTsKKzAxRkI7MDFGQjswMDYxIDAzMEEgMDMwMTswMUZCOzAwNjEgMDMwQSAwMzAxOworMDFGQzswMUZDOzAwQzYgMDMwMTswMUZDOzAwQzYgMDMwMTsKKzAxRkQ7MDFGRDswMEU2IDAzMDE7MDFGRDswMEU2IDAzMDE7CiswMUZFOzAxRkU7MDBEOCAwMzAxOzAxRkU7MDBEOCAwMzAxOworMDFGRjswMUZGOzAwRjggMDMwMTswMUZGOzAwRjggMDMwMTsKKzAyMDA7MDIwMDswMDQxIDAzMEY7MDIwMDswMDQxIDAzMEY7CiswMjAxOzAyMDE7MDA2MSAwMzBGOzAyMDE7MDA2MSAwMzBGOworMDIwMjswMjAyOzAwNDEgMDMxMTswMjAyOzAwNDEgMDMxMTsKKzAyMDM7MDIwMzswMDYxIDAzMTE7MDIwMzswMDYxIDAzMTE7CiswMjA0OzAyMDQ7MDA0NSAwMzBGOzAyMDQ7MDA0NSAwMzBGOworMDIwNTswMjA1OzAwNjUgMDMwRjswMjA1OzAwNjUgMDMwRjsKKzAyMDY7MDIwNjswMDQ1IDAzMTE7MDIwNjswMDQ1IDAzMTE7CiswMjA3OzAyMDc7MDA2NSAwMzExOzAyMDc7MDA2NSAwMzExOworMDIwODswMjA4OzAwNDkgMDMwRjswMjA4OzAwNDkgMDMwRjsKKzAyMDk7MDIwOTswMDY5IDAzMEY7MDIwOTswMDY5IDAzMEY7CiswMjBBOzAyMEE7MDA0OSAwMzExOzAyMEE7MDA0OSAwMzExOworMDIwQjswMjBCOzAwNjkgMDMxMTswMjBCOzAwNjkgMDMxMTsKKzAyMEM7MDIwQzswMDRGIDAzMEY7MDIwQzswMDRGIDAzMEY7CiswMjBEOzAyMEQ7MDA2RiAwMzBGOzAyMEQ7MDA2RiAwMzBGOworMDIwRTswMjBFOzAwNEYgMDMxMTswMjBFOzAwNEYgMDMxMTsKKzAyMEY7MDIwRjswMDZGIDAzMTE7MDIwRjswMDZGIDAzMTE7CiswMjEwOzAyMTA7MDA1MiAwMzBGOzAyMTA7MDA1MiAwMzBGOworMDIxMTswMjExOzAwNzIgMDMwRjswMjExOzAwNzIgMDMwRjsKKzAyMTI7MDIxMjswMDUyIDAzMTE7MDIxMjswMDUyIDAzMTE7CiswMjEzOzAyMTM7MDA3MiAwMzExOzAyMTM7MDA3MiAwMzExOworMDIxNDswMjE0OzAwNTUgMDMwRjswMjE0OzAwNTUgMDMwRjsKKzAyMTU7MDIxNTswMDc1IDAzMEY7MDIxNTswMDc1IDAzMEY7CiswMjE2OzAyMTY7MDA1NSAwMzExOzAyMTY7MDA1NSAwMzExOworMDIxNzswMjE3OzAwNzUgMDMxMTswMjE3OzAwNzUgMDMxMTsKKzAyMTg7MDIxODswMDUzIDAzMjY7MDIxODswMDUzIDAzMjY7CiswMjE5OzAyMTk7MDA3MyAwMzI2OzAyMTk7MDA3MyAwMzI2OworMDIxQTswMjFBOzAwNTQgMDMyNjswMjFBOzAwNTQgMDMyNjsKKzAyMUI7MDIxQjswMDc0IDAzMjY7MDIxQjswMDc0IDAzMjY7CiswMjFFOzAyMUU7MDA0OCAwMzBDOzAyMUU7MDA0OCAwMzBDOworMDIxRjswMjFGOzAwNjggMDMwQzswMjFGOzAwNjggMDMwQzsKKzAyMjY7MDIyNjswMDQxIDAzMDc7MDIyNjswMDQxIDAzMDc7CiswMjI3OzAyMjc7MDA2MSAwMzA3OzAyMjc7MDA2MSAwMzA3OworMDIyODswMjI4OzAwNDUgMDMyNzswMjI4OzAwNDUgMDMyNzsKKzAyMjk7MDIyOTswMDY1IDAzMjc7MDIyOTswMDY1IDAzMjc7CiswMjJBOzAyMkE7MDA0RiAwMzA4IDAzMDQ7MDIyQTswMDRGIDAzMDggMDMwNDsKKzAyMkI7MDIyQjswMDZGIDAzMDggMDMwNDswMjJCOzAwNkYgMDMwOCAwMzA0OworMDIyQzswMjJDOzAwNEYgMDMwMyAwMzA0OzAyMkM7MDA0RiAwMzAzIDAzMDQ7CiswMjJEOzAyMkQ7MDA2RiAwMzAzIDAzMDQ7MDIyRDswMDZGIDAzMDMgMDMwNDsKKzAyMkU7MDIyRTswMDRGIDAzMDc7MDIyRTswMDRGIDAzMDc7CiswMjJGOzAyMkY7MDA2RiAwMzA3OzAyMkY7MDA2RiAwMzA3OworMDIzMDswMjMwOzAwNEYgMDMwNyAwMzA0OzAyMzA7MDA0RiAwMzA3IDAzMDQ7CiswMjMxOzAyMzE7MDA2RiAwMzA3IDAzMDQ7MDIzMTswMDZGIDAzMDcgMDMwNDsKKzAyMzI7MDIzMjswMDU5IDAzMDQ7MDIzMjswMDU5IDAzMDQ7CiswMjMzOzAyMzM7MDA3OSAwMzA0OzAyMzM7MDA3OSAwMzA0OworMDJCMDswMkIwOzAyQjA7MDA2ODswMDY4OworMDJCMTswMkIxOzAyQjE7MDI2NjswMjY2OworMDJCMjswMkIyOzAyQjI7MDA2QTswMDZBOworMDJCMzswMkIzOzAyQjM7MDA3MjswMDcyOworMDJCNDswMkI0OzAyQjQ7MDI3OTswMjc5OworMDJCNTswMkI1OzAyQjU7MDI3QjswMjdCOworMDJCNjswMkI2OzAyQjY7MDI4MTswMjgxOworMDJCNzswMkI3OzAyQjc7MDA3NzswMDc3OworMDJCODswMkI4OzAyQjg7MDA3OTswMDc5OworMDJEODswMkQ4OzAyRDg7MDAyMCAwMzA2OzAwMjAgMDMwNjsKKzAyRDk7MDJEOTswMkQ5OzAwMjAgMDMwNzswMDIwIDAzMDc7CiswMkRBOzAyREE7MDJEQTswMDIwIDAzMEE7MDAyMCAwMzBBOworMDJEQjswMkRCOzAyREI7MDAyMCAwMzI4OzAwMjAgMDMyODsKKzAyREM7MDJEQzswMkRDOzAwMjAgMDMwMzswMDIwIDAzMDM7CiswMkREOzAyREQ7MDJERDswMDIwIDAzMEI7MDAyMCAwMzBCOworMDJFMDswMkUwOzAyRTA7MDI2MzswMjYzOworMDJFMTswMkUxOzAyRTE7MDA2QzswMDZDOworMDJFMjswMkUyOzAyRTI7MDA3MzswMDczOworMDJFMzswMkUzOzAyRTM7MDA3ODswMDc4OworMDJFNDswMkU0OzAyRTQ7MDI5NTswMjk1OworMDM0MDswMzAwOzAzMDA7MDMwMDswMzAwOworMDM0MTswMzAxOzAzMDE7MDMwMTswMzAxOworMDM0MzswMzEzOzAzMTM7MDMxMzswMzEzOworMDM0NDswMzA4IDAzMDE7MDMwOCAwMzAxOzAzMDggMDMwMTswMzA4IDAzMDE7CiswMzc0OzAyQjk7MDJCOTswMkI5OzAyQjk7CiswMzdBOzAzN0E7MDM3QTswMDIwIDAzNDU7MDAyMCAwMzQ1OworMDM3RTswMDNCOzAwM0I7MDAzQjswMDNCOworMDM4NDswMzg0OzAzODQ7MDAyMCAwMzAxOzAwMjAgMDMwMTsKKzAzODU7MDM4NTswMEE4IDAzMDE7MDAyMCAwMzA4IDAzMDE7MDAyMCAwMzA4IDAzMDE7CiswMzg2OzAzODY7MDM5MSAwMzAxOzAzODY7MDM5MSAwMzAxOworMDM4NzswMEI3OzAwQjc7MDBCNzswMEI3OworMDM4ODswMzg4OzAzOTUgMDMwMTswMzg4OzAzOTUgMDMwMTsKKzAzODk7MDM4OTswMzk3IDAzMDE7MDM4OTswMzk3IDAzMDE7CiswMzhBOzAzOEE7MDM5OSAwMzAxOzAzOEE7MDM5OSAwMzAxOworMDM4QzswMzhDOzAzOUYgMDMwMTswMzhDOzAzOUYgMDMwMTsKKzAzOEU7MDM4RTswM0E1IDAzMDE7MDM4RTswM0E1IDAzMDE7CiswMzhGOzAzOEY7MDNBOSAwMzAxOzAzOEY7MDNBOSAwMzAxOworMDM5MDswMzkwOzAzQjkgMDMwOCAwMzAxOzAzOTA7MDNCOSAwMzA4IDAzMDE7CiswM0FBOzAzQUE7MDM5OSAwMzA4OzAzQUE7MDM5OSAwMzA4OworMDNBQjswM0FCOzAzQTUgMDMwODswM0FCOzAzQTUgMDMwODsKKzAzQUM7MDNBQzswM0IxIDAzMDE7MDNBQzswM0IxIDAzMDE7CiswM0FEOzAzQUQ7MDNCNSAwMzAxOzAzQUQ7MDNCNSAwMzAxOworMDNBRTswM0FFOzAzQjcgMDMwMTswM0FFOzAzQjcgMDMwMTsKKzAzQUY7MDNBRjswM0I5IDAzMDE7MDNBRjswM0I5IDAzMDE7CiswM0IwOzAzQjA7MDNDNSAwMzA4IDAzMDE7MDNCMDswM0M1IDAzMDggMDMwMTsKKzAzQ0E7MDNDQTswM0I5IDAzMDg7MDNDQTswM0I5IDAzMDg7CiswM0NCOzAzQ0I7MDNDNSAwMzA4OzAzQ0I7MDNDNSAwMzA4OworMDNDQzswM0NDOzAzQkYgMDMwMTswM0NDOzAzQkYgMDMwMTsKKzAzQ0Q7MDNDRDswM0M1IDAzMDE7MDNDRDswM0M1IDAzMDE7CiswM0NFOzAzQ0U7MDNDOSAwMzAxOzAzQ0U7MDNDOSAwMzAxOworMDNEMDswM0QwOzAzRDA7MDNCMjswM0IyOworMDNEMTswM0QxOzAzRDE7MDNCODswM0I4OworMDNEMjswM0QyOzAzRDI7MDNBNTswM0E1OworMDNEMzswM0QzOzAzRDIgMDMwMTswMzhFOzAzQTUgMDMwMTsKKzAzRDQ7MDNENDswM0QyIDAzMDg7MDNBQjswM0E1IDAzMDg7CiswM0Q1OzAzRDU7MDNENTswM0M2OzAzQzY7CiswM0Q2OzAzRDY7MDNENjswM0MwOzAzQzA7CiswM0YwOzAzRjA7MDNGMDswM0JBOzAzQkE7CiswM0YxOzAzRjE7MDNGMTswM0MxOzAzQzE7CiswM0YyOzAzRjI7MDNGMjswM0MyOzAzQzI7CiswM0Y0OzAzRjQ7MDNGNDswMzk4OzAzOTg7CiswM0Y1OzAzRjU7MDNGNTswM0I1OzAzQjU7CiswM0Y5OzAzRjk7MDNGOTswM0EzOzAzQTM7CiswNDAwOzA0MDA7MDQxNSAwMzAwOzA0MDA7MDQxNSAwMzAwOworMDQwMTswNDAxOzA0MTUgMDMwODswNDAxOzA0MTUgMDMwODsKKzA0MDM7MDQwMzswNDEzIDAzMDE7MDQwMzswNDEzIDAzMDE7CiswNDA3OzA0MDc7MDQwNiAwMzA4OzA0MDc7MDQwNiAwMzA4OworMDQwQzswNDBDOzA0MUEgMDMwMTswNDBDOzA0MUEgMDMwMTsKKzA0MEQ7MDQwRDswNDE4IDAzMDA7MDQwRDswNDE4IDAzMDA7CiswNDBFOzA0MEU7MDQyMyAwMzA2OzA0MEU7MDQyMyAwMzA2OworMDQxOTswNDE5OzA0MTggMDMwNjswNDE5OzA0MTggMDMwNjsKKzA0Mzk7MDQzOTswNDM4IDAzMDY7MDQzOTswNDM4IDAzMDY7CiswNDUwOzA0NTA7MDQzNSAwMzAwOzA0NTA7MDQzNSAwMzAwOworMDQ1MTswNDUxOzA0MzUgMDMwODswNDUxOzA0MzUgMDMwODsKKzA0NTM7MDQ1MzswNDMzIDAzMDE7MDQ1MzswNDMzIDAzMDE7CiswNDU3OzA0NTc7MDQ1NiAwMzA4OzA0NTc7MDQ1NiAwMzA4OworMDQ1QzswNDVDOzA0M0EgMDMwMTswNDVDOzA0M0EgMDMwMTsKKzA0NUQ7MDQ1RDswNDM4IDAzMDA7MDQ1RDswNDM4IDAzMDA7CiswNDVFOzA0NUU7MDQ0MyAwMzA2OzA0NUU7MDQ0MyAwMzA2OworMDQ3NjswNDc2OzA0NzQgMDMwRjswNDc2OzA0NzQgMDMwRjsKKzA0Nzc7MDQ3NzswNDc1IDAzMEY7MDQ3NzswNDc1IDAzMEY7CiswNEMxOzA0QzE7MDQxNiAwMzA2OzA0QzE7MDQxNiAwMzA2OworMDRDMjswNEMyOzA0MzYgMDMwNjswNEMyOzA0MzYgMDMwNjsKKzA0RDA7MDREMDswNDEwIDAzMDY7MDREMDswNDEwIDAzMDY7CiswNEQxOzA0RDE7MDQzMCAwMzA2OzA0RDE7MDQzMCAwMzA2OworMDREMjswNEQyOzA0MTAgMDMwODswNEQyOzA0MTAgMDMwODsKKzA0RDM7MDREMzswNDMwIDAzMDg7MDREMzswNDMwIDAzMDg7CiswNEQ2OzA0RDY7MDQxNSAwMzA2OzA0RDY7MDQxNSAwMzA2OworMDRENzswNEQ3OzA0MzUgMDMwNjswNEQ3OzA0MzUgMDMwNjsKKzA0REE7MDREQTswNEQ4IDAzMDg7MDREQTswNEQ4IDAzMDg7CiswNERCOzA0REI7MDREOSAwMzA4OzA0REI7MDREOSAwMzA4OworMDREQzswNERDOzA0MTYgMDMwODswNERDOzA0MTYgMDMwODsKKzA0REQ7MDRERDswNDM2IDAzMDg7MDRERDswNDM2IDAzMDg7CiswNERFOzA0REU7MDQxNyAwMzA4OzA0REU7MDQxNyAwMzA4OworMDRERjswNERGOzA0MzcgMDMwODswNERGOzA0MzcgMDMwODsKKzA0RTI7MDRFMjswNDE4IDAzMDQ7MDRFMjswNDE4IDAzMDQ7CiswNEUzOzA0RTM7MDQzOCAwMzA0OzA0RTM7MDQzOCAwMzA0OworMDRFNDswNEU0OzA0MTggMDMwODswNEU0OzA0MTggMDMwODsKKzA0RTU7MDRFNTswNDM4IDAzMDg7MDRFNTswNDM4IDAzMDg7CiswNEU2OzA0RTY7MDQxRSAwMzA4OzA0RTY7MDQxRSAwMzA4OworMDRFNzswNEU3OzA0M0UgMDMwODswNEU3OzA0M0UgMDMwODsKKzA0RUE7MDRFQTswNEU4IDAzMDg7MDRFQTswNEU4IDAzMDg7CiswNEVCOzA0RUI7MDRFOSAwMzA4OzA0RUI7MDRFOSAwMzA4OworMDRFQzswNEVDOzA0MkQgMDMwODswNEVDOzA0MkQgMDMwODsKKzA0RUQ7MDRFRDswNDREIDAzMDg7MDRFRDswNDREIDAzMDg7CiswNEVFOzA0RUU7MDQyMyAwMzA0OzA0RUU7MDQyMyAwMzA0OworMDRFRjswNEVGOzA0NDMgMDMwNDswNEVGOzA0NDMgMDMwNDsKKzA0RjA7MDRGMDswNDIzIDAzMDg7MDRGMDswNDIzIDAzMDg7CiswNEYxOzA0RjE7MDQ0MyAwMzA4OzA0RjE7MDQ0MyAwMzA4OworMDRGMjswNEYyOzA0MjMgMDMwQjswNEYyOzA0MjMgMDMwQjsKKzA0RjM7MDRGMzswNDQzIDAzMEI7MDRGMzswNDQzIDAzMEI7CiswNEY0OzA0RjQ7MDQyNyAwMzA4OzA0RjQ7MDQyNyAwMzA4OworMDRGNTswNEY1OzA0NDcgMDMwODswNEY1OzA0NDcgMDMwODsKKzA0Rjg7MDRGODswNDJCIDAzMDg7MDRGODswNDJCIDAzMDg7CiswNEY5OzA0Rjk7MDQ0QiAwMzA4OzA0Rjk7MDQ0QiAwMzA4OworMDU4NzswNTg3OzA1ODc7MDU2NSAwNTgyOzA1NjUgMDU4MjsKKzA2MjI7MDYyMjswNjI3IDA2NTM7MDYyMjswNjI3IDA2NTM7CiswNjIzOzA2MjM7MDYyNyAwNjU0OzA2MjM7MDYyNyAwNjU0OworMDYyNDswNjI0OzA2NDggMDY1NDswNjI0OzA2NDggMDY1NDsKKzA2MjU7MDYyNTswNjI3IDA2NTU7MDYyNTswNjI3IDA2NTU7CiswNjI2OzA2MjY7MDY0QSAwNjU0OzA2MjY7MDY0QSAwNjU0OworMDY3NTswNjc1OzA2NzU7MDYyNyAwNjc0OzA2MjcgMDY3NDsKKzA2NzY7MDY3NjswNjc2OzA2NDggMDY3NDswNjQ4IDA2NzQ7CiswNjc3OzA2Nzc7MDY3NzswNkM3IDA2NzQ7MDZDNyAwNjc0OworMDY3ODswNjc4OzA2Nzg7MDY0QSAwNjc0OzA2NEEgMDY3NDsKKzA2QzA7MDZDMDswNkQ1IDA2NTQ7MDZDMDswNkQ1IDA2NTQ7CiswNkMyOzA2QzI7MDZDMSAwNjU0OzA2QzI7MDZDMSAwNjU0OworMDZEMzswNkQzOzA2RDIgMDY1NDswNkQzOzA2RDIgMDY1NDsKKzA5Mjk7MDkyOTswOTI4IDA5M0M7MDkyOTswOTI4IDA5M0M7CiswOTMxOzA5MzE7MDkzMCAwOTNDOzA5MzE7MDkzMCAwOTNDOworMDkzNDswOTM0OzA5MzMgMDkzQzswOTM0OzA5MzMgMDkzQzsKKzA5NTg7MDkxNSAwOTNDOzA5MTUgMDkzQzswOTE1IDA5M0M7MDkxNSAwOTNDOworMDk1OTswOTE2IDA5M0M7MDkxNiAwOTNDOzA5MTYgMDkzQzswOTE2IDA5M0M7CiswOTVBOzA5MTcgMDkzQzswOTE3IDA5M0M7MDkxNyAwOTNDOzA5MTcgMDkzQzsKKzA5NUI7MDkxQyAwOTNDOzA5MUMgMDkzQzswOTFDIDA5M0M7MDkxQyAwOTNDOworMDk1QzswOTIxIDA5M0M7MDkyMSAwOTNDOzA5MjEgMDkzQzswOTIxIDA5M0M7CiswOTVEOzA5MjIgMDkzQzswOTIyIDA5M0M7MDkyMiAwOTNDOzA5MjIgMDkzQzsKKzA5NUU7MDkyQiAwOTNDOzA5MkIgMDkzQzswOTJCIDA5M0M7MDkyQiAwOTNDOworMDk1RjswOTJGIDA5M0M7MDkyRiAwOTNDOzA5MkYgMDkzQzswOTJGIDA5M0M7CiswOUNCOzA5Q0I7MDlDNyAwOUJFOzA5Q0I7MDlDNyAwOUJFOworMDlDQzswOUNDOzA5QzcgMDlENzswOUNDOzA5QzcgMDlENzsKKzA5REM7MDlBMSAwOUJDOzA5QTEgMDlCQzswOUExIDA5QkM7MDlBMSAwOUJDOworMDlERDswOUEyIDA5QkM7MDlBMiAwOUJDOzA5QTIgMDlCQzswOUEyIDA5QkM7CiswOURGOzA5QUYgMDlCQzswOUFGIDA5QkM7MDlBRiAwOUJDOzA5QUYgMDlCQzsKKzBBMzM7MEEzMiAwQTNDOzBBMzIgMEEzQzswQTMyIDBBM0M7MEEzMiAwQTNDOworMEEzNjswQTM4IDBBM0M7MEEzOCAwQTNDOzBBMzggMEEzQzswQTM4IDBBM0M7CiswQTU5OzBBMTYgMEEzQzswQTE2IDBBM0M7MEExNiAwQTNDOzBBMTYgMEEzQzsKKzBBNUE7MEExNyAwQTNDOzBBMTcgMEEzQzswQTE3IDBBM0M7MEExNyAwQTNDOworMEE1QjswQTFDIDBBM0M7MEExQyAwQTNDOzBBMUMgMEEzQzswQTFDIDBBM0M7CiswQTVFOzBBMkIgMEEzQzswQTJCIDBBM0M7MEEyQiAwQTNDOzBBMkIgMEEzQzsKKzBCNDg7MEI0ODswQjQ3IDBCNTY7MEI0ODswQjQ3IDBCNTY7CiswQjRCOzBCNEI7MEI0NyAwQjNFOzBCNEI7MEI0NyAwQjNFOworMEI0QzswQjRDOzBCNDcgMEI1NzswQjRDOzBCNDcgMEI1NzsKKzBCNUM7MEIyMSAwQjNDOzBCMjEgMEIzQzswQjIxIDBCM0M7MEIyMSAwQjNDOworMEI1RDswQjIyIDBCM0M7MEIyMiAwQjNDOzBCMjIgMEIzQzswQjIyIDBCM0M7CiswQjk0OzBCOTQ7MEI5MiAwQkQ3OzBCOTQ7MEI5MiAwQkQ3OworMEJDQTswQkNBOzBCQzYgMEJCRTswQkNBOzBCQzYgMEJCRTsKKzBCQ0I7MEJDQjswQkM3IDBCQkU7MEJDQjswQkM3IDBCQkU7CiswQkNDOzBCQ0M7MEJDNiAwQkQ3OzBCQ0M7MEJDNiAwQkQ3OworMEM0ODswQzQ4OzBDNDYgMEM1NjswQzQ4OzBDNDYgMEM1NjsKKzBDQzA7MENDMDswQ0JGIDBDRDU7MENDMDswQ0JGIDBDRDU7CiswQ0M3OzBDQzc7MENDNiAwQ0Q1OzBDQzc7MENDNiAwQ0Q1OworMENDODswQ0M4OzBDQzYgMENENjswQ0M4OzBDQzYgMENENjsKKzBDQ0E7MENDQTswQ0M2IDBDQzI7MENDQTswQ0M2IDBDQzI7CiswQ0NCOzBDQ0I7MENDNiAwQ0MyIDBDRDU7MENDQjswQ0M2IDBDQzIgMENENTsKKzBENEE7MEQ0QTswRDQ2IDBEM0U7MEQ0QTswRDQ2IDBEM0U7CiswRDRCOzBENEI7MEQ0NyAwRDNFOzBENEI7MEQ0NyAwRDNFOworMEQ0QzswRDRDOzBENDYgMEQ1NzswRDRDOzBENDYgMEQ1NzsKKzBEREE7MEREQTswREQ5IDBEQ0E7MEREQTswREQ5IDBEQ0E7CiswRERDOzBEREM7MEREOSAwRENGOzBEREM7MEREOSAwRENGOworMERERDswREREOzBERDkgMERDRiAwRENBOzBEREQ7MEREOSAwRENGIDBEQ0E7CiswRERFOzBEREU7MEREOSAwRERGOzBEREU7MEREOSAwRERGOworMEUzMzswRTMzOzBFMzM7MEU0RCAwRTMyOzBFNEQgMEUzMjsKKzBFQjM7MEVCMzswRUIzOzBFQ0QgMEVCMjswRUNEIDBFQjI7CiswRURDOzBFREM7MEVEQzswRUFCIDBFOTk7MEVBQiAwRTk5OworMEVERDswRUREOzBFREQ7MEVBQiAwRUExOzBFQUIgMEVBMTsKKzBGMEM7MEYwQzswRjBDOzBGMEI7MEYwQjsKKzBGNDM7MEY0MiAwRkI3OzBGNDIgMEZCNzswRjQyIDBGQjc7MEY0MiAwRkI3OworMEY0RDswRjRDIDBGQjc7MEY0QyAwRkI3OzBGNEMgMEZCNzswRjRDIDBGQjc7CiswRjUyOzBGNTEgMEZCNzswRjUxIDBGQjc7MEY1MSAwRkI3OzBGNTEgMEZCNzsKKzBGNTc7MEY1NiAwRkI3OzBGNTYgMEZCNzswRjU2IDBGQjc7MEY1NiAwRkI3OworMEY1QzswRjVCIDBGQjc7MEY1QiAwRkI3OzBGNUIgMEZCNzswRjVCIDBGQjc7CiswRjY5OzBGNDAgMEZCNTswRjQwIDBGQjU7MEY0MCAwRkI1OzBGNDAgMEZCNTsKKzBGNzM7MEY3MSAwRjcyOzBGNzEgMEY3MjswRjcxIDBGNzI7MEY3MSAwRjcyOworMEY3NTswRjcxIDBGNzQ7MEY3MSAwRjc0OzBGNzEgMEY3NDswRjcxIDBGNzQ7CiswRjc2OzBGQjIgMEY4MDswRkIyIDBGODA7MEZCMiAwRjgwOzBGQjIgMEY4MDsKKzBGNzc7MEY3NzswRjc3OzBGQjIgMEY3MSAwRjgwOzBGQjIgMEY3MSAwRjgwOworMEY3ODswRkIzIDBGODA7MEZCMyAwRjgwOzBGQjMgMEY4MDswRkIzIDBGODA7CiswRjc5OzBGNzk7MEY3OTswRkIzIDBGNzEgMEY4MDswRkIzIDBGNzEgMEY4MDsKKzBGODE7MEY3MSAwRjgwOzBGNzEgMEY4MDswRjcxIDBGODA7MEY3MSAwRjgwOworMEY5MzswRjkyIDBGQjc7MEY5MiAwRkI3OzBGOTIgMEZCNzswRjkyIDBGQjc7CiswRjlEOzBGOUMgMEZCNzswRjlDIDBGQjc7MEY5QyAwRkI3OzBGOUMgMEZCNzsKKzBGQTI7MEZBMSAwRkI3OzBGQTEgMEZCNzswRkExIDBGQjc7MEZBMSAwRkI3OworMEZBNzswRkE2IDBGQjc7MEZBNiAwRkI3OzBGQTYgMEZCNzswRkE2IDBGQjc7CiswRkFDOzBGQUIgMEZCNzswRkFCIDBGQjc7MEZBQiAwRkI3OzBGQUIgMEZCNzsKKzBGQjk7MEY5MCAwRkI1OzBGOTAgMEZCNTswRjkwIDBGQjU7MEY5MCAwRkI1OworMTAyNjsxMDI2OzEwMjUgMTAyRTsxMDI2OzEwMjUgMTAyRTsKKzEwRkM7MTBGQzsxMEZDOzEwREM7MTBEQzsKKzFEMkM7MUQyQzsxRDJDOzAwNDE7MDA0MTsKKzFEMkQ7MUQyRDsxRDJEOzAwQzY7MDBDNjsKKzFEMkU7MUQyRTsxRDJFOzAwNDI7MDA0MjsKKzFEMzA7MUQzMDsxRDMwOzAwNDQ7MDA0NDsKKzFEMzE7MUQzMTsxRDMxOzAwNDU7MDA0NTsKKzFEMzI7MUQzMjsxRDMyOzAxOEU7MDE4RTsKKzFEMzM7MUQzMzsxRDMzOzAwNDc7MDA0NzsKKzFEMzQ7MUQzNDsxRDM0OzAwNDg7MDA0ODsKKzFEMzU7MUQzNTsxRDM1OzAwNDk7MDA0OTsKKzFEMzY7MUQzNjsxRDM2OzAwNEE7MDA0QTsKKzFEMzc7MUQzNzsxRDM3OzAwNEI7MDA0QjsKKzFEMzg7MUQzODsxRDM4OzAwNEM7MDA0QzsKKzFEMzk7MUQzOTsxRDM5OzAwNEQ7MDA0RDsKKzFEM0E7MUQzQTsxRDNBOzAwNEU7MDA0RTsKKzFEM0M7MUQzQzsxRDNDOzAwNEY7MDA0RjsKKzFEM0Q7MUQzRDsxRDNEOzAyMjI7MDIyMjsKKzFEM0U7MUQzRTsxRDNFOzAwNTA7MDA1MDsKKzFEM0Y7MUQzRjsxRDNGOzAwNTI7MDA1MjsKKzFENDA7MUQ0MDsxRDQwOzAwNTQ7MDA1NDsKKzFENDE7MUQ0MTsxRDQxOzAwNTU7MDA1NTsKKzFENDI7MUQ0MjsxRDQyOzAwNTc7MDA1NzsKKzFENDM7MUQ0MzsxRDQzOzAwNjE7MDA2MTsKKzFENDQ7MUQ0NDsxRDQ0OzAyNTA7MDI1MDsKKzFENDU7MUQ0NTsxRDQ1OzAyNTE7MDI1MTsKKzFENDY7MUQ0NjsxRDQ2OzFEMDI7MUQwMjsKKzFENDc7MUQ0NzsxRDQ3OzAwNjI7MDA2MjsKKzFENDg7MUQ0ODsxRDQ4OzAwNjQ7MDA2NDsKKzFENDk7MUQ0OTsxRDQ5OzAwNjU7MDA2NTsKKzFENEE7MUQ0QTsxRDRBOzAyNTk7MDI1OTsKKzFENEI7MUQ0QjsxRDRCOzAyNUI7MDI1QjsKKzFENEM7MUQ0QzsxRDRDOzAyNUM7MDI1QzsKKzFENEQ7MUQ0RDsxRDREOzAwNjc7MDA2NzsKKzFENEY7MUQ0RjsxRDRGOzAwNkI7MDA2QjsKKzFENTA7MUQ1MDsxRDUwOzAwNkQ7MDA2RDsKKzFENTE7MUQ1MTsxRDUxOzAxNEI7MDE0QjsKKzFENTI7MUQ1MjsxRDUyOzAwNkY7MDA2RjsKKzFENTM7MUQ1MzsxRDUzOzAyNTQ7MDI1NDsKKzFENTQ7MUQ1NDsxRDU0OzFEMTY7MUQxNjsKKzFENTU7MUQ1NTsxRDU1OzFEMTc7MUQxNzsKKzFENTY7MUQ1NjsxRDU2OzAwNzA7MDA3MDsKKzFENTc7MUQ1NzsxRDU3OzAwNzQ7MDA3NDsKKzFENTg7MUQ1ODsxRDU4OzAwNzU7MDA3NTsKKzFENTk7MUQ1OTsxRDU5OzFEMUQ7MUQxRDsKKzFENUE7MUQ1QTsxRDVBOzAyNkY7MDI2RjsKKzFENUI7MUQ1QjsxRDVCOzAwNzY7MDA3NjsKKzFENUM7MUQ1QzsxRDVDOzFEMjU7MUQyNTsKKzFENUQ7MUQ1RDsxRDVEOzAzQjI7MDNCMjsKKzFENUU7MUQ1RTsxRDVFOzAzQjM7MDNCMzsKKzFENUY7MUQ1RjsxRDVGOzAzQjQ7MDNCNDsKKzFENjA7MUQ2MDsxRDYwOzAzQzY7MDNDNjsKKzFENjE7MUQ2MTsxRDYxOzAzQzc7MDNDNzsKKzFENjI7MUQ2MjsxRDYyOzAwNjk7MDA2OTsKKzFENjM7MUQ2MzsxRDYzOzAwNzI7MDA3MjsKKzFENjQ7MUQ2NDsxRDY0OzAwNzU7MDA3NTsKKzFENjU7MUQ2NTsxRDY1OzAwNzY7MDA3NjsKKzFENjY7MUQ2NjsxRDY2OzAzQjI7MDNCMjsKKzFENjc7MUQ2NzsxRDY3OzAzQjM7MDNCMzsKKzFENjg7MUQ2ODsxRDY4OzAzQzE7MDNDMTsKKzFENjk7MUQ2OTsxRDY5OzAzQzY7MDNDNjsKKzFENkE7MUQ2QTsxRDZBOzAzQzc7MDNDNzsKKzFENzg7MUQ3ODsxRDc4OzA0M0Q7MDQzRDsKKzFEOUI7MUQ5QjsxRDlCOzAyNTI7MDI1MjsKKzFEOUM7MUQ5QzsxRDlDOzAwNjM7MDA2MzsKKzFEOUQ7MUQ5RDsxRDlEOzAyNTU7MDI1NTsKKzFEOUU7MUQ5RTsxRDlFOzAwRjA7MDBGMDsKKzFEOUY7MUQ5RjsxRDlGOzAyNUM7MDI1QzsKKzFEQTA7MURBMDsxREEwOzAwNjY7MDA2NjsKKzFEQTE7MURBMTsxREExOzAyNUY7MDI1RjsKKzFEQTI7MURBMjsxREEyOzAyNjE7MDI2MTsKKzFEQTM7MURBMzsxREEzOzAyNjU7MDI2NTsKKzFEQTQ7MURBNDsxREE0OzAyNjg7MDI2ODsKKzFEQTU7MURBNTsxREE1OzAyNjk7MDI2OTsKKzFEQTY7MURBNjsxREE2OzAyNkE7MDI2QTsKKzFEQTc7MURBNzsxREE3OzFEN0I7MUQ3QjsKKzFEQTg7MURBODsxREE4OzAyOUQ7MDI5RDsKKzFEQTk7MURBOTsxREE5OzAyNkQ7MDI2RDsKKzFEQUE7MURBQTsxREFBOzFEODU7MUQ4NTsKKzFEQUI7MURBQjsxREFCOzAyOUY7MDI5RjsKKzFEQUM7MURBQzsxREFDOzAyNzE7MDI3MTsKKzFEQUQ7MURBRDsxREFEOzAyNzA7MDI3MDsKKzFEQUU7MURBRTsxREFFOzAyNzI7MDI3MjsKKzFEQUY7MURBRjsxREFGOzAyNzM7MDI3MzsKKzFEQjA7MURCMDsxREIwOzAyNzQ7MDI3NDsKKzFEQjE7MURCMTsxREIxOzAyNzU7MDI3NTsKKzFEQjI7MURCMjsxREIyOzAyNzg7MDI3ODsKKzFEQjM7MURCMzsxREIzOzAyODI7MDI4MjsKKzFEQjQ7MURCNDsxREI0OzAyODM7MDI4MzsKKzFEQjU7MURCNTsxREI1OzAxQUI7MDFBQjsKKzFEQjY7MURCNjsxREI2OzAyODk7MDI4OTsKKzFEQjc7MURCNzsxREI3OzAyOEE7MDI4QTsKKzFEQjg7MURCODsxREI4OzFEMUM7MUQxQzsKKzFEQjk7MURCOTsxREI5OzAyOEI7MDI4QjsKKzFEQkE7MURCQTsxREJBOzAyOEM7MDI4QzsKKzFEQkI7MURCQjsxREJCOzAwN0E7MDA3QTsKKzFEQkM7MURCQzsxREJDOzAyOTA7MDI5MDsKKzFEQkQ7MURCRDsxREJEOzAyOTE7MDI5MTsKKzFEQkU7MURCRTsxREJFOzAyOTI7MDI5MjsKKzFEQkY7MURCRjsxREJGOzAzQjg7MDNCODsKKzFFMDA7MUUwMDswMDQxIDAzMjU7MUUwMDswMDQxIDAzMjU7CisxRTAxOzFFMDE7MDA2MSAwMzI1OzFFMDE7MDA2MSAwMzI1OworMUUwMjsxRTAyOzAwNDIgMDMwNzsxRTAyOzAwNDIgMDMwNzsKKzFFMDM7MUUwMzswMDYyIDAzMDc7MUUwMzswMDYyIDAzMDc7CisxRTA0OzFFMDQ7MDA0MiAwMzIzOzFFMDQ7MDA0MiAwMzIzOworMUUwNTsxRTA1OzAwNjIgMDMyMzsxRTA1OzAwNjIgMDMyMzsKKzFFMDY7MUUwNjswMDQyIDAzMzE7MUUwNjswMDQyIDAzMzE7CisxRTA3OzFFMDc7MDA2MiAwMzMxOzFFMDc7MDA2MiAwMzMxOworMUUwODsxRTA4OzAwNDMgMDMyNyAwMzAxOzFFMDg7MDA0MyAwMzI3IDAzMDE7CisxRTA5OzFFMDk7MDA2MyAwMzI3IDAzMDE7MUUwOTswMDYzIDAzMjcgMDMwMTsKKzFFMEE7MUUwQTswMDQ0IDAzMDc7MUUwQTswMDQ0IDAzMDc7CisxRTBCOzFFMEI7MDA2NCAwMzA3OzFFMEI7MDA2NCAwMzA3OworMUUwQzsxRTBDOzAwNDQgMDMyMzsxRTBDOzAwNDQgMDMyMzsKKzFFMEQ7MUUwRDswMDY0IDAzMjM7MUUwRDswMDY0IDAzMjM7CisxRTBFOzFFMEU7MDA0NCAwMzMxOzFFMEU7MDA0NCAwMzMxOworMUUwRjsxRTBGOzAwNjQgMDMzMTsxRTBGOzAwNjQgMDMzMTsKKzFFMTA7MUUxMDswMDQ0IDAzMjc7MUUxMDswMDQ0IDAzMjc7CisxRTExOzFFMTE7MDA2NCAwMzI3OzFFMTE7MDA2NCAwMzI3OworMUUxMjsxRTEyOzAwNDQgMDMyRDsxRTEyOzAwNDQgMDMyRDsKKzFFMTM7MUUxMzswMDY0IDAzMkQ7MUUxMzswMDY0IDAzMkQ7CisxRTE0OzFFMTQ7MDA0NSAwMzA0IDAzMDA7MUUxNDswMDQ1IDAzMDQgMDMwMDsKKzFFMTU7MUUxNTswMDY1IDAzMDQgMDMwMDsxRTE1OzAwNjUgMDMwNCAwMzAwOworMUUxNjsxRTE2OzAwNDUgMDMwNCAwMzAxOzFFMTY7MDA0NSAwMzA0IDAzMDE7CisxRTE3OzFFMTc7MDA2NSAwMzA0IDAzMDE7MUUxNzswMDY1IDAzMDQgMDMwMTsKKzFFMTg7MUUxODswMDQ1IDAzMkQ7MUUxODswMDQ1IDAzMkQ7CisxRTE5OzFFMTk7MDA2NSAwMzJEOzFFMTk7MDA2NSAwMzJEOworMUUxQTsxRTFBOzAwNDUgMDMzMDsxRTFBOzAwNDUgMDMzMDsKKzFFMUI7MUUxQjswMDY1IDAzMzA7MUUxQjswMDY1IDAzMzA7CisxRTFDOzFFMUM7MDA0NSAwMzI3IDAzMDY7MUUxQzswMDQ1IDAzMjcgMDMwNjsKKzFFMUQ7MUUxRDswMDY1IDAzMjcgMDMwNjsxRTFEOzAwNjUgMDMyNyAwMzA2OworMUUxRTsxRTFFOzAwNDYgMDMwNzsxRTFFOzAwNDYgMDMwNzsKKzFFMUY7MUUxRjswMDY2IDAzMDc7MUUxRjswMDY2IDAzMDc7CisxRTIwOzFFMjA7MDA0NyAwMzA0OzFFMjA7MDA0NyAwMzA0OworMUUyMTsxRTIxOzAwNjcgMDMwNDsxRTIxOzAwNjcgMDMwNDsKKzFFMjI7MUUyMjswMDQ4IDAzMDc7MUUyMjswMDQ4IDAzMDc7CisxRTIzOzFFMjM7MDA2OCAwMzA3OzFFMjM7MDA2OCAwMzA3OworMUUyNDsxRTI0OzAwNDggMDMyMzsxRTI0OzAwNDggMDMyMzsKKzFFMjU7MUUyNTswMDY4IDAzMjM7MUUyNTswMDY4IDAzMjM7CisxRTI2OzFFMjY7MDA0OCAwMzA4OzFFMjY7MDA0OCAwMzA4OworMUUyNzsxRTI3OzAwNjggMDMwODsxRTI3OzAwNjggMDMwODsKKzFFMjg7MUUyODswMDQ4IDAzMjc7MUUyODswMDQ4IDAzMjc7CisxRTI5OzFFMjk7MDA2OCAwMzI3OzFFMjk7MDA2OCAwMzI3OworMUUyQTsxRTJBOzAwNDggMDMyRTsxRTJBOzAwNDggMDMyRTsKKzFFMkI7MUUyQjswMDY4IDAzMkU7MUUyQjswMDY4IDAzMkU7CisxRTJDOzFFMkM7MDA0OSAwMzMwOzFFMkM7MDA0OSAwMzMwOworMUUyRDsxRTJEOzAwNjkgMDMzMDsxRTJEOzAwNjkgMDMzMDsKKzFFMkU7MUUyRTswMDQ5IDAzMDggMDMwMTsxRTJFOzAwNDkgMDMwOCAwMzAxOworMUUyRjsxRTJGOzAwNjkgMDMwOCAwMzAxOzFFMkY7MDA2OSAwMzA4IDAzMDE7CisxRTMwOzFFMzA7MDA0QiAwMzAxOzFFMzA7MDA0QiAwMzAxOworMUUzMTsxRTMxOzAwNkIgMDMwMTsxRTMxOzAwNkIgMDMwMTsKKzFFMzI7MUUzMjswMDRCIDAzMjM7MUUzMjswMDRCIDAzMjM7CisxRTMzOzFFMzM7MDA2QiAwMzIzOzFFMzM7MDA2QiAwMzIzOworMUUzNDsxRTM0OzAwNEIgMDMzMTsxRTM0OzAwNEIgMDMzMTsKKzFFMzU7MUUzNTswMDZCIDAzMzE7MUUzNTswMDZCIDAzMzE7CisxRTM2OzFFMzY7MDA0QyAwMzIzOzFFMzY7MDA0QyAwMzIzOworMUUzNzsxRTM3OzAwNkMgMDMyMzsxRTM3OzAwNkMgMDMyMzsKKzFFMzg7MUUzODswMDRDIDAzMjMgMDMwNDsxRTM4OzAwNEMgMDMyMyAwMzA0OworMUUzOTsxRTM5OzAwNkMgMDMyMyAwMzA0OzFFMzk7MDA2QyAwMzIzIDAzMDQ7CisxRTNBOzFFM0E7MDA0QyAwMzMxOzFFM0E7MDA0QyAwMzMxOworMUUzQjsxRTNCOzAwNkMgMDMzMTsxRTNCOzAwNkMgMDMzMTsKKzFFM0M7MUUzQzswMDRDIDAzMkQ7MUUzQzswMDRDIDAzMkQ7CisxRTNEOzFFM0Q7MDA2QyAwMzJEOzFFM0Q7MDA2QyAwMzJEOworMUUzRTsxRTNFOzAwNEQgMDMwMTsxRTNFOzAwNEQgMDMwMTsKKzFFM0Y7MUUzRjswMDZEIDAzMDE7MUUzRjswMDZEIDAzMDE7CisxRTQwOzFFNDA7MDA0RCAwMzA3OzFFNDA7MDA0RCAwMzA3OworMUU0MTsxRTQxOzAwNkQgMDMwNzsxRTQxOzAwNkQgMDMwNzsKKzFFNDI7MUU0MjswMDREIDAzMjM7MUU0MjswMDREIDAzMjM7CisxRTQzOzFFNDM7MDA2RCAwMzIzOzFFNDM7MDA2RCAwMzIzOworMUU0NDsxRTQ0OzAwNEUgMDMwNzsxRTQ0OzAwNEUgMDMwNzsKKzFFNDU7MUU0NTswMDZFIDAzMDc7MUU0NTswMDZFIDAzMDc7CisxRTQ2OzFFNDY7MDA0RSAwMzIzOzFFNDY7MDA0RSAwMzIzOworMUU0NzsxRTQ3OzAwNkUgMDMyMzsxRTQ3OzAwNkUgMDMyMzsKKzFFNDg7MUU0ODswMDRFIDAzMzE7MUU0ODswMDRFIDAzMzE7CisxRTQ5OzFFNDk7MDA2RSAwMzMxOzFFNDk7MDA2RSAwMzMxOworMUU0QTsxRTRBOzAwNEUgMDMyRDsxRTRBOzAwNEUgMDMyRDsKKzFFNEI7MUU0QjswMDZFIDAzMkQ7MUU0QjswMDZFIDAzMkQ7CisxRTRDOzFFNEM7MDA0RiAwMzAzIDAzMDE7MUU0QzswMDRGIDAzMDMgMDMwMTsKKzFFNEQ7MUU0RDswMDZGIDAzMDMgMDMwMTsxRTREOzAwNkYgMDMwMyAwMzAxOworMUU0RTsxRTRFOzAwNEYgMDMwMyAwMzA4OzFFNEU7MDA0RiAwMzAzIDAzMDg7CisxRTRGOzFFNEY7MDA2RiAwMzAzIDAzMDg7MUU0RjswMDZGIDAzMDMgMDMwODsKKzFFNTA7MUU1MDswMDRGIDAzMDQgMDMwMDsxRTUwOzAwNEYgMDMwNCAwMzAwOworMUU1MTsxRTUxOzAwNkYgMDMwNCAwMzAwOzFFNTE7MDA2RiAwMzA0IDAzMDA7CisxRTUyOzFFNTI7MDA0RiAwMzA0IDAzMDE7MUU1MjswMDRGIDAzMDQgMDMwMTsKKzFFNTM7MUU1MzswMDZGIDAzMDQgMDMwMTsxRTUzOzAwNkYgMDMwNCAwMzAxOworMUU1NDsxRTU0OzAwNTAgMDMwMTsxRTU0OzAwNTAgMDMwMTsKKzFFNTU7MUU1NTswMDcwIDAzMDE7MUU1NTswMDcwIDAzMDE7CisxRTU2OzFFNTY7MDA1MCAwMzA3OzFFNTY7MDA1MCAwMzA3OworMUU1NzsxRTU3OzAwNzAgMDMwNzsxRTU3OzAwNzAgMDMwNzsKKzFFNTg7MUU1ODswMDUyIDAzMDc7MUU1ODswMDUyIDAzMDc7CisxRTU5OzFFNTk7MDA3MiAwMzA3OzFFNTk7MDA3MiAwMzA3OworMUU1QTsxRTVBOzAwNTIgMDMyMzsxRTVBOzAwNTIgMDMyMzsKKzFFNUI7MUU1QjswMDcyIDAzMjM7MUU1QjswMDcyIDAzMjM7CisxRTVDOzFFNUM7MDA1MiAwMzIzIDAzMDQ7MUU1QzswMDUyIDAzMjMgMDMwNDsKKzFFNUQ7MUU1RDswMDcyIDAzMjMgMDMwNDsxRTVEOzAwNzIgMDMyMyAwMzA0OworMUU1RTsxRTVFOzAwNTIgMDMzMTsxRTVFOzAwNTIgMDMzMTsKKzFFNUY7MUU1RjswMDcyIDAzMzE7MUU1RjswMDcyIDAzMzE7CisxRTYwOzFFNjA7MDA1MyAwMzA3OzFFNjA7MDA1MyAwMzA3OworMUU2MTsxRTYxOzAwNzMgMDMwNzsxRTYxOzAwNzMgMDMwNzsKKzFFNjI7MUU2MjswMDUzIDAzMjM7MUU2MjswMDUzIDAzMjM7CisxRTYzOzFFNjM7MDA3MyAwMzIzOzFFNjM7MDA3MyAwMzIzOworMUU2NDsxRTY0OzAwNTMgMDMwMSAwMzA3OzFFNjQ7MDA1MyAwMzAxIDAzMDc7CisxRTY1OzFFNjU7MDA3MyAwMzAxIDAzMDc7MUU2NTswMDczIDAzMDEgMDMwNzsKKzFFNjY7MUU2NjswMDUzIDAzMEMgMDMwNzsxRTY2OzAwNTMgMDMwQyAwMzA3OworMUU2NzsxRTY3OzAwNzMgMDMwQyAwMzA3OzFFNjc7MDA3MyAwMzBDIDAzMDc7CisxRTY4OzFFNjg7MDA1MyAwMzIzIDAzMDc7MUU2ODswMDUzIDAzMjMgMDMwNzsKKzFFNjk7MUU2OTswMDczIDAzMjMgMDMwNzsxRTY5OzAwNzMgMDMyMyAwMzA3OworMUU2QTsxRTZBOzAwNTQgMDMwNzsxRTZBOzAwNTQgMDMwNzsKKzFFNkI7MUU2QjswMDc0IDAzMDc7MUU2QjswMDc0IDAzMDc7CisxRTZDOzFFNkM7MDA1NCAwMzIzOzFFNkM7MDA1NCAwMzIzOworMUU2RDsxRTZEOzAwNzQgMDMyMzsxRTZEOzAwNzQgMDMyMzsKKzFFNkU7MUU2RTswMDU0IDAzMzE7MUU2RTswMDU0IDAzMzE7CisxRTZGOzFFNkY7MDA3NCAwMzMxOzFFNkY7MDA3NCAwMzMxOworMUU3MDsxRTcwOzAwNTQgMDMyRDsxRTcwOzAwNTQgMDMyRDsKKzFFNzE7MUU3MTswMDc0IDAzMkQ7MUU3MTswMDc0IDAzMkQ7CisxRTcyOzFFNzI7MDA1NSAwMzI0OzFFNzI7MDA1NSAwMzI0OworMUU3MzsxRTczOzAwNzUgMDMyNDsxRTczOzAwNzUgMDMyNDsKKzFFNzQ7MUU3NDswMDU1IDAzMzA7MUU3NDswMDU1IDAzMzA7CisxRTc1OzFFNzU7MDA3NSAwMzMwOzFFNzU7MDA3NSAwMzMwOworMUU3NjsxRTc2OzAwNTUgMDMyRDsxRTc2OzAwNTUgMDMyRDsKKzFFNzc7MUU3NzswMDc1IDAzMkQ7MUU3NzswMDc1IDAzMkQ7CisxRTc4OzFFNzg7MDA1NSAwMzAzIDAzMDE7MUU3ODswMDU1IDAzMDMgMDMwMTsKKzFFNzk7MUU3OTswMDc1IDAzMDMgMDMwMTsxRTc5OzAwNzUgMDMwMyAwMzAxOworMUU3QTsxRTdBOzAwNTUgMDMwNCAwMzA4OzFFN0E7MDA1NSAwMzA0IDAzMDg7CisxRTdCOzFFN0I7MDA3NSAwMzA0IDAzMDg7MUU3QjswMDc1IDAzMDQgMDMwODsKKzFFN0M7MUU3QzswMDU2IDAzMDM7MUU3QzswMDU2IDAzMDM7CisxRTdEOzFFN0Q7MDA3NiAwMzAzOzFFN0Q7MDA3NiAwMzAzOworMUU3RTsxRTdFOzAwNTYgMDMyMzsxRTdFOzAwNTYgMDMyMzsKKzFFN0Y7MUU3RjswMDc2IDAzMjM7MUU3RjswMDc2IDAzMjM7CisxRTgwOzFFODA7MDA1NyAwMzAwOzFFODA7MDA1NyAwMzAwOworMUU4MTsxRTgxOzAwNzcgMDMwMDsxRTgxOzAwNzcgMDMwMDsKKzFFODI7MUU4MjswMDU3IDAzMDE7MUU4MjswMDU3IDAzMDE7CisxRTgzOzFFODM7MDA3NyAwMzAxOzFFODM7MDA3NyAwMzAxOworMUU4NDsxRTg0OzAwNTcgMDMwODsxRTg0OzAwNTcgMDMwODsKKzFFODU7MUU4NTswMDc3IDAzMDg7MUU4NTswMDc3IDAzMDg7CisxRTg2OzFFODY7MDA1NyAwMzA3OzFFODY7MDA1NyAwMzA3OworMUU4NzsxRTg3OzAwNzcgMDMwNzsxRTg3OzAwNzcgMDMwNzsKKzFFODg7MUU4ODswMDU3IDAzMjM7MUU4ODswMDU3IDAzMjM7CisxRTg5OzFFODk7MDA3NyAwMzIzOzFFODk7MDA3NyAwMzIzOworMUU4QTsxRThBOzAwNTggMDMwNzsxRThBOzAwNTggMDMwNzsKKzFFOEI7MUU4QjswMDc4IDAzMDc7MUU4QjswMDc4IDAzMDc7CisxRThDOzFFOEM7MDA1OCAwMzA4OzFFOEM7MDA1OCAwMzA4OworMUU4RDsxRThEOzAwNzggMDMwODsxRThEOzAwNzggMDMwODsKKzFFOEU7MUU4RTswMDU5IDAzMDc7MUU4RTswMDU5IDAzMDc7CisxRThGOzFFOEY7MDA3OSAwMzA3OzFFOEY7MDA3OSAwMzA3OworMUU5MDsxRTkwOzAwNUEgMDMwMjsxRTkwOzAwNUEgMDMwMjsKKzFFOTE7MUU5MTswMDdBIDAzMDI7MUU5MTswMDdBIDAzMDI7CisxRTkyOzFFOTI7MDA1QSAwMzIzOzFFOTI7MDA1QSAwMzIzOworMUU5MzsxRTkzOzAwN0EgMDMyMzsxRTkzOzAwN0EgMDMyMzsKKzFFOTQ7MUU5NDswMDVBIDAzMzE7MUU5NDswMDVBIDAzMzE7CisxRTk1OzFFOTU7MDA3QSAwMzMxOzFFOTU7MDA3QSAwMzMxOworMUU5NjsxRTk2OzAwNjggMDMzMTsxRTk2OzAwNjggMDMzMTsKKzFFOTc7MUU5NzswMDc0IDAzMDg7MUU5NzswMDc0IDAzMDg7CisxRTk4OzFFOTg7MDA3NyAwMzBBOzFFOTg7MDA3NyAwMzBBOworMUU5OTsxRTk5OzAwNzkgMDMwQTsxRTk5OzAwNzkgMDMwQTsKKzFFOUE7MUU5QTsxRTlBOzAwNjEgMDJCRTswMDYxIDAyQkU7CisxRTlCOzFFOUI7MDE3RiAwMzA3OzFFNjE7MDA3MyAwMzA3OworMUVBMDsxRUEwOzAwNDEgMDMyMzsxRUEwOzAwNDEgMDMyMzsKKzFFQTE7MUVBMTswMDYxIDAzMjM7MUVBMTswMDYxIDAzMjM7CisxRUEyOzFFQTI7MDA0MSAwMzA5OzFFQTI7MDA0MSAwMzA5OworMUVBMzsxRUEzOzAwNjEgMDMwOTsxRUEzOzAwNjEgMDMwOTsKKzFFQTQ7MUVBNDswMDQxIDAzMDIgMDMwMTsxRUE0OzAwNDEgMDMwMiAwMzAxOworMUVBNTsxRUE1OzAwNjEgMDMwMiAwMzAxOzFFQTU7MDA2MSAwMzAyIDAzMDE7CisxRUE2OzFFQTY7MDA0MSAwMzAyIDAzMDA7MUVBNjswMDQxIDAzMDIgMDMwMDsKKzFFQTc7MUVBNzswMDYxIDAzMDIgMDMwMDsxRUE3OzAwNjEgMDMwMiAwMzAwOworMUVBODsxRUE4OzAwNDEgMDMwMiAwMzA5OzFFQTg7MDA0MSAwMzAyIDAzMDk7CisxRUE5OzFFQTk7MDA2MSAwMzAyIDAzMDk7MUVBOTswMDYxIDAzMDIgMDMwOTsKKzFFQUE7MUVBQTswMDQxIDAzMDIgMDMwMzsxRUFBOzAwNDEgMDMwMiAwMzAzOworMUVBQjsxRUFCOzAwNjEgMDMwMiAwMzAzOzFFQUI7MDA2MSAwMzAyIDAzMDM7CisxRUFDOzFFQUM7MDA0MSAwMzIzIDAzMDI7MUVBQzswMDQxIDAzMjMgMDMwMjsKKzFFQUQ7MUVBRDswMDYxIDAzMjMgMDMwMjsxRUFEOzAwNjEgMDMyMyAwMzAyOworMUVBRTsxRUFFOzAwNDEgMDMwNiAwMzAxOzFFQUU7MDA0MSAwMzA2IDAzMDE7CisxRUFGOzFFQUY7MDA2MSAwMzA2IDAzMDE7MUVBRjswMDYxIDAzMDYgMDMwMTsKKzFFQjA7MUVCMDswMDQxIDAzMDYgMDMwMDsxRUIwOzAwNDEgMDMwNiAwMzAwOworMUVCMTsxRUIxOzAwNjEgMDMwNiAwMzAwOzFFQjE7MDA2MSAwMzA2IDAzMDA7CisxRUIyOzFFQjI7MDA0MSAwMzA2IDAzMDk7MUVCMjswMDQxIDAzMDYgMDMwOTsKKzFFQjM7MUVCMzswMDYxIDAzMDYgMDMwOTsxRUIzOzAwNjEgMDMwNiAwMzA5OworMUVCNDsxRUI0OzAwNDEgMDMwNiAwMzAzOzFFQjQ7MDA0MSAwMzA2IDAzMDM7CisxRUI1OzFFQjU7MDA2MSAwMzA2IDAzMDM7MUVCNTswMDYxIDAzMDYgMDMwMzsKKzFFQjY7MUVCNjswMDQxIDAzMjMgMDMwNjsxRUI2OzAwNDEgMDMyMyAwMzA2OworMUVCNzsxRUI3OzAwNjEgMDMyMyAwMzA2OzFFQjc7MDA2MSAwMzIzIDAzMDY7CisxRUI4OzFFQjg7MDA0NSAwMzIzOzFFQjg7MDA0NSAwMzIzOworMUVCOTsxRUI5OzAwNjUgMDMyMzsxRUI5OzAwNjUgMDMyMzsKKzFFQkE7MUVCQTswMDQ1IDAzMDk7MUVCQTswMDQ1IDAzMDk7CisxRUJCOzFFQkI7MDA2NSAwMzA5OzFFQkI7MDA2NSAwMzA5OworMUVCQzsxRUJDOzAwNDUgMDMwMzsxRUJDOzAwNDUgMDMwMzsKKzFFQkQ7MUVCRDswMDY1IDAzMDM7MUVCRDswMDY1IDAzMDM7CisxRUJFOzFFQkU7MDA0NSAwMzAyIDAzMDE7MUVCRTswMDQ1IDAzMDIgMDMwMTsKKzFFQkY7MUVCRjswMDY1IDAzMDIgMDMwMTsxRUJGOzAwNjUgMDMwMiAwMzAxOworMUVDMDsxRUMwOzAwNDUgMDMwMiAwMzAwOzFFQzA7MDA0NSAwMzAyIDAzMDA7CisxRUMxOzFFQzE7MDA2NSAwMzAyIDAzMDA7MUVDMTswMDY1IDAzMDIgMDMwMDsKKzFFQzI7MUVDMjswMDQ1IDAzMDIgMDMwOTsxRUMyOzAwNDUgMDMwMiAwMzA5OworMUVDMzsxRUMzOzAwNjUgMDMwMiAwMzA5OzFFQzM7MDA2NSAwMzAyIDAzMDk7CisxRUM0OzFFQzQ7MDA0NSAwMzAyIDAzMDM7MUVDNDswMDQ1IDAzMDIgMDMwMzsKKzFFQzU7MUVDNTswMDY1IDAzMDIgMDMwMzsxRUM1OzAwNjUgMDMwMiAwMzAzOworMUVDNjsxRUM2OzAwNDUgMDMyMyAwMzAyOzFFQzY7MDA0NSAwMzIzIDAzMDI7CisxRUM3OzFFQzc7MDA2NSAwMzIzIDAzMDI7MUVDNzswMDY1IDAzMjMgMDMwMjsKKzFFQzg7MUVDODswMDQ5IDAzMDk7MUVDODswMDQ5IDAzMDk7CisxRUM5OzFFQzk7MDA2OSAwMzA5OzFFQzk7MDA2OSAwMzA5OworMUVDQTsxRUNBOzAwNDkgMDMyMzsxRUNBOzAwNDkgMDMyMzsKKzFFQ0I7MUVDQjswMDY5IDAzMjM7MUVDQjswMDY5IDAzMjM7CisxRUNDOzFFQ0M7MDA0RiAwMzIzOzFFQ0M7MDA0RiAwMzIzOworMUVDRDsxRUNEOzAwNkYgMDMyMzsxRUNEOzAwNkYgMDMyMzsKKzFFQ0U7MUVDRTswMDRGIDAzMDk7MUVDRTswMDRGIDAzMDk7CisxRUNGOzFFQ0Y7MDA2RiAwMzA5OzFFQ0Y7MDA2RiAwMzA5OworMUVEMDsxRUQwOzAwNEYgMDMwMiAwMzAxOzFFRDA7MDA0RiAwMzAyIDAzMDE7CisxRUQxOzFFRDE7MDA2RiAwMzAyIDAzMDE7MUVEMTswMDZGIDAzMDIgMDMwMTsKKzFFRDI7MUVEMjswMDRGIDAzMDIgMDMwMDsxRUQyOzAwNEYgMDMwMiAwMzAwOworMUVEMzsxRUQzOzAwNkYgMDMwMiAwMzAwOzFFRDM7MDA2RiAwMzAyIDAzMDA7CisxRUQ0OzFFRDQ7MDA0RiAwMzAyIDAzMDk7MUVENDswMDRGIDAzMDIgMDMwOTsKKzFFRDU7MUVENTswMDZGIDAzMDIgMDMwOTsxRUQ1OzAwNkYgMDMwMiAwMzA5OworMUVENjsxRUQ2OzAwNEYgMDMwMiAwMzAzOzFFRDY7MDA0RiAwMzAyIDAzMDM7CisxRUQ3OzFFRDc7MDA2RiAwMzAyIDAzMDM7MUVENzswMDZGIDAzMDIgMDMwMzsKKzFFRDg7MUVEODswMDRGIDAzMjMgMDMwMjsxRUQ4OzAwNEYgMDMyMyAwMzAyOworMUVEOTsxRUQ5OzAwNkYgMDMyMyAwMzAyOzFFRDk7MDA2RiAwMzIzIDAzMDI7CisxRURBOzFFREE7MDA0RiAwMzFCIDAzMDE7MUVEQTswMDRGIDAzMUIgMDMwMTsKKzFFREI7MUVEQjswMDZGIDAzMUIgMDMwMTsxRURCOzAwNkYgMDMxQiAwMzAxOworMUVEQzsxRURDOzAwNEYgMDMxQiAwMzAwOzFFREM7MDA0RiAwMzFCIDAzMDA7CisxRUREOzFFREQ7MDA2RiAwMzFCIDAzMDA7MUVERDswMDZGIDAzMUIgMDMwMDsKKzFFREU7MUVERTswMDRGIDAzMUIgMDMwOTsxRURFOzAwNEYgMDMxQiAwMzA5OworMUVERjsxRURGOzAwNkYgMDMxQiAwMzA5OzFFREY7MDA2RiAwMzFCIDAzMDk7CisxRUUwOzFFRTA7MDA0RiAwMzFCIDAzMDM7MUVFMDswMDRGIDAzMUIgMDMwMzsKKzFFRTE7MUVFMTswMDZGIDAzMUIgMDMwMzsxRUUxOzAwNkYgMDMxQiAwMzAzOworMUVFMjsxRUUyOzAwNEYgMDMxQiAwMzIzOzFFRTI7MDA0RiAwMzFCIDAzMjM7CisxRUUzOzFFRTM7MDA2RiAwMzFCIDAzMjM7MUVFMzswMDZGIDAzMUIgMDMyMzsKKzFFRTQ7MUVFNDswMDU1IDAzMjM7MUVFNDswMDU1IDAzMjM7CisxRUU1OzFFRTU7MDA3NSAwMzIzOzFFRTU7MDA3NSAwMzIzOworMUVFNjsxRUU2OzAwNTUgMDMwOTsxRUU2OzAwNTUgMDMwOTsKKzFFRTc7MUVFNzswMDc1IDAzMDk7MUVFNzswMDc1IDAzMDk7CisxRUU4OzFFRTg7MDA1NSAwMzFCIDAzMDE7MUVFODswMDU1IDAzMUIgMDMwMTsKKzFFRTk7MUVFOTswMDc1IDAzMUIgMDMwMTsxRUU5OzAwNzUgMDMxQiAwMzAxOworMUVFQTsxRUVBOzAwNTUgMDMxQiAwMzAwOzFFRUE7MDA1NSAwMzFCIDAzMDA7CisxRUVCOzFFRUI7MDA3NSAwMzFCIDAzMDA7MUVFQjswMDc1IDAzMUIgMDMwMDsKKzFFRUM7MUVFQzswMDU1IDAzMUIgMDMwOTsxRUVDOzAwNTUgMDMxQiAwMzA5OworMUVFRDsxRUVEOzAwNzUgMDMxQiAwMzA5OzFFRUQ7MDA3NSAwMzFCIDAzMDk7CisxRUVFOzFFRUU7MDA1NSAwMzFCIDAzMDM7MUVFRTswMDU1IDAzMUIgMDMwMzsKKzFFRUY7MUVFRjswMDc1IDAzMUIgMDMwMzsxRUVGOzAwNzUgMDMxQiAwMzAzOworMUVGMDsxRUYwOzAwNTUgMDMxQiAwMzIzOzFFRjA7MDA1NSAwMzFCIDAzMjM7CisxRUYxOzFFRjE7MDA3NSAwMzFCIDAzMjM7MUVGMTswMDc1IDAzMUIgMDMyMzsKKzFFRjI7MUVGMjswMDU5IDAzMDA7MUVGMjswMDU5IDAzMDA7CisxRUYzOzFFRjM7MDA3OSAwMzAwOzFFRjM7MDA3OSAwMzAwOworMUVGNDsxRUY0OzAwNTkgMDMyMzsxRUY0OzAwNTkgMDMyMzsKKzFFRjU7MUVGNTswMDc5IDAzMjM7MUVGNTswMDc5IDAzMjM7CisxRUY2OzFFRjY7MDA1OSAwMzA5OzFFRjY7MDA1OSAwMzA5OworMUVGNzsxRUY3OzAwNzkgMDMwOTsxRUY3OzAwNzkgMDMwOTsKKzFFRjg7MUVGODswMDU5IDAzMDM7MUVGODswMDU5IDAzMDM7CisxRUY5OzFFRjk7MDA3OSAwMzAzOzFFRjk7MDA3OSAwMzAzOworMUYwMDsxRjAwOzAzQjEgMDMxMzsxRjAwOzAzQjEgMDMxMzsKKzFGMDE7MUYwMTswM0IxIDAzMTQ7MUYwMTswM0IxIDAzMTQ7CisxRjAyOzFGMDI7MDNCMSAwMzEzIDAzMDA7MUYwMjswM0IxIDAzMTMgMDMwMDsKKzFGMDM7MUYwMzswM0IxIDAzMTQgMDMwMDsxRjAzOzAzQjEgMDMxNCAwMzAwOworMUYwNDsxRjA0OzAzQjEgMDMxMyAwMzAxOzFGMDQ7MDNCMSAwMzEzIDAzMDE7CisxRjA1OzFGMDU7MDNCMSAwMzE0IDAzMDE7MUYwNTswM0IxIDAzMTQgMDMwMTsKKzFGMDY7MUYwNjswM0IxIDAzMTMgMDM0MjsxRjA2OzAzQjEgMDMxMyAwMzQyOworMUYwNzsxRjA3OzAzQjEgMDMxNCAwMzQyOzFGMDc7MDNCMSAwMzE0IDAzNDI7CisxRjA4OzFGMDg7MDM5MSAwMzEzOzFGMDg7MDM5MSAwMzEzOworMUYwOTsxRjA5OzAzOTEgMDMxNDsxRjA5OzAzOTEgMDMxNDsKKzFGMEE7MUYwQTswMzkxIDAzMTMgMDMwMDsxRjBBOzAzOTEgMDMxMyAwMzAwOworMUYwQjsxRjBCOzAzOTEgMDMxNCAwMzAwOzFGMEI7MDM5MSAwMzE0IDAzMDA7CisxRjBDOzFGMEM7MDM5MSAwMzEzIDAzMDE7MUYwQzswMzkxIDAzMTMgMDMwMTsKKzFGMEQ7MUYwRDswMzkxIDAzMTQgMDMwMTsxRjBEOzAzOTEgMDMxNCAwMzAxOworMUYwRTsxRjBFOzAzOTEgMDMxMyAwMzQyOzFGMEU7MDM5MSAwMzEzIDAzNDI7CisxRjBGOzFGMEY7MDM5MSAwMzE0IDAzNDI7MUYwRjswMzkxIDAzMTQgMDM0MjsKKzFGMTA7MUYxMDswM0I1IDAzMTM7MUYxMDswM0I1IDAzMTM7CisxRjExOzFGMTE7MDNCNSAwMzE0OzFGMTE7MDNCNSAwMzE0OworMUYxMjsxRjEyOzAzQjUgMDMxMyAwMzAwOzFGMTI7MDNCNSAwMzEzIDAzMDA7CisxRjEzOzFGMTM7MDNCNSAwMzE0IDAzMDA7MUYxMzswM0I1IDAzMTQgMDMwMDsKKzFGMTQ7MUYxNDswM0I1IDAzMTMgMDMwMTsxRjE0OzAzQjUgMDMxMyAwMzAxOworMUYxNTsxRjE1OzAzQjUgMDMxNCAwMzAxOzFGMTU7MDNCNSAwMzE0IDAzMDE7CisxRjE4OzFGMTg7MDM5NSAwMzEzOzFGMTg7MDM5NSAwMzEzOworMUYxOTsxRjE5OzAzOTUgMDMxNDsxRjE5OzAzOTUgMDMxNDsKKzFGMUE7MUYxQTswMzk1IDAzMTMgMDMwMDsxRjFBOzAzOTUgMDMxMyAwMzAwOworMUYxQjsxRjFCOzAzOTUgMDMxNCAwMzAwOzFGMUI7MDM5NSAwMzE0IDAzMDA7CisxRjFDOzFGMUM7MDM5NSAwMzEzIDAzMDE7MUYxQzswMzk1IDAzMTMgMDMwMTsKKzFGMUQ7MUYxRDswMzk1IDAzMTQgMDMwMTsxRjFEOzAzOTUgMDMxNCAwMzAxOworMUYyMDsxRjIwOzAzQjcgMDMxMzsxRjIwOzAzQjcgMDMxMzsKKzFGMjE7MUYyMTswM0I3IDAzMTQ7MUYyMTswM0I3IDAzMTQ7CisxRjIyOzFGMjI7MDNCNyAwMzEzIDAzMDA7MUYyMjswM0I3IDAzMTMgMDMwMDsKKzFGMjM7MUYyMzswM0I3IDAzMTQgMDMwMDsxRjIzOzAzQjcgMDMxNCAwMzAwOworMUYyNDsxRjI0OzAzQjcgMDMxMyAwMzAxOzFGMjQ7MDNCNyAwMzEzIDAzMDE7CisxRjI1OzFGMjU7MDNCNyAwMzE0IDAzMDE7MUYyNTswM0I3IDAzMTQgMDMwMTsKKzFGMjY7MUYyNjswM0I3IDAzMTMgMDM0MjsxRjI2OzAzQjcgMDMxMyAwMzQyOworMUYyNzsxRjI3OzAzQjcgMDMxNCAwMzQyOzFGMjc7MDNCNyAwMzE0IDAzNDI7CisxRjI4OzFGMjg7MDM5NyAwMzEzOzFGMjg7MDM5NyAwMzEzOworMUYyOTsxRjI5OzAzOTcgMDMxNDsxRjI5OzAzOTcgMDMxNDsKKzFGMkE7MUYyQTswMzk3IDAzMTMgMDMwMDsxRjJBOzAzOTcgMDMxMyAwMzAwOworMUYyQjsxRjJCOzAzOTcgMDMxNCAwMzAwOzFGMkI7MDM5NyAwMzE0IDAzMDA7CisxRjJDOzFGMkM7MDM5NyAwMzEzIDAzMDE7MUYyQzswMzk3IDAzMTMgMDMwMTsKKzFGMkQ7MUYyRDswMzk3IDAzMTQgMDMwMTsxRjJEOzAzOTcgMDMxNCAwMzAxOworMUYyRTsxRjJFOzAzOTcgMDMxMyAwMzQyOzFGMkU7MDM5NyAwMzEzIDAzNDI7CisxRjJGOzFGMkY7MDM5NyAwMzE0IDAzNDI7MUYyRjswMzk3IDAzMTQgMDM0MjsKKzFGMzA7MUYzMDswM0I5IDAzMTM7MUYzMDswM0I5IDAzMTM7CisxRjMxOzFGMzE7MDNCOSAwMzE0OzFGMzE7MDNCOSAwMzE0OworMUYzMjsxRjMyOzAzQjkgMDMxMyAwMzAwOzFGMzI7MDNCOSAwMzEzIDAzMDA7CisxRjMzOzFGMzM7MDNCOSAwMzE0IDAzMDA7MUYzMzswM0I5IDAzMTQgMDMwMDsKKzFGMzQ7MUYzNDswM0I5IDAzMTMgMDMwMTsxRjM0OzAzQjkgMDMxMyAwMzAxOworMUYzNTsxRjM1OzAzQjkgMDMxNCAwMzAxOzFGMzU7MDNCOSAwMzE0IDAzMDE7CisxRjM2OzFGMzY7MDNCOSAwMzEzIDAzNDI7MUYzNjswM0I5IDAzMTMgMDM0MjsKKzFGMzc7MUYzNzswM0I5IDAzMTQgMDM0MjsxRjM3OzAzQjkgMDMxNCAwMzQyOworMUYzODsxRjM4OzAzOTkgMDMxMzsxRjM4OzAzOTkgMDMxMzsKKzFGMzk7MUYzOTswMzk5IDAzMTQ7MUYzOTswMzk5IDAzMTQ7CisxRjNBOzFGM0E7MDM5OSAwMzEzIDAzMDA7MUYzQTswMzk5IDAzMTMgMDMwMDsKKzFGM0I7MUYzQjswMzk5IDAzMTQgMDMwMDsxRjNCOzAzOTkgMDMxNCAwMzAwOworMUYzQzsxRjNDOzAzOTkgMDMxMyAwMzAxOzFGM0M7MDM5OSAwMzEzIDAzMDE7CisxRjNEOzFGM0Q7MDM5OSAwMzE0IDAzMDE7MUYzRDswMzk5IDAzMTQgMDMwMTsKKzFGM0U7MUYzRTswMzk5IDAzMTMgMDM0MjsxRjNFOzAzOTkgMDMxMyAwMzQyOworMUYzRjsxRjNGOzAzOTkgMDMxNCAwMzQyOzFGM0Y7MDM5OSAwMzE0IDAzNDI7CisxRjQwOzFGNDA7MDNCRiAwMzEzOzFGNDA7MDNCRiAwMzEzOworMUY0MTsxRjQxOzAzQkYgMDMxNDsxRjQxOzAzQkYgMDMxNDsKKzFGNDI7MUY0MjswM0JGIDAzMTMgMDMwMDsxRjQyOzAzQkYgMDMxMyAwMzAwOworMUY0MzsxRjQzOzAzQkYgMDMxNCAwMzAwOzFGNDM7MDNCRiAwMzE0IDAzMDA7CisxRjQ0OzFGNDQ7MDNCRiAwMzEzIDAzMDE7MUY0NDswM0JGIDAzMTMgMDMwMTsKKzFGNDU7MUY0NTswM0JGIDAzMTQgMDMwMTsxRjQ1OzAzQkYgMDMxNCAwMzAxOworMUY0ODsxRjQ4OzAzOUYgMDMxMzsxRjQ4OzAzOUYgMDMxMzsKKzFGNDk7MUY0OTswMzlGIDAzMTQ7MUY0OTswMzlGIDAzMTQ7CisxRjRBOzFGNEE7MDM5RiAwMzEzIDAzMDA7MUY0QTswMzlGIDAzMTMgMDMwMDsKKzFGNEI7MUY0QjswMzlGIDAzMTQgMDMwMDsxRjRCOzAzOUYgMDMxNCAwMzAwOworMUY0QzsxRjRDOzAzOUYgMDMxMyAwMzAxOzFGNEM7MDM5RiAwMzEzIDAzMDE7CisxRjREOzFGNEQ7MDM5RiAwMzE0IDAzMDE7MUY0RDswMzlGIDAzMTQgMDMwMTsKKzFGNTA7MUY1MDswM0M1IDAzMTM7MUY1MDswM0M1IDAzMTM7CisxRjUxOzFGNTE7MDNDNSAwMzE0OzFGNTE7MDNDNSAwMzE0OworMUY1MjsxRjUyOzAzQzUgMDMxMyAwMzAwOzFGNTI7MDNDNSAwMzEzIDAzMDA7CisxRjUzOzFGNTM7MDNDNSAwMzE0IDAzMDA7MUY1MzswM0M1IDAzMTQgMDMwMDsKKzFGNTQ7MUY1NDswM0M1IDAzMTMgMDMwMTsxRjU0OzAzQzUgMDMxMyAwMzAxOworMUY1NTsxRjU1OzAzQzUgMDMxNCAwMzAxOzFGNTU7MDNDNSAwMzE0IDAzMDE7CisxRjU2OzFGNTY7MDNDNSAwMzEzIDAzNDI7MUY1NjswM0M1IDAzMTMgMDM0MjsKKzFGNTc7MUY1NzswM0M1IDAzMTQgMDM0MjsxRjU3OzAzQzUgMDMxNCAwMzQyOworMUY1OTsxRjU5OzAzQTUgMDMxNDsxRjU5OzAzQTUgMDMxNDsKKzFGNUI7MUY1QjswM0E1IDAzMTQgMDMwMDsxRjVCOzAzQTUgMDMxNCAwMzAwOworMUY1RDsxRjVEOzAzQTUgMDMxNCAwMzAxOzFGNUQ7MDNBNSAwMzE0IDAzMDE7CisxRjVGOzFGNUY7MDNBNSAwMzE0IDAzNDI7MUY1RjswM0E1IDAzMTQgMDM0MjsKKzFGNjA7MUY2MDswM0M5IDAzMTM7MUY2MDswM0M5IDAzMTM7CisxRjYxOzFGNjE7MDNDOSAwMzE0OzFGNjE7MDNDOSAwMzE0OworMUY2MjsxRjYyOzAzQzkgMDMxMyAwMzAwOzFGNjI7MDNDOSAwMzEzIDAzMDA7CisxRjYzOzFGNjM7MDNDOSAwMzE0IDAzMDA7MUY2MzswM0M5IDAzMTQgMDMwMDsKKzFGNjQ7MUY2NDswM0M5IDAzMTMgMDMwMTsxRjY0OzAzQzkgMDMxMyAwMzAxOworMUY2NTsxRjY1OzAzQzkgMDMxNCAwMzAxOzFGNjU7MDNDOSAwMzE0IDAzMDE7CisxRjY2OzFGNjY7MDNDOSAwMzEzIDAzNDI7MUY2NjswM0M5IDAzMTMgMDM0MjsKKzFGNjc7MUY2NzswM0M5IDAzMTQgMDM0MjsxRjY3OzAzQzkgMDMxNCAwMzQyOworMUY2ODsxRjY4OzAzQTkgMDMxMzsxRjY4OzAzQTkgMDMxMzsKKzFGNjk7MUY2OTswM0E5IDAzMTQ7MUY2OTswM0E5IDAzMTQ7CisxRjZBOzFGNkE7MDNBOSAwMzEzIDAzMDA7MUY2QTswM0E5IDAzMTMgMDMwMDsKKzFGNkI7MUY2QjswM0E5IDAzMTQgMDMwMDsxRjZCOzAzQTkgMDMxNCAwMzAwOworMUY2QzsxRjZDOzAzQTkgMDMxMyAwMzAxOzFGNkM7MDNBOSAwMzEzIDAzMDE7CisxRjZEOzFGNkQ7MDNBOSAwMzE0IDAzMDE7MUY2RDswM0E5IDAzMTQgMDMwMTsKKzFGNkU7MUY2RTswM0E5IDAzMTMgMDM0MjsxRjZFOzAzQTkgMDMxMyAwMzQyOworMUY2RjsxRjZGOzAzQTkgMDMxNCAwMzQyOzFGNkY7MDNBOSAwMzE0IDAzNDI7CisxRjcwOzFGNzA7MDNCMSAwMzAwOzFGNzA7MDNCMSAwMzAwOworMUY3MTswM0FDOzAzQjEgMDMwMTswM0FDOzAzQjEgMDMwMTsKKzFGNzI7MUY3MjswM0I1IDAzMDA7MUY3MjswM0I1IDAzMDA7CisxRjczOzAzQUQ7MDNCNSAwMzAxOzAzQUQ7MDNCNSAwMzAxOworMUY3NDsxRjc0OzAzQjcgMDMwMDsxRjc0OzAzQjcgMDMwMDsKKzFGNzU7MDNBRTswM0I3IDAzMDE7MDNBRTswM0I3IDAzMDE7CisxRjc2OzFGNzY7MDNCOSAwMzAwOzFGNzY7MDNCOSAwMzAwOworMUY3NzswM0FGOzAzQjkgMDMwMTswM0FGOzAzQjkgMDMwMTsKKzFGNzg7MUY3ODswM0JGIDAzMDA7MUY3ODswM0JGIDAzMDA7CisxRjc5OzAzQ0M7MDNCRiAwMzAxOzAzQ0M7MDNCRiAwMzAxOworMUY3QTsxRjdBOzAzQzUgMDMwMDsxRjdBOzAzQzUgMDMwMDsKKzFGN0I7MDNDRDswM0M1IDAzMDE7MDNDRDswM0M1IDAzMDE7CisxRjdDOzFGN0M7MDNDOSAwMzAwOzFGN0M7MDNDOSAwMzAwOworMUY3RDswM0NFOzAzQzkgMDMwMTswM0NFOzAzQzkgMDMwMTsKKzFGODA7MUY4MDswM0IxIDAzMTMgMDM0NTsxRjgwOzAzQjEgMDMxMyAwMzQ1OworMUY4MTsxRjgxOzAzQjEgMDMxNCAwMzQ1OzFGODE7MDNCMSAwMzE0IDAzNDU7CisxRjgyOzFGODI7MDNCMSAwMzEzIDAzMDAgMDM0NTsxRjgyOzAzQjEgMDMxMyAwMzAwIDAzNDU7CisxRjgzOzFGODM7MDNCMSAwMzE0IDAzMDAgMDM0NTsxRjgzOzAzQjEgMDMxNCAwMzAwIDAzNDU7CisxRjg0OzFGODQ7MDNCMSAwMzEzIDAzMDEgMDM0NTsxRjg0OzAzQjEgMDMxMyAwMzAxIDAzNDU7CisxRjg1OzFGODU7MDNCMSAwMzE0IDAzMDEgMDM0NTsxRjg1OzAzQjEgMDMxNCAwMzAxIDAzNDU7CisxRjg2OzFGODY7MDNCMSAwMzEzIDAzNDIgMDM0NTsxRjg2OzAzQjEgMDMxMyAwMzQyIDAzNDU7CisxRjg3OzFGODc7MDNCMSAwMzE0IDAzNDIgMDM0NTsxRjg3OzAzQjEgMDMxNCAwMzQyIDAzNDU7CisxRjg4OzFGODg7MDM5MSAwMzEzIDAzNDU7MUY4ODswMzkxIDAzMTMgMDM0NTsKKzFGODk7MUY4OTswMzkxIDAzMTQgMDM0NTsxRjg5OzAzOTEgMDMxNCAwMzQ1OworMUY4QTsxRjhBOzAzOTEgMDMxMyAwMzAwIDAzNDU7MUY4QTswMzkxIDAzMTMgMDMwMCAwMzQ1OworMUY4QjsxRjhCOzAzOTEgMDMxNCAwMzAwIDAzNDU7MUY4QjswMzkxIDAzMTQgMDMwMCAwMzQ1OworMUY4QzsxRjhDOzAzOTEgMDMxMyAwMzAxIDAzNDU7MUY4QzswMzkxIDAzMTMgMDMwMSAwMzQ1OworMUY4RDsxRjhEOzAzOTEgMDMxNCAwMzAxIDAzNDU7MUY4RDswMzkxIDAzMTQgMDMwMSAwMzQ1OworMUY4RTsxRjhFOzAzOTEgMDMxMyAwMzQyIDAzNDU7MUY4RTswMzkxIDAzMTMgMDM0MiAwMzQ1OworMUY4RjsxRjhGOzAzOTEgMDMxNCAwMzQyIDAzNDU7MUY4RjswMzkxIDAzMTQgMDM0MiAwMzQ1OworMUY5MDsxRjkwOzAzQjcgMDMxMyAwMzQ1OzFGOTA7MDNCNyAwMzEzIDAzNDU7CisxRjkxOzFGOTE7MDNCNyAwMzE0IDAzNDU7MUY5MTswM0I3IDAzMTQgMDM0NTsKKzFGOTI7MUY5MjswM0I3IDAzMTMgMDMwMCAwMzQ1OzFGOTI7MDNCNyAwMzEzIDAzMDAgMDM0NTsKKzFGOTM7MUY5MzswM0I3IDAzMTQgMDMwMCAwMzQ1OzFGOTM7MDNCNyAwMzE0IDAzMDAgMDM0NTsKKzFGOTQ7MUY5NDswM0I3IDAzMTMgMDMwMSAwMzQ1OzFGOTQ7MDNCNyAwMzEzIDAzMDEgMDM0NTsKKzFGOTU7MUY5NTswM0I3IDAzMTQgMDMwMSAwMzQ1OzFGOTU7MDNCNyAwMzE0IDAzMDEgMDM0NTsKKzFGOTY7MUY5NjswM0I3IDAzMTMgMDM0MiAwMzQ1OzFGOTY7MDNCNyAwMzEzIDAzNDIgMDM0NTsKKzFGOTc7MUY5NzswM0I3IDAzMTQgMDM0MiAwMzQ1OzFGOTc7MDNCNyAwMzE0IDAzNDIgMDM0NTsKKzFGOTg7MUY5ODswMzk3IDAzMTMgMDM0NTsxRjk4OzAzOTcgMDMxMyAwMzQ1OworMUY5OTsxRjk5OzAzOTcgMDMxNCAwMzQ1OzFGOTk7MDM5NyAwMzE0IDAzNDU7CisxRjlBOzFGOUE7MDM5NyAwMzEzIDAzMDAgMDM0NTsxRjlBOzAzOTcgMDMxMyAwMzAwIDAzNDU7CisxRjlCOzFGOUI7MDM5NyAwMzE0IDAzMDAgMDM0NTsxRjlCOzAzOTcgMDMxNCAwMzAwIDAzNDU7CisxRjlDOzFGOUM7MDM5NyAwMzEzIDAzMDEgMDM0NTsxRjlDOzAzOTcgMDMxMyAwMzAxIDAzNDU7CisxRjlEOzFGOUQ7MDM5NyAwMzE0IDAzMDEgMDM0NTsxRjlEOzAzOTcgMDMxNCAwMzAxIDAzNDU7CisxRjlFOzFGOUU7MDM5NyAwMzEzIDAzNDIgMDM0NTsxRjlFOzAzOTcgMDMxMyAwMzQyIDAzNDU7CisxRjlGOzFGOUY7MDM5NyAwMzE0IDAzNDIgMDM0NTsxRjlGOzAzOTcgMDMxNCAwMzQyIDAzNDU7CisxRkEwOzFGQTA7MDNDOSAwMzEzIDAzNDU7MUZBMDswM0M5IDAzMTMgMDM0NTsKKzFGQTE7MUZBMTswM0M5IDAzMTQgMDM0NTsxRkExOzAzQzkgMDMxNCAwMzQ1OworMUZBMjsxRkEyOzAzQzkgMDMxMyAwMzAwIDAzNDU7MUZBMjswM0M5IDAzMTMgMDMwMCAwMzQ1OworMUZBMzsxRkEzOzAzQzkgMDMxNCAwMzAwIDAzNDU7MUZBMzswM0M5IDAzMTQgMDMwMCAwMzQ1OworMUZBNDsxRkE0OzAzQzkgMDMxMyAwMzAxIDAzNDU7MUZBNDswM0M5IDAzMTMgMDMwMSAwMzQ1OworMUZBNTsxRkE1OzAzQzkgMDMxNCAwMzAxIDAzNDU7MUZBNTswM0M5IDAzMTQgMDMwMSAwMzQ1OworMUZBNjsxRkE2OzAzQzkgMDMxMyAwMzQyIDAzNDU7MUZBNjswM0M5IDAzMTMgMDM0MiAwMzQ1OworMUZBNzsxRkE3OzAzQzkgMDMxNCAwMzQyIDAzNDU7MUZBNzswM0M5IDAzMTQgMDM0MiAwMzQ1OworMUZBODsxRkE4OzAzQTkgMDMxMyAwMzQ1OzFGQTg7MDNBOSAwMzEzIDAzNDU7CisxRkE5OzFGQTk7MDNBOSAwMzE0IDAzNDU7MUZBOTswM0E5IDAzMTQgMDM0NTsKKzFGQUE7MUZBQTswM0E5IDAzMTMgMDMwMCAwMzQ1OzFGQUE7MDNBOSAwMzEzIDAzMDAgMDM0NTsKKzFGQUI7MUZBQjswM0E5IDAzMTQgMDMwMCAwMzQ1OzFGQUI7MDNBOSAwMzE0IDAzMDAgMDM0NTsKKzFGQUM7MUZBQzswM0E5IDAzMTMgMDMwMSAwMzQ1OzFGQUM7MDNBOSAwMzEzIDAzMDEgMDM0NTsKKzFGQUQ7MUZBRDswM0E5IDAzMTQgMDMwMSAwMzQ1OzFGQUQ7MDNBOSAwMzE0IDAzMDEgMDM0NTsKKzFGQUU7MUZBRTswM0E5IDAzMTMgMDM0MiAwMzQ1OzFGQUU7MDNBOSAwMzEzIDAzNDIgMDM0NTsKKzFGQUY7MUZBRjswM0E5IDAzMTQgMDM0MiAwMzQ1OzFGQUY7MDNBOSAwMzE0IDAzNDIgMDM0NTsKKzFGQjA7MUZCMDswM0IxIDAzMDY7MUZCMDswM0IxIDAzMDY7CisxRkIxOzFGQjE7MDNCMSAwMzA0OzFGQjE7MDNCMSAwMzA0OworMUZCMjsxRkIyOzAzQjEgMDMwMCAwMzQ1OzFGQjI7MDNCMSAwMzAwIDAzNDU7CisxRkIzOzFGQjM7MDNCMSAwMzQ1OzFGQjM7MDNCMSAwMzQ1OworMUZCNDsxRkI0OzAzQjEgMDMwMSAwMzQ1OzFGQjQ7MDNCMSAwMzAxIDAzNDU7CisxRkI2OzFGQjY7MDNCMSAwMzQyOzFGQjY7MDNCMSAwMzQyOworMUZCNzsxRkI3OzAzQjEgMDM0MiAwMzQ1OzFGQjc7MDNCMSAwMzQyIDAzNDU7CisxRkI4OzFGQjg7MDM5MSAwMzA2OzFGQjg7MDM5MSAwMzA2OworMUZCOTsxRkI5OzAzOTEgMDMwNDsxRkI5OzAzOTEgMDMwNDsKKzFGQkE7MUZCQTswMzkxIDAzMDA7MUZCQTswMzkxIDAzMDA7CisxRkJCOzAzODY7MDM5MSAwMzAxOzAzODY7MDM5MSAwMzAxOworMUZCQzsxRkJDOzAzOTEgMDM0NTsxRkJDOzAzOTEgMDM0NTsKKzFGQkQ7MUZCRDsxRkJEOzAwMjAgMDMxMzswMDIwIDAzMTM7CisxRkJFOzAzQjk7MDNCOTswM0I5OzAzQjk7CisxRkJGOzFGQkY7MUZCRjswMDIwIDAzMTM7MDAyMCAwMzEzOworMUZDMDsxRkMwOzFGQzA7MDAyMCAwMzQyOzAwMjAgMDM0MjsKKzFGQzE7MUZDMTswMEE4IDAzNDI7MDAyMCAwMzA4IDAzNDI7MDAyMCAwMzA4IDAzNDI7CisxRkMyOzFGQzI7MDNCNyAwMzAwIDAzNDU7MUZDMjswM0I3IDAzMDAgMDM0NTsKKzFGQzM7MUZDMzswM0I3IDAzNDU7MUZDMzswM0I3IDAzNDU7CisxRkM0OzFGQzQ7MDNCNyAwMzAxIDAzNDU7MUZDNDswM0I3IDAzMDEgMDM0NTsKKzFGQzY7MUZDNjswM0I3IDAzNDI7MUZDNjswM0I3IDAzNDI7CisxRkM3OzFGQzc7MDNCNyAwMzQyIDAzNDU7MUZDNzswM0I3IDAzNDIgMDM0NTsKKzFGQzg7MUZDODswMzk1IDAzMDA7MUZDODswMzk1IDAzMDA7CisxRkM5OzAzODg7MDM5NSAwMzAxOzAzODg7MDM5NSAwMzAxOworMUZDQTsxRkNBOzAzOTcgMDMwMDsxRkNBOzAzOTcgMDMwMDsKKzFGQ0I7MDM4OTswMzk3IDAzMDE7MDM4OTswMzk3IDAzMDE7CisxRkNDOzFGQ0M7MDM5NyAwMzQ1OzFGQ0M7MDM5NyAwMzQ1OworMUZDRDsxRkNEOzFGQkYgMDMwMDswMDIwIDAzMTMgMDMwMDswMDIwIDAzMTMgMDMwMDsKKzFGQ0U7MUZDRTsxRkJGIDAzMDE7MDAyMCAwMzEzIDAzMDE7MDAyMCAwMzEzIDAzMDE7CisxRkNGOzFGQ0Y7MUZCRiAwMzQyOzAwMjAgMDMxMyAwMzQyOzAwMjAgMDMxMyAwMzQyOworMUZEMDsxRkQwOzAzQjkgMDMwNjsxRkQwOzAzQjkgMDMwNjsKKzFGRDE7MUZEMTswM0I5IDAzMDQ7MUZEMTswM0I5IDAzMDQ7CisxRkQyOzFGRDI7MDNCOSAwMzA4IDAzMDA7MUZEMjswM0I5IDAzMDggMDMwMDsKKzFGRDM7MDM5MDswM0I5IDAzMDggMDMwMTswMzkwOzAzQjkgMDMwOCAwMzAxOworMUZENjsxRkQ2OzAzQjkgMDM0MjsxRkQ2OzAzQjkgMDM0MjsKKzFGRDc7MUZENzswM0I5IDAzMDggMDM0MjsxRkQ3OzAzQjkgMDMwOCAwMzQyOworMUZEODsxRkQ4OzAzOTkgMDMwNjsxRkQ4OzAzOTkgMDMwNjsKKzFGRDk7MUZEOTswMzk5IDAzMDQ7MUZEOTswMzk5IDAzMDQ7CisxRkRBOzFGREE7MDM5OSAwMzAwOzFGREE7MDM5OSAwMzAwOworMUZEQjswMzhBOzAzOTkgMDMwMTswMzhBOzAzOTkgMDMwMTsKKzFGREQ7MUZERDsxRkZFIDAzMDA7MDAyMCAwMzE0IDAzMDA7MDAyMCAwMzE0IDAzMDA7CisxRkRFOzFGREU7MUZGRSAwMzAxOzAwMjAgMDMxNCAwMzAxOzAwMjAgMDMxNCAwMzAxOworMUZERjsxRkRGOzFGRkUgMDM0MjswMDIwIDAzMTQgMDM0MjswMDIwIDAzMTQgMDM0MjsKKzFGRTA7MUZFMDswM0M1IDAzMDY7MUZFMDswM0M1IDAzMDY7CisxRkUxOzFGRTE7MDNDNSAwMzA0OzFGRTE7MDNDNSAwMzA0OworMUZFMjsxRkUyOzAzQzUgMDMwOCAwMzAwOzFGRTI7MDNDNSAwMzA4IDAzMDA7CisxRkUzOzAzQjA7MDNDNSAwMzA4IDAzMDE7MDNCMDswM0M1IDAzMDggMDMwMTsKKzFGRTQ7MUZFNDswM0MxIDAzMTM7MUZFNDswM0MxIDAzMTM7CisxRkU1OzFGRTU7MDNDMSAwMzE0OzFGRTU7MDNDMSAwMzE0OworMUZFNjsxRkU2OzAzQzUgMDM0MjsxRkU2OzAzQzUgMDM0MjsKKzFGRTc7MUZFNzswM0M1IDAzMDggMDM0MjsxRkU3OzAzQzUgMDMwOCAwMzQyOworMUZFODsxRkU4OzAzQTUgMDMwNjsxRkU4OzAzQTUgMDMwNjsKKzFGRTk7MUZFOTswM0E1IDAzMDQ7MUZFOTswM0E1IDAzMDQ7CisxRkVBOzFGRUE7MDNBNSAwMzAwOzFGRUE7MDNBNSAwMzAwOworMUZFQjswMzhFOzAzQTUgMDMwMTswMzhFOzAzQTUgMDMwMTsKKzFGRUM7MUZFQzswM0ExIDAzMTQ7MUZFQzswM0ExIDAzMTQ7CisxRkVEOzFGRUQ7MDBBOCAwMzAwOzAwMjAgMDMwOCAwMzAwOzAwMjAgMDMwOCAwMzAwOworMUZFRTswMzg1OzAwQTggMDMwMTswMDIwIDAzMDggMDMwMTswMDIwIDAzMDggMDMwMTsKKzFGRUY7MDA2MDswMDYwOzAwNjA7MDA2MDsKKzFGRjI7MUZGMjswM0M5IDAzMDAgMDM0NTsxRkYyOzAzQzkgMDMwMCAwMzQ1OworMUZGMzsxRkYzOzAzQzkgMDM0NTsxRkYzOzAzQzkgMDM0NTsKKzFGRjQ7MUZGNDswM0M5IDAzMDEgMDM0NTsxRkY0OzAzQzkgMDMwMSAwMzQ1OworMUZGNjsxRkY2OzAzQzkgMDM0MjsxRkY2OzAzQzkgMDM0MjsKKzFGRjc7MUZGNzswM0M5IDAzNDIgMDM0NTsxRkY3OzAzQzkgMDM0MiAwMzQ1OworMUZGODsxRkY4OzAzOUYgMDMwMDsxRkY4OzAzOUYgMDMwMDsKKzFGRjk7MDM4QzswMzlGIDAzMDE7MDM4QzswMzlGIDAzMDE7CisxRkZBOzFGRkE7MDNBOSAwMzAwOzFGRkE7MDNBOSAwMzAwOworMUZGQjswMzhGOzAzQTkgMDMwMTswMzhGOzAzQTkgMDMwMTsKKzFGRkM7MUZGQzswM0E5IDAzNDU7MUZGQzswM0E5IDAzNDU7CisxRkZEOzAwQjQ7MDBCNDswMDIwIDAzMDE7MDAyMCAwMzAxOworMUZGRTsxRkZFOzFGRkU7MDAyMCAwMzE0OzAwMjAgMDMxNDsKKzIwMDA7MjAwMjsyMDAyOzAwMjA7MDAyMDsKKzIwMDE7MjAwMzsyMDAzOzAwMjA7MDAyMDsKKzIwMDI7MjAwMjsyMDAyOzAwMjA7MDAyMDsKKzIwMDM7MjAwMzsyMDAzOzAwMjA7MDAyMDsKKzIwMDQ7MjAwNDsyMDA0OzAwMjA7MDAyMDsKKzIwMDU7MjAwNTsyMDA1OzAwMjA7MDAyMDsKKzIwMDY7MjAwNjsyMDA2OzAwMjA7MDAyMDsKKzIwMDc7MjAwNzsyMDA3OzAwMjA7MDAyMDsKKzIwMDg7MjAwODsyMDA4OzAwMjA7MDAyMDsKKzIwMDk7MjAwOTsyMDA5OzAwMjA7MDAyMDsKKzIwMEE7MjAwQTsyMDBBOzAwMjA7MDAyMDsKKzIwMTE7MjAxMTsyMDExOzIwMTA7MjAxMDsKKzIwMTc7MjAxNzsyMDE3OzAwMjAgMDMzMzswMDIwIDAzMzM7CisyMDI0OzIwMjQ7MjAyNDswMDJFOzAwMkU7CisyMDI1OzIwMjU7MjAyNTswMDJFIDAwMkU7MDAyRSAwMDJFOworMjAyNjsyMDI2OzIwMjY7MDAyRSAwMDJFIDAwMkU7MDAyRSAwMDJFIDAwMkU7CisyMDJGOzIwMkY7MjAyRjswMDIwOzAwMjA7CisyMDMzOzIwMzM7MjAzMzsyMDMyIDIwMzI7MjAzMiAyMDMyOworMjAzNDsyMDM0OzIwMzQ7MjAzMiAyMDMyIDIwMzI7MjAzMiAyMDMyIDIwMzI7CisyMDM2OzIwMzY7MjAzNjsyMDM1IDIwMzU7MjAzNSAyMDM1OworMjAzNzsyMDM3OzIwMzc7MjAzNSAyMDM1IDIwMzU7MjAzNSAyMDM1IDIwMzU7CisyMDNDOzIwM0M7MjAzQzswMDIxIDAwMjE7MDAyMSAwMDIxOworMjAzRTsyMDNFOzIwM0U7MDAyMCAwMzA1OzAwMjAgMDMwNTsKKzIwNDc7MjA0NzsyMDQ3OzAwM0YgMDAzRjswMDNGIDAwM0Y7CisyMDQ4OzIwNDg7MjA0ODswMDNGIDAwMjE7MDAzRiAwMDIxOworMjA0OTsyMDQ5OzIwNDk7MDAyMSAwMDNGOzAwMjEgMDAzRjsKKzIwNTc7MjA1NzsyMDU3OzIwMzIgMjAzMiAyMDMyIDIwMzI7MjAzMiAyMDMyIDIwMzIgMjAzMjsKKzIwNUY7MjA1RjsyMDVGOzAwMjA7MDAyMDsKKzIwNzA7MjA3MDsyMDcwOzAwMzA7MDAzMDsKKzIwNzE7MjA3MTsyMDcxOzAwNjk7MDA2OTsKKzIwNzQ7MjA3NDsyMDc0OzAwMzQ7MDAzNDsKKzIwNzU7MjA3NTsyMDc1OzAwMzU7MDAzNTsKKzIwNzY7MjA3NjsyMDc2OzAwMzY7MDAzNjsKKzIwNzc7MjA3NzsyMDc3OzAwMzc7MDAzNzsKKzIwNzg7MjA3ODsyMDc4OzAwMzg7MDAzODsKKzIwNzk7MjA3OTsyMDc5OzAwMzk7MDAzOTsKKzIwN0E7MjA3QTsyMDdBOzAwMkI7MDAyQjsKKzIwN0I7MjA3QjsyMDdCOzIyMTI7MjIxMjsKKzIwN0M7MjA3QzsyMDdDOzAwM0Q7MDAzRDsKKzIwN0Q7MjA3RDsyMDdEOzAwMjg7MDAyODsKKzIwN0U7MjA3RTsyMDdFOzAwMjk7MDAyOTsKKzIwN0Y7MjA3RjsyMDdGOzAwNkU7MDA2RTsKKzIwODA7MjA4MDsyMDgwOzAwMzA7MDAzMDsKKzIwODE7MjA4MTsyMDgxOzAwMzE7MDAzMTsKKzIwODI7MjA4MjsyMDgyOzAwMzI7MDAzMjsKKzIwODM7MjA4MzsyMDgzOzAwMzM7MDAzMzsKKzIwODQ7MjA4NDsyMDg0OzAwMzQ7MDAzNDsKKzIwODU7MjA4NTsyMDg1OzAwMzU7MDAzNTsKKzIwODY7MjA4NjsyMDg2OzAwMzY7MDAzNjsKKzIwODc7MjA4NzsyMDg3OzAwMzc7MDAzNzsKKzIwODg7MjA4ODsyMDg4OzAwMzg7MDAzODsKKzIwODk7MjA4OTsyMDg5OzAwMzk7MDAzOTsKKzIwOEE7MjA4QTsyMDhBOzAwMkI7MDAyQjsKKzIwOEI7MjA4QjsyMDhCOzIyMTI7MjIxMjsKKzIwOEM7MjA4QzsyMDhDOzAwM0Q7MDAzRDsKKzIwOEQ7MjA4RDsyMDhEOzAwMjg7MDAyODsKKzIwOEU7MjA4RTsyMDhFOzAwMjk7MDAyOTsKKzIwOTA7MjA5MDsyMDkwOzAwNjE7MDA2MTsKKzIwOTE7MjA5MTsyMDkxOzAwNjU7MDA2NTsKKzIwOTI7MjA5MjsyMDkyOzAwNkY7MDA2RjsKKzIwOTM7MjA5MzsyMDkzOzAwNzg7MDA3ODsKKzIwOTQ7MjA5NDsyMDk0OzAyNTk7MDI1OTsKKzIwQTg7MjBBODsyMEE4OzAwNTIgMDA3MzswMDUyIDAwNzM7CisyMTAwOzIxMDA7MjEwMDswMDYxIDAwMkYgMDA2MzswMDYxIDAwMkYgMDA2MzsKKzIxMDE7MjEwMTsyMTAxOzAwNjEgMDAyRiAwMDczOzAwNjEgMDAyRiAwMDczOworMjEwMjsyMTAyOzIxMDI7MDA0MzswMDQzOworMjEwMzsyMTAzOzIxMDM7MDBCMCAwMDQzOzAwQjAgMDA0MzsKKzIxMDU7MjEwNTsyMTA1OzAwNjMgMDAyRiAwMDZGOzAwNjMgMDAyRiAwMDZGOworMjEwNjsyMTA2OzIxMDY7MDA2MyAwMDJGIDAwNzU7MDA2MyAwMDJGIDAwNzU7CisyMTA3OzIxMDc7MjEwNzswMTkwOzAxOTA7CisyMTA5OzIxMDk7MjEwOTswMEIwIDAwNDY7MDBCMCAwMDQ2OworMjEwQTsyMTBBOzIxMEE7MDA2NzswMDY3OworMjEwQjsyMTBCOzIxMEI7MDA0ODswMDQ4OworMjEwQzsyMTBDOzIxMEM7MDA0ODswMDQ4OworMjEwRDsyMTBEOzIxMEQ7MDA0ODswMDQ4OworMjEwRTsyMTBFOzIxMEU7MDA2ODswMDY4OworMjEwRjsyMTBGOzIxMEY7MDEyNzswMTI3OworMjExMDsyMTEwOzIxMTA7MDA0OTswMDQ5OworMjExMTsyMTExOzIxMTE7MDA0OTswMDQ5OworMjExMjsyMTEyOzIxMTI7MDA0QzswMDRDOworMjExMzsyMTEzOzIxMTM7MDA2QzswMDZDOworMjExNTsyMTE1OzIxMTU7MDA0RTswMDRFOworMjExNjsyMTE2OzIxMTY7MDA0RSAwMDZGOzAwNEUgMDA2RjsKKzIxMTk7MjExOTsyMTE5OzAwNTA7MDA1MDsKKzIxMUE7MjExQTsyMTFBOzAwNTE7MDA1MTsKKzIxMUI7MjExQjsyMTFCOzAwNTI7MDA1MjsKKzIxMUM7MjExQzsyMTFDOzAwNTI7MDA1MjsKKzIxMUQ7MjExRDsyMTFEOzAwNTI7MDA1MjsKKzIxMjA7MjEyMDsyMTIwOzAwNTMgMDA0RDswMDUzIDAwNEQ7CisyMTIxOzIxMjE7MjEyMTswMDU0IDAwNDUgMDA0QzswMDU0IDAwNDUgMDA0QzsKKzIxMjI7MjEyMjsyMTIyOzAwNTQgMDA0RDswMDU0IDAwNEQ7CisyMTI0OzIxMjQ7MjEyNDswMDVBOzAwNUE7CisyMTI2OzAzQTk7MDNBOTswM0E5OzAzQTk7CisyMTI4OzIxMjg7MjEyODswMDVBOzAwNUE7CisyMTJBOzAwNEI7MDA0QjswMDRCOzAwNEI7CisyMTJCOzAwQzU7MDA0MSAwMzBBOzAwQzU7MDA0MSAwMzBBOworMjEyQzsyMTJDOzIxMkM7MDA0MjswMDQyOworMjEyRDsyMTJEOzIxMkQ7MDA0MzswMDQzOworMjEyRjsyMTJGOzIxMkY7MDA2NTswMDY1OworMjEzMDsyMTMwOzIxMzA7MDA0NTswMDQ1OworMjEzMTsyMTMxOzIxMzE7MDA0NjswMDQ2OworMjEzMzsyMTMzOzIxMzM7MDA0RDswMDREOworMjEzNDsyMTM0OzIxMzQ7MDA2RjswMDZGOworMjEzNTsyMTM1OzIxMzU7MDVEMDswNUQwOworMjEzNjsyMTM2OzIxMzY7MDVEMTswNUQxOworMjEzNzsyMTM3OzIxMzc7MDVEMjswNUQyOworMjEzODsyMTM4OzIxMzg7MDVEMzswNUQzOworMjEzOTsyMTM5OzIxMzk7MDA2OTswMDY5OworMjEzQjsyMTNCOzIxM0I7MDA0NiAwMDQxIDAwNTg7MDA0NiAwMDQxIDAwNTg7CisyMTNDOzIxM0M7MjEzQzswM0MwOzAzQzA7CisyMTNEOzIxM0Q7MjEzRDswM0IzOzAzQjM7CisyMTNFOzIxM0U7MjEzRTswMzkzOzAzOTM7CisyMTNGOzIxM0Y7MjEzRjswM0EwOzAzQTA7CisyMTQwOzIxNDA7MjE0MDsyMjExOzIyMTE7CisyMTQ1OzIxNDU7MjE0NTswMDQ0OzAwNDQ7CisyMTQ2OzIxNDY7MjE0NjswMDY0OzAwNjQ7CisyMTQ3OzIxNDc7MjE0NzswMDY1OzAwNjU7CisyMTQ4OzIxNDg7MjE0ODswMDY5OzAwNjk7CisyMTQ5OzIxNDk7MjE0OTswMDZBOzAwNkE7CisyMTUzOzIxNTM7MjE1MzswMDMxIDIwNDQgMDAzMzswMDMxIDIwNDQgMDAzMzsKKzIxNTQ7MjE1NDsyMTU0OzAwMzIgMjA0NCAwMDMzOzAwMzIgMjA0NCAwMDMzOworMjE1NTsyMTU1OzIxNTU7MDAzMSAyMDQ0IDAwMzU7MDAzMSAyMDQ0IDAwMzU7CisyMTU2OzIxNTY7MjE1NjswMDMyIDIwNDQgMDAzNTswMDMyIDIwNDQgMDAzNTsKKzIxNTc7MjE1NzsyMTU3OzAwMzMgMjA0NCAwMDM1OzAwMzMgMjA0NCAwMDM1OworMjE1ODsyMTU4OzIxNTg7MDAzNCAyMDQ0IDAwMzU7MDAzNCAyMDQ0IDAwMzU7CisyMTU5OzIxNTk7MjE1OTswMDMxIDIwNDQgMDAzNjswMDMxIDIwNDQgMDAzNjsKKzIxNUE7MjE1QTsyMTVBOzAwMzUgMjA0NCAwMDM2OzAwMzUgMjA0NCAwMDM2OworMjE1QjsyMTVCOzIxNUI7MDAzMSAyMDQ0IDAwMzg7MDAzMSAyMDQ0IDAwMzg7CisyMTVDOzIxNUM7MjE1QzswMDMzIDIwNDQgMDAzODswMDMzIDIwNDQgMDAzODsKKzIxNUQ7MjE1RDsyMTVEOzAwMzUgMjA0NCAwMDM4OzAwMzUgMjA0NCAwMDM4OworMjE1RTsyMTVFOzIxNUU7MDAzNyAyMDQ0IDAwMzg7MDAzNyAyMDQ0IDAwMzg7CisyMTVGOzIxNUY7MjE1RjswMDMxIDIwNDQ7MDAzMSAyMDQ0OworMjE2MDsyMTYwOzIxNjA7MDA0OTswMDQ5OworMjE2MTsyMTYxOzIxNjE7MDA0OSAwMDQ5OzAwNDkgMDA0OTsKKzIxNjI7MjE2MjsyMTYyOzAwNDkgMDA0OSAwMDQ5OzAwNDkgMDA0OSAwMDQ5OworMjE2MzsyMTYzOzIxNjM7MDA0OSAwMDU2OzAwNDkgMDA1NjsKKzIxNjQ7MjE2NDsyMTY0OzAwNTY7MDA1NjsKKzIxNjU7MjE2NTsyMTY1OzAwNTYgMDA0OTswMDU2IDAwNDk7CisyMTY2OzIxNjY7MjE2NjswMDU2IDAwNDkgMDA0OTswMDU2IDAwNDkgMDA0OTsKKzIxNjc7MjE2NzsyMTY3OzAwNTYgMDA0OSAwMDQ5IDAwNDk7MDA1NiAwMDQ5IDAwNDkgMDA0OTsKKzIxNjg7MjE2ODsyMTY4OzAwNDkgMDA1ODswMDQ5IDAwNTg7CisyMTY5OzIxNjk7MjE2OTswMDU4OzAwNTg7CisyMTZBOzIxNkE7MjE2QTswMDU4IDAwNDk7MDA1OCAwMDQ5OworMjE2QjsyMTZCOzIxNkI7MDA1OCAwMDQ5IDAwNDk7MDA1OCAwMDQ5IDAwNDk7CisyMTZDOzIxNkM7MjE2QzswMDRDOzAwNEM7CisyMTZEOzIxNkQ7MjE2RDswMDQzOzAwNDM7CisyMTZFOzIxNkU7MjE2RTswMDQ0OzAwNDQ7CisyMTZGOzIxNkY7MjE2RjswMDREOzAwNEQ7CisyMTcwOzIxNzA7MjE3MDswMDY5OzAwNjk7CisyMTcxOzIxNzE7MjE3MTswMDY5IDAwNjk7MDA2OSAwMDY5OworMjE3MjsyMTcyOzIxNzI7MDA2OSAwMDY5IDAwNjk7MDA2OSAwMDY5IDAwNjk7CisyMTczOzIxNzM7MjE3MzswMDY5IDAwNzY7MDA2OSAwMDc2OworMjE3NDsyMTc0OzIxNzQ7MDA3NjswMDc2OworMjE3NTsyMTc1OzIxNzU7MDA3NiAwMDY5OzAwNzYgMDA2OTsKKzIxNzY7MjE3NjsyMTc2OzAwNzYgMDA2OSAwMDY5OzAwNzYgMDA2OSAwMDY5OworMjE3NzsyMTc3OzIxNzc7MDA3NiAwMDY5IDAwNjkgMDA2OTswMDc2IDAwNjkgMDA2OSAwMDY5OworMjE3ODsyMTc4OzIxNzg7MDA2OSAwMDc4OzAwNjkgMDA3ODsKKzIxNzk7MjE3OTsyMTc5OzAwNzg7MDA3ODsKKzIxN0E7MjE3QTsyMTdBOzAwNzggMDA2OTswMDc4IDAwNjk7CisyMTdCOzIxN0I7MjE3QjswMDc4IDAwNjkgMDA2OTswMDc4IDAwNjkgMDA2OTsKKzIxN0M7MjE3QzsyMTdDOzAwNkM7MDA2QzsKKzIxN0Q7MjE3RDsyMTdEOzAwNjM7MDA2MzsKKzIxN0U7MjE3RTsyMTdFOzAwNjQ7MDA2NDsKKzIxN0Y7MjE3RjsyMTdGOzAwNkQ7MDA2RDsKKzIxOUE7MjE5QTsyMTkwIDAzMzg7MjE5QTsyMTkwIDAzMzg7CisyMTlCOzIxOUI7MjE5MiAwMzM4OzIxOUI7MjE5MiAwMzM4OworMjFBRTsyMUFFOzIxOTQgMDMzODsyMUFFOzIxOTQgMDMzODsKKzIxQ0Q7MjFDRDsyMUQwIDAzMzg7MjFDRDsyMUQwIDAzMzg7CisyMUNFOzIxQ0U7MjFENCAwMzM4OzIxQ0U7MjFENCAwMzM4OworMjFDRjsyMUNGOzIxRDIgMDMzODsyMUNGOzIxRDIgMDMzODsKKzIyMDQ7MjIwNDsyMjAzIDAzMzg7MjIwNDsyMjAzIDAzMzg7CisyMjA5OzIyMDk7MjIwOCAwMzM4OzIyMDk7MjIwOCAwMzM4OworMjIwQzsyMjBDOzIyMEIgMDMzODsyMjBDOzIyMEIgMDMzODsKKzIyMjQ7MjIyNDsyMjIzIDAzMzg7MjIyNDsyMjIzIDAzMzg7CisyMjI2OzIyMjY7MjIyNSAwMzM4OzIyMjY7MjIyNSAwMzM4OworMjIyQzsyMjJDOzIyMkM7MjIyQiAyMjJCOzIyMkIgMjIyQjsKKzIyMkQ7MjIyRDsyMjJEOzIyMkIgMjIyQiAyMjJCOzIyMkIgMjIyQiAyMjJCOworMjIyRjsyMjJGOzIyMkY7MjIyRSAyMjJFOzIyMkUgMjIyRTsKKzIyMzA7MjIzMDsyMjMwOzIyMkUgMjIyRSAyMjJFOzIyMkUgMjIyRSAyMjJFOworMjI0MTsyMjQxOzIyM0MgMDMzODsyMjQxOzIyM0MgMDMzODsKKzIyNDQ7MjI0NDsyMjQzIDAzMzg7MjI0NDsyMjQzIDAzMzg7CisyMjQ3OzIyNDc7MjI0NSAwMzM4OzIyNDc7MjI0NSAwMzM4OworMjI0OTsyMjQ5OzIyNDggMDMzODsyMjQ5OzIyNDggMDMzODsKKzIyNjA7MjI2MDswMDNEIDAzMzg7MjI2MDswMDNEIDAzMzg7CisyMjYyOzIyNjI7MjI2MSAwMzM4OzIyNjI7MjI2MSAwMzM4OworMjI2RDsyMjZEOzIyNEQgMDMzODsyMjZEOzIyNEQgMDMzODsKKzIyNkU7MjI2RTswMDNDIDAzMzg7MjI2RTswMDNDIDAzMzg7CisyMjZGOzIyNkY7MDAzRSAwMzM4OzIyNkY7MDAzRSAwMzM4OworMjI3MDsyMjcwOzIyNjQgMDMzODsyMjcwOzIyNjQgMDMzODsKKzIyNzE7MjI3MTsyMjY1IDAzMzg7MjI3MTsyMjY1IDAzMzg7CisyMjc0OzIyNzQ7MjI3MiAwMzM4OzIyNzQ7MjI3MiAwMzM4OworMjI3NTsyMjc1OzIyNzMgMDMzODsyMjc1OzIyNzMgMDMzODsKKzIyNzg7MjI3ODsyMjc2IDAzMzg7MjI3ODsyMjc2IDAzMzg7CisyMjc5OzIyNzk7MjI3NyAwMzM4OzIyNzk7MjI3NyAwMzM4OworMjI4MDsyMjgwOzIyN0EgMDMzODsyMjgwOzIyN0EgMDMzODsKKzIyODE7MjI4MTsyMjdCIDAzMzg7MjI4MTsyMjdCIDAzMzg7CisyMjg0OzIyODQ7MjI4MiAwMzM4OzIyODQ7MjI4MiAwMzM4OworMjI4NTsyMjg1OzIyODMgMDMzODsyMjg1OzIyODMgMDMzODsKKzIyODg7MjI4ODsyMjg2IDAzMzg7MjI4ODsyMjg2IDAzMzg7CisyMjg5OzIyODk7MjI4NyAwMzM4OzIyODk7MjI4NyAwMzM4OworMjJBQzsyMkFDOzIyQTIgMDMzODsyMkFDOzIyQTIgMDMzODsKKzIyQUQ7MjJBRDsyMkE4IDAzMzg7MjJBRDsyMkE4IDAzMzg7CisyMkFFOzIyQUU7MjJBOSAwMzM4OzIyQUU7MjJBOSAwMzM4OworMjJBRjsyMkFGOzIyQUIgMDMzODsyMkFGOzIyQUIgMDMzODsKKzIyRTA7MjJFMDsyMjdDIDAzMzg7MjJFMDsyMjdDIDAzMzg7CisyMkUxOzIyRTE7MjI3RCAwMzM4OzIyRTE7MjI3RCAwMzM4OworMjJFMjsyMkUyOzIyOTEgMDMzODsyMkUyOzIyOTEgMDMzODsKKzIyRTM7MjJFMzsyMjkyIDAzMzg7MjJFMzsyMjkyIDAzMzg7CisyMkVBOzIyRUE7MjJCMiAwMzM4OzIyRUE7MjJCMiAwMzM4OworMjJFQjsyMkVCOzIyQjMgMDMzODsyMkVCOzIyQjMgMDMzODsKKzIyRUM7MjJFQzsyMkI0IDAzMzg7MjJFQzsyMkI0IDAzMzg7CisyMkVEOzIyRUQ7MjJCNSAwMzM4OzIyRUQ7MjJCNSAwMzM4OworMjMyOTszMDA4OzMwMDg7MzAwODszMDA4OworMjMyQTszMDA5OzMwMDk7MzAwOTszMDA5OworMjQ2MDsyNDYwOzI0NjA7MDAzMTswMDMxOworMjQ2MTsyNDYxOzI0NjE7MDAzMjswMDMyOworMjQ2MjsyNDYyOzI0NjI7MDAzMzswMDMzOworMjQ2MzsyNDYzOzI0NjM7MDAzNDswMDM0OworMjQ2NDsyNDY0OzI0NjQ7MDAzNTswMDM1OworMjQ2NTsyNDY1OzI0NjU7MDAzNjswMDM2OworMjQ2NjsyNDY2OzI0NjY7MDAzNzswMDM3OworMjQ2NzsyNDY3OzI0Njc7MDAzODswMDM4OworMjQ2ODsyNDY4OzI0Njg7MDAzOTswMDM5OworMjQ2OTsyNDY5OzI0Njk7MDAzMSAwMDMwOzAwMzEgMDAzMDsKKzI0NkE7MjQ2QTsyNDZBOzAwMzEgMDAzMTswMDMxIDAwMzE7CisyNDZCOzI0NkI7MjQ2QjswMDMxIDAwMzI7MDAzMSAwMDMyOworMjQ2QzsyNDZDOzI0NkM7MDAzMSAwMDMzOzAwMzEgMDAzMzsKKzI0NkQ7MjQ2RDsyNDZEOzAwMzEgMDAzNDswMDMxIDAwMzQ7CisyNDZFOzI0NkU7MjQ2RTswMDMxIDAwMzU7MDAzMSAwMDM1OworMjQ2RjsyNDZGOzI0NkY7MDAzMSAwMDM2OzAwMzEgMDAzNjsKKzI0NzA7MjQ3MDsyNDcwOzAwMzEgMDAzNzswMDMxIDAwMzc7CisyNDcxOzI0NzE7MjQ3MTswMDMxIDAwMzg7MDAzMSAwMDM4OworMjQ3MjsyNDcyOzI0NzI7MDAzMSAwMDM5OzAwMzEgMDAzOTsKKzI0NzM7MjQ3MzsyNDczOzAwMzIgMDAzMDswMDMyIDAwMzA7CisyNDc0OzI0NzQ7MjQ3NDswMDI4IDAwMzEgMDAyOTswMDI4IDAwMzEgMDAyOTsKKzI0NzU7MjQ3NTsyNDc1OzAwMjggMDAzMiAwMDI5OzAwMjggMDAzMiAwMDI5OworMjQ3NjsyNDc2OzI0NzY7MDAyOCAwMDMzIDAwMjk7MDAyOCAwMDMzIDAwMjk7CisyNDc3OzI0Nzc7MjQ3NzswMDI4IDAwMzQgMDAyOTswMDI4IDAwMzQgMDAyOTsKKzI0Nzg7MjQ3ODsyNDc4OzAwMjggMDAzNSAwMDI5OzAwMjggMDAzNSAwMDI5OworMjQ3OTsyNDc5OzI0Nzk7MDAyOCAwMDM2IDAwMjk7MDAyOCAwMDM2IDAwMjk7CisyNDdBOzI0N0E7MjQ3QTswMDI4IDAwMzcgMDAyOTswMDI4IDAwMzcgMDAyOTsKKzI0N0I7MjQ3QjsyNDdCOzAwMjggMDAzOCAwMDI5OzAwMjggMDAzOCAwMDI5OworMjQ3QzsyNDdDOzI0N0M7MDAyOCAwMDM5IDAwMjk7MDAyOCAwMDM5IDAwMjk7CisyNDdEOzI0N0Q7MjQ3RDswMDI4IDAwMzEgMDAzMCAwMDI5OzAwMjggMDAzMSAwMDMwIDAwMjk7CisyNDdFOzI0N0U7MjQ3RTswMDI4IDAwMzEgMDAzMSAwMDI5OzAwMjggMDAzMSAwMDMxIDAwMjk7CisyNDdGOzI0N0Y7MjQ3RjswMDI4IDAwMzEgMDAzMiAwMDI5OzAwMjggMDAzMSAwMDMyIDAwMjk7CisyNDgwOzI0ODA7MjQ4MDswMDI4IDAwMzEgMDAzMyAwMDI5OzAwMjggMDAzMSAwMDMzIDAwMjk7CisyNDgxOzI0ODE7MjQ4MTswMDI4IDAwMzEgMDAzNCAwMDI5OzAwMjggMDAzMSAwMDM0IDAwMjk7CisyNDgyOzI0ODI7MjQ4MjswMDI4IDAwMzEgMDAzNSAwMDI5OzAwMjggMDAzMSAwMDM1IDAwMjk7CisyNDgzOzI0ODM7MjQ4MzswMDI4IDAwMzEgMDAzNiAwMDI5OzAwMjggMDAzMSAwMDM2IDAwMjk7CisyNDg0OzI0ODQ7MjQ4NDswMDI4IDAwMzEgMDAzNyAwMDI5OzAwMjggMDAzMSAwMDM3IDAwMjk7CisyNDg1OzI0ODU7MjQ4NTswMDI4IDAwMzEgMDAzOCAwMDI5OzAwMjggMDAzMSAwMDM4IDAwMjk7CisyNDg2OzI0ODY7MjQ4NjswMDI4IDAwMzEgMDAzOSAwMDI5OzAwMjggMDAzMSAwMDM5IDAwMjk7CisyNDg3OzI0ODc7MjQ4NzswMDI4IDAwMzIgMDAzMCAwMDI5OzAwMjggMDAzMiAwMDMwIDAwMjk7CisyNDg4OzI0ODg7MjQ4ODswMDMxIDAwMkU7MDAzMSAwMDJFOworMjQ4OTsyNDg5OzI0ODk7MDAzMiAwMDJFOzAwMzIgMDAyRTsKKzI0OEE7MjQ4QTsyNDhBOzAwMzMgMDAyRTswMDMzIDAwMkU7CisyNDhCOzI0OEI7MjQ4QjswMDM0IDAwMkU7MDAzNCAwMDJFOworMjQ4QzsyNDhDOzI0OEM7MDAzNSAwMDJFOzAwMzUgMDAyRTsKKzI0OEQ7MjQ4RDsyNDhEOzAwMzYgMDAyRTswMDM2IDAwMkU7CisyNDhFOzI0OEU7MjQ4RTswMDM3IDAwMkU7MDAzNyAwMDJFOworMjQ4RjsyNDhGOzI0OEY7MDAzOCAwMDJFOzAwMzggMDAyRTsKKzI0OTA7MjQ5MDsyNDkwOzAwMzkgMDAyRTswMDM5IDAwMkU7CisyNDkxOzI0OTE7MjQ5MTswMDMxIDAwMzAgMDAyRTswMDMxIDAwMzAgMDAyRTsKKzI0OTI7MjQ5MjsyNDkyOzAwMzEgMDAzMSAwMDJFOzAwMzEgMDAzMSAwMDJFOworMjQ5MzsyNDkzOzI0OTM7MDAzMSAwMDMyIDAwMkU7MDAzMSAwMDMyIDAwMkU7CisyNDk0OzI0OTQ7MjQ5NDswMDMxIDAwMzMgMDAyRTswMDMxIDAwMzMgMDAyRTsKKzI0OTU7MjQ5NTsyNDk1OzAwMzEgMDAzNCAwMDJFOzAwMzEgMDAzNCAwMDJFOworMjQ5NjsyNDk2OzI0OTY7MDAzMSAwMDM1IDAwMkU7MDAzMSAwMDM1IDAwMkU7CisyNDk3OzI0OTc7MjQ5NzswMDMxIDAwMzYgMDAyRTswMDMxIDAwMzYgMDAyRTsKKzI0OTg7MjQ5ODsyNDk4OzAwMzEgMDAzNyAwMDJFOzAwMzEgMDAzNyAwMDJFOworMjQ5OTsyNDk5OzI0OTk7MDAzMSAwMDM4IDAwMkU7MDAzMSAwMDM4IDAwMkU7CisyNDlBOzI0OUE7MjQ5QTswMDMxIDAwMzkgMDAyRTswMDMxIDAwMzkgMDAyRTsKKzI0OUI7MjQ5QjsyNDlCOzAwMzIgMDAzMCAwMDJFOzAwMzIgMDAzMCAwMDJFOworMjQ5QzsyNDlDOzI0OUM7MDAyOCAwMDYxIDAwMjk7MDAyOCAwMDYxIDAwMjk7CisyNDlEOzI0OUQ7MjQ5RDswMDI4IDAwNjIgMDAyOTswMDI4IDAwNjIgMDAyOTsKKzI0OUU7MjQ5RTsyNDlFOzAwMjggMDA2MyAwMDI5OzAwMjggMDA2MyAwMDI5OworMjQ5RjsyNDlGOzI0OUY7MDAyOCAwMDY0IDAwMjk7MDAyOCAwMDY0IDAwMjk7CisyNEEwOzI0QTA7MjRBMDswMDI4IDAwNjUgMDAyOTswMDI4IDAwNjUgMDAyOTsKKzI0QTE7MjRBMTsyNEExOzAwMjggMDA2NiAwMDI5OzAwMjggMDA2NiAwMDI5OworMjRBMjsyNEEyOzI0QTI7MDAyOCAwMDY3IDAwMjk7MDAyOCAwMDY3IDAwMjk7CisyNEEzOzI0QTM7MjRBMzswMDI4IDAwNjggMDAyOTswMDI4IDAwNjggMDAyOTsKKzI0QTQ7MjRBNDsyNEE0OzAwMjggMDA2OSAwMDI5OzAwMjggMDA2OSAwMDI5OworMjRBNTsyNEE1OzI0QTU7MDAyOCAwMDZBIDAwMjk7MDAyOCAwMDZBIDAwMjk7CisyNEE2OzI0QTY7MjRBNjswMDI4IDAwNkIgMDAyOTswMDI4IDAwNkIgMDAyOTsKKzI0QTc7MjRBNzsyNEE3OzAwMjggMDA2QyAwMDI5OzAwMjggMDA2QyAwMDI5OworMjRBODsyNEE4OzI0QTg7MDAyOCAwMDZEIDAwMjk7MDAyOCAwMDZEIDAwMjk7CisyNEE5OzI0QTk7MjRBOTswMDI4IDAwNkUgMDAyOTswMDI4IDAwNkUgMDAyOTsKKzI0QUE7MjRBQTsyNEFBOzAwMjggMDA2RiAwMDI5OzAwMjggMDA2RiAwMDI5OworMjRBQjsyNEFCOzI0QUI7MDAyOCAwMDcwIDAwMjk7MDAyOCAwMDcwIDAwMjk7CisyNEFDOzI0QUM7MjRBQzswMDI4IDAwNzEgMDAyOTswMDI4IDAwNzEgMDAyOTsKKzI0QUQ7MjRBRDsyNEFEOzAwMjggMDA3MiAwMDI5OzAwMjggMDA3MiAwMDI5OworMjRBRTsyNEFFOzI0QUU7MDAyOCAwMDczIDAwMjk7MDAyOCAwMDczIDAwMjk7CisyNEFGOzI0QUY7MjRBRjswMDI4IDAwNzQgMDAyOTswMDI4IDAwNzQgMDAyOTsKKzI0QjA7MjRCMDsyNEIwOzAwMjggMDA3NSAwMDI5OzAwMjggMDA3NSAwMDI5OworMjRCMTsyNEIxOzI0QjE7MDAyOCAwMDc2IDAwMjk7MDAyOCAwMDc2IDAwMjk7CisyNEIyOzI0QjI7MjRCMjswMDI4IDAwNzcgMDAyOTswMDI4IDAwNzcgMDAyOTsKKzI0QjM7MjRCMzsyNEIzOzAwMjggMDA3OCAwMDI5OzAwMjggMDA3OCAwMDI5OworMjRCNDsyNEI0OzI0QjQ7MDAyOCAwMDc5IDAwMjk7MDAyOCAwMDc5IDAwMjk7CisyNEI1OzI0QjU7MjRCNTswMDI4IDAwN0EgMDAyOTswMDI4IDAwN0EgMDAyOTsKKzI0QjY7MjRCNjsyNEI2OzAwNDE7MDA0MTsKKzI0Qjc7MjRCNzsyNEI3OzAwNDI7MDA0MjsKKzI0Qjg7MjRCODsyNEI4OzAwNDM7MDA0MzsKKzI0Qjk7MjRCOTsyNEI5OzAwNDQ7MDA0NDsKKzI0QkE7MjRCQTsyNEJBOzAwNDU7MDA0NTsKKzI0QkI7MjRCQjsyNEJCOzAwNDY7MDA0NjsKKzI0QkM7MjRCQzsyNEJDOzAwNDc7MDA0NzsKKzI0QkQ7MjRCRDsyNEJEOzAwNDg7MDA0ODsKKzI0QkU7MjRCRTsyNEJFOzAwNDk7MDA0OTsKKzI0QkY7MjRCRjsyNEJGOzAwNEE7MDA0QTsKKzI0QzA7MjRDMDsyNEMwOzAwNEI7MDA0QjsKKzI0QzE7MjRDMTsyNEMxOzAwNEM7MDA0QzsKKzI0QzI7MjRDMjsyNEMyOzAwNEQ7MDA0RDsKKzI0QzM7MjRDMzsyNEMzOzAwNEU7MDA0RTsKKzI0QzQ7MjRDNDsyNEM0OzAwNEY7MDA0RjsKKzI0QzU7MjRDNTsyNEM1OzAwNTA7MDA1MDsKKzI0QzY7MjRDNjsyNEM2OzAwNTE7MDA1MTsKKzI0Qzc7MjRDNzsyNEM3OzAwNTI7MDA1MjsKKzI0Qzg7MjRDODsyNEM4OzAwNTM7MDA1MzsKKzI0Qzk7MjRDOTsyNEM5OzAwNTQ7MDA1NDsKKzI0Q0E7MjRDQTsyNENBOzAwNTU7MDA1NTsKKzI0Q0I7MjRDQjsyNENCOzAwNTY7MDA1NjsKKzI0Q0M7MjRDQzsyNENDOzAwNTc7MDA1NzsKKzI0Q0Q7MjRDRDsyNENEOzAwNTg7MDA1ODsKKzI0Q0U7MjRDRTsyNENFOzAwNTk7MDA1OTsKKzI0Q0Y7MjRDRjsyNENGOzAwNUE7MDA1QTsKKzI0RDA7MjREMDsyNEQwOzAwNjE7MDA2MTsKKzI0RDE7MjREMTsyNEQxOzAwNjI7MDA2MjsKKzI0RDI7MjREMjsyNEQyOzAwNjM7MDA2MzsKKzI0RDM7MjREMzsyNEQzOzAwNjQ7MDA2NDsKKzI0RDQ7MjRENDsyNEQ0OzAwNjU7MDA2NTsKKzI0RDU7MjRENTsyNEQ1OzAwNjY7MDA2NjsKKzI0RDY7MjRENjsyNEQ2OzAwNjc7MDA2NzsKKzI0RDc7MjRENzsyNEQ3OzAwNjg7MDA2ODsKKzI0RDg7MjREODsyNEQ4OzAwNjk7MDA2OTsKKzI0RDk7MjREOTsyNEQ5OzAwNkE7MDA2QTsKKzI0REE7MjREQTsyNERBOzAwNkI7MDA2QjsKKzI0REI7MjREQjsyNERCOzAwNkM7MDA2QzsKKzI0REM7MjREQzsyNERDOzAwNkQ7MDA2RDsKKzI0REQ7MjRERDsyNEREOzAwNkU7MDA2RTsKKzI0REU7MjRERTsyNERFOzAwNkY7MDA2RjsKKzI0REY7MjRERjsyNERGOzAwNzA7MDA3MDsKKzI0RTA7MjRFMDsyNEUwOzAwNzE7MDA3MTsKKzI0RTE7MjRFMTsyNEUxOzAwNzI7MDA3MjsKKzI0RTI7MjRFMjsyNEUyOzAwNzM7MDA3MzsKKzI0RTM7MjRFMzsyNEUzOzAwNzQ7MDA3NDsKKzI0RTQ7MjRFNDsyNEU0OzAwNzU7MDA3NTsKKzI0RTU7MjRFNTsyNEU1OzAwNzY7MDA3NjsKKzI0RTY7MjRFNjsyNEU2OzAwNzc7MDA3NzsKKzI0RTc7MjRFNzsyNEU3OzAwNzg7MDA3ODsKKzI0RTg7MjRFODsyNEU4OzAwNzk7MDA3OTsKKzI0RTk7MjRFOTsyNEU5OzAwN0E7MDA3QTsKKzI0RUE7MjRFQTsyNEVBOzAwMzA7MDAzMDsKKzJBMEM7MkEwQzsyQTBDOzIyMkIgMjIyQiAyMjJCIDIyMkI7MjIyQiAyMjJCIDIyMkIgMjIyQjsKKzJBNzQ7MkE3NDsyQTc0OzAwM0EgMDAzQSAwMDNEOzAwM0EgMDAzQSAwMDNEOworMkE3NTsyQTc1OzJBNzU7MDAzRCAwMDNEOzAwM0QgMDAzRDsKKzJBNzY7MkE3NjsyQTc2OzAwM0QgMDAzRCAwMDNEOzAwM0QgMDAzRCAwMDNEOworMkFEQzsyQUREIDAzMzg7MkFERCAwMzM4OzJBREQgMDMzODsyQUREIDAzMzg7CisyRDZGOzJENkY7MkQ2RjsyRDYxOzJENjE7CisyRTlGOzJFOUY7MkU5Rjs2QkNEOzZCQ0Q7CisyRUYzOzJFRjM7MkVGMzs5RjlGOzlGOUY7CisyRjAwOzJGMDA7MkYwMDs0RTAwOzRFMDA7CisyRjAxOzJGMDE7MkYwMTs0RTI4OzRFMjg7CisyRjAyOzJGMDI7MkYwMjs0RTM2OzRFMzY7CisyRjAzOzJGMDM7MkYwMzs0RTNGOzRFM0Y7CisyRjA0OzJGMDQ7MkYwNDs0RTU5OzRFNTk7CisyRjA1OzJGMDU7MkYwNTs0RTg1OzRFODU7CisyRjA2OzJGMDY7MkYwNjs0RThDOzRFOEM7CisyRjA3OzJGMDc7MkYwNzs0RUEwOzRFQTA7CisyRjA4OzJGMDg7MkYwODs0RUJBOzRFQkE7CisyRjA5OzJGMDk7MkYwOTs1MTNGOzUxM0Y7CisyRjBBOzJGMEE7MkYwQTs1MTY1OzUxNjU7CisyRjBCOzJGMEI7MkYwQjs1MTZCOzUxNkI7CisyRjBDOzJGMEM7MkYwQzs1MTgyOzUxODI7CisyRjBEOzJGMEQ7MkYwRDs1MTk2OzUxOTY7CisyRjBFOzJGMEU7MkYwRTs1MUFCOzUxQUI7CisyRjBGOzJGMEY7MkYwRjs1MUUwOzUxRTA7CisyRjEwOzJGMTA7MkYxMDs1MUY1OzUxRjU7CisyRjExOzJGMTE7MkYxMTs1MjAwOzUyMDA7CisyRjEyOzJGMTI7MkYxMjs1MjlCOzUyOUI7CisyRjEzOzJGMTM7MkYxMzs1MkY5OzUyRjk7CisyRjE0OzJGMTQ7MkYxNDs1MzE1OzUzMTU7CisyRjE1OzJGMTU7MkYxNTs1MzFBOzUzMUE7CisyRjE2OzJGMTY7MkYxNjs1MzM4OzUzMzg7CisyRjE3OzJGMTc7MkYxNzs1MzQxOzUzNDE7CisyRjE4OzJGMTg7MkYxODs1MzVDOzUzNUM7CisyRjE5OzJGMTk7MkYxOTs1MzY5OzUzNjk7CisyRjFBOzJGMUE7MkYxQTs1MzgyOzUzODI7CisyRjFCOzJGMUI7MkYxQjs1M0I2OzUzQjY7CisyRjFDOzJGMUM7MkYxQzs1M0M4OzUzQzg7CisyRjFEOzJGMUQ7MkYxRDs1M0UzOzUzRTM7CisyRjFFOzJGMUU7MkYxRTs1NkQ3OzU2RDc7CisyRjFGOzJGMUY7MkYxRjs1NzFGOzU3MUY7CisyRjIwOzJGMjA7MkYyMDs1OEVCOzU4RUI7CisyRjIxOzJGMjE7MkYyMTs1OTAyOzU5MDI7CisyRjIyOzJGMjI7MkYyMjs1OTBBOzU5MEE7CisyRjIzOzJGMjM7MkYyMzs1OTE1OzU5MTU7CisyRjI0OzJGMjQ7MkYyNDs1OTI3OzU5Mjc7CisyRjI1OzJGMjU7MkYyNTs1OTczOzU5NzM7CisyRjI2OzJGMjY7MkYyNjs1QjUwOzVCNTA7CisyRjI3OzJGMjc7MkYyNzs1QjgwOzVCODA7CisyRjI4OzJGMjg7MkYyODs1QkY4OzVCRjg7CisyRjI5OzJGMjk7MkYyOTs1QzBGOzVDMEY7CisyRjJBOzJGMkE7MkYyQTs1QzIyOzVDMjI7CisyRjJCOzJGMkI7MkYyQjs1QzM4OzVDMzg7CisyRjJDOzJGMkM7MkYyQzs1QzZFOzVDNkU7CisyRjJEOzJGMkQ7MkYyRDs1QzcxOzVDNzE7CisyRjJFOzJGMkU7MkYyRTs1RERCOzVEREI7CisyRjJGOzJGMkY7MkYyRjs1REU1OzVERTU7CisyRjMwOzJGMzA7MkYzMDs1REYxOzVERjE7CisyRjMxOzJGMzE7MkYzMTs1REZFOzVERkU7CisyRjMyOzJGMzI7MkYzMjs1RTcyOzVFNzI7CisyRjMzOzJGMzM7MkYzMzs1RTdBOzVFN0E7CisyRjM0OzJGMzQ7MkYzNDs1RTdGOzVFN0Y7CisyRjM1OzJGMzU7MkYzNTs1RUY0OzVFRjQ7CisyRjM2OzJGMzY7MkYzNjs1RUZFOzVFRkU7CisyRjM3OzJGMzc7MkYzNzs1RjBCOzVGMEI7CisyRjM4OzJGMzg7MkYzODs1RjEzOzVGMTM7CisyRjM5OzJGMzk7MkYzOTs1RjUwOzVGNTA7CisyRjNBOzJGM0E7MkYzQTs1RjYxOzVGNjE7CisyRjNCOzJGM0I7MkYzQjs1RjczOzVGNzM7CisyRjNDOzJGM0M7MkYzQzs1RkMzOzVGQzM7CisyRjNEOzJGM0Q7MkYzRDs2MjA4OzYyMDg7CisyRjNFOzJGM0U7MkYzRTs2MjM2OzYyMzY7CisyRjNGOzJGM0Y7MkYzRjs2MjRCOzYyNEI7CisyRjQwOzJGNDA7MkY0MDs2NTJGOzY1MkY7CisyRjQxOzJGNDE7MkY0MTs2NTM0OzY1MzQ7CisyRjQyOzJGNDI7MkY0Mjs2NTg3OzY1ODc7CisyRjQzOzJGNDM7MkY0Mzs2NTk3OzY1OTc7CisyRjQ0OzJGNDQ7MkY0NDs2NUE0OzY1QTQ7CisyRjQ1OzJGNDU7MkY0NTs2NUI5OzY1Qjk7CisyRjQ2OzJGNDY7MkY0Njs2NUUwOzY1RTA7CisyRjQ3OzJGNDc7MkY0Nzs2NUU1OzY1RTU7CisyRjQ4OzJGNDg7MkY0ODs2NkYwOzY2RjA7CisyRjQ5OzJGNDk7MkY0OTs2NzA4OzY3MDg7CisyRjRBOzJGNEE7MkY0QTs2NzI4OzY3Mjg7CisyRjRCOzJGNEI7MkY0Qjs2QjIwOzZCMjA7CisyRjRDOzJGNEM7MkY0Qzs2QjYyOzZCNjI7CisyRjREOzJGNEQ7MkY0RDs2Qjc5OzZCNzk7CisyRjRFOzJGNEU7MkY0RTs2QkIzOzZCQjM7CisyRjRGOzJGNEY7MkY0Rjs2QkNCOzZCQ0I7CisyRjUwOzJGNTA7MkY1MDs2QkQ0OzZCRDQ7CisyRjUxOzJGNTE7MkY1MTs2QkRCOzZCREI7CisyRjUyOzJGNTI7MkY1Mjs2QzBGOzZDMEY7CisyRjUzOzJGNTM7MkY1Mzs2QzE0OzZDMTQ7CisyRjU0OzJGNTQ7MkY1NDs2QzM0OzZDMzQ7CisyRjU1OzJGNTU7MkY1NTs3MDZCOzcwNkI7CisyRjU2OzJGNTY7MkY1Njs3MjJBOzcyMkE7CisyRjU3OzJGNTc7MkY1Nzs3MjM2OzcyMzY7CisyRjU4OzJGNTg7MkY1ODs3MjNCOzcyM0I7CisyRjU5OzJGNTk7MkY1OTs3MjNGOzcyM0Y7CisyRjVBOzJGNUE7MkY1QTs3MjQ3OzcyNDc7CisyRjVCOzJGNUI7MkY1Qjs3MjU5OzcyNTk7CisyRjVDOzJGNUM7MkY1Qzs3MjVCOzcyNUI7CisyRjVEOzJGNUQ7MkY1RDs3MkFDOzcyQUM7CisyRjVFOzJGNUU7MkY1RTs3Mzg0OzczODQ7CisyRjVGOzJGNUY7MkY1Rjs3Mzg5OzczODk7CisyRjYwOzJGNjA7MkY2MDs3NERDOzc0REM7CisyRjYxOzJGNjE7MkY2MTs3NEU2Ozc0RTY7CisyRjYyOzJGNjI7MkY2Mjs3NTE4Ozc1MTg7CisyRjYzOzJGNjM7MkY2Mzs3NTFGOzc1MUY7CisyRjY0OzJGNjQ7MkY2NDs3NTI4Ozc1Mjg7CisyRjY1OzJGNjU7MkY2NTs3NTMwOzc1MzA7CisyRjY2OzJGNjY7MkY2Njs3NThCOzc1OEI7CisyRjY3OzJGNjc7MkY2Nzs3NTkyOzc1OTI7CisyRjY4OzJGNjg7MkY2ODs3Njc2Ozc2NzY7CisyRjY5OzJGNjk7MkY2OTs3NjdEOzc2N0Q7CisyRjZBOzJGNkE7MkY2QTs3NkFFOzc2QUU7CisyRjZCOzJGNkI7MkY2Qjs3NkJGOzc2QkY7CisyRjZDOzJGNkM7MkY2Qzs3NkVFOzc2RUU7CisyRjZEOzJGNkQ7MkY2RDs3N0RCOzc3REI7CisyRjZFOzJGNkU7MkY2RTs3N0UyOzc3RTI7CisyRjZGOzJGNkY7MkY2Rjs3N0YzOzc3RjM7CisyRjcwOzJGNzA7MkY3MDs3OTNBOzc5M0E7CisyRjcxOzJGNzE7MkY3MTs3OUI4Ozc5Qjg7CisyRjcyOzJGNzI7MkY3Mjs3OUJFOzc5QkU7CisyRjczOzJGNzM7MkY3Mzs3QTc0OzdBNzQ7CisyRjc0OzJGNzQ7MkY3NDs3QUNCOzdBQ0I7CisyRjc1OzJGNzU7MkY3NTs3QUY5OzdBRjk7CisyRjc2OzJGNzY7MkY3Njs3QzczOzdDNzM7CisyRjc3OzJGNzc7MkY3Nzs3Q0Y4OzdDRjg7CisyRjc4OzJGNzg7MkY3ODs3RjM2OzdGMzY7CisyRjc5OzJGNzk7MkY3OTs3RjUxOzdGNTE7CisyRjdBOzJGN0E7MkY3QTs3RjhBOzdGOEE7CisyRjdCOzJGN0I7MkY3Qjs3RkJEOzdGQkQ7CisyRjdDOzJGN0M7MkY3Qzs4MDAxOzgwMDE7CisyRjdEOzJGN0Q7MkY3RDs4MDBDOzgwMEM7CisyRjdFOzJGN0U7MkY3RTs4MDEyOzgwMTI7CisyRjdGOzJGN0Y7MkY3Rjs4MDMzOzgwMzM7CisyRjgwOzJGODA7MkY4MDs4MDdGOzgwN0Y7CisyRjgxOzJGODE7MkY4MTs4MDg5OzgwODk7CisyRjgyOzJGODI7MkY4Mjs4MUUzOzgxRTM7CisyRjgzOzJGODM7MkY4Mzs4MUVBOzgxRUE7CisyRjg0OzJGODQ7MkY4NDs4MUYzOzgxRjM7CisyRjg1OzJGODU7MkY4NTs4MUZDOzgxRkM7CisyRjg2OzJGODY7MkY4Njs4MjBDOzgyMEM7CisyRjg3OzJGODc7MkY4Nzs4MjFCOzgyMUI7CisyRjg4OzJGODg7MkY4ODs4MjFGOzgyMUY7CisyRjg5OzJGODk7MkY4OTs4MjZFOzgyNkU7CisyRjhBOzJGOEE7MkY4QTs4MjcyOzgyNzI7CisyRjhCOzJGOEI7MkY4Qjs4Mjc4OzgyNzg7CisyRjhDOzJGOEM7MkY4Qzs4NjREOzg2NEQ7CisyRjhEOzJGOEQ7MkY4RDs4NjZCOzg2NkI7CisyRjhFOzJGOEU7MkY4RTs4ODQwOzg4NDA7CisyRjhGOzJGOEY7MkY4Rjs4ODRDOzg4NEM7CisyRjkwOzJGOTA7MkY5MDs4ODYzOzg4NjM7CisyRjkxOzJGOTE7MkY5MTs4OTdFOzg5N0U7CisyRjkyOzJGOTI7MkY5Mjs4OThCOzg5OEI7CisyRjkzOzJGOTM7MkY5Mzs4OUQyOzg5RDI7CisyRjk0OzJGOTQ7MkY5NDs4QTAwOzhBMDA7CisyRjk1OzJGOTU7MkY5NTs4QzM3OzhDMzc7CisyRjk2OzJGOTY7MkY5Njs4QzQ2OzhDNDY7CisyRjk3OzJGOTc7MkY5Nzs4QzU1OzhDNTU7CisyRjk4OzJGOTg7MkY5ODs4Qzc4OzhDNzg7CisyRjk5OzJGOTk7MkY5OTs4QzlEOzhDOUQ7CisyRjlBOzJGOUE7MkY5QTs4RDY0OzhENjQ7CisyRjlCOzJGOUI7MkY5Qjs4RDcwOzhENzA7CisyRjlDOzJGOUM7MkY5Qzs4REIzOzhEQjM7CisyRjlEOzJGOUQ7MkY5RDs4RUFCOzhFQUI7CisyRjlFOzJGOUU7MkY5RTs4RUNBOzhFQ0E7CisyRjlGOzJGOUY7MkY5Rjs4RjlCOzhGOUI7CisyRkEwOzJGQTA7MkZBMDs4RkIwOzhGQjA7CisyRkExOzJGQTE7MkZBMTs4RkI1OzhGQjU7CisyRkEyOzJGQTI7MkZBMjs5MDkxOzkwOTE7CisyRkEzOzJGQTM7MkZBMzs5MTQ5OzkxNDk7CisyRkE0OzJGQTQ7MkZBNDs5MUM2OzkxQzY7CisyRkE1OzJGQTU7MkZBNTs5MUNDOzkxQ0M7CisyRkE2OzJGQTY7MkZBNjs5MUQxOzkxRDE7CisyRkE3OzJGQTc7MkZBNzs5NTc3Ozk1Nzc7CisyRkE4OzJGQTg7MkZBODs5NTgwOzk1ODA7CisyRkE5OzJGQTk7MkZBOTs5NjFDOzk2MUM7CisyRkFBOzJGQUE7MkZBQTs5NkI2Ozk2QjY7CisyRkFCOzJGQUI7MkZBQjs5NkI5Ozk2Qjk7CisyRkFDOzJGQUM7MkZBQzs5NkU4Ozk2RTg7CisyRkFEOzJGQUQ7MkZBRDs5NzUxOzk3NTE7CisyRkFFOzJGQUU7MkZBRTs5NzVFOzk3NUU7CisyRkFGOzJGQUY7MkZBRjs5NzYyOzk3NjI7CisyRkIwOzJGQjA7MkZCMDs5NzY5Ozk3Njk7CisyRkIxOzJGQjE7MkZCMTs5N0NCOzk3Q0I7CisyRkIyOzJGQjI7MkZCMjs5N0VEOzk3RUQ7CisyRkIzOzJGQjM7MkZCMzs5N0YzOzk3RjM7CisyRkI0OzJGQjQ7MkZCNDs5ODAxOzk4MDE7CisyRkI1OzJGQjU7MkZCNTs5OEE4Ozk4QTg7CisyRkI2OzJGQjY7MkZCNjs5OERCOzk4REI7CisyRkI3OzJGQjc7MkZCNzs5OERGOzk4REY7CisyRkI4OzJGQjg7MkZCODs5OTk2Ozk5OTY7CisyRkI5OzJGQjk7MkZCOTs5OTk5Ozk5OTk7CisyRkJBOzJGQkE7MkZCQTs5OUFDOzk5QUM7CisyRkJCOzJGQkI7MkZCQjs5QUE4OzlBQTg7CisyRkJDOzJGQkM7MkZCQzs5QUQ4OzlBRDg7CisyRkJEOzJGQkQ7MkZCRDs5QURGOzlBREY7CisyRkJFOzJGQkU7MkZCRTs5QjI1OzlCMjU7CisyRkJGOzJGQkY7MkZCRjs5QjJGOzlCMkY7CisyRkMwOzJGQzA7MkZDMDs5QjMyOzlCMzI7CisyRkMxOzJGQzE7MkZDMTs5QjNDOzlCM0M7CisyRkMyOzJGQzI7MkZDMjs5QjVBOzlCNUE7CisyRkMzOzJGQzM7MkZDMzs5Q0U1OzlDRTU7CisyRkM0OzJGQzQ7MkZDNDs5RTc1OzlFNzU7CisyRkM1OzJGQzU7MkZDNTs5RTdGOzlFN0Y7CisyRkM2OzJGQzY7MkZDNjs5RUE1OzlFQTU7CisyRkM3OzJGQzc7MkZDNzs5RUJCOzlFQkI7CisyRkM4OzJGQzg7MkZDODs5RUMzOzlFQzM7CisyRkM5OzJGQzk7MkZDOTs5RUNEOzlFQ0Q7CisyRkNBOzJGQ0E7MkZDQTs5RUQxOzlFRDE7CisyRkNCOzJGQ0I7MkZDQjs5RUY5OzlFRjk7CisyRkNDOzJGQ0M7MkZDQzs5RUZEOzlFRkQ7CisyRkNEOzJGQ0Q7MkZDRDs5RjBFOzlGMEU7CisyRkNFOzJGQ0U7MkZDRTs5RjEzOzlGMTM7CisyRkNGOzJGQ0Y7MkZDRjs5RjIwOzlGMjA7CisyRkQwOzJGRDA7MkZEMDs5RjNCOzlGM0I7CisyRkQxOzJGRDE7MkZEMTs5RjRBOzlGNEE7CisyRkQyOzJGRDI7MkZEMjs5RjUyOzlGNTI7CisyRkQzOzJGRDM7MkZEMzs5RjhEOzlGOEQ7CisyRkQ0OzJGRDQ7MkZENDs5RjlDOzlGOUM7CisyRkQ1OzJGRDU7MkZENTs5RkEwOzlGQTA7CiszMDAwOzMwMDA7MzAwMDswMDIwOzAwMjA7CiszMDM2OzMwMzY7MzAzNjszMDEyOzMwMTI7CiszMDM4OzMwMzg7MzAzODs1MzQxOzUzNDE7CiszMDM5OzMwMzk7MzAzOTs1MzQ0OzUzNDQ7CiszMDNBOzMwM0E7MzAzQTs1MzQ1OzUzNDU7CiszMDRDOzMwNEM7MzA0QiAzMDk5OzMwNEM7MzA0QiAzMDk5OworMzA0RTszMDRFOzMwNEQgMzA5OTszMDRFOzMwNEQgMzA5OTsKKzMwNTA7MzA1MDszMDRGIDMwOTk7MzA1MDszMDRGIDMwOTk7CiszMDUyOzMwNTI7MzA1MSAzMDk5OzMwNTI7MzA1MSAzMDk5OworMzA1NDszMDU0OzMwNTMgMzA5OTszMDU0OzMwNTMgMzA5OTsKKzMwNTY7MzA1NjszMDU1IDMwOTk7MzA1NjszMDU1IDMwOTk7CiszMDU4OzMwNTg7MzA1NyAzMDk5OzMwNTg7MzA1NyAzMDk5OworMzA1QTszMDVBOzMwNTkgMzA5OTszMDVBOzMwNTkgMzA5OTsKKzMwNUM7MzA1QzszMDVCIDMwOTk7MzA1QzszMDVCIDMwOTk7CiszMDVFOzMwNUU7MzA1RCAzMDk5OzMwNUU7MzA1RCAzMDk5OworMzA2MDszMDYwOzMwNUYgMzA5OTszMDYwOzMwNUYgMzA5OTsKKzMwNjI7MzA2MjszMDYxIDMwOTk7MzA2MjszMDYxIDMwOTk7CiszMDY1OzMwNjU7MzA2NCAzMDk5OzMwNjU7MzA2NCAzMDk5OworMzA2NzszMDY3OzMwNjYgMzA5OTszMDY3OzMwNjYgMzA5OTsKKzMwNjk7MzA2OTszMDY4IDMwOTk7MzA2OTszMDY4IDMwOTk7CiszMDcwOzMwNzA7MzA2RiAzMDk5OzMwNzA7MzA2RiAzMDk5OworMzA3MTszMDcxOzMwNkYgMzA5QTszMDcxOzMwNkYgMzA5QTsKKzMwNzM7MzA3MzszMDcyIDMwOTk7MzA3MzszMDcyIDMwOTk7CiszMDc0OzMwNzQ7MzA3MiAzMDlBOzMwNzQ7MzA3MiAzMDlBOworMzA3NjszMDc2OzMwNzUgMzA5OTszMDc2OzMwNzUgMzA5OTsKKzMwNzc7MzA3NzszMDc1IDMwOUE7MzA3NzszMDc1IDMwOUE7CiszMDc5OzMwNzk7MzA3OCAzMDk5OzMwNzk7MzA3OCAzMDk5OworMzA3QTszMDdBOzMwNzggMzA5QTszMDdBOzMwNzggMzA5QTsKKzMwN0M7MzA3QzszMDdCIDMwOTk7MzA3QzszMDdCIDMwOTk7CiszMDdEOzMwN0Q7MzA3QiAzMDlBOzMwN0Q7MzA3QiAzMDlBOworMzA5NDszMDk0OzMwNDYgMzA5OTszMDk0OzMwNDYgMzA5OTsKKzMwOUI7MzA5QjszMDlCOzAwMjAgMzA5OTswMDIwIDMwOTk7CiszMDlDOzMwOUM7MzA5QzswMDIwIDMwOUE7MDAyMCAzMDlBOworMzA5RTszMDlFOzMwOUQgMzA5OTszMDlFOzMwOUQgMzA5OTsKKzMwOUY7MzA5RjszMDlGOzMwODggMzA4QTszMDg4IDMwOEE7CiszMEFDOzMwQUM7MzBBQiAzMDk5OzMwQUM7MzBBQiAzMDk5OworMzBBRTszMEFFOzMwQUQgMzA5OTszMEFFOzMwQUQgMzA5OTsKKzMwQjA7MzBCMDszMEFGIDMwOTk7MzBCMDszMEFGIDMwOTk7CiszMEIyOzMwQjI7MzBCMSAzMDk5OzMwQjI7MzBCMSAzMDk5OworMzBCNDszMEI0OzMwQjMgMzA5OTszMEI0OzMwQjMgMzA5OTsKKzMwQjY7MzBCNjszMEI1IDMwOTk7MzBCNjszMEI1IDMwOTk7CiszMEI4OzMwQjg7MzBCNyAzMDk5OzMwQjg7MzBCNyAzMDk5OworMzBCQTszMEJBOzMwQjkgMzA5OTszMEJBOzMwQjkgMzA5OTsKKzMwQkM7MzBCQzszMEJCIDMwOTk7MzBCQzszMEJCIDMwOTk7CiszMEJFOzMwQkU7MzBCRCAzMDk5OzMwQkU7MzBCRCAzMDk5OworMzBDMDszMEMwOzMwQkYgMzA5OTszMEMwOzMwQkYgMzA5OTsKKzMwQzI7MzBDMjszMEMxIDMwOTk7MzBDMjszMEMxIDMwOTk7CiszMEM1OzMwQzU7MzBDNCAzMDk5OzMwQzU7MzBDNCAzMDk5OworMzBDNzszMEM3OzMwQzYgMzA5OTszMEM3OzMwQzYgMzA5OTsKKzMwQzk7MzBDOTszMEM4IDMwOTk7MzBDOTszMEM4IDMwOTk7CiszMEQwOzMwRDA7MzBDRiAzMDk5OzMwRDA7MzBDRiAzMDk5OworMzBEMTszMEQxOzMwQ0YgMzA5QTszMEQxOzMwQ0YgMzA5QTsKKzMwRDM7MzBEMzszMEQyIDMwOTk7MzBEMzszMEQyIDMwOTk7CiszMEQ0OzMwRDQ7MzBEMiAzMDlBOzMwRDQ7MzBEMiAzMDlBOworMzBENjszMEQ2OzMwRDUgMzA5OTszMEQ2OzMwRDUgMzA5OTsKKzMwRDc7MzBENzszMEQ1IDMwOUE7MzBENzszMEQ1IDMwOUE7CiszMEQ5OzMwRDk7MzBEOCAzMDk5OzMwRDk7MzBEOCAzMDk5OworMzBEQTszMERBOzMwRDggMzA5QTszMERBOzMwRDggMzA5QTsKKzMwREM7MzBEQzszMERCIDMwOTk7MzBEQzszMERCIDMwOTk7CiszMEREOzMwREQ7MzBEQiAzMDlBOzMwREQ7MzBEQiAzMDlBOworMzBGNDszMEY0OzMwQTYgMzA5OTszMEY0OzMwQTYgMzA5OTsKKzMwRjc7MzBGNzszMEVGIDMwOTk7MzBGNzszMEVGIDMwOTk7CiszMEY4OzMwRjg7MzBGMCAzMDk5OzMwRjg7MzBGMCAzMDk5OworMzBGOTszMEY5OzMwRjEgMzA5OTszMEY5OzMwRjEgMzA5OTsKKzMwRkE7MzBGQTszMEYyIDMwOTk7MzBGQTszMEYyIDMwOTk7CiszMEZFOzMwRkU7MzBGRCAzMDk5OzMwRkU7MzBGRCAzMDk5OworMzBGRjszMEZGOzMwRkY7MzBCMyAzMEM4OzMwQjMgMzBDODsKKzMxMzE7MzEzMTszMTMxOzExMDA7MTEwMDsKKzMxMzI7MzEzMjszMTMyOzExMDE7MTEwMTsKKzMxMzM7MzEzMzszMTMzOzExQUE7MTFBQTsKKzMxMzQ7MzEzNDszMTM0OzExMDI7MTEwMjsKKzMxMzU7MzEzNTszMTM1OzExQUM7MTFBQzsKKzMxMzY7MzEzNjszMTM2OzExQUQ7MTFBRDsKKzMxMzc7MzEzNzszMTM3OzExMDM7MTEwMzsKKzMxMzg7MzEzODszMTM4OzExMDQ7MTEwNDsKKzMxMzk7MzEzOTszMTM5OzExMDU7MTEwNTsKKzMxM0E7MzEzQTszMTNBOzExQjA7MTFCMDsKKzMxM0I7MzEzQjszMTNCOzExQjE7MTFCMTsKKzMxM0M7MzEzQzszMTNDOzExQjI7MTFCMjsKKzMxM0Q7MzEzRDszMTNEOzExQjM7MTFCMzsKKzMxM0U7MzEzRTszMTNFOzExQjQ7MTFCNDsKKzMxM0Y7MzEzRjszMTNGOzExQjU7MTFCNTsKKzMxNDA7MzE0MDszMTQwOzExMUE7MTExQTsKKzMxNDE7MzE0MTszMTQxOzExMDY7MTEwNjsKKzMxNDI7MzE0MjszMTQyOzExMDc7MTEwNzsKKzMxNDM7MzE0MzszMTQzOzExMDg7MTEwODsKKzMxNDQ7MzE0NDszMTQ0OzExMjE7MTEyMTsKKzMxNDU7MzE0NTszMTQ1OzExMDk7MTEwOTsKKzMxNDY7MzE0NjszMTQ2OzExMEE7MTEwQTsKKzMxNDc7MzE0NzszMTQ3OzExMEI7MTEwQjsKKzMxNDg7MzE0ODszMTQ4OzExMEM7MTEwQzsKKzMxNDk7MzE0OTszMTQ5OzExMEQ7MTEwRDsKKzMxNEE7MzE0QTszMTRBOzExMEU7MTEwRTsKKzMxNEI7MzE0QjszMTRCOzExMEY7MTEwRjsKKzMxNEM7MzE0QzszMTRDOzExMTA7MTExMDsKKzMxNEQ7MzE0RDszMTREOzExMTE7MTExMTsKKzMxNEU7MzE0RTszMTRFOzExMTI7MTExMjsKKzMxNEY7MzE0RjszMTRGOzExNjE7MTE2MTsKKzMxNTA7MzE1MDszMTUwOzExNjI7MTE2MjsKKzMxNTE7MzE1MTszMTUxOzExNjM7MTE2MzsKKzMxNTI7MzE1MjszMTUyOzExNjQ7MTE2NDsKKzMxNTM7MzE1MzszMTUzOzExNjU7MTE2NTsKKzMxNTQ7MzE1NDszMTU0OzExNjY7MTE2NjsKKzMxNTU7MzE1NTszMTU1OzExNjc7MTE2NzsKKzMxNTY7MzE1NjszMTU2OzExNjg7MTE2ODsKKzMxNTc7MzE1NzszMTU3OzExNjk7MTE2OTsKKzMxNTg7MzE1ODszMTU4OzExNkE7MTE2QTsKKzMxNTk7MzE1OTszMTU5OzExNkI7MTE2QjsKKzMxNUE7MzE1QTszMTVBOzExNkM7MTE2QzsKKzMxNUI7MzE1QjszMTVCOzExNkQ7MTE2RDsKKzMxNUM7MzE1QzszMTVDOzExNkU7MTE2RTsKKzMxNUQ7MzE1RDszMTVEOzExNkY7MTE2RjsKKzMxNUU7MzE1RTszMTVFOzExNzA7MTE3MDsKKzMxNUY7MzE1RjszMTVGOzExNzE7MTE3MTsKKzMxNjA7MzE2MDszMTYwOzExNzI7MTE3MjsKKzMxNjE7MzE2MTszMTYxOzExNzM7MTE3MzsKKzMxNjI7MzE2MjszMTYyOzExNzQ7MTE3NDsKKzMxNjM7MzE2MzszMTYzOzExNzU7MTE3NTsKKzMxNjQ7MzE2NDszMTY0OzExNjA7MTE2MDsKKzMxNjU7MzE2NTszMTY1OzExMTQ7MTExNDsKKzMxNjY7MzE2NjszMTY2OzExMTU7MTExNTsKKzMxNjc7MzE2NzszMTY3OzExQzc7MTFDNzsKKzMxNjg7MzE2ODszMTY4OzExQzg7MTFDODsKKzMxNjk7MzE2OTszMTY5OzExQ0M7MTFDQzsKKzMxNkE7MzE2QTszMTZBOzExQ0U7MTFDRTsKKzMxNkI7MzE2QjszMTZCOzExRDM7MTFEMzsKKzMxNkM7MzE2QzszMTZDOzExRDc7MTFENzsKKzMxNkQ7MzE2RDszMTZEOzExRDk7MTFEOTsKKzMxNkU7MzE2RTszMTZFOzExMUM7MTExQzsKKzMxNkY7MzE2RjszMTZGOzExREQ7MTFERDsKKzMxNzA7MzE3MDszMTcwOzExREY7MTFERjsKKzMxNzE7MzE3MTszMTcxOzExMUQ7MTExRDsKKzMxNzI7MzE3MjszMTcyOzExMUU7MTExRTsKKzMxNzM7MzE3MzszMTczOzExMjA7MTEyMDsKKzMxNzQ7MzE3NDszMTc0OzExMjI7MTEyMjsKKzMxNzU7MzE3NTszMTc1OzExMjM7MTEyMzsKKzMxNzY7MzE3NjszMTc2OzExMjc7MTEyNzsKKzMxNzc7MzE3NzszMTc3OzExMjk7MTEyOTsKKzMxNzg7MzE3ODszMTc4OzExMkI7MTEyQjsKKzMxNzk7MzE3OTszMTc5OzExMkM7MTEyQzsKKzMxN0E7MzE3QTszMTdBOzExMkQ7MTEyRDsKKzMxN0I7MzE3QjszMTdCOzExMkU7MTEyRTsKKzMxN0M7MzE3QzszMTdDOzExMkY7MTEyRjsKKzMxN0Q7MzE3RDszMTdEOzExMzI7MTEzMjsKKzMxN0U7MzE3RTszMTdFOzExMzY7MTEzNjsKKzMxN0Y7MzE3RjszMTdGOzExNDA7MTE0MDsKKzMxODA7MzE4MDszMTgwOzExNDc7MTE0NzsKKzMxODE7MzE4MTszMTgxOzExNEM7MTE0QzsKKzMxODI7MzE4MjszMTgyOzExRjE7MTFGMTsKKzMxODM7MzE4MzszMTgzOzExRjI7MTFGMjsKKzMxODQ7MzE4NDszMTg0OzExNTc7MTE1NzsKKzMxODU7MzE4NTszMTg1OzExNTg7MTE1ODsKKzMxODY7MzE4NjszMTg2OzExNTk7MTE1OTsKKzMxODc7MzE4NzszMTg3OzExODQ7MTE4NDsKKzMxODg7MzE4ODszMTg4OzExODU7MTE4NTsKKzMxODk7MzE4OTszMTg5OzExODg7MTE4ODsKKzMxOEE7MzE4QTszMThBOzExOTE7MTE5MTsKKzMxOEI7MzE4QjszMThCOzExOTI7MTE5MjsKKzMxOEM7MzE4QzszMThDOzExOTQ7MTE5NDsKKzMxOEQ7MzE4RDszMThEOzExOUU7MTE5RTsKKzMxOEU7MzE4RTszMThFOzExQTE7MTFBMTsKKzMxOTI7MzE5MjszMTkyOzRFMDA7NEUwMDsKKzMxOTM7MzE5MzszMTkzOzRFOEM7NEU4QzsKKzMxOTQ7MzE5NDszMTk0OzRFMDk7NEUwOTsKKzMxOTU7MzE5NTszMTk1OzU2REI7NTZEQjsKKzMxOTY7MzE5NjszMTk2OzRFMEE7NEUwQTsKKzMxOTc7MzE5NzszMTk3OzRFMkQ7NEUyRDsKKzMxOTg7MzE5ODszMTk4OzRFMEI7NEUwQjsKKzMxOTk7MzE5OTszMTk5Ozc1MzI7NzUzMjsKKzMxOUE7MzE5QTszMTlBOzRFNTk7NEU1OTsKKzMxOUI7MzE5QjszMTlCOzRFMTk7NEUxOTsKKzMxOUM7MzE5QzszMTlDOzRFMDE7NEUwMTsKKzMxOUQ7MzE5RDszMTlEOzU5Mjk7NTkyOTsKKzMxOUU7MzE5RTszMTlFOzU3MzA7NTczMDsKKzMxOUY7MzE5RjszMTlGOzRFQkE7NEVCQTsKKzMyMDA7MzIwMDszMjAwOzAwMjggMTEwMCAwMDI5OzAwMjggMTEwMCAwMDI5OworMzIwMTszMjAxOzMyMDE7MDAyOCAxMTAyIDAwMjk7MDAyOCAxMTAyIDAwMjk7CiszMjAyOzMyMDI7MzIwMjswMDI4IDExMDMgMDAyOTswMDI4IDExMDMgMDAyOTsKKzMyMDM7MzIwMzszMjAzOzAwMjggMTEwNSAwMDI5OzAwMjggMTEwNSAwMDI5OworMzIwNDszMjA0OzMyMDQ7MDAyOCAxMTA2IDAwMjk7MDAyOCAxMTA2IDAwMjk7CiszMjA1OzMyMDU7MzIwNTswMDI4IDExMDcgMDAyOTswMDI4IDExMDcgMDAyOTsKKzMyMDY7MzIwNjszMjA2OzAwMjggMTEwOSAwMDI5OzAwMjggMTEwOSAwMDI5OworMzIwNzszMjA3OzMyMDc7MDAyOCAxMTBCIDAwMjk7MDAyOCAxMTBCIDAwMjk7CiszMjA4OzMyMDg7MzIwODswMDI4IDExMEMgMDAyOTswMDI4IDExMEMgMDAyOTsKKzMyMDk7MzIwOTszMjA5OzAwMjggMTEwRSAwMDI5OzAwMjggMTEwRSAwMDI5OworMzIwQTszMjBBOzMyMEE7MDAyOCAxMTBGIDAwMjk7MDAyOCAxMTBGIDAwMjk7CiszMjBCOzMyMEI7MzIwQjswMDI4IDExMTAgMDAyOTswMDI4IDExMTAgMDAyOTsKKzMyMEM7MzIwQzszMjBDOzAwMjggMTExMSAwMDI5OzAwMjggMTExMSAwMDI5OworMzIwRDszMjBEOzMyMEQ7MDAyOCAxMTEyIDAwMjk7MDAyOCAxMTEyIDAwMjk7CiszMjBFOzMyMEU7MzIwRTswMDI4IEFDMDAgMDAyOTswMDI4IDExMDAgMTE2MSAwMDI5OworMzIwRjszMjBGOzMyMEY7MDAyOCBCMDk4IDAwMjk7MDAyOCAxMTAyIDExNjEgMDAyOTsKKzMyMTA7MzIxMDszMjEwOzAwMjggQjJFNCAwMDI5OzAwMjggMTEwMyAxMTYxIDAwMjk7CiszMjExOzMyMTE7MzIxMTswMDI4IEI3N0MgMDAyOTswMDI4IDExMDUgMTE2MSAwMDI5OworMzIxMjszMjEyOzMyMTI7MDAyOCBCOUM4IDAwMjk7MDAyOCAxMTA2IDExNjEgMDAyOTsKKzMyMTM7MzIxMzszMjEzOzAwMjggQkMxNCAwMDI5OzAwMjggMTEwNyAxMTYxIDAwMjk7CiszMjE0OzMyMTQ7MzIxNDswMDI4IEMwQUMgMDAyOTswMDI4IDExMDkgMTE2MSAwMDI5OworMzIxNTszMjE1OzMyMTU7MDAyOCBDNTQ0IDAwMjk7MDAyOCAxMTBCIDExNjEgMDAyOTsKKzMyMTY7MzIxNjszMjE2OzAwMjggQzc5MCAwMDI5OzAwMjggMTEwQyAxMTYxIDAwMjk7CiszMjE3OzMyMTc7MzIxNzswMDI4IENDMjggMDAyOTswMDI4IDExMEUgMTE2MSAwMDI5OworMzIxODszMjE4OzMyMTg7MDAyOCBDRTc0IDAwMjk7MDAyOCAxMTBGIDExNjEgMDAyOTsKKzMyMTk7MzIxOTszMjE5OzAwMjggRDBDMCAwMDI5OzAwMjggMTExMCAxMTYxIDAwMjk7CiszMjFBOzMyMUE7MzIxQTswMDI4IEQzMEMgMDAyOTswMDI4IDExMTEgMTE2MSAwMDI5OworMzIxQjszMjFCOzMyMUI7MDAyOCBENTU4IDAwMjk7MDAyOCAxMTEyIDExNjEgMDAyOTsKKzMyMUM7MzIxQzszMjFDOzAwMjggQzhGQyAwMDI5OzAwMjggMTEwQyAxMTZFIDAwMjk7CiszMjFEOzMyMUQ7MzIxRDswMDI4IEM2MjQgQzgwNCAwMDI5OzAwMjggMTEwQiAxMTY5IDExMEMgMTE2NSAxMUFCIDAwMjk7CiszMjFFOzMyMUU7MzIxRTswMDI4IEM2MjQgRDZDNCAwMDI5OzAwMjggMTEwQiAxMTY5IDExMTIgMTE2RSAwMDI5OworMzIyMDszMjIwOzMyMjA7MDAyOCA0RTAwIDAwMjk7MDAyOCA0RTAwIDAwMjk7CiszMjIxOzMyMjE7MzIyMTswMDI4IDRFOEMgMDAyOTswMDI4IDRFOEMgMDAyOTsKKzMyMjI7MzIyMjszMjIyOzAwMjggNEUwOSAwMDI5OzAwMjggNEUwOSAwMDI5OworMzIyMzszMjIzOzMyMjM7MDAyOCA1NkRCIDAwMjk7MDAyOCA1NkRCIDAwMjk7CiszMjI0OzMyMjQ7MzIyNDswMDI4IDRFOTQgMDAyOTswMDI4IDRFOTQgMDAyOTsKKzMyMjU7MzIyNTszMjI1OzAwMjggNTE2RCAwMDI5OzAwMjggNTE2RCAwMDI5OworMzIyNjszMjI2OzMyMjY7MDAyOCA0RTAzIDAwMjk7MDAyOCA0RTAzIDAwMjk7CiszMjI3OzMyMjc7MzIyNzswMDI4IDUxNkIgMDAyOTswMDI4IDUxNkIgMDAyOTsKKzMyMjg7MzIyODszMjI4OzAwMjggNEU1RCAwMDI5OzAwMjggNEU1RCAwMDI5OworMzIyOTszMjI5OzMyMjk7MDAyOCA1MzQxIDAwMjk7MDAyOCA1MzQxIDAwMjk7CiszMjJBOzMyMkE7MzIyQTswMDI4IDY3MDggMDAyOTswMDI4IDY3MDggMDAyOTsKKzMyMkI7MzIyQjszMjJCOzAwMjggNzA2QiAwMDI5OzAwMjggNzA2QiAwMDI5OworMzIyQzszMjJDOzMyMkM7MDAyOCA2QzM0IDAwMjk7MDAyOCA2QzM0IDAwMjk7CiszMjJEOzMyMkQ7MzIyRDswMDI4IDY3MjggMDAyOTswMDI4IDY3MjggMDAyOTsKKzMyMkU7MzIyRTszMjJFOzAwMjggOTFEMSAwMDI5OzAwMjggOTFEMSAwMDI5OworMzIyRjszMjJGOzMyMkY7MDAyOCA1NzFGIDAwMjk7MDAyOCA1NzFGIDAwMjk7CiszMjMwOzMyMzA7MzIzMDswMDI4IDY1RTUgMDAyOTswMDI4IDY1RTUgMDAyOTsKKzMyMzE7MzIzMTszMjMxOzAwMjggNjgyQSAwMDI5OzAwMjggNjgyQSAwMDI5OworMzIzMjszMjMyOzMyMzI7MDAyOCA2NzA5IDAwMjk7MDAyOCA2NzA5IDAwMjk7CiszMjMzOzMyMzM7MzIzMzswMDI4IDc5M0UgMDAyOTswMDI4IDc5M0UgMDAyOTsKKzMyMzQ7MzIzNDszMjM0OzAwMjggNTQwRCAwMDI5OzAwMjggNTQwRCAwMDI5OworMzIzNTszMjM1OzMyMzU7MDAyOCA3Mjc5IDAwMjk7MDAyOCA3Mjc5IDAwMjk7CiszMjM2OzMyMzY7MzIzNjswMDI4IDhDQTEgMDAyOTswMDI4IDhDQTEgMDAyOTsKKzMyMzc7MzIzNzszMjM3OzAwMjggNzk1RCAwMDI5OzAwMjggNzk1RCAwMDI5OworMzIzODszMjM4OzMyMzg7MDAyOCA1MkI0IDAwMjk7MDAyOCA1MkI0IDAwMjk7CiszMjM5OzMyMzk7MzIzOTswMDI4IDRFRTMgMDAyOTswMDI4IDRFRTMgMDAyOTsKKzMyM0E7MzIzQTszMjNBOzAwMjggNTQ3QyAwMDI5OzAwMjggNTQ3QyAwMDI5OworMzIzQjszMjNCOzMyM0I7MDAyOCA1QjY2IDAwMjk7MDAyOCA1QjY2IDAwMjk7CiszMjNDOzMyM0M7MzIzQzswMDI4IDc2RTMgMDAyOTswMDI4IDc2RTMgMDAyOTsKKzMyM0Q7MzIzRDszMjNEOzAwMjggNEYwMSAwMDI5OzAwMjggNEYwMSAwMDI5OworMzIzRTszMjNFOzMyM0U7MDAyOCA4Q0M3IDAwMjk7MDAyOCA4Q0M3IDAwMjk7CiszMjNGOzMyM0Y7MzIzRjswMDI4IDUzNTQgMDAyOTswMDI4IDUzNTQgMDAyOTsKKzMyNDA7MzI0MDszMjQwOzAwMjggNzk2RCAwMDI5OzAwMjggNzk2RCAwMDI5OworMzI0MTszMjQxOzMyNDE7MDAyOCA0RjExIDAwMjk7MDAyOCA0RjExIDAwMjk7CiszMjQyOzMyNDI7MzI0MjswMDI4IDgxRUEgMDAyOTswMDI4IDgxRUEgMDAyOTsKKzMyNDM7MzI0MzszMjQzOzAwMjggODFGMyAwMDI5OzAwMjggODFGMyAwMDI5OworMzI1MDszMjUwOzMyNTA7MDA1MCAwMDU0IDAwNDU7MDA1MCAwMDU0IDAwNDU7CiszMjUxOzMyNTE7MzI1MTswMDMyIDAwMzE7MDAzMiAwMDMxOworMzI1MjszMjUyOzMyNTI7MDAzMiAwMDMyOzAwMzIgMDAzMjsKKzMyNTM7MzI1MzszMjUzOzAwMzIgMDAzMzswMDMyIDAwMzM7CiszMjU0OzMyNTQ7MzI1NDswMDMyIDAwMzQ7MDAzMiAwMDM0OworMzI1NTszMjU1OzMyNTU7MDAzMiAwMDM1OzAwMzIgMDAzNTsKKzMyNTY7MzI1NjszMjU2OzAwMzIgMDAzNjswMDMyIDAwMzY7CiszMjU3OzMyNTc7MzI1NzswMDMyIDAwMzc7MDAzMiAwMDM3OworMzI1ODszMjU4OzMyNTg7MDAzMiAwMDM4OzAwMzIgMDAzODsKKzMyNTk7MzI1OTszMjU5OzAwMzIgMDAzOTswMDMyIDAwMzk7CiszMjVBOzMyNUE7MzI1QTswMDMzIDAwMzA7MDAzMyAwMDMwOworMzI1QjszMjVCOzMyNUI7MDAzMyAwMDMxOzAwMzMgMDAzMTsKKzMyNUM7MzI1QzszMjVDOzAwMzMgMDAzMjswMDMzIDAwMzI7CiszMjVEOzMyNUQ7MzI1RDswMDMzIDAwMzM7MDAzMyAwMDMzOworMzI1RTszMjVFOzMyNUU7MDAzMyAwMDM0OzAwMzMgMDAzNDsKKzMyNUY7MzI1RjszMjVGOzAwMzMgMDAzNTswMDMzIDAwMzU7CiszMjYwOzMyNjA7MzI2MDsxMTAwOzExMDA7CiszMjYxOzMyNjE7MzI2MTsxMTAyOzExMDI7CiszMjYyOzMyNjI7MzI2MjsxMTAzOzExMDM7CiszMjYzOzMyNjM7MzI2MzsxMTA1OzExMDU7CiszMjY0OzMyNjQ7MzI2NDsxMTA2OzExMDY7CiszMjY1OzMyNjU7MzI2NTsxMTA3OzExMDc7CiszMjY2OzMyNjY7MzI2NjsxMTA5OzExMDk7CiszMjY3OzMyNjc7MzI2NzsxMTBCOzExMEI7CiszMjY4OzMyNjg7MzI2ODsxMTBDOzExMEM7CiszMjY5OzMyNjk7MzI2OTsxMTBFOzExMEU7CiszMjZBOzMyNkE7MzI2QTsxMTBGOzExMEY7CiszMjZCOzMyNkI7MzI2QjsxMTEwOzExMTA7CiszMjZDOzMyNkM7MzI2QzsxMTExOzExMTE7CiszMjZEOzMyNkQ7MzI2RDsxMTEyOzExMTI7CiszMjZFOzMyNkU7MzI2RTtBQzAwOzExMDAgMTE2MTsKKzMyNkY7MzI2RjszMjZGO0IwOTg7MTEwMiAxMTYxOworMzI3MDszMjcwOzMyNzA7QjJFNDsxMTAzIDExNjE7CiszMjcxOzMyNzE7MzI3MTtCNzdDOzExMDUgMTE2MTsKKzMyNzI7MzI3MjszMjcyO0I5Qzg7MTEwNiAxMTYxOworMzI3MzszMjczOzMyNzM7QkMxNDsxMTA3IDExNjE7CiszMjc0OzMyNzQ7MzI3NDtDMEFDOzExMDkgMTE2MTsKKzMyNzU7MzI3NTszMjc1O0M1NDQ7MTEwQiAxMTYxOworMzI3NjszMjc2OzMyNzY7Qzc5MDsxMTBDIDExNjE7CiszMjc3OzMyNzc7MzI3NztDQzI4OzExMEUgMTE2MTsKKzMyNzg7MzI3ODszMjc4O0NFNzQ7MTEwRiAxMTYxOworMzI3OTszMjc5OzMyNzk7RDBDMDsxMTEwIDExNjE7CiszMjdBOzMyN0E7MzI3QTtEMzBDOzExMTEgMTE2MTsKKzMyN0I7MzI3QjszMjdCO0Q1NTg7MTExMiAxMTYxOworMzI3QzszMjdDOzMyN0M7Q0MzOCBBQ0UwOzExMEUgMTE2MSAxMUI3IDExMDAgMTE2OTsKKzMyN0Q7MzI3RDszMjdEO0M4RkMgQzc1ODsxMTBDIDExNkUgMTEwQiAxMTc0OworMzI3RTszMjdFOzMyN0U7QzZCMDsxMTBCIDExNkU7CiszMjgwOzMyODA7MzI4MDs0RTAwOzRFMDA7CiszMjgxOzMyODE7MzI4MTs0RThDOzRFOEM7CiszMjgyOzMyODI7MzI4Mjs0RTA5OzRFMDk7CiszMjgzOzMyODM7MzI4Mzs1NkRCOzU2REI7CiszMjg0OzMyODQ7MzI4NDs0RTk0OzRFOTQ7CiszMjg1OzMyODU7MzI4NTs1MTZEOzUxNkQ7CiszMjg2OzMyODY7MzI4Njs0RTAzOzRFMDM7CiszMjg3OzMyODc7MzI4Nzs1MTZCOzUxNkI7CiszMjg4OzMyODg7MzI4ODs0RTVEOzRFNUQ7CiszMjg5OzMyODk7MzI4OTs1MzQxOzUzNDE7CiszMjhBOzMyOEE7MzI4QTs2NzA4OzY3MDg7CiszMjhCOzMyOEI7MzI4Qjs3MDZCOzcwNkI7CiszMjhDOzMyOEM7MzI4Qzs2QzM0OzZDMzQ7CiszMjhEOzMyOEQ7MzI4RDs2NzI4OzY3Mjg7CiszMjhFOzMyOEU7MzI4RTs5MUQxOzkxRDE7CiszMjhGOzMyOEY7MzI4Rjs1NzFGOzU3MUY7CiszMjkwOzMyOTA7MzI5MDs2NUU1OzY1RTU7CiszMjkxOzMyOTE7MzI5MTs2ODJBOzY4MkE7CiszMjkyOzMyOTI7MzI5Mjs2NzA5OzY3MDk7CiszMjkzOzMyOTM7MzI5Mzs3OTNFOzc5M0U7CiszMjk0OzMyOTQ7MzI5NDs1NDBEOzU0MEQ7CiszMjk1OzMyOTU7MzI5NTs3Mjc5OzcyNzk7CiszMjk2OzMyOTY7MzI5Njs4Q0ExOzhDQTE7CiszMjk3OzMyOTc7MzI5Nzs3OTVEOzc5NUQ7CiszMjk4OzMyOTg7MzI5ODs1MkI0OzUyQjQ7CiszMjk5OzMyOTk7MzI5OTs3OUQ4Ozc5RDg7CiszMjlBOzMyOUE7MzI5QTs3NTM3Ozc1Mzc7CiszMjlCOzMyOUI7MzI5Qjs1OTczOzU5NzM7CiszMjlDOzMyOUM7MzI5Qzs5MDY5OzkwNjk7CiszMjlEOzMyOUQ7MzI5RDs1MTJBOzUxMkE7CiszMjlFOzMyOUU7MzI5RTs1MzcwOzUzNzA7CiszMjlGOzMyOUY7MzI5Rjs2Q0U4OzZDRTg7CiszMkEwOzMyQTA7MzJBMDs5ODA1Ozk4MDU7CiszMkExOzMyQTE7MzJBMTs0RjExOzRGMTE7CiszMkEyOzMyQTI7MzJBMjs1MTk5OzUxOTk7CiszMkEzOzMyQTM7MzJBMzs2QjYzOzZCNjM7CiszMkE0OzMyQTQ7MzJBNDs0RTBBOzRFMEE7CiszMkE1OzMyQTU7MzJBNTs0RTJEOzRFMkQ7CiszMkE2OzMyQTY7MzJBNjs0RTBCOzRFMEI7CiszMkE3OzMyQTc7MzJBNzs1REU2OzVERTY7CiszMkE4OzMyQTg7MzJBODs1M0YzOzUzRjM7CiszMkE5OzMyQTk7MzJBOTs1MzNCOzUzM0I7CiszMkFBOzMyQUE7MzJBQTs1Qjk3OzVCOTc7CiszMkFCOzMyQUI7MzJBQjs1QjY2OzVCNjY7CiszMkFDOzMyQUM7MzJBQzs3NkUzOzc2RTM7CiszMkFEOzMyQUQ7MzJBRDs0RjAxOzRGMDE7CiszMkFFOzMyQUU7MzJBRTs4Q0M3OzhDQzc7CiszMkFGOzMyQUY7MzJBRjs1MzU0OzUzNTQ7CiszMkIwOzMyQjA7MzJCMDs1OTFDOzU5MUM7CiszMkIxOzMyQjE7MzJCMTswMDMzIDAwMzY7MDAzMyAwMDM2OworMzJCMjszMkIyOzMyQjI7MDAzMyAwMDM3OzAwMzMgMDAzNzsKKzMyQjM7MzJCMzszMkIzOzAwMzMgMDAzODswMDMzIDAwMzg7CiszMkI0OzMyQjQ7MzJCNDswMDMzIDAwMzk7MDAzMyAwMDM5OworMzJCNTszMkI1OzMyQjU7MDAzNCAwMDMwOzAwMzQgMDAzMDsKKzMyQjY7MzJCNjszMkI2OzAwMzQgMDAzMTswMDM0IDAwMzE7CiszMkI3OzMyQjc7MzJCNzswMDM0IDAwMzI7MDAzNCAwMDMyOworMzJCODszMkI4OzMyQjg7MDAzNCAwMDMzOzAwMzQgMDAzMzsKKzMyQjk7MzJCOTszMkI5OzAwMzQgMDAzNDswMDM0IDAwMzQ7CiszMkJBOzMyQkE7MzJCQTswMDM0IDAwMzU7MDAzNCAwMDM1OworMzJCQjszMkJCOzMyQkI7MDAzNCAwMDM2OzAwMzQgMDAzNjsKKzMyQkM7MzJCQzszMkJDOzAwMzQgMDAzNzswMDM0IDAwMzc7CiszMkJEOzMyQkQ7MzJCRDswMDM0IDAwMzg7MDAzNCAwMDM4OworMzJCRTszMkJFOzMyQkU7MDAzNCAwMDM5OzAwMzQgMDAzOTsKKzMyQkY7MzJCRjszMkJGOzAwMzUgMDAzMDswMDM1IDAwMzA7CiszMkMwOzMyQzA7MzJDMDswMDMxIDY3MDg7MDAzMSA2NzA4OworMzJDMTszMkMxOzMyQzE7MDAzMiA2NzA4OzAwMzIgNjcwODsKKzMyQzI7MzJDMjszMkMyOzAwMzMgNjcwODswMDMzIDY3MDg7CiszMkMzOzMyQzM7MzJDMzswMDM0IDY3MDg7MDAzNCA2NzA4OworMzJDNDszMkM0OzMyQzQ7MDAzNSA2NzA4OzAwMzUgNjcwODsKKzMyQzU7MzJDNTszMkM1OzAwMzYgNjcwODswMDM2IDY3MDg7CiszMkM2OzMyQzY7MzJDNjswMDM3IDY3MDg7MDAzNyA2NzA4OworMzJDNzszMkM3OzMyQzc7MDAzOCA2NzA4OzAwMzggNjcwODsKKzMyQzg7MzJDODszMkM4OzAwMzkgNjcwODswMDM5IDY3MDg7CiszMkM5OzMyQzk7MzJDOTswMDMxIDAwMzAgNjcwODswMDMxIDAwMzAgNjcwODsKKzMyQ0E7MzJDQTszMkNBOzAwMzEgMDAzMSA2NzA4OzAwMzEgMDAzMSA2NzA4OworMzJDQjszMkNCOzMyQ0I7MDAzMSAwMDMyIDY3MDg7MDAzMSAwMDMyIDY3MDg7CiszMkNDOzMyQ0M7MzJDQzswMDQ4IDAwNjc7MDA0OCAwMDY3OworMzJDRDszMkNEOzMyQ0Q7MDA2NSAwMDcyIDAwNjc7MDA2NSAwMDcyIDAwNjc7CiszMkNFOzMyQ0U7MzJDRTswMDY1IDAwNTY7MDA2NSAwMDU2OworMzJDRjszMkNGOzMyQ0Y7MDA0QyAwMDU0IDAwNDQ7MDA0QyAwMDU0IDAwNDQ7CiszMkQwOzMyRDA7MzJEMDszMEEyOzMwQTI7CiszMkQxOzMyRDE7MzJEMTszMEE0OzMwQTQ7CiszMkQyOzMyRDI7MzJEMjszMEE2OzMwQTY7CiszMkQzOzMyRDM7MzJEMzszMEE4OzMwQTg7CiszMkQ0OzMyRDQ7MzJENDszMEFBOzMwQUE7CiszMkQ1OzMyRDU7MzJENTszMEFCOzMwQUI7CiszMkQ2OzMyRDY7MzJENjszMEFEOzMwQUQ7CiszMkQ3OzMyRDc7MzJENzszMEFGOzMwQUY7CiszMkQ4OzMyRDg7MzJEODszMEIxOzMwQjE7CiszMkQ5OzMyRDk7MzJEOTszMEIzOzMwQjM7CiszMkRBOzMyREE7MzJEQTszMEI1OzMwQjU7CiszMkRCOzMyREI7MzJEQjszMEI3OzMwQjc7CiszMkRDOzMyREM7MzJEQzszMEI5OzMwQjk7CiszMkREOzMyREQ7MzJERDszMEJCOzMwQkI7CiszMkRFOzMyREU7MzJERTszMEJEOzMwQkQ7CiszMkRGOzMyREY7MzJERjszMEJGOzMwQkY7CiszMkUwOzMyRTA7MzJFMDszMEMxOzMwQzE7CiszMkUxOzMyRTE7MzJFMTszMEM0OzMwQzQ7CiszMkUyOzMyRTI7MzJFMjszMEM2OzMwQzY7CiszMkUzOzMyRTM7MzJFMzszMEM4OzMwQzg7CiszMkU0OzMyRTQ7MzJFNDszMENBOzMwQ0E7CiszMkU1OzMyRTU7MzJFNTszMENCOzMwQ0I7CiszMkU2OzMyRTY7MzJFNjszMENDOzMwQ0M7CiszMkU3OzMyRTc7MzJFNzszMENEOzMwQ0Q7CiszMkU4OzMyRTg7MzJFODszMENFOzMwQ0U7CiszMkU5OzMyRTk7MzJFOTszMENGOzMwQ0Y7CiszMkVBOzMyRUE7MzJFQTszMEQyOzMwRDI7CiszMkVCOzMyRUI7MzJFQjszMEQ1OzMwRDU7CiszMkVDOzMyRUM7MzJFQzszMEQ4OzMwRDg7CiszMkVEOzMyRUQ7MzJFRDszMERCOzMwREI7CiszMkVFOzMyRUU7MzJFRTszMERFOzMwREU7CiszMkVGOzMyRUY7MzJFRjszMERGOzMwREY7CiszMkYwOzMyRjA7MzJGMDszMEUwOzMwRTA7CiszMkYxOzMyRjE7MzJGMTszMEUxOzMwRTE7CiszMkYyOzMyRjI7MzJGMjszMEUyOzMwRTI7CiszMkYzOzMyRjM7MzJGMzszMEU0OzMwRTQ7CiszMkY0OzMyRjQ7MzJGNDszMEU2OzMwRTY7CiszMkY1OzMyRjU7MzJGNTszMEU4OzMwRTg7CiszMkY2OzMyRjY7MzJGNjszMEU5OzMwRTk7CiszMkY3OzMyRjc7MzJGNzszMEVBOzMwRUE7CiszMkY4OzMyRjg7MzJGODszMEVCOzMwRUI7CiszMkY5OzMyRjk7MzJGOTszMEVDOzMwRUM7CiszMkZBOzMyRkE7MzJGQTszMEVEOzMwRUQ7CiszMkZCOzMyRkI7MzJGQjszMEVGOzMwRUY7CiszMkZDOzMyRkM7MzJGQzszMEYwOzMwRjA7CiszMkZEOzMyRkQ7MzJGRDszMEYxOzMwRjE7CiszMkZFOzMyRkU7MzJGRTszMEYyOzMwRjI7CiszMzAwOzMzMDA7MzMwMDszMEEyIDMwRDEgMzBGQyAzMEM4OzMwQTIgMzBDRiAzMDlBIDMwRkMgMzBDODsKKzMzMDE7MzMwMTszMzAxOzMwQTIgMzBFQiAzMEQ1IDMwQTE7MzBBMiAzMEVCIDMwRDUgMzBBMTsKKzMzMDI7MzMwMjszMzAyOzMwQTIgMzBGMyAzMERBIDMwQTI7MzBBMiAzMEYzIDMwRDggMzA5QSAzMEEyOworMzMwMzszMzAzOzMzMDM7MzBBMiAzMEZDIDMwRUI7MzBBMiAzMEZDIDMwRUI7CiszMzA0OzMzMDQ7MzMwNDszMEE0IDMwQ0IgMzBGMyAzMEIwOzMwQTQgMzBDQiAzMEYzIDMwQUYgMzA5OTsKKzMzMDU7MzMwNTszMzA1OzMwQTQgMzBGMyAzMEMxOzMwQTQgMzBGMyAzMEMxOworMzMwNjszMzA2OzMzMDY7MzBBNiAzMEE5IDMwRjM7MzBBNiAzMEE5IDMwRjM7CiszMzA3OzMzMDc7MzMwNzszMEE4IDMwQjkgMzBBRiAzMEZDIDMwQzk7MzBBOCAzMEI5IDMwQUYgMzBGQyAzMEM4IDMwOTk7CiszMzA4OzMzMDg7MzMwODszMEE4IDMwRkMgMzBBQiAzMEZDOzMwQTggMzBGQyAzMEFCIDMwRkM7CiszMzA5OzMzMDk7MzMwOTszMEFBIDMwRjMgMzBCOTszMEFBIDMwRjMgMzBCOTsKKzMzMEE7MzMwQTszMzBBOzMwQUEgMzBGQyAzMEUwOzMwQUEgMzBGQyAzMEUwOworMzMwQjszMzBCOzMzMEI7MzBBQiAzMEE0IDMwRUE7MzBBQiAzMEE0IDMwRUE7CiszMzBDOzMzMEM7MzMwQzszMEFCIDMwRTkgMzBDMyAzMEM4OzMwQUIgMzBFOSAzMEMzIDMwQzg7CiszMzBEOzMzMEQ7MzMwRDszMEFCIDMwRUQgMzBFQSAzMEZDOzMwQUIgMzBFRCAzMEVBIDMwRkM7CiszMzBFOzMzMEU7MzMwRTszMEFDIDMwRUQgMzBGMzszMEFCIDMwOTkgMzBFRCAzMEYzOworMzMwRjszMzBGOzMzMEY7MzBBQyAzMEYzIDMwREU7MzBBQiAzMDk5IDMwRjMgMzBERTsKKzMzMTA7MzMxMDszMzEwOzMwQUUgMzBBQzszMEFEIDMwOTkgMzBBQiAzMDk5OworMzMxMTszMzExOzMzMTE7MzBBRSAzMENCIDMwRkM7MzBBRCAzMDk5IDMwQ0IgMzBGQzsKKzMzMTI7MzMxMjszMzEyOzMwQUQgMzBFNSAzMEVBIDMwRkM7MzBBRCAzMEU1IDMwRUEgMzBGQzsKKzMzMTM7MzMxMzszMzEzOzMwQUUgMzBFQiAzMEMwIDMwRkM7MzBBRCAzMDk5IDMwRUIgMzBCRiAzMDk5IDMwRkM7CiszMzE0OzMzMTQ7MzMxNDszMEFEIDMwRUQ7MzBBRCAzMEVEOworMzMxNTszMzE1OzMzMTU7MzBBRCAzMEVEIDMwQjAgMzBFOSAzMEUwOzMwQUQgMzBFRCAzMEFGIDMwOTkgMzBFOSAzMEUwOworMzMxNjszMzE2OzMzMTY7MzBBRCAzMEVEIDMwRTEgMzBGQyAzMEM4IDMwRUI7MzBBRCAzMEVEIDMwRTEgMzBGQyAzMEM4IDMwRUI7CiszMzE3OzMzMTc7MzMxNzszMEFEIDMwRUQgMzBFRiAzMEMzIDMwQzg7MzBBRCAzMEVEIDMwRUYgMzBDMyAzMEM4OworMzMxODszMzE4OzMzMTg7MzBCMCAzMEU5IDMwRTA7MzBBRiAzMDk5IDMwRTkgMzBFMDsKKzMzMTk7MzMxOTszMzE5OzMwQjAgMzBFOSAzMEUwIDMwQzggMzBGMzszMEFGIDMwOTkgMzBFOSAzMEUwIDMwQzggMzBGMzsKKzMzMUE7MzMxQTszMzFBOzMwQUYgMzBFQiAzMEJDIDMwQTQgMzBFRDszMEFGIDMwRUIgMzBCQiAzMDk5IDMwQTQgMzBFRDsKKzMzMUI7MzMxQjszMzFCOzMwQUYgMzBFRCAzMEZDIDMwQ0Q7MzBBRiAzMEVEIDMwRkMgMzBDRDsKKzMzMUM7MzMxQzszMzFDOzMwQjEgMzBGQyAzMEI5OzMwQjEgMzBGQyAzMEI5OworMzMxRDszMzFEOzMzMUQ7MzBCMyAzMEVCIDMwQ0E7MzBCMyAzMEVCIDMwQ0E7CiszMzFFOzMzMUU7MzMxRTszMEIzIDMwRkMgMzBERDszMEIzIDMwRkMgMzBEQiAzMDlBOworMzMxRjszMzFGOzMzMUY7MzBCNSAzMEE0IDMwQUYgMzBFQjszMEI1IDMwQTQgMzBBRiAzMEVCOworMzMyMDszMzIwOzMzMjA7MzBCNSAzMEYzIDMwQzEgMzBGQyAzMEUwOzMwQjUgMzBGMyAzMEMxIDMwRkMgMzBFMDsKKzMzMjE7MzMyMTszMzIxOzMwQjcgMzBFQSAzMEYzIDMwQjA7MzBCNyAzMEVBIDMwRjMgMzBBRiAzMDk5OworMzMyMjszMzIyOzMzMjI7MzBCQiAzMEYzIDMwQzE7MzBCQiAzMEYzIDMwQzE7CiszMzIzOzMzMjM7MzMyMzszMEJCIDMwRjMgMzBDODszMEJCIDMwRjMgMzBDODsKKzMzMjQ7MzMyNDszMzI0OzMwQzAgMzBGQyAzMEI5OzMwQkYgMzA5OSAzMEZDIDMwQjk7CiszMzI1OzMzMjU7MzMyNTszMEM3IDMwQjc7MzBDNiAzMDk5IDMwQjc7CiszMzI2OzMzMjY7MzMyNjszMEM5IDMwRUI7MzBDOCAzMDk5IDMwRUI7CiszMzI3OzMzMjc7MzMyNzszMEM4IDMwRjM7MzBDOCAzMEYzOworMzMyODszMzI4OzMzMjg7MzBDQSAzMENFOzMwQ0EgMzBDRTsKKzMzMjk7MzMyOTszMzI5OzMwQ0UgMzBDMyAzMEM4OzMwQ0UgMzBDMyAzMEM4OworMzMyQTszMzJBOzMzMkE7MzBDRiAzMEE0IDMwQzQ7MzBDRiAzMEE0IDMwQzQ7CiszMzJCOzMzMkI7MzMyQjszMEQxIDMwRkMgMzBCQiAzMEYzIDMwQzg7MzBDRiAzMDlBIDMwRkMgMzBCQiAzMEYzIDMwQzg7CiszMzJDOzMzMkM7MzMyQzszMEQxIDMwRkMgMzBDNDszMENGIDMwOUEgMzBGQyAzMEM0OworMzMyRDszMzJEOzMzMkQ7MzBEMCAzMEZDIDMwRUMgMzBFQjszMENGIDMwOTkgMzBGQyAzMEVDIDMwRUI7CiszMzJFOzMzMkU7MzMyRTszMEQ0IDMwQTIgMzBCOSAzMEM4IDMwRUI7MzBEMiAzMDlBIDMwQTIgMzBCOSAzMEM4IDMwRUI7CiszMzJGOzMzMkY7MzMyRjszMEQ0IDMwQUYgMzBFQjszMEQyIDMwOUEgMzBBRiAzMEVCOworMzMzMDszMzMwOzMzMzA7MzBENCAzMEIzOzMwRDIgMzA5QSAzMEIzOworMzMzMTszMzMxOzMzMzE7MzBEMyAzMEVCOzMwRDIgMzA5OSAzMEVCOworMzMzMjszMzMyOzMzMzI7MzBENSAzMEExIDMwRTkgMzBDMyAzMEM5OzMwRDUgMzBBMSAzMEU5IDMwQzMgMzBDOCAzMDk5OworMzMzMzszMzMzOzMzMzM7MzBENSAzMEEzIDMwRkMgMzBDODszMEQ1IDMwQTMgMzBGQyAzMEM4OworMzMzNDszMzM0OzMzMzQ7MzBENiAzMEMzIDMwQjcgMzBBNyAzMEVCOzMwRDUgMzA5OSAzMEMzIDMwQjcgMzBBNyAzMEVCOworMzMzNTszMzM1OzMzMzU7MzBENSAzMEU5IDMwRjM7MzBENSAzMEU5IDMwRjM7CiszMzM2OzMzMzY7MzMzNjszMEQ4IDMwQUYgMzBCRiAzMEZDIDMwRUI7MzBEOCAzMEFGIDMwQkYgMzBGQyAzMEVCOworMzMzNzszMzM3OzMzMzc7MzBEQSAzMEJEOzMwRDggMzA5QSAzMEJEOworMzMzODszMzM4OzMzMzg7MzBEQSAzMENCIDMwRDI7MzBEOCAzMDlBIDMwQ0IgMzBEMjsKKzMzMzk7MzMzOTszMzM5OzMwRDggMzBFQiAzMEM0OzMwRDggMzBFQiAzMEM0OworMzMzQTszMzNBOzMzM0E7MzBEQSAzMEYzIDMwQjk7MzBEOCAzMDlBIDMwRjMgMzBCOTsKKzMzM0I7MzMzQjszMzNCOzMwREEgMzBGQyAzMEI4OzMwRDggMzA5QSAzMEZDIDMwQjcgMzA5OTsKKzMzM0M7MzMzQzszMzNDOzMwRDkgMzBGQyAzMEJGOzMwRDggMzA5OSAzMEZDIDMwQkY7CiszMzNEOzMzM0Q7MzMzRDszMEREIDMwQTQgMzBGMyAzMEM4OzMwREIgMzA5QSAzMEE0IDMwRjMgMzBDODsKKzMzM0U7MzMzRTszMzNFOzMwREMgMzBFQiAzMEM4OzMwREIgMzA5OSAzMEVCIDMwQzg7CiszMzNGOzMzM0Y7MzMzRjszMERCIDMwRjM7MzBEQiAzMEYzOworMzM0MDszMzQwOzMzNDA7MzBERCAzMEYzIDMwQzk7MzBEQiAzMDlBIDMwRjMgMzBDOCAzMDk5OworMzM0MTszMzQxOzMzNDE7MzBEQiAzMEZDIDMwRUI7MzBEQiAzMEZDIDMwRUI7CiszMzQyOzMzNDI7MzM0MjszMERCIDMwRkMgMzBGMzszMERCIDMwRkMgMzBGMzsKKzMzNDM7MzM0MzszMzQzOzMwREUgMzBBNCAzMEFGIDMwRUQ7MzBERSAzMEE0IDMwQUYgMzBFRDsKKzMzNDQ7MzM0NDszMzQ0OzMwREUgMzBBNCAzMEVCOzMwREUgMzBBNCAzMEVCOworMzM0NTszMzQ1OzMzNDU7MzBERSAzMEMzIDMwQ0Y7MzBERSAzMEMzIDMwQ0Y7CiszMzQ2OzMzNDY7MzM0NjszMERFIDMwRUIgMzBBRjszMERFIDMwRUIgMzBBRjsKKzMzNDc7MzM0NzszMzQ3OzMwREUgMzBGMyAzMEI3IDMwRTcgMzBGMzszMERFIDMwRjMgMzBCNyAzMEU3IDMwRjM7CiszMzQ4OzMzNDg7MzM0ODszMERGIDMwQUYgMzBFRCAzMEYzOzMwREYgMzBBRiAzMEVEIDMwRjM7CiszMzQ5OzMzNDk7MzM0OTszMERGIDMwRUE7MzBERiAzMEVBOworMzM0QTszMzRBOzMzNEE7MzBERiAzMEVBIDMwRDAgMzBGQyAzMEVCOzMwREYgMzBFQSAzMENGIDMwOTkgMzBGQyAzMEVCOworMzM0QjszMzRCOzMzNEI7MzBFMSAzMEFDOzMwRTEgMzBBQiAzMDk5OworMzM0QzszMzRDOzMzNEM7MzBFMSAzMEFDIDMwQzggMzBGMzszMEUxIDMwQUIgMzA5OSAzMEM4IDMwRjM7CiszMzREOzMzNEQ7MzM0RDszMEUxIDMwRkMgMzBDOCAzMEVCOzMwRTEgMzBGQyAzMEM4IDMwRUI7CiszMzRFOzMzNEU7MzM0RTszMEU0IDMwRkMgMzBDOTszMEU0IDMwRkMgMzBDOCAzMDk5OworMzM0RjszMzRGOzMzNEY7MzBFNCAzMEZDIDMwRUI7MzBFNCAzMEZDIDMwRUI7CiszMzUwOzMzNTA7MzM1MDszMEU2IDMwQTIgMzBGMzszMEU2IDMwQTIgMzBGMzsKKzMzNTE7MzM1MTszMzUxOzMwRUEgMzBDMyAzMEM4IDMwRUI7MzBFQSAzMEMzIDMwQzggMzBFQjsKKzMzNTI7MzM1MjszMzUyOzMwRUEgMzBFOTszMEVBIDMwRTk7CiszMzUzOzMzNTM7MzM1MzszMEVCIDMwRDQgMzBGQzszMEVCIDMwRDIgMzA5QSAzMEZDOworMzM1NDszMzU0OzMzNTQ7MzBFQiAzMEZDIDMwRDYgMzBFQjszMEVCIDMwRkMgMzBENSAzMDk5IDMwRUI7CiszMzU1OzMzNTU7MzM1NTszMEVDIDMwRTA7MzBFQyAzMEUwOworMzM1NjszMzU2OzMzNTY7MzBFQyAzMEYzIDMwQzggMzBCMiAzMEYzOzMwRUMgMzBGMyAzMEM4IDMwQjEgMzA5OSAzMEYzOworMzM1NzszMzU3OzMzNTc7MzBFRiAzMEMzIDMwQzg7MzBFRiAzMEMzIDMwQzg7CiszMzU4OzMzNTg7MzM1ODswMDMwIDcwQjk7MDAzMCA3MEI5OworMzM1OTszMzU5OzMzNTk7MDAzMSA3MEI5OzAwMzEgNzBCOTsKKzMzNUE7MzM1QTszMzVBOzAwMzIgNzBCOTswMDMyIDcwQjk7CiszMzVCOzMzNUI7MzM1QjswMDMzIDcwQjk7MDAzMyA3MEI5OworMzM1QzszMzVDOzMzNUM7MDAzNCA3MEI5OzAwMzQgNzBCOTsKKzMzNUQ7MzM1RDszMzVEOzAwMzUgNzBCOTswMDM1IDcwQjk7CiszMzVFOzMzNUU7MzM1RTswMDM2IDcwQjk7MDAzNiA3MEI5OworMzM1RjszMzVGOzMzNUY7MDAzNyA3MEI5OzAwMzcgNzBCOTsKKzMzNjA7MzM2MDszMzYwOzAwMzggNzBCOTswMDM4IDcwQjk7CiszMzYxOzMzNjE7MzM2MTswMDM5IDcwQjk7MDAzOSA3MEI5OworMzM2MjszMzYyOzMzNjI7MDAzMSAwMDMwIDcwQjk7MDAzMSAwMDMwIDcwQjk7CiszMzYzOzMzNjM7MzM2MzswMDMxIDAwMzEgNzBCOTswMDMxIDAwMzEgNzBCOTsKKzMzNjQ7MzM2NDszMzY0OzAwMzEgMDAzMiA3MEI5OzAwMzEgMDAzMiA3MEI5OworMzM2NTszMzY1OzMzNjU7MDAzMSAwMDMzIDcwQjk7MDAzMSAwMDMzIDcwQjk7CiszMzY2OzMzNjY7MzM2NjswMDMxIDAwMzQgNzBCOTswMDMxIDAwMzQgNzBCOTsKKzMzNjc7MzM2NzszMzY3OzAwMzEgMDAzNSA3MEI5OzAwMzEgMDAzNSA3MEI5OworMzM2ODszMzY4OzMzNjg7MDAzMSAwMDM2IDcwQjk7MDAzMSAwMDM2IDcwQjk7CiszMzY5OzMzNjk7MzM2OTswMDMxIDAwMzcgNzBCOTswMDMxIDAwMzcgNzBCOTsKKzMzNkE7MzM2QTszMzZBOzAwMzEgMDAzOCA3MEI5OzAwMzEgMDAzOCA3MEI5OworMzM2QjszMzZCOzMzNkI7MDAzMSAwMDM5IDcwQjk7MDAzMSAwMDM5IDcwQjk7CiszMzZDOzMzNkM7MzM2QzswMDMyIDAwMzAgNzBCOTswMDMyIDAwMzAgNzBCOTsKKzMzNkQ7MzM2RDszMzZEOzAwMzIgMDAzMSA3MEI5OzAwMzIgMDAzMSA3MEI5OworMzM2RTszMzZFOzMzNkU7MDAzMiAwMDMyIDcwQjk7MDAzMiAwMDMyIDcwQjk7CiszMzZGOzMzNkY7MzM2RjswMDMyIDAwMzMgNzBCOTswMDMyIDAwMzMgNzBCOTsKKzMzNzA7MzM3MDszMzcwOzAwMzIgMDAzNCA3MEI5OzAwMzIgMDAzNCA3MEI5OworMzM3MTszMzcxOzMzNzE7MDA2OCAwMDUwIDAwNjE7MDA2OCAwMDUwIDAwNjE7CiszMzcyOzMzNzI7MzM3MjswMDY0IDAwNjE7MDA2NCAwMDYxOworMzM3MzszMzczOzMzNzM7MDA0MSAwMDU1OzAwNDEgMDA1NTsKKzMzNzQ7MzM3NDszMzc0OzAwNjIgMDA2MSAwMDcyOzAwNjIgMDA2MSAwMDcyOworMzM3NTszMzc1OzMzNzU7MDA2RiAwMDU2OzAwNkYgMDA1NjsKKzMzNzY7MzM3NjszMzc2OzAwNzAgMDA2MzswMDcwIDAwNjM7CiszMzc3OzMzNzc7MzM3NzswMDY0IDAwNkQ7MDA2NCAwMDZEOworMzM3ODszMzc4OzMzNzg7MDA2NCAwMDZEIDAwMzI7MDA2NCAwMDZEIDAwMzI7CiszMzc5OzMzNzk7MzM3OTswMDY0IDAwNkQgMDAzMzswMDY0IDAwNkQgMDAzMzsKKzMzN0E7MzM3QTszMzdBOzAwNDkgMDA1NTswMDQ5IDAwNTU7CiszMzdCOzMzN0I7MzM3Qjs1RTczIDYyMTA7NUU3MyA2MjEwOworMzM3QzszMzdDOzMzN0M7NjYyRCA1NDhDOzY2MkQgNTQ4QzsKKzMzN0Q7MzM3RDszMzdEOzU5MjcgNkI2Mzs1OTI3IDZCNjM7CiszMzdFOzMzN0U7MzM3RTs2NjBFIDZDQkI7NjYwRSA2Q0JCOworMzM3RjszMzdGOzMzN0Y7NjgyQSA1RjBGIDRGMUEgNzkzRTs2ODJBIDVGMEYgNEYxQSA3OTNFOworMzM4MDszMzgwOzMzODA7MDA3MCAwMDQxOzAwNzAgMDA0MTsKKzMzODE7MzM4MTszMzgxOzAwNkUgMDA0MTswMDZFIDAwNDE7CiszMzgyOzMzODI7MzM4MjswM0JDIDAwNDE7MDNCQyAwMDQxOworMzM4MzszMzgzOzMzODM7MDA2RCAwMDQxOzAwNkQgMDA0MTsKKzMzODQ7MzM4NDszMzg0OzAwNkIgMDA0MTswMDZCIDAwNDE7CiszMzg1OzMzODU7MzM4NTswMDRCIDAwNDI7MDA0QiAwMDQyOworMzM4NjszMzg2OzMzODY7MDA0RCAwMDQyOzAwNEQgMDA0MjsKKzMzODc7MzM4NzszMzg3OzAwNDcgMDA0MjswMDQ3IDAwNDI7CiszMzg4OzMzODg7MzM4ODswMDYzIDAwNjEgMDA2QzswMDYzIDAwNjEgMDA2QzsKKzMzODk7MzM4OTszMzg5OzAwNkIgMDA2MyAwMDYxIDAwNkM7MDA2QiAwMDYzIDAwNjEgMDA2QzsKKzMzOEE7MzM4QTszMzhBOzAwNzAgMDA0NjswMDcwIDAwNDY7CiszMzhCOzMzOEI7MzM4QjswMDZFIDAwNDY7MDA2RSAwMDQ2OworMzM4QzszMzhDOzMzOEM7MDNCQyAwMDQ2OzAzQkMgMDA0NjsKKzMzOEQ7MzM4RDszMzhEOzAzQkMgMDA2NzswM0JDIDAwNjc7CiszMzhFOzMzOEU7MzM4RTswMDZEIDAwNjc7MDA2RCAwMDY3OworMzM4RjszMzhGOzMzOEY7MDA2QiAwMDY3OzAwNkIgMDA2NzsKKzMzOTA7MzM5MDszMzkwOzAwNDggMDA3QTswMDQ4IDAwN0E7CiszMzkxOzMzOTE7MzM5MTswMDZCIDAwNDggMDA3QTswMDZCIDAwNDggMDA3QTsKKzMzOTI7MzM5MjszMzkyOzAwNEQgMDA0OCAwMDdBOzAwNEQgMDA0OCAwMDdBOworMzM5MzszMzkzOzMzOTM7MDA0NyAwMDQ4IDAwN0E7MDA0NyAwMDQ4IDAwN0E7CiszMzk0OzMzOTQ7MzM5NDswMDU0IDAwNDggMDA3QTswMDU0IDAwNDggMDA3QTsKKzMzOTU7MzM5NTszMzk1OzAzQkMgMDA2QzswM0JDIDAwNkM7CiszMzk2OzMzOTY7MzM5NjswMDZEIDAwNkM7MDA2RCAwMDZDOworMzM5NzszMzk3OzMzOTc7MDA2NCAwMDZDOzAwNjQgMDA2QzsKKzMzOTg7MzM5ODszMzk4OzAwNkIgMDA2QzswMDZCIDAwNkM7CiszMzk5OzMzOTk7MzM5OTswMDY2IDAwNkQ7MDA2NiAwMDZEOworMzM5QTszMzlBOzMzOUE7MDA2RSAwMDZEOzAwNkUgMDA2RDsKKzMzOUI7MzM5QjszMzlCOzAzQkMgMDA2RDswM0JDIDAwNkQ7CiszMzlDOzMzOUM7MzM5QzswMDZEIDAwNkQ7MDA2RCAwMDZEOworMzM5RDszMzlEOzMzOUQ7MDA2MyAwMDZEOzAwNjMgMDA2RDsKKzMzOUU7MzM5RTszMzlFOzAwNkIgMDA2RDswMDZCIDAwNkQ7CiszMzlGOzMzOUY7MzM5RjswMDZEIDAwNkQgMDAzMjswMDZEIDAwNkQgMDAzMjsKKzMzQTA7MzNBMDszM0EwOzAwNjMgMDA2RCAwMDMyOzAwNjMgMDA2RCAwMDMyOworMzNBMTszM0ExOzMzQTE7MDA2RCAwMDMyOzAwNkQgMDAzMjsKKzMzQTI7MzNBMjszM0EyOzAwNkIgMDA2RCAwMDMyOzAwNkIgMDA2RCAwMDMyOworMzNBMzszM0EzOzMzQTM7MDA2RCAwMDZEIDAwMzM7MDA2RCAwMDZEIDAwMzM7CiszM0E0OzMzQTQ7MzNBNDswMDYzIDAwNkQgMDAzMzswMDYzIDAwNkQgMDAzMzsKKzMzQTU7MzNBNTszM0E1OzAwNkQgMDAzMzswMDZEIDAwMzM7CiszM0E2OzMzQTY7MzNBNjswMDZCIDAwNkQgMDAzMzswMDZCIDAwNkQgMDAzMzsKKzMzQTc7MzNBNzszM0E3OzAwNkQgMjIxNSAwMDczOzAwNkQgMjIxNSAwMDczOworMzNBODszM0E4OzMzQTg7MDA2RCAyMjE1IDAwNzMgMDAzMjswMDZEIDIyMTUgMDA3MyAwMDMyOworMzNBOTszM0E5OzMzQTk7MDA1MCAwMDYxOzAwNTAgMDA2MTsKKzMzQUE7MzNBQTszM0FBOzAwNkIgMDA1MCAwMDYxOzAwNkIgMDA1MCAwMDYxOworMzNBQjszM0FCOzMzQUI7MDA0RCAwMDUwIDAwNjE7MDA0RCAwMDUwIDAwNjE7CiszM0FDOzMzQUM7MzNBQzswMDQ3IDAwNTAgMDA2MTswMDQ3IDAwNTAgMDA2MTsKKzMzQUQ7MzNBRDszM0FEOzAwNzIgMDA2MSAwMDY0OzAwNzIgMDA2MSAwMDY0OworMzNBRTszM0FFOzMzQUU7MDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczOzAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MzsKKzMzQUY7MzNBRjszM0FGOzAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MyAwMDMyOzAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3MyAwMDMyOworMzNCMDszM0IwOzMzQjA7MDA3MCAwMDczOzAwNzAgMDA3MzsKKzMzQjE7MzNCMTszM0IxOzAwNkUgMDA3MzswMDZFIDAwNzM7CiszM0IyOzMzQjI7MzNCMjswM0JDIDAwNzM7MDNCQyAwMDczOworMzNCMzszM0IzOzMzQjM7MDA2RCAwMDczOzAwNkQgMDA3MzsKKzMzQjQ7MzNCNDszM0I0OzAwNzAgMDA1NjswMDcwIDAwNTY7CiszM0I1OzMzQjU7MzNCNTswMDZFIDAwNTY7MDA2RSAwMDU2OworMzNCNjszM0I2OzMzQjY7MDNCQyAwMDU2OzAzQkMgMDA1NjsKKzMzQjc7MzNCNzszM0I3OzAwNkQgMDA1NjswMDZEIDAwNTY7CiszM0I4OzMzQjg7MzNCODswMDZCIDAwNTY7MDA2QiAwMDU2OworMzNCOTszM0I5OzMzQjk7MDA0RCAwMDU2OzAwNEQgMDA1NjsKKzMzQkE7MzNCQTszM0JBOzAwNzAgMDA1NzswMDcwIDAwNTc7CiszM0JCOzMzQkI7MzNCQjswMDZFIDAwNTc7MDA2RSAwMDU3OworMzNCQzszM0JDOzMzQkM7MDNCQyAwMDU3OzAzQkMgMDA1NzsKKzMzQkQ7MzNCRDszM0JEOzAwNkQgMDA1NzswMDZEIDAwNTc7CiszM0JFOzMzQkU7MzNCRTswMDZCIDAwNTc7MDA2QiAwMDU3OworMzNCRjszM0JGOzMzQkY7MDA0RCAwMDU3OzAwNEQgMDA1NzsKKzMzQzA7MzNDMDszM0MwOzAwNkIgMDNBOTswMDZCIDAzQTk7CiszM0MxOzMzQzE7MzNDMTswMDREIDAzQTk7MDA0RCAwM0E5OworMzNDMjszM0MyOzMzQzI7MDA2MSAwMDJFIDAwNkQgMDAyRTswMDYxIDAwMkUgMDA2RCAwMDJFOworMzNDMzszM0MzOzMzQzM7MDA0MiAwMDcxOzAwNDIgMDA3MTsKKzMzQzQ7MzNDNDszM0M0OzAwNjMgMDA2MzswMDYzIDAwNjM7CiszM0M1OzMzQzU7MzNDNTswMDYzIDAwNjQ7MDA2MyAwMDY0OworMzNDNjszM0M2OzMzQzY7MDA0MyAyMjE1IDAwNkIgMDA2NzswMDQzIDIyMTUgMDA2QiAwMDY3OworMzNDNzszM0M3OzMzQzc7MDA0MyAwMDZGIDAwMkU7MDA0MyAwMDZGIDAwMkU7CiszM0M4OzMzQzg7MzNDODswMDY0IDAwNDI7MDA2NCAwMDQyOworMzNDOTszM0M5OzMzQzk7MDA0NyAwMDc5OzAwNDcgMDA3OTsKKzMzQ0E7MzNDQTszM0NBOzAwNjggMDA2MTswMDY4IDAwNjE7CiszM0NCOzMzQ0I7MzNDQjswMDQ4IDAwNTA7MDA0OCAwMDUwOworMzNDQzszM0NDOzMzQ0M7MDA2OSAwMDZFOzAwNjkgMDA2RTsKKzMzQ0Q7MzNDRDszM0NEOzAwNEIgMDA0QjswMDRCIDAwNEI7CiszM0NFOzMzQ0U7MzNDRTswMDRCIDAwNEQ7MDA0QiAwMDREOworMzNDRjszM0NGOzMzQ0Y7MDA2QiAwMDc0OzAwNkIgMDA3NDsKKzMzRDA7MzNEMDszM0QwOzAwNkMgMDA2RDswMDZDIDAwNkQ7CiszM0QxOzMzRDE7MzNEMTswMDZDIDAwNkU7MDA2QyAwMDZFOworMzNEMjszM0QyOzMzRDI7MDA2QyAwMDZGIDAwNjc7MDA2QyAwMDZGIDAwNjc7CiszM0QzOzMzRDM7MzNEMzswMDZDIDAwNzg7MDA2QyAwMDc4OworMzNENDszM0Q0OzMzRDQ7MDA2RCAwMDYyOzAwNkQgMDA2MjsKKzMzRDU7MzNENTszM0Q1OzAwNkQgMDA2OSAwMDZDOzAwNkQgMDA2OSAwMDZDOworMzNENjszM0Q2OzMzRDY7MDA2RCAwMDZGIDAwNkM7MDA2RCAwMDZGIDAwNkM7CiszM0Q3OzMzRDc7MzNENzswMDUwIDAwNDg7MDA1MCAwMDQ4OworMzNEODszM0Q4OzMzRDg7MDA3MCAwMDJFIDAwNkQgMDAyRTswMDcwIDAwMkUgMDA2RCAwMDJFOworMzNEOTszM0Q5OzMzRDk7MDA1MCAwMDUwIDAwNEQ7MDA1MCAwMDUwIDAwNEQ7CiszM0RBOzMzREE7MzNEQTswMDUwIDAwNTI7MDA1MCAwMDUyOworMzNEQjszM0RCOzMzREI7MDA3MyAwMDcyOzAwNzMgMDA3MjsKKzMzREM7MzNEQzszM0RDOzAwNTMgMDA3NjswMDUzIDAwNzY7CiszM0REOzMzREQ7MzNERDswMDU3IDAwNjI7MDA1NyAwMDYyOworMzNERTszM0RFOzMzREU7MDA1NiAyMjE1IDAwNkQ7MDA1NiAyMjE1IDAwNkQ7CiszM0RGOzMzREY7MzNERjswMDQxIDIyMTUgMDA2RDswMDQxIDIyMTUgMDA2RDsKKzMzRTA7MzNFMDszM0UwOzAwMzEgNjVFNTswMDMxIDY1RTU7CiszM0UxOzMzRTE7MzNFMTswMDMyIDY1RTU7MDAzMiA2NUU1OworMzNFMjszM0UyOzMzRTI7MDAzMyA2NUU1OzAwMzMgNjVFNTsKKzMzRTM7MzNFMzszM0UzOzAwMzQgNjVFNTswMDM0IDY1RTU7CiszM0U0OzMzRTQ7MzNFNDswMDM1IDY1RTU7MDAzNSA2NUU1OworMzNFNTszM0U1OzMzRTU7MDAzNiA2NUU1OzAwMzYgNjVFNTsKKzMzRTY7MzNFNjszM0U2OzAwMzcgNjVFNTswMDM3IDY1RTU7CiszM0U3OzMzRTc7MzNFNzswMDM4IDY1RTU7MDAzOCA2NUU1OworMzNFODszM0U4OzMzRTg7MDAzOSA2NUU1OzAwMzkgNjVFNTsKKzMzRTk7MzNFOTszM0U5OzAwMzEgMDAzMCA2NUU1OzAwMzEgMDAzMCA2NUU1OworMzNFQTszM0VBOzMzRUE7MDAzMSAwMDMxIDY1RTU7MDAzMSAwMDMxIDY1RTU7CiszM0VCOzMzRUI7MzNFQjswMDMxIDAwMzIgNjVFNTswMDMxIDAwMzIgNjVFNTsKKzMzRUM7MzNFQzszM0VDOzAwMzEgMDAzMyA2NUU1OzAwMzEgMDAzMyA2NUU1OworMzNFRDszM0VEOzMzRUQ7MDAzMSAwMDM0IDY1RTU7MDAzMSAwMDM0IDY1RTU7CiszM0VFOzMzRUU7MzNFRTswMDMxIDAwMzUgNjVFNTswMDMxIDAwMzUgNjVFNTsKKzMzRUY7MzNFRjszM0VGOzAwMzEgMDAzNiA2NUU1OzAwMzEgMDAzNiA2NUU1OworMzNGMDszM0YwOzMzRjA7MDAzMSAwMDM3IDY1RTU7MDAzMSAwMDM3IDY1RTU7CiszM0YxOzMzRjE7MzNGMTswMDMxIDAwMzggNjVFNTswMDMxIDAwMzggNjVFNTsKKzMzRjI7MzNGMjszM0YyOzAwMzEgMDAzOSA2NUU1OzAwMzEgMDAzOSA2NUU1OworMzNGMzszM0YzOzMzRjM7MDAzMiAwMDMwIDY1RTU7MDAzMiAwMDMwIDY1RTU7CiszM0Y0OzMzRjQ7MzNGNDswMDMyIDAwMzEgNjVFNTswMDMyIDAwMzEgNjVFNTsKKzMzRjU7MzNGNTszM0Y1OzAwMzIgMDAzMiA2NUU1OzAwMzIgMDAzMiA2NUU1OworMzNGNjszM0Y2OzMzRjY7MDAzMiAwMDMzIDY1RTU7MDAzMiAwMDMzIDY1RTU7CiszM0Y3OzMzRjc7MzNGNzswMDMyIDAwMzQgNjVFNTswMDMyIDAwMzQgNjVFNTsKKzMzRjg7MzNGODszM0Y4OzAwMzIgMDAzNSA2NUU1OzAwMzIgMDAzNSA2NUU1OworMzNGOTszM0Y5OzMzRjk7MDAzMiAwMDM2IDY1RTU7MDAzMiAwMDM2IDY1RTU7CiszM0ZBOzMzRkE7MzNGQTswMDMyIDAwMzcgNjVFNTswMDMyIDAwMzcgNjVFNTsKKzMzRkI7MzNGQjszM0ZCOzAwMzIgMDAzOCA2NUU1OzAwMzIgMDAzOCA2NUU1OworMzNGQzszM0ZDOzMzRkM7MDAzMiAwMDM5IDY1RTU7MDAzMiAwMDM5IDY1RTU7CiszM0ZEOzMzRkQ7MzNGRDswMDMzIDAwMzAgNjVFNTswMDMzIDAwMzAgNjVFNTsKKzMzRkU7MzNGRTszM0ZFOzAwMzMgMDAzMSA2NUU1OzAwMzMgMDAzMSA2NUU1OworMzNGRjszM0ZGOzMzRkY7MDA2NyAwMDYxIDAwNkM7MDA2NyAwMDYxIDAwNkM7CitBQzAwO0FDMDA7MTEwMCAxMTYxO0FDMDA7MTEwMCAxMTYxOworQUMwMTtBQzAxOzExMDAgMTE2MSAxMUE4O0FDMDE7MTEwMCAxMTYxIDExQTg7CitBQzAyO0FDMDI7MTEwMCAxMTYxIDExQTk7QUMwMjsxMTAwIDExNjEgMTFBOTsKK0FDMDM7QUMwMzsxMTAwIDExNjEgMTFBQTtBQzAzOzExMDAgMTE2MSAxMUFBOworQUMwNDtBQzA0OzExMDAgMTE2MSAxMUFCO0FDMDQ7MTEwMCAxMTYxIDExQUI7CitBQzA1O0FDMDU7MTEwMCAxMTYxIDExQUM7QUMwNTsxMTAwIDExNjEgMTFBQzsKK0FDMDY7QUMwNjsxMTAwIDExNjEgMTFBRDtBQzA2OzExMDAgMTE2MSAxMUFEOworQUMwNztBQzA3OzExMDAgMTE2MSAxMUFFO0FDMDc7MTEwMCAxMTYxIDExQUU7CitBQzA4O0FDMDg7MTEwMCAxMTYxIDExQUY7QUMwODsxMTAwIDExNjEgMTFBRjsKK0FDMDk7QUMwOTsxMTAwIDExNjEgMTFCMDtBQzA5OzExMDAgMTE2MSAxMUIwOworQUMwQTtBQzBBOzExMDAgMTE2MSAxMUIxO0FDMEE7MTEwMCAxMTYxIDExQjE7CitBQzBCO0FDMEI7MTEwMCAxMTYxIDExQjI7QUMwQjsxMTAwIDExNjEgMTFCMjsKK0FDMEM7QUMwQzsxMTAwIDExNjEgMTFCMztBQzBDOzExMDAgMTE2MSAxMUIzOworQUMwRDtBQzBEOzExMDAgMTE2MSAxMUI0O0FDMEQ7MTEwMCAxMTYxIDExQjQ7CitBQzBFO0FDMEU7MTEwMCAxMTYxIDExQjU7QUMwRTsxMTAwIDExNjEgMTFCNTsKK0FDMEY7QUMwRjsxMTAwIDExNjEgMTFCNjtBQzBGOzExMDAgMTE2MSAxMUI2OworQUMxMDtBQzEwOzExMDAgMTE2MSAxMUI3O0FDMTA7MTEwMCAxMTYxIDExQjc7CitBQzExO0FDMTE7MTEwMCAxMTYxIDExQjg7QUMxMTsxMTAwIDExNjEgMTFCODsKK0FDMTI7QUMxMjsxMTAwIDExNjEgMTFCOTtBQzEyOzExMDAgMTE2MSAxMUI5OworQUMxMztBQzEzOzExMDAgMTE2MSAxMUJBO0FDMTM7MTEwMCAxMTYxIDExQkE7CitBQzE0O0FDMTQ7MTEwMCAxMTYxIDExQkI7QUMxNDsxMTAwIDExNjEgMTFCQjsKK0FDMTU7QUMxNTsxMTAwIDExNjEgMTFCQztBQzE1OzExMDAgMTE2MSAxMUJDOworQUMxNjtBQzE2OzExMDAgMTE2MSAxMUJEO0FDMTY7MTEwMCAxMTYxIDExQkQ7CitBQzE3O0FDMTc7MTEwMCAxMTYxIDExQkU7QUMxNzsxMTAwIDExNjEgMTFCRTsKK0FDMTg7QUMxODsxMTAwIDExNjEgMTFCRjtBQzE4OzExMDAgMTE2MSAxMUJGOworQUMxOTtBQzE5OzExMDAgMTE2MSAxMUMwO0FDMTk7MTEwMCAxMTYxIDExQzA7CitBQzFBO0FDMUE7MTEwMCAxMTYxIDExQzE7QUMxQTsxMTAwIDExNjEgMTFDMTsKK0FDMUI7QUMxQjsxMTAwIDExNjEgMTFDMjtBQzFCOzExMDAgMTE2MSAxMUMyOworQUMxQztBQzFDOzExMDAgMTE2MjtBQzFDOzExMDAgMTE2MjsKK0FDMUQ7QUMxRDsxMTAwIDExNjIgMTFBODtBQzFEOzExMDAgMTE2MiAxMUE4OworQUMxRTtBQzFFOzExMDAgMTE2MiAxMUE5O0FDMUU7MTEwMCAxMTYyIDExQTk7CitBQzFGO0FDMUY7MTEwMCAxMTYyIDExQUE7QUMxRjsxMTAwIDExNjIgMTFBQTsKK0FDMjA7QUMyMDsxMTAwIDExNjIgMTFBQjtBQzIwOzExMDAgMTE2MiAxMUFCOworQUMyMTtBQzIxOzExMDAgMTE2MiAxMUFDO0FDMjE7MTEwMCAxMTYyIDExQUM7CitBQzIyO0FDMjI7MTEwMCAxMTYyIDExQUQ7QUMyMjsxMTAwIDExNjIgMTFBRDsKK0FDMjM7QUMyMzsxMTAwIDExNjIgMTFBRTtBQzIzOzExMDAgMTE2MiAxMUFFOworQUMyNDtBQzI0OzExMDAgMTE2MiAxMUFGO0FDMjQ7MTEwMCAxMTYyIDExQUY7CitBQzI1O0FDMjU7MTEwMCAxMTYyIDExQjA7QUMyNTsxMTAwIDExNjIgMTFCMDsKK0FDMjY7QUMyNjsxMTAwIDExNjIgMTFCMTtBQzI2OzExMDAgMTE2MiAxMUIxOworQUMyNztBQzI3OzExMDAgMTE2MiAxMUIyO0FDMjc7MTEwMCAxMTYyIDExQjI7CitBQzI4O0FDMjg7MTEwMCAxMTYyIDExQjM7QUMyODsxMTAwIDExNjIgMTFCMzsKK0FDMjk7QUMyOTsxMTAwIDExNjIgMTFCNDtBQzI5OzExMDAgMTE2MiAxMUI0OworQUMyQTtBQzJBOzExMDAgMTE2MiAxMUI1O0FDMkE7MTEwMCAxMTYyIDExQjU7CitBQzJCO0FDMkI7MTEwMCAxMTYyIDExQjY7QUMyQjsxMTAwIDExNjIgMTFCNjsKK0FDMkM7QUMyQzsxMTAwIDExNjIgMTFCNztBQzJDOzExMDAgMTE2MiAxMUI3OworQUMyRDtBQzJEOzExMDAgMTE2MiAxMUI4O0FDMkQ7MTEwMCAxMTYyIDExQjg7CitBQzJFO0FDMkU7MTEwMCAxMTYyIDExQjk7QUMyRTsxMTAwIDExNjIgMTFCOTsKK0FDMkY7QUMyRjsxMTAwIDExNjIgMTFCQTtBQzJGOzExMDAgMTE2MiAxMUJBOworQUMzMDtBQzMwOzExMDAgMTE2MiAxMUJCO0FDMzA7MTEwMCAxMTYyIDExQkI7CitBQzMxO0FDMzE7MTEwMCAxMTYyIDExQkM7QUMzMTsxMTAwIDExNjIgMTFCQzsKK0FDMzI7QUMzMjsxMTAwIDExNjIgMTFCRDtBQzMyOzExMDAgMTE2MiAxMUJEOworQUMzMztBQzMzOzExMDAgMTE2MiAxMUJFO0FDMzM7MTEwMCAxMTYyIDExQkU7CitBQzM0O0FDMzQ7MTEwMCAxMTYyIDExQkY7QUMzNDsxMTAwIDExNjIgMTFCRjsKK0FDMzU7QUMzNTsxMTAwIDExNjIgMTFDMDtBQzM1OzExMDAgMTE2MiAxMUMwOworQUMzNjtBQzM2OzExMDAgMTE2MiAxMUMxO0FDMzY7MTEwMCAxMTYyIDExQzE7CitBQzM3O0FDMzc7MTEwMCAxMTYyIDExQzI7QUMzNzsxMTAwIDExNjIgMTFDMjsKK0FDMzg7QUMzODsxMTAwIDExNjM7QUMzODsxMTAwIDExNjM7CitBQzM5O0FDMzk7MTEwMCAxMTYzIDExQTg7QUMzOTsxMTAwIDExNjMgMTFBODsKK0FDM0E7QUMzQTsxMTAwIDExNjMgMTFBOTtBQzNBOzExMDAgMTE2MyAxMUE5OworQUMzQjtBQzNCOzExMDAgMTE2MyAxMUFBO0FDM0I7MTEwMCAxMTYzIDExQUE7CitBQzNDO0FDM0M7MTEwMCAxMTYzIDExQUI7QUMzQzsxMTAwIDExNjMgMTFBQjsKK0FDM0Q7QUMzRDsxMTAwIDExNjMgMTFBQztBQzNEOzExMDAgMTE2MyAxMUFDOworQUMzRTtBQzNFOzExMDAgMTE2MyAxMUFEO0FDM0U7MTEwMCAxMTYzIDExQUQ7CitBQzNGO0FDM0Y7MTEwMCAxMTYzIDExQUU7QUMzRjsxMTAwIDExNjMgMTFBRTsKK0FDNDA7QUM0MDsxMTAwIDExNjMgMTFBRjtBQzQwOzExMDAgMTE2MyAxMUFGOworQUM0MTtBQzQxOzExMDAgMTE2MyAxMUIwO0FDNDE7MTEwMCAxMTYzIDExQjA7CitBQzQyO0FDNDI7MTEwMCAxMTYzIDExQjE7QUM0MjsxMTAwIDExNjMgMTFCMTsKK0FDNDM7QUM0MzsxMTAwIDExNjMgMTFCMjtBQzQzOzExMDAgMTE2MyAxMUIyOworQUM0NDtBQzQ0OzExMDAgMTE2MyAxMUIzO0FDNDQ7MTEwMCAxMTYzIDExQjM7CitBQzQ1O0FDNDU7MTEwMCAxMTYzIDExQjQ7QUM0NTsxMTAwIDExNjMgMTFCNDsKK0FDNDY7QUM0NjsxMTAwIDExNjMgMTFCNTtBQzQ2OzExMDAgMTE2MyAxMUI1OworQUM0NztBQzQ3OzExMDAgMTE2MyAxMUI2O0FDNDc7MTEwMCAxMTYzIDExQjY7CitBQzQ4O0FDNDg7MTEwMCAxMTYzIDExQjc7QUM0ODsxMTAwIDExNjMgMTFCNzsKK0FDNDk7QUM0OTsxMTAwIDExNjMgMTFCODtBQzQ5OzExMDAgMTE2MyAxMUI4OworQUM0QTtBQzRBOzExMDAgMTE2MyAxMUI5O0FDNEE7MTEwMCAxMTYzIDExQjk7CitBQzRCO0FDNEI7MTEwMCAxMTYzIDExQkE7QUM0QjsxMTAwIDExNjMgMTFCQTsKK0FDNEM7QUM0QzsxMTAwIDExNjMgMTFCQjtBQzRDOzExMDAgMTE2MyAxMUJCOworQUM0RDtBQzREOzExMDAgMTE2MyAxMUJDO0FDNEQ7MTEwMCAxMTYzIDExQkM7CitBQzRFO0FDNEU7MTEwMCAxMTYzIDExQkQ7QUM0RTsxMTAwIDExNjMgMTFCRDsKK0FDNEY7QUM0RjsxMTAwIDExNjMgMTFCRTtBQzRGOzExMDAgMTE2MyAxMUJFOworQUM1MDtBQzUwOzExMDAgMTE2MyAxMUJGO0FDNTA7MTEwMCAxMTYzIDExQkY7CitBQzUxO0FDNTE7MTEwMCAxMTYzIDExQzA7QUM1MTsxMTAwIDExNjMgMTFDMDsKK0FDNTI7QUM1MjsxMTAwIDExNjMgMTFDMTtBQzUyOzExMDAgMTE2MyAxMUMxOworQUM1MztBQzUzOzExMDAgMTE2MyAxMUMyO0FDNTM7MTEwMCAxMTYzIDExQzI7CitBQzU0O0FDNTQ7MTEwMCAxMTY0O0FDNTQ7MTEwMCAxMTY0OworQUM1NTtBQzU1OzExMDAgMTE2NCAxMUE4O0FDNTU7MTEwMCAxMTY0IDExQTg7CitBQzU2O0FDNTY7MTEwMCAxMTY0IDExQTk7QUM1NjsxMTAwIDExNjQgMTFBOTsKK0FDNTc7QUM1NzsxMTAwIDExNjQgMTFBQTtBQzU3OzExMDAgMTE2NCAxMUFBOworQUM1ODtBQzU4OzExMDAgMTE2NCAxMUFCO0FDNTg7MTEwMCAxMTY0IDExQUI7CitBQzU5O0FDNTk7MTEwMCAxMTY0IDExQUM7QUM1OTsxMTAwIDExNjQgMTFBQzsKK0FDNUE7QUM1QTsxMTAwIDExNjQgMTFBRDtBQzVBOzExMDAgMTE2NCAxMUFEOworQUM1QjtBQzVCOzExMDAgMTE2NCAxMUFFO0FDNUI7MTEwMCAxMTY0IDExQUU7CitBQzVDO0FDNUM7MTEwMCAxMTY0IDExQUY7QUM1QzsxMTAwIDExNjQgMTFBRjsKK0FDNUQ7QUM1RDsxMTAwIDExNjQgMTFCMDtBQzVEOzExMDAgMTE2NCAxMUIwOworQUM1RTtBQzVFOzExMDAgMTE2NCAxMUIxO0FDNUU7MTEwMCAxMTY0IDExQjE7CitBQzVGO0FDNUY7MTEwMCAxMTY0IDExQjI7QUM1RjsxMTAwIDExNjQgMTFCMjsKK0FDNjA7QUM2MDsxMTAwIDExNjQgMTFCMztBQzYwOzExMDAgMTE2NCAxMUIzOworQUM2MTtBQzYxOzExMDAgMTE2NCAxMUI0O0FDNjE7MTEwMCAxMTY0IDExQjQ7CitBQzYyO0FDNjI7MTEwMCAxMTY0IDExQjU7QUM2MjsxMTAwIDExNjQgMTFCNTsKK0FDNjM7QUM2MzsxMTAwIDExNjQgMTFCNjtBQzYzOzExMDAgMTE2NCAxMUI2OworQUM2NDtBQzY0OzExMDAgMTE2NCAxMUI3O0FDNjQ7MTEwMCAxMTY0IDExQjc7CitBQzY1O0FDNjU7MTEwMCAxMTY0IDExQjg7QUM2NTsxMTAwIDExNjQgMTFCODsKK0FDNjY7QUM2NjsxMTAwIDExNjQgMTFCOTtBQzY2OzExMDAgMTE2NCAxMUI5OworQUM2NztBQzY3OzExMDAgMTE2NCAxMUJBO0FDNjc7MTEwMCAxMTY0IDExQkE7CitBQzY4O0FDNjg7MTEwMCAxMTY0IDExQkI7QUM2ODsxMTAwIDExNjQgMTFCQjsKK0FDNjk7QUM2OTsxMTAwIDExNjQgMTFCQztBQzY5OzExMDAgMTE2NCAxMUJDOworQUM2QTtBQzZBOzExMDAgMTE2NCAxMUJEO0FDNkE7MTEwMCAxMTY0IDExQkQ7CitBQzZCO0FDNkI7MTEwMCAxMTY0IDExQkU7QUM2QjsxMTAwIDExNjQgMTFCRTsKK0FDNkM7QUM2QzsxMTAwIDExNjQgMTFCRjtBQzZDOzExMDAgMTE2NCAxMUJGOworQUM2RDtBQzZEOzExMDAgMTE2NCAxMUMwO0FDNkQ7MTEwMCAxMTY0IDExQzA7CitBQzZFO0FDNkU7MTEwMCAxMTY0IDExQzE7QUM2RTsxMTAwIDExNjQgMTFDMTsKK0FDNkY7QUM2RjsxMTAwIDExNjQgMTFDMjtBQzZGOzExMDAgMTE2NCAxMUMyOworQUM3MDtBQzcwOzExMDAgMTE2NTtBQzcwOzExMDAgMTE2NTsKK0FDNzE7QUM3MTsxMTAwIDExNjUgMTFBODtBQzcxOzExMDAgMTE2NSAxMUE4OworQUM3MjtBQzcyOzExMDAgMTE2NSAxMUE5O0FDNzI7MTEwMCAxMTY1IDExQTk7CitBQzczO0FDNzM7MTEwMCAxMTY1IDExQUE7QUM3MzsxMTAwIDExNjUgMTFBQTsKK0FDNzQ7QUM3NDsxMTAwIDExNjUgMTFBQjtBQzc0OzExMDAgMTE2NSAxMUFCOworQUM3NTtBQzc1OzExMDAgMTE2NSAxMUFDO0FDNzU7MTEwMCAxMTY1IDExQUM7CitBQzc2O0FDNzY7MTEwMCAxMTY1IDExQUQ7QUM3NjsxMTAwIDExNjUgMTFBRDsKK0FDNzc7QUM3NzsxMTAwIDExNjUgMTFBRTtBQzc3OzExMDAgMTE2NSAxMUFFOworQUM3ODtBQzc4OzExMDAgMTE2NSAxMUFGO0FDNzg7MTEwMCAxMTY1IDExQUY7CitBQzc5O0FDNzk7MTEwMCAxMTY1IDExQjA7QUM3OTsxMTAwIDExNjUgMTFCMDsKK0FDN0E7QUM3QTsxMTAwIDExNjUgMTFCMTtBQzdBOzExMDAgMTE2NSAxMUIxOworQUM3QjtBQzdCOzExMDAgMTE2NSAxMUIyO0FDN0I7MTEwMCAxMTY1IDExQjI7CitBQzdDO0FDN0M7MTEwMCAxMTY1IDExQjM7QUM3QzsxMTAwIDExNjUgMTFCMzsKK0FDN0Q7QUM3RDsxMTAwIDExNjUgMTFCNDtBQzdEOzExMDAgMTE2NSAxMUI0OworQUM3RTtBQzdFOzExMDAgMTE2NSAxMUI1O0FDN0U7MTEwMCAxMTY1IDExQjU7CitBQzdGO0FDN0Y7MTEwMCAxMTY1IDExQjY7QUM3RjsxMTAwIDExNjUgMTFCNjsKK0FDODA7QUM4MDsxMTAwIDExNjUgMTFCNztBQzgwOzExMDAgMTE2NSAxMUI3OworQUM4MTtBQzgxOzExMDAgMTE2NSAxMUI4O0FDODE7MTEwMCAxMTY1IDExQjg7CitBQzgyO0FDODI7MTEwMCAxMTY1IDExQjk7QUM4MjsxMTAwIDExNjUgMTFCOTsKK0FDODM7QUM4MzsxMTAwIDExNjUgMTFCQTtBQzgzOzExMDAgMTE2NSAxMUJBOworQUM4NDtBQzg0OzExMDAgMTE2NSAxMUJCO0FDODQ7MTEwMCAxMTY1IDExQkI7CitBQzg1O0FDODU7MTEwMCAxMTY1IDExQkM7QUM4NTsxMTAwIDExNjUgMTFCQzsKK0FDODY7QUM4NjsxMTAwIDExNjUgMTFCRDtBQzg2OzExMDAgMTE2NSAxMUJEOworQUM4NztBQzg3OzExMDAgMTE2NSAxMUJFO0FDODc7MTEwMCAxMTY1IDExQkU7CitBQzg4O0FDODg7MTEwMCAxMTY1IDExQkY7QUM4ODsxMTAwIDExNjUgMTFCRjsKK0FDODk7QUM4OTsxMTAwIDExNjUgMTFDMDtBQzg5OzExMDAgMTE2NSAxMUMwOworQUM4QTtBQzhBOzExMDAgMTE2NSAxMUMxO0FDOEE7MTEwMCAxMTY1IDExQzE7CitBQzhCO0FDOEI7MTEwMCAxMTY1IDExQzI7QUM4QjsxMTAwIDExNjUgMTFDMjsKK0FDOEM7QUM4QzsxMTAwIDExNjY7QUM4QzsxMTAwIDExNjY7CitBQzhEO0FDOEQ7MTEwMCAxMTY2IDExQTg7QUM4RDsxMTAwIDExNjYgMTFBODsKK0FDOEU7QUM4RTsxMTAwIDExNjYgMTFBOTtBQzhFOzExMDAgMTE2NiAxMUE5OworQUM4RjtBQzhGOzExMDAgMTE2NiAxMUFBO0FDOEY7MTEwMCAxMTY2IDExQUE7CitBQzkwO0FDOTA7MTEwMCAxMTY2IDExQUI7QUM5MDsxMTAwIDExNjYgMTFBQjsKK0FDOTE7QUM5MTsxMTAwIDExNjYgMTFBQztBQzkxOzExMDAgMTE2NiAxMUFDOworQUM5MjtBQzkyOzExMDAgMTE2NiAxMUFEO0FDOTI7MTEwMCAxMTY2IDExQUQ7CitBQzkzO0FDOTM7MTEwMCAxMTY2IDExQUU7QUM5MzsxMTAwIDExNjYgMTFBRTsKK0FDOTQ7QUM5NDsxMTAwIDExNjYgMTFBRjtBQzk0OzExMDAgMTE2NiAxMUFGOworQUM5NTtBQzk1OzExMDAgMTE2NiAxMUIwO0FDOTU7MTEwMCAxMTY2IDExQjA7CitBQzk2O0FDOTY7MTEwMCAxMTY2IDExQjE7QUM5NjsxMTAwIDExNjYgMTFCMTsKK0FDOTc7QUM5NzsxMTAwIDExNjYgMTFCMjtBQzk3OzExMDAgMTE2NiAxMUIyOworQUM5ODtBQzk4OzExMDAgMTE2NiAxMUIzO0FDOTg7MTEwMCAxMTY2IDExQjM7CitBQzk5O0FDOTk7MTEwMCAxMTY2IDExQjQ7QUM5OTsxMTAwIDExNjYgMTFCNDsKK0FDOUE7QUM5QTsxMTAwIDExNjYgMTFCNTtBQzlBOzExMDAgMTE2NiAxMUI1OworQUM5QjtBQzlCOzExMDAgMTE2NiAxMUI2O0FDOUI7MTEwMCAxMTY2IDExQjY7CitBQzlDO0FDOUM7MTEwMCAxMTY2IDExQjc7QUM5QzsxMTAwIDExNjYgMTFCNzsKK0FDOUQ7QUM5RDsxMTAwIDExNjYgMTFCODtBQzlEOzExMDAgMTE2NiAxMUI4OworQUM5RTtBQzlFOzExMDAgMTE2NiAxMUI5O0FDOUU7MTEwMCAxMTY2IDExQjk7CitBQzlGO0FDOUY7MTEwMCAxMTY2IDExQkE7QUM5RjsxMTAwIDExNjYgMTFCQTsKK0FDQTA7QUNBMDsxMTAwIDExNjYgMTFCQjtBQ0EwOzExMDAgMTE2NiAxMUJCOworQUNBMTtBQ0ExOzExMDAgMTE2NiAxMUJDO0FDQTE7MTEwMCAxMTY2IDExQkM7CitBQ0EyO0FDQTI7MTEwMCAxMTY2IDExQkQ7QUNBMjsxMTAwIDExNjYgMTFCRDsKK0FDQTM7QUNBMzsxMTAwIDExNjYgMTFCRTtBQ0EzOzExMDAgMTE2NiAxMUJFOworQUNBNDtBQ0E0OzExMDAgMTE2NiAxMUJGO0FDQTQ7MTEwMCAxMTY2IDExQkY7CitBQ0E1O0FDQTU7MTEwMCAxMTY2IDExQzA7QUNBNTsxMTAwIDExNjYgMTFDMDsKK0FDQTY7QUNBNjsxMTAwIDExNjYgMTFDMTtBQ0E2OzExMDAgMTE2NiAxMUMxOworQUNBNztBQ0E3OzExMDAgMTE2NiAxMUMyO0FDQTc7MTEwMCAxMTY2IDExQzI7CitBQ0E4O0FDQTg7MTEwMCAxMTY3O0FDQTg7MTEwMCAxMTY3OworQUNBOTtBQ0E5OzExMDAgMTE2NyAxMUE4O0FDQTk7MTEwMCAxMTY3IDExQTg7CitBQ0FBO0FDQUE7MTEwMCAxMTY3IDExQTk7QUNBQTsxMTAwIDExNjcgMTFBOTsKK0FDQUI7QUNBQjsxMTAwIDExNjcgMTFBQTtBQ0FCOzExMDAgMTE2NyAxMUFBOworQUNBQztBQ0FDOzExMDAgMTE2NyAxMUFCO0FDQUM7MTEwMCAxMTY3IDExQUI7CitBQ0FEO0FDQUQ7MTEwMCAxMTY3IDExQUM7QUNBRDsxMTAwIDExNjcgMTFBQzsKK0FDQUU7QUNBRTsxMTAwIDExNjcgMTFBRDtBQ0FFOzExMDAgMTE2NyAxMUFEOworQUNBRjtBQ0FGOzExMDAgMTE2NyAxMUFFO0FDQUY7MTEwMCAxMTY3IDExQUU7CitBQ0IwO0FDQjA7MTEwMCAxMTY3IDExQUY7QUNCMDsxMTAwIDExNjcgMTFBRjsKK0FDQjE7QUNCMTsxMTAwIDExNjcgMTFCMDtBQ0IxOzExMDAgMTE2NyAxMUIwOworQUNCMjtBQ0IyOzExMDAgMTE2NyAxMUIxO0FDQjI7MTEwMCAxMTY3IDExQjE7CitBQ0IzO0FDQjM7MTEwMCAxMTY3IDExQjI7QUNCMzsxMTAwIDExNjcgMTFCMjsKK0FDQjQ7QUNCNDsxMTAwIDExNjcgMTFCMztBQ0I0OzExMDAgMTE2NyAxMUIzOworQUNCNTtBQ0I1OzExMDAgMTE2NyAxMUI0O0FDQjU7MTEwMCAxMTY3IDExQjQ7CitBQ0I2O0FDQjY7MTEwMCAxMTY3IDExQjU7QUNCNjsxMTAwIDExNjcgMTFCNTsKK0FDQjc7QUNCNzsxMTAwIDExNjcgMTFCNjtBQ0I3OzExMDAgMTE2NyAxMUI2OworQUNCODtBQ0I4OzExMDAgMTE2NyAxMUI3O0FDQjg7MTEwMCAxMTY3IDExQjc7CitBQ0I5O0FDQjk7MTEwMCAxMTY3IDExQjg7QUNCOTsxMTAwIDExNjcgMTFCODsKK0FDQkE7QUNCQTsxMTAwIDExNjcgMTFCOTtBQ0JBOzExMDAgMTE2NyAxMUI5OworQUNCQjtBQ0JCOzExMDAgMTE2NyAxMUJBO0FDQkI7MTEwMCAxMTY3IDExQkE7CitBQ0JDO0FDQkM7MTEwMCAxMTY3IDExQkI7QUNCQzsxMTAwIDExNjcgMTFCQjsKK0FDQkQ7QUNCRDsxMTAwIDExNjcgMTFCQztBQ0JEOzExMDAgMTE2NyAxMUJDOworQUNCRTtBQ0JFOzExMDAgMTE2NyAxMUJEO0FDQkU7MTEwMCAxMTY3IDExQkQ7CitBQ0JGO0FDQkY7MTEwMCAxMTY3IDExQkU7QUNCRjsxMTAwIDExNjcgMTFCRTsKK0FDQzA7QUNDMDsxMTAwIDExNjcgMTFCRjtBQ0MwOzExMDAgMTE2NyAxMUJGOworQUNDMTtBQ0MxOzExMDAgMTE2NyAxMUMwO0FDQzE7MTEwMCAxMTY3IDExQzA7CitBQ0MyO0FDQzI7MTEwMCAxMTY3IDExQzE7QUNDMjsxMTAwIDExNjcgMTFDMTsKK0FDQzM7QUNDMzsxMTAwIDExNjcgMTFDMjtBQ0MzOzExMDAgMTE2NyAxMUMyOworQUNDNDtBQ0M0OzExMDAgMTE2ODtBQ0M0OzExMDAgMTE2ODsKK0FDQzU7QUNDNTsxMTAwIDExNjggMTFBODtBQ0M1OzExMDAgMTE2OCAxMUE4OworQUNDNjtBQ0M2OzExMDAgMTE2OCAxMUE5O0FDQzY7MTEwMCAxMTY4IDExQTk7CitBQ0M3O0FDQzc7MTEwMCAxMTY4IDExQUE7QUNDNzsxMTAwIDExNjggMTFBQTsKK0FDQzg7QUNDODsxMTAwIDExNjggMTFBQjtBQ0M4OzExMDAgMTE2OCAxMUFCOworQUNDOTtBQ0M5OzExMDAgMTE2OCAxMUFDO0FDQzk7MTEwMCAxMTY4IDExQUM7CitBQ0NBO0FDQ0E7MTEwMCAxMTY4IDExQUQ7QUNDQTsxMTAwIDExNjggMTFBRDsKK0FDQ0I7QUNDQjsxMTAwIDExNjggMTFBRTtBQ0NCOzExMDAgMTE2OCAxMUFFOworQUNDQztBQ0NDOzExMDAgMTE2OCAxMUFGO0FDQ0M7MTEwMCAxMTY4IDExQUY7CitBQ0NEO0FDQ0Q7MTEwMCAxMTY4IDExQjA7QUNDRDsxMTAwIDExNjggMTFCMDsKK0FDQ0U7QUNDRTsxMTAwIDExNjggMTFCMTtBQ0NFOzExMDAgMTE2OCAxMUIxOworQUNDRjtBQ0NGOzExMDAgMTE2OCAxMUIyO0FDQ0Y7MTEwMCAxMTY4IDExQjI7CitBQ0QwO0FDRDA7MTEwMCAxMTY4IDExQjM7QUNEMDsxMTAwIDExNjggMTFCMzsKK0FDRDE7QUNEMTsxMTAwIDExNjggMTFCNDtBQ0QxOzExMDAgMTE2OCAxMUI0OworQUNEMjtBQ0QyOzExMDAgMTE2OCAxMUI1O0FDRDI7MTEwMCAxMTY4IDExQjU7CitBQ0QzO0FDRDM7MTEwMCAxMTY4IDExQjY7QUNEMzsxMTAwIDExNjggMTFCNjsKK0FDRDQ7QUNENDsxMTAwIDExNjggMTFCNztBQ0Q0OzExMDAgMTE2OCAxMUI3OworQUNENTtBQ0Q1OzExMDAgMTE2OCAxMUI4O0FDRDU7MTEwMCAxMTY4IDExQjg7CitBQ0Q2O0FDRDY7MTEwMCAxMTY4IDExQjk7QUNENjsxMTAwIDExNjggMTFCOTsKK0FDRDc7QUNENzsxMTAwIDExNjggMTFCQTtBQ0Q3OzExMDAgMTE2OCAxMUJBOworQUNEODtBQ0Q4OzExMDAgMTE2OCAxMUJCO0FDRDg7MTEwMCAxMTY4IDExQkI7CitBQ0Q5O0FDRDk7MTEwMCAxMTY4IDExQkM7QUNEOTsxMTAwIDExNjggMTFCQzsKK0FDREE7QUNEQTsxMTAwIDExNjggMTFCRDtBQ0RBOzExMDAgMTE2OCAxMUJEOworQUNEQjtBQ0RCOzExMDAgMTE2OCAxMUJFO0FDREI7MTEwMCAxMTY4IDExQkU7CitBQ0RDO0FDREM7MTEwMCAxMTY4IDExQkY7QUNEQzsxMTAwIDExNjggMTFCRjsKK0FDREQ7QUNERDsxMTAwIDExNjggMTFDMDtBQ0REOzExMDAgMTE2OCAxMUMwOworQUNERTtBQ0RFOzExMDAgMTE2OCAxMUMxO0FDREU7MTEwMCAxMTY4IDExQzE7CitBQ0RGO0FDREY7MTEwMCAxMTY4IDExQzI7QUNERjsxMTAwIDExNjggMTFDMjsKK0FDRTA7QUNFMDsxMTAwIDExNjk7QUNFMDsxMTAwIDExNjk7CitBQ0UxO0FDRTE7MTEwMCAxMTY5IDExQTg7QUNFMTsxMTAwIDExNjkgMTFBODsKK0FDRTI7QUNFMjsxMTAwIDExNjkgMTFBOTtBQ0UyOzExMDAgMTE2OSAxMUE5OworQUNFMztBQ0UzOzExMDAgMTE2OSAxMUFBO0FDRTM7MTEwMCAxMTY5IDExQUE7CitBQ0U0O0FDRTQ7MTEwMCAxMTY5IDExQUI7QUNFNDsxMTAwIDExNjkgMTFBQjsKK0FDRTU7QUNFNTsxMTAwIDExNjkgMTFBQztBQ0U1OzExMDAgMTE2OSAxMUFDOworQUNFNjtBQ0U2OzExMDAgMTE2OSAxMUFEO0FDRTY7MTEwMCAxMTY5IDExQUQ7CitBQ0U3O0FDRTc7MTEwMCAxMTY5IDExQUU7QUNFNzsxMTAwIDExNjkgMTFBRTsKK0FDRTg7QUNFODsxMTAwIDExNjkgMTFBRjtBQ0U4OzExMDAgMTE2OSAxMUFGOworQUNFOTtBQ0U5OzExMDAgMTE2OSAxMUIwO0FDRTk7MTEwMCAxMTY5IDExQjA7CitBQ0VBO0FDRUE7MTEwMCAxMTY5IDExQjE7QUNFQTsxMTAwIDExNjkgMTFCMTsKK0FDRUI7QUNFQjsxMTAwIDExNjkgMTFCMjtBQ0VCOzExMDAgMTE2OSAxMUIyOworQUNFQztBQ0VDOzExMDAgMTE2OSAxMUIzO0FDRUM7MTEwMCAxMTY5IDExQjM7CitBQ0VEO0FDRUQ7MTEwMCAxMTY5IDExQjQ7QUNFRDsxMTAwIDExNjkgMTFCNDsKK0FDRUU7QUNFRTsxMTAwIDExNjkgMTFCNTtBQ0VFOzExMDAgMTE2OSAxMUI1OworQUNFRjtBQ0VGOzExMDAgMTE2OSAxMUI2O0FDRUY7MTEwMCAxMTY5IDExQjY7CitBQ0YwO0FDRjA7MTEwMCAxMTY5IDExQjc7QUNGMDsxMTAwIDExNjkgMTFCNzsKK0FDRjE7QUNGMTsxMTAwIDExNjkgMTFCODtBQ0YxOzExMDAgMTE2OSAxMUI4OworQUNGMjtBQ0YyOzExMDAgMTE2OSAxMUI5O0FDRjI7MTEwMCAxMTY5IDExQjk7CitBQ0YzO0FDRjM7MTEwMCAxMTY5IDExQkE7QUNGMzsxMTAwIDExNjkgMTFCQTsKK0FDRjQ7QUNGNDsxMTAwIDExNjkgMTFCQjtBQ0Y0OzExMDAgMTE2OSAxMUJCOworQUNGNTtBQ0Y1OzExMDAgMTE2OSAxMUJDO0FDRjU7MTEwMCAxMTY5IDExQkM7CitBQ0Y2O0FDRjY7MTEwMCAxMTY5IDExQkQ7QUNGNjsxMTAwIDExNjkgMTFCRDsKK0FDRjc7QUNGNzsxMTAwIDExNjkgMTFCRTtBQ0Y3OzExMDAgMTE2OSAxMUJFOworQUNGODtBQ0Y4OzExMDAgMTE2OSAxMUJGO0FDRjg7MTEwMCAxMTY5IDExQkY7CitBQ0Y5O0FDRjk7MTEwMCAxMTY5IDExQzA7QUNGOTsxMTAwIDExNjkgMTFDMDsKK0FDRkE7QUNGQTsxMTAwIDExNjkgMTFDMTtBQ0ZBOzExMDAgMTE2OSAxMUMxOworQUNGQjtBQ0ZCOzExMDAgMTE2OSAxMUMyO0FDRkI7MTEwMCAxMTY5IDExQzI7CitBQ0ZDO0FDRkM7MTEwMCAxMTZBO0FDRkM7MTEwMCAxMTZBOworQUNGRDtBQ0ZEOzExMDAgMTE2QSAxMUE4O0FDRkQ7MTEwMCAxMTZBIDExQTg7CitBQ0ZFO0FDRkU7MTEwMCAxMTZBIDExQTk7QUNGRTsxMTAwIDExNkEgMTFBOTsKK0FDRkY7QUNGRjsxMTAwIDExNkEgMTFBQTtBQ0ZGOzExMDAgMTE2QSAxMUFBOworQUQwMDtBRDAwOzExMDAgMTE2QSAxMUFCO0FEMDA7MTEwMCAxMTZBIDExQUI7CitBRDAxO0FEMDE7MTEwMCAxMTZBIDExQUM7QUQwMTsxMTAwIDExNkEgMTFBQzsKK0FEMDI7QUQwMjsxMTAwIDExNkEgMTFBRDtBRDAyOzExMDAgMTE2QSAxMUFEOworQUQwMztBRDAzOzExMDAgMTE2QSAxMUFFO0FEMDM7MTEwMCAxMTZBIDExQUU7CitBRDA0O0FEMDQ7MTEwMCAxMTZBIDExQUY7QUQwNDsxMTAwIDExNkEgMTFBRjsKK0FEMDU7QUQwNTsxMTAwIDExNkEgMTFCMDtBRDA1OzExMDAgMTE2QSAxMUIwOworQUQwNjtBRDA2OzExMDAgMTE2QSAxMUIxO0FEMDY7MTEwMCAxMTZBIDExQjE7CitBRDA3O0FEMDc7MTEwMCAxMTZBIDExQjI7QUQwNzsxMTAwIDExNkEgMTFCMjsKK0FEMDg7QUQwODsxMTAwIDExNkEgMTFCMztBRDA4OzExMDAgMTE2QSAxMUIzOworQUQwOTtBRDA5OzExMDAgMTE2QSAxMUI0O0FEMDk7MTEwMCAxMTZBIDExQjQ7CitBRDBBO0FEMEE7MTEwMCAxMTZBIDExQjU7QUQwQTsxMTAwIDExNkEgMTFCNTsKK0FEMEI7QUQwQjsxMTAwIDExNkEgMTFCNjtBRDBCOzExMDAgMTE2QSAxMUI2OworQUQwQztBRDBDOzExMDAgMTE2QSAxMUI3O0FEMEM7MTEwMCAxMTZBIDExQjc7CitBRDBEO0FEMEQ7MTEwMCAxMTZBIDExQjg7QUQwRDsxMTAwIDExNkEgMTFCODsKK0FEMEU7QUQwRTsxMTAwIDExNkEgMTFCOTtBRDBFOzExMDAgMTE2QSAxMUI5OworQUQwRjtBRDBGOzExMDAgMTE2QSAxMUJBO0FEMEY7MTEwMCAxMTZBIDExQkE7CitBRDEwO0FEMTA7MTEwMCAxMTZBIDExQkI7QUQxMDsxMTAwIDExNkEgMTFCQjsKK0FEMTE7QUQxMTsxMTAwIDExNkEgMTFCQztBRDExOzExMDAgMTE2QSAxMUJDOworQUQxMjtBRDEyOzExMDAgMTE2QSAxMUJEO0FEMTI7MTEwMCAxMTZBIDExQkQ7CitBRDEzO0FEMTM7MTEwMCAxMTZBIDExQkU7QUQxMzsxMTAwIDExNkEgMTFCRTsKK0FEMTQ7QUQxNDsxMTAwIDExNkEgMTFCRjtBRDE0OzExMDAgMTE2QSAxMUJGOworQUQxNTtBRDE1OzExMDAgMTE2QSAxMUMwO0FEMTU7MTEwMCAxMTZBIDExQzA7CitBRDE2O0FEMTY7MTEwMCAxMTZBIDExQzE7QUQxNjsxMTAwIDExNkEgMTFDMTsKK0FEMTc7QUQxNzsxMTAwIDExNkEgMTFDMjtBRDE3OzExMDAgMTE2QSAxMUMyOworQUQxODtBRDE4OzExMDAgMTE2QjtBRDE4OzExMDAgMTE2QjsKK0FEMTk7QUQxOTsxMTAwIDExNkIgMTFBODtBRDE5OzExMDAgMTE2QiAxMUE4OworQUQxQTtBRDFBOzExMDAgMTE2QiAxMUE5O0FEMUE7MTEwMCAxMTZCIDExQTk7CitBRDFCO0FEMUI7MTEwMCAxMTZCIDExQUE7QUQxQjsxMTAwIDExNkIgMTFBQTsKK0FEMUM7QUQxQzsxMTAwIDExNkIgMTFBQjtBRDFDOzExMDAgMTE2QiAxMUFCOworQUQxRDtBRDFEOzExMDAgMTE2QiAxMUFDO0FEMUQ7MTEwMCAxMTZCIDExQUM7CitBRDFFO0FEMUU7MTEwMCAxMTZCIDExQUQ7QUQxRTsxMTAwIDExNkIgMTFBRDsKK0FEMUY7QUQxRjsxMTAwIDExNkIgMTFBRTtBRDFGOzExMDAgMTE2QiAxMUFFOworQUQyMDtBRDIwOzExMDAgMTE2QiAxMUFGO0FEMjA7MTEwMCAxMTZCIDExQUY7CitBRDIxO0FEMjE7MTEwMCAxMTZCIDExQjA7QUQyMTsxMTAwIDExNkIgMTFCMDsKK0FEMjI7QUQyMjsxMTAwIDExNkIgMTFCMTtBRDIyOzExMDAgMTE2QiAxMUIxOworQUQyMztBRDIzOzExMDAgMTE2QiAxMUIyO0FEMjM7MTEwMCAxMTZCIDExQjI7CitBRDI0O0FEMjQ7MTEwMCAxMTZCIDExQjM7QUQyNDsxMTAwIDExNkIgMTFCMzsKK0FEMjU7QUQyNTsxMTAwIDExNkIgMTFCNDtBRDI1OzExMDAgMTE2QiAxMUI0OworQUQyNjtBRDI2OzExMDAgMTE2QiAxMUI1O0FEMjY7MTEwMCAxMTZCIDExQjU7CitBRDI3O0FEMjc7MTEwMCAxMTZCIDExQjY7QUQyNzsxMTAwIDExNkIgMTFCNjsKK0FEMjg7QUQyODsxMTAwIDExNkIgMTFCNztBRDI4OzExMDAgMTE2QiAxMUI3OworQUQyOTtBRDI5OzExMDAgMTE2QiAxMUI4O0FEMjk7MTEwMCAxMTZCIDExQjg7CitBRDJBO0FEMkE7MTEwMCAxMTZCIDExQjk7QUQyQTsxMTAwIDExNkIgMTFCOTsKK0FEMkI7QUQyQjsxMTAwIDExNkIgMTFCQTtBRDJCOzExMDAgMTE2QiAxMUJBOworQUQyQztBRDJDOzExMDAgMTE2QiAxMUJCO0FEMkM7MTEwMCAxMTZCIDExQkI7CitBRDJEO0FEMkQ7MTEwMCAxMTZCIDExQkM7QUQyRDsxMTAwIDExNkIgMTFCQzsKK0FEMkU7QUQyRTsxMTAwIDExNkIgMTFCRDtBRDJFOzExMDAgMTE2QiAxMUJEOworQUQyRjtBRDJGOzExMDAgMTE2QiAxMUJFO0FEMkY7MTEwMCAxMTZCIDExQkU7CitBRDMwO0FEMzA7MTEwMCAxMTZCIDExQkY7QUQzMDsxMTAwIDExNkIgMTFCRjsKK0FEMzE7QUQzMTsxMTAwIDExNkIgMTFDMDtBRDMxOzExMDAgMTE2QiAxMUMwOworQUQzMjtBRDMyOzExMDAgMTE2QiAxMUMxO0FEMzI7MTEwMCAxMTZCIDExQzE7CitBRDMzO0FEMzM7MTEwMCAxMTZCIDExQzI7QUQzMzsxMTAwIDExNkIgMTFDMjsKK0FEMzQ7QUQzNDsxMTAwIDExNkM7QUQzNDsxMTAwIDExNkM7CitBRDM1O0FEMzU7MTEwMCAxMTZDIDExQTg7QUQzNTsxMTAwIDExNkMgMTFBODsKK0FEMzY7QUQzNjsxMTAwIDExNkMgMTFBOTtBRDM2OzExMDAgMTE2QyAxMUE5OworQUQzNztBRDM3OzExMDAgMTE2QyAxMUFBO0FEMzc7MTEwMCAxMTZDIDExQUE7CitBRDM4O0FEMzg7MTEwMCAxMTZDIDExQUI7QUQzODsxMTAwIDExNkMgMTFBQjsKK0FEMzk7QUQzOTsxMTAwIDExNkMgMTFBQztBRDM5OzExMDAgMTE2QyAxMUFDOworQUQzQTtBRDNBOzExMDAgMTE2QyAxMUFEO0FEM0E7MTEwMCAxMTZDIDExQUQ7CitBRDNCO0FEM0I7MTEwMCAxMTZDIDExQUU7QUQzQjsxMTAwIDExNkMgMTFBRTsKK0FEM0M7QUQzQzsxMTAwIDExNkMgMTFBRjtBRDNDOzExMDAgMTE2QyAxMUFGOworQUQzRDtBRDNEOzExMDAgMTE2QyAxMUIwO0FEM0Q7MTEwMCAxMTZDIDExQjA7CitBRDNFO0FEM0U7MTEwMCAxMTZDIDExQjE7QUQzRTsxMTAwIDExNkMgMTFCMTsKK0FEM0Y7QUQzRjsxMTAwIDExNkMgMTFCMjtBRDNGOzExMDAgMTE2QyAxMUIyOworQUQ0MDtBRDQwOzExMDAgMTE2QyAxMUIzO0FENDA7MTEwMCAxMTZDIDExQjM7CitBRDQxO0FENDE7MTEwMCAxMTZDIDExQjQ7QUQ0MTsxMTAwIDExNkMgMTFCNDsKK0FENDI7QUQ0MjsxMTAwIDExNkMgMTFCNTtBRDQyOzExMDAgMTE2QyAxMUI1OworQUQ0MztBRDQzOzExMDAgMTE2QyAxMUI2O0FENDM7MTEwMCAxMTZDIDExQjY7CitBRDQ0O0FENDQ7MTEwMCAxMTZDIDExQjc7QUQ0NDsxMTAwIDExNkMgMTFCNzsKK0FENDU7QUQ0NTsxMTAwIDExNkMgMTFCODtBRDQ1OzExMDAgMTE2QyAxMUI4OworQUQ0NjtBRDQ2OzExMDAgMTE2QyAxMUI5O0FENDY7MTEwMCAxMTZDIDExQjk7CitBRDQ3O0FENDc7MTEwMCAxMTZDIDExQkE7QUQ0NzsxMTAwIDExNkMgMTFCQTsKK0FENDg7QUQ0ODsxMTAwIDExNkMgMTFCQjtBRDQ4OzExMDAgMTE2QyAxMUJCOworQUQ0OTtBRDQ5OzExMDAgMTE2QyAxMUJDO0FENDk7MTEwMCAxMTZDIDExQkM7CitBRDRBO0FENEE7MTEwMCAxMTZDIDExQkQ7QUQ0QTsxMTAwIDExNkMgMTFCRDsKK0FENEI7QUQ0QjsxMTAwIDExNkMgMTFCRTtBRDRCOzExMDAgMTE2QyAxMUJFOworQUQ0QztBRDRDOzExMDAgMTE2QyAxMUJGO0FENEM7MTEwMCAxMTZDIDExQkY7CitBRDREO0FENEQ7MTEwMCAxMTZDIDExQzA7QUQ0RDsxMTAwIDExNkMgMTFDMDsKK0FENEU7QUQ0RTsxMTAwIDExNkMgMTFDMTtBRDRFOzExMDAgMTE2QyAxMUMxOworQUQ0RjtBRDRGOzExMDAgMTE2QyAxMUMyO0FENEY7MTEwMCAxMTZDIDExQzI7CitBRDUwO0FENTA7MTEwMCAxMTZEO0FENTA7MTEwMCAxMTZEOworQUQ1MTtBRDUxOzExMDAgMTE2RCAxMUE4O0FENTE7MTEwMCAxMTZEIDExQTg7CitBRDUyO0FENTI7MTEwMCAxMTZEIDExQTk7QUQ1MjsxMTAwIDExNkQgMTFBOTsKK0FENTM7QUQ1MzsxMTAwIDExNkQgMTFBQTtBRDUzOzExMDAgMTE2RCAxMUFBOworQUQ1NDtBRDU0OzExMDAgMTE2RCAxMUFCO0FENTQ7MTEwMCAxMTZEIDExQUI7CitBRDU1O0FENTU7MTEwMCAxMTZEIDExQUM7QUQ1NTsxMTAwIDExNkQgMTFBQzsKK0FENTY7QUQ1NjsxMTAwIDExNkQgMTFBRDtBRDU2OzExMDAgMTE2RCAxMUFEOworQUQ1NztBRDU3OzExMDAgMTE2RCAxMUFFO0FENTc7MTEwMCAxMTZEIDExQUU7CitBRDU4O0FENTg7MTEwMCAxMTZEIDExQUY7QUQ1ODsxMTAwIDExNkQgMTFBRjsKK0FENTk7QUQ1OTsxMTAwIDExNkQgMTFCMDtBRDU5OzExMDAgMTE2RCAxMUIwOworQUQ1QTtBRDVBOzExMDAgMTE2RCAxMUIxO0FENUE7MTEwMCAxMTZEIDExQjE7CitBRDVCO0FENUI7MTEwMCAxMTZEIDExQjI7QUQ1QjsxMTAwIDExNkQgMTFCMjsKK0FENUM7QUQ1QzsxMTAwIDExNkQgMTFCMztBRDVDOzExMDAgMTE2RCAxMUIzOworQUQ1RDtBRDVEOzExMDAgMTE2RCAxMUI0O0FENUQ7MTEwMCAxMTZEIDExQjQ7CitBRDVFO0FENUU7MTEwMCAxMTZEIDExQjU7QUQ1RTsxMTAwIDExNkQgMTFCNTsKK0FENUY7QUQ1RjsxMTAwIDExNkQgMTFCNjtBRDVGOzExMDAgMTE2RCAxMUI2OworQUQ2MDtBRDYwOzExMDAgMTE2RCAxMUI3O0FENjA7MTEwMCAxMTZEIDExQjc7CitBRDYxO0FENjE7MTEwMCAxMTZEIDExQjg7QUQ2MTsxMTAwIDExNkQgMTFCODsKK0FENjI7QUQ2MjsxMTAwIDExNkQgMTFCOTtBRDYyOzExMDAgMTE2RCAxMUI5OworQUQ2MztBRDYzOzExMDAgMTE2RCAxMUJBO0FENjM7MTEwMCAxMTZEIDExQkE7CitBRDY0O0FENjQ7MTEwMCAxMTZEIDExQkI7QUQ2NDsxMTAwIDExNkQgMTFCQjsKK0FENjU7QUQ2NTsxMTAwIDExNkQgMTFCQztBRDY1OzExMDAgMTE2RCAxMUJDOworQUQ2NjtBRDY2OzExMDAgMTE2RCAxMUJEO0FENjY7MTEwMCAxMTZEIDExQkQ7CitBRDY3O0FENjc7MTEwMCAxMTZEIDExQkU7QUQ2NzsxMTAwIDExNkQgMTFCRTsKK0FENjg7QUQ2ODsxMTAwIDExNkQgMTFCRjtBRDY4OzExMDAgMTE2RCAxMUJGOworQUQ2OTtBRDY5OzExMDAgMTE2RCAxMUMwO0FENjk7MTEwMCAxMTZEIDExQzA7CitBRDZBO0FENkE7MTEwMCAxMTZEIDExQzE7QUQ2QTsxMTAwIDExNkQgMTFDMTsKK0FENkI7QUQ2QjsxMTAwIDExNkQgMTFDMjtBRDZCOzExMDAgMTE2RCAxMUMyOworQUQ2QztBRDZDOzExMDAgMTE2RTtBRDZDOzExMDAgMTE2RTsKK0FENkQ7QUQ2RDsxMTAwIDExNkUgMTFBODtBRDZEOzExMDAgMTE2RSAxMUE4OworQUQ2RTtBRDZFOzExMDAgMTE2RSAxMUE5O0FENkU7MTEwMCAxMTZFIDExQTk7CitBRDZGO0FENkY7MTEwMCAxMTZFIDExQUE7QUQ2RjsxMTAwIDExNkUgMTFBQTsKK0FENzA7QUQ3MDsxMTAwIDExNkUgMTFBQjtBRDcwOzExMDAgMTE2RSAxMUFCOworQUQ3MTtBRDcxOzExMDAgMTE2RSAxMUFDO0FENzE7MTEwMCAxMTZFIDExQUM7CitBRDcyO0FENzI7MTEwMCAxMTZFIDExQUQ7QUQ3MjsxMTAwIDExNkUgMTFBRDsKK0FENzM7QUQ3MzsxMTAwIDExNkUgMTFBRTtBRDczOzExMDAgMTE2RSAxMUFFOworQUQ3NDtBRDc0OzExMDAgMTE2RSAxMUFGO0FENzQ7MTEwMCAxMTZFIDExQUY7CitBRDc1O0FENzU7MTEwMCAxMTZFIDExQjA7QUQ3NTsxMTAwIDExNkUgMTFCMDsKK0FENzY7QUQ3NjsxMTAwIDExNkUgMTFCMTtBRDc2OzExMDAgMTE2RSAxMUIxOworQUQ3NztBRDc3OzExMDAgMTE2RSAxMUIyO0FENzc7MTEwMCAxMTZFIDExQjI7CitBRDc4O0FENzg7MTEwMCAxMTZFIDExQjM7QUQ3ODsxMTAwIDExNkUgMTFCMzsKK0FENzk7QUQ3OTsxMTAwIDExNkUgMTFCNDtBRDc5OzExMDAgMTE2RSAxMUI0OworQUQ3QTtBRDdBOzExMDAgMTE2RSAxMUI1O0FEN0E7MTEwMCAxMTZFIDExQjU7CitBRDdCO0FEN0I7MTEwMCAxMTZFIDExQjY7QUQ3QjsxMTAwIDExNkUgMTFCNjsKK0FEN0M7QUQ3QzsxMTAwIDExNkUgMTFCNztBRDdDOzExMDAgMTE2RSAxMUI3OworQUQ3RDtBRDdEOzExMDAgMTE2RSAxMUI4O0FEN0Q7MTEwMCAxMTZFIDExQjg7CitBRDdFO0FEN0U7MTEwMCAxMTZFIDExQjk7QUQ3RTsxMTAwIDExNkUgMTFCOTsKK0FEN0Y7QUQ3RjsxMTAwIDExNkUgMTFCQTtBRDdGOzExMDAgMTE2RSAxMUJBOworQUQ4MDtBRDgwOzExMDAgMTE2RSAxMUJCO0FEODA7MTEwMCAxMTZFIDExQkI7CitBRDgxO0FEODE7MTEwMCAxMTZFIDExQkM7QUQ4MTsxMTAwIDExNkUgMTFCQzsKK0FEODI7QUQ4MjsxMTAwIDExNkUgMTFCRDtBRDgyOzExMDAgMTE2RSAxMUJEOworQUQ4MztBRDgzOzExMDAgMTE2RSAxMUJFO0FEODM7MTEwMCAxMTZFIDExQkU7CitBRDg0O0FEODQ7MTEwMCAxMTZFIDExQkY7QUQ4NDsxMTAwIDExNkUgMTFCRjsKK0FEODU7QUQ4NTsxMTAwIDExNkUgMTFDMDtBRDg1OzExMDAgMTE2RSAxMUMwOworQUQ4NjtBRDg2OzExMDAgMTE2RSAxMUMxO0FEODY7MTEwMCAxMTZFIDExQzE7CitBRDg3O0FEODc7MTEwMCAxMTZFIDExQzI7QUQ4NzsxMTAwIDExNkUgMTFDMjsKK0FEODg7QUQ4ODsxMTAwIDExNkY7QUQ4ODsxMTAwIDExNkY7CitBRDg5O0FEODk7MTEwMCAxMTZGIDExQTg7QUQ4OTsxMTAwIDExNkYgMTFBODsKK0FEOEE7QUQ4QTsxMTAwIDExNkYgMTFBOTtBRDhBOzExMDAgMTE2RiAxMUE5OworQUQ4QjtBRDhCOzExMDAgMTE2RiAxMUFBO0FEOEI7MTEwMCAxMTZGIDExQUE7CitBRDhDO0FEOEM7MTEwMCAxMTZGIDExQUI7QUQ4QzsxMTAwIDExNkYgMTFBQjsKK0FEOEQ7QUQ4RDsxMTAwIDExNkYgMTFBQztBRDhEOzExMDAgMTE2RiAxMUFDOworQUQ4RTtBRDhFOzExMDAgMTE2RiAxMUFEO0FEOEU7MTEwMCAxMTZGIDExQUQ7CitBRDhGO0FEOEY7MTEwMCAxMTZGIDExQUU7QUQ4RjsxMTAwIDExNkYgMTFBRTsKK0FEOTA7QUQ5MDsxMTAwIDExNkYgMTFBRjtBRDkwOzExMDAgMTE2RiAxMUFGOworQUQ5MTtBRDkxOzExMDAgMTE2RiAxMUIwO0FEOTE7MTEwMCAxMTZGIDExQjA7CitBRDkyO0FEOTI7MTEwMCAxMTZGIDExQjE7QUQ5MjsxMTAwIDExNkYgMTFCMTsKK0FEOTM7QUQ5MzsxMTAwIDExNkYgMTFCMjtBRDkzOzExMDAgMTE2RiAxMUIyOworQUQ5NDtBRDk0OzExMDAgMTE2RiAxMUIzO0FEOTQ7MTEwMCAxMTZGIDExQjM7CitBRDk1O0FEOTU7MTEwMCAxMTZGIDExQjQ7QUQ5NTsxMTAwIDExNkYgMTFCNDsKK0FEOTY7QUQ5NjsxMTAwIDExNkYgMTFCNTtBRDk2OzExMDAgMTE2RiAxMUI1OworQUQ5NztBRDk3OzExMDAgMTE2RiAxMUI2O0FEOTc7MTEwMCAxMTZGIDExQjY7CitBRDk4O0FEOTg7MTEwMCAxMTZGIDExQjc7QUQ5ODsxMTAwIDExNkYgMTFCNzsKK0FEOTk7QUQ5OTsxMTAwIDExNkYgMTFCODtBRDk5OzExMDAgMTE2RiAxMUI4OworQUQ5QTtBRDlBOzExMDAgMTE2RiAxMUI5O0FEOUE7MTEwMCAxMTZGIDExQjk7CitBRDlCO0FEOUI7MTEwMCAxMTZGIDExQkE7QUQ5QjsxMTAwIDExNkYgMTFCQTsKK0FEOUM7QUQ5QzsxMTAwIDExNkYgMTFCQjtBRDlDOzExMDAgMTE2RiAxMUJCOworQUQ5RDtBRDlEOzExMDAgMTE2RiAxMUJDO0FEOUQ7MTEwMCAxMTZGIDExQkM7CitBRDlFO0FEOUU7MTEwMCAxMTZGIDExQkQ7QUQ5RTsxMTAwIDExNkYgMTFCRDsKK0FEOUY7QUQ5RjsxMTAwIDExNkYgMTFCRTtBRDlGOzExMDAgMTE2RiAxMUJFOworQURBMDtBREEwOzExMDAgMTE2RiAxMUJGO0FEQTA7MTEwMCAxMTZGIDExQkY7CitBREExO0FEQTE7MTEwMCAxMTZGIDExQzA7QURBMTsxMTAwIDExNkYgMTFDMDsKK0FEQTI7QURBMjsxMTAwIDExNkYgMTFDMTtBREEyOzExMDAgMTE2RiAxMUMxOworQURBMztBREEzOzExMDAgMTE2RiAxMUMyO0FEQTM7MTEwMCAxMTZGIDExQzI7CitBREE0O0FEQTQ7MTEwMCAxMTcwO0FEQTQ7MTEwMCAxMTcwOworQURBNTtBREE1OzExMDAgMTE3MCAxMUE4O0FEQTU7MTEwMCAxMTcwIDExQTg7CitBREE2O0FEQTY7MTEwMCAxMTcwIDExQTk7QURBNjsxMTAwIDExNzAgMTFBOTsKK0FEQTc7QURBNzsxMTAwIDExNzAgMTFBQTtBREE3OzExMDAgMTE3MCAxMUFBOworQURBODtBREE4OzExMDAgMTE3MCAxMUFCO0FEQTg7MTEwMCAxMTcwIDExQUI7CitBREE5O0FEQTk7MTEwMCAxMTcwIDExQUM7QURBOTsxMTAwIDExNzAgMTFBQzsKK0FEQUE7QURBQTsxMTAwIDExNzAgMTFBRDtBREFBOzExMDAgMTE3MCAxMUFEOworQURBQjtBREFCOzExMDAgMTE3MCAxMUFFO0FEQUI7MTEwMCAxMTcwIDExQUU7CitBREFDO0FEQUM7MTEwMCAxMTcwIDExQUY7QURBQzsxMTAwIDExNzAgMTFBRjsKK0FEQUQ7QURBRDsxMTAwIDExNzAgMTFCMDtBREFEOzExMDAgMTE3MCAxMUIwOworQURBRTtBREFFOzExMDAgMTE3MCAxMUIxO0FEQUU7MTEwMCAxMTcwIDExQjE7CitBREFGO0FEQUY7MTEwMCAxMTcwIDExQjI7QURBRjsxMTAwIDExNzAgMTFCMjsKK0FEQjA7QURCMDsxMTAwIDExNzAgMTFCMztBREIwOzExMDAgMTE3MCAxMUIzOworQURCMTtBREIxOzExMDAgMTE3MCAxMUI0O0FEQjE7MTEwMCAxMTcwIDExQjQ7CitBREIyO0FEQjI7MTEwMCAxMTcwIDExQjU7QURCMjsxMTAwIDExNzAgMTFCNTsKK0FEQjM7QURCMzsxMTAwIDExNzAgMTFCNjtBREIzOzExMDAgMTE3MCAxMUI2OworQURCNDtBREI0OzExMDAgMTE3MCAxMUI3O0FEQjQ7MTEwMCAxMTcwIDExQjc7CitBREI1O0FEQjU7MTEwMCAxMTcwIDExQjg7QURCNTsxMTAwIDExNzAgMTFCODsKK0FEQjY7QURCNjsxMTAwIDExNzAgMTFCOTtBREI2OzExMDAgMTE3MCAxMUI5OworQURCNztBREI3OzExMDAgMTE3MCAxMUJBO0FEQjc7MTEwMCAxMTcwIDExQkE7CitBREI4O0FEQjg7MTEwMCAxMTcwIDExQkI7QURCODsxMTAwIDExNzAgMTFCQjsKK0FEQjk7QURCOTsxMTAwIDExNzAgMTFCQztBREI5OzExMDAgMTE3MCAxMUJDOworQURCQTtBREJBOzExMDAgMTE3MCAxMUJEO0FEQkE7MTEwMCAxMTcwIDExQkQ7CitBREJCO0FEQkI7MTEwMCAxMTcwIDExQkU7QURCQjsxMTAwIDExNzAgMTFCRTsKK0FEQkM7QURCQzsxMTAwIDExNzAgMTFCRjtBREJDOzExMDAgMTE3MCAxMUJGOworQURCRDtBREJEOzExMDAgMTE3MCAxMUMwO0FEQkQ7MTEwMCAxMTcwIDExQzA7CitBREJFO0FEQkU7MTEwMCAxMTcwIDExQzE7QURCRTsxMTAwIDExNzAgMTFDMTsKK0FEQkY7QURCRjsxMTAwIDExNzAgMTFDMjtBREJGOzExMDAgMTE3MCAxMUMyOworQURDMDtBREMwOzExMDAgMTE3MTtBREMwOzExMDAgMTE3MTsKK0FEQzE7QURDMTsxMTAwIDExNzEgMTFBODtBREMxOzExMDAgMTE3MSAxMUE4OworQURDMjtBREMyOzExMDAgMTE3MSAxMUE5O0FEQzI7MTEwMCAxMTcxIDExQTk7CitBREMzO0FEQzM7MTEwMCAxMTcxIDExQUE7QURDMzsxMTAwIDExNzEgMTFBQTsKK0FEQzQ7QURDNDsxMTAwIDExNzEgMTFBQjtBREM0OzExMDAgMTE3MSAxMUFCOworQURDNTtBREM1OzExMDAgMTE3MSAxMUFDO0FEQzU7MTEwMCAxMTcxIDExQUM7CitBREM2O0FEQzY7MTEwMCAxMTcxIDExQUQ7QURDNjsxMTAwIDExNzEgMTFBRDsKK0FEQzc7QURDNzsxMTAwIDExNzEgMTFBRTtBREM3OzExMDAgMTE3MSAxMUFFOworQURDODtBREM4OzExMDAgMTE3MSAxMUFGO0FEQzg7MTEwMCAxMTcxIDExQUY7CitBREM5O0FEQzk7MTEwMCAxMTcxIDExQjA7QURDOTsxMTAwIDExNzEgMTFCMDsKK0FEQ0E7QURDQTsxMTAwIDExNzEgMTFCMTtBRENBOzExMDAgMTE3MSAxMUIxOworQURDQjtBRENCOzExMDAgMTE3MSAxMUIyO0FEQ0I7MTEwMCAxMTcxIDExQjI7CitBRENDO0FEQ0M7MTEwMCAxMTcxIDExQjM7QURDQzsxMTAwIDExNzEgMTFCMzsKK0FEQ0Q7QURDRDsxMTAwIDExNzEgMTFCNDtBRENEOzExMDAgMTE3MSAxMUI0OworQURDRTtBRENFOzExMDAgMTE3MSAxMUI1O0FEQ0U7MTEwMCAxMTcxIDExQjU7CitBRENGO0FEQ0Y7MTEwMCAxMTcxIDExQjY7QURDRjsxMTAwIDExNzEgMTFCNjsKK0FERDA7QUREMDsxMTAwIDExNzEgMTFCNztBREQwOzExMDAgMTE3MSAxMUI3OworQUREMTtBREQxOzExMDAgMTE3MSAxMUI4O0FERDE7MTEwMCAxMTcxIDExQjg7CitBREQyO0FERDI7MTEwMCAxMTcxIDExQjk7QUREMjsxMTAwIDExNzEgMTFCOTsKK0FERDM7QUREMzsxMTAwIDExNzEgMTFCQTtBREQzOzExMDAgMTE3MSAxMUJBOworQURENDtBREQ0OzExMDAgMTE3MSAxMUJCO0FERDQ7MTEwMCAxMTcxIDExQkI7CitBREQ1O0FERDU7MTEwMCAxMTcxIDExQkM7QURENTsxMTAwIDExNzEgMTFCQzsKK0FERDY7QURENjsxMTAwIDExNzEgMTFCRDtBREQ2OzExMDAgMTE3MSAxMUJEOworQURENztBREQ3OzExMDAgMTE3MSAxMUJFO0FERDc7MTEwMCAxMTcxIDExQkU7CitBREQ4O0FERDg7MTEwMCAxMTcxIDExQkY7QUREODsxMTAwIDExNzEgMTFCRjsKK0FERDk7QUREOTsxMTAwIDExNzEgMTFDMDtBREQ5OzExMDAgMTE3MSAxMUMwOworQUREQTtBRERBOzExMDAgMTE3MSAxMUMxO0FEREE7MTEwMCAxMTcxIDExQzE7CitBRERCO0FEREI7MTEwMCAxMTcxIDExQzI7QUREQjsxMTAwIDExNzEgMTFDMjsKK0FEREM7QUREQzsxMTAwIDExNzI7QUREQzsxMTAwIDExNzI7CitBREREO0FEREQ7MTEwMCAxMTcyIDExQTg7QURERDsxMTAwIDExNzIgMTFBODsKK0FEREU7QURERTsxMTAwIDExNzIgMTFBOTtBRERFOzExMDAgMTE3MiAxMUE5OworQURERjtBRERGOzExMDAgMTE3MiAxMUFBO0FEREY7MTEwMCAxMTcyIDExQUE7CitBREUwO0FERTA7MTEwMCAxMTcyIDExQUI7QURFMDsxMTAwIDExNzIgMTFBQjsKK0FERTE7QURFMTsxMTAwIDExNzIgMTFBQztBREUxOzExMDAgMTE3MiAxMUFDOworQURFMjtBREUyOzExMDAgMTE3MiAxMUFEO0FERTI7MTEwMCAxMTcyIDExQUQ7CitBREUzO0FERTM7MTEwMCAxMTcyIDExQUU7QURFMzsxMTAwIDExNzIgMTFBRTsKK0FERTQ7QURFNDsxMTAwIDExNzIgMTFBRjtBREU0OzExMDAgMTE3MiAxMUFGOworQURFNTtBREU1OzExMDAgMTE3MiAxMUIwO0FERTU7MTEwMCAxMTcyIDExQjA7CitBREU2O0FERTY7MTEwMCAxMTcyIDExQjE7QURFNjsxMTAwIDExNzIgMTFCMTsKK0FERTc7QURFNzsxMTAwIDExNzIgMTFCMjtBREU3OzExMDAgMTE3MiAxMUIyOworQURFODtBREU4OzExMDAgMTE3MiAxMUIzO0FERTg7MTEwMCAxMTcyIDExQjM7CitBREU5O0FERTk7MTEwMCAxMTcyIDExQjQ7QURFOTsxMTAwIDExNzIgMTFCNDsKK0FERUE7QURFQTsxMTAwIDExNzIgMTFCNTtBREVBOzExMDAgMTE3MiAxMUI1OworQURFQjtBREVCOzExMDAgMTE3MiAxMUI2O0FERUI7MTEwMCAxMTcyIDExQjY7CitBREVDO0FERUM7MTEwMCAxMTcyIDExQjc7QURFQzsxMTAwIDExNzIgMTFCNzsKK0FERUQ7QURFRDsxMTAwIDExNzIgMTFCODtBREVEOzExMDAgMTE3MiAxMUI4OworQURFRTtBREVFOzExMDAgMTE3MiAxMUI5O0FERUU7MTEwMCAxMTcyIDExQjk7CitBREVGO0FERUY7MTEwMCAxMTcyIDExQkE7QURFRjsxMTAwIDExNzIgMTFCQTsKK0FERjA7QURGMDsxMTAwIDExNzIgMTFCQjtBREYwOzExMDAgMTE3MiAxMUJCOworQURGMTtBREYxOzExMDAgMTE3MiAxMUJDO0FERjE7MTEwMCAxMTcyIDExQkM7CitBREYyO0FERjI7MTEwMCAxMTcyIDExQkQ7QURGMjsxMTAwIDExNzIgMTFCRDsKK0FERjM7QURGMzsxMTAwIDExNzIgMTFCRTtBREYzOzExMDAgMTE3MiAxMUJFOworQURGNDtBREY0OzExMDAgMTE3MiAxMUJGO0FERjQ7MTEwMCAxMTcyIDExQkY7CitBREY1O0FERjU7MTEwMCAxMTcyIDExQzA7QURGNTsxMTAwIDExNzIgMTFDMDsKK0FERjY7QURGNjsxMTAwIDExNzIgMTFDMTtBREY2OzExMDAgMTE3MiAxMUMxOworQURGNztBREY3OzExMDAgMTE3MiAxMUMyO0FERjc7MTEwMCAxMTcyIDExQzI7CitBREY4O0FERjg7MTEwMCAxMTczO0FERjg7MTEwMCAxMTczOworQURGOTtBREY5OzExMDAgMTE3MyAxMUE4O0FERjk7MTEwMCAxMTczIDExQTg7CitBREZBO0FERkE7MTEwMCAxMTczIDExQTk7QURGQTsxMTAwIDExNzMgMTFBOTsKK0FERkI7QURGQjsxMTAwIDExNzMgMTFBQTtBREZCOzExMDAgMTE3MyAxMUFBOworQURGQztBREZDOzExMDAgMTE3MyAxMUFCO0FERkM7MTEwMCAxMTczIDExQUI7CitBREZEO0FERkQ7MTEwMCAxMTczIDExQUM7QURGRDsxMTAwIDExNzMgMTFBQzsKK0FERkU7QURGRTsxMTAwIDExNzMgMTFBRDtBREZFOzExMDAgMTE3MyAxMUFEOworQURGRjtBREZGOzExMDAgMTE3MyAxMUFFO0FERkY7MTEwMCAxMTczIDExQUU7CitBRTAwO0FFMDA7MTEwMCAxMTczIDExQUY7QUUwMDsxMTAwIDExNzMgMTFBRjsKK0FFMDE7QUUwMTsxMTAwIDExNzMgMTFCMDtBRTAxOzExMDAgMTE3MyAxMUIwOworQUUwMjtBRTAyOzExMDAgMTE3MyAxMUIxO0FFMDI7MTEwMCAxMTczIDExQjE7CitBRTAzO0FFMDM7MTEwMCAxMTczIDExQjI7QUUwMzsxMTAwIDExNzMgMTFCMjsKK0FFMDQ7QUUwNDsxMTAwIDExNzMgMTFCMztBRTA0OzExMDAgMTE3MyAxMUIzOworQUUwNTtBRTA1OzExMDAgMTE3MyAxMUI0O0FFMDU7MTEwMCAxMTczIDExQjQ7CitBRTA2O0FFMDY7MTEwMCAxMTczIDExQjU7QUUwNjsxMTAwIDExNzMgMTFCNTsKK0FFMDc7QUUwNzsxMTAwIDExNzMgMTFCNjtBRTA3OzExMDAgMTE3MyAxMUI2OworQUUwODtBRTA4OzExMDAgMTE3MyAxMUI3O0FFMDg7MTEwMCAxMTczIDExQjc7CitBRTA5O0FFMDk7MTEwMCAxMTczIDExQjg7QUUwOTsxMTAwIDExNzMgMTFCODsKK0FFMEE7QUUwQTsxMTAwIDExNzMgMTFCOTtBRTBBOzExMDAgMTE3MyAxMUI5OworQUUwQjtBRTBCOzExMDAgMTE3MyAxMUJBO0FFMEI7MTEwMCAxMTczIDExQkE7CitBRTBDO0FFMEM7MTEwMCAxMTczIDExQkI7QUUwQzsxMTAwIDExNzMgMTFCQjsKK0FFMEQ7QUUwRDsxMTAwIDExNzMgMTFCQztBRTBEOzExMDAgMTE3MyAxMUJDOworQUUwRTtBRTBFOzExMDAgMTE3MyAxMUJEO0FFMEU7MTEwMCAxMTczIDExQkQ7CitBRTBGO0FFMEY7MTEwMCAxMTczIDExQkU7QUUwRjsxMTAwIDExNzMgMTFCRTsKK0FFMTA7QUUxMDsxMTAwIDExNzMgMTFCRjtBRTEwOzExMDAgMTE3MyAxMUJGOworQUUxMTtBRTExOzExMDAgMTE3MyAxMUMwO0FFMTE7MTEwMCAxMTczIDExQzA7CitBRTEyO0FFMTI7MTEwMCAxMTczIDExQzE7QUUxMjsxMTAwIDExNzMgMTFDMTsKK0FFMTM7QUUxMzsxMTAwIDExNzMgMTFDMjtBRTEzOzExMDAgMTE3MyAxMUMyOworQUUxNDtBRTE0OzExMDAgMTE3NDtBRTE0OzExMDAgMTE3NDsKK0FFMTU7QUUxNTsxMTAwIDExNzQgMTFBODtBRTE1OzExMDAgMTE3NCAxMUE4OworQUUxNjtBRTE2OzExMDAgMTE3NCAxMUE5O0FFMTY7MTEwMCAxMTc0IDExQTk7CitBRTE3O0FFMTc7MTEwMCAxMTc0IDExQUE7QUUxNzsxMTAwIDExNzQgMTFBQTsKK0FFMTg7QUUxODsxMTAwIDExNzQgMTFBQjtBRTE4OzExMDAgMTE3NCAxMUFCOworQUUxOTtBRTE5OzExMDAgMTE3NCAxMUFDO0FFMTk7MTEwMCAxMTc0IDExQUM7CitBRTFBO0FFMUE7MTEwMCAxMTc0IDExQUQ7QUUxQTsxMTAwIDExNzQgMTFBRDsKK0FFMUI7QUUxQjsxMTAwIDExNzQgMTFBRTtBRTFCOzExMDAgMTE3NCAxMUFFOworQUUxQztBRTFDOzExMDAgMTE3NCAxMUFGO0FFMUM7MTEwMCAxMTc0IDExQUY7CitBRTFEO0FFMUQ7MTEwMCAxMTc0IDExQjA7QUUxRDsxMTAwIDExNzQgMTFCMDsKK0FFMUU7QUUxRTsxMTAwIDExNzQgMTFCMTtBRTFFOzExMDAgMTE3NCAxMUIxOworQUUxRjtBRTFGOzExMDAgMTE3NCAxMUIyO0FFMUY7MTEwMCAxMTc0IDExQjI7CitBRTIwO0FFMjA7MTEwMCAxMTc0IDExQjM7QUUyMDsxMTAwIDExNzQgMTFCMzsKK0FFMjE7QUUyMTsxMTAwIDExNzQgMTFCNDtBRTIxOzExMDAgMTE3NCAxMUI0OworQUUyMjtBRTIyOzExMDAgMTE3NCAxMUI1O0FFMjI7MTEwMCAxMTc0IDExQjU7CitBRTIzO0FFMjM7MTEwMCAxMTc0IDExQjY7QUUyMzsxMTAwIDExNzQgMTFCNjsKK0FFMjQ7QUUyNDsxMTAwIDExNzQgMTFCNztBRTI0OzExMDAgMTE3NCAxMUI3OworQUUyNTtBRTI1OzExMDAgMTE3NCAxMUI4O0FFMjU7MTEwMCAxMTc0IDExQjg7CitBRTI2O0FFMjY7MTEwMCAxMTc0IDExQjk7QUUyNjsxMTAwIDExNzQgMTFCOTsKK0FFMjc7QUUyNzsxMTAwIDExNzQgMTFCQTtBRTI3OzExMDAgMTE3NCAxMUJBOworQUUyODtBRTI4OzExMDAgMTE3NCAxMUJCO0FFMjg7MTEwMCAxMTc0IDExQkI7CitBRTI5O0FFMjk7MTEwMCAxMTc0IDExQkM7QUUyOTsxMTAwIDExNzQgMTFCQzsKK0FFMkE7QUUyQTsxMTAwIDExNzQgMTFCRDtBRTJBOzExMDAgMTE3NCAxMUJEOworQUUyQjtBRTJCOzExMDAgMTE3NCAxMUJFO0FFMkI7MTEwMCAxMTc0IDExQkU7CitBRTJDO0FFMkM7MTEwMCAxMTc0IDExQkY7QUUyQzsxMTAwIDExNzQgMTFCRjsKK0FFMkQ7QUUyRDsxMTAwIDExNzQgMTFDMDtBRTJEOzExMDAgMTE3NCAxMUMwOworQUUyRTtBRTJFOzExMDAgMTE3NCAxMUMxO0FFMkU7MTEwMCAxMTc0IDExQzE7CitBRTJGO0FFMkY7MTEwMCAxMTc0IDExQzI7QUUyRjsxMTAwIDExNzQgMTFDMjsKK0FFMzA7QUUzMDsxMTAwIDExNzU7QUUzMDsxMTAwIDExNzU7CitBRTMxO0FFMzE7MTEwMCAxMTc1IDExQTg7QUUzMTsxMTAwIDExNzUgMTFBODsKK0FFMzI7QUUzMjsxMTAwIDExNzUgMTFBOTtBRTMyOzExMDAgMTE3NSAxMUE5OworQUUzMztBRTMzOzExMDAgMTE3NSAxMUFBO0FFMzM7MTEwMCAxMTc1IDExQUE7CitBRTM0O0FFMzQ7MTEwMCAxMTc1IDExQUI7QUUzNDsxMTAwIDExNzUgMTFBQjsKK0FFMzU7QUUzNTsxMTAwIDExNzUgMTFBQztBRTM1OzExMDAgMTE3NSAxMUFDOworQUUzNjtBRTM2OzExMDAgMTE3NSAxMUFEO0FFMzY7MTEwMCAxMTc1IDExQUQ7CitBRTM3O0FFMzc7MTEwMCAxMTc1IDExQUU7QUUzNzsxMTAwIDExNzUgMTFBRTsKK0FFMzg7QUUzODsxMTAwIDExNzUgMTFBRjtBRTM4OzExMDAgMTE3NSAxMUFGOworQUUzOTtBRTM5OzExMDAgMTE3NSAxMUIwO0FFMzk7MTEwMCAxMTc1IDExQjA7CitBRTNBO0FFM0E7MTEwMCAxMTc1IDExQjE7QUUzQTsxMTAwIDExNzUgMTFCMTsKK0FFM0I7QUUzQjsxMTAwIDExNzUgMTFCMjtBRTNCOzExMDAgMTE3NSAxMUIyOworQUUzQztBRTNDOzExMDAgMTE3NSAxMUIzO0FFM0M7MTEwMCAxMTc1IDExQjM7CitBRTNEO0FFM0Q7MTEwMCAxMTc1IDExQjQ7QUUzRDsxMTAwIDExNzUgMTFCNDsKK0FFM0U7QUUzRTsxMTAwIDExNzUgMTFCNTtBRTNFOzExMDAgMTE3NSAxMUI1OworQUUzRjtBRTNGOzExMDAgMTE3NSAxMUI2O0FFM0Y7MTEwMCAxMTc1IDExQjY7CitBRTQwO0FFNDA7MTEwMCAxMTc1IDExQjc7QUU0MDsxMTAwIDExNzUgMTFCNzsKK0FFNDE7QUU0MTsxMTAwIDExNzUgMTFCODtBRTQxOzExMDAgMTE3NSAxMUI4OworQUU0MjtBRTQyOzExMDAgMTE3NSAxMUI5O0FFNDI7MTEwMCAxMTc1IDExQjk7CitBRTQzO0FFNDM7MTEwMCAxMTc1IDExQkE7QUU0MzsxMTAwIDExNzUgMTFCQTsKK0FFNDQ7QUU0NDsxMTAwIDExNzUgMTFCQjtBRTQ0OzExMDAgMTE3NSAxMUJCOworQUU0NTtBRTQ1OzExMDAgMTE3NSAxMUJDO0FFNDU7MTEwMCAxMTc1IDExQkM7CitBRTQ2O0FFNDY7MTEwMCAxMTc1IDExQkQ7QUU0NjsxMTAwIDExNzUgMTFCRDsKK0FFNDc7QUU0NzsxMTAwIDExNzUgMTFCRTtBRTQ3OzExMDAgMTE3NSAxMUJFOworQUU0ODtBRTQ4OzExMDAgMTE3NSAxMUJGO0FFNDg7MTEwMCAxMTc1IDExQkY7CitBRTQ5O0FFNDk7MTEwMCAxMTc1IDExQzA7QUU0OTsxMTAwIDExNzUgMTFDMDsKK0FFNEE7QUU0QTsxMTAwIDExNzUgMTFDMTtBRTRBOzExMDAgMTE3NSAxMUMxOworQUU0QjtBRTRCOzExMDAgMTE3NSAxMUMyO0FFNEI7MTEwMCAxMTc1IDExQzI7CitBRTRDO0FFNEM7MTEwMSAxMTYxO0FFNEM7MTEwMSAxMTYxOworQUU0RDtBRTREOzExMDEgMTE2MSAxMUE4O0FFNEQ7MTEwMSAxMTYxIDExQTg7CitBRTRFO0FFNEU7MTEwMSAxMTYxIDExQTk7QUU0RTsxMTAxIDExNjEgMTFBOTsKK0FFNEY7QUU0RjsxMTAxIDExNjEgMTFBQTtBRTRGOzExMDEgMTE2MSAxMUFBOworQUU1MDtBRTUwOzExMDEgMTE2MSAxMUFCO0FFNTA7MTEwMSAxMTYxIDExQUI7CitBRTUxO0FFNTE7MTEwMSAxMTYxIDExQUM7QUU1MTsxMTAxIDExNjEgMTFBQzsKK0FFNTI7QUU1MjsxMTAxIDExNjEgMTFBRDtBRTUyOzExMDEgMTE2MSAxMUFEOworQUU1MztBRTUzOzExMDEgMTE2MSAxMUFFO0FFNTM7MTEwMSAxMTYxIDExQUU7CitBRTU0O0FFNTQ7MTEwMSAxMTYxIDExQUY7QUU1NDsxMTAxIDExNjEgMTFBRjsKK0FFNTU7QUU1NTsxMTAxIDExNjEgMTFCMDtBRTU1OzExMDEgMTE2MSAxMUIwOworQUU1NjtBRTU2OzExMDEgMTE2MSAxMUIxO0FFNTY7MTEwMSAxMTYxIDExQjE7CitBRTU3O0FFNTc7MTEwMSAxMTYxIDExQjI7QUU1NzsxMTAxIDExNjEgMTFCMjsKK0FFNTg7QUU1ODsxMTAxIDExNjEgMTFCMztBRTU4OzExMDEgMTE2MSAxMUIzOworQUU1OTtBRTU5OzExMDEgMTE2MSAxMUI0O0FFNTk7MTEwMSAxMTYxIDExQjQ7CitBRTVBO0FFNUE7MTEwMSAxMTYxIDExQjU7QUU1QTsxMTAxIDExNjEgMTFCNTsKK0FFNUI7QUU1QjsxMTAxIDExNjEgMTFCNjtBRTVCOzExMDEgMTE2MSAxMUI2OworQUU1QztBRTVDOzExMDEgMTE2MSAxMUI3O0FFNUM7MTEwMSAxMTYxIDExQjc7CitBRTVEO0FFNUQ7MTEwMSAxMTYxIDExQjg7QUU1RDsxMTAxIDExNjEgMTFCODsKK0FFNUU7QUU1RTsxMTAxIDExNjEgMTFCOTtBRTVFOzExMDEgMTE2MSAxMUI5OworQUU1RjtBRTVGOzExMDEgMTE2MSAxMUJBO0FFNUY7MTEwMSAxMTYxIDExQkE7CitBRTYwO0FFNjA7MTEwMSAxMTYxIDExQkI7QUU2MDsxMTAxIDExNjEgMTFCQjsKK0FFNjE7QUU2MTsxMTAxIDExNjEgMTFCQztBRTYxOzExMDEgMTE2MSAxMUJDOworQUU2MjtBRTYyOzExMDEgMTE2MSAxMUJEO0FFNjI7MTEwMSAxMTYxIDExQkQ7CitBRTYzO0FFNjM7MTEwMSAxMTYxIDExQkU7QUU2MzsxMTAxIDExNjEgMTFCRTsKK0FFNjQ7QUU2NDsxMTAxIDExNjEgMTFCRjtBRTY0OzExMDEgMTE2MSAxMUJGOworQUU2NTtBRTY1OzExMDEgMTE2MSAxMUMwO0FFNjU7MTEwMSAxMTYxIDExQzA7CitBRTY2O0FFNjY7MTEwMSAxMTYxIDExQzE7QUU2NjsxMTAxIDExNjEgMTFDMTsKK0FFNjc7QUU2NzsxMTAxIDExNjEgMTFDMjtBRTY3OzExMDEgMTE2MSAxMUMyOworQUU2ODtBRTY4OzExMDEgMTE2MjtBRTY4OzExMDEgMTE2MjsKK0FFNjk7QUU2OTsxMTAxIDExNjIgMTFBODtBRTY5OzExMDEgMTE2MiAxMUE4OworQUU2QTtBRTZBOzExMDEgMTE2MiAxMUE5O0FFNkE7MTEwMSAxMTYyIDExQTk7CitBRTZCO0FFNkI7MTEwMSAxMTYyIDExQUE7QUU2QjsxMTAxIDExNjIgMTFBQTsKK0FFNkM7QUU2QzsxMTAxIDExNjIgMTFBQjtBRTZDOzExMDEgMTE2MiAxMUFCOworQUU2RDtBRTZEOzExMDEgMTE2MiAxMUFDO0FFNkQ7MTEwMSAxMTYyIDExQUM7CitBRTZFO0FFNkU7MTEwMSAxMTYyIDExQUQ7QUU2RTsxMTAxIDExNjIgMTFBRDsKK0FFNkY7QUU2RjsxMTAxIDExNjIgMTFBRTtBRTZGOzExMDEgMTE2MiAxMUFFOworQUU3MDtBRTcwOzExMDEgMTE2MiAxMUFGO0FFNzA7MTEwMSAxMTYyIDExQUY7CitBRTcxO0FFNzE7MTEwMSAxMTYyIDExQjA7QUU3MTsxMTAxIDExNjIgMTFCMDsKK0FFNzI7QUU3MjsxMTAxIDExNjIgMTFCMTtBRTcyOzExMDEgMTE2MiAxMUIxOworQUU3MztBRTczOzExMDEgMTE2MiAxMUIyO0FFNzM7MTEwMSAxMTYyIDExQjI7CitBRTc0O0FFNzQ7MTEwMSAxMTYyIDExQjM7QUU3NDsxMTAxIDExNjIgMTFCMzsKK0FFNzU7QUU3NTsxMTAxIDExNjIgMTFCNDtBRTc1OzExMDEgMTE2MiAxMUI0OworQUU3NjtBRTc2OzExMDEgMTE2MiAxMUI1O0FFNzY7MTEwMSAxMTYyIDExQjU7CitBRTc3O0FFNzc7MTEwMSAxMTYyIDExQjY7QUU3NzsxMTAxIDExNjIgMTFCNjsKK0FFNzg7QUU3ODsxMTAxIDExNjIgMTFCNztBRTc4OzExMDEgMTE2MiAxMUI3OworQUU3OTtBRTc5OzExMDEgMTE2MiAxMUI4O0FFNzk7MTEwMSAxMTYyIDExQjg7CitBRTdBO0FFN0E7MTEwMSAxMTYyIDExQjk7QUU3QTsxMTAxIDExNjIgMTFCOTsKK0FFN0I7QUU3QjsxMTAxIDExNjIgMTFCQTtBRTdCOzExMDEgMTE2MiAxMUJBOworQUU3QztBRTdDOzExMDEgMTE2MiAxMUJCO0FFN0M7MTEwMSAxMTYyIDExQkI7CitBRTdEO0FFN0Q7MTEwMSAxMTYyIDExQkM7QUU3RDsxMTAxIDExNjIgMTFCQzsKK0FFN0U7QUU3RTsxMTAxIDExNjIgMTFCRDtBRTdFOzExMDEgMTE2MiAxMUJEOworQUU3RjtBRTdGOzExMDEgMTE2MiAxMUJFO0FFN0Y7MTEwMSAxMTYyIDExQkU7CitBRTgwO0FFODA7MTEwMSAxMTYyIDExQkY7QUU4MDsxMTAxIDExNjIgMTFCRjsKK0FFODE7QUU4MTsxMTAxIDExNjIgMTFDMDtBRTgxOzExMDEgMTE2MiAxMUMwOworQUU4MjtBRTgyOzExMDEgMTE2MiAxMUMxO0FFODI7MTEwMSAxMTYyIDExQzE7CitBRTgzO0FFODM7MTEwMSAxMTYyIDExQzI7QUU4MzsxMTAxIDExNjIgMTFDMjsKK0FFODQ7QUU4NDsxMTAxIDExNjM7QUU4NDsxMTAxIDExNjM7CitBRTg1O0FFODU7MTEwMSAxMTYzIDExQTg7QUU4NTsxMTAxIDExNjMgMTFBODsKK0FFODY7QUU4NjsxMTAxIDExNjMgMTFBOTtBRTg2OzExMDEgMTE2MyAxMUE5OworQUU4NztBRTg3OzExMDEgMTE2MyAxMUFBO0FFODc7MTEwMSAxMTYzIDExQUE7CitBRTg4O0FFODg7MTEwMSAxMTYzIDExQUI7QUU4ODsxMTAxIDExNjMgMTFBQjsKK0FFODk7QUU4OTsxMTAxIDExNjMgMTFBQztBRTg5OzExMDEgMTE2MyAxMUFDOworQUU4QTtBRThBOzExMDEgMTE2MyAxMUFEO0FFOEE7MTEwMSAxMTYzIDExQUQ7CitBRThCO0FFOEI7MTEwMSAxMTYzIDExQUU7QUU4QjsxMTAxIDExNjMgMTFBRTsKK0FFOEM7QUU4QzsxMTAxIDExNjMgMTFBRjtBRThDOzExMDEgMTE2MyAxMUFGOworQUU4RDtBRThEOzExMDEgMTE2MyAxMUIwO0FFOEQ7MTEwMSAxMTYzIDExQjA7CitBRThFO0FFOEU7MTEwMSAxMTYzIDExQjE7QUU4RTsxMTAxIDExNjMgMTFCMTsKK0FFOEY7QUU4RjsxMTAxIDExNjMgMTFCMjtBRThGOzExMDEgMTE2MyAxMUIyOworQUU5MDtBRTkwOzExMDEgMTE2MyAxMUIzO0FFOTA7MTEwMSAxMTYzIDExQjM7CitBRTkxO0FFOTE7MTEwMSAxMTYzIDExQjQ7QUU5MTsxMTAxIDExNjMgMTFCNDsKK0FFOTI7QUU5MjsxMTAxIDExNjMgMTFCNTtBRTkyOzExMDEgMTE2MyAxMUI1OworQUU5MztBRTkzOzExMDEgMTE2MyAxMUI2O0FFOTM7MTEwMSAxMTYzIDExQjY7CitBRTk0O0FFOTQ7MTEwMSAxMTYzIDExQjc7QUU5NDsxMTAxIDExNjMgMTFCNzsKK0FFOTU7QUU5NTsxMTAxIDExNjMgMTFCODtBRTk1OzExMDEgMTE2MyAxMUI4OworQUU5NjtBRTk2OzExMDEgMTE2MyAxMUI5O0FFOTY7MTEwMSAxMTYzIDExQjk7CitBRTk3O0FFOTc7MTEwMSAxMTYzIDExQkE7QUU5NzsxMTAxIDExNjMgMTFCQTsKK0FFOTg7QUU5ODsxMTAxIDExNjMgMTFCQjtBRTk4OzExMDEgMTE2MyAxMUJCOworQUU5OTtBRTk5OzExMDEgMTE2MyAxMUJDO0FFOTk7MTEwMSAxMTYzIDExQkM7CitBRTlBO0FFOUE7MTEwMSAxMTYzIDExQkQ7QUU5QTsxMTAxIDExNjMgMTFCRDsKK0FFOUI7QUU5QjsxMTAxIDExNjMgMTFCRTtBRTlCOzExMDEgMTE2MyAxMUJFOworQUU5QztBRTlDOzExMDEgMTE2MyAxMUJGO0FFOUM7MTEwMSAxMTYzIDExQkY7CitBRTlEO0FFOUQ7MTEwMSAxMTYzIDExQzA7QUU5RDsxMTAxIDExNjMgMTFDMDsKK0FFOUU7QUU5RTsxMTAxIDExNjMgMTFDMTtBRTlFOzExMDEgMTE2MyAxMUMxOworQUU5RjtBRTlGOzExMDEgMTE2MyAxMUMyO0FFOUY7MTEwMSAxMTYzIDExQzI7CitBRUEwO0FFQTA7MTEwMSAxMTY0O0FFQTA7MTEwMSAxMTY0OworQUVBMTtBRUExOzExMDEgMTE2NCAxMUE4O0FFQTE7MTEwMSAxMTY0IDExQTg7CitBRUEyO0FFQTI7MTEwMSAxMTY0IDExQTk7QUVBMjsxMTAxIDExNjQgMTFBOTsKK0FFQTM7QUVBMzsxMTAxIDExNjQgMTFBQTtBRUEzOzExMDEgMTE2NCAxMUFBOworQUVBNDtBRUE0OzExMDEgMTE2NCAxMUFCO0FFQTQ7MTEwMSAxMTY0IDExQUI7CitBRUE1O0FFQTU7MTEwMSAxMTY0IDExQUM7QUVBNTsxMTAxIDExNjQgMTFBQzsKK0FFQTY7QUVBNjsxMTAxIDExNjQgMTFBRDtBRUE2OzExMDEgMTE2NCAxMUFEOworQUVBNztBRUE3OzExMDEgMTE2NCAxMUFFO0FFQTc7MTEwMSAxMTY0IDExQUU7CitBRUE4O0FFQTg7MTEwMSAxMTY0IDExQUY7QUVBODsxMTAxIDExNjQgMTFBRjsKK0FFQTk7QUVBOTsxMTAxIDExNjQgMTFCMDtBRUE5OzExMDEgMTE2NCAxMUIwOworQUVBQTtBRUFBOzExMDEgMTE2NCAxMUIxO0FFQUE7MTEwMSAxMTY0IDExQjE7CitBRUFCO0FFQUI7MTEwMSAxMTY0IDExQjI7QUVBQjsxMTAxIDExNjQgMTFCMjsKK0FFQUM7QUVBQzsxMTAxIDExNjQgMTFCMztBRUFDOzExMDEgMTE2NCAxMUIzOworQUVBRDtBRUFEOzExMDEgMTE2NCAxMUI0O0FFQUQ7MTEwMSAxMTY0IDExQjQ7CitBRUFFO0FFQUU7MTEwMSAxMTY0IDExQjU7QUVBRTsxMTAxIDExNjQgMTFCNTsKK0FFQUY7QUVBRjsxMTAxIDExNjQgMTFCNjtBRUFGOzExMDEgMTE2NCAxMUI2OworQUVCMDtBRUIwOzExMDEgMTE2NCAxMUI3O0FFQjA7MTEwMSAxMTY0IDExQjc7CitBRUIxO0FFQjE7MTEwMSAxMTY0IDExQjg7QUVCMTsxMTAxIDExNjQgMTFCODsKK0FFQjI7QUVCMjsxMTAxIDExNjQgMTFCOTtBRUIyOzExMDEgMTE2NCAxMUI5OworQUVCMztBRUIzOzExMDEgMTE2NCAxMUJBO0FFQjM7MTEwMSAxMTY0IDExQkE7CitBRUI0O0FFQjQ7MTEwMSAxMTY0IDExQkI7QUVCNDsxMTAxIDExNjQgMTFCQjsKK0FFQjU7QUVCNTsxMTAxIDExNjQgMTFCQztBRUI1OzExMDEgMTE2NCAxMUJDOworQUVCNjtBRUI2OzExMDEgMTE2NCAxMUJEO0FFQjY7MTEwMSAxMTY0IDExQkQ7CitBRUI3O0FFQjc7MTEwMSAxMTY0IDExQkU7QUVCNzsxMTAxIDExNjQgMTFCRTsKK0FFQjg7QUVCODsxMTAxIDExNjQgMTFCRjtBRUI4OzExMDEgMTE2NCAxMUJGOworQUVCOTtBRUI5OzExMDEgMTE2NCAxMUMwO0FFQjk7MTEwMSAxMTY0IDExQzA7CitBRUJBO0FFQkE7MTEwMSAxMTY0IDExQzE7QUVCQTsxMTAxIDExNjQgMTFDMTsKK0FFQkI7QUVCQjsxMTAxIDExNjQgMTFDMjtBRUJCOzExMDEgMTE2NCAxMUMyOworQUVCQztBRUJDOzExMDEgMTE2NTtBRUJDOzExMDEgMTE2NTsKK0FFQkQ7QUVCRDsxMTAxIDExNjUgMTFBODtBRUJEOzExMDEgMTE2NSAxMUE4OworQUVCRTtBRUJFOzExMDEgMTE2NSAxMUE5O0FFQkU7MTEwMSAxMTY1IDExQTk7CitBRUJGO0FFQkY7MTEwMSAxMTY1IDExQUE7QUVCRjsxMTAxIDExNjUgMTFBQTsKK0FFQzA7QUVDMDsxMTAxIDExNjUgMTFBQjtBRUMwOzExMDEgMTE2NSAxMUFCOworQUVDMTtBRUMxOzExMDEgMTE2NSAxMUFDO0FFQzE7MTEwMSAxMTY1IDExQUM7CitBRUMyO0FFQzI7MTEwMSAxMTY1IDExQUQ7QUVDMjsxMTAxIDExNjUgMTFBRDsKK0FFQzM7QUVDMzsxMTAxIDExNjUgMTFBRTtBRUMzOzExMDEgMTE2NSAxMUFFOworQUVDNDtBRUM0OzExMDEgMTE2NSAxMUFGO0FFQzQ7MTEwMSAxMTY1IDExQUY7CitBRUM1O0FFQzU7MTEwMSAxMTY1IDExQjA7QUVDNTsxMTAxIDExNjUgMTFCMDsKK0FFQzY7QUVDNjsxMTAxIDExNjUgMTFCMTtBRUM2OzExMDEgMTE2NSAxMUIxOworQUVDNztBRUM3OzExMDEgMTE2NSAxMUIyO0FFQzc7MTEwMSAxMTY1IDExQjI7CitBRUM4O0FFQzg7MTEwMSAxMTY1IDExQjM7QUVDODsxMTAxIDExNjUgMTFCMzsKK0FFQzk7QUVDOTsxMTAxIDExNjUgMTFCNDtBRUM5OzExMDEgMTE2NSAxMUI0OworQUVDQTtBRUNBOzExMDEgMTE2NSAxMUI1O0FFQ0E7MTEwMSAxMTY1IDExQjU7CitBRUNCO0FFQ0I7MTEwMSAxMTY1IDExQjY7QUVDQjsxMTAxIDExNjUgMTFCNjsKK0FFQ0M7QUVDQzsxMTAxIDExNjUgMTFCNztBRUNDOzExMDEgMTE2NSAxMUI3OworQUVDRDtBRUNEOzExMDEgMTE2NSAxMUI4O0FFQ0Q7MTEwMSAxMTY1IDExQjg7CitBRUNFO0FFQ0U7MTEwMSAxMTY1IDExQjk7QUVDRTsxMTAxIDExNjUgMTFCOTsKK0FFQ0Y7QUVDRjsxMTAxIDExNjUgMTFCQTtBRUNGOzExMDEgMTE2NSAxMUJBOworQUVEMDtBRUQwOzExMDEgMTE2NSAxMUJCO0FFRDA7MTEwMSAxMTY1IDExQkI7CitBRUQxO0FFRDE7MTEwMSAxMTY1IDExQkM7QUVEMTsxMTAxIDExNjUgMTFCQzsKK0FFRDI7QUVEMjsxMTAxIDExNjUgMTFCRDtBRUQyOzExMDEgMTE2NSAxMUJEOworQUVEMztBRUQzOzExMDEgMTE2NSAxMUJFO0FFRDM7MTEwMSAxMTY1IDExQkU7CitBRUQ0O0FFRDQ7MTEwMSAxMTY1IDExQkY7QUVENDsxMTAxIDExNjUgMTFCRjsKK0FFRDU7QUVENTsxMTAxIDExNjUgMTFDMDtBRUQ1OzExMDEgMTE2NSAxMUMwOworQUVENjtBRUQ2OzExMDEgMTE2NSAxMUMxO0FFRDY7MTEwMSAxMTY1IDExQzE7CitBRUQ3O0FFRDc7MTEwMSAxMTY1IDExQzI7QUVENzsxMTAxIDExNjUgMTFDMjsKK0FFRDg7QUVEODsxMTAxIDExNjY7QUVEODsxMTAxIDExNjY7CitBRUQ5O0FFRDk7MTEwMSAxMTY2IDExQTg7QUVEOTsxMTAxIDExNjYgMTFBODsKK0FFREE7QUVEQTsxMTAxIDExNjYgMTFBOTtBRURBOzExMDEgMTE2NiAxMUE5OworQUVEQjtBRURCOzExMDEgMTE2NiAxMUFBO0FFREI7MTEwMSAxMTY2IDExQUE7CitBRURDO0FFREM7MTEwMSAxMTY2IDExQUI7QUVEQzsxMTAxIDExNjYgMTFBQjsKK0FFREQ7QUVERDsxMTAxIDExNjYgMTFBQztBRUREOzExMDEgMTE2NiAxMUFDOworQUVERTtBRURFOzExMDEgMTE2NiAxMUFEO0FFREU7MTEwMSAxMTY2IDExQUQ7CitBRURGO0FFREY7MTEwMSAxMTY2IDExQUU7QUVERjsxMTAxIDExNjYgMTFBRTsKK0FFRTA7QUVFMDsxMTAxIDExNjYgMTFBRjtBRUUwOzExMDEgMTE2NiAxMUFGOworQUVFMTtBRUUxOzExMDEgMTE2NiAxMUIwO0FFRTE7MTEwMSAxMTY2IDExQjA7CitBRUUyO0FFRTI7MTEwMSAxMTY2IDExQjE7QUVFMjsxMTAxIDExNjYgMTFCMTsKK0FFRTM7QUVFMzsxMTAxIDExNjYgMTFCMjtBRUUzOzExMDEgMTE2NiAxMUIyOworQUVFNDtBRUU0OzExMDEgMTE2NiAxMUIzO0FFRTQ7MTEwMSAxMTY2IDExQjM7CitBRUU1O0FFRTU7MTEwMSAxMTY2IDExQjQ7QUVFNTsxMTAxIDExNjYgMTFCNDsKK0FFRTY7QUVFNjsxMTAxIDExNjYgMTFCNTtBRUU2OzExMDEgMTE2NiAxMUI1OworQUVFNztBRUU3OzExMDEgMTE2NiAxMUI2O0FFRTc7MTEwMSAxMTY2IDExQjY7CitBRUU4O0FFRTg7MTEwMSAxMTY2IDExQjc7QUVFODsxMTAxIDExNjYgMTFCNzsKK0FFRTk7QUVFOTsxMTAxIDExNjYgMTFCODtBRUU5OzExMDEgMTE2NiAxMUI4OworQUVFQTtBRUVBOzExMDEgMTE2NiAxMUI5O0FFRUE7MTEwMSAxMTY2IDExQjk7CitBRUVCO0FFRUI7MTEwMSAxMTY2IDExQkE7QUVFQjsxMTAxIDExNjYgMTFCQTsKK0FFRUM7QUVFQzsxMTAxIDExNjYgMTFCQjtBRUVDOzExMDEgMTE2NiAxMUJCOworQUVFRDtBRUVEOzExMDEgMTE2NiAxMUJDO0FFRUQ7MTEwMSAxMTY2IDExQkM7CitBRUVFO0FFRUU7MTEwMSAxMTY2IDExQkQ7QUVFRTsxMTAxIDExNjYgMTFCRDsKK0FFRUY7QUVFRjsxMTAxIDExNjYgMTFCRTtBRUVGOzExMDEgMTE2NiAxMUJFOworQUVGMDtBRUYwOzExMDEgMTE2NiAxMUJGO0FFRjA7MTEwMSAxMTY2IDExQkY7CitBRUYxO0FFRjE7MTEwMSAxMTY2IDExQzA7QUVGMTsxMTAxIDExNjYgMTFDMDsKK0FFRjI7QUVGMjsxMTAxIDExNjYgMTFDMTtBRUYyOzExMDEgMTE2NiAxMUMxOworQUVGMztBRUYzOzExMDEgMTE2NiAxMUMyO0FFRjM7MTEwMSAxMTY2IDExQzI7CitBRUY0O0FFRjQ7MTEwMSAxMTY3O0FFRjQ7MTEwMSAxMTY3OworQUVGNTtBRUY1OzExMDEgMTE2NyAxMUE4O0FFRjU7MTEwMSAxMTY3IDExQTg7CitBRUY2O0FFRjY7MTEwMSAxMTY3IDExQTk7QUVGNjsxMTAxIDExNjcgMTFBOTsKK0FFRjc7QUVGNzsxMTAxIDExNjcgMTFBQTtBRUY3OzExMDEgMTE2NyAxMUFBOworQUVGODtBRUY4OzExMDEgMTE2NyAxMUFCO0FFRjg7MTEwMSAxMTY3IDExQUI7CitBRUY5O0FFRjk7MTEwMSAxMTY3IDExQUM7QUVGOTsxMTAxIDExNjcgMTFBQzsKK0FFRkE7QUVGQTsxMTAxIDExNjcgMTFBRDtBRUZBOzExMDEgMTE2NyAxMUFEOworQUVGQjtBRUZCOzExMDEgMTE2NyAxMUFFO0FFRkI7MTEwMSAxMTY3IDExQUU7CitBRUZDO0FFRkM7MTEwMSAxMTY3IDExQUY7QUVGQzsxMTAxIDExNjcgMTFBRjsKK0FFRkQ7QUVGRDsxMTAxIDExNjcgMTFCMDtBRUZEOzExMDEgMTE2NyAxMUIwOworQUVGRTtBRUZFOzExMDEgMTE2NyAxMUIxO0FFRkU7MTEwMSAxMTY3IDExQjE7CitBRUZGO0FFRkY7MTEwMSAxMTY3IDExQjI7QUVGRjsxMTAxIDExNjcgMTFCMjsKK0FGMDA7QUYwMDsxMTAxIDExNjcgMTFCMztBRjAwOzExMDEgMTE2NyAxMUIzOworQUYwMTtBRjAxOzExMDEgMTE2NyAxMUI0O0FGMDE7MTEwMSAxMTY3IDExQjQ7CitBRjAyO0FGMDI7MTEwMSAxMTY3IDExQjU7QUYwMjsxMTAxIDExNjcgMTFCNTsKK0FGMDM7QUYwMzsxMTAxIDExNjcgMTFCNjtBRjAzOzExMDEgMTE2NyAxMUI2OworQUYwNDtBRjA0OzExMDEgMTE2NyAxMUI3O0FGMDQ7MTEwMSAxMTY3IDExQjc7CitBRjA1O0FGMDU7MTEwMSAxMTY3IDExQjg7QUYwNTsxMTAxIDExNjcgMTFCODsKK0FGMDY7QUYwNjsxMTAxIDExNjcgMTFCOTtBRjA2OzExMDEgMTE2NyAxMUI5OworQUYwNztBRjA3OzExMDEgMTE2NyAxMUJBO0FGMDc7MTEwMSAxMTY3IDExQkE7CitBRjA4O0FGMDg7MTEwMSAxMTY3IDExQkI7QUYwODsxMTAxIDExNjcgMTFCQjsKK0FGMDk7QUYwOTsxMTAxIDExNjcgMTFCQztBRjA5OzExMDEgMTE2NyAxMUJDOworQUYwQTtBRjBBOzExMDEgMTE2NyAxMUJEO0FGMEE7MTEwMSAxMTY3IDExQkQ7CitBRjBCO0FGMEI7MTEwMSAxMTY3IDExQkU7QUYwQjsxMTAxIDExNjcgMTFCRTsKK0FGMEM7QUYwQzsxMTAxIDExNjcgMTFCRjtBRjBDOzExMDEgMTE2NyAxMUJGOworQUYwRDtBRjBEOzExMDEgMTE2NyAxMUMwO0FGMEQ7MTEwMSAxMTY3IDExQzA7CitBRjBFO0FGMEU7MTEwMSAxMTY3IDExQzE7QUYwRTsxMTAxIDExNjcgMTFDMTsKK0FGMEY7QUYwRjsxMTAxIDExNjcgMTFDMjtBRjBGOzExMDEgMTE2NyAxMUMyOworQUYxMDtBRjEwOzExMDEgMTE2ODtBRjEwOzExMDEgMTE2ODsKK0FGMTE7QUYxMTsxMTAxIDExNjggMTFBODtBRjExOzExMDEgMTE2OCAxMUE4OworQUYxMjtBRjEyOzExMDEgMTE2OCAxMUE5O0FGMTI7MTEwMSAxMTY4IDExQTk7CitBRjEzO0FGMTM7MTEwMSAxMTY4IDExQUE7QUYxMzsxMTAxIDExNjggMTFBQTsKK0FGMTQ7QUYxNDsxMTAxIDExNjggMTFBQjtBRjE0OzExMDEgMTE2OCAxMUFCOworQUYxNTtBRjE1OzExMDEgMTE2OCAxMUFDO0FGMTU7MTEwMSAxMTY4IDExQUM7CitBRjE2O0FGMTY7MTEwMSAxMTY4IDExQUQ7QUYxNjsxMTAxIDExNjggMTFBRDsKK0FGMTc7QUYxNzsxMTAxIDExNjggMTFBRTtBRjE3OzExMDEgMTE2OCAxMUFFOworQUYxODtBRjE4OzExMDEgMTE2OCAxMUFGO0FGMTg7MTEwMSAxMTY4IDExQUY7CitBRjE5O0FGMTk7MTEwMSAxMTY4IDExQjA7QUYxOTsxMTAxIDExNjggMTFCMDsKK0FGMUE7QUYxQTsxMTAxIDExNjggMTFCMTtBRjFBOzExMDEgMTE2OCAxMUIxOworQUYxQjtBRjFCOzExMDEgMTE2OCAxMUIyO0FGMUI7MTEwMSAxMTY4IDExQjI7CitBRjFDO0FGMUM7MTEwMSAxMTY4IDExQjM7QUYxQzsxMTAxIDExNjggMTFCMzsKK0FGMUQ7QUYxRDsxMTAxIDExNjggMTFCNDtBRjFEOzExMDEgMTE2OCAxMUI0OworQUYxRTtBRjFFOzExMDEgMTE2OCAxMUI1O0FGMUU7MTEwMSAxMTY4IDExQjU7CitBRjFGO0FGMUY7MTEwMSAxMTY4IDExQjY7QUYxRjsxMTAxIDExNjggMTFCNjsKK0FGMjA7QUYyMDsxMTAxIDExNjggMTFCNztBRjIwOzExMDEgMTE2OCAxMUI3OworQUYyMTtBRjIxOzExMDEgMTE2OCAxMUI4O0FGMjE7MTEwMSAxMTY4IDExQjg7CitBRjIyO0FGMjI7MTEwMSAxMTY4IDExQjk7QUYyMjsxMTAxIDExNjggMTFCOTsKK0FGMjM7QUYyMzsxMTAxIDExNjggMTFCQTtBRjIzOzExMDEgMTE2OCAxMUJBOworQUYyNDtBRjI0OzExMDEgMTE2OCAxMUJCO0FGMjQ7MTEwMSAxMTY4IDExQkI7CitBRjI1O0FGMjU7MTEwMSAxMTY4IDExQkM7QUYyNTsxMTAxIDExNjggMTFCQzsKK0FGMjY7QUYyNjsxMTAxIDExNjggMTFCRDtBRjI2OzExMDEgMTE2OCAxMUJEOworQUYyNztBRjI3OzExMDEgMTE2OCAxMUJFO0FGMjc7MTEwMSAxMTY4IDExQkU7CitBRjI4O0FGMjg7MTEwMSAxMTY4IDExQkY7QUYyODsxMTAxIDExNjggMTFCRjsKK0FGMjk7QUYyOTsxMTAxIDExNjggMTFDMDtBRjI5OzExMDEgMTE2OCAxMUMwOworQUYyQTtBRjJBOzExMDEgMTE2OCAxMUMxO0FGMkE7MTEwMSAxMTY4IDExQzE7CitBRjJCO0FGMkI7MTEwMSAxMTY4IDExQzI7QUYyQjsxMTAxIDExNjggMTFDMjsKK0FGMkM7QUYyQzsxMTAxIDExNjk7QUYyQzsxMTAxIDExNjk7CitBRjJEO0FGMkQ7MTEwMSAxMTY5IDExQTg7QUYyRDsxMTAxIDExNjkgMTFBODsKK0FGMkU7QUYyRTsxMTAxIDExNjkgMTFBOTtBRjJFOzExMDEgMTE2OSAxMUE5OworQUYyRjtBRjJGOzExMDEgMTE2OSAxMUFBO0FGMkY7MTEwMSAxMTY5IDExQUE7CitBRjMwO0FGMzA7MTEwMSAxMTY5IDExQUI7QUYzMDsxMTAxIDExNjkgMTFBQjsKK0FGMzE7QUYzMTsxMTAxIDExNjkgMTFBQztBRjMxOzExMDEgMTE2OSAxMUFDOworQUYzMjtBRjMyOzExMDEgMTE2OSAxMUFEO0FGMzI7MTEwMSAxMTY5IDExQUQ7CitBRjMzO0FGMzM7MTEwMSAxMTY5IDExQUU7QUYzMzsxMTAxIDExNjkgMTFBRTsKK0FGMzQ7QUYzNDsxMTAxIDExNjkgMTFBRjtBRjM0OzExMDEgMTE2OSAxMUFGOworQUYzNTtBRjM1OzExMDEgMTE2OSAxMUIwO0FGMzU7MTEwMSAxMTY5IDExQjA7CitBRjM2O0FGMzY7MTEwMSAxMTY5IDExQjE7QUYzNjsxMTAxIDExNjkgMTFCMTsKK0FGMzc7QUYzNzsxMTAxIDExNjkgMTFCMjtBRjM3OzExMDEgMTE2OSAxMUIyOworQUYzODtBRjM4OzExMDEgMTE2OSAxMUIzO0FGMzg7MTEwMSAxMTY5IDExQjM7CitBRjM5O0FGMzk7MTEwMSAxMTY5IDExQjQ7QUYzOTsxMTAxIDExNjkgMTFCNDsKK0FGM0E7QUYzQTsxMTAxIDExNjkgMTFCNTtBRjNBOzExMDEgMTE2OSAxMUI1OworQUYzQjtBRjNCOzExMDEgMTE2OSAxMUI2O0FGM0I7MTEwMSAxMTY5IDExQjY7CitBRjNDO0FGM0M7MTEwMSAxMTY5IDExQjc7QUYzQzsxMTAxIDExNjkgMTFCNzsKK0FGM0Q7QUYzRDsxMTAxIDExNjkgMTFCODtBRjNEOzExMDEgMTE2OSAxMUI4OworQUYzRTtBRjNFOzExMDEgMTE2OSAxMUI5O0FGM0U7MTEwMSAxMTY5IDExQjk7CitBRjNGO0FGM0Y7MTEwMSAxMTY5IDExQkE7QUYzRjsxMTAxIDExNjkgMTFCQTsKK0FGNDA7QUY0MDsxMTAxIDExNjkgMTFCQjtBRjQwOzExMDEgMTE2OSAxMUJCOworQUY0MTtBRjQxOzExMDEgMTE2OSAxMUJDO0FGNDE7MTEwMSAxMTY5IDExQkM7CitBRjQyO0FGNDI7MTEwMSAxMTY5IDExQkQ7QUY0MjsxMTAxIDExNjkgMTFCRDsKK0FGNDM7QUY0MzsxMTAxIDExNjkgMTFCRTtBRjQzOzExMDEgMTE2OSAxMUJFOworQUY0NDtBRjQ0OzExMDEgMTE2OSAxMUJGO0FGNDQ7MTEwMSAxMTY5IDExQkY7CitBRjQ1O0FGNDU7MTEwMSAxMTY5IDExQzA7QUY0NTsxMTAxIDExNjkgMTFDMDsKK0FGNDY7QUY0NjsxMTAxIDExNjkgMTFDMTtBRjQ2OzExMDEgMTE2OSAxMUMxOworQUY0NztBRjQ3OzExMDEgMTE2OSAxMUMyO0FGNDc7MTEwMSAxMTY5IDExQzI7CitBRjQ4O0FGNDg7MTEwMSAxMTZBO0FGNDg7MTEwMSAxMTZBOworQUY0OTtBRjQ5OzExMDEgMTE2QSAxMUE4O0FGNDk7MTEwMSAxMTZBIDExQTg7CitBRjRBO0FGNEE7MTEwMSAxMTZBIDExQTk7QUY0QTsxMTAxIDExNkEgMTFBOTsKK0FGNEI7QUY0QjsxMTAxIDExNkEgMTFBQTtBRjRCOzExMDEgMTE2QSAxMUFBOworQUY0QztBRjRDOzExMDEgMTE2QSAxMUFCO0FGNEM7MTEwMSAxMTZBIDExQUI7CitBRjREO0FGNEQ7MTEwMSAxMTZBIDExQUM7QUY0RDsxMTAxIDExNkEgMTFBQzsKK0FGNEU7QUY0RTsxMTAxIDExNkEgMTFBRDtBRjRFOzExMDEgMTE2QSAxMUFEOworQUY0RjtBRjRGOzExMDEgMTE2QSAxMUFFO0FGNEY7MTEwMSAxMTZBIDExQUU7CitBRjUwO0FGNTA7MTEwMSAxMTZBIDExQUY7QUY1MDsxMTAxIDExNkEgMTFBRjsKK0FGNTE7QUY1MTsxMTAxIDExNkEgMTFCMDtBRjUxOzExMDEgMTE2QSAxMUIwOworQUY1MjtBRjUyOzExMDEgMTE2QSAxMUIxO0FGNTI7MTEwMSAxMTZBIDExQjE7CitBRjUzO0FGNTM7MTEwMSAxMTZBIDExQjI7QUY1MzsxMTAxIDExNkEgMTFCMjsKK0FGNTQ7QUY1NDsxMTAxIDExNkEgMTFCMztBRjU0OzExMDEgMTE2QSAxMUIzOworQUY1NTtBRjU1OzExMDEgMTE2QSAxMUI0O0FGNTU7MTEwMSAxMTZBIDExQjQ7CitBRjU2O0FGNTY7MTEwMSAxMTZBIDExQjU7QUY1NjsxMTAxIDExNkEgMTFCNTsKK0FGNTc7QUY1NzsxMTAxIDExNkEgMTFCNjtBRjU3OzExMDEgMTE2QSAxMUI2OworQUY1ODtBRjU4OzExMDEgMTE2QSAxMUI3O0FGNTg7MTEwMSAxMTZBIDExQjc7CitBRjU5O0FGNTk7MTEwMSAxMTZBIDExQjg7QUY1OTsxMTAxIDExNkEgMTFCODsKK0FGNUE7QUY1QTsxMTAxIDExNkEgMTFCOTtBRjVBOzExMDEgMTE2QSAxMUI5OworQUY1QjtBRjVCOzExMDEgMTE2QSAxMUJBO0FGNUI7MTEwMSAxMTZBIDExQkE7CitBRjVDO0FGNUM7MTEwMSAxMTZBIDExQkI7QUY1QzsxMTAxIDExNkEgMTFCQjsKK0FGNUQ7QUY1RDsxMTAxIDExNkEgMTFCQztBRjVEOzExMDEgMTE2QSAxMUJDOworQUY1RTtBRjVFOzExMDEgMTE2QSAxMUJEO0FGNUU7MTEwMSAxMTZBIDExQkQ7CitBRjVGO0FGNUY7MTEwMSAxMTZBIDExQkU7QUY1RjsxMTAxIDExNkEgMTFCRTsKK0FGNjA7QUY2MDsxMTAxIDExNkEgMTFCRjtBRjYwOzExMDEgMTE2QSAxMUJGOworQUY2MTtBRjYxOzExMDEgMTE2QSAxMUMwO0FGNjE7MTEwMSAxMTZBIDExQzA7CitBRjYyO0FGNjI7MTEwMSAxMTZBIDExQzE7QUY2MjsxMTAxIDExNkEgMTFDMTsKK0FGNjM7QUY2MzsxMTAxIDExNkEgMTFDMjtBRjYzOzExMDEgMTE2QSAxMUMyOworQUY2NDtBRjY0OzExMDEgMTE2QjtBRjY0OzExMDEgMTE2QjsKK0FGNjU7QUY2NTsxMTAxIDExNkIgMTFBODtBRjY1OzExMDEgMTE2QiAxMUE4OworQUY2NjtBRjY2OzExMDEgMTE2QiAxMUE5O0FGNjY7MTEwMSAxMTZCIDExQTk7CitBRjY3O0FGNjc7MTEwMSAxMTZCIDExQUE7QUY2NzsxMTAxIDExNkIgMTFBQTsKK0FGNjg7QUY2ODsxMTAxIDExNkIgMTFBQjtBRjY4OzExMDEgMTE2QiAxMUFCOworQUY2OTtBRjY5OzExMDEgMTE2QiAxMUFDO0FGNjk7MTEwMSAxMTZCIDExQUM7CitBRjZBO0FGNkE7MTEwMSAxMTZCIDExQUQ7QUY2QTsxMTAxIDExNkIgMTFBRDsKK0FGNkI7QUY2QjsxMTAxIDExNkIgMTFBRTtBRjZCOzExMDEgMTE2QiAxMUFFOworQUY2QztBRjZDOzExMDEgMTE2QiAxMUFGO0FGNkM7MTEwMSAxMTZCIDExQUY7CitBRjZEO0FGNkQ7MTEwMSAxMTZCIDExQjA7QUY2RDsxMTAxIDExNkIgMTFCMDsKK0FGNkU7QUY2RTsxMTAxIDExNkIgMTFCMTtBRjZFOzExMDEgMTE2QiAxMUIxOworQUY2RjtBRjZGOzExMDEgMTE2QiAxMUIyO0FGNkY7MTEwMSAxMTZCIDExQjI7CitBRjcwO0FGNzA7MTEwMSAxMTZCIDExQjM7QUY3MDsxMTAxIDExNkIgMTFCMzsKK0FGNzE7QUY3MTsxMTAxIDExNkIgMTFCNDtBRjcxOzExMDEgMTE2QiAxMUI0OworQUY3MjtBRjcyOzExMDEgMTE2QiAxMUI1O0FGNzI7MTEwMSAxMTZCIDExQjU7CitBRjczO0FGNzM7MTEwMSAxMTZCIDExQjY7QUY3MzsxMTAxIDExNkIgMTFCNjsKK0FGNzQ7QUY3NDsxMTAxIDExNkIgMTFCNztBRjc0OzExMDEgMTE2QiAxMUI3OworQUY3NTtBRjc1OzExMDEgMTE2QiAxMUI4O0FGNzU7MTEwMSAxMTZCIDExQjg7CitBRjc2O0FGNzY7MTEwMSAxMTZCIDExQjk7QUY3NjsxMTAxIDExNkIgMTFCOTsKK0FGNzc7QUY3NzsxMTAxIDExNkIgMTFCQTtBRjc3OzExMDEgMTE2QiAxMUJBOworQUY3ODtBRjc4OzExMDEgMTE2QiAxMUJCO0FGNzg7MTEwMSAxMTZCIDExQkI7CitBRjc5O0FGNzk7MTEwMSAxMTZCIDExQkM7QUY3OTsxMTAxIDExNkIgMTFCQzsKK0FGN0E7QUY3QTsxMTAxIDExNkIgMTFCRDtBRjdBOzExMDEgMTE2QiAxMUJEOworQUY3QjtBRjdCOzExMDEgMTE2QiAxMUJFO0FGN0I7MTEwMSAxMTZCIDExQkU7CitBRjdDO0FGN0M7MTEwMSAxMTZCIDExQkY7QUY3QzsxMTAxIDExNkIgMTFCRjsKK0FGN0Q7QUY3RDsxMTAxIDExNkIgMTFDMDtBRjdEOzExMDEgMTE2QiAxMUMwOworQUY3RTtBRjdFOzExMDEgMTE2QiAxMUMxO0FGN0U7MTEwMSAxMTZCIDExQzE7CitBRjdGO0FGN0Y7MTEwMSAxMTZCIDExQzI7QUY3RjsxMTAxIDExNkIgMTFDMjsKK0FGODA7QUY4MDsxMTAxIDExNkM7QUY4MDsxMTAxIDExNkM7CitBRjgxO0FGODE7MTEwMSAxMTZDIDExQTg7QUY4MTsxMTAxIDExNkMgMTFBODsKK0FGODI7QUY4MjsxMTAxIDExNkMgMTFBOTtBRjgyOzExMDEgMTE2QyAxMUE5OworQUY4MztBRjgzOzExMDEgMTE2QyAxMUFBO0FGODM7MTEwMSAxMTZDIDExQUE7CitBRjg0O0FGODQ7MTEwMSAxMTZDIDExQUI7QUY4NDsxMTAxIDExNkMgMTFBQjsKK0FGODU7QUY4NTsxMTAxIDExNkMgMTFBQztBRjg1OzExMDEgMTE2QyAxMUFDOworQUY4NjtBRjg2OzExMDEgMTE2QyAxMUFEO0FGODY7MTEwMSAxMTZDIDExQUQ7CitBRjg3O0FGODc7MTEwMSAxMTZDIDExQUU7QUY4NzsxMTAxIDExNkMgMTFBRTsKK0FGODg7QUY4ODsxMTAxIDExNkMgMTFBRjtBRjg4OzExMDEgMTE2QyAxMUFGOworQUY4OTtBRjg5OzExMDEgMTE2QyAxMUIwO0FGODk7MTEwMSAxMTZDIDExQjA7CitBRjhBO0FGOEE7MTEwMSAxMTZDIDExQjE7QUY4QTsxMTAxIDExNkMgMTFCMTsKK0FGOEI7QUY4QjsxMTAxIDExNkMgMTFCMjtBRjhCOzExMDEgMTE2QyAxMUIyOworQUY4QztBRjhDOzExMDEgMTE2QyAxMUIzO0FGOEM7MTEwMSAxMTZDIDExQjM7CitBRjhEO0FGOEQ7MTEwMSAxMTZDIDExQjQ7QUY4RDsxMTAxIDExNkMgMTFCNDsKK0FGOEU7QUY4RTsxMTAxIDExNkMgMTFCNTtBRjhFOzExMDEgMTE2QyAxMUI1OworQUY4RjtBRjhGOzExMDEgMTE2QyAxMUI2O0FGOEY7MTEwMSAxMTZDIDExQjY7CitBRjkwO0FGOTA7MTEwMSAxMTZDIDExQjc7QUY5MDsxMTAxIDExNkMgMTFCNzsKK0FGOTE7QUY5MTsxMTAxIDExNkMgMTFCODtBRjkxOzExMDEgMTE2QyAxMUI4OworQUY5MjtBRjkyOzExMDEgMTE2QyAxMUI5O0FGOTI7MTEwMSAxMTZDIDExQjk7CitBRjkzO0FGOTM7MTEwMSAxMTZDIDExQkE7QUY5MzsxMTAxIDExNkMgMTFCQTsKK0FGOTQ7QUY5NDsxMTAxIDExNkMgMTFCQjtBRjk0OzExMDEgMTE2QyAxMUJCOworQUY5NTtBRjk1OzExMDEgMTE2QyAxMUJDO0FGOTU7MTEwMSAxMTZDIDExQkM7CitBRjk2O0FGOTY7MTEwMSAxMTZDIDExQkQ7QUY5NjsxMTAxIDExNkMgMTFCRDsKK0FGOTc7QUY5NzsxMTAxIDExNkMgMTFCRTtBRjk3OzExMDEgMTE2QyAxMUJFOworQUY5ODtBRjk4OzExMDEgMTE2QyAxMUJGO0FGOTg7MTEwMSAxMTZDIDExQkY7CitBRjk5O0FGOTk7MTEwMSAxMTZDIDExQzA7QUY5OTsxMTAxIDExNkMgMTFDMDsKK0FGOUE7QUY5QTsxMTAxIDExNkMgMTFDMTtBRjlBOzExMDEgMTE2QyAxMUMxOworQUY5QjtBRjlCOzExMDEgMTE2QyAxMUMyO0FGOUI7MTEwMSAxMTZDIDExQzI7CitBRjlDO0FGOUM7MTEwMSAxMTZEO0FGOUM7MTEwMSAxMTZEOworQUY5RDtBRjlEOzExMDEgMTE2RCAxMUE4O0FGOUQ7MTEwMSAxMTZEIDExQTg7CitBRjlFO0FGOUU7MTEwMSAxMTZEIDExQTk7QUY5RTsxMTAxIDExNkQgMTFBOTsKK0FGOUY7QUY5RjsxMTAxIDExNkQgMTFBQTtBRjlGOzExMDEgMTE2RCAxMUFBOworQUZBMDtBRkEwOzExMDEgMTE2RCAxMUFCO0FGQTA7MTEwMSAxMTZEIDExQUI7CitBRkExO0FGQTE7MTEwMSAxMTZEIDExQUM7QUZBMTsxMTAxIDExNkQgMTFBQzsKK0FGQTI7QUZBMjsxMTAxIDExNkQgMTFBRDtBRkEyOzExMDEgMTE2RCAxMUFEOworQUZBMztBRkEzOzExMDEgMTE2RCAxMUFFO0FGQTM7MTEwMSAxMTZEIDExQUU7CitBRkE0O0FGQTQ7MTEwMSAxMTZEIDExQUY7QUZBNDsxMTAxIDExNkQgMTFBRjsKK0FGQTU7QUZBNTsxMTAxIDExNkQgMTFCMDtBRkE1OzExMDEgMTE2RCAxMUIwOworQUZBNjtBRkE2OzExMDEgMTE2RCAxMUIxO0FGQTY7MTEwMSAxMTZEIDExQjE7CitBRkE3O0FGQTc7MTEwMSAxMTZEIDExQjI7QUZBNzsxMTAxIDExNkQgMTFCMjsKK0FGQTg7QUZBODsxMTAxIDExNkQgMTFCMztBRkE4OzExMDEgMTE2RCAxMUIzOworQUZBOTtBRkE5OzExMDEgMTE2RCAxMUI0O0FGQTk7MTEwMSAxMTZEIDExQjQ7CitBRkFBO0FGQUE7MTEwMSAxMTZEIDExQjU7QUZBQTsxMTAxIDExNkQgMTFCNTsKK0FGQUI7QUZBQjsxMTAxIDExNkQgMTFCNjtBRkFCOzExMDEgMTE2RCAxMUI2OworQUZBQztBRkFDOzExMDEgMTE2RCAxMUI3O0FGQUM7MTEwMSAxMTZEIDExQjc7CitBRkFEO0FGQUQ7MTEwMSAxMTZEIDExQjg7QUZBRDsxMTAxIDExNkQgMTFCODsKK0FGQUU7QUZBRTsxMTAxIDExNkQgMTFCOTtBRkFFOzExMDEgMTE2RCAxMUI5OworQUZBRjtBRkFGOzExMDEgMTE2RCAxMUJBO0FGQUY7MTEwMSAxMTZEIDExQkE7CitBRkIwO0FGQjA7MTEwMSAxMTZEIDExQkI7QUZCMDsxMTAxIDExNkQgMTFCQjsKK0FGQjE7QUZCMTsxMTAxIDExNkQgMTFCQztBRkIxOzExMDEgMTE2RCAxMUJDOworQUZCMjtBRkIyOzExMDEgMTE2RCAxMUJEO0FGQjI7MTEwMSAxMTZEIDExQkQ7CitBRkIzO0FGQjM7MTEwMSAxMTZEIDExQkU7QUZCMzsxMTAxIDExNkQgMTFCRTsKK0FGQjQ7QUZCNDsxMTAxIDExNkQgMTFCRjtBRkI0OzExMDEgMTE2RCAxMUJGOworQUZCNTtBRkI1OzExMDEgMTE2RCAxMUMwO0FGQjU7MTEwMSAxMTZEIDExQzA7CitBRkI2O0FGQjY7MTEwMSAxMTZEIDExQzE7QUZCNjsxMTAxIDExNkQgMTFDMTsKK0FGQjc7QUZCNzsxMTAxIDExNkQgMTFDMjtBRkI3OzExMDEgMTE2RCAxMUMyOworQUZCODtBRkI4OzExMDEgMTE2RTtBRkI4OzExMDEgMTE2RTsKK0FGQjk7QUZCOTsxMTAxIDExNkUgMTFBODtBRkI5OzExMDEgMTE2RSAxMUE4OworQUZCQTtBRkJBOzExMDEgMTE2RSAxMUE5O0FGQkE7MTEwMSAxMTZFIDExQTk7CitBRkJCO0FGQkI7MTEwMSAxMTZFIDExQUE7QUZCQjsxMTAxIDExNkUgMTFBQTsKK0FGQkM7QUZCQzsxMTAxIDExNkUgMTFBQjtBRkJDOzExMDEgMTE2RSAxMUFCOworQUZCRDtBRkJEOzExMDEgMTE2RSAxMUFDO0FGQkQ7MTEwMSAxMTZFIDExQUM7CitBRkJFO0FGQkU7MTEwMSAxMTZFIDExQUQ7QUZCRTsxMTAxIDExNkUgMTFBRDsKK0FGQkY7QUZCRjsxMTAxIDExNkUgMTFBRTtBRkJGOzExMDEgMTE2RSAxMUFFOworQUZDMDtBRkMwOzExMDEgMTE2RSAxMUFGO0FGQzA7MTEwMSAxMTZFIDExQUY7CitBRkMxO0FGQzE7MTEwMSAxMTZFIDExQjA7QUZDMTsxMTAxIDExNkUgMTFCMDsKK0FGQzI7QUZDMjsxMTAxIDExNkUgMTFCMTtBRkMyOzExMDEgMTE2RSAxMUIxOworQUZDMztBRkMzOzExMDEgMTE2RSAxMUIyO0FGQzM7MTEwMSAxMTZFIDExQjI7CitBRkM0O0FGQzQ7MTEwMSAxMTZFIDExQjM7QUZDNDsxMTAxIDExNkUgMTFCMzsKK0FGQzU7QUZDNTsxMTAxIDExNkUgMTFCNDtBRkM1OzExMDEgMTE2RSAxMUI0OworQUZDNjtBRkM2OzExMDEgMTE2RSAxMUI1O0FGQzY7MTEwMSAxMTZFIDExQjU7CitBRkM3O0FGQzc7MTEwMSAxMTZFIDExQjY7QUZDNzsxMTAxIDExNkUgMTFCNjsKK0FGQzg7QUZDODsxMTAxIDExNkUgMTFCNztBRkM4OzExMDEgMTE2RSAxMUI3OworQUZDOTtBRkM5OzExMDEgMTE2RSAxMUI4O0FGQzk7MTEwMSAxMTZFIDExQjg7CitBRkNBO0FGQ0E7MTEwMSAxMTZFIDExQjk7QUZDQTsxMTAxIDExNkUgMTFCOTsKK0FGQ0I7QUZDQjsxMTAxIDExNkUgMTFCQTtBRkNCOzExMDEgMTE2RSAxMUJBOworQUZDQztBRkNDOzExMDEgMTE2RSAxMUJCO0FGQ0M7MTEwMSAxMTZFIDExQkI7CitBRkNEO0FGQ0Q7MTEwMSAxMTZFIDExQkM7QUZDRDsxMTAxIDExNkUgMTFCQzsKK0FGQ0U7QUZDRTsxMTAxIDExNkUgMTFCRDtBRkNFOzExMDEgMTE2RSAxMUJEOworQUZDRjtBRkNGOzExMDEgMTE2RSAxMUJFO0FGQ0Y7MTEwMSAxMTZFIDExQkU7CitBRkQwO0FGRDA7MTEwMSAxMTZFIDExQkY7QUZEMDsxMTAxIDExNkUgMTFCRjsKK0FGRDE7QUZEMTsxMTAxIDExNkUgMTFDMDtBRkQxOzExMDEgMTE2RSAxMUMwOworQUZEMjtBRkQyOzExMDEgMTE2RSAxMUMxO0FGRDI7MTEwMSAxMTZFIDExQzE7CitBRkQzO0FGRDM7MTEwMSAxMTZFIDExQzI7QUZEMzsxMTAxIDExNkUgMTFDMjsKK0FGRDQ7QUZENDsxMTAxIDExNkY7QUZENDsxMTAxIDExNkY7CitBRkQ1O0FGRDU7MTEwMSAxMTZGIDExQTg7QUZENTsxMTAxIDExNkYgMTFBODsKK0FGRDY7QUZENjsxMTAxIDExNkYgMTFBOTtBRkQ2OzExMDEgMTE2RiAxMUE5OworQUZENztBRkQ3OzExMDEgMTE2RiAxMUFBO0FGRDc7MTEwMSAxMTZGIDExQUE7CitBRkQ4O0FGRDg7MTEwMSAxMTZGIDExQUI7QUZEODsxMTAxIDExNkYgMTFBQjsKK0FGRDk7QUZEOTsxMTAxIDExNkYgMTFBQztBRkQ5OzExMDEgMTE2RiAxMUFDOworQUZEQTtBRkRBOzExMDEgMTE2RiAxMUFEO0FGREE7MTEwMSAxMTZGIDExQUQ7CitBRkRCO0FGREI7MTEwMSAxMTZGIDExQUU7QUZEQjsxMTAxIDExNkYgMTFBRTsKK0FGREM7QUZEQzsxMTAxIDExNkYgMTFBRjtBRkRDOzExMDEgMTE2RiAxMUFGOworQUZERDtBRkREOzExMDEgMTE2RiAxMUIwO0FGREQ7MTEwMSAxMTZGIDExQjA7CitBRkRFO0FGREU7MTEwMSAxMTZGIDExQjE7QUZERTsxMTAxIDExNkYgMTFCMTsKK0FGREY7QUZERjsxMTAxIDExNkYgMTFCMjtBRkRGOzExMDEgMTE2RiAxMUIyOworQUZFMDtBRkUwOzExMDEgMTE2RiAxMUIzO0FGRTA7MTEwMSAxMTZGIDExQjM7CitBRkUxO0FGRTE7MTEwMSAxMTZGIDExQjQ7QUZFMTsxMTAxIDExNkYgMTFCNDsKK0FGRTI7QUZFMjsxMTAxIDExNkYgMTFCNTtBRkUyOzExMDEgMTE2RiAxMUI1OworQUZFMztBRkUzOzExMDEgMTE2RiAxMUI2O0FGRTM7MTEwMSAxMTZGIDExQjY7CitBRkU0O0FGRTQ7MTEwMSAxMTZGIDExQjc7QUZFNDsxMTAxIDExNkYgMTFCNzsKK0FGRTU7QUZFNTsxMTAxIDExNkYgMTFCODtBRkU1OzExMDEgMTE2RiAxMUI4OworQUZFNjtBRkU2OzExMDEgMTE2RiAxMUI5O0FGRTY7MTEwMSAxMTZGIDExQjk7CitBRkU3O0FGRTc7MTEwMSAxMTZGIDExQkE7QUZFNzsxMTAxIDExNkYgMTFCQTsKK0FGRTg7QUZFODsxMTAxIDExNkYgMTFCQjtBRkU4OzExMDEgMTE2RiAxMUJCOworQUZFOTtBRkU5OzExMDEgMTE2RiAxMUJDO0FGRTk7MTEwMSAxMTZGIDExQkM7CitBRkVBO0FGRUE7MTEwMSAxMTZGIDExQkQ7QUZFQTsxMTAxIDExNkYgMTFCRDsKK0FGRUI7QUZFQjsxMTAxIDExNkYgMTFCRTtBRkVCOzExMDEgMTE2RiAxMUJFOworQUZFQztBRkVDOzExMDEgMTE2RiAxMUJGO0FGRUM7MTEwMSAxMTZGIDExQkY7CitBRkVEO0FGRUQ7MTEwMSAxMTZGIDExQzA7QUZFRDsxMTAxIDExNkYgMTFDMDsKK0FGRUU7QUZFRTsxMTAxIDExNkYgMTFDMTtBRkVFOzExMDEgMTE2RiAxMUMxOworQUZFRjtBRkVGOzExMDEgMTE2RiAxMUMyO0FGRUY7MTEwMSAxMTZGIDExQzI7CitBRkYwO0FGRjA7MTEwMSAxMTcwO0FGRjA7MTEwMSAxMTcwOworQUZGMTtBRkYxOzExMDEgMTE3MCAxMUE4O0FGRjE7MTEwMSAxMTcwIDExQTg7CitBRkYyO0FGRjI7MTEwMSAxMTcwIDExQTk7QUZGMjsxMTAxIDExNzAgMTFBOTsKK0FGRjM7QUZGMzsxMTAxIDExNzAgMTFBQTtBRkYzOzExMDEgMTE3MCAxMUFBOworQUZGNDtBRkY0OzExMDEgMTE3MCAxMUFCO0FGRjQ7MTEwMSAxMTcwIDExQUI7CitBRkY1O0FGRjU7MTEwMSAxMTcwIDExQUM7QUZGNTsxMTAxIDExNzAgMTFBQzsKK0FGRjY7QUZGNjsxMTAxIDExNzAgMTFBRDtBRkY2OzExMDEgMTE3MCAxMUFEOworQUZGNztBRkY3OzExMDEgMTE3MCAxMUFFO0FGRjc7MTEwMSAxMTcwIDExQUU7CitBRkY4O0FGRjg7MTEwMSAxMTcwIDExQUY7QUZGODsxMTAxIDExNzAgMTFBRjsKK0FGRjk7QUZGOTsxMTAxIDExNzAgMTFCMDtBRkY5OzExMDEgMTE3MCAxMUIwOworQUZGQTtBRkZBOzExMDEgMTE3MCAxMUIxO0FGRkE7MTEwMSAxMTcwIDExQjE7CitBRkZCO0FGRkI7MTEwMSAxMTcwIDExQjI7QUZGQjsxMTAxIDExNzAgMTFCMjsKK0FGRkM7QUZGQzsxMTAxIDExNzAgMTFCMztBRkZDOzExMDEgMTE3MCAxMUIzOworQUZGRDtBRkZEOzExMDEgMTE3MCAxMUI0O0FGRkQ7MTEwMSAxMTcwIDExQjQ7CitBRkZFO0FGRkU7MTEwMSAxMTcwIDExQjU7QUZGRTsxMTAxIDExNzAgMTFCNTsKK0FGRkY7QUZGRjsxMTAxIDExNzAgMTFCNjtBRkZGOzExMDEgMTE3MCAxMUI2OworQjAwMDtCMDAwOzExMDEgMTE3MCAxMUI3O0IwMDA7MTEwMSAxMTcwIDExQjc7CitCMDAxO0IwMDE7MTEwMSAxMTcwIDExQjg7QjAwMTsxMTAxIDExNzAgMTFCODsKK0IwMDI7QjAwMjsxMTAxIDExNzAgMTFCOTtCMDAyOzExMDEgMTE3MCAxMUI5OworQjAwMztCMDAzOzExMDEgMTE3MCAxMUJBO0IwMDM7MTEwMSAxMTcwIDExQkE7CitCMDA0O0IwMDQ7MTEwMSAxMTcwIDExQkI7QjAwNDsxMTAxIDExNzAgMTFCQjsKK0IwMDU7QjAwNTsxMTAxIDExNzAgMTFCQztCMDA1OzExMDEgMTE3MCAxMUJDOworQjAwNjtCMDA2OzExMDEgMTE3MCAxMUJEO0IwMDY7MTEwMSAxMTcwIDExQkQ7CitCMDA3O0IwMDc7MTEwMSAxMTcwIDExQkU7QjAwNzsxMTAxIDExNzAgMTFCRTsKK0IwMDg7QjAwODsxMTAxIDExNzAgMTFCRjtCMDA4OzExMDEgMTE3MCAxMUJGOworQjAwOTtCMDA5OzExMDEgMTE3MCAxMUMwO0IwMDk7MTEwMSAxMTcwIDExQzA7CitCMDBBO0IwMEE7MTEwMSAxMTcwIDExQzE7QjAwQTsxMTAxIDExNzAgMTFDMTsKK0IwMEI7QjAwQjsxMTAxIDExNzAgMTFDMjtCMDBCOzExMDEgMTE3MCAxMUMyOworQjAwQztCMDBDOzExMDEgMTE3MTtCMDBDOzExMDEgMTE3MTsKK0IwMEQ7QjAwRDsxMTAxIDExNzEgMTFBODtCMDBEOzExMDEgMTE3MSAxMUE4OworQjAwRTtCMDBFOzExMDEgMTE3MSAxMUE5O0IwMEU7MTEwMSAxMTcxIDExQTk7CitCMDBGO0IwMEY7MTEwMSAxMTcxIDExQUE7QjAwRjsxMTAxIDExNzEgMTFBQTsKK0IwMTA7QjAxMDsxMTAxIDExNzEgMTFBQjtCMDEwOzExMDEgMTE3MSAxMUFCOworQjAxMTtCMDExOzExMDEgMTE3MSAxMUFDO0IwMTE7MTEwMSAxMTcxIDExQUM7CitCMDEyO0IwMTI7MTEwMSAxMTcxIDExQUQ7QjAxMjsxMTAxIDExNzEgMTFBRDsKK0IwMTM7QjAxMzsxMTAxIDExNzEgMTFBRTtCMDEzOzExMDEgMTE3MSAxMUFFOworQjAxNDtCMDE0OzExMDEgMTE3MSAxMUFGO0IwMTQ7MTEwMSAxMTcxIDExQUY7CitCMDE1O0IwMTU7MTEwMSAxMTcxIDExQjA7QjAxNTsxMTAxIDExNzEgMTFCMDsKK0IwMTY7QjAxNjsxMTAxIDExNzEgMTFCMTtCMDE2OzExMDEgMTE3MSAxMUIxOworQjAxNztCMDE3OzExMDEgMTE3MSAxMUIyO0IwMTc7MTEwMSAxMTcxIDExQjI7CitCMDE4O0IwMTg7MTEwMSAxMTcxIDExQjM7QjAxODsxMTAxIDExNzEgMTFCMzsKK0IwMTk7QjAxOTsxMTAxIDExNzEgMTFCNDtCMDE5OzExMDEgMTE3MSAxMUI0OworQjAxQTtCMDFBOzExMDEgMTE3MSAxMUI1O0IwMUE7MTEwMSAxMTcxIDExQjU7CitCMDFCO0IwMUI7MTEwMSAxMTcxIDExQjY7QjAxQjsxMTAxIDExNzEgMTFCNjsKK0IwMUM7QjAxQzsxMTAxIDExNzEgMTFCNztCMDFDOzExMDEgMTE3MSAxMUI3OworQjAxRDtCMDFEOzExMDEgMTE3MSAxMUI4O0IwMUQ7MTEwMSAxMTcxIDExQjg7CitCMDFFO0IwMUU7MTEwMSAxMTcxIDExQjk7QjAxRTsxMTAxIDExNzEgMTFCOTsKK0IwMUY7QjAxRjsxMTAxIDExNzEgMTFCQTtCMDFGOzExMDEgMTE3MSAxMUJBOworQjAyMDtCMDIwOzExMDEgMTE3MSAxMUJCO0IwMjA7MTEwMSAxMTcxIDExQkI7CitCMDIxO0IwMjE7MTEwMSAxMTcxIDExQkM7QjAyMTsxMTAxIDExNzEgMTFCQzsKK0IwMjI7QjAyMjsxMTAxIDExNzEgMTFCRDtCMDIyOzExMDEgMTE3MSAxMUJEOworQjAyMztCMDIzOzExMDEgMTE3MSAxMUJFO0IwMjM7MTEwMSAxMTcxIDExQkU7CitCMDI0O0IwMjQ7MTEwMSAxMTcxIDExQkY7QjAyNDsxMTAxIDExNzEgMTFCRjsKK0IwMjU7QjAyNTsxMTAxIDExNzEgMTFDMDtCMDI1OzExMDEgMTE3MSAxMUMwOworQjAyNjtCMDI2OzExMDEgMTE3MSAxMUMxO0IwMjY7MTEwMSAxMTcxIDExQzE7CitCMDI3O0IwMjc7MTEwMSAxMTcxIDExQzI7QjAyNzsxMTAxIDExNzEgMTFDMjsKK0IwMjg7QjAyODsxMTAxIDExNzI7QjAyODsxMTAxIDExNzI7CitCMDI5O0IwMjk7MTEwMSAxMTcyIDExQTg7QjAyOTsxMTAxIDExNzIgMTFBODsKK0IwMkE7QjAyQTsxMTAxIDExNzIgMTFBOTtCMDJBOzExMDEgMTE3MiAxMUE5OworQjAyQjtCMDJCOzExMDEgMTE3MiAxMUFBO0IwMkI7MTEwMSAxMTcyIDExQUE7CitCMDJDO0IwMkM7MTEwMSAxMTcyIDExQUI7QjAyQzsxMTAxIDExNzIgMTFBQjsKK0IwMkQ7QjAyRDsxMTAxIDExNzIgMTFBQztCMDJEOzExMDEgMTE3MiAxMUFDOworQjAyRTtCMDJFOzExMDEgMTE3MiAxMUFEO0IwMkU7MTEwMSAxMTcyIDExQUQ7CitCMDJGO0IwMkY7MTEwMSAxMTcyIDExQUU7QjAyRjsxMTAxIDExNzIgMTFBRTsKK0IwMzA7QjAzMDsxMTAxIDExNzIgMTFBRjtCMDMwOzExMDEgMTE3MiAxMUFGOworQjAzMTtCMDMxOzExMDEgMTE3MiAxMUIwO0IwMzE7MTEwMSAxMTcyIDExQjA7CitCMDMyO0IwMzI7MTEwMSAxMTcyIDExQjE7QjAzMjsxMTAxIDExNzIgMTFCMTsKK0IwMzM7QjAzMzsxMTAxIDExNzIgMTFCMjtCMDMzOzExMDEgMTE3MiAxMUIyOworQjAzNDtCMDM0OzExMDEgMTE3MiAxMUIzO0IwMzQ7MTEwMSAxMTcyIDExQjM7CitCMDM1O0IwMzU7MTEwMSAxMTcyIDExQjQ7QjAzNTsxMTAxIDExNzIgMTFCNDsKK0IwMzY7QjAzNjsxMTAxIDExNzIgMTFCNTtCMDM2OzExMDEgMTE3MiAxMUI1OworQjAzNztCMDM3OzExMDEgMTE3MiAxMUI2O0IwMzc7MTEwMSAxMTcyIDExQjY7CitCMDM4O0IwMzg7MTEwMSAxMTcyIDExQjc7QjAzODsxMTAxIDExNzIgMTFCNzsKK0IwMzk7QjAzOTsxMTAxIDExNzIgMTFCODtCMDM5OzExMDEgMTE3MiAxMUI4OworQjAzQTtCMDNBOzExMDEgMTE3MiAxMUI5O0IwM0E7MTEwMSAxMTcyIDExQjk7CitCMDNCO0IwM0I7MTEwMSAxMTcyIDExQkE7QjAzQjsxMTAxIDExNzIgMTFCQTsKK0IwM0M7QjAzQzsxMTAxIDExNzIgMTFCQjtCMDNDOzExMDEgMTE3MiAxMUJCOworQjAzRDtCMDNEOzExMDEgMTE3MiAxMUJDO0IwM0Q7MTEwMSAxMTcyIDExQkM7CitCMDNFO0IwM0U7MTEwMSAxMTcyIDExQkQ7QjAzRTsxMTAxIDExNzIgMTFCRDsKK0IwM0Y7QjAzRjsxMTAxIDExNzIgMTFCRTtCMDNGOzExMDEgMTE3MiAxMUJFOworQjA0MDtCMDQwOzExMDEgMTE3MiAxMUJGO0IwNDA7MTEwMSAxMTcyIDExQkY7CitCMDQxO0IwNDE7MTEwMSAxMTcyIDExQzA7QjA0MTsxMTAxIDExNzIgMTFDMDsKK0IwNDI7QjA0MjsxMTAxIDExNzIgMTFDMTtCMDQyOzExMDEgMTE3MiAxMUMxOworQjA0MztCMDQzOzExMDEgMTE3MiAxMUMyO0IwNDM7MTEwMSAxMTcyIDExQzI7CitCMDQ0O0IwNDQ7MTEwMSAxMTczO0IwNDQ7MTEwMSAxMTczOworQjA0NTtCMDQ1OzExMDEgMTE3MyAxMUE4O0IwNDU7MTEwMSAxMTczIDExQTg7CitCMDQ2O0IwNDY7MTEwMSAxMTczIDExQTk7QjA0NjsxMTAxIDExNzMgMTFBOTsKK0IwNDc7QjA0NzsxMTAxIDExNzMgMTFBQTtCMDQ3OzExMDEgMTE3MyAxMUFBOworQjA0ODtCMDQ4OzExMDEgMTE3MyAxMUFCO0IwNDg7MTEwMSAxMTczIDExQUI7CitCMDQ5O0IwNDk7MTEwMSAxMTczIDExQUM7QjA0OTsxMTAxIDExNzMgMTFBQzsKK0IwNEE7QjA0QTsxMTAxIDExNzMgMTFBRDtCMDRBOzExMDEgMTE3MyAxMUFEOworQjA0QjtCMDRCOzExMDEgMTE3MyAxMUFFO0IwNEI7MTEwMSAxMTczIDExQUU7CitCMDRDO0IwNEM7MTEwMSAxMTczIDExQUY7QjA0QzsxMTAxIDExNzMgMTFBRjsKK0IwNEQ7QjA0RDsxMTAxIDExNzMgMTFCMDtCMDREOzExMDEgMTE3MyAxMUIwOworQjA0RTtCMDRFOzExMDEgMTE3MyAxMUIxO0IwNEU7MTEwMSAxMTczIDExQjE7CitCMDRGO0IwNEY7MTEwMSAxMTczIDExQjI7QjA0RjsxMTAxIDExNzMgMTFCMjsKK0IwNTA7QjA1MDsxMTAxIDExNzMgMTFCMztCMDUwOzExMDEgMTE3MyAxMUIzOworQjA1MTtCMDUxOzExMDEgMTE3MyAxMUI0O0IwNTE7MTEwMSAxMTczIDExQjQ7CitCMDUyO0IwNTI7MTEwMSAxMTczIDExQjU7QjA1MjsxMTAxIDExNzMgMTFCNTsKK0IwNTM7QjA1MzsxMTAxIDExNzMgMTFCNjtCMDUzOzExMDEgMTE3MyAxMUI2OworQjA1NDtCMDU0OzExMDEgMTE3MyAxMUI3O0IwNTQ7MTEwMSAxMTczIDExQjc7CitCMDU1O0IwNTU7MTEwMSAxMTczIDExQjg7QjA1NTsxMTAxIDExNzMgMTFCODsKK0IwNTY7QjA1NjsxMTAxIDExNzMgMTFCOTtCMDU2OzExMDEgMTE3MyAxMUI5OworQjA1NztCMDU3OzExMDEgMTE3MyAxMUJBO0IwNTc7MTEwMSAxMTczIDExQkE7CitCMDU4O0IwNTg7MTEwMSAxMTczIDExQkI7QjA1ODsxMTAxIDExNzMgMTFCQjsKK0IwNTk7QjA1OTsxMTAxIDExNzMgMTFCQztCMDU5OzExMDEgMTE3MyAxMUJDOworQjA1QTtCMDVBOzExMDEgMTE3MyAxMUJEO0IwNUE7MTEwMSAxMTczIDExQkQ7CitCMDVCO0IwNUI7MTEwMSAxMTczIDExQkU7QjA1QjsxMTAxIDExNzMgMTFCRTsKK0IwNUM7QjA1QzsxMTAxIDExNzMgMTFCRjtCMDVDOzExMDEgMTE3MyAxMUJGOworQjA1RDtCMDVEOzExMDEgMTE3MyAxMUMwO0IwNUQ7MTEwMSAxMTczIDExQzA7CitCMDVFO0IwNUU7MTEwMSAxMTczIDExQzE7QjA1RTsxMTAxIDExNzMgMTFDMTsKK0IwNUY7QjA1RjsxMTAxIDExNzMgMTFDMjtCMDVGOzExMDEgMTE3MyAxMUMyOworQjA2MDtCMDYwOzExMDEgMTE3NDtCMDYwOzExMDEgMTE3NDsKK0IwNjE7QjA2MTsxMTAxIDExNzQgMTFBODtCMDYxOzExMDEgMTE3NCAxMUE4OworQjA2MjtCMDYyOzExMDEgMTE3NCAxMUE5O0IwNjI7MTEwMSAxMTc0IDExQTk7CitCMDYzO0IwNjM7MTEwMSAxMTc0IDExQUE7QjA2MzsxMTAxIDExNzQgMTFBQTsKK0IwNjQ7QjA2NDsxMTAxIDExNzQgMTFBQjtCMDY0OzExMDEgMTE3NCAxMUFCOworQjA2NTtCMDY1OzExMDEgMTE3NCAxMUFDO0IwNjU7MTEwMSAxMTc0IDExQUM7CitCMDY2O0IwNjY7MTEwMSAxMTc0IDExQUQ7QjA2NjsxMTAxIDExNzQgMTFBRDsKK0IwNjc7QjA2NzsxMTAxIDExNzQgMTFBRTtCMDY3OzExMDEgMTE3NCAxMUFFOworQjA2ODtCMDY4OzExMDEgMTE3NCAxMUFGO0IwNjg7MTEwMSAxMTc0IDExQUY7CitCMDY5O0IwNjk7MTEwMSAxMTc0IDExQjA7QjA2OTsxMTAxIDExNzQgMTFCMDsKK0IwNkE7QjA2QTsxMTAxIDExNzQgMTFCMTtCMDZBOzExMDEgMTE3NCAxMUIxOworQjA2QjtCMDZCOzExMDEgMTE3NCAxMUIyO0IwNkI7MTEwMSAxMTc0IDExQjI7CitCMDZDO0IwNkM7MTEwMSAxMTc0IDExQjM7QjA2QzsxMTAxIDExNzQgMTFCMzsKK0IwNkQ7QjA2RDsxMTAxIDExNzQgMTFCNDtCMDZEOzExMDEgMTE3NCAxMUI0OworQjA2RTtCMDZFOzExMDEgMTE3NCAxMUI1O0IwNkU7MTEwMSAxMTc0IDExQjU7CitCMDZGO0IwNkY7MTEwMSAxMTc0IDExQjY7QjA2RjsxMTAxIDExNzQgMTFCNjsKK0IwNzA7QjA3MDsxMTAxIDExNzQgMTFCNztCMDcwOzExMDEgMTE3NCAxMUI3OworQjA3MTtCMDcxOzExMDEgMTE3NCAxMUI4O0IwNzE7MTEwMSAxMTc0IDExQjg7CitCMDcyO0IwNzI7MTEwMSAxMTc0IDExQjk7QjA3MjsxMTAxIDExNzQgMTFCOTsKK0IwNzM7QjA3MzsxMTAxIDExNzQgMTFCQTtCMDczOzExMDEgMTE3NCAxMUJBOworQjA3NDtCMDc0OzExMDEgMTE3NCAxMUJCO0IwNzQ7MTEwMSAxMTc0IDExQkI7CitCMDc1O0IwNzU7MTEwMSAxMTc0IDExQkM7QjA3NTsxMTAxIDExNzQgMTFCQzsKK0IwNzY7QjA3NjsxMTAxIDExNzQgMTFCRDtCMDc2OzExMDEgMTE3NCAxMUJEOworQjA3NztCMDc3OzExMDEgMTE3NCAxMUJFO0IwNzc7MTEwMSAxMTc0IDExQkU7CitCMDc4O0IwNzg7MTEwMSAxMTc0IDExQkY7QjA3ODsxMTAxIDExNzQgMTFCRjsKK0IwNzk7QjA3OTsxMTAxIDExNzQgMTFDMDtCMDc5OzExMDEgMTE3NCAxMUMwOworQjA3QTtCMDdBOzExMDEgMTE3NCAxMUMxO0IwN0E7MTEwMSAxMTc0IDExQzE7CitCMDdCO0IwN0I7MTEwMSAxMTc0IDExQzI7QjA3QjsxMTAxIDExNzQgMTFDMjsKK0IwN0M7QjA3QzsxMTAxIDExNzU7QjA3QzsxMTAxIDExNzU7CitCMDdEO0IwN0Q7MTEwMSAxMTc1IDExQTg7QjA3RDsxMTAxIDExNzUgMTFBODsKK0IwN0U7QjA3RTsxMTAxIDExNzUgMTFBOTtCMDdFOzExMDEgMTE3NSAxMUE5OworQjA3RjtCMDdGOzExMDEgMTE3NSAxMUFBO0IwN0Y7MTEwMSAxMTc1IDExQUE7CitCMDgwO0IwODA7MTEwMSAxMTc1IDExQUI7QjA4MDsxMTAxIDExNzUgMTFBQjsKK0IwODE7QjA4MTsxMTAxIDExNzUgMTFBQztCMDgxOzExMDEgMTE3NSAxMUFDOworQjA4MjtCMDgyOzExMDEgMTE3NSAxMUFEO0IwODI7MTEwMSAxMTc1IDExQUQ7CitCMDgzO0IwODM7MTEwMSAxMTc1IDExQUU7QjA4MzsxMTAxIDExNzUgMTFBRTsKK0IwODQ7QjA4NDsxMTAxIDExNzUgMTFBRjtCMDg0OzExMDEgMTE3NSAxMUFGOworQjA4NTtCMDg1OzExMDEgMTE3NSAxMUIwO0IwODU7MTEwMSAxMTc1IDExQjA7CitCMDg2O0IwODY7MTEwMSAxMTc1IDExQjE7QjA4NjsxMTAxIDExNzUgMTFCMTsKK0IwODc7QjA4NzsxMTAxIDExNzUgMTFCMjtCMDg3OzExMDEgMTE3NSAxMUIyOworQjA4ODtCMDg4OzExMDEgMTE3NSAxMUIzO0IwODg7MTEwMSAxMTc1IDExQjM7CitCMDg5O0IwODk7MTEwMSAxMTc1IDExQjQ7QjA4OTsxMTAxIDExNzUgMTFCNDsKK0IwOEE7QjA4QTsxMTAxIDExNzUgMTFCNTtCMDhBOzExMDEgMTE3NSAxMUI1OworQjA4QjtCMDhCOzExMDEgMTE3NSAxMUI2O0IwOEI7MTEwMSAxMTc1IDExQjY7CitCMDhDO0IwOEM7MTEwMSAxMTc1IDExQjc7QjA4QzsxMTAxIDExNzUgMTFCNzsKK0IwOEQ7QjA4RDsxMTAxIDExNzUgMTFCODtCMDhEOzExMDEgMTE3NSAxMUI4OworQjA4RTtCMDhFOzExMDEgMTE3NSAxMUI5O0IwOEU7MTEwMSAxMTc1IDExQjk7CitCMDhGO0IwOEY7MTEwMSAxMTc1IDExQkE7QjA4RjsxMTAxIDExNzUgMTFCQTsKK0IwOTA7QjA5MDsxMTAxIDExNzUgMTFCQjtCMDkwOzExMDEgMTE3NSAxMUJCOworQjA5MTtCMDkxOzExMDEgMTE3NSAxMUJDO0IwOTE7MTEwMSAxMTc1IDExQkM7CitCMDkyO0IwOTI7MTEwMSAxMTc1IDExQkQ7QjA5MjsxMTAxIDExNzUgMTFCRDsKK0IwOTM7QjA5MzsxMTAxIDExNzUgMTFCRTtCMDkzOzExMDEgMTE3NSAxMUJFOworQjA5NDtCMDk0OzExMDEgMTE3NSAxMUJGO0IwOTQ7MTEwMSAxMTc1IDExQkY7CitCMDk1O0IwOTU7MTEwMSAxMTc1IDExQzA7QjA5NTsxMTAxIDExNzUgMTFDMDsKK0IwOTY7QjA5NjsxMTAxIDExNzUgMTFDMTtCMDk2OzExMDEgMTE3NSAxMUMxOworQjA5NztCMDk3OzExMDEgMTE3NSAxMUMyO0IwOTc7MTEwMSAxMTc1IDExQzI7CitCMDk4O0IwOTg7MTEwMiAxMTYxO0IwOTg7MTEwMiAxMTYxOworQjA5OTtCMDk5OzExMDIgMTE2MSAxMUE4O0IwOTk7MTEwMiAxMTYxIDExQTg7CitCMDlBO0IwOUE7MTEwMiAxMTYxIDExQTk7QjA5QTsxMTAyIDExNjEgMTFBOTsKK0IwOUI7QjA5QjsxMTAyIDExNjEgMTFBQTtCMDlCOzExMDIgMTE2MSAxMUFBOworQjA5QztCMDlDOzExMDIgMTE2MSAxMUFCO0IwOUM7MTEwMiAxMTYxIDExQUI7CitCMDlEO0IwOUQ7MTEwMiAxMTYxIDExQUM7QjA5RDsxMTAyIDExNjEgMTFBQzsKK0IwOUU7QjA5RTsxMTAyIDExNjEgMTFBRDtCMDlFOzExMDIgMTE2MSAxMUFEOworQjA5RjtCMDlGOzExMDIgMTE2MSAxMUFFO0IwOUY7MTEwMiAxMTYxIDExQUU7CitCMEEwO0IwQTA7MTEwMiAxMTYxIDExQUY7QjBBMDsxMTAyIDExNjEgMTFBRjsKK0IwQTE7QjBBMTsxMTAyIDExNjEgMTFCMDtCMEExOzExMDIgMTE2MSAxMUIwOworQjBBMjtCMEEyOzExMDIgMTE2MSAxMUIxO0IwQTI7MTEwMiAxMTYxIDExQjE7CitCMEEzO0IwQTM7MTEwMiAxMTYxIDExQjI7QjBBMzsxMTAyIDExNjEgMTFCMjsKK0IwQTQ7QjBBNDsxMTAyIDExNjEgMTFCMztCMEE0OzExMDIgMTE2MSAxMUIzOworQjBBNTtCMEE1OzExMDIgMTE2MSAxMUI0O0IwQTU7MTEwMiAxMTYxIDExQjQ7CitCMEE2O0IwQTY7MTEwMiAxMTYxIDExQjU7QjBBNjsxMTAyIDExNjEgMTFCNTsKK0IwQTc7QjBBNzsxMTAyIDExNjEgMTFCNjtCMEE3OzExMDIgMTE2MSAxMUI2OworQjBBODtCMEE4OzExMDIgMTE2MSAxMUI3O0IwQTg7MTEwMiAxMTYxIDExQjc7CitCMEE5O0IwQTk7MTEwMiAxMTYxIDExQjg7QjBBOTsxMTAyIDExNjEgMTFCODsKK0IwQUE7QjBBQTsxMTAyIDExNjEgMTFCOTtCMEFBOzExMDIgMTE2MSAxMUI5OworQjBBQjtCMEFCOzExMDIgMTE2MSAxMUJBO0IwQUI7MTEwMiAxMTYxIDExQkE7CitCMEFDO0IwQUM7MTEwMiAxMTYxIDExQkI7QjBBQzsxMTAyIDExNjEgMTFCQjsKK0IwQUQ7QjBBRDsxMTAyIDExNjEgMTFCQztCMEFEOzExMDIgMTE2MSAxMUJDOworQjBBRTtCMEFFOzExMDIgMTE2MSAxMUJEO0IwQUU7MTEwMiAxMTYxIDExQkQ7CitCMEFGO0IwQUY7MTEwMiAxMTYxIDExQkU7QjBBRjsxMTAyIDExNjEgMTFCRTsKK0IwQjA7QjBCMDsxMTAyIDExNjEgMTFCRjtCMEIwOzExMDIgMTE2MSAxMUJGOworQjBCMTtCMEIxOzExMDIgMTE2MSAxMUMwO0IwQjE7MTEwMiAxMTYxIDExQzA7CitCMEIyO0IwQjI7MTEwMiAxMTYxIDExQzE7QjBCMjsxMTAyIDExNjEgMTFDMTsKK0IwQjM7QjBCMzsxMTAyIDExNjEgMTFDMjtCMEIzOzExMDIgMTE2MSAxMUMyOworQjBCNDtCMEI0OzExMDIgMTE2MjtCMEI0OzExMDIgMTE2MjsKK0IwQjU7QjBCNTsxMTAyIDExNjIgMTFBODtCMEI1OzExMDIgMTE2MiAxMUE4OworQjBCNjtCMEI2OzExMDIgMTE2MiAxMUE5O0IwQjY7MTEwMiAxMTYyIDExQTk7CitCMEI3O0IwQjc7MTEwMiAxMTYyIDExQUE7QjBCNzsxMTAyIDExNjIgMTFBQTsKK0IwQjg7QjBCODsxMTAyIDExNjIgMTFBQjtCMEI4OzExMDIgMTE2MiAxMUFCOworQjBCOTtCMEI5OzExMDIgMTE2MiAxMUFDO0IwQjk7MTEwMiAxMTYyIDExQUM7CitCMEJBO0IwQkE7MTEwMiAxMTYyIDExQUQ7QjBCQTsxMTAyIDExNjIgMTFBRDsKK0IwQkI7QjBCQjsxMTAyIDExNjIgMTFBRTtCMEJCOzExMDIgMTE2MiAxMUFFOworQjBCQztCMEJDOzExMDIgMTE2MiAxMUFGO0IwQkM7MTEwMiAxMTYyIDExQUY7CitCMEJEO0IwQkQ7MTEwMiAxMTYyIDExQjA7QjBCRDsxMTAyIDExNjIgMTFCMDsKK0IwQkU7QjBCRTsxMTAyIDExNjIgMTFCMTtCMEJFOzExMDIgMTE2MiAxMUIxOworQjBCRjtCMEJGOzExMDIgMTE2MiAxMUIyO0IwQkY7MTEwMiAxMTYyIDExQjI7CitCMEMwO0IwQzA7MTEwMiAxMTYyIDExQjM7QjBDMDsxMTAyIDExNjIgMTFCMzsKK0IwQzE7QjBDMTsxMTAyIDExNjIgMTFCNDtCMEMxOzExMDIgMTE2MiAxMUI0OworQjBDMjtCMEMyOzExMDIgMTE2MiAxMUI1O0IwQzI7MTEwMiAxMTYyIDExQjU7CitCMEMzO0IwQzM7MTEwMiAxMTYyIDExQjY7QjBDMzsxMTAyIDExNjIgMTFCNjsKK0IwQzQ7QjBDNDsxMTAyIDExNjIgMTFCNztCMEM0OzExMDIgMTE2MiAxMUI3OworQjBDNTtCMEM1OzExMDIgMTE2MiAxMUI4O0IwQzU7MTEwMiAxMTYyIDExQjg7CitCMEM2O0IwQzY7MTEwMiAxMTYyIDExQjk7QjBDNjsxMTAyIDExNjIgMTFCOTsKK0IwQzc7QjBDNzsxMTAyIDExNjIgMTFCQTtCMEM3OzExMDIgMTE2MiAxMUJBOworQjBDODtCMEM4OzExMDIgMTE2MiAxMUJCO0IwQzg7MTEwMiAxMTYyIDExQkI7CitCMEM5O0IwQzk7MTEwMiAxMTYyIDExQkM7QjBDOTsxMTAyIDExNjIgMTFCQzsKK0IwQ0E7QjBDQTsxMTAyIDExNjIgMTFCRDtCMENBOzExMDIgMTE2MiAxMUJEOworQjBDQjtCMENCOzExMDIgMTE2MiAxMUJFO0IwQ0I7MTEwMiAxMTYyIDExQkU7CitCMENDO0IwQ0M7MTEwMiAxMTYyIDExQkY7QjBDQzsxMTAyIDExNjIgMTFCRjsKK0IwQ0Q7QjBDRDsxMTAyIDExNjIgMTFDMDtCMENEOzExMDIgMTE2MiAxMUMwOworQjBDRTtCMENFOzExMDIgMTE2MiAxMUMxO0IwQ0U7MTEwMiAxMTYyIDExQzE7CitCMENGO0IwQ0Y7MTEwMiAxMTYyIDExQzI7QjBDRjsxMTAyIDExNjIgMTFDMjsKK0IwRDA7QjBEMDsxMTAyIDExNjM7QjBEMDsxMTAyIDExNjM7CitCMEQxO0IwRDE7MTEwMiAxMTYzIDExQTg7QjBEMTsxMTAyIDExNjMgMTFBODsKK0IwRDI7QjBEMjsxMTAyIDExNjMgMTFBOTtCMEQyOzExMDIgMTE2MyAxMUE5OworQjBEMztCMEQzOzExMDIgMTE2MyAxMUFBO0IwRDM7MTEwMiAxMTYzIDExQUE7CitCMEQ0O0IwRDQ7MTEwMiAxMTYzIDExQUI7QjBENDsxMTAyIDExNjMgMTFBQjsKK0IwRDU7QjBENTsxMTAyIDExNjMgMTFBQztCMEQ1OzExMDIgMTE2MyAxMUFDOworQjBENjtCMEQ2OzExMDIgMTE2MyAxMUFEO0IwRDY7MTEwMiAxMTYzIDExQUQ7CitCMEQ3O0IwRDc7MTEwMiAxMTYzIDExQUU7QjBENzsxMTAyIDExNjMgMTFBRTsKK0IwRDg7QjBEODsxMTAyIDExNjMgMTFBRjtCMEQ4OzExMDIgMTE2MyAxMUFGOworQjBEOTtCMEQ5OzExMDIgMTE2MyAxMUIwO0IwRDk7MTEwMiAxMTYzIDExQjA7CitCMERBO0IwREE7MTEwMiAxMTYzIDExQjE7QjBEQTsxMTAyIDExNjMgMTFCMTsKK0IwREI7QjBEQjsxMTAyIDExNjMgMTFCMjtCMERCOzExMDIgMTE2MyAxMUIyOworQjBEQztCMERDOzExMDIgMTE2MyAxMUIzO0IwREM7MTEwMiAxMTYzIDExQjM7CitCMEREO0IwREQ7MTEwMiAxMTYzIDExQjQ7QjBERDsxMTAyIDExNjMgMTFCNDsKK0IwREU7QjBERTsxMTAyIDExNjMgMTFCNTtCMERFOzExMDIgMTE2MyAxMUI1OworQjBERjtCMERGOzExMDIgMTE2MyAxMUI2O0IwREY7MTEwMiAxMTYzIDExQjY7CitCMEUwO0IwRTA7MTEwMiAxMTYzIDExQjc7QjBFMDsxMTAyIDExNjMgMTFCNzsKK0IwRTE7QjBFMTsxMTAyIDExNjMgMTFCODtCMEUxOzExMDIgMTE2MyAxMUI4OworQjBFMjtCMEUyOzExMDIgMTE2MyAxMUI5O0IwRTI7MTEwMiAxMTYzIDExQjk7CitCMEUzO0IwRTM7MTEwMiAxMTYzIDExQkE7QjBFMzsxMTAyIDExNjMgMTFCQTsKK0IwRTQ7QjBFNDsxMTAyIDExNjMgMTFCQjtCMEU0OzExMDIgMTE2MyAxMUJCOworQjBFNTtCMEU1OzExMDIgMTE2MyAxMUJDO0IwRTU7MTEwMiAxMTYzIDExQkM7CitCMEU2O0IwRTY7MTEwMiAxMTYzIDExQkQ7QjBFNjsxMTAyIDExNjMgMTFCRDsKK0IwRTc7QjBFNzsxMTAyIDExNjMgMTFCRTtCMEU3OzExMDIgMTE2MyAxMUJFOworQjBFODtCMEU4OzExMDIgMTE2MyAxMUJGO0IwRTg7MTEwMiAxMTYzIDExQkY7CitCMEU5O0IwRTk7MTEwMiAxMTYzIDExQzA7QjBFOTsxMTAyIDExNjMgMTFDMDsKK0IwRUE7QjBFQTsxMTAyIDExNjMgMTFDMTtCMEVBOzExMDIgMTE2MyAxMUMxOworQjBFQjtCMEVCOzExMDIgMTE2MyAxMUMyO0IwRUI7MTEwMiAxMTYzIDExQzI7CitCMEVDO0IwRUM7MTEwMiAxMTY0O0IwRUM7MTEwMiAxMTY0OworQjBFRDtCMEVEOzExMDIgMTE2NCAxMUE4O0IwRUQ7MTEwMiAxMTY0IDExQTg7CitCMEVFO0IwRUU7MTEwMiAxMTY0IDExQTk7QjBFRTsxMTAyIDExNjQgMTFBOTsKK0IwRUY7QjBFRjsxMTAyIDExNjQgMTFBQTtCMEVGOzExMDIgMTE2NCAxMUFBOworQjBGMDtCMEYwOzExMDIgMTE2NCAxMUFCO0IwRjA7MTEwMiAxMTY0IDExQUI7CitCMEYxO0IwRjE7MTEwMiAxMTY0IDExQUM7QjBGMTsxMTAyIDExNjQgMTFBQzsKK0IwRjI7QjBGMjsxMTAyIDExNjQgMTFBRDtCMEYyOzExMDIgMTE2NCAxMUFEOworQjBGMztCMEYzOzExMDIgMTE2NCAxMUFFO0IwRjM7MTEwMiAxMTY0IDExQUU7CitCMEY0O0IwRjQ7MTEwMiAxMTY0IDExQUY7QjBGNDsxMTAyIDExNjQgMTFBRjsKK0IwRjU7QjBGNTsxMTAyIDExNjQgMTFCMDtCMEY1OzExMDIgMTE2NCAxMUIwOworQjBGNjtCMEY2OzExMDIgMTE2NCAxMUIxO0IwRjY7MTEwMiAxMTY0IDExQjE7CitCMEY3O0IwRjc7MTEwMiAxMTY0IDExQjI7QjBGNzsxMTAyIDExNjQgMTFCMjsKK0IwRjg7QjBGODsxMTAyIDExNjQgMTFCMztCMEY4OzExMDIgMTE2NCAxMUIzOworQjBGOTtCMEY5OzExMDIgMTE2NCAxMUI0O0IwRjk7MTEwMiAxMTY0IDExQjQ7CitCMEZBO0IwRkE7MTEwMiAxMTY0IDExQjU7QjBGQTsxMTAyIDExNjQgMTFCNTsKK0IwRkI7QjBGQjsxMTAyIDExNjQgMTFCNjtCMEZCOzExMDIgMTE2NCAxMUI2OworQjBGQztCMEZDOzExMDIgMTE2NCAxMUI3O0IwRkM7MTEwMiAxMTY0IDExQjc7CitCMEZEO0IwRkQ7MTEwMiAxMTY0IDExQjg7QjBGRDsxMTAyIDExNjQgMTFCODsKK0IwRkU7QjBGRTsxMTAyIDExNjQgMTFCOTtCMEZFOzExMDIgMTE2NCAxMUI5OworQjBGRjtCMEZGOzExMDIgMTE2NCAxMUJBO0IwRkY7MTEwMiAxMTY0IDExQkE7CitCMTAwO0IxMDA7MTEwMiAxMTY0IDExQkI7QjEwMDsxMTAyIDExNjQgMTFCQjsKK0IxMDE7QjEwMTsxMTAyIDExNjQgMTFCQztCMTAxOzExMDIgMTE2NCAxMUJDOworQjEwMjtCMTAyOzExMDIgMTE2NCAxMUJEO0IxMDI7MTEwMiAxMTY0IDExQkQ7CitCMTAzO0IxMDM7MTEwMiAxMTY0IDExQkU7QjEwMzsxMTAyIDExNjQgMTFCRTsKK0IxMDQ7QjEwNDsxMTAyIDExNjQgMTFCRjtCMTA0OzExMDIgMTE2NCAxMUJGOworQjEwNTtCMTA1OzExMDIgMTE2NCAxMUMwO0IxMDU7MTEwMiAxMTY0IDExQzA7CitCMTA2O0IxMDY7MTEwMiAxMTY0IDExQzE7QjEwNjsxMTAyIDExNjQgMTFDMTsKK0IxMDc7QjEwNzsxMTAyIDExNjQgMTFDMjtCMTA3OzExMDIgMTE2NCAxMUMyOworQjEwODtCMTA4OzExMDIgMTE2NTtCMTA4OzExMDIgMTE2NTsKK0IxMDk7QjEwOTsxMTAyIDExNjUgMTFBODtCMTA5OzExMDIgMTE2NSAxMUE4OworQjEwQTtCMTBBOzExMDIgMTE2NSAxMUE5O0IxMEE7MTEwMiAxMTY1IDExQTk7CitCMTBCO0IxMEI7MTEwMiAxMTY1IDExQUE7QjEwQjsxMTAyIDExNjUgMTFBQTsKK0IxMEM7QjEwQzsxMTAyIDExNjUgMTFBQjtCMTBDOzExMDIgMTE2NSAxMUFCOworQjEwRDtCMTBEOzExMDIgMTE2NSAxMUFDO0IxMEQ7MTEwMiAxMTY1IDExQUM7CitCMTBFO0IxMEU7MTEwMiAxMTY1IDExQUQ7QjEwRTsxMTAyIDExNjUgMTFBRDsKK0IxMEY7QjEwRjsxMTAyIDExNjUgMTFBRTtCMTBGOzExMDIgMTE2NSAxMUFFOworQjExMDtCMTEwOzExMDIgMTE2NSAxMUFGO0IxMTA7MTEwMiAxMTY1IDExQUY7CitCMTExO0IxMTE7MTEwMiAxMTY1IDExQjA7QjExMTsxMTAyIDExNjUgMTFCMDsKK0IxMTI7QjExMjsxMTAyIDExNjUgMTFCMTtCMTEyOzExMDIgMTE2NSAxMUIxOworQjExMztCMTEzOzExMDIgMTE2NSAxMUIyO0IxMTM7MTEwMiAxMTY1IDExQjI7CitCMTE0O0IxMTQ7MTEwMiAxMTY1IDExQjM7QjExNDsxMTAyIDExNjUgMTFCMzsKK0IxMTU7QjExNTsxMTAyIDExNjUgMTFCNDtCMTE1OzExMDIgMTE2NSAxMUI0OworQjExNjtCMTE2OzExMDIgMTE2NSAxMUI1O0IxMTY7MTEwMiAxMTY1IDExQjU7CitCMTE3O0IxMTc7MTEwMiAxMTY1IDExQjY7QjExNzsxMTAyIDExNjUgMTFCNjsKK0IxMTg7QjExODsxMTAyIDExNjUgMTFCNztCMTE4OzExMDIgMTE2NSAxMUI3OworQjExOTtCMTE5OzExMDIgMTE2NSAxMUI4O0IxMTk7MTEwMiAxMTY1IDExQjg7CitCMTFBO0IxMUE7MTEwMiAxMTY1IDExQjk7QjExQTsxMTAyIDExNjUgMTFCOTsKK0IxMUI7QjExQjsxMTAyIDExNjUgMTFCQTtCMTFCOzExMDIgMTE2NSAxMUJBOworQjExQztCMTFDOzExMDIgMTE2NSAxMUJCO0IxMUM7MTEwMiAxMTY1IDExQkI7CitCMTFEO0IxMUQ7MTEwMiAxMTY1IDExQkM7QjExRDsxMTAyIDExNjUgMTFCQzsKK0IxMUU7QjExRTsxMTAyIDExNjUgMTFCRDtCMTFFOzExMDIgMTE2NSAxMUJEOworQjExRjtCMTFGOzExMDIgMTE2NSAxMUJFO0IxMUY7MTEwMiAxMTY1IDExQkU7CitCMTIwO0IxMjA7MTEwMiAxMTY1IDExQkY7QjEyMDsxMTAyIDExNjUgMTFCRjsKK0IxMjE7QjEyMTsxMTAyIDExNjUgMTFDMDtCMTIxOzExMDIgMTE2NSAxMUMwOworQjEyMjtCMTIyOzExMDIgMTE2NSAxMUMxO0IxMjI7MTEwMiAxMTY1IDExQzE7CitCMTIzO0IxMjM7MTEwMiAxMTY1IDExQzI7QjEyMzsxMTAyIDExNjUgMTFDMjsKK0IxMjQ7QjEyNDsxMTAyIDExNjY7QjEyNDsxMTAyIDExNjY7CitCMTI1O0IxMjU7MTEwMiAxMTY2IDExQTg7QjEyNTsxMTAyIDExNjYgMTFBODsKK0IxMjY7QjEyNjsxMTAyIDExNjYgMTFBOTtCMTI2OzExMDIgMTE2NiAxMUE5OworQjEyNztCMTI3OzExMDIgMTE2NiAxMUFBO0IxMjc7MTEwMiAxMTY2IDExQUE7CitCMTI4O0IxMjg7MTEwMiAxMTY2IDExQUI7QjEyODsxMTAyIDExNjYgMTFBQjsKK0IxMjk7QjEyOTsxMTAyIDExNjYgMTFBQztCMTI5OzExMDIgMTE2NiAxMUFDOworQjEyQTtCMTJBOzExMDIgMTE2NiAxMUFEO0IxMkE7MTEwMiAxMTY2IDExQUQ7CitCMTJCO0IxMkI7MTEwMiAxMTY2IDExQUU7QjEyQjsxMTAyIDExNjYgMTFBRTsKK0IxMkM7QjEyQzsxMTAyIDExNjYgMTFBRjtCMTJDOzExMDIgMTE2NiAxMUFGOworQjEyRDtCMTJEOzExMDIgMTE2NiAxMUIwO0IxMkQ7MTEwMiAxMTY2IDExQjA7CitCMTJFO0IxMkU7MTEwMiAxMTY2IDExQjE7QjEyRTsxMTAyIDExNjYgMTFCMTsKK0IxMkY7QjEyRjsxMTAyIDExNjYgMTFCMjtCMTJGOzExMDIgMTE2NiAxMUIyOworQjEzMDtCMTMwOzExMDIgMTE2NiAxMUIzO0IxMzA7MTEwMiAxMTY2IDExQjM7CitCMTMxO0IxMzE7MTEwMiAxMTY2IDExQjQ7QjEzMTsxMTAyIDExNjYgMTFCNDsKK0IxMzI7QjEzMjsxMTAyIDExNjYgMTFCNTtCMTMyOzExMDIgMTE2NiAxMUI1OworQjEzMztCMTMzOzExMDIgMTE2NiAxMUI2O0IxMzM7MTEwMiAxMTY2IDExQjY7CitCMTM0O0IxMzQ7MTEwMiAxMTY2IDExQjc7QjEzNDsxMTAyIDExNjYgMTFCNzsKK0IxMzU7QjEzNTsxMTAyIDExNjYgMTFCODtCMTM1OzExMDIgMTE2NiAxMUI4OworQjEzNjtCMTM2OzExMDIgMTE2NiAxMUI5O0IxMzY7MTEwMiAxMTY2IDExQjk7CitCMTM3O0IxMzc7MTEwMiAxMTY2IDExQkE7QjEzNzsxMTAyIDExNjYgMTFCQTsKK0IxMzg7QjEzODsxMTAyIDExNjYgMTFCQjtCMTM4OzExMDIgMTE2NiAxMUJCOworQjEzOTtCMTM5OzExMDIgMTE2NiAxMUJDO0IxMzk7MTEwMiAxMTY2IDExQkM7CitCMTNBO0IxM0E7MTEwMiAxMTY2IDExQkQ7QjEzQTsxMTAyIDExNjYgMTFCRDsKK0IxM0I7QjEzQjsxMTAyIDExNjYgMTFCRTtCMTNCOzExMDIgMTE2NiAxMUJFOworQjEzQztCMTNDOzExMDIgMTE2NiAxMUJGO0IxM0M7MTEwMiAxMTY2IDExQkY7CitCMTNEO0IxM0Q7MTEwMiAxMTY2IDExQzA7QjEzRDsxMTAyIDExNjYgMTFDMDsKK0IxM0U7QjEzRTsxMTAyIDExNjYgMTFDMTtCMTNFOzExMDIgMTE2NiAxMUMxOworQjEzRjtCMTNGOzExMDIgMTE2NiAxMUMyO0IxM0Y7MTEwMiAxMTY2IDExQzI7CitCMTQwO0IxNDA7MTEwMiAxMTY3O0IxNDA7MTEwMiAxMTY3OworQjE0MTtCMTQxOzExMDIgMTE2NyAxMUE4O0IxNDE7MTEwMiAxMTY3IDExQTg7CitCMTQyO0IxNDI7MTEwMiAxMTY3IDExQTk7QjE0MjsxMTAyIDExNjcgMTFBOTsKK0IxNDM7QjE0MzsxMTAyIDExNjcgMTFBQTtCMTQzOzExMDIgMTE2NyAxMUFBOworQjE0NDtCMTQ0OzExMDIgMTE2NyAxMUFCO0IxNDQ7MTEwMiAxMTY3IDExQUI7CitCMTQ1O0IxNDU7MTEwMiAxMTY3IDExQUM7QjE0NTsxMTAyIDExNjcgMTFBQzsKK0IxNDY7QjE0NjsxMTAyIDExNjcgMTFBRDtCMTQ2OzExMDIgMTE2NyAxMUFEOworQjE0NztCMTQ3OzExMDIgMTE2NyAxMUFFO0IxNDc7MTEwMiAxMTY3IDExQUU7CitCMTQ4O0IxNDg7MTEwMiAxMTY3IDExQUY7QjE0ODsxMTAyIDExNjcgMTFBRjsKK0IxNDk7QjE0OTsxMTAyIDExNjcgMTFCMDtCMTQ5OzExMDIgMTE2NyAxMUIwOworQjE0QTtCMTRBOzExMDIgMTE2NyAxMUIxO0IxNEE7MTEwMiAxMTY3IDExQjE7CitCMTRCO0IxNEI7MTEwMiAxMTY3IDExQjI7QjE0QjsxMTAyIDExNjcgMTFCMjsKK0IxNEM7QjE0QzsxMTAyIDExNjcgMTFCMztCMTRDOzExMDIgMTE2NyAxMUIzOworQjE0RDtCMTREOzExMDIgMTE2NyAxMUI0O0IxNEQ7MTEwMiAxMTY3IDExQjQ7CitCMTRFO0IxNEU7MTEwMiAxMTY3IDExQjU7QjE0RTsxMTAyIDExNjcgMTFCNTsKK0IxNEY7QjE0RjsxMTAyIDExNjcgMTFCNjtCMTRGOzExMDIgMTE2NyAxMUI2OworQjE1MDtCMTUwOzExMDIgMTE2NyAxMUI3O0IxNTA7MTEwMiAxMTY3IDExQjc7CitCMTUxO0IxNTE7MTEwMiAxMTY3IDExQjg7QjE1MTsxMTAyIDExNjcgMTFCODsKK0IxNTI7QjE1MjsxMTAyIDExNjcgMTFCOTtCMTUyOzExMDIgMTE2NyAxMUI5OworQjE1MztCMTUzOzExMDIgMTE2NyAxMUJBO0IxNTM7MTEwMiAxMTY3IDExQkE7CitCMTU0O0IxNTQ7MTEwMiAxMTY3IDExQkI7QjE1NDsxMTAyIDExNjcgMTFCQjsKK0IxNTU7QjE1NTsxMTAyIDExNjcgMTFCQztCMTU1OzExMDIgMTE2NyAxMUJDOworQjE1NjtCMTU2OzExMDIgMTE2NyAxMUJEO0IxNTY7MTEwMiAxMTY3IDExQkQ7CitCMTU3O0IxNTc7MTEwMiAxMTY3IDExQkU7QjE1NzsxMTAyIDExNjcgMTFCRTsKK0IxNTg7QjE1ODsxMTAyIDExNjcgMTFCRjtCMTU4OzExMDIgMTE2NyAxMUJGOworQjE1OTtCMTU5OzExMDIgMTE2NyAxMUMwO0IxNTk7MTEwMiAxMTY3IDExQzA7CitCMTVBO0IxNUE7MTEwMiAxMTY3IDExQzE7QjE1QTsxMTAyIDExNjcgMTFDMTsKK0IxNUI7QjE1QjsxMTAyIDExNjcgMTFDMjtCMTVCOzExMDIgMTE2NyAxMUMyOworQjE1QztCMTVDOzExMDIgMTE2ODtCMTVDOzExMDIgMTE2ODsKK0IxNUQ7QjE1RDsxMTAyIDExNjggMTFBODtCMTVEOzExMDIgMTE2OCAxMUE4OworQjE1RTtCMTVFOzExMDIgMTE2OCAxMUE5O0IxNUU7MTEwMiAxMTY4IDExQTk7CitCMTVGO0IxNUY7MTEwMiAxMTY4IDExQUE7QjE1RjsxMTAyIDExNjggMTFBQTsKK0IxNjA7QjE2MDsxMTAyIDExNjggMTFBQjtCMTYwOzExMDIgMTE2OCAxMUFCOworQjE2MTtCMTYxOzExMDIgMTE2OCAxMUFDO0IxNjE7MTEwMiAxMTY4IDExQUM7CitCMTYyO0IxNjI7MTEwMiAxMTY4IDExQUQ7QjE2MjsxMTAyIDExNjggMTFBRDsKK0IxNjM7QjE2MzsxMTAyIDExNjggMTFBRTtCMTYzOzExMDIgMTE2OCAxMUFFOworQjE2NDtCMTY0OzExMDIgMTE2OCAxMUFGO0IxNjQ7MTEwMiAxMTY4IDExQUY7CitCMTY1O0IxNjU7MTEwMiAxMTY4IDExQjA7QjE2NTsxMTAyIDExNjggMTFCMDsKK0IxNjY7QjE2NjsxMTAyIDExNjggMTFCMTtCMTY2OzExMDIgMTE2OCAxMUIxOworQjE2NztCMTY3OzExMDIgMTE2OCAxMUIyO0IxNjc7MTEwMiAxMTY4IDExQjI7CitCMTY4O0IxNjg7MTEwMiAxMTY4IDExQjM7QjE2ODsxMTAyIDExNjggMTFCMzsKK0IxNjk7QjE2OTsxMTAyIDExNjggMTFCNDtCMTY5OzExMDIgMTE2OCAxMUI0OworQjE2QTtCMTZBOzExMDIgMTE2OCAxMUI1O0IxNkE7MTEwMiAxMTY4IDExQjU7CitCMTZCO0IxNkI7MTEwMiAxMTY4IDExQjY7QjE2QjsxMTAyIDExNjggMTFCNjsKK0IxNkM7QjE2QzsxMTAyIDExNjggMTFCNztCMTZDOzExMDIgMTE2OCAxMUI3OworQjE2RDtCMTZEOzExMDIgMTE2OCAxMUI4O0IxNkQ7MTEwMiAxMTY4IDExQjg7CitCMTZFO0IxNkU7MTEwMiAxMTY4IDExQjk7QjE2RTsxMTAyIDExNjggMTFCOTsKK0IxNkY7QjE2RjsxMTAyIDExNjggMTFCQTtCMTZGOzExMDIgMTE2OCAxMUJBOworQjE3MDtCMTcwOzExMDIgMTE2OCAxMUJCO0IxNzA7MTEwMiAxMTY4IDExQkI7CitCMTcxO0IxNzE7MTEwMiAxMTY4IDExQkM7QjE3MTsxMTAyIDExNjggMTFCQzsKK0IxNzI7QjE3MjsxMTAyIDExNjggMTFCRDtCMTcyOzExMDIgMTE2OCAxMUJEOworQjE3MztCMTczOzExMDIgMTE2OCAxMUJFO0IxNzM7MTEwMiAxMTY4IDExQkU7CitCMTc0O0IxNzQ7MTEwMiAxMTY4IDExQkY7QjE3NDsxMTAyIDExNjggMTFCRjsKK0IxNzU7QjE3NTsxMTAyIDExNjggMTFDMDtCMTc1OzExMDIgMTE2OCAxMUMwOworQjE3NjtCMTc2OzExMDIgMTE2OCAxMUMxO0IxNzY7MTEwMiAxMTY4IDExQzE7CitCMTc3O0IxNzc7MTEwMiAxMTY4IDExQzI7QjE3NzsxMTAyIDExNjggMTFDMjsKK0IxNzg7QjE3ODsxMTAyIDExNjk7QjE3ODsxMTAyIDExNjk7CitCMTc5O0IxNzk7MTEwMiAxMTY5IDExQTg7QjE3OTsxMTAyIDExNjkgMTFBODsKK0IxN0E7QjE3QTsxMTAyIDExNjkgMTFBOTtCMTdBOzExMDIgMTE2OSAxMUE5OworQjE3QjtCMTdCOzExMDIgMTE2OSAxMUFBO0IxN0I7MTEwMiAxMTY5IDExQUE7CitCMTdDO0IxN0M7MTEwMiAxMTY5IDExQUI7QjE3QzsxMTAyIDExNjkgMTFBQjsKK0IxN0Q7QjE3RDsxMTAyIDExNjkgMTFBQztCMTdEOzExMDIgMTE2OSAxMUFDOworQjE3RTtCMTdFOzExMDIgMTE2OSAxMUFEO0IxN0U7MTEwMiAxMTY5IDExQUQ7CitCMTdGO0IxN0Y7MTEwMiAxMTY5IDExQUU7QjE3RjsxMTAyIDExNjkgMTFBRTsKK0IxODA7QjE4MDsxMTAyIDExNjkgMTFBRjtCMTgwOzExMDIgMTE2OSAxMUFGOworQjE4MTtCMTgxOzExMDIgMTE2OSAxMUIwO0IxODE7MTEwMiAxMTY5IDExQjA7CitCMTgyO0IxODI7MTEwMiAxMTY5IDExQjE7QjE4MjsxMTAyIDExNjkgMTFCMTsKK0IxODM7QjE4MzsxMTAyIDExNjkgMTFCMjtCMTgzOzExMDIgMTE2OSAxMUIyOworQjE4NDtCMTg0OzExMDIgMTE2OSAxMUIzO0IxODQ7MTEwMiAxMTY5IDExQjM7CitCMTg1O0IxODU7MTEwMiAxMTY5IDExQjQ7QjE4NTsxMTAyIDExNjkgMTFCNDsKK0IxODY7QjE4NjsxMTAyIDExNjkgMTFCNTtCMTg2OzExMDIgMTE2OSAxMUI1OworQjE4NztCMTg3OzExMDIgMTE2OSAxMUI2O0IxODc7MTEwMiAxMTY5IDExQjY7CitCMTg4O0IxODg7MTEwMiAxMTY5IDExQjc7QjE4ODsxMTAyIDExNjkgMTFCNzsKK0IxODk7QjE4OTsxMTAyIDExNjkgMTFCODtCMTg5OzExMDIgMTE2OSAxMUI4OworQjE4QTtCMThBOzExMDIgMTE2OSAxMUI5O0IxOEE7MTEwMiAxMTY5IDExQjk7CitCMThCO0IxOEI7MTEwMiAxMTY5IDExQkE7QjE4QjsxMTAyIDExNjkgMTFCQTsKK0IxOEM7QjE4QzsxMTAyIDExNjkgMTFCQjtCMThDOzExMDIgMTE2OSAxMUJCOworQjE4RDtCMThEOzExMDIgMTE2OSAxMUJDO0IxOEQ7MTEwMiAxMTY5IDExQkM7CitCMThFO0IxOEU7MTEwMiAxMTY5IDExQkQ7QjE4RTsxMTAyIDExNjkgMTFCRDsKK0IxOEY7QjE4RjsxMTAyIDExNjkgMTFCRTtCMThGOzExMDIgMTE2OSAxMUJFOworQjE5MDtCMTkwOzExMDIgMTE2OSAxMUJGO0IxOTA7MTEwMiAxMTY5IDExQkY7CitCMTkxO0IxOTE7MTEwMiAxMTY5IDExQzA7QjE5MTsxMTAyIDExNjkgMTFDMDsKK0IxOTI7QjE5MjsxMTAyIDExNjkgMTFDMTtCMTkyOzExMDIgMTE2OSAxMUMxOworQjE5MztCMTkzOzExMDIgMTE2OSAxMUMyO0IxOTM7MTEwMiAxMTY5IDExQzI7CitCMTk0O0IxOTQ7MTEwMiAxMTZBO0IxOTQ7MTEwMiAxMTZBOworQjE5NTtCMTk1OzExMDIgMTE2QSAxMUE4O0IxOTU7MTEwMiAxMTZBIDExQTg7CitCMTk2O0IxOTY7MTEwMiAxMTZBIDExQTk7QjE5NjsxMTAyIDExNkEgMTFBOTsKK0IxOTc7QjE5NzsxMTAyIDExNkEgMTFBQTtCMTk3OzExMDIgMTE2QSAxMUFBOworQjE5ODtCMTk4OzExMDIgMTE2QSAxMUFCO0IxOTg7MTEwMiAxMTZBIDExQUI7CitCMTk5O0IxOTk7MTEwMiAxMTZBIDExQUM7QjE5OTsxMTAyIDExNkEgMTFBQzsKK0IxOUE7QjE5QTsxMTAyIDExNkEgMTFBRDtCMTlBOzExMDIgMTE2QSAxMUFEOworQjE5QjtCMTlCOzExMDIgMTE2QSAxMUFFO0IxOUI7MTEwMiAxMTZBIDExQUU7CitCMTlDO0IxOUM7MTEwMiAxMTZBIDExQUY7QjE5QzsxMTAyIDExNkEgMTFBRjsKK0IxOUQ7QjE5RDsxMTAyIDExNkEgMTFCMDtCMTlEOzExMDIgMTE2QSAxMUIwOworQjE5RTtCMTlFOzExMDIgMTE2QSAxMUIxO0IxOUU7MTEwMiAxMTZBIDExQjE7CitCMTlGO0IxOUY7MTEwMiAxMTZBIDExQjI7QjE5RjsxMTAyIDExNkEgMTFCMjsKK0IxQTA7QjFBMDsxMTAyIDExNkEgMTFCMztCMUEwOzExMDIgMTE2QSAxMUIzOworQjFBMTtCMUExOzExMDIgMTE2QSAxMUI0O0IxQTE7MTEwMiAxMTZBIDExQjQ7CitCMUEyO0IxQTI7MTEwMiAxMTZBIDExQjU7QjFBMjsxMTAyIDExNkEgMTFCNTsKK0IxQTM7QjFBMzsxMTAyIDExNkEgMTFCNjtCMUEzOzExMDIgMTE2QSAxMUI2OworQjFBNDtCMUE0OzExMDIgMTE2QSAxMUI3O0IxQTQ7MTEwMiAxMTZBIDExQjc7CitCMUE1O0IxQTU7MTEwMiAxMTZBIDExQjg7QjFBNTsxMTAyIDExNkEgMTFCODsKK0IxQTY7QjFBNjsxMTAyIDExNkEgMTFCOTtCMUE2OzExMDIgMTE2QSAxMUI5OworQjFBNztCMUE3OzExMDIgMTE2QSAxMUJBO0IxQTc7MTEwMiAxMTZBIDExQkE7CitCMUE4O0IxQTg7MTEwMiAxMTZBIDExQkI7QjFBODsxMTAyIDExNkEgMTFCQjsKK0IxQTk7QjFBOTsxMTAyIDExNkEgMTFCQztCMUE5OzExMDIgMTE2QSAxMUJDOworQjFBQTtCMUFBOzExMDIgMTE2QSAxMUJEO0IxQUE7MTEwMiAxMTZBIDExQkQ7CitCMUFCO0IxQUI7MTEwMiAxMTZBIDExQkU7QjFBQjsxMTAyIDExNkEgMTFCRTsKK0IxQUM7QjFBQzsxMTAyIDExNkEgMTFCRjtCMUFDOzExMDIgMTE2QSAxMUJGOworQjFBRDtCMUFEOzExMDIgMTE2QSAxMUMwO0IxQUQ7MTEwMiAxMTZBIDExQzA7CitCMUFFO0IxQUU7MTEwMiAxMTZBIDExQzE7QjFBRTsxMTAyIDExNkEgMTFDMTsKK0IxQUY7QjFBRjsxMTAyIDExNkEgMTFDMjtCMUFGOzExMDIgMTE2QSAxMUMyOworQjFCMDtCMUIwOzExMDIgMTE2QjtCMUIwOzExMDIgMTE2QjsKK0IxQjE7QjFCMTsxMTAyIDExNkIgMTFBODtCMUIxOzExMDIgMTE2QiAxMUE4OworQjFCMjtCMUIyOzExMDIgMTE2QiAxMUE5O0IxQjI7MTEwMiAxMTZCIDExQTk7CitCMUIzO0IxQjM7MTEwMiAxMTZCIDExQUE7QjFCMzsxMTAyIDExNkIgMTFBQTsKK0IxQjQ7QjFCNDsxMTAyIDExNkIgMTFBQjtCMUI0OzExMDIgMTE2QiAxMUFCOworQjFCNTtCMUI1OzExMDIgMTE2QiAxMUFDO0IxQjU7MTEwMiAxMTZCIDExQUM7CitCMUI2O0IxQjY7MTEwMiAxMTZCIDExQUQ7QjFCNjsxMTAyIDExNkIgMTFBRDsKK0IxQjc7QjFCNzsxMTAyIDExNkIgMTFBRTtCMUI3OzExMDIgMTE2QiAxMUFFOworQjFCODtCMUI4OzExMDIgMTE2QiAxMUFGO0IxQjg7MTEwMiAxMTZCIDExQUY7CitCMUI5O0IxQjk7MTEwMiAxMTZCIDExQjA7QjFCOTsxMTAyIDExNkIgMTFCMDsKK0IxQkE7QjFCQTsxMTAyIDExNkIgMTFCMTtCMUJBOzExMDIgMTE2QiAxMUIxOworQjFCQjtCMUJCOzExMDIgMTE2QiAxMUIyO0IxQkI7MTEwMiAxMTZCIDExQjI7CitCMUJDO0IxQkM7MTEwMiAxMTZCIDExQjM7QjFCQzsxMTAyIDExNkIgMTFCMzsKK0IxQkQ7QjFCRDsxMTAyIDExNkIgMTFCNDtCMUJEOzExMDIgMTE2QiAxMUI0OworQjFCRTtCMUJFOzExMDIgMTE2QiAxMUI1O0IxQkU7MTEwMiAxMTZCIDExQjU7CitCMUJGO0IxQkY7MTEwMiAxMTZCIDExQjY7QjFCRjsxMTAyIDExNkIgMTFCNjsKK0IxQzA7QjFDMDsxMTAyIDExNkIgMTFCNztCMUMwOzExMDIgMTE2QiAxMUI3OworQjFDMTtCMUMxOzExMDIgMTE2QiAxMUI4O0IxQzE7MTEwMiAxMTZCIDExQjg7CitCMUMyO0IxQzI7MTEwMiAxMTZCIDExQjk7QjFDMjsxMTAyIDExNkIgMTFCOTsKK0IxQzM7QjFDMzsxMTAyIDExNkIgMTFCQTtCMUMzOzExMDIgMTE2QiAxMUJBOworQjFDNDtCMUM0OzExMDIgMTE2QiAxMUJCO0IxQzQ7MTEwMiAxMTZCIDExQkI7CitCMUM1O0IxQzU7MTEwMiAxMTZCIDExQkM7QjFDNTsxMTAyIDExNkIgMTFCQzsKK0IxQzY7QjFDNjsxMTAyIDExNkIgMTFCRDtCMUM2OzExMDIgMTE2QiAxMUJEOworQjFDNztCMUM3OzExMDIgMTE2QiAxMUJFO0IxQzc7MTEwMiAxMTZCIDExQkU7CitCMUM4O0IxQzg7MTEwMiAxMTZCIDExQkY7QjFDODsxMTAyIDExNkIgMTFCRjsKK0IxQzk7QjFDOTsxMTAyIDExNkIgMTFDMDtCMUM5OzExMDIgMTE2QiAxMUMwOworQjFDQTtCMUNBOzExMDIgMTE2QiAxMUMxO0IxQ0E7MTEwMiAxMTZCIDExQzE7CitCMUNCO0IxQ0I7MTEwMiAxMTZCIDExQzI7QjFDQjsxMTAyIDExNkIgMTFDMjsKK0IxQ0M7QjFDQzsxMTAyIDExNkM7QjFDQzsxMTAyIDExNkM7CitCMUNEO0IxQ0Q7MTEwMiAxMTZDIDExQTg7QjFDRDsxMTAyIDExNkMgMTFBODsKK0IxQ0U7QjFDRTsxMTAyIDExNkMgMTFBOTtCMUNFOzExMDIgMTE2QyAxMUE5OworQjFDRjtCMUNGOzExMDIgMTE2QyAxMUFBO0IxQ0Y7MTEwMiAxMTZDIDExQUE7CitCMUQwO0IxRDA7MTEwMiAxMTZDIDExQUI7QjFEMDsxMTAyIDExNkMgMTFBQjsKK0IxRDE7QjFEMTsxMTAyIDExNkMgMTFBQztCMUQxOzExMDIgMTE2QyAxMUFDOworQjFEMjtCMUQyOzExMDIgMTE2QyAxMUFEO0IxRDI7MTEwMiAxMTZDIDExQUQ7CitCMUQzO0IxRDM7MTEwMiAxMTZDIDExQUU7QjFEMzsxMTAyIDExNkMgMTFBRTsKK0IxRDQ7QjFENDsxMTAyIDExNkMgMTFBRjtCMUQ0OzExMDIgMTE2QyAxMUFGOworQjFENTtCMUQ1OzExMDIgMTE2QyAxMUIwO0IxRDU7MTEwMiAxMTZDIDExQjA7CitCMUQ2O0IxRDY7MTEwMiAxMTZDIDExQjE7QjFENjsxMTAyIDExNkMgMTFCMTsKK0IxRDc7QjFENzsxMTAyIDExNkMgMTFCMjtCMUQ3OzExMDIgMTE2QyAxMUIyOworQjFEODtCMUQ4OzExMDIgMTE2QyAxMUIzO0IxRDg7MTEwMiAxMTZDIDExQjM7CitCMUQ5O0IxRDk7MTEwMiAxMTZDIDExQjQ7QjFEOTsxMTAyIDExNkMgMTFCNDsKK0IxREE7QjFEQTsxMTAyIDExNkMgMTFCNTtCMURBOzExMDIgMTE2QyAxMUI1OworQjFEQjtCMURCOzExMDIgMTE2QyAxMUI2O0IxREI7MTEwMiAxMTZDIDExQjY7CitCMURDO0IxREM7MTEwMiAxMTZDIDExQjc7QjFEQzsxMTAyIDExNkMgMTFCNzsKK0IxREQ7QjFERDsxMTAyIDExNkMgMTFCODtCMUREOzExMDIgMTE2QyAxMUI4OworQjFERTtCMURFOzExMDIgMTE2QyAxMUI5O0IxREU7MTEwMiAxMTZDIDExQjk7CitCMURGO0IxREY7MTEwMiAxMTZDIDExQkE7QjFERjsxMTAyIDExNkMgMTFCQTsKK0IxRTA7QjFFMDsxMTAyIDExNkMgMTFCQjtCMUUwOzExMDIgMTE2QyAxMUJCOworQjFFMTtCMUUxOzExMDIgMTE2QyAxMUJDO0IxRTE7MTEwMiAxMTZDIDExQkM7CitCMUUyO0IxRTI7MTEwMiAxMTZDIDExQkQ7QjFFMjsxMTAyIDExNkMgMTFCRDsKK0IxRTM7QjFFMzsxMTAyIDExNkMgMTFCRTtCMUUzOzExMDIgMTE2QyAxMUJFOworQjFFNDtCMUU0OzExMDIgMTE2QyAxMUJGO0IxRTQ7MTEwMiAxMTZDIDExQkY7CitCMUU1O0IxRTU7MTEwMiAxMTZDIDExQzA7QjFFNTsxMTAyIDExNkMgMTFDMDsKK0IxRTY7QjFFNjsxMTAyIDExNkMgMTFDMTtCMUU2OzExMDIgMTE2QyAxMUMxOworQjFFNztCMUU3OzExMDIgMTE2QyAxMUMyO0IxRTc7MTEwMiAxMTZDIDExQzI7CitCMUU4O0IxRTg7MTEwMiAxMTZEO0IxRTg7MTEwMiAxMTZEOworQjFFOTtCMUU5OzExMDIgMTE2RCAxMUE4O0IxRTk7MTEwMiAxMTZEIDExQTg7CitCMUVBO0IxRUE7MTEwMiAxMTZEIDExQTk7QjFFQTsxMTAyIDExNkQgMTFBOTsKK0IxRUI7QjFFQjsxMTAyIDExNkQgMTFBQTtCMUVCOzExMDIgMTE2RCAxMUFBOworQjFFQztCMUVDOzExMDIgMTE2RCAxMUFCO0IxRUM7MTEwMiAxMTZEIDExQUI7CitCMUVEO0IxRUQ7MTEwMiAxMTZEIDExQUM7QjFFRDsxMTAyIDExNkQgMTFBQzsKK0IxRUU7QjFFRTsxMTAyIDExNkQgMTFBRDtCMUVFOzExMDIgMTE2RCAxMUFEOworQjFFRjtCMUVGOzExMDIgMTE2RCAxMUFFO0IxRUY7MTEwMiAxMTZEIDExQUU7CitCMUYwO0IxRjA7MTEwMiAxMTZEIDExQUY7QjFGMDsxMTAyIDExNkQgMTFBRjsKK0IxRjE7QjFGMTsxMTAyIDExNkQgMTFCMDtCMUYxOzExMDIgMTE2RCAxMUIwOworQjFGMjtCMUYyOzExMDIgMTE2RCAxMUIxO0IxRjI7MTEwMiAxMTZEIDExQjE7CitCMUYzO0IxRjM7MTEwMiAxMTZEIDExQjI7QjFGMzsxMTAyIDExNkQgMTFCMjsKK0IxRjQ7QjFGNDsxMTAyIDExNkQgMTFCMztCMUY0OzExMDIgMTE2RCAxMUIzOworQjFGNTtCMUY1OzExMDIgMTE2RCAxMUI0O0IxRjU7MTEwMiAxMTZEIDExQjQ7CitCMUY2O0IxRjY7MTEwMiAxMTZEIDExQjU7QjFGNjsxMTAyIDExNkQgMTFCNTsKK0IxRjc7QjFGNzsxMTAyIDExNkQgMTFCNjtCMUY3OzExMDIgMTE2RCAxMUI2OworQjFGODtCMUY4OzExMDIgMTE2RCAxMUI3O0IxRjg7MTEwMiAxMTZEIDExQjc7CitCMUY5O0IxRjk7MTEwMiAxMTZEIDExQjg7QjFGOTsxMTAyIDExNkQgMTFCODsKK0IxRkE7QjFGQTsxMTAyIDExNkQgMTFCOTtCMUZBOzExMDIgMTE2RCAxMUI5OworQjFGQjtCMUZCOzExMDIgMTE2RCAxMUJBO0IxRkI7MTEwMiAxMTZEIDExQkE7CitCMUZDO0IxRkM7MTEwMiAxMTZEIDExQkI7QjFGQzsxMTAyIDExNkQgMTFCQjsKK0IxRkQ7QjFGRDsxMTAyIDExNkQgMTFCQztCMUZEOzExMDIgMTE2RCAxMUJDOworQjFGRTtCMUZFOzExMDIgMTE2RCAxMUJEO0IxRkU7MTEwMiAxMTZEIDExQkQ7CitCMUZGO0IxRkY7MTEwMiAxMTZEIDExQkU7QjFGRjsxMTAyIDExNkQgMTFCRTsKK0IyMDA7QjIwMDsxMTAyIDExNkQgMTFCRjtCMjAwOzExMDIgMTE2RCAxMUJGOworQjIwMTtCMjAxOzExMDIgMTE2RCAxMUMwO0IyMDE7MTEwMiAxMTZEIDExQzA7CitCMjAyO0IyMDI7MTEwMiAxMTZEIDExQzE7QjIwMjsxMTAyIDExNkQgMTFDMTsKK0IyMDM7QjIwMzsxMTAyIDExNkQgMTFDMjtCMjAzOzExMDIgMTE2RCAxMUMyOworQjIwNDtCMjA0OzExMDIgMTE2RTtCMjA0OzExMDIgMTE2RTsKK0IyMDU7QjIwNTsxMTAyIDExNkUgMTFBODtCMjA1OzExMDIgMTE2RSAxMUE4OworQjIwNjtCMjA2OzExMDIgMTE2RSAxMUE5O0IyMDY7MTEwMiAxMTZFIDExQTk7CitCMjA3O0IyMDc7MTEwMiAxMTZFIDExQUE7QjIwNzsxMTAyIDExNkUgMTFBQTsKK0IyMDg7QjIwODsxMTAyIDExNkUgMTFBQjtCMjA4OzExMDIgMTE2RSAxMUFCOworQjIwOTtCMjA5OzExMDIgMTE2RSAxMUFDO0IyMDk7MTEwMiAxMTZFIDExQUM7CitCMjBBO0IyMEE7MTEwMiAxMTZFIDExQUQ7QjIwQTsxMTAyIDExNkUgMTFBRDsKK0IyMEI7QjIwQjsxMTAyIDExNkUgMTFBRTtCMjBCOzExMDIgMTE2RSAxMUFFOworQjIwQztCMjBDOzExMDIgMTE2RSAxMUFGO0IyMEM7MTEwMiAxMTZFIDExQUY7CitCMjBEO0IyMEQ7MTEwMiAxMTZFIDExQjA7QjIwRDsxMTAyIDExNkUgMTFCMDsKK0IyMEU7QjIwRTsxMTAyIDExNkUgMTFCMTtCMjBFOzExMDIgMTE2RSAxMUIxOworQjIwRjtCMjBGOzExMDIgMTE2RSAxMUIyO0IyMEY7MTEwMiAxMTZFIDExQjI7CitCMjEwO0IyMTA7MTEwMiAxMTZFIDExQjM7QjIxMDsxMTAyIDExNkUgMTFCMzsKK0IyMTE7QjIxMTsxMTAyIDExNkUgMTFCNDtCMjExOzExMDIgMTE2RSAxMUI0OworQjIxMjtCMjEyOzExMDIgMTE2RSAxMUI1O0IyMTI7MTEwMiAxMTZFIDExQjU7CitCMjEzO0IyMTM7MTEwMiAxMTZFIDExQjY7QjIxMzsxMTAyIDExNkUgMTFCNjsKK0IyMTQ7QjIxNDsxMTAyIDExNkUgMTFCNztCMjE0OzExMDIgMTE2RSAxMUI3OworQjIxNTtCMjE1OzExMDIgMTE2RSAxMUI4O0IyMTU7MTEwMiAxMTZFIDExQjg7CitCMjE2O0IyMTY7MTEwMiAxMTZFIDExQjk7QjIxNjsxMTAyIDExNkUgMTFCOTsKK0IyMTc7QjIxNzsxMTAyIDExNkUgMTFCQTtCMjE3OzExMDIgMTE2RSAxMUJBOworQjIxODtCMjE4OzExMDIgMTE2RSAxMUJCO0IyMTg7MTEwMiAxMTZFIDExQkI7CitCMjE5O0IyMTk7MTEwMiAxMTZFIDExQkM7QjIxOTsxMTAyIDExNkUgMTFCQzsKK0IyMUE7QjIxQTsxMTAyIDExNkUgMTFCRDtCMjFBOzExMDIgMTE2RSAxMUJEOworQjIxQjtCMjFCOzExMDIgMTE2RSAxMUJFO0IyMUI7MTEwMiAxMTZFIDExQkU7CitCMjFDO0IyMUM7MTEwMiAxMTZFIDExQkY7QjIxQzsxMTAyIDExNkUgMTFCRjsKK0IyMUQ7QjIxRDsxMTAyIDExNkUgMTFDMDtCMjFEOzExMDIgMTE2RSAxMUMwOworQjIxRTtCMjFFOzExMDIgMTE2RSAxMUMxO0IyMUU7MTEwMiAxMTZFIDExQzE7CitCMjFGO0IyMUY7MTEwMiAxMTZFIDExQzI7QjIxRjsxMTAyIDExNkUgMTFDMjsKK0IyMjA7QjIyMDsxMTAyIDExNkY7QjIyMDsxMTAyIDExNkY7CitCMjIxO0IyMjE7MTEwMiAxMTZGIDExQTg7QjIyMTsxMTAyIDExNkYgMTFBODsKK0IyMjI7QjIyMjsxMTAyIDExNkYgMTFBOTtCMjIyOzExMDIgMTE2RiAxMUE5OworQjIyMztCMjIzOzExMDIgMTE2RiAxMUFBO0IyMjM7MTEwMiAxMTZGIDExQUE7CitCMjI0O0IyMjQ7MTEwMiAxMTZGIDExQUI7QjIyNDsxMTAyIDExNkYgMTFBQjsKK0IyMjU7QjIyNTsxMTAyIDExNkYgMTFBQztCMjI1OzExMDIgMTE2RiAxMUFDOworQjIyNjtCMjI2OzExMDIgMTE2RiAxMUFEO0IyMjY7MTEwMiAxMTZGIDExQUQ7CitCMjI3O0IyMjc7MTEwMiAxMTZGIDExQUU7QjIyNzsxMTAyIDExNkYgMTFBRTsKK0IyMjg7QjIyODsxMTAyIDExNkYgMTFBRjtCMjI4OzExMDIgMTE2RiAxMUFGOworQjIyOTtCMjI5OzExMDIgMTE2RiAxMUIwO0IyMjk7MTEwMiAxMTZGIDExQjA7CitCMjJBO0IyMkE7MTEwMiAxMTZGIDExQjE7QjIyQTsxMTAyIDExNkYgMTFCMTsKK0IyMkI7QjIyQjsxMTAyIDExNkYgMTFCMjtCMjJCOzExMDIgMTE2RiAxMUIyOworQjIyQztCMjJDOzExMDIgMTE2RiAxMUIzO0IyMkM7MTEwMiAxMTZGIDExQjM7CitCMjJEO0IyMkQ7MTEwMiAxMTZGIDExQjQ7QjIyRDsxMTAyIDExNkYgMTFCNDsKK0IyMkU7QjIyRTsxMTAyIDExNkYgMTFCNTtCMjJFOzExMDIgMTE2RiAxMUI1OworQjIyRjtCMjJGOzExMDIgMTE2RiAxMUI2O0IyMkY7MTEwMiAxMTZGIDExQjY7CitCMjMwO0IyMzA7MTEwMiAxMTZGIDExQjc7QjIzMDsxMTAyIDExNkYgMTFCNzsKK0IyMzE7QjIzMTsxMTAyIDExNkYgMTFCODtCMjMxOzExMDIgMTE2RiAxMUI4OworQjIzMjtCMjMyOzExMDIgMTE2RiAxMUI5O0IyMzI7MTEwMiAxMTZGIDExQjk7CitCMjMzO0IyMzM7MTEwMiAxMTZGIDExQkE7QjIzMzsxMTAyIDExNkYgMTFCQTsKK0IyMzQ7QjIzNDsxMTAyIDExNkYgMTFCQjtCMjM0OzExMDIgMTE2RiAxMUJCOworQjIzNTtCMjM1OzExMDIgMTE2RiAxMUJDO0IyMzU7MTEwMiAxMTZGIDExQkM7CitCMjM2O0IyMzY7MTEwMiAxMTZGIDExQkQ7QjIzNjsxMTAyIDExNkYgMTFCRDsKK0IyMzc7QjIzNzsxMTAyIDExNkYgMTFCRTtCMjM3OzExMDIgMTE2RiAxMUJFOworQjIzODtCMjM4OzExMDIgMTE2RiAxMUJGO0IyMzg7MTEwMiAxMTZGIDExQkY7CitCMjM5O0IyMzk7MTEwMiAxMTZGIDExQzA7QjIzOTsxMTAyIDExNkYgMTFDMDsKK0IyM0E7QjIzQTsxMTAyIDExNkYgMTFDMTtCMjNBOzExMDIgMTE2RiAxMUMxOworQjIzQjtCMjNCOzExMDIgMTE2RiAxMUMyO0IyM0I7MTEwMiAxMTZGIDExQzI7CitCMjNDO0IyM0M7MTEwMiAxMTcwO0IyM0M7MTEwMiAxMTcwOworQjIzRDtCMjNEOzExMDIgMTE3MCAxMUE4O0IyM0Q7MTEwMiAxMTcwIDExQTg7CitCMjNFO0IyM0U7MTEwMiAxMTcwIDExQTk7QjIzRTsxMTAyIDExNzAgMTFBOTsKK0IyM0Y7QjIzRjsxMTAyIDExNzAgMTFBQTtCMjNGOzExMDIgMTE3MCAxMUFBOworQjI0MDtCMjQwOzExMDIgMTE3MCAxMUFCO0IyNDA7MTEwMiAxMTcwIDExQUI7CitCMjQxO0IyNDE7MTEwMiAxMTcwIDExQUM7QjI0MTsxMTAyIDExNzAgMTFBQzsKK0IyNDI7QjI0MjsxMTAyIDExNzAgMTFBRDtCMjQyOzExMDIgMTE3MCAxMUFEOworQjI0MztCMjQzOzExMDIgMTE3MCAxMUFFO0IyNDM7MTEwMiAxMTcwIDExQUU7CitCMjQ0O0IyNDQ7MTEwMiAxMTcwIDExQUY7QjI0NDsxMTAyIDExNzAgMTFBRjsKK0IyNDU7QjI0NTsxMTAyIDExNzAgMTFCMDtCMjQ1OzExMDIgMTE3MCAxMUIwOworQjI0NjtCMjQ2OzExMDIgMTE3MCAxMUIxO0IyNDY7MTEwMiAxMTcwIDExQjE7CitCMjQ3O0IyNDc7MTEwMiAxMTcwIDExQjI7QjI0NzsxMTAyIDExNzAgMTFCMjsKK0IyNDg7QjI0ODsxMTAyIDExNzAgMTFCMztCMjQ4OzExMDIgMTE3MCAxMUIzOworQjI0OTtCMjQ5OzExMDIgMTE3MCAxMUI0O0IyNDk7MTEwMiAxMTcwIDExQjQ7CitCMjRBO0IyNEE7MTEwMiAxMTcwIDExQjU7QjI0QTsxMTAyIDExNzAgMTFCNTsKK0IyNEI7QjI0QjsxMTAyIDExNzAgMTFCNjtCMjRCOzExMDIgMTE3MCAxMUI2OworQjI0QztCMjRDOzExMDIgMTE3MCAxMUI3O0IyNEM7MTEwMiAxMTcwIDExQjc7CitCMjREO0IyNEQ7MTEwMiAxMTcwIDExQjg7QjI0RDsxMTAyIDExNzAgMTFCODsKK0IyNEU7QjI0RTsxMTAyIDExNzAgMTFCOTtCMjRFOzExMDIgMTE3MCAxMUI5OworQjI0RjtCMjRGOzExMDIgMTE3MCAxMUJBO0IyNEY7MTEwMiAxMTcwIDExQkE7CitCMjUwO0IyNTA7MTEwMiAxMTcwIDExQkI7QjI1MDsxMTAyIDExNzAgMTFCQjsKK0IyNTE7QjI1MTsxMTAyIDExNzAgMTFCQztCMjUxOzExMDIgMTE3MCAxMUJDOworQjI1MjtCMjUyOzExMDIgMTE3MCAxMUJEO0IyNTI7MTEwMiAxMTcwIDExQkQ7CitCMjUzO0IyNTM7MTEwMiAxMTcwIDExQkU7QjI1MzsxMTAyIDExNzAgMTFCRTsKK0IyNTQ7QjI1NDsxMTAyIDExNzAgMTFCRjtCMjU0OzExMDIgMTE3MCAxMUJGOworQjI1NTtCMjU1OzExMDIgMTE3MCAxMUMwO0IyNTU7MTEwMiAxMTcwIDExQzA7CitCMjU2O0IyNTY7MTEwMiAxMTcwIDExQzE7QjI1NjsxMTAyIDExNzAgMTFDMTsKK0IyNTc7QjI1NzsxMTAyIDExNzAgMTFDMjtCMjU3OzExMDIgMTE3MCAxMUMyOworQjI1ODtCMjU4OzExMDIgMTE3MTtCMjU4OzExMDIgMTE3MTsKK0IyNTk7QjI1OTsxMTAyIDExNzEgMTFBODtCMjU5OzExMDIgMTE3MSAxMUE4OworQjI1QTtCMjVBOzExMDIgMTE3MSAxMUE5O0IyNUE7MTEwMiAxMTcxIDExQTk7CitCMjVCO0IyNUI7MTEwMiAxMTcxIDExQUE7QjI1QjsxMTAyIDExNzEgMTFBQTsKK0IyNUM7QjI1QzsxMTAyIDExNzEgMTFBQjtCMjVDOzExMDIgMTE3MSAxMUFCOworQjI1RDtCMjVEOzExMDIgMTE3MSAxMUFDO0IyNUQ7MTEwMiAxMTcxIDExQUM7CitCMjVFO0IyNUU7MTEwMiAxMTcxIDExQUQ7QjI1RTsxMTAyIDExNzEgMTFBRDsKK0IyNUY7QjI1RjsxMTAyIDExNzEgMTFBRTtCMjVGOzExMDIgMTE3MSAxMUFFOworQjI2MDtCMjYwOzExMDIgMTE3MSAxMUFGO0IyNjA7MTEwMiAxMTcxIDExQUY7CitCMjYxO0IyNjE7MTEwMiAxMTcxIDExQjA7QjI2MTsxMTAyIDExNzEgMTFCMDsKK0IyNjI7QjI2MjsxMTAyIDExNzEgMTFCMTtCMjYyOzExMDIgMTE3MSAxMUIxOworQjI2MztCMjYzOzExMDIgMTE3MSAxMUIyO0IyNjM7MTEwMiAxMTcxIDExQjI7CitCMjY0O0IyNjQ7MTEwMiAxMTcxIDExQjM7QjI2NDsxMTAyIDExNzEgMTFCMzsKK0IyNjU7QjI2NTsxMTAyIDExNzEgMTFCNDtCMjY1OzExMDIgMTE3MSAxMUI0OworQjI2NjtCMjY2OzExMDIgMTE3MSAxMUI1O0IyNjY7MTEwMiAxMTcxIDExQjU7CitCMjY3O0IyNjc7MTEwMiAxMTcxIDExQjY7QjI2NzsxMTAyIDExNzEgMTFCNjsKK0IyNjg7QjI2ODsxMTAyIDExNzEgMTFCNztCMjY4OzExMDIgMTE3MSAxMUI3OworQjI2OTtCMjY5OzExMDIgMTE3MSAxMUI4O0IyNjk7MTEwMiAxMTcxIDExQjg7CitCMjZBO0IyNkE7MTEwMiAxMTcxIDExQjk7QjI2QTsxMTAyIDExNzEgMTFCOTsKK0IyNkI7QjI2QjsxMTAyIDExNzEgMTFCQTtCMjZCOzExMDIgMTE3MSAxMUJBOworQjI2QztCMjZDOzExMDIgMTE3MSAxMUJCO0IyNkM7MTEwMiAxMTcxIDExQkI7CitCMjZEO0IyNkQ7MTEwMiAxMTcxIDExQkM7QjI2RDsxMTAyIDExNzEgMTFCQzsKK0IyNkU7QjI2RTsxMTAyIDExNzEgMTFCRDtCMjZFOzExMDIgMTE3MSAxMUJEOworQjI2RjtCMjZGOzExMDIgMTE3MSAxMUJFO0IyNkY7MTEwMiAxMTcxIDExQkU7CitCMjcwO0IyNzA7MTEwMiAxMTcxIDExQkY7QjI3MDsxMTAyIDExNzEgMTFCRjsKK0IyNzE7QjI3MTsxMTAyIDExNzEgMTFDMDtCMjcxOzExMDIgMTE3MSAxMUMwOworQjI3MjtCMjcyOzExMDIgMTE3MSAxMUMxO0IyNzI7MTEwMiAxMTcxIDExQzE7CitCMjczO0IyNzM7MTEwMiAxMTcxIDExQzI7QjI3MzsxMTAyIDExNzEgMTFDMjsKK0IyNzQ7QjI3NDsxMTAyIDExNzI7QjI3NDsxMTAyIDExNzI7CitCMjc1O0IyNzU7MTEwMiAxMTcyIDExQTg7QjI3NTsxMTAyIDExNzIgMTFBODsKK0IyNzY7QjI3NjsxMTAyIDExNzIgMTFBOTtCMjc2OzExMDIgMTE3MiAxMUE5OworQjI3NztCMjc3OzExMDIgMTE3MiAxMUFBO0IyNzc7MTEwMiAxMTcyIDExQUE7CitCMjc4O0IyNzg7MTEwMiAxMTcyIDExQUI7QjI3ODsxMTAyIDExNzIgMTFBQjsKK0IyNzk7QjI3OTsxMTAyIDExNzIgMTFBQztCMjc5OzExMDIgMTE3MiAxMUFDOworQjI3QTtCMjdBOzExMDIgMTE3MiAxMUFEO0IyN0E7MTEwMiAxMTcyIDExQUQ7CitCMjdCO0IyN0I7MTEwMiAxMTcyIDExQUU7QjI3QjsxMTAyIDExNzIgMTFBRTsKK0IyN0M7QjI3QzsxMTAyIDExNzIgMTFBRjtCMjdDOzExMDIgMTE3MiAxMUFGOworQjI3RDtCMjdEOzExMDIgMTE3MiAxMUIwO0IyN0Q7MTEwMiAxMTcyIDExQjA7CitCMjdFO0IyN0U7MTEwMiAxMTcyIDExQjE7QjI3RTsxMTAyIDExNzIgMTFCMTsKK0IyN0Y7QjI3RjsxMTAyIDExNzIgMTFCMjtCMjdGOzExMDIgMTE3MiAxMUIyOworQjI4MDtCMjgwOzExMDIgMTE3MiAxMUIzO0IyODA7MTEwMiAxMTcyIDExQjM7CitCMjgxO0IyODE7MTEwMiAxMTcyIDExQjQ7QjI4MTsxMTAyIDExNzIgMTFCNDsKK0IyODI7QjI4MjsxMTAyIDExNzIgMTFCNTtCMjgyOzExMDIgMTE3MiAxMUI1OworQjI4MztCMjgzOzExMDIgMTE3MiAxMUI2O0IyODM7MTEwMiAxMTcyIDExQjY7CitCMjg0O0IyODQ7MTEwMiAxMTcyIDExQjc7QjI4NDsxMTAyIDExNzIgMTFCNzsKK0IyODU7QjI4NTsxMTAyIDExNzIgMTFCODtCMjg1OzExMDIgMTE3MiAxMUI4OworQjI4NjtCMjg2OzExMDIgMTE3MiAxMUI5O0IyODY7MTEwMiAxMTcyIDExQjk7CitCMjg3O0IyODc7MTEwMiAxMTcyIDExQkE7QjI4NzsxMTAyIDExNzIgMTFCQTsKK0IyODg7QjI4ODsxMTAyIDExNzIgMTFCQjtCMjg4OzExMDIgMTE3MiAxMUJCOworQjI4OTtCMjg5OzExMDIgMTE3MiAxMUJDO0IyODk7MTEwMiAxMTcyIDExQkM7CitCMjhBO0IyOEE7MTEwMiAxMTcyIDExQkQ7QjI4QTsxMTAyIDExNzIgMTFCRDsKK0IyOEI7QjI4QjsxMTAyIDExNzIgMTFCRTtCMjhCOzExMDIgMTE3MiAxMUJFOworQjI4QztCMjhDOzExMDIgMTE3MiAxMUJGO0IyOEM7MTEwMiAxMTcyIDExQkY7CitCMjhEO0IyOEQ7MTEwMiAxMTcyIDExQzA7QjI4RDsxMTAyIDExNzIgMTFDMDsKK0IyOEU7QjI4RTsxMTAyIDExNzIgMTFDMTtCMjhFOzExMDIgMTE3MiAxMUMxOworQjI4RjtCMjhGOzExMDIgMTE3MiAxMUMyO0IyOEY7MTEwMiAxMTcyIDExQzI7CitCMjkwO0IyOTA7MTEwMiAxMTczO0IyOTA7MTEwMiAxMTczOworQjI5MTtCMjkxOzExMDIgMTE3MyAxMUE4O0IyOTE7MTEwMiAxMTczIDExQTg7CitCMjkyO0IyOTI7MTEwMiAxMTczIDExQTk7QjI5MjsxMTAyIDExNzMgMTFBOTsKK0IyOTM7QjI5MzsxMTAyIDExNzMgMTFBQTtCMjkzOzExMDIgMTE3MyAxMUFBOworQjI5NDtCMjk0OzExMDIgMTE3MyAxMUFCO0IyOTQ7MTEwMiAxMTczIDExQUI7CitCMjk1O0IyOTU7MTEwMiAxMTczIDExQUM7QjI5NTsxMTAyIDExNzMgMTFBQzsKK0IyOTY7QjI5NjsxMTAyIDExNzMgMTFBRDtCMjk2OzExMDIgMTE3MyAxMUFEOworQjI5NztCMjk3OzExMDIgMTE3MyAxMUFFO0IyOTc7MTEwMiAxMTczIDExQUU7CitCMjk4O0IyOTg7MTEwMiAxMTczIDExQUY7QjI5ODsxMTAyIDExNzMgMTFBRjsKK0IyOTk7QjI5OTsxMTAyIDExNzMgMTFCMDtCMjk5OzExMDIgMTE3MyAxMUIwOworQjI5QTtCMjlBOzExMDIgMTE3MyAxMUIxO0IyOUE7MTEwMiAxMTczIDExQjE7CitCMjlCO0IyOUI7MTEwMiAxMTczIDExQjI7QjI5QjsxMTAyIDExNzMgMTFCMjsKK0IyOUM7QjI5QzsxMTAyIDExNzMgMTFCMztCMjlDOzExMDIgMTE3MyAxMUIzOworQjI5RDtCMjlEOzExMDIgMTE3MyAxMUI0O0IyOUQ7MTEwMiAxMTczIDExQjQ7CitCMjlFO0IyOUU7MTEwMiAxMTczIDExQjU7QjI5RTsxMTAyIDExNzMgMTFCNTsKK0IyOUY7QjI5RjsxMTAyIDExNzMgMTFCNjtCMjlGOzExMDIgMTE3MyAxMUI2OworQjJBMDtCMkEwOzExMDIgMTE3MyAxMUI3O0IyQTA7MTEwMiAxMTczIDExQjc7CitCMkExO0IyQTE7MTEwMiAxMTczIDExQjg7QjJBMTsxMTAyIDExNzMgMTFCODsKK0IyQTI7QjJBMjsxMTAyIDExNzMgMTFCOTtCMkEyOzExMDIgMTE3MyAxMUI5OworQjJBMztCMkEzOzExMDIgMTE3MyAxMUJBO0IyQTM7MTEwMiAxMTczIDExQkE7CitCMkE0O0IyQTQ7MTEwMiAxMTczIDExQkI7QjJBNDsxMTAyIDExNzMgMTFCQjsKK0IyQTU7QjJBNTsxMTAyIDExNzMgMTFCQztCMkE1OzExMDIgMTE3MyAxMUJDOworQjJBNjtCMkE2OzExMDIgMTE3MyAxMUJEO0IyQTY7MTEwMiAxMTczIDExQkQ7CitCMkE3O0IyQTc7MTEwMiAxMTczIDExQkU7QjJBNzsxMTAyIDExNzMgMTFCRTsKK0IyQTg7QjJBODsxMTAyIDExNzMgMTFCRjtCMkE4OzExMDIgMTE3MyAxMUJGOworQjJBOTtCMkE5OzExMDIgMTE3MyAxMUMwO0IyQTk7MTEwMiAxMTczIDExQzA7CitCMkFBO0IyQUE7MTEwMiAxMTczIDExQzE7QjJBQTsxMTAyIDExNzMgMTFDMTsKK0IyQUI7QjJBQjsxMTAyIDExNzMgMTFDMjtCMkFCOzExMDIgMTE3MyAxMUMyOworQjJBQztCMkFDOzExMDIgMTE3NDtCMkFDOzExMDIgMTE3NDsKK0IyQUQ7QjJBRDsxMTAyIDExNzQgMTFBODtCMkFEOzExMDIgMTE3NCAxMUE4OworQjJBRTtCMkFFOzExMDIgMTE3NCAxMUE5O0IyQUU7MTEwMiAxMTc0IDExQTk7CitCMkFGO0IyQUY7MTEwMiAxMTc0IDExQUE7QjJBRjsxMTAyIDExNzQgMTFBQTsKK0IyQjA7QjJCMDsxMTAyIDExNzQgMTFBQjtCMkIwOzExMDIgMTE3NCAxMUFCOworQjJCMTtCMkIxOzExMDIgMTE3NCAxMUFDO0IyQjE7MTEwMiAxMTc0IDExQUM7CitCMkIyO0IyQjI7MTEwMiAxMTc0IDExQUQ7QjJCMjsxMTAyIDExNzQgMTFBRDsKK0IyQjM7QjJCMzsxMTAyIDExNzQgMTFBRTtCMkIzOzExMDIgMTE3NCAxMUFFOworQjJCNDtCMkI0OzExMDIgMTE3NCAxMUFGO0IyQjQ7MTEwMiAxMTc0IDExQUY7CitCMkI1O0IyQjU7MTEwMiAxMTc0IDExQjA7QjJCNTsxMTAyIDExNzQgMTFCMDsKK0IyQjY7QjJCNjsxMTAyIDExNzQgMTFCMTtCMkI2OzExMDIgMTE3NCAxMUIxOworQjJCNztCMkI3OzExMDIgMTE3NCAxMUIyO0IyQjc7MTEwMiAxMTc0IDExQjI7CitCMkI4O0IyQjg7MTEwMiAxMTc0IDExQjM7QjJCODsxMTAyIDExNzQgMTFCMzsKK0IyQjk7QjJCOTsxMTAyIDExNzQgMTFCNDtCMkI5OzExMDIgMTE3NCAxMUI0OworQjJCQTtCMkJBOzExMDIgMTE3NCAxMUI1O0IyQkE7MTEwMiAxMTc0IDExQjU7CitCMkJCO0IyQkI7MTEwMiAxMTc0IDExQjY7QjJCQjsxMTAyIDExNzQgMTFCNjsKK0IyQkM7QjJCQzsxMTAyIDExNzQgMTFCNztCMkJDOzExMDIgMTE3NCAxMUI3OworQjJCRDtCMkJEOzExMDIgMTE3NCAxMUI4O0IyQkQ7MTEwMiAxMTc0IDExQjg7CitCMkJFO0IyQkU7MTEwMiAxMTc0IDExQjk7QjJCRTsxMTAyIDExNzQgMTFCOTsKK0IyQkY7QjJCRjsxMTAyIDExNzQgMTFCQTtCMkJGOzExMDIgMTE3NCAxMUJBOworQjJDMDtCMkMwOzExMDIgMTE3NCAxMUJCO0IyQzA7MTEwMiAxMTc0IDExQkI7CitCMkMxO0IyQzE7MTEwMiAxMTc0IDExQkM7QjJDMTsxMTAyIDExNzQgMTFCQzsKK0IyQzI7QjJDMjsxMTAyIDExNzQgMTFCRDtCMkMyOzExMDIgMTE3NCAxMUJEOworQjJDMztCMkMzOzExMDIgMTE3NCAxMUJFO0IyQzM7MTEwMiAxMTc0IDExQkU7CitCMkM0O0IyQzQ7MTEwMiAxMTc0IDExQkY7QjJDNDsxMTAyIDExNzQgMTFCRjsKK0IyQzU7QjJDNTsxMTAyIDExNzQgMTFDMDtCMkM1OzExMDIgMTE3NCAxMUMwOworQjJDNjtCMkM2OzExMDIgMTE3NCAxMUMxO0IyQzY7MTEwMiAxMTc0IDExQzE7CitCMkM3O0IyQzc7MTEwMiAxMTc0IDExQzI7QjJDNzsxMTAyIDExNzQgMTFDMjsKK0IyQzg7QjJDODsxMTAyIDExNzU7QjJDODsxMTAyIDExNzU7CitCMkM5O0IyQzk7MTEwMiAxMTc1IDExQTg7QjJDOTsxMTAyIDExNzUgMTFBODsKK0IyQ0E7QjJDQTsxMTAyIDExNzUgMTFBOTtCMkNBOzExMDIgMTE3NSAxMUE5OworQjJDQjtCMkNCOzExMDIgMTE3NSAxMUFBO0IyQ0I7MTEwMiAxMTc1IDExQUE7CitCMkNDO0IyQ0M7MTEwMiAxMTc1IDExQUI7QjJDQzsxMTAyIDExNzUgMTFBQjsKK0IyQ0Q7QjJDRDsxMTAyIDExNzUgMTFBQztCMkNEOzExMDIgMTE3NSAxMUFDOworQjJDRTtCMkNFOzExMDIgMTE3NSAxMUFEO0IyQ0U7MTEwMiAxMTc1IDExQUQ7CitCMkNGO0IyQ0Y7MTEwMiAxMTc1IDExQUU7QjJDRjsxMTAyIDExNzUgMTFBRTsKK0IyRDA7QjJEMDsxMTAyIDExNzUgMTFBRjtCMkQwOzExMDIgMTE3NSAxMUFGOworQjJEMTtCMkQxOzExMDIgMTE3NSAxMUIwO0IyRDE7MTEwMiAxMTc1IDExQjA7CitCMkQyO0IyRDI7MTEwMiAxMTc1IDExQjE7QjJEMjsxMTAyIDExNzUgMTFCMTsKK0IyRDM7QjJEMzsxMTAyIDExNzUgMTFCMjtCMkQzOzExMDIgMTE3NSAxMUIyOworQjJENDtCMkQ0OzExMDIgMTE3NSAxMUIzO0IyRDQ7MTEwMiAxMTc1IDExQjM7CitCMkQ1O0IyRDU7MTEwMiAxMTc1IDExQjQ7QjJENTsxMTAyIDExNzUgMTFCNDsKK0IyRDY7QjJENjsxMTAyIDExNzUgMTFCNTtCMkQ2OzExMDIgMTE3NSAxMUI1OworQjJENztCMkQ3OzExMDIgMTE3NSAxMUI2O0IyRDc7MTEwMiAxMTc1IDExQjY7CitCMkQ4O0IyRDg7MTEwMiAxMTc1IDExQjc7QjJEODsxMTAyIDExNzUgMTFCNzsKK0IyRDk7QjJEOTsxMTAyIDExNzUgMTFCODtCMkQ5OzExMDIgMTE3NSAxMUI4OworQjJEQTtCMkRBOzExMDIgMTE3NSAxMUI5O0IyREE7MTEwMiAxMTc1IDExQjk7CitCMkRCO0IyREI7MTEwMiAxMTc1IDExQkE7QjJEQjsxMTAyIDExNzUgMTFCQTsKK0IyREM7QjJEQzsxMTAyIDExNzUgMTFCQjtCMkRDOzExMDIgMTE3NSAxMUJCOworQjJERDtCMkREOzExMDIgMTE3NSAxMUJDO0IyREQ7MTEwMiAxMTc1IDExQkM7CitCMkRFO0IyREU7MTEwMiAxMTc1IDExQkQ7QjJERTsxMTAyIDExNzUgMTFCRDsKK0IyREY7QjJERjsxMTAyIDExNzUgMTFCRTtCMkRGOzExMDIgMTE3NSAxMUJFOworQjJFMDtCMkUwOzExMDIgMTE3NSAxMUJGO0IyRTA7MTEwMiAxMTc1IDExQkY7CitCMkUxO0IyRTE7MTEwMiAxMTc1IDExQzA7QjJFMTsxMTAyIDExNzUgMTFDMDsKK0IyRTI7QjJFMjsxMTAyIDExNzUgMTFDMTtCMkUyOzExMDIgMTE3NSAxMUMxOworQjJFMztCMkUzOzExMDIgMTE3NSAxMUMyO0IyRTM7MTEwMiAxMTc1IDExQzI7CitCMkU0O0IyRTQ7MTEwMyAxMTYxO0IyRTQ7MTEwMyAxMTYxOworQjJFNTtCMkU1OzExMDMgMTE2MSAxMUE4O0IyRTU7MTEwMyAxMTYxIDExQTg7CitCMkU2O0IyRTY7MTEwMyAxMTYxIDExQTk7QjJFNjsxMTAzIDExNjEgMTFBOTsKK0IyRTc7QjJFNzsxMTAzIDExNjEgMTFBQTtCMkU3OzExMDMgMTE2MSAxMUFBOworQjJFODtCMkU4OzExMDMgMTE2MSAxMUFCO0IyRTg7MTEwMyAxMTYxIDExQUI7CitCMkU5O0IyRTk7MTEwMyAxMTYxIDExQUM7QjJFOTsxMTAzIDExNjEgMTFBQzsKK0IyRUE7QjJFQTsxMTAzIDExNjEgMTFBRDtCMkVBOzExMDMgMTE2MSAxMUFEOworQjJFQjtCMkVCOzExMDMgMTE2MSAxMUFFO0IyRUI7MTEwMyAxMTYxIDExQUU7CitCMkVDO0IyRUM7MTEwMyAxMTYxIDExQUY7QjJFQzsxMTAzIDExNjEgMTFBRjsKK0IyRUQ7QjJFRDsxMTAzIDExNjEgMTFCMDtCMkVEOzExMDMgMTE2MSAxMUIwOworQjJFRTtCMkVFOzExMDMgMTE2MSAxMUIxO0IyRUU7MTEwMyAxMTYxIDExQjE7CitCMkVGO0IyRUY7MTEwMyAxMTYxIDExQjI7QjJFRjsxMTAzIDExNjEgMTFCMjsKK0IyRjA7QjJGMDsxMTAzIDExNjEgMTFCMztCMkYwOzExMDMgMTE2MSAxMUIzOworQjJGMTtCMkYxOzExMDMgMTE2MSAxMUI0O0IyRjE7MTEwMyAxMTYxIDExQjQ7CitCMkYyO0IyRjI7MTEwMyAxMTYxIDExQjU7QjJGMjsxMTAzIDExNjEgMTFCNTsKK0IyRjM7QjJGMzsxMTAzIDExNjEgMTFCNjtCMkYzOzExMDMgMTE2MSAxMUI2OworQjJGNDtCMkY0OzExMDMgMTE2MSAxMUI3O0IyRjQ7MTEwMyAxMTYxIDExQjc7CitCMkY1O0IyRjU7MTEwMyAxMTYxIDExQjg7QjJGNTsxMTAzIDExNjEgMTFCODsKK0IyRjY7QjJGNjsxMTAzIDExNjEgMTFCOTtCMkY2OzExMDMgMTE2MSAxMUI5OworQjJGNztCMkY3OzExMDMgMTE2MSAxMUJBO0IyRjc7MTEwMyAxMTYxIDExQkE7CitCMkY4O0IyRjg7MTEwMyAxMTYxIDExQkI7QjJGODsxMTAzIDExNjEgMTFCQjsKK0IyRjk7QjJGOTsxMTAzIDExNjEgMTFCQztCMkY5OzExMDMgMTE2MSAxMUJDOworQjJGQTtCMkZBOzExMDMgMTE2MSAxMUJEO0IyRkE7MTEwMyAxMTYxIDExQkQ7CitCMkZCO0IyRkI7MTEwMyAxMTYxIDExQkU7QjJGQjsxMTAzIDExNjEgMTFCRTsKK0IyRkM7QjJGQzsxMTAzIDExNjEgMTFCRjtCMkZDOzExMDMgMTE2MSAxMUJGOworQjJGRDtCMkZEOzExMDMgMTE2MSAxMUMwO0IyRkQ7MTEwMyAxMTYxIDExQzA7CitCMkZFO0IyRkU7MTEwMyAxMTYxIDExQzE7QjJGRTsxMTAzIDExNjEgMTFDMTsKK0IyRkY7QjJGRjsxMTAzIDExNjEgMTFDMjtCMkZGOzExMDMgMTE2MSAxMUMyOworQjMwMDtCMzAwOzExMDMgMTE2MjtCMzAwOzExMDMgMTE2MjsKK0IzMDE7QjMwMTsxMTAzIDExNjIgMTFBODtCMzAxOzExMDMgMTE2MiAxMUE4OworQjMwMjtCMzAyOzExMDMgMTE2MiAxMUE5O0IzMDI7MTEwMyAxMTYyIDExQTk7CitCMzAzO0IzMDM7MTEwMyAxMTYyIDExQUE7QjMwMzsxMTAzIDExNjIgMTFBQTsKK0IzMDQ7QjMwNDsxMTAzIDExNjIgMTFBQjtCMzA0OzExMDMgMTE2MiAxMUFCOworQjMwNTtCMzA1OzExMDMgMTE2MiAxMUFDO0IzMDU7MTEwMyAxMTYyIDExQUM7CitCMzA2O0IzMDY7MTEwMyAxMTYyIDExQUQ7QjMwNjsxMTAzIDExNjIgMTFBRDsKK0IzMDc7QjMwNzsxMTAzIDExNjIgMTFBRTtCMzA3OzExMDMgMTE2MiAxMUFFOworQjMwODtCMzA4OzExMDMgMTE2MiAxMUFGO0IzMDg7MTEwMyAxMTYyIDExQUY7CitCMzA5O0IzMDk7MTEwMyAxMTYyIDExQjA7QjMwOTsxMTAzIDExNjIgMTFCMDsKK0IzMEE7QjMwQTsxMTAzIDExNjIgMTFCMTtCMzBBOzExMDMgMTE2MiAxMUIxOworQjMwQjtCMzBCOzExMDMgMTE2MiAxMUIyO0IzMEI7MTEwMyAxMTYyIDExQjI7CitCMzBDO0IzMEM7MTEwMyAxMTYyIDExQjM7QjMwQzsxMTAzIDExNjIgMTFCMzsKK0IzMEQ7QjMwRDsxMTAzIDExNjIgMTFCNDtCMzBEOzExMDMgMTE2MiAxMUI0OworQjMwRTtCMzBFOzExMDMgMTE2MiAxMUI1O0IzMEU7MTEwMyAxMTYyIDExQjU7CitCMzBGO0IzMEY7MTEwMyAxMTYyIDExQjY7QjMwRjsxMTAzIDExNjIgMTFCNjsKK0IzMTA7QjMxMDsxMTAzIDExNjIgMTFCNztCMzEwOzExMDMgMTE2MiAxMUI3OworQjMxMTtCMzExOzExMDMgMTE2MiAxMUI4O0IzMTE7MTEwMyAxMTYyIDExQjg7CitCMzEyO0IzMTI7MTEwMyAxMTYyIDExQjk7QjMxMjsxMTAzIDExNjIgMTFCOTsKK0IzMTM7QjMxMzsxMTAzIDExNjIgMTFCQTtCMzEzOzExMDMgMTE2MiAxMUJBOworQjMxNDtCMzE0OzExMDMgMTE2MiAxMUJCO0IzMTQ7MTEwMyAxMTYyIDExQkI7CitCMzE1O0IzMTU7MTEwMyAxMTYyIDExQkM7QjMxNTsxMTAzIDExNjIgMTFCQzsKK0IzMTY7QjMxNjsxMTAzIDExNjIgMTFCRDtCMzE2OzExMDMgMTE2MiAxMUJEOworQjMxNztCMzE3OzExMDMgMTE2MiAxMUJFO0IzMTc7MTEwMyAxMTYyIDExQkU7CitCMzE4O0IzMTg7MTEwMyAxMTYyIDExQkY7QjMxODsxMTAzIDExNjIgMTFCRjsKK0IzMTk7QjMxOTsxMTAzIDExNjIgMTFDMDtCMzE5OzExMDMgMTE2MiAxMUMwOworQjMxQTtCMzFBOzExMDMgMTE2MiAxMUMxO0IzMUE7MTEwMyAxMTYyIDExQzE7CitCMzFCO0IzMUI7MTEwMyAxMTYyIDExQzI7QjMxQjsxMTAzIDExNjIgMTFDMjsKK0IzMUM7QjMxQzsxMTAzIDExNjM7QjMxQzsxMTAzIDExNjM7CitCMzFEO0IzMUQ7MTEwMyAxMTYzIDExQTg7QjMxRDsxMTAzIDExNjMgMTFBODsKK0IzMUU7QjMxRTsxMTAzIDExNjMgMTFBOTtCMzFFOzExMDMgMTE2MyAxMUE5OworQjMxRjtCMzFGOzExMDMgMTE2MyAxMUFBO0IzMUY7MTEwMyAxMTYzIDExQUE7CitCMzIwO0IzMjA7MTEwMyAxMTYzIDExQUI7QjMyMDsxMTAzIDExNjMgMTFBQjsKK0IzMjE7QjMyMTsxMTAzIDExNjMgMTFBQztCMzIxOzExMDMgMTE2MyAxMUFDOworQjMyMjtCMzIyOzExMDMgMTE2MyAxMUFEO0IzMjI7MTEwMyAxMTYzIDExQUQ7CitCMzIzO0IzMjM7MTEwMyAxMTYzIDExQUU7QjMyMzsxMTAzIDExNjMgMTFBRTsKK0IzMjQ7QjMyNDsxMTAzIDExNjMgMTFBRjtCMzI0OzExMDMgMTE2MyAxMUFGOworQjMyNTtCMzI1OzExMDMgMTE2MyAxMUIwO0IzMjU7MTEwMyAxMTYzIDExQjA7CitCMzI2O0IzMjY7MTEwMyAxMTYzIDExQjE7QjMyNjsxMTAzIDExNjMgMTFCMTsKK0IzMjc7QjMyNzsxMTAzIDExNjMgMTFCMjtCMzI3OzExMDMgMTE2MyAxMUIyOworQjMyODtCMzI4OzExMDMgMTE2MyAxMUIzO0IzMjg7MTEwMyAxMTYzIDExQjM7CitCMzI5O0IzMjk7MTEwMyAxMTYzIDExQjQ7QjMyOTsxMTAzIDExNjMgMTFCNDsKK0IzMkE7QjMyQTsxMTAzIDExNjMgMTFCNTtCMzJBOzExMDMgMTE2MyAxMUI1OworQjMyQjtCMzJCOzExMDMgMTE2MyAxMUI2O0IzMkI7MTEwMyAxMTYzIDExQjY7CitCMzJDO0IzMkM7MTEwMyAxMTYzIDExQjc7QjMyQzsxMTAzIDExNjMgMTFCNzsKK0IzMkQ7QjMyRDsxMTAzIDExNjMgMTFCODtCMzJEOzExMDMgMTE2MyAxMUI4OworQjMyRTtCMzJFOzExMDMgMTE2MyAxMUI5O0IzMkU7MTEwMyAxMTYzIDExQjk7CitCMzJGO0IzMkY7MTEwMyAxMTYzIDExQkE7QjMyRjsxMTAzIDExNjMgMTFCQTsKK0IzMzA7QjMzMDsxMTAzIDExNjMgMTFCQjtCMzMwOzExMDMgMTE2MyAxMUJCOworQjMzMTtCMzMxOzExMDMgMTE2MyAxMUJDO0IzMzE7MTEwMyAxMTYzIDExQkM7CitCMzMyO0IzMzI7MTEwMyAxMTYzIDExQkQ7QjMzMjsxMTAzIDExNjMgMTFCRDsKK0IzMzM7QjMzMzsxMTAzIDExNjMgMTFCRTtCMzMzOzExMDMgMTE2MyAxMUJFOworQjMzNDtCMzM0OzExMDMgMTE2MyAxMUJGO0IzMzQ7MTEwMyAxMTYzIDExQkY7CitCMzM1O0IzMzU7MTEwMyAxMTYzIDExQzA7QjMzNTsxMTAzIDExNjMgMTFDMDsKK0IzMzY7QjMzNjsxMTAzIDExNjMgMTFDMTtCMzM2OzExMDMgMTE2MyAxMUMxOworQjMzNztCMzM3OzExMDMgMTE2MyAxMUMyO0IzMzc7MTEwMyAxMTYzIDExQzI7CitCMzM4O0IzMzg7MTEwMyAxMTY0O0IzMzg7MTEwMyAxMTY0OworQjMzOTtCMzM5OzExMDMgMTE2NCAxMUE4O0IzMzk7MTEwMyAxMTY0IDExQTg7CitCMzNBO0IzM0E7MTEwMyAxMTY0IDExQTk7QjMzQTsxMTAzIDExNjQgMTFBOTsKK0IzM0I7QjMzQjsxMTAzIDExNjQgMTFBQTtCMzNCOzExMDMgMTE2NCAxMUFBOworQjMzQztCMzNDOzExMDMgMTE2NCAxMUFCO0IzM0M7MTEwMyAxMTY0IDExQUI7CitCMzNEO0IzM0Q7MTEwMyAxMTY0IDExQUM7QjMzRDsxMTAzIDExNjQgMTFBQzsKK0IzM0U7QjMzRTsxMTAzIDExNjQgMTFBRDtCMzNFOzExMDMgMTE2NCAxMUFEOworQjMzRjtCMzNGOzExMDMgMTE2NCAxMUFFO0IzM0Y7MTEwMyAxMTY0IDExQUU7CitCMzQwO0IzNDA7MTEwMyAxMTY0IDExQUY7QjM0MDsxMTAzIDExNjQgMTFBRjsKK0IzNDE7QjM0MTsxMTAzIDExNjQgMTFCMDtCMzQxOzExMDMgMTE2NCAxMUIwOworQjM0MjtCMzQyOzExMDMgMTE2NCAxMUIxO0IzNDI7MTEwMyAxMTY0IDExQjE7CitCMzQzO0IzNDM7MTEwMyAxMTY0IDExQjI7QjM0MzsxMTAzIDExNjQgMTFCMjsKK0IzNDQ7QjM0NDsxMTAzIDExNjQgMTFCMztCMzQ0OzExMDMgMTE2NCAxMUIzOworQjM0NTtCMzQ1OzExMDMgMTE2NCAxMUI0O0IzNDU7MTEwMyAxMTY0IDExQjQ7CitCMzQ2O0IzNDY7MTEwMyAxMTY0IDExQjU7QjM0NjsxMTAzIDExNjQgMTFCNTsKK0IzNDc7QjM0NzsxMTAzIDExNjQgMTFCNjtCMzQ3OzExMDMgMTE2NCAxMUI2OworQjM0ODtCMzQ4OzExMDMgMTE2NCAxMUI3O0IzNDg7MTEwMyAxMTY0IDExQjc7CitCMzQ5O0IzNDk7MTEwMyAxMTY0IDExQjg7QjM0OTsxMTAzIDExNjQgMTFCODsKK0IzNEE7QjM0QTsxMTAzIDExNjQgMTFCOTtCMzRBOzExMDMgMTE2NCAxMUI5OworQjM0QjtCMzRCOzExMDMgMTE2NCAxMUJBO0IzNEI7MTEwMyAxMTY0IDExQkE7CitCMzRDO0IzNEM7MTEwMyAxMTY0IDExQkI7QjM0QzsxMTAzIDExNjQgMTFCQjsKK0IzNEQ7QjM0RDsxMTAzIDExNjQgMTFCQztCMzREOzExMDMgMTE2NCAxMUJDOworQjM0RTtCMzRFOzExMDMgMTE2NCAxMUJEO0IzNEU7MTEwMyAxMTY0IDExQkQ7CitCMzRGO0IzNEY7MTEwMyAxMTY0IDExQkU7QjM0RjsxMTAzIDExNjQgMTFCRTsKK0IzNTA7QjM1MDsxMTAzIDExNjQgMTFCRjtCMzUwOzExMDMgMTE2NCAxMUJGOworQjM1MTtCMzUxOzExMDMgMTE2NCAxMUMwO0IzNTE7MTEwMyAxMTY0IDExQzA7CitCMzUyO0IzNTI7MTEwMyAxMTY0IDExQzE7QjM1MjsxMTAzIDExNjQgMTFDMTsKK0IzNTM7QjM1MzsxMTAzIDExNjQgMTFDMjtCMzUzOzExMDMgMTE2NCAxMUMyOworQjM1NDtCMzU0OzExMDMgMTE2NTtCMzU0OzExMDMgMTE2NTsKK0IzNTU7QjM1NTsxMTAzIDExNjUgMTFBODtCMzU1OzExMDMgMTE2NSAxMUE4OworQjM1NjtCMzU2OzExMDMgMTE2NSAxMUE5O0IzNTY7MTEwMyAxMTY1IDExQTk7CitCMzU3O0IzNTc7MTEwMyAxMTY1IDExQUE7QjM1NzsxMTAzIDExNjUgMTFBQTsKK0IzNTg7QjM1ODsxMTAzIDExNjUgMTFBQjtCMzU4OzExMDMgMTE2NSAxMUFCOworQjM1OTtCMzU5OzExMDMgMTE2NSAxMUFDO0IzNTk7MTEwMyAxMTY1IDExQUM7CitCMzVBO0IzNUE7MTEwMyAxMTY1IDExQUQ7QjM1QTsxMTAzIDExNjUgMTFBRDsKK0IzNUI7QjM1QjsxMTAzIDExNjUgMTFBRTtCMzVCOzExMDMgMTE2NSAxMUFFOworQjM1QztCMzVDOzExMDMgMTE2NSAxMUFGO0IzNUM7MTEwMyAxMTY1IDExQUY7CitCMzVEO0IzNUQ7MTEwMyAxMTY1IDExQjA7QjM1RDsxMTAzIDExNjUgMTFCMDsKK0IzNUU7QjM1RTsxMTAzIDExNjUgMTFCMTtCMzVFOzExMDMgMTE2NSAxMUIxOworQjM1RjtCMzVGOzExMDMgMTE2NSAxMUIyO0IzNUY7MTEwMyAxMTY1IDExQjI7CitCMzYwO0IzNjA7MTEwMyAxMTY1IDExQjM7QjM2MDsxMTAzIDExNjUgMTFCMzsKK0IzNjE7QjM2MTsxMTAzIDExNjUgMTFCNDtCMzYxOzExMDMgMTE2NSAxMUI0OworQjM2MjtCMzYyOzExMDMgMTE2NSAxMUI1O0IzNjI7MTEwMyAxMTY1IDExQjU7CitCMzYzO0IzNjM7MTEwMyAxMTY1IDExQjY7QjM2MzsxMTAzIDExNjUgMTFCNjsKK0IzNjQ7QjM2NDsxMTAzIDExNjUgMTFCNztCMzY0OzExMDMgMTE2NSAxMUI3OworQjM2NTtCMzY1OzExMDMgMTE2NSAxMUI4O0IzNjU7MTEwMyAxMTY1IDExQjg7CitCMzY2O0IzNjY7MTEwMyAxMTY1IDExQjk7QjM2NjsxMTAzIDExNjUgMTFCOTsKK0IzNjc7QjM2NzsxMTAzIDExNjUgMTFCQTtCMzY3OzExMDMgMTE2NSAxMUJBOworQjM2ODtCMzY4OzExMDMgMTE2NSAxMUJCO0IzNjg7MTEwMyAxMTY1IDExQkI7CitCMzY5O0IzNjk7MTEwMyAxMTY1IDExQkM7QjM2OTsxMTAzIDExNjUgMTFCQzsKK0IzNkE7QjM2QTsxMTAzIDExNjUgMTFCRDtCMzZBOzExMDMgMTE2NSAxMUJEOworQjM2QjtCMzZCOzExMDMgMTE2NSAxMUJFO0IzNkI7MTEwMyAxMTY1IDExQkU7CitCMzZDO0IzNkM7MTEwMyAxMTY1IDExQkY7QjM2QzsxMTAzIDExNjUgMTFCRjsKK0IzNkQ7QjM2RDsxMTAzIDExNjUgMTFDMDtCMzZEOzExMDMgMTE2NSAxMUMwOworQjM2RTtCMzZFOzExMDMgMTE2NSAxMUMxO0IzNkU7MTEwMyAxMTY1IDExQzE7CitCMzZGO0IzNkY7MTEwMyAxMTY1IDExQzI7QjM2RjsxMTAzIDExNjUgMTFDMjsKK0IzNzA7QjM3MDsxMTAzIDExNjY7QjM3MDsxMTAzIDExNjY7CitCMzcxO0IzNzE7MTEwMyAxMTY2IDExQTg7QjM3MTsxMTAzIDExNjYgMTFBODsKK0IzNzI7QjM3MjsxMTAzIDExNjYgMTFBOTtCMzcyOzExMDMgMTE2NiAxMUE5OworQjM3MztCMzczOzExMDMgMTE2NiAxMUFBO0IzNzM7MTEwMyAxMTY2IDExQUE7CitCMzc0O0IzNzQ7MTEwMyAxMTY2IDExQUI7QjM3NDsxMTAzIDExNjYgMTFBQjsKK0IzNzU7QjM3NTsxMTAzIDExNjYgMTFBQztCMzc1OzExMDMgMTE2NiAxMUFDOworQjM3NjtCMzc2OzExMDMgMTE2NiAxMUFEO0IzNzY7MTEwMyAxMTY2IDExQUQ7CitCMzc3O0IzNzc7MTEwMyAxMTY2IDExQUU7QjM3NzsxMTAzIDExNjYgMTFBRTsKK0IzNzg7QjM3ODsxMTAzIDExNjYgMTFBRjtCMzc4OzExMDMgMTE2NiAxMUFGOworQjM3OTtCMzc5OzExMDMgMTE2NiAxMUIwO0IzNzk7MTEwMyAxMTY2IDExQjA7CitCMzdBO0IzN0E7MTEwMyAxMTY2IDExQjE7QjM3QTsxMTAzIDExNjYgMTFCMTsKK0IzN0I7QjM3QjsxMTAzIDExNjYgMTFCMjtCMzdCOzExMDMgMTE2NiAxMUIyOworQjM3QztCMzdDOzExMDMgMTE2NiAxMUIzO0IzN0M7MTEwMyAxMTY2IDExQjM7CitCMzdEO0IzN0Q7MTEwMyAxMTY2IDExQjQ7QjM3RDsxMTAzIDExNjYgMTFCNDsKK0IzN0U7QjM3RTsxMTAzIDExNjYgMTFCNTtCMzdFOzExMDMgMTE2NiAxMUI1OworQjM3RjtCMzdGOzExMDMgMTE2NiAxMUI2O0IzN0Y7MTEwMyAxMTY2IDExQjY7CitCMzgwO0IzODA7MTEwMyAxMTY2IDExQjc7QjM4MDsxMTAzIDExNjYgMTFCNzsKK0IzODE7QjM4MTsxMTAzIDExNjYgMTFCODtCMzgxOzExMDMgMTE2NiAxMUI4OworQjM4MjtCMzgyOzExMDMgMTE2NiAxMUI5O0IzODI7MTEwMyAxMTY2IDExQjk7CitCMzgzO0IzODM7MTEwMyAxMTY2IDExQkE7QjM4MzsxMTAzIDExNjYgMTFCQTsKK0IzODQ7QjM4NDsxMTAzIDExNjYgMTFCQjtCMzg0OzExMDMgMTE2NiAxMUJCOworQjM4NTtCMzg1OzExMDMgMTE2NiAxMUJDO0IzODU7MTEwMyAxMTY2IDExQkM7CitCMzg2O0IzODY7MTEwMyAxMTY2IDExQkQ7QjM4NjsxMTAzIDExNjYgMTFCRDsKK0IzODc7QjM4NzsxMTAzIDExNjYgMTFCRTtCMzg3OzExMDMgMTE2NiAxMUJFOworQjM4ODtCMzg4OzExMDMgMTE2NiAxMUJGO0IzODg7MTEwMyAxMTY2IDExQkY7CitCMzg5O0IzODk7MTEwMyAxMTY2IDExQzA7QjM4OTsxMTAzIDExNjYgMTFDMDsKK0IzOEE7QjM4QTsxMTAzIDExNjYgMTFDMTtCMzhBOzExMDMgMTE2NiAxMUMxOworQjM4QjtCMzhCOzExMDMgMTE2NiAxMUMyO0IzOEI7MTEwMyAxMTY2IDExQzI7CitCMzhDO0IzOEM7MTEwMyAxMTY3O0IzOEM7MTEwMyAxMTY3OworQjM4RDtCMzhEOzExMDMgMTE2NyAxMUE4O0IzOEQ7MTEwMyAxMTY3IDExQTg7CitCMzhFO0IzOEU7MTEwMyAxMTY3IDExQTk7QjM4RTsxMTAzIDExNjcgMTFBOTsKK0IzOEY7QjM4RjsxMTAzIDExNjcgMTFBQTtCMzhGOzExMDMgMTE2NyAxMUFBOworQjM5MDtCMzkwOzExMDMgMTE2NyAxMUFCO0IzOTA7MTEwMyAxMTY3IDExQUI7CitCMzkxO0IzOTE7MTEwMyAxMTY3IDExQUM7QjM5MTsxMTAzIDExNjcgMTFBQzsKK0IzOTI7QjM5MjsxMTAzIDExNjcgMTFBRDtCMzkyOzExMDMgMTE2NyAxMUFEOworQjM5MztCMzkzOzExMDMgMTE2NyAxMUFFO0IzOTM7MTEwMyAxMTY3IDExQUU7CitCMzk0O0IzOTQ7MTEwMyAxMTY3IDExQUY7QjM5NDsxMTAzIDExNjcgMTFBRjsKK0IzOTU7QjM5NTsxMTAzIDExNjcgMTFCMDtCMzk1OzExMDMgMTE2NyAxMUIwOworQjM5NjtCMzk2OzExMDMgMTE2NyAxMUIxO0IzOTY7MTEwMyAxMTY3IDExQjE7CitCMzk3O0IzOTc7MTEwMyAxMTY3IDExQjI7QjM5NzsxMTAzIDExNjcgMTFCMjsKK0IzOTg7QjM5ODsxMTAzIDExNjcgMTFCMztCMzk4OzExMDMgMTE2NyAxMUIzOworQjM5OTtCMzk5OzExMDMgMTE2NyAxMUI0O0IzOTk7MTEwMyAxMTY3IDExQjQ7CitCMzlBO0IzOUE7MTEwMyAxMTY3IDExQjU7QjM5QTsxMTAzIDExNjcgMTFCNTsKK0IzOUI7QjM5QjsxMTAzIDExNjcgMTFCNjtCMzlCOzExMDMgMTE2NyAxMUI2OworQjM5QztCMzlDOzExMDMgMTE2NyAxMUI3O0IzOUM7MTEwMyAxMTY3IDExQjc7CitCMzlEO0IzOUQ7MTEwMyAxMTY3IDExQjg7QjM5RDsxMTAzIDExNjcgMTFCODsKK0IzOUU7QjM5RTsxMTAzIDExNjcgMTFCOTtCMzlFOzExMDMgMTE2NyAxMUI5OworQjM5RjtCMzlGOzExMDMgMTE2NyAxMUJBO0IzOUY7MTEwMyAxMTY3IDExQkE7CitCM0EwO0IzQTA7MTEwMyAxMTY3IDExQkI7QjNBMDsxMTAzIDExNjcgMTFCQjsKK0IzQTE7QjNBMTsxMTAzIDExNjcgMTFCQztCM0ExOzExMDMgMTE2NyAxMUJDOworQjNBMjtCM0EyOzExMDMgMTE2NyAxMUJEO0IzQTI7MTEwMyAxMTY3IDExQkQ7CitCM0EzO0IzQTM7MTEwMyAxMTY3IDExQkU7QjNBMzsxMTAzIDExNjcgMTFCRTsKK0IzQTQ7QjNBNDsxMTAzIDExNjcgMTFCRjtCM0E0OzExMDMgMTE2NyAxMUJGOworQjNBNTtCM0E1OzExMDMgMTE2NyAxMUMwO0IzQTU7MTEwMyAxMTY3IDExQzA7CitCM0E2O0IzQTY7MTEwMyAxMTY3IDExQzE7QjNBNjsxMTAzIDExNjcgMTFDMTsKK0IzQTc7QjNBNzsxMTAzIDExNjcgMTFDMjtCM0E3OzExMDMgMTE2NyAxMUMyOworQjNBODtCM0E4OzExMDMgMTE2ODtCM0E4OzExMDMgMTE2ODsKK0IzQTk7QjNBOTsxMTAzIDExNjggMTFBODtCM0E5OzExMDMgMTE2OCAxMUE4OworQjNBQTtCM0FBOzExMDMgMTE2OCAxMUE5O0IzQUE7MTEwMyAxMTY4IDExQTk7CitCM0FCO0IzQUI7MTEwMyAxMTY4IDExQUE7QjNBQjsxMTAzIDExNjggMTFBQTsKK0IzQUM7QjNBQzsxMTAzIDExNjggMTFBQjtCM0FDOzExMDMgMTE2OCAxMUFCOworQjNBRDtCM0FEOzExMDMgMTE2OCAxMUFDO0IzQUQ7MTEwMyAxMTY4IDExQUM7CitCM0FFO0IzQUU7MTEwMyAxMTY4IDExQUQ7QjNBRTsxMTAzIDExNjggMTFBRDsKK0IzQUY7QjNBRjsxMTAzIDExNjggMTFBRTtCM0FGOzExMDMgMTE2OCAxMUFFOworQjNCMDtCM0IwOzExMDMgMTE2OCAxMUFGO0IzQjA7MTEwMyAxMTY4IDExQUY7CitCM0IxO0IzQjE7MTEwMyAxMTY4IDExQjA7QjNCMTsxMTAzIDExNjggMTFCMDsKK0IzQjI7QjNCMjsxMTAzIDExNjggMTFCMTtCM0IyOzExMDMgMTE2OCAxMUIxOworQjNCMztCM0IzOzExMDMgMTE2OCAxMUIyO0IzQjM7MTEwMyAxMTY4IDExQjI7CitCM0I0O0IzQjQ7MTEwMyAxMTY4IDExQjM7QjNCNDsxMTAzIDExNjggMTFCMzsKK0IzQjU7QjNCNTsxMTAzIDExNjggMTFCNDtCM0I1OzExMDMgMTE2OCAxMUI0OworQjNCNjtCM0I2OzExMDMgMTE2OCAxMUI1O0IzQjY7MTEwMyAxMTY4IDExQjU7CitCM0I3O0IzQjc7MTEwMyAxMTY4IDExQjY7QjNCNzsxMTAzIDExNjggMTFCNjsKK0IzQjg7QjNCODsxMTAzIDExNjggMTFCNztCM0I4OzExMDMgMTE2OCAxMUI3OworQjNCOTtCM0I5OzExMDMgMTE2OCAxMUI4O0IzQjk7MTEwMyAxMTY4IDExQjg7CitCM0JBO0IzQkE7MTEwMyAxMTY4IDExQjk7QjNCQTsxMTAzIDExNjggMTFCOTsKK0IzQkI7QjNCQjsxMTAzIDExNjggMTFCQTtCM0JCOzExMDMgMTE2OCAxMUJBOworQjNCQztCM0JDOzExMDMgMTE2OCAxMUJCO0IzQkM7MTEwMyAxMTY4IDExQkI7CitCM0JEO0IzQkQ7MTEwMyAxMTY4IDExQkM7QjNCRDsxMTAzIDExNjggMTFCQzsKK0IzQkU7QjNCRTsxMTAzIDExNjggMTFCRDtCM0JFOzExMDMgMTE2OCAxMUJEOworQjNCRjtCM0JGOzExMDMgMTE2OCAxMUJFO0IzQkY7MTEwMyAxMTY4IDExQkU7CitCM0MwO0IzQzA7MTEwMyAxMTY4IDExQkY7QjNDMDsxMTAzIDExNjggMTFCRjsKK0IzQzE7QjNDMTsxMTAzIDExNjggMTFDMDtCM0MxOzExMDMgMTE2OCAxMUMwOworQjNDMjtCM0MyOzExMDMgMTE2OCAxMUMxO0IzQzI7MTEwMyAxMTY4IDExQzE7CitCM0MzO0IzQzM7MTEwMyAxMTY4IDExQzI7QjNDMzsxMTAzIDExNjggMTFDMjsKK0IzQzQ7QjNDNDsxMTAzIDExNjk7QjNDNDsxMTAzIDExNjk7CitCM0M1O0IzQzU7MTEwMyAxMTY5IDExQTg7QjNDNTsxMTAzIDExNjkgMTFBODsKK0IzQzY7QjNDNjsxMTAzIDExNjkgMTFBOTtCM0M2OzExMDMgMTE2OSAxMUE5OworQjNDNztCM0M3OzExMDMgMTE2OSAxMUFBO0IzQzc7MTEwMyAxMTY5IDExQUE7CitCM0M4O0IzQzg7MTEwMyAxMTY5IDExQUI7QjNDODsxMTAzIDExNjkgMTFBQjsKK0IzQzk7QjNDOTsxMTAzIDExNjkgMTFBQztCM0M5OzExMDMgMTE2OSAxMUFDOworQjNDQTtCM0NBOzExMDMgMTE2OSAxMUFEO0IzQ0E7MTEwMyAxMTY5IDExQUQ7CitCM0NCO0IzQ0I7MTEwMyAxMTY5IDExQUU7QjNDQjsxMTAzIDExNjkgMTFBRTsKK0IzQ0M7QjNDQzsxMTAzIDExNjkgMTFBRjtCM0NDOzExMDMgMTE2OSAxMUFGOworQjNDRDtCM0NEOzExMDMgMTE2OSAxMUIwO0IzQ0Q7MTEwMyAxMTY5IDExQjA7CitCM0NFO0IzQ0U7MTEwMyAxMTY5IDExQjE7QjNDRTsxMTAzIDExNjkgMTFCMTsKK0IzQ0Y7QjNDRjsxMTAzIDExNjkgMTFCMjtCM0NGOzExMDMgMTE2OSAxMUIyOworQjNEMDtCM0QwOzExMDMgMTE2OSAxMUIzO0IzRDA7MTEwMyAxMTY5IDExQjM7CitCM0QxO0IzRDE7MTEwMyAxMTY5IDExQjQ7QjNEMTsxMTAzIDExNjkgMTFCNDsKK0IzRDI7QjNEMjsxMTAzIDExNjkgMTFCNTtCM0QyOzExMDMgMTE2OSAxMUI1OworQjNEMztCM0QzOzExMDMgMTE2OSAxMUI2O0IzRDM7MTEwMyAxMTY5IDExQjY7CitCM0Q0O0IzRDQ7MTEwMyAxMTY5IDExQjc7QjNENDsxMTAzIDExNjkgMTFCNzsKK0IzRDU7QjNENTsxMTAzIDExNjkgMTFCODtCM0Q1OzExMDMgMTE2OSAxMUI4OworQjNENjtCM0Q2OzExMDMgMTE2OSAxMUI5O0IzRDY7MTEwMyAxMTY5IDExQjk7CitCM0Q3O0IzRDc7MTEwMyAxMTY5IDExQkE7QjNENzsxMTAzIDExNjkgMTFCQTsKK0IzRDg7QjNEODsxMTAzIDExNjkgMTFCQjtCM0Q4OzExMDMgMTE2OSAxMUJCOworQjNEOTtCM0Q5OzExMDMgMTE2OSAxMUJDO0IzRDk7MTEwMyAxMTY5IDExQkM7CitCM0RBO0IzREE7MTEwMyAxMTY5IDExQkQ7QjNEQTsxMTAzIDExNjkgMTFCRDsKK0IzREI7QjNEQjsxMTAzIDExNjkgMTFCRTtCM0RCOzExMDMgMTE2OSAxMUJFOworQjNEQztCM0RDOzExMDMgMTE2OSAxMUJGO0IzREM7MTEwMyAxMTY5IDExQkY7CitCM0REO0IzREQ7MTEwMyAxMTY5IDExQzA7QjNERDsxMTAzIDExNjkgMTFDMDsKK0IzREU7QjNERTsxMTAzIDExNjkgMTFDMTtCM0RFOzExMDMgMTE2OSAxMUMxOworQjNERjtCM0RGOzExMDMgMTE2OSAxMUMyO0IzREY7MTEwMyAxMTY5IDExQzI7CitCM0UwO0IzRTA7MTEwMyAxMTZBO0IzRTA7MTEwMyAxMTZBOworQjNFMTtCM0UxOzExMDMgMTE2QSAxMUE4O0IzRTE7MTEwMyAxMTZBIDExQTg7CitCM0UyO0IzRTI7MTEwMyAxMTZBIDExQTk7QjNFMjsxMTAzIDExNkEgMTFBOTsKK0IzRTM7QjNFMzsxMTAzIDExNkEgMTFBQTtCM0UzOzExMDMgMTE2QSAxMUFBOworQjNFNDtCM0U0OzExMDMgMTE2QSAxMUFCO0IzRTQ7MTEwMyAxMTZBIDExQUI7CitCM0U1O0IzRTU7MTEwMyAxMTZBIDExQUM7QjNFNTsxMTAzIDExNkEgMTFBQzsKK0IzRTY7QjNFNjsxMTAzIDExNkEgMTFBRDtCM0U2OzExMDMgMTE2QSAxMUFEOworQjNFNztCM0U3OzExMDMgMTE2QSAxMUFFO0IzRTc7MTEwMyAxMTZBIDExQUU7CitCM0U4O0IzRTg7MTEwMyAxMTZBIDExQUY7QjNFODsxMTAzIDExNkEgMTFBRjsKK0IzRTk7QjNFOTsxMTAzIDExNkEgMTFCMDtCM0U5OzExMDMgMTE2QSAxMUIwOworQjNFQTtCM0VBOzExMDMgMTE2QSAxMUIxO0IzRUE7MTEwMyAxMTZBIDExQjE7CitCM0VCO0IzRUI7MTEwMyAxMTZBIDExQjI7QjNFQjsxMTAzIDExNkEgMTFCMjsKK0IzRUM7QjNFQzsxMTAzIDExNkEgMTFCMztCM0VDOzExMDMgMTE2QSAxMUIzOworQjNFRDtCM0VEOzExMDMgMTE2QSAxMUI0O0IzRUQ7MTEwMyAxMTZBIDExQjQ7CitCM0VFO0IzRUU7MTEwMyAxMTZBIDExQjU7QjNFRTsxMTAzIDExNkEgMTFCNTsKK0IzRUY7QjNFRjsxMTAzIDExNkEgMTFCNjtCM0VGOzExMDMgMTE2QSAxMUI2OworQjNGMDtCM0YwOzExMDMgMTE2QSAxMUI3O0IzRjA7MTEwMyAxMTZBIDExQjc7CitCM0YxO0IzRjE7MTEwMyAxMTZBIDExQjg7QjNGMTsxMTAzIDExNkEgMTFCODsKK0IzRjI7QjNGMjsxMTAzIDExNkEgMTFCOTtCM0YyOzExMDMgMTE2QSAxMUI5OworQjNGMztCM0YzOzExMDMgMTE2QSAxMUJBO0IzRjM7MTEwMyAxMTZBIDExQkE7CitCM0Y0O0IzRjQ7MTEwMyAxMTZBIDExQkI7QjNGNDsxMTAzIDExNkEgMTFCQjsKK0IzRjU7QjNGNTsxMTAzIDExNkEgMTFCQztCM0Y1OzExMDMgMTE2QSAxMUJDOworQjNGNjtCM0Y2OzExMDMgMTE2QSAxMUJEO0IzRjY7MTEwMyAxMTZBIDExQkQ7CitCM0Y3O0IzRjc7MTEwMyAxMTZBIDExQkU7QjNGNzsxMTAzIDExNkEgMTFCRTsKK0IzRjg7QjNGODsxMTAzIDExNkEgMTFCRjtCM0Y4OzExMDMgMTE2QSAxMUJGOworQjNGOTtCM0Y5OzExMDMgMTE2QSAxMUMwO0IzRjk7MTEwMyAxMTZBIDExQzA7CitCM0ZBO0IzRkE7MTEwMyAxMTZBIDExQzE7QjNGQTsxMTAzIDExNkEgMTFDMTsKK0IzRkI7QjNGQjsxMTAzIDExNkEgMTFDMjtCM0ZCOzExMDMgMTE2QSAxMUMyOworQjNGQztCM0ZDOzExMDMgMTE2QjtCM0ZDOzExMDMgMTE2QjsKK0IzRkQ7QjNGRDsxMTAzIDExNkIgMTFBODtCM0ZEOzExMDMgMTE2QiAxMUE4OworQjNGRTtCM0ZFOzExMDMgMTE2QiAxMUE5O0IzRkU7MTEwMyAxMTZCIDExQTk7CitCM0ZGO0IzRkY7MTEwMyAxMTZCIDExQUE7QjNGRjsxMTAzIDExNkIgMTFBQTsKK0I0MDA7QjQwMDsxMTAzIDExNkIgMTFBQjtCNDAwOzExMDMgMTE2QiAxMUFCOworQjQwMTtCNDAxOzExMDMgMTE2QiAxMUFDO0I0MDE7MTEwMyAxMTZCIDExQUM7CitCNDAyO0I0MDI7MTEwMyAxMTZCIDExQUQ7QjQwMjsxMTAzIDExNkIgMTFBRDsKK0I0MDM7QjQwMzsxMTAzIDExNkIgMTFBRTtCNDAzOzExMDMgMTE2QiAxMUFFOworQjQwNDtCNDA0OzExMDMgMTE2QiAxMUFGO0I0MDQ7MTEwMyAxMTZCIDExQUY7CitCNDA1O0I0MDU7MTEwMyAxMTZCIDExQjA7QjQwNTsxMTAzIDExNkIgMTFCMDsKK0I0MDY7QjQwNjsxMTAzIDExNkIgMTFCMTtCNDA2OzExMDMgMTE2QiAxMUIxOworQjQwNztCNDA3OzExMDMgMTE2QiAxMUIyO0I0MDc7MTEwMyAxMTZCIDExQjI7CitCNDA4O0I0MDg7MTEwMyAxMTZCIDExQjM7QjQwODsxMTAzIDExNkIgMTFCMzsKK0I0MDk7QjQwOTsxMTAzIDExNkIgMTFCNDtCNDA5OzExMDMgMTE2QiAxMUI0OworQjQwQTtCNDBBOzExMDMgMTE2QiAxMUI1O0I0MEE7MTEwMyAxMTZCIDExQjU7CitCNDBCO0I0MEI7MTEwMyAxMTZCIDExQjY7QjQwQjsxMTAzIDExNkIgMTFCNjsKK0I0MEM7QjQwQzsxMTAzIDExNkIgMTFCNztCNDBDOzExMDMgMTE2QiAxMUI3OworQjQwRDtCNDBEOzExMDMgMTE2QiAxMUI4O0I0MEQ7MTEwMyAxMTZCIDExQjg7CitCNDBFO0I0MEU7MTEwMyAxMTZCIDExQjk7QjQwRTsxMTAzIDExNkIgMTFCOTsKK0I0MEY7QjQwRjsxMTAzIDExNkIgMTFCQTtCNDBGOzExMDMgMTE2QiAxMUJBOworQjQxMDtCNDEwOzExMDMgMTE2QiAxMUJCO0I0MTA7MTEwMyAxMTZCIDExQkI7CitCNDExO0I0MTE7MTEwMyAxMTZCIDExQkM7QjQxMTsxMTAzIDExNkIgMTFCQzsKK0I0MTI7QjQxMjsxMTAzIDExNkIgMTFCRDtCNDEyOzExMDMgMTE2QiAxMUJEOworQjQxMztCNDEzOzExMDMgMTE2QiAxMUJFO0I0MTM7MTEwMyAxMTZCIDExQkU7CitCNDE0O0I0MTQ7MTEwMyAxMTZCIDExQkY7QjQxNDsxMTAzIDExNkIgMTFCRjsKK0I0MTU7QjQxNTsxMTAzIDExNkIgMTFDMDtCNDE1OzExMDMgMTE2QiAxMUMwOworQjQxNjtCNDE2OzExMDMgMTE2QiAxMUMxO0I0MTY7MTEwMyAxMTZCIDExQzE7CitCNDE3O0I0MTc7MTEwMyAxMTZCIDExQzI7QjQxNzsxMTAzIDExNkIgMTFDMjsKK0I0MTg7QjQxODsxMTAzIDExNkM7QjQxODsxMTAzIDExNkM7CitCNDE5O0I0MTk7MTEwMyAxMTZDIDExQTg7QjQxOTsxMTAzIDExNkMgMTFBODsKK0I0MUE7QjQxQTsxMTAzIDExNkMgMTFBOTtCNDFBOzExMDMgMTE2QyAxMUE5OworQjQxQjtCNDFCOzExMDMgMTE2QyAxMUFBO0I0MUI7MTEwMyAxMTZDIDExQUE7CitCNDFDO0I0MUM7MTEwMyAxMTZDIDExQUI7QjQxQzsxMTAzIDExNkMgMTFBQjsKK0I0MUQ7QjQxRDsxMTAzIDExNkMgMTFBQztCNDFEOzExMDMgMTE2QyAxMUFDOworQjQxRTtCNDFFOzExMDMgMTE2QyAxMUFEO0I0MUU7MTEwMyAxMTZDIDExQUQ7CitCNDFGO0I0MUY7MTEwMyAxMTZDIDExQUU7QjQxRjsxMTAzIDExNkMgMTFBRTsKK0I0MjA7QjQyMDsxMTAzIDExNkMgMTFBRjtCNDIwOzExMDMgMTE2QyAxMUFGOworQjQyMTtCNDIxOzExMDMgMTE2QyAxMUIwO0I0MjE7MTEwMyAxMTZDIDExQjA7CitCNDIyO0I0MjI7MTEwMyAxMTZDIDExQjE7QjQyMjsxMTAzIDExNkMgMTFCMTsKK0I0MjM7QjQyMzsxMTAzIDExNkMgMTFCMjtCNDIzOzExMDMgMTE2QyAxMUIyOworQjQyNDtCNDI0OzExMDMgMTE2QyAxMUIzO0I0MjQ7MTEwMyAxMTZDIDExQjM7CitCNDI1O0I0MjU7MTEwMyAxMTZDIDExQjQ7QjQyNTsxMTAzIDExNkMgMTFCNDsKK0I0MjY7QjQyNjsxMTAzIDExNkMgMTFCNTtCNDI2OzExMDMgMTE2QyAxMUI1OworQjQyNztCNDI3OzExMDMgMTE2QyAxMUI2O0I0Mjc7MTEwMyAxMTZDIDExQjY7CitCNDI4O0I0Mjg7MTEwMyAxMTZDIDExQjc7QjQyODsxMTAzIDExNkMgMTFCNzsKK0I0Mjk7QjQyOTsxMTAzIDExNkMgMTFCODtCNDI5OzExMDMgMTE2QyAxMUI4OworQjQyQTtCNDJBOzExMDMgMTE2QyAxMUI5O0I0MkE7MTEwMyAxMTZDIDExQjk7CitCNDJCO0I0MkI7MTEwMyAxMTZDIDExQkE7QjQyQjsxMTAzIDExNkMgMTFCQTsKK0I0MkM7QjQyQzsxMTAzIDExNkMgMTFCQjtCNDJDOzExMDMgMTE2QyAxMUJCOworQjQyRDtCNDJEOzExMDMgMTE2QyAxMUJDO0I0MkQ7MTEwMyAxMTZDIDExQkM7CitCNDJFO0I0MkU7MTEwMyAxMTZDIDExQkQ7QjQyRTsxMTAzIDExNkMgMTFCRDsKK0I0MkY7QjQyRjsxMTAzIDExNkMgMTFCRTtCNDJGOzExMDMgMTE2QyAxMUJFOworQjQzMDtCNDMwOzExMDMgMTE2QyAxMUJGO0I0MzA7MTEwMyAxMTZDIDExQkY7CitCNDMxO0I0MzE7MTEwMyAxMTZDIDExQzA7QjQzMTsxMTAzIDExNkMgMTFDMDsKK0I0MzI7QjQzMjsxMTAzIDExNkMgMTFDMTtCNDMyOzExMDMgMTE2QyAxMUMxOworQjQzMztCNDMzOzExMDMgMTE2QyAxMUMyO0I0MzM7MTEwMyAxMTZDIDExQzI7CitCNDM0O0I0MzQ7MTEwMyAxMTZEO0I0MzQ7MTEwMyAxMTZEOworQjQzNTtCNDM1OzExMDMgMTE2RCAxMUE4O0I0MzU7MTEwMyAxMTZEIDExQTg7CitCNDM2O0I0MzY7MTEwMyAxMTZEIDExQTk7QjQzNjsxMTAzIDExNkQgMTFBOTsKK0I0Mzc7QjQzNzsxMTAzIDExNkQgMTFBQTtCNDM3OzExMDMgMTE2RCAxMUFBOworQjQzODtCNDM4OzExMDMgMTE2RCAxMUFCO0I0Mzg7MTEwMyAxMTZEIDExQUI7CitCNDM5O0I0Mzk7MTEwMyAxMTZEIDExQUM7QjQzOTsxMTAzIDExNkQgMTFBQzsKK0I0M0E7QjQzQTsxMTAzIDExNkQgMTFBRDtCNDNBOzExMDMgMTE2RCAxMUFEOworQjQzQjtCNDNCOzExMDMgMTE2RCAxMUFFO0I0M0I7MTEwMyAxMTZEIDExQUU7CitCNDNDO0I0M0M7MTEwMyAxMTZEIDExQUY7QjQzQzsxMTAzIDExNkQgMTFBRjsKK0I0M0Q7QjQzRDsxMTAzIDExNkQgMTFCMDtCNDNEOzExMDMgMTE2RCAxMUIwOworQjQzRTtCNDNFOzExMDMgMTE2RCAxMUIxO0I0M0U7MTEwMyAxMTZEIDExQjE7CitCNDNGO0I0M0Y7MTEwMyAxMTZEIDExQjI7QjQzRjsxMTAzIDExNkQgMTFCMjsKK0I0NDA7QjQ0MDsxMTAzIDExNkQgMTFCMztCNDQwOzExMDMgMTE2RCAxMUIzOworQjQ0MTtCNDQxOzExMDMgMTE2RCAxMUI0O0I0NDE7MTEwMyAxMTZEIDExQjQ7CitCNDQyO0I0NDI7MTEwMyAxMTZEIDExQjU7QjQ0MjsxMTAzIDExNkQgMTFCNTsKK0I0NDM7QjQ0MzsxMTAzIDExNkQgMTFCNjtCNDQzOzExMDMgMTE2RCAxMUI2OworQjQ0NDtCNDQ0OzExMDMgMTE2RCAxMUI3O0I0NDQ7MTEwMyAxMTZEIDExQjc7CitCNDQ1O0I0NDU7MTEwMyAxMTZEIDExQjg7QjQ0NTsxMTAzIDExNkQgMTFCODsKK0I0NDY7QjQ0NjsxMTAzIDExNkQgMTFCOTtCNDQ2OzExMDMgMTE2RCAxMUI5OworQjQ0NztCNDQ3OzExMDMgMTE2RCAxMUJBO0I0NDc7MTEwMyAxMTZEIDExQkE7CitCNDQ4O0I0NDg7MTEwMyAxMTZEIDExQkI7QjQ0ODsxMTAzIDExNkQgMTFCQjsKK0I0NDk7QjQ0OTsxMTAzIDExNkQgMTFCQztCNDQ5OzExMDMgMTE2RCAxMUJDOworQjQ0QTtCNDRBOzExMDMgMTE2RCAxMUJEO0I0NEE7MTEwMyAxMTZEIDExQkQ7CitCNDRCO0I0NEI7MTEwMyAxMTZEIDExQkU7QjQ0QjsxMTAzIDExNkQgMTFCRTsKK0I0NEM7QjQ0QzsxMTAzIDExNkQgMTFCRjtCNDRDOzExMDMgMTE2RCAxMUJGOworQjQ0RDtCNDREOzExMDMgMTE2RCAxMUMwO0I0NEQ7MTEwMyAxMTZEIDExQzA7CitCNDRFO0I0NEU7MTEwMyAxMTZEIDExQzE7QjQ0RTsxMTAzIDExNkQgMTFDMTsKK0I0NEY7QjQ0RjsxMTAzIDExNkQgMTFDMjtCNDRGOzExMDMgMTE2RCAxMUMyOworQjQ1MDtCNDUwOzExMDMgMTE2RTtCNDUwOzExMDMgMTE2RTsKK0I0NTE7QjQ1MTsxMTAzIDExNkUgMTFBODtCNDUxOzExMDMgMTE2RSAxMUE4OworQjQ1MjtCNDUyOzExMDMgMTE2RSAxMUE5O0I0NTI7MTEwMyAxMTZFIDExQTk7CitCNDUzO0I0NTM7MTEwMyAxMTZFIDExQUE7QjQ1MzsxMTAzIDExNkUgMTFBQTsKK0I0NTQ7QjQ1NDsxMTAzIDExNkUgMTFBQjtCNDU0OzExMDMgMTE2RSAxMUFCOworQjQ1NTtCNDU1OzExMDMgMTE2RSAxMUFDO0I0NTU7MTEwMyAxMTZFIDExQUM7CitCNDU2O0I0NTY7MTEwMyAxMTZFIDExQUQ7QjQ1NjsxMTAzIDExNkUgMTFBRDsKK0I0NTc7QjQ1NzsxMTAzIDExNkUgMTFBRTtCNDU3OzExMDMgMTE2RSAxMUFFOworQjQ1ODtCNDU4OzExMDMgMTE2RSAxMUFGO0I0NTg7MTEwMyAxMTZFIDExQUY7CitCNDU5O0I0NTk7MTEwMyAxMTZFIDExQjA7QjQ1OTsxMTAzIDExNkUgMTFCMDsKK0I0NUE7QjQ1QTsxMTAzIDExNkUgMTFCMTtCNDVBOzExMDMgMTE2RSAxMUIxOworQjQ1QjtCNDVCOzExMDMgMTE2RSAxMUIyO0I0NUI7MTEwMyAxMTZFIDExQjI7CitCNDVDO0I0NUM7MTEwMyAxMTZFIDExQjM7QjQ1QzsxMTAzIDExNkUgMTFCMzsKK0I0NUQ7QjQ1RDsxMTAzIDExNkUgMTFCNDtCNDVEOzExMDMgMTE2RSAxMUI0OworQjQ1RTtCNDVFOzExMDMgMTE2RSAxMUI1O0I0NUU7MTEwMyAxMTZFIDExQjU7CitCNDVGO0I0NUY7MTEwMyAxMTZFIDExQjY7QjQ1RjsxMTAzIDExNkUgMTFCNjsKK0I0NjA7QjQ2MDsxMTAzIDExNkUgMTFCNztCNDYwOzExMDMgMTE2RSAxMUI3OworQjQ2MTtCNDYxOzExMDMgMTE2RSAxMUI4O0I0NjE7MTEwMyAxMTZFIDExQjg7CitCNDYyO0I0NjI7MTEwMyAxMTZFIDExQjk7QjQ2MjsxMTAzIDExNkUgMTFCOTsKK0I0NjM7QjQ2MzsxMTAzIDExNkUgMTFCQTtCNDYzOzExMDMgMTE2RSAxMUJBOworQjQ2NDtCNDY0OzExMDMgMTE2RSAxMUJCO0I0NjQ7MTEwMyAxMTZFIDExQkI7CitCNDY1O0I0NjU7MTEwMyAxMTZFIDExQkM7QjQ2NTsxMTAzIDExNkUgMTFCQzsKK0I0NjY7QjQ2NjsxMTAzIDExNkUgMTFCRDtCNDY2OzExMDMgMTE2RSAxMUJEOworQjQ2NztCNDY3OzExMDMgMTE2RSAxMUJFO0I0Njc7MTEwMyAxMTZFIDExQkU7CitCNDY4O0I0Njg7MTEwMyAxMTZFIDExQkY7QjQ2ODsxMTAzIDExNkUgMTFCRjsKK0I0Njk7QjQ2OTsxMTAzIDExNkUgMTFDMDtCNDY5OzExMDMgMTE2RSAxMUMwOworQjQ2QTtCNDZBOzExMDMgMTE2RSAxMUMxO0I0NkE7MTEwMyAxMTZFIDExQzE7CitCNDZCO0I0NkI7MTEwMyAxMTZFIDExQzI7QjQ2QjsxMTAzIDExNkUgMTFDMjsKK0I0NkM7QjQ2QzsxMTAzIDExNkY7QjQ2QzsxMTAzIDExNkY7CitCNDZEO0I0NkQ7MTEwMyAxMTZGIDExQTg7QjQ2RDsxMTAzIDExNkYgMTFBODsKK0I0NkU7QjQ2RTsxMTAzIDExNkYgMTFBOTtCNDZFOzExMDMgMTE2RiAxMUE5OworQjQ2RjtCNDZGOzExMDMgMTE2RiAxMUFBO0I0NkY7MTEwMyAxMTZGIDExQUE7CitCNDcwO0I0NzA7MTEwMyAxMTZGIDExQUI7QjQ3MDsxMTAzIDExNkYgMTFBQjsKK0I0NzE7QjQ3MTsxMTAzIDExNkYgMTFBQztCNDcxOzExMDMgMTE2RiAxMUFDOworQjQ3MjtCNDcyOzExMDMgMTE2RiAxMUFEO0I0NzI7MTEwMyAxMTZGIDExQUQ7CitCNDczO0I0NzM7MTEwMyAxMTZGIDExQUU7QjQ3MzsxMTAzIDExNkYgMTFBRTsKK0I0NzQ7QjQ3NDsxMTAzIDExNkYgMTFBRjtCNDc0OzExMDMgMTE2RiAxMUFGOworQjQ3NTtCNDc1OzExMDMgMTE2RiAxMUIwO0I0NzU7MTEwMyAxMTZGIDExQjA7CitCNDc2O0I0NzY7MTEwMyAxMTZGIDExQjE7QjQ3NjsxMTAzIDExNkYgMTFCMTsKK0I0Nzc7QjQ3NzsxMTAzIDExNkYgMTFCMjtCNDc3OzExMDMgMTE2RiAxMUIyOworQjQ3ODtCNDc4OzExMDMgMTE2RiAxMUIzO0I0Nzg7MTEwMyAxMTZGIDExQjM7CitCNDc5O0I0Nzk7MTEwMyAxMTZGIDExQjQ7QjQ3OTsxMTAzIDExNkYgMTFCNDsKK0I0N0E7QjQ3QTsxMTAzIDExNkYgMTFCNTtCNDdBOzExMDMgMTE2RiAxMUI1OworQjQ3QjtCNDdCOzExMDMgMTE2RiAxMUI2O0I0N0I7MTEwMyAxMTZGIDExQjY7CitCNDdDO0I0N0M7MTEwMyAxMTZGIDExQjc7QjQ3QzsxMTAzIDExNkYgMTFCNzsKK0I0N0Q7QjQ3RDsxMTAzIDExNkYgMTFCODtCNDdEOzExMDMgMTE2RiAxMUI4OworQjQ3RTtCNDdFOzExMDMgMTE2RiAxMUI5O0I0N0U7MTEwMyAxMTZGIDExQjk7CitCNDdGO0I0N0Y7MTEwMyAxMTZGIDExQkE7QjQ3RjsxMTAzIDExNkYgMTFCQTsKK0I0ODA7QjQ4MDsxMTAzIDExNkYgMTFCQjtCNDgwOzExMDMgMTE2RiAxMUJCOworQjQ4MTtCNDgxOzExMDMgMTE2RiAxMUJDO0I0ODE7MTEwMyAxMTZGIDExQkM7CitCNDgyO0I0ODI7MTEwMyAxMTZGIDExQkQ7QjQ4MjsxMTAzIDExNkYgMTFCRDsKK0I0ODM7QjQ4MzsxMTAzIDExNkYgMTFCRTtCNDgzOzExMDMgMTE2RiAxMUJFOworQjQ4NDtCNDg0OzExMDMgMTE2RiAxMUJGO0I0ODQ7MTEwMyAxMTZGIDExQkY7CitCNDg1O0I0ODU7MTEwMyAxMTZGIDExQzA7QjQ4NTsxMTAzIDExNkYgMTFDMDsKK0I0ODY7QjQ4NjsxMTAzIDExNkYgMTFDMTtCNDg2OzExMDMgMTE2RiAxMUMxOworQjQ4NztCNDg3OzExMDMgMTE2RiAxMUMyO0I0ODc7MTEwMyAxMTZGIDExQzI7CitCNDg4O0I0ODg7MTEwMyAxMTcwO0I0ODg7MTEwMyAxMTcwOworQjQ4OTtCNDg5OzExMDMgMTE3MCAxMUE4O0I0ODk7MTEwMyAxMTcwIDExQTg7CitCNDhBO0I0OEE7MTEwMyAxMTcwIDExQTk7QjQ4QTsxMTAzIDExNzAgMTFBOTsKK0I0OEI7QjQ4QjsxMTAzIDExNzAgMTFBQTtCNDhCOzExMDMgMTE3MCAxMUFBOworQjQ4QztCNDhDOzExMDMgMTE3MCAxMUFCO0I0OEM7MTEwMyAxMTcwIDExQUI7CitCNDhEO0I0OEQ7MTEwMyAxMTcwIDExQUM7QjQ4RDsxMTAzIDExNzAgMTFBQzsKK0I0OEU7QjQ4RTsxMTAzIDExNzAgMTFBRDtCNDhFOzExMDMgMTE3MCAxMUFEOworQjQ4RjtCNDhGOzExMDMgMTE3MCAxMUFFO0I0OEY7MTEwMyAxMTcwIDExQUU7CitCNDkwO0I0OTA7MTEwMyAxMTcwIDExQUY7QjQ5MDsxMTAzIDExNzAgMTFBRjsKK0I0OTE7QjQ5MTsxMTAzIDExNzAgMTFCMDtCNDkxOzExMDMgMTE3MCAxMUIwOworQjQ5MjtCNDkyOzExMDMgMTE3MCAxMUIxO0I0OTI7MTEwMyAxMTcwIDExQjE7CitCNDkzO0I0OTM7MTEwMyAxMTcwIDExQjI7QjQ5MzsxMTAzIDExNzAgMTFCMjsKK0I0OTQ7QjQ5NDsxMTAzIDExNzAgMTFCMztCNDk0OzExMDMgMTE3MCAxMUIzOworQjQ5NTtCNDk1OzExMDMgMTE3MCAxMUI0O0I0OTU7MTEwMyAxMTcwIDExQjQ7CitCNDk2O0I0OTY7MTEwMyAxMTcwIDExQjU7QjQ5NjsxMTAzIDExNzAgMTFCNTsKK0I0OTc7QjQ5NzsxMTAzIDExNzAgMTFCNjtCNDk3OzExMDMgMTE3MCAxMUI2OworQjQ5ODtCNDk4OzExMDMgMTE3MCAxMUI3O0I0OTg7MTEwMyAxMTcwIDExQjc7CitCNDk5O0I0OTk7MTEwMyAxMTcwIDExQjg7QjQ5OTsxMTAzIDExNzAgMTFCODsKK0I0OUE7QjQ5QTsxMTAzIDExNzAgMTFCOTtCNDlBOzExMDMgMTE3MCAxMUI5OworQjQ5QjtCNDlCOzExMDMgMTE3MCAxMUJBO0I0OUI7MTEwMyAxMTcwIDExQkE7CitCNDlDO0I0OUM7MTEwMyAxMTcwIDExQkI7QjQ5QzsxMTAzIDExNzAgMTFCQjsKK0I0OUQ7QjQ5RDsxMTAzIDExNzAgMTFCQztCNDlEOzExMDMgMTE3MCAxMUJDOworQjQ5RTtCNDlFOzExMDMgMTE3MCAxMUJEO0I0OUU7MTEwMyAxMTcwIDExQkQ7CitCNDlGO0I0OUY7MTEwMyAxMTcwIDExQkU7QjQ5RjsxMTAzIDExNzAgMTFCRTsKK0I0QTA7QjRBMDsxMTAzIDExNzAgMTFCRjtCNEEwOzExMDMgMTE3MCAxMUJGOworQjRBMTtCNEExOzExMDMgMTE3MCAxMUMwO0I0QTE7MTEwMyAxMTcwIDExQzA7CitCNEEyO0I0QTI7MTEwMyAxMTcwIDExQzE7QjRBMjsxMTAzIDExNzAgMTFDMTsKK0I0QTM7QjRBMzsxMTAzIDExNzAgMTFDMjtCNEEzOzExMDMgMTE3MCAxMUMyOworQjRBNDtCNEE0OzExMDMgMTE3MTtCNEE0OzExMDMgMTE3MTsKK0I0QTU7QjRBNTsxMTAzIDExNzEgMTFBODtCNEE1OzExMDMgMTE3MSAxMUE4OworQjRBNjtCNEE2OzExMDMgMTE3MSAxMUE5O0I0QTY7MTEwMyAxMTcxIDExQTk7CitCNEE3O0I0QTc7MTEwMyAxMTcxIDExQUE7QjRBNzsxMTAzIDExNzEgMTFBQTsKK0I0QTg7QjRBODsxMTAzIDExNzEgMTFBQjtCNEE4OzExMDMgMTE3MSAxMUFCOworQjRBOTtCNEE5OzExMDMgMTE3MSAxMUFDO0I0QTk7MTEwMyAxMTcxIDExQUM7CitCNEFBO0I0QUE7MTEwMyAxMTcxIDExQUQ7QjRBQTsxMTAzIDExNzEgMTFBRDsKK0I0QUI7QjRBQjsxMTAzIDExNzEgMTFBRTtCNEFCOzExMDMgMTE3MSAxMUFFOworQjRBQztCNEFDOzExMDMgMTE3MSAxMUFGO0I0QUM7MTEwMyAxMTcxIDExQUY7CitCNEFEO0I0QUQ7MTEwMyAxMTcxIDExQjA7QjRBRDsxMTAzIDExNzEgMTFCMDsKK0I0QUU7QjRBRTsxMTAzIDExNzEgMTFCMTtCNEFFOzExMDMgMTE3MSAxMUIxOworQjRBRjtCNEFGOzExMDMgMTE3MSAxMUIyO0I0QUY7MTEwMyAxMTcxIDExQjI7CitCNEIwO0I0QjA7MTEwMyAxMTcxIDExQjM7QjRCMDsxMTAzIDExNzEgMTFCMzsKK0I0QjE7QjRCMTsxMTAzIDExNzEgMTFCNDtCNEIxOzExMDMgMTE3MSAxMUI0OworQjRCMjtCNEIyOzExMDMgMTE3MSAxMUI1O0I0QjI7MTEwMyAxMTcxIDExQjU7CitCNEIzO0I0QjM7MTEwMyAxMTcxIDExQjY7QjRCMzsxMTAzIDExNzEgMTFCNjsKK0I0QjQ7QjRCNDsxMTAzIDExNzEgMTFCNztCNEI0OzExMDMgMTE3MSAxMUI3OworQjRCNTtCNEI1OzExMDMgMTE3MSAxMUI4O0I0QjU7MTEwMyAxMTcxIDExQjg7CitCNEI2O0I0QjY7MTEwMyAxMTcxIDExQjk7QjRCNjsxMTAzIDExNzEgMTFCOTsKK0I0Qjc7QjRCNzsxMTAzIDExNzEgMTFCQTtCNEI3OzExMDMgMTE3MSAxMUJBOworQjRCODtCNEI4OzExMDMgMTE3MSAxMUJCO0I0Qjg7MTEwMyAxMTcxIDExQkI7CitCNEI5O0I0Qjk7MTEwMyAxMTcxIDExQkM7QjRCOTsxMTAzIDExNzEgMTFCQzsKK0I0QkE7QjRCQTsxMTAzIDExNzEgMTFCRDtCNEJBOzExMDMgMTE3MSAxMUJEOworQjRCQjtCNEJCOzExMDMgMTE3MSAxMUJFO0I0QkI7MTEwMyAxMTcxIDExQkU7CitCNEJDO0I0QkM7MTEwMyAxMTcxIDExQkY7QjRCQzsxMTAzIDExNzEgMTFCRjsKK0I0QkQ7QjRCRDsxMTAzIDExNzEgMTFDMDtCNEJEOzExMDMgMTE3MSAxMUMwOworQjRCRTtCNEJFOzExMDMgMTE3MSAxMUMxO0I0QkU7MTEwMyAxMTcxIDExQzE7CitCNEJGO0I0QkY7MTEwMyAxMTcxIDExQzI7QjRCRjsxMTAzIDExNzEgMTFDMjsKK0I0QzA7QjRDMDsxMTAzIDExNzI7QjRDMDsxMTAzIDExNzI7CitCNEMxO0I0QzE7MTEwMyAxMTcyIDExQTg7QjRDMTsxMTAzIDExNzIgMTFBODsKK0I0QzI7QjRDMjsxMTAzIDExNzIgMTFBOTtCNEMyOzExMDMgMTE3MiAxMUE5OworQjRDMztCNEMzOzExMDMgMTE3MiAxMUFBO0I0QzM7MTEwMyAxMTcyIDExQUE7CitCNEM0O0I0QzQ7MTEwMyAxMTcyIDExQUI7QjRDNDsxMTAzIDExNzIgMTFBQjsKK0I0QzU7QjRDNTsxMTAzIDExNzIgMTFBQztCNEM1OzExMDMgMTE3MiAxMUFDOworQjRDNjtCNEM2OzExMDMgMTE3MiAxMUFEO0I0QzY7MTEwMyAxMTcyIDExQUQ7CitCNEM3O0I0Qzc7MTEwMyAxMTcyIDExQUU7QjRDNzsxMTAzIDExNzIgMTFBRTsKK0I0Qzg7QjRDODsxMTAzIDExNzIgMTFBRjtCNEM4OzExMDMgMTE3MiAxMUFGOworQjRDOTtCNEM5OzExMDMgMTE3MiAxMUIwO0I0Qzk7MTEwMyAxMTcyIDExQjA7CitCNENBO0I0Q0E7MTEwMyAxMTcyIDExQjE7QjRDQTsxMTAzIDExNzIgMTFCMTsKK0I0Q0I7QjRDQjsxMTAzIDExNzIgMTFCMjtCNENCOzExMDMgMTE3MiAxMUIyOworQjRDQztCNENDOzExMDMgMTE3MiAxMUIzO0I0Q0M7MTEwMyAxMTcyIDExQjM7CitCNENEO0I0Q0Q7MTEwMyAxMTcyIDExQjQ7QjRDRDsxMTAzIDExNzIgMTFCNDsKK0I0Q0U7QjRDRTsxMTAzIDExNzIgMTFCNTtCNENFOzExMDMgMTE3MiAxMUI1OworQjRDRjtCNENGOzExMDMgMTE3MiAxMUI2O0I0Q0Y7MTEwMyAxMTcyIDExQjY7CitCNEQwO0I0RDA7MTEwMyAxMTcyIDExQjc7QjREMDsxMTAzIDExNzIgMTFCNzsKK0I0RDE7QjREMTsxMTAzIDExNzIgMTFCODtCNEQxOzExMDMgMTE3MiAxMUI4OworQjREMjtCNEQyOzExMDMgMTE3MiAxMUI5O0I0RDI7MTEwMyAxMTcyIDExQjk7CitCNEQzO0I0RDM7MTEwMyAxMTcyIDExQkE7QjREMzsxMTAzIDExNzIgMTFCQTsKK0I0RDQ7QjRENDsxMTAzIDExNzIgMTFCQjtCNEQ0OzExMDMgMTE3MiAxMUJCOworQjRENTtCNEQ1OzExMDMgMTE3MiAxMUJDO0I0RDU7MTEwMyAxMTcyIDExQkM7CitCNEQ2O0I0RDY7MTEwMyAxMTcyIDExQkQ7QjRENjsxMTAzIDExNzIgMTFCRDsKK0I0RDc7QjRENzsxMTAzIDExNzIgMTFCRTtCNEQ3OzExMDMgMTE3MiAxMUJFOworQjREODtCNEQ4OzExMDMgMTE3MiAxMUJGO0I0RDg7MTEwMyAxMTcyIDExQkY7CitCNEQ5O0I0RDk7MTEwMyAxMTcyIDExQzA7QjREOTsxMTAzIDExNzIgMTFDMDsKK0I0REE7QjREQTsxMTAzIDExNzIgMTFDMTtCNERBOzExMDMgMTE3MiAxMUMxOworQjREQjtCNERCOzExMDMgMTE3MiAxMUMyO0I0REI7MTEwMyAxMTcyIDExQzI7CitCNERDO0I0REM7MTEwMyAxMTczO0I0REM7MTEwMyAxMTczOworQjRERDtCNEREOzExMDMgMTE3MyAxMUE4O0I0REQ7MTEwMyAxMTczIDExQTg7CitCNERFO0I0REU7MTEwMyAxMTczIDExQTk7QjRERTsxMTAzIDExNzMgMTFBOTsKK0I0REY7QjRERjsxMTAzIDExNzMgMTFBQTtCNERGOzExMDMgMTE3MyAxMUFBOworQjRFMDtCNEUwOzExMDMgMTE3MyAxMUFCO0I0RTA7MTEwMyAxMTczIDExQUI7CitCNEUxO0I0RTE7MTEwMyAxMTczIDExQUM7QjRFMTsxMTAzIDExNzMgMTFBQzsKK0I0RTI7QjRFMjsxMTAzIDExNzMgMTFBRDtCNEUyOzExMDMgMTE3MyAxMUFEOworQjRFMztCNEUzOzExMDMgMTE3MyAxMUFFO0I0RTM7MTEwMyAxMTczIDExQUU7CitCNEU0O0I0RTQ7MTEwMyAxMTczIDExQUY7QjRFNDsxMTAzIDExNzMgMTFBRjsKK0I0RTU7QjRFNTsxMTAzIDExNzMgMTFCMDtCNEU1OzExMDMgMTE3MyAxMUIwOworQjRFNjtCNEU2OzExMDMgMTE3MyAxMUIxO0I0RTY7MTEwMyAxMTczIDExQjE7CitCNEU3O0I0RTc7MTEwMyAxMTczIDExQjI7QjRFNzsxMTAzIDExNzMgMTFCMjsKK0I0RTg7QjRFODsxMTAzIDExNzMgMTFCMztCNEU4OzExMDMgMTE3MyAxMUIzOworQjRFOTtCNEU5OzExMDMgMTE3MyAxMUI0O0I0RTk7MTEwMyAxMTczIDExQjQ7CitCNEVBO0I0RUE7MTEwMyAxMTczIDExQjU7QjRFQTsxMTAzIDExNzMgMTFCNTsKK0I0RUI7QjRFQjsxMTAzIDExNzMgMTFCNjtCNEVCOzExMDMgMTE3MyAxMUI2OworQjRFQztCNEVDOzExMDMgMTE3MyAxMUI3O0I0RUM7MTEwMyAxMTczIDExQjc7CitCNEVEO0I0RUQ7MTEwMyAxMTczIDExQjg7QjRFRDsxMTAzIDExNzMgMTFCODsKK0I0RUU7QjRFRTsxMTAzIDExNzMgMTFCOTtCNEVFOzExMDMgMTE3MyAxMUI5OworQjRFRjtCNEVGOzExMDMgMTE3MyAxMUJBO0I0RUY7MTEwMyAxMTczIDExQkE7CitCNEYwO0I0RjA7MTEwMyAxMTczIDExQkI7QjRGMDsxMTAzIDExNzMgMTFCQjsKK0I0RjE7QjRGMTsxMTAzIDExNzMgMTFCQztCNEYxOzExMDMgMTE3MyAxMUJDOworQjRGMjtCNEYyOzExMDMgMTE3MyAxMUJEO0I0RjI7MTEwMyAxMTczIDExQkQ7CitCNEYzO0I0RjM7MTEwMyAxMTczIDExQkU7QjRGMzsxMTAzIDExNzMgMTFCRTsKK0I0RjQ7QjRGNDsxMTAzIDExNzMgMTFCRjtCNEY0OzExMDMgMTE3MyAxMUJGOworQjRGNTtCNEY1OzExMDMgMTE3MyAxMUMwO0I0RjU7MTEwMyAxMTczIDExQzA7CitCNEY2O0I0RjY7MTEwMyAxMTczIDExQzE7QjRGNjsxMTAzIDExNzMgMTFDMTsKK0I0Rjc7QjRGNzsxMTAzIDExNzMgMTFDMjtCNEY3OzExMDMgMTE3MyAxMUMyOworQjRGODtCNEY4OzExMDMgMTE3NDtCNEY4OzExMDMgMTE3NDsKK0I0Rjk7QjRGOTsxMTAzIDExNzQgMTFBODtCNEY5OzExMDMgMTE3NCAxMUE4OworQjRGQTtCNEZBOzExMDMgMTE3NCAxMUE5O0I0RkE7MTEwMyAxMTc0IDExQTk7CitCNEZCO0I0RkI7MTEwMyAxMTc0IDExQUE7QjRGQjsxMTAzIDExNzQgMTFBQTsKK0I0RkM7QjRGQzsxMTAzIDExNzQgMTFBQjtCNEZDOzExMDMgMTE3NCAxMUFCOworQjRGRDtCNEZEOzExMDMgMTE3NCAxMUFDO0I0RkQ7MTEwMyAxMTc0IDExQUM7CitCNEZFO0I0RkU7MTEwMyAxMTc0IDExQUQ7QjRGRTsxMTAzIDExNzQgMTFBRDsKK0I0RkY7QjRGRjsxMTAzIDExNzQgMTFBRTtCNEZGOzExMDMgMTE3NCAxMUFFOworQjUwMDtCNTAwOzExMDMgMTE3NCAxMUFGO0I1MDA7MTEwMyAxMTc0IDExQUY7CitCNTAxO0I1MDE7MTEwMyAxMTc0IDExQjA7QjUwMTsxMTAzIDExNzQgMTFCMDsKK0I1MDI7QjUwMjsxMTAzIDExNzQgMTFCMTtCNTAyOzExMDMgMTE3NCAxMUIxOworQjUwMztCNTAzOzExMDMgMTE3NCAxMUIyO0I1MDM7MTEwMyAxMTc0IDExQjI7CitCNTA0O0I1MDQ7MTEwMyAxMTc0IDExQjM7QjUwNDsxMTAzIDExNzQgMTFCMzsKK0I1MDU7QjUwNTsxMTAzIDExNzQgMTFCNDtCNTA1OzExMDMgMTE3NCAxMUI0OworQjUwNjtCNTA2OzExMDMgMTE3NCAxMUI1O0I1MDY7MTEwMyAxMTc0IDExQjU7CitCNTA3O0I1MDc7MTEwMyAxMTc0IDExQjY7QjUwNzsxMTAzIDExNzQgMTFCNjsKK0I1MDg7QjUwODsxMTAzIDExNzQgMTFCNztCNTA4OzExMDMgMTE3NCAxMUI3OworQjUwOTtCNTA5OzExMDMgMTE3NCAxMUI4O0I1MDk7MTEwMyAxMTc0IDExQjg7CitCNTBBO0I1MEE7MTEwMyAxMTc0IDExQjk7QjUwQTsxMTAzIDExNzQgMTFCOTsKK0I1MEI7QjUwQjsxMTAzIDExNzQgMTFCQTtCNTBCOzExMDMgMTE3NCAxMUJBOworQjUwQztCNTBDOzExMDMgMTE3NCAxMUJCO0I1MEM7MTEwMyAxMTc0IDExQkI7CitCNTBEO0I1MEQ7MTEwMyAxMTc0IDExQkM7QjUwRDsxMTAzIDExNzQgMTFCQzsKK0I1MEU7QjUwRTsxMTAzIDExNzQgMTFCRDtCNTBFOzExMDMgMTE3NCAxMUJEOworQjUwRjtCNTBGOzExMDMgMTE3NCAxMUJFO0I1MEY7MTEwMyAxMTc0IDExQkU7CitCNTEwO0I1MTA7MTEwMyAxMTc0IDExQkY7QjUxMDsxMTAzIDExNzQgMTFCRjsKK0I1MTE7QjUxMTsxMTAzIDExNzQgMTFDMDtCNTExOzExMDMgMTE3NCAxMUMwOworQjUxMjtCNTEyOzExMDMgMTE3NCAxMUMxO0I1MTI7MTEwMyAxMTc0IDExQzE7CitCNTEzO0I1MTM7MTEwMyAxMTc0IDExQzI7QjUxMzsxMTAzIDExNzQgMTFDMjsKK0I1MTQ7QjUxNDsxMTAzIDExNzU7QjUxNDsxMTAzIDExNzU7CitCNTE1O0I1MTU7MTEwMyAxMTc1IDExQTg7QjUxNTsxMTAzIDExNzUgMTFBODsKK0I1MTY7QjUxNjsxMTAzIDExNzUgMTFBOTtCNTE2OzExMDMgMTE3NSAxMUE5OworQjUxNztCNTE3OzExMDMgMTE3NSAxMUFBO0I1MTc7MTEwMyAxMTc1IDExQUE7CitCNTE4O0I1MTg7MTEwMyAxMTc1IDExQUI7QjUxODsxMTAzIDExNzUgMTFBQjsKK0I1MTk7QjUxOTsxMTAzIDExNzUgMTFBQztCNTE5OzExMDMgMTE3NSAxMUFDOworQjUxQTtCNTFBOzExMDMgMTE3NSAxMUFEO0I1MUE7MTEwMyAxMTc1IDExQUQ7CitCNTFCO0I1MUI7MTEwMyAxMTc1IDExQUU7QjUxQjsxMTAzIDExNzUgMTFBRTsKK0I1MUM7QjUxQzsxMTAzIDExNzUgMTFBRjtCNTFDOzExMDMgMTE3NSAxMUFGOworQjUxRDtCNTFEOzExMDMgMTE3NSAxMUIwO0I1MUQ7MTEwMyAxMTc1IDExQjA7CitCNTFFO0I1MUU7MTEwMyAxMTc1IDExQjE7QjUxRTsxMTAzIDExNzUgMTFCMTsKK0I1MUY7QjUxRjsxMTAzIDExNzUgMTFCMjtCNTFGOzExMDMgMTE3NSAxMUIyOworQjUyMDtCNTIwOzExMDMgMTE3NSAxMUIzO0I1MjA7MTEwMyAxMTc1IDExQjM7CitCNTIxO0I1MjE7MTEwMyAxMTc1IDExQjQ7QjUyMTsxMTAzIDExNzUgMTFCNDsKK0I1MjI7QjUyMjsxMTAzIDExNzUgMTFCNTtCNTIyOzExMDMgMTE3NSAxMUI1OworQjUyMztCNTIzOzExMDMgMTE3NSAxMUI2O0I1MjM7MTEwMyAxMTc1IDExQjY7CitCNTI0O0I1MjQ7MTEwMyAxMTc1IDExQjc7QjUyNDsxMTAzIDExNzUgMTFCNzsKK0I1MjU7QjUyNTsxMTAzIDExNzUgMTFCODtCNTI1OzExMDMgMTE3NSAxMUI4OworQjUyNjtCNTI2OzExMDMgMTE3NSAxMUI5O0I1MjY7MTEwMyAxMTc1IDExQjk7CitCNTI3O0I1Mjc7MTEwMyAxMTc1IDExQkE7QjUyNzsxMTAzIDExNzUgMTFCQTsKK0I1Mjg7QjUyODsxMTAzIDExNzUgMTFCQjtCNTI4OzExMDMgMTE3NSAxMUJCOworQjUyOTtCNTI5OzExMDMgMTE3NSAxMUJDO0I1Mjk7MTEwMyAxMTc1IDExQkM7CitCNTJBO0I1MkE7MTEwMyAxMTc1IDExQkQ7QjUyQTsxMTAzIDExNzUgMTFCRDsKK0I1MkI7QjUyQjsxMTAzIDExNzUgMTFCRTtCNTJCOzExMDMgMTE3NSAxMUJFOworQjUyQztCNTJDOzExMDMgMTE3NSAxMUJGO0I1MkM7MTEwMyAxMTc1IDExQkY7CitCNTJEO0I1MkQ7MTEwMyAxMTc1IDExQzA7QjUyRDsxMTAzIDExNzUgMTFDMDsKK0I1MkU7QjUyRTsxMTAzIDExNzUgMTFDMTtCNTJFOzExMDMgMTE3NSAxMUMxOworQjUyRjtCNTJGOzExMDMgMTE3NSAxMUMyO0I1MkY7MTEwMyAxMTc1IDExQzI7CitCNTMwO0I1MzA7MTEwNCAxMTYxO0I1MzA7MTEwNCAxMTYxOworQjUzMTtCNTMxOzExMDQgMTE2MSAxMUE4O0I1MzE7MTEwNCAxMTYxIDExQTg7CitCNTMyO0I1MzI7MTEwNCAxMTYxIDExQTk7QjUzMjsxMTA0IDExNjEgMTFBOTsKK0I1MzM7QjUzMzsxMTA0IDExNjEgMTFBQTtCNTMzOzExMDQgMTE2MSAxMUFBOworQjUzNDtCNTM0OzExMDQgMTE2MSAxMUFCO0I1MzQ7MTEwNCAxMTYxIDExQUI7CitCNTM1O0I1MzU7MTEwNCAxMTYxIDExQUM7QjUzNTsxMTA0IDExNjEgMTFBQzsKK0I1MzY7QjUzNjsxMTA0IDExNjEgMTFBRDtCNTM2OzExMDQgMTE2MSAxMUFEOworQjUzNztCNTM3OzExMDQgMTE2MSAxMUFFO0I1Mzc7MTEwNCAxMTYxIDExQUU7CitCNTM4O0I1Mzg7MTEwNCAxMTYxIDExQUY7QjUzODsxMTA0IDExNjEgMTFBRjsKK0I1Mzk7QjUzOTsxMTA0IDExNjEgMTFCMDtCNTM5OzExMDQgMTE2MSAxMUIwOworQjUzQTtCNTNBOzExMDQgMTE2MSAxMUIxO0I1M0E7MTEwNCAxMTYxIDExQjE7CitCNTNCO0I1M0I7MTEwNCAxMTYxIDExQjI7QjUzQjsxMTA0IDExNjEgMTFCMjsKK0I1M0M7QjUzQzsxMTA0IDExNjEgMTFCMztCNTNDOzExMDQgMTE2MSAxMUIzOworQjUzRDtCNTNEOzExMDQgMTE2MSAxMUI0O0I1M0Q7MTEwNCAxMTYxIDExQjQ7CitCNTNFO0I1M0U7MTEwNCAxMTYxIDExQjU7QjUzRTsxMTA0IDExNjEgMTFCNTsKK0I1M0Y7QjUzRjsxMTA0IDExNjEgMTFCNjtCNTNGOzExMDQgMTE2MSAxMUI2OworQjU0MDtCNTQwOzExMDQgMTE2MSAxMUI3O0I1NDA7MTEwNCAxMTYxIDExQjc7CitCNTQxO0I1NDE7MTEwNCAxMTYxIDExQjg7QjU0MTsxMTA0IDExNjEgMTFCODsKK0I1NDI7QjU0MjsxMTA0IDExNjEgMTFCOTtCNTQyOzExMDQgMTE2MSAxMUI5OworQjU0MztCNTQzOzExMDQgMTE2MSAxMUJBO0I1NDM7MTEwNCAxMTYxIDExQkE7CitCNTQ0O0I1NDQ7MTEwNCAxMTYxIDExQkI7QjU0NDsxMTA0IDExNjEgMTFCQjsKK0I1NDU7QjU0NTsxMTA0IDExNjEgMTFCQztCNTQ1OzExMDQgMTE2MSAxMUJDOworQjU0NjtCNTQ2OzExMDQgMTE2MSAxMUJEO0I1NDY7MTEwNCAxMTYxIDExQkQ7CitCNTQ3O0I1NDc7MTEwNCAxMTYxIDExQkU7QjU0NzsxMTA0IDExNjEgMTFCRTsKK0I1NDg7QjU0ODsxMTA0IDExNjEgMTFCRjtCNTQ4OzExMDQgMTE2MSAxMUJGOworQjU0OTtCNTQ5OzExMDQgMTE2MSAxMUMwO0I1NDk7MTEwNCAxMTYxIDExQzA7CitCNTRBO0I1NEE7MTEwNCAxMTYxIDExQzE7QjU0QTsxMTA0IDExNjEgMTFDMTsKK0I1NEI7QjU0QjsxMTA0IDExNjEgMTFDMjtCNTRCOzExMDQgMTE2MSAxMUMyOworQjU0QztCNTRDOzExMDQgMTE2MjtCNTRDOzExMDQgMTE2MjsKK0I1NEQ7QjU0RDsxMTA0IDExNjIgMTFBODtCNTREOzExMDQgMTE2MiAxMUE4OworQjU0RTtCNTRFOzExMDQgMTE2MiAxMUE5O0I1NEU7MTEwNCAxMTYyIDExQTk7CitCNTRGO0I1NEY7MTEwNCAxMTYyIDExQUE7QjU0RjsxMTA0IDExNjIgMTFBQTsKK0I1NTA7QjU1MDsxMTA0IDExNjIgMTFBQjtCNTUwOzExMDQgMTE2MiAxMUFCOworQjU1MTtCNTUxOzExMDQgMTE2MiAxMUFDO0I1NTE7MTEwNCAxMTYyIDExQUM7CitCNTUyO0I1NTI7MTEwNCAxMTYyIDExQUQ7QjU1MjsxMTA0IDExNjIgMTFBRDsKK0I1NTM7QjU1MzsxMTA0IDExNjIgMTFBRTtCNTUzOzExMDQgMTE2MiAxMUFFOworQjU1NDtCNTU0OzExMDQgMTE2MiAxMUFGO0I1NTQ7MTEwNCAxMTYyIDExQUY7CitCNTU1O0I1NTU7MTEwNCAxMTYyIDExQjA7QjU1NTsxMTA0IDExNjIgMTFCMDsKK0I1NTY7QjU1NjsxMTA0IDExNjIgMTFCMTtCNTU2OzExMDQgMTE2MiAxMUIxOworQjU1NztCNTU3OzExMDQgMTE2MiAxMUIyO0I1NTc7MTEwNCAxMTYyIDExQjI7CitCNTU4O0I1NTg7MTEwNCAxMTYyIDExQjM7QjU1ODsxMTA0IDExNjIgMTFCMzsKK0I1NTk7QjU1OTsxMTA0IDExNjIgMTFCNDtCNTU5OzExMDQgMTE2MiAxMUI0OworQjU1QTtCNTVBOzExMDQgMTE2MiAxMUI1O0I1NUE7MTEwNCAxMTYyIDExQjU7CitCNTVCO0I1NUI7MTEwNCAxMTYyIDExQjY7QjU1QjsxMTA0IDExNjIgMTFCNjsKK0I1NUM7QjU1QzsxMTA0IDExNjIgMTFCNztCNTVDOzExMDQgMTE2MiAxMUI3OworQjU1RDtCNTVEOzExMDQgMTE2MiAxMUI4O0I1NUQ7MTEwNCAxMTYyIDExQjg7CitCNTVFO0I1NUU7MTEwNCAxMTYyIDExQjk7QjU1RTsxMTA0IDExNjIgMTFCOTsKK0I1NUY7QjU1RjsxMTA0IDExNjIgMTFCQTtCNTVGOzExMDQgMTE2MiAxMUJBOworQjU2MDtCNTYwOzExMDQgMTE2MiAxMUJCO0I1NjA7MTEwNCAxMTYyIDExQkI7CitCNTYxO0I1NjE7MTEwNCAxMTYyIDExQkM7QjU2MTsxMTA0IDExNjIgMTFCQzsKK0I1NjI7QjU2MjsxMTA0IDExNjIgMTFCRDtCNTYyOzExMDQgMTE2MiAxMUJEOworQjU2MztCNTYzOzExMDQgMTE2MiAxMUJFO0I1NjM7MTEwNCAxMTYyIDExQkU7CitCNTY0O0I1NjQ7MTEwNCAxMTYyIDExQkY7QjU2NDsxMTA0IDExNjIgMTFCRjsKK0I1NjU7QjU2NTsxMTA0IDExNjIgMTFDMDtCNTY1OzExMDQgMTE2MiAxMUMwOworQjU2NjtCNTY2OzExMDQgMTE2MiAxMUMxO0I1NjY7MTEwNCAxMTYyIDExQzE7CitCNTY3O0I1Njc7MTEwNCAxMTYyIDExQzI7QjU2NzsxMTA0IDExNjIgMTFDMjsKK0I1Njg7QjU2ODsxMTA0IDExNjM7QjU2ODsxMTA0IDExNjM7CitCNTY5O0I1Njk7MTEwNCAxMTYzIDExQTg7QjU2OTsxMTA0IDExNjMgMTFBODsKK0I1NkE7QjU2QTsxMTA0IDExNjMgMTFBOTtCNTZBOzExMDQgMTE2MyAxMUE5OworQjU2QjtCNTZCOzExMDQgMTE2MyAxMUFBO0I1NkI7MTEwNCAxMTYzIDExQUE7CitCNTZDO0I1NkM7MTEwNCAxMTYzIDExQUI7QjU2QzsxMTA0IDExNjMgMTFBQjsKK0I1NkQ7QjU2RDsxMTA0IDExNjMgMTFBQztCNTZEOzExMDQgMTE2MyAxMUFDOworQjU2RTtCNTZFOzExMDQgMTE2MyAxMUFEO0I1NkU7MTEwNCAxMTYzIDExQUQ7CitCNTZGO0I1NkY7MTEwNCAxMTYzIDExQUU7QjU2RjsxMTA0IDExNjMgMTFBRTsKK0I1NzA7QjU3MDsxMTA0IDExNjMgMTFBRjtCNTcwOzExMDQgMTE2MyAxMUFGOworQjU3MTtCNTcxOzExMDQgMTE2MyAxMUIwO0I1NzE7MTEwNCAxMTYzIDExQjA7CitCNTcyO0I1NzI7MTEwNCAxMTYzIDExQjE7QjU3MjsxMTA0IDExNjMgMTFCMTsKK0I1NzM7QjU3MzsxMTA0IDExNjMgMTFCMjtCNTczOzExMDQgMTE2MyAxMUIyOworQjU3NDtCNTc0OzExMDQgMTE2MyAxMUIzO0I1NzQ7MTEwNCAxMTYzIDExQjM7CitCNTc1O0I1NzU7MTEwNCAxMTYzIDExQjQ7QjU3NTsxMTA0IDExNjMgMTFCNDsKK0I1NzY7QjU3NjsxMTA0IDExNjMgMTFCNTtCNTc2OzExMDQgMTE2MyAxMUI1OworQjU3NztCNTc3OzExMDQgMTE2MyAxMUI2O0I1Nzc7MTEwNCAxMTYzIDExQjY7CitCNTc4O0I1Nzg7MTEwNCAxMTYzIDExQjc7QjU3ODsxMTA0IDExNjMgMTFCNzsKK0I1Nzk7QjU3OTsxMTA0IDExNjMgMTFCODtCNTc5OzExMDQgMTE2MyAxMUI4OworQjU3QTtCNTdBOzExMDQgMTE2MyAxMUI5O0I1N0E7MTEwNCAxMTYzIDExQjk7CitCNTdCO0I1N0I7MTEwNCAxMTYzIDExQkE7QjU3QjsxMTA0IDExNjMgMTFCQTsKK0I1N0M7QjU3QzsxMTA0IDExNjMgMTFCQjtCNTdDOzExMDQgMTE2MyAxMUJCOworQjU3RDtCNTdEOzExMDQgMTE2MyAxMUJDO0I1N0Q7MTEwNCAxMTYzIDExQkM7CitCNTdFO0I1N0U7MTEwNCAxMTYzIDExQkQ7QjU3RTsxMTA0IDExNjMgMTFCRDsKK0I1N0Y7QjU3RjsxMTA0IDExNjMgMTFCRTtCNTdGOzExMDQgMTE2MyAxMUJFOworQjU4MDtCNTgwOzExMDQgMTE2MyAxMUJGO0I1ODA7MTEwNCAxMTYzIDExQkY7CitCNTgxO0I1ODE7MTEwNCAxMTYzIDExQzA7QjU4MTsxMTA0IDExNjMgMTFDMDsKK0I1ODI7QjU4MjsxMTA0IDExNjMgMTFDMTtCNTgyOzExMDQgMTE2MyAxMUMxOworQjU4MztCNTgzOzExMDQgMTE2MyAxMUMyO0I1ODM7MTEwNCAxMTYzIDExQzI7CitCNTg0O0I1ODQ7MTEwNCAxMTY0O0I1ODQ7MTEwNCAxMTY0OworQjU4NTtCNTg1OzExMDQgMTE2NCAxMUE4O0I1ODU7MTEwNCAxMTY0IDExQTg7CitCNTg2O0I1ODY7MTEwNCAxMTY0IDExQTk7QjU4NjsxMTA0IDExNjQgMTFBOTsKK0I1ODc7QjU4NzsxMTA0IDExNjQgMTFBQTtCNTg3OzExMDQgMTE2NCAxMUFBOworQjU4ODtCNTg4OzExMDQgMTE2NCAxMUFCO0I1ODg7MTEwNCAxMTY0IDExQUI7CitCNTg5O0I1ODk7MTEwNCAxMTY0IDExQUM7QjU4OTsxMTA0IDExNjQgMTFBQzsKK0I1OEE7QjU4QTsxMTA0IDExNjQgMTFBRDtCNThBOzExMDQgMTE2NCAxMUFEOworQjU4QjtCNThCOzExMDQgMTE2NCAxMUFFO0I1OEI7MTEwNCAxMTY0IDExQUU7CitCNThDO0I1OEM7MTEwNCAxMTY0IDExQUY7QjU4QzsxMTA0IDExNjQgMTFBRjsKK0I1OEQ7QjU4RDsxMTA0IDExNjQgMTFCMDtCNThEOzExMDQgMTE2NCAxMUIwOworQjU4RTtCNThFOzExMDQgMTE2NCAxMUIxO0I1OEU7MTEwNCAxMTY0IDExQjE7CitCNThGO0I1OEY7MTEwNCAxMTY0IDExQjI7QjU4RjsxMTA0IDExNjQgMTFCMjsKK0I1OTA7QjU5MDsxMTA0IDExNjQgMTFCMztCNTkwOzExMDQgMTE2NCAxMUIzOworQjU5MTtCNTkxOzExMDQgMTE2NCAxMUI0O0I1OTE7MTEwNCAxMTY0IDExQjQ7CitCNTkyO0I1OTI7MTEwNCAxMTY0IDExQjU7QjU5MjsxMTA0IDExNjQgMTFCNTsKK0I1OTM7QjU5MzsxMTA0IDExNjQgMTFCNjtCNTkzOzExMDQgMTE2NCAxMUI2OworQjU5NDtCNTk0OzExMDQgMTE2NCAxMUI3O0I1OTQ7MTEwNCAxMTY0IDExQjc7CitCNTk1O0I1OTU7MTEwNCAxMTY0IDExQjg7QjU5NTsxMTA0IDExNjQgMTFCODsKK0I1OTY7QjU5NjsxMTA0IDExNjQgMTFCOTtCNTk2OzExMDQgMTE2NCAxMUI5OworQjU5NztCNTk3OzExMDQgMTE2NCAxMUJBO0I1OTc7MTEwNCAxMTY0IDExQkE7CitCNTk4O0I1OTg7MTEwNCAxMTY0IDExQkI7QjU5ODsxMTA0IDExNjQgMTFCQjsKK0I1OTk7QjU5OTsxMTA0IDExNjQgMTFCQztCNTk5OzExMDQgMTE2NCAxMUJDOworQjU5QTtCNTlBOzExMDQgMTE2NCAxMUJEO0I1OUE7MTEwNCAxMTY0IDExQkQ7CitCNTlCO0I1OUI7MTEwNCAxMTY0IDExQkU7QjU5QjsxMTA0IDExNjQgMTFCRTsKK0I1OUM7QjU5QzsxMTA0IDExNjQgMTFCRjtCNTlDOzExMDQgMTE2NCAxMUJGOworQjU5RDtCNTlEOzExMDQgMTE2NCAxMUMwO0I1OUQ7MTEwNCAxMTY0IDExQzA7CitCNTlFO0I1OUU7MTEwNCAxMTY0IDExQzE7QjU5RTsxMTA0IDExNjQgMTFDMTsKK0I1OUY7QjU5RjsxMTA0IDExNjQgMTFDMjtCNTlGOzExMDQgMTE2NCAxMUMyOworQjVBMDtCNUEwOzExMDQgMTE2NTtCNUEwOzExMDQgMTE2NTsKK0I1QTE7QjVBMTsxMTA0IDExNjUgMTFBODtCNUExOzExMDQgMTE2NSAxMUE4OworQjVBMjtCNUEyOzExMDQgMTE2NSAxMUE5O0I1QTI7MTEwNCAxMTY1IDExQTk7CitCNUEzO0I1QTM7MTEwNCAxMTY1IDExQUE7QjVBMzsxMTA0IDExNjUgMTFBQTsKK0I1QTQ7QjVBNDsxMTA0IDExNjUgMTFBQjtCNUE0OzExMDQgMTE2NSAxMUFCOworQjVBNTtCNUE1OzExMDQgMTE2NSAxMUFDO0I1QTU7MTEwNCAxMTY1IDExQUM7CitCNUE2O0I1QTY7MTEwNCAxMTY1IDExQUQ7QjVBNjsxMTA0IDExNjUgMTFBRDsKK0I1QTc7QjVBNzsxMTA0IDExNjUgMTFBRTtCNUE3OzExMDQgMTE2NSAxMUFFOworQjVBODtCNUE4OzExMDQgMTE2NSAxMUFGO0I1QTg7MTEwNCAxMTY1IDExQUY7CitCNUE5O0I1QTk7MTEwNCAxMTY1IDExQjA7QjVBOTsxMTA0IDExNjUgMTFCMDsKK0I1QUE7QjVBQTsxMTA0IDExNjUgMTFCMTtCNUFBOzExMDQgMTE2NSAxMUIxOworQjVBQjtCNUFCOzExMDQgMTE2NSAxMUIyO0I1QUI7MTEwNCAxMTY1IDExQjI7CitCNUFDO0I1QUM7MTEwNCAxMTY1IDExQjM7QjVBQzsxMTA0IDExNjUgMTFCMzsKK0I1QUQ7QjVBRDsxMTA0IDExNjUgMTFCNDtCNUFEOzExMDQgMTE2NSAxMUI0OworQjVBRTtCNUFFOzExMDQgMTE2NSAxMUI1O0I1QUU7MTEwNCAxMTY1IDExQjU7CitCNUFGO0I1QUY7MTEwNCAxMTY1IDExQjY7QjVBRjsxMTA0IDExNjUgMTFCNjsKK0I1QjA7QjVCMDsxMTA0IDExNjUgMTFCNztCNUIwOzExMDQgMTE2NSAxMUI3OworQjVCMTtCNUIxOzExMDQgMTE2NSAxMUI4O0I1QjE7MTEwNCAxMTY1IDExQjg7CitCNUIyO0I1QjI7MTEwNCAxMTY1IDExQjk7QjVCMjsxMTA0IDExNjUgMTFCOTsKK0I1QjM7QjVCMzsxMTA0IDExNjUgMTFCQTtCNUIzOzExMDQgMTE2NSAxMUJBOworQjVCNDtCNUI0OzExMDQgMTE2NSAxMUJCO0I1QjQ7MTEwNCAxMTY1IDExQkI7CitCNUI1O0I1QjU7MTEwNCAxMTY1IDExQkM7QjVCNTsxMTA0IDExNjUgMTFCQzsKK0I1QjY7QjVCNjsxMTA0IDExNjUgMTFCRDtCNUI2OzExMDQgMTE2NSAxMUJEOworQjVCNztCNUI3OzExMDQgMTE2NSAxMUJFO0I1Qjc7MTEwNCAxMTY1IDExQkU7CitCNUI4O0I1Qjg7MTEwNCAxMTY1IDExQkY7QjVCODsxMTA0IDExNjUgMTFCRjsKK0I1Qjk7QjVCOTsxMTA0IDExNjUgMTFDMDtCNUI5OzExMDQgMTE2NSAxMUMwOworQjVCQTtCNUJBOzExMDQgMTE2NSAxMUMxO0I1QkE7MTEwNCAxMTY1IDExQzE7CitCNUJCO0I1QkI7MTEwNCAxMTY1IDExQzI7QjVCQjsxMTA0IDExNjUgMTFDMjsKK0I1QkM7QjVCQzsxMTA0IDExNjY7QjVCQzsxMTA0IDExNjY7CitCNUJEO0I1QkQ7MTEwNCAxMTY2IDExQTg7QjVCRDsxMTA0IDExNjYgMTFBODsKK0I1QkU7QjVCRTsxMTA0IDExNjYgMTFBOTtCNUJFOzExMDQgMTE2NiAxMUE5OworQjVCRjtCNUJGOzExMDQgMTE2NiAxMUFBO0I1QkY7MTEwNCAxMTY2IDExQUE7CitCNUMwO0I1QzA7MTEwNCAxMTY2IDExQUI7QjVDMDsxMTA0IDExNjYgMTFBQjsKK0I1QzE7QjVDMTsxMTA0IDExNjYgMTFBQztCNUMxOzExMDQgMTE2NiAxMUFDOworQjVDMjtCNUMyOzExMDQgMTE2NiAxMUFEO0I1QzI7MTEwNCAxMTY2IDExQUQ7CitCNUMzO0I1QzM7MTEwNCAxMTY2IDExQUU7QjVDMzsxMTA0IDExNjYgMTFBRTsKK0I1QzQ7QjVDNDsxMTA0IDExNjYgMTFBRjtCNUM0OzExMDQgMTE2NiAxMUFGOworQjVDNTtCNUM1OzExMDQgMTE2NiAxMUIwO0I1QzU7MTEwNCAxMTY2IDExQjA7CitCNUM2O0I1QzY7MTEwNCAxMTY2IDExQjE7QjVDNjsxMTA0IDExNjYgMTFCMTsKK0I1Qzc7QjVDNzsxMTA0IDExNjYgMTFCMjtCNUM3OzExMDQgMTE2NiAxMUIyOworQjVDODtCNUM4OzExMDQgMTE2NiAxMUIzO0I1Qzg7MTEwNCAxMTY2IDExQjM7CitCNUM5O0I1Qzk7MTEwNCAxMTY2IDExQjQ7QjVDOTsxMTA0IDExNjYgMTFCNDsKK0I1Q0E7QjVDQTsxMTA0IDExNjYgMTFCNTtCNUNBOzExMDQgMTE2NiAxMUI1OworQjVDQjtCNUNCOzExMDQgMTE2NiAxMUI2O0I1Q0I7MTEwNCAxMTY2IDExQjY7CitCNUNDO0I1Q0M7MTEwNCAxMTY2IDExQjc7QjVDQzsxMTA0IDExNjYgMTFCNzsKK0I1Q0Q7QjVDRDsxMTA0IDExNjYgMTFCODtCNUNEOzExMDQgMTE2NiAxMUI4OworQjVDRTtCNUNFOzExMDQgMTE2NiAxMUI5O0I1Q0U7MTEwNCAxMTY2IDExQjk7CitCNUNGO0I1Q0Y7MTEwNCAxMTY2IDExQkE7QjVDRjsxMTA0IDExNjYgMTFCQTsKK0I1RDA7QjVEMDsxMTA0IDExNjYgMTFCQjtCNUQwOzExMDQgMTE2NiAxMUJCOworQjVEMTtCNUQxOzExMDQgMTE2NiAxMUJDO0I1RDE7MTEwNCAxMTY2IDExQkM7CitCNUQyO0I1RDI7MTEwNCAxMTY2IDExQkQ7QjVEMjsxMTA0IDExNjYgMTFCRDsKK0I1RDM7QjVEMzsxMTA0IDExNjYgMTFCRTtCNUQzOzExMDQgMTE2NiAxMUJFOworQjVENDtCNUQ0OzExMDQgMTE2NiAxMUJGO0I1RDQ7MTEwNCAxMTY2IDExQkY7CitCNUQ1O0I1RDU7MTEwNCAxMTY2IDExQzA7QjVENTsxMTA0IDExNjYgMTFDMDsKK0I1RDY7QjVENjsxMTA0IDExNjYgMTFDMTtCNUQ2OzExMDQgMTE2NiAxMUMxOworQjVENztCNUQ3OzExMDQgMTE2NiAxMUMyO0I1RDc7MTEwNCAxMTY2IDExQzI7CitCNUQ4O0I1RDg7MTEwNCAxMTY3O0I1RDg7MTEwNCAxMTY3OworQjVEOTtCNUQ5OzExMDQgMTE2NyAxMUE4O0I1RDk7MTEwNCAxMTY3IDExQTg7CitCNURBO0I1REE7MTEwNCAxMTY3IDExQTk7QjVEQTsxMTA0IDExNjcgMTFBOTsKK0I1REI7QjVEQjsxMTA0IDExNjcgMTFBQTtCNURCOzExMDQgMTE2NyAxMUFBOworQjVEQztCNURDOzExMDQgMTE2NyAxMUFCO0I1REM7MTEwNCAxMTY3IDExQUI7CitCNUREO0I1REQ7MTEwNCAxMTY3IDExQUM7QjVERDsxMTA0IDExNjcgMTFBQzsKK0I1REU7QjVERTsxMTA0IDExNjcgMTFBRDtCNURFOzExMDQgMTE2NyAxMUFEOworQjVERjtCNURGOzExMDQgMTE2NyAxMUFFO0I1REY7MTEwNCAxMTY3IDExQUU7CitCNUUwO0I1RTA7MTEwNCAxMTY3IDExQUY7QjVFMDsxMTA0IDExNjcgMTFBRjsKK0I1RTE7QjVFMTsxMTA0IDExNjcgMTFCMDtCNUUxOzExMDQgMTE2NyAxMUIwOworQjVFMjtCNUUyOzExMDQgMTE2NyAxMUIxO0I1RTI7MTEwNCAxMTY3IDExQjE7CitCNUUzO0I1RTM7MTEwNCAxMTY3IDExQjI7QjVFMzsxMTA0IDExNjcgMTFCMjsKK0I1RTQ7QjVFNDsxMTA0IDExNjcgMTFCMztCNUU0OzExMDQgMTE2NyAxMUIzOworQjVFNTtCNUU1OzExMDQgMTE2NyAxMUI0O0I1RTU7MTEwNCAxMTY3IDExQjQ7CitCNUU2O0I1RTY7MTEwNCAxMTY3IDExQjU7QjVFNjsxMTA0IDExNjcgMTFCNTsKK0I1RTc7QjVFNzsxMTA0IDExNjcgMTFCNjtCNUU3OzExMDQgMTE2NyAxMUI2OworQjVFODtCNUU4OzExMDQgMTE2NyAxMUI3O0I1RTg7MTEwNCAxMTY3IDExQjc7CitCNUU5O0I1RTk7MTEwNCAxMTY3IDExQjg7QjVFOTsxMTA0IDExNjcgMTFCODsKK0I1RUE7QjVFQTsxMTA0IDExNjcgMTFCOTtCNUVBOzExMDQgMTE2NyAxMUI5OworQjVFQjtCNUVCOzExMDQgMTE2NyAxMUJBO0I1RUI7MTEwNCAxMTY3IDExQkE7CitCNUVDO0I1RUM7MTEwNCAxMTY3IDExQkI7QjVFQzsxMTA0IDExNjcgMTFCQjsKK0I1RUQ7QjVFRDsxMTA0IDExNjcgMTFCQztCNUVEOzExMDQgMTE2NyAxMUJDOworQjVFRTtCNUVFOzExMDQgMTE2NyAxMUJEO0I1RUU7MTEwNCAxMTY3IDExQkQ7CitCNUVGO0I1RUY7MTEwNCAxMTY3IDExQkU7QjVFRjsxMTA0IDExNjcgMTFCRTsKK0I1RjA7QjVGMDsxMTA0IDExNjcgMTFCRjtCNUYwOzExMDQgMTE2NyAxMUJGOworQjVGMTtCNUYxOzExMDQgMTE2NyAxMUMwO0I1RjE7MTEwNCAxMTY3IDExQzA7CitCNUYyO0I1RjI7MTEwNCAxMTY3IDExQzE7QjVGMjsxMTA0IDExNjcgMTFDMTsKK0I1RjM7QjVGMzsxMTA0IDExNjcgMTFDMjtCNUYzOzExMDQgMTE2NyAxMUMyOworQjVGNDtCNUY0OzExMDQgMTE2ODtCNUY0OzExMDQgMTE2ODsKK0I1RjU7QjVGNTsxMTA0IDExNjggMTFBODtCNUY1OzExMDQgMTE2OCAxMUE4OworQjVGNjtCNUY2OzExMDQgMTE2OCAxMUE5O0I1RjY7MTEwNCAxMTY4IDExQTk7CitCNUY3O0I1Rjc7MTEwNCAxMTY4IDExQUE7QjVGNzsxMTA0IDExNjggMTFBQTsKK0I1Rjg7QjVGODsxMTA0IDExNjggMTFBQjtCNUY4OzExMDQgMTE2OCAxMUFCOworQjVGOTtCNUY5OzExMDQgMTE2OCAxMUFDO0I1Rjk7MTEwNCAxMTY4IDExQUM7CitCNUZBO0I1RkE7MTEwNCAxMTY4IDExQUQ7QjVGQTsxMTA0IDExNjggMTFBRDsKK0I1RkI7QjVGQjsxMTA0IDExNjggMTFBRTtCNUZCOzExMDQgMTE2OCAxMUFFOworQjVGQztCNUZDOzExMDQgMTE2OCAxMUFGO0I1RkM7MTEwNCAxMTY4IDExQUY7CitCNUZEO0I1RkQ7MTEwNCAxMTY4IDExQjA7QjVGRDsxMTA0IDExNjggMTFCMDsKK0I1RkU7QjVGRTsxMTA0IDExNjggMTFCMTtCNUZFOzExMDQgMTE2OCAxMUIxOworQjVGRjtCNUZGOzExMDQgMTE2OCAxMUIyO0I1RkY7MTEwNCAxMTY4IDExQjI7CitCNjAwO0I2MDA7MTEwNCAxMTY4IDExQjM7QjYwMDsxMTA0IDExNjggMTFCMzsKK0I2MDE7QjYwMTsxMTA0IDExNjggMTFCNDtCNjAxOzExMDQgMTE2OCAxMUI0OworQjYwMjtCNjAyOzExMDQgMTE2OCAxMUI1O0I2MDI7MTEwNCAxMTY4IDExQjU7CitCNjAzO0I2MDM7MTEwNCAxMTY4IDExQjY7QjYwMzsxMTA0IDExNjggMTFCNjsKK0I2MDQ7QjYwNDsxMTA0IDExNjggMTFCNztCNjA0OzExMDQgMTE2OCAxMUI3OworQjYwNTtCNjA1OzExMDQgMTE2OCAxMUI4O0I2MDU7MTEwNCAxMTY4IDExQjg7CitCNjA2O0I2MDY7MTEwNCAxMTY4IDExQjk7QjYwNjsxMTA0IDExNjggMTFCOTsKK0I2MDc7QjYwNzsxMTA0IDExNjggMTFCQTtCNjA3OzExMDQgMTE2OCAxMUJBOworQjYwODtCNjA4OzExMDQgMTE2OCAxMUJCO0I2MDg7MTEwNCAxMTY4IDExQkI7CitCNjA5O0I2MDk7MTEwNCAxMTY4IDExQkM7QjYwOTsxMTA0IDExNjggMTFCQzsKK0I2MEE7QjYwQTsxMTA0IDExNjggMTFCRDtCNjBBOzExMDQgMTE2OCAxMUJEOworQjYwQjtCNjBCOzExMDQgMTE2OCAxMUJFO0I2MEI7MTEwNCAxMTY4IDExQkU7CitCNjBDO0I2MEM7MTEwNCAxMTY4IDExQkY7QjYwQzsxMTA0IDExNjggMTFCRjsKK0I2MEQ7QjYwRDsxMTA0IDExNjggMTFDMDtCNjBEOzExMDQgMTE2OCAxMUMwOworQjYwRTtCNjBFOzExMDQgMTE2OCAxMUMxO0I2MEU7MTEwNCAxMTY4IDExQzE7CitCNjBGO0I2MEY7MTEwNCAxMTY4IDExQzI7QjYwRjsxMTA0IDExNjggMTFDMjsKK0I2MTA7QjYxMDsxMTA0IDExNjk7QjYxMDsxMTA0IDExNjk7CitCNjExO0I2MTE7MTEwNCAxMTY5IDExQTg7QjYxMTsxMTA0IDExNjkgMTFBODsKK0I2MTI7QjYxMjsxMTA0IDExNjkgMTFBOTtCNjEyOzExMDQgMTE2OSAxMUE5OworQjYxMztCNjEzOzExMDQgMTE2OSAxMUFBO0I2MTM7MTEwNCAxMTY5IDExQUE7CitCNjE0O0I2MTQ7MTEwNCAxMTY5IDExQUI7QjYxNDsxMTA0IDExNjkgMTFBQjsKK0I2MTU7QjYxNTsxMTA0IDExNjkgMTFBQztCNjE1OzExMDQgMTE2OSAxMUFDOworQjYxNjtCNjE2OzExMDQgMTE2OSAxMUFEO0I2MTY7MTEwNCAxMTY5IDExQUQ7CitCNjE3O0I2MTc7MTEwNCAxMTY5IDExQUU7QjYxNzsxMTA0IDExNjkgMTFBRTsKK0I2MTg7QjYxODsxMTA0IDExNjkgMTFBRjtCNjE4OzExMDQgMTE2OSAxMUFGOworQjYxOTtCNjE5OzExMDQgMTE2OSAxMUIwO0I2MTk7MTEwNCAxMTY5IDExQjA7CitCNjFBO0I2MUE7MTEwNCAxMTY5IDExQjE7QjYxQTsxMTA0IDExNjkgMTFCMTsKK0I2MUI7QjYxQjsxMTA0IDExNjkgMTFCMjtCNjFCOzExMDQgMTE2OSAxMUIyOworQjYxQztCNjFDOzExMDQgMTE2OSAxMUIzO0I2MUM7MTEwNCAxMTY5IDExQjM7CitCNjFEO0I2MUQ7MTEwNCAxMTY5IDExQjQ7QjYxRDsxMTA0IDExNjkgMTFCNDsKK0I2MUU7QjYxRTsxMTA0IDExNjkgMTFCNTtCNjFFOzExMDQgMTE2OSAxMUI1OworQjYxRjtCNjFGOzExMDQgMTE2OSAxMUI2O0I2MUY7MTEwNCAxMTY5IDExQjY7CitCNjIwO0I2MjA7MTEwNCAxMTY5IDExQjc7QjYyMDsxMTA0IDExNjkgMTFCNzsKK0I2MjE7QjYyMTsxMTA0IDExNjkgMTFCODtCNjIxOzExMDQgMTE2OSAxMUI4OworQjYyMjtCNjIyOzExMDQgMTE2OSAxMUI5O0I2MjI7MTEwNCAxMTY5IDExQjk7CitCNjIzO0I2MjM7MTEwNCAxMTY5IDExQkE7QjYyMzsxMTA0IDExNjkgMTFCQTsKK0I2MjQ7QjYyNDsxMTA0IDExNjkgMTFCQjtCNjI0OzExMDQgMTE2OSAxMUJCOworQjYyNTtCNjI1OzExMDQgMTE2OSAxMUJDO0I2MjU7MTEwNCAxMTY5IDExQkM7CitCNjI2O0I2MjY7MTEwNCAxMTY5IDExQkQ7QjYyNjsxMTA0IDExNjkgMTFCRDsKK0I2Mjc7QjYyNzsxMTA0IDExNjkgMTFCRTtCNjI3OzExMDQgMTE2OSAxMUJFOworQjYyODtCNjI4OzExMDQgMTE2OSAxMUJGO0I2Mjg7MTEwNCAxMTY5IDExQkY7CitCNjI5O0I2Mjk7MTEwNCAxMTY5IDExQzA7QjYyOTsxMTA0IDExNjkgMTFDMDsKK0I2MkE7QjYyQTsxMTA0IDExNjkgMTFDMTtCNjJBOzExMDQgMTE2OSAxMUMxOworQjYyQjtCNjJCOzExMDQgMTE2OSAxMUMyO0I2MkI7MTEwNCAxMTY5IDExQzI7CitCNjJDO0I2MkM7MTEwNCAxMTZBO0I2MkM7MTEwNCAxMTZBOworQjYyRDtCNjJEOzExMDQgMTE2QSAxMUE4O0I2MkQ7MTEwNCAxMTZBIDExQTg7CitCNjJFO0I2MkU7MTEwNCAxMTZBIDExQTk7QjYyRTsxMTA0IDExNkEgMTFBOTsKK0I2MkY7QjYyRjsxMTA0IDExNkEgMTFBQTtCNjJGOzExMDQgMTE2QSAxMUFBOworQjYzMDtCNjMwOzExMDQgMTE2QSAxMUFCO0I2MzA7MTEwNCAxMTZBIDExQUI7CitCNjMxO0I2MzE7MTEwNCAxMTZBIDExQUM7QjYzMTsxMTA0IDExNkEgMTFBQzsKK0I2MzI7QjYzMjsxMTA0IDExNkEgMTFBRDtCNjMyOzExMDQgMTE2QSAxMUFEOworQjYzMztCNjMzOzExMDQgMTE2QSAxMUFFO0I2MzM7MTEwNCAxMTZBIDExQUU7CitCNjM0O0I2MzQ7MTEwNCAxMTZBIDExQUY7QjYzNDsxMTA0IDExNkEgMTFBRjsKK0I2MzU7QjYzNTsxMTA0IDExNkEgMTFCMDtCNjM1OzExMDQgMTE2QSAxMUIwOworQjYzNjtCNjM2OzExMDQgMTE2QSAxMUIxO0I2MzY7MTEwNCAxMTZBIDExQjE7CitCNjM3O0I2Mzc7MTEwNCAxMTZBIDExQjI7QjYzNzsxMTA0IDExNkEgMTFCMjsKK0I2Mzg7QjYzODsxMTA0IDExNkEgMTFCMztCNjM4OzExMDQgMTE2QSAxMUIzOworQjYzOTtCNjM5OzExMDQgMTE2QSAxMUI0O0I2Mzk7MTEwNCAxMTZBIDExQjQ7CitCNjNBO0I2M0E7MTEwNCAxMTZBIDExQjU7QjYzQTsxMTA0IDExNkEgMTFCNTsKK0I2M0I7QjYzQjsxMTA0IDExNkEgMTFCNjtCNjNCOzExMDQgMTE2QSAxMUI2OworQjYzQztCNjNDOzExMDQgMTE2QSAxMUI3O0I2M0M7MTEwNCAxMTZBIDExQjc7CitCNjNEO0I2M0Q7MTEwNCAxMTZBIDExQjg7QjYzRDsxMTA0IDExNkEgMTFCODsKK0I2M0U7QjYzRTsxMTA0IDExNkEgMTFCOTtCNjNFOzExMDQgMTE2QSAxMUI5OworQjYzRjtCNjNGOzExMDQgMTE2QSAxMUJBO0I2M0Y7MTEwNCAxMTZBIDExQkE7CitCNjQwO0I2NDA7MTEwNCAxMTZBIDExQkI7QjY0MDsxMTA0IDExNkEgMTFCQjsKK0I2NDE7QjY0MTsxMTA0IDExNkEgMTFCQztCNjQxOzExMDQgMTE2QSAxMUJDOworQjY0MjtCNjQyOzExMDQgMTE2QSAxMUJEO0I2NDI7MTEwNCAxMTZBIDExQkQ7CitCNjQzO0I2NDM7MTEwNCAxMTZBIDExQkU7QjY0MzsxMTA0IDExNkEgMTFCRTsKK0I2NDQ7QjY0NDsxMTA0IDExNkEgMTFCRjtCNjQ0OzExMDQgMTE2QSAxMUJGOworQjY0NTtCNjQ1OzExMDQgMTE2QSAxMUMwO0I2NDU7MTEwNCAxMTZBIDExQzA7CitCNjQ2O0I2NDY7MTEwNCAxMTZBIDExQzE7QjY0NjsxMTA0IDExNkEgMTFDMTsKK0I2NDc7QjY0NzsxMTA0IDExNkEgMTFDMjtCNjQ3OzExMDQgMTE2QSAxMUMyOworQjY0ODtCNjQ4OzExMDQgMTE2QjtCNjQ4OzExMDQgMTE2QjsKK0I2NDk7QjY0OTsxMTA0IDExNkIgMTFBODtCNjQ5OzExMDQgMTE2QiAxMUE4OworQjY0QTtCNjRBOzExMDQgMTE2QiAxMUE5O0I2NEE7MTEwNCAxMTZCIDExQTk7CitCNjRCO0I2NEI7MTEwNCAxMTZCIDExQUE7QjY0QjsxMTA0IDExNkIgMTFBQTsKK0I2NEM7QjY0QzsxMTA0IDExNkIgMTFBQjtCNjRDOzExMDQgMTE2QiAxMUFCOworQjY0RDtCNjREOzExMDQgMTE2QiAxMUFDO0I2NEQ7MTEwNCAxMTZCIDExQUM7CitCNjRFO0I2NEU7MTEwNCAxMTZCIDExQUQ7QjY0RTsxMTA0IDExNkIgMTFBRDsKK0I2NEY7QjY0RjsxMTA0IDExNkIgMTFBRTtCNjRGOzExMDQgMTE2QiAxMUFFOworQjY1MDtCNjUwOzExMDQgMTE2QiAxMUFGO0I2NTA7MTEwNCAxMTZCIDExQUY7CitCNjUxO0I2NTE7MTEwNCAxMTZCIDExQjA7QjY1MTsxMTA0IDExNkIgMTFCMDsKK0I2NTI7QjY1MjsxMTA0IDExNkIgMTFCMTtCNjUyOzExMDQgMTE2QiAxMUIxOworQjY1MztCNjUzOzExMDQgMTE2QiAxMUIyO0I2NTM7MTEwNCAxMTZCIDExQjI7CitCNjU0O0I2NTQ7MTEwNCAxMTZCIDExQjM7QjY1NDsxMTA0IDExNkIgMTFCMzsKK0I2NTU7QjY1NTsxMTA0IDExNkIgMTFCNDtCNjU1OzExMDQgMTE2QiAxMUI0OworQjY1NjtCNjU2OzExMDQgMTE2QiAxMUI1O0I2NTY7MTEwNCAxMTZCIDExQjU7CitCNjU3O0I2NTc7MTEwNCAxMTZCIDExQjY7QjY1NzsxMTA0IDExNkIgMTFCNjsKK0I2NTg7QjY1ODsxMTA0IDExNkIgMTFCNztCNjU4OzExMDQgMTE2QiAxMUI3OworQjY1OTtCNjU5OzExMDQgMTE2QiAxMUI4O0I2NTk7MTEwNCAxMTZCIDExQjg7CitCNjVBO0I2NUE7MTEwNCAxMTZCIDExQjk7QjY1QTsxMTA0IDExNkIgMTFCOTsKK0I2NUI7QjY1QjsxMTA0IDExNkIgMTFCQTtCNjVCOzExMDQgMTE2QiAxMUJBOworQjY1QztCNjVDOzExMDQgMTE2QiAxMUJCO0I2NUM7MTEwNCAxMTZCIDExQkI7CitCNjVEO0I2NUQ7MTEwNCAxMTZCIDExQkM7QjY1RDsxMTA0IDExNkIgMTFCQzsKK0I2NUU7QjY1RTsxMTA0IDExNkIgMTFCRDtCNjVFOzExMDQgMTE2QiAxMUJEOworQjY1RjtCNjVGOzExMDQgMTE2QiAxMUJFO0I2NUY7MTEwNCAxMTZCIDExQkU7CitCNjYwO0I2NjA7MTEwNCAxMTZCIDExQkY7QjY2MDsxMTA0IDExNkIgMTFCRjsKK0I2NjE7QjY2MTsxMTA0IDExNkIgMTFDMDtCNjYxOzExMDQgMTE2QiAxMUMwOworQjY2MjtCNjYyOzExMDQgMTE2QiAxMUMxO0I2NjI7MTEwNCAxMTZCIDExQzE7CitCNjYzO0I2NjM7MTEwNCAxMTZCIDExQzI7QjY2MzsxMTA0IDExNkIgMTFDMjsKK0I2NjQ7QjY2NDsxMTA0IDExNkM7QjY2NDsxMTA0IDExNkM7CitCNjY1O0I2NjU7MTEwNCAxMTZDIDExQTg7QjY2NTsxMTA0IDExNkMgMTFBODsKK0I2NjY7QjY2NjsxMTA0IDExNkMgMTFBOTtCNjY2OzExMDQgMTE2QyAxMUE5OworQjY2NztCNjY3OzExMDQgMTE2QyAxMUFBO0I2Njc7MTEwNCAxMTZDIDExQUE7CitCNjY4O0I2Njg7MTEwNCAxMTZDIDExQUI7QjY2ODsxMTA0IDExNkMgMTFBQjsKK0I2Njk7QjY2OTsxMTA0IDExNkMgMTFBQztCNjY5OzExMDQgMTE2QyAxMUFDOworQjY2QTtCNjZBOzExMDQgMTE2QyAxMUFEO0I2NkE7MTEwNCAxMTZDIDExQUQ7CitCNjZCO0I2NkI7MTEwNCAxMTZDIDExQUU7QjY2QjsxMTA0IDExNkMgMTFBRTsKK0I2NkM7QjY2QzsxMTA0IDExNkMgMTFBRjtCNjZDOzExMDQgMTE2QyAxMUFGOworQjY2RDtCNjZEOzExMDQgMTE2QyAxMUIwO0I2NkQ7MTEwNCAxMTZDIDExQjA7CitCNjZFO0I2NkU7MTEwNCAxMTZDIDExQjE7QjY2RTsxMTA0IDExNkMgMTFCMTsKK0I2NkY7QjY2RjsxMTA0IDExNkMgMTFCMjtCNjZGOzExMDQgMTE2QyAxMUIyOworQjY3MDtCNjcwOzExMDQgMTE2QyAxMUIzO0I2NzA7MTEwNCAxMTZDIDExQjM7CitCNjcxO0I2NzE7MTEwNCAxMTZDIDExQjQ7QjY3MTsxMTA0IDExNkMgMTFCNDsKK0I2NzI7QjY3MjsxMTA0IDExNkMgMTFCNTtCNjcyOzExMDQgMTE2QyAxMUI1OworQjY3MztCNjczOzExMDQgMTE2QyAxMUI2O0I2NzM7MTEwNCAxMTZDIDExQjY7CitCNjc0O0I2NzQ7MTEwNCAxMTZDIDExQjc7QjY3NDsxMTA0IDExNkMgMTFCNzsKK0I2NzU7QjY3NTsxMTA0IDExNkMgMTFCODtCNjc1OzExMDQgMTE2QyAxMUI4OworQjY3NjtCNjc2OzExMDQgMTE2QyAxMUI5O0I2NzY7MTEwNCAxMTZDIDExQjk7CitCNjc3O0I2Nzc7MTEwNCAxMTZDIDExQkE7QjY3NzsxMTA0IDExNkMgMTFCQTsKK0I2Nzg7QjY3ODsxMTA0IDExNkMgMTFCQjtCNjc4OzExMDQgMTE2QyAxMUJCOworQjY3OTtCNjc5OzExMDQgMTE2QyAxMUJDO0I2Nzk7MTEwNCAxMTZDIDExQkM7CitCNjdBO0I2N0E7MTEwNCAxMTZDIDExQkQ7QjY3QTsxMTA0IDExNkMgMTFCRDsKK0I2N0I7QjY3QjsxMTA0IDExNkMgMTFCRTtCNjdCOzExMDQgMTE2QyAxMUJFOworQjY3QztCNjdDOzExMDQgMTE2QyAxMUJGO0I2N0M7MTEwNCAxMTZDIDExQkY7CitCNjdEO0I2N0Q7MTEwNCAxMTZDIDExQzA7QjY3RDsxMTA0IDExNkMgMTFDMDsKK0I2N0U7QjY3RTsxMTA0IDExNkMgMTFDMTtCNjdFOzExMDQgMTE2QyAxMUMxOworQjY3RjtCNjdGOzExMDQgMTE2QyAxMUMyO0I2N0Y7MTEwNCAxMTZDIDExQzI7CitCNjgwO0I2ODA7MTEwNCAxMTZEO0I2ODA7MTEwNCAxMTZEOworQjY4MTtCNjgxOzExMDQgMTE2RCAxMUE4O0I2ODE7MTEwNCAxMTZEIDExQTg7CitCNjgyO0I2ODI7MTEwNCAxMTZEIDExQTk7QjY4MjsxMTA0IDExNkQgMTFBOTsKK0I2ODM7QjY4MzsxMTA0IDExNkQgMTFBQTtCNjgzOzExMDQgMTE2RCAxMUFBOworQjY4NDtCNjg0OzExMDQgMTE2RCAxMUFCO0I2ODQ7MTEwNCAxMTZEIDExQUI7CitCNjg1O0I2ODU7MTEwNCAxMTZEIDExQUM7QjY4NTsxMTA0IDExNkQgMTFBQzsKK0I2ODY7QjY4NjsxMTA0IDExNkQgMTFBRDtCNjg2OzExMDQgMTE2RCAxMUFEOworQjY4NztCNjg3OzExMDQgMTE2RCAxMUFFO0I2ODc7MTEwNCAxMTZEIDExQUU7CitCNjg4O0I2ODg7MTEwNCAxMTZEIDExQUY7QjY4ODsxMTA0IDExNkQgMTFBRjsKK0I2ODk7QjY4OTsxMTA0IDExNkQgMTFCMDtCNjg5OzExMDQgMTE2RCAxMUIwOworQjY4QTtCNjhBOzExMDQgMTE2RCAxMUIxO0I2OEE7MTEwNCAxMTZEIDExQjE7CitCNjhCO0I2OEI7MTEwNCAxMTZEIDExQjI7QjY4QjsxMTA0IDExNkQgMTFCMjsKK0I2OEM7QjY4QzsxMTA0IDExNkQgMTFCMztCNjhDOzExMDQgMTE2RCAxMUIzOworQjY4RDtCNjhEOzExMDQgMTE2RCAxMUI0O0I2OEQ7MTEwNCAxMTZEIDExQjQ7CitCNjhFO0I2OEU7MTEwNCAxMTZEIDExQjU7QjY4RTsxMTA0IDExNkQgMTFCNTsKK0I2OEY7QjY4RjsxMTA0IDExNkQgMTFCNjtCNjhGOzExMDQgMTE2RCAxMUI2OworQjY5MDtCNjkwOzExMDQgMTE2RCAxMUI3O0I2OTA7MTEwNCAxMTZEIDExQjc7CitCNjkxO0I2OTE7MTEwNCAxMTZEIDExQjg7QjY5MTsxMTA0IDExNkQgMTFCODsKK0I2OTI7QjY5MjsxMTA0IDExNkQgMTFCOTtCNjkyOzExMDQgMTE2RCAxMUI5OworQjY5MztCNjkzOzExMDQgMTE2RCAxMUJBO0I2OTM7MTEwNCAxMTZEIDExQkE7CitCNjk0O0I2OTQ7MTEwNCAxMTZEIDExQkI7QjY5NDsxMTA0IDExNkQgMTFCQjsKK0I2OTU7QjY5NTsxMTA0IDExNkQgMTFCQztCNjk1OzExMDQgMTE2RCAxMUJDOworQjY5NjtCNjk2OzExMDQgMTE2RCAxMUJEO0I2OTY7MTEwNCAxMTZEIDExQkQ7CitCNjk3O0I2OTc7MTEwNCAxMTZEIDExQkU7QjY5NzsxMTA0IDExNkQgMTFCRTsKK0I2OTg7QjY5ODsxMTA0IDExNkQgMTFCRjtCNjk4OzExMDQgMTE2RCAxMUJGOworQjY5OTtCNjk5OzExMDQgMTE2RCAxMUMwO0I2OTk7MTEwNCAxMTZEIDExQzA7CitCNjlBO0I2OUE7MTEwNCAxMTZEIDExQzE7QjY5QTsxMTA0IDExNkQgMTFDMTsKK0I2OUI7QjY5QjsxMTA0IDExNkQgMTFDMjtCNjlCOzExMDQgMTE2RCAxMUMyOworQjY5QztCNjlDOzExMDQgMTE2RTtCNjlDOzExMDQgMTE2RTsKK0I2OUQ7QjY5RDsxMTA0IDExNkUgMTFBODtCNjlEOzExMDQgMTE2RSAxMUE4OworQjY5RTtCNjlFOzExMDQgMTE2RSAxMUE5O0I2OUU7MTEwNCAxMTZFIDExQTk7CitCNjlGO0I2OUY7MTEwNCAxMTZFIDExQUE7QjY5RjsxMTA0IDExNkUgMTFBQTsKK0I2QTA7QjZBMDsxMTA0IDExNkUgMTFBQjtCNkEwOzExMDQgMTE2RSAxMUFCOworQjZBMTtCNkExOzExMDQgMTE2RSAxMUFDO0I2QTE7MTEwNCAxMTZFIDExQUM7CitCNkEyO0I2QTI7MTEwNCAxMTZFIDExQUQ7QjZBMjsxMTA0IDExNkUgMTFBRDsKK0I2QTM7QjZBMzsxMTA0IDExNkUgMTFBRTtCNkEzOzExMDQgMTE2RSAxMUFFOworQjZBNDtCNkE0OzExMDQgMTE2RSAxMUFGO0I2QTQ7MTEwNCAxMTZFIDExQUY7CitCNkE1O0I2QTU7MTEwNCAxMTZFIDExQjA7QjZBNTsxMTA0IDExNkUgMTFCMDsKK0I2QTY7QjZBNjsxMTA0IDExNkUgMTFCMTtCNkE2OzExMDQgMTE2RSAxMUIxOworQjZBNztCNkE3OzExMDQgMTE2RSAxMUIyO0I2QTc7MTEwNCAxMTZFIDExQjI7CitCNkE4O0I2QTg7MTEwNCAxMTZFIDExQjM7QjZBODsxMTA0IDExNkUgMTFCMzsKK0I2QTk7QjZBOTsxMTA0IDExNkUgMTFCNDtCNkE5OzExMDQgMTE2RSAxMUI0OworQjZBQTtCNkFBOzExMDQgMTE2RSAxMUI1O0I2QUE7MTEwNCAxMTZFIDExQjU7CitCNkFCO0I2QUI7MTEwNCAxMTZFIDExQjY7QjZBQjsxMTA0IDExNkUgMTFCNjsKK0I2QUM7QjZBQzsxMTA0IDExNkUgMTFCNztCNkFDOzExMDQgMTE2RSAxMUI3OworQjZBRDtCNkFEOzExMDQgMTE2RSAxMUI4O0I2QUQ7MTEwNCAxMTZFIDExQjg7CitCNkFFO0I2QUU7MTEwNCAxMTZFIDExQjk7QjZBRTsxMTA0IDExNkUgMTFCOTsKK0I2QUY7QjZBRjsxMTA0IDExNkUgMTFCQTtCNkFGOzExMDQgMTE2RSAxMUJBOworQjZCMDtCNkIwOzExMDQgMTE2RSAxMUJCO0I2QjA7MTEwNCAxMTZFIDExQkI7CitCNkIxO0I2QjE7MTEwNCAxMTZFIDExQkM7QjZCMTsxMTA0IDExNkUgMTFCQzsKK0I2QjI7QjZCMjsxMTA0IDExNkUgMTFCRDtCNkIyOzExMDQgMTE2RSAxMUJEOworQjZCMztCNkIzOzExMDQgMTE2RSAxMUJFO0I2QjM7MTEwNCAxMTZFIDExQkU7CitCNkI0O0I2QjQ7MTEwNCAxMTZFIDExQkY7QjZCNDsxMTA0IDExNkUgMTFCRjsKK0I2QjU7QjZCNTsxMTA0IDExNkUgMTFDMDtCNkI1OzExMDQgMTE2RSAxMUMwOworQjZCNjtCNkI2OzExMDQgMTE2RSAxMUMxO0I2QjY7MTEwNCAxMTZFIDExQzE7CitCNkI3O0I2Qjc7MTEwNCAxMTZFIDExQzI7QjZCNzsxMTA0IDExNkUgMTFDMjsKK0I2Qjg7QjZCODsxMTA0IDExNkY7QjZCODsxMTA0IDExNkY7CitCNkI5O0I2Qjk7MTEwNCAxMTZGIDExQTg7QjZCOTsxMTA0IDExNkYgMTFBODsKK0I2QkE7QjZCQTsxMTA0IDExNkYgMTFBOTtCNkJBOzExMDQgMTE2RiAxMUE5OworQjZCQjtCNkJCOzExMDQgMTE2RiAxMUFBO0I2QkI7MTEwNCAxMTZGIDExQUE7CitCNkJDO0I2QkM7MTEwNCAxMTZGIDExQUI7QjZCQzsxMTA0IDExNkYgMTFBQjsKK0I2QkQ7QjZCRDsxMTA0IDExNkYgMTFBQztCNkJEOzExMDQgMTE2RiAxMUFDOworQjZCRTtCNkJFOzExMDQgMTE2RiAxMUFEO0I2QkU7MTEwNCAxMTZGIDExQUQ7CitCNkJGO0I2QkY7MTEwNCAxMTZGIDExQUU7QjZCRjsxMTA0IDExNkYgMTFBRTsKK0I2QzA7QjZDMDsxMTA0IDExNkYgMTFBRjtCNkMwOzExMDQgMTE2RiAxMUFGOworQjZDMTtCNkMxOzExMDQgMTE2RiAxMUIwO0I2QzE7MTEwNCAxMTZGIDExQjA7CitCNkMyO0I2QzI7MTEwNCAxMTZGIDExQjE7QjZDMjsxMTA0IDExNkYgMTFCMTsKK0I2QzM7QjZDMzsxMTA0IDExNkYgMTFCMjtCNkMzOzExMDQgMTE2RiAxMUIyOworQjZDNDtCNkM0OzExMDQgMTE2RiAxMUIzO0I2QzQ7MTEwNCAxMTZGIDExQjM7CitCNkM1O0I2QzU7MTEwNCAxMTZGIDExQjQ7QjZDNTsxMTA0IDExNkYgMTFCNDsKK0I2QzY7QjZDNjsxMTA0IDExNkYgMTFCNTtCNkM2OzExMDQgMTE2RiAxMUI1OworQjZDNztCNkM3OzExMDQgMTE2RiAxMUI2O0I2Qzc7MTEwNCAxMTZGIDExQjY7CitCNkM4O0I2Qzg7MTEwNCAxMTZGIDExQjc7QjZDODsxMTA0IDExNkYgMTFCNzsKK0I2Qzk7QjZDOTsxMTA0IDExNkYgMTFCODtCNkM5OzExMDQgMTE2RiAxMUI4OworQjZDQTtCNkNBOzExMDQgMTE2RiAxMUI5O0I2Q0E7MTEwNCAxMTZGIDExQjk7CitCNkNCO0I2Q0I7MTEwNCAxMTZGIDExQkE7QjZDQjsxMTA0IDExNkYgMTFCQTsKK0I2Q0M7QjZDQzsxMTA0IDExNkYgMTFCQjtCNkNDOzExMDQgMTE2RiAxMUJCOworQjZDRDtCNkNEOzExMDQgMTE2RiAxMUJDO0I2Q0Q7MTEwNCAxMTZGIDExQkM7CitCNkNFO0I2Q0U7MTEwNCAxMTZGIDExQkQ7QjZDRTsxMTA0IDExNkYgMTFCRDsKK0I2Q0Y7QjZDRjsxMTA0IDExNkYgMTFCRTtCNkNGOzExMDQgMTE2RiAxMUJFOworQjZEMDtCNkQwOzExMDQgMTE2RiAxMUJGO0I2RDA7MTEwNCAxMTZGIDExQkY7CitCNkQxO0I2RDE7MTEwNCAxMTZGIDExQzA7QjZEMTsxMTA0IDExNkYgMTFDMDsKK0I2RDI7QjZEMjsxMTA0IDExNkYgMTFDMTtCNkQyOzExMDQgMTE2RiAxMUMxOworQjZEMztCNkQzOzExMDQgMTE2RiAxMUMyO0I2RDM7MTEwNCAxMTZGIDExQzI7CitCNkQ0O0I2RDQ7MTEwNCAxMTcwO0I2RDQ7MTEwNCAxMTcwOworQjZENTtCNkQ1OzExMDQgMTE3MCAxMUE4O0I2RDU7MTEwNCAxMTcwIDExQTg7CitCNkQ2O0I2RDY7MTEwNCAxMTcwIDExQTk7QjZENjsxMTA0IDExNzAgMTFBOTsKK0I2RDc7QjZENzsxMTA0IDExNzAgMTFBQTtCNkQ3OzExMDQgMTE3MCAxMUFBOworQjZEODtCNkQ4OzExMDQgMTE3MCAxMUFCO0I2RDg7MTEwNCAxMTcwIDExQUI7CitCNkQ5O0I2RDk7MTEwNCAxMTcwIDExQUM7QjZEOTsxMTA0IDExNzAgMTFBQzsKK0I2REE7QjZEQTsxMTA0IDExNzAgMTFBRDtCNkRBOzExMDQgMTE3MCAxMUFEOworQjZEQjtCNkRCOzExMDQgMTE3MCAxMUFFO0I2REI7MTEwNCAxMTcwIDExQUU7CitCNkRDO0I2REM7MTEwNCAxMTcwIDExQUY7QjZEQzsxMTA0IDExNzAgMTFBRjsKK0I2REQ7QjZERDsxMTA0IDExNzAgMTFCMDtCNkREOzExMDQgMTE3MCAxMUIwOworQjZERTtCNkRFOzExMDQgMTE3MCAxMUIxO0I2REU7MTEwNCAxMTcwIDExQjE7CitCNkRGO0I2REY7MTEwNCAxMTcwIDExQjI7QjZERjsxMTA0IDExNzAgMTFCMjsKK0I2RTA7QjZFMDsxMTA0IDExNzAgMTFCMztCNkUwOzExMDQgMTE3MCAxMUIzOworQjZFMTtCNkUxOzExMDQgMTE3MCAxMUI0O0I2RTE7MTEwNCAxMTcwIDExQjQ7CitCNkUyO0I2RTI7MTEwNCAxMTcwIDExQjU7QjZFMjsxMTA0IDExNzAgMTFCNTsKK0I2RTM7QjZFMzsxMTA0IDExNzAgMTFCNjtCNkUzOzExMDQgMTE3MCAxMUI2OworQjZFNDtCNkU0OzExMDQgMTE3MCAxMUI3O0I2RTQ7MTEwNCAxMTcwIDExQjc7CitCNkU1O0I2RTU7MTEwNCAxMTcwIDExQjg7QjZFNTsxMTA0IDExNzAgMTFCODsKK0I2RTY7QjZFNjsxMTA0IDExNzAgMTFCOTtCNkU2OzExMDQgMTE3MCAxMUI5OworQjZFNztCNkU3OzExMDQgMTE3MCAxMUJBO0I2RTc7MTEwNCAxMTcwIDExQkE7CitCNkU4O0I2RTg7MTEwNCAxMTcwIDExQkI7QjZFODsxMTA0IDExNzAgMTFCQjsKK0I2RTk7QjZFOTsxMTA0IDExNzAgMTFCQztCNkU5OzExMDQgMTE3MCAxMUJDOworQjZFQTtCNkVBOzExMDQgMTE3MCAxMUJEO0I2RUE7MTEwNCAxMTcwIDExQkQ7CitCNkVCO0I2RUI7MTEwNCAxMTcwIDExQkU7QjZFQjsxMTA0IDExNzAgMTFCRTsKK0I2RUM7QjZFQzsxMTA0IDExNzAgMTFCRjtCNkVDOzExMDQgMTE3MCAxMUJGOworQjZFRDtCNkVEOzExMDQgMTE3MCAxMUMwO0I2RUQ7MTEwNCAxMTcwIDExQzA7CitCNkVFO0I2RUU7MTEwNCAxMTcwIDExQzE7QjZFRTsxMTA0IDExNzAgMTFDMTsKK0I2RUY7QjZFRjsxMTA0IDExNzAgMTFDMjtCNkVGOzExMDQgMTE3MCAxMUMyOworQjZGMDtCNkYwOzExMDQgMTE3MTtCNkYwOzExMDQgMTE3MTsKK0I2RjE7QjZGMTsxMTA0IDExNzEgMTFBODtCNkYxOzExMDQgMTE3MSAxMUE4OworQjZGMjtCNkYyOzExMDQgMTE3MSAxMUE5O0I2RjI7MTEwNCAxMTcxIDExQTk7CitCNkYzO0I2RjM7MTEwNCAxMTcxIDExQUE7QjZGMzsxMTA0IDExNzEgMTFBQTsKK0I2RjQ7QjZGNDsxMTA0IDExNzEgMTFBQjtCNkY0OzExMDQgMTE3MSAxMUFCOworQjZGNTtCNkY1OzExMDQgMTE3MSAxMUFDO0I2RjU7MTEwNCAxMTcxIDExQUM7CitCNkY2O0I2RjY7MTEwNCAxMTcxIDExQUQ7QjZGNjsxMTA0IDExNzEgMTFBRDsKK0I2Rjc7QjZGNzsxMTA0IDExNzEgMTFBRTtCNkY3OzExMDQgMTE3MSAxMUFFOworQjZGODtCNkY4OzExMDQgMTE3MSAxMUFGO0I2Rjg7MTEwNCAxMTcxIDExQUY7CitCNkY5O0I2Rjk7MTEwNCAxMTcxIDExQjA7QjZGOTsxMTA0IDExNzEgMTFCMDsKK0I2RkE7QjZGQTsxMTA0IDExNzEgMTFCMTtCNkZBOzExMDQgMTE3MSAxMUIxOworQjZGQjtCNkZCOzExMDQgMTE3MSAxMUIyO0I2RkI7MTEwNCAxMTcxIDExQjI7CitCNkZDO0I2RkM7MTEwNCAxMTcxIDExQjM7QjZGQzsxMTA0IDExNzEgMTFCMzsKK0I2RkQ7QjZGRDsxMTA0IDExNzEgMTFCNDtCNkZEOzExMDQgMTE3MSAxMUI0OworQjZGRTtCNkZFOzExMDQgMTE3MSAxMUI1O0I2RkU7MTEwNCAxMTcxIDExQjU7CitCNkZGO0I2RkY7MTEwNCAxMTcxIDExQjY7QjZGRjsxMTA0IDExNzEgMTFCNjsKK0I3MDA7QjcwMDsxMTA0IDExNzEgMTFCNztCNzAwOzExMDQgMTE3MSAxMUI3OworQjcwMTtCNzAxOzExMDQgMTE3MSAxMUI4O0I3MDE7MTEwNCAxMTcxIDExQjg7CitCNzAyO0I3MDI7MTEwNCAxMTcxIDExQjk7QjcwMjsxMTA0IDExNzEgMTFCOTsKK0I3MDM7QjcwMzsxMTA0IDExNzEgMTFCQTtCNzAzOzExMDQgMTE3MSAxMUJBOworQjcwNDtCNzA0OzExMDQgMTE3MSAxMUJCO0I3MDQ7MTEwNCAxMTcxIDExQkI7CitCNzA1O0I3MDU7MTEwNCAxMTcxIDExQkM7QjcwNTsxMTA0IDExNzEgMTFCQzsKK0I3MDY7QjcwNjsxMTA0IDExNzEgMTFCRDtCNzA2OzExMDQgMTE3MSAxMUJEOworQjcwNztCNzA3OzExMDQgMTE3MSAxMUJFO0I3MDc7MTEwNCAxMTcxIDExQkU7CitCNzA4O0I3MDg7MTEwNCAxMTcxIDExQkY7QjcwODsxMTA0IDExNzEgMTFCRjsKK0I3MDk7QjcwOTsxMTA0IDExNzEgMTFDMDtCNzA5OzExMDQgMTE3MSAxMUMwOworQjcwQTtCNzBBOzExMDQgMTE3MSAxMUMxO0I3MEE7MTEwNCAxMTcxIDExQzE7CitCNzBCO0I3MEI7MTEwNCAxMTcxIDExQzI7QjcwQjsxMTA0IDExNzEgMTFDMjsKK0I3MEM7QjcwQzsxMTA0IDExNzI7QjcwQzsxMTA0IDExNzI7CitCNzBEO0I3MEQ7MTEwNCAxMTcyIDExQTg7QjcwRDsxMTA0IDExNzIgMTFBODsKK0I3MEU7QjcwRTsxMTA0IDExNzIgMTFBOTtCNzBFOzExMDQgMTE3MiAxMUE5OworQjcwRjtCNzBGOzExMDQgMTE3MiAxMUFBO0I3MEY7MTEwNCAxMTcyIDExQUE7CitCNzEwO0I3MTA7MTEwNCAxMTcyIDExQUI7QjcxMDsxMTA0IDExNzIgMTFBQjsKK0I3MTE7QjcxMTsxMTA0IDExNzIgMTFBQztCNzExOzExMDQgMTE3MiAxMUFDOworQjcxMjtCNzEyOzExMDQgMTE3MiAxMUFEO0I3MTI7MTEwNCAxMTcyIDExQUQ7CitCNzEzO0I3MTM7MTEwNCAxMTcyIDExQUU7QjcxMzsxMTA0IDExNzIgMTFBRTsKK0I3MTQ7QjcxNDsxMTA0IDExNzIgMTFBRjtCNzE0OzExMDQgMTE3MiAxMUFGOworQjcxNTtCNzE1OzExMDQgMTE3MiAxMUIwO0I3MTU7MTEwNCAxMTcyIDExQjA7CitCNzE2O0I3MTY7MTEwNCAxMTcyIDExQjE7QjcxNjsxMTA0IDExNzIgMTFCMTsKK0I3MTc7QjcxNzsxMTA0IDExNzIgMTFCMjtCNzE3OzExMDQgMTE3MiAxMUIyOworQjcxODtCNzE4OzExMDQgMTE3MiAxMUIzO0I3MTg7MTEwNCAxMTcyIDExQjM7CitCNzE5O0I3MTk7MTEwNCAxMTcyIDExQjQ7QjcxOTsxMTA0IDExNzIgMTFCNDsKK0I3MUE7QjcxQTsxMTA0IDExNzIgMTFCNTtCNzFBOzExMDQgMTE3MiAxMUI1OworQjcxQjtCNzFCOzExMDQgMTE3MiAxMUI2O0I3MUI7MTEwNCAxMTcyIDExQjY7CitCNzFDO0I3MUM7MTEwNCAxMTcyIDExQjc7QjcxQzsxMTA0IDExNzIgMTFCNzsKK0I3MUQ7QjcxRDsxMTA0IDExNzIgMTFCODtCNzFEOzExMDQgMTE3MiAxMUI4OworQjcxRTtCNzFFOzExMDQgMTE3MiAxMUI5O0I3MUU7MTEwNCAxMTcyIDExQjk7CitCNzFGO0I3MUY7MTEwNCAxMTcyIDExQkE7QjcxRjsxMTA0IDExNzIgMTFCQTsKK0I3MjA7QjcyMDsxMTA0IDExNzIgMTFCQjtCNzIwOzExMDQgMTE3MiAxMUJCOworQjcyMTtCNzIxOzExMDQgMTE3MiAxMUJDO0I3MjE7MTEwNCAxMTcyIDExQkM7CitCNzIyO0I3MjI7MTEwNCAxMTcyIDExQkQ7QjcyMjsxMTA0IDExNzIgMTFCRDsKK0I3MjM7QjcyMzsxMTA0IDExNzIgMTFCRTtCNzIzOzExMDQgMTE3MiAxMUJFOworQjcyNDtCNzI0OzExMDQgMTE3MiAxMUJGO0I3MjQ7MTEwNCAxMTcyIDExQkY7CitCNzI1O0I3MjU7MTEwNCAxMTcyIDExQzA7QjcyNTsxMTA0IDExNzIgMTFDMDsKK0I3MjY7QjcyNjsxMTA0IDExNzIgMTFDMTtCNzI2OzExMDQgMTE3MiAxMUMxOworQjcyNztCNzI3OzExMDQgMTE3MiAxMUMyO0I3Mjc7MTEwNCAxMTcyIDExQzI7CitCNzI4O0I3Mjg7MTEwNCAxMTczO0I3Mjg7MTEwNCAxMTczOworQjcyOTtCNzI5OzExMDQgMTE3MyAxMUE4O0I3Mjk7MTEwNCAxMTczIDExQTg7CitCNzJBO0I3MkE7MTEwNCAxMTczIDExQTk7QjcyQTsxMTA0IDExNzMgMTFBOTsKK0I3MkI7QjcyQjsxMTA0IDExNzMgMTFBQTtCNzJCOzExMDQgMTE3MyAxMUFBOworQjcyQztCNzJDOzExMDQgMTE3MyAxMUFCO0I3MkM7MTEwNCAxMTczIDExQUI7CitCNzJEO0I3MkQ7MTEwNCAxMTczIDExQUM7QjcyRDsxMTA0IDExNzMgMTFBQzsKK0I3MkU7QjcyRTsxMTA0IDExNzMgMTFBRDtCNzJFOzExMDQgMTE3MyAxMUFEOworQjcyRjtCNzJGOzExMDQgMTE3MyAxMUFFO0I3MkY7MTEwNCAxMTczIDExQUU7CitCNzMwO0I3MzA7MTEwNCAxMTczIDExQUY7QjczMDsxMTA0IDExNzMgMTFBRjsKK0I3MzE7QjczMTsxMTA0IDExNzMgMTFCMDtCNzMxOzExMDQgMTE3MyAxMUIwOworQjczMjtCNzMyOzExMDQgMTE3MyAxMUIxO0I3MzI7MTEwNCAxMTczIDExQjE7CitCNzMzO0I3MzM7MTEwNCAxMTczIDExQjI7QjczMzsxMTA0IDExNzMgMTFCMjsKK0I3MzQ7QjczNDsxMTA0IDExNzMgMTFCMztCNzM0OzExMDQgMTE3MyAxMUIzOworQjczNTtCNzM1OzExMDQgMTE3MyAxMUI0O0I3MzU7MTEwNCAxMTczIDExQjQ7CitCNzM2O0I3MzY7MTEwNCAxMTczIDExQjU7QjczNjsxMTA0IDExNzMgMTFCNTsKK0I3Mzc7QjczNzsxMTA0IDExNzMgMTFCNjtCNzM3OzExMDQgMTE3MyAxMUI2OworQjczODtCNzM4OzExMDQgMTE3MyAxMUI3O0I3Mzg7MTEwNCAxMTczIDExQjc7CitCNzM5O0I3Mzk7MTEwNCAxMTczIDExQjg7QjczOTsxMTA0IDExNzMgMTFCODsKK0I3M0E7QjczQTsxMTA0IDExNzMgMTFCOTtCNzNBOzExMDQgMTE3MyAxMUI5OworQjczQjtCNzNCOzExMDQgMTE3MyAxMUJBO0I3M0I7MTEwNCAxMTczIDExQkE7CitCNzNDO0I3M0M7MTEwNCAxMTczIDExQkI7QjczQzsxMTA0IDExNzMgMTFCQjsKK0I3M0Q7QjczRDsxMTA0IDExNzMgMTFCQztCNzNEOzExMDQgMTE3MyAxMUJDOworQjczRTtCNzNFOzExMDQgMTE3MyAxMUJEO0I3M0U7MTEwNCAxMTczIDExQkQ7CitCNzNGO0I3M0Y7MTEwNCAxMTczIDExQkU7QjczRjsxMTA0IDExNzMgMTFCRTsKK0I3NDA7Qjc0MDsxMTA0IDExNzMgMTFCRjtCNzQwOzExMDQgMTE3MyAxMUJGOworQjc0MTtCNzQxOzExMDQgMTE3MyAxMUMwO0I3NDE7MTEwNCAxMTczIDExQzA7CitCNzQyO0I3NDI7MTEwNCAxMTczIDExQzE7Qjc0MjsxMTA0IDExNzMgMTFDMTsKK0I3NDM7Qjc0MzsxMTA0IDExNzMgMTFDMjtCNzQzOzExMDQgMTE3MyAxMUMyOworQjc0NDtCNzQ0OzExMDQgMTE3NDtCNzQ0OzExMDQgMTE3NDsKK0I3NDU7Qjc0NTsxMTA0IDExNzQgMTFBODtCNzQ1OzExMDQgMTE3NCAxMUE4OworQjc0NjtCNzQ2OzExMDQgMTE3NCAxMUE5O0I3NDY7MTEwNCAxMTc0IDExQTk7CitCNzQ3O0I3NDc7MTEwNCAxMTc0IDExQUE7Qjc0NzsxMTA0IDExNzQgMTFBQTsKK0I3NDg7Qjc0ODsxMTA0IDExNzQgMTFBQjtCNzQ4OzExMDQgMTE3NCAxMUFCOworQjc0OTtCNzQ5OzExMDQgMTE3NCAxMUFDO0I3NDk7MTEwNCAxMTc0IDExQUM7CitCNzRBO0I3NEE7MTEwNCAxMTc0IDExQUQ7Qjc0QTsxMTA0IDExNzQgMTFBRDsKK0I3NEI7Qjc0QjsxMTA0IDExNzQgMTFBRTtCNzRCOzExMDQgMTE3NCAxMUFFOworQjc0QztCNzRDOzExMDQgMTE3NCAxMUFGO0I3NEM7MTEwNCAxMTc0IDExQUY7CitCNzREO0I3NEQ7MTEwNCAxMTc0IDExQjA7Qjc0RDsxMTA0IDExNzQgMTFCMDsKK0I3NEU7Qjc0RTsxMTA0IDExNzQgMTFCMTtCNzRFOzExMDQgMTE3NCAxMUIxOworQjc0RjtCNzRGOzExMDQgMTE3NCAxMUIyO0I3NEY7MTEwNCAxMTc0IDExQjI7CitCNzUwO0I3NTA7MTEwNCAxMTc0IDExQjM7Qjc1MDsxMTA0IDExNzQgMTFCMzsKK0I3NTE7Qjc1MTsxMTA0IDExNzQgMTFCNDtCNzUxOzExMDQgMTE3NCAxMUI0OworQjc1MjtCNzUyOzExMDQgMTE3NCAxMUI1O0I3NTI7MTEwNCAxMTc0IDExQjU7CitCNzUzO0I3NTM7MTEwNCAxMTc0IDExQjY7Qjc1MzsxMTA0IDExNzQgMTFCNjsKK0I3NTQ7Qjc1NDsxMTA0IDExNzQgMTFCNztCNzU0OzExMDQgMTE3NCAxMUI3OworQjc1NTtCNzU1OzExMDQgMTE3NCAxMUI4O0I3NTU7MTEwNCAxMTc0IDExQjg7CitCNzU2O0I3NTY7MTEwNCAxMTc0IDExQjk7Qjc1NjsxMTA0IDExNzQgMTFCOTsKK0I3NTc7Qjc1NzsxMTA0IDExNzQgMTFCQTtCNzU3OzExMDQgMTE3NCAxMUJBOworQjc1ODtCNzU4OzExMDQgMTE3NCAxMUJCO0I3NTg7MTEwNCAxMTc0IDExQkI7CitCNzU5O0I3NTk7MTEwNCAxMTc0IDExQkM7Qjc1OTsxMTA0IDExNzQgMTFCQzsKK0I3NUE7Qjc1QTsxMTA0IDExNzQgMTFCRDtCNzVBOzExMDQgMTE3NCAxMUJEOworQjc1QjtCNzVCOzExMDQgMTE3NCAxMUJFO0I3NUI7MTEwNCAxMTc0IDExQkU7CitCNzVDO0I3NUM7MTEwNCAxMTc0IDExQkY7Qjc1QzsxMTA0IDExNzQgMTFCRjsKK0I3NUQ7Qjc1RDsxMTA0IDExNzQgMTFDMDtCNzVEOzExMDQgMTE3NCAxMUMwOworQjc1RTtCNzVFOzExMDQgMTE3NCAxMUMxO0I3NUU7MTEwNCAxMTc0IDExQzE7CitCNzVGO0I3NUY7MTEwNCAxMTc0IDExQzI7Qjc1RjsxMTA0IDExNzQgMTFDMjsKK0I3NjA7Qjc2MDsxMTA0IDExNzU7Qjc2MDsxMTA0IDExNzU7CitCNzYxO0I3NjE7MTEwNCAxMTc1IDExQTg7Qjc2MTsxMTA0IDExNzUgMTFBODsKK0I3NjI7Qjc2MjsxMTA0IDExNzUgMTFBOTtCNzYyOzExMDQgMTE3NSAxMUE5OworQjc2MztCNzYzOzExMDQgMTE3NSAxMUFBO0I3NjM7MTEwNCAxMTc1IDExQUE7CitCNzY0O0I3NjQ7MTEwNCAxMTc1IDExQUI7Qjc2NDsxMTA0IDExNzUgMTFBQjsKK0I3NjU7Qjc2NTsxMTA0IDExNzUgMTFBQztCNzY1OzExMDQgMTE3NSAxMUFDOworQjc2NjtCNzY2OzExMDQgMTE3NSAxMUFEO0I3NjY7MTEwNCAxMTc1IDExQUQ7CitCNzY3O0I3Njc7MTEwNCAxMTc1IDExQUU7Qjc2NzsxMTA0IDExNzUgMTFBRTsKK0I3Njg7Qjc2ODsxMTA0IDExNzUgMTFBRjtCNzY4OzExMDQgMTE3NSAxMUFGOworQjc2OTtCNzY5OzExMDQgMTE3NSAxMUIwO0I3Njk7MTEwNCAxMTc1IDExQjA7CitCNzZBO0I3NkE7MTEwNCAxMTc1IDExQjE7Qjc2QTsxMTA0IDExNzUgMTFCMTsKK0I3NkI7Qjc2QjsxMTA0IDExNzUgMTFCMjtCNzZCOzExMDQgMTE3NSAxMUIyOworQjc2QztCNzZDOzExMDQgMTE3NSAxMUIzO0I3NkM7MTEwNCAxMTc1IDExQjM7CitCNzZEO0I3NkQ7MTEwNCAxMTc1IDExQjQ7Qjc2RDsxMTA0IDExNzUgMTFCNDsKK0I3NkU7Qjc2RTsxMTA0IDExNzUgMTFCNTtCNzZFOzExMDQgMTE3NSAxMUI1OworQjc2RjtCNzZGOzExMDQgMTE3NSAxMUI2O0I3NkY7MTEwNCAxMTc1IDExQjY7CitCNzcwO0I3NzA7MTEwNCAxMTc1IDExQjc7Qjc3MDsxMTA0IDExNzUgMTFCNzsKK0I3NzE7Qjc3MTsxMTA0IDExNzUgMTFCODtCNzcxOzExMDQgMTE3NSAxMUI4OworQjc3MjtCNzcyOzExMDQgMTE3NSAxMUI5O0I3NzI7MTEwNCAxMTc1IDExQjk7CitCNzczO0I3NzM7MTEwNCAxMTc1IDExQkE7Qjc3MzsxMTA0IDExNzUgMTFCQTsKK0I3NzQ7Qjc3NDsxMTA0IDExNzUgMTFCQjtCNzc0OzExMDQgMTE3NSAxMUJCOworQjc3NTtCNzc1OzExMDQgMTE3NSAxMUJDO0I3NzU7MTEwNCAxMTc1IDExQkM7CitCNzc2O0I3NzY7MTEwNCAxMTc1IDExQkQ7Qjc3NjsxMTA0IDExNzUgMTFCRDsKK0I3Nzc7Qjc3NzsxMTA0IDExNzUgMTFCRTtCNzc3OzExMDQgMTE3NSAxMUJFOworQjc3ODtCNzc4OzExMDQgMTE3NSAxMUJGO0I3Nzg7MTEwNCAxMTc1IDExQkY7CitCNzc5O0I3Nzk7MTEwNCAxMTc1IDExQzA7Qjc3OTsxMTA0IDExNzUgMTFDMDsKK0I3N0E7Qjc3QTsxMTA0IDExNzUgMTFDMTtCNzdBOzExMDQgMTE3NSAxMUMxOworQjc3QjtCNzdCOzExMDQgMTE3NSAxMUMyO0I3N0I7MTEwNCAxMTc1IDExQzI7CitCNzdDO0I3N0M7MTEwNSAxMTYxO0I3N0M7MTEwNSAxMTYxOworQjc3RDtCNzdEOzExMDUgMTE2MSAxMUE4O0I3N0Q7MTEwNSAxMTYxIDExQTg7CitCNzdFO0I3N0U7MTEwNSAxMTYxIDExQTk7Qjc3RTsxMTA1IDExNjEgMTFBOTsKK0I3N0Y7Qjc3RjsxMTA1IDExNjEgMTFBQTtCNzdGOzExMDUgMTE2MSAxMUFBOworQjc4MDtCNzgwOzExMDUgMTE2MSAxMUFCO0I3ODA7MTEwNSAxMTYxIDExQUI7CitCNzgxO0I3ODE7MTEwNSAxMTYxIDExQUM7Qjc4MTsxMTA1IDExNjEgMTFBQzsKK0I3ODI7Qjc4MjsxMTA1IDExNjEgMTFBRDtCNzgyOzExMDUgMTE2MSAxMUFEOworQjc4MztCNzgzOzExMDUgMTE2MSAxMUFFO0I3ODM7MTEwNSAxMTYxIDExQUU7CitCNzg0O0I3ODQ7MTEwNSAxMTYxIDExQUY7Qjc4NDsxMTA1IDExNjEgMTFBRjsKK0I3ODU7Qjc4NTsxMTA1IDExNjEgMTFCMDtCNzg1OzExMDUgMTE2MSAxMUIwOworQjc4NjtCNzg2OzExMDUgMTE2MSAxMUIxO0I3ODY7MTEwNSAxMTYxIDExQjE7CitCNzg3O0I3ODc7MTEwNSAxMTYxIDExQjI7Qjc4NzsxMTA1IDExNjEgMTFCMjsKK0I3ODg7Qjc4ODsxMTA1IDExNjEgMTFCMztCNzg4OzExMDUgMTE2MSAxMUIzOworQjc4OTtCNzg5OzExMDUgMTE2MSAxMUI0O0I3ODk7MTEwNSAxMTYxIDExQjQ7CitCNzhBO0I3OEE7MTEwNSAxMTYxIDExQjU7Qjc4QTsxMTA1IDExNjEgMTFCNTsKK0I3OEI7Qjc4QjsxMTA1IDExNjEgMTFCNjtCNzhCOzExMDUgMTE2MSAxMUI2OworQjc4QztCNzhDOzExMDUgMTE2MSAxMUI3O0I3OEM7MTEwNSAxMTYxIDExQjc7CitCNzhEO0I3OEQ7MTEwNSAxMTYxIDExQjg7Qjc4RDsxMTA1IDExNjEgMTFCODsKK0I3OEU7Qjc4RTsxMTA1IDExNjEgMTFCOTtCNzhFOzExMDUgMTE2MSAxMUI5OworQjc4RjtCNzhGOzExMDUgMTE2MSAxMUJBO0I3OEY7MTEwNSAxMTYxIDExQkE7CitCNzkwO0I3OTA7MTEwNSAxMTYxIDExQkI7Qjc5MDsxMTA1IDExNjEgMTFCQjsKK0I3OTE7Qjc5MTsxMTA1IDExNjEgMTFCQztCNzkxOzExMDUgMTE2MSAxMUJDOworQjc5MjtCNzkyOzExMDUgMTE2MSAxMUJEO0I3OTI7MTEwNSAxMTYxIDExQkQ7CitCNzkzO0I3OTM7MTEwNSAxMTYxIDExQkU7Qjc5MzsxMTA1IDExNjEgMTFCRTsKK0I3OTQ7Qjc5NDsxMTA1IDExNjEgMTFCRjtCNzk0OzExMDUgMTE2MSAxMUJGOworQjc5NTtCNzk1OzExMDUgMTE2MSAxMUMwO0I3OTU7MTEwNSAxMTYxIDExQzA7CitCNzk2O0I3OTY7MTEwNSAxMTYxIDExQzE7Qjc5NjsxMTA1IDExNjEgMTFDMTsKK0I3OTc7Qjc5NzsxMTA1IDExNjEgMTFDMjtCNzk3OzExMDUgMTE2MSAxMUMyOworQjc5ODtCNzk4OzExMDUgMTE2MjtCNzk4OzExMDUgMTE2MjsKK0I3OTk7Qjc5OTsxMTA1IDExNjIgMTFBODtCNzk5OzExMDUgMTE2MiAxMUE4OworQjc5QTtCNzlBOzExMDUgMTE2MiAxMUE5O0I3OUE7MTEwNSAxMTYyIDExQTk7CitCNzlCO0I3OUI7MTEwNSAxMTYyIDExQUE7Qjc5QjsxMTA1IDExNjIgMTFBQTsKK0I3OUM7Qjc5QzsxMTA1IDExNjIgMTFBQjtCNzlDOzExMDUgMTE2MiAxMUFCOworQjc5RDtCNzlEOzExMDUgMTE2MiAxMUFDO0I3OUQ7MTEwNSAxMTYyIDExQUM7CitCNzlFO0I3OUU7MTEwNSAxMTYyIDExQUQ7Qjc5RTsxMTA1IDExNjIgMTFBRDsKK0I3OUY7Qjc5RjsxMTA1IDExNjIgMTFBRTtCNzlGOzExMDUgMTE2MiAxMUFFOworQjdBMDtCN0EwOzExMDUgMTE2MiAxMUFGO0I3QTA7MTEwNSAxMTYyIDExQUY7CitCN0ExO0I3QTE7MTEwNSAxMTYyIDExQjA7QjdBMTsxMTA1IDExNjIgMTFCMDsKK0I3QTI7QjdBMjsxMTA1IDExNjIgMTFCMTtCN0EyOzExMDUgMTE2MiAxMUIxOworQjdBMztCN0EzOzExMDUgMTE2MiAxMUIyO0I3QTM7MTEwNSAxMTYyIDExQjI7CitCN0E0O0I3QTQ7MTEwNSAxMTYyIDExQjM7QjdBNDsxMTA1IDExNjIgMTFCMzsKK0I3QTU7QjdBNTsxMTA1IDExNjIgMTFCNDtCN0E1OzExMDUgMTE2MiAxMUI0OworQjdBNjtCN0E2OzExMDUgMTE2MiAxMUI1O0I3QTY7MTEwNSAxMTYyIDExQjU7CitCN0E3O0I3QTc7MTEwNSAxMTYyIDExQjY7QjdBNzsxMTA1IDExNjIgMTFCNjsKK0I3QTg7QjdBODsxMTA1IDExNjIgMTFCNztCN0E4OzExMDUgMTE2MiAxMUI3OworQjdBOTtCN0E5OzExMDUgMTE2MiAxMUI4O0I3QTk7MTEwNSAxMTYyIDExQjg7CitCN0FBO0I3QUE7MTEwNSAxMTYyIDExQjk7QjdBQTsxMTA1IDExNjIgMTFCOTsKK0I3QUI7QjdBQjsxMTA1IDExNjIgMTFCQTtCN0FCOzExMDUgMTE2MiAxMUJBOworQjdBQztCN0FDOzExMDUgMTE2MiAxMUJCO0I3QUM7MTEwNSAxMTYyIDExQkI7CitCN0FEO0I3QUQ7MTEwNSAxMTYyIDExQkM7QjdBRDsxMTA1IDExNjIgMTFCQzsKK0I3QUU7QjdBRTsxMTA1IDExNjIgMTFCRDtCN0FFOzExMDUgMTE2MiAxMUJEOworQjdBRjtCN0FGOzExMDUgMTE2MiAxMUJFO0I3QUY7MTEwNSAxMTYyIDExQkU7CitCN0IwO0I3QjA7MTEwNSAxMTYyIDExQkY7QjdCMDsxMTA1IDExNjIgMTFCRjsKK0I3QjE7QjdCMTsxMTA1IDExNjIgMTFDMDtCN0IxOzExMDUgMTE2MiAxMUMwOworQjdCMjtCN0IyOzExMDUgMTE2MiAxMUMxO0I3QjI7MTEwNSAxMTYyIDExQzE7CitCN0IzO0I3QjM7MTEwNSAxMTYyIDExQzI7QjdCMzsxMTA1IDExNjIgMTFDMjsKK0I3QjQ7QjdCNDsxMTA1IDExNjM7QjdCNDsxMTA1IDExNjM7CitCN0I1O0I3QjU7MTEwNSAxMTYzIDExQTg7QjdCNTsxMTA1IDExNjMgMTFBODsKK0I3QjY7QjdCNjsxMTA1IDExNjMgMTFBOTtCN0I2OzExMDUgMTE2MyAxMUE5OworQjdCNztCN0I3OzExMDUgMTE2MyAxMUFBO0I3Qjc7MTEwNSAxMTYzIDExQUE7CitCN0I4O0I3Qjg7MTEwNSAxMTYzIDExQUI7QjdCODsxMTA1IDExNjMgMTFBQjsKK0I3Qjk7QjdCOTsxMTA1IDExNjMgMTFBQztCN0I5OzExMDUgMTE2MyAxMUFDOworQjdCQTtCN0JBOzExMDUgMTE2MyAxMUFEO0I3QkE7MTEwNSAxMTYzIDExQUQ7CitCN0JCO0I3QkI7MTEwNSAxMTYzIDExQUU7QjdCQjsxMTA1IDExNjMgMTFBRTsKK0I3QkM7QjdCQzsxMTA1IDExNjMgMTFBRjtCN0JDOzExMDUgMTE2MyAxMUFGOworQjdCRDtCN0JEOzExMDUgMTE2MyAxMUIwO0I3QkQ7MTEwNSAxMTYzIDExQjA7CitCN0JFO0I3QkU7MTEwNSAxMTYzIDExQjE7QjdCRTsxMTA1IDExNjMgMTFCMTsKK0I3QkY7QjdCRjsxMTA1IDExNjMgMTFCMjtCN0JGOzExMDUgMTE2MyAxMUIyOworQjdDMDtCN0MwOzExMDUgMTE2MyAxMUIzO0I3QzA7MTEwNSAxMTYzIDExQjM7CitCN0MxO0I3QzE7MTEwNSAxMTYzIDExQjQ7QjdDMTsxMTA1IDExNjMgMTFCNDsKK0I3QzI7QjdDMjsxMTA1IDExNjMgMTFCNTtCN0MyOzExMDUgMTE2MyAxMUI1OworQjdDMztCN0MzOzExMDUgMTE2MyAxMUI2O0I3QzM7MTEwNSAxMTYzIDExQjY7CitCN0M0O0I3QzQ7MTEwNSAxMTYzIDExQjc7QjdDNDsxMTA1IDExNjMgMTFCNzsKK0I3QzU7QjdDNTsxMTA1IDExNjMgMTFCODtCN0M1OzExMDUgMTE2MyAxMUI4OworQjdDNjtCN0M2OzExMDUgMTE2MyAxMUI5O0I3QzY7MTEwNSAxMTYzIDExQjk7CitCN0M3O0I3Qzc7MTEwNSAxMTYzIDExQkE7QjdDNzsxMTA1IDExNjMgMTFCQTsKK0I3Qzg7QjdDODsxMTA1IDExNjMgMTFCQjtCN0M4OzExMDUgMTE2MyAxMUJCOworQjdDOTtCN0M5OzExMDUgMTE2MyAxMUJDO0I3Qzk7MTEwNSAxMTYzIDExQkM7CitCN0NBO0I3Q0E7MTEwNSAxMTYzIDExQkQ7QjdDQTsxMTA1IDExNjMgMTFCRDsKK0I3Q0I7QjdDQjsxMTA1IDExNjMgMTFCRTtCN0NCOzExMDUgMTE2MyAxMUJFOworQjdDQztCN0NDOzExMDUgMTE2MyAxMUJGO0I3Q0M7MTEwNSAxMTYzIDExQkY7CitCN0NEO0I3Q0Q7MTEwNSAxMTYzIDExQzA7QjdDRDsxMTA1IDExNjMgMTFDMDsKK0I3Q0U7QjdDRTsxMTA1IDExNjMgMTFDMTtCN0NFOzExMDUgMTE2MyAxMUMxOworQjdDRjtCN0NGOzExMDUgMTE2MyAxMUMyO0I3Q0Y7MTEwNSAxMTYzIDExQzI7CitCN0QwO0I3RDA7MTEwNSAxMTY0O0I3RDA7MTEwNSAxMTY0OworQjdEMTtCN0QxOzExMDUgMTE2NCAxMUE4O0I3RDE7MTEwNSAxMTY0IDExQTg7CitCN0QyO0I3RDI7MTEwNSAxMTY0IDExQTk7QjdEMjsxMTA1IDExNjQgMTFBOTsKK0I3RDM7QjdEMzsxMTA1IDExNjQgMTFBQTtCN0QzOzExMDUgMTE2NCAxMUFBOworQjdENDtCN0Q0OzExMDUgMTE2NCAxMUFCO0I3RDQ7MTEwNSAxMTY0IDExQUI7CitCN0Q1O0I3RDU7MTEwNSAxMTY0IDExQUM7QjdENTsxMTA1IDExNjQgMTFBQzsKK0I3RDY7QjdENjsxMTA1IDExNjQgMTFBRDtCN0Q2OzExMDUgMTE2NCAxMUFEOworQjdENztCN0Q3OzExMDUgMTE2NCAxMUFFO0I3RDc7MTEwNSAxMTY0IDExQUU7CitCN0Q4O0I3RDg7MTEwNSAxMTY0IDExQUY7QjdEODsxMTA1IDExNjQgMTFBRjsKK0I3RDk7QjdEOTsxMTA1IDExNjQgMTFCMDtCN0Q5OzExMDUgMTE2NCAxMUIwOworQjdEQTtCN0RBOzExMDUgMTE2NCAxMUIxO0I3REE7MTEwNSAxMTY0IDExQjE7CitCN0RCO0I3REI7MTEwNSAxMTY0IDExQjI7QjdEQjsxMTA1IDExNjQgMTFCMjsKK0I3REM7QjdEQzsxMTA1IDExNjQgMTFCMztCN0RDOzExMDUgMTE2NCAxMUIzOworQjdERDtCN0REOzExMDUgMTE2NCAxMUI0O0I3REQ7MTEwNSAxMTY0IDExQjQ7CitCN0RFO0I3REU7MTEwNSAxMTY0IDExQjU7QjdERTsxMTA1IDExNjQgMTFCNTsKK0I3REY7QjdERjsxMTA1IDExNjQgMTFCNjtCN0RGOzExMDUgMTE2NCAxMUI2OworQjdFMDtCN0UwOzExMDUgMTE2NCAxMUI3O0I3RTA7MTEwNSAxMTY0IDExQjc7CitCN0UxO0I3RTE7MTEwNSAxMTY0IDExQjg7QjdFMTsxMTA1IDExNjQgMTFCODsKK0I3RTI7QjdFMjsxMTA1IDExNjQgMTFCOTtCN0UyOzExMDUgMTE2NCAxMUI5OworQjdFMztCN0UzOzExMDUgMTE2NCAxMUJBO0I3RTM7MTEwNSAxMTY0IDExQkE7CitCN0U0O0I3RTQ7MTEwNSAxMTY0IDExQkI7QjdFNDsxMTA1IDExNjQgMTFCQjsKK0I3RTU7QjdFNTsxMTA1IDExNjQgMTFCQztCN0U1OzExMDUgMTE2NCAxMUJDOworQjdFNjtCN0U2OzExMDUgMTE2NCAxMUJEO0I3RTY7MTEwNSAxMTY0IDExQkQ7CitCN0U3O0I3RTc7MTEwNSAxMTY0IDExQkU7QjdFNzsxMTA1IDExNjQgMTFCRTsKK0I3RTg7QjdFODsxMTA1IDExNjQgMTFCRjtCN0U4OzExMDUgMTE2NCAxMUJGOworQjdFOTtCN0U5OzExMDUgMTE2NCAxMUMwO0I3RTk7MTEwNSAxMTY0IDExQzA7CitCN0VBO0I3RUE7MTEwNSAxMTY0IDExQzE7QjdFQTsxMTA1IDExNjQgMTFDMTsKK0I3RUI7QjdFQjsxMTA1IDExNjQgMTFDMjtCN0VCOzExMDUgMTE2NCAxMUMyOworQjdFQztCN0VDOzExMDUgMTE2NTtCN0VDOzExMDUgMTE2NTsKK0I3RUQ7QjdFRDsxMTA1IDExNjUgMTFBODtCN0VEOzExMDUgMTE2NSAxMUE4OworQjdFRTtCN0VFOzExMDUgMTE2NSAxMUE5O0I3RUU7MTEwNSAxMTY1IDExQTk7CitCN0VGO0I3RUY7MTEwNSAxMTY1IDExQUE7QjdFRjsxMTA1IDExNjUgMTFBQTsKK0I3RjA7QjdGMDsxMTA1IDExNjUgMTFBQjtCN0YwOzExMDUgMTE2NSAxMUFCOworQjdGMTtCN0YxOzExMDUgMTE2NSAxMUFDO0I3RjE7MTEwNSAxMTY1IDExQUM7CitCN0YyO0I3RjI7MTEwNSAxMTY1IDExQUQ7QjdGMjsxMTA1IDExNjUgMTFBRDsKK0I3RjM7QjdGMzsxMTA1IDExNjUgMTFBRTtCN0YzOzExMDUgMTE2NSAxMUFFOworQjdGNDtCN0Y0OzExMDUgMTE2NSAxMUFGO0I3RjQ7MTEwNSAxMTY1IDExQUY7CitCN0Y1O0I3RjU7MTEwNSAxMTY1IDExQjA7QjdGNTsxMTA1IDExNjUgMTFCMDsKK0I3RjY7QjdGNjsxMTA1IDExNjUgMTFCMTtCN0Y2OzExMDUgMTE2NSAxMUIxOworQjdGNztCN0Y3OzExMDUgMTE2NSAxMUIyO0I3Rjc7MTEwNSAxMTY1IDExQjI7CitCN0Y4O0I3Rjg7MTEwNSAxMTY1IDExQjM7QjdGODsxMTA1IDExNjUgMTFCMzsKK0I3Rjk7QjdGOTsxMTA1IDExNjUgMTFCNDtCN0Y5OzExMDUgMTE2NSAxMUI0OworQjdGQTtCN0ZBOzExMDUgMTE2NSAxMUI1O0I3RkE7MTEwNSAxMTY1IDExQjU7CitCN0ZCO0I3RkI7MTEwNSAxMTY1IDExQjY7QjdGQjsxMTA1IDExNjUgMTFCNjsKK0I3RkM7QjdGQzsxMTA1IDExNjUgMTFCNztCN0ZDOzExMDUgMTE2NSAxMUI3OworQjdGRDtCN0ZEOzExMDUgMTE2NSAxMUI4O0I3RkQ7MTEwNSAxMTY1IDExQjg7CitCN0ZFO0I3RkU7MTEwNSAxMTY1IDExQjk7QjdGRTsxMTA1IDExNjUgMTFCOTsKK0I3RkY7QjdGRjsxMTA1IDExNjUgMTFCQTtCN0ZGOzExMDUgMTE2NSAxMUJBOworQjgwMDtCODAwOzExMDUgMTE2NSAxMUJCO0I4MDA7MTEwNSAxMTY1IDExQkI7CitCODAxO0I4MDE7MTEwNSAxMTY1IDExQkM7QjgwMTsxMTA1IDExNjUgMTFCQzsKK0I4MDI7QjgwMjsxMTA1IDExNjUgMTFCRDtCODAyOzExMDUgMTE2NSAxMUJEOworQjgwMztCODAzOzExMDUgMTE2NSAxMUJFO0I4MDM7MTEwNSAxMTY1IDExQkU7CitCODA0O0I4MDQ7MTEwNSAxMTY1IDExQkY7QjgwNDsxMTA1IDExNjUgMTFCRjsKK0I4MDU7QjgwNTsxMTA1IDExNjUgMTFDMDtCODA1OzExMDUgMTE2NSAxMUMwOworQjgwNjtCODA2OzExMDUgMTE2NSAxMUMxO0I4MDY7MTEwNSAxMTY1IDExQzE7CitCODA3O0I4MDc7MTEwNSAxMTY1IDExQzI7QjgwNzsxMTA1IDExNjUgMTFDMjsKK0I4MDg7QjgwODsxMTA1IDExNjY7QjgwODsxMTA1IDExNjY7CitCODA5O0I4MDk7MTEwNSAxMTY2IDExQTg7QjgwOTsxMTA1IDExNjYgMTFBODsKK0I4MEE7QjgwQTsxMTA1IDExNjYgMTFBOTtCODBBOzExMDUgMTE2NiAxMUE5OworQjgwQjtCODBCOzExMDUgMTE2NiAxMUFBO0I4MEI7MTEwNSAxMTY2IDExQUE7CitCODBDO0I4MEM7MTEwNSAxMTY2IDExQUI7QjgwQzsxMTA1IDExNjYgMTFBQjsKK0I4MEQ7QjgwRDsxMTA1IDExNjYgMTFBQztCODBEOzExMDUgMTE2NiAxMUFDOworQjgwRTtCODBFOzExMDUgMTE2NiAxMUFEO0I4MEU7MTEwNSAxMTY2IDExQUQ7CitCODBGO0I4MEY7MTEwNSAxMTY2IDExQUU7QjgwRjsxMTA1IDExNjYgMTFBRTsKK0I4MTA7QjgxMDsxMTA1IDExNjYgMTFBRjtCODEwOzExMDUgMTE2NiAxMUFGOworQjgxMTtCODExOzExMDUgMTE2NiAxMUIwO0I4MTE7MTEwNSAxMTY2IDExQjA7CitCODEyO0I4MTI7MTEwNSAxMTY2IDExQjE7QjgxMjsxMTA1IDExNjYgMTFCMTsKK0I4MTM7QjgxMzsxMTA1IDExNjYgMTFCMjtCODEzOzExMDUgMTE2NiAxMUIyOworQjgxNDtCODE0OzExMDUgMTE2NiAxMUIzO0I4MTQ7MTEwNSAxMTY2IDExQjM7CitCODE1O0I4MTU7MTEwNSAxMTY2IDExQjQ7QjgxNTsxMTA1IDExNjYgMTFCNDsKK0I4MTY7QjgxNjsxMTA1IDExNjYgMTFCNTtCODE2OzExMDUgMTE2NiAxMUI1OworQjgxNztCODE3OzExMDUgMTE2NiAxMUI2O0I4MTc7MTEwNSAxMTY2IDExQjY7CitCODE4O0I4MTg7MTEwNSAxMTY2IDExQjc7QjgxODsxMTA1IDExNjYgMTFCNzsKK0I4MTk7QjgxOTsxMTA1IDExNjYgMTFCODtCODE5OzExMDUgMTE2NiAxMUI4OworQjgxQTtCODFBOzExMDUgMTE2NiAxMUI5O0I4MUE7MTEwNSAxMTY2IDExQjk7CitCODFCO0I4MUI7MTEwNSAxMTY2IDExQkE7QjgxQjsxMTA1IDExNjYgMTFCQTsKK0I4MUM7QjgxQzsxMTA1IDExNjYgMTFCQjtCODFDOzExMDUgMTE2NiAxMUJCOworQjgxRDtCODFEOzExMDUgMTE2NiAxMUJDO0I4MUQ7MTEwNSAxMTY2IDExQkM7CitCODFFO0I4MUU7MTEwNSAxMTY2IDExQkQ7QjgxRTsxMTA1IDExNjYgMTFCRDsKK0I4MUY7QjgxRjsxMTA1IDExNjYgMTFCRTtCODFGOzExMDUgMTE2NiAxMUJFOworQjgyMDtCODIwOzExMDUgMTE2NiAxMUJGO0I4MjA7MTEwNSAxMTY2IDExQkY7CitCODIxO0I4MjE7MTEwNSAxMTY2IDExQzA7QjgyMTsxMTA1IDExNjYgMTFDMDsKK0I4MjI7QjgyMjsxMTA1IDExNjYgMTFDMTtCODIyOzExMDUgMTE2NiAxMUMxOworQjgyMztCODIzOzExMDUgMTE2NiAxMUMyO0I4MjM7MTEwNSAxMTY2IDExQzI7CitCODI0O0I4MjQ7MTEwNSAxMTY3O0I4MjQ7MTEwNSAxMTY3OworQjgyNTtCODI1OzExMDUgMTE2NyAxMUE4O0I4MjU7MTEwNSAxMTY3IDExQTg7CitCODI2O0I4MjY7MTEwNSAxMTY3IDExQTk7QjgyNjsxMTA1IDExNjcgMTFBOTsKK0I4Mjc7QjgyNzsxMTA1IDExNjcgMTFBQTtCODI3OzExMDUgMTE2NyAxMUFBOworQjgyODtCODI4OzExMDUgMTE2NyAxMUFCO0I4Mjg7MTEwNSAxMTY3IDExQUI7CitCODI5O0I4Mjk7MTEwNSAxMTY3IDExQUM7QjgyOTsxMTA1IDExNjcgMTFBQzsKK0I4MkE7QjgyQTsxMTA1IDExNjcgMTFBRDtCODJBOzExMDUgMTE2NyAxMUFEOworQjgyQjtCODJCOzExMDUgMTE2NyAxMUFFO0I4MkI7MTEwNSAxMTY3IDExQUU7CitCODJDO0I4MkM7MTEwNSAxMTY3IDExQUY7QjgyQzsxMTA1IDExNjcgMTFBRjsKK0I4MkQ7QjgyRDsxMTA1IDExNjcgMTFCMDtCODJEOzExMDUgMTE2NyAxMUIwOworQjgyRTtCODJFOzExMDUgMTE2NyAxMUIxO0I4MkU7MTEwNSAxMTY3IDExQjE7CitCODJGO0I4MkY7MTEwNSAxMTY3IDExQjI7QjgyRjsxMTA1IDExNjcgMTFCMjsKK0I4MzA7QjgzMDsxMTA1IDExNjcgMTFCMztCODMwOzExMDUgMTE2NyAxMUIzOworQjgzMTtCODMxOzExMDUgMTE2NyAxMUI0O0I4MzE7MTEwNSAxMTY3IDExQjQ7CitCODMyO0I4MzI7MTEwNSAxMTY3IDExQjU7QjgzMjsxMTA1IDExNjcgMTFCNTsKK0I4MzM7QjgzMzsxMTA1IDExNjcgMTFCNjtCODMzOzExMDUgMTE2NyAxMUI2OworQjgzNDtCODM0OzExMDUgMTE2NyAxMUI3O0I4MzQ7MTEwNSAxMTY3IDExQjc7CitCODM1O0I4MzU7MTEwNSAxMTY3IDExQjg7QjgzNTsxMTA1IDExNjcgMTFCODsKK0I4MzY7QjgzNjsxMTA1IDExNjcgMTFCOTtCODM2OzExMDUgMTE2NyAxMUI5OworQjgzNztCODM3OzExMDUgMTE2NyAxMUJBO0I4Mzc7MTEwNSAxMTY3IDExQkE7CitCODM4O0I4Mzg7MTEwNSAxMTY3IDExQkI7QjgzODsxMTA1IDExNjcgMTFCQjsKK0I4Mzk7QjgzOTsxMTA1IDExNjcgMTFCQztCODM5OzExMDUgMTE2NyAxMUJDOworQjgzQTtCODNBOzExMDUgMTE2NyAxMUJEO0I4M0E7MTEwNSAxMTY3IDExQkQ7CitCODNCO0I4M0I7MTEwNSAxMTY3IDExQkU7QjgzQjsxMTA1IDExNjcgMTFCRTsKK0I4M0M7QjgzQzsxMTA1IDExNjcgMTFCRjtCODNDOzExMDUgMTE2NyAxMUJGOworQjgzRDtCODNEOzExMDUgMTE2NyAxMUMwO0I4M0Q7MTEwNSAxMTY3IDExQzA7CitCODNFO0I4M0U7MTEwNSAxMTY3IDExQzE7QjgzRTsxMTA1IDExNjcgMTFDMTsKK0I4M0Y7QjgzRjsxMTA1IDExNjcgMTFDMjtCODNGOzExMDUgMTE2NyAxMUMyOworQjg0MDtCODQwOzExMDUgMTE2ODtCODQwOzExMDUgMTE2ODsKK0I4NDE7Qjg0MTsxMTA1IDExNjggMTFBODtCODQxOzExMDUgMTE2OCAxMUE4OworQjg0MjtCODQyOzExMDUgMTE2OCAxMUE5O0I4NDI7MTEwNSAxMTY4IDExQTk7CitCODQzO0I4NDM7MTEwNSAxMTY4IDExQUE7Qjg0MzsxMTA1IDExNjggMTFBQTsKK0I4NDQ7Qjg0NDsxMTA1IDExNjggMTFBQjtCODQ0OzExMDUgMTE2OCAxMUFCOworQjg0NTtCODQ1OzExMDUgMTE2OCAxMUFDO0I4NDU7MTEwNSAxMTY4IDExQUM7CitCODQ2O0I4NDY7MTEwNSAxMTY4IDExQUQ7Qjg0NjsxMTA1IDExNjggMTFBRDsKK0I4NDc7Qjg0NzsxMTA1IDExNjggMTFBRTtCODQ3OzExMDUgMTE2OCAxMUFFOworQjg0ODtCODQ4OzExMDUgMTE2OCAxMUFGO0I4NDg7MTEwNSAxMTY4IDExQUY7CitCODQ5O0I4NDk7MTEwNSAxMTY4IDExQjA7Qjg0OTsxMTA1IDExNjggMTFCMDsKK0I4NEE7Qjg0QTsxMTA1IDExNjggMTFCMTtCODRBOzExMDUgMTE2OCAxMUIxOworQjg0QjtCODRCOzExMDUgMTE2OCAxMUIyO0I4NEI7MTEwNSAxMTY4IDExQjI7CitCODRDO0I4NEM7MTEwNSAxMTY4IDExQjM7Qjg0QzsxMTA1IDExNjggMTFCMzsKK0I4NEQ7Qjg0RDsxMTA1IDExNjggMTFCNDtCODREOzExMDUgMTE2OCAxMUI0OworQjg0RTtCODRFOzExMDUgMTE2OCAxMUI1O0I4NEU7MTEwNSAxMTY4IDExQjU7CitCODRGO0I4NEY7MTEwNSAxMTY4IDExQjY7Qjg0RjsxMTA1IDExNjggMTFCNjsKK0I4NTA7Qjg1MDsxMTA1IDExNjggMTFCNztCODUwOzExMDUgMTE2OCAxMUI3OworQjg1MTtCODUxOzExMDUgMTE2OCAxMUI4O0I4NTE7MTEwNSAxMTY4IDExQjg7CitCODUyO0I4NTI7MTEwNSAxMTY4IDExQjk7Qjg1MjsxMTA1IDExNjggMTFCOTsKK0I4NTM7Qjg1MzsxMTA1IDExNjggMTFCQTtCODUzOzExMDUgMTE2OCAxMUJBOworQjg1NDtCODU0OzExMDUgMTE2OCAxMUJCO0I4NTQ7MTEwNSAxMTY4IDExQkI7CitCODU1O0I4NTU7MTEwNSAxMTY4IDExQkM7Qjg1NTsxMTA1IDExNjggMTFCQzsKK0I4NTY7Qjg1NjsxMTA1IDExNjggMTFCRDtCODU2OzExMDUgMTE2OCAxMUJEOworQjg1NztCODU3OzExMDUgMTE2OCAxMUJFO0I4NTc7MTEwNSAxMTY4IDExQkU7CitCODU4O0I4NTg7MTEwNSAxMTY4IDExQkY7Qjg1ODsxMTA1IDExNjggMTFCRjsKK0I4NTk7Qjg1OTsxMTA1IDExNjggMTFDMDtCODU5OzExMDUgMTE2OCAxMUMwOworQjg1QTtCODVBOzExMDUgMTE2OCAxMUMxO0I4NUE7MTEwNSAxMTY4IDExQzE7CitCODVCO0I4NUI7MTEwNSAxMTY4IDExQzI7Qjg1QjsxMTA1IDExNjggMTFDMjsKK0I4NUM7Qjg1QzsxMTA1IDExNjk7Qjg1QzsxMTA1IDExNjk7CitCODVEO0I4NUQ7MTEwNSAxMTY5IDExQTg7Qjg1RDsxMTA1IDExNjkgMTFBODsKK0I4NUU7Qjg1RTsxMTA1IDExNjkgMTFBOTtCODVFOzExMDUgMTE2OSAxMUE5OworQjg1RjtCODVGOzExMDUgMTE2OSAxMUFBO0I4NUY7MTEwNSAxMTY5IDExQUE7CitCODYwO0I4NjA7MTEwNSAxMTY5IDExQUI7Qjg2MDsxMTA1IDExNjkgMTFBQjsKK0I4NjE7Qjg2MTsxMTA1IDExNjkgMTFBQztCODYxOzExMDUgMTE2OSAxMUFDOworQjg2MjtCODYyOzExMDUgMTE2OSAxMUFEO0I4NjI7MTEwNSAxMTY5IDExQUQ7CitCODYzO0I4NjM7MTEwNSAxMTY5IDExQUU7Qjg2MzsxMTA1IDExNjkgMTFBRTsKK0I4NjQ7Qjg2NDsxMTA1IDExNjkgMTFBRjtCODY0OzExMDUgMTE2OSAxMUFGOworQjg2NTtCODY1OzExMDUgMTE2OSAxMUIwO0I4NjU7MTEwNSAxMTY5IDExQjA7CitCODY2O0I4NjY7MTEwNSAxMTY5IDExQjE7Qjg2NjsxMTA1IDExNjkgMTFCMTsKK0I4Njc7Qjg2NzsxMTA1IDExNjkgMTFCMjtCODY3OzExMDUgMTE2OSAxMUIyOworQjg2ODtCODY4OzExMDUgMTE2OSAxMUIzO0I4Njg7MTEwNSAxMTY5IDExQjM7CitCODY5O0I4Njk7MTEwNSAxMTY5IDExQjQ7Qjg2OTsxMTA1IDExNjkgMTFCNDsKK0I4NkE7Qjg2QTsxMTA1IDExNjkgMTFCNTtCODZBOzExMDUgMTE2OSAxMUI1OworQjg2QjtCODZCOzExMDUgMTE2OSAxMUI2O0I4NkI7MTEwNSAxMTY5IDExQjY7CitCODZDO0I4NkM7MTEwNSAxMTY5IDExQjc7Qjg2QzsxMTA1IDExNjkgMTFCNzsKK0I4NkQ7Qjg2RDsxMTA1IDExNjkgMTFCODtCODZEOzExMDUgMTE2OSAxMUI4OworQjg2RTtCODZFOzExMDUgMTE2OSAxMUI5O0I4NkU7MTEwNSAxMTY5IDExQjk7CitCODZGO0I4NkY7MTEwNSAxMTY5IDExQkE7Qjg2RjsxMTA1IDExNjkgMTFCQTsKK0I4NzA7Qjg3MDsxMTA1IDExNjkgMTFCQjtCODcwOzExMDUgMTE2OSAxMUJCOworQjg3MTtCODcxOzExMDUgMTE2OSAxMUJDO0I4NzE7MTEwNSAxMTY5IDExQkM7CitCODcyO0I4NzI7MTEwNSAxMTY5IDExQkQ7Qjg3MjsxMTA1IDExNjkgMTFCRDsKK0I4NzM7Qjg3MzsxMTA1IDExNjkgMTFCRTtCODczOzExMDUgMTE2OSAxMUJFOworQjg3NDtCODc0OzExMDUgMTE2OSAxMUJGO0I4NzQ7MTEwNSAxMTY5IDExQkY7CitCODc1O0I4NzU7MTEwNSAxMTY5IDExQzA7Qjg3NTsxMTA1IDExNjkgMTFDMDsKK0I4NzY7Qjg3NjsxMTA1IDExNjkgMTFDMTtCODc2OzExMDUgMTE2OSAxMUMxOworQjg3NztCODc3OzExMDUgMTE2OSAxMUMyO0I4Nzc7MTEwNSAxMTY5IDExQzI7CitCODc4O0I4Nzg7MTEwNSAxMTZBO0I4Nzg7MTEwNSAxMTZBOworQjg3OTtCODc5OzExMDUgMTE2QSAxMUE4O0I4Nzk7MTEwNSAxMTZBIDExQTg7CitCODdBO0I4N0E7MTEwNSAxMTZBIDExQTk7Qjg3QTsxMTA1IDExNkEgMTFBOTsKK0I4N0I7Qjg3QjsxMTA1IDExNkEgMTFBQTtCODdCOzExMDUgMTE2QSAxMUFBOworQjg3QztCODdDOzExMDUgMTE2QSAxMUFCO0I4N0M7MTEwNSAxMTZBIDExQUI7CitCODdEO0I4N0Q7MTEwNSAxMTZBIDExQUM7Qjg3RDsxMTA1IDExNkEgMTFBQzsKK0I4N0U7Qjg3RTsxMTA1IDExNkEgMTFBRDtCODdFOzExMDUgMTE2QSAxMUFEOworQjg3RjtCODdGOzExMDUgMTE2QSAxMUFFO0I4N0Y7MTEwNSAxMTZBIDExQUU7CitCODgwO0I4ODA7MTEwNSAxMTZBIDExQUY7Qjg4MDsxMTA1IDExNkEgMTFBRjsKK0I4ODE7Qjg4MTsxMTA1IDExNkEgMTFCMDtCODgxOzExMDUgMTE2QSAxMUIwOworQjg4MjtCODgyOzExMDUgMTE2QSAxMUIxO0I4ODI7MTEwNSAxMTZBIDExQjE7CitCODgzO0I4ODM7MTEwNSAxMTZBIDExQjI7Qjg4MzsxMTA1IDExNkEgMTFCMjsKK0I4ODQ7Qjg4NDsxMTA1IDExNkEgMTFCMztCODg0OzExMDUgMTE2QSAxMUIzOworQjg4NTtCODg1OzExMDUgMTE2QSAxMUI0O0I4ODU7MTEwNSAxMTZBIDExQjQ7CitCODg2O0I4ODY7MTEwNSAxMTZBIDExQjU7Qjg4NjsxMTA1IDExNkEgMTFCNTsKK0I4ODc7Qjg4NzsxMTA1IDExNkEgMTFCNjtCODg3OzExMDUgMTE2QSAxMUI2OworQjg4ODtCODg4OzExMDUgMTE2QSAxMUI3O0I4ODg7MTEwNSAxMTZBIDExQjc7CitCODg5O0I4ODk7MTEwNSAxMTZBIDExQjg7Qjg4OTsxMTA1IDExNkEgMTFCODsKK0I4OEE7Qjg4QTsxMTA1IDExNkEgMTFCOTtCODhBOzExMDUgMTE2QSAxMUI5OworQjg4QjtCODhCOzExMDUgMTE2QSAxMUJBO0I4OEI7MTEwNSAxMTZBIDExQkE7CitCODhDO0I4OEM7MTEwNSAxMTZBIDExQkI7Qjg4QzsxMTA1IDExNkEgMTFCQjsKK0I4OEQ7Qjg4RDsxMTA1IDExNkEgMTFCQztCODhEOzExMDUgMTE2QSAxMUJDOworQjg4RTtCODhFOzExMDUgMTE2QSAxMUJEO0I4OEU7MTEwNSAxMTZBIDExQkQ7CitCODhGO0I4OEY7MTEwNSAxMTZBIDExQkU7Qjg4RjsxMTA1IDExNkEgMTFCRTsKK0I4OTA7Qjg5MDsxMTA1IDExNkEgMTFCRjtCODkwOzExMDUgMTE2QSAxMUJGOworQjg5MTtCODkxOzExMDUgMTE2QSAxMUMwO0I4OTE7MTEwNSAxMTZBIDExQzA7CitCODkyO0I4OTI7MTEwNSAxMTZBIDExQzE7Qjg5MjsxMTA1IDExNkEgMTFDMTsKK0I4OTM7Qjg5MzsxMTA1IDExNkEgMTFDMjtCODkzOzExMDUgMTE2QSAxMUMyOworQjg5NDtCODk0OzExMDUgMTE2QjtCODk0OzExMDUgMTE2QjsKK0I4OTU7Qjg5NTsxMTA1IDExNkIgMTFBODtCODk1OzExMDUgMTE2QiAxMUE4OworQjg5NjtCODk2OzExMDUgMTE2QiAxMUE5O0I4OTY7MTEwNSAxMTZCIDExQTk7CitCODk3O0I4OTc7MTEwNSAxMTZCIDExQUE7Qjg5NzsxMTA1IDExNkIgMTFBQTsKK0I4OTg7Qjg5ODsxMTA1IDExNkIgMTFBQjtCODk4OzExMDUgMTE2QiAxMUFCOworQjg5OTtCODk5OzExMDUgMTE2QiAxMUFDO0I4OTk7MTEwNSAxMTZCIDExQUM7CitCODlBO0I4OUE7MTEwNSAxMTZCIDExQUQ7Qjg5QTsxMTA1IDExNkIgMTFBRDsKK0I4OUI7Qjg5QjsxMTA1IDExNkIgMTFBRTtCODlCOzExMDUgMTE2QiAxMUFFOworQjg5QztCODlDOzExMDUgMTE2QiAxMUFGO0I4OUM7MTEwNSAxMTZCIDExQUY7CitCODlEO0I4OUQ7MTEwNSAxMTZCIDExQjA7Qjg5RDsxMTA1IDExNkIgMTFCMDsKK0I4OUU7Qjg5RTsxMTA1IDExNkIgMTFCMTtCODlFOzExMDUgMTE2QiAxMUIxOworQjg5RjtCODlGOzExMDUgMTE2QiAxMUIyO0I4OUY7MTEwNSAxMTZCIDExQjI7CitCOEEwO0I4QTA7MTEwNSAxMTZCIDExQjM7QjhBMDsxMTA1IDExNkIgMTFCMzsKK0I4QTE7QjhBMTsxMTA1IDExNkIgMTFCNDtCOEExOzExMDUgMTE2QiAxMUI0OworQjhBMjtCOEEyOzExMDUgMTE2QiAxMUI1O0I4QTI7MTEwNSAxMTZCIDExQjU7CitCOEEzO0I4QTM7MTEwNSAxMTZCIDExQjY7QjhBMzsxMTA1IDExNkIgMTFCNjsKK0I4QTQ7QjhBNDsxMTA1IDExNkIgMTFCNztCOEE0OzExMDUgMTE2QiAxMUI3OworQjhBNTtCOEE1OzExMDUgMTE2QiAxMUI4O0I4QTU7MTEwNSAxMTZCIDExQjg7CitCOEE2O0I4QTY7MTEwNSAxMTZCIDExQjk7QjhBNjsxMTA1IDExNkIgMTFCOTsKK0I4QTc7QjhBNzsxMTA1IDExNkIgMTFCQTtCOEE3OzExMDUgMTE2QiAxMUJBOworQjhBODtCOEE4OzExMDUgMTE2QiAxMUJCO0I4QTg7MTEwNSAxMTZCIDExQkI7CitCOEE5O0I4QTk7MTEwNSAxMTZCIDExQkM7QjhBOTsxMTA1IDExNkIgMTFCQzsKK0I4QUE7QjhBQTsxMTA1IDExNkIgMTFCRDtCOEFBOzExMDUgMTE2QiAxMUJEOworQjhBQjtCOEFCOzExMDUgMTE2QiAxMUJFO0I4QUI7MTEwNSAxMTZCIDExQkU7CitCOEFDO0I4QUM7MTEwNSAxMTZCIDExQkY7QjhBQzsxMTA1IDExNkIgMTFCRjsKK0I4QUQ7QjhBRDsxMTA1IDExNkIgMTFDMDtCOEFEOzExMDUgMTE2QiAxMUMwOworQjhBRTtCOEFFOzExMDUgMTE2QiAxMUMxO0I4QUU7MTEwNSAxMTZCIDExQzE7CitCOEFGO0I4QUY7MTEwNSAxMTZCIDExQzI7QjhBRjsxMTA1IDExNkIgMTFDMjsKK0I4QjA7QjhCMDsxMTA1IDExNkM7QjhCMDsxMTA1IDExNkM7CitCOEIxO0I4QjE7MTEwNSAxMTZDIDExQTg7QjhCMTsxMTA1IDExNkMgMTFBODsKK0I4QjI7QjhCMjsxMTA1IDExNkMgMTFBOTtCOEIyOzExMDUgMTE2QyAxMUE5OworQjhCMztCOEIzOzExMDUgMTE2QyAxMUFBO0I4QjM7MTEwNSAxMTZDIDExQUE7CitCOEI0O0I4QjQ7MTEwNSAxMTZDIDExQUI7QjhCNDsxMTA1IDExNkMgMTFBQjsKK0I4QjU7QjhCNTsxMTA1IDExNkMgMTFBQztCOEI1OzExMDUgMTE2QyAxMUFDOworQjhCNjtCOEI2OzExMDUgMTE2QyAxMUFEO0I4QjY7MTEwNSAxMTZDIDExQUQ7CitCOEI3O0I4Qjc7MTEwNSAxMTZDIDExQUU7QjhCNzsxMTA1IDExNkMgMTFBRTsKK0I4Qjg7QjhCODsxMTA1IDExNkMgMTFBRjtCOEI4OzExMDUgMTE2QyAxMUFGOworQjhCOTtCOEI5OzExMDUgMTE2QyAxMUIwO0I4Qjk7MTEwNSAxMTZDIDExQjA7CitCOEJBO0I4QkE7MTEwNSAxMTZDIDExQjE7QjhCQTsxMTA1IDExNkMgMTFCMTsKK0I4QkI7QjhCQjsxMTA1IDExNkMgMTFCMjtCOEJCOzExMDUgMTE2QyAxMUIyOworQjhCQztCOEJDOzExMDUgMTE2QyAxMUIzO0I4QkM7MTEwNSAxMTZDIDExQjM7CitCOEJEO0I4QkQ7MTEwNSAxMTZDIDExQjQ7QjhCRDsxMTA1IDExNkMgMTFCNDsKK0I4QkU7QjhCRTsxMTA1IDExNkMgMTFCNTtCOEJFOzExMDUgMTE2QyAxMUI1OworQjhCRjtCOEJGOzExMDUgMTE2QyAxMUI2O0I4QkY7MTEwNSAxMTZDIDExQjY7CitCOEMwO0I4QzA7MTEwNSAxMTZDIDExQjc7QjhDMDsxMTA1IDExNkMgMTFCNzsKK0I4QzE7QjhDMTsxMTA1IDExNkMgMTFCODtCOEMxOzExMDUgMTE2QyAxMUI4OworQjhDMjtCOEMyOzExMDUgMTE2QyAxMUI5O0I4QzI7MTEwNSAxMTZDIDExQjk7CitCOEMzO0I4QzM7MTEwNSAxMTZDIDExQkE7QjhDMzsxMTA1IDExNkMgMTFCQTsKK0I4QzQ7QjhDNDsxMTA1IDExNkMgMTFCQjtCOEM0OzExMDUgMTE2QyAxMUJCOworQjhDNTtCOEM1OzExMDUgMTE2QyAxMUJDO0I4QzU7MTEwNSAxMTZDIDExQkM7CitCOEM2O0I4QzY7MTEwNSAxMTZDIDExQkQ7QjhDNjsxMTA1IDExNkMgMTFCRDsKK0I4Qzc7QjhDNzsxMTA1IDExNkMgMTFCRTtCOEM3OzExMDUgMTE2QyAxMUJFOworQjhDODtCOEM4OzExMDUgMTE2QyAxMUJGO0I4Qzg7MTEwNSAxMTZDIDExQkY7CitCOEM5O0I4Qzk7MTEwNSAxMTZDIDExQzA7QjhDOTsxMTA1IDExNkMgMTFDMDsKK0I4Q0E7QjhDQTsxMTA1IDExNkMgMTFDMTtCOENBOzExMDUgMTE2QyAxMUMxOworQjhDQjtCOENCOzExMDUgMTE2QyAxMUMyO0I4Q0I7MTEwNSAxMTZDIDExQzI7CitCOENDO0I4Q0M7MTEwNSAxMTZEO0I4Q0M7MTEwNSAxMTZEOworQjhDRDtCOENEOzExMDUgMTE2RCAxMUE4O0I4Q0Q7MTEwNSAxMTZEIDExQTg7CitCOENFO0I4Q0U7MTEwNSAxMTZEIDExQTk7QjhDRTsxMTA1IDExNkQgMTFBOTsKK0I4Q0Y7QjhDRjsxMTA1IDExNkQgMTFBQTtCOENGOzExMDUgMTE2RCAxMUFBOworQjhEMDtCOEQwOzExMDUgMTE2RCAxMUFCO0I4RDA7MTEwNSAxMTZEIDExQUI7CitCOEQxO0I4RDE7MTEwNSAxMTZEIDExQUM7QjhEMTsxMTA1IDExNkQgMTFBQzsKK0I4RDI7QjhEMjsxMTA1IDExNkQgMTFBRDtCOEQyOzExMDUgMTE2RCAxMUFEOworQjhEMztCOEQzOzExMDUgMTE2RCAxMUFFO0I4RDM7MTEwNSAxMTZEIDExQUU7CitCOEQ0O0I4RDQ7MTEwNSAxMTZEIDExQUY7QjhENDsxMTA1IDExNkQgMTFBRjsKK0I4RDU7QjhENTsxMTA1IDExNkQgMTFCMDtCOEQ1OzExMDUgMTE2RCAxMUIwOworQjhENjtCOEQ2OzExMDUgMTE2RCAxMUIxO0I4RDY7MTEwNSAxMTZEIDExQjE7CitCOEQ3O0I4RDc7MTEwNSAxMTZEIDExQjI7QjhENzsxMTA1IDExNkQgMTFCMjsKK0I4RDg7QjhEODsxMTA1IDExNkQgMTFCMztCOEQ4OzExMDUgMTE2RCAxMUIzOworQjhEOTtCOEQ5OzExMDUgMTE2RCAxMUI0O0I4RDk7MTEwNSAxMTZEIDExQjQ7CitCOERBO0I4REE7MTEwNSAxMTZEIDExQjU7QjhEQTsxMTA1IDExNkQgMTFCNTsKK0I4REI7QjhEQjsxMTA1IDExNkQgMTFCNjtCOERCOzExMDUgMTE2RCAxMUI2OworQjhEQztCOERDOzExMDUgMTE2RCAxMUI3O0I4REM7MTEwNSAxMTZEIDExQjc7CitCOEREO0I4REQ7MTEwNSAxMTZEIDExQjg7QjhERDsxMTA1IDExNkQgMTFCODsKK0I4REU7QjhERTsxMTA1IDExNkQgMTFCOTtCOERFOzExMDUgMTE2RCAxMUI5OworQjhERjtCOERGOzExMDUgMTE2RCAxMUJBO0I4REY7MTEwNSAxMTZEIDExQkE7CitCOEUwO0I4RTA7MTEwNSAxMTZEIDExQkI7QjhFMDsxMTA1IDExNkQgMTFCQjsKK0I4RTE7QjhFMTsxMTA1IDExNkQgMTFCQztCOEUxOzExMDUgMTE2RCAxMUJDOworQjhFMjtCOEUyOzExMDUgMTE2RCAxMUJEO0I4RTI7MTEwNSAxMTZEIDExQkQ7CitCOEUzO0I4RTM7MTEwNSAxMTZEIDExQkU7QjhFMzsxMTA1IDExNkQgMTFCRTsKK0I4RTQ7QjhFNDsxMTA1IDExNkQgMTFCRjtCOEU0OzExMDUgMTE2RCAxMUJGOworQjhFNTtCOEU1OzExMDUgMTE2RCAxMUMwO0I4RTU7MTEwNSAxMTZEIDExQzA7CitCOEU2O0I4RTY7MTEwNSAxMTZEIDExQzE7QjhFNjsxMTA1IDExNkQgMTFDMTsKK0I4RTc7QjhFNzsxMTA1IDExNkQgMTFDMjtCOEU3OzExMDUgMTE2RCAxMUMyOworQjhFODtCOEU4OzExMDUgMTE2RTtCOEU4OzExMDUgMTE2RTsKK0I4RTk7QjhFOTsxMTA1IDExNkUgMTFBODtCOEU5OzExMDUgMTE2RSAxMUE4OworQjhFQTtCOEVBOzExMDUgMTE2RSAxMUE5O0I4RUE7MTEwNSAxMTZFIDExQTk7CitCOEVCO0I4RUI7MTEwNSAxMTZFIDExQUE7QjhFQjsxMTA1IDExNkUgMTFBQTsKK0I4RUM7QjhFQzsxMTA1IDExNkUgMTFBQjtCOEVDOzExMDUgMTE2RSAxMUFCOworQjhFRDtCOEVEOzExMDUgMTE2RSAxMUFDO0I4RUQ7MTEwNSAxMTZFIDExQUM7CitCOEVFO0I4RUU7MTEwNSAxMTZFIDExQUQ7QjhFRTsxMTA1IDExNkUgMTFBRDsKK0I4RUY7QjhFRjsxMTA1IDExNkUgMTFBRTtCOEVGOzExMDUgMTE2RSAxMUFFOworQjhGMDtCOEYwOzExMDUgMTE2RSAxMUFGO0I4RjA7MTEwNSAxMTZFIDExQUY7CitCOEYxO0I4RjE7MTEwNSAxMTZFIDExQjA7QjhGMTsxMTA1IDExNkUgMTFCMDsKK0I4RjI7QjhGMjsxMTA1IDExNkUgMTFCMTtCOEYyOzExMDUgMTE2RSAxMUIxOworQjhGMztCOEYzOzExMDUgMTE2RSAxMUIyO0I4RjM7MTEwNSAxMTZFIDExQjI7CitCOEY0O0I4RjQ7MTEwNSAxMTZFIDExQjM7QjhGNDsxMTA1IDExNkUgMTFCMzsKK0I4RjU7QjhGNTsxMTA1IDExNkUgMTFCNDtCOEY1OzExMDUgMTE2RSAxMUI0OworQjhGNjtCOEY2OzExMDUgMTE2RSAxMUI1O0I4RjY7MTEwNSAxMTZFIDExQjU7CitCOEY3O0I4Rjc7MTEwNSAxMTZFIDExQjY7QjhGNzsxMTA1IDExNkUgMTFCNjsKK0I4Rjg7QjhGODsxMTA1IDExNkUgMTFCNztCOEY4OzExMDUgMTE2RSAxMUI3OworQjhGOTtCOEY5OzExMDUgMTE2RSAxMUI4O0I4Rjk7MTEwNSAxMTZFIDExQjg7CitCOEZBO0I4RkE7MTEwNSAxMTZFIDExQjk7QjhGQTsxMTA1IDExNkUgMTFCOTsKK0I4RkI7QjhGQjsxMTA1IDExNkUgMTFCQTtCOEZCOzExMDUgMTE2RSAxMUJBOworQjhGQztCOEZDOzExMDUgMTE2RSAxMUJCO0I4RkM7MTEwNSAxMTZFIDExQkI7CitCOEZEO0I4RkQ7MTEwNSAxMTZFIDExQkM7QjhGRDsxMTA1IDExNkUgMTFCQzsKK0I4RkU7QjhGRTsxMTA1IDExNkUgMTFCRDtCOEZFOzExMDUgMTE2RSAxMUJEOworQjhGRjtCOEZGOzExMDUgMTE2RSAxMUJFO0I4RkY7MTEwNSAxMTZFIDExQkU7CitCOTAwO0I5MDA7MTEwNSAxMTZFIDExQkY7QjkwMDsxMTA1IDExNkUgMTFCRjsKK0I5MDE7QjkwMTsxMTA1IDExNkUgMTFDMDtCOTAxOzExMDUgMTE2RSAxMUMwOworQjkwMjtCOTAyOzExMDUgMTE2RSAxMUMxO0I5MDI7MTEwNSAxMTZFIDExQzE7CitCOTAzO0I5MDM7MTEwNSAxMTZFIDExQzI7QjkwMzsxMTA1IDExNkUgMTFDMjsKK0I5MDQ7QjkwNDsxMTA1IDExNkY7QjkwNDsxMTA1IDExNkY7CitCOTA1O0I5MDU7MTEwNSAxMTZGIDExQTg7QjkwNTsxMTA1IDExNkYgMTFBODsKK0I5MDY7QjkwNjsxMTA1IDExNkYgMTFBOTtCOTA2OzExMDUgMTE2RiAxMUE5OworQjkwNztCOTA3OzExMDUgMTE2RiAxMUFBO0I5MDc7MTEwNSAxMTZGIDExQUE7CitCOTA4O0I5MDg7MTEwNSAxMTZGIDExQUI7QjkwODsxMTA1IDExNkYgMTFBQjsKK0I5MDk7QjkwOTsxMTA1IDExNkYgMTFBQztCOTA5OzExMDUgMTE2RiAxMUFDOworQjkwQTtCOTBBOzExMDUgMTE2RiAxMUFEO0I5MEE7MTEwNSAxMTZGIDExQUQ7CitCOTBCO0I5MEI7MTEwNSAxMTZGIDExQUU7QjkwQjsxMTA1IDExNkYgMTFBRTsKK0I5MEM7QjkwQzsxMTA1IDExNkYgMTFBRjtCOTBDOzExMDUgMTE2RiAxMUFGOworQjkwRDtCOTBEOzExMDUgMTE2RiAxMUIwO0I5MEQ7MTEwNSAxMTZGIDExQjA7CitCOTBFO0I5MEU7MTEwNSAxMTZGIDExQjE7QjkwRTsxMTA1IDExNkYgMTFCMTsKK0I5MEY7QjkwRjsxMTA1IDExNkYgMTFCMjtCOTBGOzExMDUgMTE2RiAxMUIyOworQjkxMDtCOTEwOzExMDUgMTE2RiAxMUIzO0I5MTA7MTEwNSAxMTZGIDExQjM7CitCOTExO0I5MTE7MTEwNSAxMTZGIDExQjQ7QjkxMTsxMTA1IDExNkYgMTFCNDsKK0I5MTI7QjkxMjsxMTA1IDExNkYgMTFCNTtCOTEyOzExMDUgMTE2RiAxMUI1OworQjkxMztCOTEzOzExMDUgMTE2RiAxMUI2O0I5MTM7MTEwNSAxMTZGIDExQjY7CitCOTE0O0I5MTQ7MTEwNSAxMTZGIDExQjc7QjkxNDsxMTA1IDExNkYgMTFCNzsKK0I5MTU7QjkxNTsxMTA1IDExNkYgMTFCODtCOTE1OzExMDUgMTE2RiAxMUI4OworQjkxNjtCOTE2OzExMDUgMTE2RiAxMUI5O0I5MTY7MTEwNSAxMTZGIDExQjk7CitCOTE3O0I5MTc7MTEwNSAxMTZGIDExQkE7QjkxNzsxMTA1IDExNkYgMTFCQTsKK0I5MTg7QjkxODsxMTA1IDExNkYgMTFCQjtCOTE4OzExMDUgMTE2RiAxMUJCOworQjkxOTtCOTE5OzExMDUgMTE2RiAxMUJDO0I5MTk7MTEwNSAxMTZGIDExQkM7CitCOTFBO0I5MUE7MTEwNSAxMTZGIDExQkQ7QjkxQTsxMTA1IDExNkYgMTFCRDsKK0I5MUI7QjkxQjsxMTA1IDExNkYgMTFCRTtCOTFCOzExMDUgMTE2RiAxMUJFOworQjkxQztCOTFDOzExMDUgMTE2RiAxMUJGO0I5MUM7MTEwNSAxMTZGIDExQkY7CitCOTFEO0I5MUQ7MTEwNSAxMTZGIDExQzA7QjkxRDsxMTA1IDExNkYgMTFDMDsKK0I5MUU7QjkxRTsxMTA1IDExNkYgMTFDMTtCOTFFOzExMDUgMTE2RiAxMUMxOworQjkxRjtCOTFGOzExMDUgMTE2RiAxMUMyO0I5MUY7MTEwNSAxMTZGIDExQzI7CitCOTIwO0I5MjA7MTEwNSAxMTcwO0I5MjA7MTEwNSAxMTcwOworQjkyMTtCOTIxOzExMDUgMTE3MCAxMUE4O0I5MjE7MTEwNSAxMTcwIDExQTg7CitCOTIyO0I5MjI7MTEwNSAxMTcwIDExQTk7QjkyMjsxMTA1IDExNzAgMTFBOTsKK0I5MjM7QjkyMzsxMTA1IDExNzAgMTFBQTtCOTIzOzExMDUgMTE3MCAxMUFBOworQjkyNDtCOTI0OzExMDUgMTE3MCAxMUFCO0I5MjQ7MTEwNSAxMTcwIDExQUI7CitCOTI1O0I5MjU7MTEwNSAxMTcwIDExQUM7QjkyNTsxMTA1IDExNzAgMTFBQzsKK0I5MjY7QjkyNjsxMTA1IDExNzAgMTFBRDtCOTI2OzExMDUgMTE3MCAxMUFEOworQjkyNztCOTI3OzExMDUgMTE3MCAxMUFFO0I5Mjc7MTEwNSAxMTcwIDExQUU7CitCOTI4O0I5Mjg7MTEwNSAxMTcwIDExQUY7QjkyODsxMTA1IDExNzAgMTFBRjsKK0I5Mjk7QjkyOTsxMTA1IDExNzAgMTFCMDtCOTI5OzExMDUgMTE3MCAxMUIwOworQjkyQTtCOTJBOzExMDUgMTE3MCAxMUIxO0I5MkE7MTEwNSAxMTcwIDExQjE7CitCOTJCO0I5MkI7MTEwNSAxMTcwIDExQjI7QjkyQjsxMTA1IDExNzAgMTFCMjsKK0I5MkM7QjkyQzsxMTA1IDExNzAgMTFCMztCOTJDOzExMDUgMTE3MCAxMUIzOworQjkyRDtCOTJEOzExMDUgMTE3MCAxMUI0O0I5MkQ7MTEwNSAxMTcwIDExQjQ7CitCOTJFO0I5MkU7MTEwNSAxMTcwIDExQjU7QjkyRTsxMTA1IDExNzAgMTFCNTsKK0I5MkY7QjkyRjsxMTA1IDExNzAgMTFCNjtCOTJGOzExMDUgMTE3MCAxMUI2OworQjkzMDtCOTMwOzExMDUgMTE3MCAxMUI3O0I5MzA7MTEwNSAxMTcwIDExQjc7CitCOTMxO0I5MzE7MTEwNSAxMTcwIDExQjg7QjkzMTsxMTA1IDExNzAgMTFCODsKK0I5MzI7QjkzMjsxMTA1IDExNzAgMTFCOTtCOTMyOzExMDUgMTE3MCAxMUI5OworQjkzMztCOTMzOzExMDUgMTE3MCAxMUJBO0I5MzM7MTEwNSAxMTcwIDExQkE7CitCOTM0O0I5MzQ7MTEwNSAxMTcwIDExQkI7QjkzNDsxMTA1IDExNzAgMTFCQjsKK0I5MzU7QjkzNTsxMTA1IDExNzAgMTFCQztCOTM1OzExMDUgMTE3MCAxMUJDOworQjkzNjtCOTM2OzExMDUgMTE3MCAxMUJEO0I5MzY7MTEwNSAxMTcwIDExQkQ7CitCOTM3O0I5Mzc7MTEwNSAxMTcwIDExQkU7QjkzNzsxMTA1IDExNzAgMTFCRTsKK0I5Mzg7QjkzODsxMTA1IDExNzAgMTFCRjtCOTM4OzExMDUgMTE3MCAxMUJGOworQjkzOTtCOTM5OzExMDUgMTE3MCAxMUMwO0I5Mzk7MTEwNSAxMTcwIDExQzA7CitCOTNBO0I5M0E7MTEwNSAxMTcwIDExQzE7QjkzQTsxMTA1IDExNzAgMTFDMTsKK0I5M0I7QjkzQjsxMTA1IDExNzAgMTFDMjtCOTNCOzExMDUgMTE3MCAxMUMyOworQjkzQztCOTNDOzExMDUgMTE3MTtCOTNDOzExMDUgMTE3MTsKK0I5M0Q7QjkzRDsxMTA1IDExNzEgMTFBODtCOTNEOzExMDUgMTE3MSAxMUE4OworQjkzRTtCOTNFOzExMDUgMTE3MSAxMUE5O0I5M0U7MTEwNSAxMTcxIDExQTk7CitCOTNGO0I5M0Y7MTEwNSAxMTcxIDExQUE7QjkzRjsxMTA1IDExNzEgMTFBQTsKK0I5NDA7Qjk0MDsxMTA1IDExNzEgMTFBQjtCOTQwOzExMDUgMTE3MSAxMUFCOworQjk0MTtCOTQxOzExMDUgMTE3MSAxMUFDO0I5NDE7MTEwNSAxMTcxIDExQUM7CitCOTQyO0I5NDI7MTEwNSAxMTcxIDExQUQ7Qjk0MjsxMTA1IDExNzEgMTFBRDsKK0I5NDM7Qjk0MzsxMTA1IDExNzEgMTFBRTtCOTQzOzExMDUgMTE3MSAxMUFFOworQjk0NDtCOTQ0OzExMDUgMTE3MSAxMUFGO0I5NDQ7MTEwNSAxMTcxIDExQUY7CitCOTQ1O0I5NDU7MTEwNSAxMTcxIDExQjA7Qjk0NTsxMTA1IDExNzEgMTFCMDsKK0I5NDY7Qjk0NjsxMTA1IDExNzEgMTFCMTtCOTQ2OzExMDUgMTE3MSAxMUIxOworQjk0NztCOTQ3OzExMDUgMTE3MSAxMUIyO0I5NDc7MTEwNSAxMTcxIDExQjI7CitCOTQ4O0I5NDg7MTEwNSAxMTcxIDExQjM7Qjk0ODsxMTA1IDExNzEgMTFCMzsKK0I5NDk7Qjk0OTsxMTA1IDExNzEgMTFCNDtCOTQ5OzExMDUgMTE3MSAxMUI0OworQjk0QTtCOTRBOzExMDUgMTE3MSAxMUI1O0I5NEE7MTEwNSAxMTcxIDExQjU7CitCOTRCO0I5NEI7MTEwNSAxMTcxIDExQjY7Qjk0QjsxMTA1IDExNzEgMTFCNjsKK0I5NEM7Qjk0QzsxMTA1IDExNzEgMTFCNztCOTRDOzExMDUgMTE3MSAxMUI3OworQjk0RDtCOTREOzExMDUgMTE3MSAxMUI4O0I5NEQ7MTEwNSAxMTcxIDExQjg7CitCOTRFO0I5NEU7MTEwNSAxMTcxIDExQjk7Qjk0RTsxMTA1IDExNzEgMTFCOTsKK0I5NEY7Qjk0RjsxMTA1IDExNzEgMTFCQTtCOTRGOzExMDUgMTE3MSAxMUJBOworQjk1MDtCOTUwOzExMDUgMTE3MSAxMUJCO0I5NTA7MTEwNSAxMTcxIDExQkI7CitCOTUxO0I5NTE7MTEwNSAxMTcxIDExQkM7Qjk1MTsxMTA1IDExNzEgMTFCQzsKK0I5NTI7Qjk1MjsxMTA1IDExNzEgMTFCRDtCOTUyOzExMDUgMTE3MSAxMUJEOworQjk1MztCOTUzOzExMDUgMTE3MSAxMUJFO0I5NTM7MTEwNSAxMTcxIDExQkU7CitCOTU0O0I5NTQ7MTEwNSAxMTcxIDExQkY7Qjk1NDsxMTA1IDExNzEgMTFCRjsKK0I5NTU7Qjk1NTsxMTA1IDExNzEgMTFDMDtCOTU1OzExMDUgMTE3MSAxMUMwOworQjk1NjtCOTU2OzExMDUgMTE3MSAxMUMxO0I5NTY7MTEwNSAxMTcxIDExQzE7CitCOTU3O0I5NTc7MTEwNSAxMTcxIDExQzI7Qjk1NzsxMTA1IDExNzEgMTFDMjsKK0I5NTg7Qjk1ODsxMTA1IDExNzI7Qjk1ODsxMTA1IDExNzI7CitCOTU5O0I5NTk7MTEwNSAxMTcyIDExQTg7Qjk1OTsxMTA1IDExNzIgMTFBODsKK0I5NUE7Qjk1QTsxMTA1IDExNzIgMTFBOTtCOTVBOzExMDUgMTE3MiAxMUE5OworQjk1QjtCOTVCOzExMDUgMTE3MiAxMUFBO0I5NUI7MTEwNSAxMTcyIDExQUE7CitCOTVDO0I5NUM7MTEwNSAxMTcyIDExQUI7Qjk1QzsxMTA1IDExNzIgMTFBQjsKK0I5NUQ7Qjk1RDsxMTA1IDExNzIgMTFBQztCOTVEOzExMDUgMTE3MiAxMUFDOworQjk1RTtCOTVFOzExMDUgMTE3MiAxMUFEO0I5NUU7MTEwNSAxMTcyIDExQUQ7CitCOTVGO0I5NUY7MTEwNSAxMTcyIDExQUU7Qjk1RjsxMTA1IDExNzIgMTFBRTsKK0I5NjA7Qjk2MDsxMTA1IDExNzIgMTFBRjtCOTYwOzExMDUgMTE3MiAxMUFGOworQjk2MTtCOTYxOzExMDUgMTE3MiAxMUIwO0I5NjE7MTEwNSAxMTcyIDExQjA7CitCOTYyO0I5NjI7MTEwNSAxMTcyIDExQjE7Qjk2MjsxMTA1IDExNzIgMTFCMTsKK0I5NjM7Qjk2MzsxMTA1IDExNzIgMTFCMjtCOTYzOzExMDUgMTE3MiAxMUIyOworQjk2NDtCOTY0OzExMDUgMTE3MiAxMUIzO0I5NjQ7MTEwNSAxMTcyIDExQjM7CitCOTY1O0I5NjU7MTEwNSAxMTcyIDExQjQ7Qjk2NTsxMTA1IDExNzIgMTFCNDsKK0I5NjY7Qjk2NjsxMTA1IDExNzIgMTFCNTtCOTY2OzExMDUgMTE3MiAxMUI1OworQjk2NztCOTY3OzExMDUgMTE3MiAxMUI2O0I5Njc7MTEwNSAxMTcyIDExQjY7CitCOTY4O0I5Njg7MTEwNSAxMTcyIDExQjc7Qjk2ODsxMTA1IDExNzIgMTFCNzsKK0I5Njk7Qjk2OTsxMTA1IDExNzIgMTFCODtCOTY5OzExMDUgMTE3MiAxMUI4OworQjk2QTtCOTZBOzExMDUgMTE3MiAxMUI5O0I5NkE7MTEwNSAxMTcyIDExQjk7CitCOTZCO0I5NkI7MTEwNSAxMTcyIDExQkE7Qjk2QjsxMTA1IDExNzIgMTFCQTsKK0I5NkM7Qjk2QzsxMTA1IDExNzIgMTFCQjtCOTZDOzExMDUgMTE3MiAxMUJCOworQjk2RDtCOTZEOzExMDUgMTE3MiAxMUJDO0I5NkQ7MTEwNSAxMTcyIDExQkM7CitCOTZFO0I5NkU7MTEwNSAxMTcyIDExQkQ7Qjk2RTsxMTA1IDExNzIgMTFCRDsKK0I5NkY7Qjk2RjsxMTA1IDExNzIgMTFCRTtCOTZGOzExMDUgMTE3MiAxMUJFOworQjk3MDtCOTcwOzExMDUgMTE3MiAxMUJGO0I5NzA7MTEwNSAxMTcyIDExQkY7CitCOTcxO0I5NzE7MTEwNSAxMTcyIDExQzA7Qjk3MTsxMTA1IDExNzIgMTFDMDsKK0I5NzI7Qjk3MjsxMTA1IDExNzIgMTFDMTtCOTcyOzExMDUgMTE3MiAxMUMxOworQjk3MztCOTczOzExMDUgMTE3MiAxMUMyO0I5NzM7MTEwNSAxMTcyIDExQzI7CitCOTc0O0I5NzQ7MTEwNSAxMTczO0I5NzQ7MTEwNSAxMTczOworQjk3NTtCOTc1OzExMDUgMTE3MyAxMUE4O0I5NzU7MTEwNSAxMTczIDExQTg7CitCOTc2O0I5NzY7MTEwNSAxMTczIDExQTk7Qjk3NjsxMTA1IDExNzMgMTFBOTsKK0I5Nzc7Qjk3NzsxMTA1IDExNzMgMTFBQTtCOTc3OzExMDUgMTE3MyAxMUFBOworQjk3ODtCOTc4OzExMDUgMTE3MyAxMUFCO0I5Nzg7MTEwNSAxMTczIDExQUI7CitCOTc5O0I5Nzk7MTEwNSAxMTczIDExQUM7Qjk3OTsxMTA1IDExNzMgMTFBQzsKK0I5N0E7Qjk3QTsxMTA1IDExNzMgMTFBRDtCOTdBOzExMDUgMTE3MyAxMUFEOworQjk3QjtCOTdCOzExMDUgMTE3MyAxMUFFO0I5N0I7MTEwNSAxMTczIDExQUU7CitCOTdDO0I5N0M7MTEwNSAxMTczIDExQUY7Qjk3QzsxMTA1IDExNzMgMTFBRjsKK0I5N0Q7Qjk3RDsxMTA1IDExNzMgMTFCMDtCOTdEOzExMDUgMTE3MyAxMUIwOworQjk3RTtCOTdFOzExMDUgMTE3MyAxMUIxO0I5N0U7MTEwNSAxMTczIDExQjE7CitCOTdGO0I5N0Y7MTEwNSAxMTczIDExQjI7Qjk3RjsxMTA1IDExNzMgMTFCMjsKK0I5ODA7Qjk4MDsxMTA1IDExNzMgMTFCMztCOTgwOzExMDUgMTE3MyAxMUIzOworQjk4MTtCOTgxOzExMDUgMTE3MyAxMUI0O0I5ODE7MTEwNSAxMTczIDExQjQ7CitCOTgyO0I5ODI7MTEwNSAxMTczIDExQjU7Qjk4MjsxMTA1IDExNzMgMTFCNTsKK0I5ODM7Qjk4MzsxMTA1IDExNzMgMTFCNjtCOTgzOzExMDUgMTE3MyAxMUI2OworQjk4NDtCOTg0OzExMDUgMTE3MyAxMUI3O0I5ODQ7MTEwNSAxMTczIDExQjc7CitCOTg1O0I5ODU7MTEwNSAxMTczIDExQjg7Qjk4NTsxMTA1IDExNzMgMTFCODsKK0I5ODY7Qjk4NjsxMTA1IDExNzMgMTFCOTtCOTg2OzExMDUgMTE3MyAxMUI5OworQjk4NztCOTg3OzExMDUgMTE3MyAxMUJBO0I5ODc7MTEwNSAxMTczIDExQkE7CitCOTg4O0I5ODg7MTEwNSAxMTczIDExQkI7Qjk4ODsxMTA1IDExNzMgMTFCQjsKK0I5ODk7Qjk4OTsxMTA1IDExNzMgMTFCQztCOTg5OzExMDUgMTE3MyAxMUJDOworQjk4QTtCOThBOzExMDUgMTE3MyAxMUJEO0I5OEE7MTEwNSAxMTczIDExQkQ7CitCOThCO0I5OEI7MTEwNSAxMTczIDExQkU7Qjk4QjsxMTA1IDExNzMgMTFCRTsKK0I5OEM7Qjk4QzsxMTA1IDExNzMgMTFCRjtCOThDOzExMDUgMTE3MyAxMUJGOworQjk4RDtCOThEOzExMDUgMTE3MyAxMUMwO0I5OEQ7MTEwNSAxMTczIDExQzA7CitCOThFO0I5OEU7MTEwNSAxMTczIDExQzE7Qjk4RTsxMTA1IDExNzMgMTFDMTsKK0I5OEY7Qjk4RjsxMTA1IDExNzMgMTFDMjtCOThGOzExMDUgMTE3MyAxMUMyOworQjk5MDtCOTkwOzExMDUgMTE3NDtCOTkwOzExMDUgMTE3NDsKK0I5OTE7Qjk5MTsxMTA1IDExNzQgMTFBODtCOTkxOzExMDUgMTE3NCAxMUE4OworQjk5MjtCOTkyOzExMDUgMTE3NCAxMUE5O0I5OTI7MTEwNSAxMTc0IDExQTk7CitCOTkzO0I5OTM7MTEwNSAxMTc0IDExQUE7Qjk5MzsxMTA1IDExNzQgMTFBQTsKK0I5OTQ7Qjk5NDsxMTA1IDExNzQgMTFBQjtCOTk0OzExMDUgMTE3NCAxMUFCOworQjk5NTtCOTk1OzExMDUgMTE3NCAxMUFDO0I5OTU7MTEwNSAxMTc0IDExQUM7CitCOTk2O0I5OTY7MTEwNSAxMTc0IDExQUQ7Qjk5NjsxMTA1IDExNzQgMTFBRDsKK0I5OTc7Qjk5NzsxMTA1IDExNzQgMTFBRTtCOTk3OzExMDUgMTE3NCAxMUFFOworQjk5ODtCOTk4OzExMDUgMTE3NCAxMUFGO0I5OTg7MTEwNSAxMTc0IDExQUY7CitCOTk5O0I5OTk7MTEwNSAxMTc0IDExQjA7Qjk5OTsxMTA1IDExNzQgMTFCMDsKK0I5OUE7Qjk5QTsxMTA1IDExNzQgMTFCMTtCOTlBOzExMDUgMTE3NCAxMUIxOworQjk5QjtCOTlCOzExMDUgMTE3NCAxMUIyO0I5OUI7MTEwNSAxMTc0IDExQjI7CitCOTlDO0I5OUM7MTEwNSAxMTc0IDExQjM7Qjk5QzsxMTA1IDExNzQgMTFCMzsKK0I5OUQ7Qjk5RDsxMTA1IDExNzQgMTFCNDtCOTlEOzExMDUgMTE3NCAxMUI0OworQjk5RTtCOTlFOzExMDUgMTE3NCAxMUI1O0I5OUU7MTEwNSAxMTc0IDExQjU7CitCOTlGO0I5OUY7MTEwNSAxMTc0IDExQjY7Qjk5RjsxMTA1IDExNzQgMTFCNjsKK0I5QTA7QjlBMDsxMTA1IDExNzQgMTFCNztCOUEwOzExMDUgMTE3NCAxMUI3OworQjlBMTtCOUExOzExMDUgMTE3NCAxMUI4O0I5QTE7MTEwNSAxMTc0IDExQjg7CitCOUEyO0I5QTI7MTEwNSAxMTc0IDExQjk7QjlBMjsxMTA1IDExNzQgMTFCOTsKK0I5QTM7QjlBMzsxMTA1IDExNzQgMTFCQTtCOUEzOzExMDUgMTE3NCAxMUJBOworQjlBNDtCOUE0OzExMDUgMTE3NCAxMUJCO0I5QTQ7MTEwNSAxMTc0IDExQkI7CitCOUE1O0I5QTU7MTEwNSAxMTc0IDExQkM7QjlBNTsxMTA1IDExNzQgMTFCQzsKK0I5QTY7QjlBNjsxMTA1IDExNzQgMTFCRDtCOUE2OzExMDUgMTE3NCAxMUJEOworQjlBNztCOUE3OzExMDUgMTE3NCAxMUJFO0I5QTc7MTEwNSAxMTc0IDExQkU7CitCOUE4O0I5QTg7MTEwNSAxMTc0IDExQkY7QjlBODsxMTA1IDExNzQgMTFCRjsKK0I5QTk7QjlBOTsxMTA1IDExNzQgMTFDMDtCOUE5OzExMDUgMTE3NCAxMUMwOworQjlBQTtCOUFBOzExMDUgMTE3NCAxMUMxO0I5QUE7MTEwNSAxMTc0IDExQzE7CitCOUFCO0I5QUI7MTEwNSAxMTc0IDExQzI7QjlBQjsxMTA1IDExNzQgMTFDMjsKK0I5QUM7QjlBQzsxMTA1IDExNzU7QjlBQzsxMTA1IDExNzU7CitCOUFEO0I5QUQ7MTEwNSAxMTc1IDExQTg7QjlBRDsxMTA1IDExNzUgMTFBODsKK0I5QUU7QjlBRTsxMTA1IDExNzUgMTFBOTtCOUFFOzExMDUgMTE3NSAxMUE5OworQjlBRjtCOUFGOzExMDUgMTE3NSAxMUFBO0I5QUY7MTEwNSAxMTc1IDExQUE7CitCOUIwO0I5QjA7MTEwNSAxMTc1IDExQUI7QjlCMDsxMTA1IDExNzUgMTFBQjsKK0I5QjE7QjlCMTsxMTA1IDExNzUgMTFBQztCOUIxOzExMDUgMTE3NSAxMUFDOworQjlCMjtCOUIyOzExMDUgMTE3NSAxMUFEO0I5QjI7MTEwNSAxMTc1IDExQUQ7CitCOUIzO0I5QjM7MTEwNSAxMTc1IDExQUU7QjlCMzsxMTA1IDExNzUgMTFBRTsKK0I5QjQ7QjlCNDsxMTA1IDExNzUgMTFBRjtCOUI0OzExMDUgMTE3NSAxMUFGOworQjlCNTtCOUI1OzExMDUgMTE3NSAxMUIwO0I5QjU7MTEwNSAxMTc1IDExQjA7CitCOUI2O0I5QjY7MTEwNSAxMTc1IDExQjE7QjlCNjsxMTA1IDExNzUgMTFCMTsKK0I5Qjc7QjlCNzsxMTA1IDExNzUgMTFCMjtCOUI3OzExMDUgMTE3NSAxMUIyOworQjlCODtCOUI4OzExMDUgMTE3NSAxMUIzO0I5Qjg7MTEwNSAxMTc1IDExQjM7CitCOUI5O0I5Qjk7MTEwNSAxMTc1IDExQjQ7QjlCOTsxMTA1IDExNzUgMTFCNDsKK0I5QkE7QjlCQTsxMTA1IDExNzUgMTFCNTtCOUJBOzExMDUgMTE3NSAxMUI1OworQjlCQjtCOUJCOzExMDUgMTE3NSAxMUI2O0I5QkI7MTEwNSAxMTc1IDExQjY7CitCOUJDO0I5QkM7MTEwNSAxMTc1IDExQjc7QjlCQzsxMTA1IDExNzUgMTFCNzsKK0I5QkQ7QjlCRDsxMTA1IDExNzUgMTFCODtCOUJEOzExMDUgMTE3NSAxMUI4OworQjlCRTtCOUJFOzExMDUgMTE3NSAxMUI5O0I5QkU7MTEwNSAxMTc1IDExQjk7CitCOUJGO0I5QkY7MTEwNSAxMTc1IDExQkE7QjlCRjsxMTA1IDExNzUgMTFCQTsKK0I5QzA7QjlDMDsxMTA1IDExNzUgMTFCQjtCOUMwOzExMDUgMTE3NSAxMUJCOworQjlDMTtCOUMxOzExMDUgMTE3NSAxMUJDO0I5QzE7MTEwNSAxMTc1IDExQkM7CitCOUMyO0I5QzI7MTEwNSAxMTc1IDExQkQ7QjlDMjsxMTA1IDExNzUgMTFCRDsKK0I5QzM7QjlDMzsxMTA1IDExNzUgMTFCRTtCOUMzOzExMDUgMTE3NSAxMUJFOworQjlDNDtCOUM0OzExMDUgMTE3NSAxMUJGO0I5QzQ7MTEwNSAxMTc1IDExQkY7CitCOUM1O0I5QzU7MTEwNSAxMTc1IDExQzA7QjlDNTsxMTA1IDExNzUgMTFDMDsKK0I5QzY7QjlDNjsxMTA1IDExNzUgMTFDMTtCOUM2OzExMDUgMTE3NSAxMUMxOworQjlDNztCOUM3OzExMDUgMTE3NSAxMUMyO0I5Qzc7MTEwNSAxMTc1IDExQzI7CitCOUM4O0I5Qzg7MTEwNiAxMTYxO0I5Qzg7MTEwNiAxMTYxOworQjlDOTtCOUM5OzExMDYgMTE2MSAxMUE4O0I5Qzk7MTEwNiAxMTYxIDExQTg7CitCOUNBO0I5Q0E7MTEwNiAxMTYxIDExQTk7QjlDQTsxMTA2IDExNjEgMTFBOTsKK0I5Q0I7QjlDQjsxMTA2IDExNjEgMTFBQTtCOUNCOzExMDYgMTE2MSAxMUFBOworQjlDQztCOUNDOzExMDYgMTE2MSAxMUFCO0I5Q0M7MTEwNiAxMTYxIDExQUI7CitCOUNEO0I5Q0Q7MTEwNiAxMTYxIDExQUM7QjlDRDsxMTA2IDExNjEgMTFBQzsKK0I5Q0U7QjlDRTsxMTA2IDExNjEgMTFBRDtCOUNFOzExMDYgMTE2MSAxMUFEOworQjlDRjtCOUNGOzExMDYgMTE2MSAxMUFFO0I5Q0Y7MTEwNiAxMTYxIDExQUU7CitCOUQwO0I5RDA7MTEwNiAxMTYxIDExQUY7QjlEMDsxMTA2IDExNjEgMTFBRjsKK0I5RDE7QjlEMTsxMTA2IDExNjEgMTFCMDtCOUQxOzExMDYgMTE2MSAxMUIwOworQjlEMjtCOUQyOzExMDYgMTE2MSAxMUIxO0I5RDI7MTEwNiAxMTYxIDExQjE7CitCOUQzO0I5RDM7MTEwNiAxMTYxIDExQjI7QjlEMzsxMTA2IDExNjEgMTFCMjsKK0I5RDQ7QjlENDsxMTA2IDExNjEgMTFCMztCOUQ0OzExMDYgMTE2MSAxMUIzOworQjlENTtCOUQ1OzExMDYgMTE2MSAxMUI0O0I5RDU7MTEwNiAxMTYxIDExQjQ7CitCOUQ2O0I5RDY7MTEwNiAxMTYxIDExQjU7QjlENjsxMTA2IDExNjEgMTFCNTsKK0I5RDc7QjlENzsxMTA2IDExNjEgMTFCNjtCOUQ3OzExMDYgMTE2MSAxMUI2OworQjlEODtCOUQ4OzExMDYgMTE2MSAxMUI3O0I5RDg7MTEwNiAxMTYxIDExQjc7CitCOUQ5O0I5RDk7MTEwNiAxMTYxIDExQjg7QjlEOTsxMTA2IDExNjEgMTFCODsKK0I5REE7QjlEQTsxMTA2IDExNjEgMTFCOTtCOURBOzExMDYgMTE2MSAxMUI5OworQjlEQjtCOURCOzExMDYgMTE2MSAxMUJBO0I5REI7MTEwNiAxMTYxIDExQkE7CitCOURDO0I5REM7MTEwNiAxMTYxIDExQkI7QjlEQzsxMTA2IDExNjEgMTFCQjsKK0I5REQ7QjlERDsxMTA2IDExNjEgMTFCQztCOUREOzExMDYgMTE2MSAxMUJDOworQjlERTtCOURFOzExMDYgMTE2MSAxMUJEO0I5REU7MTEwNiAxMTYxIDExQkQ7CitCOURGO0I5REY7MTEwNiAxMTYxIDExQkU7QjlERjsxMTA2IDExNjEgMTFCRTsKK0I5RTA7QjlFMDsxMTA2IDExNjEgMTFCRjtCOUUwOzExMDYgMTE2MSAxMUJGOworQjlFMTtCOUUxOzExMDYgMTE2MSAxMUMwO0I5RTE7MTEwNiAxMTYxIDExQzA7CitCOUUyO0I5RTI7MTEwNiAxMTYxIDExQzE7QjlFMjsxMTA2IDExNjEgMTFDMTsKK0I5RTM7QjlFMzsxMTA2IDExNjEgMTFDMjtCOUUzOzExMDYgMTE2MSAxMUMyOworQjlFNDtCOUU0OzExMDYgMTE2MjtCOUU0OzExMDYgMTE2MjsKK0I5RTU7QjlFNTsxMTA2IDExNjIgMTFBODtCOUU1OzExMDYgMTE2MiAxMUE4OworQjlFNjtCOUU2OzExMDYgMTE2MiAxMUE5O0I5RTY7MTEwNiAxMTYyIDExQTk7CitCOUU3O0I5RTc7MTEwNiAxMTYyIDExQUE7QjlFNzsxMTA2IDExNjIgMTFBQTsKK0I5RTg7QjlFODsxMTA2IDExNjIgMTFBQjtCOUU4OzExMDYgMTE2MiAxMUFCOworQjlFOTtCOUU5OzExMDYgMTE2MiAxMUFDO0I5RTk7MTEwNiAxMTYyIDExQUM7CitCOUVBO0I5RUE7MTEwNiAxMTYyIDExQUQ7QjlFQTsxMTA2IDExNjIgMTFBRDsKK0I5RUI7QjlFQjsxMTA2IDExNjIgMTFBRTtCOUVCOzExMDYgMTE2MiAxMUFFOworQjlFQztCOUVDOzExMDYgMTE2MiAxMUFGO0I5RUM7MTEwNiAxMTYyIDExQUY7CitCOUVEO0I5RUQ7MTEwNiAxMTYyIDExQjA7QjlFRDsxMTA2IDExNjIgMTFCMDsKK0I5RUU7QjlFRTsxMTA2IDExNjIgMTFCMTtCOUVFOzExMDYgMTE2MiAxMUIxOworQjlFRjtCOUVGOzExMDYgMTE2MiAxMUIyO0I5RUY7MTEwNiAxMTYyIDExQjI7CitCOUYwO0I5RjA7MTEwNiAxMTYyIDExQjM7QjlGMDsxMTA2IDExNjIgMTFCMzsKK0I5RjE7QjlGMTsxMTA2IDExNjIgMTFCNDtCOUYxOzExMDYgMTE2MiAxMUI0OworQjlGMjtCOUYyOzExMDYgMTE2MiAxMUI1O0I5RjI7MTEwNiAxMTYyIDExQjU7CitCOUYzO0I5RjM7MTEwNiAxMTYyIDExQjY7QjlGMzsxMTA2IDExNjIgMTFCNjsKK0I5RjQ7QjlGNDsxMTA2IDExNjIgMTFCNztCOUY0OzExMDYgMTE2MiAxMUI3OworQjlGNTtCOUY1OzExMDYgMTE2MiAxMUI4O0I5RjU7MTEwNiAxMTYyIDExQjg7CitCOUY2O0I5RjY7MTEwNiAxMTYyIDExQjk7QjlGNjsxMTA2IDExNjIgMTFCOTsKK0I5Rjc7QjlGNzsxMTA2IDExNjIgMTFCQTtCOUY3OzExMDYgMTE2MiAxMUJBOworQjlGODtCOUY4OzExMDYgMTE2MiAxMUJCO0I5Rjg7MTEwNiAxMTYyIDExQkI7CitCOUY5O0I5Rjk7MTEwNiAxMTYyIDExQkM7QjlGOTsxMTA2IDExNjIgMTFCQzsKK0I5RkE7QjlGQTsxMTA2IDExNjIgMTFCRDtCOUZBOzExMDYgMTE2MiAxMUJEOworQjlGQjtCOUZCOzExMDYgMTE2MiAxMUJFO0I5RkI7MTEwNiAxMTYyIDExQkU7CitCOUZDO0I5RkM7MTEwNiAxMTYyIDExQkY7QjlGQzsxMTA2IDExNjIgMTFCRjsKK0I5RkQ7QjlGRDsxMTA2IDExNjIgMTFDMDtCOUZEOzExMDYgMTE2MiAxMUMwOworQjlGRTtCOUZFOzExMDYgMTE2MiAxMUMxO0I5RkU7MTEwNiAxMTYyIDExQzE7CitCOUZGO0I5RkY7MTEwNiAxMTYyIDExQzI7QjlGRjsxMTA2IDExNjIgMTFDMjsKK0JBMDA7QkEwMDsxMTA2IDExNjM7QkEwMDsxMTA2IDExNjM7CitCQTAxO0JBMDE7MTEwNiAxMTYzIDExQTg7QkEwMTsxMTA2IDExNjMgMTFBODsKK0JBMDI7QkEwMjsxMTA2IDExNjMgMTFBOTtCQTAyOzExMDYgMTE2MyAxMUE5OworQkEwMztCQTAzOzExMDYgMTE2MyAxMUFBO0JBMDM7MTEwNiAxMTYzIDExQUE7CitCQTA0O0JBMDQ7MTEwNiAxMTYzIDExQUI7QkEwNDsxMTA2IDExNjMgMTFBQjsKK0JBMDU7QkEwNTsxMTA2IDExNjMgMTFBQztCQTA1OzExMDYgMTE2MyAxMUFDOworQkEwNjtCQTA2OzExMDYgMTE2MyAxMUFEO0JBMDY7MTEwNiAxMTYzIDExQUQ7CitCQTA3O0JBMDc7MTEwNiAxMTYzIDExQUU7QkEwNzsxMTA2IDExNjMgMTFBRTsKK0JBMDg7QkEwODsxMTA2IDExNjMgMTFBRjtCQTA4OzExMDYgMTE2MyAxMUFGOworQkEwOTtCQTA5OzExMDYgMTE2MyAxMUIwO0JBMDk7MTEwNiAxMTYzIDExQjA7CitCQTBBO0JBMEE7MTEwNiAxMTYzIDExQjE7QkEwQTsxMTA2IDExNjMgMTFCMTsKK0JBMEI7QkEwQjsxMTA2IDExNjMgMTFCMjtCQTBCOzExMDYgMTE2MyAxMUIyOworQkEwQztCQTBDOzExMDYgMTE2MyAxMUIzO0JBMEM7MTEwNiAxMTYzIDExQjM7CitCQTBEO0JBMEQ7MTEwNiAxMTYzIDExQjQ7QkEwRDsxMTA2IDExNjMgMTFCNDsKK0JBMEU7QkEwRTsxMTA2IDExNjMgMTFCNTtCQTBFOzExMDYgMTE2MyAxMUI1OworQkEwRjtCQTBGOzExMDYgMTE2MyAxMUI2O0JBMEY7MTEwNiAxMTYzIDExQjY7CitCQTEwO0JBMTA7MTEwNiAxMTYzIDExQjc7QkExMDsxMTA2IDExNjMgMTFCNzsKK0JBMTE7QkExMTsxMTA2IDExNjMgMTFCODtCQTExOzExMDYgMTE2MyAxMUI4OworQkExMjtCQTEyOzExMDYgMTE2MyAxMUI5O0JBMTI7MTEwNiAxMTYzIDExQjk7CitCQTEzO0JBMTM7MTEwNiAxMTYzIDExQkE7QkExMzsxMTA2IDExNjMgMTFCQTsKK0JBMTQ7QkExNDsxMTA2IDExNjMgMTFCQjtCQTE0OzExMDYgMTE2MyAxMUJCOworQkExNTtCQTE1OzExMDYgMTE2MyAxMUJDO0JBMTU7MTEwNiAxMTYzIDExQkM7CitCQTE2O0JBMTY7MTEwNiAxMTYzIDExQkQ7QkExNjsxMTA2IDExNjMgMTFCRDsKK0JBMTc7QkExNzsxMTA2IDExNjMgMTFCRTtCQTE3OzExMDYgMTE2MyAxMUJFOworQkExODtCQTE4OzExMDYgMTE2MyAxMUJGO0JBMTg7MTEwNiAxMTYzIDExQkY7CitCQTE5O0JBMTk7MTEwNiAxMTYzIDExQzA7QkExOTsxMTA2IDExNjMgMTFDMDsKK0JBMUE7QkExQTsxMTA2IDExNjMgMTFDMTtCQTFBOzExMDYgMTE2MyAxMUMxOworQkExQjtCQTFCOzExMDYgMTE2MyAxMUMyO0JBMUI7MTEwNiAxMTYzIDExQzI7CitCQTFDO0JBMUM7MTEwNiAxMTY0O0JBMUM7MTEwNiAxMTY0OworQkExRDtCQTFEOzExMDYgMTE2NCAxMUE4O0JBMUQ7MTEwNiAxMTY0IDExQTg7CitCQTFFO0JBMUU7MTEwNiAxMTY0IDExQTk7QkExRTsxMTA2IDExNjQgMTFBOTsKK0JBMUY7QkExRjsxMTA2IDExNjQgMTFBQTtCQTFGOzExMDYgMTE2NCAxMUFBOworQkEyMDtCQTIwOzExMDYgMTE2NCAxMUFCO0JBMjA7MTEwNiAxMTY0IDExQUI7CitCQTIxO0JBMjE7MTEwNiAxMTY0IDExQUM7QkEyMTsxMTA2IDExNjQgMTFBQzsKK0JBMjI7QkEyMjsxMTA2IDExNjQgMTFBRDtCQTIyOzExMDYgMTE2NCAxMUFEOworQkEyMztCQTIzOzExMDYgMTE2NCAxMUFFO0JBMjM7MTEwNiAxMTY0IDExQUU7CitCQTI0O0JBMjQ7MTEwNiAxMTY0IDExQUY7QkEyNDsxMTA2IDExNjQgMTFBRjsKK0JBMjU7QkEyNTsxMTA2IDExNjQgMTFCMDtCQTI1OzExMDYgMTE2NCAxMUIwOworQkEyNjtCQTI2OzExMDYgMTE2NCAxMUIxO0JBMjY7MTEwNiAxMTY0IDExQjE7CitCQTI3O0JBMjc7MTEwNiAxMTY0IDExQjI7QkEyNzsxMTA2IDExNjQgMTFCMjsKK0JBMjg7QkEyODsxMTA2IDExNjQgMTFCMztCQTI4OzExMDYgMTE2NCAxMUIzOworQkEyOTtCQTI5OzExMDYgMTE2NCAxMUI0O0JBMjk7MTEwNiAxMTY0IDExQjQ7CitCQTJBO0JBMkE7MTEwNiAxMTY0IDExQjU7QkEyQTsxMTA2IDExNjQgMTFCNTsKK0JBMkI7QkEyQjsxMTA2IDExNjQgMTFCNjtCQTJCOzExMDYgMTE2NCAxMUI2OworQkEyQztCQTJDOzExMDYgMTE2NCAxMUI3O0JBMkM7MTEwNiAxMTY0IDExQjc7CitCQTJEO0JBMkQ7MTEwNiAxMTY0IDExQjg7QkEyRDsxMTA2IDExNjQgMTFCODsKK0JBMkU7QkEyRTsxMTA2IDExNjQgMTFCOTtCQTJFOzExMDYgMTE2NCAxMUI5OworQkEyRjtCQTJGOzExMDYgMTE2NCAxMUJBO0JBMkY7MTEwNiAxMTY0IDExQkE7CitCQTMwO0JBMzA7MTEwNiAxMTY0IDExQkI7QkEzMDsxMTA2IDExNjQgMTFCQjsKK0JBMzE7QkEzMTsxMTA2IDExNjQgMTFCQztCQTMxOzExMDYgMTE2NCAxMUJDOworQkEzMjtCQTMyOzExMDYgMTE2NCAxMUJEO0JBMzI7MTEwNiAxMTY0IDExQkQ7CitCQTMzO0JBMzM7MTEwNiAxMTY0IDExQkU7QkEzMzsxMTA2IDExNjQgMTFCRTsKK0JBMzQ7QkEzNDsxMTA2IDExNjQgMTFCRjtCQTM0OzExMDYgMTE2NCAxMUJGOworQkEzNTtCQTM1OzExMDYgMTE2NCAxMUMwO0JBMzU7MTEwNiAxMTY0IDExQzA7CitCQTM2O0JBMzY7MTEwNiAxMTY0IDExQzE7QkEzNjsxMTA2IDExNjQgMTFDMTsKK0JBMzc7QkEzNzsxMTA2IDExNjQgMTFDMjtCQTM3OzExMDYgMTE2NCAxMUMyOworQkEzODtCQTM4OzExMDYgMTE2NTtCQTM4OzExMDYgMTE2NTsKK0JBMzk7QkEzOTsxMTA2IDExNjUgMTFBODtCQTM5OzExMDYgMTE2NSAxMUE4OworQkEzQTtCQTNBOzExMDYgMTE2NSAxMUE5O0JBM0E7MTEwNiAxMTY1IDExQTk7CitCQTNCO0JBM0I7MTEwNiAxMTY1IDExQUE7QkEzQjsxMTA2IDExNjUgMTFBQTsKK0JBM0M7QkEzQzsxMTA2IDExNjUgMTFBQjtCQTNDOzExMDYgMTE2NSAxMUFCOworQkEzRDtCQTNEOzExMDYgMTE2NSAxMUFDO0JBM0Q7MTEwNiAxMTY1IDExQUM7CitCQTNFO0JBM0U7MTEwNiAxMTY1IDExQUQ7QkEzRTsxMTA2IDExNjUgMTFBRDsKK0JBM0Y7QkEzRjsxMTA2IDExNjUgMTFBRTtCQTNGOzExMDYgMTE2NSAxMUFFOworQkE0MDtCQTQwOzExMDYgMTE2NSAxMUFGO0JBNDA7MTEwNiAxMTY1IDExQUY7CitCQTQxO0JBNDE7MTEwNiAxMTY1IDExQjA7QkE0MTsxMTA2IDExNjUgMTFCMDsKK0JBNDI7QkE0MjsxMTA2IDExNjUgMTFCMTtCQTQyOzExMDYgMTE2NSAxMUIxOworQkE0MztCQTQzOzExMDYgMTE2NSAxMUIyO0JBNDM7MTEwNiAxMTY1IDExQjI7CitCQTQ0O0JBNDQ7MTEwNiAxMTY1IDExQjM7QkE0NDsxMTA2IDExNjUgMTFCMzsKK0JBNDU7QkE0NTsxMTA2IDExNjUgMTFCNDtCQTQ1OzExMDYgMTE2NSAxMUI0OworQkE0NjtCQTQ2OzExMDYgMTE2NSAxMUI1O0JBNDY7MTEwNiAxMTY1IDExQjU7CitCQTQ3O0JBNDc7MTEwNiAxMTY1IDExQjY7QkE0NzsxMTA2IDExNjUgMTFCNjsKK0JBNDg7QkE0ODsxMTA2IDExNjUgMTFCNztCQTQ4OzExMDYgMTE2NSAxMUI3OworQkE0OTtCQTQ5OzExMDYgMTE2NSAxMUI4O0JBNDk7MTEwNiAxMTY1IDExQjg7CitCQTRBO0JBNEE7MTEwNiAxMTY1IDExQjk7QkE0QTsxMTA2IDExNjUgMTFCOTsKK0JBNEI7QkE0QjsxMTA2IDExNjUgMTFCQTtCQTRCOzExMDYgMTE2NSAxMUJBOworQkE0QztCQTRDOzExMDYgMTE2NSAxMUJCO0JBNEM7MTEwNiAxMTY1IDExQkI7CitCQTREO0JBNEQ7MTEwNiAxMTY1IDExQkM7QkE0RDsxMTA2IDExNjUgMTFCQzsKK0JBNEU7QkE0RTsxMTA2IDExNjUgMTFCRDtCQTRFOzExMDYgMTE2NSAxMUJEOworQkE0RjtCQTRGOzExMDYgMTE2NSAxMUJFO0JBNEY7MTEwNiAxMTY1IDExQkU7CitCQTUwO0JBNTA7MTEwNiAxMTY1IDExQkY7QkE1MDsxMTA2IDExNjUgMTFCRjsKK0JBNTE7QkE1MTsxMTA2IDExNjUgMTFDMDtCQTUxOzExMDYgMTE2NSAxMUMwOworQkE1MjtCQTUyOzExMDYgMTE2NSAxMUMxO0JBNTI7MTEwNiAxMTY1IDExQzE7CitCQTUzO0JBNTM7MTEwNiAxMTY1IDExQzI7QkE1MzsxMTA2IDExNjUgMTFDMjsKK0JBNTQ7QkE1NDsxMTA2IDExNjY7QkE1NDsxMTA2IDExNjY7CitCQTU1O0JBNTU7MTEwNiAxMTY2IDExQTg7QkE1NTsxMTA2IDExNjYgMTFBODsKK0JBNTY7QkE1NjsxMTA2IDExNjYgMTFBOTtCQTU2OzExMDYgMTE2NiAxMUE5OworQkE1NztCQTU3OzExMDYgMTE2NiAxMUFBO0JBNTc7MTEwNiAxMTY2IDExQUE7CitCQTU4O0JBNTg7MTEwNiAxMTY2IDExQUI7QkE1ODsxMTA2IDExNjYgMTFBQjsKK0JBNTk7QkE1OTsxMTA2IDExNjYgMTFBQztCQTU5OzExMDYgMTE2NiAxMUFDOworQkE1QTtCQTVBOzExMDYgMTE2NiAxMUFEO0JBNUE7MTEwNiAxMTY2IDExQUQ7CitCQTVCO0JBNUI7MTEwNiAxMTY2IDExQUU7QkE1QjsxMTA2IDExNjYgMTFBRTsKK0JBNUM7QkE1QzsxMTA2IDExNjYgMTFBRjtCQTVDOzExMDYgMTE2NiAxMUFGOworQkE1RDtCQTVEOzExMDYgMTE2NiAxMUIwO0JBNUQ7MTEwNiAxMTY2IDExQjA7CitCQTVFO0JBNUU7MTEwNiAxMTY2IDExQjE7QkE1RTsxMTA2IDExNjYgMTFCMTsKK0JBNUY7QkE1RjsxMTA2IDExNjYgMTFCMjtCQTVGOzExMDYgMTE2NiAxMUIyOworQkE2MDtCQTYwOzExMDYgMTE2NiAxMUIzO0JBNjA7MTEwNiAxMTY2IDExQjM7CitCQTYxO0JBNjE7MTEwNiAxMTY2IDExQjQ7QkE2MTsxMTA2IDExNjYgMTFCNDsKK0JBNjI7QkE2MjsxMTA2IDExNjYgMTFCNTtCQTYyOzExMDYgMTE2NiAxMUI1OworQkE2MztCQTYzOzExMDYgMTE2NiAxMUI2O0JBNjM7MTEwNiAxMTY2IDExQjY7CitCQTY0O0JBNjQ7MTEwNiAxMTY2IDExQjc7QkE2NDsxMTA2IDExNjYgMTFCNzsKK0JBNjU7QkE2NTsxMTA2IDExNjYgMTFCODtCQTY1OzExMDYgMTE2NiAxMUI4OworQkE2NjtCQTY2OzExMDYgMTE2NiAxMUI5O0JBNjY7MTEwNiAxMTY2IDExQjk7CitCQTY3O0JBNjc7MTEwNiAxMTY2IDExQkE7QkE2NzsxMTA2IDExNjYgMTFCQTsKK0JBNjg7QkE2ODsxMTA2IDExNjYgMTFCQjtCQTY4OzExMDYgMTE2NiAxMUJCOworQkE2OTtCQTY5OzExMDYgMTE2NiAxMUJDO0JBNjk7MTEwNiAxMTY2IDExQkM7CitCQTZBO0JBNkE7MTEwNiAxMTY2IDExQkQ7QkE2QTsxMTA2IDExNjYgMTFCRDsKK0JBNkI7QkE2QjsxMTA2IDExNjYgMTFCRTtCQTZCOzExMDYgMTE2NiAxMUJFOworQkE2QztCQTZDOzExMDYgMTE2NiAxMUJGO0JBNkM7MTEwNiAxMTY2IDExQkY7CitCQTZEO0JBNkQ7MTEwNiAxMTY2IDExQzA7QkE2RDsxMTA2IDExNjYgMTFDMDsKK0JBNkU7QkE2RTsxMTA2IDExNjYgMTFDMTtCQTZFOzExMDYgMTE2NiAxMUMxOworQkE2RjtCQTZGOzExMDYgMTE2NiAxMUMyO0JBNkY7MTEwNiAxMTY2IDExQzI7CitCQTcwO0JBNzA7MTEwNiAxMTY3O0JBNzA7MTEwNiAxMTY3OworQkE3MTtCQTcxOzExMDYgMTE2NyAxMUE4O0JBNzE7MTEwNiAxMTY3IDExQTg7CitCQTcyO0JBNzI7MTEwNiAxMTY3IDExQTk7QkE3MjsxMTA2IDExNjcgMTFBOTsKK0JBNzM7QkE3MzsxMTA2IDExNjcgMTFBQTtCQTczOzExMDYgMTE2NyAxMUFBOworQkE3NDtCQTc0OzExMDYgMTE2NyAxMUFCO0JBNzQ7MTEwNiAxMTY3IDExQUI7CitCQTc1O0JBNzU7MTEwNiAxMTY3IDExQUM7QkE3NTsxMTA2IDExNjcgMTFBQzsKK0JBNzY7QkE3NjsxMTA2IDExNjcgMTFBRDtCQTc2OzExMDYgMTE2NyAxMUFEOworQkE3NztCQTc3OzExMDYgMTE2NyAxMUFFO0JBNzc7MTEwNiAxMTY3IDExQUU7CitCQTc4O0JBNzg7MTEwNiAxMTY3IDExQUY7QkE3ODsxMTA2IDExNjcgMTFBRjsKK0JBNzk7QkE3OTsxMTA2IDExNjcgMTFCMDtCQTc5OzExMDYgMTE2NyAxMUIwOworQkE3QTtCQTdBOzExMDYgMTE2NyAxMUIxO0JBN0E7MTEwNiAxMTY3IDExQjE7CitCQTdCO0JBN0I7MTEwNiAxMTY3IDExQjI7QkE3QjsxMTA2IDExNjcgMTFCMjsKK0JBN0M7QkE3QzsxMTA2IDExNjcgMTFCMztCQTdDOzExMDYgMTE2NyAxMUIzOworQkE3RDtCQTdEOzExMDYgMTE2NyAxMUI0O0JBN0Q7MTEwNiAxMTY3IDExQjQ7CitCQTdFO0JBN0U7MTEwNiAxMTY3IDExQjU7QkE3RTsxMTA2IDExNjcgMTFCNTsKK0JBN0Y7QkE3RjsxMTA2IDExNjcgMTFCNjtCQTdGOzExMDYgMTE2NyAxMUI2OworQkE4MDtCQTgwOzExMDYgMTE2NyAxMUI3O0JBODA7MTEwNiAxMTY3IDExQjc7CitCQTgxO0JBODE7MTEwNiAxMTY3IDExQjg7QkE4MTsxMTA2IDExNjcgMTFCODsKK0JBODI7QkE4MjsxMTA2IDExNjcgMTFCOTtCQTgyOzExMDYgMTE2NyAxMUI5OworQkE4MztCQTgzOzExMDYgMTE2NyAxMUJBO0JBODM7MTEwNiAxMTY3IDExQkE7CitCQTg0O0JBODQ7MTEwNiAxMTY3IDExQkI7QkE4NDsxMTA2IDExNjcgMTFCQjsKK0JBODU7QkE4NTsxMTA2IDExNjcgMTFCQztCQTg1OzExMDYgMTE2NyAxMUJDOworQkE4NjtCQTg2OzExMDYgMTE2NyAxMUJEO0JBODY7MTEwNiAxMTY3IDExQkQ7CitCQTg3O0JBODc7MTEwNiAxMTY3IDExQkU7QkE4NzsxMTA2IDExNjcgMTFCRTsKK0JBODg7QkE4ODsxMTA2IDExNjcgMTFCRjtCQTg4OzExMDYgMTE2NyAxMUJGOworQkE4OTtCQTg5OzExMDYgMTE2NyAxMUMwO0JBODk7MTEwNiAxMTY3IDExQzA7CitCQThBO0JBOEE7MTEwNiAxMTY3IDExQzE7QkE4QTsxMTA2IDExNjcgMTFDMTsKK0JBOEI7QkE4QjsxMTA2IDExNjcgMTFDMjtCQThCOzExMDYgMTE2NyAxMUMyOworQkE4QztCQThDOzExMDYgMTE2ODtCQThDOzExMDYgMTE2ODsKK0JBOEQ7QkE4RDsxMTA2IDExNjggMTFBODtCQThEOzExMDYgMTE2OCAxMUE4OworQkE4RTtCQThFOzExMDYgMTE2OCAxMUE5O0JBOEU7MTEwNiAxMTY4IDExQTk7CitCQThGO0JBOEY7MTEwNiAxMTY4IDExQUE7QkE4RjsxMTA2IDExNjggMTFBQTsKK0JBOTA7QkE5MDsxMTA2IDExNjggMTFBQjtCQTkwOzExMDYgMTE2OCAxMUFCOworQkE5MTtCQTkxOzExMDYgMTE2OCAxMUFDO0JBOTE7MTEwNiAxMTY4IDExQUM7CitCQTkyO0JBOTI7MTEwNiAxMTY4IDExQUQ7QkE5MjsxMTA2IDExNjggMTFBRDsKK0JBOTM7QkE5MzsxMTA2IDExNjggMTFBRTtCQTkzOzExMDYgMTE2OCAxMUFFOworQkE5NDtCQTk0OzExMDYgMTE2OCAxMUFGO0JBOTQ7MTEwNiAxMTY4IDExQUY7CitCQTk1O0JBOTU7MTEwNiAxMTY4IDExQjA7QkE5NTsxMTA2IDExNjggMTFCMDsKK0JBOTY7QkE5NjsxMTA2IDExNjggMTFCMTtCQTk2OzExMDYgMTE2OCAxMUIxOworQkE5NztCQTk3OzExMDYgMTE2OCAxMUIyO0JBOTc7MTEwNiAxMTY4IDExQjI7CitCQTk4O0JBOTg7MTEwNiAxMTY4IDExQjM7QkE5ODsxMTA2IDExNjggMTFCMzsKK0JBOTk7QkE5OTsxMTA2IDExNjggMTFCNDtCQTk5OzExMDYgMTE2OCAxMUI0OworQkE5QTtCQTlBOzExMDYgMTE2OCAxMUI1O0JBOUE7MTEwNiAxMTY4IDExQjU7CitCQTlCO0JBOUI7MTEwNiAxMTY4IDExQjY7QkE5QjsxMTA2IDExNjggMTFCNjsKK0JBOUM7QkE5QzsxMTA2IDExNjggMTFCNztCQTlDOzExMDYgMTE2OCAxMUI3OworQkE5RDtCQTlEOzExMDYgMTE2OCAxMUI4O0JBOUQ7MTEwNiAxMTY4IDExQjg7CitCQTlFO0JBOUU7MTEwNiAxMTY4IDExQjk7QkE5RTsxMTA2IDExNjggMTFCOTsKK0JBOUY7QkE5RjsxMTA2IDExNjggMTFCQTtCQTlGOzExMDYgMTE2OCAxMUJBOworQkFBMDtCQUEwOzExMDYgMTE2OCAxMUJCO0JBQTA7MTEwNiAxMTY4IDExQkI7CitCQUExO0JBQTE7MTEwNiAxMTY4IDExQkM7QkFBMTsxMTA2IDExNjggMTFCQzsKK0JBQTI7QkFBMjsxMTA2IDExNjggMTFCRDtCQUEyOzExMDYgMTE2OCAxMUJEOworQkFBMztCQUEzOzExMDYgMTE2OCAxMUJFO0JBQTM7MTEwNiAxMTY4IDExQkU7CitCQUE0O0JBQTQ7MTEwNiAxMTY4IDExQkY7QkFBNDsxMTA2IDExNjggMTFCRjsKK0JBQTU7QkFBNTsxMTA2IDExNjggMTFDMDtCQUE1OzExMDYgMTE2OCAxMUMwOworQkFBNjtCQUE2OzExMDYgMTE2OCAxMUMxO0JBQTY7MTEwNiAxMTY4IDExQzE7CitCQUE3O0JBQTc7MTEwNiAxMTY4IDExQzI7QkFBNzsxMTA2IDExNjggMTFDMjsKK0JBQTg7QkFBODsxMTA2IDExNjk7QkFBODsxMTA2IDExNjk7CitCQUE5O0JBQTk7MTEwNiAxMTY5IDExQTg7QkFBOTsxMTA2IDExNjkgMTFBODsKK0JBQUE7QkFBQTsxMTA2IDExNjkgMTFBOTtCQUFBOzExMDYgMTE2OSAxMUE5OworQkFBQjtCQUFCOzExMDYgMTE2OSAxMUFBO0JBQUI7MTEwNiAxMTY5IDExQUE7CitCQUFDO0JBQUM7MTEwNiAxMTY5IDExQUI7QkFBQzsxMTA2IDExNjkgMTFBQjsKK0JBQUQ7QkFBRDsxMTA2IDExNjkgMTFBQztCQUFEOzExMDYgMTE2OSAxMUFDOworQkFBRTtCQUFFOzExMDYgMTE2OSAxMUFEO0JBQUU7MTEwNiAxMTY5IDExQUQ7CitCQUFGO0JBQUY7MTEwNiAxMTY5IDExQUU7QkFBRjsxMTA2IDExNjkgMTFBRTsKK0JBQjA7QkFCMDsxMTA2IDExNjkgMTFBRjtCQUIwOzExMDYgMTE2OSAxMUFGOworQkFCMTtCQUIxOzExMDYgMTE2OSAxMUIwO0JBQjE7MTEwNiAxMTY5IDExQjA7CitCQUIyO0JBQjI7MTEwNiAxMTY5IDExQjE7QkFCMjsxMTA2IDExNjkgMTFCMTsKK0JBQjM7QkFCMzsxMTA2IDExNjkgMTFCMjtCQUIzOzExMDYgMTE2OSAxMUIyOworQkFCNDtCQUI0OzExMDYgMTE2OSAxMUIzO0JBQjQ7MTEwNiAxMTY5IDExQjM7CitCQUI1O0JBQjU7MTEwNiAxMTY5IDExQjQ7QkFCNTsxMTA2IDExNjkgMTFCNDsKK0JBQjY7QkFCNjsxMTA2IDExNjkgMTFCNTtCQUI2OzExMDYgMTE2OSAxMUI1OworQkFCNztCQUI3OzExMDYgMTE2OSAxMUI2O0JBQjc7MTEwNiAxMTY5IDExQjY7CitCQUI4O0JBQjg7MTEwNiAxMTY5IDExQjc7QkFCODsxMTA2IDExNjkgMTFCNzsKK0JBQjk7QkFCOTsxMTA2IDExNjkgMTFCODtCQUI5OzExMDYgMTE2OSAxMUI4OworQkFCQTtCQUJBOzExMDYgMTE2OSAxMUI5O0JBQkE7MTEwNiAxMTY5IDExQjk7CitCQUJCO0JBQkI7MTEwNiAxMTY5IDExQkE7QkFCQjsxMTA2IDExNjkgMTFCQTsKK0JBQkM7QkFCQzsxMTA2IDExNjkgMTFCQjtCQUJDOzExMDYgMTE2OSAxMUJCOworQkFCRDtCQUJEOzExMDYgMTE2OSAxMUJDO0JBQkQ7MTEwNiAxMTY5IDExQkM7CitCQUJFO0JBQkU7MTEwNiAxMTY5IDExQkQ7QkFCRTsxMTA2IDExNjkgMTFCRDsKK0JBQkY7QkFCRjsxMTA2IDExNjkgMTFCRTtCQUJGOzExMDYgMTE2OSAxMUJFOworQkFDMDtCQUMwOzExMDYgMTE2OSAxMUJGO0JBQzA7MTEwNiAxMTY5IDExQkY7CitCQUMxO0JBQzE7MTEwNiAxMTY5IDExQzA7QkFDMTsxMTA2IDExNjkgMTFDMDsKK0JBQzI7QkFDMjsxMTA2IDExNjkgMTFDMTtCQUMyOzExMDYgMTE2OSAxMUMxOworQkFDMztCQUMzOzExMDYgMTE2OSAxMUMyO0JBQzM7MTEwNiAxMTY5IDExQzI7CitCQUM0O0JBQzQ7MTEwNiAxMTZBO0JBQzQ7MTEwNiAxMTZBOworQkFDNTtCQUM1OzExMDYgMTE2QSAxMUE4O0JBQzU7MTEwNiAxMTZBIDExQTg7CitCQUM2O0JBQzY7MTEwNiAxMTZBIDExQTk7QkFDNjsxMTA2IDExNkEgMTFBOTsKK0JBQzc7QkFDNzsxMTA2IDExNkEgMTFBQTtCQUM3OzExMDYgMTE2QSAxMUFBOworQkFDODtCQUM4OzExMDYgMTE2QSAxMUFCO0JBQzg7MTEwNiAxMTZBIDExQUI7CitCQUM5O0JBQzk7MTEwNiAxMTZBIDExQUM7QkFDOTsxMTA2IDExNkEgMTFBQzsKK0JBQ0E7QkFDQTsxMTA2IDExNkEgMTFBRDtCQUNBOzExMDYgMTE2QSAxMUFEOworQkFDQjtCQUNCOzExMDYgMTE2QSAxMUFFO0JBQ0I7MTEwNiAxMTZBIDExQUU7CitCQUNDO0JBQ0M7MTEwNiAxMTZBIDExQUY7QkFDQzsxMTA2IDExNkEgMTFBRjsKK0JBQ0Q7QkFDRDsxMTA2IDExNkEgMTFCMDtCQUNEOzExMDYgMTE2QSAxMUIwOworQkFDRTtCQUNFOzExMDYgMTE2QSAxMUIxO0JBQ0U7MTEwNiAxMTZBIDExQjE7CitCQUNGO0JBQ0Y7MTEwNiAxMTZBIDExQjI7QkFDRjsxMTA2IDExNkEgMTFCMjsKK0JBRDA7QkFEMDsxMTA2IDExNkEgMTFCMztCQUQwOzExMDYgMTE2QSAxMUIzOworQkFEMTtCQUQxOzExMDYgMTE2QSAxMUI0O0JBRDE7MTEwNiAxMTZBIDExQjQ7CitCQUQyO0JBRDI7MTEwNiAxMTZBIDExQjU7QkFEMjsxMTA2IDExNkEgMTFCNTsKK0JBRDM7QkFEMzsxMTA2IDExNkEgMTFCNjtCQUQzOzExMDYgMTE2QSAxMUI2OworQkFENDtCQUQ0OzExMDYgMTE2QSAxMUI3O0JBRDQ7MTEwNiAxMTZBIDExQjc7CitCQUQ1O0JBRDU7MTEwNiAxMTZBIDExQjg7QkFENTsxMTA2IDExNkEgMTFCODsKK0JBRDY7QkFENjsxMTA2IDExNkEgMTFCOTtCQUQ2OzExMDYgMTE2QSAxMUI5OworQkFENztCQUQ3OzExMDYgMTE2QSAxMUJBO0JBRDc7MTEwNiAxMTZBIDExQkE7CitCQUQ4O0JBRDg7MTEwNiAxMTZBIDExQkI7QkFEODsxMTA2IDExNkEgMTFCQjsKK0JBRDk7QkFEOTsxMTA2IDExNkEgMTFCQztCQUQ5OzExMDYgMTE2QSAxMUJDOworQkFEQTtCQURBOzExMDYgMTE2QSAxMUJEO0JBREE7MTEwNiAxMTZBIDExQkQ7CitCQURCO0JBREI7MTEwNiAxMTZBIDExQkU7QkFEQjsxMTA2IDExNkEgMTFCRTsKK0JBREM7QkFEQzsxMTA2IDExNkEgMTFCRjtCQURDOzExMDYgMTE2QSAxMUJGOworQkFERDtCQUREOzExMDYgMTE2QSAxMUMwO0JBREQ7MTEwNiAxMTZBIDExQzA7CitCQURFO0JBREU7MTEwNiAxMTZBIDExQzE7QkFERTsxMTA2IDExNkEgMTFDMTsKK0JBREY7QkFERjsxMTA2IDExNkEgMTFDMjtCQURGOzExMDYgMTE2QSAxMUMyOworQkFFMDtCQUUwOzExMDYgMTE2QjtCQUUwOzExMDYgMTE2QjsKK0JBRTE7QkFFMTsxMTA2IDExNkIgMTFBODtCQUUxOzExMDYgMTE2QiAxMUE4OworQkFFMjtCQUUyOzExMDYgMTE2QiAxMUE5O0JBRTI7MTEwNiAxMTZCIDExQTk7CitCQUUzO0JBRTM7MTEwNiAxMTZCIDExQUE7QkFFMzsxMTA2IDExNkIgMTFBQTsKK0JBRTQ7QkFFNDsxMTA2IDExNkIgMTFBQjtCQUU0OzExMDYgMTE2QiAxMUFCOworQkFFNTtCQUU1OzExMDYgMTE2QiAxMUFDO0JBRTU7MTEwNiAxMTZCIDExQUM7CitCQUU2O0JBRTY7MTEwNiAxMTZCIDExQUQ7QkFFNjsxMTA2IDExNkIgMTFBRDsKK0JBRTc7QkFFNzsxMTA2IDExNkIgMTFBRTtCQUU3OzExMDYgMTE2QiAxMUFFOworQkFFODtCQUU4OzExMDYgMTE2QiAxMUFGO0JBRTg7MTEwNiAxMTZCIDExQUY7CitCQUU5O0JBRTk7MTEwNiAxMTZCIDExQjA7QkFFOTsxMTA2IDExNkIgMTFCMDsKK0JBRUE7QkFFQTsxMTA2IDExNkIgMTFCMTtCQUVBOzExMDYgMTE2QiAxMUIxOworQkFFQjtCQUVCOzExMDYgMTE2QiAxMUIyO0JBRUI7MTEwNiAxMTZCIDExQjI7CitCQUVDO0JBRUM7MTEwNiAxMTZCIDExQjM7QkFFQzsxMTA2IDExNkIgMTFCMzsKK0JBRUQ7QkFFRDsxMTA2IDExNkIgMTFCNDtCQUVEOzExMDYgMTE2QiAxMUI0OworQkFFRTtCQUVFOzExMDYgMTE2QiAxMUI1O0JBRUU7MTEwNiAxMTZCIDExQjU7CitCQUVGO0JBRUY7MTEwNiAxMTZCIDExQjY7QkFFRjsxMTA2IDExNkIgMTFCNjsKK0JBRjA7QkFGMDsxMTA2IDExNkIgMTFCNztCQUYwOzExMDYgMTE2QiAxMUI3OworQkFGMTtCQUYxOzExMDYgMTE2QiAxMUI4O0JBRjE7MTEwNiAxMTZCIDExQjg7CitCQUYyO0JBRjI7MTEwNiAxMTZCIDExQjk7QkFGMjsxMTA2IDExNkIgMTFCOTsKK0JBRjM7QkFGMzsxMTA2IDExNkIgMTFCQTtCQUYzOzExMDYgMTE2QiAxMUJBOworQkFGNDtCQUY0OzExMDYgMTE2QiAxMUJCO0JBRjQ7MTEwNiAxMTZCIDExQkI7CitCQUY1O0JBRjU7MTEwNiAxMTZCIDExQkM7QkFGNTsxMTA2IDExNkIgMTFCQzsKK0JBRjY7QkFGNjsxMTA2IDExNkIgMTFCRDtCQUY2OzExMDYgMTE2QiAxMUJEOworQkFGNztCQUY3OzExMDYgMTE2QiAxMUJFO0JBRjc7MTEwNiAxMTZCIDExQkU7CitCQUY4O0JBRjg7MTEwNiAxMTZCIDExQkY7QkFGODsxMTA2IDExNkIgMTFCRjsKK0JBRjk7QkFGOTsxMTA2IDExNkIgMTFDMDtCQUY5OzExMDYgMTE2QiAxMUMwOworQkFGQTtCQUZBOzExMDYgMTE2QiAxMUMxO0JBRkE7MTEwNiAxMTZCIDExQzE7CitCQUZCO0JBRkI7MTEwNiAxMTZCIDExQzI7QkFGQjsxMTA2IDExNkIgMTFDMjsKK0JBRkM7QkFGQzsxMTA2IDExNkM7QkFGQzsxMTA2IDExNkM7CitCQUZEO0JBRkQ7MTEwNiAxMTZDIDExQTg7QkFGRDsxMTA2IDExNkMgMTFBODsKK0JBRkU7QkFGRTsxMTA2IDExNkMgMTFBOTtCQUZFOzExMDYgMTE2QyAxMUE5OworQkFGRjtCQUZGOzExMDYgMTE2QyAxMUFBO0JBRkY7MTEwNiAxMTZDIDExQUE7CitCQjAwO0JCMDA7MTEwNiAxMTZDIDExQUI7QkIwMDsxMTA2IDExNkMgMTFBQjsKK0JCMDE7QkIwMTsxMTA2IDExNkMgMTFBQztCQjAxOzExMDYgMTE2QyAxMUFDOworQkIwMjtCQjAyOzExMDYgMTE2QyAxMUFEO0JCMDI7MTEwNiAxMTZDIDExQUQ7CitCQjAzO0JCMDM7MTEwNiAxMTZDIDExQUU7QkIwMzsxMTA2IDExNkMgMTFBRTsKK0JCMDQ7QkIwNDsxMTA2IDExNkMgMTFBRjtCQjA0OzExMDYgMTE2QyAxMUFGOworQkIwNTtCQjA1OzExMDYgMTE2QyAxMUIwO0JCMDU7MTEwNiAxMTZDIDExQjA7CitCQjA2O0JCMDY7MTEwNiAxMTZDIDExQjE7QkIwNjsxMTA2IDExNkMgMTFCMTsKK0JCMDc7QkIwNzsxMTA2IDExNkMgMTFCMjtCQjA3OzExMDYgMTE2QyAxMUIyOworQkIwODtCQjA4OzExMDYgMTE2QyAxMUIzO0JCMDg7MTEwNiAxMTZDIDExQjM7CitCQjA5O0JCMDk7MTEwNiAxMTZDIDExQjQ7QkIwOTsxMTA2IDExNkMgMTFCNDsKK0JCMEE7QkIwQTsxMTA2IDExNkMgMTFCNTtCQjBBOzExMDYgMTE2QyAxMUI1OworQkIwQjtCQjBCOzExMDYgMTE2QyAxMUI2O0JCMEI7MTEwNiAxMTZDIDExQjY7CitCQjBDO0JCMEM7MTEwNiAxMTZDIDExQjc7QkIwQzsxMTA2IDExNkMgMTFCNzsKK0JCMEQ7QkIwRDsxMTA2IDExNkMgMTFCODtCQjBEOzExMDYgMTE2QyAxMUI4OworQkIwRTtCQjBFOzExMDYgMTE2QyAxMUI5O0JCMEU7MTEwNiAxMTZDIDExQjk7CitCQjBGO0JCMEY7MTEwNiAxMTZDIDExQkE7QkIwRjsxMTA2IDExNkMgMTFCQTsKK0JCMTA7QkIxMDsxMTA2IDExNkMgMTFCQjtCQjEwOzExMDYgMTE2QyAxMUJCOworQkIxMTtCQjExOzExMDYgMTE2QyAxMUJDO0JCMTE7MTEwNiAxMTZDIDExQkM7CitCQjEyO0JCMTI7MTEwNiAxMTZDIDExQkQ7QkIxMjsxMTA2IDExNkMgMTFCRDsKK0JCMTM7QkIxMzsxMTA2IDExNkMgMTFCRTtCQjEzOzExMDYgMTE2QyAxMUJFOworQkIxNDtCQjE0OzExMDYgMTE2QyAxMUJGO0JCMTQ7MTEwNiAxMTZDIDExQkY7CitCQjE1O0JCMTU7MTEwNiAxMTZDIDExQzA7QkIxNTsxMTA2IDExNkMgMTFDMDsKK0JCMTY7QkIxNjsxMTA2IDExNkMgMTFDMTtCQjE2OzExMDYgMTE2QyAxMUMxOworQkIxNztCQjE3OzExMDYgMTE2QyAxMUMyO0JCMTc7MTEwNiAxMTZDIDExQzI7CitCQjE4O0JCMTg7MTEwNiAxMTZEO0JCMTg7MTEwNiAxMTZEOworQkIxOTtCQjE5OzExMDYgMTE2RCAxMUE4O0JCMTk7MTEwNiAxMTZEIDExQTg7CitCQjFBO0JCMUE7MTEwNiAxMTZEIDExQTk7QkIxQTsxMTA2IDExNkQgMTFBOTsKK0JCMUI7QkIxQjsxMTA2IDExNkQgMTFBQTtCQjFCOzExMDYgMTE2RCAxMUFBOworQkIxQztCQjFDOzExMDYgMTE2RCAxMUFCO0JCMUM7MTEwNiAxMTZEIDExQUI7CitCQjFEO0JCMUQ7MTEwNiAxMTZEIDExQUM7QkIxRDsxMTA2IDExNkQgMTFBQzsKK0JCMUU7QkIxRTsxMTA2IDExNkQgMTFBRDtCQjFFOzExMDYgMTE2RCAxMUFEOworQkIxRjtCQjFGOzExMDYgMTE2RCAxMUFFO0JCMUY7MTEwNiAxMTZEIDExQUU7CitCQjIwO0JCMjA7MTEwNiAxMTZEIDExQUY7QkIyMDsxMTA2IDExNkQgMTFBRjsKK0JCMjE7QkIyMTsxMTA2IDExNkQgMTFCMDtCQjIxOzExMDYgMTE2RCAxMUIwOworQkIyMjtCQjIyOzExMDYgMTE2RCAxMUIxO0JCMjI7MTEwNiAxMTZEIDExQjE7CitCQjIzO0JCMjM7MTEwNiAxMTZEIDExQjI7QkIyMzsxMTA2IDExNkQgMTFCMjsKK0JCMjQ7QkIyNDsxMTA2IDExNkQgMTFCMztCQjI0OzExMDYgMTE2RCAxMUIzOworQkIyNTtCQjI1OzExMDYgMTE2RCAxMUI0O0JCMjU7MTEwNiAxMTZEIDExQjQ7CitCQjI2O0JCMjY7MTEwNiAxMTZEIDExQjU7QkIyNjsxMTA2IDExNkQgMTFCNTsKK0JCMjc7QkIyNzsxMTA2IDExNkQgMTFCNjtCQjI3OzExMDYgMTE2RCAxMUI2OworQkIyODtCQjI4OzExMDYgMTE2RCAxMUI3O0JCMjg7MTEwNiAxMTZEIDExQjc7CitCQjI5O0JCMjk7MTEwNiAxMTZEIDExQjg7QkIyOTsxMTA2IDExNkQgMTFCODsKK0JCMkE7QkIyQTsxMTA2IDExNkQgMTFCOTtCQjJBOzExMDYgMTE2RCAxMUI5OworQkIyQjtCQjJCOzExMDYgMTE2RCAxMUJBO0JCMkI7MTEwNiAxMTZEIDExQkE7CitCQjJDO0JCMkM7MTEwNiAxMTZEIDExQkI7QkIyQzsxMTA2IDExNkQgMTFCQjsKK0JCMkQ7QkIyRDsxMTA2IDExNkQgMTFCQztCQjJEOzExMDYgMTE2RCAxMUJDOworQkIyRTtCQjJFOzExMDYgMTE2RCAxMUJEO0JCMkU7MTEwNiAxMTZEIDExQkQ7CitCQjJGO0JCMkY7MTEwNiAxMTZEIDExQkU7QkIyRjsxMTA2IDExNkQgMTFCRTsKK0JCMzA7QkIzMDsxMTA2IDExNkQgMTFCRjtCQjMwOzExMDYgMTE2RCAxMUJGOworQkIzMTtCQjMxOzExMDYgMTE2RCAxMUMwO0JCMzE7MTEwNiAxMTZEIDExQzA7CitCQjMyO0JCMzI7MTEwNiAxMTZEIDExQzE7QkIzMjsxMTA2IDExNkQgMTFDMTsKK0JCMzM7QkIzMzsxMTA2IDExNkQgMTFDMjtCQjMzOzExMDYgMTE2RCAxMUMyOworQkIzNDtCQjM0OzExMDYgMTE2RTtCQjM0OzExMDYgMTE2RTsKK0JCMzU7QkIzNTsxMTA2IDExNkUgMTFBODtCQjM1OzExMDYgMTE2RSAxMUE4OworQkIzNjtCQjM2OzExMDYgMTE2RSAxMUE5O0JCMzY7MTEwNiAxMTZFIDExQTk7CitCQjM3O0JCMzc7MTEwNiAxMTZFIDExQUE7QkIzNzsxMTA2IDExNkUgMTFBQTsKK0JCMzg7QkIzODsxMTA2IDExNkUgMTFBQjtCQjM4OzExMDYgMTE2RSAxMUFCOworQkIzOTtCQjM5OzExMDYgMTE2RSAxMUFDO0JCMzk7MTEwNiAxMTZFIDExQUM7CitCQjNBO0JCM0E7MTEwNiAxMTZFIDExQUQ7QkIzQTsxMTA2IDExNkUgMTFBRDsKK0JCM0I7QkIzQjsxMTA2IDExNkUgMTFBRTtCQjNCOzExMDYgMTE2RSAxMUFFOworQkIzQztCQjNDOzExMDYgMTE2RSAxMUFGO0JCM0M7MTEwNiAxMTZFIDExQUY7CitCQjNEO0JCM0Q7MTEwNiAxMTZFIDExQjA7QkIzRDsxMTA2IDExNkUgMTFCMDsKK0JCM0U7QkIzRTsxMTA2IDExNkUgMTFCMTtCQjNFOzExMDYgMTE2RSAxMUIxOworQkIzRjtCQjNGOzExMDYgMTE2RSAxMUIyO0JCM0Y7MTEwNiAxMTZFIDExQjI7CitCQjQwO0JCNDA7MTEwNiAxMTZFIDExQjM7QkI0MDsxMTA2IDExNkUgMTFCMzsKK0JCNDE7QkI0MTsxMTA2IDExNkUgMTFCNDtCQjQxOzExMDYgMTE2RSAxMUI0OworQkI0MjtCQjQyOzExMDYgMTE2RSAxMUI1O0JCNDI7MTEwNiAxMTZFIDExQjU7CitCQjQzO0JCNDM7MTEwNiAxMTZFIDExQjY7QkI0MzsxMTA2IDExNkUgMTFCNjsKK0JCNDQ7QkI0NDsxMTA2IDExNkUgMTFCNztCQjQ0OzExMDYgMTE2RSAxMUI3OworQkI0NTtCQjQ1OzExMDYgMTE2RSAxMUI4O0JCNDU7MTEwNiAxMTZFIDExQjg7CitCQjQ2O0JCNDY7MTEwNiAxMTZFIDExQjk7QkI0NjsxMTA2IDExNkUgMTFCOTsKK0JCNDc7QkI0NzsxMTA2IDExNkUgMTFCQTtCQjQ3OzExMDYgMTE2RSAxMUJBOworQkI0ODtCQjQ4OzExMDYgMTE2RSAxMUJCO0JCNDg7MTEwNiAxMTZFIDExQkI7CitCQjQ5O0JCNDk7MTEwNiAxMTZFIDExQkM7QkI0OTsxMTA2IDExNkUgMTFCQzsKK0JCNEE7QkI0QTsxMTA2IDExNkUgMTFCRDtCQjRBOzExMDYgMTE2RSAxMUJEOworQkI0QjtCQjRCOzExMDYgMTE2RSAxMUJFO0JCNEI7MTEwNiAxMTZFIDExQkU7CitCQjRDO0JCNEM7MTEwNiAxMTZFIDExQkY7QkI0QzsxMTA2IDExNkUgMTFCRjsKK0JCNEQ7QkI0RDsxMTA2IDExNkUgMTFDMDtCQjREOzExMDYgMTE2RSAxMUMwOworQkI0RTtCQjRFOzExMDYgMTE2RSAxMUMxO0JCNEU7MTEwNiAxMTZFIDExQzE7CitCQjRGO0JCNEY7MTEwNiAxMTZFIDExQzI7QkI0RjsxMTA2IDExNkUgMTFDMjsKK0JCNTA7QkI1MDsxMTA2IDExNkY7QkI1MDsxMTA2IDExNkY7CitCQjUxO0JCNTE7MTEwNiAxMTZGIDExQTg7QkI1MTsxMTA2IDExNkYgMTFBODsKK0JCNTI7QkI1MjsxMTA2IDExNkYgMTFBOTtCQjUyOzExMDYgMTE2RiAxMUE5OworQkI1MztCQjUzOzExMDYgMTE2RiAxMUFBO0JCNTM7MTEwNiAxMTZGIDExQUE7CitCQjU0O0JCNTQ7MTEwNiAxMTZGIDExQUI7QkI1NDsxMTA2IDExNkYgMTFBQjsKK0JCNTU7QkI1NTsxMTA2IDExNkYgMTFBQztCQjU1OzExMDYgMTE2RiAxMUFDOworQkI1NjtCQjU2OzExMDYgMTE2RiAxMUFEO0JCNTY7MTEwNiAxMTZGIDExQUQ7CitCQjU3O0JCNTc7MTEwNiAxMTZGIDExQUU7QkI1NzsxMTA2IDExNkYgMTFBRTsKK0JCNTg7QkI1ODsxMTA2IDExNkYgMTFBRjtCQjU4OzExMDYgMTE2RiAxMUFGOworQkI1OTtCQjU5OzExMDYgMTE2RiAxMUIwO0JCNTk7MTEwNiAxMTZGIDExQjA7CitCQjVBO0JCNUE7MTEwNiAxMTZGIDExQjE7QkI1QTsxMTA2IDExNkYgMTFCMTsKK0JCNUI7QkI1QjsxMTA2IDExNkYgMTFCMjtCQjVCOzExMDYgMTE2RiAxMUIyOworQkI1QztCQjVDOzExMDYgMTE2RiAxMUIzO0JCNUM7MTEwNiAxMTZGIDExQjM7CitCQjVEO0JCNUQ7MTEwNiAxMTZGIDExQjQ7QkI1RDsxMTA2IDExNkYgMTFCNDsKK0JCNUU7QkI1RTsxMTA2IDExNkYgMTFCNTtCQjVFOzExMDYgMTE2RiAxMUI1OworQkI1RjtCQjVGOzExMDYgMTE2RiAxMUI2O0JCNUY7MTEwNiAxMTZGIDExQjY7CitCQjYwO0JCNjA7MTEwNiAxMTZGIDExQjc7QkI2MDsxMTA2IDExNkYgMTFCNzsKK0JCNjE7QkI2MTsxMTA2IDExNkYgMTFCODtCQjYxOzExMDYgMTE2RiAxMUI4OworQkI2MjtCQjYyOzExMDYgMTE2RiAxMUI5O0JCNjI7MTEwNiAxMTZGIDExQjk7CitCQjYzO0JCNjM7MTEwNiAxMTZGIDExQkE7QkI2MzsxMTA2IDExNkYgMTFCQTsKK0JCNjQ7QkI2NDsxMTA2IDExNkYgMTFCQjtCQjY0OzExMDYgMTE2RiAxMUJCOworQkI2NTtCQjY1OzExMDYgMTE2RiAxMUJDO0JCNjU7MTEwNiAxMTZGIDExQkM7CitCQjY2O0JCNjY7MTEwNiAxMTZGIDExQkQ7QkI2NjsxMTA2IDExNkYgMTFCRDsKK0JCNjc7QkI2NzsxMTA2IDExNkYgMTFCRTtCQjY3OzExMDYgMTE2RiAxMUJFOworQkI2ODtCQjY4OzExMDYgMTE2RiAxMUJGO0JCNjg7MTEwNiAxMTZGIDExQkY7CitCQjY5O0JCNjk7MTEwNiAxMTZGIDExQzA7QkI2OTsxMTA2IDExNkYgMTFDMDsKK0JCNkE7QkI2QTsxMTA2IDExNkYgMTFDMTtCQjZBOzExMDYgMTE2RiAxMUMxOworQkI2QjtCQjZCOzExMDYgMTE2RiAxMUMyO0JCNkI7MTEwNiAxMTZGIDExQzI7CitCQjZDO0JCNkM7MTEwNiAxMTcwO0JCNkM7MTEwNiAxMTcwOworQkI2RDtCQjZEOzExMDYgMTE3MCAxMUE4O0JCNkQ7MTEwNiAxMTcwIDExQTg7CitCQjZFO0JCNkU7MTEwNiAxMTcwIDExQTk7QkI2RTsxMTA2IDExNzAgMTFBOTsKK0JCNkY7QkI2RjsxMTA2IDExNzAgMTFBQTtCQjZGOzExMDYgMTE3MCAxMUFBOworQkI3MDtCQjcwOzExMDYgMTE3MCAxMUFCO0JCNzA7MTEwNiAxMTcwIDExQUI7CitCQjcxO0JCNzE7MTEwNiAxMTcwIDExQUM7QkI3MTsxMTA2IDExNzAgMTFBQzsKK0JCNzI7QkI3MjsxMTA2IDExNzAgMTFBRDtCQjcyOzExMDYgMTE3MCAxMUFEOworQkI3MztCQjczOzExMDYgMTE3MCAxMUFFO0JCNzM7MTEwNiAxMTcwIDExQUU7CitCQjc0O0JCNzQ7MTEwNiAxMTcwIDExQUY7QkI3NDsxMTA2IDExNzAgMTFBRjsKK0JCNzU7QkI3NTsxMTA2IDExNzAgMTFCMDtCQjc1OzExMDYgMTE3MCAxMUIwOworQkI3NjtCQjc2OzExMDYgMTE3MCAxMUIxO0JCNzY7MTEwNiAxMTcwIDExQjE7CitCQjc3O0JCNzc7MTEwNiAxMTcwIDExQjI7QkI3NzsxMTA2IDExNzAgMTFCMjsKK0JCNzg7QkI3ODsxMTA2IDExNzAgMTFCMztCQjc4OzExMDYgMTE3MCAxMUIzOworQkI3OTtCQjc5OzExMDYgMTE3MCAxMUI0O0JCNzk7MTEwNiAxMTcwIDExQjQ7CitCQjdBO0JCN0E7MTEwNiAxMTcwIDExQjU7QkI3QTsxMTA2IDExNzAgMTFCNTsKK0JCN0I7QkI3QjsxMTA2IDExNzAgMTFCNjtCQjdCOzExMDYgMTE3MCAxMUI2OworQkI3QztCQjdDOzExMDYgMTE3MCAxMUI3O0JCN0M7MTEwNiAxMTcwIDExQjc7CitCQjdEO0JCN0Q7MTEwNiAxMTcwIDExQjg7QkI3RDsxMTA2IDExNzAgMTFCODsKK0JCN0U7QkI3RTsxMTA2IDExNzAgMTFCOTtCQjdFOzExMDYgMTE3MCAxMUI5OworQkI3RjtCQjdGOzExMDYgMTE3MCAxMUJBO0JCN0Y7MTEwNiAxMTcwIDExQkE7CitCQjgwO0JCODA7MTEwNiAxMTcwIDExQkI7QkI4MDsxMTA2IDExNzAgMTFCQjsKK0JCODE7QkI4MTsxMTA2IDExNzAgMTFCQztCQjgxOzExMDYgMTE3MCAxMUJDOworQkI4MjtCQjgyOzExMDYgMTE3MCAxMUJEO0JCODI7MTEwNiAxMTcwIDExQkQ7CitCQjgzO0JCODM7MTEwNiAxMTcwIDExQkU7QkI4MzsxMTA2IDExNzAgMTFCRTsKK0JCODQ7QkI4NDsxMTA2IDExNzAgMTFCRjtCQjg0OzExMDYgMTE3MCAxMUJGOworQkI4NTtCQjg1OzExMDYgMTE3MCAxMUMwO0JCODU7MTEwNiAxMTcwIDExQzA7CitCQjg2O0JCODY7MTEwNiAxMTcwIDExQzE7QkI4NjsxMTA2IDExNzAgMTFDMTsKK0JCODc7QkI4NzsxMTA2IDExNzAgMTFDMjtCQjg3OzExMDYgMTE3MCAxMUMyOworQkI4ODtCQjg4OzExMDYgMTE3MTtCQjg4OzExMDYgMTE3MTsKK0JCODk7QkI4OTsxMTA2IDExNzEgMTFBODtCQjg5OzExMDYgMTE3MSAxMUE4OworQkI4QTtCQjhBOzExMDYgMTE3MSAxMUE5O0JCOEE7MTEwNiAxMTcxIDExQTk7CitCQjhCO0JCOEI7MTEwNiAxMTcxIDExQUE7QkI4QjsxMTA2IDExNzEgMTFBQTsKK0JCOEM7QkI4QzsxMTA2IDExNzEgMTFBQjtCQjhDOzExMDYgMTE3MSAxMUFCOworQkI4RDtCQjhEOzExMDYgMTE3MSAxMUFDO0JCOEQ7MTEwNiAxMTcxIDExQUM7CitCQjhFO0JCOEU7MTEwNiAxMTcxIDExQUQ7QkI4RTsxMTA2IDExNzEgMTFBRDsKK0JCOEY7QkI4RjsxMTA2IDExNzEgMTFBRTtCQjhGOzExMDYgMTE3MSAxMUFFOworQkI5MDtCQjkwOzExMDYgMTE3MSAxMUFGO0JCOTA7MTEwNiAxMTcxIDExQUY7CitCQjkxO0JCOTE7MTEwNiAxMTcxIDExQjA7QkI5MTsxMTA2IDExNzEgMTFCMDsKK0JCOTI7QkI5MjsxMTA2IDExNzEgMTFCMTtCQjkyOzExMDYgMTE3MSAxMUIxOworQkI5MztCQjkzOzExMDYgMTE3MSAxMUIyO0JCOTM7MTEwNiAxMTcxIDExQjI7CitCQjk0O0JCOTQ7MTEwNiAxMTcxIDExQjM7QkI5NDsxMTA2IDExNzEgMTFCMzsKK0JCOTU7QkI5NTsxMTA2IDExNzEgMTFCNDtCQjk1OzExMDYgMTE3MSAxMUI0OworQkI5NjtCQjk2OzExMDYgMTE3MSAxMUI1O0JCOTY7MTEwNiAxMTcxIDExQjU7CitCQjk3O0JCOTc7MTEwNiAxMTcxIDExQjY7QkI5NzsxMTA2IDExNzEgMTFCNjsKK0JCOTg7QkI5ODsxMTA2IDExNzEgMTFCNztCQjk4OzExMDYgMTE3MSAxMUI3OworQkI5OTtCQjk5OzExMDYgMTE3MSAxMUI4O0JCOTk7MTEwNiAxMTcxIDExQjg7CitCQjlBO0JCOUE7MTEwNiAxMTcxIDExQjk7QkI5QTsxMTA2IDExNzEgMTFCOTsKK0JCOUI7QkI5QjsxMTA2IDExNzEgMTFCQTtCQjlCOzExMDYgMTE3MSAxMUJBOworQkI5QztCQjlDOzExMDYgMTE3MSAxMUJCO0JCOUM7MTEwNiAxMTcxIDExQkI7CitCQjlEO0JCOUQ7MTEwNiAxMTcxIDExQkM7QkI5RDsxMTA2IDExNzEgMTFCQzsKK0JCOUU7QkI5RTsxMTA2IDExNzEgMTFCRDtCQjlFOzExMDYgMTE3MSAxMUJEOworQkI5RjtCQjlGOzExMDYgMTE3MSAxMUJFO0JCOUY7MTEwNiAxMTcxIDExQkU7CitCQkEwO0JCQTA7MTEwNiAxMTcxIDExQkY7QkJBMDsxMTA2IDExNzEgMTFCRjsKK0JCQTE7QkJBMTsxMTA2IDExNzEgMTFDMDtCQkExOzExMDYgMTE3MSAxMUMwOworQkJBMjtCQkEyOzExMDYgMTE3MSAxMUMxO0JCQTI7MTEwNiAxMTcxIDExQzE7CitCQkEzO0JCQTM7MTEwNiAxMTcxIDExQzI7QkJBMzsxMTA2IDExNzEgMTFDMjsKK0JCQTQ7QkJBNDsxMTA2IDExNzI7QkJBNDsxMTA2IDExNzI7CitCQkE1O0JCQTU7MTEwNiAxMTcyIDExQTg7QkJBNTsxMTA2IDExNzIgMTFBODsKK0JCQTY7QkJBNjsxMTA2IDExNzIgMTFBOTtCQkE2OzExMDYgMTE3MiAxMUE5OworQkJBNztCQkE3OzExMDYgMTE3MiAxMUFBO0JCQTc7MTEwNiAxMTcyIDExQUE7CitCQkE4O0JCQTg7MTEwNiAxMTcyIDExQUI7QkJBODsxMTA2IDExNzIgMTFBQjsKK0JCQTk7QkJBOTsxMTA2IDExNzIgMTFBQztCQkE5OzExMDYgMTE3MiAxMUFDOworQkJBQTtCQkFBOzExMDYgMTE3MiAxMUFEO0JCQUE7MTEwNiAxMTcyIDExQUQ7CitCQkFCO0JCQUI7MTEwNiAxMTcyIDExQUU7QkJBQjsxMTA2IDExNzIgMTFBRTsKK0JCQUM7QkJBQzsxMTA2IDExNzIgMTFBRjtCQkFDOzExMDYgMTE3MiAxMUFGOworQkJBRDtCQkFEOzExMDYgMTE3MiAxMUIwO0JCQUQ7MTEwNiAxMTcyIDExQjA7CitCQkFFO0JCQUU7MTEwNiAxMTcyIDExQjE7QkJBRTsxMTA2IDExNzIgMTFCMTsKK0JCQUY7QkJBRjsxMTA2IDExNzIgMTFCMjtCQkFGOzExMDYgMTE3MiAxMUIyOworQkJCMDtCQkIwOzExMDYgMTE3MiAxMUIzO0JCQjA7MTEwNiAxMTcyIDExQjM7CitCQkIxO0JCQjE7MTEwNiAxMTcyIDExQjQ7QkJCMTsxMTA2IDExNzIgMTFCNDsKK0JCQjI7QkJCMjsxMTA2IDExNzIgMTFCNTtCQkIyOzExMDYgMTE3MiAxMUI1OworQkJCMztCQkIzOzExMDYgMTE3MiAxMUI2O0JCQjM7MTEwNiAxMTcyIDExQjY7CitCQkI0O0JCQjQ7MTEwNiAxMTcyIDExQjc7QkJCNDsxMTA2IDExNzIgMTFCNzsKK0JCQjU7QkJCNTsxMTA2IDExNzIgMTFCODtCQkI1OzExMDYgMTE3MiAxMUI4OworQkJCNjtCQkI2OzExMDYgMTE3MiAxMUI5O0JCQjY7MTEwNiAxMTcyIDExQjk7CitCQkI3O0JCQjc7MTEwNiAxMTcyIDExQkE7QkJCNzsxMTA2IDExNzIgMTFCQTsKK0JCQjg7QkJCODsxMTA2IDExNzIgMTFCQjtCQkI4OzExMDYgMTE3MiAxMUJCOworQkJCOTtCQkI5OzExMDYgMTE3MiAxMUJDO0JCQjk7MTEwNiAxMTcyIDExQkM7CitCQkJBO0JCQkE7MTEwNiAxMTcyIDExQkQ7QkJCQTsxMTA2IDExNzIgMTFCRDsKK0JCQkI7QkJCQjsxMTA2IDExNzIgMTFCRTtCQkJCOzExMDYgMTE3MiAxMUJFOworQkJCQztCQkJDOzExMDYgMTE3MiAxMUJGO0JCQkM7MTEwNiAxMTcyIDExQkY7CitCQkJEO0JCQkQ7MTEwNiAxMTcyIDExQzA7QkJCRDsxMTA2IDExNzIgMTFDMDsKK0JCQkU7QkJCRTsxMTA2IDExNzIgMTFDMTtCQkJFOzExMDYgMTE3MiAxMUMxOworQkJCRjtCQkJGOzExMDYgMTE3MiAxMUMyO0JCQkY7MTEwNiAxMTcyIDExQzI7CitCQkMwO0JCQzA7MTEwNiAxMTczO0JCQzA7MTEwNiAxMTczOworQkJDMTtCQkMxOzExMDYgMTE3MyAxMUE4O0JCQzE7MTEwNiAxMTczIDExQTg7CitCQkMyO0JCQzI7MTEwNiAxMTczIDExQTk7QkJDMjsxMTA2IDExNzMgMTFBOTsKK0JCQzM7QkJDMzsxMTA2IDExNzMgMTFBQTtCQkMzOzExMDYgMTE3MyAxMUFBOworQkJDNDtCQkM0OzExMDYgMTE3MyAxMUFCO0JCQzQ7MTEwNiAxMTczIDExQUI7CitCQkM1O0JCQzU7MTEwNiAxMTczIDExQUM7QkJDNTsxMTA2IDExNzMgMTFBQzsKK0JCQzY7QkJDNjsxMTA2IDExNzMgMTFBRDtCQkM2OzExMDYgMTE3MyAxMUFEOworQkJDNztCQkM3OzExMDYgMTE3MyAxMUFFO0JCQzc7MTEwNiAxMTczIDExQUU7CitCQkM4O0JCQzg7MTEwNiAxMTczIDExQUY7QkJDODsxMTA2IDExNzMgMTFBRjsKK0JCQzk7QkJDOTsxMTA2IDExNzMgMTFCMDtCQkM5OzExMDYgMTE3MyAxMUIwOworQkJDQTtCQkNBOzExMDYgMTE3MyAxMUIxO0JCQ0E7MTEwNiAxMTczIDExQjE7CitCQkNCO0JCQ0I7MTEwNiAxMTczIDExQjI7QkJDQjsxMTA2IDExNzMgMTFCMjsKK0JCQ0M7QkJDQzsxMTA2IDExNzMgMTFCMztCQkNDOzExMDYgMTE3MyAxMUIzOworQkJDRDtCQkNEOzExMDYgMTE3MyAxMUI0O0JCQ0Q7MTEwNiAxMTczIDExQjQ7CitCQkNFO0JCQ0U7MTEwNiAxMTczIDExQjU7QkJDRTsxMTA2IDExNzMgMTFCNTsKK0JCQ0Y7QkJDRjsxMTA2IDExNzMgMTFCNjtCQkNGOzExMDYgMTE3MyAxMUI2OworQkJEMDtCQkQwOzExMDYgMTE3MyAxMUI3O0JCRDA7MTEwNiAxMTczIDExQjc7CitCQkQxO0JCRDE7MTEwNiAxMTczIDExQjg7QkJEMTsxMTA2IDExNzMgMTFCODsKK0JCRDI7QkJEMjsxMTA2IDExNzMgMTFCOTtCQkQyOzExMDYgMTE3MyAxMUI5OworQkJEMztCQkQzOzExMDYgMTE3MyAxMUJBO0JCRDM7MTEwNiAxMTczIDExQkE7CitCQkQ0O0JCRDQ7MTEwNiAxMTczIDExQkI7QkJENDsxMTA2IDExNzMgMTFCQjsKK0JCRDU7QkJENTsxMTA2IDExNzMgMTFCQztCQkQ1OzExMDYgMTE3MyAxMUJDOworQkJENjtCQkQ2OzExMDYgMTE3MyAxMUJEO0JCRDY7MTEwNiAxMTczIDExQkQ7CitCQkQ3O0JCRDc7MTEwNiAxMTczIDExQkU7QkJENzsxMTA2IDExNzMgMTFCRTsKK0JCRDg7QkJEODsxMTA2IDExNzMgMTFCRjtCQkQ4OzExMDYgMTE3MyAxMUJGOworQkJEOTtCQkQ5OzExMDYgMTE3MyAxMUMwO0JCRDk7MTEwNiAxMTczIDExQzA7CitCQkRBO0JCREE7MTEwNiAxMTczIDExQzE7QkJEQTsxMTA2IDExNzMgMTFDMTsKK0JCREI7QkJEQjsxMTA2IDExNzMgMTFDMjtCQkRCOzExMDYgMTE3MyAxMUMyOworQkJEQztCQkRDOzExMDYgMTE3NDtCQkRDOzExMDYgMTE3NDsKK0JCREQ7QkJERDsxMTA2IDExNzQgMTFBODtCQkREOzExMDYgMTE3NCAxMUE4OworQkJERTtCQkRFOzExMDYgMTE3NCAxMUE5O0JCREU7MTEwNiAxMTc0IDExQTk7CitCQkRGO0JCREY7MTEwNiAxMTc0IDExQUE7QkJERjsxMTA2IDExNzQgMTFBQTsKK0JCRTA7QkJFMDsxMTA2IDExNzQgMTFBQjtCQkUwOzExMDYgMTE3NCAxMUFCOworQkJFMTtCQkUxOzExMDYgMTE3NCAxMUFDO0JCRTE7MTEwNiAxMTc0IDExQUM7CitCQkUyO0JCRTI7MTEwNiAxMTc0IDExQUQ7QkJFMjsxMTA2IDExNzQgMTFBRDsKK0JCRTM7QkJFMzsxMTA2IDExNzQgMTFBRTtCQkUzOzExMDYgMTE3NCAxMUFFOworQkJFNDtCQkU0OzExMDYgMTE3NCAxMUFGO0JCRTQ7MTEwNiAxMTc0IDExQUY7CitCQkU1O0JCRTU7MTEwNiAxMTc0IDExQjA7QkJFNTsxMTA2IDExNzQgMTFCMDsKK0JCRTY7QkJFNjsxMTA2IDExNzQgMTFCMTtCQkU2OzExMDYgMTE3NCAxMUIxOworQkJFNztCQkU3OzExMDYgMTE3NCAxMUIyO0JCRTc7MTEwNiAxMTc0IDExQjI7CitCQkU4O0JCRTg7MTEwNiAxMTc0IDExQjM7QkJFODsxMTA2IDExNzQgMTFCMzsKK0JCRTk7QkJFOTsxMTA2IDExNzQgMTFCNDtCQkU5OzExMDYgMTE3NCAxMUI0OworQkJFQTtCQkVBOzExMDYgMTE3NCAxMUI1O0JCRUE7MTEwNiAxMTc0IDExQjU7CitCQkVCO0JCRUI7MTEwNiAxMTc0IDExQjY7QkJFQjsxMTA2IDExNzQgMTFCNjsKK0JCRUM7QkJFQzsxMTA2IDExNzQgMTFCNztCQkVDOzExMDYgMTE3NCAxMUI3OworQkJFRDtCQkVEOzExMDYgMTE3NCAxMUI4O0JCRUQ7MTEwNiAxMTc0IDExQjg7CitCQkVFO0JCRUU7MTEwNiAxMTc0IDExQjk7QkJFRTsxMTA2IDExNzQgMTFCOTsKK0JCRUY7QkJFRjsxMTA2IDExNzQgMTFCQTtCQkVGOzExMDYgMTE3NCAxMUJBOworQkJGMDtCQkYwOzExMDYgMTE3NCAxMUJCO0JCRjA7MTEwNiAxMTc0IDExQkI7CitCQkYxO0JCRjE7MTEwNiAxMTc0IDExQkM7QkJGMTsxMTA2IDExNzQgMTFCQzsKK0JCRjI7QkJGMjsxMTA2IDExNzQgMTFCRDtCQkYyOzExMDYgMTE3NCAxMUJEOworQkJGMztCQkYzOzExMDYgMTE3NCAxMUJFO0JCRjM7MTEwNiAxMTc0IDExQkU7CitCQkY0O0JCRjQ7MTEwNiAxMTc0IDExQkY7QkJGNDsxMTA2IDExNzQgMTFCRjsKK0JCRjU7QkJGNTsxMTA2IDExNzQgMTFDMDtCQkY1OzExMDYgMTE3NCAxMUMwOworQkJGNjtCQkY2OzExMDYgMTE3NCAxMUMxO0JCRjY7MTEwNiAxMTc0IDExQzE7CitCQkY3O0JCRjc7MTEwNiAxMTc0IDExQzI7QkJGNzsxMTA2IDExNzQgMTFDMjsKK0JCRjg7QkJGODsxMTA2IDExNzU7QkJGODsxMTA2IDExNzU7CitCQkY5O0JCRjk7MTEwNiAxMTc1IDExQTg7QkJGOTsxMTA2IDExNzUgMTFBODsKK0JCRkE7QkJGQTsxMTA2IDExNzUgMTFBOTtCQkZBOzExMDYgMTE3NSAxMUE5OworQkJGQjtCQkZCOzExMDYgMTE3NSAxMUFBO0JCRkI7MTEwNiAxMTc1IDExQUE7CitCQkZDO0JCRkM7MTEwNiAxMTc1IDExQUI7QkJGQzsxMTA2IDExNzUgMTFBQjsKK0JCRkQ7QkJGRDsxMTA2IDExNzUgMTFBQztCQkZEOzExMDYgMTE3NSAxMUFDOworQkJGRTtCQkZFOzExMDYgMTE3NSAxMUFEO0JCRkU7MTEwNiAxMTc1IDExQUQ7CitCQkZGO0JCRkY7MTEwNiAxMTc1IDExQUU7QkJGRjsxMTA2IDExNzUgMTFBRTsKK0JDMDA7QkMwMDsxMTA2IDExNzUgMTFBRjtCQzAwOzExMDYgMTE3NSAxMUFGOworQkMwMTtCQzAxOzExMDYgMTE3NSAxMUIwO0JDMDE7MTEwNiAxMTc1IDExQjA7CitCQzAyO0JDMDI7MTEwNiAxMTc1IDExQjE7QkMwMjsxMTA2IDExNzUgMTFCMTsKK0JDMDM7QkMwMzsxMTA2IDExNzUgMTFCMjtCQzAzOzExMDYgMTE3NSAxMUIyOworQkMwNDtCQzA0OzExMDYgMTE3NSAxMUIzO0JDMDQ7MTEwNiAxMTc1IDExQjM7CitCQzA1O0JDMDU7MTEwNiAxMTc1IDExQjQ7QkMwNTsxMTA2IDExNzUgMTFCNDsKK0JDMDY7QkMwNjsxMTA2IDExNzUgMTFCNTtCQzA2OzExMDYgMTE3NSAxMUI1OworQkMwNztCQzA3OzExMDYgMTE3NSAxMUI2O0JDMDc7MTEwNiAxMTc1IDExQjY7CitCQzA4O0JDMDg7MTEwNiAxMTc1IDExQjc7QkMwODsxMTA2IDExNzUgMTFCNzsKK0JDMDk7QkMwOTsxMTA2IDExNzUgMTFCODtCQzA5OzExMDYgMTE3NSAxMUI4OworQkMwQTtCQzBBOzExMDYgMTE3NSAxMUI5O0JDMEE7MTEwNiAxMTc1IDExQjk7CitCQzBCO0JDMEI7MTEwNiAxMTc1IDExQkE7QkMwQjsxMTA2IDExNzUgMTFCQTsKK0JDMEM7QkMwQzsxMTA2IDExNzUgMTFCQjtCQzBDOzExMDYgMTE3NSAxMUJCOworQkMwRDtCQzBEOzExMDYgMTE3NSAxMUJDO0JDMEQ7MTEwNiAxMTc1IDExQkM7CitCQzBFO0JDMEU7MTEwNiAxMTc1IDExQkQ7QkMwRTsxMTA2IDExNzUgMTFCRDsKK0JDMEY7QkMwRjsxMTA2IDExNzUgMTFCRTtCQzBGOzExMDYgMTE3NSAxMUJFOworQkMxMDtCQzEwOzExMDYgMTE3NSAxMUJGO0JDMTA7MTEwNiAxMTc1IDExQkY7CitCQzExO0JDMTE7MTEwNiAxMTc1IDExQzA7QkMxMTsxMTA2IDExNzUgMTFDMDsKK0JDMTI7QkMxMjsxMTA2IDExNzUgMTFDMTtCQzEyOzExMDYgMTE3NSAxMUMxOworQkMxMztCQzEzOzExMDYgMTE3NSAxMUMyO0JDMTM7MTEwNiAxMTc1IDExQzI7CitCQzE0O0JDMTQ7MTEwNyAxMTYxO0JDMTQ7MTEwNyAxMTYxOworQkMxNTtCQzE1OzExMDcgMTE2MSAxMUE4O0JDMTU7MTEwNyAxMTYxIDExQTg7CitCQzE2O0JDMTY7MTEwNyAxMTYxIDExQTk7QkMxNjsxMTA3IDExNjEgMTFBOTsKK0JDMTc7QkMxNzsxMTA3IDExNjEgMTFBQTtCQzE3OzExMDcgMTE2MSAxMUFBOworQkMxODtCQzE4OzExMDcgMTE2MSAxMUFCO0JDMTg7MTEwNyAxMTYxIDExQUI7CitCQzE5O0JDMTk7MTEwNyAxMTYxIDExQUM7QkMxOTsxMTA3IDExNjEgMTFBQzsKK0JDMUE7QkMxQTsxMTA3IDExNjEgMTFBRDtCQzFBOzExMDcgMTE2MSAxMUFEOworQkMxQjtCQzFCOzExMDcgMTE2MSAxMUFFO0JDMUI7MTEwNyAxMTYxIDExQUU7CitCQzFDO0JDMUM7MTEwNyAxMTYxIDExQUY7QkMxQzsxMTA3IDExNjEgMTFBRjsKK0JDMUQ7QkMxRDsxMTA3IDExNjEgMTFCMDtCQzFEOzExMDcgMTE2MSAxMUIwOworQkMxRTtCQzFFOzExMDcgMTE2MSAxMUIxO0JDMUU7MTEwNyAxMTYxIDExQjE7CitCQzFGO0JDMUY7MTEwNyAxMTYxIDExQjI7QkMxRjsxMTA3IDExNjEgMTFCMjsKK0JDMjA7QkMyMDsxMTA3IDExNjEgMTFCMztCQzIwOzExMDcgMTE2MSAxMUIzOworQkMyMTtCQzIxOzExMDcgMTE2MSAxMUI0O0JDMjE7MTEwNyAxMTYxIDExQjQ7CitCQzIyO0JDMjI7MTEwNyAxMTYxIDExQjU7QkMyMjsxMTA3IDExNjEgMTFCNTsKK0JDMjM7QkMyMzsxMTA3IDExNjEgMTFCNjtCQzIzOzExMDcgMTE2MSAxMUI2OworQkMyNDtCQzI0OzExMDcgMTE2MSAxMUI3O0JDMjQ7MTEwNyAxMTYxIDExQjc7CitCQzI1O0JDMjU7MTEwNyAxMTYxIDExQjg7QkMyNTsxMTA3IDExNjEgMTFCODsKK0JDMjY7QkMyNjsxMTA3IDExNjEgMTFCOTtCQzI2OzExMDcgMTE2MSAxMUI5OworQkMyNztCQzI3OzExMDcgMTE2MSAxMUJBO0JDMjc7MTEwNyAxMTYxIDExQkE7CitCQzI4O0JDMjg7MTEwNyAxMTYxIDExQkI7QkMyODsxMTA3IDExNjEgMTFCQjsKK0JDMjk7QkMyOTsxMTA3IDExNjEgMTFCQztCQzI5OzExMDcgMTE2MSAxMUJDOworQkMyQTtCQzJBOzExMDcgMTE2MSAxMUJEO0JDMkE7MTEwNyAxMTYxIDExQkQ7CitCQzJCO0JDMkI7MTEwNyAxMTYxIDExQkU7QkMyQjsxMTA3IDExNjEgMTFCRTsKK0JDMkM7QkMyQzsxMTA3IDExNjEgMTFCRjtCQzJDOzExMDcgMTE2MSAxMUJGOworQkMyRDtCQzJEOzExMDcgMTE2MSAxMUMwO0JDMkQ7MTEwNyAxMTYxIDExQzA7CitCQzJFO0JDMkU7MTEwNyAxMTYxIDExQzE7QkMyRTsxMTA3IDExNjEgMTFDMTsKK0JDMkY7QkMyRjsxMTA3IDExNjEgMTFDMjtCQzJGOzExMDcgMTE2MSAxMUMyOworQkMzMDtCQzMwOzExMDcgMTE2MjtCQzMwOzExMDcgMTE2MjsKK0JDMzE7QkMzMTsxMTA3IDExNjIgMTFBODtCQzMxOzExMDcgMTE2MiAxMUE4OworQkMzMjtCQzMyOzExMDcgMTE2MiAxMUE5O0JDMzI7MTEwNyAxMTYyIDExQTk7CitCQzMzO0JDMzM7MTEwNyAxMTYyIDExQUE7QkMzMzsxMTA3IDExNjIgMTFBQTsKK0JDMzQ7QkMzNDsxMTA3IDExNjIgMTFBQjtCQzM0OzExMDcgMTE2MiAxMUFCOworQkMzNTtCQzM1OzExMDcgMTE2MiAxMUFDO0JDMzU7MTEwNyAxMTYyIDExQUM7CitCQzM2O0JDMzY7MTEwNyAxMTYyIDExQUQ7QkMzNjsxMTA3IDExNjIgMTFBRDsKK0JDMzc7QkMzNzsxMTA3IDExNjIgMTFBRTtCQzM3OzExMDcgMTE2MiAxMUFFOworQkMzODtCQzM4OzExMDcgMTE2MiAxMUFGO0JDMzg7MTEwNyAxMTYyIDExQUY7CitCQzM5O0JDMzk7MTEwNyAxMTYyIDExQjA7QkMzOTsxMTA3IDExNjIgMTFCMDsKK0JDM0E7QkMzQTsxMTA3IDExNjIgMTFCMTtCQzNBOzExMDcgMTE2MiAxMUIxOworQkMzQjtCQzNCOzExMDcgMTE2MiAxMUIyO0JDM0I7MTEwNyAxMTYyIDExQjI7CitCQzNDO0JDM0M7MTEwNyAxMTYyIDExQjM7QkMzQzsxMTA3IDExNjIgMTFCMzsKK0JDM0Q7QkMzRDsxMTA3IDExNjIgMTFCNDtCQzNEOzExMDcgMTE2MiAxMUI0OworQkMzRTtCQzNFOzExMDcgMTE2MiAxMUI1O0JDM0U7MTEwNyAxMTYyIDExQjU7CitCQzNGO0JDM0Y7MTEwNyAxMTYyIDExQjY7QkMzRjsxMTA3IDExNjIgMTFCNjsKK0JDNDA7QkM0MDsxMTA3IDExNjIgMTFCNztCQzQwOzExMDcgMTE2MiAxMUI3OworQkM0MTtCQzQxOzExMDcgMTE2MiAxMUI4O0JDNDE7MTEwNyAxMTYyIDExQjg7CitCQzQyO0JDNDI7MTEwNyAxMTYyIDExQjk7QkM0MjsxMTA3IDExNjIgMTFCOTsKK0JDNDM7QkM0MzsxMTA3IDExNjIgMTFCQTtCQzQzOzExMDcgMTE2MiAxMUJBOworQkM0NDtCQzQ0OzExMDcgMTE2MiAxMUJCO0JDNDQ7MTEwNyAxMTYyIDExQkI7CitCQzQ1O0JDNDU7MTEwNyAxMTYyIDExQkM7QkM0NTsxMTA3IDExNjIgMTFCQzsKK0JDNDY7QkM0NjsxMTA3IDExNjIgMTFCRDtCQzQ2OzExMDcgMTE2MiAxMUJEOworQkM0NztCQzQ3OzExMDcgMTE2MiAxMUJFO0JDNDc7MTEwNyAxMTYyIDExQkU7CitCQzQ4O0JDNDg7MTEwNyAxMTYyIDExQkY7QkM0ODsxMTA3IDExNjIgMTFCRjsKK0JDNDk7QkM0OTsxMTA3IDExNjIgMTFDMDtCQzQ5OzExMDcgMTE2MiAxMUMwOworQkM0QTtCQzRBOzExMDcgMTE2MiAxMUMxO0JDNEE7MTEwNyAxMTYyIDExQzE7CitCQzRCO0JDNEI7MTEwNyAxMTYyIDExQzI7QkM0QjsxMTA3IDExNjIgMTFDMjsKK0JDNEM7QkM0QzsxMTA3IDExNjM7QkM0QzsxMTA3IDExNjM7CitCQzREO0JDNEQ7MTEwNyAxMTYzIDExQTg7QkM0RDsxMTA3IDExNjMgMTFBODsKK0JDNEU7QkM0RTsxMTA3IDExNjMgMTFBOTtCQzRFOzExMDcgMTE2MyAxMUE5OworQkM0RjtCQzRGOzExMDcgMTE2MyAxMUFBO0JDNEY7MTEwNyAxMTYzIDExQUE7CitCQzUwO0JDNTA7MTEwNyAxMTYzIDExQUI7QkM1MDsxMTA3IDExNjMgMTFBQjsKK0JDNTE7QkM1MTsxMTA3IDExNjMgMTFBQztCQzUxOzExMDcgMTE2MyAxMUFDOworQkM1MjtCQzUyOzExMDcgMTE2MyAxMUFEO0JDNTI7MTEwNyAxMTYzIDExQUQ7CitCQzUzO0JDNTM7MTEwNyAxMTYzIDExQUU7QkM1MzsxMTA3IDExNjMgMTFBRTsKK0JDNTQ7QkM1NDsxMTA3IDExNjMgMTFBRjtCQzU0OzExMDcgMTE2MyAxMUFGOworQkM1NTtCQzU1OzExMDcgMTE2MyAxMUIwO0JDNTU7MTEwNyAxMTYzIDExQjA7CitCQzU2O0JDNTY7MTEwNyAxMTYzIDExQjE7QkM1NjsxMTA3IDExNjMgMTFCMTsKK0JDNTc7QkM1NzsxMTA3IDExNjMgMTFCMjtCQzU3OzExMDcgMTE2MyAxMUIyOworQkM1ODtCQzU4OzExMDcgMTE2MyAxMUIzO0JDNTg7MTEwNyAxMTYzIDExQjM7CitCQzU5O0JDNTk7MTEwNyAxMTYzIDExQjQ7QkM1OTsxMTA3IDExNjMgMTFCNDsKK0JDNUE7QkM1QTsxMTA3IDExNjMgMTFCNTtCQzVBOzExMDcgMTE2MyAxMUI1OworQkM1QjtCQzVCOzExMDcgMTE2MyAxMUI2O0JDNUI7MTEwNyAxMTYzIDExQjY7CitCQzVDO0JDNUM7MTEwNyAxMTYzIDExQjc7QkM1QzsxMTA3IDExNjMgMTFCNzsKK0JDNUQ7QkM1RDsxMTA3IDExNjMgMTFCODtCQzVEOzExMDcgMTE2MyAxMUI4OworQkM1RTtCQzVFOzExMDcgMTE2MyAxMUI5O0JDNUU7MTEwNyAxMTYzIDExQjk7CitCQzVGO0JDNUY7MTEwNyAxMTYzIDExQkE7QkM1RjsxMTA3IDExNjMgMTFCQTsKK0JDNjA7QkM2MDsxMTA3IDExNjMgMTFCQjtCQzYwOzExMDcgMTE2MyAxMUJCOworQkM2MTtCQzYxOzExMDcgMTE2MyAxMUJDO0JDNjE7MTEwNyAxMTYzIDExQkM7CitCQzYyO0JDNjI7MTEwNyAxMTYzIDExQkQ7QkM2MjsxMTA3IDExNjMgMTFCRDsKK0JDNjM7QkM2MzsxMTA3IDExNjMgMTFCRTtCQzYzOzExMDcgMTE2MyAxMUJFOworQkM2NDtCQzY0OzExMDcgMTE2MyAxMUJGO0JDNjQ7MTEwNyAxMTYzIDExQkY7CitCQzY1O0JDNjU7MTEwNyAxMTYzIDExQzA7QkM2NTsxMTA3IDExNjMgMTFDMDsKK0JDNjY7QkM2NjsxMTA3IDExNjMgMTFDMTtCQzY2OzExMDcgMTE2MyAxMUMxOworQkM2NztCQzY3OzExMDcgMTE2MyAxMUMyO0JDNjc7MTEwNyAxMTYzIDExQzI7CitCQzY4O0JDNjg7MTEwNyAxMTY0O0JDNjg7MTEwNyAxMTY0OworQkM2OTtCQzY5OzExMDcgMTE2NCAxMUE4O0JDNjk7MTEwNyAxMTY0IDExQTg7CitCQzZBO0JDNkE7MTEwNyAxMTY0IDExQTk7QkM2QTsxMTA3IDExNjQgMTFBOTsKK0JDNkI7QkM2QjsxMTA3IDExNjQgMTFBQTtCQzZCOzExMDcgMTE2NCAxMUFBOworQkM2QztCQzZDOzExMDcgMTE2NCAxMUFCO0JDNkM7MTEwNyAxMTY0IDExQUI7CitCQzZEO0JDNkQ7MTEwNyAxMTY0IDExQUM7QkM2RDsxMTA3IDExNjQgMTFBQzsKK0JDNkU7QkM2RTsxMTA3IDExNjQgMTFBRDtCQzZFOzExMDcgMTE2NCAxMUFEOworQkM2RjtCQzZGOzExMDcgMTE2NCAxMUFFO0JDNkY7MTEwNyAxMTY0IDExQUU7CitCQzcwO0JDNzA7MTEwNyAxMTY0IDExQUY7QkM3MDsxMTA3IDExNjQgMTFBRjsKK0JDNzE7QkM3MTsxMTA3IDExNjQgMTFCMDtCQzcxOzExMDcgMTE2NCAxMUIwOworQkM3MjtCQzcyOzExMDcgMTE2NCAxMUIxO0JDNzI7MTEwNyAxMTY0IDExQjE7CitCQzczO0JDNzM7MTEwNyAxMTY0IDExQjI7QkM3MzsxMTA3IDExNjQgMTFCMjsKK0JDNzQ7QkM3NDsxMTA3IDExNjQgMTFCMztCQzc0OzExMDcgMTE2NCAxMUIzOworQkM3NTtCQzc1OzExMDcgMTE2NCAxMUI0O0JDNzU7MTEwNyAxMTY0IDExQjQ7CitCQzc2O0JDNzY7MTEwNyAxMTY0IDExQjU7QkM3NjsxMTA3IDExNjQgMTFCNTsKK0JDNzc7QkM3NzsxMTA3IDExNjQgMTFCNjtCQzc3OzExMDcgMTE2NCAxMUI2OworQkM3ODtCQzc4OzExMDcgMTE2NCAxMUI3O0JDNzg7MTEwNyAxMTY0IDExQjc7CitCQzc5O0JDNzk7MTEwNyAxMTY0IDExQjg7QkM3OTsxMTA3IDExNjQgMTFCODsKK0JDN0E7QkM3QTsxMTA3IDExNjQgMTFCOTtCQzdBOzExMDcgMTE2NCAxMUI5OworQkM3QjtCQzdCOzExMDcgMTE2NCAxMUJBO0JDN0I7MTEwNyAxMTY0IDExQkE7CitCQzdDO0JDN0M7MTEwNyAxMTY0IDExQkI7QkM3QzsxMTA3IDExNjQgMTFCQjsKK0JDN0Q7QkM3RDsxMTA3IDExNjQgMTFCQztCQzdEOzExMDcgMTE2NCAxMUJDOworQkM3RTtCQzdFOzExMDcgMTE2NCAxMUJEO0JDN0U7MTEwNyAxMTY0IDExQkQ7CitCQzdGO0JDN0Y7MTEwNyAxMTY0IDExQkU7QkM3RjsxMTA3IDExNjQgMTFCRTsKK0JDODA7QkM4MDsxMTA3IDExNjQgMTFCRjtCQzgwOzExMDcgMTE2NCAxMUJGOworQkM4MTtCQzgxOzExMDcgMTE2NCAxMUMwO0JDODE7MTEwNyAxMTY0IDExQzA7CitCQzgyO0JDODI7MTEwNyAxMTY0IDExQzE7QkM4MjsxMTA3IDExNjQgMTFDMTsKK0JDODM7QkM4MzsxMTA3IDExNjQgMTFDMjtCQzgzOzExMDcgMTE2NCAxMUMyOworQkM4NDtCQzg0OzExMDcgMTE2NTtCQzg0OzExMDcgMTE2NTsKK0JDODU7QkM4NTsxMTA3IDExNjUgMTFBODtCQzg1OzExMDcgMTE2NSAxMUE4OworQkM4NjtCQzg2OzExMDcgMTE2NSAxMUE5O0JDODY7MTEwNyAxMTY1IDExQTk7CitCQzg3O0JDODc7MTEwNyAxMTY1IDExQUE7QkM4NzsxMTA3IDExNjUgMTFBQTsKK0JDODg7QkM4ODsxMTA3IDExNjUgMTFBQjtCQzg4OzExMDcgMTE2NSAxMUFCOworQkM4OTtCQzg5OzExMDcgMTE2NSAxMUFDO0JDODk7MTEwNyAxMTY1IDExQUM7CitCQzhBO0JDOEE7MTEwNyAxMTY1IDExQUQ7QkM4QTsxMTA3IDExNjUgMTFBRDsKK0JDOEI7QkM4QjsxMTA3IDExNjUgMTFBRTtCQzhCOzExMDcgMTE2NSAxMUFFOworQkM4QztCQzhDOzExMDcgMTE2NSAxMUFGO0JDOEM7MTEwNyAxMTY1IDExQUY7CitCQzhEO0JDOEQ7MTEwNyAxMTY1IDExQjA7QkM4RDsxMTA3IDExNjUgMTFCMDsKK0JDOEU7QkM4RTsxMTA3IDExNjUgMTFCMTtCQzhFOzExMDcgMTE2NSAxMUIxOworQkM4RjtCQzhGOzExMDcgMTE2NSAxMUIyO0JDOEY7MTEwNyAxMTY1IDExQjI7CitCQzkwO0JDOTA7MTEwNyAxMTY1IDExQjM7QkM5MDsxMTA3IDExNjUgMTFCMzsKK0JDOTE7QkM5MTsxMTA3IDExNjUgMTFCNDtCQzkxOzExMDcgMTE2NSAxMUI0OworQkM5MjtCQzkyOzExMDcgMTE2NSAxMUI1O0JDOTI7MTEwNyAxMTY1IDExQjU7CitCQzkzO0JDOTM7MTEwNyAxMTY1IDExQjY7QkM5MzsxMTA3IDExNjUgMTFCNjsKK0JDOTQ7QkM5NDsxMTA3IDExNjUgMTFCNztCQzk0OzExMDcgMTE2NSAxMUI3OworQkM5NTtCQzk1OzExMDcgMTE2NSAxMUI4O0JDOTU7MTEwNyAxMTY1IDExQjg7CitCQzk2O0JDOTY7MTEwNyAxMTY1IDExQjk7QkM5NjsxMTA3IDExNjUgMTFCOTsKK0JDOTc7QkM5NzsxMTA3IDExNjUgMTFCQTtCQzk3OzExMDcgMTE2NSAxMUJBOworQkM5ODtCQzk4OzExMDcgMTE2NSAxMUJCO0JDOTg7MTEwNyAxMTY1IDExQkI7CitCQzk5O0JDOTk7MTEwNyAxMTY1IDExQkM7QkM5OTsxMTA3IDExNjUgMTFCQzsKK0JDOUE7QkM5QTsxMTA3IDExNjUgMTFCRDtCQzlBOzExMDcgMTE2NSAxMUJEOworQkM5QjtCQzlCOzExMDcgMTE2NSAxMUJFO0JDOUI7MTEwNyAxMTY1IDExQkU7CitCQzlDO0JDOUM7MTEwNyAxMTY1IDExQkY7QkM5QzsxMTA3IDExNjUgMTFCRjsKK0JDOUQ7QkM5RDsxMTA3IDExNjUgMTFDMDtCQzlEOzExMDcgMTE2NSAxMUMwOworQkM5RTtCQzlFOzExMDcgMTE2NSAxMUMxO0JDOUU7MTEwNyAxMTY1IDExQzE7CitCQzlGO0JDOUY7MTEwNyAxMTY1IDExQzI7QkM5RjsxMTA3IDExNjUgMTFDMjsKK0JDQTA7QkNBMDsxMTA3IDExNjY7QkNBMDsxMTA3IDExNjY7CitCQ0ExO0JDQTE7MTEwNyAxMTY2IDExQTg7QkNBMTsxMTA3IDExNjYgMTFBODsKK0JDQTI7QkNBMjsxMTA3IDExNjYgMTFBOTtCQ0EyOzExMDcgMTE2NiAxMUE5OworQkNBMztCQ0EzOzExMDcgMTE2NiAxMUFBO0JDQTM7MTEwNyAxMTY2IDExQUE7CitCQ0E0O0JDQTQ7MTEwNyAxMTY2IDExQUI7QkNBNDsxMTA3IDExNjYgMTFBQjsKK0JDQTU7QkNBNTsxMTA3IDExNjYgMTFBQztCQ0E1OzExMDcgMTE2NiAxMUFDOworQkNBNjtCQ0E2OzExMDcgMTE2NiAxMUFEO0JDQTY7MTEwNyAxMTY2IDExQUQ7CitCQ0E3O0JDQTc7MTEwNyAxMTY2IDExQUU7QkNBNzsxMTA3IDExNjYgMTFBRTsKK0JDQTg7QkNBODsxMTA3IDExNjYgMTFBRjtCQ0E4OzExMDcgMTE2NiAxMUFGOworQkNBOTtCQ0E5OzExMDcgMTE2NiAxMUIwO0JDQTk7MTEwNyAxMTY2IDExQjA7CitCQ0FBO0JDQUE7MTEwNyAxMTY2IDExQjE7QkNBQTsxMTA3IDExNjYgMTFCMTsKK0JDQUI7QkNBQjsxMTA3IDExNjYgMTFCMjtCQ0FCOzExMDcgMTE2NiAxMUIyOworQkNBQztCQ0FDOzExMDcgMTE2NiAxMUIzO0JDQUM7MTEwNyAxMTY2IDExQjM7CitCQ0FEO0JDQUQ7MTEwNyAxMTY2IDExQjQ7QkNBRDsxMTA3IDExNjYgMTFCNDsKK0JDQUU7QkNBRTsxMTA3IDExNjYgMTFCNTtCQ0FFOzExMDcgMTE2NiAxMUI1OworQkNBRjtCQ0FGOzExMDcgMTE2NiAxMUI2O0JDQUY7MTEwNyAxMTY2IDExQjY7CitCQ0IwO0JDQjA7MTEwNyAxMTY2IDExQjc7QkNCMDsxMTA3IDExNjYgMTFCNzsKK0JDQjE7QkNCMTsxMTA3IDExNjYgMTFCODtCQ0IxOzExMDcgMTE2NiAxMUI4OworQkNCMjtCQ0IyOzExMDcgMTE2NiAxMUI5O0JDQjI7MTEwNyAxMTY2IDExQjk7CitCQ0IzO0JDQjM7MTEwNyAxMTY2IDExQkE7QkNCMzsxMTA3IDExNjYgMTFCQTsKK0JDQjQ7QkNCNDsxMTA3IDExNjYgMTFCQjtCQ0I0OzExMDcgMTE2NiAxMUJCOworQkNCNTtCQ0I1OzExMDcgMTE2NiAxMUJDO0JDQjU7MTEwNyAxMTY2IDExQkM7CitCQ0I2O0JDQjY7MTEwNyAxMTY2IDExQkQ7QkNCNjsxMTA3IDExNjYgMTFCRDsKK0JDQjc7QkNCNzsxMTA3IDExNjYgMTFCRTtCQ0I3OzExMDcgMTE2NiAxMUJFOworQkNCODtCQ0I4OzExMDcgMTE2NiAxMUJGO0JDQjg7MTEwNyAxMTY2IDExQkY7CitCQ0I5O0JDQjk7MTEwNyAxMTY2IDExQzA7QkNCOTsxMTA3IDExNjYgMTFDMDsKK0JDQkE7QkNCQTsxMTA3IDExNjYgMTFDMTtCQ0JBOzExMDcgMTE2NiAxMUMxOworQkNCQjtCQ0JCOzExMDcgMTE2NiAxMUMyO0JDQkI7MTEwNyAxMTY2IDExQzI7CitCQ0JDO0JDQkM7MTEwNyAxMTY3O0JDQkM7MTEwNyAxMTY3OworQkNCRDtCQ0JEOzExMDcgMTE2NyAxMUE4O0JDQkQ7MTEwNyAxMTY3IDExQTg7CitCQ0JFO0JDQkU7MTEwNyAxMTY3IDExQTk7QkNCRTsxMTA3IDExNjcgMTFBOTsKK0JDQkY7QkNCRjsxMTA3IDExNjcgMTFBQTtCQ0JGOzExMDcgMTE2NyAxMUFBOworQkNDMDtCQ0MwOzExMDcgMTE2NyAxMUFCO0JDQzA7MTEwNyAxMTY3IDExQUI7CitCQ0MxO0JDQzE7MTEwNyAxMTY3IDExQUM7QkNDMTsxMTA3IDExNjcgMTFBQzsKK0JDQzI7QkNDMjsxMTA3IDExNjcgMTFBRDtCQ0MyOzExMDcgMTE2NyAxMUFEOworQkNDMztCQ0MzOzExMDcgMTE2NyAxMUFFO0JDQzM7MTEwNyAxMTY3IDExQUU7CitCQ0M0O0JDQzQ7MTEwNyAxMTY3IDExQUY7QkNDNDsxMTA3IDExNjcgMTFBRjsKK0JDQzU7QkNDNTsxMTA3IDExNjcgMTFCMDtCQ0M1OzExMDcgMTE2NyAxMUIwOworQkNDNjtCQ0M2OzExMDcgMTE2NyAxMUIxO0JDQzY7MTEwNyAxMTY3IDExQjE7CitCQ0M3O0JDQzc7MTEwNyAxMTY3IDExQjI7QkNDNzsxMTA3IDExNjcgMTFCMjsKK0JDQzg7QkNDODsxMTA3IDExNjcgMTFCMztCQ0M4OzExMDcgMTE2NyAxMUIzOworQkNDOTtCQ0M5OzExMDcgMTE2NyAxMUI0O0JDQzk7MTEwNyAxMTY3IDExQjQ7CitCQ0NBO0JDQ0E7MTEwNyAxMTY3IDExQjU7QkNDQTsxMTA3IDExNjcgMTFCNTsKK0JDQ0I7QkNDQjsxMTA3IDExNjcgMTFCNjtCQ0NCOzExMDcgMTE2NyAxMUI2OworQkNDQztCQ0NDOzExMDcgMTE2NyAxMUI3O0JDQ0M7MTEwNyAxMTY3IDExQjc7CitCQ0NEO0JDQ0Q7MTEwNyAxMTY3IDExQjg7QkNDRDsxMTA3IDExNjcgMTFCODsKK0JDQ0U7QkNDRTsxMTA3IDExNjcgMTFCOTtCQ0NFOzExMDcgMTE2NyAxMUI5OworQkNDRjtCQ0NGOzExMDcgMTE2NyAxMUJBO0JDQ0Y7MTEwNyAxMTY3IDExQkE7CitCQ0QwO0JDRDA7MTEwNyAxMTY3IDExQkI7QkNEMDsxMTA3IDExNjcgMTFCQjsKK0JDRDE7QkNEMTsxMTA3IDExNjcgMTFCQztCQ0QxOzExMDcgMTE2NyAxMUJDOworQkNEMjtCQ0QyOzExMDcgMTE2NyAxMUJEO0JDRDI7MTEwNyAxMTY3IDExQkQ7CitCQ0QzO0JDRDM7MTEwNyAxMTY3IDExQkU7QkNEMzsxMTA3IDExNjcgMTFCRTsKK0JDRDQ7QkNENDsxMTA3IDExNjcgMTFCRjtCQ0Q0OzExMDcgMTE2NyAxMUJGOworQkNENTtCQ0Q1OzExMDcgMTE2NyAxMUMwO0JDRDU7MTEwNyAxMTY3IDExQzA7CitCQ0Q2O0JDRDY7MTEwNyAxMTY3IDExQzE7QkNENjsxMTA3IDExNjcgMTFDMTsKK0JDRDc7QkNENzsxMTA3IDExNjcgMTFDMjtCQ0Q3OzExMDcgMTE2NyAxMUMyOworQkNEODtCQ0Q4OzExMDcgMTE2ODtCQ0Q4OzExMDcgMTE2ODsKK0JDRDk7QkNEOTsxMTA3IDExNjggMTFBODtCQ0Q5OzExMDcgMTE2OCAxMUE4OworQkNEQTtCQ0RBOzExMDcgMTE2OCAxMUE5O0JDREE7MTEwNyAxMTY4IDExQTk7CitCQ0RCO0JDREI7MTEwNyAxMTY4IDExQUE7QkNEQjsxMTA3IDExNjggMTFBQTsKK0JDREM7QkNEQzsxMTA3IDExNjggMTFBQjtCQ0RDOzExMDcgMTE2OCAxMUFCOworQkNERDtCQ0REOzExMDcgMTE2OCAxMUFDO0JDREQ7MTEwNyAxMTY4IDExQUM7CitCQ0RFO0JDREU7MTEwNyAxMTY4IDExQUQ7QkNERTsxMTA3IDExNjggMTFBRDsKK0JDREY7QkNERjsxMTA3IDExNjggMTFBRTtCQ0RGOzExMDcgMTE2OCAxMUFFOworQkNFMDtCQ0UwOzExMDcgMTE2OCAxMUFGO0JDRTA7MTEwNyAxMTY4IDExQUY7CitCQ0UxO0JDRTE7MTEwNyAxMTY4IDExQjA7QkNFMTsxMTA3IDExNjggMTFCMDsKK0JDRTI7QkNFMjsxMTA3IDExNjggMTFCMTtCQ0UyOzExMDcgMTE2OCAxMUIxOworQkNFMztCQ0UzOzExMDcgMTE2OCAxMUIyO0JDRTM7MTEwNyAxMTY4IDExQjI7CitCQ0U0O0JDRTQ7MTEwNyAxMTY4IDExQjM7QkNFNDsxMTA3IDExNjggMTFCMzsKK0JDRTU7QkNFNTsxMTA3IDExNjggMTFCNDtCQ0U1OzExMDcgMTE2OCAxMUI0OworQkNFNjtCQ0U2OzExMDcgMTE2OCAxMUI1O0JDRTY7MTEwNyAxMTY4IDExQjU7CitCQ0U3O0JDRTc7MTEwNyAxMTY4IDExQjY7QkNFNzsxMTA3IDExNjggMTFCNjsKK0JDRTg7QkNFODsxMTA3IDExNjggMTFCNztCQ0U4OzExMDcgMTE2OCAxMUI3OworQkNFOTtCQ0U5OzExMDcgMTE2OCAxMUI4O0JDRTk7MTEwNyAxMTY4IDExQjg7CitCQ0VBO0JDRUE7MTEwNyAxMTY4IDExQjk7QkNFQTsxMTA3IDExNjggMTFCOTsKK0JDRUI7QkNFQjsxMTA3IDExNjggMTFCQTtCQ0VCOzExMDcgMTE2OCAxMUJBOworQkNFQztCQ0VDOzExMDcgMTE2OCAxMUJCO0JDRUM7MTEwNyAxMTY4IDExQkI7CitCQ0VEO0JDRUQ7MTEwNyAxMTY4IDExQkM7QkNFRDsxMTA3IDExNjggMTFCQzsKK0JDRUU7QkNFRTsxMTA3IDExNjggMTFCRDtCQ0VFOzExMDcgMTE2OCAxMUJEOworQkNFRjtCQ0VGOzExMDcgMTE2OCAxMUJFO0JDRUY7MTEwNyAxMTY4IDExQkU7CitCQ0YwO0JDRjA7MTEwNyAxMTY4IDExQkY7QkNGMDsxMTA3IDExNjggMTFCRjsKK0JDRjE7QkNGMTsxMTA3IDExNjggMTFDMDtCQ0YxOzExMDcgMTE2OCAxMUMwOworQkNGMjtCQ0YyOzExMDcgMTE2OCAxMUMxO0JDRjI7MTEwNyAxMTY4IDExQzE7CitCQ0YzO0JDRjM7MTEwNyAxMTY4IDExQzI7QkNGMzsxMTA3IDExNjggMTFDMjsKK0JDRjQ7QkNGNDsxMTA3IDExNjk7QkNGNDsxMTA3IDExNjk7CitCQ0Y1O0JDRjU7MTEwNyAxMTY5IDExQTg7QkNGNTsxMTA3IDExNjkgMTFBODsKK0JDRjY7QkNGNjsxMTA3IDExNjkgMTFBOTtCQ0Y2OzExMDcgMTE2OSAxMUE5OworQkNGNztCQ0Y3OzExMDcgMTE2OSAxMUFBO0JDRjc7MTEwNyAxMTY5IDExQUE7CitCQ0Y4O0JDRjg7MTEwNyAxMTY5IDExQUI7QkNGODsxMTA3IDExNjkgMTFBQjsKK0JDRjk7QkNGOTsxMTA3IDExNjkgMTFBQztCQ0Y5OzExMDcgMTE2OSAxMUFDOworQkNGQTtCQ0ZBOzExMDcgMTE2OSAxMUFEO0JDRkE7MTEwNyAxMTY5IDExQUQ7CitCQ0ZCO0JDRkI7MTEwNyAxMTY5IDExQUU7QkNGQjsxMTA3IDExNjkgMTFBRTsKK0JDRkM7QkNGQzsxMTA3IDExNjkgMTFBRjtCQ0ZDOzExMDcgMTE2OSAxMUFGOworQkNGRDtCQ0ZEOzExMDcgMTE2OSAxMUIwO0JDRkQ7MTEwNyAxMTY5IDExQjA7CitCQ0ZFO0JDRkU7MTEwNyAxMTY5IDExQjE7QkNGRTsxMTA3IDExNjkgMTFCMTsKK0JDRkY7QkNGRjsxMTA3IDExNjkgMTFCMjtCQ0ZGOzExMDcgMTE2OSAxMUIyOworQkQwMDtCRDAwOzExMDcgMTE2OSAxMUIzO0JEMDA7MTEwNyAxMTY5IDExQjM7CitCRDAxO0JEMDE7MTEwNyAxMTY5IDExQjQ7QkQwMTsxMTA3IDExNjkgMTFCNDsKK0JEMDI7QkQwMjsxMTA3IDExNjkgMTFCNTtCRDAyOzExMDcgMTE2OSAxMUI1OworQkQwMztCRDAzOzExMDcgMTE2OSAxMUI2O0JEMDM7MTEwNyAxMTY5IDExQjY7CitCRDA0O0JEMDQ7MTEwNyAxMTY5IDExQjc7QkQwNDsxMTA3IDExNjkgMTFCNzsKK0JEMDU7QkQwNTsxMTA3IDExNjkgMTFCODtCRDA1OzExMDcgMTE2OSAxMUI4OworQkQwNjtCRDA2OzExMDcgMTE2OSAxMUI5O0JEMDY7MTEwNyAxMTY5IDExQjk7CitCRDA3O0JEMDc7MTEwNyAxMTY5IDExQkE7QkQwNzsxMTA3IDExNjkgMTFCQTsKK0JEMDg7QkQwODsxMTA3IDExNjkgMTFCQjtCRDA4OzExMDcgMTE2OSAxMUJCOworQkQwOTtCRDA5OzExMDcgMTE2OSAxMUJDO0JEMDk7MTEwNyAxMTY5IDExQkM7CitCRDBBO0JEMEE7MTEwNyAxMTY5IDExQkQ7QkQwQTsxMTA3IDExNjkgMTFCRDsKK0JEMEI7QkQwQjsxMTA3IDExNjkgMTFCRTtCRDBCOzExMDcgMTE2OSAxMUJFOworQkQwQztCRDBDOzExMDcgMTE2OSAxMUJGO0JEMEM7MTEwNyAxMTY5IDExQkY7CitCRDBEO0JEMEQ7MTEwNyAxMTY5IDExQzA7QkQwRDsxMTA3IDExNjkgMTFDMDsKK0JEMEU7QkQwRTsxMTA3IDExNjkgMTFDMTtCRDBFOzExMDcgMTE2OSAxMUMxOworQkQwRjtCRDBGOzExMDcgMTE2OSAxMUMyO0JEMEY7MTEwNyAxMTY5IDExQzI7CitCRDEwO0JEMTA7MTEwNyAxMTZBO0JEMTA7MTEwNyAxMTZBOworQkQxMTtCRDExOzExMDcgMTE2QSAxMUE4O0JEMTE7MTEwNyAxMTZBIDExQTg7CitCRDEyO0JEMTI7MTEwNyAxMTZBIDExQTk7QkQxMjsxMTA3IDExNkEgMTFBOTsKK0JEMTM7QkQxMzsxMTA3IDExNkEgMTFBQTtCRDEzOzExMDcgMTE2QSAxMUFBOworQkQxNDtCRDE0OzExMDcgMTE2QSAxMUFCO0JEMTQ7MTEwNyAxMTZBIDExQUI7CitCRDE1O0JEMTU7MTEwNyAxMTZBIDExQUM7QkQxNTsxMTA3IDExNkEgMTFBQzsKK0JEMTY7QkQxNjsxMTA3IDExNkEgMTFBRDtCRDE2OzExMDcgMTE2QSAxMUFEOworQkQxNztCRDE3OzExMDcgMTE2QSAxMUFFO0JEMTc7MTEwNyAxMTZBIDExQUU7CitCRDE4O0JEMTg7MTEwNyAxMTZBIDExQUY7QkQxODsxMTA3IDExNkEgMTFBRjsKK0JEMTk7QkQxOTsxMTA3IDExNkEgMTFCMDtCRDE5OzExMDcgMTE2QSAxMUIwOworQkQxQTtCRDFBOzExMDcgMTE2QSAxMUIxO0JEMUE7MTEwNyAxMTZBIDExQjE7CitCRDFCO0JEMUI7MTEwNyAxMTZBIDExQjI7QkQxQjsxMTA3IDExNkEgMTFCMjsKK0JEMUM7QkQxQzsxMTA3IDExNkEgMTFCMztCRDFDOzExMDcgMTE2QSAxMUIzOworQkQxRDtCRDFEOzExMDcgMTE2QSAxMUI0O0JEMUQ7MTEwNyAxMTZBIDExQjQ7CitCRDFFO0JEMUU7MTEwNyAxMTZBIDExQjU7QkQxRTsxMTA3IDExNkEgMTFCNTsKK0JEMUY7QkQxRjsxMTA3IDExNkEgMTFCNjtCRDFGOzExMDcgMTE2QSAxMUI2OworQkQyMDtCRDIwOzExMDcgMTE2QSAxMUI3O0JEMjA7MTEwNyAxMTZBIDExQjc7CitCRDIxO0JEMjE7MTEwNyAxMTZBIDExQjg7QkQyMTsxMTA3IDExNkEgMTFCODsKK0JEMjI7QkQyMjsxMTA3IDExNkEgMTFCOTtCRDIyOzExMDcgMTE2QSAxMUI5OworQkQyMztCRDIzOzExMDcgMTE2QSAxMUJBO0JEMjM7MTEwNyAxMTZBIDExQkE7CitCRDI0O0JEMjQ7MTEwNyAxMTZBIDExQkI7QkQyNDsxMTA3IDExNkEgMTFCQjsKK0JEMjU7QkQyNTsxMTA3IDExNkEgMTFCQztCRDI1OzExMDcgMTE2QSAxMUJDOworQkQyNjtCRDI2OzExMDcgMTE2QSAxMUJEO0JEMjY7MTEwNyAxMTZBIDExQkQ7CitCRDI3O0JEMjc7MTEwNyAxMTZBIDExQkU7QkQyNzsxMTA3IDExNkEgMTFCRTsKK0JEMjg7QkQyODsxMTA3IDExNkEgMTFCRjtCRDI4OzExMDcgMTE2QSAxMUJGOworQkQyOTtCRDI5OzExMDcgMTE2QSAxMUMwO0JEMjk7MTEwNyAxMTZBIDExQzA7CitCRDJBO0JEMkE7MTEwNyAxMTZBIDExQzE7QkQyQTsxMTA3IDExNkEgMTFDMTsKK0JEMkI7QkQyQjsxMTA3IDExNkEgMTFDMjtCRDJCOzExMDcgMTE2QSAxMUMyOworQkQyQztCRDJDOzExMDcgMTE2QjtCRDJDOzExMDcgMTE2QjsKK0JEMkQ7QkQyRDsxMTA3IDExNkIgMTFBODtCRDJEOzExMDcgMTE2QiAxMUE4OworQkQyRTtCRDJFOzExMDcgMTE2QiAxMUE5O0JEMkU7MTEwNyAxMTZCIDExQTk7CitCRDJGO0JEMkY7MTEwNyAxMTZCIDExQUE7QkQyRjsxMTA3IDExNkIgMTFBQTsKK0JEMzA7QkQzMDsxMTA3IDExNkIgMTFBQjtCRDMwOzExMDcgMTE2QiAxMUFCOworQkQzMTtCRDMxOzExMDcgMTE2QiAxMUFDO0JEMzE7MTEwNyAxMTZCIDExQUM7CitCRDMyO0JEMzI7MTEwNyAxMTZCIDExQUQ7QkQzMjsxMTA3IDExNkIgMTFBRDsKK0JEMzM7QkQzMzsxMTA3IDExNkIgMTFBRTtCRDMzOzExMDcgMTE2QiAxMUFFOworQkQzNDtCRDM0OzExMDcgMTE2QiAxMUFGO0JEMzQ7MTEwNyAxMTZCIDExQUY7CitCRDM1O0JEMzU7MTEwNyAxMTZCIDExQjA7QkQzNTsxMTA3IDExNkIgMTFCMDsKK0JEMzY7QkQzNjsxMTA3IDExNkIgMTFCMTtCRDM2OzExMDcgMTE2QiAxMUIxOworQkQzNztCRDM3OzExMDcgMTE2QiAxMUIyO0JEMzc7MTEwNyAxMTZCIDExQjI7CitCRDM4O0JEMzg7MTEwNyAxMTZCIDExQjM7QkQzODsxMTA3IDExNkIgMTFCMzsKK0JEMzk7QkQzOTsxMTA3IDExNkIgMTFCNDtCRDM5OzExMDcgMTE2QiAxMUI0OworQkQzQTtCRDNBOzExMDcgMTE2QiAxMUI1O0JEM0E7MTEwNyAxMTZCIDExQjU7CitCRDNCO0JEM0I7MTEwNyAxMTZCIDExQjY7QkQzQjsxMTA3IDExNkIgMTFCNjsKK0JEM0M7QkQzQzsxMTA3IDExNkIgMTFCNztCRDNDOzExMDcgMTE2QiAxMUI3OworQkQzRDtCRDNEOzExMDcgMTE2QiAxMUI4O0JEM0Q7MTEwNyAxMTZCIDExQjg7CitCRDNFO0JEM0U7MTEwNyAxMTZCIDExQjk7QkQzRTsxMTA3IDExNkIgMTFCOTsKK0JEM0Y7QkQzRjsxMTA3IDExNkIgMTFCQTtCRDNGOzExMDcgMTE2QiAxMUJBOworQkQ0MDtCRDQwOzExMDcgMTE2QiAxMUJCO0JENDA7MTEwNyAxMTZCIDExQkI7CitCRDQxO0JENDE7MTEwNyAxMTZCIDExQkM7QkQ0MTsxMTA3IDExNkIgMTFCQzsKK0JENDI7QkQ0MjsxMTA3IDExNkIgMTFCRDtCRDQyOzExMDcgMTE2QiAxMUJEOworQkQ0MztCRDQzOzExMDcgMTE2QiAxMUJFO0JENDM7MTEwNyAxMTZCIDExQkU7CitCRDQ0O0JENDQ7MTEwNyAxMTZCIDExQkY7QkQ0NDsxMTA3IDExNkIgMTFCRjsKK0JENDU7QkQ0NTsxMTA3IDExNkIgMTFDMDtCRDQ1OzExMDcgMTE2QiAxMUMwOworQkQ0NjtCRDQ2OzExMDcgMTE2QiAxMUMxO0JENDY7MTEwNyAxMTZCIDExQzE7CitCRDQ3O0JENDc7MTEwNyAxMTZCIDExQzI7QkQ0NzsxMTA3IDExNkIgMTFDMjsKK0JENDg7QkQ0ODsxMTA3IDExNkM7QkQ0ODsxMTA3IDExNkM7CitCRDQ5O0JENDk7MTEwNyAxMTZDIDExQTg7QkQ0OTsxMTA3IDExNkMgMTFBODsKK0JENEE7QkQ0QTsxMTA3IDExNkMgMTFBOTtCRDRBOzExMDcgMTE2QyAxMUE5OworQkQ0QjtCRDRCOzExMDcgMTE2QyAxMUFBO0JENEI7MTEwNyAxMTZDIDExQUE7CitCRDRDO0JENEM7MTEwNyAxMTZDIDExQUI7QkQ0QzsxMTA3IDExNkMgMTFBQjsKK0JENEQ7QkQ0RDsxMTA3IDExNkMgMTFBQztCRDREOzExMDcgMTE2QyAxMUFDOworQkQ0RTtCRDRFOzExMDcgMTE2QyAxMUFEO0JENEU7MTEwNyAxMTZDIDExQUQ7CitCRDRGO0JENEY7MTEwNyAxMTZDIDExQUU7QkQ0RjsxMTA3IDExNkMgMTFBRTsKK0JENTA7QkQ1MDsxMTA3IDExNkMgMTFBRjtCRDUwOzExMDcgMTE2QyAxMUFGOworQkQ1MTtCRDUxOzExMDcgMTE2QyAxMUIwO0JENTE7MTEwNyAxMTZDIDExQjA7CitCRDUyO0JENTI7MTEwNyAxMTZDIDExQjE7QkQ1MjsxMTA3IDExNkMgMTFCMTsKK0JENTM7QkQ1MzsxMTA3IDExNkMgMTFCMjtCRDUzOzExMDcgMTE2QyAxMUIyOworQkQ1NDtCRDU0OzExMDcgMTE2QyAxMUIzO0JENTQ7MTEwNyAxMTZDIDExQjM7CitCRDU1O0JENTU7MTEwNyAxMTZDIDExQjQ7QkQ1NTsxMTA3IDExNkMgMTFCNDsKK0JENTY7QkQ1NjsxMTA3IDExNkMgMTFCNTtCRDU2OzExMDcgMTE2QyAxMUI1OworQkQ1NztCRDU3OzExMDcgMTE2QyAxMUI2O0JENTc7MTEwNyAxMTZDIDExQjY7CitCRDU4O0JENTg7MTEwNyAxMTZDIDExQjc7QkQ1ODsxMTA3IDExNkMgMTFCNzsKK0JENTk7QkQ1OTsxMTA3IDExNkMgMTFCODtCRDU5OzExMDcgMTE2QyAxMUI4OworQkQ1QTtCRDVBOzExMDcgMTE2QyAxMUI5O0JENUE7MTEwNyAxMTZDIDExQjk7CitCRDVCO0JENUI7MTEwNyAxMTZDIDExQkE7QkQ1QjsxMTA3IDExNkMgMTFCQTsKK0JENUM7QkQ1QzsxMTA3IDExNkMgMTFCQjtCRDVDOzExMDcgMTE2QyAxMUJCOworQkQ1RDtCRDVEOzExMDcgMTE2QyAxMUJDO0JENUQ7MTEwNyAxMTZDIDExQkM7CitCRDVFO0JENUU7MTEwNyAxMTZDIDExQkQ7QkQ1RTsxMTA3IDExNkMgMTFCRDsKK0JENUY7QkQ1RjsxMTA3IDExNkMgMTFCRTtCRDVGOzExMDcgMTE2QyAxMUJFOworQkQ2MDtCRDYwOzExMDcgMTE2QyAxMUJGO0JENjA7MTEwNyAxMTZDIDExQkY7CitCRDYxO0JENjE7MTEwNyAxMTZDIDExQzA7QkQ2MTsxMTA3IDExNkMgMTFDMDsKK0JENjI7QkQ2MjsxMTA3IDExNkMgMTFDMTtCRDYyOzExMDcgMTE2QyAxMUMxOworQkQ2MztCRDYzOzExMDcgMTE2QyAxMUMyO0JENjM7MTEwNyAxMTZDIDExQzI7CitCRDY0O0JENjQ7MTEwNyAxMTZEO0JENjQ7MTEwNyAxMTZEOworQkQ2NTtCRDY1OzExMDcgMTE2RCAxMUE4O0JENjU7MTEwNyAxMTZEIDExQTg7CitCRDY2O0JENjY7MTEwNyAxMTZEIDExQTk7QkQ2NjsxMTA3IDExNkQgMTFBOTsKK0JENjc7QkQ2NzsxMTA3IDExNkQgMTFBQTtCRDY3OzExMDcgMTE2RCAxMUFBOworQkQ2ODtCRDY4OzExMDcgMTE2RCAxMUFCO0JENjg7MTEwNyAxMTZEIDExQUI7CitCRDY5O0JENjk7MTEwNyAxMTZEIDExQUM7QkQ2OTsxMTA3IDExNkQgMTFBQzsKK0JENkE7QkQ2QTsxMTA3IDExNkQgMTFBRDtCRDZBOzExMDcgMTE2RCAxMUFEOworQkQ2QjtCRDZCOzExMDcgMTE2RCAxMUFFO0JENkI7MTEwNyAxMTZEIDExQUU7CitCRDZDO0JENkM7MTEwNyAxMTZEIDExQUY7QkQ2QzsxMTA3IDExNkQgMTFBRjsKK0JENkQ7QkQ2RDsxMTA3IDExNkQgMTFCMDtCRDZEOzExMDcgMTE2RCAxMUIwOworQkQ2RTtCRDZFOzExMDcgMTE2RCAxMUIxO0JENkU7MTEwNyAxMTZEIDExQjE7CitCRDZGO0JENkY7MTEwNyAxMTZEIDExQjI7QkQ2RjsxMTA3IDExNkQgMTFCMjsKK0JENzA7QkQ3MDsxMTA3IDExNkQgMTFCMztCRDcwOzExMDcgMTE2RCAxMUIzOworQkQ3MTtCRDcxOzExMDcgMTE2RCAxMUI0O0JENzE7MTEwNyAxMTZEIDExQjQ7CitCRDcyO0JENzI7MTEwNyAxMTZEIDExQjU7QkQ3MjsxMTA3IDExNkQgMTFCNTsKK0JENzM7QkQ3MzsxMTA3IDExNkQgMTFCNjtCRDczOzExMDcgMTE2RCAxMUI2OworQkQ3NDtCRDc0OzExMDcgMTE2RCAxMUI3O0JENzQ7MTEwNyAxMTZEIDExQjc7CitCRDc1O0JENzU7MTEwNyAxMTZEIDExQjg7QkQ3NTsxMTA3IDExNkQgMTFCODsKK0JENzY7QkQ3NjsxMTA3IDExNkQgMTFCOTtCRDc2OzExMDcgMTE2RCAxMUI5OworQkQ3NztCRDc3OzExMDcgMTE2RCAxMUJBO0JENzc7MTEwNyAxMTZEIDExQkE7CitCRDc4O0JENzg7MTEwNyAxMTZEIDExQkI7QkQ3ODsxMTA3IDExNkQgMTFCQjsKK0JENzk7QkQ3OTsxMTA3IDExNkQgMTFCQztCRDc5OzExMDcgMTE2RCAxMUJDOworQkQ3QTtCRDdBOzExMDcgMTE2RCAxMUJEO0JEN0E7MTEwNyAxMTZEIDExQkQ7CitCRDdCO0JEN0I7MTEwNyAxMTZEIDExQkU7QkQ3QjsxMTA3IDExNkQgMTFCRTsKK0JEN0M7QkQ3QzsxMTA3IDExNkQgMTFCRjtCRDdDOzExMDcgMTE2RCAxMUJGOworQkQ3RDtCRDdEOzExMDcgMTE2RCAxMUMwO0JEN0Q7MTEwNyAxMTZEIDExQzA7CitCRDdFO0JEN0U7MTEwNyAxMTZEIDExQzE7QkQ3RTsxMTA3IDExNkQgMTFDMTsKK0JEN0Y7QkQ3RjsxMTA3IDExNkQgMTFDMjtCRDdGOzExMDcgMTE2RCAxMUMyOworQkQ4MDtCRDgwOzExMDcgMTE2RTtCRDgwOzExMDcgMTE2RTsKK0JEODE7QkQ4MTsxMTA3IDExNkUgMTFBODtCRDgxOzExMDcgMTE2RSAxMUE4OworQkQ4MjtCRDgyOzExMDcgMTE2RSAxMUE5O0JEODI7MTEwNyAxMTZFIDExQTk7CitCRDgzO0JEODM7MTEwNyAxMTZFIDExQUE7QkQ4MzsxMTA3IDExNkUgMTFBQTsKK0JEODQ7QkQ4NDsxMTA3IDExNkUgMTFBQjtCRDg0OzExMDcgMTE2RSAxMUFCOworQkQ4NTtCRDg1OzExMDcgMTE2RSAxMUFDO0JEODU7MTEwNyAxMTZFIDExQUM7CitCRDg2O0JEODY7MTEwNyAxMTZFIDExQUQ7QkQ4NjsxMTA3IDExNkUgMTFBRDsKK0JEODc7QkQ4NzsxMTA3IDExNkUgMTFBRTtCRDg3OzExMDcgMTE2RSAxMUFFOworQkQ4ODtCRDg4OzExMDcgMTE2RSAxMUFGO0JEODg7MTEwNyAxMTZFIDExQUY7CitCRDg5O0JEODk7MTEwNyAxMTZFIDExQjA7QkQ4OTsxMTA3IDExNkUgMTFCMDsKK0JEOEE7QkQ4QTsxMTA3IDExNkUgMTFCMTtCRDhBOzExMDcgMTE2RSAxMUIxOworQkQ4QjtCRDhCOzExMDcgMTE2RSAxMUIyO0JEOEI7MTEwNyAxMTZFIDExQjI7CitCRDhDO0JEOEM7MTEwNyAxMTZFIDExQjM7QkQ4QzsxMTA3IDExNkUgMTFCMzsKK0JEOEQ7QkQ4RDsxMTA3IDExNkUgMTFCNDtCRDhEOzExMDcgMTE2RSAxMUI0OworQkQ4RTtCRDhFOzExMDcgMTE2RSAxMUI1O0JEOEU7MTEwNyAxMTZFIDExQjU7CitCRDhGO0JEOEY7MTEwNyAxMTZFIDExQjY7QkQ4RjsxMTA3IDExNkUgMTFCNjsKK0JEOTA7QkQ5MDsxMTA3IDExNkUgMTFCNztCRDkwOzExMDcgMTE2RSAxMUI3OworQkQ5MTtCRDkxOzExMDcgMTE2RSAxMUI4O0JEOTE7MTEwNyAxMTZFIDExQjg7CitCRDkyO0JEOTI7MTEwNyAxMTZFIDExQjk7QkQ5MjsxMTA3IDExNkUgMTFCOTsKK0JEOTM7QkQ5MzsxMTA3IDExNkUgMTFCQTtCRDkzOzExMDcgMTE2RSAxMUJBOworQkQ5NDtCRDk0OzExMDcgMTE2RSAxMUJCO0JEOTQ7MTEwNyAxMTZFIDExQkI7CitCRDk1O0JEOTU7MTEwNyAxMTZFIDExQkM7QkQ5NTsxMTA3IDExNkUgMTFCQzsKK0JEOTY7QkQ5NjsxMTA3IDExNkUgMTFCRDtCRDk2OzExMDcgMTE2RSAxMUJEOworQkQ5NztCRDk3OzExMDcgMTE2RSAxMUJFO0JEOTc7MTEwNyAxMTZFIDExQkU7CitCRDk4O0JEOTg7MTEwNyAxMTZFIDExQkY7QkQ5ODsxMTA3IDExNkUgMTFCRjsKK0JEOTk7QkQ5OTsxMTA3IDExNkUgMTFDMDtCRDk5OzExMDcgMTE2RSAxMUMwOworQkQ5QTtCRDlBOzExMDcgMTE2RSAxMUMxO0JEOUE7MTEwNyAxMTZFIDExQzE7CitCRDlCO0JEOUI7MTEwNyAxMTZFIDExQzI7QkQ5QjsxMTA3IDExNkUgMTFDMjsKK0JEOUM7QkQ5QzsxMTA3IDExNkY7QkQ5QzsxMTA3IDExNkY7CitCRDlEO0JEOUQ7MTEwNyAxMTZGIDExQTg7QkQ5RDsxMTA3IDExNkYgMTFBODsKK0JEOUU7QkQ5RTsxMTA3IDExNkYgMTFBOTtCRDlFOzExMDcgMTE2RiAxMUE5OworQkQ5RjtCRDlGOzExMDcgMTE2RiAxMUFBO0JEOUY7MTEwNyAxMTZGIDExQUE7CitCREEwO0JEQTA7MTEwNyAxMTZGIDExQUI7QkRBMDsxMTA3IDExNkYgMTFBQjsKK0JEQTE7QkRBMTsxMTA3IDExNkYgMTFBQztCREExOzExMDcgMTE2RiAxMUFDOworQkRBMjtCREEyOzExMDcgMTE2RiAxMUFEO0JEQTI7MTEwNyAxMTZGIDExQUQ7CitCREEzO0JEQTM7MTEwNyAxMTZGIDExQUU7QkRBMzsxMTA3IDExNkYgMTFBRTsKK0JEQTQ7QkRBNDsxMTA3IDExNkYgMTFBRjtCREE0OzExMDcgMTE2RiAxMUFGOworQkRBNTtCREE1OzExMDcgMTE2RiAxMUIwO0JEQTU7MTEwNyAxMTZGIDExQjA7CitCREE2O0JEQTY7MTEwNyAxMTZGIDExQjE7QkRBNjsxMTA3IDExNkYgMTFCMTsKK0JEQTc7QkRBNzsxMTA3IDExNkYgMTFCMjtCREE3OzExMDcgMTE2RiAxMUIyOworQkRBODtCREE4OzExMDcgMTE2RiAxMUIzO0JEQTg7MTEwNyAxMTZGIDExQjM7CitCREE5O0JEQTk7MTEwNyAxMTZGIDExQjQ7QkRBOTsxMTA3IDExNkYgMTFCNDsKK0JEQUE7QkRBQTsxMTA3IDExNkYgMTFCNTtCREFBOzExMDcgMTE2RiAxMUI1OworQkRBQjtCREFCOzExMDcgMTE2RiAxMUI2O0JEQUI7MTEwNyAxMTZGIDExQjY7CitCREFDO0JEQUM7MTEwNyAxMTZGIDExQjc7QkRBQzsxMTA3IDExNkYgMTFCNzsKK0JEQUQ7QkRBRDsxMTA3IDExNkYgMTFCODtCREFEOzExMDcgMTE2RiAxMUI4OworQkRBRTtCREFFOzExMDcgMTE2RiAxMUI5O0JEQUU7MTEwNyAxMTZGIDExQjk7CitCREFGO0JEQUY7MTEwNyAxMTZGIDExQkE7QkRBRjsxMTA3IDExNkYgMTFCQTsKK0JEQjA7QkRCMDsxMTA3IDExNkYgMTFCQjtCREIwOzExMDcgMTE2RiAxMUJCOworQkRCMTtCREIxOzExMDcgMTE2RiAxMUJDO0JEQjE7MTEwNyAxMTZGIDExQkM7CitCREIyO0JEQjI7MTEwNyAxMTZGIDExQkQ7QkRCMjsxMTA3IDExNkYgMTFCRDsKK0JEQjM7QkRCMzsxMTA3IDExNkYgMTFCRTtCREIzOzExMDcgMTE2RiAxMUJFOworQkRCNDtCREI0OzExMDcgMTE2RiAxMUJGO0JEQjQ7MTEwNyAxMTZGIDExQkY7CitCREI1O0JEQjU7MTEwNyAxMTZGIDExQzA7QkRCNTsxMTA3IDExNkYgMTFDMDsKK0JEQjY7QkRCNjsxMTA3IDExNkYgMTFDMTtCREI2OzExMDcgMTE2RiAxMUMxOworQkRCNztCREI3OzExMDcgMTE2RiAxMUMyO0JEQjc7MTEwNyAxMTZGIDExQzI7CitCREI4O0JEQjg7MTEwNyAxMTcwO0JEQjg7MTEwNyAxMTcwOworQkRCOTtCREI5OzExMDcgMTE3MCAxMUE4O0JEQjk7MTEwNyAxMTcwIDExQTg7CitCREJBO0JEQkE7MTEwNyAxMTcwIDExQTk7QkRCQTsxMTA3IDExNzAgMTFBOTsKK0JEQkI7QkRCQjsxMTA3IDExNzAgMTFBQTtCREJCOzExMDcgMTE3MCAxMUFBOworQkRCQztCREJDOzExMDcgMTE3MCAxMUFCO0JEQkM7MTEwNyAxMTcwIDExQUI7CitCREJEO0JEQkQ7MTEwNyAxMTcwIDExQUM7QkRCRDsxMTA3IDExNzAgMTFBQzsKK0JEQkU7QkRCRTsxMTA3IDExNzAgMTFBRDtCREJFOzExMDcgMTE3MCAxMUFEOworQkRCRjtCREJGOzExMDcgMTE3MCAxMUFFO0JEQkY7MTEwNyAxMTcwIDExQUU7CitCREMwO0JEQzA7MTEwNyAxMTcwIDExQUY7QkRDMDsxMTA3IDExNzAgMTFBRjsKK0JEQzE7QkRDMTsxMTA3IDExNzAgMTFCMDtCREMxOzExMDcgMTE3MCAxMUIwOworQkRDMjtCREMyOzExMDcgMTE3MCAxMUIxO0JEQzI7MTEwNyAxMTcwIDExQjE7CitCREMzO0JEQzM7MTEwNyAxMTcwIDExQjI7QkRDMzsxMTA3IDExNzAgMTFCMjsKK0JEQzQ7QkRDNDsxMTA3IDExNzAgMTFCMztCREM0OzExMDcgMTE3MCAxMUIzOworQkRDNTtCREM1OzExMDcgMTE3MCAxMUI0O0JEQzU7MTEwNyAxMTcwIDExQjQ7CitCREM2O0JEQzY7MTEwNyAxMTcwIDExQjU7QkRDNjsxMTA3IDExNzAgMTFCNTsKK0JEQzc7QkRDNzsxMTA3IDExNzAgMTFCNjtCREM3OzExMDcgMTE3MCAxMUI2OworQkRDODtCREM4OzExMDcgMTE3MCAxMUI3O0JEQzg7MTEwNyAxMTcwIDExQjc7CitCREM5O0JEQzk7MTEwNyAxMTcwIDExQjg7QkRDOTsxMTA3IDExNzAgMTFCODsKK0JEQ0E7QkRDQTsxMTA3IDExNzAgMTFCOTtCRENBOzExMDcgMTE3MCAxMUI5OworQkRDQjtCRENCOzExMDcgMTE3MCAxMUJBO0JEQ0I7MTEwNyAxMTcwIDExQkE7CitCRENDO0JEQ0M7MTEwNyAxMTcwIDExQkI7QkRDQzsxMTA3IDExNzAgMTFCQjsKK0JEQ0Q7QkRDRDsxMTA3IDExNzAgMTFCQztCRENEOzExMDcgMTE3MCAxMUJDOworQkRDRTtCRENFOzExMDcgMTE3MCAxMUJEO0JEQ0U7MTEwNyAxMTcwIDExQkQ7CitCRENGO0JEQ0Y7MTEwNyAxMTcwIDExQkU7QkRDRjsxMTA3IDExNzAgMTFCRTsKK0JERDA7QkREMDsxMTA3IDExNzAgMTFCRjtCREQwOzExMDcgMTE3MCAxMUJGOworQkREMTtCREQxOzExMDcgMTE3MCAxMUMwO0JERDE7MTEwNyAxMTcwIDExQzA7CitCREQyO0JERDI7MTEwNyAxMTcwIDExQzE7QkREMjsxMTA3IDExNzAgMTFDMTsKK0JERDM7QkREMzsxMTA3IDExNzAgMTFDMjtCREQzOzExMDcgMTE3MCAxMUMyOworQkRENDtCREQ0OzExMDcgMTE3MTtCREQ0OzExMDcgMTE3MTsKK0JERDU7QkRENTsxMTA3IDExNzEgMTFBODtCREQ1OzExMDcgMTE3MSAxMUE4OworQkRENjtCREQ2OzExMDcgMTE3MSAxMUE5O0JERDY7MTEwNyAxMTcxIDExQTk7CitCREQ3O0JERDc7MTEwNyAxMTcxIDExQUE7QkRENzsxMTA3IDExNzEgMTFBQTsKK0JERDg7QkREODsxMTA3IDExNzEgMTFBQjtCREQ4OzExMDcgMTE3MSAxMUFCOworQkREOTtCREQ5OzExMDcgMTE3MSAxMUFDO0JERDk7MTEwNyAxMTcxIDExQUM7CitCRERBO0JEREE7MTEwNyAxMTcxIDExQUQ7QkREQTsxMTA3IDExNzEgMTFBRDsKK0JEREI7QkREQjsxMTA3IDExNzEgMTFBRTtCRERCOzExMDcgMTE3MSAxMUFFOworQkREQztCRERDOzExMDcgMTE3MSAxMUFGO0JEREM7MTEwNyAxMTcxIDExQUY7CitCREREO0JEREQ7MTEwNyAxMTcxIDExQjA7QkRERDsxMTA3IDExNzEgMTFCMDsKK0JEREU7QkRERTsxMTA3IDExNzEgMTFCMTtCRERFOzExMDcgMTE3MSAxMUIxOworQkRERjtCRERGOzExMDcgMTE3MSAxMUIyO0JEREY7MTEwNyAxMTcxIDExQjI7CitCREUwO0JERTA7MTEwNyAxMTcxIDExQjM7QkRFMDsxMTA3IDExNzEgMTFCMzsKK0JERTE7QkRFMTsxMTA3IDExNzEgMTFCNDtCREUxOzExMDcgMTE3MSAxMUI0OworQkRFMjtCREUyOzExMDcgMTE3MSAxMUI1O0JERTI7MTEwNyAxMTcxIDExQjU7CitCREUzO0JERTM7MTEwNyAxMTcxIDExQjY7QkRFMzsxMTA3IDExNzEgMTFCNjsKK0JERTQ7QkRFNDsxMTA3IDExNzEgMTFCNztCREU0OzExMDcgMTE3MSAxMUI3OworQkRFNTtCREU1OzExMDcgMTE3MSAxMUI4O0JERTU7MTEwNyAxMTcxIDExQjg7CitCREU2O0JERTY7MTEwNyAxMTcxIDExQjk7QkRFNjsxMTA3IDExNzEgMTFCOTsKK0JERTc7QkRFNzsxMTA3IDExNzEgMTFCQTtCREU3OzExMDcgMTE3MSAxMUJBOworQkRFODtCREU4OzExMDcgMTE3MSAxMUJCO0JERTg7MTEwNyAxMTcxIDExQkI7CitCREU5O0JERTk7MTEwNyAxMTcxIDExQkM7QkRFOTsxMTA3IDExNzEgMTFCQzsKK0JERUE7QkRFQTsxMTA3IDExNzEgMTFCRDtCREVBOzExMDcgMTE3MSAxMUJEOworQkRFQjtCREVCOzExMDcgMTE3MSAxMUJFO0JERUI7MTEwNyAxMTcxIDExQkU7CitCREVDO0JERUM7MTEwNyAxMTcxIDExQkY7QkRFQzsxMTA3IDExNzEgMTFCRjsKK0JERUQ7QkRFRDsxMTA3IDExNzEgMTFDMDtCREVEOzExMDcgMTE3MSAxMUMwOworQkRFRTtCREVFOzExMDcgMTE3MSAxMUMxO0JERUU7MTEwNyAxMTcxIDExQzE7CitCREVGO0JERUY7MTEwNyAxMTcxIDExQzI7QkRFRjsxMTA3IDExNzEgMTFDMjsKK0JERjA7QkRGMDsxMTA3IDExNzI7QkRGMDsxMTA3IDExNzI7CitCREYxO0JERjE7MTEwNyAxMTcyIDExQTg7QkRGMTsxMTA3IDExNzIgMTFBODsKK0JERjI7QkRGMjsxMTA3IDExNzIgMTFBOTtCREYyOzExMDcgMTE3MiAxMUE5OworQkRGMztCREYzOzExMDcgMTE3MiAxMUFBO0JERjM7MTEwNyAxMTcyIDExQUE7CitCREY0O0JERjQ7MTEwNyAxMTcyIDExQUI7QkRGNDsxMTA3IDExNzIgMTFBQjsKK0JERjU7QkRGNTsxMTA3IDExNzIgMTFBQztCREY1OzExMDcgMTE3MiAxMUFDOworQkRGNjtCREY2OzExMDcgMTE3MiAxMUFEO0JERjY7MTEwNyAxMTcyIDExQUQ7CitCREY3O0JERjc7MTEwNyAxMTcyIDExQUU7QkRGNzsxMTA3IDExNzIgMTFBRTsKK0JERjg7QkRGODsxMTA3IDExNzIgMTFBRjtCREY4OzExMDcgMTE3MiAxMUFGOworQkRGOTtCREY5OzExMDcgMTE3MiAxMUIwO0JERjk7MTEwNyAxMTcyIDExQjA7CitCREZBO0JERkE7MTEwNyAxMTcyIDExQjE7QkRGQTsxMTA3IDExNzIgMTFCMTsKK0JERkI7QkRGQjsxMTA3IDExNzIgMTFCMjtCREZCOzExMDcgMTE3MiAxMUIyOworQkRGQztCREZDOzExMDcgMTE3MiAxMUIzO0JERkM7MTEwNyAxMTcyIDExQjM7CitCREZEO0JERkQ7MTEwNyAxMTcyIDExQjQ7QkRGRDsxMTA3IDExNzIgMTFCNDsKK0JERkU7QkRGRTsxMTA3IDExNzIgMTFCNTtCREZFOzExMDcgMTE3MiAxMUI1OworQkRGRjtCREZGOzExMDcgMTE3MiAxMUI2O0JERkY7MTEwNyAxMTcyIDExQjY7CitCRTAwO0JFMDA7MTEwNyAxMTcyIDExQjc7QkUwMDsxMTA3IDExNzIgMTFCNzsKK0JFMDE7QkUwMTsxMTA3IDExNzIgMTFCODtCRTAxOzExMDcgMTE3MiAxMUI4OworQkUwMjtCRTAyOzExMDcgMTE3MiAxMUI5O0JFMDI7MTEwNyAxMTcyIDExQjk7CitCRTAzO0JFMDM7MTEwNyAxMTcyIDExQkE7QkUwMzsxMTA3IDExNzIgMTFCQTsKK0JFMDQ7QkUwNDsxMTA3IDExNzIgMTFCQjtCRTA0OzExMDcgMTE3MiAxMUJCOworQkUwNTtCRTA1OzExMDcgMTE3MiAxMUJDO0JFMDU7MTEwNyAxMTcyIDExQkM7CitCRTA2O0JFMDY7MTEwNyAxMTcyIDExQkQ7QkUwNjsxMTA3IDExNzIgMTFCRDsKK0JFMDc7QkUwNzsxMTA3IDExNzIgMTFCRTtCRTA3OzExMDcgMTE3MiAxMUJFOworQkUwODtCRTA4OzExMDcgMTE3MiAxMUJGO0JFMDg7MTEwNyAxMTcyIDExQkY7CitCRTA5O0JFMDk7MTEwNyAxMTcyIDExQzA7QkUwOTsxMTA3IDExNzIgMTFDMDsKK0JFMEE7QkUwQTsxMTA3IDExNzIgMTFDMTtCRTBBOzExMDcgMTE3MiAxMUMxOworQkUwQjtCRTBCOzExMDcgMTE3MiAxMUMyO0JFMEI7MTEwNyAxMTcyIDExQzI7CitCRTBDO0JFMEM7MTEwNyAxMTczO0JFMEM7MTEwNyAxMTczOworQkUwRDtCRTBEOzExMDcgMTE3MyAxMUE4O0JFMEQ7MTEwNyAxMTczIDExQTg7CitCRTBFO0JFMEU7MTEwNyAxMTczIDExQTk7QkUwRTsxMTA3IDExNzMgMTFBOTsKK0JFMEY7QkUwRjsxMTA3IDExNzMgMTFBQTtCRTBGOzExMDcgMTE3MyAxMUFBOworQkUxMDtCRTEwOzExMDcgMTE3MyAxMUFCO0JFMTA7MTEwNyAxMTczIDExQUI7CitCRTExO0JFMTE7MTEwNyAxMTczIDExQUM7QkUxMTsxMTA3IDExNzMgMTFBQzsKK0JFMTI7QkUxMjsxMTA3IDExNzMgMTFBRDtCRTEyOzExMDcgMTE3MyAxMUFEOworQkUxMztCRTEzOzExMDcgMTE3MyAxMUFFO0JFMTM7MTEwNyAxMTczIDExQUU7CitCRTE0O0JFMTQ7MTEwNyAxMTczIDExQUY7QkUxNDsxMTA3IDExNzMgMTFBRjsKK0JFMTU7QkUxNTsxMTA3IDExNzMgMTFCMDtCRTE1OzExMDcgMTE3MyAxMUIwOworQkUxNjtCRTE2OzExMDcgMTE3MyAxMUIxO0JFMTY7MTEwNyAxMTczIDExQjE7CitCRTE3O0JFMTc7MTEwNyAxMTczIDExQjI7QkUxNzsxMTA3IDExNzMgMTFCMjsKK0JFMTg7QkUxODsxMTA3IDExNzMgMTFCMztCRTE4OzExMDcgMTE3MyAxMUIzOworQkUxOTtCRTE5OzExMDcgMTE3MyAxMUI0O0JFMTk7MTEwNyAxMTczIDExQjQ7CitCRTFBO0JFMUE7MTEwNyAxMTczIDExQjU7QkUxQTsxMTA3IDExNzMgMTFCNTsKK0JFMUI7QkUxQjsxMTA3IDExNzMgMTFCNjtCRTFCOzExMDcgMTE3MyAxMUI2OworQkUxQztCRTFDOzExMDcgMTE3MyAxMUI3O0JFMUM7MTEwNyAxMTczIDExQjc7CitCRTFEO0JFMUQ7MTEwNyAxMTczIDExQjg7QkUxRDsxMTA3IDExNzMgMTFCODsKK0JFMUU7QkUxRTsxMTA3IDExNzMgMTFCOTtCRTFFOzExMDcgMTE3MyAxMUI5OworQkUxRjtCRTFGOzExMDcgMTE3MyAxMUJBO0JFMUY7MTEwNyAxMTczIDExQkE7CitCRTIwO0JFMjA7MTEwNyAxMTczIDExQkI7QkUyMDsxMTA3IDExNzMgMTFCQjsKK0JFMjE7QkUyMTsxMTA3IDExNzMgMTFCQztCRTIxOzExMDcgMTE3MyAxMUJDOworQkUyMjtCRTIyOzExMDcgMTE3MyAxMUJEO0JFMjI7MTEwNyAxMTczIDExQkQ7CitCRTIzO0JFMjM7MTEwNyAxMTczIDExQkU7QkUyMzsxMTA3IDExNzMgMTFCRTsKK0JFMjQ7QkUyNDsxMTA3IDExNzMgMTFCRjtCRTI0OzExMDcgMTE3MyAxMUJGOworQkUyNTtCRTI1OzExMDcgMTE3MyAxMUMwO0JFMjU7MTEwNyAxMTczIDExQzA7CitCRTI2O0JFMjY7MTEwNyAxMTczIDExQzE7QkUyNjsxMTA3IDExNzMgMTFDMTsKK0JFMjc7QkUyNzsxMTA3IDExNzMgMTFDMjtCRTI3OzExMDcgMTE3MyAxMUMyOworQkUyODtCRTI4OzExMDcgMTE3NDtCRTI4OzExMDcgMTE3NDsKK0JFMjk7QkUyOTsxMTA3IDExNzQgMTFBODtCRTI5OzExMDcgMTE3NCAxMUE4OworQkUyQTtCRTJBOzExMDcgMTE3NCAxMUE5O0JFMkE7MTEwNyAxMTc0IDExQTk7CitCRTJCO0JFMkI7MTEwNyAxMTc0IDExQUE7QkUyQjsxMTA3IDExNzQgMTFBQTsKK0JFMkM7QkUyQzsxMTA3IDExNzQgMTFBQjtCRTJDOzExMDcgMTE3NCAxMUFCOworQkUyRDtCRTJEOzExMDcgMTE3NCAxMUFDO0JFMkQ7MTEwNyAxMTc0IDExQUM7CitCRTJFO0JFMkU7MTEwNyAxMTc0IDExQUQ7QkUyRTsxMTA3IDExNzQgMTFBRDsKK0JFMkY7QkUyRjsxMTA3IDExNzQgMTFBRTtCRTJGOzExMDcgMTE3NCAxMUFFOworQkUzMDtCRTMwOzExMDcgMTE3NCAxMUFGO0JFMzA7MTEwNyAxMTc0IDExQUY7CitCRTMxO0JFMzE7MTEwNyAxMTc0IDExQjA7QkUzMTsxMTA3IDExNzQgMTFCMDsKK0JFMzI7QkUzMjsxMTA3IDExNzQgMTFCMTtCRTMyOzExMDcgMTE3NCAxMUIxOworQkUzMztCRTMzOzExMDcgMTE3NCAxMUIyO0JFMzM7MTEwNyAxMTc0IDExQjI7CitCRTM0O0JFMzQ7MTEwNyAxMTc0IDExQjM7QkUzNDsxMTA3IDExNzQgMTFCMzsKK0JFMzU7QkUzNTsxMTA3IDExNzQgMTFCNDtCRTM1OzExMDcgMTE3NCAxMUI0OworQkUzNjtCRTM2OzExMDcgMTE3NCAxMUI1O0JFMzY7MTEwNyAxMTc0IDExQjU7CitCRTM3O0JFMzc7MTEwNyAxMTc0IDExQjY7QkUzNzsxMTA3IDExNzQgMTFCNjsKK0JFMzg7QkUzODsxMTA3IDExNzQgMTFCNztCRTM4OzExMDcgMTE3NCAxMUI3OworQkUzOTtCRTM5OzExMDcgMTE3NCAxMUI4O0JFMzk7MTEwNyAxMTc0IDExQjg7CitCRTNBO0JFM0E7MTEwNyAxMTc0IDExQjk7QkUzQTsxMTA3IDExNzQgMTFCOTsKK0JFM0I7QkUzQjsxMTA3IDExNzQgMTFCQTtCRTNCOzExMDcgMTE3NCAxMUJBOworQkUzQztCRTNDOzExMDcgMTE3NCAxMUJCO0JFM0M7MTEwNyAxMTc0IDExQkI7CitCRTNEO0JFM0Q7MTEwNyAxMTc0IDExQkM7QkUzRDsxMTA3IDExNzQgMTFCQzsKK0JFM0U7QkUzRTsxMTA3IDExNzQgMTFCRDtCRTNFOzExMDcgMTE3NCAxMUJEOworQkUzRjtCRTNGOzExMDcgMTE3NCAxMUJFO0JFM0Y7MTEwNyAxMTc0IDExQkU7CitCRTQwO0JFNDA7MTEwNyAxMTc0IDExQkY7QkU0MDsxMTA3IDExNzQgMTFCRjsKK0JFNDE7QkU0MTsxMTA3IDExNzQgMTFDMDtCRTQxOzExMDcgMTE3NCAxMUMwOworQkU0MjtCRTQyOzExMDcgMTE3NCAxMUMxO0JFNDI7MTEwNyAxMTc0IDExQzE7CitCRTQzO0JFNDM7MTEwNyAxMTc0IDExQzI7QkU0MzsxMTA3IDExNzQgMTFDMjsKK0JFNDQ7QkU0NDsxMTA3IDExNzU7QkU0NDsxMTA3IDExNzU7CitCRTQ1O0JFNDU7MTEwNyAxMTc1IDExQTg7QkU0NTsxMTA3IDExNzUgMTFBODsKK0JFNDY7QkU0NjsxMTA3IDExNzUgMTFBOTtCRTQ2OzExMDcgMTE3NSAxMUE5OworQkU0NztCRTQ3OzExMDcgMTE3NSAxMUFBO0JFNDc7MTEwNyAxMTc1IDExQUE7CitCRTQ4O0JFNDg7MTEwNyAxMTc1IDExQUI7QkU0ODsxMTA3IDExNzUgMTFBQjsKK0JFNDk7QkU0OTsxMTA3IDExNzUgMTFBQztCRTQ5OzExMDcgMTE3NSAxMUFDOworQkU0QTtCRTRBOzExMDcgMTE3NSAxMUFEO0JFNEE7MTEwNyAxMTc1IDExQUQ7CitCRTRCO0JFNEI7MTEwNyAxMTc1IDExQUU7QkU0QjsxMTA3IDExNzUgMTFBRTsKK0JFNEM7QkU0QzsxMTA3IDExNzUgMTFBRjtCRTRDOzExMDcgMTE3NSAxMUFGOworQkU0RDtCRTREOzExMDcgMTE3NSAxMUIwO0JFNEQ7MTEwNyAxMTc1IDExQjA7CitCRTRFO0JFNEU7MTEwNyAxMTc1IDExQjE7QkU0RTsxMTA3IDExNzUgMTFCMTsKK0JFNEY7QkU0RjsxMTA3IDExNzUgMTFCMjtCRTRGOzExMDcgMTE3NSAxMUIyOworQkU1MDtCRTUwOzExMDcgMTE3NSAxMUIzO0JFNTA7MTEwNyAxMTc1IDExQjM7CitCRTUxO0JFNTE7MTEwNyAxMTc1IDExQjQ7QkU1MTsxMTA3IDExNzUgMTFCNDsKK0JFNTI7QkU1MjsxMTA3IDExNzUgMTFCNTtCRTUyOzExMDcgMTE3NSAxMUI1OworQkU1MztCRTUzOzExMDcgMTE3NSAxMUI2O0JFNTM7MTEwNyAxMTc1IDExQjY7CitCRTU0O0JFNTQ7MTEwNyAxMTc1IDExQjc7QkU1NDsxMTA3IDExNzUgMTFCNzsKK0JFNTU7QkU1NTsxMTA3IDExNzUgMTFCODtCRTU1OzExMDcgMTE3NSAxMUI4OworQkU1NjtCRTU2OzExMDcgMTE3NSAxMUI5O0JFNTY7MTEwNyAxMTc1IDExQjk7CitCRTU3O0JFNTc7MTEwNyAxMTc1IDExQkE7QkU1NzsxMTA3IDExNzUgMTFCQTsKK0JFNTg7QkU1ODsxMTA3IDExNzUgMTFCQjtCRTU4OzExMDcgMTE3NSAxMUJCOworQkU1OTtCRTU5OzExMDcgMTE3NSAxMUJDO0JFNTk7MTEwNyAxMTc1IDExQkM7CitCRTVBO0JFNUE7MTEwNyAxMTc1IDExQkQ7QkU1QTsxMTA3IDExNzUgMTFCRDsKK0JFNUI7QkU1QjsxMTA3IDExNzUgMTFCRTtCRTVCOzExMDcgMTE3NSAxMUJFOworQkU1QztCRTVDOzExMDcgMTE3NSAxMUJGO0JFNUM7MTEwNyAxMTc1IDExQkY7CitCRTVEO0JFNUQ7MTEwNyAxMTc1IDExQzA7QkU1RDsxMTA3IDExNzUgMTFDMDsKK0JFNUU7QkU1RTsxMTA3IDExNzUgMTFDMTtCRTVFOzExMDcgMTE3NSAxMUMxOworQkU1RjtCRTVGOzExMDcgMTE3NSAxMUMyO0JFNUY7MTEwNyAxMTc1IDExQzI7CitCRTYwO0JFNjA7MTEwOCAxMTYxO0JFNjA7MTEwOCAxMTYxOworQkU2MTtCRTYxOzExMDggMTE2MSAxMUE4O0JFNjE7MTEwOCAxMTYxIDExQTg7CitCRTYyO0JFNjI7MTEwOCAxMTYxIDExQTk7QkU2MjsxMTA4IDExNjEgMTFBOTsKK0JFNjM7QkU2MzsxMTA4IDExNjEgMTFBQTtCRTYzOzExMDggMTE2MSAxMUFBOworQkU2NDtCRTY0OzExMDggMTE2MSAxMUFCO0JFNjQ7MTEwOCAxMTYxIDExQUI7CitCRTY1O0JFNjU7MTEwOCAxMTYxIDExQUM7QkU2NTsxMTA4IDExNjEgMTFBQzsKK0JFNjY7QkU2NjsxMTA4IDExNjEgMTFBRDtCRTY2OzExMDggMTE2MSAxMUFEOworQkU2NztCRTY3OzExMDggMTE2MSAxMUFFO0JFNjc7MTEwOCAxMTYxIDExQUU7CitCRTY4O0JFNjg7MTEwOCAxMTYxIDExQUY7QkU2ODsxMTA4IDExNjEgMTFBRjsKK0JFNjk7QkU2OTsxMTA4IDExNjEgMTFCMDtCRTY5OzExMDggMTE2MSAxMUIwOworQkU2QTtCRTZBOzExMDggMTE2MSAxMUIxO0JFNkE7MTEwOCAxMTYxIDExQjE7CitCRTZCO0JFNkI7MTEwOCAxMTYxIDExQjI7QkU2QjsxMTA4IDExNjEgMTFCMjsKK0JFNkM7QkU2QzsxMTA4IDExNjEgMTFCMztCRTZDOzExMDggMTE2MSAxMUIzOworQkU2RDtCRTZEOzExMDggMTE2MSAxMUI0O0JFNkQ7MTEwOCAxMTYxIDExQjQ7CitCRTZFO0JFNkU7MTEwOCAxMTYxIDExQjU7QkU2RTsxMTA4IDExNjEgMTFCNTsKK0JFNkY7QkU2RjsxMTA4IDExNjEgMTFCNjtCRTZGOzExMDggMTE2MSAxMUI2OworQkU3MDtCRTcwOzExMDggMTE2MSAxMUI3O0JFNzA7MTEwOCAxMTYxIDExQjc7CitCRTcxO0JFNzE7MTEwOCAxMTYxIDExQjg7QkU3MTsxMTA4IDExNjEgMTFCODsKK0JFNzI7QkU3MjsxMTA4IDExNjEgMTFCOTtCRTcyOzExMDggMTE2MSAxMUI5OworQkU3MztCRTczOzExMDggMTE2MSAxMUJBO0JFNzM7MTEwOCAxMTYxIDExQkE7CitCRTc0O0JFNzQ7MTEwOCAxMTYxIDExQkI7QkU3NDsxMTA4IDExNjEgMTFCQjsKK0JFNzU7QkU3NTsxMTA4IDExNjEgMTFCQztCRTc1OzExMDggMTE2MSAxMUJDOworQkU3NjtCRTc2OzExMDggMTE2MSAxMUJEO0JFNzY7MTEwOCAxMTYxIDExQkQ7CitCRTc3O0JFNzc7MTEwOCAxMTYxIDExQkU7QkU3NzsxMTA4IDExNjEgMTFCRTsKK0JFNzg7QkU3ODsxMTA4IDExNjEgMTFCRjtCRTc4OzExMDggMTE2MSAxMUJGOworQkU3OTtCRTc5OzExMDggMTE2MSAxMUMwO0JFNzk7MTEwOCAxMTYxIDExQzA7CitCRTdBO0JFN0E7MTEwOCAxMTYxIDExQzE7QkU3QTsxMTA4IDExNjEgMTFDMTsKK0JFN0I7QkU3QjsxMTA4IDExNjEgMTFDMjtCRTdCOzExMDggMTE2MSAxMUMyOworQkU3QztCRTdDOzExMDggMTE2MjtCRTdDOzExMDggMTE2MjsKK0JFN0Q7QkU3RDsxMTA4IDExNjIgMTFBODtCRTdEOzExMDggMTE2MiAxMUE4OworQkU3RTtCRTdFOzExMDggMTE2MiAxMUE5O0JFN0U7MTEwOCAxMTYyIDExQTk7CitCRTdGO0JFN0Y7MTEwOCAxMTYyIDExQUE7QkU3RjsxMTA4IDExNjIgMTFBQTsKK0JFODA7QkU4MDsxMTA4IDExNjIgMTFBQjtCRTgwOzExMDggMTE2MiAxMUFCOworQkU4MTtCRTgxOzExMDggMTE2MiAxMUFDO0JFODE7MTEwOCAxMTYyIDExQUM7CitCRTgyO0JFODI7MTEwOCAxMTYyIDExQUQ7QkU4MjsxMTA4IDExNjIgMTFBRDsKK0JFODM7QkU4MzsxMTA4IDExNjIgMTFBRTtCRTgzOzExMDggMTE2MiAxMUFFOworQkU4NDtCRTg0OzExMDggMTE2MiAxMUFGO0JFODQ7MTEwOCAxMTYyIDExQUY7CitCRTg1O0JFODU7MTEwOCAxMTYyIDExQjA7QkU4NTsxMTA4IDExNjIgMTFCMDsKK0JFODY7QkU4NjsxMTA4IDExNjIgMTFCMTtCRTg2OzExMDggMTE2MiAxMUIxOworQkU4NztCRTg3OzExMDggMTE2MiAxMUIyO0JFODc7MTEwOCAxMTYyIDExQjI7CitCRTg4O0JFODg7MTEwOCAxMTYyIDExQjM7QkU4ODsxMTA4IDExNjIgMTFCMzsKK0JFODk7QkU4OTsxMTA4IDExNjIgMTFCNDtCRTg5OzExMDggMTE2MiAxMUI0OworQkU4QTtCRThBOzExMDggMTE2MiAxMUI1O0JFOEE7MTEwOCAxMTYyIDExQjU7CitCRThCO0JFOEI7MTEwOCAxMTYyIDExQjY7QkU4QjsxMTA4IDExNjIgMTFCNjsKK0JFOEM7QkU4QzsxMTA4IDExNjIgMTFCNztCRThDOzExMDggMTE2MiAxMUI3OworQkU4RDtCRThEOzExMDggMTE2MiAxMUI4O0JFOEQ7MTEwOCAxMTYyIDExQjg7CitCRThFO0JFOEU7MTEwOCAxMTYyIDExQjk7QkU4RTsxMTA4IDExNjIgMTFCOTsKK0JFOEY7QkU4RjsxMTA4IDExNjIgMTFCQTtCRThGOzExMDggMTE2MiAxMUJBOworQkU5MDtCRTkwOzExMDggMTE2MiAxMUJCO0JFOTA7MTEwOCAxMTYyIDExQkI7CitCRTkxO0JFOTE7MTEwOCAxMTYyIDExQkM7QkU5MTsxMTA4IDExNjIgMTFCQzsKK0JFOTI7QkU5MjsxMTA4IDExNjIgMTFCRDtCRTkyOzExMDggMTE2MiAxMUJEOworQkU5MztCRTkzOzExMDggMTE2MiAxMUJFO0JFOTM7MTEwOCAxMTYyIDExQkU7CitCRTk0O0JFOTQ7MTEwOCAxMTYyIDExQkY7QkU5NDsxMTA4IDExNjIgMTFCRjsKK0JFOTU7QkU5NTsxMTA4IDExNjIgMTFDMDtCRTk1OzExMDggMTE2MiAxMUMwOworQkU5NjtCRTk2OzExMDggMTE2MiAxMUMxO0JFOTY7MTEwOCAxMTYyIDExQzE7CitCRTk3O0JFOTc7MTEwOCAxMTYyIDExQzI7QkU5NzsxMTA4IDExNjIgMTFDMjsKK0JFOTg7QkU5ODsxMTA4IDExNjM7QkU5ODsxMTA4IDExNjM7CitCRTk5O0JFOTk7MTEwOCAxMTYzIDExQTg7QkU5OTsxMTA4IDExNjMgMTFBODsKK0JFOUE7QkU5QTsxMTA4IDExNjMgMTFBOTtCRTlBOzExMDggMTE2MyAxMUE5OworQkU5QjtCRTlCOzExMDggMTE2MyAxMUFBO0JFOUI7MTEwOCAxMTYzIDExQUE7CitCRTlDO0JFOUM7MTEwOCAxMTYzIDExQUI7QkU5QzsxMTA4IDExNjMgMTFBQjsKK0JFOUQ7QkU5RDsxMTA4IDExNjMgMTFBQztCRTlEOzExMDggMTE2MyAxMUFDOworQkU5RTtCRTlFOzExMDggMTE2MyAxMUFEO0JFOUU7MTEwOCAxMTYzIDExQUQ7CitCRTlGO0JFOUY7MTEwOCAxMTYzIDExQUU7QkU5RjsxMTA4IDExNjMgMTFBRTsKK0JFQTA7QkVBMDsxMTA4IDExNjMgMTFBRjtCRUEwOzExMDggMTE2MyAxMUFGOworQkVBMTtCRUExOzExMDggMTE2MyAxMUIwO0JFQTE7MTEwOCAxMTYzIDExQjA7CitCRUEyO0JFQTI7MTEwOCAxMTYzIDExQjE7QkVBMjsxMTA4IDExNjMgMTFCMTsKK0JFQTM7QkVBMzsxMTA4IDExNjMgMTFCMjtCRUEzOzExMDggMTE2MyAxMUIyOworQkVBNDtCRUE0OzExMDggMTE2MyAxMUIzO0JFQTQ7MTEwOCAxMTYzIDExQjM7CitCRUE1O0JFQTU7MTEwOCAxMTYzIDExQjQ7QkVBNTsxMTA4IDExNjMgMTFCNDsKK0JFQTY7QkVBNjsxMTA4IDExNjMgMTFCNTtCRUE2OzExMDggMTE2MyAxMUI1OworQkVBNztCRUE3OzExMDggMTE2MyAxMUI2O0JFQTc7MTEwOCAxMTYzIDExQjY7CitCRUE4O0JFQTg7MTEwOCAxMTYzIDExQjc7QkVBODsxMTA4IDExNjMgMTFCNzsKK0JFQTk7QkVBOTsxMTA4IDExNjMgMTFCODtCRUE5OzExMDggMTE2MyAxMUI4OworQkVBQTtCRUFBOzExMDggMTE2MyAxMUI5O0JFQUE7MTEwOCAxMTYzIDExQjk7CitCRUFCO0JFQUI7MTEwOCAxMTYzIDExQkE7QkVBQjsxMTA4IDExNjMgMTFCQTsKK0JFQUM7QkVBQzsxMTA4IDExNjMgMTFCQjtCRUFDOzExMDggMTE2MyAxMUJCOworQkVBRDtCRUFEOzExMDggMTE2MyAxMUJDO0JFQUQ7MTEwOCAxMTYzIDExQkM7CitCRUFFO0JFQUU7MTEwOCAxMTYzIDExQkQ7QkVBRTsxMTA4IDExNjMgMTFCRDsKK0JFQUY7QkVBRjsxMTA4IDExNjMgMTFCRTtCRUFGOzExMDggMTE2MyAxMUJFOworQkVCMDtCRUIwOzExMDggMTE2MyAxMUJGO0JFQjA7MTEwOCAxMTYzIDExQkY7CitCRUIxO0JFQjE7MTEwOCAxMTYzIDExQzA7QkVCMTsxMTA4IDExNjMgMTFDMDsKK0JFQjI7QkVCMjsxMTA4IDExNjMgMTFDMTtCRUIyOzExMDggMTE2MyAxMUMxOworQkVCMztCRUIzOzExMDggMTE2MyAxMUMyO0JFQjM7MTEwOCAxMTYzIDExQzI7CitCRUI0O0JFQjQ7MTEwOCAxMTY0O0JFQjQ7MTEwOCAxMTY0OworQkVCNTtCRUI1OzExMDggMTE2NCAxMUE4O0JFQjU7MTEwOCAxMTY0IDExQTg7CitCRUI2O0JFQjY7MTEwOCAxMTY0IDExQTk7QkVCNjsxMTA4IDExNjQgMTFBOTsKK0JFQjc7QkVCNzsxMTA4IDExNjQgMTFBQTtCRUI3OzExMDggMTE2NCAxMUFBOworQkVCODtCRUI4OzExMDggMTE2NCAxMUFCO0JFQjg7MTEwOCAxMTY0IDExQUI7CitCRUI5O0JFQjk7MTEwOCAxMTY0IDExQUM7QkVCOTsxMTA4IDExNjQgMTFBQzsKK0JFQkE7QkVCQTsxMTA4IDExNjQgMTFBRDtCRUJBOzExMDggMTE2NCAxMUFEOworQkVCQjtCRUJCOzExMDggMTE2NCAxMUFFO0JFQkI7MTEwOCAxMTY0IDExQUU7CitCRUJDO0JFQkM7MTEwOCAxMTY0IDExQUY7QkVCQzsxMTA4IDExNjQgMTFBRjsKK0JFQkQ7QkVCRDsxMTA4IDExNjQgMTFCMDtCRUJEOzExMDggMTE2NCAxMUIwOworQkVCRTtCRUJFOzExMDggMTE2NCAxMUIxO0JFQkU7MTEwOCAxMTY0IDExQjE7CitCRUJGO0JFQkY7MTEwOCAxMTY0IDExQjI7QkVCRjsxMTA4IDExNjQgMTFCMjsKK0JFQzA7QkVDMDsxMTA4IDExNjQgMTFCMztCRUMwOzExMDggMTE2NCAxMUIzOworQkVDMTtCRUMxOzExMDggMTE2NCAxMUI0O0JFQzE7MTEwOCAxMTY0IDExQjQ7CitCRUMyO0JFQzI7MTEwOCAxMTY0IDExQjU7QkVDMjsxMTA4IDExNjQgMTFCNTsKK0JFQzM7QkVDMzsxMTA4IDExNjQgMTFCNjtCRUMzOzExMDggMTE2NCAxMUI2OworQkVDNDtCRUM0OzExMDggMTE2NCAxMUI3O0JFQzQ7MTEwOCAxMTY0IDExQjc7CitCRUM1O0JFQzU7MTEwOCAxMTY0IDExQjg7QkVDNTsxMTA4IDExNjQgMTFCODsKK0JFQzY7QkVDNjsxMTA4IDExNjQgMTFCOTtCRUM2OzExMDggMTE2NCAxMUI5OworQkVDNztCRUM3OzExMDggMTE2NCAxMUJBO0JFQzc7MTEwOCAxMTY0IDExQkE7CitCRUM4O0JFQzg7MTEwOCAxMTY0IDExQkI7QkVDODsxMTA4IDExNjQgMTFCQjsKK0JFQzk7QkVDOTsxMTA4IDExNjQgMTFCQztCRUM5OzExMDggMTE2NCAxMUJDOworQkVDQTtCRUNBOzExMDggMTE2NCAxMUJEO0JFQ0E7MTEwOCAxMTY0IDExQkQ7CitCRUNCO0JFQ0I7MTEwOCAxMTY0IDExQkU7QkVDQjsxMTA4IDExNjQgMTFCRTsKK0JFQ0M7QkVDQzsxMTA4IDExNjQgMTFCRjtCRUNDOzExMDggMTE2NCAxMUJGOworQkVDRDtCRUNEOzExMDggMTE2NCAxMUMwO0JFQ0Q7MTEwOCAxMTY0IDExQzA7CitCRUNFO0JFQ0U7MTEwOCAxMTY0IDExQzE7QkVDRTsxMTA4IDExNjQgMTFDMTsKK0JFQ0Y7QkVDRjsxMTA4IDExNjQgMTFDMjtCRUNGOzExMDggMTE2NCAxMUMyOworQkVEMDtCRUQwOzExMDggMTE2NTtCRUQwOzExMDggMTE2NTsKK0JFRDE7QkVEMTsxMTA4IDExNjUgMTFBODtCRUQxOzExMDggMTE2NSAxMUE4OworQkVEMjtCRUQyOzExMDggMTE2NSAxMUE5O0JFRDI7MTEwOCAxMTY1IDExQTk7CitCRUQzO0JFRDM7MTEwOCAxMTY1IDExQUE7QkVEMzsxMTA4IDExNjUgMTFBQTsKK0JFRDQ7QkVENDsxMTA4IDExNjUgMTFBQjtCRUQ0OzExMDggMTE2NSAxMUFCOworQkVENTtCRUQ1OzExMDggMTE2NSAxMUFDO0JFRDU7MTEwOCAxMTY1IDExQUM7CitCRUQ2O0JFRDY7MTEwOCAxMTY1IDExQUQ7QkVENjsxMTA4IDExNjUgMTFBRDsKK0JFRDc7QkVENzsxMTA4IDExNjUgMTFBRTtCRUQ3OzExMDggMTE2NSAxMUFFOworQkVEODtCRUQ4OzExMDggMTE2NSAxMUFGO0JFRDg7MTEwOCAxMTY1IDExQUY7CitCRUQ5O0JFRDk7MTEwOCAxMTY1IDExQjA7QkVEOTsxMTA4IDExNjUgMTFCMDsKK0JFREE7QkVEQTsxMTA4IDExNjUgMTFCMTtCRURBOzExMDggMTE2NSAxMUIxOworQkVEQjtCRURCOzExMDggMTE2NSAxMUIyO0JFREI7MTEwOCAxMTY1IDExQjI7CitCRURDO0JFREM7MTEwOCAxMTY1IDExQjM7QkVEQzsxMTA4IDExNjUgMTFCMzsKK0JFREQ7QkVERDsxMTA4IDExNjUgMTFCNDtCRUREOzExMDggMTE2NSAxMUI0OworQkVERTtCRURFOzExMDggMTE2NSAxMUI1O0JFREU7MTEwOCAxMTY1IDExQjU7CitCRURGO0JFREY7MTEwOCAxMTY1IDExQjY7QkVERjsxMTA4IDExNjUgMTFCNjsKK0JFRTA7QkVFMDsxMTA4IDExNjUgMTFCNztCRUUwOzExMDggMTE2NSAxMUI3OworQkVFMTtCRUUxOzExMDggMTE2NSAxMUI4O0JFRTE7MTEwOCAxMTY1IDExQjg7CitCRUUyO0JFRTI7MTEwOCAxMTY1IDExQjk7QkVFMjsxMTA4IDExNjUgMTFCOTsKK0JFRTM7QkVFMzsxMTA4IDExNjUgMTFCQTtCRUUzOzExMDggMTE2NSAxMUJBOworQkVFNDtCRUU0OzExMDggMTE2NSAxMUJCO0JFRTQ7MTEwOCAxMTY1IDExQkI7CitCRUU1O0JFRTU7MTEwOCAxMTY1IDExQkM7QkVFNTsxMTA4IDExNjUgMTFCQzsKK0JFRTY7QkVFNjsxMTA4IDExNjUgMTFCRDtCRUU2OzExMDggMTE2NSAxMUJEOworQkVFNztCRUU3OzExMDggMTE2NSAxMUJFO0JFRTc7MTEwOCAxMTY1IDExQkU7CitCRUU4O0JFRTg7MTEwOCAxMTY1IDExQkY7QkVFODsxMTA4IDExNjUgMTFCRjsKK0JFRTk7QkVFOTsxMTA4IDExNjUgMTFDMDtCRUU5OzExMDggMTE2NSAxMUMwOworQkVFQTtCRUVBOzExMDggMTE2NSAxMUMxO0JFRUE7MTEwOCAxMTY1IDExQzE7CitCRUVCO0JFRUI7MTEwOCAxMTY1IDExQzI7QkVFQjsxMTA4IDExNjUgMTFDMjsKK0JFRUM7QkVFQzsxMTA4IDExNjY7QkVFQzsxMTA4IDExNjY7CitCRUVEO0JFRUQ7MTEwOCAxMTY2IDExQTg7QkVFRDsxMTA4IDExNjYgMTFBODsKK0JFRUU7QkVFRTsxMTA4IDExNjYgMTFBOTtCRUVFOzExMDggMTE2NiAxMUE5OworQkVFRjtCRUVGOzExMDggMTE2NiAxMUFBO0JFRUY7MTEwOCAxMTY2IDExQUE7CitCRUYwO0JFRjA7MTEwOCAxMTY2IDExQUI7QkVGMDsxMTA4IDExNjYgMTFBQjsKK0JFRjE7QkVGMTsxMTA4IDExNjYgMTFBQztCRUYxOzExMDggMTE2NiAxMUFDOworQkVGMjtCRUYyOzExMDggMTE2NiAxMUFEO0JFRjI7MTEwOCAxMTY2IDExQUQ7CitCRUYzO0JFRjM7MTEwOCAxMTY2IDExQUU7QkVGMzsxMTA4IDExNjYgMTFBRTsKK0JFRjQ7QkVGNDsxMTA4IDExNjYgMTFBRjtCRUY0OzExMDggMTE2NiAxMUFGOworQkVGNTtCRUY1OzExMDggMTE2NiAxMUIwO0JFRjU7MTEwOCAxMTY2IDExQjA7CitCRUY2O0JFRjY7MTEwOCAxMTY2IDExQjE7QkVGNjsxMTA4IDExNjYgMTFCMTsKK0JFRjc7QkVGNzsxMTA4IDExNjYgMTFCMjtCRUY3OzExMDggMTE2NiAxMUIyOworQkVGODtCRUY4OzExMDggMTE2NiAxMUIzO0JFRjg7MTEwOCAxMTY2IDExQjM7CitCRUY5O0JFRjk7MTEwOCAxMTY2IDExQjQ7QkVGOTsxMTA4IDExNjYgMTFCNDsKK0JFRkE7QkVGQTsxMTA4IDExNjYgMTFCNTtCRUZBOzExMDggMTE2NiAxMUI1OworQkVGQjtCRUZCOzExMDggMTE2NiAxMUI2O0JFRkI7MTEwOCAxMTY2IDExQjY7CitCRUZDO0JFRkM7MTEwOCAxMTY2IDExQjc7QkVGQzsxMTA4IDExNjYgMTFCNzsKK0JFRkQ7QkVGRDsxMTA4IDExNjYgMTFCODtCRUZEOzExMDggMTE2NiAxMUI4OworQkVGRTtCRUZFOzExMDggMTE2NiAxMUI5O0JFRkU7MTEwOCAxMTY2IDExQjk7CitCRUZGO0JFRkY7MTEwOCAxMTY2IDExQkE7QkVGRjsxMTA4IDExNjYgMTFCQTsKK0JGMDA7QkYwMDsxMTA4IDExNjYgMTFCQjtCRjAwOzExMDggMTE2NiAxMUJCOworQkYwMTtCRjAxOzExMDggMTE2NiAxMUJDO0JGMDE7MTEwOCAxMTY2IDExQkM7CitCRjAyO0JGMDI7MTEwOCAxMTY2IDExQkQ7QkYwMjsxMTA4IDExNjYgMTFCRDsKK0JGMDM7QkYwMzsxMTA4IDExNjYgMTFCRTtCRjAzOzExMDggMTE2NiAxMUJFOworQkYwNDtCRjA0OzExMDggMTE2NiAxMUJGO0JGMDQ7MTEwOCAxMTY2IDExQkY7CitCRjA1O0JGMDU7MTEwOCAxMTY2IDExQzA7QkYwNTsxMTA4IDExNjYgMTFDMDsKK0JGMDY7QkYwNjsxMTA4IDExNjYgMTFDMTtCRjA2OzExMDggMTE2NiAxMUMxOworQkYwNztCRjA3OzExMDggMTE2NiAxMUMyO0JGMDc7MTEwOCAxMTY2IDExQzI7CitCRjA4O0JGMDg7MTEwOCAxMTY3O0JGMDg7MTEwOCAxMTY3OworQkYwOTtCRjA5OzExMDggMTE2NyAxMUE4O0JGMDk7MTEwOCAxMTY3IDExQTg7CitCRjBBO0JGMEE7MTEwOCAxMTY3IDExQTk7QkYwQTsxMTA4IDExNjcgMTFBOTsKK0JGMEI7QkYwQjsxMTA4IDExNjcgMTFBQTtCRjBCOzExMDggMTE2NyAxMUFBOworQkYwQztCRjBDOzExMDggMTE2NyAxMUFCO0JGMEM7MTEwOCAxMTY3IDExQUI7CitCRjBEO0JGMEQ7MTEwOCAxMTY3IDExQUM7QkYwRDsxMTA4IDExNjcgMTFBQzsKK0JGMEU7QkYwRTsxMTA4IDExNjcgMTFBRDtCRjBFOzExMDggMTE2NyAxMUFEOworQkYwRjtCRjBGOzExMDggMTE2NyAxMUFFO0JGMEY7MTEwOCAxMTY3IDExQUU7CitCRjEwO0JGMTA7MTEwOCAxMTY3IDExQUY7QkYxMDsxMTA4IDExNjcgMTFBRjsKK0JGMTE7QkYxMTsxMTA4IDExNjcgMTFCMDtCRjExOzExMDggMTE2NyAxMUIwOworQkYxMjtCRjEyOzExMDggMTE2NyAxMUIxO0JGMTI7MTEwOCAxMTY3IDExQjE7CitCRjEzO0JGMTM7MTEwOCAxMTY3IDExQjI7QkYxMzsxMTA4IDExNjcgMTFCMjsKK0JGMTQ7QkYxNDsxMTA4IDExNjcgMTFCMztCRjE0OzExMDggMTE2NyAxMUIzOworQkYxNTtCRjE1OzExMDggMTE2NyAxMUI0O0JGMTU7MTEwOCAxMTY3IDExQjQ7CitCRjE2O0JGMTY7MTEwOCAxMTY3IDExQjU7QkYxNjsxMTA4IDExNjcgMTFCNTsKK0JGMTc7QkYxNzsxMTA4IDExNjcgMTFCNjtCRjE3OzExMDggMTE2NyAxMUI2OworQkYxODtCRjE4OzExMDggMTE2NyAxMUI3O0JGMTg7MTEwOCAxMTY3IDExQjc7CitCRjE5O0JGMTk7MTEwOCAxMTY3IDExQjg7QkYxOTsxMTA4IDExNjcgMTFCODsKK0JGMUE7QkYxQTsxMTA4IDExNjcgMTFCOTtCRjFBOzExMDggMTE2NyAxMUI5OworQkYxQjtCRjFCOzExMDggMTE2NyAxMUJBO0JGMUI7MTEwOCAxMTY3IDExQkE7CitCRjFDO0JGMUM7MTEwOCAxMTY3IDExQkI7QkYxQzsxMTA4IDExNjcgMTFCQjsKK0JGMUQ7QkYxRDsxMTA4IDExNjcgMTFCQztCRjFEOzExMDggMTE2NyAxMUJDOworQkYxRTtCRjFFOzExMDggMTE2NyAxMUJEO0JGMUU7MTEwOCAxMTY3IDExQkQ7CitCRjFGO0JGMUY7MTEwOCAxMTY3IDExQkU7QkYxRjsxMTA4IDExNjcgMTFCRTsKK0JGMjA7QkYyMDsxMTA4IDExNjcgMTFCRjtCRjIwOzExMDggMTE2NyAxMUJGOworQkYyMTtCRjIxOzExMDggMTE2NyAxMUMwO0JGMjE7MTEwOCAxMTY3IDExQzA7CitCRjIyO0JGMjI7MTEwOCAxMTY3IDExQzE7QkYyMjsxMTA4IDExNjcgMTFDMTsKK0JGMjM7QkYyMzsxMTA4IDExNjcgMTFDMjtCRjIzOzExMDggMTE2NyAxMUMyOworQkYyNDtCRjI0OzExMDggMTE2ODtCRjI0OzExMDggMTE2ODsKK0JGMjU7QkYyNTsxMTA4IDExNjggMTFBODtCRjI1OzExMDggMTE2OCAxMUE4OworQkYyNjtCRjI2OzExMDggMTE2OCAxMUE5O0JGMjY7MTEwOCAxMTY4IDExQTk7CitCRjI3O0JGMjc7MTEwOCAxMTY4IDExQUE7QkYyNzsxMTA4IDExNjggMTFBQTsKK0JGMjg7QkYyODsxMTA4IDExNjggMTFBQjtCRjI4OzExMDggMTE2OCAxMUFCOworQkYyOTtCRjI5OzExMDggMTE2OCAxMUFDO0JGMjk7MTEwOCAxMTY4IDExQUM7CitCRjJBO0JGMkE7MTEwOCAxMTY4IDExQUQ7QkYyQTsxMTA4IDExNjggMTFBRDsKK0JGMkI7QkYyQjsxMTA4IDExNjggMTFBRTtCRjJCOzExMDggMTE2OCAxMUFFOworQkYyQztCRjJDOzExMDggMTE2OCAxMUFGO0JGMkM7MTEwOCAxMTY4IDExQUY7CitCRjJEO0JGMkQ7MTEwOCAxMTY4IDExQjA7QkYyRDsxMTA4IDExNjggMTFCMDsKK0JGMkU7QkYyRTsxMTA4IDExNjggMTFCMTtCRjJFOzExMDggMTE2OCAxMUIxOworQkYyRjtCRjJGOzExMDggMTE2OCAxMUIyO0JGMkY7MTEwOCAxMTY4IDExQjI7CitCRjMwO0JGMzA7MTEwOCAxMTY4IDExQjM7QkYzMDsxMTA4IDExNjggMTFCMzsKK0JGMzE7QkYzMTsxMTA4IDExNjggMTFCNDtCRjMxOzExMDggMTE2OCAxMUI0OworQkYzMjtCRjMyOzExMDggMTE2OCAxMUI1O0JGMzI7MTEwOCAxMTY4IDExQjU7CitCRjMzO0JGMzM7MTEwOCAxMTY4IDExQjY7QkYzMzsxMTA4IDExNjggMTFCNjsKK0JGMzQ7QkYzNDsxMTA4IDExNjggMTFCNztCRjM0OzExMDggMTE2OCAxMUI3OworQkYzNTtCRjM1OzExMDggMTE2OCAxMUI4O0JGMzU7MTEwOCAxMTY4IDExQjg7CitCRjM2O0JGMzY7MTEwOCAxMTY4IDExQjk7QkYzNjsxMTA4IDExNjggMTFCOTsKK0JGMzc7QkYzNzsxMTA4IDExNjggMTFCQTtCRjM3OzExMDggMTE2OCAxMUJBOworQkYzODtCRjM4OzExMDggMTE2OCAxMUJCO0JGMzg7MTEwOCAxMTY4IDExQkI7CitCRjM5O0JGMzk7MTEwOCAxMTY4IDExQkM7QkYzOTsxMTA4IDExNjggMTFCQzsKK0JGM0E7QkYzQTsxMTA4IDExNjggMTFCRDtCRjNBOzExMDggMTE2OCAxMUJEOworQkYzQjtCRjNCOzExMDggMTE2OCAxMUJFO0JGM0I7MTEwOCAxMTY4IDExQkU7CitCRjNDO0JGM0M7MTEwOCAxMTY4IDExQkY7QkYzQzsxMTA4IDExNjggMTFCRjsKK0JGM0Q7QkYzRDsxMTA4IDExNjggMTFDMDtCRjNEOzExMDggMTE2OCAxMUMwOworQkYzRTtCRjNFOzExMDggMTE2OCAxMUMxO0JGM0U7MTEwOCAxMTY4IDExQzE7CitCRjNGO0JGM0Y7MTEwOCAxMTY4IDExQzI7QkYzRjsxMTA4IDExNjggMTFDMjsKK0JGNDA7QkY0MDsxMTA4IDExNjk7QkY0MDsxMTA4IDExNjk7CitCRjQxO0JGNDE7MTEwOCAxMTY5IDExQTg7QkY0MTsxMTA4IDExNjkgMTFBODsKK0JGNDI7QkY0MjsxMTA4IDExNjkgMTFBOTtCRjQyOzExMDggMTE2OSAxMUE5OworQkY0MztCRjQzOzExMDggMTE2OSAxMUFBO0JGNDM7MTEwOCAxMTY5IDExQUE7CitCRjQ0O0JGNDQ7MTEwOCAxMTY5IDExQUI7QkY0NDsxMTA4IDExNjkgMTFBQjsKK0JGNDU7QkY0NTsxMTA4IDExNjkgMTFBQztCRjQ1OzExMDggMTE2OSAxMUFDOworQkY0NjtCRjQ2OzExMDggMTE2OSAxMUFEO0JGNDY7MTEwOCAxMTY5IDExQUQ7CitCRjQ3O0JGNDc7MTEwOCAxMTY5IDExQUU7QkY0NzsxMTA4IDExNjkgMTFBRTsKK0JGNDg7QkY0ODsxMTA4IDExNjkgMTFBRjtCRjQ4OzExMDggMTE2OSAxMUFGOworQkY0OTtCRjQ5OzExMDggMTE2OSAxMUIwO0JGNDk7MTEwOCAxMTY5IDExQjA7CitCRjRBO0JGNEE7MTEwOCAxMTY5IDExQjE7QkY0QTsxMTA4IDExNjkgMTFCMTsKK0JGNEI7QkY0QjsxMTA4IDExNjkgMTFCMjtCRjRCOzExMDggMTE2OSAxMUIyOworQkY0QztCRjRDOzExMDggMTE2OSAxMUIzO0JGNEM7MTEwOCAxMTY5IDExQjM7CitCRjREO0JGNEQ7MTEwOCAxMTY5IDExQjQ7QkY0RDsxMTA4IDExNjkgMTFCNDsKK0JGNEU7QkY0RTsxMTA4IDExNjkgMTFCNTtCRjRFOzExMDggMTE2OSAxMUI1OworQkY0RjtCRjRGOzExMDggMTE2OSAxMUI2O0JGNEY7MTEwOCAxMTY5IDExQjY7CitCRjUwO0JGNTA7MTEwOCAxMTY5IDExQjc7QkY1MDsxMTA4IDExNjkgMTFCNzsKK0JGNTE7QkY1MTsxMTA4IDExNjkgMTFCODtCRjUxOzExMDggMTE2OSAxMUI4OworQkY1MjtCRjUyOzExMDggMTE2OSAxMUI5O0JGNTI7MTEwOCAxMTY5IDExQjk7CitCRjUzO0JGNTM7MTEwOCAxMTY5IDExQkE7QkY1MzsxMTA4IDExNjkgMTFCQTsKK0JGNTQ7QkY1NDsxMTA4IDExNjkgMTFCQjtCRjU0OzExMDggMTE2OSAxMUJCOworQkY1NTtCRjU1OzExMDggMTE2OSAxMUJDO0JGNTU7MTEwOCAxMTY5IDExQkM7CitCRjU2O0JGNTY7MTEwOCAxMTY5IDExQkQ7QkY1NjsxMTA4IDExNjkgMTFCRDsKK0JGNTc7QkY1NzsxMTA4IDExNjkgMTFCRTtCRjU3OzExMDggMTE2OSAxMUJFOworQkY1ODtCRjU4OzExMDggMTE2OSAxMUJGO0JGNTg7MTEwOCAxMTY5IDExQkY7CitCRjU5O0JGNTk7MTEwOCAxMTY5IDExQzA7QkY1OTsxMTA4IDExNjkgMTFDMDsKK0JGNUE7QkY1QTsxMTA4IDExNjkgMTFDMTtCRjVBOzExMDggMTE2OSAxMUMxOworQkY1QjtCRjVCOzExMDggMTE2OSAxMUMyO0JGNUI7MTEwOCAxMTY5IDExQzI7CitCRjVDO0JGNUM7MTEwOCAxMTZBO0JGNUM7MTEwOCAxMTZBOworQkY1RDtCRjVEOzExMDggMTE2QSAxMUE4O0JGNUQ7MTEwOCAxMTZBIDExQTg7CitCRjVFO0JGNUU7MTEwOCAxMTZBIDExQTk7QkY1RTsxMTA4IDExNkEgMTFBOTsKK0JGNUY7QkY1RjsxMTA4IDExNkEgMTFBQTtCRjVGOzExMDggMTE2QSAxMUFBOworQkY2MDtCRjYwOzExMDggMTE2QSAxMUFCO0JGNjA7MTEwOCAxMTZBIDExQUI7CitCRjYxO0JGNjE7MTEwOCAxMTZBIDExQUM7QkY2MTsxMTA4IDExNkEgMTFBQzsKK0JGNjI7QkY2MjsxMTA4IDExNkEgMTFBRDtCRjYyOzExMDggMTE2QSAxMUFEOworQkY2MztCRjYzOzExMDggMTE2QSAxMUFFO0JGNjM7MTEwOCAxMTZBIDExQUU7CitCRjY0O0JGNjQ7MTEwOCAxMTZBIDExQUY7QkY2NDsxMTA4IDExNkEgMTFBRjsKK0JGNjU7QkY2NTsxMTA4IDExNkEgMTFCMDtCRjY1OzExMDggMTE2QSAxMUIwOworQkY2NjtCRjY2OzExMDggMTE2QSAxMUIxO0JGNjY7MTEwOCAxMTZBIDExQjE7CitCRjY3O0JGNjc7MTEwOCAxMTZBIDExQjI7QkY2NzsxMTA4IDExNkEgMTFCMjsKK0JGNjg7QkY2ODsxMTA4IDExNkEgMTFCMztCRjY4OzExMDggMTE2QSAxMUIzOworQkY2OTtCRjY5OzExMDggMTE2QSAxMUI0O0JGNjk7MTEwOCAxMTZBIDExQjQ7CitCRjZBO0JGNkE7MTEwOCAxMTZBIDExQjU7QkY2QTsxMTA4IDExNkEgMTFCNTsKK0JGNkI7QkY2QjsxMTA4IDExNkEgMTFCNjtCRjZCOzExMDggMTE2QSAxMUI2OworQkY2QztCRjZDOzExMDggMTE2QSAxMUI3O0JGNkM7MTEwOCAxMTZBIDExQjc7CitCRjZEO0JGNkQ7MTEwOCAxMTZBIDExQjg7QkY2RDsxMTA4IDExNkEgMTFCODsKK0JGNkU7QkY2RTsxMTA4IDExNkEgMTFCOTtCRjZFOzExMDggMTE2QSAxMUI5OworQkY2RjtCRjZGOzExMDggMTE2QSAxMUJBO0JGNkY7MTEwOCAxMTZBIDExQkE7CitCRjcwO0JGNzA7MTEwOCAxMTZBIDExQkI7QkY3MDsxMTA4IDExNkEgMTFCQjsKK0JGNzE7QkY3MTsxMTA4IDExNkEgMTFCQztCRjcxOzExMDggMTE2QSAxMUJDOworQkY3MjtCRjcyOzExMDggMTE2QSAxMUJEO0JGNzI7MTEwOCAxMTZBIDExQkQ7CitCRjczO0JGNzM7MTEwOCAxMTZBIDExQkU7QkY3MzsxMTA4IDExNkEgMTFCRTsKK0JGNzQ7QkY3NDsxMTA4IDExNkEgMTFCRjtCRjc0OzExMDggMTE2QSAxMUJGOworQkY3NTtCRjc1OzExMDggMTE2QSAxMUMwO0JGNzU7MTEwOCAxMTZBIDExQzA7CitCRjc2O0JGNzY7MTEwOCAxMTZBIDExQzE7QkY3NjsxMTA4IDExNkEgMTFDMTsKK0JGNzc7QkY3NzsxMTA4IDExNkEgMTFDMjtCRjc3OzExMDggMTE2QSAxMUMyOworQkY3ODtCRjc4OzExMDggMTE2QjtCRjc4OzExMDggMTE2QjsKK0JGNzk7QkY3OTsxMTA4IDExNkIgMTFBODtCRjc5OzExMDggMTE2QiAxMUE4OworQkY3QTtCRjdBOzExMDggMTE2QiAxMUE5O0JGN0E7MTEwOCAxMTZCIDExQTk7CitCRjdCO0JGN0I7MTEwOCAxMTZCIDExQUE7QkY3QjsxMTA4IDExNkIgMTFBQTsKK0JGN0M7QkY3QzsxMTA4IDExNkIgMTFBQjtCRjdDOzExMDggMTE2QiAxMUFCOworQkY3RDtCRjdEOzExMDggMTE2QiAxMUFDO0JGN0Q7MTEwOCAxMTZCIDExQUM7CitCRjdFO0JGN0U7MTEwOCAxMTZCIDExQUQ7QkY3RTsxMTA4IDExNkIgMTFBRDsKK0JGN0Y7QkY3RjsxMTA4IDExNkIgMTFBRTtCRjdGOzExMDggMTE2QiAxMUFFOworQkY4MDtCRjgwOzExMDggMTE2QiAxMUFGO0JGODA7MTEwOCAxMTZCIDExQUY7CitCRjgxO0JGODE7MTEwOCAxMTZCIDExQjA7QkY4MTsxMTA4IDExNkIgMTFCMDsKK0JGODI7QkY4MjsxMTA4IDExNkIgMTFCMTtCRjgyOzExMDggMTE2QiAxMUIxOworQkY4MztCRjgzOzExMDggMTE2QiAxMUIyO0JGODM7MTEwOCAxMTZCIDExQjI7CitCRjg0O0JGODQ7MTEwOCAxMTZCIDExQjM7QkY4NDsxMTA4IDExNkIgMTFCMzsKK0JGODU7QkY4NTsxMTA4IDExNkIgMTFCNDtCRjg1OzExMDggMTE2QiAxMUI0OworQkY4NjtCRjg2OzExMDggMTE2QiAxMUI1O0JGODY7MTEwOCAxMTZCIDExQjU7CitCRjg3O0JGODc7MTEwOCAxMTZCIDExQjY7QkY4NzsxMTA4IDExNkIgMTFCNjsKK0JGODg7QkY4ODsxMTA4IDExNkIgMTFCNztCRjg4OzExMDggMTE2QiAxMUI3OworQkY4OTtCRjg5OzExMDggMTE2QiAxMUI4O0JGODk7MTEwOCAxMTZCIDExQjg7CitCRjhBO0JGOEE7MTEwOCAxMTZCIDExQjk7QkY4QTsxMTA4IDExNkIgMTFCOTsKK0JGOEI7QkY4QjsxMTA4IDExNkIgMTFCQTtCRjhCOzExMDggMTE2QiAxMUJBOworQkY4QztCRjhDOzExMDggMTE2QiAxMUJCO0JGOEM7MTEwOCAxMTZCIDExQkI7CitCRjhEO0JGOEQ7MTEwOCAxMTZCIDExQkM7QkY4RDsxMTA4IDExNkIgMTFCQzsKK0JGOEU7QkY4RTsxMTA4IDExNkIgMTFCRDtCRjhFOzExMDggMTE2QiAxMUJEOworQkY4RjtCRjhGOzExMDggMTE2QiAxMUJFO0JGOEY7MTEwOCAxMTZCIDExQkU7CitCRjkwO0JGOTA7MTEwOCAxMTZCIDExQkY7QkY5MDsxMTA4IDExNkIgMTFCRjsKK0JGOTE7QkY5MTsxMTA4IDExNkIgMTFDMDtCRjkxOzExMDggMTE2QiAxMUMwOworQkY5MjtCRjkyOzExMDggMTE2QiAxMUMxO0JGOTI7MTEwOCAxMTZCIDExQzE7CitCRjkzO0JGOTM7MTEwOCAxMTZCIDExQzI7QkY5MzsxMTA4IDExNkIgMTFDMjsKK0JGOTQ7QkY5NDsxMTA4IDExNkM7QkY5NDsxMTA4IDExNkM7CitCRjk1O0JGOTU7MTEwOCAxMTZDIDExQTg7QkY5NTsxMTA4IDExNkMgMTFBODsKK0JGOTY7QkY5NjsxMTA4IDExNkMgMTFBOTtCRjk2OzExMDggMTE2QyAxMUE5OworQkY5NztCRjk3OzExMDggMTE2QyAxMUFBO0JGOTc7MTEwOCAxMTZDIDExQUE7CitCRjk4O0JGOTg7MTEwOCAxMTZDIDExQUI7QkY5ODsxMTA4IDExNkMgMTFBQjsKK0JGOTk7QkY5OTsxMTA4IDExNkMgMTFBQztCRjk5OzExMDggMTE2QyAxMUFDOworQkY5QTtCRjlBOzExMDggMTE2QyAxMUFEO0JGOUE7MTEwOCAxMTZDIDExQUQ7CitCRjlCO0JGOUI7MTEwOCAxMTZDIDExQUU7QkY5QjsxMTA4IDExNkMgMTFBRTsKK0JGOUM7QkY5QzsxMTA4IDExNkMgMTFBRjtCRjlDOzExMDggMTE2QyAxMUFGOworQkY5RDtCRjlEOzExMDggMTE2QyAxMUIwO0JGOUQ7MTEwOCAxMTZDIDExQjA7CitCRjlFO0JGOUU7MTEwOCAxMTZDIDExQjE7QkY5RTsxMTA4IDExNkMgMTFCMTsKK0JGOUY7QkY5RjsxMTA4IDExNkMgMTFCMjtCRjlGOzExMDggMTE2QyAxMUIyOworQkZBMDtCRkEwOzExMDggMTE2QyAxMUIzO0JGQTA7MTEwOCAxMTZDIDExQjM7CitCRkExO0JGQTE7MTEwOCAxMTZDIDExQjQ7QkZBMTsxMTA4IDExNkMgMTFCNDsKK0JGQTI7QkZBMjsxMTA4IDExNkMgMTFCNTtCRkEyOzExMDggMTE2QyAxMUI1OworQkZBMztCRkEzOzExMDggMTE2QyAxMUI2O0JGQTM7MTEwOCAxMTZDIDExQjY7CitCRkE0O0JGQTQ7MTEwOCAxMTZDIDExQjc7QkZBNDsxMTA4IDExNkMgMTFCNzsKK0JGQTU7QkZBNTsxMTA4IDExNkMgMTFCODtCRkE1OzExMDggMTE2QyAxMUI4OworQkZBNjtCRkE2OzExMDggMTE2QyAxMUI5O0JGQTY7MTEwOCAxMTZDIDExQjk7CitCRkE3O0JGQTc7MTEwOCAxMTZDIDExQkE7QkZBNzsxMTA4IDExNkMgMTFCQTsKK0JGQTg7QkZBODsxMTA4IDExNkMgMTFCQjtCRkE4OzExMDggMTE2QyAxMUJCOworQkZBOTtCRkE5OzExMDggMTE2QyAxMUJDO0JGQTk7MTEwOCAxMTZDIDExQkM7CitCRkFBO0JGQUE7MTEwOCAxMTZDIDExQkQ7QkZBQTsxMTA4IDExNkMgMTFCRDsKK0JGQUI7QkZBQjsxMTA4IDExNkMgMTFCRTtCRkFCOzExMDggMTE2QyAxMUJFOworQkZBQztCRkFDOzExMDggMTE2QyAxMUJGO0JGQUM7MTEwOCAxMTZDIDExQkY7CitCRkFEO0JGQUQ7MTEwOCAxMTZDIDExQzA7QkZBRDsxMTA4IDExNkMgMTFDMDsKK0JGQUU7QkZBRTsxMTA4IDExNkMgMTFDMTtCRkFFOzExMDggMTE2QyAxMUMxOworQkZBRjtCRkFGOzExMDggMTE2QyAxMUMyO0JGQUY7MTEwOCAxMTZDIDExQzI7CitCRkIwO0JGQjA7MTEwOCAxMTZEO0JGQjA7MTEwOCAxMTZEOworQkZCMTtCRkIxOzExMDggMTE2RCAxMUE4O0JGQjE7MTEwOCAxMTZEIDExQTg7CitCRkIyO0JGQjI7MTEwOCAxMTZEIDExQTk7QkZCMjsxMTA4IDExNkQgMTFBOTsKK0JGQjM7QkZCMzsxMTA4IDExNkQgMTFBQTtCRkIzOzExMDggMTE2RCAxMUFBOworQkZCNDtCRkI0OzExMDggMTE2RCAxMUFCO0JGQjQ7MTEwOCAxMTZEIDExQUI7CitCRkI1O0JGQjU7MTEwOCAxMTZEIDExQUM7QkZCNTsxMTA4IDExNkQgMTFBQzsKK0JGQjY7QkZCNjsxMTA4IDExNkQgMTFBRDtCRkI2OzExMDggMTE2RCAxMUFEOworQkZCNztCRkI3OzExMDggMTE2RCAxMUFFO0JGQjc7MTEwOCAxMTZEIDExQUU7CitCRkI4O0JGQjg7MTEwOCAxMTZEIDExQUY7QkZCODsxMTA4IDExNkQgMTFBRjsKK0JGQjk7QkZCOTsxMTA4IDExNkQgMTFCMDtCRkI5OzExMDggMTE2RCAxMUIwOworQkZCQTtCRkJBOzExMDggMTE2RCAxMUIxO0JGQkE7MTEwOCAxMTZEIDExQjE7CitCRkJCO0JGQkI7MTEwOCAxMTZEIDExQjI7QkZCQjsxMTA4IDExNkQgMTFCMjsKK0JGQkM7QkZCQzsxMTA4IDExNkQgMTFCMztCRkJDOzExMDggMTE2RCAxMUIzOworQkZCRDtCRkJEOzExMDggMTE2RCAxMUI0O0JGQkQ7MTEwOCAxMTZEIDExQjQ7CitCRkJFO0JGQkU7MTEwOCAxMTZEIDExQjU7QkZCRTsxMTA4IDExNkQgMTFCNTsKK0JGQkY7QkZCRjsxMTA4IDExNkQgMTFCNjtCRkJGOzExMDggMTE2RCAxMUI2OworQkZDMDtCRkMwOzExMDggMTE2RCAxMUI3O0JGQzA7MTEwOCAxMTZEIDExQjc7CitCRkMxO0JGQzE7MTEwOCAxMTZEIDExQjg7QkZDMTsxMTA4IDExNkQgMTFCODsKK0JGQzI7QkZDMjsxMTA4IDExNkQgMTFCOTtCRkMyOzExMDggMTE2RCAxMUI5OworQkZDMztCRkMzOzExMDggMTE2RCAxMUJBO0JGQzM7MTEwOCAxMTZEIDExQkE7CitCRkM0O0JGQzQ7MTEwOCAxMTZEIDExQkI7QkZDNDsxMTA4IDExNkQgMTFCQjsKK0JGQzU7QkZDNTsxMTA4IDExNkQgMTFCQztCRkM1OzExMDggMTE2RCAxMUJDOworQkZDNjtCRkM2OzExMDggMTE2RCAxMUJEO0JGQzY7MTEwOCAxMTZEIDExQkQ7CitCRkM3O0JGQzc7MTEwOCAxMTZEIDExQkU7QkZDNzsxMTA4IDExNkQgMTFCRTsKK0JGQzg7QkZDODsxMTA4IDExNkQgMTFCRjtCRkM4OzExMDggMTE2RCAxMUJGOworQkZDOTtCRkM5OzExMDggMTE2RCAxMUMwO0JGQzk7MTEwOCAxMTZEIDExQzA7CitCRkNBO0JGQ0E7MTEwOCAxMTZEIDExQzE7QkZDQTsxMTA4IDExNkQgMTFDMTsKK0JGQ0I7QkZDQjsxMTA4IDExNkQgMTFDMjtCRkNCOzExMDggMTE2RCAxMUMyOworQkZDQztCRkNDOzExMDggMTE2RTtCRkNDOzExMDggMTE2RTsKK0JGQ0Q7QkZDRDsxMTA4IDExNkUgMTFBODtCRkNEOzExMDggMTE2RSAxMUE4OworQkZDRTtCRkNFOzExMDggMTE2RSAxMUE5O0JGQ0U7MTEwOCAxMTZFIDExQTk7CitCRkNGO0JGQ0Y7MTEwOCAxMTZFIDExQUE7QkZDRjsxMTA4IDExNkUgMTFBQTsKK0JGRDA7QkZEMDsxMTA4IDExNkUgMTFBQjtCRkQwOzExMDggMTE2RSAxMUFCOworQkZEMTtCRkQxOzExMDggMTE2RSAxMUFDO0JGRDE7MTEwOCAxMTZFIDExQUM7CitCRkQyO0JGRDI7MTEwOCAxMTZFIDExQUQ7QkZEMjsxMTA4IDExNkUgMTFBRDsKK0JGRDM7QkZEMzsxMTA4IDExNkUgMTFBRTtCRkQzOzExMDggMTE2RSAxMUFFOworQkZENDtCRkQ0OzExMDggMTE2RSAxMUFGO0JGRDQ7MTEwOCAxMTZFIDExQUY7CitCRkQ1O0JGRDU7MTEwOCAxMTZFIDExQjA7QkZENTsxMTA4IDExNkUgMTFCMDsKK0JGRDY7QkZENjsxMTA4IDExNkUgMTFCMTtCRkQ2OzExMDggMTE2RSAxMUIxOworQkZENztCRkQ3OzExMDggMTE2RSAxMUIyO0JGRDc7MTEwOCAxMTZFIDExQjI7CitCRkQ4O0JGRDg7MTEwOCAxMTZFIDExQjM7QkZEODsxMTA4IDExNkUgMTFCMzsKK0JGRDk7QkZEOTsxMTA4IDExNkUgMTFCNDtCRkQ5OzExMDggMTE2RSAxMUI0OworQkZEQTtCRkRBOzExMDggMTE2RSAxMUI1O0JGREE7MTEwOCAxMTZFIDExQjU7CitCRkRCO0JGREI7MTEwOCAxMTZFIDExQjY7QkZEQjsxMTA4IDExNkUgMTFCNjsKK0JGREM7QkZEQzsxMTA4IDExNkUgMTFCNztCRkRDOzExMDggMTE2RSAxMUI3OworQkZERDtCRkREOzExMDggMTE2RSAxMUI4O0JGREQ7MTEwOCAxMTZFIDExQjg7CitCRkRFO0JGREU7MTEwOCAxMTZFIDExQjk7QkZERTsxMTA4IDExNkUgMTFCOTsKK0JGREY7QkZERjsxMTA4IDExNkUgMTFCQTtCRkRGOzExMDggMTE2RSAxMUJBOworQkZFMDtCRkUwOzExMDggMTE2RSAxMUJCO0JGRTA7MTEwOCAxMTZFIDExQkI7CitCRkUxO0JGRTE7MTEwOCAxMTZFIDExQkM7QkZFMTsxMTA4IDExNkUgMTFCQzsKK0JGRTI7QkZFMjsxMTA4IDExNkUgMTFCRDtCRkUyOzExMDggMTE2RSAxMUJEOworQkZFMztCRkUzOzExMDggMTE2RSAxMUJFO0JGRTM7MTEwOCAxMTZFIDExQkU7CitCRkU0O0JGRTQ7MTEwOCAxMTZFIDExQkY7QkZFNDsxMTA4IDExNkUgMTFCRjsKK0JGRTU7QkZFNTsxMTA4IDExNkUgMTFDMDtCRkU1OzExMDggMTE2RSAxMUMwOworQkZFNjtCRkU2OzExMDggMTE2RSAxMUMxO0JGRTY7MTEwOCAxMTZFIDExQzE7CitCRkU3O0JGRTc7MTEwOCAxMTZFIDExQzI7QkZFNzsxMTA4IDExNkUgMTFDMjsKK0JGRTg7QkZFODsxMTA4IDExNkY7QkZFODsxMTA4IDExNkY7CitCRkU5O0JGRTk7MTEwOCAxMTZGIDExQTg7QkZFOTsxMTA4IDExNkYgMTFBODsKK0JGRUE7QkZFQTsxMTA4IDExNkYgMTFBOTtCRkVBOzExMDggMTE2RiAxMUE5OworQkZFQjtCRkVCOzExMDggMTE2RiAxMUFBO0JGRUI7MTEwOCAxMTZGIDExQUE7CitCRkVDO0JGRUM7MTEwOCAxMTZGIDExQUI7QkZFQzsxMTA4IDExNkYgMTFBQjsKK0JGRUQ7QkZFRDsxMTA4IDExNkYgMTFBQztCRkVEOzExMDggMTE2RiAxMUFDOworQkZFRTtCRkVFOzExMDggMTE2RiAxMUFEO0JGRUU7MTEwOCAxMTZGIDExQUQ7CitCRkVGO0JGRUY7MTEwOCAxMTZGIDExQUU7QkZFRjsxMTA4IDExNkYgMTFBRTsKK0JGRjA7QkZGMDsxMTA4IDExNkYgMTFBRjtCRkYwOzExMDggMTE2RiAxMUFGOworQkZGMTtCRkYxOzExMDggMTE2RiAxMUIwO0JGRjE7MTEwOCAxMTZGIDExQjA7CitCRkYyO0JGRjI7MTEwOCAxMTZGIDExQjE7QkZGMjsxMTA4IDExNkYgMTFCMTsKK0JGRjM7QkZGMzsxMTA4IDExNkYgMTFCMjtCRkYzOzExMDggMTE2RiAxMUIyOworQkZGNDtCRkY0OzExMDggMTE2RiAxMUIzO0JGRjQ7MTEwOCAxMTZGIDExQjM7CitCRkY1O0JGRjU7MTEwOCAxMTZGIDExQjQ7QkZGNTsxMTA4IDExNkYgMTFCNDsKK0JGRjY7QkZGNjsxMTA4IDExNkYgMTFCNTtCRkY2OzExMDggMTE2RiAxMUI1OworQkZGNztCRkY3OzExMDggMTE2RiAxMUI2O0JGRjc7MTEwOCAxMTZGIDExQjY7CitCRkY4O0JGRjg7MTEwOCAxMTZGIDExQjc7QkZGODsxMTA4IDExNkYgMTFCNzsKK0JGRjk7QkZGOTsxMTA4IDExNkYgMTFCODtCRkY5OzExMDggMTE2RiAxMUI4OworQkZGQTtCRkZBOzExMDggMTE2RiAxMUI5O0JGRkE7MTEwOCAxMTZGIDExQjk7CitCRkZCO0JGRkI7MTEwOCAxMTZGIDExQkE7QkZGQjsxMTA4IDExNkYgMTFCQTsKK0JGRkM7QkZGQzsxMTA4IDExNkYgMTFCQjtCRkZDOzExMDggMTE2RiAxMUJCOworQkZGRDtCRkZEOzExMDggMTE2RiAxMUJDO0JGRkQ7MTEwOCAxMTZGIDExQkM7CitCRkZFO0JGRkU7MTEwOCAxMTZGIDExQkQ7QkZGRTsxMTA4IDExNkYgMTFCRDsKK0JGRkY7QkZGRjsxMTA4IDExNkYgMTFCRTtCRkZGOzExMDggMTE2RiAxMUJFOworQzAwMDtDMDAwOzExMDggMTE2RiAxMUJGO0MwMDA7MTEwOCAxMTZGIDExQkY7CitDMDAxO0MwMDE7MTEwOCAxMTZGIDExQzA7QzAwMTsxMTA4IDExNkYgMTFDMDsKK0MwMDI7QzAwMjsxMTA4IDExNkYgMTFDMTtDMDAyOzExMDggMTE2RiAxMUMxOworQzAwMztDMDAzOzExMDggMTE2RiAxMUMyO0MwMDM7MTEwOCAxMTZGIDExQzI7CitDMDA0O0MwMDQ7MTEwOCAxMTcwO0MwMDQ7MTEwOCAxMTcwOworQzAwNTtDMDA1OzExMDggMTE3MCAxMUE4O0MwMDU7MTEwOCAxMTcwIDExQTg7CitDMDA2O0MwMDY7MTEwOCAxMTcwIDExQTk7QzAwNjsxMTA4IDExNzAgMTFBOTsKK0MwMDc7QzAwNzsxMTA4IDExNzAgMTFBQTtDMDA3OzExMDggMTE3MCAxMUFBOworQzAwODtDMDA4OzExMDggMTE3MCAxMUFCO0MwMDg7MTEwOCAxMTcwIDExQUI7CitDMDA5O0MwMDk7MTEwOCAxMTcwIDExQUM7QzAwOTsxMTA4IDExNzAgMTFBQzsKK0MwMEE7QzAwQTsxMTA4IDExNzAgMTFBRDtDMDBBOzExMDggMTE3MCAxMUFEOworQzAwQjtDMDBCOzExMDggMTE3MCAxMUFFO0MwMEI7MTEwOCAxMTcwIDExQUU7CitDMDBDO0MwMEM7MTEwOCAxMTcwIDExQUY7QzAwQzsxMTA4IDExNzAgMTFBRjsKK0MwMEQ7QzAwRDsxMTA4IDExNzAgMTFCMDtDMDBEOzExMDggMTE3MCAxMUIwOworQzAwRTtDMDBFOzExMDggMTE3MCAxMUIxO0MwMEU7MTEwOCAxMTcwIDExQjE7CitDMDBGO0MwMEY7MTEwOCAxMTcwIDExQjI7QzAwRjsxMTA4IDExNzAgMTFCMjsKK0MwMTA7QzAxMDsxMTA4IDExNzAgMTFCMztDMDEwOzExMDggMTE3MCAxMUIzOworQzAxMTtDMDExOzExMDggMTE3MCAxMUI0O0MwMTE7MTEwOCAxMTcwIDExQjQ7CitDMDEyO0MwMTI7MTEwOCAxMTcwIDExQjU7QzAxMjsxMTA4IDExNzAgMTFCNTsKK0MwMTM7QzAxMzsxMTA4IDExNzAgMTFCNjtDMDEzOzExMDggMTE3MCAxMUI2OworQzAxNDtDMDE0OzExMDggMTE3MCAxMUI3O0MwMTQ7MTEwOCAxMTcwIDExQjc7CitDMDE1O0MwMTU7MTEwOCAxMTcwIDExQjg7QzAxNTsxMTA4IDExNzAgMTFCODsKK0MwMTY7QzAxNjsxMTA4IDExNzAgMTFCOTtDMDE2OzExMDggMTE3MCAxMUI5OworQzAxNztDMDE3OzExMDggMTE3MCAxMUJBO0MwMTc7MTEwOCAxMTcwIDExQkE7CitDMDE4O0MwMTg7MTEwOCAxMTcwIDExQkI7QzAxODsxMTA4IDExNzAgMTFCQjsKK0MwMTk7QzAxOTsxMTA4IDExNzAgMTFCQztDMDE5OzExMDggMTE3MCAxMUJDOworQzAxQTtDMDFBOzExMDggMTE3MCAxMUJEO0MwMUE7MTEwOCAxMTcwIDExQkQ7CitDMDFCO0MwMUI7MTEwOCAxMTcwIDExQkU7QzAxQjsxMTA4IDExNzAgMTFCRTsKK0MwMUM7QzAxQzsxMTA4IDExNzAgMTFCRjtDMDFDOzExMDggMTE3MCAxMUJGOworQzAxRDtDMDFEOzExMDggMTE3MCAxMUMwO0MwMUQ7MTEwOCAxMTcwIDExQzA7CitDMDFFO0MwMUU7MTEwOCAxMTcwIDExQzE7QzAxRTsxMTA4IDExNzAgMTFDMTsKK0MwMUY7QzAxRjsxMTA4IDExNzAgMTFDMjtDMDFGOzExMDggMTE3MCAxMUMyOworQzAyMDtDMDIwOzExMDggMTE3MTtDMDIwOzExMDggMTE3MTsKK0MwMjE7QzAyMTsxMTA4IDExNzEgMTFBODtDMDIxOzExMDggMTE3MSAxMUE4OworQzAyMjtDMDIyOzExMDggMTE3MSAxMUE5O0MwMjI7MTEwOCAxMTcxIDExQTk7CitDMDIzO0MwMjM7MTEwOCAxMTcxIDExQUE7QzAyMzsxMTA4IDExNzEgMTFBQTsKK0MwMjQ7QzAyNDsxMTA4IDExNzEgMTFBQjtDMDI0OzExMDggMTE3MSAxMUFCOworQzAyNTtDMDI1OzExMDggMTE3MSAxMUFDO0MwMjU7MTEwOCAxMTcxIDExQUM7CitDMDI2O0MwMjY7MTEwOCAxMTcxIDExQUQ7QzAyNjsxMTA4IDExNzEgMTFBRDsKK0MwMjc7QzAyNzsxMTA4IDExNzEgMTFBRTtDMDI3OzExMDggMTE3MSAxMUFFOworQzAyODtDMDI4OzExMDggMTE3MSAxMUFGO0MwMjg7MTEwOCAxMTcxIDExQUY7CitDMDI5O0MwMjk7MTEwOCAxMTcxIDExQjA7QzAyOTsxMTA4IDExNzEgMTFCMDsKK0MwMkE7QzAyQTsxMTA4IDExNzEgMTFCMTtDMDJBOzExMDggMTE3MSAxMUIxOworQzAyQjtDMDJCOzExMDggMTE3MSAxMUIyO0MwMkI7MTEwOCAxMTcxIDExQjI7CitDMDJDO0MwMkM7MTEwOCAxMTcxIDExQjM7QzAyQzsxMTA4IDExNzEgMTFCMzsKK0MwMkQ7QzAyRDsxMTA4IDExNzEgMTFCNDtDMDJEOzExMDggMTE3MSAxMUI0OworQzAyRTtDMDJFOzExMDggMTE3MSAxMUI1O0MwMkU7MTEwOCAxMTcxIDExQjU7CitDMDJGO0MwMkY7MTEwOCAxMTcxIDExQjY7QzAyRjsxMTA4IDExNzEgMTFCNjsKK0MwMzA7QzAzMDsxMTA4IDExNzEgMTFCNztDMDMwOzExMDggMTE3MSAxMUI3OworQzAzMTtDMDMxOzExMDggMTE3MSAxMUI4O0MwMzE7MTEwOCAxMTcxIDExQjg7CitDMDMyO0MwMzI7MTEwOCAxMTcxIDExQjk7QzAzMjsxMTA4IDExNzEgMTFCOTsKK0MwMzM7QzAzMzsxMTA4IDExNzEgMTFCQTtDMDMzOzExMDggMTE3MSAxMUJBOworQzAzNDtDMDM0OzExMDggMTE3MSAxMUJCO0MwMzQ7MTEwOCAxMTcxIDExQkI7CitDMDM1O0MwMzU7MTEwOCAxMTcxIDExQkM7QzAzNTsxMTA4IDExNzEgMTFCQzsKK0MwMzY7QzAzNjsxMTA4IDExNzEgMTFCRDtDMDM2OzExMDggMTE3MSAxMUJEOworQzAzNztDMDM3OzExMDggMTE3MSAxMUJFO0MwMzc7MTEwOCAxMTcxIDExQkU7CitDMDM4O0MwMzg7MTEwOCAxMTcxIDExQkY7QzAzODsxMTA4IDExNzEgMTFCRjsKK0MwMzk7QzAzOTsxMTA4IDExNzEgMTFDMDtDMDM5OzExMDggMTE3MSAxMUMwOworQzAzQTtDMDNBOzExMDggMTE3MSAxMUMxO0MwM0E7MTEwOCAxMTcxIDExQzE7CitDMDNCO0MwM0I7MTEwOCAxMTcxIDExQzI7QzAzQjsxMTA4IDExNzEgMTFDMjsKK0MwM0M7QzAzQzsxMTA4IDExNzI7QzAzQzsxMTA4IDExNzI7CitDMDNEO0MwM0Q7MTEwOCAxMTcyIDExQTg7QzAzRDsxMTA4IDExNzIgMTFBODsKK0MwM0U7QzAzRTsxMTA4IDExNzIgMTFBOTtDMDNFOzExMDggMTE3MiAxMUE5OworQzAzRjtDMDNGOzExMDggMTE3MiAxMUFBO0MwM0Y7MTEwOCAxMTcyIDExQUE7CitDMDQwO0MwNDA7MTEwOCAxMTcyIDExQUI7QzA0MDsxMTA4IDExNzIgMTFBQjsKK0MwNDE7QzA0MTsxMTA4IDExNzIgMTFBQztDMDQxOzExMDggMTE3MiAxMUFDOworQzA0MjtDMDQyOzExMDggMTE3MiAxMUFEO0MwNDI7MTEwOCAxMTcyIDExQUQ7CitDMDQzO0MwNDM7MTEwOCAxMTcyIDExQUU7QzA0MzsxMTA4IDExNzIgMTFBRTsKK0MwNDQ7QzA0NDsxMTA4IDExNzIgMTFBRjtDMDQ0OzExMDggMTE3MiAxMUFGOworQzA0NTtDMDQ1OzExMDggMTE3MiAxMUIwO0MwNDU7MTEwOCAxMTcyIDExQjA7CitDMDQ2O0MwNDY7MTEwOCAxMTcyIDExQjE7QzA0NjsxMTA4IDExNzIgMTFCMTsKK0MwNDc7QzA0NzsxMTA4IDExNzIgMTFCMjtDMDQ3OzExMDggMTE3MiAxMUIyOworQzA0ODtDMDQ4OzExMDggMTE3MiAxMUIzO0MwNDg7MTEwOCAxMTcyIDExQjM7CitDMDQ5O0MwNDk7MTEwOCAxMTcyIDExQjQ7QzA0OTsxMTA4IDExNzIgMTFCNDsKK0MwNEE7QzA0QTsxMTA4IDExNzIgMTFCNTtDMDRBOzExMDggMTE3MiAxMUI1OworQzA0QjtDMDRCOzExMDggMTE3MiAxMUI2O0MwNEI7MTEwOCAxMTcyIDExQjY7CitDMDRDO0MwNEM7MTEwOCAxMTcyIDExQjc7QzA0QzsxMTA4IDExNzIgMTFCNzsKK0MwNEQ7QzA0RDsxMTA4IDExNzIgMTFCODtDMDREOzExMDggMTE3MiAxMUI4OworQzA0RTtDMDRFOzExMDggMTE3MiAxMUI5O0MwNEU7MTEwOCAxMTcyIDExQjk7CitDMDRGO0MwNEY7MTEwOCAxMTcyIDExQkE7QzA0RjsxMTA4IDExNzIgMTFCQTsKK0MwNTA7QzA1MDsxMTA4IDExNzIgMTFCQjtDMDUwOzExMDggMTE3MiAxMUJCOworQzA1MTtDMDUxOzExMDggMTE3MiAxMUJDO0MwNTE7MTEwOCAxMTcyIDExQkM7CitDMDUyO0MwNTI7MTEwOCAxMTcyIDExQkQ7QzA1MjsxMTA4IDExNzIgMTFCRDsKK0MwNTM7QzA1MzsxMTA4IDExNzIgMTFCRTtDMDUzOzExMDggMTE3MiAxMUJFOworQzA1NDtDMDU0OzExMDggMTE3MiAxMUJGO0MwNTQ7MTEwOCAxMTcyIDExQkY7CitDMDU1O0MwNTU7MTEwOCAxMTcyIDExQzA7QzA1NTsxMTA4IDExNzIgMTFDMDsKK0MwNTY7QzA1NjsxMTA4IDExNzIgMTFDMTtDMDU2OzExMDggMTE3MiAxMUMxOworQzA1NztDMDU3OzExMDggMTE3MiAxMUMyO0MwNTc7MTEwOCAxMTcyIDExQzI7CitDMDU4O0MwNTg7MTEwOCAxMTczO0MwNTg7MTEwOCAxMTczOworQzA1OTtDMDU5OzExMDggMTE3MyAxMUE4O0MwNTk7MTEwOCAxMTczIDExQTg7CitDMDVBO0MwNUE7MTEwOCAxMTczIDExQTk7QzA1QTsxMTA4IDExNzMgMTFBOTsKK0MwNUI7QzA1QjsxMTA4IDExNzMgMTFBQTtDMDVCOzExMDggMTE3MyAxMUFBOworQzA1QztDMDVDOzExMDggMTE3MyAxMUFCO0MwNUM7MTEwOCAxMTczIDExQUI7CitDMDVEO0MwNUQ7MTEwOCAxMTczIDExQUM7QzA1RDsxMTA4IDExNzMgMTFBQzsKK0MwNUU7QzA1RTsxMTA4IDExNzMgMTFBRDtDMDVFOzExMDggMTE3MyAxMUFEOworQzA1RjtDMDVGOzExMDggMTE3MyAxMUFFO0MwNUY7MTEwOCAxMTczIDExQUU7CitDMDYwO0MwNjA7MTEwOCAxMTczIDExQUY7QzA2MDsxMTA4IDExNzMgMTFBRjsKK0MwNjE7QzA2MTsxMTA4IDExNzMgMTFCMDtDMDYxOzExMDggMTE3MyAxMUIwOworQzA2MjtDMDYyOzExMDggMTE3MyAxMUIxO0MwNjI7MTEwOCAxMTczIDExQjE7CitDMDYzO0MwNjM7MTEwOCAxMTczIDExQjI7QzA2MzsxMTA4IDExNzMgMTFCMjsKK0MwNjQ7QzA2NDsxMTA4IDExNzMgMTFCMztDMDY0OzExMDggMTE3MyAxMUIzOworQzA2NTtDMDY1OzExMDggMTE3MyAxMUI0O0MwNjU7MTEwOCAxMTczIDExQjQ7CitDMDY2O0MwNjY7MTEwOCAxMTczIDExQjU7QzA2NjsxMTA4IDExNzMgMTFCNTsKK0MwNjc7QzA2NzsxMTA4IDExNzMgMTFCNjtDMDY3OzExMDggMTE3MyAxMUI2OworQzA2ODtDMDY4OzExMDggMTE3MyAxMUI3O0MwNjg7MTEwOCAxMTczIDExQjc7CitDMDY5O0MwNjk7MTEwOCAxMTczIDExQjg7QzA2OTsxMTA4IDExNzMgMTFCODsKK0MwNkE7QzA2QTsxMTA4IDExNzMgMTFCOTtDMDZBOzExMDggMTE3MyAxMUI5OworQzA2QjtDMDZCOzExMDggMTE3MyAxMUJBO0MwNkI7MTEwOCAxMTczIDExQkE7CitDMDZDO0MwNkM7MTEwOCAxMTczIDExQkI7QzA2QzsxMTA4IDExNzMgMTFCQjsKK0MwNkQ7QzA2RDsxMTA4IDExNzMgMTFCQztDMDZEOzExMDggMTE3MyAxMUJDOworQzA2RTtDMDZFOzExMDggMTE3MyAxMUJEO0MwNkU7MTEwOCAxMTczIDExQkQ7CitDMDZGO0MwNkY7MTEwOCAxMTczIDExQkU7QzA2RjsxMTA4IDExNzMgMTFCRTsKK0MwNzA7QzA3MDsxMTA4IDExNzMgMTFCRjtDMDcwOzExMDggMTE3MyAxMUJGOworQzA3MTtDMDcxOzExMDggMTE3MyAxMUMwO0MwNzE7MTEwOCAxMTczIDExQzA7CitDMDcyO0MwNzI7MTEwOCAxMTczIDExQzE7QzA3MjsxMTA4IDExNzMgMTFDMTsKK0MwNzM7QzA3MzsxMTA4IDExNzMgMTFDMjtDMDczOzExMDggMTE3MyAxMUMyOworQzA3NDtDMDc0OzExMDggMTE3NDtDMDc0OzExMDggMTE3NDsKK0MwNzU7QzA3NTsxMTA4IDExNzQgMTFBODtDMDc1OzExMDggMTE3NCAxMUE4OworQzA3NjtDMDc2OzExMDggMTE3NCAxMUE5O0MwNzY7MTEwOCAxMTc0IDExQTk7CitDMDc3O0MwNzc7MTEwOCAxMTc0IDExQUE7QzA3NzsxMTA4IDExNzQgMTFBQTsKK0MwNzg7QzA3ODsxMTA4IDExNzQgMTFBQjtDMDc4OzExMDggMTE3NCAxMUFCOworQzA3OTtDMDc5OzExMDggMTE3NCAxMUFDO0MwNzk7MTEwOCAxMTc0IDExQUM7CitDMDdBO0MwN0E7MTEwOCAxMTc0IDExQUQ7QzA3QTsxMTA4IDExNzQgMTFBRDsKK0MwN0I7QzA3QjsxMTA4IDExNzQgMTFBRTtDMDdCOzExMDggMTE3NCAxMUFFOworQzA3QztDMDdDOzExMDggMTE3NCAxMUFGO0MwN0M7MTEwOCAxMTc0IDExQUY7CitDMDdEO0MwN0Q7MTEwOCAxMTc0IDExQjA7QzA3RDsxMTA4IDExNzQgMTFCMDsKK0MwN0U7QzA3RTsxMTA4IDExNzQgMTFCMTtDMDdFOzExMDggMTE3NCAxMUIxOworQzA3RjtDMDdGOzExMDggMTE3NCAxMUIyO0MwN0Y7MTEwOCAxMTc0IDExQjI7CitDMDgwO0MwODA7MTEwOCAxMTc0IDExQjM7QzA4MDsxMTA4IDExNzQgMTFCMzsKK0MwODE7QzA4MTsxMTA4IDExNzQgMTFCNDtDMDgxOzExMDggMTE3NCAxMUI0OworQzA4MjtDMDgyOzExMDggMTE3NCAxMUI1O0MwODI7MTEwOCAxMTc0IDExQjU7CitDMDgzO0MwODM7MTEwOCAxMTc0IDExQjY7QzA4MzsxMTA4IDExNzQgMTFCNjsKK0MwODQ7QzA4NDsxMTA4IDExNzQgMTFCNztDMDg0OzExMDggMTE3NCAxMUI3OworQzA4NTtDMDg1OzExMDggMTE3NCAxMUI4O0MwODU7MTEwOCAxMTc0IDExQjg7CitDMDg2O0MwODY7MTEwOCAxMTc0IDExQjk7QzA4NjsxMTA4IDExNzQgMTFCOTsKK0MwODc7QzA4NzsxMTA4IDExNzQgMTFCQTtDMDg3OzExMDggMTE3NCAxMUJBOworQzA4ODtDMDg4OzExMDggMTE3NCAxMUJCO0MwODg7MTEwOCAxMTc0IDExQkI7CitDMDg5O0MwODk7MTEwOCAxMTc0IDExQkM7QzA4OTsxMTA4IDExNzQgMTFCQzsKK0MwOEE7QzA4QTsxMTA4IDExNzQgMTFCRDtDMDhBOzExMDggMTE3NCAxMUJEOworQzA4QjtDMDhCOzExMDggMTE3NCAxMUJFO0MwOEI7MTEwOCAxMTc0IDExQkU7CitDMDhDO0MwOEM7MTEwOCAxMTc0IDExQkY7QzA4QzsxMTA4IDExNzQgMTFCRjsKK0MwOEQ7QzA4RDsxMTA4IDExNzQgMTFDMDtDMDhEOzExMDggMTE3NCAxMUMwOworQzA4RTtDMDhFOzExMDggMTE3NCAxMUMxO0MwOEU7MTEwOCAxMTc0IDExQzE7CitDMDhGO0MwOEY7MTEwOCAxMTc0IDExQzI7QzA4RjsxMTA4IDExNzQgMTFDMjsKK0MwOTA7QzA5MDsxMTA4IDExNzU7QzA5MDsxMTA4IDExNzU7CitDMDkxO0MwOTE7MTEwOCAxMTc1IDExQTg7QzA5MTsxMTA4IDExNzUgMTFBODsKK0MwOTI7QzA5MjsxMTA4IDExNzUgMTFBOTtDMDkyOzExMDggMTE3NSAxMUE5OworQzA5MztDMDkzOzExMDggMTE3NSAxMUFBO0MwOTM7MTEwOCAxMTc1IDExQUE7CitDMDk0O0MwOTQ7MTEwOCAxMTc1IDExQUI7QzA5NDsxMTA4IDExNzUgMTFBQjsKK0MwOTU7QzA5NTsxMTA4IDExNzUgMTFBQztDMDk1OzExMDggMTE3NSAxMUFDOworQzA5NjtDMDk2OzExMDggMTE3NSAxMUFEO0MwOTY7MTEwOCAxMTc1IDExQUQ7CitDMDk3O0MwOTc7MTEwOCAxMTc1IDExQUU7QzA5NzsxMTA4IDExNzUgMTFBRTsKK0MwOTg7QzA5ODsxMTA4IDExNzUgMTFBRjtDMDk4OzExMDggMTE3NSAxMUFGOworQzA5OTtDMDk5OzExMDggMTE3NSAxMUIwO0MwOTk7MTEwOCAxMTc1IDExQjA7CitDMDlBO0MwOUE7MTEwOCAxMTc1IDExQjE7QzA5QTsxMTA4IDExNzUgMTFCMTsKK0MwOUI7QzA5QjsxMTA4IDExNzUgMTFCMjtDMDlCOzExMDggMTE3NSAxMUIyOworQzA5QztDMDlDOzExMDggMTE3NSAxMUIzO0MwOUM7MTEwOCAxMTc1IDExQjM7CitDMDlEO0MwOUQ7MTEwOCAxMTc1IDExQjQ7QzA5RDsxMTA4IDExNzUgMTFCNDsKK0MwOUU7QzA5RTsxMTA4IDExNzUgMTFCNTtDMDlFOzExMDggMTE3NSAxMUI1OworQzA5RjtDMDlGOzExMDggMTE3NSAxMUI2O0MwOUY7MTEwOCAxMTc1IDExQjY7CitDMEEwO0MwQTA7MTEwOCAxMTc1IDExQjc7QzBBMDsxMTA4IDExNzUgMTFCNzsKK0MwQTE7QzBBMTsxMTA4IDExNzUgMTFCODtDMEExOzExMDggMTE3NSAxMUI4OworQzBBMjtDMEEyOzExMDggMTE3NSAxMUI5O0MwQTI7MTEwOCAxMTc1IDExQjk7CitDMEEzO0MwQTM7MTEwOCAxMTc1IDExQkE7QzBBMzsxMTA4IDExNzUgMTFCQTsKK0MwQTQ7QzBBNDsxMTA4IDExNzUgMTFCQjtDMEE0OzExMDggMTE3NSAxMUJCOworQzBBNTtDMEE1OzExMDggMTE3NSAxMUJDO0MwQTU7MTEwOCAxMTc1IDExQkM7CitDMEE2O0MwQTY7MTEwOCAxMTc1IDExQkQ7QzBBNjsxMTA4IDExNzUgMTFCRDsKK0MwQTc7QzBBNzsxMTA4IDExNzUgMTFCRTtDMEE3OzExMDggMTE3NSAxMUJFOworQzBBODtDMEE4OzExMDggMTE3NSAxMUJGO0MwQTg7MTEwOCAxMTc1IDExQkY7CitDMEE5O0MwQTk7MTEwOCAxMTc1IDExQzA7QzBBOTsxMTA4IDExNzUgMTFDMDsKK0MwQUE7QzBBQTsxMTA4IDExNzUgMTFDMTtDMEFBOzExMDggMTE3NSAxMUMxOworQzBBQjtDMEFCOzExMDggMTE3NSAxMUMyO0MwQUI7MTEwOCAxMTc1IDExQzI7CitDMEFDO0MwQUM7MTEwOSAxMTYxO0MwQUM7MTEwOSAxMTYxOworQzBBRDtDMEFEOzExMDkgMTE2MSAxMUE4O0MwQUQ7MTEwOSAxMTYxIDExQTg7CitDMEFFO0MwQUU7MTEwOSAxMTYxIDExQTk7QzBBRTsxMTA5IDExNjEgMTFBOTsKK0MwQUY7QzBBRjsxMTA5IDExNjEgMTFBQTtDMEFGOzExMDkgMTE2MSAxMUFBOworQzBCMDtDMEIwOzExMDkgMTE2MSAxMUFCO0MwQjA7MTEwOSAxMTYxIDExQUI7CitDMEIxO0MwQjE7MTEwOSAxMTYxIDExQUM7QzBCMTsxMTA5IDExNjEgMTFBQzsKK0MwQjI7QzBCMjsxMTA5IDExNjEgMTFBRDtDMEIyOzExMDkgMTE2MSAxMUFEOworQzBCMztDMEIzOzExMDkgMTE2MSAxMUFFO0MwQjM7MTEwOSAxMTYxIDExQUU7CitDMEI0O0MwQjQ7MTEwOSAxMTYxIDExQUY7QzBCNDsxMTA5IDExNjEgMTFBRjsKK0MwQjU7QzBCNTsxMTA5IDExNjEgMTFCMDtDMEI1OzExMDkgMTE2MSAxMUIwOworQzBCNjtDMEI2OzExMDkgMTE2MSAxMUIxO0MwQjY7MTEwOSAxMTYxIDExQjE7CitDMEI3O0MwQjc7MTEwOSAxMTYxIDExQjI7QzBCNzsxMTA5IDExNjEgMTFCMjsKK0MwQjg7QzBCODsxMTA5IDExNjEgMTFCMztDMEI4OzExMDkgMTE2MSAxMUIzOworQzBCOTtDMEI5OzExMDkgMTE2MSAxMUI0O0MwQjk7MTEwOSAxMTYxIDExQjQ7CitDMEJBO0MwQkE7MTEwOSAxMTYxIDExQjU7QzBCQTsxMTA5IDExNjEgMTFCNTsKK0MwQkI7QzBCQjsxMTA5IDExNjEgMTFCNjtDMEJCOzExMDkgMTE2MSAxMUI2OworQzBCQztDMEJDOzExMDkgMTE2MSAxMUI3O0MwQkM7MTEwOSAxMTYxIDExQjc7CitDMEJEO0MwQkQ7MTEwOSAxMTYxIDExQjg7QzBCRDsxMTA5IDExNjEgMTFCODsKK0MwQkU7QzBCRTsxMTA5IDExNjEgMTFCOTtDMEJFOzExMDkgMTE2MSAxMUI5OworQzBCRjtDMEJGOzExMDkgMTE2MSAxMUJBO0MwQkY7MTEwOSAxMTYxIDExQkE7CitDMEMwO0MwQzA7MTEwOSAxMTYxIDExQkI7QzBDMDsxMTA5IDExNjEgMTFCQjsKK0MwQzE7QzBDMTsxMTA5IDExNjEgMTFCQztDMEMxOzExMDkgMTE2MSAxMUJDOworQzBDMjtDMEMyOzExMDkgMTE2MSAxMUJEO0MwQzI7MTEwOSAxMTYxIDExQkQ7CitDMEMzO0MwQzM7MTEwOSAxMTYxIDExQkU7QzBDMzsxMTA5IDExNjEgMTFCRTsKK0MwQzQ7QzBDNDsxMTA5IDExNjEgMTFCRjtDMEM0OzExMDkgMTE2MSAxMUJGOworQzBDNTtDMEM1OzExMDkgMTE2MSAxMUMwO0MwQzU7MTEwOSAxMTYxIDExQzA7CitDMEM2O0MwQzY7MTEwOSAxMTYxIDExQzE7QzBDNjsxMTA5IDExNjEgMTFDMTsKK0MwQzc7QzBDNzsxMTA5IDExNjEgMTFDMjtDMEM3OzExMDkgMTE2MSAxMUMyOworQzBDODtDMEM4OzExMDkgMTE2MjtDMEM4OzExMDkgMTE2MjsKK0MwQzk7QzBDOTsxMTA5IDExNjIgMTFBODtDMEM5OzExMDkgMTE2MiAxMUE4OworQzBDQTtDMENBOzExMDkgMTE2MiAxMUE5O0MwQ0E7MTEwOSAxMTYyIDExQTk7CitDMENCO0MwQ0I7MTEwOSAxMTYyIDExQUE7QzBDQjsxMTA5IDExNjIgMTFBQTsKK0MwQ0M7QzBDQzsxMTA5IDExNjIgMTFBQjtDMENDOzExMDkgMTE2MiAxMUFCOworQzBDRDtDMENEOzExMDkgMTE2MiAxMUFDO0MwQ0Q7MTEwOSAxMTYyIDExQUM7CitDMENFO0MwQ0U7MTEwOSAxMTYyIDExQUQ7QzBDRTsxMTA5IDExNjIgMTFBRDsKK0MwQ0Y7QzBDRjsxMTA5IDExNjIgMTFBRTtDMENGOzExMDkgMTE2MiAxMUFFOworQzBEMDtDMEQwOzExMDkgMTE2MiAxMUFGO0MwRDA7MTEwOSAxMTYyIDExQUY7CitDMEQxO0MwRDE7MTEwOSAxMTYyIDExQjA7QzBEMTsxMTA5IDExNjIgMTFCMDsKK0MwRDI7QzBEMjsxMTA5IDExNjIgMTFCMTtDMEQyOzExMDkgMTE2MiAxMUIxOworQzBEMztDMEQzOzExMDkgMTE2MiAxMUIyO0MwRDM7MTEwOSAxMTYyIDExQjI7CitDMEQ0O0MwRDQ7MTEwOSAxMTYyIDExQjM7QzBENDsxMTA5IDExNjIgMTFCMzsKK0MwRDU7QzBENTsxMTA5IDExNjIgMTFCNDtDMEQ1OzExMDkgMTE2MiAxMUI0OworQzBENjtDMEQ2OzExMDkgMTE2MiAxMUI1O0MwRDY7MTEwOSAxMTYyIDExQjU7CitDMEQ3O0MwRDc7MTEwOSAxMTYyIDExQjY7QzBENzsxMTA5IDExNjIgMTFCNjsKK0MwRDg7QzBEODsxMTA5IDExNjIgMTFCNztDMEQ4OzExMDkgMTE2MiAxMUI3OworQzBEOTtDMEQ5OzExMDkgMTE2MiAxMUI4O0MwRDk7MTEwOSAxMTYyIDExQjg7CitDMERBO0MwREE7MTEwOSAxMTYyIDExQjk7QzBEQTsxMTA5IDExNjIgMTFCOTsKK0MwREI7QzBEQjsxMTA5IDExNjIgMTFCQTtDMERCOzExMDkgMTE2MiAxMUJBOworQzBEQztDMERDOzExMDkgMTE2MiAxMUJCO0MwREM7MTEwOSAxMTYyIDExQkI7CitDMEREO0MwREQ7MTEwOSAxMTYyIDExQkM7QzBERDsxMTA5IDExNjIgMTFCQzsKK0MwREU7QzBERTsxMTA5IDExNjIgMTFCRDtDMERFOzExMDkgMTE2MiAxMUJEOworQzBERjtDMERGOzExMDkgMTE2MiAxMUJFO0MwREY7MTEwOSAxMTYyIDExQkU7CitDMEUwO0MwRTA7MTEwOSAxMTYyIDExQkY7QzBFMDsxMTA5IDExNjIgMTFCRjsKK0MwRTE7QzBFMTsxMTA5IDExNjIgMTFDMDtDMEUxOzExMDkgMTE2MiAxMUMwOworQzBFMjtDMEUyOzExMDkgMTE2MiAxMUMxO0MwRTI7MTEwOSAxMTYyIDExQzE7CitDMEUzO0MwRTM7MTEwOSAxMTYyIDExQzI7QzBFMzsxMTA5IDExNjIgMTFDMjsKK0MwRTQ7QzBFNDsxMTA5IDExNjM7QzBFNDsxMTA5IDExNjM7CitDMEU1O0MwRTU7MTEwOSAxMTYzIDExQTg7QzBFNTsxMTA5IDExNjMgMTFBODsKK0MwRTY7QzBFNjsxMTA5IDExNjMgMTFBOTtDMEU2OzExMDkgMTE2MyAxMUE5OworQzBFNztDMEU3OzExMDkgMTE2MyAxMUFBO0MwRTc7MTEwOSAxMTYzIDExQUE7CitDMEU4O0MwRTg7MTEwOSAxMTYzIDExQUI7QzBFODsxMTA5IDExNjMgMTFBQjsKK0MwRTk7QzBFOTsxMTA5IDExNjMgMTFBQztDMEU5OzExMDkgMTE2MyAxMUFDOworQzBFQTtDMEVBOzExMDkgMTE2MyAxMUFEO0MwRUE7MTEwOSAxMTYzIDExQUQ7CitDMEVCO0MwRUI7MTEwOSAxMTYzIDExQUU7QzBFQjsxMTA5IDExNjMgMTFBRTsKK0MwRUM7QzBFQzsxMTA5IDExNjMgMTFBRjtDMEVDOzExMDkgMTE2MyAxMUFGOworQzBFRDtDMEVEOzExMDkgMTE2MyAxMUIwO0MwRUQ7MTEwOSAxMTYzIDExQjA7CitDMEVFO0MwRUU7MTEwOSAxMTYzIDExQjE7QzBFRTsxMTA5IDExNjMgMTFCMTsKK0MwRUY7QzBFRjsxMTA5IDExNjMgMTFCMjtDMEVGOzExMDkgMTE2MyAxMUIyOworQzBGMDtDMEYwOzExMDkgMTE2MyAxMUIzO0MwRjA7MTEwOSAxMTYzIDExQjM7CitDMEYxO0MwRjE7MTEwOSAxMTYzIDExQjQ7QzBGMTsxMTA5IDExNjMgMTFCNDsKK0MwRjI7QzBGMjsxMTA5IDExNjMgMTFCNTtDMEYyOzExMDkgMTE2MyAxMUI1OworQzBGMztDMEYzOzExMDkgMTE2MyAxMUI2O0MwRjM7MTEwOSAxMTYzIDExQjY7CitDMEY0O0MwRjQ7MTEwOSAxMTYzIDExQjc7QzBGNDsxMTA5IDExNjMgMTFCNzsKK0MwRjU7QzBGNTsxMTA5IDExNjMgMTFCODtDMEY1OzExMDkgMTE2MyAxMUI4OworQzBGNjtDMEY2OzExMDkgMTE2MyAxMUI5O0MwRjY7MTEwOSAxMTYzIDExQjk7CitDMEY3O0MwRjc7MTEwOSAxMTYzIDExQkE7QzBGNzsxMTA5IDExNjMgMTFCQTsKK0MwRjg7QzBGODsxMTA5IDExNjMgMTFCQjtDMEY4OzExMDkgMTE2MyAxMUJCOworQzBGOTtDMEY5OzExMDkgMTE2MyAxMUJDO0MwRjk7MTEwOSAxMTYzIDExQkM7CitDMEZBO0MwRkE7MTEwOSAxMTYzIDExQkQ7QzBGQTsxMTA5IDExNjMgMTFCRDsKK0MwRkI7QzBGQjsxMTA5IDExNjMgMTFCRTtDMEZCOzExMDkgMTE2MyAxMUJFOworQzBGQztDMEZDOzExMDkgMTE2MyAxMUJGO0MwRkM7MTEwOSAxMTYzIDExQkY7CitDMEZEO0MwRkQ7MTEwOSAxMTYzIDExQzA7QzBGRDsxMTA5IDExNjMgMTFDMDsKK0MwRkU7QzBGRTsxMTA5IDExNjMgMTFDMTtDMEZFOzExMDkgMTE2MyAxMUMxOworQzBGRjtDMEZGOzExMDkgMTE2MyAxMUMyO0MwRkY7MTEwOSAxMTYzIDExQzI7CitDMTAwO0MxMDA7MTEwOSAxMTY0O0MxMDA7MTEwOSAxMTY0OworQzEwMTtDMTAxOzExMDkgMTE2NCAxMUE4O0MxMDE7MTEwOSAxMTY0IDExQTg7CitDMTAyO0MxMDI7MTEwOSAxMTY0IDExQTk7QzEwMjsxMTA5IDExNjQgMTFBOTsKK0MxMDM7QzEwMzsxMTA5IDExNjQgMTFBQTtDMTAzOzExMDkgMTE2NCAxMUFBOworQzEwNDtDMTA0OzExMDkgMTE2NCAxMUFCO0MxMDQ7MTEwOSAxMTY0IDExQUI7CitDMTA1O0MxMDU7MTEwOSAxMTY0IDExQUM7QzEwNTsxMTA5IDExNjQgMTFBQzsKK0MxMDY7QzEwNjsxMTA5IDExNjQgMTFBRDtDMTA2OzExMDkgMTE2NCAxMUFEOworQzEwNztDMTA3OzExMDkgMTE2NCAxMUFFO0MxMDc7MTEwOSAxMTY0IDExQUU7CitDMTA4O0MxMDg7MTEwOSAxMTY0IDExQUY7QzEwODsxMTA5IDExNjQgMTFBRjsKK0MxMDk7QzEwOTsxMTA5IDExNjQgMTFCMDtDMTA5OzExMDkgMTE2NCAxMUIwOworQzEwQTtDMTBBOzExMDkgMTE2NCAxMUIxO0MxMEE7MTEwOSAxMTY0IDExQjE7CitDMTBCO0MxMEI7MTEwOSAxMTY0IDExQjI7QzEwQjsxMTA5IDExNjQgMTFCMjsKK0MxMEM7QzEwQzsxMTA5IDExNjQgMTFCMztDMTBDOzExMDkgMTE2NCAxMUIzOworQzEwRDtDMTBEOzExMDkgMTE2NCAxMUI0O0MxMEQ7MTEwOSAxMTY0IDExQjQ7CitDMTBFO0MxMEU7MTEwOSAxMTY0IDExQjU7QzEwRTsxMTA5IDExNjQgMTFCNTsKK0MxMEY7QzEwRjsxMTA5IDExNjQgMTFCNjtDMTBGOzExMDkgMTE2NCAxMUI2OworQzExMDtDMTEwOzExMDkgMTE2NCAxMUI3O0MxMTA7MTEwOSAxMTY0IDExQjc7CitDMTExO0MxMTE7MTEwOSAxMTY0IDExQjg7QzExMTsxMTA5IDExNjQgMTFCODsKK0MxMTI7QzExMjsxMTA5IDExNjQgMTFCOTtDMTEyOzExMDkgMTE2NCAxMUI5OworQzExMztDMTEzOzExMDkgMTE2NCAxMUJBO0MxMTM7MTEwOSAxMTY0IDExQkE7CitDMTE0O0MxMTQ7MTEwOSAxMTY0IDExQkI7QzExNDsxMTA5IDExNjQgMTFCQjsKK0MxMTU7QzExNTsxMTA5IDExNjQgMTFCQztDMTE1OzExMDkgMTE2NCAxMUJDOworQzExNjtDMTE2OzExMDkgMTE2NCAxMUJEO0MxMTY7MTEwOSAxMTY0IDExQkQ7CitDMTE3O0MxMTc7MTEwOSAxMTY0IDExQkU7QzExNzsxMTA5IDExNjQgMTFCRTsKK0MxMTg7QzExODsxMTA5IDExNjQgMTFCRjtDMTE4OzExMDkgMTE2NCAxMUJGOworQzExOTtDMTE5OzExMDkgMTE2NCAxMUMwO0MxMTk7MTEwOSAxMTY0IDExQzA7CitDMTFBO0MxMUE7MTEwOSAxMTY0IDExQzE7QzExQTsxMTA5IDExNjQgMTFDMTsKK0MxMUI7QzExQjsxMTA5IDExNjQgMTFDMjtDMTFCOzExMDkgMTE2NCAxMUMyOworQzExQztDMTFDOzExMDkgMTE2NTtDMTFDOzExMDkgMTE2NTsKK0MxMUQ7QzExRDsxMTA5IDExNjUgMTFBODtDMTFEOzExMDkgMTE2NSAxMUE4OworQzExRTtDMTFFOzExMDkgMTE2NSAxMUE5O0MxMUU7MTEwOSAxMTY1IDExQTk7CitDMTFGO0MxMUY7MTEwOSAxMTY1IDExQUE7QzExRjsxMTA5IDExNjUgMTFBQTsKK0MxMjA7QzEyMDsxMTA5IDExNjUgMTFBQjtDMTIwOzExMDkgMTE2NSAxMUFCOworQzEyMTtDMTIxOzExMDkgMTE2NSAxMUFDO0MxMjE7MTEwOSAxMTY1IDExQUM7CitDMTIyO0MxMjI7MTEwOSAxMTY1IDExQUQ7QzEyMjsxMTA5IDExNjUgMTFBRDsKK0MxMjM7QzEyMzsxMTA5IDExNjUgMTFBRTtDMTIzOzExMDkgMTE2NSAxMUFFOworQzEyNDtDMTI0OzExMDkgMTE2NSAxMUFGO0MxMjQ7MTEwOSAxMTY1IDExQUY7CitDMTI1O0MxMjU7MTEwOSAxMTY1IDExQjA7QzEyNTsxMTA5IDExNjUgMTFCMDsKK0MxMjY7QzEyNjsxMTA5IDExNjUgMTFCMTtDMTI2OzExMDkgMTE2NSAxMUIxOworQzEyNztDMTI3OzExMDkgMTE2NSAxMUIyO0MxMjc7MTEwOSAxMTY1IDExQjI7CitDMTI4O0MxMjg7MTEwOSAxMTY1IDExQjM7QzEyODsxMTA5IDExNjUgMTFCMzsKK0MxMjk7QzEyOTsxMTA5IDExNjUgMTFCNDtDMTI5OzExMDkgMTE2NSAxMUI0OworQzEyQTtDMTJBOzExMDkgMTE2NSAxMUI1O0MxMkE7MTEwOSAxMTY1IDExQjU7CitDMTJCO0MxMkI7MTEwOSAxMTY1IDExQjY7QzEyQjsxMTA5IDExNjUgMTFCNjsKK0MxMkM7QzEyQzsxMTA5IDExNjUgMTFCNztDMTJDOzExMDkgMTE2NSAxMUI3OworQzEyRDtDMTJEOzExMDkgMTE2NSAxMUI4O0MxMkQ7MTEwOSAxMTY1IDExQjg7CitDMTJFO0MxMkU7MTEwOSAxMTY1IDExQjk7QzEyRTsxMTA5IDExNjUgMTFCOTsKK0MxMkY7QzEyRjsxMTA5IDExNjUgMTFCQTtDMTJGOzExMDkgMTE2NSAxMUJBOworQzEzMDtDMTMwOzExMDkgMTE2NSAxMUJCO0MxMzA7MTEwOSAxMTY1IDExQkI7CitDMTMxO0MxMzE7MTEwOSAxMTY1IDExQkM7QzEzMTsxMTA5IDExNjUgMTFCQzsKK0MxMzI7QzEzMjsxMTA5IDExNjUgMTFCRDtDMTMyOzExMDkgMTE2NSAxMUJEOworQzEzMztDMTMzOzExMDkgMTE2NSAxMUJFO0MxMzM7MTEwOSAxMTY1IDExQkU7CitDMTM0O0MxMzQ7MTEwOSAxMTY1IDExQkY7QzEzNDsxMTA5IDExNjUgMTFCRjsKK0MxMzU7QzEzNTsxMTA5IDExNjUgMTFDMDtDMTM1OzExMDkgMTE2NSAxMUMwOworQzEzNjtDMTM2OzExMDkgMTE2NSAxMUMxO0MxMzY7MTEwOSAxMTY1IDExQzE7CitDMTM3O0MxMzc7MTEwOSAxMTY1IDExQzI7QzEzNzsxMTA5IDExNjUgMTFDMjsKK0MxMzg7QzEzODsxMTA5IDExNjY7QzEzODsxMTA5IDExNjY7CitDMTM5O0MxMzk7MTEwOSAxMTY2IDExQTg7QzEzOTsxMTA5IDExNjYgMTFBODsKK0MxM0E7QzEzQTsxMTA5IDExNjYgMTFBOTtDMTNBOzExMDkgMTE2NiAxMUE5OworQzEzQjtDMTNCOzExMDkgMTE2NiAxMUFBO0MxM0I7MTEwOSAxMTY2IDExQUE7CitDMTNDO0MxM0M7MTEwOSAxMTY2IDExQUI7QzEzQzsxMTA5IDExNjYgMTFBQjsKK0MxM0Q7QzEzRDsxMTA5IDExNjYgMTFBQztDMTNEOzExMDkgMTE2NiAxMUFDOworQzEzRTtDMTNFOzExMDkgMTE2NiAxMUFEO0MxM0U7MTEwOSAxMTY2IDExQUQ7CitDMTNGO0MxM0Y7MTEwOSAxMTY2IDExQUU7QzEzRjsxMTA5IDExNjYgMTFBRTsKK0MxNDA7QzE0MDsxMTA5IDExNjYgMTFBRjtDMTQwOzExMDkgMTE2NiAxMUFGOworQzE0MTtDMTQxOzExMDkgMTE2NiAxMUIwO0MxNDE7MTEwOSAxMTY2IDExQjA7CitDMTQyO0MxNDI7MTEwOSAxMTY2IDExQjE7QzE0MjsxMTA5IDExNjYgMTFCMTsKK0MxNDM7QzE0MzsxMTA5IDExNjYgMTFCMjtDMTQzOzExMDkgMTE2NiAxMUIyOworQzE0NDtDMTQ0OzExMDkgMTE2NiAxMUIzO0MxNDQ7MTEwOSAxMTY2IDExQjM7CitDMTQ1O0MxNDU7MTEwOSAxMTY2IDExQjQ7QzE0NTsxMTA5IDExNjYgMTFCNDsKK0MxNDY7QzE0NjsxMTA5IDExNjYgMTFCNTtDMTQ2OzExMDkgMTE2NiAxMUI1OworQzE0NztDMTQ3OzExMDkgMTE2NiAxMUI2O0MxNDc7MTEwOSAxMTY2IDExQjY7CitDMTQ4O0MxNDg7MTEwOSAxMTY2IDExQjc7QzE0ODsxMTA5IDExNjYgMTFCNzsKK0MxNDk7QzE0OTsxMTA5IDExNjYgMTFCODtDMTQ5OzExMDkgMTE2NiAxMUI4OworQzE0QTtDMTRBOzExMDkgMTE2NiAxMUI5O0MxNEE7MTEwOSAxMTY2IDExQjk7CitDMTRCO0MxNEI7MTEwOSAxMTY2IDExQkE7QzE0QjsxMTA5IDExNjYgMTFCQTsKK0MxNEM7QzE0QzsxMTA5IDExNjYgMTFCQjtDMTRDOzExMDkgMTE2NiAxMUJCOworQzE0RDtDMTREOzExMDkgMTE2NiAxMUJDO0MxNEQ7MTEwOSAxMTY2IDExQkM7CitDMTRFO0MxNEU7MTEwOSAxMTY2IDExQkQ7QzE0RTsxMTA5IDExNjYgMTFCRDsKK0MxNEY7QzE0RjsxMTA5IDExNjYgMTFCRTtDMTRGOzExMDkgMTE2NiAxMUJFOworQzE1MDtDMTUwOzExMDkgMTE2NiAxMUJGO0MxNTA7MTEwOSAxMTY2IDExQkY7CitDMTUxO0MxNTE7MTEwOSAxMTY2IDExQzA7QzE1MTsxMTA5IDExNjYgMTFDMDsKK0MxNTI7QzE1MjsxMTA5IDExNjYgMTFDMTtDMTUyOzExMDkgMTE2NiAxMUMxOworQzE1MztDMTUzOzExMDkgMTE2NiAxMUMyO0MxNTM7MTEwOSAxMTY2IDExQzI7CitDMTU0O0MxNTQ7MTEwOSAxMTY3O0MxNTQ7MTEwOSAxMTY3OworQzE1NTtDMTU1OzExMDkgMTE2NyAxMUE4O0MxNTU7MTEwOSAxMTY3IDExQTg7CitDMTU2O0MxNTY7MTEwOSAxMTY3IDExQTk7QzE1NjsxMTA5IDExNjcgMTFBOTsKK0MxNTc7QzE1NzsxMTA5IDExNjcgMTFBQTtDMTU3OzExMDkgMTE2NyAxMUFBOworQzE1ODtDMTU4OzExMDkgMTE2NyAxMUFCO0MxNTg7MTEwOSAxMTY3IDExQUI7CitDMTU5O0MxNTk7MTEwOSAxMTY3IDExQUM7QzE1OTsxMTA5IDExNjcgMTFBQzsKK0MxNUE7QzE1QTsxMTA5IDExNjcgMTFBRDtDMTVBOzExMDkgMTE2NyAxMUFEOworQzE1QjtDMTVCOzExMDkgMTE2NyAxMUFFO0MxNUI7MTEwOSAxMTY3IDExQUU7CitDMTVDO0MxNUM7MTEwOSAxMTY3IDExQUY7QzE1QzsxMTA5IDExNjcgMTFBRjsKK0MxNUQ7QzE1RDsxMTA5IDExNjcgMTFCMDtDMTVEOzExMDkgMTE2NyAxMUIwOworQzE1RTtDMTVFOzExMDkgMTE2NyAxMUIxO0MxNUU7MTEwOSAxMTY3IDExQjE7CitDMTVGO0MxNUY7MTEwOSAxMTY3IDExQjI7QzE1RjsxMTA5IDExNjcgMTFCMjsKK0MxNjA7QzE2MDsxMTA5IDExNjcgMTFCMztDMTYwOzExMDkgMTE2NyAxMUIzOworQzE2MTtDMTYxOzExMDkgMTE2NyAxMUI0O0MxNjE7MTEwOSAxMTY3IDExQjQ7CitDMTYyO0MxNjI7MTEwOSAxMTY3IDExQjU7QzE2MjsxMTA5IDExNjcgMTFCNTsKK0MxNjM7QzE2MzsxMTA5IDExNjcgMTFCNjtDMTYzOzExMDkgMTE2NyAxMUI2OworQzE2NDtDMTY0OzExMDkgMTE2NyAxMUI3O0MxNjQ7MTEwOSAxMTY3IDExQjc7CitDMTY1O0MxNjU7MTEwOSAxMTY3IDExQjg7QzE2NTsxMTA5IDExNjcgMTFCODsKK0MxNjY7QzE2NjsxMTA5IDExNjcgMTFCOTtDMTY2OzExMDkgMTE2NyAxMUI5OworQzE2NztDMTY3OzExMDkgMTE2NyAxMUJBO0MxNjc7MTEwOSAxMTY3IDExQkE7CitDMTY4O0MxNjg7MTEwOSAxMTY3IDExQkI7QzE2ODsxMTA5IDExNjcgMTFCQjsKK0MxNjk7QzE2OTsxMTA5IDExNjcgMTFCQztDMTY5OzExMDkgMTE2NyAxMUJDOworQzE2QTtDMTZBOzExMDkgMTE2NyAxMUJEO0MxNkE7MTEwOSAxMTY3IDExQkQ7CitDMTZCO0MxNkI7MTEwOSAxMTY3IDExQkU7QzE2QjsxMTA5IDExNjcgMTFCRTsKK0MxNkM7QzE2QzsxMTA5IDExNjcgMTFCRjtDMTZDOzExMDkgMTE2NyAxMUJGOworQzE2RDtDMTZEOzExMDkgMTE2NyAxMUMwO0MxNkQ7MTEwOSAxMTY3IDExQzA7CitDMTZFO0MxNkU7MTEwOSAxMTY3IDExQzE7QzE2RTsxMTA5IDExNjcgMTFDMTsKK0MxNkY7QzE2RjsxMTA5IDExNjcgMTFDMjtDMTZGOzExMDkgMTE2NyAxMUMyOworQzE3MDtDMTcwOzExMDkgMTE2ODtDMTcwOzExMDkgMTE2ODsKK0MxNzE7QzE3MTsxMTA5IDExNjggMTFBODtDMTcxOzExMDkgMTE2OCAxMUE4OworQzE3MjtDMTcyOzExMDkgMTE2OCAxMUE5O0MxNzI7MTEwOSAxMTY4IDExQTk7CitDMTczO0MxNzM7MTEwOSAxMTY4IDExQUE7QzE3MzsxMTA5IDExNjggMTFBQTsKK0MxNzQ7QzE3NDsxMTA5IDExNjggMTFBQjtDMTc0OzExMDkgMTE2OCAxMUFCOworQzE3NTtDMTc1OzExMDkgMTE2OCAxMUFDO0MxNzU7MTEwOSAxMTY4IDExQUM7CitDMTc2O0MxNzY7MTEwOSAxMTY4IDExQUQ7QzE3NjsxMTA5IDExNjggMTFBRDsKK0MxNzc7QzE3NzsxMTA5IDExNjggMTFBRTtDMTc3OzExMDkgMTE2OCAxMUFFOworQzE3ODtDMTc4OzExMDkgMTE2OCAxMUFGO0MxNzg7MTEwOSAxMTY4IDExQUY7CitDMTc5O0MxNzk7MTEwOSAxMTY4IDExQjA7QzE3OTsxMTA5IDExNjggMTFCMDsKK0MxN0E7QzE3QTsxMTA5IDExNjggMTFCMTtDMTdBOzExMDkgMTE2OCAxMUIxOworQzE3QjtDMTdCOzExMDkgMTE2OCAxMUIyO0MxN0I7MTEwOSAxMTY4IDExQjI7CitDMTdDO0MxN0M7MTEwOSAxMTY4IDExQjM7QzE3QzsxMTA5IDExNjggMTFCMzsKK0MxN0Q7QzE3RDsxMTA5IDExNjggMTFCNDtDMTdEOzExMDkgMTE2OCAxMUI0OworQzE3RTtDMTdFOzExMDkgMTE2OCAxMUI1O0MxN0U7MTEwOSAxMTY4IDExQjU7CitDMTdGO0MxN0Y7MTEwOSAxMTY4IDExQjY7QzE3RjsxMTA5IDExNjggMTFCNjsKK0MxODA7QzE4MDsxMTA5IDExNjggMTFCNztDMTgwOzExMDkgMTE2OCAxMUI3OworQzE4MTtDMTgxOzExMDkgMTE2OCAxMUI4O0MxODE7MTEwOSAxMTY4IDExQjg7CitDMTgyO0MxODI7MTEwOSAxMTY4IDExQjk7QzE4MjsxMTA5IDExNjggMTFCOTsKK0MxODM7QzE4MzsxMTA5IDExNjggMTFCQTtDMTgzOzExMDkgMTE2OCAxMUJBOworQzE4NDtDMTg0OzExMDkgMTE2OCAxMUJCO0MxODQ7MTEwOSAxMTY4IDExQkI7CitDMTg1O0MxODU7MTEwOSAxMTY4IDExQkM7QzE4NTsxMTA5IDExNjggMTFCQzsKK0MxODY7QzE4NjsxMTA5IDExNjggMTFCRDtDMTg2OzExMDkgMTE2OCAxMUJEOworQzE4NztDMTg3OzExMDkgMTE2OCAxMUJFO0MxODc7MTEwOSAxMTY4IDExQkU7CitDMTg4O0MxODg7MTEwOSAxMTY4IDExQkY7QzE4ODsxMTA5IDExNjggMTFCRjsKK0MxODk7QzE4OTsxMTA5IDExNjggMTFDMDtDMTg5OzExMDkgMTE2OCAxMUMwOworQzE4QTtDMThBOzExMDkgMTE2OCAxMUMxO0MxOEE7MTEwOSAxMTY4IDExQzE7CitDMThCO0MxOEI7MTEwOSAxMTY4IDExQzI7QzE4QjsxMTA5IDExNjggMTFDMjsKK0MxOEM7QzE4QzsxMTA5IDExNjk7QzE4QzsxMTA5IDExNjk7CitDMThEO0MxOEQ7MTEwOSAxMTY5IDExQTg7QzE4RDsxMTA5IDExNjkgMTFBODsKK0MxOEU7QzE4RTsxMTA5IDExNjkgMTFBOTtDMThFOzExMDkgMTE2OSAxMUE5OworQzE4RjtDMThGOzExMDkgMTE2OSAxMUFBO0MxOEY7MTEwOSAxMTY5IDExQUE7CitDMTkwO0MxOTA7MTEwOSAxMTY5IDExQUI7QzE5MDsxMTA5IDExNjkgMTFBQjsKK0MxOTE7QzE5MTsxMTA5IDExNjkgMTFBQztDMTkxOzExMDkgMTE2OSAxMUFDOworQzE5MjtDMTkyOzExMDkgMTE2OSAxMUFEO0MxOTI7MTEwOSAxMTY5IDExQUQ7CitDMTkzO0MxOTM7MTEwOSAxMTY5IDExQUU7QzE5MzsxMTA5IDExNjkgMTFBRTsKK0MxOTQ7QzE5NDsxMTA5IDExNjkgMTFBRjtDMTk0OzExMDkgMTE2OSAxMUFGOworQzE5NTtDMTk1OzExMDkgMTE2OSAxMUIwO0MxOTU7MTEwOSAxMTY5IDExQjA7CitDMTk2O0MxOTY7MTEwOSAxMTY5IDExQjE7QzE5NjsxMTA5IDExNjkgMTFCMTsKK0MxOTc7QzE5NzsxMTA5IDExNjkgMTFCMjtDMTk3OzExMDkgMTE2OSAxMUIyOworQzE5ODtDMTk4OzExMDkgMTE2OSAxMUIzO0MxOTg7MTEwOSAxMTY5IDExQjM7CitDMTk5O0MxOTk7MTEwOSAxMTY5IDExQjQ7QzE5OTsxMTA5IDExNjkgMTFCNDsKK0MxOUE7QzE5QTsxMTA5IDExNjkgMTFCNTtDMTlBOzExMDkgMTE2OSAxMUI1OworQzE5QjtDMTlCOzExMDkgMTE2OSAxMUI2O0MxOUI7MTEwOSAxMTY5IDExQjY7CitDMTlDO0MxOUM7MTEwOSAxMTY5IDExQjc7QzE5QzsxMTA5IDExNjkgMTFCNzsKK0MxOUQ7QzE5RDsxMTA5IDExNjkgMTFCODtDMTlEOzExMDkgMTE2OSAxMUI4OworQzE5RTtDMTlFOzExMDkgMTE2OSAxMUI5O0MxOUU7MTEwOSAxMTY5IDExQjk7CitDMTlGO0MxOUY7MTEwOSAxMTY5IDExQkE7QzE5RjsxMTA5IDExNjkgMTFCQTsKK0MxQTA7QzFBMDsxMTA5IDExNjkgMTFCQjtDMUEwOzExMDkgMTE2OSAxMUJCOworQzFBMTtDMUExOzExMDkgMTE2OSAxMUJDO0MxQTE7MTEwOSAxMTY5IDExQkM7CitDMUEyO0MxQTI7MTEwOSAxMTY5IDExQkQ7QzFBMjsxMTA5IDExNjkgMTFCRDsKK0MxQTM7QzFBMzsxMTA5IDExNjkgMTFCRTtDMUEzOzExMDkgMTE2OSAxMUJFOworQzFBNDtDMUE0OzExMDkgMTE2OSAxMUJGO0MxQTQ7MTEwOSAxMTY5IDExQkY7CitDMUE1O0MxQTU7MTEwOSAxMTY5IDExQzA7QzFBNTsxMTA5IDExNjkgMTFDMDsKK0MxQTY7QzFBNjsxMTA5IDExNjkgMTFDMTtDMUE2OzExMDkgMTE2OSAxMUMxOworQzFBNztDMUE3OzExMDkgMTE2OSAxMUMyO0MxQTc7MTEwOSAxMTY5IDExQzI7CitDMUE4O0MxQTg7MTEwOSAxMTZBO0MxQTg7MTEwOSAxMTZBOworQzFBOTtDMUE5OzExMDkgMTE2QSAxMUE4O0MxQTk7MTEwOSAxMTZBIDExQTg7CitDMUFBO0MxQUE7MTEwOSAxMTZBIDExQTk7QzFBQTsxMTA5IDExNkEgMTFBOTsKK0MxQUI7QzFBQjsxMTA5IDExNkEgMTFBQTtDMUFCOzExMDkgMTE2QSAxMUFBOworQzFBQztDMUFDOzExMDkgMTE2QSAxMUFCO0MxQUM7MTEwOSAxMTZBIDExQUI7CitDMUFEO0MxQUQ7MTEwOSAxMTZBIDExQUM7QzFBRDsxMTA5IDExNkEgMTFBQzsKK0MxQUU7QzFBRTsxMTA5IDExNkEgMTFBRDtDMUFFOzExMDkgMTE2QSAxMUFEOworQzFBRjtDMUFGOzExMDkgMTE2QSAxMUFFO0MxQUY7MTEwOSAxMTZBIDExQUU7CitDMUIwO0MxQjA7MTEwOSAxMTZBIDExQUY7QzFCMDsxMTA5IDExNkEgMTFBRjsKK0MxQjE7QzFCMTsxMTA5IDExNkEgMTFCMDtDMUIxOzExMDkgMTE2QSAxMUIwOworQzFCMjtDMUIyOzExMDkgMTE2QSAxMUIxO0MxQjI7MTEwOSAxMTZBIDExQjE7CitDMUIzO0MxQjM7MTEwOSAxMTZBIDExQjI7QzFCMzsxMTA5IDExNkEgMTFCMjsKK0MxQjQ7QzFCNDsxMTA5IDExNkEgMTFCMztDMUI0OzExMDkgMTE2QSAxMUIzOworQzFCNTtDMUI1OzExMDkgMTE2QSAxMUI0O0MxQjU7MTEwOSAxMTZBIDExQjQ7CitDMUI2O0MxQjY7MTEwOSAxMTZBIDExQjU7QzFCNjsxMTA5IDExNkEgMTFCNTsKK0MxQjc7QzFCNzsxMTA5IDExNkEgMTFCNjtDMUI3OzExMDkgMTE2QSAxMUI2OworQzFCODtDMUI4OzExMDkgMTE2QSAxMUI3O0MxQjg7MTEwOSAxMTZBIDExQjc7CitDMUI5O0MxQjk7MTEwOSAxMTZBIDExQjg7QzFCOTsxMTA5IDExNkEgMTFCODsKK0MxQkE7QzFCQTsxMTA5IDExNkEgMTFCOTtDMUJBOzExMDkgMTE2QSAxMUI5OworQzFCQjtDMUJCOzExMDkgMTE2QSAxMUJBO0MxQkI7MTEwOSAxMTZBIDExQkE7CitDMUJDO0MxQkM7MTEwOSAxMTZBIDExQkI7QzFCQzsxMTA5IDExNkEgMTFCQjsKK0MxQkQ7QzFCRDsxMTA5IDExNkEgMTFCQztDMUJEOzExMDkgMTE2QSAxMUJDOworQzFCRTtDMUJFOzExMDkgMTE2QSAxMUJEO0MxQkU7MTEwOSAxMTZBIDExQkQ7CitDMUJGO0MxQkY7MTEwOSAxMTZBIDExQkU7QzFCRjsxMTA5IDExNkEgMTFCRTsKK0MxQzA7QzFDMDsxMTA5IDExNkEgMTFCRjtDMUMwOzExMDkgMTE2QSAxMUJGOworQzFDMTtDMUMxOzExMDkgMTE2QSAxMUMwO0MxQzE7MTEwOSAxMTZBIDExQzA7CitDMUMyO0MxQzI7MTEwOSAxMTZBIDExQzE7QzFDMjsxMTA5IDExNkEgMTFDMTsKK0MxQzM7QzFDMzsxMTA5IDExNkEgMTFDMjtDMUMzOzExMDkgMTE2QSAxMUMyOworQzFDNDtDMUM0OzExMDkgMTE2QjtDMUM0OzExMDkgMTE2QjsKK0MxQzU7QzFDNTsxMTA5IDExNkIgMTFBODtDMUM1OzExMDkgMTE2QiAxMUE4OworQzFDNjtDMUM2OzExMDkgMTE2QiAxMUE5O0MxQzY7MTEwOSAxMTZCIDExQTk7CitDMUM3O0MxQzc7MTEwOSAxMTZCIDExQUE7QzFDNzsxMTA5IDExNkIgMTFBQTsKK0MxQzg7QzFDODsxMTA5IDExNkIgMTFBQjtDMUM4OzExMDkgMTE2QiAxMUFCOworQzFDOTtDMUM5OzExMDkgMTE2QiAxMUFDO0MxQzk7MTEwOSAxMTZCIDExQUM7CitDMUNBO0MxQ0E7MTEwOSAxMTZCIDExQUQ7QzFDQTsxMTA5IDExNkIgMTFBRDsKK0MxQ0I7QzFDQjsxMTA5IDExNkIgMTFBRTtDMUNCOzExMDkgMTE2QiAxMUFFOworQzFDQztDMUNDOzExMDkgMTE2QiAxMUFGO0MxQ0M7MTEwOSAxMTZCIDExQUY7CitDMUNEO0MxQ0Q7MTEwOSAxMTZCIDExQjA7QzFDRDsxMTA5IDExNkIgMTFCMDsKK0MxQ0U7QzFDRTsxMTA5IDExNkIgMTFCMTtDMUNFOzExMDkgMTE2QiAxMUIxOworQzFDRjtDMUNGOzExMDkgMTE2QiAxMUIyO0MxQ0Y7MTEwOSAxMTZCIDExQjI7CitDMUQwO0MxRDA7MTEwOSAxMTZCIDExQjM7QzFEMDsxMTA5IDExNkIgMTFCMzsKK0MxRDE7QzFEMTsxMTA5IDExNkIgMTFCNDtDMUQxOzExMDkgMTE2QiAxMUI0OworQzFEMjtDMUQyOzExMDkgMTE2QiAxMUI1O0MxRDI7MTEwOSAxMTZCIDExQjU7CitDMUQzO0MxRDM7MTEwOSAxMTZCIDExQjY7QzFEMzsxMTA5IDExNkIgMTFCNjsKK0MxRDQ7QzFENDsxMTA5IDExNkIgMTFCNztDMUQ0OzExMDkgMTE2QiAxMUI3OworQzFENTtDMUQ1OzExMDkgMTE2QiAxMUI4O0MxRDU7MTEwOSAxMTZCIDExQjg7CitDMUQ2O0MxRDY7MTEwOSAxMTZCIDExQjk7QzFENjsxMTA5IDExNkIgMTFCOTsKK0MxRDc7QzFENzsxMTA5IDExNkIgMTFCQTtDMUQ3OzExMDkgMTE2QiAxMUJBOworQzFEODtDMUQ4OzExMDkgMTE2QiAxMUJCO0MxRDg7MTEwOSAxMTZCIDExQkI7CitDMUQ5O0MxRDk7MTEwOSAxMTZCIDExQkM7QzFEOTsxMTA5IDExNkIgMTFCQzsKK0MxREE7QzFEQTsxMTA5IDExNkIgMTFCRDtDMURBOzExMDkgMTE2QiAxMUJEOworQzFEQjtDMURCOzExMDkgMTE2QiAxMUJFO0MxREI7MTEwOSAxMTZCIDExQkU7CitDMURDO0MxREM7MTEwOSAxMTZCIDExQkY7QzFEQzsxMTA5IDExNkIgMTFCRjsKK0MxREQ7QzFERDsxMTA5IDExNkIgMTFDMDtDMUREOzExMDkgMTE2QiAxMUMwOworQzFERTtDMURFOzExMDkgMTE2QiAxMUMxO0MxREU7MTEwOSAxMTZCIDExQzE7CitDMURGO0MxREY7MTEwOSAxMTZCIDExQzI7QzFERjsxMTA5IDExNkIgMTFDMjsKK0MxRTA7QzFFMDsxMTA5IDExNkM7QzFFMDsxMTA5IDExNkM7CitDMUUxO0MxRTE7MTEwOSAxMTZDIDExQTg7QzFFMTsxMTA5IDExNkMgMTFBODsKK0MxRTI7QzFFMjsxMTA5IDExNkMgMTFBOTtDMUUyOzExMDkgMTE2QyAxMUE5OworQzFFMztDMUUzOzExMDkgMTE2QyAxMUFBO0MxRTM7MTEwOSAxMTZDIDExQUE7CitDMUU0O0MxRTQ7MTEwOSAxMTZDIDExQUI7QzFFNDsxMTA5IDExNkMgMTFBQjsKK0MxRTU7QzFFNTsxMTA5IDExNkMgMTFBQztDMUU1OzExMDkgMTE2QyAxMUFDOworQzFFNjtDMUU2OzExMDkgMTE2QyAxMUFEO0MxRTY7MTEwOSAxMTZDIDExQUQ7CitDMUU3O0MxRTc7MTEwOSAxMTZDIDExQUU7QzFFNzsxMTA5IDExNkMgMTFBRTsKK0MxRTg7QzFFODsxMTA5IDExNkMgMTFBRjtDMUU4OzExMDkgMTE2QyAxMUFGOworQzFFOTtDMUU5OzExMDkgMTE2QyAxMUIwO0MxRTk7MTEwOSAxMTZDIDExQjA7CitDMUVBO0MxRUE7MTEwOSAxMTZDIDExQjE7QzFFQTsxMTA5IDExNkMgMTFCMTsKK0MxRUI7QzFFQjsxMTA5IDExNkMgMTFCMjtDMUVCOzExMDkgMTE2QyAxMUIyOworQzFFQztDMUVDOzExMDkgMTE2QyAxMUIzO0MxRUM7MTEwOSAxMTZDIDExQjM7CitDMUVEO0MxRUQ7MTEwOSAxMTZDIDExQjQ7QzFFRDsxMTA5IDExNkMgMTFCNDsKK0MxRUU7QzFFRTsxMTA5IDExNkMgMTFCNTtDMUVFOzExMDkgMTE2QyAxMUI1OworQzFFRjtDMUVGOzExMDkgMTE2QyAxMUI2O0MxRUY7MTEwOSAxMTZDIDExQjY7CitDMUYwO0MxRjA7MTEwOSAxMTZDIDExQjc7QzFGMDsxMTA5IDExNkMgMTFCNzsKK0MxRjE7QzFGMTsxMTA5IDExNkMgMTFCODtDMUYxOzExMDkgMTE2QyAxMUI4OworQzFGMjtDMUYyOzExMDkgMTE2QyAxMUI5O0MxRjI7MTEwOSAxMTZDIDExQjk7CitDMUYzO0MxRjM7MTEwOSAxMTZDIDExQkE7QzFGMzsxMTA5IDExNkMgMTFCQTsKK0MxRjQ7QzFGNDsxMTA5IDExNkMgMTFCQjtDMUY0OzExMDkgMTE2QyAxMUJCOworQzFGNTtDMUY1OzExMDkgMTE2QyAxMUJDO0MxRjU7MTEwOSAxMTZDIDExQkM7CitDMUY2O0MxRjY7MTEwOSAxMTZDIDExQkQ7QzFGNjsxMTA5IDExNkMgMTFCRDsKK0MxRjc7QzFGNzsxMTA5IDExNkMgMTFCRTtDMUY3OzExMDkgMTE2QyAxMUJFOworQzFGODtDMUY4OzExMDkgMTE2QyAxMUJGO0MxRjg7MTEwOSAxMTZDIDExQkY7CitDMUY5O0MxRjk7MTEwOSAxMTZDIDExQzA7QzFGOTsxMTA5IDExNkMgMTFDMDsKK0MxRkE7QzFGQTsxMTA5IDExNkMgMTFDMTtDMUZBOzExMDkgMTE2QyAxMUMxOworQzFGQjtDMUZCOzExMDkgMTE2QyAxMUMyO0MxRkI7MTEwOSAxMTZDIDExQzI7CitDMUZDO0MxRkM7MTEwOSAxMTZEO0MxRkM7MTEwOSAxMTZEOworQzFGRDtDMUZEOzExMDkgMTE2RCAxMUE4O0MxRkQ7MTEwOSAxMTZEIDExQTg7CitDMUZFO0MxRkU7MTEwOSAxMTZEIDExQTk7QzFGRTsxMTA5IDExNkQgMTFBOTsKK0MxRkY7QzFGRjsxMTA5IDExNkQgMTFBQTtDMUZGOzExMDkgMTE2RCAxMUFBOworQzIwMDtDMjAwOzExMDkgMTE2RCAxMUFCO0MyMDA7MTEwOSAxMTZEIDExQUI7CitDMjAxO0MyMDE7MTEwOSAxMTZEIDExQUM7QzIwMTsxMTA5IDExNkQgMTFBQzsKK0MyMDI7QzIwMjsxMTA5IDExNkQgMTFBRDtDMjAyOzExMDkgMTE2RCAxMUFEOworQzIwMztDMjAzOzExMDkgMTE2RCAxMUFFO0MyMDM7MTEwOSAxMTZEIDExQUU7CitDMjA0O0MyMDQ7MTEwOSAxMTZEIDExQUY7QzIwNDsxMTA5IDExNkQgMTFBRjsKK0MyMDU7QzIwNTsxMTA5IDExNkQgMTFCMDtDMjA1OzExMDkgMTE2RCAxMUIwOworQzIwNjtDMjA2OzExMDkgMTE2RCAxMUIxO0MyMDY7MTEwOSAxMTZEIDExQjE7CitDMjA3O0MyMDc7MTEwOSAxMTZEIDExQjI7QzIwNzsxMTA5IDExNkQgMTFCMjsKK0MyMDg7QzIwODsxMTA5IDExNkQgMTFCMztDMjA4OzExMDkgMTE2RCAxMUIzOworQzIwOTtDMjA5OzExMDkgMTE2RCAxMUI0O0MyMDk7MTEwOSAxMTZEIDExQjQ7CitDMjBBO0MyMEE7MTEwOSAxMTZEIDExQjU7QzIwQTsxMTA5IDExNkQgMTFCNTsKK0MyMEI7QzIwQjsxMTA5IDExNkQgMTFCNjtDMjBCOzExMDkgMTE2RCAxMUI2OworQzIwQztDMjBDOzExMDkgMTE2RCAxMUI3O0MyMEM7MTEwOSAxMTZEIDExQjc7CitDMjBEO0MyMEQ7MTEwOSAxMTZEIDExQjg7QzIwRDsxMTA5IDExNkQgMTFCODsKK0MyMEU7QzIwRTsxMTA5IDExNkQgMTFCOTtDMjBFOzExMDkgMTE2RCAxMUI5OworQzIwRjtDMjBGOzExMDkgMTE2RCAxMUJBO0MyMEY7MTEwOSAxMTZEIDExQkE7CitDMjEwO0MyMTA7MTEwOSAxMTZEIDExQkI7QzIxMDsxMTA5IDExNkQgMTFCQjsKK0MyMTE7QzIxMTsxMTA5IDExNkQgMTFCQztDMjExOzExMDkgMTE2RCAxMUJDOworQzIxMjtDMjEyOzExMDkgMTE2RCAxMUJEO0MyMTI7MTEwOSAxMTZEIDExQkQ7CitDMjEzO0MyMTM7MTEwOSAxMTZEIDExQkU7QzIxMzsxMTA5IDExNkQgMTFCRTsKK0MyMTQ7QzIxNDsxMTA5IDExNkQgMTFCRjtDMjE0OzExMDkgMTE2RCAxMUJGOworQzIxNTtDMjE1OzExMDkgMTE2RCAxMUMwO0MyMTU7MTEwOSAxMTZEIDExQzA7CitDMjE2O0MyMTY7MTEwOSAxMTZEIDExQzE7QzIxNjsxMTA5IDExNkQgMTFDMTsKK0MyMTc7QzIxNzsxMTA5IDExNkQgMTFDMjtDMjE3OzExMDkgMTE2RCAxMUMyOworQzIxODtDMjE4OzExMDkgMTE2RTtDMjE4OzExMDkgMTE2RTsKK0MyMTk7QzIxOTsxMTA5IDExNkUgMTFBODtDMjE5OzExMDkgMTE2RSAxMUE4OworQzIxQTtDMjFBOzExMDkgMTE2RSAxMUE5O0MyMUE7MTEwOSAxMTZFIDExQTk7CitDMjFCO0MyMUI7MTEwOSAxMTZFIDExQUE7QzIxQjsxMTA5IDExNkUgMTFBQTsKK0MyMUM7QzIxQzsxMTA5IDExNkUgMTFBQjtDMjFDOzExMDkgMTE2RSAxMUFCOworQzIxRDtDMjFEOzExMDkgMTE2RSAxMUFDO0MyMUQ7MTEwOSAxMTZFIDExQUM7CitDMjFFO0MyMUU7MTEwOSAxMTZFIDExQUQ7QzIxRTsxMTA5IDExNkUgMTFBRDsKK0MyMUY7QzIxRjsxMTA5IDExNkUgMTFBRTtDMjFGOzExMDkgMTE2RSAxMUFFOworQzIyMDtDMjIwOzExMDkgMTE2RSAxMUFGO0MyMjA7MTEwOSAxMTZFIDExQUY7CitDMjIxO0MyMjE7MTEwOSAxMTZFIDExQjA7QzIyMTsxMTA5IDExNkUgMTFCMDsKK0MyMjI7QzIyMjsxMTA5IDExNkUgMTFCMTtDMjIyOzExMDkgMTE2RSAxMUIxOworQzIyMztDMjIzOzExMDkgMTE2RSAxMUIyO0MyMjM7MTEwOSAxMTZFIDExQjI7CitDMjI0O0MyMjQ7MTEwOSAxMTZFIDExQjM7QzIyNDsxMTA5IDExNkUgMTFCMzsKK0MyMjU7QzIyNTsxMTA5IDExNkUgMTFCNDtDMjI1OzExMDkgMTE2RSAxMUI0OworQzIyNjtDMjI2OzExMDkgMTE2RSAxMUI1O0MyMjY7MTEwOSAxMTZFIDExQjU7CitDMjI3O0MyMjc7MTEwOSAxMTZFIDExQjY7QzIyNzsxMTA5IDExNkUgMTFCNjsKK0MyMjg7QzIyODsxMTA5IDExNkUgMTFCNztDMjI4OzExMDkgMTE2RSAxMUI3OworQzIyOTtDMjI5OzExMDkgMTE2RSAxMUI4O0MyMjk7MTEwOSAxMTZFIDExQjg7CitDMjJBO0MyMkE7MTEwOSAxMTZFIDExQjk7QzIyQTsxMTA5IDExNkUgMTFCOTsKK0MyMkI7QzIyQjsxMTA5IDExNkUgMTFCQTtDMjJCOzExMDkgMTE2RSAxMUJBOworQzIyQztDMjJDOzExMDkgMTE2RSAxMUJCO0MyMkM7MTEwOSAxMTZFIDExQkI7CitDMjJEO0MyMkQ7MTEwOSAxMTZFIDExQkM7QzIyRDsxMTA5IDExNkUgMTFCQzsKK0MyMkU7QzIyRTsxMTA5IDExNkUgMTFCRDtDMjJFOzExMDkgMTE2RSAxMUJEOworQzIyRjtDMjJGOzExMDkgMTE2RSAxMUJFO0MyMkY7MTEwOSAxMTZFIDExQkU7CitDMjMwO0MyMzA7MTEwOSAxMTZFIDExQkY7QzIzMDsxMTA5IDExNkUgMTFCRjsKK0MyMzE7QzIzMTsxMTA5IDExNkUgMTFDMDtDMjMxOzExMDkgMTE2RSAxMUMwOworQzIzMjtDMjMyOzExMDkgMTE2RSAxMUMxO0MyMzI7MTEwOSAxMTZFIDExQzE7CitDMjMzO0MyMzM7MTEwOSAxMTZFIDExQzI7QzIzMzsxMTA5IDExNkUgMTFDMjsKK0MyMzQ7QzIzNDsxMTA5IDExNkY7QzIzNDsxMTA5IDExNkY7CitDMjM1O0MyMzU7MTEwOSAxMTZGIDExQTg7QzIzNTsxMTA5IDExNkYgMTFBODsKK0MyMzY7QzIzNjsxMTA5IDExNkYgMTFBOTtDMjM2OzExMDkgMTE2RiAxMUE5OworQzIzNztDMjM3OzExMDkgMTE2RiAxMUFBO0MyMzc7MTEwOSAxMTZGIDExQUE7CitDMjM4O0MyMzg7MTEwOSAxMTZGIDExQUI7QzIzODsxMTA5IDExNkYgMTFBQjsKK0MyMzk7QzIzOTsxMTA5IDExNkYgMTFBQztDMjM5OzExMDkgMTE2RiAxMUFDOworQzIzQTtDMjNBOzExMDkgMTE2RiAxMUFEO0MyM0E7MTEwOSAxMTZGIDExQUQ7CitDMjNCO0MyM0I7MTEwOSAxMTZGIDExQUU7QzIzQjsxMTA5IDExNkYgMTFBRTsKK0MyM0M7QzIzQzsxMTA5IDExNkYgMTFBRjtDMjNDOzExMDkgMTE2RiAxMUFGOworQzIzRDtDMjNEOzExMDkgMTE2RiAxMUIwO0MyM0Q7MTEwOSAxMTZGIDExQjA7CitDMjNFO0MyM0U7MTEwOSAxMTZGIDExQjE7QzIzRTsxMTA5IDExNkYgMTFCMTsKK0MyM0Y7QzIzRjsxMTA5IDExNkYgMTFCMjtDMjNGOzExMDkgMTE2RiAxMUIyOworQzI0MDtDMjQwOzExMDkgMTE2RiAxMUIzO0MyNDA7MTEwOSAxMTZGIDExQjM7CitDMjQxO0MyNDE7MTEwOSAxMTZGIDExQjQ7QzI0MTsxMTA5IDExNkYgMTFCNDsKK0MyNDI7QzI0MjsxMTA5IDExNkYgMTFCNTtDMjQyOzExMDkgMTE2RiAxMUI1OworQzI0MztDMjQzOzExMDkgMTE2RiAxMUI2O0MyNDM7MTEwOSAxMTZGIDExQjY7CitDMjQ0O0MyNDQ7MTEwOSAxMTZGIDExQjc7QzI0NDsxMTA5IDExNkYgMTFCNzsKK0MyNDU7QzI0NTsxMTA5IDExNkYgMTFCODtDMjQ1OzExMDkgMTE2RiAxMUI4OworQzI0NjtDMjQ2OzExMDkgMTE2RiAxMUI5O0MyNDY7MTEwOSAxMTZGIDExQjk7CitDMjQ3O0MyNDc7MTEwOSAxMTZGIDExQkE7QzI0NzsxMTA5IDExNkYgMTFCQTsKK0MyNDg7QzI0ODsxMTA5IDExNkYgMTFCQjtDMjQ4OzExMDkgMTE2RiAxMUJCOworQzI0OTtDMjQ5OzExMDkgMTE2RiAxMUJDO0MyNDk7MTEwOSAxMTZGIDExQkM7CitDMjRBO0MyNEE7MTEwOSAxMTZGIDExQkQ7QzI0QTsxMTA5IDExNkYgMTFCRDsKK0MyNEI7QzI0QjsxMTA5IDExNkYgMTFCRTtDMjRCOzExMDkgMTE2RiAxMUJFOworQzI0QztDMjRDOzExMDkgMTE2RiAxMUJGO0MyNEM7MTEwOSAxMTZGIDExQkY7CitDMjREO0MyNEQ7MTEwOSAxMTZGIDExQzA7QzI0RDsxMTA5IDExNkYgMTFDMDsKK0MyNEU7QzI0RTsxMTA5IDExNkYgMTFDMTtDMjRFOzExMDkgMTE2RiAxMUMxOworQzI0RjtDMjRGOzExMDkgMTE2RiAxMUMyO0MyNEY7MTEwOSAxMTZGIDExQzI7CitDMjUwO0MyNTA7MTEwOSAxMTcwO0MyNTA7MTEwOSAxMTcwOworQzI1MTtDMjUxOzExMDkgMTE3MCAxMUE4O0MyNTE7MTEwOSAxMTcwIDExQTg7CitDMjUyO0MyNTI7MTEwOSAxMTcwIDExQTk7QzI1MjsxMTA5IDExNzAgMTFBOTsKK0MyNTM7QzI1MzsxMTA5IDExNzAgMTFBQTtDMjUzOzExMDkgMTE3MCAxMUFBOworQzI1NDtDMjU0OzExMDkgMTE3MCAxMUFCO0MyNTQ7MTEwOSAxMTcwIDExQUI7CitDMjU1O0MyNTU7MTEwOSAxMTcwIDExQUM7QzI1NTsxMTA5IDExNzAgMTFBQzsKK0MyNTY7QzI1NjsxMTA5IDExNzAgMTFBRDtDMjU2OzExMDkgMTE3MCAxMUFEOworQzI1NztDMjU3OzExMDkgMTE3MCAxMUFFO0MyNTc7MTEwOSAxMTcwIDExQUU7CitDMjU4O0MyNTg7MTEwOSAxMTcwIDExQUY7QzI1ODsxMTA5IDExNzAgMTFBRjsKK0MyNTk7QzI1OTsxMTA5IDExNzAgMTFCMDtDMjU5OzExMDkgMTE3MCAxMUIwOworQzI1QTtDMjVBOzExMDkgMTE3MCAxMUIxO0MyNUE7MTEwOSAxMTcwIDExQjE7CitDMjVCO0MyNUI7MTEwOSAxMTcwIDExQjI7QzI1QjsxMTA5IDExNzAgMTFCMjsKK0MyNUM7QzI1QzsxMTA5IDExNzAgMTFCMztDMjVDOzExMDkgMTE3MCAxMUIzOworQzI1RDtDMjVEOzExMDkgMTE3MCAxMUI0O0MyNUQ7MTEwOSAxMTcwIDExQjQ7CitDMjVFO0MyNUU7MTEwOSAxMTcwIDExQjU7QzI1RTsxMTA5IDExNzAgMTFCNTsKK0MyNUY7QzI1RjsxMTA5IDExNzAgMTFCNjtDMjVGOzExMDkgMTE3MCAxMUI2OworQzI2MDtDMjYwOzExMDkgMTE3MCAxMUI3O0MyNjA7MTEwOSAxMTcwIDExQjc7CitDMjYxO0MyNjE7MTEwOSAxMTcwIDExQjg7QzI2MTsxMTA5IDExNzAgMTFCODsKK0MyNjI7QzI2MjsxMTA5IDExNzAgMTFCOTtDMjYyOzExMDkgMTE3MCAxMUI5OworQzI2MztDMjYzOzExMDkgMTE3MCAxMUJBO0MyNjM7MTEwOSAxMTcwIDExQkE7CitDMjY0O0MyNjQ7MTEwOSAxMTcwIDExQkI7QzI2NDsxMTA5IDExNzAgMTFCQjsKK0MyNjU7QzI2NTsxMTA5IDExNzAgMTFCQztDMjY1OzExMDkgMTE3MCAxMUJDOworQzI2NjtDMjY2OzExMDkgMTE3MCAxMUJEO0MyNjY7MTEwOSAxMTcwIDExQkQ7CitDMjY3O0MyNjc7MTEwOSAxMTcwIDExQkU7QzI2NzsxMTA5IDExNzAgMTFCRTsKK0MyNjg7QzI2ODsxMTA5IDExNzAgMTFCRjtDMjY4OzExMDkgMTE3MCAxMUJGOworQzI2OTtDMjY5OzExMDkgMTE3MCAxMUMwO0MyNjk7MTEwOSAxMTcwIDExQzA7CitDMjZBO0MyNkE7MTEwOSAxMTcwIDExQzE7QzI2QTsxMTA5IDExNzAgMTFDMTsKK0MyNkI7QzI2QjsxMTA5IDExNzAgMTFDMjtDMjZCOzExMDkgMTE3MCAxMUMyOworQzI2QztDMjZDOzExMDkgMTE3MTtDMjZDOzExMDkgMTE3MTsKK0MyNkQ7QzI2RDsxMTA5IDExNzEgMTFBODtDMjZEOzExMDkgMTE3MSAxMUE4OworQzI2RTtDMjZFOzExMDkgMTE3MSAxMUE5O0MyNkU7MTEwOSAxMTcxIDExQTk7CitDMjZGO0MyNkY7MTEwOSAxMTcxIDExQUE7QzI2RjsxMTA5IDExNzEgMTFBQTsKK0MyNzA7QzI3MDsxMTA5IDExNzEgMTFBQjtDMjcwOzExMDkgMTE3MSAxMUFCOworQzI3MTtDMjcxOzExMDkgMTE3MSAxMUFDO0MyNzE7MTEwOSAxMTcxIDExQUM7CitDMjcyO0MyNzI7MTEwOSAxMTcxIDExQUQ7QzI3MjsxMTA5IDExNzEgMTFBRDsKK0MyNzM7QzI3MzsxMTA5IDExNzEgMTFBRTtDMjczOzExMDkgMTE3MSAxMUFFOworQzI3NDtDMjc0OzExMDkgMTE3MSAxMUFGO0MyNzQ7MTEwOSAxMTcxIDExQUY7CitDMjc1O0MyNzU7MTEwOSAxMTcxIDExQjA7QzI3NTsxMTA5IDExNzEgMTFCMDsKK0MyNzY7QzI3NjsxMTA5IDExNzEgMTFCMTtDMjc2OzExMDkgMTE3MSAxMUIxOworQzI3NztDMjc3OzExMDkgMTE3MSAxMUIyO0MyNzc7MTEwOSAxMTcxIDExQjI7CitDMjc4O0MyNzg7MTEwOSAxMTcxIDExQjM7QzI3ODsxMTA5IDExNzEgMTFCMzsKK0MyNzk7QzI3OTsxMTA5IDExNzEgMTFCNDtDMjc5OzExMDkgMTE3MSAxMUI0OworQzI3QTtDMjdBOzExMDkgMTE3MSAxMUI1O0MyN0E7MTEwOSAxMTcxIDExQjU7CitDMjdCO0MyN0I7MTEwOSAxMTcxIDExQjY7QzI3QjsxMTA5IDExNzEgMTFCNjsKK0MyN0M7QzI3QzsxMTA5IDExNzEgMTFCNztDMjdDOzExMDkgMTE3MSAxMUI3OworQzI3RDtDMjdEOzExMDkgMTE3MSAxMUI4O0MyN0Q7MTEwOSAxMTcxIDExQjg7CitDMjdFO0MyN0U7MTEwOSAxMTcxIDExQjk7QzI3RTsxMTA5IDExNzEgMTFCOTsKK0MyN0Y7QzI3RjsxMTA5IDExNzEgMTFCQTtDMjdGOzExMDkgMTE3MSAxMUJBOworQzI4MDtDMjgwOzExMDkgMTE3MSAxMUJCO0MyODA7MTEwOSAxMTcxIDExQkI7CitDMjgxO0MyODE7MTEwOSAxMTcxIDExQkM7QzI4MTsxMTA5IDExNzEgMTFCQzsKK0MyODI7QzI4MjsxMTA5IDExNzEgMTFCRDtDMjgyOzExMDkgMTE3MSAxMUJEOworQzI4MztDMjgzOzExMDkgMTE3MSAxMUJFO0MyODM7MTEwOSAxMTcxIDExQkU7CitDMjg0O0MyODQ7MTEwOSAxMTcxIDExQkY7QzI4NDsxMTA5IDExNzEgMTFCRjsKK0MyODU7QzI4NTsxMTA5IDExNzEgMTFDMDtDMjg1OzExMDkgMTE3MSAxMUMwOworQzI4NjtDMjg2OzExMDkgMTE3MSAxMUMxO0MyODY7MTEwOSAxMTcxIDExQzE7CitDMjg3O0MyODc7MTEwOSAxMTcxIDExQzI7QzI4NzsxMTA5IDExNzEgMTFDMjsKK0MyODg7QzI4ODsxMTA5IDExNzI7QzI4ODsxMTA5IDExNzI7CitDMjg5O0MyODk7MTEwOSAxMTcyIDExQTg7QzI4OTsxMTA5IDExNzIgMTFBODsKK0MyOEE7QzI4QTsxMTA5IDExNzIgMTFBOTtDMjhBOzExMDkgMTE3MiAxMUE5OworQzI4QjtDMjhCOzExMDkgMTE3MiAxMUFBO0MyOEI7MTEwOSAxMTcyIDExQUE7CitDMjhDO0MyOEM7MTEwOSAxMTcyIDExQUI7QzI4QzsxMTA5IDExNzIgMTFBQjsKK0MyOEQ7QzI4RDsxMTA5IDExNzIgMTFBQztDMjhEOzExMDkgMTE3MiAxMUFDOworQzI4RTtDMjhFOzExMDkgMTE3MiAxMUFEO0MyOEU7MTEwOSAxMTcyIDExQUQ7CitDMjhGO0MyOEY7MTEwOSAxMTcyIDExQUU7QzI4RjsxMTA5IDExNzIgMTFBRTsKK0MyOTA7QzI5MDsxMTA5IDExNzIgMTFBRjtDMjkwOzExMDkgMTE3MiAxMUFGOworQzI5MTtDMjkxOzExMDkgMTE3MiAxMUIwO0MyOTE7MTEwOSAxMTcyIDExQjA7CitDMjkyO0MyOTI7MTEwOSAxMTcyIDExQjE7QzI5MjsxMTA5IDExNzIgMTFCMTsKK0MyOTM7QzI5MzsxMTA5IDExNzIgMTFCMjtDMjkzOzExMDkgMTE3MiAxMUIyOworQzI5NDtDMjk0OzExMDkgMTE3MiAxMUIzO0MyOTQ7MTEwOSAxMTcyIDExQjM7CitDMjk1O0MyOTU7MTEwOSAxMTcyIDExQjQ7QzI5NTsxMTA5IDExNzIgMTFCNDsKK0MyOTY7QzI5NjsxMTA5IDExNzIgMTFCNTtDMjk2OzExMDkgMTE3MiAxMUI1OworQzI5NztDMjk3OzExMDkgMTE3MiAxMUI2O0MyOTc7MTEwOSAxMTcyIDExQjY7CitDMjk4O0MyOTg7MTEwOSAxMTcyIDExQjc7QzI5ODsxMTA5IDExNzIgMTFCNzsKK0MyOTk7QzI5OTsxMTA5IDExNzIgMTFCODtDMjk5OzExMDkgMTE3MiAxMUI4OworQzI5QTtDMjlBOzExMDkgMTE3MiAxMUI5O0MyOUE7MTEwOSAxMTcyIDExQjk7CitDMjlCO0MyOUI7MTEwOSAxMTcyIDExQkE7QzI5QjsxMTA5IDExNzIgMTFCQTsKK0MyOUM7QzI5QzsxMTA5IDExNzIgMTFCQjtDMjlDOzExMDkgMTE3MiAxMUJCOworQzI5RDtDMjlEOzExMDkgMTE3MiAxMUJDO0MyOUQ7MTEwOSAxMTcyIDExQkM7CitDMjlFO0MyOUU7MTEwOSAxMTcyIDExQkQ7QzI5RTsxMTA5IDExNzIgMTFCRDsKK0MyOUY7QzI5RjsxMTA5IDExNzIgMTFCRTtDMjlGOzExMDkgMTE3MiAxMUJFOworQzJBMDtDMkEwOzExMDkgMTE3MiAxMUJGO0MyQTA7MTEwOSAxMTcyIDExQkY7CitDMkExO0MyQTE7MTEwOSAxMTcyIDExQzA7QzJBMTsxMTA5IDExNzIgMTFDMDsKK0MyQTI7QzJBMjsxMTA5IDExNzIgMTFDMTtDMkEyOzExMDkgMTE3MiAxMUMxOworQzJBMztDMkEzOzExMDkgMTE3MiAxMUMyO0MyQTM7MTEwOSAxMTcyIDExQzI7CitDMkE0O0MyQTQ7MTEwOSAxMTczO0MyQTQ7MTEwOSAxMTczOworQzJBNTtDMkE1OzExMDkgMTE3MyAxMUE4O0MyQTU7MTEwOSAxMTczIDExQTg7CitDMkE2O0MyQTY7MTEwOSAxMTczIDExQTk7QzJBNjsxMTA5IDExNzMgMTFBOTsKK0MyQTc7QzJBNzsxMTA5IDExNzMgMTFBQTtDMkE3OzExMDkgMTE3MyAxMUFBOworQzJBODtDMkE4OzExMDkgMTE3MyAxMUFCO0MyQTg7MTEwOSAxMTczIDExQUI7CitDMkE5O0MyQTk7MTEwOSAxMTczIDExQUM7QzJBOTsxMTA5IDExNzMgMTFBQzsKK0MyQUE7QzJBQTsxMTA5IDExNzMgMTFBRDtDMkFBOzExMDkgMTE3MyAxMUFEOworQzJBQjtDMkFCOzExMDkgMTE3MyAxMUFFO0MyQUI7MTEwOSAxMTczIDExQUU7CitDMkFDO0MyQUM7MTEwOSAxMTczIDExQUY7QzJBQzsxMTA5IDExNzMgMTFBRjsKK0MyQUQ7QzJBRDsxMTA5IDExNzMgMTFCMDtDMkFEOzExMDkgMTE3MyAxMUIwOworQzJBRTtDMkFFOzExMDkgMTE3MyAxMUIxO0MyQUU7MTEwOSAxMTczIDExQjE7CitDMkFGO0MyQUY7MTEwOSAxMTczIDExQjI7QzJBRjsxMTA5IDExNzMgMTFCMjsKK0MyQjA7QzJCMDsxMTA5IDExNzMgMTFCMztDMkIwOzExMDkgMTE3MyAxMUIzOworQzJCMTtDMkIxOzExMDkgMTE3MyAxMUI0O0MyQjE7MTEwOSAxMTczIDExQjQ7CitDMkIyO0MyQjI7MTEwOSAxMTczIDExQjU7QzJCMjsxMTA5IDExNzMgMTFCNTsKK0MyQjM7QzJCMzsxMTA5IDExNzMgMTFCNjtDMkIzOzExMDkgMTE3MyAxMUI2OworQzJCNDtDMkI0OzExMDkgMTE3MyAxMUI3O0MyQjQ7MTEwOSAxMTczIDExQjc7CitDMkI1O0MyQjU7MTEwOSAxMTczIDExQjg7QzJCNTsxMTA5IDExNzMgMTFCODsKK0MyQjY7QzJCNjsxMTA5IDExNzMgMTFCOTtDMkI2OzExMDkgMTE3MyAxMUI5OworQzJCNztDMkI3OzExMDkgMTE3MyAxMUJBO0MyQjc7MTEwOSAxMTczIDExQkE7CitDMkI4O0MyQjg7MTEwOSAxMTczIDExQkI7QzJCODsxMTA5IDExNzMgMTFCQjsKK0MyQjk7QzJCOTsxMTA5IDExNzMgMTFCQztDMkI5OzExMDkgMTE3MyAxMUJDOworQzJCQTtDMkJBOzExMDkgMTE3MyAxMUJEO0MyQkE7MTEwOSAxMTczIDExQkQ7CitDMkJCO0MyQkI7MTEwOSAxMTczIDExQkU7QzJCQjsxMTA5IDExNzMgMTFCRTsKK0MyQkM7QzJCQzsxMTA5IDExNzMgMTFCRjtDMkJDOzExMDkgMTE3MyAxMUJGOworQzJCRDtDMkJEOzExMDkgMTE3MyAxMUMwO0MyQkQ7MTEwOSAxMTczIDExQzA7CitDMkJFO0MyQkU7MTEwOSAxMTczIDExQzE7QzJCRTsxMTA5IDExNzMgMTFDMTsKK0MyQkY7QzJCRjsxMTA5IDExNzMgMTFDMjtDMkJGOzExMDkgMTE3MyAxMUMyOworQzJDMDtDMkMwOzExMDkgMTE3NDtDMkMwOzExMDkgMTE3NDsKK0MyQzE7QzJDMTsxMTA5IDExNzQgMTFBODtDMkMxOzExMDkgMTE3NCAxMUE4OworQzJDMjtDMkMyOzExMDkgMTE3NCAxMUE5O0MyQzI7MTEwOSAxMTc0IDExQTk7CitDMkMzO0MyQzM7MTEwOSAxMTc0IDExQUE7QzJDMzsxMTA5IDExNzQgMTFBQTsKK0MyQzQ7QzJDNDsxMTA5IDExNzQgMTFBQjtDMkM0OzExMDkgMTE3NCAxMUFCOworQzJDNTtDMkM1OzExMDkgMTE3NCAxMUFDO0MyQzU7MTEwOSAxMTc0IDExQUM7CitDMkM2O0MyQzY7MTEwOSAxMTc0IDExQUQ7QzJDNjsxMTA5IDExNzQgMTFBRDsKK0MyQzc7QzJDNzsxMTA5IDExNzQgMTFBRTtDMkM3OzExMDkgMTE3NCAxMUFFOworQzJDODtDMkM4OzExMDkgMTE3NCAxMUFGO0MyQzg7MTEwOSAxMTc0IDExQUY7CitDMkM5O0MyQzk7MTEwOSAxMTc0IDExQjA7QzJDOTsxMTA5IDExNzQgMTFCMDsKK0MyQ0E7QzJDQTsxMTA5IDExNzQgMTFCMTtDMkNBOzExMDkgMTE3NCAxMUIxOworQzJDQjtDMkNCOzExMDkgMTE3NCAxMUIyO0MyQ0I7MTEwOSAxMTc0IDExQjI7CitDMkNDO0MyQ0M7MTEwOSAxMTc0IDExQjM7QzJDQzsxMTA5IDExNzQgMTFCMzsKK0MyQ0Q7QzJDRDsxMTA5IDExNzQgMTFCNDtDMkNEOzExMDkgMTE3NCAxMUI0OworQzJDRTtDMkNFOzExMDkgMTE3NCAxMUI1O0MyQ0U7MTEwOSAxMTc0IDExQjU7CitDMkNGO0MyQ0Y7MTEwOSAxMTc0IDExQjY7QzJDRjsxMTA5IDExNzQgMTFCNjsKK0MyRDA7QzJEMDsxMTA5IDExNzQgMTFCNztDMkQwOzExMDkgMTE3NCAxMUI3OworQzJEMTtDMkQxOzExMDkgMTE3NCAxMUI4O0MyRDE7MTEwOSAxMTc0IDExQjg7CitDMkQyO0MyRDI7MTEwOSAxMTc0IDExQjk7QzJEMjsxMTA5IDExNzQgMTFCOTsKK0MyRDM7QzJEMzsxMTA5IDExNzQgMTFCQTtDMkQzOzExMDkgMTE3NCAxMUJBOworQzJENDtDMkQ0OzExMDkgMTE3NCAxMUJCO0MyRDQ7MTEwOSAxMTc0IDExQkI7CitDMkQ1O0MyRDU7MTEwOSAxMTc0IDExQkM7QzJENTsxMTA5IDExNzQgMTFCQzsKK0MyRDY7QzJENjsxMTA5IDExNzQgMTFCRDtDMkQ2OzExMDkgMTE3NCAxMUJEOworQzJENztDMkQ3OzExMDkgMTE3NCAxMUJFO0MyRDc7MTEwOSAxMTc0IDExQkU7CitDMkQ4O0MyRDg7MTEwOSAxMTc0IDExQkY7QzJEODsxMTA5IDExNzQgMTFCRjsKK0MyRDk7QzJEOTsxMTA5IDExNzQgMTFDMDtDMkQ5OzExMDkgMTE3NCAxMUMwOworQzJEQTtDMkRBOzExMDkgMTE3NCAxMUMxO0MyREE7MTEwOSAxMTc0IDExQzE7CitDMkRCO0MyREI7MTEwOSAxMTc0IDExQzI7QzJEQjsxMTA5IDExNzQgMTFDMjsKK0MyREM7QzJEQzsxMTA5IDExNzU7QzJEQzsxMTA5IDExNzU7CitDMkREO0MyREQ7MTEwOSAxMTc1IDExQTg7QzJERDsxMTA5IDExNzUgMTFBODsKK0MyREU7QzJERTsxMTA5IDExNzUgMTFBOTtDMkRFOzExMDkgMTE3NSAxMUE5OworQzJERjtDMkRGOzExMDkgMTE3NSAxMUFBO0MyREY7MTEwOSAxMTc1IDExQUE7CitDMkUwO0MyRTA7MTEwOSAxMTc1IDExQUI7QzJFMDsxMTA5IDExNzUgMTFBQjsKK0MyRTE7QzJFMTsxMTA5IDExNzUgMTFBQztDMkUxOzExMDkgMTE3NSAxMUFDOworQzJFMjtDMkUyOzExMDkgMTE3NSAxMUFEO0MyRTI7MTEwOSAxMTc1IDExQUQ7CitDMkUzO0MyRTM7MTEwOSAxMTc1IDExQUU7QzJFMzsxMTA5IDExNzUgMTFBRTsKK0MyRTQ7QzJFNDsxMTA5IDExNzUgMTFBRjtDMkU0OzExMDkgMTE3NSAxMUFGOworQzJFNTtDMkU1OzExMDkgMTE3NSAxMUIwO0MyRTU7MTEwOSAxMTc1IDExQjA7CitDMkU2O0MyRTY7MTEwOSAxMTc1IDExQjE7QzJFNjsxMTA5IDExNzUgMTFCMTsKK0MyRTc7QzJFNzsxMTA5IDExNzUgMTFCMjtDMkU3OzExMDkgMTE3NSAxMUIyOworQzJFODtDMkU4OzExMDkgMTE3NSAxMUIzO0MyRTg7MTEwOSAxMTc1IDExQjM7CitDMkU5O0MyRTk7MTEwOSAxMTc1IDExQjQ7QzJFOTsxMTA5IDExNzUgMTFCNDsKK0MyRUE7QzJFQTsxMTA5IDExNzUgMTFCNTtDMkVBOzExMDkgMTE3NSAxMUI1OworQzJFQjtDMkVCOzExMDkgMTE3NSAxMUI2O0MyRUI7MTEwOSAxMTc1IDExQjY7CitDMkVDO0MyRUM7MTEwOSAxMTc1IDExQjc7QzJFQzsxMTA5IDExNzUgMTFCNzsKK0MyRUQ7QzJFRDsxMTA5IDExNzUgMTFCODtDMkVEOzExMDkgMTE3NSAxMUI4OworQzJFRTtDMkVFOzExMDkgMTE3NSAxMUI5O0MyRUU7MTEwOSAxMTc1IDExQjk7CitDMkVGO0MyRUY7MTEwOSAxMTc1IDExQkE7QzJFRjsxMTA5IDExNzUgMTFCQTsKK0MyRjA7QzJGMDsxMTA5IDExNzUgMTFCQjtDMkYwOzExMDkgMTE3NSAxMUJCOworQzJGMTtDMkYxOzExMDkgMTE3NSAxMUJDO0MyRjE7MTEwOSAxMTc1IDExQkM7CitDMkYyO0MyRjI7MTEwOSAxMTc1IDExQkQ7QzJGMjsxMTA5IDExNzUgMTFCRDsKK0MyRjM7QzJGMzsxMTA5IDExNzUgMTFCRTtDMkYzOzExMDkgMTE3NSAxMUJFOworQzJGNDtDMkY0OzExMDkgMTE3NSAxMUJGO0MyRjQ7MTEwOSAxMTc1IDExQkY7CitDMkY1O0MyRjU7MTEwOSAxMTc1IDExQzA7QzJGNTsxMTA5IDExNzUgMTFDMDsKK0MyRjY7QzJGNjsxMTA5IDExNzUgMTFDMTtDMkY2OzExMDkgMTE3NSAxMUMxOworQzJGNztDMkY3OzExMDkgMTE3NSAxMUMyO0MyRjc7MTEwOSAxMTc1IDExQzI7CitDMkY4O0MyRjg7MTEwQSAxMTYxO0MyRjg7MTEwQSAxMTYxOworQzJGOTtDMkY5OzExMEEgMTE2MSAxMUE4O0MyRjk7MTEwQSAxMTYxIDExQTg7CitDMkZBO0MyRkE7MTEwQSAxMTYxIDExQTk7QzJGQTsxMTBBIDExNjEgMTFBOTsKK0MyRkI7QzJGQjsxMTBBIDExNjEgMTFBQTtDMkZCOzExMEEgMTE2MSAxMUFBOworQzJGQztDMkZDOzExMEEgMTE2MSAxMUFCO0MyRkM7MTEwQSAxMTYxIDExQUI7CitDMkZEO0MyRkQ7MTEwQSAxMTYxIDExQUM7QzJGRDsxMTBBIDExNjEgMTFBQzsKK0MyRkU7QzJGRTsxMTBBIDExNjEgMTFBRDtDMkZFOzExMEEgMTE2MSAxMUFEOworQzJGRjtDMkZGOzExMEEgMTE2MSAxMUFFO0MyRkY7MTEwQSAxMTYxIDExQUU7CitDMzAwO0MzMDA7MTEwQSAxMTYxIDExQUY7QzMwMDsxMTBBIDExNjEgMTFBRjsKK0MzMDE7QzMwMTsxMTBBIDExNjEgMTFCMDtDMzAxOzExMEEgMTE2MSAxMUIwOworQzMwMjtDMzAyOzExMEEgMTE2MSAxMUIxO0MzMDI7MTEwQSAxMTYxIDExQjE7CitDMzAzO0MzMDM7MTEwQSAxMTYxIDExQjI7QzMwMzsxMTBBIDExNjEgMTFCMjsKK0MzMDQ7QzMwNDsxMTBBIDExNjEgMTFCMztDMzA0OzExMEEgMTE2MSAxMUIzOworQzMwNTtDMzA1OzExMEEgMTE2MSAxMUI0O0MzMDU7MTEwQSAxMTYxIDExQjQ7CitDMzA2O0MzMDY7MTEwQSAxMTYxIDExQjU7QzMwNjsxMTBBIDExNjEgMTFCNTsKK0MzMDc7QzMwNzsxMTBBIDExNjEgMTFCNjtDMzA3OzExMEEgMTE2MSAxMUI2OworQzMwODtDMzA4OzExMEEgMTE2MSAxMUI3O0MzMDg7MTEwQSAxMTYxIDExQjc7CitDMzA5O0MzMDk7MTEwQSAxMTYxIDExQjg7QzMwOTsxMTBBIDExNjEgMTFCODsKK0MzMEE7QzMwQTsxMTBBIDExNjEgMTFCOTtDMzBBOzExMEEgMTE2MSAxMUI5OworQzMwQjtDMzBCOzExMEEgMTE2MSAxMUJBO0MzMEI7MTEwQSAxMTYxIDExQkE7CitDMzBDO0MzMEM7MTEwQSAxMTYxIDExQkI7QzMwQzsxMTBBIDExNjEgMTFCQjsKK0MzMEQ7QzMwRDsxMTBBIDExNjEgMTFCQztDMzBEOzExMEEgMTE2MSAxMUJDOworQzMwRTtDMzBFOzExMEEgMTE2MSAxMUJEO0MzMEU7MTEwQSAxMTYxIDExQkQ7CitDMzBGO0MzMEY7MTEwQSAxMTYxIDExQkU7QzMwRjsxMTBBIDExNjEgMTFCRTsKK0MzMTA7QzMxMDsxMTBBIDExNjEgMTFCRjtDMzEwOzExMEEgMTE2MSAxMUJGOworQzMxMTtDMzExOzExMEEgMTE2MSAxMUMwO0MzMTE7MTEwQSAxMTYxIDExQzA7CitDMzEyO0MzMTI7MTEwQSAxMTYxIDExQzE7QzMxMjsxMTBBIDExNjEgMTFDMTsKK0MzMTM7QzMxMzsxMTBBIDExNjEgMTFDMjtDMzEzOzExMEEgMTE2MSAxMUMyOworQzMxNDtDMzE0OzExMEEgMTE2MjtDMzE0OzExMEEgMTE2MjsKK0MzMTU7QzMxNTsxMTBBIDExNjIgMTFBODtDMzE1OzExMEEgMTE2MiAxMUE4OworQzMxNjtDMzE2OzExMEEgMTE2MiAxMUE5O0MzMTY7MTEwQSAxMTYyIDExQTk7CitDMzE3O0MzMTc7MTEwQSAxMTYyIDExQUE7QzMxNzsxMTBBIDExNjIgMTFBQTsKK0MzMTg7QzMxODsxMTBBIDExNjIgMTFBQjtDMzE4OzExMEEgMTE2MiAxMUFCOworQzMxOTtDMzE5OzExMEEgMTE2MiAxMUFDO0MzMTk7MTEwQSAxMTYyIDExQUM7CitDMzFBO0MzMUE7MTEwQSAxMTYyIDExQUQ7QzMxQTsxMTBBIDExNjIgMTFBRDsKK0MzMUI7QzMxQjsxMTBBIDExNjIgMTFBRTtDMzFCOzExMEEgMTE2MiAxMUFFOworQzMxQztDMzFDOzExMEEgMTE2MiAxMUFGO0MzMUM7MTEwQSAxMTYyIDExQUY7CitDMzFEO0MzMUQ7MTEwQSAxMTYyIDExQjA7QzMxRDsxMTBBIDExNjIgMTFCMDsKK0MzMUU7QzMxRTsxMTBBIDExNjIgMTFCMTtDMzFFOzExMEEgMTE2MiAxMUIxOworQzMxRjtDMzFGOzExMEEgMTE2MiAxMUIyO0MzMUY7MTEwQSAxMTYyIDExQjI7CitDMzIwO0MzMjA7MTEwQSAxMTYyIDExQjM7QzMyMDsxMTBBIDExNjIgMTFCMzsKK0MzMjE7QzMyMTsxMTBBIDExNjIgMTFCNDtDMzIxOzExMEEgMTE2MiAxMUI0OworQzMyMjtDMzIyOzExMEEgMTE2MiAxMUI1O0MzMjI7MTEwQSAxMTYyIDExQjU7CitDMzIzO0MzMjM7MTEwQSAxMTYyIDExQjY7QzMyMzsxMTBBIDExNjIgMTFCNjsKK0MzMjQ7QzMyNDsxMTBBIDExNjIgMTFCNztDMzI0OzExMEEgMTE2MiAxMUI3OworQzMyNTtDMzI1OzExMEEgMTE2MiAxMUI4O0MzMjU7MTEwQSAxMTYyIDExQjg7CitDMzI2O0MzMjY7MTEwQSAxMTYyIDExQjk7QzMyNjsxMTBBIDExNjIgMTFCOTsKK0MzMjc7QzMyNzsxMTBBIDExNjIgMTFCQTtDMzI3OzExMEEgMTE2MiAxMUJBOworQzMyODtDMzI4OzExMEEgMTE2MiAxMUJCO0MzMjg7MTEwQSAxMTYyIDExQkI7CitDMzI5O0MzMjk7MTEwQSAxMTYyIDExQkM7QzMyOTsxMTBBIDExNjIgMTFCQzsKK0MzMkE7QzMyQTsxMTBBIDExNjIgMTFCRDtDMzJBOzExMEEgMTE2MiAxMUJEOworQzMyQjtDMzJCOzExMEEgMTE2MiAxMUJFO0MzMkI7MTEwQSAxMTYyIDExQkU7CitDMzJDO0MzMkM7MTEwQSAxMTYyIDExQkY7QzMyQzsxMTBBIDExNjIgMTFCRjsKK0MzMkQ7QzMyRDsxMTBBIDExNjIgMTFDMDtDMzJEOzExMEEgMTE2MiAxMUMwOworQzMyRTtDMzJFOzExMEEgMTE2MiAxMUMxO0MzMkU7MTEwQSAxMTYyIDExQzE7CitDMzJGO0MzMkY7MTEwQSAxMTYyIDExQzI7QzMyRjsxMTBBIDExNjIgMTFDMjsKK0MzMzA7QzMzMDsxMTBBIDExNjM7QzMzMDsxMTBBIDExNjM7CitDMzMxO0MzMzE7MTEwQSAxMTYzIDExQTg7QzMzMTsxMTBBIDExNjMgMTFBODsKK0MzMzI7QzMzMjsxMTBBIDExNjMgMTFBOTtDMzMyOzExMEEgMTE2MyAxMUE5OworQzMzMztDMzMzOzExMEEgMTE2MyAxMUFBO0MzMzM7MTEwQSAxMTYzIDExQUE7CitDMzM0O0MzMzQ7MTEwQSAxMTYzIDExQUI7QzMzNDsxMTBBIDExNjMgMTFBQjsKK0MzMzU7QzMzNTsxMTBBIDExNjMgMTFBQztDMzM1OzExMEEgMTE2MyAxMUFDOworQzMzNjtDMzM2OzExMEEgMTE2MyAxMUFEO0MzMzY7MTEwQSAxMTYzIDExQUQ7CitDMzM3O0MzMzc7MTEwQSAxMTYzIDExQUU7QzMzNzsxMTBBIDExNjMgMTFBRTsKK0MzMzg7QzMzODsxMTBBIDExNjMgMTFBRjtDMzM4OzExMEEgMTE2MyAxMUFGOworQzMzOTtDMzM5OzExMEEgMTE2MyAxMUIwO0MzMzk7MTEwQSAxMTYzIDExQjA7CitDMzNBO0MzM0E7MTEwQSAxMTYzIDExQjE7QzMzQTsxMTBBIDExNjMgMTFCMTsKK0MzM0I7QzMzQjsxMTBBIDExNjMgMTFCMjtDMzNCOzExMEEgMTE2MyAxMUIyOworQzMzQztDMzNDOzExMEEgMTE2MyAxMUIzO0MzM0M7MTEwQSAxMTYzIDExQjM7CitDMzNEO0MzM0Q7MTEwQSAxMTYzIDExQjQ7QzMzRDsxMTBBIDExNjMgMTFCNDsKK0MzM0U7QzMzRTsxMTBBIDExNjMgMTFCNTtDMzNFOzExMEEgMTE2MyAxMUI1OworQzMzRjtDMzNGOzExMEEgMTE2MyAxMUI2O0MzM0Y7MTEwQSAxMTYzIDExQjY7CitDMzQwO0MzNDA7MTEwQSAxMTYzIDExQjc7QzM0MDsxMTBBIDExNjMgMTFCNzsKK0MzNDE7QzM0MTsxMTBBIDExNjMgMTFCODtDMzQxOzExMEEgMTE2MyAxMUI4OworQzM0MjtDMzQyOzExMEEgMTE2MyAxMUI5O0MzNDI7MTEwQSAxMTYzIDExQjk7CitDMzQzO0MzNDM7MTEwQSAxMTYzIDExQkE7QzM0MzsxMTBBIDExNjMgMTFCQTsKK0MzNDQ7QzM0NDsxMTBBIDExNjMgMTFCQjtDMzQ0OzExMEEgMTE2MyAxMUJCOworQzM0NTtDMzQ1OzExMEEgMTE2MyAxMUJDO0MzNDU7MTEwQSAxMTYzIDExQkM7CitDMzQ2O0MzNDY7MTEwQSAxMTYzIDExQkQ7QzM0NjsxMTBBIDExNjMgMTFCRDsKK0MzNDc7QzM0NzsxMTBBIDExNjMgMTFCRTtDMzQ3OzExMEEgMTE2MyAxMUJFOworQzM0ODtDMzQ4OzExMEEgMTE2MyAxMUJGO0MzNDg7MTEwQSAxMTYzIDExQkY7CitDMzQ5O0MzNDk7MTEwQSAxMTYzIDExQzA7QzM0OTsxMTBBIDExNjMgMTFDMDsKK0MzNEE7QzM0QTsxMTBBIDExNjMgMTFDMTtDMzRBOzExMEEgMTE2MyAxMUMxOworQzM0QjtDMzRCOzExMEEgMTE2MyAxMUMyO0MzNEI7MTEwQSAxMTYzIDExQzI7CitDMzRDO0MzNEM7MTEwQSAxMTY0O0MzNEM7MTEwQSAxMTY0OworQzM0RDtDMzREOzExMEEgMTE2NCAxMUE4O0MzNEQ7MTEwQSAxMTY0IDExQTg7CitDMzRFO0MzNEU7MTEwQSAxMTY0IDExQTk7QzM0RTsxMTBBIDExNjQgMTFBOTsKK0MzNEY7QzM0RjsxMTBBIDExNjQgMTFBQTtDMzRGOzExMEEgMTE2NCAxMUFBOworQzM1MDtDMzUwOzExMEEgMTE2NCAxMUFCO0MzNTA7MTEwQSAxMTY0IDExQUI7CitDMzUxO0MzNTE7MTEwQSAxMTY0IDExQUM7QzM1MTsxMTBBIDExNjQgMTFBQzsKK0MzNTI7QzM1MjsxMTBBIDExNjQgMTFBRDtDMzUyOzExMEEgMTE2NCAxMUFEOworQzM1MztDMzUzOzExMEEgMTE2NCAxMUFFO0MzNTM7MTEwQSAxMTY0IDExQUU7CitDMzU0O0MzNTQ7MTEwQSAxMTY0IDExQUY7QzM1NDsxMTBBIDExNjQgMTFBRjsKK0MzNTU7QzM1NTsxMTBBIDExNjQgMTFCMDtDMzU1OzExMEEgMTE2NCAxMUIwOworQzM1NjtDMzU2OzExMEEgMTE2NCAxMUIxO0MzNTY7MTEwQSAxMTY0IDExQjE7CitDMzU3O0MzNTc7MTEwQSAxMTY0IDExQjI7QzM1NzsxMTBBIDExNjQgMTFCMjsKK0MzNTg7QzM1ODsxMTBBIDExNjQgMTFCMztDMzU4OzExMEEgMTE2NCAxMUIzOworQzM1OTtDMzU5OzExMEEgMTE2NCAxMUI0O0MzNTk7MTEwQSAxMTY0IDExQjQ7CitDMzVBO0MzNUE7MTEwQSAxMTY0IDExQjU7QzM1QTsxMTBBIDExNjQgMTFCNTsKK0MzNUI7QzM1QjsxMTBBIDExNjQgMTFCNjtDMzVCOzExMEEgMTE2NCAxMUI2OworQzM1QztDMzVDOzExMEEgMTE2NCAxMUI3O0MzNUM7MTEwQSAxMTY0IDExQjc7CitDMzVEO0MzNUQ7MTEwQSAxMTY0IDExQjg7QzM1RDsxMTBBIDExNjQgMTFCODsKK0MzNUU7QzM1RTsxMTBBIDExNjQgMTFCOTtDMzVFOzExMEEgMTE2NCAxMUI5OworQzM1RjtDMzVGOzExMEEgMTE2NCAxMUJBO0MzNUY7MTEwQSAxMTY0IDExQkE7CitDMzYwO0MzNjA7MTEwQSAxMTY0IDExQkI7QzM2MDsxMTBBIDExNjQgMTFCQjsKK0MzNjE7QzM2MTsxMTBBIDExNjQgMTFCQztDMzYxOzExMEEgMTE2NCAxMUJDOworQzM2MjtDMzYyOzExMEEgMTE2NCAxMUJEO0MzNjI7MTEwQSAxMTY0IDExQkQ7CitDMzYzO0MzNjM7MTEwQSAxMTY0IDExQkU7QzM2MzsxMTBBIDExNjQgMTFCRTsKK0MzNjQ7QzM2NDsxMTBBIDExNjQgMTFCRjtDMzY0OzExMEEgMTE2NCAxMUJGOworQzM2NTtDMzY1OzExMEEgMTE2NCAxMUMwO0MzNjU7MTEwQSAxMTY0IDExQzA7CitDMzY2O0MzNjY7MTEwQSAxMTY0IDExQzE7QzM2NjsxMTBBIDExNjQgMTFDMTsKK0MzNjc7QzM2NzsxMTBBIDExNjQgMTFDMjtDMzY3OzExMEEgMTE2NCAxMUMyOworQzM2ODtDMzY4OzExMEEgMTE2NTtDMzY4OzExMEEgMTE2NTsKK0MzNjk7QzM2OTsxMTBBIDExNjUgMTFBODtDMzY5OzExMEEgMTE2NSAxMUE4OworQzM2QTtDMzZBOzExMEEgMTE2NSAxMUE5O0MzNkE7MTEwQSAxMTY1IDExQTk7CitDMzZCO0MzNkI7MTEwQSAxMTY1IDExQUE7QzM2QjsxMTBBIDExNjUgMTFBQTsKK0MzNkM7QzM2QzsxMTBBIDExNjUgMTFBQjtDMzZDOzExMEEgMTE2NSAxMUFCOworQzM2RDtDMzZEOzExMEEgMTE2NSAxMUFDO0MzNkQ7MTEwQSAxMTY1IDExQUM7CitDMzZFO0MzNkU7MTEwQSAxMTY1IDExQUQ7QzM2RTsxMTBBIDExNjUgMTFBRDsKK0MzNkY7QzM2RjsxMTBBIDExNjUgMTFBRTtDMzZGOzExMEEgMTE2NSAxMUFFOworQzM3MDtDMzcwOzExMEEgMTE2NSAxMUFGO0MzNzA7MTEwQSAxMTY1IDExQUY7CitDMzcxO0MzNzE7MTEwQSAxMTY1IDExQjA7QzM3MTsxMTBBIDExNjUgMTFCMDsKK0MzNzI7QzM3MjsxMTBBIDExNjUgMTFCMTtDMzcyOzExMEEgMTE2NSAxMUIxOworQzM3MztDMzczOzExMEEgMTE2NSAxMUIyO0MzNzM7MTEwQSAxMTY1IDExQjI7CitDMzc0O0MzNzQ7MTEwQSAxMTY1IDExQjM7QzM3NDsxMTBBIDExNjUgMTFCMzsKK0MzNzU7QzM3NTsxMTBBIDExNjUgMTFCNDtDMzc1OzExMEEgMTE2NSAxMUI0OworQzM3NjtDMzc2OzExMEEgMTE2NSAxMUI1O0MzNzY7MTEwQSAxMTY1IDExQjU7CitDMzc3O0MzNzc7MTEwQSAxMTY1IDExQjY7QzM3NzsxMTBBIDExNjUgMTFCNjsKK0MzNzg7QzM3ODsxMTBBIDExNjUgMTFCNztDMzc4OzExMEEgMTE2NSAxMUI3OworQzM3OTtDMzc5OzExMEEgMTE2NSAxMUI4O0MzNzk7MTEwQSAxMTY1IDExQjg7CitDMzdBO0MzN0E7MTEwQSAxMTY1IDExQjk7QzM3QTsxMTBBIDExNjUgMTFCOTsKK0MzN0I7QzM3QjsxMTBBIDExNjUgMTFCQTtDMzdCOzExMEEgMTE2NSAxMUJBOworQzM3QztDMzdDOzExMEEgMTE2NSAxMUJCO0MzN0M7MTEwQSAxMTY1IDExQkI7CitDMzdEO0MzN0Q7MTEwQSAxMTY1IDExQkM7QzM3RDsxMTBBIDExNjUgMTFCQzsKK0MzN0U7QzM3RTsxMTBBIDExNjUgMTFCRDtDMzdFOzExMEEgMTE2NSAxMUJEOworQzM3RjtDMzdGOzExMEEgMTE2NSAxMUJFO0MzN0Y7MTEwQSAxMTY1IDExQkU7CitDMzgwO0MzODA7MTEwQSAxMTY1IDExQkY7QzM4MDsxMTBBIDExNjUgMTFCRjsKK0MzODE7QzM4MTsxMTBBIDExNjUgMTFDMDtDMzgxOzExMEEgMTE2NSAxMUMwOworQzM4MjtDMzgyOzExMEEgMTE2NSAxMUMxO0MzODI7MTEwQSAxMTY1IDExQzE7CitDMzgzO0MzODM7MTEwQSAxMTY1IDExQzI7QzM4MzsxMTBBIDExNjUgMTFDMjsKK0MzODQ7QzM4NDsxMTBBIDExNjY7QzM4NDsxMTBBIDExNjY7CitDMzg1O0MzODU7MTEwQSAxMTY2IDExQTg7QzM4NTsxMTBBIDExNjYgMTFBODsKK0MzODY7QzM4NjsxMTBBIDExNjYgMTFBOTtDMzg2OzExMEEgMTE2NiAxMUE5OworQzM4NztDMzg3OzExMEEgMTE2NiAxMUFBO0MzODc7MTEwQSAxMTY2IDExQUE7CitDMzg4O0MzODg7MTEwQSAxMTY2IDExQUI7QzM4ODsxMTBBIDExNjYgMTFBQjsKK0MzODk7QzM4OTsxMTBBIDExNjYgMTFBQztDMzg5OzExMEEgMTE2NiAxMUFDOworQzM4QTtDMzhBOzExMEEgMTE2NiAxMUFEO0MzOEE7MTEwQSAxMTY2IDExQUQ7CitDMzhCO0MzOEI7MTEwQSAxMTY2IDExQUU7QzM4QjsxMTBBIDExNjYgMTFBRTsKK0MzOEM7QzM4QzsxMTBBIDExNjYgMTFBRjtDMzhDOzExMEEgMTE2NiAxMUFGOworQzM4RDtDMzhEOzExMEEgMTE2NiAxMUIwO0MzOEQ7MTEwQSAxMTY2IDExQjA7CitDMzhFO0MzOEU7MTEwQSAxMTY2IDExQjE7QzM4RTsxMTBBIDExNjYgMTFCMTsKK0MzOEY7QzM4RjsxMTBBIDExNjYgMTFCMjtDMzhGOzExMEEgMTE2NiAxMUIyOworQzM5MDtDMzkwOzExMEEgMTE2NiAxMUIzO0MzOTA7MTEwQSAxMTY2IDExQjM7CitDMzkxO0MzOTE7MTEwQSAxMTY2IDExQjQ7QzM5MTsxMTBBIDExNjYgMTFCNDsKK0MzOTI7QzM5MjsxMTBBIDExNjYgMTFCNTtDMzkyOzExMEEgMTE2NiAxMUI1OworQzM5MztDMzkzOzExMEEgMTE2NiAxMUI2O0MzOTM7MTEwQSAxMTY2IDExQjY7CitDMzk0O0MzOTQ7MTEwQSAxMTY2IDExQjc7QzM5NDsxMTBBIDExNjYgMTFCNzsKK0MzOTU7QzM5NTsxMTBBIDExNjYgMTFCODtDMzk1OzExMEEgMTE2NiAxMUI4OworQzM5NjtDMzk2OzExMEEgMTE2NiAxMUI5O0MzOTY7MTEwQSAxMTY2IDExQjk7CitDMzk3O0MzOTc7MTEwQSAxMTY2IDExQkE7QzM5NzsxMTBBIDExNjYgMTFCQTsKK0MzOTg7QzM5ODsxMTBBIDExNjYgMTFCQjtDMzk4OzExMEEgMTE2NiAxMUJCOworQzM5OTtDMzk5OzExMEEgMTE2NiAxMUJDO0MzOTk7MTEwQSAxMTY2IDExQkM7CitDMzlBO0MzOUE7MTEwQSAxMTY2IDExQkQ7QzM5QTsxMTBBIDExNjYgMTFCRDsKK0MzOUI7QzM5QjsxMTBBIDExNjYgMTFCRTtDMzlCOzExMEEgMTE2NiAxMUJFOworQzM5QztDMzlDOzExMEEgMTE2NiAxMUJGO0MzOUM7MTEwQSAxMTY2IDExQkY7CitDMzlEO0MzOUQ7MTEwQSAxMTY2IDExQzA7QzM5RDsxMTBBIDExNjYgMTFDMDsKK0MzOUU7QzM5RTsxMTBBIDExNjYgMTFDMTtDMzlFOzExMEEgMTE2NiAxMUMxOworQzM5RjtDMzlGOzExMEEgMTE2NiAxMUMyO0MzOUY7MTEwQSAxMTY2IDExQzI7CitDM0EwO0MzQTA7MTEwQSAxMTY3O0MzQTA7MTEwQSAxMTY3OworQzNBMTtDM0ExOzExMEEgMTE2NyAxMUE4O0MzQTE7MTEwQSAxMTY3IDExQTg7CitDM0EyO0MzQTI7MTEwQSAxMTY3IDExQTk7QzNBMjsxMTBBIDExNjcgMTFBOTsKK0MzQTM7QzNBMzsxMTBBIDExNjcgMTFBQTtDM0EzOzExMEEgMTE2NyAxMUFBOworQzNBNDtDM0E0OzExMEEgMTE2NyAxMUFCO0MzQTQ7MTEwQSAxMTY3IDExQUI7CitDM0E1O0MzQTU7MTEwQSAxMTY3IDExQUM7QzNBNTsxMTBBIDExNjcgMTFBQzsKK0MzQTY7QzNBNjsxMTBBIDExNjcgMTFBRDtDM0E2OzExMEEgMTE2NyAxMUFEOworQzNBNztDM0E3OzExMEEgMTE2NyAxMUFFO0MzQTc7MTEwQSAxMTY3IDExQUU7CitDM0E4O0MzQTg7MTEwQSAxMTY3IDExQUY7QzNBODsxMTBBIDExNjcgMTFBRjsKK0MzQTk7QzNBOTsxMTBBIDExNjcgMTFCMDtDM0E5OzExMEEgMTE2NyAxMUIwOworQzNBQTtDM0FBOzExMEEgMTE2NyAxMUIxO0MzQUE7MTEwQSAxMTY3IDExQjE7CitDM0FCO0MzQUI7MTEwQSAxMTY3IDExQjI7QzNBQjsxMTBBIDExNjcgMTFCMjsKK0MzQUM7QzNBQzsxMTBBIDExNjcgMTFCMztDM0FDOzExMEEgMTE2NyAxMUIzOworQzNBRDtDM0FEOzExMEEgMTE2NyAxMUI0O0MzQUQ7MTEwQSAxMTY3IDExQjQ7CitDM0FFO0MzQUU7MTEwQSAxMTY3IDExQjU7QzNBRTsxMTBBIDExNjcgMTFCNTsKK0MzQUY7QzNBRjsxMTBBIDExNjcgMTFCNjtDM0FGOzExMEEgMTE2NyAxMUI2OworQzNCMDtDM0IwOzExMEEgMTE2NyAxMUI3O0MzQjA7MTEwQSAxMTY3IDExQjc7CitDM0IxO0MzQjE7MTEwQSAxMTY3IDExQjg7QzNCMTsxMTBBIDExNjcgMTFCODsKK0MzQjI7QzNCMjsxMTBBIDExNjcgMTFCOTtDM0IyOzExMEEgMTE2NyAxMUI5OworQzNCMztDM0IzOzExMEEgMTE2NyAxMUJBO0MzQjM7MTEwQSAxMTY3IDExQkE7CitDM0I0O0MzQjQ7MTEwQSAxMTY3IDExQkI7QzNCNDsxMTBBIDExNjcgMTFCQjsKK0MzQjU7QzNCNTsxMTBBIDExNjcgMTFCQztDM0I1OzExMEEgMTE2NyAxMUJDOworQzNCNjtDM0I2OzExMEEgMTE2NyAxMUJEO0MzQjY7MTEwQSAxMTY3IDExQkQ7CitDM0I3O0MzQjc7MTEwQSAxMTY3IDExQkU7QzNCNzsxMTBBIDExNjcgMTFCRTsKK0MzQjg7QzNCODsxMTBBIDExNjcgMTFCRjtDM0I4OzExMEEgMTE2NyAxMUJGOworQzNCOTtDM0I5OzExMEEgMTE2NyAxMUMwO0MzQjk7MTEwQSAxMTY3IDExQzA7CitDM0JBO0MzQkE7MTEwQSAxMTY3IDExQzE7QzNCQTsxMTBBIDExNjcgMTFDMTsKK0MzQkI7QzNCQjsxMTBBIDExNjcgMTFDMjtDM0JCOzExMEEgMTE2NyAxMUMyOworQzNCQztDM0JDOzExMEEgMTE2ODtDM0JDOzExMEEgMTE2ODsKK0MzQkQ7QzNCRDsxMTBBIDExNjggMTFBODtDM0JEOzExMEEgMTE2OCAxMUE4OworQzNCRTtDM0JFOzExMEEgMTE2OCAxMUE5O0MzQkU7MTEwQSAxMTY4IDExQTk7CitDM0JGO0MzQkY7MTEwQSAxMTY4IDExQUE7QzNCRjsxMTBBIDExNjggMTFBQTsKK0MzQzA7QzNDMDsxMTBBIDExNjggMTFBQjtDM0MwOzExMEEgMTE2OCAxMUFCOworQzNDMTtDM0MxOzExMEEgMTE2OCAxMUFDO0MzQzE7MTEwQSAxMTY4IDExQUM7CitDM0MyO0MzQzI7MTEwQSAxMTY4IDExQUQ7QzNDMjsxMTBBIDExNjggMTFBRDsKK0MzQzM7QzNDMzsxMTBBIDExNjggMTFBRTtDM0MzOzExMEEgMTE2OCAxMUFFOworQzNDNDtDM0M0OzExMEEgMTE2OCAxMUFGO0MzQzQ7MTEwQSAxMTY4IDExQUY7CitDM0M1O0MzQzU7MTEwQSAxMTY4IDExQjA7QzNDNTsxMTBBIDExNjggMTFCMDsKK0MzQzY7QzNDNjsxMTBBIDExNjggMTFCMTtDM0M2OzExMEEgMTE2OCAxMUIxOworQzNDNztDM0M3OzExMEEgMTE2OCAxMUIyO0MzQzc7MTEwQSAxMTY4IDExQjI7CitDM0M4O0MzQzg7MTEwQSAxMTY4IDExQjM7QzNDODsxMTBBIDExNjggMTFCMzsKK0MzQzk7QzNDOTsxMTBBIDExNjggMTFCNDtDM0M5OzExMEEgMTE2OCAxMUI0OworQzNDQTtDM0NBOzExMEEgMTE2OCAxMUI1O0MzQ0E7MTEwQSAxMTY4IDExQjU7CitDM0NCO0MzQ0I7MTEwQSAxMTY4IDExQjY7QzNDQjsxMTBBIDExNjggMTFCNjsKK0MzQ0M7QzNDQzsxMTBBIDExNjggMTFCNztDM0NDOzExMEEgMTE2OCAxMUI3OworQzNDRDtDM0NEOzExMEEgMTE2OCAxMUI4O0MzQ0Q7MTEwQSAxMTY4IDExQjg7CitDM0NFO0MzQ0U7MTEwQSAxMTY4IDExQjk7QzNDRTsxMTBBIDExNjggMTFCOTsKK0MzQ0Y7QzNDRjsxMTBBIDExNjggMTFCQTtDM0NGOzExMEEgMTE2OCAxMUJBOworQzNEMDtDM0QwOzExMEEgMTE2OCAxMUJCO0MzRDA7MTEwQSAxMTY4IDExQkI7CitDM0QxO0MzRDE7MTEwQSAxMTY4IDExQkM7QzNEMTsxMTBBIDExNjggMTFCQzsKK0MzRDI7QzNEMjsxMTBBIDExNjggMTFCRDtDM0QyOzExMEEgMTE2OCAxMUJEOworQzNEMztDM0QzOzExMEEgMTE2OCAxMUJFO0MzRDM7MTEwQSAxMTY4IDExQkU7CitDM0Q0O0MzRDQ7MTEwQSAxMTY4IDExQkY7QzNENDsxMTBBIDExNjggMTFCRjsKK0MzRDU7QzNENTsxMTBBIDExNjggMTFDMDtDM0Q1OzExMEEgMTE2OCAxMUMwOworQzNENjtDM0Q2OzExMEEgMTE2OCAxMUMxO0MzRDY7MTEwQSAxMTY4IDExQzE7CitDM0Q3O0MzRDc7MTEwQSAxMTY4IDExQzI7QzNENzsxMTBBIDExNjggMTFDMjsKK0MzRDg7QzNEODsxMTBBIDExNjk7QzNEODsxMTBBIDExNjk7CitDM0Q5O0MzRDk7MTEwQSAxMTY5IDExQTg7QzNEOTsxMTBBIDExNjkgMTFBODsKK0MzREE7QzNEQTsxMTBBIDExNjkgMTFBOTtDM0RBOzExMEEgMTE2OSAxMUE5OworQzNEQjtDM0RCOzExMEEgMTE2OSAxMUFBO0MzREI7MTEwQSAxMTY5IDExQUE7CitDM0RDO0MzREM7MTEwQSAxMTY5IDExQUI7QzNEQzsxMTBBIDExNjkgMTFBQjsKK0MzREQ7QzNERDsxMTBBIDExNjkgMTFBQztDM0REOzExMEEgMTE2OSAxMUFDOworQzNERTtDM0RFOzExMEEgMTE2OSAxMUFEO0MzREU7MTEwQSAxMTY5IDExQUQ7CitDM0RGO0MzREY7MTEwQSAxMTY5IDExQUU7QzNERjsxMTBBIDExNjkgMTFBRTsKK0MzRTA7QzNFMDsxMTBBIDExNjkgMTFBRjtDM0UwOzExMEEgMTE2OSAxMUFGOworQzNFMTtDM0UxOzExMEEgMTE2OSAxMUIwO0MzRTE7MTEwQSAxMTY5IDExQjA7CitDM0UyO0MzRTI7MTEwQSAxMTY5IDExQjE7QzNFMjsxMTBBIDExNjkgMTFCMTsKK0MzRTM7QzNFMzsxMTBBIDExNjkgMTFCMjtDM0UzOzExMEEgMTE2OSAxMUIyOworQzNFNDtDM0U0OzExMEEgMTE2OSAxMUIzO0MzRTQ7MTEwQSAxMTY5IDExQjM7CitDM0U1O0MzRTU7MTEwQSAxMTY5IDExQjQ7QzNFNTsxMTBBIDExNjkgMTFCNDsKK0MzRTY7QzNFNjsxMTBBIDExNjkgMTFCNTtDM0U2OzExMEEgMTE2OSAxMUI1OworQzNFNztDM0U3OzExMEEgMTE2OSAxMUI2O0MzRTc7MTEwQSAxMTY5IDExQjY7CitDM0U4O0MzRTg7MTEwQSAxMTY5IDExQjc7QzNFODsxMTBBIDExNjkgMTFCNzsKK0MzRTk7QzNFOTsxMTBBIDExNjkgMTFCODtDM0U5OzExMEEgMTE2OSAxMUI4OworQzNFQTtDM0VBOzExMEEgMTE2OSAxMUI5O0MzRUE7MTEwQSAxMTY5IDExQjk7CitDM0VCO0MzRUI7MTEwQSAxMTY5IDExQkE7QzNFQjsxMTBBIDExNjkgMTFCQTsKK0MzRUM7QzNFQzsxMTBBIDExNjkgMTFCQjtDM0VDOzExMEEgMTE2OSAxMUJCOworQzNFRDtDM0VEOzExMEEgMTE2OSAxMUJDO0MzRUQ7MTEwQSAxMTY5IDExQkM7CitDM0VFO0MzRUU7MTEwQSAxMTY5IDExQkQ7QzNFRTsxMTBBIDExNjkgMTFCRDsKK0MzRUY7QzNFRjsxMTBBIDExNjkgMTFCRTtDM0VGOzExMEEgMTE2OSAxMUJFOworQzNGMDtDM0YwOzExMEEgMTE2OSAxMUJGO0MzRjA7MTEwQSAxMTY5IDExQkY7CitDM0YxO0MzRjE7MTEwQSAxMTY5IDExQzA7QzNGMTsxMTBBIDExNjkgMTFDMDsKK0MzRjI7QzNGMjsxMTBBIDExNjkgMTFDMTtDM0YyOzExMEEgMTE2OSAxMUMxOworQzNGMztDM0YzOzExMEEgMTE2OSAxMUMyO0MzRjM7MTEwQSAxMTY5IDExQzI7CitDM0Y0O0MzRjQ7MTEwQSAxMTZBO0MzRjQ7MTEwQSAxMTZBOworQzNGNTtDM0Y1OzExMEEgMTE2QSAxMUE4O0MzRjU7MTEwQSAxMTZBIDExQTg7CitDM0Y2O0MzRjY7MTEwQSAxMTZBIDExQTk7QzNGNjsxMTBBIDExNkEgMTFBOTsKK0MzRjc7QzNGNzsxMTBBIDExNkEgMTFBQTtDM0Y3OzExMEEgMTE2QSAxMUFBOworQzNGODtDM0Y4OzExMEEgMTE2QSAxMUFCO0MzRjg7MTEwQSAxMTZBIDExQUI7CitDM0Y5O0MzRjk7MTEwQSAxMTZBIDExQUM7QzNGOTsxMTBBIDExNkEgMTFBQzsKK0MzRkE7QzNGQTsxMTBBIDExNkEgMTFBRDtDM0ZBOzExMEEgMTE2QSAxMUFEOworQzNGQjtDM0ZCOzExMEEgMTE2QSAxMUFFO0MzRkI7MTEwQSAxMTZBIDExQUU7CitDM0ZDO0MzRkM7MTEwQSAxMTZBIDExQUY7QzNGQzsxMTBBIDExNkEgMTFBRjsKK0MzRkQ7QzNGRDsxMTBBIDExNkEgMTFCMDtDM0ZEOzExMEEgMTE2QSAxMUIwOworQzNGRTtDM0ZFOzExMEEgMTE2QSAxMUIxO0MzRkU7MTEwQSAxMTZBIDExQjE7CitDM0ZGO0MzRkY7MTEwQSAxMTZBIDExQjI7QzNGRjsxMTBBIDExNkEgMTFCMjsKK0M0MDA7QzQwMDsxMTBBIDExNkEgMTFCMztDNDAwOzExMEEgMTE2QSAxMUIzOworQzQwMTtDNDAxOzExMEEgMTE2QSAxMUI0O0M0MDE7MTEwQSAxMTZBIDExQjQ7CitDNDAyO0M0MDI7MTEwQSAxMTZBIDExQjU7QzQwMjsxMTBBIDExNkEgMTFCNTsKK0M0MDM7QzQwMzsxMTBBIDExNkEgMTFCNjtDNDAzOzExMEEgMTE2QSAxMUI2OworQzQwNDtDNDA0OzExMEEgMTE2QSAxMUI3O0M0MDQ7MTEwQSAxMTZBIDExQjc7CitDNDA1O0M0MDU7MTEwQSAxMTZBIDExQjg7QzQwNTsxMTBBIDExNkEgMTFCODsKK0M0MDY7QzQwNjsxMTBBIDExNkEgMTFCOTtDNDA2OzExMEEgMTE2QSAxMUI5OworQzQwNztDNDA3OzExMEEgMTE2QSAxMUJBO0M0MDc7MTEwQSAxMTZBIDExQkE7CitDNDA4O0M0MDg7MTEwQSAxMTZBIDExQkI7QzQwODsxMTBBIDExNkEgMTFCQjsKK0M0MDk7QzQwOTsxMTBBIDExNkEgMTFCQztDNDA5OzExMEEgMTE2QSAxMUJDOworQzQwQTtDNDBBOzExMEEgMTE2QSAxMUJEO0M0MEE7MTEwQSAxMTZBIDExQkQ7CitDNDBCO0M0MEI7MTEwQSAxMTZBIDExQkU7QzQwQjsxMTBBIDExNkEgMTFCRTsKK0M0MEM7QzQwQzsxMTBBIDExNkEgMTFCRjtDNDBDOzExMEEgMTE2QSAxMUJGOworQzQwRDtDNDBEOzExMEEgMTE2QSAxMUMwO0M0MEQ7MTEwQSAxMTZBIDExQzA7CitDNDBFO0M0MEU7MTEwQSAxMTZBIDExQzE7QzQwRTsxMTBBIDExNkEgMTFDMTsKK0M0MEY7QzQwRjsxMTBBIDExNkEgMTFDMjtDNDBGOzExMEEgMTE2QSAxMUMyOworQzQxMDtDNDEwOzExMEEgMTE2QjtDNDEwOzExMEEgMTE2QjsKK0M0MTE7QzQxMTsxMTBBIDExNkIgMTFBODtDNDExOzExMEEgMTE2QiAxMUE4OworQzQxMjtDNDEyOzExMEEgMTE2QiAxMUE5O0M0MTI7MTEwQSAxMTZCIDExQTk7CitDNDEzO0M0MTM7MTEwQSAxMTZCIDExQUE7QzQxMzsxMTBBIDExNkIgMTFBQTsKK0M0MTQ7QzQxNDsxMTBBIDExNkIgMTFBQjtDNDE0OzExMEEgMTE2QiAxMUFCOworQzQxNTtDNDE1OzExMEEgMTE2QiAxMUFDO0M0MTU7MTEwQSAxMTZCIDExQUM7CitDNDE2O0M0MTY7MTEwQSAxMTZCIDExQUQ7QzQxNjsxMTBBIDExNkIgMTFBRDsKK0M0MTc7QzQxNzsxMTBBIDExNkIgMTFBRTtDNDE3OzExMEEgMTE2QiAxMUFFOworQzQxODtDNDE4OzExMEEgMTE2QiAxMUFGO0M0MTg7MTEwQSAxMTZCIDExQUY7CitDNDE5O0M0MTk7MTEwQSAxMTZCIDExQjA7QzQxOTsxMTBBIDExNkIgMTFCMDsKK0M0MUE7QzQxQTsxMTBBIDExNkIgMTFCMTtDNDFBOzExMEEgMTE2QiAxMUIxOworQzQxQjtDNDFCOzExMEEgMTE2QiAxMUIyO0M0MUI7MTEwQSAxMTZCIDExQjI7CitDNDFDO0M0MUM7MTEwQSAxMTZCIDExQjM7QzQxQzsxMTBBIDExNkIgMTFCMzsKK0M0MUQ7QzQxRDsxMTBBIDExNkIgMTFCNDtDNDFEOzExMEEgMTE2QiAxMUI0OworQzQxRTtDNDFFOzExMEEgMTE2QiAxMUI1O0M0MUU7MTEwQSAxMTZCIDExQjU7CitDNDFGO0M0MUY7MTEwQSAxMTZCIDExQjY7QzQxRjsxMTBBIDExNkIgMTFCNjsKK0M0MjA7QzQyMDsxMTBBIDExNkIgMTFCNztDNDIwOzExMEEgMTE2QiAxMUI3OworQzQyMTtDNDIxOzExMEEgMTE2QiAxMUI4O0M0MjE7MTEwQSAxMTZCIDExQjg7CitDNDIyO0M0MjI7MTEwQSAxMTZCIDExQjk7QzQyMjsxMTBBIDExNkIgMTFCOTsKK0M0MjM7QzQyMzsxMTBBIDExNkIgMTFCQTtDNDIzOzExMEEgMTE2QiAxMUJBOworQzQyNDtDNDI0OzExMEEgMTE2QiAxMUJCO0M0MjQ7MTEwQSAxMTZCIDExQkI7CitDNDI1O0M0MjU7MTEwQSAxMTZCIDExQkM7QzQyNTsxMTBBIDExNkIgMTFCQzsKK0M0MjY7QzQyNjsxMTBBIDExNkIgMTFCRDtDNDI2OzExMEEgMTE2QiAxMUJEOworQzQyNztDNDI3OzExMEEgMTE2QiAxMUJFO0M0Mjc7MTEwQSAxMTZCIDExQkU7CitDNDI4O0M0Mjg7MTEwQSAxMTZCIDExQkY7QzQyODsxMTBBIDExNkIgMTFCRjsKK0M0Mjk7QzQyOTsxMTBBIDExNkIgMTFDMDtDNDI5OzExMEEgMTE2QiAxMUMwOworQzQyQTtDNDJBOzExMEEgMTE2QiAxMUMxO0M0MkE7MTEwQSAxMTZCIDExQzE7CitDNDJCO0M0MkI7MTEwQSAxMTZCIDExQzI7QzQyQjsxMTBBIDExNkIgMTFDMjsKK0M0MkM7QzQyQzsxMTBBIDExNkM7QzQyQzsxMTBBIDExNkM7CitDNDJEO0M0MkQ7MTEwQSAxMTZDIDExQTg7QzQyRDsxMTBBIDExNkMgMTFBODsKK0M0MkU7QzQyRTsxMTBBIDExNkMgMTFBOTtDNDJFOzExMEEgMTE2QyAxMUE5OworQzQyRjtDNDJGOzExMEEgMTE2QyAxMUFBO0M0MkY7MTEwQSAxMTZDIDExQUE7CitDNDMwO0M0MzA7MTEwQSAxMTZDIDExQUI7QzQzMDsxMTBBIDExNkMgMTFBQjsKK0M0MzE7QzQzMTsxMTBBIDExNkMgMTFBQztDNDMxOzExMEEgMTE2QyAxMUFDOworQzQzMjtDNDMyOzExMEEgMTE2QyAxMUFEO0M0MzI7MTEwQSAxMTZDIDExQUQ7CitDNDMzO0M0MzM7MTEwQSAxMTZDIDExQUU7QzQzMzsxMTBBIDExNkMgMTFBRTsKK0M0MzQ7QzQzNDsxMTBBIDExNkMgMTFBRjtDNDM0OzExMEEgMTE2QyAxMUFGOworQzQzNTtDNDM1OzExMEEgMTE2QyAxMUIwO0M0MzU7MTEwQSAxMTZDIDExQjA7CitDNDM2O0M0MzY7MTEwQSAxMTZDIDExQjE7QzQzNjsxMTBBIDExNkMgMTFCMTsKK0M0Mzc7QzQzNzsxMTBBIDExNkMgMTFCMjtDNDM3OzExMEEgMTE2QyAxMUIyOworQzQzODtDNDM4OzExMEEgMTE2QyAxMUIzO0M0Mzg7MTEwQSAxMTZDIDExQjM7CitDNDM5O0M0Mzk7MTEwQSAxMTZDIDExQjQ7QzQzOTsxMTBBIDExNkMgMTFCNDsKK0M0M0E7QzQzQTsxMTBBIDExNkMgMTFCNTtDNDNBOzExMEEgMTE2QyAxMUI1OworQzQzQjtDNDNCOzExMEEgMTE2QyAxMUI2O0M0M0I7MTEwQSAxMTZDIDExQjY7CitDNDNDO0M0M0M7MTEwQSAxMTZDIDExQjc7QzQzQzsxMTBBIDExNkMgMTFCNzsKK0M0M0Q7QzQzRDsxMTBBIDExNkMgMTFCODtDNDNEOzExMEEgMTE2QyAxMUI4OworQzQzRTtDNDNFOzExMEEgMTE2QyAxMUI5O0M0M0U7MTEwQSAxMTZDIDExQjk7CitDNDNGO0M0M0Y7MTEwQSAxMTZDIDExQkE7QzQzRjsxMTBBIDExNkMgMTFCQTsKK0M0NDA7QzQ0MDsxMTBBIDExNkMgMTFCQjtDNDQwOzExMEEgMTE2QyAxMUJCOworQzQ0MTtDNDQxOzExMEEgMTE2QyAxMUJDO0M0NDE7MTEwQSAxMTZDIDExQkM7CitDNDQyO0M0NDI7MTEwQSAxMTZDIDExQkQ7QzQ0MjsxMTBBIDExNkMgMTFCRDsKK0M0NDM7QzQ0MzsxMTBBIDExNkMgMTFCRTtDNDQzOzExMEEgMTE2QyAxMUJFOworQzQ0NDtDNDQ0OzExMEEgMTE2QyAxMUJGO0M0NDQ7MTEwQSAxMTZDIDExQkY7CitDNDQ1O0M0NDU7MTEwQSAxMTZDIDExQzA7QzQ0NTsxMTBBIDExNkMgMTFDMDsKK0M0NDY7QzQ0NjsxMTBBIDExNkMgMTFDMTtDNDQ2OzExMEEgMTE2QyAxMUMxOworQzQ0NztDNDQ3OzExMEEgMTE2QyAxMUMyO0M0NDc7MTEwQSAxMTZDIDExQzI7CitDNDQ4O0M0NDg7MTEwQSAxMTZEO0M0NDg7MTEwQSAxMTZEOworQzQ0OTtDNDQ5OzExMEEgMTE2RCAxMUE4O0M0NDk7MTEwQSAxMTZEIDExQTg7CitDNDRBO0M0NEE7MTEwQSAxMTZEIDExQTk7QzQ0QTsxMTBBIDExNkQgMTFBOTsKK0M0NEI7QzQ0QjsxMTBBIDExNkQgMTFBQTtDNDRCOzExMEEgMTE2RCAxMUFBOworQzQ0QztDNDRDOzExMEEgMTE2RCAxMUFCO0M0NEM7MTEwQSAxMTZEIDExQUI7CitDNDREO0M0NEQ7MTEwQSAxMTZEIDExQUM7QzQ0RDsxMTBBIDExNkQgMTFBQzsKK0M0NEU7QzQ0RTsxMTBBIDExNkQgMTFBRDtDNDRFOzExMEEgMTE2RCAxMUFEOworQzQ0RjtDNDRGOzExMEEgMTE2RCAxMUFFO0M0NEY7MTEwQSAxMTZEIDExQUU7CitDNDUwO0M0NTA7MTEwQSAxMTZEIDExQUY7QzQ1MDsxMTBBIDExNkQgMTFBRjsKK0M0NTE7QzQ1MTsxMTBBIDExNkQgMTFCMDtDNDUxOzExMEEgMTE2RCAxMUIwOworQzQ1MjtDNDUyOzExMEEgMTE2RCAxMUIxO0M0NTI7MTEwQSAxMTZEIDExQjE7CitDNDUzO0M0NTM7MTEwQSAxMTZEIDExQjI7QzQ1MzsxMTBBIDExNkQgMTFCMjsKK0M0NTQ7QzQ1NDsxMTBBIDExNkQgMTFCMztDNDU0OzExMEEgMTE2RCAxMUIzOworQzQ1NTtDNDU1OzExMEEgMTE2RCAxMUI0O0M0NTU7MTEwQSAxMTZEIDExQjQ7CitDNDU2O0M0NTY7MTEwQSAxMTZEIDExQjU7QzQ1NjsxMTBBIDExNkQgMTFCNTsKK0M0NTc7QzQ1NzsxMTBBIDExNkQgMTFCNjtDNDU3OzExMEEgMTE2RCAxMUI2OworQzQ1ODtDNDU4OzExMEEgMTE2RCAxMUI3O0M0NTg7MTEwQSAxMTZEIDExQjc7CitDNDU5O0M0NTk7MTEwQSAxMTZEIDExQjg7QzQ1OTsxMTBBIDExNkQgMTFCODsKK0M0NUE7QzQ1QTsxMTBBIDExNkQgMTFCOTtDNDVBOzExMEEgMTE2RCAxMUI5OworQzQ1QjtDNDVCOzExMEEgMTE2RCAxMUJBO0M0NUI7MTEwQSAxMTZEIDExQkE7CitDNDVDO0M0NUM7MTEwQSAxMTZEIDExQkI7QzQ1QzsxMTBBIDExNkQgMTFCQjsKK0M0NUQ7QzQ1RDsxMTBBIDExNkQgMTFCQztDNDVEOzExMEEgMTE2RCAxMUJDOworQzQ1RTtDNDVFOzExMEEgMTE2RCAxMUJEO0M0NUU7MTEwQSAxMTZEIDExQkQ7CitDNDVGO0M0NUY7MTEwQSAxMTZEIDExQkU7QzQ1RjsxMTBBIDExNkQgMTFCRTsKK0M0NjA7QzQ2MDsxMTBBIDExNkQgMTFCRjtDNDYwOzExMEEgMTE2RCAxMUJGOworQzQ2MTtDNDYxOzExMEEgMTE2RCAxMUMwO0M0NjE7MTEwQSAxMTZEIDExQzA7CitDNDYyO0M0NjI7MTEwQSAxMTZEIDExQzE7QzQ2MjsxMTBBIDExNkQgMTFDMTsKK0M0NjM7QzQ2MzsxMTBBIDExNkQgMTFDMjtDNDYzOzExMEEgMTE2RCAxMUMyOworQzQ2NDtDNDY0OzExMEEgMTE2RTtDNDY0OzExMEEgMTE2RTsKK0M0NjU7QzQ2NTsxMTBBIDExNkUgMTFBODtDNDY1OzExMEEgMTE2RSAxMUE4OworQzQ2NjtDNDY2OzExMEEgMTE2RSAxMUE5O0M0NjY7MTEwQSAxMTZFIDExQTk7CitDNDY3O0M0Njc7MTEwQSAxMTZFIDExQUE7QzQ2NzsxMTBBIDExNkUgMTFBQTsKK0M0Njg7QzQ2ODsxMTBBIDExNkUgMTFBQjtDNDY4OzExMEEgMTE2RSAxMUFCOworQzQ2OTtDNDY5OzExMEEgMTE2RSAxMUFDO0M0Njk7MTEwQSAxMTZFIDExQUM7CitDNDZBO0M0NkE7MTEwQSAxMTZFIDExQUQ7QzQ2QTsxMTBBIDExNkUgMTFBRDsKK0M0NkI7QzQ2QjsxMTBBIDExNkUgMTFBRTtDNDZCOzExMEEgMTE2RSAxMUFFOworQzQ2QztDNDZDOzExMEEgMTE2RSAxMUFGO0M0NkM7MTEwQSAxMTZFIDExQUY7CitDNDZEO0M0NkQ7MTEwQSAxMTZFIDExQjA7QzQ2RDsxMTBBIDExNkUgMTFCMDsKK0M0NkU7QzQ2RTsxMTBBIDExNkUgMTFCMTtDNDZFOzExMEEgMTE2RSAxMUIxOworQzQ2RjtDNDZGOzExMEEgMTE2RSAxMUIyO0M0NkY7MTEwQSAxMTZFIDExQjI7CitDNDcwO0M0NzA7MTEwQSAxMTZFIDExQjM7QzQ3MDsxMTBBIDExNkUgMTFCMzsKK0M0NzE7QzQ3MTsxMTBBIDExNkUgMTFCNDtDNDcxOzExMEEgMTE2RSAxMUI0OworQzQ3MjtDNDcyOzExMEEgMTE2RSAxMUI1O0M0NzI7MTEwQSAxMTZFIDExQjU7CitDNDczO0M0NzM7MTEwQSAxMTZFIDExQjY7QzQ3MzsxMTBBIDExNkUgMTFCNjsKK0M0NzQ7QzQ3NDsxMTBBIDExNkUgMTFCNztDNDc0OzExMEEgMTE2RSAxMUI3OworQzQ3NTtDNDc1OzExMEEgMTE2RSAxMUI4O0M0NzU7MTEwQSAxMTZFIDExQjg7CitDNDc2O0M0NzY7MTEwQSAxMTZFIDExQjk7QzQ3NjsxMTBBIDExNkUgMTFCOTsKK0M0Nzc7QzQ3NzsxMTBBIDExNkUgMTFCQTtDNDc3OzExMEEgMTE2RSAxMUJBOworQzQ3ODtDNDc4OzExMEEgMTE2RSAxMUJCO0M0Nzg7MTEwQSAxMTZFIDExQkI7CitDNDc5O0M0Nzk7MTEwQSAxMTZFIDExQkM7QzQ3OTsxMTBBIDExNkUgMTFCQzsKK0M0N0E7QzQ3QTsxMTBBIDExNkUgMTFCRDtDNDdBOzExMEEgMTE2RSAxMUJEOworQzQ3QjtDNDdCOzExMEEgMTE2RSAxMUJFO0M0N0I7MTEwQSAxMTZFIDExQkU7CitDNDdDO0M0N0M7MTEwQSAxMTZFIDExQkY7QzQ3QzsxMTBBIDExNkUgMTFCRjsKK0M0N0Q7QzQ3RDsxMTBBIDExNkUgMTFDMDtDNDdEOzExMEEgMTE2RSAxMUMwOworQzQ3RTtDNDdFOzExMEEgMTE2RSAxMUMxO0M0N0U7MTEwQSAxMTZFIDExQzE7CitDNDdGO0M0N0Y7MTEwQSAxMTZFIDExQzI7QzQ3RjsxMTBBIDExNkUgMTFDMjsKK0M0ODA7QzQ4MDsxMTBBIDExNkY7QzQ4MDsxMTBBIDExNkY7CitDNDgxO0M0ODE7MTEwQSAxMTZGIDExQTg7QzQ4MTsxMTBBIDExNkYgMTFBODsKK0M0ODI7QzQ4MjsxMTBBIDExNkYgMTFBOTtDNDgyOzExMEEgMTE2RiAxMUE5OworQzQ4MztDNDgzOzExMEEgMTE2RiAxMUFBO0M0ODM7MTEwQSAxMTZGIDExQUE7CitDNDg0O0M0ODQ7MTEwQSAxMTZGIDExQUI7QzQ4NDsxMTBBIDExNkYgMTFBQjsKK0M0ODU7QzQ4NTsxMTBBIDExNkYgMTFBQztDNDg1OzExMEEgMTE2RiAxMUFDOworQzQ4NjtDNDg2OzExMEEgMTE2RiAxMUFEO0M0ODY7MTEwQSAxMTZGIDExQUQ7CitDNDg3O0M0ODc7MTEwQSAxMTZGIDExQUU7QzQ4NzsxMTBBIDExNkYgMTFBRTsKK0M0ODg7QzQ4ODsxMTBBIDExNkYgMTFBRjtDNDg4OzExMEEgMTE2RiAxMUFGOworQzQ4OTtDNDg5OzExMEEgMTE2RiAxMUIwO0M0ODk7MTEwQSAxMTZGIDExQjA7CitDNDhBO0M0OEE7MTEwQSAxMTZGIDExQjE7QzQ4QTsxMTBBIDExNkYgMTFCMTsKK0M0OEI7QzQ4QjsxMTBBIDExNkYgMTFCMjtDNDhCOzExMEEgMTE2RiAxMUIyOworQzQ4QztDNDhDOzExMEEgMTE2RiAxMUIzO0M0OEM7MTEwQSAxMTZGIDExQjM7CitDNDhEO0M0OEQ7MTEwQSAxMTZGIDExQjQ7QzQ4RDsxMTBBIDExNkYgMTFCNDsKK0M0OEU7QzQ4RTsxMTBBIDExNkYgMTFCNTtDNDhFOzExMEEgMTE2RiAxMUI1OworQzQ4RjtDNDhGOzExMEEgMTE2RiAxMUI2O0M0OEY7MTEwQSAxMTZGIDExQjY7CitDNDkwO0M0OTA7MTEwQSAxMTZGIDExQjc7QzQ5MDsxMTBBIDExNkYgMTFCNzsKK0M0OTE7QzQ5MTsxMTBBIDExNkYgMTFCODtDNDkxOzExMEEgMTE2RiAxMUI4OworQzQ5MjtDNDkyOzExMEEgMTE2RiAxMUI5O0M0OTI7MTEwQSAxMTZGIDExQjk7CitDNDkzO0M0OTM7MTEwQSAxMTZGIDExQkE7QzQ5MzsxMTBBIDExNkYgMTFCQTsKK0M0OTQ7QzQ5NDsxMTBBIDExNkYgMTFCQjtDNDk0OzExMEEgMTE2RiAxMUJCOworQzQ5NTtDNDk1OzExMEEgMTE2RiAxMUJDO0M0OTU7MTEwQSAxMTZGIDExQkM7CitDNDk2O0M0OTY7MTEwQSAxMTZGIDExQkQ7QzQ5NjsxMTBBIDExNkYgMTFCRDsKK0M0OTc7QzQ5NzsxMTBBIDExNkYgMTFCRTtDNDk3OzExMEEgMTE2RiAxMUJFOworQzQ5ODtDNDk4OzExMEEgMTE2RiAxMUJGO0M0OTg7MTEwQSAxMTZGIDExQkY7CitDNDk5O0M0OTk7MTEwQSAxMTZGIDExQzA7QzQ5OTsxMTBBIDExNkYgMTFDMDsKK0M0OUE7QzQ5QTsxMTBBIDExNkYgMTFDMTtDNDlBOzExMEEgMTE2RiAxMUMxOworQzQ5QjtDNDlCOzExMEEgMTE2RiAxMUMyO0M0OUI7MTEwQSAxMTZGIDExQzI7CitDNDlDO0M0OUM7MTEwQSAxMTcwO0M0OUM7MTEwQSAxMTcwOworQzQ5RDtDNDlEOzExMEEgMTE3MCAxMUE4O0M0OUQ7MTEwQSAxMTcwIDExQTg7CitDNDlFO0M0OUU7MTEwQSAxMTcwIDExQTk7QzQ5RTsxMTBBIDExNzAgMTFBOTsKK0M0OUY7QzQ5RjsxMTBBIDExNzAgMTFBQTtDNDlGOzExMEEgMTE3MCAxMUFBOworQzRBMDtDNEEwOzExMEEgMTE3MCAxMUFCO0M0QTA7MTEwQSAxMTcwIDExQUI7CitDNEExO0M0QTE7MTEwQSAxMTcwIDExQUM7QzRBMTsxMTBBIDExNzAgMTFBQzsKK0M0QTI7QzRBMjsxMTBBIDExNzAgMTFBRDtDNEEyOzExMEEgMTE3MCAxMUFEOworQzRBMztDNEEzOzExMEEgMTE3MCAxMUFFO0M0QTM7MTEwQSAxMTcwIDExQUU7CitDNEE0O0M0QTQ7MTEwQSAxMTcwIDExQUY7QzRBNDsxMTBBIDExNzAgMTFBRjsKK0M0QTU7QzRBNTsxMTBBIDExNzAgMTFCMDtDNEE1OzExMEEgMTE3MCAxMUIwOworQzRBNjtDNEE2OzExMEEgMTE3MCAxMUIxO0M0QTY7MTEwQSAxMTcwIDExQjE7CitDNEE3O0M0QTc7MTEwQSAxMTcwIDExQjI7QzRBNzsxMTBBIDExNzAgMTFCMjsKK0M0QTg7QzRBODsxMTBBIDExNzAgMTFCMztDNEE4OzExMEEgMTE3MCAxMUIzOworQzRBOTtDNEE5OzExMEEgMTE3MCAxMUI0O0M0QTk7MTEwQSAxMTcwIDExQjQ7CitDNEFBO0M0QUE7MTEwQSAxMTcwIDExQjU7QzRBQTsxMTBBIDExNzAgMTFCNTsKK0M0QUI7QzRBQjsxMTBBIDExNzAgMTFCNjtDNEFCOzExMEEgMTE3MCAxMUI2OworQzRBQztDNEFDOzExMEEgMTE3MCAxMUI3O0M0QUM7MTEwQSAxMTcwIDExQjc7CitDNEFEO0M0QUQ7MTEwQSAxMTcwIDExQjg7QzRBRDsxMTBBIDExNzAgMTFCODsKK0M0QUU7QzRBRTsxMTBBIDExNzAgMTFCOTtDNEFFOzExMEEgMTE3MCAxMUI5OworQzRBRjtDNEFGOzExMEEgMTE3MCAxMUJBO0M0QUY7MTEwQSAxMTcwIDExQkE7CitDNEIwO0M0QjA7MTEwQSAxMTcwIDExQkI7QzRCMDsxMTBBIDExNzAgMTFCQjsKK0M0QjE7QzRCMTsxMTBBIDExNzAgMTFCQztDNEIxOzExMEEgMTE3MCAxMUJDOworQzRCMjtDNEIyOzExMEEgMTE3MCAxMUJEO0M0QjI7MTEwQSAxMTcwIDExQkQ7CitDNEIzO0M0QjM7MTEwQSAxMTcwIDExQkU7QzRCMzsxMTBBIDExNzAgMTFCRTsKK0M0QjQ7QzRCNDsxMTBBIDExNzAgMTFCRjtDNEI0OzExMEEgMTE3MCAxMUJGOworQzRCNTtDNEI1OzExMEEgMTE3MCAxMUMwO0M0QjU7MTEwQSAxMTcwIDExQzA7CitDNEI2O0M0QjY7MTEwQSAxMTcwIDExQzE7QzRCNjsxMTBBIDExNzAgMTFDMTsKK0M0Qjc7QzRCNzsxMTBBIDExNzAgMTFDMjtDNEI3OzExMEEgMTE3MCAxMUMyOworQzRCODtDNEI4OzExMEEgMTE3MTtDNEI4OzExMEEgMTE3MTsKK0M0Qjk7QzRCOTsxMTBBIDExNzEgMTFBODtDNEI5OzExMEEgMTE3MSAxMUE4OworQzRCQTtDNEJBOzExMEEgMTE3MSAxMUE5O0M0QkE7MTEwQSAxMTcxIDExQTk7CitDNEJCO0M0QkI7MTEwQSAxMTcxIDExQUE7QzRCQjsxMTBBIDExNzEgMTFBQTsKK0M0QkM7QzRCQzsxMTBBIDExNzEgMTFBQjtDNEJDOzExMEEgMTE3MSAxMUFCOworQzRCRDtDNEJEOzExMEEgMTE3MSAxMUFDO0M0QkQ7MTEwQSAxMTcxIDExQUM7CitDNEJFO0M0QkU7MTEwQSAxMTcxIDExQUQ7QzRCRTsxMTBBIDExNzEgMTFBRDsKK0M0QkY7QzRCRjsxMTBBIDExNzEgMTFBRTtDNEJGOzExMEEgMTE3MSAxMUFFOworQzRDMDtDNEMwOzExMEEgMTE3MSAxMUFGO0M0QzA7MTEwQSAxMTcxIDExQUY7CitDNEMxO0M0QzE7MTEwQSAxMTcxIDExQjA7QzRDMTsxMTBBIDExNzEgMTFCMDsKK0M0QzI7QzRDMjsxMTBBIDExNzEgMTFCMTtDNEMyOzExMEEgMTE3MSAxMUIxOworQzRDMztDNEMzOzExMEEgMTE3MSAxMUIyO0M0QzM7MTEwQSAxMTcxIDExQjI7CitDNEM0O0M0QzQ7MTEwQSAxMTcxIDExQjM7QzRDNDsxMTBBIDExNzEgMTFCMzsKK0M0QzU7QzRDNTsxMTBBIDExNzEgMTFCNDtDNEM1OzExMEEgMTE3MSAxMUI0OworQzRDNjtDNEM2OzExMEEgMTE3MSAxMUI1O0M0QzY7MTEwQSAxMTcxIDExQjU7CitDNEM3O0M0Qzc7MTEwQSAxMTcxIDExQjY7QzRDNzsxMTBBIDExNzEgMTFCNjsKK0M0Qzg7QzRDODsxMTBBIDExNzEgMTFCNztDNEM4OzExMEEgMTE3MSAxMUI3OworQzRDOTtDNEM5OzExMEEgMTE3MSAxMUI4O0M0Qzk7MTEwQSAxMTcxIDExQjg7CitDNENBO0M0Q0E7MTEwQSAxMTcxIDExQjk7QzRDQTsxMTBBIDExNzEgMTFCOTsKK0M0Q0I7QzRDQjsxMTBBIDExNzEgMTFCQTtDNENCOzExMEEgMTE3MSAxMUJBOworQzRDQztDNENDOzExMEEgMTE3MSAxMUJCO0M0Q0M7MTEwQSAxMTcxIDExQkI7CitDNENEO0M0Q0Q7MTEwQSAxMTcxIDExQkM7QzRDRDsxMTBBIDExNzEgMTFCQzsKK0M0Q0U7QzRDRTsxMTBBIDExNzEgMTFCRDtDNENFOzExMEEgMTE3MSAxMUJEOworQzRDRjtDNENGOzExMEEgMTE3MSAxMUJFO0M0Q0Y7MTEwQSAxMTcxIDExQkU7CitDNEQwO0M0RDA7MTEwQSAxMTcxIDExQkY7QzREMDsxMTBBIDExNzEgMTFCRjsKK0M0RDE7QzREMTsxMTBBIDExNzEgMTFDMDtDNEQxOzExMEEgMTE3MSAxMUMwOworQzREMjtDNEQyOzExMEEgMTE3MSAxMUMxO0M0RDI7MTEwQSAxMTcxIDExQzE7CitDNEQzO0M0RDM7MTEwQSAxMTcxIDExQzI7QzREMzsxMTBBIDExNzEgMTFDMjsKK0M0RDQ7QzRENDsxMTBBIDExNzI7QzRENDsxMTBBIDExNzI7CitDNEQ1O0M0RDU7MTEwQSAxMTcyIDExQTg7QzRENTsxMTBBIDExNzIgMTFBODsKK0M0RDY7QzRENjsxMTBBIDExNzIgMTFBOTtDNEQ2OzExMEEgMTE3MiAxMUE5OworQzRENztDNEQ3OzExMEEgMTE3MiAxMUFBO0M0RDc7MTEwQSAxMTcyIDExQUE7CitDNEQ4O0M0RDg7MTEwQSAxMTcyIDExQUI7QzREODsxMTBBIDExNzIgMTFBQjsKK0M0RDk7QzREOTsxMTBBIDExNzIgMTFBQztDNEQ5OzExMEEgMTE3MiAxMUFDOworQzREQTtDNERBOzExMEEgMTE3MiAxMUFEO0M0REE7MTEwQSAxMTcyIDExQUQ7CitDNERCO0M0REI7MTEwQSAxMTcyIDExQUU7QzREQjsxMTBBIDExNzIgMTFBRTsKK0M0REM7QzREQzsxMTBBIDExNzIgMTFBRjtDNERDOzExMEEgMTE3MiAxMUFGOworQzRERDtDNEREOzExMEEgMTE3MiAxMUIwO0M0REQ7MTEwQSAxMTcyIDExQjA7CitDNERFO0M0REU7MTEwQSAxMTcyIDExQjE7QzRERTsxMTBBIDExNzIgMTFCMTsKK0M0REY7QzRERjsxMTBBIDExNzIgMTFCMjtDNERGOzExMEEgMTE3MiAxMUIyOworQzRFMDtDNEUwOzExMEEgMTE3MiAxMUIzO0M0RTA7MTEwQSAxMTcyIDExQjM7CitDNEUxO0M0RTE7MTEwQSAxMTcyIDExQjQ7QzRFMTsxMTBBIDExNzIgMTFCNDsKK0M0RTI7QzRFMjsxMTBBIDExNzIgMTFCNTtDNEUyOzExMEEgMTE3MiAxMUI1OworQzRFMztDNEUzOzExMEEgMTE3MiAxMUI2O0M0RTM7MTEwQSAxMTcyIDExQjY7CitDNEU0O0M0RTQ7MTEwQSAxMTcyIDExQjc7QzRFNDsxMTBBIDExNzIgMTFCNzsKK0M0RTU7QzRFNTsxMTBBIDExNzIgMTFCODtDNEU1OzExMEEgMTE3MiAxMUI4OworQzRFNjtDNEU2OzExMEEgMTE3MiAxMUI5O0M0RTY7MTEwQSAxMTcyIDExQjk7CitDNEU3O0M0RTc7MTEwQSAxMTcyIDExQkE7QzRFNzsxMTBBIDExNzIgMTFCQTsKK0M0RTg7QzRFODsxMTBBIDExNzIgMTFCQjtDNEU4OzExMEEgMTE3MiAxMUJCOworQzRFOTtDNEU5OzExMEEgMTE3MiAxMUJDO0M0RTk7MTEwQSAxMTcyIDExQkM7CitDNEVBO0M0RUE7MTEwQSAxMTcyIDExQkQ7QzRFQTsxMTBBIDExNzIgMTFCRDsKK0M0RUI7QzRFQjsxMTBBIDExNzIgMTFCRTtDNEVCOzExMEEgMTE3MiAxMUJFOworQzRFQztDNEVDOzExMEEgMTE3MiAxMUJGO0M0RUM7MTEwQSAxMTcyIDExQkY7CitDNEVEO0M0RUQ7MTEwQSAxMTcyIDExQzA7QzRFRDsxMTBBIDExNzIgMTFDMDsKK0M0RUU7QzRFRTsxMTBBIDExNzIgMTFDMTtDNEVFOzExMEEgMTE3MiAxMUMxOworQzRFRjtDNEVGOzExMEEgMTE3MiAxMUMyO0M0RUY7MTEwQSAxMTcyIDExQzI7CitDNEYwO0M0RjA7MTEwQSAxMTczO0M0RjA7MTEwQSAxMTczOworQzRGMTtDNEYxOzExMEEgMTE3MyAxMUE4O0M0RjE7MTEwQSAxMTczIDExQTg7CitDNEYyO0M0RjI7MTEwQSAxMTczIDExQTk7QzRGMjsxMTBBIDExNzMgMTFBOTsKK0M0RjM7QzRGMzsxMTBBIDExNzMgMTFBQTtDNEYzOzExMEEgMTE3MyAxMUFBOworQzRGNDtDNEY0OzExMEEgMTE3MyAxMUFCO0M0RjQ7MTEwQSAxMTczIDExQUI7CitDNEY1O0M0RjU7MTEwQSAxMTczIDExQUM7QzRGNTsxMTBBIDExNzMgMTFBQzsKK0M0RjY7QzRGNjsxMTBBIDExNzMgMTFBRDtDNEY2OzExMEEgMTE3MyAxMUFEOworQzRGNztDNEY3OzExMEEgMTE3MyAxMUFFO0M0Rjc7MTEwQSAxMTczIDExQUU7CitDNEY4O0M0Rjg7MTEwQSAxMTczIDExQUY7QzRGODsxMTBBIDExNzMgMTFBRjsKK0M0Rjk7QzRGOTsxMTBBIDExNzMgMTFCMDtDNEY5OzExMEEgMTE3MyAxMUIwOworQzRGQTtDNEZBOzExMEEgMTE3MyAxMUIxO0M0RkE7MTEwQSAxMTczIDExQjE7CitDNEZCO0M0RkI7MTEwQSAxMTczIDExQjI7QzRGQjsxMTBBIDExNzMgMTFCMjsKK0M0RkM7QzRGQzsxMTBBIDExNzMgMTFCMztDNEZDOzExMEEgMTE3MyAxMUIzOworQzRGRDtDNEZEOzExMEEgMTE3MyAxMUI0O0M0RkQ7MTEwQSAxMTczIDExQjQ7CitDNEZFO0M0RkU7MTEwQSAxMTczIDExQjU7QzRGRTsxMTBBIDExNzMgMTFCNTsKK0M0RkY7QzRGRjsxMTBBIDExNzMgMTFCNjtDNEZGOzExMEEgMTE3MyAxMUI2OworQzUwMDtDNTAwOzExMEEgMTE3MyAxMUI3O0M1MDA7MTEwQSAxMTczIDExQjc7CitDNTAxO0M1MDE7MTEwQSAxMTczIDExQjg7QzUwMTsxMTBBIDExNzMgMTFCODsKK0M1MDI7QzUwMjsxMTBBIDExNzMgMTFCOTtDNTAyOzExMEEgMTE3MyAxMUI5OworQzUwMztDNTAzOzExMEEgMTE3MyAxMUJBO0M1MDM7MTEwQSAxMTczIDExQkE7CitDNTA0O0M1MDQ7MTEwQSAxMTczIDExQkI7QzUwNDsxMTBBIDExNzMgMTFCQjsKK0M1MDU7QzUwNTsxMTBBIDExNzMgMTFCQztDNTA1OzExMEEgMTE3MyAxMUJDOworQzUwNjtDNTA2OzExMEEgMTE3MyAxMUJEO0M1MDY7MTEwQSAxMTczIDExQkQ7CitDNTA3O0M1MDc7MTEwQSAxMTczIDExQkU7QzUwNzsxMTBBIDExNzMgMTFCRTsKK0M1MDg7QzUwODsxMTBBIDExNzMgMTFCRjtDNTA4OzExMEEgMTE3MyAxMUJGOworQzUwOTtDNTA5OzExMEEgMTE3MyAxMUMwO0M1MDk7MTEwQSAxMTczIDExQzA7CitDNTBBO0M1MEE7MTEwQSAxMTczIDExQzE7QzUwQTsxMTBBIDExNzMgMTFDMTsKK0M1MEI7QzUwQjsxMTBBIDExNzMgMTFDMjtDNTBCOzExMEEgMTE3MyAxMUMyOworQzUwQztDNTBDOzExMEEgMTE3NDtDNTBDOzExMEEgMTE3NDsKK0M1MEQ7QzUwRDsxMTBBIDExNzQgMTFBODtDNTBEOzExMEEgMTE3NCAxMUE4OworQzUwRTtDNTBFOzExMEEgMTE3NCAxMUE5O0M1MEU7MTEwQSAxMTc0IDExQTk7CitDNTBGO0M1MEY7MTEwQSAxMTc0IDExQUE7QzUwRjsxMTBBIDExNzQgMTFBQTsKK0M1MTA7QzUxMDsxMTBBIDExNzQgMTFBQjtDNTEwOzExMEEgMTE3NCAxMUFCOworQzUxMTtDNTExOzExMEEgMTE3NCAxMUFDO0M1MTE7MTEwQSAxMTc0IDExQUM7CitDNTEyO0M1MTI7MTEwQSAxMTc0IDExQUQ7QzUxMjsxMTBBIDExNzQgMTFBRDsKK0M1MTM7QzUxMzsxMTBBIDExNzQgMTFBRTtDNTEzOzExMEEgMTE3NCAxMUFFOworQzUxNDtDNTE0OzExMEEgMTE3NCAxMUFGO0M1MTQ7MTEwQSAxMTc0IDExQUY7CitDNTE1O0M1MTU7MTEwQSAxMTc0IDExQjA7QzUxNTsxMTBBIDExNzQgMTFCMDsKK0M1MTY7QzUxNjsxMTBBIDExNzQgMTFCMTtDNTE2OzExMEEgMTE3NCAxMUIxOworQzUxNztDNTE3OzExMEEgMTE3NCAxMUIyO0M1MTc7MTEwQSAxMTc0IDExQjI7CitDNTE4O0M1MTg7MTEwQSAxMTc0IDExQjM7QzUxODsxMTBBIDExNzQgMTFCMzsKK0M1MTk7QzUxOTsxMTBBIDExNzQgMTFCNDtDNTE5OzExMEEgMTE3NCAxMUI0OworQzUxQTtDNTFBOzExMEEgMTE3NCAxMUI1O0M1MUE7MTEwQSAxMTc0IDExQjU7CitDNTFCO0M1MUI7MTEwQSAxMTc0IDExQjY7QzUxQjsxMTBBIDExNzQgMTFCNjsKK0M1MUM7QzUxQzsxMTBBIDExNzQgMTFCNztDNTFDOzExMEEgMTE3NCAxMUI3OworQzUxRDtDNTFEOzExMEEgMTE3NCAxMUI4O0M1MUQ7MTEwQSAxMTc0IDExQjg7CitDNTFFO0M1MUU7MTEwQSAxMTc0IDExQjk7QzUxRTsxMTBBIDExNzQgMTFCOTsKK0M1MUY7QzUxRjsxMTBBIDExNzQgMTFCQTtDNTFGOzExMEEgMTE3NCAxMUJBOworQzUyMDtDNTIwOzExMEEgMTE3NCAxMUJCO0M1MjA7MTEwQSAxMTc0IDExQkI7CitDNTIxO0M1MjE7MTEwQSAxMTc0IDExQkM7QzUyMTsxMTBBIDExNzQgMTFCQzsKK0M1MjI7QzUyMjsxMTBBIDExNzQgMTFCRDtDNTIyOzExMEEgMTE3NCAxMUJEOworQzUyMztDNTIzOzExMEEgMTE3NCAxMUJFO0M1MjM7MTEwQSAxMTc0IDExQkU7CitDNTI0O0M1MjQ7MTEwQSAxMTc0IDExQkY7QzUyNDsxMTBBIDExNzQgMTFCRjsKK0M1MjU7QzUyNTsxMTBBIDExNzQgMTFDMDtDNTI1OzExMEEgMTE3NCAxMUMwOworQzUyNjtDNTI2OzExMEEgMTE3NCAxMUMxO0M1MjY7MTEwQSAxMTc0IDExQzE7CitDNTI3O0M1Mjc7MTEwQSAxMTc0IDExQzI7QzUyNzsxMTBBIDExNzQgMTFDMjsKK0M1Mjg7QzUyODsxMTBBIDExNzU7QzUyODsxMTBBIDExNzU7CitDNTI5O0M1Mjk7MTEwQSAxMTc1IDExQTg7QzUyOTsxMTBBIDExNzUgMTFBODsKK0M1MkE7QzUyQTsxMTBBIDExNzUgMTFBOTtDNTJBOzExMEEgMTE3NSAxMUE5OworQzUyQjtDNTJCOzExMEEgMTE3NSAxMUFBO0M1MkI7MTEwQSAxMTc1IDExQUE7CitDNTJDO0M1MkM7MTEwQSAxMTc1IDExQUI7QzUyQzsxMTBBIDExNzUgMTFBQjsKK0M1MkQ7QzUyRDsxMTBBIDExNzUgMTFBQztDNTJEOzExMEEgMTE3NSAxMUFDOworQzUyRTtDNTJFOzExMEEgMTE3NSAxMUFEO0M1MkU7MTEwQSAxMTc1IDExQUQ7CitDNTJGO0M1MkY7MTEwQSAxMTc1IDExQUU7QzUyRjsxMTBBIDExNzUgMTFBRTsKK0M1MzA7QzUzMDsxMTBBIDExNzUgMTFBRjtDNTMwOzExMEEgMTE3NSAxMUFGOworQzUzMTtDNTMxOzExMEEgMTE3NSAxMUIwO0M1MzE7MTEwQSAxMTc1IDExQjA7CitDNTMyO0M1MzI7MTEwQSAxMTc1IDExQjE7QzUzMjsxMTBBIDExNzUgMTFCMTsKK0M1MzM7QzUzMzsxMTBBIDExNzUgMTFCMjtDNTMzOzExMEEgMTE3NSAxMUIyOworQzUzNDtDNTM0OzExMEEgMTE3NSAxMUIzO0M1MzQ7MTEwQSAxMTc1IDExQjM7CitDNTM1O0M1MzU7MTEwQSAxMTc1IDExQjQ7QzUzNTsxMTBBIDExNzUgMTFCNDsKK0M1MzY7QzUzNjsxMTBBIDExNzUgMTFCNTtDNTM2OzExMEEgMTE3NSAxMUI1OworQzUzNztDNTM3OzExMEEgMTE3NSAxMUI2O0M1Mzc7MTEwQSAxMTc1IDExQjY7CitDNTM4O0M1Mzg7MTEwQSAxMTc1IDExQjc7QzUzODsxMTBBIDExNzUgMTFCNzsKK0M1Mzk7QzUzOTsxMTBBIDExNzUgMTFCODtDNTM5OzExMEEgMTE3NSAxMUI4OworQzUzQTtDNTNBOzExMEEgMTE3NSAxMUI5O0M1M0E7MTEwQSAxMTc1IDExQjk7CitDNTNCO0M1M0I7MTEwQSAxMTc1IDExQkE7QzUzQjsxMTBBIDExNzUgMTFCQTsKK0M1M0M7QzUzQzsxMTBBIDExNzUgMTFCQjtDNTNDOzExMEEgMTE3NSAxMUJCOworQzUzRDtDNTNEOzExMEEgMTE3NSAxMUJDO0M1M0Q7MTEwQSAxMTc1IDExQkM7CitDNTNFO0M1M0U7MTEwQSAxMTc1IDExQkQ7QzUzRTsxMTBBIDExNzUgMTFCRDsKK0M1M0Y7QzUzRjsxMTBBIDExNzUgMTFCRTtDNTNGOzExMEEgMTE3NSAxMUJFOworQzU0MDtDNTQwOzExMEEgMTE3NSAxMUJGO0M1NDA7MTEwQSAxMTc1IDExQkY7CitDNTQxO0M1NDE7MTEwQSAxMTc1IDExQzA7QzU0MTsxMTBBIDExNzUgMTFDMDsKK0M1NDI7QzU0MjsxMTBBIDExNzUgMTFDMTtDNTQyOzExMEEgMTE3NSAxMUMxOworQzU0MztDNTQzOzExMEEgMTE3NSAxMUMyO0M1NDM7MTEwQSAxMTc1IDExQzI7CitDNTQ0O0M1NDQ7MTEwQiAxMTYxO0M1NDQ7MTEwQiAxMTYxOworQzU0NTtDNTQ1OzExMEIgMTE2MSAxMUE4O0M1NDU7MTEwQiAxMTYxIDExQTg7CitDNTQ2O0M1NDY7MTEwQiAxMTYxIDExQTk7QzU0NjsxMTBCIDExNjEgMTFBOTsKK0M1NDc7QzU0NzsxMTBCIDExNjEgMTFBQTtDNTQ3OzExMEIgMTE2MSAxMUFBOworQzU0ODtDNTQ4OzExMEIgMTE2MSAxMUFCO0M1NDg7MTEwQiAxMTYxIDExQUI7CitDNTQ5O0M1NDk7MTEwQiAxMTYxIDExQUM7QzU0OTsxMTBCIDExNjEgMTFBQzsKK0M1NEE7QzU0QTsxMTBCIDExNjEgMTFBRDtDNTRBOzExMEIgMTE2MSAxMUFEOworQzU0QjtDNTRCOzExMEIgMTE2MSAxMUFFO0M1NEI7MTEwQiAxMTYxIDExQUU7CitDNTRDO0M1NEM7MTEwQiAxMTYxIDExQUY7QzU0QzsxMTBCIDExNjEgMTFBRjsKK0M1NEQ7QzU0RDsxMTBCIDExNjEgMTFCMDtDNTREOzExMEIgMTE2MSAxMUIwOworQzU0RTtDNTRFOzExMEIgMTE2MSAxMUIxO0M1NEU7MTEwQiAxMTYxIDExQjE7CitDNTRGO0M1NEY7MTEwQiAxMTYxIDExQjI7QzU0RjsxMTBCIDExNjEgMTFCMjsKK0M1NTA7QzU1MDsxMTBCIDExNjEgMTFCMztDNTUwOzExMEIgMTE2MSAxMUIzOworQzU1MTtDNTUxOzExMEIgMTE2MSAxMUI0O0M1NTE7MTEwQiAxMTYxIDExQjQ7CitDNTUyO0M1NTI7MTEwQiAxMTYxIDExQjU7QzU1MjsxMTBCIDExNjEgMTFCNTsKK0M1NTM7QzU1MzsxMTBCIDExNjEgMTFCNjtDNTUzOzExMEIgMTE2MSAxMUI2OworQzU1NDtDNTU0OzExMEIgMTE2MSAxMUI3O0M1NTQ7MTEwQiAxMTYxIDExQjc7CitDNTU1O0M1NTU7MTEwQiAxMTYxIDExQjg7QzU1NTsxMTBCIDExNjEgMTFCODsKK0M1NTY7QzU1NjsxMTBCIDExNjEgMTFCOTtDNTU2OzExMEIgMTE2MSAxMUI5OworQzU1NztDNTU3OzExMEIgMTE2MSAxMUJBO0M1NTc7MTEwQiAxMTYxIDExQkE7CitDNTU4O0M1NTg7MTEwQiAxMTYxIDExQkI7QzU1ODsxMTBCIDExNjEgMTFCQjsKK0M1NTk7QzU1OTsxMTBCIDExNjEgMTFCQztDNTU5OzExMEIgMTE2MSAxMUJDOworQzU1QTtDNTVBOzExMEIgMTE2MSAxMUJEO0M1NUE7MTEwQiAxMTYxIDExQkQ7CitDNTVCO0M1NUI7MTEwQiAxMTYxIDExQkU7QzU1QjsxMTBCIDExNjEgMTFCRTsKK0M1NUM7QzU1QzsxMTBCIDExNjEgMTFCRjtDNTVDOzExMEIgMTE2MSAxMUJGOworQzU1RDtDNTVEOzExMEIgMTE2MSAxMUMwO0M1NUQ7MTEwQiAxMTYxIDExQzA7CitDNTVFO0M1NUU7MTEwQiAxMTYxIDExQzE7QzU1RTsxMTBCIDExNjEgMTFDMTsKK0M1NUY7QzU1RjsxMTBCIDExNjEgMTFDMjtDNTVGOzExMEIgMTE2MSAxMUMyOworQzU2MDtDNTYwOzExMEIgMTE2MjtDNTYwOzExMEIgMTE2MjsKK0M1NjE7QzU2MTsxMTBCIDExNjIgMTFBODtDNTYxOzExMEIgMTE2MiAxMUE4OworQzU2MjtDNTYyOzExMEIgMTE2MiAxMUE5O0M1NjI7MTEwQiAxMTYyIDExQTk7CitDNTYzO0M1NjM7MTEwQiAxMTYyIDExQUE7QzU2MzsxMTBCIDExNjIgMTFBQTsKK0M1NjQ7QzU2NDsxMTBCIDExNjIgMTFBQjtDNTY0OzExMEIgMTE2MiAxMUFCOworQzU2NTtDNTY1OzExMEIgMTE2MiAxMUFDO0M1NjU7MTEwQiAxMTYyIDExQUM7CitDNTY2O0M1NjY7MTEwQiAxMTYyIDExQUQ7QzU2NjsxMTBCIDExNjIgMTFBRDsKK0M1Njc7QzU2NzsxMTBCIDExNjIgMTFBRTtDNTY3OzExMEIgMTE2MiAxMUFFOworQzU2ODtDNTY4OzExMEIgMTE2MiAxMUFGO0M1Njg7MTEwQiAxMTYyIDExQUY7CitDNTY5O0M1Njk7MTEwQiAxMTYyIDExQjA7QzU2OTsxMTBCIDExNjIgMTFCMDsKK0M1NkE7QzU2QTsxMTBCIDExNjIgMTFCMTtDNTZBOzExMEIgMTE2MiAxMUIxOworQzU2QjtDNTZCOzExMEIgMTE2MiAxMUIyO0M1NkI7MTEwQiAxMTYyIDExQjI7CitDNTZDO0M1NkM7MTEwQiAxMTYyIDExQjM7QzU2QzsxMTBCIDExNjIgMTFCMzsKK0M1NkQ7QzU2RDsxMTBCIDExNjIgMTFCNDtDNTZEOzExMEIgMTE2MiAxMUI0OworQzU2RTtDNTZFOzExMEIgMTE2MiAxMUI1O0M1NkU7MTEwQiAxMTYyIDExQjU7CitDNTZGO0M1NkY7MTEwQiAxMTYyIDExQjY7QzU2RjsxMTBCIDExNjIgMTFCNjsKK0M1NzA7QzU3MDsxMTBCIDExNjIgMTFCNztDNTcwOzExMEIgMTE2MiAxMUI3OworQzU3MTtDNTcxOzExMEIgMTE2MiAxMUI4O0M1NzE7MTEwQiAxMTYyIDExQjg7CitDNTcyO0M1NzI7MTEwQiAxMTYyIDExQjk7QzU3MjsxMTBCIDExNjIgMTFCOTsKK0M1NzM7QzU3MzsxMTBCIDExNjIgMTFCQTtDNTczOzExMEIgMTE2MiAxMUJBOworQzU3NDtDNTc0OzExMEIgMTE2MiAxMUJCO0M1NzQ7MTEwQiAxMTYyIDExQkI7CitDNTc1O0M1NzU7MTEwQiAxMTYyIDExQkM7QzU3NTsxMTBCIDExNjIgMTFCQzsKK0M1NzY7QzU3NjsxMTBCIDExNjIgMTFCRDtDNTc2OzExMEIgMTE2MiAxMUJEOworQzU3NztDNTc3OzExMEIgMTE2MiAxMUJFO0M1Nzc7MTEwQiAxMTYyIDExQkU7CitDNTc4O0M1Nzg7MTEwQiAxMTYyIDExQkY7QzU3ODsxMTBCIDExNjIgMTFCRjsKK0M1Nzk7QzU3OTsxMTBCIDExNjIgMTFDMDtDNTc5OzExMEIgMTE2MiAxMUMwOworQzU3QTtDNTdBOzExMEIgMTE2MiAxMUMxO0M1N0E7MTEwQiAxMTYyIDExQzE7CitDNTdCO0M1N0I7MTEwQiAxMTYyIDExQzI7QzU3QjsxMTBCIDExNjIgMTFDMjsKK0M1N0M7QzU3QzsxMTBCIDExNjM7QzU3QzsxMTBCIDExNjM7CitDNTdEO0M1N0Q7MTEwQiAxMTYzIDExQTg7QzU3RDsxMTBCIDExNjMgMTFBODsKK0M1N0U7QzU3RTsxMTBCIDExNjMgMTFBOTtDNTdFOzExMEIgMTE2MyAxMUE5OworQzU3RjtDNTdGOzExMEIgMTE2MyAxMUFBO0M1N0Y7MTEwQiAxMTYzIDExQUE7CitDNTgwO0M1ODA7MTEwQiAxMTYzIDExQUI7QzU4MDsxMTBCIDExNjMgMTFBQjsKK0M1ODE7QzU4MTsxMTBCIDExNjMgMTFBQztDNTgxOzExMEIgMTE2MyAxMUFDOworQzU4MjtDNTgyOzExMEIgMTE2MyAxMUFEO0M1ODI7MTEwQiAxMTYzIDExQUQ7CitDNTgzO0M1ODM7MTEwQiAxMTYzIDExQUU7QzU4MzsxMTBCIDExNjMgMTFBRTsKK0M1ODQ7QzU4NDsxMTBCIDExNjMgMTFBRjtDNTg0OzExMEIgMTE2MyAxMUFGOworQzU4NTtDNTg1OzExMEIgMTE2MyAxMUIwO0M1ODU7MTEwQiAxMTYzIDExQjA7CitDNTg2O0M1ODY7MTEwQiAxMTYzIDExQjE7QzU4NjsxMTBCIDExNjMgMTFCMTsKK0M1ODc7QzU4NzsxMTBCIDExNjMgMTFCMjtDNTg3OzExMEIgMTE2MyAxMUIyOworQzU4ODtDNTg4OzExMEIgMTE2MyAxMUIzO0M1ODg7MTEwQiAxMTYzIDExQjM7CitDNTg5O0M1ODk7MTEwQiAxMTYzIDExQjQ7QzU4OTsxMTBCIDExNjMgMTFCNDsKK0M1OEE7QzU4QTsxMTBCIDExNjMgMTFCNTtDNThBOzExMEIgMTE2MyAxMUI1OworQzU4QjtDNThCOzExMEIgMTE2MyAxMUI2O0M1OEI7MTEwQiAxMTYzIDExQjY7CitDNThDO0M1OEM7MTEwQiAxMTYzIDExQjc7QzU4QzsxMTBCIDExNjMgMTFCNzsKK0M1OEQ7QzU4RDsxMTBCIDExNjMgMTFCODtDNThEOzExMEIgMTE2MyAxMUI4OworQzU4RTtDNThFOzExMEIgMTE2MyAxMUI5O0M1OEU7MTEwQiAxMTYzIDExQjk7CitDNThGO0M1OEY7MTEwQiAxMTYzIDExQkE7QzU4RjsxMTBCIDExNjMgMTFCQTsKK0M1OTA7QzU5MDsxMTBCIDExNjMgMTFCQjtDNTkwOzExMEIgMTE2MyAxMUJCOworQzU5MTtDNTkxOzExMEIgMTE2MyAxMUJDO0M1OTE7MTEwQiAxMTYzIDExQkM7CitDNTkyO0M1OTI7MTEwQiAxMTYzIDExQkQ7QzU5MjsxMTBCIDExNjMgMTFCRDsKK0M1OTM7QzU5MzsxMTBCIDExNjMgMTFCRTtDNTkzOzExMEIgMTE2MyAxMUJFOworQzU5NDtDNTk0OzExMEIgMTE2MyAxMUJGO0M1OTQ7MTEwQiAxMTYzIDExQkY7CitDNTk1O0M1OTU7MTEwQiAxMTYzIDExQzA7QzU5NTsxMTBCIDExNjMgMTFDMDsKK0M1OTY7QzU5NjsxMTBCIDExNjMgMTFDMTtDNTk2OzExMEIgMTE2MyAxMUMxOworQzU5NztDNTk3OzExMEIgMTE2MyAxMUMyO0M1OTc7MTEwQiAxMTYzIDExQzI7CitDNTk4O0M1OTg7MTEwQiAxMTY0O0M1OTg7MTEwQiAxMTY0OworQzU5OTtDNTk5OzExMEIgMTE2NCAxMUE4O0M1OTk7MTEwQiAxMTY0IDExQTg7CitDNTlBO0M1OUE7MTEwQiAxMTY0IDExQTk7QzU5QTsxMTBCIDExNjQgMTFBOTsKK0M1OUI7QzU5QjsxMTBCIDExNjQgMTFBQTtDNTlCOzExMEIgMTE2NCAxMUFBOworQzU5QztDNTlDOzExMEIgMTE2NCAxMUFCO0M1OUM7MTEwQiAxMTY0IDExQUI7CitDNTlEO0M1OUQ7MTEwQiAxMTY0IDExQUM7QzU5RDsxMTBCIDExNjQgMTFBQzsKK0M1OUU7QzU5RTsxMTBCIDExNjQgMTFBRDtDNTlFOzExMEIgMTE2NCAxMUFEOworQzU5RjtDNTlGOzExMEIgMTE2NCAxMUFFO0M1OUY7MTEwQiAxMTY0IDExQUU7CitDNUEwO0M1QTA7MTEwQiAxMTY0IDExQUY7QzVBMDsxMTBCIDExNjQgMTFBRjsKK0M1QTE7QzVBMTsxMTBCIDExNjQgMTFCMDtDNUExOzExMEIgMTE2NCAxMUIwOworQzVBMjtDNUEyOzExMEIgMTE2NCAxMUIxO0M1QTI7MTEwQiAxMTY0IDExQjE7CitDNUEzO0M1QTM7MTEwQiAxMTY0IDExQjI7QzVBMzsxMTBCIDExNjQgMTFCMjsKK0M1QTQ7QzVBNDsxMTBCIDExNjQgMTFCMztDNUE0OzExMEIgMTE2NCAxMUIzOworQzVBNTtDNUE1OzExMEIgMTE2NCAxMUI0O0M1QTU7MTEwQiAxMTY0IDExQjQ7CitDNUE2O0M1QTY7MTEwQiAxMTY0IDExQjU7QzVBNjsxMTBCIDExNjQgMTFCNTsKK0M1QTc7QzVBNzsxMTBCIDExNjQgMTFCNjtDNUE3OzExMEIgMTE2NCAxMUI2OworQzVBODtDNUE4OzExMEIgMTE2NCAxMUI3O0M1QTg7MTEwQiAxMTY0IDExQjc7CitDNUE5O0M1QTk7MTEwQiAxMTY0IDExQjg7QzVBOTsxMTBCIDExNjQgMTFCODsKK0M1QUE7QzVBQTsxMTBCIDExNjQgMTFCOTtDNUFBOzExMEIgMTE2NCAxMUI5OworQzVBQjtDNUFCOzExMEIgMTE2NCAxMUJBO0M1QUI7MTEwQiAxMTY0IDExQkE7CitDNUFDO0M1QUM7MTEwQiAxMTY0IDExQkI7QzVBQzsxMTBCIDExNjQgMTFCQjsKK0M1QUQ7QzVBRDsxMTBCIDExNjQgMTFCQztDNUFEOzExMEIgMTE2NCAxMUJDOworQzVBRTtDNUFFOzExMEIgMTE2NCAxMUJEO0M1QUU7MTEwQiAxMTY0IDExQkQ7CitDNUFGO0M1QUY7MTEwQiAxMTY0IDExQkU7QzVBRjsxMTBCIDExNjQgMTFCRTsKK0M1QjA7QzVCMDsxMTBCIDExNjQgMTFCRjtDNUIwOzExMEIgMTE2NCAxMUJGOworQzVCMTtDNUIxOzExMEIgMTE2NCAxMUMwO0M1QjE7MTEwQiAxMTY0IDExQzA7CitDNUIyO0M1QjI7MTEwQiAxMTY0IDExQzE7QzVCMjsxMTBCIDExNjQgMTFDMTsKK0M1QjM7QzVCMzsxMTBCIDExNjQgMTFDMjtDNUIzOzExMEIgMTE2NCAxMUMyOworQzVCNDtDNUI0OzExMEIgMTE2NTtDNUI0OzExMEIgMTE2NTsKK0M1QjU7QzVCNTsxMTBCIDExNjUgMTFBODtDNUI1OzExMEIgMTE2NSAxMUE4OworQzVCNjtDNUI2OzExMEIgMTE2NSAxMUE5O0M1QjY7MTEwQiAxMTY1IDExQTk7CitDNUI3O0M1Qjc7MTEwQiAxMTY1IDExQUE7QzVCNzsxMTBCIDExNjUgMTFBQTsKK0M1Qjg7QzVCODsxMTBCIDExNjUgMTFBQjtDNUI4OzExMEIgMTE2NSAxMUFCOworQzVCOTtDNUI5OzExMEIgMTE2NSAxMUFDO0M1Qjk7MTEwQiAxMTY1IDExQUM7CitDNUJBO0M1QkE7MTEwQiAxMTY1IDExQUQ7QzVCQTsxMTBCIDExNjUgMTFBRDsKK0M1QkI7QzVCQjsxMTBCIDExNjUgMTFBRTtDNUJCOzExMEIgMTE2NSAxMUFFOworQzVCQztDNUJDOzExMEIgMTE2NSAxMUFGO0M1QkM7MTEwQiAxMTY1IDExQUY7CitDNUJEO0M1QkQ7MTEwQiAxMTY1IDExQjA7QzVCRDsxMTBCIDExNjUgMTFCMDsKK0M1QkU7QzVCRTsxMTBCIDExNjUgMTFCMTtDNUJFOzExMEIgMTE2NSAxMUIxOworQzVCRjtDNUJGOzExMEIgMTE2NSAxMUIyO0M1QkY7MTEwQiAxMTY1IDExQjI7CitDNUMwO0M1QzA7MTEwQiAxMTY1IDExQjM7QzVDMDsxMTBCIDExNjUgMTFCMzsKK0M1QzE7QzVDMTsxMTBCIDExNjUgMTFCNDtDNUMxOzExMEIgMTE2NSAxMUI0OworQzVDMjtDNUMyOzExMEIgMTE2NSAxMUI1O0M1QzI7MTEwQiAxMTY1IDExQjU7CitDNUMzO0M1QzM7MTEwQiAxMTY1IDExQjY7QzVDMzsxMTBCIDExNjUgMTFCNjsKK0M1QzQ7QzVDNDsxMTBCIDExNjUgMTFCNztDNUM0OzExMEIgMTE2NSAxMUI3OworQzVDNTtDNUM1OzExMEIgMTE2NSAxMUI4O0M1QzU7MTEwQiAxMTY1IDExQjg7CitDNUM2O0M1QzY7MTEwQiAxMTY1IDExQjk7QzVDNjsxMTBCIDExNjUgMTFCOTsKK0M1Qzc7QzVDNzsxMTBCIDExNjUgMTFCQTtDNUM3OzExMEIgMTE2NSAxMUJBOworQzVDODtDNUM4OzExMEIgMTE2NSAxMUJCO0M1Qzg7MTEwQiAxMTY1IDExQkI7CitDNUM5O0M1Qzk7MTEwQiAxMTY1IDExQkM7QzVDOTsxMTBCIDExNjUgMTFCQzsKK0M1Q0E7QzVDQTsxMTBCIDExNjUgMTFCRDtDNUNBOzExMEIgMTE2NSAxMUJEOworQzVDQjtDNUNCOzExMEIgMTE2NSAxMUJFO0M1Q0I7MTEwQiAxMTY1IDExQkU7CitDNUNDO0M1Q0M7MTEwQiAxMTY1IDExQkY7QzVDQzsxMTBCIDExNjUgMTFCRjsKK0M1Q0Q7QzVDRDsxMTBCIDExNjUgMTFDMDtDNUNEOzExMEIgMTE2NSAxMUMwOworQzVDRTtDNUNFOzExMEIgMTE2NSAxMUMxO0M1Q0U7MTEwQiAxMTY1IDExQzE7CitDNUNGO0M1Q0Y7MTEwQiAxMTY1IDExQzI7QzVDRjsxMTBCIDExNjUgMTFDMjsKK0M1RDA7QzVEMDsxMTBCIDExNjY7QzVEMDsxMTBCIDExNjY7CitDNUQxO0M1RDE7MTEwQiAxMTY2IDExQTg7QzVEMTsxMTBCIDExNjYgMTFBODsKK0M1RDI7QzVEMjsxMTBCIDExNjYgMTFBOTtDNUQyOzExMEIgMTE2NiAxMUE5OworQzVEMztDNUQzOzExMEIgMTE2NiAxMUFBO0M1RDM7MTEwQiAxMTY2IDExQUE7CitDNUQ0O0M1RDQ7MTEwQiAxMTY2IDExQUI7QzVENDsxMTBCIDExNjYgMTFBQjsKK0M1RDU7QzVENTsxMTBCIDExNjYgMTFBQztDNUQ1OzExMEIgMTE2NiAxMUFDOworQzVENjtDNUQ2OzExMEIgMTE2NiAxMUFEO0M1RDY7MTEwQiAxMTY2IDExQUQ7CitDNUQ3O0M1RDc7MTEwQiAxMTY2IDExQUU7QzVENzsxMTBCIDExNjYgMTFBRTsKK0M1RDg7QzVEODsxMTBCIDExNjYgMTFBRjtDNUQ4OzExMEIgMTE2NiAxMUFGOworQzVEOTtDNUQ5OzExMEIgMTE2NiAxMUIwO0M1RDk7MTEwQiAxMTY2IDExQjA7CitDNURBO0M1REE7MTEwQiAxMTY2IDExQjE7QzVEQTsxMTBCIDExNjYgMTFCMTsKK0M1REI7QzVEQjsxMTBCIDExNjYgMTFCMjtDNURCOzExMEIgMTE2NiAxMUIyOworQzVEQztDNURDOzExMEIgMTE2NiAxMUIzO0M1REM7MTEwQiAxMTY2IDExQjM7CitDNUREO0M1REQ7MTEwQiAxMTY2IDExQjQ7QzVERDsxMTBCIDExNjYgMTFCNDsKK0M1REU7QzVERTsxMTBCIDExNjYgMTFCNTtDNURFOzExMEIgMTE2NiAxMUI1OworQzVERjtDNURGOzExMEIgMTE2NiAxMUI2O0M1REY7MTEwQiAxMTY2IDExQjY7CitDNUUwO0M1RTA7MTEwQiAxMTY2IDExQjc7QzVFMDsxMTBCIDExNjYgMTFCNzsKK0M1RTE7QzVFMTsxMTBCIDExNjYgMTFCODtDNUUxOzExMEIgMTE2NiAxMUI4OworQzVFMjtDNUUyOzExMEIgMTE2NiAxMUI5O0M1RTI7MTEwQiAxMTY2IDExQjk7CitDNUUzO0M1RTM7MTEwQiAxMTY2IDExQkE7QzVFMzsxMTBCIDExNjYgMTFCQTsKK0M1RTQ7QzVFNDsxMTBCIDExNjYgMTFCQjtDNUU0OzExMEIgMTE2NiAxMUJCOworQzVFNTtDNUU1OzExMEIgMTE2NiAxMUJDO0M1RTU7MTEwQiAxMTY2IDExQkM7CitDNUU2O0M1RTY7MTEwQiAxMTY2IDExQkQ7QzVFNjsxMTBCIDExNjYgMTFCRDsKK0M1RTc7QzVFNzsxMTBCIDExNjYgMTFCRTtDNUU3OzExMEIgMTE2NiAxMUJFOworQzVFODtDNUU4OzExMEIgMTE2NiAxMUJGO0M1RTg7MTEwQiAxMTY2IDExQkY7CitDNUU5O0M1RTk7MTEwQiAxMTY2IDExQzA7QzVFOTsxMTBCIDExNjYgMTFDMDsKK0M1RUE7QzVFQTsxMTBCIDExNjYgMTFDMTtDNUVBOzExMEIgMTE2NiAxMUMxOworQzVFQjtDNUVCOzExMEIgMTE2NiAxMUMyO0M1RUI7MTEwQiAxMTY2IDExQzI7CitDNUVDO0M1RUM7MTEwQiAxMTY3O0M1RUM7MTEwQiAxMTY3OworQzVFRDtDNUVEOzExMEIgMTE2NyAxMUE4O0M1RUQ7MTEwQiAxMTY3IDExQTg7CitDNUVFO0M1RUU7MTEwQiAxMTY3IDExQTk7QzVFRTsxMTBCIDExNjcgMTFBOTsKK0M1RUY7QzVFRjsxMTBCIDExNjcgMTFBQTtDNUVGOzExMEIgMTE2NyAxMUFBOworQzVGMDtDNUYwOzExMEIgMTE2NyAxMUFCO0M1RjA7MTEwQiAxMTY3IDExQUI7CitDNUYxO0M1RjE7MTEwQiAxMTY3IDExQUM7QzVGMTsxMTBCIDExNjcgMTFBQzsKK0M1RjI7QzVGMjsxMTBCIDExNjcgMTFBRDtDNUYyOzExMEIgMTE2NyAxMUFEOworQzVGMztDNUYzOzExMEIgMTE2NyAxMUFFO0M1RjM7MTEwQiAxMTY3IDExQUU7CitDNUY0O0M1RjQ7MTEwQiAxMTY3IDExQUY7QzVGNDsxMTBCIDExNjcgMTFBRjsKK0M1RjU7QzVGNTsxMTBCIDExNjcgMTFCMDtDNUY1OzExMEIgMTE2NyAxMUIwOworQzVGNjtDNUY2OzExMEIgMTE2NyAxMUIxO0M1RjY7MTEwQiAxMTY3IDExQjE7CitDNUY3O0M1Rjc7MTEwQiAxMTY3IDExQjI7QzVGNzsxMTBCIDExNjcgMTFCMjsKK0M1Rjg7QzVGODsxMTBCIDExNjcgMTFCMztDNUY4OzExMEIgMTE2NyAxMUIzOworQzVGOTtDNUY5OzExMEIgMTE2NyAxMUI0O0M1Rjk7MTEwQiAxMTY3IDExQjQ7CitDNUZBO0M1RkE7MTEwQiAxMTY3IDExQjU7QzVGQTsxMTBCIDExNjcgMTFCNTsKK0M1RkI7QzVGQjsxMTBCIDExNjcgMTFCNjtDNUZCOzExMEIgMTE2NyAxMUI2OworQzVGQztDNUZDOzExMEIgMTE2NyAxMUI3O0M1RkM7MTEwQiAxMTY3IDExQjc7CitDNUZEO0M1RkQ7MTEwQiAxMTY3IDExQjg7QzVGRDsxMTBCIDExNjcgMTFCODsKK0M1RkU7QzVGRTsxMTBCIDExNjcgMTFCOTtDNUZFOzExMEIgMTE2NyAxMUI5OworQzVGRjtDNUZGOzExMEIgMTE2NyAxMUJBO0M1RkY7MTEwQiAxMTY3IDExQkE7CitDNjAwO0M2MDA7MTEwQiAxMTY3IDExQkI7QzYwMDsxMTBCIDExNjcgMTFCQjsKK0M2MDE7QzYwMTsxMTBCIDExNjcgMTFCQztDNjAxOzExMEIgMTE2NyAxMUJDOworQzYwMjtDNjAyOzExMEIgMTE2NyAxMUJEO0M2MDI7MTEwQiAxMTY3IDExQkQ7CitDNjAzO0M2MDM7MTEwQiAxMTY3IDExQkU7QzYwMzsxMTBCIDExNjcgMTFCRTsKK0M2MDQ7QzYwNDsxMTBCIDExNjcgMTFCRjtDNjA0OzExMEIgMTE2NyAxMUJGOworQzYwNTtDNjA1OzExMEIgMTE2NyAxMUMwO0M2MDU7MTEwQiAxMTY3IDExQzA7CitDNjA2O0M2MDY7MTEwQiAxMTY3IDExQzE7QzYwNjsxMTBCIDExNjcgMTFDMTsKK0M2MDc7QzYwNzsxMTBCIDExNjcgMTFDMjtDNjA3OzExMEIgMTE2NyAxMUMyOworQzYwODtDNjA4OzExMEIgMTE2ODtDNjA4OzExMEIgMTE2ODsKK0M2MDk7QzYwOTsxMTBCIDExNjggMTFBODtDNjA5OzExMEIgMTE2OCAxMUE4OworQzYwQTtDNjBBOzExMEIgMTE2OCAxMUE5O0M2MEE7MTEwQiAxMTY4IDExQTk7CitDNjBCO0M2MEI7MTEwQiAxMTY4IDExQUE7QzYwQjsxMTBCIDExNjggMTFBQTsKK0M2MEM7QzYwQzsxMTBCIDExNjggMTFBQjtDNjBDOzExMEIgMTE2OCAxMUFCOworQzYwRDtDNjBEOzExMEIgMTE2OCAxMUFDO0M2MEQ7MTEwQiAxMTY4IDExQUM7CitDNjBFO0M2MEU7MTEwQiAxMTY4IDExQUQ7QzYwRTsxMTBCIDExNjggMTFBRDsKK0M2MEY7QzYwRjsxMTBCIDExNjggMTFBRTtDNjBGOzExMEIgMTE2OCAxMUFFOworQzYxMDtDNjEwOzExMEIgMTE2OCAxMUFGO0M2MTA7MTEwQiAxMTY4IDExQUY7CitDNjExO0M2MTE7MTEwQiAxMTY4IDExQjA7QzYxMTsxMTBCIDExNjggMTFCMDsKK0M2MTI7QzYxMjsxMTBCIDExNjggMTFCMTtDNjEyOzExMEIgMTE2OCAxMUIxOworQzYxMztDNjEzOzExMEIgMTE2OCAxMUIyO0M2MTM7MTEwQiAxMTY4IDExQjI7CitDNjE0O0M2MTQ7MTEwQiAxMTY4IDExQjM7QzYxNDsxMTBCIDExNjggMTFCMzsKK0M2MTU7QzYxNTsxMTBCIDExNjggMTFCNDtDNjE1OzExMEIgMTE2OCAxMUI0OworQzYxNjtDNjE2OzExMEIgMTE2OCAxMUI1O0M2MTY7MTEwQiAxMTY4IDExQjU7CitDNjE3O0M2MTc7MTEwQiAxMTY4IDExQjY7QzYxNzsxMTBCIDExNjggMTFCNjsKK0M2MTg7QzYxODsxMTBCIDExNjggMTFCNztDNjE4OzExMEIgMTE2OCAxMUI3OworQzYxOTtDNjE5OzExMEIgMTE2OCAxMUI4O0M2MTk7MTEwQiAxMTY4IDExQjg7CitDNjFBO0M2MUE7MTEwQiAxMTY4IDExQjk7QzYxQTsxMTBCIDExNjggMTFCOTsKK0M2MUI7QzYxQjsxMTBCIDExNjggMTFCQTtDNjFCOzExMEIgMTE2OCAxMUJBOworQzYxQztDNjFDOzExMEIgMTE2OCAxMUJCO0M2MUM7MTEwQiAxMTY4IDExQkI7CitDNjFEO0M2MUQ7MTEwQiAxMTY4IDExQkM7QzYxRDsxMTBCIDExNjggMTFCQzsKK0M2MUU7QzYxRTsxMTBCIDExNjggMTFCRDtDNjFFOzExMEIgMTE2OCAxMUJEOworQzYxRjtDNjFGOzExMEIgMTE2OCAxMUJFO0M2MUY7MTEwQiAxMTY4IDExQkU7CitDNjIwO0M2MjA7MTEwQiAxMTY4IDExQkY7QzYyMDsxMTBCIDExNjggMTFCRjsKK0M2MjE7QzYyMTsxMTBCIDExNjggMTFDMDtDNjIxOzExMEIgMTE2OCAxMUMwOworQzYyMjtDNjIyOzExMEIgMTE2OCAxMUMxO0M2MjI7MTEwQiAxMTY4IDExQzE7CitDNjIzO0M2MjM7MTEwQiAxMTY4IDExQzI7QzYyMzsxMTBCIDExNjggMTFDMjsKK0M2MjQ7QzYyNDsxMTBCIDExNjk7QzYyNDsxMTBCIDExNjk7CitDNjI1O0M2MjU7MTEwQiAxMTY5IDExQTg7QzYyNTsxMTBCIDExNjkgMTFBODsKK0M2MjY7QzYyNjsxMTBCIDExNjkgMTFBOTtDNjI2OzExMEIgMTE2OSAxMUE5OworQzYyNztDNjI3OzExMEIgMTE2OSAxMUFBO0M2Mjc7MTEwQiAxMTY5IDExQUE7CitDNjI4O0M2Mjg7MTEwQiAxMTY5IDExQUI7QzYyODsxMTBCIDExNjkgMTFBQjsKK0M2Mjk7QzYyOTsxMTBCIDExNjkgMTFBQztDNjI5OzExMEIgMTE2OSAxMUFDOworQzYyQTtDNjJBOzExMEIgMTE2OSAxMUFEO0M2MkE7MTEwQiAxMTY5IDExQUQ7CitDNjJCO0M2MkI7MTEwQiAxMTY5IDExQUU7QzYyQjsxMTBCIDExNjkgMTFBRTsKK0M2MkM7QzYyQzsxMTBCIDExNjkgMTFBRjtDNjJDOzExMEIgMTE2OSAxMUFGOworQzYyRDtDNjJEOzExMEIgMTE2OSAxMUIwO0M2MkQ7MTEwQiAxMTY5IDExQjA7CitDNjJFO0M2MkU7MTEwQiAxMTY5IDExQjE7QzYyRTsxMTBCIDExNjkgMTFCMTsKK0M2MkY7QzYyRjsxMTBCIDExNjkgMTFCMjtDNjJGOzExMEIgMTE2OSAxMUIyOworQzYzMDtDNjMwOzExMEIgMTE2OSAxMUIzO0M2MzA7MTEwQiAxMTY5IDExQjM7CitDNjMxO0M2MzE7MTEwQiAxMTY5IDExQjQ7QzYzMTsxMTBCIDExNjkgMTFCNDsKK0M2MzI7QzYzMjsxMTBCIDExNjkgMTFCNTtDNjMyOzExMEIgMTE2OSAxMUI1OworQzYzMztDNjMzOzExMEIgMTE2OSAxMUI2O0M2MzM7MTEwQiAxMTY5IDExQjY7CitDNjM0O0M2MzQ7MTEwQiAxMTY5IDExQjc7QzYzNDsxMTBCIDExNjkgMTFCNzsKK0M2MzU7QzYzNTsxMTBCIDExNjkgMTFCODtDNjM1OzExMEIgMTE2OSAxMUI4OworQzYzNjtDNjM2OzExMEIgMTE2OSAxMUI5O0M2MzY7MTEwQiAxMTY5IDExQjk7CitDNjM3O0M2Mzc7MTEwQiAxMTY5IDExQkE7QzYzNzsxMTBCIDExNjkgMTFCQTsKK0M2Mzg7QzYzODsxMTBCIDExNjkgMTFCQjtDNjM4OzExMEIgMTE2OSAxMUJCOworQzYzOTtDNjM5OzExMEIgMTE2OSAxMUJDO0M2Mzk7MTEwQiAxMTY5IDExQkM7CitDNjNBO0M2M0E7MTEwQiAxMTY5IDExQkQ7QzYzQTsxMTBCIDExNjkgMTFCRDsKK0M2M0I7QzYzQjsxMTBCIDExNjkgMTFCRTtDNjNCOzExMEIgMTE2OSAxMUJFOworQzYzQztDNjNDOzExMEIgMTE2OSAxMUJGO0M2M0M7MTEwQiAxMTY5IDExQkY7CitDNjNEO0M2M0Q7MTEwQiAxMTY5IDExQzA7QzYzRDsxMTBCIDExNjkgMTFDMDsKK0M2M0U7QzYzRTsxMTBCIDExNjkgMTFDMTtDNjNFOzExMEIgMTE2OSAxMUMxOworQzYzRjtDNjNGOzExMEIgMTE2OSAxMUMyO0M2M0Y7MTEwQiAxMTY5IDExQzI7CitDNjQwO0M2NDA7MTEwQiAxMTZBO0M2NDA7MTEwQiAxMTZBOworQzY0MTtDNjQxOzExMEIgMTE2QSAxMUE4O0M2NDE7MTEwQiAxMTZBIDExQTg7CitDNjQyO0M2NDI7MTEwQiAxMTZBIDExQTk7QzY0MjsxMTBCIDExNkEgMTFBOTsKK0M2NDM7QzY0MzsxMTBCIDExNkEgMTFBQTtDNjQzOzExMEIgMTE2QSAxMUFBOworQzY0NDtDNjQ0OzExMEIgMTE2QSAxMUFCO0M2NDQ7MTEwQiAxMTZBIDExQUI7CitDNjQ1O0M2NDU7MTEwQiAxMTZBIDExQUM7QzY0NTsxMTBCIDExNkEgMTFBQzsKK0M2NDY7QzY0NjsxMTBCIDExNkEgMTFBRDtDNjQ2OzExMEIgMTE2QSAxMUFEOworQzY0NztDNjQ3OzExMEIgMTE2QSAxMUFFO0M2NDc7MTEwQiAxMTZBIDExQUU7CitDNjQ4O0M2NDg7MTEwQiAxMTZBIDExQUY7QzY0ODsxMTBCIDExNkEgMTFBRjsKK0M2NDk7QzY0OTsxMTBCIDExNkEgMTFCMDtDNjQ5OzExMEIgMTE2QSAxMUIwOworQzY0QTtDNjRBOzExMEIgMTE2QSAxMUIxO0M2NEE7MTEwQiAxMTZBIDExQjE7CitDNjRCO0M2NEI7MTEwQiAxMTZBIDExQjI7QzY0QjsxMTBCIDExNkEgMTFCMjsKK0M2NEM7QzY0QzsxMTBCIDExNkEgMTFCMztDNjRDOzExMEIgMTE2QSAxMUIzOworQzY0RDtDNjREOzExMEIgMTE2QSAxMUI0O0M2NEQ7MTEwQiAxMTZBIDExQjQ7CitDNjRFO0M2NEU7MTEwQiAxMTZBIDExQjU7QzY0RTsxMTBCIDExNkEgMTFCNTsKK0M2NEY7QzY0RjsxMTBCIDExNkEgMTFCNjtDNjRGOzExMEIgMTE2QSAxMUI2OworQzY1MDtDNjUwOzExMEIgMTE2QSAxMUI3O0M2NTA7MTEwQiAxMTZBIDExQjc7CitDNjUxO0M2NTE7MTEwQiAxMTZBIDExQjg7QzY1MTsxMTBCIDExNkEgMTFCODsKK0M2NTI7QzY1MjsxMTBCIDExNkEgMTFCOTtDNjUyOzExMEIgMTE2QSAxMUI5OworQzY1MztDNjUzOzExMEIgMTE2QSAxMUJBO0M2NTM7MTEwQiAxMTZBIDExQkE7CitDNjU0O0M2NTQ7MTEwQiAxMTZBIDExQkI7QzY1NDsxMTBCIDExNkEgMTFCQjsKK0M2NTU7QzY1NTsxMTBCIDExNkEgMTFCQztDNjU1OzExMEIgMTE2QSAxMUJDOworQzY1NjtDNjU2OzExMEIgMTE2QSAxMUJEO0M2NTY7MTEwQiAxMTZBIDExQkQ7CitDNjU3O0M2NTc7MTEwQiAxMTZBIDExQkU7QzY1NzsxMTBCIDExNkEgMTFCRTsKK0M2NTg7QzY1ODsxMTBCIDExNkEgMTFCRjtDNjU4OzExMEIgMTE2QSAxMUJGOworQzY1OTtDNjU5OzExMEIgMTE2QSAxMUMwO0M2NTk7MTEwQiAxMTZBIDExQzA7CitDNjVBO0M2NUE7MTEwQiAxMTZBIDExQzE7QzY1QTsxMTBCIDExNkEgMTFDMTsKK0M2NUI7QzY1QjsxMTBCIDExNkEgMTFDMjtDNjVCOzExMEIgMTE2QSAxMUMyOworQzY1QztDNjVDOzExMEIgMTE2QjtDNjVDOzExMEIgMTE2QjsKK0M2NUQ7QzY1RDsxMTBCIDExNkIgMTFBODtDNjVEOzExMEIgMTE2QiAxMUE4OworQzY1RTtDNjVFOzExMEIgMTE2QiAxMUE5O0M2NUU7MTEwQiAxMTZCIDExQTk7CitDNjVGO0M2NUY7MTEwQiAxMTZCIDExQUE7QzY1RjsxMTBCIDExNkIgMTFBQTsKK0M2NjA7QzY2MDsxMTBCIDExNkIgMTFBQjtDNjYwOzExMEIgMTE2QiAxMUFCOworQzY2MTtDNjYxOzExMEIgMTE2QiAxMUFDO0M2NjE7MTEwQiAxMTZCIDExQUM7CitDNjYyO0M2NjI7MTEwQiAxMTZCIDExQUQ7QzY2MjsxMTBCIDExNkIgMTFBRDsKK0M2NjM7QzY2MzsxMTBCIDExNkIgMTFBRTtDNjYzOzExMEIgMTE2QiAxMUFFOworQzY2NDtDNjY0OzExMEIgMTE2QiAxMUFGO0M2NjQ7MTEwQiAxMTZCIDExQUY7CitDNjY1O0M2NjU7MTEwQiAxMTZCIDExQjA7QzY2NTsxMTBCIDExNkIgMTFCMDsKK0M2NjY7QzY2NjsxMTBCIDExNkIgMTFCMTtDNjY2OzExMEIgMTE2QiAxMUIxOworQzY2NztDNjY3OzExMEIgMTE2QiAxMUIyO0M2Njc7MTEwQiAxMTZCIDExQjI7CitDNjY4O0M2Njg7MTEwQiAxMTZCIDExQjM7QzY2ODsxMTBCIDExNkIgMTFCMzsKK0M2Njk7QzY2OTsxMTBCIDExNkIgMTFCNDtDNjY5OzExMEIgMTE2QiAxMUI0OworQzY2QTtDNjZBOzExMEIgMTE2QiAxMUI1O0M2NkE7MTEwQiAxMTZCIDExQjU7CitDNjZCO0M2NkI7MTEwQiAxMTZCIDExQjY7QzY2QjsxMTBCIDExNkIgMTFCNjsKK0M2NkM7QzY2QzsxMTBCIDExNkIgMTFCNztDNjZDOzExMEIgMTE2QiAxMUI3OworQzY2RDtDNjZEOzExMEIgMTE2QiAxMUI4O0M2NkQ7MTEwQiAxMTZCIDExQjg7CitDNjZFO0M2NkU7MTEwQiAxMTZCIDExQjk7QzY2RTsxMTBCIDExNkIgMTFCOTsKK0M2NkY7QzY2RjsxMTBCIDExNkIgMTFCQTtDNjZGOzExMEIgMTE2QiAxMUJBOworQzY3MDtDNjcwOzExMEIgMTE2QiAxMUJCO0M2NzA7MTEwQiAxMTZCIDExQkI7CitDNjcxO0M2NzE7MTEwQiAxMTZCIDExQkM7QzY3MTsxMTBCIDExNkIgMTFCQzsKK0M2NzI7QzY3MjsxMTBCIDExNkIgMTFCRDtDNjcyOzExMEIgMTE2QiAxMUJEOworQzY3MztDNjczOzExMEIgMTE2QiAxMUJFO0M2NzM7MTEwQiAxMTZCIDExQkU7CitDNjc0O0M2NzQ7MTEwQiAxMTZCIDExQkY7QzY3NDsxMTBCIDExNkIgMTFCRjsKK0M2NzU7QzY3NTsxMTBCIDExNkIgMTFDMDtDNjc1OzExMEIgMTE2QiAxMUMwOworQzY3NjtDNjc2OzExMEIgMTE2QiAxMUMxO0M2NzY7MTEwQiAxMTZCIDExQzE7CitDNjc3O0M2Nzc7MTEwQiAxMTZCIDExQzI7QzY3NzsxMTBCIDExNkIgMTFDMjsKK0M2Nzg7QzY3ODsxMTBCIDExNkM7QzY3ODsxMTBCIDExNkM7CitDNjc5O0M2Nzk7MTEwQiAxMTZDIDExQTg7QzY3OTsxMTBCIDExNkMgMTFBODsKK0M2N0E7QzY3QTsxMTBCIDExNkMgMTFBOTtDNjdBOzExMEIgMTE2QyAxMUE5OworQzY3QjtDNjdCOzExMEIgMTE2QyAxMUFBO0M2N0I7MTEwQiAxMTZDIDExQUE7CitDNjdDO0M2N0M7MTEwQiAxMTZDIDExQUI7QzY3QzsxMTBCIDExNkMgMTFBQjsKK0M2N0Q7QzY3RDsxMTBCIDExNkMgMTFBQztDNjdEOzExMEIgMTE2QyAxMUFDOworQzY3RTtDNjdFOzExMEIgMTE2QyAxMUFEO0M2N0U7MTEwQiAxMTZDIDExQUQ7CitDNjdGO0M2N0Y7MTEwQiAxMTZDIDExQUU7QzY3RjsxMTBCIDExNkMgMTFBRTsKK0M2ODA7QzY4MDsxMTBCIDExNkMgMTFBRjtDNjgwOzExMEIgMTE2QyAxMUFGOworQzY4MTtDNjgxOzExMEIgMTE2QyAxMUIwO0M2ODE7MTEwQiAxMTZDIDExQjA7CitDNjgyO0M2ODI7MTEwQiAxMTZDIDExQjE7QzY4MjsxMTBCIDExNkMgMTFCMTsKK0M2ODM7QzY4MzsxMTBCIDExNkMgMTFCMjtDNjgzOzExMEIgMTE2QyAxMUIyOworQzY4NDtDNjg0OzExMEIgMTE2QyAxMUIzO0M2ODQ7MTEwQiAxMTZDIDExQjM7CitDNjg1O0M2ODU7MTEwQiAxMTZDIDExQjQ7QzY4NTsxMTBCIDExNkMgMTFCNDsKK0M2ODY7QzY4NjsxMTBCIDExNkMgMTFCNTtDNjg2OzExMEIgMTE2QyAxMUI1OworQzY4NztDNjg3OzExMEIgMTE2QyAxMUI2O0M2ODc7MTEwQiAxMTZDIDExQjY7CitDNjg4O0M2ODg7MTEwQiAxMTZDIDExQjc7QzY4ODsxMTBCIDExNkMgMTFCNzsKK0M2ODk7QzY4OTsxMTBCIDExNkMgMTFCODtDNjg5OzExMEIgMTE2QyAxMUI4OworQzY4QTtDNjhBOzExMEIgMTE2QyAxMUI5O0M2OEE7MTEwQiAxMTZDIDExQjk7CitDNjhCO0M2OEI7MTEwQiAxMTZDIDExQkE7QzY4QjsxMTBCIDExNkMgMTFCQTsKK0M2OEM7QzY4QzsxMTBCIDExNkMgMTFCQjtDNjhDOzExMEIgMTE2QyAxMUJCOworQzY4RDtDNjhEOzExMEIgMTE2QyAxMUJDO0M2OEQ7MTEwQiAxMTZDIDExQkM7CitDNjhFO0M2OEU7MTEwQiAxMTZDIDExQkQ7QzY4RTsxMTBCIDExNkMgMTFCRDsKK0M2OEY7QzY4RjsxMTBCIDExNkMgMTFCRTtDNjhGOzExMEIgMTE2QyAxMUJFOworQzY5MDtDNjkwOzExMEIgMTE2QyAxMUJGO0M2OTA7MTEwQiAxMTZDIDExQkY7CitDNjkxO0M2OTE7MTEwQiAxMTZDIDExQzA7QzY5MTsxMTBCIDExNkMgMTFDMDsKK0M2OTI7QzY5MjsxMTBCIDExNkMgMTFDMTtDNjkyOzExMEIgMTE2QyAxMUMxOworQzY5MztDNjkzOzExMEIgMTE2QyAxMUMyO0M2OTM7MTEwQiAxMTZDIDExQzI7CitDNjk0O0M2OTQ7MTEwQiAxMTZEO0M2OTQ7MTEwQiAxMTZEOworQzY5NTtDNjk1OzExMEIgMTE2RCAxMUE4O0M2OTU7MTEwQiAxMTZEIDExQTg7CitDNjk2O0M2OTY7MTEwQiAxMTZEIDExQTk7QzY5NjsxMTBCIDExNkQgMTFBOTsKK0M2OTc7QzY5NzsxMTBCIDExNkQgMTFBQTtDNjk3OzExMEIgMTE2RCAxMUFBOworQzY5ODtDNjk4OzExMEIgMTE2RCAxMUFCO0M2OTg7MTEwQiAxMTZEIDExQUI7CitDNjk5O0M2OTk7MTEwQiAxMTZEIDExQUM7QzY5OTsxMTBCIDExNkQgMTFBQzsKK0M2OUE7QzY5QTsxMTBCIDExNkQgMTFBRDtDNjlBOzExMEIgMTE2RCAxMUFEOworQzY5QjtDNjlCOzExMEIgMTE2RCAxMUFFO0M2OUI7MTEwQiAxMTZEIDExQUU7CitDNjlDO0M2OUM7MTEwQiAxMTZEIDExQUY7QzY5QzsxMTBCIDExNkQgMTFBRjsKK0M2OUQ7QzY5RDsxMTBCIDExNkQgMTFCMDtDNjlEOzExMEIgMTE2RCAxMUIwOworQzY5RTtDNjlFOzExMEIgMTE2RCAxMUIxO0M2OUU7MTEwQiAxMTZEIDExQjE7CitDNjlGO0M2OUY7MTEwQiAxMTZEIDExQjI7QzY5RjsxMTBCIDExNkQgMTFCMjsKK0M2QTA7QzZBMDsxMTBCIDExNkQgMTFCMztDNkEwOzExMEIgMTE2RCAxMUIzOworQzZBMTtDNkExOzExMEIgMTE2RCAxMUI0O0M2QTE7MTEwQiAxMTZEIDExQjQ7CitDNkEyO0M2QTI7MTEwQiAxMTZEIDExQjU7QzZBMjsxMTBCIDExNkQgMTFCNTsKK0M2QTM7QzZBMzsxMTBCIDExNkQgMTFCNjtDNkEzOzExMEIgMTE2RCAxMUI2OworQzZBNDtDNkE0OzExMEIgMTE2RCAxMUI3O0M2QTQ7MTEwQiAxMTZEIDExQjc7CitDNkE1O0M2QTU7MTEwQiAxMTZEIDExQjg7QzZBNTsxMTBCIDExNkQgMTFCODsKK0M2QTY7QzZBNjsxMTBCIDExNkQgMTFCOTtDNkE2OzExMEIgMTE2RCAxMUI5OworQzZBNztDNkE3OzExMEIgMTE2RCAxMUJBO0M2QTc7MTEwQiAxMTZEIDExQkE7CitDNkE4O0M2QTg7MTEwQiAxMTZEIDExQkI7QzZBODsxMTBCIDExNkQgMTFCQjsKK0M2QTk7QzZBOTsxMTBCIDExNkQgMTFCQztDNkE5OzExMEIgMTE2RCAxMUJDOworQzZBQTtDNkFBOzExMEIgMTE2RCAxMUJEO0M2QUE7MTEwQiAxMTZEIDExQkQ7CitDNkFCO0M2QUI7MTEwQiAxMTZEIDExQkU7QzZBQjsxMTBCIDExNkQgMTFCRTsKK0M2QUM7QzZBQzsxMTBCIDExNkQgMTFCRjtDNkFDOzExMEIgMTE2RCAxMUJGOworQzZBRDtDNkFEOzExMEIgMTE2RCAxMUMwO0M2QUQ7MTEwQiAxMTZEIDExQzA7CitDNkFFO0M2QUU7MTEwQiAxMTZEIDExQzE7QzZBRTsxMTBCIDExNkQgMTFDMTsKK0M2QUY7QzZBRjsxMTBCIDExNkQgMTFDMjtDNkFGOzExMEIgMTE2RCAxMUMyOworQzZCMDtDNkIwOzExMEIgMTE2RTtDNkIwOzExMEIgMTE2RTsKK0M2QjE7QzZCMTsxMTBCIDExNkUgMTFBODtDNkIxOzExMEIgMTE2RSAxMUE4OworQzZCMjtDNkIyOzExMEIgMTE2RSAxMUE5O0M2QjI7MTEwQiAxMTZFIDExQTk7CitDNkIzO0M2QjM7MTEwQiAxMTZFIDExQUE7QzZCMzsxMTBCIDExNkUgMTFBQTsKK0M2QjQ7QzZCNDsxMTBCIDExNkUgMTFBQjtDNkI0OzExMEIgMTE2RSAxMUFCOworQzZCNTtDNkI1OzExMEIgMTE2RSAxMUFDO0M2QjU7MTEwQiAxMTZFIDExQUM7CitDNkI2O0M2QjY7MTEwQiAxMTZFIDExQUQ7QzZCNjsxMTBCIDExNkUgMTFBRDsKK0M2Qjc7QzZCNzsxMTBCIDExNkUgMTFBRTtDNkI3OzExMEIgMTE2RSAxMUFFOworQzZCODtDNkI4OzExMEIgMTE2RSAxMUFGO0M2Qjg7MTEwQiAxMTZFIDExQUY7CitDNkI5O0M2Qjk7MTEwQiAxMTZFIDExQjA7QzZCOTsxMTBCIDExNkUgMTFCMDsKK0M2QkE7QzZCQTsxMTBCIDExNkUgMTFCMTtDNkJBOzExMEIgMTE2RSAxMUIxOworQzZCQjtDNkJCOzExMEIgMTE2RSAxMUIyO0M2QkI7MTEwQiAxMTZFIDExQjI7CitDNkJDO0M2QkM7MTEwQiAxMTZFIDExQjM7QzZCQzsxMTBCIDExNkUgMTFCMzsKK0M2QkQ7QzZCRDsxMTBCIDExNkUgMTFCNDtDNkJEOzExMEIgMTE2RSAxMUI0OworQzZCRTtDNkJFOzExMEIgMTE2RSAxMUI1O0M2QkU7MTEwQiAxMTZFIDExQjU7CitDNkJGO0M2QkY7MTEwQiAxMTZFIDExQjY7QzZCRjsxMTBCIDExNkUgMTFCNjsKK0M2QzA7QzZDMDsxMTBCIDExNkUgMTFCNztDNkMwOzExMEIgMTE2RSAxMUI3OworQzZDMTtDNkMxOzExMEIgMTE2RSAxMUI4O0M2QzE7MTEwQiAxMTZFIDExQjg7CitDNkMyO0M2QzI7MTEwQiAxMTZFIDExQjk7QzZDMjsxMTBCIDExNkUgMTFCOTsKK0M2QzM7QzZDMzsxMTBCIDExNkUgMTFCQTtDNkMzOzExMEIgMTE2RSAxMUJBOworQzZDNDtDNkM0OzExMEIgMTE2RSAxMUJCO0M2QzQ7MTEwQiAxMTZFIDExQkI7CitDNkM1O0M2QzU7MTEwQiAxMTZFIDExQkM7QzZDNTsxMTBCIDExNkUgMTFCQzsKK0M2QzY7QzZDNjsxMTBCIDExNkUgMTFCRDtDNkM2OzExMEIgMTE2RSAxMUJEOworQzZDNztDNkM3OzExMEIgMTE2RSAxMUJFO0M2Qzc7MTEwQiAxMTZFIDExQkU7CitDNkM4O0M2Qzg7MTEwQiAxMTZFIDExQkY7QzZDODsxMTBCIDExNkUgMTFCRjsKK0M2Qzk7QzZDOTsxMTBCIDExNkUgMTFDMDtDNkM5OzExMEIgMTE2RSAxMUMwOworQzZDQTtDNkNBOzExMEIgMTE2RSAxMUMxO0M2Q0E7MTEwQiAxMTZFIDExQzE7CitDNkNCO0M2Q0I7MTEwQiAxMTZFIDExQzI7QzZDQjsxMTBCIDExNkUgMTFDMjsKK0M2Q0M7QzZDQzsxMTBCIDExNkY7QzZDQzsxMTBCIDExNkY7CitDNkNEO0M2Q0Q7MTEwQiAxMTZGIDExQTg7QzZDRDsxMTBCIDExNkYgMTFBODsKK0M2Q0U7QzZDRTsxMTBCIDExNkYgMTFBOTtDNkNFOzExMEIgMTE2RiAxMUE5OworQzZDRjtDNkNGOzExMEIgMTE2RiAxMUFBO0M2Q0Y7MTEwQiAxMTZGIDExQUE7CitDNkQwO0M2RDA7MTEwQiAxMTZGIDExQUI7QzZEMDsxMTBCIDExNkYgMTFBQjsKK0M2RDE7QzZEMTsxMTBCIDExNkYgMTFBQztDNkQxOzExMEIgMTE2RiAxMUFDOworQzZEMjtDNkQyOzExMEIgMTE2RiAxMUFEO0M2RDI7MTEwQiAxMTZGIDExQUQ7CitDNkQzO0M2RDM7MTEwQiAxMTZGIDExQUU7QzZEMzsxMTBCIDExNkYgMTFBRTsKK0M2RDQ7QzZENDsxMTBCIDExNkYgMTFBRjtDNkQ0OzExMEIgMTE2RiAxMUFGOworQzZENTtDNkQ1OzExMEIgMTE2RiAxMUIwO0M2RDU7MTEwQiAxMTZGIDExQjA7CitDNkQ2O0M2RDY7MTEwQiAxMTZGIDExQjE7QzZENjsxMTBCIDExNkYgMTFCMTsKK0M2RDc7QzZENzsxMTBCIDExNkYgMTFCMjtDNkQ3OzExMEIgMTE2RiAxMUIyOworQzZEODtDNkQ4OzExMEIgMTE2RiAxMUIzO0M2RDg7MTEwQiAxMTZGIDExQjM7CitDNkQ5O0M2RDk7MTEwQiAxMTZGIDExQjQ7QzZEOTsxMTBCIDExNkYgMTFCNDsKK0M2REE7QzZEQTsxMTBCIDExNkYgMTFCNTtDNkRBOzExMEIgMTE2RiAxMUI1OworQzZEQjtDNkRCOzExMEIgMTE2RiAxMUI2O0M2REI7MTEwQiAxMTZGIDExQjY7CitDNkRDO0M2REM7MTEwQiAxMTZGIDExQjc7QzZEQzsxMTBCIDExNkYgMTFCNzsKK0M2REQ7QzZERDsxMTBCIDExNkYgMTFCODtDNkREOzExMEIgMTE2RiAxMUI4OworQzZERTtDNkRFOzExMEIgMTE2RiAxMUI5O0M2REU7MTEwQiAxMTZGIDExQjk7CitDNkRGO0M2REY7MTEwQiAxMTZGIDExQkE7QzZERjsxMTBCIDExNkYgMTFCQTsKK0M2RTA7QzZFMDsxMTBCIDExNkYgMTFCQjtDNkUwOzExMEIgMTE2RiAxMUJCOworQzZFMTtDNkUxOzExMEIgMTE2RiAxMUJDO0M2RTE7MTEwQiAxMTZGIDExQkM7CitDNkUyO0M2RTI7MTEwQiAxMTZGIDExQkQ7QzZFMjsxMTBCIDExNkYgMTFCRDsKK0M2RTM7QzZFMzsxMTBCIDExNkYgMTFCRTtDNkUzOzExMEIgMTE2RiAxMUJFOworQzZFNDtDNkU0OzExMEIgMTE2RiAxMUJGO0M2RTQ7MTEwQiAxMTZGIDExQkY7CitDNkU1O0M2RTU7MTEwQiAxMTZGIDExQzA7QzZFNTsxMTBCIDExNkYgMTFDMDsKK0M2RTY7QzZFNjsxMTBCIDExNkYgMTFDMTtDNkU2OzExMEIgMTE2RiAxMUMxOworQzZFNztDNkU3OzExMEIgMTE2RiAxMUMyO0M2RTc7MTEwQiAxMTZGIDExQzI7CitDNkU4O0M2RTg7MTEwQiAxMTcwO0M2RTg7MTEwQiAxMTcwOworQzZFOTtDNkU5OzExMEIgMTE3MCAxMUE4O0M2RTk7MTEwQiAxMTcwIDExQTg7CitDNkVBO0M2RUE7MTEwQiAxMTcwIDExQTk7QzZFQTsxMTBCIDExNzAgMTFBOTsKK0M2RUI7QzZFQjsxMTBCIDExNzAgMTFBQTtDNkVCOzExMEIgMTE3MCAxMUFBOworQzZFQztDNkVDOzExMEIgMTE3MCAxMUFCO0M2RUM7MTEwQiAxMTcwIDExQUI7CitDNkVEO0M2RUQ7MTEwQiAxMTcwIDExQUM7QzZFRDsxMTBCIDExNzAgMTFBQzsKK0M2RUU7QzZFRTsxMTBCIDExNzAgMTFBRDtDNkVFOzExMEIgMTE3MCAxMUFEOworQzZFRjtDNkVGOzExMEIgMTE3MCAxMUFFO0M2RUY7MTEwQiAxMTcwIDExQUU7CitDNkYwO0M2RjA7MTEwQiAxMTcwIDExQUY7QzZGMDsxMTBCIDExNzAgMTFBRjsKK0M2RjE7QzZGMTsxMTBCIDExNzAgMTFCMDtDNkYxOzExMEIgMTE3MCAxMUIwOworQzZGMjtDNkYyOzExMEIgMTE3MCAxMUIxO0M2RjI7MTEwQiAxMTcwIDExQjE7CitDNkYzO0M2RjM7MTEwQiAxMTcwIDExQjI7QzZGMzsxMTBCIDExNzAgMTFCMjsKK0M2RjQ7QzZGNDsxMTBCIDExNzAgMTFCMztDNkY0OzExMEIgMTE3MCAxMUIzOworQzZGNTtDNkY1OzExMEIgMTE3MCAxMUI0O0M2RjU7MTEwQiAxMTcwIDExQjQ7CitDNkY2O0M2RjY7MTEwQiAxMTcwIDExQjU7QzZGNjsxMTBCIDExNzAgMTFCNTsKK0M2Rjc7QzZGNzsxMTBCIDExNzAgMTFCNjtDNkY3OzExMEIgMTE3MCAxMUI2OworQzZGODtDNkY4OzExMEIgMTE3MCAxMUI3O0M2Rjg7MTEwQiAxMTcwIDExQjc7CitDNkY5O0M2Rjk7MTEwQiAxMTcwIDExQjg7QzZGOTsxMTBCIDExNzAgMTFCODsKK0M2RkE7QzZGQTsxMTBCIDExNzAgMTFCOTtDNkZBOzExMEIgMTE3MCAxMUI5OworQzZGQjtDNkZCOzExMEIgMTE3MCAxMUJBO0M2RkI7MTEwQiAxMTcwIDExQkE7CitDNkZDO0M2RkM7MTEwQiAxMTcwIDExQkI7QzZGQzsxMTBCIDExNzAgMTFCQjsKK0M2RkQ7QzZGRDsxMTBCIDExNzAgMTFCQztDNkZEOzExMEIgMTE3MCAxMUJDOworQzZGRTtDNkZFOzExMEIgMTE3MCAxMUJEO0M2RkU7MTEwQiAxMTcwIDExQkQ7CitDNkZGO0M2RkY7MTEwQiAxMTcwIDExQkU7QzZGRjsxMTBCIDExNzAgMTFCRTsKK0M3MDA7QzcwMDsxMTBCIDExNzAgMTFCRjtDNzAwOzExMEIgMTE3MCAxMUJGOworQzcwMTtDNzAxOzExMEIgMTE3MCAxMUMwO0M3MDE7MTEwQiAxMTcwIDExQzA7CitDNzAyO0M3MDI7MTEwQiAxMTcwIDExQzE7QzcwMjsxMTBCIDExNzAgMTFDMTsKK0M3MDM7QzcwMzsxMTBCIDExNzAgMTFDMjtDNzAzOzExMEIgMTE3MCAxMUMyOworQzcwNDtDNzA0OzExMEIgMTE3MTtDNzA0OzExMEIgMTE3MTsKK0M3MDU7QzcwNTsxMTBCIDExNzEgMTFBODtDNzA1OzExMEIgMTE3MSAxMUE4OworQzcwNjtDNzA2OzExMEIgMTE3MSAxMUE5O0M3MDY7MTEwQiAxMTcxIDExQTk7CitDNzA3O0M3MDc7MTEwQiAxMTcxIDExQUE7QzcwNzsxMTBCIDExNzEgMTFBQTsKK0M3MDg7QzcwODsxMTBCIDExNzEgMTFBQjtDNzA4OzExMEIgMTE3MSAxMUFCOworQzcwOTtDNzA5OzExMEIgMTE3MSAxMUFDO0M3MDk7MTEwQiAxMTcxIDExQUM7CitDNzBBO0M3MEE7MTEwQiAxMTcxIDExQUQ7QzcwQTsxMTBCIDExNzEgMTFBRDsKK0M3MEI7QzcwQjsxMTBCIDExNzEgMTFBRTtDNzBCOzExMEIgMTE3MSAxMUFFOworQzcwQztDNzBDOzExMEIgMTE3MSAxMUFGO0M3MEM7MTEwQiAxMTcxIDExQUY7CitDNzBEO0M3MEQ7MTEwQiAxMTcxIDExQjA7QzcwRDsxMTBCIDExNzEgMTFCMDsKK0M3MEU7QzcwRTsxMTBCIDExNzEgMTFCMTtDNzBFOzExMEIgMTE3MSAxMUIxOworQzcwRjtDNzBGOzExMEIgMTE3MSAxMUIyO0M3MEY7MTEwQiAxMTcxIDExQjI7CitDNzEwO0M3MTA7MTEwQiAxMTcxIDExQjM7QzcxMDsxMTBCIDExNzEgMTFCMzsKK0M3MTE7QzcxMTsxMTBCIDExNzEgMTFCNDtDNzExOzExMEIgMTE3MSAxMUI0OworQzcxMjtDNzEyOzExMEIgMTE3MSAxMUI1O0M3MTI7MTEwQiAxMTcxIDExQjU7CitDNzEzO0M3MTM7MTEwQiAxMTcxIDExQjY7QzcxMzsxMTBCIDExNzEgMTFCNjsKK0M3MTQ7QzcxNDsxMTBCIDExNzEgMTFCNztDNzE0OzExMEIgMTE3MSAxMUI3OworQzcxNTtDNzE1OzExMEIgMTE3MSAxMUI4O0M3MTU7MTEwQiAxMTcxIDExQjg7CitDNzE2O0M3MTY7MTEwQiAxMTcxIDExQjk7QzcxNjsxMTBCIDExNzEgMTFCOTsKK0M3MTc7QzcxNzsxMTBCIDExNzEgMTFCQTtDNzE3OzExMEIgMTE3MSAxMUJBOworQzcxODtDNzE4OzExMEIgMTE3MSAxMUJCO0M3MTg7MTEwQiAxMTcxIDExQkI7CitDNzE5O0M3MTk7MTEwQiAxMTcxIDExQkM7QzcxOTsxMTBCIDExNzEgMTFCQzsKK0M3MUE7QzcxQTsxMTBCIDExNzEgMTFCRDtDNzFBOzExMEIgMTE3MSAxMUJEOworQzcxQjtDNzFCOzExMEIgMTE3MSAxMUJFO0M3MUI7MTEwQiAxMTcxIDExQkU7CitDNzFDO0M3MUM7MTEwQiAxMTcxIDExQkY7QzcxQzsxMTBCIDExNzEgMTFCRjsKK0M3MUQ7QzcxRDsxMTBCIDExNzEgMTFDMDtDNzFEOzExMEIgMTE3MSAxMUMwOworQzcxRTtDNzFFOzExMEIgMTE3MSAxMUMxO0M3MUU7MTEwQiAxMTcxIDExQzE7CitDNzFGO0M3MUY7MTEwQiAxMTcxIDExQzI7QzcxRjsxMTBCIDExNzEgMTFDMjsKK0M3MjA7QzcyMDsxMTBCIDExNzI7QzcyMDsxMTBCIDExNzI7CitDNzIxO0M3MjE7MTEwQiAxMTcyIDExQTg7QzcyMTsxMTBCIDExNzIgMTFBODsKK0M3MjI7QzcyMjsxMTBCIDExNzIgMTFBOTtDNzIyOzExMEIgMTE3MiAxMUE5OworQzcyMztDNzIzOzExMEIgMTE3MiAxMUFBO0M3MjM7MTEwQiAxMTcyIDExQUE7CitDNzI0O0M3MjQ7MTEwQiAxMTcyIDExQUI7QzcyNDsxMTBCIDExNzIgMTFBQjsKK0M3MjU7QzcyNTsxMTBCIDExNzIgMTFBQztDNzI1OzExMEIgMTE3MiAxMUFDOworQzcyNjtDNzI2OzExMEIgMTE3MiAxMUFEO0M3MjY7MTEwQiAxMTcyIDExQUQ7CitDNzI3O0M3Mjc7MTEwQiAxMTcyIDExQUU7QzcyNzsxMTBCIDExNzIgMTFBRTsKK0M3Mjg7QzcyODsxMTBCIDExNzIgMTFBRjtDNzI4OzExMEIgMTE3MiAxMUFGOworQzcyOTtDNzI5OzExMEIgMTE3MiAxMUIwO0M3Mjk7MTEwQiAxMTcyIDExQjA7CitDNzJBO0M3MkE7MTEwQiAxMTcyIDExQjE7QzcyQTsxMTBCIDExNzIgMTFCMTsKK0M3MkI7QzcyQjsxMTBCIDExNzIgMTFCMjtDNzJCOzExMEIgMTE3MiAxMUIyOworQzcyQztDNzJDOzExMEIgMTE3MiAxMUIzO0M3MkM7MTEwQiAxMTcyIDExQjM7CitDNzJEO0M3MkQ7MTEwQiAxMTcyIDExQjQ7QzcyRDsxMTBCIDExNzIgMTFCNDsKK0M3MkU7QzcyRTsxMTBCIDExNzIgMTFCNTtDNzJFOzExMEIgMTE3MiAxMUI1OworQzcyRjtDNzJGOzExMEIgMTE3MiAxMUI2O0M3MkY7MTEwQiAxMTcyIDExQjY7CitDNzMwO0M3MzA7MTEwQiAxMTcyIDExQjc7QzczMDsxMTBCIDExNzIgMTFCNzsKK0M3MzE7QzczMTsxMTBCIDExNzIgMTFCODtDNzMxOzExMEIgMTE3MiAxMUI4OworQzczMjtDNzMyOzExMEIgMTE3MiAxMUI5O0M3MzI7MTEwQiAxMTcyIDExQjk7CitDNzMzO0M3MzM7MTEwQiAxMTcyIDExQkE7QzczMzsxMTBCIDExNzIgMTFCQTsKK0M3MzQ7QzczNDsxMTBCIDExNzIgMTFCQjtDNzM0OzExMEIgMTE3MiAxMUJCOworQzczNTtDNzM1OzExMEIgMTE3MiAxMUJDO0M3MzU7MTEwQiAxMTcyIDExQkM7CitDNzM2O0M3MzY7MTEwQiAxMTcyIDExQkQ7QzczNjsxMTBCIDExNzIgMTFCRDsKK0M3Mzc7QzczNzsxMTBCIDExNzIgMTFCRTtDNzM3OzExMEIgMTE3MiAxMUJFOworQzczODtDNzM4OzExMEIgMTE3MiAxMUJGO0M3Mzg7MTEwQiAxMTcyIDExQkY7CitDNzM5O0M3Mzk7MTEwQiAxMTcyIDExQzA7QzczOTsxMTBCIDExNzIgMTFDMDsKK0M3M0E7QzczQTsxMTBCIDExNzIgMTFDMTtDNzNBOzExMEIgMTE3MiAxMUMxOworQzczQjtDNzNCOzExMEIgMTE3MiAxMUMyO0M3M0I7MTEwQiAxMTcyIDExQzI7CitDNzNDO0M3M0M7MTEwQiAxMTczO0M3M0M7MTEwQiAxMTczOworQzczRDtDNzNEOzExMEIgMTE3MyAxMUE4O0M3M0Q7MTEwQiAxMTczIDExQTg7CitDNzNFO0M3M0U7MTEwQiAxMTczIDExQTk7QzczRTsxMTBCIDExNzMgMTFBOTsKK0M3M0Y7QzczRjsxMTBCIDExNzMgMTFBQTtDNzNGOzExMEIgMTE3MyAxMUFBOworQzc0MDtDNzQwOzExMEIgMTE3MyAxMUFCO0M3NDA7MTEwQiAxMTczIDExQUI7CitDNzQxO0M3NDE7MTEwQiAxMTczIDExQUM7Qzc0MTsxMTBCIDExNzMgMTFBQzsKK0M3NDI7Qzc0MjsxMTBCIDExNzMgMTFBRDtDNzQyOzExMEIgMTE3MyAxMUFEOworQzc0MztDNzQzOzExMEIgMTE3MyAxMUFFO0M3NDM7MTEwQiAxMTczIDExQUU7CitDNzQ0O0M3NDQ7MTEwQiAxMTczIDExQUY7Qzc0NDsxMTBCIDExNzMgMTFBRjsKK0M3NDU7Qzc0NTsxMTBCIDExNzMgMTFCMDtDNzQ1OzExMEIgMTE3MyAxMUIwOworQzc0NjtDNzQ2OzExMEIgMTE3MyAxMUIxO0M3NDY7MTEwQiAxMTczIDExQjE7CitDNzQ3O0M3NDc7MTEwQiAxMTczIDExQjI7Qzc0NzsxMTBCIDExNzMgMTFCMjsKK0M3NDg7Qzc0ODsxMTBCIDExNzMgMTFCMztDNzQ4OzExMEIgMTE3MyAxMUIzOworQzc0OTtDNzQ5OzExMEIgMTE3MyAxMUI0O0M3NDk7MTEwQiAxMTczIDExQjQ7CitDNzRBO0M3NEE7MTEwQiAxMTczIDExQjU7Qzc0QTsxMTBCIDExNzMgMTFCNTsKK0M3NEI7Qzc0QjsxMTBCIDExNzMgMTFCNjtDNzRCOzExMEIgMTE3MyAxMUI2OworQzc0QztDNzRDOzExMEIgMTE3MyAxMUI3O0M3NEM7MTEwQiAxMTczIDExQjc7CitDNzREO0M3NEQ7MTEwQiAxMTczIDExQjg7Qzc0RDsxMTBCIDExNzMgMTFCODsKK0M3NEU7Qzc0RTsxMTBCIDExNzMgMTFCOTtDNzRFOzExMEIgMTE3MyAxMUI5OworQzc0RjtDNzRGOzExMEIgMTE3MyAxMUJBO0M3NEY7MTEwQiAxMTczIDExQkE7CitDNzUwO0M3NTA7MTEwQiAxMTczIDExQkI7Qzc1MDsxMTBCIDExNzMgMTFCQjsKK0M3NTE7Qzc1MTsxMTBCIDExNzMgMTFCQztDNzUxOzExMEIgMTE3MyAxMUJDOworQzc1MjtDNzUyOzExMEIgMTE3MyAxMUJEO0M3NTI7MTEwQiAxMTczIDExQkQ7CitDNzUzO0M3NTM7MTEwQiAxMTczIDExQkU7Qzc1MzsxMTBCIDExNzMgMTFCRTsKK0M3NTQ7Qzc1NDsxMTBCIDExNzMgMTFCRjtDNzU0OzExMEIgMTE3MyAxMUJGOworQzc1NTtDNzU1OzExMEIgMTE3MyAxMUMwO0M3NTU7MTEwQiAxMTczIDExQzA7CitDNzU2O0M3NTY7MTEwQiAxMTczIDExQzE7Qzc1NjsxMTBCIDExNzMgMTFDMTsKK0M3NTc7Qzc1NzsxMTBCIDExNzMgMTFDMjtDNzU3OzExMEIgMTE3MyAxMUMyOworQzc1ODtDNzU4OzExMEIgMTE3NDtDNzU4OzExMEIgMTE3NDsKK0M3NTk7Qzc1OTsxMTBCIDExNzQgMTFBODtDNzU5OzExMEIgMTE3NCAxMUE4OworQzc1QTtDNzVBOzExMEIgMTE3NCAxMUE5O0M3NUE7MTEwQiAxMTc0IDExQTk7CitDNzVCO0M3NUI7MTEwQiAxMTc0IDExQUE7Qzc1QjsxMTBCIDExNzQgMTFBQTsKK0M3NUM7Qzc1QzsxMTBCIDExNzQgMTFBQjtDNzVDOzExMEIgMTE3NCAxMUFCOworQzc1RDtDNzVEOzExMEIgMTE3NCAxMUFDO0M3NUQ7MTEwQiAxMTc0IDExQUM7CitDNzVFO0M3NUU7MTEwQiAxMTc0IDExQUQ7Qzc1RTsxMTBCIDExNzQgMTFBRDsKK0M3NUY7Qzc1RjsxMTBCIDExNzQgMTFBRTtDNzVGOzExMEIgMTE3NCAxMUFFOworQzc2MDtDNzYwOzExMEIgMTE3NCAxMUFGO0M3NjA7MTEwQiAxMTc0IDExQUY7CitDNzYxO0M3NjE7MTEwQiAxMTc0IDExQjA7Qzc2MTsxMTBCIDExNzQgMTFCMDsKK0M3NjI7Qzc2MjsxMTBCIDExNzQgMTFCMTtDNzYyOzExMEIgMTE3NCAxMUIxOworQzc2MztDNzYzOzExMEIgMTE3NCAxMUIyO0M3NjM7MTEwQiAxMTc0IDExQjI7CitDNzY0O0M3NjQ7MTEwQiAxMTc0IDExQjM7Qzc2NDsxMTBCIDExNzQgMTFCMzsKK0M3NjU7Qzc2NTsxMTBCIDExNzQgMTFCNDtDNzY1OzExMEIgMTE3NCAxMUI0OworQzc2NjtDNzY2OzExMEIgMTE3NCAxMUI1O0M3NjY7MTEwQiAxMTc0IDExQjU7CitDNzY3O0M3Njc7MTEwQiAxMTc0IDExQjY7Qzc2NzsxMTBCIDExNzQgMTFCNjsKK0M3Njg7Qzc2ODsxMTBCIDExNzQgMTFCNztDNzY4OzExMEIgMTE3NCAxMUI3OworQzc2OTtDNzY5OzExMEIgMTE3NCAxMUI4O0M3Njk7MTEwQiAxMTc0IDExQjg7CitDNzZBO0M3NkE7MTEwQiAxMTc0IDExQjk7Qzc2QTsxMTBCIDExNzQgMTFCOTsKK0M3NkI7Qzc2QjsxMTBCIDExNzQgMTFCQTtDNzZCOzExMEIgMTE3NCAxMUJBOworQzc2QztDNzZDOzExMEIgMTE3NCAxMUJCO0M3NkM7MTEwQiAxMTc0IDExQkI7CitDNzZEO0M3NkQ7MTEwQiAxMTc0IDExQkM7Qzc2RDsxMTBCIDExNzQgMTFCQzsKK0M3NkU7Qzc2RTsxMTBCIDExNzQgMTFCRDtDNzZFOzExMEIgMTE3NCAxMUJEOworQzc2RjtDNzZGOzExMEIgMTE3NCAxMUJFO0M3NkY7MTEwQiAxMTc0IDExQkU7CitDNzcwO0M3NzA7MTEwQiAxMTc0IDExQkY7Qzc3MDsxMTBCIDExNzQgMTFCRjsKK0M3NzE7Qzc3MTsxMTBCIDExNzQgMTFDMDtDNzcxOzExMEIgMTE3NCAxMUMwOworQzc3MjtDNzcyOzExMEIgMTE3NCAxMUMxO0M3NzI7MTEwQiAxMTc0IDExQzE7CitDNzczO0M3NzM7MTEwQiAxMTc0IDExQzI7Qzc3MzsxMTBCIDExNzQgMTFDMjsKK0M3NzQ7Qzc3NDsxMTBCIDExNzU7Qzc3NDsxMTBCIDExNzU7CitDNzc1O0M3NzU7MTEwQiAxMTc1IDExQTg7Qzc3NTsxMTBCIDExNzUgMTFBODsKK0M3NzY7Qzc3NjsxMTBCIDExNzUgMTFBOTtDNzc2OzExMEIgMTE3NSAxMUE5OworQzc3NztDNzc3OzExMEIgMTE3NSAxMUFBO0M3Nzc7MTEwQiAxMTc1IDExQUE7CitDNzc4O0M3Nzg7MTEwQiAxMTc1IDExQUI7Qzc3ODsxMTBCIDExNzUgMTFBQjsKK0M3Nzk7Qzc3OTsxMTBCIDExNzUgMTFBQztDNzc5OzExMEIgMTE3NSAxMUFDOworQzc3QTtDNzdBOzExMEIgMTE3NSAxMUFEO0M3N0E7MTEwQiAxMTc1IDExQUQ7CitDNzdCO0M3N0I7MTEwQiAxMTc1IDExQUU7Qzc3QjsxMTBCIDExNzUgMTFBRTsKK0M3N0M7Qzc3QzsxMTBCIDExNzUgMTFBRjtDNzdDOzExMEIgMTE3NSAxMUFGOworQzc3RDtDNzdEOzExMEIgMTE3NSAxMUIwO0M3N0Q7MTEwQiAxMTc1IDExQjA7CitDNzdFO0M3N0U7MTEwQiAxMTc1IDExQjE7Qzc3RTsxMTBCIDExNzUgMTFCMTsKK0M3N0Y7Qzc3RjsxMTBCIDExNzUgMTFCMjtDNzdGOzExMEIgMTE3NSAxMUIyOworQzc4MDtDNzgwOzExMEIgMTE3NSAxMUIzO0M3ODA7MTEwQiAxMTc1IDExQjM7CitDNzgxO0M3ODE7MTEwQiAxMTc1IDExQjQ7Qzc4MTsxMTBCIDExNzUgMTFCNDsKK0M3ODI7Qzc4MjsxMTBCIDExNzUgMTFCNTtDNzgyOzExMEIgMTE3NSAxMUI1OworQzc4MztDNzgzOzExMEIgMTE3NSAxMUI2O0M3ODM7MTEwQiAxMTc1IDExQjY7CitDNzg0O0M3ODQ7MTEwQiAxMTc1IDExQjc7Qzc4NDsxMTBCIDExNzUgMTFCNzsKK0M3ODU7Qzc4NTsxMTBCIDExNzUgMTFCODtDNzg1OzExMEIgMTE3NSAxMUI4OworQzc4NjtDNzg2OzExMEIgMTE3NSAxMUI5O0M3ODY7MTEwQiAxMTc1IDExQjk7CitDNzg3O0M3ODc7MTEwQiAxMTc1IDExQkE7Qzc4NzsxMTBCIDExNzUgMTFCQTsKK0M3ODg7Qzc4ODsxMTBCIDExNzUgMTFCQjtDNzg4OzExMEIgMTE3NSAxMUJCOworQzc4OTtDNzg5OzExMEIgMTE3NSAxMUJDO0M3ODk7MTEwQiAxMTc1IDExQkM7CitDNzhBO0M3OEE7MTEwQiAxMTc1IDExQkQ7Qzc4QTsxMTBCIDExNzUgMTFCRDsKK0M3OEI7Qzc4QjsxMTBCIDExNzUgMTFCRTtDNzhCOzExMEIgMTE3NSAxMUJFOworQzc4QztDNzhDOzExMEIgMTE3NSAxMUJGO0M3OEM7MTEwQiAxMTc1IDExQkY7CitDNzhEO0M3OEQ7MTEwQiAxMTc1IDExQzA7Qzc4RDsxMTBCIDExNzUgMTFDMDsKK0M3OEU7Qzc4RTsxMTBCIDExNzUgMTFDMTtDNzhFOzExMEIgMTE3NSAxMUMxOworQzc4RjtDNzhGOzExMEIgMTE3NSAxMUMyO0M3OEY7MTEwQiAxMTc1IDExQzI7CitDNzkwO0M3OTA7MTEwQyAxMTYxO0M3OTA7MTEwQyAxMTYxOworQzc5MTtDNzkxOzExMEMgMTE2MSAxMUE4O0M3OTE7MTEwQyAxMTYxIDExQTg7CitDNzkyO0M3OTI7MTEwQyAxMTYxIDExQTk7Qzc5MjsxMTBDIDExNjEgMTFBOTsKK0M3OTM7Qzc5MzsxMTBDIDExNjEgMTFBQTtDNzkzOzExMEMgMTE2MSAxMUFBOworQzc5NDtDNzk0OzExMEMgMTE2MSAxMUFCO0M3OTQ7MTEwQyAxMTYxIDExQUI7CitDNzk1O0M3OTU7MTEwQyAxMTYxIDExQUM7Qzc5NTsxMTBDIDExNjEgMTFBQzsKK0M3OTY7Qzc5NjsxMTBDIDExNjEgMTFBRDtDNzk2OzExMEMgMTE2MSAxMUFEOworQzc5NztDNzk3OzExMEMgMTE2MSAxMUFFO0M3OTc7MTEwQyAxMTYxIDExQUU7CitDNzk4O0M3OTg7MTEwQyAxMTYxIDExQUY7Qzc5ODsxMTBDIDExNjEgMTFBRjsKK0M3OTk7Qzc5OTsxMTBDIDExNjEgMTFCMDtDNzk5OzExMEMgMTE2MSAxMUIwOworQzc5QTtDNzlBOzExMEMgMTE2MSAxMUIxO0M3OUE7MTEwQyAxMTYxIDExQjE7CitDNzlCO0M3OUI7MTEwQyAxMTYxIDExQjI7Qzc5QjsxMTBDIDExNjEgMTFCMjsKK0M3OUM7Qzc5QzsxMTBDIDExNjEgMTFCMztDNzlDOzExMEMgMTE2MSAxMUIzOworQzc5RDtDNzlEOzExMEMgMTE2MSAxMUI0O0M3OUQ7MTEwQyAxMTYxIDExQjQ7CitDNzlFO0M3OUU7MTEwQyAxMTYxIDExQjU7Qzc5RTsxMTBDIDExNjEgMTFCNTsKK0M3OUY7Qzc5RjsxMTBDIDExNjEgMTFCNjtDNzlGOzExMEMgMTE2MSAxMUI2OworQzdBMDtDN0EwOzExMEMgMTE2MSAxMUI3O0M3QTA7MTEwQyAxMTYxIDExQjc7CitDN0ExO0M3QTE7MTEwQyAxMTYxIDExQjg7QzdBMTsxMTBDIDExNjEgMTFCODsKK0M3QTI7QzdBMjsxMTBDIDExNjEgMTFCOTtDN0EyOzExMEMgMTE2MSAxMUI5OworQzdBMztDN0EzOzExMEMgMTE2MSAxMUJBO0M3QTM7MTEwQyAxMTYxIDExQkE7CitDN0E0O0M3QTQ7MTEwQyAxMTYxIDExQkI7QzdBNDsxMTBDIDExNjEgMTFCQjsKK0M3QTU7QzdBNTsxMTBDIDExNjEgMTFCQztDN0E1OzExMEMgMTE2MSAxMUJDOworQzdBNjtDN0E2OzExMEMgMTE2MSAxMUJEO0M3QTY7MTEwQyAxMTYxIDExQkQ7CitDN0E3O0M3QTc7MTEwQyAxMTYxIDExQkU7QzdBNzsxMTBDIDExNjEgMTFCRTsKK0M3QTg7QzdBODsxMTBDIDExNjEgMTFCRjtDN0E4OzExMEMgMTE2MSAxMUJGOworQzdBOTtDN0E5OzExMEMgMTE2MSAxMUMwO0M3QTk7MTEwQyAxMTYxIDExQzA7CitDN0FBO0M3QUE7MTEwQyAxMTYxIDExQzE7QzdBQTsxMTBDIDExNjEgMTFDMTsKK0M3QUI7QzdBQjsxMTBDIDExNjEgMTFDMjtDN0FCOzExMEMgMTE2MSAxMUMyOworQzdBQztDN0FDOzExMEMgMTE2MjtDN0FDOzExMEMgMTE2MjsKK0M3QUQ7QzdBRDsxMTBDIDExNjIgMTFBODtDN0FEOzExMEMgMTE2MiAxMUE4OworQzdBRTtDN0FFOzExMEMgMTE2MiAxMUE5O0M3QUU7MTEwQyAxMTYyIDExQTk7CitDN0FGO0M3QUY7MTEwQyAxMTYyIDExQUE7QzdBRjsxMTBDIDExNjIgMTFBQTsKK0M3QjA7QzdCMDsxMTBDIDExNjIgMTFBQjtDN0IwOzExMEMgMTE2MiAxMUFCOworQzdCMTtDN0IxOzExMEMgMTE2MiAxMUFDO0M3QjE7MTEwQyAxMTYyIDExQUM7CitDN0IyO0M3QjI7MTEwQyAxMTYyIDExQUQ7QzdCMjsxMTBDIDExNjIgMTFBRDsKK0M3QjM7QzdCMzsxMTBDIDExNjIgMTFBRTtDN0IzOzExMEMgMTE2MiAxMUFFOworQzdCNDtDN0I0OzExMEMgMTE2MiAxMUFGO0M3QjQ7MTEwQyAxMTYyIDExQUY7CitDN0I1O0M3QjU7MTEwQyAxMTYyIDExQjA7QzdCNTsxMTBDIDExNjIgMTFCMDsKK0M3QjY7QzdCNjsxMTBDIDExNjIgMTFCMTtDN0I2OzExMEMgMTE2MiAxMUIxOworQzdCNztDN0I3OzExMEMgMTE2MiAxMUIyO0M3Qjc7MTEwQyAxMTYyIDExQjI7CitDN0I4O0M3Qjg7MTEwQyAxMTYyIDExQjM7QzdCODsxMTBDIDExNjIgMTFCMzsKK0M3Qjk7QzdCOTsxMTBDIDExNjIgMTFCNDtDN0I5OzExMEMgMTE2MiAxMUI0OworQzdCQTtDN0JBOzExMEMgMTE2MiAxMUI1O0M3QkE7MTEwQyAxMTYyIDExQjU7CitDN0JCO0M3QkI7MTEwQyAxMTYyIDExQjY7QzdCQjsxMTBDIDExNjIgMTFCNjsKK0M3QkM7QzdCQzsxMTBDIDExNjIgMTFCNztDN0JDOzExMEMgMTE2MiAxMUI3OworQzdCRDtDN0JEOzExMEMgMTE2MiAxMUI4O0M3QkQ7MTEwQyAxMTYyIDExQjg7CitDN0JFO0M3QkU7MTEwQyAxMTYyIDExQjk7QzdCRTsxMTBDIDExNjIgMTFCOTsKK0M3QkY7QzdCRjsxMTBDIDExNjIgMTFCQTtDN0JGOzExMEMgMTE2MiAxMUJBOworQzdDMDtDN0MwOzExMEMgMTE2MiAxMUJCO0M3QzA7MTEwQyAxMTYyIDExQkI7CitDN0MxO0M3QzE7MTEwQyAxMTYyIDExQkM7QzdDMTsxMTBDIDExNjIgMTFCQzsKK0M3QzI7QzdDMjsxMTBDIDExNjIgMTFCRDtDN0MyOzExMEMgMTE2MiAxMUJEOworQzdDMztDN0MzOzExMEMgMTE2MiAxMUJFO0M3QzM7MTEwQyAxMTYyIDExQkU7CitDN0M0O0M3QzQ7MTEwQyAxMTYyIDExQkY7QzdDNDsxMTBDIDExNjIgMTFCRjsKK0M3QzU7QzdDNTsxMTBDIDExNjIgMTFDMDtDN0M1OzExMEMgMTE2MiAxMUMwOworQzdDNjtDN0M2OzExMEMgMTE2MiAxMUMxO0M3QzY7MTEwQyAxMTYyIDExQzE7CitDN0M3O0M3Qzc7MTEwQyAxMTYyIDExQzI7QzdDNzsxMTBDIDExNjIgMTFDMjsKK0M3Qzg7QzdDODsxMTBDIDExNjM7QzdDODsxMTBDIDExNjM7CitDN0M5O0M3Qzk7MTEwQyAxMTYzIDExQTg7QzdDOTsxMTBDIDExNjMgMTFBODsKK0M3Q0E7QzdDQTsxMTBDIDExNjMgMTFBOTtDN0NBOzExMEMgMTE2MyAxMUE5OworQzdDQjtDN0NCOzExMEMgMTE2MyAxMUFBO0M3Q0I7MTEwQyAxMTYzIDExQUE7CitDN0NDO0M3Q0M7MTEwQyAxMTYzIDExQUI7QzdDQzsxMTBDIDExNjMgMTFBQjsKK0M3Q0Q7QzdDRDsxMTBDIDExNjMgMTFBQztDN0NEOzExMEMgMTE2MyAxMUFDOworQzdDRTtDN0NFOzExMEMgMTE2MyAxMUFEO0M3Q0U7MTEwQyAxMTYzIDExQUQ7CitDN0NGO0M3Q0Y7MTEwQyAxMTYzIDExQUU7QzdDRjsxMTBDIDExNjMgMTFBRTsKK0M3RDA7QzdEMDsxMTBDIDExNjMgMTFBRjtDN0QwOzExMEMgMTE2MyAxMUFGOworQzdEMTtDN0QxOzExMEMgMTE2MyAxMUIwO0M3RDE7MTEwQyAxMTYzIDExQjA7CitDN0QyO0M3RDI7MTEwQyAxMTYzIDExQjE7QzdEMjsxMTBDIDExNjMgMTFCMTsKK0M3RDM7QzdEMzsxMTBDIDExNjMgMTFCMjtDN0QzOzExMEMgMTE2MyAxMUIyOworQzdENDtDN0Q0OzExMEMgMTE2MyAxMUIzO0M3RDQ7MTEwQyAxMTYzIDExQjM7CitDN0Q1O0M3RDU7MTEwQyAxMTYzIDExQjQ7QzdENTsxMTBDIDExNjMgMTFCNDsKK0M3RDY7QzdENjsxMTBDIDExNjMgMTFCNTtDN0Q2OzExMEMgMTE2MyAxMUI1OworQzdENztDN0Q3OzExMEMgMTE2MyAxMUI2O0M3RDc7MTEwQyAxMTYzIDExQjY7CitDN0Q4O0M3RDg7MTEwQyAxMTYzIDExQjc7QzdEODsxMTBDIDExNjMgMTFCNzsKK0M3RDk7QzdEOTsxMTBDIDExNjMgMTFCODtDN0Q5OzExMEMgMTE2MyAxMUI4OworQzdEQTtDN0RBOzExMEMgMTE2MyAxMUI5O0M3REE7MTEwQyAxMTYzIDExQjk7CitDN0RCO0M3REI7MTEwQyAxMTYzIDExQkE7QzdEQjsxMTBDIDExNjMgMTFCQTsKK0M3REM7QzdEQzsxMTBDIDExNjMgMTFCQjtDN0RDOzExMEMgMTE2MyAxMUJCOworQzdERDtDN0REOzExMEMgMTE2MyAxMUJDO0M3REQ7MTEwQyAxMTYzIDExQkM7CitDN0RFO0M3REU7MTEwQyAxMTYzIDExQkQ7QzdERTsxMTBDIDExNjMgMTFCRDsKK0M3REY7QzdERjsxMTBDIDExNjMgMTFCRTtDN0RGOzExMEMgMTE2MyAxMUJFOworQzdFMDtDN0UwOzExMEMgMTE2MyAxMUJGO0M3RTA7MTEwQyAxMTYzIDExQkY7CitDN0UxO0M3RTE7MTEwQyAxMTYzIDExQzA7QzdFMTsxMTBDIDExNjMgMTFDMDsKK0M3RTI7QzdFMjsxMTBDIDExNjMgMTFDMTtDN0UyOzExMEMgMTE2MyAxMUMxOworQzdFMztDN0UzOzExMEMgMTE2MyAxMUMyO0M3RTM7MTEwQyAxMTYzIDExQzI7CitDN0U0O0M3RTQ7MTEwQyAxMTY0O0M3RTQ7MTEwQyAxMTY0OworQzdFNTtDN0U1OzExMEMgMTE2NCAxMUE4O0M3RTU7MTEwQyAxMTY0IDExQTg7CitDN0U2O0M3RTY7MTEwQyAxMTY0IDExQTk7QzdFNjsxMTBDIDExNjQgMTFBOTsKK0M3RTc7QzdFNzsxMTBDIDExNjQgMTFBQTtDN0U3OzExMEMgMTE2NCAxMUFBOworQzdFODtDN0U4OzExMEMgMTE2NCAxMUFCO0M3RTg7MTEwQyAxMTY0IDExQUI7CitDN0U5O0M3RTk7MTEwQyAxMTY0IDExQUM7QzdFOTsxMTBDIDExNjQgMTFBQzsKK0M3RUE7QzdFQTsxMTBDIDExNjQgMTFBRDtDN0VBOzExMEMgMTE2NCAxMUFEOworQzdFQjtDN0VCOzExMEMgMTE2NCAxMUFFO0M3RUI7MTEwQyAxMTY0IDExQUU7CitDN0VDO0M3RUM7MTEwQyAxMTY0IDExQUY7QzdFQzsxMTBDIDExNjQgMTFBRjsKK0M3RUQ7QzdFRDsxMTBDIDExNjQgMTFCMDtDN0VEOzExMEMgMTE2NCAxMUIwOworQzdFRTtDN0VFOzExMEMgMTE2NCAxMUIxO0M3RUU7MTEwQyAxMTY0IDExQjE7CitDN0VGO0M3RUY7MTEwQyAxMTY0IDExQjI7QzdFRjsxMTBDIDExNjQgMTFCMjsKK0M3RjA7QzdGMDsxMTBDIDExNjQgMTFCMztDN0YwOzExMEMgMTE2NCAxMUIzOworQzdGMTtDN0YxOzExMEMgMTE2NCAxMUI0O0M3RjE7MTEwQyAxMTY0IDExQjQ7CitDN0YyO0M3RjI7MTEwQyAxMTY0IDExQjU7QzdGMjsxMTBDIDExNjQgMTFCNTsKK0M3RjM7QzdGMzsxMTBDIDExNjQgMTFCNjtDN0YzOzExMEMgMTE2NCAxMUI2OworQzdGNDtDN0Y0OzExMEMgMTE2NCAxMUI3O0M3RjQ7MTEwQyAxMTY0IDExQjc7CitDN0Y1O0M3RjU7MTEwQyAxMTY0IDExQjg7QzdGNTsxMTBDIDExNjQgMTFCODsKK0M3RjY7QzdGNjsxMTBDIDExNjQgMTFCOTtDN0Y2OzExMEMgMTE2NCAxMUI5OworQzdGNztDN0Y3OzExMEMgMTE2NCAxMUJBO0M3Rjc7MTEwQyAxMTY0IDExQkE7CitDN0Y4O0M3Rjg7MTEwQyAxMTY0IDExQkI7QzdGODsxMTBDIDExNjQgMTFCQjsKK0M3Rjk7QzdGOTsxMTBDIDExNjQgMTFCQztDN0Y5OzExMEMgMTE2NCAxMUJDOworQzdGQTtDN0ZBOzExMEMgMTE2NCAxMUJEO0M3RkE7MTEwQyAxMTY0IDExQkQ7CitDN0ZCO0M3RkI7MTEwQyAxMTY0IDExQkU7QzdGQjsxMTBDIDExNjQgMTFCRTsKK0M3RkM7QzdGQzsxMTBDIDExNjQgMTFCRjtDN0ZDOzExMEMgMTE2NCAxMUJGOworQzdGRDtDN0ZEOzExMEMgMTE2NCAxMUMwO0M3RkQ7MTEwQyAxMTY0IDExQzA7CitDN0ZFO0M3RkU7MTEwQyAxMTY0IDExQzE7QzdGRTsxMTBDIDExNjQgMTFDMTsKK0M3RkY7QzdGRjsxMTBDIDExNjQgMTFDMjtDN0ZGOzExMEMgMTE2NCAxMUMyOworQzgwMDtDODAwOzExMEMgMTE2NTtDODAwOzExMEMgMTE2NTsKK0M4MDE7QzgwMTsxMTBDIDExNjUgMTFBODtDODAxOzExMEMgMTE2NSAxMUE4OworQzgwMjtDODAyOzExMEMgMTE2NSAxMUE5O0M4MDI7MTEwQyAxMTY1IDExQTk7CitDODAzO0M4MDM7MTEwQyAxMTY1IDExQUE7QzgwMzsxMTBDIDExNjUgMTFBQTsKK0M4MDQ7QzgwNDsxMTBDIDExNjUgMTFBQjtDODA0OzExMEMgMTE2NSAxMUFCOworQzgwNTtDODA1OzExMEMgMTE2NSAxMUFDO0M4MDU7MTEwQyAxMTY1IDExQUM7CitDODA2O0M4MDY7MTEwQyAxMTY1IDExQUQ7QzgwNjsxMTBDIDExNjUgMTFBRDsKK0M4MDc7QzgwNzsxMTBDIDExNjUgMTFBRTtDODA3OzExMEMgMTE2NSAxMUFFOworQzgwODtDODA4OzExMEMgMTE2NSAxMUFGO0M4MDg7MTEwQyAxMTY1IDExQUY7CitDODA5O0M4MDk7MTEwQyAxMTY1IDExQjA7QzgwOTsxMTBDIDExNjUgMTFCMDsKK0M4MEE7QzgwQTsxMTBDIDExNjUgMTFCMTtDODBBOzExMEMgMTE2NSAxMUIxOworQzgwQjtDODBCOzExMEMgMTE2NSAxMUIyO0M4MEI7MTEwQyAxMTY1IDExQjI7CitDODBDO0M4MEM7MTEwQyAxMTY1IDExQjM7QzgwQzsxMTBDIDExNjUgMTFCMzsKK0M4MEQ7QzgwRDsxMTBDIDExNjUgMTFCNDtDODBEOzExMEMgMTE2NSAxMUI0OworQzgwRTtDODBFOzExMEMgMTE2NSAxMUI1O0M4MEU7MTEwQyAxMTY1IDExQjU7CitDODBGO0M4MEY7MTEwQyAxMTY1IDExQjY7QzgwRjsxMTBDIDExNjUgMTFCNjsKK0M4MTA7QzgxMDsxMTBDIDExNjUgMTFCNztDODEwOzExMEMgMTE2NSAxMUI3OworQzgxMTtDODExOzExMEMgMTE2NSAxMUI4O0M4MTE7MTEwQyAxMTY1IDExQjg7CitDODEyO0M4MTI7MTEwQyAxMTY1IDExQjk7QzgxMjsxMTBDIDExNjUgMTFCOTsKK0M4MTM7QzgxMzsxMTBDIDExNjUgMTFCQTtDODEzOzExMEMgMTE2NSAxMUJBOworQzgxNDtDODE0OzExMEMgMTE2NSAxMUJCO0M4MTQ7MTEwQyAxMTY1IDExQkI7CitDODE1O0M4MTU7MTEwQyAxMTY1IDExQkM7QzgxNTsxMTBDIDExNjUgMTFCQzsKK0M4MTY7QzgxNjsxMTBDIDExNjUgMTFCRDtDODE2OzExMEMgMTE2NSAxMUJEOworQzgxNztDODE3OzExMEMgMTE2NSAxMUJFO0M4MTc7MTEwQyAxMTY1IDExQkU7CitDODE4O0M4MTg7MTEwQyAxMTY1IDExQkY7QzgxODsxMTBDIDExNjUgMTFCRjsKK0M4MTk7QzgxOTsxMTBDIDExNjUgMTFDMDtDODE5OzExMEMgMTE2NSAxMUMwOworQzgxQTtDODFBOzExMEMgMTE2NSAxMUMxO0M4MUE7MTEwQyAxMTY1IDExQzE7CitDODFCO0M4MUI7MTEwQyAxMTY1IDExQzI7QzgxQjsxMTBDIDExNjUgMTFDMjsKK0M4MUM7QzgxQzsxMTBDIDExNjY7QzgxQzsxMTBDIDExNjY7CitDODFEO0M4MUQ7MTEwQyAxMTY2IDExQTg7QzgxRDsxMTBDIDExNjYgMTFBODsKK0M4MUU7QzgxRTsxMTBDIDExNjYgMTFBOTtDODFFOzExMEMgMTE2NiAxMUE5OworQzgxRjtDODFGOzExMEMgMTE2NiAxMUFBO0M4MUY7MTEwQyAxMTY2IDExQUE7CitDODIwO0M4MjA7MTEwQyAxMTY2IDExQUI7QzgyMDsxMTBDIDExNjYgMTFBQjsKK0M4MjE7QzgyMTsxMTBDIDExNjYgMTFBQztDODIxOzExMEMgMTE2NiAxMUFDOworQzgyMjtDODIyOzExMEMgMTE2NiAxMUFEO0M4MjI7MTEwQyAxMTY2IDExQUQ7CitDODIzO0M4MjM7MTEwQyAxMTY2IDExQUU7QzgyMzsxMTBDIDExNjYgMTFBRTsKK0M4MjQ7QzgyNDsxMTBDIDExNjYgMTFBRjtDODI0OzExMEMgMTE2NiAxMUFGOworQzgyNTtDODI1OzExMEMgMTE2NiAxMUIwO0M4MjU7MTEwQyAxMTY2IDExQjA7CitDODI2O0M4MjY7MTEwQyAxMTY2IDExQjE7QzgyNjsxMTBDIDExNjYgMTFCMTsKK0M4Mjc7QzgyNzsxMTBDIDExNjYgMTFCMjtDODI3OzExMEMgMTE2NiAxMUIyOworQzgyODtDODI4OzExMEMgMTE2NiAxMUIzO0M4Mjg7MTEwQyAxMTY2IDExQjM7CitDODI5O0M4Mjk7MTEwQyAxMTY2IDExQjQ7QzgyOTsxMTBDIDExNjYgMTFCNDsKK0M4MkE7QzgyQTsxMTBDIDExNjYgMTFCNTtDODJBOzExMEMgMTE2NiAxMUI1OworQzgyQjtDODJCOzExMEMgMTE2NiAxMUI2O0M4MkI7MTEwQyAxMTY2IDExQjY7CitDODJDO0M4MkM7MTEwQyAxMTY2IDExQjc7QzgyQzsxMTBDIDExNjYgMTFCNzsKK0M4MkQ7QzgyRDsxMTBDIDExNjYgMTFCODtDODJEOzExMEMgMTE2NiAxMUI4OworQzgyRTtDODJFOzExMEMgMTE2NiAxMUI5O0M4MkU7MTEwQyAxMTY2IDExQjk7CitDODJGO0M4MkY7MTEwQyAxMTY2IDExQkE7QzgyRjsxMTBDIDExNjYgMTFCQTsKK0M4MzA7QzgzMDsxMTBDIDExNjYgMTFCQjtDODMwOzExMEMgMTE2NiAxMUJCOworQzgzMTtDODMxOzExMEMgMTE2NiAxMUJDO0M4MzE7MTEwQyAxMTY2IDExQkM7CitDODMyO0M4MzI7MTEwQyAxMTY2IDExQkQ7QzgzMjsxMTBDIDExNjYgMTFCRDsKK0M4MzM7QzgzMzsxMTBDIDExNjYgMTFCRTtDODMzOzExMEMgMTE2NiAxMUJFOworQzgzNDtDODM0OzExMEMgMTE2NiAxMUJGO0M4MzQ7MTEwQyAxMTY2IDExQkY7CitDODM1O0M4MzU7MTEwQyAxMTY2IDExQzA7QzgzNTsxMTBDIDExNjYgMTFDMDsKK0M4MzY7QzgzNjsxMTBDIDExNjYgMTFDMTtDODM2OzExMEMgMTE2NiAxMUMxOworQzgzNztDODM3OzExMEMgMTE2NiAxMUMyO0M4Mzc7MTEwQyAxMTY2IDExQzI7CitDODM4O0M4Mzg7MTEwQyAxMTY3O0M4Mzg7MTEwQyAxMTY3OworQzgzOTtDODM5OzExMEMgMTE2NyAxMUE4O0M4Mzk7MTEwQyAxMTY3IDExQTg7CitDODNBO0M4M0E7MTEwQyAxMTY3IDExQTk7QzgzQTsxMTBDIDExNjcgMTFBOTsKK0M4M0I7QzgzQjsxMTBDIDExNjcgMTFBQTtDODNCOzExMEMgMTE2NyAxMUFBOworQzgzQztDODNDOzExMEMgMTE2NyAxMUFCO0M4M0M7MTEwQyAxMTY3IDExQUI7CitDODNEO0M4M0Q7MTEwQyAxMTY3IDExQUM7QzgzRDsxMTBDIDExNjcgMTFBQzsKK0M4M0U7QzgzRTsxMTBDIDExNjcgMTFBRDtDODNFOzExMEMgMTE2NyAxMUFEOworQzgzRjtDODNGOzExMEMgMTE2NyAxMUFFO0M4M0Y7MTEwQyAxMTY3IDExQUU7CitDODQwO0M4NDA7MTEwQyAxMTY3IDExQUY7Qzg0MDsxMTBDIDExNjcgMTFBRjsKK0M4NDE7Qzg0MTsxMTBDIDExNjcgMTFCMDtDODQxOzExMEMgMTE2NyAxMUIwOworQzg0MjtDODQyOzExMEMgMTE2NyAxMUIxO0M4NDI7MTEwQyAxMTY3IDExQjE7CitDODQzO0M4NDM7MTEwQyAxMTY3IDExQjI7Qzg0MzsxMTBDIDExNjcgMTFCMjsKK0M4NDQ7Qzg0NDsxMTBDIDExNjcgMTFCMztDODQ0OzExMEMgMTE2NyAxMUIzOworQzg0NTtDODQ1OzExMEMgMTE2NyAxMUI0O0M4NDU7MTEwQyAxMTY3IDExQjQ7CitDODQ2O0M4NDY7MTEwQyAxMTY3IDExQjU7Qzg0NjsxMTBDIDExNjcgMTFCNTsKK0M4NDc7Qzg0NzsxMTBDIDExNjcgMTFCNjtDODQ3OzExMEMgMTE2NyAxMUI2OworQzg0ODtDODQ4OzExMEMgMTE2NyAxMUI3O0M4NDg7MTEwQyAxMTY3IDExQjc7CitDODQ5O0M4NDk7MTEwQyAxMTY3IDExQjg7Qzg0OTsxMTBDIDExNjcgMTFCODsKK0M4NEE7Qzg0QTsxMTBDIDExNjcgMTFCOTtDODRBOzExMEMgMTE2NyAxMUI5OworQzg0QjtDODRCOzExMEMgMTE2NyAxMUJBO0M4NEI7MTEwQyAxMTY3IDExQkE7CitDODRDO0M4NEM7MTEwQyAxMTY3IDExQkI7Qzg0QzsxMTBDIDExNjcgMTFCQjsKK0M4NEQ7Qzg0RDsxMTBDIDExNjcgMTFCQztDODREOzExMEMgMTE2NyAxMUJDOworQzg0RTtDODRFOzExMEMgMTE2NyAxMUJEO0M4NEU7MTEwQyAxMTY3IDExQkQ7CitDODRGO0M4NEY7MTEwQyAxMTY3IDExQkU7Qzg0RjsxMTBDIDExNjcgMTFCRTsKK0M4NTA7Qzg1MDsxMTBDIDExNjcgMTFCRjtDODUwOzExMEMgMTE2NyAxMUJGOworQzg1MTtDODUxOzExMEMgMTE2NyAxMUMwO0M4NTE7MTEwQyAxMTY3IDExQzA7CitDODUyO0M4NTI7MTEwQyAxMTY3IDExQzE7Qzg1MjsxMTBDIDExNjcgMTFDMTsKK0M4NTM7Qzg1MzsxMTBDIDExNjcgMTFDMjtDODUzOzExMEMgMTE2NyAxMUMyOworQzg1NDtDODU0OzExMEMgMTE2ODtDODU0OzExMEMgMTE2ODsKK0M4NTU7Qzg1NTsxMTBDIDExNjggMTFBODtDODU1OzExMEMgMTE2OCAxMUE4OworQzg1NjtDODU2OzExMEMgMTE2OCAxMUE5O0M4NTY7MTEwQyAxMTY4IDExQTk7CitDODU3O0M4NTc7MTEwQyAxMTY4IDExQUE7Qzg1NzsxMTBDIDExNjggMTFBQTsKK0M4NTg7Qzg1ODsxMTBDIDExNjggMTFBQjtDODU4OzExMEMgMTE2OCAxMUFCOworQzg1OTtDODU5OzExMEMgMTE2OCAxMUFDO0M4NTk7MTEwQyAxMTY4IDExQUM7CitDODVBO0M4NUE7MTEwQyAxMTY4IDExQUQ7Qzg1QTsxMTBDIDExNjggMTFBRDsKK0M4NUI7Qzg1QjsxMTBDIDExNjggMTFBRTtDODVCOzExMEMgMTE2OCAxMUFFOworQzg1QztDODVDOzExMEMgMTE2OCAxMUFGO0M4NUM7MTEwQyAxMTY4IDExQUY7CitDODVEO0M4NUQ7MTEwQyAxMTY4IDExQjA7Qzg1RDsxMTBDIDExNjggMTFCMDsKK0M4NUU7Qzg1RTsxMTBDIDExNjggMTFCMTtDODVFOzExMEMgMTE2OCAxMUIxOworQzg1RjtDODVGOzExMEMgMTE2OCAxMUIyO0M4NUY7MTEwQyAxMTY4IDExQjI7CitDODYwO0M4NjA7MTEwQyAxMTY4IDExQjM7Qzg2MDsxMTBDIDExNjggMTFCMzsKK0M4NjE7Qzg2MTsxMTBDIDExNjggMTFCNDtDODYxOzExMEMgMTE2OCAxMUI0OworQzg2MjtDODYyOzExMEMgMTE2OCAxMUI1O0M4NjI7MTEwQyAxMTY4IDExQjU7CitDODYzO0M4NjM7MTEwQyAxMTY4IDExQjY7Qzg2MzsxMTBDIDExNjggMTFCNjsKK0M4NjQ7Qzg2NDsxMTBDIDExNjggMTFCNztDODY0OzExMEMgMTE2OCAxMUI3OworQzg2NTtDODY1OzExMEMgMTE2OCAxMUI4O0M4NjU7MTEwQyAxMTY4IDExQjg7CitDODY2O0M4NjY7MTEwQyAxMTY4IDExQjk7Qzg2NjsxMTBDIDExNjggMTFCOTsKK0M4Njc7Qzg2NzsxMTBDIDExNjggMTFCQTtDODY3OzExMEMgMTE2OCAxMUJBOworQzg2ODtDODY4OzExMEMgMTE2OCAxMUJCO0M4Njg7MTEwQyAxMTY4IDExQkI7CitDODY5O0M4Njk7MTEwQyAxMTY4IDExQkM7Qzg2OTsxMTBDIDExNjggMTFCQzsKK0M4NkE7Qzg2QTsxMTBDIDExNjggMTFCRDtDODZBOzExMEMgMTE2OCAxMUJEOworQzg2QjtDODZCOzExMEMgMTE2OCAxMUJFO0M4NkI7MTEwQyAxMTY4IDExQkU7CitDODZDO0M4NkM7MTEwQyAxMTY4IDExQkY7Qzg2QzsxMTBDIDExNjggMTFCRjsKK0M4NkQ7Qzg2RDsxMTBDIDExNjggMTFDMDtDODZEOzExMEMgMTE2OCAxMUMwOworQzg2RTtDODZFOzExMEMgMTE2OCAxMUMxO0M4NkU7MTEwQyAxMTY4IDExQzE7CitDODZGO0M4NkY7MTEwQyAxMTY4IDExQzI7Qzg2RjsxMTBDIDExNjggMTFDMjsKK0M4NzA7Qzg3MDsxMTBDIDExNjk7Qzg3MDsxMTBDIDExNjk7CitDODcxO0M4NzE7MTEwQyAxMTY5IDExQTg7Qzg3MTsxMTBDIDExNjkgMTFBODsKK0M4NzI7Qzg3MjsxMTBDIDExNjkgMTFBOTtDODcyOzExMEMgMTE2OSAxMUE5OworQzg3MztDODczOzExMEMgMTE2OSAxMUFBO0M4NzM7MTEwQyAxMTY5IDExQUE7CitDODc0O0M4NzQ7MTEwQyAxMTY5IDExQUI7Qzg3NDsxMTBDIDExNjkgMTFBQjsKK0M4NzU7Qzg3NTsxMTBDIDExNjkgMTFBQztDODc1OzExMEMgMTE2OSAxMUFDOworQzg3NjtDODc2OzExMEMgMTE2OSAxMUFEO0M4NzY7MTEwQyAxMTY5IDExQUQ7CitDODc3O0M4Nzc7MTEwQyAxMTY5IDExQUU7Qzg3NzsxMTBDIDExNjkgMTFBRTsKK0M4Nzg7Qzg3ODsxMTBDIDExNjkgMTFBRjtDODc4OzExMEMgMTE2OSAxMUFGOworQzg3OTtDODc5OzExMEMgMTE2OSAxMUIwO0M4Nzk7MTEwQyAxMTY5IDExQjA7CitDODdBO0M4N0E7MTEwQyAxMTY5IDExQjE7Qzg3QTsxMTBDIDExNjkgMTFCMTsKK0M4N0I7Qzg3QjsxMTBDIDExNjkgMTFCMjtDODdCOzExMEMgMTE2OSAxMUIyOworQzg3QztDODdDOzExMEMgMTE2OSAxMUIzO0M4N0M7MTEwQyAxMTY5IDExQjM7CitDODdEO0M4N0Q7MTEwQyAxMTY5IDExQjQ7Qzg3RDsxMTBDIDExNjkgMTFCNDsKK0M4N0U7Qzg3RTsxMTBDIDExNjkgMTFCNTtDODdFOzExMEMgMTE2OSAxMUI1OworQzg3RjtDODdGOzExMEMgMTE2OSAxMUI2O0M4N0Y7MTEwQyAxMTY5IDExQjY7CitDODgwO0M4ODA7MTEwQyAxMTY5IDExQjc7Qzg4MDsxMTBDIDExNjkgMTFCNzsKK0M4ODE7Qzg4MTsxMTBDIDExNjkgMTFCODtDODgxOzExMEMgMTE2OSAxMUI4OworQzg4MjtDODgyOzExMEMgMTE2OSAxMUI5O0M4ODI7MTEwQyAxMTY5IDExQjk7CitDODgzO0M4ODM7MTEwQyAxMTY5IDExQkE7Qzg4MzsxMTBDIDExNjkgMTFCQTsKK0M4ODQ7Qzg4NDsxMTBDIDExNjkgMTFCQjtDODg0OzExMEMgMTE2OSAxMUJCOworQzg4NTtDODg1OzExMEMgMTE2OSAxMUJDO0M4ODU7MTEwQyAxMTY5IDExQkM7CitDODg2O0M4ODY7MTEwQyAxMTY5IDExQkQ7Qzg4NjsxMTBDIDExNjkgMTFCRDsKK0M4ODc7Qzg4NzsxMTBDIDExNjkgMTFCRTtDODg3OzExMEMgMTE2OSAxMUJFOworQzg4ODtDODg4OzExMEMgMTE2OSAxMUJGO0M4ODg7MTEwQyAxMTY5IDExQkY7CitDODg5O0M4ODk7MTEwQyAxMTY5IDExQzA7Qzg4OTsxMTBDIDExNjkgMTFDMDsKK0M4OEE7Qzg4QTsxMTBDIDExNjkgMTFDMTtDODhBOzExMEMgMTE2OSAxMUMxOworQzg4QjtDODhCOzExMEMgMTE2OSAxMUMyO0M4OEI7MTEwQyAxMTY5IDExQzI7CitDODhDO0M4OEM7MTEwQyAxMTZBO0M4OEM7MTEwQyAxMTZBOworQzg4RDtDODhEOzExMEMgMTE2QSAxMUE4O0M4OEQ7MTEwQyAxMTZBIDExQTg7CitDODhFO0M4OEU7MTEwQyAxMTZBIDExQTk7Qzg4RTsxMTBDIDExNkEgMTFBOTsKK0M4OEY7Qzg4RjsxMTBDIDExNkEgMTFBQTtDODhGOzExMEMgMTE2QSAxMUFBOworQzg5MDtDODkwOzExMEMgMTE2QSAxMUFCO0M4OTA7MTEwQyAxMTZBIDExQUI7CitDODkxO0M4OTE7MTEwQyAxMTZBIDExQUM7Qzg5MTsxMTBDIDExNkEgMTFBQzsKK0M4OTI7Qzg5MjsxMTBDIDExNkEgMTFBRDtDODkyOzExMEMgMTE2QSAxMUFEOworQzg5MztDODkzOzExMEMgMTE2QSAxMUFFO0M4OTM7MTEwQyAxMTZBIDExQUU7CitDODk0O0M4OTQ7MTEwQyAxMTZBIDExQUY7Qzg5NDsxMTBDIDExNkEgMTFBRjsKK0M4OTU7Qzg5NTsxMTBDIDExNkEgMTFCMDtDODk1OzExMEMgMTE2QSAxMUIwOworQzg5NjtDODk2OzExMEMgMTE2QSAxMUIxO0M4OTY7MTEwQyAxMTZBIDExQjE7CitDODk3O0M4OTc7MTEwQyAxMTZBIDExQjI7Qzg5NzsxMTBDIDExNkEgMTFCMjsKK0M4OTg7Qzg5ODsxMTBDIDExNkEgMTFCMztDODk4OzExMEMgMTE2QSAxMUIzOworQzg5OTtDODk5OzExMEMgMTE2QSAxMUI0O0M4OTk7MTEwQyAxMTZBIDExQjQ7CitDODlBO0M4OUE7MTEwQyAxMTZBIDExQjU7Qzg5QTsxMTBDIDExNkEgMTFCNTsKK0M4OUI7Qzg5QjsxMTBDIDExNkEgMTFCNjtDODlCOzExMEMgMTE2QSAxMUI2OworQzg5QztDODlDOzExMEMgMTE2QSAxMUI3O0M4OUM7MTEwQyAxMTZBIDExQjc7CitDODlEO0M4OUQ7MTEwQyAxMTZBIDExQjg7Qzg5RDsxMTBDIDExNkEgMTFCODsKK0M4OUU7Qzg5RTsxMTBDIDExNkEgMTFCOTtDODlFOzExMEMgMTE2QSAxMUI5OworQzg5RjtDODlGOzExMEMgMTE2QSAxMUJBO0M4OUY7MTEwQyAxMTZBIDExQkE7CitDOEEwO0M4QTA7MTEwQyAxMTZBIDExQkI7QzhBMDsxMTBDIDExNkEgMTFCQjsKK0M4QTE7QzhBMTsxMTBDIDExNkEgMTFCQztDOEExOzExMEMgMTE2QSAxMUJDOworQzhBMjtDOEEyOzExMEMgMTE2QSAxMUJEO0M4QTI7MTEwQyAxMTZBIDExQkQ7CitDOEEzO0M4QTM7MTEwQyAxMTZBIDExQkU7QzhBMzsxMTBDIDExNkEgMTFCRTsKK0M4QTQ7QzhBNDsxMTBDIDExNkEgMTFCRjtDOEE0OzExMEMgMTE2QSAxMUJGOworQzhBNTtDOEE1OzExMEMgMTE2QSAxMUMwO0M4QTU7MTEwQyAxMTZBIDExQzA7CitDOEE2O0M4QTY7MTEwQyAxMTZBIDExQzE7QzhBNjsxMTBDIDExNkEgMTFDMTsKK0M4QTc7QzhBNzsxMTBDIDExNkEgMTFDMjtDOEE3OzExMEMgMTE2QSAxMUMyOworQzhBODtDOEE4OzExMEMgMTE2QjtDOEE4OzExMEMgMTE2QjsKK0M4QTk7QzhBOTsxMTBDIDExNkIgMTFBODtDOEE5OzExMEMgMTE2QiAxMUE4OworQzhBQTtDOEFBOzExMEMgMTE2QiAxMUE5O0M4QUE7MTEwQyAxMTZCIDExQTk7CitDOEFCO0M4QUI7MTEwQyAxMTZCIDExQUE7QzhBQjsxMTBDIDExNkIgMTFBQTsKK0M4QUM7QzhBQzsxMTBDIDExNkIgMTFBQjtDOEFDOzExMEMgMTE2QiAxMUFCOworQzhBRDtDOEFEOzExMEMgMTE2QiAxMUFDO0M4QUQ7MTEwQyAxMTZCIDExQUM7CitDOEFFO0M4QUU7MTEwQyAxMTZCIDExQUQ7QzhBRTsxMTBDIDExNkIgMTFBRDsKK0M4QUY7QzhBRjsxMTBDIDExNkIgMTFBRTtDOEFGOzExMEMgMTE2QiAxMUFFOworQzhCMDtDOEIwOzExMEMgMTE2QiAxMUFGO0M4QjA7MTEwQyAxMTZCIDExQUY7CitDOEIxO0M4QjE7MTEwQyAxMTZCIDExQjA7QzhCMTsxMTBDIDExNkIgMTFCMDsKK0M4QjI7QzhCMjsxMTBDIDExNkIgMTFCMTtDOEIyOzExMEMgMTE2QiAxMUIxOworQzhCMztDOEIzOzExMEMgMTE2QiAxMUIyO0M4QjM7MTEwQyAxMTZCIDExQjI7CitDOEI0O0M4QjQ7MTEwQyAxMTZCIDExQjM7QzhCNDsxMTBDIDExNkIgMTFCMzsKK0M4QjU7QzhCNTsxMTBDIDExNkIgMTFCNDtDOEI1OzExMEMgMTE2QiAxMUI0OworQzhCNjtDOEI2OzExMEMgMTE2QiAxMUI1O0M4QjY7MTEwQyAxMTZCIDExQjU7CitDOEI3O0M4Qjc7MTEwQyAxMTZCIDExQjY7QzhCNzsxMTBDIDExNkIgMTFCNjsKK0M4Qjg7QzhCODsxMTBDIDExNkIgMTFCNztDOEI4OzExMEMgMTE2QiAxMUI3OworQzhCOTtDOEI5OzExMEMgMTE2QiAxMUI4O0M4Qjk7MTEwQyAxMTZCIDExQjg7CitDOEJBO0M4QkE7MTEwQyAxMTZCIDExQjk7QzhCQTsxMTBDIDExNkIgMTFCOTsKK0M4QkI7QzhCQjsxMTBDIDExNkIgMTFCQTtDOEJCOzExMEMgMTE2QiAxMUJBOworQzhCQztDOEJDOzExMEMgMTE2QiAxMUJCO0M4QkM7MTEwQyAxMTZCIDExQkI7CitDOEJEO0M4QkQ7MTEwQyAxMTZCIDExQkM7QzhCRDsxMTBDIDExNkIgMTFCQzsKK0M4QkU7QzhCRTsxMTBDIDExNkIgMTFCRDtDOEJFOzExMEMgMTE2QiAxMUJEOworQzhCRjtDOEJGOzExMEMgMTE2QiAxMUJFO0M4QkY7MTEwQyAxMTZCIDExQkU7CitDOEMwO0M4QzA7MTEwQyAxMTZCIDExQkY7QzhDMDsxMTBDIDExNkIgMTFCRjsKK0M4QzE7QzhDMTsxMTBDIDExNkIgMTFDMDtDOEMxOzExMEMgMTE2QiAxMUMwOworQzhDMjtDOEMyOzExMEMgMTE2QiAxMUMxO0M4QzI7MTEwQyAxMTZCIDExQzE7CitDOEMzO0M4QzM7MTEwQyAxMTZCIDExQzI7QzhDMzsxMTBDIDExNkIgMTFDMjsKK0M4QzQ7QzhDNDsxMTBDIDExNkM7QzhDNDsxMTBDIDExNkM7CitDOEM1O0M4QzU7MTEwQyAxMTZDIDExQTg7QzhDNTsxMTBDIDExNkMgMTFBODsKK0M4QzY7QzhDNjsxMTBDIDExNkMgMTFBOTtDOEM2OzExMEMgMTE2QyAxMUE5OworQzhDNztDOEM3OzExMEMgMTE2QyAxMUFBO0M4Qzc7MTEwQyAxMTZDIDExQUE7CitDOEM4O0M4Qzg7MTEwQyAxMTZDIDExQUI7QzhDODsxMTBDIDExNkMgMTFBQjsKK0M4Qzk7QzhDOTsxMTBDIDExNkMgMTFBQztDOEM5OzExMEMgMTE2QyAxMUFDOworQzhDQTtDOENBOzExMEMgMTE2QyAxMUFEO0M4Q0E7MTEwQyAxMTZDIDExQUQ7CitDOENCO0M4Q0I7MTEwQyAxMTZDIDExQUU7QzhDQjsxMTBDIDExNkMgMTFBRTsKK0M4Q0M7QzhDQzsxMTBDIDExNkMgMTFBRjtDOENDOzExMEMgMTE2QyAxMUFGOworQzhDRDtDOENEOzExMEMgMTE2QyAxMUIwO0M4Q0Q7MTEwQyAxMTZDIDExQjA7CitDOENFO0M4Q0U7MTEwQyAxMTZDIDExQjE7QzhDRTsxMTBDIDExNkMgMTFCMTsKK0M4Q0Y7QzhDRjsxMTBDIDExNkMgMTFCMjtDOENGOzExMEMgMTE2QyAxMUIyOworQzhEMDtDOEQwOzExMEMgMTE2QyAxMUIzO0M4RDA7MTEwQyAxMTZDIDExQjM7CitDOEQxO0M4RDE7MTEwQyAxMTZDIDExQjQ7QzhEMTsxMTBDIDExNkMgMTFCNDsKK0M4RDI7QzhEMjsxMTBDIDExNkMgMTFCNTtDOEQyOzExMEMgMTE2QyAxMUI1OworQzhEMztDOEQzOzExMEMgMTE2QyAxMUI2O0M4RDM7MTEwQyAxMTZDIDExQjY7CitDOEQ0O0M4RDQ7MTEwQyAxMTZDIDExQjc7QzhENDsxMTBDIDExNkMgMTFCNzsKK0M4RDU7QzhENTsxMTBDIDExNkMgMTFCODtDOEQ1OzExMEMgMTE2QyAxMUI4OworQzhENjtDOEQ2OzExMEMgMTE2QyAxMUI5O0M4RDY7MTEwQyAxMTZDIDExQjk7CitDOEQ3O0M4RDc7MTEwQyAxMTZDIDExQkE7QzhENzsxMTBDIDExNkMgMTFCQTsKK0M4RDg7QzhEODsxMTBDIDExNkMgMTFCQjtDOEQ4OzExMEMgMTE2QyAxMUJCOworQzhEOTtDOEQ5OzExMEMgMTE2QyAxMUJDO0M4RDk7MTEwQyAxMTZDIDExQkM7CitDOERBO0M4REE7MTEwQyAxMTZDIDExQkQ7QzhEQTsxMTBDIDExNkMgMTFCRDsKK0M4REI7QzhEQjsxMTBDIDExNkMgMTFCRTtDOERCOzExMEMgMTE2QyAxMUJFOworQzhEQztDOERDOzExMEMgMTE2QyAxMUJGO0M4REM7MTEwQyAxMTZDIDExQkY7CitDOEREO0M4REQ7MTEwQyAxMTZDIDExQzA7QzhERDsxMTBDIDExNkMgMTFDMDsKK0M4REU7QzhERTsxMTBDIDExNkMgMTFDMTtDOERFOzExMEMgMTE2QyAxMUMxOworQzhERjtDOERGOzExMEMgMTE2QyAxMUMyO0M4REY7MTEwQyAxMTZDIDExQzI7CitDOEUwO0M4RTA7MTEwQyAxMTZEO0M4RTA7MTEwQyAxMTZEOworQzhFMTtDOEUxOzExMEMgMTE2RCAxMUE4O0M4RTE7MTEwQyAxMTZEIDExQTg7CitDOEUyO0M4RTI7MTEwQyAxMTZEIDExQTk7QzhFMjsxMTBDIDExNkQgMTFBOTsKK0M4RTM7QzhFMzsxMTBDIDExNkQgMTFBQTtDOEUzOzExMEMgMTE2RCAxMUFBOworQzhFNDtDOEU0OzExMEMgMTE2RCAxMUFCO0M4RTQ7MTEwQyAxMTZEIDExQUI7CitDOEU1O0M4RTU7MTEwQyAxMTZEIDExQUM7QzhFNTsxMTBDIDExNkQgMTFBQzsKK0M4RTY7QzhFNjsxMTBDIDExNkQgMTFBRDtDOEU2OzExMEMgMTE2RCAxMUFEOworQzhFNztDOEU3OzExMEMgMTE2RCAxMUFFO0M4RTc7MTEwQyAxMTZEIDExQUU7CitDOEU4O0M4RTg7MTEwQyAxMTZEIDExQUY7QzhFODsxMTBDIDExNkQgMTFBRjsKK0M4RTk7QzhFOTsxMTBDIDExNkQgMTFCMDtDOEU5OzExMEMgMTE2RCAxMUIwOworQzhFQTtDOEVBOzExMEMgMTE2RCAxMUIxO0M4RUE7MTEwQyAxMTZEIDExQjE7CitDOEVCO0M4RUI7MTEwQyAxMTZEIDExQjI7QzhFQjsxMTBDIDExNkQgMTFCMjsKK0M4RUM7QzhFQzsxMTBDIDExNkQgMTFCMztDOEVDOzExMEMgMTE2RCAxMUIzOworQzhFRDtDOEVEOzExMEMgMTE2RCAxMUI0O0M4RUQ7MTEwQyAxMTZEIDExQjQ7CitDOEVFO0M4RUU7MTEwQyAxMTZEIDExQjU7QzhFRTsxMTBDIDExNkQgMTFCNTsKK0M4RUY7QzhFRjsxMTBDIDExNkQgMTFCNjtDOEVGOzExMEMgMTE2RCAxMUI2OworQzhGMDtDOEYwOzExMEMgMTE2RCAxMUI3O0M4RjA7MTEwQyAxMTZEIDExQjc7CitDOEYxO0M4RjE7MTEwQyAxMTZEIDExQjg7QzhGMTsxMTBDIDExNkQgMTFCODsKK0M4RjI7QzhGMjsxMTBDIDExNkQgMTFCOTtDOEYyOzExMEMgMTE2RCAxMUI5OworQzhGMztDOEYzOzExMEMgMTE2RCAxMUJBO0M4RjM7MTEwQyAxMTZEIDExQkE7CitDOEY0O0M4RjQ7MTEwQyAxMTZEIDExQkI7QzhGNDsxMTBDIDExNkQgMTFCQjsKK0M4RjU7QzhGNTsxMTBDIDExNkQgMTFCQztDOEY1OzExMEMgMTE2RCAxMUJDOworQzhGNjtDOEY2OzExMEMgMTE2RCAxMUJEO0M4RjY7MTEwQyAxMTZEIDExQkQ7CitDOEY3O0M4Rjc7MTEwQyAxMTZEIDExQkU7QzhGNzsxMTBDIDExNkQgMTFCRTsKK0M4Rjg7QzhGODsxMTBDIDExNkQgMTFCRjtDOEY4OzExMEMgMTE2RCAxMUJGOworQzhGOTtDOEY5OzExMEMgMTE2RCAxMUMwO0M4Rjk7MTEwQyAxMTZEIDExQzA7CitDOEZBO0M4RkE7MTEwQyAxMTZEIDExQzE7QzhGQTsxMTBDIDExNkQgMTFDMTsKK0M4RkI7QzhGQjsxMTBDIDExNkQgMTFDMjtDOEZCOzExMEMgMTE2RCAxMUMyOworQzhGQztDOEZDOzExMEMgMTE2RTtDOEZDOzExMEMgMTE2RTsKK0M4RkQ7QzhGRDsxMTBDIDExNkUgMTFBODtDOEZEOzExMEMgMTE2RSAxMUE4OworQzhGRTtDOEZFOzExMEMgMTE2RSAxMUE5O0M4RkU7MTEwQyAxMTZFIDExQTk7CitDOEZGO0M4RkY7MTEwQyAxMTZFIDExQUE7QzhGRjsxMTBDIDExNkUgMTFBQTsKK0M5MDA7QzkwMDsxMTBDIDExNkUgMTFBQjtDOTAwOzExMEMgMTE2RSAxMUFCOworQzkwMTtDOTAxOzExMEMgMTE2RSAxMUFDO0M5MDE7MTEwQyAxMTZFIDExQUM7CitDOTAyO0M5MDI7MTEwQyAxMTZFIDExQUQ7QzkwMjsxMTBDIDExNkUgMTFBRDsKK0M5MDM7QzkwMzsxMTBDIDExNkUgMTFBRTtDOTAzOzExMEMgMTE2RSAxMUFFOworQzkwNDtDOTA0OzExMEMgMTE2RSAxMUFGO0M5MDQ7MTEwQyAxMTZFIDExQUY7CitDOTA1O0M5MDU7MTEwQyAxMTZFIDExQjA7QzkwNTsxMTBDIDExNkUgMTFCMDsKK0M5MDY7QzkwNjsxMTBDIDExNkUgMTFCMTtDOTA2OzExMEMgMTE2RSAxMUIxOworQzkwNztDOTA3OzExMEMgMTE2RSAxMUIyO0M5MDc7MTEwQyAxMTZFIDExQjI7CitDOTA4O0M5MDg7MTEwQyAxMTZFIDExQjM7QzkwODsxMTBDIDExNkUgMTFCMzsKK0M5MDk7QzkwOTsxMTBDIDExNkUgMTFCNDtDOTA5OzExMEMgMTE2RSAxMUI0OworQzkwQTtDOTBBOzExMEMgMTE2RSAxMUI1O0M5MEE7MTEwQyAxMTZFIDExQjU7CitDOTBCO0M5MEI7MTEwQyAxMTZFIDExQjY7QzkwQjsxMTBDIDExNkUgMTFCNjsKK0M5MEM7QzkwQzsxMTBDIDExNkUgMTFCNztDOTBDOzExMEMgMTE2RSAxMUI3OworQzkwRDtDOTBEOzExMEMgMTE2RSAxMUI4O0M5MEQ7MTEwQyAxMTZFIDExQjg7CitDOTBFO0M5MEU7MTEwQyAxMTZFIDExQjk7QzkwRTsxMTBDIDExNkUgMTFCOTsKK0M5MEY7QzkwRjsxMTBDIDExNkUgMTFCQTtDOTBGOzExMEMgMTE2RSAxMUJBOworQzkxMDtDOTEwOzExMEMgMTE2RSAxMUJCO0M5MTA7MTEwQyAxMTZFIDExQkI7CitDOTExO0M5MTE7MTEwQyAxMTZFIDExQkM7QzkxMTsxMTBDIDExNkUgMTFCQzsKK0M5MTI7QzkxMjsxMTBDIDExNkUgMTFCRDtDOTEyOzExMEMgMTE2RSAxMUJEOworQzkxMztDOTEzOzExMEMgMTE2RSAxMUJFO0M5MTM7MTEwQyAxMTZFIDExQkU7CitDOTE0O0M5MTQ7MTEwQyAxMTZFIDExQkY7QzkxNDsxMTBDIDExNkUgMTFCRjsKK0M5MTU7QzkxNTsxMTBDIDExNkUgMTFDMDtDOTE1OzExMEMgMTE2RSAxMUMwOworQzkxNjtDOTE2OzExMEMgMTE2RSAxMUMxO0M5MTY7MTEwQyAxMTZFIDExQzE7CitDOTE3O0M5MTc7MTEwQyAxMTZFIDExQzI7QzkxNzsxMTBDIDExNkUgMTFDMjsKK0M5MTg7QzkxODsxMTBDIDExNkY7QzkxODsxMTBDIDExNkY7CitDOTE5O0M5MTk7MTEwQyAxMTZGIDExQTg7QzkxOTsxMTBDIDExNkYgMTFBODsKK0M5MUE7QzkxQTsxMTBDIDExNkYgMTFBOTtDOTFBOzExMEMgMTE2RiAxMUE5OworQzkxQjtDOTFCOzExMEMgMTE2RiAxMUFBO0M5MUI7MTEwQyAxMTZGIDExQUE7CitDOTFDO0M5MUM7MTEwQyAxMTZGIDExQUI7QzkxQzsxMTBDIDExNkYgMTFBQjsKK0M5MUQ7QzkxRDsxMTBDIDExNkYgMTFBQztDOTFEOzExMEMgMTE2RiAxMUFDOworQzkxRTtDOTFFOzExMEMgMTE2RiAxMUFEO0M5MUU7MTEwQyAxMTZGIDExQUQ7CitDOTFGO0M5MUY7MTEwQyAxMTZGIDExQUU7QzkxRjsxMTBDIDExNkYgMTFBRTsKK0M5MjA7QzkyMDsxMTBDIDExNkYgMTFBRjtDOTIwOzExMEMgMTE2RiAxMUFGOworQzkyMTtDOTIxOzExMEMgMTE2RiAxMUIwO0M5MjE7MTEwQyAxMTZGIDExQjA7CitDOTIyO0M5MjI7MTEwQyAxMTZGIDExQjE7QzkyMjsxMTBDIDExNkYgMTFCMTsKK0M5MjM7QzkyMzsxMTBDIDExNkYgMTFCMjtDOTIzOzExMEMgMTE2RiAxMUIyOworQzkyNDtDOTI0OzExMEMgMTE2RiAxMUIzO0M5MjQ7MTEwQyAxMTZGIDExQjM7CitDOTI1O0M5MjU7MTEwQyAxMTZGIDExQjQ7QzkyNTsxMTBDIDExNkYgMTFCNDsKK0M5MjY7QzkyNjsxMTBDIDExNkYgMTFCNTtDOTI2OzExMEMgMTE2RiAxMUI1OworQzkyNztDOTI3OzExMEMgMTE2RiAxMUI2O0M5Mjc7MTEwQyAxMTZGIDExQjY7CitDOTI4O0M5Mjg7MTEwQyAxMTZGIDExQjc7QzkyODsxMTBDIDExNkYgMTFCNzsKK0M5Mjk7QzkyOTsxMTBDIDExNkYgMTFCODtDOTI5OzExMEMgMTE2RiAxMUI4OworQzkyQTtDOTJBOzExMEMgMTE2RiAxMUI5O0M5MkE7MTEwQyAxMTZGIDExQjk7CitDOTJCO0M5MkI7MTEwQyAxMTZGIDExQkE7QzkyQjsxMTBDIDExNkYgMTFCQTsKK0M5MkM7QzkyQzsxMTBDIDExNkYgMTFCQjtDOTJDOzExMEMgMTE2RiAxMUJCOworQzkyRDtDOTJEOzExMEMgMTE2RiAxMUJDO0M5MkQ7MTEwQyAxMTZGIDExQkM7CitDOTJFO0M5MkU7MTEwQyAxMTZGIDExQkQ7QzkyRTsxMTBDIDExNkYgMTFCRDsKK0M5MkY7QzkyRjsxMTBDIDExNkYgMTFCRTtDOTJGOzExMEMgMTE2RiAxMUJFOworQzkzMDtDOTMwOzExMEMgMTE2RiAxMUJGO0M5MzA7MTEwQyAxMTZGIDExQkY7CitDOTMxO0M5MzE7MTEwQyAxMTZGIDExQzA7QzkzMTsxMTBDIDExNkYgMTFDMDsKK0M5MzI7QzkzMjsxMTBDIDExNkYgMTFDMTtDOTMyOzExMEMgMTE2RiAxMUMxOworQzkzMztDOTMzOzExMEMgMTE2RiAxMUMyO0M5MzM7MTEwQyAxMTZGIDExQzI7CitDOTM0O0M5MzQ7MTEwQyAxMTcwO0M5MzQ7MTEwQyAxMTcwOworQzkzNTtDOTM1OzExMEMgMTE3MCAxMUE4O0M5MzU7MTEwQyAxMTcwIDExQTg7CitDOTM2O0M5MzY7MTEwQyAxMTcwIDExQTk7QzkzNjsxMTBDIDExNzAgMTFBOTsKK0M5Mzc7QzkzNzsxMTBDIDExNzAgMTFBQTtDOTM3OzExMEMgMTE3MCAxMUFBOworQzkzODtDOTM4OzExMEMgMTE3MCAxMUFCO0M5Mzg7MTEwQyAxMTcwIDExQUI7CitDOTM5O0M5Mzk7MTEwQyAxMTcwIDExQUM7QzkzOTsxMTBDIDExNzAgMTFBQzsKK0M5M0E7QzkzQTsxMTBDIDExNzAgMTFBRDtDOTNBOzExMEMgMTE3MCAxMUFEOworQzkzQjtDOTNCOzExMEMgMTE3MCAxMUFFO0M5M0I7MTEwQyAxMTcwIDExQUU7CitDOTNDO0M5M0M7MTEwQyAxMTcwIDExQUY7QzkzQzsxMTBDIDExNzAgMTFBRjsKK0M5M0Q7QzkzRDsxMTBDIDExNzAgMTFCMDtDOTNEOzExMEMgMTE3MCAxMUIwOworQzkzRTtDOTNFOzExMEMgMTE3MCAxMUIxO0M5M0U7MTEwQyAxMTcwIDExQjE7CitDOTNGO0M5M0Y7MTEwQyAxMTcwIDExQjI7QzkzRjsxMTBDIDExNzAgMTFCMjsKK0M5NDA7Qzk0MDsxMTBDIDExNzAgMTFCMztDOTQwOzExMEMgMTE3MCAxMUIzOworQzk0MTtDOTQxOzExMEMgMTE3MCAxMUI0O0M5NDE7MTEwQyAxMTcwIDExQjQ7CitDOTQyO0M5NDI7MTEwQyAxMTcwIDExQjU7Qzk0MjsxMTBDIDExNzAgMTFCNTsKK0M5NDM7Qzk0MzsxMTBDIDExNzAgMTFCNjtDOTQzOzExMEMgMTE3MCAxMUI2OworQzk0NDtDOTQ0OzExMEMgMTE3MCAxMUI3O0M5NDQ7MTEwQyAxMTcwIDExQjc7CitDOTQ1O0M5NDU7MTEwQyAxMTcwIDExQjg7Qzk0NTsxMTBDIDExNzAgMTFCODsKK0M5NDY7Qzk0NjsxMTBDIDExNzAgMTFCOTtDOTQ2OzExMEMgMTE3MCAxMUI5OworQzk0NztDOTQ3OzExMEMgMTE3MCAxMUJBO0M5NDc7MTEwQyAxMTcwIDExQkE7CitDOTQ4O0M5NDg7MTEwQyAxMTcwIDExQkI7Qzk0ODsxMTBDIDExNzAgMTFCQjsKK0M5NDk7Qzk0OTsxMTBDIDExNzAgMTFCQztDOTQ5OzExMEMgMTE3MCAxMUJDOworQzk0QTtDOTRBOzExMEMgMTE3MCAxMUJEO0M5NEE7MTEwQyAxMTcwIDExQkQ7CitDOTRCO0M5NEI7MTEwQyAxMTcwIDExQkU7Qzk0QjsxMTBDIDExNzAgMTFCRTsKK0M5NEM7Qzk0QzsxMTBDIDExNzAgMTFCRjtDOTRDOzExMEMgMTE3MCAxMUJGOworQzk0RDtDOTREOzExMEMgMTE3MCAxMUMwO0M5NEQ7MTEwQyAxMTcwIDExQzA7CitDOTRFO0M5NEU7MTEwQyAxMTcwIDExQzE7Qzk0RTsxMTBDIDExNzAgMTFDMTsKK0M5NEY7Qzk0RjsxMTBDIDExNzAgMTFDMjtDOTRGOzExMEMgMTE3MCAxMUMyOworQzk1MDtDOTUwOzExMEMgMTE3MTtDOTUwOzExMEMgMTE3MTsKK0M5NTE7Qzk1MTsxMTBDIDExNzEgMTFBODtDOTUxOzExMEMgMTE3MSAxMUE4OworQzk1MjtDOTUyOzExMEMgMTE3MSAxMUE5O0M5NTI7MTEwQyAxMTcxIDExQTk7CitDOTUzO0M5NTM7MTEwQyAxMTcxIDExQUE7Qzk1MzsxMTBDIDExNzEgMTFBQTsKK0M5NTQ7Qzk1NDsxMTBDIDExNzEgMTFBQjtDOTU0OzExMEMgMTE3MSAxMUFCOworQzk1NTtDOTU1OzExMEMgMTE3MSAxMUFDO0M5NTU7MTEwQyAxMTcxIDExQUM7CitDOTU2O0M5NTY7MTEwQyAxMTcxIDExQUQ7Qzk1NjsxMTBDIDExNzEgMTFBRDsKK0M5NTc7Qzk1NzsxMTBDIDExNzEgMTFBRTtDOTU3OzExMEMgMTE3MSAxMUFFOworQzk1ODtDOTU4OzExMEMgMTE3MSAxMUFGO0M5NTg7MTEwQyAxMTcxIDExQUY7CitDOTU5O0M5NTk7MTEwQyAxMTcxIDExQjA7Qzk1OTsxMTBDIDExNzEgMTFCMDsKK0M5NUE7Qzk1QTsxMTBDIDExNzEgMTFCMTtDOTVBOzExMEMgMTE3MSAxMUIxOworQzk1QjtDOTVCOzExMEMgMTE3MSAxMUIyO0M5NUI7MTEwQyAxMTcxIDExQjI7CitDOTVDO0M5NUM7MTEwQyAxMTcxIDExQjM7Qzk1QzsxMTBDIDExNzEgMTFCMzsKK0M5NUQ7Qzk1RDsxMTBDIDExNzEgMTFCNDtDOTVEOzExMEMgMTE3MSAxMUI0OworQzk1RTtDOTVFOzExMEMgMTE3MSAxMUI1O0M5NUU7MTEwQyAxMTcxIDExQjU7CitDOTVGO0M5NUY7MTEwQyAxMTcxIDExQjY7Qzk1RjsxMTBDIDExNzEgMTFCNjsKK0M5NjA7Qzk2MDsxMTBDIDExNzEgMTFCNztDOTYwOzExMEMgMTE3MSAxMUI3OworQzk2MTtDOTYxOzExMEMgMTE3MSAxMUI4O0M5NjE7MTEwQyAxMTcxIDExQjg7CitDOTYyO0M5NjI7MTEwQyAxMTcxIDExQjk7Qzk2MjsxMTBDIDExNzEgMTFCOTsKK0M5NjM7Qzk2MzsxMTBDIDExNzEgMTFCQTtDOTYzOzExMEMgMTE3MSAxMUJBOworQzk2NDtDOTY0OzExMEMgMTE3MSAxMUJCO0M5NjQ7MTEwQyAxMTcxIDExQkI7CitDOTY1O0M5NjU7MTEwQyAxMTcxIDExQkM7Qzk2NTsxMTBDIDExNzEgMTFCQzsKK0M5NjY7Qzk2NjsxMTBDIDExNzEgMTFCRDtDOTY2OzExMEMgMTE3MSAxMUJEOworQzk2NztDOTY3OzExMEMgMTE3MSAxMUJFO0M5Njc7MTEwQyAxMTcxIDExQkU7CitDOTY4O0M5Njg7MTEwQyAxMTcxIDExQkY7Qzk2ODsxMTBDIDExNzEgMTFCRjsKK0M5Njk7Qzk2OTsxMTBDIDExNzEgMTFDMDtDOTY5OzExMEMgMTE3MSAxMUMwOworQzk2QTtDOTZBOzExMEMgMTE3MSAxMUMxO0M5NkE7MTEwQyAxMTcxIDExQzE7CitDOTZCO0M5NkI7MTEwQyAxMTcxIDExQzI7Qzk2QjsxMTBDIDExNzEgMTFDMjsKK0M5NkM7Qzk2QzsxMTBDIDExNzI7Qzk2QzsxMTBDIDExNzI7CitDOTZEO0M5NkQ7MTEwQyAxMTcyIDExQTg7Qzk2RDsxMTBDIDExNzIgMTFBODsKK0M5NkU7Qzk2RTsxMTBDIDExNzIgMTFBOTtDOTZFOzExMEMgMTE3MiAxMUE5OworQzk2RjtDOTZGOzExMEMgMTE3MiAxMUFBO0M5NkY7MTEwQyAxMTcyIDExQUE7CitDOTcwO0M5NzA7MTEwQyAxMTcyIDExQUI7Qzk3MDsxMTBDIDExNzIgMTFBQjsKK0M5NzE7Qzk3MTsxMTBDIDExNzIgMTFBQztDOTcxOzExMEMgMTE3MiAxMUFDOworQzk3MjtDOTcyOzExMEMgMTE3MiAxMUFEO0M5NzI7MTEwQyAxMTcyIDExQUQ7CitDOTczO0M5NzM7MTEwQyAxMTcyIDExQUU7Qzk3MzsxMTBDIDExNzIgMTFBRTsKK0M5NzQ7Qzk3NDsxMTBDIDExNzIgMTFBRjtDOTc0OzExMEMgMTE3MiAxMUFGOworQzk3NTtDOTc1OzExMEMgMTE3MiAxMUIwO0M5NzU7MTEwQyAxMTcyIDExQjA7CitDOTc2O0M5NzY7MTEwQyAxMTcyIDExQjE7Qzk3NjsxMTBDIDExNzIgMTFCMTsKK0M5Nzc7Qzk3NzsxMTBDIDExNzIgMTFCMjtDOTc3OzExMEMgMTE3MiAxMUIyOworQzk3ODtDOTc4OzExMEMgMTE3MiAxMUIzO0M5Nzg7MTEwQyAxMTcyIDExQjM7CitDOTc5O0M5Nzk7MTEwQyAxMTcyIDExQjQ7Qzk3OTsxMTBDIDExNzIgMTFCNDsKK0M5N0E7Qzk3QTsxMTBDIDExNzIgMTFCNTtDOTdBOzExMEMgMTE3MiAxMUI1OworQzk3QjtDOTdCOzExMEMgMTE3MiAxMUI2O0M5N0I7MTEwQyAxMTcyIDExQjY7CitDOTdDO0M5N0M7MTEwQyAxMTcyIDExQjc7Qzk3QzsxMTBDIDExNzIgMTFCNzsKK0M5N0Q7Qzk3RDsxMTBDIDExNzIgMTFCODtDOTdEOzExMEMgMTE3MiAxMUI4OworQzk3RTtDOTdFOzExMEMgMTE3MiAxMUI5O0M5N0U7MTEwQyAxMTcyIDExQjk7CitDOTdGO0M5N0Y7MTEwQyAxMTcyIDExQkE7Qzk3RjsxMTBDIDExNzIgMTFCQTsKK0M5ODA7Qzk4MDsxMTBDIDExNzIgMTFCQjtDOTgwOzExMEMgMTE3MiAxMUJCOworQzk4MTtDOTgxOzExMEMgMTE3MiAxMUJDO0M5ODE7MTEwQyAxMTcyIDExQkM7CitDOTgyO0M5ODI7MTEwQyAxMTcyIDExQkQ7Qzk4MjsxMTBDIDExNzIgMTFCRDsKK0M5ODM7Qzk4MzsxMTBDIDExNzIgMTFCRTtDOTgzOzExMEMgMTE3MiAxMUJFOworQzk4NDtDOTg0OzExMEMgMTE3MiAxMUJGO0M5ODQ7MTEwQyAxMTcyIDExQkY7CitDOTg1O0M5ODU7MTEwQyAxMTcyIDExQzA7Qzk4NTsxMTBDIDExNzIgMTFDMDsKK0M5ODY7Qzk4NjsxMTBDIDExNzIgMTFDMTtDOTg2OzExMEMgMTE3MiAxMUMxOworQzk4NztDOTg3OzExMEMgMTE3MiAxMUMyO0M5ODc7MTEwQyAxMTcyIDExQzI7CitDOTg4O0M5ODg7MTEwQyAxMTczO0M5ODg7MTEwQyAxMTczOworQzk4OTtDOTg5OzExMEMgMTE3MyAxMUE4O0M5ODk7MTEwQyAxMTczIDExQTg7CitDOThBO0M5OEE7MTEwQyAxMTczIDExQTk7Qzk4QTsxMTBDIDExNzMgMTFBOTsKK0M5OEI7Qzk4QjsxMTBDIDExNzMgMTFBQTtDOThCOzExMEMgMTE3MyAxMUFBOworQzk4QztDOThDOzExMEMgMTE3MyAxMUFCO0M5OEM7MTEwQyAxMTczIDExQUI7CitDOThEO0M5OEQ7MTEwQyAxMTczIDExQUM7Qzk4RDsxMTBDIDExNzMgMTFBQzsKK0M5OEU7Qzk4RTsxMTBDIDExNzMgMTFBRDtDOThFOzExMEMgMTE3MyAxMUFEOworQzk4RjtDOThGOzExMEMgMTE3MyAxMUFFO0M5OEY7MTEwQyAxMTczIDExQUU7CitDOTkwO0M5OTA7MTEwQyAxMTczIDExQUY7Qzk5MDsxMTBDIDExNzMgMTFBRjsKK0M5OTE7Qzk5MTsxMTBDIDExNzMgMTFCMDtDOTkxOzExMEMgMTE3MyAxMUIwOworQzk5MjtDOTkyOzExMEMgMTE3MyAxMUIxO0M5OTI7MTEwQyAxMTczIDExQjE7CitDOTkzO0M5OTM7MTEwQyAxMTczIDExQjI7Qzk5MzsxMTBDIDExNzMgMTFCMjsKK0M5OTQ7Qzk5NDsxMTBDIDExNzMgMTFCMztDOTk0OzExMEMgMTE3MyAxMUIzOworQzk5NTtDOTk1OzExMEMgMTE3MyAxMUI0O0M5OTU7MTEwQyAxMTczIDExQjQ7CitDOTk2O0M5OTY7MTEwQyAxMTczIDExQjU7Qzk5NjsxMTBDIDExNzMgMTFCNTsKK0M5OTc7Qzk5NzsxMTBDIDExNzMgMTFCNjtDOTk3OzExMEMgMTE3MyAxMUI2OworQzk5ODtDOTk4OzExMEMgMTE3MyAxMUI3O0M5OTg7MTEwQyAxMTczIDExQjc7CitDOTk5O0M5OTk7MTEwQyAxMTczIDExQjg7Qzk5OTsxMTBDIDExNzMgMTFCODsKK0M5OUE7Qzk5QTsxMTBDIDExNzMgMTFCOTtDOTlBOzExMEMgMTE3MyAxMUI5OworQzk5QjtDOTlCOzExMEMgMTE3MyAxMUJBO0M5OUI7MTEwQyAxMTczIDExQkE7CitDOTlDO0M5OUM7MTEwQyAxMTczIDExQkI7Qzk5QzsxMTBDIDExNzMgMTFCQjsKK0M5OUQ7Qzk5RDsxMTBDIDExNzMgMTFCQztDOTlEOzExMEMgMTE3MyAxMUJDOworQzk5RTtDOTlFOzExMEMgMTE3MyAxMUJEO0M5OUU7MTEwQyAxMTczIDExQkQ7CitDOTlGO0M5OUY7MTEwQyAxMTczIDExQkU7Qzk5RjsxMTBDIDExNzMgMTFCRTsKK0M5QTA7QzlBMDsxMTBDIDExNzMgMTFCRjtDOUEwOzExMEMgMTE3MyAxMUJGOworQzlBMTtDOUExOzExMEMgMTE3MyAxMUMwO0M5QTE7MTEwQyAxMTczIDExQzA7CitDOUEyO0M5QTI7MTEwQyAxMTczIDExQzE7QzlBMjsxMTBDIDExNzMgMTFDMTsKK0M5QTM7QzlBMzsxMTBDIDExNzMgMTFDMjtDOUEzOzExMEMgMTE3MyAxMUMyOworQzlBNDtDOUE0OzExMEMgMTE3NDtDOUE0OzExMEMgMTE3NDsKK0M5QTU7QzlBNTsxMTBDIDExNzQgMTFBODtDOUE1OzExMEMgMTE3NCAxMUE4OworQzlBNjtDOUE2OzExMEMgMTE3NCAxMUE5O0M5QTY7MTEwQyAxMTc0IDExQTk7CitDOUE3O0M5QTc7MTEwQyAxMTc0IDExQUE7QzlBNzsxMTBDIDExNzQgMTFBQTsKK0M5QTg7QzlBODsxMTBDIDExNzQgMTFBQjtDOUE4OzExMEMgMTE3NCAxMUFCOworQzlBOTtDOUE5OzExMEMgMTE3NCAxMUFDO0M5QTk7MTEwQyAxMTc0IDExQUM7CitDOUFBO0M5QUE7MTEwQyAxMTc0IDExQUQ7QzlBQTsxMTBDIDExNzQgMTFBRDsKK0M5QUI7QzlBQjsxMTBDIDExNzQgMTFBRTtDOUFCOzExMEMgMTE3NCAxMUFFOworQzlBQztDOUFDOzExMEMgMTE3NCAxMUFGO0M5QUM7MTEwQyAxMTc0IDExQUY7CitDOUFEO0M5QUQ7MTEwQyAxMTc0IDExQjA7QzlBRDsxMTBDIDExNzQgMTFCMDsKK0M5QUU7QzlBRTsxMTBDIDExNzQgMTFCMTtDOUFFOzExMEMgMTE3NCAxMUIxOworQzlBRjtDOUFGOzExMEMgMTE3NCAxMUIyO0M5QUY7MTEwQyAxMTc0IDExQjI7CitDOUIwO0M5QjA7MTEwQyAxMTc0IDExQjM7QzlCMDsxMTBDIDExNzQgMTFCMzsKK0M5QjE7QzlCMTsxMTBDIDExNzQgMTFCNDtDOUIxOzExMEMgMTE3NCAxMUI0OworQzlCMjtDOUIyOzExMEMgMTE3NCAxMUI1O0M5QjI7MTEwQyAxMTc0IDExQjU7CitDOUIzO0M5QjM7MTEwQyAxMTc0IDExQjY7QzlCMzsxMTBDIDExNzQgMTFCNjsKK0M5QjQ7QzlCNDsxMTBDIDExNzQgMTFCNztDOUI0OzExMEMgMTE3NCAxMUI3OworQzlCNTtDOUI1OzExMEMgMTE3NCAxMUI4O0M5QjU7MTEwQyAxMTc0IDExQjg7CitDOUI2O0M5QjY7MTEwQyAxMTc0IDExQjk7QzlCNjsxMTBDIDExNzQgMTFCOTsKK0M5Qjc7QzlCNzsxMTBDIDExNzQgMTFCQTtDOUI3OzExMEMgMTE3NCAxMUJBOworQzlCODtDOUI4OzExMEMgMTE3NCAxMUJCO0M5Qjg7MTEwQyAxMTc0IDExQkI7CitDOUI5O0M5Qjk7MTEwQyAxMTc0IDExQkM7QzlCOTsxMTBDIDExNzQgMTFCQzsKK0M5QkE7QzlCQTsxMTBDIDExNzQgMTFCRDtDOUJBOzExMEMgMTE3NCAxMUJEOworQzlCQjtDOUJCOzExMEMgMTE3NCAxMUJFO0M5QkI7MTEwQyAxMTc0IDExQkU7CitDOUJDO0M5QkM7MTEwQyAxMTc0IDExQkY7QzlCQzsxMTBDIDExNzQgMTFCRjsKK0M5QkQ7QzlCRDsxMTBDIDExNzQgMTFDMDtDOUJEOzExMEMgMTE3NCAxMUMwOworQzlCRTtDOUJFOzExMEMgMTE3NCAxMUMxO0M5QkU7MTEwQyAxMTc0IDExQzE7CitDOUJGO0M5QkY7MTEwQyAxMTc0IDExQzI7QzlCRjsxMTBDIDExNzQgMTFDMjsKK0M5QzA7QzlDMDsxMTBDIDExNzU7QzlDMDsxMTBDIDExNzU7CitDOUMxO0M5QzE7MTEwQyAxMTc1IDExQTg7QzlDMTsxMTBDIDExNzUgMTFBODsKK0M5QzI7QzlDMjsxMTBDIDExNzUgMTFBOTtDOUMyOzExMEMgMTE3NSAxMUE5OworQzlDMztDOUMzOzExMEMgMTE3NSAxMUFBO0M5QzM7MTEwQyAxMTc1IDExQUE7CitDOUM0O0M5QzQ7MTEwQyAxMTc1IDExQUI7QzlDNDsxMTBDIDExNzUgMTFBQjsKK0M5QzU7QzlDNTsxMTBDIDExNzUgMTFBQztDOUM1OzExMEMgMTE3NSAxMUFDOworQzlDNjtDOUM2OzExMEMgMTE3NSAxMUFEO0M5QzY7MTEwQyAxMTc1IDExQUQ7CitDOUM3O0M5Qzc7MTEwQyAxMTc1IDExQUU7QzlDNzsxMTBDIDExNzUgMTFBRTsKK0M5Qzg7QzlDODsxMTBDIDExNzUgMTFBRjtDOUM4OzExMEMgMTE3NSAxMUFGOworQzlDOTtDOUM5OzExMEMgMTE3NSAxMUIwO0M5Qzk7MTEwQyAxMTc1IDExQjA7CitDOUNBO0M5Q0E7MTEwQyAxMTc1IDExQjE7QzlDQTsxMTBDIDExNzUgMTFCMTsKK0M5Q0I7QzlDQjsxMTBDIDExNzUgMTFCMjtDOUNCOzExMEMgMTE3NSAxMUIyOworQzlDQztDOUNDOzExMEMgMTE3NSAxMUIzO0M5Q0M7MTEwQyAxMTc1IDExQjM7CitDOUNEO0M5Q0Q7MTEwQyAxMTc1IDExQjQ7QzlDRDsxMTBDIDExNzUgMTFCNDsKK0M5Q0U7QzlDRTsxMTBDIDExNzUgMTFCNTtDOUNFOzExMEMgMTE3NSAxMUI1OworQzlDRjtDOUNGOzExMEMgMTE3NSAxMUI2O0M5Q0Y7MTEwQyAxMTc1IDExQjY7CitDOUQwO0M5RDA7MTEwQyAxMTc1IDExQjc7QzlEMDsxMTBDIDExNzUgMTFCNzsKK0M5RDE7QzlEMTsxMTBDIDExNzUgMTFCODtDOUQxOzExMEMgMTE3NSAxMUI4OworQzlEMjtDOUQyOzExMEMgMTE3NSAxMUI5O0M5RDI7MTEwQyAxMTc1IDExQjk7CitDOUQzO0M5RDM7MTEwQyAxMTc1IDExQkE7QzlEMzsxMTBDIDExNzUgMTFCQTsKK0M5RDQ7QzlENDsxMTBDIDExNzUgMTFCQjtDOUQ0OzExMEMgMTE3NSAxMUJCOworQzlENTtDOUQ1OzExMEMgMTE3NSAxMUJDO0M5RDU7MTEwQyAxMTc1IDExQkM7CitDOUQ2O0M5RDY7MTEwQyAxMTc1IDExQkQ7QzlENjsxMTBDIDExNzUgMTFCRDsKK0M5RDc7QzlENzsxMTBDIDExNzUgMTFCRTtDOUQ3OzExMEMgMTE3NSAxMUJFOworQzlEODtDOUQ4OzExMEMgMTE3NSAxMUJGO0M5RDg7MTEwQyAxMTc1IDExQkY7CitDOUQ5O0M5RDk7MTEwQyAxMTc1IDExQzA7QzlEOTsxMTBDIDExNzUgMTFDMDsKK0M5REE7QzlEQTsxMTBDIDExNzUgMTFDMTtDOURBOzExMEMgMTE3NSAxMUMxOworQzlEQjtDOURCOzExMEMgMTE3NSAxMUMyO0M5REI7MTEwQyAxMTc1IDExQzI7CitDOURDO0M5REM7MTEwRCAxMTYxO0M5REM7MTEwRCAxMTYxOworQzlERDtDOUREOzExMEQgMTE2MSAxMUE4O0M5REQ7MTEwRCAxMTYxIDExQTg7CitDOURFO0M5REU7MTEwRCAxMTYxIDExQTk7QzlERTsxMTBEIDExNjEgMTFBOTsKK0M5REY7QzlERjsxMTBEIDExNjEgMTFBQTtDOURGOzExMEQgMTE2MSAxMUFBOworQzlFMDtDOUUwOzExMEQgMTE2MSAxMUFCO0M5RTA7MTEwRCAxMTYxIDExQUI7CitDOUUxO0M5RTE7MTEwRCAxMTYxIDExQUM7QzlFMTsxMTBEIDExNjEgMTFBQzsKK0M5RTI7QzlFMjsxMTBEIDExNjEgMTFBRDtDOUUyOzExMEQgMTE2MSAxMUFEOworQzlFMztDOUUzOzExMEQgMTE2MSAxMUFFO0M5RTM7MTEwRCAxMTYxIDExQUU7CitDOUU0O0M5RTQ7MTEwRCAxMTYxIDExQUY7QzlFNDsxMTBEIDExNjEgMTFBRjsKK0M5RTU7QzlFNTsxMTBEIDExNjEgMTFCMDtDOUU1OzExMEQgMTE2MSAxMUIwOworQzlFNjtDOUU2OzExMEQgMTE2MSAxMUIxO0M5RTY7MTEwRCAxMTYxIDExQjE7CitDOUU3O0M5RTc7MTEwRCAxMTYxIDExQjI7QzlFNzsxMTBEIDExNjEgMTFCMjsKK0M5RTg7QzlFODsxMTBEIDExNjEgMTFCMztDOUU4OzExMEQgMTE2MSAxMUIzOworQzlFOTtDOUU5OzExMEQgMTE2MSAxMUI0O0M5RTk7MTEwRCAxMTYxIDExQjQ7CitDOUVBO0M5RUE7MTEwRCAxMTYxIDExQjU7QzlFQTsxMTBEIDExNjEgMTFCNTsKK0M5RUI7QzlFQjsxMTBEIDExNjEgMTFCNjtDOUVCOzExMEQgMTE2MSAxMUI2OworQzlFQztDOUVDOzExMEQgMTE2MSAxMUI3O0M5RUM7MTEwRCAxMTYxIDExQjc7CitDOUVEO0M5RUQ7MTEwRCAxMTYxIDExQjg7QzlFRDsxMTBEIDExNjEgMTFCODsKK0M5RUU7QzlFRTsxMTBEIDExNjEgMTFCOTtDOUVFOzExMEQgMTE2MSAxMUI5OworQzlFRjtDOUVGOzExMEQgMTE2MSAxMUJBO0M5RUY7MTEwRCAxMTYxIDExQkE7CitDOUYwO0M5RjA7MTEwRCAxMTYxIDExQkI7QzlGMDsxMTBEIDExNjEgMTFCQjsKK0M5RjE7QzlGMTsxMTBEIDExNjEgMTFCQztDOUYxOzExMEQgMTE2MSAxMUJDOworQzlGMjtDOUYyOzExMEQgMTE2MSAxMUJEO0M5RjI7MTEwRCAxMTYxIDExQkQ7CitDOUYzO0M5RjM7MTEwRCAxMTYxIDExQkU7QzlGMzsxMTBEIDExNjEgMTFCRTsKK0M5RjQ7QzlGNDsxMTBEIDExNjEgMTFCRjtDOUY0OzExMEQgMTE2MSAxMUJGOworQzlGNTtDOUY1OzExMEQgMTE2MSAxMUMwO0M5RjU7MTEwRCAxMTYxIDExQzA7CitDOUY2O0M5RjY7MTEwRCAxMTYxIDExQzE7QzlGNjsxMTBEIDExNjEgMTFDMTsKK0M5Rjc7QzlGNzsxMTBEIDExNjEgMTFDMjtDOUY3OzExMEQgMTE2MSAxMUMyOworQzlGODtDOUY4OzExMEQgMTE2MjtDOUY4OzExMEQgMTE2MjsKK0M5Rjk7QzlGOTsxMTBEIDExNjIgMTFBODtDOUY5OzExMEQgMTE2MiAxMUE4OworQzlGQTtDOUZBOzExMEQgMTE2MiAxMUE5O0M5RkE7MTEwRCAxMTYyIDExQTk7CitDOUZCO0M5RkI7MTEwRCAxMTYyIDExQUE7QzlGQjsxMTBEIDExNjIgMTFBQTsKK0M5RkM7QzlGQzsxMTBEIDExNjIgMTFBQjtDOUZDOzExMEQgMTE2MiAxMUFCOworQzlGRDtDOUZEOzExMEQgMTE2MiAxMUFDO0M5RkQ7MTEwRCAxMTYyIDExQUM7CitDOUZFO0M5RkU7MTEwRCAxMTYyIDExQUQ7QzlGRTsxMTBEIDExNjIgMTFBRDsKK0M5RkY7QzlGRjsxMTBEIDExNjIgMTFBRTtDOUZGOzExMEQgMTE2MiAxMUFFOworQ0EwMDtDQTAwOzExMEQgMTE2MiAxMUFGO0NBMDA7MTEwRCAxMTYyIDExQUY7CitDQTAxO0NBMDE7MTEwRCAxMTYyIDExQjA7Q0EwMTsxMTBEIDExNjIgMTFCMDsKK0NBMDI7Q0EwMjsxMTBEIDExNjIgMTFCMTtDQTAyOzExMEQgMTE2MiAxMUIxOworQ0EwMztDQTAzOzExMEQgMTE2MiAxMUIyO0NBMDM7MTEwRCAxMTYyIDExQjI7CitDQTA0O0NBMDQ7MTEwRCAxMTYyIDExQjM7Q0EwNDsxMTBEIDExNjIgMTFCMzsKK0NBMDU7Q0EwNTsxMTBEIDExNjIgMTFCNDtDQTA1OzExMEQgMTE2MiAxMUI0OworQ0EwNjtDQTA2OzExMEQgMTE2MiAxMUI1O0NBMDY7MTEwRCAxMTYyIDExQjU7CitDQTA3O0NBMDc7MTEwRCAxMTYyIDExQjY7Q0EwNzsxMTBEIDExNjIgMTFCNjsKK0NBMDg7Q0EwODsxMTBEIDExNjIgMTFCNztDQTA4OzExMEQgMTE2MiAxMUI3OworQ0EwOTtDQTA5OzExMEQgMTE2MiAxMUI4O0NBMDk7MTEwRCAxMTYyIDExQjg7CitDQTBBO0NBMEE7MTEwRCAxMTYyIDExQjk7Q0EwQTsxMTBEIDExNjIgMTFCOTsKK0NBMEI7Q0EwQjsxMTBEIDExNjIgMTFCQTtDQTBCOzExMEQgMTE2MiAxMUJBOworQ0EwQztDQTBDOzExMEQgMTE2MiAxMUJCO0NBMEM7MTEwRCAxMTYyIDExQkI7CitDQTBEO0NBMEQ7MTEwRCAxMTYyIDExQkM7Q0EwRDsxMTBEIDExNjIgMTFCQzsKK0NBMEU7Q0EwRTsxMTBEIDExNjIgMTFCRDtDQTBFOzExMEQgMTE2MiAxMUJEOworQ0EwRjtDQTBGOzExMEQgMTE2MiAxMUJFO0NBMEY7MTEwRCAxMTYyIDExQkU7CitDQTEwO0NBMTA7MTEwRCAxMTYyIDExQkY7Q0ExMDsxMTBEIDExNjIgMTFCRjsKK0NBMTE7Q0ExMTsxMTBEIDExNjIgMTFDMDtDQTExOzExMEQgMTE2MiAxMUMwOworQ0ExMjtDQTEyOzExMEQgMTE2MiAxMUMxO0NBMTI7MTEwRCAxMTYyIDExQzE7CitDQTEzO0NBMTM7MTEwRCAxMTYyIDExQzI7Q0ExMzsxMTBEIDExNjIgMTFDMjsKK0NBMTQ7Q0ExNDsxMTBEIDExNjM7Q0ExNDsxMTBEIDExNjM7CitDQTE1O0NBMTU7MTEwRCAxMTYzIDExQTg7Q0ExNTsxMTBEIDExNjMgMTFBODsKK0NBMTY7Q0ExNjsxMTBEIDExNjMgMTFBOTtDQTE2OzExMEQgMTE2MyAxMUE5OworQ0ExNztDQTE3OzExMEQgMTE2MyAxMUFBO0NBMTc7MTEwRCAxMTYzIDExQUE7CitDQTE4O0NBMTg7MTEwRCAxMTYzIDExQUI7Q0ExODsxMTBEIDExNjMgMTFBQjsKK0NBMTk7Q0ExOTsxMTBEIDExNjMgMTFBQztDQTE5OzExMEQgMTE2MyAxMUFDOworQ0ExQTtDQTFBOzExMEQgMTE2MyAxMUFEO0NBMUE7MTEwRCAxMTYzIDExQUQ7CitDQTFCO0NBMUI7MTEwRCAxMTYzIDExQUU7Q0ExQjsxMTBEIDExNjMgMTFBRTsKK0NBMUM7Q0ExQzsxMTBEIDExNjMgMTFBRjtDQTFDOzExMEQgMTE2MyAxMUFGOworQ0ExRDtDQTFEOzExMEQgMTE2MyAxMUIwO0NBMUQ7MTEwRCAxMTYzIDExQjA7CitDQTFFO0NBMUU7MTEwRCAxMTYzIDExQjE7Q0ExRTsxMTBEIDExNjMgMTFCMTsKK0NBMUY7Q0ExRjsxMTBEIDExNjMgMTFCMjtDQTFGOzExMEQgMTE2MyAxMUIyOworQ0EyMDtDQTIwOzExMEQgMTE2MyAxMUIzO0NBMjA7MTEwRCAxMTYzIDExQjM7CitDQTIxO0NBMjE7MTEwRCAxMTYzIDExQjQ7Q0EyMTsxMTBEIDExNjMgMTFCNDsKK0NBMjI7Q0EyMjsxMTBEIDExNjMgMTFCNTtDQTIyOzExMEQgMTE2MyAxMUI1OworQ0EyMztDQTIzOzExMEQgMTE2MyAxMUI2O0NBMjM7MTEwRCAxMTYzIDExQjY7CitDQTI0O0NBMjQ7MTEwRCAxMTYzIDExQjc7Q0EyNDsxMTBEIDExNjMgMTFCNzsKK0NBMjU7Q0EyNTsxMTBEIDExNjMgMTFCODtDQTI1OzExMEQgMTE2MyAxMUI4OworQ0EyNjtDQTI2OzExMEQgMTE2MyAxMUI5O0NBMjY7MTEwRCAxMTYzIDExQjk7CitDQTI3O0NBMjc7MTEwRCAxMTYzIDExQkE7Q0EyNzsxMTBEIDExNjMgMTFCQTsKK0NBMjg7Q0EyODsxMTBEIDExNjMgMTFCQjtDQTI4OzExMEQgMTE2MyAxMUJCOworQ0EyOTtDQTI5OzExMEQgMTE2MyAxMUJDO0NBMjk7MTEwRCAxMTYzIDExQkM7CitDQTJBO0NBMkE7MTEwRCAxMTYzIDExQkQ7Q0EyQTsxMTBEIDExNjMgMTFCRDsKK0NBMkI7Q0EyQjsxMTBEIDExNjMgMTFCRTtDQTJCOzExMEQgMTE2MyAxMUJFOworQ0EyQztDQTJDOzExMEQgMTE2MyAxMUJGO0NBMkM7MTEwRCAxMTYzIDExQkY7CitDQTJEO0NBMkQ7MTEwRCAxMTYzIDExQzA7Q0EyRDsxMTBEIDExNjMgMTFDMDsKK0NBMkU7Q0EyRTsxMTBEIDExNjMgMTFDMTtDQTJFOzExMEQgMTE2MyAxMUMxOworQ0EyRjtDQTJGOzExMEQgMTE2MyAxMUMyO0NBMkY7MTEwRCAxMTYzIDExQzI7CitDQTMwO0NBMzA7MTEwRCAxMTY0O0NBMzA7MTEwRCAxMTY0OworQ0EzMTtDQTMxOzExMEQgMTE2NCAxMUE4O0NBMzE7MTEwRCAxMTY0IDExQTg7CitDQTMyO0NBMzI7MTEwRCAxMTY0IDExQTk7Q0EzMjsxMTBEIDExNjQgMTFBOTsKK0NBMzM7Q0EzMzsxMTBEIDExNjQgMTFBQTtDQTMzOzExMEQgMTE2NCAxMUFBOworQ0EzNDtDQTM0OzExMEQgMTE2NCAxMUFCO0NBMzQ7MTEwRCAxMTY0IDExQUI7CitDQTM1O0NBMzU7MTEwRCAxMTY0IDExQUM7Q0EzNTsxMTBEIDExNjQgMTFBQzsKK0NBMzY7Q0EzNjsxMTBEIDExNjQgMTFBRDtDQTM2OzExMEQgMTE2NCAxMUFEOworQ0EzNztDQTM3OzExMEQgMTE2NCAxMUFFO0NBMzc7MTEwRCAxMTY0IDExQUU7CitDQTM4O0NBMzg7MTEwRCAxMTY0IDExQUY7Q0EzODsxMTBEIDExNjQgMTFBRjsKK0NBMzk7Q0EzOTsxMTBEIDExNjQgMTFCMDtDQTM5OzExMEQgMTE2NCAxMUIwOworQ0EzQTtDQTNBOzExMEQgMTE2NCAxMUIxO0NBM0E7MTEwRCAxMTY0IDExQjE7CitDQTNCO0NBM0I7MTEwRCAxMTY0IDExQjI7Q0EzQjsxMTBEIDExNjQgMTFCMjsKK0NBM0M7Q0EzQzsxMTBEIDExNjQgMTFCMztDQTNDOzExMEQgMTE2NCAxMUIzOworQ0EzRDtDQTNEOzExMEQgMTE2NCAxMUI0O0NBM0Q7MTEwRCAxMTY0IDExQjQ7CitDQTNFO0NBM0U7MTEwRCAxMTY0IDExQjU7Q0EzRTsxMTBEIDExNjQgMTFCNTsKK0NBM0Y7Q0EzRjsxMTBEIDExNjQgMTFCNjtDQTNGOzExMEQgMTE2NCAxMUI2OworQ0E0MDtDQTQwOzExMEQgMTE2NCAxMUI3O0NBNDA7MTEwRCAxMTY0IDExQjc7CitDQTQxO0NBNDE7MTEwRCAxMTY0IDExQjg7Q0E0MTsxMTBEIDExNjQgMTFCODsKK0NBNDI7Q0E0MjsxMTBEIDExNjQgMTFCOTtDQTQyOzExMEQgMTE2NCAxMUI5OworQ0E0MztDQTQzOzExMEQgMTE2NCAxMUJBO0NBNDM7MTEwRCAxMTY0IDExQkE7CitDQTQ0O0NBNDQ7MTEwRCAxMTY0IDExQkI7Q0E0NDsxMTBEIDExNjQgMTFCQjsKK0NBNDU7Q0E0NTsxMTBEIDExNjQgMTFCQztDQTQ1OzExMEQgMTE2NCAxMUJDOworQ0E0NjtDQTQ2OzExMEQgMTE2NCAxMUJEO0NBNDY7MTEwRCAxMTY0IDExQkQ7CitDQTQ3O0NBNDc7MTEwRCAxMTY0IDExQkU7Q0E0NzsxMTBEIDExNjQgMTFCRTsKK0NBNDg7Q0E0ODsxMTBEIDExNjQgMTFCRjtDQTQ4OzExMEQgMTE2NCAxMUJGOworQ0E0OTtDQTQ5OzExMEQgMTE2NCAxMUMwO0NBNDk7MTEwRCAxMTY0IDExQzA7CitDQTRBO0NBNEE7MTEwRCAxMTY0IDExQzE7Q0E0QTsxMTBEIDExNjQgMTFDMTsKK0NBNEI7Q0E0QjsxMTBEIDExNjQgMTFDMjtDQTRCOzExMEQgMTE2NCAxMUMyOworQ0E0QztDQTRDOzExMEQgMTE2NTtDQTRDOzExMEQgMTE2NTsKK0NBNEQ7Q0E0RDsxMTBEIDExNjUgMTFBODtDQTREOzExMEQgMTE2NSAxMUE4OworQ0E0RTtDQTRFOzExMEQgMTE2NSAxMUE5O0NBNEU7MTEwRCAxMTY1IDExQTk7CitDQTRGO0NBNEY7MTEwRCAxMTY1IDExQUE7Q0E0RjsxMTBEIDExNjUgMTFBQTsKK0NBNTA7Q0E1MDsxMTBEIDExNjUgMTFBQjtDQTUwOzExMEQgMTE2NSAxMUFCOworQ0E1MTtDQTUxOzExMEQgMTE2NSAxMUFDO0NBNTE7MTEwRCAxMTY1IDExQUM7CitDQTUyO0NBNTI7MTEwRCAxMTY1IDExQUQ7Q0E1MjsxMTBEIDExNjUgMTFBRDsKK0NBNTM7Q0E1MzsxMTBEIDExNjUgMTFBRTtDQTUzOzExMEQgMTE2NSAxMUFFOworQ0E1NDtDQTU0OzExMEQgMTE2NSAxMUFGO0NBNTQ7MTEwRCAxMTY1IDExQUY7CitDQTU1O0NBNTU7MTEwRCAxMTY1IDExQjA7Q0E1NTsxMTBEIDExNjUgMTFCMDsKK0NBNTY7Q0E1NjsxMTBEIDExNjUgMTFCMTtDQTU2OzExMEQgMTE2NSAxMUIxOworQ0E1NztDQTU3OzExMEQgMTE2NSAxMUIyO0NBNTc7MTEwRCAxMTY1IDExQjI7CitDQTU4O0NBNTg7MTEwRCAxMTY1IDExQjM7Q0E1ODsxMTBEIDExNjUgMTFCMzsKK0NBNTk7Q0E1OTsxMTBEIDExNjUgMTFCNDtDQTU5OzExMEQgMTE2NSAxMUI0OworQ0E1QTtDQTVBOzExMEQgMTE2NSAxMUI1O0NBNUE7MTEwRCAxMTY1IDExQjU7CitDQTVCO0NBNUI7MTEwRCAxMTY1IDExQjY7Q0E1QjsxMTBEIDExNjUgMTFCNjsKK0NBNUM7Q0E1QzsxMTBEIDExNjUgMTFCNztDQTVDOzExMEQgMTE2NSAxMUI3OworQ0E1RDtDQTVEOzExMEQgMTE2NSAxMUI4O0NBNUQ7MTEwRCAxMTY1IDExQjg7CitDQTVFO0NBNUU7MTEwRCAxMTY1IDExQjk7Q0E1RTsxMTBEIDExNjUgMTFCOTsKK0NBNUY7Q0E1RjsxMTBEIDExNjUgMTFCQTtDQTVGOzExMEQgMTE2NSAxMUJBOworQ0E2MDtDQTYwOzExMEQgMTE2NSAxMUJCO0NBNjA7MTEwRCAxMTY1IDExQkI7CitDQTYxO0NBNjE7MTEwRCAxMTY1IDExQkM7Q0E2MTsxMTBEIDExNjUgMTFCQzsKK0NBNjI7Q0E2MjsxMTBEIDExNjUgMTFCRDtDQTYyOzExMEQgMTE2NSAxMUJEOworQ0E2MztDQTYzOzExMEQgMTE2NSAxMUJFO0NBNjM7MTEwRCAxMTY1IDExQkU7CitDQTY0O0NBNjQ7MTEwRCAxMTY1IDExQkY7Q0E2NDsxMTBEIDExNjUgMTFCRjsKK0NBNjU7Q0E2NTsxMTBEIDExNjUgMTFDMDtDQTY1OzExMEQgMTE2NSAxMUMwOworQ0E2NjtDQTY2OzExMEQgMTE2NSAxMUMxO0NBNjY7MTEwRCAxMTY1IDExQzE7CitDQTY3O0NBNjc7MTEwRCAxMTY1IDExQzI7Q0E2NzsxMTBEIDExNjUgMTFDMjsKK0NBNjg7Q0E2ODsxMTBEIDExNjY7Q0E2ODsxMTBEIDExNjY7CitDQTY5O0NBNjk7MTEwRCAxMTY2IDExQTg7Q0E2OTsxMTBEIDExNjYgMTFBODsKK0NBNkE7Q0E2QTsxMTBEIDExNjYgMTFBOTtDQTZBOzExMEQgMTE2NiAxMUE5OworQ0E2QjtDQTZCOzExMEQgMTE2NiAxMUFBO0NBNkI7MTEwRCAxMTY2IDExQUE7CitDQTZDO0NBNkM7MTEwRCAxMTY2IDExQUI7Q0E2QzsxMTBEIDExNjYgMTFBQjsKK0NBNkQ7Q0E2RDsxMTBEIDExNjYgMTFBQztDQTZEOzExMEQgMTE2NiAxMUFDOworQ0E2RTtDQTZFOzExMEQgMTE2NiAxMUFEO0NBNkU7MTEwRCAxMTY2IDExQUQ7CitDQTZGO0NBNkY7MTEwRCAxMTY2IDExQUU7Q0E2RjsxMTBEIDExNjYgMTFBRTsKK0NBNzA7Q0E3MDsxMTBEIDExNjYgMTFBRjtDQTcwOzExMEQgMTE2NiAxMUFGOworQ0E3MTtDQTcxOzExMEQgMTE2NiAxMUIwO0NBNzE7MTEwRCAxMTY2IDExQjA7CitDQTcyO0NBNzI7MTEwRCAxMTY2IDExQjE7Q0E3MjsxMTBEIDExNjYgMTFCMTsKK0NBNzM7Q0E3MzsxMTBEIDExNjYgMTFCMjtDQTczOzExMEQgMTE2NiAxMUIyOworQ0E3NDtDQTc0OzExMEQgMTE2NiAxMUIzO0NBNzQ7MTEwRCAxMTY2IDExQjM7CitDQTc1O0NBNzU7MTEwRCAxMTY2IDExQjQ7Q0E3NTsxMTBEIDExNjYgMTFCNDsKK0NBNzY7Q0E3NjsxMTBEIDExNjYgMTFCNTtDQTc2OzExMEQgMTE2NiAxMUI1OworQ0E3NztDQTc3OzExMEQgMTE2NiAxMUI2O0NBNzc7MTEwRCAxMTY2IDExQjY7CitDQTc4O0NBNzg7MTEwRCAxMTY2IDExQjc7Q0E3ODsxMTBEIDExNjYgMTFCNzsKK0NBNzk7Q0E3OTsxMTBEIDExNjYgMTFCODtDQTc5OzExMEQgMTE2NiAxMUI4OworQ0E3QTtDQTdBOzExMEQgMTE2NiAxMUI5O0NBN0E7MTEwRCAxMTY2IDExQjk7CitDQTdCO0NBN0I7MTEwRCAxMTY2IDExQkE7Q0E3QjsxMTBEIDExNjYgMTFCQTsKK0NBN0M7Q0E3QzsxMTBEIDExNjYgMTFCQjtDQTdDOzExMEQgMTE2NiAxMUJCOworQ0E3RDtDQTdEOzExMEQgMTE2NiAxMUJDO0NBN0Q7MTEwRCAxMTY2IDExQkM7CitDQTdFO0NBN0U7MTEwRCAxMTY2IDExQkQ7Q0E3RTsxMTBEIDExNjYgMTFCRDsKK0NBN0Y7Q0E3RjsxMTBEIDExNjYgMTFCRTtDQTdGOzExMEQgMTE2NiAxMUJFOworQ0E4MDtDQTgwOzExMEQgMTE2NiAxMUJGO0NBODA7MTEwRCAxMTY2IDExQkY7CitDQTgxO0NBODE7MTEwRCAxMTY2IDExQzA7Q0E4MTsxMTBEIDExNjYgMTFDMDsKK0NBODI7Q0E4MjsxMTBEIDExNjYgMTFDMTtDQTgyOzExMEQgMTE2NiAxMUMxOworQ0E4MztDQTgzOzExMEQgMTE2NiAxMUMyO0NBODM7MTEwRCAxMTY2IDExQzI7CitDQTg0O0NBODQ7MTEwRCAxMTY3O0NBODQ7MTEwRCAxMTY3OworQ0E4NTtDQTg1OzExMEQgMTE2NyAxMUE4O0NBODU7MTEwRCAxMTY3IDExQTg7CitDQTg2O0NBODY7MTEwRCAxMTY3IDExQTk7Q0E4NjsxMTBEIDExNjcgMTFBOTsKK0NBODc7Q0E4NzsxMTBEIDExNjcgMTFBQTtDQTg3OzExMEQgMTE2NyAxMUFBOworQ0E4ODtDQTg4OzExMEQgMTE2NyAxMUFCO0NBODg7MTEwRCAxMTY3IDExQUI7CitDQTg5O0NBODk7MTEwRCAxMTY3IDExQUM7Q0E4OTsxMTBEIDExNjcgMTFBQzsKK0NBOEE7Q0E4QTsxMTBEIDExNjcgMTFBRDtDQThBOzExMEQgMTE2NyAxMUFEOworQ0E4QjtDQThCOzExMEQgMTE2NyAxMUFFO0NBOEI7MTEwRCAxMTY3IDExQUU7CitDQThDO0NBOEM7MTEwRCAxMTY3IDExQUY7Q0E4QzsxMTBEIDExNjcgMTFBRjsKK0NBOEQ7Q0E4RDsxMTBEIDExNjcgMTFCMDtDQThEOzExMEQgMTE2NyAxMUIwOworQ0E4RTtDQThFOzExMEQgMTE2NyAxMUIxO0NBOEU7MTEwRCAxMTY3IDExQjE7CitDQThGO0NBOEY7MTEwRCAxMTY3IDExQjI7Q0E4RjsxMTBEIDExNjcgMTFCMjsKK0NBOTA7Q0E5MDsxMTBEIDExNjcgMTFCMztDQTkwOzExMEQgMTE2NyAxMUIzOworQ0E5MTtDQTkxOzExMEQgMTE2NyAxMUI0O0NBOTE7MTEwRCAxMTY3IDExQjQ7CitDQTkyO0NBOTI7MTEwRCAxMTY3IDExQjU7Q0E5MjsxMTBEIDExNjcgMTFCNTsKK0NBOTM7Q0E5MzsxMTBEIDExNjcgMTFCNjtDQTkzOzExMEQgMTE2NyAxMUI2OworQ0E5NDtDQTk0OzExMEQgMTE2NyAxMUI3O0NBOTQ7MTEwRCAxMTY3IDExQjc7CitDQTk1O0NBOTU7MTEwRCAxMTY3IDExQjg7Q0E5NTsxMTBEIDExNjcgMTFCODsKK0NBOTY7Q0E5NjsxMTBEIDExNjcgMTFCOTtDQTk2OzExMEQgMTE2NyAxMUI5OworQ0E5NztDQTk3OzExMEQgMTE2NyAxMUJBO0NBOTc7MTEwRCAxMTY3IDExQkE7CitDQTk4O0NBOTg7MTEwRCAxMTY3IDExQkI7Q0E5ODsxMTBEIDExNjcgMTFCQjsKK0NBOTk7Q0E5OTsxMTBEIDExNjcgMTFCQztDQTk5OzExMEQgMTE2NyAxMUJDOworQ0E5QTtDQTlBOzExMEQgMTE2NyAxMUJEO0NBOUE7MTEwRCAxMTY3IDExQkQ7CitDQTlCO0NBOUI7MTEwRCAxMTY3IDExQkU7Q0E5QjsxMTBEIDExNjcgMTFCRTsKK0NBOUM7Q0E5QzsxMTBEIDExNjcgMTFCRjtDQTlDOzExMEQgMTE2NyAxMUJGOworQ0E5RDtDQTlEOzExMEQgMTE2NyAxMUMwO0NBOUQ7MTEwRCAxMTY3IDExQzA7CitDQTlFO0NBOUU7MTEwRCAxMTY3IDExQzE7Q0E5RTsxMTBEIDExNjcgMTFDMTsKK0NBOUY7Q0E5RjsxMTBEIDExNjcgMTFDMjtDQTlGOzExMEQgMTE2NyAxMUMyOworQ0FBMDtDQUEwOzExMEQgMTE2ODtDQUEwOzExMEQgMTE2ODsKK0NBQTE7Q0FBMTsxMTBEIDExNjggMTFBODtDQUExOzExMEQgMTE2OCAxMUE4OworQ0FBMjtDQUEyOzExMEQgMTE2OCAxMUE5O0NBQTI7MTEwRCAxMTY4IDExQTk7CitDQUEzO0NBQTM7MTEwRCAxMTY4IDExQUE7Q0FBMzsxMTBEIDExNjggMTFBQTsKK0NBQTQ7Q0FBNDsxMTBEIDExNjggMTFBQjtDQUE0OzExMEQgMTE2OCAxMUFCOworQ0FBNTtDQUE1OzExMEQgMTE2OCAxMUFDO0NBQTU7MTEwRCAxMTY4IDExQUM7CitDQUE2O0NBQTY7MTEwRCAxMTY4IDExQUQ7Q0FBNjsxMTBEIDExNjggMTFBRDsKK0NBQTc7Q0FBNzsxMTBEIDExNjggMTFBRTtDQUE3OzExMEQgMTE2OCAxMUFFOworQ0FBODtDQUE4OzExMEQgMTE2OCAxMUFGO0NBQTg7MTEwRCAxMTY4IDExQUY7CitDQUE5O0NBQTk7MTEwRCAxMTY4IDExQjA7Q0FBOTsxMTBEIDExNjggMTFCMDsKK0NBQUE7Q0FBQTsxMTBEIDExNjggMTFCMTtDQUFBOzExMEQgMTE2OCAxMUIxOworQ0FBQjtDQUFCOzExMEQgMTE2OCAxMUIyO0NBQUI7MTEwRCAxMTY4IDExQjI7CitDQUFDO0NBQUM7MTEwRCAxMTY4IDExQjM7Q0FBQzsxMTBEIDExNjggMTFCMzsKK0NBQUQ7Q0FBRDsxMTBEIDExNjggMTFCNDtDQUFEOzExMEQgMTE2OCAxMUI0OworQ0FBRTtDQUFFOzExMEQgMTE2OCAxMUI1O0NBQUU7MTEwRCAxMTY4IDExQjU7CitDQUFGO0NBQUY7MTEwRCAxMTY4IDExQjY7Q0FBRjsxMTBEIDExNjggMTFCNjsKK0NBQjA7Q0FCMDsxMTBEIDExNjggMTFCNztDQUIwOzExMEQgMTE2OCAxMUI3OworQ0FCMTtDQUIxOzExMEQgMTE2OCAxMUI4O0NBQjE7MTEwRCAxMTY4IDExQjg7CitDQUIyO0NBQjI7MTEwRCAxMTY4IDExQjk7Q0FCMjsxMTBEIDExNjggMTFCOTsKK0NBQjM7Q0FCMzsxMTBEIDExNjggMTFCQTtDQUIzOzExMEQgMTE2OCAxMUJBOworQ0FCNDtDQUI0OzExMEQgMTE2OCAxMUJCO0NBQjQ7MTEwRCAxMTY4IDExQkI7CitDQUI1O0NBQjU7MTEwRCAxMTY4IDExQkM7Q0FCNTsxMTBEIDExNjggMTFCQzsKK0NBQjY7Q0FCNjsxMTBEIDExNjggMTFCRDtDQUI2OzExMEQgMTE2OCAxMUJEOworQ0FCNztDQUI3OzExMEQgMTE2OCAxMUJFO0NBQjc7MTEwRCAxMTY4IDExQkU7CitDQUI4O0NBQjg7MTEwRCAxMTY4IDExQkY7Q0FCODsxMTBEIDExNjggMTFCRjsKK0NBQjk7Q0FCOTsxMTBEIDExNjggMTFDMDtDQUI5OzExMEQgMTE2OCAxMUMwOworQ0FCQTtDQUJBOzExMEQgMTE2OCAxMUMxO0NBQkE7MTEwRCAxMTY4IDExQzE7CitDQUJCO0NBQkI7MTEwRCAxMTY4IDExQzI7Q0FCQjsxMTBEIDExNjggMTFDMjsKK0NBQkM7Q0FCQzsxMTBEIDExNjk7Q0FCQzsxMTBEIDExNjk7CitDQUJEO0NBQkQ7MTEwRCAxMTY5IDExQTg7Q0FCRDsxMTBEIDExNjkgMTFBODsKK0NBQkU7Q0FCRTsxMTBEIDExNjkgMTFBOTtDQUJFOzExMEQgMTE2OSAxMUE5OworQ0FCRjtDQUJGOzExMEQgMTE2OSAxMUFBO0NBQkY7MTEwRCAxMTY5IDExQUE7CitDQUMwO0NBQzA7MTEwRCAxMTY5IDExQUI7Q0FDMDsxMTBEIDExNjkgMTFBQjsKK0NBQzE7Q0FDMTsxMTBEIDExNjkgMTFBQztDQUMxOzExMEQgMTE2OSAxMUFDOworQ0FDMjtDQUMyOzExMEQgMTE2OSAxMUFEO0NBQzI7MTEwRCAxMTY5IDExQUQ7CitDQUMzO0NBQzM7MTEwRCAxMTY5IDExQUU7Q0FDMzsxMTBEIDExNjkgMTFBRTsKK0NBQzQ7Q0FDNDsxMTBEIDExNjkgMTFBRjtDQUM0OzExMEQgMTE2OSAxMUFGOworQ0FDNTtDQUM1OzExMEQgMTE2OSAxMUIwO0NBQzU7MTEwRCAxMTY5IDExQjA7CitDQUM2O0NBQzY7MTEwRCAxMTY5IDExQjE7Q0FDNjsxMTBEIDExNjkgMTFCMTsKK0NBQzc7Q0FDNzsxMTBEIDExNjkgMTFCMjtDQUM3OzExMEQgMTE2OSAxMUIyOworQ0FDODtDQUM4OzExMEQgMTE2OSAxMUIzO0NBQzg7MTEwRCAxMTY5IDExQjM7CitDQUM5O0NBQzk7MTEwRCAxMTY5IDExQjQ7Q0FDOTsxMTBEIDExNjkgMTFCNDsKK0NBQ0E7Q0FDQTsxMTBEIDExNjkgMTFCNTtDQUNBOzExMEQgMTE2OSAxMUI1OworQ0FDQjtDQUNCOzExMEQgMTE2OSAxMUI2O0NBQ0I7MTEwRCAxMTY5IDExQjY7CitDQUNDO0NBQ0M7MTEwRCAxMTY5IDExQjc7Q0FDQzsxMTBEIDExNjkgMTFCNzsKK0NBQ0Q7Q0FDRDsxMTBEIDExNjkgMTFCODtDQUNEOzExMEQgMTE2OSAxMUI4OworQ0FDRTtDQUNFOzExMEQgMTE2OSAxMUI5O0NBQ0U7MTEwRCAxMTY5IDExQjk7CitDQUNGO0NBQ0Y7MTEwRCAxMTY5IDExQkE7Q0FDRjsxMTBEIDExNjkgMTFCQTsKK0NBRDA7Q0FEMDsxMTBEIDExNjkgMTFCQjtDQUQwOzExMEQgMTE2OSAxMUJCOworQ0FEMTtDQUQxOzExMEQgMTE2OSAxMUJDO0NBRDE7MTEwRCAxMTY5IDExQkM7CitDQUQyO0NBRDI7MTEwRCAxMTY5IDExQkQ7Q0FEMjsxMTBEIDExNjkgMTFCRDsKK0NBRDM7Q0FEMzsxMTBEIDExNjkgMTFCRTtDQUQzOzExMEQgMTE2OSAxMUJFOworQ0FENDtDQUQ0OzExMEQgMTE2OSAxMUJGO0NBRDQ7MTEwRCAxMTY5IDExQkY7CitDQUQ1O0NBRDU7MTEwRCAxMTY5IDExQzA7Q0FENTsxMTBEIDExNjkgMTFDMDsKK0NBRDY7Q0FENjsxMTBEIDExNjkgMTFDMTtDQUQ2OzExMEQgMTE2OSAxMUMxOworQ0FENztDQUQ3OzExMEQgMTE2OSAxMUMyO0NBRDc7MTEwRCAxMTY5IDExQzI7CitDQUQ4O0NBRDg7MTEwRCAxMTZBO0NBRDg7MTEwRCAxMTZBOworQ0FEOTtDQUQ5OzExMEQgMTE2QSAxMUE4O0NBRDk7MTEwRCAxMTZBIDExQTg7CitDQURBO0NBREE7MTEwRCAxMTZBIDExQTk7Q0FEQTsxMTBEIDExNkEgMTFBOTsKK0NBREI7Q0FEQjsxMTBEIDExNkEgMTFBQTtDQURCOzExMEQgMTE2QSAxMUFBOworQ0FEQztDQURDOzExMEQgMTE2QSAxMUFCO0NBREM7MTEwRCAxMTZBIDExQUI7CitDQUREO0NBREQ7MTEwRCAxMTZBIDExQUM7Q0FERDsxMTBEIDExNkEgMTFBQzsKK0NBREU7Q0FERTsxMTBEIDExNkEgMTFBRDtDQURFOzExMEQgMTE2QSAxMUFEOworQ0FERjtDQURGOzExMEQgMTE2QSAxMUFFO0NBREY7MTEwRCAxMTZBIDExQUU7CitDQUUwO0NBRTA7MTEwRCAxMTZBIDExQUY7Q0FFMDsxMTBEIDExNkEgMTFBRjsKK0NBRTE7Q0FFMTsxMTBEIDExNkEgMTFCMDtDQUUxOzExMEQgMTE2QSAxMUIwOworQ0FFMjtDQUUyOzExMEQgMTE2QSAxMUIxO0NBRTI7MTEwRCAxMTZBIDExQjE7CitDQUUzO0NBRTM7MTEwRCAxMTZBIDExQjI7Q0FFMzsxMTBEIDExNkEgMTFCMjsKK0NBRTQ7Q0FFNDsxMTBEIDExNkEgMTFCMztDQUU0OzExMEQgMTE2QSAxMUIzOworQ0FFNTtDQUU1OzExMEQgMTE2QSAxMUI0O0NBRTU7MTEwRCAxMTZBIDExQjQ7CitDQUU2O0NBRTY7MTEwRCAxMTZBIDExQjU7Q0FFNjsxMTBEIDExNkEgMTFCNTsKK0NBRTc7Q0FFNzsxMTBEIDExNkEgMTFCNjtDQUU3OzExMEQgMTE2QSAxMUI2OworQ0FFODtDQUU4OzExMEQgMTE2QSAxMUI3O0NBRTg7MTEwRCAxMTZBIDExQjc7CitDQUU5O0NBRTk7MTEwRCAxMTZBIDExQjg7Q0FFOTsxMTBEIDExNkEgMTFCODsKK0NBRUE7Q0FFQTsxMTBEIDExNkEgMTFCOTtDQUVBOzExMEQgMTE2QSAxMUI5OworQ0FFQjtDQUVCOzExMEQgMTE2QSAxMUJBO0NBRUI7MTEwRCAxMTZBIDExQkE7CitDQUVDO0NBRUM7MTEwRCAxMTZBIDExQkI7Q0FFQzsxMTBEIDExNkEgMTFCQjsKK0NBRUQ7Q0FFRDsxMTBEIDExNkEgMTFCQztDQUVEOzExMEQgMTE2QSAxMUJDOworQ0FFRTtDQUVFOzExMEQgMTE2QSAxMUJEO0NBRUU7MTEwRCAxMTZBIDExQkQ7CitDQUVGO0NBRUY7MTEwRCAxMTZBIDExQkU7Q0FFRjsxMTBEIDExNkEgMTFCRTsKK0NBRjA7Q0FGMDsxMTBEIDExNkEgMTFCRjtDQUYwOzExMEQgMTE2QSAxMUJGOworQ0FGMTtDQUYxOzExMEQgMTE2QSAxMUMwO0NBRjE7MTEwRCAxMTZBIDExQzA7CitDQUYyO0NBRjI7MTEwRCAxMTZBIDExQzE7Q0FGMjsxMTBEIDExNkEgMTFDMTsKK0NBRjM7Q0FGMzsxMTBEIDExNkEgMTFDMjtDQUYzOzExMEQgMTE2QSAxMUMyOworQ0FGNDtDQUY0OzExMEQgMTE2QjtDQUY0OzExMEQgMTE2QjsKK0NBRjU7Q0FGNTsxMTBEIDExNkIgMTFBODtDQUY1OzExMEQgMTE2QiAxMUE4OworQ0FGNjtDQUY2OzExMEQgMTE2QiAxMUE5O0NBRjY7MTEwRCAxMTZCIDExQTk7CitDQUY3O0NBRjc7MTEwRCAxMTZCIDExQUE7Q0FGNzsxMTBEIDExNkIgMTFBQTsKK0NBRjg7Q0FGODsxMTBEIDExNkIgMTFBQjtDQUY4OzExMEQgMTE2QiAxMUFCOworQ0FGOTtDQUY5OzExMEQgMTE2QiAxMUFDO0NBRjk7MTEwRCAxMTZCIDExQUM7CitDQUZBO0NBRkE7MTEwRCAxMTZCIDExQUQ7Q0FGQTsxMTBEIDExNkIgMTFBRDsKK0NBRkI7Q0FGQjsxMTBEIDExNkIgMTFBRTtDQUZCOzExMEQgMTE2QiAxMUFFOworQ0FGQztDQUZDOzExMEQgMTE2QiAxMUFGO0NBRkM7MTEwRCAxMTZCIDExQUY7CitDQUZEO0NBRkQ7MTEwRCAxMTZCIDExQjA7Q0FGRDsxMTBEIDExNkIgMTFCMDsKK0NBRkU7Q0FGRTsxMTBEIDExNkIgMTFCMTtDQUZFOzExMEQgMTE2QiAxMUIxOworQ0FGRjtDQUZGOzExMEQgMTE2QiAxMUIyO0NBRkY7MTEwRCAxMTZCIDExQjI7CitDQjAwO0NCMDA7MTEwRCAxMTZCIDExQjM7Q0IwMDsxMTBEIDExNkIgMTFCMzsKK0NCMDE7Q0IwMTsxMTBEIDExNkIgMTFCNDtDQjAxOzExMEQgMTE2QiAxMUI0OworQ0IwMjtDQjAyOzExMEQgMTE2QiAxMUI1O0NCMDI7MTEwRCAxMTZCIDExQjU7CitDQjAzO0NCMDM7MTEwRCAxMTZCIDExQjY7Q0IwMzsxMTBEIDExNkIgMTFCNjsKK0NCMDQ7Q0IwNDsxMTBEIDExNkIgMTFCNztDQjA0OzExMEQgMTE2QiAxMUI3OworQ0IwNTtDQjA1OzExMEQgMTE2QiAxMUI4O0NCMDU7MTEwRCAxMTZCIDExQjg7CitDQjA2O0NCMDY7MTEwRCAxMTZCIDExQjk7Q0IwNjsxMTBEIDExNkIgMTFCOTsKK0NCMDc7Q0IwNzsxMTBEIDExNkIgMTFCQTtDQjA3OzExMEQgMTE2QiAxMUJBOworQ0IwODtDQjA4OzExMEQgMTE2QiAxMUJCO0NCMDg7MTEwRCAxMTZCIDExQkI7CitDQjA5O0NCMDk7MTEwRCAxMTZCIDExQkM7Q0IwOTsxMTBEIDExNkIgMTFCQzsKK0NCMEE7Q0IwQTsxMTBEIDExNkIgMTFCRDtDQjBBOzExMEQgMTE2QiAxMUJEOworQ0IwQjtDQjBCOzExMEQgMTE2QiAxMUJFO0NCMEI7MTEwRCAxMTZCIDExQkU7CitDQjBDO0NCMEM7MTEwRCAxMTZCIDExQkY7Q0IwQzsxMTBEIDExNkIgMTFCRjsKK0NCMEQ7Q0IwRDsxMTBEIDExNkIgMTFDMDtDQjBEOzExMEQgMTE2QiAxMUMwOworQ0IwRTtDQjBFOzExMEQgMTE2QiAxMUMxO0NCMEU7MTEwRCAxMTZCIDExQzE7CitDQjBGO0NCMEY7MTEwRCAxMTZCIDExQzI7Q0IwRjsxMTBEIDExNkIgMTFDMjsKK0NCMTA7Q0IxMDsxMTBEIDExNkM7Q0IxMDsxMTBEIDExNkM7CitDQjExO0NCMTE7MTEwRCAxMTZDIDExQTg7Q0IxMTsxMTBEIDExNkMgMTFBODsKK0NCMTI7Q0IxMjsxMTBEIDExNkMgMTFBOTtDQjEyOzExMEQgMTE2QyAxMUE5OworQ0IxMztDQjEzOzExMEQgMTE2QyAxMUFBO0NCMTM7MTEwRCAxMTZDIDExQUE7CitDQjE0O0NCMTQ7MTEwRCAxMTZDIDExQUI7Q0IxNDsxMTBEIDExNkMgMTFBQjsKK0NCMTU7Q0IxNTsxMTBEIDExNkMgMTFBQztDQjE1OzExMEQgMTE2QyAxMUFDOworQ0IxNjtDQjE2OzExMEQgMTE2QyAxMUFEO0NCMTY7MTEwRCAxMTZDIDExQUQ7CitDQjE3O0NCMTc7MTEwRCAxMTZDIDExQUU7Q0IxNzsxMTBEIDExNkMgMTFBRTsKK0NCMTg7Q0IxODsxMTBEIDExNkMgMTFBRjtDQjE4OzExMEQgMTE2QyAxMUFGOworQ0IxOTtDQjE5OzExMEQgMTE2QyAxMUIwO0NCMTk7MTEwRCAxMTZDIDExQjA7CitDQjFBO0NCMUE7MTEwRCAxMTZDIDExQjE7Q0IxQTsxMTBEIDExNkMgMTFCMTsKK0NCMUI7Q0IxQjsxMTBEIDExNkMgMTFCMjtDQjFCOzExMEQgMTE2QyAxMUIyOworQ0IxQztDQjFDOzExMEQgMTE2QyAxMUIzO0NCMUM7MTEwRCAxMTZDIDExQjM7CitDQjFEO0NCMUQ7MTEwRCAxMTZDIDExQjQ7Q0IxRDsxMTBEIDExNkMgMTFCNDsKK0NCMUU7Q0IxRTsxMTBEIDExNkMgMTFCNTtDQjFFOzExMEQgMTE2QyAxMUI1OworQ0IxRjtDQjFGOzExMEQgMTE2QyAxMUI2O0NCMUY7MTEwRCAxMTZDIDExQjY7CitDQjIwO0NCMjA7MTEwRCAxMTZDIDExQjc7Q0IyMDsxMTBEIDExNkMgMTFCNzsKK0NCMjE7Q0IyMTsxMTBEIDExNkMgMTFCODtDQjIxOzExMEQgMTE2QyAxMUI4OworQ0IyMjtDQjIyOzExMEQgMTE2QyAxMUI5O0NCMjI7MTEwRCAxMTZDIDExQjk7CitDQjIzO0NCMjM7MTEwRCAxMTZDIDExQkE7Q0IyMzsxMTBEIDExNkMgMTFCQTsKK0NCMjQ7Q0IyNDsxMTBEIDExNkMgMTFCQjtDQjI0OzExMEQgMTE2QyAxMUJCOworQ0IyNTtDQjI1OzExMEQgMTE2QyAxMUJDO0NCMjU7MTEwRCAxMTZDIDExQkM7CitDQjI2O0NCMjY7MTEwRCAxMTZDIDExQkQ7Q0IyNjsxMTBEIDExNkMgMTFCRDsKK0NCMjc7Q0IyNzsxMTBEIDExNkMgMTFCRTtDQjI3OzExMEQgMTE2QyAxMUJFOworQ0IyODtDQjI4OzExMEQgMTE2QyAxMUJGO0NCMjg7MTEwRCAxMTZDIDExQkY7CitDQjI5O0NCMjk7MTEwRCAxMTZDIDExQzA7Q0IyOTsxMTBEIDExNkMgMTFDMDsKK0NCMkE7Q0IyQTsxMTBEIDExNkMgMTFDMTtDQjJBOzExMEQgMTE2QyAxMUMxOworQ0IyQjtDQjJCOzExMEQgMTE2QyAxMUMyO0NCMkI7MTEwRCAxMTZDIDExQzI7CitDQjJDO0NCMkM7MTEwRCAxMTZEO0NCMkM7MTEwRCAxMTZEOworQ0IyRDtDQjJEOzExMEQgMTE2RCAxMUE4O0NCMkQ7MTEwRCAxMTZEIDExQTg7CitDQjJFO0NCMkU7MTEwRCAxMTZEIDExQTk7Q0IyRTsxMTBEIDExNkQgMTFBOTsKK0NCMkY7Q0IyRjsxMTBEIDExNkQgMTFBQTtDQjJGOzExMEQgMTE2RCAxMUFBOworQ0IzMDtDQjMwOzExMEQgMTE2RCAxMUFCO0NCMzA7MTEwRCAxMTZEIDExQUI7CitDQjMxO0NCMzE7MTEwRCAxMTZEIDExQUM7Q0IzMTsxMTBEIDExNkQgMTFBQzsKK0NCMzI7Q0IzMjsxMTBEIDExNkQgMTFBRDtDQjMyOzExMEQgMTE2RCAxMUFEOworQ0IzMztDQjMzOzExMEQgMTE2RCAxMUFFO0NCMzM7MTEwRCAxMTZEIDExQUU7CitDQjM0O0NCMzQ7MTEwRCAxMTZEIDExQUY7Q0IzNDsxMTBEIDExNkQgMTFBRjsKK0NCMzU7Q0IzNTsxMTBEIDExNkQgMTFCMDtDQjM1OzExMEQgMTE2RCAxMUIwOworQ0IzNjtDQjM2OzExMEQgMTE2RCAxMUIxO0NCMzY7MTEwRCAxMTZEIDExQjE7CitDQjM3O0NCMzc7MTEwRCAxMTZEIDExQjI7Q0IzNzsxMTBEIDExNkQgMTFCMjsKK0NCMzg7Q0IzODsxMTBEIDExNkQgMTFCMztDQjM4OzExMEQgMTE2RCAxMUIzOworQ0IzOTtDQjM5OzExMEQgMTE2RCAxMUI0O0NCMzk7MTEwRCAxMTZEIDExQjQ7CitDQjNBO0NCM0E7MTEwRCAxMTZEIDExQjU7Q0IzQTsxMTBEIDExNkQgMTFCNTsKK0NCM0I7Q0IzQjsxMTBEIDExNkQgMTFCNjtDQjNCOzExMEQgMTE2RCAxMUI2OworQ0IzQztDQjNDOzExMEQgMTE2RCAxMUI3O0NCM0M7MTEwRCAxMTZEIDExQjc7CitDQjNEO0NCM0Q7MTEwRCAxMTZEIDExQjg7Q0IzRDsxMTBEIDExNkQgMTFCODsKK0NCM0U7Q0IzRTsxMTBEIDExNkQgMTFCOTtDQjNFOzExMEQgMTE2RCAxMUI5OworQ0IzRjtDQjNGOzExMEQgMTE2RCAxMUJBO0NCM0Y7MTEwRCAxMTZEIDExQkE7CitDQjQwO0NCNDA7MTEwRCAxMTZEIDExQkI7Q0I0MDsxMTBEIDExNkQgMTFCQjsKK0NCNDE7Q0I0MTsxMTBEIDExNkQgMTFCQztDQjQxOzExMEQgMTE2RCAxMUJDOworQ0I0MjtDQjQyOzExMEQgMTE2RCAxMUJEO0NCNDI7MTEwRCAxMTZEIDExQkQ7CitDQjQzO0NCNDM7MTEwRCAxMTZEIDExQkU7Q0I0MzsxMTBEIDExNkQgMTFCRTsKK0NCNDQ7Q0I0NDsxMTBEIDExNkQgMTFCRjtDQjQ0OzExMEQgMTE2RCAxMUJGOworQ0I0NTtDQjQ1OzExMEQgMTE2RCAxMUMwO0NCNDU7MTEwRCAxMTZEIDExQzA7CitDQjQ2O0NCNDY7MTEwRCAxMTZEIDExQzE7Q0I0NjsxMTBEIDExNkQgMTFDMTsKK0NCNDc7Q0I0NzsxMTBEIDExNkQgMTFDMjtDQjQ3OzExMEQgMTE2RCAxMUMyOworQ0I0ODtDQjQ4OzExMEQgMTE2RTtDQjQ4OzExMEQgMTE2RTsKK0NCNDk7Q0I0OTsxMTBEIDExNkUgMTFBODtDQjQ5OzExMEQgMTE2RSAxMUE4OworQ0I0QTtDQjRBOzExMEQgMTE2RSAxMUE5O0NCNEE7MTEwRCAxMTZFIDExQTk7CitDQjRCO0NCNEI7MTEwRCAxMTZFIDExQUE7Q0I0QjsxMTBEIDExNkUgMTFBQTsKK0NCNEM7Q0I0QzsxMTBEIDExNkUgMTFBQjtDQjRDOzExMEQgMTE2RSAxMUFCOworQ0I0RDtDQjREOzExMEQgMTE2RSAxMUFDO0NCNEQ7MTEwRCAxMTZFIDExQUM7CitDQjRFO0NCNEU7MTEwRCAxMTZFIDExQUQ7Q0I0RTsxMTBEIDExNkUgMTFBRDsKK0NCNEY7Q0I0RjsxMTBEIDExNkUgMTFBRTtDQjRGOzExMEQgMTE2RSAxMUFFOworQ0I1MDtDQjUwOzExMEQgMTE2RSAxMUFGO0NCNTA7MTEwRCAxMTZFIDExQUY7CitDQjUxO0NCNTE7MTEwRCAxMTZFIDExQjA7Q0I1MTsxMTBEIDExNkUgMTFCMDsKK0NCNTI7Q0I1MjsxMTBEIDExNkUgMTFCMTtDQjUyOzExMEQgMTE2RSAxMUIxOworQ0I1MztDQjUzOzExMEQgMTE2RSAxMUIyO0NCNTM7MTEwRCAxMTZFIDExQjI7CitDQjU0O0NCNTQ7MTEwRCAxMTZFIDExQjM7Q0I1NDsxMTBEIDExNkUgMTFCMzsKK0NCNTU7Q0I1NTsxMTBEIDExNkUgMTFCNDtDQjU1OzExMEQgMTE2RSAxMUI0OworQ0I1NjtDQjU2OzExMEQgMTE2RSAxMUI1O0NCNTY7MTEwRCAxMTZFIDExQjU7CitDQjU3O0NCNTc7MTEwRCAxMTZFIDExQjY7Q0I1NzsxMTBEIDExNkUgMTFCNjsKK0NCNTg7Q0I1ODsxMTBEIDExNkUgMTFCNztDQjU4OzExMEQgMTE2RSAxMUI3OworQ0I1OTtDQjU5OzExMEQgMTE2RSAxMUI4O0NCNTk7MTEwRCAxMTZFIDExQjg7CitDQjVBO0NCNUE7MTEwRCAxMTZFIDExQjk7Q0I1QTsxMTBEIDExNkUgMTFCOTsKK0NCNUI7Q0I1QjsxMTBEIDExNkUgMTFCQTtDQjVCOzExMEQgMTE2RSAxMUJBOworQ0I1QztDQjVDOzExMEQgMTE2RSAxMUJCO0NCNUM7MTEwRCAxMTZFIDExQkI7CitDQjVEO0NCNUQ7MTEwRCAxMTZFIDExQkM7Q0I1RDsxMTBEIDExNkUgMTFCQzsKK0NCNUU7Q0I1RTsxMTBEIDExNkUgMTFCRDtDQjVFOzExMEQgMTE2RSAxMUJEOworQ0I1RjtDQjVGOzExMEQgMTE2RSAxMUJFO0NCNUY7MTEwRCAxMTZFIDExQkU7CitDQjYwO0NCNjA7MTEwRCAxMTZFIDExQkY7Q0I2MDsxMTBEIDExNkUgMTFCRjsKK0NCNjE7Q0I2MTsxMTBEIDExNkUgMTFDMDtDQjYxOzExMEQgMTE2RSAxMUMwOworQ0I2MjtDQjYyOzExMEQgMTE2RSAxMUMxO0NCNjI7MTEwRCAxMTZFIDExQzE7CitDQjYzO0NCNjM7MTEwRCAxMTZFIDExQzI7Q0I2MzsxMTBEIDExNkUgMTFDMjsKK0NCNjQ7Q0I2NDsxMTBEIDExNkY7Q0I2NDsxMTBEIDExNkY7CitDQjY1O0NCNjU7MTEwRCAxMTZGIDExQTg7Q0I2NTsxMTBEIDExNkYgMTFBODsKK0NCNjY7Q0I2NjsxMTBEIDExNkYgMTFBOTtDQjY2OzExMEQgMTE2RiAxMUE5OworQ0I2NztDQjY3OzExMEQgMTE2RiAxMUFBO0NCNjc7MTEwRCAxMTZGIDExQUE7CitDQjY4O0NCNjg7MTEwRCAxMTZGIDExQUI7Q0I2ODsxMTBEIDExNkYgMTFBQjsKK0NCNjk7Q0I2OTsxMTBEIDExNkYgMTFBQztDQjY5OzExMEQgMTE2RiAxMUFDOworQ0I2QTtDQjZBOzExMEQgMTE2RiAxMUFEO0NCNkE7MTEwRCAxMTZGIDExQUQ7CitDQjZCO0NCNkI7MTEwRCAxMTZGIDExQUU7Q0I2QjsxMTBEIDExNkYgMTFBRTsKK0NCNkM7Q0I2QzsxMTBEIDExNkYgMTFBRjtDQjZDOzExMEQgMTE2RiAxMUFGOworQ0I2RDtDQjZEOzExMEQgMTE2RiAxMUIwO0NCNkQ7MTEwRCAxMTZGIDExQjA7CitDQjZFO0NCNkU7MTEwRCAxMTZGIDExQjE7Q0I2RTsxMTBEIDExNkYgMTFCMTsKK0NCNkY7Q0I2RjsxMTBEIDExNkYgMTFCMjtDQjZGOzExMEQgMTE2RiAxMUIyOworQ0I3MDtDQjcwOzExMEQgMTE2RiAxMUIzO0NCNzA7MTEwRCAxMTZGIDExQjM7CitDQjcxO0NCNzE7MTEwRCAxMTZGIDExQjQ7Q0I3MTsxMTBEIDExNkYgMTFCNDsKK0NCNzI7Q0I3MjsxMTBEIDExNkYgMTFCNTtDQjcyOzExMEQgMTE2RiAxMUI1OworQ0I3MztDQjczOzExMEQgMTE2RiAxMUI2O0NCNzM7MTEwRCAxMTZGIDExQjY7CitDQjc0O0NCNzQ7MTEwRCAxMTZGIDExQjc7Q0I3NDsxMTBEIDExNkYgMTFCNzsKK0NCNzU7Q0I3NTsxMTBEIDExNkYgMTFCODtDQjc1OzExMEQgMTE2RiAxMUI4OworQ0I3NjtDQjc2OzExMEQgMTE2RiAxMUI5O0NCNzY7MTEwRCAxMTZGIDExQjk7CitDQjc3O0NCNzc7MTEwRCAxMTZGIDExQkE7Q0I3NzsxMTBEIDExNkYgMTFCQTsKK0NCNzg7Q0I3ODsxMTBEIDExNkYgMTFCQjtDQjc4OzExMEQgMTE2RiAxMUJCOworQ0I3OTtDQjc5OzExMEQgMTE2RiAxMUJDO0NCNzk7MTEwRCAxMTZGIDExQkM7CitDQjdBO0NCN0E7MTEwRCAxMTZGIDExQkQ7Q0I3QTsxMTBEIDExNkYgMTFCRDsKK0NCN0I7Q0I3QjsxMTBEIDExNkYgMTFCRTtDQjdCOzExMEQgMTE2RiAxMUJFOworQ0I3QztDQjdDOzExMEQgMTE2RiAxMUJGO0NCN0M7MTEwRCAxMTZGIDExQkY7CitDQjdEO0NCN0Q7MTEwRCAxMTZGIDExQzA7Q0I3RDsxMTBEIDExNkYgMTFDMDsKK0NCN0U7Q0I3RTsxMTBEIDExNkYgMTFDMTtDQjdFOzExMEQgMTE2RiAxMUMxOworQ0I3RjtDQjdGOzExMEQgMTE2RiAxMUMyO0NCN0Y7MTEwRCAxMTZGIDExQzI7CitDQjgwO0NCODA7MTEwRCAxMTcwO0NCODA7MTEwRCAxMTcwOworQ0I4MTtDQjgxOzExMEQgMTE3MCAxMUE4O0NCODE7MTEwRCAxMTcwIDExQTg7CitDQjgyO0NCODI7MTEwRCAxMTcwIDExQTk7Q0I4MjsxMTBEIDExNzAgMTFBOTsKK0NCODM7Q0I4MzsxMTBEIDExNzAgMTFBQTtDQjgzOzExMEQgMTE3MCAxMUFBOworQ0I4NDtDQjg0OzExMEQgMTE3MCAxMUFCO0NCODQ7MTEwRCAxMTcwIDExQUI7CitDQjg1O0NCODU7MTEwRCAxMTcwIDExQUM7Q0I4NTsxMTBEIDExNzAgMTFBQzsKK0NCODY7Q0I4NjsxMTBEIDExNzAgMTFBRDtDQjg2OzExMEQgMTE3MCAxMUFEOworQ0I4NztDQjg3OzExMEQgMTE3MCAxMUFFO0NCODc7MTEwRCAxMTcwIDExQUU7CitDQjg4O0NCODg7MTEwRCAxMTcwIDExQUY7Q0I4ODsxMTBEIDExNzAgMTFBRjsKK0NCODk7Q0I4OTsxMTBEIDExNzAgMTFCMDtDQjg5OzExMEQgMTE3MCAxMUIwOworQ0I4QTtDQjhBOzExMEQgMTE3MCAxMUIxO0NCOEE7MTEwRCAxMTcwIDExQjE7CitDQjhCO0NCOEI7MTEwRCAxMTcwIDExQjI7Q0I4QjsxMTBEIDExNzAgMTFCMjsKK0NCOEM7Q0I4QzsxMTBEIDExNzAgMTFCMztDQjhDOzExMEQgMTE3MCAxMUIzOworQ0I4RDtDQjhEOzExMEQgMTE3MCAxMUI0O0NCOEQ7MTEwRCAxMTcwIDExQjQ7CitDQjhFO0NCOEU7MTEwRCAxMTcwIDExQjU7Q0I4RTsxMTBEIDExNzAgMTFCNTsKK0NCOEY7Q0I4RjsxMTBEIDExNzAgMTFCNjtDQjhGOzExMEQgMTE3MCAxMUI2OworQ0I5MDtDQjkwOzExMEQgMTE3MCAxMUI3O0NCOTA7MTEwRCAxMTcwIDExQjc7CitDQjkxO0NCOTE7MTEwRCAxMTcwIDExQjg7Q0I5MTsxMTBEIDExNzAgMTFCODsKK0NCOTI7Q0I5MjsxMTBEIDExNzAgMTFCOTtDQjkyOzExMEQgMTE3MCAxMUI5OworQ0I5MztDQjkzOzExMEQgMTE3MCAxMUJBO0NCOTM7MTEwRCAxMTcwIDExQkE7CitDQjk0O0NCOTQ7MTEwRCAxMTcwIDExQkI7Q0I5NDsxMTBEIDExNzAgMTFCQjsKK0NCOTU7Q0I5NTsxMTBEIDExNzAgMTFCQztDQjk1OzExMEQgMTE3MCAxMUJDOworQ0I5NjtDQjk2OzExMEQgMTE3MCAxMUJEO0NCOTY7MTEwRCAxMTcwIDExQkQ7CitDQjk3O0NCOTc7MTEwRCAxMTcwIDExQkU7Q0I5NzsxMTBEIDExNzAgMTFCRTsKK0NCOTg7Q0I5ODsxMTBEIDExNzAgMTFCRjtDQjk4OzExMEQgMTE3MCAxMUJGOworQ0I5OTtDQjk5OzExMEQgMTE3MCAxMUMwO0NCOTk7MTEwRCAxMTcwIDExQzA7CitDQjlBO0NCOUE7MTEwRCAxMTcwIDExQzE7Q0I5QTsxMTBEIDExNzAgMTFDMTsKK0NCOUI7Q0I5QjsxMTBEIDExNzAgMTFDMjtDQjlCOzExMEQgMTE3MCAxMUMyOworQ0I5QztDQjlDOzExMEQgMTE3MTtDQjlDOzExMEQgMTE3MTsKK0NCOUQ7Q0I5RDsxMTBEIDExNzEgMTFBODtDQjlEOzExMEQgMTE3MSAxMUE4OworQ0I5RTtDQjlFOzExMEQgMTE3MSAxMUE5O0NCOUU7MTEwRCAxMTcxIDExQTk7CitDQjlGO0NCOUY7MTEwRCAxMTcxIDExQUE7Q0I5RjsxMTBEIDExNzEgMTFBQTsKK0NCQTA7Q0JBMDsxMTBEIDExNzEgMTFBQjtDQkEwOzExMEQgMTE3MSAxMUFCOworQ0JBMTtDQkExOzExMEQgMTE3MSAxMUFDO0NCQTE7MTEwRCAxMTcxIDExQUM7CitDQkEyO0NCQTI7MTEwRCAxMTcxIDExQUQ7Q0JBMjsxMTBEIDExNzEgMTFBRDsKK0NCQTM7Q0JBMzsxMTBEIDExNzEgMTFBRTtDQkEzOzExMEQgMTE3MSAxMUFFOworQ0JBNDtDQkE0OzExMEQgMTE3MSAxMUFGO0NCQTQ7MTEwRCAxMTcxIDExQUY7CitDQkE1O0NCQTU7MTEwRCAxMTcxIDExQjA7Q0JBNTsxMTBEIDExNzEgMTFCMDsKK0NCQTY7Q0JBNjsxMTBEIDExNzEgMTFCMTtDQkE2OzExMEQgMTE3MSAxMUIxOworQ0JBNztDQkE3OzExMEQgMTE3MSAxMUIyO0NCQTc7MTEwRCAxMTcxIDExQjI7CitDQkE4O0NCQTg7MTEwRCAxMTcxIDExQjM7Q0JBODsxMTBEIDExNzEgMTFCMzsKK0NCQTk7Q0JBOTsxMTBEIDExNzEgMTFCNDtDQkE5OzExMEQgMTE3MSAxMUI0OworQ0JBQTtDQkFBOzExMEQgMTE3MSAxMUI1O0NCQUE7MTEwRCAxMTcxIDExQjU7CitDQkFCO0NCQUI7MTEwRCAxMTcxIDExQjY7Q0JBQjsxMTBEIDExNzEgMTFCNjsKK0NCQUM7Q0JBQzsxMTBEIDExNzEgMTFCNztDQkFDOzExMEQgMTE3MSAxMUI3OworQ0JBRDtDQkFEOzExMEQgMTE3MSAxMUI4O0NCQUQ7MTEwRCAxMTcxIDExQjg7CitDQkFFO0NCQUU7MTEwRCAxMTcxIDExQjk7Q0JBRTsxMTBEIDExNzEgMTFCOTsKK0NCQUY7Q0JBRjsxMTBEIDExNzEgMTFCQTtDQkFGOzExMEQgMTE3MSAxMUJBOworQ0JCMDtDQkIwOzExMEQgMTE3MSAxMUJCO0NCQjA7MTEwRCAxMTcxIDExQkI7CitDQkIxO0NCQjE7MTEwRCAxMTcxIDExQkM7Q0JCMTsxMTBEIDExNzEgMTFCQzsKK0NCQjI7Q0JCMjsxMTBEIDExNzEgMTFCRDtDQkIyOzExMEQgMTE3MSAxMUJEOworQ0JCMztDQkIzOzExMEQgMTE3MSAxMUJFO0NCQjM7MTEwRCAxMTcxIDExQkU7CitDQkI0O0NCQjQ7MTEwRCAxMTcxIDExQkY7Q0JCNDsxMTBEIDExNzEgMTFCRjsKK0NCQjU7Q0JCNTsxMTBEIDExNzEgMTFDMDtDQkI1OzExMEQgMTE3MSAxMUMwOworQ0JCNjtDQkI2OzExMEQgMTE3MSAxMUMxO0NCQjY7MTEwRCAxMTcxIDExQzE7CitDQkI3O0NCQjc7MTEwRCAxMTcxIDExQzI7Q0JCNzsxMTBEIDExNzEgMTFDMjsKK0NCQjg7Q0JCODsxMTBEIDExNzI7Q0JCODsxMTBEIDExNzI7CitDQkI5O0NCQjk7MTEwRCAxMTcyIDExQTg7Q0JCOTsxMTBEIDExNzIgMTFBODsKK0NCQkE7Q0JCQTsxMTBEIDExNzIgMTFBOTtDQkJBOzExMEQgMTE3MiAxMUE5OworQ0JCQjtDQkJCOzExMEQgMTE3MiAxMUFBO0NCQkI7MTEwRCAxMTcyIDExQUE7CitDQkJDO0NCQkM7MTEwRCAxMTcyIDExQUI7Q0JCQzsxMTBEIDExNzIgMTFBQjsKK0NCQkQ7Q0JCRDsxMTBEIDExNzIgMTFBQztDQkJEOzExMEQgMTE3MiAxMUFDOworQ0JCRTtDQkJFOzExMEQgMTE3MiAxMUFEO0NCQkU7MTEwRCAxMTcyIDExQUQ7CitDQkJGO0NCQkY7MTEwRCAxMTcyIDExQUU7Q0JCRjsxMTBEIDExNzIgMTFBRTsKK0NCQzA7Q0JDMDsxMTBEIDExNzIgMTFBRjtDQkMwOzExMEQgMTE3MiAxMUFGOworQ0JDMTtDQkMxOzExMEQgMTE3MiAxMUIwO0NCQzE7MTEwRCAxMTcyIDExQjA7CitDQkMyO0NCQzI7MTEwRCAxMTcyIDExQjE7Q0JDMjsxMTBEIDExNzIgMTFCMTsKK0NCQzM7Q0JDMzsxMTBEIDExNzIgMTFCMjtDQkMzOzExMEQgMTE3MiAxMUIyOworQ0JDNDtDQkM0OzExMEQgMTE3MiAxMUIzO0NCQzQ7MTEwRCAxMTcyIDExQjM7CitDQkM1O0NCQzU7MTEwRCAxMTcyIDExQjQ7Q0JDNTsxMTBEIDExNzIgMTFCNDsKK0NCQzY7Q0JDNjsxMTBEIDExNzIgMTFCNTtDQkM2OzExMEQgMTE3MiAxMUI1OworQ0JDNztDQkM3OzExMEQgMTE3MiAxMUI2O0NCQzc7MTEwRCAxMTcyIDExQjY7CitDQkM4O0NCQzg7MTEwRCAxMTcyIDExQjc7Q0JDODsxMTBEIDExNzIgMTFCNzsKK0NCQzk7Q0JDOTsxMTBEIDExNzIgMTFCODtDQkM5OzExMEQgMTE3MiAxMUI4OworQ0JDQTtDQkNBOzExMEQgMTE3MiAxMUI5O0NCQ0E7MTEwRCAxMTcyIDExQjk7CitDQkNCO0NCQ0I7MTEwRCAxMTcyIDExQkE7Q0JDQjsxMTBEIDExNzIgMTFCQTsKK0NCQ0M7Q0JDQzsxMTBEIDExNzIgMTFCQjtDQkNDOzExMEQgMTE3MiAxMUJCOworQ0JDRDtDQkNEOzExMEQgMTE3MiAxMUJDO0NCQ0Q7MTEwRCAxMTcyIDExQkM7CitDQkNFO0NCQ0U7MTEwRCAxMTcyIDExQkQ7Q0JDRTsxMTBEIDExNzIgMTFCRDsKK0NCQ0Y7Q0JDRjsxMTBEIDExNzIgMTFCRTtDQkNGOzExMEQgMTE3MiAxMUJFOworQ0JEMDtDQkQwOzExMEQgMTE3MiAxMUJGO0NCRDA7MTEwRCAxMTcyIDExQkY7CitDQkQxO0NCRDE7MTEwRCAxMTcyIDExQzA7Q0JEMTsxMTBEIDExNzIgMTFDMDsKK0NCRDI7Q0JEMjsxMTBEIDExNzIgMTFDMTtDQkQyOzExMEQgMTE3MiAxMUMxOworQ0JEMztDQkQzOzExMEQgMTE3MiAxMUMyO0NCRDM7MTEwRCAxMTcyIDExQzI7CitDQkQ0O0NCRDQ7MTEwRCAxMTczO0NCRDQ7MTEwRCAxMTczOworQ0JENTtDQkQ1OzExMEQgMTE3MyAxMUE4O0NCRDU7MTEwRCAxMTczIDExQTg7CitDQkQ2O0NCRDY7MTEwRCAxMTczIDExQTk7Q0JENjsxMTBEIDExNzMgMTFBOTsKK0NCRDc7Q0JENzsxMTBEIDExNzMgMTFBQTtDQkQ3OzExMEQgMTE3MyAxMUFBOworQ0JEODtDQkQ4OzExMEQgMTE3MyAxMUFCO0NCRDg7MTEwRCAxMTczIDExQUI7CitDQkQ5O0NCRDk7MTEwRCAxMTczIDExQUM7Q0JEOTsxMTBEIDExNzMgMTFBQzsKK0NCREE7Q0JEQTsxMTBEIDExNzMgMTFBRDtDQkRBOzExMEQgMTE3MyAxMUFEOworQ0JEQjtDQkRCOzExMEQgMTE3MyAxMUFFO0NCREI7MTEwRCAxMTczIDExQUU7CitDQkRDO0NCREM7MTEwRCAxMTczIDExQUY7Q0JEQzsxMTBEIDExNzMgMTFBRjsKK0NCREQ7Q0JERDsxMTBEIDExNzMgMTFCMDtDQkREOzExMEQgMTE3MyAxMUIwOworQ0JERTtDQkRFOzExMEQgMTE3MyAxMUIxO0NCREU7MTEwRCAxMTczIDExQjE7CitDQkRGO0NCREY7MTEwRCAxMTczIDExQjI7Q0JERjsxMTBEIDExNzMgMTFCMjsKK0NCRTA7Q0JFMDsxMTBEIDExNzMgMTFCMztDQkUwOzExMEQgMTE3MyAxMUIzOworQ0JFMTtDQkUxOzExMEQgMTE3MyAxMUI0O0NCRTE7MTEwRCAxMTczIDExQjQ7CitDQkUyO0NCRTI7MTEwRCAxMTczIDExQjU7Q0JFMjsxMTBEIDExNzMgMTFCNTsKK0NCRTM7Q0JFMzsxMTBEIDExNzMgMTFCNjtDQkUzOzExMEQgMTE3MyAxMUI2OworQ0JFNDtDQkU0OzExMEQgMTE3MyAxMUI3O0NCRTQ7MTEwRCAxMTczIDExQjc7CitDQkU1O0NCRTU7MTEwRCAxMTczIDExQjg7Q0JFNTsxMTBEIDExNzMgMTFCODsKK0NCRTY7Q0JFNjsxMTBEIDExNzMgMTFCOTtDQkU2OzExMEQgMTE3MyAxMUI5OworQ0JFNztDQkU3OzExMEQgMTE3MyAxMUJBO0NCRTc7MTEwRCAxMTczIDExQkE7CitDQkU4O0NCRTg7MTEwRCAxMTczIDExQkI7Q0JFODsxMTBEIDExNzMgMTFCQjsKK0NCRTk7Q0JFOTsxMTBEIDExNzMgMTFCQztDQkU5OzExMEQgMTE3MyAxMUJDOworQ0JFQTtDQkVBOzExMEQgMTE3MyAxMUJEO0NCRUE7MTEwRCAxMTczIDExQkQ7CitDQkVCO0NCRUI7MTEwRCAxMTczIDExQkU7Q0JFQjsxMTBEIDExNzMgMTFCRTsKK0NCRUM7Q0JFQzsxMTBEIDExNzMgMTFCRjtDQkVDOzExMEQgMTE3MyAxMUJGOworQ0JFRDtDQkVEOzExMEQgMTE3MyAxMUMwO0NCRUQ7MTEwRCAxMTczIDExQzA7CitDQkVFO0NCRUU7MTEwRCAxMTczIDExQzE7Q0JFRTsxMTBEIDExNzMgMTFDMTsKK0NCRUY7Q0JFRjsxMTBEIDExNzMgMTFDMjtDQkVGOzExMEQgMTE3MyAxMUMyOworQ0JGMDtDQkYwOzExMEQgMTE3NDtDQkYwOzExMEQgMTE3NDsKK0NCRjE7Q0JGMTsxMTBEIDExNzQgMTFBODtDQkYxOzExMEQgMTE3NCAxMUE4OworQ0JGMjtDQkYyOzExMEQgMTE3NCAxMUE5O0NCRjI7MTEwRCAxMTc0IDExQTk7CitDQkYzO0NCRjM7MTEwRCAxMTc0IDExQUE7Q0JGMzsxMTBEIDExNzQgMTFBQTsKK0NCRjQ7Q0JGNDsxMTBEIDExNzQgMTFBQjtDQkY0OzExMEQgMTE3NCAxMUFCOworQ0JGNTtDQkY1OzExMEQgMTE3NCAxMUFDO0NCRjU7MTEwRCAxMTc0IDExQUM7CitDQkY2O0NCRjY7MTEwRCAxMTc0IDExQUQ7Q0JGNjsxMTBEIDExNzQgMTFBRDsKK0NCRjc7Q0JGNzsxMTBEIDExNzQgMTFBRTtDQkY3OzExMEQgMTE3NCAxMUFFOworQ0JGODtDQkY4OzExMEQgMTE3NCAxMUFGO0NCRjg7MTEwRCAxMTc0IDExQUY7CitDQkY5O0NCRjk7MTEwRCAxMTc0IDExQjA7Q0JGOTsxMTBEIDExNzQgMTFCMDsKK0NCRkE7Q0JGQTsxMTBEIDExNzQgMTFCMTtDQkZBOzExMEQgMTE3NCAxMUIxOworQ0JGQjtDQkZCOzExMEQgMTE3NCAxMUIyO0NCRkI7MTEwRCAxMTc0IDExQjI7CitDQkZDO0NCRkM7MTEwRCAxMTc0IDExQjM7Q0JGQzsxMTBEIDExNzQgMTFCMzsKK0NCRkQ7Q0JGRDsxMTBEIDExNzQgMTFCNDtDQkZEOzExMEQgMTE3NCAxMUI0OworQ0JGRTtDQkZFOzExMEQgMTE3NCAxMUI1O0NCRkU7MTEwRCAxMTc0IDExQjU7CitDQkZGO0NCRkY7MTEwRCAxMTc0IDExQjY7Q0JGRjsxMTBEIDExNzQgMTFCNjsKK0NDMDA7Q0MwMDsxMTBEIDExNzQgMTFCNztDQzAwOzExMEQgMTE3NCAxMUI3OworQ0MwMTtDQzAxOzExMEQgMTE3NCAxMUI4O0NDMDE7MTEwRCAxMTc0IDExQjg7CitDQzAyO0NDMDI7MTEwRCAxMTc0IDExQjk7Q0MwMjsxMTBEIDExNzQgMTFCOTsKK0NDMDM7Q0MwMzsxMTBEIDExNzQgMTFCQTtDQzAzOzExMEQgMTE3NCAxMUJBOworQ0MwNDtDQzA0OzExMEQgMTE3NCAxMUJCO0NDMDQ7MTEwRCAxMTc0IDExQkI7CitDQzA1O0NDMDU7MTEwRCAxMTc0IDExQkM7Q0MwNTsxMTBEIDExNzQgMTFCQzsKK0NDMDY7Q0MwNjsxMTBEIDExNzQgMTFCRDtDQzA2OzExMEQgMTE3NCAxMUJEOworQ0MwNztDQzA3OzExMEQgMTE3NCAxMUJFO0NDMDc7MTEwRCAxMTc0IDExQkU7CitDQzA4O0NDMDg7MTEwRCAxMTc0IDExQkY7Q0MwODsxMTBEIDExNzQgMTFCRjsKK0NDMDk7Q0MwOTsxMTBEIDExNzQgMTFDMDtDQzA5OzExMEQgMTE3NCAxMUMwOworQ0MwQTtDQzBBOzExMEQgMTE3NCAxMUMxO0NDMEE7MTEwRCAxMTc0IDExQzE7CitDQzBCO0NDMEI7MTEwRCAxMTc0IDExQzI7Q0MwQjsxMTBEIDExNzQgMTFDMjsKK0NDMEM7Q0MwQzsxMTBEIDExNzU7Q0MwQzsxMTBEIDExNzU7CitDQzBEO0NDMEQ7MTEwRCAxMTc1IDExQTg7Q0MwRDsxMTBEIDExNzUgMTFBODsKK0NDMEU7Q0MwRTsxMTBEIDExNzUgMTFBOTtDQzBFOzExMEQgMTE3NSAxMUE5OworQ0MwRjtDQzBGOzExMEQgMTE3NSAxMUFBO0NDMEY7MTEwRCAxMTc1IDExQUE7CitDQzEwO0NDMTA7MTEwRCAxMTc1IDExQUI7Q0MxMDsxMTBEIDExNzUgMTFBQjsKK0NDMTE7Q0MxMTsxMTBEIDExNzUgMTFBQztDQzExOzExMEQgMTE3NSAxMUFDOworQ0MxMjtDQzEyOzExMEQgMTE3NSAxMUFEO0NDMTI7MTEwRCAxMTc1IDExQUQ7CitDQzEzO0NDMTM7MTEwRCAxMTc1IDExQUU7Q0MxMzsxMTBEIDExNzUgMTFBRTsKK0NDMTQ7Q0MxNDsxMTBEIDExNzUgMTFBRjtDQzE0OzExMEQgMTE3NSAxMUFGOworQ0MxNTtDQzE1OzExMEQgMTE3NSAxMUIwO0NDMTU7MTEwRCAxMTc1IDExQjA7CitDQzE2O0NDMTY7MTEwRCAxMTc1IDExQjE7Q0MxNjsxMTBEIDExNzUgMTFCMTsKK0NDMTc7Q0MxNzsxMTBEIDExNzUgMTFCMjtDQzE3OzExMEQgMTE3NSAxMUIyOworQ0MxODtDQzE4OzExMEQgMTE3NSAxMUIzO0NDMTg7MTEwRCAxMTc1IDExQjM7CitDQzE5O0NDMTk7MTEwRCAxMTc1IDExQjQ7Q0MxOTsxMTBEIDExNzUgMTFCNDsKK0NDMUE7Q0MxQTsxMTBEIDExNzUgMTFCNTtDQzFBOzExMEQgMTE3NSAxMUI1OworQ0MxQjtDQzFCOzExMEQgMTE3NSAxMUI2O0NDMUI7MTEwRCAxMTc1IDExQjY7CitDQzFDO0NDMUM7MTEwRCAxMTc1IDExQjc7Q0MxQzsxMTBEIDExNzUgMTFCNzsKK0NDMUQ7Q0MxRDsxMTBEIDExNzUgMTFCODtDQzFEOzExMEQgMTE3NSAxMUI4OworQ0MxRTtDQzFFOzExMEQgMTE3NSAxMUI5O0NDMUU7MTEwRCAxMTc1IDExQjk7CitDQzFGO0NDMUY7MTEwRCAxMTc1IDExQkE7Q0MxRjsxMTBEIDExNzUgMTFCQTsKK0NDMjA7Q0MyMDsxMTBEIDExNzUgMTFCQjtDQzIwOzExMEQgMTE3NSAxMUJCOworQ0MyMTtDQzIxOzExMEQgMTE3NSAxMUJDO0NDMjE7MTEwRCAxMTc1IDExQkM7CitDQzIyO0NDMjI7MTEwRCAxMTc1IDExQkQ7Q0MyMjsxMTBEIDExNzUgMTFCRDsKK0NDMjM7Q0MyMzsxMTBEIDExNzUgMTFCRTtDQzIzOzExMEQgMTE3NSAxMUJFOworQ0MyNDtDQzI0OzExMEQgMTE3NSAxMUJGO0NDMjQ7MTEwRCAxMTc1IDExQkY7CitDQzI1O0NDMjU7MTEwRCAxMTc1IDExQzA7Q0MyNTsxMTBEIDExNzUgMTFDMDsKK0NDMjY7Q0MyNjsxMTBEIDExNzUgMTFDMTtDQzI2OzExMEQgMTE3NSAxMUMxOworQ0MyNztDQzI3OzExMEQgMTE3NSAxMUMyO0NDMjc7MTEwRCAxMTc1IDExQzI7CitDQzI4O0NDMjg7MTEwRSAxMTYxO0NDMjg7MTEwRSAxMTYxOworQ0MyOTtDQzI5OzExMEUgMTE2MSAxMUE4O0NDMjk7MTEwRSAxMTYxIDExQTg7CitDQzJBO0NDMkE7MTEwRSAxMTYxIDExQTk7Q0MyQTsxMTBFIDExNjEgMTFBOTsKK0NDMkI7Q0MyQjsxMTBFIDExNjEgMTFBQTtDQzJCOzExMEUgMTE2MSAxMUFBOworQ0MyQztDQzJDOzExMEUgMTE2MSAxMUFCO0NDMkM7MTEwRSAxMTYxIDExQUI7CitDQzJEO0NDMkQ7MTEwRSAxMTYxIDExQUM7Q0MyRDsxMTBFIDExNjEgMTFBQzsKK0NDMkU7Q0MyRTsxMTBFIDExNjEgMTFBRDtDQzJFOzExMEUgMTE2MSAxMUFEOworQ0MyRjtDQzJGOzExMEUgMTE2MSAxMUFFO0NDMkY7MTEwRSAxMTYxIDExQUU7CitDQzMwO0NDMzA7MTEwRSAxMTYxIDExQUY7Q0MzMDsxMTBFIDExNjEgMTFBRjsKK0NDMzE7Q0MzMTsxMTBFIDExNjEgMTFCMDtDQzMxOzExMEUgMTE2MSAxMUIwOworQ0MzMjtDQzMyOzExMEUgMTE2MSAxMUIxO0NDMzI7MTEwRSAxMTYxIDExQjE7CitDQzMzO0NDMzM7MTEwRSAxMTYxIDExQjI7Q0MzMzsxMTBFIDExNjEgMTFCMjsKK0NDMzQ7Q0MzNDsxMTBFIDExNjEgMTFCMztDQzM0OzExMEUgMTE2MSAxMUIzOworQ0MzNTtDQzM1OzExMEUgMTE2MSAxMUI0O0NDMzU7MTEwRSAxMTYxIDExQjQ7CitDQzM2O0NDMzY7MTEwRSAxMTYxIDExQjU7Q0MzNjsxMTBFIDExNjEgMTFCNTsKK0NDMzc7Q0MzNzsxMTBFIDExNjEgMTFCNjtDQzM3OzExMEUgMTE2MSAxMUI2OworQ0MzODtDQzM4OzExMEUgMTE2MSAxMUI3O0NDMzg7MTEwRSAxMTYxIDExQjc7CitDQzM5O0NDMzk7MTEwRSAxMTYxIDExQjg7Q0MzOTsxMTBFIDExNjEgMTFCODsKK0NDM0E7Q0MzQTsxMTBFIDExNjEgMTFCOTtDQzNBOzExMEUgMTE2MSAxMUI5OworQ0MzQjtDQzNCOzExMEUgMTE2MSAxMUJBO0NDM0I7MTEwRSAxMTYxIDExQkE7CitDQzNDO0NDM0M7MTEwRSAxMTYxIDExQkI7Q0MzQzsxMTBFIDExNjEgMTFCQjsKK0NDM0Q7Q0MzRDsxMTBFIDExNjEgMTFCQztDQzNEOzExMEUgMTE2MSAxMUJDOworQ0MzRTtDQzNFOzExMEUgMTE2MSAxMUJEO0NDM0U7MTEwRSAxMTYxIDExQkQ7CitDQzNGO0NDM0Y7MTEwRSAxMTYxIDExQkU7Q0MzRjsxMTBFIDExNjEgMTFCRTsKK0NDNDA7Q0M0MDsxMTBFIDExNjEgMTFCRjtDQzQwOzExMEUgMTE2MSAxMUJGOworQ0M0MTtDQzQxOzExMEUgMTE2MSAxMUMwO0NDNDE7MTEwRSAxMTYxIDExQzA7CitDQzQyO0NDNDI7MTEwRSAxMTYxIDExQzE7Q0M0MjsxMTBFIDExNjEgMTFDMTsKK0NDNDM7Q0M0MzsxMTBFIDExNjEgMTFDMjtDQzQzOzExMEUgMTE2MSAxMUMyOworQ0M0NDtDQzQ0OzExMEUgMTE2MjtDQzQ0OzExMEUgMTE2MjsKK0NDNDU7Q0M0NTsxMTBFIDExNjIgMTFBODtDQzQ1OzExMEUgMTE2MiAxMUE4OworQ0M0NjtDQzQ2OzExMEUgMTE2MiAxMUE5O0NDNDY7MTEwRSAxMTYyIDExQTk7CitDQzQ3O0NDNDc7MTEwRSAxMTYyIDExQUE7Q0M0NzsxMTBFIDExNjIgMTFBQTsKK0NDNDg7Q0M0ODsxMTBFIDExNjIgMTFBQjtDQzQ4OzExMEUgMTE2MiAxMUFCOworQ0M0OTtDQzQ5OzExMEUgMTE2MiAxMUFDO0NDNDk7MTEwRSAxMTYyIDExQUM7CitDQzRBO0NDNEE7MTEwRSAxMTYyIDExQUQ7Q0M0QTsxMTBFIDExNjIgMTFBRDsKK0NDNEI7Q0M0QjsxMTBFIDExNjIgMTFBRTtDQzRCOzExMEUgMTE2MiAxMUFFOworQ0M0QztDQzRDOzExMEUgMTE2MiAxMUFGO0NDNEM7MTEwRSAxMTYyIDExQUY7CitDQzREO0NDNEQ7MTEwRSAxMTYyIDExQjA7Q0M0RDsxMTBFIDExNjIgMTFCMDsKK0NDNEU7Q0M0RTsxMTBFIDExNjIgMTFCMTtDQzRFOzExMEUgMTE2MiAxMUIxOworQ0M0RjtDQzRGOzExMEUgMTE2MiAxMUIyO0NDNEY7MTEwRSAxMTYyIDExQjI7CitDQzUwO0NDNTA7MTEwRSAxMTYyIDExQjM7Q0M1MDsxMTBFIDExNjIgMTFCMzsKK0NDNTE7Q0M1MTsxMTBFIDExNjIgMTFCNDtDQzUxOzExMEUgMTE2MiAxMUI0OworQ0M1MjtDQzUyOzExMEUgMTE2MiAxMUI1O0NDNTI7MTEwRSAxMTYyIDExQjU7CitDQzUzO0NDNTM7MTEwRSAxMTYyIDExQjY7Q0M1MzsxMTBFIDExNjIgMTFCNjsKK0NDNTQ7Q0M1NDsxMTBFIDExNjIgMTFCNztDQzU0OzExMEUgMTE2MiAxMUI3OworQ0M1NTtDQzU1OzExMEUgMTE2MiAxMUI4O0NDNTU7MTEwRSAxMTYyIDExQjg7CitDQzU2O0NDNTY7MTEwRSAxMTYyIDExQjk7Q0M1NjsxMTBFIDExNjIgMTFCOTsKK0NDNTc7Q0M1NzsxMTBFIDExNjIgMTFCQTtDQzU3OzExMEUgMTE2MiAxMUJBOworQ0M1ODtDQzU4OzExMEUgMTE2MiAxMUJCO0NDNTg7MTEwRSAxMTYyIDExQkI7CitDQzU5O0NDNTk7MTEwRSAxMTYyIDExQkM7Q0M1OTsxMTBFIDExNjIgMTFCQzsKK0NDNUE7Q0M1QTsxMTBFIDExNjIgMTFCRDtDQzVBOzExMEUgMTE2MiAxMUJEOworQ0M1QjtDQzVCOzExMEUgMTE2MiAxMUJFO0NDNUI7MTEwRSAxMTYyIDExQkU7CitDQzVDO0NDNUM7MTEwRSAxMTYyIDExQkY7Q0M1QzsxMTBFIDExNjIgMTFCRjsKK0NDNUQ7Q0M1RDsxMTBFIDExNjIgMTFDMDtDQzVEOzExMEUgMTE2MiAxMUMwOworQ0M1RTtDQzVFOzExMEUgMTE2MiAxMUMxO0NDNUU7MTEwRSAxMTYyIDExQzE7CitDQzVGO0NDNUY7MTEwRSAxMTYyIDExQzI7Q0M1RjsxMTBFIDExNjIgMTFDMjsKK0NDNjA7Q0M2MDsxMTBFIDExNjM7Q0M2MDsxMTBFIDExNjM7CitDQzYxO0NDNjE7MTEwRSAxMTYzIDExQTg7Q0M2MTsxMTBFIDExNjMgMTFBODsKK0NDNjI7Q0M2MjsxMTBFIDExNjMgMTFBOTtDQzYyOzExMEUgMTE2MyAxMUE5OworQ0M2MztDQzYzOzExMEUgMTE2MyAxMUFBO0NDNjM7MTEwRSAxMTYzIDExQUE7CitDQzY0O0NDNjQ7MTEwRSAxMTYzIDExQUI7Q0M2NDsxMTBFIDExNjMgMTFBQjsKK0NDNjU7Q0M2NTsxMTBFIDExNjMgMTFBQztDQzY1OzExMEUgMTE2MyAxMUFDOworQ0M2NjtDQzY2OzExMEUgMTE2MyAxMUFEO0NDNjY7MTEwRSAxMTYzIDExQUQ7CitDQzY3O0NDNjc7MTEwRSAxMTYzIDExQUU7Q0M2NzsxMTBFIDExNjMgMTFBRTsKK0NDNjg7Q0M2ODsxMTBFIDExNjMgMTFBRjtDQzY4OzExMEUgMTE2MyAxMUFGOworQ0M2OTtDQzY5OzExMEUgMTE2MyAxMUIwO0NDNjk7MTEwRSAxMTYzIDExQjA7CitDQzZBO0NDNkE7MTEwRSAxMTYzIDExQjE7Q0M2QTsxMTBFIDExNjMgMTFCMTsKK0NDNkI7Q0M2QjsxMTBFIDExNjMgMTFCMjtDQzZCOzExMEUgMTE2MyAxMUIyOworQ0M2QztDQzZDOzExMEUgMTE2MyAxMUIzO0NDNkM7MTEwRSAxMTYzIDExQjM7CitDQzZEO0NDNkQ7MTEwRSAxMTYzIDExQjQ7Q0M2RDsxMTBFIDExNjMgMTFCNDsKK0NDNkU7Q0M2RTsxMTBFIDExNjMgMTFCNTtDQzZFOzExMEUgMTE2MyAxMUI1OworQ0M2RjtDQzZGOzExMEUgMTE2MyAxMUI2O0NDNkY7MTEwRSAxMTYzIDExQjY7CitDQzcwO0NDNzA7MTEwRSAxMTYzIDExQjc7Q0M3MDsxMTBFIDExNjMgMTFCNzsKK0NDNzE7Q0M3MTsxMTBFIDExNjMgMTFCODtDQzcxOzExMEUgMTE2MyAxMUI4OworQ0M3MjtDQzcyOzExMEUgMTE2MyAxMUI5O0NDNzI7MTEwRSAxMTYzIDExQjk7CitDQzczO0NDNzM7MTEwRSAxMTYzIDExQkE7Q0M3MzsxMTBFIDExNjMgMTFCQTsKK0NDNzQ7Q0M3NDsxMTBFIDExNjMgMTFCQjtDQzc0OzExMEUgMTE2MyAxMUJCOworQ0M3NTtDQzc1OzExMEUgMTE2MyAxMUJDO0NDNzU7MTEwRSAxMTYzIDExQkM7CitDQzc2O0NDNzY7MTEwRSAxMTYzIDExQkQ7Q0M3NjsxMTBFIDExNjMgMTFCRDsKK0NDNzc7Q0M3NzsxMTBFIDExNjMgMTFCRTtDQzc3OzExMEUgMTE2MyAxMUJFOworQ0M3ODtDQzc4OzExMEUgMTE2MyAxMUJGO0NDNzg7MTEwRSAxMTYzIDExQkY7CitDQzc5O0NDNzk7MTEwRSAxMTYzIDExQzA7Q0M3OTsxMTBFIDExNjMgMTFDMDsKK0NDN0E7Q0M3QTsxMTBFIDExNjMgMTFDMTtDQzdBOzExMEUgMTE2MyAxMUMxOworQ0M3QjtDQzdCOzExMEUgMTE2MyAxMUMyO0NDN0I7MTEwRSAxMTYzIDExQzI7CitDQzdDO0NDN0M7MTEwRSAxMTY0O0NDN0M7MTEwRSAxMTY0OworQ0M3RDtDQzdEOzExMEUgMTE2NCAxMUE4O0NDN0Q7MTEwRSAxMTY0IDExQTg7CitDQzdFO0NDN0U7MTEwRSAxMTY0IDExQTk7Q0M3RTsxMTBFIDExNjQgMTFBOTsKK0NDN0Y7Q0M3RjsxMTBFIDExNjQgMTFBQTtDQzdGOzExMEUgMTE2NCAxMUFBOworQ0M4MDtDQzgwOzExMEUgMTE2NCAxMUFCO0NDODA7MTEwRSAxMTY0IDExQUI7CitDQzgxO0NDODE7MTEwRSAxMTY0IDExQUM7Q0M4MTsxMTBFIDExNjQgMTFBQzsKK0NDODI7Q0M4MjsxMTBFIDExNjQgMTFBRDtDQzgyOzExMEUgMTE2NCAxMUFEOworQ0M4MztDQzgzOzExMEUgMTE2NCAxMUFFO0NDODM7MTEwRSAxMTY0IDExQUU7CitDQzg0O0NDODQ7MTEwRSAxMTY0IDExQUY7Q0M4NDsxMTBFIDExNjQgMTFBRjsKK0NDODU7Q0M4NTsxMTBFIDExNjQgMTFCMDtDQzg1OzExMEUgMTE2NCAxMUIwOworQ0M4NjtDQzg2OzExMEUgMTE2NCAxMUIxO0NDODY7MTEwRSAxMTY0IDExQjE7CitDQzg3O0NDODc7MTEwRSAxMTY0IDExQjI7Q0M4NzsxMTBFIDExNjQgMTFCMjsKK0NDODg7Q0M4ODsxMTBFIDExNjQgMTFCMztDQzg4OzExMEUgMTE2NCAxMUIzOworQ0M4OTtDQzg5OzExMEUgMTE2NCAxMUI0O0NDODk7MTEwRSAxMTY0IDExQjQ7CitDQzhBO0NDOEE7MTEwRSAxMTY0IDExQjU7Q0M4QTsxMTBFIDExNjQgMTFCNTsKK0NDOEI7Q0M4QjsxMTBFIDExNjQgMTFCNjtDQzhCOzExMEUgMTE2NCAxMUI2OworQ0M4QztDQzhDOzExMEUgMTE2NCAxMUI3O0NDOEM7MTEwRSAxMTY0IDExQjc7CitDQzhEO0NDOEQ7MTEwRSAxMTY0IDExQjg7Q0M4RDsxMTBFIDExNjQgMTFCODsKK0NDOEU7Q0M4RTsxMTBFIDExNjQgMTFCOTtDQzhFOzExMEUgMTE2NCAxMUI5OworQ0M4RjtDQzhGOzExMEUgMTE2NCAxMUJBO0NDOEY7MTEwRSAxMTY0IDExQkE7CitDQzkwO0NDOTA7MTEwRSAxMTY0IDExQkI7Q0M5MDsxMTBFIDExNjQgMTFCQjsKK0NDOTE7Q0M5MTsxMTBFIDExNjQgMTFCQztDQzkxOzExMEUgMTE2NCAxMUJDOworQ0M5MjtDQzkyOzExMEUgMTE2NCAxMUJEO0NDOTI7MTEwRSAxMTY0IDExQkQ7CitDQzkzO0NDOTM7MTEwRSAxMTY0IDExQkU7Q0M5MzsxMTBFIDExNjQgMTFCRTsKK0NDOTQ7Q0M5NDsxMTBFIDExNjQgMTFCRjtDQzk0OzExMEUgMTE2NCAxMUJGOworQ0M5NTtDQzk1OzExMEUgMTE2NCAxMUMwO0NDOTU7MTEwRSAxMTY0IDExQzA7CitDQzk2O0NDOTY7MTEwRSAxMTY0IDExQzE7Q0M5NjsxMTBFIDExNjQgMTFDMTsKK0NDOTc7Q0M5NzsxMTBFIDExNjQgMTFDMjtDQzk3OzExMEUgMTE2NCAxMUMyOworQ0M5ODtDQzk4OzExMEUgMTE2NTtDQzk4OzExMEUgMTE2NTsKK0NDOTk7Q0M5OTsxMTBFIDExNjUgMTFBODtDQzk5OzExMEUgMTE2NSAxMUE4OworQ0M5QTtDQzlBOzExMEUgMTE2NSAxMUE5O0NDOUE7MTEwRSAxMTY1IDExQTk7CitDQzlCO0NDOUI7MTEwRSAxMTY1IDExQUE7Q0M5QjsxMTBFIDExNjUgMTFBQTsKK0NDOUM7Q0M5QzsxMTBFIDExNjUgMTFBQjtDQzlDOzExMEUgMTE2NSAxMUFCOworQ0M5RDtDQzlEOzExMEUgMTE2NSAxMUFDO0NDOUQ7MTEwRSAxMTY1IDExQUM7CitDQzlFO0NDOUU7MTEwRSAxMTY1IDExQUQ7Q0M5RTsxMTBFIDExNjUgMTFBRDsKK0NDOUY7Q0M5RjsxMTBFIDExNjUgMTFBRTtDQzlGOzExMEUgMTE2NSAxMUFFOworQ0NBMDtDQ0EwOzExMEUgMTE2NSAxMUFGO0NDQTA7MTEwRSAxMTY1IDExQUY7CitDQ0ExO0NDQTE7MTEwRSAxMTY1IDExQjA7Q0NBMTsxMTBFIDExNjUgMTFCMDsKK0NDQTI7Q0NBMjsxMTBFIDExNjUgMTFCMTtDQ0EyOzExMEUgMTE2NSAxMUIxOworQ0NBMztDQ0EzOzExMEUgMTE2NSAxMUIyO0NDQTM7MTEwRSAxMTY1IDExQjI7CitDQ0E0O0NDQTQ7MTEwRSAxMTY1IDExQjM7Q0NBNDsxMTBFIDExNjUgMTFCMzsKK0NDQTU7Q0NBNTsxMTBFIDExNjUgMTFCNDtDQ0E1OzExMEUgMTE2NSAxMUI0OworQ0NBNjtDQ0E2OzExMEUgMTE2NSAxMUI1O0NDQTY7MTEwRSAxMTY1IDExQjU7CitDQ0E3O0NDQTc7MTEwRSAxMTY1IDExQjY7Q0NBNzsxMTBFIDExNjUgMTFCNjsKK0NDQTg7Q0NBODsxMTBFIDExNjUgMTFCNztDQ0E4OzExMEUgMTE2NSAxMUI3OworQ0NBOTtDQ0E5OzExMEUgMTE2NSAxMUI4O0NDQTk7MTEwRSAxMTY1IDExQjg7CitDQ0FBO0NDQUE7MTEwRSAxMTY1IDExQjk7Q0NBQTsxMTBFIDExNjUgMTFCOTsKK0NDQUI7Q0NBQjsxMTBFIDExNjUgMTFCQTtDQ0FCOzExMEUgMTE2NSAxMUJBOworQ0NBQztDQ0FDOzExMEUgMTE2NSAxMUJCO0NDQUM7MTEwRSAxMTY1IDExQkI7CitDQ0FEO0NDQUQ7MTEwRSAxMTY1IDExQkM7Q0NBRDsxMTBFIDExNjUgMTFCQzsKK0NDQUU7Q0NBRTsxMTBFIDExNjUgMTFCRDtDQ0FFOzExMEUgMTE2NSAxMUJEOworQ0NBRjtDQ0FGOzExMEUgMTE2NSAxMUJFO0NDQUY7MTEwRSAxMTY1IDExQkU7CitDQ0IwO0NDQjA7MTEwRSAxMTY1IDExQkY7Q0NCMDsxMTBFIDExNjUgMTFCRjsKK0NDQjE7Q0NCMTsxMTBFIDExNjUgMTFDMDtDQ0IxOzExMEUgMTE2NSAxMUMwOworQ0NCMjtDQ0IyOzExMEUgMTE2NSAxMUMxO0NDQjI7MTEwRSAxMTY1IDExQzE7CitDQ0IzO0NDQjM7MTEwRSAxMTY1IDExQzI7Q0NCMzsxMTBFIDExNjUgMTFDMjsKK0NDQjQ7Q0NCNDsxMTBFIDExNjY7Q0NCNDsxMTBFIDExNjY7CitDQ0I1O0NDQjU7MTEwRSAxMTY2IDExQTg7Q0NCNTsxMTBFIDExNjYgMTFBODsKK0NDQjY7Q0NCNjsxMTBFIDExNjYgMTFBOTtDQ0I2OzExMEUgMTE2NiAxMUE5OworQ0NCNztDQ0I3OzExMEUgMTE2NiAxMUFBO0NDQjc7MTEwRSAxMTY2IDExQUE7CitDQ0I4O0NDQjg7MTEwRSAxMTY2IDExQUI7Q0NCODsxMTBFIDExNjYgMTFBQjsKK0NDQjk7Q0NCOTsxMTBFIDExNjYgMTFBQztDQ0I5OzExMEUgMTE2NiAxMUFDOworQ0NCQTtDQ0JBOzExMEUgMTE2NiAxMUFEO0NDQkE7MTEwRSAxMTY2IDExQUQ7CitDQ0JCO0NDQkI7MTEwRSAxMTY2IDExQUU7Q0NCQjsxMTBFIDExNjYgMTFBRTsKK0NDQkM7Q0NCQzsxMTBFIDExNjYgMTFBRjtDQ0JDOzExMEUgMTE2NiAxMUFGOworQ0NCRDtDQ0JEOzExMEUgMTE2NiAxMUIwO0NDQkQ7MTEwRSAxMTY2IDExQjA7CitDQ0JFO0NDQkU7MTEwRSAxMTY2IDExQjE7Q0NCRTsxMTBFIDExNjYgMTFCMTsKK0NDQkY7Q0NCRjsxMTBFIDExNjYgMTFCMjtDQ0JGOzExMEUgMTE2NiAxMUIyOworQ0NDMDtDQ0MwOzExMEUgMTE2NiAxMUIzO0NDQzA7MTEwRSAxMTY2IDExQjM7CitDQ0MxO0NDQzE7MTEwRSAxMTY2IDExQjQ7Q0NDMTsxMTBFIDExNjYgMTFCNDsKK0NDQzI7Q0NDMjsxMTBFIDExNjYgMTFCNTtDQ0MyOzExMEUgMTE2NiAxMUI1OworQ0NDMztDQ0MzOzExMEUgMTE2NiAxMUI2O0NDQzM7MTEwRSAxMTY2IDExQjY7CitDQ0M0O0NDQzQ7MTEwRSAxMTY2IDExQjc7Q0NDNDsxMTBFIDExNjYgMTFCNzsKK0NDQzU7Q0NDNTsxMTBFIDExNjYgMTFCODtDQ0M1OzExMEUgMTE2NiAxMUI4OworQ0NDNjtDQ0M2OzExMEUgMTE2NiAxMUI5O0NDQzY7MTEwRSAxMTY2IDExQjk7CitDQ0M3O0NDQzc7MTEwRSAxMTY2IDExQkE7Q0NDNzsxMTBFIDExNjYgMTFCQTsKK0NDQzg7Q0NDODsxMTBFIDExNjYgMTFCQjtDQ0M4OzExMEUgMTE2NiAxMUJCOworQ0NDOTtDQ0M5OzExMEUgMTE2NiAxMUJDO0NDQzk7MTEwRSAxMTY2IDExQkM7CitDQ0NBO0NDQ0E7MTEwRSAxMTY2IDExQkQ7Q0NDQTsxMTBFIDExNjYgMTFCRDsKK0NDQ0I7Q0NDQjsxMTBFIDExNjYgMTFCRTtDQ0NCOzExMEUgMTE2NiAxMUJFOworQ0NDQztDQ0NDOzExMEUgMTE2NiAxMUJGO0NDQ0M7MTEwRSAxMTY2IDExQkY7CitDQ0NEO0NDQ0Q7MTEwRSAxMTY2IDExQzA7Q0NDRDsxMTBFIDExNjYgMTFDMDsKK0NDQ0U7Q0NDRTsxMTBFIDExNjYgMTFDMTtDQ0NFOzExMEUgMTE2NiAxMUMxOworQ0NDRjtDQ0NGOzExMEUgMTE2NiAxMUMyO0NDQ0Y7MTEwRSAxMTY2IDExQzI7CitDQ0QwO0NDRDA7MTEwRSAxMTY3O0NDRDA7MTEwRSAxMTY3OworQ0NEMTtDQ0QxOzExMEUgMTE2NyAxMUE4O0NDRDE7MTEwRSAxMTY3IDExQTg7CitDQ0QyO0NDRDI7MTEwRSAxMTY3IDExQTk7Q0NEMjsxMTBFIDExNjcgMTFBOTsKK0NDRDM7Q0NEMzsxMTBFIDExNjcgMTFBQTtDQ0QzOzExMEUgMTE2NyAxMUFBOworQ0NENDtDQ0Q0OzExMEUgMTE2NyAxMUFCO0NDRDQ7MTEwRSAxMTY3IDExQUI7CitDQ0Q1O0NDRDU7MTEwRSAxMTY3IDExQUM7Q0NENTsxMTBFIDExNjcgMTFBQzsKK0NDRDY7Q0NENjsxMTBFIDExNjcgMTFBRDtDQ0Q2OzExMEUgMTE2NyAxMUFEOworQ0NENztDQ0Q3OzExMEUgMTE2NyAxMUFFO0NDRDc7MTEwRSAxMTY3IDExQUU7CitDQ0Q4O0NDRDg7MTEwRSAxMTY3IDExQUY7Q0NEODsxMTBFIDExNjcgMTFBRjsKK0NDRDk7Q0NEOTsxMTBFIDExNjcgMTFCMDtDQ0Q5OzExMEUgMTE2NyAxMUIwOworQ0NEQTtDQ0RBOzExMEUgMTE2NyAxMUIxO0NDREE7MTEwRSAxMTY3IDExQjE7CitDQ0RCO0NDREI7MTEwRSAxMTY3IDExQjI7Q0NEQjsxMTBFIDExNjcgMTFCMjsKK0NDREM7Q0NEQzsxMTBFIDExNjcgMTFCMztDQ0RDOzExMEUgMTE2NyAxMUIzOworQ0NERDtDQ0REOzExMEUgMTE2NyAxMUI0O0NDREQ7MTEwRSAxMTY3IDExQjQ7CitDQ0RFO0NDREU7MTEwRSAxMTY3IDExQjU7Q0NERTsxMTBFIDExNjcgMTFCNTsKK0NDREY7Q0NERjsxMTBFIDExNjcgMTFCNjtDQ0RGOzExMEUgMTE2NyAxMUI2OworQ0NFMDtDQ0UwOzExMEUgMTE2NyAxMUI3O0NDRTA7MTEwRSAxMTY3IDExQjc7CitDQ0UxO0NDRTE7MTEwRSAxMTY3IDExQjg7Q0NFMTsxMTBFIDExNjcgMTFCODsKK0NDRTI7Q0NFMjsxMTBFIDExNjcgMTFCOTtDQ0UyOzExMEUgMTE2NyAxMUI5OworQ0NFMztDQ0UzOzExMEUgMTE2NyAxMUJBO0NDRTM7MTEwRSAxMTY3IDExQkE7CitDQ0U0O0NDRTQ7MTEwRSAxMTY3IDExQkI7Q0NFNDsxMTBFIDExNjcgMTFCQjsKK0NDRTU7Q0NFNTsxMTBFIDExNjcgMTFCQztDQ0U1OzExMEUgMTE2NyAxMUJDOworQ0NFNjtDQ0U2OzExMEUgMTE2NyAxMUJEO0NDRTY7MTEwRSAxMTY3IDExQkQ7CitDQ0U3O0NDRTc7MTEwRSAxMTY3IDExQkU7Q0NFNzsxMTBFIDExNjcgMTFCRTsKK0NDRTg7Q0NFODsxMTBFIDExNjcgMTFCRjtDQ0U4OzExMEUgMTE2NyAxMUJGOworQ0NFOTtDQ0U5OzExMEUgMTE2NyAxMUMwO0NDRTk7MTEwRSAxMTY3IDExQzA7CitDQ0VBO0NDRUE7MTEwRSAxMTY3IDExQzE7Q0NFQTsxMTBFIDExNjcgMTFDMTsKK0NDRUI7Q0NFQjsxMTBFIDExNjcgMTFDMjtDQ0VCOzExMEUgMTE2NyAxMUMyOworQ0NFQztDQ0VDOzExMEUgMTE2ODtDQ0VDOzExMEUgMTE2ODsKK0NDRUQ7Q0NFRDsxMTBFIDExNjggMTFBODtDQ0VEOzExMEUgMTE2OCAxMUE4OworQ0NFRTtDQ0VFOzExMEUgMTE2OCAxMUE5O0NDRUU7MTEwRSAxMTY4IDExQTk7CitDQ0VGO0NDRUY7MTEwRSAxMTY4IDExQUE7Q0NFRjsxMTBFIDExNjggMTFBQTsKK0NDRjA7Q0NGMDsxMTBFIDExNjggMTFBQjtDQ0YwOzExMEUgMTE2OCAxMUFCOworQ0NGMTtDQ0YxOzExMEUgMTE2OCAxMUFDO0NDRjE7MTEwRSAxMTY4IDExQUM7CitDQ0YyO0NDRjI7MTEwRSAxMTY4IDExQUQ7Q0NGMjsxMTBFIDExNjggMTFBRDsKK0NDRjM7Q0NGMzsxMTBFIDExNjggMTFBRTtDQ0YzOzExMEUgMTE2OCAxMUFFOworQ0NGNDtDQ0Y0OzExMEUgMTE2OCAxMUFGO0NDRjQ7MTEwRSAxMTY4IDExQUY7CitDQ0Y1O0NDRjU7MTEwRSAxMTY4IDExQjA7Q0NGNTsxMTBFIDExNjggMTFCMDsKK0NDRjY7Q0NGNjsxMTBFIDExNjggMTFCMTtDQ0Y2OzExMEUgMTE2OCAxMUIxOworQ0NGNztDQ0Y3OzExMEUgMTE2OCAxMUIyO0NDRjc7MTEwRSAxMTY4IDExQjI7CitDQ0Y4O0NDRjg7MTEwRSAxMTY4IDExQjM7Q0NGODsxMTBFIDExNjggMTFCMzsKK0NDRjk7Q0NGOTsxMTBFIDExNjggMTFCNDtDQ0Y5OzExMEUgMTE2OCAxMUI0OworQ0NGQTtDQ0ZBOzExMEUgMTE2OCAxMUI1O0NDRkE7MTEwRSAxMTY4IDExQjU7CitDQ0ZCO0NDRkI7MTEwRSAxMTY4IDExQjY7Q0NGQjsxMTBFIDExNjggMTFCNjsKK0NDRkM7Q0NGQzsxMTBFIDExNjggMTFCNztDQ0ZDOzExMEUgMTE2OCAxMUI3OworQ0NGRDtDQ0ZEOzExMEUgMTE2OCAxMUI4O0NDRkQ7MTEwRSAxMTY4IDExQjg7CitDQ0ZFO0NDRkU7MTEwRSAxMTY4IDExQjk7Q0NGRTsxMTBFIDExNjggMTFCOTsKK0NDRkY7Q0NGRjsxMTBFIDExNjggMTFCQTtDQ0ZGOzExMEUgMTE2OCAxMUJBOworQ0QwMDtDRDAwOzExMEUgMTE2OCAxMUJCO0NEMDA7MTEwRSAxMTY4IDExQkI7CitDRDAxO0NEMDE7MTEwRSAxMTY4IDExQkM7Q0QwMTsxMTBFIDExNjggMTFCQzsKK0NEMDI7Q0QwMjsxMTBFIDExNjggMTFCRDtDRDAyOzExMEUgMTE2OCAxMUJEOworQ0QwMztDRDAzOzExMEUgMTE2OCAxMUJFO0NEMDM7MTEwRSAxMTY4IDExQkU7CitDRDA0O0NEMDQ7MTEwRSAxMTY4IDExQkY7Q0QwNDsxMTBFIDExNjggMTFCRjsKK0NEMDU7Q0QwNTsxMTBFIDExNjggMTFDMDtDRDA1OzExMEUgMTE2OCAxMUMwOworQ0QwNjtDRDA2OzExMEUgMTE2OCAxMUMxO0NEMDY7MTEwRSAxMTY4IDExQzE7CitDRDA3O0NEMDc7MTEwRSAxMTY4IDExQzI7Q0QwNzsxMTBFIDExNjggMTFDMjsKK0NEMDg7Q0QwODsxMTBFIDExNjk7Q0QwODsxMTBFIDExNjk7CitDRDA5O0NEMDk7MTEwRSAxMTY5IDExQTg7Q0QwOTsxMTBFIDExNjkgMTFBODsKK0NEMEE7Q0QwQTsxMTBFIDExNjkgMTFBOTtDRDBBOzExMEUgMTE2OSAxMUE5OworQ0QwQjtDRDBCOzExMEUgMTE2OSAxMUFBO0NEMEI7MTEwRSAxMTY5IDExQUE7CitDRDBDO0NEMEM7MTEwRSAxMTY5IDExQUI7Q0QwQzsxMTBFIDExNjkgMTFBQjsKK0NEMEQ7Q0QwRDsxMTBFIDExNjkgMTFBQztDRDBEOzExMEUgMTE2OSAxMUFDOworQ0QwRTtDRDBFOzExMEUgMTE2OSAxMUFEO0NEMEU7MTEwRSAxMTY5IDExQUQ7CitDRDBGO0NEMEY7MTEwRSAxMTY5IDExQUU7Q0QwRjsxMTBFIDExNjkgMTFBRTsKK0NEMTA7Q0QxMDsxMTBFIDExNjkgMTFBRjtDRDEwOzExMEUgMTE2OSAxMUFGOworQ0QxMTtDRDExOzExMEUgMTE2OSAxMUIwO0NEMTE7MTEwRSAxMTY5IDExQjA7CitDRDEyO0NEMTI7MTEwRSAxMTY5IDExQjE7Q0QxMjsxMTBFIDExNjkgMTFCMTsKK0NEMTM7Q0QxMzsxMTBFIDExNjkgMTFCMjtDRDEzOzExMEUgMTE2OSAxMUIyOworQ0QxNDtDRDE0OzExMEUgMTE2OSAxMUIzO0NEMTQ7MTEwRSAxMTY5IDExQjM7CitDRDE1O0NEMTU7MTEwRSAxMTY5IDExQjQ7Q0QxNTsxMTBFIDExNjkgMTFCNDsKK0NEMTY7Q0QxNjsxMTBFIDExNjkgMTFCNTtDRDE2OzExMEUgMTE2OSAxMUI1OworQ0QxNztDRDE3OzExMEUgMTE2OSAxMUI2O0NEMTc7MTEwRSAxMTY5IDExQjY7CitDRDE4O0NEMTg7MTEwRSAxMTY5IDExQjc7Q0QxODsxMTBFIDExNjkgMTFCNzsKK0NEMTk7Q0QxOTsxMTBFIDExNjkgMTFCODtDRDE5OzExMEUgMTE2OSAxMUI4OworQ0QxQTtDRDFBOzExMEUgMTE2OSAxMUI5O0NEMUE7MTEwRSAxMTY5IDExQjk7CitDRDFCO0NEMUI7MTEwRSAxMTY5IDExQkE7Q0QxQjsxMTBFIDExNjkgMTFCQTsKK0NEMUM7Q0QxQzsxMTBFIDExNjkgMTFCQjtDRDFDOzExMEUgMTE2OSAxMUJCOworQ0QxRDtDRDFEOzExMEUgMTE2OSAxMUJDO0NEMUQ7MTEwRSAxMTY5IDExQkM7CitDRDFFO0NEMUU7MTEwRSAxMTY5IDExQkQ7Q0QxRTsxMTBFIDExNjkgMTFCRDsKK0NEMUY7Q0QxRjsxMTBFIDExNjkgMTFCRTtDRDFGOzExMEUgMTE2OSAxMUJFOworQ0QyMDtDRDIwOzExMEUgMTE2OSAxMUJGO0NEMjA7MTEwRSAxMTY5IDExQkY7CitDRDIxO0NEMjE7MTEwRSAxMTY5IDExQzA7Q0QyMTsxMTBFIDExNjkgMTFDMDsKK0NEMjI7Q0QyMjsxMTBFIDExNjkgMTFDMTtDRDIyOzExMEUgMTE2OSAxMUMxOworQ0QyMztDRDIzOzExMEUgMTE2OSAxMUMyO0NEMjM7MTEwRSAxMTY5IDExQzI7CitDRDI0O0NEMjQ7MTEwRSAxMTZBO0NEMjQ7MTEwRSAxMTZBOworQ0QyNTtDRDI1OzExMEUgMTE2QSAxMUE4O0NEMjU7MTEwRSAxMTZBIDExQTg7CitDRDI2O0NEMjY7MTEwRSAxMTZBIDExQTk7Q0QyNjsxMTBFIDExNkEgMTFBOTsKK0NEMjc7Q0QyNzsxMTBFIDExNkEgMTFBQTtDRDI3OzExMEUgMTE2QSAxMUFBOworQ0QyODtDRDI4OzExMEUgMTE2QSAxMUFCO0NEMjg7MTEwRSAxMTZBIDExQUI7CitDRDI5O0NEMjk7MTEwRSAxMTZBIDExQUM7Q0QyOTsxMTBFIDExNkEgMTFBQzsKK0NEMkE7Q0QyQTsxMTBFIDExNkEgMTFBRDtDRDJBOzExMEUgMTE2QSAxMUFEOworQ0QyQjtDRDJCOzExMEUgMTE2QSAxMUFFO0NEMkI7MTEwRSAxMTZBIDExQUU7CitDRDJDO0NEMkM7MTEwRSAxMTZBIDExQUY7Q0QyQzsxMTBFIDExNkEgMTFBRjsKK0NEMkQ7Q0QyRDsxMTBFIDExNkEgMTFCMDtDRDJEOzExMEUgMTE2QSAxMUIwOworQ0QyRTtDRDJFOzExMEUgMTE2QSAxMUIxO0NEMkU7MTEwRSAxMTZBIDExQjE7CitDRDJGO0NEMkY7MTEwRSAxMTZBIDExQjI7Q0QyRjsxMTBFIDExNkEgMTFCMjsKK0NEMzA7Q0QzMDsxMTBFIDExNkEgMTFCMztDRDMwOzExMEUgMTE2QSAxMUIzOworQ0QzMTtDRDMxOzExMEUgMTE2QSAxMUI0O0NEMzE7MTEwRSAxMTZBIDExQjQ7CitDRDMyO0NEMzI7MTEwRSAxMTZBIDExQjU7Q0QzMjsxMTBFIDExNkEgMTFCNTsKK0NEMzM7Q0QzMzsxMTBFIDExNkEgMTFCNjtDRDMzOzExMEUgMTE2QSAxMUI2OworQ0QzNDtDRDM0OzExMEUgMTE2QSAxMUI3O0NEMzQ7MTEwRSAxMTZBIDExQjc7CitDRDM1O0NEMzU7MTEwRSAxMTZBIDExQjg7Q0QzNTsxMTBFIDExNkEgMTFCODsKK0NEMzY7Q0QzNjsxMTBFIDExNkEgMTFCOTtDRDM2OzExMEUgMTE2QSAxMUI5OworQ0QzNztDRDM3OzExMEUgMTE2QSAxMUJBO0NEMzc7MTEwRSAxMTZBIDExQkE7CitDRDM4O0NEMzg7MTEwRSAxMTZBIDExQkI7Q0QzODsxMTBFIDExNkEgMTFCQjsKK0NEMzk7Q0QzOTsxMTBFIDExNkEgMTFCQztDRDM5OzExMEUgMTE2QSAxMUJDOworQ0QzQTtDRDNBOzExMEUgMTE2QSAxMUJEO0NEM0E7MTEwRSAxMTZBIDExQkQ7CitDRDNCO0NEM0I7MTEwRSAxMTZBIDExQkU7Q0QzQjsxMTBFIDExNkEgMTFCRTsKK0NEM0M7Q0QzQzsxMTBFIDExNkEgMTFCRjtDRDNDOzExMEUgMTE2QSAxMUJGOworQ0QzRDtDRDNEOzExMEUgMTE2QSAxMUMwO0NEM0Q7MTEwRSAxMTZBIDExQzA7CitDRDNFO0NEM0U7MTEwRSAxMTZBIDExQzE7Q0QzRTsxMTBFIDExNkEgMTFDMTsKK0NEM0Y7Q0QzRjsxMTBFIDExNkEgMTFDMjtDRDNGOzExMEUgMTE2QSAxMUMyOworQ0Q0MDtDRDQwOzExMEUgMTE2QjtDRDQwOzExMEUgMTE2QjsKK0NENDE7Q0Q0MTsxMTBFIDExNkIgMTFBODtDRDQxOzExMEUgMTE2QiAxMUE4OworQ0Q0MjtDRDQyOzExMEUgMTE2QiAxMUE5O0NENDI7MTEwRSAxMTZCIDExQTk7CitDRDQzO0NENDM7MTEwRSAxMTZCIDExQUE7Q0Q0MzsxMTBFIDExNkIgMTFBQTsKK0NENDQ7Q0Q0NDsxMTBFIDExNkIgMTFBQjtDRDQ0OzExMEUgMTE2QiAxMUFCOworQ0Q0NTtDRDQ1OzExMEUgMTE2QiAxMUFDO0NENDU7MTEwRSAxMTZCIDExQUM7CitDRDQ2O0NENDY7MTEwRSAxMTZCIDExQUQ7Q0Q0NjsxMTBFIDExNkIgMTFBRDsKK0NENDc7Q0Q0NzsxMTBFIDExNkIgMTFBRTtDRDQ3OzExMEUgMTE2QiAxMUFFOworQ0Q0ODtDRDQ4OzExMEUgMTE2QiAxMUFGO0NENDg7MTEwRSAxMTZCIDExQUY7CitDRDQ5O0NENDk7MTEwRSAxMTZCIDExQjA7Q0Q0OTsxMTBFIDExNkIgMTFCMDsKK0NENEE7Q0Q0QTsxMTBFIDExNkIgMTFCMTtDRDRBOzExMEUgMTE2QiAxMUIxOworQ0Q0QjtDRDRCOzExMEUgMTE2QiAxMUIyO0NENEI7MTEwRSAxMTZCIDExQjI7CitDRDRDO0NENEM7MTEwRSAxMTZCIDExQjM7Q0Q0QzsxMTBFIDExNkIgMTFCMzsKK0NENEQ7Q0Q0RDsxMTBFIDExNkIgMTFCNDtDRDREOzExMEUgMTE2QiAxMUI0OworQ0Q0RTtDRDRFOzExMEUgMTE2QiAxMUI1O0NENEU7MTEwRSAxMTZCIDExQjU7CitDRDRGO0NENEY7MTEwRSAxMTZCIDExQjY7Q0Q0RjsxMTBFIDExNkIgMTFCNjsKK0NENTA7Q0Q1MDsxMTBFIDExNkIgMTFCNztDRDUwOzExMEUgMTE2QiAxMUI3OworQ0Q1MTtDRDUxOzExMEUgMTE2QiAxMUI4O0NENTE7MTEwRSAxMTZCIDExQjg7CitDRDUyO0NENTI7MTEwRSAxMTZCIDExQjk7Q0Q1MjsxMTBFIDExNkIgMTFCOTsKK0NENTM7Q0Q1MzsxMTBFIDExNkIgMTFCQTtDRDUzOzExMEUgMTE2QiAxMUJBOworQ0Q1NDtDRDU0OzExMEUgMTE2QiAxMUJCO0NENTQ7MTEwRSAxMTZCIDExQkI7CitDRDU1O0NENTU7MTEwRSAxMTZCIDExQkM7Q0Q1NTsxMTBFIDExNkIgMTFCQzsKK0NENTY7Q0Q1NjsxMTBFIDExNkIgMTFCRDtDRDU2OzExMEUgMTE2QiAxMUJEOworQ0Q1NztDRDU3OzExMEUgMTE2QiAxMUJFO0NENTc7MTEwRSAxMTZCIDExQkU7CitDRDU4O0NENTg7MTEwRSAxMTZCIDExQkY7Q0Q1ODsxMTBFIDExNkIgMTFCRjsKK0NENTk7Q0Q1OTsxMTBFIDExNkIgMTFDMDtDRDU5OzExMEUgMTE2QiAxMUMwOworQ0Q1QTtDRDVBOzExMEUgMTE2QiAxMUMxO0NENUE7MTEwRSAxMTZCIDExQzE7CitDRDVCO0NENUI7MTEwRSAxMTZCIDExQzI7Q0Q1QjsxMTBFIDExNkIgMTFDMjsKK0NENUM7Q0Q1QzsxMTBFIDExNkM7Q0Q1QzsxMTBFIDExNkM7CitDRDVEO0NENUQ7MTEwRSAxMTZDIDExQTg7Q0Q1RDsxMTBFIDExNkMgMTFBODsKK0NENUU7Q0Q1RTsxMTBFIDExNkMgMTFBOTtDRDVFOzExMEUgMTE2QyAxMUE5OworQ0Q1RjtDRDVGOzExMEUgMTE2QyAxMUFBO0NENUY7MTEwRSAxMTZDIDExQUE7CitDRDYwO0NENjA7MTEwRSAxMTZDIDExQUI7Q0Q2MDsxMTBFIDExNkMgMTFBQjsKK0NENjE7Q0Q2MTsxMTBFIDExNkMgMTFBQztDRDYxOzExMEUgMTE2QyAxMUFDOworQ0Q2MjtDRDYyOzExMEUgMTE2QyAxMUFEO0NENjI7MTEwRSAxMTZDIDExQUQ7CitDRDYzO0NENjM7MTEwRSAxMTZDIDExQUU7Q0Q2MzsxMTBFIDExNkMgMTFBRTsKK0NENjQ7Q0Q2NDsxMTBFIDExNkMgMTFBRjtDRDY0OzExMEUgMTE2QyAxMUFGOworQ0Q2NTtDRDY1OzExMEUgMTE2QyAxMUIwO0NENjU7MTEwRSAxMTZDIDExQjA7CitDRDY2O0NENjY7MTEwRSAxMTZDIDExQjE7Q0Q2NjsxMTBFIDExNkMgMTFCMTsKK0NENjc7Q0Q2NzsxMTBFIDExNkMgMTFCMjtDRDY3OzExMEUgMTE2QyAxMUIyOworQ0Q2ODtDRDY4OzExMEUgMTE2QyAxMUIzO0NENjg7MTEwRSAxMTZDIDExQjM7CitDRDY5O0NENjk7MTEwRSAxMTZDIDExQjQ7Q0Q2OTsxMTBFIDExNkMgMTFCNDsKK0NENkE7Q0Q2QTsxMTBFIDExNkMgMTFCNTtDRDZBOzExMEUgMTE2QyAxMUI1OworQ0Q2QjtDRDZCOzExMEUgMTE2QyAxMUI2O0NENkI7MTEwRSAxMTZDIDExQjY7CitDRDZDO0NENkM7MTEwRSAxMTZDIDExQjc7Q0Q2QzsxMTBFIDExNkMgMTFCNzsKK0NENkQ7Q0Q2RDsxMTBFIDExNkMgMTFCODtDRDZEOzExMEUgMTE2QyAxMUI4OworQ0Q2RTtDRDZFOzExMEUgMTE2QyAxMUI5O0NENkU7MTEwRSAxMTZDIDExQjk7CitDRDZGO0NENkY7MTEwRSAxMTZDIDExQkE7Q0Q2RjsxMTBFIDExNkMgMTFCQTsKK0NENzA7Q0Q3MDsxMTBFIDExNkMgMTFCQjtDRDcwOzExMEUgMTE2QyAxMUJCOworQ0Q3MTtDRDcxOzExMEUgMTE2QyAxMUJDO0NENzE7MTEwRSAxMTZDIDExQkM7CitDRDcyO0NENzI7MTEwRSAxMTZDIDExQkQ7Q0Q3MjsxMTBFIDExNkMgMTFCRDsKK0NENzM7Q0Q3MzsxMTBFIDExNkMgMTFCRTtDRDczOzExMEUgMTE2QyAxMUJFOworQ0Q3NDtDRDc0OzExMEUgMTE2QyAxMUJGO0NENzQ7MTEwRSAxMTZDIDExQkY7CitDRDc1O0NENzU7MTEwRSAxMTZDIDExQzA7Q0Q3NTsxMTBFIDExNkMgMTFDMDsKK0NENzY7Q0Q3NjsxMTBFIDExNkMgMTFDMTtDRDc2OzExMEUgMTE2QyAxMUMxOworQ0Q3NztDRDc3OzExMEUgMTE2QyAxMUMyO0NENzc7MTEwRSAxMTZDIDExQzI7CitDRDc4O0NENzg7MTEwRSAxMTZEO0NENzg7MTEwRSAxMTZEOworQ0Q3OTtDRDc5OzExMEUgMTE2RCAxMUE4O0NENzk7MTEwRSAxMTZEIDExQTg7CitDRDdBO0NEN0E7MTEwRSAxMTZEIDExQTk7Q0Q3QTsxMTBFIDExNkQgMTFBOTsKK0NEN0I7Q0Q3QjsxMTBFIDExNkQgMTFBQTtDRDdCOzExMEUgMTE2RCAxMUFBOworQ0Q3QztDRDdDOzExMEUgMTE2RCAxMUFCO0NEN0M7MTEwRSAxMTZEIDExQUI7CitDRDdEO0NEN0Q7MTEwRSAxMTZEIDExQUM7Q0Q3RDsxMTBFIDExNkQgMTFBQzsKK0NEN0U7Q0Q3RTsxMTBFIDExNkQgMTFBRDtDRDdFOzExMEUgMTE2RCAxMUFEOworQ0Q3RjtDRDdGOzExMEUgMTE2RCAxMUFFO0NEN0Y7MTEwRSAxMTZEIDExQUU7CitDRDgwO0NEODA7MTEwRSAxMTZEIDExQUY7Q0Q4MDsxMTBFIDExNkQgMTFBRjsKK0NEODE7Q0Q4MTsxMTBFIDExNkQgMTFCMDtDRDgxOzExMEUgMTE2RCAxMUIwOworQ0Q4MjtDRDgyOzExMEUgMTE2RCAxMUIxO0NEODI7MTEwRSAxMTZEIDExQjE7CitDRDgzO0NEODM7MTEwRSAxMTZEIDExQjI7Q0Q4MzsxMTBFIDExNkQgMTFCMjsKK0NEODQ7Q0Q4NDsxMTBFIDExNkQgMTFCMztDRDg0OzExMEUgMTE2RCAxMUIzOworQ0Q4NTtDRDg1OzExMEUgMTE2RCAxMUI0O0NEODU7MTEwRSAxMTZEIDExQjQ7CitDRDg2O0NEODY7MTEwRSAxMTZEIDExQjU7Q0Q4NjsxMTBFIDExNkQgMTFCNTsKK0NEODc7Q0Q4NzsxMTBFIDExNkQgMTFCNjtDRDg3OzExMEUgMTE2RCAxMUI2OworQ0Q4ODtDRDg4OzExMEUgMTE2RCAxMUI3O0NEODg7MTEwRSAxMTZEIDExQjc7CitDRDg5O0NEODk7MTEwRSAxMTZEIDExQjg7Q0Q4OTsxMTBFIDExNkQgMTFCODsKK0NEOEE7Q0Q4QTsxMTBFIDExNkQgMTFCOTtDRDhBOzExMEUgMTE2RCAxMUI5OworQ0Q4QjtDRDhCOzExMEUgMTE2RCAxMUJBO0NEOEI7MTEwRSAxMTZEIDExQkE7CitDRDhDO0NEOEM7MTEwRSAxMTZEIDExQkI7Q0Q4QzsxMTBFIDExNkQgMTFCQjsKK0NEOEQ7Q0Q4RDsxMTBFIDExNkQgMTFCQztDRDhEOzExMEUgMTE2RCAxMUJDOworQ0Q4RTtDRDhFOzExMEUgMTE2RCAxMUJEO0NEOEU7MTEwRSAxMTZEIDExQkQ7CitDRDhGO0NEOEY7MTEwRSAxMTZEIDExQkU7Q0Q4RjsxMTBFIDExNkQgMTFCRTsKK0NEOTA7Q0Q5MDsxMTBFIDExNkQgMTFCRjtDRDkwOzExMEUgMTE2RCAxMUJGOworQ0Q5MTtDRDkxOzExMEUgMTE2RCAxMUMwO0NEOTE7MTEwRSAxMTZEIDExQzA7CitDRDkyO0NEOTI7MTEwRSAxMTZEIDExQzE7Q0Q5MjsxMTBFIDExNkQgMTFDMTsKK0NEOTM7Q0Q5MzsxMTBFIDExNkQgMTFDMjtDRDkzOzExMEUgMTE2RCAxMUMyOworQ0Q5NDtDRDk0OzExMEUgMTE2RTtDRDk0OzExMEUgMTE2RTsKK0NEOTU7Q0Q5NTsxMTBFIDExNkUgMTFBODtDRDk1OzExMEUgMTE2RSAxMUE4OworQ0Q5NjtDRDk2OzExMEUgMTE2RSAxMUE5O0NEOTY7MTEwRSAxMTZFIDExQTk7CitDRDk3O0NEOTc7MTEwRSAxMTZFIDExQUE7Q0Q5NzsxMTBFIDExNkUgMTFBQTsKK0NEOTg7Q0Q5ODsxMTBFIDExNkUgMTFBQjtDRDk4OzExMEUgMTE2RSAxMUFCOworQ0Q5OTtDRDk5OzExMEUgMTE2RSAxMUFDO0NEOTk7MTEwRSAxMTZFIDExQUM7CitDRDlBO0NEOUE7MTEwRSAxMTZFIDExQUQ7Q0Q5QTsxMTBFIDExNkUgMTFBRDsKK0NEOUI7Q0Q5QjsxMTBFIDExNkUgMTFBRTtDRDlCOzExMEUgMTE2RSAxMUFFOworQ0Q5QztDRDlDOzExMEUgMTE2RSAxMUFGO0NEOUM7MTEwRSAxMTZFIDExQUY7CitDRDlEO0NEOUQ7MTEwRSAxMTZFIDExQjA7Q0Q5RDsxMTBFIDExNkUgMTFCMDsKK0NEOUU7Q0Q5RTsxMTBFIDExNkUgMTFCMTtDRDlFOzExMEUgMTE2RSAxMUIxOworQ0Q5RjtDRDlGOzExMEUgMTE2RSAxMUIyO0NEOUY7MTEwRSAxMTZFIDExQjI7CitDREEwO0NEQTA7MTEwRSAxMTZFIDExQjM7Q0RBMDsxMTBFIDExNkUgMTFCMzsKK0NEQTE7Q0RBMTsxMTBFIDExNkUgMTFCNDtDREExOzExMEUgMTE2RSAxMUI0OworQ0RBMjtDREEyOzExMEUgMTE2RSAxMUI1O0NEQTI7MTEwRSAxMTZFIDExQjU7CitDREEzO0NEQTM7MTEwRSAxMTZFIDExQjY7Q0RBMzsxMTBFIDExNkUgMTFCNjsKK0NEQTQ7Q0RBNDsxMTBFIDExNkUgMTFCNztDREE0OzExMEUgMTE2RSAxMUI3OworQ0RBNTtDREE1OzExMEUgMTE2RSAxMUI4O0NEQTU7MTEwRSAxMTZFIDExQjg7CitDREE2O0NEQTY7MTEwRSAxMTZFIDExQjk7Q0RBNjsxMTBFIDExNkUgMTFCOTsKK0NEQTc7Q0RBNzsxMTBFIDExNkUgMTFCQTtDREE3OzExMEUgMTE2RSAxMUJBOworQ0RBODtDREE4OzExMEUgMTE2RSAxMUJCO0NEQTg7MTEwRSAxMTZFIDExQkI7CitDREE5O0NEQTk7MTEwRSAxMTZFIDExQkM7Q0RBOTsxMTBFIDExNkUgMTFCQzsKK0NEQUE7Q0RBQTsxMTBFIDExNkUgMTFCRDtDREFBOzExMEUgMTE2RSAxMUJEOworQ0RBQjtDREFCOzExMEUgMTE2RSAxMUJFO0NEQUI7MTEwRSAxMTZFIDExQkU7CitDREFDO0NEQUM7MTEwRSAxMTZFIDExQkY7Q0RBQzsxMTBFIDExNkUgMTFCRjsKK0NEQUQ7Q0RBRDsxMTBFIDExNkUgMTFDMDtDREFEOzExMEUgMTE2RSAxMUMwOworQ0RBRTtDREFFOzExMEUgMTE2RSAxMUMxO0NEQUU7MTEwRSAxMTZFIDExQzE7CitDREFGO0NEQUY7MTEwRSAxMTZFIDExQzI7Q0RBRjsxMTBFIDExNkUgMTFDMjsKK0NEQjA7Q0RCMDsxMTBFIDExNkY7Q0RCMDsxMTBFIDExNkY7CitDREIxO0NEQjE7MTEwRSAxMTZGIDExQTg7Q0RCMTsxMTBFIDExNkYgMTFBODsKK0NEQjI7Q0RCMjsxMTBFIDExNkYgMTFBOTtDREIyOzExMEUgMTE2RiAxMUE5OworQ0RCMztDREIzOzExMEUgMTE2RiAxMUFBO0NEQjM7MTEwRSAxMTZGIDExQUE7CitDREI0O0NEQjQ7MTEwRSAxMTZGIDExQUI7Q0RCNDsxMTBFIDExNkYgMTFBQjsKK0NEQjU7Q0RCNTsxMTBFIDExNkYgMTFBQztDREI1OzExMEUgMTE2RiAxMUFDOworQ0RCNjtDREI2OzExMEUgMTE2RiAxMUFEO0NEQjY7MTEwRSAxMTZGIDExQUQ7CitDREI3O0NEQjc7MTEwRSAxMTZGIDExQUU7Q0RCNzsxMTBFIDExNkYgMTFBRTsKK0NEQjg7Q0RCODsxMTBFIDExNkYgMTFBRjtDREI4OzExMEUgMTE2RiAxMUFGOworQ0RCOTtDREI5OzExMEUgMTE2RiAxMUIwO0NEQjk7MTEwRSAxMTZGIDExQjA7CitDREJBO0NEQkE7MTEwRSAxMTZGIDExQjE7Q0RCQTsxMTBFIDExNkYgMTFCMTsKK0NEQkI7Q0RCQjsxMTBFIDExNkYgMTFCMjtDREJCOzExMEUgMTE2RiAxMUIyOworQ0RCQztDREJDOzExMEUgMTE2RiAxMUIzO0NEQkM7MTEwRSAxMTZGIDExQjM7CitDREJEO0NEQkQ7MTEwRSAxMTZGIDExQjQ7Q0RCRDsxMTBFIDExNkYgMTFCNDsKK0NEQkU7Q0RCRTsxMTBFIDExNkYgMTFCNTtDREJFOzExMEUgMTE2RiAxMUI1OworQ0RCRjtDREJGOzExMEUgMTE2RiAxMUI2O0NEQkY7MTEwRSAxMTZGIDExQjY7CitDREMwO0NEQzA7MTEwRSAxMTZGIDExQjc7Q0RDMDsxMTBFIDExNkYgMTFCNzsKK0NEQzE7Q0RDMTsxMTBFIDExNkYgMTFCODtDREMxOzExMEUgMTE2RiAxMUI4OworQ0RDMjtDREMyOzExMEUgMTE2RiAxMUI5O0NEQzI7MTEwRSAxMTZGIDExQjk7CitDREMzO0NEQzM7MTEwRSAxMTZGIDExQkE7Q0RDMzsxMTBFIDExNkYgMTFCQTsKK0NEQzQ7Q0RDNDsxMTBFIDExNkYgMTFCQjtDREM0OzExMEUgMTE2RiAxMUJCOworQ0RDNTtDREM1OzExMEUgMTE2RiAxMUJDO0NEQzU7MTEwRSAxMTZGIDExQkM7CitDREM2O0NEQzY7MTEwRSAxMTZGIDExQkQ7Q0RDNjsxMTBFIDExNkYgMTFCRDsKK0NEQzc7Q0RDNzsxMTBFIDExNkYgMTFCRTtDREM3OzExMEUgMTE2RiAxMUJFOworQ0RDODtDREM4OzExMEUgMTE2RiAxMUJGO0NEQzg7MTEwRSAxMTZGIDExQkY7CitDREM5O0NEQzk7MTEwRSAxMTZGIDExQzA7Q0RDOTsxMTBFIDExNkYgMTFDMDsKK0NEQ0E7Q0RDQTsxMTBFIDExNkYgMTFDMTtDRENBOzExMEUgMTE2RiAxMUMxOworQ0RDQjtDRENCOzExMEUgMTE2RiAxMUMyO0NEQ0I7MTEwRSAxMTZGIDExQzI7CitDRENDO0NEQ0M7MTEwRSAxMTcwO0NEQ0M7MTEwRSAxMTcwOworQ0RDRDtDRENEOzExMEUgMTE3MCAxMUE4O0NEQ0Q7MTEwRSAxMTcwIDExQTg7CitDRENFO0NEQ0U7MTEwRSAxMTcwIDExQTk7Q0RDRTsxMTBFIDExNzAgMTFBOTsKK0NEQ0Y7Q0RDRjsxMTBFIDExNzAgMTFBQTtDRENGOzExMEUgMTE3MCAxMUFBOworQ0REMDtDREQwOzExMEUgMTE3MCAxMUFCO0NERDA7MTEwRSAxMTcwIDExQUI7CitDREQxO0NERDE7MTEwRSAxMTcwIDExQUM7Q0REMTsxMTBFIDExNzAgMTFBQzsKK0NERDI7Q0REMjsxMTBFIDExNzAgMTFBRDtDREQyOzExMEUgMTE3MCAxMUFEOworQ0REMztDREQzOzExMEUgMTE3MCAxMUFFO0NERDM7MTEwRSAxMTcwIDExQUU7CitDREQ0O0NERDQ7MTEwRSAxMTcwIDExQUY7Q0RENDsxMTBFIDExNzAgMTFBRjsKK0NERDU7Q0RENTsxMTBFIDExNzAgMTFCMDtDREQ1OzExMEUgMTE3MCAxMUIwOworQ0RENjtDREQ2OzExMEUgMTE3MCAxMUIxO0NERDY7MTEwRSAxMTcwIDExQjE7CitDREQ3O0NERDc7MTEwRSAxMTcwIDExQjI7Q0RENzsxMTBFIDExNzAgMTFCMjsKK0NERDg7Q0REODsxMTBFIDExNzAgMTFCMztDREQ4OzExMEUgMTE3MCAxMUIzOworQ0REOTtDREQ5OzExMEUgMTE3MCAxMUI0O0NERDk7MTEwRSAxMTcwIDExQjQ7CitDRERBO0NEREE7MTEwRSAxMTcwIDExQjU7Q0REQTsxMTBFIDExNzAgMTFCNTsKK0NEREI7Q0REQjsxMTBFIDExNzAgMTFCNjtDRERCOzExMEUgMTE3MCAxMUI2OworQ0REQztDRERDOzExMEUgMTE3MCAxMUI3O0NEREM7MTEwRSAxMTcwIDExQjc7CitDREREO0NEREQ7MTEwRSAxMTcwIDExQjg7Q0RERDsxMTBFIDExNzAgMTFCODsKK0NEREU7Q0RERTsxMTBFIDExNzAgMTFCOTtDRERFOzExMEUgMTE3MCAxMUI5OworQ0RERjtDRERGOzExMEUgMTE3MCAxMUJBO0NEREY7MTEwRSAxMTcwIDExQkE7CitDREUwO0NERTA7MTEwRSAxMTcwIDExQkI7Q0RFMDsxMTBFIDExNzAgMTFCQjsKK0NERTE7Q0RFMTsxMTBFIDExNzAgMTFCQztDREUxOzExMEUgMTE3MCAxMUJDOworQ0RFMjtDREUyOzExMEUgMTE3MCAxMUJEO0NERTI7MTEwRSAxMTcwIDExQkQ7CitDREUzO0NERTM7MTEwRSAxMTcwIDExQkU7Q0RFMzsxMTBFIDExNzAgMTFCRTsKK0NERTQ7Q0RFNDsxMTBFIDExNzAgMTFCRjtDREU0OzExMEUgMTE3MCAxMUJGOworQ0RFNTtDREU1OzExMEUgMTE3MCAxMUMwO0NERTU7MTEwRSAxMTcwIDExQzA7CitDREU2O0NERTY7MTEwRSAxMTcwIDExQzE7Q0RFNjsxMTBFIDExNzAgMTFDMTsKK0NERTc7Q0RFNzsxMTBFIDExNzAgMTFDMjtDREU3OzExMEUgMTE3MCAxMUMyOworQ0RFODtDREU4OzExMEUgMTE3MTtDREU4OzExMEUgMTE3MTsKK0NERTk7Q0RFOTsxMTBFIDExNzEgMTFBODtDREU5OzExMEUgMTE3MSAxMUE4OworQ0RFQTtDREVBOzExMEUgMTE3MSAxMUE5O0NERUE7MTEwRSAxMTcxIDExQTk7CitDREVCO0NERUI7MTEwRSAxMTcxIDExQUE7Q0RFQjsxMTBFIDExNzEgMTFBQTsKK0NERUM7Q0RFQzsxMTBFIDExNzEgMTFBQjtDREVDOzExMEUgMTE3MSAxMUFCOworQ0RFRDtDREVEOzExMEUgMTE3MSAxMUFDO0NERUQ7MTEwRSAxMTcxIDExQUM7CitDREVFO0NERUU7MTEwRSAxMTcxIDExQUQ7Q0RFRTsxMTBFIDExNzEgMTFBRDsKK0NERUY7Q0RFRjsxMTBFIDExNzEgMTFBRTtDREVGOzExMEUgMTE3MSAxMUFFOworQ0RGMDtDREYwOzExMEUgMTE3MSAxMUFGO0NERjA7MTEwRSAxMTcxIDExQUY7CitDREYxO0NERjE7MTEwRSAxMTcxIDExQjA7Q0RGMTsxMTBFIDExNzEgMTFCMDsKK0NERjI7Q0RGMjsxMTBFIDExNzEgMTFCMTtDREYyOzExMEUgMTE3MSAxMUIxOworQ0RGMztDREYzOzExMEUgMTE3MSAxMUIyO0NERjM7MTEwRSAxMTcxIDExQjI7CitDREY0O0NERjQ7MTEwRSAxMTcxIDExQjM7Q0RGNDsxMTBFIDExNzEgMTFCMzsKK0NERjU7Q0RGNTsxMTBFIDExNzEgMTFCNDtDREY1OzExMEUgMTE3MSAxMUI0OworQ0RGNjtDREY2OzExMEUgMTE3MSAxMUI1O0NERjY7MTEwRSAxMTcxIDExQjU7CitDREY3O0NERjc7MTEwRSAxMTcxIDExQjY7Q0RGNzsxMTBFIDExNzEgMTFCNjsKK0NERjg7Q0RGODsxMTBFIDExNzEgMTFCNztDREY4OzExMEUgMTE3MSAxMUI3OworQ0RGOTtDREY5OzExMEUgMTE3MSAxMUI4O0NERjk7MTEwRSAxMTcxIDExQjg7CitDREZBO0NERkE7MTEwRSAxMTcxIDExQjk7Q0RGQTsxMTBFIDExNzEgMTFCOTsKK0NERkI7Q0RGQjsxMTBFIDExNzEgMTFCQTtDREZCOzExMEUgMTE3MSAxMUJBOworQ0RGQztDREZDOzExMEUgMTE3MSAxMUJCO0NERkM7MTEwRSAxMTcxIDExQkI7CitDREZEO0NERkQ7MTEwRSAxMTcxIDExQkM7Q0RGRDsxMTBFIDExNzEgMTFCQzsKK0NERkU7Q0RGRTsxMTBFIDExNzEgMTFCRDtDREZFOzExMEUgMTE3MSAxMUJEOworQ0RGRjtDREZGOzExMEUgMTE3MSAxMUJFO0NERkY7MTEwRSAxMTcxIDExQkU7CitDRTAwO0NFMDA7MTEwRSAxMTcxIDExQkY7Q0UwMDsxMTBFIDExNzEgMTFCRjsKK0NFMDE7Q0UwMTsxMTBFIDExNzEgMTFDMDtDRTAxOzExMEUgMTE3MSAxMUMwOworQ0UwMjtDRTAyOzExMEUgMTE3MSAxMUMxO0NFMDI7MTEwRSAxMTcxIDExQzE7CitDRTAzO0NFMDM7MTEwRSAxMTcxIDExQzI7Q0UwMzsxMTBFIDExNzEgMTFDMjsKK0NFMDQ7Q0UwNDsxMTBFIDExNzI7Q0UwNDsxMTBFIDExNzI7CitDRTA1O0NFMDU7MTEwRSAxMTcyIDExQTg7Q0UwNTsxMTBFIDExNzIgMTFBODsKK0NFMDY7Q0UwNjsxMTBFIDExNzIgMTFBOTtDRTA2OzExMEUgMTE3MiAxMUE5OworQ0UwNztDRTA3OzExMEUgMTE3MiAxMUFBO0NFMDc7MTEwRSAxMTcyIDExQUE7CitDRTA4O0NFMDg7MTEwRSAxMTcyIDExQUI7Q0UwODsxMTBFIDExNzIgMTFBQjsKK0NFMDk7Q0UwOTsxMTBFIDExNzIgMTFBQztDRTA5OzExMEUgMTE3MiAxMUFDOworQ0UwQTtDRTBBOzExMEUgMTE3MiAxMUFEO0NFMEE7MTEwRSAxMTcyIDExQUQ7CitDRTBCO0NFMEI7MTEwRSAxMTcyIDExQUU7Q0UwQjsxMTBFIDExNzIgMTFBRTsKK0NFMEM7Q0UwQzsxMTBFIDExNzIgMTFBRjtDRTBDOzExMEUgMTE3MiAxMUFGOworQ0UwRDtDRTBEOzExMEUgMTE3MiAxMUIwO0NFMEQ7MTEwRSAxMTcyIDExQjA7CitDRTBFO0NFMEU7MTEwRSAxMTcyIDExQjE7Q0UwRTsxMTBFIDExNzIgMTFCMTsKK0NFMEY7Q0UwRjsxMTBFIDExNzIgMTFCMjtDRTBGOzExMEUgMTE3MiAxMUIyOworQ0UxMDtDRTEwOzExMEUgMTE3MiAxMUIzO0NFMTA7MTEwRSAxMTcyIDExQjM7CitDRTExO0NFMTE7MTEwRSAxMTcyIDExQjQ7Q0UxMTsxMTBFIDExNzIgMTFCNDsKK0NFMTI7Q0UxMjsxMTBFIDExNzIgMTFCNTtDRTEyOzExMEUgMTE3MiAxMUI1OworQ0UxMztDRTEzOzExMEUgMTE3MiAxMUI2O0NFMTM7MTEwRSAxMTcyIDExQjY7CitDRTE0O0NFMTQ7MTEwRSAxMTcyIDExQjc7Q0UxNDsxMTBFIDExNzIgMTFCNzsKK0NFMTU7Q0UxNTsxMTBFIDExNzIgMTFCODtDRTE1OzExMEUgMTE3MiAxMUI4OworQ0UxNjtDRTE2OzExMEUgMTE3MiAxMUI5O0NFMTY7MTEwRSAxMTcyIDExQjk7CitDRTE3O0NFMTc7MTEwRSAxMTcyIDExQkE7Q0UxNzsxMTBFIDExNzIgMTFCQTsKK0NFMTg7Q0UxODsxMTBFIDExNzIgMTFCQjtDRTE4OzExMEUgMTE3MiAxMUJCOworQ0UxOTtDRTE5OzExMEUgMTE3MiAxMUJDO0NFMTk7MTEwRSAxMTcyIDExQkM7CitDRTFBO0NFMUE7MTEwRSAxMTcyIDExQkQ7Q0UxQTsxMTBFIDExNzIgMTFCRDsKK0NFMUI7Q0UxQjsxMTBFIDExNzIgMTFCRTtDRTFCOzExMEUgMTE3MiAxMUJFOworQ0UxQztDRTFDOzExMEUgMTE3MiAxMUJGO0NFMUM7MTEwRSAxMTcyIDExQkY7CitDRTFEO0NFMUQ7MTEwRSAxMTcyIDExQzA7Q0UxRDsxMTBFIDExNzIgMTFDMDsKK0NFMUU7Q0UxRTsxMTBFIDExNzIgMTFDMTtDRTFFOzExMEUgMTE3MiAxMUMxOworQ0UxRjtDRTFGOzExMEUgMTE3MiAxMUMyO0NFMUY7MTEwRSAxMTcyIDExQzI7CitDRTIwO0NFMjA7MTEwRSAxMTczO0NFMjA7MTEwRSAxMTczOworQ0UyMTtDRTIxOzExMEUgMTE3MyAxMUE4O0NFMjE7MTEwRSAxMTczIDExQTg7CitDRTIyO0NFMjI7MTEwRSAxMTczIDExQTk7Q0UyMjsxMTBFIDExNzMgMTFBOTsKK0NFMjM7Q0UyMzsxMTBFIDExNzMgMTFBQTtDRTIzOzExMEUgMTE3MyAxMUFBOworQ0UyNDtDRTI0OzExMEUgMTE3MyAxMUFCO0NFMjQ7MTEwRSAxMTczIDExQUI7CitDRTI1O0NFMjU7MTEwRSAxMTczIDExQUM7Q0UyNTsxMTBFIDExNzMgMTFBQzsKK0NFMjY7Q0UyNjsxMTBFIDExNzMgMTFBRDtDRTI2OzExMEUgMTE3MyAxMUFEOworQ0UyNztDRTI3OzExMEUgMTE3MyAxMUFFO0NFMjc7MTEwRSAxMTczIDExQUU7CitDRTI4O0NFMjg7MTEwRSAxMTczIDExQUY7Q0UyODsxMTBFIDExNzMgMTFBRjsKK0NFMjk7Q0UyOTsxMTBFIDExNzMgMTFCMDtDRTI5OzExMEUgMTE3MyAxMUIwOworQ0UyQTtDRTJBOzExMEUgMTE3MyAxMUIxO0NFMkE7MTEwRSAxMTczIDExQjE7CitDRTJCO0NFMkI7MTEwRSAxMTczIDExQjI7Q0UyQjsxMTBFIDExNzMgMTFCMjsKK0NFMkM7Q0UyQzsxMTBFIDExNzMgMTFCMztDRTJDOzExMEUgMTE3MyAxMUIzOworQ0UyRDtDRTJEOzExMEUgMTE3MyAxMUI0O0NFMkQ7MTEwRSAxMTczIDExQjQ7CitDRTJFO0NFMkU7MTEwRSAxMTczIDExQjU7Q0UyRTsxMTBFIDExNzMgMTFCNTsKK0NFMkY7Q0UyRjsxMTBFIDExNzMgMTFCNjtDRTJGOzExMEUgMTE3MyAxMUI2OworQ0UzMDtDRTMwOzExMEUgMTE3MyAxMUI3O0NFMzA7MTEwRSAxMTczIDExQjc7CitDRTMxO0NFMzE7MTEwRSAxMTczIDExQjg7Q0UzMTsxMTBFIDExNzMgMTFCODsKK0NFMzI7Q0UzMjsxMTBFIDExNzMgMTFCOTtDRTMyOzExMEUgMTE3MyAxMUI5OworQ0UzMztDRTMzOzExMEUgMTE3MyAxMUJBO0NFMzM7MTEwRSAxMTczIDExQkE7CitDRTM0O0NFMzQ7MTEwRSAxMTczIDExQkI7Q0UzNDsxMTBFIDExNzMgMTFCQjsKK0NFMzU7Q0UzNTsxMTBFIDExNzMgMTFCQztDRTM1OzExMEUgMTE3MyAxMUJDOworQ0UzNjtDRTM2OzExMEUgMTE3MyAxMUJEO0NFMzY7MTEwRSAxMTczIDExQkQ7CitDRTM3O0NFMzc7MTEwRSAxMTczIDExQkU7Q0UzNzsxMTBFIDExNzMgMTFCRTsKK0NFMzg7Q0UzODsxMTBFIDExNzMgMTFCRjtDRTM4OzExMEUgMTE3MyAxMUJGOworQ0UzOTtDRTM5OzExMEUgMTE3MyAxMUMwO0NFMzk7MTEwRSAxMTczIDExQzA7CitDRTNBO0NFM0E7MTEwRSAxMTczIDExQzE7Q0UzQTsxMTBFIDExNzMgMTFDMTsKK0NFM0I7Q0UzQjsxMTBFIDExNzMgMTFDMjtDRTNCOzExMEUgMTE3MyAxMUMyOworQ0UzQztDRTNDOzExMEUgMTE3NDtDRTNDOzExMEUgMTE3NDsKK0NFM0Q7Q0UzRDsxMTBFIDExNzQgMTFBODtDRTNEOzExMEUgMTE3NCAxMUE4OworQ0UzRTtDRTNFOzExMEUgMTE3NCAxMUE5O0NFM0U7MTEwRSAxMTc0IDExQTk7CitDRTNGO0NFM0Y7MTEwRSAxMTc0IDExQUE7Q0UzRjsxMTBFIDExNzQgMTFBQTsKK0NFNDA7Q0U0MDsxMTBFIDExNzQgMTFBQjtDRTQwOzExMEUgMTE3NCAxMUFCOworQ0U0MTtDRTQxOzExMEUgMTE3NCAxMUFDO0NFNDE7MTEwRSAxMTc0IDExQUM7CitDRTQyO0NFNDI7MTEwRSAxMTc0IDExQUQ7Q0U0MjsxMTBFIDExNzQgMTFBRDsKK0NFNDM7Q0U0MzsxMTBFIDExNzQgMTFBRTtDRTQzOzExMEUgMTE3NCAxMUFFOworQ0U0NDtDRTQ0OzExMEUgMTE3NCAxMUFGO0NFNDQ7MTEwRSAxMTc0IDExQUY7CitDRTQ1O0NFNDU7MTEwRSAxMTc0IDExQjA7Q0U0NTsxMTBFIDExNzQgMTFCMDsKK0NFNDY7Q0U0NjsxMTBFIDExNzQgMTFCMTtDRTQ2OzExMEUgMTE3NCAxMUIxOworQ0U0NztDRTQ3OzExMEUgMTE3NCAxMUIyO0NFNDc7MTEwRSAxMTc0IDExQjI7CitDRTQ4O0NFNDg7MTEwRSAxMTc0IDExQjM7Q0U0ODsxMTBFIDExNzQgMTFCMzsKK0NFNDk7Q0U0OTsxMTBFIDExNzQgMTFCNDtDRTQ5OzExMEUgMTE3NCAxMUI0OworQ0U0QTtDRTRBOzExMEUgMTE3NCAxMUI1O0NFNEE7MTEwRSAxMTc0IDExQjU7CitDRTRCO0NFNEI7MTEwRSAxMTc0IDExQjY7Q0U0QjsxMTBFIDExNzQgMTFCNjsKK0NFNEM7Q0U0QzsxMTBFIDExNzQgMTFCNztDRTRDOzExMEUgMTE3NCAxMUI3OworQ0U0RDtDRTREOzExMEUgMTE3NCAxMUI4O0NFNEQ7MTEwRSAxMTc0IDExQjg7CitDRTRFO0NFNEU7MTEwRSAxMTc0IDExQjk7Q0U0RTsxMTBFIDExNzQgMTFCOTsKK0NFNEY7Q0U0RjsxMTBFIDExNzQgMTFCQTtDRTRGOzExMEUgMTE3NCAxMUJBOworQ0U1MDtDRTUwOzExMEUgMTE3NCAxMUJCO0NFNTA7MTEwRSAxMTc0IDExQkI7CitDRTUxO0NFNTE7MTEwRSAxMTc0IDExQkM7Q0U1MTsxMTBFIDExNzQgMTFCQzsKK0NFNTI7Q0U1MjsxMTBFIDExNzQgMTFCRDtDRTUyOzExMEUgMTE3NCAxMUJEOworQ0U1MztDRTUzOzExMEUgMTE3NCAxMUJFO0NFNTM7MTEwRSAxMTc0IDExQkU7CitDRTU0O0NFNTQ7MTEwRSAxMTc0IDExQkY7Q0U1NDsxMTBFIDExNzQgMTFCRjsKK0NFNTU7Q0U1NTsxMTBFIDExNzQgMTFDMDtDRTU1OzExMEUgMTE3NCAxMUMwOworQ0U1NjtDRTU2OzExMEUgMTE3NCAxMUMxO0NFNTY7MTEwRSAxMTc0IDExQzE7CitDRTU3O0NFNTc7MTEwRSAxMTc0IDExQzI7Q0U1NzsxMTBFIDExNzQgMTFDMjsKK0NFNTg7Q0U1ODsxMTBFIDExNzU7Q0U1ODsxMTBFIDExNzU7CitDRTU5O0NFNTk7MTEwRSAxMTc1IDExQTg7Q0U1OTsxMTBFIDExNzUgMTFBODsKK0NFNUE7Q0U1QTsxMTBFIDExNzUgMTFBOTtDRTVBOzExMEUgMTE3NSAxMUE5OworQ0U1QjtDRTVCOzExMEUgMTE3NSAxMUFBO0NFNUI7MTEwRSAxMTc1IDExQUE7CitDRTVDO0NFNUM7MTEwRSAxMTc1IDExQUI7Q0U1QzsxMTBFIDExNzUgMTFBQjsKK0NFNUQ7Q0U1RDsxMTBFIDExNzUgMTFBQztDRTVEOzExMEUgMTE3NSAxMUFDOworQ0U1RTtDRTVFOzExMEUgMTE3NSAxMUFEO0NFNUU7MTEwRSAxMTc1IDExQUQ7CitDRTVGO0NFNUY7MTEwRSAxMTc1IDExQUU7Q0U1RjsxMTBFIDExNzUgMTFBRTsKK0NFNjA7Q0U2MDsxMTBFIDExNzUgMTFBRjtDRTYwOzExMEUgMTE3NSAxMUFGOworQ0U2MTtDRTYxOzExMEUgMTE3NSAxMUIwO0NFNjE7MTEwRSAxMTc1IDExQjA7CitDRTYyO0NFNjI7MTEwRSAxMTc1IDExQjE7Q0U2MjsxMTBFIDExNzUgMTFCMTsKK0NFNjM7Q0U2MzsxMTBFIDExNzUgMTFCMjtDRTYzOzExMEUgMTE3NSAxMUIyOworQ0U2NDtDRTY0OzExMEUgMTE3NSAxMUIzO0NFNjQ7MTEwRSAxMTc1IDExQjM7CitDRTY1O0NFNjU7MTEwRSAxMTc1IDExQjQ7Q0U2NTsxMTBFIDExNzUgMTFCNDsKK0NFNjY7Q0U2NjsxMTBFIDExNzUgMTFCNTtDRTY2OzExMEUgMTE3NSAxMUI1OworQ0U2NztDRTY3OzExMEUgMTE3NSAxMUI2O0NFNjc7MTEwRSAxMTc1IDExQjY7CitDRTY4O0NFNjg7MTEwRSAxMTc1IDExQjc7Q0U2ODsxMTBFIDExNzUgMTFCNzsKK0NFNjk7Q0U2OTsxMTBFIDExNzUgMTFCODtDRTY5OzExMEUgMTE3NSAxMUI4OworQ0U2QTtDRTZBOzExMEUgMTE3NSAxMUI5O0NFNkE7MTEwRSAxMTc1IDExQjk7CitDRTZCO0NFNkI7MTEwRSAxMTc1IDExQkE7Q0U2QjsxMTBFIDExNzUgMTFCQTsKK0NFNkM7Q0U2QzsxMTBFIDExNzUgMTFCQjtDRTZDOzExMEUgMTE3NSAxMUJCOworQ0U2RDtDRTZEOzExMEUgMTE3NSAxMUJDO0NFNkQ7MTEwRSAxMTc1IDExQkM7CitDRTZFO0NFNkU7MTEwRSAxMTc1IDExQkQ7Q0U2RTsxMTBFIDExNzUgMTFCRDsKK0NFNkY7Q0U2RjsxMTBFIDExNzUgMTFCRTtDRTZGOzExMEUgMTE3NSAxMUJFOworQ0U3MDtDRTcwOzExMEUgMTE3NSAxMUJGO0NFNzA7MTEwRSAxMTc1IDExQkY7CitDRTcxO0NFNzE7MTEwRSAxMTc1IDExQzA7Q0U3MTsxMTBFIDExNzUgMTFDMDsKK0NFNzI7Q0U3MjsxMTBFIDExNzUgMTFDMTtDRTcyOzExMEUgMTE3NSAxMUMxOworQ0U3MztDRTczOzExMEUgMTE3NSAxMUMyO0NFNzM7MTEwRSAxMTc1IDExQzI7CitDRTc0O0NFNzQ7MTEwRiAxMTYxO0NFNzQ7MTEwRiAxMTYxOworQ0U3NTtDRTc1OzExMEYgMTE2MSAxMUE4O0NFNzU7MTEwRiAxMTYxIDExQTg7CitDRTc2O0NFNzY7MTEwRiAxMTYxIDExQTk7Q0U3NjsxMTBGIDExNjEgMTFBOTsKK0NFNzc7Q0U3NzsxMTBGIDExNjEgMTFBQTtDRTc3OzExMEYgMTE2MSAxMUFBOworQ0U3ODtDRTc4OzExMEYgMTE2MSAxMUFCO0NFNzg7MTEwRiAxMTYxIDExQUI7CitDRTc5O0NFNzk7MTEwRiAxMTYxIDExQUM7Q0U3OTsxMTBGIDExNjEgMTFBQzsKK0NFN0E7Q0U3QTsxMTBGIDExNjEgMTFBRDtDRTdBOzExMEYgMTE2MSAxMUFEOworQ0U3QjtDRTdCOzExMEYgMTE2MSAxMUFFO0NFN0I7MTEwRiAxMTYxIDExQUU7CitDRTdDO0NFN0M7MTEwRiAxMTYxIDExQUY7Q0U3QzsxMTBGIDExNjEgMTFBRjsKK0NFN0Q7Q0U3RDsxMTBGIDExNjEgMTFCMDtDRTdEOzExMEYgMTE2MSAxMUIwOworQ0U3RTtDRTdFOzExMEYgMTE2MSAxMUIxO0NFN0U7MTEwRiAxMTYxIDExQjE7CitDRTdGO0NFN0Y7MTEwRiAxMTYxIDExQjI7Q0U3RjsxMTBGIDExNjEgMTFCMjsKK0NFODA7Q0U4MDsxMTBGIDExNjEgMTFCMztDRTgwOzExMEYgMTE2MSAxMUIzOworQ0U4MTtDRTgxOzExMEYgMTE2MSAxMUI0O0NFODE7MTEwRiAxMTYxIDExQjQ7CitDRTgyO0NFODI7MTEwRiAxMTYxIDExQjU7Q0U4MjsxMTBGIDExNjEgMTFCNTsKK0NFODM7Q0U4MzsxMTBGIDExNjEgMTFCNjtDRTgzOzExMEYgMTE2MSAxMUI2OworQ0U4NDtDRTg0OzExMEYgMTE2MSAxMUI3O0NFODQ7MTEwRiAxMTYxIDExQjc7CitDRTg1O0NFODU7MTEwRiAxMTYxIDExQjg7Q0U4NTsxMTBGIDExNjEgMTFCODsKK0NFODY7Q0U4NjsxMTBGIDExNjEgMTFCOTtDRTg2OzExMEYgMTE2MSAxMUI5OworQ0U4NztDRTg3OzExMEYgMTE2MSAxMUJBO0NFODc7MTEwRiAxMTYxIDExQkE7CitDRTg4O0NFODg7MTEwRiAxMTYxIDExQkI7Q0U4ODsxMTBGIDExNjEgMTFCQjsKK0NFODk7Q0U4OTsxMTBGIDExNjEgMTFCQztDRTg5OzExMEYgMTE2MSAxMUJDOworQ0U4QTtDRThBOzExMEYgMTE2MSAxMUJEO0NFOEE7MTEwRiAxMTYxIDExQkQ7CitDRThCO0NFOEI7MTEwRiAxMTYxIDExQkU7Q0U4QjsxMTBGIDExNjEgMTFCRTsKK0NFOEM7Q0U4QzsxMTBGIDExNjEgMTFCRjtDRThDOzExMEYgMTE2MSAxMUJGOworQ0U4RDtDRThEOzExMEYgMTE2MSAxMUMwO0NFOEQ7MTEwRiAxMTYxIDExQzA7CitDRThFO0NFOEU7MTEwRiAxMTYxIDExQzE7Q0U4RTsxMTBGIDExNjEgMTFDMTsKK0NFOEY7Q0U4RjsxMTBGIDExNjEgMTFDMjtDRThGOzExMEYgMTE2MSAxMUMyOworQ0U5MDtDRTkwOzExMEYgMTE2MjtDRTkwOzExMEYgMTE2MjsKK0NFOTE7Q0U5MTsxMTBGIDExNjIgMTFBODtDRTkxOzExMEYgMTE2MiAxMUE4OworQ0U5MjtDRTkyOzExMEYgMTE2MiAxMUE5O0NFOTI7MTEwRiAxMTYyIDExQTk7CitDRTkzO0NFOTM7MTEwRiAxMTYyIDExQUE7Q0U5MzsxMTBGIDExNjIgMTFBQTsKK0NFOTQ7Q0U5NDsxMTBGIDExNjIgMTFBQjtDRTk0OzExMEYgMTE2MiAxMUFCOworQ0U5NTtDRTk1OzExMEYgMTE2MiAxMUFDO0NFOTU7MTEwRiAxMTYyIDExQUM7CitDRTk2O0NFOTY7MTEwRiAxMTYyIDExQUQ7Q0U5NjsxMTBGIDExNjIgMTFBRDsKK0NFOTc7Q0U5NzsxMTBGIDExNjIgMTFBRTtDRTk3OzExMEYgMTE2MiAxMUFFOworQ0U5ODtDRTk4OzExMEYgMTE2MiAxMUFGO0NFOTg7MTEwRiAxMTYyIDExQUY7CitDRTk5O0NFOTk7MTEwRiAxMTYyIDExQjA7Q0U5OTsxMTBGIDExNjIgMTFCMDsKK0NFOUE7Q0U5QTsxMTBGIDExNjIgMTFCMTtDRTlBOzExMEYgMTE2MiAxMUIxOworQ0U5QjtDRTlCOzExMEYgMTE2MiAxMUIyO0NFOUI7MTEwRiAxMTYyIDExQjI7CitDRTlDO0NFOUM7MTEwRiAxMTYyIDExQjM7Q0U5QzsxMTBGIDExNjIgMTFCMzsKK0NFOUQ7Q0U5RDsxMTBGIDExNjIgMTFCNDtDRTlEOzExMEYgMTE2MiAxMUI0OworQ0U5RTtDRTlFOzExMEYgMTE2MiAxMUI1O0NFOUU7MTEwRiAxMTYyIDExQjU7CitDRTlGO0NFOUY7MTEwRiAxMTYyIDExQjY7Q0U5RjsxMTBGIDExNjIgMTFCNjsKK0NFQTA7Q0VBMDsxMTBGIDExNjIgMTFCNztDRUEwOzExMEYgMTE2MiAxMUI3OworQ0VBMTtDRUExOzExMEYgMTE2MiAxMUI4O0NFQTE7MTEwRiAxMTYyIDExQjg7CitDRUEyO0NFQTI7MTEwRiAxMTYyIDExQjk7Q0VBMjsxMTBGIDExNjIgMTFCOTsKK0NFQTM7Q0VBMzsxMTBGIDExNjIgMTFCQTtDRUEzOzExMEYgMTE2MiAxMUJBOworQ0VBNDtDRUE0OzExMEYgMTE2MiAxMUJCO0NFQTQ7MTEwRiAxMTYyIDExQkI7CitDRUE1O0NFQTU7MTEwRiAxMTYyIDExQkM7Q0VBNTsxMTBGIDExNjIgMTFCQzsKK0NFQTY7Q0VBNjsxMTBGIDExNjIgMTFCRDtDRUE2OzExMEYgMTE2MiAxMUJEOworQ0VBNztDRUE3OzExMEYgMTE2MiAxMUJFO0NFQTc7MTEwRiAxMTYyIDExQkU7CitDRUE4O0NFQTg7MTEwRiAxMTYyIDExQkY7Q0VBODsxMTBGIDExNjIgMTFCRjsKK0NFQTk7Q0VBOTsxMTBGIDExNjIgMTFDMDtDRUE5OzExMEYgMTE2MiAxMUMwOworQ0VBQTtDRUFBOzExMEYgMTE2MiAxMUMxO0NFQUE7MTEwRiAxMTYyIDExQzE7CitDRUFCO0NFQUI7MTEwRiAxMTYyIDExQzI7Q0VBQjsxMTBGIDExNjIgMTFDMjsKK0NFQUM7Q0VBQzsxMTBGIDExNjM7Q0VBQzsxMTBGIDExNjM7CitDRUFEO0NFQUQ7MTEwRiAxMTYzIDExQTg7Q0VBRDsxMTBGIDExNjMgMTFBODsKK0NFQUU7Q0VBRTsxMTBGIDExNjMgMTFBOTtDRUFFOzExMEYgMTE2MyAxMUE5OworQ0VBRjtDRUFGOzExMEYgMTE2MyAxMUFBO0NFQUY7MTEwRiAxMTYzIDExQUE7CitDRUIwO0NFQjA7MTEwRiAxMTYzIDExQUI7Q0VCMDsxMTBGIDExNjMgMTFBQjsKK0NFQjE7Q0VCMTsxMTBGIDExNjMgMTFBQztDRUIxOzExMEYgMTE2MyAxMUFDOworQ0VCMjtDRUIyOzExMEYgMTE2MyAxMUFEO0NFQjI7MTEwRiAxMTYzIDExQUQ7CitDRUIzO0NFQjM7MTEwRiAxMTYzIDExQUU7Q0VCMzsxMTBGIDExNjMgMTFBRTsKK0NFQjQ7Q0VCNDsxMTBGIDExNjMgMTFBRjtDRUI0OzExMEYgMTE2MyAxMUFGOworQ0VCNTtDRUI1OzExMEYgMTE2MyAxMUIwO0NFQjU7MTEwRiAxMTYzIDExQjA7CitDRUI2O0NFQjY7MTEwRiAxMTYzIDExQjE7Q0VCNjsxMTBGIDExNjMgMTFCMTsKK0NFQjc7Q0VCNzsxMTBGIDExNjMgMTFCMjtDRUI3OzExMEYgMTE2MyAxMUIyOworQ0VCODtDRUI4OzExMEYgMTE2MyAxMUIzO0NFQjg7MTEwRiAxMTYzIDExQjM7CitDRUI5O0NFQjk7MTEwRiAxMTYzIDExQjQ7Q0VCOTsxMTBGIDExNjMgMTFCNDsKK0NFQkE7Q0VCQTsxMTBGIDExNjMgMTFCNTtDRUJBOzExMEYgMTE2MyAxMUI1OworQ0VCQjtDRUJCOzExMEYgMTE2MyAxMUI2O0NFQkI7MTEwRiAxMTYzIDExQjY7CitDRUJDO0NFQkM7MTEwRiAxMTYzIDExQjc7Q0VCQzsxMTBGIDExNjMgMTFCNzsKK0NFQkQ7Q0VCRDsxMTBGIDExNjMgMTFCODtDRUJEOzExMEYgMTE2MyAxMUI4OworQ0VCRTtDRUJFOzExMEYgMTE2MyAxMUI5O0NFQkU7MTEwRiAxMTYzIDExQjk7CitDRUJGO0NFQkY7MTEwRiAxMTYzIDExQkE7Q0VCRjsxMTBGIDExNjMgMTFCQTsKK0NFQzA7Q0VDMDsxMTBGIDExNjMgMTFCQjtDRUMwOzExMEYgMTE2MyAxMUJCOworQ0VDMTtDRUMxOzExMEYgMTE2MyAxMUJDO0NFQzE7MTEwRiAxMTYzIDExQkM7CitDRUMyO0NFQzI7MTEwRiAxMTYzIDExQkQ7Q0VDMjsxMTBGIDExNjMgMTFCRDsKK0NFQzM7Q0VDMzsxMTBGIDExNjMgMTFCRTtDRUMzOzExMEYgMTE2MyAxMUJFOworQ0VDNDtDRUM0OzExMEYgMTE2MyAxMUJGO0NFQzQ7MTEwRiAxMTYzIDExQkY7CitDRUM1O0NFQzU7MTEwRiAxMTYzIDExQzA7Q0VDNTsxMTBGIDExNjMgMTFDMDsKK0NFQzY7Q0VDNjsxMTBGIDExNjMgMTFDMTtDRUM2OzExMEYgMTE2MyAxMUMxOworQ0VDNztDRUM3OzExMEYgMTE2MyAxMUMyO0NFQzc7MTEwRiAxMTYzIDExQzI7CitDRUM4O0NFQzg7MTEwRiAxMTY0O0NFQzg7MTEwRiAxMTY0OworQ0VDOTtDRUM5OzExMEYgMTE2NCAxMUE4O0NFQzk7MTEwRiAxMTY0IDExQTg7CitDRUNBO0NFQ0E7MTEwRiAxMTY0IDExQTk7Q0VDQTsxMTBGIDExNjQgMTFBOTsKK0NFQ0I7Q0VDQjsxMTBGIDExNjQgMTFBQTtDRUNCOzExMEYgMTE2NCAxMUFBOworQ0VDQztDRUNDOzExMEYgMTE2NCAxMUFCO0NFQ0M7MTEwRiAxMTY0IDExQUI7CitDRUNEO0NFQ0Q7MTEwRiAxMTY0IDExQUM7Q0VDRDsxMTBGIDExNjQgMTFBQzsKK0NFQ0U7Q0VDRTsxMTBGIDExNjQgMTFBRDtDRUNFOzExMEYgMTE2NCAxMUFEOworQ0VDRjtDRUNGOzExMEYgMTE2NCAxMUFFO0NFQ0Y7MTEwRiAxMTY0IDExQUU7CitDRUQwO0NFRDA7MTEwRiAxMTY0IDExQUY7Q0VEMDsxMTBGIDExNjQgMTFBRjsKK0NFRDE7Q0VEMTsxMTBGIDExNjQgMTFCMDtDRUQxOzExMEYgMTE2NCAxMUIwOworQ0VEMjtDRUQyOzExMEYgMTE2NCAxMUIxO0NFRDI7MTEwRiAxMTY0IDExQjE7CitDRUQzO0NFRDM7MTEwRiAxMTY0IDExQjI7Q0VEMzsxMTBGIDExNjQgMTFCMjsKK0NFRDQ7Q0VENDsxMTBGIDExNjQgMTFCMztDRUQ0OzExMEYgMTE2NCAxMUIzOworQ0VENTtDRUQ1OzExMEYgMTE2NCAxMUI0O0NFRDU7MTEwRiAxMTY0IDExQjQ7CitDRUQ2O0NFRDY7MTEwRiAxMTY0IDExQjU7Q0VENjsxMTBGIDExNjQgMTFCNTsKK0NFRDc7Q0VENzsxMTBGIDExNjQgMTFCNjtDRUQ3OzExMEYgMTE2NCAxMUI2OworQ0VEODtDRUQ4OzExMEYgMTE2NCAxMUI3O0NFRDg7MTEwRiAxMTY0IDExQjc7CitDRUQ5O0NFRDk7MTEwRiAxMTY0IDExQjg7Q0VEOTsxMTBGIDExNjQgMTFCODsKK0NFREE7Q0VEQTsxMTBGIDExNjQgMTFCOTtDRURBOzExMEYgMTE2NCAxMUI5OworQ0VEQjtDRURCOzExMEYgMTE2NCAxMUJBO0NFREI7MTEwRiAxMTY0IDExQkE7CitDRURDO0NFREM7MTEwRiAxMTY0IDExQkI7Q0VEQzsxMTBGIDExNjQgMTFCQjsKK0NFREQ7Q0VERDsxMTBGIDExNjQgMTFCQztDRUREOzExMEYgMTE2NCAxMUJDOworQ0VERTtDRURFOzExMEYgMTE2NCAxMUJEO0NFREU7MTEwRiAxMTY0IDExQkQ7CitDRURGO0NFREY7MTEwRiAxMTY0IDExQkU7Q0VERjsxMTBGIDExNjQgMTFCRTsKK0NFRTA7Q0VFMDsxMTBGIDExNjQgMTFCRjtDRUUwOzExMEYgMTE2NCAxMUJGOworQ0VFMTtDRUUxOzExMEYgMTE2NCAxMUMwO0NFRTE7MTEwRiAxMTY0IDExQzA7CitDRUUyO0NFRTI7MTEwRiAxMTY0IDExQzE7Q0VFMjsxMTBGIDExNjQgMTFDMTsKK0NFRTM7Q0VFMzsxMTBGIDExNjQgMTFDMjtDRUUzOzExMEYgMTE2NCAxMUMyOworQ0VFNDtDRUU0OzExMEYgMTE2NTtDRUU0OzExMEYgMTE2NTsKK0NFRTU7Q0VFNTsxMTBGIDExNjUgMTFBODtDRUU1OzExMEYgMTE2NSAxMUE4OworQ0VFNjtDRUU2OzExMEYgMTE2NSAxMUE5O0NFRTY7MTEwRiAxMTY1IDExQTk7CitDRUU3O0NFRTc7MTEwRiAxMTY1IDExQUE7Q0VFNzsxMTBGIDExNjUgMTFBQTsKK0NFRTg7Q0VFODsxMTBGIDExNjUgMTFBQjtDRUU4OzExMEYgMTE2NSAxMUFCOworQ0VFOTtDRUU5OzExMEYgMTE2NSAxMUFDO0NFRTk7MTEwRiAxMTY1IDExQUM7CitDRUVBO0NFRUE7MTEwRiAxMTY1IDExQUQ7Q0VFQTsxMTBGIDExNjUgMTFBRDsKK0NFRUI7Q0VFQjsxMTBGIDExNjUgMTFBRTtDRUVCOzExMEYgMTE2NSAxMUFFOworQ0VFQztDRUVDOzExMEYgMTE2NSAxMUFGO0NFRUM7MTEwRiAxMTY1IDExQUY7CitDRUVEO0NFRUQ7MTEwRiAxMTY1IDExQjA7Q0VFRDsxMTBGIDExNjUgMTFCMDsKK0NFRUU7Q0VFRTsxMTBGIDExNjUgMTFCMTtDRUVFOzExMEYgMTE2NSAxMUIxOworQ0VFRjtDRUVGOzExMEYgMTE2NSAxMUIyO0NFRUY7MTEwRiAxMTY1IDExQjI7CitDRUYwO0NFRjA7MTEwRiAxMTY1IDExQjM7Q0VGMDsxMTBGIDExNjUgMTFCMzsKK0NFRjE7Q0VGMTsxMTBGIDExNjUgMTFCNDtDRUYxOzExMEYgMTE2NSAxMUI0OworQ0VGMjtDRUYyOzExMEYgMTE2NSAxMUI1O0NFRjI7MTEwRiAxMTY1IDExQjU7CitDRUYzO0NFRjM7MTEwRiAxMTY1IDExQjY7Q0VGMzsxMTBGIDExNjUgMTFCNjsKK0NFRjQ7Q0VGNDsxMTBGIDExNjUgMTFCNztDRUY0OzExMEYgMTE2NSAxMUI3OworQ0VGNTtDRUY1OzExMEYgMTE2NSAxMUI4O0NFRjU7MTEwRiAxMTY1IDExQjg7CitDRUY2O0NFRjY7MTEwRiAxMTY1IDExQjk7Q0VGNjsxMTBGIDExNjUgMTFCOTsKK0NFRjc7Q0VGNzsxMTBGIDExNjUgMTFCQTtDRUY3OzExMEYgMTE2NSAxMUJBOworQ0VGODtDRUY4OzExMEYgMTE2NSAxMUJCO0NFRjg7MTEwRiAxMTY1IDExQkI7CitDRUY5O0NFRjk7MTEwRiAxMTY1IDExQkM7Q0VGOTsxMTBGIDExNjUgMTFCQzsKK0NFRkE7Q0VGQTsxMTBGIDExNjUgMTFCRDtDRUZBOzExMEYgMTE2NSAxMUJEOworQ0VGQjtDRUZCOzExMEYgMTE2NSAxMUJFO0NFRkI7MTEwRiAxMTY1IDExQkU7CitDRUZDO0NFRkM7MTEwRiAxMTY1IDExQkY7Q0VGQzsxMTBGIDExNjUgMTFCRjsKK0NFRkQ7Q0VGRDsxMTBGIDExNjUgMTFDMDtDRUZEOzExMEYgMTE2NSAxMUMwOworQ0VGRTtDRUZFOzExMEYgMTE2NSAxMUMxO0NFRkU7MTEwRiAxMTY1IDExQzE7CitDRUZGO0NFRkY7MTEwRiAxMTY1IDExQzI7Q0VGRjsxMTBGIDExNjUgMTFDMjsKK0NGMDA7Q0YwMDsxMTBGIDExNjY7Q0YwMDsxMTBGIDExNjY7CitDRjAxO0NGMDE7MTEwRiAxMTY2IDExQTg7Q0YwMTsxMTBGIDExNjYgMTFBODsKK0NGMDI7Q0YwMjsxMTBGIDExNjYgMTFBOTtDRjAyOzExMEYgMTE2NiAxMUE5OworQ0YwMztDRjAzOzExMEYgMTE2NiAxMUFBO0NGMDM7MTEwRiAxMTY2IDExQUE7CitDRjA0O0NGMDQ7MTEwRiAxMTY2IDExQUI7Q0YwNDsxMTBGIDExNjYgMTFBQjsKK0NGMDU7Q0YwNTsxMTBGIDExNjYgMTFBQztDRjA1OzExMEYgMTE2NiAxMUFDOworQ0YwNjtDRjA2OzExMEYgMTE2NiAxMUFEO0NGMDY7MTEwRiAxMTY2IDExQUQ7CitDRjA3O0NGMDc7MTEwRiAxMTY2IDExQUU7Q0YwNzsxMTBGIDExNjYgMTFBRTsKK0NGMDg7Q0YwODsxMTBGIDExNjYgMTFBRjtDRjA4OzExMEYgMTE2NiAxMUFGOworQ0YwOTtDRjA5OzExMEYgMTE2NiAxMUIwO0NGMDk7MTEwRiAxMTY2IDExQjA7CitDRjBBO0NGMEE7MTEwRiAxMTY2IDExQjE7Q0YwQTsxMTBGIDExNjYgMTFCMTsKK0NGMEI7Q0YwQjsxMTBGIDExNjYgMTFCMjtDRjBCOzExMEYgMTE2NiAxMUIyOworQ0YwQztDRjBDOzExMEYgMTE2NiAxMUIzO0NGMEM7MTEwRiAxMTY2IDExQjM7CitDRjBEO0NGMEQ7MTEwRiAxMTY2IDExQjQ7Q0YwRDsxMTBGIDExNjYgMTFCNDsKK0NGMEU7Q0YwRTsxMTBGIDExNjYgMTFCNTtDRjBFOzExMEYgMTE2NiAxMUI1OworQ0YwRjtDRjBGOzExMEYgMTE2NiAxMUI2O0NGMEY7MTEwRiAxMTY2IDExQjY7CitDRjEwO0NGMTA7MTEwRiAxMTY2IDExQjc7Q0YxMDsxMTBGIDExNjYgMTFCNzsKK0NGMTE7Q0YxMTsxMTBGIDExNjYgMTFCODtDRjExOzExMEYgMTE2NiAxMUI4OworQ0YxMjtDRjEyOzExMEYgMTE2NiAxMUI5O0NGMTI7MTEwRiAxMTY2IDExQjk7CitDRjEzO0NGMTM7MTEwRiAxMTY2IDExQkE7Q0YxMzsxMTBGIDExNjYgMTFCQTsKK0NGMTQ7Q0YxNDsxMTBGIDExNjYgMTFCQjtDRjE0OzExMEYgMTE2NiAxMUJCOworQ0YxNTtDRjE1OzExMEYgMTE2NiAxMUJDO0NGMTU7MTEwRiAxMTY2IDExQkM7CitDRjE2O0NGMTY7MTEwRiAxMTY2IDExQkQ7Q0YxNjsxMTBGIDExNjYgMTFCRDsKK0NGMTc7Q0YxNzsxMTBGIDExNjYgMTFCRTtDRjE3OzExMEYgMTE2NiAxMUJFOworQ0YxODtDRjE4OzExMEYgMTE2NiAxMUJGO0NGMTg7MTEwRiAxMTY2IDExQkY7CitDRjE5O0NGMTk7MTEwRiAxMTY2IDExQzA7Q0YxOTsxMTBGIDExNjYgMTFDMDsKK0NGMUE7Q0YxQTsxMTBGIDExNjYgMTFDMTtDRjFBOzExMEYgMTE2NiAxMUMxOworQ0YxQjtDRjFCOzExMEYgMTE2NiAxMUMyO0NGMUI7MTEwRiAxMTY2IDExQzI7CitDRjFDO0NGMUM7MTEwRiAxMTY3O0NGMUM7MTEwRiAxMTY3OworQ0YxRDtDRjFEOzExMEYgMTE2NyAxMUE4O0NGMUQ7MTEwRiAxMTY3IDExQTg7CitDRjFFO0NGMUU7MTEwRiAxMTY3IDExQTk7Q0YxRTsxMTBGIDExNjcgMTFBOTsKK0NGMUY7Q0YxRjsxMTBGIDExNjcgMTFBQTtDRjFGOzExMEYgMTE2NyAxMUFBOworQ0YyMDtDRjIwOzExMEYgMTE2NyAxMUFCO0NGMjA7MTEwRiAxMTY3IDExQUI7CitDRjIxO0NGMjE7MTEwRiAxMTY3IDExQUM7Q0YyMTsxMTBGIDExNjcgMTFBQzsKK0NGMjI7Q0YyMjsxMTBGIDExNjcgMTFBRDtDRjIyOzExMEYgMTE2NyAxMUFEOworQ0YyMztDRjIzOzExMEYgMTE2NyAxMUFFO0NGMjM7MTEwRiAxMTY3IDExQUU7CitDRjI0O0NGMjQ7MTEwRiAxMTY3IDExQUY7Q0YyNDsxMTBGIDExNjcgMTFBRjsKK0NGMjU7Q0YyNTsxMTBGIDExNjcgMTFCMDtDRjI1OzExMEYgMTE2NyAxMUIwOworQ0YyNjtDRjI2OzExMEYgMTE2NyAxMUIxO0NGMjY7MTEwRiAxMTY3IDExQjE7CitDRjI3O0NGMjc7MTEwRiAxMTY3IDExQjI7Q0YyNzsxMTBGIDExNjcgMTFCMjsKK0NGMjg7Q0YyODsxMTBGIDExNjcgMTFCMztDRjI4OzExMEYgMTE2NyAxMUIzOworQ0YyOTtDRjI5OzExMEYgMTE2NyAxMUI0O0NGMjk7MTEwRiAxMTY3IDExQjQ7CitDRjJBO0NGMkE7MTEwRiAxMTY3IDExQjU7Q0YyQTsxMTBGIDExNjcgMTFCNTsKK0NGMkI7Q0YyQjsxMTBGIDExNjcgMTFCNjtDRjJCOzExMEYgMTE2NyAxMUI2OworQ0YyQztDRjJDOzExMEYgMTE2NyAxMUI3O0NGMkM7MTEwRiAxMTY3IDExQjc7CitDRjJEO0NGMkQ7MTEwRiAxMTY3IDExQjg7Q0YyRDsxMTBGIDExNjcgMTFCODsKK0NGMkU7Q0YyRTsxMTBGIDExNjcgMTFCOTtDRjJFOzExMEYgMTE2NyAxMUI5OworQ0YyRjtDRjJGOzExMEYgMTE2NyAxMUJBO0NGMkY7MTEwRiAxMTY3IDExQkE7CitDRjMwO0NGMzA7MTEwRiAxMTY3IDExQkI7Q0YzMDsxMTBGIDExNjcgMTFCQjsKK0NGMzE7Q0YzMTsxMTBGIDExNjcgMTFCQztDRjMxOzExMEYgMTE2NyAxMUJDOworQ0YzMjtDRjMyOzExMEYgMTE2NyAxMUJEO0NGMzI7MTEwRiAxMTY3IDExQkQ7CitDRjMzO0NGMzM7MTEwRiAxMTY3IDExQkU7Q0YzMzsxMTBGIDExNjcgMTFCRTsKK0NGMzQ7Q0YzNDsxMTBGIDExNjcgMTFCRjtDRjM0OzExMEYgMTE2NyAxMUJGOworQ0YzNTtDRjM1OzExMEYgMTE2NyAxMUMwO0NGMzU7MTEwRiAxMTY3IDExQzA7CitDRjM2O0NGMzY7MTEwRiAxMTY3IDExQzE7Q0YzNjsxMTBGIDExNjcgMTFDMTsKK0NGMzc7Q0YzNzsxMTBGIDExNjcgMTFDMjtDRjM3OzExMEYgMTE2NyAxMUMyOworQ0YzODtDRjM4OzExMEYgMTE2ODtDRjM4OzExMEYgMTE2ODsKK0NGMzk7Q0YzOTsxMTBGIDExNjggMTFBODtDRjM5OzExMEYgMTE2OCAxMUE4OworQ0YzQTtDRjNBOzExMEYgMTE2OCAxMUE5O0NGM0E7MTEwRiAxMTY4IDExQTk7CitDRjNCO0NGM0I7MTEwRiAxMTY4IDExQUE7Q0YzQjsxMTBGIDExNjggMTFBQTsKK0NGM0M7Q0YzQzsxMTBGIDExNjggMTFBQjtDRjNDOzExMEYgMTE2OCAxMUFCOworQ0YzRDtDRjNEOzExMEYgMTE2OCAxMUFDO0NGM0Q7MTEwRiAxMTY4IDExQUM7CitDRjNFO0NGM0U7MTEwRiAxMTY4IDExQUQ7Q0YzRTsxMTBGIDExNjggMTFBRDsKK0NGM0Y7Q0YzRjsxMTBGIDExNjggMTFBRTtDRjNGOzExMEYgMTE2OCAxMUFFOworQ0Y0MDtDRjQwOzExMEYgMTE2OCAxMUFGO0NGNDA7MTEwRiAxMTY4IDExQUY7CitDRjQxO0NGNDE7MTEwRiAxMTY4IDExQjA7Q0Y0MTsxMTBGIDExNjggMTFCMDsKK0NGNDI7Q0Y0MjsxMTBGIDExNjggMTFCMTtDRjQyOzExMEYgMTE2OCAxMUIxOworQ0Y0MztDRjQzOzExMEYgMTE2OCAxMUIyO0NGNDM7MTEwRiAxMTY4IDExQjI7CitDRjQ0O0NGNDQ7MTEwRiAxMTY4IDExQjM7Q0Y0NDsxMTBGIDExNjggMTFCMzsKK0NGNDU7Q0Y0NTsxMTBGIDExNjggMTFCNDtDRjQ1OzExMEYgMTE2OCAxMUI0OworQ0Y0NjtDRjQ2OzExMEYgMTE2OCAxMUI1O0NGNDY7MTEwRiAxMTY4IDExQjU7CitDRjQ3O0NGNDc7MTEwRiAxMTY4IDExQjY7Q0Y0NzsxMTBGIDExNjggMTFCNjsKK0NGNDg7Q0Y0ODsxMTBGIDExNjggMTFCNztDRjQ4OzExMEYgMTE2OCAxMUI3OworQ0Y0OTtDRjQ5OzExMEYgMTE2OCAxMUI4O0NGNDk7MTEwRiAxMTY4IDExQjg7CitDRjRBO0NGNEE7MTEwRiAxMTY4IDExQjk7Q0Y0QTsxMTBGIDExNjggMTFCOTsKK0NGNEI7Q0Y0QjsxMTBGIDExNjggMTFCQTtDRjRCOzExMEYgMTE2OCAxMUJBOworQ0Y0QztDRjRDOzExMEYgMTE2OCAxMUJCO0NGNEM7MTEwRiAxMTY4IDExQkI7CitDRjREO0NGNEQ7MTEwRiAxMTY4IDExQkM7Q0Y0RDsxMTBGIDExNjggMTFCQzsKK0NGNEU7Q0Y0RTsxMTBGIDExNjggMTFCRDtDRjRFOzExMEYgMTE2OCAxMUJEOworQ0Y0RjtDRjRGOzExMEYgMTE2OCAxMUJFO0NGNEY7MTEwRiAxMTY4IDExQkU7CitDRjUwO0NGNTA7MTEwRiAxMTY4IDExQkY7Q0Y1MDsxMTBGIDExNjggMTFCRjsKK0NGNTE7Q0Y1MTsxMTBGIDExNjggMTFDMDtDRjUxOzExMEYgMTE2OCAxMUMwOworQ0Y1MjtDRjUyOzExMEYgMTE2OCAxMUMxO0NGNTI7MTEwRiAxMTY4IDExQzE7CitDRjUzO0NGNTM7MTEwRiAxMTY4IDExQzI7Q0Y1MzsxMTBGIDExNjggMTFDMjsKK0NGNTQ7Q0Y1NDsxMTBGIDExNjk7Q0Y1NDsxMTBGIDExNjk7CitDRjU1O0NGNTU7MTEwRiAxMTY5IDExQTg7Q0Y1NTsxMTBGIDExNjkgMTFBODsKK0NGNTY7Q0Y1NjsxMTBGIDExNjkgMTFBOTtDRjU2OzExMEYgMTE2OSAxMUE5OworQ0Y1NztDRjU3OzExMEYgMTE2OSAxMUFBO0NGNTc7MTEwRiAxMTY5IDExQUE7CitDRjU4O0NGNTg7MTEwRiAxMTY5IDExQUI7Q0Y1ODsxMTBGIDExNjkgMTFBQjsKK0NGNTk7Q0Y1OTsxMTBGIDExNjkgMTFBQztDRjU5OzExMEYgMTE2OSAxMUFDOworQ0Y1QTtDRjVBOzExMEYgMTE2OSAxMUFEO0NGNUE7MTEwRiAxMTY5IDExQUQ7CitDRjVCO0NGNUI7MTEwRiAxMTY5IDExQUU7Q0Y1QjsxMTBGIDExNjkgMTFBRTsKK0NGNUM7Q0Y1QzsxMTBGIDExNjkgMTFBRjtDRjVDOzExMEYgMTE2OSAxMUFGOworQ0Y1RDtDRjVEOzExMEYgMTE2OSAxMUIwO0NGNUQ7MTEwRiAxMTY5IDExQjA7CitDRjVFO0NGNUU7MTEwRiAxMTY5IDExQjE7Q0Y1RTsxMTBGIDExNjkgMTFCMTsKK0NGNUY7Q0Y1RjsxMTBGIDExNjkgMTFCMjtDRjVGOzExMEYgMTE2OSAxMUIyOworQ0Y2MDtDRjYwOzExMEYgMTE2OSAxMUIzO0NGNjA7MTEwRiAxMTY5IDExQjM7CitDRjYxO0NGNjE7MTEwRiAxMTY5IDExQjQ7Q0Y2MTsxMTBGIDExNjkgMTFCNDsKK0NGNjI7Q0Y2MjsxMTBGIDExNjkgMTFCNTtDRjYyOzExMEYgMTE2OSAxMUI1OworQ0Y2MztDRjYzOzExMEYgMTE2OSAxMUI2O0NGNjM7MTEwRiAxMTY5IDExQjY7CitDRjY0O0NGNjQ7MTEwRiAxMTY5IDExQjc7Q0Y2NDsxMTBGIDExNjkgMTFCNzsKK0NGNjU7Q0Y2NTsxMTBGIDExNjkgMTFCODtDRjY1OzExMEYgMTE2OSAxMUI4OworQ0Y2NjtDRjY2OzExMEYgMTE2OSAxMUI5O0NGNjY7MTEwRiAxMTY5IDExQjk7CitDRjY3O0NGNjc7MTEwRiAxMTY5IDExQkE7Q0Y2NzsxMTBGIDExNjkgMTFCQTsKK0NGNjg7Q0Y2ODsxMTBGIDExNjkgMTFCQjtDRjY4OzExMEYgMTE2OSAxMUJCOworQ0Y2OTtDRjY5OzExMEYgMTE2OSAxMUJDO0NGNjk7MTEwRiAxMTY5IDExQkM7CitDRjZBO0NGNkE7MTEwRiAxMTY5IDExQkQ7Q0Y2QTsxMTBGIDExNjkgMTFCRDsKK0NGNkI7Q0Y2QjsxMTBGIDExNjkgMTFCRTtDRjZCOzExMEYgMTE2OSAxMUJFOworQ0Y2QztDRjZDOzExMEYgMTE2OSAxMUJGO0NGNkM7MTEwRiAxMTY5IDExQkY7CitDRjZEO0NGNkQ7MTEwRiAxMTY5IDExQzA7Q0Y2RDsxMTBGIDExNjkgMTFDMDsKK0NGNkU7Q0Y2RTsxMTBGIDExNjkgMTFDMTtDRjZFOzExMEYgMTE2OSAxMUMxOworQ0Y2RjtDRjZGOzExMEYgMTE2OSAxMUMyO0NGNkY7MTEwRiAxMTY5IDExQzI7CitDRjcwO0NGNzA7MTEwRiAxMTZBO0NGNzA7MTEwRiAxMTZBOworQ0Y3MTtDRjcxOzExMEYgMTE2QSAxMUE4O0NGNzE7MTEwRiAxMTZBIDExQTg7CitDRjcyO0NGNzI7MTEwRiAxMTZBIDExQTk7Q0Y3MjsxMTBGIDExNkEgMTFBOTsKK0NGNzM7Q0Y3MzsxMTBGIDExNkEgMTFBQTtDRjczOzExMEYgMTE2QSAxMUFBOworQ0Y3NDtDRjc0OzExMEYgMTE2QSAxMUFCO0NGNzQ7MTEwRiAxMTZBIDExQUI7CitDRjc1O0NGNzU7MTEwRiAxMTZBIDExQUM7Q0Y3NTsxMTBGIDExNkEgMTFBQzsKK0NGNzY7Q0Y3NjsxMTBGIDExNkEgMTFBRDtDRjc2OzExMEYgMTE2QSAxMUFEOworQ0Y3NztDRjc3OzExMEYgMTE2QSAxMUFFO0NGNzc7MTEwRiAxMTZBIDExQUU7CitDRjc4O0NGNzg7MTEwRiAxMTZBIDExQUY7Q0Y3ODsxMTBGIDExNkEgMTFBRjsKK0NGNzk7Q0Y3OTsxMTBGIDExNkEgMTFCMDtDRjc5OzExMEYgMTE2QSAxMUIwOworQ0Y3QTtDRjdBOzExMEYgMTE2QSAxMUIxO0NGN0E7MTEwRiAxMTZBIDExQjE7CitDRjdCO0NGN0I7MTEwRiAxMTZBIDExQjI7Q0Y3QjsxMTBGIDExNkEgMTFCMjsKK0NGN0M7Q0Y3QzsxMTBGIDExNkEgMTFCMztDRjdDOzExMEYgMTE2QSAxMUIzOworQ0Y3RDtDRjdEOzExMEYgMTE2QSAxMUI0O0NGN0Q7MTEwRiAxMTZBIDExQjQ7CitDRjdFO0NGN0U7MTEwRiAxMTZBIDExQjU7Q0Y3RTsxMTBGIDExNkEgMTFCNTsKK0NGN0Y7Q0Y3RjsxMTBGIDExNkEgMTFCNjtDRjdGOzExMEYgMTE2QSAxMUI2OworQ0Y4MDtDRjgwOzExMEYgMTE2QSAxMUI3O0NGODA7MTEwRiAxMTZBIDExQjc7CitDRjgxO0NGODE7MTEwRiAxMTZBIDExQjg7Q0Y4MTsxMTBGIDExNkEgMTFCODsKK0NGODI7Q0Y4MjsxMTBGIDExNkEgMTFCOTtDRjgyOzExMEYgMTE2QSAxMUI5OworQ0Y4MztDRjgzOzExMEYgMTE2QSAxMUJBO0NGODM7MTEwRiAxMTZBIDExQkE7CitDRjg0O0NGODQ7MTEwRiAxMTZBIDExQkI7Q0Y4NDsxMTBGIDExNkEgMTFCQjsKK0NGODU7Q0Y4NTsxMTBGIDExNkEgMTFCQztDRjg1OzExMEYgMTE2QSAxMUJDOworQ0Y4NjtDRjg2OzExMEYgMTE2QSAxMUJEO0NGODY7MTEwRiAxMTZBIDExQkQ7CitDRjg3O0NGODc7MTEwRiAxMTZBIDExQkU7Q0Y4NzsxMTBGIDExNkEgMTFCRTsKK0NGODg7Q0Y4ODsxMTBGIDExNkEgMTFCRjtDRjg4OzExMEYgMTE2QSAxMUJGOworQ0Y4OTtDRjg5OzExMEYgMTE2QSAxMUMwO0NGODk7MTEwRiAxMTZBIDExQzA7CitDRjhBO0NGOEE7MTEwRiAxMTZBIDExQzE7Q0Y4QTsxMTBGIDExNkEgMTFDMTsKK0NGOEI7Q0Y4QjsxMTBGIDExNkEgMTFDMjtDRjhCOzExMEYgMTE2QSAxMUMyOworQ0Y4QztDRjhDOzExMEYgMTE2QjtDRjhDOzExMEYgMTE2QjsKK0NGOEQ7Q0Y4RDsxMTBGIDExNkIgMTFBODtDRjhEOzExMEYgMTE2QiAxMUE4OworQ0Y4RTtDRjhFOzExMEYgMTE2QiAxMUE5O0NGOEU7MTEwRiAxMTZCIDExQTk7CitDRjhGO0NGOEY7MTEwRiAxMTZCIDExQUE7Q0Y4RjsxMTBGIDExNkIgMTFBQTsKK0NGOTA7Q0Y5MDsxMTBGIDExNkIgMTFBQjtDRjkwOzExMEYgMTE2QiAxMUFCOworQ0Y5MTtDRjkxOzExMEYgMTE2QiAxMUFDO0NGOTE7MTEwRiAxMTZCIDExQUM7CitDRjkyO0NGOTI7MTEwRiAxMTZCIDExQUQ7Q0Y5MjsxMTBGIDExNkIgMTFBRDsKK0NGOTM7Q0Y5MzsxMTBGIDExNkIgMTFBRTtDRjkzOzExMEYgMTE2QiAxMUFFOworQ0Y5NDtDRjk0OzExMEYgMTE2QiAxMUFGO0NGOTQ7MTEwRiAxMTZCIDExQUY7CitDRjk1O0NGOTU7MTEwRiAxMTZCIDExQjA7Q0Y5NTsxMTBGIDExNkIgMTFCMDsKK0NGOTY7Q0Y5NjsxMTBGIDExNkIgMTFCMTtDRjk2OzExMEYgMTE2QiAxMUIxOworQ0Y5NztDRjk3OzExMEYgMTE2QiAxMUIyO0NGOTc7MTEwRiAxMTZCIDExQjI7CitDRjk4O0NGOTg7MTEwRiAxMTZCIDExQjM7Q0Y5ODsxMTBGIDExNkIgMTFCMzsKK0NGOTk7Q0Y5OTsxMTBGIDExNkIgMTFCNDtDRjk5OzExMEYgMTE2QiAxMUI0OworQ0Y5QTtDRjlBOzExMEYgMTE2QiAxMUI1O0NGOUE7MTEwRiAxMTZCIDExQjU7CitDRjlCO0NGOUI7MTEwRiAxMTZCIDExQjY7Q0Y5QjsxMTBGIDExNkIgMTFCNjsKK0NGOUM7Q0Y5QzsxMTBGIDExNkIgMTFCNztDRjlDOzExMEYgMTE2QiAxMUI3OworQ0Y5RDtDRjlEOzExMEYgMTE2QiAxMUI4O0NGOUQ7MTEwRiAxMTZCIDExQjg7CitDRjlFO0NGOUU7MTEwRiAxMTZCIDExQjk7Q0Y5RTsxMTBGIDExNkIgMTFCOTsKK0NGOUY7Q0Y5RjsxMTBGIDExNkIgMTFCQTtDRjlGOzExMEYgMTE2QiAxMUJBOworQ0ZBMDtDRkEwOzExMEYgMTE2QiAxMUJCO0NGQTA7MTEwRiAxMTZCIDExQkI7CitDRkExO0NGQTE7MTEwRiAxMTZCIDExQkM7Q0ZBMTsxMTBGIDExNkIgMTFCQzsKK0NGQTI7Q0ZBMjsxMTBGIDExNkIgMTFCRDtDRkEyOzExMEYgMTE2QiAxMUJEOworQ0ZBMztDRkEzOzExMEYgMTE2QiAxMUJFO0NGQTM7MTEwRiAxMTZCIDExQkU7CitDRkE0O0NGQTQ7MTEwRiAxMTZCIDExQkY7Q0ZBNDsxMTBGIDExNkIgMTFCRjsKK0NGQTU7Q0ZBNTsxMTBGIDExNkIgMTFDMDtDRkE1OzExMEYgMTE2QiAxMUMwOworQ0ZBNjtDRkE2OzExMEYgMTE2QiAxMUMxO0NGQTY7MTEwRiAxMTZCIDExQzE7CitDRkE3O0NGQTc7MTEwRiAxMTZCIDExQzI7Q0ZBNzsxMTBGIDExNkIgMTFDMjsKK0NGQTg7Q0ZBODsxMTBGIDExNkM7Q0ZBODsxMTBGIDExNkM7CitDRkE5O0NGQTk7MTEwRiAxMTZDIDExQTg7Q0ZBOTsxMTBGIDExNkMgMTFBODsKK0NGQUE7Q0ZBQTsxMTBGIDExNkMgMTFBOTtDRkFBOzExMEYgMTE2QyAxMUE5OworQ0ZBQjtDRkFCOzExMEYgMTE2QyAxMUFBO0NGQUI7MTEwRiAxMTZDIDExQUE7CitDRkFDO0NGQUM7MTEwRiAxMTZDIDExQUI7Q0ZBQzsxMTBGIDExNkMgMTFBQjsKK0NGQUQ7Q0ZBRDsxMTBGIDExNkMgMTFBQztDRkFEOzExMEYgMTE2QyAxMUFDOworQ0ZBRTtDRkFFOzExMEYgMTE2QyAxMUFEO0NGQUU7MTEwRiAxMTZDIDExQUQ7CitDRkFGO0NGQUY7MTEwRiAxMTZDIDExQUU7Q0ZBRjsxMTBGIDExNkMgMTFBRTsKK0NGQjA7Q0ZCMDsxMTBGIDExNkMgMTFBRjtDRkIwOzExMEYgMTE2QyAxMUFGOworQ0ZCMTtDRkIxOzExMEYgMTE2QyAxMUIwO0NGQjE7MTEwRiAxMTZDIDExQjA7CitDRkIyO0NGQjI7MTEwRiAxMTZDIDExQjE7Q0ZCMjsxMTBGIDExNkMgMTFCMTsKK0NGQjM7Q0ZCMzsxMTBGIDExNkMgMTFCMjtDRkIzOzExMEYgMTE2QyAxMUIyOworQ0ZCNDtDRkI0OzExMEYgMTE2QyAxMUIzO0NGQjQ7MTEwRiAxMTZDIDExQjM7CitDRkI1O0NGQjU7MTEwRiAxMTZDIDExQjQ7Q0ZCNTsxMTBGIDExNkMgMTFCNDsKK0NGQjY7Q0ZCNjsxMTBGIDExNkMgMTFCNTtDRkI2OzExMEYgMTE2QyAxMUI1OworQ0ZCNztDRkI3OzExMEYgMTE2QyAxMUI2O0NGQjc7MTEwRiAxMTZDIDExQjY7CitDRkI4O0NGQjg7MTEwRiAxMTZDIDExQjc7Q0ZCODsxMTBGIDExNkMgMTFCNzsKK0NGQjk7Q0ZCOTsxMTBGIDExNkMgMTFCODtDRkI5OzExMEYgMTE2QyAxMUI4OworQ0ZCQTtDRkJBOzExMEYgMTE2QyAxMUI5O0NGQkE7MTEwRiAxMTZDIDExQjk7CitDRkJCO0NGQkI7MTEwRiAxMTZDIDExQkE7Q0ZCQjsxMTBGIDExNkMgMTFCQTsKK0NGQkM7Q0ZCQzsxMTBGIDExNkMgMTFCQjtDRkJDOzExMEYgMTE2QyAxMUJCOworQ0ZCRDtDRkJEOzExMEYgMTE2QyAxMUJDO0NGQkQ7MTEwRiAxMTZDIDExQkM7CitDRkJFO0NGQkU7MTEwRiAxMTZDIDExQkQ7Q0ZCRTsxMTBGIDExNkMgMTFCRDsKK0NGQkY7Q0ZCRjsxMTBGIDExNkMgMTFCRTtDRkJGOzExMEYgMTE2QyAxMUJFOworQ0ZDMDtDRkMwOzExMEYgMTE2QyAxMUJGO0NGQzA7MTEwRiAxMTZDIDExQkY7CitDRkMxO0NGQzE7MTEwRiAxMTZDIDExQzA7Q0ZDMTsxMTBGIDExNkMgMTFDMDsKK0NGQzI7Q0ZDMjsxMTBGIDExNkMgMTFDMTtDRkMyOzExMEYgMTE2QyAxMUMxOworQ0ZDMztDRkMzOzExMEYgMTE2QyAxMUMyO0NGQzM7MTEwRiAxMTZDIDExQzI7CitDRkM0O0NGQzQ7MTEwRiAxMTZEO0NGQzQ7MTEwRiAxMTZEOworQ0ZDNTtDRkM1OzExMEYgMTE2RCAxMUE4O0NGQzU7MTEwRiAxMTZEIDExQTg7CitDRkM2O0NGQzY7MTEwRiAxMTZEIDExQTk7Q0ZDNjsxMTBGIDExNkQgMTFBOTsKK0NGQzc7Q0ZDNzsxMTBGIDExNkQgMTFBQTtDRkM3OzExMEYgMTE2RCAxMUFBOworQ0ZDODtDRkM4OzExMEYgMTE2RCAxMUFCO0NGQzg7MTEwRiAxMTZEIDExQUI7CitDRkM5O0NGQzk7MTEwRiAxMTZEIDExQUM7Q0ZDOTsxMTBGIDExNkQgMTFBQzsKK0NGQ0E7Q0ZDQTsxMTBGIDExNkQgMTFBRDtDRkNBOzExMEYgMTE2RCAxMUFEOworQ0ZDQjtDRkNCOzExMEYgMTE2RCAxMUFFO0NGQ0I7MTEwRiAxMTZEIDExQUU7CitDRkNDO0NGQ0M7MTEwRiAxMTZEIDExQUY7Q0ZDQzsxMTBGIDExNkQgMTFBRjsKK0NGQ0Q7Q0ZDRDsxMTBGIDExNkQgMTFCMDtDRkNEOzExMEYgMTE2RCAxMUIwOworQ0ZDRTtDRkNFOzExMEYgMTE2RCAxMUIxO0NGQ0U7MTEwRiAxMTZEIDExQjE7CitDRkNGO0NGQ0Y7MTEwRiAxMTZEIDExQjI7Q0ZDRjsxMTBGIDExNkQgMTFCMjsKK0NGRDA7Q0ZEMDsxMTBGIDExNkQgMTFCMztDRkQwOzExMEYgMTE2RCAxMUIzOworQ0ZEMTtDRkQxOzExMEYgMTE2RCAxMUI0O0NGRDE7MTEwRiAxMTZEIDExQjQ7CitDRkQyO0NGRDI7MTEwRiAxMTZEIDExQjU7Q0ZEMjsxMTBGIDExNkQgMTFCNTsKK0NGRDM7Q0ZEMzsxMTBGIDExNkQgMTFCNjtDRkQzOzExMEYgMTE2RCAxMUI2OworQ0ZENDtDRkQ0OzExMEYgMTE2RCAxMUI3O0NGRDQ7MTEwRiAxMTZEIDExQjc7CitDRkQ1O0NGRDU7MTEwRiAxMTZEIDExQjg7Q0ZENTsxMTBGIDExNkQgMTFCODsKK0NGRDY7Q0ZENjsxMTBGIDExNkQgMTFCOTtDRkQ2OzExMEYgMTE2RCAxMUI5OworQ0ZENztDRkQ3OzExMEYgMTE2RCAxMUJBO0NGRDc7MTEwRiAxMTZEIDExQkE7CitDRkQ4O0NGRDg7MTEwRiAxMTZEIDExQkI7Q0ZEODsxMTBGIDExNkQgMTFCQjsKK0NGRDk7Q0ZEOTsxMTBGIDExNkQgMTFCQztDRkQ5OzExMEYgMTE2RCAxMUJDOworQ0ZEQTtDRkRBOzExMEYgMTE2RCAxMUJEO0NGREE7MTEwRiAxMTZEIDExQkQ7CitDRkRCO0NGREI7MTEwRiAxMTZEIDExQkU7Q0ZEQjsxMTBGIDExNkQgMTFCRTsKK0NGREM7Q0ZEQzsxMTBGIDExNkQgMTFCRjtDRkRDOzExMEYgMTE2RCAxMUJGOworQ0ZERDtDRkREOzExMEYgMTE2RCAxMUMwO0NGREQ7MTEwRiAxMTZEIDExQzA7CitDRkRFO0NGREU7MTEwRiAxMTZEIDExQzE7Q0ZERTsxMTBGIDExNkQgMTFDMTsKK0NGREY7Q0ZERjsxMTBGIDExNkQgMTFDMjtDRkRGOzExMEYgMTE2RCAxMUMyOworQ0ZFMDtDRkUwOzExMEYgMTE2RTtDRkUwOzExMEYgMTE2RTsKK0NGRTE7Q0ZFMTsxMTBGIDExNkUgMTFBODtDRkUxOzExMEYgMTE2RSAxMUE4OworQ0ZFMjtDRkUyOzExMEYgMTE2RSAxMUE5O0NGRTI7MTEwRiAxMTZFIDExQTk7CitDRkUzO0NGRTM7MTEwRiAxMTZFIDExQUE7Q0ZFMzsxMTBGIDExNkUgMTFBQTsKK0NGRTQ7Q0ZFNDsxMTBGIDExNkUgMTFBQjtDRkU0OzExMEYgMTE2RSAxMUFCOworQ0ZFNTtDRkU1OzExMEYgMTE2RSAxMUFDO0NGRTU7MTEwRiAxMTZFIDExQUM7CitDRkU2O0NGRTY7MTEwRiAxMTZFIDExQUQ7Q0ZFNjsxMTBGIDExNkUgMTFBRDsKK0NGRTc7Q0ZFNzsxMTBGIDExNkUgMTFBRTtDRkU3OzExMEYgMTE2RSAxMUFFOworQ0ZFODtDRkU4OzExMEYgMTE2RSAxMUFGO0NGRTg7MTEwRiAxMTZFIDExQUY7CitDRkU5O0NGRTk7MTEwRiAxMTZFIDExQjA7Q0ZFOTsxMTBGIDExNkUgMTFCMDsKK0NGRUE7Q0ZFQTsxMTBGIDExNkUgMTFCMTtDRkVBOzExMEYgMTE2RSAxMUIxOworQ0ZFQjtDRkVCOzExMEYgMTE2RSAxMUIyO0NGRUI7MTEwRiAxMTZFIDExQjI7CitDRkVDO0NGRUM7MTEwRiAxMTZFIDExQjM7Q0ZFQzsxMTBGIDExNkUgMTFCMzsKK0NGRUQ7Q0ZFRDsxMTBGIDExNkUgMTFCNDtDRkVEOzExMEYgMTE2RSAxMUI0OworQ0ZFRTtDRkVFOzExMEYgMTE2RSAxMUI1O0NGRUU7MTEwRiAxMTZFIDExQjU7CitDRkVGO0NGRUY7MTEwRiAxMTZFIDExQjY7Q0ZFRjsxMTBGIDExNkUgMTFCNjsKK0NGRjA7Q0ZGMDsxMTBGIDExNkUgMTFCNztDRkYwOzExMEYgMTE2RSAxMUI3OworQ0ZGMTtDRkYxOzExMEYgMTE2RSAxMUI4O0NGRjE7MTEwRiAxMTZFIDExQjg7CitDRkYyO0NGRjI7MTEwRiAxMTZFIDExQjk7Q0ZGMjsxMTBGIDExNkUgMTFCOTsKK0NGRjM7Q0ZGMzsxMTBGIDExNkUgMTFCQTtDRkYzOzExMEYgMTE2RSAxMUJBOworQ0ZGNDtDRkY0OzExMEYgMTE2RSAxMUJCO0NGRjQ7MTEwRiAxMTZFIDExQkI7CitDRkY1O0NGRjU7MTEwRiAxMTZFIDExQkM7Q0ZGNTsxMTBGIDExNkUgMTFCQzsKK0NGRjY7Q0ZGNjsxMTBGIDExNkUgMTFCRDtDRkY2OzExMEYgMTE2RSAxMUJEOworQ0ZGNztDRkY3OzExMEYgMTE2RSAxMUJFO0NGRjc7MTEwRiAxMTZFIDExQkU7CitDRkY4O0NGRjg7MTEwRiAxMTZFIDExQkY7Q0ZGODsxMTBGIDExNkUgMTFCRjsKK0NGRjk7Q0ZGOTsxMTBGIDExNkUgMTFDMDtDRkY5OzExMEYgMTE2RSAxMUMwOworQ0ZGQTtDRkZBOzExMEYgMTE2RSAxMUMxO0NGRkE7MTEwRiAxMTZFIDExQzE7CitDRkZCO0NGRkI7MTEwRiAxMTZFIDExQzI7Q0ZGQjsxMTBGIDExNkUgMTFDMjsKK0NGRkM7Q0ZGQzsxMTBGIDExNkY7Q0ZGQzsxMTBGIDExNkY7CitDRkZEO0NGRkQ7MTEwRiAxMTZGIDExQTg7Q0ZGRDsxMTBGIDExNkYgMTFBODsKK0NGRkU7Q0ZGRTsxMTBGIDExNkYgMTFBOTtDRkZFOzExMEYgMTE2RiAxMUE5OworQ0ZGRjtDRkZGOzExMEYgMTE2RiAxMUFBO0NGRkY7MTEwRiAxMTZGIDExQUE7CitEMDAwO0QwMDA7MTEwRiAxMTZGIDExQUI7RDAwMDsxMTBGIDExNkYgMTFBQjsKK0QwMDE7RDAwMTsxMTBGIDExNkYgMTFBQztEMDAxOzExMEYgMTE2RiAxMUFDOworRDAwMjtEMDAyOzExMEYgMTE2RiAxMUFEO0QwMDI7MTEwRiAxMTZGIDExQUQ7CitEMDAzO0QwMDM7MTEwRiAxMTZGIDExQUU7RDAwMzsxMTBGIDExNkYgMTFBRTsKK0QwMDQ7RDAwNDsxMTBGIDExNkYgMTFBRjtEMDA0OzExMEYgMTE2RiAxMUFGOworRDAwNTtEMDA1OzExMEYgMTE2RiAxMUIwO0QwMDU7MTEwRiAxMTZGIDExQjA7CitEMDA2O0QwMDY7MTEwRiAxMTZGIDExQjE7RDAwNjsxMTBGIDExNkYgMTFCMTsKK0QwMDc7RDAwNzsxMTBGIDExNkYgMTFCMjtEMDA3OzExMEYgMTE2RiAxMUIyOworRDAwODtEMDA4OzExMEYgMTE2RiAxMUIzO0QwMDg7MTEwRiAxMTZGIDExQjM7CitEMDA5O0QwMDk7MTEwRiAxMTZGIDExQjQ7RDAwOTsxMTBGIDExNkYgMTFCNDsKK0QwMEE7RDAwQTsxMTBGIDExNkYgMTFCNTtEMDBBOzExMEYgMTE2RiAxMUI1OworRDAwQjtEMDBCOzExMEYgMTE2RiAxMUI2O0QwMEI7MTEwRiAxMTZGIDExQjY7CitEMDBDO0QwMEM7MTEwRiAxMTZGIDExQjc7RDAwQzsxMTBGIDExNkYgMTFCNzsKK0QwMEQ7RDAwRDsxMTBGIDExNkYgMTFCODtEMDBEOzExMEYgMTE2RiAxMUI4OworRDAwRTtEMDBFOzExMEYgMTE2RiAxMUI5O0QwMEU7MTEwRiAxMTZGIDExQjk7CitEMDBGO0QwMEY7MTEwRiAxMTZGIDExQkE7RDAwRjsxMTBGIDExNkYgMTFCQTsKK0QwMTA7RDAxMDsxMTBGIDExNkYgMTFCQjtEMDEwOzExMEYgMTE2RiAxMUJCOworRDAxMTtEMDExOzExMEYgMTE2RiAxMUJDO0QwMTE7MTEwRiAxMTZGIDExQkM7CitEMDEyO0QwMTI7MTEwRiAxMTZGIDExQkQ7RDAxMjsxMTBGIDExNkYgMTFCRDsKK0QwMTM7RDAxMzsxMTBGIDExNkYgMTFCRTtEMDEzOzExMEYgMTE2RiAxMUJFOworRDAxNDtEMDE0OzExMEYgMTE2RiAxMUJGO0QwMTQ7MTEwRiAxMTZGIDExQkY7CitEMDE1O0QwMTU7MTEwRiAxMTZGIDExQzA7RDAxNTsxMTBGIDExNkYgMTFDMDsKK0QwMTY7RDAxNjsxMTBGIDExNkYgMTFDMTtEMDE2OzExMEYgMTE2RiAxMUMxOworRDAxNztEMDE3OzExMEYgMTE2RiAxMUMyO0QwMTc7MTEwRiAxMTZGIDExQzI7CitEMDE4O0QwMTg7MTEwRiAxMTcwO0QwMTg7MTEwRiAxMTcwOworRDAxOTtEMDE5OzExMEYgMTE3MCAxMUE4O0QwMTk7MTEwRiAxMTcwIDExQTg7CitEMDFBO0QwMUE7MTEwRiAxMTcwIDExQTk7RDAxQTsxMTBGIDExNzAgMTFBOTsKK0QwMUI7RDAxQjsxMTBGIDExNzAgMTFBQTtEMDFCOzExMEYgMTE3MCAxMUFBOworRDAxQztEMDFDOzExMEYgMTE3MCAxMUFCO0QwMUM7MTEwRiAxMTcwIDExQUI7CitEMDFEO0QwMUQ7MTEwRiAxMTcwIDExQUM7RDAxRDsxMTBGIDExNzAgMTFBQzsKK0QwMUU7RDAxRTsxMTBGIDExNzAgMTFBRDtEMDFFOzExMEYgMTE3MCAxMUFEOworRDAxRjtEMDFGOzExMEYgMTE3MCAxMUFFO0QwMUY7MTEwRiAxMTcwIDExQUU7CitEMDIwO0QwMjA7MTEwRiAxMTcwIDExQUY7RDAyMDsxMTBGIDExNzAgMTFBRjsKK0QwMjE7RDAyMTsxMTBGIDExNzAgMTFCMDtEMDIxOzExMEYgMTE3MCAxMUIwOworRDAyMjtEMDIyOzExMEYgMTE3MCAxMUIxO0QwMjI7MTEwRiAxMTcwIDExQjE7CitEMDIzO0QwMjM7MTEwRiAxMTcwIDExQjI7RDAyMzsxMTBGIDExNzAgMTFCMjsKK0QwMjQ7RDAyNDsxMTBGIDExNzAgMTFCMztEMDI0OzExMEYgMTE3MCAxMUIzOworRDAyNTtEMDI1OzExMEYgMTE3MCAxMUI0O0QwMjU7MTEwRiAxMTcwIDExQjQ7CitEMDI2O0QwMjY7MTEwRiAxMTcwIDExQjU7RDAyNjsxMTBGIDExNzAgMTFCNTsKK0QwMjc7RDAyNzsxMTBGIDExNzAgMTFCNjtEMDI3OzExMEYgMTE3MCAxMUI2OworRDAyODtEMDI4OzExMEYgMTE3MCAxMUI3O0QwMjg7MTEwRiAxMTcwIDExQjc7CitEMDI5O0QwMjk7MTEwRiAxMTcwIDExQjg7RDAyOTsxMTBGIDExNzAgMTFCODsKK0QwMkE7RDAyQTsxMTBGIDExNzAgMTFCOTtEMDJBOzExMEYgMTE3MCAxMUI5OworRDAyQjtEMDJCOzExMEYgMTE3MCAxMUJBO0QwMkI7MTEwRiAxMTcwIDExQkE7CitEMDJDO0QwMkM7MTEwRiAxMTcwIDExQkI7RDAyQzsxMTBGIDExNzAgMTFCQjsKK0QwMkQ7RDAyRDsxMTBGIDExNzAgMTFCQztEMDJEOzExMEYgMTE3MCAxMUJDOworRDAyRTtEMDJFOzExMEYgMTE3MCAxMUJEO0QwMkU7MTEwRiAxMTcwIDExQkQ7CitEMDJGO0QwMkY7MTEwRiAxMTcwIDExQkU7RDAyRjsxMTBGIDExNzAgMTFCRTsKK0QwMzA7RDAzMDsxMTBGIDExNzAgMTFCRjtEMDMwOzExMEYgMTE3MCAxMUJGOworRDAzMTtEMDMxOzExMEYgMTE3MCAxMUMwO0QwMzE7MTEwRiAxMTcwIDExQzA7CitEMDMyO0QwMzI7MTEwRiAxMTcwIDExQzE7RDAzMjsxMTBGIDExNzAgMTFDMTsKK0QwMzM7RDAzMzsxMTBGIDExNzAgMTFDMjtEMDMzOzExMEYgMTE3MCAxMUMyOworRDAzNDtEMDM0OzExMEYgMTE3MTtEMDM0OzExMEYgMTE3MTsKK0QwMzU7RDAzNTsxMTBGIDExNzEgMTFBODtEMDM1OzExMEYgMTE3MSAxMUE4OworRDAzNjtEMDM2OzExMEYgMTE3MSAxMUE5O0QwMzY7MTEwRiAxMTcxIDExQTk7CitEMDM3O0QwMzc7MTEwRiAxMTcxIDExQUE7RDAzNzsxMTBGIDExNzEgMTFBQTsKK0QwMzg7RDAzODsxMTBGIDExNzEgMTFBQjtEMDM4OzExMEYgMTE3MSAxMUFCOworRDAzOTtEMDM5OzExMEYgMTE3MSAxMUFDO0QwMzk7MTEwRiAxMTcxIDExQUM7CitEMDNBO0QwM0E7MTEwRiAxMTcxIDExQUQ7RDAzQTsxMTBGIDExNzEgMTFBRDsKK0QwM0I7RDAzQjsxMTBGIDExNzEgMTFBRTtEMDNCOzExMEYgMTE3MSAxMUFFOworRDAzQztEMDNDOzExMEYgMTE3MSAxMUFGO0QwM0M7MTEwRiAxMTcxIDExQUY7CitEMDNEO0QwM0Q7MTEwRiAxMTcxIDExQjA7RDAzRDsxMTBGIDExNzEgMTFCMDsKK0QwM0U7RDAzRTsxMTBGIDExNzEgMTFCMTtEMDNFOzExMEYgMTE3MSAxMUIxOworRDAzRjtEMDNGOzExMEYgMTE3MSAxMUIyO0QwM0Y7MTEwRiAxMTcxIDExQjI7CitEMDQwO0QwNDA7MTEwRiAxMTcxIDExQjM7RDA0MDsxMTBGIDExNzEgMTFCMzsKK0QwNDE7RDA0MTsxMTBGIDExNzEgMTFCNDtEMDQxOzExMEYgMTE3MSAxMUI0OworRDA0MjtEMDQyOzExMEYgMTE3MSAxMUI1O0QwNDI7MTEwRiAxMTcxIDExQjU7CitEMDQzO0QwNDM7MTEwRiAxMTcxIDExQjY7RDA0MzsxMTBGIDExNzEgMTFCNjsKK0QwNDQ7RDA0NDsxMTBGIDExNzEgMTFCNztEMDQ0OzExMEYgMTE3MSAxMUI3OworRDA0NTtEMDQ1OzExMEYgMTE3MSAxMUI4O0QwNDU7MTEwRiAxMTcxIDExQjg7CitEMDQ2O0QwNDY7MTEwRiAxMTcxIDExQjk7RDA0NjsxMTBGIDExNzEgMTFCOTsKK0QwNDc7RDA0NzsxMTBGIDExNzEgMTFCQTtEMDQ3OzExMEYgMTE3MSAxMUJBOworRDA0ODtEMDQ4OzExMEYgMTE3MSAxMUJCO0QwNDg7MTEwRiAxMTcxIDExQkI7CitEMDQ5O0QwNDk7MTEwRiAxMTcxIDExQkM7RDA0OTsxMTBGIDExNzEgMTFCQzsKK0QwNEE7RDA0QTsxMTBGIDExNzEgMTFCRDtEMDRBOzExMEYgMTE3MSAxMUJEOworRDA0QjtEMDRCOzExMEYgMTE3MSAxMUJFO0QwNEI7MTEwRiAxMTcxIDExQkU7CitEMDRDO0QwNEM7MTEwRiAxMTcxIDExQkY7RDA0QzsxMTBGIDExNzEgMTFCRjsKK0QwNEQ7RDA0RDsxMTBGIDExNzEgMTFDMDtEMDREOzExMEYgMTE3MSAxMUMwOworRDA0RTtEMDRFOzExMEYgMTE3MSAxMUMxO0QwNEU7MTEwRiAxMTcxIDExQzE7CitEMDRGO0QwNEY7MTEwRiAxMTcxIDExQzI7RDA0RjsxMTBGIDExNzEgMTFDMjsKK0QwNTA7RDA1MDsxMTBGIDExNzI7RDA1MDsxMTBGIDExNzI7CitEMDUxO0QwNTE7MTEwRiAxMTcyIDExQTg7RDA1MTsxMTBGIDExNzIgMTFBODsKK0QwNTI7RDA1MjsxMTBGIDExNzIgMTFBOTtEMDUyOzExMEYgMTE3MiAxMUE5OworRDA1MztEMDUzOzExMEYgMTE3MiAxMUFBO0QwNTM7MTEwRiAxMTcyIDExQUE7CitEMDU0O0QwNTQ7MTEwRiAxMTcyIDExQUI7RDA1NDsxMTBGIDExNzIgMTFBQjsKK0QwNTU7RDA1NTsxMTBGIDExNzIgMTFBQztEMDU1OzExMEYgMTE3MiAxMUFDOworRDA1NjtEMDU2OzExMEYgMTE3MiAxMUFEO0QwNTY7MTEwRiAxMTcyIDExQUQ7CitEMDU3O0QwNTc7MTEwRiAxMTcyIDExQUU7RDA1NzsxMTBGIDExNzIgMTFBRTsKK0QwNTg7RDA1ODsxMTBGIDExNzIgMTFBRjtEMDU4OzExMEYgMTE3MiAxMUFGOworRDA1OTtEMDU5OzExMEYgMTE3MiAxMUIwO0QwNTk7MTEwRiAxMTcyIDExQjA7CitEMDVBO0QwNUE7MTEwRiAxMTcyIDExQjE7RDA1QTsxMTBGIDExNzIgMTFCMTsKK0QwNUI7RDA1QjsxMTBGIDExNzIgMTFCMjtEMDVCOzExMEYgMTE3MiAxMUIyOworRDA1QztEMDVDOzExMEYgMTE3MiAxMUIzO0QwNUM7MTEwRiAxMTcyIDExQjM7CitEMDVEO0QwNUQ7MTEwRiAxMTcyIDExQjQ7RDA1RDsxMTBGIDExNzIgMTFCNDsKK0QwNUU7RDA1RTsxMTBGIDExNzIgMTFCNTtEMDVFOzExMEYgMTE3MiAxMUI1OworRDA1RjtEMDVGOzExMEYgMTE3MiAxMUI2O0QwNUY7MTEwRiAxMTcyIDExQjY7CitEMDYwO0QwNjA7MTEwRiAxMTcyIDExQjc7RDA2MDsxMTBGIDExNzIgMTFCNzsKK0QwNjE7RDA2MTsxMTBGIDExNzIgMTFCODtEMDYxOzExMEYgMTE3MiAxMUI4OworRDA2MjtEMDYyOzExMEYgMTE3MiAxMUI5O0QwNjI7MTEwRiAxMTcyIDExQjk7CitEMDYzO0QwNjM7MTEwRiAxMTcyIDExQkE7RDA2MzsxMTBGIDExNzIgMTFCQTsKK0QwNjQ7RDA2NDsxMTBGIDExNzIgMTFCQjtEMDY0OzExMEYgMTE3MiAxMUJCOworRDA2NTtEMDY1OzExMEYgMTE3MiAxMUJDO0QwNjU7MTEwRiAxMTcyIDExQkM7CitEMDY2O0QwNjY7MTEwRiAxMTcyIDExQkQ7RDA2NjsxMTBGIDExNzIgMTFCRDsKK0QwNjc7RDA2NzsxMTBGIDExNzIgMTFCRTtEMDY3OzExMEYgMTE3MiAxMUJFOworRDA2ODtEMDY4OzExMEYgMTE3MiAxMUJGO0QwNjg7MTEwRiAxMTcyIDExQkY7CitEMDY5O0QwNjk7MTEwRiAxMTcyIDExQzA7RDA2OTsxMTBGIDExNzIgMTFDMDsKK0QwNkE7RDA2QTsxMTBGIDExNzIgMTFDMTtEMDZBOzExMEYgMTE3MiAxMUMxOworRDA2QjtEMDZCOzExMEYgMTE3MiAxMUMyO0QwNkI7MTEwRiAxMTcyIDExQzI7CitEMDZDO0QwNkM7MTEwRiAxMTczO0QwNkM7MTEwRiAxMTczOworRDA2RDtEMDZEOzExMEYgMTE3MyAxMUE4O0QwNkQ7MTEwRiAxMTczIDExQTg7CitEMDZFO0QwNkU7MTEwRiAxMTczIDExQTk7RDA2RTsxMTBGIDExNzMgMTFBOTsKK0QwNkY7RDA2RjsxMTBGIDExNzMgMTFBQTtEMDZGOzExMEYgMTE3MyAxMUFBOworRDA3MDtEMDcwOzExMEYgMTE3MyAxMUFCO0QwNzA7MTEwRiAxMTczIDExQUI7CitEMDcxO0QwNzE7MTEwRiAxMTczIDExQUM7RDA3MTsxMTBGIDExNzMgMTFBQzsKK0QwNzI7RDA3MjsxMTBGIDExNzMgMTFBRDtEMDcyOzExMEYgMTE3MyAxMUFEOworRDA3MztEMDczOzExMEYgMTE3MyAxMUFFO0QwNzM7MTEwRiAxMTczIDExQUU7CitEMDc0O0QwNzQ7MTEwRiAxMTczIDExQUY7RDA3NDsxMTBGIDExNzMgMTFBRjsKK0QwNzU7RDA3NTsxMTBGIDExNzMgMTFCMDtEMDc1OzExMEYgMTE3MyAxMUIwOworRDA3NjtEMDc2OzExMEYgMTE3MyAxMUIxO0QwNzY7MTEwRiAxMTczIDExQjE7CitEMDc3O0QwNzc7MTEwRiAxMTczIDExQjI7RDA3NzsxMTBGIDExNzMgMTFCMjsKK0QwNzg7RDA3ODsxMTBGIDExNzMgMTFCMztEMDc4OzExMEYgMTE3MyAxMUIzOworRDA3OTtEMDc5OzExMEYgMTE3MyAxMUI0O0QwNzk7MTEwRiAxMTczIDExQjQ7CitEMDdBO0QwN0E7MTEwRiAxMTczIDExQjU7RDA3QTsxMTBGIDExNzMgMTFCNTsKK0QwN0I7RDA3QjsxMTBGIDExNzMgMTFCNjtEMDdCOzExMEYgMTE3MyAxMUI2OworRDA3QztEMDdDOzExMEYgMTE3MyAxMUI3O0QwN0M7MTEwRiAxMTczIDExQjc7CitEMDdEO0QwN0Q7MTEwRiAxMTczIDExQjg7RDA3RDsxMTBGIDExNzMgMTFCODsKK0QwN0U7RDA3RTsxMTBGIDExNzMgMTFCOTtEMDdFOzExMEYgMTE3MyAxMUI5OworRDA3RjtEMDdGOzExMEYgMTE3MyAxMUJBO0QwN0Y7MTEwRiAxMTczIDExQkE7CitEMDgwO0QwODA7MTEwRiAxMTczIDExQkI7RDA4MDsxMTBGIDExNzMgMTFCQjsKK0QwODE7RDA4MTsxMTBGIDExNzMgMTFCQztEMDgxOzExMEYgMTE3MyAxMUJDOworRDA4MjtEMDgyOzExMEYgMTE3MyAxMUJEO0QwODI7MTEwRiAxMTczIDExQkQ7CitEMDgzO0QwODM7MTEwRiAxMTczIDExQkU7RDA4MzsxMTBGIDExNzMgMTFCRTsKK0QwODQ7RDA4NDsxMTBGIDExNzMgMTFCRjtEMDg0OzExMEYgMTE3MyAxMUJGOworRDA4NTtEMDg1OzExMEYgMTE3MyAxMUMwO0QwODU7MTEwRiAxMTczIDExQzA7CitEMDg2O0QwODY7MTEwRiAxMTczIDExQzE7RDA4NjsxMTBGIDExNzMgMTFDMTsKK0QwODc7RDA4NzsxMTBGIDExNzMgMTFDMjtEMDg3OzExMEYgMTE3MyAxMUMyOworRDA4ODtEMDg4OzExMEYgMTE3NDtEMDg4OzExMEYgMTE3NDsKK0QwODk7RDA4OTsxMTBGIDExNzQgMTFBODtEMDg5OzExMEYgMTE3NCAxMUE4OworRDA4QTtEMDhBOzExMEYgMTE3NCAxMUE5O0QwOEE7MTEwRiAxMTc0IDExQTk7CitEMDhCO0QwOEI7MTEwRiAxMTc0IDExQUE7RDA4QjsxMTBGIDExNzQgMTFBQTsKK0QwOEM7RDA4QzsxMTBGIDExNzQgMTFBQjtEMDhDOzExMEYgMTE3NCAxMUFCOworRDA4RDtEMDhEOzExMEYgMTE3NCAxMUFDO0QwOEQ7MTEwRiAxMTc0IDExQUM7CitEMDhFO0QwOEU7MTEwRiAxMTc0IDExQUQ7RDA4RTsxMTBGIDExNzQgMTFBRDsKK0QwOEY7RDA4RjsxMTBGIDExNzQgMTFBRTtEMDhGOzExMEYgMTE3NCAxMUFFOworRDA5MDtEMDkwOzExMEYgMTE3NCAxMUFGO0QwOTA7MTEwRiAxMTc0IDExQUY7CitEMDkxO0QwOTE7MTEwRiAxMTc0IDExQjA7RDA5MTsxMTBGIDExNzQgMTFCMDsKK0QwOTI7RDA5MjsxMTBGIDExNzQgMTFCMTtEMDkyOzExMEYgMTE3NCAxMUIxOworRDA5MztEMDkzOzExMEYgMTE3NCAxMUIyO0QwOTM7MTEwRiAxMTc0IDExQjI7CitEMDk0O0QwOTQ7MTEwRiAxMTc0IDExQjM7RDA5NDsxMTBGIDExNzQgMTFCMzsKK0QwOTU7RDA5NTsxMTBGIDExNzQgMTFCNDtEMDk1OzExMEYgMTE3NCAxMUI0OworRDA5NjtEMDk2OzExMEYgMTE3NCAxMUI1O0QwOTY7MTEwRiAxMTc0IDExQjU7CitEMDk3O0QwOTc7MTEwRiAxMTc0IDExQjY7RDA5NzsxMTBGIDExNzQgMTFCNjsKK0QwOTg7RDA5ODsxMTBGIDExNzQgMTFCNztEMDk4OzExMEYgMTE3NCAxMUI3OworRDA5OTtEMDk5OzExMEYgMTE3NCAxMUI4O0QwOTk7MTEwRiAxMTc0IDExQjg7CitEMDlBO0QwOUE7MTEwRiAxMTc0IDExQjk7RDA5QTsxMTBGIDExNzQgMTFCOTsKK0QwOUI7RDA5QjsxMTBGIDExNzQgMTFCQTtEMDlCOzExMEYgMTE3NCAxMUJBOworRDA5QztEMDlDOzExMEYgMTE3NCAxMUJCO0QwOUM7MTEwRiAxMTc0IDExQkI7CitEMDlEO0QwOUQ7MTEwRiAxMTc0IDExQkM7RDA5RDsxMTBGIDExNzQgMTFCQzsKK0QwOUU7RDA5RTsxMTBGIDExNzQgMTFCRDtEMDlFOzExMEYgMTE3NCAxMUJEOworRDA5RjtEMDlGOzExMEYgMTE3NCAxMUJFO0QwOUY7MTEwRiAxMTc0IDExQkU7CitEMEEwO0QwQTA7MTEwRiAxMTc0IDExQkY7RDBBMDsxMTBGIDExNzQgMTFCRjsKK0QwQTE7RDBBMTsxMTBGIDExNzQgMTFDMDtEMEExOzExMEYgMTE3NCAxMUMwOworRDBBMjtEMEEyOzExMEYgMTE3NCAxMUMxO0QwQTI7MTEwRiAxMTc0IDExQzE7CitEMEEzO0QwQTM7MTEwRiAxMTc0IDExQzI7RDBBMzsxMTBGIDExNzQgMTFDMjsKK0QwQTQ7RDBBNDsxMTBGIDExNzU7RDBBNDsxMTBGIDExNzU7CitEMEE1O0QwQTU7MTEwRiAxMTc1IDExQTg7RDBBNTsxMTBGIDExNzUgMTFBODsKK0QwQTY7RDBBNjsxMTBGIDExNzUgMTFBOTtEMEE2OzExMEYgMTE3NSAxMUE5OworRDBBNztEMEE3OzExMEYgMTE3NSAxMUFBO0QwQTc7MTEwRiAxMTc1IDExQUE7CitEMEE4O0QwQTg7MTEwRiAxMTc1IDExQUI7RDBBODsxMTBGIDExNzUgMTFBQjsKK0QwQTk7RDBBOTsxMTBGIDExNzUgMTFBQztEMEE5OzExMEYgMTE3NSAxMUFDOworRDBBQTtEMEFBOzExMEYgMTE3NSAxMUFEO0QwQUE7MTEwRiAxMTc1IDExQUQ7CitEMEFCO0QwQUI7MTEwRiAxMTc1IDExQUU7RDBBQjsxMTBGIDExNzUgMTFBRTsKK0QwQUM7RDBBQzsxMTBGIDExNzUgMTFBRjtEMEFDOzExMEYgMTE3NSAxMUFGOworRDBBRDtEMEFEOzExMEYgMTE3NSAxMUIwO0QwQUQ7MTEwRiAxMTc1IDExQjA7CitEMEFFO0QwQUU7MTEwRiAxMTc1IDExQjE7RDBBRTsxMTBGIDExNzUgMTFCMTsKK0QwQUY7RDBBRjsxMTBGIDExNzUgMTFCMjtEMEFGOzExMEYgMTE3NSAxMUIyOworRDBCMDtEMEIwOzExMEYgMTE3NSAxMUIzO0QwQjA7MTEwRiAxMTc1IDExQjM7CitEMEIxO0QwQjE7MTEwRiAxMTc1IDExQjQ7RDBCMTsxMTBGIDExNzUgMTFCNDsKK0QwQjI7RDBCMjsxMTBGIDExNzUgMTFCNTtEMEIyOzExMEYgMTE3NSAxMUI1OworRDBCMztEMEIzOzExMEYgMTE3NSAxMUI2O0QwQjM7MTEwRiAxMTc1IDExQjY7CitEMEI0O0QwQjQ7MTEwRiAxMTc1IDExQjc7RDBCNDsxMTBGIDExNzUgMTFCNzsKK0QwQjU7RDBCNTsxMTBGIDExNzUgMTFCODtEMEI1OzExMEYgMTE3NSAxMUI4OworRDBCNjtEMEI2OzExMEYgMTE3NSAxMUI5O0QwQjY7MTEwRiAxMTc1IDExQjk7CitEMEI3O0QwQjc7MTEwRiAxMTc1IDExQkE7RDBCNzsxMTBGIDExNzUgMTFCQTsKK0QwQjg7RDBCODsxMTBGIDExNzUgMTFCQjtEMEI4OzExMEYgMTE3NSAxMUJCOworRDBCOTtEMEI5OzExMEYgMTE3NSAxMUJDO0QwQjk7MTEwRiAxMTc1IDExQkM7CitEMEJBO0QwQkE7MTEwRiAxMTc1IDExQkQ7RDBCQTsxMTBGIDExNzUgMTFCRDsKK0QwQkI7RDBCQjsxMTBGIDExNzUgMTFCRTtEMEJCOzExMEYgMTE3NSAxMUJFOworRDBCQztEMEJDOzExMEYgMTE3NSAxMUJGO0QwQkM7MTEwRiAxMTc1IDExQkY7CitEMEJEO0QwQkQ7MTEwRiAxMTc1IDExQzA7RDBCRDsxMTBGIDExNzUgMTFDMDsKK0QwQkU7RDBCRTsxMTBGIDExNzUgMTFDMTtEMEJFOzExMEYgMTE3NSAxMUMxOworRDBCRjtEMEJGOzExMEYgMTE3NSAxMUMyO0QwQkY7MTEwRiAxMTc1IDExQzI7CitEMEMwO0QwQzA7MTExMCAxMTYxO0QwQzA7MTExMCAxMTYxOworRDBDMTtEMEMxOzExMTAgMTE2MSAxMUE4O0QwQzE7MTExMCAxMTYxIDExQTg7CitEMEMyO0QwQzI7MTExMCAxMTYxIDExQTk7RDBDMjsxMTEwIDExNjEgMTFBOTsKK0QwQzM7RDBDMzsxMTEwIDExNjEgMTFBQTtEMEMzOzExMTAgMTE2MSAxMUFBOworRDBDNDtEMEM0OzExMTAgMTE2MSAxMUFCO0QwQzQ7MTExMCAxMTYxIDExQUI7CitEMEM1O0QwQzU7MTExMCAxMTYxIDExQUM7RDBDNTsxMTEwIDExNjEgMTFBQzsKK0QwQzY7RDBDNjsxMTEwIDExNjEgMTFBRDtEMEM2OzExMTAgMTE2MSAxMUFEOworRDBDNztEMEM3OzExMTAgMTE2MSAxMUFFO0QwQzc7MTExMCAxMTYxIDExQUU7CitEMEM4O0QwQzg7MTExMCAxMTYxIDExQUY7RDBDODsxMTEwIDExNjEgMTFBRjsKK0QwQzk7RDBDOTsxMTEwIDExNjEgMTFCMDtEMEM5OzExMTAgMTE2MSAxMUIwOworRDBDQTtEMENBOzExMTAgMTE2MSAxMUIxO0QwQ0E7MTExMCAxMTYxIDExQjE7CitEMENCO0QwQ0I7MTExMCAxMTYxIDExQjI7RDBDQjsxMTEwIDExNjEgMTFCMjsKK0QwQ0M7RDBDQzsxMTEwIDExNjEgMTFCMztEMENDOzExMTAgMTE2MSAxMUIzOworRDBDRDtEMENEOzExMTAgMTE2MSAxMUI0O0QwQ0Q7MTExMCAxMTYxIDExQjQ7CitEMENFO0QwQ0U7MTExMCAxMTYxIDExQjU7RDBDRTsxMTEwIDExNjEgMTFCNTsKK0QwQ0Y7RDBDRjsxMTEwIDExNjEgMTFCNjtEMENGOzExMTAgMTE2MSAxMUI2OworRDBEMDtEMEQwOzExMTAgMTE2MSAxMUI3O0QwRDA7MTExMCAxMTYxIDExQjc7CitEMEQxO0QwRDE7MTExMCAxMTYxIDExQjg7RDBEMTsxMTEwIDExNjEgMTFCODsKK0QwRDI7RDBEMjsxMTEwIDExNjEgMTFCOTtEMEQyOzExMTAgMTE2MSAxMUI5OworRDBEMztEMEQzOzExMTAgMTE2MSAxMUJBO0QwRDM7MTExMCAxMTYxIDExQkE7CitEMEQ0O0QwRDQ7MTExMCAxMTYxIDExQkI7RDBENDsxMTEwIDExNjEgMTFCQjsKK0QwRDU7RDBENTsxMTEwIDExNjEgMTFCQztEMEQ1OzExMTAgMTE2MSAxMUJDOworRDBENjtEMEQ2OzExMTAgMTE2MSAxMUJEO0QwRDY7MTExMCAxMTYxIDExQkQ7CitEMEQ3O0QwRDc7MTExMCAxMTYxIDExQkU7RDBENzsxMTEwIDExNjEgMTFCRTsKK0QwRDg7RDBEODsxMTEwIDExNjEgMTFCRjtEMEQ4OzExMTAgMTE2MSAxMUJGOworRDBEOTtEMEQ5OzExMTAgMTE2MSAxMUMwO0QwRDk7MTExMCAxMTYxIDExQzA7CitEMERBO0QwREE7MTExMCAxMTYxIDExQzE7RDBEQTsxMTEwIDExNjEgMTFDMTsKK0QwREI7RDBEQjsxMTEwIDExNjEgMTFDMjtEMERCOzExMTAgMTE2MSAxMUMyOworRDBEQztEMERDOzExMTAgMTE2MjtEMERDOzExMTAgMTE2MjsKK0QwREQ7RDBERDsxMTEwIDExNjIgMTFBODtEMEREOzExMTAgMTE2MiAxMUE4OworRDBERTtEMERFOzExMTAgMTE2MiAxMUE5O0QwREU7MTExMCAxMTYyIDExQTk7CitEMERGO0QwREY7MTExMCAxMTYyIDExQUE7RDBERjsxMTEwIDExNjIgMTFBQTsKK0QwRTA7RDBFMDsxMTEwIDExNjIgMTFBQjtEMEUwOzExMTAgMTE2MiAxMUFCOworRDBFMTtEMEUxOzExMTAgMTE2MiAxMUFDO0QwRTE7MTExMCAxMTYyIDExQUM7CitEMEUyO0QwRTI7MTExMCAxMTYyIDExQUQ7RDBFMjsxMTEwIDExNjIgMTFBRDsKK0QwRTM7RDBFMzsxMTEwIDExNjIgMTFBRTtEMEUzOzExMTAgMTE2MiAxMUFFOworRDBFNDtEMEU0OzExMTAgMTE2MiAxMUFGO0QwRTQ7MTExMCAxMTYyIDExQUY7CitEMEU1O0QwRTU7MTExMCAxMTYyIDExQjA7RDBFNTsxMTEwIDExNjIgMTFCMDsKK0QwRTY7RDBFNjsxMTEwIDExNjIgMTFCMTtEMEU2OzExMTAgMTE2MiAxMUIxOworRDBFNztEMEU3OzExMTAgMTE2MiAxMUIyO0QwRTc7MTExMCAxMTYyIDExQjI7CitEMEU4O0QwRTg7MTExMCAxMTYyIDExQjM7RDBFODsxMTEwIDExNjIgMTFCMzsKK0QwRTk7RDBFOTsxMTEwIDExNjIgMTFCNDtEMEU5OzExMTAgMTE2MiAxMUI0OworRDBFQTtEMEVBOzExMTAgMTE2MiAxMUI1O0QwRUE7MTExMCAxMTYyIDExQjU7CitEMEVCO0QwRUI7MTExMCAxMTYyIDExQjY7RDBFQjsxMTEwIDExNjIgMTFCNjsKK0QwRUM7RDBFQzsxMTEwIDExNjIgMTFCNztEMEVDOzExMTAgMTE2MiAxMUI3OworRDBFRDtEMEVEOzExMTAgMTE2MiAxMUI4O0QwRUQ7MTExMCAxMTYyIDExQjg7CitEMEVFO0QwRUU7MTExMCAxMTYyIDExQjk7RDBFRTsxMTEwIDExNjIgMTFCOTsKK0QwRUY7RDBFRjsxMTEwIDExNjIgMTFCQTtEMEVGOzExMTAgMTE2MiAxMUJBOworRDBGMDtEMEYwOzExMTAgMTE2MiAxMUJCO0QwRjA7MTExMCAxMTYyIDExQkI7CitEMEYxO0QwRjE7MTExMCAxMTYyIDExQkM7RDBGMTsxMTEwIDExNjIgMTFCQzsKK0QwRjI7RDBGMjsxMTEwIDExNjIgMTFCRDtEMEYyOzExMTAgMTE2MiAxMUJEOworRDBGMztEMEYzOzExMTAgMTE2MiAxMUJFO0QwRjM7MTExMCAxMTYyIDExQkU7CitEMEY0O0QwRjQ7MTExMCAxMTYyIDExQkY7RDBGNDsxMTEwIDExNjIgMTFCRjsKK0QwRjU7RDBGNTsxMTEwIDExNjIgMTFDMDtEMEY1OzExMTAgMTE2MiAxMUMwOworRDBGNjtEMEY2OzExMTAgMTE2MiAxMUMxO0QwRjY7MTExMCAxMTYyIDExQzE7CitEMEY3O0QwRjc7MTExMCAxMTYyIDExQzI7RDBGNzsxMTEwIDExNjIgMTFDMjsKK0QwRjg7RDBGODsxMTEwIDExNjM7RDBGODsxMTEwIDExNjM7CitEMEY5O0QwRjk7MTExMCAxMTYzIDExQTg7RDBGOTsxMTEwIDExNjMgMTFBODsKK0QwRkE7RDBGQTsxMTEwIDExNjMgMTFBOTtEMEZBOzExMTAgMTE2MyAxMUE5OworRDBGQjtEMEZCOzExMTAgMTE2MyAxMUFBO0QwRkI7MTExMCAxMTYzIDExQUE7CitEMEZDO0QwRkM7MTExMCAxMTYzIDExQUI7RDBGQzsxMTEwIDExNjMgMTFBQjsKK0QwRkQ7RDBGRDsxMTEwIDExNjMgMTFBQztEMEZEOzExMTAgMTE2MyAxMUFDOworRDBGRTtEMEZFOzExMTAgMTE2MyAxMUFEO0QwRkU7MTExMCAxMTYzIDExQUQ7CitEMEZGO0QwRkY7MTExMCAxMTYzIDExQUU7RDBGRjsxMTEwIDExNjMgMTFBRTsKK0QxMDA7RDEwMDsxMTEwIDExNjMgMTFBRjtEMTAwOzExMTAgMTE2MyAxMUFGOworRDEwMTtEMTAxOzExMTAgMTE2MyAxMUIwO0QxMDE7MTExMCAxMTYzIDExQjA7CitEMTAyO0QxMDI7MTExMCAxMTYzIDExQjE7RDEwMjsxMTEwIDExNjMgMTFCMTsKK0QxMDM7RDEwMzsxMTEwIDExNjMgMTFCMjtEMTAzOzExMTAgMTE2MyAxMUIyOworRDEwNDtEMTA0OzExMTAgMTE2MyAxMUIzO0QxMDQ7MTExMCAxMTYzIDExQjM7CitEMTA1O0QxMDU7MTExMCAxMTYzIDExQjQ7RDEwNTsxMTEwIDExNjMgMTFCNDsKK0QxMDY7RDEwNjsxMTEwIDExNjMgMTFCNTtEMTA2OzExMTAgMTE2MyAxMUI1OworRDEwNztEMTA3OzExMTAgMTE2MyAxMUI2O0QxMDc7MTExMCAxMTYzIDExQjY7CitEMTA4O0QxMDg7MTExMCAxMTYzIDExQjc7RDEwODsxMTEwIDExNjMgMTFCNzsKK0QxMDk7RDEwOTsxMTEwIDExNjMgMTFCODtEMTA5OzExMTAgMTE2MyAxMUI4OworRDEwQTtEMTBBOzExMTAgMTE2MyAxMUI5O0QxMEE7MTExMCAxMTYzIDExQjk7CitEMTBCO0QxMEI7MTExMCAxMTYzIDExQkE7RDEwQjsxMTEwIDExNjMgMTFCQTsKK0QxMEM7RDEwQzsxMTEwIDExNjMgMTFCQjtEMTBDOzExMTAgMTE2MyAxMUJCOworRDEwRDtEMTBEOzExMTAgMTE2MyAxMUJDO0QxMEQ7MTExMCAxMTYzIDExQkM7CitEMTBFO0QxMEU7MTExMCAxMTYzIDExQkQ7RDEwRTsxMTEwIDExNjMgMTFCRDsKK0QxMEY7RDEwRjsxMTEwIDExNjMgMTFCRTtEMTBGOzExMTAgMTE2MyAxMUJFOworRDExMDtEMTEwOzExMTAgMTE2MyAxMUJGO0QxMTA7MTExMCAxMTYzIDExQkY7CitEMTExO0QxMTE7MTExMCAxMTYzIDExQzA7RDExMTsxMTEwIDExNjMgMTFDMDsKK0QxMTI7RDExMjsxMTEwIDExNjMgMTFDMTtEMTEyOzExMTAgMTE2MyAxMUMxOworRDExMztEMTEzOzExMTAgMTE2MyAxMUMyO0QxMTM7MTExMCAxMTYzIDExQzI7CitEMTE0O0QxMTQ7MTExMCAxMTY0O0QxMTQ7MTExMCAxMTY0OworRDExNTtEMTE1OzExMTAgMTE2NCAxMUE4O0QxMTU7MTExMCAxMTY0IDExQTg7CitEMTE2O0QxMTY7MTExMCAxMTY0IDExQTk7RDExNjsxMTEwIDExNjQgMTFBOTsKK0QxMTc7RDExNzsxMTEwIDExNjQgMTFBQTtEMTE3OzExMTAgMTE2NCAxMUFBOworRDExODtEMTE4OzExMTAgMTE2NCAxMUFCO0QxMTg7MTExMCAxMTY0IDExQUI7CitEMTE5O0QxMTk7MTExMCAxMTY0IDExQUM7RDExOTsxMTEwIDExNjQgMTFBQzsKK0QxMUE7RDExQTsxMTEwIDExNjQgMTFBRDtEMTFBOzExMTAgMTE2NCAxMUFEOworRDExQjtEMTFCOzExMTAgMTE2NCAxMUFFO0QxMUI7MTExMCAxMTY0IDExQUU7CitEMTFDO0QxMUM7MTExMCAxMTY0IDExQUY7RDExQzsxMTEwIDExNjQgMTFBRjsKK0QxMUQ7RDExRDsxMTEwIDExNjQgMTFCMDtEMTFEOzExMTAgMTE2NCAxMUIwOworRDExRTtEMTFFOzExMTAgMTE2NCAxMUIxO0QxMUU7MTExMCAxMTY0IDExQjE7CitEMTFGO0QxMUY7MTExMCAxMTY0IDExQjI7RDExRjsxMTEwIDExNjQgMTFCMjsKK0QxMjA7RDEyMDsxMTEwIDExNjQgMTFCMztEMTIwOzExMTAgMTE2NCAxMUIzOworRDEyMTtEMTIxOzExMTAgMTE2NCAxMUI0O0QxMjE7MTExMCAxMTY0IDExQjQ7CitEMTIyO0QxMjI7MTExMCAxMTY0IDExQjU7RDEyMjsxMTEwIDExNjQgMTFCNTsKK0QxMjM7RDEyMzsxMTEwIDExNjQgMTFCNjtEMTIzOzExMTAgMTE2NCAxMUI2OworRDEyNDtEMTI0OzExMTAgMTE2NCAxMUI3O0QxMjQ7MTExMCAxMTY0IDExQjc7CitEMTI1O0QxMjU7MTExMCAxMTY0IDExQjg7RDEyNTsxMTEwIDExNjQgMTFCODsKK0QxMjY7RDEyNjsxMTEwIDExNjQgMTFCOTtEMTI2OzExMTAgMTE2NCAxMUI5OworRDEyNztEMTI3OzExMTAgMTE2NCAxMUJBO0QxMjc7MTExMCAxMTY0IDExQkE7CitEMTI4O0QxMjg7MTExMCAxMTY0IDExQkI7RDEyODsxMTEwIDExNjQgMTFCQjsKK0QxMjk7RDEyOTsxMTEwIDExNjQgMTFCQztEMTI5OzExMTAgMTE2NCAxMUJDOworRDEyQTtEMTJBOzExMTAgMTE2NCAxMUJEO0QxMkE7MTExMCAxMTY0IDExQkQ7CitEMTJCO0QxMkI7MTExMCAxMTY0IDExQkU7RDEyQjsxMTEwIDExNjQgMTFCRTsKK0QxMkM7RDEyQzsxMTEwIDExNjQgMTFCRjtEMTJDOzExMTAgMTE2NCAxMUJGOworRDEyRDtEMTJEOzExMTAgMTE2NCAxMUMwO0QxMkQ7MTExMCAxMTY0IDExQzA7CitEMTJFO0QxMkU7MTExMCAxMTY0IDExQzE7RDEyRTsxMTEwIDExNjQgMTFDMTsKK0QxMkY7RDEyRjsxMTEwIDExNjQgMTFDMjtEMTJGOzExMTAgMTE2NCAxMUMyOworRDEzMDtEMTMwOzExMTAgMTE2NTtEMTMwOzExMTAgMTE2NTsKK0QxMzE7RDEzMTsxMTEwIDExNjUgMTFBODtEMTMxOzExMTAgMTE2NSAxMUE4OworRDEzMjtEMTMyOzExMTAgMTE2NSAxMUE5O0QxMzI7MTExMCAxMTY1IDExQTk7CitEMTMzO0QxMzM7MTExMCAxMTY1IDExQUE7RDEzMzsxMTEwIDExNjUgMTFBQTsKK0QxMzQ7RDEzNDsxMTEwIDExNjUgMTFBQjtEMTM0OzExMTAgMTE2NSAxMUFCOworRDEzNTtEMTM1OzExMTAgMTE2NSAxMUFDO0QxMzU7MTExMCAxMTY1IDExQUM7CitEMTM2O0QxMzY7MTExMCAxMTY1IDExQUQ7RDEzNjsxMTEwIDExNjUgMTFBRDsKK0QxMzc7RDEzNzsxMTEwIDExNjUgMTFBRTtEMTM3OzExMTAgMTE2NSAxMUFFOworRDEzODtEMTM4OzExMTAgMTE2NSAxMUFGO0QxMzg7MTExMCAxMTY1IDExQUY7CitEMTM5O0QxMzk7MTExMCAxMTY1IDExQjA7RDEzOTsxMTEwIDExNjUgMTFCMDsKK0QxM0E7RDEzQTsxMTEwIDExNjUgMTFCMTtEMTNBOzExMTAgMTE2NSAxMUIxOworRDEzQjtEMTNCOzExMTAgMTE2NSAxMUIyO0QxM0I7MTExMCAxMTY1IDExQjI7CitEMTNDO0QxM0M7MTExMCAxMTY1IDExQjM7RDEzQzsxMTEwIDExNjUgMTFCMzsKK0QxM0Q7RDEzRDsxMTEwIDExNjUgMTFCNDtEMTNEOzExMTAgMTE2NSAxMUI0OworRDEzRTtEMTNFOzExMTAgMTE2NSAxMUI1O0QxM0U7MTExMCAxMTY1IDExQjU7CitEMTNGO0QxM0Y7MTExMCAxMTY1IDExQjY7RDEzRjsxMTEwIDExNjUgMTFCNjsKK0QxNDA7RDE0MDsxMTEwIDExNjUgMTFCNztEMTQwOzExMTAgMTE2NSAxMUI3OworRDE0MTtEMTQxOzExMTAgMTE2NSAxMUI4O0QxNDE7MTExMCAxMTY1IDExQjg7CitEMTQyO0QxNDI7MTExMCAxMTY1IDExQjk7RDE0MjsxMTEwIDExNjUgMTFCOTsKK0QxNDM7RDE0MzsxMTEwIDExNjUgMTFCQTtEMTQzOzExMTAgMTE2NSAxMUJBOworRDE0NDtEMTQ0OzExMTAgMTE2NSAxMUJCO0QxNDQ7MTExMCAxMTY1IDExQkI7CitEMTQ1O0QxNDU7MTExMCAxMTY1IDExQkM7RDE0NTsxMTEwIDExNjUgMTFCQzsKK0QxNDY7RDE0NjsxMTEwIDExNjUgMTFCRDtEMTQ2OzExMTAgMTE2NSAxMUJEOworRDE0NztEMTQ3OzExMTAgMTE2NSAxMUJFO0QxNDc7MTExMCAxMTY1IDExQkU7CitEMTQ4O0QxNDg7MTExMCAxMTY1IDExQkY7RDE0ODsxMTEwIDExNjUgMTFCRjsKK0QxNDk7RDE0OTsxMTEwIDExNjUgMTFDMDtEMTQ5OzExMTAgMTE2NSAxMUMwOworRDE0QTtEMTRBOzExMTAgMTE2NSAxMUMxO0QxNEE7MTExMCAxMTY1IDExQzE7CitEMTRCO0QxNEI7MTExMCAxMTY1IDExQzI7RDE0QjsxMTEwIDExNjUgMTFDMjsKK0QxNEM7RDE0QzsxMTEwIDExNjY7RDE0QzsxMTEwIDExNjY7CitEMTREO0QxNEQ7MTExMCAxMTY2IDExQTg7RDE0RDsxMTEwIDExNjYgMTFBODsKK0QxNEU7RDE0RTsxMTEwIDExNjYgMTFBOTtEMTRFOzExMTAgMTE2NiAxMUE5OworRDE0RjtEMTRGOzExMTAgMTE2NiAxMUFBO0QxNEY7MTExMCAxMTY2IDExQUE7CitEMTUwO0QxNTA7MTExMCAxMTY2IDExQUI7RDE1MDsxMTEwIDExNjYgMTFBQjsKK0QxNTE7RDE1MTsxMTEwIDExNjYgMTFBQztEMTUxOzExMTAgMTE2NiAxMUFDOworRDE1MjtEMTUyOzExMTAgMTE2NiAxMUFEO0QxNTI7MTExMCAxMTY2IDExQUQ7CitEMTUzO0QxNTM7MTExMCAxMTY2IDExQUU7RDE1MzsxMTEwIDExNjYgMTFBRTsKK0QxNTQ7RDE1NDsxMTEwIDExNjYgMTFBRjtEMTU0OzExMTAgMTE2NiAxMUFGOworRDE1NTtEMTU1OzExMTAgMTE2NiAxMUIwO0QxNTU7MTExMCAxMTY2IDExQjA7CitEMTU2O0QxNTY7MTExMCAxMTY2IDExQjE7RDE1NjsxMTEwIDExNjYgMTFCMTsKK0QxNTc7RDE1NzsxMTEwIDExNjYgMTFCMjtEMTU3OzExMTAgMTE2NiAxMUIyOworRDE1ODtEMTU4OzExMTAgMTE2NiAxMUIzO0QxNTg7MTExMCAxMTY2IDExQjM7CitEMTU5O0QxNTk7MTExMCAxMTY2IDExQjQ7RDE1OTsxMTEwIDExNjYgMTFCNDsKK0QxNUE7RDE1QTsxMTEwIDExNjYgMTFCNTtEMTVBOzExMTAgMTE2NiAxMUI1OworRDE1QjtEMTVCOzExMTAgMTE2NiAxMUI2O0QxNUI7MTExMCAxMTY2IDExQjY7CitEMTVDO0QxNUM7MTExMCAxMTY2IDExQjc7RDE1QzsxMTEwIDExNjYgMTFCNzsKK0QxNUQ7RDE1RDsxMTEwIDExNjYgMTFCODtEMTVEOzExMTAgMTE2NiAxMUI4OworRDE1RTtEMTVFOzExMTAgMTE2NiAxMUI5O0QxNUU7MTExMCAxMTY2IDExQjk7CitEMTVGO0QxNUY7MTExMCAxMTY2IDExQkE7RDE1RjsxMTEwIDExNjYgMTFCQTsKK0QxNjA7RDE2MDsxMTEwIDExNjYgMTFCQjtEMTYwOzExMTAgMTE2NiAxMUJCOworRDE2MTtEMTYxOzExMTAgMTE2NiAxMUJDO0QxNjE7MTExMCAxMTY2IDExQkM7CitEMTYyO0QxNjI7MTExMCAxMTY2IDExQkQ7RDE2MjsxMTEwIDExNjYgMTFCRDsKK0QxNjM7RDE2MzsxMTEwIDExNjYgMTFCRTtEMTYzOzExMTAgMTE2NiAxMUJFOworRDE2NDtEMTY0OzExMTAgMTE2NiAxMUJGO0QxNjQ7MTExMCAxMTY2IDExQkY7CitEMTY1O0QxNjU7MTExMCAxMTY2IDExQzA7RDE2NTsxMTEwIDExNjYgMTFDMDsKK0QxNjY7RDE2NjsxMTEwIDExNjYgMTFDMTtEMTY2OzExMTAgMTE2NiAxMUMxOworRDE2NztEMTY3OzExMTAgMTE2NiAxMUMyO0QxNjc7MTExMCAxMTY2IDExQzI7CitEMTY4O0QxNjg7MTExMCAxMTY3O0QxNjg7MTExMCAxMTY3OworRDE2OTtEMTY5OzExMTAgMTE2NyAxMUE4O0QxNjk7MTExMCAxMTY3IDExQTg7CitEMTZBO0QxNkE7MTExMCAxMTY3IDExQTk7RDE2QTsxMTEwIDExNjcgMTFBOTsKK0QxNkI7RDE2QjsxMTEwIDExNjcgMTFBQTtEMTZCOzExMTAgMTE2NyAxMUFBOworRDE2QztEMTZDOzExMTAgMTE2NyAxMUFCO0QxNkM7MTExMCAxMTY3IDExQUI7CitEMTZEO0QxNkQ7MTExMCAxMTY3IDExQUM7RDE2RDsxMTEwIDExNjcgMTFBQzsKK0QxNkU7RDE2RTsxMTEwIDExNjcgMTFBRDtEMTZFOzExMTAgMTE2NyAxMUFEOworRDE2RjtEMTZGOzExMTAgMTE2NyAxMUFFO0QxNkY7MTExMCAxMTY3IDExQUU7CitEMTcwO0QxNzA7MTExMCAxMTY3IDExQUY7RDE3MDsxMTEwIDExNjcgMTFBRjsKK0QxNzE7RDE3MTsxMTEwIDExNjcgMTFCMDtEMTcxOzExMTAgMTE2NyAxMUIwOworRDE3MjtEMTcyOzExMTAgMTE2NyAxMUIxO0QxNzI7MTExMCAxMTY3IDExQjE7CitEMTczO0QxNzM7MTExMCAxMTY3IDExQjI7RDE3MzsxMTEwIDExNjcgMTFCMjsKK0QxNzQ7RDE3NDsxMTEwIDExNjcgMTFCMztEMTc0OzExMTAgMTE2NyAxMUIzOworRDE3NTtEMTc1OzExMTAgMTE2NyAxMUI0O0QxNzU7MTExMCAxMTY3IDExQjQ7CitEMTc2O0QxNzY7MTExMCAxMTY3IDExQjU7RDE3NjsxMTEwIDExNjcgMTFCNTsKK0QxNzc7RDE3NzsxMTEwIDExNjcgMTFCNjtEMTc3OzExMTAgMTE2NyAxMUI2OworRDE3ODtEMTc4OzExMTAgMTE2NyAxMUI3O0QxNzg7MTExMCAxMTY3IDExQjc7CitEMTc5O0QxNzk7MTExMCAxMTY3IDExQjg7RDE3OTsxMTEwIDExNjcgMTFCODsKK0QxN0E7RDE3QTsxMTEwIDExNjcgMTFCOTtEMTdBOzExMTAgMTE2NyAxMUI5OworRDE3QjtEMTdCOzExMTAgMTE2NyAxMUJBO0QxN0I7MTExMCAxMTY3IDExQkE7CitEMTdDO0QxN0M7MTExMCAxMTY3IDExQkI7RDE3QzsxMTEwIDExNjcgMTFCQjsKK0QxN0Q7RDE3RDsxMTEwIDExNjcgMTFCQztEMTdEOzExMTAgMTE2NyAxMUJDOworRDE3RTtEMTdFOzExMTAgMTE2NyAxMUJEO0QxN0U7MTExMCAxMTY3IDExQkQ7CitEMTdGO0QxN0Y7MTExMCAxMTY3IDExQkU7RDE3RjsxMTEwIDExNjcgMTFCRTsKK0QxODA7RDE4MDsxMTEwIDExNjcgMTFCRjtEMTgwOzExMTAgMTE2NyAxMUJGOworRDE4MTtEMTgxOzExMTAgMTE2NyAxMUMwO0QxODE7MTExMCAxMTY3IDExQzA7CitEMTgyO0QxODI7MTExMCAxMTY3IDExQzE7RDE4MjsxMTEwIDExNjcgMTFDMTsKK0QxODM7RDE4MzsxMTEwIDExNjcgMTFDMjtEMTgzOzExMTAgMTE2NyAxMUMyOworRDE4NDtEMTg0OzExMTAgMTE2ODtEMTg0OzExMTAgMTE2ODsKK0QxODU7RDE4NTsxMTEwIDExNjggMTFBODtEMTg1OzExMTAgMTE2OCAxMUE4OworRDE4NjtEMTg2OzExMTAgMTE2OCAxMUE5O0QxODY7MTExMCAxMTY4IDExQTk7CitEMTg3O0QxODc7MTExMCAxMTY4IDExQUE7RDE4NzsxMTEwIDExNjggMTFBQTsKK0QxODg7RDE4ODsxMTEwIDExNjggMTFBQjtEMTg4OzExMTAgMTE2OCAxMUFCOworRDE4OTtEMTg5OzExMTAgMTE2OCAxMUFDO0QxODk7MTExMCAxMTY4IDExQUM7CitEMThBO0QxOEE7MTExMCAxMTY4IDExQUQ7RDE4QTsxMTEwIDExNjggMTFBRDsKK0QxOEI7RDE4QjsxMTEwIDExNjggMTFBRTtEMThCOzExMTAgMTE2OCAxMUFFOworRDE4QztEMThDOzExMTAgMTE2OCAxMUFGO0QxOEM7MTExMCAxMTY4IDExQUY7CitEMThEO0QxOEQ7MTExMCAxMTY4IDExQjA7RDE4RDsxMTEwIDExNjggMTFCMDsKK0QxOEU7RDE4RTsxMTEwIDExNjggMTFCMTtEMThFOzExMTAgMTE2OCAxMUIxOworRDE4RjtEMThGOzExMTAgMTE2OCAxMUIyO0QxOEY7MTExMCAxMTY4IDExQjI7CitEMTkwO0QxOTA7MTExMCAxMTY4IDExQjM7RDE5MDsxMTEwIDExNjggMTFCMzsKK0QxOTE7RDE5MTsxMTEwIDExNjggMTFCNDtEMTkxOzExMTAgMTE2OCAxMUI0OworRDE5MjtEMTkyOzExMTAgMTE2OCAxMUI1O0QxOTI7MTExMCAxMTY4IDExQjU7CitEMTkzO0QxOTM7MTExMCAxMTY4IDExQjY7RDE5MzsxMTEwIDExNjggMTFCNjsKK0QxOTQ7RDE5NDsxMTEwIDExNjggMTFCNztEMTk0OzExMTAgMTE2OCAxMUI3OworRDE5NTtEMTk1OzExMTAgMTE2OCAxMUI4O0QxOTU7MTExMCAxMTY4IDExQjg7CitEMTk2O0QxOTY7MTExMCAxMTY4IDExQjk7RDE5NjsxMTEwIDExNjggMTFCOTsKK0QxOTc7RDE5NzsxMTEwIDExNjggMTFCQTtEMTk3OzExMTAgMTE2OCAxMUJBOworRDE5ODtEMTk4OzExMTAgMTE2OCAxMUJCO0QxOTg7MTExMCAxMTY4IDExQkI7CitEMTk5O0QxOTk7MTExMCAxMTY4IDExQkM7RDE5OTsxMTEwIDExNjggMTFCQzsKK0QxOUE7RDE5QTsxMTEwIDExNjggMTFCRDtEMTlBOzExMTAgMTE2OCAxMUJEOworRDE5QjtEMTlCOzExMTAgMTE2OCAxMUJFO0QxOUI7MTExMCAxMTY4IDExQkU7CitEMTlDO0QxOUM7MTExMCAxMTY4IDExQkY7RDE5QzsxMTEwIDExNjggMTFCRjsKK0QxOUQ7RDE5RDsxMTEwIDExNjggMTFDMDtEMTlEOzExMTAgMTE2OCAxMUMwOworRDE5RTtEMTlFOzExMTAgMTE2OCAxMUMxO0QxOUU7MTExMCAxMTY4IDExQzE7CitEMTlGO0QxOUY7MTExMCAxMTY4IDExQzI7RDE5RjsxMTEwIDExNjggMTFDMjsKK0QxQTA7RDFBMDsxMTEwIDExNjk7RDFBMDsxMTEwIDExNjk7CitEMUExO0QxQTE7MTExMCAxMTY5IDExQTg7RDFBMTsxMTEwIDExNjkgMTFBODsKK0QxQTI7RDFBMjsxMTEwIDExNjkgMTFBOTtEMUEyOzExMTAgMTE2OSAxMUE5OworRDFBMztEMUEzOzExMTAgMTE2OSAxMUFBO0QxQTM7MTExMCAxMTY5IDExQUE7CitEMUE0O0QxQTQ7MTExMCAxMTY5IDExQUI7RDFBNDsxMTEwIDExNjkgMTFBQjsKK0QxQTU7RDFBNTsxMTEwIDExNjkgMTFBQztEMUE1OzExMTAgMTE2OSAxMUFDOworRDFBNjtEMUE2OzExMTAgMTE2OSAxMUFEO0QxQTY7MTExMCAxMTY5IDExQUQ7CitEMUE3O0QxQTc7MTExMCAxMTY5IDExQUU7RDFBNzsxMTEwIDExNjkgMTFBRTsKK0QxQTg7RDFBODsxMTEwIDExNjkgMTFBRjtEMUE4OzExMTAgMTE2OSAxMUFGOworRDFBOTtEMUE5OzExMTAgMTE2OSAxMUIwO0QxQTk7MTExMCAxMTY5IDExQjA7CitEMUFBO0QxQUE7MTExMCAxMTY5IDExQjE7RDFBQTsxMTEwIDExNjkgMTFCMTsKK0QxQUI7RDFBQjsxMTEwIDExNjkgMTFCMjtEMUFCOzExMTAgMTE2OSAxMUIyOworRDFBQztEMUFDOzExMTAgMTE2OSAxMUIzO0QxQUM7MTExMCAxMTY5IDExQjM7CitEMUFEO0QxQUQ7MTExMCAxMTY5IDExQjQ7RDFBRDsxMTEwIDExNjkgMTFCNDsKK0QxQUU7RDFBRTsxMTEwIDExNjkgMTFCNTtEMUFFOzExMTAgMTE2OSAxMUI1OworRDFBRjtEMUFGOzExMTAgMTE2OSAxMUI2O0QxQUY7MTExMCAxMTY5IDExQjY7CitEMUIwO0QxQjA7MTExMCAxMTY5IDExQjc7RDFCMDsxMTEwIDExNjkgMTFCNzsKK0QxQjE7RDFCMTsxMTEwIDExNjkgMTFCODtEMUIxOzExMTAgMTE2OSAxMUI4OworRDFCMjtEMUIyOzExMTAgMTE2OSAxMUI5O0QxQjI7MTExMCAxMTY5IDExQjk7CitEMUIzO0QxQjM7MTExMCAxMTY5IDExQkE7RDFCMzsxMTEwIDExNjkgMTFCQTsKK0QxQjQ7RDFCNDsxMTEwIDExNjkgMTFCQjtEMUI0OzExMTAgMTE2OSAxMUJCOworRDFCNTtEMUI1OzExMTAgMTE2OSAxMUJDO0QxQjU7MTExMCAxMTY5IDExQkM7CitEMUI2O0QxQjY7MTExMCAxMTY5IDExQkQ7RDFCNjsxMTEwIDExNjkgMTFCRDsKK0QxQjc7RDFCNzsxMTEwIDExNjkgMTFCRTtEMUI3OzExMTAgMTE2OSAxMUJFOworRDFCODtEMUI4OzExMTAgMTE2OSAxMUJGO0QxQjg7MTExMCAxMTY5IDExQkY7CitEMUI5O0QxQjk7MTExMCAxMTY5IDExQzA7RDFCOTsxMTEwIDExNjkgMTFDMDsKK0QxQkE7RDFCQTsxMTEwIDExNjkgMTFDMTtEMUJBOzExMTAgMTE2OSAxMUMxOworRDFCQjtEMUJCOzExMTAgMTE2OSAxMUMyO0QxQkI7MTExMCAxMTY5IDExQzI7CitEMUJDO0QxQkM7MTExMCAxMTZBO0QxQkM7MTExMCAxMTZBOworRDFCRDtEMUJEOzExMTAgMTE2QSAxMUE4O0QxQkQ7MTExMCAxMTZBIDExQTg7CitEMUJFO0QxQkU7MTExMCAxMTZBIDExQTk7RDFCRTsxMTEwIDExNkEgMTFBOTsKK0QxQkY7RDFCRjsxMTEwIDExNkEgMTFBQTtEMUJGOzExMTAgMTE2QSAxMUFBOworRDFDMDtEMUMwOzExMTAgMTE2QSAxMUFCO0QxQzA7MTExMCAxMTZBIDExQUI7CitEMUMxO0QxQzE7MTExMCAxMTZBIDExQUM7RDFDMTsxMTEwIDExNkEgMTFBQzsKK0QxQzI7RDFDMjsxMTEwIDExNkEgMTFBRDtEMUMyOzExMTAgMTE2QSAxMUFEOworRDFDMztEMUMzOzExMTAgMTE2QSAxMUFFO0QxQzM7MTExMCAxMTZBIDExQUU7CitEMUM0O0QxQzQ7MTExMCAxMTZBIDExQUY7RDFDNDsxMTEwIDExNkEgMTFBRjsKK0QxQzU7RDFDNTsxMTEwIDExNkEgMTFCMDtEMUM1OzExMTAgMTE2QSAxMUIwOworRDFDNjtEMUM2OzExMTAgMTE2QSAxMUIxO0QxQzY7MTExMCAxMTZBIDExQjE7CitEMUM3O0QxQzc7MTExMCAxMTZBIDExQjI7RDFDNzsxMTEwIDExNkEgMTFCMjsKK0QxQzg7RDFDODsxMTEwIDExNkEgMTFCMztEMUM4OzExMTAgMTE2QSAxMUIzOworRDFDOTtEMUM5OzExMTAgMTE2QSAxMUI0O0QxQzk7MTExMCAxMTZBIDExQjQ7CitEMUNBO0QxQ0E7MTExMCAxMTZBIDExQjU7RDFDQTsxMTEwIDExNkEgMTFCNTsKK0QxQ0I7RDFDQjsxMTEwIDExNkEgMTFCNjtEMUNCOzExMTAgMTE2QSAxMUI2OworRDFDQztEMUNDOzExMTAgMTE2QSAxMUI3O0QxQ0M7MTExMCAxMTZBIDExQjc7CitEMUNEO0QxQ0Q7MTExMCAxMTZBIDExQjg7RDFDRDsxMTEwIDExNkEgMTFCODsKK0QxQ0U7RDFDRTsxMTEwIDExNkEgMTFCOTtEMUNFOzExMTAgMTE2QSAxMUI5OworRDFDRjtEMUNGOzExMTAgMTE2QSAxMUJBO0QxQ0Y7MTExMCAxMTZBIDExQkE7CitEMUQwO0QxRDA7MTExMCAxMTZBIDExQkI7RDFEMDsxMTEwIDExNkEgMTFCQjsKK0QxRDE7RDFEMTsxMTEwIDExNkEgMTFCQztEMUQxOzExMTAgMTE2QSAxMUJDOworRDFEMjtEMUQyOzExMTAgMTE2QSAxMUJEO0QxRDI7MTExMCAxMTZBIDExQkQ7CitEMUQzO0QxRDM7MTExMCAxMTZBIDExQkU7RDFEMzsxMTEwIDExNkEgMTFCRTsKK0QxRDQ7RDFENDsxMTEwIDExNkEgMTFCRjtEMUQ0OzExMTAgMTE2QSAxMUJGOworRDFENTtEMUQ1OzExMTAgMTE2QSAxMUMwO0QxRDU7MTExMCAxMTZBIDExQzA7CitEMUQ2O0QxRDY7MTExMCAxMTZBIDExQzE7RDFENjsxMTEwIDExNkEgMTFDMTsKK0QxRDc7RDFENzsxMTEwIDExNkEgMTFDMjtEMUQ3OzExMTAgMTE2QSAxMUMyOworRDFEODtEMUQ4OzExMTAgMTE2QjtEMUQ4OzExMTAgMTE2QjsKK0QxRDk7RDFEOTsxMTEwIDExNkIgMTFBODtEMUQ5OzExMTAgMTE2QiAxMUE4OworRDFEQTtEMURBOzExMTAgMTE2QiAxMUE5O0QxREE7MTExMCAxMTZCIDExQTk7CitEMURCO0QxREI7MTExMCAxMTZCIDExQUE7RDFEQjsxMTEwIDExNkIgMTFBQTsKK0QxREM7RDFEQzsxMTEwIDExNkIgMTFBQjtEMURDOzExMTAgMTE2QiAxMUFCOworRDFERDtEMUREOzExMTAgMTE2QiAxMUFDO0QxREQ7MTExMCAxMTZCIDExQUM7CitEMURFO0QxREU7MTExMCAxMTZCIDExQUQ7RDFERTsxMTEwIDExNkIgMTFBRDsKK0QxREY7RDFERjsxMTEwIDExNkIgMTFBRTtEMURGOzExMTAgMTE2QiAxMUFFOworRDFFMDtEMUUwOzExMTAgMTE2QiAxMUFGO0QxRTA7MTExMCAxMTZCIDExQUY7CitEMUUxO0QxRTE7MTExMCAxMTZCIDExQjA7RDFFMTsxMTEwIDExNkIgMTFCMDsKK0QxRTI7RDFFMjsxMTEwIDExNkIgMTFCMTtEMUUyOzExMTAgMTE2QiAxMUIxOworRDFFMztEMUUzOzExMTAgMTE2QiAxMUIyO0QxRTM7MTExMCAxMTZCIDExQjI7CitEMUU0O0QxRTQ7MTExMCAxMTZCIDExQjM7RDFFNDsxMTEwIDExNkIgMTFCMzsKK0QxRTU7RDFFNTsxMTEwIDExNkIgMTFCNDtEMUU1OzExMTAgMTE2QiAxMUI0OworRDFFNjtEMUU2OzExMTAgMTE2QiAxMUI1O0QxRTY7MTExMCAxMTZCIDExQjU7CitEMUU3O0QxRTc7MTExMCAxMTZCIDExQjY7RDFFNzsxMTEwIDExNkIgMTFCNjsKK0QxRTg7RDFFODsxMTEwIDExNkIgMTFCNztEMUU4OzExMTAgMTE2QiAxMUI3OworRDFFOTtEMUU5OzExMTAgMTE2QiAxMUI4O0QxRTk7MTExMCAxMTZCIDExQjg7CitEMUVBO0QxRUE7MTExMCAxMTZCIDExQjk7RDFFQTsxMTEwIDExNkIgMTFCOTsKK0QxRUI7RDFFQjsxMTEwIDExNkIgMTFCQTtEMUVCOzExMTAgMTE2QiAxMUJBOworRDFFQztEMUVDOzExMTAgMTE2QiAxMUJCO0QxRUM7MTExMCAxMTZCIDExQkI7CitEMUVEO0QxRUQ7MTExMCAxMTZCIDExQkM7RDFFRDsxMTEwIDExNkIgMTFCQzsKK0QxRUU7RDFFRTsxMTEwIDExNkIgMTFCRDtEMUVFOzExMTAgMTE2QiAxMUJEOworRDFFRjtEMUVGOzExMTAgMTE2QiAxMUJFO0QxRUY7MTExMCAxMTZCIDExQkU7CitEMUYwO0QxRjA7MTExMCAxMTZCIDExQkY7RDFGMDsxMTEwIDExNkIgMTFCRjsKK0QxRjE7RDFGMTsxMTEwIDExNkIgMTFDMDtEMUYxOzExMTAgMTE2QiAxMUMwOworRDFGMjtEMUYyOzExMTAgMTE2QiAxMUMxO0QxRjI7MTExMCAxMTZCIDExQzE7CitEMUYzO0QxRjM7MTExMCAxMTZCIDExQzI7RDFGMzsxMTEwIDExNkIgMTFDMjsKK0QxRjQ7RDFGNDsxMTEwIDExNkM7RDFGNDsxMTEwIDExNkM7CitEMUY1O0QxRjU7MTExMCAxMTZDIDExQTg7RDFGNTsxMTEwIDExNkMgMTFBODsKK0QxRjY7RDFGNjsxMTEwIDExNkMgMTFBOTtEMUY2OzExMTAgMTE2QyAxMUE5OworRDFGNztEMUY3OzExMTAgMTE2QyAxMUFBO0QxRjc7MTExMCAxMTZDIDExQUE7CitEMUY4O0QxRjg7MTExMCAxMTZDIDExQUI7RDFGODsxMTEwIDExNkMgMTFBQjsKK0QxRjk7RDFGOTsxMTEwIDExNkMgMTFBQztEMUY5OzExMTAgMTE2QyAxMUFDOworRDFGQTtEMUZBOzExMTAgMTE2QyAxMUFEO0QxRkE7MTExMCAxMTZDIDExQUQ7CitEMUZCO0QxRkI7MTExMCAxMTZDIDExQUU7RDFGQjsxMTEwIDExNkMgMTFBRTsKK0QxRkM7RDFGQzsxMTEwIDExNkMgMTFBRjtEMUZDOzExMTAgMTE2QyAxMUFGOworRDFGRDtEMUZEOzExMTAgMTE2QyAxMUIwO0QxRkQ7MTExMCAxMTZDIDExQjA7CitEMUZFO0QxRkU7MTExMCAxMTZDIDExQjE7RDFGRTsxMTEwIDExNkMgMTFCMTsKK0QxRkY7RDFGRjsxMTEwIDExNkMgMTFCMjtEMUZGOzExMTAgMTE2QyAxMUIyOworRDIwMDtEMjAwOzExMTAgMTE2QyAxMUIzO0QyMDA7MTExMCAxMTZDIDExQjM7CitEMjAxO0QyMDE7MTExMCAxMTZDIDExQjQ7RDIwMTsxMTEwIDExNkMgMTFCNDsKK0QyMDI7RDIwMjsxMTEwIDExNkMgMTFCNTtEMjAyOzExMTAgMTE2QyAxMUI1OworRDIwMztEMjAzOzExMTAgMTE2QyAxMUI2O0QyMDM7MTExMCAxMTZDIDExQjY7CitEMjA0O0QyMDQ7MTExMCAxMTZDIDExQjc7RDIwNDsxMTEwIDExNkMgMTFCNzsKK0QyMDU7RDIwNTsxMTEwIDExNkMgMTFCODtEMjA1OzExMTAgMTE2QyAxMUI4OworRDIwNjtEMjA2OzExMTAgMTE2QyAxMUI5O0QyMDY7MTExMCAxMTZDIDExQjk7CitEMjA3O0QyMDc7MTExMCAxMTZDIDExQkE7RDIwNzsxMTEwIDExNkMgMTFCQTsKK0QyMDg7RDIwODsxMTEwIDExNkMgMTFCQjtEMjA4OzExMTAgMTE2QyAxMUJCOworRDIwOTtEMjA5OzExMTAgMTE2QyAxMUJDO0QyMDk7MTExMCAxMTZDIDExQkM7CitEMjBBO0QyMEE7MTExMCAxMTZDIDExQkQ7RDIwQTsxMTEwIDExNkMgMTFCRDsKK0QyMEI7RDIwQjsxMTEwIDExNkMgMTFCRTtEMjBCOzExMTAgMTE2QyAxMUJFOworRDIwQztEMjBDOzExMTAgMTE2QyAxMUJGO0QyMEM7MTExMCAxMTZDIDExQkY7CitEMjBEO0QyMEQ7MTExMCAxMTZDIDExQzA7RDIwRDsxMTEwIDExNkMgMTFDMDsKK0QyMEU7RDIwRTsxMTEwIDExNkMgMTFDMTtEMjBFOzExMTAgMTE2QyAxMUMxOworRDIwRjtEMjBGOzExMTAgMTE2QyAxMUMyO0QyMEY7MTExMCAxMTZDIDExQzI7CitEMjEwO0QyMTA7MTExMCAxMTZEO0QyMTA7MTExMCAxMTZEOworRDIxMTtEMjExOzExMTAgMTE2RCAxMUE4O0QyMTE7MTExMCAxMTZEIDExQTg7CitEMjEyO0QyMTI7MTExMCAxMTZEIDExQTk7RDIxMjsxMTEwIDExNkQgMTFBOTsKK0QyMTM7RDIxMzsxMTEwIDExNkQgMTFBQTtEMjEzOzExMTAgMTE2RCAxMUFBOworRDIxNDtEMjE0OzExMTAgMTE2RCAxMUFCO0QyMTQ7MTExMCAxMTZEIDExQUI7CitEMjE1O0QyMTU7MTExMCAxMTZEIDExQUM7RDIxNTsxMTEwIDExNkQgMTFBQzsKK0QyMTY7RDIxNjsxMTEwIDExNkQgMTFBRDtEMjE2OzExMTAgMTE2RCAxMUFEOworRDIxNztEMjE3OzExMTAgMTE2RCAxMUFFO0QyMTc7MTExMCAxMTZEIDExQUU7CitEMjE4O0QyMTg7MTExMCAxMTZEIDExQUY7RDIxODsxMTEwIDExNkQgMTFBRjsKK0QyMTk7RDIxOTsxMTEwIDExNkQgMTFCMDtEMjE5OzExMTAgMTE2RCAxMUIwOworRDIxQTtEMjFBOzExMTAgMTE2RCAxMUIxO0QyMUE7MTExMCAxMTZEIDExQjE7CitEMjFCO0QyMUI7MTExMCAxMTZEIDExQjI7RDIxQjsxMTEwIDExNkQgMTFCMjsKK0QyMUM7RDIxQzsxMTEwIDExNkQgMTFCMztEMjFDOzExMTAgMTE2RCAxMUIzOworRDIxRDtEMjFEOzExMTAgMTE2RCAxMUI0O0QyMUQ7MTExMCAxMTZEIDExQjQ7CitEMjFFO0QyMUU7MTExMCAxMTZEIDExQjU7RDIxRTsxMTEwIDExNkQgMTFCNTsKK0QyMUY7RDIxRjsxMTEwIDExNkQgMTFCNjtEMjFGOzExMTAgMTE2RCAxMUI2OworRDIyMDtEMjIwOzExMTAgMTE2RCAxMUI3O0QyMjA7MTExMCAxMTZEIDExQjc7CitEMjIxO0QyMjE7MTExMCAxMTZEIDExQjg7RDIyMTsxMTEwIDExNkQgMTFCODsKK0QyMjI7RDIyMjsxMTEwIDExNkQgMTFCOTtEMjIyOzExMTAgMTE2RCAxMUI5OworRDIyMztEMjIzOzExMTAgMTE2RCAxMUJBO0QyMjM7MTExMCAxMTZEIDExQkE7CitEMjI0O0QyMjQ7MTExMCAxMTZEIDExQkI7RDIyNDsxMTEwIDExNkQgMTFCQjsKK0QyMjU7RDIyNTsxMTEwIDExNkQgMTFCQztEMjI1OzExMTAgMTE2RCAxMUJDOworRDIyNjtEMjI2OzExMTAgMTE2RCAxMUJEO0QyMjY7MTExMCAxMTZEIDExQkQ7CitEMjI3O0QyMjc7MTExMCAxMTZEIDExQkU7RDIyNzsxMTEwIDExNkQgMTFCRTsKK0QyMjg7RDIyODsxMTEwIDExNkQgMTFCRjtEMjI4OzExMTAgMTE2RCAxMUJGOworRDIyOTtEMjI5OzExMTAgMTE2RCAxMUMwO0QyMjk7MTExMCAxMTZEIDExQzA7CitEMjJBO0QyMkE7MTExMCAxMTZEIDExQzE7RDIyQTsxMTEwIDExNkQgMTFDMTsKK0QyMkI7RDIyQjsxMTEwIDExNkQgMTFDMjtEMjJCOzExMTAgMTE2RCAxMUMyOworRDIyQztEMjJDOzExMTAgMTE2RTtEMjJDOzExMTAgMTE2RTsKK0QyMkQ7RDIyRDsxMTEwIDExNkUgMTFBODtEMjJEOzExMTAgMTE2RSAxMUE4OworRDIyRTtEMjJFOzExMTAgMTE2RSAxMUE5O0QyMkU7MTExMCAxMTZFIDExQTk7CitEMjJGO0QyMkY7MTExMCAxMTZFIDExQUE7RDIyRjsxMTEwIDExNkUgMTFBQTsKK0QyMzA7RDIzMDsxMTEwIDExNkUgMTFBQjtEMjMwOzExMTAgMTE2RSAxMUFCOworRDIzMTtEMjMxOzExMTAgMTE2RSAxMUFDO0QyMzE7MTExMCAxMTZFIDExQUM7CitEMjMyO0QyMzI7MTExMCAxMTZFIDExQUQ7RDIzMjsxMTEwIDExNkUgMTFBRDsKK0QyMzM7RDIzMzsxMTEwIDExNkUgMTFBRTtEMjMzOzExMTAgMTE2RSAxMUFFOworRDIzNDtEMjM0OzExMTAgMTE2RSAxMUFGO0QyMzQ7MTExMCAxMTZFIDExQUY7CitEMjM1O0QyMzU7MTExMCAxMTZFIDExQjA7RDIzNTsxMTEwIDExNkUgMTFCMDsKK0QyMzY7RDIzNjsxMTEwIDExNkUgMTFCMTtEMjM2OzExMTAgMTE2RSAxMUIxOworRDIzNztEMjM3OzExMTAgMTE2RSAxMUIyO0QyMzc7MTExMCAxMTZFIDExQjI7CitEMjM4O0QyMzg7MTExMCAxMTZFIDExQjM7RDIzODsxMTEwIDExNkUgMTFCMzsKK0QyMzk7RDIzOTsxMTEwIDExNkUgMTFCNDtEMjM5OzExMTAgMTE2RSAxMUI0OworRDIzQTtEMjNBOzExMTAgMTE2RSAxMUI1O0QyM0E7MTExMCAxMTZFIDExQjU7CitEMjNCO0QyM0I7MTExMCAxMTZFIDExQjY7RDIzQjsxMTEwIDExNkUgMTFCNjsKK0QyM0M7RDIzQzsxMTEwIDExNkUgMTFCNztEMjNDOzExMTAgMTE2RSAxMUI3OworRDIzRDtEMjNEOzExMTAgMTE2RSAxMUI4O0QyM0Q7MTExMCAxMTZFIDExQjg7CitEMjNFO0QyM0U7MTExMCAxMTZFIDExQjk7RDIzRTsxMTEwIDExNkUgMTFCOTsKK0QyM0Y7RDIzRjsxMTEwIDExNkUgMTFCQTtEMjNGOzExMTAgMTE2RSAxMUJBOworRDI0MDtEMjQwOzExMTAgMTE2RSAxMUJCO0QyNDA7MTExMCAxMTZFIDExQkI7CitEMjQxO0QyNDE7MTExMCAxMTZFIDExQkM7RDI0MTsxMTEwIDExNkUgMTFCQzsKK0QyNDI7RDI0MjsxMTEwIDExNkUgMTFCRDtEMjQyOzExMTAgMTE2RSAxMUJEOworRDI0MztEMjQzOzExMTAgMTE2RSAxMUJFO0QyNDM7MTExMCAxMTZFIDExQkU7CitEMjQ0O0QyNDQ7MTExMCAxMTZFIDExQkY7RDI0NDsxMTEwIDExNkUgMTFCRjsKK0QyNDU7RDI0NTsxMTEwIDExNkUgMTFDMDtEMjQ1OzExMTAgMTE2RSAxMUMwOworRDI0NjtEMjQ2OzExMTAgMTE2RSAxMUMxO0QyNDY7MTExMCAxMTZFIDExQzE7CitEMjQ3O0QyNDc7MTExMCAxMTZFIDExQzI7RDI0NzsxMTEwIDExNkUgMTFDMjsKK0QyNDg7RDI0ODsxMTEwIDExNkY7RDI0ODsxMTEwIDExNkY7CitEMjQ5O0QyNDk7MTExMCAxMTZGIDExQTg7RDI0OTsxMTEwIDExNkYgMTFBODsKK0QyNEE7RDI0QTsxMTEwIDExNkYgMTFBOTtEMjRBOzExMTAgMTE2RiAxMUE5OworRDI0QjtEMjRCOzExMTAgMTE2RiAxMUFBO0QyNEI7MTExMCAxMTZGIDExQUE7CitEMjRDO0QyNEM7MTExMCAxMTZGIDExQUI7RDI0QzsxMTEwIDExNkYgMTFBQjsKK0QyNEQ7RDI0RDsxMTEwIDExNkYgMTFBQztEMjREOzExMTAgMTE2RiAxMUFDOworRDI0RTtEMjRFOzExMTAgMTE2RiAxMUFEO0QyNEU7MTExMCAxMTZGIDExQUQ7CitEMjRGO0QyNEY7MTExMCAxMTZGIDExQUU7RDI0RjsxMTEwIDExNkYgMTFBRTsKK0QyNTA7RDI1MDsxMTEwIDExNkYgMTFBRjtEMjUwOzExMTAgMTE2RiAxMUFGOworRDI1MTtEMjUxOzExMTAgMTE2RiAxMUIwO0QyNTE7MTExMCAxMTZGIDExQjA7CitEMjUyO0QyNTI7MTExMCAxMTZGIDExQjE7RDI1MjsxMTEwIDExNkYgMTFCMTsKK0QyNTM7RDI1MzsxMTEwIDExNkYgMTFCMjtEMjUzOzExMTAgMTE2RiAxMUIyOworRDI1NDtEMjU0OzExMTAgMTE2RiAxMUIzO0QyNTQ7MTExMCAxMTZGIDExQjM7CitEMjU1O0QyNTU7MTExMCAxMTZGIDExQjQ7RDI1NTsxMTEwIDExNkYgMTFCNDsKK0QyNTY7RDI1NjsxMTEwIDExNkYgMTFCNTtEMjU2OzExMTAgMTE2RiAxMUI1OworRDI1NztEMjU3OzExMTAgMTE2RiAxMUI2O0QyNTc7MTExMCAxMTZGIDExQjY7CitEMjU4O0QyNTg7MTExMCAxMTZGIDExQjc7RDI1ODsxMTEwIDExNkYgMTFCNzsKK0QyNTk7RDI1OTsxMTEwIDExNkYgMTFCODtEMjU5OzExMTAgMTE2RiAxMUI4OworRDI1QTtEMjVBOzExMTAgMTE2RiAxMUI5O0QyNUE7MTExMCAxMTZGIDExQjk7CitEMjVCO0QyNUI7MTExMCAxMTZGIDExQkE7RDI1QjsxMTEwIDExNkYgMTFCQTsKK0QyNUM7RDI1QzsxMTEwIDExNkYgMTFCQjtEMjVDOzExMTAgMTE2RiAxMUJCOworRDI1RDtEMjVEOzExMTAgMTE2RiAxMUJDO0QyNUQ7MTExMCAxMTZGIDExQkM7CitEMjVFO0QyNUU7MTExMCAxMTZGIDExQkQ7RDI1RTsxMTEwIDExNkYgMTFCRDsKK0QyNUY7RDI1RjsxMTEwIDExNkYgMTFCRTtEMjVGOzExMTAgMTE2RiAxMUJFOworRDI2MDtEMjYwOzExMTAgMTE2RiAxMUJGO0QyNjA7MTExMCAxMTZGIDExQkY7CitEMjYxO0QyNjE7MTExMCAxMTZGIDExQzA7RDI2MTsxMTEwIDExNkYgMTFDMDsKK0QyNjI7RDI2MjsxMTEwIDExNkYgMTFDMTtEMjYyOzExMTAgMTE2RiAxMUMxOworRDI2MztEMjYzOzExMTAgMTE2RiAxMUMyO0QyNjM7MTExMCAxMTZGIDExQzI7CitEMjY0O0QyNjQ7MTExMCAxMTcwO0QyNjQ7MTExMCAxMTcwOworRDI2NTtEMjY1OzExMTAgMTE3MCAxMUE4O0QyNjU7MTExMCAxMTcwIDExQTg7CitEMjY2O0QyNjY7MTExMCAxMTcwIDExQTk7RDI2NjsxMTEwIDExNzAgMTFBOTsKK0QyNjc7RDI2NzsxMTEwIDExNzAgMTFBQTtEMjY3OzExMTAgMTE3MCAxMUFBOworRDI2ODtEMjY4OzExMTAgMTE3MCAxMUFCO0QyNjg7MTExMCAxMTcwIDExQUI7CitEMjY5O0QyNjk7MTExMCAxMTcwIDExQUM7RDI2OTsxMTEwIDExNzAgMTFBQzsKK0QyNkE7RDI2QTsxMTEwIDExNzAgMTFBRDtEMjZBOzExMTAgMTE3MCAxMUFEOworRDI2QjtEMjZCOzExMTAgMTE3MCAxMUFFO0QyNkI7MTExMCAxMTcwIDExQUU7CitEMjZDO0QyNkM7MTExMCAxMTcwIDExQUY7RDI2QzsxMTEwIDExNzAgMTFBRjsKK0QyNkQ7RDI2RDsxMTEwIDExNzAgMTFCMDtEMjZEOzExMTAgMTE3MCAxMUIwOworRDI2RTtEMjZFOzExMTAgMTE3MCAxMUIxO0QyNkU7MTExMCAxMTcwIDExQjE7CitEMjZGO0QyNkY7MTExMCAxMTcwIDExQjI7RDI2RjsxMTEwIDExNzAgMTFCMjsKK0QyNzA7RDI3MDsxMTEwIDExNzAgMTFCMztEMjcwOzExMTAgMTE3MCAxMUIzOworRDI3MTtEMjcxOzExMTAgMTE3MCAxMUI0O0QyNzE7MTExMCAxMTcwIDExQjQ7CitEMjcyO0QyNzI7MTExMCAxMTcwIDExQjU7RDI3MjsxMTEwIDExNzAgMTFCNTsKK0QyNzM7RDI3MzsxMTEwIDExNzAgMTFCNjtEMjczOzExMTAgMTE3MCAxMUI2OworRDI3NDtEMjc0OzExMTAgMTE3MCAxMUI3O0QyNzQ7MTExMCAxMTcwIDExQjc7CitEMjc1O0QyNzU7MTExMCAxMTcwIDExQjg7RDI3NTsxMTEwIDExNzAgMTFCODsKK0QyNzY7RDI3NjsxMTEwIDExNzAgMTFCOTtEMjc2OzExMTAgMTE3MCAxMUI5OworRDI3NztEMjc3OzExMTAgMTE3MCAxMUJBO0QyNzc7MTExMCAxMTcwIDExQkE7CitEMjc4O0QyNzg7MTExMCAxMTcwIDExQkI7RDI3ODsxMTEwIDExNzAgMTFCQjsKK0QyNzk7RDI3OTsxMTEwIDExNzAgMTFCQztEMjc5OzExMTAgMTE3MCAxMUJDOworRDI3QTtEMjdBOzExMTAgMTE3MCAxMUJEO0QyN0E7MTExMCAxMTcwIDExQkQ7CitEMjdCO0QyN0I7MTExMCAxMTcwIDExQkU7RDI3QjsxMTEwIDExNzAgMTFCRTsKK0QyN0M7RDI3QzsxMTEwIDExNzAgMTFCRjtEMjdDOzExMTAgMTE3MCAxMUJGOworRDI3RDtEMjdEOzExMTAgMTE3MCAxMUMwO0QyN0Q7MTExMCAxMTcwIDExQzA7CitEMjdFO0QyN0U7MTExMCAxMTcwIDExQzE7RDI3RTsxMTEwIDExNzAgMTFDMTsKK0QyN0Y7RDI3RjsxMTEwIDExNzAgMTFDMjtEMjdGOzExMTAgMTE3MCAxMUMyOworRDI4MDtEMjgwOzExMTAgMTE3MTtEMjgwOzExMTAgMTE3MTsKK0QyODE7RDI4MTsxMTEwIDExNzEgMTFBODtEMjgxOzExMTAgMTE3MSAxMUE4OworRDI4MjtEMjgyOzExMTAgMTE3MSAxMUE5O0QyODI7MTExMCAxMTcxIDExQTk7CitEMjgzO0QyODM7MTExMCAxMTcxIDExQUE7RDI4MzsxMTEwIDExNzEgMTFBQTsKK0QyODQ7RDI4NDsxMTEwIDExNzEgMTFBQjtEMjg0OzExMTAgMTE3MSAxMUFCOworRDI4NTtEMjg1OzExMTAgMTE3MSAxMUFDO0QyODU7MTExMCAxMTcxIDExQUM7CitEMjg2O0QyODY7MTExMCAxMTcxIDExQUQ7RDI4NjsxMTEwIDExNzEgMTFBRDsKK0QyODc7RDI4NzsxMTEwIDExNzEgMTFBRTtEMjg3OzExMTAgMTE3MSAxMUFFOworRDI4ODtEMjg4OzExMTAgMTE3MSAxMUFGO0QyODg7MTExMCAxMTcxIDExQUY7CitEMjg5O0QyODk7MTExMCAxMTcxIDExQjA7RDI4OTsxMTEwIDExNzEgMTFCMDsKK0QyOEE7RDI4QTsxMTEwIDExNzEgMTFCMTtEMjhBOzExMTAgMTE3MSAxMUIxOworRDI4QjtEMjhCOzExMTAgMTE3MSAxMUIyO0QyOEI7MTExMCAxMTcxIDExQjI7CitEMjhDO0QyOEM7MTExMCAxMTcxIDExQjM7RDI4QzsxMTEwIDExNzEgMTFCMzsKK0QyOEQ7RDI4RDsxMTEwIDExNzEgMTFCNDtEMjhEOzExMTAgMTE3MSAxMUI0OworRDI4RTtEMjhFOzExMTAgMTE3MSAxMUI1O0QyOEU7MTExMCAxMTcxIDExQjU7CitEMjhGO0QyOEY7MTExMCAxMTcxIDExQjY7RDI4RjsxMTEwIDExNzEgMTFCNjsKK0QyOTA7RDI5MDsxMTEwIDExNzEgMTFCNztEMjkwOzExMTAgMTE3MSAxMUI3OworRDI5MTtEMjkxOzExMTAgMTE3MSAxMUI4O0QyOTE7MTExMCAxMTcxIDExQjg7CitEMjkyO0QyOTI7MTExMCAxMTcxIDExQjk7RDI5MjsxMTEwIDExNzEgMTFCOTsKK0QyOTM7RDI5MzsxMTEwIDExNzEgMTFCQTtEMjkzOzExMTAgMTE3MSAxMUJBOworRDI5NDtEMjk0OzExMTAgMTE3MSAxMUJCO0QyOTQ7MTExMCAxMTcxIDExQkI7CitEMjk1O0QyOTU7MTExMCAxMTcxIDExQkM7RDI5NTsxMTEwIDExNzEgMTFCQzsKK0QyOTY7RDI5NjsxMTEwIDExNzEgMTFCRDtEMjk2OzExMTAgMTE3MSAxMUJEOworRDI5NztEMjk3OzExMTAgMTE3MSAxMUJFO0QyOTc7MTExMCAxMTcxIDExQkU7CitEMjk4O0QyOTg7MTExMCAxMTcxIDExQkY7RDI5ODsxMTEwIDExNzEgMTFCRjsKK0QyOTk7RDI5OTsxMTEwIDExNzEgMTFDMDtEMjk5OzExMTAgMTE3MSAxMUMwOworRDI5QTtEMjlBOzExMTAgMTE3MSAxMUMxO0QyOUE7MTExMCAxMTcxIDExQzE7CitEMjlCO0QyOUI7MTExMCAxMTcxIDExQzI7RDI5QjsxMTEwIDExNzEgMTFDMjsKK0QyOUM7RDI5QzsxMTEwIDExNzI7RDI5QzsxMTEwIDExNzI7CitEMjlEO0QyOUQ7MTExMCAxMTcyIDExQTg7RDI5RDsxMTEwIDExNzIgMTFBODsKK0QyOUU7RDI5RTsxMTEwIDExNzIgMTFBOTtEMjlFOzExMTAgMTE3MiAxMUE5OworRDI5RjtEMjlGOzExMTAgMTE3MiAxMUFBO0QyOUY7MTExMCAxMTcyIDExQUE7CitEMkEwO0QyQTA7MTExMCAxMTcyIDExQUI7RDJBMDsxMTEwIDExNzIgMTFBQjsKK0QyQTE7RDJBMTsxMTEwIDExNzIgMTFBQztEMkExOzExMTAgMTE3MiAxMUFDOworRDJBMjtEMkEyOzExMTAgMTE3MiAxMUFEO0QyQTI7MTExMCAxMTcyIDExQUQ7CitEMkEzO0QyQTM7MTExMCAxMTcyIDExQUU7RDJBMzsxMTEwIDExNzIgMTFBRTsKK0QyQTQ7RDJBNDsxMTEwIDExNzIgMTFBRjtEMkE0OzExMTAgMTE3MiAxMUFGOworRDJBNTtEMkE1OzExMTAgMTE3MiAxMUIwO0QyQTU7MTExMCAxMTcyIDExQjA7CitEMkE2O0QyQTY7MTExMCAxMTcyIDExQjE7RDJBNjsxMTEwIDExNzIgMTFCMTsKK0QyQTc7RDJBNzsxMTEwIDExNzIgMTFCMjtEMkE3OzExMTAgMTE3MiAxMUIyOworRDJBODtEMkE4OzExMTAgMTE3MiAxMUIzO0QyQTg7MTExMCAxMTcyIDExQjM7CitEMkE5O0QyQTk7MTExMCAxMTcyIDExQjQ7RDJBOTsxMTEwIDExNzIgMTFCNDsKK0QyQUE7RDJBQTsxMTEwIDExNzIgMTFCNTtEMkFBOzExMTAgMTE3MiAxMUI1OworRDJBQjtEMkFCOzExMTAgMTE3MiAxMUI2O0QyQUI7MTExMCAxMTcyIDExQjY7CitEMkFDO0QyQUM7MTExMCAxMTcyIDExQjc7RDJBQzsxMTEwIDExNzIgMTFCNzsKK0QyQUQ7RDJBRDsxMTEwIDExNzIgMTFCODtEMkFEOzExMTAgMTE3MiAxMUI4OworRDJBRTtEMkFFOzExMTAgMTE3MiAxMUI5O0QyQUU7MTExMCAxMTcyIDExQjk7CitEMkFGO0QyQUY7MTExMCAxMTcyIDExQkE7RDJBRjsxMTEwIDExNzIgMTFCQTsKK0QyQjA7RDJCMDsxMTEwIDExNzIgMTFCQjtEMkIwOzExMTAgMTE3MiAxMUJCOworRDJCMTtEMkIxOzExMTAgMTE3MiAxMUJDO0QyQjE7MTExMCAxMTcyIDExQkM7CitEMkIyO0QyQjI7MTExMCAxMTcyIDExQkQ7RDJCMjsxMTEwIDExNzIgMTFCRDsKK0QyQjM7RDJCMzsxMTEwIDExNzIgMTFCRTtEMkIzOzExMTAgMTE3MiAxMUJFOworRDJCNDtEMkI0OzExMTAgMTE3MiAxMUJGO0QyQjQ7MTExMCAxMTcyIDExQkY7CitEMkI1O0QyQjU7MTExMCAxMTcyIDExQzA7RDJCNTsxMTEwIDExNzIgMTFDMDsKK0QyQjY7RDJCNjsxMTEwIDExNzIgMTFDMTtEMkI2OzExMTAgMTE3MiAxMUMxOworRDJCNztEMkI3OzExMTAgMTE3MiAxMUMyO0QyQjc7MTExMCAxMTcyIDExQzI7CitEMkI4O0QyQjg7MTExMCAxMTczO0QyQjg7MTExMCAxMTczOworRDJCOTtEMkI5OzExMTAgMTE3MyAxMUE4O0QyQjk7MTExMCAxMTczIDExQTg7CitEMkJBO0QyQkE7MTExMCAxMTczIDExQTk7RDJCQTsxMTEwIDExNzMgMTFBOTsKK0QyQkI7RDJCQjsxMTEwIDExNzMgMTFBQTtEMkJCOzExMTAgMTE3MyAxMUFBOworRDJCQztEMkJDOzExMTAgMTE3MyAxMUFCO0QyQkM7MTExMCAxMTczIDExQUI7CitEMkJEO0QyQkQ7MTExMCAxMTczIDExQUM7RDJCRDsxMTEwIDExNzMgMTFBQzsKK0QyQkU7RDJCRTsxMTEwIDExNzMgMTFBRDtEMkJFOzExMTAgMTE3MyAxMUFEOworRDJCRjtEMkJGOzExMTAgMTE3MyAxMUFFO0QyQkY7MTExMCAxMTczIDExQUU7CitEMkMwO0QyQzA7MTExMCAxMTczIDExQUY7RDJDMDsxMTEwIDExNzMgMTFBRjsKK0QyQzE7RDJDMTsxMTEwIDExNzMgMTFCMDtEMkMxOzExMTAgMTE3MyAxMUIwOworRDJDMjtEMkMyOzExMTAgMTE3MyAxMUIxO0QyQzI7MTExMCAxMTczIDExQjE7CitEMkMzO0QyQzM7MTExMCAxMTczIDExQjI7RDJDMzsxMTEwIDExNzMgMTFCMjsKK0QyQzQ7RDJDNDsxMTEwIDExNzMgMTFCMztEMkM0OzExMTAgMTE3MyAxMUIzOworRDJDNTtEMkM1OzExMTAgMTE3MyAxMUI0O0QyQzU7MTExMCAxMTczIDExQjQ7CitEMkM2O0QyQzY7MTExMCAxMTczIDExQjU7RDJDNjsxMTEwIDExNzMgMTFCNTsKK0QyQzc7RDJDNzsxMTEwIDExNzMgMTFCNjtEMkM3OzExMTAgMTE3MyAxMUI2OworRDJDODtEMkM4OzExMTAgMTE3MyAxMUI3O0QyQzg7MTExMCAxMTczIDExQjc7CitEMkM5O0QyQzk7MTExMCAxMTczIDExQjg7RDJDOTsxMTEwIDExNzMgMTFCODsKK0QyQ0E7RDJDQTsxMTEwIDExNzMgMTFCOTtEMkNBOzExMTAgMTE3MyAxMUI5OworRDJDQjtEMkNCOzExMTAgMTE3MyAxMUJBO0QyQ0I7MTExMCAxMTczIDExQkE7CitEMkNDO0QyQ0M7MTExMCAxMTczIDExQkI7RDJDQzsxMTEwIDExNzMgMTFCQjsKK0QyQ0Q7RDJDRDsxMTEwIDExNzMgMTFCQztEMkNEOzExMTAgMTE3MyAxMUJDOworRDJDRTtEMkNFOzExMTAgMTE3MyAxMUJEO0QyQ0U7MTExMCAxMTczIDExQkQ7CitEMkNGO0QyQ0Y7MTExMCAxMTczIDExQkU7RDJDRjsxMTEwIDExNzMgMTFCRTsKK0QyRDA7RDJEMDsxMTEwIDExNzMgMTFCRjtEMkQwOzExMTAgMTE3MyAxMUJGOworRDJEMTtEMkQxOzExMTAgMTE3MyAxMUMwO0QyRDE7MTExMCAxMTczIDExQzA7CitEMkQyO0QyRDI7MTExMCAxMTczIDExQzE7RDJEMjsxMTEwIDExNzMgMTFDMTsKK0QyRDM7RDJEMzsxMTEwIDExNzMgMTFDMjtEMkQzOzExMTAgMTE3MyAxMUMyOworRDJENDtEMkQ0OzExMTAgMTE3NDtEMkQ0OzExMTAgMTE3NDsKK0QyRDU7RDJENTsxMTEwIDExNzQgMTFBODtEMkQ1OzExMTAgMTE3NCAxMUE4OworRDJENjtEMkQ2OzExMTAgMTE3NCAxMUE5O0QyRDY7MTExMCAxMTc0IDExQTk7CitEMkQ3O0QyRDc7MTExMCAxMTc0IDExQUE7RDJENzsxMTEwIDExNzQgMTFBQTsKK0QyRDg7RDJEODsxMTEwIDExNzQgMTFBQjtEMkQ4OzExMTAgMTE3NCAxMUFCOworRDJEOTtEMkQ5OzExMTAgMTE3NCAxMUFDO0QyRDk7MTExMCAxMTc0IDExQUM7CitEMkRBO0QyREE7MTExMCAxMTc0IDExQUQ7RDJEQTsxMTEwIDExNzQgMTFBRDsKK0QyREI7RDJEQjsxMTEwIDExNzQgMTFBRTtEMkRCOzExMTAgMTE3NCAxMUFFOworRDJEQztEMkRDOzExMTAgMTE3NCAxMUFGO0QyREM7MTExMCAxMTc0IDExQUY7CitEMkREO0QyREQ7MTExMCAxMTc0IDExQjA7RDJERDsxMTEwIDExNzQgMTFCMDsKK0QyREU7RDJERTsxMTEwIDExNzQgMTFCMTtEMkRFOzExMTAgMTE3NCAxMUIxOworRDJERjtEMkRGOzExMTAgMTE3NCAxMUIyO0QyREY7MTExMCAxMTc0IDExQjI7CitEMkUwO0QyRTA7MTExMCAxMTc0IDExQjM7RDJFMDsxMTEwIDExNzQgMTFCMzsKK0QyRTE7RDJFMTsxMTEwIDExNzQgMTFCNDtEMkUxOzExMTAgMTE3NCAxMUI0OworRDJFMjtEMkUyOzExMTAgMTE3NCAxMUI1O0QyRTI7MTExMCAxMTc0IDExQjU7CitEMkUzO0QyRTM7MTExMCAxMTc0IDExQjY7RDJFMzsxMTEwIDExNzQgMTFCNjsKK0QyRTQ7RDJFNDsxMTEwIDExNzQgMTFCNztEMkU0OzExMTAgMTE3NCAxMUI3OworRDJFNTtEMkU1OzExMTAgMTE3NCAxMUI4O0QyRTU7MTExMCAxMTc0IDExQjg7CitEMkU2O0QyRTY7MTExMCAxMTc0IDExQjk7RDJFNjsxMTEwIDExNzQgMTFCOTsKK0QyRTc7RDJFNzsxMTEwIDExNzQgMTFCQTtEMkU3OzExMTAgMTE3NCAxMUJBOworRDJFODtEMkU4OzExMTAgMTE3NCAxMUJCO0QyRTg7MTExMCAxMTc0IDExQkI7CitEMkU5O0QyRTk7MTExMCAxMTc0IDExQkM7RDJFOTsxMTEwIDExNzQgMTFCQzsKK0QyRUE7RDJFQTsxMTEwIDExNzQgMTFCRDtEMkVBOzExMTAgMTE3NCAxMUJEOworRDJFQjtEMkVCOzExMTAgMTE3NCAxMUJFO0QyRUI7MTExMCAxMTc0IDExQkU7CitEMkVDO0QyRUM7MTExMCAxMTc0IDExQkY7RDJFQzsxMTEwIDExNzQgMTFCRjsKK0QyRUQ7RDJFRDsxMTEwIDExNzQgMTFDMDtEMkVEOzExMTAgMTE3NCAxMUMwOworRDJFRTtEMkVFOzExMTAgMTE3NCAxMUMxO0QyRUU7MTExMCAxMTc0IDExQzE7CitEMkVGO0QyRUY7MTExMCAxMTc0IDExQzI7RDJFRjsxMTEwIDExNzQgMTFDMjsKK0QyRjA7RDJGMDsxMTEwIDExNzU7RDJGMDsxMTEwIDExNzU7CitEMkYxO0QyRjE7MTExMCAxMTc1IDExQTg7RDJGMTsxMTEwIDExNzUgMTFBODsKK0QyRjI7RDJGMjsxMTEwIDExNzUgMTFBOTtEMkYyOzExMTAgMTE3NSAxMUE5OworRDJGMztEMkYzOzExMTAgMTE3NSAxMUFBO0QyRjM7MTExMCAxMTc1IDExQUE7CitEMkY0O0QyRjQ7MTExMCAxMTc1IDExQUI7RDJGNDsxMTEwIDExNzUgMTFBQjsKK0QyRjU7RDJGNTsxMTEwIDExNzUgMTFBQztEMkY1OzExMTAgMTE3NSAxMUFDOworRDJGNjtEMkY2OzExMTAgMTE3NSAxMUFEO0QyRjY7MTExMCAxMTc1IDExQUQ7CitEMkY3O0QyRjc7MTExMCAxMTc1IDExQUU7RDJGNzsxMTEwIDExNzUgMTFBRTsKK0QyRjg7RDJGODsxMTEwIDExNzUgMTFBRjtEMkY4OzExMTAgMTE3NSAxMUFGOworRDJGOTtEMkY5OzExMTAgMTE3NSAxMUIwO0QyRjk7MTExMCAxMTc1IDExQjA7CitEMkZBO0QyRkE7MTExMCAxMTc1IDExQjE7RDJGQTsxMTEwIDExNzUgMTFCMTsKK0QyRkI7RDJGQjsxMTEwIDExNzUgMTFCMjtEMkZCOzExMTAgMTE3NSAxMUIyOworRDJGQztEMkZDOzExMTAgMTE3NSAxMUIzO0QyRkM7MTExMCAxMTc1IDExQjM7CitEMkZEO0QyRkQ7MTExMCAxMTc1IDExQjQ7RDJGRDsxMTEwIDExNzUgMTFCNDsKK0QyRkU7RDJGRTsxMTEwIDExNzUgMTFCNTtEMkZFOzExMTAgMTE3NSAxMUI1OworRDJGRjtEMkZGOzExMTAgMTE3NSAxMUI2O0QyRkY7MTExMCAxMTc1IDExQjY7CitEMzAwO0QzMDA7MTExMCAxMTc1IDExQjc7RDMwMDsxMTEwIDExNzUgMTFCNzsKK0QzMDE7RDMwMTsxMTEwIDExNzUgMTFCODtEMzAxOzExMTAgMTE3NSAxMUI4OworRDMwMjtEMzAyOzExMTAgMTE3NSAxMUI5O0QzMDI7MTExMCAxMTc1IDExQjk7CitEMzAzO0QzMDM7MTExMCAxMTc1IDExQkE7RDMwMzsxMTEwIDExNzUgMTFCQTsKK0QzMDQ7RDMwNDsxMTEwIDExNzUgMTFCQjtEMzA0OzExMTAgMTE3NSAxMUJCOworRDMwNTtEMzA1OzExMTAgMTE3NSAxMUJDO0QzMDU7MTExMCAxMTc1IDExQkM7CitEMzA2O0QzMDY7MTExMCAxMTc1IDExQkQ7RDMwNjsxMTEwIDExNzUgMTFCRDsKK0QzMDc7RDMwNzsxMTEwIDExNzUgMTFCRTtEMzA3OzExMTAgMTE3NSAxMUJFOworRDMwODtEMzA4OzExMTAgMTE3NSAxMUJGO0QzMDg7MTExMCAxMTc1IDExQkY7CitEMzA5O0QzMDk7MTExMCAxMTc1IDExQzA7RDMwOTsxMTEwIDExNzUgMTFDMDsKK0QzMEE7RDMwQTsxMTEwIDExNzUgMTFDMTtEMzBBOzExMTAgMTE3NSAxMUMxOworRDMwQjtEMzBCOzExMTAgMTE3NSAxMUMyO0QzMEI7MTExMCAxMTc1IDExQzI7CitEMzBDO0QzMEM7MTExMSAxMTYxO0QzMEM7MTExMSAxMTYxOworRDMwRDtEMzBEOzExMTEgMTE2MSAxMUE4O0QzMEQ7MTExMSAxMTYxIDExQTg7CitEMzBFO0QzMEU7MTExMSAxMTYxIDExQTk7RDMwRTsxMTExIDExNjEgMTFBOTsKK0QzMEY7RDMwRjsxMTExIDExNjEgMTFBQTtEMzBGOzExMTEgMTE2MSAxMUFBOworRDMxMDtEMzEwOzExMTEgMTE2MSAxMUFCO0QzMTA7MTExMSAxMTYxIDExQUI7CitEMzExO0QzMTE7MTExMSAxMTYxIDExQUM7RDMxMTsxMTExIDExNjEgMTFBQzsKK0QzMTI7RDMxMjsxMTExIDExNjEgMTFBRDtEMzEyOzExMTEgMTE2MSAxMUFEOworRDMxMztEMzEzOzExMTEgMTE2MSAxMUFFO0QzMTM7MTExMSAxMTYxIDExQUU7CitEMzE0O0QzMTQ7MTExMSAxMTYxIDExQUY7RDMxNDsxMTExIDExNjEgMTFBRjsKK0QzMTU7RDMxNTsxMTExIDExNjEgMTFCMDtEMzE1OzExMTEgMTE2MSAxMUIwOworRDMxNjtEMzE2OzExMTEgMTE2MSAxMUIxO0QzMTY7MTExMSAxMTYxIDExQjE7CitEMzE3O0QzMTc7MTExMSAxMTYxIDExQjI7RDMxNzsxMTExIDExNjEgMTFCMjsKK0QzMTg7RDMxODsxMTExIDExNjEgMTFCMztEMzE4OzExMTEgMTE2MSAxMUIzOworRDMxOTtEMzE5OzExMTEgMTE2MSAxMUI0O0QzMTk7MTExMSAxMTYxIDExQjQ7CitEMzFBO0QzMUE7MTExMSAxMTYxIDExQjU7RDMxQTsxMTExIDExNjEgMTFCNTsKK0QzMUI7RDMxQjsxMTExIDExNjEgMTFCNjtEMzFCOzExMTEgMTE2MSAxMUI2OworRDMxQztEMzFDOzExMTEgMTE2MSAxMUI3O0QzMUM7MTExMSAxMTYxIDExQjc7CitEMzFEO0QzMUQ7MTExMSAxMTYxIDExQjg7RDMxRDsxMTExIDExNjEgMTFCODsKK0QzMUU7RDMxRTsxMTExIDExNjEgMTFCOTtEMzFFOzExMTEgMTE2MSAxMUI5OworRDMxRjtEMzFGOzExMTEgMTE2MSAxMUJBO0QzMUY7MTExMSAxMTYxIDExQkE7CitEMzIwO0QzMjA7MTExMSAxMTYxIDExQkI7RDMyMDsxMTExIDExNjEgMTFCQjsKK0QzMjE7RDMyMTsxMTExIDExNjEgMTFCQztEMzIxOzExMTEgMTE2MSAxMUJDOworRDMyMjtEMzIyOzExMTEgMTE2MSAxMUJEO0QzMjI7MTExMSAxMTYxIDExQkQ7CitEMzIzO0QzMjM7MTExMSAxMTYxIDExQkU7RDMyMzsxMTExIDExNjEgMTFCRTsKK0QzMjQ7RDMyNDsxMTExIDExNjEgMTFCRjtEMzI0OzExMTEgMTE2MSAxMUJGOworRDMyNTtEMzI1OzExMTEgMTE2MSAxMUMwO0QzMjU7MTExMSAxMTYxIDExQzA7CitEMzI2O0QzMjY7MTExMSAxMTYxIDExQzE7RDMyNjsxMTExIDExNjEgMTFDMTsKK0QzMjc7RDMyNzsxMTExIDExNjEgMTFDMjtEMzI3OzExMTEgMTE2MSAxMUMyOworRDMyODtEMzI4OzExMTEgMTE2MjtEMzI4OzExMTEgMTE2MjsKK0QzMjk7RDMyOTsxMTExIDExNjIgMTFBODtEMzI5OzExMTEgMTE2MiAxMUE4OworRDMyQTtEMzJBOzExMTEgMTE2MiAxMUE5O0QzMkE7MTExMSAxMTYyIDExQTk7CitEMzJCO0QzMkI7MTExMSAxMTYyIDExQUE7RDMyQjsxMTExIDExNjIgMTFBQTsKK0QzMkM7RDMyQzsxMTExIDExNjIgMTFBQjtEMzJDOzExMTEgMTE2MiAxMUFCOworRDMyRDtEMzJEOzExMTEgMTE2MiAxMUFDO0QzMkQ7MTExMSAxMTYyIDExQUM7CitEMzJFO0QzMkU7MTExMSAxMTYyIDExQUQ7RDMyRTsxMTExIDExNjIgMTFBRDsKK0QzMkY7RDMyRjsxMTExIDExNjIgMTFBRTtEMzJGOzExMTEgMTE2MiAxMUFFOworRDMzMDtEMzMwOzExMTEgMTE2MiAxMUFGO0QzMzA7MTExMSAxMTYyIDExQUY7CitEMzMxO0QzMzE7MTExMSAxMTYyIDExQjA7RDMzMTsxMTExIDExNjIgMTFCMDsKK0QzMzI7RDMzMjsxMTExIDExNjIgMTFCMTtEMzMyOzExMTEgMTE2MiAxMUIxOworRDMzMztEMzMzOzExMTEgMTE2MiAxMUIyO0QzMzM7MTExMSAxMTYyIDExQjI7CitEMzM0O0QzMzQ7MTExMSAxMTYyIDExQjM7RDMzNDsxMTExIDExNjIgMTFCMzsKK0QzMzU7RDMzNTsxMTExIDExNjIgMTFCNDtEMzM1OzExMTEgMTE2MiAxMUI0OworRDMzNjtEMzM2OzExMTEgMTE2MiAxMUI1O0QzMzY7MTExMSAxMTYyIDExQjU7CitEMzM3O0QzMzc7MTExMSAxMTYyIDExQjY7RDMzNzsxMTExIDExNjIgMTFCNjsKK0QzMzg7RDMzODsxMTExIDExNjIgMTFCNztEMzM4OzExMTEgMTE2MiAxMUI3OworRDMzOTtEMzM5OzExMTEgMTE2MiAxMUI4O0QzMzk7MTExMSAxMTYyIDExQjg7CitEMzNBO0QzM0E7MTExMSAxMTYyIDExQjk7RDMzQTsxMTExIDExNjIgMTFCOTsKK0QzM0I7RDMzQjsxMTExIDExNjIgMTFCQTtEMzNCOzExMTEgMTE2MiAxMUJBOworRDMzQztEMzNDOzExMTEgMTE2MiAxMUJCO0QzM0M7MTExMSAxMTYyIDExQkI7CitEMzNEO0QzM0Q7MTExMSAxMTYyIDExQkM7RDMzRDsxMTExIDExNjIgMTFCQzsKK0QzM0U7RDMzRTsxMTExIDExNjIgMTFCRDtEMzNFOzExMTEgMTE2MiAxMUJEOworRDMzRjtEMzNGOzExMTEgMTE2MiAxMUJFO0QzM0Y7MTExMSAxMTYyIDExQkU7CitEMzQwO0QzNDA7MTExMSAxMTYyIDExQkY7RDM0MDsxMTExIDExNjIgMTFCRjsKK0QzNDE7RDM0MTsxMTExIDExNjIgMTFDMDtEMzQxOzExMTEgMTE2MiAxMUMwOworRDM0MjtEMzQyOzExMTEgMTE2MiAxMUMxO0QzNDI7MTExMSAxMTYyIDExQzE7CitEMzQzO0QzNDM7MTExMSAxMTYyIDExQzI7RDM0MzsxMTExIDExNjIgMTFDMjsKK0QzNDQ7RDM0NDsxMTExIDExNjM7RDM0NDsxMTExIDExNjM7CitEMzQ1O0QzNDU7MTExMSAxMTYzIDExQTg7RDM0NTsxMTExIDExNjMgMTFBODsKK0QzNDY7RDM0NjsxMTExIDExNjMgMTFBOTtEMzQ2OzExMTEgMTE2MyAxMUE5OworRDM0NztEMzQ3OzExMTEgMTE2MyAxMUFBO0QzNDc7MTExMSAxMTYzIDExQUE7CitEMzQ4O0QzNDg7MTExMSAxMTYzIDExQUI7RDM0ODsxMTExIDExNjMgMTFBQjsKK0QzNDk7RDM0OTsxMTExIDExNjMgMTFBQztEMzQ5OzExMTEgMTE2MyAxMUFDOworRDM0QTtEMzRBOzExMTEgMTE2MyAxMUFEO0QzNEE7MTExMSAxMTYzIDExQUQ7CitEMzRCO0QzNEI7MTExMSAxMTYzIDExQUU7RDM0QjsxMTExIDExNjMgMTFBRTsKK0QzNEM7RDM0QzsxMTExIDExNjMgMTFBRjtEMzRDOzExMTEgMTE2MyAxMUFGOworRDM0RDtEMzREOzExMTEgMTE2MyAxMUIwO0QzNEQ7MTExMSAxMTYzIDExQjA7CitEMzRFO0QzNEU7MTExMSAxMTYzIDExQjE7RDM0RTsxMTExIDExNjMgMTFCMTsKK0QzNEY7RDM0RjsxMTExIDExNjMgMTFCMjtEMzRGOzExMTEgMTE2MyAxMUIyOworRDM1MDtEMzUwOzExMTEgMTE2MyAxMUIzO0QzNTA7MTExMSAxMTYzIDExQjM7CitEMzUxO0QzNTE7MTExMSAxMTYzIDExQjQ7RDM1MTsxMTExIDExNjMgMTFCNDsKK0QzNTI7RDM1MjsxMTExIDExNjMgMTFCNTtEMzUyOzExMTEgMTE2MyAxMUI1OworRDM1MztEMzUzOzExMTEgMTE2MyAxMUI2O0QzNTM7MTExMSAxMTYzIDExQjY7CitEMzU0O0QzNTQ7MTExMSAxMTYzIDExQjc7RDM1NDsxMTExIDExNjMgMTFCNzsKK0QzNTU7RDM1NTsxMTExIDExNjMgMTFCODtEMzU1OzExMTEgMTE2MyAxMUI4OworRDM1NjtEMzU2OzExMTEgMTE2MyAxMUI5O0QzNTY7MTExMSAxMTYzIDExQjk7CitEMzU3O0QzNTc7MTExMSAxMTYzIDExQkE7RDM1NzsxMTExIDExNjMgMTFCQTsKK0QzNTg7RDM1ODsxMTExIDExNjMgMTFCQjtEMzU4OzExMTEgMTE2MyAxMUJCOworRDM1OTtEMzU5OzExMTEgMTE2MyAxMUJDO0QzNTk7MTExMSAxMTYzIDExQkM7CitEMzVBO0QzNUE7MTExMSAxMTYzIDExQkQ7RDM1QTsxMTExIDExNjMgMTFCRDsKK0QzNUI7RDM1QjsxMTExIDExNjMgMTFCRTtEMzVCOzExMTEgMTE2MyAxMUJFOworRDM1QztEMzVDOzExMTEgMTE2MyAxMUJGO0QzNUM7MTExMSAxMTYzIDExQkY7CitEMzVEO0QzNUQ7MTExMSAxMTYzIDExQzA7RDM1RDsxMTExIDExNjMgMTFDMDsKK0QzNUU7RDM1RTsxMTExIDExNjMgMTFDMTtEMzVFOzExMTEgMTE2MyAxMUMxOworRDM1RjtEMzVGOzExMTEgMTE2MyAxMUMyO0QzNUY7MTExMSAxMTYzIDExQzI7CitEMzYwO0QzNjA7MTExMSAxMTY0O0QzNjA7MTExMSAxMTY0OworRDM2MTtEMzYxOzExMTEgMTE2NCAxMUE4O0QzNjE7MTExMSAxMTY0IDExQTg7CitEMzYyO0QzNjI7MTExMSAxMTY0IDExQTk7RDM2MjsxMTExIDExNjQgMTFBOTsKK0QzNjM7RDM2MzsxMTExIDExNjQgMTFBQTtEMzYzOzExMTEgMTE2NCAxMUFBOworRDM2NDtEMzY0OzExMTEgMTE2NCAxMUFCO0QzNjQ7MTExMSAxMTY0IDExQUI7CitEMzY1O0QzNjU7MTExMSAxMTY0IDExQUM7RDM2NTsxMTExIDExNjQgMTFBQzsKK0QzNjY7RDM2NjsxMTExIDExNjQgMTFBRDtEMzY2OzExMTEgMTE2NCAxMUFEOworRDM2NztEMzY3OzExMTEgMTE2NCAxMUFFO0QzNjc7MTExMSAxMTY0IDExQUU7CitEMzY4O0QzNjg7MTExMSAxMTY0IDExQUY7RDM2ODsxMTExIDExNjQgMTFBRjsKK0QzNjk7RDM2OTsxMTExIDExNjQgMTFCMDtEMzY5OzExMTEgMTE2NCAxMUIwOworRDM2QTtEMzZBOzExMTEgMTE2NCAxMUIxO0QzNkE7MTExMSAxMTY0IDExQjE7CitEMzZCO0QzNkI7MTExMSAxMTY0IDExQjI7RDM2QjsxMTExIDExNjQgMTFCMjsKK0QzNkM7RDM2QzsxMTExIDExNjQgMTFCMztEMzZDOzExMTEgMTE2NCAxMUIzOworRDM2RDtEMzZEOzExMTEgMTE2NCAxMUI0O0QzNkQ7MTExMSAxMTY0IDExQjQ7CitEMzZFO0QzNkU7MTExMSAxMTY0IDExQjU7RDM2RTsxMTExIDExNjQgMTFCNTsKK0QzNkY7RDM2RjsxMTExIDExNjQgMTFCNjtEMzZGOzExMTEgMTE2NCAxMUI2OworRDM3MDtEMzcwOzExMTEgMTE2NCAxMUI3O0QzNzA7MTExMSAxMTY0IDExQjc7CitEMzcxO0QzNzE7MTExMSAxMTY0IDExQjg7RDM3MTsxMTExIDExNjQgMTFCODsKK0QzNzI7RDM3MjsxMTExIDExNjQgMTFCOTtEMzcyOzExMTEgMTE2NCAxMUI5OworRDM3MztEMzczOzExMTEgMTE2NCAxMUJBO0QzNzM7MTExMSAxMTY0IDExQkE7CitEMzc0O0QzNzQ7MTExMSAxMTY0IDExQkI7RDM3NDsxMTExIDExNjQgMTFCQjsKK0QzNzU7RDM3NTsxMTExIDExNjQgMTFCQztEMzc1OzExMTEgMTE2NCAxMUJDOworRDM3NjtEMzc2OzExMTEgMTE2NCAxMUJEO0QzNzY7MTExMSAxMTY0IDExQkQ7CitEMzc3O0QzNzc7MTExMSAxMTY0IDExQkU7RDM3NzsxMTExIDExNjQgMTFCRTsKK0QzNzg7RDM3ODsxMTExIDExNjQgMTFCRjtEMzc4OzExMTEgMTE2NCAxMUJGOworRDM3OTtEMzc5OzExMTEgMTE2NCAxMUMwO0QzNzk7MTExMSAxMTY0IDExQzA7CitEMzdBO0QzN0E7MTExMSAxMTY0IDExQzE7RDM3QTsxMTExIDExNjQgMTFDMTsKK0QzN0I7RDM3QjsxMTExIDExNjQgMTFDMjtEMzdCOzExMTEgMTE2NCAxMUMyOworRDM3QztEMzdDOzExMTEgMTE2NTtEMzdDOzExMTEgMTE2NTsKK0QzN0Q7RDM3RDsxMTExIDExNjUgMTFBODtEMzdEOzExMTEgMTE2NSAxMUE4OworRDM3RTtEMzdFOzExMTEgMTE2NSAxMUE5O0QzN0U7MTExMSAxMTY1IDExQTk7CitEMzdGO0QzN0Y7MTExMSAxMTY1IDExQUE7RDM3RjsxMTExIDExNjUgMTFBQTsKK0QzODA7RDM4MDsxMTExIDExNjUgMTFBQjtEMzgwOzExMTEgMTE2NSAxMUFCOworRDM4MTtEMzgxOzExMTEgMTE2NSAxMUFDO0QzODE7MTExMSAxMTY1IDExQUM7CitEMzgyO0QzODI7MTExMSAxMTY1IDExQUQ7RDM4MjsxMTExIDExNjUgMTFBRDsKK0QzODM7RDM4MzsxMTExIDExNjUgMTFBRTtEMzgzOzExMTEgMTE2NSAxMUFFOworRDM4NDtEMzg0OzExMTEgMTE2NSAxMUFGO0QzODQ7MTExMSAxMTY1IDExQUY7CitEMzg1O0QzODU7MTExMSAxMTY1IDExQjA7RDM4NTsxMTExIDExNjUgMTFCMDsKK0QzODY7RDM4NjsxMTExIDExNjUgMTFCMTtEMzg2OzExMTEgMTE2NSAxMUIxOworRDM4NztEMzg3OzExMTEgMTE2NSAxMUIyO0QzODc7MTExMSAxMTY1IDExQjI7CitEMzg4O0QzODg7MTExMSAxMTY1IDExQjM7RDM4ODsxMTExIDExNjUgMTFCMzsKK0QzODk7RDM4OTsxMTExIDExNjUgMTFCNDtEMzg5OzExMTEgMTE2NSAxMUI0OworRDM4QTtEMzhBOzExMTEgMTE2NSAxMUI1O0QzOEE7MTExMSAxMTY1IDExQjU7CitEMzhCO0QzOEI7MTExMSAxMTY1IDExQjY7RDM4QjsxMTExIDExNjUgMTFCNjsKK0QzOEM7RDM4QzsxMTExIDExNjUgMTFCNztEMzhDOzExMTEgMTE2NSAxMUI3OworRDM4RDtEMzhEOzExMTEgMTE2NSAxMUI4O0QzOEQ7MTExMSAxMTY1IDExQjg7CitEMzhFO0QzOEU7MTExMSAxMTY1IDExQjk7RDM4RTsxMTExIDExNjUgMTFCOTsKK0QzOEY7RDM4RjsxMTExIDExNjUgMTFCQTtEMzhGOzExMTEgMTE2NSAxMUJBOworRDM5MDtEMzkwOzExMTEgMTE2NSAxMUJCO0QzOTA7MTExMSAxMTY1IDExQkI7CitEMzkxO0QzOTE7MTExMSAxMTY1IDExQkM7RDM5MTsxMTExIDExNjUgMTFCQzsKK0QzOTI7RDM5MjsxMTExIDExNjUgMTFCRDtEMzkyOzExMTEgMTE2NSAxMUJEOworRDM5MztEMzkzOzExMTEgMTE2NSAxMUJFO0QzOTM7MTExMSAxMTY1IDExQkU7CitEMzk0O0QzOTQ7MTExMSAxMTY1IDExQkY7RDM5NDsxMTExIDExNjUgMTFCRjsKK0QzOTU7RDM5NTsxMTExIDExNjUgMTFDMDtEMzk1OzExMTEgMTE2NSAxMUMwOworRDM5NjtEMzk2OzExMTEgMTE2NSAxMUMxO0QzOTY7MTExMSAxMTY1IDExQzE7CitEMzk3O0QzOTc7MTExMSAxMTY1IDExQzI7RDM5NzsxMTExIDExNjUgMTFDMjsKK0QzOTg7RDM5ODsxMTExIDExNjY7RDM5ODsxMTExIDExNjY7CitEMzk5O0QzOTk7MTExMSAxMTY2IDExQTg7RDM5OTsxMTExIDExNjYgMTFBODsKK0QzOUE7RDM5QTsxMTExIDExNjYgMTFBOTtEMzlBOzExMTEgMTE2NiAxMUE5OworRDM5QjtEMzlCOzExMTEgMTE2NiAxMUFBO0QzOUI7MTExMSAxMTY2IDExQUE7CitEMzlDO0QzOUM7MTExMSAxMTY2IDExQUI7RDM5QzsxMTExIDExNjYgMTFBQjsKK0QzOUQ7RDM5RDsxMTExIDExNjYgMTFBQztEMzlEOzExMTEgMTE2NiAxMUFDOworRDM5RTtEMzlFOzExMTEgMTE2NiAxMUFEO0QzOUU7MTExMSAxMTY2IDExQUQ7CitEMzlGO0QzOUY7MTExMSAxMTY2IDExQUU7RDM5RjsxMTExIDExNjYgMTFBRTsKK0QzQTA7RDNBMDsxMTExIDExNjYgMTFBRjtEM0EwOzExMTEgMTE2NiAxMUFGOworRDNBMTtEM0ExOzExMTEgMTE2NiAxMUIwO0QzQTE7MTExMSAxMTY2IDExQjA7CitEM0EyO0QzQTI7MTExMSAxMTY2IDExQjE7RDNBMjsxMTExIDExNjYgMTFCMTsKK0QzQTM7RDNBMzsxMTExIDExNjYgMTFCMjtEM0EzOzExMTEgMTE2NiAxMUIyOworRDNBNDtEM0E0OzExMTEgMTE2NiAxMUIzO0QzQTQ7MTExMSAxMTY2IDExQjM7CitEM0E1O0QzQTU7MTExMSAxMTY2IDExQjQ7RDNBNTsxMTExIDExNjYgMTFCNDsKK0QzQTY7RDNBNjsxMTExIDExNjYgMTFCNTtEM0E2OzExMTEgMTE2NiAxMUI1OworRDNBNztEM0E3OzExMTEgMTE2NiAxMUI2O0QzQTc7MTExMSAxMTY2IDExQjY7CitEM0E4O0QzQTg7MTExMSAxMTY2IDExQjc7RDNBODsxMTExIDExNjYgMTFCNzsKK0QzQTk7RDNBOTsxMTExIDExNjYgMTFCODtEM0E5OzExMTEgMTE2NiAxMUI4OworRDNBQTtEM0FBOzExMTEgMTE2NiAxMUI5O0QzQUE7MTExMSAxMTY2IDExQjk7CitEM0FCO0QzQUI7MTExMSAxMTY2IDExQkE7RDNBQjsxMTExIDExNjYgMTFCQTsKK0QzQUM7RDNBQzsxMTExIDExNjYgMTFCQjtEM0FDOzExMTEgMTE2NiAxMUJCOworRDNBRDtEM0FEOzExMTEgMTE2NiAxMUJDO0QzQUQ7MTExMSAxMTY2IDExQkM7CitEM0FFO0QzQUU7MTExMSAxMTY2IDExQkQ7RDNBRTsxMTExIDExNjYgMTFCRDsKK0QzQUY7RDNBRjsxMTExIDExNjYgMTFCRTtEM0FGOzExMTEgMTE2NiAxMUJFOworRDNCMDtEM0IwOzExMTEgMTE2NiAxMUJGO0QzQjA7MTExMSAxMTY2IDExQkY7CitEM0IxO0QzQjE7MTExMSAxMTY2IDExQzA7RDNCMTsxMTExIDExNjYgMTFDMDsKK0QzQjI7RDNCMjsxMTExIDExNjYgMTFDMTtEM0IyOzExMTEgMTE2NiAxMUMxOworRDNCMztEM0IzOzExMTEgMTE2NiAxMUMyO0QzQjM7MTExMSAxMTY2IDExQzI7CitEM0I0O0QzQjQ7MTExMSAxMTY3O0QzQjQ7MTExMSAxMTY3OworRDNCNTtEM0I1OzExMTEgMTE2NyAxMUE4O0QzQjU7MTExMSAxMTY3IDExQTg7CitEM0I2O0QzQjY7MTExMSAxMTY3IDExQTk7RDNCNjsxMTExIDExNjcgMTFBOTsKK0QzQjc7RDNCNzsxMTExIDExNjcgMTFBQTtEM0I3OzExMTEgMTE2NyAxMUFBOworRDNCODtEM0I4OzExMTEgMTE2NyAxMUFCO0QzQjg7MTExMSAxMTY3IDExQUI7CitEM0I5O0QzQjk7MTExMSAxMTY3IDExQUM7RDNCOTsxMTExIDExNjcgMTFBQzsKK0QzQkE7RDNCQTsxMTExIDExNjcgMTFBRDtEM0JBOzExMTEgMTE2NyAxMUFEOworRDNCQjtEM0JCOzExMTEgMTE2NyAxMUFFO0QzQkI7MTExMSAxMTY3IDExQUU7CitEM0JDO0QzQkM7MTExMSAxMTY3IDExQUY7RDNCQzsxMTExIDExNjcgMTFBRjsKK0QzQkQ7RDNCRDsxMTExIDExNjcgMTFCMDtEM0JEOzExMTEgMTE2NyAxMUIwOworRDNCRTtEM0JFOzExMTEgMTE2NyAxMUIxO0QzQkU7MTExMSAxMTY3IDExQjE7CitEM0JGO0QzQkY7MTExMSAxMTY3IDExQjI7RDNCRjsxMTExIDExNjcgMTFCMjsKK0QzQzA7RDNDMDsxMTExIDExNjcgMTFCMztEM0MwOzExMTEgMTE2NyAxMUIzOworRDNDMTtEM0MxOzExMTEgMTE2NyAxMUI0O0QzQzE7MTExMSAxMTY3IDExQjQ7CitEM0MyO0QzQzI7MTExMSAxMTY3IDExQjU7RDNDMjsxMTExIDExNjcgMTFCNTsKK0QzQzM7RDNDMzsxMTExIDExNjcgMTFCNjtEM0MzOzExMTEgMTE2NyAxMUI2OworRDNDNDtEM0M0OzExMTEgMTE2NyAxMUI3O0QzQzQ7MTExMSAxMTY3IDExQjc7CitEM0M1O0QzQzU7MTExMSAxMTY3IDExQjg7RDNDNTsxMTExIDExNjcgMTFCODsKK0QzQzY7RDNDNjsxMTExIDExNjcgMTFCOTtEM0M2OzExMTEgMTE2NyAxMUI5OworRDNDNztEM0M3OzExMTEgMTE2NyAxMUJBO0QzQzc7MTExMSAxMTY3IDExQkE7CitEM0M4O0QzQzg7MTExMSAxMTY3IDExQkI7RDNDODsxMTExIDExNjcgMTFCQjsKK0QzQzk7RDNDOTsxMTExIDExNjcgMTFCQztEM0M5OzExMTEgMTE2NyAxMUJDOworRDNDQTtEM0NBOzExMTEgMTE2NyAxMUJEO0QzQ0E7MTExMSAxMTY3IDExQkQ7CitEM0NCO0QzQ0I7MTExMSAxMTY3IDExQkU7RDNDQjsxMTExIDExNjcgMTFCRTsKK0QzQ0M7RDNDQzsxMTExIDExNjcgMTFCRjtEM0NDOzExMTEgMTE2NyAxMUJGOworRDNDRDtEM0NEOzExMTEgMTE2NyAxMUMwO0QzQ0Q7MTExMSAxMTY3IDExQzA7CitEM0NFO0QzQ0U7MTExMSAxMTY3IDExQzE7RDNDRTsxMTExIDExNjcgMTFDMTsKK0QzQ0Y7RDNDRjsxMTExIDExNjcgMTFDMjtEM0NGOzExMTEgMTE2NyAxMUMyOworRDNEMDtEM0QwOzExMTEgMTE2ODtEM0QwOzExMTEgMTE2ODsKK0QzRDE7RDNEMTsxMTExIDExNjggMTFBODtEM0QxOzExMTEgMTE2OCAxMUE4OworRDNEMjtEM0QyOzExMTEgMTE2OCAxMUE5O0QzRDI7MTExMSAxMTY4IDExQTk7CitEM0QzO0QzRDM7MTExMSAxMTY4IDExQUE7RDNEMzsxMTExIDExNjggMTFBQTsKK0QzRDQ7RDNENDsxMTExIDExNjggMTFBQjtEM0Q0OzExMTEgMTE2OCAxMUFCOworRDNENTtEM0Q1OzExMTEgMTE2OCAxMUFDO0QzRDU7MTExMSAxMTY4IDExQUM7CitEM0Q2O0QzRDY7MTExMSAxMTY4IDExQUQ7RDNENjsxMTExIDExNjggMTFBRDsKK0QzRDc7RDNENzsxMTExIDExNjggMTFBRTtEM0Q3OzExMTEgMTE2OCAxMUFFOworRDNEODtEM0Q4OzExMTEgMTE2OCAxMUFGO0QzRDg7MTExMSAxMTY4IDExQUY7CitEM0Q5O0QzRDk7MTExMSAxMTY4IDExQjA7RDNEOTsxMTExIDExNjggMTFCMDsKK0QzREE7RDNEQTsxMTExIDExNjggMTFCMTtEM0RBOzExMTEgMTE2OCAxMUIxOworRDNEQjtEM0RCOzExMTEgMTE2OCAxMUIyO0QzREI7MTExMSAxMTY4IDExQjI7CitEM0RDO0QzREM7MTExMSAxMTY4IDExQjM7RDNEQzsxMTExIDExNjggMTFCMzsKK0QzREQ7RDNERDsxMTExIDExNjggMTFCNDtEM0REOzExMTEgMTE2OCAxMUI0OworRDNERTtEM0RFOzExMTEgMTE2OCAxMUI1O0QzREU7MTExMSAxMTY4IDExQjU7CitEM0RGO0QzREY7MTExMSAxMTY4IDExQjY7RDNERjsxMTExIDExNjggMTFCNjsKK0QzRTA7RDNFMDsxMTExIDExNjggMTFCNztEM0UwOzExMTEgMTE2OCAxMUI3OworRDNFMTtEM0UxOzExMTEgMTE2OCAxMUI4O0QzRTE7MTExMSAxMTY4IDExQjg7CitEM0UyO0QzRTI7MTExMSAxMTY4IDExQjk7RDNFMjsxMTExIDExNjggMTFCOTsKK0QzRTM7RDNFMzsxMTExIDExNjggMTFCQTtEM0UzOzExMTEgMTE2OCAxMUJBOworRDNFNDtEM0U0OzExMTEgMTE2OCAxMUJCO0QzRTQ7MTExMSAxMTY4IDExQkI7CitEM0U1O0QzRTU7MTExMSAxMTY4IDExQkM7RDNFNTsxMTExIDExNjggMTFCQzsKK0QzRTY7RDNFNjsxMTExIDExNjggMTFCRDtEM0U2OzExMTEgMTE2OCAxMUJEOworRDNFNztEM0U3OzExMTEgMTE2OCAxMUJFO0QzRTc7MTExMSAxMTY4IDExQkU7CitEM0U4O0QzRTg7MTExMSAxMTY4IDExQkY7RDNFODsxMTExIDExNjggMTFCRjsKK0QzRTk7RDNFOTsxMTExIDExNjggMTFDMDtEM0U5OzExMTEgMTE2OCAxMUMwOworRDNFQTtEM0VBOzExMTEgMTE2OCAxMUMxO0QzRUE7MTExMSAxMTY4IDExQzE7CitEM0VCO0QzRUI7MTExMSAxMTY4IDExQzI7RDNFQjsxMTExIDExNjggMTFDMjsKK0QzRUM7RDNFQzsxMTExIDExNjk7RDNFQzsxMTExIDExNjk7CitEM0VEO0QzRUQ7MTExMSAxMTY5IDExQTg7RDNFRDsxMTExIDExNjkgMTFBODsKK0QzRUU7RDNFRTsxMTExIDExNjkgMTFBOTtEM0VFOzExMTEgMTE2OSAxMUE5OworRDNFRjtEM0VGOzExMTEgMTE2OSAxMUFBO0QzRUY7MTExMSAxMTY5IDExQUE7CitEM0YwO0QzRjA7MTExMSAxMTY5IDExQUI7RDNGMDsxMTExIDExNjkgMTFBQjsKK0QzRjE7RDNGMTsxMTExIDExNjkgMTFBQztEM0YxOzExMTEgMTE2OSAxMUFDOworRDNGMjtEM0YyOzExMTEgMTE2OSAxMUFEO0QzRjI7MTExMSAxMTY5IDExQUQ7CitEM0YzO0QzRjM7MTExMSAxMTY5IDExQUU7RDNGMzsxMTExIDExNjkgMTFBRTsKK0QzRjQ7RDNGNDsxMTExIDExNjkgMTFBRjtEM0Y0OzExMTEgMTE2OSAxMUFGOworRDNGNTtEM0Y1OzExMTEgMTE2OSAxMUIwO0QzRjU7MTExMSAxMTY5IDExQjA7CitEM0Y2O0QzRjY7MTExMSAxMTY5IDExQjE7RDNGNjsxMTExIDExNjkgMTFCMTsKK0QzRjc7RDNGNzsxMTExIDExNjkgMTFCMjtEM0Y3OzExMTEgMTE2OSAxMUIyOworRDNGODtEM0Y4OzExMTEgMTE2OSAxMUIzO0QzRjg7MTExMSAxMTY5IDExQjM7CitEM0Y5O0QzRjk7MTExMSAxMTY5IDExQjQ7RDNGOTsxMTExIDExNjkgMTFCNDsKK0QzRkE7RDNGQTsxMTExIDExNjkgMTFCNTtEM0ZBOzExMTEgMTE2OSAxMUI1OworRDNGQjtEM0ZCOzExMTEgMTE2OSAxMUI2O0QzRkI7MTExMSAxMTY5IDExQjY7CitEM0ZDO0QzRkM7MTExMSAxMTY5IDExQjc7RDNGQzsxMTExIDExNjkgMTFCNzsKK0QzRkQ7RDNGRDsxMTExIDExNjkgMTFCODtEM0ZEOzExMTEgMTE2OSAxMUI4OworRDNGRTtEM0ZFOzExMTEgMTE2OSAxMUI5O0QzRkU7MTExMSAxMTY5IDExQjk7CitEM0ZGO0QzRkY7MTExMSAxMTY5IDExQkE7RDNGRjsxMTExIDExNjkgMTFCQTsKK0Q0MDA7RDQwMDsxMTExIDExNjkgMTFCQjtENDAwOzExMTEgMTE2OSAxMUJCOworRDQwMTtENDAxOzExMTEgMTE2OSAxMUJDO0Q0MDE7MTExMSAxMTY5IDExQkM7CitENDAyO0Q0MDI7MTExMSAxMTY5IDExQkQ7RDQwMjsxMTExIDExNjkgMTFCRDsKK0Q0MDM7RDQwMzsxMTExIDExNjkgMTFCRTtENDAzOzExMTEgMTE2OSAxMUJFOworRDQwNDtENDA0OzExMTEgMTE2OSAxMUJGO0Q0MDQ7MTExMSAxMTY5IDExQkY7CitENDA1O0Q0MDU7MTExMSAxMTY5IDExQzA7RDQwNTsxMTExIDExNjkgMTFDMDsKK0Q0MDY7RDQwNjsxMTExIDExNjkgMTFDMTtENDA2OzExMTEgMTE2OSAxMUMxOworRDQwNztENDA3OzExMTEgMTE2OSAxMUMyO0Q0MDc7MTExMSAxMTY5IDExQzI7CitENDA4O0Q0MDg7MTExMSAxMTZBO0Q0MDg7MTExMSAxMTZBOworRDQwOTtENDA5OzExMTEgMTE2QSAxMUE4O0Q0MDk7MTExMSAxMTZBIDExQTg7CitENDBBO0Q0MEE7MTExMSAxMTZBIDExQTk7RDQwQTsxMTExIDExNkEgMTFBOTsKK0Q0MEI7RDQwQjsxMTExIDExNkEgMTFBQTtENDBCOzExMTEgMTE2QSAxMUFBOworRDQwQztENDBDOzExMTEgMTE2QSAxMUFCO0Q0MEM7MTExMSAxMTZBIDExQUI7CitENDBEO0Q0MEQ7MTExMSAxMTZBIDExQUM7RDQwRDsxMTExIDExNkEgMTFBQzsKK0Q0MEU7RDQwRTsxMTExIDExNkEgMTFBRDtENDBFOzExMTEgMTE2QSAxMUFEOworRDQwRjtENDBGOzExMTEgMTE2QSAxMUFFO0Q0MEY7MTExMSAxMTZBIDExQUU7CitENDEwO0Q0MTA7MTExMSAxMTZBIDExQUY7RDQxMDsxMTExIDExNkEgMTFBRjsKK0Q0MTE7RDQxMTsxMTExIDExNkEgMTFCMDtENDExOzExMTEgMTE2QSAxMUIwOworRDQxMjtENDEyOzExMTEgMTE2QSAxMUIxO0Q0MTI7MTExMSAxMTZBIDExQjE7CitENDEzO0Q0MTM7MTExMSAxMTZBIDExQjI7RDQxMzsxMTExIDExNkEgMTFCMjsKK0Q0MTQ7RDQxNDsxMTExIDExNkEgMTFCMztENDE0OzExMTEgMTE2QSAxMUIzOworRDQxNTtENDE1OzExMTEgMTE2QSAxMUI0O0Q0MTU7MTExMSAxMTZBIDExQjQ7CitENDE2O0Q0MTY7MTExMSAxMTZBIDExQjU7RDQxNjsxMTExIDExNkEgMTFCNTsKK0Q0MTc7RDQxNzsxMTExIDExNkEgMTFCNjtENDE3OzExMTEgMTE2QSAxMUI2OworRDQxODtENDE4OzExMTEgMTE2QSAxMUI3O0Q0MTg7MTExMSAxMTZBIDExQjc7CitENDE5O0Q0MTk7MTExMSAxMTZBIDExQjg7RDQxOTsxMTExIDExNkEgMTFCODsKK0Q0MUE7RDQxQTsxMTExIDExNkEgMTFCOTtENDFBOzExMTEgMTE2QSAxMUI5OworRDQxQjtENDFCOzExMTEgMTE2QSAxMUJBO0Q0MUI7MTExMSAxMTZBIDExQkE7CitENDFDO0Q0MUM7MTExMSAxMTZBIDExQkI7RDQxQzsxMTExIDExNkEgMTFCQjsKK0Q0MUQ7RDQxRDsxMTExIDExNkEgMTFCQztENDFEOzExMTEgMTE2QSAxMUJDOworRDQxRTtENDFFOzExMTEgMTE2QSAxMUJEO0Q0MUU7MTExMSAxMTZBIDExQkQ7CitENDFGO0Q0MUY7MTExMSAxMTZBIDExQkU7RDQxRjsxMTExIDExNkEgMTFCRTsKK0Q0MjA7RDQyMDsxMTExIDExNkEgMTFCRjtENDIwOzExMTEgMTE2QSAxMUJGOworRDQyMTtENDIxOzExMTEgMTE2QSAxMUMwO0Q0MjE7MTExMSAxMTZBIDExQzA7CitENDIyO0Q0MjI7MTExMSAxMTZBIDExQzE7RDQyMjsxMTExIDExNkEgMTFDMTsKK0Q0MjM7RDQyMzsxMTExIDExNkEgMTFDMjtENDIzOzExMTEgMTE2QSAxMUMyOworRDQyNDtENDI0OzExMTEgMTE2QjtENDI0OzExMTEgMTE2QjsKK0Q0MjU7RDQyNTsxMTExIDExNkIgMTFBODtENDI1OzExMTEgMTE2QiAxMUE4OworRDQyNjtENDI2OzExMTEgMTE2QiAxMUE5O0Q0MjY7MTExMSAxMTZCIDExQTk7CitENDI3O0Q0Mjc7MTExMSAxMTZCIDExQUE7RDQyNzsxMTExIDExNkIgMTFBQTsKK0Q0Mjg7RDQyODsxMTExIDExNkIgMTFBQjtENDI4OzExMTEgMTE2QiAxMUFCOworRDQyOTtENDI5OzExMTEgMTE2QiAxMUFDO0Q0Mjk7MTExMSAxMTZCIDExQUM7CitENDJBO0Q0MkE7MTExMSAxMTZCIDExQUQ7RDQyQTsxMTExIDExNkIgMTFBRDsKK0Q0MkI7RDQyQjsxMTExIDExNkIgMTFBRTtENDJCOzExMTEgMTE2QiAxMUFFOworRDQyQztENDJDOzExMTEgMTE2QiAxMUFGO0Q0MkM7MTExMSAxMTZCIDExQUY7CitENDJEO0Q0MkQ7MTExMSAxMTZCIDExQjA7RDQyRDsxMTExIDExNkIgMTFCMDsKK0Q0MkU7RDQyRTsxMTExIDExNkIgMTFCMTtENDJFOzExMTEgMTE2QiAxMUIxOworRDQyRjtENDJGOzExMTEgMTE2QiAxMUIyO0Q0MkY7MTExMSAxMTZCIDExQjI7CitENDMwO0Q0MzA7MTExMSAxMTZCIDExQjM7RDQzMDsxMTExIDExNkIgMTFCMzsKK0Q0MzE7RDQzMTsxMTExIDExNkIgMTFCNDtENDMxOzExMTEgMTE2QiAxMUI0OworRDQzMjtENDMyOzExMTEgMTE2QiAxMUI1O0Q0MzI7MTExMSAxMTZCIDExQjU7CitENDMzO0Q0MzM7MTExMSAxMTZCIDExQjY7RDQzMzsxMTExIDExNkIgMTFCNjsKK0Q0MzQ7RDQzNDsxMTExIDExNkIgMTFCNztENDM0OzExMTEgMTE2QiAxMUI3OworRDQzNTtENDM1OzExMTEgMTE2QiAxMUI4O0Q0MzU7MTExMSAxMTZCIDExQjg7CitENDM2O0Q0MzY7MTExMSAxMTZCIDExQjk7RDQzNjsxMTExIDExNkIgMTFCOTsKK0Q0Mzc7RDQzNzsxMTExIDExNkIgMTFCQTtENDM3OzExMTEgMTE2QiAxMUJBOworRDQzODtENDM4OzExMTEgMTE2QiAxMUJCO0Q0Mzg7MTExMSAxMTZCIDExQkI7CitENDM5O0Q0Mzk7MTExMSAxMTZCIDExQkM7RDQzOTsxMTExIDExNkIgMTFCQzsKK0Q0M0E7RDQzQTsxMTExIDExNkIgMTFCRDtENDNBOzExMTEgMTE2QiAxMUJEOworRDQzQjtENDNCOzExMTEgMTE2QiAxMUJFO0Q0M0I7MTExMSAxMTZCIDExQkU7CitENDNDO0Q0M0M7MTExMSAxMTZCIDExQkY7RDQzQzsxMTExIDExNkIgMTFCRjsKK0Q0M0Q7RDQzRDsxMTExIDExNkIgMTFDMDtENDNEOzExMTEgMTE2QiAxMUMwOworRDQzRTtENDNFOzExMTEgMTE2QiAxMUMxO0Q0M0U7MTExMSAxMTZCIDExQzE7CitENDNGO0Q0M0Y7MTExMSAxMTZCIDExQzI7RDQzRjsxMTExIDExNkIgMTFDMjsKK0Q0NDA7RDQ0MDsxMTExIDExNkM7RDQ0MDsxMTExIDExNkM7CitENDQxO0Q0NDE7MTExMSAxMTZDIDExQTg7RDQ0MTsxMTExIDExNkMgMTFBODsKK0Q0NDI7RDQ0MjsxMTExIDExNkMgMTFBOTtENDQyOzExMTEgMTE2QyAxMUE5OworRDQ0MztENDQzOzExMTEgMTE2QyAxMUFBO0Q0NDM7MTExMSAxMTZDIDExQUE7CitENDQ0O0Q0NDQ7MTExMSAxMTZDIDExQUI7RDQ0NDsxMTExIDExNkMgMTFBQjsKK0Q0NDU7RDQ0NTsxMTExIDExNkMgMTFBQztENDQ1OzExMTEgMTE2QyAxMUFDOworRDQ0NjtENDQ2OzExMTEgMTE2QyAxMUFEO0Q0NDY7MTExMSAxMTZDIDExQUQ7CitENDQ3O0Q0NDc7MTExMSAxMTZDIDExQUU7RDQ0NzsxMTExIDExNkMgMTFBRTsKK0Q0NDg7RDQ0ODsxMTExIDExNkMgMTFBRjtENDQ4OzExMTEgMTE2QyAxMUFGOworRDQ0OTtENDQ5OzExMTEgMTE2QyAxMUIwO0Q0NDk7MTExMSAxMTZDIDExQjA7CitENDRBO0Q0NEE7MTExMSAxMTZDIDExQjE7RDQ0QTsxMTExIDExNkMgMTFCMTsKK0Q0NEI7RDQ0QjsxMTExIDExNkMgMTFCMjtENDRCOzExMTEgMTE2QyAxMUIyOworRDQ0QztENDRDOzExMTEgMTE2QyAxMUIzO0Q0NEM7MTExMSAxMTZDIDExQjM7CitENDREO0Q0NEQ7MTExMSAxMTZDIDExQjQ7RDQ0RDsxMTExIDExNkMgMTFCNDsKK0Q0NEU7RDQ0RTsxMTExIDExNkMgMTFCNTtENDRFOzExMTEgMTE2QyAxMUI1OworRDQ0RjtENDRGOzExMTEgMTE2QyAxMUI2O0Q0NEY7MTExMSAxMTZDIDExQjY7CitENDUwO0Q0NTA7MTExMSAxMTZDIDExQjc7RDQ1MDsxMTExIDExNkMgMTFCNzsKK0Q0NTE7RDQ1MTsxMTExIDExNkMgMTFCODtENDUxOzExMTEgMTE2QyAxMUI4OworRDQ1MjtENDUyOzExMTEgMTE2QyAxMUI5O0Q0NTI7MTExMSAxMTZDIDExQjk7CitENDUzO0Q0NTM7MTExMSAxMTZDIDExQkE7RDQ1MzsxMTExIDExNkMgMTFCQTsKK0Q0NTQ7RDQ1NDsxMTExIDExNkMgMTFCQjtENDU0OzExMTEgMTE2QyAxMUJCOworRDQ1NTtENDU1OzExMTEgMTE2QyAxMUJDO0Q0NTU7MTExMSAxMTZDIDExQkM7CitENDU2O0Q0NTY7MTExMSAxMTZDIDExQkQ7RDQ1NjsxMTExIDExNkMgMTFCRDsKK0Q0NTc7RDQ1NzsxMTExIDExNkMgMTFCRTtENDU3OzExMTEgMTE2QyAxMUJFOworRDQ1ODtENDU4OzExMTEgMTE2QyAxMUJGO0Q0NTg7MTExMSAxMTZDIDExQkY7CitENDU5O0Q0NTk7MTExMSAxMTZDIDExQzA7RDQ1OTsxMTExIDExNkMgMTFDMDsKK0Q0NUE7RDQ1QTsxMTExIDExNkMgMTFDMTtENDVBOzExMTEgMTE2QyAxMUMxOworRDQ1QjtENDVCOzExMTEgMTE2QyAxMUMyO0Q0NUI7MTExMSAxMTZDIDExQzI7CitENDVDO0Q0NUM7MTExMSAxMTZEO0Q0NUM7MTExMSAxMTZEOworRDQ1RDtENDVEOzExMTEgMTE2RCAxMUE4O0Q0NUQ7MTExMSAxMTZEIDExQTg7CitENDVFO0Q0NUU7MTExMSAxMTZEIDExQTk7RDQ1RTsxMTExIDExNkQgMTFBOTsKK0Q0NUY7RDQ1RjsxMTExIDExNkQgMTFBQTtENDVGOzExMTEgMTE2RCAxMUFBOworRDQ2MDtENDYwOzExMTEgMTE2RCAxMUFCO0Q0NjA7MTExMSAxMTZEIDExQUI7CitENDYxO0Q0NjE7MTExMSAxMTZEIDExQUM7RDQ2MTsxMTExIDExNkQgMTFBQzsKK0Q0NjI7RDQ2MjsxMTExIDExNkQgMTFBRDtENDYyOzExMTEgMTE2RCAxMUFEOworRDQ2MztENDYzOzExMTEgMTE2RCAxMUFFO0Q0NjM7MTExMSAxMTZEIDExQUU7CitENDY0O0Q0NjQ7MTExMSAxMTZEIDExQUY7RDQ2NDsxMTExIDExNkQgMTFBRjsKK0Q0NjU7RDQ2NTsxMTExIDExNkQgMTFCMDtENDY1OzExMTEgMTE2RCAxMUIwOworRDQ2NjtENDY2OzExMTEgMTE2RCAxMUIxO0Q0NjY7MTExMSAxMTZEIDExQjE7CitENDY3O0Q0Njc7MTExMSAxMTZEIDExQjI7RDQ2NzsxMTExIDExNkQgMTFCMjsKK0Q0Njg7RDQ2ODsxMTExIDExNkQgMTFCMztENDY4OzExMTEgMTE2RCAxMUIzOworRDQ2OTtENDY5OzExMTEgMTE2RCAxMUI0O0Q0Njk7MTExMSAxMTZEIDExQjQ7CitENDZBO0Q0NkE7MTExMSAxMTZEIDExQjU7RDQ2QTsxMTExIDExNkQgMTFCNTsKK0Q0NkI7RDQ2QjsxMTExIDExNkQgMTFCNjtENDZCOzExMTEgMTE2RCAxMUI2OworRDQ2QztENDZDOzExMTEgMTE2RCAxMUI3O0Q0NkM7MTExMSAxMTZEIDExQjc7CitENDZEO0Q0NkQ7MTExMSAxMTZEIDExQjg7RDQ2RDsxMTExIDExNkQgMTFCODsKK0Q0NkU7RDQ2RTsxMTExIDExNkQgMTFCOTtENDZFOzExMTEgMTE2RCAxMUI5OworRDQ2RjtENDZGOzExMTEgMTE2RCAxMUJBO0Q0NkY7MTExMSAxMTZEIDExQkE7CitENDcwO0Q0NzA7MTExMSAxMTZEIDExQkI7RDQ3MDsxMTExIDExNkQgMTFCQjsKK0Q0NzE7RDQ3MTsxMTExIDExNkQgMTFCQztENDcxOzExMTEgMTE2RCAxMUJDOworRDQ3MjtENDcyOzExMTEgMTE2RCAxMUJEO0Q0NzI7MTExMSAxMTZEIDExQkQ7CitENDczO0Q0NzM7MTExMSAxMTZEIDExQkU7RDQ3MzsxMTExIDExNkQgMTFCRTsKK0Q0NzQ7RDQ3NDsxMTExIDExNkQgMTFCRjtENDc0OzExMTEgMTE2RCAxMUJGOworRDQ3NTtENDc1OzExMTEgMTE2RCAxMUMwO0Q0NzU7MTExMSAxMTZEIDExQzA7CitENDc2O0Q0NzY7MTExMSAxMTZEIDExQzE7RDQ3NjsxMTExIDExNkQgMTFDMTsKK0Q0Nzc7RDQ3NzsxMTExIDExNkQgMTFDMjtENDc3OzExMTEgMTE2RCAxMUMyOworRDQ3ODtENDc4OzExMTEgMTE2RTtENDc4OzExMTEgMTE2RTsKK0Q0Nzk7RDQ3OTsxMTExIDExNkUgMTFBODtENDc5OzExMTEgMTE2RSAxMUE4OworRDQ3QTtENDdBOzExMTEgMTE2RSAxMUE5O0Q0N0E7MTExMSAxMTZFIDExQTk7CitENDdCO0Q0N0I7MTExMSAxMTZFIDExQUE7RDQ3QjsxMTExIDExNkUgMTFBQTsKK0Q0N0M7RDQ3QzsxMTExIDExNkUgMTFBQjtENDdDOzExMTEgMTE2RSAxMUFCOworRDQ3RDtENDdEOzExMTEgMTE2RSAxMUFDO0Q0N0Q7MTExMSAxMTZFIDExQUM7CitENDdFO0Q0N0U7MTExMSAxMTZFIDExQUQ7RDQ3RTsxMTExIDExNkUgMTFBRDsKK0Q0N0Y7RDQ3RjsxMTExIDExNkUgMTFBRTtENDdGOzExMTEgMTE2RSAxMUFFOworRDQ4MDtENDgwOzExMTEgMTE2RSAxMUFGO0Q0ODA7MTExMSAxMTZFIDExQUY7CitENDgxO0Q0ODE7MTExMSAxMTZFIDExQjA7RDQ4MTsxMTExIDExNkUgMTFCMDsKK0Q0ODI7RDQ4MjsxMTExIDExNkUgMTFCMTtENDgyOzExMTEgMTE2RSAxMUIxOworRDQ4MztENDgzOzExMTEgMTE2RSAxMUIyO0Q0ODM7MTExMSAxMTZFIDExQjI7CitENDg0O0Q0ODQ7MTExMSAxMTZFIDExQjM7RDQ4NDsxMTExIDExNkUgMTFCMzsKK0Q0ODU7RDQ4NTsxMTExIDExNkUgMTFCNDtENDg1OzExMTEgMTE2RSAxMUI0OworRDQ4NjtENDg2OzExMTEgMTE2RSAxMUI1O0Q0ODY7MTExMSAxMTZFIDExQjU7CitENDg3O0Q0ODc7MTExMSAxMTZFIDExQjY7RDQ4NzsxMTExIDExNkUgMTFCNjsKK0Q0ODg7RDQ4ODsxMTExIDExNkUgMTFCNztENDg4OzExMTEgMTE2RSAxMUI3OworRDQ4OTtENDg5OzExMTEgMTE2RSAxMUI4O0Q0ODk7MTExMSAxMTZFIDExQjg7CitENDhBO0Q0OEE7MTExMSAxMTZFIDExQjk7RDQ4QTsxMTExIDExNkUgMTFCOTsKK0Q0OEI7RDQ4QjsxMTExIDExNkUgMTFCQTtENDhCOzExMTEgMTE2RSAxMUJBOworRDQ4QztENDhDOzExMTEgMTE2RSAxMUJCO0Q0OEM7MTExMSAxMTZFIDExQkI7CitENDhEO0Q0OEQ7MTExMSAxMTZFIDExQkM7RDQ4RDsxMTExIDExNkUgMTFCQzsKK0Q0OEU7RDQ4RTsxMTExIDExNkUgMTFCRDtENDhFOzExMTEgMTE2RSAxMUJEOworRDQ4RjtENDhGOzExMTEgMTE2RSAxMUJFO0Q0OEY7MTExMSAxMTZFIDExQkU7CitENDkwO0Q0OTA7MTExMSAxMTZFIDExQkY7RDQ5MDsxMTExIDExNkUgMTFCRjsKK0Q0OTE7RDQ5MTsxMTExIDExNkUgMTFDMDtENDkxOzExMTEgMTE2RSAxMUMwOworRDQ5MjtENDkyOzExMTEgMTE2RSAxMUMxO0Q0OTI7MTExMSAxMTZFIDExQzE7CitENDkzO0Q0OTM7MTExMSAxMTZFIDExQzI7RDQ5MzsxMTExIDExNkUgMTFDMjsKK0Q0OTQ7RDQ5NDsxMTExIDExNkY7RDQ5NDsxMTExIDExNkY7CitENDk1O0Q0OTU7MTExMSAxMTZGIDExQTg7RDQ5NTsxMTExIDExNkYgMTFBODsKK0Q0OTY7RDQ5NjsxMTExIDExNkYgMTFBOTtENDk2OzExMTEgMTE2RiAxMUE5OworRDQ5NztENDk3OzExMTEgMTE2RiAxMUFBO0Q0OTc7MTExMSAxMTZGIDExQUE7CitENDk4O0Q0OTg7MTExMSAxMTZGIDExQUI7RDQ5ODsxMTExIDExNkYgMTFBQjsKK0Q0OTk7RDQ5OTsxMTExIDExNkYgMTFBQztENDk5OzExMTEgMTE2RiAxMUFDOworRDQ5QTtENDlBOzExMTEgMTE2RiAxMUFEO0Q0OUE7MTExMSAxMTZGIDExQUQ7CitENDlCO0Q0OUI7MTExMSAxMTZGIDExQUU7RDQ5QjsxMTExIDExNkYgMTFBRTsKK0Q0OUM7RDQ5QzsxMTExIDExNkYgMTFBRjtENDlDOzExMTEgMTE2RiAxMUFGOworRDQ5RDtENDlEOzExMTEgMTE2RiAxMUIwO0Q0OUQ7MTExMSAxMTZGIDExQjA7CitENDlFO0Q0OUU7MTExMSAxMTZGIDExQjE7RDQ5RTsxMTExIDExNkYgMTFCMTsKK0Q0OUY7RDQ5RjsxMTExIDExNkYgMTFCMjtENDlGOzExMTEgMTE2RiAxMUIyOworRDRBMDtENEEwOzExMTEgMTE2RiAxMUIzO0Q0QTA7MTExMSAxMTZGIDExQjM7CitENEExO0Q0QTE7MTExMSAxMTZGIDExQjQ7RDRBMTsxMTExIDExNkYgMTFCNDsKK0Q0QTI7RDRBMjsxMTExIDExNkYgMTFCNTtENEEyOzExMTEgMTE2RiAxMUI1OworRDRBMztENEEzOzExMTEgMTE2RiAxMUI2O0Q0QTM7MTExMSAxMTZGIDExQjY7CitENEE0O0Q0QTQ7MTExMSAxMTZGIDExQjc7RDRBNDsxMTExIDExNkYgMTFCNzsKK0Q0QTU7RDRBNTsxMTExIDExNkYgMTFCODtENEE1OzExMTEgMTE2RiAxMUI4OworRDRBNjtENEE2OzExMTEgMTE2RiAxMUI5O0Q0QTY7MTExMSAxMTZGIDExQjk7CitENEE3O0Q0QTc7MTExMSAxMTZGIDExQkE7RDRBNzsxMTExIDExNkYgMTFCQTsKK0Q0QTg7RDRBODsxMTExIDExNkYgMTFCQjtENEE4OzExMTEgMTE2RiAxMUJCOworRDRBOTtENEE5OzExMTEgMTE2RiAxMUJDO0Q0QTk7MTExMSAxMTZGIDExQkM7CitENEFBO0Q0QUE7MTExMSAxMTZGIDExQkQ7RDRBQTsxMTExIDExNkYgMTFCRDsKK0Q0QUI7RDRBQjsxMTExIDExNkYgMTFCRTtENEFCOzExMTEgMTE2RiAxMUJFOworRDRBQztENEFDOzExMTEgMTE2RiAxMUJGO0Q0QUM7MTExMSAxMTZGIDExQkY7CitENEFEO0Q0QUQ7MTExMSAxMTZGIDExQzA7RDRBRDsxMTExIDExNkYgMTFDMDsKK0Q0QUU7RDRBRTsxMTExIDExNkYgMTFDMTtENEFFOzExMTEgMTE2RiAxMUMxOworRDRBRjtENEFGOzExMTEgMTE2RiAxMUMyO0Q0QUY7MTExMSAxMTZGIDExQzI7CitENEIwO0Q0QjA7MTExMSAxMTcwO0Q0QjA7MTExMSAxMTcwOworRDRCMTtENEIxOzExMTEgMTE3MCAxMUE4O0Q0QjE7MTExMSAxMTcwIDExQTg7CitENEIyO0Q0QjI7MTExMSAxMTcwIDExQTk7RDRCMjsxMTExIDExNzAgMTFBOTsKK0Q0QjM7RDRCMzsxMTExIDExNzAgMTFBQTtENEIzOzExMTEgMTE3MCAxMUFBOworRDRCNDtENEI0OzExMTEgMTE3MCAxMUFCO0Q0QjQ7MTExMSAxMTcwIDExQUI7CitENEI1O0Q0QjU7MTExMSAxMTcwIDExQUM7RDRCNTsxMTExIDExNzAgMTFBQzsKK0Q0QjY7RDRCNjsxMTExIDExNzAgMTFBRDtENEI2OzExMTEgMTE3MCAxMUFEOworRDRCNztENEI3OzExMTEgMTE3MCAxMUFFO0Q0Qjc7MTExMSAxMTcwIDExQUU7CitENEI4O0Q0Qjg7MTExMSAxMTcwIDExQUY7RDRCODsxMTExIDExNzAgMTFBRjsKK0Q0Qjk7RDRCOTsxMTExIDExNzAgMTFCMDtENEI5OzExMTEgMTE3MCAxMUIwOworRDRCQTtENEJBOzExMTEgMTE3MCAxMUIxO0Q0QkE7MTExMSAxMTcwIDExQjE7CitENEJCO0Q0QkI7MTExMSAxMTcwIDExQjI7RDRCQjsxMTExIDExNzAgMTFCMjsKK0Q0QkM7RDRCQzsxMTExIDExNzAgMTFCMztENEJDOzExMTEgMTE3MCAxMUIzOworRDRCRDtENEJEOzExMTEgMTE3MCAxMUI0O0Q0QkQ7MTExMSAxMTcwIDExQjQ7CitENEJFO0Q0QkU7MTExMSAxMTcwIDExQjU7RDRCRTsxMTExIDExNzAgMTFCNTsKK0Q0QkY7RDRCRjsxMTExIDExNzAgMTFCNjtENEJGOzExMTEgMTE3MCAxMUI2OworRDRDMDtENEMwOzExMTEgMTE3MCAxMUI3O0Q0QzA7MTExMSAxMTcwIDExQjc7CitENEMxO0Q0QzE7MTExMSAxMTcwIDExQjg7RDRDMTsxMTExIDExNzAgMTFCODsKK0Q0QzI7RDRDMjsxMTExIDExNzAgMTFCOTtENEMyOzExMTEgMTE3MCAxMUI5OworRDRDMztENEMzOzExMTEgMTE3MCAxMUJBO0Q0QzM7MTExMSAxMTcwIDExQkE7CitENEM0O0Q0QzQ7MTExMSAxMTcwIDExQkI7RDRDNDsxMTExIDExNzAgMTFCQjsKK0Q0QzU7RDRDNTsxMTExIDExNzAgMTFCQztENEM1OzExMTEgMTE3MCAxMUJDOworRDRDNjtENEM2OzExMTEgMTE3MCAxMUJEO0Q0QzY7MTExMSAxMTcwIDExQkQ7CitENEM3O0Q0Qzc7MTExMSAxMTcwIDExQkU7RDRDNzsxMTExIDExNzAgMTFCRTsKK0Q0Qzg7RDRDODsxMTExIDExNzAgMTFCRjtENEM4OzExMTEgMTE3MCAxMUJGOworRDRDOTtENEM5OzExMTEgMTE3MCAxMUMwO0Q0Qzk7MTExMSAxMTcwIDExQzA7CitENENBO0Q0Q0E7MTExMSAxMTcwIDExQzE7RDRDQTsxMTExIDExNzAgMTFDMTsKK0Q0Q0I7RDRDQjsxMTExIDExNzAgMTFDMjtENENCOzExMTEgMTE3MCAxMUMyOworRDRDQztENENDOzExMTEgMTE3MTtENENDOzExMTEgMTE3MTsKK0Q0Q0Q7RDRDRDsxMTExIDExNzEgMTFBODtENENEOzExMTEgMTE3MSAxMUE4OworRDRDRTtENENFOzExMTEgMTE3MSAxMUE5O0Q0Q0U7MTExMSAxMTcxIDExQTk7CitENENGO0Q0Q0Y7MTExMSAxMTcxIDExQUE7RDRDRjsxMTExIDExNzEgMTFBQTsKK0Q0RDA7RDREMDsxMTExIDExNzEgMTFBQjtENEQwOzExMTEgMTE3MSAxMUFCOworRDREMTtENEQxOzExMTEgMTE3MSAxMUFDO0Q0RDE7MTExMSAxMTcxIDExQUM7CitENEQyO0Q0RDI7MTExMSAxMTcxIDExQUQ7RDREMjsxMTExIDExNzEgMTFBRDsKK0Q0RDM7RDREMzsxMTExIDExNzEgMTFBRTtENEQzOzExMTEgMTE3MSAxMUFFOworRDRENDtENEQ0OzExMTEgMTE3MSAxMUFGO0Q0RDQ7MTExMSAxMTcxIDExQUY7CitENEQ1O0Q0RDU7MTExMSAxMTcxIDExQjA7RDRENTsxMTExIDExNzEgMTFCMDsKK0Q0RDY7RDRENjsxMTExIDExNzEgMTFCMTtENEQ2OzExMTEgMTE3MSAxMUIxOworRDRENztENEQ3OzExMTEgMTE3MSAxMUIyO0Q0RDc7MTExMSAxMTcxIDExQjI7CitENEQ4O0Q0RDg7MTExMSAxMTcxIDExQjM7RDREODsxMTExIDExNzEgMTFCMzsKK0Q0RDk7RDREOTsxMTExIDExNzEgMTFCNDtENEQ5OzExMTEgMTE3MSAxMUI0OworRDREQTtENERBOzExMTEgMTE3MSAxMUI1O0Q0REE7MTExMSAxMTcxIDExQjU7CitENERCO0Q0REI7MTExMSAxMTcxIDExQjY7RDREQjsxMTExIDExNzEgMTFCNjsKK0Q0REM7RDREQzsxMTExIDExNzEgMTFCNztENERDOzExMTEgMTE3MSAxMUI3OworRDRERDtENEREOzExMTEgMTE3MSAxMUI4O0Q0REQ7MTExMSAxMTcxIDExQjg7CitENERFO0Q0REU7MTExMSAxMTcxIDExQjk7RDRERTsxMTExIDExNzEgMTFCOTsKK0Q0REY7RDRERjsxMTExIDExNzEgMTFCQTtENERGOzExMTEgMTE3MSAxMUJBOworRDRFMDtENEUwOzExMTEgMTE3MSAxMUJCO0Q0RTA7MTExMSAxMTcxIDExQkI7CitENEUxO0Q0RTE7MTExMSAxMTcxIDExQkM7RDRFMTsxMTExIDExNzEgMTFCQzsKK0Q0RTI7RDRFMjsxMTExIDExNzEgMTFCRDtENEUyOzExMTEgMTE3MSAxMUJEOworRDRFMztENEUzOzExMTEgMTE3MSAxMUJFO0Q0RTM7MTExMSAxMTcxIDExQkU7CitENEU0O0Q0RTQ7MTExMSAxMTcxIDExQkY7RDRFNDsxMTExIDExNzEgMTFCRjsKK0Q0RTU7RDRFNTsxMTExIDExNzEgMTFDMDtENEU1OzExMTEgMTE3MSAxMUMwOworRDRFNjtENEU2OzExMTEgMTE3MSAxMUMxO0Q0RTY7MTExMSAxMTcxIDExQzE7CitENEU3O0Q0RTc7MTExMSAxMTcxIDExQzI7RDRFNzsxMTExIDExNzEgMTFDMjsKK0Q0RTg7RDRFODsxMTExIDExNzI7RDRFODsxMTExIDExNzI7CitENEU5O0Q0RTk7MTExMSAxMTcyIDExQTg7RDRFOTsxMTExIDExNzIgMTFBODsKK0Q0RUE7RDRFQTsxMTExIDExNzIgMTFBOTtENEVBOzExMTEgMTE3MiAxMUE5OworRDRFQjtENEVCOzExMTEgMTE3MiAxMUFBO0Q0RUI7MTExMSAxMTcyIDExQUE7CitENEVDO0Q0RUM7MTExMSAxMTcyIDExQUI7RDRFQzsxMTExIDExNzIgMTFBQjsKK0Q0RUQ7RDRFRDsxMTExIDExNzIgMTFBQztENEVEOzExMTEgMTE3MiAxMUFDOworRDRFRTtENEVFOzExMTEgMTE3MiAxMUFEO0Q0RUU7MTExMSAxMTcyIDExQUQ7CitENEVGO0Q0RUY7MTExMSAxMTcyIDExQUU7RDRFRjsxMTExIDExNzIgMTFBRTsKK0Q0RjA7RDRGMDsxMTExIDExNzIgMTFBRjtENEYwOzExMTEgMTE3MiAxMUFGOworRDRGMTtENEYxOzExMTEgMTE3MiAxMUIwO0Q0RjE7MTExMSAxMTcyIDExQjA7CitENEYyO0Q0RjI7MTExMSAxMTcyIDExQjE7RDRGMjsxMTExIDExNzIgMTFCMTsKK0Q0RjM7RDRGMzsxMTExIDExNzIgMTFCMjtENEYzOzExMTEgMTE3MiAxMUIyOworRDRGNDtENEY0OzExMTEgMTE3MiAxMUIzO0Q0RjQ7MTExMSAxMTcyIDExQjM7CitENEY1O0Q0RjU7MTExMSAxMTcyIDExQjQ7RDRGNTsxMTExIDExNzIgMTFCNDsKK0Q0RjY7RDRGNjsxMTExIDExNzIgMTFCNTtENEY2OzExMTEgMTE3MiAxMUI1OworRDRGNztENEY3OzExMTEgMTE3MiAxMUI2O0Q0Rjc7MTExMSAxMTcyIDExQjY7CitENEY4O0Q0Rjg7MTExMSAxMTcyIDExQjc7RDRGODsxMTExIDExNzIgMTFCNzsKK0Q0Rjk7RDRGOTsxMTExIDExNzIgMTFCODtENEY5OzExMTEgMTE3MiAxMUI4OworRDRGQTtENEZBOzExMTEgMTE3MiAxMUI5O0Q0RkE7MTExMSAxMTcyIDExQjk7CitENEZCO0Q0RkI7MTExMSAxMTcyIDExQkE7RDRGQjsxMTExIDExNzIgMTFCQTsKK0Q0RkM7RDRGQzsxMTExIDExNzIgMTFCQjtENEZDOzExMTEgMTE3MiAxMUJCOworRDRGRDtENEZEOzExMTEgMTE3MiAxMUJDO0Q0RkQ7MTExMSAxMTcyIDExQkM7CitENEZFO0Q0RkU7MTExMSAxMTcyIDExQkQ7RDRGRTsxMTExIDExNzIgMTFCRDsKK0Q0RkY7RDRGRjsxMTExIDExNzIgMTFCRTtENEZGOzExMTEgMTE3MiAxMUJFOworRDUwMDtENTAwOzExMTEgMTE3MiAxMUJGO0Q1MDA7MTExMSAxMTcyIDExQkY7CitENTAxO0Q1MDE7MTExMSAxMTcyIDExQzA7RDUwMTsxMTExIDExNzIgMTFDMDsKK0Q1MDI7RDUwMjsxMTExIDExNzIgMTFDMTtENTAyOzExMTEgMTE3MiAxMUMxOworRDUwMztENTAzOzExMTEgMTE3MiAxMUMyO0Q1MDM7MTExMSAxMTcyIDExQzI7CitENTA0O0Q1MDQ7MTExMSAxMTczO0Q1MDQ7MTExMSAxMTczOworRDUwNTtENTA1OzExMTEgMTE3MyAxMUE4O0Q1MDU7MTExMSAxMTczIDExQTg7CitENTA2O0Q1MDY7MTExMSAxMTczIDExQTk7RDUwNjsxMTExIDExNzMgMTFBOTsKK0Q1MDc7RDUwNzsxMTExIDExNzMgMTFBQTtENTA3OzExMTEgMTE3MyAxMUFBOworRDUwODtENTA4OzExMTEgMTE3MyAxMUFCO0Q1MDg7MTExMSAxMTczIDExQUI7CitENTA5O0Q1MDk7MTExMSAxMTczIDExQUM7RDUwOTsxMTExIDExNzMgMTFBQzsKK0Q1MEE7RDUwQTsxMTExIDExNzMgMTFBRDtENTBBOzExMTEgMTE3MyAxMUFEOworRDUwQjtENTBCOzExMTEgMTE3MyAxMUFFO0Q1MEI7MTExMSAxMTczIDExQUU7CitENTBDO0Q1MEM7MTExMSAxMTczIDExQUY7RDUwQzsxMTExIDExNzMgMTFBRjsKK0Q1MEQ7RDUwRDsxMTExIDExNzMgMTFCMDtENTBEOzExMTEgMTE3MyAxMUIwOworRDUwRTtENTBFOzExMTEgMTE3MyAxMUIxO0Q1MEU7MTExMSAxMTczIDExQjE7CitENTBGO0Q1MEY7MTExMSAxMTczIDExQjI7RDUwRjsxMTExIDExNzMgMTFCMjsKK0Q1MTA7RDUxMDsxMTExIDExNzMgMTFCMztENTEwOzExMTEgMTE3MyAxMUIzOworRDUxMTtENTExOzExMTEgMTE3MyAxMUI0O0Q1MTE7MTExMSAxMTczIDExQjQ7CitENTEyO0Q1MTI7MTExMSAxMTczIDExQjU7RDUxMjsxMTExIDExNzMgMTFCNTsKK0Q1MTM7RDUxMzsxMTExIDExNzMgMTFCNjtENTEzOzExMTEgMTE3MyAxMUI2OworRDUxNDtENTE0OzExMTEgMTE3MyAxMUI3O0Q1MTQ7MTExMSAxMTczIDExQjc7CitENTE1O0Q1MTU7MTExMSAxMTczIDExQjg7RDUxNTsxMTExIDExNzMgMTFCODsKK0Q1MTY7RDUxNjsxMTExIDExNzMgMTFCOTtENTE2OzExMTEgMTE3MyAxMUI5OworRDUxNztENTE3OzExMTEgMTE3MyAxMUJBO0Q1MTc7MTExMSAxMTczIDExQkE7CitENTE4O0Q1MTg7MTExMSAxMTczIDExQkI7RDUxODsxMTExIDExNzMgMTFCQjsKK0Q1MTk7RDUxOTsxMTExIDExNzMgMTFCQztENTE5OzExMTEgMTE3MyAxMUJDOworRDUxQTtENTFBOzExMTEgMTE3MyAxMUJEO0Q1MUE7MTExMSAxMTczIDExQkQ7CitENTFCO0Q1MUI7MTExMSAxMTczIDExQkU7RDUxQjsxMTExIDExNzMgMTFCRTsKK0Q1MUM7RDUxQzsxMTExIDExNzMgMTFCRjtENTFDOzExMTEgMTE3MyAxMUJGOworRDUxRDtENTFEOzExMTEgMTE3MyAxMUMwO0Q1MUQ7MTExMSAxMTczIDExQzA7CitENTFFO0Q1MUU7MTExMSAxMTczIDExQzE7RDUxRTsxMTExIDExNzMgMTFDMTsKK0Q1MUY7RDUxRjsxMTExIDExNzMgMTFDMjtENTFGOzExMTEgMTE3MyAxMUMyOworRDUyMDtENTIwOzExMTEgMTE3NDtENTIwOzExMTEgMTE3NDsKK0Q1MjE7RDUyMTsxMTExIDExNzQgMTFBODtENTIxOzExMTEgMTE3NCAxMUE4OworRDUyMjtENTIyOzExMTEgMTE3NCAxMUE5O0Q1MjI7MTExMSAxMTc0IDExQTk7CitENTIzO0Q1MjM7MTExMSAxMTc0IDExQUE7RDUyMzsxMTExIDExNzQgMTFBQTsKK0Q1MjQ7RDUyNDsxMTExIDExNzQgMTFBQjtENTI0OzExMTEgMTE3NCAxMUFCOworRDUyNTtENTI1OzExMTEgMTE3NCAxMUFDO0Q1MjU7MTExMSAxMTc0IDExQUM7CitENTI2O0Q1MjY7MTExMSAxMTc0IDExQUQ7RDUyNjsxMTExIDExNzQgMTFBRDsKK0Q1Mjc7RDUyNzsxMTExIDExNzQgMTFBRTtENTI3OzExMTEgMTE3NCAxMUFFOworRDUyODtENTI4OzExMTEgMTE3NCAxMUFGO0Q1Mjg7MTExMSAxMTc0IDExQUY7CitENTI5O0Q1Mjk7MTExMSAxMTc0IDExQjA7RDUyOTsxMTExIDExNzQgMTFCMDsKK0Q1MkE7RDUyQTsxMTExIDExNzQgMTFCMTtENTJBOzExMTEgMTE3NCAxMUIxOworRDUyQjtENTJCOzExMTEgMTE3NCAxMUIyO0Q1MkI7MTExMSAxMTc0IDExQjI7CitENTJDO0Q1MkM7MTExMSAxMTc0IDExQjM7RDUyQzsxMTExIDExNzQgMTFCMzsKK0Q1MkQ7RDUyRDsxMTExIDExNzQgMTFCNDtENTJEOzExMTEgMTE3NCAxMUI0OworRDUyRTtENTJFOzExMTEgMTE3NCAxMUI1O0Q1MkU7MTExMSAxMTc0IDExQjU7CitENTJGO0Q1MkY7MTExMSAxMTc0IDExQjY7RDUyRjsxMTExIDExNzQgMTFCNjsKK0Q1MzA7RDUzMDsxMTExIDExNzQgMTFCNztENTMwOzExMTEgMTE3NCAxMUI3OworRDUzMTtENTMxOzExMTEgMTE3NCAxMUI4O0Q1MzE7MTExMSAxMTc0IDExQjg7CitENTMyO0Q1MzI7MTExMSAxMTc0IDExQjk7RDUzMjsxMTExIDExNzQgMTFCOTsKK0Q1MzM7RDUzMzsxMTExIDExNzQgMTFCQTtENTMzOzExMTEgMTE3NCAxMUJBOworRDUzNDtENTM0OzExMTEgMTE3NCAxMUJCO0Q1MzQ7MTExMSAxMTc0IDExQkI7CitENTM1O0Q1MzU7MTExMSAxMTc0IDExQkM7RDUzNTsxMTExIDExNzQgMTFCQzsKK0Q1MzY7RDUzNjsxMTExIDExNzQgMTFCRDtENTM2OzExMTEgMTE3NCAxMUJEOworRDUzNztENTM3OzExMTEgMTE3NCAxMUJFO0Q1Mzc7MTExMSAxMTc0IDExQkU7CitENTM4O0Q1Mzg7MTExMSAxMTc0IDExQkY7RDUzODsxMTExIDExNzQgMTFCRjsKK0Q1Mzk7RDUzOTsxMTExIDExNzQgMTFDMDtENTM5OzExMTEgMTE3NCAxMUMwOworRDUzQTtENTNBOzExMTEgMTE3NCAxMUMxO0Q1M0E7MTExMSAxMTc0IDExQzE7CitENTNCO0Q1M0I7MTExMSAxMTc0IDExQzI7RDUzQjsxMTExIDExNzQgMTFDMjsKK0Q1M0M7RDUzQzsxMTExIDExNzU7RDUzQzsxMTExIDExNzU7CitENTNEO0Q1M0Q7MTExMSAxMTc1IDExQTg7RDUzRDsxMTExIDExNzUgMTFBODsKK0Q1M0U7RDUzRTsxMTExIDExNzUgMTFBOTtENTNFOzExMTEgMTE3NSAxMUE5OworRDUzRjtENTNGOzExMTEgMTE3NSAxMUFBO0Q1M0Y7MTExMSAxMTc1IDExQUE7CitENTQwO0Q1NDA7MTExMSAxMTc1IDExQUI7RDU0MDsxMTExIDExNzUgMTFBQjsKK0Q1NDE7RDU0MTsxMTExIDExNzUgMTFBQztENTQxOzExMTEgMTE3NSAxMUFDOworRDU0MjtENTQyOzExMTEgMTE3NSAxMUFEO0Q1NDI7MTExMSAxMTc1IDExQUQ7CitENTQzO0Q1NDM7MTExMSAxMTc1IDExQUU7RDU0MzsxMTExIDExNzUgMTFBRTsKK0Q1NDQ7RDU0NDsxMTExIDExNzUgMTFBRjtENTQ0OzExMTEgMTE3NSAxMUFGOworRDU0NTtENTQ1OzExMTEgMTE3NSAxMUIwO0Q1NDU7MTExMSAxMTc1IDExQjA7CitENTQ2O0Q1NDY7MTExMSAxMTc1IDExQjE7RDU0NjsxMTExIDExNzUgMTFCMTsKK0Q1NDc7RDU0NzsxMTExIDExNzUgMTFCMjtENTQ3OzExMTEgMTE3NSAxMUIyOworRDU0ODtENTQ4OzExMTEgMTE3NSAxMUIzO0Q1NDg7MTExMSAxMTc1IDExQjM7CitENTQ5O0Q1NDk7MTExMSAxMTc1IDExQjQ7RDU0OTsxMTExIDExNzUgMTFCNDsKK0Q1NEE7RDU0QTsxMTExIDExNzUgMTFCNTtENTRBOzExMTEgMTE3NSAxMUI1OworRDU0QjtENTRCOzExMTEgMTE3NSAxMUI2O0Q1NEI7MTExMSAxMTc1IDExQjY7CitENTRDO0Q1NEM7MTExMSAxMTc1IDExQjc7RDU0QzsxMTExIDExNzUgMTFCNzsKK0Q1NEQ7RDU0RDsxMTExIDExNzUgMTFCODtENTREOzExMTEgMTE3NSAxMUI4OworRDU0RTtENTRFOzExMTEgMTE3NSAxMUI5O0Q1NEU7MTExMSAxMTc1IDExQjk7CitENTRGO0Q1NEY7MTExMSAxMTc1IDExQkE7RDU0RjsxMTExIDExNzUgMTFCQTsKK0Q1NTA7RDU1MDsxMTExIDExNzUgMTFCQjtENTUwOzExMTEgMTE3NSAxMUJCOworRDU1MTtENTUxOzExMTEgMTE3NSAxMUJDO0Q1NTE7MTExMSAxMTc1IDExQkM7CitENTUyO0Q1NTI7MTExMSAxMTc1IDExQkQ7RDU1MjsxMTExIDExNzUgMTFCRDsKK0Q1NTM7RDU1MzsxMTExIDExNzUgMTFCRTtENTUzOzExMTEgMTE3NSAxMUJFOworRDU1NDtENTU0OzExMTEgMTE3NSAxMUJGO0Q1NTQ7MTExMSAxMTc1IDExQkY7CitENTU1O0Q1NTU7MTExMSAxMTc1IDExQzA7RDU1NTsxMTExIDExNzUgMTFDMDsKK0Q1NTY7RDU1NjsxMTExIDExNzUgMTFDMTtENTU2OzExMTEgMTE3NSAxMUMxOworRDU1NztENTU3OzExMTEgMTE3NSAxMUMyO0Q1NTc7MTExMSAxMTc1IDExQzI7CitENTU4O0Q1NTg7MTExMiAxMTYxO0Q1NTg7MTExMiAxMTYxOworRDU1OTtENTU5OzExMTIgMTE2MSAxMUE4O0Q1NTk7MTExMiAxMTYxIDExQTg7CitENTVBO0Q1NUE7MTExMiAxMTYxIDExQTk7RDU1QTsxMTEyIDExNjEgMTFBOTsKK0Q1NUI7RDU1QjsxMTEyIDExNjEgMTFBQTtENTVCOzExMTIgMTE2MSAxMUFBOworRDU1QztENTVDOzExMTIgMTE2MSAxMUFCO0Q1NUM7MTExMiAxMTYxIDExQUI7CitENTVEO0Q1NUQ7MTExMiAxMTYxIDExQUM7RDU1RDsxMTEyIDExNjEgMTFBQzsKK0Q1NUU7RDU1RTsxMTEyIDExNjEgMTFBRDtENTVFOzExMTIgMTE2MSAxMUFEOworRDU1RjtENTVGOzExMTIgMTE2MSAxMUFFO0Q1NUY7MTExMiAxMTYxIDExQUU7CitENTYwO0Q1NjA7MTExMiAxMTYxIDExQUY7RDU2MDsxMTEyIDExNjEgMTFBRjsKK0Q1NjE7RDU2MTsxMTEyIDExNjEgMTFCMDtENTYxOzExMTIgMTE2MSAxMUIwOworRDU2MjtENTYyOzExMTIgMTE2MSAxMUIxO0Q1NjI7MTExMiAxMTYxIDExQjE7CitENTYzO0Q1NjM7MTExMiAxMTYxIDExQjI7RDU2MzsxMTEyIDExNjEgMTFCMjsKK0Q1NjQ7RDU2NDsxMTEyIDExNjEgMTFCMztENTY0OzExMTIgMTE2MSAxMUIzOworRDU2NTtENTY1OzExMTIgMTE2MSAxMUI0O0Q1NjU7MTExMiAxMTYxIDExQjQ7CitENTY2O0Q1NjY7MTExMiAxMTYxIDExQjU7RDU2NjsxMTEyIDExNjEgMTFCNTsKK0Q1Njc7RDU2NzsxMTEyIDExNjEgMTFCNjtENTY3OzExMTIgMTE2MSAxMUI2OworRDU2ODtENTY4OzExMTIgMTE2MSAxMUI3O0Q1Njg7MTExMiAxMTYxIDExQjc7CitENTY5O0Q1Njk7MTExMiAxMTYxIDExQjg7RDU2OTsxMTEyIDExNjEgMTFCODsKK0Q1NkE7RDU2QTsxMTEyIDExNjEgMTFCOTtENTZBOzExMTIgMTE2MSAxMUI5OworRDU2QjtENTZCOzExMTIgMTE2MSAxMUJBO0Q1NkI7MTExMiAxMTYxIDExQkE7CitENTZDO0Q1NkM7MTExMiAxMTYxIDExQkI7RDU2QzsxMTEyIDExNjEgMTFCQjsKK0Q1NkQ7RDU2RDsxMTEyIDExNjEgMTFCQztENTZEOzExMTIgMTE2MSAxMUJDOworRDU2RTtENTZFOzExMTIgMTE2MSAxMUJEO0Q1NkU7MTExMiAxMTYxIDExQkQ7CitENTZGO0Q1NkY7MTExMiAxMTYxIDExQkU7RDU2RjsxMTEyIDExNjEgMTFCRTsKK0Q1NzA7RDU3MDsxMTEyIDExNjEgMTFCRjtENTcwOzExMTIgMTE2MSAxMUJGOworRDU3MTtENTcxOzExMTIgMTE2MSAxMUMwO0Q1NzE7MTExMiAxMTYxIDExQzA7CitENTcyO0Q1NzI7MTExMiAxMTYxIDExQzE7RDU3MjsxMTEyIDExNjEgMTFDMTsKK0Q1NzM7RDU3MzsxMTEyIDExNjEgMTFDMjtENTczOzExMTIgMTE2MSAxMUMyOworRDU3NDtENTc0OzExMTIgMTE2MjtENTc0OzExMTIgMTE2MjsKK0Q1NzU7RDU3NTsxMTEyIDExNjIgMTFBODtENTc1OzExMTIgMTE2MiAxMUE4OworRDU3NjtENTc2OzExMTIgMTE2MiAxMUE5O0Q1NzY7MTExMiAxMTYyIDExQTk7CitENTc3O0Q1Nzc7MTExMiAxMTYyIDExQUE7RDU3NzsxMTEyIDExNjIgMTFBQTsKK0Q1Nzg7RDU3ODsxMTEyIDExNjIgMTFBQjtENTc4OzExMTIgMTE2MiAxMUFCOworRDU3OTtENTc5OzExMTIgMTE2MiAxMUFDO0Q1Nzk7MTExMiAxMTYyIDExQUM7CitENTdBO0Q1N0E7MTExMiAxMTYyIDExQUQ7RDU3QTsxMTEyIDExNjIgMTFBRDsKK0Q1N0I7RDU3QjsxMTEyIDExNjIgMTFBRTtENTdCOzExMTIgMTE2MiAxMUFFOworRDU3QztENTdDOzExMTIgMTE2MiAxMUFGO0Q1N0M7MTExMiAxMTYyIDExQUY7CitENTdEO0Q1N0Q7MTExMiAxMTYyIDExQjA7RDU3RDsxMTEyIDExNjIgMTFCMDsKK0Q1N0U7RDU3RTsxMTEyIDExNjIgMTFCMTtENTdFOzExMTIgMTE2MiAxMUIxOworRDU3RjtENTdGOzExMTIgMTE2MiAxMUIyO0Q1N0Y7MTExMiAxMTYyIDExQjI7CitENTgwO0Q1ODA7MTExMiAxMTYyIDExQjM7RDU4MDsxMTEyIDExNjIgMTFCMzsKK0Q1ODE7RDU4MTsxMTEyIDExNjIgMTFCNDtENTgxOzExMTIgMTE2MiAxMUI0OworRDU4MjtENTgyOzExMTIgMTE2MiAxMUI1O0Q1ODI7MTExMiAxMTYyIDExQjU7CitENTgzO0Q1ODM7MTExMiAxMTYyIDExQjY7RDU4MzsxMTEyIDExNjIgMTFCNjsKK0Q1ODQ7RDU4NDsxMTEyIDExNjIgMTFCNztENTg0OzExMTIgMTE2MiAxMUI3OworRDU4NTtENTg1OzExMTIgMTE2MiAxMUI4O0Q1ODU7MTExMiAxMTYyIDExQjg7CitENTg2O0Q1ODY7MTExMiAxMTYyIDExQjk7RDU4NjsxMTEyIDExNjIgMTFCOTsKK0Q1ODc7RDU4NzsxMTEyIDExNjIgMTFCQTtENTg3OzExMTIgMTE2MiAxMUJBOworRDU4ODtENTg4OzExMTIgMTE2MiAxMUJCO0Q1ODg7MTExMiAxMTYyIDExQkI7CitENTg5O0Q1ODk7MTExMiAxMTYyIDExQkM7RDU4OTsxMTEyIDExNjIgMTFCQzsKK0Q1OEE7RDU4QTsxMTEyIDExNjIgMTFCRDtENThBOzExMTIgMTE2MiAxMUJEOworRDU4QjtENThCOzExMTIgMTE2MiAxMUJFO0Q1OEI7MTExMiAxMTYyIDExQkU7CitENThDO0Q1OEM7MTExMiAxMTYyIDExQkY7RDU4QzsxMTEyIDExNjIgMTFCRjsKK0Q1OEQ7RDU4RDsxMTEyIDExNjIgMTFDMDtENThEOzExMTIgMTE2MiAxMUMwOworRDU4RTtENThFOzExMTIgMTE2MiAxMUMxO0Q1OEU7MTExMiAxMTYyIDExQzE7CitENThGO0Q1OEY7MTExMiAxMTYyIDExQzI7RDU4RjsxMTEyIDExNjIgMTFDMjsKK0Q1OTA7RDU5MDsxMTEyIDExNjM7RDU5MDsxMTEyIDExNjM7CitENTkxO0Q1OTE7MTExMiAxMTYzIDExQTg7RDU5MTsxMTEyIDExNjMgMTFBODsKK0Q1OTI7RDU5MjsxMTEyIDExNjMgMTFBOTtENTkyOzExMTIgMTE2MyAxMUE5OworRDU5MztENTkzOzExMTIgMTE2MyAxMUFBO0Q1OTM7MTExMiAxMTYzIDExQUE7CitENTk0O0Q1OTQ7MTExMiAxMTYzIDExQUI7RDU5NDsxMTEyIDExNjMgMTFBQjsKK0Q1OTU7RDU5NTsxMTEyIDExNjMgMTFBQztENTk1OzExMTIgMTE2MyAxMUFDOworRDU5NjtENTk2OzExMTIgMTE2MyAxMUFEO0Q1OTY7MTExMiAxMTYzIDExQUQ7CitENTk3O0Q1OTc7MTExMiAxMTYzIDExQUU7RDU5NzsxMTEyIDExNjMgMTFBRTsKK0Q1OTg7RDU5ODsxMTEyIDExNjMgMTFBRjtENTk4OzExMTIgMTE2MyAxMUFGOworRDU5OTtENTk5OzExMTIgMTE2MyAxMUIwO0Q1OTk7MTExMiAxMTYzIDExQjA7CitENTlBO0Q1OUE7MTExMiAxMTYzIDExQjE7RDU5QTsxMTEyIDExNjMgMTFCMTsKK0Q1OUI7RDU5QjsxMTEyIDExNjMgMTFCMjtENTlCOzExMTIgMTE2MyAxMUIyOworRDU5QztENTlDOzExMTIgMTE2MyAxMUIzO0Q1OUM7MTExMiAxMTYzIDExQjM7CitENTlEO0Q1OUQ7MTExMiAxMTYzIDExQjQ7RDU5RDsxMTEyIDExNjMgMTFCNDsKK0Q1OUU7RDU5RTsxMTEyIDExNjMgMTFCNTtENTlFOzExMTIgMTE2MyAxMUI1OworRDU5RjtENTlGOzExMTIgMTE2MyAxMUI2O0Q1OUY7MTExMiAxMTYzIDExQjY7CitENUEwO0Q1QTA7MTExMiAxMTYzIDExQjc7RDVBMDsxMTEyIDExNjMgMTFCNzsKK0Q1QTE7RDVBMTsxMTEyIDExNjMgMTFCODtENUExOzExMTIgMTE2MyAxMUI4OworRDVBMjtENUEyOzExMTIgMTE2MyAxMUI5O0Q1QTI7MTExMiAxMTYzIDExQjk7CitENUEzO0Q1QTM7MTExMiAxMTYzIDExQkE7RDVBMzsxMTEyIDExNjMgMTFCQTsKK0Q1QTQ7RDVBNDsxMTEyIDExNjMgMTFCQjtENUE0OzExMTIgMTE2MyAxMUJCOworRDVBNTtENUE1OzExMTIgMTE2MyAxMUJDO0Q1QTU7MTExMiAxMTYzIDExQkM7CitENUE2O0Q1QTY7MTExMiAxMTYzIDExQkQ7RDVBNjsxMTEyIDExNjMgMTFCRDsKK0Q1QTc7RDVBNzsxMTEyIDExNjMgMTFCRTtENUE3OzExMTIgMTE2MyAxMUJFOworRDVBODtENUE4OzExMTIgMTE2MyAxMUJGO0Q1QTg7MTExMiAxMTYzIDExQkY7CitENUE5O0Q1QTk7MTExMiAxMTYzIDExQzA7RDVBOTsxMTEyIDExNjMgMTFDMDsKK0Q1QUE7RDVBQTsxMTEyIDExNjMgMTFDMTtENUFBOzExMTIgMTE2MyAxMUMxOworRDVBQjtENUFCOzExMTIgMTE2MyAxMUMyO0Q1QUI7MTExMiAxMTYzIDExQzI7CitENUFDO0Q1QUM7MTExMiAxMTY0O0Q1QUM7MTExMiAxMTY0OworRDVBRDtENUFEOzExMTIgMTE2NCAxMUE4O0Q1QUQ7MTExMiAxMTY0IDExQTg7CitENUFFO0Q1QUU7MTExMiAxMTY0IDExQTk7RDVBRTsxMTEyIDExNjQgMTFBOTsKK0Q1QUY7RDVBRjsxMTEyIDExNjQgMTFBQTtENUFGOzExMTIgMTE2NCAxMUFBOworRDVCMDtENUIwOzExMTIgMTE2NCAxMUFCO0Q1QjA7MTExMiAxMTY0IDExQUI7CitENUIxO0Q1QjE7MTExMiAxMTY0IDExQUM7RDVCMTsxMTEyIDExNjQgMTFBQzsKK0Q1QjI7RDVCMjsxMTEyIDExNjQgMTFBRDtENUIyOzExMTIgMTE2NCAxMUFEOworRDVCMztENUIzOzExMTIgMTE2NCAxMUFFO0Q1QjM7MTExMiAxMTY0IDExQUU7CitENUI0O0Q1QjQ7MTExMiAxMTY0IDExQUY7RDVCNDsxMTEyIDExNjQgMTFBRjsKK0Q1QjU7RDVCNTsxMTEyIDExNjQgMTFCMDtENUI1OzExMTIgMTE2NCAxMUIwOworRDVCNjtENUI2OzExMTIgMTE2NCAxMUIxO0Q1QjY7MTExMiAxMTY0IDExQjE7CitENUI3O0Q1Qjc7MTExMiAxMTY0IDExQjI7RDVCNzsxMTEyIDExNjQgMTFCMjsKK0Q1Qjg7RDVCODsxMTEyIDExNjQgMTFCMztENUI4OzExMTIgMTE2NCAxMUIzOworRDVCOTtENUI5OzExMTIgMTE2NCAxMUI0O0Q1Qjk7MTExMiAxMTY0IDExQjQ7CitENUJBO0Q1QkE7MTExMiAxMTY0IDExQjU7RDVCQTsxMTEyIDExNjQgMTFCNTsKK0Q1QkI7RDVCQjsxMTEyIDExNjQgMTFCNjtENUJCOzExMTIgMTE2NCAxMUI2OworRDVCQztENUJDOzExMTIgMTE2NCAxMUI3O0Q1QkM7MTExMiAxMTY0IDExQjc7CitENUJEO0Q1QkQ7MTExMiAxMTY0IDExQjg7RDVCRDsxMTEyIDExNjQgMTFCODsKK0Q1QkU7RDVCRTsxMTEyIDExNjQgMTFCOTtENUJFOzExMTIgMTE2NCAxMUI5OworRDVCRjtENUJGOzExMTIgMTE2NCAxMUJBO0Q1QkY7MTExMiAxMTY0IDExQkE7CitENUMwO0Q1QzA7MTExMiAxMTY0IDExQkI7RDVDMDsxMTEyIDExNjQgMTFCQjsKK0Q1QzE7RDVDMTsxMTEyIDExNjQgMTFCQztENUMxOzExMTIgMTE2NCAxMUJDOworRDVDMjtENUMyOzExMTIgMTE2NCAxMUJEO0Q1QzI7MTExMiAxMTY0IDExQkQ7CitENUMzO0Q1QzM7MTExMiAxMTY0IDExQkU7RDVDMzsxMTEyIDExNjQgMTFCRTsKK0Q1QzQ7RDVDNDsxMTEyIDExNjQgMTFCRjtENUM0OzExMTIgMTE2NCAxMUJGOworRDVDNTtENUM1OzExMTIgMTE2NCAxMUMwO0Q1QzU7MTExMiAxMTY0IDExQzA7CitENUM2O0Q1QzY7MTExMiAxMTY0IDExQzE7RDVDNjsxMTEyIDExNjQgMTFDMTsKK0Q1Qzc7RDVDNzsxMTEyIDExNjQgMTFDMjtENUM3OzExMTIgMTE2NCAxMUMyOworRDVDODtENUM4OzExMTIgMTE2NTtENUM4OzExMTIgMTE2NTsKK0Q1Qzk7RDVDOTsxMTEyIDExNjUgMTFBODtENUM5OzExMTIgMTE2NSAxMUE4OworRDVDQTtENUNBOzExMTIgMTE2NSAxMUE5O0Q1Q0E7MTExMiAxMTY1IDExQTk7CitENUNCO0Q1Q0I7MTExMiAxMTY1IDExQUE7RDVDQjsxMTEyIDExNjUgMTFBQTsKK0Q1Q0M7RDVDQzsxMTEyIDExNjUgMTFBQjtENUNDOzExMTIgMTE2NSAxMUFCOworRDVDRDtENUNEOzExMTIgMTE2NSAxMUFDO0Q1Q0Q7MTExMiAxMTY1IDExQUM7CitENUNFO0Q1Q0U7MTExMiAxMTY1IDExQUQ7RDVDRTsxMTEyIDExNjUgMTFBRDsKK0Q1Q0Y7RDVDRjsxMTEyIDExNjUgMTFBRTtENUNGOzExMTIgMTE2NSAxMUFFOworRDVEMDtENUQwOzExMTIgMTE2NSAxMUFGO0Q1RDA7MTExMiAxMTY1IDExQUY7CitENUQxO0Q1RDE7MTExMiAxMTY1IDExQjA7RDVEMTsxMTEyIDExNjUgMTFCMDsKK0Q1RDI7RDVEMjsxMTEyIDExNjUgMTFCMTtENUQyOzExMTIgMTE2NSAxMUIxOworRDVEMztENUQzOzExMTIgMTE2NSAxMUIyO0Q1RDM7MTExMiAxMTY1IDExQjI7CitENUQ0O0Q1RDQ7MTExMiAxMTY1IDExQjM7RDVENDsxMTEyIDExNjUgMTFCMzsKK0Q1RDU7RDVENTsxMTEyIDExNjUgMTFCNDtENUQ1OzExMTIgMTE2NSAxMUI0OworRDVENjtENUQ2OzExMTIgMTE2NSAxMUI1O0Q1RDY7MTExMiAxMTY1IDExQjU7CitENUQ3O0Q1RDc7MTExMiAxMTY1IDExQjY7RDVENzsxMTEyIDExNjUgMTFCNjsKK0Q1RDg7RDVEODsxMTEyIDExNjUgMTFCNztENUQ4OzExMTIgMTE2NSAxMUI3OworRDVEOTtENUQ5OzExMTIgMTE2NSAxMUI4O0Q1RDk7MTExMiAxMTY1IDExQjg7CitENURBO0Q1REE7MTExMiAxMTY1IDExQjk7RDVEQTsxMTEyIDExNjUgMTFCOTsKK0Q1REI7RDVEQjsxMTEyIDExNjUgMTFCQTtENURCOzExMTIgMTE2NSAxMUJBOworRDVEQztENURDOzExMTIgMTE2NSAxMUJCO0Q1REM7MTExMiAxMTY1IDExQkI7CitENUREO0Q1REQ7MTExMiAxMTY1IDExQkM7RDVERDsxMTEyIDExNjUgMTFCQzsKK0Q1REU7RDVERTsxMTEyIDExNjUgMTFCRDtENURFOzExMTIgMTE2NSAxMUJEOworRDVERjtENURGOzExMTIgMTE2NSAxMUJFO0Q1REY7MTExMiAxMTY1IDExQkU7CitENUUwO0Q1RTA7MTExMiAxMTY1IDExQkY7RDVFMDsxMTEyIDExNjUgMTFCRjsKK0Q1RTE7RDVFMTsxMTEyIDExNjUgMTFDMDtENUUxOzExMTIgMTE2NSAxMUMwOworRDVFMjtENUUyOzExMTIgMTE2NSAxMUMxO0Q1RTI7MTExMiAxMTY1IDExQzE7CitENUUzO0Q1RTM7MTExMiAxMTY1IDExQzI7RDVFMzsxMTEyIDExNjUgMTFDMjsKK0Q1RTQ7RDVFNDsxMTEyIDExNjY7RDVFNDsxMTEyIDExNjY7CitENUU1O0Q1RTU7MTExMiAxMTY2IDExQTg7RDVFNTsxMTEyIDExNjYgMTFBODsKK0Q1RTY7RDVFNjsxMTEyIDExNjYgMTFBOTtENUU2OzExMTIgMTE2NiAxMUE5OworRDVFNztENUU3OzExMTIgMTE2NiAxMUFBO0Q1RTc7MTExMiAxMTY2IDExQUE7CitENUU4O0Q1RTg7MTExMiAxMTY2IDExQUI7RDVFODsxMTEyIDExNjYgMTFBQjsKK0Q1RTk7RDVFOTsxMTEyIDExNjYgMTFBQztENUU5OzExMTIgMTE2NiAxMUFDOworRDVFQTtENUVBOzExMTIgMTE2NiAxMUFEO0Q1RUE7MTExMiAxMTY2IDExQUQ7CitENUVCO0Q1RUI7MTExMiAxMTY2IDExQUU7RDVFQjsxMTEyIDExNjYgMTFBRTsKK0Q1RUM7RDVFQzsxMTEyIDExNjYgMTFBRjtENUVDOzExMTIgMTE2NiAxMUFGOworRDVFRDtENUVEOzExMTIgMTE2NiAxMUIwO0Q1RUQ7MTExMiAxMTY2IDExQjA7CitENUVFO0Q1RUU7MTExMiAxMTY2IDExQjE7RDVFRTsxMTEyIDExNjYgMTFCMTsKK0Q1RUY7RDVFRjsxMTEyIDExNjYgMTFCMjtENUVGOzExMTIgMTE2NiAxMUIyOworRDVGMDtENUYwOzExMTIgMTE2NiAxMUIzO0Q1RjA7MTExMiAxMTY2IDExQjM7CitENUYxO0Q1RjE7MTExMiAxMTY2IDExQjQ7RDVGMTsxMTEyIDExNjYgMTFCNDsKK0Q1RjI7RDVGMjsxMTEyIDExNjYgMTFCNTtENUYyOzExMTIgMTE2NiAxMUI1OworRDVGMztENUYzOzExMTIgMTE2NiAxMUI2O0Q1RjM7MTExMiAxMTY2IDExQjY7CitENUY0O0Q1RjQ7MTExMiAxMTY2IDExQjc7RDVGNDsxMTEyIDExNjYgMTFCNzsKK0Q1RjU7RDVGNTsxMTEyIDExNjYgMTFCODtENUY1OzExMTIgMTE2NiAxMUI4OworRDVGNjtENUY2OzExMTIgMTE2NiAxMUI5O0Q1RjY7MTExMiAxMTY2IDExQjk7CitENUY3O0Q1Rjc7MTExMiAxMTY2IDExQkE7RDVGNzsxMTEyIDExNjYgMTFCQTsKK0Q1Rjg7RDVGODsxMTEyIDExNjYgMTFCQjtENUY4OzExMTIgMTE2NiAxMUJCOworRDVGOTtENUY5OzExMTIgMTE2NiAxMUJDO0Q1Rjk7MTExMiAxMTY2IDExQkM7CitENUZBO0Q1RkE7MTExMiAxMTY2IDExQkQ7RDVGQTsxMTEyIDExNjYgMTFCRDsKK0Q1RkI7RDVGQjsxMTEyIDExNjYgMTFCRTtENUZCOzExMTIgMTE2NiAxMUJFOworRDVGQztENUZDOzExMTIgMTE2NiAxMUJGO0Q1RkM7MTExMiAxMTY2IDExQkY7CitENUZEO0Q1RkQ7MTExMiAxMTY2IDExQzA7RDVGRDsxMTEyIDExNjYgMTFDMDsKK0Q1RkU7RDVGRTsxMTEyIDExNjYgMTFDMTtENUZFOzExMTIgMTE2NiAxMUMxOworRDVGRjtENUZGOzExMTIgMTE2NiAxMUMyO0Q1RkY7MTExMiAxMTY2IDExQzI7CitENjAwO0Q2MDA7MTExMiAxMTY3O0Q2MDA7MTExMiAxMTY3OworRDYwMTtENjAxOzExMTIgMTE2NyAxMUE4O0Q2MDE7MTExMiAxMTY3IDExQTg7CitENjAyO0Q2MDI7MTExMiAxMTY3IDExQTk7RDYwMjsxMTEyIDExNjcgMTFBOTsKK0Q2MDM7RDYwMzsxMTEyIDExNjcgMTFBQTtENjAzOzExMTIgMTE2NyAxMUFBOworRDYwNDtENjA0OzExMTIgMTE2NyAxMUFCO0Q2MDQ7MTExMiAxMTY3IDExQUI7CitENjA1O0Q2MDU7MTExMiAxMTY3IDExQUM7RDYwNTsxMTEyIDExNjcgMTFBQzsKK0Q2MDY7RDYwNjsxMTEyIDExNjcgMTFBRDtENjA2OzExMTIgMTE2NyAxMUFEOworRDYwNztENjA3OzExMTIgMTE2NyAxMUFFO0Q2MDc7MTExMiAxMTY3IDExQUU7CitENjA4O0Q2MDg7MTExMiAxMTY3IDExQUY7RDYwODsxMTEyIDExNjcgMTFBRjsKK0Q2MDk7RDYwOTsxMTEyIDExNjcgMTFCMDtENjA5OzExMTIgMTE2NyAxMUIwOworRDYwQTtENjBBOzExMTIgMTE2NyAxMUIxO0Q2MEE7MTExMiAxMTY3IDExQjE7CitENjBCO0Q2MEI7MTExMiAxMTY3IDExQjI7RDYwQjsxMTEyIDExNjcgMTFCMjsKK0Q2MEM7RDYwQzsxMTEyIDExNjcgMTFCMztENjBDOzExMTIgMTE2NyAxMUIzOworRDYwRDtENjBEOzExMTIgMTE2NyAxMUI0O0Q2MEQ7MTExMiAxMTY3IDExQjQ7CitENjBFO0Q2MEU7MTExMiAxMTY3IDExQjU7RDYwRTsxMTEyIDExNjcgMTFCNTsKK0Q2MEY7RDYwRjsxMTEyIDExNjcgMTFCNjtENjBGOzExMTIgMTE2NyAxMUI2OworRDYxMDtENjEwOzExMTIgMTE2NyAxMUI3O0Q2MTA7MTExMiAxMTY3IDExQjc7CitENjExO0Q2MTE7MTExMiAxMTY3IDExQjg7RDYxMTsxMTEyIDExNjcgMTFCODsKK0Q2MTI7RDYxMjsxMTEyIDExNjcgMTFCOTtENjEyOzExMTIgMTE2NyAxMUI5OworRDYxMztENjEzOzExMTIgMTE2NyAxMUJBO0Q2MTM7MTExMiAxMTY3IDExQkE7CitENjE0O0Q2MTQ7MTExMiAxMTY3IDExQkI7RDYxNDsxMTEyIDExNjcgMTFCQjsKK0Q2MTU7RDYxNTsxMTEyIDExNjcgMTFCQztENjE1OzExMTIgMTE2NyAxMUJDOworRDYxNjtENjE2OzExMTIgMTE2NyAxMUJEO0Q2MTY7MTExMiAxMTY3IDExQkQ7CitENjE3O0Q2MTc7MTExMiAxMTY3IDExQkU7RDYxNzsxMTEyIDExNjcgMTFCRTsKK0Q2MTg7RDYxODsxMTEyIDExNjcgMTFCRjtENjE4OzExMTIgMTE2NyAxMUJGOworRDYxOTtENjE5OzExMTIgMTE2NyAxMUMwO0Q2MTk7MTExMiAxMTY3IDExQzA7CitENjFBO0Q2MUE7MTExMiAxMTY3IDExQzE7RDYxQTsxMTEyIDExNjcgMTFDMTsKK0Q2MUI7RDYxQjsxMTEyIDExNjcgMTFDMjtENjFCOzExMTIgMTE2NyAxMUMyOworRDYxQztENjFDOzExMTIgMTE2ODtENjFDOzExMTIgMTE2ODsKK0Q2MUQ7RDYxRDsxMTEyIDExNjggMTFBODtENjFEOzExMTIgMTE2OCAxMUE4OworRDYxRTtENjFFOzExMTIgMTE2OCAxMUE5O0Q2MUU7MTExMiAxMTY4IDExQTk7CitENjFGO0Q2MUY7MTExMiAxMTY4IDExQUE7RDYxRjsxMTEyIDExNjggMTFBQTsKK0Q2MjA7RDYyMDsxMTEyIDExNjggMTFBQjtENjIwOzExMTIgMTE2OCAxMUFCOworRDYyMTtENjIxOzExMTIgMTE2OCAxMUFDO0Q2MjE7MTExMiAxMTY4IDExQUM7CitENjIyO0Q2MjI7MTExMiAxMTY4IDExQUQ7RDYyMjsxMTEyIDExNjggMTFBRDsKK0Q2MjM7RDYyMzsxMTEyIDExNjggMTFBRTtENjIzOzExMTIgMTE2OCAxMUFFOworRDYyNDtENjI0OzExMTIgMTE2OCAxMUFGO0Q2MjQ7MTExMiAxMTY4IDExQUY7CitENjI1O0Q2MjU7MTExMiAxMTY4IDExQjA7RDYyNTsxMTEyIDExNjggMTFCMDsKK0Q2MjY7RDYyNjsxMTEyIDExNjggMTFCMTtENjI2OzExMTIgMTE2OCAxMUIxOworRDYyNztENjI3OzExMTIgMTE2OCAxMUIyO0Q2Mjc7MTExMiAxMTY4IDExQjI7CitENjI4O0Q2Mjg7MTExMiAxMTY4IDExQjM7RDYyODsxMTEyIDExNjggMTFCMzsKK0Q2Mjk7RDYyOTsxMTEyIDExNjggMTFCNDtENjI5OzExMTIgMTE2OCAxMUI0OworRDYyQTtENjJBOzExMTIgMTE2OCAxMUI1O0Q2MkE7MTExMiAxMTY4IDExQjU7CitENjJCO0Q2MkI7MTExMiAxMTY4IDExQjY7RDYyQjsxMTEyIDExNjggMTFCNjsKK0Q2MkM7RDYyQzsxMTEyIDExNjggMTFCNztENjJDOzExMTIgMTE2OCAxMUI3OworRDYyRDtENjJEOzExMTIgMTE2OCAxMUI4O0Q2MkQ7MTExMiAxMTY4IDExQjg7CitENjJFO0Q2MkU7MTExMiAxMTY4IDExQjk7RDYyRTsxMTEyIDExNjggMTFCOTsKK0Q2MkY7RDYyRjsxMTEyIDExNjggMTFCQTtENjJGOzExMTIgMTE2OCAxMUJBOworRDYzMDtENjMwOzExMTIgMTE2OCAxMUJCO0Q2MzA7MTExMiAxMTY4IDExQkI7CitENjMxO0Q2MzE7MTExMiAxMTY4IDExQkM7RDYzMTsxMTEyIDExNjggMTFCQzsKK0Q2MzI7RDYzMjsxMTEyIDExNjggMTFCRDtENjMyOzExMTIgMTE2OCAxMUJEOworRDYzMztENjMzOzExMTIgMTE2OCAxMUJFO0Q2MzM7MTExMiAxMTY4IDExQkU7CitENjM0O0Q2MzQ7MTExMiAxMTY4IDExQkY7RDYzNDsxMTEyIDExNjggMTFCRjsKK0Q2MzU7RDYzNTsxMTEyIDExNjggMTFDMDtENjM1OzExMTIgMTE2OCAxMUMwOworRDYzNjtENjM2OzExMTIgMTE2OCAxMUMxO0Q2MzY7MTExMiAxMTY4IDExQzE7CitENjM3O0Q2Mzc7MTExMiAxMTY4IDExQzI7RDYzNzsxMTEyIDExNjggMTFDMjsKK0Q2Mzg7RDYzODsxMTEyIDExNjk7RDYzODsxMTEyIDExNjk7CitENjM5O0Q2Mzk7MTExMiAxMTY5IDExQTg7RDYzOTsxMTEyIDExNjkgMTFBODsKK0Q2M0E7RDYzQTsxMTEyIDExNjkgMTFBOTtENjNBOzExMTIgMTE2OSAxMUE5OworRDYzQjtENjNCOzExMTIgMTE2OSAxMUFBO0Q2M0I7MTExMiAxMTY5IDExQUE7CitENjNDO0Q2M0M7MTExMiAxMTY5IDExQUI7RDYzQzsxMTEyIDExNjkgMTFBQjsKK0Q2M0Q7RDYzRDsxMTEyIDExNjkgMTFBQztENjNEOzExMTIgMTE2OSAxMUFDOworRDYzRTtENjNFOzExMTIgMTE2OSAxMUFEO0Q2M0U7MTExMiAxMTY5IDExQUQ7CitENjNGO0Q2M0Y7MTExMiAxMTY5IDExQUU7RDYzRjsxMTEyIDExNjkgMTFBRTsKK0Q2NDA7RDY0MDsxMTEyIDExNjkgMTFBRjtENjQwOzExMTIgMTE2OSAxMUFGOworRDY0MTtENjQxOzExMTIgMTE2OSAxMUIwO0Q2NDE7MTExMiAxMTY5IDExQjA7CitENjQyO0Q2NDI7MTExMiAxMTY5IDExQjE7RDY0MjsxMTEyIDExNjkgMTFCMTsKK0Q2NDM7RDY0MzsxMTEyIDExNjkgMTFCMjtENjQzOzExMTIgMTE2OSAxMUIyOworRDY0NDtENjQ0OzExMTIgMTE2OSAxMUIzO0Q2NDQ7MTExMiAxMTY5IDExQjM7CitENjQ1O0Q2NDU7MTExMiAxMTY5IDExQjQ7RDY0NTsxMTEyIDExNjkgMTFCNDsKK0Q2NDY7RDY0NjsxMTEyIDExNjkgMTFCNTtENjQ2OzExMTIgMTE2OSAxMUI1OworRDY0NztENjQ3OzExMTIgMTE2OSAxMUI2O0Q2NDc7MTExMiAxMTY5IDExQjY7CitENjQ4O0Q2NDg7MTExMiAxMTY5IDExQjc7RDY0ODsxMTEyIDExNjkgMTFCNzsKK0Q2NDk7RDY0OTsxMTEyIDExNjkgMTFCODtENjQ5OzExMTIgMTE2OSAxMUI4OworRDY0QTtENjRBOzExMTIgMTE2OSAxMUI5O0Q2NEE7MTExMiAxMTY5IDExQjk7CitENjRCO0Q2NEI7MTExMiAxMTY5IDExQkE7RDY0QjsxMTEyIDExNjkgMTFCQTsKK0Q2NEM7RDY0QzsxMTEyIDExNjkgMTFCQjtENjRDOzExMTIgMTE2OSAxMUJCOworRDY0RDtENjREOzExMTIgMTE2OSAxMUJDO0Q2NEQ7MTExMiAxMTY5IDExQkM7CitENjRFO0Q2NEU7MTExMiAxMTY5IDExQkQ7RDY0RTsxMTEyIDExNjkgMTFCRDsKK0Q2NEY7RDY0RjsxMTEyIDExNjkgMTFCRTtENjRGOzExMTIgMTE2OSAxMUJFOworRDY1MDtENjUwOzExMTIgMTE2OSAxMUJGO0Q2NTA7MTExMiAxMTY5IDExQkY7CitENjUxO0Q2NTE7MTExMiAxMTY5IDExQzA7RDY1MTsxMTEyIDExNjkgMTFDMDsKK0Q2NTI7RDY1MjsxMTEyIDExNjkgMTFDMTtENjUyOzExMTIgMTE2OSAxMUMxOworRDY1MztENjUzOzExMTIgMTE2OSAxMUMyO0Q2NTM7MTExMiAxMTY5IDExQzI7CitENjU0O0Q2NTQ7MTExMiAxMTZBO0Q2NTQ7MTExMiAxMTZBOworRDY1NTtENjU1OzExMTIgMTE2QSAxMUE4O0Q2NTU7MTExMiAxMTZBIDExQTg7CitENjU2O0Q2NTY7MTExMiAxMTZBIDExQTk7RDY1NjsxMTEyIDExNkEgMTFBOTsKK0Q2NTc7RDY1NzsxMTEyIDExNkEgMTFBQTtENjU3OzExMTIgMTE2QSAxMUFBOworRDY1ODtENjU4OzExMTIgMTE2QSAxMUFCO0Q2NTg7MTExMiAxMTZBIDExQUI7CitENjU5O0Q2NTk7MTExMiAxMTZBIDExQUM7RDY1OTsxMTEyIDExNkEgMTFBQzsKK0Q2NUE7RDY1QTsxMTEyIDExNkEgMTFBRDtENjVBOzExMTIgMTE2QSAxMUFEOworRDY1QjtENjVCOzExMTIgMTE2QSAxMUFFO0Q2NUI7MTExMiAxMTZBIDExQUU7CitENjVDO0Q2NUM7MTExMiAxMTZBIDExQUY7RDY1QzsxMTEyIDExNkEgMTFBRjsKK0Q2NUQ7RDY1RDsxMTEyIDExNkEgMTFCMDtENjVEOzExMTIgMTE2QSAxMUIwOworRDY1RTtENjVFOzExMTIgMTE2QSAxMUIxO0Q2NUU7MTExMiAxMTZBIDExQjE7CitENjVGO0Q2NUY7MTExMiAxMTZBIDExQjI7RDY1RjsxMTEyIDExNkEgMTFCMjsKK0Q2NjA7RDY2MDsxMTEyIDExNkEgMTFCMztENjYwOzExMTIgMTE2QSAxMUIzOworRDY2MTtENjYxOzExMTIgMTE2QSAxMUI0O0Q2NjE7MTExMiAxMTZBIDExQjQ7CitENjYyO0Q2NjI7MTExMiAxMTZBIDExQjU7RDY2MjsxMTEyIDExNkEgMTFCNTsKK0Q2NjM7RDY2MzsxMTEyIDExNkEgMTFCNjtENjYzOzExMTIgMTE2QSAxMUI2OworRDY2NDtENjY0OzExMTIgMTE2QSAxMUI3O0Q2NjQ7MTExMiAxMTZBIDExQjc7CitENjY1O0Q2NjU7MTExMiAxMTZBIDExQjg7RDY2NTsxMTEyIDExNkEgMTFCODsKK0Q2NjY7RDY2NjsxMTEyIDExNkEgMTFCOTtENjY2OzExMTIgMTE2QSAxMUI5OworRDY2NztENjY3OzExMTIgMTE2QSAxMUJBO0Q2Njc7MTExMiAxMTZBIDExQkE7CitENjY4O0Q2Njg7MTExMiAxMTZBIDExQkI7RDY2ODsxMTEyIDExNkEgMTFCQjsKK0Q2Njk7RDY2OTsxMTEyIDExNkEgMTFCQztENjY5OzExMTIgMTE2QSAxMUJDOworRDY2QTtENjZBOzExMTIgMTE2QSAxMUJEO0Q2NkE7MTExMiAxMTZBIDExQkQ7CitENjZCO0Q2NkI7MTExMiAxMTZBIDExQkU7RDY2QjsxMTEyIDExNkEgMTFCRTsKK0Q2NkM7RDY2QzsxMTEyIDExNkEgMTFCRjtENjZDOzExMTIgMTE2QSAxMUJGOworRDY2RDtENjZEOzExMTIgMTE2QSAxMUMwO0Q2NkQ7MTExMiAxMTZBIDExQzA7CitENjZFO0Q2NkU7MTExMiAxMTZBIDExQzE7RDY2RTsxMTEyIDExNkEgMTFDMTsKK0Q2NkY7RDY2RjsxMTEyIDExNkEgMTFDMjtENjZGOzExMTIgMTE2QSAxMUMyOworRDY3MDtENjcwOzExMTIgMTE2QjtENjcwOzExMTIgMTE2QjsKK0Q2NzE7RDY3MTsxMTEyIDExNkIgMTFBODtENjcxOzExMTIgMTE2QiAxMUE4OworRDY3MjtENjcyOzExMTIgMTE2QiAxMUE5O0Q2NzI7MTExMiAxMTZCIDExQTk7CitENjczO0Q2NzM7MTExMiAxMTZCIDExQUE7RDY3MzsxMTEyIDExNkIgMTFBQTsKK0Q2NzQ7RDY3NDsxMTEyIDExNkIgMTFBQjtENjc0OzExMTIgMTE2QiAxMUFCOworRDY3NTtENjc1OzExMTIgMTE2QiAxMUFDO0Q2NzU7MTExMiAxMTZCIDExQUM7CitENjc2O0Q2NzY7MTExMiAxMTZCIDExQUQ7RDY3NjsxMTEyIDExNkIgMTFBRDsKK0Q2Nzc7RDY3NzsxMTEyIDExNkIgMTFBRTtENjc3OzExMTIgMTE2QiAxMUFFOworRDY3ODtENjc4OzExMTIgMTE2QiAxMUFGO0Q2Nzg7MTExMiAxMTZCIDExQUY7CitENjc5O0Q2Nzk7MTExMiAxMTZCIDExQjA7RDY3OTsxMTEyIDExNkIgMTFCMDsKK0Q2N0E7RDY3QTsxMTEyIDExNkIgMTFCMTtENjdBOzExMTIgMTE2QiAxMUIxOworRDY3QjtENjdCOzExMTIgMTE2QiAxMUIyO0Q2N0I7MTExMiAxMTZCIDExQjI7CitENjdDO0Q2N0M7MTExMiAxMTZCIDExQjM7RDY3QzsxMTEyIDExNkIgMTFCMzsKK0Q2N0Q7RDY3RDsxMTEyIDExNkIgMTFCNDtENjdEOzExMTIgMTE2QiAxMUI0OworRDY3RTtENjdFOzExMTIgMTE2QiAxMUI1O0Q2N0U7MTExMiAxMTZCIDExQjU7CitENjdGO0Q2N0Y7MTExMiAxMTZCIDExQjY7RDY3RjsxMTEyIDExNkIgMTFCNjsKK0Q2ODA7RDY4MDsxMTEyIDExNkIgMTFCNztENjgwOzExMTIgMTE2QiAxMUI3OworRDY4MTtENjgxOzExMTIgMTE2QiAxMUI4O0Q2ODE7MTExMiAxMTZCIDExQjg7CitENjgyO0Q2ODI7MTExMiAxMTZCIDExQjk7RDY4MjsxMTEyIDExNkIgMTFCOTsKK0Q2ODM7RDY4MzsxMTEyIDExNkIgMTFCQTtENjgzOzExMTIgMTE2QiAxMUJBOworRDY4NDtENjg0OzExMTIgMTE2QiAxMUJCO0Q2ODQ7MTExMiAxMTZCIDExQkI7CitENjg1O0Q2ODU7MTExMiAxMTZCIDExQkM7RDY4NTsxMTEyIDExNkIgMTFCQzsKK0Q2ODY7RDY4NjsxMTEyIDExNkIgMTFCRDtENjg2OzExMTIgMTE2QiAxMUJEOworRDY4NztENjg3OzExMTIgMTE2QiAxMUJFO0Q2ODc7MTExMiAxMTZCIDExQkU7CitENjg4O0Q2ODg7MTExMiAxMTZCIDExQkY7RDY4ODsxMTEyIDExNkIgMTFCRjsKK0Q2ODk7RDY4OTsxMTEyIDExNkIgMTFDMDtENjg5OzExMTIgMTE2QiAxMUMwOworRDY4QTtENjhBOzExMTIgMTE2QiAxMUMxO0Q2OEE7MTExMiAxMTZCIDExQzE7CitENjhCO0Q2OEI7MTExMiAxMTZCIDExQzI7RDY4QjsxMTEyIDExNkIgMTFDMjsKK0Q2OEM7RDY4QzsxMTEyIDExNkM7RDY4QzsxMTEyIDExNkM7CitENjhEO0Q2OEQ7MTExMiAxMTZDIDExQTg7RDY4RDsxMTEyIDExNkMgMTFBODsKK0Q2OEU7RDY4RTsxMTEyIDExNkMgMTFBOTtENjhFOzExMTIgMTE2QyAxMUE5OworRDY4RjtENjhGOzExMTIgMTE2QyAxMUFBO0Q2OEY7MTExMiAxMTZDIDExQUE7CitENjkwO0Q2OTA7MTExMiAxMTZDIDExQUI7RDY5MDsxMTEyIDExNkMgMTFBQjsKK0Q2OTE7RDY5MTsxMTEyIDExNkMgMTFBQztENjkxOzExMTIgMTE2QyAxMUFDOworRDY5MjtENjkyOzExMTIgMTE2QyAxMUFEO0Q2OTI7MTExMiAxMTZDIDExQUQ7CitENjkzO0Q2OTM7MTExMiAxMTZDIDExQUU7RDY5MzsxMTEyIDExNkMgMTFBRTsKK0Q2OTQ7RDY5NDsxMTEyIDExNkMgMTFBRjtENjk0OzExMTIgMTE2QyAxMUFGOworRDY5NTtENjk1OzExMTIgMTE2QyAxMUIwO0Q2OTU7MTExMiAxMTZDIDExQjA7CitENjk2O0Q2OTY7MTExMiAxMTZDIDExQjE7RDY5NjsxMTEyIDExNkMgMTFCMTsKK0Q2OTc7RDY5NzsxMTEyIDExNkMgMTFCMjtENjk3OzExMTIgMTE2QyAxMUIyOworRDY5ODtENjk4OzExMTIgMTE2QyAxMUIzO0Q2OTg7MTExMiAxMTZDIDExQjM7CitENjk5O0Q2OTk7MTExMiAxMTZDIDExQjQ7RDY5OTsxMTEyIDExNkMgMTFCNDsKK0Q2OUE7RDY5QTsxMTEyIDExNkMgMTFCNTtENjlBOzExMTIgMTE2QyAxMUI1OworRDY5QjtENjlCOzExMTIgMTE2QyAxMUI2O0Q2OUI7MTExMiAxMTZDIDExQjY7CitENjlDO0Q2OUM7MTExMiAxMTZDIDExQjc7RDY5QzsxMTEyIDExNkMgMTFCNzsKK0Q2OUQ7RDY5RDsxMTEyIDExNkMgMTFCODtENjlEOzExMTIgMTE2QyAxMUI4OworRDY5RTtENjlFOzExMTIgMTE2QyAxMUI5O0Q2OUU7MTExMiAxMTZDIDExQjk7CitENjlGO0Q2OUY7MTExMiAxMTZDIDExQkE7RDY5RjsxMTEyIDExNkMgMTFCQTsKK0Q2QTA7RDZBMDsxMTEyIDExNkMgMTFCQjtENkEwOzExMTIgMTE2QyAxMUJCOworRDZBMTtENkExOzExMTIgMTE2QyAxMUJDO0Q2QTE7MTExMiAxMTZDIDExQkM7CitENkEyO0Q2QTI7MTExMiAxMTZDIDExQkQ7RDZBMjsxMTEyIDExNkMgMTFCRDsKK0Q2QTM7RDZBMzsxMTEyIDExNkMgMTFCRTtENkEzOzExMTIgMTE2QyAxMUJFOworRDZBNDtENkE0OzExMTIgMTE2QyAxMUJGO0Q2QTQ7MTExMiAxMTZDIDExQkY7CitENkE1O0Q2QTU7MTExMiAxMTZDIDExQzA7RDZBNTsxMTEyIDExNkMgMTFDMDsKK0Q2QTY7RDZBNjsxMTEyIDExNkMgMTFDMTtENkE2OzExMTIgMTE2QyAxMUMxOworRDZBNztENkE3OzExMTIgMTE2QyAxMUMyO0Q2QTc7MTExMiAxMTZDIDExQzI7CitENkE4O0Q2QTg7MTExMiAxMTZEO0Q2QTg7MTExMiAxMTZEOworRDZBOTtENkE5OzExMTIgMTE2RCAxMUE4O0Q2QTk7MTExMiAxMTZEIDExQTg7CitENkFBO0Q2QUE7MTExMiAxMTZEIDExQTk7RDZBQTsxMTEyIDExNkQgMTFBOTsKK0Q2QUI7RDZBQjsxMTEyIDExNkQgMTFBQTtENkFCOzExMTIgMTE2RCAxMUFBOworRDZBQztENkFDOzExMTIgMTE2RCAxMUFCO0Q2QUM7MTExMiAxMTZEIDExQUI7CitENkFEO0Q2QUQ7MTExMiAxMTZEIDExQUM7RDZBRDsxMTEyIDExNkQgMTFBQzsKK0Q2QUU7RDZBRTsxMTEyIDExNkQgMTFBRDtENkFFOzExMTIgMTE2RCAxMUFEOworRDZBRjtENkFGOzExMTIgMTE2RCAxMUFFO0Q2QUY7MTExMiAxMTZEIDExQUU7CitENkIwO0Q2QjA7MTExMiAxMTZEIDExQUY7RDZCMDsxMTEyIDExNkQgMTFBRjsKK0Q2QjE7RDZCMTsxMTEyIDExNkQgMTFCMDtENkIxOzExMTIgMTE2RCAxMUIwOworRDZCMjtENkIyOzExMTIgMTE2RCAxMUIxO0Q2QjI7MTExMiAxMTZEIDExQjE7CitENkIzO0Q2QjM7MTExMiAxMTZEIDExQjI7RDZCMzsxMTEyIDExNkQgMTFCMjsKK0Q2QjQ7RDZCNDsxMTEyIDExNkQgMTFCMztENkI0OzExMTIgMTE2RCAxMUIzOworRDZCNTtENkI1OzExMTIgMTE2RCAxMUI0O0Q2QjU7MTExMiAxMTZEIDExQjQ7CitENkI2O0Q2QjY7MTExMiAxMTZEIDExQjU7RDZCNjsxMTEyIDExNkQgMTFCNTsKK0Q2Qjc7RDZCNzsxMTEyIDExNkQgMTFCNjtENkI3OzExMTIgMTE2RCAxMUI2OworRDZCODtENkI4OzExMTIgMTE2RCAxMUI3O0Q2Qjg7MTExMiAxMTZEIDExQjc7CitENkI5O0Q2Qjk7MTExMiAxMTZEIDExQjg7RDZCOTsxMTEyIDExNkQgMTFCODsKK0Q2QkE7RDZCQTsxMTEyIDExNkQgMTFCOTtENkJBOzExMTIgMTE2RCAxMUI5OworRDZCQjtENkJCOzExMTIgMTE2RCAxMUJBO0Q2QkI7MTExMiAxMTZEIDExQkE7CitENkJDO0Q2QkM7MTExMiAxMTZEIDExQkI7RDZCQzsxMTEyIDExNkQgMTFCQjsKK0Q2QkQ7RDZCRDsxMTEyIDExNkQgMTFCQztENkJEOzExMTIgMTE2RCAxMUJDOworRDZCRTtENkJFOzExMTIgMTE2RCAxMUJEO0Q2QkU7MTExMiAxMTZEIDExQkQ7CitENkJGO0Q2QkY7MTExMiAxMTZEIDExQkU7RDZCRjsxMTEyIDExNkQgMTFCRTsKK0Q2QzA7RDZDMDsxMTEyIDExNkQgMTFCRjtENkMwOzExMTIgMTE2RCAxMUJGOworRDZDMTtENkMxOzExMTIgMTE2RCAxMUMwO0Q2QzE7MTExMiAxMTZEIDExQzA7CitENkMyO0Q2QzI7MTExMiAxMTZEIDExQzE7RDZDMjsxMTEyIDExNkQgMTFDMTsKK0Q2QzM7RDZDMzsxMTEyIDExNkQgMTFDMjtENkMzOzExMTIgMTE2RCAxMUMyOworRDZDNDtENkM0OzExMTIgMTE2RTtENkM0OzExMTIgMTE2RTsKK0Q2QzU7RDZDNTsxMTEyIDExNkUgMTFBODtENkM1OzExMTIgMTE2RSAxMUE4OworRDZDNjtENkM2OzExMTIgMTE2RSAxMUE5O0Q2QzY7MTExMiAxMTZFIDExQTk7CitENkM3O0Q2Qzc7MTExMiAxMTZFIDExQUE7RDZDNzsxMTEyIDExNkUgMTFBQTsKK0Q2Qzg7RDZDODsxMTEyIDExNkUgMTFBQjtENkM4OzExMTIgMTE2RSAxMUFCOworRDZDOTtENkM5OzExMTIgMTE2RSAxMUFDO0Q2Qzk7MTExMiAxMTZFIDExQUM7CitENkNBO0Q2Q0E7MTExMiAxMTZFIDExQUQ7RDZDQTsxMTEyIDExNkUgMTFBRDsKK0Q2Q0I7RDZDQjsxMTEyIDExNkUgMTFBRTtENkNCOzExMTIgMTE2RSAxMUFFOworRDZDQztENkNDOzExMTIgMTE2RSAxMUFGO0Q2Q0M7MTExMiAxMTZFIDExQUY7CitENkNEO0Q2Q0Q7MTExMiAxMTZFIDExQjA7RDZDRDsxMTEyIDExNkUgMTFCMDsKK0Q2Q0U7RDZDRTsxMTEyIDExNkUgMTFCMTtENkNFOzExMTIgMTE2RSAxMUIxOworRDZDRjtENkNGOzExMTIgMTE2RSAxMUIyO0Q2Q0Y7MTExMiAxMTZFIDExQjI7CitENkQwO0Q2RDA7MTExMiAxMTZFIDExQjM7RDZEMDsxMTEyIDExNkUgMTFCMzsKK0Q2RDE7RDZEMTsxMTEyIDExNkUgMTFCNDtENkQxOzExMTIgMTE2RSAxMUI0OworRDZEMjtENkQyOzExMTIgMTE2RSAxMUI1O0Q2RDI7MTExMiAxMTZFIDExQjU7CitENkQzO0Q2RDM7MTExMiAxMTZFIDExQjY7RDZEMzsxMTEyIDExNkUgMTFCNjsKK0Q2RDQ7RDZENDsxMTEyIDExNkUgMTFCNztENkQ0OzExMTIgMTE2RSAxMUI3OworRDZENTtENkQ1OzExMTIgMTE2RSAxMUI4O0Q2RDU7MTExMiAxMTZFIDExQjg7CitENkQ2O0Q2RDY7MTExMiAxMTZFIDExQjk7RDZENjsxMTEyIDExNkUgMTFCOTsKK0Q2RDc7RDZENzsxMTEyIDExNkUgMTFCQTtENkQ3OzExMTIgMTE2RSAxMUJBOworRDZEODtENkQ4OzExMTIgMTE2RSAxMUJCO0Q2RDg7MTExMiAxMTZFIDExQkI7CitENkQ5O0Q2RDk7MTExMiAxMTZFIDExQkM7RDZEOTsxMTEyIDExNkUgMTFCQzsKK0Q2REE7RDZEQTsxMTEyIDExNkUgMTFCRDtENkRBOzExMTIgMTE2RSAxMUJEOworRDZEQjtENkRCOzExMTIgMTE2RSAxMUJFO0Q2REI7MTExMiAxMTZFIDExQkU7CitENkRDO0Q2REM7MTExMiAxMTZFIDExQkY7RDZEQzsxMTEyIDExNkUgMTFCRjsKK0Q2REQ7RDZERDsxMTEyIDExNkUgMTFDMDtENkREOzExMTIgMTE2RSAxMUMwOworRDZERTtENkRFOzExMTIgMTE2RSAxMUMxO0Q2REU7MTExMiAxMTZFIDExQzE7CitENkRGO0Q2REY7MTExMiAxMTZFIDExQzI7RDZERjsxMTEyIDExNkUgMTFDMjsKK0Q2RTA7RDZFMDsxMTEyIDExNkY7RDZFMDsxMTEyIDExNkY7CitENkUxO0Q2RTE7MTExMiAxMTZGIDExQTg7RDZFMTsxMTEyIDExNkYgMTFBODsKK0Q2RTI7RDZFMjsxMTEyIDExNkYgMTFBOTtENkUyOzExMTIgMTE2RiAxMUE5OworRDZFMztENkUzOzExMTIgMTE2RiAxMUFBO0Q2RTM7MTExMiAxMTZGIDExQUE7CitENkU0O0Q2RTQ7MTExMiAxMTZGIDExQUI7RDZFNDsxMTEyIDExNkYgMTFBQjsKK0Q2RTU7RDZFNTsxMTEyIDExNkYgMTFBQztENkU1OzExMTIgMTE2RiAxMUFDOworRDZFNjtENkU2OzExMTIgMTE2RiAxMUFEO0Q2RTY7MTExMiAxMTZGIDExQUQ7CitENkU3O0Q2RTc7MTExMiAxMTZGIDExQUU7RDZFNzsxMTEyIDExNkYgMTFBRTsKK0Q2RTg7RDZFODsxMTEyIDExNkYgMTFBRjtENkU4OzExMTIgMTE2RiAxMUFGOworRDZFOTtENkU5OzExMTIgMTE2RiAxMUIwO0Q2RTk7MTExMiAxMTZGIDExQjA7CitENkVBO0Q2RUE7MTExMiAxMTZGIDExQjE7RDZFQTsxMTEyIDExNkYgMTFCMTsKK0Q2RUI7RDZFQjsxMTEyIDExNkYgMTFCMjtENkVCOzExMTIgMTE2RiAxMUIyOworRDZFQztENkVDOzExMTIgMTE2RiAxMUIzO0Q2RUM7MTExMiAxMTZGIDExQjM7CitENkVEO0Q2RUQ7MTExMiAxMTZGIDExQjQ7RDZFRDsxMTEyIDExNkYgMTFCNDsKK0Q2RUU7RDZFRTsxMTEyIDExNkYgMTFCNTtENkVFOzExMTIgMTE2RiAxMUI1OworRDZFRjtENkVGOzExMTIgMTE2RiAxMUI2O0Q2RUY7MTExMiAxMTZGIDExQjY7CitENkYwO0Q2RjA7MTExMiAxMTZGIDExQjc7RDZGMDsxMTEyIDExNkYgMTFCNzsKK0Q2RjE7RDZGMTsxMTEyIDExNkYgMTFCODtENkYxOzExMTIgMTE2RiAxMUI4OworRDZGMjtENkYyOzExMTIgMTE2RiAxMUI5O0Q2RjI7MTExMiAxMTZGIDExQjk7CitENkYzO0Q2RjM7MTExMiAxMTZGIDExQkE7RDZGMzsxMTEyIDExNkYgMTFCQTsKK0Q2RjQ7RDZGNDsxMTEyIDExNkYgMTFCQjtENkY0OzExMTIgMTE2RiAxMUJCOworRDZGNTtENkY1OzExMTIgMTE2RiAxMUJDO0Q2RjU7MTExMiAxMTZGIDExQkM7CitENkY2O0Q2RjY7MTExMiAxMTZGIDExQkQ7RDZGNjsxMTEyIDExNkYgMTFCRDsKK0Q2Rjc7RDZGNzsxMTEyIDExNkYgMTFCRTtENkY3OzExMTIgMTE2RiAxMUJFOworRDZGODtENkY4OzExMTIgMTE2RiAxMUJGO0Q2Rjg7MTExMiAxMTZGIDExQkY7CitENkY5O0Q2Rjk7MTExMiAxMTZGIDExQzA7RDZGOTsxMTEyIDExNkYgMTFDMDsKK0Q2RkE7RDZGQTsxMTEyIDExNkYgMTFDMTtENkZBOzExMTIgMTE2RiAxMUMxOworRDZGQjtENkZCOzExMTIgMTE2RiAxMUMyO0Q2RkI7MTExMiAxMTZGIDExQzI7CitENkZDO0Q2RkM7MTExMiAxMTcwO0Q2RkM7MTExMiAxMTcwOworRDZGRDtENkZEOzExMTIgMTE3MCAxMUE4O0Q2RkQ7MTExMiAxMTcwIDExQTg7CitENkZFO0Q2RkU7MTExMiAxMTcwIDExQTk7RDZGRTsxMTEyIDExNzAgMTFBOTsKK0Q2RkY7RDZGRjsxMTEyIDExNzAgMTFBQTtENkZGOzExMTIgMTE3MCAxMUFBOworRDcwMDtENzAwOzExMTIgMTE3MCAxMUFCO0Q3MDA7MTExMiAxMTcwIDExQUI7CitENzAxO0Q3MDE7MTExMiAxMTcwIDExQUM7RDcwMTsxMTEyIDExNzAgMTFBQzsKK0Q3MDI7RDcwMjsxMTEyIDExNzAgMTFBRDtENzAyOzExMTIgMTE3MCAxMUFEOworRDcwMztENzAzOzExMTIgMTE3MCAxMUFFO0Q3MDM7MTExMiAxMTcwIDExQUU7CitENzA0O0Q3MDQ7MTExMiAxMTcwIDExQUY7RDcwNDsxMTEyIDExNzAgMTFBRjsKK0Q3MDU7RDcwNTsxMTEyIDExNzAgMTFCMDtENzA1OzExMTIgMTE3MCAxMUIwOworRDcwNjtENzA2OzExMTIgMTE3MCAxMUIxO0Q3MDY7MTExMiAxMTcwIDExQjE7CitENzA3O0Q3MDc7MTExMiAxMTcwIDExQjI7RDcwNzsxMTEyIDExNzAgMTFCMjsKK0Q3MDg7RDcwODsxMTEyIDExNzAgMTFCMztENzA4OzExMTIgMTE3MCAxMUIzOworRDcwOTtENzA5OzExMTIgMTE3MCAxMUI0O0Q3MDk7MTExMiAxMTcwIDExQjQ7CitENzBBO0Q3MEE7MTExMiAxMTcwIDExQjU7RDcwQTsxMTEyIDExNzAgMTFCNTsKK0Q3MEI7RDcwQjsxMTEyIDExNzAgMTFCNjtENzBCOzExMTIgMTE3MCAxMUI2OworRDcwQztENzBDOzExMTIgMTE3MCAxMUI3O0Q3MEM7MTExMiAxMTcwIDExQjc7CitENzBEO0Q3MEQ7MTExMiAxMTcwIDExQjg7RDcwRDsxMTEyIDExNzAgMTFCODsKK0Q3MEU7RDcwRTsxMTEyIDExNzAgMTFCOTtENzBFOzExMTIgMTE3MCAxMUI5OworRDcwRjtENzBGOzExMTIgMTE3MCAxMUJBO0Q3MEY7MTExMiAxMTcwIDExQkE7CitENzEwO0Q3MTA7MTExMiAxMTcwIDExQkI7RDcxMDsxMTEyIDExNzAgMTFCQjsKK0Q3MTE7RDcxMTsxMTEyIDExNzAgMTFCQztENzExOzExMTIgMTE3MCAxMUJDOworRDcxMjtENzEyOzExMTIgMTE3MCAxMUJEO0Q3MTI7MTExMiAxMTcwIDExQkQ7CitENzEzO0Q3MTM7MTExMiAxMTcwIDExQkU7RDcxMzsxMTEyIDExNzAgMTFCRTsKK0Q3MTQ7RDcxNDsxMTEyIDExNzAgMTFCRjtENzE0OzExMTIgMTE3MCAxMUJGOworRDcxNTtENzE1OzExMTIgMTE3MCAxMUMwO0Q3MTU7MTExMiAxMTcwIDExQzA7CitENzE2O0Q3MTY7MTExMiAxMTcwIDExQzE7RDcxNjsxMTEyIDExNzAgMTFDMTsKK0Q3MTc7RDcxNzsxMTEyIDExNzAgMTFDMjtENzE3OzExMTIgMTE3MCAxMUMyOworRDcxODtENzE4OzExMTIgMTE3MTtENzE4OzExMTIgMTE3MTsKK0Q3MTk7RDcxOTsxMTEyIDExNzEgMTFBODtENzE5OzExMTIgMTE3MSAxMUE4OworRDcxQTtENzFBOzExMTIgMTE3MSAxMUE5O0Q3MUE7MTExMiAxMTcxIDExQTk7CitENzFCO0Q3MUI7MTExMiAxMTcxIDExQUE7RDcxQjsxMTEyIDExNzEgMTFBQTsKK0Q3MUM7RDcxQzsxMTEyIDExNzEgMTFBQjtENzFDOzExMTIgMTE3MSAxMUFCOworRDcxRDtENzFEOzExMTIgMTE3MSAxMUFDO0Q3MUQ7MTExMiAxMTcxIDExQUM7CitENzFFO0Q3MUU7MTExMiAxMTcxIDExQUQ7RDcxRTsxMTEyIDExNzEgMTFBRDsKK0Q3MUY7RDcxRjsxMTEyIDExNzEgMTFBRTtENzFGOzExMTIgMTE3MSAxMUFFOworRDcyMDtENzIwOzExMTIgMTE3MSAxMUFGO0Q3MjA7MTExMiAxMTcxIDExQUY7CitENzIxO0Q3MjE7MTExMiAxMTcxIDExQjA7RDcyMTsxMTEyIDExNzEgMTFCMDsKK0Q3MjI7RDcyMjsxMTEyIDExNzEgMTFCMTtENzIyOzExMTIgMTE3MSAxMUIxOworRDcyMztENzIzOzExMTIgMTE3MSAxMUIyO0Q3MjM7MTExMiAxMTcxIDExQjI7CitENzI0O0Q3MjQ7MTExMiAxMTcxIDExQjM7RDcyNDsxMTEyIDExNzEgMTFCMzsKK0Q3MjU7RDcyNTsxMTEyIDExNzEgMTFCNDtENzI1OzExMTIgMTE3MSAxMUI0OworRDcyNjtENzI2OzExMTIgMTE3MSAxMUI1O0Q3MjY7MTExMiAxMTcxIDExQjU7CitENzI3O0Q3Mjc7MTExMiAxMTcxIDExQjY7RDcyNzsxMTEyIDExNzEgMTFCNjsKK0Q3Mjg7RDcyODsxMTEyIDExNzEgMTFCNztENzI4OzExMTIgMTE3MSAxMUI3OworRDcyOTtENzI5OzExMTIgMTE3MSAxMUI4O0Q3Mjk7MTExMiAxMTcxIDExQjg7CitENzJBO0Q3MkE7MTExMiAxMTcxIDExQjk7RDcyQTsxMTEyIDExNzEgMTFCOTsKK0Q3MkI7RDcyQjsxMTEyIDExNzEgMTFCQTtENzJCOzExMTIgMTE3MSAxMUJBOworRDcyQztENzJDOzExMTIgMTE3MSAxMUJCO0Q3MkM7MTExMiAxMTcxIDExQkI7CitENzJEO0Q3MkQ7MTExMiAxMTcxIDExQkM7RDcyRDsxMTEyIDExNzEgMTFCQzsKK0Q3MkU7RDcyRTsxMTEyIDExNzEgMTFCRDtENzJFOzExMTIgMTE3MSAxMUJEOworRDcyRjtENzJGOzExMTIgMTE3MSAxMUJFO0Q3MkY7MTExMiAxMTcxIDExQkU7CitENzMwO0Q3MzA7MTExMiAxMTcxIDExQkY7RDczMDsxMTEyIDExNzEgMTFCRjsKK0Q3MzE7RDczMTsxMTEyIDExNzEgMTFDMDtENzMxOzExMTIgMTE3MSAxMUMwOworRDczMjtENzMyOzExMTIgMTE3MSAxMUMxO0Q3MzI7MTExMiAxMTcxIDExQzE7CitENzMzO0Q3MzM7MTExMiAxMTcxIDExQzI7RDczMzsxMTEyIDExNzEgMTFDMjsKK0Q3MzQ7RDczNDsxMTEyIDExNzI7RDczNDsxMTEyIDExNzI7CitENzM1O0Q3MzU7MTExMiAxMTcyIDExQTg7RDczNTsxMTEyIDExNzIgMTFBODsKK0Q3MzY7RDczNjsxMTEyIDExNzIgMTFBOTtENzM2OzExMTIgMTE3MiAxMUE5OworRDczNztENzM3OzExMTIgMTE3MiAxMUFBO0Q3Mzc7MTExMiAxMTcyIDExQUE7CitENzM4O0Q3Mzg7MTExMiAxMTcyIDExQUI7RDczODsxMTEyIDExNzIgMTFBQjsKK0Q3Mzk7RDczOTsxMTEyIDExNzIgMTFBQztENzM5OzExMTIgMTE3MiAxMUFDOworRDczQTtENzNBOzExMTIgMTE3MiAxMUFEO0Q3M0E7MTExMiAxMTcyIDExQUQ7CitENzNCO0Q3M0I7MTExMiAxMTcyIDExQUU7RDczQjsxMTEyIDExNzIgMTFBRTsKK0Q3M0M7RDczQzsxMTEyIDExNzIgMTFBRjtENzNDOzExMTIgMTE3MiAxMUFGOworRDczRDtENzNEOzExMTIgMTE3MiAxMUIwO0Q3M0Q7MTExMiAxMTcyIDExQjA7CitENzNFO0Q3M0U7MTExMiAxMTcyIDExQjE7RDczRTsxMTEyIDExNzIgMTFCMTsKK0Q3M0Y7RDczRjsxMTEyIDExNzIgMTFCMjtENzNGOzExMTIgMTE3MiAxMUIyOworRDc0MDtENzQwOzExMTIgMTE3MiAxMUIzO0Q3NDA7MTExMiAxMTcyIDExQjM7CitENzQxO0Q3NDE7MTExMiAxMTcyIDExQjQ7RDc0MTsxMTEyIDExNzIgMTFCNDsKK0Q3NDI7RDc0MjsxMTEyIDExNzIgMTFCNTtENzQyOzExMTIgMTE3MiAxMUI1OworRDc0MztENzQzOzExMTIgMTE3MiAxMUI2O0Q3NDM7MTExMiAxMTcyIDExQjY7CitENzQ0O0Q3NDQ7MTExMiAxMTcyIDExQjc7RDc0NDsxMTEyIDExNzIgMTFCNzsKK0Q3NDU7RDc0NTsxMTEyIDExNzIgMTFCODtENzQ1OzExMTIgMTE3MiAxMUI4OworRDc0NjtENzQ2OzExMTIgMTE3MiAxMUI5O0Q3NDY7MTExMiAxMTcyIDExQjk7CitENzQ3O0Q3NDc7MTExMiAxMTcyIDExQkE7RDc0NzsxMTEyIDExNzIgMTFCQTsKK0Q3NDg7RDc0ODsxMTEyIDExNzIgMTFCQjtENzQ4OzExMTIgMTE3MiAxMUJCOworRDc0OTtENzQ5OzExMTIgMTE3MiAxMUJDO0Q3NDk7MTExMiAxMTcyIDExQkM7CitENzRBO0Q3NEE7MTExMiAxMTcyIDExQkQ7RDc0QTsxMTEyIDExNzIgMTFCRDsKK0Q3NEI7RDc0QjsxMTEyIDExNzIgMTFCRTtENzRCOzExMTIgMTE3MiAxMUJFOworRDc0QztENzRDOzExMTIgMTE3MiAxMUJGO0Q3NEM7MTExMiAxMTcyIDExQkY7CitENzREO0Q3NEQ7MTExMiAxMTcyIDExQzA7RDc0RDsxMTEyIDExNzIgMTFDMDsKK0Q3NEU7RDc0RTsxMTEyIDExNzIgMTFDMTtENzRFOzExMTIgMTE3MiAxMUMxOworRDc0RjtENzRGOzExMTIgMTE3MiAxMUMyO0Q3NEY7MTExMiAxMTcyIDExQzI7CitENzUwO0Q3NTA7MTExMiAxMTczO0Q3NTA7MTExMiAxMTczOworRDc1MTtENzUxOzExMTIgMTE3MyAxMUE4O0Q3NTE7MTExMiAxMTczIDExQTg7CitENzUyO0Q3NTI7MTExMiAxMTczIDExQTk7RDc1MjsxMTEyIDExNzMgMTFBOTsKK0Q3NTM7RDc1MzsxMTEyIDExNzMgMTFBQTtENzUzOzExMTIgMTE3MyAxMUFBOworRDc1NDtENzU0OzExMTIgMTE3MyAxMUFCO0Q3NTQ7MTExMiAxMTczIDExQUI7CitENzU1O0Q3NTU7MTExMiAxMTczIDExQUM7RDc1NTsxMTEyIDExNzMgMTFBQzsKK0Q3NTY7RDc1NjsxMTEyIDExNzMgMTFBRDtENzU2OzExMTIgMTE3MyAxMUFEOworRDc1NztENzU3OzExMTIgMTE3MyAxMUFFO0Q3NTc7MTExMiAxMTczIDExQUU7CitENzU4O0Q3NTg7MTExMiAxMTczIDExQUY7RDc1ODsxMTEyIDExNzMgMTFBRjsKK0Q3NTk7RDc1OTsxMTEyIDExNzMgMTFCMDtENzU5OzExMTIgMTE3MyAxMUIwOworRDc1QTtENzVBOzExMTIgMTE3MyAxMUIxO0Q3NUE7MTExMiAxMTczIDExQjE7CitENzVCO0Q3NUI7MTExMiAxMTczIDExQjI7RDc1QjsxMTEyIDExNzMgMTFCMjsKK0Q3NUM7RDc1QzsxMTEyIDExNzMgMTFCMztENzVDOzExMTIgMTE3MyAxMUIzOworRDc1RDtENzVEOzExMTIgMTE3MyAxMUI0O0Q3NUQ7MTExMiAxMTczIDExQjQ7CitENzVFO0Q3NUU7MTExMiAxMTczIDExQjU7RDc1RTsxMTEyIDExNzMgMTFCNTsKK0Q3NUY7RDc1RjsxMTEyIDExNzMgMTFCNjtENzVGOzExMTIgMTE3MyAxMUI2OworRDc2MDtENzYwOzExMTIgMTE3MyAxMUI3O0Q3NjA7MTExMiAxMTczIDExQjc7CitENzYxO0Q3NjE7MTExMiAxMTczIDExQjg7RDc2MTsxMTEyIDExNzMgMTFCODsKK0Q3NjI7RDc2MjsxMTEyIDExNzMgMTFCOTtENzYyOzExMTIgMTE3MyAxMUI5OworRDc2MztENzYzOzExMTIgMTE3MyAxMUJBO0Q3NjM7MTExMiAxMTczIDExQkE7CitENzY0O0Q3NjQ7MTExMiAxMTczIDExQkI7RDc2NDsxMTEyIDExNzMgMTFCQjsKK0Q3NjU7RDc2NTsxMTEyIDExNzMgMTFCQztENzY1OzExMTIgMTE3MyAxMUJDOworRDc2NjtENzY2OzExMTIgMTE3MyAxMUJEO0Q3NjY7MTExMiAxMTczIDExQkQ7CitENzY3O0Q3Njc7MTExMiAxMTczIDExQkU7RDc2NzsxMTEyIDExNzMgMTFCRTsKK0Q3Njg7RDc2ODsxMTEyIDExNzMgMTFCRjtENzY4OzExMTIgMTE3MyAxMUJGOworRDc2OTtENzY5OzExMTIgMTE3MyAxMUMwO0Q3Njk7MTExMiAxMTczIDExQzA7CitENzZBO0Q3NkE7MTExMiAxMTczIDExQzE7RDc2QTsxMTEyIDExNzMgMTFDMTsKK0Q3NkI7RDc2QjsxMTEyIDExNzMgMTFDMjtENzZCOzExMTIgMTE3MyAxMUMyOworRDc2QztENzZDOzExMTIgMTE3NDtENzZDOzExMTIgMTE3NDsKK0Q3NkQ7RDc2RDsxMTEyIDExNzQgMTFBODtENzZEOzExMTIgMTE3NCAxMUE4OworRDc2RTtENzZFOzExMTIgMTE3NCAxMUE5O0Q3NkU7MTExMiAxMTc0IDExQTk7CitENzZGO0Q3NkY7MTExMiAxMTc0IDExQUE7RDc2RjsxMTEyIDExNzQgMTFBQTsKK0Q3NzA7RDc3MDsxMTEyIDExNzQgMTFBQjtENzcwOzExMTIgMTE3NCAxMUFCOworRDc3MTtENzcxOzExMTIgMTE3NCAxMUFDO0Q3NzE7MTExMiAxMTc0IDExQUM7CitENzcyO0Q3NzI7MTExMiAxMTc0IDExQUQ7RDc3MjsxMTEyIDExNzQgMTFBRDsKK0Q3NzM7RDc3MzsxMTEyIDExNzQgMTFBRTtENzczOzExMTIgMTE3NCAxMUFFOworRDc3NDtENzc0OzExMTIgMTE3NCAxMUFGO0Q3NzQ7MTExMiAxMTc0IDExQUY7CitENzc1O0Q3NzU7MTExMiAxMTc0IDExQjA7RDc3NTsxMTEyIDExNzQgMTFCMDsKK0Q3NzY7RDc3NjsxMTEyIDExNzQgMTFCMTtENzc2OzExMTIgMTE3NCAxMUIxOworRDc3NztENzc3OzExMTIgMTE3NCAxMUIyO0Q3Nzc7MTExMiAxMTc0IDExQjI7CitENzc4O0Q3Nzg7MTExMiAxMTc0IDExQjM7RDc3ODsxMTEyIDExNzQgMTFCMzsKK0Q3Nzk7RDc3OTsxMTEyIDExNzQgMTFCNDtENzc5OzExMTIgMTE3NCAxMUI0OworRDc3QTtENzdBOzExMTIgMTE3NCAxMUI1O0Q3N0E7MTExMiAxMTc0IDExQjU7CitENzdCO0Q3N0I7MTExMiAxMTc0IDExQjY7RDc3QjsxMTEyIDExNzQgMTFCNjsKK0Q3N0M7RDc3QzsxMTEyIDExNzQgMTFCNztENzdDOzExMTIgMTE3NCAxMUI3OworRDc3RDtENzdEOzExMTIgMTE3NCAxMUI4O0Q3N0Q7MTExMiAxMTc0IDExQjg7CitENzdFO0Q3N0U7MTExMiAxMTc0IDExQjk7RDc3RTsxMTEyIDExNzQgMTFCOTsKK0Q3N0Y7RDc3RjsxMTEyIDExNzQgMTFCQTtENzdGOzExMTIgMTE3NCAxMUJBOworRDc4MDtENzgwOzExMTIgMTE3NCAxMUJCO0Q3ODA7MTExMiAxMTc0IDExQkI7CitENzgxO0Q3ODE7MTExMiAxMTc0IDExQkM7RDc4MTsxMTEyIDExNzQgMTFCQzsKK0Q3ODI7RDc4MjsxMTEyIDExNzQgMTFCRDtENzgyOzExMTIgMTE3NCAxMUJEOworRDc4MztENzgzOzExMTIgMTE3NCAxMUJFO0Q3ODM7MTExMiAxMTc0IDExQkU7CitENzg0O0Q3ODQ7MTExMiAxMTc0IDExQkY7RDc4NDsxMTEyIDExNzQgMTFCRjsKK0Q3ODU7RDc4NTsxMTEyIDExNzQgMTFDMDtENzg1OzExMTIgMTE3NCAxMUMwOworRDc4NjtENzg2OzExMTIgMTE3NCAxMUMxO0Q3ODY7MTExMiAxMTc0IDExQzE7CitENzg3O0Q3ODc7MTExMiAxMTc0IDExQzI7RDc4NzsxMTEyIDExNzQgMTFDMjsKK0Q3ODg7RDc4ODsxMTEyIDExNzU7RDc4ODsxMTEyIDExNzU7CitENzg5O0Q3ODk7MTExMiAxMTc1IDExQTg7RDc4OTsxMTEyIDExNzUgMTFBODsKK0Q3OEE7RDc4QTsxMTEyIDExNzUgMTFBOTtENzhBOzExMTIgMTE3NSAxMUE5OworRDc4QjtENzhCOzExMTIgMTE3NSAxMUFBO0Q3OEI7MTExMiAxMTc1IDExQUE7CitENzhDO0Q3OEM7MTExMiAxMTc1IDExQUI7RDc4QzsxMTEyIDExNzUgMTFBQjsKK0Q3OEQ7RDc4RDsxMTEyIDExNzUgMTFBQztENzhEOzExMTIgMTE3NSAxMUFDOworRDc4RTtENzhFOzExMTIgMTE3NSAxMUFEO0Q3OEU7MTExMiAxMTc1IDExQUQ7CitENzhGO0Q3OEY7MTExMiAxMTc1IDExQUU7RDc4RjsxMTEyIDExNzUgMTFBRTsKK0Q3OTA7RDc5MDsxMTEyIDExNzUgMTFBRjtENzkwOzExMTIgMTE3NSAxMUFGOworRDc5MTtENzkxOzExMTIgMTE3NSAxMUIwO0Q3OTE7MTExMiAxMTc1IDExQjA7CitENzkyO0Q3OTI7MTExMiAxMTc1IDExQjE7RDc5MjsxMTEyIDExNzUgMTFCMTsKK0Q3OTM7RDc5MzsxMTEyIDExNzUgMTFCMjtENzkzOzExMTIgMTE3NSAxMUIyOworRDc5NDtENzk0OzExMTIgMTE3NSAxMUIzO0Q3OTQ7MTExMiAxMTc1IDExQjM7CitENzk1O0Q3OTU7MTExMiAxMTc1IDExQjQ7RDc5NTsxMTEyIDExNzUgMTFCNDsKK0Q3OTY7RDc5NjsxMTEyIDExNzUgMTFCNTtENzk2OzExMTIgMTE3NSAxMUI1OworRDc5NztENzk3OzExMTIgMTE3NSAxMUI2O0Q3OTc7MTExMiAxMTc1IDExQjY7CitENzk4O0Q3OTg7MTExMiAxMTc1IDExQjc7RDc5ODsxMTEyIDExNzUgMTFCNzsKK0Q3OTk7RDc5OTsxMTEyIDExNzUgMTFCODtENzk5OzExMTIgMTE3NSAxMUI4OworRDc5QTtENzlBOzExMTIgMTE3NSAxMUI5O0Q3OUE7MTExMiAxMTc1IDExQjk7CitENzlCO0Q3OUI7MTExMiAxMTc1IDExQkE7RDc5QjsxMTEyIDExNzUgMTFCQTsKK0Q3OUM7RDc5QzsxMTEyIDExNzUgMTFCQjtENzlDOzExMTIgMTE3NSAxMUJCOworRDc5RDtENzlEOzExMTIgMTE3NSAxMUJDO0Q3OUQ7MTExMiAxMTc1IDExQkM7CitENzlFO0Q3OUU7MTExMiAxMTc1IDExQkQ7RDc5RTsxMTEyIDExNzUgMTFCRDsKK0Q3OUY7RDc5RjsxMTEyIDExNzUgMTFCRTtENzlGOzExMTIgMTE3NSAxMUJFOworRDdBMDtEN0EwOzExMTIgMTE3NSAxMUJGO0Q3QTA7MTExMiAxMTc1IDExQkY7CitEN0ExO0Q3QTE7MTExMiAxMTc1IDExQzA7RDdBMTsxMTEyIDExNzUgMTFDMDsKK0Q3QTI7RDdBMjsxMTEyIDExNzUgMTFDMTtEN0EyOzExMTIgMTE3NSAxMUMxOworRDdBMztEN0EzOzExMTIgMTE3NSAxMUMyO0Q3QTM7MTExMiAxMTc1IDExQzI7CitGOTAwOzhDNDg7OEM0ODs4QzQ4OzhDNDg7CitGOTAxOzY2RjQ7NjZGNDs2NkY0OzY2RjQ7CitGOTAyOzhFQ0E7OEVDQTs4RUNBOzhFQ0E7CitGOTAzOzhDQzg7OENDODs4Q0M4OzhDQzg7CitGOTA0OzZFRDE7NkVEMTs2RUQxOzZFRDE7CitGOTA1OzRFMzI7NEUzMjs0RTMyOzRFMzI7CitGOTA2OzUzRTU7NTNFNTs1M0U1OzUzRTU7CitGOTA3OzlGOUM7OUY5Qzs5RjlDOzlGOUM7CitGOTA4OzlGOUM7OUY5Qzs5RjlDOzlGOUM7CitGOTA5OzU5NTE7NTk1MTs1OTUxOzU5NTE7CitGOTBBOzkxRDE7OTFEMTs5MUQxOzkxRDE7CitGOTBCOzU1ODc7NTU4Nzs1NTg3OzU1ODc7CitGOTBDOzU5NDg7NTk0ODs1OTQ4OzU5NDg7CitGOTBEOzYxRjY7NjFGNjs2MUY2OzYxRjY7CitGOTBFOzc2Njk7NzY2OTs3NjY5Ozc2Njk7CitGOTBGOzdGODU7N0Y4NTs3Rjg1OzdGODU7CitGOTEwOzg2M0Y7ODYzRjs4NjNGOzg2M0Y7CitGOTExOzg3QkE7ODdCQTs4N0JBOzg3QkE7CitGOTEyOzg4Rjg7ODhGODs4OEY4Ozg4Rjg7CitGOTEzOzkwOEY7OTA4Rjs5MDhGOzkwOEY7CitGOTE0OzZBMDI7NkEwMjs2QTAyOzZBMDI7CitGOTE1OzZEMUI7NkQxQjs2RDFCOzZEMUI7CitGOTE2OzcwRDk7NzBEOTs3MEQ5OzcwRDk7CitGOTE3OzczREU7NzNERTs3M0RFOzczREU7CitGOTE4Ozg0M0Q7ODQzRDs4NDNEOzg0M0Q7CitGOTE5OzkxNkE7OTE2QTs5MTZBOzkxNkE7CitGOTFBOzk5RjE7OTlGMTs5OUYxOzk5RjE7CitGOTFCOzRFODI7NEU4Mjs0RTgyOzRFODI7CitGOTFDOzUzNzU7NTM3NTs1Mzc1OzUzNzU7CitGOTFEOzZCMDQ7NkIwNDs2QjA0OzZCMDQ7CitGOTFFOzcyMUI7NzIxQjs3MjFCOzcyMUI7CitGOTFGOzg2MkQ7ODYyRDs4NjJEOzg2MkQ7CitGOTIwOzlFMUU7OUUxRTs5RTFFOzlFMUU7CitGOTIxOzVENTA7NUQ1MDs1RDUwOzVENTA7CitGOTIyOzZGRUI7NkZFQjs2RkVCOzZGRUI7CitGOTIzOzg1Q0Q7ODVDRDs4NUNEOzg1Q0Q7CitGOTI0Ozg5NjQ7ODk2NDs4OTY0Ozg5NjQ7CitGOTI1OzYyQzk7NjJDOTs2MkM5OzYyQzk7CitGOTI2OzgxRDg7ODFEODs4MUQ4OzgxRDg7CitGOTI3Ozg4MUY7ODgxRjs4ODFGOzg4MUY7CitGOTI4OzVFQ0E7NUVDQTs1RUNBOzVFQ0E7CitGOTI5OzY3MTc7NjcxNzs2NzE3OzY3MTc7CitGOTJBOzZENkE7NkQ2QTs2RDZBOzZENkE7CitGOTJCOzcyRkM7NzJGQzs3MkZDOzcyRkM7CitGOTJDOzkwQ0U7OTBDRTs5MENFOzkwQ0U7CitGOTJEOzRGODY7NEY4Njs0Rjg2OzRGODY7CitGOTJFOzUxQjc7NTFCNzs1MUI3OzUxQjc7CitGOTJGOzUyREU7NTJERTs1MkRFOzUyREU7CitGOTMwOzY0QzQ7NjRDNDs2NEM0OzY0QzQ7CitGOTMxOzZBRDM7NkFEMzs2QUQzOzZBRDM7CitGOTMyOzcyMTA7NzIxMDs3MjEwOzcyMTA7CitGOTMzOzc2RTc7NzZFNzs3NkU3Ozc2RTc7CitGOTM0OzgwMDE7ODAwMTs4MDAxOzgwMDE7CitGOTM1Ozg2MDY7ODYwNjs4NjA2Ozg2MDY7CitGOTM2Ozg2NUM7ODY1Qzs4NjVDOzg2NUM7CitGOTM3OzhERUY7OERFRjs4REVGOzhERUY7CitGOTM4Ozk3MzI7OTczMjs5NzMyOzk3MzI7CitGOTM5OzlCNkY7OUI2Rjs5QjZGOzlCNkY7CitGOTNBOzlERkE7OURGQTs5REZBOzlERkE7CitGOTNCOzc4OEM7Nzg4Qzs3ODhDOzc4OEM7CitGOTNDOzc5N0Y7Nzk3Rjs3OTdGOzc5N0Y7CitGOTNEOzdEQTA7N0RBMDs3REEwOzdEQTA7CitGOTNFOzgzQzk7ODNDOTs4M0M5OzgzQzk7CitGOTNGOzkzMDQ7OTMwNDs5MzA0OzkzMDQ7CitGOTQwOzlFN0Y7OUU3Rjs5RTdGOzlFN0Y7CitGOTQxOzhBRDY7OEFENjs4QUQ2OzhBRDY7CitGOTQyOzU4REY7NThERjs1OERGOzU4REY7CitGOTQzOzVGMDQ7NUYwNDs1RjA0OzVGMDQ7CitGOTQ0OzdDNjA7N0M2MDs3QzYwOzdDNjA7CitGOTQ1OzgwN0U7ODA3RTs4MDdFOzgwN0U7CitGOTQ2OzcyNjI7NzI2Mjs3MjYyOzcyNjI7CitGOTQ3Ozc4Q0E7NzhDQTs3OENBOzc4Q0E7CitGOTQ4OzhDQzI7OENDMjs4Q0MyOzhDQzI7CitGOTQ5Ozk2Rjc7OTZGNzs5NkY3Ozk2Rjc7CitGOTRBOzU4RDg7NThEODs1OEQ4OzU4RDg7CitGOTRCOzVDNjI7NUM2Mjs1QzYyOzVDNjI7CitGOTRDOzZBMTM7NkExMzs2QTEzOzZBMTM7CitGOTREOzZEREE7NkREQTs2RERBOzZEREE7CitGOTRFOzZGMEY7NkYwRjs2RjBGOzZGMEY7CitGOTRGOzdEMkY7N0QyRjs3RDJGOzdEMkY7CitGOTUwOzdFMzc7N0UzNzs3RTM3OzdFMzc7CitGOTUxOzk2NEI7OTY0Qjs5NjRCOzk2NEI7CitGOTUyOzUyRDI7NTJEMjs1MkQyOzUyRDI7CitGOTUzOzgwOEI7ODA4Qjs4MDhCOzgwOEI7CitGOTU0OzUxREM7NTFEQzs1MURDOzUxREM7CitGOTU1OzUxQ0M7NTFDQzs1MUNDOzUxQ0M7CitGOTU2OzdBMUM7N0ExQzs3QTFDOzdBMUM7CitGOTU3OzdEQkU7N0RCRTs3REJFOzdEQkU7CitGOTU4OzgzRjE7ODNGMTs4M0YxOzgzRjE7CitGOTU5Ozk2NzU7OTY3NTs5Njc1Ozk2NzU7CitGOTVBOzhCODA7OEI4MDs4QjgwOzhCODA7CitGOTVCOzYyQ0Y7NjJDRjs2MkNGOzYyQ0Y7CitGOTVDOzZBMDI7NkEwMjs2QTAyOzZBMDI7CitGOTVEOzhBRkU7OEFGRTs4QUZFOzhBRkU7CitGOTVFOzRFMzk7NEUzOTs0RTM5OzRFMzk7CitGOTVGOzVCRTc7NUJFNzs1QkU3OzVCRTc7CitGOTYwOzYwMTI7NjAxMjs2MDEyOzYwMTI7CitGOTYxOzczODc7NzM4Nzs3Mzg3OzczODc7CitGOTYyOzc1NzA7NzU3MDs3NTcwOzc1NzA7CitGOTYzOzUzMTc7NTMxNzs1MzE3OzUzMTc7CitGOTY0Ozc4RkI7NzhGQjs3OEZCOzc4RkI7CitGOTY1OzRGQkY7NEZCRjs0RkJGOzRGQkY7CitGOTY2OzVGQTk7NUZBOTs1RkE5OzVGQTk7CitGOTY3OzRFMEQ7NEUwRDs0RTBEOzRFMEQ7CitGOTY4OzZDQ0M7NkNDQzs2Q0NDOzZDQ0M7CitGOTY5OzY1Nzg7NjU3ODs2NTc4OzY1Nzg7CitGOTZBOzdEMjI7N0QyMjs3RDIyOzdEMjI7CitGOTZCOzUzQzM7NTNDMzs1M0MzOzUzQzM7CitGOTZDOzU4NUU7NTg1RTs1ODVFOzU4NUU7CitGOTZEOzc3MDE7NzcwMTs3NzAxOzc3MDE7CitGOTZFOzg0NDk7ODQ0OTs4NDQ5Ozg0NDk7CitGOTZGOzhBQUE7OEFBQTs4QUFBOzhBQUE7CitGOTcwOzZCQkE7NkJCQTs2QkJBOzZCQkE7CitGOTcxOzhGQjA7OEZCMDs4RkIwOzhGQjA7CitGOTcyOzZDODg7NkM4ODs2Qzg4OzZDODg7CitGOTczOzYyRkU7NjJGRTs2MkZFOzYyRkU7CitGOTc0OzgyRTU7ODJFNTs4MkU1OzgyRTU7CitGOTc1OzYzQTA7NjNBMDs2M0EwOzYzQTA7CitGOTc2Ozc1NjU7NzU2NTs3NTY1Ozc1NjU7CitGOTc3OzRFQUU7NEVBRTs0RUFFOzRFQUU7CitGOTc4OzUxNjk7NTE2OTs1MTY5OzUxNjk7CitGOTc5OzUxQzk7NTFDOTs1MUM5OzUxQzk7CitGOTdBOzY4ODE7Njg4MTs2ODgxOzY4ODE7CitGOTdCOzdDRTc7N0NFNzs3Q0U3OzdDRTc7CitGOTdDOzgyNkY7ODI2Rjs4MjZGOzgyNkY7CitGOTdEOzhBRDI7OEFEMjs4QUQyOzhBRDI7CitGOTdFOzkxQ0Y7OTFDRjs5MUNGOzkxQ0Y7CitGOTdGOzUyRjU7NTJGNTs1MkY1OzUyRjU7CitGOTgwOzU0NDI7NTQ0Mjs1NDQyOzU0NDI7CitGOTgxOzU5NzM7NTk3Mzs1OTczOzU5NzM7CitGOTgyOzVFRUM7NUVFQzs1RUVDOzVFRUM7CitGOTgzOzY1QzU7NjVDNTs2NUM1OzY1QzU7CitGOTg0OzZGRkU7NkZGRTs2RkZFOzZGRkU7CitGOTg1Ozc5MkE7NzkyQTs3OTJBOzc5MkE7CitGOTg2Ozk1QUQ7OTVBRDs5NUFEOzk1QUQ7CitGOTg3OzlBNkE7OUE2QTs5QTZBOzlBNkE7CitGOTg4OzlFOTc7OUU5Nzs5RTk3OzlFOTc7CitGOTg5OzlFQ0U7OUVDRTs5RUNFOzlFQ0U7CitGOThBOzUyOUI7NTI5Qjs1MjlCOzUyOUI7CitGOThCOzY2QzY7NjZDNjs2NkM2OzY2QzY7CitGOThDOzZCNzc7NkI3Nzs2Qjc3OzZCNzc7CitGOThEOzhGNjI7OEY2Mjs4RjYyOzhGNjI7CitGOThFOzVFNzQ7NUU3NDs1RTc0OzVFNzQ7CitGOThGOzYxOTA7NjE5MDs2MTkwOzYxOTA7CitGOTkwOzYyMDA7NjIwMDs2MjAwOzYyMDA7CitGOTkxOzY0OUE7NjQ5QTs2NDlBOzY0OUE7CitGOTkyOzZGMjM7NkYyMzs2RjIzOzZGMjM7CitGOTkzOzcxNDk7NzE0OTs3MTQ5OzcxNDk7CitGOTk0Ozc0ODk7NzQ4OTs3NDg5Ozc0ODk7CitGOTk1Ozc5Q0E7NzlDQTs3OUNBOzc5Q0E7CitGOTk2OzdERjQ7N0RGNDs3REY0OzdERjQ7CitGOTk3OzgwNkY7ODA2Rjs4MDZGOzgwNkY7CitGOTk4OzhGMjY7OEYyNjs4RjI2OzhGMjY7CitGOTk5Ozg0RUU7ODRFRTs4NEVFOzg0RUU7CitGOTlBOzkwMjM7OTAyMzs5MDIzOzkwMjM7CitGOTlCOzkzNEE7OTM0QTs5MzRBOzkzNEE7CitGOTlDOzUyMTc7NTIxNzs1MjE3OzUyMTc7CitGOTlEOzUyQTM7NTJBMzs1MkEzOzUyQTM7CitGOTlFOzU0QkQ7NTRCRDs1NEJEOzU0QkQ7CitGOTlGOzcwQzg7NzBDODs3MEM4OzcwQzg7CitGOUEwOzg4QzI7ODhDMjs4OEMyOzg4QzI7CitGOUExOzhBQUE7OEFBQTs4QUFBOzhBQUE7CitGOUEyOzVFQzk7NUVDOTs1RUM5OzVFQzk7CitGOUEzOzVGRjU7NUZGNTs1RkY1OzVGRjU7CitGOUE0OzYzN0I7NjM3Qjs2MzdCOzYzN0I7CitGOUE1OzZCQUU7NkJBRTs2QkFFOzZCQUU7CitGOUE2OzdDM0U7N0MzRTs3QzNFOzdDM0U7CitGOUE3OzczNzU7NzM3NTs3Mzc1OzczNzU7CitGOUE4OzRFRTQ7NEVFNDs0RUU0OzRFRTQ7CitGOUE5OzU2Rjk7NTZGOTs1NkY5OzU2Rjk7CitGOUFBOzVCRTc7NUJFNzs1QkU3OzVCRTc7CitGOUFCOzVEQkE7NURCQTs1REJBOzVEQkE7CitGOUFDOzYwMUM7NjAxQzs2MDFDOzYwMUM7CitGOUFEOzczQjI7NzNCMjs3M0IyOzczQjI7CitGOUFFOzc0Njk7NzQ2OTs3NDY5Ozc0Njk7CitGOUFGOzdGOUE7N0Y5QTs3RjlBOzdGOUE7CitGOUIwOzgwNDY7ODA0Njs4MDQ2OzgwNDY7CitGOUIxOzkyMzQ7OTIzNDs5MjM0OzkyMzQ7CitGOUIyOzk2RjY7OTZGNjs5NkY2Ozk2RjY7CitGOUIzOzk3NDg7OTc0ODs5NzQ4Ozk3NDg7CitGOUI0Ozk4MTg7OTgxODs5ODE4Ozk4MTg7CitGOUI1OzRGOEI7NEY4Qjs0RjhCOzRGOEI7CitGOUI2Ozc5QUU7NzlBRTs3OUFFOzc5QUU7CitGOUI3OzkxQjQ7OTFCNDs5MUI0OzkxQjQ7CitGOUI4Ozk2Qjg7OTZCODs5NkI4Ozk2Qjg7CitGOUI5OzYwRTE7NjBFMTs2MEUxOzYwRTE7CitGOUJBOzRFODY7NEU4Njs0RTg2OzRFODY7CitGOUJCOzUwREE7NTBEQTs1MERBOzUwREE7CitGOUJDOzVCRUU7NUJFRTs1QkVFOzVCRUU7CitGOUJEOzVDM0Y7NUMzRjs1QzNGOzVDM0Y7CitGOUJFOzY1OTk7NjU5OTs2NTk5OzY1OTk7CitGOUJGOzZBMDI7NkEwMjs2QTAyOzZBMDI7CitGOUMwOzcxQ0U7NzFDRTs3MUNFOzcxQ0U7CitGOUMxOzc2NDI7NzY0Mjs3NjQyOzc2NDI7CitGOUMyOzg0RkM7ODRGQzs4NEZDOzg0RkM7CitGOUMzOzkwN0M7OTA3Qzs5MDdDOzkwN0M7CitGOUM0OzlGOEQ7OUY4RDs5RjhEOzlGOEQ7CitGOUM1OzY2ODg7NjY4ODs2Njg4OzY2ODg7CitGOUM2Ozk2MkU7OTYyRTs5NjJFOzk2MkU7CitGOUM3OzUyODk7NTI4OTs1Mjg5OzUyODk7CitGOUM4OzY3N0I7Njc3Qjs2NzdCOzY3N0I7CitGOUM5OzY3RjM7NjdGMzs2N0YzOzY3RjM7CitGOUNBOzZENDE7NkQ0MTs2RDQxOzZENDE7CitGOUNCOzZFOUM7NkU5Qzs2RTlDOzZFOUM7CitGOUNDOzc0MDk7NzQwOTs3NDA5Ozc0MDk7CitGOUNEOzc1NTk7NzU1OTs3NTU5Ozc1NTk7CitGOUNFOzc4NkI7Nzg2Qjs3ODZCOzc4NkI7CitGOUNGOzdEMTA7N0QxMDs3RDEwOzdEMTA7CitGOUQwOzk4NUU7OTg1RTs5ODVFOzk4NUU7CitGOUQxOzUxNkQ7NTE2RDs1MTZEOzUxNkQ7CitGOUQyOzYyMkU7NjIyRTs2MjJFOzYyMkU7CitGOUQzOzk2Nzg7OTY3ODs5Njc4Ozk2Nzg7CitGOUQ0OzUwMkI7NTAyQjs1MDJCOzUwMkI7CitGOUQ1OzVEMTk7NUQxOTs1RDE5OzVEMTk7CitGOUQ2OzZERUE7NkRFQTs2REVBOzZERUE7CitGOUQ3OzhGMkE7OEYyQTs4RjJBOzhGMkE7CitGOUQ4OzVGOEI7NUY4Qjs1RjhCOzVGOEI7CitGOUQ5OzYxNDQ7NjE0NDs2MTQ0OzYxNDQ7CitGOURBOzY4MTc7NjgxNzs2ODE3OzY4MTc7CitGOURCOzczODc7NzM4Nzs3Mzg3OzczODc7CitGOURDOzk2ODY7OTY4Njs5Njg2Ozk2ODY7CitGOUREOzUyMjk7NTIyOTs1MjI5OzUyMjk7CitGOURFOzU0MEY7NTQwRjs1NDBGOzU0MEY7CitGOURGOzVDNjU7NUM2NTs1QzY1OzVDNjU7CitGOUUwOzY2MTM7NjYxMzs2NjEzOzY2MTM7CitGOUUxOzY3NEU7Njc0RTs2NzRFOzY3NEU7CitGOUUyOzY4QTg7NjhBODs2OEE4OzY4QTg7CitGOUUzOzZDRTU7NkNFNTs2Q0U1OzZDRTU7CitGOUU0Ozc0MDY7NzQwNjs3NDA2Ozc0MDY7CitGOUU1Ozc1RTI7NzVFMjs3NUUyOzc1RTI7CitGOUU2OzdGNzk7N0Y3OTs3Rjc5OzdGNzk7CitGOUU3Ozg4Q0Y7ODhDRjs4OENGOzg4Q0Y7CitGOUU4Ozg4RTE7ODhFMTs4OEUxOzg4RTE7CitGOUU5OzkxQ0M7OTFDQzs5MUNDOzkxQ0M7CitGOUVBOzk2RTI7OTZFMjs5NkUyOzk2RTI7CitGOUVCOzUzM0Y7NTMzRjs1MzNGOzUzM0Y7CitGOUVDOzZFQkE7NkVCQTs2RUJBOzZFQkE7CitGOUVEOzU0MUQ7NTQxRDs1NDFEOzU0MUQ7CitGOUVFOzcxRDA7NzFEMDs3MUQwOzcxRDA7CitGOUVGOzc0OTg7NzQ5ODs3NDk4Ozc0OTg7CitGOUYwOzg1RkE7ODVGQTs4NUZBOzg1RkE7CitGOUYxOzk2QTM7OTZBMzs5NkEzOzk2QTM7CitGOUYyOzlDNTc7OUM1Nzs5QzU3OzlDNTc7CitGOUYzOzlFOUY7OUU5Rjs5RTlGOzlFOUY7CitGOUY0OzY3OTc7Njc5Nzs2Nzk3OzY3OTc7CitGOUY1OzZEQ0I7NkRDQjs2RENCOzZEQ0I7CitGOUY2OzgxRTg7ODFFODs4MUU4OzgxRTg7CitGOUY3OzdBQ0I7N0FDQjs3QUNCOzdBQ0I7CitGOUY4OzdCMjA7N0IyMDs3QjIwOzdCMjA7CitGOUY5OzdDOTI7N0M5Mjs3QzkyOzdDOTI7CitGOUZBOzcyQzA7NzJDMDs3MkMwOzcyQzA7CitGOUZCOzcwOTk7NzA5OTs3MDk5OzcwOTk7CitGOUZDOzhCNTg7OEI1ODs4QjU4OzhCNTg7CitGOUZEOzRFQzA7NEVDMDs0RUMwOzRFQzA7CitGOUZFOzgzMzY7ODMzNjs4MzM2OzgzMzY7CitGOUZGOzUyM0E7NTIzQTs1MjNBOzUyM0E7CitGQTAwOzUyMDc7NTIwNzs1MjA3OzUyMDc7CitGQTAxOzVFQTY7NUVBNjs1RUE2OzVFQTY7CitGQTAyOzYyRDM7NjJEMzs2MkQzOzYyRDM7CitGQTAzOzdDRDY7N0NENjs3Q0Q2OzdDRDY7CitGQTA0OzVCODU7NUI4NTs1Qjg1OzVCODU7CitGQTA1OzZEMUU7NkQxRTs2RDFFOzZEMUU7CitGQTA2OzY2QjQ7NjZCNDs2NkI0OzY2QjQ7CitGQTA3OzhGM0I7OEYzQjs4RjNCOzhGM0I7CitGQTA4Ozg4NEM7ODg0Qzs4ODRDOzg4NEM7CitGQTA5Ozk2NEQ7OTY0RDs5NjREOzk2NEQ7CitGQTBBOzg5OEI7ODk4Qjs4OThCOzg5OEI7CitGQTBCOzVFRDM7NUVEMzs1RUQzOzVFRDM7CitGQTBDOzUxNDA7NTE0MDs1MTQwOzUxNDA7CitGQTBEOzU1QzA7NTVDMDs1NUMwOzU1QzA7CitGQTEwOzU4NUE7NTg1QTs1ODVBOzU4NUE7CitGQTEyOzY2NzQ7NjY3NDs2Njc0OzY2NzQ7CitGQTE1OzUxREU7NTFERTs1MURFOzUxREU7CitGQTE2OzczMkE7NzMyQTs3MzJBOzczMkE7CitGQTE3Ozc2Q0E7NzZDQTs3NkNBOzc2Q0E7CitGQTE4Ozc5M0M7NzkzQzs3OTNDOzc5M0M7CitGQTE5Ozc5NUU7Nzk1RTs3OTVFOzc5NUU7CitGQTFBOzc5NjU7Nzk2NTs3OTY1Ozc5NjU7CitGQTFCOzc5OEY7Nzk4Rjs3OThGOzc5OEY7CitGQTFDOzk3NTY7OTc1Njs5NzU2Ozk3NTY7CitGQTFEOzdDQkU7N0NCRTs3Q0JFOzdDQkU7CitGQTFFOzdGQkQ7N0ZCRDs3RkJEOzdGQkQ7CitGQTIwOzg2MTI7ODYxMjs4NjEyOzg2MTI7CitGQTIyOzhBRjg7OEFGODs4QUY4OzhBRjg7CitGQTI1OzkwMzg7OTAzODs5MDM4OzkwMzg7CitGQTI2OzkwRkQ7OTBGRDs5MEZEOzkwRkQ7CitGQTJBOzk4RUY7OThFRjs5OEVGOzk4RUY7CitGQTJCOzk4RkM7OThGQzs5OEZDOzk4RkM7CitGQTJDOzk5Mjg7OTkyODs5OTI4Ozk5Mjg7CitGQTJEOzlEQjQ7OURCNDs5REI0OzlEQjQ7CitGQTMwOzRGQUU7NEZBRTs0RkFFOzRGQUU7CitGQTMxOzUwRTc7NTBFNzs1MEU3OzUwRTc7CitGQTMyOzUxNEQ7NTE0RDs1MTREOzUxNEQ7CitGQTMzOzUyQzk7NTJDOTs1MkM5OzUyQzk7CitGQTM0OzUyRTQ7NTJFNDs1MkU0OzUyRTQ7CitGQTM1OzUzNTE7NTM1MTs1MzUxOzUzNTE7CitGQTM2OzU1OUQ7NTU5RDs1NTlEOzU1OUQ7CitGQTM3OzU2MDY7NTYwNjs1NjA2OzU2MDY7CitGQTM4OzU2Njg7NTY2ODs1NjY4OzU2Njg7CitGQTM5OzU4NDA7NTg0MDs1ODQwOzU4NDA7CitGQTNBOzU4QTg7NThBODs1OEE4OzU4QTg7CitGQTNCOzVDNjQ7NUM2NDs1QzY0OzVDNjQ7CitGQTNDOzVDNkU7NUM2RTs1QzZFOzVDNkU7CitGQTNEOzYwOTQ7NjA5NDs2MDk0OzYwOTQ7CitGQTNFOzYxNjg7NjE2ODs2MTY4OzYxNjg7CitGQTNGOzYxOEU7NjE4RTs2MThFOzYxOEU7CitGQTQwOzYxRjI7NjFGMjs2MUYyOzYxRjI7CitGQTQxOzY1NEY7NjU0Rjs2NTRGOzY1NEY7CitGQTQyOzY1RTI7NjVFMjs2NUUyOzY1RTI7CitGQTQzOzY2OTE7NjY5MTs2NjkxOzY2OTE7CitGQTQ0OzY4ODU7Njg4NTs2ODg1OzY4ODU7CitGQTQ1OzZENzc7NkQ3Nzs2RDc3OzZENzc7CitGQTQ2OzZFMUE7NkUxQTs2RTFBOzZFMUE7CitGQTQ3OzZGMjI7NkYyMjs2RjIyOzZGMjI7CitGQTQ4OzcxNkU7NzE2RTs3MTZFOzcxNkU7CitGQTQ5OzcyMkI7NzIyQjs3MjJCOzcyMkI7CitGQTRBOzc0MjI7NzQyMjs3NDIyOzc0MjI7CitGQTRCOzc4OTE7Nzg5MTs3ODkxOzc4OTE7CitGQTRDOzc5M0U7NzkzRTs3OTNFOzc5M0U7CitGQTREOzc5NDk7Nzk0OTs3OTQ5Ozc5NDk7CitGQTRFOzc5NDg7Nzk0ODs3OTQ4Ozc5NDg7CitGQTRGOzc5NTA7Nzk1MDs3OTUwOzc5NTA7CitGQTUwOzc5NTY7Nzk1Njs3OTU2Ozc5NTY7CitGQTUxOzc5NUQ7Nzk1RDs3OTVEOzc5NUQ7CitGQTUyOzc5OEQ7Nzk4RDs3OThEOzc5OEQ7CitGQTUzOzc5OEU7Nzk4RTs3OThFOzc5OEU7CitGQTU0OzdBNDA7N0E0MDs3QTQwOzdBNDA7CitGQTU1OzdBODE7N0E4MTs3QTgxOzdBODE7CitGQTU2OzdCQzA7N0JDMDs3QkMwOzdCQzA7CitGQTU3OzdERjQ7N0RGNDs3REY0OzdERjQ7CitGQTU4OzdFMDk7N0UwOTs3RTA5OzdFMDk7CitGQTU5OzdFNDE7N0U0MTs3RTQxOzdFNDE7CitGQTVBOzdGNzI7N0Y3Mjs3RjcyOzdGNzI7CitGQTVCOzgwMDU7ODAwNTs4MDA1OzgwMDU7CitGQTVDOzgxRUQ7ODFFRDs4MUVEOzgxRUQ7CitGQTVEOzgyNzk7ODI3OTs4Mjc5OzgyNzk7CitGQTVFOzgyNzk7ODI3OTs4Mjc5OzgyNzk7CitGQTVGOzg0NTc7ODQ1Nzs4NDU3Ozg0NTc7CitGQTYwOzg5MTA7ODkxMDs4OTEwOzg5MTA7CitGQTYxOzg5OTY7ODk5Njs4OTk2Ozg5OTY7CitGQTYyOzhCMDE7OEIwMTs4QjAxOzhCMDE7CitGQTYzOzhCMzk7OEIzOTs4QjM5OzhCMzk7CitGQTY0OzhDRDM7OENEMzs4Q0QzOzhDRDM7CitGQTY1OzhEMDg7OEQwODs4RDA4OzhEMDg7CitGQTY2OzhGQjY7OEZCNjs4RkI2OzhGQjY7CitGQTY3OzkwMzg7OTAzODs5MDM4OzkwMzg7CitGQTY4Ozk2RTM7OTZFMzs5NkUzOzk2RTM7CitGQTY5Ozk3RkY7OTdGRjs5N0ZGOzk3RkY7CitGQTZBOzk4M0I7OTgzQjs5ODNCOzk4M0I7CitGQTcwOzRFMjY7NEUyNjs0RTI2OzRFMjY7CitGQTcxOzUxQjU7NTFCNTs1MUI1OzUxQjU7CitGQTcyOzUxNjg7NTE2ODs1MTY4OzUxNjg7CitGQTczOzRGODA7NEY4MDs0RjgwOzRGODA7CitGQTc0OzUxNDU7NTE0NTs1MTQ1OzUxNDU7CitGQTc1OzUxODA7NTE4MDs1MTgwOzUxODA7CitGQTc2OzUyQzc7NTJDNzs1MkM3OzUyQzc7CitGQTc3OzUyRkE7NTJGQTs1MkZBOzUyRkE7CitGQTc4OzU1OUQ7NTU5RDs1NTlEOzU1OUQ7CitGQTc5OzU1NTU7NTU1NTs1NTU1OzU1NTU7CitGQTdBOzU1OTk7NTU5OTs1NTk5OzU1OTk7CitGQTdCOzU1RTI7NTVFMjs1NUUyOzU1RTI7CitGQTdDOzU4NUE7NTg1QTs1ODVBOzU4NUE7CitGQTdEOzU4QjM7NThCMzs1OEIzOzU4QjM7CitGQTdFOzU5NDQ7NTk0NDs1OTQ0OzU5NDQ7CitGQTdGOzU5NTQ7NTk1NDs1OTU0OzU5NTQ7CitGQTgwOzVBNjI7NUE2Mjs1QTYyOzVBNjI7CitGQTgxOzVCMjg7NUIyODs1QjI4OzVCMjg7CitGQTgyOzVFRDI7NUVEMjs1RUQyOzVFRDI7CitGQTgzOzVFRDk7NUVEOTs1RUQ5OzVFRDk7CitGQTg0OzVGNjk7NUY2OTs1RjY5OzVGNjk7CitGQTg1OzVGQUQ7NUZBRDs1RkFEOzVGQUQ7CitGQTg2OzYwRDg7NjBEODs2MEQ4OzYwRDg7CitGQTg3OzYxNEU7NjE0RTs2MTRFOzYxNEU7CitGQTg4OzYxMDg7NjEwODs2MTA4OzYxMDg7CitGQTg5OzYxOEU7NjE4RTs2MThFOzYxOEU7CitGQThBOzYxNjA7NjE2MDs2MTYwOzYxNjA7CitGQThCOzYxRjI7NjFGMjs2MUYyOzYxRjI7CitGQThDOzYyMzQ7NjIzNDs2MjM0OzYyMzQ7CitGQThEOzYzQzQ7NjNDNDs2M0M0OzYzQzQ7CitGQThFOzY0MUM7NjQxQzs2NDFDOzY0MUM7CitGQThGOzY0NTI7NjQ1Mjs2NDUyOzY0NTI7CitGQTkwOzY1NTY7NjU1Njs2NTU2OzY1NTY7CitGQTkxOzY2NzQ7NjY3NDs2Njc0OzY2NzQ7CitGQTkyOzY3MTc7NjcxNzs2NzE3OzY3MTc7CitGQTkzOzY3MUI7NjcxQjs2NzFCOzY3MUI7CitGQTk0OzY3NTY7Njc1Njs2NzU2OzY3NTY7CitGQTk1OzZCNzk7NkI3OTs2Qjc5OzZCNzk7CitGQTk2OzZCQkE7NkJCQTs2QkJBOzZCQkE7CitGQTk3OzZENDE7NkQ0MTs2RDQxOzZENDE7CitGQTk4OzZFREI7NkVEQjs2RURCOzZFREI7CitGQTk5OzZFQ0I7NkVDQjs2RUNCOzZFQ0I7CitGQTlBOzZGMjI7NkYyMjs2RjIyOzZGMjI7CitGQTlCOzcwMUU7NzAxRTs3MDFFOzcwMUU7CitGQTlDOzcxNkU7NzE2RTs3MTZFOzcxNkU7CitGQTlEOzc3QTc7NzdBNzs3N0E3Ozc3QTc7CitGQTlFOzcyMzU7NzIzNTs3MjM1OzcyMzU7CitGQTlGOzcyQUY7NzJBRjs3MkFGOzcyQUY7CitGQUEwOzczMkE7NzMyQTs3MzJBOzczMkE7CitGQUExOzc0NzE7NzQ3MTs3NDcxOzc0NzE7CitGQUEyOzc1MDY7NzUwNjs3NTA2Ozc1MDY7CitGQUEzOzc1M0I7NzUzQjs3NTNCOzc1M0I7CitGQUE0Ozc2MUQ7NzYxRDs3NjFEOzc2MUQ7CitGQUE1Ozc2MUY7NzYxRjs3NjFGOzc2MUY7CitGQUE2Ozc2Q0E7NzZDQTs3NkNBOzc2Q0E7CitGQUE3Ozc2REI7NzZEQjs3NkRCOzc2REI7CitGQUE4Ozc2RjQ7NzZGNDs3NkY0Ozc2RjQ7CitGQUE5Ozc3NEE7Nzc0QTs3NzRBOzc3NEE7CitGQUFBOzc3NDA7Nzc0MDs3NzQwOzc3NDA7CitGQUFCOzc4Q0M7NzhDQzs3OENDOzc4Q0M7CitGQUFDOzdBQjE7N0FCMTs3QUIxOzdBQjE7CitGQUFEOzdCQzA7N0JDMDs3QkMwOzdCQzA7CitGQUFFOzdDN0I7N0M3Qjs3QzdCOzdDN0I7CitGQUFGOzdENUI7N0Q1Qjs3RDVCOzdENUI7CitGQUIwOzdERjQ7N0RGNDs3REY0OzdERjQ7CitGQUIxOzdGM0U7N0YzRTs3RjNFOzdGM0U7CitGQUIyOzgwMDU7ODAwNTs4MDA1OzgwMDU7CitGQUIzOzgzNTI7ODM1Mjs4MzUyOzgzNTI7CitGQUI0OzgzRUY7ODNFRjs4M0VGOzgzRUY7CitGQUI1Ozg3Nzk7ODc3OTs4Nzc5Ozg3Nzk7CitGQUI2Ozg5NDE7ODk0MTs4OTQxOzg5NDE7CitGQUI3Ozg5ODY7ODk4Njs4OTg2Ozg5ODY7CitGQUI4Ozg5OTY7ODk5Njs4OTk2Ozg5OTY7CitGQUI5OzhBQkY7OEFCRjs4QUJGOzhBQkY7CitGQUJBOzhBRjg7OEFGODs4QUY4OzhBRjg7CitGQUJCOzhBQ0I7OEFDQjs4QUNCOzhBQ0I7CitGQUJDOzhCMDE7OEIwMTs4QjAxOzhCMDE7CitGQUJEOzhBRkU7OEFGRTs4QUZFOzhBRkU7CitGQUJFOzhBRUQ7OEFFRDs4QUVEOzhBRUQ7CitGQUJGOzhCMzk7OEIzOTs4QjM5OzhCMzk7CitGQUMwOzhCOEE7OEI4QTs4QjhBOzhCOEE7CitGQUMxOzhEMDg7OEQwODs4RDA4OzhEMDg7CitGQUMyOzhGMzg7OEYzODs4RjM4OzhGMzg7CitGQUMzOzkwNzI7OTA3Mjs5MDcyOzkwNzI7CitGQUM0OzkxOTk7OTE5OTs5MTk5OzkxOTk7CitGQUM1OzkyNzY7OTI3Njs5Mjc2OzkyNzY7CitGQUM2Ozk2N0M7OTY3Qzs5NjdDOzk2N0M7CitGQUM3Ozk2RTM7OTZFMzs5NkUzOzk2RTM7CitGQUM4Ozk3NTY7OTc1Njs5NzU2Ozk3NTY7CitGQUM5Ozk3REI7OTdEQjs5N0RCOzk3REI7CitGQUNBOzk3RkY7OTdGRjs5N0ZGOzk3RkY7CitGQUNCOzk4MEI7OTgwQjs5ODBCOzk4MEI7CitGQUNDOzk4M0I7OTgzQjs5ODNCOzk4M0I7CitGQUNEOzlCMTI7OUIxMjs5QjEyOzlCMTI7CitGQUNFOzlGOUM7OUY5Qzs5RjlDOzlGOUM7CitGQUNGOzIyODRBOzIyODRBOzIyODRBOzIyODRBOworRkFEMDsyMjg0NDsyMjg0NDsyMjg0NDsyMjg0NDsKK0ZBRDE7MjMzRDU7MjMzRDU7MjMzRDU7MjMzRDU7CitGQUQyOzNCOUQ7M0I5RDszQjlEOzNCOUQ7CitGQUQzOzQwMTg7NDAxODs0MDE4OzQwMTg7CitGQUQ0OzQwMzk7NDAzOTs0MDM5OzQwMzk7CitGQUQ1OzI1MjQ5OzI1MjQ5OzI1MjQ5OzI1MjQ5OworRkFENjsyNUNEMDsyNUNEMDsyNUNEMDsyNUNEMDsKK0ZBRDc7MjdFRDM7MjdFRDM7MjdFRDM7MjdFRDM7CitGQUQ4OzlGNDM7OUY0Mzs5RjQzOzlGNDM7CitGQUQ5OzlGOEU7OUY4RTs5RjhFOzlGOEU7CitGQjAwO0ZCMDA7RkIwMDswMDY2IDAwNjY7MDA2NiAwMDY2OworRkIwMTtGQjAxO0ZCMDE7MDA2NiAwMDY5OzAwNjYgMDA2OTsKK0ZCMDI7RkIwMjtGQjAyOzAwNjYgMDA2QzswMDY2IDAwNkM7CitGQjAzO0ZCMDM7RkIwMzswMDY2IDAwNjYgMDA2OTswMDY2IDAwNjYgMDA2OTsKK0ZCMDQ7RkIwNDtGQjA0OzAwNjYgMDA2NiAwMDZDOzAwNjYgMDA2NiAwMDZDOworRkIwNTtGQjA1O0ZCMDU7MDA3MyAwMDc0OzAwNzMgMDA3NDsKK0ZCMDY7RkIwNjtGQjA2OzAwNzMgMDA3NDswMDczIDAwNzQ7CitGQjEzO0ZCMTM7RkIxMzswNTc0IDA1NzY7MDU3NCAwNTc2OworRkIxNDtGQjE0O0ZCMTQ7MDU3NCAwNTY1OzA1NzQgMDU2NTsKK0ZCMTU7RkIxNTtGQjE1OzA1NzQgMDU2QjswNTc0IDA1NkI7CitGQjE2O0ZCMTY7RkIxNjswNTdFIDA1NzY7MDU3RSAwNTc2OworRkIxNztGQjE3O0ZCMTc7MDU3NCAwNTZEOzA1NzQgMDU2RDsKK0ZCMUQ7MDVEOSAwNUI0OzA1RDkgMDVCNDswNUQ5IDA1QjQ7MDVEOSAwNUI0OworRkIxRjswNUYyIDA1Qjc7MDVGMiAwNUI3OzA1RjIgMDVCNzswNUYyIDA1Qjc7CitGQjIwO0ZCMjA7RkIyMDswNUUyOzA1RTI7CitGQjIxO0ZCMjE7RkIyMTswNUQwOzA1RDA7CitGQjIyO0ZCMjI7RkIyMjswNUQzOzA1RDM7CitGQjIzO0ZCMjM7RkIyMzswNUQ0OzA1RDQ7CitGQjI0O0ZCMjQ7RkIyNDswNURCOzA1REI7CitGQjI1O0ZCMjU7RkIyNTswNURDOzA1REM7CitGQjI2O0ZCMjY7RkIyNjswNUREOzA1REQ7CitGQjI3O0ZCMjc7RkIyNzswNUU4OzA1RTg7CitGQjI4O0ZCMjg7RkIyODswNUVBOzA1RUE7CitGQjI5O0ZCMjk7RkIyOTswMDJCOzAwMkI7CitGQjJBOzA1RTkgMDVDMTswNUU5IDA1QzE7MDVFOSAwNUMxOzA1RTkgMDVDMTsKK0ZCMkI7MDVFOSAwNUMyOzA1RTkgMDVDMjswNUU5IDA1QzI7MDVFOSAwNUMyOworRkIyQzswNUU5IDA1QkMgMDVDMTswNUU5IDA1QkMgMDVDMTswNUU5IDA1QkMgMDVDMTswNUU5IDA1QkMgMDVDMTsKK0ZCMkQ7MDVFOSAwNUJDIDA1QzI7MDVFOSAwNUJDIDA1QzI7MDVFOSAwNUJDIDA1QzI7MDVFOSAwNUJDIDA1QzI7CitGQjJFOzA1RDAgMDVCNzswNUQwIDA1Qjc7MDVEMCAwNUI3OzA1RDAgMDVCNzsKK0ZCMkY7MDVEMCAwNUI4OzA1RDAgMDVCODswNUQwIDA1Qjg7MDVEMCAwNUI4OworRkIzMDswNUQwIDA1QkM7MDVEMCAwNUJDOzA1RDAgMDVCQzswNUQwIDA1QkM7CitGQjMxOzA1RDEgMDVCQzswNUQxIDA1QkM7MDVEMSAwNUJDOzA1RDEgMDVCQzsKK0ZCMzI7MDVEMiAwNUJDOzA1RDIgMDVCQzswNUQyIDA1QkM7MDVEMiAwNUJDOworRkIzMzswNUQzIDA1QkM7MDVEMyAwNUJDOzA1RDMgMDVCQzswNUQzIDA1QkM7CitGQjM0OzA1RDQgMDVCQzswNUQ0IDA1QkM7MDVENCAwNUJDOzA1RDQgMDVCQzsKK0ZCMzU7MDVENSAwNUJDOzA1RDUgMDVCQzswNUQ1IDA1QkM7MDVENSAwNUJDOworRkIzNjswNUQ2IDA1QkM7MDVENiAwNUJDOzA1RDYgMDVCQzswNUQ2IDA1QkM7CitGQjM4OzA1RDggMDVCQzswNUQ4IDA1QkM7MDVEOCAwNUJDOzA1RDggMDVCQzsKK0ZCMzk7MDVEOSAwNUJDOzA1RDkgMDVCQzswNUQ5IDA1QkM7MDVEOSAwNUJDOworRkIzQTswNURBIDA1QkM7MDVEQSAwNUJDOzA1REEgMDVCQzswNURBIDA1QkM7CitGQjNCOzA1REIgMDVCQzswNURCIDA1QkM7MDVEQiAwNUJDOzA1REIgMDVCQzsKK0ZCM0M7MDVEQyAwNUJDOzA1REMgMDVCQzswNURDIDA1QkM7MDVEQyAwNUJDOworRkIzRTswNURFIDA1QkM7MDVERSAwNUJDOzA1REUgMDVCQzswNURFIDA1QkM7CitGQjQwOzA1RTAgMDVCQzswNUUwIDA1QkM7MDVFMCAwNUJDOzA1RTAgMDVCQzsKK0ZCNDE7MDVFMSAwNUJDOzA1RTEgMDVCQzswNUUxIDA1QkM7MDVFMSAwNUJDOworRkI0MzswNUUzIDA1QkM7MDVFMyAwNUJDOzA1RTMgMDVCQzswNUUzIDA1QkM7CitGQjQ0OzA1RTQgMDVCQzswNUU0IDA1QkM7MDVFNCAwNUJDOzA1RTQgMDVCQzsKK0ZCNDY7MDVFNiAwNUJDOzA1RTYgMDVCQzswNUU2IDA1QkM7MDVFNiAwNUJDOworRkI0NzswNUU3IDA1QkM7MDVFNyAwNUJDOzA1RTcgMDVCQzswNUU3IDA1QkM7CitGQjQ4OzA1RTggMDVCQzswNUU4IDA1QkM7MDVFOCAwNUJDOzA1RTggMDVCQzsKK0ZCNDk7MDVFOSAwNUJDOzA1RTkgMDVCQzswNUU5IDA1QkM7MDVFOSAwNUJDOworRkI0QTswNUVBIDA1QkM7MDVFQSAwNUJDOzA1RUEgMDVCQzswNUVBIDA1QkM7CitGQjRCOzA1RDUgMDVCOTswNUQ1IDA1Qjk7MDVENSAwNUI5OzA1RDUgMDVCOTsKK0ZCNEM7MDVEMSAwNUJGOzA1RDEgMDVCRjswNUQxIDA1QkY7MDVEMSAwNUJGOworRkI0RDswNURCIDA1QkY7MDVEQiAwNUJGOzA1REIgMDVCRjswNURCIDA1QkY7CitGQjRFOzA1RTQgMDVCRjswNUU0IDA1QkY7MDVFNCAwNUJGOzA1RTQgMDVCRjsKK0ZCNEY7RkI0RjtGQjRGOzA1RDAgMDVEQzswNUQwIDA1REM7CitGQjUwO0ZCNTA7RkI1MDswNjcxOzA2NzE7CitGQjUxO0ZCNTE7RkI1MTswNjcxOzA2NzE7CitGQjUyO0ZCNTI7RkI1MjswNjdCOzA2N0I7CitGQjUzO0ZCNTM7RkI1MzswNjdCOzA2N0I7CitGQjU0O0ZCNTQ7RkI1NDswNjdCOzA2N0I7CitGQjU1O0ZCNTU7RkI1NTswNjdCOzA2N0I7CitGQjU2O0ZCNTY7RkI1NjswNjdFOzA2N0U7CitGQjU3O0ZCNTc7RkI1NzswNjdFOzA2N0U7CitGQjU4O0ZCNTg7RkI1ODswNjdFOzA2N0U7CitGQjU5O0ZCNTk7RkI1OTswNjdFOzA2N0U7CitGQjVBO0ZCNUE7RkI1QTswNjgwOzA2ODA7CitGQjVCO0ZCNUI7RkI1QjswNjgwOzA2ODA7CitGQjVDO0ZCNUM7RkI1QzswNjgwOzA2ODA7CitGQjVEO0ZCNUQ7RkI1RDswNjgwOzA2ODA7CitGQjVFO0ZCNUU7RkI1RTswNjdBOzA2N0E7CitGQjVGO0ZCNUY7RkI1RjswNjdBOzA2N0E7CitGQjYwO0ZCNjA7RkI2MDswNjdBOzA2N0E7CitGQjYxO0ZCNjE7RkI2MTswNjdBOzA2N0E7CitGQjYyO0ZCNjI7RkI2MjswNjdGOzA2N0Y7CitGQjYzO0ZCNjM7RkI2MzswNjdGOzA2N0Y7CitGQjY0O0ZCNjQ7RkI2NDswNjdGOzA2N0Y7CitGQjY1O0ZCNjU7RkI2NTswNjdGOzA2N0Y7CitGQjY2O0ZCNjY7RkI2NjswNjc5OzA2Nzk7CitGQjY3O0ZCNjc7RkI2NzswNjc5OzA2Nzk7CitGQjY4O0ZCNjg7RkI2ODswNjc5OzA2Nzk7CitGQjY5O0ZCNjk7RkI2OTswNjc5OzA2Nzk7CitGQjZBO0ZCNkE7RkI2QTswNkE0OzA2QTQ7CitGQjZCO0ZCNkI7RkI2QjswNkE0OzA2QTQ7CitGQjZDO0ZCNkM7RkI2QzswNkE0OzA2QTQ7CitGQjZEO0ZCNkQ7RkI2RDswNkE0OzA2QTQ7CitGQjZFO0ZCNkU7RkI2RTswNkE2OzA2QTY7CitGQjZGO0ZCNkY7RkI2RjswNkE2OzA2QTY7CitGQjcwO0ZCNzA7RkI3MDswNkE2OzA2QTY7CitGQjcxO0ZCNzE7RkI3MTswNkE2OzA2QTY7CitGQjcyO0ZCNzI7RkI3MjswNjg0OzA2ODQ7CitGQjczO0ZCNzM7RkI3MzswNjg0OzA2ODQ7CitGQjc0O0ZCNzQ7RkI3NDswNjg0OzA2ODQ7CitGQjc1O0ZCNzU7RkI3NTswNjg0OzA2ODQ7CitGQjc2O0ZCNzY7RkI3NjswNjgzOzA2ODM7CitGQjc3O0ZCNzc7RkI3NzswNjgzOzA2ODM7CitGQjc4O0ZCNzg7RkI3ODswNjgzOzA2ODM7CitGQjc5O0ZCNzk7RkI3OTswNjgzOzA2ODM7CitGQjdBO0ZCN0E7RkI3QTswNjg2OzA2ODY7CitGQjdCO0ZCN0I7RkI3QjswNjg2OzA2ODY7CitGQjdDO0ZCN0M7RkI3QzswNjg2OzA2ODY7CitGQjdEO0ZCN0Q7RkI3RDswNjg2OzA2ODY7CitGQjdFO0ZCN0U7RkI3RTswNjg3OzA2ODc7CitGQjdGO0ZCN0Y7RkI3RjswNjg3OzA2ODc7CitGQjgwO0ZCODA7RkI4MDswNjg3OzA2ODc7CitGQjgxO0ZCODE7RkI4MTswNjg3OzA2ODc7CitGQjgyO0ZCODI7RkI4MjswNjhEOzA2OEQ7CitGQjgzO0ZCODM7RkI4MzswNjhEOzA2OEQ7CitGQjg0O0ZCODQ7RkI4NDswNjhDOzA2OEM7CitGQjg1O0ZCODU7RkI4NTswNjhDOzA2OEM7CitGQjg2O0ZCODY7RkI4NjswNjhFOzA2OEU7CitGQjg3O0ZCODc7RkI4NzswNjhFOzA2OEU7CitGQjg4O0ZCODg7RkI4ODswNjg4OzA2ODg7CitGQjg5O0ZCODk7RkI4OTswNjg4OzA2ODg7CitGQjhBO0ZCOEE7RkI4QTswNjk4OzA2OTg7CitGQjhCO0ZCOEI7RkI4QjswNjk4OzA2OTg7CitGQjhDO0ZCOEM7RkI4QzswNjkxOzA2OTE7CitGQjhEO0ZCOEQ7RkI4RDswNjkxOzA2OTE7CitGQjhFO0ZCOEU7RkI4RTswNkE5OzA2QTk7CitGQjhGO0ZCOEY7RkI4RjswNkE5OzA2QTk7CitGQjkwO0ZCOTA7RkI5MDswNkE5OzA2QTk7CitGQjkxO0ZCOTE7RkI5MTswNkE5OzA2QTk7CitGQjkyO0ZCOTI7RkI5MjswNkFGOzA2QUY7CitGQjkzO0ZCOTM7RkI5MzswNkFGOzA2QUY7CitGQjk0O0ZCOTQ7RkI5NDswNkFGOzA2QUY7CitGQjk1O0ZCOTU7RkI5NTswNkFGOzA2QUY7CitGQjk2O0ZCOTY7RkI5NjswNkIzOzA2QjM7CitGQjk3O0ZCOTc7RkI5NzswNkIzOzA2QjM7CitGQjk4O0ZCOTg7RkI5ODswNkIzOzA2QjM7CitGQjk5O0ZCOTk7RkI5OTswNkIzOzA2QjM7CitGQjlBO0ZCOUE7RkI5QTswNkIxOzA2QjE7CitGQjlCO0ZCOUI7RkI5QjswNkIxOzA2QjE7CitGQjlDO0ZCOUM7RkI5QzswNkIxOzA2QjE7CitGQjlEO0ZCOUQ7RkI5RDswNkIxOzA2QjE7CitGQjlFO0ZCOUU7RkI5RTswNkJBOzA2QkE7CitGQjlGO0ZCOUY7RkI5RjswNkJBOzA2QkE7CitGQkEwO0ZCQTA7RkJBMDswNkJCOzA2QkI7CitGQkExO0ZCQTE7RkJBMTswNkJCOzA2QkI7CitGQkEyO0ZCQTI7RkJBMjswNkJCOzA2QkI7CitGQkEzO0ZCQTM7RkJBMzswNkJCOzA2QkI7CitGQkE0O0ZCQTQ7RkJBNDswNkMwOzA2RDUgMDY1NDsKK0ZCQTU7RkJBNTtGQkE1OzA2QzA7MDZENSAwNjU0OworRkJBNjtGQkE2O0ZCQTY7MDZDMTswNkMxOworRkJBNztGQkE3O0ZCQTc7MDZDMTswNkMxOworRkJBODtGQkE4O0ZCQTg7MDZDMTswNkMxOworRkJBOTtGQkE5O0ZCQTk7MDZDMTswNkMxOworRkJBQTtGQkFBO0ZCQUE7MDZCRTswNkJFOworRkJBQjtGQkFCO0ZCQUI7MDZCRTswNkJFOworRkJBQztGQkFDO0ZCQUM7MDZCRTswNkJFOworRkJBRDtGQkFEO0ZCQUQ7MDZCRTswNkJFOworRkJBRTtGQkFFO0ZCQUU7MDZEMjswNkQyOworRkJBRjtGQkFGO0ZCQUY7MDZEMjswNkQyOworRkJCMDtGQkIwO0ZCQjA7MDZEMzswNkQyIDA2NTQ7CitGQkIxO0ZCQjE7RkJCMTswNkQzOzA2RDIgMDY1NDsKK0ZCRDM7RkJEMztGQkQzOzA2QUQ7MDZBRDsKK0ZCRDQ7RkJENDtGQkQ0OzA2QUQ7MDZBRDsKK0ZCRDU7RkJENTtGQkQ1OzA2QUQ7MDZBRDsKK0ZCRDY7RkJENjtGQkQ2OzA2QUQ7MDZBRDsKK0ZCRDc7RkJENztGQkQ3OzA2Qzc7MDZDNzsKK0ZCRDg7RkJEODtGQkQ4OzA2Qzc7MDZDNzsKK0ZCRDk7RkJEOTtGQkQ5OzA2QzY7MDZDNjsKK0ZCREE7RkJEQTtGQkRBOzA2QzY7MDZDNjsKK0ZCREI7RkJEQjtGQkRCOzA2Qzg7MDZDODsKK0ZCREM7RkJEQztGQkRDOzA2Qzg7MDZDODsKK0ZCREQ7RkJERDtGQkREOzA2QzcgMDY3NDswNkM3IDA2NzQ7CitGQkRFO0ZCREU7RkJERTswNkNCOzA2Q0I7CitGQkRGO0ZCREY7RkJERjswNkNCOzA2Q0I7CitGQkUwO0ZCRTA7RkJFMDswNkM1OzA2QzU7CitGQkUxO0ZCRTE7RkJFMTswNkM1OzA2QzU7CitGQkUyO0ZCRTI7RkJFMjswNkM5OzA2Qzk7CitGQkUzO0ZCRTM7RkJFMzswNkM5OzA2Qzk7CitGQkU0O0ZCRTQ7RkJFNDswNkQwOzA2RDA7CitGQkU1O0ZCRTU7RkJFNTswNkQwOzA2RDA7CitGQkU2O0ZCRTY7RkJFNjswNkQwOzA2RDA7CitGQkU3O0ZCRTc7RkJFNzswNkQwOzA2RDA7CitGQkU4O0ZCRTg7RkJFODswNjQ5OzA2NDk7CitGQkU5O0ZCRTk7RkJFOTswNjQ5OzA2NDk7CitGQkVBO0ZCRUE7RkJFQTswNjI2IDA2Mjc7MDY0QSAwNjU0IDA2Mjc7CitGQkVCO0ZCRUI7RkJFQjswNjI2IDA2Mjc7MDY0QSAwNjU0IDA2Mjc7CitGQkVDO0ZCRUM7RkJFQzswNjI2IDA2RDU7MDY0QSAwNjU0IDA2RDU7CitGQkVEO0ZCRUQ7RkJFRDswNjI2IDA2RDU7MDY0QSAwNjU0IDA2RDU7CitGQkVFO0ZCRUU7RkJFRTswNjI2IDA2NDg7MDY0QSAwNjU0IDA2NDg7CitGQkVGO0ZCRUY7RkJFRjswNjI2IDA2NDg7MDY0QSAwNjU0IDA2NDg7CitGQkYwO0ZCRjA7RkJGMDswNjI2IDA2Qzc7MDY0QSAwNjU0IDA2Qzc7CitGQkYxO0ZCRjE7RkJGMTswNjI2IDA2Qzc7MDY0QSAwNjU0IDA2Qzc7CitGQkYyO0ZCRjI7RkJGMjswNjI2IDA2QzY7MDY0QSAwNjU0IDA2QzY7CitGQkYzO0ZCRjM7RkJGMzswNjI2IDA2QzY7MDY0QSAwNjU0IDA2QzY7CitGQkY0O0ZCRjQ7RkJGNDswNjI2IDA2Qzg7MDY0QSAwNjU0IDA2Qzg7CitGQkY1O0ZCRjU7RkJGNTswNjI2IDA2Qzg7MDY0QSAwNjU0IDA2Qzg7CitGQkY2O0ZCRjY7RkJGNjswNjI2IDA2RDA7MDY0QSAwNjU0IDA2RDA7CitGQkY3O0ZCRjc7RkJGNzswNjI2IDA2RDA7MDY0QSAwNjU0IDA2RDA7CitGQkY4O0ZCRjg7RkJGODswNjI2IDA2RDA7MDY0QSAwNjU0IDA2RDA7CitGQkY5O0ZCRjk7RkJGOTswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQkZBO0ZCRkE7RkJGQTswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQkZCO0ZCRkI7RkJGQjswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQkZDO0ZCRkM7RkJGQzswNkNDOzA2Q0M7CitGQkZEO0ZCRkQ7RkJGRDswNkNDOzA2Q0M7CitGQkZFO0ZCRkU7RkJGRTswNkNDOzA2Q0M7CitGQkZGO0ZCRkY7RkJGRjswNkNDOzA2Q0M7CitGQzAwO0ZDMDA7RkMwMDswNjI2IDA2MkM7MDY0QSAwNjU0IDA2MkM7CitGQzAxO0ZDMDE7RkMwMTswNjI2IDA2MkQ7MDY0QSAwNjU0IDA2MkQ7CitGQzAyO0ZDMDI7RkMwMjswNjI2IDA2NDU7MDY0QSAwNjU0IDA2NDU7CitGQzAzO0ZDMDM7RkMwMzswNjI2IDA2NDk7MDY0QSAwNjU0IDA2NDk7CitGQzA0O0ZDMDQ7RkMwNDswNjI2IDA2NEE7MDY0QSAwNjU0IDA2NEE7CitGQzA1O0ZDMDU7RkMwNTswNjI4IDA2MkM7MDYyOCAwNjJDOworRkMwNjtGQzA2O0ZDMDY7MDYyOCAwNjJEOzA2MjggMDYyRDsKK0ZDMDc7RkMwNztGQzA3OzA2MjggMDYyRTswNjI4IDA2MkU7CitGQzA4O0ZDMDg7RkMwODswNjI4IDA2NDU7MDYyOCAwNjQ1OworRkMwOTtGQzA5O0ZDMDk7MDYyOCAwNjQ5OzA2MjggMDY0OTsKK0ZDMEE7RkMwQTtGQzBBOzA2MjggMDY0QTswNjI4IDA2NEE7CitGQzBCO0ZDMEI7RkMwQjswNjJBIDA2MkM7MDYyQSAwNjJDOworRkMwQztGQzBDO0ZDMEM7MDYyQSAwNjJEOzA2MkEgMDYyRDsKK0ZDMEQ7RkMwRDtGQzBEOzA2MkEgMDYyRTswNjJBIDA2MkU7CitGQzBFO0ZDMEU7RkMwRTswNjJBIDA2NDU7MDYyQSAwNjQ1OworRkMwRjtGQzBGO0ZDMEY7MDYyQSAwNjQ5OzA2MkEgMDY0OTsKK0ZDMTA7RkMxMDtGQzEwOzA2MkEgMDY0QTswNjJBIDA2NEE7CitGQzExO0ZDMTE7RkMxMTswNjJCIDA2MkM7MDYyQiAwNjJDOworRkMxMjtGQzEyO0ZDMTI7MDYyQiAwNjQ1OzA2MkIgMDY0NTsKK0ZDMTM7RkMxMztGQzEzOzA2MkIgMDY0OTswNjJCIDA2NDk7CitGQzE0O0ZDMTQ7RkMxNDswNjJCIDA2NEE7MDYyQiAwNjRBOworRkMxNTtGQzE1O0ZDMTU7MDYyQyAwNjJEOzA2MkMgMDYyRDsKK0ZDMTY7RkMxNjtGQzE2OzA2MkMgMDY0NTswNjJDIDA2NDU7CitGQzE3O0ZDMTc7RkMxNzswNjJEIDA2MkM7MDYyRCAwNjJDOworRkMxODtGQzE4O0ZDMTg7MDYyRCAwNjQ1OzA2MkQgMDY0NTsKK0ZDMTk7RkMxOTtGQzE5OzA2MkUgMDYyQzswNjJFIDA2MkM7CitGQzFBO0ZDMUE7RkMxQTswNjJFIDA2MkQ7MDYyRSAwNjJEOworRkMxQjtGQzFCO0ZDMUI7MDYyRSAwNjQ1OzA2MkUgMDY0NTsKK0ZDMUM7RkMxQztGQzFDOzA2MzMgMDYyQzswNjMzIDA2MkM7CitGQzFEO0ZDMUQ7RkMxRDswNjMzIDA2MkQ7MDYzMyAwNjJEOworRkMxRTtGQzFFO0ZDMUU7MDYzMyAwNjJFOzA2MzMgMDYyRTsKK0ZDMUY7RkMxRjtGQzFGOzA2MzMgMDY0NTswNjMzIDA2NDU7CitGQzIwO0ZDMjA7RkMyMDswNjM1IDA2MkQ7MDYzNSAwNjJEOworRkMyMTtGQzIxO0ZDMjE7MDYzNSAwNjQ1OzA2MzUgMDY0NTsKK0ZDMjI7RkMyMjtGQzIyOzA2MzYgMDYyQzswNjM2IDA2MkM7CitGQzIzO0ZDMjM7RkMyMzswNjM2IDA2MkQ7MDYzNiAwNjJEOworRkMyNDtGQzI0O0ZDMjQ7MDYzNiAwNjJFOzA2MzYgMDYyRTsKK0ZDMjU7RkMyNTtGQzI1OzA2MzYgMDY0NTswNjM2IDA2NDU7CitGQzI2O0ZDMjY7RkMyNjswNjM3IDA2MkQ7MDYzNyAwNjJEOworRkMyNztGQzI3O0ZDMjc7MDYzNyAwNjQ1OzA2MzcgMDY0NTsKK0ZDMjg7RkMyODtGQzI4OzA2MzggMDY0NTswNjM4IDA2NDU7CitGQzI5O0ZDMjk7RkMyOTswNjM5IDA2MkM7MDYzOSAwNjJDOworRkMyQTtGQzJBO0ZDMkE7MDYzOSAwNjQ1OzA2MzkgMDY0NTsKK0ZDMkI7RkMyQjtGQzJCOzA2M0EgMDYyQzswNjNBIDA2MkM7CitGQzJDO0ZDMkM7RkMyQzswNjNBIDA2NDU7MDYzQSAwNjQ1OworRkMyRDtGQzJEO0ZDMkQ7MDY0MSAwNjJDOzA2NDEgMDYyQzsKK0ZDMkU7RkMyRTtGQzJFOzA2NDEgMDYyRDswNjQxIDA2MkQ7CitGQzJGO0ZDMkY7RkMyRjswNjQxIDA2MkU7MDY0MSAwNjJFOworRkMzMDtGQzMwO0ZDMzA7MDY0MSAwNjQ1OzA2NDEgMDY0NTsKK0ZDMzE7RkMzMTtGQzMxOzA2NDEgMDY0OTswNjQxIDA2NDk7CitGQzMyO0ZDMzI7RkMzMjswNjQxIDA2NEE7MDY0MSAwNjRBOworRkMzMztGQzMzO0ZDMzM7MDY0MiAwNjJEOzA2NDIgMDYyRDsKK0ZDMzQ7RkMzNDtGQzM0OzA2NDIgMDY0NTswNjQyIDA2NDU7CitGQzM1O0ZDMzU7RkMzNTswNjQyIDA2NDk7MDY0MiAwNjQ5OworRkMzNjtGQzM2O0ZDMzY7MDY0MiAwNjRBOzA2NDIgMDY0QTsKK0ZDMzc7RkMzNztGQzM3OzA2NDMgMDYyNzswNjQzIDA2Mjc7CitGQzM4O0ZDMzg7RkMzODswNjQzIDA2MkM7MDY0MyAwNjJDOworRkMzOTtGQzM5O0ZDMzk7MDY0MyAwNjJEOzA2NDMgMDYyRDsKK0ZDM0E7RkMzQTtGQzNBOzA2NDMgMDYyRTswNjQzIDA2MkU7CitGQzNCO0ZDM0I7RkMzQjswNjQzIDA2NDQ7MDY0MyAwNjQ0OworRkMzQztGQzNDO0ZDM0M7MDY0MyAwNjQ1OzA2NDMgMDY0NTsKK0ZDM0Q7RkMzRDtGQzNEOzA2NDMgMDY0OTswNjQzIDA2NDk7CitGQzNFO0ZDM0U7RkMzRTswNjQzIDA2NEE7MDY0MyAwNjRBOworRkMzRjtGQzNGO0ZDM0Y7MDY0NCAwNjJDOzA2NDQgMDYyQzsKK0ZDNDA7RkM0MDtGQzQwOzA2NDQgMDYyRDswNjQ0IDA2MkQ7CitGQzQxO0ZDNDE7RkM0MTswNjQ0IDA2MkU7MDY0NCAwNjJFOworRkM0MjtGQzQyO0ZDNDI7MDY0NCAwNjQ1OzA2NDQgMDY0NTsKK0ZDNDM7RkM0MztGQzQzOzA2NDQgMDY0OTswNjQ0IDA2NDk7CitGQzQ0O0ZDNDQ7RkM0NDswNjQ0IDA2NEE7MDY0NCAwNjRBOworRkM0NTtGQzQ1O0ZDNDU7MDY0NSAwNjJDOzA2NDUgMDYyQzsKK0ZDNDY7RkM0NjtGQzQ2OzA2NDUgMDYyRDswNjQ1IDA2MkQ7CitGQzQ3O0ZDNDc7RkM0NzswNjQ1IDA2MkU7MDY0NSAwNjJFOworRkM0ODtGQzQ4O0ZDNDg7MDY0NSAwNjQ1OzA2NDUgMDY0NTsKK0ZDNDk7RkM0OTtGQzQ5OzA2NDUgMDY0OTswNjQ1IDA2NDk7CitGQzRBO0ZDNEE7RkM0QTswNjQ1IDA2NEE7MDY0NSAwNjRBOworRkM0QjtGQzRCO0ZDNEI7MDY0NiAwNjJDOzA2NDYgMDYyQzsKK0ZDNEM7RkM0QztGQzRDOzA2NDYgMDYyRDswNjQ2IDA2MkQ7CitGQzREO0ZDNEQ7RkM0RDswNjQ2IDA2MkU7MDY0NiAwNjJFOworRkM0RTtGQzRFO0ZDNEU7MDY0NiAwNjQ1OzA2NDYgMDY0NTsKK0ZDNEY7RkM0RjtGQzRGOzA2NDYgMDY0OTswNjQ2IDA2NDk7CitGQzUwO0ZDNTA7RkM1MDswNjQ2IDA2NEE7MDY0NiAwNjRBOworRkM1MTtGQzUxO0ZDNTE7MDY0NyAwNjJDOzA2NDcgMDYyQzsKK0ZDNTI7RkM1MjtGQzUyOzA2NDcgMDY0NTswNjQ3IDA2NDU7CitGQzUzO0ZDNTM7RkM1MzswNjQ3IDA2NDk7MDY0NyAwNjQ5OworRkM1NDtGQzU0O0ZDNTQ7MDY0NyAwNjRBOzA2NDcgMDY0QTsKK0ZDNTU7RkM1NTtGQzU1OzA2NEEgMDYyQzswNjRBIDA2MkM7CitGQzU2O0ZDNTY7RkM1NjswNjRBIDA2MkQ7MDY0QSAwNjJEOworRkM1NztGQzU3O0ZDNTc7MDY0QSAwNjJFOzA2NEEgMDYyRTsKK0ZDNTg7RkM1ODtGQzU4OzA2NEEgMDY0NTswNjRBIDA2NDU7CitGQzU5O0ZDNTk7RkM1OTswNjRBIDA2NDk7MDY0QSAwNjQ5OworRkM1QTtGQzVBO0ZDNUE7MDY0QSAwNjRBOzA2NEEgMDY0QTsKK0ZDNUI7RkM1QjtGQzVCOzA2MzAgMDY3MDswNjMwIDA2NzA7CitGQzVDO0ZDNUM7RkM1QzswNjMxIDA2NzA7MDYzMSAwNjcwOworRkM1RDtGQzVEO0ZDNUQ7MDY0OSAwNjcwOzA2NDkgMDY3MDsKK0ZDNUU7RkM1RTtGQzVFOzAwMjAgMDY0QyAwNjUxOzAwMjAgMDY0QyAwNjUxOworRkM1RjtGQzVGO0ZDNUY7MDAyMCAwNjREIDA2NTE7MDAyMCAwNjREIDA2NTE7CitGQzYwO0ZDNjA7RkM2MDswMDIwIDA2NEUgMDY1MTswMDIwIDA2NEUgMDY1MTsKK0ZDNjE7RkM2MTtGQzYxOzAwMjAgMDY0RiAwNjUxOzAwMjAgMDY0RiAwNjUxOworRkM2MjtGQzYyO0ZDNjI7MDAyMCAwNjUwIDA2NTE7MDAyMCAwNjUwIDA2NTE7CitGQzYzO0ZDNjM7RkM2MzswMDIwIDA2NTEgMDY3MDswMDIwIDA2NTEgMDY3MDsKK0ZDNjQ7RkM2NDtGQzY0OzA2MjYgMDYzMTswNjRBIDA2NTQgMDYzMTsKK0ZDNjU7RkM2NTtGQzY1OzA2MjYgMDYzMjswNjRBIDA2NTQgMDYzMjsKK0ZDNjY7RkM2NjtGQzY2OzA2MjYgMDY0NTswNjRBIDA2NTQgMDY0NTsKK0ZDNjc7RkM2NztGQzY3OzA2MjYgMDY0NjswNjRBIDA2NTQgMDY0NjsKK0ZDNjg7RkM2ODtGQzY4OzA2MjYgMDY0OTswNjRBIDA2NTQgMDY0OTsKK0ZDNjk7RkM2OTtGQzY5OzA2MjYgMDY0QTswNjRBIDA2NTQgMDY0QTsKK0ZDNkE7RkM2QTtGQzZBOzA2MjggMDYzMTswNjI4IDA2MzE7CitGQzZCO0ZDNkI7RkM2QjswNjI4IDA2MzI7MDYyOCAwNjMyOworRkM2QztGQzZDO0ZDNkM7MDYyOCAwNjQ1OzA2MjggMDY0NTsKK0ZDNkQ7RkM2RDtGQzZEOzA2MjggMDY0NjswNjI4IDA2NDY7CitGQzZFO0ZDNkU7RkM2RTswNjI4IDA2NDk7MDYyOCAwNjQ5OworRkM2RjtGQzZGO0ZDNkY7MDYyOCAwNjRBOzA2MjggMDY0QTsKK0ZDNzA7RkM3MDtGQzcwOzA2MkEgMDYzMTswNjJBIDA2MzE7CitGQzcxO0ZDNzE7RkM3MTswNjJBIDA2MzI7MDYyQSAwNjMyOworRkM3MjtGQzcyO0ZDNzI7MDYyQSAwNjQ1OzA2MkEgMDY0NTsKK0ZDNzM7RkM3MztGQzczOzA2MkEgMDY0NjswNjJBIDA2NDY7CitGQzc0O0ZDNzQ7RkM3NDswNjJBIDA2NDk7MDYyQSAwNjQ5OworRkM3NTtGQzc1O0ZDNzU7MDYyQSAwNjRBOzA2MkEgMDY0QTsKK0ZDNzY7RkM3NjtGQzc2OzA2MkIgMDYzMTswNjJCIDA2MzE7CitGQzc3O0ZDNzc7RkM3NzswNjJCIDA2MzI7MDYyQiAwNjMyOworRkM3ODtGQzc4O0ZDNzg7MDYyQiAwNjQ1OzA2MkIgMDY0NTsKK0ZDNzk7RkM3OTtGQzc5OzA2MkIgMDY0NjswNjJCIDA2NDY7CitGQzdBO0ZDN0E7RkM3QTswNjJCIDA2NDk7MDYyQiAwNjQ5OworRkM3QjtGQzdCO0ZDN0I7MDYyQiAwNjRBOzA2MkIgMDY0QTsKK0ZDN0M7RkM3QztGQzdDOzA2NDEgMDY0OTswNjQxIDA2NDk7CitGQzdEO0ZDN0Q7RkM3RDswNjQxIDA2NEE7MDY0MSAwNjRBOworRkM3RTtGQzdFO0ZDN0U7MDY0MiAwNjQ5OzA2NDIgMDY0OTsKK0ZDN0Y7RkM3RjtGQzdGOzA2NDIgMDY0QTswNjQyIDA2NEE7CitGQzgwO0ZDODA7RkM4MDswNjQzIDA2Mjc7MDY0MyAwNjI3OworRkM4MTtGQzgxO0ZDODE7MDY0MyAwNjQ0OzA2NDMgMDY0NDsKK0ZDODI7RkM4MjtGQzgyOzA2NDMgMDY0NTswNjQzIDA2NDU7CitGQzgzO0ZDODM7RkM4MzswNjQzIDA2NDk7MDY0MyAwNjQ5OworRkM4NDtGQzg0O0ZDODQ7MDY0MyAwNjRBOzA2NDMgMDY0QTsKK0ZDODU7RkM4NTtGQzg1OzA2NDQgMDY0NTswNjQ0IDA2NDU7CitGQzg2O0ZDODY7RkM4NjswNjQ0IDA2NDk7MDY0NCAwNjQ5OworRkM4NztGQzg3O0ZDODc7MDY0NCAwNjRBOzA2NDQgMDY0QTsKK0ZDODg7RkM4ODtGQzg4OzA2NDUgMDYyNzswNjQ1IDA2Mjc7CitGQzg5O0ZDODk7RkM4OTswNjQ1IDA2NDU7MDY0NSAwNjQ1OworRkM4QTtGQzhBO0ZDOEE7MDY0NiAwNjMxOzA2NDYgMDYzMTsKK0ZDOEI7RkM4QjtGQzhCOzA2NDYgMDYzMjswNjQ2IDA2MzI7CitGQzhDO0ZDOEM7RkM4QzswNjQ2IDA2NDU7MDY0NiAwNjQ1OworRkM4RDtGQzhEO0ZDOEQ7MDY0NiAwNjQ2OzA2NDYgMDY0NjsKK0ZDOEU7RkM4RTtGQzhFOzA2NDYgMDY0OTswNjQ2IDA2NDk7CitGQzhGO0ZDOEY7RkM4RjswNjQ2IDA2NEE7MDY0NiAwNjRBOworRkM5MDtGQzkwO0ZDOTA7MDY0OSAwNjcwOzA2NDkgMDY3MDsKK0ZDOTE7RkM5MTtGQzkxOzA2NEEgMDYzMTswNjRBIDA2MzE7CitGQzkyO0ZDOTI7RkM5MjswNjRBIDA2MzI7MDY0QSAwNjMyOworRkM5MztGQzkzO0ZDOTM7MDY0QSAwNjQ1OzA2NEEgMDY0NTsKK0ZDOTQ7RkM5NDtGQzk0OzA2NEEgMDY0NjswNjRBIDA2NDY7CitGQzk1O0ZDOTU7RkM5NTswNjRBIDA2NDk7MDY0QSAwNjQ5OworRkM5NjtGQzk2O0ZDOTY7MDY0QSAwNjRBOzA2NEEgMDY0QTsKK0ZDOTc7RkM5NztGQzk3OzA2MjYgMDYyQzswNjRBIDA2NTQgMDYyQzsKK0ZDOTg7RkM5ODtGQzk4OzA2MjYgMDYyRDswNjRBIDA2NTQgMDYyRDsKK0ZDOTk7RkM5OTtGQzk5OzA2MjYgMDYyRTswNjRBIDA2NTQgMDYyRTsKK0ZDOUE7RkM5QTtGQzlBOzA2MjYgMDY0NTswNjRBIDA2NTQgMDY0NTsKK0ZDOUI7RkM5QjtGQzlCOzA2MjYgMDY0NzswNjRBIDA2NTQgMDY0NzsKK0ZDOUM7RkM5QztGQzlDOzA2MjggMDYyQzswNjI4IDA2MkM7CitGQzlEO0ZDOUQ7RkM5RDswNjI4IDA2MkQ7MDYyOCAwNjJEOworRkM5RTtGQzlFO0ZDOUU7MDYyOCAwNjJFOzA2MjggMDYyRTsKK0ZDOUY7RkM5RjtGQzlGOzA2MjggMDY0NTswNjI4IDA2NDU7CitGQ0EwO0ZDQTA7RkNBMDswNjI4IDA2NDc7MDYyOCAwNjQ3OworRkNBMTtGQ0ExO0ZDQTE7MDYyQSAwNjJDOzA2MkEgMDYyQzsKK0ZDQTI7RkNBMjtGQ0EyOzA2MkEgMDYyRDswNjJBIDA2MkQ7CitGQ0EzO0ZDQTM7RkNBMzswNjJBIDA2MkU7MDYyQSAwNjJFOworRkNBNDtGQ0E0O0ZDQTQ7MDYyQSAwNjQ1OzA2MkEgMDY0NTsKK0ZDQTU7RkNBNTtGQ0E1OzA2MkEgMDY0NzswNjJBIDA2NDc7CitGQ0E2O0ZDQTY7RkNBNjswNjJCIDA2NDU7MDYyQiAwNjQ1OworRkNBNztGQ0E3O0ZDQTc7MDYyQyAwNjJEOzA2MkMgMDYyRDsKK0ZDQTg7RkNBODtGQ0E4OzA2MkMgMDY0NTswNjJDIDA2NDU7CitGQ0E5O0ZDQTk7RkNBOTswNjJEIDA2MkM7MDYyRCAwNjJDOworRkNBQTtGQ0FBO0ZDQUE7MDYyRCAwNjQ1OzA2MkQgMDY0NTsKK0ZDQUI7RkNBQjtGQ0FCOzA2MkUgMDYyQzswNjJFIDA2MkM7CitGQ0FDO0ZDQUM7RkNBQzswNjJFIDA2NDU7MDYyRSAwNjQ1OworRkNBRDtGQ0FEO0ZDQUQ7MDYzMyAwNjJDOzA2MzMgMDYyQzsKK0ZDQUU7RkNBRTtGQ0FFOzA2MzMgMDYyRDswNjMzIDA2MkQ7CitGQ0FGO0ZDQUY7RkNBRjswNjMzIDA2MkU7MDYzMyAwNjJFOworRkNCMDtGQ0IwO0ZDQjA7MDYzMyAwNjQ1OzA2MzMgMDY0NTsKK0ZDQjE7RkNCMTtGQ0IxOzA2MzUgMDYyRDswNjM1IDA2MkQ7CitGQ0IyO0ZDQjI7RkNCMjswNjM1IDA2MkU7MDYzNSAwNjJFOworRkNCMztGQ0IzO0ZDQjM7MDYzNSAwNjQ1OzA2MzUgMDY0NTsKK0ZDQjQ7RkNCNDtGQ0I0OzA2MzYgMDYyQzswNjM2IDA2MkM7CitGQ0I1O0ZDQjU7RkNCNTswNjM2IDA2MkQ7MDYzNiAwNjJEOworRkNCNjtGQ0I2O0ZDQjY7MDYzNiAwNjJFOzA2MzYgMDYyRTsKK0ZDQjc7RkNCNztGQ0I3OzA2MzYgMDY0NTswNjM2IDA2NDU7CitGQ0I4O0ZDQjg7RkNCODswNjM3IDA2MkQ7MDYzNyAwNjJEOworRkNCOTtGQ0I5O0ZDQjk7MDYzOCAwNjQ1OzA2MzggMDY0NTsKK0ZDQkE7RkNCQTtGQ0JBOzA2MzkgMDYyQzswNjM5IDA2MkM7CitGQ0JCO0ZDQkI7RkNCQjswNjM5IDA2NDU7MDYzOSAwNjQ1OworRkNCQztGQ0JDO0ZDQkM7MDYzQSAwNjJDOzA2M0EgMDYyQzsKK0ZDQkQ7RkNCRDtGQ0JEOzA2M0EgMDY0NTswNjNBIDA2NDU7CitGQ0JFO0ZDQkU7RkNCRTswNjQxIDA2MkM7MDY0MSAwNjJDOworRkNCRjtGQ0JGO0ZDQkY7MDY0MSAwNjJEOzA2NDEgMDYyRDsKK0ZDQzA7RkNDMDtGQ0MwOzA2NDEgMDYyRTswNjQxIDA2MkU7CitGQ0MxO0ZDQzE7RkNDMTswNjQxIDA2NDU7MDY0MSAwNjQ1OworRkNDMjtGQ0MyO0ZDQzI7MDY0MiAwNjJEOzA2NDIgMDYyRDsKK0ZDQzM7RkNDMztGQ0MzOzA2NDIgMDY0NTswNjQyIDA2NDU7CitGQ0M0O0ZDQzQ7RkNDNDswNjQzIDA2MkM7MDY0MyAwNjJDOworRkNDNTtGQ0M1O0ZDQzU7MDY0MyAwNjJEOzA2NDMgMDYyRDsKK0ZDQzY7RkNDNjtGQ0M2OzA2NDMgMDYyRTswNjQzIDA2MkU7CitGQ0M3O0ZDQzc7RkNDNzswNjQzIDA2NDQ7MDY0MyAwNjQ0OworRkNDODtGQ0M4O0ZDQzg7MDY0MyAwNjQ1OzA2NDMgMDY0NTsKK0ZDQzk7RkNDOTtGQ0M5OzA2NDQgMDYyQzswNjQ0IDA2MkM7CitGQ0NBO0ZDQ0E7RkNDQTswNjQ0IDA2MkQ7MDY0NCAwNjJEOworRkNDQjtGQ0NCO0ZDQ0I7MDY0NCAwNjJFOzA2NDQgMDYyRTsKK0ZDQ0M7RkNDQztGQ0NDOzA2NDQgMDY0NTswNjQ0IDA2NDU7CitGQ0NEO0ZDQ0Q7RkNDRDswNjQ0IDA2NDc7MDY0NCAwNjQ3OworRkNDRTtGQ0NFO0ZDQ0U7MDY0NSAwNjJDOzA2NDUgMDYyQzsKK0ZDQ0Y7RkNDRjtGQ0NGOzA2NDUgMDYyRDswNjQ1IDA2MkQ7CitGQ0QwO0ZDRDA7RkNEMDswNjQ1IDA2MkU7MDY0NSAwNjJFOworRkNEMTtGQ0QxO0ZDRDE7MDY0NSAwNjQ1OzA2NDUgMDY0NTsKK0ZDRDI7RkNEMjtGQ0QyOzA2NDYgMDYyQzswNjQ2IDA2MkM7CitGQ0QzO0ZDRDM7RkNEMzswNjQ2IDA2MkQ7MDY0NiAwNjJEOworRkNENDtGQ0Q0O0ZDRDQ7MDY0NiAwNjJFOzA2NDYgMDYyRTsKK0ZDRDU7RkNENTtGQ0Q1OzA2NDYgMDY0NTswNjQ2IDA2NDU7CitGQ0Q2O0ZDRDY7RkNENjswNjQ2IDA2NDc7MDY0NiAwNjQ3OworRkNENztGQ0Q3O0ZDRDc7MDY0NyAwNjJDOzA2NDcgMDYyQzsKK0ZDRDg7RkNEODtGQ0Q4OzA2NDcgMDY0NTswNjQ3IDA2NDU7CitGQ0Q5O0ZDRDk7RkNEOTswNjQ3IDA2NzA7MDY0NyAwNjcwOworRkNEQTtGQ0RBO0ZDREE7MDY0QSAwNjJDOzA2NEEgMDYyQzsKK0ZDREI7RkNEQjtGQ0RCOzA2NEEgMDYyRDswNjRBIDA2MkQ7CitGQ0RDO0ZDREM7RkNEQzswNjRBIDA2MkU7MDY0QSAwNjJFOworRkNERDtGQ0REO0ZDREQ7MDY0QSAwNjQ1OzA2NEEgMDY0NTsKK0ZDREU7RkNERTtGQ0RFOzA2NEEgMDY0NzswNjRBIDA2NDc7CitGQ0RGO0ZDREY7RkNERjswNjI2IDA2NDU7MDY0QSAwNjU0IDA2NDU7CitGQ0UwO0ZDRTA7RkNFMDswNjI2IDA2NDc7MDY0QSAwNjU0IDA2NDc7CitGQ0UxO0ZDRTE7RkNFMTswNjI4IDA2NDU7MDYyOCAwNjQ1OworRkNFMjtGQ0UyO0ZDRTI7MDYyOCAwNjQ3OzA2MjggMDY0NzsKK0ZDRTM7RkNFMztGQ0UzOzA2MkEgMDY0NTswNjJBIDA2NDU7CitGQ0U0O0ZDRTQ7RkNFNDswNjJBIDA2NDc7MDYyQSAwNjQ3OworRkNFNTtGQ0U1O0ZDRTU7MDYyQiAwNjQ1OzA2MkIgMDY0NTsKK0ZDRTY7RkNFNjtGQ0U2OzA2MkIgMDY0NzswNjJCIDA2NDc7CitGQ0U3O0ZDRTc7RkNFNzswNjMzIDA2NDU7MDYzMyAwNjQ1OworRkNFODtGQ0U4O0ZDRTg7MDYzMyAwNjQ3OzA2MzMgMDY0NzsKK0ZDRTk7RkNFOTtGQ0U5OzA2MzQgMDY0NTswNjM0IDA2NDU7CitGQ0VBO0ZDRUE7RkNFQTswNjM0IDA2NDc7MDYzNCAwNjQ3OworRkNFQjtGQ0VCO0ZDRUI7MDY0MyAwNjQ0OzA2NDMgMDY0NDsKK0ZDRUM7RkNFQztGQ0VDOzA2NDMgMDY0NTswNjQzIDA2NDU7CitGQ0VEO0ZDRUQ7RkNFRDswNjQ0IDA2NDU7MDY0NCAwNjQ1OworRkNFRTtGQ0VFO0ZDRUU7MDY0NiAwNjQ1OzA2NDYgMDY0NTsKK0ZDRUY7RkNFRjtGQ0VGOzA2NDYgMDY0NzswNjQ2IDA2NDc7CitGQ0YwO0ZDRjA7RkNGMDswNjRBIDA2NDU7MDY0QSAwNjQ1OworRkNGMTtGQ0YxO0ZDRjE7MDY0QSAwNjQ3OzA2NEEgMDY0NzsKK0ZDRjI7RkNGMjtGQ0YyOzA2NDAgMDY0RSAwNjUxOzA2NDAgMDY0RSAwNjUxOworRkNGMztGQ0YzO0ZDRjM7MDY0MCAwNjRGIDA2NTE7MDY0MCAwNjRGIDA2NTE7CitGQ0Y0O0ZDRjQ7RkNGNDswNjQwIDA2NTAgMDY1MTswNjQwIDA2NTAgMDY1MTsKK0ZDRjU7RkNGNTtGQ0Y1OzA2MzcgMDY0OTswNjM3IDA2NDk7CitGQ0Y2O0ZDRjY7RkNGNjswNjM3IDA2NEE7MDYzNyAwNjRBOworRkNGNztGQ0Y3O0ZDRjc7MDYzOSAwNjQ5OzA2MzkgMDY0OTsKK0ZDRjg7RkNGODtGQ0Y4OzA2MzkgMDY0QTswNjM5IDA2NEE7CitGQ0Y5O0ZDRjk7RkNGOTswNjNBIDA2NDk7MDYzQSAwNjQ5OworRkNGQTtGQ0ZBO0ZDRkE7MDYzQSAwNjRBOzA2M0EgMDY0QTsKK0ZDRkI7RkNGQjtGQ0ZCOzA2MzMgMDY0OTswNjMzIDA2NDk7CitGQ0ZDO0ZDRkM7RkNGQzswNjMzIDA2NEE7MDYzMyAwNjRBOworRkNGRDtGQ0ZEO0ZDRkQ7MDYzNCAwNjQ5OzA2MzQgMDY0OTsKK0ZDRkU7RkNGRTtGQ0ZFOzA2MzQgMDY0QTswNjM0IDA2NEE7CitGQ0ZGO0ZDRkY7RkNGRjswNjJEIDA2NDk7MDYyRCAwNjQ5OworRkQwMDtGRDAwO0ZEMDA7MDYyRCAwNjRBOzA2MkQgMDY0QTsKK0ZEMDE7RkQwMTtGRDAxOzA2MkMgMDY0OTswNjJDIDA2NDk7CitGRDAyO0ZEMDI7RkQwMjswNjJDIDA2NEE7MDYyQyAwNjRBOworRkQwMztGRDAzO0ZEMDM7MDYyRSAwNjQ5OzA2MkUgMDY0OTsKK0ZEMDQ7RkQwNDtGRDA0OzA2MkUgMDY0QTswNjJFIDA2NEE7CitGRDA1O0ZEMDU7RkQwNTswNjM1IDA2NDk7MDYzNSAwNjQ5OworRkQwNjtGRDA2O0ZEMDY7MDYzNSAwNjRBOzA2MzUgMDY0QTsKK0ZEMDc7RkQwNztGRDA3OzA2MzYgMDY0OTswNjM2IDA2NDk7CitGRDA4O0ZEMDg7RkQwODswNjM2IDA2NEE7MDYzNiAwNjRBOworRkQwOTtGRDA5O0ZEMDk7MDYzNCAwNjJDOzA2MzQgMDYyQzsKK0ZEMEE7RkQwQTtGRDBBOzA2MzQgMDYyRDswNjM0IDA2MkQ7CitGRDBCO0ZEMEI7RkQwQjswNjM0IDA2MkU7MDYzNCAwNjJFOworRkQwQztGRDBDO0ZEMEM7MDYzNCAwNjQ1OzA2MzQgMDY0NTsKK0ZEMEQ7RkQwRDtGRDBEOzA2MzQgMDYzMTswNjM0IDA2MzE7CitGRDBFO0ZEMEU7RkQwRTswNjMzIDA2MzE7MDYzMyAwNjMxOworRkQwRjtGRDBGO0ZEMEY7MDYzNSAwNjMxOzA2MzUgMDYzMTsKK0ZEMTA7RkQxMDtGRDEwOzA2MzYgMDYzMTswNjM2IDA2MzE7CitGRDExO0ZEMTE7RkQxMTswNjM3IDA2NDk7MDYzNyAwNjQ5OworRkQxMjtGRDEyO0ZEMTI7MDYzNyAwNjRBOzA2MzcgMDY0QTsKK0ZEMTM7RkQxMztGRDEzOzA2MzkgMDY0OTswNjM5IDA2NDk7CitGRDE0O0ZEMTQ7RkQxNDswNjM5IDA2NEE7MDYzOSAwNjRBOworRkQxNTtGRDE1O0ZEMTU7MDYzQSAwNjQ5OzA2M0EgMDY0OTsKK0ZEMTY7RkQxNjtGRDE2OzA2M0EgMDY0QTswNjNBIDA2NEE7CitGRDE3O0ZEMTc7RkQxNzswNjMzIDA2NDk7MDYzMyAwNjQ5OworRkQxODtGRDE4O0ZEMTg7MDYzMyAwNjRBOzA2MzMgMDY0QTsKK0ZEMTk7RkQxOTtGRDE5OzA2MzQgMDY0OTswNjM0IDA2NDk7CitGRDFBO0ZEMUE7RkQxQTswNjM0IDA2NEE7MDYzNCAwNjRBOworRkQxQjtGRDFCO0ZEMUI7MDYyRCAwNjQ5OzA2MkQgMDY0OTsKK0ZEMUM7RkQxQztGRDFDOzA2MkQgMDY0QTswNjJEIDA2NEE7CitGRDFEO0ZEMUQ7RkQxRDswNjJDIDA2NDk7MDYyQyAwNjQ5OworRkQxRTtGRDFFO0ZEMUU7MDYyQyAwNjRBOzA2MkMgMDY0QTsKK0ZEMUY7RkQxRjtGRDFGOzA2MkUgMDY0OTswNjJFIDA2NDk7CitGRDIwO0ZEMjA7RkQyMDswNjJFIDA2NEE7MDYyRSAwNjRBOworRkQyMTtGRDIxO0ZEMjE7MDYzNSAwNjQ5OzA2MzUgMDY0OTsKK0ZEMjI7RkQyMjtGRDIyOzA2MzUgMDY0QTswNjM1IDA2NEE7CitGRDIzO0ZEMjM7RkQyMzswNjM2IDA2NDk7MDYzNiAwNjQ5OworRkQyNDtGRDI0O0ZEMjQ7MDYzNiAwNjRBOzA2MzYgMDY0QTsKK0ZEMjU7RkQyNTtGRDI1OzA2MzQgMDYyQzswNjM0IDA2MkM7CitGRDI2O0ZEMjY7RkQyNjswNjM0IDA2MkQ7MDYzNCAwNjJEOworRkQyNztGRDI3O0ZEMjc7MDYzNCAwNjJFOzA2MzQgMDYyRTsKK0ZEMjg7RkQyODtGRDI4OzA2MzQgMDY0NTswNjM0IDA2NDU7CitGRDI5O0ZEMjk7RkQyOTswNjM0IDA2MzE7MDYzNCAwNjMxOworRkQyQTtGRDJBO0ZEMkE7MDYzMyAwNjMxOzA2MzMgMDYzMTsKK0ZEMkI7RkQyQjtGRDJCOzA2MzUgMDYzMTswNjM1IDA2MzE7CitGRDJDO0ZEMkM7RkQyQzswNjM2IDA2MzE7MDYzNiAwNjMxOworRkQyRDtGRDJEO0ZEMkQ7MDYzNCAwNjJDOzA2MzQgMDYyQzsKK0ZEMkU7RkQyRTtGRDJFOzA2MzQgMDYyRDswNjM0IDA2MkQ7CitGRDJGO0ZEMkY7RkQyRjswNjM0IDA2MkU7MDYzNCAwNjJFOworRkQzMDtGRDMwO0ZEMzA7MDYzNCAwNjQ1OzA2MzQgMDY0NTsKK0ZEMzE7RkQzMTtGRDMxOzA2MzMgMDY0NzswNjMzIDA2NDc7CitGRDMyO0ZEMzI7RkQzMjswNjM0IDA2NDc7MDYzNCAwNjQ3OworRkQzMztGRDMzO0ZEMzM7MDYzNyAwNjQ1OzA2MzcgMDY0NTsKK0ZEMzQ7RkQzNDtGRDM0OzA2MzMgMDYyQzswNjMzIDA2MkM7CitGRDM1O0ZEMzU7RkQzNTswNjMzIDA2MkQ7MDYzMyAwNjJEOworRkQzNjtGRDM2O0ZEMzY7MDYzMyAwNjJFOzA2MzMgMDYyRTsKK0ZEMzc7RkQzNztGRDM3OzA2MzQgMDYyQzswNjM0IDA2MkM7CitGRDM4O0ZEMzg7RkQzODswNjM0IDA2MkQ7MDYzNCAwNjJEOworRkQzOTtGRDM5O0ZEMzk7MDYzNCAwNjJFOzA2MzQgMDYyRTsKK0ZEM0E7RkQzQTtGRDNBOzA2MzcgMDY0NTswNjM3IDA2NDU7CitGRDNCO0ZEM0I7RkQzQjswNjM4IDA2NDU7MDYzOCAwNjQ1OworRkQzQztGRDNDO0ZEM0M7MDYyNyAwNjRCOzA2MjcgMDY0QjsKK0ZEM0Q7RkQzRDtGRDNEOzA2MjcgMDY0QjswNjI3IDA2NEI7CitGRDUwO0ZENTA7RkQ1MDswNjJBIDA2MkMgMDY0NTswNjJBIDA2MkMgMDY0NTsKK0ZENTE7RkQ1MTtGRDUxOzA2MkEgMDYyRCAwNjJDOzA2MkEgMDYyRCAwNjJDOworRkQ1MjtGRDUyO0ZENTI7MDYyQSAwNjJEIDA2MkM7MDYyQSAwNjJEIDA2MkM7CitGRDUzO0ZENTM7RkQ1MzswNjJBIDA2MkQgMDY0NTswNjJBIDA2MkQgMDY0NTsKK0ZENTQ7RkQ1NDtGRDU0OzA2MkEgMDYyRSAwNjQ1OzA2MkEgMDYyRSAwNjQ1OworRkQ1NTtGRDU1O0ZENTU7MDYyQSAwNjQ1IDA2MkM7MDYyQSAwNjQ1IDA2MkM7CitGRDU2O0ZENTY7RkQ1NjswNjJBIDA2NDUgMDYyRDswNjJBIDA2NDUgMDYyRDsKK0ZENTc7RkQ1NztGRDU3OzA2MkEgMDY0NSAwNjJFOzA2MkEgMDY0NSAwNjJFOworRkQ1ODtGRDU4O0ZENTg7MDYyQyAwNjQ1IDA2MkQ7MDYyQyAwNjQ1IDA2MkQ7CitGRDU5O0ZENTk7RkQ1OTswNjJDIDA2NDUgMDYyRDswNjJDIDA2NDUgMDYyRDsKK0ZENUE7RkQ1QTtGRDVBOzA2MkQgMDY0NSAwNjRBOzA2MkQgMDY0NSAwNjRBOworRkQ1QjtGRDVCO0ZENUI7MDYyRCAwNjQ1IDA2NDk7MDYyRCAwNjQ1IDA2NDk7CitGRDVDO0ZENUM7RkQ1QzswNjMzIDA2MkQgMDYyQzswNjMzIDA2MkQgMDYyQzsKK0ZENUQ7RkQ1RDtGRDVEOzA2MzMgMDYyQyAwNjJEOzA2MzMgMDYyQyAwNjJEOworRkQ1RTtGRDVFO0ZENUU7MDYzMyAwNjJDIDA2NDk7MDYzMyAwNjJDIDA2NDk7CitGRDVGO0ZENUY7RkQ1RjswNjMzIDA2NDUgMDYyRDswNjMzIDA2NDUgMDYyRDsKK0ZENjA7RkQ2MDtGRDYwOzA2MzMgMDY0NSAwNjJEOzA2MzMgMDY0NSAwNjJEOworRkQ2MTtGRDYxO0ZENjE7MDYzMyAwNjQ1IDA2MkM7MDYzMyAwNjQ1IDA2MkM7CitGRDYyO0ZENjI7RkQ2MjswNjMzIDA2NDUgMDY0NTswNjMzIDA2NDUgMDY0NTsKK0ZENjM7RkQ2MztGRDYzOzA2MzMgMDY0NSAwNjQ1OzA2MzMgMDY0NSAwNjQ1OworRkQ2NDtGRDY0O0ZENjQ7MDYzNSAwNjJEIDA2MkQ7MDYzNSAwNjJEIDA2MkQ7CitGRDY1O0ZENjU7RkQ2NTswNjM1IDA2MkQgMDYyRDswNjM1IDA2MkQgMDYyRDsKK0ZENjY7RkQ2NjtGRDY2OzA2MzUgMDY0NSAwNjQ1OzA2MzUgMDY0NSAwNjQ1OworRkQ2NztGRDY3O0ZENjc7MDYzNCAwNjJEIDA2NDU7MDYzNCAwNjJEIDA2NDU7CitGRDY4O0ZENjg7RkQ2ODswNjM0IDA2MkQgMDY0NTswNjM0IDA2MkQgMDY0NTsKK0ZENjk7RkQ2OTtGRDY5OzA2MzQgMDYyQyAwNjRBOzA2MzQgMDYyQyAwNjRBOworRkQ2QTtGRDZBO0ZENkE7MDYzNCAwNjQ1IDA2MkU7MDYzNCAwNjQ1IDA2MkU7CitGRDZCO0ZENkI7RkQ2QjswNjM0IDA2NDUgMDYyRTswNjM0IDA2NDUgMDYyRTsKK0ZENkM7RkQ2QztGRDZDOzA2MzQgMDY0NSAwNjQ1OzA2MzQgMDY0NSAwNjQ1OworRkQ2RDtGRDZEO0ZENkQ7MDYzNCAwNjQ1IDA2NDU7MDYzNCAwNjQ1IDA2NDU7CitGRDZFO0ZENkU7RkQ2RTswNjM2IDA2MkQgMDY0OTswNjM2IDA2MkQgMDY0OTsKK0ZENkY7RkQ2RjtGRDZGOzA2MzYgMDYyRSAwNjQ1OzA2MzYgMDYyRSAwNjQ1OworRkQ3MDtGRDcwO0ZENzA7MDYzNiAwNjJFIDA2NDU7MDYzNiAwNjJFIDA2NDU7CitGRDcxO0ZENzE7RkQ3MTswNjM3IDA2NDUgMDYyRDswNjM3IDA2NDUgMDYyRDsKK0ZENzI7RkQ3MjtGRDcyOzA2MzcgMDY0NSAwNjJEOzA2MzcgMDY0NSAwNjJEOworRkQ3MztGRDczO0ZENzM7MDYzNyAwNjQ1IDA2NDU7MDYzNyAwNjQ1IDA2NDU7CitGRDc0O0ZENzQ7RkQ3NDswNjM3IDA2NDUgMDY0QTswNjM3IDA2NDUgMDY0QTsKK0ZENzU7RkQ3NTtGRDc1OzA2MzkgMDYyQyAwNjQ1OzA2MzkgMDYyQyAwNjQ1OworRkQ3NjtGRDc2O0ZENzY7MDYzOSAwNjQ1IDA2NDU7MDYzOSAwNjQ1IDA2NDU7CitGRDc3O0ZENzc7RkQ3NzswNjM5IDA2NDUgMDY0NTswNjM5IDA2NDUgMDY0NTsKK0ZENzg7RkQ3ODtGRDc4OzA2MzkgMDY0NSAwNjQ5OzA2MzkgMDY0NSAwNjQ5OworRkQ3OTtGRDc5O0ZENzk7MDYzQSAwNjQ1IDA2NDU7MDYzQSAwNjQ1IDA2NDU7CitGRDdBO0ZEN0E7RkQ3QTswNjNBIDA2NDUgMDY0QTswNjNBIDA2NDUgMDY0QTsKK0ZEN0I7RkQ3QjtGRDdCOzA2M0EgMDY0NSAwNjQ5OzA2M0EgMDY0NSAwNjQ5OworRkQ3QztGRDdDO0ZEN0M7MDY0MSAwNjJFIDA2NDU7MDY0MSAwNjJFIDA2NDU7CitGRDdEO0ZEN0Q7RkQ3RDswNjQxIDA2MkUgMDY0NTswNjQxIDA2MkUgMDY0NTsKK0ZEN0U7RkQ3RTtGRDdFOzA2NDIgMDY0NSAwNjJEOzA2NDIgMDY0NSAwNjJEOworRkQ3RjtGRDdGO0ZEN0Y7MDY0MiAwNjQ1IDA2NDU7MDY0MiAwNjQ1IDA2NDU7CitGRDgwO0ZEODA7RkQ4MDswNjQ0IDA2MkQgMDY0NTswNjQ0IDA2MkQgMDY0NTsKK0ZEODE7RkQ4MTtGRDgxOzA2NDQgMDYyRCAwNjRBOzA2NDQgMDYyRCAwNjRBOworRkQ4MjtGRDgyO0ZEODI7MDY0NCAwNjJEIDA2NDk7MDY0NCAwNjJEIDA2NDk7CitGRDgzO0ZEODM7RkQ4MzswNjQ0IDA2MkMgMDYyQzswNjQ0IDA2MkMgMDYyQzsKK0ZEODQ7RkQ4NDtGRDg0OzA2NDQgMDYyQyAwNjJDOzA2NDQgMDYyQyAwNjJDOworRkQ4NTtGRDg1O0ZEODU7MDY0NCAwNjJFIDA2NDU7MDY0NCAwNjJFIDA2NDU7CitGRDg2O0ZEODY7RkQ4NjswNjQ0IDA2MkUgMDY0NTswNjQ0IDA2MkUgMDY0NTsKK0ZEODc7RkQ4NztGRDg3OzA2NDQgMDY0NSAwNjJEOzA2NDQgMDY0NSAwNjJEOworRkQ4ODtGRDg4O0ZEODg7MDY0NCAwNjQ1IDA2MkQ7MDY0NCAwNjQ1IDA2MkQ7CitGRDg5O0ZEODk7RkQ4OTswNjQ1IDA2MkQgMDYyQzswNjQ1IDA2MkQgMDYyQzsKK0ZEOEE7RkQ4QTtGRDhBOzA2NDUgMDYyRCAwNjQ1OzA2NDUgMDYyRCAwNjQ1OworRkQ4QjtGRDhCO0ZEOEI7MDY0NSAwNjJEIDA2NEE7MDY0NSAwNjJEIDA2NEE7CitGRDhDO0ZEOEM7RkQ4QzswNjQ1IDA2MkMgMDYyRDswNjQ1IDA2MkMgMDYyRDsKK0ZEOEQ7RkQ4RDtGRDhEOzA2NDUgMDYyQyAwNjQ1OzA2NDUgMDYyQyAwNjQ1OworRkQ4RTtGRDhFO0ZEOEU7MDY0NSAwNjJFIDA2MkM7MDY0NSAwNjJFIDA2MkM7CitGRDhGO0ZEOEY7RkQ4RjswNjQ1IDA2MkUgMDY0NTswNjQ1IDA2MkUgMDY0NTsKK0ZEOTI7RkQ5MjtGRDkyOzA2NDUgMDYyQyAwNjJFOzA2NDUgMDYyQyAwNjJFOworRkQ5MztGRDkzO0ZEOTM7MDY0NyAwNjQ1IDA2MkM7MDY0NyAwNjQ1IDA2MkM7CitGRDk0O0ZEOTQ7RkQ5NDswNjQ3IDA2NDUgMDY0NTswNjQ3IDA2NDUgMDY0NTsKK0ZEOTU7RkQ5NTtGRDk1OzA2NDYgMDYyRCAwNjQ1OzA2NDYgMDYyRCAwNjQ1OworRkQ5NjtGRDk2O0ZEOTY7MDY0NiAwNjJEIDA2NDk7MDY0NiAwNjJEIDA2NDk7CitGRDk3O0ZEOTc7RkQ5NzswNjQ2IDA2MkMgMDY0NTswNjQ2IDA2MkMgMDY0NTsKK0ZEOTg7RkQ5ODtGRDk4OzA2NDYgMDYyQyAwNjQ1OzA2NDYgMDYyQyAwNjQ1OworRkQ5OTtGRDk5O0ZEOTk7MDY0NiAwNjJDIDA2NDk7MDY0NiAwNjJDIDA2NDk7CitGRDlBO0ZEOUE7RkQ5QTswNjQ2IDA2NDUgMDY0QTswNjQ2IDA2NDUgMDY0QTsKK0ZEOUI7RkQ5QjtGRDlCOzA2NDYgMDY0NSAwNjQ5OzA2NDYgMDY0NSAwNjQ5OworRkQ5QztGRDlDO0ZEOUM7MDY0QSAwNjQ1IDA2NDU7MDY0QSAwNjQ1IDA2NDU7CitGRDlEO0ZEOUQ7RkQ5RDswNjRBIDA2NDUgMDY0NTswNjRBIDA2NDUgMDY0NTsKK0ZEOUU7RkQ5RTtGRDlFOzA2MjggMDYyRSAwNjRBOzA2MjggMDYyRSAwNjRBOworRkQ5RjtGRDlGO0ZEOUY7MDYyQSAwNjJDIDA2NEE7MDYyQSAwNjJDIDA2NEE7CitGREEwO0ZEQTA7RkRBMDswNjJBIDA2MkMgMDY0OTswNjJBIDA2MkMgMDY0OTsKK0ZEQTE7RkRBMTtGREExOzA2MkEgMDYyRSAwNjRBOzA2MkEgMDYyRSAwNjRBOworRkRBMjtGREEyO0ZEQTI7MDYyQSAwNjJFIDA2NDk7MDYyQSAwNjJFIDA2NDk7CitGREEzO0ZEQTM7RkRBMzswNjJBIDA2NDUgMDY0QTswNjJBIDA2NDUgMDY0QTsKK0ZEQTQ7RkRBNDtGREE0OzA2MkEgMDY0NSAwNjQ5OzA2MkEgMDY0NSAwNjQ5OworRkRBNTtGREE1O0ZEQTU7MDYyQyAwNjQ1IDA2NEE7MDYyQyAwNjQ1IDA2NEE7CitGREE2O0ZEQTY7RkRBNjswNjJDIDA2MkQgMDY0OTswNjJDIDA2MkQgMDY0OTsKK0ZEQTc7RkRBNztGREE3OzA2MkMgMDY0NSAwNjQ5OzA2MkMgMDY0NSAwNjQ5OworRkRBODtGREE4O0ZEQTg7MDYzMyAwNjJFIDA2NDk7MDYzMyAwNjJFIDA2NDk7CitGREE5O0ZEQTk7RkRBOTswNjM1IDA2MkQgMDY0QTswNjM1IDA2MkQgMDY0QTsKK0ZEQUE7RkRBQTtGREFBOzA2MzQgMDYyRCAwNjRBOzA2MzQgMDYyRCAwNjRBOworRkRBQjtGREFCO0ZEQUI7MDYzNiAwNjJEIDA2NEE7MDYzNiAwNjJEIDA2NEE7CitGREFDO0ZEQUM7RkRBQzswNjQ0IDA2MkMgMDY0QTswNjQ0IDA2MkMgMDY0QTsKK0ZEQUQ7RkRBRDtGREFEOzA2NDQgMDY0NSAwNjRBOzA2NDQgMDY0NSAwNjRBOworRkRBRTtGREFFO0ZEQUU7MDY0QSAwNjJEIDA2NEE7MDY0QSAwNjJEIDA2NEE7CitGREFGO0ZEQUY7RkRBRjswNjRBIDA2MkMgMDY0QTswNjRBIDA2MkMgMDY0QTsKK0ZEQjA7RkRCMDtGREIwOzA2NEEgMDY0NSAwNjRBOzA2NEEgMDY0NSAwNjRBOworRkRCMTtGREIxO0ZEQjE7MDY0NSAwNjQ1IDA2NEE7MDY0NSAwNjQ1IDA2NEE7CitGREIyO0ZEQjI7RkRCMjswNjQyIDA2NDUgMDY0QTswNjQyIDA2NDUgMDY0QTsKK0ZEQjM7RkRCMztGREIzOzA2NDYgMDYyRCAwNjRBOzA2NDYgMDYyRCAwNjRBOworRkRCNDtGREI0O0ZEQjQ7MDY0MiAwNjQ1IDA2MkQ7MDY0MiAwNjQ1IDA2MkQ7CitGREI1O0ZEQjU7RkRCNTswNjQ0IDA2MkQgMDY0NTswNjQ0IDA2MkQgMDY0NTsKK0ZEQjY7RkRCNjtGREI2OzA2MzkgMDY0NSAwNjRBOzA2MzkgMDY0NSAwNjRBOworRkRCNztGREI3O0ZEQjc7MDY0MyAwNjQ1IDA2NEE7MDY0MyAwNjQ1IDA2NEE7CitGREI4O0ZEQjg7RkRCODswNjQ2IDA2MkMgMDYyRDswNjQ2IDA2MkMgMDYyRDsKK0ZEQjk7RkRCOTtGREI5OzA2NDUgMDYyRSAwNjRBOzA2NDUgMDYyRSAwNjRBOworRkRCQTtGREJBO0ZEQkE7MDY0NCAwNjJDIDA2NDU7MDY0NCAwNjJDIDA2NDU7CitGREJCO0ZEQkI7RkRCQjswNjQzIDA2NDUgMDY0NTswNjQzIDA2NDUgMDY0NTsKK0ZEQkM7RkRCQztGREJDOzA2NDQgMDYyQyAwNjQ1OzA2NDQgMDYyQyAwNjQ1OworRkRCRDtGREJEO0ZEQkQ7MDY0NiAwNjJDIDA2MkQ7MDY0NiAwNjJDIDA2MkQ7CitGREJFO0ZEQkU7RkRCRTswNjJDIDA2MkQgMDY0QTswNjJDIDA2MkQgMDY0QTsKK0ZEQkY7RkRCRjtGREJGOzA2MkQgMDYyQyAwNjRBOzA2MkQgMDYyQyAwNjRBOworRkRDMDtGREMwO0ZEQzA7MDY0NSAwNjJDIDA2NEE7MDY0NSAwNjJDIDA2NEE7CitGREMxO0ZEQzE7RkRDMTswNjQxIDA2NDUgMDY0QTswNjQxIDA2NDUgMDY0QTsKK0ZEQzI7RkRDMjtGREMyOzA2MjggMDYyRCAwNjRBOzA2MjggMDYyRCAwNjRBOworRkRDMztGREMzO0ZEQzM7MDY0MyAwNjQ1IDA2NDU7MDY0MyAwNjQ1IDA2NDU7CitGREM0O0ZEQzQ7RkRDNDswNjM5IDA2MkMgMDY0NTswNjM5IDA2MkMgMDY0NTsKK0ZEQzU7RkRDNTtGREM1OzA2MzUgMDY0NSAwNjQ1OzA2MzUgMDY0NSAwNjQ1OworRkRDNjtGREM2O0ZEQzY7MDYzMyAwNjJFIDA2NEE7MDYzMyAwNjJFIDA2NEE7CitGREM3O0ZEQzc7RkRDNzswNjQ2IDA2MkMgMDY0QTswNjQ2IDA2MkMgMDY0QTsKK0ZERjA7RkRGMDtGREYwOzA2MzUgMDY0NCAwNkQyOzA2MzUgMDY0NCAwNkQyOworRkRGMTtGREYxO0ZERjE7MDY0MiAwNjQ0IDA2RDI7MDY0MiAwNjQ0IDA2RDI7CitGREYyO0ZERjI7RkRGMjswNjI3IDA2NDQgMDY0NCAwNjQ3OzA2MjcgMDY0NCAwNjQ0IDA2NDc7CitGREYzO0ZERjM7RkRGMzswNjI3IDA2NDMgMDYyOCAwNjMxOzA2MjcgMDY0MyAwNjI4IDA2MzE7CitGREY0O0ZERjQ7RkRGNDswNjQ1IDA2MkQgMDY0NSAwNjJGOzA2NDUgMDYyRCAwNjQ1IDA2MkY7CitGREY1O0ZERjU7RkRGNTswNjM1IDA2NDQgMDYzOSAwNjQ1OzA2MzUgMDY0NCAwNjM5IDA2NDU7CitGREY2O0ZERjY7RkRGNjswNjMxIDA2MzMgMDY0OCAwNjQ0OzA2MzEgMDYzMyAwNjQ4IDA2NDQ7CitGREY3O0ZERjc7RkRGNzswNjM5IDA2NDQgMDY0QSAwNjQ3OzA2MzkgMDY0NCAwNjRBIDA2NDc7CitGREY4O0ZERjg7RkRGODswNjQ4IDA2MzMgMDY0NCAwNjQ1OzA2NDggMDYzMyAwNjQ0IDA2NDU7CitGREY5O0ZERjk7RkRGOTswNjM1IDA2NDQgMDY0OTswNjM1IDA2NDQgMDY0OTsKK0ZERkE7RkRGQTtGREZBOzA2MzUgMDY0NCAwNjQ5IDAwMjAgMDYyNyAwNjQ0IDA2NDQgMDY0NyAwMDIwIDA2MzkgMDY0NCAwNjRBIDA2NDcgMDAyMCAwNjQ4IDA2MzMgMDY0NCAwNjQ1OzA2MzUgMDY0NCAwNjQ5IDAwMjAgMDYyNyAwNjQ0IDA2NDQgMDY0NyAwMDIwIDA2MzkgMDY0NCAwNjRBIDA2NDcgMDAyMCAwNjQ4IDA2MzMgMDY0NCAwNjQ1OworRkRGQjtGREZCO0ZERkI7MDYyQyAwNjQ0IDAwMjAgMDYyQyAwNjQ0IDA2MjcgMDY0NCAwNjQ3OzA2MkMgMDY0NCAwMDIwIDA2MkMgMDY0NCAwNjI3IDA2NDQgMDY0NzsKK0ZERkM7RkRGQztGREZDOzA2MzEgMDZDQyAwNjI3IDA2NDQ7MDYzMSAwNkNDIDA2MjcgMDY0NDsKK0ZFMTA7RkUxMDtGRTEwOzAwMkM7MDAyQzsKK0ZFMTE7RkUxMTtGRTExOzMwMDE7MzAwMTsKK0ZFMTI7RkUxMjtGRTEyOzMwMDI7MzAwMjsKK0ZFMTM7RkUxMztGRTEzOzAwM0E7MDAzQTsKK0ZFMTQ7RkUxNDtGRTE0OzAwM0I7MDAzQjsKK0ZFMTU7RkUxNTtGRTE1OzAwMjE7MDAyMTsKK0ZFMTY7RkUxNjtGRTE2OzAwM0Y7MDAzRjsKK0ZFMTc7RkUxNztGRTE3OzMwMTY7MzAxNjsKK0ZFMTg7RkUxODtGRTE4OzMwMTc7MzAxNzsKK0ZFMTk7RkUxOTtGRTE5OzAwMkUgMDAyRSAwMDJFOzAwMkUgMDAyRSAwMDJFOworRkUzMDtGRTMwO0ZFMzA7MDAyRSAwMDJFOzAwMkUgMDAyRTsKK0ZFMzE7RkUzMTtGRTMxOzIwMTQ7MjAxNDsKK0ZFMzI7RkUzMjtGRTMyOzIwMTM7MjAxMzsKK0ZFMzM7RkUzMztGRTMzOzAwNUY7MDA1RjsKK0ZFMzQ7RkUzNDtGRTM0OzAwNUY7MDA1RjsKK0ZFMzU7RkUzNTtGRTM1OzAwMjg7MDAyODsKK0ZFMzY7RkUzNjtGRTM2OzAwMjk7MDAyOTsKK0ZFMzc7RkUzNztGRTM3OzAwN0I7MDA3QjsKK0ZFMzg7RkUzODtGRTM4OzAwN0Q7MDA3RDsKK0ZFMzk7RkUzOTtGRTM5OzMwMTQ7MzAxNDsKK0ZFM0E7RkUzQTtGRTNBOzMwMTU7MzAxNTsKK0ZFM0I7RkUzQjtGRTNCOzMwMTA7MzAxMDsKK0ZFM0M7RkUzQztGRTNDOzMwMTE7MzAxMTsKK0ZFM0Q7RkUzRDtGRTNEOzMwMEE7MzAwQTsKK0ZFM0U7RkUzRTtGRTNFOzMwMEI7MzAwQjsKK0ZFM0Y7RkUzRjtGRTNGOzMwMDg7MzAwODsKK0ZFNDA7RkU0MDtGRTQwOzMwMDk7MzAwOTsKK0ZFNDE7RkU0MTtGRTQxOzMwMEM7MzAwQzsKK0ZFNDI7RkU0MjtGRTQyOzMwMEQ7MzAwRDsKK0ZFNDM7RkU0MztGRTQzOzMwMEU7MzAwRTsKK0ZFNDQ7RkU0NDtGRTQ0OzMwMEY7MzAwRjsKK0ZFNDc7RkU0NztGRTQ3OzAwNUI7MDA1QjsKK0ZFNDg7RkU0ODtGRTQ4OzAwNUQ7MDA1RDsKK0ZFNDk7RkU0OTtGRTQ5OzAwMjAgMDMwNTswMDIwIDAzMDU7CitGRTRBO0ZFNEE7RkU0QTswMDIwIDAzMDU7MDAyMCAwMzA1OworRkU0QjtGRTRCO0ZFNEI7MDAyMCAwMzA1OzAwMjAgMDMwNTsKK0ZFNEM7RkU0QztGRTRDOzAwMjAgMDMwNTswMDIwIDAzMDU7CitGRTREO0ZFNEQ7RkU0RDswMDVGOzAwNUY7CitGRTRFO0ZFNEU7RkU0RTswMDVGOzAwNUY7CitGRTRGO0ZFNEY7RkU0RjswMDVGOzAwNUY7CitGRTUwO0ZFNTA7RkU1MDswMDJDOzAwMkM7CitGRTUxO0ZFNTE7RkU1MTszMDAxOzMwMDE7CitGRTUyO0ZFNTI7RkU1MjswMDJFOzAwMkU7CitGRTU0O0ZFNTQ7RkU1NDswMDNCOzAwM0I7CitGRTU1O0ZFNTU7RkU1NTswMDNBOzAwM0E7CitGRTU2O0ZFNTY7RkU1NjswMDNGOzAwM0Y7CitGRTU3O0ZFNTc7RkU1NzswMDIxOzAwMjE7CitGRTU4O0ZFNTg7RkU1ODsyMDE0OzIwMTQ7CitGRTU5O0ZFNTk7RkU1OTswMDI4OzAwMjg7CitGRTVBO0ZFNUE7RkU1QTswMDI5OzAwMjk7CitGRTVCO0ZFNUI7RkU1QjswMDdCOzAwN0I7CitGRTVDO0ZFNUM7RkU1QzswMDdEOzAwN0Q7CitGRTVEO0ZFNUQ7RkU1RDszMDE0OzMwMTQ7CitGRTVFO0ZFNUU7RkU1RTszMDE1OzMwMTU7CitGRTVGO0ZFNUY7RkU1RjswMDIzOzAwMjM7CitGRTYwO0ZFNjA7RkU2MDswMDI2OzAwMjY7CitGRTYxO0ZFNjE7RkU2MTswMDJBOzAwMkE7CitGRTYyO0ZFNjI7RkU2MjswMDJCOzAwMkI7CitGRTYzO0ZFNjM7RkU2MzswMDJEOzAwMkQ7CitGRTY0O0ZFNjQ7RkU2NDswMDNDOzAwM0M7CitGRTY1O0ZFNjU7RkU2NTswMDNFOzAwM0U7CitGRTY2O0ZFNjY7RkU2NjswMDNEOzAwM0Q7CitGRTY4O0ZFNjg7RkU2ODswMDVDOzAwNUM7CitGRTY5O0ZFNjk7RkU2OTswMDI0OzAwMjQ7CitGRTZBO0ZFNkE7RkU2QTswMDI1OzAwMjU7CitGRTZCO0ZFNkI7RkU2QjswMDQwOzAwNDA7CitGRTcwO0ZFNzA7RkU3MDswMDIwIDA2NEI7MDAyMCAwNjRCOworRkU3MTtGRTcxO0ZFNzE7MDY0MCAwNjRCOzA2NDAgMDY0QjsKK0ZFNzI7RkU3MjtGRTcyOzAwMjAgMDY0QzswMDIwIDA2NEM7CitGRTc0O0ZFNzQ7RkU3NDswMDIwIDA2NEQ7MDAyMCAwNjREOworRkU3NjtGRTc2O0ZFNzY7MDAyMCAwNjRFOzAwMjAgMDY0RTsKK0ZFNzc7RkU3NztGRTc3OzA2NDAgMDY0RTswNjQwIDA2NEU7CitGRTc4O0ZFNzg7RkU3ODswMDIwIDA2NEY7MDAyMCAwNjRGOworRkU3OTtGRTc5O0ZFNzk7MDY0MCAwNjRGOzA2NDAgMDY0RjsKK0ZFN0E7RkU3QTtGRTdBOzAwMjAgMDY1MDswMDIwIDA2NTA7CitGRTdCO0ZFN0I7RkU3QjswNjQwIDA2NTA7MDY0MCAwNjUwOworRkU3QztGRTdDO0ZFN0M7MDAyMCAwNjUxOzAwMjAgMDY1MTsKK0ZFN0Q7RkU3RDtGRTdEOzA2NDAgMDY1MTswNjQwIDA2NTE7CitGRTdFO0ZFN0U7RkU3RTswMDIwIDA2NTI7MDAyMCAwNjUyOworRkU3RjtGRTdGO0ZFN0Y7MDY0MCAwNjUyOzA2NDAgMDY1MjsKK0ZFODA7RkU4MDtGRTgwOzA2MjE7MDYyMTsKK0ZFODE7RkU4MTtGRTgxOzA2MjI7MDYyNyAwNjUzOworRkU4MjtGRTgyO0ZFODI7MDYyMjswNjI3IDA2NTM7CitGRTgzO0ZFODM7RkU4MzswNjIzOzA2MjcgMDY1NDsKK0ZFODQ7RkU4NDtGRTg0OzA2MjM7MDYyNyAwNjU0OworRkU4NTtGRTg1O0ZFODU7MDYyNDswNjQ4IDA2NTQ7CitGRTg2O0ZFODY7RkU4NjswNjI0OzA2NDggMDY1NDsKK0ZFODc7RkU4NztGRTg3OzA2MjU7MDYyNyAwNjU1OworRkU4ODtGRTg4O0ZFODg7MDYyNTswNjI3IDA2NTU7CitGRTg5O0ZFODk7RkU4OTswNjI2OzA2NEEgMDY1NDsKK0ZFOEE7RkU4QTtGRThBOzA2MjY7MDY0QSAwNjU0OworRkU4QjtGRThCO0ZFOEI7MDYyNjswNjRBIDA2NTQ7CitGRThDO0ZFOEM7RkU4QzswNjI2OzA2NEEgMDY1NDsKK0ZFOEQ7RkU4RDtGRThEOzA2Mjc7MDYyNzsKK0ZFOEU7RkU4RTtGRThFOzA2Mjc7MDYyNzsKK0ZFOEY7RkU4RjtGRThGOzA2Mjg7MDYyODsKK0ZFOTA7RkU5MDtGRTkwOzA2Mjg7MDYyODsKK0ZFOTE7RkU5MTtGRTkxOzA2Mjg7MDYyODsKK0ZFOTI7RkU5MjtGRTkyOzA2Mjg7MDYyODsKK0ZFOTM7RkU5MztGRTkzOzA2Mjk7MDYyOTsKK0ZFOTQ7RkU5NDtGRTk0OzA2Mjk7MDYyOTsKK0ZFOTU7RkU5NTtGRTk1OzA2MkE7MDYyQTsKK0ZFOTY7RkU5NjtGRTk2OzA2MkE7MDYyQTsKK0ZFOTc7RkU5NztGRTk3OzA2MkE7MDYyQTsKK0ZFOTg7RkU5ODtGRTk4OzA2MkE7MDYyQTsKK0ZFOTk7RkU5OTtGRTk5OzA2MkI7MDYyQjsKK0ZFOUE7RkU5QTtGRTlBOzA2MkI7MDYyQjsKK0ZFOUI7RkU5QjtGRTlCOzA2MkI7MDYyQjsKK0ZFOUM7RkU5QztGRTlDOzA2MkI7MDYyQjsKK0ZFOUQ7RkU5RDtGRTlEOzA2MkM7MDYyQzsKK0ZFOUU7RkU5RTtGRTlFOzA2MkM7MDYyQzsKK0ZFOUY7RkU5RjtGRTlGOzA2MkM7MDYyQzsKK0ZFQTA7RkVBMDtGRUEwOzA2MkM7MDYyQzsKK0ZFQTE7RkVBMTtGRUExOzA2MkQ7MDYyRDsKK0ZFQTI7RkVBMjtGRUEyOzA2MkQ7MDYyRDsKK0ZFQTM7RkVBMztGRUEzOzA2MkQ7MDYyRDsKK0ZFQTQ7RkVBNDtGRUE0OzA2MkQ7MDYyRDsKK0ZFQTU7RkVBNTtGRUE1OzA2MkU7MDYyRTsKK0ZFQTY7RkVBNjtGRUE2OzA2MkU7MDYyRTsKK0ZFQTc7RkVBNztGRUE3OzA2MkU7MDYyRTsKK0ZFQTg7RkVBODtGRUE4OzA2MkU7MDYyRTsKK0ZFQTk7RkVBOTtGRUE5OzA2MkY7MDYyRjsKK0ZFQUE7RkVBQTtGRUFBOzA2MkY7MDYyRjsKK0ZFQUI7RkVBQjtGRUFCOzA2MzA7MDYzMDsKK0ZFQUM7RkVBQztGRUFDOzA2MzA7MDYzMDsKK0ZFQUQ7RkVBRDtGRUFEOzA2MzE7MDYzMTsKK0ZFQUU7RkVBRTtGRUFFOzA2MzE7MDYzMTsKK0ZFQUY7RkVBRjtGRUFGOzA2MzI7MDYzMjsKK0ZFQjA7RkVCMDtGRUIwOzA2MzI7MDYzMjsKK0ZFQjE7RkVCMTtGRUIxOzA2MzM7MDYzMzsKK0ZFQjI7RkVCMjtGRUIyOzA2MzM7MDYzMzsKK0ZFQjM7RkVCMztGRUIzOzA2MzM7MDYzMzsKK0ZFQjQ7RkVCNDtGRUI0OzA2MzM7MDYzMzsKK0ZFQjU7RkVCNTtGRUI1OzA2MzQ7MDYzNDsKK0ZFQjY7RkVCNjtGRUI2OzA2MzQ7MDYzNDsKK0ZFQjc7RkVCNztGRUI3OzA2MzQ7MDYzNDsKK0ZFQjg7RkVCODtGRUI4OzA2MzQ7MDYzNDsKK0ZFQjk7RkVCOTtGRUI5OzA2MzU7MDYzNTsKK0ZFQkE7RkVCQTtGRUJBOzA2MzU7MDYzNTsKK0ZFQkI7RkVCQjtGRUJCOzA2MzU7MDYzNTsKK0ZFQkM7RkVCQztGRUJDOzA2MzU7MDYzNTsKK0ZFQkQ7RkVCRDtGRUJEOzA2MzY7MDYzNjsKK0ZFQkU7RkVCRTtGRUJFOzA2MzY7MDYzNjsKK0ZFQkY7RkVCRjtGRUJGOzA2MzY7MDYzNjsKK0ZFQzA7RkVDMDtGRUMwOzA2MzY7MDYzNjsKK0ZFQzE7RkVDMTtGRUMxOzA2Mzc7MDYzNzsKK0ZFQzI7RkVDMjtGRUMyOzA2Mzc7MDYzNzsKK0ZFQzM7RkVDMztGRUMzOzA2Mzc7MDYzNzsKK0ZFQzQ7RkVDNDtGRUM0OzA2Mzc7MDYzNzsKK0ZFQzU7RkVDNTtGRUM1OzA2Mzg7MDYzODsKK0ZFQzY7RkVDNjtGRUM2OzA2Mzg7MDYzODsKK0ZFQzc7RkVDNztGRUM3OzA2Mzg7MDYzODsKK0ZFQzg7RkVDODtGRUM4OzA2Mzg7MDYzODsKK0ZFQzk7RkVDOTtGRUM5OzA2Mzk7MDYzOTsKK0ZFQ0E7RkVDQTtGRUNBOzA2Mzk7MDYzOTsKK0ZFQ0I7RkVDQjtGRUNCOzA2Mzk7MDYzOTsKK0ZFQ0M7RkVDQztGRUNDOzA2Mzk7MDYzOTsKK0ZFQ0Q7RkVDRDtGRUNEOzA2M0E7MDYzQTsKK0ZFQ0U7RkVDRTtGRUNFOzA2M0E7MDYzQTsKK0ZFQ0Y7RkVDRjtGRUNGOzA2M0E7MDYzQTsKK0ZFRDA7RkVEMDtGRUQwOzA2M0E7MDYzQTsKK0ZFRDE7RkVEMTtGRUQxOzA2NDE7MDY0MTsKK0ZFRDI7RkVEMjtGRUQyOzA2NDE7MDY0MTsKK0ZFRDM7RkVEMztGRUQzOzA2NDE7MDY0MTsKK0ZFRDQ7RkVENDtGRUQ0OzA2NDE7MDY0MTsKK0ZFRDU7RkVENTtGRUQ1OzA2NDI7MDY0MjsKK0ZFRDY7RkVENjtGRUQ2OzA2NDI7MDY0MjsKK0ZFRDc7RkVENztGRUQ3OzA2NDI7MDY0MjsKK0ZFRDg7RkVEODtGRUQ4OzA2NDI7MDY0MjsKK0ZFRDk7RkVEOTtGRUQ5OzA2NDM7MDY0MzsKK0ZFREE7RkVEQTtGRURBOzA2NDM7MDY0MzsKK0ZFREI7RkVEQjtGRURCOzA2NDM7MDY0MzsKK0ZFREM7RkVEQztGRURDOzA2NDM7MDY0MzsKK0ZFREQ7RkVERDtGRUREOzA2NDQ7MDY0NDsKK0ZFREU7RkVERTtGRURFOzA2NDQ7MDY0NDsKK0ZFREY7RkVERjtGRURGOzA2NDQ7MDY0NDsKK0ZFRTA7RkVFMDtGRUUwOzA2NDQ7MDY0NDsKK0ZFRTE7RkVFMTtGRUUxOzA2NDU7MDY0NTsKK0ZFRTI7RkVFMjtGRUUyOzA2NDU7MDY0NTsKK0ZFRTM7RkVFMztGRUUzOzA2NDU7MDY0NTsKK0ZFRTQ7RkVFNDtGRUU0OzA2NDU7MDY0NTsKK0ZFRTU7RkVFNTtGRUU1OzA2NDY7MDY0NjsKK0ZFRTY7RkVFNjtGRUU2OzA2NDY7MDY0NjsKK0ZFRTc7RkVFNztGRUU3OzA2NDY7MDY0NjsKK0ZFRTg7RkVFODtGRUU4OzA2NDY7MDY0NjsKK0ZFRTk7RkVFOTtGRUU5OzA2NDc7MDY0NzsKK0ZFRUE7RkVFQTtGRUVBOzA2NDc7MDY0NzsKK0ZFRUI7RkVFQjtGRUVCOzA2NDc7MDY0NzsKK0ZFRUM7RkVFQztGRUVDOzA2NDc7MDY0NzsKK0ZFRUQ7RkVFRDtGRUVEOzA2NDg7MDY0ODsKK0ZFRUU7RkVFRTtGRUVFOzA2NDg7MDY0ODsKK0ZFRUY7RkVFRjtGRUVGOzA2NDk7MDY0OTsKK0ZFRjA7RkVGMDtGRUYwOzA2NDk7MDY0OTsKK0ZFRjE7RkVGMTtGRUYxOzA2NEE7MDY0QTsKK0ZFRjI7RkVGMjtGRUYyOzA2NEE7MDY0QTsKK0ZFRjM7RkVGMztGRUYzOzA2NEE7MDY0QTsKK0ZFRjQ7RkVGNDtGRUY0OzA2NEE7MDY0QTsKK0ZFRjU7RkVGNTtGRUY1OzA2NDQgMDYyMjswNjQ0IDA2MjcgMDY1MzsKK0ZFRjY7RkVGNjtGRUY2OzA2NDQgMDYyMjswNjQ0IDA2MjcgMDY1MzsKK0ZFRjc7RkVGNztGRUY3OzA2NDQgMDYyMzswNjQ0IDA2MjcgMDY1NDsKK0ZFRjg7RkVGODtGRUY4OzA2NDQgMDYyMzswNjQ0IDA2MjcgMDY1NDsKK0ZFRjk7RkVGOTtGRUY5OzA2NDQgMDYyNTswNjQ0IDA2MjcgMDY1NTsKK0ZFRkE7RkVGQTtGRUZBOzA2NDQgMDYyNTswNjQ0IDA2MjcgMDY1NTsKK0ZFRkI7RkVGQjtGRUZCOzA2NDQgMDYyNzswNjQ0IDA2Mjc7CitGRUZDO0ZFRkM7RkVGQzswNjQ0IDA2Mjc7MDY0NCAwNjI3OworRkYwMTtGRjAxO0ZGMDE7MDAyMTswMDIxOworRkYwMjtGRjAyO0ZGMDI7MDAyMjswMDIyOworRkYwMztGRjAzO0ZGMDM7MDAyMzswMDIzOworRkYwNDtGRjA0O0ZGMDQ7MDAyNDswMDI0OworRkYwNTtGRjA1O0ZGMDU7MDAyNTswMDI1OworRkYwNjtGRjA2O0ZGMDY7MDAyNjswMDI2OworRkYwNztGRjA3O0ZGMDc7MDAyNzswMDI3OworRkYwODtGRjA4O0ZGMDg7MDAyODswMDI4OworRkYwOTtGRjA5O0ZGMDk7MDAyOTswMDI5OworRkYwQTtGRjBBO0ZGMEE7MDAyQTswMDJBOworRkYwQjtGRjBCO0ZGMEI7MDAyQjswMDJCOworRkYwQztGRjBDO0ZGMEM7MDAyQzswMDJDOworRkYwRDtGRjBEO0ZGMEQ7MDAyRDswMDJEOworRkYwRTtGRjBFO0ZGMEU7MDAyRTswMDJFOworRkYwRjtGRjBGO0ZGMEY7MDAyRjswMDJGOworRkYxMDtGRjEwO0ZGMTA7MDAzMDswMDMwOworRkYxMTtGRjExO0ZGMTE7MDAzMTswMDMxOworRkYxMjtGRjEyO0ZGMTI7MDAzMjswMDMyOworRkYxMztGRjEzO0ZGMTM7MDAzMzswMDMzOworRkYxNDtGRjE0O0ZGMTQ7MDAzNDswMDM0OworRkYxNTtGRjE1O0ZGMTU7MDAzNTswMDM1OworRkYxNjtGRjE2O0ZGMTY7MDAzNjswMDM2OworRkYxNztGRjE3O0ZGMTc7MDAzNzswMDM3OworRkYxODtGRjE4O0ZGMTg7MDAzODswMDM4OworRkYxOTtGRjE5O0ZGMTk7MDAzOTswMDM5OworRkYxQTtGRjFBO0ZGMUE7MDAzQTswMDNBOworRkYxQjtGRjFCO0ZGMUI7MDAzQjswMDNCOworRkYxQztGRjFDO0ZGMUM7MDAzQzswMDNDOworRkYxRDtGRjFEO0ZGMUQ7MDAzRDswMDNEOworRkYxRTtGRjFFO0ZGMUU7MDAzRTswMDNFOworRkYxRjtGRjFGO0ZGMUY7MDAzRjswMDNGOworRkYyMDtGRjIwO0ZGMjA7MDA0MDswMDQwOworRkYyMTtGRjIxO0ZGMjE7MDA0MTswMDQxOworRkYyMjtGRjIyO0ZGMjI7MDA0MjswMDQyOworRkYyMztGRjIzO0ZGMjM7MDA0MzswMDQzOworRkYyNDtGRjI0O0ZGMjQ7MDA0NDswMDQ0OworRkYyNTtGRjI1O0ZGMjU7MDA0NTswMDQ1OworRkYyNjtGRjI2O0ZGMjY7MDA0NjswMDQ2OworRkYyNztGRjI3O0ZGMjc7MDA0NzswMDQ3OworRkYyODtGRjI4O0ZGMjg7MDA0ODswMDQ4OworRkYyOTtGRjI5O0ZGMjk7MDA0OTswMDQ5OworRkYyQTtGRjJBO0ZGMkE7MDA0QTswMDRBOworRkYyQjtGRjJCO0ZGMkI7MDA0QjswMDRCOworRkYyQztGRjJDO0ZGMkM7MDA0QzswMDRDOworRkYyRDtGRjJEO0ZGMkQ7MDA0RDswMDREOworRkYyRTtGRjJFO0ZGMkU7MDA0RTswMDRFOworRkYyRjtGRjJGO0ZGMkY7MDA0RjswMDRGOworRkYzMDtGRjMwO0ZGMzA7MDA1MDswMDUwOworRkYzMTtGRjMxO0ZGMzE7MDA1MTswMDUxOworRkYzMjtGRjMyO0ZGMzI7MDA1MjswMDUyOworRkYzMztGRjMzO0ZGMzM7MDA1MzswMDUzOworRkYzNDtGRjM0O0ZGMzQ7MDA1NDswMDU0OworRkYzNTtGRjM1O0ZGMzU7MDA1NTswMDU1OworRkYzNjtGRjM2O0ZGMzY7MDA1NjswMDU2OworRkYzNztGRjM3O0ZGMzc7MDA1NzswMDU3OworRkYzODtGRjM4O0ZGMzg7MDA1ODswMDU4OworRkYzOTtGRjM5O0ZGMzk7MDA1OTswMDU5OworRkYzQTtGRjNBO0ZGM0E7MDA1QTswMDVBOworRkYzQjtGRjNCO0ZGM0I7MDA1QjswMDVCOworRkYzQztGRjNDO0ZGM0M7MDA1QzswMDVDOworRkYzRDtGRjNEO0ZGM0Q7MDA1RDswMDVEOworRkYzRTtGRjNFO0ZGM0U7MDA1RTswMDVFOworRkYzRjtGRjNGO0ZGM0Y7MDA1RjswMDVGOworRkY0MDtGRjQwO0ZGNDA7MDA2MDswMDYwOworRkY0MTtGRjQxO0ZGNDE7MDA2MTswMDYxOworRkY0MjtGRjQyO0ZGNDI7MDA2MjswMDYyOworRkY0MztGRjQzO0ZGNDM7MDA2MzswMDYzOworRkY0NDtGRjQ0O0ZGNDQ7MDA2NDswMDY0OworRkY0NTtGRjQ1O0ZGNDU7MDA2NTswMDY1OworRkY0NjtGRjQ2O0ZGNDY7MDA2NjswMDY2OworRkY0NztGRjQ3O0ZGNDc7MDA2NzswMDY3OworRkY0ODtGRjQ4O0ZGNDg7MDA2ODswMDY4OworRkY0OTtGRjQ5O0ZGNDk7MDA2OTswMDY5OworRkY0QTtGRjRBO0ZGNEE7MDA2QTswMDZBOworRkY0QjtGRjRCO0ZGNEI7MDA2QjswMDZCOworRkY0QztGRjRDO0ZGNEM7MDA2QzswMDZDOworRkY0RDtGRjREO0ZGNEQ7MDA2RDswMDZEOworRkY0RTtGRjRFO0ZGNEU7MDA2RTswMDZFOworRkY0RjtGRjRGO0ZGNEY7MDA2RjswMDZGOworRkY1MDtGRjUwO0ZGNTA7MDA3MDswMDcwOworRkY1MTtGRjUxO0ZGNTE7MDA3MTswMDcxOworRkY1MjtGRjUyO0ZGNTI7MDA3MjswMDcyOworRkY1MztGRjUzO0ZGNTM7MDA3MzswMDczOworRkY1NDtGRjU0O0ZGNTQ7MDA3NDswMDc0OworRkY1NTtGRjU1O0ZGNTU7MDA3NTswMDc1OworRkY1NjtGRjU2O0ZGNTY7MDA3NjswMDc2OworRkY1NztGRjU3O0ZGNTc7MDA3NzswMDc3OworRkY1ODtGRjU4O0ZGNTg7MDA3ODswMDc4OworRkY1OTtGRjU5O0ZGNTk7MDA3OTswMDc5OworRkY1QTtGRjVBO0ZGNUE7MDA3QTswMDdBOworRkY1QjtGRjVCO0ZGNUI7MDA3QjswMDdCOworRkY1QztGRjVDO0ZGNUM7MDA3QzswMDdDOworRkY1RDtGRjVEO0ZGNUQ7MDA3RDswMDdEOworRkY1RTtGRjVFO0ZGNUU7MDA3RTswMDdFOworRkY1RjtGRjVGO0ZGNUY7Mjk4NTsyOTg1OworRkY2MDtGRjYwO0ZGNjA7Mjk4NjsyOTg2OworRkY2MTtGRjYxO0ZGNjE7MzAwMjszMDAyOworRkY2MjtGRjYyO0ZGNjI7MzAwQzszMDBDOworRkY2MztGRjYzO0ZGNjM7MzAwRDszMDBEOworRkY2NDtGRjY0O0ZGNjQ7MzAwMTszMDAxOworRkY2NTtGRjY1O0ZGNjU7MzBGQjszMEZCOworRkY2NjtGRjY2O0ZGNjY7MzBGMjszMEYyOworRkY2NztGRjY3O0ZGNjc7MzBBMTszMEExOworRkY2ODtGRjY4O0ZGNjg7MzBBMzszMEEzOworRkY2OTtGRjY5O0ZGNjk7MzBBNTszMEE1OworRkY2QTtGRjZBO0ZGNkE7MzBBNzszMEE3OworRkY2QjtGRjZCO0ZGNkI7MzBBOTszMEE5OworRkY2QztGRjZDO0ZGNkM7MzBFMzszMEUzOworRkY2RDtGRjZEO0ZGNkQ7MzBFNTszMEU1OworRkY2RTtGRjZFO0ZGNkU7MzBFNzszMEU3OworRkY2RjtGRjZGO0ZGNkY7MzBDMzszMEMzOworRkY3MDtGRjcwO0ZGNzA7MzBGQzszMEZDOworRkY3MTtGRjcxO0ZGNzE7MzBBMjszMEEyOworRkY3MjtGRjcyO0ZGNzI7MzBBNDszMEE0OworRkY3MztGRjczO0ZGNzM7MzBBNjszMEE2OworRkY3NDtGRjc0O0ZGNzQ7MzBBODszMEE4OworRkY3NTtGRjc1O0ZGNzU7MzBBQTszMEFBOworRkY3NjtGRjc2O0ZGNzY7MzBBQjszMEFCOworRkY3NztGRjc3O0ZGNzc7MzBBRDszMEFEOworRkY3ODtGRjc4O0ZGNzg7MzBBRjszMEFGOworRkY3OTtGRjc5O0ZGNzk7MzBCMTszMEIxOworRkY3QTtGRjdBO0ZGN0E7MzBCMzszMEIzOworRkY3QjtGRjdCO0ZGN0I7MzBCNTszMEI1OworRkY3QztGRjdDO0ZGN0M7MzBCNzszMEI3OworRkY3RDtGRjdEO0ZGN0Q7MzBCOTszMEI5OworRkY3RTtGRjdFO0ZGN0U7MzBCQjszMEJCOworRkY3RjtGRjdGO0ZGN0Y7MzBCRDszMEJEOworRkY4MDtGRjgwO0ZGODA7MzBCRjszMEJGOworRkY4MTtGRjgxO0ZGODE7MzBDMTszMEMxOworRkY4MjtGRjgyO0ZGODI7MzBDNDszMEM0OworRkY4MztGRjgzO0ZGODM7MzBDNjszMEM2OworRkY4NDtGRjg0O0ZGODQ7MzBDODszMEM4OworRkY4NTtGRjg1O0ZGODU7MzBDQTszMENBOworRkY4NjtGRjg2O0ZGODY7MzBDQjszMENCOworRkY4NztGRjg3O0ZGODc7MzBDQzszMENDOworRkY4ODtGRjg4O0ZGODg7MzBDRDszMENEOworRkY4OTtGRjg5O0ZGODk7MzBDRTszMENFOworRkY4QTtGRjhBO0ZGOEE7MzBDRjszMENGOworRkY4QjtGRjhCO0ZGOEI7MzBEMjszMEQyOworRkY4QztGRjhDO0ZGOEM7MzBENTszMEQ1OworRkY4RDtGRjhEO0ZGOEQ7MzBEODszMEQ4OworRkY4RTtGRjhFO0ZGOEU7MzBEQjszMERCOworRkY4RjtGRjhGO0ZGOEY7MzBERTszMERFOworRkY5MDtGRjkwO0ZGOTA7MzBERjszMERGOworRkY5MTtGRjkxO0ZGOTE7MzBFMDszMEUwOworRkY5MjtGRjkyO0ZGOTI7MzBFMTszMEUxOworRkY5MztGRjkzO0ZGOTM7MzBFMjszMEUyOworRkY5NDtGRjk0O0ZGOTQ7MzBFNDszMEU0OworRkY5NTtGRjk1O0ZGOTU7MzBFNjszMEU2OworRkY5NjtGRjk2O0ZGOTY7MzBFODszMEU4OworRkY5NztGRjk3O0ZGOTc7MzBFOTszMEU5OworRkY5ODtGRjk4O0ZGOTg7MzBFQTszMEVBOworRkY5OTtGRjk5O0ZGOTk7MzBFQjszMEVCOworRkY5QTtGRjlBO0ZGOUE7MzBFQzszMEVDOworRkY5QjtGRjlCO0ZGOUI7MzBFRDszMEVEOworRkY5QztGRjlDO0ZGOUM7MzBFRjszMEVGOworRkY5RDtGRjlEO0ZGOUQ7MzBGMzszMEYzOworRkY5RTtGRjlFO0ZGOUU7MzA5OTszMDk5OworRkY5RjtGRjlGO0ZGOUY7MzA5QTszMDlBOworRkZBMDtGRkEwO0ZGQTA7MTE2MDsxMTYwOworRkZBMTtGRkExO0ZGQTE7MTEwMDsxMTAwOworRkZBMjtGRkEyO0ZGQTI7MTEwMTsxMTAxOworRkZBMztGRkEzO0ZGQTM7MTFBQTsxMUFBOworRkZBNDtGRkE0O0ZGQTQ7MTEwMjsxMTAyOworRkZBNTtGRkE1O0ZGQTU7MTFBQzsxMUFDOworRkZBNjtGRkE2O0ZGQTY7MTFBRDsxMUFEOworRkZBNztGRkE3O0ZGQTc7MTEwMzsxMTAzOworRkZBODtGRkE4O0ZGQTg7MTEwNDsxMTA0OworRkZBOTtGRkE5O0ZGQTk7MTEwNTsxMTA1OworRkZBQTtGRkFBO0ZGQUE7MTFCMDsxMUIwOworRkZBQjtGRkFCO0ZGQUI7MTFCMTsxMUIxOworRkZBQztGRkFDO0ZGQUM7MTFCMjsxMUIyOworRkZBRDtGRkFEO0ZGQUQ7MTFCMzsxMUIzOworRkZBRTtGRkFFO0ZGQUU7MTFCNDsxMUI0OworRkZBRjtGRkFGO0ZGQUY7MTFCNTsxMUI1OworRkZCMDtGRkIwO0ZGQjA7MTExQTsxMTFBOworRkZCMTtGRkIxO0ZGQjE7MTEwNjsxMTA2OworRkZCMjtGRkIyO0ZGQjI7MTEwNzsxMTA3OworRkZCMztGRkIzO0ZGQjM7MTEwODsxMTA4OworRkZCNDtGRkI0O0ZGQjQ7MTEyMTsxMTIxOworRkZCNTtGRkI1O0ZGQjU7MTEwOTsxMTA5OworRkZCNjtGRkI2O0ZGQjY7MTEwQTsxMTBBOworRkZCNztGRkI3O0ZGQjc7MTEwQjsxMTBCOworRkZCODtGRkI4O0ZGQjg7MTEwQzsxMTBDOworRkZCOTtGRkI5O0ZGQjk7MTEwRDsxMTBEOworRkZCQTtGRkJBO0ZGQkE7MTEwRTsxMTBFOworRkZCQjtGRkJCO0ZGQkI7MTEwRjsxMTBGOworRkZCQztGRkJDO0ZGQkM7MTExMDsxMTEwOworRkZCRDtGRkJEO0ZGQkQ7MTExMTsxMTExOworRkZCRTtGRkJFO0ZGQkU7MTExMjsxMTEyOworRkZDMjtGRkMyO0ZGQzI7MTE2MTsxMTYxOworRkZDMztGRkMzO0ZGQzM7MTE2MjsxMTYyOworRkZDNDtGRkM0O0ZGQzQ7MTE2MzsxMTYzOworRkZDNTtGRkM1O0ZGQzU7MTE2NDsxMTY0OworRkZDNjtGRkM2O0ZGQzY7MTE2NTsxMTY1OworRkZDNztGRkM3O0ZGQzc7MTE2NjsxMTY2OworRkZDQTtGRkNBO0ZGQ0E7MTE2NzsxMTY3OworRkZDQjtGRkNCO0ZGQ0I7MTE2ODsxMTY4OworRkZDQztGRkNDO0ZGQ0M7MTE2OTsxMTY5OworRkZDRDtGRkNEO0ZGQ0Q7MTE2QTsxMTZBOworRkZDRTtGRkNFO0ZGQ0U7MTE2QjsxMTZCOworRkZDRjtGRkNGO0ZGQ0Y7MTE2QzsxMTZDOworRkZEMjtGRkQyO0ZGRDI7MTE2RDsxMTZEOworRkZEMztGRkQzO0ZGRDM7MTE2RTsxMTZFOworRkZENDtGRkQ0O0ZGRDQ7MTE2RjsxMTZGOworRkZENTtGRkQ1O0ZGRDU7MTE3MDsxMTcwOworRkZENjtGRkQ2O0ZGRDY7MTE3MTsxMTcxOworRkZENztGRkQ3O0ZGRDc7MTE3MjsxMTcyOworRkZEQTtGRkRBO0ZGREE7MTE3MzsxMTczOworRkZEQjtGRkRCO0ZGREI7MTE3NDsxMTc0OworRkZEQztGRkRDO0ZGREM7MTE3NTsxMTc1OworRkZFMDtGRkUwO0ZGRTA7MDBBMjswMEEyOworRkZFMTtGRkUxO0ZGRTE7MDBBMzswMEEzOworRkZFMjtGRkUyO0ZGRTI7MDBBQzswMEFDOworRkZFMztGRkUzO0ZGRTM7MDAyMCAwMzA0OzAwMjAgMDMwNDsKK0ZGRTQ7RkZFNDtGRkU0OzAwQTY7MDBBNjsKK0ZGRTU7RkZFNTtGRkU1OzAwQTU7MDBBNTsKK0ZGRTY7RkZFNjtGRkU2OzIwQTk7MjBBOTsKK0ZGRTg7RkZFODtGRkU4OzI1MDI7MjUwMjsKK0ZGRTk7RkZFOTtGRkU5OzIxOTA7MjE5MDsKK0ZGRUE7RkZFQTtGRkVBOzIxOTE7MjE5MTsKK0ZGRUI7RkZFQjtGRkVCOzIxOTI7MjE5MjsKK0ZGRUM7RkZFQztGRkVDOzIxOTM7MjE5MzsKK0ZGRUQ7RkZFRDtGRkVEOzI1QTA7MjVBMDsKK0ZGRUU7RkZFRTtGRkVFOzI1Q0I7MjVDQjsKKzFEMTVFOzFEMTU3IDFEMTY1OzFEMTU3IDFEMTY1OzFEMTU3IDFEMTY1OzFEMTU3IDFEMTY1OworMUQxNUY7MUQxNTggMUQxNjU7MUQxNTggMUQxNjU7MUQxNTggMUQxNjU7MUQxNTggMUQxNjU7CisxRDE2MDsxRDE1OCAxRDE2NSAxRDE2RTsxRDE1OCAxRDE2NSAxRDE2RTsxRDE1OCAxRDE2NSAxRDE2RTsxRDE1OCAxRDE2NSAxRDE2RTsKKzFEMTYxOzFEMTU4IDFEMTY1IDFEMTZGOzFEMTU4IDFEMTY1IDFEMTZGOzFEMTU4IDFEMTY1IDFEMTZGOzFEMTU4IDFEMTY1IDFEMTZGOworMUQxNjI7MUQxNTggMUQxNjUgMUQxNzA7MUQxNTggMUQxNjUgMUQxNzA7MUQxNTggMUQxNjUgMUQxNzA7MUQxNTggMUQxNjUgMUQxNzA7CisxRDE2MzsxRDE1OCAxRDE2NSAxRDE3MTsxRDE1OCAxRDE2NSAxRDE3MTsxRDE1OCAxRDE2NSAxRDE3MTsxRDE1OCAxRDE2NSAxRDE3MTsKKzFEMTY0OzFEMTU4IDFEMTY1IDFEMTcyOzFEMTU4IDFEMTY1IDFEMTcyOzFEMTU4IDFEMTY1IDFEMTcyOzFEMTU4IDFEMTY1IDFEMTcyOworMUQxQkI7MUQxQjkgMUQxNjU7MUQxQjkgMUQxNjU7MUQxQjkgMUQxNjU7MUQxQjkgMUQxNjU7CisxRDFCQzsxRDFCQSAxRDE2NTsxRDFCQSAxRDE2NTsxRDFCQSAxRDE2NTsxRDFCQSAxRDE2NTsKKzFEMUJEOzFEMUI5IDFEMTY1IDFEMTZFOzFEMUI5IDFEMTY1IDFEMTZFOzFEMUI5IDFEMTY1IDFEMTZFOzFEMUI5IDFEMTY1IDFEMTZFOworMUQxQkU7MUQxQkEgMUQxNjUgMUQxNkU7MUQxQkEgMUQxNjUgMUQxNkU7MUQxQkEgMUQxNjUgMUQxNkU7MUQxQkEgMUQxNjUgMUQxNkU7CisxRDFCRjsxRDFCOSAxRDE2NSAxRDE2RjsxRDFCOSAxRDE2NSAxRDE2RjsxRDFCOSAxRDE2NSAxRDE2RjsxRDFCOSAxRDE2NSAxRDE2RjsKKzFEMUMwOzFEMUJBIDFEMTY1IDFEMTZGOzFEMUJBIDFEMTY1IDFEMTZGOzFEMUJBIDFEMTY1IDFEMTZGOzFEMUJBIDFEMTY1IDFEMTZGOworMUQ0MDA7MUQ0MDA7MUQ0MDA7MDA0MTswMDQxOworMUQ0MDE7MUQ0MDE7MUQ0MDE7MDA0MjswMDQyOworMUQ0MDI7MUQ0MDI7MUQ0MDI7MDA0MzswMDQzOworMUQ0MDM7MUQ0MDM7MUQ0MDM7MDA0NDswMDQ0OworMUQ0MDQ7MUQ0MDQ7MUQ0MDQ7MDA0NTswMDQ1OworMUQ0MDU7MUQ0MDU7MUQ0MDU7MDA0NjswMDQ2OworMUQ0MDY7MUQ0MDY7MUQ0MDY7MDA0NzswMDQ3OworMUQ0MDc7MUQ0MDc7MUQ0MDc7MDA0ODswMDQ4OworMUQ0MDg7MUQ0MDg7MUQ0MDg7MDA0OTswMDQ5OworMUQ0MDk7MUQ0MDk7MUQ0MDk7MDA0QTswMDRBOworMUQ0MEE7MUQ0MEE7MUQ0MEE7MDA0QjswMDRCOworMUQ0MEI7MUQ0MEI7MUQ0MEI7MDA0QzswMDRDOworMUQ0MEM7MUQ0MEM7MUQ0MEM7MDA0RDswMDREOworMUQ0MEQ7MUQ0MEQ7MUQ0MEQ7MDA0RTswMDRFOworMUQ0MEU7MUQ0MEU7MUQ0MEU7MDA0RjswMDRGOworMUQ0MEY7MUQ0MEY7MUQ0MEY7MDA1MDswMDUwOworMUQ0MTA7MUQ0MTA7MUQ0MTA7MDA1MTswMDUxOworMUQ0MTE7MUQ0MTE7MUQ0MTE7MDA1MjswMDUyOworMUQ0MTI7MUQ0MTI7MUQ0MTI7MDA1MzswMDUzOworMUQ0MTM7MUQ0MTM7MUQ0MTM7MDA1NDswMDU0OworMUQ0MTQ7MUQ0MTQ7MUQ0MTQ7MDA1NTswMDU1OworMUQ0MTU7MUQ0MTU7MUQ0MTU7MDA1NjswMDU2OworMUQ0MTY7MUQ0MTY7MUQ0MTY7MDA1NzswMDU3OworMUQ0MTc7MUQ0MTc7MUQ0MTc7MDA1ODswMDU4OworMUQ0MTg7MUQ0MTg7MUQ0MTg7MDA1OTswMDU5OworMUQ0MTk7MUQ0MTk7MUQ0MTk7MDA1QTswMDVBOworMUQ0MUE7MUQ0MUE7MUQ0MUE7MDA2MTswMDYxOworMUQ0MUI7MUQ0MUI7MUQ0MUI7MDA2MjswMDYyOworMUQ0MUM7MUQ0MUM7MUQ0MUM7MDA2MzswMDYzOworMUQ0MUQ7MUQ0MUQ7MUQ0MUQ7MDA2NDswMDY0OworMUQ0MUU7MUQ0MUU7MUQ0MUU7MDA2NTswMDY1OworMUQ0MUY7MUQ0MUY7MUQ0MUY7MDA2NjswMDY2OworMUQ0MjA7MUQ0MjA7MUQ0MjA7MDA2NzswMDY3OworMUQ0MjE7MUQ0MjE7MUQ0MjE7MDA2ODswMDY4OworMUQ0MjI7MUQ0MjI7MUQ0MjI7MDA2OTswMDY5OworMUQ0MjM7MUQ0MjM7MUQ0MjM7MDA2QTswMDZBOworMUQ0MjQ7MUQ0MjQ7MUQ0MjQ7MDA2QjswMDZCOworMUQ0MjU7MUQ0MjU7MUQ0MjU7MDA2QzswMDZDOworMUQ0MjY7MUQ0MjY7MUQ0MjY7MDA2RDswMDZEOworMUQ0Mjc7MUQ0Mjc7MUQ0Mjc7MDA2RTswMDZFOworMUQ0Mjg7MUQ0Mjg7MUQ0Mjg7MDA2RjswMDZGOworMUQ0Mjk7MUQ0Mjk7MUQ0Mjk7MDA3MDswMDcwOworMUQ0MkE7MUQ0MkE7MUQ0MkE7MDA3MTswMDcxOworMUQ0MkI7MUQ0MkI7MUQ0MkI7MDA3MjswMDcyOworMUQ0MkM7MUQ0MkM7MUQ0MkM7MDA3MzswMDczOworMUQ0MkQ7MUQ0MkQ7MUQ0MkQ7MDA3NDswMDc0OworMUQ0MkU7MUQ0MkU7MUQ0MkU7MDA3NTswMDc1OworMUQ0MkY7MUQ0MkY7MUQ0MkY7MDA3NjswMDc2OworMUQ0MzA7MUQ0MzA7MUQ0MzA7MDA3NzswMDc3OworMUQ0MzE7MUQ0MzE7MUQ0MzE7MDA3ODswMDc4OworMUQ0MzI7MUQ0MzI7MUQ0MzI7MDA3OTswMDc5OworMUQ0MzM7MUQ0MzM7MUQ0MzM7MDA3QTswMDdBOworMUQ0MzQ7MUQ0MzQ7MUQ0MzQ7MDA0MTswMDQxOworMUQ0MzU7MUQ0MzU7MUQ0MzU7MDA0MjswMDQyOworMUQ0MzY7MUQ0MzY7MUQ0MzY7MDA0MzswMDQzOworMUQ0Mzc7MUQ0Mzc7MUQ0Mzc7MDA0NDswMDQ0OworMUQ0Mzg7MUQ0Mzg7MUQ0Mzg7MDA0NTswMDQ1OworMUQ0Mzk7MUQ0Mzk7MUQ0Mzk7MDA0NjswMDQ2OworMUQ0M0E7MUQ0M0E7MUQ0M0E7MDA0NzswMDQ3OworMUQ0M0I7MUQ0M0I7MUQ0M0I7MDA0ODswMDQ4OworMUQ0M0M7MUQ0M0M7MUQ0M0M7MDA0OTswMDQ5OworMUQ0M0Q7MUQ0M0Q7MUQ0M0Q7MDA0QTswMDRBOworMUQ0M0U7MUQ0M0U7MUQ0M0U7MDA0QjswMDRCOworMUQ0M0Y7MUQ0M0Y7MUQ0M0Y7MDA0QzswMDRDOworMUQ0NDA7MUQ0NDA7MUQ0NDA7MDA0RDswMDREOworMUQ0NDE7MUQ0NDE7MUQ0NDE7MDA0RTswMDRFOworMUQ0NDI7MUQ0NDI7MUQ0NDI7MDA0RjswMDRGOworMUQ0NDM7MUQ0NDM7MUQ0NDM7MDA1MDswMDUwOworMUQ0NDQ7MUQ0NDQ7MUQ0NDQ7MDA1MTswMDUxOworMUQ0NDU7MUQ0NDU7MUQ0NDU7MDA1MjswMDUyOworMUQ0NDY7MUQ0NDY7MUQ0NDY7MDA1MzswMDUzOworMUQ0NDc7MUQ0NDc7MUQ0NDc7MDA1NDswMDU0OworMUQ0NDg7MUQ0NDg7MUQ0NDg7MDA1NTswMDU1OworMUQ0NDk7MUQ0NDk7MUQ0NDk7MDA1NjswMDU2OworMUQ0NEE7MUQ0NEE7MUQ0NEE7MDA1NzswMDU3OworMUQ0NEI7MUQ0NEI7MUQ0NEI7MDA1ODswMDU4OworMUQ0NEM7MUQ0NEM7MUQ0NEM7MDA1OTswMDU5OworMUQ0NEQ7MUQ0NEQ7MUQ0NEQ7MDA1QTswMDVBOworMUQ0NEU7MUQ0NEU7MUQ0NEU7MDA2MTswMDYxOworMUQ0NEY7MUQ0NEY7MUQ0NEY7MDA2MjswMDYyOworMUQ0NTA7MUQ0NTA7MUQ0NTA7MDA2MzswMDYzOworMUQ0NTE7MUQ0NTE7MUQ0NTE7MDA2NDswMDY0OworMUQ0NTI7MUQ0NTI7MUQ0NTI7MDA2NTswMDY1OworMUQ0NTM7MUQ0NTM7MUQ0NTM7MDA2NjswMDY2OworMUQ0NTQ7MUQ0NTQ7MUQ0NTQ7MDA2NzswMDY3OworMUQ0NTY7MUQ0NTY7MUQ0NTY7MDA2OTswMDY5OworMUQ0NTc7MUQ0NTc7MUQ0NTc7MDA2QTswMDZBOworMUQ0NTg7MUQ0NTg7MUQ0NTg7MDA2QjswMDZCOworMUQ0NTk7MUQ0NTk7MUQ0NTk7MDA2QzswMDZDOworMUQ0NUE7MUQ0NUE7MUQ0NUE7MDA2RDswMDZEOworMUQ0NUI7MUQ0NUI7MUQ0NUI7MDA2RTswMDZFOworMUQ0NUM7MUQ0NUM7MUQ0NUM7MDA2RjswMDZGOworMUQ0NUQ7MUQ0NUQ7MUQ0NUQ7MDA3MDswMDcwOworMUQ0NUU7MUQ0NUU7MUQ0NUU7MDA3MTswMDcxOworMUQ0NUY7MUQ0NUY7MUQ0NUY7MDA3MjswMDcyOworMUQ0NjA7MUQ0NjA7MUQ0NjA7MDA3MzswMDczOworMUQ0NjE7MUQ0NjE7MUQ0NjE7MDA3NDswMDc0OworMUQ0NjI7MUQ0NjI7MUQ0NjI7MDA3NTswMDc1OworMUQ0NjM7MUQ0NjM7MUQ0NjM7MDA3NjswMDc2OworMUQ0NjQ7MUQ0NjQ7MUQ0NjQ7MDA3NzswMDc3OworMUQ0NjU7MUQ0NjU7MUQ0NjU7MDA3ODswMDc4OworMUQ0NjY7MUQ0NjY7MUQ0NjY7MDA3OTswMDc5OworMUQ0Njc7MUQ0Njc7MUQ0Njc7MDA3QTswMDdBOworMUQ0Njg7MUQ0Njg7MUQ0Njg7MDA0MTswMDQxOworMUQ0Njk7MUQ0Njk7MUQ0Njk7MDA0MjswMDQyOworMUQ0NkE7MUQ0NkE7MUQ0NkE7MDA0MzswMDQzOworMUQ0NkI7MUQ0NkI7MUQ0NkI7MDA0NDswMDQ0OworMUQ0NkM7MUQ0NkM7MUQ0NkM7MDA0NTswMDQ1OworMUQ0NkQ7MUQ0NkQ7MUQ0NkQ7MDA0NjswMDQ2OworMUQ0NkU7MUQ0NkU7MUQ0NkU7MDA0NzswMDQ3OworMUQ0NkY7MUQ0NkY7MUQ0NkY7MDA0ODswMDQ4OworMUQ0NzA7MUQ0NzA7MUQ0NzA7MDA0OTswMDQ5OworMUQ0NzE7MUQ0NzE7MUQ0NzE7MDA0QTswMDRBOworMUQ0NzI7MUQ0NzI7MUQ0NzI7MDA0QjswMDRCOworMUQ0NzM7MUQ0NzM7MUQ0NzM7MDA0QzswMDRDOworMUQ0NzQ7MUQ0NzQ7MUQ0NzQ7MDA0RDswMDREOworMUQ0NzU7MUQ0NzU7MUQ0NzU7MDA0RTswMDRFOworMUQ0NzY7MUQ0NzY7MUQ0NzY7MDA0RjswMDRGOworMUQ0Nzc7MUQ0Nzc7MUQ0Nzc7MDA1MDswMDUwOworMUQ0Nzg7MUQ0Nzg7MUQ0Nzg7MDA1MTswMDUxOworMUQ0Nzk7MUQ0Nzk7MUQ0Nzk7MDA1MjswMDUyOworMUQ0N0E7MUQ0N0E7MUQ0N0E7MDA1MzswMDUzOworMUQ0N0I7MUQ0N0I7MUQ0N0I7MDA1NDswMDU0OworMUQ0N0M7MUQ0N0M7MUQ0N0M7MDA1NTswMDU1OworMUQ0N0Q7MUQ0N0Q7MUQ0N0Q7MDA1NjswMDU2OworMUQ0N0U7MUQ0N0U7MUQ0N0U7MDA1NzswMDU3OworMUQ0N0Y7MUQ0N0Y7MUQ0N0Y7MDA1ODswMDU4OworMUQ0ODA7MUQ0ODA7MUQ0ODA7MDA1OTswMDU5OworMUQ0ODE7MUQ0ODE7MUQ0ODE7MDA1QTswMDVBOworMUQ0ODI7MUQ0ODI7MUQ0ODI7MDA2MTswMDYxOworMUQ0ODM7MUQ0ODM7MUQ0ODM7MDA2MjswMDYyOworMUQ0ODQ7MUQ0ODQ7MUQ0ODQ7MDA2MzswMDYzOworMUQ0ODU7MUQ0ODU7MUQ0ODU7MDA2NDswMDY0OworMUQ0ODY7MUQ0ODY7MUQ0ODY7MDA2NTswMDY1OworMUQ0ODc7MUQ0ODc7MUQ0ODc7MDA2NjswMDY2OworMUQ0ODg7MUQ0ODg7MUQ0ODg7MDA2NzswMDY3OworMUQ0ODk7MUQ0ODk7MUQ0ODk7MDA2ODswMDY4OworMUQ0OEE7MUQ0OEE7MUQ0OEE7MDA2OTswMDY5OworMUQ0OEI7MUQ0OEI7MUQ0OEI7MDA2QTswMDZBOworMUQ0OEM7MUQ0OEM7MUQ0OEM7MDA2QjswMDZCOworMUQ0OEQ7MUQ0OEQ7MUQ0OEQ7MDA2QzswMDZDOworMUQ0OEU7MUQ0OEU7MUQ0OEU7MDA2RDswMDZEOworMUQ0OEY7MUQ0OEY7MUQ0OEY7MDA2RTswMDZFOworMUQ0OTA7MUQ0OTA7MUQ0OTA7MDA2RjswMDZGOworMUQ0OTE7MUQ0OTE7MUQ0OTE7MDA3MDswMDcwOworMUQ0OTI7MUQ0OTI7MUQ0OTI7MDA3MTswMDcxOworMUQ0OTM7MUQ0OTM7MUQ0OTM7MDA3MjswMDcyOworMUQ0OTQ7MUQ0OTQ7MUQ0OTQ7MDA3MzswMDczOworMUQ0OTU7MUQ0OTU7MUQ0OTU7MDA3NDswMDc0OworMUQ0OTY7MUQ0OTY7MUQ0OTY7MDA3NTswMDc1OworMUQ0OTc7MUQ0OTc7MUQ0OTc7MDA3NjswMDc2OworMUQ0OTg7MUQ0OTg7MUQ0OTg7MDA3NzswMDc3OworMUQ0OTk7MUQ0OTk7MUQ0OTk7MDA3ODswMDc4OworMUQ0OUE7MUQ0OUE7MUQ0OUE7MDA3OTswMDc5OworMUQ0OUI7MUQ0OUI7MUQ0OUI7MDA3QTswMDdBOworMUQ0OUM7MUQ0OUM7MUQ0OUM7MDA0MTswMDQxOworMUQ0OUU7MUQ0OUU7MUQ0OUU7MDA0MzswMDQzOworMUQ0OUY7MUQ0OUY7MUQ0OUY7MDA0NDswMDQ0OworMUQ0QTI7MUQ0QTI7MUQ0QTI7MDA0NzswMDQ3OworMUQ0QTU7MUQ0QTU7MUQ0QTU7MDA0QTswMDRBOworMUQ0QTY7MUQ0QTY7MUQ0QTY7MDA0QjswMDRCOworMUQ0QTk7MUQ0QTk7MUQ0QTk7MDA0RTswMDRFOworMUQ0QUE7MUQ0QUE7MUQ0QUE7MDA0RjswMDRGOworMUQ0QUI7MUQ0QUI7MUQ0QUI7MDA1MDswMDUwOworMUQ0QUM7MUQ0QUM7MUQ0QUM7MDA1MTswMDUxOworMUQ0QUU7MUQ0QUU7MUQ0QUU7MDA1MzswMDUzOworMUQ0QUY7MUQ0QUY7MUQ0QUY7MDA1NDswMDU0OworMUQ0QjA7MUQ0QjA7MUQ0QjA7MDA1NTswMDU1OworMUQ0QjE7MUQ0QjE7MUQ0QjE7MDA1NjswMDU2OworMUQ0QjI7MUQ0QjI7MUQ0QjI7MDA1NzswMDU3OworMUQ0QjM7MUQ0QjM7MUQ0QjM7MDA1ODswMDU4OworMUQ0QjQ7MUQ0QjQ7MUQ0QjQ7MDA1OTswMDU5OworMUQ0QjU7MUQ0QjU7MUQ0QjU7MDA1QTswMDVBOworMUQ0QjY7MUQ0QjY7MUQ0QjY7MDA2MTswMDYxOworMUQ0Qjc7MUQ0Qjc7MUQ0Qjc7MDA2MjswMDYyOworMUQ0Qjg7MUQ0Qjg7MUQ0Qjg7MDA2MzswMDYzOworMUQ0Qjk7MUQ0Qjk7MUQ0Qjk7MDA2NDswMDY0OworMUQ0QkI7MUQ0QkI7MUQ0QkI7MDA2NjswMDY2OworMUQ0QkQ7MUQ0QkQ7MUQ0QkQ7MDA2ODswMDY4OworMUQ0QkU7MUQ0QkU7MUQ0QkU7MDA2OTswMDY5OworMUQ0QkY7MUQ0QkY7MUQ0QkY7MDA2QTswMDZBOworMUQ0QzA7MUQ0QzA7MUQ0QzA7MDA2QjswMDZCOworMUQ0QzE7MUQ0QzE7MUQ0QzE7MDA2QzswMDZDOworMUQ0QzI7MUQ0QzI7MUQ0QzI7MDA2RDswMDZEOworMUQ0QzM7MUQ0QzM7MUQ0QzM7MDA2RTswMDZFOworMUQ0QzU7MUQ0QzU7MUQ0QzU7MDA3MDswMDcwOworMUQ0QzY7MUQ0QzY7MUQ0QzY7MDA3MTswMDcxOworMUQ0Qzc7MUQ0Qzc7MUQ0Qzc7MDA3MjswMDcyOworMUQ0Qzg7MUQ0Qzg7MUQ0Qzg7MDA3MzswMDczOworMUQ0Qzk7MUQ0Qzk7MUQ0Qzk7MDA3NDswMDc0OworMUQ0Q0E7MUQ0Q0E7MUQ0Q0E7MDA3NTswMDc1OworMUQ0Q0I7MUQ0Q0I7MUQ0Q0I7MDA3NjswMDc2OworMUQ0Q0M7MUQ0Q0M7MUQ0Q0M7MDA3NzswMDc3OworMUQ0Q0Q7MUQ0Q0Q7MUQ0Q0Q7MDA3ODswMDc4OworMUQ0Q0U7MUQ0Q0U7MUQ0Q0U7MDA3OTswMDc5OworMUQ0Q0Y7MUQ0Q0Y7MUQ0Q0Y7MDA3QTswMDdBOworMUQ0RDA7MUQ0RDA7MUQ0RDA7MDA0MTswMDQxOworMUQ0RDE7MUQ0RDE7MUQ0RDE7MDA0MjswMDQyOworMUQ0RDI7MUQ0RDI7MUQ0RDI7MDA0MzswMDQzOworMUQ0RDM7MUQ0RDM7MUQ0RDM7MDA0NDswMDQ0OworMUQ0RDQ7MUQ0RDQ7MUQ0RDQ7MDA0NTswMDQ1OworMUQ0RDU7MUQ0RDU7MUQ0RDU7MDA0NjswMDQ2OworMUQ0RDY7MUQ0RDY7MUQ0RDY7MDA0NzswMDQ3OworMUQ0RDc7MUQ0RDc7MUQ0RDc7MDA0ODswMDQ4OworMUQ0RDg7MUQ0RDg7MUQ0RDg7MDA0OTswMDQ5OworMUQ0RDk7MUQ0RDk7MUQ0RDk7MDA0QTswMDRBOworMUQ0REE7MUQ0REE7MUQ0REE7MDA0QjswMDRCOworMUQ0REI7MUQ0REI7MUQ0REI7MDA0QzswMDRDOworMUQ0REM7MUQ0REM7MUQ0REM7MDA0RDswMDREOworMUQ0REQ7MUQ0REQ7MUQ0REQ7MDA0RTswMDRFOworMUQ0REU7MUQ0REU7MUQ0REU7MDA0RjswMDRGOworMUQ0REY7MUQ0REY7MUQ0REY7MDA1MDswMDUwOworMUQ0RTA7MUQ0RTA7MUQ0RTA7MDA1MTswMDUxOworMUQ0RTE7MUQ0RTE7MUQ0RTE7MDA1MjswMDUyOworMUQ0RTI7MUQ0RTI7MUQ0RTI7MDA1MzswMDUzOworMUQ0RTM7MUQ0RTM7MUQ0RTM7MDA1NDswMDU0OworMUQ0RTQ7MUQ0RTQ7MUQ0RTQ7MDA1NTswMDU1OworMUQ0RTU7MUQ0RTU7MUQ0RTU7MDA1NjswMDU2OworMUQ0RTY7MUQ0RTY7MUQ0RTY7MDA1NzswMDU3OworMUQ0RTc7MUQ0RTc7MUQ0RTc7MDA1ODswMDU4OworMUQ0RTg7MUQ0RTg7MUQ0RTg7MDA1OTswMDU5OworMUQ0RTk7MUQ0RTk7MUQ0RTk7MDA1QTswMDVBOworMUQ0RUE7MUQ0RUE7MUQ0RUE7MDA2MTswMDYxOworMUQ0RUI7MUQ0RUI7MUQ0RUI7MDA2MjswMDYyOworMUQ0RUM7MUQ0RUM7MUQ0RUM7MDA2MzswMDYzOworMUQ0RUQ7MUQ0RUQ7MUQ0RUQ7MDA2NDswMDY0OworMUQ0RUU7MUQ0RUU7MUQ0RUU7MDA2NTswMDY1OworMUQ0RUY7MUQ0RUY7MUQ0RUY7MDA2NjswMDY2OworMUQ0RjA7MUQ0RjA7MUQ0RjA7MDA2NzswMDY3OworMUQ0RjE7MUQ0RjE7MUQ0RjE7MDA2ODswMDY4OworMUQ0RjI7MUQ0RjI7MUQ0RjI7MDA2OTswMDY5OworMUQ0RjM7MUQ0RjM7MUQ0RjM7MDA2QTswMDZBOworMUQ0RjQ7MUQ0RjQ7MUQ0RjQ7MDA2QjswMDZCOworMUQ0RjU7MUQ0RjU7MUQ0RjU7MDA2QzswMDZDOworMUQ0RjY7MUQ0RjY7MUQ0RjY7MDA2RDswMDZEOworMUQ0Rjc7MUQ0Rjc7MUQ0Rjc7MDA2RTswMDZFOworMUQ0Rjg7MUQ0Rjg7MUQ0Rjg7MDA2RjswMDZGOworMUQ0Rjk7MUQ0Rjk7MUQ0Rjk7MDA3MDswMDcwOworMUQ0RkE7MUQ0RkE7MUQ0RkE7MDA3MTswMDcxOworMUQ0RkI7MUQ0RkI7MUQ0RkI7MDA3MjswMDcyOworMUQ0RkM7MUQ0RkM7MUQ0RkM7MDA3MzswMDczOworMUQ0RkQ7MUQ0RkQ7MUQ0RkQ7MDA3NDswMDc0OworMUQ0RkU7MUQ0RkU7MUQ0RkU7MDA3NTswMDc1OworMUQ0RkY7MUQ0RkY7MUQ0RkY7MDA3NjswMDc2OworMUQ1MDA7MUQ1MDA7MUQ1MDA7MDA3NzswMDc3OworMUQ1MDE7MUQ1MDE7MUQ1MDE7MDA3ODswMDc4OworMUQ1MDI7MUQ1MDI7MUQ1MDI7MDA3OTswMDc5OworMUQ1MDM7MUQ1MDM7MUQ1MDM7MDA3QTswMDdBOworMUQ1MDQ7MUQ1MDQ7MUQ1MDQ7MDA0MTswMDQxOworMUQ1MDU7MUQ1MDU7MUQ1MDU7MDA0MjswMDQyOworMUQ1MDc7MUQ1MDc7MUQ1MDc7MDA0NDswMDQ0OworMUQ1MDg7MUQ1MDg7MUQ1MDg7MDA0NTswMDQ1OworMUQ1MDk7MUQ1MDk7MUQ1MDk7MDA0NjswMDQ2OworMUQ1MEE7MUQ1MEE7MUQ1MEE7MDA0NzswMDQ3OworMUQ1MEQ7MUQ1MEQ7MUQ1MEQ7MDA0QTswMDRBOworMUQ1MEU7MUQ1MEU7MUQ1MEU7MDA0QjswMDRCOworMUQ1MEY7MUQ1MEY7MUQ1MEY7MDA0QzswMDRDOworMUQ1MTA7MUQ1MTA7MUQ1MTA7MDA0RDswMDREOworMUQ1MTE7MUQ1MTE7MUQ1MTE7MDA0RTswMDRFOworMUQ1MTI7MUQ1MTI7MUQ1MTI7MDA0RjswMDRGOworMUQ1MTM7MUQ1MTM7MUQ1MTM7MDA1MDswMDUwOworMUQ1MTQ7MUQ1MTQ7MUQ1MTQ7MDA1MTswMDUxOworMUQ1MTY7MUQ1MTY7MUQ1MTY7MDA1MzswMDUzOworMUQ1MTc7MUQ1MTc7MUQ1MTc7MDA1NDswMDU0OworMUQ1MTg7MUQ1MTg7MUQ1MTg7MDA1NTswMDU1OworMUQ1MTk7MUQ1MTk7MUQ1MTk7MDA1NjswMDU2OworMUQ1MUE7MUQ1MUE7MUQ1MUE7MDA1NzswMDU3OworMUQ1MUI7MUQ1MUI7MUQ1MUI7MDA1ODswMDU4OworMUQ1MUM7MUQ1MUM7MUQ1MUM7MDA1OTswMDU5OworMUQ1MUU7MUQ1MUU7MUQ1MUU7MDA2MTswMDYxOworMUQ1MUY7MUQ1MUY7MUQ1MUY7MDA2MjswMDYyOworMUQ1MjA7MUQ1MjA7MUQ1MjA7MDA2MzswMDYzOworMUQ1MjE7MUQ1MjE7MUQ1MjE7MDA2NDswMDY0OworMUQ1MjI7MUQ1MjI7MUQ1MjI7MDA2NTswMDY1OworMUQ1MjM7MUQ1MjM7MUQ1MjM7MDA2NjswMDY2OworMUQ1MjQ7MUQ1MjQ7MUQ1MjQ7MDA2NzswMDY3OworMUQ1MjU7MUQ1MjU7MUQ1MjU7MDA2ODswMDY4OworMUQ1MjY7MUQ1MjY7MUQ1MjY7MDA2OTswMDY5OworMUQ1Mjc7MUQ1Mjc7MUQ1Mjc7MDA2QTswMDZBOworMUQ1Mjg7MUQ1Mjg7MUQ1Mjg7MDA2QjswMDZCOworMUQ1Mjk7MUQ1Mjk7MUQ1Mjk7MDA2QzswMDZDOworMUQ1MkE7MUQ1MkE7MUQ1MkE7MDA2RDswMDZEOworMUQ1MkI7MUQ1MkI7MUQ1MkI7MDA2RTswMDZFOworMUQ1MkM7MUQ1MkM7MUQ1MkM7MDA2RjswMDZGOworMUQ1MkQ7MUQ1MkQ7MUQ1MkQ7MDA3MDswMDcwOworMUQ1MkU7MUQ1MkU7MUQ1MkU7MDA3MTswMDcxOworMUQ1MkY7MUQ1MkY7MUQ1MkY7MDA3MjswMDcyOworMUQ1MzA7MUQ1MzA7MUQ1MzA7MDA3MzswMDczOworMUQ1MzE7MUQ1MzE7MUQ1MzE7MDA3NDswMDc0OworMUQ1MzI7MUQ1MzI7MUQ1MzI7MDA3NTswMDc1OworMUQ1MzM7MUQ1MzM7MUQ1MzM7MDA3NjswMDc2OworMUQ1MzQ7MUQ1MzQ7MUQ1MzQ7MDA3NzswMDc3OworMUQ1MzU7MUQ1MzU7MUQ1MzU7MDA3ODswMDc4OworMUQ1MzY7MUQ1MzY7MUQ1MzY7MDA3OTswMDc5OworMUQ1Mzc7MUQ1Mzc7MUQ1Mzc7MDA3QTswMDdBOworMUQ1Mzg7MUQ1Mzg7MUQ1Mzg7MDA0MTswMDQxOworMUQ1Mzk7MUQ1Mzk7MUQ1Mzk7MDA0MjswMDQyOworMUQ1M0I7MUQ1M0I7MUQ1M0I7MDA0NDswMDQ0OworMUQ1M0M7MUQ1M0M7MUQ1M0M7MDA0NTswMDQ1OworMUQ1M0Q7MUQ1M0Q7MUQ1M0Q7MDA0NjswMDQ2OworMUQ1M0U7MUQ1M0U7MUQ1M0U7MDA0NzswMDQ3OworMUQ1NDA7MUQ1NDA7MUQ1NDA7MDA0OTswMDQ5OworMUQ1NDE7MUQ1NDE7MUQ1NDE7MDA0QTswMDRBOworMUQ1NDI7MUQ1NDI7MUQ1NDI7MDA0QjswMDRCOworMUQ1NDM7MUQ1NDM7MUQ1NDM7MDA0QzswMDRDOworMUQ1NDQ7MUQ1NDQ7MUQ1NDQ7MDA0RDswMDREOworMUQ1NDY7MUQ1NDY7MUQ1NDY7MDA0RjswMDRGOworMUQ1NEE7MUQ1NEE7MUQ1NEE7MDA1MzswMDUzOworMUQ1NEI7MUQ1NEI7MUQ1NEI7MDA1NDswMDU0OworMUQ1NEM7MUQ1NEM7MUQ1NEM7MDA1NTswMDU1OworMUQ1NEQ7MUQ1NEQ7MUQ1NEQ7MDA1NjswMDU2OworMUQ1NEU7MUQ1NEU7MUQ1NEU7MDA1NzswMDU3OworMUQ1NEY7MUQ1NEY7MUQ1NEY7MDA1ODswMDU4OworMUQ1NTA7MUQ1NTA7MUQ1NTA7MDA1OTswMDU5OworMUQ1NTI7MUQ1NTI7MUQ1NTI7MDA2MTswMDYxOworMUQ1NTM7MUQ1NTM7MUQ1NTM7MDA2MjswMDYyOworMUQ1NTQ7MUQ1NTQ7MUQ1NTQ7MDA2MzswMDYzOworMUQ1NTU7MUQ1NTU7MUQ1NTU7MDA2NDswMDY0OworMUQ1NTY7MUQ1NTY7MUQ1NTY7MDA2NTswMDY1OworMUQ1NTc7MUQ1NTc7MUQ1NTc7MDA2NjswMDY2OworMUQ1NTg7MUQ1NTg7MUQ1NTg7MDA2NzswMDY3OworMUQ1NTk7MUQ1NTk7MUQ1NTk7MDA2ODswMDY4OworMUQ1NUE7MUQ1NUE7MUQ1NUE7MDA2OTswMDY5OworMUQ1NUI7MUQ1NUI7MUQ1NUI7MDA2QTswMDZBOworMUQ1NUM7MUQ1NUM7MUQ1NUM7MDA2QjswMDZCOworMUQ1NUQ7MUQ1NUQ7MUQ1NUQ7MDA2QzswMDZDOworMUQ1NUU7MUQ1NUU7MUQ1NUU7MDA2RDswMDZEOworMUQ1NUY7MUQ1NUY7MUQ1NUY7MDA2RTswMDZFOworMUQ1NjA7MUQ1NjA7MUQ1NjA7MDA2RjswMDZGOworMUQ1NjE7MUQ1NjE7MUQ1NjE7MDA3MDswMDcwOworMUQ1NjI7MUQ1NjI7MUQ1NjI7MDA3MTswMDcxOworMUQ1NjM7MUQ1NjM7MUQ1NjM7MDA3MjswMDcyOworMUQ1NjQ7MUQ1NjQ7MUQ1NjQ7MDA3MzswMDczOworMUQ1NjU7MUQ1NjU7MUQ1NjU7MDA3NDswMDc0OworMUQ1NjY7MUQ1NjY7MUQ1NjY7MDA3NTswMDc1OworMUQ1Njc7MUQ1Njc7MUQ1Njc7MDA3NjswMDc2OworMUQ1Njg7MUQ1Njg7MUQ1Njg7MDA3NzswMDc3OworMUQ1Njk7MUQ1Njk7MUQ1Njk7MDA3ODswMDc4OworMUQ1NkE7MUQ1NkE7MUQ1NkE7MDA3OTswMDc5OworMUQ1NkI7MUQ1NkI7MUQ1NkI7MDA3QTswMDdBOworMUQ1NkM7MUQ1NkM7MUQ1NkM7MDA0MTswMDQxOworMUQ1NkQ7MUQ1NkQ7MUQ1NkQ7MDA0MjswMDQyOworMUQ1NkU7MUQ1NkU7MUQ1NkU7MDA0MzswMDQzOworMUQ1NkY7MUQ1NkY7MUQ1NkY7MDA0NDswMDQ0OworMUQ1NzA7MUQ1NzA7MUQ1NzA7MDA0NTswMDQ1OworMUQ1NzE7MUQ1NzE7MUQ1NzE7MDA0NjswMDQ2OworMUQ1NzI7MUQ1NzI7MUQ1NzI7MDA0NzswMDQ3OworMUQ1NzM7MUQ1NzM7MUQ1NzM7MDA0ODswMDQ4OworMUQ1NzQ7MUQ1NzQ7MUQ1NzQ7MDA0OTswMDQ5OworMUQ1NzU7MUQ1NzU7MUQ1NzU7MDA0QTswMDRBOworMUQ1NzY7MUQ1NzY7MUQ1NzY7MDA0QjswMDRCOworMUQ1Nzc7MUQ1Nzc7MUQ1Nzc7MDA0QzswMDRDOworMUQ1Nzg7MUQ1Nzg7MUQ1Nzg7MDA0RDswMDREOworMUQ1Nzk7MUQ1Nzk7MUQ1Nzk7MDA0RTswMDRFOworMUQ1N0E7MUQ1N0E7MUQ1N0E7MDA0RjswMDRGOworMUQ1N0I7MUQ1N0I7MUQ1N0I7MDA1MDswMDUwOworMUQ1N0M7MUQ1N0M7MUQ1N0M7MDA1MTswMDUxOworMUQ1N0Q7MUQ1N0Q7MUQ1N0Q7MDA1MjswMDUyOworMUQ1N0U7MUQ1N0U7MUQ1N0U7MDA1MzswMDUzOworMUQ1N0Y7MUQ1N0Y7MUQ1N0Y7MDA1NDswMDU0OworMUQ1ODA7MUQ1ODA7MUQ1ODA7MDA1NTswMDU1OworMUQ1ODE7MUQ1ODE7MUQ1ODE7MDA1NjswMDU2OworMUQ1ODI7MUQ1ODI7MUQ1ODI7MDA1NzswMDU3OworMUQ1ODM7MUQ1ODM7MUQ1ODM7MDA1ODswMDU4OworMUQ1ODQ7MUQ1ODQ7MUQ1ODQ7MDA1OTswMDU5OworMUQ1ODU7MUQ1ODU7MUQ1ODU7MDA1QTswMDVBOworMUQ1ODY7MUQ1ODY7MUQ1ODY7MDA2MTswMDYxOworMUQ1ODc7MUQ1ODc7MUQ1ODc7MDA2MjswMDYyOworMUQ1ODg7MUQ1ODg7MUQ1ODg7MDA2MzswMDYzOworMUQ1ODk7MUQ1ODk7MUQ1ODk7MDA2NDswMDY0OworMUQ1OEE7MUQ1OEE7MUQ1OEE7MDA2NTswMDY1OworMUQ1OEI7MUQ1OEI7MUQ1OEI7MDA2NjswMDY2OworMUQ1OEM7MUQ1OEM7MUQ1OEM7MDA2NzswMDY3OworMUQ1OEQ7MUQ1OEQ7MUQ1OEQ7MDA2ODswMDY4OworMUQ1OEU7MUQ1OEU7MUQ1OEU7MDA2OTswMDY5OworMUQ1OEY7MUQ1OEY7MUQ1OEY7MDA2QTswMDZBOworMUQ1OTA7MUQ1OTA7MUQ1OTA7MDA2QjswMDZCOworMUQ1OTE7MUQ1OTE7MUQ1OTE7MDA2QzswMDZDOworMUQ1OTI7MUQ1OTI7MUQ1OTI7MDA2RDswMDZEOworMUQ1OTM7MUQ1OTM7MUQ1OTM7MDA2RTswMDZFOworMUQ1OTQ7MUQ1OTQ7MUQ1OTQ7MDA2RjswMDZGOworMUQ1OTU7MUQ1OTU7MUQ1OTU7MDA3MDswMDcwOworMUQ1OTY7MUQ1OTY7MUQ1OTY7MDA3MTswMDcxOworMUQ1OTc7MUQ1OTc7MUQ1OTc7MDA3MjswMDcyOworMUQ1OTg7MUQ1OTg7MUQ1OTg7MDA3MzswMDczOworMUQ1OTk7MUQ1OTk7MUQ1OTk7MDA3NDswMDc0OworMUQ1OUE7MUQ1OUE7MUQ1OUE7MDA3NTswMDc1OworMUQ1OUI7MUQ1OUI7MUQ1OUI7MDA3NjswMDc2OworMUQ1OUM7MUQ1OUM7MUQ1OUM7MDA3NzswMDc3OworMUQ1OUQ7MUQ1OUQ7MUQ1OUQ7MDA3ODswMDc4OworMUQ1OUU7MUQ1OUU7MUQ1OUU7MDA3OTswMDc5OworMUQ1OUY7MUQ1OUY7MUQ1OUY7MDA3QTswMDdBOworMUQ1QTA7MUQ1QTA7MUQ1QTA7MDA0MTswMDQxOworMUQ1QTE7MUQ1QTE7MUQ1QTE7MDA0MjswMDQyOworMUQ1QTI7MUQ1QTI7MUQ1QTI7MDA0MzswMDQzOworMUQ1QTM7MUQ1QTM7MUQ1QTM7MDA0NDswMDQ0OworMUQ1QTQ7MUQ1QTQ7MUQ1QTQ7MDA0NTswMDQ1OworMUQ1QTU7MUQ1QTU7MUQ1QTU7MDA0NjswMDQ2OworMUQ1QTY7MUQ1QTY7MUQ1QTY7MDA0NzswMDQ3OworMUQ1QTc7MUQ1QTc7MUQ1QTc7MDA0ODswMDQ4OworMUQ1QTg7MUQ1QTg7MUQ1QTg7MDA0OTswMDQ5OworMUQ1QTk7MUQ1QTk7MUQ1QTk7MDA0QTswMDRBOworMUQ1QUE7MUQ1QUE7MUQ1QUE7MDA0QjswMDRCOworMUQ1QUI7MUQ1QUI7MUQ1QUI7MDA0QzswMDRDOworMUQ1QUM7MUQ1QUM7MUQ1QUM7MDA0RDswMDREOworMUQ1QUQ7MUQ1QUQ7MUQ1QUQ7MDA0RTswMDRFOworMUQ1QUU7MUQ1QUU7MUQ1QUU7MDA0RjswMDRGOworMUQ1QUY7MUQ1QUY7MUQ1QUY7MDA1MDswMDUwOworMUQ1QjA7MUQ1QjA7MUQ1QjA7MDA1MTswMDUxOworMUQ1QjE7MUQ1QjE7MUQ1QjE7MDA1MjswMDUyOworMUQ1QjI7MUQ1QjI7MUQ1QjI7MDA1MzswMDUzOworMUQ1QjM7MUQ1QjM7MUQ1QjM7MDA1NDswMDU0OworMUQ1QjQ7MUQ1QjQ7MUQ1QjQ7MDA1NTswMDU1OworMUQ1QjU7MUQ1QjU7MUQ1QjU7MDA1NjswMDU2OworMUQ1QjY7MUQ1QjY7MUQ1QjY7MDA1NzswMDU3OworMUQ1Qjc7MUQ1Qjc7MUQ1Qjc7MDA1ODswMDU4OworMUQ1Qjg7MUQ1Qjg7MUQ1Qjg7MDA1OTswMDU5OworMUQ1Qjk7MUQ1Qjk7MUQ1Qjk7MDA1QTswMDVBOworMUQ1QkE7MUQ1QkE7MUQ1QkE7MDA2MTswMDYxOworMUQ1QkI7MUQ1QkI7MUQ1QkI7MDA2MjswMDYyOworMUQ1QkM7MUQ1QkM7MUQ1QkM7MDA2MzswMDYzOworMUQ1QkQ7MUQ1QkQ7MUQ1QkQ7MDA2NDswMDY0OworMUQ1QkU7MUQ1QkU7MUQ1QkU7MDA2NTswMDY1OworMUQ1QkY7MUQ1QkY7MUQ1QkY7MDA2NjswMDY2OworMUQ1QzA7MUQ1QzA7MUQ1QzA7MDA2NzswMDY3OworMUQ1QzE7MUQ1QzE7MUQ1QzE7MDA2ODswMDY4OworMUQ1QzI7MUQ1QzI7MUQ1QzI7MDA2OTswMDY5OworMUQ1QzM7MUQ1QzM7MUQ1QzM7MDA2QTswMDZBOworMUQ1QzQ7MUQ1QzQ7MUQ1QzQ7MDA2QjswMDZCOworMUQ1QzU7MUQ1QzU7MUQ1QzU7MDA2QzswMDZDOworMUQ1QzY7MUQ1QzY7MUQ1QzY7MDA2RDswMDZEOworMUQ1Qzc7MUQ1Qzc7MUQ1Qzc7MDA2RTswMDZFOworMUQ1Qzg7MUQ1Qzg7MUQ1Qzg7MDA2RjswMDZGOworMUQ1Qzk7MUQ1Qzk7MUQ1Qzk7MDA3MDswMDcwOworMUQ1Q0E7MUQ1Q0E7MUQ1Q0E7MDA3MTswMDcxOworMUQ1Q0I7MUQ1Q0I7MUQ1Q0I7MDA3MjswMDcyOworMUQ1Q0M7MUQ1Q0M7MUQ1Q0M7MDA3MzswMDczOworMUQ1Q0Q7MUQ1Q0Q7MUQ1Q0Q7MDA3NDswMDc0OworMUQ1Q0U7MUQ1Q0U7MUQ1Q0U7MDA3NTswMDc1OworMUQ1Q0Y7MUQ1Q0Y7MUQ1Q0Y7MDA3NjswMDc2OworMUQ1RDA7MUQ1RDA7MUQ1RDA7MDA3NzswMDc3OworMUQ1RDE7MUQ1RDE7MUQ1RDE7MDA3ODswMDc4OworMUQ1RDI7MUQ1RDI7MUQ1RDI7MDA3OTswMDc5OworMUQ1RDM7MUQ1RDM7MUQ1RDM7MDA3QTswMDdBOworMUQ1RDQ7MUQ1RDQ7MUQ1RDQ7MDA0MTswMDQxOworMUQ1RDU7MUQ1RDU7MUQ1RDU7MDA0MjswMDQyOworMUQ1RDY7MUQ1RDY7MUQ1RDY7MDA0MzswMDQzOworMUQ1RDc7MUQ1RDc7MUQ1RDc7MDA0NDswMDQ0OworMUQ1RDg7MUQ1RDg7MUQ1RDg7MDA0NTswMDQ1OworMUQ1RDk7MUQ1RDk7MUQ1RDk7MDA0NjswMDQ2OworMUQ1REE7MUQ1REE7MUQ1REE7MDA0NzswMDQ3OworMUQ1REI7MUQ1REI7MUQ1REI7MDA0ODswMDQ4OworMUQ1REM7MUQ1REM7MUQ1REM7MDA0OTswMDQ5OworMUQ1REQ7MUQ1REQ7MUQ1REQ7MDA0QTswMDRBOworMUQ1REU7MUQ1REU7MUQ1REU7MDA0QjswMDRCOworMUQ1REY7MUQ1REY7MUQ1REY7MDA0QzswMDRDOworMUQ1RTA7MUQ1RTA7MUQ1RTA7MDA0RDswMDREOworMUQ1RTE7MUQ1RTE7MUQ1RTE7MDA0RTswMDRFOworMUQ1RTI7MUQ1RTI7MUQ1RTI7MDA0RjswMDRGOworMUQ1RTM7MUQ1RTM7MUQ1RTM7MDA1MDswMDUwOworMUQ1RTQ7MUQ1RTQ7MUQ1RTQ7MDA1MTswMDUxOworMUQ1RTU7MUQ1RTU7MUQ1RTU7MDA1MjswMDUyOworMUQ1RTY7MUQ1RTY7MUQ1RTY7MDA1MzswMDUzOworMUQ1RTc7MUQ1RTc7MUQ1RTc7MDA1NDswMDU0OworMUQ1RTg7MUQ1RTg7MUQ1RTg7MDA1NTswMDU1OworMUQ1RTk7MUQ1RTk7MUQ1RTk7MDA1NjswMDU2OworMUQ1RUE7MUQ1RUE7MUQ1RUE7MDA1NzswMDU3OworMUQ1RUI7MUQ1RUI7MUQ1RUI7MDA1ODswMDU4OworMUQ1RUM7MUQ1RUM7MUQ1RUM7MDA1OTswMDU5OworMUQ1RUQ7MUQ1RUQ7MUQ1RUQ7MDA1QTswMDVBOworMUQ1RUU7MUQ1RUU7MUQ1RUU7MDA2MTswMDYxOworMUQ1RUY7MUQ1RUY7MUQ1RUY7MDA2MjswMDYyOworMUQ1RjA7MUQ1RjA7MUQ1RjA7MDA2MzswMDYzOworMUQ1RjE7MUQ1RjE7MUQ1RjE7MDA2NDswMDY0OworMUQ1RjI7MUQ1RjI7MUQ1RjI7MDA2NTswMDY1OworMUQ1RjM7MUQ1RjM7MUQ1RjM7MDA2NjswMDY2OworMUQ1RjQ7MUQ1RjQ7MUQ1RjQ7MDA2NzswMDY3OworMUQ1RjU7MUQ1RjU7MUQ1RjU7MDA2ODswMDY4OworMUQ1RjY7MUQ1RjY7MUQ1RjY7MDA2OTswMDY5OworMUQ1Rjc7MUQ1Rjc7MUQ1Rjc7MDA2QTswMDZBOworMUQ1Rjg7MUQ1Rjg7MUQ1Rjg7MDA2QjswMDZCOworMUQ1Rjk7MUQ1Rjk7MUQ1Rjk7MDA2QzswMDZDOworMUQ1RkE7MUQ1RkE7MUQ1RkE7MDA2RDswMDZEOworMUQ1RkI7MUQ1RkI7MUQ1RkI7MDA2RTswMDZFOworMUQ1RkM7MUQ1RkM7MUQ1RkM7MDA2RjswMDZGOworMUQ1RkQ7MUQ1RkQ7MUQ1RkQ7MDA3MDswMDcwOworMUQ1RkU7MUQ1RkU7MUQ1RkU7MDA3MTswMDcxOworMUQ1RkY7MUQ1RkY7MUQ1RkY7MDA3MjswMDcyOworMUQ2MDA7MUQ2MDA7MUQ2MDA7MDA3MzswMDczOworMUQ2MDE7MUQ2MDE7MUQ2MDE7MDA3NDswMDc0OworMUQ2MDI7MUQ2MDI7MUQ2MDI7MDA3NTswMDc1OworMUQ2MDM7MUQ2MDM7MUQ2MDM7MDA3NjswMDc2OworMUQ2MDQ7MUQ2MDQ7MUQ2MDQ7MDA3NzswMDc3OworMUQ2MDU7MUQ2MDU7MUQ2MDU7MDA3ODswMDc4OworMUQ2MDY7MUQ2MDY7MUQ2MDY7MDA3OTswMDc5OworMUQ2MDc7MUQ2MDc7MUQ2MDc7MDA3QTswMDdBOworMUQ2MDg7MUQ2MDg7MUQ2MDg7MDA0MTswMDQxOworMUQ2MDk7MUQ2MDk7MUQ2MDk7MDA0MjswMDQyOworMUQ2MEE7MUQ2MEE7MUQ2MEE7MDA0MzswMDQzOworMUQ2MEI7MUQ2MEI7MUQ2MEI7MDA0NDswMDQ0OworMUQ2MEM7MUQ2MEM7MUQ2MEM7MDA0NTswMDQ1OworMUQ2MEQ7MUQ2MEQ7MUQ2MEQ7MDA0NjswMDQ2OworMUQ2MEU7MUQ2MEU7MUQ2MEU7MDA0NzswMDQ3OworMUQ2MEY7MUQ2MEY7MUQ2MEY7MDA0ODswMDQ4OworMUQ2MTA7MUQ2MTA7MUQ2MTA7MDA0OTswMDQ5OworMUQ2MTE7MUQ2MTE7MUQ2MTE7MDA0QTswMDRBOworMUQ2MTI7MUQ2MTI7MUQ2MTI7MDA0QjswMDRCOworMUQ2MTM7MUQ2MTM7MUQ2MTM7MDA0QzswMDRDOworMUQ2MTQ7MUQ2MTQ7MUQ2MTQ7MDA0RDswMDREOworMUQ2MTU7MUQ2MTU7MUQ2MTU7MDA0RTswMDRFOworMUQ2MTY7MUQ2MTY7MUQ2MTY7MDA0RjswMDRGOworMUQ2MTc7MUQ2MTc7MUQ2MTc7MDA1MDswMDUwOworMUQ2MTg7MUQ2MTg7MUQ2MTg7MDA1MTswMDUxOworMUQ2MTk7MUQ2MTk7MUQ2MTk7MDA1MjswMDUyOworMUQ2MUE7MUQ2MUE7MUQ2MUE7MDA1MzswMDUzOworMUQ2MUI7MUQ2MUI7MUQ2MUI7MDA1NDswMDU0OworMUQ2MUM7MUQ2MUM7MUQ2MUM7MDA1NTswMDU1OworMUQ2MUQ7MUQ2MUQ7MUQ2MUQ7MDA1NjswMDU2OworMUQ2MUU7MUQ2MUU7MUQ2MUU7MDA1NzswMDU3OworMUQ2MUY7MUQ2MUY7MUQ2MUY7MDA1ODswMDU4OworMUQ2MjA7MUQ2MjA7MUQ2MjA7MDA1OTswMDU5OworMUQ2MjE7MUQ2MjE7MUQ2MjE7MDA1QTswMDVBOworMUQ2MjI7MUQ2MjI7MUQ2MjI7MDA2MTswMDYxOworMUQ2MjM7MUQ2MjM7MUQ2MjM7MDA2MjswMDYyOworMUQ2MjQ7MUQ2MjQ7MUQ2MjQ7MDA2MzswMDYzOworMUQ2MjU7MUQ2MjU7MUQ2MjU7MDA2NDswMDY0OworMUQ2MjY7MUQ2MjY7MUQ2MjY7MDA2NTswMDY1OworMUQ2Mjc7MUQ2Mjc7MUQ2Mjc7MDA2NjswMDY2OworMUQ2Mjg7MUQ2Mjg7MUQ2Mjg7MDA2NzswMDY3OworMUQ2Mjk7MUQ2Mjk7MUQ2Mjk7MDA2ODswMDY4OworMUQ2MkE7MUQ2MkE7MUQ2MkE7MDA2OTswMDY5OworMUQ2MkI7MUQ2MkI7MUQ2MkI7MDA2QTswMDZBOworMUQ2MkM7MUQ2MkM7MUQ2MkM7MDA2QjswMDZCOworMUQ2MkQ7MUQ2MkQ7MUQ2MkQ7MDA2QzswMDZDOworMUQ2MkU7MUQ2MkU7MUQ2MkU7MDA2RDswMDZEOworMUQ2MkY7MUQ2MkY7MUQ2MkY7MDA2RTswMDZFOworMUQ2MzA7MUQ2MzA7MUQ2MzA7MDA2RjswMDZGOworMUQ2MzE7MUQ2MzE7MUQ2MzE7MDA3MDswMDcwOworMUQ2MzI7MUQ2MzI7MUQ2MzI7MDA3MTswMDcxOworMUQ2MzM7MUQ2MzM7MUQ2MzM7MDA3MjswMDcyOworMUQ2MzQ7MUQ2MzQ7MUQ2MzQ7MDA3MzswMDczOworMUQ2MzU7MUQ2MzU7MUQ2MzU7MDA3NDswMDc0OworMUQ2MzY7MUQ2MzY7MUQ2MzY7MDA3NTswMDc1OworMUQ2Mzc7MUQ2Mzc7MUQ2Mzc7MDA3NjswMDc2OworMUQ2Mzg7MUQ2Mzg7MUQ2Mzg7MDA3NzswMDc3OworMUQ2Mzk7MUQ2Mzk7MUQ2Mzk7MDA3ODswMDc4OworMUQ2M0E7MUQ2M0E7MUQ2M0E7MDA3OTswMDc5OworMUQ2M0I7MUQ2M0I7MUQ2M0I7MDA3QTswMDdBOworMUQ2M0M7MUQ2M0M7MUQ2M0M7MDA0MTswMDQxOworMUQ2M0Q7MUQ2M0Q7MUQ2M0Q7MDA0MjswMDQyOworMUQ2M0U7MUQ2M0U7MUQ2M0U7MDA0MzswMDQzOworMUQ2M0Y7MUQ2M0Y7MUQ2M0Y7MDA0NDswMDQ0OworMUQ2NDA7MUQ2NDA7MUQ2NDA7MDA0NTswMDQ1OworMUQ2NDE7MUQ2NDE7MUQ2NDE7MDA0NjswMDQ2OworMUQ2NDI7MUQ2NDI7MUQ2NDI7MDA0NzswMDQ3OworMUQ2NDM7MUQ2NDM7MUQ2NDM7MDA0ODswMDQ4OworMUQ2NDQ7MUQ2NDQ7MUQ2NDQ7MDA0OTswMDQ5OworMUQ2NDU7MUQ2NDU7MUQ2NDU7MDA0QTswMDRBOworMUQ2NDY7MUQ2NDY7MUQ2NDY7MDA0QjswMDRCOworMUQ2NDc7MUQ2NDc7MUQ2NDc7MDA0QzswMDRDOworMUQ2NDg7MUQ2NDg7MUQ2NDg7MDA0RDswMDREOworMUQ2NDk7MUQ2NDk7MUQ2NDk7MDA0RTswMDRFOworMUQ2NEE7MUQ2NEE7MUQ2NEE7MDA0RjswMDRGOworMUQ2NEI7MUQ2NEI7MUQ2NEI7MDA1MDswMDUwOworMUQ2NEM7MUQ2NEM7MUQ2NEM7MDA1MTswMDUxOworMUQ2NEQ7MUQ2NEQ7MUQ2NEQ7MDA1MjswMDUyOworMUQ2NEU7MUQ2NEU7MUQ2NEU7MDA1MzswMDUzOworMUQ2NEY7MUQ2NEY7MUQ2NEY7MDA1NDswMDU0OworMUQ2NTA7MUQ2NTA7MUQ2NTA7MDA1NTswMDU1OworMUQ2NTE7MUQ2NTE7MUQ2NTE7MDA1NjswMDU2OworMUQ2NTI7MUQ2NTI7MUQ2NTI7MDA1NzswMDU3OworMUQ2NTM7MUQ2NTM7MUQ2NTM7MDA1ODswMDU4OworMUQ2NTQ7MUQ2NTQ7MUQ2NTQ7MDA1OTswMDU5OworMUQ2NTU7MUQ2NTU7MUQ2NTU7MDA1QTswMDVBOworMUQ2NTY7MUQ2NTY7MUQ2NTY7MDA2MTswMDYxOworMUQ2NTc7MUQ2NTc7MUQ2NTc7MDA2MjswMDYyOworMUQ2NTg7MUQ2NTg7MUQ2NTg7MDA2MzswMDYzOworMUQ2NTk7MUQ2NTk7MUQ2NTk7MDA2NDswMDY0OworMUQ2NUE7MUQ2NUE7MUQ2NUE7MDA2NTswMDY1OworMUQ2NUI7MUQ2NUI7MUQ2NUI7MDA2NjswMDY2OworMUQ2NUM7MUQ2NUM7MUQ2NUM7MDA2NzswMDY3OworMUQ2NUQ7MUQ2NUQ7MUQ2NUQ7MDA2ODswMDY4OworMUQ2NUU7MUQ2NUU7MUQ2NUU7MDA2OTswMDY5OworMUQ2NUY7MUQ2NUY7MUQ2NUY7MDA2QTswMDZBOworMUQ2NjA7MUQ2NjA7MUQ2NjA7MDA2QjswMDZCOworMUQ2NjE7MUQ2NjE7MUQ2NjE7MDA2QzswMDZDOworMUQ2NjI7MUQ2NjI7MUQ2NjI7MDA2RDswMDZEOworMUQ2NjM7MUQ2NjM7MUQ2NjM7MDA2RTswMDZFOworMUQ2NjQ7MUQ2NjQ7MUQ2NjQ7MDA2RjswMDZGOworMUQ2NjU7MUQ2NjU7MUQ2NjU7MDA3MDswMDcwOworMUQ2NjY7MUQ2NjY7MUQ2NjY7MDA3MTswMDcxOworMUQ2Njc7MUQ2Njc7MUQ2Njc7MDA3MjswMDcyOworMUQ2Njg7MUQ2Njg7MUQ2Njg7MDA3MzswMDczOworMUQ2Njk7MUQ2Njk7MUQ2Njk7MDA3NDswMDc0OworMUQ2NkE7MUQ2NkE7MUQ2NkE7MDA3NTswMDc1OworMUQ2NkI7MUQ2NkI7MUQ2NkI7MDA3NjswMDc2OworMUQ2NkM7MUQ2NkM7MUQ2NkM7MDA3NzswMDc3OworMUQ2NkQ7MUQ2NkQ7MUQ2NkQ7MDA3ODswMDc4OworMUQ2NkU7MUQ2NkU7MUQ2NkU7MDA3OTswMDc5OworMUQ2NkY7MUQ2NkY7MUQ2NkY7MDA3QTswMDdBOworMUQ2NzA7MUQ2NzA7MUQ2NzA7MDA0MTswMDQxOworMUQ2NzE7MUQ2NzE7MUQ2NzE7MDA0MjswMDQyOworMUQ2NzI7MUQ2NzI7MUQ2NzI7MDA0MzswMDQzOworMUQ2NzM7MUQ2NzM7MUQ2NzM7MDA0NDswMDQ0OworMUQ2NzQ7MUQ2NzQ7MUQ2NzQ7MDA0NTswMDQ1OworMUQ2NzU7MUQ2NzU7MUQ2NzU7MDA0NjswMDQ2OworMUQ2NzY7MUQ2NzY7MUQ2NzY7MDA0NzswMDQ3OworMUQ2Nzc7MUQ2Nzc7MUQ2Nzc7MDA0ODswMDQ4OworMUQ2Nzg7MUQ2Nzg7MUQ2Nzg7MDA0OTswMDQ5OworMUQ2Nzk7MUQ2Nzk7MUQ2Nzk7MDA0QTswMDRBOworMUQ2N0E7MUQ2N0E7MUQ2N0E7MDA0QjswMDRCOworMUQ2N0I7MUQ2N0I7MUQ2N0I7MDA0QzswMDRDOworMUQ2N0M7MUQ2N0M7MUQ2N0M7MDA0RDswMDREOworMUQ2N0Q7MUQ2N0Q7MUQ2N0Q7MDA0RTswMDRFOworMUQ2N0U7MUQ2N0U7MUQ2N0U7MDA0RjswMDRGOworMUQ2N0Y7MUQ2N0Y7MUQ2N0Y7MDA1MDswMDUwOworMUQ2ODA7MUQ2ODA7MUQ2ODA7MDA1MTswMDUxOworMUQ2ODE7MUQ2ODE7MUQ2ODE7MDA1MjswMDUyOworMUQ2ODI7MUQ2ODI7MUQ2ODI7MDA1MzswMDUzOworMUQ2ODM7MUQ2ODM7MUQ2ODM7MDA1NDswMDU0OworMUQ2ODQ7MUQ2ODQ7MUQ2ODQ7MDA1NTswMDU1OworMUQ2ODU7MUQ2ODU7MUQ2ODU7MDA1NjswMDU2OworMUQ2ODY7MUQ2ODY7MUQ2ODY7MDA1NzswMDU3OworMUQ2ODc7MUQ2ODc7MUQ2ODc7MDA1ODswMDU4OworMUQ2ODg7MUQ2ODg7MUQ2ODg7MDA1OTswMDU5OworMUQ2ODk7MUQ2ODk7MUQ2ODk7MDA1QTswMDVBOworMUQ2OEE7MUQ2OEE7MUQ2OEE7MDA2MTswMDYxOworMUQ2OEI7MUQ2OEI7MUQ2OEI7MDA2MjswMDYyOworMUQ2OEM7MUQ2OEM7MUQ2OEM7MDA2MzswMDYzOworMUQ2OEQ7MUQ2OEQ7MUQ2OEQ7MDA2NDswMDY0OworMUQ2OEU7MUQ2OEU7MUQ2OEU7MDA2NTswMDY1OworMUQ2OEY7MUQ2OEY7MUQ2OEY7MDA2NjswMDY2OworMUQ2OTA7MUQ2OTA7MUQ2OTA7MDA2NzswMDY3OworMUQ2OTE7MUQ2OTE7MUQ2OTE7MDA2ODswMDY4OworMUQ2OTI7MUQ2OTI7MUQ2OTI7MDA2OTswMDY5OworMUQ2OTM7MUQ2OTM7MUQ2OTM7MDA2QTswMDZBOworMUQ2OTQ7MUQ2OTQ7MUQ2OTQ7MDA2QjswMDZCOworMUQ2OTU7MUQ2OTU7MUQ2OTU7MDA2QzswMDZDOworMUQ2OTY7MUQ2OTY7MUQ2OTY7MDA2RDswMDZEOworMUQ2OTc7MUQ2OTc7MUQ2OTc7MDA2RTswMDZFOworMUQ2OTg7MUQ2OTg7MUQ2OTg7MDA2RjswMDZGOworMUQ2OTk7MUQ2OTk7MUQ2OTk7MDA3MDswMDcwOworMUQ2OUE7MUQ2OUE7MUQ2OUE7MDA3MTswMDcxOworMUQ2OUI7MUQ2OUI7MUQ2OUI7MDA3MjswMDcyOworMUQ2OUM7MUQ2OUM7MUQ2OUM7MDA3MzswMDczOworMUQ2OUQ7MUQ2OUQ7MUQ2OUQ7MDA3NDswMDc0OworMUQ2OUU7MUQ2OUU7MUQ2OUU7MDA3NTswMDc1OworMUQ2OUY7MUQ2OUY7MUQ2OUY7MDA3NjswMDc2OworMUQ2QTA7MUQ2QTA7MUQ2QTA7MDA3NzswMDc3OworMUQ2QTE7MUQ2QTE7MUQ2QTE7MDA3ODswMDc4OworMUQ2QTI7MUQ2QTI7MUQ2QTI7MDA3OTswMDc5OworMUQ2QTM7MUQ2QTM7MUQ2QTM7MDA3QTswMDdBOworMUQ2QTQ7MUQ2QTQ7MUQ2QTQ7MDEzMTswMTMxOworMUQ2QTU7MUQ2QTU7MUQ2QTU7MDIzNzswMjM3OworMUQ2QTg7MUQ2QTg7MUQ2QTg7MDM5MTswMzkxOworMUQ2QTk7MUQ2QTk7MUQ2QTk7MDM5MjswMzkyOworMUQ2QUE7MUQ2QUE7MUQ2QUE7MDM5MzswMzkzOworMUQ2QUI7MUQ2QUI7MUQ2QUI7MDM5NDswMzk0OworMUQ2QUM7MUQ2QUM7MUQ2QUM7MDM5NTswMzk1OworMUQ2QUQ7MUQ2QUQ7MUQ2QUQ7MDM5NjswMzk2OworMUQ2QUU7MUQ2QUU7MUQ2QUU7MDM5NzswMzk3OworMUQ2QUY7MUQ2QUY7MUQ2QUY7MDM5ODswMzk4OworMUQ2QjA7MUQ2QjA7MUQ2QjA7MDM5OTswMzk5OworMUQ2QjE7MUQ2QjE7MUQ2QjE7MDM5QTswMzlBOworMUQ2QjI7MUQ2QjI7MUQ2QjI7MDM5QjswMzlCOworMUQ2QjM7MUQ2QjM7MUQ2QjM7MDM5QzswMzlDOworMUQ2QjQ7MUQ2QjQ7MUQ2QjQ7MDM5RDswMzlEOworMUQ2QjU7MUQ2QjU7MUQ2QjU7MDM5RTswMzlFOworMUQ2QjY7MUQ2QjY7MUQ2QjY7MDM5RjswMzlGOworMUQ2Qjc7MUQ2Qjc7MUQ2Qjc7MDNBMDswM0EwOworMUQ2Qjg7MUQ2Qjg7MUQ2Qjg7MDNBMTswM0ExOworMUQ2Qjk7MUQ2Qjk7MUQ2Qjk7MDM5ODswMzk4OworMUQ2QkE7MUQ2QkE7MUQ2QkE7MDNBMzswM0EzOworMUQ2QkI7MUQ2QkI7MUQ2QkI7MDNBNDswM0E0OworMUQ2QkM7MUQ2QkM7MUQ2QkM7MDNBNTswM0E1OworMUQ2QkQ7MUQ2QkQ7MUQ2QkQ7MDNBNjswM0E2OworMUQ2QkU7MUQ2QkU7MUQ2QkU7MDNBNzswM0E3OworMUQ2QkY7MUQ2QkY7MUQ2QkY7MDNBODswM0E4OworMUQ2QzA7MUQ2QzA7MUQ2QzA7MDNBOTswM0E5OworMUQ2QzE7MUQ2QzE7MUQ2QzE7MjIwNzsyMjA3OworMUQ2QzI7MUQ2QzI7MUQ2QzI7MDNCMTswM0IxOworMUQ2QzM7MUQ2QzM7MUQ2QzM7MDNCMjswM0IyOworMUQ2QzQ7MUQ2QzQ7MUQ2QzQ7MDNCMzswM0IzOworMUQ2QzU7MUQ2QzU7MUQ2QzU7MDNCNDswM0I0OworMUQ2QzY7MUQ2QzY7MUQ2QzY7MDNCNTswM0I1OworMUQ2Qzc7MUQ2Qzc7MUQ2Qzc7MDNCNjswM0I2OworMUQ2Qzg7MUQ2Qzg7MUQ2Qzg7MDNCNzswM0I3OworMUQ2Qzk7MUQ2Qzk7MUQ2Qzk7MDNCODswM0I4OworMUQ2Q0E7MUQ2Q0E7MUQ2Q0E7MDNCOTswM0I5OworMUQ2Q0I7MUQ2Q0I7MUQ2Q0I7MDNCQTswM0JBOworMUQ2Q0M7MUQ2Q0M7MUQ2Q0M7MDNCQjswM0JCOworMUQ2Q0Q7MUQ2Q0Q7MUQ2Q0Q7MDNCQzswM0JDOworMUQ2Q0U7MUQ2Q0U7MUQ2Q0U7MDNCRDswM0JEOworMUQ2Q0Y7MUQ2Q0Y7MUQ2Q0Y7MDNCRTswM0JFOworMUQ2RDA7MUQ2RDA7MUQ2RDA7MDNCRjswM0JGOworMUQ2RDE7MUQ2RDE7MUQ2RDE7MDNDMDswM0MwOworMUQ2RDI7MUQ2RDI7MUQ2RDI7MDNDMTswM0MxOworMUQ2RDM7MUQ2RDM7MUQ2RDM7MDNDMjswM0MyOworMUQ2RDQ7MUQ2RDQ7MUQ2RDQ7MDNDMzswM0MzOworMUQ2RDU7MUQ2RDU7MUQ2RDU7MDNDNDswM0M0OworMUQ2RDY7MUQ2RDY7MUQ2RDY7MDNDNTswM0M1OworMUQ2RDc7MUQ2RDc7MUQ2RDc7MDNDNjswM0M2OworMUQ2RDg7MUQ2RDg7MUQ2RDg7MDNDNzswM0M3OworMUQ2RDk7MUQ2RDk7MUQ2RDk7MDNDODswM0M4OworMUQ2REE7MUQ2REE7MUQ2REE7MDNDOTswM0M5OworMUQ2REI7MUQ2REI7MUQ2REI7MjIwMjsyMjAyOworMUQ2REM7MUQ2REM7MUQ2REM7MDNCNTswM0I1OworMUQ2REQ7MUQ2REQ7MUQ2REQ7MDNCODswM0I4OworMUQ2REU7MUQ2REU7MUQ2REU7MDNCQTswM0JBOworMUQ2REY7MUQ2REY7MUQ2REY7MDNDNjswM0M2OworMUQ2RTA7MUQ2RTA7MUQ2RTA7MDNDMTswM0MxOworMUQ2RTE7MUQ2RTE7MUQ2RTE7MDNDMDswM0MwOworMUQ2RTI7MUQ2RTI7MUQ2RTI7MDM5MTswMzkxOworMUQ2RTM7MUQ2RTM7MUQ2RTM7MDM5MjswMzkyOworMUQ2RTQ7MUQ2RTQ7MUQ2RTQ7MDM5MzswMzkzOworMUQ2RTU7MUQ2RTU7MUQ2RTU7MDM5NDswMzk0OworMUQ2RTY7MUQ2RTY7MUQ2RTY7MDM5NTswMzk1OworMUQ2RTc7MUQ2RTc7MUQ2RTc7MDM5NjswMzk2OworMUQ2RTg7MUQ2RTg7MUQ2RTg7MDM5NzswMzk3OworMUQ2RTk7MUQ2RTk7MUQ2RTk7MDM5ODswMzk4OworMUQ2RUE7MUQ2RUE7MUQ2RUE7MDM5OTswMzk5OworMUQ2RUI7MUQ2RUI7MUQ2RUI7MDM5QTswMzlBOworMUQ2RUM7MUQ2RUM7MUQ2RUM7MDM5QjswMzlCOworMUQ2RUQ7MUQ2RUQ7MUQ2RUQ7MDM5QzswMzlDOworMUQ2RUU7MUQ2RUU7MUQ2RUU7MDM5RDswMzlEOworMUQ2RUY7MUQ2RUY7MUQ2RUY7MDM5RTswMzlFOworMUQ2RjA7MUQ2RjA7MUQ2RjA7MDM5RjswMzlGOworMUQ2RjE7MUQ2RjE7MUQ2RjE7MDNBMDswM0EwOworMUQ2RjI7MUQ2RjI7MUQ2RjI7MDNBMTswM0ExOworMUQ2RjM7MUQ2RjM7MUQ2RjM7MDM5ODswMzk4OworMUQ2RjQ7MUQ2RjQ7MUQ2RjQ7MDNBMzswM0EzOworMUQ2RjU7MUQ2RjU7MUQ2RjU7MDNBNDswM0E0OworMUQ2RjY7MUQ2RjY7MUQ2RjY7MDNBNTswM0E1OworMUQ2Rjc7MUQ2Rjc7MUQ2Rjc7MDNBNjswM0E2OworMUQ2Rjg7MUQ2Rjg7MUQ2Rjg7MDNBNzswM0E3OworMUQ2Rjk7MUQ2Rjk7MUQ2Rjk7MDNBODswM0E4OworMUQ2RkE7MUQ2RkE7MUQ2RkE7MDNBOTswM0E5OworMUQ2RkI7MUQ2RkI7MUQ2RkI7MjIwNzsyMjA3OworMUQ2RkM7MUQ2RkM7MUQ2RkM7MDNCMTswM0IxOworMUQ2RkQ7MUQ2RkQ7MUQ2RkQ7MDNCMjswM0IyOworMUQ2RkU7MUQ2RkU7MUQ2RkU7MDNCMzswM0IzOworMUQ2RkY7MUQ2RkY7MUQ2RkY7MDNCNDswM0I0OworMUQ3MDA7MUQ3MDA7MUQ3MDA7MDNCNTswM0I1OworMUQ3MDE7MUQ3MDE7MUQ3MDE7MDNCNjswM0I2OworMUQ3MDI7MUQ3MDI7MUQ3MDI7MDNCNzswM0I3OworMUQ3MDM7MUQ3MDM7MUQ3MDM7MDNCODswM0I4OworMUQ3MDQ7MUQ3MDQ7MUQ3MDQ7MDNCOTswM0I5OworMUQ3MDU7MUQ3MDU7MUQ3MDU7MDNCQTswM0JBOworMUQ3MDY7MUQ3MDY7MUQ3MDY7MDNCQjswM0JCOworMUQ3MDc7MUQ3MDc7MUQ3MDc7MDNCQzswM0JDOworMUQ3MDg7MUQ3MDg7MUQ3MDg7MDNCRDswM0JEOworMUQ3MDk7MUQ3MDk7MUQ3MDk7MDNCRTswM0JFOworMUQ3MEE7MUQ3MEE7MUQ3MEE7MDNCRjswM0JGOworMUQ3MEI7MUQ3MEI7MUQ3MEI7MDNDMDswM0MwOworMUQ3MEM7MUQ3MEM7MUQ3MEM7MDNDMTswM0MxOworMUQ3MEQ7MUQ3MEQ7MUQ3MEQ7MDNDMjswM0MyOworMUQ3MEU7MUQ3MEU7MUQ3MEU7MDNDMzswM0MzOworMUQ3MEY7MUQ3MEY7MUQ3MEY7MDNDNDswM0M0OworMUQ3MTA7MUQ3MTA7MUQ3MTA7MDNDNTswM0M1OworMUQ3MTE7MUQ3MTE7MUQ3MTE7MDNDNjswM0M2OworMUQ3MTI7MUQ3MTI7MUQ3MTI7MDNDNzswM0M3OworMUQ3MTM7MUQ3MTM7MUQ3MTM7MDNDODswM0M4OworMUQ3MTQ7MUQ3MTQ7MUQ3MTQ7MDNDOTswM0M5OworMUQ3MTU7MUQ3MTU7MUQ3MTU7MjIwMjsyMjAyOworMUQ3MTY7MUQ3MTY7MUQ3MTY7MDNCNTswM0I1OworMUQ3MTc7MUQ3MTc7MUQ3MTc7MDNCODswM0I4OworMUQ3MTg7MUQ3MTg7MUQ3MTg7MDNCQTswM0JBOworMUQ3MTk7MUQ3MTk7MUQ3MTk7MDNDNjswM0M2OworMUQ3MUE7MUQ3MUE7MUQ3MUE7MDNDMTswM0MxOworMUQ3MUI7MUQ3MUI7MUQ3MUI7MDNDMDswM0MwOworMUQ3MUM7MUQ3MUM7MUQ3MUM7MDM5MTswMzkxOworMUQ3MUQ7MUQ3MUQ7MUQ3MUQ7MDM5MjswMzkyOworMUQ3MUU7MUQ3MUU7MUQ3MUU7MDM5MzswMzkzOworMUQ3MUY7MUQ3MUY7MUQ3MUY7MDM5NDswMzk0OworMUQ3MjA7MUQ3MjA7MUQ3MjA7MDM5NTswMzk1OworMUQ3MjE7MUQ3MjE7MUQ3MjE7MDM5NjswMzk2OworMUQ3MjI7MUQ3MjI7MUQ3MjI7MDM5NzswMzk3OworMUQ3MjM7MUQ3MjM7MUQ3MjM7MDM5ODswMzk4OworMUQ3MjQ7MUQ3MjQ7MUQ3MjQ7MDM5OTswMzk5OworMUQ3MjU7MUQ3MjU7MUQ3MjU7MDM5QTswMzlBOworMUQ3MjY7MUQ3MjY7MUQ3MjY7MDM5QjswMzlCOworMUQ3Mjc7MUQ3Mjc7MUQ3Mjc7MDM5QzswMzlDOworMUQ3Mjg7MUQ3Mjg7MUQ3Mjg7MDM5RDswMzlEOworMUQ3Mjk7MUQ3Mjk7MUQ3Mjk7MDM5RTswMzlFOworMUQ3MkE7MUQ3MkE7MUQ3MkE7MDM5RjswMzlGOworMUQ3MkI7MUQ3MkI7MUQ3MkI7MDNBMDswM0EwOworMUQ3MkM7MUQ3MkM7MUQ3MkM7MDNBMTswM0ExOworMUQ3MkQ7MUQ3MkQ7MUQ3MkQ7MDM5ODswMzk4OworMUQ3MkU7MUQ3MkU7MUQ3MkU7MDNBMzswM0EzOworMUQ3MkY7MUQ3MkY7MUQ3MkY7MDNBNDswM0E0OworMUQ3MzA7MUQ3MzA7MUQ3MzA7MDNBNTswM0E1OworMUQ3MzE7MUQ3MzE7MUQ3MzE7MDNBNjswM0E2OworMUQ3MzI7MUQ3MzI7MUQ3MzI7MDNBNzswM0E3OworMUQ3MzM7MUQ3MzM7MUQ3MzM7MDNBODswM0E4OworMUQ3MzQ7MUQ3MzQ7MUQ3MzQ7MDNBOTswM0E5OworMUQ3MzU7MUQ3MzU7MUQ3MzU7MjIwNzsyMjA3OworMUQ3MzY7MUQ3MzY7MUQ3MzY7MDNCMTswM0IxOworMUQ3Mzc7MUQ3Mzc7MUQ3Mzc7MDNCMjswM0IyOworMUQ3Mzg7MUQ3Mzg7MUQ3Mzg7MDNCMzswM0IzOworMUQ3Mzk7MUQ3Mzk7MUQ3Mzk7MDNCNDswM0I0OworMUQ3M0E7MUQ3M0E7MUQ3M0E7MDNCNTswM0I1OworMUQ3M0I7MUQ3M0I7MUQ3M0I7MDNCNjswM0I2OworMUQ3M0M7MUQ3M0M7MUQ3M0M7MDNCNzswM0I3OworMUQ3M0Q7MUQ3M0Q7MUQ3M0Q7MDNCODswM0I4OworMUQ3M0U7MUQ3M0U7MUQ3M0U7MDNCOTswM0I5OworMUQ3M0Y7MUQ3M0Y7MUQ3M0Y7MDNCQTswM0JBOworMUQ3NDA7MUQ3NDA7MUQ3NDA7MDNCQjswM0JCOworMUQ3NDE7MUQ3NDE7MUQ3NDE7MDNCQzswM0JDOworMUQ3NDI7MUQ3NDI7MUQ3NDI7MDNCRDswM0JEOworMUQ3NDM7MUQ3NDM7MUQ3NDM7MDNCRTswM0JFOworMUQ3NDQ7MUQ3NDQ7MUQ3NDQ7MDNCRjswM0JGOworMUQ3NDU7MUQ3NDU7MUQ3NDU7MDNDMDswM0MwOworMUQ3NDY7MUQ3NDY7MUQ3NDY7MDNDMTswM0MxOworMUQ3NDc7MUQ3NDc7MUQ3NDc7MDNDMjswM0MyOworMUQ3NDg7MUQ3NDg7MUQ3NDg7MDNDMzswM0MzOworMUQ3NDk7MUQ3NDk7MUQ3NDk7MDNDNDswM0M0OworMUQ3NEE7MUQ3NEE7MUQ3NEE7MDNDNTswM0M1OworMUQ3NEI7MUQ3NEI7MUQ3NEI7MDNDNjswM0M2OworMUQ3NEM7MUQ3NEM7MUQ3NEM7MDNDNzswM0M3OworMUQ3NEQ7MUQ3NEQ7MUQ3NEQ7MDNDODswM0M4OworMUQ3NEU7MUQ3NEU7MUQ3NEU7MDNDOTswM0M5OworMUQ3NEY7MUQ3NEY7MUQ3NEY7MjIwMjsyMjAyOworMUQ3NTA7MUQ3NTA7MUQ3NTA7MDNCNTswM0I1OworMUQ3NTE7MUQ3NTE7MUQ3NTE7MDNCODswM0I4OworMUQ3NTI7MUQ3NTI7MUQ3NTI7MDNCQTswM0JBOworMUQ3NTM7MUQ3NTM7MUQ3NTM7MDNDNjswM0M2OworMUQ3NTQ7MUQ3NTQ7MUQ3NTQ7MDNDMTswM0MxOworMUQ3NTU7MUQ3NTU7MUQ3NTU7MDNDMDswM0MwOworMUQ3NTY7MUQ3NTY7MUQ3NTY7MDM5MTswMzkxOworMUQ3NTc7MUQ3NTc7MUQ3NTc7MDM5MjswMzkyOworMUQ3NTg7MUQ3NTg7MUQ3NTg7MDM5MzswMzkzOworMUQ3NTk7MUQ3NTk7MUQ3NTk7MDM5NDswMzk0OworMUQ3NUE7MUQ3NUE7MUQ3NUE7MDM5NTswMzk1OworMUQ3NUI7MUQ3NUI7MUQ3NUI7MDM5NjswMzk2OworMUQ3NUM7MUQ3NUM7MUQ3NUM7MDM5NzswMzk3OworMUQ3NUQ7MUQ3NUQ7MUQ3NUQ7MDM5ODswMzk4OworMUQ3NUU7MUQ3NUU7MUQ3NUU7MDM5OTswMzk5OworMUQ3NUY7MUQ3NUY7MUQ3NUY7MDM5QTswMzlBOworMUQ3NjA7MUQ3NjA7MUQ3NjA7MDM5QjswMzlCOworMUQ3NjE7MUQ3NjE7MUQ3NjE7MDM5QzswMzlDOworMUQ3NjI7MUQ3NjI7MUQ3NjI7MDM5RDswMzlEOworMUQ3NjM7MUQ3NjM7MUQ3NjM7MDM5RTswMzlFOworMUQ3NjQ7MUQ3NjQ7MUQ3NjQ7MDM5RjswMzlGOworMUQ3NjU7MUQ3NjU7MUQ3NjU7MDNBMDswM0EwOworMUQ3NjY7MUQ3NjY7MUQ3NjY7MDNBMTswM0ExOworMUQ3Njc7MUQ3Njc7MUQ3Njc7MDM5ODswMzk4OworMUQ3Njg7MUQ3Njg7MUQ3Njg7MDNBMzswM0EzOworMUQ3Njk7MUQ3Njk7MUQ3Njk7MDNBNDswM0E0OworMUQ3NkE7MUQ3NkE7MUQ3NkE7MDNBNTswM0E1OworMUQ3NkI7MUQ3NkI7MUQ3NkI7MDNBNjswM0E2OworMUQ3NkM7MUQ3NkM7MUQ3NkM7MDNBNzswM0E3OworMUQ3NkQ7MUQ3NkQ7MUQ3NkQ7MDNBODswM0E4OworMUQ3NkU7MUQ3NkU7MUQ3NkU7MDNBOTswM0E5OworMUQ3NkY7MUQ3NkY7MUQ3NkY7MjIwNzsyMjA3OworMUQ3NzA7MUQ3NzA7MUQ3NzA7MDNCMTswM0IxOworMUQ3NzE7MUQ3NzE7MUQ3NzE7MDNCMjswM0IyOworMUQ3NzI7MUQ3NzI7MUQ3NzI7MDNCMzswM0IzOworMUQ3NzM7MUQ3NzM7MUQ3NzM7MDNCNDswM0I0OworMUQ3NzQ7MUQ3NzQ7MUQ3NzQ7MDNCNTswM0I1OworMUQ3NzU7MUQ3NzU7MUQ3NzU7MDNCNjswM0I2OworMUQ3NzY7MUQ3NzY7MUQ3NzY7MDNCNzswM0I3OworMUQ3Nzc7MUQ3Nzc7MUQ3Nzc7MDNCODswM0I4OworMUQ3Nzg7MUQ3Nzg7MUQ3Nzg7MDNCOTswM0I5OworMUQ3Nzk7MUQ3Nzk7MUQ3Nzk7MDNCQTswM0JBOworMUQ3N0E7MUQ3N0E7MUQ3N0E7MDNCQjswM0JCOworMUQ3N0I7MUQ3N0I7MUQ3N0I7MDNCQzswM0JDOworMUQ3N0M7MUQ3N0M7MUQ3N0M7MDNCRDswM0JEOworMUQ3N0Q7MUQ3N0Q7MUQ3N0Q7MDNCRTswM0JFOworMUQ3N0U7MUQ3N0U7MUQ3N0U7MDNCRjswM0JGOworMUQ3N0Y7MUQ3N0Y7MUQ3N0Y7MDNDMDswM0MwOworMUQ3ODA7MUQ3ODA7MUQ3ODA7MDNDMTswM0MxOworMUQ3ODE7MUQ3ODE7MUQ3ODE7MDNDMjswM0MyOworMUQ3ODI7MUQ3ODI7MUQ3ODI7MDNDMzswM0MzOworMUQ3ODM7MUQ3ODM7MUQ3ODM7MDNDNDswM0M0OworMUQ3ODQ7MUQ3ODQ7MUQ3ODQ7MDNDNTswM0M1OworMUQ3ODU7MUQ3ODU7MUQ3ODU7MDNDNjswM0M2OworMUQ3ODY7MUQ3ODY7MUQ3ODY7MDNDNzswM0M3OworMUQ3ODc7MUQ3ODc7MUQ3ODc7MDNDODswM0M4OworMUQ3ODg7MUQ3ODg7MUQ3ODg7MDNDOTswM0M5OworMUQ3ODk7MUQ3ODk7MUQ3ODk7MjIwMjsyMjAyOworMUQ3OEE7MUQ3OEE7MUQ3OEE7MDNCNTswM0I1OworMUQ3OEI7MUQ3OEI7MUQ3OEI7MDNCODswM0I4OworMUQ3OEM7MUQ3OEM7MUQ3OEM7MDNCQTswM0JBOworMUQ3OEQ7MUQ3OEQ7MUQ3OEQ7MDNDNjswM0M2OworMUQ3OEU7MUQ3OEU7MUQ3OEU7MDNDMTswM0MxOworMUQ3OEY7MUQ3OEY7MUQ3OEY7MDNDMDswM0MwOworMUQ3OTA7MUQ3OTA7MUQ3OTA7MDM5MTswMzkxOworMUQ3OTE7MUQ3OTE7MUQ3OTE7MDM5MjswMzkyOworMUQ3OTI7MUQ3OTI7MUQ3OTI7MDM5MzswMzkzOworMUQ3OTM7MUQ3OTM7MUQ3OTM7MDM5NDswMzk0OworMUQ3OTQ7MUQ3OTQ7MUQ3OTQ7MDM5NTswMzk1OworMUQ3OTU7MUQ3OTU7MUQ3OTU7MDM5NjswMzk2OworMUQ3OTY7MUQ3OTY7MUQ3OTY7MDM5NzswMzk3OworMUQ3OTc7MUQ3OTc7MUQ3OTc7MDM5ODswMzk4OworMUQ3OTg7MUQ3OTg7MUQ3OTg7MDM5OTswMzk5OworMUQ3OTk7MUQ3OTk7MUQ3OTk7MDM5QTswMzlBOworMUQ3OUE7MUQ3OUE7MUQ3OUE7MDM5QjswMzlCOworMUQ3OUI7MUQ3OUI7MUQ3OUI7MDM5QzswMzlDOworMUQ3OUM7MUQ3OUM7MUQ3OUM7MDM5RDswMzlEOworMUQ3OUQ7MUQ3OUQ7MUQ3OUQ7MDM5RTswMzlFOworMUQ3OUU7MUQ3OUU7MUQ3OUU7MDM5RjswMzlGOworMUQ3OUY7MUQ3OUY7MUQ3OUY7MDNBMDswM0EwOworMUQ3QTA7MUQ3QTA7MUQ3QTA7MDNBMTswM0ExOworMUQ3QTE7MUQ3QTE7MUQ3QTE7MDM5ODswMzk4OworMUQ3QTI7MUQ3QTI7MUQ3QTI7MDNBMzswM0EzOworMUQ3QTM7MUQ3QTM7MUQ3QTM7MDNBNDswM0E0OworMUQ3QTQ7MUQ3QTQ7MUQ3QTQ7MDNBNTswM0E1OworMUQ3QTU7MUQ3QTU7MUQ3QTU7MDNBNjswM0E2OworMUQ3QTY7MUQ3QTY7MUQ3QTY7MDNBNzswM0E3OworMUQ3QTc7MUQ3QTc7MUQ3QTc7MDNBODswM0E4OworMUQ3QTg7MUQ3QTg7MUQ3QTg7MDNBOTswM0E5OworMUQ3QTk7MUQ3QTk7MUQ3QTk7MjIwNzsyMjA3OworMUQ3QUE7MUQ3QUE7MUQ3QUE7MDNCMTswM0IxOworMUQ3QUI7MUQ3QUI7MUQ3QUI7MDNCMjswM0IyOworMUQ3QUM7MUQ3QUM7MUQ3QUM7MDNCMzswM0IzOworMUQ3QUQ7MUQ3QUQ7MUQ3QUQ7MDNCNDswM0I0OworMUQ3QUU7MUQ3QUU7MUQ3QUU7MDNCNTswM0I1OworMUQ3QUY7MUQ3QUY7MUQ3QUY7MDNCNjswM0I2OworMUQ3QjA7MUQ3QjA7MUQ3QjA7MDNCNzswM0I3OworMUQ3QjE7MUQ3QjE7MUQ3QjE7MDNCODswM0I4OworMUQ3QjI7MUQ3QjI7MUQ3QjI7MDNCOTswM0I5OworMUQ3QjM7MUQ3QjM7MUQ3QjM7MDNCQTswM0JBOworMUQ3QjQ7MUQ3QjQ7MUQ3QjQ7MDNCQjswM0JCOworMUQ3QjU7MUQ3QjU7MUQ3QjU7MDNCQzswM0JDOworMUQ3QjY7MUQ3QjY7MUQ3QjY7MDNCRDswM0JEOworMUQ3Qjc7MUQ3Qjc7MUQ3Qjc7MDNCRTswM0JFOworMUQ3Qjg7MUQ3Qjg7MUQ3Qjg7MDNCRjswM0JGOworMUQ3Qjk7MUQ3Qjk7MUQ3Qjk7MDNDMDswM0MwOworMUQ3QkE7MUQ3QkE7MUQ3QkE7MDNDMTswM0MxOworMUQ3QkI7MUQ3QkI7MUQ3QkI7MDNDMjswM0MyOworMUQ3QkM7MUQ3QkM7MUQ3QkM7MDNDMzswM0MzOworMUQ3QkQ7MUQ3QkQ7MUQ3QkQ7MDNDNDswM0M0OworMUQ3QkU7MUQ3QkU7MUQ3QkU7MDNDNTswM0M1OworMUQ3QkY7MUQ3QkY7MUQ3QkY7MDNDNjswM0M2OworMUQ3QzA7MUQ3QzA7MUQ3QzA7MDNDNzswM0M3OworMUQ3QzE7MUQ3QzE7MUQ3QzE7MDNDODswM0M4OworMUQ3QzI7MUQ3QzI7MUQ3QzI7MDNDOTswM0M5OworMUQ3QzM7MUQ3QzM7MUQ3QzM7MjIwMjsyMjAyOworMUQ3QzQ7MUQ3QzQ7MUQ3QzQ7MDNCNTswM0I1OworMUQ3QzU7MUQ3QzU7MUQ3QzU7MDNCODswM0I4OworMUQ3QzY7MUQ3QzY7MUQ3QzY7MDNCQTswM0JBOworMUQ3Qzc7MUQ3Qzc7MUQ3Qzc7MDNDNjswM0M2OworMUQ3Qzg7MUQ3Qzg7MUQ3Qzg7MDNDMTswM0MxOworMUQ3Qzk7MUQ3Qzk7MUQ3Qzk7MDNDMDswM0MwOworMUQ3Q0U7MUQ3Q0U7MUQ3Q0U7MDAzMDswMDMwOworMUQ3Q0Y7MUQ3Q0Y7MUQ3Q0Y7MDAzMTswMDMxOworMUQ3RDA7MUQ3RDA7MUQ3RDA7MDAzMjswMDMyOworMUQ3RDE7MUQ3RDE7MUQ3RDE7MDAzMzswMDMzOworMUQ3RDI7MUQ3RDI7MUQ3RDI7MDAzNDswMDM0OworMUQ3RDM7MUQ3RDM7MUQ3RDM7MDAzNTswMDM1OworMUQ3RDQ7MUQ3RDQ7MUQ3RDQ7MDAzNjswMDM2OworMUQ3RDU7MUQ3RDU7MUQ3RDU7MDAzNzswMDM3OworMUQ3RDY7MUQ3RDY7MUQ3RDY7MDAzODswMDM4OworMUQ3RDc7MUQ3RDc7MUQ3RDc7MDAzOTswMDM5OworMUQ3RDg7MUQ3RDg7MUQ3RDg7MDAzMDswMDMwOworMUQ3RDk7MUQ3RDk7MUQ3RDk7MDAzMTswMDMxOworMUQ3REE7MUQ3REE7MUQ3REE7MDAzMjswMDMyOworMUQ3REI7MUQ3REI7MUQ3REI7MDAzMzswMDMzOworMUQ3REM7MUQ3REM7MUQ3REM7MDAzNDswMDM0OworMUQ3REQ7MUQ3REQ7MUQ3REQ7MDAzNTswMDM1OworMUQ3REU7MUQ3REU7MUQ3REU7MDAzNjswMDM2OworMUQ3REY7MUQ3REY7MUQ3REY7MDAzNzswMDM3OworMUQ3RTA7MUQ3RTA7MUQ3RTA7MDAzODswMDM4OworMUQ3RTE7MUQ3RTE7MUQ3RTE7MDAzOTswMDM5OworMUQ3RTI7MUQ3RTI7MUQ3RTI7MDAzMDswMDMwOworMUQ3RTM7MUQ3RTM7MUQ3RTM7MDAzMTswMDMxOworMUQ3RTQ7MUQ3RTQ7MUQ3RTQ7MDAzMjswMDMyOworMUQ3RTU7MUQ3RTU7MUQ3RTU7MDAzMzswMDMzOworMUQ3RTY7MUQ3RTY7MUQ3RTY7MDAzNDswMDM0OworMUQ3RTc7MUQ3RTc7MUQ3RTc7MDAzNTswMDM1OworMUQ3RTg7MUQ3RTg7MUQ3RTg7MDAzNjswMDM2OworMUQ3RTk7MUQ3RTk7MUQ3RTk7MDAzNzswMDM3OworMUQ3RUE7MUQ3RUE7MUQ3RUE7MDAzODswMDM4OworMUQ3RUI7MUQ3RUI7MUQ3RUI7MDAzOTswMDM5OworMUQ3RUM7MUQ3RUM7MUQ3RUM7MDAzMDswMDMwOworMUQ3RUQ7MUQ3RUQ7MUQ3RUQ7MDAzMTswMDMxOworMUQ3RUU7MUQ3RUU7MUQ3RUU7MDAzMjswMDMyOworMUQ3RUY7MUQ3RUY7MUQ3RUY7MDAzMzswMDMzOworMUQ3RjA7MUQ3RjA7MUQ3RjA7MDAzNDswMDM0OworMUQ3RjE7MUQ3RjE7MUQ3RjE7MDAzNTswMDM1OworMUQ3RjI7MUQ3RjI7MUQ3RjI7MDAzNjswMDM2OworMUQ3RjM7MUQ3RjM7MUQ3RjM7MDAzNzswMDM3OworMUQ3RjQ7MUQ3RjQ7MUQ3RjQ7MDAzODswMDM4OworMUQ3RjU7MUQ3RjU7MUQ3RjU7MDAzOTswMDM5OworMUQ3RjY7MUQ3RjY7MUQ3RjY7MDAzMDswMDMwOworMUQ3Rjc7MUQ3Rjc7MUQ3Rjc7MDAzMTswMDMxOworMUQ3Rjg7MUQ3Rjg7MUQ3Rjg7MDAzMjswMDMyOworMUQ3Rjk7MUQ3Rjk7MUQ3Rjk7MDAzMzswMDMzOworMUQ3RkE7MUQ3RkE7MUQ3RkE7MDAzNDswMDM0OworMUQ3RkI7MUQ3RkI7MUQ3RkI7MDAzNTswMDM1OworMUQ3RkM7MUQ3RkM7MUQ3RkM7MDAzNjswMDM2OworMUQ3RkQ7MUQ3RkQ7MUQ3RkQ7MDAzNzswMDM3OworMUQ3RkU7MUQ3RkU7MUQ3RkU7MDAzODswMDM4OworMUQ3RkY7MUQ3RkY7MUQ3RkY7MDAzOTswMDM5OworMkY4MDA7NEUzRDs0RTNEOzRFM0Q7NEUzRDsKKzJGODAxOzRFMzg7NEUzODs0RTM4OzRFMzg7CisyRjgwMjs0RTQxOzRFNDE7NEU0MTs0RTQxOworMkY4MDM7MjAxMjI7MjAxMjI7MjAxMjI7MjAxMjI7CisyRjgwNDs0RjYwOzRGNjA7NEY2MDs0RjYwOworMkY4MDU7NEZBRTs0RkFFOzRGQUU7NEZBRTsKKzJGODA2OzRGQkI7NEZCQjs0RkJCOzRGQkI7CisyRjgwNzs1MDAyOzUwMDI7NTAwMjs1MDAyOworMkY4MDg7NTA3QTs1MDdBOzUwN0E7NTA3QTsKKzJGODA5OzUwOTk7NTA5OTs1MDk5OzUwOTk7CisyRjgwQTs1MEU3OzUwRTc7NTBFNzs1MEU3OworMkY4MEI7NTBDRjs1MENGOzUwQ0Y7NTBDRjsKKzJGODBDOzM0OUU7MzQ5RTszNDlFOzM0OUU7CisyRjgwRDsyMDYzQTsyMDYzQTsyMDYzQTsyMDYzQTsKKzJGODBFOzUxNEQ7NTE0RDs1MTREOzUxNEQ7CisyRjgwRjs1MTU0OzUxNTQ7NTE1NDs1MTU0OworMkY4MTA7NTE2NDs1MTY0OzUxNjQ7NTE2NDsKKzJGODExOzUxNzc7NTE3Nzs1MTc3OzUxNzc7CisyRjgxMjsyMDUxQzsyMDUxQzsyMDUxQzsyMDUxQzsKKzJGODEzOzM0Qjk7MzRCOTszNEI5OzM0Qjk7CisyRjgxNDs1MTY3OzUxNjc7NTE2Nzs1MTY3OworMkY4MTU7NTE4RDs1MThEOzUxOEQ7NTE4RDsKKzJGODE2OzIwNTRCOzIwNTRCOzIwNTRCOzIwNTRCOworMkY4MTc7NTE5Nzs1MTk3OzUxOTc7NTE5NzsKKzJGODE4OzUxQTQ7NTFBNDs1MUE0OzUxQTQ7CisyRjgxOTs0RUNDOzRFQ0M7NEVDQzs0RUNDOworMkY4MUE7NTFBQzs1MUFDOzUxQUM7NTFBQzsKKzJGODFCOzUxQjU7NTFCNTs1MUI1OzUxQjU7CisyRjgxQzsyOTFERjsyOTFERjsyOTFERjsyOTFERjsKKzJGODFEOzUxRjU7NTFGNTs1MUY1OzUxRjU7CisyRjgxRTs1MjAzOzUyMDM7NTIwMzs1MjAzOworMkY4MUY7MzRERjszNERGOzM0REY7MzRERjsKKzJGODIwOzUyM0I7NTIzQjs1MjNCOzUyM0I7CisyRjgyMTs1MjQ2OzUyNDY7NTI0Njs1MjQ2OworMkY4MjI7NTI3Mjs1MjcyOzUyNzI7NTI3MjsKKzJGODIzOzUyNzc7NTI3Nzs1Mjc3OzUyNzc7CisyRjgyNDszNTE1OzM1MTU7MzUxNTszNTE1OworMkY4MjU7NTJDNzs1MkM3OzUyQzc7NTJDNzsKKzJGODI2OzUyQzk7NTJDOTs1MkM5OzUyQzk7CisyRjgyNzs1MkU0OzUyRTQ7NTJFNDs1MkU0OworMkY4Mjg7NTJGQTs1MkZBOzUyRkE7NTJGQTsKKzJGODI5OzUzMDU7NTMwNTs1MzA1OzUzMDU7CisyRjgyQTs1MzA2OzUzMDY7NTMwNjs1MzA2OworMkY4MkI7NTMxNzs1MzE3OzUzMTc7NTMxNzsKKzJGODJDOzUzNDk7NTM0OTs1MzQ5OzUzNDk7CisyRjgyRDs1MzUxOzUzNTE7NTM1MTs1MzUxOworMkY4MkU7NTM1QTs1MzVBOzUzNUE7NTM1QTsKKzJGODJGOzUzNzM7NTM3Mzs1MzczOzUzNzM7CisyRjgzMDs1MzdEOzUzN0Q7NTM3RDs1MzdEOworMkY4MzE7NTM3Rjs1MzdGOzUzN0Y7NTM3RjsKKzJGODMyOzUzN0Y7NTM3Rjs1MzdGOzUzN0Y7CisyRjgzMzs1MzdGOzUzN0Y7NTM3Rjs1MzdGOworMkY4MzQ7MjBBMkM7MjBBMkM7MjBBMkM7MjBBMkM7CisyRjgzNTs3MDcwOzcwNzA7NzA3MDs3MDcwOworMkY4MzY7NTNDQTs1M0NBOzUzQ0E7NTNDQTsKKzJGODM3OzUzREY7NTNERjs1M0RGOzUzREY7CisyRjgzODsyMEI2MzsyMEI2MzsyMEI2MzsyMEI2MzsKKzJGODM5OzUzRUI7NTNFQjs1M0VCOzUzRUI7CisyRjgzQTs1M0YxOzUzRjE7NTNGMTs1M0YxOworMkY4M0I7NTQwNjs1NDA2OzU0MDY7NTQwNjsKKzJGODNDOzU0OUU7NTQ5RTs1NDlFOzU0OUU7CisyRjgzRDs1NDM4OzU0Mzg7NTQzODs1NDM4OworMkY4M0U7NTQ0ODs1NDQ4OzU0NDg7NTQ0ODsKKzJGODNGOzU0Njg7NTQ2ODs1NDY4OzU0Njg7CisyRjg0MDs1NEEyOzU0QTI7NTRBMjs1NEEyOworMkY4NDE7NTRGNjs1NEY2OzU0RjY7NTRGNjsKKzJGODQyOzU1MTA7NTUxMDs1NTEwOzU1MTA7CisyRjg0Mzs1NTUzOzU1NTM7NTU1Mzs1NTUzOworMkY4NDQ7NTU2Mzs1NTYzOzU1NjM7NTU2MzsKKzJGODQ1OzU1ODQ7NTU4NDs1NTg0OzU1ODQ7CisyRjg0Njs1NTg0OzU1ODQ7NTU4NDs1NTg0OworMkY4NDc7NTU5OTs1NTk5OzU1OTk7NTU5OTsKKzJGODQ4OzU1QUI7NTVBQjs1NUFCOzU1QUI7CisyRjg0OTs1NUIzOzU1QjM7NTVCMzs1NUIzOworMkY4NEE7NTVDMjs1NUMyOzU1QzI7NTVDMjsKKzJGODRCOzU3MTY7NTcxNjs1NzE2OzU3MTY7CisyRjg0Qzs1NjA2OzU2MDY7NTYwNjs1NjA2OworMkY4NEQ7NTcxNzs1NzE3OzU3MTc7NTcxNzsKKzJGODRFOzU2NTE7NTY1MTs1NjUxOzU2NTE7CisyRjg0Rjs1Njc0OzU2NzQ7NTY3NDs1Njc0OworMkY4NTA7NTIwNzs1MjA3OzUyMDc7NTIwNzsKKzJGODUxOzU4RUU7NThFRTs1OEVFOzU4RUU7CisyRjg1Mjs1N0NFOzU3Q0U7NTdDRTs1N0NFOworMkY4NTM7NTdGNDs1N0Y0OzU3RjQ7NTdGNDsKKzJGODU0OzU4MEQ7NTgwRDs1ODBEOzU4MEQ7CisyRjg1NTs1NzhCOzU3OEI7NTc4Qjs1NzhCOworMkY4NTY7NTgzMjs1ODMyOzU4MzI7NTgzMjsKKzJGODU3OzU4MzE7NTgzMTs1ODMxOzU4MzE7CisyRjg1ODs1OEFDOzU4QUM7NThBQzs1OEFDOworMkY4NTk7MjE0RTQ7MjE0RTQ7MjE0RTQ7MjE0RTQ7CisyRjg1QTs1OEYyOzU4RjI7NThGMjs1OEYyOworMkY4NUI7NThGNzs1OEY3OzU4Rjc7NThGNzsKKzJGODVDOzU5MDY7NTkwNjs1OTA2OzU5MDY7CisyRjg1RDs1OTFBOzU5MUE7NTkxQTs1OTFBOworMkY4NUU7NTkyMjs1OTIyOzU5MjI7NTkyMjsKKzJGODVGOzU5NjI7NTk2Mjs1OTYyOzU5NjI7CisyRjg2MDsyMTZBODsyMTZBODsyMTZBODsyMTZBODsKKzJGODYxOzIxNkVBOzIxNkVBOzIxNkVBOzIxNkVBOworMkY4NjI7NTlFQzs1OUVDOzU5RUM7NTlFQzsKKzJGODYzOzVBMUI7NUExQjs1QTFCOzVBMUI7CisyRjg2NDs1QTI3OzVBMjc7NUEyNzs1QTI3OworMkY4NjU7NTlEODs1OUQ4OzU5RDg7NTlEODsKKzJGODY2OzVBNjY7NUE2Njs1QTY2OzVBNjY7CisyRjg2NzszNkVFOzM2RUU7MzZFRTszNkVFOworMkY4Njg7MzZGQzszNkZDOzM2RkM7MzZGQzsKKzJGODY5OzVCMDg7NUIwODs1QjA4OzVCMDg7CisyRjg2QTs1QjNFOzVCM0U7NUIzRTs1QjNFOworMkY4NkI7NUIzRTs1QjNFOzVCM0U7NUIzRTsKKzJGODZDOzIxOUM4OzIxOUM4OzIxOUM4OzIxOUM4OworMkY4NkQ7NUJDMzs1QkMzOzVCQzM7NUJDMzsKKzJGODZFOzVCRDg7NUJEODs1QkQ4OzVCRDg7CisyRjg2Rjs1QkU3OzVCRTc7NUJFNzs1QkU3OworMkY4NzA7NUJGMzs1QkYzOzVCRjM7NUJGMzsKKzJGODcxOzIxQjE4OzIxQjE4OzIxQjE4OzIxQjE4OworMkY4NzI7NUJGRjs1QkZGOzVCRkY7NUJGRjsKKzJGODczOzVDMDY7NUMwNjs1QzA2OzVDMDY7CisyRjg3NDs1RjUzOzVGNTM7NUY1Mzs1RjUzOworMkY4NzU7NUMyMjs1QzIyOzVDMjI7NUMyMjsKKzJGODc2OzM3ODE7Mzc4MTszNzgxOzM3ODE7CisyRjg3Nzs1QzYwOzVDNjA7NUM2MDs1QzYwOworMkY4Nzg7NUM2RTs1QzZFOzVDNkU7NUM2RTsKKzJGODc5OzVDQzA7NUNDMDs1Q0MwOzVDQzA7CisyRjg3QTs1QzhEOzVDOEQ7NUM4RDs1QzhEOworMkY4N0I7MjFERTQ7MjFERTQ7MjFERTQ7MjFERTQ7CisyRjg3Qzs1RDQzOzVENDM7NUQ0Mzs1RDQzOworMkY4N0Q7MjFERTY7MjFERTY7MjFERTY7MjFERTY7CisyRjg3RTs1RDZFOzVENkU7NUQ2RTs1RDZFOworMkY4N0Y7NUQ2Qjs1RDZCOzVENkI7NUQ2QjsKKzJGODgwOzVEN0M7NUQ3Qzs1RDdDOzVEN0M7CisyRjg4MTs1REUxOzVERTE7NURFMTs1REUxOworMkY4ODI7NURFMjs1REUyOzVERTI7NURFMjsKKzJGODgzOzM4MkY7MzgyRjszODJGOzM4MkY7CisyRjg4NDs1REZEOzVERkQ7NURGRDs1REZEOworMkY4ODU7NUUyODs1RTI4OzVFMjg7NUUyODsKKzJGODg2OzVFM0Q7NUUzRDs1RTNEOzVFM0Q7CisyRjg4Nzs1RTY5OzVFNjk7NUU2OTs1RTY5OworMkY4ODg7Mzg2MjszODYyOzM4NjI7Mzg2MjsKKzJGODg5OzIyMTgzOzIyMTgzOzIyMTgzOzIyMTgzOworMkY4OEE7Mzg3QzszODdDOzM4N0M7Mzg3QzsKKzJGODhCOzVFQjA7NUVCMDs1RUIwOzVFQjA7CisyRjg4Qzs1RUIzOzVFQjM7NUVCMzs1RUIzOworMkY4OEQ7NUVCNjs1RUI2OzVFQjY7NUVCNjsKKzJGODhFOzVFQ0E7NUVDQTs1RUNBOzVFQ0E7CisyRjg4RjsyQTM5MjsyQTM5MjsyQTM5MjsyQTM5MjsKKzJGODkwOzVFRkU7NUVGRTs1RUZFOzVFRkU7CisyRjg5MTsyMjMzMTsyMjMzMTsyMjMzMTsyMjMzMTsKKzJGODkyOzIyMzMxOzIyMzMxOzIyMzMxOzIyMzMxOworMkY4OTM7ODIwMTs4MjAxOzgyMDE7ODIwMTsKKzJGODk0OzVGMjI7NUYyMjs1RjIyOzVGMjI7CisyRjg5NTs1RjIyOzVGMjI7NUYyMjs1RjIyOworMkY4OTY7MzhDNzszOEM3OzM4Qzc7MzhDNzsKKzJGODk3OzIzMkI4OzIzMkI4OzIzMkI4OzIzMkI4OworMkY4OTg7MjYxREE7MjYxREE7MjYxREE7MjYxREE7CisyRjg5OTs1RjYyOzVGNjI7NUY2Mjs1RjYyOworMkY4OUE7NUY2Qjs1RjZCOzVGNkI7NUY2QjsKKzJGODlCOzM4RTM7MzhFMzszOEUzOzM4RTM7CisyRjg5Qzs1RjlBOzVGOUE7NUY5QTs1RjlBOworMkY4OUQ7NUZDRDs1RkNEOzVGQ0Q7NUZDRDsKKzJGODlFOzVGRDc7NUZENzs1RkQ3OzVGRDc7CisyRjg5Rjs1RkY5OzVGRjk7NUZGOTs1RkY5OworMkY4QTA7NjA4MTs2MDgxOzYwODE7NjA4MTsKKzJGOEExOzM5M0E7MzkzQTszOTNBOzM5M0E7CisyRjhBMjszOTFDOzM5MUM7MzkxQzszOTFDOworMkY4QTM7NjA5NDs2MDk0OzYwOTQ7NjA5NDsKKzJGOEE0OzIyNkQ0OzIyNkQ0OzIyNkQ0OzIyNkQ0OworMkY4QTU7NjBDNzs2MEM3OzYwQzc7NjBDNzsKKzJGOEE2OzYxNDg7NjE0ODs2MTQ4OzYxNDg7CisyRjhBNzs2MTRDOzYxNEM7NjE0Qzs2MTRDOworMkY4QTg7NjE0RTs2MTRFOzYxNEU7NjE0RTsKKzJGOEE5OzYxNEM7NjE0Qzs2MTRDOzYxNEM7CisyRjhBQTs2MTdBOzYxN0E7NjE3QTs2MTdBOworMkY4QUI7NjE4RTs2MThFOzYxOEU7NjE4RTsKKzJGOEFDOzYxQjI7NjFCMjs2MUIyOzYxQjI7CisyRjhBRDs2MUE0OzYxQTQ7NjFBNDs2MUE0OworMkY4QUU7NjFBRjs2MUFGOzYxQUY7NjFBRjsKKzJGOEFGOzYxREU7NjFERTs2MURFOzYxREU7CisyRjhCMDs2MUYyOzYxRjI7NjFGMjs2MUYyOworMkY4QjE7NjFGNjs2MUY2OzYxRjY7NjFGNjsKKzJGOEIyOzYyMTA7NjIxMDs2MjEwOzYyMTA7CisyRjhCMzs2MjFCOzYyMUI7NjIxQjs2MjFCOworMkY4QjQ7NjI1RDs2MjVEOzYyNUQ7NjI1RDsKKzJGOEI1OzYyQjE7NjJCMTs2MkIxOzYyQjE7CisyRjhCNjs2MkQ0OzYyRDQ7NjJENDs2MkQ0OworMkY4Qjc7NjM1MDs2MzUwOzYzNTA7NjM1MDsKKzJGOEI4OzIyQjBDOzIyQjBDOzIyQjBDOzIyQjBDOworMkY4Qjk7NjMzRDs2MzNEOzYzM0Q7NjMzRDsKKzJGOEJBOzYyRkM7NjJGQzs2MkZDOzYyRkM7CisyRjhCQjs2MzY4OzYzNjg7NjM2ODs2MzY4OworMkY4QkM7NjM4Mzs2MzgzOzYzODM7NjM4MzsKKzJGOEJEOzYzRTQ7NjNFNDs2M0U0OzYzRTQ7CisyRjhCRTsyMkJGMTsyMkJGMTsyMkJGMTsyMkJGMTsKKzJGOEJGOzY0MjI7NjQyMjs2NDIyOzY0MjI7CisyRjhDMDs2M0M1OzYzQzU7NjNDNTs2M0M1OworMkY4QzE7NjNBOTs2M0E5OzYzQTk7NjNBOTsKKzJGOEMyOzNBMkU7M0EyRTszQTJFOzNBMkU7CisyRjhDMzs2NDY5OzY0Njk7NjQ2OTs2NDY5OworMkY4QzQ7NjQ3RTs2NDdFOzY0N0U7NjQ3RTsKKzJGOEM1OzY0OUQ7NjQ5RDs2NDlEOzY0OUQ7CisyRjhDNjs2NDc3OzY0Nzc7NjQ3Nzs2NDc3OworMkY4Qzc7M0E2QzszQTZDOzNBNkM7M0E2QzsKKzJGOEM4OzY1NEY7NjU0Rjs2NTRGOzY1NEY7CisyRjhDOTs2NTZDOzY1NkM7NjU2Qzs2NTZDOworMkY4Q0E7MjMwMEE7MjMwMEE7MjMwMEE7MjMwMEE7CisyRjhDQjs2NUUzOzY1RTM7NjVFMzs2NUUzOworMkY4Q0M7NjZGODs2NkY4OzY2Rjg7NjZGODsKKzJGOENEOzY2NDk7NjY0OTs2NjQ5OzY2NDk7CisyRjhDRTszQjE5OzNCMTk7M0IxOTszQjE5OworMkY4Q0Y7NjY5MTs2NjkxOzY2OTE7NjY5MTsKKzJGOEQwOzNCMDg7M0IwODszQjA4OzNCMDg7CisyRjhEMTszQUU0OzNBRTQ7M0FFNDszQUU0OworMkY4RDI7NTE5Mjs1MTkyOzUxOTI7NTE5MjsKKzJGOEQzOzUxOTU7NTE5NTs1MTk1OzUxOTU7CisyRjhENDs2NzAwOzY3MDA7NjcwMDs2NzAwOworMkY4RDU7NjY5Qzs2NjlDOzY2OUM7NjY5QzsKKzJGOEQ2OzgwQUQ7ODBBRDs4MEFEOzgwQUQ7CisyRjhENzs0M0Q5OzQzRDk7NDNEOTs0M0Q5OworMkY4RDg7NjcxNzs2NzE3OzY3MTc7NjcxNzsKKzJGOEQ5OzY3MUI7NjcxQjs2NzFCOzY3MUI7CisyRjhEQTs2NzIxOzY3MjE7NjcyMTs2NzIxOworMkY4REI7Njc1RTs2NzVFOzY3NUU7Njc1RTsKKzJGOERDOzY3NTM7Njc1Mzs2NzUzOzY3NTM7CisyRjhERDsyMzNDMzsyMzNDMzsyMzNDMzsyMzNDMzsKKzJGOERFOzNCNDk7M0I0OTszQjQ5OzNCNDk7CisyRjhERjs2N0ZBOzY3RkE7NjdGQTs2N0ZBOworMkY4RTA7Njc4NTs2Nzg1OzY3ODU7Njc4NTsKKzJGOEUxOzY4NTI7Njg1Mjs2ODUyOzY4NTI7CisyRjhFMjs2ODg1OzY4ODU7Njg4NTs2ODg1OworMkY4RTM7MjM0NkQ7MjM0NkQ7MjM0NkQ7MjM0NkQ7CisyRjhFNDs2ODhFOzY4OEU7Njg4RTs2ODhFOworMkY4RTU7NjgxRjs2ODFGOzY4MUY7NjgxRjsKKzJGOEU2OzY5MTQ7NjkxNDs2OTE0OzY5MTQ7CisyRjhFNzszQjlEOzNCOUQ7M0I5RDszQjlEOworMkY4RTg7Njk0Mjs2OTQyOzY5NDI7Njk0MjsKKzJGOEU5OzY5QTM7NjlBMzs2OUEzOzY5QTM7CisyRjhFQTs2OUVBOzY5RUE7NjlFQTs2OUVBOworMkY4RUI7NkFBODs2QUE4OzZBQTg7NkFBODsKKzJGOEVDOzIzNkEzOzIzNkEzOzIzNkEzOzIzNkEzOworMkY4RUQ7NkFEQjs2QURCOzZBREI7NkFEQjsKKzJGOEVFOzNDMTg7M0MxODszQzE4OzNDMTg7CisyRjhFRjs2QjIxOzZCMjE7NkIyMTs2QjIxOworMkY4RjA7MjM4QTc7MjM4QTc7MjM4QTc7MjM4QTc7CisyRjhGMTs2QjU0OzZCNTQ7NkI1NDs2QjU0OworMkY4RjI7M0M0RTszQzRFOzNDNEU7M0M0RTsKKzJGOEYzOzZCNzI7NkI3Mjs2QjcyOzZCNzI7CisyRjhGNDs2QjlGOzZCOUY7NkI5Rjs2QjlGOworMkY4RjU7NkJCQTs2QkJBOzZCQkE7NkJCQTsKKzJGOEY2OzZCQkI7NkJCQjs2QkJCOzZCQkI7CisyRjhGNzsyM0E4RDsyM0E4RDsyM0E4RDsyM0E4RDsKKzJGOEY4OzIxRDBCOzIxRDBCOzIxRDBCOzIxRDBCOworMkY4Rjk7MjNBRkE7MjNBRkE7MjNBRkE7MjNBRkE7CisyRjhGQTs2QzRFOzZDNEU7NkM0RTs2QzRFOworMkY4RkI7MjNDQkM7MjNDQkM7MjNDQkM7MjNDQkM7CisyRjhGQzs2Q0JGOzZDQkY7NkNCRjs2Q0JGOworMkY4RkQ7NkNDRDs2Q0NEOzZDQ0Q7NkNDRDsKKzJGOEZFOzZDNjc7NkM2Nzs2QzY3OzZDNjc7CisyRjhGRjs2RDE2OzZEMTY7NkQxNjs2RDE2OworMkY5MDA7NkQzRTs2RDNFOzZEM0U7NkQzRTsKKzJGOTAxOzZENzc7NkQ3Nzs2RDc3OzZENzc7CisyRjkwMjs2RDQxOzZENDE7NkQ0MTs2RDQxOworMkY5MDM7NkQ2OTs2RDY5OzZENjk7NkQ2OTsKKzJGOTA0OzZENzg7NkQ3ODs2RDc4OzZENzg7CisyRjkwNTs2RDg1OzZEODU7NkQ4NTs2RDg1OworMkY5MDY7MjNEMUU7MjNEMUU7MjNEMUU7MjNEMUU7CisyRjkwNzs2RDM0OzZEMzQ7NkQzNDs2RDM0OworMkY5MDg7NkUyRjs2RTJGOzZFMkY7NkUyRjsKKzJGOTA5OzZFNkU7NkU2RTs2RTZFOzZFNkU7CisyRjkwQTszRDMzOzNEMzM7M0QzMzszRDMzOworMkY5MEI7NkVDQjs2RUNCOzZFQ0I7NkVDQjsKKzJGOTBDOzZFQzc7NkVDNzs2RUM3OzZFQzc7CisyRjkwRDsyM0VEMTsyM0VEMTsyM0VEMTsyM0VEMTsKKzJGOTBFOzZERjk7NkRGOTs2REY5OzZERjk7CisyRjkwRjs2RjZFOzZGNkU7NkY2RTs2RjZFOworMkY5MTA7MjNGNUU7MjNGNUU7MjNGNUU7MjNGNUU7CisyRjkxMTsyM0Y4RTsyM0Y4RTsyM0Y4RTsyM0Y4RTsKKzJGOTEyOzZGQzY7NkZDNjs2RkM2OzZGQzY7CisyRjkxMzs3MDM5OzcwMzk7NzAzOTs3MDM5OworMkY5MTQ7NzAxRTs3MDFFOzcwMUU7NzAxRTsKKzJGOTE1OzcwMUI7NzAxQjs3MDFCOzcwMUI7CisyRjkxNjszRDk2OzNEOTY7M0Q5NjszRDk2OworMkY5MTc7NzA0QTs3MDRBOzcwNEE7NzA0QTsKKzJGOTE4OzcwN0Q7NzA3RDs3MDdEOzcwN0Q7CisyRjkxOTs3MDc3OzcwNzc7NzA3Nzs3MDc3OworMkY5MUE7NzBBRDs3MEFEOzcwQUQ7NzBBRDsKKzJGOTFCOzIwNTI1OzIwNTI1OzIwNTI1OzIwNTI1OworMkY5MUM7NzE0NTs3MTQ1OzcxNDU7NzE0NTsKKzJGOTFEOzI0MjYzOzI0MjYzOzI0MjYzOzI0MjYzOworMkY5MUU7NzE5Qzs3MTlDOzcxOUM7NzE5QzsKKzJGOTFGOzI0M0FCOzI0M0FCOzI0M0FCOzI0M0FCOworMkY5MjA7NzIyODs3MjI4OzcyMjg7NzIyODsKKzJGOTIxOzcyMzU7NzIzNTs3MjM1OzcyMzU7CisyRjkyMjs3MjUwOzcyNTA7NzI1MDs3MjUwOworMkY5MjM7MjQ2MDg7MjQ2MDg7MjQ2MDg7MjQ2MDg7CisyRjkyNDs3MjgwOzcyODA7NzI4MDs3MjgwOworMkY5MjU7NzI5NTs3Mjk1OzcyOTU7NzI5NTsKKzJGOTI2OzI0NzM1OzI0NzM1OzI0NzM1OzI0NzM1OworMkY5Mjc7MjQ4MTQ7MjQ4MTQ7MjQ4MTQ7MjQ4MTQ7CisyRjkyODs3MzdBOzczN0E7NzM3QTs3MzdBOworMkY5Mjk7NzM4Qjs3MzhCOzczOEI7NzM4QjsKKzJGOTJBOzNFQUM7M0VBQzszRUFDOzNFQUM7CisyRjkyQjs3M0E1OzczQTU7NzNBNTs3M0E1OworMkY5MkM7M0VCODszRUI4OzNFQjg7M0VCODsKKzJGOTJEOzNFQjg7M0VCODszRUI4OzNFQjg7CisyRjkyRTs3NDQ3Ozc0NDc7NzQ0Nzs3NDQ3OworMkY5MkY7NzQ1Qzs3NDVDOzc0NUM7NzQ1QzsKKzJGOTMwOzc0NzE7NzQ3MTs3NDcxOzc0NzE7CisyRjkzMTs3NDg1Ozc0ODU7NzQ4NTs3NDg1OworMkY5MzI7NzRDQTs3NENBOzc0Q0E7NzRDQTsKKzJGOTMzOzNGMUI7M0YxQjszRjFCOzNGMUI7CisyRjkzNDs3NTI0Ozc1MjQ7NzUyNDs3NTI0OworMkY5MzU7MjRDMzY7MjRDMzY7MjRDMzY7MjRDMzY7CisyRjkzNjs3NTNFOzc1M0U7NzUzRTs3NTNFOworMkY5Mzc7MjRDOTI7MjRDOTI7MjRDOTI7MjRDOTI7CisyRjkzODs3NTcwOzc1NzA7NzU3MDs3NTcwOworMkY5Mzk7MjIxOUY7MjIxOUY7MjIxOUY7MjIxOUY7CisyRjkzQTs3NjEwOzc2MTA7NzYxMDs3NjEwOworMkY5M0I7MjRGQTE7MjRGQTE7MjRGQTE7MjRGQTE7CisyRjkzQzsyNEZCODsyNEZCODsyNEZCODsyNEZCODsKKzJGOTNEOzI1MDQ0OzI1MDQ0OzI1MDQ0OzI1MDQ0OworMkY5M0U7M0ZGQzszRkZDOzNGRkM7M0ZGQzsKKzJGOTNGOzQwMDg7NDAwODs0MDA4OzQwMDg7CisyRjk0MDs3NkY0Ozc2RjQ7NzZGNDs3NkY0OworMkY5NDE7MjUwRjM7MjUwRjM7MjUwRjM7MjUwRjM7CisyRjk0MjsyNTBGMjsyNTBGMjsyNTBGMjsyNTBGMjsKKzJGOTQzOzI1MTE5OzI1MTE5OzI1MTE5OzI1MTE5OworMkY5NDQ7MjUxMzM7MjUxMzM7MjUxMzM7MjUxMzM7CisyRjk0NTs3NzFFOzc3MUU7NzcxRTs3NzFFOworMkY5NDY7NzcxRjs3NzFGOzc3MUY7NzcxRjsKKzJGOTQ3Ozc3MUY7NzcxRjs3NzFGOzc3MUY7CisyRjk0ODs3NzRBOzc3NEE7Nzc0QTs3NzRBOworMkY5NDk7NDAzOTs0MDM5OzQwMzk7NDAzOTsKKzJGOTRBOzc3OEI7Nzc4Qjs3NzhCOzc3OEI7CisyRjk0Qjs0MDQ2OzQwNDY7NDA0Njs0MDQ2OworMkY5NEM7NDA5Njs0MDk2OzQwOTY7NDA5NjsKKzJGOTREOzI1NDFEOzI1NDFEOzI1NDFEOzI1NDFEOworMkY5NEU7Nzg0RTs3ODRFOzc4NEU7Nzg0RTsKKzJGOTRGOzc4OEM7Nzg4Qzs3ODhDOzc4OEM7CisyRjk1MDs3OENDOzc4Q0M7NzhDQzs3OENDOworMkY5NTE7NDBFMzs0MEUzOzQwRTM7NDBFMzsKKzJGOTUyOzI1NjI2OzI1NjI2OzI1NjI2OzI1NjI2OworMkY5NTM7Nzk1Njs3OTU2Ozc5NTY7Nzk1NjsKKzJGOTU0OzI1NjlBOzI1NjlBOzI1NjlBOzI1NjlBOworMkY5NTU7MjU2QzU7MjU2QzU7MjU2QzU7MjU2QzU7CisyRjk1Njs3OThGOzc5OEY7Nzk4Rjs3OThGOworMkY5NTc7NzlFQjs3OUVCOzc5RUI7NzlFQjsKKzJGOTU4OzQxMkY7NDEyRjs0MTJGOzQxMkY7CisyRjk1OTs3QTQwOzdBNDA7N0E0MDs3QTQwOworMkY5NUE7N0E0QTs3QTRBOzdBNEE7N0E0QTsKKzJGOTVCOzdBNEY7N0E0Rjs3QTRGOzdBNEY7CisyRjk1QzsyNTk3QzsyNTk3QzsyNTk3QzsyNTk3QzsKKzJGOTVEOzI1QUE3OzI1QUE3OzI1QUE3OzI1QUE3OworMkY5NUU7MjVBQTc7MjVBQTc7MjVBQTc7MjVBQTc7CisyRjk1Rjs3QUVFOzdBRUU7N0FFRTs3QUVFOworMkY5NjA7NDIwMjs0MjAyOzQyMDI7NDIwMjsKKzJGOTYxOzI1QkFCOzI1QkFCOzI1QkFCOzI1QkFCOworMkY5NjI7N0JDNjs3QkM2OzdCQzY7N0JDNjsKKzJGOTYzOzdCQzk7N0JDOTs3QkM5OzdCQzk7CisyRjk2NDs0MjI3OzQyMjc7NDIyNzs0MjI3OworMkY5NjU7MjVDODA7MjVDODA7MjVDODA7MjVDODA7CisyRjk2Njs3Q0QyOzdDRDI7N0NEMjs3Q0QyOworMkY5Njc7NDJBMDs0MkEwOzQyQTA7NDJBMDsKKzJGOTY4OzdDRTg7N0NFODs3Q0U4OzdDRTg7CisyRjk2OTs3Q0UzOzdDRTM7N0NFMzs3Q0UzOworMkY5NkE7N0QwMDs3RDAwOzdEMDA7N0QwMDsKKzJGOTZCOzI1Rjg2OzI1Rjg2OzI1Rjg2OzI1Rjg2OworMkY5NkM7N0Q2Mzs3RDYzOzdENjM7N0Q2MzsKKzJGOTZEOzQzMDE7NDMwMTs0MzAxOzQzMDE7CisyRjk2RTs3REM3OzdEQzc7N0RDNzs3REM3OworMkY5NkY7N0UwMjs3RTAyOzdFMDI7N0UwMjsKKzJGOTcwOzdFNDU7N0U0NTs3RTQ1OzdFNDU7CisyRjk3MTs0MzM0OzQzMzQ7NDMzNDs0MzM0OworMkY5NzI7MjYyMjg7MjYyMjg7MjYyMjg7MjYyMjg7CisyRjk3MzsyNjI0NzsyNjI0NzsyNjI0NzsyNjI0NzsKKzJGOTc0OzQzNTk7NDM1OTs0MzU5OzQzNTk7CisyRjk3NTsyNjJEOTsyNjJEOTsyNjJEOTsyNjJEOTsKKzJGOTc2OzdGN0E7N0Y3QTs3RjdBOzdGN0E7CisyRjk3NzsyNjMzRTsyNjMzRTsyNjMzRTsyNjMzRTsKKzJGOTc4OzdGOTU7N0Y5NTs3Rjk1OzdGOTU7CisyRjk3OTs3RkZBOzdGRkE7N0ZGQTs3RkZBOworMkY5N0E7ODAwNTs4MDA1OzgwMDU7ODAwNTsKKzJGOTdCOzI2NERBOzI2NERBOzI2NERBOzI2NERBOworMkY5N0M7MjY1MjM7MjY1MjM7MjY1MjM7MjY1MjM7CisyRjk3RDs4MDYwOzgwNjA7ODA2MDs4MDYwOworMkY5N0U7MjY1QTg7MjY1QTg7MjY1QTg7MjY1QTg7CisyRjk3Rjs4MDcwOzgwNzA7ODA3MDs4MDcwOworMkY5ODA7MjMzNUY7MjMzNUY7MjMzNUY7MjMzNUY7CisyRjk4MTs0M0Q1OzQzRDU7NDNENTs0M0Q1OworMkY5ODI7ODBCMjs4MEIyOzgwQjI7ODBCMjsKKzJGOTgzOzgxMDM7ODEwMzs4MTAzOzgxMDM7CisyRjk4NDs0NDBCOzQ0MEI7NDQwQjs0NDBCOworMkY5ODU7ODEzRTs4MTNFOzgxM0U7ODEzRTsKKzJGOTg2OzVBQjU7NUFCNTs1QUI1OzVBQjU7CisyRjk4NzsyNjdBNzsyNjdBNzsyNjdBNzsyNjdBNzsKKzJGOTg4OzI2N0I1OzI2N0I1OzI2N0I1OzI2N0I1OworMkY5ODk7MjMzOTM7MjMzOTM7MjMzOTM7MjMzOTM7CisyRjk4QTsyMzM5QzsyMzM5QzsyMzM5QzsyMzM5QzsKKzJGOThCOzgyMDE7ODIwMTs4MjAxOzgyMDE7CisyRjk4Qzs4MjA0OzgyMDQ7ODIwNDs4MjA0OworMkY5OEQ7OEY5RTs4RjlFOzhGOUU7OEY5RTsKKzJGOThFOzQ0NkI7NDQ2Qjs0NDZCOzQ0NkI7CisyRjk4Rjs4MjkxOzgyOTE7ODI5MTs4MjkxOworMkY5OTA7ODI4Qjs4MjhCOzgyOEI7ODI4QjsKKzJGOTkxOzgyOUQ7ODI5RDs4MjlEOzgyOUQ7CisyRjk5Mjs1MkIzOzUyQjM7NTJCMzs1MkIzOworMkY5OTM7ODJCMTs4MkIxOzgyQjE7ODJCMTsKKzJGOTk0OzgyQjM7ODJCMzs4MkIzOzgyQjM7CisyRjk5NTs4MkJEOzgyQkQ7ODJCRDs4MkJEOworMkY5OTY7ODJFNjs4MkU2OzgyRTY7ODJFNjsKKzJGOTk3OzI2QjNDOzI2QjNDOzI2QjNDOzI2QjNDOworMkY5OTg7ODJFNTs4MkU1OzgyRTU7ODJFNTsKKzJGOTk5OzgzMUQ7ODMxRDs4MzFEOzgzMUQ7CisyRjk5QTs4MzYzOzgzNjM7ODM2Mzs4MzYzOworMkY5OUI7ODNBRDs4M0FEOzgzQUQ7ODNBRDsKKzJGOTlDOzgzMjM7ODMyMzs4MzIzOzgzMjM7CisyRjk5RDs4M0JEOzgzQkQ7ODNCRDs4M0JEOworMkY5OUU7ODNFNzs4M0U3OzgzRTc7ODNFNzsKKzJGOTlGOzg0NTc7ODQ1Nzs4NDU3Ozg0NTc7CisyRjlBMDs4MzUzOzgzNTM7ODM1Mzs4MzUzOworMkY5QTE7ODNDQTs4M0NBOzgzQ0E7ODNDQTsKKzJGOUEyOzgzQ0M7ODNDQzs4M0NDOzgzQ0M7CisyRjlBMzs4M0RDOzgzREM7ODNEQzs4M0RDOworMkY5QTQ7MjZDMzY7MjZDMzY7MjZDMzY7MjZDMzY7CisyRjlBNTsyNkQ2QjsyNkQ2QjsyNkQ2QjsyNkQ2QjsKKzJGOUE2OzI2Q0Q1OzI2Q0Q1OzI2Q0Q1OzI2Q0Q1OworMkY5QTc7NDUyQjs0NTJCOzQ1MkI7NDUyQjsKKzJGOUE4Ozg0RjE7ODRGMTs4NEYxOzg0RjE7CisyRjlBOTs4NEYzOzg0RjM7ODRGMzs4NEYzOworMkY5QUE7ODUxNjs4NTE2Ozg1MTY7ODUxNjsKKzJGOUFCOzI3M0NBOzI3M0NBOzI3M0NBOzI3M0NBOworMkY5QUM7ODU2NDs4NTY0Ozg1NjQ7ODU2NDsKKzJGOUFEOzI2RjJDOzI2RjJDOzI2RjJDOzI2RjJDOworMkY5QUU7NDU1RDs0NTVEOzQ1NUQ7NDU1RDsKKzJGOUFGOzQ1NjE7NDU2MTs0NTYxOzQ1NjE7CisyRjlCMDsyNkZCMTsyNkZCMTsyNkZCMTsyNkZCMTsKKzJGOUIxOzI3MEQyOzI3MEQyOzI3MEQyOzI3MEQyOworMkY5QjI7NDU2Qjs0NTZCOzQ1NkI7NDU2QjsKKzJGOUIzOzg2NTA7ODY1MDs4NjUwOzg2NTA7CisyRjlCNDs4NjVDOzg2NUM7ODY1Qzs4NjVDOworMkY5QjU7ODY2Nzs4NjY3Ozg2Njc7ODY2NzsKKzJGOUI2Ozg2Njk7ODY2OTs4NjY5Ozg2Njk7CisyRjlCNzs4NkE5Ozg2QTk7ODZBOTs4NkE5OworMkY5Qjg7ODY4ODs4Njg4Ozg2ODg7ODY4ODsKKzJGOUI5Ozg3MEU7ODcwRTs4NzBFOzg3MEU7CisyRjlCQTs4NkUyOzg2RTI7ODZFMjs4NkUyOworMkY5QkI7ODc3OTs4Nzc5Ozg3Nzk7ODc3OTsKKzJGOUJDOzg3Mjg7ODcyODs4NzI4Ozg3Mjg7CisyRjlCRDs4NzZCOzg3NkI7ODc2Qjs4NzZCOworMkY5QkU7ODc4Njs4Nzg2Ozg3ODY7ODc4NjsKKzJGOUJGOzQ1RDc7NDVENzs0NUQ3OzQ1RDc7CisyRjlDMDs4N0UxOzg3RTE7ODdFMTs4N0UxOworMkY5QzE7ODgwMTs4ODAxOzg4MDE7ODgwMTsKKzJGOUMyOzQ1Rjk7NDVGOTs0NUY5OzQ1Rjk7CisyRjlDMzs4ODYwOzg4NjA7ODg2MDs4ODYwOworMkY5QzQ7ODg2Mzs4ODYzOzg4NjM7ODg2MzsKKzJGOUM1OzI3NjY3OzI3NjY3OzI3NjY3OzI3NjY3OworMkY5QzY7ODhENzs4OEQ3Ozg4RDc7ODhENzsKKzJGOUM3Ozg4REU7ODhERTs4OERFOzg4REU7CisyRjlDODs0NjM1OzQ2MzU7NDYzNTs0NjM1OworMkY5Qzk7ODhGQTs4OEZBOzg4RkE7ODhGQTsKKzJGOUNBOzM0QkI7MzRCQjszNEJCOzM0QkI7CisyRjlDQjsyNzhBRTsyNzhBRTsyNzhBRTsyNzhBRTsKKzJGOUNDOzI3OTY2OzI3OTY2OzI3OTY2OzI3OTY2OworMkY5Q0Q7NDZCRTs0NkJFOzQ2QkU7NDZCRTsKKzJGOUNFOzQ2Qzc7NDZDNzs0NkM3OzQ2Qzc7CisyRjlDRjs4QUEwOzhBQTA7OEFBMDs4QUEwOworMkY5RDA7OEFFRDs4QUVEOzhBRUQ7OEFFRDsKKzJGOUQxOzhCOEE7OEI4QTs4QjhBOzhCOEE7CisyRjlEMjs4QzU1OzhDNTU7OEM1NTs4QzU1OworMkY5RDM7MjdDQTg7MjdDQTg7MjdDQTg7MjdDQTg7CisyRjlENDs4Q0FCOzhDQUI7OENBQjs4Q0FCOworMkY5RDU7OENDMTs4Q0MxOzhDQzE7OENDMTsKKzJGOUQ2OzhEMUI7OEQxQjs4RDFCOzhEMUI7CisyRjlENzs4RDc3OzhENzc7OEQ3Nzs4RDc3OworMkY5RDg7MjdGMkY7MjdGMkY7MjdGMkY7MjdGMkY7CisyRjlEOTsyMDgwNDsyMDgwNDsyMDgwNDsyMDgwNDsKKzJGOURBOzhEQ0I7OERDQjs4RENCOzhEQ0I7CisyRjlEQjs4REJDOzhEQkM7OERCQzs4REJDOworMkY5REM7OERGMDs4REYwOzhERjA7OERGMDsKKzJGOUREOzIwOERFOzIwOERFOzIwOERFOzIwOERFOworMkY5REU7OEVENDs4RUQ0OzhFRDQ7OEVENDsKKzJGOURGOzhGMzg7OEYzODs4RjM4OzhGMzg7CisyRjlFMDsyODVEMjsyODVEMjsyODVEMjsyODVEMjsKKzJGOUUxOzI4NUVEOzI4NUVEOzI4NUVEOzI4NUVEOworMkY5RTI7OTA5NDs5MDk0OzkwOTQ7OTA5NDsKKzJGOUUzOzkwRjE7OTBGMTs5MEYxOzkwRjE7CisyRjlFNDs5MTExOzkxMTE7OTExMTs5MTExOworMkY5RTU7Mjg3MkU7Mjg3MkU7Mjg3MkU7Mjg3MkU7CisyRjlFNjs5MTFCOzkxMUI7OTExQjs5MTFCOworMkY5RTc7OTIzODs5MjM4OzkyMzg7OTIzODsKKzJGOUU4OzkyRDc7OTJENzs5MkQ3OzkyRDc7CisyRjlFOTs5MkQ4OzkyRDg7OTJEODs5MkQ4OworMkY5RUE7OTI3Qzs5MjdDOzkyN0M7OTI3QzsKKzJGOUVCOzkzRjk7OTNGOTs5M0Y5OzkzRjk7CisyRjlFQzs5NDE1Ozk0MTU7OTQxNTs5NDE1OworMkY5RUQ7MjhCRkE7MjhCRkE7MjhCRkE7MjhCRkE7CisyRjlFRTs5NThCOzk1OEI7OTU4Qjs5NThCOworMkY5RUY7NDk5NTs0OTk1OzQ5OTU7NDk5NTsKKzJGOUYwOzk1Qjc7OTVCNzs5NUI3Ozk1Qjc7CisyRjlGMTsyOEQ3NzsyOEQ3NzsyOEQ3NzsyOEQ3NzsKKzJGOUYyOzQ5RTY7NDlFNjs0OUU2OzQ5RTY7CisyRjlGMzs5NkMzOzk2QzM7OTZDMzs5NkMzOworMkY5RjQ7NURCMjs1REIyOzVEQjI7NURCMjsKKzJGOUY1Ozk3MjM7OTcyMzs5NzIzOzk3MjM7CisyRjlGNjsyOTE0NTsyOTE0NTsyOTE0NTsyOTE0NTsKKzJGOUY3OzI5MjFBOzI5MjFBOzI5MjFBOzI5MjFBOworMkY5Rjg7NEE2RTs0QTZFOzRBNkU7NEE2RTsKKzJGOUY5OzRBNzY7NEE3Njs0QTc2OzRBNzY7CisyRjlGQTs5N0UwOzk3RTA7OTdFMDs5N0UwOworMkY5RkI7Mjk0MEE7Mjk0MEE7Mjk0MEE7Mjk0MEE7CisyRjlGQzs0QUIyOzRBQjI7NEFCMjs0QUIyOworMkY5RkQ7Mjk0OTY7Mjk0OTY7Mjk0OTY7Mjk0OTY7CisyRjlGRTs5ODBCOzk4MEI7OTgwQjs5ODBCOworMkY5RkY7OTgwQjs5ODBCOzk4MEI7OTgwQjsKKzJGQTAwOzk4Mjk7OTgyOTs5ODI5Ozk4Mjk7CisyRkEwMTsyOTVCNjsyOTVCNjsyOTVCNjsyOTVCNjsKKzJGQTAyOzk4RTI7OThFMjs5OEUyOzk4RTI7CisyRkEwMzs0QjMzOzRCMzM7NEIzMzs0QjMzOworMkZBMDQ7OTkyOTs5OTI5Ozk5Mjk7OTkyOTsKKzJGQTA1Ozk5QTc7OTlBNzs5OUE3Ozk5QTc7CisyRkEwNjs5OUMyOzk5QzI7OTlDMjs5OUMyOworMkZBMDc7OTlGRTs5OUZFOzk5RkU7OTlGRTsKKzJGQTA4OzRCQ0U7NEJDRTs0QkNFOzRCQ0U7CisyRkEwOTsyOUIzMDsyOUIzMDsyOUIzMDsyOUIzMDsKKzJGQTBBOzlCMTI7OUIxMjs5QjEyOzlCMTI7CisyRkEwQjs5QzQwOzlDNDA7OUM0MDs5QzQwOworMkZBMEM7OUNGRDs5Q0ZEOzlDRkQ7OUNGRDsKKzJGQTBEOzRDQ0U7NENDRTs0Q0NFOzRDQ0U7CisyRkEwRTs0Q0VEOzRDRUQ7NENFRDs0Q0VEOworMkZBMEY7OUQ2Nzs5RDY3OzlENjc7OUQ2NzsKKzJGQTEwOzJBMENFOzJBMENFOzJBMENFOzJBMENFOworMkZBMTE7NENGODs0Q0Y4OzRDRjg7NENGODsKKzJGQTEyOzJBMTA1OzJBMTA1OzJBMTA1OzJBMTA1OworMkZBMTM7MkEyMEU7MkEyMEU7MkEyMEU7MkEyMEU7CisyRkExNDsyQTI5MTsyQTI5MTsyQTI5MTsyQTI5MTsKKzJGQTE1OzlFQkI7OUVCQjs5RUJCOzlFQkI7CisyRkExNjs0RDU2OzRENTY7NEQ1Njs0RDU2OworMkZBMTc7OUVGOTs5RUY5OzlFRjk7OUVGOTsKKzJGQTE4OzlFRkU7OUVGRTs5RUZFOzlFRkU7CisyRkExOTs5RjA1OzlGMDU7OUYwNTs5RjA1OworMkZBMUE7OUYwRjs5RjBGOzlGMEY7OUYwRjsKKzJGQTFCOzlGMTY7OUYxNjs5RjE2OzlGMTY7CisyRkExQzs5RjNCOzlGM0I7OUYzQjs5RjNCOworMkZBMUQ7MkE2MDA7MkE2MDA7MkE2MDA7MkE2MDA7CisjCitAUGFydDIgIyBDYW5vbmljYWwgT3JkZXIgVGVzdAorIworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzAwIDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMwMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDEgMDA2MjswMEUwIDA1QUUgMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDEgMDMxNSAwMDYyOworMDA2MSAwMzAxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAxIDAzMDAgMDMxNSAwMDYyOzAwRTEgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwMiAwMDYyOzAwRTAgMDVBRSAwMzAyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMiAwMzE1IDAwNjI7CiswMDYxIDAzMDIgMDMxNSAwMzAwIDA1QUUgMDA2MjsxRUE3IDA1QUUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAyIDAzMDAgMDMxNSAwMDYyOzFFQTcgMDVBRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDMgMDA2MjswMEUwIDA1QUUgMDMwMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDMgMDMxNSAwMDYyOworMDA2MSAwMzAzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAzIDAzMDAgMDMxNSAwMDYyOzAwRTMgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwNCAwMDYyOzAwRTAgMDVBRSAwMzA0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwNCAwMzE1IDAwNjI7CiswMDYxIDAzMDQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMTAxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDQgMDMwMCAwMzE1IDAwNjI7MDEwMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA1IDAwNjI7MDBFMCAwNUFFIDAzMDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA1IDAzMTUgMDA2MjsKKzAwNjEgMDMwNSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA2IDAwNjI7MDBFMCAwNUFFIDAzMDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA2IDAzMTUgMDA2MjsKKzAwNjEgMDMwNiAwMzE1IDAzMDAgMDVBRSAwMDYyOzFFQjEgMDVBRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDYgMDMwMCAwMzE1IDAwNjI7MUVCMSAwNUFFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwNiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwNyAwMDYyOzAwRTAgMDVBRSAwMzA3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwNyAwMzE1IDAwNjI7CiswMDYxIDAzMDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMjI3IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDcgMDMwMCAwMzE1IDAwNjI7MDIyNyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzA4IDAwNjI7MDBFMCAwNUFFIDAzMDggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDggMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzA4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA4IDAzMTUgMDA2MjsKKzAwNjEgMDMwOCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwRTQgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOCAwMzAwIDAzMTUgMDA2MjswMEU0IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMDkgMDA2MjswMEUwIDA1QUUgMDMwOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwOSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDkgMDMxNSAwMDYyOworMDA2MSAwMzA5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MUVBMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzA5IDAzMDAgMDMxNSAwMDYyOzFFQTMgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMwQSAwMDYyOzAwRTAgMDVBRSAwMzBBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwQSAwMzE1IDAwNjI7CiswMDYxIDAzMEEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEU1IDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEEgMDMwMCAwMzE1IDAwNjI7MDBFNSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBBIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzBCIDAwNjI7MDBFMCAwNUFFIDAzMEIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzBCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBCIDAzMTUgMDA2MjsKKzAwNjEgMDMwQiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzBDIDAwNjI7MDBFMCAwNUFFIDAzMEMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzBDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzBDIDAzMTUgMDA2MjsKKzAwNjEgMDMwQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAxQ0UgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwQyAwMzAwIDAzMTUgMDA2MjswMUNFIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEQgMDA2MjswMEUwIDA1QUUgMDMwRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEQgMDMxNSAwMDYyOworMDA2MSAwMzBEIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEUgMDA2MjswMEUwIDA1QUUgMDMwRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEUgMDMxNSAwMDYyOworMDA2MSAwMzBFIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMEUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzMEYgMDA2MjswMEUwIDA1QUUgMDMwRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwRiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMEYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMEYgMDMxNSAwMDYyOworMDA2MSAwMzBGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDIwMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzBGIDAzMDAgMDMxNSAwMDYyOzAyMDEgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwRiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMxMCAwMDYyOzAwRTAgMDVBRSAwMzEwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMxMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMCAwMzE1IDAwNjI7CiswMDYxIDAzMTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMxMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDMxMSAwMDYyOzAwRTAgMDVBRSAwMzExIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzExIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMxMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMxMSAwMzE1IDAwNjI7CiswMDYxIDAzMTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMjAzIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMTEgMDMwMCAwMzE1IDAwNjI7MDIwMyAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzExIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzEyIDAwNjI7MDBFMCAwNUFFIDAzMTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEyIDAzMTUgMDA2MjsKKzAwNjEgMDMxMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzEzIDAwNjI7MDBFMCAwNUFFIDAzMTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEzIDAzMTUgMDA2MjsKKzAwNjEgMDMxMyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzE0IDAwNjI7MDBFMCAwNUFFIDAzMTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzE0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzE0IDAzMTUgMDA2MjsKKzAwNjEgMDMxNCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzE0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzVDIDAzMTUgMDMwMCAwMzE1IDAwNjI7MDBFMCAwMzE1IDAzMTUgMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMTUgMDM1QyAwMDYyOzAwRTAgMDMxNSAwMzE1IDAzNUMgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzE1IDAzNUMgMDA2MjsKKzAwNjEgMDMxNSAwMzVDIDAzMTUgMDMwMCAwMDYyOzAwRTAgMDMxNSAwMzE1IDAzNUMgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzE1IDAzNUMgMDA2MjswMEUwIDAzMTUgMDMxNSAwMzVDIDAwNjI7MDA2MSAwMzAwIDAzMTUgMDMxNSAwMzVDIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMTYgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzE3IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxNyAwNTlBIDAwNjI7CiswMDYxIDAzMTcgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxOCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMTggMDU5QSAwMDYyOworMDA2MSAwMzE4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMTkgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzE5IDA1OUEgMDA2MjsKKzAwNjEgMDMxOSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE5IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzVDIDAzMTUgMDMwMCAwMzFBIDAwNjI7MDBFMCAwMzE1IDAzMUEgMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzMUEgMDM1QyAwMDYyOzAwRTAgMDMxNSAwMzFBIDAzNUMgMDA2MjswMDYxIDAzMDAgMDMxNSAwMzFBIDAzNUMgMDA2MjsKKzAwNjEgMDMxQSAwMzVDIDAzMTUgMDMwMCAwMDYyOzAwRTAgMDMxQSAwMzE1IDAzNUMgMDA2MjswMDYxIDAzMDAgMDMxQSAwMzE1IDAzNUMgMDA2MjswMEUwIDAzMUEgMDMxNSAwMzVDIDAwNjI7MDA2MSAwMzAwIDAzMUEgMDMxNSAwMzVDIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDAzMUIgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMDMxQiAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDAzMUIgMzAyQSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzFDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxQyAwNTlBIDAwNjI7CiswMDYxIDAzMUMgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxQyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMxRCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMUQgMDU5QSAwMDYyOworMDA2MSAwMzFEIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMUQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMUUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzFFIDA1OUEgMDA2MjsKKzAwNjEgMDMxRSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzFFIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzFGIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMxRiAwNTlBIDAwNjI7CiswMDYxIDAzMUYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxRiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyMCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjAgMDU5QSAwMDYyOworMDA2MSAwMzIwIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjAgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMUIgMDMyMSAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMSAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDMyMSAwMzFCIDAzMjEgMEY3NCAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjEgMDMxQiAwMDYyOworMDA2MSAwMzFCIDAzMjEgMEY3NCAwMzIyIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyMiAwMzFCIDAwNjI7CiswMDYxIDAzMjIgMDMxQiAwMzIxIDBGNzQgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyMiAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyMyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjMgMDU5QSAwMDYyOworMDA2MSAwMzIzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MUVBMSAzMDJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzIzIDAzMTYgMDU5QSAwMDYyOzFFQTEgMzAyQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyMyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyNCAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjQgMDU5QSAwMDYyOworMDA2MSAwMzI0IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMjUgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI1IDA1OUEgMDA2MjsKKzAwNjEgMDMyNSAwNTlBIDAzMTYgMzAyQSAwMDYyOzFFMDEgMzAyQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyNSAwMzE2IDA1OUEgMDA2MjsxRTAxIDMwMkEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjUgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMjYgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzI2IDA1OUEgMDA2MjsKKzAwNjEgMDMyNiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzI2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzFCIDAzMjEgMEY3NCAwMzI3IDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7MDA2MSAwRjc0IDAzMjEgMDMyNyAwMzFCIDAwNjI7CiswMDYxIDAzMjcgMDMxQiAwMzIxIDBGNzQgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyNyAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDMxQiAwMzIxIDBGNzQgMDMyOCAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzIxIDAzMjggMDMxQiAwMDYyOworMDA2MSAwMzI4IDAzMUIgMDMyMSAwRjc0IDAwNjI7MDEwNSAwRjc0IDAzMjEgMDMxQiAwMDYyOzAwNjEgMEY3NCAwMzI4IDAzMjEgMDMxQiAwMDYyOzAxMDUgMEY3NCAwMzIxIDAzMUIgMDA2MjswMDYxIDBGNzQgMDMyOCAwMzIxIDAzMUIgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMjkgMDU5QSAwMDYyOworMDA2MSAwMzI5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMjkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMkEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJBIDA1OUEgMDA2MjsKKzAwNjEgMDMyQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzJCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyQiAwNTlBIDAwNjI7CiswMDYxIDAzMkIgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyQiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyQyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkMgMDU5QSAwMDYyOworMDA2MSAwMzJDIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMkQgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzJEIDA1OUEgMDA2MjsKKzAwNjEgMDMyRCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzJEIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzJFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMyRSAwNTlBIDAwNjI7CiswMDYxIDAzMkUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMyRSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMyRiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMkYgMDU5QSAwMDYyOworMDA2MSAwMzJGIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMkYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMzAgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMwIDA1OUEgMDA2MjsKKzAwNjEgMDMzMCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMwIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzMxIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzMSAwNTlBIDAwNjI7CiswMDYxIDAzMzEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzMSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzMiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzIgMDU5QSAwMDYyOworMDA2MSAwMzMyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzMzMgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzMzIDA1OUEgMDA2MjsKKzAwNjEgMDMzMyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzMzIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMDMzNCAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDMzNCAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAwMzM1IDAwNjI7MDA2MSAwMzM0IDAzMzUgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM1IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNSAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzUgMDkzQyAwMDYyOworMDA2MSAwMzM1IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNSAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzUgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM1IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDAzMzYgMDA2MjswMDYxIDAzMzQgMDMzNiAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzYgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM2IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNiAwOTNDIDAwNjI7CiswMDYxIDAzMzYgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM2IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNiAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzYgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM2IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMDMzNyAwMDYyOzAwNjEgMDMzNCAwMzM3IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzNyAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzcgMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM3IDA5M0MgMDA2MjsKKzAwNjEgMDMzNyAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzcgMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM3IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzNyAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzcgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAwMzM4IDAwNjI7MDA2MSAwMzM0IDAzMzggMDkzQyAwMDYyOzAwNjEgMDMzNCAwMzM4IDA5M0MgMDA2MjswMDYxIDAzMzQgMDMzOCAwOTNDIDAwNjI7MDA2MSAwMzM0IDAzMzggMDkzQyAwMDYyOworMDA2MSAwMzM4IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzOCAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzggMDMzNCAwOTNDIDAwNjI7MDA2MSAwMzM4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMDMzOCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzOSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzMzkgMDU5QSAwMDYyOworMDA2MSAwMzM5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMzkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzM0EgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzNBIDA1OUEgMDA2MjsKKzAwNjEgMDMzQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzNBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzNCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDMzQiAwNTlBIDAwNjI7CiswMDYxIDAzM0IgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMzQiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDMzQyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzM0MgMDU5QSAwMDYyOworMDA2MSAwMzNDIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzM0MgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzM0QgMDA2MjswMEUwIDA1QUUgMDMzRCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzM0QgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzM0QgMDMxNSAwMDYyOworMDA2MSAwMzNEIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0QgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzM0UgMDA2MjswMEUwIDA1QUUgMDMzRSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzM0UgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzM0UgMDMxNSAwMDYyOworMDA2MSAwMzNFIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0UgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzM0YgMDA2MjswMEUwIDA1QUUgMDMzRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMzRiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzM0YgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzM0YgMDMxNSAwMDYyOworMDA2MSAwMzNGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzM0YgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDAgMDA2MjswMEUwIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzQwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFMCAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMDAgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM0MSAwMDYyOzAwRTAgMDVBRSAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzAxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwMSAwMzE1IDAwNjI7CiswMDYxIDAzNDEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMEUxIDA1QUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDEgMDMwMCAwMzE1IDAwNjI7MDBFMSAwNUFFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQyIDAwNjI7MDBFMCAwNUFFIDAzNDIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNDIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzQyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzQyIDAzMTUgMDA2MjsKKzAwNjEgMDM0MiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzQyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQzIDAwNjI7MDBFMCAwNUFFIDAzMTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzMTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzEzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzEzIDAzMTUgMDA2MjsKKzAwNjEgMDM0MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzEzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzQ0IDAwNjI7MDBFMCAwNUFFIDAzMDggMDMwMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDMwOCAwMzAxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDMwOCAwMzAxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzA4IDAzMDEgMDMxNSAwMDYyOworMDA2MSAwMzQ0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDBFNCAwNUFFIDAzMDEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDggMDMwMSAwMzAwIDAzMTUgMDA2MjswMEU0IDA1QUUgMDMwMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwOCAwMzAxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzQ1IDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1RCAwMzQ1IDAzNDUgMDA2MjswMDYxIDAzNUQgMDM0NSAwMzQ1IDAwNjI7MDA2MSAwMzVEIDAzNDUgMDM0NSAwMDYyOzAwNjEgMDM1RCAwMzQ1IDAzNDUgMDA2MjsKKzAwNjEgMDM0NSAwMzQ1IDAzNUQgMDA2MjswMDYxIDAzNUQgMDM0NSAwMzQ1IDAwNjI7MDA2MSAwMzVEIDAzNDUgMDM0NSAwMDYyOzAwNjEgMDM1RCAwMzQ1IDAzNDUgMDA2MjswMDYxIDAzNUQgMDM0NSAwMzQ1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNDYgMDA2MjswMEUwIDA1QUUgMDM0NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0NiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNDYgMDMxNSAwMDYyOworMDA2MSAwMzQ2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNDYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNDcgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzQ3IDA1OUEgMDA2MjsKKzAwNjEgMDM0NyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzQ3IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzQ4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0OCAwNTlBIDAwNjI7CiswMDYxIDAzNDggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0OCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM0OSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNDkgMDU5QSAwMDYyOworMDA2MSAwMzQ5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNDkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNEEgMDA2MjswMEUwIDA1QUUgMDM0QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QSAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNEEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNEEgMDMxNSAwMDYyOworMDA2MSAwMzRBIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNEIgMDA2MjswMEUwIDA1QUUgMDM0QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QiAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNEIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNEIgMDMxNSAwMDYyOworMDA2MSAwMzRCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNEMgMDA2MjswMEUwIDA1QUUgMDM0QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM0QyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNEMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNEMgMDMxNSAwMDYyOworMDA2MSAwMzRDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNEMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNEQgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzREIDA1OUEgMDA2MjsKKzAwNjEgMDM0RCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzREIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzRFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM0RSAwNTlBIDAwNjI7CiswMDYxIDAzNEUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM0RSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM1MCAwMDYyOzAwRTAgMDVBRSAwMzUwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzUwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM1MCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM1MCAwMzE1IDAwNjI7CiswMDYxIDAzNTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM1MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM1MSAwMDYyOzAwRTAgMDVBRSAwMzUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzUxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM1MSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM1MSAwMzE1IDAwNjI7CiswMDYxIDAzNTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM1MiAwMDYyOzAwRTAgMDVBRSAwMzUyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzUyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM1MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM1MiAwMzE1IDAwNjI7CiswMDYxIDAzNTIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM1MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM1MiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM1MyAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTMgMDU5QSAwMDYyOworMDA2MSAwMzUzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNTQgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzU0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzU0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzU0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzU0IDA1OUEgMDA2MjsKKzAwNjEgMDM1NCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzU0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzU0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzU0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzU0IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwMzU1IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDM1NSAwNTlBIDAwNjI7CiswMDYxIDAzNTUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDM1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDM1NSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM1NiAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTYgMDU5QSAwMDYyOworMDA2MSAwMzU2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDAzNTcgMDA2MjswMEUwIDA1QUUgMDM1NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM1NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDAzNTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNTcgMDMxNSAwMDYyOworMDA2MSAwMzU3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDAzNTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzNTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzNUMgMDMxNSAwMzAwIDAzNTggMDA2MjswMEUwIDAzMTUgMDM1OCAwMzVDIDAwNjI7MDA2MSAwMzAwIDAzMTUgMDM1OCAwMzVDIDAwNjI7MDBFMCAwMzE1IDAzNTggMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzE1IDAzNTggMDM1QyAwMDYyOworMDA2MSAwMzU4IDAzNUMgMDMxNSAwMzAwIDAwNjI7MDBFMCAwMzU4IDAzMTUgMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzU4IDAzMTUgMDM1QyAwMDYyOzAwRTAgMDM1OCAwMzE1IDAzNUMgMDA2MjswMDYxIDAzMDAgMDM1OCAwMzE1IDAzNUMgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDM1OSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTkgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDAzNTkgMDU5QSAwMDYyOworMDA2MSAwMzU5IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDAzNTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTkgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzNTkgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDAzNUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwMzVBIDA1OUEgMDA2MjsKKzAwNjEgMDM1QSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwMzVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzVBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwMzVCIDAwNjI7MDBFMCAwNUFFIDAzNUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDAzNUIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwMzVCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzVCIDAzMTUgMDA2MjsKKzAwNjEgMDM1QiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwMzVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzVCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzVEIDAzNUMgMDMxNSAwMzVDIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1QyAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1QyAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1QyAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1QyAwMzVEIDAwNjI7CiswMDYxIDAzNUMgMDM1RCAwMzVDIDAzMTUgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1QyAwMzVDIDAzNUQgMDA2MjsKKzAwNjEgMDM0NSAwMzVEIDAzNUMgMDM1RCAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNUQgMDM0NSAwMDYyOworMDA2MSAwMzVEIDAzNDUgMDM1RCAwMzVDIDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNUQgMDM1RCAwMzQ1IDAwNjI7CiswMDYxIDAzNDUgMDM1RCAwMzVDIDAzNUUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzVFIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzVFIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzVFIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzVFIDAzNDUgMDA2MjsKKzAwNjEgMDM1RSAwMzQ1IDAzNUQgMDM1QyAwMDYyOzAwNjEgMDM1QyAwMzVFIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVFIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVFIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVFIDAzNUQgMDM0NSAwMDYyOworMDA2MSAwMzVEIDAzNUMgMDMxNSAwMzVGIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1RiAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1RiAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1RiAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM1RiAwMzVEIDAwNjI7CiswMDYxIDAzNUYgMDM1RCAwMzVDIDAzMTUgMDA2MjswMDYxIDAzMTUgMDM1RiAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1RiAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1RiAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM1RiAwMzVDIDAzNUQgMDA2MjsKKzAwNjEgMDM0NSAwMzVEIDAzNUMgMDM2MCAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNjAgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzVEIDAzNjAgMDM0NSAwMDYyOworMDA2MSAwMzYwIDAzNDUgMDM1RCAwMzVDIDAwNjI7MDA2MSAwMzVDIDAzNjAgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNjAgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNjAgMDM1RCAwMzQ1IDAwNjI7MDA2MSAwMzVDIDAzNjAgMDM1RCAwMzQ1IDAwNjI7CiswMDYxIDAzNDUgMDM1RCAwMzVDIDAzNjEgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzYxIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzYxIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzYxIDAzNDUgMDA2MjswMDYxIDAzNUMgMDM1RCAwMzYxIDAzNDUgMDA2MjsKKzAwNjEgMDM2MSAwMzQ1IDAzNUQgMDM1QyAwMDYyOzAwNjEgMDM1QyAwMzYxIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzYxIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzYxIDAzNUQgMDM0NSAwMDYyOzAwNjEgMDM1QyAwMzYxIDAzNUQgMDM0NSAwMDYyOworMDA2MSAwMzVEIDAzNUMgMDMxNSAwMzYyIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM2MiAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM2MiAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM2MiAwMzVEIDAwNjI7MDA2MSAwMzE1IDAzNUMgMDM2MiAwMzVEIDAwNjI7CiswMDYxIDAzNjIgMDM1RCAwMzVDIDAzMTUgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzVDIDAzNUQgMDA2MjswMDYxIDAzMTUgMDM2MiAwMzVDIDAzNUQgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2MyAwMDYyOzAwRTAgMDVBRSAwMzYzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzYzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2MyAwMzE1IDAwNjI7CiswMDYxIDAzNjMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NCAwMDYyOzAwRTAgMDVBRSAwMzY0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NCAwMzE1IDAwNjI7CiswMDYxIDAzNjQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NSAwMDYyOzAwRTAgMDVBRSAwMzY1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NSAwMzE1IDAwNjI7CiswMDYxIDAzNjUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NiAwMDYyOzAwRTAgMDVBRSAwMzY2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NiAwMzE1IDAwNjI7CiswMDYxIDAzNjYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2NyAwMDYyOzAwRTAgMDVBRSAwMzY3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2NyAwMzE1IDAwNjI7CiswMDYxIDAzNjcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2NyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2OCAwMDYyOzAwRTAgMDVBRSAwMzY4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY4IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2OCAwMzE1IDAwNjI7CiswMDYxIDAzNjggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2OSAwMDYyOzAwRTAgMDVBRSAwMzY5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzY5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2OSAwMzE1IDAwNjI7CiswMDYxIDAzNjkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2OSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2QSAwMDYyOzAwRTAgMDVBRSAwMzZBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2QSAwMzE1IDAwNjI7CiswMDYxIDAzNkEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2QiAwMDYyOzAwRTAgMDVBRSAwMzZCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2QiAwMzE1IDAwNjI7CiswMDYxIDAzNkIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2QyAwMDYyOzAwRTAgMDVBRSAwMzZDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2QyAwMzE1IDAwNjI7CiswMDYxIDAzNkMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2QyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2RCAwMDYyOzAwRTAgMDVBRSAwMzZEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZEIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2RCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2RCAwMzE1IDAwNjI7CiswMDYxIDAzNkQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2RSAwMDYyOzAwRTAgMDVBRSAwMzZFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZFIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2RSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2RSAwMzE1IDAwNjI7CiswMDYxIDAzNkUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDM2RiAwMDYyOzAwRTAgMDVBRSAwMzZGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwMzZGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDM2RiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDM2RiAwMzE1IDAwNjI7CiswMDYxIDAzNkYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDM2RiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4MyAwMDYyOzAwRTAgMDVBRSAwNDgzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDgzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4MyAwMzE1IDAwNjI7CiswMDYxIDA0ODMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4NCAwMDYyOzAwRTAgMDVBRSAwNDg0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4NCAwMzE1IDAwNjI7CiswMDYxIDA0ODQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4NSAwMDYyOzAwRTAgMDVBRSAwNDg1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4NSAwMzE1IDAwNjI7CiswMDYxIDA0ODUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDQ4NiAwMDYyOzAwRTAgMDVBRSAwNDg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNDg2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDQ4NiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDQ4NiAwMzE1IDAwNjI7CiswMDYxIDA0ODYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDQ4NiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDU5MSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OTEgMDU5QSAwMDYyOworMDA2MSAwNTkxIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OTEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTIgMDA2MjswMEUwIDA1QUUgMDU5MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5MiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTIgMDMxNSAwMDYyOworMDA2MSAwNTkyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTMgMDA2MjswMEUwIDA1QUUgMDU5MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTMgMDMxNSAwMDYyOworMDA2MSAwNTkzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTQgMDA2MjswMEUwIDA1QUUgMDU5NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTQgMDMxNSAwMDYyOworMDA2MSAwNTk0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OTUgMDA2MjswMEUwIDA1QUUgMDU5NSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5NSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OTUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTUgMDMxNSAwMDYyOworMDA2MSAwNTk1IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OTUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1OTYgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNTk2IDA1OUEgMDA2MjsKKzAwNjEgMDU5NiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNTk2IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNTk3IDAwNjI7MDBFMCAwNUFFIDA1OTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNTk3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk3IDAzMTUgMDA2MjsKKzAwNjEgMDU5NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNTk4IDAwNjI7MDBFMCAwNUFFIDA1OTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTggMDMxNSAwMDYyOzAwRTAgMDVBRSAwNTk4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk4IDAzMTUgMDA2MjsKKzAwNjEgMDU5OCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk4IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNTk5IDAwNjI7MDBFMCAwNUFFIDA1OTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OTkgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNTk5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNTk5IDAzMTUgMDA2MjsKKzAwNjEgMDU5OSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNTk5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAzMDJFIDA1OUEgMDMxNiAwNTlBIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDU5QSAzMDJFIDAwNjI7CiswMDYxIDA1OUEgMzAyRSAwNTlBIDAzMTYgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAwNTlBIDMwMkUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDU5QiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1OUIgMDU5QSAwMDYyOworMDA2MSAwNTlCIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1OUIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUMgMDA2MjswMEUwIDA1QUUgMDU5QyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5QyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUMgMDMxNSAwMDYyOworMDA2MSAwNTlDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUQgMDA2MjswMEUwIDA1QUUgMDU5RCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUQgMDMxNSAwMDYyOworMDA2MSAwNTlEIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUUgMDA2MjswMEUwIDA1QUUgMDU5RSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUUgMDMxNSAwMDYyOworMDA2MSAwNTlFIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1OUYgMDA2MjswMEUwIDA1QUUgMDU5RiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDU5RiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1OUYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1OUYgMDMxNSAwMDYyOworMDA2MSAwNTlGIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1OUYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QTAgMDA2MjswMEUwIDA1QUUgMDVBMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QTAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTAgMDMxNSAwMDYyOworMDA2MSAwNUEwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QTEgMDA2MjswMEUwIDA1QUUgMDVBMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTEgMDMxNSAwMDYyOworMDA2MSAwNUExIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QTIgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUEyIDA1OUEgMDA2MjsKKzAwNjEgMDVBMiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUEyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUEyIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNUEzIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBMyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBMyAwNTlBIDAwNjI7CiswMDYxIDA1QTMgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDVBMyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBMyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBMyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBMyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBNCAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTQgMDU5QSAwMDYyOworMDA2MSAwNUE0IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QTQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTQgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QTUgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUE1IDA1OUEgMDA2MjsKKzAwNjEgMDVBNSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUE1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUE1IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNUE2IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDVBNiAwNTlBIDAwNjI7CiswMDYxIDA1QTYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDVBNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDVBNiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDVBNyAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA1QTcgMDU5QSAwMDYyOworMDA2MSAwNUE3IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA1QTcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA1QTcgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QTggMDA2MjswMEUwIDA1QUUgMDVBOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBOCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTggMDMxNSAwMDYyOworMDA2MSAwNUE4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QTkgMDA2MjswMEUwIDA1QUUgMDVBOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBOSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QTkgMDMxNSAwMDYyOworMDA2MSAwNUE5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QTkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUFBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUFBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUFBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUFBIDA1OUEgMDA2MjsKKzAwNjEgMDVBQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUFBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUFBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUFBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUFBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNUFCIDAwNjI7MDBFMCAwNUFFIDA1QUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNUFCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUFCIDAzMTUgMDA2MjsKKzAwNjEgMDVBQiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNUFCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNUFDIDAwNjI7MDBFMCAwNUFFIDA1QUMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QUMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNUFDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUFDIDAzMTUgMDA2MjsKKzAwNjEgMDVBQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNUFDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNUFDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAzMDJFIDA1OUEgMDMxNiAwNUFEIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDVBRCAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDVBRCAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDVBRCAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMDVBRCAzMDJFIDAwNjI7CiswMDYxIDA1QUQgMzAyRSAwNTlBIDAzMTYgMDA2MjswMDYxIDAzMTYgMDVBRCAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDVBRCAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDVBRCAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMDVBRCAwNTlBIDMwMkUgMDA2MjsKKzAwNjEgMDMwMCAwNUFFIDFEMTZEIDA1QUUgMDA2MjswMEUwIDFEMTZEIDA1QUUgMDVBRSAwMDYyOzAwNjEgMUQxNkQgMDVBRSAwNUFFIDAzMDAgMDA2MjswMEUwIDFEMTZEIDA1QUUgMDVBRSAwMDYyOzAwNjEgMUQxNkQgMDVBRSAwNUFFIDAzMDAgMDA2MjsKKzAwNjEgMDVBRSAwMzAwIDA1QUUgMUQxNkQgMDA2MjswMEUwIDFEMTZEIDA1QUUgMDVBRSAwMDYyOzAwNjEgMUQxNkQgMDVBRSAwNUFFIDAzMDAgMDA2MjswMEUwIDFEMTZEIDA1QUUgMDVBRSAwMDYyOzAwNjEgMUQxNkQgMDVBRSAwNUFFIDAzMDAgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDVBRiAwMDYyOzAwRTAgMDVBRSAwNUFGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNUFGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDVBRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVBRiAwMzE1IDAwNjI7CiswMDYxIDA1QUYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDVBRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDVBRiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDVCMSAwNUIwIDA5NEQgMDVCMCAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOzAwNjEgMDk0RCAwNUIwIDA1QjAgMDVCMSAwMDYyOworMDA2MSAwNUIwIDA1QjEgMDVCMCAwOTREIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7MDA2MSAwOTREIDA1QjAgMDVCMCAwNUIxIDAwNjI7CiswMDYxIDA1QjIgMDVCMSAwNUIwIDA1QjEgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjswMDYxIDA1QjAgMDVCMSAwNUIxIDA1QjIgMDA2MjsKKzAwNjEgMDVCMSAwNUIyIDA1QjEgMDVCMCAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOzAwNjEgMDVCMCAwNUIxIDA1QjEgMDVCMiAwMDYyOworMDA2MSAwNUIzIDA1QjIgMDVCMSAwNUIyIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7MDA2MSAwNUIxIDA1QjIgMDVCMiAwNUIzIDAwNjI7CiswMDYxIDA1QjIgMDVCMyAwNUIyIDA1QjEgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjswMDYxIDA1QjEgMDVCMiAwNUIyIDA1QjMgMDA2MjsKKzAwNjEgMDVCNCAwNUIzIDA1QjIgMDVCMyAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOzAwNjEgMDVCMiAwNUIzIDA1QjMgMDVCNCAwMDYyOworMDA2MSAwNUIzIDA1QjQgMDVCMyAwNUIyIDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7MDA2MSAwNUIyIDA1QjMgMDVCMyAwNUI0IDAwNjI7CiswMDYxIDA1QjUgMDVCNCAwNUIzIDA1QjQgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjswMDYxIDA1QjMgMDVCNCAwNUI0IDA1QjUgMDA2MjsKKzAwNjEgMDVCNCAwNUI1IDA1QjQgMDVCMyAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOzAwNjEgMDVCMyAwNUI0IDA1QjQgMDVCNSAwMDYyOworMDA2MSAwNUI2IDA1QjUgMDVCNCAwNUI1IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7MDA2MSAwNUI0IDA1QjUgMDVCNSAwNUI2IDAwNjI7CiswMDYxIDA1QjUgMDVCNiAwNUI1IDA1QjQgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjswMDYxIDA1QjQgMDVCNSAwNUI1IDA1QjYgMDA2MjsKKzAwNjEgMDVCNyAwNUI2IDA1QjUgMDVCNiAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOzAwNjEgMDVCNSAwNUI2IDA1QjYgMDVCNyAwMDYyOworMDA2MSAwNUI2IDA1QjcgMDVCNiAwNUI1IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7MDA2MSAwNUI1IDA1QjYgMDVCNiAwNUI3IDAwNjI7CiswMDYxIDA1QjggMDVCNyAwNUI2IDA1QjcgMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjswMDYxIDA1QjYgMDVCNyAwNUI3IDA1QjggMDA2MjsKKzAwNjEgMDVCNyAwNUI4IDA1QjcgMDVCNiAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOzAwNjEgMDVCNiAwNUI3IDA1QjcgMDVCOCAwMDYyOworMDA2MSAwNUI5IDA1QjggMDVCNyAwNUI4IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVCOCAwNUI5IDAwNjI7CiswMDYxIDA1QjggMDVCOSAwNUI4IDA1QjcgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVCOCAwNUI4IDA1QjkgMDA2MjsKKzAwNjEgMDVCQiAwNUI5IDA1QjggMDVCOSAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOzAwNjEgMDVCOCAwNUI5IDA1QjkgMDVCQiAwMDYyOworMDA2MSAwNUI5IDA1QkIgMDVCOSAwNUI4IDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7MDA2MSAwNUI4IDA1QjkgMDVCOSAwNUJCIDAwNjI7CiswMDYxIDA1QkMgMDVCQiAwNUI5IDA1QkIgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjswMDYxIDA1QjkgMDVCQiAwNUJCIDA1QkMgMDA2MjsKKzAwNjEgMDVCQiAwNUJDIDA1QkIgMDVCOSAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOzAwNjEgMDVCOSAwNUJCIDA1QkIgMDVCQyAwMDYyOworMDA2MSAwNUJEIDA1QkMgMDVCQiAwNUJDIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7MDA2MSAwNUJCIDA1QkMgMDVCQyAwNUJEIDAwNjI7CiswMDYxIDA1QkMgMDVCRCAwNUJDIDA1QkIgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjswMDYxIDA1QkIgMDVCQyAwNUJDIDA1QkQgMDA2MjsKKzAwNjEgMDVCRiAwNUJEIDA1QkMgMDVCRCAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOzAwNjEgMDVCQyAwNUJEIDA1QkQgMDVCRiAwMDYyOworMDA2MSAwNUJEIDA1QkYgMDVCRCAwNUJDIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7MDA2MSAwNUJDIDA1QkQgMDVCRCAwNUJGIDAwNjI7CiswMDYxIDA1QzEgMDVCRiAwNUJEIDA1QkYgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjswMDYxIDA1QkQgMDVCRiAwNUJGIDA1QzEgMDA2MjsKKzAwNjEgMDVCRiAwNUMxIDA1QkYgMDVCRCAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOzAwNjEgMDVCRCAwNUJGIDA1QkYgMDVDMSAwMDYyOworMDA2MSAwNUMyIDA1QzEgMDVCRiAwNUMxIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7MDA2MSAwNUJGIDA1QzEgMDVDMSAwNUMyIDAwNjI7CiswMDYxIDA1QzEgMDVDMiAwNUMxIDA1QkYgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjswMDYxIDA1QkYgMDVDMSAwNUMxIDA1QzIgMDA2MjsKKzAwNjEgRkIxRSAwNUMyIDA1QzEgMDVDMiAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOzAwNjEgMDVDMSAwNUMyIDA1QzIgRkIxRSAwMDYyOworMDA2MSAwNUMyIEZCMUUgMDVDMiAwNUMxIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7MDA2MSAwNUMxIDA1QzIgMDVDMiBGQjFFIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA1QzQgMDA2MjswMEUwIDA1QUUgMDVDNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDVDNCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA1QzQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA1QzQgMDMxNSAwMDYyOworMDA2MSAwNUM0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA1QzQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QzQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QzQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA1QzQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA1QzUgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUM1IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNUM1IDA1OUEgMDA2MjsKKzAwNjEgMDVDNSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNUM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUM1IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNUM1IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNUI5IDA1QjggMDVCNyAwNUM3IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVDNyAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVDNyAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVDNyAwNUI5IDAwNjI7MDA2MSAwNUI3IDA1QjggMDVDNyAwNUI5IDAwNjI7CiswMDYxIDA1QzcgMDVCOSAwNUI4IDA1QjcgMDA2MjswMDYxIDA1QjcgMDVDNyAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVDNyAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVDNyAwNUI4IDA1QjkgMDA2MjswMDYxIDA1QjcgMDVDNyAwNUI4IDA1QjkgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDYxMCAwMDYyOzAwRTAgMDVBRSAwNjEwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjEwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDYxMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDYxMCAwMzE1IDAwNjI7CiswMDYxIDA2MTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDYxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDYxMSAwMDYyOzAwRTAgMDVBRSAwNjExIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjExIDAzMTUgMDA2MjswMEUwIDA1QUUgMDYxMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDYxMSAwMzE1IDAwNjI7CiswMDYxIDA2MTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDYxMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDYxMiAwMDYyOzAwRTAgMDVBRSAwNjEyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjEyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDYxMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDYxMiAwMzE1IDAwNjI7CiswMDYxIDA2MTIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDYxMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDYxMyAwMDYyOzAwRTAgMDVBRSAwNjEzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjEzIDAzMTUgMDA2MjswMEUwIDA1QUUgMDYxMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDYxMyAwMzE1IDAwNjI7CiswMDYxIDA2MTMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDYxMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxMyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDYxNCAwMDYyOzAwRTAgMDVBRSAwNjE0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjE0IDAzMTUgMDA2MjswMEUwIDA1QUUgMDYxNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDYxNCAwMzE1IDAwNjI7CiswMDYxIDA2MTQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDYxNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxNCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxNCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDYxNSAwMDYyOzAwRTAgMDVBRSAwNjE1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjE1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDYxNSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDYxNSAwMzE1IDAwNjI7CiswMDYxIDA2MTUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDYxNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDYxNSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDY0QyAwNjRCIEZCMUUgMDY0QiAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOzAwNjEgRkIxRSAwNjRCIDA2NEIgMDY0QyAwMDYyOworMDA2MSAwNjRCIDA2NEMgMDY0QiBGQjFFIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7MDA2MSBGQjFFIDA2NEIgMDY0QiAwNjRDIDAwNjI7CiswMDYxIDA2NEQgMDY0QyAwNjRCIDA2NEMgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjswMDYxIDA2NEIgMDY0QyAwNjRDIDA2NEQgMDA2MjsKKzAwNjEgMDY0QyAwNjREIDA2NEMgMDY0QiAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOzAwNjEgMDY0QiAwNjRDIDA2NEMgMDY0RCAwMDYyOworMDA2MSAwNjRFIDA2NEQgMDY0QyAwNjREIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7MDA2MSAwNjRDIDA2NEQgMDY0RCAwNjRFIDAwNjI7CiswMDYxIDA2NEQgMDY0RSAwNjREIDA2NEMgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjswMDYxIDA2NEMgMDY0RCAwNjREIDA2NEUgMDA2MjsKKzAwNjEgMDY0RiAwNjRFIDA2NEQgMDY0RSAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOzAwNjEgMDY0RCAwNjRFIDA2NEUgMDY0RiAwMDYyOworMDA2MSAwNjRFIDA2NEYgMDY0RSAwNjREIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7MDA2MSAwNjREIDA2NEUgMDY0RSAwNjRGIDAwNjI7CiswMDYxIDA2NTAgMDY0RiAwNjRFIDA2NEYgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjswMDYxIDA2NEUgMDY0RiAwNjRGIDA2NTAgMDA2MjsKKzAwNjEgMDY0RiAwNjUwIDA2NEYgMDY0RSAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOzAwNjEgMDY0RSAwNjRGIDA2NEYgMDY1MCAwMDYyOworMDA2MSAwNjUxIDA2NTAgMDY0RiAwNjUwIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7MDA2MSAwNjRGIDA2NTAgMDY1MCAwNjUxIDAwNjI7CiswMDYxIDA2NTAgMDY1MSAwNjUwIDA2NEYgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjswMDYxIDA2NEYgMDY1MCAwNjUwIDA2NTEgMDA2MjsKKzAwNjEgMDY1MiAwNjUxIDA2NTAgMDY1MSAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOzAwNjEgMDY1MCAwNjUxIDA2NTEgMDY1MiAwMDYyOworMDA2MSAwNjUxIDA2NTIgMDY1MSAwNjUwIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7MDA2MSAwNjUwIDA2NTEgMDY1MSAwNjUyIDAwNjI7CiswMDYxIDA2NzAgMDY1MiAwNjUxIDA2NTIgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjswMDYxIDA2NTEgMDY1MiAwNjUyIDA2NzAgMDA2MjsKKzAwNjEgMDY1MiAwNjcwIDA2NTIgMDY1MSAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOzAwNjEgMDY1MSAwNjUyIDA2NTIgMDY3MCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjUzIDAwNjI7MDBFMCAwNUFFIDA2NTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjUzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjUzIDAzMTUgMDA2MjsKKzAwNjEgMDY1MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjUzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjU0IDAwNjI7MDBFMCAwNUFFIDA2NTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjU0IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjU0IDAzMTUgMDA2MjsKKzAwNjEgMDY1NCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjU0IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNjU1IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDY1NSAwNTlBIDAwNjI7CiswMDYxIDA2NTUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDY1NSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDY1NiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2NTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2NTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2NTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2NTYgMDU5QSAwMDYyOworMDA2MSAwNjU2IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA2NTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2NTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2NTYgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2NTYgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NTcgMDA2MjswMEUwIDA1QUUgMDY1NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1NyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTcgMDMxNSAwMDYyOworMDA2MSAwNjU3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NTggMDA2MjswMEUwIDA1QUUgMDY1OCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1OCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTggMDMxNSAwMDYyOworMDA2MSAwNjU4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NTkgMDA2MjswMEUwIDA1QUUgMDY1OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1OSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NTkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NTkgMDMxNSAwMDYyOworMDA2MSAwNjU5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NTkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NUEgMDA2MjswMEUwIDA1QUUgMDY1QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1QSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NUEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NUEgMDMxNSAwMDYyOworMDA2MSAwNjVBIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NUEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2NUIgMDA2MjswMEUwIDA1QUUgMDY1QiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDY1QiAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2NUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NUIgMDMxNSAwMDYyOworMDA2MSAwNjVCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2NUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2NUIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA2NUMgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjVDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjVDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjVDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNjVDIDA1OUEgMDA2MjsKKzAwNjEgMDY1QyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNjVDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjVDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjVDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNjVDIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjVEIDAwNjI7MDBFMCAwNUFFIDA2NUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NUQgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjVEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjVEIDAzMTUgMDA2MjsKKzAwNjEgMDY1RCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjVEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjVEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjVEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjVEIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNjVFIDAwNjI7MDBFMCAwNUFFIDA2NUUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2NUUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNjVFIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNjVFIDAzMTUgMDA2MjsKKzAwNjEgMDY1RSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNjVFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjVFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjVFIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNjVFIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNzExIDA2NzAgMDY1MiAwNjcwIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7MDA2MSAwNjUyIDA2NzAgMDY3MCAwNzExIDAwNjI7CiswMDYxIDA2NzAgMDcxMSAwNjcwIDA2NTIgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjswMDYxIDA2NTIgMDY3MCAwNjcwIDA3MTEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZENiAwMDYyOzAwRTAgMDVBRSAwNkQ2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZENiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZENiAwMzE1IDAwNjI7CiswMDYxIDA2RDYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZENyAwMDYyOzAwRTAgMDVBRSAwNkQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZENyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZENyAwMzE1IDAwNjI7CiswMDYxIDA2RDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZENyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEOCAwMDYyOzAwRTAgMDVBRSAwNkQ4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ4IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEOCAwMzE1IDAwNjI7CiswMDYxIDA2RDggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEOSAwMDYyOzAwRTAgMDVBRSAwNkQ5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkQ5IDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEOSAwMzE1IDAwNjI7CiswMDYxIDA2RDkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEOSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEQSAwMDYyOzAwRTAgMDVBRSAwNkRBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQSAwMzE1IDAwNjI7CiswMDYxIDA2REEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEQiAwMDYyOzAwRTAgMDVBRSAwNkRCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRCIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQiAwMzE1IDAwNjI7CiswMDYxIDA2REIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZEQyAwMDYyOzAwRTAgMDVBRSAwNkRDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRDIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZEQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZEQyAwMzE1IDAwNjI7CiswMDYxIDA2REMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZEQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZERiAwMDYyOzAwRTAgMDVBRSAwNkRGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkRGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZERiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZERiAwMzE1IDAwNjI7CiswMDYxIDA2REYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZERiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFMCAwMDYyOzAwRTAgMDVBRSAwNkUwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMCAwMzE1IDAwNjI7CiswMDYxIDA2RTAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFMSAwMDYyOzAwRTAgMDVBRSAwNkUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMSAwMzE1IDAwNjI7CiswMDYxIDA2RTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDZFMiAwMDYyOzAwRTAgMDVBRSAwNkUyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkUyIDAzMTUgMDA2MjswMEUwIDA1QUUgMDZFMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFMiAwMzE1IDAwNjI7CiswMDYxIDA2RTIgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDZFMiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDZFMyAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA2RTMgMDU5QSAwMDYyOworMDA2MSAwNkUzIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA2RTMgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTQgMDA2MjswMEUwIDA1QUUgMDZFNCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFNCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTQgMDMxNSAwMDYyOworMDA2MSAwNkU0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTcgMDA2MjswMEUwIDA1QUUgMDZFNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFNyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTcgMDMxNSAwMDYyOworMDA2MSAwNkU3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA2RTggMDA2MjswMEUwIDA1QUUgMDZFOCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDZFOCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA2RTggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RTggMDMxNSAwMDYyOworMDA2MSAwNkU4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA2RTggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA2RUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNkVBIDA1OUEgMDA2MjsKKzAwNjEgMDZFQSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNkVBIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkVCIDAwNjI7MDBFMCAwNUFFIDA2RUIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RUIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkVCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkVCIDAzMTUgMDA2MjsKKzAwNjEgMDZFQiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNkVDIDAwNjI7MDBFMCAwNUFFIDA2RUMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA2RUMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNkVDIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNkVDIDAzMTUgMDA2MjsKKzAwNjEgMDZFQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNkVDIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNkVEIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDZFRCAwNTlBIDAwNjI7CiswMDYxIDA2RUQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDZFRCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMEM1NSAwNzExIDA2NzAgMDcxMSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOzAwNjEgMDY3MCAwNzExIDA3MTEgMEM1NSAwMDYyOworMDA2MSAwNzExIDBDNTUgMDcxMSAwNjcwIDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNjcwIDA3MTEgMDcxMSAwQzU1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3MzAgMDA2MjswMEUwIDA1QUUgMDczMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczMCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3MzAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzAgMDMxNSAwMDYyOworMDA2MSAwNzMwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3MzAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3MzEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzMxIDA1OUEgMDA2MjsKKzAwNjEgMDczMSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzMxIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzMyIDAwNjI7MDBFMCAwNUFFIDA3MzIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzIgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzMyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMyIDAzMTUgMDA2MjsKKzAwNjEgMDczMiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzMzIDAwNjI7MDBFMCAwNUFFIDA3MzMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3MzMgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzMzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzMzIDAzMTUgMDA2MjsKKzAwNjEgMDczMyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzMzIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzM0IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczNCAwNTlBIDAwNjI7CiswMDYxIDA3MzQgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczNCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczNSAwMDYyOzAwRTAgMDVBRSAwNzM1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzM1IDAzMTUgMDA2MjswMEUwIDA1QUUgMDczNSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczNSAwMzE1IDAwNjI7CiswMDYxIDA3MzUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczNiAwMDYyOzAwRTAgMDVBRSAwNzM2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzM2IDAzMTUgMDA2MjswMEUwIDA1QUUgMDczNiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczNiAwMzE1IDAwNjI7CiswMDYxIDA3MzYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczNiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczNyAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3MzcgMDU5QSAwMDYyOworMDA2MSAwNzM3IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3MzcgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3MzggMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzM4IDA1OUEgMDA2MjsKKzAwNjEgMDczOCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzM4IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzM5IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczOSAwNTlBIDAwNjI7CiswMDYxIDA3MzkgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczOSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczQSAwMDYyOzAwRTAgMDVBRSAwNzNBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNBIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczQSAwMzE1IDAwNjI7CiswMDYxIDA3M0EgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczQSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDczQiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3M0IgMDU5QSAwMDYyOworMDA2MSAwNzNCIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3M0IgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3M0MgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzNDIDA1OUEgMDA2MjsKKzAwNjEgMDczQyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzNDIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzNEIDAwNjI7MDBFMCAwNUFFIDA3M0QgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3M0QgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzNEIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNEIDAzMTUgMDA2MjsKKzAwNjEgMDczRCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzNEIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzNFIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDczRSAwNTlBIDAwNjI7CiswMDYxIDA3M0UgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDczRSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDczRiAwMDYyOzAwRTAgMDVBRSAwNzNGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzNGIDAzMTUgMDA2MjswMEUwIDA1QUUgMDczRiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDczRiAwMzE1IDAwNjI7CiswMDYxIDA3M0YgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDczRiAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0MCAwMDYyOzAwRTAgMDVBRSAwNzQwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQwIDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0MCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MCAwMzE1IDAwNjI7CiswMDYxIDA3NDAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0MSAwMDYyOzAwRTAgMDVBRSAwNzQxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0MSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MSAwMzE1IDAwNjI7CiswMDYxIDA3NDEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0MSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDc0MiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDIgMDU5QSAwMDYyOworMDA2MSAwNzQyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDMgMDA2MjswMEUwIDA1QUUgMDc0MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDMgMDMxNSAwMDYyOworMDA2MSAwNzQzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDA3NDQgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwNzQ0IDA1OUEgMDA2MjsKKzAwNjEgMDc0NCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwNzQ0IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwNzQ1IDAwNjI7MDBFMCAwNUFFIDA3NDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDUgMDMxNSAwMDYyOzAwRTAgMDVBRSAwNzQ1IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQ1IDAzMTUgMDA2MjsKKzAwNjEgMDc0NSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwNzQ1IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwNzQ2IDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMDc0NiAwNTlBIDAwNjI7CiswMDYxIDA3NDYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMDc0NiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDc0NyAwMDYyOzAwRTAgMDVBRSAwNzQ3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwNzQ3IDAzMTUgMDA2MjswMEUwIDA1QUUgMDc0NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0NyAwMzE1IDAwNjI7CiswMDYxIDA3NDcgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDc0NyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDc0OCAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA3NDggMDU5QSAwMDYyOworMDA2MSAwNzQ4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA3NDggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NDkgMDA2MjswMEUwIDA1QUUgMDc0OSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0OSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NDkgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NDkgMDMxNSAwMDYyOworMDA2MSAwNzQ5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NDkgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA3NEEgMDA2MjswMEUwIDA1QUUgMDc0QSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDc0QSAwMzE1IDAwNjI7MDBFMCAwNUFFIDA3NEEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA3NEEgMDMxNSAwMDYyOworMDA2MSAwNzRBIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA3NEEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDA5M0MgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDkzQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwOTREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA5NEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMDk1MSAwMDYyOzAwRTAgMDVBRSAwOTUxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwOTUxIDAzMTUgMDA2MjswMEUwIDA1QUUgMDk1MSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1MSAwMzE1IDAwNjI7CiswMDYxIDA5NTEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDk1MSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMDk1MiAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDA5NTIgMDU5QSAwMDYyOworMDA2MSAwOTUyIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDA5NTIgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA5NTMgMDA2MjswMEUwIDA1QUUgMDk1MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDA5NTMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTMgMDMxNSAwMDYyOworMDA2MSAwOTUzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDA5NTQgMDA2MjswMEUwIDA1QUUgMDk1NCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMDk1NCAwMzE1IDAwNjI7MDBFMCAwNUFFIDA5NTQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDA5NTQgMDMxNSAwMDYyOworMDA2MSAwOTU0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDA5NTQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDA5QkMgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwOUJDIDMwOTkgMDA2MjsKKzAwNjEgMDlCQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOUJDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwOUNEIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMDlDRCAwNUIwIDAwNjI7CiswMDYxIDA5Q0QgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDlDRCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMzA5OSAwOTNDIDAzMzQgMEEzQyAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDBBM0MgMzA5OSAwMDYyOworMDA2MSAwQTNDIDMwOTkgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDBBM0MgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBBNEQgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQTREIDA1QjAgMDA2MjsKKzAwNjEgMEE0RCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQTREIDA5NEQgMDVCMCAwMDYyOworMDA2MSAzMDk5IDA5M0MgMDMzNCAwQUJDIDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDA5M0MgMEFCQyAzMDk5IDAwNjI7CiswMDYxIDBBQkMgMzA5OSAwOTNDIDAzMzQgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMEFCQyAwOTNDIDMwOTkgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEFDRCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBBQ0QgMDVCMCAwMDYyOworMDA2MSAwQUNEIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBBQ0QgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDBCM0MgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQjNDIDMwOTkgMDA2MjsKKzAwNjEgMEIzQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQjNDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwQjREIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMEI0RCAwNUIwIDAwNjI7CiswMDYxIDBCNEQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMEI0RCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEJDRCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBCQ0QgMDVCMCAwMDYyOworMDA2MSAwQkNEIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBCQ0QgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBDNEQgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwQzREIDA1QjAgMDA2MjsKKzAwNjEgMEM0RCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwQzREIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwQzU2IDBDNTUgMDcxMSAwQzU1IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7MDA2MSAwNzExIDBDNTUgMEM1NSAwQzU2IDAwNjI7CiswMDYxIDBDNTUgMEM1NiAwQzU1IDA3MTEgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjswMDYxIDA3MTEgMEM1NSAwQzU1IDBDNTYgMDA2MjsKKzAwNjEgMEUzOCAwQzU2IDBDNTUgMEM1NiAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOzAwNjEgMEM1NSAwQzU2IDBDNTYgMEUzOCAwMDYyOworMDA2MSAwQzU2IDBFMzggMEM1NiAwQzU1IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU1IDBDNTYgMEM1NiAwRTM4IDAwNjI7CiswMDYxIDMwOTkgMDkzQyAwMzM0IDBDQkMgMDA2MjswMDYxIDAzMzQgMDkzQyAwQ0JDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQ0JDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQ0JDIDMwOTkgMDA2MjswMDYxIDAzMzQgMDkzQyAwQ0JDIDMwOTkgMDA2MjsKKzAwNjEgMENCQyAzMDk5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMDMzNCAwQ0JDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQ0JDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQ0JDIDA5M0MgMzA5OSAwMDYyOzAwNjEgMDMzNCAwQ0JDIDA5M0MgMzA5OSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAwQ0NEIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMENDRCAwNUIwIDAwNjI7CiswMDYxIDBDQ0QgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMENDRCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMEQ0RCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDBENEQgMDVCMCAwMDYyOworMDA2MSAwRDREIDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDBENEQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBEQ0EgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRENBIDA1QjAgMDA2MjsKKzAwNjEgMERDQSAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRENBIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwRTQ4IDBFMzggMEM1NiAwRTM4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzggMEUzOCAwRTQ4IDAwNjI7CiswMDYxIDBFMzggMEU0OCAwRTM4IDBDNTYgMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjswMDYxIDBDNTYgMEUzOCAwRTM4IDBFNDggMDA2MjsKKzAwNjEgMEU0OCAwRTM4IDBDNTYgMEUzOSAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOzAwNjEgMEM1NiAwRTM4IDBFMzkgMEU0OCAwMDYyOworMDA2MSAwRTM5IDBFNDggMEUzOCAwQzU2IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7MDA2MSAwQzU2IDBFMzkgMEUzOCAwRTQ4IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBFM0EgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRTNBIDA1QjAgMDA2MjsKKzAwNjEgMEUzQSAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRTNBIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwRUI4IDBFNDggMEUzOCAwRTQ4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0OCAwRUI4IDAwNjI7CiswMDYxIDBFNDggMEVCOCAwRTQ4IDBFMzggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTQ4IDBFQjggMDA2MjsKKzAwNjEgMEVCOCAwRTQ4IDBFMzggMEU0OSAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTQ4IDBFNDkgMEVCOCAwMDYyOworMDA2MSAwRTQ5IDBFQjggMEU0OCAwRTM4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDkgMEU0OCAwRUI4IDAwNjI7CiswMDYxIDBFQjggMEU0OCAwRTM4IDBFNEEgMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjswMDYxIDBFMzggMEU0OCAwRTRBIDBFQjggMDA2MjsKKzAwNjEgMEU0QSAwRUI4IDBFNDggMEUzOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOzAwNjEgMEUzOCAwRTRBIDBFNDggMEVCOCAwMDYyOworMDA2MSAwRUI4IDBFNDggMEUzOCAwRTRCIDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7MDA2MSAwRTM4IDBFNDggMEU0QiAwRUI4IDAwNjI7CiswMDYxIDBFNEIgMEVCOCAwRTQ4IDBFMzggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjswMDYxIDBFMzggMEU0QiAwRTQ4IDBFQjggMDA2MjsKKzAwNjEgMEVDOCAwRUI4IDBFNDggMEVCOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI4IDBFQjggMEVDOCAwMDYyOworMDA2MSAwRUI4IDBFQzggMEVCOCAwRTQ4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRTQ4IDBFQjggMEVCOCAwRUM4IDAwNjI7CiswMDYxIDBFQzggMEVCOCAwRTQ4IDBFQjkgMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjswMDYxIDBFNDggMEVCOCAwRUI5IDBFQzggMDA2MjsKKzAwNjEgMEVCOSAwRUM4IDBFQjggMEU0OCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOzAwNjEgMEU0OCAwRUI5IDBFQjggMEVDOCAwMDYyOworMDA2MSAwRjcxIDBFQzggMEVCOCAwRUM4IDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDOCAwRjcxIDAwNjI7CiswMDYxIDBFQzggMEY3MSAwRUM4IDBFQjggMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUM4IDBGNzEgMDA2MjsKKzAwNjEgMEY3MSAwRUM4IDBFQjggMEVDOSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUM4IDBFQzkgMEY3MSAwMDYyOworMDA2MSAwRUM5IDBGNzEgMEVDOCAwRUI4IDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzkgMEVDOCAwRjcxIDAwNjI7CiswMDYxIDBGNzEgMEVDOCAwRUI4IDBFQ0EgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjswMDYxIDBFQjggMEVDOCAwRUNBIDBGNzEgMDA2MjsKKzAwNjEgMEVDQSAwRjcxIDBFQzggMEVCOCAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOzAwNjEgMEVCOCAwRUNBIDBFQzggMEY3MSAwMDYyOworMDA2MSAwRjcxIDBFQzggMEVCOCAwRUNCIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7MDA2MSAwRUI4IDBFQzggMEVDQiAwRjcxIDAwNjI7CiswMDYxIDBFQ0IgMEY3MSAwRUM4IDBFQjggMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjswMDYxIDBFQjggMEVDQiAwRUM4IDBGNzEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMEYxOCAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMTggMDU5QSAwMDYyOworMDA2MSAwRjE4IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMTggMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDBGMTkgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAwRjE5IDA1OUEgMDA2MjsKKzAwNjEgMEYxOSAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAwRjE5IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwRjM1IDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEYzNSAwNTlBIDAwNjI7CiswMDYxIDBGMzUgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEYzNSAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMEYzNyAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDBGMzcgMDU5QSAwMDYyOworMDA2MSAwRjM3IDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDBGMzcgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDBGMzkgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAwRjM5IDMwMkEgMDA2MjsKKzAwNjEgMEYzOSAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwRjM5IDAzMUIgMzAyQSAwMDYyOworMDA2MSAwRjcyIDBGNzEgMEVDOCAwRjcxIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7MDA2MSAwRUM4IDBGNzEgMEY3MSAwRjcyIDAwNjI7CiswMDYxIDBGNzEgMEY3MiAwRjcxIDBFQzggMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjswMDYxIDBFQzggMEY3MSAwRjcxIDBGNzIgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY3MiAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGNzIgMEY3NCAwMDYyOworMDA2MSAwRjcyIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDAzMjEgMEY3NCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjswMDYxIDBGNzIgMEY3NCAwRjc0IDAzMjEgMDA2MjsKKzAwNjEgMEY3NCAwMzIxIDBGNzQgMEY3MiAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOzAwNjEgMEY3MiAwRjc0IDBGNzQgMDMyMSAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjdBIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3QSAwRjc0IDAwNjI7CiswMDYxIDBGN0EgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3QSAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY3QiAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGN0IgMEY3NCAwMDYyOworMDA2MSAwRjdCIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGN0IgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDBGNzQgMEY3MiAwRjcxIDBGN0MgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3MiAwRjdDIDBGNzQgMDA2MjsKKzAwNjEgMEY3QyAwRjc0IDBGNzIgMEY3MSAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjdDIDBGNzIgMEY3NCAwMDYyOworMDA2MSAwRjc0IDBGNzIgMEY3MSAwRjdEIDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGNzIgMEY3RCAwRjc0IDAwNjI7CiswMDYxIDBGN0QgMEY3NCAwRjcyIDBGNzEgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjswMDYxIDBGNzEgMEY3RCAwRjcyIDBGNzQgMDA2MjsKKzAwNjEgMEY3NCAwRjcyIDBGNzEgMEY4MCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOzAwNjEgMEY3MSAwRjcyIDBGODAgMEY3NCAwMDYyOworMDA2MSAwRjgwIDBGNzQgMEY3MiAwRjcxIDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7MDA2MSAwRjcxIDBGODAgMEY3MiAwRjc0IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDBGODIgMDA2MjswMEUwIDA1QUUgMEY4MiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4MiAwMzE1IDAwNjI7MDBFMCAwNUFFIDBGODIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODIgMDMxNSAwMDYyOworMDA2MSAwRjgyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDBGODMgMDA2MjswMEUwIDA1QUUgMEY4MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMEY4MyAwMzE1IDAwNjI7MDBFMCAwNUFFIDBGODMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODMgMDMxNSAwMDYyOworMDA2MSAwRjgzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDBGODMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDBGODQgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAwRjg0IDA1QjAgMDA2MjsKKzAwNjEgMEY4NCAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwRjg0IDA5NEQgMDVCMCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwRjg2IDAwNjI7MDBFMCAwNUFFIDBGODYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODYgMDMxNSAwMDYyOzAwRTAgMDVBRSAwRjg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwRjg2IDAzMTUgMDA2MjsKKzAwNjEgMEY4NiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAwRjg3IDAwNjI7MDBFMCAwNUFFIDBGODcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDBGODcgMDMxNSAwMDYyOzAwRTAgMDVBRSAwRjg3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAwRjg3IDAzMTUgMDA2MjsKKzAwNjEgMEY4NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwRjg3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAwRkM2IDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMEZDNiAwNTlBIDAwNjI7CiswMDYxIDBGQzYgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMEZDNiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMzA5OSAwOTNDIDAzMzQgMTAzNyAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOzAwNjEgMDMzNCAwOTNDIDEwMzcgMzA5OSAwMDYyOworMDA2MSAxMDM3IDMwOTkgMDkzQyAwMzM0IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7MDA2MSAwMzM0IDEwMzcgMDkzQyAzMDk5IDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDEwMzkgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMDM5IDA1QjAgMDA2MjsKKzAwNjEgMTAzOSAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMDM5IDA5NEQgMDVCMCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxMzVGIDAwNjI7MDBFMCAwNUFFIDEzNUYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDEzNUYgMDMxNSAwMDYyOzAwRTAgMDVBRSAxMzVGIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxMzVGIDAzMTUgMDA2MjsKKzAwNjEgMTM1RiAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxMzVGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxMzVGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxMzVGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxMzVGIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSAxNzE0IDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTcxNCAwNUIwIDAwNjI7CiswMDYxIDE3MTQgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTcxNCAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDVCMCAwOTREIDMwOTkgMTczNCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDE3MzQgMDVCMCAwMDYyOworMDA2MSAxNzM0IDA1QjAgMDk0RCAzMDk5IDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDE3MzQgMDk0RCAwNUIwIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDE3RDIgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxN0QyIDA1QjAgMDA2MjsKKzAwNjEgMTdEMiAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxN0QyIDA5NEQgMDVCMCAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxN0REIDAwNjI7MDBFMCAwNUFFIDE3REQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDE3REQgMDMxNSAwMDYyOzAwRTAgMDVBRSAxN0REIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxN0REIDAzMTUgMDA2MjsKKzAwNjEgMTdERCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxN0REIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxN0REIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxN0REIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxN0REIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzAwIDA1QUUgMUQxNkQgMThBOSAwMDYyOzAwRTAgMUQxNkQgMDVBRSAxOEE5IDAwNjI7MDA2MSAxRDE2RCAwNUFFIDE4QTkgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAxOEE5IDAwNjI7MDA2MSAxRDE2RCAwNUFFIDE4QTkgMDMwMCAwMDYyOworMDA2MSAxOEE5IDAzMDAgMDVBRSAxRDE2RCAwMDYyOzAwRTAgMUQxNkQgMThBOSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAxOEE5IDA1QUUgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMThBOSAwNUFFIDAwNjI7MDA2MSAxRDE2RCAxOEE5IDA1QUUgMDMwMCAwMDYyOworMDA2MSAzMDJFIDA1OUEgMDMxNiAxOTM5IDAwNjI7MDA2MSAwMzE2IDA1OUEgMTkzOSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMTkzOSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMTkzOSAzMDJFIDAwNjI7MDA2MSAwMzE2IDA1OUEgMTkzOSAzMDJFIDAwNjI7CiswMDYxIDE5MzkgMzAyRSAwNTlBIDAzMTYgMDA2MjswMDYxIDAzMTYgMTkzOSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMTkzOSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMTkzOSAwNTlBIDMwMkUgMDA2MjswMDYxIDAzMTYgMTkzOSAwNTlBIDMwMkUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMTkzQSAwMDYyOzAwRTAgMDVBRSAxOTNBIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxOTNBIDAzMTUgMDA2MjswMEUwIDA1QUUgMTkzQSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMTkzQSAwMzE1IDAwNjI7CiswMDYxIDE5M0EgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMTkzQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMTkzQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMTkzQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMTkzQSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMTkzQiAwMDYyOzAwNjEgMzAyQSAwMzE2IDE5M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDE5M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDE5M0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDE5M0IgMDU5QSAwMDYyOworMDA2MSAxOTNCIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDE5M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDE5M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDE5M0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDE5M0IgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFBMTcgMDA2MjswMEUwIDA1QUUgMUExNyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUExNyAwMzE1IDAwNjI7MDBFMCAwNUFFIDFBMTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFBMTcgMDMxNSAwMDYyOworMDA2MSAxQTE3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFBMTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFBMTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFBMTcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFBMTcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFBMTggMDA2MjswMDYxIDMwMkEgMDMxNiAxQTE4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxQTE4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxQTE4IDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxQTE4IDA1OUEgMDA2MjsKKzAwNjEgMUExOCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxQTE4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxQTE4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxQTE4IDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxQTE4IDAzMTYgMDU5QSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxREMwIDAwNjI7MDBFMCAwNUFFIDFEQzAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEQzAgMDMxNSAwMDYyOzAwRTAgMDVBRSAxREMwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxREMwIDAzMTUgMDA2MjsKKzAwNjEgMURDMCAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxREMwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMwIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMwIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxREMxIDAwNjI7MDBFMCAwNUFFIDFEQzEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEQzEgMDMxNSAwMDYyOzAwRTAgMDVBRSAxREMxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxREMxIDAzMTUgMDA2MjsKKzAwNjEgMURDMSAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxREMxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMxIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxREMxIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxREMyIDAwNjI7MDA2MSAzMDJBIDAzMTYgMURDMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMURDMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMURDMiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMURDMiAwNTlBIDAwNjI7CiswMDYxIDFEQzIgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMURDMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMURDMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMURDMiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMURDMiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMURDMyAwMDYyOzAwRTAgMDVBRSAxREMzIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxREMzIDAzMTUgMDA2MjswMEUwIDA1QUUgMURDMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMURDMyAwMzE1IDAwNjI7CiswMDYxIDFEQzMgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMURDMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMURDMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMURDMyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMURDMyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBEMCAwMDYyOzAwRTAgMDVBRSAyMEQwIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQwIDAzMTUgMDA2MjswMEUwIDA1QUUgMjBEMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEMCAwMzE1IDAwNjI7CiswMDYxIDIwRDAgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBEMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEMCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEMCAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBEMSAwMDYyOzAwRTAgMDVBRSAyMEQxIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEQxIDAzMTUgMDA2MjswMEUwIDA1QUUgMjBEMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEMSAwMzE1IDAwNjI7CiswMDYxIDIwRDEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBEMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEMSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBEMSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRDIgMDA2MjswMDYxIDAzMzQgMjBEMiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDIgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQyIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEMiAwOTNDIDAwNjI7CiswMDYxIDIwRDIgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEQyIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEMiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDIgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQyIDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBEMyAwMDYyOzAwNjEgMDMzNCAyMEQzIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEMyAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDMgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQzIDA5M0MgMDA2MjsKKzAwNjEgMjBEMyAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRDMgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQzIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEMyAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDMgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRDQgMDA2MjswMEUwIDA1QUUgMjBENCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENCAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRDQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDQgMDMxNSAwMDYyOworMDA2MSAyMEQ0IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRDQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRDUgMDA2MjswMEUwIDA1QUUgMjBENSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENSAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRDUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDUgMDMxNSAwMDYyOworMDA2MSAyMEQ1IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRDYgMDA2MjswMEUwIDA1QUUgMjBENiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENiAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRDYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDYgMDMxNSAwMDYyOworMDA2MSAyMEQ2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRDcgMDA2MjswMEUwIDA1QUUgMjBENyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBENyAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRDcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRDcgMDMxNSAwMDYyOworMDA2MSAyMEQ3IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRDcgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEQ4IDAwNjI7MDA2MSAwMzM0IDIwRDggMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQ4IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEOCAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDggMDkzQyAwMDYyOworMDA2MSAyMEQ4IDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBEOCAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDggMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQ4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEOCAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRDkgMDA2MjswMDYxIDAzMzQgMjBEOSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRDkgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEQ5IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEOSAwOTNDIDAwNjI7CiswMDYxIDIwRDkgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEQ5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEOSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRDkgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEQ5IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBEQSAwMDYyOzAwNjEgMDMzNCAyMERBIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBEQSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwREEgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMERBIDA5M0MgMDA2MjsKKzAwNjEgMjBEQSAwOTNDIDAzMzQgMDA2MjswMDYxIDIwREEgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMERBIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBEQSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwREEgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwREIgMDA2MjswMEUwIDA1QUUgMjBEQiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwREIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwREIgMDMxNSAwMDYyOworMDA2MSAyMERCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwREIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwREIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwREIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwREIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwREMgMDA2MjswMEUwIDA1QUUgMjBEQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBEQyAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwREMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwREMgMDMxNSAwMDYyOworMDA2MSAyMERDIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwREMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwREMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwREMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwREMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDIwRTEgMDA2MjswMEUwIDA1QUUgMjBFMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBFMSAwMzE1IDAwNjI7MDBFMCAwNUFFIDIwRTEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRTEgMDMxNSAwMDYyOworMDA2MSAyMEUxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDIwRTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDIwRTEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA5M0MgMDMzNCAyMEU1IDAwNjI7MDA2MSAwMzM0IDIwRTUgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEU1IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFNSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRTUgMDkzQyAwMDYyOworMDA2MSAyMEU1IDA5M0MgMDMzNCAwMDYyOzAwNjEgMjBFNSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRTUgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEU1IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFNSAwMzM0IDA5M0MgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRTYgMDA2MjswMDYxIDAzMzQgMjBFNiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRTYgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEU2IDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFNiAwOTNDIDAwNjI7CiswMDYxIDIwRTYgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEU2IDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFNiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRTYgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEU2IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAyMEU3IDAwNjI7MDBFMCAwNUFFIDIwRTcgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDIwRTcgMDMxNSAwMDYyOzAwRTAgMDVBRSAyMEU3IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEU3IDAzMTUgMDA2MjsKKzAwNjEgMjBFNyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAyMEU3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAyMEU3IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAyMEU4IDAwNjI7MDA2MSAzMDJBIDAzMTYgMjBFOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMjBFOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMjBFOCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMjBFOCAwNTlBIDAwNjI7CiswMDYxIDIwRTggMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMjBFOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMjBFOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMjBFOCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMjBFOCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMjBFOSAwMDYyOzAwRTAgMDVBRSAyMEU5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAyMEU5IDAzMTUgMDA2MjswMEUwIDA1QUUgMjBFOSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMjBFOSAwMzE1IDAwNjI7CiswMDYxIDIwRTkgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMjBFOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFOSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMjBFOSAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDkzQyAwMzM0IDIwRUEgMDA2MjswMDYxIDAzMzQgMjBFQSAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRUEgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEVBIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFQSAwOTNDIDAwNjI7CiswMDYxIDIwRUEgMDkzQyAwMzM0IDAwNjI7MDA2MSAyMEVBIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFQSAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRUEgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEVBIDAzMzQgMDkzQyAwMDYyOworMDA2MSAwOTNDIDAzMzQgMjBFQiAwMDYyOzAwNjEgMDMzNCAyMEVCIDA5M0MgMDA2MjswMDYxIDAzMzQgMjBFQiAwOTNDIDAwNjI7MDA2MSAwMzM0IDIwRUIgMDkzQyAwMDYyOzAwNjEgMDMzNCAyMEVCIDA5M0MgMDA2MjsKKzAwNjEgMjBFQiAwOTNDIDAzMzQgMDA2MjswMDYxIDIwRUIgMDMzNCAwOTNDIDAwNjI7MDA2MSAyMEVCIDAzMzQgMDkzQyAwMDYyOzAwNjEgMjBFQiAwMzM0IDA5M0MgMDA2MjswMDYxIDIwRUIgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDAzMTYgMzAyQSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjswMDYxIDAzMUIgMzAyQSAzMDJBIDAzMTYgMDA2MjsKKzAwNjEgMzAyQSAwMzE2IDMwMkEgMDMxQiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOzAwNjEgMDMxQiAzMDJBIDMwMkEgMDMxNiAwMDYyOworMDA2MSAwMzAwIDA1QUUgMUQxNkQgMzAyQiAwMDYyOzAwRTAgMUQxNkQgMDVBRSAzMDJCIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDMwMkIgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMDVBRSAzMDJCIDAwNjI7MDA2MSAxRDE2RCAwNUFFIDMwMkIgMDMwMCAwMDYyOworMDA2MSAzMDJCIDAzMDAgMDVBRSAxRDE2RCAwMDYyOzAwRTAgMUQxNkQgMzAyQiAwNUFFIDAwNjI7MDA2MSAxRDE2RCAzMDJCIDA1QUUgMDMwMCAwMDYyOzAwRTAgMUQxNkQgMzAyQiAwNUFFIDAwNjI7MDA2MSAxRDE2RCAzMDJCIDA1QUUgMDMwMCAwMDYyOworMDA2MSAwMzVDIDAzMTUgMDMwMCAzMDJDIDAwNjI7MDBFMCAwMzE1IDMwMkMgMDM1QyAwMDYyOzAwNjEgMDMwMCAwMzE1IDMwMkMgMDM1QyAwMDYyOzAwRTAgMDMxNSAzMDJDIDAzNUMgMDA2MjswMDYxIDAzMDAgMDMxNSAzMDJDIDAzNUMgMDA2MjsKKzAwNjEgMzAyQyAwMzVDIDAzMTUgMDMwMCAwMDYyOzAwRTAgMzAyQyAwMzE1IDAzNUMgMDA2MjswMDYxIDAzMDAgMzAyQyAwMzE1IDAzNUMgMDA2MjswMEUwIDMwMkMgMDMxNSAwMzVDIDAwNjI7MDA2MSAwMzAwIDMwMkMgMDMxNSAwMzVDIDAwNjI7CiswMDYxIDMwMkUgMDU5QSAwMzE2IDMwMkQgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjswMDYxIDAzMTYgMDU5QSAzMDJEIDMwMkUgMDA2MjsKKzAwNjEgMzAyRCAzMDJFIDA1OUEgMDMxNiAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDMxNiAzMDJEIDA1OUEgMzAyRSAwMDYyOworMDA2MSAxRDE2RCAzMDJFIDA1OUEgMzAyRSAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjsKKzAwNjEgMzAyRSAxRDE2RCAzMDJFIDA1OUEgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJFIDFEMTZEIDAwNjI7CiswMDYxIDFEMTZEIDMwMkUgMDU5QSAzMDJGIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRiAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJFIDMwMkYgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRSAzMDJGIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkUgMzAyRiAxRDE2RCAwMDYyOworMDA2MSAzMDJGIDFEMTZEIDMwMkUgMDU5QSAwMDYyOzAwNjEgMDU5QSAzMDJGIDMwMkUgMUQxNkQgMDA2MjswMDYxIDA1OUEgMzAyRiAzMDJFIDFEMTZEIDAwNjI7MDA2MSAwNTlBIDMwMkYgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMDU5QSAzMDJGIDMwMkUgMUQxNkQgMDA2MjsKKzAwNjEgMDk0RCAzMDk5IDA5M0MgMzA5OSAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDk5IDMwOTkgMDk0RCAwMDYyOworMDA2MSAzMDk5IDA5NEQgMzA5OSAwOTNDIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7MDA2MSAwOTNDIDMwOTkgMzA5OSAwOTREIDAwNjI7CiswMDYxIDA5NEQgMzA5OSAwOTNDIDMwOUEgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjswMDYxIDA5M0MgMzA5OSAzMDlBIDA5NEQgMDA2MjsKKzAwNjEgMzA5QSAwOTREIDMwOTkgMDkzQyAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOzAwNjEgMDkzQyAzMDlBIDMwOTkgMDk0RCAwMDYyOworMDA2MSAwNUIwIDA5NEQgMzA5OSBBODA2IDAwNjI7MDA2MSAzMDk5IDA5NEQgQTgwNiAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgQTgwNiAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgQTgwNiAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgQTgwNiAwNUIwIDAwNjI7CiswMDYxIEE4MDYgMDVCMCAwOTREIDMwOTkgMDA2MjswMDYxIDMwOTkgQTgwNiAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgQTgwNiAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgQTgwNiAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgQTgwNiAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMDY0QiBGQjFFIDA1QzIgRkIxRSAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOzAwNjEgMDVDMiBGQjFFIEZCMUUgMDY0QiAwMDYyOworMDA2MSBGQjFFIDA2NEIgRkIxRSAwNUMyIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7MDA2MSAwNUMyIEZCMUUgRkIxRSAwNjRCIDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIEZFMjAgMDA2MjswMEUwIDA1QUUgRkUyMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMCAwMzE1IDAwNjI7MDBFMCAwNUFFIEZFMjAgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjAgMDMxNSAwMDYyOworMDA2MSBGRTIwIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIEZFMjAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjAgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjAgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIEZFMjEgMDA2MjswMEUwIDA1QUUgRkUyMSAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMSAwMzE1IDAwNjI7MDBFMCAwNUFFIEZFMjEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjEgMDMxNSAwMDYyOworMDA2MSBGRTIxIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIEZFMjEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIEZFMjIgMDA2MjswMEUwIDA1QUUgRkUyMiAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMiAwMzE1IDAwNjI7MDBFMCAwNUFFIEZFMjIgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjIgMDMxNSAwMDYyOworMDA2MSBGRTIyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIEZFMjIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjIgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIEZFMjMgMDA2MjswMEUwIDA1QUUgRkUyMyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgRkUyMyAwMzE1IDAwNjI7MDBFMCAwNUFFIEZFMjMgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIEZFMjMgMDMxNSAwMDYyOworMDA2MSBGRTIzIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIEZFMjMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIEZFMjMgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDEwQTBEIDAwNjI7MDA2MSAzMDJBIDAzMTYgMTBBMEQgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDEwQTBEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxMEEwRCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMTBBMEQgMDU5QSAwMDYyOworMDA2MSAxMEEwRCAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxMEEwRCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMTBBMEQgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDEwQTBEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxMEEwRCAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMTBBMEYgMDA2MjswMEUwIDA1QUUgMTBBMEYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDEwQTBGIDAzMTUgMDA2MjswMEUwIDA1QUUgMTBBMEYgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDEwQTBGIDAzMTUgMDA2MjsKKzAwNjEgMTBBMEYgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMTBBMEYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDEwQTBGIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxMEEwRiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMTBBMEYgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDEwQTM4IDAwNjI7MDBFMCAwNUFFIDEwQTM4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxMEEzOCAwMzE1IDAwNjI7MDBFMCAwNUFFIDEwQTM4IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxMEEzOCAwMzE1IDAwNjI7CiswMDYxIDEwQTM4IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDEwQTM4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxMEEzOCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMTBBMzggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDEwQTM4IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwOTNDIDAzMzQgMTBBMzkgMDA2MjswMDYxIDAzMzQgMTBBMzkgMDkzQyAwMDYyOzAwNjEgMDMzNCAxMEEzOSAwOTNDIDAwNjI7MDA2MSAwMzM0IDEwQTM5IDA5M0MgMDA2MjswMDYxIDAzMzQgMTBBMzkgMDkzQyAwMDYyOworMDA2MSAxMEEzOSAwOTNDIDAzMzQgMDA2MjswMDYxIDEwQTM5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMTBBMzkgMDMzNCAwOTNDIDAwNjI7MDA2MSAxMEEzOSAwMzM0IDA5M0MgMDA2MjswMDYxIDEwQTM5IDAzMzQgMDkzQyAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxMEEzQSAwMDYyOzAwNjEgMzAyQSAwMzE2IDEwQTNBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxMEEzQSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMTBBM0EgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDEwQTNBIDA1OUEgMDA2MjsKKzAwNjEgMTBBM0EgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMTBBM0EgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDEwQTNBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxMEEzQSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMTBBM0EgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1QjAgMDk0RCAzMDk5IDEwQTNGIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTBBM0YgMDVCMCAwMDYyOzAwNjEgMzA5OSAwOTREIDEwQTNGIDA1QjAgMDA2MjswMDYxIDMwOTkgMDk0RCAxMEEzRiAwNUIwIDAwNjI7MDA2MSAzMDk5IDA5NEQgMTBBM0YgMDVCMCAwMDYyOworMDA2MSAxMEEzRiAwNUIwIDA5NEQgMzA5OSAwMDYyOzAwNjEgMzA5OSAxMEEzRiAwOTREIDA1QjAgMDA2MjswMDYxIDMwOTkgMTBBM0YgMDk0RCAwNUIwIDAwNjI7MDA2MSAzMDk5IDEwQTNGIDA5NEQgMDVCMCAwMDYyOzAwNjEgMzA5OSAxMEEzRiAwOTREIDA1QjAgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNjUgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjUgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY1IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NSAzMDJBIDAwNjI7CiswMDYxIDFEMTY1IDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTY1IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2NSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNjUgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTY1IDAzMUIgMzAyQSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE2NiAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY2IDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2NiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNjYgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTY2IDMwMkEgMDA2MjsKKzAwNjEgMUQxNjYgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNjYgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTY2IDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2NiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNjYgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAxRDE2NyAwMDYyOzAwNjEgMDMzNCAxRDE2NyAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY3IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjcgMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2NyAwOTNDIDAwNjI7CiswMDYxIDFEMTY3IDA5M0MgMDMzNCAwMDYyOzAwNjEgMUQxNjcgMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2NyAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY3IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjcgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAxRDE2OCAwMDYyOzAwNjEgMDMzNCAxRDE2OCAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY4IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjggMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2OCAwOTNDIDAwNjI7CiswMDYxIDFEMTY4IDA5M0MgMDMzNCAwMDYyOzAwNjEgMUQxNjggMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2OCAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY4IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjggMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA5M0MgMDMzNCAxRDE2OSAwMDYyOzAwNjEgMDMzNCAxRDE2OSAwOTNDIDAwNjI7MDA2MSAwMzM0IDFEMTY5IDA5M0MgMDA2MjswMDYxIDAzMzQgMUQxNjkgMDkzQyAwMDYyOzAwNjEgMDMzNCAxRDE2OSAwOTNDIDAwNjI7CiswMDYxIDFEMTY5IDA5M0MgMDMzNCAwMDYyOzAwNjEgMUQxNjkgMDMzNCAwOTNDIDAwNjI7MDA2MSAxRDE2OSAwMzM0IDA5M0MgMDA2MjswMDYxIDFEMTY5IDAzMzQgMDkzQyAwMDYyOzAwNjEgMUQxNjkgMDMzNCAwOTNDIDAwNjI7CiswMDYxIDA1QUUgMUQxNkQgMzAyRSAxRDE2RCAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjswMDYxIDMwMkUgMUQxNkQgMUQxNkQgMDVBRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7CiswMDYxIDFEMTZEIDA1QUUgMUQxNkQgMzAyRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7MDA2MSAzMDJFIDFEMTZEIDFEMTZEIDA1QUUgMDA2MjswMDYxIDMwMkUgMUQxNkQgMUQxNkQgMDVBRSAwMDYyOzAwNjEgMzAyRSAxRDE2RCAxRDE2RCAwNUFFIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDFEMTZFIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkUgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZFIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkUgMzAyQSAwMDYyOworMDA2MSAxRDE2RSAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAxRDE2RSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNkUgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTZFIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2RSAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNkYgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNkYgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTZGIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE2RiAzMDJBIDAwNjI7CiswMDYxIDFEMTZGIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTZGIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE2RiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNkYgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTZGIDAzMUIgMzAyQSAwMDYyOworMDA2MSAzMDJBIDAzMUIgMDMyMSAxRDE3MCAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcwIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MCAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzAgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcwIDMwMkEgMDA2MjsKKzAwNjEgMUQxNzAgMzAyQSAwMzFCIDAzMjEgMDA2MjswMDYxIDAzMjEgMUQxNzAgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcwIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MCAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzAgMDMxQiAzMDJBIDAwNjI7CiswMDYxIDMwMkEgMDMxQiAwMzIxIDFEMTcxIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzEgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcxIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MSAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzEgMzAyQSAwMDYyOworMDA2MSAxRDE3MSAzMDJBIDAzMUIgMDMyMSAwMDYyOzAwNjEgMDMyMSAxRDE3MSAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzEgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcxIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MSAwMzFCIDMwMkEgMDA2MjsKKzAwNjEgMzAyQSAwMzFCIDAzMjEgMUQxNzIgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MiAzMDJBIDAwNjI7MDA2MSAwMzIxIDAzMUIgMUQxNzIgMzAyQSAwMDYyOzAwNjEgMDMyMSAwMzFCIDFEMTcyIDMwMkEgMDA2MjswMDYxIDAzMjEgMDMxQiAxRDE3MiAzMDJBIDAwNjI7CiswMDYxIDFEMTcyIDMwMkEgMDMxQiAwMzIxIDAwNjI7MDA2MSAwMzIxIDFEMTcyIDAzMUIgMzAyQSAwMDYyOzAwNjEgMDMyMSAxRDE3MiAwMzFCIDMwMkEgMDA2MjswMDYxIDAzMjEgMUQxNzIgMDMxQiAzMDJBIDAwNjI7MDA2MSAwMzIxIDFEMTcyIDAzMUIgMzAyQSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE3QiAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0IgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdCIDA1OUEgMDA2MjsKKzAwNjEgMUQxN0IgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxN0IgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0IgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTdDIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0MgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdDIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3QyAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0MgMDU5QSAwMDYyOworMDA2MSAxRDE3QyAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE3QyAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0MgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdDIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3QyAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxN0QgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0QgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdEIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RCAwNTlBIDAwNjI7CiswMDYxIDFEMTdEIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTdEIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0QgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdEIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE3RSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdFIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0UgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdFIDA1OUEgMDA2MjsKKzAwNjEgMUQxN0UgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxN0UgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdFIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0UgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTdGIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0YgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTdGIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE3RiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxN0YgMDU5QSAwMDYyOworMDA2MSAxRDE3RiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE3RiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxN0YgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTdGIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE3RiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDU5QSAwMzE2IDMwMkEgMUQxODAgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MCAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODAgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgwIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MCAwNTlBIDAwNjI7CiswMDYxIDFEMTgwIDA1OUEgMDMxNiAzMDJBIDAwNjI7MDA2MSAzMDJBIDFEMTgwIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MCAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODAgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgwIDAzMTYgMDU5QSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE4MSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgxIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgxIDA1OUEgMDA2MjsKKzAwNjEgMUQxODEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxODEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgxIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMTgyIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMTgyIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4MiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxODIgMDU5QSAwMDYyOworMDA2MSAxRDE4MiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE4MiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxODIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMTgyIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4MiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxODUgMDA2MjswMEUwIDA1QUUgMUQxODUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg1IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxODUgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg1IDAzMTUgMDA2MjsKKzAwNjEgMUQxODUgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxODUgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg1IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODUgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMTg2IDAwNjI7MDBFMCAwNUFFIDFEMTg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4NiAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMTg2IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4NiAwMzE1IDAwNjI7CiswMDYxIDFEMTg2IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMTg2IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODYgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg2IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDE4NyAwMDYyOzAwRTAgMDVBRSAxRDE4NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODcgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDE4NyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxODcgMDMxNSAwMDYyOworMDA2MSAxRDE4NyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDE4NyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODcgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg3IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4NyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxODggMDA2MjswMEUwIDA1QUUgMUQxODggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg4IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxODggMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMTg4IDAzMTUgMDA2MjsKKzAwNjEgMUQxODggMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxODggMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg4IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4OCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODggMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMTg5IDAwNjI7MDBFMCAwNUFFIDFEMTg5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4OSAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMTg5IDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDE4OSAwMzE1IDAwNjI7CiswMDYxIDFEMTg5IDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMTg5IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDE4OSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxODkgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMTg5IDAzMDAgMDMxNSAwMDYyOworMDA2MSAwNTlBIDAzMTYgMzAyQSAxRDE4QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThBIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QSAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEEgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThBIDA1OUEgMDA2MjsKKzAwNjEgMUQxOEEgMDU5QSAwMzE2IDMwMkEgMDA2MjswMDYxIDMwMkEgMUQxOEEgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMThBIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4QSAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxOEEgMDMxNiAwNTlBIDAwNjI7CiswMDYxIDA1OUEgMDMxNiAzMDJBIDFEMThCIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEIgMDU5QSAwMDYyOzAwNjEgMzAyQSAwMzE2IDFEMThCIDA1OUEgMDA2MjswMDYxIDMwMkEgMDMxNiAxRDE4QiAwNTlBIDAwNjI7MDA2MSAzMDJBIDAzMTYgMUQxOEIgMDU5QSAwMDYyOworMDA2MSAxRDE4QiAwNTlBIDAzMTYgMzAyQSAwMDYyOzAwNjEgMzAyQSAxRDE4QiAwMzE2IDA1OUEgMDA2MjswMDYxIDMwMkEgMUQxOEIgMDMxNiAwNTlBIDAwNjI7MDA2MSAzMDJBIDFEMThCIDAzMTYgMDU5QSAwMDYyOzAwNjEgMzAyQSAxRDE4QiAwMzE2IDA1OUEgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxQUEgMDA2MjswMEUwIDA1QUUgMUQxQUEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFBIDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxQUEgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFBIDAzMTUgMDA2MjsKKzAwNjEgMUQxQUEgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxQUEgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFBIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQSAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUEgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMUFCIDAwNjI7MDBFMCAwNUFFIDFEMUFCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDFBQiAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMUFCIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDFBQiAwMzE1IDAwNjI7CiswMDYxIDFEMUFCIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMUFCIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFCIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDFBQyAwMDYyOzAwRTAgMDVBRSAxRDFBQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUMgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDFBQyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQxQUMgMDMxNSAwMDYyOworMDA2MSAxRDFBQyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDFBQyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFDIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBQyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQxQUQgMDA2MjswMEUwIDA1QUUgMUQxQUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFEIDAzMTUgMDA2MjswMEUwIDA1QUUgMUQxQUQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMUFEIDAzMTUgMDA2MjsKKzAwNjEgMUQxQUQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQxQUQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMUFEIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDFBRCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQxQUQgMDMwMCAwMzE1IDAwNjI7CiswMDYxIDAzMTUgMDMwMCAwNUFFIDFEMjQyIDAwNjI7MDBFMCAwNUFFIDFEMjQyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDI0MiAwMzE1IDAwNjI7MDBFMCAwNUFFIDFEMjQyIDAzMTUgMDA2MjswMDYxIDA1QUUgMDMwMCAxRDI0MiAwMzE1IDAwNjI7CiswMDYxIDFEMjQyIDAzMTUgMDMwMCAwNUFFIDAwNjI7MDA2MSAwNUFFIDFEMjQyIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDI0MiAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQyNDIgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMjQyIDAzMDAgMDMxNSAwMDYyOworMDA2MSAwMzE1IDAzMDAgMDVBRSAxRDI0MyAwMDYyOzAwRTAgMDVBRSAxRDI0MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQyNDMgMDMxNSAwMDYyOzAwRTAgMDVBRSAxRDI0MyAwMzE1IDAwNjI7MDA2MSAwNUFFIDAzMDAgMUQyNDMgMDMxNSAwMDYyOworMDA2MSAxRDI0MyAwMzE1IDAzMDAgMDVBRSAwMDYyOzAwNjEgMDVBRSAxRDI0MyAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQyNDMgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMjQzIDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDI0MyAwMzAwIDAzMTUgMDA2MjsKKzAwNjEgMDMxNSAwMzAwIDA1QUUgMUQyNDQgMDA2MjswMEUwIDA1QUUgMUQyNDQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMjQ0IDAzMTUgMDA2MjswMEUwIDA1QUUgMUQyNDQgMDMxNSAwMDYyOzAwNjEgMDVBRSAwMzAwIDFEMjQ0IDAzMTUgMDA2MjsKKzAwNjEgMUQyNDQgMDMxNSAwMzAwIDA1QUUgMDA2MjswMDYxIDA1QUUgMUQyNDQgMDMwMCAwMzE1IDAwNjI7MDA2MSAwNUFFIDFEMjQ0IDAzMDAgMDMxNSAwMDYyOzAwNjEgMDVBRSAxRDI0NCAwMzAwIDAzMTUgMDA2MjswMDYxIDA1QUUgMUQyNDQgMDMwMCAwMzE1IDAwNjI7CisjCitAUGFydDMgIyBQUkkgIzI5IFRlc3QKKyMKKzA5QzcgMDMzNCAwOUJFOzA5QzcgMDMzNCAwOUJFOzA5QzcgMDMzNCAwOUJFOzA5QzcgMDMzNCAwOUJFOzA5QzcgMDMzNCAwOUJFOworMDlDNyAwMzM0IDA5RDc7MDlDNyAwMzM0IDA5RDc7MDlDNyAwMzM0IDA5RDc7MDlDNyAwMzM0IDA5RDc7MDlDNyAwMzM0IDA5RDc7CiswQjQ3IDAzMzQgMEIzRTswQjQ3IDAzMzQgMEIzRTswQjQ3IDAzMzQgMEIzRTswQjQ3IDAzMzQgMEIzRTswQjQ3IDAzMzQgMEIzRTsKKzBCNDcgMDMzNCAwQjU2OzBCNDcgMDMzNCAwQjU2OzBCNDcgMDMzNCAwQjU2OzBCNDcgMDMzNCAwQjU2OzBCNDcgMDMzNCAwQjU2OworMEI0NyAwMzM0IDBCNTc7MEI0NyAwMzM0IDBCNTc7MEI0NyAwMzM0IDBCNTc7MEI0NyAwMzM0IDBCNTc7MEI0NyAwMzM0IDBCNTc7CiswQjkyIDAzMzQgMEJENzswQjkyIDAzMzQgMEJENzswQjkyIDAzMzQgMEJENzswQjkyIDAzMzQgMEJENzswQjkyIDAzMzQgMEJENzsKKzBCQzYgMDMzNCAwQkJFOzBCQzYgMDMzNCAwQkJFOzBCQzYgMDMzNCAwQkJFOzBCQzYgMDMzNCAwQkJFOzBCQzYgMDMzNCAwQkJFOworMEJDNiAwMzM0IDBCRDc7MEJDNiAwMzM0IDBCRDc7MEJDNiAwMzM0IDBCRDc7MEJDNiAwMzM0IDBCRDc7MEJDNiAwMzM0IDBCRDc7CiswQkM3IDAzMzQgMEJCRTswQkM3IDAzMzQgMEJCRTswQkM3IDAzMzQgMEJCRTswQkM3IDAzMzQgMEJCRTswQkM3IDAzMzQgMEJCRTsKKzBDQkYgMDMzNCAwQ0Q1OzBDQkYgMDMzNCAwQ0Q1OzBDQkYgMDMzNCAwQ0Q1OzBDQkYgMDMzNCAwQ0Q1OzBDQkYgMDMzNCAwQ0Q1OworMENDNiAwMzM0IDBDQzI7MENDNiAwMzM0IDBDQzI7MENDNiAwMzM0IDBDQzI7MENDNiAwMzM0IDBDQzI7MENDNiAwMzM0IDBDQzI7CiswQ0M2IDAzMzQgMENENTswQ0M2IDAzMzQgMENENTswQ0M2IDAzMzQgMENENTswQ0M2IDAzMzQgMENENTswQ0M2IDAzMzQgMENENTsKKzBDQzYgMDMzNCAwQ0Q2OzBDQzYgMDMzNCAwQ0Q2OzBDQzYgMDMzNCAwQ0Q2OzBDQzYgMDMzNCAwQ0Q2OzBDQzYgMDMzNCAwQ0Q2OworMENDQSAwMzM0IDBDRDU7MENDQSAwMzM0IDBDRDU7MENDNiAwQ0MyIDAzMzQgMENENTswQ0NBIDAzMzQgMENENTswQ0M2IDBDQzIgMDMzNCAwQ0Q1OworMEQ0NiAwMzM0IDBEM0U7MEQ0NiAwMzM0IDBEM0U7MEQ0NiAwMzM0IDBEM0U7MEQ0NiAwMzM0IDBEM0U7MEQ0NiAwMzM0IDBEM0U7CiswRDQ2IDAzMzQgMEQ1NzswRDQ2IDAzMzQgMEQ1NzswRDQ2IDAzMzQgMEQ1NzswRDQ2IDAzMzQgMEQ1NzswRDQ2IDAzMzQgMEQ1NzsKKzBENDcgMDMzNCAwRDNFOzBENDcgMDMzNCAwRDNFOzBENDcgMDMzNCAwRDNFOzBENDcgMDMzNCAwRDNFOzBENDcgMDMzNCAwRDNFOworMEREOSAwMzM0IDBEQ0Y7MEREOSAwMzM0IDBEQ0Y7MEREOSAwMzM0IDBEQ0Y7MEREOSAwMzM0IDBEQ0Y7MEREOSAwMzM0IDBEQ0Y7CiswREQ5IDAzMzQgMERERjswREQ5IDAzMzQgMERERjswREQ5IDAzMzQgMERERjswREQ5IDAzMzQgMERERjswREQ5IDAzMzQgMERERjsKKzBGNDAgMDMzNCAwRkI1OzBGNDAgMDMzNCAwRkI1OzBGNDAgMDMzNCAwRkI1OzBGNDAgMDMzNCAwRkI1OzBGNDAgMDMzNCAwRkI1OworMEY0MiAwMzM0IDBGQjc7MEY0MiAwMzM0IDBGQjc7MEY0MiAwMzM0IDBGQjc7MEY0MiAwMzM0IDBGQjc7MEY0MiAwMzM0IDBGQjc7CiswRjRDIDAzMzQgMEZCNzswRjRDIDAzMzQgMEZCNzswRjRDIDAzMzQgMEZCNzswRjRDIDAzMzQgMEZCNzswRjRDIDAzMzQgMEZCNzsKKzBGNTEgMDMzNCAwRkI3OzBGNTEgMDMzNCAwRkI3OzBGNTEgMDMzNCAwRkI3OzBGNTEgMDMzNCAwRkI3OzBGNTEgMDMzNCAwRkI3OworMEY1NiAwMzM0IDBGQjc7MEY1NiAwMzM0IDBGQjc7MEY1NiAwMzM0IDBGQjc7MEY1NiAwMzM0IDBGQjc7MEY1NiAwMzM0IDBGQjc7CiswRjVCIDAzMzQgMEZCNzswRjVCIDAzMzQgMEZCNzswRjVCIDAzMzQgMEZCNzswRjVCIDAzMzQgMEZCNzswRjVCIDAzMzQgMEZCNzsKKzBGOTAgMDMzNCAwRkI1OzBGOTAgMDMzNCAwRkI1OzBGOTAgMDMzNCAwRkI1OzBGOTAgMDMzNCAwRkI1OzBGOTAgMDMzNCAwRkI1OworMEY5MiAwMzM0IDBGQjc7MEY5MiAwMzM0IDBGQjc7MEY5MiAwMzM0IDBGQjc7MEY5MiAwMzM0IDBGQjc7MEY5MiAwMzM0IDBGQjc7CiswRjlDIDAzMzQgMEZCNzswRjlDIDAzMzQgMEZCNzswRjlDIDAzMzQgMEZCNzswRjlDIDAzMzQgMEZCNzswRjlDIDAzMzQgMEZCNzsKKzBGQTEgMDMzNCAwRkI3OzBGQTEgMDMzNCAwRkI3OzBGQTEgMDMzNCAwRkI3OzBGQTEgMDMzNCAwRkI3OzBGQTEgMDMzNCAwRkI3OworMEZBNiAwMzM0IDBGQjc7MEZBNiAwMzM0IDBGQjc7MEZBNiAwMzM0IDBGQjc7MEZBNiAwMzM0IDBGQjc7MEZBNiAwMzM0IDBGQjc7CiswRkFCIDAzMzQgMEZCNzswRkFCIDAzMzQgMEZCNzswRkFCIDAzMzQgMEZCNzswRkFCIDAzMzQgMEZCNzswRkFCIDAzMzQgMEZCNzsKKzEwMjUgMDMzNCAxMDJFOzEwMjUgMDMzNCAxMDJFOzEwMjUgMDMzNCAxMDJFOzEwMjUgMDMzNCAxMDJFOzEwMjUgMDMzNCAxMDJFOworMTEwMCAwMzM0IDExNjE7MTEwMCAwMzM0IDExNjE7MTEwMCAwMzM0IDExNjE7MTEwMCAwMzM0IDExNjE7MTEwMCAwMzM0IDExNjE7CisxMTAwIDAzMzQgMTE2RTsxMTAwIDAzMzQgMTE2RTsxMTAwIDAzMzQgMTE2RTsxMTAwIDAzMzQgMTE2RTsxMTAwIDAzMzQgMTE2RTsKKzExMDEgMDMzNCAxMTY2OzExMDEgMDMzNCAxMTY2OzExMDEgMDMzNCAxMTY2OzExMDEgMDMzNCAxMTY2OzExMDEgMDMzNCAxMTY2OworMTEwMSAwMzM0IDExNzM7MTEwMSAwMzM0IDExNzM7MTEwMSAwMzM0IDExNzM7MTEwMSAwMzM0IDExNzM7MTEwMSAwMzM0IDExNzM7CisxMTAyIDAzMzQgMTE2QjsxMTAyIDAzMzQgMTE2QjsxMTAyIDAzMzQgMTE2QjsxMTAyIDAzMzQgMTE2QjsxMTAyIDAzMzQgMTE2QjsKKzExMDMgMDMzNCAxMTYzOzExMDMgMDMzNCAxMTYzOzExMDMgMDMzNCAxMTYzOzExMDMgMDMzNCAxMTYzOzExMDMgMDMzNCAxMTYzOworMTEwMyAwMzM0IDExNzA7MTEwMyAwMzM0IDExNzA7MTEwMyAwMzM0IDExNzA7MTEwMyAwMzM0IDExNzA7MTEwMyAwMzM0IDExNzA7CisxMTA0IDAzMzQgMTE2ODsxMTA0IDAzMzQgMTE2ODsxMTA0IDAzMzQgMTE2ODsxMTA0IDAzMzQgMTE2ODsxMTA0IDAzMzQgMTE2ODsKKzExMDQgMDMzNCAxMTc1OzExMDQgMDMzNCAxMTc1OzExMDQgMDMzNCAxMTc1OzExMDQgMDMzNCAxMTc1OzExMDQgMDMzNCAxMTc1OworMTEwNSAwMzM0IDExNkQ7MTEwNSAwMzM0IDExNkQ7MTEwNSAwMzM0IDExNkQ7MTEwNSAwMzM0IDExNkQ7MTEwNSAwMzM0IDExNkQ7CisxMTA2IDAzMzQgMTE2NTsxMTA2IDAzMzQgMTE2NTsxMTA2IDAzMzQgMTE2NTsxMTA2IDAzMzQgMTE2NTsxMTA2IDAzMzQgMTE2NTsKKzExMDYgMDMzNCAxMTcyOzExMDYgMDMzNCAxMTcyOzExMDYgMDMzNCAxMTcyOzExMDYgMDMzNCAxMTcyOzExMDYgMDMzNCAxMTcyOworMTEwNyAwMzM0IDExNkE7MTEwNyAwMzM0IDExNkE7MTEwNyAwMzM0IDExNkE7MTEwNyAwMzM0IDExNkE7MTEwNyAwMzM0IDExNkE7CisxMTA4IDAzMzQgMTE2MjsxMTA4IDAzMzQgMTE2MjsxMTA4IDAzMzQgMTE2MjsxMTA4IDAzMzQgMTE2MjsxMTA4IDAzMzQgMTE2MjsKKzExMDggMDMzNCAxMTZGOzExMDggMDMzNCAxMTZGOzExMDggMDMzNCAxMTZGOzExMDggMDMzNCAxMTZGOzExMDggMDMzNCAxMTZGOworMTEwOSAwMzM0IDExNjc7MTEwOSAwMzM0IDExNjc7MTEwOSAwMzM0IDExNjc7MTEwOSAwMzM0IDExNjc7MTEwOSAwMzM0IDExNjc7CisxMTA5IDAzMzQgMTE3NDsxMTA5IDAzMzQgMTE3NDsxMTA5IDAzMzQgMTE3NDsxMTA5IDAzMzQgMTE3NDsxMTA5IDAzMzQgMTE3NDsKKzExMEEgMDMzNCAxMTZDOzExMEEgMDMzNCAxMTZDOzExMEEgMDMzNCAxMTZDOzExMEEgMDMzNCAxMTZDOzExMEEgMDMzNCAxMTZDOworMTEwQiAwMzM0IDExNjQ7MTEwQiAwMzM0IDExNjQ7MTEwQiAwMzM0IDExNjQ7MTEwQiAwMzM0IDExNjQ7MTEwQiAwMzM0IDExNjQ7CisxMTBCIDAzMzQgMTE3MTsxMTBCIDAzMzQgMTE3MTsxMTBCIDAzMzQgMTE3MTsxMTBCIDAzMzQgMTE3MTsxMTBCIDAzMzQgMTE3MTsKKzExMEMgMDMzNCAxMTY5OzExMEMgMDMzNCAxMTY5OzExMEMgMDMzNCAxMTY5OzExMEMgMDMzNCAxMTY5OzExMEMgMDMzNCAxMTY5OworMTEwRCAwMzM0IDExNjE7MTEwRCAwMzM0IDExNjE7MTEwRCAwMzM0IDExNjE7MTEwRCAwMzM0IDExNjE7MTEwRCAwMzM0IDExNjE7CisxMTBEIDAzMzQgMTE2RTsxMTBEIDAzMzQgMTE2RTsxMTBEIDAzMzQgMTE2RTsxMTBEIDAzMzQgMTE2RTsxMTBEIDAzMzQgMTE2RTsKKzExMEUgMDMzNCAxMTY2OzExMEUgMDMzNCAxMTY2OzExMEUgMDMzNCAxMTY2OzExMEUgMDMzNCAxMTY2OzExMEUgMDMzNCAxMTY2OworMTEwRSAwMzM0IDExNzM7MTEwRSAwMzM0IDExNzM7MTEwRSAwMzM0IDExNzM7MTEwRSAwMzM0IDExNzM7MTEwRSAwMzM0IDExNzM7CisxMTBGIDAzMzQgMTE2QjsxMTBGIDAzMzQgMTE2QjsxMTBGIDAzMzQgMTE2QjsxMTBGIDAzMzQgMTE2QjsxMTBGIDAzMzQgMTE2QjsKKzExMTAgMDMzNCAxMTYzOzExMTAgMDMzNCAxMTYzOzExMTAgMDMzNCAxMTYzOzExMTAgMDMzNCAxMTYzOzExMTAgMDMzNCAxMTYzOworMTExMCAwMzM0IDExNzA7MTExMCAwMzM0IDExNzA7MTExMCAwMzM0IDExNzA7MTExMCAwMzM0IDExNzA7MTExMCAwMzM0IDExNzA7CisxMTExIDAzMzQgMTE2ODsxMTExIDAzMzQgMTE2ODsxMTExIDAzMzQgMTE2ODsxMTExIDAzMzQgMTE2ODsxMTExIDAzMzQgMTE2ODsKKzExMTEgMDMzNCAxMTc1OzExMTEgMDMzNCAxMTc1OzExMTEgMDMzNCAxMTc1OzExMTEgMDMzNCAxMTc1OzExMTEgMDMzNCAxMTc1OworMTExMiAwMzM0IDExNkQ7MTExMiAwMzM0IDExNkQ7MTExMiAwMzM0IDExNkQ7MTExMiAwMzM0IDExNkQ7MTExMiAwMzM0IDExNkQ7CitBQzU0IDAzMzQgMTFBRTtBQzU0IDAzMzQgMTFBRTsxMTAwIDExNjQgMDMzNCAxMUFFO0FDNTQgMDMzNCAxMUFFOzExMDAgMTE2NCAwMzM0IDExQUU7CitBQ0E4IDAzMzQgMTFCNTtBQ0E4IDAzMzQgMTFCNTsxMTAwIDExNjcgMDMzNCAxMUI1O0FDQTggMDMzNCAxMUI1OzExMDAgMTE2NyAwMzM0IDExQjU7CitBQ0ZDIDAzMzQgMTFCQztBQ0ZDIDAzMzQgMTFCQzsxMTAwIDExNkEgMDMzNCAxMUJDO0FDRkMgMDMzNCAxMUJDOzExMDAgMTE2QSAwMzM0IDExQkM7CitBREMwIDAzMzQgMTFBRTtBREMwIDAzMzQgMTFBRTsxMTAwIDExNzEgMDMzNCAxMUFFO0FEQzAgMDMzNCAxMUFFOzExMDAgMTE3MSAwMzM0IDExQUU7CitBRTE0IDAzMzQgMTFCNTtBRTE0IDAzMzQgMTFCNTsxMTAwIDExNzQgMDMzNCAxMUI1O0FFMTQgMDMzNCAxMUI1OzExMDAgMTE3NCAwMzM0IDExQjU7CitBRTY4IDAzMzQgMTFCQztBRTY4IDAzMzQgMTFCQzsxMTAxIDExNjIgMDMzNCAxMUJDO0FFNjggMDMzNCAxMUJDOzExMDEgMTE2MiAwMzM0IDExQkM7CitBRjJDIDAzMzQgMTFBRTtBRjJDIDAzMzQgMTFBRTsxMTAxIDExNjkgMDMzNCAxMUFFO0FGMkMgMDMzNCAxMUFFOzExMDEgMTE2OSAwMzM0IDExQUU7CitBRjgwIDAzMzQgMTFCNTtBRjgwIDAzMzQgMTFCNTsxMTAxIDExNkMgMDMzNCAxMUI1O0FGODAgMDMzNCAxMUI1OzExMDEgMTE2QyAwMzM0IDExQjU7CitBRkQ0IDAzMzQgMTFCQztBRkQ0IDAzMzQgMTFCQzsxMTAxIDExNkYgMDMzNCAxMUJDO0FGRDQgMDMzNCAxMUJDOzExMDEgMTE2RiAwMzM0IDExQkM7CitCMDk4IDAzMzQgMTFBRTtCMDk4IDAzMzQgMTFBRTsxMTAyIDExNjEgMDMzNCAxMUFFO0IwOTggMDMzNCAxMUFFOzExMDIgMTE2MSAwMzM0IDExQUU7CitCMEVDIDAzMzQgMTFCNTtCMEVDIDAzMzQgMTFCNTsxMTAyIDExNjQgMDMzNCAxMUI1O0IwRUMgMDMzNCAxMUI1OzExMDIgMTE2NCAwMzM0IDExQjU7CitCMTQwIDAzMzQgMTFCQztCMTQwIDAzMzQgMTFCQzsxMTAyIDExNjcgMDMzNCAxMUJDO0IxNDAgMDMzNCAxMUJDOzExMDIgMTE2NyAwMzM0IDExQkM7CitCMjA0IDAzMzQgMTFBRTtCMjA0IDAzMzQgMTFBRTsxMTAyIDExNkUgMDMzNCAxMUFFO0IyMDQgMDMzNCAxMUFFOzExMDIgMTE2RSAwMzM0IDExQUU7CitCMjU4IDAzMzQgMTFCNTtCMjU4IDAzMzQgMTFCNTsxMTAyIDExNzEgMDMzNCAxMUI1O0IyNTggMDMzNCAxMUI1OzExMDIgMTE3MSAwMzM0IDExQjU7CitCMkFDIDAzMzQgMTFCQztCMkFDIDAzMzQgMTFCQzsxMTAyIDExNzQgMDMzNCAxMUJDO0IyQUMgMDMzNCAxMUJDOzExMDIgMTE3NCAwMzM0IDExQkM7CitCMzcwIDAzMzQgMTFBRTtCMzcwIDAzMzQgMTFBRTsxMTAzIDExNjYgMDMzNCAxMUFFO0IzNzAgMDMzNCAxMUFFOzExMDMgMTE2NiAwMzM0IDExQUU7CitCM0M0IDAzMzQgMTFCNTtCM0M0IDAzMzQgMTFCNTsxMTAzIDExNjkgMDMzNCAxMUI1O0IzQzQgMDMzNCAxMUI1OzExMDMgMTE2OSAwMzM0IDExQjU7CitCNDE4IDAzMzQgMTFCQztCNDE4IDAzMzQgMTFCQzsxMTAzIDExNkMgMDMzNCAxMUJDO0I0MTggMDMzNCAxMUJDOzExMDMgMTE2QyAwMzM0IDExQkM7CitCNERDIDAzMzQgMTFBRTtCNERDIDAzMzQgMTFBRTsxMTAzIDExNzMgMDMzNCAxMUFFO0I0REMgMDMzNCAxMUFFOzExMDMgMTE3MyAwMzM0IDExQUU7CitCNTMwIDAzMzQgMTFCNTtCNTMwIDAzMzQgMTFCNTsxMTA0IDExNjEgMDMzNCAxMUI1O0I1MzAgMDMzNCAxMUI1OzExMDQgMTE2MSAwMzM0IDExQjU7CitCNTg0IDAzMzQgMTFCQztCNTg0IDAzMzQgMTFCQzsxMTA0IDExNjQgMDMzNCAxMUJDO0I1ODQgMDMzNCAxMUJDOzExMDQgMTE2NCAwMzM0IDExQkM7CitCNjQ4IDAzMzQgMTFBRTtCNjQ4IDAzMzQgMTFBRTsxMTA0IDExNkIgMDMzNCAxMUFFO0I2NDggMDMzNCAxMUFFOzExMDQgMTE2QiAwMzM0IDExQUU7CitCNjlDIDAzMzQgMTFCNTtCNjlDIDAzMzQgMTFCNTsxMTA0IDExNkUgMDMzNCAxMUI1O0I2OUMgMDMzNCAxMUI1OzExMDQgMTE2RSAwMzM0IDExQjU7CitCNkYwIDAzMzQgMTFCQztCNkYwIDAzMzQgMTFCQzsxMTA0IDExNzEgMDMzNCAxMUJDO0I2RjAgMDMzNCAxMUJDOzExMDQgMTE3MSAwMzM0IDExQkM7CitCN0I0IDAzMzQgMTFBRTtCN0I0IDAzMzQgMTFBRTsxMTA1IDExNjMgMDMzNCAxMUFFO0I3QjQgMDMzNCAxMUFFOzExMDUgMTE2MyAwMzM0IDExQUU7CitCODA4IDAzMzQgMTFCNTtCODA4IDAzMzQgMTFCNTsxMTA1IDExNjYgMDMzNCAxMUI1O0I4MDggMDMzNCAxMUI1OzExMDUgMTE2NiAwMzM0IDExQjU7CitCODVDIDAzMzQgMTFCQztCODVDIDAzMzQgMTFCQzsxMTA1IDExNjkgMDMzNCAxMUJDO0I4NUMgMDMzNCAxMUJDOzExMDUgMTE2OSAwMzM0IDExQkM7CitCOTIwIDAzMzQgMTFBRTtCOTIwIDAzMzQgMTFBRTsxMTA1IDExNzAgMDMzNCAxMUFFO0I5MjAgMDMzNCAxMUFFOzExMDUgMTE3MCAwMzM0IDExQUU7CitCOTc0IDAzMzQgMTFCNTtCOTc0IDAzMzQgMTFCNTsxMTA1IDExNzMgMDMzNCAxMUI1O0I5NzQgMDMzNCAxMUI1OzExMDUgMTE3MyAwMzM0IDExQjU7CitCOUM4IDAzMzQgMTFCQztCOUM4IDAzMzQgMTFCQzsxMTA2IDExNjEgMDMzNCAxMUJDO0I5QzggMDMzNCAxMUJDOzExMDYgMTE2MSAwMzM0IDExQkM7CitCQThDIDAzMzQgMTFBRTtCQThDIDAzMzQgMTFBRTsxMTA2IDExNjggMDMzNCAxMUFFO0JBOEMgMDMzNCAxMUFFOzExMDYgMTE2OCAwMzM0IDExQUU7CitCQUUwIDAzMzQgMTFCNTtCQUUwIDAzMzQgMTFCNTsxMTA2IDExNkIgMDMzNCAxMUI1O0JBRTAgMDMzNCAxMUI1OzExMDYgMTE2QiAwMzM0IDExQjU7CitCQjM0IDAzMzQgMTFCQztCQjM0IDAzMzQgMTFCQzsxMTA2IDExNkUgMDMzNCAxMUJDO0JCMzQgMDMzNCAxMUJDOzExMDYgMTE2RSAwMzM0IDExQkM7CitCQkY4IDAzMzQgMTFBRTtCQkY4IDAzMzQgMTFBRTsxMTA2IDExNzUgMDMzNCAxMUFFO0JCRjggMDMzNCAxMUFFOzExMDYgMTE3NSAwMzM0IDExQUU7CitCQzRDIDAzMzQgMTFCNTtCQzRDIDAzMzQgMTFCNTsxMTA3IDExNjMgMDMzNCAxMUI1O0JDNEMgMDMzNCAxMUI1OzExMDcgMTE2MyAwMzM0IDExQjU7CitCQ0EwIDAzMzQgMTFCQztCQ0EwIDAzMzQgMTFCQzsxMTA3IDExNjYgMDMzNCAxMUJDO0JDQTAgMDMzNCAxMUJDOzExMDcgMTE2NiAwMzM0IDExQkM7CitCRDY0IDAzMzQgMTFBRTtCRDY0IDAzMzQgMTFBRTsxMTA3IDExNkQgMDMzNCAxMUFFO0JENjQgMDMzNCAxMUFFOzExMDcgMTE2RCAwMzM0IDExQUU7CitCREI4IDAzMzQgMTFCNTtCREI4IDAzMzQgMTFCNTsxMTA3IDExNzAgMDMzNCAxMUI1O0JEQjggMDMzNCAxMUI1OzExMDcgMTE3MCAwMzM0IDExQjU7CitCRTBDIDAzMzQgMTFCQztCRTBDIDAzMzQgMTFCQzsxMTA3IDExNzMgMDMzNCAxMUJDO0JFMEMgMDMzNCAxMUJDOzExMDcgMTE3MyAwMzM0IDExQkM7CitCRUQwIDAzMzQgMTFBRTtCRUQwIDAzMzQgMTFBRTsxMTA4IDExNjUgMDMzNCAxMUFFO0JFRDAgMDMzNCAxMUFFOzExMDggMTE2NSAwMzM0IDExQUU7CitCRjI0IDAzMzQgMTFCNTtCRjI0IDAzMzQgMTFCNTsxMTA4IDExNjggMDMzNCAxMUI1O0JGMjQgMDMzNCAxMUI1OzExMDggMTE2OCAwMzM0IDExQjU7CitCRjc4IDAzMzQgMTFCQztCRjc4IDAzMzQgMTFCQzsxMTA4IDExNkIgMDMzNCAxMUJDO0JGNzggMDMzNCAxMUJDOzExMDggMTE2QiAwMzM0IDExQkM7CitDMDNDIDAzMzQgMTFBRTtDMDNDIDAzMzQgMTFBRTsxMTA4IDExNzIgMDMzNCAxMUFFO0MwM0MgMDMzNCAxMUFFOzExMDggMTE3MiAwMzM0IDExQUU7CitDMDkwIDAzMzQgMTFCNTtDMDkwIDAzMzQgMTFCNTsxMTA4IDExNzUgMDMzNCAxMUI1O0MwOTAgMDMzNCAxMUI1OzExMDggMTE3NSAwMzM0IDExQjU7CitDMEU0IDAzMzQgMTFCQztDMEU0IDAzMzQgMTFCQzsxMTA5IDExNjMgMDMzNCAxMUJDO0MwRTQgMDMzNCAxMUJDOzExMDkgMTE2MyAwMzM0IDExQkM7CitDMUE4IDAzMzQgMTFBRTtDMUE4IDAzMzQgMTFBRTsxMTA5IDExNkEgMDMzNCAxMUFFO0MxQTggMDMzNCAxMUFFOzExMDkgMTE2QSAwMzM0IDExQUU7CitDMUZDIDAzMzQgMTFCNTtDMUZDIDAzMzQgMTFCNTsxMTA5IDExNkQgMDMzNCAxMUI1O0MxRkMgMDMzNCAxMUI1OzExMDkgMTE2RCAwMzM0IDExQjU7CitDMjUwIDAzMzQgMTFCQztDMjUwIDAzMzQgMTFCQzsxMTA5IDExNzAgMDMzNCAxMUJDO0MyNTAgMDMzNCAxMUJDOzExMDkgMTE3MCAwMzM0IDExQkM7CitDMzE0IDAzMzQgMTFBRTtDMzE0IDAzMzQgMTFBRTsxMTBBIDExNjIgMDMzNCAxMUFFO0MzMTQgMDMzNCAxMUFFOzExMEEgMTE2MiAwMzM0IDExQUU7CitDMzY4IDAzMzQgMTFCNTtDMzY4IDAzMzQgMTFCNTsxMTBBIDExNjUgMDMzNCAxMUI1O0MzNjggMDMzNCAxMUI1OzExMEEgMTE2NSAwMzM0IDExQjU7CitDM0JDIDAzMzQgMTFCQztDM0JDIDAzMzQgMTFCQzsxMTBBIDExNjggMDMzNCAxMUJDO0MzQkMgMDMzNCAxMUJDOzExMEEgMTE2OCAwMzM0IDExQkM7CitDNDgwIDAzMzQgMTFBRTtDNDgwIDAzMzQgMTFBRTsxMTBBIDExNkYgMDMzNCAxMUFFO0M0ODAgMDMzNCAxMUFFOzExMEEgMTE2RiAwMzM0IDExQUU7CitDNEQ0IDAzMzQgMTFCNTtDNEQ0IDAzMzQgMTFCNTsxMTBBIDExNzIgMDMzNCAxMUI1O0M0RDQgMDMzNCAxMUI1OzExMEEgMTE3MiAwMzM0IDExQjU7CitDNTI4IDAzMzQgMTFCQztDNTI4IDAzMzQgMTFCQzsxMTBBIDExNzUgMDMzNCAxMUJDO0M1MjggMDMzNCAxMUJDOzExMEEgMTE3NSAwMzM0IDExQkM7CitDNUVDIDAzMzQgMTFBRTtDNUVDIDAzMzQgMTFBRTsxMTBCIDExNjcgMDMzNCAxMUFFO0M1RUMgMDMzNCAxMUFFOzExMEIgMTE2NyAwMzM0IDExQUU7CitDNjQwIDAzMzQgMTFCNTtDNjQwIDAzMzQgMTFCNTsxMTBCIDExNkEgMDMzNCAxMUI1O0M2NDAgMDMzNCAxMUI1OzExMEIgMTE2QSAwMzM0IDExQjU7CitDNjk0IDAzMzQgMTFCQztDNjk0IDAzMzQgMTFCQzsxMTBCIDExNkQgMDMzNCAxMUJDO0M2OTQgMDMzNCAxMUJDOzExMEIgMTE2RCAwMzM0IDExQkM7CitDNzU4IDAzMzQgMTFBRTtDNzU4IDAzMzQgMTFBRTsxMTBCIDExNzQgMDMzNCAxMUFFO0M3NTggMDMzNCAxMUFFOzExMEIgMTE3NCAwMzM0IDExQUU7CitDN0FDIDAzMzQgMTFCNTtDN0FDIDAzMzQgMTFCNTsxMTBDIDExNjIgMDMzNCAxMUI1O0M3QUMgMDMzNCAxMUI1OzExMEMgMTE2MiAwMzM0IDExQjU7CitDODAwIDAzMzQgMTFCQztDODAwIDAzMzQgMTFCQzsxMTBDIDExNjUgMDMzNCAxMUJDO0M4MDAgMDMzNCAxMUJDOzExMEMgMTE2NSAwMzM0IDExQkM7CitDOEM0IDAzMzQgMTFBRTtDOEM0IDAzMzQgMTFBRTsxMTBDIDExNkMgMDMzNCAxMUFFO0M4QzQgMDMzNCAxMUFFOzExMEMgMTE2QyAwMzM0IDExQUU7CitDOTE4IDAzMzQgMTFCNTtDOTE4IDAzMzQgMTFCNTsxMTBDIDExNkYgMDMzNCAxMUI1O0M5MTggMDMzNCAxMUI1OzExMEMgMTE2RiAwMzM0IDExQjU7CitDOTZDIDAzMzQgMTFCQztDOTZDIDAzMzQgMTFCQzsxMTBDIDExNzIgMDMzNCAxMUJDO0M5NkMgMDMzNCAxMUJDOzExMEMgMTE3MiAwMzM0IDExQkM7CitDQTMwIDAzMzQgMTFBRTtDQTMwIDAzMzQgMTFBRTsxMTBEIDExNjQgMDMzNCAxMUFFO0NBMzAgMDMzNCAxMUFFOzExMEQgMTE2NCAwMzM0IDExQUU7CitDQTg0IDAzMzQgMTFCNTtDQTg0IDAzMzQgMTFCNTsxMTBEIDExNjcgMDMzNCAxMUI1O0NBODQgMDMzNCAxMUI1OzExMEQgMTE2NyAwMzM0IDExQjU7CitDQUQ4IDAzMzQgMTFCQztDQUQ4IDAzMzQgMTFCQzsxMTBEIDExNkEgMDMzNCAxMUJDO0NBRDggMDMzNCAxMUJDOzExMEQgMTE2QSAwMzM0IDExQkM7CitDQjlDIDAzMzQgMTFBRTtDQjlDIDAzMzQgMTFBRTsxMTBEIDExNzEgMDMzNCAxMUFFO0NCOUMgMDMzNCAxMUFFOzExMEQgMTE3MSAwMzM0IDExQUU7CitDQkYwIDAzMzQgMTFCNTtDQkYwIDAzMzQgMTFCNTsxMTBEIDExNzQgMDMzNCAxMUI1O0NCRjAgMDMzNCAxMUI1OzExMEQgMTE3NCAwMzM0IDExQjU7CitDQzQ0IDAzMzQgMTFCQztDQzQ0IDAzMzQgMTFCQzsxMTBFIDExNjIgMDMzNCAxMUJDO0NDNDQgMDMzNCAxMUJDOzExMEUgMTE2MiAwMzM0IDExQkM7CitDRDA4IDAzMzQgMTFBRTtDRDA4IDAzMzQgMTFBRTsxMTBFIDExNjkgMDMzNCAxMUFFO0NEMDggMDMzNCAxMUFFOzExMEUgMTE2OSAwMzM0IDExQUU7CitDRDVDIDAzMzQgMTFCNTtDRDVDIDAzMzQgMTFCNTsxMTBFIDExNkMgMDMzNCAxMUI1O0NENUMgMDMzNCAxMUI1OzExMEUgMTE2QyAwMzM0IDExQjU7CitDREIwIDAzMzQgMTFCQztDREIwIDAzMzQgMTFCQzsxMTBFIDExNkYgMDMzNCAxMUJDO0NEQjAgMDMzNCAxMUJDOzExMEUgMTE2RiAwMzM0IDExQkM7CitDRTc0IDAzMzQgMTFBRTtDRTc0IDAzMzQgMTFBRTsxMTBGIDExNjEgMDMzNCAxMUFFO0NFNzQgMDMzNCAxMUFFOzExMEYgMTE2MSAwMzM0IDExQUU7CitDRUM4IDAzMzQgMTFCNTtDRUM4IDAzMzQgMTFCNTsxMTBGIDExNjQgMDMzNCAxMUI1O0NFQzggMDMzNCAxMUI1OzExMEYgMTE2NCAwMzM0IDExQjU7CitDRjFDIDAzMzQgMTFCQztDRjFDIDAzMzQgMTFCQzsxMTBGIDExNjcgMDMzNCAxMUJDO0NGMUMgMDMzNCAxMUJDOzExMEYgMTE2NyAwMzM0IDExQkM7CitDRkUwIDAzMzQgMTFBRTtDRkUwIDAzMzQgMTFBRTsxMTBGIDExNkUgMDMzNCAxMUFFO0NGRTAgMDMzNCAxMUFFOzExMEYgMTE2RSAwMzM0IDExQUU7CitEMDM0IDAzMzQgMTFCNTtEMDM0IDAzMzQgMTFCNTsxMTBGIDExNzEgMDMzNCAxMUI1O0QwMzQgMDMzNCAxMUI1OzExMEYgMTE3MSAwMzM0IDExQjU7CitEMDg4IDAzMzQgMTFCQztEMDg4IDAzMzQgMTFCQzsxMTBGIDExNzQgMDMzNCAxMUJDO0QwODggMDMzNCAxMUJDOzExMEYgMTE3NCAwMzM0IDExQkM7CitEMTRDIDAzMzQgMTFBRTtEMTRDIDAzMzQgMTFBRTsxMTEwIDExNjYgMDMzNCAxMUFFO0QxNEMgMDMzNCAxMUFFOzExMTAgMTE2NiAwMzM0IDExQUU7CitEMUEwIDAzMzQgMTFCNTtEMUEwIDAzMzQgMTFCNTsxMTEwIDExNjkgMDMzNCAxMUI1O0QxQTAgMDMzNCAxMUI1OzExMTAgMTE2OSAwMzM0IDExQjU7CitEMUY0IDAzMzQgMTFCQztEMUY0IDAzMzQgMTFCQzsxMTEwIDExNkMgMDMzNCAxMUJDO0QxRjQgMDMzNCAxMUJDOzExMTAgMTE2QyAwMzM0IDExQkM7CitEMkI4IDAzMzQgMTFBRTtEMkI4IDAzMzQgMTFBRTsxMTEwIDExNzMgMDMzNCAxMUFFO0QyQjggMDMzNCAxMUFFOzExMTAgMTE3MyAwMzM0IDExQUU7CitEMzBDIDAzMzQgMTFCNTtEMzBDIDAzMzQgMTFCNTsxMTExIDExNjEgMDMzNCAxMUI1O0QzMEMgMDMzNCAxMUI1OzExMTEgMTE2MSAwMzM0IDExQjU7CitEMzYwIDAzMzQgMTFCQztEMzYwIDAzMzQgMTFCQzsxMTExIDExNjQgMDMzNCAxMUJDO0QzNjAgMDMzNCAxMUJDOzExMTEgMTE2NCAwMzM0IDExQkM7CitENDI0IDAzMzQgMTFBRTtENDI0IDAzMzQgMTFBRTsxMTExIDExNkIgMDMzNCAxMUFFO0Q0MjQgMDMzNCAxMUFFOzExMTEgMTE2QiAwMzM0IDExQUU7CitENDc4IDAzMzQgMTFCNTtENDc4IDAzMzQgMTFCNTsxMTExIDExNkUgMDMzNCAxMUI1O0Q0NzggMDMzNCAxMUI1OzExMTEgMTE2RSAwMzM0IDExQjU7CitENENDIDAzMzQgMTFCQztENENDIDAzMzQgMTFCQzsxMTExIDExNzEgMDMzNCAxMUJDO0Q0Q0MgMDMzNCAxMUJDOzExMTEgMTE3MSAwMzM0IDExQkM7CitENTkwIDAzMzQgMTFBRTtENTkwIDAzMzQgMTFBRTsxMTEyIDExNjMgMDMzNCAxMUFFO0Q1OTAgMDMzNCAxMUFFOzExMTIgMTE2MyAwMzM0IDExQUU7CitENUU0IDAzMzQgMTFCNTtENUU0IDAzMzQgMTFCNTsxMTEyIDExNjYgMDMzNCAxMUI1O0Q1RTQgMDMzNCAxMUI1OzExMTIgMTE2NiAwMzM0IDExQjU7CitENjM4IDAzMzQgMTFCQztENjM4IDAzMzQgMTFCQzsxMTEyIDExNjkgMDMzNCAxMUJDO0Q2MzggMDMzNCAxMUJDOzExMTIgMTE2OSAwMzM0IDExQkM7CitENkZDIDAzMzQgMTFBRTtENkZDIDAzMzQgMTFBRTsxMTEyIDExNzAgMDMzNCAxMUFFO0Q2RkMgMDMzNCAxMUFFOzExMTIgMTE3MCAwMzM0IDExQUU7CitENzUwIDAzMzQgMTFCNTtENzUwIDAzMzQgMTFCNTsxMTEyIDExNzMgMDMzNCAxMUI1O0Q3NTAgMDMzNCAxMUI1OzExMTIgMTE3MyAwMzM0IDExQjU7CisjCisjIEVORCBPRiBGSUxFCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1NwZWNpYWxDYXNpbmcudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjExYTViMWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9TcGVjaWFsQ2FzaW5nLnR4dApAQCAtMCwwICsxLDI2MCBAQAorIyBTcGVjaWFsQ2FzaW5nLTQuMS4wLnR4dAorIyBEYXRlOiAyMDA1LTAzLTI2LCAwMDozNTo0NSBHTVQgW01EXQorIworIyBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZQorIyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuCisjIEZvciB0ZXJtcyBvZiB1c2UsIHNlZSBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3Rlcm1zX29mX3VzZS5odG1sCisjIEZvciBkb2N1bWVudGF0aW9uLCBzZWUgVUNELmh0bWwKKyMKKyMgU3BlY2lhbCBDYXNpbmcgUHJvcGVydGllcworIworIyBUaGlzIGZpbGUgaXMgYSBzdXBwbGVtZW50IHRvIHRoZSBVbmljb2RlRGF0YSBmaWxlLgorIyBJdCBjb250YWlucyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjYXNpbmcgb2YgVW5pY29kZSBjaGFyYWN0ZXJzLgorIyAoRm9yIGNvbXBhdGliaWxpdHksIHRoZSBVbmljb2RlRGF0YS50eHQgZmlsZSBvbmx5IGNvbnRhaW5zIGNhc2UgbWFwcGluZ3MgZm9yCisjIGNoYXJhY3RlcnMgd2hlcmUgdGhleSBhcmUgMS0xLCBhbmQgZG9lcyBub3QgaGF2ZSBsb2NhbGUtc3BlY2lmaWMgbWFwcGluZ3MuKQorIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkaXNjdXNzaW9uIG9mIENhc2UgTWFwcGluZ3MgaW4gdGhlIFVuaWNvZGUgU3RhbmRhcmQuCisjCisjIEFsbCBjb2RlIHBvaW50cyBub3QgbGlzdGVkIGluIHRoaXMgZmlsZSB0aGF0IGRvIG5vdCBoYXZlIGEgc2ltcGxlIGNhc2UgbWFwcGluZ3MKKyMgaW4gVW5pY29kZURhdGEudHh0IG1hcCB0byB0aGVtc2VsdmVzLgorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBGb3JtYXQKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgVGhlIGVudHJpZXMgaW4gdGhpcyBmaWxlIGFyZSBpbiB0aGUgZm9sbG93aW5nIG1hY2hpbmUtcmVhZGFibGUgZm9ybWF0OgorIworIyA8Y29kZT47IDxsb3dlcj4gOyA8dGl0bGU+IDsgPHVwcGVyPiA7ICg8Y29uZGl0aW9uX2xpc3Q+IDspPyAjIDxjb21tZW50PgorIworIyA8Y29kZT4sIDxsb3dlcj4sIDx0aXRsZT4sIGFuZCA8dXBwZXI+IHByb3ZpZGUgY2hhcmFjdGVyIHZhbHVlcyBpbiBoZXguIElmIHRoZXJlIGlzIG1vcmUKKyMgdGhhbiBvbmUgY2hhcmFjdGVyLCB0aGV5IGFyZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLiBPdGhlciB0aGFuIGFzIHVzZWQgdG8gc2VwYXJhdGUgCisjIGVsZW1lbnRzLCBzcGFjZXMgYXJlIHRvIGJlIGlnbm9yZWQuCisjCisjIFRoZSA8Y29uZGl0aW9uX2xpc3Q+IGlzIG9wdGlvbmFsLiBXaGVyZSBwcmVzZW50LCBpdCBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSBsb2NhbGUgSURzCisjIG9yIGNvbnRleHRzLCBzZXBhcmF0ZWQgYnkgc3BhY2VzLiBJbiB0aGVzZSBjb25kaXRpb25zOgorIyAtIEEgY29uZGl0aW9uIGxpc3Qgb3ZlcnJpZGVzIHRoZSBub3JtYWwgYmVoYXZpb3IgaWYgYWxsIG9mIHRoZSBsaXN0ZWQgY29uZGl0aW9ucyBhcmUgdHJ1ZS4KKyMgLSBUaGUgY29udGV4dCBpcyBhbHdheXMgdGhlIGNvbnRleHQgb2YgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIG9yaWdpbmFsIHN0cmluZywKKyMgICBOT1QgaW4gdGhlIHJlc3VsdGluZyBzdHJpbmcuCisjIC0gQ2FzZSBkaXN0aW5jdGlvbnMgaW4gdGhlIGNvbmRpdGlvbiBsaXN0IGFyZSBub3Qgc2lnbmlmaWNhbnQuCisjIC0gQ29uZGl0aW9ucyBwcmVjZWRlZCBieSAiTm90XyIgcmVwcmVzZW50IHRoZSBuZWdhdGlvbiBvZiB0aGUgY29uZGl0aW9uLgorIworIyBBIGxvY2FsZSBJRCBpcyBkZWZpbmVkIGJ5IHRha2luZyBhbnkgbGFuZ3VhZ2UgdGFnIGFzIGRlZmluZWQgYnkKKyMgUkZDIDMwNjYgKG9yIGl0cyBzdWNjZXNzb3IpLCBhbmQgcmVwbGFjaW5nICctJyBieSAnXycuCisjCisjIEEgY29udGV4dCBmb3IgYSBjaGFyYWN0ZXIgQyBpcyBkZWZpbmVkIGJ5IFNlY3Rpb24gMy4xMyBEZWZhdWx0IENhc2UgT3BlcmF0aW9ucywKKyMgb24gcC4gODktOTAgb2YgVGhlIFVuaWNvZGUgU3RhbmRhcmQsIFZlcnNpb24gNC4wLCBhcyBhbWVuZGVkIGJ5IFVuaWNvZGUgNC4xLjAsCisjIGFzIHNwZWNpZmllZCBpbiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3ZlcnNpb25zL1VuaWNvZGU0LjEuMC8KKyMKKyMgUGFyc2VycyBvZiB0aGlzIGZpbGUgbXVzdCBiZSBwcmVwYXJlZCB0byBkZWFsIHdpdGggZnV0dXJlIGFkZGl0aW9ucyB0byB0aGlzIGZvcm1hdDoKKyMgICogQWRkaXRpb25hbCBjb250ZXh0cworIyAgKiBBZGRpdGlvbmFsIGZpZWxkcworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIFVuY29uZGl0aW9uYWwgbWFwcGluZ3MKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyBUaGUgR2VybWFuIGVzLXplZCBpcyBzcGVjaWFsLS10aGUgbm9ybWFsIG1hcHBpbmcgaXMgdG8gU1MuCisjIE5vdGU6IHRoZSB0aXRsZWNhc2Ugc2hvdWxkIG5ldmVyIG9jY3VyIGluIHByYWN0aWNlLiBJdCBpcyBlcXVhbCB0byB0aXRsZWNhc2UodXBwZXJjYXNlKDxlcy16ZWQ+KSkKKworMDBERjsgMDBERjsgMDA1MyAwMDczOyAwMDUzIDAwNTM7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFMKKworIyBQcmVzZXJ2ZSBjYW5vbmljYWwgZXF1aXZhbGVuY2UgZm9yIEkgd2l0aCBkb3QuIFR1cmtpYyBpcyBoYW5kbGVkIGJlbG93LgorCiswMTMwOyAwMDY5IDAzMDc7IDAxMzA7IDAxMzA7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRQorCisjIExpZ2F0dXJlcworCitGQjAwOyBGQjAwOyAwMDQ2IDAwNjY7IDAwNDYgMDA0NjsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBGRgorRkIwMTsgRkIwMTsgMDA0NiAwMDY5OyAwMDQ2IDAwNDk7ICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkkKK0ZCMDI7IEZCMDI7IDAwNDYgMDA2QzsgMDA0NiAwMDRDOyAjIExBVElOIFNNQUxMIExJR0FUVVJFIEZMCitGQjAzOyBGQjAzOyAwMDQ2IDAwNjYgMDA2OTsgMDA0NiAwMDQ2IDAwNDk7ICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkZJCitGQjA0OyBGQjA0OyAwMDQ2IDAwNjYgMDA2QzsgMDA0NiAwMDQ2IDAwNEM7ICMgTEFUSU4gU01BTEwgTElHQVRVUkUgRkZMCitGQjA1OyBGQjA1OyAwMDUzIDAwNzQ7IDAwNTMgMDA1NDsgIyBMQVRJTiBTTUFMTCBMSUdBVFVSRSBMT05HIFMgVAorRkIwNjsgRkIwNjsgMDA1MyAwMDc0OyAwMDUzIDAwNTQ7ICMgTEFUSU4gU01BTEwgTElHQVRVUkUgU1QKKworMDU4NzsgMDU4NzsgMDUzNSAwNTgyOyAwNTM1IDA1NTI7ICMgQVJNRU5JQU4gU01BTEwgTElHQVRVUkUgRUNIIFlJV04KK0ZCMTM7IEZCMTM7IDA1NDQgMDU3NjsgMDU0NCAwNTQ2OyAjIEFSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBOT1cKK0ZCMTQ7IEZCMTQ7IDA1NDQgMDU2NTsgMDU0NCAwNTM1OyAjIEFSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBFQ0gKK0ZCMTU7IEZCMTU7IDA1NDQgMDU2QjsgMDU0NCAwNTNCOyAjIEFSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBJTkkKK0ZCMTY7IEZCMTY7IDA1NEUgMDU3NjsgMDU0RSAwNTQ2OyAjIEFSTUVOSUFOIFNNQUxMIExJR0FUVVJFIFZFVyBOT1cKK0ZCMTc7IEZCMTc7IDA1NDQgMDU2RDsgMDU0NCAwNTNEOyAjIEFSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBYRUgKKworIyBObyBjb3JyZXNwb25kaW5nIHVwcGVyY2FzZSBwcmVjb21wb3NlZCBjaGFyYWN0ZXIKKworMDE0OTsgMDE0OTsgMDJCQyAwMDRFOyAwMkJDIDAwNEU7ICMgTEFUSU4gU01BTEwgTEVUVEVSIE4gUFJFQ0VERUQgQlkgQVBPU1RST1BIRQorMDM5MDsgMDM5MDsgMDM5OSAwMzA4IDAzMDE7IDAzOTkgMDMwOCAwMzAxOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBUT05PUworMDNCMDsgMDNCMDsgMDNBNSAwMzA4IDAzMDE7IDAzQTUgMDMwOCAwMzAxOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBUT05PUworMDFGMDsgMDFGMDsgMDA0QSAwMzBDOyAwMDRBIDAzMEM7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEogV0lUSCBDQVJPTgorMUU5NjsgMUU5NjsgMDA0OCAwMzMxOyAwMDQ4IDAzMzE7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBMSU5FIEJFTE9XCisxRTk3OyAxRTk3OyAwMDU0IDAzMDg7IDAwNTQgMDMwODsgIyBMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIERJQUVSRVNJUworMUU5ODsgMUU5ODsgMDA1NyAwMzBBOyAwMDU3IDAzMEE7ICMgTEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBSSU5HIEFCT1ZFCisxRTk5OyAxRTk5OyAwMDU5IDAzMEE7IDAwNTkgMDMwQTsgIyBMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIFJJTkcgQUJPVkUKKzFFOUE7IDFFOUE7IDAwNDEgMDJCRTsgMDA0MSAwMkJFOyAjIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklHSFQgSEFMRiBSSU5HCisxRjUwOyAxRjUwOyAwM0E1IDAzMTM7IDAzQTUgMDMxMzsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJCisxRjUyOyAxRjUyOyAwM0E1IDAzMTMgMDMwMDsgMDNBNSAwMzEzIDAzMDA7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgVkFSSUEKKzFGNTQ7IDFGNTQ7IDAzQTUgMDMxMyAwMzAxOyAwM0E1IDAzMTMgMDMwMTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJIEFORCBPWElBCisxRjU2OyAxRjU2OyAwM0E1IDAzMTMgMDM0MjsgMDNBNSAwMzEzIDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkKKzFGQjY7IDFGQjY7IDAzOTEgMDM0MjsgMDM5MSAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBFUklTUE9NRU5JCisxRkM2OyAxRkM2OyAwMzk3IDAzNDI7IDAzOTcgMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUEVSSVNQT01FTkkKKzFGRDI7IDFGRDI7IDAzOTkgMDMwOCAwMzAwOyAwMzk5IDAzMDggMDMwMDsgIyBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgVkFSSUEKKzFGRDM7IDFGRDM7IDAzOTkgMDMwOCAwMzAxOyAwMzk5IDAzMDggMDMwMTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgT1hJQQorMUZENjsgMUZENjsgMDM5OSAwMzQyOyAwMzk5IDAzNDI7ICMgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQRVJJU1BPTUVOSQorMUZENzsgMUZENzsgMDM5OSAwMzA4IDAzNDI7IDAzOTkgMDMwOCAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBQRVJJU1BPTUVOSQorMUZFMjsgMUZFMjsgMDNBNSAwMzA4IDAzMDA7IDAzQTUgMDMwOCAwMzAwOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBWQVJJQQorMUZFMzsgMUZFMzsgMDNBNSAwMzA4IDAzMDE7IDAzQTUgMDMwOCAwMzAxOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBPWElBCisxRkU0OyAxRkU0OyAwM0ExIDAzMTM7IDAzQTEgMDMxMzsgIyBHUkVFSyBTTUFMTCBMRVRURVIgUkhPIFdJVEggUFNJTEkKKzFGRTY7IDFGRTY7IDAzQTUgMDM0MjsgMDNBNSAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggUEVSSVNQT01FTkkKKzFGRTc7IDFGRTc7IDAzQTUgMDMwOCAwMzQyOyAwM0E1IDAzMDggMDM0MjsgIyBHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgUEVSSVNQT01FTkkKKzFGRjY7IDFGRjY7IDAzQTkgMDM0MjsgMDNBOSAwMzQyOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBFUklTUE9NRU5JCisKKyMgSU1QT1JUQU5ULXdoZW4gY2FwaXRhbGl6aW5nIGlvdGEtc3Vic2NyaXB0ICgwMzQ1KQorIyAgSXQgTVVTVCBiZSBpbiBub3JtYWxpemVkIGZvcm0tLW1vdmVkIHRvIHRoZSBlbmQgb2YgYW55IHNlcXVlbmNlIG9mIGNvbWJpbmluZyBtYXJrcy4KKyMgIFRoaXMgaXMgYmVjYXVzZSBsb2dpY2FsbHkgaXQgcmVwcmVzZW50cyBhIGZvbGxvd2luZyBiYXNlIGNoYXJhY3RlciEKKyMgIEUuZy4gPGlvdGFfc3Vic2NyaXB0PiAoPE1uPiB8IDxNYz4gfCA8TWU+KSsgPT4gKDxNbj4gfCA8TWM+IHwgPE1lPikrIDxpb3RhX3N1YnNjcmlwdD4KKyMgSXQgc2hvdWxkIG5ldmVyIGJlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gYSB3b3JkLCBzbyBpbiB0aXRsZWNhc2luZyBpdCBjYW4gYmUgbGVmdCBhcyBpcy4KKworIyBUaGUgZm9sbG93aW5nIGNhc2VzIGFyZSBhbHJlYWR5IGluIHRoZSBVbmljb2RlRGF0YSBmaWxlLCBzbyBhcmUgb25seSBjb21tZW50ZWQgaGVyZS4KKworIyAwMzQ1OyAwMzQ1OyAwMzQ1OyAwMzk5OyAjIENPTUJJTklORyBHUkVFSyBZUE9HRUdSQU1NRU5JCisKKyMgQWxsIGxldHRlcnMgd2l0aCBZUE9HRUdSQU1NRU5JIChpb3RhLXN1YnNjcmlwdCkgb3IgUFJPU0dFR1JBTU1FTkkgKGlvdGEgYWRzY3JpcHQpCisjIGhhdmUgc3BlY2lhbCB1cHBlcmNhc2VzLgorIyBOb3RlOiBjaGFyYWN0ZXJzIHdpdGggUFJPU0dFR1JBTU1FTkkgYXJlIGFjdHVhbGx5IHRpdGxlY2FzZSwgbm90IHVwcGVyY2FzZSEKKworMUY4MDsgMUY4MDsgMUY4ODsgMUYwOCAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JCisxRjgxOyAxRjgxOyAxRjg5OyAxRjA5IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODI7IDFGODI7IDFGOEE7IDFGMEEgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODM7IDFGODM7IDFGOEI7IDFGMEIgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGODQ7IDFGODQ7IDFGOEM7IDFGMEMgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY4NTsgMUY4NTsgMUY4RDsgMUYwRCAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRjg2OyAxRjg2OyAxRjhFOyAxRjBFIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRjg3OyAxRjg3OyAxRjhGOyAxRjBGIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRjg4OyAxRjgwOyAxRjg4OyAxRjA4IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGODk7IDFGODE7IDFGODk7IDFGMDkgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY4QTsgMUY4MjsgMUY4QTsgMUYwQSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY4QjsgMUY4MzsgMUY4QjsgMUYwQiAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY4QzsgMUY4NDsgMUY4QzsgMUYwQyAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjhEOyAxRjg1OyAxRjhEOyAxRjBEIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOEU7IDFGODY7IDFGOEU7IDFGMEUgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOEY7IDFGODc7IDFGOEY7IDFGMEYgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOTA7IDFGOTA7IDFGOTg7IDFGMjggMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTE7IDFGOTE7IDFGOTk7IDFGMjkgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTI7IDFGOTI7IDFGOUE7IDFGMkEgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRjkzOyAxRjkzOyAxRjlCOyAxRjJCIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5NDsgMUY5NDsgMUY5QzsgMUYyQyAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5NTsgMUY5NTsgMUY5RDsgMUYyRCAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUY5NjsgMUY5NjsgMUY5RTsgMUYyRSAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKzFGOTc7IDFGOTc7IDFGOUY7IDFGMkYgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRjk4OyAxRjkwOyAxRjk4OyAxRjI4IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JCisxRjk5OyAxRjkxOyAxRjk5OyAxRjI5IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRjlBOyAxRjkyOyAxRjlBOyAxRjJBIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSQorMUY5QjsgMUY5MzsgMUY5QjsgMUYyQiAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOUM7IDFGOTQ7IDFGOUM7IDFGMkMgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOUQ7IDFGOTU7IDFGOUQ7IDFGMkQgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGOUU7IDFGOTY7IDFGOUU7IDFGMkUgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JCisxRjlGOyAxRjk3OyAxRjlGOyAxRjJGIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBMDsgMUZBMDsgMUZBODsgMUY2OCAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBZUE9HRUdSQU1NRU5JCisxRkExOyAxRkExOyAxRkE5OyAxRjY5IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTI7IDFGQTI7IDFGQUE7IDFGNkEgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTM7IDFGQTM7IDFGQUI7IDFGNkIgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGQTQ7IDFGQTQ7IDFGQUM7IDFGNkMgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZBNTsgMUZBNTsgMUZBRDsgMUY2RCAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JCisxRkE2OyAxRkE2OyAxRkFFOyAxRjZFIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRkE3OyAxRkE3OyAxRkFGOyAxRjZGIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRkE4OyAxRkEwOyAxRkE4OyAxRjY4IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQTk7IDFGQTE7IDFGQTk7IDFGNjkgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBQTsgMUZBMjsgMUZBQTsgMUY2QSAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBQjsgMUZBMzsgMUZBQjsgMUY2QiAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSQorMUZBQzsgMUZBNDsgMUZBQzsgMUY2QyAwMzk5OyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JCisxRkFEOyAxRkE1OyAxRkFEOyAxRjZEIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQUU7IDFGQTY7IDFGQUU7IDFGNkUgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQUY7IDFGQTc7IDFGQUY7IDFGNkYgMDM5OTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkkKKzFGQjM7IDFGQjM7IDFGQkM7IDAzOTEgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBZUE9HRUdSQU1NRU5JCisxRkJDOyAxRkIzOyAxRkJDOyAwMzkxIDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQUk9TR0VHUkFNTUVOSQorMUZDMzsgMUZDMzsgMUZDQzsgMDM5NyAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBZUE9HRUdSQU1NRU5JCisxRkNDOyAxRkMzOyAxRkNDOyAwMzk3IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFJPU0dFR1JBTU1FTkkKKzFGRjM7IDFGRjM7IDFGRkM7IDAzQTkgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBZUE9HRUdSQU1NRU5JCisxRkZDOyAxRkYzOyAxRkZDOyAwM0E5IDAzOTk7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQUk9TR0VHUkFNTUVOSQorCisjIFNvbWUgY2hhcmFjdGVycyB3aXRoIFlQT0dFR1JBTU1FTkkgYWxzbyBoYXZlIG5vIGNvcnJlc3BvbmRpbmcgdGl0bGVjYXNlcworCisxRkIyOyAxRkIyOyAxRkJBIDAzNDU7IDFGQkEgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZCNDsgMUZCNDsgMDM4NiAwMzQ1OyAwMzg2IDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZDMjsgMUZDMjsgMUZDQSAwMzQ1OyAxRkNBIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JCisxRkM0OyAxRkM0OyAwMzg5IDAzNDU7IDAzODkgMDM5OTsgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSQorMUZGMjsgMUZGMjsgMUZGQSAwMzQ1OyAxRkZBIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkKKzFGRjQ7IDFGRjQ7IDAzOEYgMDM0NTsgMDM4RiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkKKworMUZCNzsgMUZCNzsgMDM5MSAwMzQyIDAzNDU7IDAzOTEgMDM0MiAwMzk5OyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRkM3OyAxRkM3OyAwMzk3IDAzNDIgMDM0NTsgMDM5NyAwMzQyIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JCisxRkY3OyAxRkY3OyAwM0E5IDAzNDIgMDM0NTsgMDNBOSAwMzQyIDAzOTk7ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkkKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBDb25kaXRpb25hbCBtYXBwaW5ncworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIFNwZWNpYWwgY2FzZSBmb3IgZmluYWwgZm9ybSBvZiBzaWdtYQorCiswM0EzOyAwM0MyOyAwM0EzOyAwM0EzOyBGaW5hbF9TaWdtYTsgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBTSUdNQQorCisjIE5vdGU6IHRoZSBmb2xsb3dpbmcgY2FzZXMgZm9yIG5vbi1maW5hbCBhcmUgYWxyZWFkeSBpbiB0aGUgVW5pY29kZURhdGEgZmlsZS4KKworIyAwM0EzOyAwM0MzOyAwM0EzOyAwM0EzOyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIFNJR01BCisjIDAzQzM7IDAzQzM7IDAzQTM7IDAzQTM7ICMgR1JFRUsgU01BTEwgTEVUVEVSIFNJR01BCisjIDAzQzI7IDAzQzI7IDAzQTM7IDAzQTM7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEZJTkFMIFNJR01BCisKKyMgTm90ZTogdGhlIGZvbGxvd2luZyBjYXNlcyBhcmUgbm90IGluY2x1ZGVkLCBzaW5jZSB0aGV5IHdvdWxkIGNhc2UtZm9sZCBpbiBsb3dlcmNhc2luZworCisjIDAzQzM7IDAzQzI7IDAzQTM7IDAzQTM7IEZpbmFsX1NpZ21hOyAjIEdSRUVLIFNNQUxMIExFVFRFUiBTSUdNQQorIyAwM0MyOyAwM0MzOyAwM0EzOyAwM0EzOyBOb3RfRmluYWxfU2lnbWE7ICMgR1JFRUsgU01BTEwgTEVUVEVSIEZJTkFMIFNJR01BCisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgTG9jYWxlLXNlbnNpdGl2ZSBtYXBwaW5ncworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIExpdGh1YW5pYW4KKworIyBMaXRodWFuaWFuIHJldGFpbnMgdGhlIGRvdCBpbiBhIGxvd2VyY2FzZSBpIHdoZW4gZm9sbG93ZWQgYnkgYWNjZW50cy4KKworIyBSZW1vdmUgRE9UIEFCT1ZFIGFmdGVyICJpIiB3aXRoIHVwcGVyIG9yIHRpdGxlY2FzZQorCiswMzA3OyAwMzA3OyA7IDsgbHQgQWZ0ZXJfU29mdF9Eb3R0ZWQ7ICMgQ09NQklOSU5HIERPVCBBQk9WRQorCisjIEludHJvZHVjZSBhbiBleHBsaWNpdCBkb3QgYWJvdmUgd2hlbiBsb3dlcmNhc2luZyBjYXBpdGFsIEkncyBhbmQgSidzCisjIHdoZW5ldmVyIHRoZXJlIGFyZSBtb3JlIGFjY2VudHMgYWJvdmUuCisjIChvZiB0aGUgYWNjZW50cyB1c2VkIGluIExpdGh1YW5pYW46IGdyYXZlLCBhY3V0ZSwgdGlsZGUgYWJvdmUsIGFuZCBvZ29uZWspCisKKzAwNDk7IDAwNjkgMDMwNzsgMDA0OTsgMDA0OTsgbHQgTW9yZV9BYm92ZTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCiswMDRBOyAwMDZBIDAzMDc7IDAwNEE7IDAwNEE7IGx0IE1vcmVfQWJvdmU7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSgorMDEyRTsgMDEyRiAwMzA3OyAwMTJFOyAwMTJFOyBsdCBNb3JlX0Fib3ZlOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBPR09ORUsKKzAwQ0M7IDAwNjkgMDMwNyAwMzAwOyAwMENDOyAwMENDOyBsdDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggR1JBVkUKKzAwQ0Q7IDAwNjkgMDMwNyAwMzAxOyAwMENEOyAwMENEOyBsdDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEUKKzAxMjg7IDAwNjkgMDMwNyAwMzAzOyAwMTI4OyAwMTI4OyBsdDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggVElMREUKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjIFR1cmtpc2ggYW5kIEF6ZXJpCisKKyMgSSBhbmQgaS1kb3RsZXNzOyBJLWRvdCBhbmQgaSBhcmUgY2FzZSBwYWlycyBpbiBUdXJraXNoIGFuZCBBemVyaQorIyBUaGUgZm9sbG93aW5nIHJ1bGVzIGhhbmRsZSB0aG9zZSBjYXNlcy4KKworMDEzMDsgMDA2OTsgMDEzMDsgMDEzMDsgdHI7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRQorMDEzMDsgMDA2OTsgMDEzMDsgMDEzMDsgYXo7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRQorCisjIFdoZW4gbG93ZXJjYXNpbmcsIHJlbW92ZSBkb3RfYWJvdmUgaW4gdGhlIHNlcXVlbmNlIEkgKyBkb3RfYWJvdmUsIHdoaWNoIHdpbGwgdHVybiBpbnRvIGkuCisjIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgSS1kb3RfYWJvdmUKKworMDMwNzsgOyAwMzA3OyAwMzA3OyB0ciBBZnRlcl9JOyAjIENPTUJJTklORyBET1QgQUJPVkUKKzAzMDc7IDsgMDMwNzsgMDMwNzsgYXogQWZ0ZXJfSTsgIyBDT01CSU5JTkcgRE9UIEFCT1ZFCisKKyMgV2hlbiBsb3dlcmNhc2luZywgdW5sZXNzIGFuIEkgaXMgYmVmb3JlIGEgZG90X2Fib3ZlLCBpdCB0dXJucyBpbnRvIGEgZG90bGVzcyBpLgorCiswMDQ5OyAwMTMxOyAwMDQ5OyAwMDQ5OyB0ciBOb3RfQmVmb3JlX0RvdDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCiswMDQ5OyAwMTMxOyAwMDQ5OyAwMDQ5OyBheiBOb3RfQmVmb3JlX0RvdDsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCisKKyMgV2hlbiB1cHBlcmNhc2luZywgaSB0dXJucyBpbnRvIGEgZG90dGVkIGNhcGl0YWwgSQorCiswMDY5OyAwMDY5OyAwMTMwOyAwMTMwOyB0cjsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSQorMDA2OTsgMDA2OTsgMDEzMDsgMDEzMDsgYXo7ICMgTEFUSU4gU01BTEwgTEVUVEVSIEkKKworIyBOb3RlOiB0aGUgZm9sbG93aW5nIGNhc2UgaXMgYWxyZWFkeSBpbiB0aGUgVW5pY29kZURhdGEgZmlsZS4KKworIyAwMTMxOyAwMTMxOyAwMDQ5OyAwMDQ5OyB0cjsgIyBMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBJCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Vbmljb2RlRGF0YS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS9Vbmljb2RlRGF0YS50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjMxNDE4NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL1VuaWNvZGVEYXRhLnR4dApAQCAtMCwwICsxLDE2MzUxIEBACiswMDAwOzxjb250cm9sPjtDYzswO0JOOzs7OztOO05VTEw7Ozs7CiswMDAxOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NUQVJUIE9GIEhFQURJTkc7Ozs7CiswMDAyOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NUQVJUIE9GIFRFWFQ7Ozs7CiswMDAzOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0VORCBPRiBURVhUOzs7OworMDAwNDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTkQgT0YgVFJBTlNNSVNTSU9OOzs7OworMDAwNTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTlFVSVJZOzs7OworMDAwNjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtBQ0tOT1dMRURHRTs7OzsKKzAwMDc7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047QkVMTDs7OzsKKzAwMDg7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047QkFDS1NQQUNFOzs7OworMDAwOTs8Y29udHJvbD47Q2M7MDtTOzs7OztOO0NIQVJBQ1RFUiBUQUJVTEFUSU9OOzs7OworMDAwQTs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0xJTkUgRkVFRCAoTEYpOzs7OworMDAwQjs8Y29udHJvbD47Q2M7MDtTOzs7OztOO0xJTkUgVEFCVUxBVElPTjs7OzsKKzAwMEM7PGNvbnRyb2w+O0NjOzA7V1M7Ozs7O047Rk9STSBGRUVEIChGRik7Ozs7CiswMDBEOzxjb250cm9sPjtDYzswO0I7Ozs7O047Q0FSUklBR0UgUkVUVVJOIChDUik7Ozs7CiswMDBFOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NISUZUIE9VVDs7OzsKKzAwMEY7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U0hJRlQgSU47Ozs7CiswMDEwOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0RBVEEgTElOSyBFU0NBUEU7Ozs7CiswMDExOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0RFVklDRSBDT05UUk9MIE9ORTs7OzsKKzAwMTI7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047REVWSUNFIENPTlRST0wgVFdPOzs7OworMDAxMzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtERVZJQ0UgQ09OVFJPTCBUSFJFRTs7OzsKKzAwMTQ7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047REVWSUNFIENPTlRST0wgRk9VUjs7OzsKKzAwMTU7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047TkVHQVRJVkUgQUNLTk9XTEVER0U7Ozs7CiswMDE2Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO1NZTkNIUk9OT1VTIElETEU7Ozs7CiswMDE3Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0VORCBPRiBUUkFOU01JU1NJT04gQkxPQ0s7Ozs7CiswMDE4Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0NBTkNFTDs7OzsKKzAwMTk7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RU5EIE9GIE1FRElVTTs7OzsKKzAwMUE7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1VCU1RJVFVURTs7OzsKKzAwMUI7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047RVNDQVBFOzs7OworMDAxQzs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0lORk9STUFUSU9OIFNFUEFSQVRPUiBGT1VSOzs7OworMDAxRDs8Y29udHJvbD47Q2M7MDtCOzs7OztOO0lORk9STUFUSU9OIFNFUEFSQVRPUiBUSFJFRTs7OzsKKzAwMUU7PGNvbnRyb2w+O0NjOzA7Qjs7Ozs7TjtJTkZPUk1BVElPTiBTRVBBUkFUT1IgVFdPOzs7OworMDAxRjs8Y29udHJvbD47Q2M7MDtTOzs7OztOO0lORk9STUFUSU9OIFNFUEFSQVRPUiBPTkU7Ozs7CiswMDIwO1NQQUNFO1pzOzA7V1M7Ozs7O047Ozs7OworMDAyMTtFWENMQU1BVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDAyMjtRVU9UQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzAwMjM7TlVNQkVSIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CiswMDI0O0RPTExBUiBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMDAyNTtQRVJDRU5UIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CiswMDI2O0FNUEVSU0FORDtQbzswO09OOzs7OztOOzs7OzsKKzAwMjc7QVBPU1RST1BIRTtQbzswO09OOzs7OztOO0FQT1NUUk9QSEUtUVVPVEU7Ozs7CiswMDI4O0xFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworMDAyOTtSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzs7OztZO0NMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CiswMDJBO0FTVEVSSVNLO1BvOzA7T047Ozs7O047Ozs7OworMDAyQjtQTFVTIFNJR047U207MDtFUzs7Ozs7Tjs7Ozs7CiswMDJDO0NPTU1BO1BvOzA7Q1M7Ozs7O047Ozs7OworMDAyRDtIWVBIRU4tTUlOVVM7UGQ7MDtFUzs7Ozs7Tjs7Ozs7CiswMDJFO0ZVTEwgU1RPUDtQbzswO0NTOzs7OztOO1BFUklPRDs7OzsKKzAwMkY7U09MSURVUztQbzswO0NTOzs7OztOO1NMQVNIOzs7OworMDAzMDtESUdJVCBaRVJPO05kOzA7RU47OzA7MDswO047Ozs7OworMDAzMTtESUdJVCBPTkU7TmQ7MDtFTjs7MTsxOzE7Tjs7Ozs7CiswMDMyO0RJR0lUIFRXTztOZDswO0VOOzsyOzI7MjtOOzs7OzsKKzAwMzM7RElHSVQgVEhSRUU7TmQ7MDtFTjs7MzszOzM7Tjs7Ozs7CiswMDM0O0RJR0lUIEZPVVI7TmQ7MDtFTjs7NDs0OzQ7Tjs7Ozs7CiswMDM1O0RJR0lUIEZJVkU7TmQ7MDtFTjs7NTs1OzU7Tjs7Ozs7CiswMDM2O0RJR0lUIFNJWDtOZDswO0VOOzs2OzY7NjtOOzs7OzsKKzAwMzc7RElHSVQgU0VWRU47TmQ7MDtFTjs7Nzs3Ozc7Tjs7Ozs7CiswMDM4O0RJR0lUIEVJR0hUO05kOzA7RU47Ozg7ODs4O047Ozs7OworMDAzOTtESUdJVCBOSU5FO05kOzA7RU47Ozk7OTs5O047Ozs7OworMDAzQTtDT0xPTjtQbzswO0NTOzs7OztOOzs7OzsKKzAwM0I7U0VNSUNPTE9OO1BvOzA7T047Ozs7O047Ozs7OworMDAzQztMRVNTLVRIQU4gU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzAwM0Q7RVFVQUxTIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CiswMDNFO0dSRUFURVItVEhBTiBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMDAzRjtRVUVTVElPTiBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMDA0MDtDT01NRVJDSUFMIEFUO1BvOzA7T047Ozs7O047Ozs7OworMDA0MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBO0x1OzA7TDs7Ozs7Tjs7OzswMDYxOworMDA0MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCO0x1OzA7TDs7Ozs7Tjs7OzswMDYyOworMDA0MztMQVRJTiBDQVBJVEFMIExFVFRFUiBDO0x1OzA7TDs7Ozs7Tjs7OzswMDYzOworMDA0NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBEO0x1OzA7TDs7Ozs7Tjs7OzswMDY0OworMDA0NTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFO0x1OzA7TDs7Ozs7Tjs7OzswMDY1OworMDA0NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBGO0x1OzA7TDs7Ozs7Tjs7OzswMDY2OworMDA0NztMQVRJTiBDQVBJVEFMIExFVFRFUiBHO0x1OzA7TDs7Ozs7Tjs7OzswMDY3OworMDA0ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBIO0x1OzA7TDs7Ozs7Tjs7OzswMDY4OworMDA0OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJO0x1OzA7TDs7Ozs7Tjs7OzswMDY5OworMDA0QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBKO0x1OzA7TDs7Ozs7Tjs7OzswMDZBOworMDA0QjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLO0x1OzA7TDs7Ozs7Tjs7OzswMDZCOworMDA0QztMQVRJTiBDQVBJVEFMIExFVFRFUiBMO0x1OzA7TDs7Ozs7Tjs7OzswMDZDOworMDA0RDtMQVRJTiBDQVBJVEFMIExFVFRFUiBNO0x1OzA7TDs7Ozs7Tjs7OzswMDZEOworMDA0RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBOO0x1OzA7TDs7Ozs7Tjs7OzswMDZFOworMDA0RjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPO0x1OzA7TDs7Ozs7Tjs7OzswMDZGOworMDA1MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBQO0x1OzA7TDs7Ozs7Tjs7OzswMDcwOworMDA1MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBRO0x1OzA7TDs7Ozs7Tjs7OzswMDcxOworMDA1MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSO0x1OzA7TDs7Ozs7Tjs7OzswMDcyOworMDA1MztMQVRJTiBDQVBJVEFMIExFVFRFUiBTO0x1OzA7TDs7Ozs7Tjs7OzswMDczOworMDA1NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBUO0x1OzA7TDs7Ozs7Tjs7OzswMDc0OworMDA1NTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVO0x1OzA7TDs7Ozs7Tjs7OzswMDc1OworMDA1NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBWO0x1OzA7TDs7Ozs7Tjs7OzswMDc2OworMDA1NztMQVRJTiBDQVBJVEFMIExFVFRFUiBXO0x1OzA7TDs7Ozs7Tjs7OzswMDc3OworMDA1ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBYO0x1OzA7TDs7Ozs7Tjs7OzswMDc4OworMDA1OTtMQVRJTiBDQVBJVEFMIExFVFRFUiBZO0x1OzA7TDs7Ozs7Tjs7OzswMDc5OworMDA1QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBaO0x1OzA7TDs7Ozs7Tjs7OzswMDdBOworMDA1QjtMRUZUIFNRVUFSRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBTUVVBUkUgQlJBQ0tFVDs7OzsKKzAwNUM7UkVWRVJTRSBTT0xJRFVTO1BvOzA7T047Ozs7O047QkFDS1NMQVNIOzs7OworMDA1RDtSSUdIVCBTUVVBUkUgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgU1FVQVJFIEJSQUNLRVQ7Ozs7CiswMDVFO0NJUkNVTUZMRVggQUNDRU5UO1NrOzA7T047Ozs7O047U1BBQ0lORyBDSVJDVU1GTEVYOzs7OworMDA1RjtMT1cgTElORTtQYzswO09OOzs7OztOO1NQQUNJTkcgVU5ERVJTQ09SRTs7OzsKKzAwNjA7R1JBVkUgQUNDRU5UO1NrOzA7T047Ozs7O047U1BBQ0lORyBHUkFWRTs7OzsKKzAwNjE7TEFUSU4gU01BTEwgTEVUVEVSIEE7TGw7MDtMOzs7OztOOzs7MDA0MTs7MDA0MQorMDA2MjtMQVRJTiBTTUFMTCBMRVRURVIgQjtMbDswO0w7Ozs7O047OzswMDQyOzswMDQyCiswMDYzO0xBVElOIFNNQUxMIExFVFRFUiBDO0xsOzA7TDs7Ozs7Tjs7OzAwNDM7OzAwNDMKKzAwNjQ7TEFUSU4gU01BTEwgTEVUVEVSIEQ7TGw7MDtMOzs7OztOOzs7MDA0NDs7MDA0NAorMDA2NTtMQVRJTiBTTUFMTCBMRVRURVIgRTtMbDswO0w7Ozs7O047OzswMDQ1OzswMDQ1CiswMDY2O0xBVElOIFNNQUxMIExFVFRFUiBGO0xsOzA7TDs7Ozs7Tjs7OzAwNDY7OzAwNDYKKzAwNjc7TEFUSU4gU01BTEwgTEVUVEVSIEc7TGw7MDtMOzs7OztOOzs7MDA0Nzs7MDA0NworMDA2ODtMQVRJTiBTTUFMTCBMRVRURVIgSDtMbDswO0w7Ozs7O047OzswMDQ4OzswMDQ4CiswMDY5O0xBVElOIFNNQUxMIExFVFRFUiBJO0xsOzA7TDs7Ozs7Tjs7OzAwNDk7OzAwNDkKKzAwNkE7TEFUSU4gU01BTEwgTEVUVEVSIEo7TGw7MDtMOzs7OztOOzs7MDA0QTs7MDA0QQorMDA2QjtMQVRJTiBTTUFMTCBMRVRURVIgSztMbDswO0w7Ozs7O047OzswMDRCOzswMDRCCiswMDZDO0xBVElOIFNNQUxMIExFVFRFUiBMO0xsOzA7TDs7Ozs7Tjs7OzAwNEM7OzAwNEMKKzAwNkQ7TEFUSU4gU01BTEwgTEVUVEVSIE07TGw7MDtMOzs7OztOOzs7MDA0RDs7MDA0RAorMDA2RTtMQVRJTiBTTUFMTCBMRVRURVIgTjtMbDswO0w7Ozs7O047OzswMDRFOzswMDRFCiswMDZGO0xBVElOIFNNQUxMIExFVFRFUiBPO0xsOzA7TDs7Ozs7Tjs7OzAwNEY7OzAwNEYKKzAwNzA7TEFUSU4gU01BTEwgTEVUVEVSIFA7TGw7MDtMOzs7OztOOzs7MDA1MDs7MDA1MAorMDA3MTtMQVRJTiBTTUFMTCBMRVRURVIgUTtMbDswO0w7Ozs7O047OzswMDUxOzswMDUxCiswMDcyO0xBVElOIFNNQUxMIExFVFRFUiBSO0xsOzA7TDs7Ozs7Tjs7OzAwNTI7OzAwNTIKKzAwNzM7TEFUSU4gU01BTEwgTEVUVEVSIFM7TGw7MDtMOzs7OztOOzs7MDA1Mzs7MDA1MworMDA3NDtMQVRJTiBTTUFMTCBMRVRURVIgVDtMbDswO0w7Ozs7O047OzswMDU0OzswMDU0CiswMDc1O0xBVElOIFNNQUxMIExFVFRFUiBVO0xsOzA7TDs7Ozs7Tjs7OzAwNTU7OzAwNTUKKzAwNzY7TEFUSU4gU01BTEwgTEVUVEVSIFY7TGw7MDtMOzs7OztOOzs7MDA1Njs7MDA1NgorMDA3NztMQVRJTiBTTUFMTCBMRVRURVIgVztMbDswO0w7Ozs7O047OzswMDU3OzswMDU3CiswMDc4O0xBVElOIFNNQUxMIExFVFRFUiBYO0xsOzA7TDs7Ozs7Tjs7OzAwNTg7OzAwNTgKKzAwNzk7TEFUSU4gU01BTEwgTEVUVEVSIFk7TGw7MDtMOzs7OztOOzs7MDA1OTs7MDA1OQorMDA3QTtMQVRJTiBTTUFMTCBMRVRURVIgWjtMbDswO0w7Ozs7O047OzswMDVBOzswMDVBCiswMDdCO0xFRlQgQ1VSTFkgQlJBQ0tFVDtQczswO09OOzs7OztZO09QRU5JTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKKzAwN0M7VkVSVElDQUwgTElORTtTbTswO09OOzs7OztOO1ZFUlRJQ0FMIEJBUjs7OzsKKzAwN0Q7UklHSFQgQ1VSTFkgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKKzAwN0U7VElMREU7U207MDtPTjs7Ozs7Tjs7Ozs7CiswMDdGOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0RFTEVURTs7OzsKKzAwODA7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Ozs7OworMDA4MTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7Tjs7Ozs7CiswMDgyOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0JSRUFLIFBFUk1JVFRFRCBIRVJFOzs7OworMDA4Mzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtOTyBCUkVBSyBIRVJFOzs7OworMDA4NDs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7Tjs7Ozs7CiswMDg1Ozxjb250cm9sPjtDYzswO0I7Ozs7O047TkVYVCBMSU5FIChORUwpOzs7OworMDA4Njs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTVEFSVCBPRiBTRUxFQ1RFRCBBUkVBOzs7OworMDA4Nzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtFTkQgT0YgU0VMRUNURUQgQVJFQTs7OzsKKzAwODg7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Q0hBUkFDVEVSIFRBQlVMQVRJT04gU0VUOzs7OworMDA4OTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtDSEFSQUNURVIgVEFCVUxBVElPTiBXSVRIIEpVU1RJRklDQVRJT047Ozs7CiswMDhBOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0xJTkUgVEFCVUxBVElPTiBTRVQ7Ozs7CiswMDhCOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1BBUlRJQUwgTElORSBGT1JXQVJEOzs7OworMDA4Qzs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtQQVJUSUFMIExJTkUgQkFDS1dBUkQ7Ozs7CiswMDhEOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1JFVkVSU0UgTElORSBGRUVEOzs7OworMDA4RTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTSU5HTEUgU0hJRlQgVFdPOzs7OworMDA4Rjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTSU5HTEUgU0hJRlQgVEhSRUU7Ozs7CiswMDkwOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0RFVklDRSBDT05UUk9MIFNUUklORzs7OzsKKzAwOTE7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047UFJJVkFURSBVU0UgT05FOzs7OworMDA5Mjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtQUklWQVRFIFVTRSBUV087Ozs7CiswMDkzOzxjb250cm9sPjtDYzswO0JOOzs7OztOO1NFVCBUUkFOU01JVCBTVEFURTs7OzsKKzAwOTQ7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Q0FOQ0VMIENIQVJBQ1RFUjs7OzsKKzAwOTU7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047TUVTU0FHRSBXQUlUSU5HOzs7OworMDA5Njs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTVEFSVCBPRiBHVUFSREVEIEFSRUE7Ozs7CiswMDk3Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO0VORCBPRiBHVUFSREVEIEFSRUE7Ozs7CiswMDk4Ozxjb250cm9sPjtDYzswO0JOOzs7OztOO1NUQVJUIE9GIFNUUklORzs7OzsKKzAwOTk7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047Ozs7OworMDA5QTs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtTSU5HTEUgQ0hBUkFDVEVSIElOVFJPRFVDRVI7Ozs7CiswMDlCOzxjb250cm9sPjtDYzswO0JOOzs7OztOO0NPTlRST0wgU0VRVUVOQ0UgSU5UUk9EVUNFUjs7OzsKKzAwOUM7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047U1RSSU5HIFRFUk1JTkFUT1I7Ozs7CiswMDlEOzxjb250cm9sPjtDYzswO0JOOzs7OztOO09QRVJBVElORyBTWVNURU0gQ09NTUFORDs7OzsKKzAwOUU7PGNvbnRyb2w+O0NjOzA7Qk47Ozs7O047UFJJVkFDWSBNRVNTQUdFOzs7OworMDA5Rjs8Y29udHJvbD47Q2M7MDtCTjs7Ozs7TjtBUFBMSUNBVElPTiBQUk9HUkFNIENPTU1BTkQ7Ozs7CiswMEEwO05PLUJSRUFLIFNQQUNFO1pzOzA7Q1M7PG5vQnJlYWs+IDAwMjA7Ozs7TjtOT04tQlJFQUtJTkcgU1BBQ0U7Ozs7CiswMEExO0lOVkVSVEVEIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMEEyO0NFTlQgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwQTM7UE9VTkQgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwQTQ7Q1VSUkVOQ1kgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzAwQTU7WUVOIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswMEE2O0JST0tFTiBCQVI7U287MDtPTjs7Ozs7TjtCUk9LRU4gVkVSVElDQUwgQkFSOzs7OworMDBBNztTRUNUSU9OIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CiswMEE4O0RJQUVSRVNJUztTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwODs7OztOO1NQQUNJTkcgRElBRVJFU0lTOzs7OworMDBBOTtDT1BZUklHSFQgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzAwQUE7RkVNSU5JTkUgT1JESU5BTCBJTkRJQ0FUT1I7TGw7MDtMOzxzdXBlcj4gMDA2MTs7OztOOzs7OzsKKzAwQUI7TEVGVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7WTtMRUZUIFBPSU5USU5HIEdVSUxMRU1FVDsqOzs7CiswMEFDO05PVCBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMDBBRDtTT0ZUIEhZUEhFTjtDZjswO0JOOzs7OztOOzs7OzsKKzAwQUU7UkVHSVNURVJFRCBTSUdOO1NvOzA7T047Ozs7O047UkVHSVNURVJFRCBUUkFERSBNQVJLIFNJR047Ozs7CiswMEFGO01BQ1JPTjtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwNDs7OztOO1NQQUNJTkcgTUFDUk9OOzs7OworMDBCMDtERUdSRUUgU0lHTjtTbzswO0VUOzs7OztOOzs7OzsKKzAwQjE7UExVUy1NSU5VUyBTSUdOO1NtOzA7RVQ7Ozs7O047UExVUy1PUi1NSU5VUyBTSUdOOzs7OworMDBCMjtTVVBFUlNDUklQVCBUV087Tm87MDtFTjs8c3VwZXI+IDAwMzI7OzI7MjtOO1NVUEVSU0NSSVBUIERJR0lUIFRXTzs7OzsKKzAwQjM7U1VQRVJTQ1JJUFQgVEhSRUU7Tm87MDtFTjs8c3VwZXI+IDAwMzM7OzM7MztOO1NVUEVSU0NSSVBUIERJR0lUIFRIUkVFOzs7OworMDBCNDtBQ1VURSBBQ0NFTlQ7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDE7Ozs7TjtTUEFDSU5HIEFDVVRFOzs7OworMDBCNTtNSUNSTyBTSUdOO0xsOzA7TDs8Y29tcGF0PiAwM0JDOzs7O047OzswMzlDOzswMzlDCiswMEI2O1BJTENST1cgU0lHTjtTbzswO09OOzs7OztOO1BBUkFHUkFQSCBTSUdOOzs7OworMDBCNztNSURETEUgRE9UO1BvOzA7T047Ozs7O047Ozs7OworMDBCODtDRURJTExBO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzI3Ozs7O047U1BBQ0lORyBDRURJTExBOzs7OworMDBCOTtTVVBFUlNDUklQVCBPTkU7Tm87MDtFTjs8c3VwZXI+IDAwMzE7OzE7MTtOO1NVUEVSU0NSSVBUIERJR0lUIE9ORTs7OzsKKzAwQkE7TUFTQ1VMSU5FIE9SRElOQUwgSU5ESUNBVE9SO0xsOzA7TDs8c3VwZXI+IDAwNkY7Ozs7Tjs7Ozs7CiswMEJCO1JJR0hULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSztQZjswO09OOzs7OztZO1JJR0hUIFBPSU5USU5HIEdVSUxMRU1FVDsqOzs7CiswMEJDO1ZVTEdBUiBGUkFDVElPTiBPTkUgUVVBUlRFUjtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzQ7OzsxLzQ7TjtGUkFDVElPTiBPTkUgUVVBUlRFUjs7OzsKKzAwQkQ7VlVMR0FSIEZSQUNUSU9OIE9ORSBIQUxGO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzMjs7OzEvMjtOO0ZSQUNUSU9OIE9ORSBIQUxGOzs7OworMDBCRTtWVUxHQVIgRlJBQ1RJT04gVEhSRUUgUVVBUlRFUlM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzMgMjA0NCAwMDM0Ozs7My80O047RlJBQ1RJT04gVEhSRUUgUVVBUlRFUlM7Ozs7CiswMEJGO0lOVkVSVEVEIFFVRVNUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CiswMEMwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBHUkFWRTtMdTswO0w7MDA0MSAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBHUkFWRTs7OzAwRTA7CiswMEMxO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBBQ1VURTtMdTswO0w7MDA0MSAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBBQ1VURTs7OzAwRTE7CiswMEMyO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQxIDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIENJUkNVTUZMRVg7OzswMEUyOworMDBDMztMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggVElMREU7THU7MDtMOzAwNDEgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgVElMREU7OzswMEUzOworMDBDNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTO0x1OzA7TDswMDQxIDAzMDg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIERJQUVSRVNJUzs7OzAwRTQ7CiswMEM1O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFO0x1OzA7TDswMDQxIDAzMEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFJJTkc7OzswMEU1OworMDBDNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBFO2FzaCAqOzswMEU2OworMDBDNztMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0MyAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBDRURJTExBOzs7MDBFNzsKKzAwQzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEdSQVZFO0x1OzA7TDswMDQ1IDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIEdSQVZFOzs7MDBFODsKKzAwQzk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEFDVVRFO0x1OzA7TDswMDQ1IDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIEFDVVRFOzs7MDBFOTsKKzAwQ0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDUgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgQ0lSQ1VNRkxFWDs7OzAwRUE7CiswMENCO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNDUgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgRElBRVJFU0lTOzs7MDBFQjsKKzAwQ0M7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEdSQVZFO0x1OzA7TDswMDQ5IDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEdSQVZFOzs7MDBFQzsKKzAwQ0Q7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEFDVVRFO0x1OzA7TDswMDQ5IDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEFDVVRFOzs7MDBFRDsKKzAwQ0U7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDkgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgQ0lSQ1VNRkxFWDs7OzAwRUU7CiswMENGO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNDkgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgRElBRVJFU0lTOzs7MDBFRjsKKzAwRDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVRIO0x1OzA7TDs7Ozs7Tjs7SWNlbGFuZGljOzswMEYwOworMDBEMTtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggVElMREU7THU7MDtMOzAwNEUgMDMwMzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gVElMREU7OzswMEYxOworMDBEMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggR1JBVkU7THU7MDtMOzAwNEYgMDMwMDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gR1JBVkU7OzswMEYyOworMDBEMztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQUNVVEU7THU7MDtMOzAwNEYgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gQUNVVEU7OzswMEYzOworMDBENDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0RiAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBDSVJDVU1GTEVYOzs7MDBGNDsKKzAwRDU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFO0x1OzA7TDswMDRGIDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFRJTERFOzs7MDBGNTsKKzAwRDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0RiAwMzA4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBESUFFUkVTSVM7OzswMEY2OworMDBENztNVUxUSVBMSUNBVElPTiBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMDBEODtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFNMQVNIOzs7MDBGODsKKzAwRDk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEdSQVZFO0x1OzA7TDswMDU1IDAzMDA7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEdSQVZFOzs7MDBGOTsKKzAwREE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEFDVVRFO0x1OzA7TDswMDU1IDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIEFDVVRFOzs7MDBGQTsKKzAwREI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNTUgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgQ0lSQ1VNRkxFWDs7OzAwRkI7CiswMERDO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNTUgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgRElBRVJFU0lTOzs7MDBGQzsKKzAwREQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEFDVVRFO0x1OzA7TDswMDU5IDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIEFDVVRFOzs7MDBGRDsKKzAwREU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVEhPUk47THU7MDtMOzs7OztOOztJY2VsYW5kaWM7OzAwRkU7CiswMERGO0xBVElOIFNNQUxMIExFVFRFUiBTSEFSUCBTO0xsOzA7TDs7Ozs7Tjs7R2VybWFuOzs7CiswMEUwO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggR1JBVkU7TGw7MDtMOzAwNjEgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEdSQVZFOzswMEMwOzswMEMwCiswMEUxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQUNVVEU7TGw7MDtMOzAwNjEgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEFDVVRFOzswMEMxOzswMEMxCiswMEUyO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2MSAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgQ0lSQ1VNRkxFWDs7MDBDMjs7MDBDMgorMDBFMztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFRJTERFO0xsOzA7TDswMDYxIDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBUSUxERTs7MDBDMzs7MDBDMworMDBFNDtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA2MSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgRElBRVJFU0lTOzswMEM0OzswMEM0CiswMEU1O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRTtMbDswO0w7MDA2MSAwMzBBOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEEgUklORzs7MDBDNTs7MDBDNQorMDBFNjtMQVRJTiBTTUFMTCBMRVRURVIgQUU7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEU7YXNoICo7MDBDNjs7MDBDNgorMDBFNztMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENFRElMTEE7TGw7MDtMOzAwNjMgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDIENFRElMTEE7OzAwQzc7OzAwQzcKKzAwRTg7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBHUkFWRTtMbDswO0w7MDA2NSAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgR1JBVkU7OzAwQzg7OzAwQzgKKzAwRTk7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBBQ1VURTtMbDswO0w7MDA2NSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgQUNVVEU7OzAwQzk7OzAwQzkKKzAwRUE7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDY1IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBDSVJDVU1GTEVYOzswMENBOzswMENBCiswMEVCO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDY1IDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBESUFFUkVTSVM7OzAwQ0I7OzAwQ0IKKzAwRUM7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBHUkFWRTtMbDswO0w7MDA2OSAwMzAwOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgR1JBVkU7OzAwQ0M7OzAwQ0MKKzAwRUQ7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBBQ1VURTtMbDswO0w7MDA2OSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgQUNVVEU7OzAwQ0Q7OzAwQ0QKKzAwRUU7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDY5IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBDSVJDVU1GTEVYOzswMENFOzswMENFCiswMEVGO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDY5IDAzMDg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSSBESUFFUkVTSVM7OzAwQ0Y7OzAwQ0YKKzAwRjA7TEFUSU4gU01BTEwgTEVUVEVSIEVUSDtMbDswO0w7Ozs7O047O0ljZWxhbmRpYzswMEQwOzswMEQwCiswMEYxO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggVElMREU7TGw7MDtMOzAwNkUgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIFRJTERFOzswMEQxOzswMEQxCiswMEYyO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggR1JBVkU7TGw7MDtMOzAwNkYgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEdSQVZFOzswMEQyOzswMEQyCiswMEYzO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQUNVVEU7TGw7MDtMOzAwNkYgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEFDVVRFOzswMEQzOzswMEQzCiswMEY0O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2RiAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gQ0lSQ1VNRkxFWDs7MDBENDs7MDBENAorMDBGNTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFRJTERFO0xsOzA7TDswMDZGIDAzMDM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBUSUxERTs7MDBENTs7MDBENQorMDBGNjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA2RiAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE8gRElBRVJFU0lTOzswMEQ2OzswMEQ2CiswMEY3O0RJVklTSU9OIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CiswMEY4O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBTTEFTSDs7MDBEODs7MDBEOAorMDBGOTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEdSQVZFO0xsOzA7TDswMDc1IDAzMDA7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBHUkFWRTs7MDBEOTs7MDBEOQorMDBGQTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEFDVVRFO0xsOzA7TDswMDc1IDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBBQ1VURTs7MDBEQTs7MDBEQQorMDBGQjtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNzUgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIENJUkNVTUZMRVg7OzAwREI7OzAwREIKKzAwRkM7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNzUgMDMwODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUzs7MDBEQzs7MDBEQworMDBGRDtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEFDVVRFO0xsOzA7TDswMDc5IDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWSBBQ1VURTs7MDBERDs7MDBERAorMDBGRTtMQVRJTiBTTUFMTCBMRVRURVIgVEhPUk47TGw7MDtMOzs7OztOOztJY2VsYW5kaWM7MDBERTs7MDBERQorMDBGRjtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDA3OSAwMzA4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFkgRElBRVJFU0lTOzswMTc4OzswMTc4CiswMTAwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBNQUNST047THU7MDtMOzAwNDEgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgTUFDUk9OOzs7MDEwMTsKKzAxMDE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBNQUNST047TGw7MDtMOzAwNjEgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIE1BQ1JPTjs7MDEwMDs7MDEwMAorMDEwMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkU7THU7MDtMOzAwNDEgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgQlJFVkU7OzswMTAzOworMDEwMztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFO0xsOzA7TDswMDYxIDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBCUkVWRTs7MDEwMjs7MDEwMgorMDEwNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggT0dPTkVLO0x1OzA7TDswMDQxIDAzMjg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIE9HT05FSzs7OzAxMDU7CiswMTA1O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggT0dPTkVLO0xsOzA7TDswMDYxIDAzMjg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBPR09ORUs7OzAxMDQ7OzAxMDQKKzAxMDY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIEFDVVRFO0x1OzA7TDswMDQzIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIEFDVVRFOzs7MDEwNzsKKzAxMDc7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBBQ1VURTtMbDswO0w7MDA2MyAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgQUNVVEU7OzAxMDY7OzAxMDYKKzAxMDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDMgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEMgQ0lSQ1VNRkxFWDs7OzAxMDk7CiswMTA5O0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2MyAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgQ0lSQ1VNRkxFWDs7MDEwODs7MDEwOAorMDEwQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQzIDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIERPVDs7OzAxMEI7CiswMTBCO0xBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDYzIDAzMDc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBET1Q7OzAxMEE7OzAxMEEKKzAxMEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENBUk9OO0x1OzA7TDswMDQzIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBDIEhBQ0VLOzs7MDEwRDsKKzAxMEQ7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDQVJPTjtMbDswO0w7MDA2MyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEMgSEFDRUs7OzAxMEM7OzAxMEMKKzAxMEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIENBUk9OO0x1OzA7TDswMDQ0IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIEhBQ0VLOzs7MDEwRjsKKzAxMEY7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBDQVJPTjtMbDswO0w7MDA2NCAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgSEFDRUs7OzAxMEU7OzAxMEUKKzAxMTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBCQVI7OzswMTExOworMDExMTtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgQkFSOzswMTEwOzswMTEwCiswMTEyO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBNQUNST047THU7MDtMOzAwNDUgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgTUFDUk9OOzs7MDExMzsKKzAxMTM7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBNQUNST047TGw7MDtMOzAwNjUgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIE1BQ1JPTjs7MDExMjs7MDExMgorMDExNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQlJFVkU7THU7MDtMOzAwNDUgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEUgQlJFVkU7OzswMTE1OworMDExNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEJSRVZFO0xsOzA7TDswMDY1IDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBCUkVWRTs7MDExNDs7MDExNAorMDExNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ1IDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIERPVDs7OzAxMTc7CiswMTE3O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY1IDAzMDc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRSBET1Q7OzAxMTY7OzAxMTYKKzAxMTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIE9HT05FSztMdTswO0w7MDA0NSAwMzI4Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBPR09ORUs7OzswMTE5OworMDExOTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIE9HT05FSztMbDswO0w7MDA2NSAwMzI4Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEUgT0dPTkVLOzswMTE4OzswMTE4CiswMTFBO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDQVJPTjtMdTswO0w7MDA0NSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBIQUNFSzs7OzAxMUI7CiswMTFCO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0FST047TGw7MDtMOzAwNjUgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBFIEhBQ0VLOzswMTFBOzswMTFBCiswMTFDO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDQ3IDAzMDI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIENJUkNVTUZMRVg7OzswMTFEOworMDExRDtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwNjcgMDMwMjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIENJUkNVTUZMRVg7OzAxMUM7OzAxMUMKKzAxMUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIEJSRVZFO0x1OzA7TDswMDQ3IDAzMDY7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIEJSRVZFOzs7MDExRjsKKzAxMUY7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBCUkVWRTtMbDswO0w7MDA2NyAwMzA2Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgQlJFVkU7OzAxMUU7OzAxMUUKKzAxMjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0NyAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBET1Q7OzswMTIxOworMDEyMTtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2NyAwMzA3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgRE9UOzswMTIwOzswMTIwCiswMTIyO0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBDRURJTExBO0x1OzA7TDswMDQ3IDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIENFRElMTEE7OzswMTIzOworMDEyMztMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIENFRElMTEE7TGw7MDtMOzAwNjcgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIENFRElMTEE7OzAxMjI7OzAxMjIKKzAxMjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNDggMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEggQ0lSQ1VNRkxFWDs7OzAxMjU7CiswMTI1O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA2OCAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEggQ0lSQ1VNRkxFWDs7MDEyNDs7MDEyNAorMDEyNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIEJBUjs7OzAxMjc7CiswMTI3O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSCBCQVI7OzAxMjY7OzAxMjYKKzAxMjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIFRJTERFO0x1OzA7TDswMDQ5IDAzMDM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFRJTERFOzs7MDEyOTsKKzAxMjk7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBUSUxERTtMbDswO0w7MDA2OSAwMzAzOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgVElMREU7OzAxMjg7OzAxMjgKKzAxMkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0OSAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBNQUNST047OzswMTJCOworMDEyQjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIE1BQ1JPTjtMbDswO0w7MDA2OSAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgTUFDUk9OOzswMTJBOzswMTJBCiswMTJDO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBCUkVWRTtMdTswO0w7MDA0OSAwMzA2Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBCUkVWRTs7OzAxMkQ7CiswMTJEO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQlJFVkU7TGw7MDtMOzAwNjkgMDMwNjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEJSRVZFOzswMTJDOzswMTJDCiswMTJFO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBPR09ORUs7THU7MDtMOzAwNDkgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEkgT0dPTkVLOzs7MDEyRjsKKzAxMkY7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBPR09ORUs7TGw7MDtMOzAwNjkgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIE9HT05FSzs7MDEyRTs7MDEyRQorMDEzMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ5IDAzMDc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIERPVDs7OzAwNjk7CiswMTMxO0xBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEk7TGw7MDtMOzs7OztOOzs7MDA0OTs7MDA0OQorMDEzMjtMQVRJTiBDQVBJVEFMIExJR0FUVVJFIElKO0x1OzA7TDs8Y29tcGF0PiAwMDQ5IDAwNEE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIEo7OzswMTMzOworMDEzMztMQVRJTiBTTUFMTCBMSUdBVFVSRSBJSjtMbDswO0w7PGNvbXBhdD4gMDA2OSAwMDZBOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEkgSjs7MDEzMjs7MDEzMgorMDEzNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBKIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA0QSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSiBDSVJDVU1GTEVYOzs7MDEzNTsKKzAxMzU7TEFUSU4gU01BTEwgTEVUVEVSIEogV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDZBIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSiBDSVJDVU1GTEVYOzswMTM0OzswMTM0CiswMTM2O0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBDRURJTExBO0x1OzA7TDswMDRCIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIENFRElMTEE7OzswMTM3OworMDEzNztMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIENFRElMTEE7TGw7MDtMOzAwNkIgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBLIENFRElMTEE7OzAxMzY7OzAxMzYKKzAxMzg7TEFUSU4gU01BTEwgTEVUVEVSIEtSQTtMbDswO0w7Ozs7O047O0dyZWVubGFuZGljOzs7CiswMTM5O0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBBQ1VURTtMdTswO0w7MDA0QyAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBBQ1VURTs7OzAxM0E7CiswMTNBO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQUNVVEU7TGw7MDtMOzAwNkMgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIEFDVVRFOzswMTM5OzswMTM5CiswMTNCO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBDRURJTExBO0x1OzA7TDswMDRDIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIENFRElMTEE7OzswMTNDOworMDEzQztMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIENFRElMTEE7TGw7MDtMOzAwNkMgMDMyNzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIENFRElMTEE7OzAxM0I7OzAxM0IKKzAxM0Q7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIENBUk9OO0x1OzA7TDswMDRDIDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIEhBQ0VLOzs7MDEzRTsKKzAxM0U7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBDQVJPTjtMbDswO0w7MDA2QyAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgSEFDRUs7OzAxM0Q7OzAxM0QKKzAxM0Y7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIE1JRERMRSBET1Q7THU7MDtMOzxjb21wYXQ+IDAwNEMgMDBCNzs7OztOOzs7OzAxNDA7CiswMTQwO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggTUlERExFIERPVDtMbDswO0w7PGNvbXBhdD4gMDA2QyAwMEI3Ozs7O047OzswMTNGOzswMTNGCiswMTQxO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEwgU0xBU0g7OzswMTQyOworMDE0MjtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgU0xBU0g7OzAxNDE7OzAxNDEKKzAxNDM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIEFDVVRFO0x1OzA7TDswMDRFIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIEFDVVRFOzs7MDE0NDsKKzAxNDQ7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBBQ1VURTtMbDswO0w7MDA2RSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gQUNVVEU7OzAxNDM7OzAxNDMKKzAxNDU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIENFRElMTEE7THU7MDtMOzAwNEUgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gQ0VESUxMQTs7OzAxNDY7CiswMTQ2O0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQ0VESUxMQTtMbDswO0w7MDA2RSAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIE4gQ0VESUxMQTs7MDE0NTs7MDE0NQorMDE0NztMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQ0FST047THU7MDtMOzAwNEUgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gSEFDRUs7OzswMTQ4OworMDE0ODtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIENBUk9OO0xsOzA7TDswMDZFIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBIQUNFSzs7MDE0Nzs7MDE0NworMDE0OTtMQVRJTiBTTUFMTCBMRVRURVIgTiBQUkVDRURFRCBCWSBBUE9TVFJPUEhFO0xsOzA7TDs8Y29tcGF0PiAwMkJDIDAwNkU7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQVBPU1RST1BIRSBOOzs7OworMDE0QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBFTkc7THU7MDtMOzs7OztOOztTYW1pOzswMTRCOworMDE0QjtMQVRJTiBTTUFMTCBMRVRURVIgRU5HO0xsOzA7TDs7Ozs7Tjs7U2FtaTswMTRBOzswMTRBCiswMTRDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBNQUNST047THU7MDtMOzAwNEYgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gTUFDUk9OOzs7MDE0RDsKKzAxNEQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBNQUNST047TGw7MDtMOzAwNkYgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIE1BQ1JPTjs7MDE0Qzs7MDE0QworMDE0RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQlJFVkU7THU7MDtMOzAwNEYgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gQlJFVkU7OzswMTRGOworMDE0RjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEJSRVZFO0xsOzA7TDswMDZGIDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBCUkVWRTs7MDE0RTs7MDE0RQorMDE1MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRE9VQkxFIEFDVVRFO0x1OzA7TDswMDRGIDAzMEI7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIERPVUJMRSBBQ1VURTs7OzAxNTE7CiswMTUxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRE9VQkxFIEFDVVRFO0xsOzA7TDswMDZGIDAzMEI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBET1VCTEUgQUNVVEU7OzAxNTA7OzAxNTAKKzAxNTI7TEFUSU4gQ0FQSVRBTCBMSUdBVFVSRSBPRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBFOzs7MDE1MzsKKzAxNTM7TEFUSU4gU01BTEwgTElHQVRVUkUgT0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEU7OzAxNTI7OzAxNTIKKzAxNTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIEFDVVRFO0x1OzA7TDswMDUyIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIEFDVVRFOzs7MDE1NTsKKzAxNTU7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBBQ1VURTtMbDswO0w7MDA3MiAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFIgQUNVVEU7OzAxNTQ7OzAxNTQKKzAxNTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIENFRElMTEE7THU7MDtMOzAwNTIgMDMyNzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFIgQ0VESUxMQTs7OzAxNTc7CiswMTU3O0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggQ0VESUxMQTtMbDswO0w7MDA3MiAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFIgQ0VESUxMQTs7MDE1Njs7MDE1NgorMDE1ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggQ0FST047THU7MDtMOzAwNTIgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFIgSEFDRUs7OzswMTU5OworMDE1OTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIENBUk9OO0xsOzA7TDswMDcyIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUiBIQUNFSzs7MDE1ODs7MDE1OAorMDE1QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQUNVVEU7THU7MDtMOzAwNTMgMDMwMTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFMgQUNVVEU7OzswMTVCOworMDE1QjtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIEFDVVRFO0xsOzA7TDswMDczIDAzMDE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBBQ1VURTs7MDE1QTs7MDE1QQorMDE1QztMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1MyAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBDSVJDVU1GTEVYOzs7MDE1RDsKKzAxNUQ7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDczIDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBDSVJDVU1GTEVYOzswMTVDOzswMTVDCiswMTVFO0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBDRURJTExBO0x1OzA7TDswMDUzIDAzMjc7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIENFRElMTEE7Kjs7MDE1RjsKKzAxNUY7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDRURJTExBO0xsOzA7TDswMDczIDAzMjc7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBDRURJTExBOyo7MDE1RTs7MDE1RQorMDE2MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0FST047THU7MDtMOzAwNTMgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFMgSEFDRUs7OzswMTYxOworMDE2MTtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENBUk9OO0xsOzA7TDswMDczIDAzMEM7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUyBIQUNFSzs7MDE2MDs7MDE2MAorMDE2MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggQ0VESUxMQTtMdTswO0w7MDA1NCAwMzI3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBDRURJTExBOyo7OzAxNjM7CiswMTYzO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggQ0VESUxMQTtMbDswO0w7MDA3NCAwMzI3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgQ0VESUxMQTsqOzAxNjI7OzAxNjIKKzAxNjQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIENBUk9OO0x1OzA7TDswMDU0IDAzMEM7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIEhBQ0VLOzs7MDE2NTsKKzAxNjU7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDQVJPTjtMbDswO0w7MDA3NCAwMzBDOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgSEFDRUs7OzAxNjQ7OzAxNjQKKzAxNjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBCQVI7OzswMTY3OworMDE2NztMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgQkFSOzswMTY2OzswMTY2CiswMTY4O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBUSUxERTtMdTswO0w7MDA1NSAwMzAzOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBUSUxERTs7OzAxNjk7CiswMTY5O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggVElMREU7TGw7MDtMOzAwNzUgMDMwMzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIFRJTERFOzswMTY4OzswMTY4CiswMTZBO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBNQUNST047THU7MDtMOzAwNTUgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgTUFDUk9OOzs7MDE2QjsKKzAxNkI7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBNQUNST047TGw7MDtMOzAwNzUgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIE1BQ1JPTjs7MDE2QTs7MDE2QQorMDE2QztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQlJFVkU7THU7MDtMOzAwNTUgMDMwNjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgQlJFVkU7OzswMTZEOworMDE2RDtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEJSRVZFO0xsOzA7TDswMDc1IDAzMDY7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBCUkVWRTs7MDE2Qzs7MDE2QworMDE2RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggUklORyBBQk9WRTtMdTswO0w7MDA1NSAwMzBBOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBSSU5HOzs7MDE2RjsKKzAxNkY7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBSSU5HIEFCT1ZFO0xsOzA7TDswMDc1IDAzMEE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBSSU5HOzswMTZFOzswMTZFCiswMTcwO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBET1VCTEUgQUNVVEU7THU7MDtMOzAwNTUgMDMwQjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgRE9VQkxFIEFDVVRFOzs7MDE3MTsKKzAxNzE7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBET1VCTEUgQUNVVEU7TGw7MDtMOzAwNzUgMDMwQjs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERPVUJMRSBBQ1VURTs7MDE3MDs7MDE3MAorMDE3MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggT0dPTkVLO0x1OzA7TDswMDU1IDAzMjg7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIE9HT05FSzs7OzAxNzM7CiswMTczO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggT0dPTkVLO0xsOzA7TDswMDc1IDAzMjg7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVSBPR09ORUs7OzAxNzI7OzAxNzIKKzAxNzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIENJUkNVTUZMRVg7THU7MDtMOzAwNTcgMDMwMjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFcgQ0lSQ1VNRkxFWDs7OzAxNzU7CiswMTc1O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggQ0lSQ1VNRkxFWDtMbDswO0w7MDA3NyAwMzAyOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFcgQ0lSQ1VNRkxFWDs7MDE3NDs7MDE3NAorMDE3NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggQ0lSQ1VNRkxFWDtMdTswO0w7MDA1OSAwMzAyOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBDSVJDVU1GTEVYOzs7MDE3NzsKKzAxNzc7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBDSVJDVU1GTEVYO0xsOzA7TDswMDc5IDAzMDI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWSBDSVJDVU1GTEVYOzswMTc2OzswMTc2CiswMTc4O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNTkgMDMwODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFkgRElBRVJFU0lTOzs7MDBGRjsKKzAxNzk7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIEFDVVRFO0x1OzA7TDswMDVBIDAzMDE7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIEFDVVRFOzs7MDE3QTsKKzAxN0E7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBBQ1VURTtMbDswO0w7MDA3QSAwMzAxOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFogQUNVVEU7OzAxNzk7OzAxNzkKKzAxN0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1QSAwMzA3Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBET1Q7OzswMTdDOworMDE3QztMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3QSAwMzA3Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFogRE9UOzswMTdCOzswMTdCCiswMTdEO0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBDQVJPTjtMdTswO0w7MDA1QSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBIQUNFSzs7OzAxN0U7CiswMTdFO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggQ0FST047TGw7MDtMOzAwN0EgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIEhBQ0VLOzswMTdEOzswMTdECiswMTdGO0xBVElOIFNNQUxMIExFVFRFUiBMT05HIFM7TGw7MDtMOzxjb21wYXQ+IDAwNzM7Ozs7Tjs7OzAwNTM7OzAwNTMKKzAxODA7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCIEJBUjs7OzsKKzAxODE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEIgSE9PSzs7OzAyNTM7CiswMTgyO0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBUT1BCQVI7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEIgVE9QQkFSOzs7MDE4MzsKKzAxODM7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBUT1BCQVI7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCIFRPUEJBUjs7MDE4Mjs7MDE4MgorMDE4NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBUT05FIFNJWDtMdTswO0w7Ozs7O047Ozs7MDE4NTsKKzAxODU7TEFUSU4gU01BTEwgTEVUVEVSIFRPTkUgU0lYO0xsOzA7TDs7Ozs7Tjs7OzAxODQ7OzAxODQKKzAxODY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgT1BFTiBPO0x1OzA7TDs7Ozs7Tjs7OzswMjU0OworMDE4NztMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBIT09LOzs7MDE4ODsKKzAxODg7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBIT09LOzswMTg3OzswMTg3CiswMTg5O0xBVElOIENBUElUQUwgTEVUVEVSIEFGUklDQU4gRDtMdTswO0w7Ozs7O047Oyo7OzAyNTY7CiswMThBO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIEhPT0s7OzswMjU3OworMDE4QjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggVE9QQkFSO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFRPUEJBUjs7OzAxOEM7CiswMThDO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggVE9QQkFSO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRCBUT1BCQVI7OzAxOEI7OzAxOEIKKzAxOEQ7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBERUxUQTtMbDswO0w7Ozs7O047Ozs7OworMDE4RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBSRVZFUlNFRCBFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUVVJORUQgRTs7OzAxREQ7CiswMThGO0xBVElOIENBUElUQUwgTEVUVEVSIFNDSFdBO0x1OzA7TDs7Ozs7Tjs7OzswMjU5OworMDE5MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPUEVOIEU7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEVQU0lMT047OzswMjVCOworMDE5MTtMQVRJTiBDQVBJVEFMIExFVFRFUiBGIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRiBIT09LOzs7MDE5MjsKKzAxOTI7TEFUSU4gU01BTEwgTEVUVEVSIEYgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgU0NSSVBUIEY7OzAxOTE7OzAxOTEKKzAxOTM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEcgSE9PSzs7OzAyNjA7CiswMTk0O0xBVElOIENBUElUQUwgTEVUVEVSIEdBTU1BO0x1OzA7TDs7Ozs7Tjs7OzswMjYzOworMDE5NTtMQVRJTiBTTUFMTCBMRVRURVIgSFY7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBIIFY7aHdhaXI7MDFGNjs7MDFGNgorMDE5NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBJT1RBO0x1OzA7TDs7Ozs7Tjs7OzswMjY5OworMDE5NztMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCQVJSRUQgSTs7OzAyNjg7CiswMTk4O0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBLIEhPT0s7OzswMTk5OworMDE5OTtMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBLIEhPT0s7OzAxOTg7OzAxOTgKKzAxOUE7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBCQVI7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCQVJSRUQgTDs7MDIzRDs7MDIzRAorMDE5QjtMQVRJTiBTTUFMTCBMRVRURVIgTEFNQkRBIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQkFSUkVEIExBTUJEQTs7OzsKKzAxOUM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVFVSTkVEIE07THU7MDtMOzs7OztOOzs7OzAyNkY7CiswMTlEO0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBMRUZUIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gSE9PSzs7OzAyNzI7CiswMTlFO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggTE9ORyBSSUdIVCBMRUc7TGw7MDtMOzs7OztOOzs7MDIyMDs7MDIyMAorMDE5RjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggTUlERExFIFRJTERFO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCQVJSRUQgTzsqOzswMjc1OworMDFBMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STjtMdTswO0w7MDA0RiAwMzFCOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBIT1JOOzs7MDFBMTsKKzAxQTE7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOO0xsOzA7TDswMDZGIDAzMUI7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTyBIT1JOOzswMUEwOzswMUEwCiswMUEyO0xBVElOIENBUElUQUwgTEVUVEVSIE9JO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIEk7Z2hhOzswMUEzOworMDFBMztMQVRJTiBTTUFMTCBMRVRURVIgT0k7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEk7Z2hhOzAxQTI7OzAxQTIKKzAxQTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUCBXSVRIIEhPT0s7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFAgSE9PSzs7OzAxQTU7CiswMUE1O0xBVElOIFNNQUxMIExFVFRFUiBQIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFAgSE9PSzs7MDFBNDs7MDFBNAorMDFBNjtMQVRJTiBMRVRURVIgWVI7THU7MDtMOzs7OztOO0xBVElOIExFVFRFUiBZIFI7Kjs7MDI4MDsKKzAxQTc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVE9ORSBUV087THU7MDtMOzs7OztOOzs7OzAxQTg7CiswMUE4O0xBVElOIFNNQUxMIExFVFRFUiBUT05FIFRXTztMbDswO0w7Ozs7O047OzswMUE3OzswMUE3CiswMUE5O0xBVElOIENBUElUQUwgTEVUVEVSIEVTSDtMdTswO0w7Ozs7O047Ozs7MDI4MzsKKzAxQUE7TEFUSU4gTEVUVEVSIFJFVkVSU0VEIEVTSCBMT09QO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMUFCO0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBQQUxBVEFMIEhPT0s7Ozs7CiswMUFDO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIEhPT0s7OzswMUFEOworMDFBRDtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIEhPT0s7OzAxQUM7OzAxQUMKKzAxQUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIFJFVFJPRkxFWCBIT09LO0x1OzA7TDs7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFJFVFJPRkxFWCBIT09LOzs7MDI4ODsKKzAxQUY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPUk47THU7MDtMOzAwNTUgMDMxQjs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFUgSE9STjs7OzAxQjA7CiswMUIwO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STjtMbDswO0w7MDA3NSAwMzFCOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgSE9STjs7MDFBRjs7MDFBRgorMDFCMTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVUFNJTE9OO0x1OzA7TDs7Ozs7Tjs7OzswMjhBOworMDFCMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBWIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgU0NSSVBUIFY7OzswMjhCOworMDFCMztMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggSE9PSztMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBIT09LOzs7MDFCNDsKKzAxQjQ7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWSBIT09LOzswMUIzOzswMUIzCiswMUI1O0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFogQkFSOzs7MDFCNjsKKzAxQjY7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIEJBUjs7MDFCNTs7MDFCNQorMDFCNztMQVRJTiBDQVBJVEFMIExFVFRFUiBFWkg7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFlPR0g7OzswMjkyOworMDFCODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFWkggUkVWRVJTRUQ7THU7MDtMOzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFJFVkVSU0VEIFlPR0g7OzswMUI5OworMDFCOTtMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFJFVkVSU0VEO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgWU9HSDs7MDFCODs7MDFCOAorMDFCQTtMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFdJVEggVEFJTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFlPR0ggV0lUSCBUQUlMOzs7OworMDFCQjtMQVRJTiBMRVRURVIgVFdPIFdJVEggU1RST0tFO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgVFdPIEJBUjs7OzsKKzAxQkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVE9ORSBGSVZFO0x1OzA7TDs7Ozs7Tjs7OzswMUJEOworMDFCRDtMQVRJTiBTTUFMTCBMRVRURVIgVE9ORSBGSVZFO0xsOzA7TDs7Ozs7Tjs7OzAxQkM7OzAxQkMKKzAxQkU7TEFUSU4gTEVUVEVSIElOVkVSVEVEIEdMT1RUQUwgU1RPUCBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIElOVkVSVEVEIEdMT1RUQUwgU1RPUCBCQVI7Ozs7CiswMUJGO0xBVElOIExFVFRFUiBXWU5OO0xsOzA7TDs7Ozs7Tjs7OzAxRjc7OzAxRjcKKzAxQzA7TEFUSU4gTEVUVEVSIERFTlRBTCBDTElDSztMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFBJUEU7Ozs7CiswMUMxO0xBVElOIExFVFRFUiBMQVRFUkFMIENMSUNLO0xvOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgRE9VQkxFIFBJUEU7Ozs7CiswMUMyO0xBVElOIExFVFRFUiBBTFZFT0xBUiBDTElDSztMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFBJUEUgRE9VQkxFIEJBUjs7OzsKKzAxQzM7TEFUSU4gTEVUVEVSIFJFVFJPRkxFWCBDTElDSztMbzswO0w7Ozs7O047TEFUSU4gTEVUVEVSIEVYQ0xBTUFUSU9OIE1BUks7Ozs7CiswMUM0O0xBVElOIENBUElUQUwgTEVUVEVSIERaIFdJVEggQ0FST047THU7MDtMOzxjb21wYXQ+IDAwNDQgMDE3RDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEQgWiBIQUNFSzs7OzAxQzY7MDFDNQorMDFDNTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggU01BTEwgTEVUVEVSIFogV0lUSCBDQVJPTjtMdDswO0w7PGNvbXBhdD4gMDA0NCAwMTdFOzs7O047TEFUSU4gTEVUVEVSIENBUElUQUwgRCBTTUFMTCBaIEhBQ0VLOzswMUM0OzAxQzY7MDFDNQorMDFDNjtMQVRJTiBTTUFMTCBMRVRURVIgRFogV0lUSCBDQVJPTjtMbDswO0w7PGNvbXBhdD4gMDA2NCAwMTdFOzs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgWiBIQUNFSzs7MDFDNDs7MDFDNQorMDFDNztMQVRJTiBDQVBJVEFMIExFVFRFUiBMSjtMdTswO0w7PGNvbXBhdD4gMDA0QyAwMDRBOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBKOzs7MDFDOTswMUM4CiswMUM4O0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBTTUFMTCBMRVRURVIgSjtMdDswO0w7PGNvbXBhdD4gMDA0QyAwMDZBOzs7O047TEFUSU4gTEVUVEVSIENBUElUQUwgTCBTTUFMTCBKOzswMUM3OzAxQzk7MDFDOAorMDFDOTtMQVRJTiBTTUFMTCBMRVRURVIgTEo7TGw7MDtMOzxjb21wYXQ+IDAwNkMgMDA2QTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBMIEo7OzAxQzc7OzAxQzgKKzAxQ0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTko7THU7MDtMOzxjb21wYXQ+IDAwNEUgMDA0QTs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE4gSjs7OzAxQ0M7MDFDQgorMDFDQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggU01BTEwgTEVUVEVSIEo7THQ7MDtMOzxjb21wYXQ+IDAwNEUgMDA2QTs7OztOO0xBVElOIExFVFRFUiBDQVBJVEFMIE4gU01BTEwgSjs7MDFDQTswMUNDOzAxQ0IKKzAxQ0M7TEFUSU4gU01BTEwgTEVUVEVSIE5KO0xsOzA7TDs8Y29tcGF0PiAwMDZFIDAwNkE7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBKOzswMUNBOzswMUNCCiswMUNEO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDQVJPTjtMdTswO0w7MDA0MSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBIQUNFSzs7OzAxQ0U7CiswMUNFO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0FST047TGw7MDtMOzAwNjEgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEhBQ0VLOzswMUNEOzswMUNECiswMUNGO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBDQVJPTjtMdTswO0w7MDA0OSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBIQUNFSzs7OzAxRDA7CiswMUQwO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQ0FST047TGw7MDtMOzAwNjkgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBJIEhBQ0VLOzswMUNGOzswMUNGCiswMUQxO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDQVJPTjtMdTswO0w7MDA0RiAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBIQUNFSzs7OzAxRDI7CiswMUQyO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0FST047TGw7MDtMOzAwNkYgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIEhBQ0VLOzswMUQxOzswMUQxCiswMUQzO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBDQVJPTjtMdTswO0w7MDA1NSAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBIQUNFSzs7OzAxRDQ7CiswMUQ0O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0FST047TGw7MDtMOzAwNzUgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIEhBQ0VLOzswMUQzOzswMUQzCiswMUQ1O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMdTswO0w7MDBEQyAwMzA0Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgTUFDUk9OOzs7MDFENjsKKzAxRDY7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQU5EIE1BQ1JPTjtMbDswO0w7MDBGQyAwMzA0Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFUgRElBRVJFU0lTIE1BQ1JPTjs7MDFENTs7MDFENQorMDFENztMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBBQ1VURTtMdTswO0w7MDBEQyAwMzAxOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgQUNVVEU7OzswMUQ4OworMDFEODtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgQUNVVEU7TGw7MDtMOzAwRkMgMDMwMTs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUyBBQ1VURTs7MDFENzs7MDFENworMDFEOTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBDQVJPTjtMdTswO0w7MDBEQyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgSEFDRUs7OzswMURBOworMDFEQTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgQ0FST047TGw7MDtMOzAwRkMgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUyBIQUNFSzs7MDFEOTs7MDFEOQorMDFEQjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEFORCBHUkFWRTtMdTswO0w7MDBEQyAwMzAwOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBESUFFUkVTSVMgR1JBVkU7OzswMURDOworMDFEQztMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgR1JBVkU7TGw7MDtMOzAwRkMgMDMwMDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBVIERJQUVSRVNJUyBHUkFWRTs7MDFEQjs7MDFEQgorMDFERDtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEU7TGw7MDtMOzs7OztOOzs7MDE4RTs7MDE4RQorMDFERTtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047THU7MDtMOzAwQzQgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIEEgRElBRVJFU0lTIE1BQ1JPTjs7OzAxREY7CiswMURGO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTIEFORCBNQUNST047TGw7MDtMOzAwRTQgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIERJQUVSRVNJUyBNQUNST047OzAxREU7OzAxREUKKzAxRTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERPVCBBQk9WRSBBTkQgTUFDUk9OO0x1OzA7TDswMjI2IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIERPVCBNQUNST047OzswMUUxOworMDFFMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERPVCBBQk9WRSBBTkQgTUFDUk9OO0xsOzA7TDswMjI3IDAzMDQ7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQSBET1QgTUFDUk9OOzswMUUwOzswMUUwCiswMUUyO0xBVElOIENBUElUQUwgTEVUVEVSIEFFIFdJVEggTUFDUk9OO0x1OzA7TDswMEM2IDAzMDQ7Ozs7TjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIEUgTUFDUk9OO2FzaCAqOzswMUUzOworMDFFMztMQVRJTiBTTUFMTCBMRVRURVIgQUUgV0lUSCBNQUNST047TGw7MDtMOzAwRTYgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBBIEUgTUFDUk9OO2FzaCAqOzAxRTI7OzAxRTIKKzAxRTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBCQVI7OzswMUU1OworMDFFNTtMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEcgQkFSOzswMUU0OzswMUU0CiswMUU2O0xBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBDQVJPTjtMdTswO0w7MDA0NyAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBIQUNFSzs7OzAxRTc7CiswMUU3O0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQ0FST047TGw7MDtMOzAwNjcgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBHIEhBQ0VLOzswMUU2OzswMUU2CiswMUU4O0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBDQVJPTjtMdTswO0w7MDA0QiAwMzBDOzs7O047TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBIQUNFSzs7OzAxRTk7CiswMUU5O0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggQ0FST047TGw7MDtMOzAwNkIgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBLIEhBQ0VLOzswMUU4OzswMUU4CiswMUVBO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBPR09ORUs7THU7MDtMOzAwNEYgMDMyODs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gT0dPTkVLOzs7MDFFQjsKKzAxRUI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBPR09ORUs7TGw7MDtMOzAwNkYgMDMyODs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIE9HT05FSzs7MDFFQTs7MDFFQQorMDFFQztMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggT0dPTkVLIEFORCBNQUNST047THU7MDtMOzAxRUEgMDMwNDs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIE8gT0dPTkVLIE1BQ1JPTjs7OzAxRUQ7CiswMUVEO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggT0dPTkVLIEFORCBNQUNST047TGw7MDtMOzAxRUIgMDMwNDs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBPIE9HT05FSyBNQUNST047OzAxRUM7OzAxRUMKKzAxRUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRVpIIFdJVEggQ0FST047THU7MDtMOzAxQjcgMDMwQzs7OztOO0xBVElOIENBUElUQUwgTEVUVEVSIFlPR0ggSEFDRUs7OzswMUVGOworMDFFRjtMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFdJVEggQ0FST047TGw7MDtMOzAyOTIgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIIEhBQ0VLOzswMUVFOzswMUVFCiswMUYwO0xBVElOIFNNQUxMIExFVFRFUiBKIFdJVEggQ0FST047TGw7MDtMOzAwNkEgMDMwQzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBKIEhBQ0VLOzs7OworMDFGMTtMQVRJTiBDQVBJVEFMIExFVFRFUiBEWjtMdTswO0w7PGNvbXBhdD4gMDA0NCAwMDVBOzs7O047Ozs7MDFGMzswMUYyCiswMUYyO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBTTUFMTCBMRVRURVIgWjtMdDswO0w7PGNvbXBhdD4gMDA0NCAwMDdBOzs7O047OzswMUYxOzAxRjM7MDFGMgorMDFGMztMQVRJTiBTTUFMTCBMRVRURVIgRFo7TGw7MDtMOzxjb21wYXQ+IDAwNjQgMDA3QTs7OztOOzs7MDFGMTs7MDFGMgorMDFGNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggQUNVVEU7THU7MDtMOzAwNDcgMDMwMTs7OztOOzs7OzAxRjU7CiswMUY1O0xBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQUNVVEU7TGw7MDtMOzAwNjcgMDMwMTs7OztOOzs7MDFGNDs7MDFGNAorMDFGNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIV0FJUjtMdTswO0w7Ozs7O047Ozs7MDE5NTsKKzAxRjc7TEFUSU4gQ0FQSVRBTCBMRVRURVIgV1lOTjtMdTswO0w7Ozs7O047Ozs7MDFCRjsKKzAxRjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIEdSQVZFO0x1OzA7TDswMDRFIDAzMDA7Ozs7Tjs7OzswMUY5OworMDFGOTtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIEdSQVZFO0xsOzA7TDswMDZFIDAzMDA7Ozs7Tjs7OzAxRjg7OzAxRjgKKzAxRkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkUgQU5EIEFDVVRFO0x1OzA7TDswMEM1IDAzMDE7Ozs7Tjs7OzswMUZCOworMDFGQjtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkUgQU5EIEFDVVRFO0xsOzA7TDswMEU1IDAzMDE7Ozs7Tjs7OzAxRkE7OzAxRkEKKzAxRkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQUUgV0lUSCBBQ1VURTtMdTswO0w7MDBDNiAwMzAxOzs7O047O2FzaCAqOzswMUZEOworMDFGRDtMQVRJTiBTTUFMTCBMRVRURVIgQUUgV0lUSCBBQ1VURTtMbDswO0w7MDBFNiAwMzAxOzs7O047O2FzaCAqOzAxRkM7OzAxRkMKKzAxRkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFNUUk9LRSBBTkQgQUNVVEU7THU7MDtMOzAwRDggMDMwMTs7OztOOzs7OzAxRkY7CiswMUZGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggU1RST0tFIEFORCBBQ1VURTtMbDswO0w7MDBGOCAwMzAxOzs7O047OzswMUZFOzswMUZFCiswMjAwO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNDEgMDMwRjs7OztOOzs7OzAyMDE7CiswMjAxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDYxIDAzMEY7Ozs7Tjs7OzAyMDA7OzAyMDAKKzAyMDI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDQxIDAzMTE7Ozs7Tjs7OzswMjAzOworMDIwMztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDYxIDAzMTE7Ozs7Tjs7OzAyMDI7OzAyMDIKKzAyMDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA0NSAwMzBGOzs7O047Ozs7MDIwNTsKKzAyMDU7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNjUgMDMwRjs7OztOOzs7MDIwNDs7MDIwNAorMDIwNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNDUgMDMxMTs7OztOOzs7OzAyMDc7CiswMjA3O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNjUgMDMxMTs7OztOOzs7MDIwNjs7MDIwNgorMDIwODtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDQ5IDAzMEY7Ozs7Tjs7OzswMjA5OworMDIwOTtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA2OSAwMzBGOzs7O047OzswMjA4OzswMjA4CiswMjBBO0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA0OSAwMzExOzs7O047Ozs7MDIwQjsKKzAyMEI7TEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA2OSAwMzExOzs7O047OzswMjBBOzswMjBBCiswMjBDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBET1VCTEUgR1JBVkU7THU7MDtMOzAwNEYgMDMwRjs7OztOOzs7OzAyMEQ7CiswMjBEO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRE9VQkxFIEdSQVZFO0xsOzA7TDswMDZGIDAzMEY7Ozs7Tjs7OzAyMEM7OzAyMEMKKzAyMEU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIElOVkVSVEVEIEJSRVZFO0x1OzA7TDswMDRGIDAzMTE7Ozs7Tjs7OzswMjBGOworMDIwRjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIElOVkVSVEVEIEJSRVZFO0xsOzA7TDswMDZGIDAzMTE7Ozs7Tjs7OzAyMEU7OzAyMEUKKzAyMTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIERPVUJMRSBHUkFWRTtMdTswO0w7MDA1MiAwMzBGOzs7O047Ozs7MDIxMTsKKzAyMTE7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBET1VCTEUgR1JBVkU7TGw7MDtMOzAwNzIgMDMwRjs7OztOOzs7MDIxMDs7MDIxMAorMDIxMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggSU5WRVJURUQgQlJFVkU7THU7MDtMOzAwNTIgMDMxMTs7OztOOzs7OzAyMTM7CiswMjEzO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggSU5WRVJURUQgQlJFVkU7TGw7MDtMOzAwNzIgMDMxMTs7OztOOzs7MDIxMjs7MDIxMgorMDIxNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRE9VQkxFIEdSQVZFO0x1OzA7TDswMDU1IDAzMEY7Ozs7Tjs7OzswMjE1OworMDIxNTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERPVUJMRSBHUkFWRTtMbDswO0w7MDA3NSAwMzBGOzs7O047OzswMjE0OzswMjE0CiswMjE2O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBJTlZFUlRFRCBCUkVWRTtMdTswO0w7MDA1NSAwMzExOzs7O047Ozs7MDIxNzsKKzAyMTc7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBJTlZFUlRFRCBCUkVWRTtMbDswO0w7MDA3NSAwMzExOzs7O047OzswMjE2OzswMjE2CiswMjE4O0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBDT01NQSBCRUxPVztMdTswO0w7MDA1MyAwMzI2Ozs7O047Oyo7OzAyMTk7CiswMjE5O0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ09NTUEgQkVMT1c7TGw7MDtMOzAwNzMgMDMyNjs7OztOOzsqOzAyMTg7OzAyMTgKKzAyMUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIENPTU1BIEJFTE9XO0x1OzA7TDswMDU0IDAzMjY7Ozs7Tjs7Kjs7MDIxQjsKKzAyMUI7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDT01NQSBCRUxPVztMbDswO0w7MDA3NCAwMzI2Ozs7O047Oyo7MDIxQTs7MDIxQQorMDIxQztMQVRJTiBDQVBJVEFMIExFVFRFUiBZT0dIO0x1OzA7TDs7Ozs7Tjs7OzswMjFEOworMDIxRDtMQVRJTiBTTUFMTCBMRVRURVIgWU9HSDtMbDswO0w7Ozs7O047OzswMjFDOzswMjFDCiswMjFFO0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBDQVJPTjtMdTswO0w7MDA0OCAwMzBDOzs7O047Ozs7MDIxRjsKKzAyMUY7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBDQVJPTjtMbDswO0w7MDA2OCAwMzBDOzs7O047OzswMjFFOzswMjFFCiswMjIwO0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBMT05HIFJJR0hUIExFRztMdTswO0w7Ozs7O047Ozs7MDE5RTsKKzAyMjE7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBDVVJMO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjIyO0xBVElOIENBUElUQUwgTEVUVEVSIE9VO0x1OzA7TDs7Ozs7Tjs7OzswMjIzOworMDIyMztMQVRJTiBTTUFMTCBMRVRURVIgT1U7TGw7MDtMOzs7OztOOzs7MDIyMjs7MDIyMgorMDIyNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggSE9PSztMdTswO0w7Ozs7O047Ozs7MDIyNTsKKzAyMjU7TEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBIT09LO0xsOzA7TDs7Ozs7Tjs7OzAyMjQ7OzAyMjQKKzAyMjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0MSAwMzA3Ozs7O047Ozs7MDIyNzsKKzAyMjc7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjEgMDMwNzs7OztOOzs7MDIyNjs7MDIyNgorMDIyODtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0NSAwMzI3Ozs7O047Ozs7MDIyOTsKKzAyMjk7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDRURJTExBO0xsOzA7TDswMDY1IDAzMjc7Ozs7Tjs7OzAyMjg7OzAyMjgKKzAyMkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OO0x1OzA7TDswMEQ2IDAzMDQ7Ozs7Tjs7OzswMjJCOworMDIyQjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OO0xsOzA7TDswMEY2IDAzMDQ7Ozs7Tjs7OzAyMkE7OzAyMkEKKzAyMkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFIEFORCBNQUNST047THU7MDtMOzAwRDUgMDMwNDs7OztOOzs7OzAyMkQ7CiswMjJEO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIE1BQ1JPTjtMbDswO0w7MDBGNSAwMzA0Ozs7O047OzswMjJDOzswMjJDCiswMjJFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNEYgMDMwNzs7OztOOzs7OzAyMkY7CiswMjJGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDZGIDAzMDc7Ozs7Tjs7OzAyMkU7OzAyMkUKKzAyMzA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVCBBQk9WRSBBTkQgTUFDUk9OO0x1OzA7TDswMjJFIDAzMDQ7Ozs7Tjs7OzswMjMxOworMDIzMTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERPVCBBQk9WRSBBTkQgTUFDUk9OO0xsOzA7TDswMjJGIDAzMDQ7Ozs7Tjs7OzAyMzA7OzAyMzAKKzAyMzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIE1BQ1JPTjtMdTswO0w7MDA1OSAwMzA0Ozs7O047Ozs7MDIzMzsKKzAyMzM7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBNQUNST047TGw7MDtMOzAwNzkgMDMwNDs7OztOOzs7MDIzMjs7MDIzMgorMDIzNDtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIENVUkw7TGw7MDtMOzs7OztOOzs7OzsKKzAyMzU7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBDVVJMO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjM2O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047Ozs7OworMDIzNztMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjM4O0xBVElOIFNNQUxMIExFVFRFUiBEQiBESUdSQVBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjM5O0xBVElOIFNNQUxMIExFVFRFUiBRUCBESUdSQVBIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjNBO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOOzs7OzsKKzAyM0I7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Ozs7MDIzQzsKKzAyM0M7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7MDIzQjs7MDIzQgorMDIzRDtMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQkFSO0x1OzA7TDs7Ozs7Tjs7OzswMTlBOworMDIzRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggRElBR09OQUwgU1RST0tFO0x1OzA7TDs7Ozs7Tjs7Ozs7CiswMjNGO0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggU1dBU0ggVEFJTDtMbDswO0w7Ozs7O047Ozs7OworMDI0MDtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIFNXQVNIIFRBSUw7TGw7MDtMOzs7OztOOzs7OzsKKzAyNDE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgR0xPVFRBTCBTVE9QO0x1OzA7TDs7Ozs7Tjs7OzswMjk0OworMDI1MDtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEE7TGw7MDtMOzs7OztOOzs7OzsKKzAyNTE7TEFUSU4gU01BTEwgTEVUVEVSIEFMUEhBO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgU0NSSVBUIEE7Ozs7CiswMjUyO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgQUxQSEE7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgU0NSSVBUIEE7Ozs7CiswMjUzO0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEIgSE9PSzs7MDE4MTs7MDE4MQorMDI1NDtMQVRJTiBTTUFMTCBMRVRURVIgT1BFTiBPO0xsOzA7TDs7Ozs7Tjs7OzAxODY7OzAxODYKKzAyNTU7TEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQyBDVVJMOzs7OworMDI1NjtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIFRBSUw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFJFVFJPRkxFWCBIT09LOzswMTg5OzswMTg5CiswMjU3O0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgSE9PSzs7MDE4QTs7MDE4QQorMDI1ODtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRTtMbDswO0w7Ozs7O047Ozs7OworMDI1OTtMQVRJTiBTTUFMTCBMRVRURVIgU0NIV0E7TGw7MDtMOzs7OztOOzs7MDE4Rjs7MDE4RgorMDI1QTtMQVRJTiBTTUFMTCBMRVRURVIgU0NIV0EgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgU0NIV0EgSE9PSzs7OzsKKzAyNUI7TEFUSU4gU01BTEwgTEVUVEVSIE9QRU4gRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEVQU0lMT047OzAxOTA7OzAxOTAKKzAyNUM7TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIE9QRU4gRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIEVQU0lMT047Ozs7CiswMjVEO0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBPUEVOIEUgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUkVWRVJTRUQgRVBTSUxPTiBIT09LOzs7OworMDI1RTtMQVRJTiBTTUFMTCBMRVRURVIgQ0xPU0VEIFJFVkVSU0VEIE9QRU4gRTtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBSRVZFUlNFRCBFUFNJTE9OOzs7OworMDI1RjtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIEJBUjs7OzsKKzAyNjA7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRyBIT09LOzswMTkzOzswMTkzCiswMjYxO0xBVElOIFNNQUxMIExFVFRFUiBTQ1JJUFQgRztMbDswO0w7Ozs7O047Ozs7OworMDI2MjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBHO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjYzO0xBVElOIFNNQUxMIExFVFRFUiBHQU1NQTtMbDswO0w7Ozs7O047OzswMTk0OzswMTk0CiswMjY0O0xBVElOIFNNQUxMIExFVFRFUiBSQU1TIEhPUk47TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBCQUJZIEdBTU1BOzs7OworMDI2NTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEg7TGw7MDtMOzs7OztOOzs7OzsKKzAyNjY7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgSCBIT09LOzs7OworMDI2NztMQVRJTiBTTUFMTCBMRVRURVIgSEVORyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBIRU5HIEhPT0s7Ozs7CiswMjY4O0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgQkFSUkVEIEk7OzAxOTc7OzAxOTcKKzAyNjk7TEFUSU4gU01BTEwgTEVUVEVSIElPVEE7TGw7MDtMOzs7OztOOzs7MDE5Njs7MDE5NgorMDI2QTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBJO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjZCO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggTUlERExFIFRJTERFO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjZDO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQkVMVDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgQkVMVDs7OzsKKzAyNkQ7TEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEwgUkVUUk9GTEVYIEhPT0s7Ozs7CiswMjZFO0xBVElOIFNNQUxMIExFVFRFUiBMRVpIO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTCBZT0dIOzs7OworMDI2RjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIE07TGw7MDtMOzs7OztOOzs7MDE5Qzs7MDE5QworMDI3MDtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIE0gV0lUSCBMT05HIExFRztMbDswO0w7Ozs7O047Ozs7OworMDI3MTtMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBNIEhPT0s7Ozs7CiswMjcyO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggTEVGVCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgTiBIT09LOzswMTlEOzswMTlECiswMjczO0xBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBOIFJFVFJPRkxFWCBIT09LOzs7OworMDI3NDtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBOO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjc1O0xBVElOIFNNQUxMIExFVFRFUiBCQVJSRUQgTztMbDswO0w7Ozs7O047OzswMTlGOzswMTlGCiswMjc2O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIE9FO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBPIEU7Ozs7CiswMjc3O0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgT01FR0E7TGw7MDtMOzs7OztOOzs7OzsKKzAyNzg7TEFUSU4gU01BTEwgTEVUVEVSIFBISTtMbDswO0w7Ozs7O047Ozs7OworMDI3OTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFI7TGw7MDtMOzs7OztOOzs7OzsKKzAyN0E7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSIFdJVEggTE9ORyBMRUc7TGw7MDtMOzs7OztOOzs7OzsKKzAyN0I7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSIFdJVEggSE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBSIEhPT0s7Ozs7CiswMjdDO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggTE9ORyBMRUc7TGw7MDtMOzs7OztOOzs7OzsKKzAyN0Q7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBUQUlMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgUiBIT09LOzs7OworMDI3RTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIEZJU0hIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRklTSEhPT0sgUjs7OzsKKzAyN0Y7TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIFIgV0lUSCBGSVNISE9PSztMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFJFVkVSU0VEIEZJU0hIT09LIFI7Ozs7CiswMjgwO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIFI7TGw7MDtMOzs7OztOOzsqOzAxQTY7OzAxQTYKKzAyODE7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgSU5WRVJURUQgUjtMbDswO0w7Ozs7O047Ozs7OworMDI4MjtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTIEhPT0s7Ozs7CiswMjgzO0xBVElOIFNNQUxMIExFVFRFUiBFU0g7TGw7MDtMOzs7OztOOzs7MDFBOTs7MDFBOQorMDI4NDtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIFdJVEggU1RST0tFIEFORCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIEJBUiBIT09LOzs7OworMDI4NTtMQVRJTiBTTUFMTCBMRVRURVIgU1FVQVQgUkVWRVJTRUQgRVNIO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjg2O0xBVElOIFNNQUxMIExFVFRFUiBFU0ggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgRVNIIENVUkw7Ozs7CiswMjg3O0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgVDtMbDswO0w7Ozs7O047Ozs7OworMDI4ODtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgVCBSRVRST0ZMRVggSE9PSzs7MDFBRTs7MDFBRQorMDI4OTtMQVRJTiBTTUFMTCBMRVRURVIgVSBCQVI7TGw7MDtMOzs7OztOOzs7OzsKKzAyOEE7TEFUSU4gU01BTEwgTEVUVEVSIFVQU0lMT047TGw7MDtMOzs7OztOOzs7MDFCMTs7MDFCMQorMDI4QjtMQVRJTiBTTUFMTCBMRVRURVIgViBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBTQ1JJUFQgVjs7MDFCMjs7MDFCMgorMDI4QztMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIFY7TGw7MDtMOzs7OztOOzs7OzsKKzAyOEQ7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBXO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjhFO0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgWTtMbDswO0w7Ozs7O047Ozs7OworMDI4RjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBZO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswMjkwO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIFJFVFJPRkxFWCBIT09LOzs7OworMDI5MTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBaIENVUkw7Ozs7CiswMjkyO0xBVElOIFNNQUxMIExFVFRFUiBFWkg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBZT0dIOzswMUI3OzswMUI3CiswMjkzO0xBVElOIFNNQUxMIExFVFRFUiBFWkggV0lUSCBDVVJMO0xsOzA7TDs7Ozs7TjtMQVRJTiBTTUFMTCBMRVRURVIgWU9HSCBDVVJMOzs7OworMDI5NDtMQVRJTiBMRVRURVIgR0xPVFRBTCBTVE9QO0xsOzA7TDs7Ozs7Tjs7OzAyNDE7OzAyNDEKKzAyOTU7TEFUSU4gTEVUVEVSIFBIQVJZTkdFQUwgVk9JQ0VEIEZSSUNBVElWRTtMbDswO0w7Ozs7O047TEFUSU4gTEVUVEVSIFJFVkVSU0VEIEdMT1RUQUwgU1RPUDs7OzsKKzAyOTY7TEFUSU4gTEVUVEVSIElOVkVSVEVEIEdMT1RUQUwgU1RPUDtMbDswO0w7Ozs7O047Ozs7OworMDI5NztMQVRJTiBMRVRURVIgU1RSRVRDSEVEIEM7TGw7MDtMOzs7OztOOzs7OzsKKzAyOTg7TEFUSU4gTEVUVEVSIEJJTEFCSUFMIENMSUNLO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgQlVMTFNFWUU7Ozs7CiswMjk5O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEI7TGw7MDtMOzs7OztOOzs7OzsKKzAyOUE7TEFUSU4gU01BTEwgTEVUVEVSIENMT1NFRCBPUEVOIEU7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBDTE9TRUQgRVBTSUxPTjs7OzsKKzAyOUI7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgRyBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEcgSE9PSzs7OzsKKzAyOUM7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgSDtMbDswO0w7Ozs7O047Ozs7OworMDI5RDtMQVRJTiBTTUFMTCBMRVRURVIgSiBXSVRIIENST1NTRUQtVEFJTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIENST1NTRUQtVEFJTCBKOzs7OworMDI5RTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEs7TGw7MDtMOzs7OztOOzs7OzsKKzAyOUY7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgTDtMbDswO0w7Ozs7O047Ozs7OworMDJBMDtMQVRJTiBTTUFMTCBMRVRURVIgUSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBRIEhPT0s7Ozs7CiswMkExO0xBVElOIExFVFRFUiBHTE9UVEFMIFNUT1AgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOO0xBVElOIExFVFRFUiBHTE9UVEFMIFNUT1AgQkFSOzs7OworMDJBMjtMQVRJTiBMRVRURVIgUkVWRVJTRUQgR0xPVFRBTCBTVE9QIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtMQVRJTiBMRVRURVIgUkVWRVJTRUQgR0xPVFRBTCBTVE9QIEJBUjs7OzsKKzAyQTM7TEFUSU4gU01BTEwgTEVUVEVSIERaIERJR1JBUEg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFo7Ozs7CiswMkE0O0xBVElOIFNNQUxMIExFVFRFUiBERVpIIERJR1JBUEg7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBEIFlPR0g7Ozs7CiswMkE1O0xBVElOIFNNQUxMIExFVFRFUiBEWiBESUdSQVBIIFdJVEggQ1VSTDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIEQgWiBDVVJMOzs7OworMDJBNjtMQVRJTiBTTUFMTCBMRVRURVIgVFMgRElHUkFQSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgUzs7OzsKKzAyQTc7TEFUSU4gU01BTEwgTEVUVEVSIFRFU0ggRElHUkFQSDtMbDswO0w7Ozs7O047TEFUSU4gU01BTEwgTEVUVEVSIFQgRVNIOzs7OworMDJBODtMQVRJTiBTTUFMTCBMRVRURVIgVEMgRElHUkFQSCBXSVRIIENVUkw7TGw7MDtMOzs7OztOO0xBVElOIFNNQUxMIExFVFRFUiBUIEMgQ1VSTDs7OzsKKzAyQTk7TEFUSU4gU01BTEwgTEVUVEVSIEZFTkcgRElHUkFQSDtMbDswO0w7Ozs7O047Ozs7OworMDJBQTtMQVRJTiBTTUFMTCBMRVRURVIgTFMgRElHUkFQSDtMbDswO0w7Ozs7O047Ozs7OworMDJBQjtMQVRJTiBTTUFMTCBMRVRURVIgTFogRElHUkFQSDtMbDswO0w7Ozs7O047Ozs7OworMDJBQztMQVRJTiBMRVRURVIgQklMQUJJQUwgUEVSQ1VTU0lWRTtMbDswO0w7Ozs7O047Ozs7OworMDJBRDtMQVRJTiBMRVRURVIgQklERU5UQUwgUEVSQ1VTU0lWRTtMbDswO0w7Ozs7O047Ozs7OworMDJBRTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEggV0lUSCBGSVNISE9PSztMbDswO0w7Ozs7O047Ozs7OworMDJBRjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEggV0lUSCBGSVNISE9PSyBBTkQgVEFJTDtMbDswO0w7Ozs7O047Ozs7OworMDJCMDtNT0RJRklFUiBMRVRURVIgU01BTEwgSDtMbTswO0w7PHN1cGVyPiAwMDY4Ozs7O047Ozs7OworMDJCMTtNT0RJRklFUiBMRVRURVIgU01BTEwgSCBXSVRIIEhPT0s7TG07MDtMOzxzdXBlcj4gMDI2Njs7OztOO01PRElGSUVSIExFVFRFUiBTTUFMTCBIIEhPT0s7Ozs7CiswMkIyO01PRElGSUVSIExFVFRFUiBTTUFMTCBKO0xtOzA7TDs8c3VwZXI+IDAwNkE7Ozs7Tjs7Ozs7CiswMkIzO01PRElGSUVSIExFVFRFUiBTTUFMTCBSO0xtOzA7TDs8c3VwZXI+IDAwNzI7Ozs7Tjs7Ozs7CiswMkI0O01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgUjtMbTswO0w7PHN1cGVyPiAwMjc5Ozs7O047Ozs7OworMDJCNTtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIFIgV0lUSCBIT09LO0xtOzA7TDs8c3VwZXI+IDAyN0I7Ozs7TjtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIFIgSE9PSzs7OzsKKzAyQjY7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIENBUElUQUwgSU5WRVJURUQgUjtMbTswO0w7PHN1cGVyPiAwMjgxOzs7O047Ozs7OworMDJCNztNT0RJRklFUiBMRVRURVIgU01BTEwgVztMbTswO0w7PHN1cGVyPiAwMDc3Ozs7O047Ozs7OworMDJCODtNT0RJRklFUiBMRVRURVIgU01BTEwgWTtMbTswO0w7PHN1cGVyPiAwMDc5Ozs7O047Ozs7OworMDJCOTtNT0RJRklFUiBMRVRURVIgUFJJTUU7TG07MDtPTjs7Ozs7Tjs7Ozs7CiswMkJBO01PRElGSUVSIExFVFRFUiBET1VCTEUgUFJJTUU7TG07MDtPTjs7Ozs7Tjs7Ozs7CiswMkJCO01PRElGSUVSIExFVFRFUiBUVVJORUQgQ09NTUE7TG07MDtMOzs7OztOOzs7OzsKKzAyQkM7TU9ESUZJRVIgTEVUVEVSIEFQT1NUUk9QSEU7TG07MDtMOzs7OztOOzs7OzsKKzAyQkQ7TU9ESUZJRVIgTEVUVEVSIFJFVkVSU0VEIENPTU1BO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkJFO01PRElGSUVSIExFVFRFUiBSSUdIVCBIQUxGIFJJTkc7TG07MDtMOzs7OztOOzs7OzsKKzAyQkY7TU9ESUZJRVIgTEVUVEVSIExFRlQgSEFMRiBSSU5HO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswMkMwO01PRElGSUVSIExFVFRFUiBHTE9UVEFMIFNUT1A7TG07MDtMOzs7OztOOzs7OzsKKzAyQzE7TU9ESUZJRVIgTEVUVEVSIFJFVkVSU0VEIEdMT1RUQUwgU1RPUDtMbTswO0w7Ozs7O047Ozs7OworMDJDMjtNT0RJRklFUiBMRVRURVIgTEVGVCBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkMzO01PRElGSUVSIExFVFRFUiBSSUdIVCBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkM0O01PRElGSUVSIExFVFRFUiBVUCBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkM1O01PRElGSUVSIExFVFRFUiBET1dOIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyQzY7TU9ESUZJRVIgTEVUVEVSIENJUkNVTUZMRVggQUNDRU5UO0xtOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIENJUkNVTUZMRVg7Ozs7CiswMkM3O0NBUk9OO0xtOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIEhBQ0VLO01hbmRhcmluIENoaW5lc2UgdGhpcmQgdG9uZTs7OworMDJDODtNT0RJRklFUiBMRVRURVIgVkVSVElDQUwgTElORTtMbTswO09OOzs7OztOOzs7OzsKKzAyQzk7TU9ESUZJRVIgTEVUVEVSIE1BQ1JPTjtMbTswO09OOzs7OztOOztNYW5kYXJpbiBDaGluZXNlIGZpcnN0IHRvbmU7OzsKKzAyQ0E7TU9ESUZJRVIgTEVUVEVSIEFDVVRFIEFDQ0VOVDtMbTswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBBQ1VURTtNYW5kYXJpbiBDaGluZXNlIHNlY29uZCB0b25lOzs7CiswMkNCO01PRElGSUVSIExFVFRFUiBHUkFWRSBBQ0NFTlQ7TG07MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgR1JBVkU7TWFuZGFyaW4gQ2hpbmVzZSBmb3VydGggdG9uZTs7OworMDJDQztNT0RJRklFUiBMRVRURVIgTE9XIFZFUlRJQ0FMIExJTkU7TG07MDtPTjs7Ozs7Tjs7Ozs7CiswMkNEO01PRElGSUVSIExFVFRFUiBMT1cgTUFDUk9OO0xtOzA7T047Ozs7O047Ozs7OworMDJDRTtNT0RJRklFUiBMRVRURVIgTE9XIEdSQVZFIEFDQ0VOVDtMbTswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBMT1cgR1JBVkU7Ozs7CiswMkNGO01PRElGSUVSIExFVFRFUiBMT1cgQUNVVEUgQUNDRU5UO0xtOzA7T047Ozs7O047TU9ESUZJRVIgTEVUVEVSIExPVyBBQ1VURTs7OzsKKzAyRDA7TU9ESUZJRVIgTEVUVEVSIFRSSUFOR1VMQVIgQ09MT047TG07MDtMOzs7OztOOzs7OzsKKzAyRDE7TU9ESUZJRVIgTEVUVEVSIEhBTEYgVFJJQU5HVUxBUiBDT0xPTjtMbTswO0w7Ozs7O047Ozs7OworMDJEMjtNT0RJRklFUiBMRVRURVIgQ0VOVFJFRCBSSUdIVCBIQUxGIFJJTkc7U2s7MDtPTjs7Ozs7TjtNT0RJRklFUiBMRVRURVIgQ0VOVEVSRUQgUklHSFQgSEFMRiBSSU5HOzs7OworMDJEMztNT0RJRklFUiBMRVRURVIgQ0VOVFJFRCBMRUZUIEhBTEYgUklORztTazswO09OOzs7OztOO01PRElGSUVSIExFVFRFUiBDRU5URVJFRCBMRUZUIEhBTEYgUklORzs7OzsKKzAyRDQ7TU9ESUZJRVIgTEVUVEVSIFVQIFRBQ0s7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkQ1O01PRElGSUVSIExFVFRFUiBET1dOIFRBQ0s7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkQ2O01PRElGSUVSIExFVFRFUiBQTFVTIFNJR047U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkQ3O01PRElGSUVSIExFVFRFUiBNSU5VUyBTSUdOO1NrOzA7T047Ozs7O047Ozs7OworMDJEODtCUkVWRTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwNjs7OztOO1NQQUNJTkcgQlJFVkU7Ozs7CiswMkQ5O0RPVCBBQk9WRTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMwNzs7OztOO1NQQUNJTkcgRE9UIEFCT1ZFO01hbmRhcmluIENoaW5lc2UgbGlnaHQgdG9uZTs7OworMDJEQTtSSU5HIEFCT1ZFO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzBBOzs7O047U1BBQ0lORyBSSU5HIEFCT1ZFOzs7OworMDJEQjtPR09ORUs7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMjg7Ozs7TjtTUEFDSU5HIE9HT05FSzs7OzsKKzAyREM7U01BTEwgVElMREU7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMDM7Ozs7TjtTUEFDSU5HIFRJTERFOzs7OworMDJERDtET1VCTEUgQUNVVEUgQUNDRU5UO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzBCOzs7O047U1BBQ0lORyBET1VCTEUgQUNVVEU7Ozs7CiswMkRFO01PRElGSUVSIExFVFRFUiBSSE9USUMgSE9PSztTazswO09OOzs7OztOOzs7OzsKKzAyREY7TU9ESUZJRVIgTEVUVEVSIENST1NTIEFDQ0VOVDtTazswO09OOzs7OztOOzs7OzsKKzAyRTA7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEdBTU1BO0xtOzA7TDs8c3VwZXI+IDAyNjM7Ozs7Tjs7Ozs7CiswMkUxO01PRElGSUVSIExFVFRFUiBTTUFMTCBMO0xtOzA7TDs8c3VwZXI+IDAwNkM7Ozs7Tjs7Ozs7CiswMkUyO01PRElGSUVSIExFVFRFUiBTTUFMTCBTO0xtOzA7TDs8c3VwZXI+IDAwNzM7Ozs7Tjs7Ozs7CiswMkUzO01PRElGSUVSIExFVFRFUiBTTUFMTCBYO0xtOzA7TDs8c3VwZXI+IDAwNzg7Ozs7Tjs7Ozs7CiswMkU0O01PRElGSUVSIExFVFRFUiBTTUFMTCBSRVZFUlNFRCBHTE9UVEFMIFNUT1A7TG07MDtMOzxzdXBlcj4gMDI5NTs7OztOOzs7OzsKKzAyRTU7TU9ESUZJRVIgTEVUVEVSIEVYVFJBLUhJR0ggVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkU2O01PRElGSUVSIExFVFRFUiBISUdIIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworMDJFNztNT0RJRklFUiBMRVRURVIgTUlEIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworMDJFODtNT0RJRklFUiBMRVRURVIgTE9XIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworMDJFOTtNT0RJRklFUiBMRVRURVIgRVhUUkEtTE9XIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworMDJFQTtNT0RJRklFUiBMRVRURVIgWUlOIERFUEFSVElORyBUT05FIE1BUks7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkVCO01PRElGSUVSIExFVFRFUiBZQU5HIERFUEFSVElORyBUT05FIE1BUks7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkVDO01PRElGSUVSIExFVFRFUiBWT0lDSU5HO1NrOzA7T047Ozs7O047Ozs7OworMDJFRDtNT0RJRklFUiBMRVRURVIgVU5BU1BJUkFURUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkVFO01PRElGSUVSIExFVFRFUiBET1VCTEUgQVBPU1RST1BIRTtMbTswO0w7Ozs7O047Ozs7OworMDJFRjtNT0RJRklFUiBMRVRURVIgTE9XIERPV04gQVJST1dIRUFEO1NrOzA7T047Ozs7O047Ozs7OworMDJGMDtNT0RJRklFUiBMRVRURVIgTE9XIFVQIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyRjE7TU9ESUZJRVIgTEVUVEVSIExPVyBMRUZUIEFSUk9XSEVBRDtTazswO09OOzs7OztOOzs7OzsKKzAyRjI7TU9ESUZJRVIgTEVUVEVSIExPVyBSSUdIVCBBUlJPV0hFQUQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkYzO01PRElGSUVSIExFVFRFUiBMT1cgUklORztTazswO09OOzs7OztOOzs7OzsKKzAyRjQ7TU9ESUZJRVIgTEVUVEVSIE1JRERMRSBHUkFWRSBBQ0NFTlQ7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkY1O01PRElGSUVSIExFVFRFUiBNSURETEUgRE9VQkxFIEdSQVZFIEFDQ0VOVDtTazswO09OOzs7OztOOzs7OzsKKzAyRjY7TU9ESUZJRVIgTEVUVEVSIE1JRERMRSBET1VCTEUgQUNVVEUgQUNDRU5UO1NrOzA7T047Ozs7O047Ozs7OworMDJGNztNT0RJRklFUiBMRVRURVIgTE9XIFRJTERFO1NrOzA7T047Ozs7O047Ozs7OworMDJGODtNT0RJRklFUiBMRVRURVIgUkFJU0VEIENPTE9OO1NrOzA7T047Ozs7O047Ozs7OworMDJGOTtNT0RJRklFUiBMRVRURVIgQkVHSU4gSElHSCBUT05FO1NrOzA7T047Ozs7O047Ozs7OworMDJGQTtNT0RJRklFUiBMRVRURVIgRU5EIEhJR0ggVE9ORTtTazswO09OOzs7OztOOzs7OzsKKzAyRkI7TU9ESUZJRVIgTEVUVEVSIEJFR0lOIExPVyBUT05FO1NrOzA7T047Ozs7O047Ozs7OworMDJGQztNT0RJRklFUiBMRVRURVIgRU5EIExPVyBUT05FO1NrOzA7T047Ozs7O047Ozs7OworMDJGRDtNT0RJRklFUiBMRVRURVIgU0hFTEY7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMkZFO01PRElGSUVSIExFVFRFUiBPUEVOIFNIRUxGO1NrOzA7T047Ozs7O047Ozs7OworMDJGRjtNT0RJRklFUiBMRVRURVIgTE9XIExFRlQgQVJST1c7U2s7MDtPTjs7Ozs7Tjs7Ozs7CiswMzAwO0NPTUJJTklORyBHUkFWRSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBHUkFWRTtWYXJpYTs7OworMDMwMTtDT01CSU5JTkcgQUNVVEUgQUNDRU5UO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQUNVVEU7T3hpYSwgVG9ub3M7OzsKKzAzMDI7Q09NQklOSU5HIENJUkNVTUZMRVggQUNDRU5UO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ0lSQ1VNRkxFWDs7OzsKKzAzMDM7Q09NQklOSU5HIFRJTERFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVElMREU7Ozs7CiswMzA0O0NPTUJJTklORyBNQUNST047TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBNQUNST047Ozs7CiswMzA1O0NPTUJJTklORyBPVkVSTElORTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIE9WRVJTQ09SRTs7OzsKKzAzMDY7Q09NQklOSU5HIEJSRVZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQlJFVkU7VnJhY2h5Ozs7CiswMzA3O0NPTUJJTklORyBET1QgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBET1QgQUJPVkU7Ozs7CiswMzA4O0NPTUJJTklORyBESUFFUkVTSVM7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBESUFFUkVTSVM7RGlhbHl0aWthOzs7CiswMzA5O0NPTUJJTklORyBIT09LIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSE9PSyBBQk9WRTs7OzsKKzAzMEE7Q09NQklOSU5HIFJJTkcgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSSU5HIEFCT1ZFOzs7OworMDMwQjtDT01CSU5JTkcgRE9VQkxFIEFDVVRFIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVUJMRSBBQ1VURTs7OzsKKzAzMEM7Q09NQklOSU5HIENBUk9OO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSEFDRUs7Ozs7CiswMzBEO0NPTUJJTklORyBWRVJUSUNBTCBMSU5FIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVkVSVElDQUwgTElORSBBQk9WRTs7OzsKKzAzMEU7Q09NQklOSU5HIERPVUJMRSBWRVJUSUNBTCBMSU5FIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIFZFUlRJQ0FMIExJTkUgQUJPVkU7Ozs7CiswMzBGO0NPTUJJTklORyBET1VCTEUgR1JBVkUgQUNDRU5UO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIEdSQVZFOzs7OworMDMxMDtDT01CSU5JTkcgQ0FORFJBQklORFU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDQU5EUkFCSU5EVTs7OzsKKzAzMTE7Q09NQklOSU5HIElOVkVSVEVEIEJSRVZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgSU5WRVJURUQgQlJFVkU7Ozs7CiswMzEyO0NPTUJJTklORyBUVVJORUQgQ09NTUEgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBUVVJORUQgQ09NTUEgQUJPVkU7Ozs7CiswMzEzO0NPTUJJTklORyBDT01NQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIENPTU1BIEFCT1ZFO1BzaWxpOzs7CiswMzE0O0NPTUJJTklORyBSRVZFUlNFRCBDT01NQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJFVkVSU0VEIENPTU1BIEFCT1ZFO0Rhc2lhOzs7CiswMzE1O0NPTUJJTklORyBDT01NQSBBQk9WRSBSSUdIVDtNbjsyMzI7TlNNOzs7OztOO05PTi1TUEFDSU5HIENPTU1BIEFCT1ZFIFJJR0hUOzs7OworMDMxNjtDT01CSU5JTkcgR1JBVkUgQUNDRU5UIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgR1JBVkUgQkVMT1c7Ozs7CiswMzE3O0NPTUJJTklORyBBQ1VURSBBQ0NFTlQgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBBQ1VURSBCRUxPVzs7OzsKKzAzMTg7Q09NQklOSU5HIExFRlQgVEFDSyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIExFRlQgVEFDSyBCRUxPVzs7OzsKKzAzMTk7Q09NQklOSU5HIFJJR0hUIFRBQ0sgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSSUdIVCBUQUNLIEJFTE9XOzs7OworMDMxQTtDT01CSU5JTkcgTEVGVCBBTkdMRSBBQk9WRTtNbjsyMzI7TlNNOzs7OztOO05PTi1TUEFDSU5HIExFRlQgQU5HTEUgQUJPVkU7Ozs7CiswMzFCO0NPTUJJTklORyBIT1JOO01uOzIxNjtOU007Ozs7O047Tk9OLVNQQUNJTkcgSE9STjs7OzsKKzAzMUM7Q09NQklOSU5HIExFRlQgSEFMRiBSSU5HIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBIQUxGIFJJTkcgQkVMT1c7Ozs7CiswMzFEO0NPTUJJTklORyBVUCBUQUNLIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVVAgVEFDSyBCRUxPVzs7OzsKKzAzMUU7Q09NQklOSU5HIERPV04gVEFDSyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPV04gVEFDSyBCRUxPVzs7OzsKKzAzMUY7Q09NQklOSU5HIFBMVVMgU0lHTiBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFBMVVMgU0lHTiBCRUxPVzs7OzsKKzAzMjA7Q09NQklOSU5HIE1JTlVTIFNJR04gQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBNSU5VUyBTSUdOIEJFTE9XOzs7OworMDMyMTtDT01CSU5JTkcgUEFMQVRBTElaRUQgSE9PSyBCRUxPVztNbjsyMDI7TlNNOzs7OztOO05PTi1TUEFDSU5HIFBBTEFUQUxJWkVEIEhPT0sgQkVMT1c7Ozs7CiswMzIyO0NPTUJJTklORyBSRVRST0ZMRVggSE9PSyBCRUxPVztNbjsyMDI7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJFVFJPRkxFWCBIT09LIEJFTE9XOzs7OworMDMyMztDT01CSU5JTkcgRE9UIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9UIEJFTE9XOzs7OworMDMyNDtDT01CSU5JTkcgRElBRVJFU0lTIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIERPVCBCRUxPVzs7OzsKKzAzMjU7Q09NQklOSU5HIFJJTkcgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBSSU5HIEJFTE9XOzs7OworMDMyNjtDT01CSU5JTkcgQ09NTUEgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDT01NQSBCRUxPVzs7OzsKKzAzMjc7Q09NQklOSU5HIENFRElMTEE7TW47MjAyO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDRURJTExBOzs7OworMDMyODtDT01CSU5JTkcgT0dPTkVLO01uOzIwMjtOU007Ozs7O047Tk9OLVNQQUNJTkcgT0dPTkVLOzs7OworMDMyOTtDT01CSU5JTkcgVkVSVElDQUwgTElORSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFZFUlRJQ0FMIExJTkUgQkVMT1c7Ozs7CiswMzJBO0NPTUJJTklORyBCUklER0UgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBCUklER0UgQkVMT1c7Ozs7CiswMzJCO0NPTUJJTklORyBJTlZFUlRFRCBET1VCTEUgQVJDSCBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIElOVkVSVEVEIERPVUJMRSBBUkNIIEJFTE9XOzs7OworMDMyQztDT01CSU5JTkcgQ0FST04gQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBIQUNFSyBCRUxPVzs7OzsKKzAzMkQ7Q09NQklOSU5HIENJUkNVTUZMRVggQUNDRU5UIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQ0lSQ1VNRkxFWCBCRUxPVzs7OzsKKzAzMkU7Q09NQklOSU5HIEJSRVZFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgQlJFVkUgQkVMT1c7Ozs7CiswMzJGO0NPTUJJTklORyBJTlZFUlRFRCBCUkVWRSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIElOVkVSVEVEIEJSRVZFIEJFTE9XOzs7OworMDMzMDtDT01CSU5JTkcgVElMREUgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBUSUxERSBCRUxPVzs7OzsKKzAzMzE7Q09NQklOSU5HIE1BQ1JPTiBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIE1BQ1JPTiBCRUxPVzs7OzsKKzAzMzI7Q09NQklOSU5HIExPVyBMSU5FO01uOzIyMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVU5ERVJTQ09SRTs7OzsKKzAzMzM7Q09NQklOSU5HIERPVUJMRSBMT1cgTElORTtNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIERPVUJMRSBVTkRFUlNDT1JFOzs7OworMDMzNDtDT01CSU5JTkcgVElMREUgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBUSUxERSBPVkVSTEFZOzs7OworMDMzNTtDT01CSU5JTkcgU0hPUlQgU1RST0tFIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgU0hPUlQgQkFSIE9WRVJMQVk7Ozs7CiswMzM2O0NPTUJJTklORyBMT05HIFNUUk9LRSBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIExPTkcgQkFSIE9WRVJMQVk7Ozs7CiswMzM3O0NPTUJJTklORyBTSE9SVCBTT0xJRFVTIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgU0hPUlQgU0xBU0ggT1ZFUkxBWTs7OzsKKzAzMzg7Q09NQklOSU5HIExPTkcgU09MSURVUyBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIExPTkcgU0xBU0ggT1ZFUkxBWTs7OzsKKzAzMzk7Q09NQklOSU5HIFJJR0hUIEhBTEYgUklORyBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJR0hUIEhBTEYgUklORyBCRUxPVzs7OzsKKzAzM0E7Q09NQklOSU5HIElOVkVSVEVEIEJSSURHRSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIElOVkVSVEVEIEJSSURHRSBCRUxPVzs7OzsKKzAzM0I7Q09NQklOSU5HIFNRVUFSRSBCRUxPVztNbjsyMjA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFNRVUFSRSBCRUxPVzs7OzsKKzAzM0M7Q09NQklOSU5HIFNFQUdVTEwgQkVMT1c7TW47MjIwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBTRUFHVUxMIEJFTE9XOzs7OworMDMzRDtDT01CSU5JTkcgWCBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFggQUJPVkU7Ozs7CiswMzNFO0NPTUJJTklORyBWRVJUSUNBTCBUSUxERTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFZFUlRJQ0FMIFRJTERFOzs7OworMDMzRjtDT01CSU5JTkcgRE9VQkxFIE9WRVJMSU5FO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgRE9VQkxFIE9WRVJTQ09SRTs7OzsKKzAzNDA7Q09NQklOSU5HIEdSQVZFIFRPTkUgTUFSSztNbjsyMzA7TlNNOzAzMDA7Ozs7TjtOT04tU1BBQ0lORyBHUkFWRSBUT05FIE1BUks7VmlldG5hbWVzZTs7OworMDM0MTtDT01CSU5JTkcgQUNVVEUgVE9ORSBNQVJLO01uOzIzMDtOU007MDMwMTs7OztOO05PTi1TUEFDSU5HIEFDVVRFIFRPTkUgTUFSSztWaWV0bmFtZXNlOzs7CiswMzQyO0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNDM7Q09NQklOSU5HIEdSRUVLIEtPUk9OSVM7TW47MjMwO05TTTswMzEzOzs7O047Ozs7OworMDM0NDtDT01CSU5JTkcgR1JFRUsgRElBTFlUSUtBIFRPTk9TO01uOzIzMDtOU007MDMwOCAwMzAxOzs7O047R1JFRUsgTk9OLVNQQUNJTkcgRElBRVJFU0lTIFRPTk9TOzs7OworMDM0NTtDT01CSU5JTkcgR1JFRUsgWVBPR0VHUkFNTUVOSTtNbjsyNDA7TlNNOzs7OztOO0dSRUVLIE5PTi1TUEFDSU5HIElPVEEgQkVMT1c7OzAzOTk7OzAzOTkKKzAzNDY7Q09NQklOSU5HIEJSSURHRSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNDc7Q09NQklOSU5HIEVRVUFMUyBTSUdOIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDM0ODtDT01CSU5JTkcgRE9VQkxFIFZFUlRJQ0FMIExJTkUgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzQ5O0NPTUJJTklORyBMRUZUIEFOR0xFIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDM0QTtDT01CSU5JTkcgTk9UIFRJTERFIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM0QjtDT01CSU5JTkcgSE9NT1RIRVRJQyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNEM7Q09NQklOSU5HIEFMTU9TVCBFUVVBTCBUTyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNEQ7Q09NQklOSU5HIExFRlQgUklHSFQgQVJST1cgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzRFO0NPTUJJTklORyBVUFdBUkRTIEFSUk9XIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDM0RjtDT01CSU5JTkcgR1JBUEhFTUUgSk9JTkVSO01uOzA7TlNNOzs7OztOOzs7OzsKKzAzNTA7Q09NQklOSU5HIFJJR0hUIEFSUk9XSEVBRCBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNTE7Q09NQklOSU5HIExFRlQgSEFMRiBSSU5HIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM1MjtDT01CSU5JTkcgRkVSTUFUQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNTM7Q09NQklOSU5HIFggQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzU0O0NPTUJJTklORyBMRUZUIEFSUk9XSEVBRCBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNTU7Q09NQklOSU5HIFJJR0hUIEFSUk9XSEVBRCBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNTY7Q09NQklOSU5HIFJJR0hUIEFSUk9XSEVBRCBBTkQgVVAgQVJST1dIRUFEIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDM1NztDT01CSU5JTkcgUklHSFQgSEFMRiBSSU5HIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM1ODtDT01CSU5JTkcgRE9UIEFCT1ZFIFJJR0hUO01uOzIzMjtOU007Ozs7O047Ozs7OworMDM1OTtDT01CSU5JTkcgQVNURVJJU0sgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswMzVBO0NPTUJJTklORyBET1VCTEUgUklORyBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzAzNUI7Q09NQklOSU5HIFpJR1pBRyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNUM7Q09NQklOSU5HIERPVUJMRSBCUkVWRSBCRUxPVztNbjsyMzM7TlNNOzs7OztOOzs7OzsKKzAzNUQ7Q09NQklOSU5HIERPVUJMRSBCUkVWRTtNbjsyMzQ7TlNNOzs7OztOOzs7OzsKKzAzNUU7Q09NQklOSU5HIERPVUJMRSBNQUNST047TW47MjM0O05TTTs7Ozs7Tjs7Ozs7CiswMzVGO0NPTUJJTklORyBET1VCTEUgTUFDUk9OIEJFTE9XO01uOzIzMztOU007Ozs7O047Ozs7OworMDM2MDtDT01CSU5JTkcgRE9VQkxFIFRJTERFO01uOzIzNDtOU007Ozs7O047Ozs7OworMDM2MTtDT01CSU5JTkcgRE9VQkxFIElOVkVSVEVEIEJSRVZFO01uOzIzNDtOU007Ozs7O047Ozs7OworMDM2MjtDT01CSU5JTkcgRE9VQkxFIFJJR0hUV0FSRFMgQVJST1cgQkVMT1c7TW47MjMzO05TTTs7Ozs7Tjs7Ozs7CiswMzYzO0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNjQ7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2NTtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIEk7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzY2O0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgTztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNjc7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBVO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2ODtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIEM7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzY5O0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgRDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNkE7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBIO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2QjtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIE07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzZDO0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgUjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNkQ7Q09NQklOSU5HIExBVElOIFNNQUxMIExFVFRFUiBUO01uOzIzMDtOU007Ozs7O047Ozs7OworMDM2RTtDT01CSU5JTkcgTEFUSU4gU01BTEwgTEVUVEVSIFY7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswMzZGO0NPTUJJTklORyBMQVRJTiBTTUFMTCBMRVRURVIgWDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzAzNzQ7R1JFRUsgTlVNRVJBTCBTSUdOO1NrOzA7T047MDJCOTs7OztOO0dSRUVLIFVQUEVSIE5VTUVSQUwgU0lHTjtEZXhpYSBrZXJhaWE7OzsKKzAzNzU7R1JFRUsgTE9XRVIgTlVNRVJBTCBTSUdOO1NrOzA7T047Ozs7O047O0FyaXN0ZXJpIGtlcmFpYTs7OworMDM3QTtHUkVFSyBZUE9HRUdSQU1NRU5JO0xtOzA7TDs8Y29tcGF0PiAwMDIwIDAzNDU7Ozs7TjtHUkVFSyBTUEFDSU5HIElPVEEgQkVMT1c7Ozs7CiswMzdFO0dSRUVLIFFVRVNUSU9OIE1BUks7UG87MDtPTjswMDNCOzs7O047O0Vyb3RpbWF0aWtvOzs7CiswMzg0O0dSRUVLIFRPTk9TO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzAxOzs7O047R1JFRUsgU1BBQ0lORyBUT05PUzs7OzsKKzAzODU7R1JFRUsgRElBTFlUSUtBIFRPTk9TO1NrOzA7T047MDBBOCAwMzAxOzs7O047R1JFRUsgU1BBQ0lORyBESUFFUkVTSVMgVE9OT1M7Ozs7CiswMzg2O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggVE9OT1M7THU7MDtMOzAzOTEgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFRPTk9TOzs7MDNBQzsKKzAzODc7R1JFRUsgQU5PIFRFTEVJQTtQbzswO09OOzAwQjc7Ozs7Tjs7Ozs7CiswMzg4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBUT05PUztMdTswO0w7MDM5NSAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBUT05PUzs7OzAzQUQ7CiswMzg5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFRPTk9TO0x1OzA7TDswMzk3IDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgVE9OT1M7OzswM0FFOworMDM4QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggVE9OT1M7THU7MDtMOzAzOTkgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgVE9OT1M7OzswM0FGOworMDM4QztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggVE9OT1M7THU7MDtMOzAzOUYgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gVE9OT1M7OzswM0NDOworMDM4RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggVE9OT1M7THU7MDtMOzAzQTUgMDMwMTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gVE9OT1M7OzswM0NEOworMDM4RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFRPTk9TO0x1OzA7TDswM0E5IDAzMDE7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBUT05PUzs7OzAzQ0U7CiswMzkwO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBIEFORCBUT05PUztMbDswO0w7MDNDQSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgRElBRVJFU0lTIFRPTk9TOzs7OworMDM5MTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQTtMdTswO0w7Ozs7O047Ozs7MDNCMTsKKzAzOTI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQkVUQTtMdTswO0w7Ozs7O047Ozs7MDNCMjsKKzAzOTM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgR0FNTUE7THU7MDtMOzs7OztOOzs7OzAzQjM7CiswMzk0O0dSRUVLIENBUElUQUwgTEVUVEVSIERFTFRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I0OworMDM5NTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OO0x1OzA7TDs7Ozs7Tjs7OzswM0I1OworMDM5NjtHUkVFSyBDQVBJVEFMIExFVFRFUiBaRVRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I2OworMDM5NztHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEE7THU7MDtMOzs7OztOOzs7OzAzQjc7CiswMzk4O0dSRUVLIENBUElUQUwgTEVUVEVSIFRIRVRBO0x1OzA7TDs7Ozs7Tjs7OzswM0I4OworMDM5OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBO0x1OzA7TDs7Ozs7Tjs7OzswM0I5OworMDM5QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBLQVBQQTtMdTswO0w7Ozs7O047Ozs7MDNCQTsKKzAzOUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgTEFNREE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIExBTUJEQTs7OzAzQkI7CiswMzlDO0dSRUVLIENBUElUQUwgTEVUVEVSIE1VO0x1OzA7TDs7Ozs7Tjs7OzswM0JDOworMDM5RDtHUkVFSyBDQVBJVEFMIExFVFRFUiBOVTtMdTswO0w7Ozs7O047Ozs7MDNCRDsKKzAzOUU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgWEk7THU7MDtMOzs7OztOOzs7OzAzQkU7CiswMzlGO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST047THU7MDtMOzs7OztOOzs7OzAzQkY7CiswM0EwO0dSRUVLIENBUElUQUwgTEVUVEVSIFBJO0x1OzA7TDs7Ozs7Tjs7OzswM0MwOworMDNBMTtHUkVFSyBDQVBJVEFMIExFVFRFUiBSSE87THU7MDtMOzs7OztOOzs7OzAzQzE7CiswM0EzO0dSRUVLIENBUElUQUwgTEVUVEVSIFNJR01BO0x1OzA7TDs7Ozs7Tjs7OzswM0MzOworMDNBNDtHUkVFSyBDQVBJVEFMIExFVFRFUiBUQVU7THU7MDtMOzs7OztOOzs7OzAzQzQ7CiswM0E1O0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT047THU7MDtMOzs7OztOOzs7OzAzQzU7CiswM0E2O0dSRUVLIENBUElUQUwgTEVUVEVSIFBISTtMdTswO0w7Ozs7O047Ozs7MDNDNjsKKzAzQTc7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQ0hJO0x1OzA7TDs7Ozs7Tjs7OzswM0M3OworMDNBODtHUkVFSyBDQVBJVEFMIExFVFRFUiBQU0k7THU7MDtMOzs7OztOOzs7OzAzQzg7CiswM0E5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBO0x1OzA7TDs7Ozs7Tjs7OzswM0M5OworMDNBQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggRElBTFlUSUtBO0x1OzA7TDswMzk5IDAzMDg7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIERJQUVSRVNJUzs7OzAzQ0E7CiswM0FCO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0E7THU7MDtMOzAzQTUgMDMwODs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gRElBRVJFU0lTOzs7MDNDQjsKKzAzQUM7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVE9OT1M7TGw7MDtMOzAzQjEgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBUT05PUzs7MDM4Njs7MDM4NgorMDNBRDtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIFRPTk9TO0xsOzA7TDswM0I1IDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBUT05PUzs7MDM4ODs7MDM4OAorMDNBRTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVE9OT1M7TGw7MDtMOzAzQjcgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgVE9OT1M7OzAzODk7OzAzODkKKzAzQUY7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBUT05PUztMbDswO0w7MDNCOSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgVE9OT1M7OzAzOEE7OzAzOEEKKzAzQjA7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIFRPTk9TO0xsOzA7TDswM0NCIDAzMDE7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBESUFFUkVTSVMgVE9OT1M7Ozs7CiswM0IxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQTtMbDswO0w7Ozs7O047OzswMzkxOzswMzkxCiswM0IyO0dSRUVLIFNNQUxMIExFVFRFUiBCRVRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTI7OzAzOTIKKzAzQjM7R1JFRUsgU01BTEwgTEVUVEVSIEdBTU1BO0xsOzA7TDs7Ozs7Tjs7OzAzOTM7OzAzOTMKKzAzQjQ7R1JFRUsgU01BTEwgTEVUVEVSIERFTFRBO0xsOzA7TDs7Ozs7Tjs7OzAzOTQ7OzAzOTQKKzAzQjU7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT047TGw7MDtMOzs7OztOOzs7MDM5NTs7MDM5NQorMDNCNjtHUkVFSyBTTUFMTCBMRVRURVIgWkVUQTtMbDswO0w7Ozs7O047OzswMzk2OzswMzk2CiswM0I3O0dSRUVLIFNNQUxMIExFVFRFUiBFVEE7TGw7MDtMOzs7OztOOzs7MDM5Nzs7MDM5NworMDNCODtHUkVFSyBTTUFMTCBMRVRURVIgVEhFVEE7TGw7MDtMOzs7OztOOzs7MDM5ODs7MDM5OAorMDNCOTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQTtMbDswO0w7Ozs7O047OzswMzk5OzswMzk5CiswM0JBO0dSRUVLIFNNQUxMIExFVFRFUiBLQVBQQTtMbDswO0w7Ozs7O047OzswMzlBOzswMzlBCiswM0JCO0dSRUVLIFNNQUxMIExFVFRFUiBMQU1EQTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIExBTUJEQTs7MDM5Qjs7MDM5QgorMDNCQztHUkVFSyBTTUFMTCBMRVRURVIgTVU7TGw7MDtMOzs7OztOOzs7MDM5Qzs7MDM5QworMDNCRDtHUkVFSyBTTUFMTCBMRVRURVIgTlU7TGw7MDtMOzs7OztOOzs7MDM5RDs7MDM5RAorMDNCRTtHUkVFSyBTTUFMTCBMRVRURVIgWEk7TGw7MDtMOzs7OztOOzs7MDM5RTs7MDM5RQorMDNCRjtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTjtMbDswO0w7Ozs7O047OzswMzlGOzswMzlGCiswM0MwO0dSRUVLIFNNQUxMIExFVFRFUiBQSTtMbDswO0w7Ozs7O047OzswM0EwOzswM0EwCiswM0MxO0dSRUVLIFNNQUxMIExFVFRFUiBSSE87TGw7MDtMOzs7OztOOzs7MDNBMTs7MDNBMQorMDNDMjtHUkVFSyBTTUFMTCBMRVRURVIgRklOQUwgU0lHTUE7TGw7MDtMOzs7OztOOzs7MDNBMzs7MDNBMworMDNDMztHUkVFSyBTTUFMTCBMRVRURVIgU0lHTUE7TGw7MDtMOzs7OztOOzs7MDNBMzs7MDNBMworMDNDNDtHUkVFSyBTTUFMTCBMRVRURVIgVEFVO0xsOzA7TDs7Ozs7Tjs7OzAzQTQ7OzAzQTQKKzAzQzU7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT047TGw7MDtMOzs7OztOOzs7MDNBNTs7MDNBNQorMDNDNjtHUkVFSyBTTUFMTCBMRVRURVIgUEhJO0xsOzA7TDs7Ozs7Tjs7OzAzQTY7OzAzQTYKKzAzQzc7R1JFRUsgU01BTEwgTEVUVEVSIENISTtMbDswO0w7Ozs7O047OzswM0E3OzswM0E3CiswM0M4O0dSRUVLIFNNQUxMIExFVFRFUiBQU0k7TGw7MDtMOzs7OztOOzs7MDNBODs7MDNBOAorMDNDOTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0E7TGw7MDtMOzs7OztOOzs7MDNBOTs7MDNBOQorMDNDQTtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQTtMbDswO0w7MDNCOSAwMzA4Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgRElBRVJFU0lTOzswM0FBOzswM0FBCiswM0NCO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBO0xsOzA7TDswM0M1IDAzMDg7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBESUFFUkVTSVM7OzAzQUI7OzAzQUIKKzAzQ0M7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBUT05PUztMbDswO0w7MDNCRiAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gVE9OT1M7OzAzOEM7OzAzOEMKKzAzQ0Q7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBUT05PUztMbDswO0w7MDNDNSAwMzAxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gVE9OT1M7OzAzOEU7OzAzOEUKKzAzQ0U7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVE9OT1M7TGw7MDtMOzAzQzkgMDMwMTs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBUT05PUzs7MDM4Rjs7MDM4RgorMDNEMDtHUkVFSyBCRVRBIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNCMjs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBDVVJMRUQgQkVUQTs7MDM5Mjs7MDM5MgorMDNEMTtHUkVFSyBUSEVUQSBTWU1CT0w7TGw7MDtMOzxjb21wYXQ+IDAzQjg7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0NSSVBUIFRIRVRBOzswMzk4OzswMzk4CiswM0QyO0dSRUVLIFVQU0lMT04gV0lUSCBIT09LIFNZTUJPTDtMdTswO0w7PGNvbXBhdD4gMDNBNTs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gSE9PSzs7OzsKKzAzRDM7R1JFRUsgVVBTSUxPTiBXSVRIIEFDVVRFIEFORCBIT09LIFNZTUJPTDtMdTswO0w7MDNEMiAwMzAxOzs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBIT09LIFRPTk9TOzs7OworMDNENDtHUkVFSyBVUFNJTE9OIFdJVEggRElBRVJFU0lTIEFORCBIT09LIFNZTUJPTDtMdTswO0w7MDNEMiAwMzA4Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBIT09LIERJQUVSRVNJUzs7OzsKKzAzRDU7R1JFRUsgUEhJIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNDNjs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBTQ1JJUFQgUEhJOzswM0E2OzswM0E2CiswM0Q2O0dSRUVLIFBJIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNDMDs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBQSTs7MDNBMDs7MDNBMAorMDNENztHUkVFSyBLQUkgU1lNQk9MO0xsOzA7TDs7Ozs7Tjs7Ozs7CiswM0Q4O0dSRUVLIExFVFRFUiBBUkNIQUlDIEtPUFBBO0x1OzA7TDs7Ozs7Tjs7Kjs7MDNEOTsKKzAzRDk7R1JFRUsgU01BTEwgTEVUVEVSIEFSQ0hBSUMgS09QUEE7TGw7MDtMOzs7OztOOzsqOzAzRDg7OzAzRDgKKzAzREE7R1JFRUsgTEVUVEVSIFNUSUdNQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU1RJR01BOzs7MDNEQjsKKzAzREI7R1JFRUsgU01BTEwgTEVUVEVSIFNUSUdNQTtMbDswO0w7Ozs7O047OzswM0RBOzswM0RBCiswM0RDO0dSRUVLIExFVFRFUiBESUdBTU1BO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBESUdBTU1BOzs7MDNERDsKKzAzREQ7R1JFRUsgU01BTEwgTEVUVEVSIERJR0FNTUE7TGw7MDtMOzs7OztOOzs7MDNEQzs7MDNEQworMDNERTtHUkVFSyBMRVRURVIgS09QUEE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEtPUFBBOzs7MDNERjsKKzAzREY7R1JFRUsgU01BTEwgTEVUVEVSIEtPUFBBO0xsOzA7TDs7Ozs7Tjs7OzAzREU7OzAzREUKKzAzRTA7R1JFRUsgTEVUVEVSIFNBTVBJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBTQU1QSTs7OzAzRTE7CiswM0UxO0dSRUVLIFNNQUxMIExFVFRFUiBTQU1QSTtMbDswO0w7Ozs7O047OzswM0UwOzswM0UwCiswM0UyO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBTSEVJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBTSEVJOzs7MDNFMzsKKzAzRTM7Q09QVElDIFNNQUxMIExFVFRFUiBTSEVJO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0hFSTs7MDNFMjs7MDNFMgorMDNFNDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgRkVJO0x1OzA7TDs7Ozs7TjtHUkVFSyBDQVBJVEFMIExFVFRFUiBGRUk7OzswM0U1OworMDNFNTtDT1BUSUMgU01BTEwgTEVUVEVSIEZFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEZFSTs7MDNFNDs7MDNFNAorMDNFNjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgS0hFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgS0hFSTs7OzAzRTc7CiswM0U3O0NPUFRJQyBTTUFMTCBMRVRURVIgS0hFSTtMbDswO0w7Ozs7O047R1JFRUsgU01BTEwgTEVUVEVSIEtIRUk7OzAzRTY7OzAzRTYKKzAzRTg7Q09QVElDIENBUElUQUwgTEVUVEVSIEhPUkk7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEhPUkk7OzswM0U5OworMDNFOTtDT1BUSUMgU01BTEwgTEVUVEVSIEhPUkk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBIT1JJOzswM0U4OzswM0U4CiswM0VBO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBHQU5HSUE7THU7MDtMOzs7OztOO0dSRUVLIENBUElUQUwgTEVUVEVSIEdBTkdJQTs7OzAzRUI7CiswM0VCO0NPUFRJQyBTTUFMTCBMRVRURVIgR0FOR0lBO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgR0FOR0lBOzswM0VBOzswM0VBCiswM0VDO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBTSElNQTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgU0hJTUE7OzswM0VEOworMDNFRDtDT1BUSUMgU01BTEwgTEVUVEVSIFNISU1BO0xsOzA7TDs7Ozs7TjtHUkVFSyBTTUFMTCBMRVRURVIgU0hJTUE7OzAzRUM7OzAzRUMKKzAzRUU7Q09QVElDIENBUElUQUwgTEVUVEVSIERFSTtMdTswO0w7Ozs7O047R1JFRUsgQ0FQSVRBTCBMRVRURVIgREVJOzs7MDNFRjsKKzAzRUY7Q09QVElDIFNNQUxMIExFVFRFUiBERUk7TGw7MDtMOzs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBERUk7OzAzRUU7OzAzRUUKKzAzRjA7R1JFRUsgS0FQUEEgU1lNQk9MO0xsOzA7TDs8Y29tcGF0PiAwM0JBOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIFNDUklQVCBLQVBQQTs7MDM5QTs7MDM5QQorMDNGMTtHUkVFSyBSSE8gU1lNQk9MO0xsOzA7TDs8Y29tcGF0PiAwM0MxOzs7O047R1JFRUsgU01BTEwgTEVUVEVSIFRBSUxFRCBSSE87OzAzQTE7OzAzQTEKKzAzRjI7R1JFRUsgTFVOQVRFIFNJR01BIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNDMjs7OztOO0dSRUVLIFNNQUxMIExFVFRFUiBMVU5BVEUgU0lHTUE7OzAzRjk7OzAzRjkKKzAzRjM7R1JFRUsgTEVUVEVSIFlPVDtMbDswO0w7Ozs7O047Ozs7OworMDNGNDtHUkVFSyBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGNvbXBhdD4gMDM5ODs7OztOOzs7OzAzQjg7CiswM0Y1O0dSRUVLIExVTkFURSBFUFNJTE9OIFNZTUJPTDtMbDswO0w7PGNvbXBhdD4gMDNCNTs7OztOOzs7MDM5NTs7MDM5NQorMDNGNjtHUkVFSyBSRVZFUlNFRCBMVU5BVEUgRVBTSUxPTiBTWU1CT0w7U207MDtPTjs7Ozs7Tjs7Ozs7CiswM0Y3O0dSRUVLIENBUElUQUwgTEVUVEVSIFNITztMdTswO0w7Ozs7O047Ozs7MDNGODsKKzAzRjg7R1JFRUsgU01BTEwgTEVUVEVSIFNITztMbDswO0w7Ozs7O047OzswM0Y3OzswM0Y3CiswM0Y5O0dSRUVLIENBUElUQUwgTFVOQVRFIFNJR01BIFNZTUJPTDtMdTswO0w7PGNvbXBhdD4gMDNBMzs7OztOOzs7OzAzRjI7CiswM0ZBO0dSRUVLIENBUElUQUwgTEVUVEVSIFNBTjtMdTswO0w7Ozs7O047Ozs7MDNGQjsKKzAzRkI7R1JFRUsgU01BTEwgTEVUVEVSIFNBTjtMbDswO0w7Ozs7O047OzswM0ZBOzswM0ZBCiswM0ZDO0dSRUVLIFJITyBXSVRIIFNUUk9LRSBTWU1CT0w7TGw7MDtMOzs7OztOOzs7OzsKKzAzRkQ7R1JFRUsgQ0FQSVRBTCBSRVZFUlNFRCBMVU5BVEUgU0lHTUEgU1lNQk9MO0x1OzA7TDs7Ozs7Tjs7Ozs7CiswM0ZFO0dSRUVLIENBUElUQUwgRE9UVEVEIExVTkFURSBTSUdNQSBTWU1CT0w7THU7MDtMOzs7OztOOzs7OzsKKzAzRkY7R1JFRUsgQ0FQSVRBTCBSRVZFUlNFRCBET1RURUQgTFVOQVRFIFNJR01BIFNZTUJPTDtMdTswO0w7Ozs7O047Ozs7OworMDQwMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSBXSVRIIEdSQVZFO0x1OzA7TDswNDE1IDAzMDA7Ozs7Tjs7OzswNDUwOworMDQwMTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJTztMdTswO0w7MDQxNSAwMzA4Ozs7O047Ozs7MDQ1MTsKKzA0MDI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgREpFO0x1OzA7TDs7Ozs7Tjs7U2VyYm9jcm9hdGlhbjs7MDQ1MjsKKzA0MDM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0pFO0x1OzA7TDswNDEzIDAzMDE7Ozs7Tjs7OzswNDUzOworMDQwNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVS1JBSU5JQU4gSUU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEU7OzswNDU0OworMDQwNTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBEWkU7THU7MDtMOzs7OztOOzs7OzA0NTU7CiswNDA2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJZRUxPUlVTU0lBTi1VS1JBSU5JQU4gSTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSTs7OzA0NTY7CiswNDA3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlJO0x1OzA7TDswNDA2IDAzMDg7Ozs7Tjs7VWtyYWluaWFuOzswNDU3OworMDQwODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBKRTtMdTswO0w7Ozs7O047Ozs7MDQ1ODsKKzA0MDk7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTEpFO0x1OzA7TDs7Ozs7Tjs7OzswNDU5OworMDQwQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBOSkU7THU7MDtMOzs7OztOOzs7OzA0NUE7CiswNDBCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRTSEU7THU7MDtMOzs7OztOOztTZXJib2Nyb2F0aWFuOzswNDVCOworMDQwQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLSkU7THU7MDtMOzA0MUEgMDMwMTs7OztOOzs7OzA0NUM7CiswNDBEO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRTtMdTswO0w7MDQxOCAwMzAwOzs7O047Ozs7MDQ1RDsKKzA0MEU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hPUlQgVTtMdTswO0w7MDQyMyAwMzA2Ozs7O047O0J5ZWxvcnVzc2lhbjs7MDQ1RTsKKzA0MEY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRFpIRTtMdTswO0w7Ozs7O047Ozs7MDQ1RjsKKzA0MTA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQTtMdTswO0w7Ozs7O047Ozs7MDQzMDsKKzA0MTE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkU7THU7MDtMOzs7OztOOzs7OzA0MzE7CiswNDEyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFZFO0x1OzA7TDs7Ozs7Tjs7OzswNDMyOworMDQxMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdFOzs7MDQzMzsKKzA0MTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgREU7THU7MDtMOzs7OztOOzs7OzA0MzQ7CiswNDE1O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFO0x1OzA7TDs7Ozs7Tjs7OzswNDM1OworMDQxNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEU7THU7MDtMOzs7OztOOzs7OzA0MzY7CiswNDE3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpFO0x1OzA7TDs7Ozs7Tjs7OzswNDM3OworMDQxODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJSTs7OzA0Mzg7CiswNDE5O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIEk7THU7MDtMOzA0MTggMDMwNjs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIElJOzs7MDQzOTsKKzA0MUE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0E7THU7MDtMOzs7OztOOzs7OzA0M0E7CiswNDFCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVMO0x1OzA7TDs7Ozs7Tjs7OzswNDNCOworMDQxQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTTtMdTswO0w7Ozs7O047Ozs7MDQzQzsKKzA0MUQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU47THU7MDtMOzs7OztOOzs7OzA0M0Q7CiswNDFFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE87THU7MDtMOzs7OztOOzs7OzA0M0U7CiswNDFGO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFBFO0x1OzA7TDs7Ozs7Tjs7OzswNDNGOworMDQyMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUjtMdTswO0w7Ozs7O047Ozs7MDQ0MDsKKzA0MjE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVM7THU7MDtMOzs7OztOOzs7OzA0NDE7CiswNDIyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFO0x1OzA7TDs7Ozs7Tjs7OzswNDQyOworMDQyMztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVO0x1OzA7TDs7Ozs7Tjs7OzswNDQzOworMDQyNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFRjtMdTswO0w7Ozs7O047Ozs7MDQ0NDsKKzA0MjU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEE7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtIQTs7OzA0NDU7CiswNDI2O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRTRTtMdTswO0w7Ozs7O047Ozs7MDQ0NjsKKzA0Mjc7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFO0x1OzA7TDs7Ozs7Tjs7OzswNDQ3OworMDQyODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSEE7THU7MDtMOzs7OztOOzs7OzA0NDg7CiswNDI5O0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIQ0hBO0x1OzA7TDs7Ozs7Tjs7OzswNDQ5OworMDQyQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIQVJEIFNJR047THU7MDtMOzs7OztOOzs7OzA0NEE7CiswNDJCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUlU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUkk7OzswNDRCOworMDQyQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTT0ZUIFNJR047THU7MDtMOzs7OztOOzs7OzA0NEM7CiswNDJEO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFJFVkVSU0VEIEU7OzswNDREOworMDQyRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZVTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSVU7OzswNDRFOworMDQyRjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUE7OzswNDRGOworMDQzMDtDWVJJTExJQyBTTUFMTCBMRVRURVIgQTtMbDswO0w7Ozs7O047OzswNDEwOzswNDEwCiswNDMxO0NZUklMTElDIFNNQUxMIExFVFRFUiBCRTtMbDswO0w7Ozs7O047OzswNDExOzswNDExCiswNDMyO0NZUklMTElDIFNNQUxMIExFVFRFUiBWRTtMbDswO0w7Ozs7O047OzswNDEyOzswNDEyCiswNDMzO0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBHRTs7MDQxMzs7MDQxMworMDQzNDtDWVJJTExJQyBTTUFMTCBMRVRURVIgREU7TGw7MDtMOzs7OztOOzs7MDQxNDs7MDQxNAorMDQzNTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSUU7TGw7MDtMOzs7OztOOzs7MDQxNTs7MDQxNQorMDQzNjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFO0xsOzA7TDs7Ozs7Tjs7OzA0MTY7OzA0MTYKKzA0Mzc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFO0xsOzA7TDs7Ozs7Tjs7OzA0MTc7OzA0MTcKKzA0Mzg7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEk7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJSTs7MDQxODs7MDQxOAorMDQzOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgSTtMbDswO0w7MDQzOCAwMzA2Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIElJOzswNDE5OzswNDE5CiswNDNBO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQTtMbDswO0w7Ozs7O047OzswNDFBOzswNDFBCiswNDNCO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTDtMbDswO0w7Ozs7O047OzswNDFCOzswNDFCCiswNDNDO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTTtMbDswO0w7Ozs7O047OzswNDFDOzswNDFDCiswNDNEO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTjtMbDswO0w7Ozs7O047OzswNDFEOzswNDFECiswNDNFO0NZUklMTElDIFNNQUxMIExFVFRFUiBPO0xsOzA7TDs7Ozs7Tjs7OzA0MUU7OzA0MUUKKzA0M0Y7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFBFO0xsOzA7TDs7Ozs7Tjs7OzA0MUY7OzA0MUYKKzA0NDA7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVSO0xsOzA7TDs7Ozs7Tjs7OzA0MjA7OzA0MjAKKzA0NDE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVTO0xsOzA7TDs7Ozs7Tjs7OzA0MjE7OzA0MjEKKzA0NDI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFO0xsOzA7TDs7Ozs7Tjs7OzA0MjI7OzA0MjIKKzA0NDM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFU7TGw7MDtMOzs7OztOOzs7MDQyMzs7MDQyMworMDQ0NDtDWVJJTExJQyBTTUFMTCBMRVRURVIgRUY7TGw7MDtMOzs7OztOOzs7MDQyNDs7MDQyNAorMDQ0NTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSEE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSEE7OzA0MjU7OzA0MjUKKzA0NDY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRTRTtMbDswO0w7Ozs7O047OzswNDI2OzswNDI2CiswNDQ3O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEU7TGw7MDtMOzs7OztOOzs7MDQyNzs7MDQyNworMDQ0ODtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hBO0xsOzA7TDs7Ozs7Tjs7OzA0Mjg7OzA0MjgKKzA0NDk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIQ0hBO0xsOzA7TDs7Ozs7Tjs7OzA0Mjk7OzA0MjkKKzA0NEE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBUkQgU0lHTjtMbDswO0w7Ozs7O047OzswNDJBOzswNDJBCiswNDRCO0NZUklMTElDIFNNQUxMIExFVFRFUiBZRVJVO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUVSSTs7MDQyQjs7MDQyQgorMDQ0QztDWVJJTExJQyBTTUFMTCBMRVRURVIgU09GVCBTSUdOO0xsOzA7TDs7Ozs7Tjs7OzA0MkM7OzA0MkMKKzA0NEQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBFOzswNDJEOzswNDJECiswNDRFO0NZUklMTElDIFNNQUxMIExFVFRFUiBZVTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElVOzswNDJFOzswNDJFCiswNDRGO0NZUklMTElDIFNNQUxMIExFVFRFUiBZQTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElBOzswNDJGOzswNDJGCiswNDUwO0NZUklMTElDIFNNQUxMIExFVFRFUiBJRSBXSVRIIEdSQVZFO0xsOzA7TDswNDM1IDAzMDA7Ozs7Tjs7OzA0MDA7OzA0MDAKKzA0NTE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElPO0xsOzA7TDswNDM1IDAzMDg7Ozs7Tjs7OzA0MDE7OzA0MDEKKzA0NTI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIERKRTtMbDswO0w7Ozs7O047O1NlcmJvY3JvYXRpYW47MDQwMjs7MDQwMgorMDQ1MztDWVJJTExJQyBTTUFMTCBMRVRURVIgR0pFO0xsOzA7TDswNDMzIDAzMDE7Ozs7Tjs7OzA0MDM7OzA0MDMKKzA0NTQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFVLUkFJTklBTiBJRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEU7OzA0MDQ7OzA0MDQKKzA0NTU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIERaRTtMbDswO0w7Ozs7O047OzswNDA1OzswNDA1CiswNDU2O0NZUklMTElDIFNNQUxMIExFVFRFUiBCWUVMT1JVU1NJQU4tVUtSQUlOSUFOIEk7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJOzswNDA2OzswNDA2CiswNDU3O0NZUklMTElDIFNNQUxMIExFVFRFUiBZSTtMbDswO0w7MDQ1NiAwMzA4Ozs7O047O1VrcmFpbmlhbjswNDA3OzswNDA3CiswNDU4O0NZUklMTElDIFNNQUxMIExFVFRFUiBKRTtMbDswO0w7Ozs7O047OzswNDA4OzswNDA4CiswNDU5O0NZUklMTElDIFNNQUxMIExFVFRFUiBMSkU7TGw7MDtMOzs7OztOOzs7MDQwOTs7MDQwOQorMDQ1QTtDWVJJTExJQyBTTUFMTCBMRVRURVIgTkpFO0xsOzA7TDs7Ozs7Tjs7OzA0MEE7OzA0MEEKKzA0NUI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRTSEU7TGw7MDtMOzs7OztOOztTZXJib2Nyb2F0aWFuOzA0MEI7OzA0MEIKKzA0NUM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtKRTtMbDswO0w7MDQzQSAwMzAxOzs7O047OzswNDBDOzswNDBDCiswNDVEO0NZUklMTElDIFNNQUxMIExFVFRFUiBJIFdJVEggR1JBVkU7TGw7MDtMOzA0MzggMDMwMDs7OztOOzs7MDQwRDs7MDQwRAorMDQ1RTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgVTtMbDswO0w7MDQ0MyAwMzA2Ozs7O047O0J5ZWxvcnVzc2lhbjswNDBFOzswNDBFCiswNDVGO0NZUklMTElDIFNNQUxMIExFVFRFUiBEWkhFO0xsOzA7TDs7Ozs7Tjs7OzA0MEY7OzA0MEYKKzA0NjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT01FR0E7THU7MDtMOzs7OztOOzs7OzA0NjE7CiswNDYxO0NZUklMTElDIFNNQUxMIExFVFRFUiBPTUVHQTtMbDswO0w7Ozs7O047OzswNDYwOzswNDYwCiswNDYyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFlBVDtMdTswO0w7Ozs7O047Ozs7MDQ2MzsKKzA0NjM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFlBVDtMbDswO0w7Ozs7O047OzswNDYyOzswNDYyCiswNDY0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElPVElGSUVEIEU7THU7MDtMOzs7OztOOzs7OzA0NjU7CiswNDY1O0NZUklMTElDIFNNQUxMIExFVFRFUiBJT1RJRklFRCBFO0xsOzA7TDs7Ozs7Tjs7OzA0NjQ7OzA0NjQKKzA0NjY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgTElUVExFIFlVUztMdTswO0w7Ozs7O047Ozs7MDQ2NzsKKzA0Njc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIExJVFRMRSBZVVM7TGw7MDtMOzs7OztOOzs7MDQ2Njs7MDQ2NgorMDQ2ODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJT1RJRklFRCBMSVRUTEUgWVVTO0x1OzA7TDs7Ozs7Tjs7OzswNDY5OworMDQ2OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgSU9USUZJRUQgTElUVExFIFlVUztMbDswO0w7Ozs7O047OzswNDY4OzswNDY4CiswNDZBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJJRyBZVVM7THU7MDtMOzs7OztOOzs7OzA0NkI7CiswNDZCO0NZUklMTElDIFNNQUxMIExFVFRFUiBCSUcgWVVTO0xsOzA7TDs7Ozs7Tjs7OzA0NkE7OzA0NkEKKzA0NkM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSU9USUZJRUQgQklHIFlVUztMdTswO0w7Ozs7O047Ozs7MDQ2RDsKKzA0NkQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElPVElGSUVEIEJJRyBZVVM7TGw7MDtMOzs7OztOOzs7MDQ2Qzs7MDQ2QworMDQ2RTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLU0k7THU7MDtMOzs7OztOOzs7OzA0NkY7CiswNDZGO0NZUklMTElDIFNNQUxMIExFVFRFUiBLU0k7TGw7MDtMOzs7OztOOzs7MDQ2RTs7MDQ2RQorMDQ3MDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQU0k7THU7MDtMOzs7OztOOzs7OzA0NzE7CiswNDcxO0NZUklMTElDIFNNQUxMIExFVFRFUiBQU0k7TGw7MDtMOzs7OztOOzs7MDQ3MDs7MDQ3MAorMDQ3MjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBGSVRBO0x1OzA7TDs7Ozs7Tjs7OzswNDczOworMDQ3MztDWVJJTExJQyBTTUFMTCBMRVRURVIgRklUQTtMbDswO0w7Ozs7O047OzswNDcyOzswNDcyCiswNDc0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0E7THU7MDtMOzs7OztOOzs7OzA0NzU7CiswNDc1O0NZUklMTElDIFNNQUxMIExFVFRFUiBJWkhJVFNBO0xsOzA7TDs7Ozs7Tjs7OzA0NzQ7OzA0NzQKKzA0NzY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSVpISVRTQSBXSVRIIERPVUJMRSBHUkFWRSBBQ0NFTlQ7THU7MDtMOzA0NzQgMDMwRjs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0EgRE9VQkxFIEdSQVZFOzs7MDQ3NzsKKzA0Nzc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElaSElUU0EgV0lUSCBET1VCTEUgR1JBVkUgQUNDRU5UO0xsOzA7TDswNDc1IDAzMEY7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSVpISVRTQSBET1VCTEUgR1JBVkU7OzA0NzY7OzA0NzYKKzA0Nzg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVUs7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFVLIERJR1JBUEg7OzswNDc5OworMDQ3OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgVUs7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBVSyBESUdSQVBIOzswNDc4OzswNDc4CiswNDdBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFJPVU5EIE9NRUdBO0x1OzA7TDs7Ozs7Tjs7OzswNDdCOworMDQ3QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUk9VTkQgT01FR0E7TGw7MDtMOzs7OztOOzs7MDQ3QTs7MDQ3QQorMDQ3QztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFRJVExPO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPTUVHQSBUSVRMTzs7OzA0N0Q7CiswNDdEO0NZUklMTElDIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFRJVExPO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgT01FR0EgVElUTE87OzA0N0M7OzA0N0MKKzA0N0U7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgT1Q7THU7MDtMOzs7OztOOzs7OzA0N0Y7CiswNDdGO0NZUklMTElDIFNNQUxMIExFVFRFUiBPVDtMbDswO0w7Ozs7O047OzswNDdFOzswNDdFCiswNDgwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPUFBBO0x1OzA7TDs7Ozs7Tjs7OzswNDgxOworMDQ4MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgS09QUEE7TGw7MDtMOzs7OztOOzs7MDQ4MDs7MDQ4MAorMDQ4MjtDWVJJTExJQyBUSE9VU0FORFMgU0lHTjtTbzswO0w7Ozs7O047Ozs7OworMDQ4MztDT01CSU5JTkcgQ1lSSUxMSUMgVElUTE87TW47MjMwO05TTTs7Ozs7TjtDWVJJTExJQyBOT04tU1BBQ0lORyBUSVRMTzs7OzsKKzA0ODQ7Q09NQklOSU5HIENZUklMTElDIFBBTEFUQUxJWkFUSU9OO01uOzIzMDtOU007Ozs7O047Q1lSSUxMSUMgTk9OLVNQQUNJTkcgUEFMQVRBTElaQVRJT047Ozs7CiswNDg1O0NPTUJJTklORyBDWVJJTExJQyBEQVNJQSBQTkVVTUFUQTtNbjsyMzA7TlNNOzs7OztOO0NZUklMTElDIE5PTi1TUEFDSU5HIERBU0lBIFBORVVNQVRBOzs7OworMDQ4NjtDT01CSU5JTkcgQ1lSSUxMSUMgUFNJTEkgUE5FVU1BVEE7TW47MjMwO05TTTs7Ozs7TjtDWVJJTExJQyBOT04tU1BBQ0lORyBQU0lMSSBQTkVVTUFUQTs7OzsKKzA0ODg7Q09NQklOSU5HIENZUklMTElDIEhVTkRSRUQgVEhPVVNBTkRTIFNJR047TWU7MDtOU007Ozs7O047Ozs7OworMDQ4OTtDT01CSU5JTkcgQ1lSSUxMSUMgTUlMTElPTlMgU0lHTjtNZTswO05TTTs7Ozs7Tjs7Ozs7CiswNDhBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIEkgV0lUSCBUQUlMO0x1OzA7TDs7Ozs7Tjs7OzswNDhCOworMDQ4QjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgSSBXSVRIIFRBSUw7TGw7MDtMOzs7OztOOzs7MDQ4QTs7MDQ4QQorMDQ4QztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTRU1JU09GVCBTSUdOO0x1OzA7TDs7Ozs7Tjs7OzswNDhEOworMDQ4RDtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0VNSVNPRlQgU0lHTjtMbDswO0w7Ozs7O047OzswNDhDOzswNDhDCiswNDhFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVSIFdJVEggVElDSztMdTswO0w7Ozs7O047Ozs7MDQ4RjsKKzA0OEY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVSIFdJVEggVElDSztMbDswO0w7Ozs7O047OzswNDhFOzswNDhFCiswNDkwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdIRSBXSVRIIFVQVFVSTjtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0UgV0lUSCBVUFRVUk47OzswNDkxOworMDQ5MTtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFIFdJVEggVVBUVVJOO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0UgV0lUSCBVUFRVUk47OzA0OTA7OzA0OTAKKzA0OTI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHRSBCQVI7OzswNDkzOworMDQ5MztDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFIFdJVEggU1RST0tFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0UgQkFSOzswNDkyOzswNDkyCiswNDk0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEdIRSBXSVRIIE1JRERMRSBIT09LO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHRSBIT09LOzs7MDQ5NTsKKzA0OTU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEdIRSBXSVRIIE1JRERMRSBIT09LO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgR0UgSE9PSzs7MDQ5NDs7MDQ5NAorMDQ5NjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0OTc7CiswNDk3O0NZUklMTElDIFNNQUxMIExFVFRFUiBaSEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBaSEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0OTY7OzA0OTYKKzA0OTg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpFIENFRElMTEE7OzswNDk5OworMDQ5OTtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBaRSBDRURJTExBOzswNDk4OzswNDk4CiswNDlBO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0OUI7CiswNDlCO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIFdJVEggUklHSFQgREVTQ0VOREVSOzswNDlBOzswNDlBCiswNDlDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggVkVSVElDQUwgU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBWRVJUSUNBTCBCQVI7OzswNDlEOworMDQ5RDtDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBWRVJUSUNBTCBTVFJPS0U7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBWRVJUSUNBTCBCQVI7OzA0OUM7OzA0OUMKKzA0OUU7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBTVFJPS0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIEJBUjs7OzA0OUY7CiswNDlGO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBIEJBUjs7MDQ5RTs7MDQ5RQorMDRBMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCQVNIS0lSIEtBO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBSRVZFUlNFRCBHRSBLQTs7OzA0QTE7CiswNEExO0NZUklMTElDIFNNQUxMIExFVFRFUiBCQVNIS0lSIEtBO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUkVWRVJTRUQgR0UgS0E7OzA0QTA7OzA0QTAKKzA0QTI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIFdJVEggUklHSFQgREVTQ0VOREVSOzs7MDRBMzsKKzA0QTM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIFdJVEggREVTQ0VOREVSO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QTI7OzA0QTIKKzA0QTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMSUdBVFVSRSBFTiBHSEU7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIEdFOzs7MDRBNTsKKzA0QTU7Q1lSSUxMSUMgU01BTEwgTElHQVRVUkUgRU4gR0hFO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gR0U7OzA0QTQ7OzA0QTQKKzA0QTY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUEUgV0lUSCBNSURETEUgSE9PSztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgUEUgSE9PSztBYmtoYXNpYW47OzA0QTc7CiswNEE3O0NZUklMTElDIFNNQUxMIExFVFRFUiBQRSBXSVRIIE1JRERMRSBIT09LO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgUEUgSE9PSztBYmtoYXNpYW47MDRBNjs7MDRBNgorMDRBODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gSEE7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIE8gSE9PSzs7OzA0QTk7CiswNEE5O0NZUklMTElDIFNNQUxMIExFVFRFUiBBQktIQVNJQU4gSEE7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBPIEhPT0s7OzA0QTg7OzA0QTgKKzA0QUE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVMgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVTIENFRElMTEE7OzswNEFCOworMDRBQjtDWVJJTExJQyBTTUFMTCBMRVRURVIgRVMgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFUyBDRURJTExBOzswNEFBOzswNEFBCiswNEFDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBURSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0QUQ7CiswNEFEO0NZUklMTElDIFNNQUxMIExFVFRFUiBURSBXSVRIIERFU0NFTkRFUjtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFIFdJVEggUklHSFQgREVTQ0VOREVSOzswNEFDOzswNEFDCiswNEFFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFNUUkFJR0hUIFU7THU7MDtMOzs7OztOOzs7OzA0QUY7CiswNEFGO0NZUklMTElDIFNNQUxMIExFVFRFUiBTVFJBSUdIVCBVO0xsOzA7TDs7Ozs7Tjs7OzA0QUU7OzA0QUUKKzA0QjA7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVSBXSVRIIFNUUk9LRTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVSBCQVI7OzswNEIxOworMDRCMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgU1RSQUlHSFQgVSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNUUkFJR0hUIFUgQkFSOzswNEIwOzswNEIwCiswNEIyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEhBIFdJVEggREVTQ0VOREVSO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLSEEgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzswNEIzOworMDRCMztDWVJJTExJQyBTTUFMTCBMRVRURVIgSEEgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSEEgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QjI7OzA0QjIKKzA0QjQ7Q1lSSUxMSUMgQ0FQSVRBTCBMSUdBVFVSRSBURSBUU0U7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFRFIFRTRTtBYmtoYXNpYW47OzA0QjU7CiswNEI1O0NZUklMTElDIFNNQUxMIExJR0FUVVJFIFRFIFRTRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFRFIFRTRTtBYmtoYXNpYW47MDRCNDs7MDRCNAorMDRCNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIENIRSBXSVRIIFJJR0hUIERFU0NFTkRFUjs7OzA0Qjc7CiswNEI3O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBSSUdIVCBERVNDRU5ERVI7OzA0QjY7OzA0QjYKKzA0Qjg7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFdJVEggVkVSVElDQUwgU1RST0tFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgVkVSVElDQUwgQkFSOzs7MDRCOTsKKzA0Qjk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBWRVJUSUNBTCBCQVI7OzA0Qjg7OzA0QjgKKzA0QkE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hIQTtMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSDs7OzA0QkI7CiswNEJCO0NZUklMTElDIFNNQUxMIExFVFRFUiBTSEhBO0xsOzA7TDs7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgSDs7MDRCQTs7MDRCQQorMDRCQztDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gQ0hFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJRSBIT09LOzs7MDRCRDsKKzA0QkQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBDSEU7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJRSBIT09LOzswNEJDOzswNEJDCiswNEJFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEFCS0hBU0lBTiBDSEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOO0NZUklMTElDIENBUElUQUwgTEVUVEVSIElFIEhPT0sgT0dPTkVLOzs7MDRCRjsKKzA0QkY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEFCS0hBU0lBTiBDSEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBJRSBIT09LIE9HT05FSzs7MDRCRTs7MDRCRQorMDRDMDtDWVJJTExJQyBMRVRURVIgUEFMT0NIS0E7THU7MDtMOzs7OztOO0NZUklMTElDIExFVFRFUiBJOzs7OworMDRDMTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUgV0lUSCBCUkVWRTtMdTswO0w7MDQxNiAwMzA2Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hPUlQgWkhFOzs7MDRDMjsKKzA0QzI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRSBXSVRIIEJSRVZFO0xsOzA7TDswNDM2IDAzMDY7Ozs7TjtDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hPUlQgWkhFOzswNEMxOzswNEMxCiswNEMzO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggSE9PSztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgSE9PSzs7OzA0QzQ7CiswNEM0O0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBLQSBIT09LOzswNEMzOzswNEMzCiswNEM1O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVMIFdJVEggVEFJTDtMdTswO0w7Ozs7O047Ozs7MDRDNjsKKzA0QzY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVMIFdJVEggVEFJTDtMbDswO0w7Ozs7O047OzswNEM1OzswNEM1CiswNEM3O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIFdJVEggSE9PSztMdTswO0w7Ozs7O047Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gSE9PSzs7OzA0Qzg7CiswNEM4O0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBXSVRIIEhPT0s7TGw7MDtMOzs7OztOO0NZUklMTElDIFNNQUxMIExFVFRFUiBFTiBIT09LOzswNEM3OzswNEM3CiswNEM5O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIFdJVEggVEFJTDtMdTswO0w7Ozs7O047Ozs7MDRDQTsKKzA0Q0E7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIFdJVEggVEFJTDtMbDswO0w7Ozs7O047OzswNEM5OzswNEM5CiswNENCO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtIQUtBU1NJQU4gQ0hFO0x1OzA7TDs7Ozs7TjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBMRUZUIERFU0NFTkRFUjs7OzA0Q0M7CiswNENDO0NZUklMTElDIFNNQUxMIExFVFRFUiBLSEFLQVNTSUFOIENIRTtMbDswO0w7Ozs7O047Q1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIExFRlQgREVTQ0VOREVSOzswNENCOzswNENCCiswNENEO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEVNIFdJVEggVEFJTDtMdTswO0w7Ozs7O047Ozs7MDRDRTsKKzA0Q0U7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEVNIFdJVEggVEFJTDtMbDswO0w7Ozs7O047OzswNENEOzswNENECiswNEQwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRTtMdTswO0w7MDQxMCAwMzA2Ozs7O047Ozs7MDREMTsKKzA0RDE7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRTtMbDswO0w7MDQzMCAwMzA2Ozs7O047OzswNEQwOzswNEQwCiswNEQyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MTAgMDMwODs7OztOOzs7OzA0RDM7CiswNEQzO0NZUklMTElDIFNNQUxMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDMwIDAzMDg7Ozs7Tjs7OzA0RDI7OzA0RDIKKzA0RDQ7Q1lSSUxMSUMgQ0FQSVRBTCBMSUdBVFVSRSBBIElFO0x1OzA7TDs7Ozs7Tjs7OzswNEQ1OworMDRENTtDWVJJTExJQyBTTUFMTCBMSUdBVFVSRSBBIElFO0xsOzA7TDs7Ozs7Tjs7OzA0RDQ7OzA0RDQKKzA0RDY7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUUgV0lUSCBCUkVWRTtMdTswO0w7MDQxNSAwMzA2Ozs7O047Ozs7MDRENzsKKzA0RDc7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIElFIFdJVEggQlJFVkU7TGw7MDtMOzA0MzUgMDMwNjs7OztOOzs7MDRENjs7MDRENgorMDREODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTQ0hXQTtMdTswO0w7Ozs7O047Ozs7MDREOTsKKzA0RDk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFNDSFdBO0xsOzA7TDs7Ozs7Tjs7OzA0RDg7OzA0RDgKKzA0REE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0NIV0EgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0RDggMDMwODs7OztOOzs7OzA0REI7CiswNERCO0NZUklMTElDIFNNQUxMIExFVFRFUiBTQ0hXQSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDREOSAwMzA4Ozs7O047OzswNERBOzswNERBCiswNERDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQxNiAwMzA4Ozs7O047Ozs7MDRERDsKKzA0REQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzNiAwMzA4Ozs7O047OzswNERDOzswNERDCiswNERFO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFpFIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDE3IDAzMDg7Ozs7Tjs7OzswNERGOworMDRERjtDWVJJTExJQyBTTUFMTCBMRVRURVIgWkUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0MzcgMDMwODs7OztOOzs7MDRERTs7MDRERQorMDRFMDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBBQktIQVNJQU4gRFpFO0x1OzA7TDs7Ozs7Tjs7OzswNEUxOworMDRFMTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQUJLSEFTSUFOIERaRTtMbDswO0w7Ozs7O047OzswNEUwOzswNEUwCiswNEUyO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEkgV0lUSCBNQUNST047THU7MDtMOzA0MTggMDMwNDs7OztOOzs7OzA0RTM7CiswNEUzO0NZUklMTElDIFNNQUxMIExFVFRFUiBJIFdJVEggTUFDUk9OO0xsOzA7TDswNDM4IDAzMDQ7Ozs7Tjs7OzA0RTI7OzA0RTIKKzA0RTQ7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQxOCAwMzA4Ozs7O047Ozs7MDRFNTsKKzA0RTU7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0MzggMDMwODs7OztOOzs7MDRFNDs7MDRFNAorMDRFNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDFFIDAzMDg7Ozs7Tjs7OzswNEU3OworMDRFNztDWVJJTExJQyBTTUFMTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQzRSAwMzA4Ozs7O047OzswNEU2OzswNEU2CiswNEU4O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEJBUlJFRCBPO0x1OzA7TDs7Ozs7Tjs7OzswNEU5OworMDRFOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgQkFSUkVEIE87TGw7MDtMOzs7OztOOzs7MDRFODs7MDRFOAorMDRFQTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCQVJSRUQgTyBXSVRIIERJQUVSRVNJUztMdTswO0w7MDRFOCAwMzA4Ozs7O047Ozs7MDRFQjsKKzA0RUI7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEJBUlJFRCBPIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNEU5IDAzMDg7Ozs7Tjs7OzA0RUE7OzA0RUEKKzA0RUM7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUztMdTswO0w7MDQyRCAwMzA4Ozs7O047Ozs7MDRFRDsKKzA0RUQ7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0NEQgMDMwODs7OztOOzs7MDRFQzs7MDRFQworMDRFRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBVIFdJVEggTUFDUk9OO0x1OzA7TDswNDIzIDAzMDQ7Ozs7Tjs7OzswNEVGOworMDRFRjtDWVJJTExJQyBTTUFMTCBMRVRURVIgVSBXSVRIIE1BQ1JPTjtMbDswO0w7MDQ0MyAwMzA0Ozs7O047OzswNEVFOzswNEVFCiswNEYwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MjMgMDMwODs7OztOOzs7OzA0RjE7CiswNEYxO0NZUklMTElDIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTO0xsOzA7TDswNDQzIDAzMDg7Ozs7Tjs7OzA0RjA7OzA0RjAKKzA0RjI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERPVUJMRSBBQ1VURTtMdTswO0w7MDQyMyAwMzBCOzs7O047Ozs7MDRGMzsKKzA0RjM7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIFUgV0lUSCBET1VCTEUgQUNVVEU7TGw7MDtMOzA0NDMgMDMwQjs7OztOOzs7MDRGMjs7MDRGMgorMDRGNDtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBESUFFUkVTSVM7THU7MDtMOzA0MjcgMDMwODs7OztOOzs7OzA0RjU7CiswNEY1O0NZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzA0NDcgMDMwODs7OztOOzs7MDRGNDs7MDRGNAorMDRGNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEUgV0lUSCBERVNDRU5ERVI7THU7MDtMOzs7OztOOzs7OzA0Rjc7CiswNEY3O0NZUklMTElDIFNNQUxMIExFVFRFUiBHSEUgV0lUSCBERVNDRU5ERVI7TGw7MDtMOzs7OztOOzs7MDRGNjs7MDRGNgorMDRGODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZRVJVIFdJVEggRElBRVJFU0lTO0x1OzA7TDswNDJCIDAzMDg7Ozs7Tjs7OzswNEY5OworMDRGOTtDWVJJTExJQyBTTUFMTCBMRVRURVIgWUVSVSBXSVRIIERJQUVSRVNJUztMbDswO0w7MDQ0QiAwMzA4Ozs7O047OzswNEY4OzswNEY4CiswNTAwO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPTUkgREU7THU7MDtMOzs7OztOOzs7OzA1MDE7CiswNTAxO0NZUklMTElDIFNNQUxMIExFVFRFUiBLT01JIERFO0xsOzA7TDs7Ozs7Tjs7OzA1MDA7OzA1MDAKKzA1MDI7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS09NSSBESkU7THU7MDtMOzs7OztOOzs7OzA1MDM7CiswNTAzO0NZUklMTElDIFNNQUxMIExFVFRFUiBLT01JIERKRTtMbDswO0w7Ozs7O047OzswNTAyOzswNTAyCiswNTA0O0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPTUkgWkpFO0x1OzA7TDs7Ozs7Tjs7OzswNTA1OworMDUwNTtDWVJJTExJQyBTTUFMTCBMRVRURVIgS09NSSBaSkU7TGw7MDtMOzs7OztOOzs7MDUwNDs7MDUwNAorMDUwNjtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLT01JIERaSkU7THU7MDtMOzs7OztOOzs7OzA1MDc7CiswNTA3O0NZUklMTElDIFNNQUxMIExFVFRFUiBLT01JIERaSkU7TGw7MDtMOzs7OztOOzs7MDUwNjs7MDUwNgorMDUwODtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLT01JIExKRTtMdTswO0w7Ozs7O047Ozs7MDUwOTsKKzA1MDk7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPTUkgTEpFO0xsOzA7TDs7Ozs7Tjs7OzA1MDg7OzA1MDgKKzA1MEE7Q1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS09NSSBOSkU7THU7MDtMOzs7OztOOzs7OzA1MEI7CiswNTBCO0NZUklMTElDIFNNQUxMIExFVFRFUiBLT01JIE5KRTtMbDswO0w7Ozs7O047OzswNTBBOzswNTBBCiswNTBDO0NZUklMTElDIENBUElUQUwgTEVUVEVSIEtPTUkgU0pFO0x1OzA7TDs7Ozs7Tjs7OzswNTBEOworMDUwRDtDWVJJTExJQyBTTUFMTCBMRVRURVIgS09NSSBTSkU7TGw7MDtMOzs7OztOOzs7MDUwQzs7MDUwQworMDUwRTtDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLT01JIFRKRTtMdTswO0w7Ozs7O047Ozs7MDUwRjsKKzA1MEY7Q1lSSUxMSUMgU01BTEwgTEVUVEVSIEtPTUkgVEpFO0xsOzA7TDs7Ozs7Tjs7OzA1MEU7OzA1MEUKKzA1MzE7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQVlCO0x1OzA7TDs7Ozs7Tjs7OzswNTYxOworMDUzMjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBCRU47THU7MDtMOzs7OztOOzs7OzA1NjI7CiswNTMzO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEdJTTtMdTswO0w7Ozs7O047Ozs7MDU2MzsKKzA1MzQ7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgREE7THU7MDtMOzs7OztOOzs7OzA1NjQ7CiswNTM1O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEVDSDtMdTswO0w7Ozs7O047Ozs7MDU2NTsKKzA1MzY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgWkE7THU7MDtMOzs7OztOOzs7OzA1NjY7CiswNTM3O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEVIO0x1OzA7TDs7Ozs7Tjs7OzswNTY3OworMDUzODtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBFVDtMdTswO0w7Ozs7O047Ozs7MDU2ODsKKzA1Mzk7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgVE87THU7MDtMOzs7OztOOzs7OzA1Njk7CiswNTNBO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFpIRTtMdTswO0w7Ozs7O047Ozs7MDU2QTsKKzA1M0I7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgSU5JO0x1OzA7TDs7Ozs7Tjs7OzswNTZCOworMDUzQztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBMSVdOO0x1OzA7TDs7Ozs7Tjs7OzswNTZDOworMDUzRDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBYRUg7THU7MDtMOzs7OztOOzs7OzA1NkQ7CiswNTNFO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIENBO0x1OzA7TDs7Ozs7Tjs7OzswNTZFOworMDUzRjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBLRU47THU7MDtMOzs7OztOOzs7OzA1NkY7CiswNTQwO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIEhPO0x1OzA7TDs7Ozs7Tjs7OzswNTcwOworMDU0MTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBKQTtMdTswO0w7Ozs7O047Ozs7MDU3MTsKKzA1NDI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgR0hBRDtMdTswO0w7Ozs7O047QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTEFEOzs7MDU3MjsKKzA1NDM7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgQ0hFSDtMdTswO0w7Ozs7O047Ozs7MDU3MzsKKzA1NDQ7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTUVOO0x1OzA7TDs7Ozs7Tjs7OzswNTc0OworMDU0NTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBZSTtMdTswO0w7Ozs7O047Ozs7MDU3NTsKKzA1NDY7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgTk9XO0x1OzA7TDs7Ozs7Tjs7OzswNTc2OworMDU0NztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBTSEE7THU7MDtMOzs7OztOOzs7OzA1Nzc7CiswNTQ4O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFZPO0x1OzA7TDs7Ozs7Tjs7OzswNTc4OworMDU0OTtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBDSEE7THU7MDtMOzs7OztOOzs7OzA1Nzk7CiswNTRBO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFBFSDtMdTswO0w7Ozs7O047Ozs7MDU3QTsKKzA1NEI7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgSkhFSDtMdTswO0w7Ozs7O047Ozs7MDU3QjsKKzA1NEM7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgUkE7THU7MDtMOzs7OztOOzs7OzA1N0M7CiswNTREO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIFNFSDtMdTswO0w7Ozs7O047Ozs7MDU3RDsKKzA1NEU7QVJNRU5JQU4gQ0FQSVRBTCBMRVRURVIgVkVXO0x1OzA7TDs7Ozs7Tjs7OzswNTdFOworMDU0RjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBUSVdOO0x1OzA7TDs7Ozs7Tjs7OzswNTdGOworMDU1MDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBSRUg7THU7MDtMOzs7OztOOzs7OzA1ODA7CiswNTUxO0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIENPO0x1OzA7TDs7Ozs7Tjs7OzswNTgxOworMDU1MjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBZSVdOO0x1OzA7TDs7Ozs7Tjs7OzswNTgyOworMDU1MztBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBQSVdSO0x1OzA7TDs7Ozs7Tjs7OzswNTgzOworMDU1NDtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBLRUg7THU7MDtMOzs7OztOOzs7OzA1ODQ7CiswNTU1O0FSTUVOSUFOIENBUElUQUwgTEVUVEVSIE9IO0x1OzA7TDs7Ozs7Tjs7OzswNTg1OworMDU1NjtBUk1FTklBTiBDQVBJVEFMIExFVFRFUiBGRUg7THU7MDtMOzs7OztOOzs7OzA1ODY7CiswNTU5O0FSTUVOSUFOIE1PRElGSUVSIExFVFRFUiBMRUZUIEhBTEYgUklORztMbTswO0w7Ozs7O047Ozs7OworMDU1QTtBUk1FTklBTiBBUE9TVFJPUEhFO1BvOzA7TDs7Ozs7TjtBUk1FTklBTiBNT0RJRklFUiBMRVRURVIgUklHSFQgSEFMRiBSSU5HOzs7OworMDU1QjtBUk1FTklBTiBFTVBIQVNJUyBNQVJLO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswNTVDO0FSTUVOSUFOIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzA1NUQ7QVJNRU5JQU4gQ09NTUE7UG87MDtMOzs7OztOOzs7OzsKKzA1NUU7QVJNRU5JQU4gUVVFU1RJT04gTUFSSztQbzswO0w7Ozs7O047Ozs7OworMDU1RjtBUk1FTklBTiBBQkJSRVZJQVRJT04gTUFSSztQbzswO0w7Ozs7O047Ozs7OworMDU2MTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQVlCO0xsOzA7TDs7Ozs7Tjs7OzA1MzE7OzA1MzEKKzA1NjI7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEJFTjtMbDswO0w7Ozs7O047OzswNTMyOzswNTMyCiswNTYzO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBHSU07TGw7MDtMOzs7OztOOzs7MDUzMzs7MDUzMworMDU2NDtBUk1FTklBTiBTTUFMTCBMRVRURVIgREE7TGw7MDtMOzs7OztOOzs7MDUzNDs7MDUzNAorMDU2NTtBUk1FTklBTiBTTUFMTCBMRVRURVIgRUNIO0xsOzA7TDs7Ozs7Tjs7OzA1MzU7OzA1MzUKKzA1NjY7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFpBO0xsOzA7TDs7Ozs7Tjs7OzA1MzY7OzA1MzYKKzA1Njc7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVIO0xsOzA7TDs7Ozs7Tjs7OzA1Mzc7OzA1MzcKKzA1Njg7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVUO0xsOzA7TDs7Ozs7Tjs7OzA1Mzg7OzA1MzgKKzA1Njk7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFRPO0xsOzA7TDs7Ozs7Tjs7OzA1Mzk7OzA1MzkKKzA1NkE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFpIRTtMbDswO0w7Ozs7O047OzswNTNBOzswNTNBCiswNTZCO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBJTkk7TGw7MDtMOzs7OztOOzs7MDUzQjs7MDUzQgorMDU2QztBUk1FTklBTiBTTUFMTCBMRVRURVIgTElXTjtMbDswO0w7Ozs7O047OzswNTNDOzswNTNDCiswNTZEO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBYRUg7TGw7MDtMOzs7OztOOzs7MDUzRDs7MDUzRAorMDU2RTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQ0E7TGw7MDtMOzs7OztOOzs7MDUzRTs7MDUzRQorMDU2RjtBUk1FTklBTiBTTUFMTCBMRVRURVIgS0VOO0xsOzA7TDs7Ozs7Tjs7OzA1M0Y7OzA1M0YKKzA1NzA7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEhPO0xsOzA7TDs7Ozs7Tjs7OzA1NDA7OzA1NDAKKzA1NzE7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEpBO0xsOzA7TDs7Ozs7Tjs7OzA1NDE7OzA1NDEKKzA1NzI7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEdIQUQ7TGw7MDtMOzs7OztOO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBMQUQ7OzA1NDI7OzA1NDIKKzA1NzM7QVJNRU5JQU4gU01BTEwgTEVUVEVSIENIRUg7TGw7MDtMOzs7OztOOzs7MDU0Mzs7MDU0MworMDU3NDtBUk1FTklBTiBTTUFMTCBMRVRURVIgTUVOO0xsOzA7TDs7Ozs7Tjs7OzA1NDQ7OzA1NDQKKzA1NzU7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFlJO0xsOzA7TDs7Ozs7Tjs7OzA1NDU7OzA1NDUKKzA1NzY7QVJNRU5JQU4gU01BTEwgTEVUVEVSIE5PVztMbDswO0w7Ozs7O047OzswNTQ2OzswNTQ2CiswNTc3O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBTSEE7TGw7MDtMOzs7OztOOzs7MDU0Nzs7MDU0NworMDU3ODtBUk1FTklBTiBTTUFMTCBMRVRURVIgVk87TGw7MDtMOzs7OztOOzs7MDU0ODs7MDU0OAorMDU3OTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQ0hBO0xsOzA7TDs7Ozs7Tjs7OzA1NDk7OzA1NDkKKzA1N0E7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFBFSDtMbDswO0w7Ozs7O047OzswNTRBOzswNTRBCiswNTdCO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBKSEVIO0xsOzA7TDs7Ozs7Tjs7OzA1NEI7OzA1NEIKKzA1N0M7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFJBO0xsOzA7TDs7Ozs7Tjs7OzA1NEM7OzA1NEMKKzA1N0Q7QVJNRU5JQU4gU01BTEwgTEVUVEVSIFNFSDtMbDswO0w7Ozs7O047OzswNTREOzswNTRECiswNTdFO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBWRVc7TGw7MDtMOzs7OztOOzs7MDU0RTs7MDU0RQorMDU3RjtBUk1FTklBTiBTTUFMTCBMRVRURVIgVElXTjtMbDswO0w7Ozs7O047OzswNTRGOzswNTRGCiswNTgwO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBSRUg7TGw7MDtMOzs7OztOOzs7MDU1MDs7MDU1MAorMDU4MTtBUk1FTklBTiBTTUFMTCBMRVRURVIgQ087TGw7MDtMOzs7OztOOzs7MDU1MTs7MDU1MQorMDU4MjtBUk1FTklBTiBTTUFMTCBMRVRURVIgWUlXTjtMbDswO0w7Ozs7O047OzswNTUyOzswNTUyCiswNTgzO0FSTUVOSUFOIFNNQUxMIExFVFRFUiBQSVdSO0xsOzA7TDs7Ozs7Tjs7OzA1NTM7OzA1NTMKKzA1ODQ7QVJNRU5JQU4gU01BTEwgTEVUVEVSIEtFSDtMbDswO0w7Ozs7O047OzswNTU0OzswNTU0CiswNTg1O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBPSDtMbDswO0w7Ozs7O047OzswNTU1OzswNTU1CiswNTg2O0FSTUVOSUFOIFNNQUxMIExFVFRFUiBGRUg7TGw7MDtMOzs7OztOOzs7MDU1Njs7MDU1NgorMDU4NztBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBFQ0ggWUlXTjtMbDswO0w7PGNvbXBhdD4gMDU2NSAwNTgyOzs7O047Ozs7OworMDU4OTtBUk1FTklBTiBGVUxMIFNUT1A7UG87MDtMOzs7OztOO0FSTUVOSUFOIFBFUklPRDs7OzsKKzA1OEE7QVJNRU5JQU4gSFlQSEVOO1BkOzA7T047Ozs7O047Ozs7OworMDU5MTtIRUJSRVcgQUNDRU5UIEVUTkFIVEE7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNTkyO0hFQlJFVyBBQ0NFTlQgU0VHT0w7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTkzO0hFQlJFVyBBQ0NFTlQgU0hBTFNIRUxFVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OTQ7SEVCUkVXIEFDQ0VOVCBaQVFFRiBRQVRBTjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OTU7SEVCUkVXIEFDQ0VOVCBaQVFFRiBHQURPTDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1OTY7SEVCUkVXIEFDQ0VOVCBUSVBFSEE7TW47MjIwO05TTTs7Ozs7Tjs7Kjs7OworMDU5NztIRUJSRVcgQUNDRU5UIFJFVklBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5ODtIRUJSRVcgQUNDRU5UIFpBUlFBO01uOzIzMDtOU007Ozs7O047Oyo7OzsKKzA1OTk7SEVCUkVXIEFDQ0VOVCBQQVNIVEE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTlBO0hFQlJFVyBBQ0NFTlQgWUVUSVY7TW47MjIyO05TTTs7Ozs7Tjs7Ozs7CiswNTlCO0hFQlJFVyBBQ0NFTlQgVEVWSVI7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNTlDO0hFQlJFVyBBQ0NFTlQgR0VSRVNIO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5RDtIRUJSRVcgQUNDRU5UIEdFUkVTSCBNVVFEQU07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNTlFO0hFQlJFVyBBQ0NFTlQgR0VSU0hBWUlNO01uOzIzMDtOU007Ozs7O047Ozs7OworMDU5RjtIRUJSRVcgQUNDRU5UIFFBUk5FWSBQQVJBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBMDtIRUJSRVcgQUNDRU5UIFRFTElTSEEgR0VET0xBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBMTtIRUJSRVcgQUNDRU5UIFBBWkVSO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBMjtIRUJSRVcgQUNDRU5UIEFUTkFIIEhBRlVLSDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA1QTM7SEVCUkVXIEFDQ0VOVCBNVU5BSDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA1QTQ7SEVCUkVXIEFDQ0VOVCBNQUhBUEFLSDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA1QTU7SEVCUkVXIEFDQ0VOVCBNRVJLSEE7TW47MjIwO05TTTs7Ozs7Tjs7Kjs7OworMDVBNjtIRUJSRVcgQUNDRU5UIE1FUktIQSBLRUZVTEE7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNUE3O0hFQlJFVyBBQ0NFTlQgREFSR0E7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNUE4O0hFQlJFVyBBQ0NFTlQgUUFETUE7TW47MjMwO05TTTs7Ozs7Tjs7Kjs7OworMDVBOTtIRUJSRVcgQUNDRU5UIFRFTElTSEEgUUVUQU5BO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVBQTtIRUJSRVcgQUNDRU5UIFlFUkFIIEJFTiBZT01PO01uOzIyMDtOU007Ozs7O047Oyo7OzsKKzA1QUI7SEVCUkVXIEFDQ0VOVCBPTEU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNUFDO0hFQlJFVyBBQ0NFTlQgSUxVWTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QUQ7SEVCUkVXIEFDQ0VOVCBERUhJO01uOzIyMjtOU007Ozs7O047Ozs7OworMDVBRTtIRUJSRVcgQUNDRU5UIFpJTk9SO01uOzIyODtOU007Ozs7O047Ozs7OworMDVBRjtIRUJSRVcgTUFSSyBNQVNPUkEgQ0lSQ0xFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDVCMDtIRUJSRVcgUE9JTlQgU0hFVkE7TW47MTA7TlNNOzs7OztOOzs7OzsKKzA1QjE7SEVCUkVXIFBPSU5UIEhBVEFGIFNFR09MO01uOzExO05TTTs7Ozs7Tjs7Ozs7CiswNUIyO0hFQlJFVyBQT0lOVCBIQVRBRiBQQVRBSDtNbjsxMjtOU007Ozs7O047Ozs7OworMDVCMztIRUJSRVcgUE9JTlQgSEFUQUYgUUFNQVRTO01uOzEzO05TTTs7Ozs7Tjs7Ozs7CiswNUI0O0hFQlJFVyBQT0lOVCBISVJJUTtNbjsxNDtOU007Ozs7O047Ozs7OworMDVCNTtIRUJSRVcgUE9JTlQgVFNFUkU7TW47MTU7TlNNOzs7OztOOzs7OzsKKzA1QjY7SEVCUkVXIFBPSU5UIFNFR09MO01uOzE2O05TTTs7Ozs7Tjs7Ozs7CiswNUI3O0hFQlJFVyBQT0lOVCBQQVRBSDtNbjsxNztOU007Ozs7O047Ozs7OworMDVCODtIRUJSRVcgUE9JTlQgUUFNQVRTO01uOzE4O05TTTs7Ozs7Tjs7Ozs7CiswNUI5O0hFQlJFVyBQT0lOVCBIT0xBTTtNbjsxOTtOU007Ozs7O047Ozs7OworMDVCQjtIRUJSRVcgUE9JTlQgUVVCVVRTO01uOzIwO05TTTs7Ozs7Tjs7Ozs7CiswNUJDO0hFQlJFVyBQT0lOVCBEQUdFU0ggT1IgTUFQSVE7TW47MjE7TlNNOzs7OztOO0hFQlJFVyBQT0lOVCBEQUdFU0g7b3Igc2h1cnVxOzs7CiswNUJEO0hFQlJFVyBQT0lOVCBNRVRFRztNbjsyMjtOU007Ozs7O047Oyo7OzsKKzA1QkU7SEVCUkVXIFBVTkNUVUFUSU9OIE1BUUFGO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUJGO0hFQlJFVyBQT0lOVCBSQUZFO01uOzIzO05TTTs7Ozs7Tjs7Ozs7CiswNUMwO0hFQlJFVyBQVU5DVFVBVElPTiBQQVNFUTtQbzswO1I7Ozs7O047SEVCUkVXIFBPSU5UIFBBU0VROyo7OzsKKzA1QzE7SEVCUkVXIFBPSU5UIFNISU4gRE9UO01uOzI0O05TTTs7Ozs7Tjs7Ozs7CiswNUMyO0hFQlJFVyBQT0lOVCBTSU4gRE9UO01uOzI1O05TTTs7Ozs7Tjs7Ozs7CiswNUMzO0hFQlJFVyBQVU5DVFVBVElPTiBTT0YgUEFTVVE7UG87MDtSOzs7OztOOzsqOzs7CiswNUM0O0hFQlJFVyBNQVJLIFVQUEVSIERPVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA1QzU7SEVCUkVXIE1BUksgTE9XRVIgRE9UO01uOzIyMDtOU007Ozs7O047Ozs7OworMDVDNjtIRUJSRVcgUFVOQ1RVQVRJT04gTlVOIEhBRlVLSEE7UG87MDtSOzs7OztOOzs7OzsKKzA1Qzc7SEVCUkVXIFBPSU5UIFFBTUFUUyBRQVRBTjtNbjsxODtOU007Ozs7O047Ozs7OworMDVEMDtIRUJSRVcgTEVUVEVSIEFMRUY7TG87MDtSOzs7OztOOzs7OzsKKzA1RDE7SEVCUkVXIExFVFRFUiBCRVQ7TG87MDtSOzs7OztOOzs7OzsKKzA1RDI7SEVCUkVXIExFVFRFUiBHSU1FTDtMbzswO1I7Ozs7O047Ozs7OworMDVEMztIRUJSRVcgTEVUVEVSIERBTEVUO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUQ0O0hFQlJFVyBMRVRURVIgSEU7TG87MDtSOzs7OztOOzs7OzsKKzA1RDU7SEVCUkVXIExFVFRFUiBWQVY7TG87MDtSOzs7OztOOzs7OzsKKzA1RDY7SEVCUkVXIExFVFRFUiBaQVlJTjtMbzswO1I7Ozs7O047Ozs7OworMDVENztIRUJSRVcgTEVUVEVSIEhFVDtMbzswO1I7Ozs7O047Ozs7OworMDVEODtIRUJSRVcgTEVUVEVSIFRFVDtMbzswO1I7Ozs7O047Ozs7OworMDVEOTtIRUJSRVcgTEVUVEVSIFlPRDtMbzswO1I7Ozs7O047Ozs7OworMDVEQTtIRUJSRVcgTEVUVEVSIEZJTkFMIEtBRjtMbzswO1I7Ozs7O047Ozs7OworMDVEQjtIRUJSRVcgTEVUVEVSIEtBRjtMbzswO1I7Ozs7O047Ozs7OworMDVEQztIRUJSRVcgTEVUVEVSIExBTUVEO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUREO0hFQlJFVyBMRVRURVIgRklOQUwgTUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNURFO0hFQlJFVyBMRVRURVIgTUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNURGO0hFQlJFVyBMRVRURVIgRklOQUwgTlVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUUwO0hFQlJFVyBMRVRURVIgTlVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUUxO0hFQlJFVyBMRVRURVIgU0FNRUtIO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUUyO0hFQlJFVyBMRVRURVIgQVlJTjtMbzswO1I7Ozs7O047Ozs7OworMDVFMztIRUJSRVcgTEVUVEVSIEZJTkFMIFBFO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU0O0hFQlJFVyBMRVRURVIgUEU7TG87MDtSOzs7OztOOzs7OzsKKzA1RTU7SEVCUkVXIExFVFRFUiBGSU5BTCBUU0FESTtMbzswO1I7Ozs7O047Ozs7OworMDVFNjtIRUJSRVcgTEVUVEVSIFRTQURJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU3O0hFQlJFVyBMRVRURVIgUU9GO0xvOzA7Ujs7Ozs7Tjs7Ozs7CiswNUU4O0hFQlJFVyBMRVRURVIgUkVTSDtMbzswO1I7Ozs7O047Ozs7OworMDVFOTtIRUJSRVcgTEVUVEVSIFNISU47TG87MDtSOzs7OztOOzs7OzsKKzA1RUE7SEVCUkVXIExFVFRFUiBUQVY7TG87MDtSOzs7OztOOzs7OzsKKzA1RjA7SEVCUkVXIExJR0FUVVJFIFlJRERJU0ggRE9VQkxFIFZBVjtMbzswO1I7Ozs7O047SEVCUkVXIExFVFRFUiBET1VCTEUgVkFWOzs7OworMDVGMTtIRUJSRVcgTElHQVRVUkUgWUlERElTSCBWQVYgWU9EO0xvOzA7Ujs7Ozs7TjtIRUJSRVcgTEVUVEVSIFZBViBZT0Q7Ozs7CiswNUYyO0hFQlJFVyBMSUdBVFVSRSBZSURESVNIIERPVUJMRSBZT0Q7TG87MDtSOzs7OztOO0hFQlJFVyBMRVRURVIgRE9VQkxFIFlPRDs7OzsKKzA1RjM7SEVCUkVXIFBVTkNUVUFUSU9OIEdFUkVTSDtQbzswO1I7Ozs7O047Ozs7OworMDVGNDtIRUJSRVcgUFVOQ1RVQVRJT04gR0VSU0hBWUlNO1BvOzA7Ujs7Ozs7Tjs7Ozs7CiswNjAwO0FSQUJJQyBOVU1CRVIgU0lHTjtDZjswO0FMOzs7OztOOzs7OzsKKzA2MDE7QVJBQklDIFNJR04gU0FOQUg7Q2Y7MDtBTDs7Ozs7Tjs7Ozs7CiswNjAyO0FSQUJJQyBGT09UTk9URSBNQVJLRVI7Q2Y7MDtBTDs7Ozs7Tjs7Ozs7CiswNjAzO0FSQUJJQyBTSUdOIFNBRkhBO0NmOzA7QUw7Ozs7O047Ozs7OworMDYwQjtBRkdIQU5JIFNJR047U2M7MDtBTDs7Ozs7Tjs7Ozs7CiswNjBDO0FSQUJJQyBDT01NQTtQbzswO0NTOzs7OztOOzs7OzsKKzA2MEQ7QVJBQklDIERBVEUgU0VQQVJBVE9SO1BvOzA7QUw7Ozs7O047Ozs7OworMDYwRTtBUkFCSUMgUE9FVElDIFZFUlNFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CiswNjBGO0FSQUJJQyBTSUdOIE1JU1JBO1NvOzA7T047Ozs7O047Ozs7OworMDYxMDtBUkFCSUMgU0lHTiBTQUxMQUxMQUhPVSBBTEFZSEUgV0FTU0FMTEFNO01uOzIzMDtOU007Ozs7O047Ozs7OworMDYxMTtBUkFCSUMgU0lHTiBBTEFZSEUgQVNTQUxMQU07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNjEyO0FSQUJJQyBTSUdOIFJBSE1BVFVMTEFIIEFMQVlIRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2MTM7QVJBQklDIFNJR04gUkFESSBBTExBSE9VIEFOSFU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNjE0O0FSQUJJQyBTSUdOIFRBS0hBTExVUztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2MTU7QVJBQklDIFNNQUxMIEhJR0ggVEFIO01uOzIzMDtOU007Ozs7O047Ozs7OworMDYxQjtBUkFCSUMgU0VNSUNPTE9OO1BvOzA7QUw7Ozs7O047Ozs7OworMDYxRTtBUkFCSUMgVFJJUExFIERPVCBQVU5DVFVBVElPTiBNQVJLO1BvOzA7QUw7Ozs7O047Ozs7OworMDYxRjtBUkFCSUMgUVVFU1RJT04gTUFSSztQbzswO0FMOzs7OztOOzs7OzsKKzA2MjE7QVJBQklDIExFVFRFUiBIQU1aQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIOzs7OworMDYyMjtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBNQUREQSBBQk9WRTtMbzswO0FMOzA2MjcgMDY1Mzs7OztOO0FSQUJJQyBMRVRURVIgTUFEREFIIE9OIEFMRUY7Ozs7CiswNjIzO0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7MDYyNyAwNjU0Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gQUxFRjs7OzsKKzA2MjQ7QVJBQklDIExFVFRFUiBXQVcgV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzA2NDggMDY1NDs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIFdBVzs7OzsKKzA2MjU7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQkVMT1c7TG87MDtBTDswNjI3IDA2NTU7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBVTkRFUiBBTEVGOzs7OworMDYyNjtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7MDY0QSAwNjU0Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gWUE7Ozs7CiswNjI3O0FSQUJJQyBMRVRURVIgQUxFRjtMbzswO0FMOzs7OztOOzs7OzsKKzA2Mjg7QVJBQklDIExFVFRFUiBCRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQTs7OzsKKzA2Mjk7QVJBQklDIExFVFRFUiBURUggTUFSQlVUQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIE1BUkJVVEFIOzs7OworMDYyQTtBUkFCSUMgTEVUVEVSIFRFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBOzs7OworMDYyQjtBUkFCSUMgTEVUVEVSIFRIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRIQUE7Ozs7CiswNjJDO0FSQUJJQyBMRVRURVIgSkVFTTtMbzswO0FMOzs7OztOOzs7OzsKKzA2MkQ7QVJBQklDIExFVFRFUiBIQUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQTs7OzsKKzA2MkU7QVJBQklDIExFVFRFUiBLSEFIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBLSEFBOzs7OworMDYyRjtBUkFCSUMgTEVUVEVSIERBTDtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzA7QVJBQklDIExFVFRFUiBUSEFMO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzMTtBUkFCSUMgTEVUVEVSIFJFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkE7Ozs7CiswNjMyO0FSQUJJQyBMRVRURVIgWkFJTjtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzM7QVJBQklDIExFVFRFUiBTRUVOO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzNDtBUkFCSUMgTEVUVEVSIFNIRUVOO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzNTtBUkFCSUMgTEVUVEVSIFNBRDtMbzswO0FMOzs7OztOOzs7OzsKKzA2MzY7QVJBQklDIExFVFRFUiBEQUQ7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjM3O0FSQUJJQyBMRVRURVIgVEFIO0xvOzA7QUw7Ozs7O047Ozs7OworMDYzODtBUkFCSUMgTEVUVEVSIFpBSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREhBSDs7OzsKKzA2Mzk7QVJBQklDIExFVFRFUiBBSU47TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjNBO0FSQUJJQyBMRVRURVIgR0hBSU47TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjQwO0FSQUJJQyBUQVRXRUVMO0xtOzA7QUw7Ozs7O047Ozs7OworMDY0MTtBUkFCSUMgTEVUVEVSIEZFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRkE7Ozs7CiswNjQyO0FSQUJJQyBMRVRURVIgUUFGO0xvOzA7QUw7Ozs7O047Ozs7OworMDY0MztBUkFCSUMgTEVUVEVSIEtBRjtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGOzs7OworMDY0NDtBUkFCSUMgTEVUVEVSIExBTTtMbzswO0FMOzs7OztOOzs7OzsKKzA2NDU7QVJBQklDIExFVFRFUiBNRUVNO0xvOzA7QUw7Ozs7O047Ozs7OworMDY0NjtBUkFCSUMgTEVUVEVSIE5PT047TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjQ3O0FSQUJJQyBMRVRURVIgSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQTs7OzsKKzA2NDg7QVJBQklDIExFVFRFUiBXQVc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjQ5O0FSQUJJQyBMRVRURVIgQUxFRiBNQUtTVVJBO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBBTEVGIE1BUVNVUkFIOzs7OworMDY0QTtBUkFCSUMgTEVUVEVSIFlFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUE7Ozs7CiswNjRCO0FSQUJJQyBGQVRIQVRBTjtNbjsyNztOU007Ozs7O047Ozs7OworMDY0QztBUkFCSUMgREFNTUFUQU47TW47Mjg7TlNNOzs7OztOOzs7OzsKKzA2NEQ7QVJBQklDIEtBU1JBVEFOO01uOzI5O05TTTs7Ozs7Tjs7Ozs7CiswNjRFO0FSQUJJQyBGQVRIQTtNbjszMDtOU007Ozs7O047QVJBQklDIEZBVEhBSDs7OzsKKzA2NEY7QVJBQklDIERBTU1BO01uOzMxO05TTTs7Ozs7TjtBUkFCSUMgREFNTUFIOzs7OworMDY1MDtBUkFCSUMgS0FTUkE7TW47MzI7TlNNOzs7OztOO0FSQUJJQyBLQVNSQUg7Ozs7CiswNjUxO0FSQUJJQyBTSEFEREE7TW47MzM7TlNNOzs7OztOO0FSQUJJQyBTSEFEREFIOzs7OworMDY1MjtBUkFCSUMgU1VLVU47TW47MzQ7TlNNOzs7OztOOzs7OzsKKzA2NTM7QVJBQklDIE1BRERBSCBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2NTQ7QVJBQklDIEhBTVpBIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDY1NTtBUkFCSUMgSEFNWkEgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNjU2O0FSQUJJQyBTVUJTQ1JJUFQgQUxFRjtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2NTc7QVJBQklDIElOVkVSVEVEIERBTU1BO01uOzIzMDtOU007Ozs7O047Ozs7OworMDY1ODtBUkFCSUMgTUFSSyBOT09OIEdIVU5OQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2NTk7QVJBQklDIFpXQVJBS0FZO01uOzIzMDtOU007Ozs7O047Ozs7OworMDY1QTtBUkFCSUMgVk9XRUwgU0lHTiBTTUFMTCBWIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDY1QjtBUkFCSUMgVk9XRUwgU0lHTiBJTlZFUlRFRCBTTUFMTCBWIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMDY1QztBUkFCSUMgVk9XRUwgU0lHTiBET1QgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNjVEO0FSQUJJQyBSRVZFUlNFRCBEQU1NQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2NUU7QVJBQklDIEZBVEhBIFdJVEggVFdPIERPVFM7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNjYwO0FSQUJJQy1JTkRJQyBESUdJVCBaRVJPO05kOzA7QU47OzA7MDswO047Ozs7OworMDY2MTtBUkFCSUMtSU5ESUMgRElHSVQgT05FO05kOzA7QU47OzE7MTsxO047Ozs7OworMDY2MjtBUkFCSUMtSU5ESUMgRElHSVQgVFdPO05kOzA7QU47OzI7MjsyO047Ozs7OworMDY2MztBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUU7TmQ7MDtBTjs7MzszOzM7Tjs7Ozs7CiswNjY0O0FSQUJJQy1JTkRJQyBESUdJVCBGT1VSO05kOzA7QU47OzQ7NDs0O047Ozs7OworMDY2NTtBUkFCSUMtSU5ESUMgRElHSVQgRklWRTtOZDswO0FOOzs1OzU7NTtOOzs7OzsKKzA2NjY7QVJBQklDLUlORElDIERJR0lUIFNJWDtOZDswO0FOOzs2OzY7NjtOOzs7OzsKKzA2Njc7QVJBQklDLUlORElDIERJR0lUIFNFVkVOO05kOzA7QU47Ozc7Nzs3O047Ozs7OworMDY2ODtBUkFCSUMtSU5ESUMgRElHSVQgRUlHSFQ7TmQ7MDtBTjs7ODs4Ozg7Tjs7Ozs7CiswNjY5O0FSQUJJQy1JTkRJQyBESUdJVCBOSU5FO05kOzA7QU47Ozk7OTs5O047Ozs7OworMDY2QTtBUkFCSUMgUEVSQ0VOVCBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworMDY2QjtBUkFCSUMgREVDSU1BTCBTRVBBUkFUT1I7UG87MDtBTjs7Ozs7Tjs7Ozs7CiswNjZDO0FSQUJJQyBUSE9VU0FORFMgU0VQQVJBVE9SO1BvOzA7QU47Ozs7O047Ozs7OworMDY2RDtBUkFCSUMgRklWRSBQT0lOVEVEIFNUQVI7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjZFO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBCRUg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjZGO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBRQUY7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjcwO0FSQUJJQyBMRVRURVIgU1VQRVJTQ1JJUFQgQUxFRjtNbjszNTtOU007Ozs7O047QVJBQklDIEFMRUYgQUJPVkU7Ozs7CiswNjcxO0FSQUJJQyBMRVRURVIgQUxFRiBXQVNMQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFUIFdBU0wgT04gQUxFRjs7OzsKKzA2NzI7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggV0FWWSBIQU1aQSBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FWWSBIQU1aQUggT04gQUxFRjs7OzsKKzA2NzM7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggV0FWWSBIQU1aQSBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FWWSBIQU1aQUggVU5ERVIgQUxFRjs7OzsKKzA2NzQ7QVJBQklDIExFVFRFUiBISUdIIEhBTVpBO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBISUdIIEhBTVpBSDs7OzsKKzA2NzU7QVJBQklDIExFVFRFUiBISUdIIEhBTVpBIEFMRUY7TG87MDtBTDs8Y29tcGF0PiAwNjI3IDA2NzQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIEFMRUY7Ozs7CiswNjc2O0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQSBXQVc7TG87MDtBTDs8Y29tcGF0PiAwNjQ4IDA2NzQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIFdBVzs7OzsKKzA2Nzc7QVJBQklDIExFVFRFUiBVIFdJVEggSEFNWkEgQUJPVkU7TG87MDtBTDs8Y29tcGF0PiAwNkM3IDA2NzQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhJR0ggSEFNWkFIIFdBVyBXSVRIIERBTU1BSDs7OzsKKzA2Nzg7QVJBQklDIExFVFRFUiBISUdIIEhBTVpBIFlFSDtMbzswO0FMOzxjb21wYXQ+IDA2NEEgMDY3NDs7OztOO0FSQUJJQyBMRVRURVIgSElHSCBIQU1aQUggWUE7Ozs7CiswNjc5O0FSQUJJQyBMRVRURVIgVFRFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggU01BTEwgVEFIOzs7OworMDY3QTtBUkFCSUMgTEVUVEVSIFRURUhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQUJPVkU7Ozs7CiswNjdCO0FSQUJJQyBMRVRURVIgQkVFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQkFBIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQkVMT1c7Ozs7CiswNjdDO0FSQUJJQyBMRVRURVIgVEVIIFdJVEggUklORztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggUklORzs7OzsKKzA2N0Q7QVJBQklDIExFVFRFUiBURUggV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEUztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBIFdJVEggVEhSRUUgRE9UUyBBQk9WRSBET1dOV0FSRDs7OzsKKzA2N0U7QVJBQklDIExFVFRFUiBQRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIFRIUkVFIERPVFMgQkVMT1c7Ozs7CiswNjdGO0FSQUJJQyBMRVRURVIgVEVIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBXSVRIIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzA2ODA7QVJBQklDIExFVFRFUiBCRUhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQkFBIFdJVEggRk9VUiBET1RTIEJFTE9XOzs7OworMDY4MTtBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQU1aQUggT04gSEFBOzs7OworMDY4MjtBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEFCT1ZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBUV08gRE9UUyBWRVJUSUNBTCBBQk9WRTs7OzsKKzA2ODM7QVJBQklDIExFVFRFUiBOWUVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQUEgV0lUSCBNSURETEUgVFdPIERPVFM7Ozs7CiswNjg0O0FSQUJJQyBMRVRURVIgRFlFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBIFdJVEggTUlERExFIFRXTyBET1RTIFZFUlRJQ0FMOzs7OworMDY4NTtBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNjg2O0FSQUJJQyBMRVRURVIgVENIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIE1JRERMRSBUSFJFRSBET1RTIERPV05XQVJEOzs7OworMDY4NztBUkFCSUMgTEVUVEVSIFRDSEVIRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQSBXSVRIIE1JRERMRSBGT1VSIERPVFM7Ozs7CiswNjg4O0FSQUJJQyBMRVRURVIgRERBTDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggU01BTEwgVEFIOzs7OworMDY4OTtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjhBO0FSQUJJQyBMRVRURVIgREFMIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDY4QjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIERPVCBCRUxPVyBBTkQgU01BTEwgVEFIO0xvOzA7QUw7Ozs7O047Ozs7OworMDY4QztBUkFCSUMgTEVUVEVSIERBSEFMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUV08gRE9UUyBBQk9WRTs7OzsKKzA2OEQ7QVJBQklDIExFVFRFUiBEREFIQUw7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIERBTCBXSVRIIFRXTyBET1RTIEJFTE9XOzs7OworMDY4RTtBUkFCSUMgTEVUVEVSIERVTDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2OEY7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUSFJFRSBET1RTIEFCT1ZFIERPV05XQVJEUztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgREFMIFdJVEggVEhSRUUgRE9UUyBBQk9WRSBET1dOV0FSRDs7OzsKKzA2OTA7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBGT1VSIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNjkxO0FSQUJJQyBMRVRURVIgUlJFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBTTUFMTCBUQUg7Ozs7CiswNjkyO0FSQUJJQyBMRVRURVIgUkVIIFdJVEggU01BTEwgVjtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBTTUFMTCBWOzs7OworMDY5MztBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggUklORzs7OzsKKzA2OTQ7QVJBQklDIExFVFRFUiBSRUggV0lUSCBET1QgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggRE9UIEJFTE9XOzs7OworMDY5NTtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIFNNQUxMIFYgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggU01BTEwgViBCRUxPVzs7OzsKKzA2OTY7QVJBQklDIExFVFRFUiBSRUggV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTs7OzsKKzA2OTc7QVJBQklDIExFVFRFUiBSRUggV0lUSCBUV08gRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgUkEgV0lUSCBUV08gRE9UUyBBQk9WRTs7OzsKKzA2OTg7QVJBQklDIExFVFRFUiBKRUg7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2OTk7QVJBQklDIExFVFRFUiBSRUggV0lUSCBGT1VSIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFJBIFdJVEggRk9VUiBET1RTIEFCT1ZFOzs7OworMDY5QTtBUkFCSUMgTEVUVEVSIFNFRU4gV0lUSCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2OUI7QVJBQklDIExFVFRFUiBTRUVOIFdJVEggVEhSRUUgRE9UUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2OUM7QVJBQklDIExFVFRFUiBTRUVOIFdJVEggVEhSRUUgRE9UUyBCRUxPVyBBTkQgVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2OUQ7QVJBQklDIExFVFRFUiBTQUQgV0lUSCBUV08gRE9UUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2OUU7QVJBQklDIExFVFRFUiBTQUQgV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDY5RjtBUkFCSUMgTEVUVEVSIFRBSCBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkEwO0FSQUJJQyBMRVRURVIgQUlOIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2QTE7QVJBQklDIExFVFRFUiBET1RMRVNTIEZFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBGQTs7OzsKKzA2QTI7QVJBQklDIExFVFRFUiBGRUggV0lUSCBET1QgTU9WRUQgQkVMT1c7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBIFdJVEggRE9UIE1PVkVEIEJFTE9XOzs7OworMDZBMztBUkFCSUMgTEVUVEVSIEZFSCBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBET1QgQkVMT1c7Ozs7CiswNkE0O0FSQUJJQyBMRVRURVIgVkVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIFRIUkVFIERPVFMgQUJPVkU7Ozs7CiswNkE1O0FSQUJJQyBMRVRURVIgRkVIIFdJVEggVEhSRUUgRE9UUyBCRUxPVztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRkEgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDZBNjtBUkFCSUMgTEVUVEVSIFBFSEVIO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBGQSBXSVRIIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzA2QTc7QVJBQklDIExFVFRFUiBRQUYgV0lUSCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkE4O0FSQUJJQyBMRVRURVIgUUFGIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2QTk7QVJBQklDIExFVFRFUiBLRUhFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgT1BFTiBDQUY7Ozs7CiswNkFBO0FSQUJJQyBMRVRURVIgU1dBU0ggS0FGO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBTV0FTSCBDQUY7Ozs7CiswNkFCO0FSQUJJQyBMRVRURVIgS0FGIFdJVEggUklORztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGIFdJVEggUklORzs7OzsKKzA2QUM7QVJBQklDIExFVFRFUiBLQUYgV0lUSCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRiBXSVRIIERPVCBBQk9WRTs7OzsKKzA2QUQ7QVJBQklDIExFVFRFUiBORztMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgQ0FGIFdJVEggVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzA2QUU7QVJBQklDIExFVFRFUiBLQUYgV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBDQUYgV0lUSCBUSFJFRSBET1RTIEJFTE9XOzs7OworMDZBRjtBUkFCSUMgTEVUVEVSIEdBRjtMbzswO0FMOzs7OztOOzsqOzs7CiswNkIwO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggUklORztMbzswO0FMOzs7OztOOzs7OzsKKzA2QjE7QVJBQklDIExFVFRFUiBOR09FSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVFdPIERPVFMgQUJPVkU7Ozs7CiswNkIyO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVFdPIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkIzO0FSQUJJQyBMRVRURVIgR1VFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVFdPIERPVFMgVkVSVElDQUwgQkVMT1c7Ozs7CiswNkI0O0FSQUJJQyBMRVRURVIgR0FGIFdJVEggVEhSRUUgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2QjU7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBTTUFMTCBWO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCNjtBUkFCSUMgTEVUVEVSIExBTSBXSVRIIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2Qjc7QVJBQklDIExFVFRFUiBMQU0gV0lUSCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZCODtBUkFCSUMgTEVUVEVSIExBTSBXSVRIIFRIUkVFIERPVFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkI5O0FSQUJJQyBMRVRURVIgTk9PTiBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2QkE7QVJBQklDIExFVFRFUiBOT09OIEdIVU5OQTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBOT09OOzs7OworMDZCQjtBUkFCSUMgTEVUVEVSIFJOT09OO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBET1RMRVNTIE5PT04gV0lUSCBTTUFMTCBUQUg7Ozs7CiswNkJDO0FSQUJJQyBMRVRURVIgTk9PTiBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkJEO0FSQUJJQyBMRVRURVIgTk9PTiBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkJFO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBLTk9UVEVEIEhBOzs7OworMDZCRjtBUkFCSUMgTEVUVEVSIFRDSEVIIFdJVEggRE9UIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZDMDtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIFlFSCBBQk9WRTtMbzswO0FMOzA2RDUgMDY1NDs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIEhBOzs7OworMDZDMTtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBIQSBHT0FMOzs7OworMDZDMjtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIFdJVEggSEFNWkEgQUJPVkU7TG87MDtBTDswNkMxIDA2NTQ7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBTVpBSCBPTiBIQSBHT0FMOzs7OworMDZDMztBUkFCSUMgTEVUVEVSIFRFSCBNQVJCVVRBIEdPQUw7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQSBNQVJCVVRBSCBHT0FMOzs7OworMDZDNDtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIFJJTkc7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkM1O0FSQUJJQyBMRVRURVIgS0lSR0hJWiBPRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggQkFSOzs7OworMDZDNjtBUkFCSUMgTEVUVEVSIE9FO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBTTUFMTCBWOzs7OworMDZDNztBUkFCSUMgTEVUVEVSIFU7TG87MDtBTDs7Ozs7TjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIERBTU1BSDs7OzsKKzA2Qzg7QVJBQklDIExFVFRFUiBZVTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgV0FXIFdJVEggQUxFRiBBQk9WRTs7OzsKKzA2Qzk7QVJBQklDIExFVFRFUiBLSVJHSElaIFlVO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBJTlZFUlRFRCBTTUFMTCBWOzs7OworMDZDQTtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIFRXTyBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDZDQjtBUkFCSUMgTEVUVEVSIFZFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBXQVcgV0lUSCBUSFJFRSBET1RTIEFCT1ZFOzs7OworMDZDQztBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSDtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgRE9UTEVTUyBZQTs7OzsKKzA2Q0Q7QVJBQklDIExFVFRFUiBZRUggV0lUSCBUQUlMO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBZQSBXSVRIIFRBSUw7Ozs7CiswNkNFO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggU01BTEwgVjtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgV0lUSCBTTUFMTCBWOzs7OworMDZDRjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA2RDA7QVJBQklDIExFVFRFUiBFO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBZQSBXSVRIIFRXTyBET1RTIFZFUlRJQ0FMIEJFTE9XOyo7OzsKKzA2RDE7QVJBQklDIExFVFRFUiBZRUggV0lUSCBUSFJFRSBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047QVJBQklDIExFVFRFUiBZQSBXSVRIIFRIUkVFIERPVFMgQkVMT1c7Ozs7CiswNkQyO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRTtMbzswO0FMOzs7OztOO0FSQUJJQyBMRVRURVIgWUEgQkFSUkVFOzs7OworMDZEMztBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgV0lUSCBIQU1aQSBBQk9WRTtMbzswO0FMOzA2RDIgMDY1NDs7OztOO0FSQUJJQyBMRVRURVIgSEFNWkFIIE9OIFlBIEJBUlJFRTs7OzsKKzA2RDQ7QVJBQklDIEZVTEwgU1RPUDtQbzswO0FMOzs7OztOO0FSQUJJQyBQRVJJT0Q7Ozs7CiswNkQ1O0FSQUJJQyBMRVRURVIgQUU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkQ2O0FSQUJJQyBTTUFMTCBISUdIIExJR0FUVVJFIFNBRCBXSVRIIExBTSBXSVRIIEFMRUYgTUFLU1VSQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RDc7QVJBQklDIFNNQUxMIEhJR0ggTElHQVRVUkUgUUFGIFdJVEggTEFNIFdJVEggQUxFRiBNQUtTVVJBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZEODtBUkFCSUMgU01BTEwgSElHSCBNRUVNIElOSVRJQUwgRk9STTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RDk7QVJBQklDIFNNQUxMIEhJR0ggTEFNIEFMRUY7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkRBO0FSQUJJQyBTTUFMTCBISUdIIEpFRU07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkRCO0FSQUJJQyBTTUFMTCBISUdIIFRIUkVFIERPVFM7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkRDO0FSQUJJQyBTTUFMTCBISUdIIFNFRU47TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkREO0FSQUJJQyBFTkQgT0YgQVlBSDtDZjswO0FMOzs7OztOOzs7OzsKKzA2REU7QVJBQklDIFNUQVJUIE9GIFJVQiBFTCBISVpCO01lOzA7TlNNOzs7OztOOzs7OzsKKzA2REY7QVJBQklDIFNNQUxMIEhJR0ggUk9VTkRFRCBaRVJPO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFMDtBUkFCSUMgU01BTEwgSElHSCBVUFJJR0hUIFJFQ1RBTkdVTEFSIFpFUk87TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkUxO0FSQUJJQyBTTUFMTCBISUdIIERPVExFU1MgSEVBRCBPRiBLSEFIO01uOzIzMDtOU007Ozs7O047Ozs7OworMDZFMjtBUkFCSUMgU01BTEwgSElHSCBNRUVNIElTT0xBVEVEIEZPUk07TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkUzO0FSQUJJQyBTTUFMTCBMT1cgU0VFTjtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2RTQ7QVJBQklDIFNNQUxMIEhJR0ggTUFEREE7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkU1O0FSQUJJQyBTTUFMTCBXQVc7TG07MDtBTDs7Ozs7Tjs7Ozs7CiswNkU2O0FSQUJJQyBTTUFMTCBZRUg7TG07MDtBTDs7Ozs7Tjs7Ozs7CiswNkU3O0FSQUJJQyBTTUFMTCBISUdIIFlFSDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RTg7QVJBQklDIFNNQUxMIEhJR0ggTk9PTjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA2RTk7QVJBQklDIFBMQUNFIE9GIFNBSkRBSDtTbzswO09OOzs7OztOOzs7OzsKKzA2RUE7QVJBQklDIEVNUFRZIENFTlRSRSBMT1cgU1RPUDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2RUI7QVJBQklDIEVNUFRZIENFTlRSRSBISUdIIFNUT1A7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkVDO0FSQUJJQyBST1VOREVEIEhJR0ggU1RPUCBXSVRIIEZJTExFRCBDRU5UUkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNkVEO0FSQUJJQyBTTUFMTCBMT1cgTUVFTTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA2RUU7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBJTlZFUlRFRCBWO0xvOzA7QUw7Ozs7O047Ozs7OworMDZFRjtBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIElOVkVSVEVEIFY7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkYwO0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBaRVJPO05kOzA7RU47OzA7MDswO047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgWkVSTzs7OzsKKzA2RjE7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIE9ORTtOZDswO0VOOzsxOzE7MTtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIE9ORTs7OzsKKzA2RjI7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFRXTztOZDswO0VOOzsyOzI7MjtOO0VBU1RFUk4gQVJBQklDLUlORElDIERJR0lUIFRXTzs7OzsKKzA2RjM7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIFRIUkVFO05kOzA7RU47OzM7MzszO047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUU7Ozs7CiswNkY0O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBGT1VSO05kOzA7RU47OzQ7NDs0O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgRk9VUjs7OzsKKzA2RjU7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIEZJVkU7TmQ7MDtFTjs7NTs1OzU7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBGSVZFOzs7OworMDZGNjtFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgU0lYO05kOzA7RU47OzY7Njs2O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgU0lYOzs7OworMDZGNztFWFRFTkRFRCBBUkFCSUMtSU5ESUMgRElHSVQgU0VWRU47TmQ7MDtFTjs7Nzs3Ozc7TjtFQVNURVJOIEFSQUJJQy1JTkRJQyBESUdJVCBTRVZFTjs7OzsKKzA2Rjg7RVhURU5ERUQgQVJBQklDLUlORElDIERJR0lUIEVJR0hUO05kOzA7RU47Ozg7ODs4O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgRUlHSFQ7Ozs7CiswNkY5O0VYVEVOREVEIEFSQUJJQy1JTkRJQyBESUdJVCBOSU5FO05kOzA7RU47Ozk7OTs5O047RUFTVEVSTiBBUkFCSUMtSU5ESUMgRElHSVQgTklORTs7OzsKKzA2RkE7QVJBQklDIExFVFRFUiBTSEVFTiBXSVRIIERPVCBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA2RkI7QVJBQklDIExFVFRFUiBEQUQgV0lUSCBET1QgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkZDO0FSQUJJQyBMRVRURVIgR0hBSU4gV0lUSCBET1QgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNkZEO0FSQUJJQyBTSUdOIFNJTkRISSBBTVBFUlNBTkQ7U287MDtBTDs7Ozs7Tjs7Ozs7CiswNkZFO0FSQUJJQyBTSUdOIFNJTkRISSBQT1NUUE9TSVRJT04gTUVOO1NvOzA7QUw7Ozs7O047Ozs7OworMDZGRjtBUkFCSUMgTEVUVEVSIEhFSCBXSVRIIElOVkVSVEVEIFY7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzAwO1NZUklBQyBFTkQgT0YgUEFSQUdSQVBIO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwMTtTWVJJQUMgU1VQUkFMSU5FQVIgRlVMTCBTVE9QO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwMjtTWVJJQUMgU1VCTElORUFSIEZVTEwgU1RPUDtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDM7U1lSSUFDIFNVUFJBTElORUFSIENPTE9OO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwNDtTWVJJQUMgU1VCTElORUFSIENPTE9OO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwNTtTWVJJQUMgSE9SSVpPTlRBTCBDT0xPTjtQbzswO0FMOzs7OztOOzs7OzsKKzA3MDY7U1lSSUFDIENPTE9OIFNLRVdFRCBMRUZUO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwNztTWVJJQUMgQ09MT04gU0tFV0VEIFJJR0hUO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwODtTWVJJQUMgU1VQUkFMSU5FQVIgQ09MT04gU0tFV0VEIExFRlQ7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzA5O1NZUklBQyBTVUJMSU5FQVIgQ09MT04gU0tFV0VEIFJJR0hUO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwQTtTWVJJQUMgQ09OVFJBQ1RJT047UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzBCO1NZUklBQyBIQVJLTEVBTiBPQkVMVVM7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzBDO1NZUklBQyBIQVJLTEVBTiBNRVRPQkVMVVM7UG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzBEO1NZUklBQyBIQVJLTEVBTiBBU1RFUklTQ1VTO1BvOzA7QUw7Ozs7O047Ozs7OworMDcwRjtTWVJJQUMgQUJCUkVWSUFUSU9OIE1BUks7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CiswNzEwO1NZUklBQyBMRVRURVIgQUxBUEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzExO1NZUklBQyBMRVRURVIgU1VQRVJTQ1JJUFQgQUxBUEg7TW47MzY7TlNNOzs7OztOOzs7OzsKKzA3MTI7U1lSSUFDIExFVFRFUiBCRVRIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxMztTWVJJQUMgTEVUVEVSIEdBTUFMO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxNDtTWVJJQUMgTEVUVEVSIEdBTUFMIEdBUlNIVU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxNTtTWVJJQUMgTEVUVEVSIERBTEFUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MTY7U1lSSUFDIExFVFRFUiBET1RMRVNTIERBTEFUSCBSSVNIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxNztTWVJJQUMgTEVUVEVSIEhFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxODtTWVJJQUMgTEVUVEVSIFdBVztMbzswO0FMOzs7OztOOzs7OzsKKzA3MTk7U1lSSUFDIExFVFRFUiBaQUlOO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxQTtTWVJJQUMgTEVUVEVSIEhFVEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzFCO1NZUklBQyBMRVRURVIgVEVUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MUM7U1lSSUFDIExFVFRFUiBURVRIIEdBUlNIVU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDcxRDtTWVJJQUMgTEVUVEVSIFlVREg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzFFO1NZUklBQyBMRVRURVIgWVVESCBIRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3MUY7U1lSSUFDIExFVFRFUiBLQVBIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyMDtTWVJJQUMgTEVUVEVSIExBTUFESDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MjE7U1lSSUFDIExFVFRFUiBNSU07TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzIyO1NZUklBQyBMRVRURVIgTlVOO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyMztTWVJJQUMgTEVUVEVSIFNFTUtBVEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzI0O1NZUklBQyBMRVRURVIgRklOQUwgU0VNS0FUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MjU7U1lSSUFDIExFVFRFUiBFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyNjtTWVJJQUMgTEVUVEVSIFBFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyNztTWVJJQUMgTEVUVEVSIFJFVkVSU0VEIFBFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyODtTWVJJQUMgTEVUVEVSIFNBREhFO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyOTtTWVJJQUMgTEVUVEVSIFFBUEg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzJBO1NZUklBQyBMRVRURVIgUklTSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MkI7U1lSSUFDIExFVFRFUiBTSElOO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyQztTWVJJQUMgTEVUVEVSIFRBVztMbzswO0FMOzs7OztOOzs7OzsKKzA3MkQ7U1lSSUFDIExFVFRFUiBQRVJTSUFOIEJIRVRIO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyRTtTWVJJQUMgTEVUVEVSIFBFUlNJQU4gR0hBTUFMO0xvOzA7QUw7Ozs7O047Ozs7OworMDcyRjtTWVJJQUMgTEVUVEVSIFBFUlNJQU4gREhBTEFUSDtMbzswO0FMOzs7OztOOzs7OzsKKzA3MzA7U1lSSUFDIFBUSEFIQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3MzE7U1lSSUFDIFBUSEFIQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3MzI7U1lSSUFDIFBUSEFIQSBET1RURUQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzMzO1NZUklBQyBaUUFQSEEgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzM0O1NZUklBQyBaUUFQSEEgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzM1O1NZUklBQyBaUUFQSEEgRE9UVEVEO01uOzIzMDtOU007Ozs7O047Ozs7OworMDczNjtTWVJJQUMgUkJBU0EgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzM3O1NZUklBQyBSQkFTQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3Mzg7U1lSSUFDIERPVFRFRCBaTEFNQSBIT1JJWk9OVEFMO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczOTtTWVJJQUMgRE9UVEVEIFpMQU1BIEFOR1VMQVI7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzNBO1NZUklBQyBIQkFTQSBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3M0I7U1lSSUFDIEhCQVNBIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczQztTWVJJQUMgSEJBU0EtRVNBU0EgRE9UVEVEO01uOzIyMDtOU007Ozs7O047Ozs7OworMDczRDtTWVJJQUMgRVNBU0EgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzNFO1NZUklBQyBFU0FTQSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzA3M0Y7U1lSSUFDIFJXQUhBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0MDtTWVJJQUMgRkVNSU5JTkUgRE9UO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0MTtTWVJJQUMgUVVTSFNIQVlBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDc0MjtTWVJJQUMgUlVLS0FLSEE7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzQzO1NZUklBQyBUV08gVkVSVElDQUwgRE9UUyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NDQ7U1lSSUFDIFRXTyBWRVJUSUNBTCBET1RTIEJFTE9XO01uOzIyMDtOU007Ozs7O047Ozs7OworMDc0NTtTWVJJQUMgVEhSRUUgRE9UUyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NDY7U1lSSUFDIFRIUkVFIERPVFMgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ3O1NZUklBQyBPQkxJUVVFIExJTkUgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ4O1NZUklBQyBPQkxJUVVFIExJTkUgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CiswNzQ5O1NZUklBQyBNVVNJQztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA3NEE7U1lSSUFDIEJBUlJFS0g7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswNzREO1NZUklBQyBMRVRURVIgU09HRElBTiBaSEFJTjtMbzswO0FMOzs7OztOOzs7OzsKKzA3NEU7U1lSSUFDIExFVFRFUiBTT0dESUFOIEtIQVBIO0xvOzA7QUw7Ozs7O047Ozs7OworMDc0RjtTWVJJQUMgTEVUVEVSIFNPR0RJQU4gRkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzUwO0FSQUJJQyBMRVRURVIgQkVIIFdJVEggVEhSRUUgRE9UUyBIT1JJWk9OVEFMTFkgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzUxO0FSQUJJQyBMRVRURVIgQkVIIFdJVEggRE9UIEJFTE9XIEFORCBUSFJFRSBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc1MjtBUkFCSUMgTEVUVEVSIEJFSCBXSVRIIFRIUkVFIERPVFMgUE9JTlRJTkcgVVBXQVJEUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA3NTM7QVJBQklDIExFVFRFUiBCRUggV0lUSCBUSFJFRSBET1RTIFBPSU5USU5HIFVQV0FSRFMgQkVMT1cgQU5EIFRXTyBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc1NDtBUkFCSUMgTEVUVEVSIEJFSCBXSVRIIFRXTyBET1RTIEJFTE9XIEFORCBET1QgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzU1O0FSQUJJQyBMRVRURVIgQkVIIFdJVEggSU5WRVJURUQgU01BTEwgViBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA3NTY7QVJBQklDIExFVFRFUiBCRUggV0lUSCBTTUFMTCBWO0xvOzA7QUw7Ozs7O047Ozs7OworMDc1NztBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIFRXTyBET1RTIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc1ODtBUkFCSUMgTEVUVEVSIEhBSCBXSVRIIFRIUkVFIERPVFMgUE9JTlRJTkcgVVBXQVJEUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA3NTk7QVJBQklDIExFVFRFUiBEQUwgV0lUSCBUV08gRE9UUyBWRVJUSUNBTExZIEJFTE9XIEFORCBTTUFMTCBUQUg7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzVBO0FSQUJJQyBMRVRURVIgREFMIFdJVEggSU5WRVJURUQgU01BTEwgViBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA3NUI7QVJBQklDIExFVFRFUiBSRUggV0lUSCBTVFJPS0U7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzVDO0FSQUJJQyBMRVRURVIgU0VFTiBXSVRIIEZPVVIgRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NUQ7QVJBQklDIExFVFRFUiBBSU4gV0lUSCBUV08gRE9UUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NUU7QVJBQklDIExFVFRFUiBBSU4gV0lUSCBUSFJFRSBET1RTIFBPSU5USU5HIERPV05XQVJEUyBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NUY7QVJBQklDIExFVFRFUiBBSU4gV0lUSCBUV08gRE9UUyBWRVJUSUNBTExZIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2MDtBUkFCSUMgTEVUVEVSIEZFSCBXSVRIIFRXTyBET1RTIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2MTtBUkFCSUMgTEVUVEVSIEZFSCBXSVRIIFRIUkVFIERPVFMgUE9JTlRJTkcgVVBXQVJEUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA3NjI7QVJBQklDIExFVFRFUiBLRUhFSCBXSVRIIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NjM7QVJBQklDIExFVFRFUiBLRUhFSCBXSVRIIFRIUkVFIERPVFMgQUJPVkU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzY0O0FSQUJJQyBMRVRURVIgS0VIRUggV0lUSCBUSFJFRSBET1RTIFBPSU5USU5HIFVQV0FSRFMgQkVMT1c7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzY1O0FSQUJJQyBMRVRURVIgTUVFTSBXSVRIIERPVCBBQk9WRTtMbzswO0FMOzs7OztOOzs7OzsKKzA3NjY7QVJBQklDIExFVFRFUiBNRUVNIFdJVEggRE9UIEJFTE9XO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2NztBUkFCSUMgTEVUVEVSIE5PT04gV0lUSCBUV08gRE9UUyBCRUxPVztMbzswO0FMOzs7OztOOzs7OzsKKzA3Njg7QVJBQklDIExFVFRFUiBOT09OIFdJVEggU01BTEwgVEFIO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2OTtBUkFCSUMgTEVUVEVSIE5PT04gV0lUSCBTTUFMTCBWO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2QTtBUkFCSUMgTEVUVEVSIExBTSBXSVRIIEJBUjtMbzswO0FMOzs7OztOOzs7OzsKKzA3NkI7QVJBQklDIExFVFRFUiBSRUggV0lUSCBUV08gRE9UUyBWRVJUSUNBTExZIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2QztBUkFCSUMgTEVUVEVSIFJFSCBXSVRIIEhBTVpBIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc2RDtBUkFCSUMgTEVUVEVSIFNFRU4gV0lUSCBUV08gRE9UUyBWRVJUSUNBTExZIEFCT1ZFO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4MDtUSEFBTkEgTEVUVEVSIEhBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODE7VEhBQU5BIExFVFRFUiBTSEFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzgyO1RIQUFOQSBMRVRURVIgTk9PTlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzgzO1RIQUFOQSBMRVRURVIgUkFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4NDtUSEFBTkEgTEVUVEVSIEJBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3ODU7VEhBQU5BIExFVFRFUiBMSEFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzg2O1RIQUFOQSBMRVRURVIgS0FBRlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzg3O1RIQUFOQSBMRVRURVIgQUxJRlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzg4O1RIQUFOQSBMRVRURVIgVkFBVlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzg5O1RIQUFOQSBMRVRURVIgTUVFTVU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzhBO1RIQUFOQSBMRVRURVIgRkFBRlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzhCO1RIQUFOQSBMRVRURVIgREhBQUxVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc4QztUSEFBTkEgTEVUVEVSIFRIQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzhEO1RIQUFOQSBMRVRURVIgTEFBTVU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzhFO1RIQUFOQSBMRVRURVIgR0FBRlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzhGO1RIQUFOQSBMRVRURVIgR05BVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5MDtUSEFBTkEgTEVUVEVSIFNFRU5VO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5MTtUSEFBTkEgTEVUVEVSIERBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5MjtUSEFBTkEgTEVUVEVSIFpBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5MztUSEFBTkEgTEVUVEVSIFRBVklZQU5JO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5NDtUSEFBTkEgTEVUVEVSIFlBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTU7VEhBQU5BIExFVFRFUiBQQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTY7VEhBQU5BIExFVFRFUiBKQVZJWUFOSTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTc7VEhBQU5BIExFVFRFUiBDSEFWSVlBTkk7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzk4O1RIQUFOQSBMRVRURVIgVFRBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OTk7VEhBQU5BIExFVFRFUiBISEFBO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5QTtUSEFBTkEgTEVUVEVSIEtIQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzlCO1RIQUFOQSBMRVRURVIgVEhBQUxVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5QztUSEFBTkEgTEVUVEVSIFpBQTtMbzswO0FMOzs7OztOOzs7OzsKKzA3OUQ7VEhBQU5BIExFVFRFUiBTSEVFTlU7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswNzlFO1RIQUFOQSBMRVRURVIgU0FBREhVO0xvOzA7QUw7Ozs7O047Ozs7OworMDc5RjtUSEFBTkEgTEVUVEVSIERBQURIVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3QTA7VEhBQU5BIExFVFRFUiBUTztMbzswO0FMOzs7OztOOzs7OzsKKzA3QTE7VEhBQU5BIExFVFRFUiBaTztMbzswO0FMOzs7OztOOzs7OzsKKzA3QTI7VEhBQU5BIExFVFRFUiBBSU5VO0xvOzA7QUw7Ozs7O047Ozs7OworMDdBMztUSEFBTkEgTEVUVEVSIEdIQUlOVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3QTQ7VEhBQU5BIExFVFRFUiBRQUFGVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3QTU7VEhBQU5BIExFVFRFUiBXQUFWVTtMbzswO0FMOzs7OztOOzs7OzsKKzA3QTY7VEhBQU5BIEFCQUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBNztUSEFBTkEgQUFCQUFGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QTg7VEhBQU5BIElCSUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBOTtUSEFBTkEgRUVCRUVGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QUE7VEhBQU5BIFVCVUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBQjtUSEFBTkEgT09CT09GSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QUM7VEhBQU5BIEVCRUZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBRDtUSEFBTkEgRVlCRVlGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QUU7VEhBQU5BIE9CT0ZJTEk7TW47MDtOU007Ozs7O047Ozs7OworMDdBRjtUSEFBTkEgT0FCT0FGSUxJO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QjA7VEhBQU5BIFNVS1VOO01uOzA7TlNNOzs7OztOOzs7OzsKKzA3QjE7VEhBQU5BIExFVFRFUiBOQUE7TG87MDtBTDs7Ozs7Tjs7Ozs7CiswOTAxO0RFVkFOQUdBUkkgU0lHTiBDQU5EUkFCSU5EVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTAyO0RFVkFOQUdBUkkgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTAzO0RFVkFOQUdBUkkgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTA0O0RFVkFOQUdBUkkgTEVUVEVSIFNIT1JUIEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MDU7REVWQU5BR0FSSSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMDkwNjtERVZBTkFHQVJJIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMDkwNztERVZBTkFHQVJJIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA4O0RFVkFOQUdBUkkgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTA5O0RFVkFOQUdBUkkgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzA5MEE7REVWQU5BR0FSSSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzA5MEI7REVWQU5BR0FSSSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBDO0RFVkFOQUdBUkkgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMDkwRDtERVZBTkFHQVJJIExFVFRFUiBDQU5EUkEgRTtMbzswO0w7Ozs7O047Ozs7OworMDkwRTtERVZBTkFHQVJJIExFVFRFUiBTSE9SVCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTBGO0RFVkFOQUdBUkkgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzA5MTA7REVWQU5BR0FSSSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzA5MTE7REVWQU5BR0FSSSBMRVRURVIgQ0FORFJBIE87TG87MDtMOzs7OztOOzs7OzsKKzA5MTI7REVWQU5BR0FSSSBMRVRURVIgU0hPUlQgTztMbzswO0w7Ozs7O047Ozs7OworMDkxMztERVZBTkFHQVJJIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE0O0RFVkFOQUdBUkkgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE1O0RFVkFOQUdBUkkgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTE2O0RFVkFOQUdBUkkgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMDkxNztERVZBTkFHQVJJIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMDkxODtERVZBTkFHQVJJIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MTk7REVWQU5BR0FSSSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFBO0RFVkFOQUdBUkkgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFCO0RFVkFOQUdBUkkgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMDkxQztERVZBTkFHQVJJIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMDkxRDtERVZBTkFHQVJJIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MUU7REVWQU5BR0FSSSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTFGO0RFVkFOQUdBUkkgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMDkyMDtERVZBTkFHQVJJIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTIxO0RFVkFOQUdBUkkgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMDkyMjtERVZBTkFHQVJJIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTIzO0RFVkFOQUdBUkkgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMDkyNDtERVZBTkFHQVJJIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMDkyNTtERVZBTkFHQVJJIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MjY7REVWQU5BR0FSSSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzA5Mjc7REVWQU5BR0FSSSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI4O0RFVkFOQUdBUkkgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTI5O0RFVkFOQUdBUkkgTEVUVEVSIE5OTkE7TG87MDtMOzA5MjggMDkzQzs7OztOOzs7OzsKKzA5MkE7REVWQU5BR0FSSSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MkI7REVWQU5BR0FSSSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJDO0RFVkFOQUdBUkkgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTJEO0RFVkFOQUdBUkkgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMDkyRTtERVZBTkFHQVJJIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMDkyRjtERVZBTkFHQVJJIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMDkzMDtERVZBTkFHQVJJIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMDkzMTtERVZBTkFHQVJJIExFVFRFUiBSUkE7TG87MDtMOzA5MzAgMDkzQzs7OztOOzs7OzsKKzA5MzI7REVWQU5BR0FSSSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzA5MzM7REVWQU5BR0FSSSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM0O0RFVkFOQUdBUkkgTEVUVEVSIExMTEE7TG87MDtMOzA5MzMgMDkzQzs7OztOOzs7OzsKKzA5MzU7REVWQU5BR0FSSSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzA5MzY7REVWQU5BR0FSSSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTM3O0RFVkFOQUdBUkkgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMDkzODtERVZBTkFHQVJJIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMDkzOTtERVZBTkFHQVJJIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMDkzQztERVZBTkFHQVJJIFNJR04gTlVLVEE7TW47NztOU007Ozs7O047Ozs7OworMDkzRDtERVZBTkFHQVJJIFNJR04gQVZBR1JBSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5M0U7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTNGO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTQwO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBJSTtNYzswO0w7Ozs7O047Ozs7OworMDk0MTtERVZBTkFHQVJJIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQyO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQzO0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBWT0NBTElDIFI7TW47MDtOU007Ozs7O047Ozs7OworMDk0NDtERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQ1O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBDQU5EUkEgRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOTQ2O0RFVkFOQUdBUkkgVk9XRUwgU0lHTiBTSE9SVCBFO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NDc7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEU7TW47MDtOU007Ozs7O047Ozs7OworMDk0ODtERVZBTkFHQVJJIFZPV0VMIFNJR04gQUk7TW47MDtOU007Ozs7O047Ozs7OworMDk0OTtERVZBTkFHQVJJIFZPV0VMIFNJR04gQ0FORFJBIE87TWM7MDtMOzs7OztOOzs7OzsKKzA5NEE7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFNIT1JUIE87TWM7MDtMOzs7OztOOzs7OzsKKzA5NEI7REVWQU5BR0FSSSBWT1dFTCBTSUdOIE87TWM7MDtMOzs7OztOOzs7OzsKKzA5NEM7REVWQU5BR0FSSSBWT1dFTCBTSUdOIEFVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOTREO0RFVkFOQUdBUkkgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMDk1MDtERVZBTkFHQVJJIE9NO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTUxO0RFVkFOQUdBUkkgU1RSRVNTIFNJR04gVURBVFRBO01uOzIzMDtOU007Ozs7O047Ozs7OworMDk1MjtERVZBTkFHQVJJIFNUUkVTUyBTSUdOIEFOVURBVFRBO01uOzIyMDtOU007Ozs7O047Ozs7OworMDk1MztERVZBTkFHQVJJIEdSQVZFIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzA5NTQ7REVWQU5BR0FSSSBBQ1VURSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CiswOTU4O0RFVkFOQUdBUkkgTEVUVEVSIFFBO0xvOzA7TDswOTE1IDA5M0M7Ozs7Tjs7Ozs7CiswOTU5O0RFVkFOQUdBUkkgTEVUVEVSIEtISEE7TG87MDtMOzA5MTYgMDkzQzs7OztOOzs7OzsKKzA5NUE7REVWQU5BR0FSSSBMRVRURVIgR0hIQTtMbzswO0w7MDkxNyAwOTNDOzs7O047Ozs7OworMDk1QjtERVZBTkFHQVJJIExFVFRFUiBaQTtMbzswO0w7MDkxQyAwOTNDOzs7O047Ozs7OworMDk1QztERVZBTkFHQVJJIExFVFRFUiBERERIQTtMbzswO0w7MDkyMSAwOTNDOzs7O047Ozs7OworMDk1RDtERVZBTkFHQVJJIExFVFRFUiBSSEE7TG87MDtMOzA5MjIgMDkzQzs7OztOOzs7OzsKKzA5NUU7REVWQU5BR0FSSSBMRVRURVIgRkE7TG87MDtMOzA5MkIgMDkzQzs7OztOOzs7OzsKKzA5NUY7REVWQU5BR0FSSSBMRVRURVIgWVlBO0xvOzA7TDswOTJGIDA5M0M7Ozs7Tjs7Ozs7CiswOTYwO0RFVkFOQUdBUkkgTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzA5NjE7REVWQU5BR0FSSSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMDk2MjtERVZBTkFHQVJJIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5NjM7REVWQU5BR0FSSSBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47MDtOU007Ozs7O047Ozs7OworMDk2NDtERVZBTkFHQVJJIERBTkRBO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswOTY1O0RFVkFOQUdBUkkgRE9VQkxFIERBTkRBO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswOTY2O0RFVkFOQUdBUkkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMDk2NztERVZBTkFHQVJJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMDk2ODtERVZBTkFHQVJJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMDk2OTtERVZBTkFHQVJJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswOTZBO0RFVkFOQUdBUkkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMDk2QjtERVZBTkFHQVJJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzA5NkM7REVWQU5BR0FSSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzA5NkQ7REVWQU5BR0FSSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMDk2RTtERVZBTkFHQVJJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswOTZGO0RFVkFOQUdBUkkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMDk3MDtERVZBTkFHQVJJIEFCQlJFVklBVElPTiBTSUdOO1BvOzA7TDs7Ozs7Tjs7Ozs7CiswOTdEO0RFVkFOQUdBUkkgTEVUVEVSIEdMT1RUQUwgU1RPUDtMbzswO0w7Ozs7O047Ozs7OworMDk4MTtCRU5HQUxJIFNJR04gQ0FORFJBQklORFU7TW47MDtOU007Ozs7O047Ozs7OworMDk4MjtCRU5HQUxJIFNJR04gQU5VU1ZBUkE7TWM7MDtMOzs7OztOOzs7OzsKKzA5ODM7QkVOR0FMSSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzA5ODU7QkVOR0FMSSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMDk4NjtCRU5HQUxJIExFVFRFUiBBQTtMbzswO0w7Ozs7O047Ozs7OworMDk4NztCRU5HQUxJIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg4O0JFTkdBTEkgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTg5O0JFTkdBTEkgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzA5OEE7QkVOR0FMSSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzA5OEI7QkVOR0FMSSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOThDO0JFTkdBTEkgTEVUVEVSIFZPQ0FMSUMgTDtMbzswO0w7Ozs7O047Ozs7OworMDk4RjtCRU5HQUxJIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTkwO0JFTkdBTEkgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTkzO0JFTkdBTEkgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzA5OTQ7QkVOR0FMSSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzA5OTU7QkVOR0FMSSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OTY7QkVOR0FMSSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk3O0JFTkdBTEkgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTk4O0JFTkdBTEkgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMDk5OTtCRU5HQUxJIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OUE7QkVOR0FMSSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzA5OUI7QkVOR0FMSSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlDO0JFTkdBTEkgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOTlEO0JFTkdBTEkgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMDk5RTtCRU5HQUxJIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzA5OUY7QkVOR0FMSSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUEwO0JFTkdBTEkgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTE7QkVOR0FMSSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUEyO0JFTkdBTEkgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTM7QkVOR0FMSSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE0O0JFTkdBTEkgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUE1O0JFTkdBTEkgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBNjtCRU5HQUxJIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMDlBNztCRU5HQUxJIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QTg7QkVOR0FMSSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUE7QkVOR0FMSSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzA5QUI7QkVOR0FMSSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFDO0JFTkdBTEkgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUFEO0JFTkdBTEkgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMDlBRTtCRU5HQUxJIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMDlBRjtCRU5HQUxJIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMDlCMDtCRU5HQUxJIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMDlCMjtCRU5HQUxJIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMDlCNjtCRU5HQUxJIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzA5Qjc7QkVOR0FMSSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUI4O0JFTkdBTEkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUI5O0JFTkdBTEkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUJDO0JFTkdBTEkgU0lHTiBOVUtUQTtNbjs3O05TTTs7Ozs7Tjs7Ozs7CiswOUJEO0JFTkdBTEkgU0lHTiBBVkFHUkFIQTtMbzswO0w7Ozs7O047Ozs7OworMDlCRTtCRU5HQUxJIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzA5QkY7QkVOR0FMSSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzA5QzA7QkVOR0FMSSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOUMxO0JFTkdBTEkgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5QzI7QkVOR0FMSSBWT1dFTCBTSUdOIFVVO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5QzM7QkVOR0FMSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOUM0O0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01uOzA7TlNNOzs7OztOOzs7OzsKKzA5Qzc7QkVOR0FMSSBWT1dFTCBTSUdOIEU7TWM7MDtMOzs7OztOOzs7OzsKKzA5Qzg7QkVOR0FMSSBWT1dFTCBTSUdOIEFJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswOUNCO0JFTkdBTEkgVk9XRUwgU0lHTiBPO01jOzA7TDswOUM3IDA5QkU7Ozs7Tjs7Ozs7CiswOUNDO0JFTkdBTEkgVk9XRUwgU0lHTiBBVTtNYzswO0w7MDlDNyAwOUQ3Ozs7O047Ozs7OworMDlDRDtCRU5HQUxJIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzA5Q0U7QkVOR0FMSSBMRVRURVIgS0hBTkRBIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUQ3O0JFTkdBTEkgQVUgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzA5REM7QkVOR0FMSSBMRVRURVIgUlJBO0xvOzA7TDswOUExIDA5QkM7Ozs7Tjs7Ozs7CiswOUREO0JFTkdBTEkgTEVUVEVSIFJIQTtMbzswO0w7MDlBMiAwOUJDOzs7O047Ozs7OworMDlERjtCRU5HQUxJIExFVFRFUiBZWUE7TG87MDtMOzA5QUYgMDlCQzs7OztOOzs7OzsKKzA5RTA7QkVOR0FMSSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMDlFMTtCRU5HQUxJIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswOUUyO0JFTkdBTEkgVk9XRUwgU0lHTiBWT0NBTElDIEw7TW47MDtOU007Ozs7O047Ozs7OworMDlFMztCRU5HQUxJIFZPV0VMIFNJR04gVk9DQUxJQyBMTDtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswOUU2O0JFTkdBTEkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMDlFNztCRU5HQUxJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMDlFODtCRU5HQUxJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMDlFOTtCRU5HQUxJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswOUVBO0JFTkdBTEkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMDlFQjtCRU5HQUxJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzA5RUM7QkVOR0FMSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzA5RUQ7QkVOR0FMSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMDlFRTtCRU5HQUxJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswOUVGO0JFTkdBTEkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMDlGMDtCRU5HQUxJIExFVFRFUiBSQSBXSVRIIE1JRERMRSBESUFHT05BTDtMbzswO0w7Ozs7O047O0Fzc2FtZXNlOzs7CiswOUYxO0JFTkdBTEkgTEVUVEVSIFJBIFdJVEggTE9XRVIgRElBR09OQUw7TG87MDtMOzs7OztOO0JFTkdBTEkgTEVUVEVSIFZBIFdJVEggTE9XRVIgRElBR09OQUw7QXNzYW1lc2U7OzsKKzA5RjI7QkVOR0FMSSBSVVBFRSBNQVJLO1NjOzA7RVQ7Ozs7O047Ozs7OworMDlGMztCRU5HQUxJIFJVUEVFIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CiswOUY0O0JFTkdBTEkgQ1VSUkVOQ1kgTlVNRVJBVE9SIE9ORTtObzswO0w7Ozs7MTtOOzs7OzsKKzA5RjU7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgVFdPO05vOzA7TDs7OzsyO047Ozs7OworMDlGNjtCRU5HQUxJIENVUlJFTkNZIE5VTUVSQVRPUiBUSFJFRTtObzswO0w7Ozs7MztOOzs7OzsKKzA5Rjc7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgRk9VUjtObzswO0w7Ozs7NDtOOzs7OzsKKzA5Rjg7QkVOR0FMSSBDVVJSRU5DWSBOVU1FUkFUT1IgT05FIExFU1MgVEhBTiBUSEUgREVOT01JTkFUT1I7Tm87MDtMOzs7OztOOzs7OzsKKzA5Rjk7QkVOR0FMSSBDVVJSRU5DWSBERU5PTUlOQVRPUiBTSVhURUVOO05vOzA7TDs7OzsxNjtOOzs7OzsKKzA5RkE7QkVOR0FMSSBJU1NIQVI7U287MDtMOzs7OztOOzs7OzsKKzBBMDE7R1VSTVVLSEkgU0lHTiBBREFLIEJJTkRJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBMDI7R1VSTVVLSEkgU0lHTiBCSU5ESTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTAzO0dVUk1VS0hJIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEEwNTtHVVJNVUtISSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEEwNjtHVVJNVUtISSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBBMDc7R1VSTVVLSEkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBBMDg7R1VSTVVLSEkgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTA5O0dVUk1VS0hJIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTBBO0dVUk1VS0hJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEEwRjtHVVJNVUtISSBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBBMTA7R1VSTVVLSEkgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTEzO0dVUk1VS0hJIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEExNDtHVVJNVUtISSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBBMTU7R1VSTVVLSEkgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE2O0dVUk1VS0hJIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMTc7R1VSTVVLSEkgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTE4O0dVUk1VS0hJIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMTk7R1VSTVVLSEkgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEExQTtHVVJNVUtISSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMUI7R1VSTVVLSEkgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEExQztHVVJNVUtISSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMUQ7R1VSTVVLSEkgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEExRTtHVVJNVUtISSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTFGO0dVUk1VS0hJIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjA7R1VSTVVLSEkgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMjE7R1VSTVVLSEkgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEEyMjtHVVJNVUtISSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyMztHVVJNVUtISSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI0O0dVUk1VS0hJIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEEyNTtHVVJNVUtISSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI2O0dVUk1VS0hJIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEEyNztHVVJNVUtISSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTI4O0dVUk1VS0hJIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEEyQTtHVVJNVUtISSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkI7R1VSTVVLSEkgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyQztHVVJNVUtISSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkQ7R1VSTVVLSEkgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMEEyRTtHVVJNVUtISSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBBMkY7R1VSTVVLSEkgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTMwO0dVUk1VS0hJIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEEzMjtHVVJNVUtISSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzM7R1VSTVVLSEkgTEVUVEVSIExMQTtMbzswO0w7MEEzMiAwQTNDOzs7O047Ozs7OworMEEzNTtHVVJNVUtISSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBBMzY7R1VSTVVLSEkgTEVUVEVSIFNIQTtMbzswO0w7MEEzOCAwQTNDOzs7O047Ozs7OworMEEzODtHVVJNVUtISSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBBMzk7R1VSTVVLSEkgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTNDO0dVUk1VS0hJIFNJR04gTlVLVEE7TW47NztOU007Ozs7O047Ozs7OworMEEzRTtHVVJNVUtISSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTNGO0dVUk1VS0hJIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMEE0MDtHVVJNVUtISSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQTQxO0dVUk1VS0hJIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTQyO0dVUk1VS0hJIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMEE0NztHVVJNVUtISSBWT1dFTCBTSUdOIEVFO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNDg7R1VSTVVLSEkgVk9XRUwgU0lHTiBBSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTRCO0dVUk1VS0hJIFZPV0VMIFNJR04gT087TW47MDtOU007Ozs7O047Ozs7OworMEE0QztHVVJNVUtISSBWT1dFTCBTSUdOIEFVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNEQ7R1VSTVVLSEkgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMEE1OTtHVVJNVUtISSBMRVRURVIgS0hIQTtMbzswO0w7MEExNiAwQTNDOzs7O047Ozs7OworMEE1QTtHVVJNVUtISSBMRVRURVIgR0hIQTtMbzswO0w7MEExNyAwQTNDOzs7O047Ozs7OworMEE1QjtHVVJNVUtISSBMRVRURVIgWkE7TG87MDtMOzBBMUMgMEEzQzs7OztOOzs7OzsKKzBBNUM7R1VSTVVLSEkgTEVUVEVSIFJSQTtMbzswO0w7Ozs7O047Ozs7OworMEE1RTtHVVJNVUtISSBMRVRURVIgRkE7TG87MDtMOzBBMkIgMEEzQzs7OztOOzs7OzsKKzBBNjY7R1VSTVVLSEkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEE2NztHVVJNVUtISSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBBNjg7R1VSTVVLSEkgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQTY5O0dVUk1VS0hJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQTZBO0dVUk1VS0hJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBBNkI7R1VSTVVLSEkgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEE2QztHVVJNVUtISSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBBNkQ7R1VSTVVLSEkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBBNkU7R1VSTVVLSEkgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBBNkY7R1VSTVVLSEkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEE3MDtHVVJNVUtISSBUSVBQSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTcxO0dVUk1VS0hJIEFEREFLO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBNzI7R1VSTVVLSEkgSVJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTczO0dVUk1VS0hJIFVSQTtMbzswO0w7Ozs7O047Ozs7OworMEE3NDtHVVJNVUtISSBFSyBPTktBUjtMbzswO0w7Ozs7O047Ozs7OworMEE4MTtHVUpBUkFUSSBTSUdOIENBTkRSQUJJTkRVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBODI7R1VKQVJBVEkgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQTgzO0dVSkFSQVRJIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMEE4NTtHVUpBUkFUSSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEE4NjtHVUpBUkFUSSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBBODc7R1VKQVJBVEkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBBODg7R1VKQVJBVEkgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTg5O0dVSkFSQVRJIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQThBO0dVSkFSQVRJIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEE4QjtHVUpBUkFUSSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQThDO0dVSkFSQVRJIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzBBOEQ7R1VKQVJBVEkgVk9XRUwgQ0FORFJBIEU7TG87MDtMOzs7OztOOzs7OzsKKzBBOEY7R1VKQVJBVEkgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzBBOTA7R1VKQVJBVEkgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTkxO0dVSkFSQVRJIFZPV0VMIENBTkRSQSBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTkzO0dVSkFSQVRJIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTk0O0dVSkFSQVRJIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEE5NTtHVUpBUkFUSSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzBBOTY7R1VKQVJBVEkgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEE5NztHVUpBUkFUSSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBBOTg7R1VKQVJBVEkgTEVUVEVSIEdIQTtMbzswO0w7Ozs7O047Ozs7OworMEE5OTtHVUpBUkFUSSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlBO0dVSkFSQVRJIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEE5QjtHVUpBUkFUSSBMRVRURVIgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlDO0dVSkFSQVRJIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEE5RDtHVUpBUkFUSSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQTlFO0dVSkFSQVRJIExFVFRFUiBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzBBOUY7R1VKQVJBVEkgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMEFBMDtHVUpBUkFUSSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEFBMTtHVUpBUkFUSSBMRVRURVIgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUEyO0dVSkFSQVRJIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUEzO0dVSkFSQVRJIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTQ7R1VKQVJBVEkgTEVUVEVSIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUE1O0dVSkFSQVRJIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTY7R1VKQVJBVEkgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUE3O0dVSkFSQVRJIExFVFRFUiBESEE7TG87MDtMOzs7OztOOzs7OzsKKzBBQTg7R1VKQVJBVEkgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFBO0dVSkFSQVRJIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEFBQjtHVUpBUkFUSSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFDO0dVSkFSQVRJIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEFBRDtHVUpBUkFUSSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUFFO0dVSkFSQVRJIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMEFBRjtHVUpBUkFUSSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBBQjA7R1VKQVJBVEkgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUIyO0dVSkFSQVRJIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEFCMztHVUpBUkFUSSBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI1O0dVSkFSQVRJIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEFCNjtHVUpBUkFUSSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI3O0dVSkFSQVRJIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBBQjg7R1VKQVJBVEkgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUI5O0dVSkFSQVRJIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEFCQztHVUpBUkFUSSBTSUdOIE5VS1RBO01uOzc7TlNNOzs7OztOOzs7OzsKKzBBQkQ7R1VKQVJBVEkgU0lHTiBBVkFHUkFIQTtMbzswO0w7Ozs7O047Ozs7OworMEFCRTtHVUpBUkFUSSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQUJGO0dVSkFSQVRJIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMEFDMDtHVUpBUkFUSSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQUMxO0dVSkFSQVRJIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUMyO0dVSkFSQVRJIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMEFDMztHVUpBUkFUSSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUM0O0dVSkFSQVRJIFZPV0VMIFNJR04gVk9DQUxJQyBSUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQUM1O0dVSkFSQVRJIFZPV0VMIFNJR04gQ0FORFJBIEU7TW47MDtOU007Ozs7O047Ozs7OworMEFDNztHVUpBUkFUSSBWT1dFTCBTSUdOIEU7TW47MDtOU007Ozs7O047Ozs7OworMEFDODtHVUpBUkFUSSBWT1dFTCBTSUdOIEFJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBQzk7R1VKQVJBVEkgVk9XRUwgU0lHTiBDQU5EUkEgTztNYzswO0w7Ozs7O047Ozs7OworMEFDQjtHVUpBUkFUSSBWT1dFTCBTSUdOIE87TWM7MDtMOzs7OztOOzs7OzsKKzBBQ0M7R1VKQVJBVEkgVk9XRUwgU0lHTiBBVTtNYzswO0w7Ozs7O047Ozs7OworMEFDRDtHVUpBUkFUSSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswQUQwO0dVSkFSQVRJIE9NO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUUwO0dVSkFSQVRJIExFVFRFUiBWT0NBTElDIFJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUUxO0dVSkFSQVRJIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQUUyO0dVSkFSQVRJIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBRTM7R1VKQVJBVEkgVk9XRUwgU0lHTiBWT0NBTElDIExMO01uOzA7TlNNOzs7OztOOzs7OzsKKzBBRTY7R1VKQVJBVEkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEFFNztHVUpBUkFUSSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBBRTg7R1VKQVJBVEkgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQUU5O0dVSkFSQVRJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQUVBO0dVSkFSQVRJIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBBRUI7R1VKQVJBVEkgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEFFQztHVUpBUkFUSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBBRUQ7R1VKQVJBVEkgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBBRUU7R1VKQVJBVEkgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBBRUY7R1VKQVJBVEkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEFGMTtHVUpBUkFUSSBSVVBFRSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMEIwMTtPUklZQSBTSUdOIENBTkRSQUJJTkRVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCMDI7T1JJWUEgU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMEIwMztPUklZQSBTSUdOIFZJU0FSR0E7TWM7MDtMOzs7OztOOzs7OzsKKzBCMDU7T1JJWUEgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMDY7T1JJWUEgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjA3O09SSVlBIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjA4O09SSVlBIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEIwOTtPUklZQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEIwQTtPUklZQSBMRVRURVIgVVU7TG87MDtMOzs7OztOOzs7OzsKKzBCMEI7T1JJWUEgTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMEIwQztPUklZQSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjBGO09SSVlBIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjEwO09SSVlBIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEIxMztPUklZQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMEIxNDtPUklZQSBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzBCMTU7T1JJWUEgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE2O09SSVlBIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMTc7T1JJWUEgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjE4O09SSVlBIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMTk7T1JJWUEgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEIxQTtPUklZQSBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzBCMUI7T1JJWUEgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEIxQztPUklZQSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMUQ7T1JJWUEgTEVUVEVSIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMEIxRTtPUklZQSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjFGO09SSVlBIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjA7T1JJWUEgTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMjE7T1JJWUEgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEIyMjtPUklZQSBMRVRURVIgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyMztPUklZQSBMRVRURVIgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI0O09SSVlBIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEIyNTtPUklZQSBMRVRURVIgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI2O09SSVlBIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMEIyNztPUklZQSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjI4O09SSVlBIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMEIyQTtPUklZQSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkI7T1JJWUEgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyQztPUklZQSBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkQ7T1JJWUEgTEVUVEVSIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMEIyRTtPUklZQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBCMkY7T1JJWUEgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjMwO09SSVlBIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEIzMjtPUklZQSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzM7T1JJWUEgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMEIzNTtPUklZQSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBCMzY7T1JJWUEgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEIzNztPUklZQSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjM4O09SSVlBIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEIzOTtPUklZQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCM0M7T1JJWUEgU0lHTiBOVUtUQTtNbjs3O05TTTs7Ozs7Tjs7Ozs7CiswQjNEO09SSVlBIFNJR04gQVZBR1JBSEE7TG87MDtMOzs7OztOOzs7OzsKKzBCM0U7T1JJWUEgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMEIzRjtPUklZQSBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMEI0MDtPUklZQSBWT1dFTCBTSUdOIElJO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQjQxO09SSVlBIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjQyO09SSVlBIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMEI0MztPUklZQSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjQ3O09SSVlBIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMEI0ODtPUklZQSBWT1dFTCBTSUdOIEFJO01jOzA7TDswQjQ3IDBCNTY7Ozs7Tjs7Ozs7CiswQjRCO09SSVlBIFZPV0VMIFNJR04gTztNYzswO0w7MEI0NyAwQjNFOzs7O047Ozs7OworMEI0QztPUklZQSBWT1dFTCBTSUdOIEFVO01jOzA7TDswQjQ3IDBCNTc7Ozs7Tjs7Ozs7CiswQjREO09SSVlBIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBCNTY7T1JJWUEgQUkgTEVOR1RIIE1BUks7TW47MDtOU007Ozs7O047Ozs7OworMEI1NztPUklZQSBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMEI1QztPUklZQSBMRVRURVIgUlJBO0xvOzA7TDswQjIxIDBCM0M7Ozs7Tjs7Ozs7CiswQjVEO09SSVlBIExFVFRFUiBSSEE7TG87MDtMOzBCMjIgMEIzQzs7OztOOzs7OzsKKzBCNUY7T1JJWUEgTEVUVEVSIFlZQTtMbzswO0w7Ozs7O047Ozs7OworMEI2MDtPUklZQSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMEI2MTtPUklZQSBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMEI2NjtPUklZQSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswQjY3O09SSVlBIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEI2ODtPUklZQSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzBCNjk7T1JJWUEgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBCNkE7T1JJWUEgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEI2QjtPUklZQSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CiswQjZDO09SSVlBIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEI2RDtPUklZQSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEI2RTtPUklZQSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMEI2RjtPUklZQSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswQjcwO09SSVlBIElTU0hBUjtTbzswO0w7Ozs7O047Ozs7OworMEI3MTtPUklZQSBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzBCODI7VEFNSUwgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQjgzO1RBTUlMIFNJR04gVklTQVJHQTtMbzswO0w7Ozs7O047Ozs7OworMEI4NTtUQU1JTCBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEI4NjtUQU1JTCBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBCODc7VEFNSUwgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzBCODg7VEFNSUwgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjg5O1RBTUlMIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjhBO1RBTUlMIExFVFRFUiBVVTtMbzswO0w7Ozs7O047Ozs7OworMEI4RTtUQU1JTCBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEI4RjtUQU1JTCBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzBCOTA7VEFNSUwgTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjkyO1RBTUlMIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjkzO1RBTUlMIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMEI5NDtUQU1JTCBMRVRURVIgQVU7TG87MDtMOzBCOTIgMEJENzs7OztOOzs7OzsKKzBCOTU7VEFNSUwgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjk5O1RBTUlMIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBCOUE7VEFNSUwgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjlDO1RBTUlMIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEI5RTtUQU1JTCBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQjlGO1RBTUlMIExFVFRFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQTM7VEFNSUwgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMEJBNDtUQU1JTCBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzBCQTg7VEFNSUwgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkE5O1RBTUlMIExFVFRFUiBOTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkFBO1RBTUlMIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEJBRTtUQU1JTCBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBCQUY7VEFNSUwgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkIwO1RBTUlMIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMEJCMTtUQU1JTCBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkIyO1RBTUlMIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMEJCMztUQU1JTCBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI0O1RBTUlMIExFVFRFUiBMTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI1O1RBTUlMIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEJCNjtUQU1JTCBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI3O1RBTUlMIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBCQjg7VEFNSUwgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQkI5O1RBTUlMIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMEJCRTtUQU1JTCBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkJGO1RBTUlMIFZPV0VMIFNJR04gSTtNYzswO0w7Ozs7O047Ozs7OworMEJDMDtUQU1JTCBWT1dFTCBTSUdOIElJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBCQzE7VEFNSUwgVk9XRUwgU0lHTiBVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkMyO1RBTUlMIFZPV0VMIFNJR04gVVU7TWM7MDtMOzs7OztOOzs7OzsKKzBCQzY7VEFNSUwgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQkM3O1RBTUlMIFZPV0VMIFNJR04gRUU7TWM7MDtMOzs7OztOOzs7OzsKKzBCQzg7VEFNSUwgVk9XRUwgU0lHTiBBSTtNYzswO0w7Ozs7O047Ozs7OworMEJDQTtUQU1JTCBWT1dFTCBTSUdOIE87TWM7MDtMOzBCQzYgMEJCRTs7OztOOzs7OzsKKzBCQ0I7VEFNSUwgVk9XRUwgU0lHTiBPTztNYzswO0w7MEJDNyAwQkJFOzs7O047Ozs7OworMEJDQztUQU1JTCBWT1dFTCBTSUdOIEFVO01jOzA7TDswQkM2IDBCRDc7Ozs7Tjs7Ozs7CiswQkNEO1RBTUlMIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBCRDc7VEFNSUwgQVUgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBCRTY7VEFNSUwgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEJFNztUQU1JTCBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBCRTg7VEFNSUwgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQkU5O1RBTUlMIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQkVBO1RBTUlMIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBCRUI7VEFNSUwgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEJFQztUQU1JTCBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBCRUQ7VEFNSUwgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBCRUU7VEFNSUwgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBCRUY7VEFNSUwgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEJGMDtUQU1JTCBOVU1CRVIgVEVOO05vOzA7TDs7OzsxMDtOOzs7OzsKKzBCRjE7VEFNSUwgTlVNQkVSIE9ORSBIVU5EUkVEO05vOzA7TDs7OzsxMDA7Tjs7Ozs7CiswQkYyO1RBTUlMIE5VTUJFUiBPTkUgVEhPVVNBTkQ7Tm87MDtMOzs7OzEwMDA7Tjs7Ozs7CiswQkYzO1RBTUlMIERBWSBTSUdOO1NvOzA7T047Ozs7O047O05hYWw7OzsKKzBCRjQ7VEFNSUwgTU9OVEggU0lHTjtTbzswO09OOzs7OztOOztNYWF0aGFtOzs7CiswQkY1O1RBTUlMIFlFQVIgU0lHTjtTbzswO09OOzs7OztOOztWYXJ1ZGFtOzs7CiswQkY2O1RBTUlMIERFQklUIFNJR047U287MDtPTjs7Ozs7Tjs7UGF0cnU7OzsKKzBCRjc7VEFNSUwgQ1JFRElUIFNJR047U287MDtPTjs7Ozs7Tjs7VmFyYXZ1Ozs7CiswQkY4O1RBTUlMIEFTIEFCT1ZFIFNJR047U287MDtPTjs7Ozs7Tjs7TWVycGFkaTs7OworMEJGOTtUQU1JTCBSVVBFRSBTSUdOO1NjOzA7RVQ7Ozs7O047O1J1cGFpOzs7CiswQkZBO1RBTUlMIE5VTUJFUiBTSUdOO1NvOzA7T047Ozs7O047O0Vubjs7OworMEMwMTtURUxVR1UgU0lHTiBDQU5EUkFCSU5EVTtNYzswO0w7Ozs7O047Ozs7OworMEMwMjtURUxVR1UgU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMEMwMztURUxVR1UgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzA1O1RFTFVHVSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEMwNjtURUxVR1UgTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA3O1RFTFVHVSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEMwODtURUxVR1UgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzA5O1RFTFVHVSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEMwQTtURUxVR1UgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBCO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBDO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzBFO1RFTFVHVSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEMwRjtURUxVR1UgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzEwO1RFTFVHVSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBDMTI7VEVMVUdVIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzEzO1RFTFVHVSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBDMTQ7VEVMVUdVIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEMxNTtURUxVR1UgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE2O1RFTFVHVSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzE3O1RFTFVHVSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMTg7VEVMVUdVIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMTk7VEVMVUdVIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBDMUE7VEVMVUdVIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEMxQjtURUxVR1UgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEMxQztURUxVR1UgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFEO1RFTFVHVSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFFO1RFTFVHVSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzFGO1RFTFVHVSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzIwO1RFTFVHVSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyMTtURUxVR1UgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEMyMjtURUxVR1UgTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjM7VEVMVUdVIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMjQ7VEVMVUdVIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEMyNTtURUxVR1UgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyNjtURUxVR1UgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI3O1RFTFVHVSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzI4O1RFTFVHVSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkE7VEVMVUdVIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEMyQjtURUxVR1UgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEMyQztURUxVR1UgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJEO1RFTFVHVSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzJFO1RFTFVHVSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBDMkY7VEVMVUdVIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEMzMDtURUxVR1UgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzMxO1RFTFVHVSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzMyO1RFTFVHVSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzM7VEVMVUdVIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBDMzU7VEVMVUdVIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMEMzNjtURUxVR1UgTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEMzNztURUxVR1UgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMEMzODtURUxVR1UgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzM5O1RFTFVHVSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDM0U7VEVMVUdVIFZPV0VMIFNJR04gQUE7TW47MDtOU007Ozs7O047Ozs7OworMEMzRjtURUxVR1UgVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDNDA7VEVMVUdVIFZPV0VMIFNJR04gSUk7TW47MDtOU007Ozs7O047Ozs7OworMEM0MTtURUxVR1UgVk9XRUwgU0lHTiBVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQyO1RFTFVHVSBWT1dFTCBTSUdOIFVVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQzO1RFTFVHVSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNYzswO0w7Ozs7O047Ozs7OworMEM0NDtURUxVR1UgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzQ2O1RFTFVHVSBWT1dFTCBTSUdOIEU7TW47MDtOU007Ozs7O047Ozs7OworMEM0NztURUxVR1UgVk9XRUwgU0lHTiBFRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzQ4O1RFTFVHVSBWT1dFTCBTSUdOIEFJO01uOzA7TlNNOzBDNDYgMEM1Njs7OztOOzs7OzsKKzBDNEE7VEVMVUdVIFZPV0VMIFNJR04gTztNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQzRCO1RFTFVHVSBWT1dFTCBTSUdOIE9PO01uOzA7TlNNOzs7OztOOzs7OzsKKzBDNEM7VEVMVUdVIFZPV0VMIFNJR04gQVU7TW47MDtOU007Ozs7O047Ozs7OworMEM0RDtURUxVR1UgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMEM1NTtURUxVR1UgTEVOR1RIIE1BUks7TW47ODQ7TlNNOzs7OztOOzs7OzsKKzBDNTY7VEVMVUdVIEFJIExFTkdUSCBNQVJLO01uOzkxO05TTTs7Ozs7Tjs7Ozs7CiswQzYwO1RFTFVHVSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMEM2MTtURUxVR1UgTEVUVEVSIFZPQ0FMSUMgTEw7TG87MDtMOzs7OztOOzs7OzsKKzBDNjY7VEVMVUdVIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBDNjc7VEVMVUdVIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEM2ODtURUxVR1UgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswQzY5O1RFTFVHVSBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEM2QTtURUxVR1UgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEM2QjtURUxVR1UgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEM2QztURUxVR1UgRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswQzZEO1RFTFVHVSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEM2RTtURUxVR1UgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBDNkY7VEVMVUdVIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBDODI7S0FOTkFEQSBTSUdOIEFOVVNWQVJBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzgzO0tBTk5BREEgU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQzg1O0tBTk5BREEgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzBDODY7S0FOTkFEQSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzBDODc7S0FOTkFEQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEM4ODtLQU5OQURBIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMEM4OTtLQU5OQURBIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhBO0tBTk5BREEgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzhCO0tBTk5BREEgTEVUVEVSIFZPQ0FMSUMgUjtMbzswO0w7Ozs7O047Ozs7OworMEM4QztLQU5OQURBIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzBDOEU7S0FOTkFEQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEM4RjtLQU5OQURBIExFVFRFUiBFRTtMbzswO0w7Ozs7O047Ozs7OworMEM5MDtLQU5OQURBIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMEM5MjtLQU5OQURBIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzkzO0tBTk5BREEgTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk0O0tBTk5BREEgTEVUVEVSIEFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk1O0tBTk5BREEgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzk2O0tBTk5BREEgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMEM5NztLQU5OQURBIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMEM5ODtLQU5OQURBIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDOTk7S0FOTkFEQSBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlBO0tBTk5BREEgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlCO0tBTk5BREEgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEM5QztLQU5OQURBIExFVFRFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMEM5RDtLQU5OQURBIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDOUU7S0FOTkFEQSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQzlGO0tBTk5BREEgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMENBMDtLQU5OQURBIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0ExO0tBTk5BREEgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMENBMjtLQU5OQURBIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0EzO0tBTk5BREEgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMENBNDtLQU5OQURBIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMENBNTtLQU5OQURBIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTY7S0FOTkFEQSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBDQTc7S0FOTkFEQSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0E4O0tBTk5BREEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FBO0tBTk5BREEgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0FCO0tBTk5BREEgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMENBQztLQU5OQURBIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMENBRDtLQU5OQURBIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUU7S0FOTkFEQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBDQUY7S0FOTkFEQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjA7S0FOTkFEQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjE7S0FOTkFEQSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0IyO0tBTk5BREEgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0IzO0tBTk5BREEgTEVUVEVSIExMQTtMbzswO0w7Ozs7O047Ozs7OworMENCNTtLQU5OQURBIExFVFRFUiBWQTtMbzswO0w7Ozs7O047Ozs7OworMENCNjtLQU5OQURBIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBDQjc7S0FOTkFEQSBMRVRURVIgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I4O0tBTk5BREEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0I5O0tBTk5BREEgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0JDO0tBTk5BREEgU0lHTiBOVUtUQTtNbjs3O05TTTs7Ozs7Tjs7Ozs7CiswQ0JEO0tBTk5BREEgU0lHTiBBVkFHUkFIQTtMbzswO0w7Ozs7O047Ozs7OworMENCRTtLQU5OQURBIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzBDQkY7S0FOTkFEQSBWT1dFTCBTSUdOIEk7TW47MDtMOzs7OztOOzs7OzsKKzBDQzA7S0FOTkFEQSBWT1dFTCBTSUdOIElJO01jOzA7TDswQ0JGIDBDRDU7Ozs7Tjs7Ozs7CiswQ0MxO0tBTk5BREEgVk9XRUwgU0lHTiBVO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0MyO0tBTk5BREEgVk9XRUwgU0lHTiBVVTtNYzswO0w7Ozs7O047Ozs7OworMENDMztLQU5OQURBIFZPV0VMIFNJR04gVk9DQUxJQyBSO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0M0O0tBTk5BREEgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0M2O0tBTk5BREEgVk9XRUwgU0lHTiBFO01uOzA7TDs7Ozs7Tjs7Ozs7CiswQ0M3O0tBTk5BREEgVk9XRUwgU0lHTiBFRTtNYzswO0w7MENDNiAwQ0Q1Ozs7O047Ozs7OworMENDODtLQU5OQURBIFZPV0VMIFNJR04gQUk7TWM7MDtMOzBDQzYgMENENjs7OztOOzs7OzsKKzBDQ0E7S0FOTkFEQSBWT1dFTCBTSUdOIE87TWM7MDtMOzBDQzYgMENDMjs7OztOOzs7OzsKKzBDQ0I7S0FOTkFEQSBWT1dFTCBTSUdOIE9PO01jOzA7TDswQ0NBIDBDRDU7Ozs7Tjs7Ozs7CiswQ0NDO0tBTk5BREEgVk9XRUwgU0lHTiBBVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswQ0NEO0tBTk5BREEgU0lHTiBWSVJBTUE7TW47OTtOU007Ozs7O047Ozs7OworMENENTtLQU5OQURBIExFTkdUSCBNQVJLO01jOzA7TDs7Ozs7Tjs7Ozs7CiswQ0Q2O0tBTk5BREEgQUkgTEVOR1RIIE1BUks7TWM7MDtMOzs7OztOOzs7OzsKKzBDREU7S0FOTkFEQSBMRVRURVIgRkE7TG87MDtMOzs7OztOOzs7OzsKKzBDRTA7S0FOTkFEQSBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMENFMTtLQU5OQURBIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswQ0U2O0tBTk5BREEgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMENFNztLQU5OQURBIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMENFODtLQU5OQURBIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMENFOTtLQU5OQURBIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswQ0VBO0tBTk5BREEgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMENFQjtLQU5OQURBIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBDRUM7S0FOTkFEQSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBDRUQ7S0FOTkFEQSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMENFRTtLQU5OQURBIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswQ0VGO0tBTk5BREEgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEQwMjtNQUxBWUFMQU0gU0lHTiBBTlVTVkFSQTtNYzswO0w7Ozs7O047Ozs7OworMEQwMztNQUxBWUFMQU0gU0lHTiBWSVNBUkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDA1O01BTEFZQUxBTSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEQwNjtNQUxBWUFMQU0gTEVUVEVSIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDA3O01BTEFZQUxBTSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMEQwODtNQUxBWUFMQU0gTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDA5O01BTEFZQUxBTSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMEQwQTtNQUxBWUFMQU0gTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBCO01BTEFZQUxBTSBMRVRURVIgVk9DQUxJQyBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBDO01BTEFZQUxBTSBMRVRURVIgVk9DQUxJQyBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDBFO01BTEFZQUxBTSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMEQwRjtNQUxBWUFMQU0gTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDEwO01BTEFZQUxBTSBMRVRURVIgQUk7TG87MDtMOzs7OztOOzs7OzsKKzBEMTI7TUFMQVlBTEFNIExFVFRFUiBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDEzO01BTEFZQUxBTSBMRVRURVIgT087TG87MDtMOzs7OztOOzs7OzsKKzBEMTQ7TUFMQVlBTEFNIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMEQxNTtNQUxBWUFMQU0gTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE2O01BTEFZQUxBTSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDE3O01BTEFZQUxBTSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMTg7TUFMQVlBTEFNIExFVFRFUiBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMTk7TUFMQVlBTEFNIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMUE7TUFMQVlBTEFNIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEQxQjtNQUxBWUFMQU0gTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMEQxQztNQUxBWUFMQU0gTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFEO01BTEFZQUxBTSBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFFO01BTEFZQUxBTSBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDFGO01BTEFZQUxBTSBMRVRURVIgVFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDIwO01BTEFZQUxBTSBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyMTtNQUxBWUFMQU0gTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMEQyMjtNQUxBWUFMQU0gTEVUVEVSIERESEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjM7TUFMQVlBTEFNIExFVFRFUiBOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMjQ7TUFMQVlBTEFNIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEQyNTtNQUxBWUFMQU0gTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyNjtNQUxBWUFMQU0gTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI3O01BTEFZQUxBTSBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDI4O01BTEFZQUxBTSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkE7TUFMQVlBTEFNIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMEQyQjtNQUxBWUFMQU0gTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEQyQztNQUxBWUFMQU0gTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJEO01BTEFZQUxBTSBMRVRURVIgQkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDJFO01BTEFZQUxBTSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBEMkY7TUFMQVlBTEFNIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMEQzMDtNQUxBWUFMQU0gTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDMxO01BTEFZQUxBTSBMRVRURVIgUlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDMyO01BTEFZQUxBTSBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzM7TUFMQVlBTEFNIExFVFRFUiBMTEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzQ7TUFMQVlBTEFNIExFVFRFUiBMTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDM1O01BTEFZQUxBTSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzY7TUFMQVlBTEFNIExFVFRFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBEMzc7TUFMQVlBTEFNIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzBEMzg7TUFMQVlBTEFNIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMEQzOTtNQUxBWUFMQU0gTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDNFO01BTEFZQUxBTSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDNGO01BTEFZQUxBTSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKKzBENDA7TUFMQVlBTEFNIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzBENDE7TUFMQVlBTEFNIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRDQyO01BTEFZQUxBTSBWT1dFTCBTSUdOIFVVO01uOzA7TlNNOzs7OztOOzs7OzsKKzBENDM7TUFMQVlBTEFNIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7TlNNOzs7OztOOzs7OzsKKzBENDY7TUFMQVlBTEFNIFZPV0VMIFNJR04gRTtNYzswO0w7Ozs7O047Ozs7OworMEQ0NztNQUxBWUFMQU0gVk9XRUwgU0lHTiBFRTtNYzswO0w7Ozs7O047Ozs7OworMEQ0ODtNQUxBWUFMQU0gVk9XRUwgU0lHTiBBSTtNYzswO0w7Ozs7O047Ozs7OworMEQ0QTtNQUxBWUFMQU0gVk9XRUwgU0lHTiBPO01jOzA7TDswRDQ2IDBEM0U7Ozs7Tjs7Ozs7CiswRDRCO01BTEFZQUxBTSBWT1dFTCBTSUdOIE9PO01jOzA7TDswRDQ3IDBEM0U7Ozs7Tjs7Ozs7CiswRDRDO01BTEFZQUxBTSBWT1dFTCBTSUdOIEFVO01jOzA7TDswRDQ2IDBENTc7Ozs7Tjs7Ozs7CiswRDREO01BTEFZQUxBTSBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CiswRDU3O01BTEFZQUxBTSBBVSBMRU5HVEggTUFSSztNYzswO0w7Ozs7O047Ozs7OworMEQ2MDtNQUxBWUFMQU0gTEVUVEVSIFZPQ0FMSUMgUlI7TG87MDtMOzs7OztOOzs7OzsKKzBENjE7TUFMQVlBTEFNIExFVFRFUiBWT0NBTElDIExMO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDY2O01BTEFZQUxBTSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswRDY3O01BTEFZQUxBTSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzBENjg7TUFMQVlBTEFNIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEQ2OTtNQUxBWUFMQU0gRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBENkE7TUFMQVlBTEFNIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzBENkI7TUFMQVlBTEFNIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBENkM7TUFMQVlBTEFNIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEQ2RDtNQUxBWUFMQU0gRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzBENkU7TUFMQVlBTEFNIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRDZGO01BTEFZQUxBTSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRDgyO1NJTkhBTEEgU0lHTiBBTlVTVkFSQVlBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRDgzO1NJTkhBTEEgU0lHTiBWSVNBUkdBWUE7TWM7MDtMOzs7OztOOzs7OzsKKzBEODU7U0lOSEFMQSBMRVRURVIgQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDg2O1NJTkhBTEEgTEVUVEVSIEFBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEODc7U0lOSEFMQSBMRVRURVIgQUVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4ODtTSU5IQUxBIExFVFRFUiBBRUVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4OTtTSU5IQUxBIExFVFRFUiBJWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEE7U0lOSEFMQSBMRVRURVIgSUlZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4QjtTSU5IQUxBIExFVFRFUiBVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEM7U0lOSEFMQSBMRVRURVIgVVVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4RDtTSU5IQUxBIExFVFRFUiBJUlVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ4RTtTSU5IQUxBIExFVFRFUiBJUlVVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOEY7U0lOSEFMQSBMRVRURVIgSUxVWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOTA7U0lOSEFMQSBMRVRURVIgSUxVVVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDkxO1NJTkhBTEEgTEVUVEVSIEVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5MjtTSU5IQUxBIExFVFRFUiBFRVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDkzO1NJTkhBTEEgTEVUVEVSIEFJWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOTQ7U0lOSEFMQSBMRVRURVIgT1lBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRDk1O1NJTkhBTEEgTEVUVEVSIE9PWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOTY7U0lOSEFMQSBMRVRURVIgQVVZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5QTtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIEtBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUI7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgS0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5QztTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIEdBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUQ7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgR0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMEQ5RTtTSU5IQUxBIExFVFRFUiBLQU5UQUpBIE5BQVNJS1lBWUE7TG87MDtMOzs7OztOOzs7OzsKKzBEOUY7U0lOSEFMQSBMRVRURVIgU0FOWUFLQSBHQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREEwO1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgQ0FZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBMTtTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBDQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREEyO1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgSkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBMztTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBKQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREE0O1NJTkhBTEEgTEVUVEVSIFRBQUxVSkEgTkFBU0lLWUFZQTtMbzswO0w7Ozs7O047Ozs7OworMERBNTtTSU5IQUxBIExFVFRFUiBUQUFMVUpBIFNBTllPT0dBIE5BQUtTSUtZQVlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREE2O1NJTkhBTEEgTEVUVEVSIFNBTllBS0EgSkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBNztTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIFRUQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREE4O1NJTkhBTEEgTEVUVEVSIE1BSEFBUFJBQU5BIFRUQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREE5O1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgRERBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUE7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgRERBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUI7U0lOSEFMQSBMRVRURVIgTVVVUkRIQUpBIE5BWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUM7U0lOSEFMQSBMRVRURVIgU0FOWUFLQSBEREFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBRDtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIFRBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQUU7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgVEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERBRjtTSU5IQUxBIExFVFRFUiBBTFBBUFJBQU5BIERBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjA7U0lOSEFMQSBMRVRURVIgTUFIQUFQUkFBTkEgREFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCMTtTSU5IQUxBIExFVFRFUiBEQU5UQUpBIE5BWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjM7U0lOSEFMQSBMRVRURVIgU0FOWUFLQSBEQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREI0O1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgUEFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCNTtTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBQQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREI2O1NJTkhBTEEgTEVUVEVSIEFMUEFQUkFBTkEgQkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCNztTSU5IQUxBIExFVFRFUiBNQUhBQVBSQUFOQSBCQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREI4O1NJTkhBTEEgTEVUVEVSIE1BWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQjk7U0lOSEFMQSBMRVRURVIgQU1CQSBCQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREJBO1NJTkhBTEEgTEVUVEVSIFlBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQkI7U0lOSEFMQSBMRVRURVIgUkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERCRDtTSU5IQUxBIExFVFRFUiBEQU5UQUpBIExBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzA7U0lOSEFMQSBMRVRURVIgVkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERDMTtTSU5IQUxBIExFVFRFUiBUQUFMVUpBIFNBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzI7U0lOSEFMQSBMRVRURVIgTVVVUkRIQUpBIFNBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzM7U0lOSEFMQSBMRVRURVIgREFOVEFKQSBTQVlBTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswREM0O1NJTkhBTEEgTEVUVEVSIEhBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzU7U0lOSEFMQSBMRVRURVIgTVVVUkRIQUpBIExBWUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzBEQzY7U0lOSEFMQSBMRVRURVIgRkFZQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMERDQTtTSU5IQUxBIFNJR04gQUwtTEFLVU5BO01uOzk7TlNNOzs7OztOOzs7OzsKKzBEQ0Y7U0lOSEFMQSBWT1dFTCBTSUdOIEFFTEEtUElMTEE7TWM7MDtMOzs7OztOOzs7OzsKKzBERDA7U0lOSEFMQSBWT1dFTCBTSUdOIEtFVFRJIEFFREEtUElMTEE7TWM7MDtMOzs7OztOOzs7OzsKKzBERDE7U0lOSEFMQSBWT1dFTCBTSUdOIERJR0EgQUVEQS1QSUxMQTtNYzswO0w7Ozs7O047Ozs7OworMEREMjtTSU5IQUxBIFZPV0VMIFNJR04gS0VUVEkgSVMtUElMTEE7TW47MDtOU007Ozs7O047Ozs7OworMEREMztTSU5IQUxBIFZPV0VMIFNJR04gRElHQSBJUy1QSUxMQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswREQ0O1NJTkhBTEEgVk9XRUwgU0lHTiBLRVRUSSBQQUEtUElMTEE7TW47MDtOU007Ozs7O047Ozs7OworMERENjtTSU5IQUxBIFZPV0VMIFNJR04gRElHQSBQQUEtUElMTEE7TW47MDtOU007Ozs7O047Ozs7OworMEREODtTSU5IQUxBIFZPV0VMIFNJR04gR0FFVFRBLVBJTExBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswREQ5O1NJTkhBTEEgVk9XRUwgU0lHTiBLT01CVVZBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswRERBO1NJTkhBTEEgVk9XRUwgU0lHTiBESUdBIEtPTUJVVkE7TWM7MDtMOzBERDkgMERDQTs7OztOOzs7OzsKKzBEREI7U0lOSEFMQSBWT1dFTCBTSUdOIEtPTUJVIERFS0E7TWM7MDtMOzs7OztOOzs7OzsKKzBEREM7U0lOSEFMQSBWT1dFTCBTSUdOIEtPTUJVVkEgSEFBIEFFTEEtUElMTEE7TWM7MDtMOzBERDkgMERDRjs7OztOOzs7OzsKKzBEREQ7U0lOSEFMQSBWT1dFTCBTSUdOIEtPTUJVVkEgSEFBIERJR0EgQUVMQS1QSUxMQTtNYzswO0w7MEREQyAwRENBOzs7O047Ozs7OworMERERTtTSU5IQUxBIFZPV0VMIFNJR04gS09NQlVWQSBIQUEgR0FZQU5VS0lUVEE7TWM7MDtMOzBERDkgMERERjs7OztOOzs7OzsKKzBEREY7U0lOSEFMQSBWT1dFTCBTSUdOIEdBWUFOVUtJVFRBO01jOzA7TDs7Ozs7Tjs7Ozs7CiswREYyO1NJTkhBTEEgVk9XRUwgU0lHTiBESUdBIEdBRVRUQS1QSUxMQTtNYzswO0w7Ozs7O047Ozs7OworMERGMztTSU5IQUxBIFZPV0VMIFNJR04gRElHQSBHQVlBTlVLSVRUQTtNYzswO0w7Ozs7O047Ozs7OworMERGNDtTSU5IQUxBIFBVTkNUVUFUSU9OIEtVTkREQUxJWUE7UG87MDtMOzs7OztOOzs7OzsKKzBFMDE7VEhBSSBDSEFSQUNURVIgS08gS0FJO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLTyBLQUk7Ozs7CiswRTAyO1RIQUkgQ0hBUkFDVEVSIEtITyBLSEFJO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLSE8gS0hBSTs7OzsKKzBFMDM7VEhBSSBDSEFSQUNURVIgS0hPIEtIVUFUO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLSE8gS0hVQVQ7Ozs7CiswRTA0O1RIQUkgQ0hBUkFDVEVSIEtITyBLSFdBSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIV0FJOzs7OworMEUwNTtUSEFJIENIQVJBQ1RFUiBLSE8gS0hPTjtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgS0hPIEtIT047Ozs7CiswRTA2O1RIQUkgQ0hBUkFDVEVSIEtITyBSQUtIQU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBLSE8gUkFLSEFORzs7OzsKKzBFMDc7VEhBSSBDSEFSQUNURVIgTkdPIE5HVTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTkdPIE5HVTs7OzsKKzBFMDg7VEhBSSBDSEFSQUNURVIgQ0hPIENIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIENITyBDSEFOOzs7OworMEUwOTtUSEFJIENIQVJBQ1RFUiBDSE8gQ0hJTkc7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIENITyBDSElORzs7OzsKKzBFMEE7VEhBSSBDSEFSQUNURVIgQ0hPIENIQU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBDSE8gQ0hBTkc7Ozs7CiswRTBCO1RIQUkgQ0hBUkFDVEVSIFNPIFNPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBTTyBTTzs7OzsKKzBFMEM7VEhBSSBDSEFSQUNURVIgQ0hPIENIT0U7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIENITyBDSE9FOzs7OworMEUwRDtUSEFJIENIQVJBQ1RFUiBZTyBZSU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBZTyBZSU5HOzs7OworMEUwRTtUSEFJIENIQVJBQ1RFUiBETyBDSEFEQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgRE8gQ0hBREE7Ozs7CiswRTBGO1RIQUkgQ0hBUkFDVEVSIFRPIFBBVEFLO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUTyBQQVRBSzs7OzsKKzBFMTA7VEhBSSBDSEFSQUNURVIgVEhPIFRIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBUSEFOOzs7OworMEUxMTtUSEFJIENIQVJBQ1RFUiBUSE8gTkFOR01PTlRITztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIE5BTkdNT05USE87Ozs7CiswRTEyO1RIQUkgQ0hBUkFDVEVSIFRITyBQSFVUSEFPO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gUEhVVEhBTzs7OzsKKzBFMTM7VEhBSSBDSEFSQUNURVIgTk8gTkVOO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBOTyBORU47Ozs7CiswRTE0O1RIQUkgQ0hBUkFDVEVSIERPIERFSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgRE8gREVLOzs7OworMEUxNTtUSEFJIENIQVJBQ1RFUiBUTyBUQU87TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRPIFRBTzs7OzsKKzBFMTY7VEhBSSBDSEFSQUNURVIgVEhPIFRIVU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBUSE8gVEhVTkc7Ozs7CiswRTE3O1RIQUkgQ0hBUkFDVEVSIFRITyBUSEFIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFRITyBUSEFIQU47Ozs7CiswRTE4O1RIQUkgQ0hBUkFDVEVSIFRITyBUSE9ORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgVEhPIFRIT05HOzs7OworMEUxOTtUSEFJIENIQVJBQ1RFUiBOTyBOVTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTk8gTlU7Ozs7CiswRTFBO1RIQUkgQ0hBUkFDVEVSIEJPIEJBSU1BSTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgQk8gQkFJTUFJOzs7OworMEUxQjtUSEFJIENIQVJBQ1RFUiBQTyBQTEE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFBPIFBMQTs7OzsKKzBFMUM7VEhBSSBDSEFSQUNURVIgUEhPIFBIVU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBQSE8gUEhVTkc7Ozs7CiswRTFEO1RIQUkgQ0hBUkFDVEVSIEZPIEZBO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBGTyBGQTs7OzsKKzBFMUU7VEhBSSBDSEFSQUNURVIgUEhPIFBIQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFBITyBQSEFOOzs7OworMEUxRjtUSEFJIENIQVJBQ1RFUiBGTyBGQU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEZPIEZBTjs7OzsKKzBFMjA7VEhBSSBDSEFSQUNURVIgUEhPIFNBTVBIQU87TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFBITyBTQU1QSEFPOzs7OworMEUyMTtUSEFJIENIQVJBQ1RFUiBNTyBNQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTU8gTUE7Ozs7CiswRTIyO1RIQUkgQ0hBUkFDVEVSIFlPIFlBSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgWU8gWUFLOzs7OworMEUyMztUSEFJIENIQVJBQ1RFUiBSTyBSVUE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFJPIFJVQTs7OzsKKzBFMjQ7VEhBSSBDSEFSQUNURVIgUlU7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFJVOzs7OworMEUyNTtUSEFJIENIQVJBQ1RFUiBMTyBMSU5HO0xvOzA7TDs7Ozs7TjtUSEFJIExFVFRFUiBMTyBMSU5HOzs7OworMEUyNjtUSEFJIENIQVJBQ1RFUiBMVTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTFU7Ozs7CiswRTI3O1RIQUkgQ0hBUkFDVEVSIFdPIFdBRU47TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFdPIFdBRU47Ozs7CiswRTI4O1RIQUkgQ0hBUkFDVEVSIFNPIFNBTEE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFNPIFNBTEE7Ozs7CiswRTI5O1RIQUkgQ0hBUkFDVEVSIFNPIFJVU0k7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIFNPIFJVU0k7Ozs7CiswRTJBO1RIQUkgQ0hBUkFDVEVSIFNPIFNVQTtMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgU08gU1VBOzs7OworMEUyQjtUSEFJIENIQVJBQ1RFUiBITyBISVA7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIEhPIEhJUDs7OzsKKzBFMkM7VEhBSSBDSEFSQUNURVIgTE8gQ0hVTEE7TG87MDtMOzs7OztOO1RIQUkgTEVUVEVSIExPIENIVUxBOzs7OworMEUyRDtUSEFJIENIQVJBQ1RFUiBPIEFORztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgTyBBTkc7Ozs7CiswRTJFO1RIQUkgQ0hBUkFDVEVSIEhPIE5PS0hVSztMbzswO0w7Ozs7O047VEhBSSBMRVRURVIgSE8gTk9LIEhVSzs7OzsKKzBFMkY7VEhBSSBDSEFSQUNURVIgUEFJWUFOTk9JO0xvOzA7TDs7Ozs7TjtUSEFJIFBBSSBZQU4gTk9JO3BhaXlhbiBub2k7OzsKKzBFMzA7VEhBSSBDSEFSQUNURVIgU0FSQSBBO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBBOzs7OworMEUzMTtUSEFJIENIQVJBQ1RFUiBNQUkgSEFOLUFLQVQ7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIE1BSSBIQU4tQUtBVDs7OzsKKzBFMzI7VEhBSSBDSEFSQUNURVIgU0FSQSBBQTtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgQUE7Ozs7CiswRTMzO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQU07TG87MDtMOzxjb21wYXQ+IDBFNEQgMEUzMjs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEFNOzs7OworMEUzNDtUSEFJIENIQVJBQ1RFUiBTQVJBIEk7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgSTs7OzsKKzBFMzU7VEhBSSBDSEFSQUNURVIgU0FSQSBJSTtNbjswO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBJSTs7OzsKKzBFMzY7VEhBSSBDSEFSQUNURVIgU0FSQSBVRTtNbjswO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBVRTs7OzsKKzBFMzc7VEhBSSBDSEFSQUNURVIgU0FSQSBVRUU7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgVUVFO3NhcmEgdXVlOzs7CiswRTM4O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVTtNbjsxMDM7TlNNOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIFU7Ozs7CiswRTM5O1RIQUkgQ0hBUkFDVEVSIFNBUkEgVVU7TW47MTAzO05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBVVTs7OzsKKzBFM0E7VEhBSSBDSEFSQUNURVIgUEhJTlRIVTtNbjs5O05TTTs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gUEhJTlRIVTs7OzsKKzBFM0Y7VEhBSSBDVVJSRU5DWSBTWU1CT0wgQkFIVDtTYzswO0VUOzs7OztOO1RIQUkgQkFIVCBTSUdOOzs7OworMEU0MDtUSEFJIENIQVJBQ1RFUiBTQVJBIEU7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEU7Ozs7CiswRTQxO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUU7TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIEFFOzs7OworMEU0MjtUSEFJIENIQVJBQ1RFUiBTQVJBIE87TG87MDtMOzs7OztOO1RIQUkgVk9XRUwgU0lHTiBTQVJBIE87Ozs7CiswRTQzO1RIQUkgQ0hBUkFDVEVSIFNBUkEgQUkgTUFJTVVBTjtMbzswO0w7Ozs7O047VEhBSSBWT1dFTCBTSUdOIFNBUkEgTUFJIE1VQU47c2FyYSBhaSBtYWkgbXVhbjs7OworMEU0NDtUSEFJIENIQVJBQ1RFUiBTQVJBIEFJIE1BSU1BTEFJO0xvOzA7TDs7Ozs7TjtUSEFJIFZPV0VMIFNJR04gU0FSQSBNQUkgTUFMQUk7c2FyYSBhaSBtYWkgbWFsYWk7OzsKKzBFNDU7VEhBSSBDSEFSQUNURVIgTEFLS0hBTkdZQU87TG87MDtMOzs7OztOO1RIQUkgTEFLIEtIQU5HIFlBTztsYWtraGFuZyB5YW87OzsKKzBFNDY7VEhBSSBDSEFSQUNURVIgTUFJWUFNT0s7TG07MDtMOzs7OztOO1RIQUkgTUFJIFlBTU9LO21haSB5YW1vazs7OworMEU0NztUSEFJIENIQVJBQ1RFUiBNQUlUQUlLSFU7TW47MDtOU007Ozs7O047VEhBSSBWT1dFTCBTSUdOIE1BSSBUQUkgS0hVO21haSB0YWlraHU7OzsKKzBFNDg7VEhBSSBDSEFSQUNURVIgTUFJIEVLO01uOzEwNztOU007Ozs7O047VEhBSSBUT05FIE1BSSBFSzs7OzsKKzBFNDk7VEhBSSBDSEFSQUNURVIgTUFJIFRITztNbjsxMDc7TlNNOzs7OztOO1RIQUkgVE9ORSBNQUkgVEhPOzs7OworMEU0QTtUSEFJIENIQVJBQ1RFUiBNQUkgVFJJO01uOzEwNztOU007Ozs7O047VEhBSSBUT05FIE1BSSBUUkk7Ozs7CiswRTRCO1RIQUkgQ0hBUkFDVEVSIE1BSSBDSEFUVEFXQTtNbjsxMDc7TlNNOzs7OztOO1RIQUkgVE9ORSBNQUkgQ0hBVFRBV0E7Ozs7CiswRTRDO1RIQUkgQ0hBUkFDVEVSIFRIQU5USEFLSEFUO01uOzA7TlNNOzs7OztOO1RIQUkgVEhBTlRIQUtIQVQ7Ozs7CiswRTREO1RIQUkgQ0hBUkFDVEVSIE5JS0hBSElUO01uOzA7TlNNOzs7OztOO1RIQUkgTklLS0hBSElUO25pa2toYWhpdDs7OworMEU0RTtUSEFJIENIQVJBQ1RFUiBZQU1BS0tBTjtNbjswO05TTTs7Ozs7TjtUSEFJIFlBTUFLS0FOOzs7OworMEU0RjtUSEFJIENIQVJBQ1RFUiBGT05HTUFOO1BvOzA7TDs7Ozs7TjtUSEFJIEZPTkdNQU47Ozs7CiswRTUwO1RIQUkgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMEU1MTtUSEFJIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEU1MjtUSEFJIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMEU1MztUSEFJIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CiswRTU0O1RIQUkgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEU1NTtUSEFJIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzBFNTY7VEhBSSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzBFNTc7VEhBSSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEU1ODtUSEFJIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CiswRTU5O1RIQUkgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMEU1QTtUSEFJIENIQVJBQ1RFUiBBTkdLSEFOS0hVO1BvOzA7TDs7Ozs7TjtUSEFJIEFOR0tIQU5LSFU7Ozs7CiswRTVCO1RIQUkgQ0hBUkFDVEVSIEtIT01VVDtQbzswO0w7Ozs7O047VEhBSSBLSE9NVVQ7Ozs7CiswRTgxO0xBTyBMRVRURVIgS087TG87MDtMOzs7OztOOzs7OzsKKzBFODI7TEFPIExFVFRFUiBLSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU4NDtMQU8gTEVUVEVSIEtITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFODc7TEFPIExFVFRFUiBOR087TG87MDtMOzs7OztOOzs7OzsKKzBFODg7TEFPIExFVFRFUiBDTztMbzswO0w7Ozs7O047Ozs7OworMEU4QTtMQU8gTEVUVEVSIFNPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU4RDtMQU8gTEVUVEVSIE5ZTztMbzswO0w7Ozs7O047Ozs7OworMEU5NDtMQU8gTEVUVEVSIERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTk1O0xBTyBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzBFOTY7TEFPIExFVFRFUiBUSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU5NztMQU8gTEVUVEVSIFRITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFOTk7TEFPIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMEU5QTtMQU8gTEVUVEVSIEJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRTlCO0xBTyBMRVRURVIgUE87TG87MDtMOzs7OztOOzs7OzsKKzBFOUM7TEFPIExFVFRFUiBQSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEU5RDtMQU8gTEVUVEVSIEZPIFRBTTtMbzswO0w7Ozs7O047Ozs7OworMEU5RTtMQU8gTEVUVEVSIFBITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFOUY7TEFPIExFVFRFUiBGTyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUExO0xBTyBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKKzBFQTI7TEFPIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMEVBMztMQU8gTEVUVEVSIExPIExJTkc7TG87MDtMOzs7OztOOzs7OzsKKzBFQTU7TEFPIExFVFRFUiBMTyBMT09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUE3O0xBTyBMRVRURVIgV087TG87MDtMOzs7OztOOzs7OzsKKzBFQUE7TEFPIExFVFRFUiBTTyBTVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUFCO0xBTyBMRVRURVIgSE8gU1VORztMbzswO0w7Ozs7O047Ozs7OworMEVBRDtMQU8gTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzBFQUU7TEFPIExFVFRFUiBITyBUQU07TG87MDtMOzs7OztOOzs7OzsKKzBFQUY7TEFPIEVMTElQU0lTO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUIwO0xBTyBWT1dFTCBTSUdOIEE7TG87MDtMOzs7OztOOzs7OzsKKzBFQjE7TEFPIFZPV0VMIFNJR04gTUFJIEtBTjtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUIyO0xBTyBWT1dFTCBTSUdOIEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUIzO0xBTyBWT1dFTCBTSUdOIEFNO0xvOzA7TDs8Y29tcGF0PiAwRUNEIDBFQjI7Ozs7Tjs7Ozs7CiswRUI0O0xBTyBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMEVCNTtMQU8gVk9XRUwgU0lHTiBJSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUI2O0xBTyBWT1dFTCBTSUdOIFk7TW47MDtOU007Ozs7O047Ozs7OworMEVCNztMQU8gVk9XRUwgU0lHTiBZWTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRUI4O0xBTyBWT1dFTCBTSUdOIFU7TW47MTE4O05TTTs7Ozs7Tjs7Ozs7CiswRUI5O0xBTyBWT1dFTCBTSUdOIFVVO01uOzExODtOU007Ozs7O047Ozs7OworMEVCQjtMQU8gVk9XRUwgU0lHTiBNQUkgS09OO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQkM7TEFPIFNFTUlWT1dFTCBTSUdOIExPO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFQkQ7TEFPIFNFTUlWT1dFTCBTSUdOIE5ZTztMbzswO0w7Ozs7O047Ozs7OworMEVDMDtMQU8gVk9XRUwgU0lHTiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUMxO0xBTyBWT1dFTCBTSUdOIEVJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRUMyO0xBTyBWT1dFTCBTSUdOIE87TG87MDtMOzs7OztOOzs7OzsKKzBFQzM7TEFPIFZPV0VMIFNJR04gQVk7TG87MDtMOzs7OztOOzs7OzsKKzBFQzQ7TEFPIFZPV0VMIFNJR04gQUk7TG87MDtMOzs7OztOOzs7OzsKKzBFQzY7TEFPIEtPIExBO0xtOzA7TDs7Ozs7Tjs7Ozs7CiswRUM4O0xBTyBUT05FIE1BSSBFSztNbjsxMjI7TlNNOzs7OztOOzs7OzsKKzBFQzk7TEFPIFRPTkUgTUFJIFRITztNbjsxMjI7TlNNOzs7OztOOzs7OzsKKzBFQ0E7TEFPIFRPTkUgTUFJIFRJO01uOzEyMjtOU007Ozs7O047Ozs7OworMEVDQjtMQU8gVE9ORSBNQUkgQ0FUQVdBO01uOzEyMjtOU007Ozs7O047Ozs7OworMEVDQztMQU8gQ0FOQ0VMTEFUSU9OIE1BUks7TW47MDtOU007Ozs7O047Ozs7OworMEVDRDtMQU8gTklHR0FISVRBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBFRDA7TEFPIERJR0lUIFpFUk87TmQ7MDtMOzswOzA7MDtOOzs7OzsKKzBFRDE7TEFPIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMEVEMjtMQU8gRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswRUQzO0xBTyBESUdJVCBUSFJFRTtOZDswO0w7OzM7MzszO047Ozs7OworMEVENDtMQU8gRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMEVENTtMQU8gRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEVENjtMQU8gRElHSVQgU0lYO05kOzA7TDs7Njs2OzY7Tjs7Ozs7CiswRUQ3O0xBTyBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMEVEODtMQU8gRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBFRDk7TEFPIERJR0lUIE5JTkU7TmQ7MDtMOzs5Ozk7OTtOOzs7OzsKKzBFREM7TEFPIEhPIE5PO0xvOzA7TDs8Y29tcGF0PiAwRUFCIDBFOTk7Ozs7Tjs7Ozs7CiswRUREO0xBTyBITyBNTztMbzswO0w7PGNvbXBhdD4gMEVBQiAwRUExOzs7O047Ozs7OworMEYwMDtUSUJFVEFOIFNZTExBQkxFIE9NO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjAxO1RJQkVUQU4gTUFSSyBHVEVSIFlJRyBNR08gVFJVTkNBVEVEIEE7U287MDtMOzs7OztOOzt0ZXIgeWlrIGdvIGEgdGh1bmc7OzsKKzBGMDI7VElCRVRBTiBNQVJLIEdURVIgWUlHIE1HTyAtVU0gUk5BTSBCQ0FEIE1BO1NvOzA7TDs7Ozs7Tjs7dGVyIHlpayBnbyB3dW0gbmFtIGNoZXkgbWE7OzsKKzBGMDM7VElCRVRBTiBNQVJLIEdURVIgWUlHIE1HTyAtVU0gR1RFUiBUU0hFRyBNQTtTbzswO0w7Ozs7O047O3RlciB5aWsgZ28gd3VtIHRlciB0c2VrIG1hOzs7CiswRjA0O1RJQkVUQU4gTUFSSyBJTklUSUFMIFlJRyBNR08gTURVTiBNQTtQbzswO0w7Ozs7O047VElCRVRBTiBTSU5HTEUgT1JOQU1FTlQ7eWlrIGdvIGR1biBtYTs7OworMEYwNTtUSUJFVEFOIE1BUksgQ0xPU0lORyBZSUcgTUdPIFNHQUIgTUE7UG87MDtMOzs7OztOOzt5aWsgZ28ga2FiIG1hOzs7CiswRjA2O1RJQkVUQU4gTUFSSyBDQVJFVCBZSUcgTUdPIFBIVVIgU0hBRCBNQTtQbzswO0w7Ozs7O047O3lpayBnbyBwdXIgc2hleSBtYTs7OworMEYwNztUSUJFVEFOIE1BUksgWUlHIE1HTyBUU0hFRyBTSEFEIE1BO1BvOzA7TDs7Ozs7Tjs7eWlrIGdvIHRzZWsgc2hleSBtYTs7OworMEYwODtUSUJFVEFOIE1BUksgU0JSVUwgU0hBRDtQbzswO0w7Ozs7O047VElCRVRBTiBSR1lBTlNIQUQ7ZHJ1bCBzaGV5Ozs7CiswRjA5O1RJQkVUQU4gTUFSSyBCU0tVUiBZSUcgTUdPO1BvOzA7TDs7Ozs7Tjs7a3VyIHlpayBnbzs7OworMEYwQTtUSUJFVEFOIE1BUksgQktBLSBTSE9HIFlJRyBNR087UG87MDtMOzs7OztOOztrYSBzaG8geWlrIGdvOzs7CiswRjBCO1RJQkVUQU4gTUFSSyBJTlRFUlNZTExBQklDIFRTSEVHO1BvOzA7TDs7Ozs7TjtUSUJFVEFOIFRTRUc7dHNlazs7OworMEYwQztUSUJFVEFOIE1BUksgREVMSU1JVEVSIFRTSEVHIEJTVEFSO1BvOzA7TDs8bm9CcmVhaz4gMEYwQjs7OztOOzt0c2VrIHRhcjs7OworMEYwRDtUSUJFVEFOIE1BUksgU0hBRDtQbzswO0w7Ozs7O047VElCRVRBTiBTSEFEO3NoZXk7OzsKKzBGMEU7VElCRVRBTiBNQVJLIE5ZSVMgU0hBRDtQbzswO0w7Ozs7O047VElCRVRBTiBET1VCTEUgU0hBRDtueWkgc2hleTs7OworMEYwRjtUSUJFVEFOIE1BUksgVFNIRUcgU0hBRDtQbzswO0w7Ozs7O047O3RzZWsgc2hleTs7OworMEYxMDtUSUJFVEFOIE1BUksgTllJUyBUU0hFRyBTSEFEO1BvOzA7TDs7Ozs7Tjs7bnlpIHRzZWsgc2hleTs7OworMEYxMTtUSUJFVEFOIE1BUksgUklOIENIRU4gU1BVTkdTIFNIQUQ7UG87MDtMOzs7OztOO1RJQkVUQU4gUklOQ0hBTlBIVU5HU0hBRDtyaW5jaGVuIHB1bmcgc2hleTs7OworMEYxMjtUSUJFVEFOIE1BUksgUkdZQSBHUkFNIFNIQUQ7UG87MDtMOzs7OztOOztneWEgdHJhbSBzaGV5Ozs7CiswRjEzO1RJQkVUQU4gTUFSSyBDQVJFVCAtRFpVRCBSVEFHUyBNRSBMT05HIENBTjtTbzswO0w7Ozs7O047O2R6dSB0YSBtZSBsb25nIGNoZW47OzsKKzBGMTQ7VElCRVRBTiBNQVJLIEdURVIgVFNIRUc7U287MDtMOzs7OztOO1RJQkVUQU4gQ09NTUE7dGVyIHRzZWs7OzsKKzBGMTU7VElCRVRBTiBMT0dPVFlQRSBTSUdOIENIQUQgUlRBR1M7U287MDtMOzs7OztOOztjaGUgdGE7OzsKKzBGMTY7VElCRVRBTiBMT0dPVFlQRSBTSUdOIExIQUcgUlRBR1M7U287MDtMOzs7OztOOztobGFrIHRhOzs7CiswRjE3O1RJQkVUQU4gQVNUUk9MT0dJQ0FMIFNJR04gU0dSQSBHQ0FOIC1DSEFSIFJUQUdTO1NvOzA7TDs7Ozs7Tjs7dHJhY2hlbiBjaGFyIHRhOzs7CiswRjE4O1RJQkVUQU4gQVNUUk9MT0dJQ0FMIFNJR04gLUtIWVVEIFBBO01uOzIyMDtOU007Ozs7O047O2t5dSBwYTs7OworMEYxOTtUSUJFVEFOIEFTVFJPTE9HSUNBTCBTSUdOIFNET05HIFRTSFVHUztNbjsyMjA7TlNNOzs7OztOOztkb25nIHRzdTs7OworMEYxQTtUSUJFVEFOIFNJR04gUkRFTCBES0FSIEdDSUc7U287MDtMOzs7OztOOztkZWthIGNoaWc7OzsKKzBGMUI7VElCRVRBTiBTSUdOIFJERUwgREtBUiBHTllJUztTbzswO0w7Ozs7O047O2Rla2EgbnlpOzs7CiswRjFDO1RJQkVUQU4gU0lHTiBSREVMIERLQVIgR1NVTTtTbzswO0w7Ozs7O047O2Rla2Egc3VtOzs7CiswRjFEO1RJQkVUQU4gU0lHTiBSREVMIE5BRyBHQ0lHO1NvOzA7TDs7Ozs7Tjs7ZGVuYSBjaGlnOzs7CiswRjFFO1RJQkVUQU4gU0lHTiBSREVMIE5BRyBHTllJUztTbzswO0w7Ozs7O047O2RlbmEgbnlpOzs7CiswRjFGO1RJQkVUQU4gU0lHTiBSREVMIERLQVIgUkRFTCBOQUc7U287MDtMOzs7OztOOztkZWthIGRlbmE7OzsKKzBGMjA7VElCRVRBTiBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CiswRjIxO1RJQkVUQU4gRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CiswRjIyO1RJQkVUQU4gRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CiswRjIzO1RJQkVUQU4gRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzBGMjQ7VElCRVRBTiBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CiswRjI1O1RJQkVUQU4gRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMEYyNjtUSUJFVEFOIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMEYyNztUSUJFVEFOIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CiswRjI4O1RJQkVUQU4gRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzBGMjk7VElCRVRBTiBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CiswRjJBO1RJQkVUQU4gRElHSVQgSEFMRiBPTkU7Tm87MDtMOzs7OzEvMjtOOzs7OzsKKzBGMkI7VElCRVRBTiBESUdJVCBIQUxGIFRXTztObzswO0w7Ozs7My8yO047Ozs7OworMEYyQztUSUJFVEFOIERJR0lUIEhBTEYgVEhSRUU7Tm87MDtMOzs7OzUvMjtOOzs7OzsKKzBGMkQ7VElCRVRBTiBESUdJVCBIQUxGIEZPVVI7Tm87MDtMOzs7OzcvMjtOOzs7OzsKKzBGMkU7VElCRVRBTiBESUdJVCBIQUxGIEZJVkU7Tm87MDtMOzs7OzkvMjtOOzs7OzsKKzBGMkY7VElCRVRBTiBESUdJVCBIQUxGIFNJWDtObzswO0w7Ozs7MTEvMjtOOzs7OzsKKzBGMzA7VElCRVRBTiBESUdJVCBIQUxGIFNFVkVOO05vOzA7TDs7OzsxMy8yO047Ozs7OworMEYzMTtUSUJFVEFOIERJR0lUIEhBTEYgRUlHSFQ7Tm87MDtMOzs7OzE1LzI7Tjs7Ozs7CiswRjMyO1RJQkVUQU4gRElHSVQgSEFMRiBOSU5FO05vOzA7TDs7OzsxNy8yO047Ozs7OworMEYzMztUSUJFVEFOIERJR0lUIEhBTEYgWkVSTztObzswO0w7Ozs7LTEvMjtOOzs7OzsKKzBGMzQ7VElCRVRBTiBNQVJLIEJTRFVTIFJUQUdTO1NvOzA7TDs7Ozs7Tjs7ZHUgdGE7OzsKKzBGMzU7VElCRVRBTiBNQVJLIE5HQVMgQlpVTkcgTllJIFpMQTtNbjsyMjA7TlNNOzs7OztOO1RJQkVUQU4gSE9OT1JJRklDIFVOREVSIFJJTkc7bmdlIHp1bmcgbnlpIGRhOzs7CiswRjM2O1RJQkVUQU4gTUFSSyBDQVJFVCAtRFpVRCBSVEFHUyBCWkhJIE1JRyBDQU47U287MDtMOzs7OztOOztkenUgdGEgc2hpIG1pZyBjaGVuOzs7CiswRjM3O1RJQkVUQU4gTUFSSyBOR0FTIEJaVU5HIFNHT1IgUlRBR1M7TW47MjIwO05TTTs7Ozs7TjtUSUJFVEFOIFVOREVSIFJJTkc7bmdlIHp1bmcgZ29yIHRhOzs7CiswRjM4O1RJQkVUQU4gTUFSSyBDSEUgTUdPO1NvOzA7TDs7Ozs7Tjs7Y2hlIGdvOzs7CiswRjM5O1RJQkVUQU4gTUFSSyBUU0EgLVBIUlU7TW47MjE2O05TTTs7Ozs7TjtUSUJFVEFOIExFTklUSU9OIE1BUks7dHNhIHRydTs7OworMEYzQTtUSUJFVEFOIE1BUksgR1VHIFJUQUdTIEdZT047UHM7MDtPTjs7Ozs7Tjs7Z3VnIHRhIHl1bjs7OworMEYzQjtUSUJFVEFOIE1BUksgR1VHIFJUQUdTIEdZQVM7UGU7MDtPTjs7Ozs7Tjs7Z3VnIHRhIHllOzs7CiswRjNDO1RJQkVUQU4gTUFSSyBBTkcgS0hBTkcgR1lPTjtQczswO09OOzs7OztOO1RJQkVUQU4gTEVGVCBCUkFDRTthbmcga2FuZyB5dW47OzsKKzBGM0Q7VElCRVRBTiBNQVJLIEFORyBLSEFORyBHWUFTO1BlOzA7T047Ozs7O047VElCRVRBTiBSSUdIVCBCUkFDRTthbmcga2FuZyB5ZTs7OworMEYzRTtUSUJFVEFOIFNJR04gWUFSIFRTSEVTO01jOzA7TDs7Ozs7Tjs7eWFyIHRzZTs7OworMEYzRjtUSUJFVEFOIFNJR04gTUFSIFRTSEVTO01jOzA7TDs7Ozs7Tjs7bWFyIHRzZTs7OworMEY0MDtUSUJFVEFOIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMEY0MTtUSUJFVEFOIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNDI7VElCRVRBTiBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNDM7VElCRVRBTiBMRVRURVIgR0hBO0xvOzA7TDswRjQyIDBGQjc7Ozs7Tjs7Ozs7CiswRjQ0O1RJQkVUQU4gTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMEY0NTtUSUJFVEFOIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMEY0NjtUSUJFVEFOIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNDc7VElCRVRBTiBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzBGNDk7VElCRVRBTiBMRVRURVIgTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjRBO1RJQkVUQU4gTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047VElCRVRBTiBMRVRURVIgUkVWRVJTRUQgVEE7Ozs7CiswRjRCO1RJQkVUQU4gTEVUVEVSIFRUSEE7TG87MDtMOzs7OztOO1RJQkVUQU4gTEVUVEVSIFJFVkVSU0VEIFRIQTs7OzsKKzBGNEM7VElCRVRBTiBMRVRURVIgRERBO0xvOzA7TDs7Ozs7TjtUSUJFVEFOIExFVFRFUiBSRVZFUlNFRCBEQTs7OzsKKzBGNEQ7VElCRVRBTiBMRVRURVIgRERIQTtMbzswO0w7MEY0QyAwRkI3Ozs7O047Ozs7OworMEY0RTtUSUJFVEFOIExFVFRFUiBOTkE7TG87MDtMOzs7OztOO1RJQkVUQU4gTEVUVEVSIFJFVkVSU0VEIE5BOzs7OworMEY0RjtUSUJFVEFOIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMEY1MDtUSUJFVEFOIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTE7VElCRVRBTiBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTI7VElCRVRBTiBMRVRURVIgREhBO0xvOzA7TDswRjUxIDBGQjc7Ozs7Tjs7Ozs7CiswRjUzO1RJQkVUQU4gTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU0O1RJQkVUQU4gTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjU1O1RJQkVUQU4gTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMEY1NjtUSUJFVEFOIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMEY1NztUSUJFVEFOIExFVFRFUiBCSEE7TG87MDtMOzBGNTYgMEZCNzs7OztOOzs7OzsKKzBGNTg7VElCRVRBTiBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNTk7VElCRVRBTiBMRVRURVIgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjVBO1RJQkVUQU4gTEVUVEVSIFRTSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNUI7VElCRVRBTiBMRVRURVIgRFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjVDO1RJQkVUQU4gTEVUVEVSIERaSEE7TG87MDtMOzBGNUIgMEZCNzs7OztOOzs7OzsKKzBGNUQ7VElCRVRBTiBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNUU7VElCRVRBTiBMRVRURVIgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjVGO1RJQkVUQU4gTEVUVEVSIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjYwO1RJQkVUQU4gTEVUVEVSIC1BO0xvOzA7TDs7Ozs7TjtUSUJFVEFOIExFVFRFUiBBQTs7OzsKKzBGNjE7VElCRVRBTiBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjI7VElCRVRBTiBMRVRURVIgUkE7TG87MDtMOzs7OztOOzsqOzs7CiswRjYzO1RJQkVUQU4gTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiswRjY0O1RJQkVUQU4gTEVUVEVSIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMEY2NTtUSUJFVEFOIExFVFRFUiBTU0E7TG87MDtMOzs7OztOO1RJQkVUQU4gTEVUVEVSIFJFVkVSU0VEIFNIQTs7OzsKKzBGNjY7VElCRVRBTiBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzBGNjc7VElCRVRBTiBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzBGNjg7VElCRVRBTiBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMEY2OTtUSUJFVEFOIExFVFRFUiBLU1NBO0xvOzA7TDswRjQwIDBGQjU7Ozs7Tjs7Ozs7CiswRjZBO1RJQkVUQU4gTEVUVEVSIEZJWEVELUZPUk0gUkE7TG87MDtMOzs7OztOOzsqOzs7CiswRjcxO1RJQkVUQU4gVk9XRUwgU0lHTiBBQTtNbjsxMjk7TlNNOzs7OztOOzs7OzsKKzBGNzI7VElCRVRBTiBWT1dFTCBTSUdOIEk7TW47MTMwO05TTTs7Ozs7Tjs7Ozs7CiswRjczO1RJQkVUQU4gVk9XRUwgU0lHTiBJSTtNbjswO05TTTswRjcxIDBGNzI7Ozs7Tjs7Ozs7CiswRjc0O1RJQkVUQU4gVk9XRUwgU0lHTiBVO01uOzEzMjtOU007Ozs7O047Ozs7OworMEY3NTtUSUJFVEFOIFZPV0VMIFNJR04gVVU7TW47MDtOU007MEY3MSAwRjc0Ozs7O047Ozs7OworMEY3NjtUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBSO01uOzA7TlNNOzBGQjIgMEY4MDs7OztOOzs7OzsKKzBGNzc7VElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgUlI7TW47MDtOU007PGNvbXBhdD4gMEZCMiAwRjgxOzs7O047Ozs7OworMEY3ODtUSUJFVEFOIFZPV0VMIFNJR04gVk9DQUxJQyBMO01uOzA7TlNNOzBGQjMgMEY4MDs7OztOOzs7OzsKKzBGNzk7VElCRVRBTiBWT1dFTCBTSUdOIFZPQ0FMSUMgTEw7TW47MDtOU007PGNvbXBhdD4gMEZCMyAwRjgxOzs7O047Ozs7OworMEY3QTtUSUJFVEFOIFZPV0VMIFNJR04gRTtNbjsxMzA7TlNNOzs7OztOOzs7OzsKKzBGN0I7VElCRVRBTiBWT1dFTCBTSUdOIEVFO01uOzEzMDtOU007Ozs7O047VElCRVRBTiBWT1dFTCBTSUdOIEFJOzs7OworMEY3QztUSUJFVEFOIFZPV0VMIFNJR04gTztNbjsxMzA7TlNNOzs7OztOOzs7OzsKKzBGN0Q7VElCRVRBTiBWT1dFTCBTSUdOIE9PO01uOzEzMDtOU007Ozs7O047VElCRVRBTiBWT1dFTCBTSUdOIEFVOzs7OworMEY3RTtUSUJFVEFOIFNJR04gUkpFUyBTVSBOR0EgUk87TW47MDtOU007Ozs7O047VElCRVRBTiBBTlVTVkFSQTtqZSBzdSBuZ2Egcm87OzsKKzBGN0Y7VElCRVRBTiBTSUdOIFJOQU0gQkNBRDtNYzswO0w7Ozs7O047VElCRVRBTiBWSVNBUkdBO25hbSBjaGV5Ozs7CiswRjgwO1RJQkVUQU4gVk9XRUwgU0lHTiBSRVZFUlNFRCBJO01uOzEzMDtOU007Ozs7O047VElCRVRBTiBWT1dFTCBTSUdOIFNIT1JUIEk7Ozs7CiswRjgxO1RJQkVUQU4gVk9XRUwgU0lHTiBSRVZFUlNFRCBJSTtNbjswO05TTTswRjcxIDBGODA7Ozs7Tjs7Ozs7CiswRjgyO1RJQkVUQU4gU0lHTiBOWUkgWkxBIE5BQSBEQTtNbjsyMzA7TlNNOzs7OztOO1RJQkVUQU4gQ0FORFJBQklORFUgV0lUSCBPUk5BTUVOVDtueWkgZGEgbmEgZGE7OzsKKzBGODM7VElCRVRBTiBTSUdOIFNOQSBMREFOO01uOzIzMDtOU007Ozs7O047VElCRVRBTiBDQU5EUkFCSU5EVTtuYW4gZGU7OzsKKzBGODQ7VElCRVRBTiBNQVJLIEhBTEFOVEE7TW47OTtOU007Ozs7O047VElCRVRBTiBWSVJBTUE7Ozs7CiswRjg1O1RJQkVUQU4gTUFSSyBQQUxVVEE7UG87MDtMOzs7OztOO1RJQkVUQU4gQ0hVQ0hFTllJR0U7Ozs7CiswRjg2O1RJQkVUQU4gU0lHTiBMQ0kgUlRBR1M7TW47MjMwO05TTTs7Ozs7Tjs7amkgdGE7OzsKKzBGODc7VElCRVRBTiBTSUdOIFlBTkcgUlRBR1M7TW47MjMwO05TTTs7Ozs7Tjs7eWFuZyB0YTs7OworMEY4ODtUSUJFVEFOIFNJR04gTENFIFRTQSBDQU47TG87MDtMOzs7OztOOztjaGUgdHNhIGNoZW47OzsKKzBGODk7VElCRVRBTiBTSUdOIE1DSFUgQ0FOO0xvOzA7TDs7Ozs7Tjs7Y2h1IGNoZW47OzsKKzBGOEE7VElCRVRBTiBTSUdOIEdSVSBDQU4gUkdZSU5HUztMbzswO0w7Ozs7O047O3RydSBjaGVuIGdpbmc7OzsKKzBGOEI7VElCRVRBTiBTSUdOIEdSVSBNRUQgUkdZSU5HUztMbzswO0w7Ozs7O047O3RydSBtZSBnaW5nOzs7CiswRjkwO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBLQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjkxO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBLSEE7TW47MDtOU007Ozs7O047Ozs7OworMEY5MjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgR0E7TW47MDtOU007Ozs7O047Ozs7OworMEY5MztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgR0hBO01uOzA7TlNNOzBGOTIgMEZCNzs7OztOOzs7OzsKKzBGOTQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIE5HQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjk1O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBDQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjk2O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBDSEE7TW47MDtOU007Ozs7O047Ozs7OworMEY5NztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgSkE7TW47MDtOU007Ozs7O047Ozs7OworMEY5OTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTllBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOUE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRUQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjlCO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUVEhBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGOUM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEREQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjlEO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBEREhBO01uOzA7TlNNOzBGOUMgMEZCNzs7OztOOzs7OzsKKzBGOUU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIE5OQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRjlGO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkEwO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBUSEE7TW47MDtOU007Ozs7O047Ozs7OworMEZBMTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgREE7TW47MDtOU007Ozs7O047Ozs7OworMEZBMjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgREhBO01uOzA7TlNNOzBGQTEgMEZCNzs7OztOOzs7OzsKKzBGQTM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIE5BO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFBBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQTU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFBIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkE2O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBCQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkE3O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBCSEE7TW47MDtOU007MEZBNiAwRkI3Ozs7O047Ozs7OworMEZBODtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgTUE7TW47MDtOU007Ozs7O047Ozs7OworMEZBOTtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgVFNBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQUE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFRTSEE7TW47MDtOU007Ozs7O047Ozs7OworMEZBQjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgRFpBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQUM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIERaSEE7TW47MDtOU007MEZBQiAwRkI3Ozs7O047Ozs7OworMEZBRDtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgV0E7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQUU7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFpIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkFGO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBaQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkIwO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiAtQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkIxO1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBZQTtNbjswO05TTTs7Ozs7Tjs7Kjs7OworMEZCMjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgUkE7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQjM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIExBO01uOzA7TlNNOzs7OztOOzs7OzsKKzBGQjQ7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIFNIQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkI1O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBTU0E7TW47MDtOU007Ozs7O047Ozs7OworMEZCNjtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgU0E7TW47MDtOU007Ozs7O047Ozs7OworMEZCNztUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgSEE7TW47MDtOU007Ozs7O047Ozs7OworMEZCODtUSUJFVEFOIFNVQkpPSU5FRCBMRVRURVIgQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CiswRkI5O1RJQkVUQU4gU1VCSk9JTkVEIExFVFRFUiBLU1NBO01uOzA7TlNNOzBGOTAgMEZCNTs7OztOOzs7OzsKKzBGQkE7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEZJWEVELUZPUk0gV0E7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQkI7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEZJWEVELUZPUk0gWUE7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQkM7VElCRVRBTiBTVUJKT0lORUQgTEVUVEVSIEZJWEVELUZPUk0gUkE7TW47MDtOU007Ozs7O047Oyo7OzsKKzBGQkU7VElCRVRBTiBLVSBSVSBLSEE7U287MDtMOzs7OztOOztrdXJ1a2E7OzsKKzBGQkY7VElCRVRBTiBLVSBSVSBLSEEgQlpISSBNSUcgQ0FOO1NvOzA7TDs7Ozs7Tjs7a3VydWthIHNoaSBtaWsgY2hlbjs7OworMEZDMDtUSUJFVEFOIENBTlRJTExBVElPTiBTSUdOIEhFQVZZIEJFQVQ7U287MDtMOzs7OztOOzs7OzsKKzBGQzE7VElCRVRBTiBDQU5USUxMQVRJT04gU0lHTiBMSUdIVCBCRUFUO1NvOzA7TDs7Ozs7Tjs7Ozs7CiswRkMyO1RJQkVUQU4gQ0FOVElMTEFUSU9OIFNJR04gQ0FORyBURS1VO1NvOzA7TDs7Ozs7Tjs7Y2hhbmcgdHl1Ozs7CiswRkMzO1RJQkVUQU4gQ0FOVElMTEFUSU9OIFNJR04gU0JVQiAtQ0hBTDtTbzswO0w7Ozs7O047O2J1YiBjaGV5Ozs7CiswRkM0O1RJQkVUQU4gU1lNQk9MIERSSUwgQlU7U287MDtMOzs7OztOOztkcmlsYnU7OzsKKzBGQzU7VElCRVRBTiBTWU1CT0wgUkRPIFJKRTtTbzswO0w7Ozs7O047O2RvcmplOzs7CiswRkM2O1RJQkVUQU4gU1lNQk9MIFBBRE1BIEdEQU47TW47MjIwO05TTTs7Ozs7Tjs7cGVtYSBkZW47OzsKKzBGQzc7VElCRVRBTiBTWU1CT0wgUkRPIFJKRSBSR1lBIEdSQU07U287MDtMOzs7OztOOztkb3JqZSBneWEgZHJhbTs7OworMEZDODtUSUJFVEFOIFNZTUJPTCBQSFVSIFBBO1NvOzA7TDs7Ozs7Tjs7cGh1cmJhOzs7CiswRkM5O1RJQkVUQU4gU1lNQk9MIE5PUiBCVTtTbzswO0w7Ozs7O047O25vcmJ1Ozs7CiswRkNBO1RJQkVUQU4gU1lNQk9MIE5PUiBCVSBOWUlTIC1LSFlJTDtTbzswO0w7Ozs7O047O25vcmJ1IG55aSBraHlpOzs7CiswRkNCO1RJQkVUQU4gU1lNQk9MIE5PUiBCVSBHU1VNIC1LSFlJTDtTbzswO0w7Ozs7O047O25vcmJ1IHN1bSBraHlpOzs7CiswRkNDO1RJQkVUQU4gU1lNQk9MIE5PUiBCVSBCWkhJIC1LSFlJTDtTbzswO0w7Ozs7O047O25vcmJ1IHNoaSBraHlpOzs7CiswRkNGO1RJQkVUQU4gU0lHTiBSREVMIE5BRyBHU1VNO1NvOzA7TDs7Ozs7Tjs7ZGVuYSBzdW07OzsKKzBGRDA7VElCRVRBTiBNQVJLIEJTS0EtIFNIT0cgR0kgTUdPIFJHWUFOO1BvOzA7TDs7Ozs7Tjs7a2Egc2hvZyBnaSBnbyBneWVuOzs7CiswRkQxO1RJQkVUQU4gTUFSSyBNTllBTSBZSUcgR0kgTUdPIFJHWUFOO1BvOzA7TDs7Ozs7Tjs7bnlhbSB5aWcgZ2kgZ28gZ3llbjs7OworMTAwMDtNWUFOTUFSIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMTtNWUFOTUFSIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDI7TVlBTk1BUiBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMDM7TVlBTk1BUiBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0O01ZQU5NQVIgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTAwNTtNWUFOTUFSIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMTAwNjtNWUFOTUFSIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDc7TVlBTk1BUiBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDg7TVlBTk1BUiBMRVRURVIgSkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5O01ZQU5NQVIgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMTAwQTtNWUFOTUFSIExFVFRFUiBOTllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCO01ZQU5NQVIgTEVUVEVSIFRUQTtMbzswO0w7Ozs7O047Ozs7OworMTAwQztNWUFOTUFSIExFVFRFUiBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBEO01ZQU5NQVIgTEVUVEVSIEREQTtMbzswO0w7Ozs7O047Ozs7OworMTAwRTtNWUFOTUFSIExFVFRFUiBEREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBGO01ZQU5NQVIgTEVUVEVSIE5OQTtMbzswO0w7Ozs7O047Ozs7OworMTAxMDtNWUFOTUFSIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTAxMTtNWUFOTUFSIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTI7TVlBTk1BUiBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTM7TVlBTk1BUiBMRVRURVIgREhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDE0O01ZQU5NQVIgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDE1O01ZQU5NQVIgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDE2O01ZQU5NQVIgTEVUVEVSIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMTAxNztNWUFOTUFSIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTAxODtNWUFOTUFSIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMTk7TVlBTk1BUiBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzEwMUE7TVlBTk1BUiBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzEwMUI7TVlBTk1BUiBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMUM7TVlBTk1BUiBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMUQ7TVlBTk1BUiBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMUU7TVlBTk1BUiBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzEwMUY7TVlBTk1BUiBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMjA7TVlBTk1BUiBMRVRURVIgTExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDIxO01ZQU5NQVIgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMjM7TVlBTk1BUiBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTAyNDtNWUFOTUFSIExFVFRFUiBJSTtMbzswO0w7Ozs7O047Ozs7OworMTAyNTtNWUFOTUFSIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDI2O01ZQU5NQVIgTEVUVEVSIFVVO0xvOzA7TDsxMDI1IDEwMkU7Ozs7Tjs7Ozs7CisxMDI3O01ZQU5NQVIgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMjk7TVlBTk1BUiBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMTAyQTtNWUFOTUFSIExFVFRFUiBBVTtMbzswO0w7Ozs7O047Ozs7OworMTAyQztNWUFOTUFSIFZPV0VMIFNJR04gQUE7TWM7MDtMOzs7OztOOzs7OzsKKzEwMkQ7TVlBTk1BUiBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTAyRTtNWUFOTUFSIFZPV0VMIFNJR04gSUk7TW47MDtOU007Ozs7O047Ozs7OworMTAyRjtNWUFOTUFSIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMDMwO01ZQU5NQVIgVk9XRUwgU0lHTiBVVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMDMxO01ZQU5NQVIgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxMDMyO01ZQU5NQVIgVk9XRUwgU0lHTiBBSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMDM2O01ZQU5NQVIgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMDM3O01ZQU5NQVIgU0lHTiBET1QgQkVMT1c7TW47NztOU007Ozs7O047Ozs7OworMTAzODtNWUFOTUFSIFNJR04gVklTQVJHQTtNYzswO0w7Ozs7O047Ozs7OworMTAzOTtNWUFOTUFSIFNJR04gVklSQU1BO01uOzk7TlNNOzs7OztOOzs7OzsKKzEwNDA7TVlBTk1BUiBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CisxMDQxO01ZQU5NQVIgRElHSVQgT05FO05kOzA7TDs7MTsxOzE7Tjs7Ozs7CisxMDQyO01ZQU5NQVIgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CisxMDQzO01ZQU5NQVIgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzEwNDQ7TVlBTk1BUiBESUdJVCBGT1VSO05kOzA7TDs7NDs0OzQ7Tjs7Ozs7CisxMDQ1O01ZQU5NQVIgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMTA0NjtNWUFOTUFSIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMTA0NztNWUFOTUFSIERJR0lUIFNFVkVOO05kOzA7TDs7Nzs3Ozc7Tjs7Ozs7CisxMDQ4O01ZQU5NQVIgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzEwNDk7TVlBTk1BUiBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CisxMDRBO01ZQU5NQVIgU0lHTiBMSVRUTEUgU0VDVElPTjtQbzswO0w7Ozs7O047Ozs7OworMTA0QjtNWUFOTUFSIFNJR04gU0VDVElPTjtQbzswO0w7Ozs7O047Ozs7OworMTA0QztNWUFOTUFSIFNZTUJPTCBMT0NBVElWRTtQbzswO0w7Ozs7O047Ozs7OworMTA0RDtNWUFOTUFSIFNZTUJPTCBDT01QTEVURUQ7UG87MDtMOzs7OztOOzs7OzsKKzEwNEU7TVlBTk1BUiBTWU1CT0wgQUZPUkVNRU5USU9ORUQ7UG87MDtMOzs7OztOOzs7OzsKKzEwNEY7TVlBTk1BUiBTWU1CT0wgR0VOSVRJVkU7UG87MDtMOzs7OztOOzs7OzsKKzEwNTA7TVlBTk1BUiBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDUxO01ZQU5NQVIgTEVUVEVSIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMTA1MjtNWUFOTUFSIExFVFRFUiBWT0NBTElDIFI7TG87MDtMOzs7OztOOzs7OzsKKzEwNTM7TVlBTk1BUiBMRVRURVIgVk9DQUxJQyBSUjtMbzswO0w7Ozs7O047Ozs7OworMTA1NDtNWUFOTUFSIExFVFRFUiBWT0NBTElDIEw7TG87MDtMOzs7OztOOzs7OzsKKzEwNTU7TVlBTk1BUiBMRVRURVIgVk9DQUxJQyBMTDtMbzswO0w7Ozs7O047Ozs7OworMTA1NjtNWUFOTUFSIFZPV0VMIFNJR04gVk9DQUxJQyBSO01jOzA7TDs7Ozs7Tjs7Ozs7CisxMDU3O01ZQU5NQVIgVk9XRUwgU0lHTiBWT0NBTElDIFJSO01jOzA7TDs7Ozs7Tjs7Ozs7CisxMDU4O01ZQU5NQVIgVk9XRUwgU0lHTiBWT0NBTElDIEw7TW47MDtOU007Ozs7O047Ozs7OworMTA1OTtNWUFOTUFSIFZPV0VMIFNJR04gVk9DQUxJQyBMTDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMEEwO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMDA7CisxMEExO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEJBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDAxOworMTBBMjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBHQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQwMjsKKzEwQTM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgRE9OO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMDM7CisxMEE0O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEVOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMDQ7CisxMEE1O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFZJTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDA1OworMTBBNjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBaRU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQwNjsKKzEwQTc7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgVEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMDc7CisxMEE4O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIElOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMDg7CisxMEE5O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEtBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDA5OworMTBBQTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBMQVM7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQwQTsKKzEwQUI7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgTUFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMEI7CisxMEFDO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIE5BUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDBDOworMTBBRDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBPTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDBEOworMTBBRTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBQQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQwRTsKKzEwQUY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgWkhBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDBGOworMTBCMDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBSQUU7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxMDsKKzEwQjE7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgU0FOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMTE7CisxMEIyO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIFRBUjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDEyOworMTBCMztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBVTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDEzOworMTBCNDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBQSEFSO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMTQ7CisxMEI1O0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEtIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxNTsKKzEwQjY7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgR0hBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDE2OworMTBCNztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBRQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxNzsKKzEwQjg7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgU0hJTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDE4OworMTBCOTtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBDSElOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMTk7CisxMEJBO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIENBTjtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDFBOworMTBCQjtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBKSUw7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxQjsKKzEwQkM7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgQ0lMO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMUM7CisxMEJEO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIENIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxRDsKKzEwQkU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgWEFOO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMUU7CisxMEJGO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEpIQU47THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQxRjsKKzEwQzA7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSEFFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMjA7CisxMEMxO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhFO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMjE7CisxMEMyO0dFT1JHSUFOIENBUElUQUwgTEVUVEVSIEhJRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDIyOworMTBDMztHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBXRTtMdTswO0w7Ozs7O047O0todXRzdXJpOzsyRDIzOworMTBDNDtHRU9SR0lBTiBDQVBJVEFMIExFVFRFUiBIQVI7THU7MDtMOzs7OztOOztLaHV0c3VyaTs7MkQyNDsKKzEwQzU7R0VPUkdJQU4gQ0FQSVRBTCBMRVRURVIgSE9FO0x1OzA7TDs7Ozs7Tjs7S2h1dHN1cmk7OzJEMjU7CisxMEQwO0dFT1JHSUFOIExFVFRFUiBBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEFOOzs7OworMTBEMTtHRU9SR0lBTiBMRVRURVIgQkFOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQkFOOzs7OworMTBEMjtHRU9SR0lBTiBMRVRURVIgR0FOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgR0FOOzs7OworMTBEMztHRU9SR0lBTiBMRVRURVIgRE9OO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgRE9OOzs7OworMTBENDtHRU9SR0lBTiBMRVRURVIgRU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBFTjs7OzsKKzEwRDU7R0VPUkdJQU4gTEVUVEVSIFZJTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFZJTjs7OzsKKzEwRDY7R0VPUkdJQU4gTEVUVEVSIFpFTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFpFTjs7OzsKKzEwRDc7R0VPUkdJQU4gTEVUVEVSIFRBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFRBTjs7OzsKKzEwRDg7R0VPUkdJQU4gTEVUVEVSIElOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSU47Ozs7CisxMEQ5O0dFT1JHSUFOIExFVFRFUiBLQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBLQU47Ozs7CisxMERBO0dFT1JHSUFOIExFVFRFUiBMQVM7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBMQVM7Ozs7CisxMERCO0dFT1JHSUFOIExFVFRFUiBNQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBNQU47Ozs7CisxMERDO0dFT1JHSUFOIExFVFRFUiBOQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBOQVI7Ozs7CisxMEREO0dFT1JHSUFOIExFVFRFUiBPTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIE9OOzs7OworMTBERTtHRU9SR0lBTiBMRVRURVIgUEFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUEFSOzs7OworMTBERjtHRU9SR0lBTiBMRVRURVIgWkhBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFpIQVI7Ozs7CisxMEUwO0dFT1JHSUFOIExFVFRFUiBSQUU7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBSQUU7Ozs7CisxMEUxO0dFT1JHSUFOIExFVFRFUiBTQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBTQU47Ozs7CisxMEUyO0dFT1JHSUFOIExFVFRFUiBUQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBUQVI7Ozs7CisxMEUzO0dFT1JHSUFOIExFVFRFUiBVTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFVOOzs7OworMTBFNDtHRU9SR0lBTiBMRVRURVIgUEhBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFBIQVI7Ozs7CisxMEU1O0dFT1JHSUFOIExFVFRFUiBLSEFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgS0hBUjs7OzsKKzEwRTY7R0VPUkdJQU4gTEVUVEVSIEdIQU47TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBHSEFOOzs7OworMTBFNztHRU9SR0lBTiBMRVRURVIgUUFSO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUUFSOzs7OworMTBFODtHRU9SR0lBTiBMRVRURVIgU0hJTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIFNISU47Ozs7CisxMEU5O0dFT1JHSUFOIExFVFRFUiBDSElOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQ0hJTjs7OzsKKzEwRUE7R0VPUkdJQU4gTEVUVEVSIENBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIENBTjs7OzsKKzEwRUI7R0VPUkdJQU4gTEVUVEVSIEpJTDtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEpJTDs7OzsKKzEwRUM7R0VPUkdJQU4gTEVUVEVSIENJTDtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIENJTDs7OzsKKzEwRUQ7R0VPUkdJQU4gTEVUVEVSIENIQVI7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDSEFSOzs7OworMTBFRTtHRU9SR0lBTiBMRVRURVIgWEFOO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgWEFOOzs7OworMTBFRjtHRU9SR0lBTiBMRVRURVIgSkhBTjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEpIQU47Ozs7CisxMEYwO0dFT1JHSUFOIExFVFRFUiBIQUU7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBIQUU7Ozs7CisxMEYxO0dFT1JHSUFOIExFVFRFUiBIRTtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhFOzs7OworMTBGMjtHRU9SR0lBTiBMRVRURVIgSElFO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSElFOzs7OworMTBGMztHRU9SR0lBTiBMRVRURVIgV0U7TG87MDtMOzs7OztOO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBXRTs7OzsKKzEwRjQ7R0VPUkdJQU4gTEVUVEVSIEhBUjtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhBUjs7OzsKKzEwRjU7R0VPUkdJQU4gTEVUVEVSIEhPRTtMbzswO0w7Ozs7O047R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhPRTs7OzsKKzEwRjY7R0VPUkdJQU4gTEVUVEVSIEZJO0xvOzA7TDs7Ozs7TjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgRkk7Ozs7CisxMEY3O0dFT1JHSUFOIExFVFRFUiBZTjtMbzswO0w7Ozs7O047Ozs7OworMTBGODtHRU9SR0lBTiBMRVRURVIgRUxJRkk7TG87MDtMOzs7OztOOzs7OzsKKzEwRjk7R0VPUkdJQU4gTEVUVEVSIFRVUk5FRCBHQU47TG87MDtMOzs7OztOOzs7OzsKKzEwRkE7R0VPUkdJQU4gTEVUVEVSIEFJTjtMbzswO0w7Ozs7O047Ozs7OworMTBGQjtHRU9SR0lBTiBQQVJBR1JBUEggU0VQQVJBVE9SO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMEZDO01PRElGSUVSIExFVFRFUiBHRU9SR0lBTiBOQVI7TG07MDtMOzxzdXBlcj4gMTBEQzs7OztOOzs7OzsKKzExMDA7SEFOR1VMIENIT1NFT05HIEtJWUVPSztMbzswO0w7Ozs7O047O2cgKjs7OworMTEwMTtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdLSVlFT0s7TG87MDtMOzs7OztOOztnZyAqOzs7CisxMTAyO0hBTkdVTCBDSE9TRU9ORyBOSUVVTjtMbzswO0w7Ozs7O047O24gKjs7OworMTEwMztIQU5HVUwgQ0hPU0VPTkcgVElLRVVUO0xvOzA7TDs7Ozs7Tjs7ZCAqOzs7CisxMTA0O0hBTkdVTCBDSE9TRU9ORyBTU0FOR1RJS0VVVDtMbzswO0w7Ozs7O047O2RkICo7OzsKKzExMDU7SEFOR1VMIENIT1NFT05HIFJJRVVMO0xvOzA7TDs7Ozs7Tjs7ciAqOzs7CisxMTA2O0hBTkdVTCBDSE9TRU9ORyBNSUVVTTtMbzswO0w7Ozs7O047O20gKjs7OworMTEwNztIQU5HVUwgQ0hPU0VPTkcgUElFVVA7TG87MDtMOzs7OztOOztiICo7OzsKKzExMDg7SEFOR1VMIENIT1NFT05HIFNTQU5HUElFVVA7TG87MDtMOzs7OztOOztiYiAqOzs7CisxMTA5O0hBTkdVTCBDSE9TRU9ORyBTSU9TO0xvOzA7TDs7Ozs7Tjs7cyAqOzs7CisxMTBBO0hBTkdVTCBDSE9TRU9ORyBTU0FOR1NJT1M7TG87MDtMOzs7OztOOztzcyAqOzs7CisxMTBCO0hBTkdVTCBDSE9TRU9ORyBJRVVORztMbzswO0w7Ozs7O047Ozs7OworMTEwQztIQU5HVUwgQ0hPU0VPTkcgQ0lFVUM7TG87MDtMOzs7OztOOztqICo7OzsKKzExMEQ7SEFOR1VMIENIT1NFT05HIFNTQU5HQ0lFVUM7TG87MDtMOzs7OztOOztqaiAqOzs7CisxMTBFO0hBTkdVTCBDSE9TRU9ORyBDSElFVUNIO0xvOzA7TDs7Ozs7Tjs7YyAqOzs7CisxMTBGO0hBTkdVTCBDSE9TRU9ORyBLSElFVUtIO0xvOzA7TDs7Ozs7Tjs7ayAqOzs7CisxMTEwO0hBTkdVTCBDSE9TRU9ORyBUSElFVVRIO0xvOzA7TDs7Ozs7Tjs7dCAqOzs7CisxMTExO0hBTkdVTCBDSE9TRU9ORyBQSElFVVBIO0xvOzA7TDs7Ozs7Tjs7cCAqOzs7CisxMTEyO0hBTkdVTCBDSE9TRU9ORyBISUVVSDtMbzswO0w7Ozs7O047O2ggKjs7OworMTExMztIQU5HVUwgQ0hPU0VPTkcgTklFVU4tS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTE0O0hBTkdVTCBDSE9TRU9ORyBTU0FOR05JRVVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTE1O0hBTkdVTCBDSE9TRU9ORyBOSUVVTi1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExMTY7SEFOR1VMIENIT1NFT05HIE5JRVVOLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTE3O0hBTkdVTCBDSE9TRU9ORyBUSUtFVVQtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTE4O0hBTkdVTCBDSE9TRU9ORyBSSUVVTC1OSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTExOTtIQU5HVUwgQ0hPU0VPTkcgU1NBTkdSSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTExQTtIQU5HVUwgQ0hPU0VPTkcgUklFVUwtSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExMUI7SEFOR1VMIENIT1NFT05HIEtBUFlFT1VOUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExMUM7SEFOR1VMIENIT1NFT05HIE1JRVVNLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTFEO0hBTkdVTCBDSE9TRU9ORyBLQVBZRU9VTk1JRVVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTFFO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExMUY7SEFOR1VMIENIT1NFT05HIFBJRVVQLU5JRVVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTIwO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExMjE7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExMjI7SEFOR1VMIENIT1NFT05HIFBJRVVQLVNJT1MtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTIzO0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLVRJS0VVVDtMbzswO0w7Ozs7O047Ozs7OworMTEyNDtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtU0lPUy1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTEyNTtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTI2O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1TSU9TLUNJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTI3O0hBTkdVTCBDSE9TRU9ORyBQSUVVUC1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTEyODtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTEyOTtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtVEhJRVVUSDtMbzswO0w7Ozs7O047Ozs7OworMTEyQTtIQU5HVUwgQ0hPU0VPTkcgUElFVVAtUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTEyQjtIQU5HVUwgQ0hPU0VPTkcgS0FQWUVPVU5QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTEyQztIQU5HVUwgQ0hPU0VPTkcgS0FQWUVPVU5TU0FOR1BJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTJEO0hBTkdVTCBDSE9TRU9ORyBTSU9TLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTEyRTtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1OSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTEyRjtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExMzA7SEFOR1VMIENIT1NFT05HIFNJT1MtUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExMzE7SEFOR1VMIENIT1NFT05HIFNJT1MtTUlFVU07TG87MDtMOzs7OztOOzs7OzsKKzExMzI7SEFOR1VMIENIT1NFT05HIFNJT1MtUElFVVA7TG87MDtMOzs7OztOOzs7OzsKKzExMzM7SEFOR1VMIENIT1NFT05HIFNJT1MtUElFVVAtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTM0O0hBTkdVTCBDSE9TRU9ORyBTSU9TLVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTEzNTtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1JRVVORztMbzswO0w7Ozs7O047Ozs7OworMTEzNjtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTEzNztIQU5HVUwgQ0hPU0VPTkcgU0lPUy1DSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTM4O0hBTkdVTCBDSE9TRU9ORyBTSU9TLUtISUVVS0g7TG87MDtMOzs7OztOOzs7OzsKKzExMzk7SEFOR1VMIENIT1NFT05HIFNJT1MtVEhJRVVUSDtMbzswO0w7Ozs7O047Ozs7OworMTEzQTtIQU5HVUwgQ0hPU0VPTkcgU0lPUy1QSElFVVBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNCO0hBTkdVTCBDSE9TRU9ORyBTSU9TLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNDO0hBTkdVTCBDSE9TRU9ORyBDSElUVUVVTVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExM0Q7SEFOR1VMIENIT1NFT05HIENISVRVRVVNU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTNFO0hBTkdVTCBDSE9TRU9ORyBDRU9OR0NISUVVTVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExM0Y7SEFOR1VMIENIT1NFT05HIENFT05HQ0hJRVVNU1NBTkdTSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQwO0hBTkdVTCBDSE9TRU9ORyBQQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQxO0hBTkdVTCBDSE9TRU9ORyBJRVVORy1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExNDI7SEFOR1VMIENIT1NFT05HIElFVU5HLVRJS0VVVDtMbzswO0w7Ozs7O047Ozs7OworMTE0MztIQU5HVUwgQ0hPU0VPTkcgSUVVTkctTUlFVU07TG87MDtMOzs7OztOOzs7OzsKKzExNDQ7SEFOR1VMIENIT1NFT05HIElFVU5HLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQ1O0hBTkdVTCBDSE9TRU9ORyBJRVVORy1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQ2O0hBTkdVTCBDSE9TRU9ORyBJRVVORy1QQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQ3O0hBTkdVTCBDSE9TRU9ORyBTU0FOR0lFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTQ4O0hBTkdVTCBDSE9TRU9ORyBJRVVORy1DSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTE0OTtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTE0QTtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctVEhJRVVUSDtMbzswO0w7Ozs7O047Ozs7OworMTE0QjtIQU5HVUwgQ0hPU0VPTkcgSUVVTkctUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTE0QztIQU5HVUwgQ0hPU0VPTkcgWUVTSUVVTkc7TG87MDtMOzs7OztOOzs7OzsKKzExNEQ7SEFOR1VMIENIT1NFT05HIENJRVVDLUlFVU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTRFO0hBTkdVTCBDSE9TRU9ORyBDSElUVUVVTUNJRVVDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTRGO0hBTkdVTCBDSE9TRU9ORyBDSElUVUVVTVNTQU5HQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExNTA7SEFOR1VMIENIT1NFT05HIENFT05HQ0hJRVVNQ0lFVUM7TG87MDtMOzs7OztOOzs7OzsKKzExNTE7SEFOR1VMIENIT1NFT05HIENFT05HQ0hJRVVNU1NBTkdDSUVVQztMbzswO0w7Ozs7O047Ozs7OworMTE1MjtIQU5HVUwgQ0hPU0VPTkcgQ0hJRVVDSC1LSElFVUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTUzO0hBTkdVTCBDSE9TRU9ORyBDSElFVUNILUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTU0O0hBTkdVTCBDSE9TRU9ORyBDSElUVUVVTUNISUVVQ0g7TG87MDtMOzs7OztOOzs7OzsKKzExNTU7SEFOR1VMIENIT1NFT05HIENFT05HQ0hJRVVNQ0hJRVVDSDtMbzswO0w7Ozs7O047Ozs7OworMTE1NjtIQU5HVUwgQ0hPU0VPTkcgUEhJRVVQSC1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTE1NztIQU5HVUwgQ0hPU0VPTkcgS0FQWUVPVU5QSElFVVBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTU4O0hBTkdVTCBDSE9TRU9ORyBTU0FOR0hJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTU5O0hBTkdVTCBDSE9TRU9ORyBZRU9SSU5ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTE1RjtIQU5HVUwgQ0hPU0VPTkcgRklMTEVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTYwO0hBTkdVTCBKVU5HU0VPTkcgRklMTEVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTYxO0hBTkdVTCBKVU5HU0VPTkcgQTtMbzswO0w7Ozs7O047Ozs7OworMTE2MjtIQU5HVUwgSlVOR1NFT05HIEFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTYzO0hBTkdVTCBKVU5HU0VPTkcgWUE7TG87MDtMOzs7OztOOzs7OzsKKzExNjQ7SEFOR1VMIEpVTkdTRU9ORyBZQUU7TG87MDtMOzs7OztOOzs7OzsKKzExNjU7SEFOR1VMIEpVTkdTRU9ORyBFTztMbzswO0w7Ozs7O047Ozs7OworMTE2NjtIQU5HVUwgSlVOR1NFT05HIEU7TG87MDtMOzs7OztOOzs7OzsKKzExNjc7SEFOR1VMIEpVTkdTRU9ORyBZRU87TG87MDtMOzs7OztOOzs7OzsKKzExNjg7SEFOR1VMIEpVTkdTRU9ORyBZRTtMbzswO0w7Ozs7O047Ozs7OworMTE2OTtIQU5HVUwgSlVOR1NFT05HIE87TG87MDtMOzs7OztOOzs7OzsKKzExNkE7SEFOR1VMIEpVTkdTRU9ORyBXQTtMbzswO0w7Ozs7O047Ozs7OworMTE2QjtIQU5HVUwgSlVOR1NFT05HIFdBRTtMbzswO0w7Ozs7O047Ozs7OworMTE2QztIQU5HVUwgSlVOR1NFT05HIE9FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZEO0hBTkdVTCBKVU5HU0VPTkcgWU87TG87MDtMOzs7OztOOzs7OzsKKzExNkU7SEFOR1VMIEpVTkdTRU9ORyBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTZGO0hBTkdVTCBKVU5HU0VPTkcgV0VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTcwO0hBTkdVTCBKVU5HU0VPTkcgV0U7TG87MDtMOzs7OztOOzs7OzsKKzExNzE7SEFOR1VMIEpVTkdTRU9ORyBXSTtMbzswO0w7Ozs7O047Ozs7OworMTE3MjtIQU5HVUwgSlVOR1NFT05HIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTczO0hBTkdVTCBKVU5HU0VPTkcgRVU7TG87MDtMOzs7OztOOzs7OzsKKzExNzQ7SEFOR1VMIEpVTkdTRU9ORyBZSTtMbzswO0w7Ozs7O047Ozs7OworMTE3NTtIQU5HVUwgSlVOR1NFT05HIEk7TG87MDtMOzs7OztOOzs7OzsKKzExNzY7SEFOR1VMIEpVTkdTRU9ORyBBLU87TG87MDtMOzs7OztOOzs7OzsKKzExNzc7SEFOR1VMIEpVTkdTRU9ORyBBLVU7TG87MDtMOzs7OztOOzs7OzsKKzExNzg7SEFOR1VMIEpVTkdTRU9ORyBZQS1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTc5O0hBTkdVTCBKVU5HU0VPTkcgWUEtWU87TG87MDtMOzs7OztOOzs7OzsKKzExN0E7SEFOR1VMIEpVTkdTRU9ORyBFTy1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTdCO0hBTkdVTCBKVU5HU0VPTkcgRU8tVTtMbzswO0w7Ozs7O047Ozs7OworMTE3QztIQU5HVUwgSlVOR1NFT05HIEVPLUVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTdEO0hBTkdVTCBKVU5HU0VPTkcgWUVPLU87TG87MDtMOzs7OztOOzs7OzsKKzExN0U7SEFOR1VMIEpVTkdTRU9ORyBZRU8tVTtMbzswO0w7Ozs7O047Ozs7OworMTE3RjtIQU5HVUwgSlVOR1NFT05HIE8tRU87TG87MDtMOzs7OztOOzs7OzsKKzExODA7SEFOR1VMIEpVTkdTRU9ORyBPLUU7TG87MDtMOzs7OztOOzs7OzsKKzExODE7SEFOR1VMIEpVTkdTRU9ORyBPLVlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTgyO0hBTkdVTCBKVU5HU0VPTkcgTy1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTgzO0hBTkdVTCBKVU5HU0VPTkcgTy1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTg0O0hBTkdVTCBKVU5HU0VPTkcgWU8tWUE7TG87MDtMOzs7OztOOzs7OzsKKzExODU7SEFOR1VMIEpVTkdTRU9ORyBZTy1ZQUU7TG87MDtMOzs7OztOOzs7OzsKKzExODY7SEFOR1VMIEpVTkdTRU9ORyBZTy1ZRU87TG87MDtMOzs7OztOOzs7OzsKKzExODc7SEFOR1VMIEpVTkdTRU9ORyBZTy1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTg4O0hBTkdVTCBKVU5HU0VPTkcgWU8tSTtMbzswO0w7Ozs7O047Ozs7OworMTE4OTtIQU5HVUwgSlVOR1NFT05HIFUtQTtMbzswO0w7Ozs7O047Ozs7OworMTE4QTtIQU5HVUwgSlVOR1NFT05HIFUtQUU7TG87MDtMOzs7OztOOzs7OzsKKzExOEI7SEFOR1VMIEpVTkdTRU9ORyBVLUVPLUVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMThDO0hBTkdVTCBKVU5HU0VPTkcgVS1ZRTtMbzswO0w7Ozs7O047Ozs7OworMTE4RDtIQU5HVUwgSlVOR1NFT05HIFUtVTtMbzswO0w7Ozs7O047Ozs7OworMTE4RTtIQU5HVUwgSlVOR1NFT05HIFlVLUE7TG87MDtMOzs7OztOOzs7OzsKKzExOEY7SEFOR1VMIEpVTkdTRU9ORyBZVS1FTztMbzswO0w7Ozs7O047Ozs7OworMTE5MDtIQU5HVUwgSlVOR1NFT05HIFlVLUU7TG87MDtMOzs7OztOOzs7OzsKKzExOTE7SEFOR1VMIEpVTkdTRU9ORyBZVS1ZRU87TG87MDtMOzs7OztOOzs7OzsKKzExOTI7SEFOR1VMIEpVTkdTRU9ORyBZVS1ZRTtMbzswO0w7Ozs7O047Ozs7OworMTE5MztIQU5HVUwgSlVOR1NFT05HIFlVLVU7TG87MDtMOzs7OztOOzs7OzsKKzExOTQ7SEFOR1VMIEpVTkdTRU9ORyBZVS1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTk1O0hBTkdVTCBKVU5HU0VPTkcgRVUtVTtMbzswO0w7Ozs7O047Ozs7OworMTE5NjtIQU5HVUwgSlVOR1NFT05HIEVVLUVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTk3O0hBTkdVTCBKVU5HU0VPTkcgWUktVTtMbzswO0w7Ozs7O047Ozs7OworMTE5ODtIQU5HVUwgSlVOR1NFT05HIEktQTtMbzswO0w7Ozs7O047Ozs7OworMTE5OTtIQU5HVUwgSlVOR1NFT05HIEktWUE7TG87MDtMOzs7OztOOzs7OzsKKzExOUE7SEFOR1VMIEpVTkdTRU9ORyBJLU87TG87MDtMOzs7OztOOzs7OzsKKzExOUI7SEFOR1VMIEpVTkdTRU9ORyBJLVU7TG87MDtMOzs7OztOOzs7OzsKKzExOUM7SEFOR1VMIEpVTkdTRU9ORyBJLUVVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTlEO0hBTkdVTCBKVU5HU0VPTkcgSS1BUkFFQTtMbzswO0w7Ozs7O047Ozs7OworMTE5RTtIQU5HVUwgSlVOR1NFT05HIEFSQUVBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMTlGO0hBTkdVTCBKVU5HU0VPTkcgQVJBRUEtRU87TG87MDtMOzs7OztOOzs7OzsKKzExQTA7SEFOR1VMIEpVTkdTRU9ORyBBUkFFQS1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUExO0hBTkdVTCBKVU5HU0VPTkcgQVJBRUEtSTtMbzswO0w7Ozs7O047Ozs7OworMTFBMjtIQU5HVUwgSlVOR1NFT05HIFNTQU5HQVJBRUE7TG87MDtMOzs7OztOOzs7OzsKKzExQTg7SEFOR1VMIEpPTkdTRU9ORyBLSVlFT0s7TG87MDtMOzs7OztOOztnICo7OzsKKzExQTk7SEFOR1VMIEpPTkdTRU9ORyBTU0FOR0tJWUVPSztMbzswO0w7Ozs7O047O2dnICo7OzsKKzExQUE7SEFOR1VMIEpPTkdTRU9ORyBLSVlFT0stU0lPUztMbzswO0w7Ozs7O047O2dzICo7OzsKKzExQUI7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTjtMbzswO0w7Ozs7O047O24gKjs7OworMTFBQztIQU5HVUwgSk9OR1NFT05HIE5JRVVOLUNJRVVDO0xvOzA7TDs7Ozs7Tjs7bmogKjs7OworMTFBRDtIQU5HVUwgSk9OR1NFT05HIE5JRVVOLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7bmggKjs7OworMTFBRTtIQU5HVUwgSk9OR1NFT05HIFRJS0VVVDtMbzswO0w7Ozs7O047O2QgKjs7OworMTFBRjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMO0xvOzA7TDs7Ozs7Tjs7bCAqOzs7CisxMUIwO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7bGcgKjs7OworMTFCMTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLU1JRVVNO0xvOzA7TDs7Ozs7Tjs7bG0gKjs7OworMTFCMjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7bGIgKjs7OworMTFCMztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVNJT1M7TG87MDtMOzs7OztOOztscyAqOzs7CisxMUI0O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtVEhJRVVUSDtMbzswO0w7Ozs7O047O2x0ICo7OzsKKzExQjU7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1QSElFVVBIO0xvOzA7TDs7Ozs7Tjs7bHAgKjs7OworMTFCNjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7bGggKjs7OworMTFCNztIQU5HVUwgSk9OR1NFT05HIE1JRVVNO0xvOzA7TDs7Ozs7Tjs7bSAqOzs7CisxMUI4O0hBTkdVTCBKT05HU0VPTkcgUElFVVA7TG87MDtMOzs7OztOOztiICo7OzsKKzExQjk7SEFOR1VMIEpPTkdTRU9ORyBQSUVVUC1TSU9TO0xvOzA7TDs7Ozs7Tjs7YnMgKjs7OworMTFCQTtIQU5HVUwgSk9OR1NFT05HIFNJT1M7TG87MDtMOzs7OztOOztzICo7OzsKKzExQkI7SEFOR1VMIEpPTkdTRU9ORyBTU0FOR1NJT1M7TG87MDtMOzs7OztOOztzcyAqOzs7CisxMUJDO0hBTkdVTCBKT05HU0VPTkcgSUVVTkc7TG87MDtMOzs7OztOOztuZyAqOzs7CisxMUJEO0hBTkdVTCBKT05HU0VPTkcgQ0lFVUM7TG87MDtMOzs7OztOOztqICo7OzsKKzExQkU7SEFOR1VMIEpPTkdTRU9ORyBDSElFVUNIO0xvOzA7TDs7Ozs7Tjs7YyAqOzs7CisxMUJGO0hBTkdVTCBKT05HU0VPTkcgS0hJRVVLSDtMbzswO0w7Ozs7O047O2sgKjs7OworMTFDMDtIQU5HVUwgSk9OR1NFT05HIFRISUVVVEg7TG87MDtMOzs7OztOOzt0ICo7OzsKKzExQzE7SEFOR1VMIEpPTkdTRU9ORyBQSElFVVBIO0xvOzA7TDs7Ozs7Tjs7cCAqOzs7CisxMUMyO0hBTkdVTCBKT05HU0VPTkcgSElFVUg7TG87MDtMOzs7OztOOztoICo7OzsKKzExQzM7SEFOR1VMIEpPTkdTRU9ORyBLSVlFT0stUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExQzQ7SEFOR1VMIEpPTkdTRU9ORyBLSVlFT0stU0lPUy1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExQzU7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExQzY7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1USUtFVVQ7TG87MDtMOzs7OztOOzs7OzsKKzExQzc7SEFOR1VMIEpPTkdTRU9ORyBOSUVVTi1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUM4O0hBTkdVTCBKT05HU0VPTkcgTklFVU4tUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFDOTtIQU5HVUwgSk9OR1NFT05HIE5JRVVOLVRISUVVVEg7TG87MDtMOzs7OztOOzs7OzsKKzExQ0E7SEFOR1VMIEpPTkdTRU9ORyBUSUtFVVQtS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUNCO0hBTkdVTCBKT05HU0VPTkcgVElLRVVULVJJRVVMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUNDO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtS0lZRU9LLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExQ0Q7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1OSUVVTjtMbzswO0w7Ozs7O047Ozs7OworMTFDRTtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVRJS0VVVDtMbzswO0w7Ozs7O047Ozs7OworMTFDRjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVRJS0VVVC1ISUVVSDtMbzswO0w7Ozs7O047Ozs7OworMTFEMDtIQU5HVUwgSk9OR1NFT05HIFNTQU5HUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExRDE7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1NSUVVTS1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExRDI7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1NSUVVTS1TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQzO0hBTkdVTCBKT05HU0VPTkcgUklFVUwtUElFVVAtU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFENDtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBJRVVQLUhJRVVIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQ1O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtS0FQWUVPVU5QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFENjtIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFENztIQU5HVUwgSk9OR1NFT05HIFJJRVVMLVBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRDg7SEFOR1VMIEpPTkdTRU9ORyBSSUVVTC1LSElFVUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUQ5O0hBTkdVTCBKT05HU0VPTkcgUklFVUwtWUVPUklOSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExREE7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExREI7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1SSUVVTDtMbzswO0w7Ozs7O047Ozs7OworMTFEQztIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUREO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFERTtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVNTQU5HU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFERjtIQU5HVUwgSk9OR1NFT05HIE1JRVVNLVBBTlNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRTA7SEFOR1VMIEpPTkdTRU9ORyBNSUVVTS1DSElFVUNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUUxO0hBTkdVTCBKT05HU0VPTkcgTUlFVU0tSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExRTI7SEFOR1VMIEpPTkdTRU9ORyBLQVBZRU9VTk1JRVVNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUUzO0hBTkdVTCBKT05HU0VPTkcgUElFVVAtUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExRTQ7SEFOR1VMIEpPTkdTRU9ORyBQSUVVUC1QSElFVVBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUU1O0hBTkdVTCBKT05HU0VPTkcgUElFVVAtSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzExRTY7SEFOR1VMIEpPTkdTRU9ORyBLQVBZRU9VTlBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUU3O0hBTkdVTCBKT05HU0VPTkcgU0lPUy1LSVlFT0s7TG87MDtMOzs7OztOOzs7OzsKKzExRTg7SEFOR1VMIEpPTkdTRU9ORyBTSU9TLVRJS0VVVDtMbzswO0w7Ozs7O047Ozs7OworMTFFOTtIQU5HVUwgSk9OR1NFT05HIFNJT1MtUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExRUE7SEFOR1VMIEpPTkdTRU9ORyBTSU9TLVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUVCO0hBTkdVTCBKT05HU0VPTkcgUEFOU0lPUztMbzswO0w7Ozs7O047Ozs7OworMTFFQztIQU5HVUwgSk9OR1NFT05HIElFVU5HLUtJWUVPSztMbzswO0w7Ozs7O047Ozs7OworMTFFRDtIQU5HVUwgSk9OR1NFT05HIElFVU5HLVNTQU5HS0lZRU9LO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUVFO0hBTkdVTCBKT05HU0VPTkcgU1NBTkdJRVVORztMbzswO0w7Ozs7O047Ozs7OworMTFFRjtIQU5HVUwgSk9OR1NFT05HIElFVU5HLUtISUVVS0g7TG87MDtMOzs7OztOOzs7OzsKKzExRjA7SEFOR1VMIEpPTkdTRU9ORyBZRVNJRVVORztMbzswO0w7Ozs7O047Ozs7OworMTFGMTtIQU5HVUwgSk9OR1NFT05HIFlFU0lFVU5HLVNJT1M7TG87MDtMOzs7OztOOzs7OzsKKzExRjI7SEFOR1VMIEpPTkdTRU9ORyBZRVNJRVVORy1QQU5TSU9TO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUYzO0hBTkdVTCBKT05HU0VPTkcgUEhJRVVQSC1QSUVVUDtMbzswO0w7Ozs7O047Ozs7OworMTFGNDtIQU5HVUwgSk9OR1NFT05HIEtBUFlFT1VOUEhJRVVQSDtMbzswO0w7Ozs7O047Ozs7OworMTFGNTtIQU5HVUwgSk9OR1NFT05HIEhJRVVILU5JRVVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUY2O0hBTkdVTCBKT05HU0VPTkcgSElFVUgtUklFVUw7TG87MDtMOzs7OztOOzs7OzsKKzExRjc7SEFOR1VMIEpPTkdTRU9ORyBISUVVSC1NSUVVTTtMbzswO0w7Ozs7O047Ozs7OworMTFGODtIQU5HVUwgSk9OR1NFT05HIEhJRVVILVBJRVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMUY5O0hBTkdVTCBKT05HU0VPTkcgWUVPUklOSElFVUg7TG87MDtMOzs7OztOOzs7OzsKKzEyMDA7RVRISU9QSUMgU1lMTEFCTEUgSEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMDE7RVRISU9QSUMgU1lMTEFCTEUgSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMDI7RVRISU9QSUMgU1lMTEFCTEUgSEk7TG87MDtMOzs7OztOOzs7OzsKKzEyMDM7RVRISU9QSUMgU1lMTEFCTEUgSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjA0O0VUSElPUElDIFNZTExBQkxFIEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTIwNTtFVEhJT1BJQyBTWUxMQUJMRSBIRTtMbzswO0w7Ozs7O047Ozs7OworMTIwNjtFVEhJT1BJQyBTWUxMQUJMRSBITztMbzswO0w7Ozs7O047Ozs7OworMTIwNztFVEhJT1BJQyBTWUxMQUJMRSBIT0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMDg7RVRISU9QSUMgU1lMTEFCTEUgTEE7TG87MDtMOzs7OztOOzs7OzsKKzEyMDk7RVRISU9QSUMgU1lMTEFCTEUgTFU7TG87MDtMOzs7OztOOzs7OzsKKzEyMEE7RVRISU9QSUMgU1lMTEFCTEUgTEk7TG87MDtMOzs7OztOOzs7OzsKKzEyMEI7RVRISU9QSUMgU1lMTEFCTEUgTEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjBDO0VUSElPUElDIFNZTExBQkxFIExFRTtMbzswO0w7Ozs7O047Ozs7OworMTIwRDtFVEhJT1BJQyBTWUxMQUJMRSBMRTtMbzswO0w7Ozs7O047Ozs7OworMTIwRTtFVEhJT1BJQyBTWUxMQUJMRSBMTztMbzswO0w7Ozs7O047Ozs7OworMTIwRjtFVEhJT1BJQyBTWUxMQUJMRSBMV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyMTA7RVRISU9QSUMgU1lMTEFCTEUgSEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjExO0VUSElPUElDIFNZTExBQkxFIEhIVTtMbzswO0w7Ozs7O047Ozs7OworMTIxMjtFVEhJT1BJQyBTWUxMQUJMRSBISEk7TG87MDtMOzs7OztOOzs7OzsKKzEyMTM7RVRISU9QSUMgU1lMTEFCTEUgSEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTIxNDtFVEhJT1BJQyBTWUxMQUJMRSBISEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjE1O0VUSElPUElDIFNZTExBQkxFIEhIRTtMbzswO0w7Ozs7O047Ozs7OworMTIxNjtFVEhJT1BJQyBTWUxMQUJMRSBISE87TG87MDtMOzs7OztOOzs7OzsKKzEyMTc7RVRISU9QSUMgU1lMTEFCTEUgSEhXQTtMbzswO0w7Ozs7O047Ozs7OworMTIxODtFVEhJT1BJQyBTWUxMQUJMRSBNQTtMbzswO0w7Ozs7O047Ozs7OworMTIxOTtFVEhJT1BJQyBTWUxMQUJMRSBNVTtMbzswO0w7Ozs7O047Ozs7OworMTIxQTtFVEhJT1BJQyBTWUxMQUJMRSBNSTtMbzswO0w7Ozs7O047Ozs7OworMTIxQjtFVEhJT1BJQyBTWUxMQUJMRSBNQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyMUM7RVRISU9QSUMgU1lMTEFCTEUgTUVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFEO0VUSElPUElDIFNZTExBQkxFIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFFO0VUSElPUElDIFNZTExBQkxFIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjFGO0VUSElPUElDIFNZTExBQkxFIE1XQTtMbzswO0w7Ozs7O047Ozs7OworMTIyMDtFVEhJT1BJQyBTWUxMQUJMRSBTWkE7TG87MDtMOzs7OztOOzs7OzsKKzEyMjE7RVRISU9QSUMgU1lMTEFCTEUgU1pVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjIyO0VUSElPUElDIFNZTExBQkxFIFNaSTtMbzswO0w7Ozs7O047Ozs7OworMTIyMztFVEhJT1BJQyBTWUxMQUJMRSBTWkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI0O0VUSElPUElDIFNZTExBQkxFIFNaRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMjU7RVRISU9QSUMgU1lMTEFCTEUgU1pFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI2O0VUSElPUElDIFNZTExBQkxFIFNaTztMbzswO0w7Ozs7O047Ozs7OworMTIyNztFVEhJT1BJQyBTWUxMQUJMRSBTWldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI4O0VUSElPUElDIFNZTExBQkxFIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjI5O0VUSElPUElDIFNZTExBQkxFIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJBO0VUSElPUElDIFNZTExBQkxFIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjJCO0VUSElPUElDIFNZTExBQkxFIFJBQTtMbzswO0w7Ozs7O047Ozs7OworMTIyQztFVEhJT1BJQyBTWUxMQUJMRSBSRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkQ7RVRISU9QSUMgU1lMTEFCTEUgUkU7TG87MDtMOzs7OztOOzs7OzsKKzEyMkU7RVRISU9QSUMgU1lMTEFCTEUgUk87TG87MDtMOzs7OztOOzs7OzsKKzEyMkY7RVRISU9QSUMgU1lMTEFCTEUgUldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMwO0VUSElPUElDIFNZTExBQkxFIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMxO0VUSElPUElDIFNZTExBQkxFIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMyO0VUSElPUElDIFNZTExBQkxFIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjMzO0VUSElPUElDIFNZTExBQkxFIFNBQTtMbzswO0w7Ozs7O047Ozs7OworMTIzNDtFVEhJT1BJQyBTWUxMQUJMRSBTRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyMzU7RVRISU9QSUMgU1lMTEFCTEUgU0U7TG87MDtMOzs7OztOOzs7OzsKKzEyMzY7RVRISU9QSUMgU1lMTEFCTEUgU087TG87MDtMOzs7OztOOzs7OzsKKzEyMzc7RVRISU9QSUMgU1lMTEFCTEUgU1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjM4O0VUSElPUElDIFNZTExBQkxFIFNIQTtMbzswO0w7Ozs7O047Ozs7OworMTIzOTtFVEhJT1BJQyBTWUxMQUJMRSBTSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyM0E7RVRISU9QSUMgU1lMTEFCTEUgU0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjNCO0VUSElPUElDIFNZTExBQkxFIFNIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyM0M7RVRISU9QSUMgU1lMTEFCTEUgU0hFRTtMbzswO0w7Ozs7O047Ozs7OworMTIzRDtFVEhJT1BJQyBTWUxMQUJMRSBTSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyM0U7RVRISU9QSUMgU1lMTEFCTEUgU0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjNGO0VUSElPUElDIFNZTExBQkxFIFNIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNDA7RVRISU9QSUMgU1lMTEFCTEUgUUE7TG87MDtMOzs7OztOOzs7OzsKKzEyNDE7RVRISU9QSUMgU1lMTEFCTEUgUVU7TG87MDtMOzs7OztOOzs7OzsKKzEyNDI7RVRISU9QSUMgU1lMTEFCTEUgUUk7TG87MDtMOzs7OztOOzs7OzsKKzEyNDM7RVRISU9QSUMgU1lMTEFCTEUgUUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjQ0O0VUSElPUElDIFNZTExBQkxFIFFFRTtMbzswO0w7Ozs7O047Ozs7OworMTI0NTtFVEhJT1BJQyBTWUxMQUJMRSBRRTtMbzswO0w7Ozs7O047Ozs7OworMTI0NjtFVEhJT1BJQyBTWUxMQUJMRSBRTztMbzswO0w7Ozs7O047Ozs7OworMTI0NztFVEhJT1BJQyBTWUxMQUJMRSBRT0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNDg7RVRISU9QSUMgU1lMTEFCTEUgUVdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjRBO0VUSElPUElDIFNZTExBQkxFIFFXSTtMbzswO0w7Ozs7O047Ozs7OworMTI0QjtFVEhJT1BJQyBTWUxMQUJMRSBRV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjRDO0VUSElPUElDIFNZTExBQkxFIFFXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNEQ7RVRISU9QSUMgU1lMTEFCTEUgUVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjUwO0VUSElPUElDIFNZTExBQkxFIFFIQTtMbzswO0w7Ozs7O047Ozs7OworMTI1MTtFVEhJT1BJQyBTWUxMQUJMRSBRSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyNTI7RVRISU9QSUMgU1lMTEFCTEUgUUhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjUzO0VUSElPUElDIFNZTExBQkxFIFFIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyNTQ7RVRISU9QSUMgU1lMTEFCTEUgUUhFRTtMbzswO0w7Ozs7O047Ozs7OworMTI1NTtFVEhJT1BJQyBTWUxMQUJMRSBRSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyNTY7RVRISU9QSUMgU1lMTEFCTEUgUUhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjU4O0VUSElPUElDIFNZTExBQkxFIFFIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyNUE7RVRISU9QSUMgU1lMTEFCTEUgUUhXSTtMbzswO0w7Ozs7O047Ozs7OworMTI1QjtFVEhJT1BJQyBTWUxMQUJMRSBRSFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTI1QztFVEhJT1BJQyBTWUxMQUJMRSBRSFdFRTtMbzswO0w7Ozs7O047Ozs7OworMTI1RDtFVEhJT1BJQyBTWUxMQUJMRSBRSFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjYwO0VUSElPUElDIFNZTExBQkxFIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjYxO0VUSElPUElDIFNZTExBQkxFIEJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjYyO0VUSElPUElDIFNZTExBQkxFIEJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjYzO0VUSElPUElDIFNZTExBQkxFIEJBQTtMbzswO0w7Ozs7O047Ozs7OworMTI2NDtFVEhJT1BJQyBTWUxMQUJMRSBCRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNjU7RVRISU9QSUMgU1lMTEFCTEUgQkU7TG87MDtMOzs7OztOOzs7OzsKKzEyNjY7RVRISU9QSUMgU1lMTEFCTEUgQk87TG87MDtMOzs7OztOOzs7OzsKKzEyNjc7RVRISU9QSUMgU1lMTEFCTEUgQldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjY4O0VUSElPUElDIFNZTExBQkxFIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjY5O0VUSElPUElDIFNZTExBQkxFIFZVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjZBO0VUSElPUElDIFNZTExBQkxFIFZJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjZCO0VUSElPUElDIFNZTExBQkxFIFZBQTtMbzswO0w7Ozs7O047Ozs7OworMTI2QztFVEhJT1BJQyBTWUxMQUJMRSBWRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNkQ7RVRISU9QSUMgU1lMTEFCTEUgVkU7TG87MDtMOzs7OztOOzs7OzsKKzEyNkU7RVRISU9QSUMgU1lMTEFCTEUgVk87TG87MDtMOzs7OztOOzs7OzsKKzEyNkY7RVRISU9QSUMgU1lMTEFCTEUgVldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjcwO0VUSElPUElDIFNZTExBQkxFIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjcxO0VUSElPUElDIFNZTExBQkxFIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjcyO0VUSElPUElDIFNZTExBQkxFIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjczO0VUSElPUElDIFNZTExBQkxFIFRBQTtMbzswO0w7Ozs7O047Ozs7OworMTI3NDtFVEhJT1BJQyBTWUxMQUJMRSBURUU7TG87MDtMOzs7OztOOzs7OzsKKzEyNzU7RVRISU9QSUMgU1lMTEFCTEUgVEU7TG87MDtMOzs7OztOOzs7OzsKKzEyNzY7RVRISU9QSUMgU1lMTEFCTEUgVE87TG87MDtMOzs7OztOOzs7OzsKKzEyNzc7RVRISU9QSUMgU1lMTEFCTEUgVFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjc4O0VUSElPUElDIFNZTExBQkxFIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjc5O0VUSElPUElDIFNZTExBQkxFIENVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjdBO0VUSElPUElDIFNZTExBQkxFIENJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjdCO0VUSElPUElDIFNZTExBQkxFIENBQTtMbzswO0w7Ozs7O047Ozs7OworMTI3QztFVEhJT1BJQyBTWUxMQUJMRSBDRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyN0Q7RVRISU9QSUMgU1lMTEFCTEUgQ0U7TG87MDtMOzs7OztOOzs7OzsKKzEyN0U7RVRISU9QSUMgU1lMTEFCTEUgQ087TG87MDtMOzs7OztOOzs7OzsKKzEyN0Y7RVRISU9QSUMgU1lMTEFCTEUgQ1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjgwO0VUSElPUElDIFNZTExBQkxFIFhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjgxO0VUSElPUElDIFNZTExBQkxFIFhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjgyO0VUSElPUElDIFNZTExBQkxFIFhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjgzO0VUSElPUElDIFNZTExBQkxFIFhBQTtMbzswO0w7Ozs7O047Ozs7OworMTI4NDtFVEhJT1BJQyBTWUxMQUJMRSBYRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyODU7RVRISU9QSUMgU1lMTEFCTEUgWEU7TG87MDtMOzs7OztOOzs7OzsKKzEyODY7RVRISU9QSUMgU1lMTEFCTEUgWE87TG87MDtMOzs7OztOOzs7OzsKKzEyODc7RVRISU9QSUMgU1lMTEFCTEUgWE9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjg4O0VUSElPUElDIFNZTExBQkxFIFhXQTtMbzswO0w7Ozs7O047Ozs7OworMTI4QTtFVEhJT1BJQyBTWUxMQUJMRSBYV0k7TG87MDtMOzs7OztOOzs7OzsKKzEyOEI7RVRISU9QSUMgU1lMTEFCTEUgWFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTI4QztFVEhJT1BJQyBTWUxMQUJMRSBYV0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjhEO0VUSElPUElDIFNZTExBQkxFIFhXRTtMbzswO0w7Ozs7O047Ozs7OworMTI5MDtFVEhJT1BJQyBTWUxMQUJMRSBOQTtMbzswO0w7Ozs7O047Ozs7OworMTI5MTtFVEhJT1BJQyBTWUxMQUJMRSBOVTtMbzswO0w7Ozs7O047Ozs7OworMTI5MjtFVEhJT1BJQyBTWUxMQUJMRSBOSTtMbzswO0w7Ozs7O047Ozs7OworMTI5MztFVEhJT1BJQyBTWUxMQUJMRSBOQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyOTQ7RVRISU9QSUMgU1lMTEFCTEUgTkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjk1O0VUSElPUElDIFNZTExBQkxFIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjk2O0VUSElPUElDIFNZTExBQkxFIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjk3O0VUSElPUElDIFNZTExBQkxFIE5XQTtMbzswO0w7Ozs7O047Ozs7OworMTI5ODtFVEhJT1BJQyBTWUxMQUJMRSBOWUE7TG87MDtMOzs7OztOOzs7OzsKKzEyOTk7RVRISU9QSUMgU1lMTEFCTEUgTllVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjlBO0VUSElPUElDIFNZTExBQkxFIE5ZSTtMbzswO0w7Ozs7O047Ozs7OworMTI5QjtFVEhJT1BJQyBTWUxMQUJMRSBOWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjlDO0VUSElPUElDIFNZTExBQkxFIE5ZRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyOUQ7RVRISU9QSUMgU1lMTEFCTEUgTllFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMjlFO0VUSElPUElDIFNZTExBQkxFIE5ZTztMbzswO0w7Ozs7O047Ozs7OworMTI5RjtFVEhJT1BJQyBTWUxMQUJMRSBOWVdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkEwO0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgQTtMbzswO0w7Ozs7O047Ozs7OworMTJBMTtFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyQTI7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkEzO0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyQTQ7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBFRTtMbzswO0w7Ozs7O047Ozs7OworMTJBNTtFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIEU7TG87MDtMOzs7OztOOzs7OzsKKzEyQTY7RVRISU9QSUMgU1lMTEFCTEUgR0xPVFRBTCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkE3O0VUSElPUElDIFNZTExBQkxFIEdMT1RUQUwgV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyQTg7RVRISU9QSUMgU1lMTEFCTEUgS0E7TG87MDtMOzs7OztOOzs7OzsKKzEyQTk7RVRISU9QSUMgU1lMTEFCTEUgS1U7TG87MDtMOzs7OztOOzs7OzsKKzEyQUE7RVRISU9QSUMgU1lMTEFCTEUgS0k7TG87MDtMOzs7OztOOzs7OzsKKzEyQUI7RVRISU9QSUMgU1lMTEFCTEUgS0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkFDO0VUSElPUElDIFNZTExBQkxFIEtFRTtMbzswO0w7Ozs7O047Ozs7OworMTJBRDtFVEhJT1BJQyBTWUxMQUJMRSBLRTtMbzswO0w7Ozs7O047Ozs7OworMTJBRTtFVEhJT1BJQyBTWUxMQUJMRSBLTztMbzswO0w7Ozs7O047Ozs7OworMTJBRjtFVEhJT1BJQyBTWUxMQUJMRSBLT0E7TG87MDtMOzs7OztOOzs7OzsKKzEyQjA7RVRISU9QSUMgU1lMTEFCTEUgS1dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkIyO0VUSElPUElDIFNZTExBQkxFIEtXSTtMbzswO0w7Ozs7O047Ozs7OworMTJCMztFVEhJT1BJQyBTWUxMQUJMRSBLV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkI0O0VUSElPUElDIFNZTExBQkxFIEtXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQjU7RVRISU9QSUMgU1lMTEFCTEUgS1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkI4O0VUSElPUElDIFNZTExBQkxFIEtYQTtMbzswO0w7Ozs7O047Ozs7OworMTJCOTtFVEhJT1BJQyBTWUxMQUJMRSBLWFU7TG87MDtMOzs7OztOOzs7OzsKKzEyQkE7RVRISU9QSUMgU1lMTEFCTEUgS1hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkJCO0VUSElPUElDIFNZTExBQkxFIEtYQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyQkM7RVRISU9QSUMgU1lMTEFCTEUgS1hFRTtMbzswO0w7Ozs7O047Ozs7OworMTJCRDtFVEhJT1BJQyBTWUxMQUJMRSBLWEU7TG87MDtMOzs7OztOOzs7OzsKKzEyQkU7RVRISU9QSUMgU1lMTEFCTEUgS1hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkMwO0VUSElPUElDIFNZTExBQkxFIEtYV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyQzI7RVRISU9QSUMgU1lMTEFCTEUgS1hXSTtMbzswO0w7Ozs7O047Ozs7OworMTJDMztFVEhJT1BJQyBTWUxMQUJMRSBLWFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTJDNDtFVEhJT1BJQyBTWUxMQUJMRSBLWFdFRTtMbzswO0w7Ozs7O047Ozs7OworMTJDNTtFVEhJT1BJQyBTWUxMQUJMRSBLWFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkM4O0VUSElPUElDIFNZTExBQkxFIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkM5O0VUSElPUElDIFNZTExBQkxFIFdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkNBO0VUSElPUElDIFNZTExBQkxFIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkNCO0VUSElPUElDIFNZTExBQkxFIFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTJDQztFVEhJT1BJQyBTWUxMQUJMRSBXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyQ0Q7RVRISU9QSUMgU1lMTEFCTEUgV0U7TG87MDtMOzs7OztOOzs7OzsKKzEyQ0U7RVRISU9QSUMgU1lMTEFCTEUgV087TG87MDtMOzs7OztOOzs7OzsKKzEyQ0Y7RVRISU9QSUMgU1lMTEFCTEUgV09BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQwO0VUSElPUElDIFNZTExBQkxFIFBIQVJZTkdFQUwgQTtMbzswO0w7Ozs7O047Ozs7OworMTJEMTtFVEhJT1BJQyBTWUxMQUJMRSBQSEFSWU5HRUFMIFU7TG87MDtMOzs7OztOOzs7OzsKKzEyRDI7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQzO0VUSElPUElDIFNZTExBQkxFIFBIQVJZTkdFQUwgQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRDQ7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBFRTtMbzswO0w7Ozs7O047Ozs7OworMTJENTtFVEhJT1BJQyBTWUxMQUJMRSBQSEFSWU5HRUFMIEU7TG87MDtMOzs7OztOOzs7OzsKKzEyRDY7RVRISU9QSUMgU1lMTEFCTEUgUEhBUllOR0VBTCBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQ4O0VUSElPUElDIFNZTExBQkxFIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkQ5O0VUSElPUElDIFNZTExBQkxFIFpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkRBO0VUSElPUElDIFNZTExBQkxFIFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkRCO0VUSElPUElDIFNZTExBQkxFIFpBQTtMbzswO0w7Ozs7O047Ozs7OworMTJEQztFVEhJT1BJQyBTWUxMQUJMRSBaRUU7TG87MDtMOzs7OztOOzs7OzsKKzEyREQ7RVRISU9QSUMgU1lMTEFCTEUgWkU7TG87MDtMOzs7OztOOzs7OzsKKzEyREU7RVRISU9QSUMgU1lMTEFCTEUgWk87TG87MDtMOzs7OztOOzs7OzsKKzEyREY7RVRISU9QSUMgU1lMTEFCTEUgWldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkUwO0VUSElPUElDIFNZTExBQkxFIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMTJFMTtFVEhJT1BJQyBTWUxMQUJMRSBaSFU7TG87MDtMOzs7OztOOzs7OzsKKzEyRTI7RVRISU9QSUMgU1lMTEFCTEUgWkhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkUzO0VUSElPUElDIFNZTExBQkxFIFpIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRTQ7RVRISU9QSUMgU1lMTEFCTEUgWkhFRTtMbzswO0w7Ozs7O047Ozs7OworMTJFNTtFVEhJT1BJQyBTWUxMQUJMRSBaSEU7TG87MDtMOzs7OztOOzs7OzsKKzEyRTY7RVRISU9QSUMgU1lMTEFCTEUgWkhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkU3O0VUSElPUElDIFNZTExBQkxFIFpIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyRTg7RVRISU9QSUMgU1lMTEFCTEUgWUE7TG87MDtMOzs7OztOOzs7OzsKKzEyRTk7RVRISU9QSUMgU1lMTEFCTEUgWVU7TG87MDtMOzs7OztOOzs7OzsKKzEyRUE7RVRISU9QSUMgU1lMTEFCTEUgWUk7TG87MDtMOzs7OztOOzs7OzsKKzEyRUI7RVRISU9QSUMgU1lMTEFCTEUgWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkVDO0VUSElPUElDIFNZTExBQkxFIFlFRTtMbzswO0w7Ozs7O047Ozs7OworMTJFRDtFVEhJT1BJQyBTWUxMQUJMRSBZRTtMbzswO0w7Ozs7O047Ozs7OworMTJFRTtFVEhJT1BJQyBTWUxMQUJMRSBZTztMbzswO0w7Ozs7O047Ozs7OworMTJFRjtFVEhJT1BJQyBTWUxMQUJMRSBZT0E7TG87MDtMOzs7OztOOzs7OzsKKzEyRjA7RVRISU9QSUMgU1lMTEFCTEUgREE7TG87MDtMOzs7OztOOzs7OzsKKzEyRjE7RVRISU9QSUMgU1lMTEFCTEUgRFU7TG87MDtMOzs7OztOOzs7OzsKKzEyRjI7RVRISU9QSUMgU1lMTEFCTEUgREk7TG87MDtMOzs7OztOOzs7OzsKKzEyRjM7RVRISU9QSUMgU1lMTEFCTEUgREFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkY0O0VUSElPUElDIFNZTExBQkxFIERFRTtMbzswO0w7Ozs7O047Ozs7OworMTJGNTtFVEhJT1BJQyBTWUxMQUJMRSBERTtMbzswO0w7Ozs7O047Ozs7OworMTJGNjtFVEhJT1BJQyBTWUxMQUJMRSBETztMbzswO0w7Ozs7O047Ozs7OworMTJGNztFVEhJT1BJQyBTWUxMQUJMRSBEV0E7TG87MDtMOzs7OztOOzs7OzsKKzEyRjg7RVRISU9QSUMgU1lMTEFCTEUgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkY5O0VUSElPUElDIFNZTExBQkxFIEREVTtMbzswO0w7Ozs7O047Ozs7OworMTJGQTtFVEhJT1BJQyBTWUxMQUJMRSBEREk7TG87MDtMOzs7OztOOzs7OzsKKzEyRkI7RVRISU9QSUMgU1lMTEFCTEUgRERBQTtMbzswO0w7Ozs7O047Ozs7OworMTJGQztFVEhJT1BJQyBTWUxMQUJMRSBEREVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMkZEO0VUSElPUElDIFNZTExBQkxFIERERTtMbzswO0w7Ozs7O047Ozs7OworMTJGRTtFVEhJT1BJQyBTWUxMQUJMRSBERE87TG87MDtMOzs7OztOOzs7OzsKKzEyRkY7RVRISU9QSUMgU1lMTEFCTEUgRERXQTtMbzswO0w7Ozs7O047Ozs7OworMTMwMDtFVEhJT1BJQyBTWUxMQUJMRSBKQTtMbzswO0w7Ozs7O047Ozs7OworMTMwMTtFVEhJT1BJQyBTWUxMQUJMRSBKVTtMbzswO0w7Ozs7O047Ozs7OworMTMwMjtFVEhJT1BJQyBTWUxMQUJMRSBKSTtMbzswO0w7Ozs7O047Ozs7OworMTMwMztFVEhJT1BJQyBTWUxMQUJMRSBKQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMDQ7RVRISU9QSUMgU1lMTEFCTEUgSkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzA1O0VUSElPUElDIFNZTExBQkxFIEpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzA2O0VUSElPUElDIFNZTExBQkxFIEpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzA3O0VUSElPUElDIFNZTExBQkxFIEpXQTtMbzswO0w7Ozs7O047Ozs7OworMTMwODtFVEhJT1BJQyBTWUxMQUJMRSBHQTtMbzswO0w7Ozs7O047Ozs7OworMTMwOTtFVEhJT1BJQyBTWUxMQUJMRSBHVTtMbzswO0w7Ozs7O047Ozs7OworMTMwQTtFVEhJT1BJQyBTWUxMQUJMRSBHSTtMbzswO0w7Ozs7O047Ozs7OworMTMwQjtFVEhJT1BJQyBTWUxMQUJMRSBHQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMEM7RVRISU9QSUMgU1lMTEFCTEUgR0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzBEO0VUSElPUElDIFNZTExBQkxFIEdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzBFO0VUSElPUElDIFNZTExBQkxFIEdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzBGO0VUSElPUElDIFNZTExBQkxFIEdPQTtMbzswO0w7Ozs7O047Ozs7OworMTMxMDtFVEhJT1BJQyBTWUxMQUJMRSBHV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMTI7RVRISU9QSUMgU1lMTEFCTEUgR1dJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzEzO0VUSElPUElDIFNZTExBQkxFIEdXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMTQ7RVRISU9QSUMgU1lMTEFCTEUgR1dFRTtMbzswO0w7Ozs7O047Ozs7OworMTMxNTtFVEhJT1BJQyBTWUxMQUJMRSBHV0U7TG87MDtMOzs7OztOOzs7OzsKKzEzMTg7RVRISU9QSUMgU1lMTEFCTEUgR0dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzE5O0VUSElPUElDIFNZTExBQkxFIEdHVTtMbzswO0w7Ozs7O047Ozs7OworMTMxQTtFVEhJT1BJQyBTWUxMQUJMRSBHR0k7TG87MDtMOzs7OztOOzs7OzsKKzEzMUI7RVRISU9QSUMgU1lMTEFCTEUgR0dBQTtMbzswO0w7Ozs7O047Ozs7OworMTMxQztFVEhJT1BJQyBTWUxMQUJMRSBHR0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzFEO0VUSElPUElDIFNZTExBQkxFIEdHRTtMbzswO0w7Ozs7O047Ozs7OworMTMxRTtFVEhJT1BJQyBTWUxMQUJMRSBHR087TG87MDtMOzs7OztOOzs7OzsKKzEzMUY7RVRISU9QSUMgU1lMTEFCTEUgR0dXQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMjA7RVRISU9QSUMgU1lMTEFCTEUgVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzIxO0VUSElPUElDIFNZTExBQkxFIFRIVTtMbzswO0w7Ozs7O047Ozs7OworMTMyMjtFVEhJT1BJQyBTWUxMQUJMRSBUSEk7TG87MDtMOzs7OztOOzs7OzsKKzEzMjM7RVRISU9QSUMgU1lMTEFCTEUgVEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTMyNDtFVEhJT1BJQyBTWUxMQUJMRSBUSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzI1O0VUSElPUElDIFNZTExBQkxFIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTMyNjtFVEhJT1BJQyBTWUxMQUJMRSBUSE87TG87MDtMOzs7OztOOzs7OzsKKzEzMjc7RVRISU9QSUMgU1lMTEFCTEUgVEhXQTtMbzswO0w7Ozs7O047Ozs7OworMTMyODtFVEhJT1BJQyBTWUxMQUJMRSBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzEzMjk7RVRISU9QSUMgU1lMTEFCTEUgQ0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzJBO0VUSElPUElDIFNZTExBQkxFIENISTtMbzswO0w7Ozs7O047Ozs7OworMTMyQjtFVEhJT1BJQyBTWUxMQUJMRSBDSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzJDO0VUSElPUElDIFNZTExBQkxFIENIRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzMkQ7RVRISU9QSUMgU1lMTEFCTEUgQ0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzJFO0VUSElPUElDIFNZTExBQkxFIENITztMbzswO0w7Ozs7O047Ozs7OworMTMyRjtFVEhJT1BJQyBTWUxMQUJMRSBDSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzMwO0VUSElPUElDIFNZTExBQkxFIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMTMzMTtFVEhJT1BJQyBTWUxMQUJMRSBQSFU7TG87MDtMOzs7OztOOzs7OzsKKzEzMzI7RVRISU9QSUMgU1lMTEFCTEUgUEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzMzO0VUSElPUElDIFNZTExBQkxFIFBIQUE7TG87MDtMOzs7OztOOzs7OzsKKzEzMzQ7RVRISU9QSUMgU1lMTEFCTEUgUEhFRTtMbzswO0w7Ozs7O047Ozs7OworMTMzNTtFVEhJT1BJQyBTWUxMQUJMRSBQSEU7TG87MDtMOzs7OztOOzs7OzsKKzEzMzY7RVRISU9QSUMgU1lMTEFCTEUgUEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzM3O0VUSElPUElDIFNZTExBQkxFIFBIV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzMzg7RVRISU9QSUMgU1lMTEFCTEUgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzM5O0VUSElPUElDIFNZTExBQkxFIFRTVTtMbzswO0w7Ozs7O047Ozs7OworMTMzQTtFVEhJT1BJQyBTWUxMQUJMRSBUU0k7TG87MDtMOzs7OztOOzs7OzsKKzEzM0I7RVRISU9QSUMgU1lMTEFCTEUgVFNBQTtMbzswO0w7Ozs7O047Ozs7OworMTMzQztFVEhJT1BJQyBTWUxMQUJMRSBUU0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzNEO0VUSElPUElDIFNZTExBQkxFIFRTRTtMbzswO0w7Ozs7O047Ozs7OworMTMzRTtFVEhJT1BJQyBTWUxMQUJMRSBUU087TG87MDtMOzs7OztOOzs7OzsKKzEzM0Y7RVRISU9QSUMgU1lMTEFCTEUgVFNXQTtMbzswO0w7Ozs7O047Ozs7OworMTM0MDtFVEhJT1BJQyBTWUxMQUJMRSBUWkE7TG87MDtMOzs7OztOOzs7OzsKKzEzNDE7RVRISU9QSUMgU1lMTEFCTEUgVFpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQyO0VUSElPUElDIFNZTExBQkxFIFRaSTtMbzswO0w7Ozs7O047Ozs7OworMTM0MztFVEhJT1BJQyBTWUxMQUJMRSBUWkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQ0O0VUSElPUElDIFNZTExBQkxFIFRaRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzNDU7RVRISU9QSUMgU1lMTEFCTEUgVFpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQ2O0VUSElPUElDIFNZTExBQkxFIFRaTztMbzswO0w7Ozs7O047Ozs7OworMTM0NztFVEhJT1BJQyBTWUxMQUJMRSBUWk9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQ4O0VUSElPUElDIFNZTExBQkxFIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzQ5O0VUSElPUElDIFNZTExBQkxFIEZVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzRBO0VUSElPUElDIFNZTExBQkxFIEZJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzRCO0VUSElPUElDIFNZTExBQkxFIEZBQTtMbzswO0w7Ozs7O047Ozs7OworMTM0QztFVEhJT1BJQyBTWUxMQUJMRSBGRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzNEQ7RVRISU9QSUMgU1lMTEFCTEUgRkU7TG87MDtMOzs7OztOOzs7OzsKKzEzNEU7RVRISU9QSUMgU1lMTEFCTEUgRk87TG87MDtMOzs7OztOOzs7OzsKKzEzNEY7RVRISU9QSUMgU1lMTEFCTEUgRldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzUwO0VUSElPUElDIFNZTExBQkxFIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzUxO0VUSElPUElDIFNZTExBQkxFIFBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzUyO0VUSElPUElDIFNZTExBQkxFIFBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzUzO0VUSElPUElDIFNZTExBQkxFIFBBQTtMbzswO0w7Ozs7O047Ozs7OworMTM1NDtFVEhJT1BJQyBTWUxMQUJMRSBQRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzNTU7RVRISU9QSUMgU1lMTEFCTEUgUEU7TG87MDtMOzs7OztOOzs7OzsKKzEzNTY7RVRISU9QSUMgU1lMTEFCTEUgUE87TG87MDtMOzs7OztOOzs7OzsKKzEzNTc7RVRISU9QSUMgU1lMTEFCTEUgUFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzU4O0VUSElPUElDIFNZTExBQkxFIFJZQTtMbzswO0w7Ozs7O047Ozs7OworMTM1OTtFVEhJT1BJQyBTWUxMQUJMRSBNWUE7TG87MDtMOzs7OztOOzs7OzsKKzEzNUE7RVRISU9QSUMgU1lMTEFCTEUgRllBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzVGO0VUSElPUElDIENPTUJJTklORyBHRU1JTkFUSU9OIE1BUks7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxMzYwO0VUSElPUElDIFNFQ1RJT04gTUFSSztTbzswO0w7Ozs7O047Ozs7OworMTM2MTtFVEhJT1BJQyBXT1JEU1BBQ0U7UG87MDtMOzs7OztOOzs7OzsKKzEzNjI7RVRISU9QSUMgRlVMTCBTVE9QO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzYzO0VUSElPUElDIENPTU1BO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzY0O0VUSElPUElDIFNFTUlDT0xPTjtQbzswO0w7Ozs7O047Ozs7OworMTM2NTtFVEhJT1BJQyBDT0xPTjtQbzswO0w7Ozs7O047Ozs7OworMTM2NjtFVEhJT1BJQyBQUkVGQUNFIENPTE9OO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMzY3O0VUSElPUElDIFFVRVNUSU9OIE1BUks7UG87MDtMOzs7OztOOzs7OzsKKzEzNjg7RVRISU9QSUMgUEFSQUdSQVBIIFNFUEFSQVRPUjtQbzswO0w7Ozs7O047Ozs7OworMTM2OTtFVEhJT1BJQyBESUdJVCBPTkU7Tm87MDtMOzs7MTsxO047Ozs7OworMTM2QTtFVEhJT1BJQyBESUdJVCBUV087Tm87MDtMOzs7MjsyO047Ozs7OworMTM2QjtFVEhJT1BJQyBESUdJVCBUSFJFRTtObzswO0w7OzszOzM7Tjs7Ozs7CisxMzZDO0VUSElPUElDIERJR0lUIEZPVVI7Tm87MDtMOzs7NDs0O047Ozs7OworMTM2RDtFVEhJT1BJQyBESUdJVCBGSVZFO05vOzA7TDs7OzU7NTtOOzs7OzsKKzEzNkU7RVRISU9QSUMgRElHSVQgU0lYO05vOzA7TDs7OzY7NjtOOzs7OzsKKzEzNkY7RVRISU9QSUMgRElHSVQgU0VWRU47Tm87MDtMOzs7Nzs3O047Ozs7OworMTM3MDtFVEhJT1BJQyBESUdJVCBFSUdIVDtObzswO0w7Ozs4Ozg7Tjs7Ozs7CisxMzcxO0VUSElPUElDIERJR0lUIE5JTkU7Tm87MDtMOzs7OTs5O047Ozs7OworMTM3MjtFVEhJT1BJQyBOVU1CRVIgVEVOO05vOzA7TDs7OzsxMDtOOzs7OzsKKzEzNzM7RVRISU9QSUMgTlVNQkVSIFRXRU5UWTtObzswO0w7Ozs7MjA7Tjs7Ozs7CisxMzc0O0VUSElPUElDIE5VTUJFUiBUSElSVFk7Tm87MDtMOzs7OzMwO047Ozs7OworMTM3NTtFVEhJT1BJQyBOVU1CRVIgRk9SVFk7Tm87MDtMOzs7OzQwO047Ozs7OworMTM3NjtFVEhJT1BJQyBOVU1CRVIgRklGVFk7Tm87MDtMOzs7OzUwO047Ozs7OworMTM3NztFVEhJT1BJQyBOVU1CRVIgU0lYVFk7Tm87MDtMOzs7OzYwO047Ozs7OworMTM3ODtFVEhJT1BJQyBOVU1CRVIgU0VWRU5UWTtObzswO0w7Ozs7NzA7Tjs7Ozs7CisxMzc5O0VUSElPUElDIE5VTUJFUiBFSUdIVFk7Tm87MDtMOzs7OzgwO047Ozs7OworMTM3QTtFVEhJT1BJQyBOVU1CRVIgTklORVRZO05vOzA7TDs7Ozs5MDtOOzs7OzsKKzEzN0I7RVRISU9QSUMgTlVNQkVSIEhVTkRSRUQ7Tm87MDtMOzs7OzEwMDtOOzs7OzsKKzEzN0M7RVRISU9QSUMgTlVNQkVSIFRFTiBUSE9VU0FORDtObzswO0w7Ozs7MTAwMDA7Tjs7Ozs7CisxMzgwO0VUSElPUElDIFNZTExBQkxFIFNFQkFUQkVJVCBNV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzODE7RVRISU9QSUMgU1lMTEFCTEUgTVdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzgyO0VUSElPUElDIFNZTExBQkxFIE1XRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzODM7RVRISU9QSUMgU1lMTEFCTEUgTVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzg0O0VUSElPUElDIFNZTExBQkxFIFNFQkFUQkVJVCBCV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzODU7RVRISU9QSUMgU1lMTEFCTEUgQldJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzg2O0VUSElPUElDIFNZTExBQkxFIEJXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzODc7RVRISU9QSUMgU1lMTEFCTEUgQldFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzg4O0VUSElPUElDIFNZTExBQkxFIFNFQkFUQkVJVCBGV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzODk7RVRISU9QSUMgU1lMTEFCTEUgRldJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzhBO0VUSElPUElDIFNZTExBQkxFIEZXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzOEI7RVRISU9QSUMgU1lMTEFCTEUgRldFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzhDO0VUSElPUElDIFNZTExBQkxFIFNFQkFUQkVJVCBQV0E7TG87MDtMOzs7OztOOzs7OzsKKzEzOEQ7RVRISU9QSUMgU1lMTEFCTEUgUFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzhFO0VUSElPUElDIFNZTExBQkxFIFBXRUU7TG87MDtMOzs7OztOOzs7OzsKKzEzOEY7RVRISU9QSUMgU1lMTEFCTEUgUFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMzkwO0VUSElPUElDIFRPTkFMIE1BUksgWUlaRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMzkxO0VUSElPUElDIFRPTkFMIE1BUksgREVSRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMzkyO0VUSElPUElDIFRPTkFMIE1BUksgUklLUklLO1NvOzA7T047Ozs7O047Ozs7OworMTM5MztFVEhJT1BJQyBUT05BTCBNQVJLIFNIT1JUIFJJS1JJSztTbzswO09OOzs7OztOOzs7OzsKKzEzOTQ7RVRISU9QSUMgVE9OQUwgTUFSSyBESUZBVDtTbzswO09OOzs7OztOOzs7OzsKKzEzOTU7RVRISU9QSUMgVE9OQUwgTUFSSyBLRU5BVDtTbzswO09OOzs7OztOOzs7OzsKKzEzOTY7RVRISU9QSUMgVE9OQUwgTUFSSyBDSElSRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMzk3O0VUSElPUElDIFRPTkFMIE1BUksgSElERVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMzk4O0VUSElPUElDIFRPTkFMIE1BUksgREVSRVQtSElERVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMzk5O0VUSElPUElDIFRPTkFMIE1BUksgS1VSVDtTbzswO09OOzs7OztOOzs7OzsKKzEzQTA7Q0hFUk9LRUUgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzEzQTE7Q0hFUk9LRUUgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzEzQTI7Q0hFUk9LRUUgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzEzQTM7Q0hFUk9LRUUgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzEzQTQ7Q0hFUk9LRUUgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzEzQTU7Q0hFUk9LRUUgTEVUVEVSIFY7TG87MDtMOzs7OztOOzs7OzsKKzEzQTY7Q0hFUk9LRUUgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0E3O0NIRVJPS0VFIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTNBODtDSEVST0tFRSBMRVRURVIgR0U7TG87MDtMOzs7OztOOzs7OzsKKzEzQTk7Q0hFUk9LRUUgTEVUVEVSIEdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0FBO0NIRVJPS0VFIExFVFRFUiBHTztMbzswO0w7Ozs7O047Ozs7OworMTNBQjtDSEVST0tFRSBMRVRURVIgR1U7TG87MDtMOzs7OztOOzs7OzsKKzEzQUM7Q0hFUk9LRUUgTEVUVEVSIEdWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0FEO0NIRVJPS0VFIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTNBRTtDSEVST0tFRSBMRVRURVIgSEU7TG87MDtMOzs7OztOOzs7OzsKKzEzQUY7Q0hFUk9LRUUgTEVUVEVSIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0IwO0NIRVJPS0VFIExFVFRFUiBITztMbzswO0w7Ozs7O047Ozs7OworMTNCMTtDSEVST0tFRSBMRVRURVIgSFU7TG87MDtMOzs7OztOOzs7OzsKKzEzQjI7Q0hFUk9LRUUgTEVUVEVSIEhWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0IzO0NIRVJPS0VFIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTNCNDtDSEVST0tFRSBMRVRURVIgTEU7TG87MDtMOzs7OztOOzs7OzsKKzEzQjU7Q0hFUk9LRUUgTEVUVEVSIExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0I2O0NIRVJPS0VFIExFVFRFUiBMTztMbzswO0w7Ozs7O047Ozs7OworMTNCNztDSEVST0tFRSBMRVRURVIgTFU7TG87MDtMOzs7OztOOzs7OzsKKzEzQjg7Q0hFUk9LRUUgTEVUVEVSIExWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0I5O0NIRVJPS0VFIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTNCQTtDSEVST0tFRSBMRVRURVIgTUU7TG87MDtMOzs7OztOOzs7OzsKKzEzQkI7Q0hFUk9LRUUgTEVUVEVSIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0JDO0NIRVJPS0VFIExFVFRFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMTNCRDtDSEVST0tFRSBMRVRURVIgTVU7TG87MDtMOzs7OztOOzs7OzsKKzEzQkU7Q0hFUk9LRUUgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0JGO0NIRVJPS0VFIExFVFRFUiBITkE7TG87MDtMOzs7OztOOzs7OzsKKzEzQzA7Q0hFUk9LRUUgTEVUVEVSIE5BSDtMbzswO0w7Ozs7O047Ozs7OworMTNDMTtDSEVST0tFRSBMRVRURVIgTkU7TG87MDtMOzs7OztOOzs7OzsKKzEzQzI7Q0hFUk9LRUUgTEVUVEVSIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0MzO0NIRVJPS0VFIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMTNDNDtDSEVST0tFRSBMRVRURVIgTlU7TG87MDtMOzs7OztOOzs7OzsKKzEzQzU7Q0hFUk9LRUUgTEVUVEVSIE5WO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0M2O0NIRVJPS0VFIExFVFRFUiBRVUE7TG87MDtMOzs7OztOOzs7OzsKKzEzQzc7Q0hFUk9LRUUgTEVUVEVSIFFVRTtMbzswO0w7Ozs7O047Ozs7OworMTNDODtDSEVST0tFRSBMRVRURVIgUVVJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0M5O0NIRVJPS0VFIExFVFRFUiBRVU87TG87MDtMOzs7OztOOzs7OzsKKzEzQ0E7Q0hFUk9LRUUgTEVUVEVSIFFVVTtMbzswO0w7Ozs7O047Ozs7OworMTNDQjtDSEVST0tFRSBMRVRURVIgUVVWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0NDO0NIRVJPS0VFIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTNDRDtDSEVST0tFRSBMRVRURVIgUztMbzswO0w7Ozs7O047Ozs7OworMTNDRTtDSEVST0tFRSBMRVRURVIgU0U7TG87MDtMOzs7OztOOzs7OzsKKzEzQ0Y7Q0hFUk9LRUUgTEVUVEVSIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0QwO0NIRVJPS0VFIExFVFRFUiBTTztMbzswO0w7Ozs7O047Ozs7OworMTNEMTtDSEVST0tFRSBMRVRURVIgU1U7TG87MDtMOzs7OztOOzs7OzsKKzEzRDI7Q0hFUk9LRUUgTEVUVEVSIFNWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0QzO0NIRVJPS0VFIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTNENDtDSEVST0tFRSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzEzRDU7Q0hFUk9LRUUgTEVUVEVSIERFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0Q2O0NIRVJPS0VFIExFVFRFUiBURTtMbzswO0w7Ozs7O047Ozs7OworMTNENztDSEVST0tFRSBMRVRURVIgREk7TG87MDtMOzs7OztOOzs7OzsKKzEzRDg7Q0hFUk9LRUUgTEVUVEVSIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0Q5O0NIRVJPS0VFIExFVFRFUiBETztMbzswO0w7Ozs7O047Ozs7OworMTNEQTtDSEVST0tFRSBMRVRURVIgRFU7TG87MDtMOzs7OztOOzs7OzsKKzEzREI7Q0hFUk9LRUUgTEVUVEVSIERWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0RDO0NIRVJPS0VFIExFVFRFUiBETEE7TG87MDtMOzs7OztOOzs7OzsKKzEzREQ7Q0hFUk9LRUUgTEVUVEVSIFRMQTtMbzswO0w7Ozs7O047Ozs7OworMTNERTtDSEVST0tFRSBMRVRURVIgVExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0RGO0NIRVJPS0VFIExFVFRFUiBUTEk7TG87MDtMOzs7OztOOzs7OzsKKzEzRTA7Q0hFUk9LRUUgTEVUVEVSIFRMTztMbzswO0w7Ozs7O047Ozs7OworMTNFMTtDSEVST0tFRSBMRVRURVIgVExVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0UyO0NIRVJPS0VFIExFVFRFUiBUTFY7TG87MDtMOzs7OztOOzs7OzsKKzEzRTM7Q0hFUk9LRUUgTEVUVEVSIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTNFNDtDSEVST0tFRSBMRVRURVIgVFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0U1O0NIRVJPS0VFIExFVFRFUiBUU0k7TG87MDtMOzs7OztOOzs7OzsKKzEzRTY7Q0hFUk9LRUUgTEVUVEVSIFRTTztMbzswO0w7Ozs7O047Ozs7OworMTNFNztDSEVST0tFRSBMRVRURVIgVFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0U4O0NIRVJPS0VFIExFVFRFUiBUU1Y7TG87MDtMOzs7OztOOzs7OzsKKzEzRTk7Q0hFUk9LRUUgTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0VBO0NIRVJPS0VFIExFVFRFUiBXRTtMbzswO0w7Ozs7O047Ozs7OworMTNFQjtDSEVST0tFRSBMRVRURVIgV0k7TG87MDtMOzs7OztOOzs7OzsKKzEzRUM7Q0hFUk9LRUUgTEVUVEVSIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0VEO0NIRVJPS0VFIExFVFRFUiBXVTtMbzswO0w7Ozs7O047Ozs7OworMTNFRTtDSEVST0tFRSBMRVRURVIgV1Y7TG87MDtMOzs7OztOOzs7OzsKKzEzRUY7Q0hFUk9LRUUgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0YwO0NIRVJPS0VFIExFVFRFUiBZRTtMbzswO0w7Ozs7O047Ozs7OworMTNGMTtDSEVST0tFRSBMRVRURVIgWUk7TG87MDtMOzs7OztOOzs7OzsKKzEzRjI7Q0hFUk9LRUUgTEVUVEVSIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxM0YzO0NIRVJPS0VFIExFVFRFUiBZVTtMbzswO0w7Ozs7O047Ozs7OworMTNGNDtDSEVST0tFRSBMRVRURVIgWVY7TG87MDtMOzs7OztOOzs7OzsKKzE0MDE7Q0FOQURJQU4gU1lMTEFCSUNTIEU7TG87MDtMOzs7OztOOzs7OzsKKzE0MDI7Q0FOQURJQU4gU1lMTEFCSUNTIEFBSTtMbzswO0w7Ozs7O047Ozs7OworMTQwMztDQU5BRElBTiBTWUxMQUJJQ1MgSTtMbzswO0w7Ozs7O047Ozs7OworMTQwNDtDQU5BRElBTiBTWUxMQUJJQ1MgSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MDU7Q0FOQURJQU4gU1lMTEFCSUNTIE87TG87MDtMOzs7OztOOzs7OzsKKzE0MDY7Q0FOQURJQU4gU1lMTEFCSUNTIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDA3O0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgT087TG87MDtMOzs7OztOOzs7OzsKKzE0MDg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzE0MDk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTQwQTtDQU5BRElBTiBTWUxMQUJJQ1MgQTtMbzswO0w7Ozs7O047Ozs7OworMTQwQjtDQU5BRElBTiBTWUxMQUJJQ1MgQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0MEM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDBEO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0MEU7Q0FOQURJQU4gU1lMTEFCSUNTIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDBGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0MTA7Q0FOQURJQU4gU1lMTEFCSUNTIFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTQxMTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTQxMjtDQU5BRElBTiBTWUxMQUJJQ1MgV087TG87MDtMOzs7OztOOzs7OzsKKzE0MTM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBXTztMbzswO0w7Ozs7O047Ozs7OworMTQxNDtDQU5BRElBTiBTWUxMQUJJQ1MgV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDE1O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDE2O0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQxNztDQU5BRElBTiBTWUxMQUJJQ1MgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0MTg7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBXQTtMbzswO0w7Ozs7O047Ozs7OworMTQxOTtDQU5BRElBTiBTWUxMQUJJQ1MgV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDFBO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDFCO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQxQztDQU5BRElBTiBTWUxMQUJJQ1MgQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBXO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDFFO0NBTkFESUFOIFNZTExBQklDUyBHTE9UVEFMIFNUT1A7TG87MDtMOzs7OztOOzs7OzsKKzE0MUY7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIEFDVVRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDIwO0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBHUkFWRTtMbzswO0w7Ozs7O047Ozs7OworMTQyMTtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgQk9UVE9NIEhBTEYgUklORztMbzswO0w7Ozs7O047Ozs7OworMTQyMjtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgVE9QIEhBTEYgUklORztMbzswO0w7Ozs7O047Ozs7OworMTQyMztDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgUklHSFQgSEFMRiBSSU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDI0O0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBSSU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDI1O0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBET1VCTEUgQUNVVEU7TG87MDtMOzs7OztOOzs7OzsKKzE0MjY7Q0FOQURJQU4gU1lMTEFCSUNTIEZJTkFMIERPVUJMRSBTSE9SVCBWRVJUSUNBTCBTVFJPS0VTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDI3O0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBNSURETEUgRE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDI4O0NBTkFESUFOIFNZTExBQklDUyBGSU5BTCBTSE9SVCBIT1JJWk9OVEFMIFNUUk9LRTtMbzswO0w7Ozs7O047Ozs7OworMTQyOTtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgUExVUztMbzswO0w7Ozs7O047Ozs7OworMTQyQTtDQU5BRElBTiBTWUxMQUJJQ1MgRklOQUwgRE9XTiBUQUNLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDJCO0NBTkFESUFOIFNZTExBQklDUyBFTjtMbzswO0w7Ozs7O047Ozs7OworMTQyQztDQU5BRElBTiBTWUxMQUJJQ1MgSU47TG87MDtMOzs7OztOOzs7OzsKKzE0MkQ7Q0FOQURJQU4gU1lMTEFCSUNTIE9OO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDJFO0NBTkFESUFOIFNZTExBQklDUyBBTjtMbzswO0w7Ozs7O047Ozs7OworMTQyRjtDQU5BRElBTiBTWUxMQUJJQ1MgUEU7TG87MDtMOzs7OztOOzs7OzsKKzE0MzA7Q0FOQURJQU4gU1lMTEFCSUNTIFBBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MzE7Q0FOQURJQU4gU1lMTEFCSUNTIFBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDMyO0NBTkFESUFOIFNZTExBQklDUyBQSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0MzM7Q0FOQURJQU4gU1lMTEFCSUNTIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDM0O0NBTkFESUFOIFNZTExBQklDUyBQT087TG87MDtMOzs7OztOOzs7OzsKKzE0MzU7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBQT087TG87MDtMOzs7OztOOzs7OzsKKzE0MzY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDM3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDM4O0NBTkFESUFOIFNZTExBQklDUyBQQTtMbzswO0w7Ozs7O047Ozs7OworMTQzOTtDQU5BRElBTiBTWUxMQUJJQ1MgUEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDNBO0NBTkFESUFOIFNZTExBQklDUyBQV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0M0I7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBQV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0M0M7Q0FOQURJQU4gU1lMTEFCSUNTIFBXSTtMbzswO0w7Ozs7O047Ozs7OworMTQzRDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFBXSTtMbzswO0w7Ozs7O047Ozs7OworMTQzRTtDQU5BRElBTiBTWUxMQUJJQ1MgUFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTQzRjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFBXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0NDA7Q0FOQURJQU4gU1lMTEFCSUNTIFBXTztMbzswO0w7Ozs7O047Ozs7OworMTQ0MTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFBXTztMbzswO0w7Ozs7O047Ozs7OworMTQ0MjtDQU5BRElBTiBTWUxMQUJJQ1MgUFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQ0MztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFBXT087TG87MDtMOzs7OztOOzs7OzsKKzE0NDQ7Q0FOQURJQU4gU1lMTEFCSUNTIFBXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ0NTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFBXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ0NjtDQU5BRElBTiBTWUxMQUJJQ1MgUFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ0NztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFBXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0NDg7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBQV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDQ5O0NBTkFESUFOIFNZTExBQklDUyBQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDRBO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUDtMbzswO0w7Ozs7O047Ozs7OworMTQ0QjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDRDO0NBTkFESUFOIFNZTExBQklDUyBURTtMbzswO0w7Ozs7O047Ozs7OworMTQ0RDtDQU5BRElBTiBTWUxMQUJJQ1MgVEFBSTtMbzswO0w7Ozs7O047Ozs7OworMTQ0RTtDQU5BRElBTiBTWUxMQUJJQ1MgVEk7TG87MDtMOzs7OztOOzs7OzsKKzE0NEY7Q0FOQURJQU4gU1lMTEFCSUNTIFRJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ1MDtDQU5BRElBTiBTWUxMQUJJQ1MgVE87TG87MDtMOzs7OztOOzs7OzsKKzE0NTE7Q0FOQURJQU4gU1lMTEFCSUNTIFRPTztMbzswO0w7Ozs7O047Ozs7OworMTQ1MjtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIFRPTztMbzswO0w7Ozs7O047Ozs7OworMTQ1MztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBERUU7TG87MDtMOzs7OztOOzs7OzsKKzE0NTQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgREk7TG87MDtMOzs7OztOOzs7OzsKKzE0NTU7Q0FOQURJQU4gU1lMTEFCSUNTIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDU2O0NBTkFESUFOIFNZTExBQklDUyBUQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0NTc7Q0FOQURJQU4gU1lMTEFCSUNTIFRXRTtMbzswO0w7Ozs7O047Ozs7OworMTQ1ODtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFRXRTtMbzswO0w7Ozs7O047Ozs7OworMTQ1OTtDQU5BRElBTiBTWUxMQUJJQ1MgVFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDVBO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDVCO0NBTkFESUFOIFNZTExBQklDUyBUV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDVDO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ1RDtDQU5BRElBTiBTWUxMQUJJQ1MgVFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDVFO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDVGO0NBTkFESUFOIFNZTExBQklDUyBUV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDYwO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVFdPTztMbzswO0w7Ozs7O047Ozs7OworMTQ2MTtDQU5BRElBTiBTWUxMQUJJQ1MgVFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDYyO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDYzO0NBTkFESUFOIFNZTExBQklDUyBUV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDY0O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ2NTtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBUV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDY2O0NBTkFESUFOIFNZTExBQklDUyBUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDY3O0NBTkFESUFOIFNZTExBQklDUyBUVEU7TG87MDtMOzs7OztOOzs7OzsKKzE0Njg7Q0FOQURJQU4gU1lMTEFCSUNTIFRUSTtMbzswO0w7Ozs7O047Ozs7OworMTQ2OTtDQU5BRElBTiBTWUxMQUJJQ1MgVFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDZBO0NBTkFESUFOIFNZTExBQklDUyBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzE0NkI7Q0FOQURJQU4gU1lMTEFCSUNTIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDZDO0NBTkFESUFOIFNZTExBQklDUyBLQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDZEO0NBTkFESUFOIFNZTExBQklDUyBLSTtMbzswO0w7Ozs7O047Ozs7OworMTQ2RTtDQU5BRElBTiBTWUxMQUJJQ1MgS0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDZGO0NBTkFESUFOIFNZTExBQklDUyBLTztMbzswO0w7Ozs7O047Ozs7OworMTQ3MDtDQU5BRElBTiBTWUxMQUJJQ1MgS09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDcxO0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgS09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDcyO0NBTkFESUFOIFNZTExBQklDUyBLQTtMbzswO0w7Ozs7O047Ozs7OworMTQ3MztDQU5BRElBTiBTWUxMQUJJQ1MgS0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDc0O0NBTkFESUFOIFNZTExBQklDUyBLV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0NzU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBLV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0NzY7Q0FOQURJQU4gU1lMTEFCSUNTIEtXSTtMbzswO0w7Ozs7O047Ozs7OworMTQ3NztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEtXSTtMbzswO0w7Ozs7O047Ozs7OworMTQ3ODtDQU5BRElBTiBTWUxMQUJJQ1MgS1dJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ3OTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEtXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0N0E7Q0FOQURJQU4gU1lMTEFCSUNTIEtXTztMbzswO0w7Ozs7O047Ozs7OworMTQ3QjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEtXTztMbzswO0w7Ozs7O047Ozs7OworMTQ3QztDQU5BRElBTiBTWUxMQUJJQ1MgS1dPTztMbzswO0w7Ozs7O047Ozs7OworMTQ3RDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEtXT087TG87MDtMOzs7OztOOzs7OzsKKzE0N0U7Q0FOQURJQU4gU1lMTEFCSUNTIEtXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ3RjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEtXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ4MDtDQU5BRElBTiBTWUxMQUJJQ1MgS1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ4MTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEtXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0ODI7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgS1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ4MztDQU5BRElBTiBTWUxMQUJJQ1MgSztMbzswO0w7Ozs7O047Ozs7OworMTQ4NDtDQU5BRElBTiBTWUxMQUJJQ1MgS1c7TG87MDtMOzs7OztOOzs7OzsKKzE0ODU7Q0FOQURJQU4gU1lMTEFCSUNTIFNPVVRILVNMQVZFWSBLRUg7TG87MDtMOzs7OztOOzs7OzsKKzE0ODY7Q0FOQURJQU4gU1lMTEFCSUNTIFNPVVRILVNMQVZFWSBLSUg7TG87MDtMOzs7OztOOzs7OzsKKzE0ODc7Q0FOQURJQU4gU1lMTEFCSUNTIFNPVVRILVNMQVZFWSBLT0g7TG87MDtMOzs7OztOOzs7OzsKKzE0ODg7Q0FOQURJQU4gU1lMTEFCSUNTIFNPVVRILVNMQVZFWSBLQUg7TG87MDtMOzs7OztOOzs7OzsKKzE0ODk7Q0FOQURJQU4gU1lMTEFCSUNTIENFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDhBO0NBTkFESUFOIFNZTExBQklDUyBDQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDhCO0NBTkFESUFOIFNZTExBQklDUyBDSTtMbzswO0w7Ozs7O047Ozs7OworMTQ4QztDQU5BRElBTiBTWUxMQUJJQ1MgQ0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDhEO0NBTkFESUFOIFNZTExBQklDUyBDTztMbzswO0w7Ozs7O047Ozs7OworMTQ4RTtDQU5BRElBTiBTWUxMQUJJQ1MgQ09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDhGO0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgQ09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDkwO0NBTkFESUFOIFNZTExBQklDUyBDQTtMbzswO0w7Ozs7O047Ozs7OworMTQ5MTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNDkyO0NBTkFESUFOIFNZTExBQklDUyBDV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0OTM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBDV0U7TG87MDtMOzs7OztOOzs7OzsKKzE0OTQ7Q0FOQURJQU4gU1lMTEFCSUNTIENXSTtMbzswO0w7Ozs7O047Ozs7OworMTQ5NTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIENXSTtMbzswO0w7Ozs7O047Ozs7OworMTQ5NjtDQU5BRElBTiBTWUxMQUJJQ1MgQ1dJSTtMbzswO0w7Ozs7O047Ozs7OworMTQ5NztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIENXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0OTg7Q0FOQURJQU4gU1lMTEFCSUNTIENXTztMbzswO0w7Ozs7O047Ozs7OworMTQ5OTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIENXTztMbzswO0w7Ozs7O047Ozs7OworMTQ5QTtDQU5BRElBTiBTWUxMQUJJQ1MgQ1dPTztMbzswO0w7Ozs7O047Ozs7OworMTQ5QjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIENXT087TG87MDtMOzs7OztOOzs7OzsKKzE0OUM7Q0FOQURJQU4gU1lMTEFCSUNTIENXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ5RDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIENXQTtMbzswO0w7Ozs7O047Ozs7OworMTQ5RTtDQU5BRElBTiBTWUxMQUJJQ1MgQ1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTQ5RjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIENXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0QTA7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgQ1dBQTtMbzswO0w7Ozs7O047Ozs7OworMTRBMTtDQU5BRElBTiBTWUxMQUJJQ1MgQztMbzswO0w7Ozs7O047Ozs7OworMTRBMjtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEEzO0NBTkFESUFOIFNZTExBQklDUyBNRTtMbzswO0w7Ozs7O047Ozs7OworMTRBNDtDQU5BRElBTiBTWUxMQUJJQ1MgTUFBSTtMbzswO0w7Ozs7O047Ozs7OworMTRBNTtDQU5BRElBTiBTWUxMQUJJQ1MgTUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QTY7Q0FOQURJQU4gU1lMTEFCSUNTIE1JSTtMbzswO0w7Ozs7O047Ozs7OworMTRBNztDQU5BRElBTiBTWUxMQUJJQ1MgTU87TG87MDtMOzs7OztOOzs7OzsKKzE0QTg7Q0FOQURJQU4gU1lMTEFCSUNTIE1PTztMbzswO0w7Ozs7O047Ozs7OworMTRBOTtDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIE1PTztMbzswO0w7Ozs7O047Ozs7OworMTRBQTtDQU5BRElBTiBTWUxMQUJJQ1MgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE0QUI7Q0FOQURJQU4gU1lMTEFCSUNTIE1BQTtMbzswO0w7Ozs7O047Ozs7OworMTRBQztDQU5BRElBTiBTWUxMQUJJQ1MgTVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEFEO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEFFO0NBTkFESUFOIFNZTExBQklDUyBNV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0QUY7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0QjA7Q0FOQURJQU4gU1lMTEFCSUNTIE1XSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QjE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEIyO0NBTkFESUFOIFNZTExBQklDUyBNV087TG87MDtMOzs7OztOOzs7OzsKKzE0QjM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNV087TG87MDtMOzs7OztOOzs7OzsKKzE0QjQ7Q0FOQURJQU4gU1lMTEFCSUNTIE1XT087TG87MDtMOzs7OztOOzs7OzsKKzE0QjU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEI2O0NBTkFESUFOIFNZTExBQklDUyBNV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0Qjc7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNV0E7TG87MDtMOzs7OztOOzs7OzsKKzE0Qjg7Q0FOQURJQU4gU1lMTEFCSUNTIE1XQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0Qjk7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEJBO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIE1XQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0QkI7Q0FOQURJQU4gU1lMTEFCSUNTIE07TG87MDtMOzs7OztOOzs7OzsKKzE0QkM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEJEO0NBTkFESUFOIFNZTExBQklDUyBNSDtMbzswO0w7Ozs7O047Ozs7OworMTRCRTtDQU5BRElBTiBTWUxMQUJJQ1MgQVRIQVBBU0NBTiBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEJGO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgTTtMbzswO0w7Ozs7O047Ozs7OworMTRDMDtDQU5BRElBTiBTWUxMQUJJQ1MgTkU7TG87MDtMOzs7OztOOzs7OzsKKzE0QzE7Q0FOQURJQU4gU1lMTEFCSUNTIE5BQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QzI7Q0FOQURJQU4gU1lMTEFCSUNTIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEMzO0NBTkFESUFOIFNZTExBQklDUyBOSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0QzQ7Q0FOQURJQU4gU1lMTEFCSUNTIE5PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM1O0NBTkFESUFOIFNZTExBQklDUyBOT087TG87MDtMOzs7OztOOzs7OzsKKzE0QzY7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBOT087TG87MDtMOzs7OztOOzs7OzsKKzE0Qzc7Q0FOQURJQU4gU1lMTEFCSUNTIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEM4O0NBTkFESUFOIFNZTExBQklDUyBOQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0Qzk7Q0FOQURJQU4gU1lMTEFCSUNTIE5XRTtMbzswO0w7Ozs7O047Ozs7OworMTRDQTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIE5XRTtMbzswO0w7Ozs7O047Ozs7OworMTRDQjtDQU5BRElBTiBTWUxMQUJJQ1MgTldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNENDO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTldBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNENEO0NBTkFESUFOIFNZTExBQklDUyBOV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNENFO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTldBQTtMbzswO0w7Ozs7O047Ozs7OworMTRDRjtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBOV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQwO0NBTkFESUFOIFNZTExBQklDUyBOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQyO0NBTkFESUFOIFNZTExBQklDUyBOSDtMbzswO0w7Ozs7O047Ozs7OworMTREMztDQU5BRElBTiBTWUxMQUJJQ1MgTEU7TG87MDtMOzs7OztOOzs7OzsKKzE0RDQ7Q0FOQURJQU4gU1lMTEFCSUNTIExBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RDU7Q0FOQURJQU4gU1lMTEFCSUNTIExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ2O0NBTkFESUFOIFNZTExBQklDUyBMSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RDc7Q0FOQURJQU4gU1lMTEFCSUNTIExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEQ4O0NBTkFESUFOIFNZTExBQklDUyBMT087TG87MDtMOzs7OztOOzs7OzsKKzE0RDk7Q0FOQURJQU4gU1lMTEFCSUNTIFktQ1JFRSBMT087TG87MDtMOzs7OztOOzs7OzsKKzE0REE7Q0FOQURJQU4gU1lMTEFCSUNTIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNERCO0NBTkFESUFOIFNZTExBQklDUyBMQUE7TG87MDtMOzs7OztOOzs7OzsKKzE0REM7Q0FOQURJQU4gU1lMTEFCSUNTIExXRTtMbzswO0w7Ozs7O047Ozs7OworMTRERDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExXRTtMbzswO0w7Ozs7O047Ozs7OworMTRERTtDQU5BRElBTiBTWUxMQUJJQ1MgTFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNERGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEUwO0NBTkFESUFOIFNZTExBQklDUyBMV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEUxO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTFdJSTtMbzswO0w7Ozs7O047Ozs7OworMTRFMjtDQU5BRElBTiBTWUxMQUJJQ1MgTFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEUzO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEU0O0NBTkFESUFOIFNZTExBQklDUyBMV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEU1O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTFdPTztMbzswO0w7Ozs7O047Ozs7OworMTRFNjtDQU5BRElBTiBTWUxMQUJJQ1MgTFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEU3O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEU4O0NBTkFESUFOIFNZTExBQklDUyBMV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEU5O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTRFQTtDQU5BRElBTiBTWUxMQUJJQ1MgTDtMbzswO0w7Ozs7O047Ozs7OworMTRFQjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEw7TG87MDtMOzs7OztOOzs7OzsKKzE0RUM7Q0FOQURJQU4gU1lMTEFCSUNTIE1FRElBTCBMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEVEO0NBTkFESUFOIFNZTExBQklDUyBTRTtMbzswO0w7Ozs7O047Ozs7OworMTRFRTtDQU5BRElBTiBTWUxMQUJJQ1MgU0FBSTtMbzswO0w7Ozs7O047Ozs7OworMTRFRjtDQU5BRElBTiBTWUxMQUJJQ1MgU0k7TG87MDtMOzs7OztOOzs7OzsKKzE0RjA7Q0FOQURJQU4gU1lMTEFCSUNTIFNJSTtMbzswO0w7Ozs7O047Ozs7OworMTRGMTtDQU5BRElBTiBTWUxMQUJJQ1MgU087TG87MDtMOzs7OztOOzs7OzsKKzE0RjI7Q0FOQURJQU4gU1lMTEFCSUNTIFNPTztMbzswO0w7Ozs7O047Ozs7OworMTRGMztDQU5BRElBTiBTWUxMQUJJQ1MgWS1DUkVFIFNPTztMbzswO0w7Ozs7O047Ozs7OworMTRGNDtDQU5BRElBTiBTWUxMQUJJQ1MgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE0RjU7Q0FOQURJQU4gU1lMTEFCSUNTIFNBQTtMbzswO0w7Ozs7O047Ozs7OworMTRGNjtDQU5BRElBTiBTWUxMQUJJQ1MgU1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEY3O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEY4O0NBTkFESUFOIFNZTExBQklDUyBTV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0Rjk7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTV0k7TG87MDtMOzs7OztOOzs7OzsKKzE0RkE7Q0FOQURJQU4gU1lMTEFCSUNTIFNXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE0RkI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNEZDO0NBTkFESUFOIFNZTExBQklDUyBTV087TG87MDtMOzs7OztOOzs7OzsKKzE0RkQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTV087TG87MDtMOzs7OztOOzs7OzsKKzE0RkU7Q0FOQURJQU4gU1lMTEFCSUNTIFNXT087TG87MDtMOzs7OztOOzs7OzsKKzE0RkY7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTAwO0NBTkFESUFOIFNZTExBQklDUyBTV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MDE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MDI7Q0FOQURJQU4gU1lMTEFCSUNTIFNXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MDM7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTA0O0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFNXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MDU7Q0FOQURJQU4gU1lMTEFCSUNTIFM7TG87MDtMOzs7OztOOzs7OzsKKzE1MDY7Q0FOQURJQU4gU1lMTEFCSUNTIEFUSEFQQVNDQU4gUztMbzswO0w7Ozs7O047Ozs7OworMTUwNztDQU5BRElBTiBTWUxMQUJJQ1MgU1c7TG87MDtMOzs7OztOOzs7OzsKKzE1MDg7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTA5O0NBTkFESUFOIFNZTExBQklDUyBNT09TRS1DUkVFIFNLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTBBO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFNLVztMbzswO0w7Ozs7O047Ozs7OworMTUwQjtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTLVc7TG87MDtMOzs7OztOOzs7OzsKKzE1MEM7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgU1BXQTtMbzswO0w7Ozs7O047Ozs7OworMTUwRDtDQU5BRElBTiBTWUxMQUJJQ1MgTkFTS0FQSSBTVFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTBFO0NBTkFESUFOIFNZTExBQklDUyBOQVNLQVBJIFNLV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1MEY7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgU0NXQTtMbzswO0w7Ozs7O047Ozs7OworMTUxMDtDQU5BRElBTiBTWUxMQUJJQ1MgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTExO0NBTkFESUFOIFNZTExBQklDUyBTSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1MTI7Q0FOQURJQU4gU1lMTEFCSUNTIFNISUk7TG87MDtMOzs7OztOOzs7OzsKKzE1MTM7Q0FOQURJQU4gU1lMTEFCSUNTIFNITztMbzswO0w7Ozs7O047Ozs7OworMTUxNDtDQU5BRElBTiBTWUxMQUJJQ1MgU0hPTztMbzswO0w7Ozs7O047Ozs7OworMTUxNTtDQU5BRElBTiBTWUxMQUJJQ1MgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTE2O0NBTkFESUFOIFNZTExBQklDUyBTSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTE3O0NBTkFESUFOIFNZTExBQklDUyBTSFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTE4O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU0hXRTtMbzswO0w7Ozs7O047Ozs7OworMTUxOTtDQU5BRElBTiBTWUxMQUJJQ1MgU0hXSTtMbzswO0w7Ozs7O047Ozs7OworMTUxQTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1MUI7Q0FOQURJQU4gU1lMTEFCSUNTIFNIV0lJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTFDO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU0hXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1MUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFNIV087TG87MDtMOzs7OztOOzs7OzsKKzE1MUU7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTSFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTFGO0NBTkFESUFOIFNZTExBQklDUyBTSFdPTztMbzswO0w7Ozs7O047Ozs7OworMTUyMDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFNIV09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTIxO0NBTkFESUFOIFNZTExBQklDUyBTSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTIyO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgU0hXQTtMbzswO0w7Ozs7O047Ozs7OworMTUyMztDQU5BRElBTiBTWUxMQUJJQ1MgU0hXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1MjQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBTSFdBQTtMbzswO0w7Ozs7O047Ozs7OworMTUyNTtDQU5BRElBTiBTWUxMQUJJQ1MgU0g7TG87MDtMOzs7OztOOzs7OzsKKzE1MjY7Q0FOQURJQU4gU1lMTEFCSUNTIFlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTI3O0NBTkFESUFOIFNZTExBQklDUyBZQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTI4O0NBTkFESUFOIFNZTExBQklDUyBZSTtMbzswO0w7Ozs7O047Ozs7OworMTUyOTtDQU5BRElBTiBTWUxMQUJJQ1MgWUlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTJBO0NBTkFESUFOIFNZTExBQklDUyBZTztMbzswO0w7Ozs7O047Ozs7OworMTUyQjtDQU5BRElBTiBTWUxMQUJJQ1MgWU9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTJDO0NBTkFESUFOIFNZTExBQklDUyBZLUNSRUUgWU9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTJEO0NBTkFESUFOIFNZTExBQklDUyBZQTtMbzswO0w7Ozs7O047Ozs7OworMTUyRTtDQU5BRElBTiBTWUxMQUJJQ1MgWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTJGO0NBTkFESUFOIFNZTExBQklDUyBZV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1MzA7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBZV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1MzE7Q0FOQURJQU4gU1lMTEFCSUNTIFlXSTtMbzswO0w7Ozs7O047Ozs7OworMTUzMjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFlXSTtMbzswO0w7Ozs7O047Ozs7OworMTUzMztDQU5BRElBTiBTWUxMQUJJQ1MgWVdJSTtMbzswO0w7Ozs7O047Ozs7OworMTUzNDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFlXSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1MzU7Q0FOQURJQU4gU1lMTEFCSUNTIFlXTztMbzswO0w7Ozs7O047Ozs7OworMTUzNjtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFlXTztMbzswO0w7Ozs7O047Ozs7OworMTUzNztDQU5BRElBTiBTWUxMQUJJQ1MgWVdPTztMbzswO0w7Ozs7O047Ozs7OworMTUzODtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFlXT087TG87MDtMOzs7OztOOzs7OzsKKzE1Mzk7Q0FOQURJQU4gU1lMTEFCSUNTIFlXQTtMbzswO0w7Ozs7O047Ozs7OworMTUzQTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFlXQTtMbzswO0w7Ozs7O047Ozs7OworMTUzQjtDQU5BRElBTiBTWUxMQUJJQ1MgWVdBQTtMbzswO0w7Ozs7O047Ozs7OworMTUzQztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFlXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1M0Q7Q0FOQURJQU4gU1lMTEFCSUNTIE5BU0tBUEkgWVdBQTtMbzswO0w7Ozs7O047Ozs7OworMTUzRTtDQU5BRElBTiBTWUxMQUJJQ1MgWTtMbzswO0w7Ozs7O047Ozs7OworMTUzRjtDQU5BRElBTiBTWUxMQUJJQ1MgQklCTEUtQ1JFRSBZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQwO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgWTtMbzswO0w7Ozs7O047Ozs7OworMTU0MTtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQyO0NBTkFESUFOIFNZTExBQklDUyBSRTtMbzswO0w7Ozs7O047Ozs7OworMTU0MztDQU5BRElBTiBTWUxMQUJJQ1MgUi1DUkVFIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ0O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgTEU7TG87MDtMOzs7OztOOzs7OzsKKzE1NDU7Q0FOQURJQU4gU1lMTEFCSUNTIFJBQUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NDY7Q0FOQURJQU4gU1lMTEFCSUNTIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ3O0NBTkFESUFOIFNZTExBQklDUyBSSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1NDg7Q0FOQURJQU4gU1lMTEFCSUNTIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTQ5O0NBTkFESUFOIFNZTExBQklDUyBST087TG87MDtMOzs7OztOOzs7OzsKKzE1NEE7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBMTztMbzswO0w7Ozs7O047Ozs7OworMTU0QjtDQU5BRElBTiBTWUxMQUJJQ1MgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE1NEM7Q0FOQURJQU4gU1lMTEFCSUNTIFJBQTtMbzswO0w7Ozs7O047Ozs7OworMTU0RDtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTRFO0NBTkFESUFOIFNZTExBQklDUyBSV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTRGO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUldBQTtMbzswO0w7Ozs7O047Ozs7OworMTU1MDtDQU5BRElBTiBTWUxMQUJJQ1MgUjtMbzswO0w7Ozs7O047Ozs7OworMTU1MTtDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFI7TG87MDtMOzs7OztOOzs7OzsKKzE1NTI7Q0FOQURJQU4gU1lMTEFCSUNTIE1FRElBTCBSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTUzO0NBTkFESUFOIFNZTExBQklDUyBGRTtMbzswO0w7Ozs7O047Ozs7OworMTU1NDtDQU5BRElBTiBTWUxMQUJJQ1MgRkFBSTtMbzswO0w7Ozs7O047Ozs7OworMTU1NTtDQU5BRElBTiBTWUxMQUJJQ1MgRkk7TG87MDtMOzs7OztOOzs7OzsKKzE1NTY7Q0FOQURJQU4gU1lMTEFCSUNTIEZJSTtMbzswO0w7Ozs7O047Ozs7OworMTU1NztDQU5BRElBTiBTWUxMQUJJQ1MgRk87TG87MDtMOzs7OztOOzs7OzsKKzE1NTg7Q0FOQURJQU4gU1lMTEFCSUNTIEZPTztMbzswO0w7Ozs7O047Ozs7OworMTU1OTtDQU5BRElBTiBTWUxMQUJJQ1MgRkE7TG87MDtMOzs7OztOOzs7OzsKKzE1NUE7Q0FOQURJQU4gU1lMTEFCSUNTIEZBQTtMbzswO0w7Ozs7O047Ozs7OworMTU1QjtDQU5BRElBTiBTWUxMQUJJQ1MgRldBQTtMbzswO0w7Ozs7O047Ozs7OworMTU1QztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIEZXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NUQ7Q0FOQURJQU4gU1lMTEFCSUNTIEY7TG87MDtMOzs7OztOOzs7OzsKKzE1NUU7Q0FOQURJQU4gU1lMTEFCSUNTIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTU1RjtDQU5BRElBTiBTWUxMQUJJQ1MgTi1DUkVFIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTU2MDtDQU5BRElBTiBTWUxMQUJJQ1MgVEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTYxO0NBTkFESUFOIFNZTExBQklDUyBOLUNSRUUgVEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTYyO0NBTkFESUFOIFNZTExBQklDUyBUSElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTYzO0NBTkFESUFOIFNZTExBQklDUyBOLUNSRUUgVEhJSTtMbzswO0w7Ozs7O047Ozs7OworMTU2NDtDQU5BRElBTiBTWUxMQUJJQ1MgVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTY1O0NBTkFESUFOIFNZTExBQklDUyBUSE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTY2O0NBTkFESUFOIFNZTExBQklDUyBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1Njc7Q0FOQURJQU4gU1lMTEFCSUNTIFRIQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1Njg7Q0FOQURJQU4gU1lMTEFCSUNTIFRIV0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTY5O0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgVEhXQUE7TG87MDtMOzs7OztOOzs7OzsKKzE1NkE7Q0FOQURJQU4gU1lMTEFCSUNTIFRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTZCO0NBTkFESUFOIFNZTExBQklDUyBUVEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTZDO0NBTkFESUFOIFNZTExBQklDUyBUVEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTZEO0NBTkFESUFOIFNZTExBQklDUyBUVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTZFO0NBTkFESUFOIFNZTExBQklDUyBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTZGO0NBTkFESUFOIFNZTExBQklDUyBUVEg7TG87MDtMOzs7OztOOzs7OzsKKzE1NzA7Q0FOQURJQU4gU1lMTEFCSUNTIFRZRTtMbzswO0w7Ozs7O047Ozs7OworMTU3MTtDQU5BRElBTiBTWUxMQUJJQ1MgVFlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTcyO0NBTkFESUFOIFNZTExBQklDUyBUWU87TG87MDtMOzs7OztOOzs7OzsKKzE1NzM7Q0FOQURJQU4gU1lMTEFCSUNTIFRZQTtMbzswO0w7Ozs7O047Ozs7OworMTU3NDtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBIRTtMbzswO0w7Ozs7O047Ozs7OworMTU3NTtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBISTtMbzswO0w7Ozs7O047Ozs7OworMTU3NjtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBISUk7TG87MDtMOzs7OztOOzs7OzsKKzE1Nzc7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSE87TG87MDtMOzs7OztOOzs7OzsKKzE1Nzg7Q0FOQURJQU4gU1lMTEFCSUNTIE5VTkFWSUsgSE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTc5O0NBTkFESUFOIFNZTExBQklDUyBOVU5BVklLIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTdBO0NBTkFESUFOIFNZTExBQklDUyBOVU5BVklLIEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTU3QjtDQU5BRElBTiBTWUxMQUJJQ1MgTlVOQVZJSyBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTdDO0NBTkFESUFOIFNZTExBQklDUyBOVU5BVlVUIEg7TG87MDtMOzs7OztOOzs7OzsKKzE1N0Q7Q0FOQURJQU4gU1lMTEFCSUNTIEhLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTdFO0NBTkFESUFOIFNZTExBQklDUyBRQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTdGO0NBTkFESUFOIFNZTExBQklDUyBRSTtMbzswO0w7Ozs7O047Ozs7OworMTU4MDtDQU5BRElBTiBTWUxMQUJJQ1MgUUlJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTgxO0NBTkFESUFOIFNZTExBQklDUyBRTztMbzswO0w7Ozs7O047Ozs7OworMTU4MjtDQU5BRElBTiBTWUxMQUJJQ1MgUU9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTgzO0NBTkFESUFOIFNZTExBQklDUyBRQTtMbzswO0w7Ozs7O047Ozs7OworMTU4NDtDQU5BRElBTiBTWUxMQUJJQ1MgUUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTg1O0NBTkFESUFOIFNZTExBQklDUyBRO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTg2O0NBTkFESUFOIFNZTExBQklDUyBUTEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTg3O0NBTkFESUFOIFNZTExBQklDUyBUTEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTg4O0NBTkFESUFOIFNZTExBQklDUyBUTEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTg5O0NBTkFESUFOIFNZTExBQklDUyBUTEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNThBO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUkU7TG87MDtMOzs7OztOOzs7OzsKKzE1OEI7Q0FOQURJQU4gU1lMTEFCSUNTIFdFU1QtQ1JFRSBSSTtMbzswO0w7Ozs7O047Ozs7OworMTU4QztDQU5BRElBTiBTWUxMQUJJQ1MgV0VTVC1DUkVFIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNThEO0NBTkFESUFOIFNZTExBQklDUyBXRVNULUNSRUUgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE1OEU7Q0FOQURJQU4gU1lMTEFCSUNTIE5HQUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNThGO0NBTkFESUFOIFNZTExBQklDUyBOR0k7TG87MDtMOzs7OztOOzs7OzsKKzE1OTA7Q0FOQURJQU4gU1lMTEFCSUNTIE5HSUk7TG87MDtMOzs7OztOOzs7OzsKKzE1OTE7Q0FOQURJQU4gU1lMTEFCSUNTIE5HTztMbzswO0w7Ozs7O047Ozs7OworMTU5MjtDQU5BRElBTiBTWUxMQUJJQ1MgTkdPTztMbzswO0w7Ozs7O047Ozs7OworMTU5MztDQU5BRElBTiBTWUxMQUJJQ1MgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTk0O0NBTkFESUFOIFNZTExBQklDUyBOR0FBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTk1O0NBTkFESUFOIFNZTExBQklDUyBORztMbzswO0w7Ozs7O047Ozs7OworMTU5NjtDQU5BRElBTiBTWUxMQUJJQ1MgTk5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTk3O0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTk4O0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgU0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTk5O0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgU0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTlBO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTlCO0NBTkFESUFOIFNZTExBQklDUyBXT09EUy1DUkVFIFRIRTtMbzswO0w7Ozs7O047Ozs7OworMTU5QztDQU5BRElBTiBTWUxMQUJJQ1MgV09PRFMtQ1JFRSBUSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1OUQ7Q0FOQURJQU4gU1lMTEFCSUNTIFdPT0RTLUNSRUUgVEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNTlFO0NBTkFESUFOIFNZTExBQklDUyBXT09EUy1DUkVFIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTU5RjtDQU5BRElBTiBTWUxMQUJJQ1MgV09PRFMtQ1JFRSBUSDtMbzswO0w7Ozs7O047Ozs7OworMTVBMDtDQU5BRElBTiBTWUxMQUJJQ1MgTEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUExO0NBTkFESUFOIFNZTExBQklDUyBMSElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUEyO0NBTkFESUFOIFNZTExBQklDUyBMSE87TG87MDtMOzs7OztOOzs7OzsKKzE1QTM7Q0FOQURJQU4gU1lMTEFCSUNTIExIT087TG87MDtMOzs7OztOOzs7OzsKKzE1QTQ7Q0FOQURJQU4gU1lMTEFCSUNTIExIQTtMbzswO0w7Ozs7O047Ozs7OworMTVBNTtDQU5BRElBTiBTWUxMQUJJQ1MgTEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTVBNjtDQU5BRElBTiBTWUxMQUJJQ1MgTEg7TG87MDtMOzs7OztOOzs7OzsKKzE1QTc7Q0FOQURJQU4gU1lMTEFCSUNTIFRILUNSRUUgVEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUE4O0NBTkFESUFOIFNZTExBQklDUyBUSC1DUkVFIFRISTtMbzswO0w7Ozs7O047Ozs7OworMTVBOTtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSElJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUFBO0NBTkFESUFOIFNZTExBQklDUyBUSC1DUkVFIFRITztMbzswO0w7Ozs7O047Ozs7OworMTVBQjtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUFDO0NBTkFESUFOIFNZTExBQklDUyBUSC1DUkVFIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTVBRDtDQU5BRElBTiBTWUxMQUJJQ1MgVEgtQ1JFRSBUSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUFFO0NBTkFESUFOIFNZTExBQklDUyBUSC1DUkVFIFRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUFGO0NBTkFESUFOIFNZTExBQklDUyBBSVZJTElLIEI7TG87MDtMOzs7OztOOzs7OzsKKzE1QjA7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUIxO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgSTtMbzswO0w7Ozs7O047Ozs7OworMTVCMjtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIE87TG87MDtMOzs7OztOOzs7OzsKKzE1QjM7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUI0O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1QjU7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBXSTtMbzswO0w7Ozs7O047Ozs7OworMTVCNjtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUI3O0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1Qjg7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBORTtMbzswO0w7Ozs7O047Ozs7OworMTVCOTtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUJBO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgTk87TG87MDtMOzs7OztOOzs7OzsKKzE1QkI7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBOQTtMbzswO0w7Ozs7O047Ozs7OworMTVCQztDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUJEO0NBTkFESUFOIFNZTExBQklDUyBCTEFDS0ZPT1QgS0k7TG87MDtMOzs7OztOOzs7OzsKKzE1QkU7Q0FOQURJQU4gU1lMTEFCSUNTIEJMQUNLRk9PVCBLTztMbzswO0w7Ozs7O047Ozs7OworMTVCRjtDQU5BRElBTiBTWUxMQUJJQ1MgQkxBQ0tGT09UIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUMwO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1QzE7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBISTtMbzswO0w7Ozs7O047Ozs7OworMTVDMjtDQU5BRElBTiBTWUxMQUJJQ1MgU0FZSVNJIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUMzO0NBTkFESUFOIFNZTExBQklDUyBTQVlJU0kgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE1QzQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUM1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdITztMbzswO0w7Ozs7O047Ozs7OworMTVDNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHSEU7TG87MDtMOzs7OztOOzs7OzsKKzE1Qzc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0hFRTtMbzswO0w7Ozs7O047Ozs7OworMTVDODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBHSEk7TG87MDtMOzs7OztOOzs7OzsKKzE1Qzk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUNBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUNCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUNDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUNEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFJFRTtMbzswO0w7Ozs7O047Ozs7OworMTVDRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSSTtMbzswO0w7Ozs7O047Ozs7OworMTVDRjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMTVEMDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBXVTtMbzswO0w7Ozs7O047Ozs7OworMTVEMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMTVEMjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBXRTtMbzswO0w7Ozs7O047Ozs7OworMTVEMztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBXRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1RDQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1RDU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzE1RDY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSFdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUQ3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEhXTztMbzswO0w7Ozs7O047Ozs7OworMTVEODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBIV0U7TG87MDtMOzs7OztOOzs7OzsKKzE1RDk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSFdFRTtMbzswO0w7Ozs7O047Ozs7OworMTVEQTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBIV0k7TG87MDtMOzs7OztOOzs7OzsKKzE1REI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNURDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRIVTtMbzswO0w7Ozs7O047Ozs7OworMTVERDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUSE87TG87MDtMOzs7OztOOzs7OzsKKzE1REU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNURGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRIRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1RTA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUUxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTVFMjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFU7TG87MDtMOzs7OztOOzs7OzsKKzE1RTM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUU0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRURTtMbzswO0w7Ozs7O047Ozs7OworMTVFNTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUU2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUSTtMbzswO0w7Ozs7O047Ozs7OworMTVFNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzE1RTg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUFU7TG87MDtMOzs7OztOOzs7OzsKKzE1RTk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUE87TG87MDtMOzs7OztOOzs7OzsKKzE1RUE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUEU7TG87MDtMOzs7OztOOzs7OzsKKzE1RUI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgUEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUVFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFA7TG87MDtMOzs7OztOOzs7OzsKKzE1RUY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR1U7TG87MDtMOzs7OztOOzs7OzsKKzE1RjA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR087TG87MDtMOzs7OztOOzs7OzsKKzE1RjE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0U7TG87MDtMOzs7OztOOzs7OzsKKzE1RjI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgR0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUYzO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUY0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUY1O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtIVTtMbzswO0w7Ozs7O047Ozs7OworMTVGNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLSE87TG87MDtMOzs7OztOOzs7OzsKKzE1Rjc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUY4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtIRUU7TG87MDtMOzs7OztOOzs7OzsKKzE1Rjk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUZBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMTVGQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLS1U7TG87MDtMOzs7OztOOzs7OzsKKzE1RkM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0tPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUZEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtLRTtMbzswO0w7Ozs7O047Ozs7OworMTVGRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLS0VFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNUZGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEtLSTtMbzswO0w7Ozs7O047Ozs7OworMTYwMDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBLS0E7TG87MDtMOzs7OztOOzs7OzsKKzE2MDE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgS0s7TG87MDtMOzs7OztOOzs7OzsKKzE2MDI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTlU7TG87MDtMOzs7OztOOzs7OzsKKzE2MDM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzE2MDQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTkU7TG87MDtMOzs7OztOOzs7OzsKKzE2MDU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjA2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjA3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjA4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjA5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjBBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjBCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIE1FRTtMbzswO0w7Ozs7O047Ozs7OworMTYwQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNSTtMbzswO0w7Ozs7O047Ozs7OworMTYwRDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTYwRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBZVTtMbzswO0w7Ozs7O047Ozs7OworMTYwRjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMTYxMDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBZRTtMbzswO0w7Ozs7O047Ozs7OworMTYxMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBZRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWUk7TG87MDtMOzs7OztOOzs7OzsKKzE2MTM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE2MTQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSlU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTU7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBKVTtMbzswO0w7Ozs7O047Ozs7OworMTYxNjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKTztMbzswO0w7Ozs7O047Ozs7OworMTYxNztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKRTtMbzswO0w7Ozs7O047Ozs7OworMTYxODtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MTk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkk7TG87MDtMOzs7OztOOzs7OzsKKzE2MUE7Q0FOQURJQU4gU1lMTEFCSUNTIFNBWUlTSSBKSTtMbzswO0w7Ozs7O047Ozs7OworMTYxQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKQTtMbzswO0w7Ozs7O047Ozs7OworMTYxQztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKSlU7TG87MDtMOzs7OztOOzs7OzsKKzE2MUQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgSkpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjFFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpKRTtMbzswO0w7Ozs7O047Ozs7OworMTYxRjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKSkVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjIwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIEpKSTtMbzswO0w7Ozs7O047Ozs7OworMTYyMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBKSkE7TG87MDtMOzs7OztOOzs7OzsKKzE2MjI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTFU7TG87MDtMOzs7OztOOzs7OzsKKzE2MjM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTE87TG87MDtMOzs7OztOOzs7OzsKKzE2MjQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEU7TG87MDtMOzs7OztOOzs7OzsKKzE2MjU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjI2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjI3O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjI4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERMVTtMbzswO0w7Ozs7O047Ozs7OworMTYyOTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBETE87TG87MDtMOzs7OztOOzs7OzsKKzE2MkE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjJCO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERMRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2MkM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjJEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERMQTtMbzswO0w7Ozs7O047Ozs7OworMTYyRTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSFU7TG87MDtMOzs7OztOOzs7OzsKKzE2MkY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgTEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjMwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExIRTtMbzswO0w7Ozs7O047Ozs7OworMTYzMTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjMyO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIExISTtMbzswO0w7Ozs7O047Ozs7OworMTYzMztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBMSEE7TG87MDtMOzs7OztOOzs7OzsKKzE2MzQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExIVTtMbzswO0w7Ozs7O047Ozs7OworMTYzNTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjM2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMSEU7TG87MDtMOzs7OztOOzs7OzsKKzE2Mzc7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExIRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2Mzg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExISTtMbzswO0w7Ozs7O047Ozs7OworMTYzOTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjNBO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMVTtMbzswO0w7Ozs7O047Ozs7OworMTYzQjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUTE87TG87MDtMOzs7OztOOzs7OzsKKzE2M0M7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjNEO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2M0U7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjNGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRMQTtMbzswO0w7Ozs7O047Ozs7OworMTY0MDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBaVTtMbzswO0w7Ozs7O047Ozs7OworMTY0MTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBaTztMbzswO0w7Ozs7O047Ozs7OworMTY0MjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBaRTtMbzswO0w7Ozs7O047Ozs7OworMTY0MztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBaRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NDQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWkk7TG87MDtMOzs7OztOOzs7OzsKKzE2NDU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWkE7TG87MDtMOzs7OztOOzs7OzsKKzE2NDY7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgWjtMbzswO0w7Ozs7O047Ozs7OworMTY0NztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBJTklUSUFMIFo7TG87MDtMOzs7OztOOzs7OzsKKzE2NDg7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRFpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjQ5O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIERaTztMbzswO0w7Ozs7O047Ozs7OworMTY0QTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBEWkU7TG87MDtMOzs7OztOOzs7OzsKKzE2NEI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRFpFRTtMbzswO0w7Ozs7O047Ozs7OworMTY0QztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBEWkk7TG87MDtMOzs7OztOOzs7OzsKKzE2NEQ7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgRFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjRFO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjRGO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjUwO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjUxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNFRTtMbzswO0w7Ozs7O047Ozs7OworMTY1MjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSTtMbzswO0w7Ozs7O047Ozs7OworMTY1MztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTY1NDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSFU7TG87MDtMOzs7OztOOzs7OzsKKzE2NTU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjU2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTY1NztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjU4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFNISTtMbzswO0w7Ozs7O047Ozs7OworMTY1OTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzE2NUE7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgU0g7TG87MDtMOzs7OztOOzs7OzsKKzE2NUI7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjVDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRTTztMbzswO0w7Ozs7O047Ozs7OworMTY1RDtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUU0U7TG87MDtMOzs7OztOOzs7OzsKKzE2NUU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFNFRTtMbzswO0w7Ozs7O047Ozs7OworMTY1RjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUU0k7TG87MDtMOzs7OztOOzs7OzsKKzE2NjA7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjYxO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIENIVTtMbzswO0w7Ozs7O047Ozs7OworMTY2MjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBDSE87TG87MDtMOzs7OztOOzs7OzsKKzE2NjM7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgQ0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjY0O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIENIRUU7TG87MDtMOzs7OztOOzs7OzsKKzE2NjU7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgQ0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjY2O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMTY2NztDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFNVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjY4O0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUU087TG87MDtMOzs7OztOOzs7OzsKKzE2Njk7Q0FOQURJQU4gU1lMTEFCSUNTIENBUlJJRVIgVFRTRTtMbzswO0w7Ozs7O047Ozs7OworMTY2QTtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFNFRTtMbzswO0w7Ozs7O047Ozs7OworMTY2QjtDQU5BRElBTiBTWUxMQUJJQ1MgQ0FSUklFUiBUVFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjZDO0NBTkFESUFOIFNZTExBQklDUyBDQVJSSUVSIFRUU0E7TG87MDtMOzs7OztOOzs7OzsKKzE2NkQ7Q0FOQURJQU4gU1lMTEFCSUNTIENISSBTSUdOO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxNjZFO0NBTkFESUFOIFNZTExBQklDUyBGVUxMIFNUT1A7UG87MDtMOzs7OztOOzs7OzsKKzE2NkY7Q0FOQURJQU4gU1lMTEFCSUNTIFFBSTtMbzswO0w7Ozs7O047Ozs7OworMTY3MDtDQU5BRElBTiBTWUxMQUJJQ1MgTkdBSTtMbzswO0w7Ozs7O047Ozs7OworMTY3MTtDQU5BRElBTiBTWUxMQUJJQ1MgTk5HSTtMbzswO0w7Ozs7O047Ozs7OworMTY3MjtDQU5BRElBTiBTWUxMQUJJQ1MgTk5HSUk7TG87MDtMOzs7OztOOzs7OzsKKzE2NzM7Q0FOQURJQU4gU1lMTEFCSUNTIE5OR087TG87MDtMOzs7OztOOzs7OzsKKzE2NzQ7Q0FOQURJQU4gU1lMTEFCSUNTIE5OR09PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjc1O0NBTkFESUFOIFNZTExBQklDUyBOTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjc2O0NBTkFESUFOIFNZTExBQklDUyBOTkdBQTtMbzswO0w7Ozs7O047Ozs7OworMTY4MDtPR0hBTSBTUEFDRSBNQVJLO1pzOzA7V1M7Ozs7O047Ozs7OworMTY4MTtPR0hBTSBMRVRURVIgQkVJVEg7TG87MDtMOzs7OztOOzs7OzsKKzE2ODI7T0dIQU0gTEVUVEVSIExVSVM7TG87MDtMOzs7OztOOzs7OzsKKzE2ODM7T0dIQU0gTEVUVEVSIEZFQVJOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjg0O09HSEFNIExFVFRFUiBTQUlMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjg1O09HSEFNIExFVFRFUiBOSU9OO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjg2O09HSEFNIExFVFRFUiBVQVRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjg3O09HSEFNIExFVFRFUiBEQUlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjg4O09HSEFNIExFVFRFUiBUSU5ORTtMbzswO0w7Ozs7O047Ozs7OworMTY4OTtPR0hBTSBMRVRURVIgQ09MTDtMbzswO0w7Ozs7O047Ozs7OworMTY4QTtPR0hBTSBMRVRURVIgQ0VJUlQ7TG87MDtMOzs7OztOOzs7OzsKKzE2OEI7T0dIQU0gTEVUVEVSIE1VSU47TG87MDtMOzs7OztOOzs7OzsKKzE2OEM7T0dIQU0gTEVUVEVSIEdPUlQ7TG87MDtMOzs7OztOOzs7OzsKKzE2OEQ7T0dIQU0gTEVUVEVSIE5HRUFEQUw7TG87MDtMOzs7OztOOzs7OzsKKzE2OEU7T0dIQU0gTEVUVEVSIFNUUkFJRjtMbzswO0w7Ozs7O047Ozs7OworMTY4RjtPR0hBTSBMRVRURVIgUlVJUztMbzswO0w7Ozs7O047Ozs7OworMTY5MDtPR0hBTSBMRVRURVIgQUlMTTtMbzswO0w7Ozs7O047Ozs7OworMTY5MTtPR0hBTSBMRVRURVIgT05OO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjkyO09HSEFNIExFVFRFUiBVUjtMbzswO0w7Ozs7O047Ozs7OworMTY5MztPR0hBTSBMRVRURVIgRUFESEFESDtMbzswO0w7Ozs7O047Ozs7OworMTY5NDtPR0hBTSBMRVRURVIgSU9ESEFESDtMbzswO0w7Ozs7O047Ozs7OworMTY5NTtPR0hBTSBMRVRURVIgRUFCSEFESDtMbzswO0w7Ozs7O047Ozs7OworMTY5NjtPR0hBTSBMRVRURVIgT1I7TG87MDtMOzs7OztOOzs7OzsKKzE2OTc7T0dIQU0gTEVUVEVSIFVJTExFQU5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjk4O09HSEFNIExFVFRFUiBJRklOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNjk5O09HSEFNIExFVFRFUiBFQU1IQU5DSE9MTDtMbzswO0w7Ozs7O047Ozs7OworMTY5QTtPR0hBTSBMRVRURVIgUEVJVEg7TG87MDtMOzs7OztOOzs7OzsKKzE2OUI7T0dIQU0gRkVBVEhFUiBNQVJLO1BzOzA7T047Ozs7O047Ozs7OworMTY5QztPR0hBTSBSRVZFUlNFRCBGRUFUSEVSIE1BUks7UGU7MDtPTjs7Ozs7Tjs7Ozs7CisxNkEwO1JVTklDIExFVFRFUiBGRUhVIEZFT0ggRkUgRjtMbzswO0w7Ozs7O047Ozs7OworMTZBMTtSVU5JQyBMRVRURVIgVjtMbzswO0w7Ozs7O047Ozs7OworMTZBMjtSVU5JQyBMRVRURVIgVVJVWiBVUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkEzO1JVTklDIExFVFRFUiBZUjtMbzswO0w7Ozs7O047Ozs7OworMTZBNDtSVU5JQyBMRVRURVIgWTtMbzswO0w7Ozs7O047Ozs7OworMTZBNTtSVU5JQyBMRVRURVIgVztMbzswO0w7Ozs7O047Ozs7OworMTZBNjtSVU5JQyBMRVRURVIgVEhVUklTQVogVEhVUlMgVEhPUk47TG87MDtMOzs7OztOOzs7OzsKKzE2QTc7UlVOSUMgTEVUVEVSIEVUSDtMbzswO0w7Ozs7O047Ozs7OworMTZBODtSVU5JQyBMRVRURVIgQU5TVVogQTtMbzswO0w7Ozs7O047Ozs7OworMTZBOTtSVU5JQyBMRVRURVIgT1MgTztMbzswO0w7Ozs7O047Ozs7OworMTZBQTtSVU5JQyBMRVRURVIgQUMgQTtMbzswO0w7Ozs7O047Ozs7OworMTZBQjtSVU5JQyBMRVRURVIgQUVTQztMbzswO0w7Ozs7O047Ozs7OworMTZBQztSVU5JQyBMRVRURVIgTE9ORy1CUkFOQ0gtT1NTIE87TG87MDtMOzs7OztOOzs7OzsKKzE2QUQ7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctT1NTIE87TG87MDtMOzs7OztOOzs7OzsKKzE2QUU7UlVOSUMgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzE2QUY7UlVOSUMgTEVUVEVSIE9FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkIwO1JVTklDIExFVFRFUiBPTjtMbzswO0w7Ozs7O047Ozs7OworMTZCMTtSVU5JQyBMRVRURVIgUkFJRE8gUkFEIFJFSUQgUjtMbzswO0w7Ozs7O047Ozs7OworMTZCMjtSVU5JQyBMRVRURVIgS0FVTkE7TG87MDtMOzs7OztOOzs7OzsKKzE2QjM7UlVOSUMgTEVUVEVSIENFTjtMbzswO0w7Ozs7O047Ozs7OworMTZCNDtSVU5JQyBMRVRURVIgS0FVTiBLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkI1O1JVTklDIExFVFRFUiBHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkI2O1JVTklDIExFVFRFUiBFTkc7TG87MDtMOzs7OztOOzs7OzsKKzE2Qjc7UlVOSUMgTEVUVEVSIEdFQk8gR1lGVSBHO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkI4O1JVTklDIExFVFRFUiBHQVI7TG87MDtMOzs7OztOOzs7OzsKKzE2Qjk7UlVOSUMgTEVUVEVSIFdVTkpPIFdZTk4gVztMbzswO0w7Ozs7O047Ozs7OworMTZCQTtSVU5JQyBMRVRURVIgSEFHTEFaIEg7TG87MDtMOzs7OztOOzs7OzsKKzE2QkI7UlVOSUMgTEVUVEVSIEhBRUdMIEg7TG87MDtMOzs7OztOOzs7OzsKKzE2QkM7UlVOSUMgTEVUVEVSIExPTkctQlJBTkNILUhBR0FMTCBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkJEO1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLUhBR0FMTCBIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkJFO1JVTklDIExFVFRFUiBOQVVESVogTllEIE5BVUQgTjtMbzswO0w7Ozs7O047Ozs7OworMTZCRjtSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1OQVVEIE47TG87MDtMOzs7OztOOzs7OzsKKzE2QzA7UlVOSUMgTEVUVEVSIERPVFRFRC1OO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkMxO1JVTklDIExFVFRFUiBJU0FaIElTIElTUyBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkMyO1JVTklDIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkMzO1JVTklDIExFVFRFUiBKRVJBTiBKO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM0O1JVTklDIExFVFRFUiBHRVI7TG87MDtMOzs7OztOOzs7OzsKKzE2QzU7UlVOSUMgTEVUVEVSIExPTkctQlJBTkNILUFSIEFFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM2O1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLUFSIEE7TG87MDtMOzs7OztOOzs7OzsKKzE2Qzc7UlVOSUMgTEVUVEVSIElXQVogRU9IO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkM4O1JVTklDIExFVFRFUiBQRVJUSE8gUEVPUlRIIFA7TG87MDtMOzs7OztOOzs7OzsKKzE2Qzk7UlVOSUMgTEVUVEVSIEFMR0laIEVPTEhYO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkNBO1JVTklDIExFVFRFUiBTT1dJTE8gUztMbzswO0w7Ozs7O047Ozs7OworMTZDQjtSVU5JQyBMRVRURVIgU0lHRUwgTE9ORy1CUkFOQ0gtU09MIFM7TG87MDtMOzs7OztOOzs7OzsKKzE2Q0M7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctU09MIFM7TG87MDtMOzs7OztOOzs7OzsKKzE2Q0Q7UlVOSUMgTEVUVEVSIEM7TG87MDtMOzs7OztOOzs7OzsKKzE2Q0U7UlVOSUMgTEVUVEVSIFo7TG87MDtMOzs7OztOOzs7OzsKKzE2Q0Y7UlVOSUMgTEVUVEVSIFRJV0FaIFRJUiBUWVIgVDtMbzswO0w7Ozs7O047Ozs7OworMTZEMDtSVU5JQyBMRVRURVIgU0hPUlQtVFdJRy1UWVIgVDtMbzswO0w7Ozs7O047Ozs7OworMTZEMTtSVU5JQyBMRVRURVIgRDtMbzswO0w7Ozs7O047Ozs7OworMTZEMjtSVU5JQyBMRVRURVIgQkVSS0FOQU4gQkVPUkMgQkpBUktBTiBCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQzO1JVTklDIExFVFRFUiBTSE9SVC1UV0lHLUJKQVJLQU4gQjtMbzswO0w7Ozs7O047Ozs7OworMTZENDtSVU5JQyBMRVRURVIgRE9UVEVELVA7TG87MDtMOzs7OztOOzs7OzsKKzE2RDU7UlVOSUMgTEVUVEVSIE9QRU4tUDtMbzswO0w7Ozs7O047Ozs7OworMTZENjtSVU5JQyBMRVRURVIgRUhXQVogRUggRTtMbzswO0w7Ozs7O047Ozs7OworMTZENztSVU5JQyBMRVRURVIgTUFOTkFaIE1BTiBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkQ4O1JVTklDIExFVFRFUiBMT05HLUJSQU5DSC1NQURSIE07TG87MDtMOzs7OztOOzs7OzsKKzE2RDk7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctTUFEUiBNO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkRBO1JVTklDIExFVFRFUiBMQVVLQVogTEFHVSBMT0dSIEw7TG87MDtMOzs7OztOOzs7OzsKKzE2REI7UlVOSUMgTEVUVEVSIERPVFRFRC1MO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkRDO1JVTklDIExFVFRFUiBJTkdXQVo7TG87MDtMOzs7OztOOzs7OzsKKzE2REQ7UlVOSUMgTEVUVEVSIElORztMbzswO0w7Ozs7O047Ozs7OworMTZERTtSVU5JQyBMRVRURVIgREFHQVogREFFRyBEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkRGO1JVTklDIExFVFRFUiBPVEhBTEFOIEVUSEVMIE87TG87MDtMOzs7OztOOzs7OzsKKzE2RTA7UlVOSUMgTEVUVEVSIEVBUjtMbzswO0w7Ozs7O047Ozs7OworMTZFMTtSVU5JQyBMRVRURVIgSU9SO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkUyO1JVTklDIExFVFRFUiBDV0VPUlRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkUzO1JVTklDIExFVFRFUiBDQUxDO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNkU0O1JVTklDIExFVFRFUiBDRUFMQztMbzswO0w7Ozs7O047Ozs7OworMTZFNTtSVU5JQyBMRVRURVIgU1RBTjtMbzswO0w7Ozs7O047Ozs7OworMTZFNjtSVU5JQyBMRVRURVIgTE9ORy1CUkFOQ0gtWVI7TG87MDtMOzs7OztOOzs7OzsKKzE2RTc7UlVOSUMgTEVUVEVSIFNIT1JULVRXSUctWVI7TG87MDtMOzs7OztOOzs7OzsKKzE2RTg7UlVOSUMgTEVUVEVSIElDRUxBTkRJQy1ZUjtMbzswO0w7Ozs7O047Ozs7OworMTZFOTtSVU5JQyBMRVRURVIgUTtMbzswO0w7Ozs7O047Ozs7OworMTZFQTtSVU5JQyBMRVRURVIgWDtMbzswO0w7Ozs7O047Ozs7OworMTZFQjtSVU5JQyBTSU5HTEUgUFVOQ1RVQVRJT047UG87MDtMOzs7OztOOzs7OzsKKzE2RUM7UlVOSUMgTVVMVElQTEUgUFVOQ1RVQVRJT047UG87MDtMOzs7OztOOzs7OzsKKzE2RUQ7UlVOSUMgQ1JPU1MgUFVOQ1RVQVRJT047UG87MDtMOzs7OztOOzs7OzsKKzE2RUU7UlVOSUMgQVJMQVVHIFNZTUJPTDtObDswO0w7Ozs7MTc7Tjs7Z29sZGVuIG51bWJlciAxNzs7OworMTZFRjtSVU5JQyBUVklNQURVUiBTWU1CT0w7Tmw7MDtMOzs7OzE4O047O2dvbGRlbiBudW1iZXIgMTg7OzsKKzE2RjA7UlVOSUMgQkVMR1RIT1IgU1lNQk9MO05sOzA7TDs7OzsxOTtOOztnb2xkZW4gbnVtYmVyIDE5Ozs7CisxNzAwO1RBR0FMT0cgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MDE7VEFHQUxPRyBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTcwMjtUQUdBTE9HIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzAzO1RBR0FMT0cgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzA0O1RBR0FMT0cgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzA1O1RBR0FMT0cgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTcwNjtUQUdBTE9HIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTcwNztUQUdBTE9HIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTcwODtUQUdBTE9HIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTcwOTtUQUdBTE9HIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTcwQTtUQUdBTE9HIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTcwQjtUQUdBTE9HIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTcwQztUQUdBTE9HIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTcwRTtUQUdBTE9HIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTcwRjtUQUdBTE9HIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTcxMDtUQUdBTE9HIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTcxMTtUQUdBTE9HIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTcxMjtUQUdBTE9HIFZPV0VMIFNJR04gSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzEzO1RBR0FMT0cgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3MTQ7VEFHQUxPRyBTSUdOIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CisxNzIwO0hBTlVOT08gTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzE3MjE7SEFOVU5PTyBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTcyMjtIQU5VTk9PIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzIzO0hBTlVOT08gTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzI0O0hBTlVOT08gTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzI1O0hBTlVOT08gTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTcyNjtIQU5VTk9PIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTcyNztIQU5VTk9PIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTcyODtIQU5VTk9PIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTcyOTtIQU5VTk9PIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTcyQTtIQU5VTk9PIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTcyQjtIQU5VTk9PIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTcyQztIQU5VTk9PIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTcyRDtIQU5VTk9PIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMTcyRTtIQU5VTk9PIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTcyRjtIQU5VTk9PIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTczMDtIQU5VTk9PIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTczMTtIQU5VTk9PIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTczMjtIQU5VTk9PIFZPV0VMIFNJR04gSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzMzO0hBTlVOT08gVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3MzQ7SEFOVU5PTyBTSUdOIFBBTVVEUE9EO01uOzk7TlNNOzs7OztOOzs7OzsKKzE3MzU7UEhJTElQUElORSBTSU5HTEUgUFVOQ1RVQVRJT047UG87MDtMOzs7OztOOzs7OzsKKzE3MzY7UEhJTElQUElORSBET1VCTEUgUFVOQ1RVQVRJT047UG87MDtMOzs7OztOOzs7OzsKKzE3NDA7QlVISUQgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzE3NDE7QlVISUQgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzE3NDI7QlVISUQgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzE3NDM7QlVISUQgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQ0O0JVSElEIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTc0NTtCVUhJRCBMRVRURVIgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQ2O0JVSElEIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTc0NztCVUhJRCBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzE3NDg7QlVISUQgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzQ5O0JVSElEIExFVFRFUiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTc0QTtCVUhJRCBMRVRURVIgQkE7TG87MDtMOzs7OztOOzs7OzsKKzE3NEI7QlVISUQgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzRDO0JVSElEIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTc0RDtCVUhJRCBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE3NEU7QlVISUQgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzRGO0JVSElEIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTc1MDtCVUhJRCBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NTE7QlVISUQgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzUyO0JVSElEIFZPV0VMIFNJR04gSTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzUzO0JVSElEIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxNzYwO1RBR0JBTldBIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzYxO1RBR0JBTldBIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzYyO1RBR0JBTldBIExFVFRFUiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzYzO1RBR0JBTldBIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTc2NDtUQUdCQU5XQSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NjU7VEFHQkFOV0EgTEVUVEVSIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTc2NjtUQUdCQU5XQSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE3Njc7VEFHQkFOV0EgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzY4O1RBR0JBTldBIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTc2OTtUQUdCQU5XQSBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE3NkE7VEFHQkFOV0EgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzZCO1RBR0JBTldBIExFVFRFUiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTc2QztUQUdCQU5XQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE3NkU7VEFHQkFOV0EgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzZGO1RBR0JBTldBIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTc3MDtUQUdCQU5XQSBMRVRURVIgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE3NzI7VEFHQkFOV0EgVk9XRUwgU0lHTiBJO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3NzM7VEFHQkFOV0EgVk9XRUwgU0lHTiBVO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3ODA7S0hNRVIgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzgxO0tITUVSIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3ODI7S0hNRVIgTEVUVEVSIEtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzgzO0tITUVSIExFVFRFUiBLSE87TG87MDtMOzs7OztOOzs7OzsKKzE3ODQ7S0hNRVIgTEVUVEVSIE5HTztMbzswO0w7Ozs7O047Ozs7OworMTc4NTtLSE1FUiBMRVRURVIgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzE3ODY7S0hNRVIgTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMTc4NztLSE1FUiBMRVRURVIgQ087TG87MDtMOzs7OztOOzs7OzsKKzE3ODg7S0hNRVIgTEVUVEVSIENITztMbzswO0w7Ozs7O047Ozs7OworMTc4OTtLSE1FUiBMRVRURVIgTllPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzhBO0tITUVSIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTc4QjtLSE1FUiBMRVRURVIgVFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTc4QztLSE1FUiBMRVRURVIgRE87TG87MDtMOzs7OztOOzs7OzsKKzE3OEQ7S0hNRVIgTEVUVEVSIFRUSE87TG87MDtMOzs7OztOOzs7OzsKKzE3OEU7S0hNRVIgTEVUVEVSIE5OTztMbzswO0w7Ozs7O047Ozs7OworMTc4RjtLSE1FUiBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE3OTA7S0hNRVIgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTc5MTtLSE1FUiBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzE3OTI7S0hNRVIgTEVUVEVSIFRITztMbzswO0w7Ozs7O047Ozs7OworMTc5MztLSE1FUiBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzE3OTQ7S0hNRVIgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk1O0tITUVSIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzE3OTY7S0hNRVIgTEVUVEVSIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk3O0tITUVSIExFVFRFUiBQSE87TG87MDtMOzs7OztOOzs7OzsKKzE3OTg7S0hNRVIgTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzk5O0tITUVSIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMTc5QTtLSE1FUiBMRVRURVIgUk87TG87MDtMOzs7OztOOzs7OzsKKzE3OUI7S0hNRVIgTEVUVEVSIExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzlDO0tITUVSIExFVFRFUiBWTztMbzswO0w7Ozs7O047Ozs7OworMTc5RDtLSE1FUiBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxNzlFO0tITUVSIExFVFRFUiBTU087TG87MDtMOzs7OztOOzs7OzsKKzE3OUY7S0hNRVIgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0EwO0tITUVSIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTdBMTtLSE1FUiBMRVRURVIgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE3QTI7S0hNRVIgTEVUVEVSIFFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0EzO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFBUTtMbzswO0w7Ozs7O047Oyo7OzsKKzE3QTQ7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUFBO0xvOzA7TDs7Ozs7Tjs7Kjs7OworMTdBNTtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRSTtMbzswO0w7Ozs7O047Ozs7OworMTdBNjtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRSUk7TG87MDtMOzs7OztOOzs7OzsKKzE3QTc7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUVU7TG87MDtMOzs7OztOOzs7OzsKKzE3QTg7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUVVLO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0E5O0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFVVTtMbzswO0w7Ozs7O047Ozs7OworMTdBQTtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRVVVWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0FCO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0FDO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFJZWTtMbzswO0w7Ozs7O047Ozs7OworMTdBRDtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBMWTtMbzswO0w7Ozs7O047Ozs7OworMTdBRTtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBMWVk7TG87MDtMOzs7OztOOzs7OzsKKzE3QUY7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUU7TG87MDtMOzs7OztOOzs7OzsKKzE3QjA7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0IxO0tITUVSIElOREVQRU5ERU5UIFZPV0VMIFFPTyBUWVBFIE9ORTtMbzswO0w7Ozs7O047Ozs7OworMTdCMjtLSE1FUiBJTkRFUEVOREVOVCBWT1dFTCBRT08gVFlQRSBUV087TG87MDtMOzs7OztOOzs7OzsKKzE3QjM7S0hNRVIgSU5ERVBFTkRFTlQgVk9XRUwgUUFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxN0I0O0tITUVSIFZPV0VMIElOSEVSRU5UIEFRO0NmOzA7TDs7Ozs7Tjs7Kjs7OworMTdCNTtLSE1FUiBWT1dFTCBJTkhFUkVOVCBBQTtDZjswO0w7Ozs7O047Oyo7OzsKKzE3QjY7S0hNRVIgVk9XRUwgU0lHTiBBQTtNYzswO0w7Ozs7O047Ozs7OworMTdCNztLSE1FUiBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTdCODtLSE1FUiBWT1dFTCBTSUdOIElJO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Qjk7S0hNRVIgVk9XRUwgU0lHTiBZO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3QkE7S0hNRVIgVk9XRUwgU0lHTiBZWTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0JCO0tITUVSIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0JDO0tITUVSIFZPV0VMIFNJR04gVVU7TW47MDtOU007Ozs7O047Ozs7OworMTdCRDtLSE1FUiBWT1dFTCBTSUdOIFVBO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3QkU7S0hNRVIgVk9XRUwgU0lHTiBPRTtNYzswO0w7Ozs7O047Ozs7OworMTdCRjtLSE1FUiBWT1dFTCBTSUdOIFlBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0MwO0tITUVSIFZPV0VMIFNJR04gSUU7TWM7MDtMOzs7OztOOzs7OzsKKzE3QzE7S0hNRVIgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0MyO0tITUVSIFZPV0VMIFNJR04gQUU7TWM7MDtMOzs7OztOOzs7OzsKKzE3QzM7S0hNRVIgVk9XRUwgU0lHTiBBSTtNYzswO0w7Ozs7O047Ozs7OworMTdDNDtLSE1FUiBWT1dFTCBTSUdOIE9PO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0M1O0tITUVSIFZPV0VMIFNJR04gQVU7TWM7MDtMOzs7OztOOzs7OzsKKzE3QzY7S0hNRVIgU0lHTiBOSUtBSElUO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Qzc7S0hNRVIgU0lHTiBSRUFITVVLO01jOzA7TDs7Ozs7Tjs7Ozs7CisxN0M4O0tITUVSIFNJR04gWVVVS0FMRUFQSU5UVTtNYzswO0w7Ozs7O047Ozs7OworMTdDOTtLSE1FUiBTSUdOIE1VVVNJS0FUT0FOO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Q0E7S0hNRVIgU0lHTiBUUklJU0FQO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Q0I7S0hNRVIgU0lHTiBCQU5UT0M7TW47MDtOU007Ozs7O047Ozs7OworMTdDQztLSE1FUiBTSUdOIFJPQkFUO01uOzA7TlNNOzs7OztOOzs7OzsKKzE3Q0Q7S0hNRVIgU0lHTiBUT0FOREFLSElBVDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0NFO0tITUVSIFNJR04gS0FLQUJBVDtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0NGO0tITUVSIFNJR04gQUhTREE7TW47MDtOU007Ozs7O047Ozs7OworMTdEMDtLSE1FUiBTSUdOIFNBTVlPSyBTQU5OWUE7TW47MDtOU007Ozs7O047Ozs7OworMTdEMTtLSE1FUiBTSUdOIFZJUklBTTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxN0QyO0tITUVSIFNJR04gQ09FTkc7TW47OTtOU007Ozs7O047Ozs7OworMTdEMztLSE1FUiBTSUdOIEJBVEhBTUFTQVQ7TW47MDtOU007Ozs7O047Oyo7OzsKKzE3RDQ7S0hNRVIgU0lHTiBLSEFOO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxN0Q1O0tITUVSIFNJR04gQkFSSVlPT1NBTjtQbzswO0w7Ozs7O047Ozs7OworMTdENjtLSE1FUiBTSUdOIENBTU5VQyBQSUkgS1VVSDtQbzswO0w7Ozs7O047Ozs7OworMTdENztLSE1FUiBTSUdOIExFSyBUT087TG07MDtMOzs7OztOOzs7OzsKKzE3RDg7S0hNRVIgU0lHTiBCRVlZQUw7UG87MDtMOzs7OztOOzsqOzs7CisxN0Q5O0tITUVSIFNJR04gUEhOQUVLIE1VQU47UG87MDtMOzs7OztOOzs7OzsKKzE3REE7S0hNRVIgU0lHTiBLT09NVVVUO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxN0RCO0tITUVSIENVUlJFTkNZIFNZTUJPTCBSSUVMO1NjOzA7RVQ7Ozs7O047Ozs7OworMTdEQztLSE1FUiBTSUdOIEFWQUtSQUhBU0FOWUE7TG87MDtMOzs7OztOOzs7OzsKKzE3REQ7S0hNRVIgU0lHTiBBVFRIQUNBTjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzE3RTA7S0hNRVIgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMTdFMTtLSE1FUiBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzE3RTI7S0hNRVIgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CisxN0UzO0tITUVSIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxN0U0O0tITUVSIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzE3RTU7S0hNRVIgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMTdFNjtLSE1FUiBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzE3RTc7S0hNRVIgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzE3RTg7S0hNRVIgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzE3RTk7S0hNRVIgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMTdGMDtLSE1FUiBTWU1CT0wgTEVLIEFUVEFLIFNPTjtObzswO09OOzs7OzA7Tjs7Ozs7CisxN0YxO0tITUVSIFNZTUJPTCBMRUsgQVRUQUsgTVVPWTtObzswO09OOzs7OzE7Tjs7Ozs7CisxN0YyO0tITUVSIFNZTUJPTCBMRUsgQVRUQUsgUElJO05vOzA7T047Ozs7MjtOOzs7OzsKKzE3RjM7S0hNRVIgU1lNQk9MIExFSyBBVFRBSyBCRUk7Tm87MDtPTjs7OzszO047Ozs7OworMTdGNDtLSE1FUiBTWU1CT0wgTEVLIEFUVEFLIEJVT047Tm87MDtPTjs7Ozs0O047Ozs7OworMTdGNTtLSE1FUiBTWU1CT0wgTEVLIEFUVEFLIFBSQU07Tm87MDtPTjs7Ozs1O047Ozs7OworMTdGNjtLSE1FUiBTWU1CT0wgTEVLIEFUVEFLIFBSQU0tTVVPWTtObzswO09OOzs7OzY7Tjs7Ozs7CisxN0Y3O0tITUVSIFNZTUJPTCBMRUsgQVRUQUsgUFJBTS1QSUk7Tm87MDtPTjs7Ozs3O047Ozs7OworMTdGODtLSE1FUiBTWU1CT0wgTEVLIEFUVEFLIFBSQU0tQkVJO05vOzA7T047Ozs7ODtOOzs7OzsKKzE3Rjk7S0hNRVIgU1lNQk9MIExFSyBBVFRBSyBQUkFNLUJVT047Tm87MDtPTjs7Ozs5O047Ozs7OworMTgwMDtNT05HT0xJQU4gQklSR0E7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODAxO01PTkdPTElBTiBFTExJUFNJUztQbzswO09OOzs7OztOOzs7OzsKKzE4MDI7TU9OR09MSUFOIENPTU1BO1BvOzA7T047Ozs7O047Ozs7OworMTgwMztNT05HT0xJQU4gRlVMTCBTVE9QO1BvOzA7T047Ozs7O047Ozs7OworMTgwNDtNT05HT0xJQU4gQ09MT047UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODA1O01PTkdPTElBTiBGT1VSIERPVFM7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODA2O01PTkdPTElBTiBUT0RPIFNPRlQgSFlQSEVOO1BkOzA7T047Ozs7O047Ozs7OworMTgwNztNT05HT0xJQU4gU0lCRSBTWUxMQUJMRSBCT1VOREFSWSBNQVJLRVI7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODA4O01PTkdPTElBTiBNQU5DSFUgQ09NTUE7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxODA5O01PTkdPTElBTiBNQU5DSFUgRlVMTCBTVE9QO1BvOzA7T047Ozs7O047Ozs7OworMTgwQTtNT05HT0xJQU4gTklSVUdVO1BvOzA7T047Ozs7O047Ozs7OworMTgwQjtNT05HT0xJQU4gRlJFRSBWQVJJQVRJT04gU0VMRUNUT1IgT05FO01uOzA7TlNNOzs7OztOOzs7OzsKKzE4MEM7TU9OR09MSUFOIEZSRUUgVkFSSUFUSU9OIFNFTEVDVE9SIFRXTztNbjswO05TTTs7Ozs7Tjs7Ozs7CisxODBEO01PTkdPTElBTiBGUkVFIFZBUklBVElPTiBTRUxFQ1RPUiBUSFJFRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxODBFO01PTkdPTElBTiBWT1dFTCBTRVBBUkFUT1I7WnM7MDtXUzs7Ozs7Tjs7Ozs7CisxODEwO01PTkdPTElBTiBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CisxODExO01PTkdPTElBTiBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzE4MTI7TU9OR09MSUFOIERJR0lUIFRXTztOZDswO0w7OzI7MjsyO047Ozs7OworMTgxMztNT05HT0xJQU4gRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzE4MTQ7TU9OR09MSUFOIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzE4MTU7TU9OR09MSUFOIERJR0lUIEZJVkU7TmQ7MDtMOzs1OzU7NTtOOzs7OzsKKzE4MTY7TU9OR09MSUFOIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMTgxNztNT05HT0xJQU4gRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzE4MTg7TU9OR09MSUFOIERJR0lUIEVJR0hUO05kOzA7TDs7ODs4Ozg7Tjs7Ozs7CisxODE5O01PTkdPTElBTiBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CisxODIwO01PTkdPTElBTiBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMTgyMTtNT05HT0xJQU4gTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzE4MjI7TU9OR09MSUFOIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODIzO01PTkdPTElBTiBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMTgyNDtNT05HT0xJQU4gTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzE4MjU7TU9OR09MSUFOIExFVFRFUiBPRTtMbzswO0w7Ozs7O047Ozs7OworMTgyNjtNT05HT0xJQU4gTEVUVEVSIFVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODI3O01PTkdPTElBTiBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzE4Mjg7TU9OR09MSUFOIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTgyOTtNT05HT0xJQU4gTEVUVEVSIEFORztMbzswO0w7Ozs7O047Ozs7OworMTgyQTtNT05HT0xJQU4gTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODJCO01PTkdPTElBTiBMRVRURVIgUEE7TG87MDtMOzs7OztOOzs7OzsKKzE4MkM7TU9OR09MSUFOIExFVFRFUiBRQTtMbzswO0w7Ozs7O047Ozs7OworMTgyRDtNT05HT0xJQU4gTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODJFO01PTkdPTElBTiBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE4MkY7TU9OR09MSUFOIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTgzMDtNT05HT0xJQU4gTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODMxO01PTkdPTElBTiBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODMyO01PTkdPTElBTiBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4MzM7TU9OR09MSUFOIExFVFRFUiBEQTtMbzswO0w7Ozs7O047Ozs7OworMTgzNDtNT05HT0xJQU4gTEVUVEVSIENIQTtMbzswO0w7Ozs7O047Ozs7OworMTgzNTtNT05HT0xJQU4gTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODM2O01PTkdPTElBTiBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzE4Mzc7TU9OR09MSUFOIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMTgzODtNT05HT0xJQU4gTEVUVEVSIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODM5O01PTkdPTElBTiBMRVRURVIgRkE7TG87MDtMOzs7OztOOzs7OzsKKzE4M0E7TU9OR09MSUFOIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTgzQjtNT05HT0xJQU4gTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMTgzQztNT05HT0xJQU4gTEVUVEVSIFRTQTtMbzswO0w7Ozs7O047Ozs7OworMTgzRDtNT05HT0xJQU4gTEVUVEVSIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODNFO01PTkdPTElBTiBMRVRURVIgSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODNGO01PTkdPTElBTiBMRVRURVIgWlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQwO01PTkdPTElBTiBMRVRURVIgTEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQxO01PTkdPTElBTiBMRVRURVIgWkhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQyO01PTkdPTElBTiBMRVRURVIgQ0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQzO01PTkdPTElBTiBMRVRURVIgVE9ETyBMT05HIFZPV0VMIFNJR047TG07MDtMOzs7OztOOzs7OzsKKzE4NDQ7TU9OR09MSUFOIExFVFRFUiBUT0RPIEU7TG87MDtMOzs7OztOOzs7OzsKKzE4NDU7TU9OR09MSUFOIExFVFRFUiBUT0RPIEk7TG87MDtMOzs7OztOOzs7OzsKKzE4NDY7TU9OR09MSUFOIExFVFRFUiBUT0RPIE87TG87MDtMOzs7OztOOzs7OzsKKzE4NDc7TU9OR09MSUFOIExFVFRFUiBUT0RPIFU7TG87MDtMOzs7OztOOzs7OzsKKzE4NDg7TU9OR09MSUFOIExFVFRFUiBUT0RPIE9FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODQ5O01PTkdPTElBTiBMRVRURVIgVE9ETyBVRTtMbzswO0w7Ozs7O047Ozs7OworMTg0QTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gQU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODRCO01PTkdPTElBTiBMRVRURVIgVE9ETyBCQTtMbzswO0w7Ozs7O047Ozs7OworMTg0QztNT05HT0xJQU4gTEVUVEVSIFRPRE8gUEE7TG87MDtMOzs7OztOOzs7OzsKKzE4NEQ7TU9OR09MSUFOIExFVFRFUiBUT0RPIFFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODRFO01PTkdPTElBTiBMRVRURVIgVE9ETyBHQTtMbzswO0w7Ozs7O047Ozs7OworMTg0RjtNT05HT0xJQU4gTEVUVEVSIFRPRE8gTUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NTA7TU9OR09MSUFOIExFVFRFUiBUT0RPIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODUxO01PTkdPTElBTiBMRVRURVIgVE9ETyBEQTtMbzswO0w7Ozs7O047Ozs7OworMTg1MjtNT05HT0xJQU4gTEVUVEVSIFRPRE8gQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODUzO01PTkdPTElBTiBMRVRURVIgVE9ETyBKQTtMbzswO0w7Ozs7O047Ozs7OworMTg1NDtNT05HT0xJQU4gTEVUVEVSIFRPRE8gVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODU1O01PTkdPTElBTiBMRVRURVIgVE9ETyBZQTtMbzswO0w7Ozs7O047Ozs7OworMTg1NjtNT05HT0xJQU4gTEVUVEVSIFRPRE8gV0E7TG87MDtMOzs7OztOOzs7OzsKKzE4NTc7TU9OR09MSUFOIExFVFRFUiBUT0RPIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODU4O01PTkdPTElBTiBMRVRURVIgVE9ETyBHQUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NTk7TU9OR09MSUFOIExFVFRFUiBUT0RPIEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTg1QTtNT05HT0xJQU4gTEVUVEVSIFRPRE8gSklBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODVCO01PTkdPTElBTiBMRVRURVIgVE9ETyBOSUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NUM7TU9OR09MSUFOIExFVFRFUiBUT0RPIERaQTtMbzswO0w7Ozs7O047Ozs7OworMTg1RDtNT05HT0xJQU4gTEVUVEVSIFNJQkUgRTtMbzswO0w7Ozs7O047Ozs7OworMTg1RTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgSTtMbzswO0w7Ozs7O047Ozs7OworMTg1RjtNT05HT0xJQU4gTEVUVEVSIFNJQkUgSVk7TG87MDtMOzs7OztOOzs7OzsKKzE4NjA7TU9OR09MSUFOIExFVFRFUiBTSUJFIFVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODYxO01PTkdPTElBTiBMRVRURVIgU0lCRSBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODYyO01PTkdPTElBTiBMRVRURVIgU0lCRSBBTkc7TG87MDtMOzs7OztOOzs7OzsKKzE4NjM7TU9OR09MSUFOIExFVFRFUiBTSUJFIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODY0O01PTkdPTElBTiBMRVRURVIgU0lCRSBHQTtMbzswO0w7Ozs7O047Ozs7OworMTg2NTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4NjY7TU9OR09MSUFOIExFVFRFUiBTSUJFIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODY3O01PTkdPTElBTiBMRVRURVIgU0lCRSBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4Njg7TU9OR09MSUFOIExFVFRFUiBTSUJFIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODY5O01PTkdPTElBTiBMRVRURVIgU0lCRSBEQTtMbzswO0w7Ozs7O047Ozs7OworMTg2QTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgSkE7TG87MDtMOzs7OztOOzs7OzsKKzE4NkI7TU9OR09MSUFOIExFVFRFUiBTSUJFIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODZDO01PTkdPTElBTiBMRVRURVIgU0lCRSBHQUE7TG87MDtMOzs7OztOOzs7OzsKKzE4NkQ7TU9OR09MSUFOIExFVFRFUiBTSUJFIEhBQTtMbzswO0w7Ozs7O047Ozs7OworMTg2RTtNT05HT0xJQU4gTEVUVEVSIFNJQkUgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODZGO01PTkdPTElBTiBMRVRURVIgU0lCRSBaQTtMbzswO0w7Ozs7O047Ozs7OworMTg3MDtNT05HT0xJQU4gTEVUVEVSIFNJQkUgUkFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODcxO01PTkdPTElBTiBMRVRURVIgU0lCRSBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4NzI7TU9OR09MSUFOIExFVFRFUiBTSUJFIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMTg3MztNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODc0O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODc1O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODc2O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODc3O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMTg4MDtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEFOVVNWQVJBIE9ORTtMbzswO0w7Ozs7O047Ozs7OworMTg4MTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFZJU0FSR0EgT05FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODgyO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgREFNQVJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODgzO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgVUJBREFNQTtMbzswO0w7Ozs7O047Ozs7OworMTg4NDtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIElOVkVSVEVEIFVCQURBTUE7TG87MDtMOzs7OztOOzs7OzsKKzE4ODU7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBCQUxVREE7TG87MDtMOzs7OztOOzs7OzsKKzE4ODY7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBUSFJFRSBCQUxVREE7TG87MDtMOzs7OztOOzs7OzsKKzE4ODc7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODg4O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgSTtMbzswO0w7Ozs7O047Ozs7OworMTg4OTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhBO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhCO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgQ0E7TG87MDtMOzs7OztOOzs7OzsKKzE4OEM7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OEQ7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBUVEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhFO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgRERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODhGO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgTk5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODkwO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTE7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBEQTtMbzswO0w7Ozs7O047Ozs7OworMTg5MjtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODkzO01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODk0O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODk1O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgWkhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODk2O01PTkdPTElBTiBMRVRURVIgQUxJIEdBTEkgWkE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTc7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBBSDtMbzswO0w7Ozs7O047Ozs7OworMTg5ODtNT05HT0xJQU4gTEVUVEVSIFRPRE8gQUxJIEdBTEkgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OTk7TU9OR09MSUFOIExFVFRFUiBUT0RPIEFMSSBHQUxJIFpIQTtMbzswO0w7Ozs7O047Ozs7OworMTg5QTtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBHSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OUI7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODlDO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxODlEO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIEpIQTtMbzswO0w7Ozs7O047Ozs7OworMTg5RTtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBUVEE7TG87MDtMOzs7OztOOzs7OzsKKzE4OUY7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgRERIQTtMbzswO0w7Ozs7O047Ozs7OworMThBMDtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBUQTtMbzswO0w7Ozs7O047Ozs7OworMThBMTtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBESEE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTI7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEEzO01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIENZQTtMbzswO0w7Ozs7O047Ozs7OworMThBNDtNT05HT0xJQU4gTEVUVEVSIE1BTkNIVSBBTEkgR0FMSSBaSEE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTU7TU9OR09MSUFOIExFVFRFUiBNQU5DSFUgQUxJIEdBTEkgWkE7TG87MDtMOzs7OztOOzs7OzsKKzE4QTY7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBIQUxGIFU7TG87MDtMOzs7OztOOzs7OzsKKzE4QTc7TU9OR09MSUFOIExFVFRFUiBBTEkgR0FMSSBIQUxGIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOEE4O01PTkdPTElBTiBMRVRURVIgTUFOQ0hVIEFMSSBHQUxJIEJIQTtMbzswO0w7Ozs7O047Ozs7OworMThBOTtNT05HT0xJQU4gTEVUVEVSIEFMSSBHQUxJIERBR0FMR0E7TW47MjI4O05TTTs7Ozs7Tjs7Ozs7CisxOTAwO0xJTUJVIFZPV0VMLUNBUlJJRVIgTEVUVEVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTAxO0xJTUJVIExFVFRFUiBLQTtMbzswO0w7Ozs7O047Ozs7OworMTkwMjtMSU1CVSBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTAzO0xJTUJVIExFVFRFUiBHQTtMbzswO0w7Ozs7O047Ozs7OworMTkwNDtMSU1CVSBMRVRURVIgR0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTA1O0xJTUJVIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE5MDY7TElNQlUgTEVUVEVSIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTA3O0xJTUJVIExFVFRFUiBDSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5MDg7TElNQlUgTEVUVEVSIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTA5O0xJTUJVIExFVFRFUiBKSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5MEE7TElNQlUgTEVUVEVSIFlBTjtMbzswO0w7Ozs7O047Ozs7OworMTkwQjtMSU1CVSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE5MEM7TElNQlUgTEVUVEVSIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTkwRDtMSU1CVSBMRVRURVIgREE7TG87MDtMOzs7OztOOzs7OzsKKzE5MEU7TElNQlUgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMTkwRjtMSU1CVSBMRVRURVIgTkE7TG87MDtMOzs7OztOOzs7OzsKKzE5MTA7TElNQlUgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTExO0xJTUJVIExFVFRFUiBQSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5MTI7TElNQlUgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTEzO0xJTUJVIExFVFRFUiBCSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5MTQ7TElNQlUgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTE1O0xJTUJVIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTkxNjtMSU1CVSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzE5MTc7TElNQlUgTEVUVEVSIExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTE4O0xJTUJVIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMTkxOTtMSU1CVSBMRVRURVIgU0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTFBO0xJTUJVIExFVFRFUiBTU0E7TG87MDtMOzs7OztOOzs7OzsKKzE5MUI7TElNQlUgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTFDO0xJTUJVIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMTkyMDtMSU1CVSBWT1dFTCBTSUdOIEE7TW47MDtOU007Ozs7O047Ozs7OworMTkyMTtMSU1CVSBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTkyMjtMSU1CVSBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMTkyMztMSU1CVSBWT1dFTCBTSUdOIEVFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOTI0O0xJTUJVIFZPV0VMIFNJR04gQUk7TWM7MDtMOzs7OztOOzs7OzsKKzE5MjU7TElNQlUgVk9XRUwgU0lHTiBPTztNYzswO0w7Ozs7O047Ozs7OworMTkyNjtMSU1CVSBWT1dFTCBTSUdOIEFVO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOTI3O0xJTUJVIFZPV0VMIFNJR04gRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxOTI4O0xJTUJVIFZPV0VMIFNJR04gTztNbjswO05TTTs7Ozs7Tjs7Ozs7CisxOTI5O0xJTUJVIFNVQkpPSU5FRCBMRVRURVIgWUE7TWM7MDtOU007Ozs7O047Ozs7OworMTkyQTtMSU1CVSBTVUJKT0lORUQgTEVUVEVSIFJBO01jOzA7TlNNOzs7OztOOzs7OzsKKzE5MkI7TElNQlUgU1VCSk9JTkVEIExFVFRFUiBXQTtNYzswO05TTTs7Ozs7Tjs7Ozs7CisxOTMwO0xJTUJVIFNNQUxMIExFVFRFUiBLQTtNYzswO0w7Ozs7O047Ozs7OworMTkzMTtMSU1CVSBTTUFMTCBMRVRURVIgTkdBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOTMyO0xJTUJVIFNNQUxMIExFVFRFUiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxOTMzO0xJTUJVIFNNQUxMIExFVFRFUiBUQTtNYzswO0w7Ozs7O047Ozs7OworMTkzNDtMSU1CVSBTTUFMTCBMRVRURVIgTkE7TWM7MDtMOzs7OztOOzs7OzsKKzE5MzU7TElNQlUgU01BTEwgTEVUVEVSIFBBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOTM2O0xJTUJVIFNNQUxMIExFVFRFUiBNQTtNYzswO0w7Ozs7O047Ozs7OworMTkzNztMSU1CVSBTTUFMTCBMRVRURVIgUkE7TWM7MDtMOzs7OztOOzs7OzsKKzE5Mzg7TElNQlUgU01BTEwgTEVUVEVSIExBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOTM5O0xJTUJVIFNJR04gTVVLUEhSRU5HO01uOzIyMjtOU007Ozs7O047Ozs7OworMTkzQTtMSU1CVSBTSUdOIEtFTVBIUkVORztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzE5M0I7TElNQlUgU0lHTiBTQS1JO01uOzIyMDtOU007Ozs7O047Ozs7OworMTk0MDtMSU1CVSBTSUdOIExPTztTbzswO09OOzs7OztOOzs7OzsKKzE5NDQ7TElNQlUgRVhDTEFNQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzE5NDU7TElNQlUgUVVFU1RJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzE5NDY7TElNQlUgRElHSVQgWkVSTztOZDswO0w7OzA7MDswO047Ozs7OworMTk0NztMSU1CVSBESUdJVCBPTkU7TmQ7MDtMOzsxOzE7MTtOOzs7OzsKKzE5NDg7TElNQlUgRElHSVQgVFdPO05kOzA7TDs7MjsyOzI7Tjs7Ozs7CisxOTQ5O0xJTUJVIERJR0lUIFRIUkVFO05kOzA7TDs7MzszOzM7Tjs7Ozs7CisxOTRBO0xJTUJVIERJR0lUIEZPVVI7TmQ7MDtMOzs0OzQ7NDtOOzs7OzsKKzE5NEI7TElNQlUgRElHSVQgRklWRTtOZDswO0w7OzU7NTs1O047Ozs7OworMTk0QztMSU1CVSBESUdJVCBTSVg7TmQ7MDtMOzs2OzY7NjtOOzs7OzsKKzE5NEQ7TElNQlUgRElHSVQgU0VWRU47TmQ7MDtMOzs3Ozc7NztOOzs7OzsKKzE5NEU7TElNQlUgRElHSVQgRUlHSFQ7TmQ7MDtMOzs4Ozg7ODtOOzs7OzsKKzE5NEY7TElNQlUgRElHSVQgTklORTtOZDswO0w7Ozk7OTs5O047Ozs7OworMTk1MDtUQUkgTEUgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTUxO1RBSSBMRSBMRVRURVIgWEE7TG87MDtMOzs7OztOOzs7OzsKKzE5NTI7VEFJIExFIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE5NTM7VEFJIExFIExFVFRFUiBUU0E7TG87MDtMOzs7OztOOzs7OzsKKzE5NTQ7VEFJIExFIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTk1NTtUQUkgTEUgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTU2O1RBSSBMRSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzE5NTc7VEFJIExFIExFVFRFUiBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5NTg7VEFJIExFIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTk1OTtUQUkgTEUgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTVBO1RBSSBMRSBMRVRURVIgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTVCO1RBSSBMRSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE5NUM7VEFJIExFIExFVFRFUiBGQTtMbzswO0w7Ozs7O047Ozs7OworMTk1RDtUQUkgTEUgTEVUVEVSIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTVFO1RBSSBMRSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5NUY7VEFJIExFIExFVFRFUiBRQTtMbzswO0w7Ozs7O047Ozs7OworMTk2MDtUQUkgTEUgTEVUVEVSIEtIQTtMbzswO0w7Ozs7O047Ozs7OworMTk2MTtUQUkgTEUgTEVUVEVSIFRTSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5NjI7VEFJIExFIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTk2MztUQUkgTEUgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzE5NjQ7VEFJIExFIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTY1O1RBSSBMRSBMRVRURVIgRUU7TG87MDtMOzs7OztOOzs7OzsKKzE5NjY7VEFJIExFIExFVFRFUiBFSDtMbzswO0w7Ozs7O047Ozs7OworMTk2NztUQUkgTEUgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzE5Njg7VEFJIExFIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMTk2OTtUQUkgTEUgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzE5NkE7VEFJIExFIExFVFRFUiBVRTtMbzswO0w7Ozs7O047Ozs7OworMTk2QjtUQUkgTEUgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzE5NkM7VEFJIExFIExFVFRFUiBBVUU7TG87MDtMOzs7OztOOzs7OzsKKzE5NkQ7VEFJIExFIExFVFRFUiBBSTtMbzswO0w7Ozs7O047Ozs7OworMTk3MDtUQUkgTEUgTEVUVEVSIFRPTkUtMjtMbzswO0w7Ozs7O047Ozs7OworMTk3MTtUQUkgTEUgTEVUVEVSIFRPTkUtMztMbzswO0w7Ozs7O047Ozs7OworMTk3MjtUQUkgTEUgTEVUVEVSIFRPTkUtNDtMbzswO0w7Ozs7O047Ozs7OworMTk3MztUQUkgTEUgTEVUVEVSIFRPTkUtNTtMbzswO0w7Ozs7O047Ozs7OworMTk3NDtUQUkgTEUgTEVUVEVSIFRPTkUtNjtMbzswO0w7Ozs7O047Ozs7OworMTk4MDtORVcgVEFJIExVRSBMRVRURVIgSElHSCBRQTtMbzswO0w7Ozs7O047Ozs7OworMTk4MTtORVcgVEFJIExVRSBMRVRURVIgTE9XIFFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTgyO05FVyBUQUkgTFVFIExFVFRFUiBISUdIIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTgzO05FVyBUQUkgTFVFIExFVFRFUiBISUdIIFhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTg0O05FVyBUQUkgTFVFIExFVFRFUiBISUdIIE5HQTtMbzswO0w7Ozs7O047Ozs7OworMTk4NTtORVcgVEFJIExVRSBMRVRURVIgTE9XIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTg2O05FVyBUQUkgTFVFIExFVFRFUiBMT1cgWEE7TG87MDtMOzs7OztOOzs7OzsKKzE5ODc7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzE5ODg7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTg5O05FVyBUQUkgTFVFIExFVFRFUiBISUdIIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOThBO05FVyBUQUkgTFVFIExFVFRFUiBISUdIIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOThCO05FVyBUQUkgTFVFIExFVFRFUiBMT1cgVFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOThDO05FVyBUQUkgTFVFIExFVFRFUiBMT1cgU0E7TG87MDtMOzs7OztOOzs7OzsKKzE5OEQ7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBZQTtMbzswO0w7Ozs7O047Ozs7OworMTk4RTtORVcgVEFJIExVRSBMRVRURVIgSElHSCBUQTtMbzswO0w7Ozs7O047Ozs7OworMTk4RjtORVcgVEFJIExVRSBMRVRURVIgSElHSCBUSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5OTA7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggTkE7TG87MDtMOzs7OztOOzs7OzsKKzE5OTE7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBUQTtMbzswO0w7Ozs7O047Ozs7OworMTk5MjtORVcgVEFJIExVRSBMRVRURVIgTE9XIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTk5MztORVcgVEFJIExVRSBMRVRURVIgTE9XIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTk0O05FVyBUQUkgTFVFIExFVFRFUiBISUdIIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTk1O05FVyBUQUkgTFVFIExFVFRFUiBISUdIIFBIQTtMbzswO0w7Ozs7O047Ozs7OworMTk5NjtORVcgVEFJIExVRSBMRVRURVIgSElHSCBNQTtMbzswO0w7Ozs7O047Ozs7OworMTk5NztORVcgVEFJIExVRSBMRVRURVIgTE9XIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTk4O05FVyBUQUkgTFVFIExFVFRFUiBMT1cgUEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTk5O05FVyBUQUkgTFVFIExFVFRFUiBMT1cgTUE7TG87MDtMOzs7OztOOzs7OzsKKzE5OUE7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggRkE7TG87MDtMOzs7OztOOzs7OzsKKzE5OUI7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggVkE7TG87MDtMOzs7OztOOzs7OzsKKzE5OUM7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggTEE7TG87MDtMOzs7OztOOzs7OzsKKzE5OUQ7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBGQTtMbzswO0w7Ozs7O047Ozs7OworMTk5RTtORVcgVEFJIExVRSBMRVRURVIgTE9XIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOTlGO05FVyBUQUkgTFVFIExFVFRFUiBMT1cgTEE7TG87MDtMOzs7OztOOzs7OzsKKzE5QTA7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggSEE7TG87MDtMOzs7OztOOzs7OzsKKzE5QTE7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggREE7TG87MDtMOzs7OztOOzs7OzsKKzE5QTI7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggQkE7TG87MDtMOzs7OztOOzs7OzsKKzE5QTM7TkVXIFRBSSBMVUUgTEVUVEVSIExPVyBIQTtMbzswO0w7Ozs7O047Ozs7OworMTlBNDtORVcgVEFJIExVRSBMRVRURVIgTE9XIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOUE1O05FVyBUQUkgTFVFIExFVFRFUiBMT1cgQkE7TG87MDtMOzs7OztOOzs7OzsKKzE5QTY7TkVXIFRBSSBMVUUgTEVUVEVSIEhJR0ggS1ZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOUE3O05FVyBUQUkgTFVFIExFVFRFUiBISUdIIFhWQTtMbzswO0w7Ozs7O047Ozs7OworMTlBODtORVcgVEFJIExVRSBMRVRURVIgTE9XIEtWQTtMbzswO0w7Ozs7O047Ozs7OworMTlBOTtORVcgVEFJIExVRSBMRVRURVIgTE9XIFhWQTtMbzswO0w7Ozs7O047Ozs7OworMTlCMDtORVcgVEFJIExVRSBWT1dFTCBTSUdOIFZPV0VMIFNIT1JURU5FUjtNYzswO0w7Ozs7O047Ozs7OworMTlCMTtORVcgVEFJIExVRSBWT1dFTCBTSUdOIEFBO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUIyO05FVyBUQUkgTFVFIFZPV0VMIFNJR04gSUk7TWM7MDtMOzs7OztOOzs7OzsKKzE5QjM7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBVO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUI0O05FVyBUQUkgTFVFIFZPV0VMIFNJR04gVVU7TWM7MDtMOzs7OztOOzs7OzsKKzE5QjU7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUI2O05FVyBUQUkgTFVFIFZPV0VMIFNJR04gQUU7TWM7MDtMOzs7OztOOzs7OzsKKzE5Qjc7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBPO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUI4O05FVyBUQUkgTFVFIFZPV0VMIFNJR04gT0E7TWM7MDtMOzs7OztOOzs7OzsKKzE5Qjk7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBVRTtNYzswO0w7Ozs7O047Ozs7OworMTlCQTtORVcgVEFJIExVRSBWT1dFTCBTSUdOIEFZO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUJCO05FVyBUQUkgTFVFIFZPV0VMIFNJR04gQUFZO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUJDO05FVyBUQUkgTFVFIFZPV0VMIFNJR04gVVk7TWM7MDtMOzs7OztOOzs7OzsKKzE5QkQ7TkVXIFRBSSBMVUUgVk9XRUwgU0lHTiBPWTtNYzswO0w7Ozs7O047Ozs7OworMTlCRTtORVcgVEFJIExVRSBWT1dFTCBTSUdOIE9BWTtNYzswO0w7Ozs7O047Ozs7OworMTlCRjtORVcgVEFJIExVRSBWT1dFTCBTSUdOIFVFWTtNYzswO0w7Ozs7O047Ozs7OworMTlDMDtORVcgVEFJIExVRSBWT1dFTCBTSUdOIElZO01jOzA7TDs7Ozs7Tjs7Ozs7CisxOUMxO05FVyBUQUkgTFVFIExFVFRFUiBGSU5BTCBWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxOUMyO05FVyBUQUkgTFVFIExFVFRFUiBGSU5BTCBORztMbzswO0w7Ozs7O047Ozs7OworMTlDMztORVcgVEFJIExVRSBMRVRURVIgRklOQUwgTjtMbzswO0w7Ozs7O047Ozs7OworMTlDNDtORVcgVEFJIExVRSBMRVRURVIgRklOQUwgTTtMbzswO0w7Ozs7O047Ozs7OworMTlDNTtORVcgVEFJIExVRSBMRVRURVIgRklOQUwgSztMbzswO0w7Ozs7O047Ozs7OworMTlDNjtORVcgVEFJIExVRSBMRVRURVIgRklOQUwgRDtMbzswO0w7Ozs7O047Ozs7OworMTlDNztORVcgVEFJIExVRSBMRVRURVIgRklOQUwgQjtMbzswO0w7Ozs7O047Ozs7OworMTlDODtORVcgVEFJIExVRSBUT05FIE1BUkstMTtNYzswO0w7Ozs7O047Ozs7OworMTlDOTtORVcgVEFJIExVRSBUT05FIE1BUkstMjtNYzswO0w7Ozs7O047Ozs7OworMTlEMDtORVcgVEFJIExVRSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CisxOUQxO05FVyBUQUkgTFVFIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMTlEMjtORVcgVEFJIExVRSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzE5RDM7TkVXIFRBSSBMVUUgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzE5RDQ7TkVXIFRBSSBMVUUgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMTlENTtORVcgVEFJIExVRSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CisxOUQ2O05FVyBUQUkgTFVFIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMTlENztORVcgVEFJIExVRSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMTlEODtORVcgVEFJIExVRSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMTlEOTtORVcgVEFJIExVRSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CisxOURFO05FVyBUQUkgTFVFIFNJR04gTEFFO1BvOzA7T047Ozs7O047Ozs7OworMTlERjtORVcgVEFJIExVRSBTSUdOIExBRVY7UG87MDtPTjs7Ozs7Tjs7Ozs7CisxOUUwO0tITUVSIFNZTUJPTCBQQVRIQU1BU0FUO1NvOzA7T047Ozs7O047Ozs7OworMTlFMTtLSE1FUiBTWU1CT0wgTVVPWSBLT0VUO1NvOzA7T047Ozs7O047Ozs7OworMTlFMjtLSE1FUiBTWU1CT0wgUElJIEtPRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUUzO0tITUVSIFNZTUJPTCBCRUkgS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RTQ7S0hNRVIgU1lNQk9MIEJVT04gS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RTU7S0hNRVIgU1lNQk9MIFBSQU0gS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RTY7S0hNRVIgU1lNQk9MIFBSQU0tTVVPWSBLT0VUO1NvOzA7T047Ozs7O047Ozs7OworMTlFNztLSE1FUiBTWU1CT0wgUFJBTS1QSUkgS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RTg7S0hNRVIgU1lNQk9MIFBSQU0tQkVJIEtPRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUU5O0tITUVSIFNZTUJPTCBQUkFNLUJVT04gS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RUE7S0hNRVIgU1lNQk9MIERBUCBLT0VUO1NvOzA7T047Ozs7O047Ozs7OworMTlFQjtLSE1FUiBTWU1CT0wgREFQLU1VT1kgS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RUM7S0hNRVIgU1lNQk9MIERBUC1QSUkgS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RUQ7S0hNRVIgU1lNQk9MIERBUC1CRUkgS09FVDtTbzswO09OOzs7OztOOzs7OzsKKzE5RUU7S0hNRVIgU1lNQk9MIERBUC1CVU9OIEtPRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUVGO0tITUVSIFNZTUJPTCBEQVAtUFJBTSBLT0VUO1NvOzA7T047Ozs7O047Ozs7OworMTlGMDtLSE1FUiBTWU1CT0wgVFVURVlBU0FUO1NvOzA7T047Ozs7O047Ozs7OworMTlGMTtLSE1FUiBTWU1CT0wgTVVPWSBST0M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUYyO0tITUVSIFNZTUJPTCBQSUkgUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGMztLSE1FUiBTWU1CT0wgQkVJIFJPQztTbzswO09OOzs7OztOOzs7OzsKKzE5RjQ7S0hNRVIgU1lNQk9MIEJVT04gUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGNTtLSE1FUiBTWU1CT0wgUFJBTSBST0M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUY2O0tITUVSIFNZTUJPTCBQUkFNLU1VT1kgUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGNztLSE1FUiBTWU1CT0wgUFJBTS1QSUkgUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGODtLSE1FUiBTWU1CT0wgUFJBTS1CRUkgUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGOTtLSE1FUiBTWU1CT0wgUFJBTS1CVU9OIFJPQztTbzswO09OOzs7OztOOzs7OzsKKzE5RkE7S0hNRVIgU1lNQk9MIERBUCBST0M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUZCO0tITUVSIFNZTUJPTCBEQVAtTVVPWSBST0M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxOUZDO0tITUVSIFNZTUJPTCBEQVAtUElJIFJPQztTbzswO09OOzs7OztOOzs7OzsKKzE5RkQ7S0hNRVIgU1lNQk9MIERBUC1CRUkgUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGRTtLSE1FUiBTWU1CT0wgREFQLUJVT04gUk9DO1NvOzA7T047Ozs7O047Ozs7OworMTlGRjtLSE1FUiBTWU1CT0wgREFQLVBSQU0gUk9DO1NvOzA7T047Ozs7O047Ozs7OworMUEwMDtCVUdJTkVTRSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzFBMDE7QlVHSU5FU0UgTEVUVEVSIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTAyO0JVR0lORVNFIExFVFRFUiBOR0E7TG87MDtMOzs7OztOOzs7OzsKKzFBMDM7QlVHSU5FU0UgTEVUVEVSIE5HS0E7TG87MDtMOzs7OztOOzs7OzsKKzFBMDQ7QlVHSU5FU0UgTEVUVEVSIFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTA1O0JVR0lORVNFIExFVFRFUiBCQTtMbzswO0w7Ozs7O047Ozs7OworMUEwNjtCVUdJTkVTRSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzFBMDc7QlVHSU5FU0UgTEVUVEVSIE1QQTtMbzswO0w7Ozs7O047Ozs7OworMUEwODtCVUdJTkVTRSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzFBMDk7QlVHSU5FU0UgTEVUVEVSIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTBBO0JVR0lORVNFIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMUEwQjtCVUdJTkVTRSBMRVRURVIgTlJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTBDO0JVR0lORVNFIExFVFRFUiBDQTtMbzswO0w7Ozs7O047Ozs7OworMUEwRDtCVUdJTkVTRSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzFBMEU7QlVHSU5FU0UgTEVUVEVSIE5ZQTtMbzswO0w7Ozs7O047Ozs7OworMUEwRjtCVUdJTkVTRSBMRVRURVIgTllDQTtMbzswO0w7Ozs7O047Ozs7OworMUExMDtCVUdJTkVTRSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzFBMTE7QlVHSU5FU0UgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTEyO0JVR0lORVNFIExFVFRFUiBMQTtMbzswO0w7Ozs7O047Ozs7OworMUExMztCVUdJTkVTRSBMRVRURVIgVkE7TG87MDtMOzs7OztOOzs7OzsKKzFBMTQ7QlVHSU5FU0UgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTE1O0JVR0lORVNFIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxQTE2O0JVR0lORVNFIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworMUExNztCVUdJTkVTRSBWT1dFTCBTSUdOIEk7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxQTE4O0JVR0lORVNFIFZPV0VMIFNJR04gVTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFBMTk7QlVHSU5FU0UgVk9XRUwgU0lHTiBFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxQTFBO0JVR0lORVNFIFZPV0VMIFNJR04gTztNYzswO0w7Ozs7O047Ozs7OworMUExQjtCVUdJTkVTRSBWT1dFTCBTSUdOIEFFO01jOzA7TDs7Ozs7Tjs7Ozs7CisxQTFFO0JVR0lORVNFIFBBTExBV0E7UG87MDtMOzs7OztOOzs7OzsKKzFBMUY7QlVHSU5FU0UgRU5EIE9GIFNFQ1RJT047UG87MDtMOzs7OztOOzs7OzsKKzFEMDA7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgQTtMbDswO0w7Ozs7O047Ozs7OworMUQwMTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBBRTtMbDswO0w7Ozs7O047Ozs7OworMUQwMjtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEFFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEJBUlJFRCBCO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEM7TGw7MDtMOzs7OztOOzs7OzsKKzFEMDU7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgRDtMbDswO0w7Ozs7O047Ozs7OworMUQwNjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBFVEg7TGw7MDtMOzs7OztOOzs7OzsKKzFEMDc7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgRTtMbDswO0w7Ozs7O047Ozs7OworMUQwODtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIE9QRU4gRTtMbDswO0w7Ozs7O047Ozs7OworMUQwOTtMQVRJTiBTTUFMTCBMRVRURVIgVFVSTkVEIEk7TGw7MDtMOzs7OztOOzs7OzsKKzFEMEE7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgSjtMbDswO0w7Ozs7O047Ozs7OworMUQwQjtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBLO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIEwgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7OzsKKzFEMEQ7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgTTtMbDswO0w7Ozs7O047Ozs7OworMUQwRTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBSRVZFUlNFRCBOO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDBGO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIE87TGw7MDtMOzs7OztOOzs7OzsKKzFEMTA7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgT1BFTiBPO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDExO0xBVElOIFNNQUxMIExFVFRFUiBTSURFV0FZUyBPO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyO0xBVElOIFNNQUxMIExFVFRFUiBTSURFV0FZUyBPUEVOIE87TGw7MDtMOzs7OztOOzs7OzsKKzFEMTM7TEFUSU4gU01BTEwgTEVUVEVSIFNJREVXQVlTIE8gV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7OzsKKzFEMTQ7TEFUSU4gU01BTEwgTEVUVEVSIFRVUk5FRCBPRTtMbDswO0w7Ozs7O047Ozs7OworMUQxNTtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBPVTtMbDswO0w7Ozs7O047Ozs7OworMUQxNjtMQVRJTiBTTUFMTCBMRVRURVIgVE9QIEhBTEYgTztMbDswO0w7Ozs7O047Ozs7OworMUQxNztMQVRJTiBTTUFMTCBMRVRURVIgQk9UVE9NIEhBTEYgTztMbDswO0w7Ozs7O047Ozs7OworMUQxODtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBQO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5O0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIFJFVkVSU0VEIFI7TGw7MDtMOzs7OztOOzs7OzsKKzFEMUE7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgVFVSTkVEIFI7TGw7MDtMOzs7OztOOzs7OzsKKzFEMUI7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgVDtMbDswO0w7Ozs7O047Ozs7OworMUQxQztMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBVO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDFEO0xBVElOIFNNQUxMIExFVFRFUiBTSURFV0FZUyBVO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDFFO0xBVElOIFNNQUxMIExFVFRFUiBTSURFV0FZUyBESUFFUkVTSVpFRCBVO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDFGO0xBVElOIFNNQUxMIExFVFRFUiBTSURFV0FZUyBUVVJORUQgTTtMbDswO0w7Ozs7O047Ozs7OworMUQyMDtMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBWO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDIxO0xBVElOIExFVFRFUiBTTUFMTCBDQVBJVEFMIFc7TGw7MDtMOzs7OztOOzs7OzsKKzFEMjI7TEFUSU4gTEVUVEVSIFNNQUxMIENBUElUQUwgWjtMbDswO0w7Ozs7O047Ozs7OworMUQyMztMQVRJTiBMRVRURVIgU01BTEwgQ0FQSVRBTCBFWkg7TGw7MDtMOzs7OztOOzs7OzsKKzFEMjQ7TEFUSU4gTEVUVEVSIFZPSUNFRCBMQVJZTkdFQUwgU1BJUkFOVDtMbDswO0w7Ozs7O047Ozs7OworMUQyNTtMQVRJTiBMRVRURVIgQUlOO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDI2O0dSRUVLIExFVFRFUiBTTUFMTCBDQVBJVEFMIEdBTU1BO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDI3O0dSRUVLIExFVFRFUiBTTUFMTCBDQVBJVEFMIExBTURBO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDI4O0dSRUVLIExFVFRFUiBTTUFMTCBDQVBJVEFMIFBJO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDI5O0dSRUVLIExFVFRFUiBTTUFMTCBDQVBJVEFMIFJITztMbDswO0w7Ozs7O047Ozs7OworMUQyQTtHUkVFSyBMRVRURVIgU01BTEwgQ0FQSVRBTCBQU0k7TGw7MDtMOzs7OztOOzs7OzsKKzFEMkI7Q1lSSUxMSUMgTEVUVEVSIFNNQUxMIENBUElUQUwgRUw7TGw7MDtMOzs7OztOOzs7OzsKKzFEMkM7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgQTtMbTswO0w7PHN1cGVyPiAwMDQxOzs7O047Ozs7OworMUQyRDtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBBRTtMbTswO0w7PHN1cGVyPiAwMEM2Ozs7O047Ozs7OworMUQyRTtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBCO0xtOzA7TDs8c3VwZXI+IDAwNDI7Ozs7Tjs7Ozs7CisxRDJGO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIEJBUlJFRCBCO0xtOzA7TDs7Ozs7Tjs7Ozs7CisxRDMwO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIEQ7TG07MDtMOzxzdXBlcj4gMDA0NDs7OztOOzs7OzsKKzFEMzE7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgRTtMbTswO0w7PHN1cGVyPiAwMDQ1Ozs7O047Ozs7OworMUQzMjtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBSRVZFUlNFRCBFO0xtOzA7TDs8c3VwZXI+IDAxOEU7Ozs7Tjs7Ozs7CisxRDMzO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIEc7TG07MDtMOzxzdXBlcj4gMDA0Nzs7OztOOzs7OzsKKzFEMzQ7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgSDtMbTswO0w7PHN1cGVyPiAwMDQ4Ozs7O047Ozs7OworMUQzNTtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBJO0xtOzA7TDs8c3VwZXI+IDAwNDk7Ozs7Tjs7Ozs7CisxRDM2O01PRElGSUVSIExFVFRFUiBDQVBJVEFMIEo7TG07MDtMOzxzdXBlcj4gMDA0QTs7OztOOzs7OzsKKzFEMzc7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgSztMbTswO0w7PHN1cGVyPiAwMDRCOzs7O047Ozs7OworMUQzODtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBMO0xtOzA7TDs8c3VwZXI+IDAwNEM7Ozs7Tjs7Ozs7CisxRDM5O01PRElGSUVSIExFVFRFUiBDQVBJVEFMIE07TG07MDtMOzxzdXBlcj4gMDA0RDs7OztOOzs7OzsKKzFEM0E7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgTjtMbTswO0w7PHN1cGVyPiAwMDRFOzs7O047Ozs7OworMUQzQjtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBSRVZFUlNFRCBOO0xtOzA7TDs7Ozs7Tjs7Ozs7CisxRDNDO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIE87TG07MDtMOzxzdXBlcj4gMDA0Rjs7OztOOzs7OzsKKzFEM0Q7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgT1U7TG07MDtMOzxzdXBlcj4gMDIyMjs7OztOOzs7OzsKKzFEM0U7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgUDtMbTswO0w7PHN1cGVyPiAwMDUwOzs7O047Ozs7OworMUQzRjtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBSO0xtOzA7TDs8c3VwZXI+IDAwNTI7Ozs7Tjs7Ozs7CisxRDQwO01PRElGSUVSIExFVFRFUiBDQVBJVEFMIFQ7TG07MDtMOzxzdXBlcj4gMDA1NDs7OztOOzs7OzsKKzFENDE7TU9ESUZJRVIgTEVUVEVSIENBUElUQUwgVTtMbTswO0w7PHN1cGVyPiAwMDU1Ozs7O047Ozs7OworMUQ0MjtNT0RJRklFUiBMRVRURVIgQ0FQSVRBTCBXO0xtOzA7TDs8c3VwZXI+IDAwNTc7Ozs7Tjs7Ozs7CisxRDQzO01PRElGSUVSIExFVFRFUiBTTUFMTCBBO0xtOzA7TDs8c3VwZXI+IDAwNjE7Ozs7Tjs7Ozs7CisxRDQ0O01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgQTtMbTswO0w7PHN1cGVyPiAwMjUwOzs7O047Ozs7OworMUQ0NTtNT0RJRklFUiBMRVRURVIgU01BTEwgQUxQSEE7TG07MDtMOzxzdXBlcj4gMDI1MTs7OztOOzs7OzsKKzFENDY7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBBRTtMbTswO0w7PHN1cGVyPiAxRDAyOzs7O047Ozs7OworMUQ0NztNT0RJRklFUiBMRVRURVIgU01BTEwgQjtMbTswO0w7PHN1cGVyPiAwMDYyOzs7O047Ozs7OworMUQ0ODtNT0RJRklFUiBMRVRURVIgU01BTEwgRDtMbTswO0w7PHN1cGVyPiAwMDY0Ozs7O047Ozs7OworMUQ0OTtNT0RJRklFUiBMRVRURVIgU01BTEwgRTtMbTswO0w7PHN1cGVyPiAwMDY1Ozs7O047Ozs7OworMUQ0QTtNT0RJRklFUiBMRVRURVIgU01BTEwgU0NIV0E7TG07MDtMOzxzdXBlcj4gMDI1OTs7OztOOzs7OzsKKzFENEI7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIE9QRU4gRTtMbTswO0w7PHN1cGVyPiAwMjVCOzs7O047Ozs7OworMUQ0QztNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIE9QRU4gRTtMbTswO0w7PHN1cGVyPiAwMjVDOzs7O047Ozs7OworMUQ0RDtNT0RJRklFUiBMRVRURVIgU01BTEwgRztMbTswO0w7PHN1cGVyPiAwMDY3Ozs7O047Ozs7OworMUQ0RTtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIEk7TG07MDtMOzs7OztOOzs7OzsKKzFENEY7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEs7TG07MDtMOzxzdXBlcj4gMDA2Qjs7OztOOzs7OzsKKzFENTA7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIE07TG07MDtMOzxzdXBlcj4gMDA2RDs7OztOOzs7OzsKKzFENTE7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEVORztMbTswO0w7PHN1cGVyPiAwMTRCOzs7O047Ozs7OworMUQ1MjtNT0RJRklFUiBMRVRURVIgU01BTEwgTztMbTswO0w7PHN1cGVyPiAwMDZGOzs7O047Ozs7OworMUQ1MztNT0RJRklFUiBMRVRURVIgU01BTEwgT1BFTiBPO0xtOzA7TDs8c3VwZXI+IDAyNTQ7Ozs7Tjs7Ozs7CisxRDU0O01PRElGSUVSIExFVFRFUiBTTUFMTCBUT1AgSEFMRiBPO0xtOzA7TDs8c3VwZXI+IDFEMTY7Ozs7Tjs7Ozs7CisxRDU1O01PRElGSUVSIExFVFRFUiBTTUFMTCBCT1RUT00gSEFMRiBPO0xtOzA7TDs8c3VwZXI+IDFEMTc7Ozs7Tjs7Ozs7CisxRDU2O01PRElGSUVSIExFVFRFUiBTTUFMTCBQO0xtOzA7TDs8c3VwZXI+IDAwNzA7Ozs7Tjs7Ozs7CisxRDU3O01PRElGSUVSIExFVFRFUiBTTUFMTCBUO0xtOzA7TDs8c3VwZXI+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDU4O01PRElGSUVSIExFVFRFUiBTTUFMTCBVO0xtOzA7TDs8c3VwZXI+IDAwNzU7Ozs7Tjs7Ozs7CisxRDU5O01PRElGSUVSIExFVFRFUiBTTUFMTCBTSURFV0FZUyBVO0xtOzA7TDs8c3VwZXI+IDFEMUQ7Ozs7Tjs7Ozs7CisxRDVBO01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgTTtMbTswO0w7PHN1cGVyPiAwMjZGOzs7O047Ozs7OworMUQ1QjtNT0RJRklFUiBMRVRURVIgU01BTEwgVjtMbTswO0w7PHN1cGVyPiAwMDc2Ozs7O047Ozs7OworMUQ1QztNT0RJRklFUiBMRVRURVIgU01BTEwgQUlOO0xtOzA7TDs8c3VwZXI+IDFEMjU7Ozs7Tjs7Ozs7CisxRDVEO01PRElGSUVSIExFVFRFUiBTTUFMTCBCRVRBO0xtOzA7TDs8c3VwZXI+IDAzQjI7Ozs7Tjs7Ozs7CisxRDVFO01PRElGSUVSIExFVFRFUiBTTUFMTCBHUkVFSyBHQU1NQTtMbTswO0w7PHN1cGVyPiAwM0IzOzs7O047Ozs7OworMUQ1RjtNT0RJRklFUiBMRVRURVIgU01BTEwgREVMVEE7TG07MDtMOzxzdXBlcj4gMDNCNDs7OztOOzs7OzsKKzFENjA7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEdSRUVLIFBISTtMbTswO0w7PHN1cGVyPiAwM0M2Ozs7O047Ozs7OworMUQ2MTtNT0RJRklFUiBMRVRURVIgU01BTEwgQ0hJO0xtOzA7TDs8c3VwZXI+IDAzQzc7Ozs7Tjs7Ozs7CisxRDYyO0xBVElOIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgSTtMbDswO0w7PHN1Yj4gMDA2OTs7OztOOzs7OzsKKzFENjM7TEFUSU4gU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBSO0xsOzA7TDs8c3ViPiAwMDcyOzs7O047Ozs7OworMUQ2NDtMQVRJTiBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIFU7TGw7MDtMOzxzdWI+IDAwNzU7Ozs7Tjs7Ozs7CisxRDY1O0xBVElOIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgVjtMbDswO0w7PHN1Yj4gMDA3Njs7OztOOzs7OzsKKzFENjY7R1JFRUsgU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBCRVRBO0xsOzA7TDs8c3ViPiAwM0IyOzs7O047Ozs7OworMUQ2NztHUkVFSyBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIEdBTU1BO0xsOzA7TDs8c3ViPiAwM0IzOzs7O047Ozs7OworMUQ2ODtHUkVFSyBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIFJITztMbDswO0w7PHN1Yj4gMDNDMTs7OztOOzs7OzsKKzFENjk7R1JFRUsgU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBQSEk7TGw7MDtMOzxzdWI+IDAzQzY7Ozs7Tjs7Ozs7CisxRDZBO0dSRUVLIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgQ0hJO0xsOzA7TDs8c3ViPiAwM0M3Ozs7O047Ozs7OworMUQ2QjtMQVRJTiBTTUFMTCBMRVRURVIgVUU7TGw7MDtMOzs7OztOOzs7OzsKKzFENkM7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENkQ7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENkU7TEFUSU4gU01BTEwgTEVUVEVSIEYgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENkY7TEFUSU4gU01BTEwgTEVUVEVSIE0gV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENzA7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENzE7TEFUSU4gU01BTEwgTEVUVEVSIFAgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENzI7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBNSURETEUgVElMREU7TGw7MDtMOzs7OztOOzs7OzsKKzFENzM7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBGSVNISE9PSyBBTkQgTUlERExFIFRJTERFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDc0O0xBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggTUlERExFIFRJTERFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDc1O0xBVElOIFNNQUxMIExFVFRFUiBUIFdJVEggTUlERExFIFRJTERFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDc2O0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggTUlERExFIFRJTERFO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDc3O0xBVElOIFNNQUxMIExFVFRFUiBUVVJORUQgRztMbDswO0w7Ozs7O047Ozs7OworMUQ3ODtNT0RJRklFUiBMRVRURVIgQ1lSSUxMSUMgRU47TG07MDtMOzxzdXBlcj4gMDQzRDs7OztOOzs7OzsKKzFENzk7TEFUSU4gU01BTEwgTEVUVEVSIElOU1VMQVIgRztMbDswO0w7Ozs7O047Ozs7OworMUQ3QTtMQVRJTiBTTUFMTCBMRVRURVIgVEggV0lUSCBTVFJJS0VUSFJPVUdIO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDdCO0xBVElOIFNNQUxMIENBUElUQUwgTEVUVEVSIEkgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7OzsKKzFEN0M7TEFUSU4gU01BTEwgTEVUVEVSIElPVEEgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7OzsKKzFEN0Q7TEFUSU4gU01BTEwgTEVUVEVSIFAgV0lUSCBTVFJPS0U7TGw7MDtMOzs7OztOOzs7OzsKKzFEN0U7TEFUSU4gU01BTEwgQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Ozs7OworMUQ3RjtMQVRJTiBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFNUUk9LRTtMbDswO0w7Ozs7O047Ozs7OworMUQ4MDtMQVRJTiBTTUFMTCBMRVRURVIgQiBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4MTtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4MjtMQVRJTiBTTUFMTCBMRVRURVIgRiBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4MztMQVRJTiBTTUFMTCBMRVRURVIgRyBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4NDtMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4NTtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4NjtMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4NztMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4ODtMQVRJTiBTTUFMTCBMRVRURVIgUCBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4OTtMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4QTtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIFBBTEFUQUwgSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ4QjtMQVRJTiBTTUFMTCBMRVRURVIgRVNIIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDhDO0xBVElOIFNNQUxMIExFVFRFUiBWIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDhEO0xBVElOIFNNQUxMIExFVFRFUiBYIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDhFO0xBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggUEFMQVRBTCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDhGO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOTA7TEFUSU4gU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOTE7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBIT09LIEFORCBUQUlMO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDkyO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOTM7TEFUSU4gU01BTEwgTEVUVEVSIE9QRU4gRSBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDk0O0xBVElOIFNNQUxMIExFVFRFUiBSRVZFUlNFRCBPUEVOIEUgV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ5NTtMQVRJTiBTTUFMTCBMRVRURVIgU0NIV0EgV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ5NjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIFJFVFJPRkxFWCBIT09LO0xsOzA7TDs7Ozs7Tjs7Ozs7CisxRDk3O0xBVElOIFNNQUxMIExFVFRFUiBPUEVOIE8gV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ5ODtMQVRJTiBTTUFMTCBMRVRURVIgRVNIIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOTk7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBSRVRST0ZMRVggSE9PSztMbDswO0w7Ozs7O047Ozs7OworMUQ5QTtMQVRJTiBTTUFMTCBMRVRURVIgRVpIIFdJVEggUkVUUk9GTEVYIEhPT0s7TGw7MDtMOzs7OztOOzs7OzsKKzFEOUI7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFRVUk5FRCBBTFBIQTtMbTswO0w7PHN1cGVyPiAwMjUyOzs7O047Ozs7OworMUQ5QztNT0RJRklFUiBMRVRURVIgU01BTEwgQztMbTswO0w7PHN1cGVyPiAwMDYzOzs7O047Ozs7OworMUQ5RDtNT0RJRklFUiBMRVRURVIgU01BTEwgQyBXSVRIIENVUkw7TG07MDtMOzxzdXBlcj4gMDI1NTs7OztOOzs7OzsKKzFEOUU7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEVUSDtMbTswO0w7PHN1cGVyPiAwMEYwOzs7O047Ozs7OworMUQ5RjtNT0RJRklFUiBMRVRURVIgU01BTEwgUkVWRVJTRUQgT1BFTiBFO0xtOzA7TDs8c3VwZXI+IDAyNUM7Ozs7Tjs7Ozs7CisxREEwO01PRElGSUVSIExFVFRFUiBTTUFMTCBGO0xtOzA7TDs8c3VwZXI+IDAwNjY7Ozs7Tjs7Ozs7CisxREExO01PRElGSUVSIExFVFRFUiBTTUFMTCBET1RMRVNTIEogV0lUSCBTVFJPS0U7TG07MDtMOzxzdXBlcj4gMDI1Rjs7OztOOzs7OzsKKzFEQTI7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFNDUklQVCBHO0xtOzA7TDs8c3VwZXI+IDAyNjE7Ozs7Tjs7Ozs7CisxREEzO01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgSDtMbTswO0w7PHN1cGVyPiAwMjY1Ozs7O047Ozs7OworMURBNDtNT0RJRklFUiBMRVRURVIgU01BTEwgSSBXSVRIIFNUUk9LRTtMbTswO0w7PHN1cGVyPiAwMjY4Ozs7O047Ozs7OworMURBNTtNT0RJRklFUiBMRVRURVIgU01BTEwgSU9UQTtMbTswO0w7PHN1cGVyPiAwMjY5Ozs7O047Ozs7OworMURBNjtNT0RJRklFUiBMRVRURVIgU01BTEwgQ0FQSVRBTCBJO0xtOzA7TDs8c3VwZXI+IDAyNkE7Ozs7Tjs7Ozs7CisxREE3O01PRElGSUVSIExFVFRFUiBTTUFMTCBDQVBJVEFMIEkgV0lUSCBTVFJPS0U7TG07MDtMOzxzdXBlcj4gMUQ3Qjs7OztOOzs7OzsKKzFEQTg7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEogV0lUSCBDUk9TU0VELVRBSUw7TG07MDtMOzxzdXBlcj4gMDI5RDs7OztOOzs7OzsKKzFEQTk7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEwgV0lUSCBSRVRST0ZMRVggSE9PSztMbTswO0w7PHN1cGVyPiAwMjZEOzs7O047Ozs7OworMURBQTtNT0RJRklFUiBMRVRURVIgU01BTEwgTCBXSVRIIFBBTEFUQUwgSE9PSztMbTswO0w7PHN1cGVyPiAxRDg1Ozs7O047Ozs7OworMURBQjtNT0RJRklFUiBMRVRURVIgU01BTEwgQ0FQSVRBTCBMO0xtOzA7TDs8c3VwZXI+IDAyOUY7Ozs7Tjs7Ozs7CisxREFDO01PRElGSUVSIExFVFRFUiBTTUFMTCBNIFdJVEggSE9PSztMbTswO0w7PHN1cGVyPiAwMjcxOzs7O047Ozs7OworMURBRDtNT0RJRklFUiBMRVRURVIgU01BTEwgVFVSTkVEIE0gV0lUSCBMT05HIExFRztMbTswO0w7PHN1cGVyPiAwMjcwOzs7O047Ozs7OworMURBRTtNT0RJRklFUiBMRVRURVIgU01BTEwgTiBXSVRIIExFRlQgSE9PSztMbTswO0w7PHN1cGVyPiAwMjcyOzs7O047Ozs7OworMURBRjtNT0RJRklFUiBMRVRURVIgU01BTEwgTiBXSVRIIFJFVFJPRkxFWCBIT09LO0xtOzA7TDs8c3VwZXI+IDAyNzM7Ozs7Tjs7Ozs7CisxREIwO01PRElGSUVSIExFVFRFUiBTTUFMTCBDQVBJVEFMIE47TG07MDtMOzxzdXBlcj4gMDI3NDs7OztOOzs7OzsKKzFEQjE7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIEJBUlJFRCBPO0xtOzA7TDs8c3VwZXI+IDAyNzU7Ozs7Tjs7Ozs7CisxREIyO01PRElGSUVSIExFVFRFUiBTTUFMTCBQSEk7TG07MDtMOzxzdXBlcj4gMDI3ODs7OztOOzs7OzsKKzFEQjM7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFMgV0lUSCBIT09LO0xtOzA7TDs8c3VwZXI+IDAyODI7Ozs7Tjs7Ozs7CisxREI0O01PRElGSUVSIExFVFRFUiBTTUFMTCBFU0g7TG07MDtMOzxzdXBlcj4gMDI4Mzs7OztOOzs7OzsKKzFEQjU7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFQgV0lUSCBQQUxBVEFMIEhPT0s7TG07MDtMOzxzdXBlcj4gMDFBQjs7OztOOzs7OzsKKzFEQjY7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFUgQkFSO0xtOzA7TDs8c3VwZXI+IDAyODk7Ozs7Tjs7Ozs7CisxREI3O01PRElGSUVSIExFVFRFUiBTTUFMTCBVUFNJTE9OO0xtOzA7TDs8c3VwZXI+IDAyOEE7Ozs7Tjs7Ozs7CisxREI4O01PRElGSUVSIExFVFRFUiBTTUFMTCBDQVBJVEFMIFU7TG07MDtMOzxzdXBlcj4gMUQxQzs7OztOOzs7OzsKKzFEQjk7TU9ESUZJRVIgTEVUVEVSIFNNQUxMIFYgV0lUSCBIT09LO0xtOzA7TDs8c3VwZXI+IDAyOEI7Ozs7Tjs7Ozs7CisxREJBO01PRElGSUVSIExFVFRFUiBTTUFMTCBUVVJORUQgVjtMbTswO0w7PHN1cGVyPiAwMjhDOzs7O047Ozs7OworMURCQjtNT0RJRklFUiBMRVRURVIgU01BTEwgWjtMbTswO0w7PHN1cGVyPiAwMDdBOzs7O047Ozs7OworMURCQztNT0RJRklFUiBMRVRURVIgU01BTEwgWiBXSVRIIFJFVFJPRkxFWCBIT09LO0xtOzA7TDs8c3VwZXI+IDAyOTA7Ozs7Tjs7Ozs7CisxREJEO01PRElGSUVSIExFVFRFUiBTTUFMTCBaIFdJVEggQ1VSTDtMbTswO0w7PHN1cGVyPiAwMjkxOzs7O047Ozs7OworMURCRTtNT0RJRklFUiBMRVRURVIgU01BTEwgRVpIO0xtOzA7TDs8c3VwZXI+IDAyOTI7Ozs7Tjs7Ozs7CisxREJGO01PRElGSUVSIExFVFRFUiBTTUFMTCBUSEVUQTtMbTswO0w7PHN1cGVyPiAwM0I4Ozs7O047Ozs7OworMURDMDtDT01CSU5JTkcgRE9UVEVEIEdSQVZFIEFDQ0VOVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEQzE7Q09NQklOSU5HIERPVFRFRCBBQ1VURSBBQ0NFTlQ7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxREMyO0NPTUJJTklORyBTTkFLRSBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEQzM7Q09NQklOSU5HIFNVU1BFTlNJT04gTUFSSztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFFMDA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFJJTkcgQkVMT1c7THU7MDtMOzAwNDEgMDMyNTs7OztOOzs7OzFFMDE7CisxRTAxO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklORyBCRUxPVztMbDswO0w7MDA2MSAwMzI1Ozs7O047OzsxRTAwOzsxRTAwCisxRTAyO0xBVElOIENBUElUQUwgTEVUVEVSIEIgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDIgMDMwNzs7OztOOzs7OzFFMDM7CisxRTAzO0xBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDYyIDAzMDc7Ozs7Tjs7OzFFMDI7OzFFMDIKKzFFMDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0MiAwMzIzOzs7O047Ozs7MUUwNTsKKzFFMDU7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjIgMDMyMzs7OztOOzs7MUUwNDs7MUUwNAorMUUwNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBCIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA0MiAwMzMxOzs7O047Ozs7MUUwNzsKKzFFMDc7TEFUSU4gU01BTEwgTEVUVEVSIEIgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDYyIDAzMzE7Ozs7Tjs7OzFFMDY7OzFFMDYKKzFFMDg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENFRElMTEEgQU5EIEFDVVRFO0x1OzA7TDswMEM3IDAzMDE7Ozs7Tjs7OzsxRTA5OworMUUwOTtMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENFRElMTEEgQU5EIEFDVVRFO0xsOzA7TDswMEU3IDAzMDE7Ozs7Tjs7OzFFMDg7OzFFMDgKKzFFMEE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0NCAwMzA3Ozs7O047Ozs7MUUwQjsKKzFFMEI7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNjQgMDMwNzs7OztOOzs7MUUwQTs7MUUwQQorMUUwQztMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQ0IDAzMjM7Ozs7Tjs7OzsxRTBEOworMUUwRDtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2NCAwMzIzOzs7O047OzsxRTBDOzsxRTBDCisxRTBFO0xBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDQ0IDAzMzE7Ozs7Tjs7OzsxRTBGOworMUUwRjtMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNjQgMDMzMTs7OztOOzs7MUUwRTs7MUUwRQorMUUxMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0NCAwMzI3Ozs7O047Ozs7MUUxMTsKKzFFMTE7TEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBDRURJTExBO0xsOzA7TDswMDY0IDAzMjc7Ozs7Tjs7OzFFMTA7OzFFMTAKKzFFMTI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNDQgMDMyRDs7OztOOzs7OzFFMTM7CisxRTEzO0xBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA2NCAwMzJEOzs7O047OzsxRTEyOzsxRTEyCisxRTE0O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBNQUNST04gQU5EIEdSQVZFO0x1OzA7TDswMTEyIDAzMDA7Ozs7Tjs7OzsxRTE1OworMUUxNTtMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIE1BQ1JPTiBBTkQgR1JBVkU7TGw7MDtMOzAxMTMgMDMwMDs7OztOOzs7MUUxNDs7MUUxNAorMUUxNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggTUFDUk9OIEFORCBBQ1VURTtMdTswO0w7MDExMiAwMzAxOzs7O047Ozs7MUUxNzsKKzFFMTc7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBNQUNST04gQU5EIEFDVVRFO0xsOzA7TDswMTEzIDAzMDE7Ozs7Tjs7OzFFMTY7OzFFMTYKKzFFMTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQkVMT1c7THU7MDtMOzAwNDUgMDMyRDs7OztOOzs7OzFFMTk7CisxRTE5O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMbDswO0w7MDA2NSAwMzJEOzs7O047OzsxRTE4OzsxRTE4CisxRTFBO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBUSUxERSBCRUxPVztMdTswO0w7MDA0NSAwMzMwOzs7O047Ozs7MUUxQjsKKzFFMUI7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBUSUxERSBCRUxPVztMbDswO0w7MDA2NSAwMzMwOzs7O047OzsxRTFBOzsxRTFBCisxRTFDO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDRURJTExBIEFORCBCUkVWRTtMdTswO0w7MDIyOCAwMzA2Ozs7O047Ozs7MUUxRDsKKzFFMUQ7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDRURJTExBIEFORCBCUkVWRTtMbDswO0w7MDIyOSAwMzA2Ozs7O047OzsxRTFDOzsxRTFDCisxRTFFO0xBVElOIENBUElUQUwgTEVUVEVSIEYgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNDYgMDMwNzs7OztOOzs7OzFFMUY7CisxRTFGO0xBVElOIFNNQUxMIExFVFRFUiBGIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDY2IDAzMDc7Ozs7Tjs7OzFFMUU7OzFFMUUKKzFFMjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRyBXSVRIIE1BQ1JPTjtMdTswO0w7MDA0NyAwMzA0Ozs7O047Ozs7MUUyMTsKKzFFMjE7TEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBNQUNST047TGw7MDtMOzAwNjcgMDMwNDs7OztOOzs7MUUyMDs7MUUyMAorMUUyMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDQ4IDAzMDc7Ozs7Tjs7OzsxRTIzOworMUUyMztMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2OCAwMzA3Ozs7O047OzsxRTIyOzsxRTIyCisxRTI0O0xBVElOIENBUElUQUwgTEVUVEVSIEggV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDggMDMyMzs7OztOOzs7OzFFMjU7CisxRTI1O0xBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDY4IDAzMjM7Ozs7Tjs7OzFFMjQ7OzFFMjQKKzFFMjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA0OCAwMzA4Ozs7O047Ozs7MUUyNzsKKzFFMjc7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNjggMDMwODs7OztOOzs7MUUyNjs7MUUyNgorMUUyODtMQVRJTiBDQVBJVEFMIExFVFRFUiBIIFdJVEggQ0VESUxMQTtMdTswO0w7MDA0OCAwMzI3Ozs7O047Ozs7MUUyOTsKKzFFMjk7TEFUSU4gU01BTEwgTEVUVEVSIEggV0lUSCBDRURJTExBO0xsOzA7TDswMDY4IDAzMjc7Ozs7Tjs7OzFFMjg7OzFFMjgKKzFFMkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIEJSRVZFIEJFTE9XO0x1OzA7TDswMDQ4IDAzMkU7Ozs7Tjs7OzsxRTJCOworMUUyQjtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIEJSRVZFIEJFTE9XO0xsOzA7TDswMDY4IDAzMkU7Ozs7Tjs7OzFFMkE7OzFFMkEKKzFFMkM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIFRJTERFIEJFTE9XO0x1OzA7TDswMDQ5IDAzMzA7Ozs7Tjs7OzsxRTJEOworMUUyRDtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIFRJTERFIEJFTE9XO0xsOzA7TDswMDY5IDAzMzA7Ozs7Tjs7OzFFMkM7OzFFMkMKKzFFMkU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUyBBTkQgQUNVVEU7THU7MDtMOzAwQ0YgMDMwMTs7OztOOzs7OzFFMkY7CisxRTJGO0xBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTIEFORCBBQ1VURTtMbDswO0w7MDBFRiAwMzAxOzs7O047OzsxRTJFOzsxRTJFCisxRTMwO0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBBQ1VURTtMdTswO0w7MDA0QiAwMzAxOzs7O047Ozs7MUUzMTsKKzFFMzE7TEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBBQ1VURTtMbDswO0w7MDA2QiAwMzAxOzs7O047OzsxRTMwOzsxRTMwCisxRTMyO0xBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNEIgMDMyMzs7OztOOzs7OzFFMzM7CisxRTMzO0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDZCIDAzMjM7Ozs7Tjs7OzFFMzI7OzFFMzIKKzFFMzQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgSyBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNEIgMDMzMTs7OztOOzs7OzFFMzU7CisxRTM1O0xBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2QiAwMzMxOzs7O047OzsxRTM0OzsxRTM0CisxRTM2O0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNEMgMDMyMzs7OztOOzs7OzFFMzc7CisxRTM3O0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDZDIDAzMjM7Ozs7Tjs7OzFFMzY7OzFFMzYKKzFFMzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIERPVCBCRUxPVyBBTkQgTUFDUk9OO0x1OzA7TDsxRTM2IDAzMDQ7Ozs7Tjs7OzsxRTM5OworMUUzOTtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIERPVCBCRUxPVyBBTkQgTUFDUk9OO0xsOzA7TDsxRTM3IDAzMDQ7Ozs7Tjs7OzFFMzg7OzFFMzgKKzFFM0E7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIExJTkUgQkVMT1c7THU7MDtMOzAwNEMgMDMzMTs7OztOOzs7OzFFM0I7CisxRTNCO0xBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggTElORSBCRUxPVztMbDswO0w7MDA2QyAwMzMxOzs7O047OzsxRTNBOzsxRTNBCisxRTNDO0xBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0x1OzA7TDswMDRDIDAzMkQ7Ozs7Tjs7OzsxRTNEOworMUUzRDtMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIENJUkNVTUZMRVggQkVMT1c7TGw7MDtMOzAwNkMgMDMyRDs7OztOOzs7MUUzQzs7MUUzQworMUUzRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBNIFdJVEggQUNVVEU7THU7MDtMOzAwNEQgMDMwMTs7OztOOzs7OzFFM0Y7CisxRTNGO0xBVElOIFNNQUxMIExFVFRFUiBNIFdJVEggQUNVVEU7TGw7MDtMOzAwNkQgMDMwMTs7OztOOzs7MUUzRTs7MUUzRQorMUU0MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBNIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDREIDAzMDc7Ozs7Tjs7OzsxRTQxOworMUU0MTtMQVRJTiBTTUFMTCBMRVRURVIgTSBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA2RCAwMzA3Ozs7O047OzsxRTQwOzsxRTQwCisxRTQyO0xBVElOIENBUElUQUwgTEVUVEVSIE0gV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNEQgMDMyMzs7OztOOzs7OzFFNDM7CisxRTQzO0xBVElOIFNNQUxMIExFVFRFUiBNIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDZEIDAzMjM7Ozs7Tjs7OzFFNDI7OzFFNDIKKzFFNDQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA0RSAwMzA3Ozs7O047Ozs7MUU0NTsKKzFFNDU7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNkUgMDMwNzs7OztOOzs7MUU0NDs7MUU0NAorMUU0NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDRFIDAzMjM7Ozs7Tjs7OzsxRTQ3OworMUU0NztMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2RSAwMzIzOzs7O047OzsxRTQ2OzsxRTQ2CisxRTQ4O0xBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDRFIDAzMzE7Ozs7Tjs7OzsxRTQ5OworMUU0OTtMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNkUgMDMzMTs7OztOOzs7MUU0ODs7MUU0OAorMUU0QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA0RSAwMzJEOzs7O047Ozs7MUU0QjsKKzFFNEI7TEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDZFIDAzMkQ7Ozs7Tjs7OzFFNEE7OzFFNEEKKzFFNEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFIEFORCBBQ1VURTtMdTswO0w7MDBENSAwMzAxOzs7O047Ozs7MUU0RDsKKzFFNEQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgQUNVVEU7TGw7MDtMOzAwRjUgMDMwMTs7OztOOzs7MUU0Qzs7MUU0QworMUU0RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREUgQU5EIERJQUVSRVNJUztMdTswO0w7MDBENSAwMzA4Ozs7O047Ozs7MUU0RjsKKzFFNEY7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERSBBTkQgRElBRVJFU0lTO0xsOzA7TDswMEY1IDAzMDg7Ozs7Tjs7OzFFNEU7OzFFNEUKKzFFNTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE1BQ1JPTiBBTkQgR1JBVkU7THU7MDtMOzAxNEMgMDMwMDs7OztOOzs7OzFFNTE7CisxRTUxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggTUFDUk9OIEFORCBHUkFWRTtMbDswO0w7MDE0RCAwMzAwOzs7O047OzsxRTUwOzsxRTUwCisxRTUyO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBNQUNST04gQU5EIEFDVVRFO0x1OzA7TDswMTRDIDAzMDE7Ozs7Tjs7OzsxRTUzOworMUU1MztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE1BQ1JPTiBBTkQgQUNVVEU7TGw7MDtMOzAxNEQgMDMwMTs7OztOOzs7MUU1Mjs7MUU1MgorMUU1NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBQIFdJVEggQUNVVEU7THU7MDtMOzAwNTAgMDMwMTs7OztOOzs7OzFFNTU7CisxRTU1O0xBVElOIFNNQUxMIExFVFRFUiBQIFdJVEggQUNVVEU7TGw7MDtMOzAwNzAgMDMwMTs7OztOOzs7MUU1NDs7MUU1NAorMUU1NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBQIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDUwIDAzMDc7Ozs7Tjs7OzsxRTU3OworMUU1NztMQVRJTiBTTUFMTCBMRVRURVIgUCBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3MCAwMzA3Ozs7O047OzsxRTU2OzsxRTU2CisxRTU4O0xBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTIgMDMwNzs7OztOOzs7OzFFNTk7CisxRTU5O0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDcyIDAzMDc7Ozs7Tjs7OzFFNTg7OzFFNTgKKzFFNUE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA1MiAwMzIzOzs7O047Ozs7MUU1QjsKKzFFNUI7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNzIgMDMyMzs7OztOOzs7MUU1QTs7MUU1QQorMUU1QztMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggRE9UIEJFTE9XIEFORCBNQUNST047THU7MDtMOzFFNUEgMDMwNDs7OztOOzs7OzFFNUQ7CisxRTVEO0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggRE9UIEJFTE9XIEFORCBNQUNST047TGw7MDtMOzFFNUIgMDMwNDs7OztOOzs7MUU1Qzs7MUU1QworMUU1RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggTElORSBCRUxPVztMdTswO0w7MDA1MiAwMzMxOzs7O047Ozs7MUU1RjsKKzFFNUY7TEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBMSU5FIEJFTE9XO0xsOzA7TDswMDcyIDAzMzE7Ozs7Tjs7OzFFNUU7OzFFNUUKKzFFNjA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1MyAwMzA3Ozs7O047Ozs7MUU2MTsKKzFFNjE7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzMgMDMwNzs7OztOOzs7MUU2MDs7MUU2MAorMUU2MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDUzIDAzMjM7Ozs7Tjs7OzsxRTYzOworMUU2MztMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3MyAwMzIzOzs7O047OzsxRTYyOzsxRTYyCisxRTY0O0xBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBBQ1VURSBBTkQgRE9UIEFCT1ZFO0x1OzA7TDswMTVBIDAzMDc7Ozs7Tjs7OzsxRTY1OworMUU2NTtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIEFDVVRFIEFORCBET1QgQUJPVkU7TGw7MDtMOzAxNUIgMDMwNzs7OztOOzs7MUU2NDs7MUU2NAorMUU2NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0FST04gQU5EIERPVCBBQk9WRTtMdTswO0w7MDE2MCAwMzA3Ozs7O047Ozs7MUU2NzsKKzFFNjc7TEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDQVJPTiBBTkQgRE9UIEFCT1ZFO0xsOzA7TDswMTYxIDAzMDc7Ozs7Tjs7OzFFNjY7OzFFNjYKKzFFNjg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIERPVCBCRUxPVyBBTkQgRE9UIEFCT1ZFO0x1OzA7TDsxRTYyIDAzMDc7Ozs7Tjs7OzsxRTY5OworMUU2OTtMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIERPVCBCRUxPVyBBTkQgRE9UIEFCT1ZFO0xsOzA7TDsxRTYzIDAzMDc7Ozs7Tjs7OzFFNjg7OzFFNjgKKzFFNkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVCBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1NCAwMzA3Ozs7O047Ozs7MUU2QjsKKzFFNkI7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzQgMDMwNzs7OztOOzs7MUU2QTs7MUU2QQorMUU2QztMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU0IDAzMjM7Ozs7Tjs7OzsxRTZEOworMUU2RDtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3NCAwMzIzOzs7O047OzsxRTZDOzsxRTZDCisxRTZFO0xBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDU0IDAzMzE7Ozs7Tjs7OzsxRTZGOworMUU2RjtMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNzQgMDMzMTs7OztOOzs7MUU2RTs7MUU2RQorMUU3MDtMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA1NCAwMzJEOzs7O047Ozs7MUU3MTsKKzFFNzE7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDc0IDAzMkQ7Ozs7Tjs7OzFFNzA7OzFFNzAKKzFFNzI7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBCRUxPVztMdTswO0w7MDA1NSAwMzI0Ozs7O047Ozs7MUU3MzsKKzFFNzM7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMgQkVMT1c7TGw7MDtMOzAwNzUgMDMyNDs7OztOOzs7MUU3Mjs7MUU3MgorMUU3NDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggVElMREUgQkVMT1c7THU7MDtMOzAwNTUgMDMzMDs7OztOOzs7OzFFNzU7CisxRTc1O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggVElMREUgQkVMT1c7TGw7MDtMOzAwNzUgMDMzMDs7OztOOzs7MUU3NDs7MUU3NAorMUU3NjtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVztMdTswO0w7MDA1NSAwMzJEOzs7O047Ozs7MUU3NzsKKzFFNzc7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYIEJFTE9XO0xsOzA7TDswMDc1IDAzMkQ7Ozs7Tjs7OzFFNzY7OzFFNzYKKzFFNzg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFRJTERFIEFORCBBQ1VURTtMdTswO0w7MDE2OCAwMzAxOzs7O047Ozs7MUU3OTsKKzFFNzk7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBUSUxERSBBTkQgQUNVVEU7TGw7MDtMOzAxNjkgMDMwMTs7OztOOzs7MUU3ODs7MUU3OAorMUU3QTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggTUFDUk9OIEFORCBESUFFUkVTSVM7THU7MDtMOzAxNkEgMDMwODs7OztOOzs7OzFFN0I7CisxRTdCO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggTUFDUk9OIEFORCBESUFFUkVTSVM7TGw7MDtMOzAxNkIgMDMwODs7OztOOzs7MUU3QTs7MUU3QQorMUU3QztMQVRJTiBDQVBJVEFMIExFVFRFUiBWIFdJVEggVElMREU7THU7MDtMOzAwNTYgMDMwMzs7OztOOzs7OzFFN0Q7CisxRTdEO0xBVElOIFNNQUxMIExFVFRFUiBWIFdJVEggVElMREU7TGw7MDtMOzAwNzYgMDMwMzs7OztOOzs7MUU3Qzs7MUU3QworMUU3RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBWIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU2IDAzMjM7Ozs7Tjs7OzsxRTdGOworMUU3RjtMQVRJTiBTTUFMTCBMRVRURVIgViBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3NiAwMzIzOzs7O047OzsxRTdFOzsxRTdFCisxRTgwO0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBHUkFWRTtMdTswO0w7MDA1NyAwMzAwOzs7O047Ozs7MUU4MTsKKzFFODE7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBHUkFWRTtMbDswO0w7MDA3NyAwMzAwOzs7O047OzsxRTgwOzsxRTgwCisxRTgyO0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBBQ1VURTtMdTswO0w7MDA1NyAwMzAxOzs7O047Ozs7MUU4MzsKKzFFODM7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBBQ1VURTtMbDswO0w7MDA3NyAwMzAxOzs7O047OzsxRTgyOzsxRTgyCisxRTg0O0xBVElOIENBUElUQUwgTEVUVEVSIFcgV0lUSCBESUFFUkVTSVM7THU7MDtMOzAwNTcgMDMwODs7OztOOzs7OzFFODU7CisxRTg1O0xBVElOIFNNQUxMIExFVFRFUiBXIFdJVEggRElBRVJFU0lTO0xsOzA7TDswMDc3IDAzMDg7Ozs7Tjs7OzFFODQ7OzFFODQKKzFFODY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVyBXSVRIIERPVCBBQk9WRTtMdTswO0w7MDA1NyAwMzA3Ozs7O047Ozs7MUU4NzsKKzFFODc7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBET1QgQUJPVkU7TGw7MDtMOzAwNzcgMDMwNzs7OztOOzs7MUU4Njs7MUU4NgorMUU4ODtMQVRJTiBDQVBJVEFMIExFVFRFUiBXIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDU3IDAzMjM7Ozs7Tjs7OzsxRTg5OworMUU4OTtMQVRJTiBTTUFMTCBMRVRURVIgVyBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3NyAwMzIzOzs7O047OzsxRTg4OzsxRTg4CisxRThBO0xBVElOIENBUElUQUwgTEVUVEVSIFggV0lUSCBET1QgQUJPVkU7THU7MDtMOzAwNTggMDMwNzs7OztOOzs7OzFFOEI7CisxRThCO0xBVElOIFNNQUxMIExFVFRFUiBYIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMDc4IDAzMDc7Ozs7Tjs7OzFFOEE7OzFFOEEKKzFFOEM7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWCBXSVRIIERJQUVSRVNJUztMdTswO0w7MDA1OCAwMzA4Ozs7O047Ozs7MUU4RDsKKzFFOEQ7TEFUSU4gU01BTEwgTEVUVEVSIFggV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNzggMDMwODs7OztOOzs7MUU4Qzs7MUU4QworMUU4RTtMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggRE9UIEFCT1ZFO0x1OzA7TDswMDU5IDAzMDc7Ozs7Tjs7OzsxRThGOworMUU4RjtMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIERPVCBBQk9WRTtMbDswO0w7MDA3OSAwMzA3Ozs7O047OzsxRThFOzsxRThFCisxRTkwO0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBDSVJDVU1GTEVYO0x1OzA7TDswMDVBIDAzMDI7Ozs7Tjs7OzsxRTkxOworMUU5MTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIENJUkNVTUZMRVg7TGw7MDtMOzAwN0EgMDMwMjs7OztOOzs7MUU5MDs7MUU5MAorMUU5MjtMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDVBIDAzMjM7Ozs7Tjs7OzsxRTkzOworMUU5MztMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA3QSAwMzIzOzs7O047OzsxRTkyOzsxRTkyCisxRTk0O0xBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBMSU5FIEJFTE9XO0x1OzA7TDswMDVBIDAzMzE7Ozs7Tjs7OzsxRTk1OworMUU5NTtMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwN0EgMDMzMTs7OztOOzs7MUU5NDs7MUU5NAorMUU5NjtMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRIIExJTkUgQkVMT1c7TGw7MDtMOzAwNjggMDMzMTs7OztOOzs7OzsKKzFFOTc7TEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBESUFFUkVTSVM7TGw7MDtMOzAwNzQgMDMwODs7OztOOzs7OzsKKzFFOTg7TEFUSU4gU01BTEwgTEVUVEVSIFcgV0lUSCBSSU5HIEFCT1ZFO0xsOzA7TDswMDc3IDAzMEE7Ozs7Tjs7Ozs7CisxRTk5O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggUklORyBBQk9WRTtMbDswO0w7MDA3OSAwMzBBOzs7O047Ozs7OworMUU5QTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJR0hUIEhBTEYgUklORztMbDswO0w7PGNvbXBhdD4gMDA2MSAwMkJFOzs7O047Ozs7OworMUU5QjtMQVRJTiBTTUFMTCBMRVRURVIgTE9ORyBTIFdJVEggRE9UIEFCT1ZFO0xsOzA7TDswMTdGIDAzMDc7Ozs7Tjs7OzFFNjA7OzFFNjAKKzFFQTA7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERPVCBCRUxPVztMdTswO0w7MDA0MSAwMzIzOzs7O047Ozs7MUVBMTsKKzFFQTE7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBET1QgQkVMT1c7TGw7MDtMOzAwNjEgMDMyMzs7OztOOzs7MUVBMDs7MUVBMAorMUVBMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggSE9PSyBBQk9WRTtMdTswO0w7MDA0MSAwMzA5Ozs7O047Ozs7MUVBMzsKKzFFQTM7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBIT09LIEFCT1ZFO0xsOzA7TDswMDYxIDAzMDk7Ozs7Tjs7OzFFQTI7OzFFQTIKKzFFQTQ7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEFDVVRFO0x1OzA7TDswMEMyIDAzMDE7Ozs7Tjs7OzsxRUE1OworMUVBNTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEFDVVRFO0xsOzA7TDswMEUyIDAzMDE7Ozs7Tjs7OzFFQTQ7OzFFQTQKKzFFQTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEdSQVZFO0x1OzA7TDswMEMyIDAzMDA7Ozs7Tjs7OzsxRUE3OworMUVBNztMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEdSQVZFO0xsOzA7TDswMEUyIDAzMDA7Ozs7Tjs7OzFFQTY7OzFFQTYKKzFFQTg7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7THU7MDtMOzAwQzIgMDMwOTs7OztOOzs7OzFFQTk7CisxRUE5O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgSE9PSyBBQk9WRTtMbDswO0w7MDBFMiAwMzA5Ozs7O047OzsxRUE4OzsxRUE4CisxRUFBO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBUSUxERTtMdTswO0w7MDBDMiAwMzAzOzs7O047Ozs7MUVBQjsKKzFFQUI7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBUSUxERTtMbDswO0w7MDBFMiAwMzAzOzs7O047OzsxRUFBOzsxRUFBCisxRUFDO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1c7THU7MDtMOzFFQTAgMDMwMjs7OztOOzs7OzFFQUQ7CisxRUFEO0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0xsOzA7TDsxRUExIDAzMDI7Ozs7Tjs7OzFFQUM7OzFFQUMKKzFFQUU7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBBQ1VURTtMdTswO0w7MDEwMiAwMzAxOzs7O047Ozs7MUVBRjsKKzFFQUY7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgQUNVVEU7TGw7MDtMOzAxMDMgMDMwMTs7OztOOzs7MUVBRTs7MUVBRQorMUVCMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIEdSQVZFO0x1OzA7TDswMTAyIDAzMDA7Ozs7Tjs7OzsxRUIxOworMUVCMTtMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBHUkFWRTtMbDswO0w7MDEwMyAwMzAwOzs7O047OzsxRUIwOzsxRUIwCisxRUIyO0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgSE9PSyBBQk9WRTtMdTswO0w7MDEwMiAwMzA5Ozs7O047Ozs7MUVCMzsKKzFFQjM7TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgSE9PSyBBQk9WRTtMbDswO0w7MDEwMyAwMzA5Ozs7O047OzsxRUIyOzsxRUIyCisxRUI0O0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgVElMREU7THU7MDtMOzAxMDIgMDMwMzs7OztOOzs7OzFFQjU7CisxRUI1O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIFRJTERFO0xsOzA7TDswMTAzIDAzMDM7Ozs7Tjs7OzFFQjQ7OzFFQjQKKzFFQjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBET1QgQkVMT1c7THU7MDtMOzFFQTAgMDMwNjs7OztOOzs7OzFFQjc7CisxRUI3O0xBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQlJFVkUgQU5EIERPVCBCRUxPVztMbDswO0w7MUVBMSAwMzA2Ozs7O047OzsxRUI2OzsxRUI2CisxRUI4O0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNDUgMDMyMzs7OztOOzs7OzFFQjk7CisxRUI5O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDY1IDAzMjM7Ozs7Tjs7OzFFQjg7OzFFQjgKKzFFQkE7TEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNDUgMDMwOTs7OztOOzs7OzFFQkI7CisxRUJCO0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA2NSAwMzA5Ozs7O047OzsxRUJBOzsxRUJBCisxRUJDO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBUSUxERTtMdTswO0w7MDA0NSAwMzAzOzs7O047Ozs7MUVCRDsKKzFFQkQ7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBUSUxERTtMbDswO0w7MDA2NSAwMzAzOzs7O047OzsxRUJDOzsxRUJDCisxRUJFO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMdTswO0w7MDBDQSAwMzAxOzs7O047Ozs7MUVCRjsKKzFFQkY7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMbDswO0w7MDBFQSAwMzAxOzs7O047OzsxRUJFOzsxRUJFCisxRUMwO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMdTswO0w7MDBDQSAwMzAwOzs7O047Ozs7MUVDMTsKKzFFQzE7TEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMbDswO0w7MDBFQSAwMzAwOzs7O047OzsxRUMwOzsxRUMwCisxRUMyO0xBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMENBIDAzMDk7Ozs7Tjs7OzsxRUMzOworMUVDMztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAwRUEgMDMwOTs7OztOOzs7MUVDMjs7MUVDMgorMUVDNDtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7THU7MDtMOzAwQ0EgMDMwMzs7OztOOzs7OzFFQzU7CisxRUM1O0xBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7TGw7MDtMOzAwRUEgMDMwMzs7OztOOzs7MUVDNDs7MUVDNAorMUVDNjtMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0x1OzA7TDsxRUI4IDAzMDI7Ozs7Tjs7OzsxRUM3OworMUVDNztMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMbDswO0w7MUVCOSAwMzAyOzs7O047OzsxRUM2OzsxRUM2CisxRUM4O0xBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBIT09LIEFCT1ZFO0x1OzA7TDswMDQ5IDAzMDk7Ozs7Tjs7OzsxRUM5OworMUVDOTtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEhPT0sgQUJPVkU7TGw7MDtMOzAwNjkgMDMwOTs7OztOOzs7MUVDODs7MUVDOAorMUVDQTtMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEJFTE9XO0x1OzA7TDswMDQ5IDAzMjM7Ozs7Tjs7OzsxRUNCOworMUVDQjtMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERPVCBCRUxPVztMbDswO0w7MDA2OSAwMzIzOzs7O047OzsxRUNBOzsxRUNBCisxRUNDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNEYgMDMyMzs7OztOOzs7OzFFQ0Q7CisxRUNEO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDZGIDAzMjM7Ozs7Tjs7OzFFQ0M7OzFFQ0MKKzFFQ0U7TEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNEYgMDMwOTs7OztOOzs7OzFFQ0Y7CisxRUNGO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA2RiAwMzA5Ozs7O047OzsxRUNFOzsxRUNFCisxRUQwO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMdTswO0w7MDBENCAwMzAxOzs7O047Ozs7MUVEMTsKKzFFRDE7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBBQ1VURTtMbDswO0w7MDBGNCAwMzAxOzs7O047OzsxRUQwOzsxRUQwCisxRUQyO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMdTswO0w7MDBENCAwMzAwOzs7O047Ozs7MUVEMzsKKzFFRDM7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBHUkFWRTtMbDswO0w7MDBGNCAwMzAwOzs7O047OzsxRUQyOzsxRUQyCisxRUQ0O0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMEQ0IDAzMDk7Ozs7Tjs7OzsxRUQ1OworMUVENTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAwRjQgMDMwOTs7OztOOzs7MUVENDs7MUVENAorMUVENjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7THU7MDtMOzAwRDQgMDMwMzs7OztOOzs7OzFFRDc7CisxRUQ3O0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgVElMREU7TGw7MDtMOzAwRjQgMDMwMzs7OztOOzs7MUVENjs7MUVENgorMUVEODtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XO0x1OzA7TDsxRUNDIDAzMDI7Ozs7Tjs7OzsxRUQ5OworMUVEOTtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVztMbDswO0w7MUVDRCAwMzAyOzs7O047OzsxRUQ4OzsxRUQ4CisxRURBO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBBQ1VURTtMdTswO0w7MDFBMCAwMzAxOzs7O047Ozs7MUVEQjsKKzFFREI7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBBQ1VURTtMbDswO0w7MDFBMSAwMzAxOzs7O047OzsxRURBOzsxRURBCisxRURDO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBHUkFWRTtMdTswO0w7MDFBMCAwMzAwOzs7O047Ozs7MUVERDsKKzFFREQ7TEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBHUkFWRTtMbDswO0w7MDFBMSAwMzAwOzs7O047OzsxRURDOzsxRURDCisxRURFO0xBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBIT1JOIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMUEwIDAzMDk7Ozs7Tjs7OzsxRURGOworMUVERjtMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAxQTEgMDMwOTs7OztOOzs7MUVERTs7MUVERQorMUVFMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgVElMREU7THU7MDtMOzAxQTAgMDMwMzs7OztOOzs7OzFFRTE7CisxRUUxO0xBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgVElMREU7TGw7MDtMOzAxQTEgMDMwMzs7OztOOzs7MUVFMDs7MUVFMAorMUVFMjtMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSE9STiBBTkQgRE9UIEJFTE9XO0x1OzA7TDswMUEwIDAzMjM7Ozs7Tjs7OzsxRUUzOworMUVFMztMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEhPUk4gQU5EIERPVCBCRUxPVztMbDswO0w7MDFBMSAwMzIzOzs7O047OzsxRUUyOzsxRUUyCisxRUU0O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTUgMDMyMzs7OztOOzs7OzFFRTU7CisxRUU1O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDc1IDAzMjM7Ozs7Tjs7OzFFRTQ7OzFFRTQKKzFFRTY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNTUgMDMwOTs7OztOOzs7OzFFRTc7CisxRUU3O0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA3NSAwMzA5Ozs7O047OzsxRUU2OzsxRUU2CisxRUU4O0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBBQ1VURTtMdTswO0w7MDFBRiAwMzAxOzs7O047Ozs7MUVFOTsKKzFFRTk7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBBQ1VURTtMbDswO0w7MDFCMCAwMzAxOzs7O047OzsxRUU4OzsxRUU4CisxRUVBO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBHUkFWRTtMdTswO0w7MDFBRiAwMzAwOzs7O047Ozs7MUVFQjsKKzFFRUI7TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBHUkFWRTtMbDswO0w7MDFCMCAwMzAwOzs7O047OzsxRUVBOzsxRUVBCisxRUVDO0xBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBIT1JOIEFORCBIT09LIEFCT1ZFO0x1OzA7TDswMUFGIDAzMDk7Ozs7Tjs7OzsxRUVEOworMUVFRDtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIEhPT0sgQUJPVkU7TGw7MDtMOzAxQjAgMDMwOTs7OztOOzs7MUVFQzs7MUVFQworMUVFRTtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgVElMREU7THU7MDtMOzAxQUYgMDMwMzs7OztOOzs7OzFFRUY7CisxRUVGO0xBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgVElMREU7TGw7MDtMOzAxQjAgMDMwMzs7OztOOzs7MUVFRTs7MUVFRQorMUVGMDtMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggSE9STiBBTkQgRE9UIEJFTE9XO0x1OzA7TDswMUFGIDAzMjM7Ozs7Tjs7OzsxRUYxOworMUVGMTtMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEhPUk4gQU5EIERPVCBCRUxPVztMbDswO0w7MDFCMCAwMzIzOzs7O047OzsxRUYwOzsxRUYwCisxRUYyO0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBHUkFWRTtMdTswO0w7MDA1OSAwMzAwOzs7O047Ozs7MUVGMzsKKzFFRjM7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBHUkFWRTtMbDswO0w7MDA3OSAwMzAwOzs7O047OzsxRUYyOzsxRUYyCisxRUY0O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBET1QgQkVMT1c7THU7MDtMOzAwNTkgMDMyMzs7OztOOzs7OzFFRjU7CisxRUY1O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggRE9UIEJFTE9XO0xsOzA7TDswMDc5IDAzMjM7Ozs7Tjs7OzFFRjQ7OzFFRjQKKzFFRjY7TEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEhPT0sgQUJPVkU7THU7MDtMOzAwNTkgMDMwOTs7OztOOzs7OzFFRjc7CisxRUY3O0xBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggSE9PSyBBQk9WRTtMbDswO0w7MDA3OSAwMzA5Ozs7O047OzsxRUY2OzsxRUY2CisxRUY4O0xBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBUSUxERTtMdTswO0w7MDA1OSAwMzAzOzs7O047Ozs7MUVGOTsKKzFFRjk7TEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBUSUxERTtMbDswO0w7MDA3OSAwMzAzOzs7O047OzsxRUY4OzsxRUY4CisxRjAwO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJO0xsOzA7TDswM0IxIDAzMTM7Ozs7Tjs7OzFGMDg7OzFGMDgKKzFGMDE7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUE7TGw7MDtMOzAzQjEgMDMxNDs7OztOOzs7MUYwOTs7MUYwOQorMUYwMjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGMDAgMDMwMDs7OztOOzs7MUYwQTs7MUYwQQorMUYwMztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGMDEgMDMwMDs7OztOOzs7MUYwQjs7MUYwQgorMUYwNDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUYwMCAwMzAxOzs7O047OzsxRjBDOzsxRjBDCisxRjA1O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjAxIDAzMDE7Ozs7Tjs7OzFGMEQ7OzFGMEQKKzFGMDY7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjAwIDAzNDI7Ozs7Tjs7OzFGMEU7OzFGMEUKKzFGMDc7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjAxIDAzNDI7Ozs7Tjs7OzFGMEY7OzFGMEYKKzFGMDg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSTtMdTswO0w7MDM5MSAwMzEzOzs7O047Ozs7MUYwMDsKKzFGMDk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQTtMdTswO0w7MDM5MSAwMzE0Ozs7O047Ozs7MUYwMTsKKzFGMEE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGMDggMDMwMDs7OztOOzs7OzFGMDI7CisxRjBCO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjA5IDAzMDA7Ozs7Tjs7OzsxRjAzOworMUYwQztHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBO0x1OzA7TDsxRjA4IDAzMDE7Ozs7Tjs7OzsxRjA0OworMUYwRDtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjA5IDAzMDE7Ozs7Tjs7OzsxRjA1OworMUYwRTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYwOCAwMzQyOzs7O047Ozs7MUYwNjsKKzFGMEY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMDkgMDM0Mjs7OztOOzs7OzFGMDc7CisxRjEwO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEk7TGw7MDtMOzAzQjUgMDMxMzs7OztOOzs7MUYxODs7MUYxOAorMUYxMTtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBO0xsOzA7TDswM0I1IDAzMTQ7Ozs7Tjs7OzFGMTk7OzFGMTkKKzFGMTI7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGMTAgMDMwMDs7OztOOzs7MUYxQTs7MUYxQQorMUYxMztHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUYxMSAwMzAwOzs7O047OzsxRjFCOzsxRjFCCisxRjE0O0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGMTAgMDMwMTs7OztOOzs7MUYxQzs7MUYxQworMUYxNTtHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBIEFORCBPWElBO0xsOzA7TDsxRjExIDAzMDE7Ozs7Tjs7OzFGMUQ7OzFGMUQKKzFGMTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJO0x1OzA7TDswMzk1IDAzMTM7Ozs7Tjs7OzsxRjEwOworMUYxOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUE7THU7MDtMOzAzOTUgMDMxNDs7OztOOzs7OzFGMTE7CisxRjFBO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGMTggMDMwMDs7OztOOzs7OzFGMTI7CisxRjFCO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGMTkgMDMwMDs7OztOOzs7OzFGMTM7CisxRjFDO0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUYxOCAwMzAxOzs7O047Ozs7MUYxNDsKKzFGMUQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjE5IDAzMDE7Ozs7Tjs7OzsxRjE1OworMUYyMDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEk7TGw7MDtMOzAzQjcgMDMxMzs7OztOOzs7MUYyODs7MUYyOAorMUYyMTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUE7TGw7MDtMOzAzQjcgMDMxNDs7OztOOzs7MUYyOTs7MUYyOQorMUYyMjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjIwIDAzMDA7Ozs7Tjs7OzFGMkE7OzFGMkEKKzFGMjM7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMbDswO0w7MUYyMSAwMzAwOzs7O047OzsxRjJCOzsxRjJCCisxRjI0O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUYyMCAwMzAxOzs7O047OzsxRjJDOzsxRjJDCisxRjI1O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUYyMSAwMzAxOzs7O047OzsxRjJEOzsxRjJECisxRjI2O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7TGw7MDtMOzFGMjAgMDM0Mjs7OztOOzs7MUYyRTs7MUYyRQorMUYyNztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjIxIDAzNDI7Ozs7Tjs7OzFGMkY7OzFGMkYKKzFGMjg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEk7THU7MDtMOzAzOTcgMDMxMzs7OztOOzs7OzFGMjA7CisxRjI5O0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBO0x1OzA7TDswMzk3IDAzMTQ7Ozs7Tjs7OzsxRjIxOworMUYyQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGMjggMDMwMDs7OztOOzs7OzFGMjI7CisxRjJCO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUYyOSAwMzAwOzs7O047Ozs7MUYyMzsKKzFGMkM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGMjggMDMwMTs7OztOOzs7OzFGMjQ7CisxRjJEO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjI5IDAzMDE7Ozs7Tjs7OzsxRjI1OworMUYyRTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGMjggMDM0Mjs7OztOOzs7OzFGMjY7CisxRjJGO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMdTswO0w7MUYyOSAwMzQyOzs7O047Ozs7MUYyNzsKKzFGMzA7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSTtMbDswO0w7MDNCOSAwMzEzOzs7O047OzsxRjM4OzsxRjM4CisxRjMxO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggREFTSUE7TGw7MDtMOzAzQjkgMDMxNDs7OztOOzs7MUYzOTs7MUYzOQorMUYzMjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBWQVJJQTtMbDswO0w7MUYzMCAwMzAwOzs7O047OzsxRjNBOzsxRjNBCisxRjMzO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjMxIDAzMDA7Ozs7Tjs7OzFGM0I7OzFGM0IKKzFGMzQ7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMbDswO0w7MUYzMCAwMzAxOzs7O047OzsxRjNDOzsxRjNDCisxRjM1O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGMzEgMDMwMTs7OztOOzs7MUYzRDs7MUYzRAorMUYzNjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUYzMCAwMzQyOzs7O047OzsxRjNFOzsxRjNFCisxRjM3O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDsxRjMxIDAzNDI7Ozs7Tjs7OzFGM0Y7OzFGM0YKKzFGMzg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJO0x1OzA7TDswMzk5IDAzMTM7Ozs7Tjs7OzsxRjMwOworMUYzOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggREFTSUE7THU7MDtMOzAzOTkgMDMxNDs7OztOOzs7OzFGMzE7CisxRjNBO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUE7THU7MDtMOzFGMzggMDMwMDs7OztOOzs7OzFGMzI7CisxRjNCO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUE7THU7MDtMOzFGMzkgMDMwMDs7OztOOzs7OzFGMzM7CisxRjNDO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUYzOCAwMzAxOzs7O047Ozs7MUYzNDsKKzFGM0Q7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjM5IDAzMDE7Ozs7Tjs7OzsxRjM1OworMUYzRTtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjM4IDAzNDI7Ozs7Tjs7OzsxRjM2OworMUYzRjtHUkVFSyBDQVBJVEFMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjM5IDAzNDI7Ozs7Tjs7OzsxRjM3OworMUY0MDtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJO0xsOzA7TDswM0JGIDAzMTM7Ozs7Tjs7OzFGNDg7OzFGNDgKKzFGNDE7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQTtMbDswO0w7MDNCRiAwMzE0Ozs7O047OzsxRjQ5OzsxRjQ5CisxRjQyO0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjQwIDAzMDA7Ozs7Tjs7OzFGNEE7OzFGNEEKKzFGNDM7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGNDEgMDMwMDs7OztOOzs7MUY0Qjs7MUY0QgorMUY0NDtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjQwIDAzMDE7Ozs7Tjs7OzFGNEM7OzFGNEMKKzFGNDU7R1JFRUsgU01BTEwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUY0MSAwMzAxOzs7O047OzsxRjREOzsxRjRECisxRjQ4O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBQU0lMSTtMdTswO0w7MDM5RiAwMzEzOzs7O047Ozs7MUY0MDsKKzFGNDk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBO0x1OzA7TDswMzlGIDAzMTQ7Ozs7Tjs7OzsxRjQxOworMUY0QTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjQ4IDAzMDA7Ozs7Tjs7OzsxRjQyOworMUY0QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggREFTSUEgQU5EIFZBUklBO0x1OzA7TDsxRjQ5IDAzMDA7Ozs7Tjs7OzsxRjQzOworMUY0QztHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggUFNJTEkgQU5EIE9YSUE7THU7MDtMOzFGNDggMDMwMTs7OztOOzs7OzFGNDQ7CisxRjREO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUY0OSAwMzAxOzs7O047Ozs7MUY0NTsKKzFGNTA7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSTtMbDswO0w7MDNDNSAwMzEzOzs7O047Ozs7OworMUY1MTtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBO0xsOzA7TDswM0M1IDAzMTQ7Ozs7Tjs7OzFGNTk7OzFGNTkKKzFGNTI7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgVkFSSUE7TGw7MDtMOzFGNTAgMDMwMDs7OztOOzs7OzsKKzFGNTM7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUE7TGw7MDtMOzFGNTEgMDMwMDs7OztOOzs7MUY1Qjs7MUY1QgorMUY1NDtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJIEFORCBPWElBO0xsOzA7TDsxRjUwIDAzMDE7Ozs7Tjs7Ozs7CisxRjU1O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIE9YSUE7TGw7MDtMOzFGNTEgMDMwMTs7OztOOzs7MUY1RDs7MUY1RAorMUY1NjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUY1MCAwMzQyOzs7O047Ozs7OworMUY1NztHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUY1MSAwMzQyOzs7O047OzsxRjVGOzsxRjVGCisxRjU5O0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQTtMdTswO0w7MDNBNSAwMzE0Ozs7O047Ozs7MUY1MTsKKzFGNUI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUY1OSAwMzAwOzs7O047Ozs7MUY1MzsKKzFGNUQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBPWElBO0x1OzA7TDsxRjU5IDAzMDE7Ozs7Tjs7OzsxRjU1OworMUY1RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjU5IDAzNDI7Ozs7Tjs7OzsxRjU3OworMUY2MDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSTtMbDswO0w7MDNDOSAwMzEzOzs7O047OzsxRjY4OzsxRjY4CisxRjYxO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBO0xsOzA7TDswM0M5IDAzMTQ7Ozs7Tjs7OzFGNjk7OzFGNjkKKzFGNjI7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBO0xsOzA7TDsxRjYwIDAzMDA7Ozs7Tjs7OzFGNkE7OzFGNkEKKzFGNjM7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBO0xsOzA7TDsxRjYxIDAzMDA7Ozs7Tjs7OzFGNkI7OzFGNkIKKzFGNjQ7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUE7TGw7MDtMOzFGNjAgMDMwMTs7OztOOzs7MUY2Qzs7MUY2QworMUY2NTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQTtMbDswO0w7MUY2MSAwMzAxOzs7O047OzsxRjZEOzsxRjZECisxRjY2O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUY2MCAwMzQyOzs7O047OzsxRjZFOzsxRjZFCisxRjY3O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MUY2MSAwMzQyOzs7O047OzsxRjZGOzsxRjZGCisxRjY4O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEk7THU7MDtMOzAzQTkgMDMxMzs7OztOOzs7OzFGNjA7CisxRjY5O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUE7THU7MDtMOzAzQTkgMDMxNDs7OztOOzs7OzFGNjE7CisxRjZBO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBO0x1OzA7TDsxRjY4IDAzMDA7Ozs7Tjs7OzsxRjYyOworMUY2QjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQTtMdTswO0w7MUY2OSAwMzAwOzs7O047Ozs7MUY2MzsKKzFGNkM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQTtMdTswO0w7MUY2OCAwMzAxOzs7O047Ozs7MUY2NDsKKzFGNkQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQTtMdTswO0w7MUY2OSAwMzAxOzs7O047Ozs7MUY2NTsKKzFGNkU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkk7THU7MDtMOzFGNjggMDM0Mjs7OztOOzs7OzFGNjY7CisxRjZGO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JO0x1OzA7TDsxRjY5IDAzNDI7Ozs7Tjs7OzsxRjY3OworMUY3MDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQTtMbDswO0w7MDNCMSAwMzAwOzs7O047OzsxRkJBOzsxRkJBCisxRjcxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIE9YSUE7TGw7MDtMOzAzQUM7Ozs7Tjs7OzFGQkI7OzFGQkIKKzFGNzI7R1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04gV0lUSCBWQVJJQTtMbDswO0w7MDNCNSAwMzAwOzs7O047OzsxRkM4OzsxRkM4CisxRjczO0dSRUVLIFNNQUxMIExFVFRFUiBFUFNJTE9OIFdJVEggT1hJQTtMbDswO0w7MDNBRDs7OztOOzs7MUZDOTs7MUZDOQorMUY3NDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVkFSSUE7TGw7MDtMOzAzQjcgMDMwMDs7OztOOzs7MUZDQTs7MUZDQQorMUY3NTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggT1hJQTtMbDswO0w7MDNBRTs7OztOOzs7MUZDQjs7MUZDQgorMUY3NjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFZBUklBO0xsOzA7TDswM0I5IDAzMDA7Ozs7Tjs7OzFGREE7OzFGREEKKzFGNzc7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBPWElBO0xsOzA7TDswM0FGOzs7O047OzsxRkRCOzsxRkRCCisxRjc4O0dSRUVLIFNNQUxMIExFVFRFUiBPTUlDUk9OIFdJVEggVkFSSUE7TGw7MDtMOzAzQkYgMDMwMDs7OztOOzs7MUZGODs7MUZGOAorMUY3OTtHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIE9YSUE7TGw7MDtMOzAzQ0M7Ozs7Tjs7OzFGRjk7OzFGRjkKKzFGN0E7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBWQVJJQTtMbDswO0w7MDNDNSAwMzAwOzs7O047OzsxRkVBOzsxRkVBCisxRjdCO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggT1hJQTtMbDswO0w7MDNDRDs7OztOOzs7MUZFQjs7MUZFQgorMUY3QztHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQTtMbDswO0w7MDNDOSAwMzAwOzs7O047OzsxRkZBOzsxRkZBCisxRjdEO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUE7TGw7MDtMOzAzQ0U7Ozs7Tjs7OzFGRkI7OzFGRkIKKzFGODA7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDAgMDM0NTs7OztOOzs7MUY4ODs7MUY4OAorMUY4MTtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwMSAwMzQ1Ozs7O047OzsxRjg5OzsxRjg5CisxRjgyO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwMiAwMzQ1Ozs7O047OzsxRjhBOzsxRjhBCisxRjgzO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYwMyAwMzQ1Ozs7O047OzsxRjhCOzsxRjhCCisxRjg0O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjA0IDAzNDU7Ozs7Tjs7OzFGOEM7OzFGOEMKKzFGODU7R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDUgMDM0NTs7OztOOzs7MUY4RDs7MUY4RAorMUY4NjtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDYgMDM0NTs7OztOOzs7MUY4RTs7MUY4RQorMUY4NztHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMDcgMDM0NTs7OztOOzs7MUY4Rjs7MUY4RgorMUY4ODtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwOCAwMzQ1Ozs7O047Ozs7MUY4MDsKKzFGODk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMDkgMDM0NTs7OztOOzs7OzFGODE7CisxRjhBO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwQSAwMzQ1Ozs7O047Ozs7MUY4MjsKKzFGOEI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjBCIDAzNDU7Ozs7Tjs7OzsxRjgzOworMUY4QztHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwQyAwMzQ1Ozs7O047Ozs7MUY4NDsKKzFGOEQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMEQgMDM0NTs7OztOOzs7OzFGODU7CisxRjhFO0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYwRSAwMzQ1Ozs7O047Ozs7MUY4NjsKKzFGOEY7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjBGIDAzNDU7Ozs7Tjs7OzsxRjg3OworMUY5MDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjAgMDM0NTs7OztOOzs7MUY5ODs7MUY5OAorMUY5MTtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjEgMDM0NTs7OztOOzs7MUY5OTs7MUY5OQorMUY5MjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjIyIDAzNDU7Ozs7Tjs7OzFGOUE7OzFGOUEKKzFGOTM7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyMyAwMzQ1Ozs7O047OzsxRjlCOzsxRjlCCisxRjk0O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyNCAwMzQ1Ozs7O047OzsxRjlDOzsxRjlDCisxRjk1O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUYyNSAwMzQ1Ozs7O047OzsxRjlEOzsxRjlECisxRjk2O0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGMjYgMDM0NTs7OztOOzs7MUY5RTs7MUY5RQorMUY5NztHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjI3IDAzNDU7Ozs7Tjs7OzFGOUY7OzFGOUYKKzFGOTg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjI4IDAzNDU7Ozs7Tjs7OzsxRjkwOworMUY5OTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMjkgMDM0NTs7OztOOzs7OzFGOTE7CisxRjlBO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMkEgMDM0NTs7OztOOzs7OzFGOTI7CisxRjlCO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGMkIgMDM0NTs7OztOOzs7OzFGOTM7CisxRjlDO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUYyQyAwMzQ1Ozs7O047Ozs7MUY5NDsKKzFGOUQ7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjJEIDAzNDU7Ozs7Tjs7OzsxRjk1OworMUY5RTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjJFIDAzNDU7Ozs7Tjs7OzsxRjk2OworMUY5RjtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjJGIDAzNDU7Ozs7Tjs7OzsxRjk3OworMUZBMDtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2MCAwMzQ1Ozs7O047OzsxRkE4OzsxRkE4CisxRkExO0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjYxIDAzNDU7Ozs7Tjs7OzFGQTk7OzFGQTkKKzFGQTI7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjYyIDAzNDU7Ozs7Tjs7OzFGQUE7OzFGQUEKKzFGQTM7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjYzIDAzNDU7Ozs7Tjs7OzFGQUI7OzFGQUIKKzFGQTQ7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNjQgMDM0NTs7OztOOzs7MUZBQzs7MUZBQworMUZBNTtHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2NSAwMzQ1Ozs7O047OzsxRkFEOzsxRkFECisxRkE2O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2NiAwMzQ1Ozs7O047OzsxRkFFOzsxRkFFCisxRkE3O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MUY2NyAwMzQ1Ozs7O047OzsxRkFGOzsxRkFGCisxRkE4O0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjY4IDAzNDU7Ozs7Tjs7OzsxRkEwOworMUZBOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2OSAwMzQ1Ozs7O047Ozs7MUZBMTsKKzFGQUE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjZBIDAzNDU7Ozs7Tjs7OzsxRkEyOworMUZBQjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNkIgMDM0NTs7OztOOzs7OzFGQTM7CisxRkFDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjZDIDAzNDU7Ozs7Tjs7OzsxRkE0OworMUZBRDtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MUY2RCAwMzQ1Ozs7O047Ozs7MUZBNTsKKzFGQUU7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JO0x0OzA7TDsxRjZFIDAzNDU7Ozs7Tjs7OzsxRkE2OworMUZBRjtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzFGNkYgMDM0NTs7OztOOzs7OzFGQTc7CisxRkIwO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFZSQUNIWTtMbDswO0w7MDNCMSAwMzA2Ozs7O047OzsxRkI4OzsxRkI4CisxRkIxO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIE1BQ1JPTjtMbDswO0w7MDNCMSAwMzA0Ozs7O047OzsxRkI5OzsxRkI5CisxRkIyO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRjcwIDAzNDU7Ozs7Tjs7Ozs7CisxRkIzO0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQjEgMDM0NTs7OztOOzs7MUZCQzs7MUZCQworMUZCNDtHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDswM0FDIDAzNDU7Ozs7Tjs7Ozs7CisxRkI2O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBFUklTUE9NRU5JO0xsOzA7TDswM0IxIDAzNDI7Ozs7Tjs7Ozs7CisxRkI3O0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRkI2IDAzNDU7Ozs7Tjs7Ozs7CisxRkI4O0dSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggVlJBQ0hZO0x1OzA7TDswMzkxIDAzMDY7Ozs7Tjs7OzsxRkIwOworMUZCOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIE1BQ1JPTjtMdTswO0w7MDM5MSAwMzA0Ozs7O047Ozs7MUZCMTsKKzFGQkE7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQTtMdTswO0w7MDM5MSAwMzAwOzs7O047Ozs7MUY3MDsKKzFGQkI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBPWElBO0x1OzA7TDswMzg2Ozs7O047Ozs7MUY3MTsKKzFGQkM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQUk9TR0VHUkFNTUVOSTtMdDswO0w7MDM5MSAwMzQ1Ozs7O047Ozs7MUZCMzsKKzFGQkQ7R1JFRUsgS09ST05JUztTazswO09OOzxjb21wYXQ+IDAwMjAgMDMxMzs7OztOOzs7OzsKKzFGQkU7R1JFRUsgUFJPU0dFR1JBTU1FTkk7TGw7MDtMOzAzQjk7Ozs7Tjs7OzAzOTk7OzAzOTkKKzFGQkY7R1JFRUsgUFNJTEk7U2s7MDtPTjs8Y29tcGF0PiAwMDIwIDAzMTM7Ozs7Tjs7Ozs7CisxRkMwO0dSRUVLIFBFUklTUE9NRU5JO1NrOzA7T047PGNvbXBhdD4gMDAyMCAwMzQyOzs7O047Ozs7OworMUZDMTtHUkVFSyBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JO1NrOzA7T047MDBBOCAwMzQyOzs7O047Ozs7OworMUZDMjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGNzQgMDM0NTs7OztOOzs7OzsKKzFGQzM7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQjcgMDM0NTs7OztOOzs7MUZDQzs7MUZDQworMUZDNDtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggT1hJQSBBTkQgWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNBRSAwMzQ1Ozs7O047Ozs7OworMUZDNjtHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQjcgMDM0Mjs7OztOOzs7OzsKKzFGQzc7R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JO0xsOzA7TDsxRkM2IDAzNDU7Ozs7Tjs7Ozs7CisxRkM4O0dSRUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBWQVJJQTtMdTswO0w7MDM5NSAwMzAwOzs7O047Ozs7MUY3MjsKKzFGQzk7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVBTSUxPTiBXSVRIIE9YSUE7THU7MDtMOzAzODg7Ozs7Tjs7OzsxRjczOworMUZDQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBWQVJJQTtMdTswO0w7MDM5NyAwMzAwOzs7O047Ozs7MUY3NDsKKzFGQ0I7R1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggT1hJQTtMdTswO0w7MDM4OTs7OztOOzs7OzFGNzU7CisxRkNDO0dSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBST1NHRUdSQU1NRU5JO0x0OzA7TDswMzk3IDAzNDU7Ozs7Tjs7OzsxRkMzOworMUZDRDtHUkVFSyBQU0lMSSBBTkQgVkFSSUE7U2s7MDtPTjsxRkJGIDAzMDA7Ozs7Tjs7Ozs7CisxRkNFO0dSRUVLIFBTSUxJIEFORCBPWElBO1NrOzA7T047MUZCRiAwMzAxOzs7O047Ozs7OworMUZDRjtHUkVFSyBQU0lMSSBBTkQgUEVSSVNQT01FTkk7U2s7MDtPTjsxRkJGIDAzNDI7Ozs7Tjs7Ozs7CisxRkQwO0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggVlJBQ0hZO0xsOzA7TDswM0I5IDAzMDY7Ozs7Tjs7OzFGRDg7OzFGRDgKKzFGRDE7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBNQUNST047TGw7MDtMOzAzQjkgMDMwNDs7OztOOzs7MUZEOTs7MUZEOQorMUZEMjtHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIERJQUxZVElLQSBBTkQgVkFSSUE7TGw7MDtMOzAzQ0EgMDMwMDs7OztOOzs7OzsKKzFGRDM7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIE9YSUE7TGw7MDtMOzAzOTA7Ozs7Tjs7Ozs7CisxRkQ2O0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQjkgMDM0Mjs7OztOOzs7OzsKKzFGRDc7R1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBESUFMWVRJS0EgQU5EIFBFUklTUE9NRU5JO0xsOzA7TDswM0NBIDAzNDI7Ozs7Tjs7Ozs7CisxRkQ4O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBWUkFDSFk7THU7MDtMOzAzOTkgMDMwNjs7OztOOzs7OzFGRDA7CisxRkQ5O0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBNQUNST047THU7MDtMOzAzOTkgMDMwNDs7OztOOzs7OzFGRDE7CisxRkRBO0dSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBWQVJJQTtMdTswO0w7MDM5OSAwMzAwOzs7O047Ozs7MUY3NjsKKzFGREI7R1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIE9YSUE7THU7MDtMOzAzOEE7Ozs7Tjs7OzsxRjc3OworMUZERDtHUkVFSyBEQVNJQSBBTkQgVkFSSUE7U2s7MDtPTjsxRkZFIDAzMDA7Ozs7Tjs7Ozs7CisxRkRFO0dSRUVLIERBU0lBIEFORCBPWElBO1NrOzA7T047MUZGRSAwMzAxOzs7O047Ozs7OworMUZERjtHUkVFSyBEQVNJQSBBTkQgUEVSSVNQT01FTkk7U2s7MDtPTjsxRkZFIDAzNDI7Ozs7Tjs7Ozs7CisxRkUwO0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggVlJBQ0hZO0xsOzA7TDswM0M1IDAzMDY7Ozs7Tjs7OzFGRTg7OzFGRTgKKzFGRTE7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBNQUNST047TGw7MDtMOzAzQzUgMDMwNDs7OztOOzs7MUZFOTs7MUZFOQorMUZFMjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIERJQUxZVElLQSBBTkQgVkFSSUE7TGw7MDtMOzAzQ0IgMDMwMDs7OztOOzs7OzsKKzFGRTM7R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBESUFMWVRJS0EgQU5EIE9YSUE7TGw7MDtMOzAzQjA7Ozs7Tjs7Ozs7CisxRkU0O0dSRUVLIFNNQUxMIExFVFRFUiBSSE8gV0lUSCBQU0lMSTtMbDswO0w7MDNDMSAwMzEzOzs7O047Ozs7OworMUZFNTtHUkVFSyBTTUFMTCBMRVRURVIgUkhPIFdJVEggREFTSUE7TGw7MDtMOzAzQzEgMDMxNDs7OztOOzs7MUZFQzs7MUZFQworMUZFNjtHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTiBXSVRIIFBFUklTUE9NRU5JO0xsOzA7TDswM0M1IDAzNDI7Ozs7Tjs7Ozs7CisxRkU3O0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEggRElBTFlUSUtBIEFORCBQRVJJU1BPTUVOSTtMbDswO0w7MDNDQiAwMzQyOzs7O047Ozs7OworMUZFODtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggVlJBQ0hZO0x1OzA7TDswM0E1IDAzMDY7Ozs7Tjs7OzsxRkUwOworMUZFOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggTUFDUk9OO0x1OzA7TDswM0E1IDAzMDQ7Ozs7Tjs7OzsxRkUxOworMUZFQTtHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJTE9OIFdJVEggVkFSSUE7THU7MDtMOzAzQTUgMDMwMDs7OztOOzs7OzFGN0E7CisxRkVCO0dSRUVLIENBUElUQUwgTEVUVEVSIFVQU0lMT04gV0lUSCBPWElBO0x1OzA7TDswMzhFOzs7O047Ozs7MUY3QjsKKzFGRUM7R1JFRUsgQ0FQSVRBTCBMRVRURVIgUkhPIFdJVEggREFTSUE7THU7MDtMOzAzQTEgMDMxNDs7OztOOzs7OzFGRTU7CisxRkVEO0dSRUVLIERJQUxZVElLQSBBTkQgVkFSSUE7U2s7MDtPTjswMEE4IDAzMDA7Ozs7Tjs7Ozs7CisxRkVFO0dSRUVLIERJQUxZVElLQSBBTkQgT1hJQTtTazswO09OOzAzODU7Ozs7Tjs7Ozs7CisxRkVGO0dSRUVLIFZBUklBO1NrOzA7T047MDA2MDs7OztOOzs7OzsKKzFGRjI7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGN0MgMDM0NTs7OztOOzs7OzsKKzFGRjM7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggWVBPR0VHUkFNTUVOSTtMbDswO0w7MDNDOSAwMzQ1Ozs7O047OzsxRkZDOzsxRkZDCisxRkY0O0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzAzQ0UgMDM0NTs7OztOOzs7OzsKKzFGRjY7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUEVSSVNQT01FTkk7TGw7MDtMOzAzQzkgMDM0Mjs7OztOOzs7OzsKKzFGRjc7R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUEVSSVNQT01FTkkgQU5EIFlQT0dFR1JBTU1FTkk7TGw7MDtMOzFGRjYgMDM0NTs7OztOOzs7OzsKKzFGRjg7R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFZBUklBO0x1OzA7TDswMzlGIDAzMDA7Ozs7Tjs7OzsxRjc4OworMUZGOTtHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUlDUk9OIFdJVEggT1hJQTtMdTswO0w7MDM4Qzs7OztOOzs7OzFGNzk7CisxRkZBO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggVkFSSUE7THU7MDtMOzAzQTkgMDMwMDs7OztOOzs7OzFGN0M7CisxRkZCO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggT1hJQTtMdTswO0w7MDM4Rjs7OztOOzs7OzFGN0Q7CisxRkZDO0dSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFJPU0dFR1JBTU1FTkk7THQ7MDtMOzAzQTkgMDM0NTs7OztOOzs7OzFGRjM7CisxRkZEO0dSRUVLIE9YSUE7U2s7MDtPTjswMEI0Ozs7O047Ozs7OworMUZGRTtHUkVFSyBEQVNJQTtTazswO09OOzxjb21wYXQ+IDAwMjAgMDMxNDs7OztOOzs7OzsKKzIwMDA7RU4gUVVBRDtaczswO1dTOzIwMDI7Ozs7Tjs7Ozs7CisyMDAxO0VNIFFVQUQ7WnM7MDtXUzsyMDAzOzs7O047Ozs7OworMjAwMjtFTiBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDAzO0VNIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDQ7VEhSRUUtUEVSLUVNIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDU7Rk9VUi1QRVItRU0gU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwNjtTSVgtUEVSLUVNIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDc7RklHVVJFIFNQQUNFO1pzOzA7V1M7PG5vQnJlYWs+IDAwMjA7Ozs7Tjs7Ozs7CisyMDA4O1BVTkNUVUFUSU9OIFNQQUNFO1pzOzA7V1M7PGNvbXBhdD4gMDAyMDs7OztOOzs7OzsKKzIwMDk7VEhJTiBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDBBO0hBSVIgU1BBQ0U7WnM7MDtXUzs8Y29tcGF0PiAwMDIwOzs7O047Ozs7OworMjAwQjtaRVJPIFdJRFRIIFNQQUNFO0NmOzA7Qk47Ozs7O047Ozs7OworMjAwQztaRVJPIFdJRFRIIE5PTi1KT0lORVI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDBEO1pFUk8gV0lEVEggSk9JTkVSO0NmOzA7Qk47Ozs7O047Ozs7OworMjAwRTtMRUZULVRPLVJJR0hUIE1BUks7Q2Y7MDtMOzs7OztOOzs7OzsKKzIwMEY7UklHSFQtVE8tTEVGVCBNQVJLO0NmOzA7Ujs7Ozs7Tjs7Ozs7CisyMDEwO0hZUEhFTjtQZDswO09OOzs7OztOOzs7OzsKKzIwMTE7Tk9OLUJSRUFLSU5HIEhZUEhFTjtQZDswO09OOzxub0JyZWFrPiAyMDEwOzs7O047Ozs7OworMjAxMjtGSUdVUkUgREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzIwMTM7RU4gREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzIwMTQ7RU0gREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzIwMTU7SE9SSVpPTlRBTCBCQVI7UGQ7MDtPTjs7Ozs7TjtRVU9UQVRJT04gREFTSDs7OzsKKzIwMTY7RE9VQkxFIFZFUlRJQ0FMIExJTkU7UG87MDtPTjs7Ozs7TjtET1VCTEUgVkVSVElDQUwgQkFSOzs7OworMjAxNztET1VCTEUgTE9XIExJTkU7UG87MDtPTjs8Y29tcGF0PiAwMDIwIDAzMzM7Ozs7TjtTUEFDSU5HIERPVUJMRSBVTkRFUlNDT1JFOzs7OworMjAxODtMRUZUIFNJTkdMRSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztOO1NJTkdMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDE5O1JJR0hUIFNJTkdMRSBRVU9UQVRJT04gTUFSSztQZjswO09OOzs7OztOO1NJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUE7U0lOR0xFIExPVy05IFFVT1RBVElPTiBNQVJLO1BzOzA7T047Ozs7O047TE9XIFNJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUI7U0lOR0xFIEhJR0gtUkVWRVJTRUQtOSBRVU9UQVRJT04gTUFSSztQaTswO09OOzs7OztOO1NJTkdMRSBSRVZFUlNFRCBDT01NQSBRVU9UQVRJT04gTUFSSzs7OzsKKzIwMUM7TEVGVCBET1VCTEUgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7TjtET1VCTEUgVFVSTkVEIENPTU1BIFFVT1RBVElPTiBNQVJLOzs7OworMjAxRDtSSUdIVCBET1VCTEUgUVVPVEFUSU9OIE1BUks7UGY7MDtPTjs7Ozs7TjtET1VCTEUgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFFO0RPVUJMRSBMT1ctOSBRVU9UQVRJT04gTUFSSztQczswO09OOzs7OztOO0xPVyBET1VCTEUgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDFGO0RPVUJMRSBISUdILVJFVkVSU0VELTkgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7TjtET1VCTEUgUkVWRVJTRUQgQ09NTUEgUVVPVEFUSU9OIE1BUks7Ozs7CisyMDIwO0RBR0dFUjtQbzswO09OOzs7OztOOzs7OzsKKzIwMjE7RE9VQkxFIERBR0dFUjtQbzswO09OOzs7OztOOzs7OzsKKzIwMjI7QlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjAyMztUUklBTkdVTEFSIEJVTExFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwMjQ7T05FIERPVCBMRUFERVI7UG87MDtPTjs8Y29tcGF0PiAwMDJFOzs7O047Ozs7OworMjAyNTtUV08gRE9UIExFQURFUjtQbzswO09OOzxjb21wYXQ+IDAwMkUgMDAyRTs7OztOOzs7OzsKKzIwMjY7SE9SSVpPTlRBTCBFTExJUFNJUztQbzswO09OOzxjb21wYXQ+IDAwMkUgMDAyRSAwMDJFOzs7O047Ozs7OworMjAyNztIWVBIRU5BVElPTiBQT0lOVDtQbzswO09OOzs7OztOOzs7OzsKKzIwMjg7TElORSBTRVBBUkFUT1I7Wmw7MDtXUzs7Ozs7Tjs7Ozs7CisyMDI5O1BBUkFHUkFQSCBTRVBBUkFUT1I7WnA7MDtCOzs7OztOOzs7OzsKKzIwMkE7TEVGVC1UTy1SSUdIVCBFTUJFRERJTkc7Q2Y7MDtMUkU7Ozs7O047Ozs7OworMjAyQjtSSUdIVC1UTy1MRUZUIEVNQkVERElORztDZjswO1JMRTs7Ozs7Tjs7Ozs7CisyMDJDO1BPUCBESVJFQ1RJT05BTCBGT1JNQVRUSU5HO0NmOzA7UERGOzs7OztOOzs7OzsKKzIwMkQ7TEVGVC1UTy1SSUdIVCBPVkVSUklERTtDZjswO0xSTzs7Ozs7Tjs7Ozs7CisyMDJFO1JJR0hULVRPLUxFRlQgT1ZFUlJJREU7Q2Y7MDtSTE87Ozs7O047Ozs7OworMjAyRjtOQVJST1cgTk8tQlJFQUsgU1BBQ0U7WnM7MDtDUzs8bm9CcmVhaz4gMDAyMDs7OztOOzs7OzsKKzIwMzA7UEVSIE1JTExFIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CisyMDMxO1BFUiBURU4gVEhPVVNBTkQgU0lHTjtQbzswO0VUOzs7OztOOzs7OzsKKzIwMzI7UFJJTUU7UG87MDtFVDs7Ozs7Tjs7Ozs7CisyMDMzO0RPVUJMRSBQUklNRTtQbzswO0VUOzxjb21wYXQ+IDIwMzIgMjAzMjs7OztOOzs7OzsKKzIwMzQ7VFJJUExFIFBSSU1FO1BvOzA7RVQ7PGNvbXBhdD4gMjAzMiAyMDMyIDIwMzI7Ozs7Tjs7Ozs7CisyMDM1O1JFVkVSU0VEIFBSSU1FO1BvOzA7T047Ozs7O047Ozs7OworMjAzNjtSRVZFUlNFRCBET1VCTEUgUFJJTUU7UG87MDtPTjs8Y29tcGF0PiAyMDM1IDIwMzU7Ozs7Tjs7Ozs7CisyMDM3O1JFVkVSU0VEIFRSSVBMRSBQUklNRTtQbzswO09OOzxjb21wYXQ+IDIwMzUgMjAzNSAyMDM1Ozs7O047Ozs7OworMjAzODtDQVJFVDtQbzswO09OOzs7OztOOzs7OzsKKzIwMzk7U0lOR0xFIExFRlQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUks7UGk7MDtPTjs7Ozs7WTtMRUZUIFBPSU5USU5HIFNJTkdMRSBHVUlMTEVNRVQ7Ozs7CisyMDNBO1NJTkdMRSBSSUdIVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSztQZjswO09OOzs7OztZO1JJR0hUIFBPSU5USU5HIFNJTkdMRSBHVUlMTEVNRVQ7Ozs7CisyMDNCO1JFRkVSRU5DRSBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMjAzQztET1VCTEUgRVhDTEFNQVRJT04gTUFSSztQbzswO09OOzxjb21wYXQ+IDAwMjEgMDAyMTs7OztOOzs7OzsKKzIwM0Q7SU5URVJST0JBTkc7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDNFO09WRVJMSU5FO1BvOzA7T047PGNvbXBhdD4gMDAyMCAwMzA1Ozs7O047U1BBQ0lORyBPVkVSU0NPUkU7Ozs7CisyMDNGO1VOREVSVElFO1BjOzA7T047Ozs7O047O0Vub3Rpa29uOzs7CisyMDQwO0NIQVJBQ1RFUiBUSUU7UGM7MDtPTjs7Ozs7Tjs7Ozs7CisyMDQxO0NBUkVUIElOU0VSVElPTiBQT0lOVDtQbzswO09OOzs7OztOOzs7OzsKKzIwNDI7QVNURVJJU007UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDQzO0hZUEhFTiBCVUxMRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDQ0O0ZSQUNUSU9OIFNMQVNIO1NtOzA7Q1M7Ozs7O047Ozs7OworMjA0NTtMRUZUIFNRVUFSRSBCUkFDS0VUIFdJVEggUVVJTEw7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyMDQ2O1JJR0hUIFNRVUFSRSBCUkFDS0VUIFdJVEggUVVJTEw7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyMDQ3O0RPVUJMRSBRVUVTVElPTiBNQVJLO1BvOzA7T047PGNvbXBhdD4gMDAzRiAwMDNGOzs7O047Ozs7OworMjA0ODtRVUVTVElPTiBFWENMQU1BVElPTiBNQVJLO1BvOzA7T047PGNvbXBhdD4gMDAzRiAwMDIxOzs7O047Ozs7OworMjA0OTtFWENMQU1BVElPTiBRVUVTVElPTiBNQVJLO1BvOzA7T047PGNvbXBhdD4gMDAyMSAwMDNGOzs7O047Ozs7OworMjA0QTtUSVJPTklBTiBTSUdOIEVUO1BvOzA7T047Ozs7O047Ozs7OworMjA0QjtSRVZFUlNFRCBQSUxDUk9XIFNJR047UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDRDO0JMQUNLIExFRlRXQVJEUyBCVUxMRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDREO0JMQUNLIFJJR0hUV0FSRFMgQlVMTEVUO1BvOzA7T047Ozs7O047Ozs7OworMjA0RTtMT1cgQVNURVJJU0s7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDRGO1JFVkVSU0VEIFNFTUlDT0xPTjtQbzswO09OOzs7OztOOzs7OzsKKzIwNTA7Q0xPU0UgVVA7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDUxO1RXTyBBU1RFUklTS1MgQUxJR05FRCBWRVJUSUNBTExZO1BvOzA7T047Ozs7O047Ozs7OworMjA1MjtDT01NRVJDSUFMIE1JTlVTIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMDUzO1NXVU5HIERBU0g7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDU0O0lOVkVSVEVEIFVOREVSVElFO1BjOzA7T047Ozs7O047Ozs7OworMjA1NTtGTE9XRVIgUFVOQ1RVQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzIwNTY7VEhSRUUgRE9UIFBVTkNUVUFUSU9OO1BvOzA7T047Ozs7O047Ozs7OworMjA1NztRVUFEUlVQTEUgUFJJTUU7UG87MDtPTjs8Y29tcGF0PiAyMDMyIDIwMzIgMjAzMiAyMDMyOzs7O047Ozs7OworMjA1ODtGT1VSIERPVCBQVU5DVFVBVElPTjtQbzswO09OOzs7OztOOzs7OzsKKzIwNTk7RklWRSBET1QgUFVOQ1RVQVRJT047UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDVBO1RXTyBET1QgUFVOQ1RVQVRJT047UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDVCO0ZPVVIgRE9UIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDVDO0RPVFRFRCBDUk9TUztQbzswO09OOzs7OztOOzs7OzsKKzIwNUQ7VFJJQ09MT047UG87MDtPTjs7Ozs7Tjs7Ozs7CisyMDVFO1ZFUlRJQ0FMIEZPVVIgRE9UUztQbzswO09OOzs7OztOOzs7OzsKKzIwNUY7TUVESVVNIE1BVEhFTUFUSUNBTCBTUEFDRTtaczswO1dTOzxjb21wYXQ+IDAwMjA7Ozs7Tjs7Ozs7CisyMDYwO1dPUkQgSk9JTkVSO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2MTtGVU5DVElPTiBBUFBMSUNBVElPTjtDZjswO0JOOzs7OztOOzs7OzsKKzIwNjI7SU5WSVNJQkxFIFRJTUVTO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2MztJTlZJU0lCTEUgU0VQQVJBVE9SO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2QTtJTkhJQklUIFNZTU1FVFJJQyBTV0FQUElORztDZjswO0JOOzs7OztOOzs7OzsKKzIwNkI7QUNUSVZBVEUgU1lNTUVUUklDIFNXQVBQSU5HO0NmOzA7Qk47Ozs7O047Ozs7OworMjA2QztJTkhJQklUIEFSQUJJQyBGT1JNIFNIQVBJTkc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDZEO0FDVElWQVRFIEFSQUJJQyBGT1JNIFNIQVBJTkc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDZFO05BVElPTkFMIERJR0lUIFNIQVBFUztDZjswO0JOOzs7OztOOzs7OzsKKzIwNkY7Tk9NSU5BTCBESUdJVCBTSEFQRVM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisyMDcwO1NVUEVSU0NSSVBUIFpFUk87Tm87MDtFTjs8c3VwZXI+IDAwMzA7OzA7MDtOO1NVUEVSU0NSSVBUIERJR0lUIFpFUk87Ozs7CisyMDcxO1NVUEVSU0NSSVBUIExBVElOIFNNQUxMIExFVFRFUiBJO0xsOzA7TDs8c3VwZXI+IDAwNjk7Ozs7Tjs7Ozs7CisyMDc0O1NVUEVSU0NSSVBUIEZPVVI7Tm87MDtFTjs8c3VwZXI+IDAwMzQ7OzQ7NDtOO1NVUEVSU0NSSVBUIERJR0lUIEZPVVI7Ozs7CisyMDc1O1NVUEVSU0NSSVBUIEZJVkU7Tm87MDtFTjs8c3VwZXI+IDAwMzU7OzU7NTtOO1NVUEVSU0NSSVBUIERJR0lUIEZJVkU7Ozs7CisyMDc2O1NVUEVSU0NSSVBUIFNJWDtObzswO0VOOzxzdXBlcj4gMDAzNjs7Njs2O047U1VQRVJTQ1JJUFQgRElHSVQgU0lYOzs7OworMjA3NztTVVBFUlNDUklQVCBTRVZFTjtObzswO0VOOzxzdXBlcj4gMDAzNzs7Nzs3O047U1VQRVJTQ1JJUFQgRElHSVQgU0VWRU47Ozs7CisyMDc4O1NVUEVSU0NSSVBUIEVJR0hUO05vOzA7RU47PHN1cGVyPiAwMDM4Ozs4Ozg7TjtTVVBFUlNDUklQVCBESUdJVCBFSUdIVDs7OzsKKzIwNzk7U1VQRVJTQ1JJUFQgTklORTtObzswO0VOOzxzdXBlcj4gMDAzOTs7OTs5O047U1VQRVJTQ1JJUFQgRElHSVQgTklORTs7OzsKKzIwN0E7U1VQRVJTQ1JJUFQgUExVUyBTSUdOO1NtOzA7RVM7PHN1cGVyPiAwMDJCOzs7O047Ozs7OworMjA3QjtTVVBFUlNDUklQVCBNSU5VUztTbTswO0VTOzxzdXBlcj4gMjIxMjs7OztOO1NVUEVSU0NSSVBUIEhZUEhFTi1NSU5VUzs7OzsKKzIwN0M7U1VQRVJTQ1JJUFQgRVFVQUxTIFNJR047U207MDtPTjs8c3VwZXI+IDAwM0Q7Ozs7Tjs7Ozs7CisyMDdEO1NVUEVSU0NSSVBUIExFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs8c3VwZXI+IDAwMjg7Ozs7WTtTVVBFUlNDUklQVCBPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworMjA3RTtTVVBFUlNDUklQVCBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzxzdXBlcj4gMDAyOTs7OztZO1NVUEVSU0NSSVBUIENMT1NJTkcgUEFSRU5USEVTSVM7Ozs7CisyMDdGO1NVUEVSU0NSSVBUIExBVElOIFNNQUxMIExFVFRFUiBOO0xsOzA7TDs8c3VwZXI+IDAwNkU7Ozs7Tjs7Ozs7CisyMDgwO1NVQlNDUklQVCBaRVJPO05vOzA7RU47PHN1Yj4gMDAzMDs7MDswO047U1VCU0NSSVBUIERJR0lUIFpFUk87Ozs7CisyMDgxO1NVQlNDUklQVCBPTkU7Tm87MDtFTjs8c3ViPiAwMDMxOzsxOzE7TjtTVUJTQ1JJUFQgRElHSVQgT05FOzs7OworMjA4MjtTVUJTQ1JJUFQgVFdPO05vOzA7RU47PHN1Yj4gMDAzMjs7MjsyO047U1VCU0NSSVBUIERJR0lUIFRXTzs7OzsKKzIwODM7U1VCU0NSSVBUIFRIUkVFO05vOzA7RU47PHN1Yj4gMDAzMzs7MzszO047U1VCU0NSSVBUIERJR0lUIFRIUkVFOzs7OworMjA4NDtTVUJTQ1JJUFQgRk9VUjtObzswO0VOOzxzdWI+IDAwMzQ7OzQ7NDtOO1NVQlNDUklQVCBESUdJVCBGT1VSOzs7OworMjA4NTtTVUJTQ1JJUFQgRklWRTtObzswO0VOOzxzdWI+IDAwMzU7OzU7NTtOO1NVQlNDUklQVCBESUdJVCBGSVZFOzs7OworMjA4NjtTVUJTQ1JJUFQgU0lYO05vOzA7RU47PHN1Yj4gMDAzNjs7Njs2O047U1VCU0NSSVBUIERJR0lUIFNJWDs7OzsKKzIwODc7U1VCU0NSSVBUIFNFVkVOO05vOzA7RU47PHN1Yj4gMDAzNzs7Nzs3O047U1VCU0NSSVBUIERJR0lUIFNFVkVOOzs7OworMjA4ODtTVUJTQ1JJUFQgRUlHSFQ7Tm87MDtFTjs8c3ViPiAwMDM4Ozs4Ozg7TjtTVUJTQ1JJUFQgRElHSVQgRUlHSFQ7Ozs7CisyMDg5O1NVQlNDUklQVCBOSU5FO05vOzA7RU47PHN1Yj4gMDAzOTs7OTs5O047U1VCU0NSSVBUIERJR0lUIE5JTkU7Ozs7CisyMDhBO1NVQlNDUklQVCBQTFVTIFNJR047U207MDtFUzs8c3ViPiAwMDJCOzs7O047Ozs7OworMjA4QjtTVUJTQ1JJUFQgTUlOVVM7U207MDtFUzs8c3ViPiAyMjEyOzs7O047U1VCU0NSSVBUIEhZUEhFTi1NSU5VUzs7OzsKKzIwOEM7U1VCU0NSSVBUIEVRVUFMUyBTSUdOO1NtOzA7T047PHN1Yj4gMDAzRDs7OztOOzs7OzsKKzIwOEQ7U1VCU0NSSVBUIExFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs8c3ViPiAwMDI4Ozs7O1k7U1VCU0NSSVBUIE9QRU5JTkcgUEFSRU5USEVTSVM7Ozs7CisyMDhFO1NVQlNDUklQVCBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzxzdWI+IDAwMjk7Ozs7WTtTVUJTQ1JJUFQgQ0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKKzIwOTA7TEFUSU4gU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBBO0xtOzA7TDs8c3ViPiAwMDYxOzs7O047Ozs7OworMjA5MTtMQVRJTiBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIEU7TG07MDtMOzxzdWI+IDAwNjU7Ozs7Tjs7Ozs7CisyMDkyO0xBVElOIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgTztMbTswO0w7PHN1Yj4gMDA2Rjs7OztOOzs7OzsKKzIwOTM7TEFUSU4gU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBYO0xtOzA7TDs8c3ViPiAwMDc4Ozs7O047Ozs7OworMjA5NDtMQVRJTiBTVUJTQ1JJUFQgU01BTEwgTEVUVEVSIFNDSFdBO0xtOzA7TDs8c3ViPiAwMjU5Ozs7O047Ozs7OworMjBBMDtFVVJPLUNVUlJFTkNZIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEExO0NPTE9OIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEEyO0NSVVpFSVJPIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEEzO0ZSRU5DSCBGUkFOQyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBNDtMSVJBIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE1O01JTEwgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTY7TkFJUkEgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQTc7UEVTRVRBIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEE4O1JVUEVFIFNJR047U2M7MDtFVDs8Y29tcGF0PiAwMDUyIDAwNzM7Ozs7Tjs7Ozs7CisyMEE5O1dPTiBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBQTtORVcgU0hFUUVMIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFCO0RPTkcgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUM7RVVSTyBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBBRDtLSVAgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQUU7VFVHUklLIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEFGO0RSQUNITUEgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQjA7R0VSTUFOIFBFTk5ZIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEIxO1BFU08gU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQjI7R1VBUkFOSSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBCMztBVVNUUkFMIFNJR047U2M7MDtFVDs7Ozs7Tjs7Ozs7CisyMEI0O0hSWVZOSUEgU0lHTjtTYzswO0VUOzs7OztOOzs7OzsKKzIwQjU7Q0VESSBTSUdOO1NjOzA7RVQ7Ozs7O047Ozs7OworMjBEMDtDT01CSU5JTkcgTEVGVCBIQVJQT09OIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBIQVJQT09OIEFCT1ZFOzs7OworMjBEMTtDT01CSU5JTkcgUklHSFQgSEFSUE9PTiBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIFJJR0hUIEhBUlBPT04gQUJPVkU7Ozs7CisyMEQyO0NPTUJJTklORyBMT05HIFZFUlRJQ0FMIExJTkUgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMT05HIFZFUlRJQ0FMIEJBUiBPVkVSTEFZOzs7OworMjBEMztDT01CSU5JTkcgU0hPUlQgVkVSVElDQUwgTElORSBPVkVSTEFZO01uOzE7TlNNOzs7OztOO05PTi1TUEFDSU5HIFNIT1JUIFZFUlRJQ0FMIEJBUiBPVkVSTEFZOzs7OworMjBENDtDT01CSU5JTkcgQU5USUNMT0NLV0lTRSBBUlJPVyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEFOVElDTE9DS1dJU0UgQVJST1cgQUJPVkU7Ozs7CisyMEQ1O0NPTUJJTklORyBDTE9DS1dJU0UgQVJST1cgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDTE9DS1dJU0UgQVJST1cgQUJPVkU7Ozs7CisyMEQ2O0NPTUJJTklORyBMRUZUIEFSUk9XIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgTEVGVCBBUlJPVyBBQk9WRTs7OzsKKzIwRDc7Q09NQklOSU5HIFJJR0hUIEFSUk9XIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgUklHSFQgQVJST1cgQUJPVkU7Ozs7CisyMEQ4O0NPTUJJTklORyBSSU5HIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgUklORyBPVkVSTEFZOzs7OworMjBEOTtDT01CSU5JTkcgQ0xPQ0tXSVNFIFJJTkcgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBDTE9DS1dJU0UgUklORyBPVkVSTEFZOzs7OworMjBEQTtDT01CSU5JTkcgQU5USUNMT0NLV0lTRSBSSU5HIE9WRVJMQVk7TW47MTtOU007Ozs7O047Tk9OLVNQQUNJTkcgQU5USUNMT0NLV0lTRSBSSU5HIE9WRVJMQVk7Ozs7CisyMERCO0NPTUJJTklORyBUSFJFRSBET1RTIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Tk9OLVNQQUNJTkcgVEhSRUUgRE9UUyBBQk9WRTs7OzsKKzIwREM7Q09NQklOSU5HIEZPVVIgRE9UUyBBQk9WRTtNbjsyMzA7TlNNOzs7OztOO05PTi1TUEFDSU5HIEZPVVIgRE9UUyBBQk9WRTs7OzsKKzIwREQ7Q09NQklOSU5HIEVOQ0xPU0lORyBDSVJDTEU7TWU7MDtOU007Ozs7O047RU5DTE9TSU5HIENJUkNMRTs7OzsKKzIwREU7Q09NQklOSU5HIEVOQ0xPU0lORyBTUVVBUkU7TWU7MDtOU007Ozs7O047RU5DTE9TSU5HIFNRVUFSRTs7OzsKKzIwREY7Q09NQklOSU5HIEVOQ0xPU0lORyBESUFNT05EO01lOzA7TlNNOzs7OztOO0VOQ0xPU0lORyBESUFNT05EOzs7OworMjBFMDtDT01CSU5JTkcgRU5DTE9TSU5HIENJUkNMRSBCQUNLU0xBU0g7TWU7MDtOU007Ozs7O047RU5DTE9TSU5HIENJUkNMRSBTTEFTSDs7OzsKKzIwRTE7Q09NQklOSU5HIExFRlQgUklHSFQgQVJST1cgQUJPVkU7TW47MjMwO05TTTs7Ozs7TjtOT04tU1BBQ0lORyBMRUZUIFJJR0hUIEFSUk9XIEFCT1ZFOzs7OworMjBFMjtDT01CSU5JTkcgRU5DTE9TSU5HIFNDUkVFTjtNZTswO05TTTs7Ozs7Tjs7Ozs7CisyMEUzO0NPTUJJTklORyBFTkNMT1NJTkcgS0VZQ0FQO01lOzA7TlNNOzs7OztOOzs7OzsKKzIwRTQ7Q09NQklOSU5HIEVOQ0xPU0lORyBVUFdBUkQgUE9JTlRJTkcgVFJJQU5HTEU7TWU7MDtOU007Ozs7O047Ozs7OworMjBFNTtDT01CSU5JTkcgUkVWRVJTRSBTT0xJRFVTIE9WRVJMQVk7TW47MTtOU007Ozs7O047Ozs7OworMjBFNjtDT01CSU5JTkcgRE9VQkxFIFZFUlRJQ0FMIFNUUk9LRSBPVkVSTEFZO01uOzE7TlNNOzs7OztOOzs7OzsKKzIwRTc7Q09NQklOSU5HIEFOTlVJVFkgU1lNQk9MO01uOzIzMDtOU007Ozs7O047Ozs7OworMjBFODtDT01CSU5JTkcgVFJJUExFIFVOREVSRE9UO01uOzIyMDtOU007Ozs7O047Ozs7OworMjBFOTtDT01CSU5JTkcgV0lERSBCUklER0UgQUJPVkU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisyMEVBO0NPTUJJTklORyBMRUZUV0FSRFMgQVJST1cgT1ZFUkxBWTtNbjsxO05TTTs7Ozs7Tjs7Ozs7CisyMEVCO0NPTUJJTklORyBMT05HIERPVUJMRSBTT0xJRFVTIE9WRVJMQVk7TW47MTtOU007Ozs7O047Ozs7OworMjEwMDtBQ0NPVU5UIE9GO1NvOzA7T047PGNvbXBhdD4gMDA2MSAwMDJGIDAwNjM7Ozs7Tjs7Ozs7CisyMTAxO0FERFJFU1NFRCBUTyBUSEUgU1VCSkVDVDtTbzswO09OOzxjb21wYXQ+IDAwNjEgMDAyRiAwMDczOzs7O047Ozs7OworMjEwMjtET1VCTEUtU1RSVUNLIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7TjtET1VCTEUtU1RSVUNLIEM7Ozs7CisyMTAzO0RFR1JFRSBDRUxTSVVTO1NvOzA7T047PGNvbXBhdD4gMDBCMCAwMDQzOzs7O047REVHUkVFUyBDRU5USUdSQURFOzs7OworMjEwNDtDRU5UUkUgTElORSBTWU1CT0w7U287MDtPTjs7Ozs7TjtDIEwgU1lNQk9MOzs7OworMjEwNTtDQVJFIE9GO1NvOzA7T047PGNvbXBhdD4gMDA2MyAwMDJGIDAwNkY7Ozs7Tjs7Ozs7CisyMTA2O0NBREEgVU5BO1NvOzA7T047PGNvbXBhdD4gMDA2MyAwMDJGIDAwNzU7Ozs7Tjs7Ozs7CisyMTA3O0VVTEVSIENPTlNUQU5UO0x1OzA7TDs8Y29tcGF0PiAwMTkwOzs7O047RVVMRVJTOzs7OworMjEwODtTQ1JVUExFO1NvOzA7T047Ozs7O047Ozs7OworMjEwOTtERUdSRUUgRkFIUkVOSEVJVDtTbzswO09OOzxjb21wYXQ+IDAwQjAgMDA0Njs7OztOO0RFR1JFRVMgRkFIUkVOSEVJVDs7OzsKKzIxMEE7U0NSSVBUIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMjEwQjtTQ1JJUFQgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOO1NDUklQVCBIOzs7OworMjEwQztCTEFDSy1MRVRURVIgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOO0JMQUNLLUxFVFRFUiBIOzs7OworMjEwRDtET1VCTEUtU1RSVUNLIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7TjtET1VCTEUtU1RSVUNLIEg7Ozs7CisyMTBFO1BMQU5DSyBDT05TVEFOVDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisyMTBGO1BMQU5DSyBDT05TVEFOVCBPVkVSIFRXTyBQSTtMbDswO0w7PGZvbnQ+IDAxMjc7Ozs7TjtQTEFOQ0sgQ09OU1RBTlQgT1ZFUiAyIFBJOzs7OworMjExMDtTQ1JJUFQgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOO1NDUklQVCBJOzs7OworMjExMTtCTEFDSy1MRVRURVIgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOO0JMQUNLLUxFVFRFUiBJOzs7OworMjExMjtTQ1JJUFQgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOO1NDUklQVCBMOzs7OworMjExMztTQ1JJUFQgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisyMTE0O0wgQiBCQVIgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjExNTtET1VCTEUtU1RSVUNLIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7TjtET1VCTEUtU1RSVUNLIE47Ozs7CisyMTE2O05VTUVSTyBTSUdOO1NvOzA7T047PGNvbXBhdD4gMDA0RSAwMDZGOzs7O047TlVNRVJPOzs7OworMjExNztTT1VORCBSRUNPUkRJTkcgQ09QWVJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjExODtTQ1JJUFQgQ0FQSVRBTCBQO1NvOzA7T047Ozs7O047U0NSSVBUIFA7Ozs7CisyMTE5O0RPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOO0RPVUJMRS1TVFJVQ0sgUDs7OzsKKzIxMUE7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047RE9VQkxFLVNUUlVDSyBROzs7OworMjExQjtTQ1JJUFQgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOO1NDUklQVCBSOzs7OworMjExQztCTEFDSy1MRVRURVIgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOO0JMQUNLLUxFVFRFUiBSOzs7OworMjExRDtET1VCTEUtU1RSVUNLIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7TjtET1VCTEUtU1RSVUNLIFI7Ozs7CisyMTFFO1BSRVNDUklQVElPTiBUQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjExRjtSRVNQT05TRTtTbzswO09OOzs7OztOOzs7OzsKKzIxMjA7U0VSVklDRSBNQVJLO1NvOzA7T047PHN1cGVyPiAwMDUzIDAwNEQ7Ozs7Tjs7Ozs7CisyMTIxO1RFTEVQSE9ORSBTSUdOO1NvOzA7T047PGNvbXBhdD4gMDA1NCAwMDQ1IDAwNEM7Ozs7TjtUIEUgTCBTWU1CT0w7Ozs7CisyMTIyO1RSQURFIE1BUksgU0lHTjtTbzswO09OOzxzdXBlcj4gMDA1NCAwMDREOzs7O047VFJBREVNQVJLOzs7OworMjEyMztWRVJTSUNMRTtTbzswO09OOzs7OztOOzs7OzsKKzIxMjQ7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047RE9VQkxFLVNUUlVDSyBaOzs7OworMjEyNTtPVU5DRSBTSUdOO1NvOzA7T047Ozs7O047T1VOQ0U7Ozs7CisyMTI2O09ITSBTSUdOO0x1OzA7TDswM0E5Ozs7O047T0hNOzs7MDNDOTsKKzIxMjc7SU5WRVJURUQgT0hNIFNJR047U287MDtPTjs7Ozs7TjtNSE87Ozs7CisyMTI4O0JMQUNLLUxFVFRFUiBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047QkxBQ0stTEVUVEVSIFo7Ozs7CisyMTI5O1RVUk5FRCBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQTtTbzswO09OOzs7OztOOzs7OzsKKzIxMkE7S0VMVklOIFNJR047THU7MDtMOzAwNEI7Ozs7TjtERUdSRUVTIEtFTFZJTjs7OzAwNkI7CisyMTJCO0FOR1NUUk9NIFNJR047THU7MDtMOzAwQzU7Ozs7TjtBTkdTVFJPTSBVTklUOzs7MDBFNTsKKzIxMkM7U0NSSVBUIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7TjtTQ1JJUFQgQjs7OzsKKzIxMkQ7QkxBQ0stTEVUVEVSIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7TjtCTEFDSy1MRVRURVIgQzs7OzsKKzIxMkU7RVNUSU1BVEVEIFNZTUJPTDtTbzswO0VUOzs7OztOOzs7OzsKKzIxMkY7U0NSSVBUIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMjEzMDtTQ1JJUFQgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOO1NDUklQVCBFOzs7OworMjEzMTtTQ1JJUFQgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOO1NDUklQVCBGOzs7OworMjEzMjtUVVJORUQgQ0FQSVRBTCBGO1NvOzA7T047Ozs7O047VFVSTkVEIEY7Ozs7CisyMTMzO1NDUklQVCBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047U0NSSVBUIE07Ozs7CisyMTM0O1NDUklQVCBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzIxMzU7QUxFRiBTWU1CT0w7TG87MDtMOzxjb21wYXQ+IDA1RDA7Ozs7TjtGSVJTVCBUUkFOU0ZJTklURSBDQVJESU5BTDs7OzsKKzIxMzY7QkVUIFNZTUJPTDtMbzswO0w7PGNvbXBhdD4gMDVEMTs7OztOO1NFQ09ORCBUUkFOU0ZJTklURSBDQVJESU5BTDs7OzsKKzIxMzc7R0lNRUwgU1lNQk9MO0xvOzA7TDs8Y29tcGF0PiAwNUQyOzs7O047VEhJUkQgVFJBTlNGSU5JVEUgQ0FSRElOQUw7Ozs7CisyMTM4O0RBTEVUIFNZTUJPTDtMbzswO0w7PGNvbXBhdD4gMDVEMzs7OztOO0ZPVVJUSCBUUkFOU0ZJTklURSBDQVJESU5BTDs7OzsKKzIxMzk7SU5GT1JNQVRJT04gU09VUkNFO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzIxM0E7Uk9UQVRFRCBDQVBJVEFMIFE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMTNCO0ZBQ1NJTUlMRSBTSUdOO1NvOzA7T047PGNvbXBhdD4gMDA0NiAwMDQxIDAwNTg7Ozs7Tjs7Ozs7CisyMTNDO0RPVUJMRS1TVFJVQ0sgU01BTEwgUEk7TGw7MDtMOzxmb250PiAwM0MwOzs7O047Ozs7OworMjEzRDtET1VCTEUtU1RSVUNLIFNNQUxMIEdBTU1BO0xsOzA7TDs8Zm9udD4gMDNCMzs7OztOOzs7OzsKKzIxM0U7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIEdBTU1BO0x1OzA7TDs8Zm9udD4gMDM5Mzs7OztOOzs7OzsKKzIxM0Y7RE9VQkxFLVNUUlVDSyBDQVBJVEFMIFBJO0x1OzA7TDs8Zm9udD4gMDNBMDs7OztOOzs7OzsKKzIxNDA7RE9VQkxFLVNUUlVDSyBOLUFSWSBTVU1NQVRJT047U207MDtPTjs8Zm9udD4gMjIxMTs7OztZOzs7OzsKKzIxNDE7VFVSTkVEIFNBTlMtU0VSSUYgQ0FQSVRBTCBHO1NtOzA7T047Ozs7O047Ozs7OworMjE0MjtUVVJORUQgU0FOUy1TRVJJRiBDQVBJVEFMIEw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMTQzO1JFVkVSU0VEIFNBTlMtU0VSSUYgQ0FQSVRBTCBMO1NtOzA7T047Ozs7O047Ozs7OworMjE0NDtUVVJORUQgU0FOUy1TRVJJRiBDQVBJVEFMIFk7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMTQ1O0RPVUJMRS1TVFJVQ0sgSVRBTElDIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisyMTQ2O0RPVUJMRS1TVFJVQ0sgSVRBTElDIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMjE0NztET1VCTEUtU1RSVUNLIElUQUxJQyBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzIxNDg7RE9VQkxFLVNUUlVDSyBJVEFMSUMgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisyMTQ5O0RPVUJMRS1TVFJVQ0sgSVRBTElDIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMjE0QTtQUk9QRVJUWSBMSU5FO1NvOzA7T047Ozs7O047Ozs7OworMjE0QjtUVVJORUQgQU1QRVJTQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjE0QztQRVIgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzIxNTM7VlVMR0FSIEZSQUNUSU9OIE9ORSBUSElSRDtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzM7OzsxLzM7TjtGUkFDVElPTiBPTkUgVEhJUkQ7Ozs7CisyMTU0O1ZVTEdBUiBGUkFDVElPTiBUV08gVEhJUkRTO05vOzA7T047PGZyYWN0aW9uPiAwMDMyIDIwNDQgMDAzMzs7OzIvMztOO0ZSQUNUSU9OIFRXTyBUSElSRFM7Ozs7CisyMTU1O1ZVTEdBUiBGUkFDVElPTiBPTkUgRklGVEg7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzEgMjA0NCAwMDM1Ozs7MS81O047RlJBQ1RJT04gT05FIEZJRlRIOzs7OworMjE1NjtWVUxHQVIgRlJBQ1RJT04gVFdPIEZJRlRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzMiAyMDQ0IDAwMzU7OzsyLzU7TjtGUkFDVElPTiBUV08gRklGVEhTOzs7OworMjE1NztWVUxHQVIgRlJBQ1RJT04gVEhSRUUgRklGVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDMzIDIwNDQgMDAzNTs7OzMvNTtOO0ZSQUNUSU9OIFRIUkVFIEZJRlRIUzs7OzsKKzIxNTg7VlVMR0FSIEZSQUNUSU9OIEZPVVIgRklGVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDM0IDIwNDQgMDAzNTs7OzQvNTtOO0ZSQUNUSU9OIEZPVVIgRklGVEhTOzs7OworMjE1OTtWVUxHQVIgRlJBQ1RJT04gT05FIFNJWFRIO05vOzA7T047PGZyYWN0aW9uPiAwMDMxIDIwNDQgMDAzNjs7OzEvNjtOO0ZSQUNUSU9OIE9ORSBTSVhUSDs7OzsKKzIxNUE7VlVMR0FSIEZSQUNUSU9OIEZJVkUgU0lYVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDM1IDIwNDQgMDAzNjs7OzUvNjtOO0ZSQUNUSU9OIEZJVkUgU0lYVEhTOzs7OworMjE1QjtWVUxHQVIgRlJBQ1RJT04gT05FIEVJR0hUSDtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0IDAwMzg7OzsxLzg7TjtGUkFDVElPTiBPTkUgRUlHSFRIOzs7OworMjE1QztWVUxHQVIgRlJBQ1RJT04gVEhSRUUgRUlHSFRIUztObzswO09OOzxmcmFjdGlvbj4gMDAzMyAyMDQ0IDAwMzg7OzszLzg7TjtGUkFDVElPTiBUSFJFRSBFSUdIVEhTOzs7OworMjE1RDtWVUxHQVIgRlJBQ1RJT04gRklWRSBFSUdIVEhTO05vOzA7T047PGZyYWN0aW9uPiAwMDM1IDIwNDQgMDAzODs7OzUvODtOO0ZSQUNUSU9OIEZJVkUgRUlHSFRIUzs7OzsKKzIxNUU7VlVMR0FSIEZSQUNUSU9OIFNFVkVOIEVJR0hUSFM7Tm87MDtPTjs8ZnJhY3Rpb24+IDAwMzcgMjA0NCAwMDM4Ozs7Ny84O047RlJBQ1RJT04gU0VWRU4gRUlHSFRIUzs7OzsKKzIxNUY7RlJBQ1RJT04gTlVNRVJBVE9SIE9ORTtObzswO09OOzxmcmFjdGlvbj4gMDAzMSAyMDQ0Ozs7MTtOOzs7OzsKKzIxNjA7Uk9NQU4gTlVNRVJBTCBPTkU7Tmw7MDtMOzxjb21wYXQ+IDAwNDk7OzsxO047Ozs7MjE3MDsKKzIxNjE7Uk9NQU4gTlVNRVJBTCBUV087Tmw7MDtMOzxjb21wYXQ+IDAwNDkgMDA0OTs7OzI7Tjs7OzsyMTcxOworMjE2MjtST01BTiBOVU1FUkFMIFRIUkVFO05sOzA7TDs8Y29tcGF0PiAwMDQ5IDAwNDkgMDA0OTs7OzM7Tjs7OzsyMTcyOworMjE2MztST01BTiBOVU1FUkFMIEZPVVI7Tmw7MDtMOzxjb21wYXQ+IDAwNDkgMDA1Njs7OzQ7Tjs7OzsyMTczOworMjE2NDtST01BTiBOVU1FUkFMIEZJVkU7Tmw7MDtMOzxjb21wYXQ+IDAwNTY7Ozs1O047Ozs7MjE3NDsKKzIxNjU7Uk9NQU4gTlVNRVJBTCBTSVg7Tmw7MDtMOzxjb21wYXQ+IDAwNTYgMDA0OTs7OzY7Tjs7OzsyMTc1OworMjE2NjtST01BTiBOVU1FUkFMIFNFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDU2IDAwNDkgMDA0OTs7Ozc7Tjs7OzsyMTc2OworMjE2NztST01BTiBOVU1FUkFMIEVJR0hUO05sOzA7TDs8Y29tcGF0PiAwMDU2IDAwNDkgMDA0OSAwMDQ5Ozs7ODtOOzs7OzIxNzc7CisyMTY4O1JPTUFOIE5VTUVSQUwgTklORTtObDswO0w7PGNvbXBhdD4gMDA0OSAwMDU4Ozs7OTtOOzs7OzIxNzg7CisyMTY5O1JPTUFOIE5VTUVSQUwgVEVOO05sOzA7TDs8Y29tcGF0PiAwMDU4Ozs7MTA7Tjs7OzsyMTc5OworMjE2QTtST01BTiBOVU1FUkFMIEVMRVZFTjtObDswO0w7PGNvbXBhdD4gMDA1OCAwMDQ5Ozs7MTE7Tjs7OzsyMTdBOworMjE2QjtST01BTiBOVU1FUkFMIFRXRUxWRTtObDswO0w7PGNvbXBhdD4gMDA1OCAwMDQ5IDAwNDk7OzsxMjtOOzs7OzIxN0I7CisyMTZDO1JPTUFOIE5VTUVSQUwgRklGVFk7Tmw7MDtMOzxjb21wYXQ+IDAwNEM7Ozs1MDtOOzs7OzIxN0M7CisyMTZEO1JPTUFOIE5VTUVSQUwgT05FIEhVTkRSRUQ7Tmw7MDtMOzxjb21wYXQ+IDAwNDM7OzsxMDA7Tjs7OzsyMTdEOworMjE2RTtST01BTiBOVU1FUkFMIEZJVkUgSFVORFJFRDtObDswO0w7PGNvbXBhdD4gMDA0NDs7OzUwMDtOOzs7OzIxN0U7CisyMTZGO1JPTUFOIE5VTUVSQUwgT05FIFRIT1VTQU5EO05sOzA7TDs8Y29tcGF0PiAwMDREOzs7MTAwMDtOOzs7OzIxN0Y7CisyMTcwO1NNQUxMIFJPTUFOIE5VTUVSQUwgT05FO05sOzA7TDs8Y29tcGF0PiAwMDY5Ozs7MTtOOzs7MjE2MDs7MjE2MAorMjE3MTtTTUFMTCBST01BTiBOVU1FUkFMIFRXTztObDswO0w7PGNvbXBhdD4gMDA2OSAwMDY5Ozs7MjtOOzs7MjE2MTs7MjE2MQorMjE3MjtTTUFMTCBST01BTiBOVU1FUkFMIFRIUkVFO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNjkgMDA2OTs7OzM7Tjs7OzIxNjI7OzIxNjIKKzIxNzM7U01BTEwgUk9NQU4gTlVNRVJBTCBGT1VSO05sOzA7TDs8Y29tcGF0PiAwMDY5IDAwNzY7Ozs0O047OzsyMTYzOzsyMTYzCisyMTc0O1NNQUxMIFJPTUFOIE5VTUVSQUwgRklWRTtObDswO0w7PGNvbXBhdD4gMDA3Njs7OzU7Tjs7OzIxNjQ7OzIxNjQKKzIxNzU7U01BTEwgUk9NQU4gTlVNRVJBTCBTSVg7Tmw7MDtMOzxjb21wYXQ+IDAwNzYgMDA2OTs7OzY7Tjs7OzIxNjU7OzIxNjUKKzIxNzY7U01BTEwgUk9NQU4gTlVNRVJBTCBTRVZFTjtObDswO0w7PGNvbXBhdD4gMDA3NiAwMDY5IDAwNjk7Ozs3O047OzsyMTY2OzsyMTY2CisyMTc3O1NNQUxMIFJPTUFOIE5VTUVSQUwgRUlHSFQ7Tmw7MDtMOzxjb21wYXQ+IDAwNzYgMDA2OSAwMDY5IDAwNjk7Ozs4O047OzsyMTY3OzsyMTY3CisyMTc4O1NNQUxMIFJPTUFOIE5VTUVSQUwgTklORTtObDswO0w7PGNvbXBhdD4gMDA2OSAwMDc4Ozs7OTtOOzs7MjE2ODs7MjE2OAorMjE3OTtTTUFMTCBST01BTiBOVU1FUkFMIFRFTjtObDswO0w7PGNvbXBhdD4gMDA3ODs7OzEwO047OzsyMTY5OzsyMTY5CisyMTdBO1NNQUxMIFJPTUFOIE5VTUVSQUwgRUxFVkVOO05sOzA7TDs8Y29tcGF0PiAwMDc4IDAwNjk7OzsxMTtOOzs7MjE2QTs7MjE2QQorMjE3QjtTTUFMTCBST01BTiBOVU1FUkFMIFRXRUxWRTtObDswO0w7PGNvbXBhdD4gMDA3OCAwMDY5IDAwNjk7OzsxMjtOOzs7MjE2Qjs7MjE2QgorMjE3QztTTUFMTCBST01BTiBOVU1FUkFMIEZJRlRZO05sOzA7TDs8Y29tcGF0PiAwMDZDOzs7NTA7Tjs7OzIxNkM7OzIxNkMKKzIxN0Q7U01BTEwgUk9NQU4gTlVNRVJBTCBPTkUgSFVORFJFRDtObDswO0w7PGNvbXBhdD4gMDA2Mzs7OzEwMDtOOzs7MjE2RDs7MjE2RAorMjE3RTtTTUFMTCBST01BTiBOVU1FUkFMIEZJVkUgSFVORFJFRDtObDswO0w7PGNvbXBhdD4gMDA2NDs7OzUwMDtOOzs7MjE2RTs7MjE2RQorMjE3RjtTTUFMTCBST01BTiBOVU1FUkFMIE9ORSBUSE9VU0FORDtObDswO0w7PGNvbXBhdD4gMDA2RDs7OzEwMDA7Tjs7OzIxNkY7OzIxNkYKKzIxODA7Uk9NQU4gTlVNRVJBTCBPTkUgVEhPVVNBTkQgQyBEO05sOzA7TDs7OzsxMDAwO047Ozs7OworMjE4MTtST01BTiBOVU1FUkFMIEZJVkUgVEhPVVNBTkQ7Tmw7MDtMOzs7OzUwMDA7Tjs7Ozs7CisyMTgyO1JPTUFOIE5VTUVSQUwgVEVOIFRIT1VTQU5EO05sOzA7TDs7OzsxMDAwMDtOOzs7OzsKKzIxODM7Uk9NQU4gTlVNRVJBTCBSRVZFUlNFRCBPTkUgSFVORFJFRDtObDswO0w7Ozs7O047Ozs7OworMjE5MDtMRUZUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtMRUZUIEFSUk9XOzs7OworMjE5MTtVUFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047VVAgQVJST1c7Ozs7CisyMTkyO1JJR0hUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVzs7OzsKKzIxOTM7RE9XTldBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047RE9XTiBBUlJPVzs7OzsKKzIxOTQ7TEVGVCBSSUdIVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIxOTU7VVAgRE9XTiBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxOTY7Tk9SVEggV0VTVCBBUlJPVztTbzswO09OOzs7OztOO1VQUEVSIExFRlQgQVJST1c7Ozs7CisyMTk3O05PUlRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzIxOTg7U09VVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0xPV0VSIFJJR0hUIEFSUk9XOzs7OworMjE5OTtTT1VUSCBXRVNUIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgTEVGVCBBUlJPVzs7OzsKKzIxOUE7TEVGVFdBUkRTIEFSUk9XIFdJVEggU1RST0tFO1NtOzA7T047MjE5MCAwMzM4Ozs7O047TEVGVCBBUlJPVyBXSVRIIFNUUk9LRTs7OzsKKzIxOUI7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFNUUk9LRTtTbTswO09OOzIxOTIgMDMzODs7OztOO1JJR0hUIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjE5QztMRUZUV0FSRFMgV0FWRSBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgV0FWRSBBUlJPVzs7OzsKKzIxOUQ7UklHSFRXQVJEUyBXQVZFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgV0FWRSBBUlJPVzs7OzsKKzIxOUU7TEVGVFdBUkRTIFRXTyBIRUFERUQgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMTlGO1VQV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbzswO09OOzs7OztOO1VQIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMUEwO1JJR0hUV0FSRFMgVFdPIEhFQURFRCBBUlJPVztTbTswO09OOzs7OztOO1JJR0hUIFRXTyBIRUFERUQgQVJST1c7Ozs7CisyMUExO0RPV05XQVJEUyBUV08gSEVBREVEIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBUV08gSEVBREVEIEFSUk9XOzs7OworMjFBMjtMRUZUV0FSRFMgQVJST1cgV0lUSCBUQUlMO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBXSVRIIFRBSUw7Ozs7CisyMUEzO1JJR0hUV0FSRFMgQVJST1cgV0lUSCBUQUlMO1NtOzA7T047Ozs7O047UklHSFQgQVJST1cgV0lUSCBUQUlMOzs7OworMjFBNDtMRUZUV0FSRFMgQVJST1cgRlJPTSBCQVI7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIEZST00gQkFSOzs7OworMjFBNTtVUFdBUkRTIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047VVAgQVJST1cgRlJPTSBCQVI7Ozs7CisyMUE2O1JJR0hUV0FSRFMgQVJST1cgRlJPTSBCQVI7U207MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTc7RE9XTldBUkRTIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBGUk9NIEJBUjs7OzsKKzIxQTg7VVAgRE9XTiBBUlJPVyBXSVRIIEJBU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUE5O0xFRlRXQVJEUyBBUlJPVyBXSVRIIEhPT0s7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFdJVEggSE9PSzs7OzsKKzIxQUE7UklHSFRXQVJEUyBBUlJPVyBXSVRIIEhPT0s7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIEhPT0s7Ozs7CisyMUFCO0xFRlRXQVJEUyBBUlJPVyBXSVRIIExPT1A7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFdJVEggTE9PUDs7OzsKKzIxQUM7UklHSFRXQVJEUyBBUlJPVyBXSVRIIExPT1A7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBXSVRIIExPT1A7Ozs7CisyMUFEO0xFRlQgUklHSFQgV0FWRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQUU7TEVGVCBSSUdIVCBBUlJPVyBXSVRIIFNUUk9LRTtTbTswO09OOzIxOTQgMDMzODs7OztOOzs7OzsKKzIxQUY7RE9XTldBUkRTIFpJR1pBRyBBUlJPVztTbzswO09OOzs7OztOO0RPV04gWklHWkFHIEFSUk9XOzs7OworMjFCMDtVUFdBUkRTIEFSUk9XIFdJVEggVElQIExFRlRXQVJEUztTbzswO09OOzs7OztOO1VQIEFSUk9XIFdJVEggVElQIExFRlQ7Ozs7CisyMUIxO1VQV0FSRFMgQVJST1cgV0lUSCBUSVAgUklHSFRXQVJEUztTbzswO09OOzs7OztOO1VQIEFSUk9XIFdJVEggVElQIFJJR0hUOzs7OworMjFCMjtET1dOV0FSRFMgQVJST1cgV0lUSCBUSVAgTEVGVFdBUkRTO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIFRJUCBMRUZUOzs7OworMjFCMztET1dOV0FSRFMgQVJST1cgV0lUSCBUSVAgUklHSFRXQVJEUztTbzswO09OOzs7OztOO0RPV04gQVJST1cgV0lUSCBUSVAgUklHSFQ7Ozs7CisyMUI0O1JJR0hUV0FSRFMgQVJST1cgV0lUSCBDT1JORVIgRE9XTldBUkRTO1NvOzA7T047Ozs7O047UklHSFQgQVJST1cgV0lUSCBDT1JORVIgRE9XTjs7OzsKKzIxQjU7RE9XTldBUkRTIEFSUk9XIFdJVEggQ09STkVSIExFRlRXQVJEUztTbzswO09OOzs7OztOO0RPV04gQVJST1cgV0lUSCBDT1JORVIgTEVGVDs7OzsKKzIxQjY7QU5USUNMT0NLV0lTRSBUT1AgU0VNSUNJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQjc7Q0xPQ0tXSVNFIFRPUCBTRU1JQ0lSQ0xFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFCODtOT1JUSCBXRVNUIEFSUk9XIFRPIExPTkcgQkFSO1NvOzA7T047Ozs7O047VVBQRVIgTEVGVCBBUlJPVyBUTyBMT05HIEJBUjs7OzsKKzIxQjk7TEVGVFdBUkRTIEFSUk9XIFRPIEJBUiBPVkVSIFJJR0hUV0FSRFMgQVJST1cgVE8gQkFSO1NvOzA7T047Ozs7O047TEVGVCBBUlJPVyBUTyBCQVIgT1ZFUiBSSUdIVCBBUlJPVyBUTyBCQVI7Ozs7CisyMUJBO0FOVElDTE9DS1dJU0UgT1BFTiBDSVJDTEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUJCO0NMT0NLV0lTRSBPUEVOIENJUkNMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxQkM7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQV0FSRFM7U287MDtPTjs7Ozs7TjtMRUZUIEhBUlBPT04gV0lUSCBCQVJCIFVQOzs7OworMjFCRDtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTldBUkRTO1NvOzA7T047Ozs7O047TEVGVCBIQVJQT09OIFdJVEggQkFSQiBET1dOOzs7OworMjFCRTtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUV0FSRFM7U287MDtPTjs7Ozs7TjtVUCBIQVJQT09OIFdJVEggQkFSQiBSSUdIVDs7OzsKKzIxQkY7VVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtVUCBIQVJQT09OIFdJVEggQkFSQiBMRUZUOzs7OworMjFDMDtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQV0FSRFM7U287MDtPTjs7Ozs7TjtSSUdIVCBIQVJQT09OIFdJVEggQkFSQiBVUDs7OzsKKzIxQzE7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOV0FSRFM7U287MDtPTjs7Ozs7TjtSSUdIVCBIQVJQT09OIFdJVEggQkFSQiBET1dOOzs7OworMjFDMjtET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFRXQVJEUztTbzswO09OOzs7OztOO0RPV04gSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQ7Ozs7CisyMUMzO0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUV0FSRFM7U287MDtPTjs7Ozs7TjtET1dOIEhBUlBPT04gV0lUSCBCQVJCIExFRlQ7Ozs7CisyMUM0O1JJR0hUV0FSRFMgQVJST1cgT1ZFUiBMRUZUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBPVkVSIExFRlQgQVJST1c7Ozs7CisyMUM1O1VQV0FSRFMgQVJST1cgTEVGVFdBUkRTIE9GIERPV05XQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1VQIEFSUk9XIExFRlQgT0YgRE9XTiBBUlJPVzs7OzsKKzIxQzY7TEVGVFdBUkRTIEFSUk9XIE9WRVIgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0xFRlQgQVJST1cgT1ZFUiBSSUdIVCBBUlJPVzs7OzsKKzIxQzc7TEVGVFdBUkRTIFBBSVJFRCBBUlJPV1M7U287MDtPTjs7Ozs7TjtMRUZUIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUM4O1VQV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO1VQIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUM5O1JJR0hUV0FSRFMgUEFJUkVEIEFSUk9XUztTbzswO09OOzs7OztOO1JJR0hUIFBBSVJFRCBBUlJPV1M7Ozs7CisyMUNBO0RPV05XQVJEUyBQQUlSRUQgQVJST1dTO1NvOzA7T047Ozs7O047RE9XTiBQQUlSRUQgQVJST1dTOzs7OworMjFDQjtMRUZUV0FSRFMgSEFSUE9PTiBPVkVSIFJJR0hUV0FSRFMgSEFSUE9PTjtTbzswO09OOzs7OztOO0xFRlQgSEFSUE9PTiBPVkVSIFJJR0hUIEhBUlBPT047Ozs7CisyMUNDO1JJR0hUV0FSRFMgSEFSUE9PTiBPVkVSIExFRlRXQVJEUyBIQVJQT09OO1NvOzA7T047Ozs7O047UklHSFQgSEFSUE9PTiBPVkVSIExFRlQgSEFSUE9PTjs7OzsKKzIxQ0Q7TEVGVFdBUkRTIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTtTbzswO09OOzIxRDAgMDMzODs7OztOO0xFRlQgRE9VQkxFIEFSUk9XIFdJVEggU1RST0tFOzs7OworMjFDRTtMRUZUIFJJR0hUIERPVUJMRSBBUlJPVyBXSVRIIFNUUk9LRTtTbTswO09OOzIxRDQgMDMzODs7OztOOzs7OzsKKzIxQ0Y7UklHSFRXQVJEUyBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7U207MDtPTjsyMUQyIDAzMzg7Ozs7TjtSSUdIVCBET1VCTEUgQVJST1cgV0lUSCBTVFJPS0U7Ozs7CisyMUQwO0xFRlRXQVJEUyBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDE7VVBXQVJEUyBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUCBET1VCTEUgQVJST1c7Ozs7CisyMUQyO1JJR0hUV0FSRFMgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047UklHSFQgRE9VQkxFIEFSUk9XOzs7OworMjFEMztET1dOV0FSRFMgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBET1VCTEUgQVJST1c7Ozs7CisyMUQ0O0xFRlQgUklHSFQgRE9VQkxFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjFENTtVUCBET1dOIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIxRDY7Tk9SVEggV0VTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBMRUZUIERPVUJMRSBBUlJPVzs7OzsKKzIxRDc7Tk9SVEggRUFTVCBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7TjtVUFBFUiBSSUdIVCBET1VCTEUgQVJST1c7Ozs7CisyMUQ4O1NPVVRIIEVBU1QgRE9VQkxFIEFSUk9XO1NvOzA7T047Ozs7O047TE9XRVIgUklHSFQgRE9VQkxFIEFSUk9XOzs7OworMjFEOTtTT1VUSCBXRVNUIERPVUJMRSBBUlJPVztTbzswO09OOzs7OztOO0xPV0VSIExFRlQgRE9VQkxFIEFSUk9XOzs7OworMjFEQTtMRUZUV0FSRFMgVFJJUExFIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVCBUUklQTEUgQVJST1c7Ozs7CisyMURCO1JJR0hUV0FSRFMgVFJJUExFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgVFJJUExFIEFSUk9XOzs7OworMjFEQztMRUZUV0FSRFMgU1FVSUdHTEUgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIFNRVUlHR0xFIEFSUk9XOzs7OworMjFERDtSSUdIVFdBUkRTIFNRVUlHR0xFIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgU1FVSUdHTEUgQVJST1c7Ozs7CisyMURFO1VQV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFO1NvOzA7T047Ozs7O047VVAgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFOzs7OworMjFERjtET1dOV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgU1RST0tFO1NvOzA7T047Ozs7O047RE9XTiBBUlJPVyBXSVRIIERPVUJMRSBTVFJPS0U7Ozs7CisyMUUwO0xFRlRXQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtMRUZUIERBU0hFRCBBUlJPVzs7OzsKKzIxRTE7VVBXQVJEUyBEQVNIRUQgQVJST1c7U287MDtPTjs7Ozs7TjtVUCBEQVNIRUQgQVJST1c7Ozs7CisyMUUyO1JJR0hUV0FSRFMgREFTSEVEIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQgREFTSEVEIEFSUk9XOzs7OworMjFFMztET1dOV0FSRFMgREFTSEVEIEFSUk9XO1NvOzA7T047Ozs7O047RE9XTiBEQVNIRUQgQVJST1c7Ozs7CisyMUU0O0xFRlRXQVJEUyBBUlJPVyBUTyBCQVI7U287MDtPTjs7Ozs7TjtMRUZUIEFSUk9XIFRPIEJBUjs7OzsKKzIxRTU7UklHSFRXQVJEUyBBUlJPVyBUTyBCQVI7U287MDtPTjs7Ozs7TjtSSUdIVCBBUlJPVyBUTyBCQVI7Ozs7CisyMUU2O0xFRlRXQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIExFRlQgQVJST1c7Ozs7CisyMUU3O1VQV0FSRFMgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURSBVUCBBUlJPVzs7OzsKKzIxRTg7UklHSFRXQVJEUyBXSElURSBBUlJPVztTbzswO09OOzs7OztOO1dISVRFIFJJR0hUIEFSUk9XOzs7OworMjFFOTtET1dOV0FSRFMgV0hJVEUgQVJST1c7U287MDtPTjs7Ozs7TjtXSElURSBET1dOIEFSUk9XOzs7OworMjFFQTtVUFdBUkRTIFdISVRFIEFSUk9XIEZST00gQkFSO1NvOzA7T047Ozs7O047V0hJVEUgVVAgQVJST1cgRlJPTSBCQVI7Ozs7CisyMUVCO1VQV0FSRFMgV0hJVEUgQVJST1cgT04gUEVERVNUQUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUVDO1VQV0FSRFMgV0hJVEUgQVJST1cgT04gUEVERVNUQUwgV0lUSCBIT1JJWk9OVEFMIEJBUjtTbzswO09OOzs7OztOOzs7OzsKKzIxRUQ7VVBXQVJEUyBXSElURSBBUlJPVyBPTiBQRURFU1RBTCBXSVRIIFZFUlRJQ0FMIEJBUjtTbzswO09OOzs7OztOOzs7OzsKKzIxRUU7VVBXQVJEUyBXSElURSBET1VCTEUgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUVGO1VQV0FSRFMgV0hJVEUgRE9VQkxFIEFSUk9XIE9OIFBFREVTVEFMO1NvOzA7T047Ozs7O047Ozs7OworMjFGMDtSSUdIVFdBUkRTIFdISVRFIEFSUk9XIEZST00gV0FMTDtTbzswO09OOzs7OztOOzs7OzsKKzIxRjE7Tk9SVEggV0VTVCBBUlJPVyBUTyBDT1JORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMUYyO1NPVVRIIEVBU1QgQVJST1cgVE8gQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjFGMztVUCBET1dOIFdISVRFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMjFGNDtSSUdIVCBBUlJPVyBXSVRIIFNNQUxMIENJUkNMRTtTbTswO09OOzs7OztOOzs7OzsKKzIxRjU7RE9XTldBUkRTIEFSUk9XIExFRlRXQVJEUyBPRiBVUFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjFGNjtUSFJFRSBSSUdIVFdBUkRTIEFSUk9XUztTbTswO09OOzs7OztOOzs7OzsKKzIxRjc7TEVGVFdBUkRTIEFSUk9XIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjFGODtSSUdIVFdBUkRTIEFSUk9XIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjFGOTtMRUZUIFJJR0hUIEFSUk9XIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjFGQTtMRUZUV0FSRFMgQVJST1cgV0lUSCBET1VCTEUgVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjFGQjtSSUdIVFdBUkRTIEFSUk9XIFdJVEggRE9VQkxFIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzIxRkM7TEVGVCBSSUdIVCBBUlJPVyBXSVRIIERPVUJMRSBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMUZEO0xFRlRXQVJEUyBPUEVOLUhFQURFRCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIxRkU7UklHSFRXQVJEUyBPUEVOLUhFQURFRCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIxRkY7TEVGVCBSSUdIVCBPUEVOLUhFQURFRCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIyMDA7Rk9SIEFMTDtTbTswO09OOzs7OztOOzs7OzsKKzIyMDE7Q09NUExFTUVOVDtTbTswO09OOzs7OztZOzs7OzsKKzIyMDI7UEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjAzO1RIRVJFIEVYSVNUUztTbTswO09OOzs7OztZOzs7OzsKKzIyMDQ7VEhFUkUgRE9FUyBOT1QgRVhJU1Q7U207MDtPTjsyMjAzIDAzMzg7Ozs7WTs7Ozs7CisyMjA1O0VNUFRZIFNFVDtTbTswO09OOzs7OztOOzs7OzsKKzIyMDY7SU5DUkVNRU5UO1NtOzA7T047Ozs7O047Ozs7OworMjIwNztOQUJMQTtTbTswO09OOzs7OztOOzs7OzsKKzIyMDg7RUxFTUVOVCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyMDk7Tk9UIEFOIEVMRU1FTlQgT0Y7U207MDtPTjsyMjA4IDAzMzg7Ozs7WTs7Ozs7CisyMjBBO1NNQUxMIEVMRU1FTlQgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjBCO0NPTlRBSU5TIEFTIE1FTUJFUjtTbTswO09OOzs7OztZOzs7OzsKKzIyMEM7RE9FUyBOT1QgQ09OVEFJTiBBUyBNRU1CRVI7U207MDtPTjsyMjBCIDAzMzg7Ozs7WTs7Ozs7CisyMjBEO1NNQUxMIENPTlRBSU5TIEFTIE1FTUJFUjtTbTswO09OOzs7OztZOzs7OzsKKzIyMEU7RU5EIE9GIFBST09GO1NtOzA7T047Ozs7O047Ozs7OworMjIwRjtOLUFSWSBQUk9EVUNUO1NtOzA7T047Ozs7O047Ozs7OworMjIxMDtOLUFSWSBDT1BST0RVQ1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjExO04tQVJZIFNVTU1BVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzIyMTI7TUlOVVMgU0lHTjtTbTswO0VTOzs7OztOOzs7OzsKKzIyMTM7TUlOVVMtT1ItUExVUyBTSUdOO1NtOzA7RVQ7Ozs7O047Ozs7OworMjIxNDtET1QgUExVUztTbTswO09OOzs7OztOOzs7OzsKKzIyMTU7RElWSVNJT04gU0xBU0g7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjE2O1NFVCBNSU5VUztTbTswO09OOzs7OztZOzs7OzsKKzIyMTc7QVNURVJJU0sgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjE4O1JJTkcgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjE5O0JVTExFVCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyMUE7U1FVQVJFIFJPT1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjFCO0NVQkUgUk9PVDtTbTswO09OOzs7OztZOzs7OzsKKzIyMUM7Rk9VUlRIIFJPT1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjFEO1BST1BPUlRJT05BTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyMUU7SU5GSU5JVFk7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjFGO1JJR0hUIEFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjIyMDtBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyMjE7TUVBU1VSRUQgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjIyO1NQSEVSSUNBTCBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyMjM7RElWSURFUztTbTswO09OOzs7OztOOzs7OzsKKzIyMjQ7RE9FUyBOT1QgRElWSURFO1NtOzA7T047MjIyMyAwMzM4Ozs7O1k7Ozs7OworMjIyNTtQQVJBTExFTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyMjY7Tk9UIFBBUkFMTEVMIFRPO1NtOzA7T047MjIyNSAwMzM4Ozs7O1k7Ozs7OworMjIyNztMT0dJQ0FMIEFORDtTbTswO09OOzs7OztOOzs7OzsKKzIyMjg7TE9HSUNBTCBPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyMjk7SU5URVJTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjIyQTtVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyMkI7SU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjJDO0RPVUJMRSBJTlRFR1JBTDtTbTswO09OOzxjb21wYXQ+IDIyMkIgMjIyQjs7OztZOzs7OzsKKzIyMkQ7VFJJUExFIElOVEVHUkFMO1NtOzA7T047PGNvbXBhdD4gMjIyQiAyMjJCIDIyMkI7Ozs7WTs7Ozs7CisyMjJFO0NPTlRPVVIgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjJGO1NVUkZBQ0UgSU5URUdSQUw7U207MDtPTjs8Y29tcGF0PiAyMjJFIDIyMkU7Ozs7WTs7Ozs7CisyMjMwO1ZPTFVNRSBJTlRFR1JBTDtTbTswO09OOzxjb21wYXQ+IDIyMkUgMjIyRSAyMjJFOzs7O1k7Ozs7OworMjIzMTtDTE9DS1dJU0UgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjMyO0NMT0NLV0lTRSBDT05UT1VSIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzMztBTlRJQ0xPQ0tXSVNFIENPTlRPVVIgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjM0O1RIRVJFRk9SRTtTbTswO09OOzs7OztOOzs7OzsKKzIyMzU7QkVDQVVTRTtTbTswO09OOzs7OztOOzs7OzsKKzIyMzY7UkFUSU87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM3O1BST1BPUlRJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjM4O0RPVCBNSU5VUztTbTswO09OOzs7OztOOzs7OzsKKzIyMzk7RVhDRVNTO1NtOzA7T047Ozs7O1k7Ozs7OworMjIzQTtHRU9NRVRSSUMgUFJPUE9SVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyM0I7SE9NT1RIRVRJQztTbTswO09OOzs7OztZOzs7OzsKKzIyM0M7VElMREUgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjNEO1JFVkVSU0VEIFRJTERFO1NtOzA7T047Ozs7O1k7O2xhenkgUzs7OworMjIzRTtJTlZFUlRFRCBMQVpZIFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjNGO1NJTkUgV0FWRTtTbTswO09OOzs7OztZOzs7OzsKKzIyNDA7V1JFQVRIIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQxO05PVCBUSUxERTtTbTswO09OOzIyM0MgMDMzODs7OztZOzs7OzsKKzIyNDI7TUlOVVMgVElMREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQzO0FTWU1QVE9USUNBTExZIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0NDtOT1QgQVNZTVBUT1RJQ0FMTFkgRVFVQUwgVE87U207MDtPTjsyMjQzIDAzMzg7Ozs7WTs7Ozs7CisyMjQ1O0FQUFJPWElNQVRFTFkgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjQ2O0FQUFJPWElNQVRFTFkgQlVUIE5PVCBBQ1RVQUxMWSBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyNDc7TkVJVEhFUiBBUFBST1hJTUFURUxZIE5PUiBBQ1RVQUxMWSBFUVVBTCBUTztTbTswO09OOzIyNDUgMDMzODs7OztZOzs7OzsKKzIyNDg7QUxNT1NUIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0OTtOT1QgQUxNT1NUIEVRVUFMIFRPO1NtOzA7T047MjI0OCAwMzM4Ozs7O1k7Ozs7OworMjI0QTtBTE1PU1QgRVFVQUwgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjRCO1RSSVBMRSBUSUxERTtTbTswO09OOzs7OztZOzs7OzsKKzIyNEM7QUxMIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI0RDtFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI0RTtHRU9NRVRSSUNBTExZIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjRGO0RJRkZFUkVOQ0UgQkVUV0VFTjtTbTswO09OOzs7OztOOzs7OzsKKzIyNTA7QVBQUk9BQ0hFUyBUSEUgTElNSVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjUxO0dFT01FVFJJQ0FMTFkgRVFVQUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjUyO0FQUFJPWElNQVRFTFkgRVFVQUwgVE8gT1IgVEhFIElNQUdFIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI1MztJTUFHRSBPRiBPUiBBUFBST1hJTUFURUxZIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI1NDtDT0xPTiBFUVVBTFM7U207MDtPTjs7Ozs7WTtDT0xPTiBFUVVBTDs7OzsKKzIyNTU7RVFVQUxTIENPTE9OO1NtOzA7T047Ozs7O1k7RVFVQUwgQ09MT047Ozs7CisyMjU2O1JJTkcgSU4gRVFVQUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjU3O1JJTkcgRVFVQUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjU4O0NPUlJFU1BPTkRTIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1OTtFU1RJTUFURVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVBO0VRVUlBTkdVTEFSIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjI1QjtTVEFSIEVRVUFMUztTbTswO09OOzs7OztOOzs7OzsKKzIyNUM7REVMVEEgRVFVQUwgVE87U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVEO0VRVUFMIFRPIEJZIERFRklOSVRJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjVFO01FQVNVUkVEIEJZO1NtOzA7T047Ozs7O047Ozs7OworMjI1RjtRVUVTVElPTkVEIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI2MDtOT1QgRVFVQUwgVE87U207MDtPTjswMDNEIDAzMzg7Ozs7WTs7Ozs7CisyMjYxO0lERU5USUNBTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNjI7Tk9UIElERU5USUNBTCBUTztTbTswO09OOzIyNjEgMDMzODs7OztZOzs7OzsKKzIyNjM7U1RSSUNUTFkgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyNjQ7TEVTUy1USEFOIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIE9SIEVRVUFMIFRPOzs7OworMjI2NTtHUkVBVEVSLVRIQU4gT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gT1IgRVFVQUwgVE87Ozs7CisyMjY2O0xFU1MtVEhBTiBPVkVSIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIE9WRVIgRVFVQUwgVE87Ozs7CisyMjY3O0dSRUFURVItVEhBTiBPVkVSIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIE9WRVIgRVFVQUwgVE87Ozs7CisyMjY4O0xFU1MtVEhBTiBCVVQgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIEJVVCBOT1QgRVFVQUwgVE87Ozs7CisyMjY5O0dSRUFURVItVEhBTiBCVVQgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7R1JFQVRFUiBUSEFOIEJVVCBOT1QgRVFVQUwgVE87Ozs7CisyMjZBO01VQ0ggTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7TVVDSCBMRVNTIFRIQU47Ozs7CisyMjZCO01VQ0ggR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7TVVDSCBHUkVBVEVSIFRIQU47Ozs7CisyMjZDO0JFVFdFRU47U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjZEO05PVCBFUVVJVkFMRU5UIFRPO1NtOzA7T047MjI0RCAwMzM4Ozs7O047Ozs7OworMjI2RTtOT1QgTEVTUy1USEFOO1NtOzA7T047MDAzQyAwMzM4Ozs7O1k7Tk9UIExFU1MgVEhBTjs7OzsKKzIyNkY7Tk9UIEdSRUFURVItVEhBTjtTbTswO09OOzAwM0UgMDMzODs7OztZO05PVCBHUkVBVEVSIFRIQU47Ozs7CisyMjcwO05FSVRIRVIgTEVTUy1USEFOIE5PUiBFUVVBTCBUTztTbTswO09OOzIyNjQgMDMzODs7OztZO05FSVRIRVIgTEVTUyBUSEFOIE5PUiBFUVVBTCBUTzs7OzsKKzIyNzE7TkVJVEhFUiBHUkVBVEVSLVRIQU4gTk9SIEVRVUFMIFRPO1NtOzA7T047MjI2NSAwMzM4Ozs7O1k7TkVJVEhFUiBHUkVBVEVSIFRIQU4gTk9SIEVRVUFMIFRPOzs7OworMjI3MjtMRVNTLVRIQU4gT1IgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZO0xFU1MgVEhBTiBPUiBFUVVJVkFMRU5UIFRPOzs7OworMjI3MztHUkVBVEVSLVRIQU4gT1IgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBPUiBFUVVJVkFMRU5UIFRPOzs7OworMjI3NDtORUlUSEVSIExFU1MtVEhBTiBOT1IgRVFVSVZBTEVOVCBUTztTbTswO09OOzIyNzIgMDMzODs7OztZO05FSVRIRVIgTEVTUyBUSEFOIE5PUiBFUVVJVkFMRU5UIFRPOzs7OworMjI3NTtORUlUSEVSIEdSRUFURVItVEhBTiBOT1IgRVFVSVZBTEVOVCBUTztTbTswO09OOzIyNzMgMDMzODs7OztZO05FSVRIRVIgR1JFQVRFUiBUSEFOIE5PUiBFUVVJVkFMRU5UIFRPOzs7OworMjI3NjtMRVNTLVRIQU4gT1IgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIE9SIEdSRUFURVIgVEhBTjs7OzsKKzIyNzc7R1JFQVRFUi1USEFOIE9SIExFU1MtVEhBTjtTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBPUiBMRVNTIFRIQU47Ozs7CisyMjc4O05FSVRIRVIgTEVTUy1USEFOIE5PUiBHUkVBVEVSLVRIQU47U207MDtPTjsyMjc2IDAzMzg7Ozs7WTtORUlUSEVSIExFU1MgVEhBTiBOT1IgR1JFQVRFUiBUSEFOOzs7OworMjI3OTtORUlUSEVSIEdSRUFURVItVEhBTiBOT1IgTEVTUy1USEFOO1NtOzA7T047MjI3NyAwMzM4Ozs7O1k7TkVJVEhFUiBHUkVBVEVSIFRIQU4gTk9SIExFU1MgVEhBTjs7OzsKKzIyN0E7UFJFQ0VERVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjdCO1NVQ0NFRURTO1NtOzA7T047Ozs7O1k7Ozs7OworMjI3QztQUkVDRURFUyBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyN0Q7U1VDQ0VFRFMgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjdFO1BSRUNFREVTIE9SIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjdGO1NVQ0NFRURTIE9SIEVRVUlWQUxFTlQgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjgwO0RPRVMgTk9UIFBSRUNFREU7U207MDtPTjsyMjdBIDAzMzg7Ozs7WTs7Ozs7CisyMjgxO0RPRVMgTk9UIFNVQ0NFRUQ7U207MDtPTjsyMjdCIDAzMzg7Ozs7WTs7Ozs7CisyMjgyO1NVQlNFVCBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyODM7U1VQRVJTRVQgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjg0O05PVCBBIFNVQlNFVCBPRjtTbTswO09OOzIyODIgMDMzODs7OztZOzs7OzsKKzIyODU7Tk9UIEEgU1VQRVJTRVQgT0Y7U207MDtPTjsyMjgzIDAzMzg7Ozs7WTs7Ozs7CisyMjg2O1NVQlNFVCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyODc7U1VQRVJTRVQgT0YgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMjg4O05FSVRIRVIgQSBTVUJTRVQgT0YgTk9SIEVRVUFMIFRPO1NtOzA7T047MjI4NiAwMzM4Ozs7O1k7Ozs7OworMjI4OTtORUlUSEVSIEEgU1VQRVJTRVQgT0YgTk9SIEVRVUFMIFRPO1NtOzA7T047MjI4NyAwMzM4Ozs7O1k7Ozs7OworMjI4QTtTVUJTRVQgT0YgV0lUSCBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTtTVUJTRVQgT0YgT1IgTk9UIEVRVUFMIFRPOzs7OworMjI4QjtTVVBFUlNFVCBPRiBXSVRIIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZO1NVUEVSU0VUIE9GIE9SIE5PVCBFUVVBTCBUTzs7OzsKKzIyOEM7TVVMVElTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjhEO01VTFRJU0VUIE1VTFRJUExJQ0FUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjI4RTtNVUxUSVNFVCBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyOEY7U1FVQVJFIElNQUdFIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5MDtTUVVBUkUgT1JJR0lOQUwgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjkxO1NRVUFSRSBJTUFHRSBPRiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyOTI7U1FVQVJFIE9SSUdJTkFMIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjI5MztTUVVBUkUgQ0FQO1NtOzA7T047Ozs7O047Ozs7OworMjI5NDtTUVVBUkUgQ1VQO1NtOzA7T047Ozs7O047Ozs7OworMjI5NTtDSVJDTEVEIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjk2O0NJUkNMRUQgTUlOVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjk3O0NJUkNMRUQgVElNRVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjk4O0NJUkNMRUQgRElWSVNJT04gU0xBU0g7U207MDtPTjs7Ozs7WTs7Ozs7CisyMjk5O0NJUkNMRUQgRE9UIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMjI5QTtDSVJDTEVEIFJJTkcgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlCO0NJUkNMRUQgQVNURVJJU0sgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlDO0NJUkNMRUQgRVFVQUxTO1NtOzA7T047Ozs7O047Ozs7OworMjI5RDtDSVJDTEVEIERBU0g7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMjlFO1NRVUFSRUQgUExVUztTbTswO09OOzs7OztOOzs7OzsKKzIyOUY7U1FVQVJFRCBNSU5VUztTbTswO09OOzs7OztOOzs7OzsKKzIyQTA7U1FVQVJFRCBUSU1FUztTbTswO09OOzs7OztOOzs7OzsKKzIyQTE7U1FVQVJFRCBET1QgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkEyO1JJR0hUIFRBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkEzO0xFRlQgVEFDSztTbTswO09OOzs7OztZOzs7OzsKKzIyQTQ7RE9XTiBUQUNLO1NtOzA7T047Ozs7O047Ozs7OworMjJBNTtVUCBUQUNLO1NtOzA7T047Ozs7O047Ozs7OworMjJBNjtBU1NFUlRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyMkE3O01PREVMUztTbTswO09OOzs7OztZOzs7OzsKKzIyQTg7VFJVRTtTbTswO09OOzs7OztZOzs7OzsKKzIyQTk7Rk9SQ0VTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBQTtUUklQTEUgVkVSVElDQUwgQkFSIFJJR0hUIFRVUk5TVElMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyQUI7RE9VQkxFIFZFUlRJQ0FMIEJBUiBET1VCTEUgUklHSFQgVFVSTlNUSUxFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJBQztET0VTIE5PVCBQUk9WRTtTbTswO09OOzIyQTIgMDMzODs7OztZOzs7OzsKKzIyQUQ7Tk9UIFRSVUU7U207MDtPTjsyMkE4IDAzMzg7Ozs7WTs7Ozs7CisyMkFFO0RPRVMgTk9UIEZPUkNFO1NtOzA7T047MjJBOSAwMzM4Ozs7O1k7Ozs7OworMjJBRjtORUdBVEVEIERPVUJMRSBWRVJUSUNBTCBCQVIgRE9VQkxFIFJJR0hUIFRVUk5TVElMRTtTbTswO09OOzIyQUIgMDMzODs7OztZOzs7OzsKKzIyQjA7UFJFQ0VERVMgVU5ERVIgUkVMQVRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyMkIxO1NVQ0NFRURTIFVOREVSIFJFTEFUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCMjtOT1JNQUwgU1VCR1JPVVAgT0Y7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkIzO0NPTlRBSU5TIEFTIE5PUk1BTCBTVUJHUk9VUDtTbTswO09OOzs7OztZOzs7OzsKKzIyQjQ7Tk9STUFMIFNVQkdST1VQIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCNTtDT05UQUlOUyBBUyBOT1JNQUwgU1VCR1JPVVAgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI2O09SSUdJTkFMIE9GO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCNztJTUFHRSBPRjtTbTswO09OOzs7OztZOzs7OzsKKzIyQjg7TVVMVElNQVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkI5O0hFUk1JVElBTiBDT05KVUdBVEUgTUFUUklYO1NtOzA7T047Ozs7O047Ozs7OworMjJCQTtJTlRFUkNBTEFURTtTbTswO09OOzs7OztOOzs7OzsKKzIyQkI7WE9SO1NtOzA7T047Ozs7O047Ozs7OworMjJCQztOQU5EO1NtOzA7T047Ozs7O047Ozs7OworMjJCRDtOT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkJFO1JJR0hUIEFOR0xFIFdJVEggQVJDO1NtOzA7T047Ozs7O1k7Ozs7OworMjJCRjtSSUdIVCBUUklBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzIyQzA7Ti1BUlkgTE9HSUNBTCBBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkMxO04tQVJZIExPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkMyO04tQVJZIElOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyQzM7Ti1BUlkgVU5JT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM0O0RJQU1PTkQgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM1O0RPVCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQzY7U1RBUiBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQzc7RElWSVNJT04gVElNRVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkM4O0JPV1RJRTtTbTswO09OOzs7OztOOzs7OzsKKzIyQzk7TEVGVCBOT1JNQUwgRkFDVE9SIFNFTUlESVJFQ1QgUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzIyQ0E7UklHSFQgTk9STUFMIEZBQ1RPUiBTRU1JRElSRUNUIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNCO0xFRlQgU0VNSURJUkVDVCBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMjJDQztSSUdIVCBTRU1JRElSRUNUIFBST0RVQ1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkNEO1JFVkVSU0VEIFRJTERFIEVRVUFMUztTbTswO09OOzs7OztZOzs7OzsKKzIyQ0U7Q1VSTFkgTE9HSUNBTCBPUjtTbTswO09OOzs7OztOOzs7OzsKKzIyQ0Y7Q1VSTFkgTE9HSUNBTCBBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQwO0RPVUJMRSBTVUJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkQxO0RPVUJMRSBTVVBFUlNFVDtTbTswO09OOzs7OztZOzs7OzsKKzIyRDI7RE9VQkxFIElOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIyRDM7RE9VQkxFIFVOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjJENDtQSVRDSEZPUks7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkQ1O0VRVUFMIEFORCBQQVJBTExFTCBUTztTbTswO09OOzs7OztOOzs7OzsKKzIyRDY7TEVTUy1USEFOIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIFdJVEggRE9UOzs7OworMjJENztHUkVBVEVSLVRIQU4gV0lUSCBET1Q7U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gV0lUSCBET1Q7Ozs7CisyMkQ4O1ZFUlkgTVVDSCBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTtWRVJZIE1VQ0ggTEVTUyBUSEFOOzs7OworMjJEOTtWRVJZIE1VQ0ggR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7VkVSWSBNVUNIIEdSRUFURVIgVEhBTjs7OzsKKzIyREE7TEVTUy1USEFOIEVRVUFMIFRPIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO0xFU1MgVEhBTiBFUVVBTCBUTyBPUiBHUkVBVEVSIFRIQU47Ozs7CisyMkRCO0dSRUFURVItVEhBTiBFUVVBTCBUTyBPUiBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTtHUkVBVEVSIFRIQU4gRVFVQUwgVE8gT1IgTEVTUyBUSEFOOzs7OworMjJEQztFUVVBTCBUTyBPUiBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTtFUVVBTCBUTyBPUiBMRVNTIFRIQU47Ozs7CisyMkREO0VRVUFMIFRPIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZO0VRVUFMIFRPIE9SIEdSRUFURVIgVEhBTjs7OzsKKzIyREU7RVFVQUwgVE8gT1IgUFJFQ0VERVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkRGO0VRVUFMIFRPIE9SIFNVQ0NFRURTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJFMDtET0VTIE5PVCBQUkVDRURFIE9SIEVRVUFMO1NtOzA7T047MjI3QyAwMzM4Ozs7O1k7Ozs7OworMjJFMTtET0VTIE5PVCBTVUNDRUVEIE9SIEVRVUFMO1NtOzA7T047MjI3RCAwMzM4Ozs7O1k7Ozs7OworMjJFMjtOT1QgU1FVQVJFIElNQUdFIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047MjI5MSAwMzM4Ozs7O1k7Ozs7OworMjJFMztOT1QgU1FVQVJFIE9SSUdJTkFMIE9GIE9SIEVRVUFMIFRPO1NtOzA7T047MjI5MiAwMzM4Ozs7O1k7Ozs7OworMjJFNDtTUVVBUkUgSU1BR0UgT0YgT1IgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJFNTtTUVVBUkUgT1JJR0lOQUwgT0YgT1IgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJFNjtMRVNTLVRIQU4gQlVUIE5PVCBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7TEVTUyBUSEFOIEJVVCBOT1QgRVFVSVZBTEVOVCBUTzs7OzsKKzIyRTc7R1JFQVRFUi1USEFOIEJVVCBOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZO0dSRUFURVIgVEhBTiBCVVQgTk9UIEVRVUlWQUxFTlQgVE87Ozs7CisyMkU4O1BSRUNFREVTIEJVVCBOT1QgRVFVSVZBTEVOVCBUTztTbTswO09OOzs7OztZOzs7OzsKKzIyRTk7U1VDQ0VFRFMgQlVUIE5PVCBFUVVJVkFMRU5UIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMjJFQTtOT1QgTk9STUFMIFNVQkdST1VQIE9GO1NtOzA7T047MjJCMiAwMzM4Ozs7O1k7Ozs7OworMjJFQjtET0VTIE5PVCBDT05UQUlOIEFTIE5PUk1BTCBTVUJHUk9VUDtTbTswO09OOzIyQjMgMDMzODs7OztZOzs7OzsKKzIyRUM7Tk9UIE5PUk1BTCBTVUJHUk9VUCBPRiBPUiBFUVVBTCBUTztTbTswO09OOzIyQjQgMDMzODs7OztZOzs7OzsKKzIyRUQ7RE9FUyBOT1QgQ09OVEFJTiBBUyBOT1JNQUwgU1VCR1JPVVAgT1IgRVFVQUw7U207MDtPTjsyMkI1IDAzMzg7Ozs7WTs7Ozs7CisyMkVFO1ZFUlRJQ0FMIEVMTElQU0lTO1NtOzA7T047Ozs7O047Ozs7OworMjJFRjtNSURMSU5FIEhPUklaT05UQUwgRUxMSVBTSVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyMkYwO1VQIFJJR0hUIERJQUdPTkFMIEVMTElQU0lTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGMTtET1dOIFJJR0hUIERJQUdPTkFMIEVMTElQU0lTO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGMjtFTEVNRU5UIE9GIFdJVEggTE9ORyBIT1JJWk9OVEFMIFNUUk9LRTtTbTswO09OOzs7OztZOzs7OzsKKzIyRjM7RUxFTUVOVCBPRiBXSVRIIFZFUlRJQ0FMIEJBUiBBVCBFTkQgT0YgSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkY0O1NNQUxMIEVMRU1FTlQgT0YgV0lUSCBWRVJUSUNBTCBCQVIgQVQgRU5EIE9GIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGNTtFTEVNRU5UIE9GIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGNjtFTEVNRU5UIE9GIFdJVEggT1ZFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzIyRjc7U01BTEwgRUxFTUVOVCBPRiBXSVRIIE9WRVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkY4O0VMRU1FTlQgT0YgV0lUSCBVTkRFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzIyRjk7RUxFTUVOVCBPRiBXSVRIIFRXTyBIT1JJWk9OVEFMIFNUUk9LRVM7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkZBO0NPTlRBSU5TIFdJVEggTE9ORyBIT1JJWk9OVEFMIFNUUk9LRTtTbTswO09OOzs7OztZOzs7OzsKKzIyRkI7Q09OVEFJTlMgV0lUSCBWRVJUSUNBTCBCQVIgQVQgRU5EIE9GIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGQztTTUFMTCBDT05UQUlOUyBXSVRIIFZFUlRJQ0FMIEJBUiBBVCBFTkQgT0YgSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7WTs7Ozs7CisyMkZEO0NPTlRBSU5TIFdJVEggT1ZFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzIyRkU7U01BTEwgQ09OVEFJTlMgV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMjJGRjtaIE5PVEFUSU9OIEJBRyBNRU1CRVJTSElQO1NtOzA7T047Ozs7O1k7Ozs7OworMjMwMDtESUFNRVRFUiBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjMwMTtFTEVDVFJJQyBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzIzMDI7SE9VU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzAzO1VQIEFSUk9XSEVBRDtTbzswO09OOzs7OztOOzs7OzsKKzIzMDQ7RE9XTiBBUlJPV0hFQUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA1O1BST0pFQ1RJVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA2O1BFUlNQRUNUSVZFO1NvOzA7T047Ozs7O047Ozs7OworMjMwNztXQVZZIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzA4O0xFRlQgQ0VJTElORztTbTswO09OOzs7OztZOzs7OzsKKzIzMDk7UklHSFQgQ0VJTElORztTbTswO09OOzs7OztZOzs7OzsKKzIzMEE7TEVGVCBGTE9PUjtTbTswO09OOzs7OztZOzs7OzsKKzIzMEI7UklHSFQgRkxPT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzBDO0JPVFRPTSBSSUdIVCBDUk9QO1NvOzA7T047Ozs7O047Ozs7OworMjMwRDtCT1RUT00gTEVGVCBDUk9QO1NvOzA7T047Ozs7O047Ozs7OworMjMwRTtUT1AgUklHSFQgQ1JPUDtTbzswO09OOzs7OztOOzs7OzsKKzIzMEY7VE9QIExFRlQgQ1JPUDtTbzswO09OOzs7OztOOzs7OzsKKzIzMTA7UkVWRVJTRUQgTk9UIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzExO1NRVUFSRSBMT1pFTkdFO1NvOzA7T047Ozs7O047Ozs7OworMjMxMjtBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzEzO1NFR01FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE0O1NFQ1RPUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMTU7VEVMRVBIT05FIFJFQ09SREVSO1NvOzA7T047Ozs7O047Ozs7OworMjMxNjtQT1NJVElPTiBJTkRJQ0FUT1I7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzE3O1ZJRVdEQVRBIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMTg7UExBQ0UgT0YgSU5URVJFU1QgU0lHTjtTbzswO09OOzs7OztOO0NPTU1BTkQgS0VZOzs7OworMjMxOTtUVVJORUQgTk9UIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFBO1dBVENIO1NvOzA7T047Ozs7O047Ozs7OworMjMxQjtIT1VSR0xBU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzFDO1RPUCBMRUZUIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMUQ7VE9QIFJJR0hUIENPUk5FUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMUU7Qk9UVE9NIExFRlQgQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjMxRjtCT1RUT00gUklHSFQgQ09STkVSO1NvOzA7T047Ozs7O047Ozs7OworMjMyMDtUT1AgSEFMRiBJTlRFR1JBTDtTbTswO09OOzs7OztZOzs7OzsKKzIzMjE7Qk9UVE9NIEhBTEYgSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyMzIyO0ZST1dOO1NvOzA7T047Ozs7O047Ozs7OworMjMyMztTTUlMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMjQ7VVAgQVJST1dIRUFEIEJFVFdFRU4gVFdPIEhPUklaT05UQUwgQkFSUztTbzswO09OOzs7OztOO0VOVEVSIEtFWTs7OzsKKzIzMjU7T1BUSU9OIEtFWTtTbzswO09OOzs7OztOOzs7OzsKKzIzMjY7RVJBU0UgVE8gVEhFIFJJR0hUO1NvOzA7T047Ozs7O047REVMRVRFIFRPIFRIRSBSSUdIVCBLRVk7Ozs7CisyMzI3O1ggSU4gQSBSRUNUQU5HTEUgQk9YO1NvOzA7T047Ozs7O047Q0xFQVIgS0VZOzs7OworMjMyODtLRVlCT0FSRDtTbzswO09OOzs7OztOOzs7OzsKKzIzMjk7TEVGVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUO1BzOzA7T047MzAwODs7OztZO0JSQTs7OzsKKzIzMkE7UklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzMwMDk7Ozs7WTtLRVQ7Ozs7CisyMzJCO0VSQVNFIFRPIFRIRSBMRUZUO1NvOzA7T047Ozs7O047REVMRVRFIFRPIFRIRSBMRUZUIEtFWTs7OzsKKzIzMkM7QkVOWkVORSBSSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjMyRDtDWUxJTkRSSUNJVFk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzJFO0FMTCBBUk9VTkQtUFJPRklMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzMkY7U1lNTUVUUlk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzMwO1RPVEFMIFJVTk9VVDtTbzswO09OOzs7OztOOzs7OzsKKzIzMzE7RElNRU5TSU9OIE9SSUdJTjtTbzswO09OOzs7OztOOzs7OzsKKzIzMzI7Q09OSUNBTCBUQVBFUjtTbzswO09OOzs7OztOOzs7OzsKKzIzMzM7U0xPUEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzM0O0NPVU5URVJCT1JFO1NvOzA7T047Ozs7O047Ozs7OworMjMzNTtDT1VOVEVSU0lOSztTbzswO09OOzs7OztOOzs7OzsKKzIzMzY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEktQkVBTTtTbzswO0w7Ozs7O047Ozs7OworMjMzNztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU1FVSVNIIFFVQUQ7U287MDtMOzs7OztOOzs7OzsKKzIzMzg7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRVFVQUw7U287MDtMOzs7OztOOzs7OzsKKzIzMzk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgRElWSURFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNBO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERJQU1PTkQ7U287MDtMOzs7OztOOzs7OzsKKzIzM0I7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgSk9UO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNDO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIENJUkNMRTtTbzswO0w7Ozs7O047Ozs7OworMjMzRDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNFO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgSk9UO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzNGO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBTTEFTSCBCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNDA7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEJBQ0tTTEFTSCBCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNDE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzIzNDI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgQkFDS1NMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQzO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIExFU1MtVEhBTjtTbzswO0w7Ozs7O047Ozs7OworMjM0NDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBHUkVBVEVSLVRIQU47U287MDtMOzs7OztOOzs7OzsKKzIzNDU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIExFRlRXQVJEUyBWQU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBSSUdIVFdBUkRTIFZBTkU7U287MDtMOzs7OztOOzs7OzsKKzIzNDc7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgTEVGVFdBUkRTIEFSUk9XO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzQ4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFJJR0hUV0FSRFMgQVJST1c7U287MDtMOzs7OztOOzs7OzsKKzIzNDk7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIENJUkNMRSBCQUNLU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzIzNEE7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gVEFDSyBVTkRFUkJBUjtTbzswO0w7Ozs7O047Oyo7OzsKKzIzNEI7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERFTFRBIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzRDO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERPV04gQ0FSRVQ7U287MDtMOzs7OztOOzs7OzsKKzIzNEQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgREVMVEE7U287MDtMOzs7OztOOzs7OzsKKzIzNEU7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIERPV04gVEFDSyBKT1Q7U287MDtMOzs7OztOOzsqOzs7CisyMzRGO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBVUFdBUkRTIFZBTkU7U287MDtMOzs7OztOOzs7OzsKKzIzNTA7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVQUQgVVBXQVJEUyBBUlJPVztTbzswO0w7Ozs7O047Ozs7OworMjM1MTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgVEFDSyBPVkVSQkFSO1NvOzA7TDs7Ozs7Tjs7Kjs7OworMjM1MjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgREVMIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzUzO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIFVQIENBUkVUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU0O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIERFTDtTbzswO0w7Ozs7O047Ozs7OworMjM1NTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgVEFDSyBKT1Q7U287MDtMOzs7OztOOzsqOzs7CisyMzU2O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBET1dOV0FSRFMgVkFORTtTbzswO0w7Ozs7O047Ozs7OworMjM1NztBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBET1dOV0FSRFMgQVJST1c7U287MDtMOzs7OztOOzs7OzsKKzIzNTg7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFFVT1RFIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzU5O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBERUxUQSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1QTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRElBTU9ORCBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM1QjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgSk9UIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVDO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgVU5ERVJCQVI7U287MDtMOzs7OztOOzs7OzsKKzIzNUQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFVQIFNIT0UgSk9UO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVFO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVU9URSBRVUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzVGO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBDSVJDTEUgU1RBUjtTbzswO0w7Ozs7O047Ozs7OworMjM2MDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBDT0xPTjtTbzswO0w7Ozs7O047Ozs7OworMjM2MTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgVEFDSyBESUFFUkVTSVM7U287MDtMOzs7OztOOzsqOzs7CisyMzYyO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBERUwgRElBRVJFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzYzO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBTVEFSIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2NDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgSk9UIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2NTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ0lSQ0xFIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2NjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRE9XTiBTSE9FIFNUSUxFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzY3O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBMRUZUIFNIT0UgU1RJTEU7U287MDtMOzs7OztOOzs7OzsKKzIzNjg7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFRJTERFIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2OTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgR1JFQVRFUi1USEFOIERJQUVSRVNJUztTbzswO0w7Ozs7O047Ozs7OworMjM2QTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQ09NTUEgQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZCO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBERUwgVElMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNkM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFpJTERFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZEO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBTVElMRSBUSUxERTtTbzswO0w7Ozs7O047Ozs7OworMjM2RTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgU0VNSUNPTE9OIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzZGO0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEIE5PVCBFUVVBTDtTbzswO0w7Ozs7O047Ozs7OworMjM3MDtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgUVVBRCBRVUVTVElPTjtTbzswO0w7Ozs7O047Ozs7OworMjM3MTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgRE9XTiBDQVJFVCBUSUxERTtTbzswO0w7Ozs7O047Ozs7OworMjM3MjtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgVVAgQ0FSRVQgVElMREU7U287MDtMOzs7OztOOzs7OzsKKzIzNzM7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIElPVEE7U287MDtMOzs7OztOOzs7OzsKKzIzNzQ7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIFJITztTbzswO0w7Ozs7O047Ozs7OworMjM3NTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgT01FR0E7U287MDtMOzs7OztOOzs7OzsKKzIzNzY7QVBMIEZVTkNUSU9OQUwgU1lNQk9MIEFMUEhBIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc3O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBFUFNJTE9OIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc4O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBJT1RBIFVOREVSQkFSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzc5O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBPTUVHQSBVTkRFUkJBUjtTbzswO0w7Ozs7O047Ozs7OworMjM3QTtBUEwgRlVOQ1RJT05BTCBTWU1CT0wgQUxQSEE7U287MDtMOzs7OztOOzs7OzsKKzIzN0I7Tk9UIENIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzdDO1JJR0hUIEFOR0xFIFdJVEggRE9XTldBUkRTIFpJR1pBRyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzIzN0Q7U0hPVUxERVJFRCBPUEVOIEJPWDtTbzswO09OOzs7OztOOzs7OzsKKzIzN0U7QkVMTCBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzdGO1ZFUlRJQ0FMIExJTkUgV0lUSCBNSURETEUgRE9UO1NvOzA7T047Ozs7O047Ozs7OworMjM4MDtJTlNFUlRJT04gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4MTtDT05USU5VT1VTIFVOREVSTElORSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzgyO0RJU0NPTlRJTlVPVVMgVU5ERVJMSU5FIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzODM7RU1QSEFTSVMgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4NDtDT01QT1NJVElPTiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg1O1dISVRFIFNRVUFSRSBXSVRIIENFTlRSRSBWRVJUSUNBTCBMSU5FO1NvOzA7T047Ozs7O047Ozs7OworMjM4NjtFTlRFUiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg3O0FMVEVSTkFUSVZFIEtFWSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzg4O0hFTE0gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4OTtDSVJDTEVEIEhPUklaT05UQUwgQkFSIFdJVEggTk9UQ0g7U287MDtPTjs7Ozs7Tjs7cGF1c2U7OzsKKzIzOEE7Q0lSQ0xFRCBUUklBTkdMRSBET1dOO1NvOzA7T047Ozs7O047O2JyZWFrOzs7CisyMzhCO0JST0tFTiBDSVJDTEUgV0lUSCBOT1JUSFdFU1QgQVJST1c7U287MDtPTjs7Ozs7Tjs7ZXNjYXBlOzs7CisyMzhDO1VORE8gU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM4RDtNT05PU1RBQkxFIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOEU7SFlTVEVSRVNJUyBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzhGO09QRU4tQ0lSQ1VJVC1PVVRQVVQgSC1UWVBFIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOTA7T1BFTi1DSVJDVUlULU9VVFBVVCBMLVRZUEUgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5MTtQQVNTSVZFLVBVTEwtRE9XTi1PVVRQVVQgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjM5MjtQQVNTSVZFLVBVTEwtVVAtT1VUUFVUIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOTM7RElSRUNUIENVUlJFTlQgU1lNQk9MIEZPUk0gVFdPO1NvOzA7T047Ozs7O047Ozs7OworMjM5NDtTT0ZUV0FSRS1GVU5DVElPTiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzk1O0FQTCBGVU5DVElPTkFMIFNZTUJPTCBRVUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyMzk2O0RFQ0lNQUwgU0VQQVJBVE9SIEtFWSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzk3O1BSRVZJT1VTIFBBR0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyMzk4O05FWFQgUEFHRTtTbzswO09OOzs7OztOOzs7OzsKKzIzOTk7UFJJTlQgU0NSRUVOIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOUE7Q0xFQVIgU0NSRUVOIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzOUI7TEVGVCBQQVJFTlRIRVNJUyBVUFBFUiBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjM5QztMRUZUIFBBUkVOVEhFU0lTIEVYVEVOU0lPTjtTbTswO09OOzs7OztOOzs7OzsKKzIzOUQ7TEVGVCBQQVJFTlRIRVNJUyBMT1dFUiBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjM5RTtSSUdIVCBQQVJFTlRIRVNJUyBVUFBFUiBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjM5RjtSSUdIVCBQQVJFTlRIRVNJUyBFWFRFTlNJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0EwO1JJR0hUIFBBUkVOVEhFU0lTIExPV0VSIEhPT0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0ExO0xFRlQgU1FVQVJFIEJSQUNLRVQgVVBQRVIgQ09STkVSO1NtOzA7T047Ozs7O047Ozs7OworMjNBMjtMRUZUIFNRVUFSRSBCUkFDS0VUIEVYVEVOU0lPTjtTbTswO09OOzs7OztOOzs7OzsKKzIzQTM7TEVGVCBTUVVBUkUgQlJBQ0tFVCBMT1dFUiBDT1JORVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0E0O1JJR0hUIFNRVUFSRSBCUkFDS0VUIFVQUEVSIENPUk5FUjtTbTswO09OOzs7OztOOzs7OzsKKzIzQTU7UklHSFQgU1FVQVJFIEJSQUNLRVQgRVhURU5TSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjNBNjtSSUdIVCBTUVVBUkUgQlJBQ0tFVCBMT1dFUiBDT1JORVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0E3O0xFRlQgQ1VSTFkgQlJBQ0tFVCBVUFBFUiBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjNBODtMRUZUIENVUkxZIEJSQUNLRVQgTUlERExFIFBJRUNFO1NtOzA7T047Ozs7O047Ozs7OworMjNBOTtMRUZUIENVUkxZIEJSQUNLRVQgTE9XRVIgSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzIzQUE7Q1VSTFkgQlJBQ0tFVCBFWFRFTlNJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0FCO1JJR0hUIENVUkxZIEJSQUNLRVQgVVBQRVIgSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzIzQUM7UklHSFQgQ1VSTFkgQlJBQ0tFVCBNSURETEUgUElFQ0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0FEO1JJR0hUIENVUkxZIEJSQUNLRVQgTE9XRVIgSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzIzQUU7SU5URUdSQUwgRVhURU5TSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjNBRjtIT1JJWk9OVEFMIExJTkUgRVhURU5TSU9OO1NtOzA7T047Ozs7O047Ozs7OworMjNCMDtVUFBFUiBMRUZUIE9SIExPV0VSIFJJR0hUIENVUkxZIEJSQUNLRVQgU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzIzQjE7VVBQRVIgUklHSFQgT1IgTE9XRVIgTEVGVCBDVVJMWSBCUkFDS0VUIFNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0IyO1NVTU1BVElPTiBUT1A7U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0IzO1NVTU1BVElPTiBCT1RUT007U207MDtPTjs7Ozs7Tjs7Ozs7CisyM0I0O1RPUCBTUVVBUkUgQlJBQ0tFVDtQczswO09OOzs7OztOOzs7OzsKKzIzQjU7Qk9UVE9NIFNRVUFSRSBCUkFDS0VUO1BlOzA7T047Ozs7O047Ozs7OworMjNCNjtCT1RUT00gU1FVQVJFIEJSQUNLRVQgT1ZFUiBUT1AgU1FVQVJFIEJSQUNLRVQ7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyM0I3O1JBRElDQUwgU1lNQk9MIEJPVFRPTTtTbzswO09OOzs7OztOOzs7OzsKKzIzQjg7TEVGVCBWRVJUSUNBTCBCT1ggTElORTtTbzswO09OOzs7OztOOzs7OzsKKzIzQjk7UklHSFQgVkVSVElDQUwgQk9YIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0JBO0hPUklaT05UQUwgU0NBTiBMSU5FLTE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0JCO0hPUklaT05UQUwgU0NBTiBMSU5FLTM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0JDO0hPUklaT05UQUwgU0NBTiBMSU5FLTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0JEO0hPUklaT05UQUwgU0NBTiBMSU5FLTk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0JFO0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVkVSVElDQUwgQU5EIFRPUCBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzIzQkY7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBWRVJUSUNBTCBBTkQgQk9UVE9NIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjNDMDtERU5USVNUUlkgU1lNQk9MIExJR0hUIFZFUlRJQ0FMIFdJVEggQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjNDMTtERU5USVNUUlkgU1lNQk9MIExJR0hUIERPV04gQU5EIEhPUklaT05UQUwgV0lUSCBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0MyO0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVVAgQU5EIEhPUklaT05UQUwgV0lUSCBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0MzO0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVkVSVElDQUwgV0lUSCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzQzQ7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBET1dOIEFORCBIT1JJWk9OVEFMIFdJVEggVFJJQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0M1O0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVVAgQU5EIEhPUklaT05UQUwgV0lUSCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzIzQzY7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBWRVJUSUNBTCBBTkQgV0FWRTtTbzswO09OOzs7OztOOzs7OzsKKzIzQzc7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBET1dOIEFORCBIT1JJWk9OVEFMIFdJVEggV0FWRTtTbzswO09OOzs7OztOOzs7OzsKKzIzQzg7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBVUCBBTkQgSE9SSVpPTlRBTCBXSVRIIFdBVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0M5O0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgRE9XTiBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOOzs7OzsKKzIzQ0E7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBVUCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOOzs7OzsKKzIzQ0I7REVOVElTVFJZIFNZTUJPTCBMSUdIVCBWRVJUSUNBTCBBTkQgVE9QIExFRlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0NDO0RFTlRJU1RSWSBTWU1CT0wgTElHSFQgVkVSVElDQUwgQU5EIEJPVFRPTSBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMjNDRDtTUVVBUkUgRk9PVDtTbzswO09OOzs7OztOOzs7OzsKKzIzQ0U7UkVUVVJOIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzIzQ0Y7RUpFQ1QgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjNEMDtWRVJUSUNBTCBMSU5FIEVYVEVOU0lPTjtTbzswO09OOzs7OztOOzs7OzsKKzIzRDE7TUVUUklDQUwgQlJFVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0QyO01FVFJJQ0FMIExPTkcgT1ZFUiBTSE9SVDtTbzswO09OOzs7OztOOzs7OzsKKzIzRDM7TUVUUklDQUwgU0hPUlQgT1ZFUiBMT05HO1NvOzA7T047Ozs7O047Ozs7OworMjNENDtNRVRSSUNBTCBMT05HIE9WRVIgVFdPIFNIT1JUUztTbzswO09OOzs7OztOOzs7OzsKKzIzRDU7TUVUUklDQUwgVFdPIFNIT1JUUyBPVkVSIExPTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0Q2O01FVFJJQ0FMIFRXTyBTSE9SVFMgSk9JTkVEO1NvOzA7T047Ozs7O047Ozs7OworMjNENztNRVRSSUNBTCBUUklTRU1FO1NvOzA7T047Ozs7O047Ozs7OworMjNEODtNRVRSSUNBTCBURVRSQVNFTUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyM0Q5O01FVFJJQ0FMIFBFTlRBU0VNRTtTbzswO09OOzs7OztOOzs7OzsKKzIzREE7RUFSVEggR1JPVU5EO1NvOzA7T047Ozs7O047Ozs7OworMjNEQjtGVVNFO1NvOzA7T047Ozs7O047Ozs7OworMjQwMDtTWU1CT0wgRk9SIE5VTEw7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBOVUxMOzs7OworMjQwMTtTWU1CT0wgRk9SIFNUQVJUIE9GIEhFQURJTkc7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTVEFSVCBPRiBIRUFESU5HOzs7OworMjQwMjtTWU1CT0wgRk9SIFNUQVJUIE9GIFRFWFQ7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTVEFSVCBPRiBURVhUOzs7OworMjQwMztTWU1CT0wgRk9SIEVORCBPRiBURVhUO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5EIE9GIFRFWFQ7Ozs7CisyNDA0O1NZTUJPTCBGT1IgRU5EIE9GIFRSQU5TTUlTU0lPTjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVORCBPRiBUUkFOU01JU1NJT047Ozs7CisyNDA1O1NZTUJPTCBGT1IgRU5RVUlSWTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIEVOUVVJUlk7Ozs7CisyNDA2O1NZTUJPTCBGT1IgQUNLTk9XTEVER0U7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBBQ0tOT1dMRURHRTs7OzsKKzI0MDc7U1lNQk9MIEZPUiBCRUxMO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgQkVMTDs7OzsKKzI0MDg7U1lNQk9MIEZPUiBCQUNLU1BBQ0U7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBCQUNLU1BBQ0U7Ozs7CisyNDA5O1NZTUJPTCBGT1IgSE9SSVpPTlRBTCBUQUJVTEFUSU9OO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgSE9SSVpPTlRBTCBUQUJVTEFUSU9OOzs7OworMjQwQTtTWU1CT0wgRk9SIExJTkUgRkVFRDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIExJTkUgRkVFRDs7OzsKKzI0MEI7U1lNQk9MIEZPUiBWRVJUSUNBTCBUQUJVTEFUSU9OO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgVkVSVElDQUwgVEFCVUxBVElPTjs7OzsKKzI0MEM7U1lNQk9MIEZPUiBGT1JNIEZFRUQ7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBGT1JNIEZFRUQ7Ozs7CisyNDBEO1NZTUJPTCBGT1IgQ0FSUklBR0UgUkVUVVJOO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgQ0FSUklBR0UgUkVUVVJOOzs7OworMjQwRTtTWU1CT0wgRk9SIFNISUZUIE9VVDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNISUZUIE9VVDs7OzsKKzI0MEY7U1lNQk9MIEZPUiBTSElGVCBJTjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNISUZUIElOOzs7OworMjQxMDtTWU1CT0wgRk9SIERBVEEgTElOSyBFU0NBUEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBEQVRBIExJTksgRVNDQVBFOzs7OworMjQxMTtTWU1CT0wgRk9SIERFVklDRSBDT05UUk9MIE9ORTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFVklDRSBDT05UUk9MIE9ORTs7OzsKKzI0MTI7U1lNQk9MIEZPUiBERVZJQ0UgQ09OVFJPTCBUV087U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBERVZJQ0UgQ09OVFJPTCBUV087Ozs7CisyNDEzO1NZTUJPTCBGT1IgREVWSUNFIENPTlRST0wgVEhSRUU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBERVZJQ0UgQ09OVFJPTCBUSFJFRTs7OzsKKzI0MTQ7U1lNQk9MIEZPUiBERVZJQ0UgQ09OVFJPTCBGT1VSO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgREVWSUNFIENPTlRST0wgRk9VUjs7OzsKKzI0MTU7U1lNQk9MIEZPUiBORUdBVElWRSBBQ0tOT1dMRURHRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIE5FR0FUSVZFIEFDS05PV0xFREdFOzs7OworMjQxNjtTWU1CT0wgRk9SIFNZTkNIUk9OT1VTIElETEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBTWU5DSFJPTk9VUyBJRExFOzs7OworMjQxNztTWU1CT0wgRk9SIEVORCBPRiBUUkFOU01JU1NJT04gQkxPQ0s7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFTkQgT0YgVFJBTlNNSVNTSU9OIEJMT0NLOzs7OworMjQxODtTWU1CT0wgRk9SIENBTkNFTDtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIENBTkNFTDs7OzsKKzI0MTk7U1lNQk9MIEZPUiBFTkQgT0YgTUVESVVNO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgRU5EIE9GIE1FRElVTTs7OzsKKzI0MUE7U1lNQk9MIEZPUiBTVUJTVElUVVRFO1NvOzA7T047Ozs7O047R1JBUEhJQyBGT1IgU1VCU1RJVFVURTs7OzsKKzI0MUI7U1lNQk9MIEZPUiBFU0NBUEU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBFU0NBUEU7Ozs7CisyNDFDO1NZTUJPTCBGT1IgRklMRSBTRVBBUkFUT1I7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBGSUxFIFNFUEFSQVRPUjs7OzsKKzI0MUQ7U1lNQk9MIEZPUiBHUk9VUCBTRVBBUkFUT1I7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBHUk9VUCBTRVBBUkFUT1I7Ozs7CisyNDFFO1NZTUJPTCBGT1IgUkVDT1JEIFNFUEFSQVRPUjtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFJFQ09SRCBTRVBBUkFUT1I7Ozs7CisyNDFGO1NZTUJPTCBGT1IgVU5JVCBTRVBBUkFUT1I7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBVTklUIFNFUEFSQVRPUjs7OzsKKzI0MjA7U1lNQk9MIEZPUiBTUEFDRTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIFNQQUNFOzs7OworMjQyMTtTWU1CT0wgRk9SIERFTEVURTtTbzswO09OOzs7OztOO0dSQVBISUMgRk9SIERFTEVURTs7OzsKKzI0MjI7QkxBTksgU1lNQk9MO1NvOzA7T047Ozs7O047QkxBTks7Ozs7CisyNDIzO09QRU4gQk9YO1NvOzA7T047Ozs7O047Ozs7OworMjQyNDtTWU1CT0wgRk9SIE5FV0xJTkU7U287MDtPTjs7Ozs7TjtHUkFQSElDIEZPUiBORVdMSU5FOzs7OworMjQyNTtTWU1CT0wgRk9SIERFTEVURSBGT1JNIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzI0MjY7U1lNQk9MIEZPUiBTVUJTVElUVVRFIEZPUk0gVFdPO1NvOzA7T047Ozs7O047Ozs7OworMjQ0MDtPQ1IgSE9PSztTbzswO09OOzs7OztOOzs7OzsKKzI0NDE7T0NSIENIQUlSO1NvOzA7T047Ozs7O047Ozs7OworMjQ0MjtPQ1IgRk9SSztTbzswO09OOzs7OztOOzs7OzsKKzI0NDM7T0NSIElOVkVSVEVEIEZPUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ0O09DUiBCRUxUIEJVQ0tMRTtTbzswO09OOzs7OztOOzs7OzsKKzI0NDU7T0NSIEJPVyBUSUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ2O09DUiBCUkFOQ0ggQkFOSyBJREVOVElGSUNBVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzI0NDc7T0NSIEFNT1VOVCBPRiBDSEVDSztTbzswO09OOzs7OztOOzs7OzsKKzI0NDg7T0NSIERBU0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDQ5O09DUiBDVVNUT01FUiBBQ0NPVU5UIE5VTUJFUjtTbzswO09OOzs7OztOOzs7OzsKKzI0NEE7T0NSIERPVUJMRSBCQUNLU0xBU0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNDYwO0NJUkNMRUQgRElHSVQgT05FO05vOzA7T047PGNpcmNsZT4gMDAzMTs7MTsxO047Ozs7OworMjQ2MTtDSVJDTEVEIERJR0lUIFRXTztObzswO09OOzxjaXJjbGU+IDAwMzI7OzI7MjtOOzs7OzsKKzI0NjI7Q0lSQ0xFRCBESUdJVCBUSFJFRTtObzswO09OOzxjaXJjbGU+IDAwMzM7OzM7MztOOzs7OzsKKzI0NjM7Q0lSQ0xFRCBESUdJVCBGT1VSO05vOzA7T047PGNpcmNsZT4gMDAzNDs7NDs0O047Ozs7OworMjQ2NDtDSVJDTEVEIERJR0lUIEZJVkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDM1Ozs1OzU7Tjs7Ozs7CisyNDY1O0NJUkNMRUQgRElHSVQgU0lYO05vOzA7T047PGNpcmNsZT4gMDAzNjs7Njs2O047Ozs7OworMjQ2NjtDSVJDTEVEIERJR0lUIFNFVkVOO05vOzA7T047PGNpcmNsZT4gMDAzNzs7Nzs3O047Ozs7OworMjQ2NztDSVJDTEVEIERJR0lUIEVJR0hUO05vOzA7T047PGNpcmNsZT4gMDAzODs7ODs4O047Ozs7OworMjQ2ODtDSVJDTEVEIERJR0lUIE5JTkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDM5Ozs5Ozk7Tjs7Ozs7CisyNDY5O0NJUkNMRUQgTlVNQkVSIFRFTjtObzswO09OOzxjaXJjbGU+IDAwMzEgMDAzMDs7OzEwO047Ozs7OworMjQ2QTtDSVJDTEVEIE5VTUJFUiBFTEVWRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzE7OzsxMTtOOzs7OzsKKzI0NkI7Q0lSQ0xFRCBOVU1CRVIgVFdFTFZFO05vOzA7T047PGNpcmNsZT4gMDAzMSAwMDMyOzs7MTI7Tjs7Ozs7CisyNDZDO0NJUkNMRUQgTlVNQkVSIFRISVJURUVOO05vOzA7T047PGNpcmNsZT4gMDAzMSAwMDMzOzs7MTM7Tjs7Ozs7CisyNDZEO0NJUkNMRUQgTlVNQkVSIEZPVVJURUVOO05vOzA7T047PGNpcmNsZT4gMDAzMSAwMDM0Ozs7MTQ7Tjs7Ozs7CisyNDZFO0NJUkNMRUQgTlVNQkVSIEZJRlRFRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzU7OzsxNTtOOzs7OzsKKzI0NkY7Q0lSQ0xFRCBOVU1CRVIgU0lYVEVFTjtObzswO09OOzxjaXJjbGU+IDAwMzEgMDAzNjs7OzE2O047Ozs7OworMjQ3MDtDSVJDTEVEIE5VTUJFUiBTRVZFTlRFRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzc7OzsxNztOOzs7OzsKKzI0NzE7Q0lSQ0xFRCBOVU1CRVIgRUlHSFRFRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzg7OzsxODtOOzs7OzsKKzI0NzI7Q0lSQ0xFRCBOVU1CRVIgTklORVRFRU47Tm87MDtPTjs8Y2lyY2xlPiAwMDMxIDAwMzk7OzsxOTtOOzs7OzsKKzI0NzM7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDMwOzs7MjA7Tjs7Ozs7CisyNDc0O1BBUkVOVEhFU0laRUQgRElHSVQgT05FO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMjk7OzE7MTtOOzs7OzsKKzI0NzU7UEFSRU5USEVTSVpFRCBESUdJVCBUV087Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzIgMDAyOTs7MjsyO047Ozs7OworMjQ3NjtQQVJFTlRIRVNJWkVEIERJR0lUIFRIUkVFO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMzIDAwMjk7OzM7MztOOzs7OzsKKzI0Nzc7UEFSRU5USEVTSVpFRCBESUdJVCBGT1VSO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDM0IDAwMjk7OzQ7NDtOOzs7OzsKKzI0Nzg7UEFSRU5USEVTSVpFRCBESUdJVCBGSVZFO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDM1IDAwMjk7OzU7NTtOOzs7OzsKKzI0Nzk7UEFSRU5USEVTSVpFRCBESUdJVCBTSVg7Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzYgMDAyOTs7Njs2O047Ozs7OworMjQ3QTtQQVJFTlRIRVNJWkVEIERJR0lUIFNFVkVOO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDM3IDAwMjk7Ozc7NztOOzs7OzsKKzI0N0I7UEFSRU5USEVTSVpFRCBESUdJVCBFSUdIVDtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzOCAwMDI5Ozs4Ozg7Tjs7Ozs7CisyNDdDO1BBUkVOVEhFU0laRUQgRElHSVQgTklORTtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzOSAwMDI5Ozs5Ozk7Tjs7Ozs7CisyNDdEO1BBUkVOVEhFU0laRUQgTlVNQkVSIFRFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDMwIDAwMjk7OzsxMDtOOzs7OzsKKzI0N0U7UEFSRU5USEVTSVpFRCBOVU1CRVIgRUxFVkVOO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzEgMDAyOTs7OzExO047Ozs7OworMjQ3RjtQQVJFTlRIRVNJWkVEIE5VTUJFUiBUV0VMVkU7Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzMiAwMDI5Ozs7MTI7Tjs7Ozs7CisyNDgwO1BBUkVOVEhFU0laRUQgTlVNQkVSIFRISVJURUVOO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzMgMDAyOTs7OzEzO047Ozs7OworMjQ4MTtQQVJFTlRIRVNJWkVEIE5VTUJFUiBGT1VSVEVFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM0IDAwMjk7OzsxNDtOOzs7OzsKKzI0ODI7UEFSRU5USEVTSVpFRCBOVU1CRVIgRklGVEVFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM1IDAwMjk7OzsxNTtOOzs7OzsKKzI0ODM7UEFSRU5USEVTSVpFRCBOVU1CRVIgU0lYVEVFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM2IDAwMjk7OzsxNjtOOzs7OzsKKzI0ODQ7UEFSRU5USEVTSVpFRCBOVU1CRVIgU0VWRU5URUVOO05vOzA7T047PGNvbXBhdD4gMDAyOCAwMDMxIDAwMzcgMDAyOTs7OzE3O047Ozs7OworMjQ4NTtQQVJFTlRIRVNJWkVEIE5VTUJFUiBFSUdIVEVFTjtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMSAwMDM4IDAwMjk7OzsxODtOOzs7OzsKKzI0ODY7UEFSRU5USEVTSVpFRCBOVU1CRVIgTklORVRFRU47Tm87MDtPTjs8Y29tcGF0PiAwMDI4IDAwMzEgMDAzOSAwMDI5Ozs7MTk7Tjs7Ozs7CisyNDg3O1BBUkVOVEhFU0laRUQgTlVNQkVSIFRXRU5UWTtObzswO09OOzxjb21wYXQ+IDAwMjggMDAzMiAwMDMwIDAwMjk7OzsyMDtOOzs7OzsKKzI0ODg7RElHSVQgT05FIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAyRTs7MTsxO047RElHSVQgT05FIFBFUklPRDs7OzsKKzI0ODk7RElHSVQgVFdPIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzIgMDAyRTs7MjsyO047RElHSVQgVFdPIFBFUklPRDs7OzsKKzI0OEE7RElHSVQgVEhSRUUgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMyAwMDJFOzszOzM7TjtESUdJVCBUSFJFRSBQRVJJT0Q7Ozs7CisyNDhCO0RJR0lUIEZPVVIgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzNCAwMDJFOzs0OzQ7TjtESUdJVCBGT1VSIFBFUklPRDs7OzsKKzI0OEM7RElHSVQgRklWRSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM1IDAwMkU7OzU7NTtOO0RJR0lUIEZJVkUgUEVSSU9EOzs7OworMjQ4RDtESUdJVCBTSVggRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzNiAwMDJFOzs2OzY7TjtESUdJVCBTSVggUEVSSU9EOzs7OworMjQ4RTtESUdJVCBTRVZFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDM3IDAwMkU7Ozc7NztOO0RJR0lUIFNFVkVOIFBFUklPRDs7OzsKKzI0OEY7RElHSVQgRUlHSFQgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzOCAwMDJFOzs4Ozg7TjtESUdJVCBFSUdIVCBQRVJJT0Q7Ozs7CisyNDkwO0RJR0lUIE5JTkUgRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzOSAwMDJFOzs5Ozk7TjtESUdJVCBOSU5FIFBFUklPRDs7OzsKKzI0OTE7TlVNQkVSIFRFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzAgMDAyRTs7OzEwO047TlVNQkVSIFRFTiBQRVJJT0Q7Ozs7CisyNDkyO05VTUJFUiBFTEVWRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDMxIDAwMkU7OzsxMTtOO05VTUJFUiBFTEVWRU4gUEVSSU9EOzs7OworMjQ5MztOVU1CRVIgVFdFTFZFIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzMiAwMDJFOzs7MTI7TjtOVU1CRVIgVFdFTFZFIFBFUklPRDs7OzsKKzI0OTQ7TlVNQkVSIFRISVJURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzMyAwMDJFOzs7MTM7TjtOVU1CRVIgVEhJUlRFRU4gUEVSSU9EOzs7OworMjQ5NTtOVU1CRVIgRk9VUlRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM0IDAwMkU7OzsxNDtOO05VTUJFUiBGT1VSVEVFTiBQRVJJT0Q7Ozs7CisyNDk2O05VTUJFUiBGSUZURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzNSAwMDJFOzs7MTU7TjtOVU1CRVIgRklGVEVFTiBQRVJJT0Q7Ozs7CisyNDk3O05VTUJFUiBTSVhURUVOIEZVTEwgU1RPUDtObzswO0VOOzxjb21wYXQ+IDAwMzEgMDAzNiAwMDJFOzs7MTY7TjtOVU1CRVIgU0lYVEVFTiBQRVJJT0Q7Ozs7CisyNDk4O05VTUJFUiBTRVZFTlRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM3IDAwMkU7OzsxNztOO05VTUJFUiBTRVZFTlRFRU4gUEVSSU9EOzs7OworMjQ5OTtOVU1CRVIgRUlHSFRFRU4gRlVMTCBTVE9QO05vOzA7RU47PGNvbXBhdD4gMDAzMSAwMDM4IDAwMkU7OzsxODtOO05VTUJFUiBFSUdIVEVFTiBQRVJJT0Q7Ozs7CisyNDlBO05VTUJFUiBOSU5FVEVFTiBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMxIDAwMzkgMDAyRTs7OzE5O047TlVNQkVSIE5JTkVURUVOIFBFUklPRDs7OzsKKzI0OUI7TlVNQkVSIFRXRU5UWSBGVUxMIFNUT1A7Tm87MDtFTjs8Y29tcGF0PiAwMDMyIDAwMzAgMDAyRTs7OzIwO047TlVNQkVSIFRXRU5UWSBQRVJJT0Q7Ozs7CisyNDlDO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2MSAwMDI5Ozs7O047Ozs7OworMjQ5RDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBCO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjIgMDAyOTs7OztOOzs7OzsKKzI0OUU7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgQztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDYzIDAwMjk7Ozs7Tjs7Ozs7CisyNDlGO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEQ7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2NCAwMDI5Ozs7O047Ozs7OworMjRBMDtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjUgMDAyOTs7OztOOzs7OzsKKzI0QTE7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgRjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY2IDAwMjk7Ozs7Tjs7Ozs7CisyNEEyO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEc7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2NyAwMDI5Ozs7O047Ozs7OworMjRBMztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNjggMDAyOTs7OztOOzs7OzsKKzI0QTQ7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgSTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDY5IDAwMjk7Ozs7Tjs7Ozs7CisyNEE1O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIEo7U287MDtMOzxjb21wYXQ+IDAwMjggMDA2QSAwMDI5Ozs7O047Ozs7OworMjRBNjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBLO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkIgMDAyOTs7OztOOzs7OzsKKzI0QTc7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgTDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZDIDAwMjk7Ozs7Tjs7Ozs7CisyNEE4O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIE07U287MDtMOzxjb21wYXQ+IDAwMjggMDA2RCAwMDI5Ozs7O047Ozs7OworMjRBOTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBOO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNkUgMDAyOTs7OztOOzs7OzsKKzI0QUE7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgTztTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDZGIDAwMjk7Ozs7Tjs7Ozs7CisyNEFCO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFA7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3MCAwMDI5Ozs7O047Ozs7OworMjRBQztQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBRO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzEgMDAyOTs7OztOOzs7OzsKKzI0QUQ7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgUjtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDcyIDAwMjk7Ozs7Tjs7Ozs7CisyNEFFO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFM7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3MyAwMDI5Ozs7O047Ozs7OworMjRBRjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBUO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzQgMDAyOTs7OztOOzs7OzsKKzI0QjA7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgVTtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc1IDAwMjk7Ozs7Tjs7Ozs7CisyNEIxO1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFY7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3NiAwMDI5Ozs7O047Ozs7OworMjRCMjtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBXO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwNzcgMDAyOTs7OztOOzs7OzsKKzI0QjM7UEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgWDtTbzswO0w7PGNvbXBhdD4gMDAyOCAwMDc4IDAwMjk7Ozs7Tjs7Ozs7CisyNEI0O1BBUkVOVEhFU0laRUQgTEFUSU4gU01BTEwgTEVUVEVSIFk7U287MDtMOzxjb21wYXQ+IDAwMjggMDA3OSAwMDI5Ozs7O047Ozs7OworMjRCNTtQQVJFTlRIRVNJWkVEIExBVElOIFNNQUxMIExFVFRFUiBaO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDAwN0EgMDAyOTs7OztOOzs7OzsKKzI0QjY7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBBO1NvOzA7TDs8Y2lyY2xlPiAwMDQxOzs7O047Ozs7MjREMDsKKzI0Qjc7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBCO1NvOzA7TDs8Y2lyY2xlPiAwMDQyOzs7O047Ozs7MjREMTsKKzI0Qjg7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBDO1NvOzA7TDs8Y2lyY2xlPiAwMDQzOzs7O047Ozs7MjREMjsKKzI0Qjk7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBEO1NvOzA7TDs8Y2lyY2xlPiAwMDQ0Ozs7O047Ozs7MjREMzsKKzI0QkE7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBFO1NvOzA7TDs8Y2lyY2xlPiAwMDQ1Ozs7O047Ozs7MjRENDsKKzI0QkI7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBGO1NvOzA7TDs8Y2lyY2xlPiAwMDQ2Ozs7O047Ozs7MjRENTsKKzI0QkM7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBHO1NvOzA7TDs8Y2lyY2xlPiAwMDQ3Ozs7O047Ozs7MjRENjsKKzI0QkQ7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBIO1NvOzA7TDs8Y2lyY2xlPiAwMDQ4Ozs7O047Ozs7MjRENzsKKzI0QkU7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBJO1NvOzA7TDs8Y2lyY2xlPiAwMDQ5Ozs7O047Ozs7MjREODsKKzI0QkY7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBKO1NvOzA7TDs8Y2lyY2xlPiAwMDRBOzs7O047Ozs7MjREOTsKKzI0QzA7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBLO1NvOzA7TDs8Y2lyY2xlPiAwMDRCOzs7O047Ozs7MjREQTsKKzI0QzE7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBMO1NvOzA7TDs8Y2lyY2xlPiAwMDRDOzs7O047Ozs7MjREQjsKKzI0QzI7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBNO1NvOzA7TDs8Y2lyY2xlPiAwMDREOzs7O047Ozs7MjREQzsKKzI0QzM7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBOO1NvOzA7TDs8Y2lyY2xlPiAwMDRFOzs7O047Ozs7MjRERDsKKzI0QzQ7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBPO1NvOzA7TDs8Y2lyY2xlPiAwMDRGOzs7O047Ozs7MjRERTsKKzI0QzU7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBQO1NvOzA7TDs8Y2lyY2xlPiAwMDUwOzs7O047Ozs7MjRERjsKKzI0QzY7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBRO1NvOzA7TDs8Y2lyY2xlPiAwMDUxOzs7O047Ozs7MjRFMDsKKzI0Qzc7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBSO1NvOzA7TDs8Y2lyY2xlPiAwMDUyOzs7O047Ozs7MjRFMTsKKzI0Qzg7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBTO1NvOzA7TDs8Y2lyY2xlPiAwMDUzOzs7O047Ozs7MjRFMjsKKzI0Qzk7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBUO1NvOzA7TDs8Y2lyY2xlPiAwMDU0Ozs7O047Ozs7MjRFMzsKKzI0Q0E7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBVO1NvOzA7TDs8Y2lyY2xlPiAwMDU1Ozs7O047Ozs7MjRFNDsKKzI0Q0I7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBWO1NvOzA7TDs8Y2lyY2xlPiAwMDU2Ozs7O047Ozs7MjRFNTsKKzI0Q0M7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBXO1NvOzA7TDs8Y2lyY2xlPiAwMDU3Ozs7O047Ozs7MjRFNjsKKzI0Q0Q7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBYO1NvOzA7TDs8Y2lyY2xlPiAwMDU4Ozs7O047Ozs7MjRFNzsKKzI0Q0U7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBZO1NvOzA7TDs8Y2lyY2xlPiAwMDU5Ozs7O047Ozs7MjRFODsKKzI0Q0Y7Q0lSQ0xFRCBMQVRJTiBDQVBJVEFMIExFVFRFUiBaO1NvOzA7TDs8Y2lyY2xlPiAwMDVBOzs7O047Ozs7MjRFOTsKKzI0RDA7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgQTtTbzswO0w7PGNpcmNsZT4gMDA2MTs7OztOOzs7MjRCNjs7MjRCNgorMjREMTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBCO1NvOzA7TDs8Y2lyY2xlPiAwMDYyOzs7O047OzsyNEI3OzsyNEI3CisyNEQyO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEM7U287MDtMOzxjaXJjbGU+IDAwNjM7Ozs7Tjs7OzI0Qjg7OzI0QjgKKzI0RDM7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRDtTbzswO0w7PGNpcmNsZT4gMDA2NDs7OztOOzs7MjRCOTs7MjRCOQorMjRENDtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBFO1NvOzA7TDs8Y2lyY2xlPiAwMDY1Ozs7O047OzsyNEJBOzsyNEJBCisyNEQ1O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEY7U287MDtMOzxjaXJjbGU+IDAwNjY7Ozs7Tjs7OzI0QkI7OzI0QkIKKzI0RDY7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgRztTbzswO0w7PGNpcmNsZT4gMDA2Nzs7OztOOzs7MjRCQzs7MjRCQworMjRENztDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBIO1NvOzA7TDs8Y2lyY2xlPiAwMDY4Ozs7O047OzsyNEJEOzsyNEJECisyNEQ4O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEk7U287MDtMOzxjaXJjbGU+IDAwNjk7Ozs7Tjs7OzI0QkU7OzI0QkUKKzI0RDk7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgSjtTbzswO0w7PGNpcmNsZT4gMDA2QTs7OztOOzs7MjRCRjs7MjRCRgorMjREQTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBLO1NvOzA7TDs8Y2lyY2xlPiAwMDZCOzs7O047OzsyNEMwOzsyNEMwCisyNERCO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIEw7U287MDtMOzxjaXJjbGU+IDAwNkM7Ozs7Tjs7OzI0QzE7OzI0QzEKKzI0REM7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgTTtTbzswO0w7PGNpcmNsZT4gMDA2RDs7OztOOzs7MjRDMjs7MjRDMgorMjRERDtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBOO1NvOzA7TDs8Y2lyY2xlPiAwMDZFOzs7O047OzsyNEMzOzsyNEMzCisyNERFO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIE87U287MDtMOzxjaXJjbGU+IDAwNkY7Ozs7Tjs7OzI0QzQ7OzI0QzQKKzI0REY7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUDtTbzswO0w7PGNpcmNsZT4gMDA3MDs7OztOOzs7MjRDNTs7MjRDNQorMjRFMDtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBRO1NvOzA7TDs8Y2lyY2xlPiAwMDcxOzs7O047OzsyNEM2OzsyNEM2CisyNEUxO0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFI7U287MDtMOzxjaXJjbGU+IDAwNzI7Ozs7Tjs7OzI0Qzc7OzI0QzcKKzI0RTI7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgUztTbzswO0w7PGNpcmNsZT4gMDA3Mzs7OztOOzs7MjRDODs7MjRDOAorMjRFMztDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBUO1NvOzA7TDs8Y2lyY2xlPiAwMDc0Ozs7O047OzsyNEM5OzsyNEM5CisyNEU0O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFU7U287MDtMOzxjaXJjbGU+IDAwNzU7Ozs7Tjs7OzI0Q0E7OzI0Q0EKKzI0RTU7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgVjtTbzswO0w7PGNpcmNsZT4gMDA3Njs7OztOOzs7MjRDQjs7MjRDQgorMjRFNjtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBXO1NvOzA7TDs8Y2lyY2xlPiAwMDc3Ozs7O047OzsyNENDOzsyNENDCisyNEU3O0NJUkNMRUQgTEFUSU4gU01BTEwgTEVUVEVSIFg7U287MDtMOzxjaXJjbGU+IDAwNzg7Ozs7Tjs7OzI0Q0Q7OzI0Q0QKKzI0RTg7Q0lSQ0xFRCBMQVRJTiBTTUFMTCBMRVRURVIgWTtTbzswO0w7PGNpcmNsZT4gMDA3OTs7OztOOzs7MjRDRTs7MjRDRQorMjRFOTtDSVJDTEVEIExBVElOIFNNQUxMIExFVFRFUiBaO1NvOzA7TDs8Y2lyY2xlPiAwMDdBOzs7O047OzsyNENGOzsyNENGCisyNEVBO0NJUkNMRUQgRElHSVQgWkVSTztObzswO09OOzxjaXJjbGU+IDAwMzA7OzA7MDtOOzs7OzsKKzI0RUI7TkVHQVRJVkUgQ0lSQ0xFRCBOVU1CRVIgRUxFVkVOO05vOzA7T047Ozs7MTE7Tjs7Ozs7CisyNEVDO05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIFRXRUxWRTtObzswO09OOzs7OzEyO047Ozs7OworMjRFRDtORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBUSElSVEVFTjtObzswO09OOzs7OzEzO047Ozs7OworMjRFRTtORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBGT1VSVEVFTjtObzswO09OOzs7OzE0O047Ozs7OworMjRFRjtORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBGSUZURUVOO05vOzA7T047Ozs7MTU7Tjs7Ozs7CisyNEYwO05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIFNJWFRFRU47Tm87MDtPTjs7OzsxNjtOOzs7OzsKKzI0RjE7TkVHQVRJVkUgQ0lSQ0xFRCBOVU1CRVIgU0VWRU5URUVOO05vOzA7T047Ozs7MTc7Tjs7Ozs7CisyNEYyO05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIEVJR0hURUVOO05vOzA7T047Ozs7MTg7Tjs7Ozs7CisyNEYzO05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIE5JTkVURUVOO05vOzA7T047Ozs7MTk7Tjs7Ozs7CisyNEY0O05FR0FUSVZFIENJUkNMRUQgTlVNQkVSIFRXRU5UWTtObzswO09OOzs7OzIwO047Ozs7OworMjRGNTtET1VCTEUgQ0lSQ0xFRCBESUdJVCBPTkU7Tm87MDtPTjs7OzE7MTtOOzs7OzsKKzI0RjY7RE9VQkxFIENJUkNMRUQgRElHSVQgVFdPO05vOzA7T047OzsyOzI7Tjs7Ozs7CisyNEY3O0RPVUJMRSBDSVJDTEVEIERJR0lUIFRIUkVFO05vOzA7T047OzszOzM7Tjs7Ozs7CisyNEY4O0RPVUJMRSBDSVJDTEVEIERJR0lUIEZPVVI7Tm87MDtPTjs7OzQ7NDtOOzs7OzsKKzI0Rjk7RE9VQkxFIENJUkNMRUQgRElHSVQgRklWRTtObzswO09OOzs7NTs1O047Ozs7OworMjRGQTtET1VCTEUgQ0lSQ0xFRCBESUdJVCBTSVg7Tm87MDtPTjs7OzY7NjtOOzs7OzsKKzI0RkI7RE9VQkxFIENJUkNMRUQgRElHSVQgU0VWRU47Tm87MDtPTjs7Ozc7NztOOzs7OzsKKzI0RkM7RE9VQkxFIENJUkNMRUQgRElHSVQgRUlHSFQ7Tm87MDtPTjs7Ozg7ODtOOzs7OzsKKzI0RkQ7RE9VQkxFIENJUkNMRUQgRElHSVQgTklORTtObzswO09OOzs7OTs5O047Ozs7OworMjRGRTtET1VCTEUgQ0lSQ0xFRCBOVU1CRVIgVEVOO05vOzA7T047Ozs7MTA7Tjs7Ozs7CisyNEZGO05FR0FUSVZFIENJUkNMRUQgRElHSVQgWkVSTztObzswO09OOzs7MDswO047Ozs7OworMjUwMDtCT1ggRFJBV0lOR1MgTElHSFQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEhPUklaT05UQUw7Ozs7CisyNTAxO0JPWCBEUkFXSU5HUyBIRUFWWSBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgSE9SSVpPTlRBTDs7OzsKKzI1MDI7Qk9YIERSQVdJTkdTIExJR0hUIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVkVSVElDQUw7Ozs7CisyNTAzO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFZFUlRJQ0FMOzs7OworMjUwNDtCT1ggRFJBV0lOR1MgTElHSFQgVFJJUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFRSSVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTA1O0JPWCBEUkFXSU5HUyBIRUFWWSBUUklQTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVFJJUExFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1MDY7Qk9YIERSQVdJTkdTIExJR0hUIFRSSVBMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVFJJUExFIERBU0ggVkVSVElDQUw7Ozs7CisyNTA3O0JPWCBEUkFXSU5HUyBIRUFWWSBUUklQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFRSSVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwODtCT1ggRFJBV0lOR1MgTElHSFQgUVVBRFJVUExFIERBU0ggSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFFVQURSVVBMRSBEQVNIIEhPUklaT05UQUw7Ozs7CisyNTA5O0JPWCBEUkFXSU5HUyBIRUFWWSBRVUFEUlVQTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgUVVBRFJVUExFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1MEE7Qk9YIERSQVdJTkdTIExJR0hUIFFVQURSVVBMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgUVVBRFJVUExFIERBU0ggVkVSVElDQUw7Ozs7CisyNTBCO0JPWCBEUkFXSU5HUyBIRUFWWSBRVUFEUlVQTEUgREFTSCBWRVJUSUNBTDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFFVQURSVVBMRSBEQVNIIFZFUlRJQ0FMOzs7OworMjUwQztCT1ggRFJBV0lOR1MgTElHSFQgRE9XTiBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1dOIEFORCBSSUdIVDs7OzsKKzI1MEQ7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIFJJR0hUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgUklHSFQgSEVBVlk7Ozs7CisyNTBFO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBSSUdIVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUwRjtCT1ggRFJBV0lOR1MgSEVBVlkgRE9XTiBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBSSUdIVDs7OzsKKzI1MTA7Qk9YIERSQVdJTkdTIExJR0hUIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1dOIEFORCBMRUZUOzs7OworMjUxMTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgTEVGVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIExFRlQgSEVBVlk7Ozs7CisyNTEyO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBMRUZUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgTEVGVCBMSUdIVDs7OzsKKzI1MTM7Qk9YIERSQVdJTkdTIEhFQVZZIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBMRUZUOzs7OworMjUxNDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVAgQU5EIFJJR0hUOzs7OworMjUxNTtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIFJJR0hUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIFJJR0hUIEhFQVZZOzs7OworMjUxNjtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIFJJR0hUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUxNztCT1ggRFJBV0lOR1MgSEVBVlkgVVAgQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVAgQU5EIFJJR0hUOzs7OworMjUxODtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgTEVGVDs7OzsKKzI1MTk7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBMRUZUIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIExFRlQgSEVBVlk7Ozs7CisyNTFBO0JPWCBEUkFXSU5HUyBVUCBIRUFWWSBBTkQgTEVGVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBMRUZUIExJR0hUOzs7OworMjUxQjtCT1ggRFJBV0lOR1MgSEVBVlkgVVAgQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBVUCBBTkQgTEVGVDs7OzsKKzI1MUM7Qk9YIERSQVdJTkdTIExJR0hUIFZFUlRJQ0FMIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBSSUdIVDs7OzsKKzI1MUQ7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIExJR0hUIEFORCBSSUdIVCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIExJR0hUIEFORCBSSUdIVCBIRUFWWTs7OzsKKzI1MUU7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7Ozs7CisyNTFGO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUOzs7OworMjUyMDtCT1ggRFJBV0lOR1MgVkVSVElDQUwgSEVBVlkgQU5EIFJJR0hUIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgSEVBVlkgQU5EIFJJR0hUIExJR0hUOzs7OworMjUyMTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBSSUdIVCBVUCBIRUFWWTs7OzsKKzI1MjI7Qk9YIERSQVdJTkdTIFVQIExJR0hUIEFORCBSSUdIVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIFJJR0hUIERPV04gSEVBVlk7Ozs7CisyNTIzO0JPWCBEUkFXSU5HUyBIRUFWWSBWRVJUSUNBTCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBWRVJUSUNBTCBBTkQgUklHSFQ7Ozs7CisyNTI0O0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBMRUZUOzs7OworMjUyNTtCT1ggRFJBV0lOR1MgVkVSVElDQUwgTElHSFQgQU5EIExFRlQgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBMSUdIVCBBTkQgTEVGVCBIRUFWWTs7OzsKKzI1MjY7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUOzs7OworMjUyNztCT1ggRFJBV0lOR1MgRE9XTiBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gSEVBVlkgQU5EIExFRlQgVVAgTElHSFQ7Ozs7CisyNTI4O0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBIRUFWWSBBTkQgTEVGVCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIEhFQVZZIEFORCBMRUZUIExJR0hUOzs7OworMjUyOTtCT1ggRFJBV0lOR1MgRE9XTiBMSUdIVCBBTkQgTEVGVCBVUCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gTElHSFQgQU5EIExFRlQgVVAgSEVBVlk7Ozs7CisyNTJBO0JPWCBEUkFXSU5HUyBVUCBMSUdIVCBBTkQgTEVGVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgVVAgTElHSFQgQU5EIExFRlQgRE9XTiBIRUFWWTs7OzsKKzI1MkI7Qk9YIERSQVdJTkdTIEhFQVZZIFZFUlRJQ0FMIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVkVSVElDQUwgQU5EIExFRlQ7Ozs7CisyNTJDO0JPWCBEUkFXSU5HUyBMSUdIVCBET1dOIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9XTiBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1MkQ7Qk9YIERSQVdJTkdTIExFRlQgSEVBVlkgQU5EIFJJR0hUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUOzs7OworMjUyRTtCT1ggRFJBV0lOR1MgUklHSFQgSEVBVlkgQU5EIExFRlQgRE9XTiBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7Ozs7CisyNTJGO0JPWCBEUkFXSU5HUyBET1dOIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1MzA7Qk9YIERSQVdJTkdTIERPV04gSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUOzs7OworMjUzMTtCT1ggRFJBV0lOR1MgUklHSFQgTElHSFQgQU5EIExFRlQgRE9XTiBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIERPV04gSEVBVlk7Ozs7CisyNTMyO0JPWCBEUkFXSU5HUyBMRUZUIExJR0hUIEFORCBSSUdIVCBET1dOIEhFQVZZO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBMSUdIVCBBTkQgUklHSFQgRE9XTiBIRUFWWTs7OzsKKzI1MzM7Qk9YIERSQVdJTkdTIEhFQVZZIERPV04gQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1dOIEFORCBIT1JJWk9OVEFMOzs7OworMjUzNDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1MzU7Qk9YIERSQVdJTkdTIExFRlQgSEVBVlkgQU5EIFJJR0hUIFVQIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7Ozs7CisyNTM2O0JPWCBEUkFXSU5HUyBSSUdIVCBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUOzs7OworMjUzNztCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTs7OzsKKzI1Mzg7Qk9YIERSQVdJTkdTIFVQIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVVAgSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTM5O0JPWCBEUkFXSU5HUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBVUCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIFVQIEhFQVZZOzs7OworMjUzQTtCT1ggRFJBV0lOR1MgTEVGVCBMSUdIVCBBTkQgUklHSFQgVVAgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIExJR0hUIEFORCBSSUdIVCBVUCBIRUFWWTs7OzsKKzI1M0I7Qk9YIERSQVdJTkdTIEhFQVZZIFVQIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVAgQU5EIEhPUklaT05UQUw7Ozs7CisyNTNDO0JPWCBEUkFXSU5HUyBMSUdIVCBWRVJUSUNBTCBBTkQgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMOzs7OworMjUzRDtCT1ggRFJBV0lOR1MgTEVGVCBIRUFWWSBBTkQgUklHSFQgVkVSVElDQUwgTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIEhFQVZZIEFORCBSSUdIVCBWRVJUSUNBTCBMSUdIVDs7OzsKKzI1M0U7Qk9YIERSQVdJTkdTIFJJR0hUIEhFQVZZIEFORCBMRUZUIFZFUlRJQ0FMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgSEVBVlkgQU5EIExFRlQgVkVSVElDQUwgTElHSFQ7Ozs7CisyNTNGO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBMSUdIVCBBTkQgSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIExJR0hUIEFORCBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjU0MDtCT1ggRFJBV0lOR1MgVVAgSEVBVlkgQU5EIERPV04gSE9SSVpPTlRBTCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIFVQIEhFQVZZIEFORCBET1dOIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTQxO0JPWCBEUkFXSU5HUyBET1dOIEhFQVZZIEFORCBVUCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBIRUFWWSBBTkQgVVAgSE9SSVpPTlRBTCBMSUdIVDs7OzsKKzI1NDI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIEhFQVZZIEFORCBIT1JJWk9OVEFMIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgSEVBVlkgQU5EIEhPUklaT05UQUwgTElHSFQ7Ozs7CisyNTQzO0JPWCBEUkFXSU5HUyBMRUZUIFVQIEhFQVZZIEFORCBSSUdIVCBET1dOIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTEVGVCBVUCBIRUFWWSBBTkQgUklHSFQgRE9XTiBMSUdIVDs7OzsKKzI1NDQ7Qk9YIERSQVdJTkdTIFJJR0hUIFVQIEhFQVZZIEFORCBMRUZUIERPV04gTElHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBSSUdIVCBVUCBIRUFWWSBBTkQgTEVGVCBET1dOIExJR0hUOzs7OworMjU0NTtCT1ggRFJBV0lOR1MgTEVGVCBET1dOIEhFQVZZIEFORCBSSUdIVCBVUCBMSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExFRlQgRE9XTiBIRUFWWSBBTkQgUklHSFQgVVAgTElHSFQ7Ozs7CisyNTQ2O0JPWCBEUkFXSU5HUyBSSUdIVCBET1dOIEhFQVZZIEFORCBMRUZUIFVQIExJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgUklHSFQgRE9XTiBIRUFWWSBBTkQgTEVGVCBVUCBMSUdIVDs7OzsKKzI1NDc7Qk9YIERSQVdJTkdTIERPV04gTElHSFQgQU5EIFVQIEhPUklaT05UQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBET1dOIExJR0hUIEFORCBVUCBIT1JJWk9OVEFMIEhFQVZZOzs7OworMjU0ODtCT1ggRFJBV0lOR1MgVVAgTElHSFQgQU5EIERPV04gSE9SSVpPTlRBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIExJR0hUIEFORCBET1dOIEhPUklaT05UQUwgSEVBVlk7Ozs7CisyNTQ5O0JPWCBEUkFXSU5HUyBSSUdIVCBMSUdIVCBBTkQgTEVGVCBWRVJUSUNBTCBIRUFWWTtTbzswO09OOzs7OztOO0ZPUk1TIFJJR0hUIExJR0hUIEFORCBMRUZUIFZFUlRJQ0FMIEhFQVZZOzs7OworMjU0QTtCT1ggRFJBV0lOR1MgTEVGVCBMSUdIVCBBTkQgUklHSFQgVkVSVElDQUwgSEVBVlk7U287MDtPTjs7Ozs7TjtGT1JNUyBMRUZUIExJR0hUIEFORCBSSUdIVCBWRVJUSUNBTCBIRUFWWTs7OzsKKzI1NEI7Qk9YIERSQVdJTkdTIEhFQVZZIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVkVSVElDQUwgQU5EIEhPUklaT05UQUw7Ozs7CisyNTRDO0JPWCBEUkFXSU5HUyBMSUdIVCBET1VCTEUgREFTSCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRE9VQkxFIERBU0ggSE9SSVpPTlRBTDs7OzsKKzI1NEQ7Qk9YIERSQVdJTkdTIEhFQVZZIERPVUJMRSBEQVNIIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBIRUFWWSBET1VCTEUgREFTSCBIT1JJWk9OVEFMOzs7OworMjU0RTtCT1ggRFJBV0lOR1MgTElHSFQgRE9VQkxFIERBU0ggVkVSVElDQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBET1VCTEUgREFTSCBWRVJUSUNBTDs7OzsKKzI1NEY7Qk9YIERSQVdJTkdTIEhFQVZZIERPVUJMRSBEQVNIIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgRE9VQkxFIERBU0ggVkVSVElDQUw7Ozs7CisyNTUwO0JPWCBEUkFXSU5HUyBET1VCTEUgSE9SSVpPTlRBTDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBIT1JJWk9OVEFMOzs7OworMjU1MTtCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMOzs7OworMjU1MjtCT1ggRFJBV0lOR1MgRE9XTiBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7Ozs7CisyNTUzO0JPWCBEUkFXSU5HUyBET1dOIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTs7OzsKKzI1NTQ7Qk9YIERSQVdJTkdTIERPVUJMRSBET1dOIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBET1dOIEFORCBSSUdIVDs7OzsKKzI1NTU7Qk9YIERSQVdJTkdTIERPV04gU0lOR0xFIEFORCBMRUZUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gU0lOR0xFIEFORCBMRUZUIERPVUJMRTs7OzsKKzI1NTY7Qk9YIERSQVdJTkdTIERPV04gRE9VQkxFIEFORCBMRUZUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIERPV04gRE9VQkxFIEFORCBMRUZUIFNJTkdMRTs7OzsKKzI1NTc7Qk9YIERSQVdJTkdTIERPVUJMRSBET1dOIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIERPV04gQU5EIExFRlQ7Ozs7CisyNTU4O0JPWCBEUkFXSU5HUyBVUCBTSU5HTEUgQU5EIFJJR0hUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFOzs7OworMjU1OTtCT1ggRFJBV0lOR1MgVVAgRE9VQkxFIEFORCBSSUdIVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTs7OzsKKzI1NUE7Qk9YIERSQVdJTkdTIERPVUJMRSBVUCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVVAgQU5EIFJJR0hUOzs7OworMjU1QjtCT1ggRFJBV0lOR1MgVVAgU0lOR0xFIEFORCBMRUZUIERPVUJMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIFNJTkdMRSBBTkQgTEVGVCBET1VCTEU7Ozs7CisyNTVDO0JPWCBEUkFXSU5HUyBVUCBET1VCTEUgQU5EIExFRlQgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgVVAgRE9VQkxFIEFORCBMRUZUIFNJTkdMRTs7OzsKKzI1NUQ7Qk9YIERSQVdJTkdTIERPVUJMRSBVUCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBVUCBBTkQgTEVGVDs7OzsKKzI1NUU7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIFNJTkdMRSBBTkQgUklHSFQgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBSSUdIVCBET1VCTEU7Ozs7CisyNTVGO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBET1VCTEUgQU5EIFJJR0hUIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFZFUlRJQ0FMIERPVUJMRSBBTkQgUklHSFQgU0lOR0xFOzs7OworMjU2MDtCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIERPVUJMRSBWRVJUSUNBTCBBTkQgUklHSFQ7Ozs7CisyNTYxO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBTSU5HTEUgQU5EIExFRlQgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBMRUZUIERPVUJMRTs7OzsKKzI1NjI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIERPVUJMRSBBTkQgTEVGVCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBET1VCTEUgQU5EIExFRlQgU0lOR0xFOzs7OworMjU2MztCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMIEFORCBMRUZUOzs7OworMjU2NDtCT1ggRFJBV0lOR1MgRE9XTiBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFOzs7OworMjU2NTtCT1ggRFJBV0lOR1MgRE9XTiBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFO1NvOzA7T047Ozs7O047Rk9STVMgRE9XTiBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFOzs7OworMjU2NjtCT1ggRFJBV0lOR1MgRE9VQkxFIERPV04gQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgRE9XTiBBTkQgSE9SSVpPTlRBTDs7OzsKKzI1Njc7Qk9YIERSQVdJTkdTIFVQIFNJTkdMRSBBTkQgSE9SSVpPTlRBTCBET1VCTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBVUCBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFOzs7OworMjU2ODtCT1ggRFJBV0lOR1MgVVAgRE9VQkxFIEFORCBIT1JJWk9OVEFMIFNJTkdMRTtTbzswO09OOzs7OztOO0ZPUk1TIFVQIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7Ozs7CisyNTY5O0JPWCBEUkFXSU5HUyBET1VCTEUgVVAgQU5EIEhPUklaT05UQUw7U287MDtPTjs7Ozs7TjtGT1JNUyBET1VCTEUgVVAgQU5EIEhPUklaT05UQUw7Ozs7CisyNTZBO0JPWCBEUkFXSU5HUyBWRVJUSUNBTCBTSU5HTEUgQU5EIEhPUklaT05UQUwgRE9VQkxFO1NvOzA7T047Ozs7O047Rk9STVMgVkVSVElDQUwgU0lOR0xFIEFORCBIT1JJWk9OVEFMIERPVUJMRTs7OzsKKzI1NkI7Qk9YIERSQVdJTkdTIFZFUlRJQ0FMIERPVUJMRSBBTkQgSE9SSVpPTlRBTCBTSU5HTEU7U287MDtPTjs7Ozs7TjtGT1JNUyBWRVJUSUNBTCBET1VCTEUgQU5EIEhPUklaT05UQUwgU0lOR0xFOzs7OworMjU2QztCT1ggRFJBV0lOR1MgRE9VQkxFIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMO1NvOzA7T047Ozs7O047Rk9STVMgRE9VQkxFIFZFUlRJQ0FMIEFORCBIT1JJWk9OVEFMOzs7OworMjU2RDtCT1ggRFJBV0lOR1MgTElHSFQgQVJDIERPV04gQU5EIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgQVJDIERPV04gQU5EIFJJR0hUOzs7OworMjU2RTtCT1ggRFJBV0lOR1MgTElHSFQgQVJDIERPV04gQU5EIExFRlQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBBUkMgRE9XTiBBTkQgTEVGVDs7OzsKKzI1NkY7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBVUCBBTkQgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIEFSQyBVUCBBTkQgTEVGVDs7OzsKKzI1NzA7Qk9YIERSQVdJTkdTIExJR0hUIEFSQyBVUCBBTkQgUklHSFQ7U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBBUkMgVVAgQU5EIFJJR0hUOzs7OworMjU3MTtCT1ggRFJBV0lOR1MgTElHSFQgRElBR09OQUwgVVBQRVIgUklHSFQgVE8gTE9XRVIgTEVGVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERJQUdPTkFMIFVQUEVSIFJJR0hUIFRPIExPV0VSIExFRlQ7Ozs7CisyNTcyO0JPWCBEUkFXSU5HUyBMSUdIVCBESUFHT05BTCBVUFBFUiBMRUZUIFRPIExPV0VSIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRElBR09OQUwgVVBQRVIgTEVGVCBUTyBMT1dFUiBSSUdIVDs7OzsKKzI1NzM7Qk9YIERSQVdJTkdTIExJR0hUIERJQUdPTkFMIENST1NTO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgRElBR09OQUwgQ1JPU1M7Ozs7CisyNTc0O0JPWCBEUkFXSU5HUyBMSUdIVCBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgTEVGVDs7OzsKKzI1NzU7Qk9YIERSQVdJTkdTIExJR0hUIFVQO1NvOzA7T047Ozs7O047Rk9STVMgTElHSFQgVVA7Ozs7CisyNTc2O0JPWCBEUkFXSU5HUyBMSUdIVCBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIFJJR0hUOzs7OworMjU3NztCT1ggRFJBV0lOR1MgTElHSFQgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIERPV047Ozs7CisyNTc4O0JPWCBEUkFXSU5HUyBIRUFWWSBMRUZUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgTEVGVDs7OzsKKzI1Nzk7Qk9YIERSQVdJTkdTIEhFQVZZIFVQO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgVVA7Ozs7CisyNTdBO0JPWCBEUkFXSU5HUyBIRUFWWSBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFJJR0hUOzs7OworMjU3QjtCT1ggRFJBV0lOR1MgSEVBVlkgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIERPV047Ozs7CisyNTdDO0JPWCBEUkFXSU5HUyBMSUdIVCBMRUZUIEFORCBIRUFWWSBSSUdIVDtTbzswO09OOzs7OztOO0ZPUk1TIExJR0hUIExFRlQgQU5EIEhFQVZZIFJJR0hUOzs7OworMjU3RDtCT1ggRFJBV0lOR1MgTElHSFQgVVAgQU5EIEhFQVZZIERPV047U287MDtPTjs7Ozs7TjtGT1JNUyBMSUdIVCBVUCBBTkQgSEVBVlkgRE9XTjs7OzsKKzI1N0U7Qk9YIERSQVdJTkdTIEhFQVZZIExFRlQgQU5EIExJR0hUIFJJR0hUO1NvOzA7T047Ozs7O047Rk9STVMgSEVBVlkgTEVGVCBBTkQgTElHSFQgUklHSFQ7Ozs7CisyNTdGO0JPWCBEUkFXSU5HUyBIRUFWWSBVUCBBTkQgTElHSFQgRE9XTjtTbzswO09OOzs7OztOO0ZPUk1TIEhFQVZZIFVQIEFORCBMSUdIVCBET1dOOzs7OworMjU4MDtVUFBFUiBIQUxGIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4MTtMT1dFUiBPTkUgRUlHSFRIIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4MjtMT1dFUiBPTkUgUVVBUlRFUiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODM7TE9XRVIgVEhSRUUgRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODQ7TE9XRVIgSEFMRiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1ODU7TE9XRVIgRklWRSBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4NjtMT1dFUiBUSFJFRSBRVUFSVEVSUyBCTE9DSztTbzswO09OOzs7OztOO0xPV0VSIFRIUkVFIFFVQVJURVIgQkxPQ0s7Ozs7CisyNTg3O0xPV0VSIFNFVkVOIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg4O0ZVTEwgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTg5O0xFRlQgU0VWRU4gRUlHSFRIUyBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEE7TEVGVCBUSFJFRSBRVUFSVEVSUyBCTE9DSztTbzswO09OOzs7OztOO0xFRlQgVEhSRUUgUVVBUlRFUiBCTE9DSzs7OzsKKzI1OEI7TEVGVCBGSVZFIEVJR0hUSFMgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNThDO0xFRlQgSEFMRiBCTE9DSztTbzswO09OOzs7OztOOzs7OzsKKzI1OEQ7TEVGVCBUSFJFRSBFSUdIVEhTIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4RTtMRUZUIE9ORSBRVUFSVEVSIEJMT0NLO1NvOzA7T047Ozs7O047Ozs7OworMjU4RjtMRUZUIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkwO1JJR0hUIEhBTEYgQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkxO0xJR0hUIFNIQURFO1NvOzA7T047Ozs7O047Ozs7OworMjU5MjtNRURJVU0gU0hBREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTkzO0RBUksgU0hBREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTk0O1VQUEVSIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTk1O1JJR0hUIE9ORSBFSUdIVEggQkxPQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTk2O1FVQURSQU5UIExPV0VSIExFRlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTk3O1FVQURSQU5UIExPV0VSIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjU5ODtRVUFEUkFOVCBVUFBFUiBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMjU5OTtRVUFEUkFOVCBVUFBFUiBMRUZUIEFORCBMT1dFUiBMRUZUIEFORCBMT1dFUiBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI1OUE7UVVBRFJBTlQgVVBQRVIgTEVGVCBBTkQgTE9XRVIgUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTlCO1FVQURSQU5UIFVQUEVSIExFRlQgQU5EIFVQUEVSIFJJR0hUIEFORCBMT1dFUiBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMjU5QztRVUFEUkFOVCBVUFBFUiBMRUZUIEFORCBVUFBFUiBSSUdIVCBBTkQgTE9XRVIgUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNTlEO1FVQURSQU5UIFVQUEVSIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjU5RTtRVUFEUkFOVCBVUFBFUiBSSUdIVCBBTkQgTE9XRVIgTEVGVDtTbzswO09OOzs7OztOOzs7OzsKKzI1OUY7UVVBRFJBTlQgVVBQRVIgUklHSFQgQU5EIExPV0VSIExFRlQgQU5EIExPV0VSIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjVBMDtCTEFDSyBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUExO1dISVRFIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QTI7V0hJVEUgU1FVQVJFIFdJVEggUk9VTkRFRCBDT1JORVJTO1NvOzA7T047Ozs7O047Ozs7OworMjVBMztXSElURSBTUVVBUkUgQ09OVEFJTklORyBCTEFDSyBTTUFMTCBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE0O1NRVUFSRSBXSVRIIEhPUklaT05UQUwgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTU7U1FVQVJFIFdJVEggVkVSVElDQUwgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTY7U1FVQVJFIFdJVEggT1JUSE9HT05BTCBDUk9TU0hBVENIIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUE3O1NRVUFSRSBXSVRIIFVQUEVSIExFRlQgVE8gTE9XRVIgUklHSFQgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1QTg7U1FVQVJFIFdJVEggVVBQRVIgUklHSFQgVE8gTE9XRVIgTEVGVCBGSUxMO1NvOzA7T047Ozs7O047Ozs7OworMjVBOTtTUVVBUkUgV0lUSCBESUFHT05BTCBDUk9TU0hBVENIIEZJTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFBO0JMQUNLIFNNQUxMIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUI7V0hJVEUgU01BTEwgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjVBQztCTEFDSyBSRUNUQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUFEO1dISVRFIFJFQ1RBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1QUU7QkxBQ0sgVkVSVElDQUwgUkVDVEFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVBRjtXSElURSBWRVJUSUNBTCBSRUNUQU5HTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUIwO0JMQUNLIFBBUkFMTEVMT0dSQU07U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUIxO1dISVRFIFBBUkFMTEVMT0dSQU07U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUIyO0JMQUNLIFVQLVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgVVAgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUIzO1dISVRFIFVQLVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgVVAgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUI0O0JMQUNLIFVQLVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgVVAgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUI1O1dISVRFIFVQLVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgVVAgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUI2O0JMQUNLIFJJR0hULVBPSU5USU5HIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUI3O1dISVRFIFJJR0hULVBPSU5USU5HIFRSSUFOR0xFO1NtOzA7T047Ozs7O047V0hJVEUgUklHSFQgUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUI4O0JMQUNLIFJJR0hULVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUI5O1dISVRFIFJJR0hULVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047V0hJVEUgUklHSFQgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUJBO0JMQUNLIFJJR0hULVBPSU5USU5HIFBPSU5URVI7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBQT0lOVElORyBQT0lOVEVSOzs7OworMjVCQjtXSElURSBSSUdIVC1QT0lOVElORyBQT0lOVEVSO1NvOzA7T047Ozs7O047V0hJVEUgUklHSFQgUE9JTlRJTkcgUE9JTlRFUjs7OzsKKzI1QkM7QkxBQ0sgRE9XTi1QT0lOVElORyBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIERPV04gUE9JTlRJTkcgVFJJQU5HTEU7Ozs7CisyNUJEO1dISVRFIERPV04tUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBET1dOIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVCRTtCTEFDSyBET1dOLVBPSU5USU5HIFNNQUxMIFRSSUFOR0xFO1NvOzA7T047Ozs7O047QkxBQ0sgRE9XTiBQT0lOVElORyBTTUFMTCBUUklBTkdMRTs7OzsKKzI1QkY7V0hJVEUgRE9XTi1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO1dISVRFIERPV04gUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUMwO0JMQUNLIExFRlQtUE9JTlRJTkcgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtCTEFDSyBMRUZUIFBPSU5USU5HIFRSSUFOR0xFOzs7OworMjVDMTtXSElURSBMRUZULVBPSU5USU5HIFRSSUFOR0xFO1NtOzA7T047Ozs7O047V0hJVEUgTEVGVCBQT0lOVElORyBUUklBTkdMRTs7OzsKKzI1QzI7QkxBQ0sgTEVGVC1QT0lOVElORyBTTUFMTCBUUklBTkdMRTtTbzswO09OOzs7OztOO0JMQUNLIExFRlQgUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7Ozs7CisyNUMzO1dISVRFIExFRlQtUE9JTlRJTkcgU01BTEwgVFJJQU5HTEU7U287MDtPTjs7Ozs7TjtXSElURSBMRUZUIFBPSU5USU5HIFNNQUxMIFRSSUFOR0xFOzs7OworMjVDNDtCTEFDSyBMRUZULVBPSU5USU5HIFBPSU5URVI7U287MDtPTjs7Ozs7TjtCTEFDSyBMRUZUIFBPSU5USU5HIFBPSU5URVI7Ozs7CisyNUM1O1dISVRFIExFRlQtUE9JTlRJTkcgUE9JTlRFUjtTbzswO09OOzs7OztOO1dISVRFIExFRlQgUE9JTlRJTkcgUE9JTlRFUjs7OzsKKzI1QzY7QkxBQ0sgRElBTU9ORDtTbzswO09OOzs7OztOOzs7OzsKKzI1Qzc7V0hJVEUgRElBTU9ORDtTbzswO09OOzs7OztOOzs7OzsKKzI1Qzg7V0hJVEUgRElBTU9ORCBDT05UQUlOSU5HIEJMQUNLIFNNQUxMIERJQU1PTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUM5O0ZJU0hFWUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNBO0xPWkVOR0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNCO1dISVRFIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0M7RE9UVEVEIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0Q7Q0lSQ0xFIFdJVEggVkVSVElDQUwgRklMTDtTbzswO09OOzs7OztOOzs7OzsKKzI1Q0U7QlVMTFNFWUU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUNGO0JMQUNLIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RDA7Q0lSQ0xFIFdJVEggTEVGVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVEMTtDSVJDTEUgV0lUSCBSSUdIVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVEMjtDSVJDTEUgV0lUSCBMT1dFUiBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVEMztDSVJDTEUgV0lUSCBVUFBFUiBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVENDtDSVJDTEUgV0lUSCBVUFBFUiBSSUdIVCBRVUFEUkFOVCBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RDU7Q0lSQ0xFIFdJVEggQUxMIEJVVCBVUFBFUiBMRUZUIFFVQURSQU5UIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMjVENjtMRUZUIEhBTEYgQkxBQ0sgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVENztSSUdIVCBIQUxGIEJMQUNLIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RDg7SU5WRVJTRSBCVUxMRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUQ5O0lOVkVSU0UgV0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEQTtVUFBFUiBIQUxGIElOVkVSU0UgV0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEQjtMT1dFUiBIQUxGIElOVkVSU0UgV0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVEQztVUFBFUiBMRUZUIFFVQURSQU5UIENJUkNVTEFSIEFSQztTbzswO09OOzs7OztOOzs7OzsKKzI1REQ7VVBQRVIgUklHSFQgUVVBRFJBTlQgQ0lSQ1VMQVIgQVJDO1NvOzA7T047Ozs7O047Ozs7OworMjVERTtMT1dFUiBSSUdIVCBRVUFEUkFOVCBDSVJDVUxBUiBBUkM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNURGO0xPV0VSIExFRlQgUVVBRFJBTlQgQ0lSQ1VMQVIgQVJDO1NvOzA7T047Ozs7O047Ozs7OworMjVFMDtVUFBFUiBIQUxGIENJUkNMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTE7TE9XRVIgSEFMRiBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUUyO0JMQUNLIExPV0VSIFJJR0hUIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFMztCTEFDSyBMT1dFUiBMRUZUIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFNDtCTEFDSyBVUFBFUiBMRUZUIFRSSUFOR0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVFNTtCTEFDSyBVUFBFUiBSSUdIVCBUUklBTkdMRTtTbzswO09OOzs7OztOOzs7OzsKKzI1RTY7V0hJVEUgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjVFNztTUVVBUkUgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU4O1NRVUFSRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUU5O1NRVUFSRSBXSVRIIFVQUEVSIExFRlQgRElBR09OQUwgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RUE7U1FVQVJFIFdJVEggTE9XRVIgUklHSFQgRElBR09OQUwgSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzI1RUI7V0hJVEUgU1FVQVJFIFdJVEggVkVSVElDQUwgQklTRUNUSU5HIExJTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUVDO1dISVRFIFVQLVBPSU5USU5HIFRSSUFOR0xFIFdJVEggRE9UO1NvOzA7T047Ozs7O047V0hJVEUgVVAgUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBET1Q7Ozs7CisyNUVEO1VQLVBPSU5USU5HIFRSSUFOR0xFIFdJVEggTEVGVCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047VVAgUE9JTlRJTkcgVFJJQU5HTEUgV0lUSCBMRUZUIEhBTEYgQkxBQ0s7Ozs7CisyNUVFO1VQLVBPSU5USU5HIFRSSUFOR0xFIFdJVEggUklHSFQgSEFMRiBCTEFDSztTbzswO09OOzs7OztOO1VQIFBPSU5USU5HIFRSSUFOR0xFIFdJVEggUklHSFQgSEFMRiBCTEFDSzs7OzsKKzI1RUY7TEFSR0UgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjVGMDtXSElURSBTUVVBUkUgV0lUSCBVUFBFUiBMRUZUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGMTtXSElURSBTUVVBUkUgV0lUSCBMT1dFUiBMRUZUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGMjtXSElURSBTUVVBUkUgV0lUSCBMT1dFUiBSSUdIVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI1RjM7V0hJVEUgU1FVQVJFIFdJVEggVVBQRVIgUklHSFQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUY0O1dISVRFIENJUkNMRSBXSVRIIFVQUEVSIExFRlQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUY1O1dISVRFIENJUkNMRSBXSVRIIExPV0VSIExFRlQgUVVBRFJBTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNUY2O1dISVRFIENJUkNMRSBXSVRIIExPV0VSIFJJR0hUIFFVQURSQU5UO1NvOzA7T047Ozs7O047Ozs7OworMjVGNztXSElURSBDSVJDTEUgV0lUSCBVUFBFUiBSSUdIVCBRVUFEUkFOVDtTbzswO09OOzs7OztOOzs7OzsKKzI1Rjg7VVBQRVIgTEVGVCBUUklBTkdMRTtTbTswO09OOzs7OztOOzs7OzsKKzI1Rjk7VVBQRVIgUklHSFQgVFJJQU5HTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyNUZBO0xPV0VSIExFRlQgVFJJQU5HTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyNUZCO1dISVRFIE1FRElVTSBTUVVBUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyNUZDO0JMQUNLIE1FRElVTSBTUVVBUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyNUZEO1dISVRFIE1FRElVTSBTTUFMTCBTUVVBUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyNUZFO0JMQUNLIE1FRElVTSBTTUFMTCBTUVVBUkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyNUZGO0xPV0VSIFJJR0hUIFRSSUFOR0xFO1NtOzA7T047Ozs7O047Ozs7OworMjYwMDtCTEFDSyBTVU4gV0lUSCBSQVlTO1NvOzA7T047Ozs7O047Ozs7OworMjYwMTtDTE9VRDtTbzswO09OOzs7OztOOzs7OzsKKzI2MDI7VU1CUkVMTEE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjAzO1NOT1dNQU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA0O0NPTUVUO1NvOzA7T047Ozs7O047Ozs7OworMjYwNTtCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjYwNjtXSElURSBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjYwNztMSUdIVE5JTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjA4O1RIVU5ERVJTVE9STTtTbzswO09OOzs7OztOOzs7OzsKKzI2MDk7U1VOO1NvOzA7T047Ozs7O047Ozs7OworMjYwQTtBU0NFTkRJTkcgTk9ERTtTbzswO09OOzs7OztOOzs7OzsKKzI2MEI7REVTQ0VORElORyBOT0RFO1NvOzA7T047Ozs7O047Ozs7OworMjYwQztDT05KVU5DVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MEQ7T1BQT1NJVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MEU7QkxBQ0sgVEVMRVBIT05FO1NvOzA7T047Ozs7O047Ozs7OworMjYwRjtXSElURSBURUxFUEhPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjEwO0JBTExPVCBCT1g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjExO0JBTExPVCBCT1ggV0lUSCBDSEVDSztTbzswO09OOzs7OztOOzs7OzsKKzI2MTI7QkFMTE9UIEJPWCBXSVRIIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjEzO1NBTFRJUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjE0O1VNQlJFTExBIFdJVEggUkFJTiBEUk9QUztTbzswO09OOzs7OztOOzs7OzsKKzI2MTU7SE9UIEJFVkVSQUdFO1NvOzA7T047Ozs7O047Ozs7OworMjYxNjtXSElURSBTSE9HSSBQSUVDRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MTc7QkxBQ0sgU0hPR0kgUElFQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjE4O1NIQU1ST0NLO1NvOzA7T047Ozs7O047Ozs7OworMjYxOTtSRVZFUlNFRCBST1RBVEVEIEZMT1JBTCBIRUFSVCBCVUxMRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFBO0JMQUNLIExFRlQgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFCO0JMQUNLIFJJR0hUIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYxQztXSElURSBMRUZUIFBPSU5USU5HIElOREVYO1NvOzA7T047Ozs7O047Ozs7OworMjYxRDtXSElURSBVUCBQT0lOVElORyBJTkRFWDtTbzswO09OOzs7OztOOzs7OzsKKzI2MUU7V0hJVEUgUklHSFQgUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjFGO1dISVRFIERPV04gUE9JTlRJTkcgSU5ERVg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjIwO1NLVUxMIEFORCBDUk9TU0JPTkVTO1NvOzA7T047Ozs7O047Ozs7OworMjYyMTtDQVVUSU9OIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjIyO1JBRElPQUNUSVZFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjIzO0JJT0hBWkFSRCBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjYyNDtDQURVQ0VVUztTbzswO09OOzs7OztOOzs7OzsKKzI2MjU7QU5LSDtTbzswO09OOzs7OztOOzs7OzsKKzI2MjY7T1JUSE9ET1ggQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI3O0NISSBSSE87U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjI4O0NST1NTIE9GIExPUlJBSU5FO1NvOzA7T047Ozs7O047Ozs7OworMjYyOTtDUk9TUyBPRiBKRVJVU0FMRU07U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjJBO1NUQVIgQU5EIENSRVNDRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjYyQjtGQVJTSSBTWU1CT0w7U287MDtPTjs7Ozs7TjtTWU1CT0wgT0YgSVJBTjs7OzsKKzI2MkM7QURJIFNIQUtUSTtTbzswO09OOzs7OztOOzs7OzsKKzI2MkQ7SEFNTUVSIEFORCBTSUNLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjJFO1BFQUNFIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzI2MkY7WUlOIFlBTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjMwO1RSSUdSQU0gRk9SIEhFQVZFTjtTbzswO09OOzs7OztOOzs7OzsKKzI2MzE7VFJJR1JBTSBGT1IgTEFLRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MzI7VFJJR1JBTSBGT1IgRklSRTtTbzswO09OOzs7OztOOzs7OzsKKzI2MzM7VFJJR1JBTSBGT1IgVEhVTkRFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2MzQ7VFJJR1JBTSBGT1IgV0lORDtTbzswO09OOzs7OztOOzs7OzsKKzI2MzU7VFJJR1JBTSBGT1IgV0FURVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjM2O1RSSUdSQU0gRk9SIE1PVU5UQUlOO1NvOzA7T047Ozs7O047Ozs7OworMjYzNztUUklHUkFNIEZPUiBFQVJUSDtTbzswO09OOzs7OztOOzs7OzsKKzI2Mzg7V0hFRUwgT0YgREhBUk1BO1NvOzA7T047Ozs7O047Ozs7OworMjYzOTtXSElURSBGUk9XTklORyBGQUNFO1NvOzA7T047Ozs7O047Ozs7OworMjYzQTtXSElURSBTTUlMSU5HIEZBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjNCO0JMQUNLIFNNSUxJTkcgRkFDRTtTbzswO09OOzs7OztOOzs7OzsKKzI2M0M7V0hJVEUgU1VOIFdJVEggUkFZUztTbzswO09OOzs7OztOOzs7OzsKKzI2M0Q7RklSU1QgUVVBUlRFUiBNT09OO1NvOzA7T047Ozs7O047Ozs7OworMjYzRTtMQVNUIFFVQVJURVIgTU9PTjtTbzswO09OOzs7OztOOzs7OzsKKzI2M0Y7TUVSQ1VSWTtTbzswO09OOzs7OztOOzs7OzsKKzI2NDA7RkVNQUxFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQxO0VBUlRIO1NvOzA7T047Ozs7O047Ozs7OworMjY0MjtNQUxFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQzO0pVUElURVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ0O1NBVFVSTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NDU7VVJBTlVTO1NvOzA7T047Ozs7O047Ozs7OworMjY0NjtORVBUVU5FO1NvOzA7T047Ozs7O047Ozs7OworMjY0NztQTFVUTztTbzswO09OOzs7OztOOzs7OzsKKzI2NDg7QVJJRVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjQ5O1RBVVJVUztTbzswO09OOzs7OztOOzs7OzsKKzI2NEE7R0VNSU5JO1NvOzA7T047Ozs7O047Ozs7OworMjY0QjtDQU5DRVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRDO0xFTztTbzswO09OOzs7OztOOzs7OzsKKzI2NEQ7VklSR087U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjRFO0xJQlJBO1NvOzA7T047Ozs7O047Ozs7OworMjY0RjtTQ09SUElVUztTbzswO09OOzs7OztOOzs7OzsKKzI2NTA7U0FHSVRUQVJJVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjUxO0NBUFJJQ09STjtTbzswO09OOzs7OztOOzs7OzsKKzI2NTI7QVFVQVJJVVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjUzO1BJU0NFUztTbzswO09OOzs7OztOOzs7OzsKKzI2NTQ7V0hJVEUgQ0hFU1MgS0lORztTbzswO09OOzs7OztOOzs7OzsKKzI2NTU7V0hJVEUgQ0hFU1MgUVVFRU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU2O1dISVRFIENIRVNTIFJPT0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjU3O1dISVRFIENIRVNTIEJJU0hPUDtTbzswO09OOzs7OztOOzs7OzsKKzI2NTg7V0hJVEUgQ0hFU1MgS05JR0hUO1NvOzA7T047Ozs7O047Ozs7OworMjY1OTtXSElURSBDSEVTUyBQQVdOO1NvOzA7T047Ozs7O047Ozs7OworMjY1QTtCTEFDSyBDSEVTUyBLSU5HO1NvOzA7T047Ozs7O047Ozs7OworMjY1QjtCTEFDSyBDSEVTUyBRVUVFTjtTbzswO09OOzs7OztOOzs7OzsKKzI2NUM7QkxBQ0sgQ0hFU1MgUk9PSztTbzswO09OOzs7OztOOzs7OzsKKzI2NUQ7QkxBQ0sgQ0hFU1MgQklTSE9QO1NvOzA7T047Ozs7O047Ozs7OworMjY1RTtCTEFDSyBDSEVTUyBLTklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjVGO0JMQUNLIENIRVNTIFBBV047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjYwO0JMQUNLIFNQQURFIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjYxO1dISVRFIEhFQVJUIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjYyO1dISVRFIERJQU1PTkQgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2NjM7QkxBQ0sgQ0xVQiBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2NDtXSElURSBTUEFERSBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2NTtCTEFDSyBIRUFSVCBTVUlUO1NvOzA7T047Ozs7O047Ozs7OworMjY2NjtCTEFDSyBESUFNT05EIFNVSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY3O1dISVRFIENMVUIgU1VJVDtTbzswO09OOzs7OztOOzs7OzsKKzI2Njg7SE9UIFNQUklOR1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjY5O1FVQVJURVIgTk9URTtTbzswO09OOzs7OztOOzs7OzsKKzI2NkE7RUlHSFRIIE5PVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjZCO0JFQU1FRCBFSUdIVEggTk9URVM7U287MDtPTjs7Ozs7TjtCQVJSRUQgRUlHSFRIIE5PVEVTOzs7OworMjY2QztCRUFNRUQgU0lYVEVFTlRIIE5PVEVTO1NvOzA7T047Ozs7O047QkFSUkVEIFNJWFRFRU5USCBOT1RFUzs7OzsKKzI2NkQ7TVVTSUMgRkxBVCBTSUdOO1NvOzA7T047Ozs7O047RkxBVDs7OzsKKzI2NkU7TVVTSUMgTkFUVVJBTCBTSUdOO1NvOzA7T047Ozs7O047TkFUVVJBTDs7OzsKKzI2NkY7TVVTSUMgU0hBUlAgU0lHTjtTbTswO09OOzs7OztOO1NIQVJQOzs7OworMjY3MDtXRVNUIFNZUklBQyBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI2NzE7RUFTVCBTWVJJQUMgQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjcyO1VOSVZFUlNBTCBSRUNZQ0xJTkcgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjY3MztSRUNZQ0xJTkcgU1lNQk9MIEZPUiBUWVBFLTEgUExBU1RJQ1M7U287MDtPTjs7Ozs7Tjs7cGV0ZTs7OworMjY3NDtSRUNZQ0xJTkcgU1lNQk9MIEZPUiBUWVBFLTIgUExBU1RJQ1M7U287MDtPTjs7Ozs7Tjs7aGRwZTs7OworMjY3NTtSRUNZQ0xJTkcgU1lNQk9MIEZPUiBUWVBFLTMgUExBU1RJQ1M7U287MDtPTjs7Ozs7Tjs7cHZjOzs7CisyNjc2O1JFQ1lDTElORyBTWU1CT0wgRk9SIFRZUEUtNCBQTEFTVElDUztTbzswO09OOzs7OztOOztsZHBlOzs7CisyNjc3O1JFQ1lDTElORyBTWU1CT0wgRk9SIFRZUEUtNSBQTEFTVElDUztTbzswO09OOzs7OztOOztwcDs7OworMjY3ODtSRUNZQ0xJTkcgU1lNQk9MIEZPUiBUWVBFLTYgUExBU1RJQ1M7U287MDtPTjs7Ozs7Tjs7cHM7OzsKKzI2Nzk7UkVDWUNMSU5HIFNZTUJPTCBGT1IgVFlQRS03IFBMQVNUSUNTO1NvOzA7T047Ozs7O047O290aGVyOzs7CisyNjdBO1JFQ1lDTElORyBTWU1CT0wgRk9SIEdFTkVSSUMgTUFURVJJQUxTO1NvOzA7T047Ozs7O047Ozs7OworMjY3QjtCTEFDSyBVTklWRVJTQUwgUkVDWUNMSU5HIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzI2N0M7UkVDWUNMRUQgUEFQRVIgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjY3RDtQQVJUSUFMTFktUkVDWUNMRUQgUEFQRVIgU1lNQk9MO1NvOzA7T047Ozs7O047Ozs7OworMjY3RTtQRVJNQU5FTlQgUEFQRVIgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2N0Y7V0hFRUxDSEFJUiBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjgwO0RJRSBGQUNFLTE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjgxO0RJRSBGQUNFLTI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjgyO0RJRSBGQUNFLTM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjgzO0RJRSBGQUNFLTQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjg0O0RJRSBGQUNFLTU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjg1O0RJRSBGQUNFLTY7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjg2O1dISVRFIENJUkNMRSBXSVRIIERPVCBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI2ODc7V0hJVEUgQ0lSQ0xFIFdJVEggVFdPIERPVFM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjg4O0JMQUNLIENJUkNMRSBXSVRIIFdISVRFIERPVCBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzI2ODk7QkxBQ0sgQ0lSQ0xFIFdJVEggVFdPIFdISVRFIERPVFM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjhBO01PTk9HUkFNIEZPUiBZQU5HO1NvOzA7T047Ozs7O047Ozs7OworMjY4QjtNT05PR1JBTSBGT1IgWUlOO1NvOzA7T047Ozs7O047Ozs7OworMjY4QztESUdSQU0gRk9SIEdSRUFURVIgWUFORztTbzswO09OOzs7OztOOzs7OzsKKzI2OEQ7RElHUkFNIEZPUiBMRVNTRVIgWUlOO1NvOzA7T047Ozs7O047Ozs7OworMjY4RTtESUdSQU0gRk9SIExFU1NFUiBZQU5HO1NvOzA7T047Ozs7O047Ozs7OworMjY4RjtESUdSQU0gRk9SIEdSRUFURVIgWUlOO1NvOzA7T047Ozs7O047Ozs7OworMjY5MDtXSElURSBGTEFHO1NvOzA7T047Ozs7O047Ozs7OworMjY5MTtCTEFDSyBGTEFHO1NvOzA7T047Ozs7O047Ozs7OworMjY5MjtIQU1NRVIgQU5EIFBJQ0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjkzO0FOQ0hPUjtTbzswO09OOzs7OztOOzs7OzsKKzI2OTQ7Q1JPU1NFRCBTV09SRFM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjk1O1NUQUZGIE9GIEFFU0NVTEFQSVVTO1NvOzA7T047Ozs7O047Ozs7OworMjY5NjtTQ0FMRVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjk3O0FMRU1CSUM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNjk4O0ZMT1dFUjtTbzswO09OOzs7OztOOzs7OzsKKzI2OTk7R0VBUjtTbzswO09OOzs7OztOOzs7OzsKKzI2OUE7U1RBRkYgT0YgSEVSTUVTO1NvOzA7T047Ozs7O047Ozs7OworMjY5QjtBVE9NIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzI2OUM7RkxFVVItREUtTElTO1NvOzA7T047Ozs7O047Ozs7OworMjZBMDtXQVJOSU5HIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkExO0hJR0ggVk9MVEFHRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjZBMjtET1VCTEVEIEZFTUFMRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjZBMztET1VCTEVEIE1BTEUgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI2QTQ7SU5URVJMT0NLRUQgRkVNQUxFIEFORCBNQUxFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkE1O01BTEUgQU5EIEZFTUFMRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjZBNjtNQUxFIFdJVEggU1RST0tFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkE3O01BTEUgV0lUSCBTVFJPS0UgQU5EIE1BTEUgQU5EIEZFTUFMRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjZBODtWRVJUSUNBTCBNQUxFIFdJVEggU1RST0tFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkE5O0hPUklaT05UQUwgTUFMRSBXSVRIIFNUUk9LRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMjZBQTtNRURJVU0gV0hJVEUgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjZBQjtNRURJVU0gQkxBQ0sgQ0lSQ0xFO1NvOzA7T047Ozs7O047Ozs7OworMjZBQztNRURJVU0gU01BTEwgV0hJVEUgQ0lSQ0xFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyNkFEO01BUlJJQUdFIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzI2QUU7RElWT1JDRSBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkFGO1VOTUFSUklFRCBQQVJUTkVSU0hJUCBTWU1CT0w7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNkIwO0NPRkZJTjtTbzswO09OOzs7OztOOzs7OzsKKzI2QjE7RlVORVJBTCBVUk47U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzAxO1VQUEVSIEJMQURFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwMjtCTEFDSyBTQ0lTU09SUztTbzswO09OOzs7OztOOzs7OzsKKzI3MDM7TE9XRVIgQkxBREUgU0NJU1NPUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA0O1dISVRFIFNDSVNTT1JTO1NvOzA7T047Ozs7O047Ozs7OworMjcwNjtURUxFUEhPTkUgTE9DQVRJT04gU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzI3MDc7VEFQRSBEUklWRTtTbzswO09OOzs7OztOOzs7OzsKKzI3MDg7QUlSUExBTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzA5O0VOVkVMT1BFO1NvOzA7T047Ozs7O047Ozs7OworMjcwQztWSUNUT1JZIEhBTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzBEO1dSSVRJTkcgSEFORDtTbzswO09OOzs7OztOOzs7OzsKKzI3MEU7TE9XRVIgUklHSFQgUEVOQ0lMO1NvOzA7T047Ozs7O047Ozs7OworMjcwRjtQRU5DSUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEwO1VQUEVSIFJJR0hUIFBFTkNJTDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTE7V0hJVEUgTklCO1NvOzA7T047Ozs7O047Ozs7OworMjcxMjtCTEFDSyBOSUI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzEzO0NIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE0O0hFQVZZIENIRUNLIE1BUks7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE1O01VTFRJUExJQ0FUSU9OIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE2O0hFQVZZIE1VTFRJUExJQ0FUSU9OIFg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzE3O0JBTExPVCBYO1NvOzA7T047Ozs7O047Ozs7OworMjcxODtIRUFWWSBCQUxMT1QgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3MTk7T1VUTElORUQgR1JFRUsgQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFBO0hFQVZZIEdSRUVLIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcxQjtPUEVOIENFTlRSRSBDUk9TUztTbzswO09OOzs7OztOO09QRU4gQ0VOVEVSIENST1NTOzs7OworMjcxQztIRUFWWSBPUEVOIENFTlRSRSBDUk9TUztTbzswO09OOzs7OztOO0hFQVZZIE9QRU4gQ0VOVEVSIENST1NTOzs7OworMjcxRDtMQVRJTiBDUk9TUztTbzswO09OOzs7OztOOzs7OzsKKzI3MUU7U0hBRE9XRUQgV0hJVEUgTEFUSU4gQ1JPU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzFGO09VVExJTkVEIExBVElOIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcyMDtNQUxURVNFIENST1NTO1NvOzA7T047Ozs7O047Ozs7OworMjcyMTtTVEFSIE9GIERBVklEO1NvOzA7T047Ozs7O047Ozs7OworMjcyMjtGT1VSIFRFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjM7Rk9VUiBCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjQ7SEVBVlkgRk9VUiBCQUxMT09OLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjU7Rk9VUiBDTFVCLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MjY7QkxBQ0sgRk9VUiBQT0lOVEVEIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzI3O1dISVRFIEZPVVIgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyOTtTVFJFU1MgT1VUTElORUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkE7Q0lSQ0xFRCBXSElURSBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjcyQjtPUEVOIENFTlRSRSBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQkxBQ0sgU1RBUjs7OzsKKzI3MkM7QkxBQ0sgQ0VOVFJFIFdISVRFIFNUQVI7U287MDtPTjs7Ozs7TjtCTEFDSyBDRU5URVIgV0hJVEUgU1RBUjs7OzsKKzI3MkQ7T1VUTElORUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkU7SEVBVlkgT1VUTElORUQgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MkY7UElOV0hFRUwgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzA7U0hBRE9XRUQgV0hJVEUgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3MzE7SEVBVlkgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzMyO09QRU4gQ0VOVFJFIEFTVEVSSVNLO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgQVNURVJJU0s7Ozs7CisyNzMzO0VJR0hUIFNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3MzQ7RUlHSFQgUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczNTtFSUdIVCBQT0lOVEVEIFBJTldIRUVMIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM2O1NJWCBQT0lOVEVEIEJMQUNLIFNUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzM3O0VJR0hUIFBPSU5URUQgUkVDVElMSU5FQVIgQkxBQ0sgU1RBUjtTbzswO09OOzs7OztOOzs7OzsKKzI3Mzg7SEVBVlkgRUlHSFQgUE9JTlRFRCBSRUNUSUxJTkVBUiBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczOTtUV0VMVkUgUE9JTlRFRCBCTEFDSyBTVEFSO1NvOzA7T047Ozs7O047Ozs7OworMjczQTtTSVhURUVOIFBPSU5URUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNCO1RFQVJEUk9QLVNQT0tFRCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3M0M7T1BFTiBDRU5UUkUgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047T1BFTiBDRU5URVIgVEVBUkRST1AtU1BPS0VEIEFTVEVSSVNLOzs7OworMjczRDtIRUFWWSBURUFSRFJPUC1TUE9LRUQgQVNURVJJU0s7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNFO1NJWCBQRVRBTExFRCBCTEFDSyBBTkQgV0hJVEUgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzNGO0JMQUNLIEZMT1JFVFRFO1NvOzA7T047Ozs7O047Ozs7OworMjc0MDtXSElURSBGTE9SRVRURTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDE7RUlHSFQgUEVUQUxMRUQgT1VUTElORUQgQkxBQ0sgRkxPUkVUVEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQyO0NJUkNMRUQgT1BFTiBDRU5UUkUgRUlHSFQgUE9JTlRFRCBTVEFSO1NvOzA7T047Ozs7O047Q0lSQ0xFRCBPUEVOIENFTlRFUiBFSUdIVCBQT0lOVEVEIFNUQVI7Ozs7CisyNzQzO0hFQVZZIFRFQVJEUk9QLVNQT0tFRCBQSU5XSEVFTCBBU1RFUklTSztTbzswO09OOzs7OztOOzs7OzsKKzI3NDQ7U05PV0ZMQUtFO1NvOzA7T047Ozs7O047Ozs7OworMjc0NTtUSUdIVCBUUklGT0xJQVRFIFNOT1dGTEFLRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NDY7SEVBVlkgQ0hFVlJPTiBTTk9XRkxBS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ3O1NQQVJLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ4O0hFQVZZIFNQQVJLTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzQ5O0JBTExPT04tU1BPS0VEIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0QTtFSUdIVCBURUFSRFJPUC1TUE9LRUQgUFJPUEVMTEVSIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0QjtIRUFWWSBFSUdIVCBURUFSRFJPUC1TUE9LRUQgUFJPUEVMTEVSIEFTVEVSSVNLO1NvOzA7T047Ozs7O047Ozs7OworMjc0RDtTSEFET1dFRCBXSElURSBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzRGO0xPV0VSIFJJR0hUIERST1AtU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MDtVUFBFUiBSSUdIVCBEUk9QLVNIQURPV0VEIFdISVRFIFNRVUFSRTtTbzswO09OOzs7OztOOzs7OzsKKzI3NTE7TE9XRVIgUklHSFQgU0hBRE9XRUQgV0hJVEUgU1FVQVJFO1NvOzA7T047Ozs7O047Ozs7OworMjc1MjtVUFBFUiBSSUdIVCBTSEFET1dFRCBXSElURSBTUVVBUkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzU2O0JMQUNLIERJQU1PTkQgTUlOVVMgV0hJVEUgWDtTbzswO09OOzs7OztOOzs7OzsKKzI3NTg7TElHSFQgVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1OTtNRURJVU0gVkVSVElDQUwgQkFSO1NvOzA7T047Ozs7O047Ozs7OworMjc1QTtIRUFWWSBWRVJUSUNBTCBCQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVCO0hFQVZZIFNJTkdMRSBUVVJORUQgQ09NTUEgUVVPVEFUSU9OIE1BUksgT1JOQU1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzVDO0hFQVZZIFNJTkdMRSBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUQ7SEVBVlkgRE9VQkxFIFRVUk5FRCBDT01NQSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NUU7SEVBVlkgRE9VQkxFIENPTU1BIFFVT1RBVElPTiBNQVJLIE9STkFNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMjc2MTtDVVJWRUQgU1RFTSBQQVJBR1JBUEggU0lHTiBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjI7SEVBVlkgRVhDTEFNQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjM7SEVBVlkgSEVBUlQgRVhDTEFNQVRJT04gTUFSSyBPUk5BTUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzI3NjQ7SEVBVlkgQkxBQ0sgSEVBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY1O1JPVEFURUQgSEVBVlkgQkxBQ0sgSEVBUlQgQlVMTEVUO1NvOzA7T047Ozs7O047Ozs7OworMjc2NjtGTE9SQUwgSEVBUlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyNzY3O1JPVEFURUQgRkxPUkFMIEhFQVJUIEJVTExFVDtTbzswO09OOzs7OztOOzs7OzsKKzI3Njg7TUVESVVNIExFRlQgUEFSRU5USEVTSVMgT1JOQU1FTlQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyNzY5O01FRElVTSBSSUdIVCBQQVJFTlRIRVNJUyBPUk5BTUVOVDtQZTswO09OOzs7OztZOzs7OzsKKzI3NkE7TUVESVVNIEZMQVRURU5FRCBMRUZUIFBBUkVOVEhFU0lTIE9STkFNRU5UO1BzOzA7T047Ozs7O1k7Ozs7OworMjc2QjtNRURJVU0gRkxBVFRFTkVEIFJJR0hUIFBBUkVOVEhFU0lTIE9STkFNRU5UO1BlOzA7T047Ozs7O1k7Ozs7OworMjc2QztNRURJVU0gTEVGVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUIE9STkFNRU5UO1BzOzA7T047Ozs7O1k7Ozs7OworMjc2RDtNRURJVU0gUklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVCBPUk5BTUVOVDtQZTswO09OOzs7OztZOzs7OzsKKzI3NkU7SEVBVlkgTEVGVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSyBPUk5BTUVOVDtQczswO09OOzs7OztZOzs7OzsKKzI3NkY7SEVBVlkgUklHSFQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUksgT1JOQU1FTlQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyNzcwO0hFQVZZIExFRlQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVCBPUk5BTUVOVDtQczswO09OOzs7OztZOzs7OzsKKzI3NzE7SEVBVlkgUklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVCBPUk5BTUVOVDtQZTswO09OOzs7OztZOzs7OzsKKzI3NzI7TElHSFQgTEVGVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUIE9STkFNRU5UO1BzOzA7T047Ozs7O1k7Ozs7OworMjc3MztMSUdIVCBSSUdIVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUIE9STkFNRU5UO1BlOzA7T047Ozs7O1k7Ozs7OworMjc3NDtNRURJVU0gTEVGVCBDVVJMWSBCUkFDS0VUIE9STkFNRU5UO1BzOzA7T047Ozs7O1k7Ozs7OworMjc3NTtNRURJVU0gUklHSFQgQ1VSTFkgQlJBQ0tFVCBPUk5BTUVOVDtQZTswO09OOzs7OztZOzs7OzsKKzI3NzY7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIE9ORTtObzswO09OOzs7MTsxO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIE9ORTs7OzsKKzI3Nzc7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFRXTztObzswO09OOzs7MjsyO047SU5WRVJTRSBDSVJDTEVEIERJR0lUIFRXTzs7OzsKKzI3Nzg7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIFRIUkVFO05vOzA7T047OzszOzM7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgVEhSRUU7Ozs7CisyNzc5O0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBGT1VSO05vOzA7T047Ozs0OzQ7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRk9VUjs7OzsKKzI3N0E7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBGSVZFOzs7OworMjc3QjtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgU0lYO05vOzA7T047Ozs2OzY7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgU0lYOzs7OworMjc3QztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgRElHSVQgU0VWRU47Tm87MDtPTjs7Ozc7NztOO0lOVkVSU0UgQ0lSQ0xFRCBESUdJVCBTRVZFTjs7OzsKKzI3N0Q7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgRUlHSFQ7Ozs7CisyNzdFO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBESUdJVCBOSU5FO05vOzA7T047Ozs5Ozk7TjtJTlZFUlNFIENJUkNMRUQgRElHSVQgTklORTs7OzsKKzI3N0Y7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIE5VTUJFUiBURU47Tm87MDtPTjs7OzsxMDtOO0lOVkVSU0UgQ0lSQ0xFRCBOVU1CRVIgVEVOOzs7OworMjc4MDtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Tm87MDtPTjs7OzE7MTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Ozs7CisyNzgxO0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTztObzswO09OOzs7MjsyO047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTzs7OzsKKzI3ODI7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Tm87MDtPTjs7OzM7MztOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTs7OzsKKzI3ODM7RElOR0JBVCBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRk9VUjtObzswO09OOzs7NDs0O047Q0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Ozs7CisyNzg0O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBGSVZFOzs7OworMjc4NTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Tm87MDtPTjs7OzY7NjtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTSVg7Ozs7CisyNzg2O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNFVkVOO05vOzA7T047Ozs3Ozc7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Ozs7CisyNzg3O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgRUlHSFQ7Ozs7CisyNzg4O0RJTkdCQVQgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIE5JTkU7Tm87MDtPTjs7Ozk7OTtOO0NJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBOSU5FOzs7OworMjc4OTtESU5HQkFUIENJUkNMRUQgU0FOUy1TRVJJRiBOVU1CRVIgVEVOO05vOzA7T047Ozs7MTA7TjtDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjs7OzsKKzI3OEE7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgT05FO05vOzA7T047OzsxOzE7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBPTkU7Ozs7CisyNzhCO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFRXTztObzswO09OOzs7MjsyO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVFdPOzs7OworMjc4QztESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBUSFJFRTtObzswO09OOzs7MzszO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7Ozs7CisyNzhEO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Tm87MDtPTjs7OzQ7NDtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZPVVI7Ozs7CisyNzhFO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Tm87MDtPTjs7OzU7NTtOO0lOVkVSU0UgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEZJVkU7Ozs7CisyNzhGO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIFNJWDtObzswO09OOzs7Njs2O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0lYOzs7OworMjc5MDtESU5HQkFUIE5FR0FUSVZFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBTRVZFTjtObzswO09OOzs7Nzs3O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47Ozs7CisyNzkxO0RJTkdCQVQgTkVHQVRJVkUgQ0lSQ0xFRCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05vOzA7T047Ozs4Ozg7TjtJTlZFUlNFIENJUkNMRUQgU0FOUy1TRVJJRiBESUdJVCBFSUdIVDs7OzsKKzI3OTI7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTtObzswO09OOzs7OTs5O047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgRElHSVQgTklORTs7OzsKKzI3OTM7RElOR0JBVCBORUdBVElWRSBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjtObzswO09OOzs7OzEwO047SU5WRVJTRSBDSVJDTEVEIFNBTlMtU0VSSUYgTlVNQkVSIFRFTjs7OzsKKzI3OTQ7SEVBVlkgV0lERS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFdJREUtSEVBREVEIFJJR0hUIEFSUk9XOzs7OworMjc5ODtIRUFWWSBTT1VUSCBFQVNUIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyNzk5O0hFQVZZIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBSSUdIVCBBUlJPVzs7OzsKKzI3OUE7SEVBVlkgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFVQUEVSIFJJR0hUIEFSUk9XOzs7OworMjc5QjtEUkFGVElORyBQT0lOVCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047RFJBRlRJTkcgUE9JTlQgUklHSFQgQVJST1c7Ozs7CisyNzlDO0hFQVZZIFJPVU5ELVRJUFBFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgUk9VTkQtVElQUEVEIFJJR0hUIEFSUk9XOzs7OworMjc5RDtUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1RSSUFOR0xFLUhFQURFRCBSSUdIVCBBUlJPVzs7OzsKKzI3OUU7SEVBVlkgVFJJQU5HTEUtSEVBREVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyNzlGO0RBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0RBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyN0EwO0hFQVZZIERBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIERBU0hFRCBUUklBTkdMRS1IRUFERUQgUklHSFQgQVJST1c7Ozs7CisyN0ExO0JMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTI7VEhSRUUtRCBUT1AtTElHSFRFRCBSSUdIVFdBUkRTIEFSUk9XSEVBRDtTbzswO09OOzs7OztOO1RIUkVFLUQgVE9QLUxJR0hURUQgUklHSFQgQVJST1dIRUFEOzs7OworMjdBMztUSFJFRS1EIEJPVFRPTS1MSUdIVEVEIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047VEhSRUUtRCBCT1RUT00tTElHSFRFRCBSSUdIVCBBUlJPV0hFQUQ7Ozs7CisyN0E0O0JMQUNLIFJJR0hUV0FSRFMgQVJST1dIRUFEO1NvOzA7T047Ozs7O047QkxBQ0sgUklHSFQgQVJST1dIRUFEOzs7OworMjdBNTtIRUFWWSBCTEFDSyBDVVJWRUQgRE9XTldBUkRTIEFORCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0sgQ1VSVkVEIERPV04gQU5EIFJJR0hUIEFSUk9XOzs7OworMjdBNjtIRUFWWSBCTEFDSyBDVVJWRUQgVVBXQVJEUyBBTkQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLIENVUlZFRCBVUCBBTkQgUklHSFQgQVJST1c7Ozs7CisyN0E3O1NRVUFUIEJMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtTUVVBVCBCTEFDSyBSSUdIVCBBUlJPVzs7OzsKKzI3QTg7SEVBVlkgQ09OQ0FWRS1QT0lOVEVEIEJMQUNLIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBDT05DQVZFLVBPSU5URUQgQkxBQ0sgUklHSFQgQVJST1c7Ozs7CisyN0E5O1JJR0hULVNIQURFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047UklHSFQtU0hBREVEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBQTtMRUZULVNIQURFRCBXSElURSBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047TEVGVC1TSEFERUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FCO0JBQ0stVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtCQUNLLVRJTFRFRCBTSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUM7RlJPTlQtVElMVEVEIFNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtGUk9OVC1USUxURUQgU0hBRE9XRUQgV0hJVEUgUklHSFQgQVJST1c7Ozs7CisyN0FEO0hFQVZZIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBMT1dFUiBSSUdIVC1TSEFET1dFRCBXSElURSBSSUdIVCBBUlJPVzs7OzsKKzI3QUU7SEVBVlkgVVBQRVIgUklHSFQtU0hBRE9XRUQgV0hJVEUgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdBRjtOT1RDSEVEIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtOT1RDSEVEIExPV0VSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMTtOT1RDSEVEIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtOT1RDSEVEIFVQUEVSIFJJR0hULVNIQURPV0VEIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMjtDSVJDTEVEIEhFQVZZIFdISVRFIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtDSVJDTEVEIEhFQVZZIFdISVRFIFJJR0hUIEFSUk9XOzs7OworMjdCMztXSElURS1GRUFUSEVSRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO1dISVRFLUZFQVRIRVJFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QjQ7QkxBQ0stRkVBVEhFUkVEIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtCTEFDSy1GRUFUSEVSRUQgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyN0I1O0JMQUNLLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047QkxBQ0stRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCNjtCTEFDSy1GRUFUSEVSRUQgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0JMQUNLLUZFQVRIRVJFRCBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3Qjc7SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFNPVVRIIEVBU1QgQVJST1c7U287MDtPTjs7Ozs7TjtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgTE9XRVIgUklHSFQgQVJST1c7Ozs7CisyN0I4O0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047SEVBVlkgQkxBQ0stRkVBVEhFUkVEIFJJR0hUIEFSUk9XOzs7OworMjdCOTtIRUFWWSBCTEFDSy1GRUFUSEVSRUQgTk9SVEggRUFTVCBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIEJMQUNLLUZFQVRIRVJFRCBVUFBFUiBSSUdIVCBBUlJPVzs7OzsKKzI3QkE7VEVBUkRST1AtQkFSQkVEIFJJR0hUV0FSRFMgQVJST1c7U287MDtPTjs7Ozs7TjtURUFSRFJPUC1CQVJCRUQgUklHSFQgQVJST1c7Ozs7CisyN0JCO0hFQVZZIFRFQVJEUk9QLVNIQU5LRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFRFQVJEUk9QLVNIQU5LRUQgUklHSFQgQVJST1c7Ozs7CisyN0JDO1dFREdFLVRBSUxFRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047V0VER0UtVEFJTEVEIFJJR0hUIEFSUk9XOzs7OworMjdCRDtIRUFWWSBXRURHRS1UQUlMRUQgUklHSFRXQVJEUyBBUlJPVztTbzswO09OOzs7OztOO0hFQVZZIFdFREdFLVRBSUxFRCBSSUdIVCBBUlJPVzs7OzsKKzI3QkU7T1BFTi1PVVRMSU5FRCBSSUdIVFdBUkRTIEFSUk9XO1NvOzA7T047Ozs7O047T1BFTi1PVVRMSU5FRCBSSUdIVCBBUlJPVzs7OzsKKzI3QzA7VEhSRUUgRElNRU5TSU9OQUwgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyN0MxO1dISVRFIFRSSUFOR0xFIENPTlRBSU5JTkcgU01BTEwgV0hJVEUgVFJJQU5HTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0MyO1BFUlBFTkRJQ1VMQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0MzO09QRU4gU1VCU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjdDNDtPUEVOIFNVUEVSU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMjdDNTtMRUZUIFMtU0hBUEVEIEJBRyBERUxJTUlURVI7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyN0M2O1JJR0hUIFMtU0hBUEVEIEJBRyBERUxJTUlURVI7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyN0QwO1dISVRFIERJQU1PTkQgV0lUSCBDRU5UUkVEIERPVDtTbTswO09OOzs7OztOOzs7OzsKKzI3RDE7QU5EIFdJVEggRE9UO1NtOzA7T047Ozs7O047Ozs7OworMjdEMjtFTEVNRU5UIE9GIE9QRU5JTkcgVVBXQVJEUztTbTswO09OOzs7OztOOzs7OzsKKzI3RDM7TE9XRVIgUklHSFQgQ09STkVSIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7Ozs7OworMjdENDtVUFBFUiBMRUZUIENPUk5FUiBXSVRIIERPVDtTbTswO09OOzs7OztZOzs7OzsKKzI3RDU7TEVGVCBPVVRFUiBKT0lOO1NtOzA7T047Ozs7O1k7Ozs7OworMjdENjtSSUdIVCBPVVRFUiBKT0lOO1NtOzA7T047Ozs7O1k7Ozs7OworMjdENztGVUxMIE9VVEVSIEpPSU47U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0Q4O0xBUkdFIFVQIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0Q5O0xBUkdFIERPV04gVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzI3REE7TEVGVCBBTkQgUklHSFQgRE9VQkxFIFRVUk5TVElMRTtTbTswO09OOzs7OztOOzs7OzsKKzI3REI7TEVGVCBBTkQgUklHSFQgVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzI3REM7TEVGVCBNVUxUSU1BUDtTbTswO09OOzs7OztZOzs7OzsKKzI3REQ7TE9ORyBSSUdIVCBUQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjdERTtMT05HIExFRlQgVEFDSztTbTswO09OOzs7OztZOzs7OzsKKzI3REY7VVAgVEFDSyBXSVRIIENJUkNMRSBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzI3RTA7TE9aRU5HRSBESVZJREVEIEJZIEhPUklaT05UQUwgUlVMRTtTbTswO09OOzs7OztOOzs7OzsKKzI3RTE7V0hJVEUgQ09OQ0FWRS1TSURFRCBESUFNT05EO1NtOzA7T047Ozs7O047Ozs7OworMjdFMjtXSElURSBDT05DQVZFLVNJREVEIERJQU1PTkQgV0lUSCBMRUZUV0FSRFMgVElDSztTbTswO09OOzs7OztZOzs7OzsKKzI3RTM7V0hJVEUgQ09OQ0FWRS1TSURFRCBESUFNT05EIFdJVEggUklHSFRXQVJEUyBUSUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjdFNDtXSElURSBTUVVBUkUgV0lUSCBMRUZUV0FSRFMgVElDSztTbTswO09OOzs7OztZOzs7OzsKKzI3RTU7V0hJVEUgU1FVQVJFIFdJVEggUklHSFRXQVJEUyBUSUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjdFNjtNQVRIRU1BVElDQUwgTEVGVCBXSElURSBTUVVBUkUgQlJBQ0tFVDtQczswO09OOzs7OztZOzs7OzsKKzI3RTc7TUFUSEVNQVRJQ0FMIFJJR0hUIFdISVRFIFNRVUFSRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjdFODtNQVRIRU1BVElDQUwgTEVGVCBBTkdMRSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7Ozs7OworMjdFOTtNQVRIRU1BVElDQUwgUklHSFQgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzs7OztZOzs7OzsKKzI3RUE7TUFUSEVNQVRJQ0FMIExFRlQgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyN0VCO01BVEhFTUFUSUNBTCBSSUdIVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzs7OztZOzs7OzsKKzI3RjA7VVBXQVJEUyBRVUFEUlVQTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0YxO0RPV05XQVJEUyBRVUFEUlVQTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0YyO0FOVElDTE9DS1dJU0UgR0FQUEVEIENJUkNMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI3RjM7Q0xPQ0tXSVNFIEdBUFBFRCBDSVJDTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0Y0O1JJR0hUIEFSUk9XIFdJVEggQ0lSQ0xFRCBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMjdGNTtMT05HIExFRlRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI3RjY7TE9ORyBSSUdIVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjdGNztMT05HIExFRlQgUklHSFQgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0Y4O0xPTkcgTEVGVFdBUkRTIERPVUJMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI3Rjk7TE9ORyBSSUdIVFdBUkRTIERPVUJMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI3RkE7TE9ORyBMRUZUIFJJR0hUIERPVUJMRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI3RkI7TE9ORyBMRUZUV0FSRFMgQVJST1cgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyN0ZDO0xPTkcgUklHSFRXQVJEUyBBUlJPVyBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI3RkQ7TE9ORyBMRUZUV0FSRFMgRE9VQkxFIEFSUk9XIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjdGRTtMT05HIFJJR0hUV0FSRFMgRE9VQkxFIEFSUk9XIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjdGRjtMT05HIFJJR0hUV0FSRFMgU1FVSUdHTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyODAwO0JSQUlMTEUgUEFUVEVSTiBCTEFOSztTbzswO0w7Ozs7O047Ozs7OworMjgwMTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xO1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODAyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI7U287MDtMOzs7OztOOzs7OzsKKzI4MDM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI7U287MDtMOzs7OztOOzs7OzsKKzI4MDQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMztTbzswO0w7Ozs7O047Ozs7OworMjgwNTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMztTbzswO0w7Ozs7O047Ozs7OworMjgwNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMztTbzswO0w7Ozs7O047Ozs7OworMjgwNztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM7U287MDtMOzs7OztOOzs7OzsKKzI4MDg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDtTbzswO0w7Ozs7O047Ozs7OworMjgwOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDtTbzswO0w7Ozs7O047Ozs7OworMjgwQTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDtTbzswO0w7Ozs7O047Ozs7OworMjgwQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ7U287MDtMOzs7OztOOzs7OzsKKzI4MEM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ7U287MDtMOzs7OztOOzs7OzsKKzI4MEQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODBFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDtTbzswO0w7Ozs7O047Ozs7OworMjgwRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODEwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU7U287MDtMOzs7OztOOzs7OzsKKzI4MTE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU7U287MDtMOzs7OztOOzs7OzsKKzI4MTI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU7U287MDtMOzs7OztOOzs7OzsKKzI4MTM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODE0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODE1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTtTbzswO0w7Ozs7O047Ozs7OworMjgxNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU7U287MDtMOzs7OztOOzs7OzsKKzI4MTc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTtTbzswO0w7Ozs7O047Ozs7OworMjgxODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTtTbzswO0w7Ozs7O047Ozs7OworMjgxOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU7U287MDtMOzs7OztOOzs7OzsKKzI4MUE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODFCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU7U287MDtMOzs7OztOOzs7OzsKKzI4MUM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODFEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU7U287MDtMOzs7OztOOzs7OzsKKzI4MUU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTtTbzswO0w7Ozs7O047Ozs7OworMjgxRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTtTbzswO0w7Ozs7O047Ozs7OworMjgyMDtCUkFJTExFIFBBVFRFUk4gRE9UUy02O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODIxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODIyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODIzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNjtTbzswO0w7Ozs7O047Ozs7OworMjgyNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNjtTbzswO0w7Ozs7O047Ozs7OworMjgyNTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzY7U287MDtMOzs7OztOOzs7OzsKKzI4MjY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODI3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzY7U287MDtMOzs7OztOOzs7OzsKKzI4Mjg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDY7U287MDtMOzs7OztOOzs7OzsKKzI4Mjk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODJBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NjtTbzswO0w7Ozs7O047Ozs7OworMjgyQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODJDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NjtTbzswO0w7Ozs7O047Ozs7OworMjgyRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODJFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDY7U287MDtMOzs7OztOOzs7OzsKKzI4MkY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDY7U287MDtMOzs7OztOOzs7OzsKKzI4MzA7QlJBSUxMRSBQQVRURVJOIERPVFMtNTY7U287MDtMOzs7OztOOzs7OzsKKzI4MzE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODMyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1NjtTbzswO0w7Ozs7O047Ozs7OworMjgzMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODM0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1NjtTbzswO0w7Ozs7O047Ozs7OworMjgzNTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODM2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNTY7U287MDtMOzs7OztOOzs7OzsKKzI4Mzc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTY7U287MDtMOzs7OztOOzs7OzsKKzI4Mzg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODM5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NTY7U287MDtMOzs7OztOOzs7OzsKKzI4M0E7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1NjtTbzswO0w7Ozs7O047Ozs7OworMjgzQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1NjtTbzswO0w7Ozs7O047Ozs7OworMjgzQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODNEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODNFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU2O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODNGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ1NjtTbzswO0w7Ozs7O047Ozs7OworMjg0MDtCUkFJTExFIFBBVFRFUk4gRE9UUy03O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODQxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODQyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODQzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNztTbzswO0w7Ozs7O047Ozs7OworMjg0NDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNztTbzswO0w7Ozs7O047Ozs7OworMjg0NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzc7U287MDtMOzs7OztOOzs7OzsKKzI4NDY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODQ3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzc7U287MDtMOzs7OztOOzs7OzsKKzI4NDg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDc7U287MDtMOzs7OztOOzs7OzsKKzI4NDk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODRBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NztTbzswO0w7Ozs7O047Ozs7OworMjg0QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODRDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NztTbzswO0w7Ozs7O047Ozs7OworMjg0RDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODRFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDc7U287MDtMOzs7OztOOzs7OzsKKzI4NEY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDc7U287MDtMOzs7OztOOzs7OzsKKzI4NTA7QlJBSUxMRSBQQVRURVJOIERPVFMtNTc7U287MDtMOzs7OztOOzs7OzsKKzI4NTE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODUyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1NztTbzswO0w7Ozs7O047Ozs7OworMjg1MztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODU0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1NztTbzswO0w7Ozs7O047Ozs7OworMjg1NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODU2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNTc7U287MDtMOzs7OztOOzs7OzsKKzI4NTc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTc7U287MDtMOzs7OztOOzs7OzsKKzI4NTg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODU5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NTc7U287MDtMOzs7OztOOzs7OzsKKzI4NUE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1NztTbzswO0w7Ozs7O047Ozs7OworMjg1QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1NztTbzswO0w7Ozs7O047Ozs7OworMjg1QztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODVEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODVFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODVGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ1NztTbzswO0w7Ozs7O047Ozs7OworMjg2MDtCUkFJTExFIFBBVFRFUk4gRE9UUy02NztTbzswO0w7Ozs7O047Ozs7OworMjg2MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNjc7U287MDtMOzs7OztOOzs7OzsKKzI4NjI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODYzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNjc7U287MDtMOzs7OztOOzs7OzsKKzI4NjQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODY1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNjc7U287MDtMOzs7OztOOzs7OzsKKzI4NjY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM2NztTbzswO0w7Ozs7O047Ozs7OworMjg2NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM2NztTbzswO0w7Ozs7O047Ozs7OworMjg2ODtCUkFJTExFIFBBVFRFUk4gRE9UUy00Njc7U287MDtMOzs7OztOOzs7OzsKKzI4Njk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ2NztTbzswO0w7Ozs7O047Ozs7OworMjg2QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODZCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODZDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0Njc7U287MDtMOzs7OztOOzs7OzsKKzI4NkQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0Njc7U287MDtMOzs7OztOOzs7OzsKKzI4NkU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0Njc7U287MDtMOzs7OztOOzs7OzsKKzI4NkY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODcwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODcyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4NzM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4NzQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3NTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3NjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4Nzg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3OTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3QjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4N0M7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ1Njc7U287MDtMOzs7OztOOzs7OzsKKzI4N0Q7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODdFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU2NztTbzswO0w7Ozs7O047Ozs7OworMjg3RjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0NTY3O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODgwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTg7U287MDtMOzs7OztOOzs7OzsKKzI4ODE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTg7U287MDtMOzs7OztOOzs7OzsKKzI4ODI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjg7U287MDtMOzs7OztOOzs7OzsKKzI4ODM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODg0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODg1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzODtTbzswO0w7Ozs7O047Ozs7OworMjg4NjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzg7U287MDtMOzs7OztOOzs7OzsKKzI4ODc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzODtTbzswO0w7Ozs7O047Ozs7OworMjg4ODtCUkFJTExFIFBBVFRFUk4gRE9UUy00ODtTbzswO0w7Ozs7O047Ozs7OworMjg4OTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDg7U287MDtMOzs7OztOOzs7OzsKKzI4OEE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODhCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDg7U287MDtMOzs7OztOOzs7OzsKKzI4OEM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODhEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDg7U287MDtMOzs7OztOOzs7OzsKKzI4OEU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0ODtTbzswO0w7Ozs7O047Ozs7OworMjg4RjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0ODtTbzswO0w7Ozs7O047Ozs7OworMjg5MDtCUkFJTExFIFBBVFRFUk4gRE9UUy01ODtTbzswO0w7Ozs7O047Ozs7OworMjg5MTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNTg7U287MDtMOzs7OztOOzs7OzsKKzI4OTI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODkzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTg7U287MDtMOzs7OztOOzs7OzsKKzI4OTQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMzU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODk1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTg7U287MDtMOzs7OztOOzs7OzsKKzI4OTY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1ODtTbzswO0w7Ozs7O047Ozs7OworMjg5NztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM1ODtTbzswO0w7Ozs7O047Ozs7OworMjg5ODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTg7U287MDtMOzs7OztOOzs7OzsKKzI4OTk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1ODtTbzswO0w7Ozs7O047Ozs7OworMjg5QTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNDU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODlCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyODlDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTg7U287MDtMOzs7OztOOzs7OzsKKzI4OUQ7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM0NTg7U287MDtMOzs7OztOOzs7OzsKKzI4OUU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTg7U287MDtMOzs7OztOOzs7OzsKKzI4OUY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEEwO0JSQUlMTEUgUEFUVEVSTiBET1RTLTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEExO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE2ODtTbzswO0w7Ozs7O047Ozs7OworMjhBMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNjg7U287MDtMOzs7OztOOzs7OzsKKzI4QTM7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI2ODtTbzswO0w7Ozs7O047Ozs7OworMjhBNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNjg7U287MDtMOzs7OztOOzs7OzsKKzI4QTU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM2ODtTbzswO0w7Ozs7O047Ozs7OworMjhBNjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEE3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEE4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ2ODtTbzswO0w7Ozs7O047Ozs7OworMjhBOTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xNDY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEFBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QUI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QUM7QlJBSUxMRSBQQVRURVJOIERPVFMtMzQ2ODtTbzswO0w7Ozs7O047Ozs7OworMjhBRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ2ODtTbzswO0w7Ozs7O047Ozs7OworMjhBRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ2ODtTbzswO0w7Ozs7O047Ozs7OworMjhBRjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjM0Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QjA7QlJBSUxMRSBQQVRURVJOIERPVFMtNTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEIxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QjI7QlJBSUxMRSBQQVRURVJOIERPVFMtMjU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEI1O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEI2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEI3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCODtCUkFJTExFIFBBVFRFUk4gRE9UUy00NTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEI5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0NTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEJBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEJCO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNDU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDU2ODtTbzswO0w7Ozs7O047Ozs7OworMjhCRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QkU7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM0NTY4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEJGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ1Njg7U287MDtMOzs7OztOOzs7OzsKKzI4QzA7QlJBSUxMRSBQQVRURVJOIERPVFMtNzg7U287MDtMOzs7OztOOzs7OzsKKzI4QzE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEMyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI3ODtTbzswO0w7Ozs7O047Ozs7OworMjhDMztCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEM0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM3ODtTbzswO0w7Ozs7O047Ozs7OworMjhDNTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEM2O0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNzg7U287MDtMOzs7OztOOzs7OzsKKzI4Qzc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNzg7U287MDtMOzs7OztOOzs7OzsKKzI4Qzg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEM5O0JSQUlMTEUgUEFUVEVSTiBET1RTLTE0Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4Q0E7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ3ODtTbzswO0w7Ozs7O047Ozs7OworMjhDQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ3ODtTbzswO0w7Ozs7O047Ozs7OworMjhDQztCUkFJTExFIFBBVFRFUk4gRE9UUy0zNDc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOENEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOENFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOENGO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzQ3ODtTbzswO0w7Ozs7O047Ozs7OworMjhEMDtCUkFJTExFIFBBVFRFUk4gRE9UUy01Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RDE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhEMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEQzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEQ0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RDU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RDY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RDc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEQ4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RDk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4REE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4REI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0NTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOERDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEREO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhERTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ1Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4REY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFMDtCUkFJTExFIFBBVFRFUk4gRE9UUy02Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RTE7QlJBSUxMRSBQQVRURVJOIERPVFMtMTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFMjtCUkFJTExFIFBBVFRFUk4gRE9UUy0yNjc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEUzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNjc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEU0O0JSQUlMTEUgUEFUVEVSTiBET1RTLTM2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RTU7QlJBSUxMRSBQQVRURVJOIERPVFMtMTM2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RTY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RTc7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNjc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEU4O0JSQUlMTEUgUEFUVEVSTiBET1RTLTQ2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RTk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RUE7QlJBSUxMRSBQQVRURVJOIERPVFMtMjQ2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RUI7QlJBSUxMRSBQQVRURVJOIERPVFMtMTI0Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEVDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEVEO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEzNDY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhFRTtCUkFJTExFIFBBVFRFUk4gRE9UUy0yMzQ2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RUY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGMDtCUkFJTExFIFBBVFRFUk4gRE9UUy01Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEYxO0JSQUlMTEUgUEFUVEVSTiBET1RTLTE1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEYyO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEYzO0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyNTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGNDtCUkFJTExFIFBBVFRFUk4gRE9UUy0zNTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGNTtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RjY7QlJBSUxMRSBQQVRURVJOIERPVFMtMjM1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEY3O0JSQUlMTEUgUEFUVEVSTiBET1RTLTEyMzU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4Rjg7QlJBSUxMRSBQQVRURVJOIERPVFMtNDU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4Rjk7QlJBSUxMRSBQQVRURVJOIERPVFMtMTQ1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEZBO0JSQUlMTEUgUEFUVEVSTiBET1RTLTI0NTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGQjtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMjQ1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEZDO0JSQUlMTEUgUEFUVEVSTiBET1RTLTM0NTY3ODtTbzswO0w7Ozs7O047Ozs7OworMjhGRDtCUkFJTExFIFBBVFRFUk4gRE9UUy0xMzQ1Njc4O1NvOzA7TDs7Ozs7Tjs7Ozs7CisyOEZFO0JSQUlMTEUgUEFUVEVSTiBET1RTLTIzNDU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI4RkY7QlJBSUxMRSBQQVRURVJOIERPVFMtMTIzNDU2Nzg7U287MDtMOzs7OztOOzs7OzsKKzI5MDA7UklHSFRXQVJEUyBUV08tSEVBREVEIEFSUk9XIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkwMTtSSUdIVFdBUkRTIFRXTy1IRUFERUQgQVJST1cgV0lUSCBET1VCTEUgVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkwMjtMRUZUV0FSRFMgRE9VQkxFIEFSUk9XIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkwMztSSUdIVFdBUkRTIERPVUJMRSBBUlJPVyBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI5MDQ7TEVGVCBSSUdIVCBET1VCTEUgQVJST1cgV0lUSCBWRVJUSUNBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTA1O1JJR0hUV0FSRFMgVFdPLUhFQURFRCBBUlJPVyBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5MDY7TEVGVFdBUkRTIERPVUJMRSBBUlJPVyBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5MDc7UklHSFRXQVJEUyBET1VCTEUgQVJST1cgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTA4O0RPV05XQVJEUyBBUlJPVyBXSVRIIEhPUklaT05UQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkwOTtVUFdBUkRTIEFSUk9XIFdJVEggSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTBBO1VQV0FSRFMgVFJJUExFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkwQjtET1dOV0FSRFMgVFJJUExFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkwQztMRUZUV0FSRFMgRE9VQkxFIERBU0ggQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTBEO1JJR0hUV0FSRFMgRE9VQkxFIERBU0ggQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTBFO0xFRlRXQVJEUyBUUklQTEUgREFTSCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MEY7UklHSFRXQVJEUyBUUklQTEUgREFTSCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MTA7UklHSFRXQVJEUyBUV08tSEVBREVEIFRSSVBMRSBEQVNIIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkxMTtSSUdIVFdBUkRTIEFSUk9XIFdJVEggRE9UVEVEIFNURU07U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTEyO1VQV0FSRFMgQVJST1cgVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjkxMztET1dOV0FSRFMgQVJST1cgVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjkxNDtSSUdIVFdBUkRTIEFSUk9XIFdJVEggVEFJTCBXSVRIIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI5MTU7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFRBSUwgV0lUSCBET1VCTEUgVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkxNjtSSUdIVFdBUkRTIFRXTy1IRUFERUQgQVJST1cgV0lUSCBUQUlMO1NtOzA7T047Ozs7O047Ozs7OworMjkxNztSSUdIVFdBUkRTIFRXTy1IRUFERUQgQVJST1cgV0lUSCBUQUlMIFdJVEggVkVSVElDQUwgU1RST0tFO1NtOzA7T047Ozs7O047Ozs7OworMjkxODtSSUdIVFdBUkRTIFRXTy1IRUFERUQgQVJST1cgV0lUSCBUQUlMIFdJVEggRE9VQkxFIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzI5MTk7TEVGVFdBUkRTIEFSUk9XLVRBSUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTFBO1JJR0hUV0FSRFMgQVJST1ctVEFJTDtTbTswO09OOzs7OztOOzs7OzsKKzI5MUI7TEVGVFdBUkRTIERPVUJMRSBBUlJPVy1UQUlMO1NtOzA7T047Ozs7O047Ozs7OworMjkxQztSSUdIVFdBUkRTIERPVUJMRSBBUlJPVy1UQUlMO1NtOzA7T047Ozs7O047Ozs7OworMjkxRDtMRUZUV0FSRFMgQVJST1cgVE8gQkxBQ0sgRElBTU9ORDtTbTswO09OOzs7OztOOzs7OzsKKzI5MUU7UklHSFRXQVJEUyBBUlJPVyBUTyBCTEFDSyBESUFNT05EO1NtOzA7T047Ozs7O047Ozs7OworMjkxRjtMRUZUV0FSRFMgQVJST1cgRlJPTSBCQVIgVE8gQkxBQ0sgRElBTU9ORDtTbTswO09OOzs7OztOOzs7OzsKKzI5MjA7UklHSFRXQVJEUyBBUlJPVyBGUk9NIEJBUiBUTyBCTEFDSyBESUFNT05EO1NtOzA7T047Ozs7O047Ozs7OworMjkyMTtOT1JUSCBXRVNUIEFORCBTT1VUSCBFQVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkyMjtOT1JUSCBFQVNUIEFORCBTT1VUSCBXRVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkyMztOT1JUSCBXRVNUIEFSUk9XIFdJVEggSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzI5MjQ7Tk9SVEggRUFTVCBBUlJPVyBXSVRIIEhPT0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTI1O1NPVVRIIEVBU1QgQVJST1cgV0lUSCBIT09LO1NtOzA7T047Ozs7O047Ozs7OworMjkyNjtTT1VUSCBXRVNUIEFSUk9XIFdJVEggSE9PSztTbTswO09OOzs7OztOOzs7OzsKKzI5Mjc7Tk9SVEggV0VTVCBBUlJPVyBBTkQgTk9SVEggRUFTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5Mjg7Tk9SVEggRUFTVCBBUlJPVyBBTkQgU09VVEggRUFTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5Mjk7U09VVEggRUFTVCBBUlJPVyBBTkQgU09VVEggV0VTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MkE7U09VVEggV0VTVCBBUlJPVyBBTkQgTk9SVEggV0VTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MkI7UklTSU5HIERJQUdPTkFMIENST1NTSU5HIEZBTExJTkcgRElBR09OQUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTJDO0ZBTExJTkcgRElBR09OQUwgQ1JPU1NJTkcgUklTSU5HIERJQUdPTkFMO1NtOzA7T047Ozs7O047Ozs7OworMjkyRDtTT1VUSCBFQVNUIEFSUk9XIENST1NTSU5HIE5PUlRIIEVBU1QgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTJFO05PUlRIIEVBU1QgQVJST1cgQ1JPU1NJTkcgU09VVEggRUFTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MkY7RkFMTElORyBESUFHT05BTCBDUk9TU0lORyBOT1JUSCBFQVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkzMDtSSVNJTkcgRElBR09OQUwgQ1JPU1NJTkcgU09VVEggRUFTVCBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5MzE7Tk9SVEggRUFTVCBBUlJPVyBDUk9TU0lORyBOT1JUSCBXRVNUIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkzMjtOT1JUSCBXRVNUIEFSUk9XIENST1NTSU5HIE5PUlRIIEVBU1QgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTMzO1dBVkUgQVJST1cgUE9JTlRJTkcgRElSRUNUTFkgUklHSFQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTM0O0FSUk9XIFBPSU5USU5HIFJJR0hUV0FSRFMgVEhFTiBDVVJWSU5HIFVQV0FSRFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTM1O0FSUk9XIFBPSU5USU5HIFJJR0hUV0FSRFMgVEhFTiBDVVJWSU5HIERPV05XQVJEUztTbTswO09OOzs7OztOOzs7OzsKKzI5MzY7QVJST1cgUE9JTlRJTkcgRE9XTldBUkRTIFRIRU4gQ1VSVklORyBMRUZUV0FSRFM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTM3O0FSUk9XIFBPSU5USU5HIERPV05XQVJEUyBUSEVOIENVUlZJTkcgUklHSFRXQVJEUztTbTswO09OOzs7OztOOzs7OzsKKzI5Mzg7UklHSFQtU0lERSBBUkMgQ0xPQ0tXSVNFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkzOTtMRUZULVNJREUgQVJDIEFOVElDTE9DS1dJU0UgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTNBO1RPUCBBUkMgQU5USUNMT0NLV0lTRSBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5M0I7Qk9UVE9NIEFSQyBBTlRJQ0xPQ0tXSVNFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkzQztUT1AgQVJDIENMT0NLV0lTRSBBUlJPVyBXSVRIIE1JTlVTO1NtOzA7T047Ozs7O047Ozs7OworMjkzRDtUT1AgQVJDIEFOVElDTE9DS1dJU0UgQVJST1cgV0lUSCBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMjkzRTtMT1dFUiBSSUdIVCBTRU1JQ0lSQ1VMQVIgQ0xPQ0tXSVNFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjkzRjtMT1dFUiBMRUZUIFNFTUlDSVJDVUxBUiBBTlRJQ0xPQ0tXSVNFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk0MDtBTlRJQ0xPQ0tXSVNFIENMT1NFRCBDSVJDTEUgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTQxO0NMT0NLV0lTRSBDTE9TRUQgQ0lSQ0xFIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk0MjtSSUdIVFdBUkRTIEFSUk9XIEFCT1ZFIFNIT1JUIExFRlRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5NDM7TEVGVFdBUkRTIEFSUk9XIEFCT1ZFIFNIT1JUIFJJR0hUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTQ0O1NIT1JUIFJJR0hUV0FSRFMgQVJST1cgQUJPVkUgTEVGVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk0NTtSSUdIVFdBUkRTIEFSUk9XIFdJVEggUExVUyBCRUxPVztTbTswO09OOzs7OztOOzs7OzsKKzI5NDY7TEVGVFdBUkRTIEFSUk9XIFdJVEggUExVUyBCRUxPVztTbTswO09OOzs7OztOOzs7OzsKKzI5NDc7UklHSFRXQVJEUyBBUlJPVyBUSFJPVUdIIFg7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTQ4O0xFRlQgUklHSFQgQVJST1cgVEhST1VHSCBTTUFMTCBDSVJDTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTQ5O1VQV0FSRFMgVFdPLUhFQURFRCBBUlJPVyBGUk9NIFNNQUxMIENJUkNMRTtTbTswO09OOzs7OztOOzs7OzsKKzI5NEE7TEVGVCBCQVJCIFVQIFJJR0hUIEJBUkIgRE9XTiBIQVJQT09OO1NtOzA7T047Ozs7O047Ozs7OworMjk0QjtMRUZUIEJBUkIgRE9XTiBSSUdIVCBCQVJCIFVQIEhBUlBPT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTRDO1VQIEJBUkIgUklHSFQgRE9XTiBCQVJCIExFRlQgSEFSUE9PTjtTbTswO09OOzs7OztOOzs7OzsKKzI5NEQ7VVAgQkFSQiBMRUZUIERPV04gQkFSQiBSSUdIVCBIQVJQT09OO1NtOzA7T047Ozs7O047Ozs7OworMjk0RTtMRUZUIEJBUkIgVVAgUklHSFQgQkFSQiBVUCBIQVJQT09OO1NtOzA7T047Ozs7O047Ozs7OworMjk0RjtVUCBCQVJCIFJJR0hUIERPV04gQkFSQiBSSUdIVCBIQVJQT09OO1NtOzA7T047Ozs7O047Ozs7OworMjk1MDtMRUZUIEJBUkIgRE9XTiBSSUdIVCBCQVJCIERPV04gSEFSUE9PTjtTbTswO09OOzs7OztOOzs7OzsKKzI5NTE7VVAgQkFSQiBMRUZUIERPV04gQkFSQiBMRUZUIEhBUlBPT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTUyO0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBUTyBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTUzO1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVAgVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1NDtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUIFRPIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NTU7RE9XTldBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUIFRPIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NTY7TEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV04gVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1NztSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV04gVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1ODtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIExFRlQgVE8gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1OTtET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVCBUTyBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTVBO0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NUI7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NUM7VVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBSSUdIVCBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NUQ7RE9XTldBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk1RTtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTiBGUk9NIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5NUY7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk2MDtVUFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIExFRlQgRlJPTSBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTYxO0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUIEZST00gQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjk2MjtMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVAgQUJPVkUgTEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTYzO1VQV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVCBCRVNJREUgVVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBSSUdIVDtTbTswO09OOzs7OztOOzs7OzsKKzI5NjQ7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBBQk9WRSBSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTY1O0RPV05XQVJEUyBIQVJQT09OIFdJVEggQkFSQiBMRUZUIEJFU0lERSBET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgUklHSFQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTY2O0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBBQk9WRSBSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQO1NtOzA7T047Ozs7O047Ozs7OworMjk2NztMRUZUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTiBBQk9WRSBSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTY4O1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgVVAgQUJPVkUgTEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFVQO1NtOzA7T047Ozs7O047Ozs7OworMjk2OTtSSUdIVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV04gQUJPVkUgTEVGVFdBUkRTIEhBUlBPT04gV0lUSCBCQVJCIERPV047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTZBO0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBBQk9WRSBMT05HIERBU0g7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTZCO0xFRlRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBET1dOIEJFTE9XIExPTkcgREFTSDtTbTswO09OOzs7OztOOzs7OzsKKzI5NkM7UklHSFRXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBVUCBBQk9WRSBMT05HIERBU0g7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTZEO1JJR0hUV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgRE9XTiBCRUxPVyBMT05HIERBU0g7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTZFO1VQV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVCBCRVNJREUgRE9XTldBUkRTIEhBUlBPT04gV0lUSCBCQVJCIFJJR0hUO1NtOzA7T047Ozs7O047Ozs7OworMjk2RjtET1dOV0FSRFMgSEFSUE9PTiBXSVRIIEJBUkIgTEVGVCBCRVNJREUgVVBXQVJEUyBIQVJQT09OIFdJVEggQkFSQiBSSUdIVDtTbTswO09OOzs7OztOOzs7OzsKKzI5NzA7UklHSFQgRE9VQkxFIEFSUk9XIFdJVEggUk9VTkRFRCBIRUFEO1NtOzA7T047Ozs7O047Ozs7OworMjk3MTtFUVVBTFMgU0lHTiBBQk9WRSBSSUdIVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk3MjtUSUxERSBPUEVSQVRPUiBBQk9WRSBSSUdIVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk3MztMRUZUV0FSRFMgQVJST1cgQUJPVkUgVElMREUgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTc0O1JJR0hUV0FSRFMgQVJST1cgQUJPVkUgVElMREUgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTc1O1JJR0hUV0FSRFMgQVJST1cgQUJPVkUgQUxNT1NUIEVRVUFMIFRPO1NtOzA7T047Ozs7O047Ozs7OworMjk3NjtMRVNTLVRIQU4gQUJPVkUgTEVGVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk3NztMRUZUV0FSRFMgQVJST1cgVEhST1VHSCBMRVNTLVRIQU47U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTc4O0dSRUFURVItVEhBTiBBQk9WRSBSSUdIVFdBUkRTIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjk3OTtTVUJTRVQgQUJPVkUgUklHSFRXQVJEUyBBUlJPVztTbTswO09OOzs7OztOOzs7OzsKKzI5N0E7TEVGVFdBUkRTIEFSUk9XIFRIUk9VR0ggU1VCU0VUO1NtOzA7T047Ozs7O047Ozs7OworMjk3QjtTVVBFUlNFVCBBQk9WRSBMRUZUV0FSRFMgQVJST1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTdDO0xFRlQgRklTSCBUQUlMO1NtOzA7T047Ozs7O047Ozs7OworMjk3RDtSSUdIVCBGSVNIIFRBSUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTdFO1VQIEZJU0ggVEFJTDtTbTswO09OOzs7OztOOzs7OzsKKzI5N0Y7RE9XTiBGSVNIIFRBSUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTgwO1RSSVBMRSBWRVJUSUNBTCBCQVIgREVMSU1JVEVSO1NtOzA7T047Ozs7O047Ozs7OworMjk4MTtaIE5PVEFUSU9OIFNQT1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTgyO1ogTk9UQVRJT04gVFlQRSBDT0xPTjtTbTswO09OOzs7OztOOzs7OzsKKzI5ODM7TEVGVCBXSElURSBDVVJMWSBCUkFDS0VUO1BzOzA7T047Ozs7O1k7Ozs7OworMjk4NDtSSUdIVCBXSElURSBDVVJMWSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjk4NTtMRUZUIFdISVRFIFBBUkVOVEhFU0lTO1BzOzA7T047Ozs7O1k7Ozs7OworMjk4NjtSSUdIVCBXSElURSBQQVJFTlRIRVNJUztQZTswO09OOzs7OztZOzs7OzsKKzI5ODc7WiBOT1RBVElPTiBMRUZUIElNQUdFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOTg4O1ogTk9UQVRJT04gUklHSFQgSU1BR0UgQlJBQ0tFVDtQZTswO09OOzs7OztZOzs7OzsKKzI5ODk7WiBOT1RBVElPTiBMRUZUIEJJTkRJTkcgQlJBQ0tFVDtQczswO09OOzs7OztZOzs7OzsKKzI5OEE7WiBOT1RBVElPTiBSSUdIVCBCSU5ESU5HIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOThCO0xFRlQgU1FVQVJFIEJSQUNLRVQgV0lUSCBVTkRFUkJBUjtQczswO09OOzs7OztZOzs7OzsKKzI5OEM7UklHSFQgU1FVQVJFIEJSQUNLRVQgV0lUSCBVTkRFUkJBUjtQZTswO09OOzs7OztZOzs7OzsKKzI5OEQ7TEVGVCBTUVVBUkUgQlJBQ0tFVCBXSVRIIFRJQ0sgSU4gVE9QIENPUk5FUjtQczswO09OOzs7OztZOzs7OzsKKzI5OEU7UklHSFQgU1FVQVJFIEJSQUNLRVQgV0lUSCBUSUNLIElOIEJPVFRPTSBDT1JORVI7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOThGO0xFRlQgU1FVQVJFIEJSQUNLRVQgV0lUSCBUSUNLIElOIEJPVFRPTSBDT1JORVI7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOTkwO1JJR0hUIFNRVUFSRSBCUkFDS0VUIFdJVEggVElDSyBJTiBUT1AgQ09STkVSO1BlOzA7T047Ozs7O1k7Ozs7OworMjk5MTtMRUZUIEFOR0xFIEJSQUNLRVQgV0lUSCBET1Q7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOTkyO1JJR0hUIEFOR0xFIEJSQUNLRVQgV0lUSCBET1Q7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOTkzO0xFRlQgQVJDIExFU1MtVEhBTiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7Ozs7OworMjk5NDtSSUdIVCBBUkMgR1JFQVRFUi1USEFOIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTs7Ozs7CisyOTk1O0RPVUJMRSBMRUZUIEFSQyBHUkVBVEVSLVRIQU4gQlJBQ0tFVDtQczswO09OOzs7OztZOzs7OzsKKzI5OTY7RE9VQkxFIFJJR0hUIEFSQyBMRVNTLVRIQU4gQlJBQ0tFVDtQZTswO09OOzs7OztZOzs7OzsKKzI5OTc7TEVGVCBCTEFDSyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BzOzA7T047Ozs7O1k7Ozs7OworMjk5ODtSSUdIVCBCTEFDSyBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjk5OTtET1RURUQgRkVOQ0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOTlBO1ZFUlRJQ0FMIFpJR1pBRyBMSU5FO1NtOzA7T047Ozs7O047Ozs7OworMjk5QjtNRUFTVVJFRCBBTkdMRSBPUEVOSU5HIExFRlQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyOTlDO1JJR0hUIEFOR0xFIFZBUklBTlQgV0lUSCBTUVVBUkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyOTlEO01FQVNVUkVEIFJJR0hUIEFOR0xFIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7Ozs7OworMjk5RTtBTkdMRSBXSVRIIFMgSU5TSURFO1NtOzA7T047Ozs7O1k7Ozs7OworMjk5RjtBQ1VURSBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzI5QTA7U1BIRVJJQ0FMIEFOR0xFIE9QRU5JTkcgTEVGVDtTbTswO09OOzs7OztZOzs7OzsKKzI5QTE7U1BIRVJJQ0FMIEFOR0xFIE9QRU5JTkcgVVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUEyO1RVUk5FRCBBTkdMRTtTbTswO09OOzs7OztZOzs7OzsKKzI5QTM7UkVWRVJTRUQgQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUE0O0FOR0xFIFdJVEggVU5ERVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUE1O1JFVkVSU0VEIEFOR0xFIFdJVEggVU5ERVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUE2O09CTElRVUUgQU5HTEUgT1BFTklORyBVUDtTbTswO09OOzs7OztZOzs7OzsKKzI5QTc7T0JMSVFVRSBBTkdMRSBPUEVOSU5HIERPV047U207MDtPTjs7Ozs7WTs7Ozs7CisyOUE4O01FQVNVUkVEIEFOR0xFIFdJVEggT1BFTiBBUk0gRU5ESU5HIElOIEFSUk9XIFBPSU5USU5HIFVQIEFORCBSSUdIVDtTbTswO09OOzs7OztZOzs7OzsKKzI5QTk7TUVBU1VSRUQgQU5HTEUgV0lUSCBPUEVOIEFSTSBFTkRJTkcgSU4gQVJST1cgUE9JTlRJTkcgVVAgQU5EIExFRlQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUFBO01FQVNVUkVEIEFOR0xFIFdJVEggT1BFTiBBUk0gRU5ESU5HIElOIEFSUk9XIFBPSU5USU5HIERPV04gQU5EIFJJR0hUO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBQjtNRUFTVVJFRCBBTkdMRSBXSVRIIE9QRU4gQVJNIEVORElORyBJTiBBUlJPVyBQT0lOVElORyBET1dOIEFORCBMRUZUO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBQztNRUFTVVJFRCBBTkdMRSBXSVRIIE9QRU4gQVJNIEVORElORyBJTiBBUlJPVyBQT0lOVElORyBSSUdIVCBBTkQgVVA7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUFEO01FQVNVUkVEIEFOR0xFIFdJVEggT1BFTiBBUk0gRU5ESU5HIElOIEFSUk9XIFBPSU5USU5HIExFRlQgQU5EIFVQO1NtOzA7T047Ozs7O1k7Ozs7OworMjlBRTtNRUFTVVJFRCBBTkdMRSBXSVRIIE9QRU4gQVJNIEVORElORyBJTiBBUlJPVyBQT0lOVElORyBSSUdIVCBBTkQgRE9XTjtTbTswO09OOzs7OztZOzs7OzsKKzI5QUY7TUVBU1VSRUQgQU5HTEUgV0lUSCBPUEVOIEFSTSBFTkRJTkcgSU4gQVJST1cgUE9JTlRJTkcgTEVGVCBBTkQgRE9XTjtTbTswO09OOzs7OztZOzs7OzsKKzI5QjA7UkVWRVJTRUQgRU1QVFkgU0VUO1NtOzA7T047Ozs7O047Ozs7OworMjlCMTtFTVBUWSBTRVQgV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMjlCMjtFTVBUWSBTRVQgV0lUSCBTTUFMTCBDSVJDTEUgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUIzO0VNUFRZIFNFVCBXSVRIIFJJR0hUIEFSUk9XIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMjlCNDtFTVBUWSBTRVQgV0lUSCBMRUZUIEFSUk9XIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMjlCNTtDSVJDTEUgV0lUSCBIT1JJWk9OVEFMIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5QjY7Q0lSQ0xFRCBWRVJUSUNBTCBCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUI3O0NJUkNMRUQgUEFSQUxMRUw7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUI4O0NJUkNMRUQgUkVWRVJTRSBTT0xJRFVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjlCOTtDSVJDTEVEIFBFUlBFTkRJQ1VMQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUJBO0NJUkNMRSBESVZJREVEIEJZIEhPUklaT05UQUwgQkFSIEFORCBUT1AgSEFMRiBESVZJREVEIEJZIFZFUlRJQ0FMIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5QkI7Q0lSQ0xFIFdJVEggU1VQRVJJTVBPU0VEIFg7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUJDO0NJUkNMRUQgQU5USUNMT0NLV0lTRS1ST1RBVEVEIERJVklTSU9OIFNJR047U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUJEO1VQIEFSUk9XIFRIUk9VR0ggQ0lSQ0xFO1NtOzA7T047Ozs7O047Ozs7OworMjlCRTtDSVJDTEVEIFdISVRFIEJVTExFVDtTbTswO09OOzs7OztOOzs7OzsKKzI5QkY7Q0lSQ0xFRCBCVUxMRVQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUMwO0NJUkNMRUQgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMjlDMTtDSVJDTEVEIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzI5QzI7Q0lSQ0xFIFdJVEggU01BTEwgQ0lSQ0xFIFRPIFRIRSBSSUdIVDtTbTswO09OOzs7OztZOzs7OzsKKzI5QzM7Q0lSQ0xFIFdJVEggVFdPIEhPUklaT05UQUwgU1RST0tFUyBUTyBUSEUgUklHSFQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUM0O1NRVUFSRUQgUklTSU5HIERJQUdPTkFMIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMjlDNTtTUVVBUkVEIEZBTExJTkcgRElBR09OQUwgU0xBU0g7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUM2O1NRVUFSRUQgQVNURVJJU0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUM3O1NRVUFSRUQgU01BTEwgQ0lSQ0xFO1NtOzA7T047Ozs7O047Ozs7OworMjlDODtTUVVBUkVEIFNRVUFSRTtTbTswO09OOzs7OztOOzs7OzsKKzI5Qzk7VFdPIEpPSU5FRCBTUVVBUkVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjlDQTtUUklBTkdMRSBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzI5Q0I7VFJJQU5HTEUgV0lUSCBVTkRFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5Q0M7UyBJTiBUUklBTkdMRTtTbTswO09OOzs7OztOOzs7OzsKKzI5Q0Q7VFJJQU5HTEUgV0lUSCBTRVJJRlMgQVQgQk9UVE9NO1NtOzA7T047Ozs7O047Ozs7OworMjlDRTtSSUdIVCBUUklBTkdMRSBBQk9WRSBMRUZUIFRSSUFOR0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMjlDRjtMRUZUIFRSSUFOR0xFIEJFU0lERSBWRVJUSUNBTCBCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUQwO1ZFUlRJQ0FMIEJBUiBCRVNJREUgUklHSFQgVFJJQU5HTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUQxO0JPV1RJRSBXSVRIIExFRlQgSEFMRiBCTEFDSztTbTswO09OOzs7OztZOzs7OzsKKzI5RDI7Qk9XVElFIFdJVEggUklHSFQgSEFMRiBCTEFDSztTbTswO09OOzs7OztZOzs7OzsKKzI5RDM7QkxBQ0sgQk9XVElFO1NtOzA7T047Ozs7O047Ozs7OworMjlENDtUSU1FUyBXSVRIIExFRlQgSEFMRiBCTEFDSztTbTswO09OOzs7OztZOzs7OzsKKzI5RDU7VElNRVMgV0lUSCBSSUdIVCBIQUxGIEJMQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMjlENjtXSElURSBIT1VSR0xBU1M7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUQ3O0JMQUNLIEhPVVJHTEFTUztTbTswO09OOzs7OztOOzs7OzsKKzI5RDg7TEVGVCBXSUdHTFkgRkVOQ0U7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOUQ5O1JJR0hUIFdJR0dMWSBGRU5DRTtQZTswO09OOzs7OztZOzs7OzsKKzI5REE7TEVGVCBET1VCTEUgV0lHR0xZIEZFTkNFO1BzOzA7T047Ozs7O1k7Ozs7OworMjlEQjtSSUdIVCBET1VCTEUgV0lHR0xZIEZFTkNFO1BlOzA7T047Ozs7O1k7Ozs7OworMjlEQztJTkNPTVBMRVRFIElORklOSVRZO1NtOzA7T047Ozs7O1k7Ozs7OworMjlERDtUSUUgT1ZFUiBJTkZJTklUWTtTbTswO09OOzs7OztOOzs7OzsKKzI5REU7SU5GSU5JVFkgTkVHQVRFRCBXSVRIIFZFUlRJQ0FMIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzI5REY7RE9VQkxFLUVOREVEIE1VTFRJTUFQO1NtOzA7T047Ozs7O047Ozs7OworMjlFMDtTUVVBUkUgV0lUSCBDT05UT1VSRUQgT1VUTElORTtTbTswO09OOzs7OztOOzs7OzsKKzI5RTE7SU5DUkVBU0VTIEFTO1NtOzA7T047Ozs7O1k7Ozs7OworMjlFMjtTSFVGRkxFIFBST0RVQ1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUUzO0VRVUFMUyBTSUdOIEFORCBTTEFOVEVEIFBBUkFMTEVMO1NtOzA7T047Ozs7O1k7Ozs7OworMjlFNDtFUVVBTFMgU0lHTiBBTkQgU0xBTlRFRCBQQVJBTExFTCBXSVRIIFRJTERFIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMjlFNTtJREVOVElDQUwgVE8gQU5EIFNMQU5URUQgUEFSQUxMRUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUU2O0dMRUlDSCBTVEFSSztTbTswO09OOzs7OztOOzs7OzsKKzI5RTc7VEhFUk1PRFlOQU1JQztTbTswO09OOzs7OztOOzs7OzsKKzI5RTg7RE9XTi1QT0lOVElORyBUUklBTkdMRSBXSVRIIExFRlQgSEFMRiBCTEFDSztTbTswO09OOzs7OztZOzs7OzsKKzI5RTk7RE9XTi1QT0lOVElORyBUUklBTkdMRSBXSVRIIFJJR0hUIEhBTEYgQkxBQ0s7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUVBO0JMQUNLIERJQU1PTkQgV0lUSCBET1dOIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjlFQjtCTEFDSyBMT1pFTkdFO1NtOzA7T047Ozs7O047Ozs7OworMjlFQztXSElURSBDSVJDTEUgV0lUSCBET1dOIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjlFRDtCTEFDSyBDSVJDTEUgV0lUSCBET1dOIEFSUk9XO1NtOzA7T047Ozs7O047Ozs7OworMjlFRTtFUlJPUi1CQVJSRUQgV0hJVEUgU1FVQVJFO1NtOzA7T047Ozs7O047Ozs7OworMjlFRjtFUlJPUi1CQVJSRUQgQkxBQ0sgU1FVQVJFO1NtOzA7T047Ozs7O047Ozs7OworMjlGMDtFUlJPUi1CQVJSRUQgV0hJVEUgRElBTU9ORDtTbTswO09OOzs7OztOOzs7OzsKKzI5RjE7RVJST1ItQkFSUkVEIEJMQUNLIERJQU1PTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUYyO0VSUk9SLUJBUlJFRCBXSElURSBDSVJDTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUYzO0VSUk9SLUJBUlJFRCBCTEFDSyBDSVJDTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUY0O1JVTEUtREVMQVlFRDtTbTswO09OOzs7OztZOzs7OzsKKzI5RjU7UkVWRVJTRSBTT0xJRFVTIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMjlGNjtTT0xJRFVTIFdJVEggT1ZFUkJBUjtTbTswO09OOzs7OztZOzs7OzsKKzI5Rjc7UkVWRVJTRSBTT0xJRFVTIFdJVEggSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7WTs7Ozs7CisyOUY4O0JJRyBTT0xJRFVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjlGOTtCSUcgUkVWRVJTRSBTT0xJRFVTO1NtOzA7T047Ozs7O1k7Ozs7OworMjlGQTtET1VCTEUgUExVUztTbTswO09OOzs7OztOOzs7OzsKKzI5RkI7VFJJUExFIFBMVVM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyOUZDO0xFRlQtUE9JTlRJTkcgQ1VSVkVEIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTs7Ozs7CisyOUZEO1JJR0hULVBPSU5USU5HIENVUlZFRCBBTkdMRSBCUkFDS0VUO1BlOzA7T047Ozs7O1k7Ozs7OworMjlGRTtUSU5ZO1NtOzA7T047Ozs7O047Ozs7OworMjlGRjtNSU5ZO1NtOzA7T047Ozs7O047Ozs7OworMkEwMDtOLUFSWSBDSVJDTEVEIERPVCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBMDE7Ti1BUlkgQ0lSQ0xFRCBQTFVTIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMkEwMjtOLUFSWSBDSVJDTEVEIFRJTUVTIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMkEwMztOLUFSWSBVTklPTiBPUEVSQVRPUiBXSVRIIERPVDtTbTswO09OOzs7OztOOzs7OzsKKzJBMDQ7Ti1BUlkgVU5JT04gT1BFUkFUT1IgV0lUSCBQTFVTO1NtOzA7T047Ozs7O047Ozs7OworMkEwNTtOLUFSWSBTUVVBUkUgSU5URVJTRUNUSU9OIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMkEwNjtOLUFSWSBTUVVBUkUgVU5JT04gT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTA3O1RXTyBMT0dJQ0FMIEFORCBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBMDg7VFdPIExPR0lDQUwgT1IgT1BFUkFUT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTA5O04tQVJZIFRJTUVTIE9QRVJBVE9SO1NtOzA7T047Ozs7O047Ozs7OworMkEwQTtNT0RVTE8gVFdPIFNVTTtTbTswO09OOzs7OztZOzs7OzsKKzJBMEI7U1VNTUFUSU9OIFdJVEggSU5URUdSQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTBDO1FVQURSVVBMRSBJTlRFR1JBTCBPUEVSQVRPUjtTbTswO09OOzxjb21wYXQ+IDIyMkIgMjIyQiAyMjJCIDIyMkI7Ozs7WTs7Ozs7CisyQTBEO0ZJTklURSBQQVJUIElOVEVHUkFMO1NtOzA7T047Ozs7O1k7Ozs7OworMkEwRTtJTlRFR1JBTCBXSVRIIERPVUJMRSBTVFJPS0U7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTBGO0lOVEVHUkFMIEFWRVJBR0UgV0lUSCBTTEFTSDtTbTswO09OOzs7OztZOzs7OzsKKzJBMTA7Q0lSQ1VMQVRJT04gRlVOQ1RJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyQTExO0FOVElDTE9DS1dJU0UgSU5URUdSQVRJT047U207MDtPTjs7Ozs7WTs7Ozs7CisyQTEyO0xJTkUgSU5URUdSQVRJT04gV0lUSCBSRUNUQU5HVUxBUiBQQVRIIEFST1VORCBQT0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMkExMztMSU5FIElOVEVHUkFUSU9OIFdJVEggU0VNSUNJUkNVTEFSIFBBVEggQVJPVU5EIFBPTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTE0O0xJTkUgSU5URUdSQVRJT04gTk9UIElOQ0xVRElORyBUSEUgUE9MRTtTbTswO09OOzs7OztZOzs7OzsKKzJBMTU7SU5URUdSQUwgQVJPVU5EIEEgUE9JTlQgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTE2O1FVQVRFUk5JT04gSU5URUdSQUwgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTE3O0lOVEVHUkFMIFdJVEggTEVGVFdBUkRTIEFSUk9XIFdJVEggSE9PSztTbTswO09OOzs7OztZOzs7OzsKKzJBMTg7SU5URUdSQUwgV0lUSCBUSU1FUyBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkExOTtJTlRFR1JBTCBXSVRIIElOVEVSU0VDVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBMUE7SU5URUdSQUwgV0lUSCBVTklPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBMUI7SU5URUdSQUwgV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMkExQztJTlRFR1JBTCBXSVRIIFVOREVSQkFSO1NtOzA7T047Ozs7O1k7Ozs7OworMkExRDtKT0lOO1NtOzA7T047Ozs7O047Ozs7OworMkExRTtMQVJHRSBMRUZUIFRSSUFOR0xFIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMkExRjtaIE5PVEFUSU9OIFNDSEVNQSBDT01QT1NJVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBMjA7WiBOT1RBVElPTiBTQ0hFTUEgUElQSU5HO1NtOzA7T047Ozs7O1k7Ozs7OworMkEyMTtaIE5PVEFUSU9OIFNDSEVNQSBQUk9KRUNUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMkEyMjtQTFVTIFNJR04gV0lUSCBTTUFMTCBDSVJDTEUgQUJPVkU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTIzO1BMVVMgU0lHTiBXSVRIIENJUkNVTUZMRVggQUNDRU5UIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMkEyNDtQTFVTIFNJR04gV0lUSCBUSUxERSBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBMjU7UExVUyBTSUdOIFdJVEggRE9UIEJFTE9XO1NtOzA7T047Ozs7O047Ozs7OworMkEyNjtQTFVTIFNJR04gV0lUSCBUSUxERSBCRUxPVztTbTswO09OOzs7OztZOzs7OzsKKzJBMjc7UExVUyBTSUdOIFdJVEggU1VCU0NSSVBUIFRXTztTbTswO09OOzs7OztOOzs7OzsKKzJBMjg7UExVUyBTSUdOIFdJVEggQkxBQ0sgVFJJQU5HTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTI5O01JTlVTIFNJR04gV0lUSCBDT01NQSBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBMkE7TUlOVVMgU0lHTiBXSVRIIERPVCBCRUxPVztTbTswO09OOzs7OztOOzs7OzsKKzJBMkI7TUlOVVMgU0lHTiBXSVRIIEZBTExJTkcgRE9UUztTbTswO09OOzs7OztZOzs7OzsKKzJBMkM7TUlOVVMgU0lHTiBXSVRIIFJJU0lORyBET1RTO1NtOzA7T047Ozs7O1k7Ozs7OworMkEyRDtQTFVTIFNJR04gSU4gTEVGVCBIQUxGIENJUkNMRTtTbTswO09OOzs7OztZOzs7OzsKKzJBMkU7UExVUyBTSUdOIElOIFJJR0hUIEhBTEYgQ0lSQ0xFO1NtOzA7T047Ozs7O1k7Ozs7OworMkEyRjtWRUNUT1IgT1IgQ1JPU1MgUFJPRFVDVDtTbTswO09OOzs7OztOOzs7OzsKKzJBMzA7TVVMVElQTElDQVRJT04gU0lHTiBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzJBMzE7TVVMVElQTElDQVRJT04gU0lHTiBXSVRIIFVOREVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkEzMjtTRU1JRElSRUNUIFBST0RVQ1QgV0lUSCBCT1RUT00gQ0xPU0VEO1NtOzA7T047Ozs7O047Ozs7OworMkEzMztTTUFTSCBQUk9EVUNUO1NtOzA7T047Ozs7O047Ozs7OworMkEzNDtNVUxUSVBMSUNBVElPTiBTSUdOIElOIExFRlQgSEFMRiBDSVJDTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTM1O01VTFRJUExJQ0FUSU9OIFNJR04gSU4gUklHSFQgSEFMRiBDSVJDTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTM2O0NJUkNMRUQgTVVMVElQTElDQVRJT04gU0lHTiBXSVRIIENJUkNVTUZMRVggQUNDRU5UO1NtOzA7T047Ozs7O047Ozs7OworMkEzNztNVUxUSVBMSUNBVElPTiBTSUdOIElOIERPVUJMRSBDSVJDTEU7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTM4O0NJUkNMRUQgRElWSVNJT04gU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzJBMzk7UExVUyBTSUdOIElOIFRSSUFOR0xFO1NtOzA7T047Ozs7O047Ozs7OworMkEzQTtNSU5VUyBTSUdOIElOIFRSSUFOR0xFO1NtOzA7T047Ozs7O047Ozs7OworMkEzQjtNVUxUSVBMSUNBVElPTiBTSUdOIElOIFRSSUFOR0xFO1NtOzA7T047Ozs7O047Ozs7OworMkEzQztJTlRFUklPUiBQUk9EVUNUO1NtOzA7T047Ozs7O1k7Ozs7OworMkEzRDtSSUdIVEhBTkQgSU5URVJJT1IgUFJPRFVDVDtTbTswO09OOzs7OztZOzs7OzsKKzJBM0U7WiBOT1RBVElPTiBSRUxBVElPTkFMIENPTVBPU0lUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMkEzRjtBTUFMR0FNQVRJT04gT1IgQ09QUk9EVUNUO1NtOzA7T047Ozs7O047Ozs7OworMkE0MDtJTlRFUlNFQ1RJT04gV0lUSCBET1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTQxO1VOSU9OIFdJVEggTUlOVVMgU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNDI7VU5JT04gV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkE0MztJTlRFUlNFQ1RJT04gV0lUSCBPVkVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkE0NDtJTlRFUlNFQ1RJT04gV0lUSCBMT0dJQ0FMIEFORDtTbTswO09OOzs7OztOOzs7OzsKKzJBNDU7VU5JT04gV0lUSCBMT0dJQ0FMIE9SO1NtOzA7T047Ozs7O047Ozs7OworMkE0NjtVTklPTiBBQk9WRSBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTQ3O0lOVEVSU0VDVElPTiBBQk9WRSBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNDg7VU5JT04gQUJPVkUgQkFSIEFCT1ZFIElOVEVSU0VDVElPTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNDk7SU5URVJTRUNUSU9OIEFCT1ZFIEJBUiBBQk9WRSBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNEE7VU5JT04gQkVTSURFIEFORCBKT0lORUQgV0lUSCBVTklPTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNEI7SU5URVJTRUNUSU9OIEJFU0lERSBBTkQgSk9JTkVEIFdJVEggSU5URVJTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMkE0QztDTE9TRUQgVU5JT04gV0lUSCBTRVJJRlM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTREO0NMT1NFRCBJTlRFUlNFQ1RJT04gV0lUSCBTRVJJRlM7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTRFO0RPVUJMRSBTUVVBUkUgSU5URVJTRUNUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMkE0RjtET1VCTEUgU1FVQVJFIFVOSU9OO1NtOzA7T047Ozs7O047Ozs7OworMkE1MDtDTE9TRUQgVU5JT04gV0lUSCBTRVJJRlMgQU5EIFNNQVNIIFBST0RVQ1Q7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTUxO0xPR0lDQUwgQU5EIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMkE1MjtMT0dJQ0FMIE9SIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMkE1MztET1VCTEUgTE9HSUNBTCBBTkQ7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTU0O0RPVUJMRSBMT0dJQ0FMIE9SO1NtOzA7T047Ozs7O047Ozs7OworMkE1NTtUV08gSU5URVJTRUNUSU5HIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMkE1NjtUV08gSU5URVJTRUNUSU5HIExPR0lDQUwgT1I7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTU3O1NMT1BJTkcgTEFSR0UgT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTU4O1NMT1BJTkcgTEFSR0UgQU5EO1NtOzA7T047Ozs7O1k7Ozs7OworMkE1OTtMT0dJQ0FMIE9SIE9WRVJMQVBQSU5HIExPR0lDQUwgQU5EO1NtOzA7T047Ozs7O047Ozs7OworMkE1QTtMT0dJQ0FMIEFORCBXSVRIIE1JRERMRSBTVEVNO1NtOzA7T047Ozs7O047Ozs7OworMkE1QjtMT0dJQ0FMIE9SIFdJVEggTUlERExFIFNURU07U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTVDO0xPR0lDQUwgQU5EIFdJVEggSE9SSVpPTlRBTCBEQVNIO1NtOzA7T047Ozs7O047Ozs7OworMkE1RDtMT0dJQ0FMIE9SIFdJVEggSE9SSVpPTlRBTCBEQVNIO1NtOzA7T047Ozs7O047Ozs7OworMkE1RTtMT0dJQ0FMIEFORCBXSVRIIERPVUJMRSBPVkVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkE1RjtMT0dJQ0FMIEFORCBXSVRIIFVOREVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkE2MDtMT0dJQ0FMIEFORCBXSVRIIERPVUJMRSBVTkRFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBNjE7U01BTEwgVkVFIFdJVEggVU5ERVJCQVI7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTYyO0xPR0lDQUwgT1IgV0lUSCBET1VCTEUgT1ZFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBNjM7TE9HSUNBTCBPUiBXSVRIIERPVUJMRSBVTkRFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBNjQ7WiBOT1RBVElPTiBET01BSU4gQU5USVJFU1RSSUNUSU9OO1NtOzA7T047Ozs7O1k7Ozs7OworMkE2NTtaIE5PVEFUSU9OIFJBTkdFIEFOVElSRVNUUklDVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBNjY7RVFVQUxTIFNJR04gV0lUSCBET1QgQkVMT1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQTY3O0lERU5USUNBTCBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzJBNjg7VFJJUExFIEhPUklaT05UQUwgQkFSIFdJVEggRE9VQkxFIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzJBNjk7VFJJUExFIEhPUklaT05UQUwgQkFSIFdJVEggVFJJUExFIFZFUlRJQ0FMIFNUUk9LRTtTbTswO09OOzs7OztOOzs7OzsKKzJBNkE7VElMREUgT1BFUkFUT1IgV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTZCO1RJTERFIE9QRVJBVE9SIFdJVEggUklTSU5HIERPVFM7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTZDO1NJTUlMQVIgTUlOVVMgU0lNSUxBUjtTbTswO09OOzs7OztZOzs7OzsKKzJBNkQ7Q09OR1JVRU5UIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE2RTtFUVVBTFMgV0lUSCBBU1RFUklTSztTbTswO09OOzs7OztOOzs7OzsKKzJBNkY7QUxNT1NUIEVRVUFMIFRPIFdJVEggQ0lSQ1VNRkxFWCBBQ0NFTlQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTcwO0FQUFJPWElNQVRFTFkgRVFVQUwgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQTcxO0VRVUFMUyBTSUdOIEFCT1ZFIFBMVVMgU0lHTjtTbTswO09OOzs7OztOOzs7OzsKKzJBNzI7UExVUyBTSUdOIEFCT1ZFIEVRVUFMUyBTSUdOO1NtOzA7T047Ozs7O047Ozs7OworMkE3MztFUVVBTFMgU0lHTiBBQk9WRSBUSUxERSBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzJBNzQ7RE9VQkxFIENPTE9OIEVRVUFMO1NtOzA7T047PGNvbXBhdD4gMDAzQSAwMDNBIDAwM0Q7Ozs7WTs7Ozs7CisyQTc1O1RXTyBDT05TRUNVVElWRSBFUVVBTFMgU0lHTlM7U207MDtPTjs8Y29tcGF0PiAwMDNEIDAwM0Q7Ozs7Tjs7Ozs7CisyQTc2O1RIUkVFIENPTlNFQ1VUSVZFIEVRVUFMUyBTSUdOUztTbTswO09OOzxjb21wYXQ+IDAwM0QgMDAzRCAwMDNEOzs7O047Ozs7OworMkE3NztFUVVBTFMgU0lHTiBXSVRIIFRXTyBET1RTIEFCT1ZFIEFORCBUV08gRE9UUyBCRUxPVztTbTswO09OOzs7OztOOzs7OzsKKzJBNzg7RVFVSVZBTEVOVCBXSVRIIEZPVVIgRE9UUyBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzJBNzk7TEVTUy1USEFOIFdJVEggQ0lSQ0xFIElOU0lERTtTbTswO09OOzs7OztZOzs7OzsKKzJBN0E7R1JFQVRFUi1USEFOIFdJVEggQ0lSQ0xFIElOU0lERTtTbTswO09OOzs7OztZOzs7OzsKKzJBN0I7TEVTUy1USEFOIFdJVEggUVVFU1RJT04gTUFSSyBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBN0M7R1JFQVRFUi1USEFOIFdJVEggUVVFU1RJT04gTUFSSyBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBN0Q7TEVTUy1USEFOIE9SIFNMQU5URUQgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQTdFO0dSRUFURVItVEhBTiBPUiBTTEFOVEVEIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkE3RjtMRVNTLVRIQU4gT1IgU0xBTlRFRCBFUVVBTCBUTyBXSVRIIERPVCBJTlNJREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTgwO0dSRUFURVItVEhBTiBPUiBTTEFOVEVEIEVRVUFMIFRPIFdJVEggRE9UIElOU0lERTtTbTswO09OOzs7OztZOzs7OzsKKzJBODE7TEVTUy1USEFOIE9SIFNMQU5URUQgRVFVQUwgVE8gV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTgyO0dSRUFURVItVEhBTiBPUiBTTEFOVEVEIEVRVUFMIFRPIFdJVEggRE9UIEFCT1ZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4MztMRVNTLVRIQU4gT1IgU0xBTlRFRCBFUVVBTCBUTyBXSVRIIERPVCBBQk9WRSBSSUdIVDtTbTswO09OOzs7OztZOzs7OzsKKzJBODQ7R1JFQVRFUi1USEFOIE9SIFNMQU5URUQgRVFVQUwgVE8gV0lUSCBET1QgQUJPVkUgTEVGVDtTbTswO09OOzs7OztZOzs7OzsKKzJBODU7TEVTUy1USEFOIE9SIEFQUFJPWElNQVRFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4NjtHUkVBVEVSLVRIQU4gT1IgQVBQUk9YSU1BVEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTg3O0xFU1MtVEhBTiBBTkQgU0lOR0xFLUxJTkUgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4ODtHUkVBVEVSLVRIQU4gQU5EIFNJTkdMRS1MSU5FIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBODk7TEVTUy1USEFOIEFORCBOT1QgQVBQUk9YSU1BVEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQThBO0dSRUFURVItVEhBTiBBTkQgTk9UIEFQUFJPWElNQVRFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4QjtMRVNTLVRIQU4gQUJPVkUgRE9VQkxFLUxJTkUgRVFVQUwgQUJPVkUgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4QztHUkVBVEVSLVRIQU4gQUJPVkUgRE9VQkxFLUxJTkUgRVFVQUwgQUJPVkUgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE4RDtMRVNTLVRIQU4gQUJPVkUgU0lNSUxBUiBPUiBFUVVBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBOEU7R1JFQVRFUi1USEFOIEFCT1ZFIFNJTUlMQVIgT1IgRVFVQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQThGO0xFU1MtVEhBTiBBQk9WRSBTSU1JTEFSIEFCT1ZFIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOTA7R1JFQVRFUi1USEFOIEFCT1ZFIFNJTUlMQVIgQUJPVkUgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5MTtMRVNTLVRIQU4gQUJPVkUgR1JFQVRFUi1USEFOIEFCT1ZFIERPVUJMRS1MSU5FIEVRVUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5MjtHUkVBVEVSLVRIQU4gQUJPVkUgTEVTUy1USEFOIEFCT1ZFIERPVUJMRS1MSU5FIEVRVUFMO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5MztMRVNTLVRIQU4gQUJPVkUgU0xBTlRFRCBFUVVBTCBBQk9WRSBHUkVBVEVSLVRIQU4gQUJPVkUgU0xBTlRFRCBFUVVBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBOTQ7R1JFQVRFUi1USEFOIEFCT1ZFIFNMQU5URUQgRVFVQUwgQUJPVkUgTEVTUy1USEFOIEFCT1ZFIFNMQU5URUQgRVFVQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTk1O1NMQU5URUQgRVFVQUwgVE8gT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5NjtTTEFOVEVEIEVRVUFMIFRPIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOTc7U0xBTlRFRCBFUVVBTCBUTyBPUiBMRVNTLVRIQU4gV0lUSCBET1QgSU5TSURFO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5ODtTTEFOVEVEIEVRVUFMIFRPIE9SIEdSRUFURVItVEhBTiBXSVRIIERPVCBJTlNJREU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQTk5O0RPVUJMRS1MSU5FIEVRVUFMIFRPIE9SIExFU1MtVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOUE7RE9VQkxFLUxJTkUgRVFVQUwgVE8gT1IgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5QjtET1VCTEUtTElORSBTTEFOVEVEIEVRVUFMIFRPIE9SIExFU1MtVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOUM7RE9VQkxFLUxJTkUgU0xBTlRFRCBFUVVBTCBUTyBPUiBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQTlEO1NJTUlMQVIgT1IgTEVTUy1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkE5RTtTSU1JTEFSIE9SIEdSRUFURVItVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBOUY7U0lNSUxBUiBBQk9WRSBMRVNTLVRIQU4gQUJPVkUgRVFVQUxTIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUEwO1NJTUlMQVIgQUJPVkUgR1JFQVRFUi1USEFOIEFCT1ZFIEVRVUFMUyBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBMTtET1VCTEUgTkVTVEVEIExFU1MtVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQTI7RE9VQkxFIE5FU1RFRCBHUkVBVEVSLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQUEzO0RPVUJMRSBORVNURUQgTEVTUy1USEFOIFdJVEggVU5ERVJCQVI7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUE0O0dSRUFURVItVEhBTiBPVkVSTEFQUElORyBMRVNTLVRIQU47U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUE1O0dSRUFURVItVEhBTiBCRVNJREUgTEVTUy1USEFOO1NtOzA7T047Ozs7O047Ozs7OworMkFBNjtMRVNTLVRIQU4gQ0xPU0VEIEJZIENVUlZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBNztHUkVBVEVSLVRIQU4gQ0xPU0VEIEJZIENVUlZFO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBODtMRVNTLVRIQU4gQ0xPU0VEIEJZIENVUlZFIEFCT1ZFIFNMQU5URUQgRVFVQUw7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUE5O0dSRUFURVItVEhBTiBDTE9TRUQgQlkgQ1VSVkUgQUJPVkUgU0xBTlRFRCBFUVVBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBQUE7U01BTExFUiBUSEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBQjtMQVJHRVIgVEhBTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQUM7U01BTExFUiBUSEFOIE9SIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFBRDtMQVJHRVIgVEhBTiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQUU7RVFVQUxTIFNJR04gV0lUSCBCVU1QWSBBQk9WRTtTbTswO09OOzs7OztOOzs7OzsKKzJBQUY7UFJFQ0VERVMgQUJPVkUgU0lOR0xFLUxJTkUgRVFVQUxTIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUIwO1NVQ0NFRURTIEFCT1ZFIFNJTkdMRS1MSU5FIEVRVUFMUyBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCMTtQUkVDRURFUyBBQk9WRSBTSU5HTEUtTElORSBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUIyO1NVQ0NFRURTIEFCT1ZFIFNJTkdMRS1MSU5FIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQjM7UFJFQ0VERVMgQUJPVkUgRVFVQUxTIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUI0O1NVQ0NFRURTIEFCT1ZFIEVRVUFMUyBTSUdOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCNTtQUkVDRURFUyBBQk9WRSBOT1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUI2O1NVQ0NFRURTIEFCT1ZFIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQjc7UFJFQ0VERVMgQUJPVkUgQUxNT1NUIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCODtTVUNDRUVEUyBBQk9WRSBBTE1PU1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUI5O1BSRUNFREVTIEFCT1ZFIE5PVCBBTE1PU1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUJBO1NVQ0NFRURTIEFCT1ZFIE5PVCBBTE1PU1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUJCO0RPVUJMRSBQUkVDRURFUztTbTswO09OOzs7OztZOzs7OzsKKzJBQkM7RE9VQkxFIFNVQ0NFRURTO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCRDtTVUJTRVQgV0lUSCBET1Q7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUJFO1NVUEVSU0VUIFdJVEggRE9UO1NtOzA7T047Ozs7O1k7Ozs7OworMkFCRjtTVUJTRVQgV0lUSCBQTFVTIFNJR04gQkVMT1c7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUMwO1NVUEVSU0VUIFdJVEggUExVUyBTSUdOIEJFTE9XO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDMTtTVUJTRVQgV0lUSCBNVUxUSVBMSUNBVElPTiBTSUdOIEJFTE9XO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDMjtTVVBFUlNFVCBXSVRIIE1VTFRJUExJQ0FUSU9OIFNJR04gQkVMT1c7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUMzO1NVQlNFVCBPRiBPUiBFUVVBTCBUTyBXSVRIIERPVCBBQk9WRTtTbTswO09OOzs7OztZOzs7OzsKKzJBQzQ7U1VQRVJTRVQgT0YgT1IgRVFVQUwgVE8gV0lUSCBET1QgQUJPVkU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUM1O1NVQlNFVCBPRiBBQk9WRSBFUVVBTFMgU0lHTjtTbTswO09OOzs7OztZOzs7OzsKKzJBQzY7U1VQRVJTRVQgT0YgQUJPVkUgRVFVQUxTIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUM3O1NVQlNFVCBPRiBBQk9WRSBUSUxERSBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzJBQzg7U1VQRVJTRVQgT0YgQUJPVkUgVElMREUgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUM5O1NVQlNFVCBPRiBBQk9WRSBBTE1PU1QgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUNBO1NVUEVSU0VUIE9GIEFCT1ZFIEFMTU9TVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQ0I7U1VCU0VUIE9GIEFCT1ZFIE5PVCBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBQ0M7U1VQRVJTRVQgT0YgQUJPVkUgTk9UIEVRVUFMIFRPO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDRDtTUVVBUkUgTEVGVCBPUEVOIEJPWCBPUEVSQVRPUjtTbTswO09OOzs7OztZOzs7OzsKKzJBQ0U7U1FVQVJFIFJJR0hUIE9QRU4gQk9YIE9QRVJBVE9SO1NtOzA7T047Ozs7O1k7Ozs7OworMkFDRjtDTE9TRUQgU1VCU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMkFEMDtDTE9TRUQgU1VQRVJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUQxO0NMT1NFRCBTVUJTRVQgT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUQyO0NMT1NFRCBTVVBFUlNFVCBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBRDM7U1VCU0VUIEFCT1ZFIFNVUEVSU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMkFENDtTVVBFUlNFVCBBQk9WRSBTVUJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUQ1O1NVQlNFVCBBQk9WRSBTVUJTRVQ7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUQ2O1NVUEVSU0VUIEFCT1ZFIFNVUEVSU0VUO1NtOzA7T047Ozs7O1k7Ozs7OworMkFENztTVVBFUlNFVCBCRVNJREUgU1VCU0VUO1NtOzA7T047Ozs7O047Ozs7OworMkFEODtTVVBFUlNFVCBCRVNJREUgQU5EIEpPSU5FRCBCWSBEQVNIIFdJVEggU1VCU0VUO1NtOzA7T047Ozs7O047Ozs7OworMkFEOTtFTEVNRU5UIE9GIE9QRU5JTkcgRE9XTldBUkRTO1NtOzA7T047Ozs7O047Ozs7OworMkFEQTtQSVRDSEZPUksgV0lUSCBURUUgVE9QO1NtOzA7T047Ozs7O047Ozs7OworMkFEQjtUUkFOU1ZFUlNBTCBJTlRFUlNFQ1RJT047U207MDtPTjs7Ozs7Tjs7Ozs7CisyQURDO0ZPUktJTkc7U207MDtPTjsyQUREIDAzMzg7Ozs7WTs7bm90IGluZGVwZW5kZW50Ozs7CisyQUREO05PTkZPUktJTkc7U207MDtPTjs7Ozs7Tjs7aW5kZXBlbmRlbnQ7OzsKKzJBREU7U0hPUlQgTEVGVCBUQUNLO1NtOzA7T047Ozs7O1k7Ozs7OworMkFERjtTSE9SVCBET1dOIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUUwO1NIT1JUIFVQIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUUxO1BFUlBFTkRJQ1VMQVIgV0lUSCBTO1NtOzA7T047Ozs7O047Ozs7OworMkFFMjtWRVJUSUNBTCBCQVIgVFJJUExFIFJJR0hUIFRVUk5TVElMRTtTbTswO09OOzs7OztZOzs7OzsKKzJBRTM7RE9VQkxFIFZFUlRJQ0FMIEJBUiBMRUZUIFRVUk5TVElMRTtTbTswO09OOzs7OztZOzs7OzsKKzJBRTQ7VkVSVElDQUwgQkFSIERPVUJMRSBMRUZUIFRVUk5TVElMRTtTbTswO09OOzs7OztZOzs7OzsKKzJBRTU7RE9VQkxFIFZFUlRJQ0FMIEJBUiBET1VCTEUgTEVGVCBUVVJOU1RJTEU7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUU2O0xPTkcgREFTSCBGUk9NIExFRlQgTUVNQkVSIE9GIERPVUJMRSBWRVJUSUNBTDtTbTswO09OOzs7OztZOzs7OzsKKzJBRTc7U0hPUlQgRE9XTiBUQUNLIFdJVEggT1ZFUkJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBRTg7U0hPUlQgVVAgVEFDSyBXSVRIIFVOREVSQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkFFOTtTSE9SVCBVUCBUQUNLIEFCT1ZFIFNIT1JUIERPV04gVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzJBRUE7RE9VQkxFIERPV04gVEFDSztTbTswO09OOzs7OztOOzs7OzsKKzJBRUI7RE9VQkxFIFVQIFRBQ0s7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUVDO0RPVUJMRSBTVFJPS0UgTk9UIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUVEO1JFVkVSU0VEIERPVUJMRSBTVFJPS0UgTk9UIFNJR047U207MDtPTjs7Ozs7WTs7Ozs7CisyQUVFO0RPRVMgTk9UIERJVklERSBXSVRIIFJFVkVSU0VEIE5FR0FUSU9OIFNMQVNIO1NtOzA7T047Ozs7O1k7Ozs7OworMkFFRjtWRVJUSUNBTCBMSU5FIFdJVEggQ0lSQ0xFIEFCT1ZFO1NtOzA7T047Ozs7O047Ozs7OworMkFGMDtWRVJUSUNBTCBMSU5FIFdJVEggQ0lSQ0xFIEJFTE9XO1NtOzA7T047Ozs7O047Ozs7OworMkFGMTtET1dOIFRBQ0sgV0lUSCBDSVJDTEUgQkVMT1c7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUYyO1BBUkFMTEVMIFdJVEggSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUYzO1BBUkFMTEVMIFdJVEggVElMREUgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUY0O1RSSVBMRSBWRVJUSUNBTCBCQVIgQklOQVJZIFJFTEFUSU9OO1NtOzA7T047Ozs7O047Ozs7OworMkFGNTtUUklQTEUgVkVSVElDQUwgQkFSIFdJVEggSE9SSVpPTlRBTCBTVFJPS0U7U207MDtPTjs7Ozs7Tjs7Ozs7CisyQUY2O1RSSVBMRSBDT0xPTiBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBRjc7VFJJUExFIE5FU1RFRCBMRVNTLVRIQU47U207MDtPTjs7Ozs7WTs7Ozs7CisyQUY4O1RSSVBMRSBORVNURUQgR1JFQVRFUi1USEFOO1NtOzA7T047Ozs7O1k7Ozs7OworMkFGOTtET1VCTEUtTElORSBTTEFOVEVEIExFU1MtVEhBTiBPUiBFUVVBTCBUTztTbTswO09OOzs7OztZOzs7OzsKKzJBRkE7RE9VQkxFLUxJTkUgU0xBTlRFRCBHUkVBVEVSLVRIQU4gT1IgRVFVQUwgVE87U207MDtPTjs7Ozs7WTs7Ozs7CisyQUZCO1RSSVBMRSBTT0xJRFVTIEJJTkFSWSBSRUxBVElPTjtTbTswO09OOzs7OztZOzs7OzsKKzJBRkM7TEFSR0UgVFJJUExFIFZFUlRJQ0FMIEJBUiBPUEVSQVRPUjtTbTswO09OOzs7OztOOzs7OzsKKzJBRkQ7RE9VQkxFIFNPTElEVVMgT1BFUkFUT1I7U207MDtPTjs7Ozs7WTs7Ozs7CisyQUZFO1dISVRFIFZFUlRJQ0FMIEJBUjtTbTswO09OOzs7OztOOzs7OzsKKzJBRkY7Ti1BUlkgV0hJVEUgVkVSVElDQUwgQkFSO1NtOzA7T047Ozs7O047Ozs7OworMkIwMDtOT1JUSCBFQVNUIFdISVRFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMkIwMTtOT1JUSCBXRVNUIFdISVRFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMkIwMjtTT1VUSCBFQVNUIFdISVRFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMkIwMztTT1VUSCBXRVNUIFdISVRFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMkIwNDtMRUZUIFJJR0hUIFdISVRFIEFSUk9XO1NvOzA7T047Ozs7O047Ozs7OworMkIwNTtMRUZUV0FSRFMgQkxBQ0sgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjA2O1VQV0FSRFMgQkxBQ0sgQVJST1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjA3O0RPV05XQVJEUyBCTEFDSyBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzJCMDg7Tk9SVEggRUFTVCBCTEFDSyBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzJCMDk7Tk9SVEggV0VTVCBCTEFDSyBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzJCMEE7U09VVEggRUFTVCBCTEFDSyBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzJCMEI7U09VVEggV0VTVCBCTEFDSyBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzJCMEM7TEVGVCBSSUdIVCBCTEFDSyBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzJCMEQ7VVAgRE9XTiBCTEFDSyBBUlJPVztTbzswO09OOzs7OztOOzs7OzsKKzJCMEU7UklHSFRXQVJEUyBBUlJPVyBXSVRIIFRJUCBET1dOV0FSRFM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjBGO1JJR0hUV0FSRFMgQVJST1cgV0lUSCBUSVAgVVBXQVJEUztTbzswO09OOzs7OztOOzs7OzsKKzJCMTA7TEVGVFdBUkRTIEFSUk9XIFdJVEggVElQIERPV05XQVJEUztTbzswO09OOzs7OztOOzs7OzsKKzJCMTE7TEVGVFdBUkRTIEFSUk9XIFdJVEggVElQIFVQV0FSRFM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQjEyO1NRVUFSRSBXSVRIIFRPUCBIQUxGIEJMQUNLO1NvOzA7T047Ozs7O047Ozs7OworMkIxMztTUVVBUkUgV0lUSCBCT1RUT00gSEFMRiBCTEFDSztTbzswO09OOzs7OztOOzs7OzsKKzJDMDA7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBBWlU7THU7MDtMOzs7OztOOzs7OzJDMzA7CisyQzAxO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgQlVLWTtMdTswO0w7Ozs7O047Ozs7MkMzMTsKKzJDMDI7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBWRURFO0x1OzA7TDs7Ozs7Tjs7OzsyQzMyOworMkMwMztHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIEdMQUdPTEk7THU7MDtMOzs7OztOOzs7OzJDMzM7CisyQzA0O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgRE9CUk87THU7MDtMOzs7OztOOzs7OzJDMzQ7CisyQzA1O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgWUVTVFU7THU7MDtMOzs7OztOOzs7OzJDMzU7CisyQzA2O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgWkhJVkVURTtMdTswO0w7Ozs7O047Ozs7MkMzNjsKKzJDMDc7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBEWkVMTztMdTswO0w7Ozs7O047Ozs7MkMzNzsKKzJDMDg7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBaRU1MSkE7THU7MDtMOzs7OztOOzs7OzJDMzg7CisyQzA5O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgSVpIRTtMdTswO0w7Ozs7O047Ozs7MkMzOTsKKzJDMEE7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBJTklUSUFMIElaSEU7THU7MDtMOzs7OztOOzs7OzJDM0E7CisyQzBCO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgSTtMdTswO0w7Ozs7O047Ozs7MkMzQjsKKzJDMEM7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBESkVSVkk7THU7MDtMOzs7OztOOzs7OzJDM0M7CisyQzBEO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgS0FLTztMdTswO0w7Ozs7O047Ozs7MkMzRDsKKzJDMEU7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBMSlVESUpFO0x1OzA7TDs7Ozs7Tjs7OzsyQzNFOworMkMwRjtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIE1ZU0xJVEU7THU7MDtMOzs7OztOOzs7OzJDM0Y7CisyQzEwO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgTkFTSEk7THU7MDtMOzs7OztOOzs7OzJDNDA7CisyQzExO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgT05VO0x1OzA7TDs7Ozs7Tjs7OzsyQzQxOworMkMxMjtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFBPS09KSTtMdTswO0w7Ozs7O047Ozs7MkM0MjsKKzJDMTM7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBSSVRTSTtMdTswO0w7Ozs7O047Ozs7MkM0MzsKKzJDMTQ7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBTTE9WTztMdTswO0w7Ozs7O047Ozs7MkM0NDsKKzJDMTU7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBUVlJJRE87THU7MDtMOzs7OztOOzs7OzJDNDU7CisyQzE2O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgVUtVO0x1OzA7TDs7Ozs7Tjs7OzsyQzQ2OworMkMxNztHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIEZSSVRVO0x1OzA7TDs7Ozs7Tjs7OzsyQzQ3OworMkMxODtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIEhFUlU7THU7MDtMOzs7OztOOzs7OzJDNDg7CisyQzE5O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgT1RVO0x1OzA7TDs7Ozs7Tjs7OzsyQzQ5OworMkMxQTtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFBFO0x1OzA7TDs7Ozs7Tjs7OzsyQzRBOworMkMxQjtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFNIVEE7THU7MDtMOzs7OztOOzs7OzJDNEI7CisyQzFDO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgVFNJO0x1OzA7TDs7Ozs7Tjs7OzsyQzRDOworMkMxRDtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIENIUklWSTtMdTswO0w7Ozs7O047Ozs7MkM0RDsKKzJDMUU7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBTSEE7THU7MDtMOzs7OztOOzs7OzJDNEU7CisyQzFGO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgWUVSVTtMdTswO0w7Ozs7O047Ozs7MkM0RjsKKzJDMjA7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBZRVJJO0x1OzA7TDs7Ozs7Tjs7OzsyQzUwOworMkMyMTtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIFlBVEk7THU7MDtMOzs7OztOOzs7OzJDNTE7CisyQzIyO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgU1BJREVSWSBIQTtMdTswO0w7Ozs7O047Ozs7MkM1MjsKKzJDMjM7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBZVTtMdTswO0w7Ozs7O047Ozs7MkM1MzsKKzJDMjQ7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBTTUFMTCBZVVM7THU7MDtMOzs7OztOOzs7OzJDNTQ7CisyQzI1O0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgU01BTEwgWVVTIFdJVEggVEFJTDtMdTswO0w7Ozs7O047Ozs7MkM1NTsKKzJDMjY7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBZTztMdTswO0w7Ozs7O047Ozs7MkM1NjsKKzJDMjc7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBJT1RBVEVEIFNNQUxMIFlVUztMdTswO0w7Ozs7O047Ozs7MkM1NzsKKzJDMjg7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBCSUcgWVVTO0x1OzA7TDs7Ozs7Tjs7OzsyQzU4OworMkMyOTtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIElPVEFURUQgQklHIFlVUztMdTswO0w7Ozs7O047Ozs7MkM1OTsKKzJDMkE7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBGSVRBO0x1OzA7TDs7Ozs7Tjs7OzsyQzVBOworMkMyQjtHTEFHT0xJVElDIENBUElUQUwgTEVUVEVSIElaSElUU0E7THU7MDtMOzs7OztOOzs7OzJDNUI7CisyQzJDO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgU0hUQVBJQztMdTswO0w7Ozs7O047Ozs7MkM1QzsKKzJDMkQ7R0xBR09MSVRJQyBDQVBJVEFMIExFVFRFUiBUUk9LVVRBU1RJIEE7THU7MDtMOzs7OztOOzs7OzJDNUQ7CisyQzJFO0dMQUdPTElUSUMgQ0FQSVRBTCBMRVRURVIgTEFUSU5BVEUgTVlTTElURTtMdTswO0w7Ozs7O047Ozs7MkM1RTsKKzJDMzA7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgQVpVO0xsOzA7TDs7Ozs7Tjs7OzJDMDA7OzJDMDAKKzJDMzE7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgQlVLWTtMbDswO0w7Ozs7O047OzsyQzAxOzsyQzAxCisyQzMyO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFZFREU7TGw7MDtMOzs7OztOOzs7MkMwMjs7MkMwMgorMkMzMztHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBHTEFHT0xJO0xsOzA7TDs7Ozs7Tjs7OzJDMDM7OzJDMDMKKzJDMzQ7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgRE9CUk87TGw7MDtMOzs7OztOOzs7MkMwNDs7MkMwNAorMkMzNTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBZRVNUVTtMbDswO0w7Ozs7O047OzsyQzA1OzsyQzA1CisyQzM2O0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFpISVZFVEU7TGw7MDtMOzs7OztOOzs7MkMwNjs7MkMwNgorMkMzNztHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBEWkVMTztMbDswO0w7Ozs7O047OzsyQzA3OzsyQzA3CisyQzM4O0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFpFTUxKQTtMbDswO0w7Ozs7O047OzsyQzA4OzsyQzA4CisyQzM5O0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIElaSEU7TGw7MDtMOzs7OztOOzs7MkMwOTs7MkMwOQorMkMzQTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBJTklUSUFMIElaSEU7TGw7MDtMOzs7OztOOzs7MkMwQTs7MkMwQQorMkMzQjtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBJO0xsOzA7TDs7Ozs7Tjs7OzJDMEI7OzJDMEIKKzJDM0M7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgREpFUlZJO0xsOzA7TDs7Ozs7Tjs7OzJDMEM7OzJDMEMKKzJDM0Q7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgS0FLTztMbDswO0w7Ozs7O047OzsyQzBEOzsyQzBECisyQzNFO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIExKVURJSkU7TGw7MDtMOzs7OztOOzs7MkMwRTs7MkMwRQorMkMzRjtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBNWVNMSVRFO0xsOzA7TDs7Ozs7Tjs7OzJDMEY7OzJDMEYKKzJDNDA7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgTkFTSEk7TGw7MDtMOzs7OztOOzs7MkMxMDs7MkMxMAorMkM0MTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBPTlU7TGw7MDtMOzs7OztOOzs7MkMxMTs7MkMxMQorMkM0MjtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBQT0tPSkk7TGw7MDtMOzs7OztOOzs7MkMxMjs7MkMxMgorMkM0MztHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBSSVRTSTtMbDswO0w7Ozs7O047OzsyQzEzOzsyQzEzCisyQzQ0O0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFNMT1ZPO0xsOzA7TDs7Ozs7Tjs7OzJDMTQ7OzJDMTQKKzJDNDU7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgVFZSSURPO0xsOzA7TDs7Ozs7Tjs7OzJDMTU7OzJDMTUKKzJDNDY7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgVUtVO0xsOzA7TDs7Ozs7Tjs7OzJDMTY7OzJDMTYKKzJDNDc7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgRlJJVFU7TGw7MDtMOzs7OztOOzs7MkMxNzs7MkMxNworMkM0ODtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBIRVJVO0xsOzA7TDs7Ozs7Tjs7OzJDMTg7OzJDMTgKKzJDNDk7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgT1RVO0xsOzA7TDs7Ozs7Tjs7OzJDMTk7OzJDMTkKKzJDNEE7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgUEU7TGw7MDtMOzs7OztOOzs7MkMxQTs7MkMxQQorMkM0QjtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBTSFRBO0xsOzA7TDs7Ozs7Tjs7OzJDMUI7OzJDMUIKKzJDNEM7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgVFNJO0xsOzA7TDs7Ozs7Tjs7OzJDMUM7OzJDMUMKKzJDNEQ7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgQ0hSSVZJO0xsOzA7TDs7Ozs7Tjs7OzJDMUQ7OzJDMUQKKzJDNEU7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgU0hBO0xsOzA7TDs7Ozs7Tjs7OzJDMUU7OzJDMUUKKzJDNEY7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgWUVSVTtMbDswO0w7Ozs7O047OzsyQzFGOzsyQzFGCisyQzUwO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFlFUkk7TGw7MDtMOzs7OztOOzs7MkMyMDs7MkMyMAorMkM1MTtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBZQVRJO0xsOzA7TDs7Ozs7Tjs7OzJDMjE7OzJDMjEKKzJDNTI7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgU1BJREVSWSBIQTtMbDswO0w7Ozs7O047OzsyQzIyOzsyQzIyCisyQzUzO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFlVO0xsOzA7TDs7Ozs7Tjs7OzJDMjM7OzJDMjMKKzJDNTQ7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgU01BTEwgWVVTO0xsOzA7TDs7Ozs7Tjs7OzJDMjQ7OzJDMjQKKzJDNTU7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgU01BTEwgWVVTIFdJVEggVEFJTDtMbDswO0w7Ozs7O047OzsyQzI1OzsyQzI1CisyQzU2O0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIFlPO0xsOzA7TDs7Ozs7Tjs7OzJDMjY7OzJDMjYKKzJDNTc7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgSU9UQVRFRCBTTUFMTCBZVVM7TGw7MDtMOzs7OztOOzs7MkMyNzs7MkMyNworMkM1ODtHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBCSUcgWVVTO0xsOzA7TDs7Ozs7Tjs7OzJDMjg7OzJDMjgKKzJDNTk7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgSU9UQVRFRCBCSUcgWVVTO0xsOzA7TDs7Ozs7Tjs7OzJDMjk7OzJDMjkKKzJDNUE7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgRklUQTtMbDswO0w7Ozs7O047OzsyQzJBOzsyQzJBCisyQzVCO0dMQUdPTElUSUMgU01BTEwgTEVUVEVSIElaSElUU0E7TGw7MDtMOzs7OztOOzs7MkMyQjs7MkMyQgorMkM1QztHTEFHT0xJVElDIFNNQUxMIExFVFRFUiBTSFRBUElDO0xsOzA7TDs7Ozs7Tjs7OzJDMkM7OzJDMkMKKzJDNUQ7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgVFJPS1VUQVNUSSBBO0xsOzA7TDs7Ozs7Tjs7OzJDMkQ7OzJDMkQKKzJDNUU7R0xBR09MSVRJQyBTTUFMTCBMRVRURVIgTEFUSU5BVEUgTVlTTElURTtMbDswO0w7Ozs7O047OzsyQzJFOzsyQzJFCisyQzgwO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBBTEZBO0x1OzA7TDs7Ozs7Tjs7OzsyQzgxOworMkM4MTtDT1BUSUMgU01BTEwgTEVUVEVSIEFMRkE7TGw7MDtMOzs7OztOOzs7MkM4MDs7MkM4MAorMkM4MjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgVklEQTtMdTswO0w7Ozs7O047Ozs7MkM4MzsKKzJDODM7Q09QVElDIFNNQUxMIExFVFRFUiBWSURBO0xsOzA7TDs7Ozs7Tjs7OzJDODI7OzJDODIKKzJDODQ7Q09QVElDIENBUElUQUwgTEVUVEVSIEdBTU1BO0x1OzA7TDs7Ozs7Tjs7OzsyQzg1OworMkM4NTtDT1BUSUMgU01BTEwgTEVUVEVSIEdBTU1BO0xsOzA7TDs7Ozs7Tjs7OzJDODQ7OzJDODQKKzJDODY7Q09QVElDIENBUElUQUwgTEVUVEVSIERBTERBO0x1OzA7TDs7Ozs7Tjs7OzsyQzg3OworMkM4NztDT1BUSUMgU01BTEwgTEVUVEVSIERBTERBO0xsOzA7TDs7Ozs7Tjs7OzJDODY7OzJDODYKKzJDODg7Q09QVElDIENBUElUQUwgTEVUVEVSIEVJRTtMdTswO0w7Ozs7O047Ozs7MkM4OTsKKzJDODk7Q09QVElDIFNNQUxMIExFVFRFUiBFSUU7TGw7MDtMOzs7OztOOzs7MkM4ODs7MkM4OAorMkM4QTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgU09VO0x1OzA7TDs7Ozs7Tjs7OzsyQzhCOworMkM4QjtDT1BUSUMgU01BTEwgTEVUVEVSIFNPVTtMbDswO0w7Ozs7O047OzsyQzhBOzsyQzhBCisyQzhDO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBaQVRBO0x1OzA7TDs7Ozs7Tjs7OzsyQzhEOworMkM4RDtDT1BUSUMgU01BTEwgTEVUVEVSIFpBVEE7TGw7MDtMOzs7OztOOzs7MkM4Qzs7MkM4QworMkM4RTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgSEFURTtMdTswO0w7Ozs7O047Ozs7MkM4RjsKKzJDOEY7Q09QVElDIFNNQUxMIExFVFRFUiBIQVRFO0xsOzA7TDs7Ozs7Tjs7OzJDOEU7OzJDOEUKKzJDOTA7Q09QVElDIENBUElUQUwgTEVUVEVSIFRIRVRIRTtMdTswO0w7Ozs7O047Ozs7MkM5MTsKKzJDOTE7Q09QVElDIFNNQUxMIExFVFRFUiBUSEVUSEU7TGw7MDtMOzs7OztOOzs7MkM5MDs7MkM5MAorMkM5MjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgSUFVREE7THU7MDtMOzs7OztOOzs7OzJDOTM7CisyQzkzO0NPUFRJQyBTTUFMTCBMRVRURVIgSUFVREE7TGw7MDtMOzs7OztOOzs7MkM5Mjs7MkM5MgorMkM5NDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgS0FQQTtMdTswO0w7Ozs7O047Ozs7MkM5NTsKKzJDOTU7Q09QVElDIFNNQUxMIExFVFRFUiBLQVBBO0xsOzA7TDs7Ozs7Tjs7OzJDOTQ7OzJDOTQKKzJDOTY7Q09QVElDIENBUElUQUwgTEVUVEVSIExBVUxBO0x1OzA7TDs7Ozs7Tjs7OzsyQzk3OworMkM5NztDT1BUSUMgU01BTEwgTEVUVEVSIExBVUxBO0xsOzA7TDs7Ozs7Tjs7OzJDOTY7OzJDOTYKKzJDOTg7Q09QVElDIENBUElUQUwgTEVUVEVSIE1JO0x1OzA7TDs7Ozs7Tjs7OzsyQzk5OworMkM5OTtDT1BUSUMgU01BTEwgTEVUVEVSIE1JO0xsOzA7TDs7Ozs7Tjs7OzJDOTg7OzJDOTgKKzJDOUE7Q09QVElDIENBUElUQUwgTEVUVEVSIE5JO0x1OzA7TDs7Ozs7Tjs7OzsyQzlCOworMkM5QjtDT1BUSUMgU01BTEwgTEVUVEVSIE5JO0xsOzA7TDs7Ozs7Tjs7OzJDOUE7OzJDOUEKKzJDOUM7Q09QVElDIENBUElUQUwgTEVUVEVSIEtTSTtMdTswO0w7Ozs7O047Ozs7MkM5RDsKKzJDOUQ7Q09QVElDIFNNQUxMIExFVFRFUiBLU0k7TGw7MDtMOzs7OztOOzs7MkM5Qzs7MkM5QworMkM5RTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgTztMdTswO0w7Ozs7O047Ozs7MkM5RjsKKzJDOUY7Q09QVElDIFNNQUxMIExFVFRFUiBPO0xsOzA7TDs7Ozs7Tjs7OzJDOUU7OzJDOUUKKzJDQTA7Q09QVElDIENBUElUQUwgTEVUVEVSIFBJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0ExOworMkNBMTtDT1BUSUMgU01BTEwgTEVUVEVSIFBJO0xsOzA7TDs7Ozs7Tjs7OzJDQTA7OzJDQTAKKzJDQTI7Q09QVElDIENBUElUQUwgTEVUVEVSIFJPO0x1OzA7TDs7Ozs7Tjs7OzsyQ0EzOworMkNBMztDT1BUSUMgU01BTEwgTEVUVEVSIFJPO0xsOzA7TDs7Ozs7Tjs7OzJDQTI7OzJDQTIKKzJDQTQ7Q09QVElDIENBUElUQUwgTEVUVEVSIFNJTUE7THU7MDtMOzs7OztOOzs7OzJDQTU7CisyQ0E1O0NPUFRJQyBTTUFMTCBMRVRURVIgU0lNQTtMbDswO0w7Ozs7O047OzsyQ0E0OzsyQ0E0CisyQ0E2O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBUQVU7THU7MDtMOzs7OztOOzs7OzJDQTc7CisyQ0E3O0NPUFRJQyBTTUFMTCBMRVRURVIgVEFVO0xsOzA7TDs7Ozs7Tjs7OzJDQTY7OzJDQTYKKzJDQTg7Q09QVElDIENBUElUQUwgTEVUVEVSIFVBO0x1OzA7TDs7Ozs7Tjs7OzsyQ0E5OworMkNBOTtDT1BUSUMgU01BTEwgTEVUVEVSIFVBO0xsOzA7TDs7Ozs7Tjs7OzJDQTg7OzJDQTgKKzJDQUE7Q09QVElDIENBUElUQUwgTEVUVEVSIEZJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0FCOworMkNBQjtDT1BUSUMgU01BTEwgTEVUVEVSIEZJO0xsOzA7TDs7Ozs7Tjs7OzJDQUE7OzJDQUEKKzJDQUM7Q09QVElDIENBUElUQUwgTEVUVEVSIEtISTtMdTswO0w7Ozs7O047Ozs7MkNBRDsKKzJDQUQ7Q09QVElDIFNNQUxMIExFVFRFUiBLSEk7TGw7MDtMOzs7OztOOzs7MkNBQzs7MkNBQworMkNBRTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgUFNJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0FGOworMkNBRjtDT1BUSUMgU01BTEwgTEVUVEVSIFBTSTtMbDswO0w7Ozs7O047OzsyQ0FFOzsyQ0FFCisyQ0IwO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPT1U7THU7MDtMOzs7OztOOzs7OzJDQjE7CisyQ0IxO0NPUFRJQyBTTUFMTCBMRVRURVIgT09VO0xsOzA7TDs7Ozs7Tjs7OzJDQjA7OzJDQjAKKzJDQjI7Q09QVElDIENBUElUQUwgTEVUVEVSIERJQUxFQ1QtUCBBTEVGO0x1OzA7TDs7Ozs7Tjs7OzsyQ0IzOworMkNCMztDT1BUSUMgU01BTEwgTEVUVEVSIERJQUxFQ1QtUCBBTEVGO0xsOzA7TDs7Ozs7Tjs7OzJDQjI7OzJDQjIKKzJDQjQ7Q09QVElDIENBUElUQUwgTEVUVEVSIE9MRCBDT1BUSUMgQUlOO0x1OzA7TDs7Ozs7Tjs7OzsyQ0I1OworMkNCNTtDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBDT1BUSUMgQUlOO0xsOzA7TDs7Ozs7Tjs7OzJDQjQ7OzJDQjQKKzJDQjY7Q09QVElDIENBUElUQUwgTEVUVEVSIENSWVBUT0dSQU1NSUMgRUlFO0x1OzA7TDs7Ozs7Tjs7OzsyQ0I3OworMkNCNztDT1BUSUMgU01BTEwgTEVUVEVSIENSWVBUT0dSQU1NSUMgRUlFO0xsOzA7TDs7Ozs7Tjs7OzJDQjY7OzJDQjYKKzJDQjg7Q09QVElDIENBUElUQUwgTEVUVEVSIERJQUxFQ1QtUCBLQVBBO0x1OzA7TDs7Ozs7Tjs7OzsyQ0I5OworMkNCOTtDT1BUSUMgU01BTEwgTEVUVEVSIERJQUxFQ1QtUCBLQVBBO0xsOzA7TDs7Ozs7Tjs7OzJDQjg7OzJDQjgKKzJDQkE7Q09QVElDIENBUElUQUwgTEVUVEVSIERJQUxFQ1QtUCBOSTtMdTswO0w7Ozs7O047Ozs7MkNCQjsKKzJDQkI7Q09QVElDIFNNQUxMIExFVFRFUiBESUFMRUNULVAgTkk7TGw7MDtMOzs7OztOOzs7MkNCQTs7MkNCQQorMkNCQztDT1BUSUMgQ0FQSVRBTCBMRVRURVIgQ1JZUFRPR1JBTU1JQyBOSTtMdTswO0w7Ozs7O047Ozs7MkNCRDsKKzJDQkQ7Q09QVElDIFNNQUxMIExFVFRFUiBDUllQVE9HUkFNTUlDIE5JO0xsOzA7TDs7Ozs7Tjs7OzJDQkM7OzJDQkMKKzJDQkU7Q09QVElDIENBUElUQUwgTEVUVEVSIE9MRCBDT1BUSUMgT09VO0x1OzA7TDs7Ozs7Tjs7OzsyQ0JGOworMkNCRjtDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBDT1BUSUMgT09VO0xsOzA7TDs7Ozs7Tjs7OzJDQkU7OzJDQkUKKzJDQzA7Q09QVElDIENBUElUQUwgTEVUVEVSIFNBTVBJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0MxOworMkNDMTtDT1BUSUMgU01BTEwgTEVUVEVSIFNBTVBJO0xsOzA7TDs7Ozs7Tjs7OzJDQzA7OzJDQzAKKzJDQzI7Q09QVElDIENBUElUQUwgTEVUVEVSIENST1NTRUQgU0hFSTtMdTswO0w7Ozs7O047Ozs7MkNDMzsKKzJDQzM7Q09QVElDIFNNQUxMIExFVFRFUiBDUk9TU0VEIFNIRUk7TGw7MDtMOzs7OztOOzs7MkNDMjs7MkNDMgorMkNDNDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBTSEVJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0M1OworMkNDNTtDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBDT1BUSUMgU0hFSTtMbDswO0w7Ozs7O047OzsyQ0M0OzsyQ0M0CisyQ0M2O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgQ09QVElDIEVTSDtMdTswO0w7Ozs7O047Ozs7MkNDNzsKKzJDQzc7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgQ09QVElDIEVTSDtMbDswO0w7Ozs7O047OzsyQ0M2OzsyQ0M2CisyQ0M4O0NPUFRJQyBDQVBJVEFMIExFVFRFUiBBS0hNSU1JQyBLSEVJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0M5OworMkNDOTtDT1BUSUMgU01BTEwgTEVUVEVSIEFLSE1JTUlDIEtIRUk7TGw7MDtMOzs7OztOOzs7MkNDODs7MkNDOAorMkNDQTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgRElBTEVDVC1QIEhPUkk7THU7MDtMOzs7OztOOzs7OzJDQ0I7CisyQ0NCO0NPUFRJQyBTTUFMTCBMRVRURVIgRElBTEVDVC1QIEhPUkk7TGw7MDtMOzs7OztOOzs7MkNDQTs7MkNDQQorMkNDQztDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBIT1JJO0x1OzA7TDs7Ozs7Tjs7OzsyQ0NEOworMkNDRDtDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBDT1BUSUMgSE9SSTtMbDswO0w7Ozs7O047OzsyQ0NDOzsyQ0NDCisyQ0NFO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgQ09QVElDIEhBO0x1OzA7TDs7Ozs7Tjs7OzsyQ0NGOworMkNDRjtDT1BUSUMgU01BTEwgTEVUVEVSIE9MRCBDT1BUSUMgSEE7TGw7MDtMOzs7OztOOzs7MkNDRTs7MkNDRQorMkNEMDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgTC1TSEFQRUQgSEE7THU7MDtMOzs7OztOOzs7OzJDRDE7CisyQ0QxO0NPUFRJQyBTTUFMTCBMRVRURVIgTC1TSEFQRUQgSEE7TGw7MDtMOzs7OztOOzs7MkNEMDs7MkNEMAorMkNEMjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBIRUk7THU7MDtMOzs7OztOOzs7OzJDRDM7CisyQ0QzO0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIENPUFRJQyBIRUk7TGw7MDtMOzs7OztOOzs7MkNEMjs7MkNEMgorMkNENDtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBIQVQ7THU7MDtMOzs7OztOOzs7OzJDRDU7CisyQ0Q1O0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIENPUFRJQyBIQVQ7TGw7MDtMOzs7OztOOzs7MkNENDs7MkNENAorMkNENjtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBHQU5HSUE7THU7MDtMOzs7OztOOzs7OzJDRDc7CisyQ0Q3O0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIENPUFRJQyBHQU5HSUE7TGw7MDtMOzs7OztOOzs7MkNENjs7MkNENgorMkNEODtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBESkE7THU7MDtMOzs7OztOOzs7OzJDRDk7CisyQ0Q5O0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIENPUFRJQyBESkE7TGw7MDtMOzs7OztOOzs7MkNEODs7MkNEOAorMkNEQTtDT1BUSUMgQ0FQSVRBTCBMRVRURVIgT0xEIENPUFRJQyBTSElNQTtMdTswO0w7Ozs7O047Ozs7MkNEQjsKKzJDREI7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgQ09QVElDIFNISU1BO0xsOzA7TDs7Ozs7Tjs7OzJDREE7OzJDREEKKzJDREM7Q09QVElDIENBUElUQUwgTEVUVEVSIE9MRCBOVUJJQU4gU0hJTUE7THU7MDtMOzs7OztOOzs7OzJDREQ7CisyQ0REO0NPUFRJQyBTTUFMTCBMRVRURVIgT0xEIE5VQklBTiBTSElNQTtMbDswO0w7Ozs7O047OzsyQ0RDOzsyQ0RDCisyQ0RFO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgTlVCSUFOIE5HSTtMdTswO0w7Ozs7O047Ozs7MkNERjsKKzJDREY7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgTlVCSUFOIE5HSTtMbDswO0w7Ozs7O047OzsyQ0RFOzsyQ0RFCisyQ0UwO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgTlVCSUFOIE5ZSTtMdTswO0w7Ozs7O047Ozs7MkNFMTsKKzJDRTE7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgTlVCSUFOIE5ZSTtMbDswO0w7Ozs7O047OzsyQ0UwOzsyQ0UwCisyQ0UyO0NPUFRJQyBDQVBJVEFMIExFVFRFUiBPTEQgTlVCSUFOIFdBVTtMdTswO0w7Ozs7O047Ozs7MkNFMzsKKzJDRTM7Q09QVElDIFNNQUxMIExFVFRFUiBPTEQgTlVCSUFOIFdBVTtMbDswO0w7Ozs7O047OzsyQ0UyOzsyQ0UyCisyQ0U0O0NPUFRJQyBTWU1CT0wgS0FJO0xsOzA7TDs7Ozs7Tjs7Ozs7CisyQ0U1O0NPUFRJQyBTWU1CT0wgTUkgUk87U287MDtPTjs7Ozs7Tjs7Ozs7CisyQ0U2O0NPUFRJQyBTWU1CT0wgUEkgUk87U287MDtPTjs7Ozs7Tjs7Ozs7CisyQ0U3O0NPUFRJQyBTWU1CT0wgU1RBVVJPUztTbzswO09OOzs7OztOOzs7OzsKKzJDRTg7Q09QVElDIFNZTUJPTCBUQVUgUk87U287MDtPTjs7Ozs7Tjs7Ozs7CisyQ0U5O0NPUFRJQyBTWU1CT0wgS0hJIFJPO1NvOzA7T047Ozs7O047Ozs7OworMkNFQTtDT1BUSUMgU1lNQk9MIFNISU1BIFNJTUE7U287MDtPTjs7Ozs7Tjs7Ozs7CisyQ0Y5O0NPUFRJQyBPTEQgTlVCSUFOIEZVTEwgU1RPUDtQbzswO09OOzs7OztOOzs7OzsKKzJDRkE7Q09QVElDIE9MRCBOVUJJQU4gRElSRUNUIFFVRVNUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyQ0ZCO0NPUFRJQyBPTEQgTlVCSUFOIElORElSRUNUIFFVRVNUSU9OIE1BUks7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyQ0ZDO0NPUFRJQyBPTEQgTlVCSUFOIFZFUlNFIERJVklERVI7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyQ0ZEO0NPUFRJQyBGUkFDVElPTiBPTkUgSEFMRjtObzswO09OOzs7OzEvMjtOOzs7OzsKKzJDRkU7Q09QVElDIEZVTEwgU1RPUDtQbzswO09OOzs7OztOOzs7OzsKKzJDRkY7Q09QVElDIE1PUlBIT0xPR0lDQUwgRElWSURFUjtQbzswO09OOzs7OztOOzs7OzsKKzJEMDA7R0VPUkdJQU4gU01BTEwgTEVUVEVSIEFOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBMDs7MTBBMAorMkQwMTtHRU9SR0lBTiBTTUFMTCBMRVRURVIgQkFOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBMTs7MTBBMQorMkQwMjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgR0FOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBMjs7MTBBMgorMkQwMztHRU9SR0lBTiBTTUFMTCBMRVRURVIgRE9OO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBMzs7MTBBMworMkQwNDtHRU9SR0lBTiBTTUFMTCBMRVRURVIgRU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEE0OzsxMEE0CisyRDA1O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBWSU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEE1OzsxMEE1CisyRDA2O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBaRU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEE2OzsxMEE2CisyRDA3O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBUQU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEE3OzsxMEE3CisyRDA4O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBJTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQTg7OzEwQTgKKzJEMDk7R0VPUkdJQU4gU01BTEwgTEVUVEVSIEtBTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQTk7OzEwQTkKKzJEMEE7R0VPUkdJQU4gU01BTEwgTEVUVEVSIExBUztMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQUE7OzEwQUEKKzJEMEI7R0VPUkdJQU4gU01BTEwgTEVUVEVSIE1BTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQUI7OzEwQUIKKzJEMEM7R0VPUkdJQU4gU01BTEwgTEVUVEVSIE5BUjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQUM7OzEwQUMKKzJEMEQ7R0VPUkdJQU4gU01BTEwgTEVUVEVSIE9OO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBRDs7MTBBRAorMkQwRTtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUEFSO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBBRTs7MTBBRQorMkQwRjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgWkhBUjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQUY7OzEwQUYKKzJEMTA7R0VPUkdJQU4gU01BTEwgTEVUVEVSIFJBRTtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQjA7OzEwQjAKKzJEMTE7R0VPUkdJQU4gU01BTEwgTEVUVEVSIFNBTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQjE7OzEwQjEKKzJEMTI7R0VPUkdJQU4gU01BTEwgTEVUVEVSIFRBUjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQjI7OzEwQjIKKzJEMTM7R0VPUkdJQU4gU01BTEwgTEVUVEVSIFVOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCMzs7MTBCMworMkQxNDtHRU9SR0lBTiBTTUFMTCBMRVRURVIgUEhBUjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQjQ7OzEwQjQKKzJEMTU7R0VPUkdJQU4gU01BTEwgTEVUVEVSIEtIQVI7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEI1OzsxMEI1CisyRDE2O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBHSEFOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCNjs7MTBCNgorMkQxNztHRU9SR0lBTiBTTUFMTCBMRVRURVIgUUFSO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCNzs7MTBCNworMkQxODtHRU9SR0lBTiBTTUFMTCBMRVRURVIgU0hJTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQjg7OzEwQjgKKzJEMTk7R0VPUkdJQU4gU01BTEwgTEVUVEVSIENISU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEI5OzsxMEI5CisyRDFBO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDQU47TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEJBOzsxMEJBCisyRDFCO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBKSUw7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEJCOzsxMEJCCisyRDFDO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDSUw7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEJDOzsxMEJDCisyRDFEO0dFT1JHSUFOIFNNQUxMIExFVFRFUiBDSEFSO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCRDs7MTBCRAorMkQxRTtHRU9SR0lBTiBTTUFMTCBMRVRURVIgWEFOO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBCRTs7MTBCRQorMkQxRjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSkhBTjtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQkY7OzEwQkYKKzJEMjA7R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhBRTtMbDswO0w7Ozs7O047O0todXRzdXJpOzEwQzA7OzEwQzAKKzJEMjE7R0VPUkdJQU4gU01BTEwgTEVUVEVSIEhFO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBDMTs7MTBDMQorMkQyMjtHRU9SR0lBTiBTTUFMTCBMRVRURVIgSElFO0xsOzA7TDs7Ozs7Tjs7S2h1dHN1cmk7MTBDMjs7MTBDMgorMkQyMztHRU9SR0lBTiBTTUFMTCBMRVRURVIgV0U7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEMzOzsxMEMzCisyRDI0O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBIQVI7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEM0OzsxMEM0CisyRDI1O0dFT1JHSUFOIFNNQUxMIExFVFRFUiBIT0U7TGw7MDtMOzs7OztOOztLaHV0c3VyaTsxMEM1OzsxMEM1CisyRDMwO1RJRklOQUdIIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMkQzMTtUSUZJTkFHSCBMRVRURVIgWUFCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDMyO1RJRklOQUdIIExFVFRFUiBZQUJIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDMzO1RJRklOQUdIIExFVFRFUiBZQUc7TG87MDtMOzs7OztOOzs7OzsKKzJEMzQ7VElGSU5BR0ggTEVUVEVSIFlBR0hIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDM1O1RJRklOQUdIIExFVFRFUiBCRVJCRVIgQUNBREVNWSBZQUo7TG87MDtMOzs7OztOOzs7OzsKKzJEMzY7VElGSU5BR0ggTEVUVEVSIFlBSjtMbzswO0w7Ozs7O047Ozs7OworMkQzNztUSUZJTkFHSCBMRVRURVIgWUFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDM4O1RJRklOQUdIIExFVFRFUiBZQURIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDM5O1RJRklOQUdIIExFVFRFUiBZQUREO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDNBO1RJRklOQUdIIExFVFRFUiBZQURESDtMbzswO0w7Ozs7O047Ozs7OworMkQzQjtUSUZJTkFHSCBMRVRURVIgWUVZO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDNDO1RJRklOQUdIIExFVFRFUiBZQUY7TG87MDtMOzs7OztOOzs7OzsKKzJEM0Q7VElGSU5BR0ggTEVUVEVSIFlBSztMbzswO0w7Ozs7O047Ozs7OworMkQzRTtUSUZJTkFHSCBMRVRURVIgVFVBUkVHIFlBSztMbzswO0w7Ozs7O047Ozs7OworMkQzRjtUSUZJTkFHSCBMRVRURVIgWUFLSEg7TG87MDtMOzs7OztOOzs7OzsKKzJENDA7VElGSU5BR0ggTEVUVEVSIFlBSDtMbzswO0w7Ozs7O047O1R1YXJlZyB5YWI7OzsKKzJENDE7VElGSU5BR0ggTEVUVEVSIEJFUkJFUiBBQ0FERU1ZIFlBSDtMbzswO0w7Ozs7O047Ozs7OworMkQ0MjtUSUZJTkFHSCBMRVRURVIgVFVBUkVHIFlBSDtMbzswO0w7Ozs7O047Ozs7OworMkQ0MztUSUZJTkFHSCBMRVRURVIgWUFISDtMbzswO0w7Ozs7O047Ozs7OworMkQ0NDtUSUZJTkFHSCBMRVRURVIgWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDQ1O1RJRklOQUdIIExFVFRFUiBZQUtIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDQ2O1RJRklOQUdIIExFVFRFUiBUVUFSRUcgWUFLSDtMbzswO0w7Ozs7O047Ozs7OworMkQ0NztUSUZJTkFHSCBMRVRURVIgWUFRO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDQ4O1RJRklOQUdIIExFVFRFUiBUVUFSRUcgWUFRO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDQ5O1RJRklOQUdIIExFVFRFUiBZSTtMbzswO0w7Ozs7O047Ozs7OworMkQ0QTtUSUZJTkFHSCBMRVRURVIgWUFaSDtMbzswO0w7Ozs7O047Ozs7OworMkQ0QjtUSUZJTkFHSCBMRVRURVIgQUhBR0dBUiBZQVpIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDRDO1RJRklOQUdIIExFVFRFUiBUVUFSRUcgWUFaSDtMbzswO0w7Ozs7O047Ozs7OworMkQ0RDtUSUZJTkFHSCBMRVRURVIgWUFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDRFO1RJRklOQUdIIExFVFRFUiBZQU07TG87MDtMOzs7OztOOzs7OzsKKzJENEY7VElGSU5BR0ggTEVUVEVSIFlBTjtMbzswO0w7Ozs7O047Ozs7OworMkQ1MDtUSUZJTkFHSCBMRVRURVIgVFVBUkVHIFlBR047TG87MDtMOzs7OztOOzs7OzsKKzJENTE7VElGSU5BR0ggTEVUVEVSIFRVQVJFRyBZQU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDUyO1RJRklOQUdIIExFVFRFUiBZQVA7TG87MDtMOzs7OztOOzs7OzsKKzJENTM7VElGSU5BR0ggTEVUVEVSIFlVO0xvOzA7TDs7Ozs7Tjs7VHVhcmVnIHlhdzs7OworMkQ1NDtUSUZJTkFHSCBMRVRURVIgWUFSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDU1O1RJRklOQUdIIExFVFRFUiBZQVJSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDU2O1RJRklOQUdIIExFVFRFUiBZQUdIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDU3O1RJRklOQUdIIExFVFRFUiBUVUFSRUcgWUFHSDtMbzswO0w7Ozs7O047Ozs7OworMkQ1ODtUSUZJTkFHSCBMRVRURVIgQVlFUiBZQUdIO0xvOzA7TDs7Ozs7Tjs7QWRyYXIgeWFqOzs7CisyRDU5O1RJRklOQUdIIExFVFRFUiBZQVM7TG87MDtMOzs7OztOOzs7OzsKKzJENUE7VElGSU5BR0ggTEVUVEVSIFlBU1M7TG87MDtMOzs7OztOOzs7OzsKKzJENUI7VElGSU5BR0ggTEVUVEVSIFlBU0g7TG87MDtMOzs7OztOOzs7OzsKKzJENUM7VElGSU5BR0ggTEVUVEVSIFlBVDtMbzswO0w7Ozs7O047Ozs7OworMkQ1RDtUSUZJTkFHSCBMRVRURVIgWUFUSDtMbzswO0w7Ozs7O047Ozs7OworMkQ1RTtUSUZJTkFHSCBMRVRURVIgWUFDSDtMbzswO0w7Ozs7O047Ozs7OworMkQ1RjtUSUZJTkFHSCBMRVRURVIgWUFUVDtMbzswO0w7Ozs7O047Ozs7OworMkQ2MDtUSUZJTkFHSCBMRVRURVIgWUFWO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDYxO1RJRklOQUdIIExFVFRFUiBZQVc7TG87MDtMOzs7OztOOzs7OzsKKzJENjI7VElGSU5BR0ggTEVUVEVSIFlBWTtMbzswO0w7Ozs7O047Ozs7OworMkQ2MztUSUZJTkFHSCBMRVRURVIgWUFaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDY0O1RJRklOQUdIIExFVFRFUiBUQVdFTExFTUVUIFlBWjtMbzswO0w7Ozs7O047O2hhcnBvb24geWF6Ozs7CisyRDY1O1RJRklOQUdIIExFVFRFUiBZQVpaO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDZGO1RJRklOQUdIIE1PRElGSUVSIExFVFRFUiBMQUJJQUxJWkFUSU9OIE1BUks7TG07MDtMOzxzdXBlcj4gMkQ2MTs7OztOOzt0YW1hdGFydDs7OworMkQ4MDtFVEhJT1BJQyBTWUxMQUJMRSBMT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEODE7RVRISU9QSUMgU1lMTEFCTEUgTU9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDgyO0VUSElPUElDIFNZTExBQkxFIFJPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4MztFVEhJT1BJQyBTWUxMQUJMRSBTT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEODQ7RVRISU9QSUMgU1lMTEFCTEUgU0hPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4NTtFVEhJT1BJQyBTWUxMQUJMRSBCT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEODY7RVRISU9QSUMgU1lMTEFCTEUgVE9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDg3O0VUSElPUElDIFNZTExBQkxFIENPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4ODtFVEhJT1BJQyBTWUxMQUJMRSBOT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEODk7RVRISU9QSUMgU1lMTEFCTEUgTllPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4QTtFVEhJT1BJQyBTWUxMQUJMRSBHTE9UVEFMIE9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDhCO0VUSElPUElDIFNZTExBQkxFIFpPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4QztFVEhJT1BJQyBTWUxMQUJMRSBET0E7TG87MDtMOzs7OztOOzs7OzsKKzJEOEQ7RVRISU9QSUMgU1lMTEFCTEUgRERPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ4RTtFVEhJT1BJQyBTWUxMQUJMRSBKT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEOEY7RVRISU9QSUMgU1lMTEFCTEUgVEhPQTtMbzswO0w7Ozs7O047Ozs7OworMkQ5MDtFVEhJT1BJQyBTWUxMQUJMRSBDSE9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDkxO0VUSElPUElDIFNZTExBQkxFIFBIT0E7TG87MDtMOzs7OztOOzs7OzsKKzJEOTI7RVRISU9QSUMgU1lMTEFCTEUgUE9BO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRDkzO0VUSElPUElDIFNZTExBQkxFIEdHV0E7TG87MDtMOzs7OztOOzs7OzsKKzJEOTQ7RVRISU9QSUMgU1lMTEFCTEUgR0dXSTtMbzswO0w7Ozs7O047Ozs7OworMkQ5NTtFVEhJT1BJQyBTWUxMQUJMRSBHR1dFRTtMbzswO0w7Ozs7O047Ozs7OworMkQ5NjtFVEhJT1BJQyBTWUxMQUJMRSBHR1dFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREEwO0VUSElPUElDIFNZTExBQkxFIFNTQTtMbzswO0w7Ozs7O047Ozs7OworMkRBMTtFVEhJT1BJQyBTWUxMQUJMRSBTU1U7TG87MDtMOzs7OztOOzs7OzsKKzJEQTI7RVRISU9QSUMgU1lMTEFCTEUgU1NJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREEzO0VUSElPUElDIFNZTExBQkxFIFNTQUE7TG87MDtMOzs7OztOOzs7OzsKKzJEQTQ7RVRISU9QSUMgU1lMTEFCTEUgU1NFRTtMbzswO0w7Ozs7O047Ozs7OworMkRBNTtFVEhJT1BJQyBTWUxMQUJMRSBTU0U7TG87MDtMOzs7OztOOzs7OzsKKzJEQTY7RVRISU9QSUMgU1lMTEFCTEUgU1NPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREE4O0VUSElPUElDIFNZTExBQkxFIENDQTtMbzswO0w7Ozs7O047Ozs7OworMkRBOTtFVEhJT1BJQyBTWUxMQUJMRSBDQ1U7TG87MDtMOzs7OztOOzs7OzsKKzJEQUE7RVRISU9QSUMgU1lMTEFCTEUgQ0NJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREFCO0VUSElPUElDIFNZTExBQkxFIENDQUE7TG87MDtMOzs7OztOOzs7OzsKKzJEQUM7RVRISU9QSUMgU1lMTEFCTEUgQ0NFRTtMbzswO0w7Ozs7O047Ozs7OworMkRBRDtFVEhJT1BJQyBTWUxMQUJMRSBDQ0U7TG87MDtMOzs7OztOOzs7OzsKKzJEQUU7RVRISU9QSUMgU1lMTEFCTEUgQ0NPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREIwO0VUSElPUElDIFNZTExBQkxFIFpaQTtMbzswO0w7Ozs7O047Ozs7OworMkRCMTtFVEhJT1BJQyBTWUxMQUJMRSBaWlU7TG87MDtMOzs7OztOOzs7OzsKKzJEQjI7RVRISU9QSUMgU1lMTEFCTEUgWlpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREIzO0VUSElPUElDIFNZTExBQkxFIFpaQUE7TG87MDtMOzs7OztOOzs7OzsKKzJEQjQ7RVRISU9QSUMgU1lMTEFCTEUgWlpFRTtMbzswO0w7Ozs7O047Ozs7OworMkRCNTtFVEhJT1BJQyBTWUxMQUJMRSBaWkU7TG87MDtMOzs7OztOOzs7OzsKKzJEQjY7RVRISU9QSUMgU1lMTEFCTEUgWlpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREI4O0VUSElPUElDIFNZTExBQkxFIENDSEE7TG87MDtMOzs7OztOOzs7OzsKKzJEQjk7RVRISU9QSUMgU1lMTEFCTEUgQ0NIVTtMbzswO0w7Ozs7O047Ozs7OworMkRCQTtFVEhJT1BJQyBTWUxMQUJMRSBDQ0hJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREJCO0VUSElPUElDIFNZTExBQkxFIENDSEFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREJDO0VUSElPUElDIFNZTExBQkxFIENDSEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREJEO0VUSElPUElDIFNZTExBQkxFIENDSEU7TG87MDtMOzs7OztOOzs7OzsKKzJEQkU7RVRISU9QSUMgU1lMTEFCTEUgQ0NITztMbzswO0w7Ozs7O047Ozs7OworMkRDMDtFVEhJT1BJQyBTWUxMQUJMRSBRWUE7TG87MDtMOzs7OztOOzs7OzsKKzJEQzE7RVRISU9QSUMgU1lMTEFCTEUgUVlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREMyO0VUSElPUElDIFNZTExBQkxFIFFZSTtMbzswO0w7Ozs7O047Ozs7OworMkRDMztFVEhJT1BJQyBTWUxMQUJMRSBRWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREM0O0VUSElPUElDIFNZTExBQkxFIFFZRUU7TG87MDtMOzs7OztOOzs7OzsKKzJEQzU7RVRISU9QSUMgU1lMTEFCTEUgUVlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREM2O0VUSElPUElDIFNZTExBQkxFIFFZTztMbzswO0w7Ozs7O047Ozs7OworMkRDODtFVEhJT1BJQyBTWUxMQUJMRSBLWUE7TG87MDtMOzs7OztOOzs7OzsKKzJEQzk7RVRISU9QSUMgU1lMTEFCTEUgS1lVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRENBO0VUSElPUElDIFNZTExBQkxFIEtZSTtMbzswO0w7Ozs7O047Ozs7OworMkRDQjtFVEhJT1BJQyBTWUxMQUJMRSBLWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRENDO0VUSElPUElDIFNZTExBQkxFIEtZRUU7TG87MDtMOzs7OztOOzs7OzsKKzJEQ0Q7RVRISU9QSUMgU1lMTEFCTEUgS1lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRENFO0VUSElPUElDIFNZTExBQkxFIEtZTztMbzswO0w7Ozs7O047Ozs7OworMkREMDtFVEhJT1BJQyBTWUxMQUJMRSBYWUE7TG87MDtMOzs7OztOOzs7OzsKKzJERDE7RVRISU9QSUMgU1lMTEFCTEUgWFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREQyO0VUSElPUElDIFNZTExBQkxFIFhZSTtMbzswO0w7Ozs7O047Ozs7OworMkREMztFVEhJT1BJQyBTWUxMQUJMRSBYWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREQ0O0VUSElPUElDIFNZTExBQkxFIFhZRUU7TG87MDtMOzs7OztOOzs7OzsKKzJERDU7RVRISU9QSUMgU1lMTEFCTEUgWFlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyREQ2O0VUSElPUElDIFNZTExBQkxFIFhZTztMbzswO0w7Ozs7O047Ozs7OworMkREODtFVEhJT1BJQyBTWUxMQUJMRSBHWUE7TG87MDtMOzs7OztOOzs7OzsKKzJERDk7RVRISU9QSUMgU1lMTEFCTEUgR1lVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRERBO0VUSElPUElDIFNZTExBQkxFIEdZSTtMbzswO0w7Ozs7O047Ozs7OworMkREQjtFVEhJT1BJQyBTWUxMQUJMRSBHWUFBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRERDO0VUSElPUElDIFNZTExBQkxFIEdZRUU7TG87MDtMOzs7OztOOzs7OzsKKzJEREQ7RVRISU9QSUMgU1lMTEFCTEUgR1lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRERFO0VUSElPUElDIFNZTExBQkxFIEdZTztMbzswO0w7Ozs7O047Ozs7OworMkUwMDtSSUdIVCBBTkdMRSBTVUJTVElUVVRJT04gTUFSS0VSO1BvOzA7T047Ozs7O047Ozs7OworMkUwMTtSSUdIVCBBTkdMRSBET1RURUQgU1VCU1RJVFVUSU9OIE1BUktFUjtQbzswO09OOzs7OztOOzs7OzsKKzJFMDI7TEVGVCBTVUJTVElUVVRJT04gQlJBQ0tFVDtQaTswO09OOzs7OztZOzs7OzsKKzJFMDM7UklHSFQgU1VCU1RJVFVUSU9OIEJSQUNLRVQ7UGY7MDtPTjs7Ozs7WTs7Ozs7CisyRTA0O0xFRlQgRE9UVEVEIFNVQlNUSVRVVElPTiBCUkFDS0VUO1BpOzA7T047Ozs7O1k7Ozs7OworMkUwNTtSSUdIVCBET1RURUQgU1VCU1RJVFVUSU9OIEJSQUNLRVQ7UGY7MDtPTjs7Ozs7WTs7Ozs7CisyRTA2O1JBSVNFRCBJTlRFUlBPTEFUSU9OIE1BUktFUjtQbzswO09OOzs7OztOOzs7OzsKKzJFMDc7UkFJU0VEIERPVFRFRCBJTlRFUlBPTEFUSU9OIE1BUktFUjtQbzswO09OOzs7OztOOzs7OzsKKzJFMDg7RE9UVEVEIFRSQU5TUE9TSVRJT04gTUFSS0VSO1BvOzA7T047Ozs7O047Ozs7OworMkUwOTtMRUZUIFRSQU5TUE9TSVRJT04gQlJBQ0tFVDtQaTswO09OOzs7OztZOzs7OzsKKzJFMEE7UklHSFQgVFJBTlNQT1NJVElPTiBCUkFDS0VUO1BmOzA7T047Ozs7O1k7Ozs7OworMkUwQjtSQUlTRUQgU1FVQVJFO1BvOzA7T047Ozs7O047Ozs7OworMkUwQztMRUZUIFJBSVNFRCBPTUlTU0lPTiBCUkFDS0VUO1BpOzA7T047Ozs7O1k7Ozs7OworMkUwRDtSSUdIVCBSQUlTRUQgT01JU1NJT04gQlJBQ0tFVDtQZjswO09OOzs7OztZOzs7OzsKKzJFMEU7RURJVE9SSUFMIENPUk9OSVM7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyRTBGO1BBUkFHUkFQSE9TO1BvOzA7T047Ozs7O047Ozs7OworMkUxMDtGT1JLRUQgUEFSQUdSQVBIT1M7UG87MDtPTjs7Ozs7Tjs7Ozs7CisyRTExO1JFVkVSU0VEIEZPUktFRCBQQVJBR1JBUEhPUztQbzswO09OOzs7OztOOzs7OzsKKzJFMTI7SFlQT0RJQVNUT0xFO1BvOzA7T047Ozs7O047Ozs7OworMkUxMztET1RURUQgT0JFTE9TO1BvOzA7T047Ozs7O047Ozs7OworMkUxNDtET1dOV0FSRFMgQU5DT1JBO1BvOzA7T047Ozs7O047Ozs7OworMkUxNTtVUFdBUkRTIEFOQ09SQTtQbzswO09OOzs7OztOOzs7OzsKKzJFMTY7RE9UVEVEIFJJR0hULVBPSU5USU5HIEFOR0xFO1BvOzA7T047Ozs7O047Ozs7OworMkUxNztET1VCTEUgT0JMSVFVRSBIWVBIRU47UGQ7MDtPTjs7Ozs7Tjs7Ozs7CisyRTFDO0xFRlQgTE9XIFBBUkFQSFJBU0UgQlJBQ0tFVDtQaTswO09OOzs7OztZOzs7OzsKKzJFMUQ7UklHSFQgTE9XIFBBUkFQSFJBU0UgQlJBQ0tFVDtQZjswO09OOzs7OztZOzs7OzsKKzJFODA7Q0pLIFJBRElDQUwgUkVQRUFUO1NvOzA7T047Ozs7O047Ozs7OworMkU4MTtDSksgUkFESUNBTCBDTElGRjtTbzswO09OOzs7OztOOzs7OzsKKzJFODI7Q0pLIFJBRElDQUwgU0VDT05EIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFODM7Q0pLIFJBRElDQUwgU0VDT05EIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFODQ7Q0pLIFJBRElDQUwgU0VDT05EIFRIUkVFO1NvOzA7T047Ozs7O047Ozs7OworMkU4NTtDSksgUkFESUNBTCBQRVJTT047U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTg2O0NKSyBSQURJQ0FMIEJPWDtTbzswO09OOzs7OztOOzs7OzsKKzJFODc7Q0pLIFJBRElDQUwgVEFCTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTg4O0NKSyBSQURJQ0FMIEtOSUZFIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFODk7Q0pLIFJBRElDQUwgS05JRkUgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU4QTtDSksgUkFESUNBTCBESVZJTkFUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMkU4QjtDSksgUkFESUNBTCBTRUFMO1NvOzA7T047Ozs7O047Ozs7OworMkU4QztDSksgUkFESUNBTCBTTUFMTCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRThEO0NKSyBSQURJQ0FMIFNNQUxMIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFOEU7Q0pLIFJBRElDQUwgTEFNRSBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRThGO0NKSyBSQURJQ0FMIExBTUUgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU5MDtDSksgUkFESUNBTCBMQU1FIFRIUkVFO1NvOzA7T047Ozs7O047Ozs7OworMkU5MTtDSksgUkFESUNBTCBMQU1FIEZPVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTkyO0NKSyBSQURJQ0FMIFNOQUtFO1NvOzA7T047Ozs7O047Ozs7OworMkU5MztDSksgUkFESUNBTCBUSFJFQUQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTk0O0NKSyBSQURJQ0FMIFNOT1VUIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFOTU7Q0pLIFJBRElDQUwgU05PVVQgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkU5NjtDSksgUkFESUNBTCBIRUFSVCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRTk3O0NKSyBSQURJQ0FMIEhFQVJUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFOTg7Q0pLIFJBRElDQUwgSEFORDtTbzswO09OOzs7OztOOzs7OzsKKzJFOTk7Q0pLIFJBRElDQUwgUkFQO1NvOzA7T047Ozs7O047Ozs7OworMkU5QjtDSksgUkFESUNBTCBDSE9LRTtTbzswO09OOzs7OztOOzs7OzsKKzJFOUM7Q0pLIFJBRElDQUwgU1VOO1NvOzA7T047Ozs7O047Ozs7OworMkU5RDtDSksgUkFESUNBTCBNT09OO1NvOzA7T047Ozs7O047Ozs7OworMkU5RTtDSksgUkFESUNBTCBERUFUSDtTbzswO09OOzs7OztOOzs7OzsKKzJFOUY7Q0pLIFJBRElDQUwgTU9USEVSO1NvOzA7T047PGNvbXBhdD4gNkJDRDs7OztOOzs7OzsKKzJFQTA7Q0pLIFJBRElDQUwgQ0lWSUxJQU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUExO0NKSyBSQURJQ0FMIFdBVEVSIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQTI7Q0pLIFJBRElDQUwgV0FURVIgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVBMztDSksgUkFESUNBTCBGSVJFO1NvOzA7T047Ozs7O047Ozs7OworMkVBNDtDSksgUkFESUNBTCBQQVcgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVBNTtDSksgUkFESUNBTCBQQVcgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVBNjtDSksgUkFESUNBTCBTSU1QTElGSUVEIEhBTEYgVFJFRSBUUlVOSztTbzswO09OOzs7OztOOzs7OzsKKzJFQTc7Q0pLIFJBRElDQUwgQ09XO1NvOzA7T047Ozs7O047Ozs7OworMkVBODtDSksgUkFESUNBTCBET0c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUE5O0NKSyBSQURJQ0FMIEpBREU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUFBO0NKSyBSQURJQ0FMIEJPTFQgT0YgQ0xPVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUFCO0NKSyBSQURJQ0FMIEVZRTtTbzswO09OOzs7OztOOzs7OzsKKzJFQUM7Q0pLIFJBRElDQUwgU1BJUklUIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQUQ7Q0pLIFJBRElDQUwgU1BJUklUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQUU7Q0pLIFJBRElDQUwgQkFNQk9PO1NvOzA7T047Ozs7O047Ozs7OworMkVBRjtDSksgUkFESUNBTCBTSUxLO1NvOzA7T047Ozs7O047Ozs7OworMkVCMDtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgU0lMSztTbzswO09OOzs7OztOOzs7OzsKKzJFQjE7Q0pLIFJBRElDQUwgTkVUIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQjI7Q0pLIFJBRElDQUwgTkVUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQjM7Q0pLIFJBRElDQUwgTkVUIFRIUkVFO1NvOzA7T047Ozs7O047Ozs7OworMkVCNDtDSksgUkFESUNBTCBORVQgRk9VUjtTbzswO09OOzs7OztOOzs7OzsKKzJFQjU7Q0pLIFJBRElDQUwgTUVTSDtTbzswO09OOzs7OztOOzs7OzsKKzJFQjY7Q0pLIFJBRElDQUwgU0hFRVA7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUI3O0NKSyBSQURJQ0FMIFJBTTtTbzswO09OOzs7OztOOzs7OzsKKzJFQjg7Q0pLIFJBRElDQUwgRVdFO1NvOzA7T047Ozs7O047Ozs7OworMkVCOTtDSksgUkFESUNBTCBPTEQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUJBO0NKSyBSQURJQ0FMIEJSVVNIIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQkI7Q0pLIFJBRElDQUwgQlJVU0ggVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVCQztDSksgUkFESUNBTCBNRUFUO1NvOzA7T047Ozs7O047Ozs7OworMkVCRDtDSksgUkFESUNBTCBNT1JUQVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUJFO0NKSyBSQURJQ0FMIEdSQVNTIE9ORTtTbzswO09OOzs7OztOOzs7OzsKKzJFQkY7Q0pLIFJBRElDQUwgR1JBU1MgVFdPO1NvOzA7T047Ozs7O047Ozs7OworMkVDMDtDSksgUkFESUNBTCBHUkFTUyBUSFJFRTtTbzswO09OOzs7OztOOzs7OzsKKzJFQzE7Q0pLIFJBRElDQUwgVElHRVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUMyO0NKSyBSQURJQ0FMIENMT1RIRVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUMzO0NKSyBSQURJQ0FMIFdFU1QgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVDNDtDSksgUkFESUNBTCBXRVNUIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQzU7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFNFRTtTbzswO09OOzs7OztOOzs7OzsKKzJFQzY7Q0pLIFJBRElDQUwgU0lNUExJRklFRCBIT1JOO1NvOzA7T047Ozs7O047Ozs7OworMkVDNztDSksgUkFESUNBTCBIT1JOO1NvOzA7T047Ozs7O047Ozs7OworMkVDODtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgU1BFRUNIO1NvOzA7T047Ozs7O047Ozs7OworMkVDOTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgU0hFTEw7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUNBO0NKSyBSQURJQ0FMIEZPT1Q7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUNCO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBDQVJUO1NvOzA7T047Ozs7O047Ozs7OworMkVDQztDSksgUkFESUNBTCBTSU1QTElGSUVEIFdBTEs7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUNEO0NKSyBSQURJQ0FMIFdBTEsgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVDRTtDSksgUkFESUNBTCBXQUxLIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFQ0Y7Q0pLIFJBRElDQUwgQ0lUWTtTbzswO09OOzs7OztOOzs7OzsKKzJFRDA7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEdPTEQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQxO0NKSyBSQURJQ0FMIExPTkcgT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVEMjtDSksgUkFESUNBTCBMT05HIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFRDM7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIExPTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQ0O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBHQVRFO1NvOzA7T047Ozs7O047Ozs7OworMkVENTtDSksgUkFESUNBTCBNT1VORCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUQ2O0NKSyBSQURJQ0FMIE1PVU5EIFRXTztTbzswO09OOzs7OztOOzs7OzsKKzJFRDc7Q0pLIFJBRElDQUwgUkFJTjtTbzswO09OOzs7OztOOzs7OzsKKzJFRDg7Q0pLIFJBRElDQUwgQkxVRTtTbzswO09OOzs7OztOOzs7OzsKKzJFRDk7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFRBTk5FRCBMRUFUSEVSO1NvOzA7T047Ozs7O047Ozs7OworMkVEQTtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgTEVBRjtTbzswO09OOzs7OztOOzs7OzsKKzJFREI7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFdJTkQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRURDO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBGTFk7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUREO0NKSyBSQURJQ0FMIEVBVCBPTkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRURFO0NKSyBSQURJQ0FMIEVBVCBUV087U287MDtPTjs7Ozs7Tjs7Ozs7CisyRURGO0NKSyBSQURJQ0FMIEVBVCBUSFJFRTtTbzswO09OOzs7OztOOzs7OzsKKzJFRTA7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEVBVDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTE7Q0pLIFJBRElDQUwgSEVBRDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTI7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEhPUlNFO1NvOzA7T047Ozs7O047Ozs7OworMkVFMztDSksgUkFESUNBTCBCT05FO1NvOzA7T047Ozs7O047Ozs7OworMkVFNDtDSksgUkFESUNBTCBHSE9TVDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTU7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEZJU0g7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUU2O0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBCSVJEO1NvOzA7T047Ozs7O047Ozs7OworMkVFNztDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgU0FMVDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTg7Q0pLIFJBRElDQUwgU0lNUExJRklFRCBXSEVBVDtTbzswO09OOzs7OztOOzs7OzsKKzJFRTk7Q0pLIFJBRElDQUwgU0lNUExJRklFRCBZRUxMT1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUVBO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBGUk9HO1NvOzA7T047Ozs7O047Ozs7OworMkVFQjtDSksgUkFESUNBTCBKLVNJTVBMSUZJRUQgRVZFTjtTbzswO09OOzs7OztOOzs7OzsKKzJFRUM7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIEVWRU47U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUVEO0NKSyBSQURJQ0FMIEotU0lNUExJRklFRCBUT09USDtTbzswO09OOzs7OztOOzs7OzsKKzJFRUU7Q0pLIFJBRElDQUwgQy1TSU1QTElGSUVEIFRPT1RIO1NvOzA7T047Ozs7O047Ozs7OworMkVFRjtDSksgUkFESUNBTCBKLVNJTVBMSUZJRUQgRFJBR09OO1NvOzA7T047Ozs7O047Ozs7OworMkVGMDtDSksgUkFESUNBTCBDLVNJTVBMSUZJRUQgRFJBR09OO1NvOzA7T047Ozs7O047Ozs7OworMkVGMTtDSksgUkFESUNBTCBUVVJUTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUYyO0NKSyBSQURJQ0FMIEotU0lNUExJRklFRCBUVVJUTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRUYzO0NKSyBSQURJQ0FMIEMtU0lNUExJRklFRCBUVVJUTEU7U287MDtPTjs8Y29tcGF0PiA5RjlGOzs7O047Ozs7OworMkYwMDtLQU5HWEkgUkFESUNBTCBPTkU7U287MDtPTjs8Y29tcGF0PiA0RTAwOzs7O047Ozs7OworMkYwMTtLQU5HWEkgUkFESUNBTCBMSU5FO1NvOzA7T047PGNvbXBhdD4gNEUyODs7OztOOzs7OzsKKzJGMDI7S0FOR1hJIFJBRElDQUwgRE9UO1NvOzA7T047PGNvbXBhdD4gNEUzNjs7OztOOzs7OzsKKzJGMDM7S0FOR1hJIFJBRElDQUwgU0xBU0g7U287MDtPTjs8Y29tcGF0PiA0RTNGOzs7O047Ozs7OworMkYwNDtLQU5HWEkgUkFESUNBTCBTRUNPTkQ7U287MDtPTjs8Y29tcGF0PiA0RTU5Ozs7O047Ozs7OworMkYwNTtLQU5HWEkgUkFESUNBTCBIT09LO1NvOzA7T047PGNvbXBhdD4gNEU4NTs7OztOOzs7OzsKKzJGMDY7S0FOR1hJIFJBRElDQUwgVFdPO1NvOzA7T047PGNvbXBhdD4gNEU4Qzs7OztOOzs7OzsKKzJGMDc7S0FOR1hJIFJBRElDQUwgTElEO1NvOzA7T047PGNvbXBhdD4gNEVBMDs7OztOOzs7OzsKKzJGMDg7S0FOR1hJIFJBRElDQUwgTUFOO1NvOzA7T047PGNvbXBhdD4gNEVCQTs7OztOOzs7OzsKKzJGMDk7S0FOR1hJIFJBRElDQUwgTEVHUztTbzswO09OOzxjb21wYXQ+IDUxM0Y7Ozs7Tjs7Ozs7CisyRjBBO0tBTkdYSSBSQURJQ0FMIEVOVEVSO1NvOzA7T047PGNvbXBhdD4gNTE2NTs7OztOOzs7OzsKKzJGMEI7S0FOR1hJIFJBRElDQUwgRUlHSFQ7U287MDtPTjs8Y29tcGF0PiA1MTZCOzs7O047Ozs7OworMkYwQztLQU5HWEkgUkFESUNBTCBET1dOIEJPWDtTbzswO09OOzxjb21wYXQ+IDUxODI7Ozs7Tjs7Ozs7CisyRjBEO0tBTkdYSSBSQURJQ0FMIENPVkVSO1NvOzA7T047PGNvbXBhdD4gNTE5Njs7OztOOzs7OzsKKzJGMEU7S0FOR1hJIFJBRElDQUwgSUNFO1NvOzA7T047PGNvbXBhdD4gNTFBQjs7OztOOzs7OzsKKzJGMEY7S0FOR1hJIFJBRElDQUwgVEFCTEU7U287MDtPTjs8Y29tcGF0PiA1MUUwOzs7O047Ozs7OworMkYxMDtLQU5HWEkgUkFESUNBTCBPUEVOIEJPWDtTbzswO09OOzxjb21wYXQ+IDUxRjU7Ozs7Tjs7Ozs7CisyRjExO0tBTkdYSSBSQURJQ0FMIEtOSUZFO1NvOzA7T047PGNvbXBhdD4gNTIwMDs7OztOOzs7OzsKKzJGMTI7S0FOR1hJIFJBRElDQUwgUE9XRVI7U287MDtPTjs8Y29tcGF0PiA1MjlCOzs7O047Ozs7OworMkYxMztLQU5HWEkgUkFESUNBTCBXUkFQO1NvOzA7T047PGNvbXBhdD4gNTJGOTs7OztOOzs7OzsKKzJGMTQ7S0FOR1hJIFJBRElDQUwgU1BPT047U287MDtPTjs8Y29tcGF0PiA1MzE1Ozs7O047Ozs7OworMkYxNTtLQU5HWEkgUkFESUNBTCBSSUdIVCBPUEVOIEJPWDtTbzswO09OOzxjb21wYXQ+IDUzMUE7Ozs7Tjs7Ozs7CisyRjE2O0tBTkdYSSBSQURJQ0FMIEhJRElORyBFTkNMT1NVUkU7U287MDtPTjs8Y29tcGF0PiA1MzM4Ozs7O047Ozs7OworMkYxNztLQU5HWEkgUkFESUNBTCBURU47U287MDtPTjs8Y29tcGF0PiA1MzQxOzs7O047Ozs7OworMkYxODtLQU5HWEkgUkFESUNBTCBESVZJTkFUSU9OO1NvOzA7T047PGNvbXBhdD4gNTM1Qzs7OztOOzs7OzsKKzJGMTk7S0FOR1hJIFJBRElDQUwgU0VBTDtTbzswO09OOzxjb21wYXQ+IDUzNjk7Ozs7Tjs7Ozs7CisyRjFBO0tBTkdYSSBSQURJQ0FMIENMSUZGO1NvOzA7T047PGNvbXBhdD4gNTM4Mjs7OztOOzs7OzsKKzJGMUI7S0FOR1hJIFJBRElDQUwgUFJJVkFURTtTbzswO09OOzxjb21wYXQ+IDUzQjY7Ozs7Tjs7Ozs7CisyRjFDO0tBTkdYSSBSQURJQ0FMIEFHQUlOO1NvOzA7T047PGNvbXBhdD4gNTNDODs7OztOOzs7OzsKKzJGMUQ7S0FOR1hJIFJBRElDQUwgTU9VVEg7U287MDtPTjs8Y29tcGF0PiA1M0UzOzs7O047Ozs7OworMkYxRTtLQU5HWEkgUkFESUNBTCBFTkNMT1NVUkU7U287MDtPTjs8Y29tcGF0PiA1NkQ3Ozs7O047Ozs7OworMkYxRjtLQU5HWEkgUkFESUNBTCBFQVJUSDtTbzswO09OOzxjb21wYXQ+IDU3MUY7Ozs7Tjs7Ozs7CisyRjIwO0tBTkdYSSBSQURJQ0FMIFNDSE9MQVI7U287MDtPTjs8Y29tcGF0PiA1OEVCOzs7O047Ozs7OworMkYyMTtLQU5HWEkgUkFESUNBTCBHTztTbzswO09OOzxjb21wYXQ+IDU5MDI7Ozs7Tjs7Ozs7CisyRjIyO0tBTkdYSSBSQURJQ0FMIEdPIFNMT1dMWTtTbzswO09OOzxjb21wYXQ+IDU5MEE7Ozs7Tjs7Ozs7CisyRjIzO0tBTkdYSSBSQURJQ0FMIEVWRU5JTkc7U287MDtPTjs8Y29tcGF0PiA1OTE1Ozs7O047Ozs7OworMkYyNDtLQU5HWEkgUkFESUNBTCBCSUc7U287MDtPTjs8Y29tcGF0PiA1OTI3Ozs7O047Ozs7OworMkYyNTtLQU5HWEkgUkFESUNBTCBXT01BTjtTbzswO09OOzxjb21wYXQ+IDU5NzM7Ozs7Tjs7Ozs7CisyRjI2O0tBTkdYSSBSQURJQ0FMIENISUxEO1NvOzA7T047PGNvbXBhdD4gNUI1MDs7OztOOzs7OzsKKzJGMjc7S0FOR1hJIFJBRElDQUwgUk9PRjtTbzswO09OOzxjb21wYXQ+IDVCODA7Ozs7Tjs7Ozs7CisyRjI4O0tBTkdYSSBSQURJQ0FMIElOQ0g7U287MDtPTjs8Y29tcGF0PiA1QkY4Ozs7O047Ozs7OworMkYyOTtLQU5HWEkgUkFESUNBTCBTTUFMTDtTbzswO09OOzxjb21wYXQ+IDVDMEY7Ozs7Tjs7Ozs7CisyRjJBO0tBTkdYSSBSQURJQ0FMIExBTUU7U287MDtPTjs8Y29tcGF0PiA1QzIyOzs7O047Ozs7OworMkYyQjtLQU5HWEkgUkFESUNBTCBDT1JQU0U7U287MDtPTjs8Y29tcGF0PiA1QzM4Ozs7O047Ozs7OworMkYyQztLQU5HWEkgUkFESUNBTCBTUFJPVVQ7U287MDtPTjs8Y29tcGF0PiA1QzZFOzs7O047Ozs7OworMkYyRDtLQU5HWEkgUkFESUNBTCBNT1VOVEFJTjtTbzswO09OOzxjb21wYXQ+IDVDNzE7Ozs7Tjs7Ozs7CisyRjJFO0tBTkdYSSBSQURJQ0FMIFJJVkVSO1NvOzA7T047PGNvbXBhdD4gNUREQjs7OztOOzs7OzsKKzJGMkY7S0FOR1hJIFJBRElDQUwgV09SSztTbzswO09OOzxjb21wYXQ+IDVERTU7Ozs7Tjs7Ozs7CisyRjMwO0tBTkdYSSBSQURJQ0FMIE9ORVNFTEY7U287MDtPTjs8Y29tcGF0PiA1REYxOzs7O047Ozs7OworMkYzMTtLQU5HWEkgUkFESUNBTCBUVVJCQU47U287MDtPTjs8Y29tcGF0PiA1REZFOzs7O047Ozs7OworMkYzMjtLQU5HWEkgUkFESUNBTCBEUlk7U287MDtPTjs8Y29tcGF0PiA1RTcyOzs7O047Ozs7OworMkYzMztLQU5HWEkgUkFESUNBTCBTSE9SVCBUSFJFQUQ7U287MDtPTjs8Y29tcGF0PiA1RTdBOzs7O047Ozs7OworMkYzNDtLQU5HWEkgUkFESUNBTCBET1RURUQgQ0xJRkY7U287MDtPTjs8Y29tcGF0PiA1RTdGOzs7O047Ozs7OworMkYzNTtLQU5HWEkgUkFESUNBTCBMT05HIFNUUklERTtTbzswO09OOzxjb21wYXQ+IDVFRjQ7Ozs7Tjs7Ozs7CisyRjM2O0tBTkdYSSBSQURJQ0FMIFRXTyBIQU5EUztTbzswO09OOzxjb21wYXQ+IDVFRkU7Ozs7Tjs7Ozs7CisyRjM3O0tBTkdYSSBSQURJQ0FMIFNIT09UO1NvOzA7T047PGNvbXBhdD4gNUYwQjs7OztOOzs7OzsKKzJGMzg7S0FOR1hJIFJBRElDQUwgQk9XO1NvOzA7T047PGNvbXBhdD4gNUYxMzs7OztOOzs7OzsKKzJGMzk7S0FOR1hJIFJBRElDQUwgU05PVVQ7U287MDtPTjs8Y29tcGF0PiA1RjUwOzs7O047Ozs7OworMkYzQTtLQU5HWEkgUkFESUNBTCBCUklTVExFO1NvOzA7T047PGNvbXBhdD4gNUY2MTs7OztOOzs7OzsKKzJGM0I7S0FOR1hJIFJBRElDQUwgU1RFUDtTbzswO09OOzxjb21wYXQ+IDVGNzM7Ozs7Tjs7Ozs7CisyRjNDO0tBTkdYSSBSQURJQ0FMIEhFQVJUO1NvOzA7T047PGNvbXBhdD4gNUZDMzs7OztOOzs7OzsKKzJGM0Q7S0FOR1hJIFJBRElDQUwgSEFMQkVSRDtTbzswO09OOzxjb21wYXQ+IDYyMDg7Ozs7Tjs7Ozs7CisyRjNFO0tBTkdYSSBSQURJQ0FMIERPT1I7U287MDtPTjs8Y29tcGF0PiA2MjM2Ozs7O047Ozs7OworMkYzRjtLQU5HWEkgUkFESUNBTCBIQU5EO1NvOzA7T047PGNvbXBhdD4gNjI0Qjs7OztOOzs7OzsKKzJGNDA7S0FOR1hJIFJBRElDQUwgQlJBTkNIO1NvOzA7T047PGNvbXBhdD4gNjUyRjs7OztOOzs7OzsKKzJGNDE7S0FOR1hJIFJBRElDQUwgUkFQO1NvOzA7T047PGNvbXBhdD4gNjUzNDs7OztOOzs7OzsKKzJGNDI7S0FOR1hJIFJBRElDQUwgU0NSSVBUO1NvOzA7T047PGNvbXBhdD4gNjU4Nzs7OztOOzs7OzsKKzJGNDM7S0FOR1hJIFJBRElDQUwgRElQUEVSO1NvOzA7T047PGNvbXBhdD4gNjU5Nzs7OztOOzs7OzsKKzJGNDQ7S0FOR1hJIFJBRElDQUwgQVhFO1NvOzA7T047PGNvbXBhdD4gNjVBNDs7OztOOzs7OzsKKzJGNDU7S0FOR1hJIFJBRElDQUwgU1FVQVJFO1NvOzA7T047PGNvbXBhdD4gNjVCOTs7OztOOzs7OzsKKzJGNDY7S0FOR1hJIFJBRElDQUwgTk9UO1NvOzA7T047PGNvbXBhdD4gNjVFMDs7OztOOzs7OzsKKzJGNDc7S0FOR1hJIFJBRElDQUwgU1VOO1NvOzA7T047PGNvbXBhdD4gNjVFNTs7OztOOzs7OzsKKzJGNDg7S0FOR1hJIFJBRElDQUwgU0FZO1NvOzA7T047PGNvbXBhdD4gNjZGMDs7OztOOzs7OzsKKzJGNDk7S0FOR1hJIFJBRElDQUwgTU9PTjtTbzswO09OOzxjb21wYXQ+IDY3MDg7Ozs7Tjs7Ozs7CisyRjRBO0tBTkdYSSBSQURJQ0FMIFRSRUU7U287MDtPTjs8Y29tcGF0PiA2NzI4Ozs7O047Ozs7OworMkY0QjtLQU5HWEkgUkFESUNBTCBMQUNLO1NvOzA7T047PGNvbXBhdD4gNkIyMDs7OztOOzs7OzsKKzJGNEM7S0FOR1hJIFJBRElDQUwgU1RPUDtTbzswO09OOzxjb21wYXQ+IDZCNjI7Ozs7Tjs7Ozs7CisyRjREO0tBTkdYSSBSQURJQ0FMIERFQVRIO1NvOzA7T047PGNvbXBhdD4gNkI3OTs7OztOOzs7OzsKKzJGNEU7S0FOR1hJIFJBRElDQUwgV0VBUE9OO1NvOzA7T047PGNvbXBhdD4gNkJCMzs7OztOOzs7OzsKKzJGNEY7S0FOR1hJIFJBRElDQUwgRE8gTk9UO1NvOzA7T047PGNvbXBhdD4gNkJDQjs7OztOOzs7OzsKKzJGNTA7S0FOR1hJIFJBRElDQUwgQ09NUEFSRTtTbzswO09OOzxjb21wYXQ+IDZCRDQ7Ozs7Tjs7Ozs7CisyRjUxO0tBTkdYSSBSQURJQ0FMIEZVUjtTbzswO09OOzxjb21wYXQ+IDZCREI7Ozs7Tjs7Ozs7CisyRjUyO0tBTkdYSSBSQURJQ0FMIENMQU47U287MDtPTjs8Y29tcGF0PiA2QzBGOzs7O047Ozs7OworMkY1MztLQU5HWEkgUkFESUNBTCBTVEVBTTtTbzswO09OOzxjb21wYXQ+IDZDMTQ7Ozs7Tjs7Ozs7CisyRjU0O0tBTkdYSSBSQURJQ0FMIFdBVEVSO1NvOzA7T047PGNvbXBhdD4gNkMzNDs7OztOOzs7OzsKKzJGNTU7S0FOR1hJIFJBRElDQUwgRklSRTtTbzswO09OOzxjb21wYXQ+IDcwNkI7Ozs7Tjs7Ozs7CisyRjU2O0tBTkdYSSBSQURJQ0FMIENMQVc7U287MDtPTjs8Y29tcGF0PiA3MjJBOzs7O047Ozs7OworMkY1NztLQU5HWEkgUkFESUNBTCBGQVRIRVI7U287MDtPTjs8Y29tcGF0PiA3MjM2Ozs7O047Ozs7OworMkY1ODtLQU5HWEkgUkFESUNBTCBET1VCTEUgWDtTbzswO09OOzxjb21wYXQ+IDcyM0I7Ozs7Tjs7Ozs7CisyRjU5O0tBTkdYSSBSQURJQ0FMIEhBTEYgVFJFRSBUUlVOSztTbzswO09OOzxjb21wYXQ+IDcyM0Y7Ozs7Tjs7Ozs7CisyRjVBO0tBTkdYSSBSQURJQ0FMIFNMSUNFO1NvOzA7T047PGNvbXBhdD4gNzI0Nzs7OztOOzs7OzsKKzJGNUI7S0FOR1hJIFJBRElDQUwgRkFORztTbzswO09OOzxjb21wYXQ+IDcyNTk7Ozs7Tjs7Ozs7CisyRjVDO0tBTkdYSSBSQURJQ0FMIENPVztTbzswO09OOzxjb21wYXQ+IDcyNUI7Ozs7Tjs7Ozs7CisyRjVEO0tBTkdYSSBSQURJQ0FMIERPRztTbzswO09OOzxjb21wYXQ+IDcyQUM7Ozs7Tjs7Ozs7CisyRjVFO0tBTkdYSSBSQURJQ0FMIFBST0ZPVU5EO1NvOzA7T047PGNvbXBhdD4gNzM4NDs7OztOOzs7OzsKKzJGNUY7S0FOR1hJIFJBRElDQUwgSkFERTtTbzswO09OOzxjb21wYXQ+IDczODk7Ozs7Tjs7Ozs7CisyRjYwO0tBTkdYSSBSQURJQ0FMIE1FTE9OO1NvOzA7T047PGNvbXBhdD4gNzREQzs7OztOOzs7OzsKKzJGNjE7S0FOR1hJIFJBRElDQUwgVElMRTtTbzswO09OOzxjb21wYXQ+IDc0RTY7Ozs7Tjs7Ozs7CisyRjYyO0tBTkdYSSBSQURJQ0FMIFNXRUVUO1NvOzA7T047PGNvbXBhdD4gNzUxODs7OztOOzs7OzsKKzJGNjM7S0FOR1hJIFJBRElDQUwgTElGRTtTbzswO09OOzxjb21wYXQ+IDc1MUY7Ozs7Tjs7Ozs7CisyRjY0O0tBTkdYSSBSQURJQ0FMIFVTRTtTbzswO09OOzxjb21wYXQ+IDc1Mjg7Ozs7Tjs7Ozs7CisyRjY1O0tBTkdYSSBSQURJQ0FMIEZJRUxEO1NvOzA7T047PGNvbXBhdD4gNzUzMDs7OztOOzs7OzsKKzJGNjY7S0FOR1hJIFJBRElDQUwgQk9MVCBPRiBDTE9USDtTbzswO09OOzxjb21wYXQ+IDc1OEI7Ozs7Tjs7Ozs7CisyRjY3O0tBTkdYSSBSQURJQ0FMIFNJQ0tORVNTO1NvOzA7T047PGNvbXBhdD4gNzU5Mjs7OztOOzs7OzsKKzJGNjg7S0FOR1hJIFJBRElDQUwgRE9UVEVEIFRFTlQ7U287MDtPTjs8Y29tcGF0PiA3Njc2Ozs7O047Ozs7OworMkY2OTtLQU5HWEkgUkFESUNBTCBXSElURTtTbzswO09OOzxjb21wYXQ+IDc2N0Q7Ozs7Tjs7Ozs7CisyRjZBO0tBTkdYSSBSQURJQ0FMIFNLSU47U287MDtPTjs8Y29tcGF0PiA3NkFFOzs7O047Ozs7OworMkY2QjtLQU5HWEkgUkFESUNBTCBESVNIO1NvOzA7T047PGNvbXBhdD4gNzZCRjs7OztOOzs7OzsKKzJGNkM7S0FOR1hJIFJBRElDQUwgRVlFO1NvOzA7T047PGNvbXBhdD4gNzZFRTs7OztOOzs7OzsKKzJGNkQ7S0FOR1hJIFJBRElDQUwgU1BFQVI7U287MDtPTjs8Y29tcGF0PiA3N0RCOzs7O047Ozs7OworMkY2RTtLQU5HWEkgUkFESUNBTCBBUlJPVztTbzswO09OOzxjb21wYXQ+IDc3RTI7Ozs7Tjs7Ozs7CisyRjZGO0tBTkdYSSBSQURJQ0FMIFNUT05FO1NvOzA7T047PGNvbXBhdD4gNzdGMzs7OztOOzs7OzsKKzJGNzA7S0FOR1hJIFJBRElDQUwgU1BJUklUO1NvOzA7T047PGNvbXBhdD4gNzkzQTs7OztOOzs7OzsKKzJGNzE7S0FOR1hJIFJBRElDQUwgVFJBQ0s7U287MDtPTjs8Y29tcGF0PiA3OUI4Ozs7O047Ozs7OworMkY3MjtLQU5HWEkgUkFESUNBTCBHUkFJTjtTbzswO09OOzxjb21wYXQ+IDc5QkU7Ozs7Tjs7Ozs7CisyRjczO0tBTkdYSSBSQURJQ0FMIENBVkU7U287MDtPTjs8Y29tcGF0PiA3QTc0Ozs7O047Ozs7OworMkY3NDtLQU5HWEkgUkFESUNBTCBTVEFORDtTbzswO09OOzxjb21wYXQ+IDdBQ0I7Ozs7Tjs7Ozs7CisyRjc1O0tBTkdYSSBSQURJQ0FMIEJBTUJPTztTbzswO09OOzxjb21wYXQ+IDdBRjk7Ozs7Tjs7Ozs7CisyRjc2O0tBTkdYSSBSQURJQ0FMIFJJQ0U7U287MDtPTjs8Y29tcGF0PiA3QzczOzs7O047Ozs7OworMkY3NztLQU5HWEkgUkFESUNBTCBTSUxLO1NvOzA7T047PGNvbXBhdD4gN0NGODs7OztOOzs7OzsKKzJGNzg7S0FOR1hJIFJBRElDQUwgSkFSO1NvOzA7T047PGNvbXBhdD4gN0YzNjs7OztOOzs7OzsKKzJGNzk7S0FOR1hJIFJBRElDQUwgTkVUO1NvOzA7T047PGNvbXBhdD4gN0Y1MTs7OztOOzs7OzsKKzJGN0E7S0FOR1hJIFJBRElDQUwgU0hFRVA7U287MDtPTjs8Y29tcGF0PiA3RjhBOzs7O047Ozs7OworMkY3QjtLQU5HWEkgUkFESUNBTCBGRUFUSEVSO1NvOzA7T047PGNvbXBhdD4gN0ZCRDs7OztOOzs7OzsKKzJGN0M7S0FOR1hJIFJBRElDQUwgT0xEO1NvOzA7T047PGNvbXBhdD4gODAwMTs7OztOOzs7OzsKKzJGN0Q7S0FOR1hJIFJBRElDQUwgQU5EO1NvOzA7T047PGNvbXBhdD4gODAwQzs7OztOOzs7OzsKKzJGN0U7S0FOR1hJIFJBRElDQUwgUExPVztTbzswO09OOzxjb21wYXQ+IDgwMTI7Ozs7Tjs7Ozs7CisyRjdGO0tBTkdYSSBSQURJQ0FMIEVBUjtTbzswO09OOzxjb21wYXQ+IDgwMzM7Ozs7Tjs7Ozs7CisyRjgwO0tBTkdYSSBSQURJQ0FMIEJSVVNIO1NvOzA7T047PGNvbXBhdD4gODA3Rjs7OztOOzs7OzsKKzJGODE7S0FOR1hJIFJBRElDQUwgTUVBVDtTbzswO09OOzxjb21wYXQ+IDgwODk7Ozs7Tjs7Ozs7CisyRjgyO0tBTkdYSSBSQURJQ0FMIE1JTklTVEVSO1NvOzA7T047PGNvbXBhdD4gODFFMzs7OztOOzs7OzsKKzJGODM7S0FOR1hJIFJBRElDQUwgU0VMRjtTbzswO09OOzxjb21wYXQ+IDgxRUE7Ozs7Tjs7Ozs7CisyRjg0O0tBTkdYSSBSQURJQ0FMIEFSUklWRTtTbzswO09OOzxjb21wYXQ+IDgxRjM7Ozs7Tjs7Ozs7CisyRjg1O0tBTkdYSSBSQURJQ0FMIE1PUlRBUjtTbzswO09OOzxjb21wYXQ+IDgxRkM7Ozs7Tjs7Ozs7CisyRjg2O0tBTkdYSSBSQURJQ0FMIFRPTkdVRTtTbzswO09OOzxjb21wYXQ+IDgyMEM7Ozs7Tjs7Ozs7CisyRjg3O0tBTkdYSSBSQURJQ0FMIE9QUE9TRTtTbzswO09OOzxjb21wYXQ+IDgyMUI7Ozs7Tjs7Ozs7CisyRjg4O0tBTkdYSSBSQURJQ0FMIEJPQVQ7U287MDtPTjs8Y29tcGF0PiA4MjFGOzs7O047Ozs7OworMkY4OTtLQU5HWEkgUkFESUNBTCBTVE9QUElORztTbzswO09OOzxjb21wYXQ+IDgyNkU7Ozs7Tjs7Ozs7CisyRjhBO0tBTkdYSSBSQURJQ0FMIENPTE9SO1NvOzA7T047PGNvbXBhdD4gODI3Mjs7OztOOzs7OzsKKzJGOEI7S0FOR1hJIFJBRElDQUwgR1JBU1M7U287MDtPTjs8Y29tcGF0PiA4Mjc4Ozs7O047Ozs7OworMkY4QztLQU5HWEkgUkFESUNBTCBUSUdFUjtTbzswO09OOzxjb21wYXQ+IDg2NEQ7Ozs7Tjs7Ozs7CisyRjhEO0tBTkdYSSBSQURJQ0FMIElOU0VDVDtTbzswO09OOzxjb21wYXQ+IDg2NkI7Ozs7Tjs7Ozs7CisyRjhFO0tBTkdYSSBSQURJQ0FMIEJMT09EO1NvOzA7T047PGNvbXBhdD4gODg0MDs7OztOOzs7OzsKKzJGOEY7S0FOR1hJIFJBRElDQUwgV0FMSyBFTkNMT1NVUkU7U287MDtPTjs8Y29tcGF0PiA4ODRDOzs7O047Ozs7OworMkY5MDtLQU5HWEkgUkFESUNBTCBDTE9USEVTO1NvOzA7T047PGNvbXBhdD4gODg2Mzs7OztOOzs7OzsKKzJGOTE7S0FOR1hJIFJBRElDQUwgV0VTVDtTbzswO09OOzxjb21wYXQ+IDg5N0U7Ozs7Tjs7Ozs7CisyRjkyO0tBTkdYSSBSQURJQ0FMIFNFRTtTbzswO09OOzxjb21wYXQ+IDg5OEI7Ozs7Tjs7Ozs7CisyRjkzO0tBTkdYSSBSQURJQ0FMIEhPUk47U287MDtPTjs8Y29tcGF0PiA4OUQyOzs7O047Ozs7OworMkY5NDtLQU5HWEkgUkFESUNBTCBTUEVFQ0g7U287MDtPTjs8Y29tcGF0PiA4QTAwOzs7O047Ozs7OworMkY5NTtLQU5HWEkgUkFESUNBTCBWQUxMRVk7U287MDtPTjs8Y29tcGF0PiA4QzM3Ozs7O047Ozs7OworMkY5NjtLQU5HWEkgUkFESUNBTCBCRUFOO1NvOzA7T047PGNvbXBhdD4gOEM0Njs7OztOOzs7OzsKKzJGOTc7S0FOR1hJIFJBRElDQUwgUElHO1NvOzA7T047PGNvbXBhdD4gOEM1NTs7OztOOzs7OzsKKzJGOTg7S0FOR1hJIFJBRElDQUwgQkFER0VSO1NvOzA7T047PGNvbXBhdD4gOEM3ODs7OztOOzs7OzsKKzJGOTk7S0FOR1hJIFJBRElDQUwgU0hFTEw7U287MDtPTjs8Y29tcGF0PiA4QzlEOzs7O047Ozs7OworMkY5QTtLQU5HWEkgUkFESUNBTCBSRUQ7U287MDtPTjs8Y29tcGF0PiA4RDY0Ozs7O047Ozs7OworMkY5QjtLQU5HWEkgUkFESUNBTCBSVU47U287MDtPTjs8Y29tcGF0PiA4RDcwOzs7O047Ozs7OworMkY5QztLQU5HWEkgUkFESUNBTCBGT09UO1NvOzA7T047PGNvbXBhdD4gOERCMzs7OztOOzs7OzsKKzJGOUQ7S0FOR1hJIFJBRElDQUwgQk9EWTtTbzswO09OOzxjb21wYXQ+IDhFQUI7Ozs7Tjs7Ozs7CisyRjlFO0tBTkdYSSBSQURJQ0FMIENBUlQ7U287MDtPTjs8Y29tcGF0PiA4RUNBOzs7O047Ozs7OworMkY5RjtLQU5HWEkgUkFESUNBTCBCSVRURVI7U287MDtPTjs8Y29tcGF0PiA4RjlCOzs7O047Ozs7OworMkZBMDtLQU5HWEkgUkFESUNBTCBNT1JOSU5HO1NvOzA7T047PGNvbXBhdD4gOEZCMDs7OztOOzs7OzsKKzJGQTE7S0FOR1hJIFJBRElDQUwgV0FMSztTbzswO09OOzxjb21wYXQ+IDhGQjU7Ozs7Tjs7Ozs7CisyRkEyO0tBTkdYSSBSQURJQ0FMIENJVFk7U287MDtPTjs8Y29tcGF0PiA5MDkxOzs7O047Ozs7OworMkZBMztLQU5HWEkgUkFESUNBTCBXSU5FO1NvOzA7T047PGNvbXBhdD4gOTE0OTs7OztOOzs7OzsKKzJGQTQ7S0FOR1hJIFJBRElDQUwgRElTVElOR1VJU0g7U287MDtPTjs8Y29tcGF0PiA5MUM2Ozs7O047Ozs7OworMkZBNTtLQU5HWEkgUkFESUNBTCBWSUxMQUdFO1NvOzA7T047PGNvbXBhdD4gOTFDQzs7OztOOzs7OzsKKzJGQTY7S0FOR1hJIFJBRElDQUwgR09MRDtTbzswO09OOzxjb21wYXQ+IDkxRDE7Ozs7Tjs7Ozs7CisyRkE3O0tBTkdYSSBSQURJQ0FMIExPTkc7U287MDtPTjs8Y29tcGF0PiA5NTc3Ozs7O047Ozs7OworMkZBODtLQU5HWEkgUkFESUNBTCBHQVRFO1NvOzA7T047PGNvbXBhdD4gOTU4MDs7OztOOzs7OzsKKzJGQTk7S0FOR1hJIFJBRElDQUwgTU9VTkQ7U287MDtPTjs8Y29tcGF0PiA5NjFDOzs7O047Ozs7OworMkZBQTtLQU5HWEkgUkFESUNBTCBTTEFWRTtTbzswO09OOzxjb21wYXQ+IDk2QjY7Ozs7Tjs7Ozs7CisyRkFCO0tBTkdYSSBSQURJQ0FMIFNIT1JUIFRBSUxFRCBCSVJEO1NvOzA7T047PGNvbXBhdD4gOTZCOTs7OztOOzs7OzsKKzJGQUM7S0FOR1hJIFJBRElDQUwgUkFJTjtTbzswO09OOzxjb21wYXQ+IDk2RTg7Ozs7Tjs7Ozs7CisyRkFEO0tBTkdYSSBSQURJQ0FMIEJMVUU7U287MDtPTjs8Y29tcGF0PiA5NzUxOzs7O047Ozs7OworMkZBRTtLQU5HWEkgUkFESUNBTCBXUk9ORztTbzswO09OOzxjb21wYXQ+IDk3NUU7Ozs7Tjs7Ozs7CisyRkFGO0tBTkdYSSBSQURJQ0FMIEZBQ0U7U287MDtPTjs8Y29tcGF0PiA5NzYyOzs7O047Ozs7OworMkZCMDtLQU5HWEkgUkFESUNBTCBMRUFUSEVSO1NvOzA7T047PGNvbXBhdD4gOTc2OTs7OztOOzs7OzsKKzJGQjE7S0FOR1hJIFJBRElDQUwgVEFOTkVEIExFQVRIRVI7U287MDtPTjs8Y29tcGF0PiA5N0NCOzs7O047Ozs7OworMkZCMjtLQU5HWEkgUkFESUNBTCBMRUVLO1NvOzA7T047PGNvbXBhdD4gOTdFRDs7OztOOzs7OzsKKzJGQjM7S0FOR1hJIFJBRElDQUwgU09VTkQ7U287MDtPTjs8Y29tcGF0PiA5N0YzOzs7O047Ozs7OworMkZCNDtLQU5HWEkgUkFESUNBTCBMRUFGO1NvOzA7T047PGNvbXBhdD4gOTgwMTs7OztOOzs7OzsKKzJGQjU7S0FOR1hJIFJBRElDQUwgV0lORDtTbzswO09OOzxjb21wYXQ+IDk4QTg7Ozs7Tjs7Ozs7CisyRkI2O0tBTkdYSSBSQURJQ0FMIEZMWTtTbzswO09OOzxjb21wYXQ+IDk4REI7Ozs7Tjs7Ozs7CisyRkI3O0tBTkdYSSBSQURJQ0FMIEVBVDtTbzswO09OOzxjb21wYXQ+IDk4REY7Ozs7Tjs7Ozs7CisyRkI4O0tBTkdYSSBSQURJQ0FMIEhFQUQ7U287MDtPTjs8Y29tcGF0PiA5OTk2Ozs7O047Ozs7OworMkZCOTtLQU5HWEkgUkFESUNBTCBGUkFHUkFOVDtTbzswO09OOzxjb21wYXQ+IDk5OTk7Ozs7Tjs7Ozs7CisyRkJBO0tBTkdYSSBSQURJQ0FMIEhPUlNFO1NvOzA7T047PGNvbXBhdD4gOTlBQzs7OztOOzs7OzsKKzJGQkI7S0FOR1hJIFJBRElDQUwgQk9ORTtTbzswO09OOzxjb21wYXQ+IDlBQTg7Ozs7Tjs7Ozs7CisyRkJDO0tBTkdYSSBSQURJQ0FMIFRBTEw7U287MDtPTjs8Y29tcGF0PiA5QUQ4Ozs7O047Ozs7OworMkZCRDtLQU5HWEkgUkFESUNBTCBIQUlSO1NvOzA7T047PGNvbXBhdD4gOUFERjs7OztOOzs7OzsKKzJGQkU7S0FOR1hJIFJBRElDQUwgRklHSFQ7U287MDtPTjs8Y29tcGF0PiA5QjI1Ozs7O047Ozs7OworMkZCRjtLQU5HWEkgUkFESUNBTCBTQUNSSUZJQ0lBTCBXSU5FO1NvOzA7T047PGNvbXBhdD4gOUIyRjs7OztOOzs7OzsKKzJGQzA7S0FOR1hJIFJBRElDQUwgQ0FVTERST047U287MDtPTjs8Y29tcGF0PiA5QjMyOzs7O047Ozs7OworMkZDMTtLQU5HWEkgUkFESUNBTCBHSE9TVDtTbzswO09OOzxjb21wYXQ+IDlCM0M7Ozs7Tjs7Ozs7CisyRkMyO0tBTkdYSSBSQURJQ0FMIEZJU0g7U287MDtPTjs8Y29tcGF0PiA5QjVBOzs7O047Ozs7OworMkZDMztLQU5HWEkgUkFESUNBTCBCSVJEO1NvOzA7T047PGNvbXBhdD4gOUNFNTs7OztOOzs7OzsKKzJGQzQ7S0FOR1hJIFJBRElDQUwgU0FMVDtTbzswO09OOzxjb21wYXQ+IDlFNzU7Ozs7Tjs7Ozs7CisyRkM1O0tBTkdYSSBSQURJQ0FMIERFRVI7U287MDtPTjs8Y29tcGF0PiA5RTdGOzs7O047Ozs7OworMkZDNjtLQU5HWEkgUkFESUNBTCBXSEVBVDtTbzswO09OOzxjb21wYXQ+IDlFQTU7Ozs7Tjs7Ozs7CisyRkM3O0tBTkdYSSBSQURJQ0FMIEhFTVA7U287MDtPTjs8Y29tcGF0PiA5RUJCOzs7O047Ozs7OworMkZDODtLQU5HWEkgUkFESUNBTCBZRUxMT1c7U287MDtPTjs8Y29tcGF0PiA5RUMzOzs7O047Ozs7OworMkZDOTtLQU5HWEkgUkFESUNBTCBNSUxMRVQ7U287MDtPTjs8Y29tcGF0PiA5RUNEOzs7O047Ozs7OworMkZDQTtLQU5HWEkgUkFESUNBTCBCTEFDSztTbzswO09OOzxjb21wYXQ+IDlFRDE7Ozs7Tjs7Ozs7CisyRkNCO0tBTkdYSSBSQURJQ0FMIEVNQlJPSURFUlk7U287MDtPTjs8Y29tcGF0PiA5RUY5Ozs7O047Ozs7OworMkZDQztLQU5HWEkgUkFESUNBTCBGUk9HO1NvOzA7T047PGNvbXBhdD4gOUVGRDs7OztOOzs7OzsKKzJGQ0Q7S0FOR1hJIFJBRElDQUwgVFJJUE9EO1NvOzA7T047PGNvbXBhdD4gOUYwRTs7OztOOzs7OzsKKzJGQ0U7S0FOR1hJIFJBRElDQUwgRFJVTTtTbzswO09OOzxjb21wYXQ+IDlGMTM7Ozs7Tjs7Ozs7CisyRkNGO0tBTkdYSSBSQURJQ0FMIFJBVDtTbzswO09OOzxjb21wYXQ+IDlGMjA7Ozs7Tjs7Ozs7CisyRkQwO0tBTkdYSSBSQURJQ0FMIE5PU0U7U287MDtPTjs8Y29tcGF0PiA5RjNCOzs7O047Ozs7OworMkZEMTtLQU5HWEkgUkFESUNBTCBFVkVOO1NvOzA7T047PGNvbXBhdD4gOUY0QTs7OztOOzs7OzsKKzJGRDI7S0FOR1hJIFJBRElDQUwgVE9PVEg7U287MDtPTjs8Y29tcGF0PiA5RjUyOzs7O047Ozs7OworMkZEMztLQU5HWEkgUkFESUNBTCBEUkFHT047U287MDtPTjs8Y29tcGF0PiA5RjhEOzs7O047Ozs7OworMkZENDtLQU5HWEkgUkFESUNBTCBUVVJUTEU7U287MDtPTjs8Y29tcGF0PiA5RjlDOzs7O047Ozs7OworMkZENTtLQU5HWEkgUkFESUNBTCBGTFVURTtTbzswO09OOzxjb21wYXQ+IDlGQTA7Ozs7Tjs7Ozs7CisyRkYwO0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBMRUZUIFRPIFJJR0hUO1NvOzA7T047Ozs7O047Ozs7OworMkZGMTtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgQUJPVkUgVE8gQkVMT1c7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkYyO0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBMRUZUIFRPIE1JRERMRSBBTkQgUklHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkYzO0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBBQk9WRSBUTyBNSURETEUgQU5EIEJFTE9XO1NvOzA7T047Ozs7O047Ozs7OworMkZGNDtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgRlVMTCBTVVJST1VORDtTbzswO09OOzs7OztOOzs7OzsKKzJGRjU7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIFNVUlJPVU5EIEZST00gQUJPVkU7U287MDtPTjs7Ozs7Tjs7Ozs7CisyRkY2O0lERU9HUkFQSElDIERFU0NSSVBUSU9OIENIQVJBQ1RFUiBTVVJST1VORCBGUk9NIEJFTE9XO1NvOzA7T047Ozs7O047Ozs7OworMkZGNztJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgU1VSUk9VTkQgRlJPTSBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMkZGODtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgU1VSUk9VTkQgRlJPTSBVUFBFUiBMRUZUO1NvOzA7T047Ozs7O047Ozs7OworMkZGOTtJREVPR1JBUEhJQyBERVNDUklQVElPTiBDSEFSQUNURVIgU1VSUk9VTkQgRlJPTSBVUFBFUiBSSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzJGRkE7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIFNVUlJPVU5EIEZST00gTE9XRVIgTEVGVDtTbzswO09OOzs7OztOOzs7OzsKKzJGRkI7SURFT0dSQVBISUMgREVTQ1JJUFRJT04gQ0hBUkFDVEVSIE9WRVJMQUlEO1NvOzA7T047Ozs7O047Ozs7OworMzAwMDtJREVPR1JBUEhJQyBTUEFDRTtaczswO1dTOzx3aWRlPiAwMDIwOzs7O047Ozs7OworMzAwMTtJREVPR1JBUEhJQyBDT01NQTtQbzswO09OOzs7OztOOzs7OzsKKzMwMDI7SURFT0dSQVBISUMgRlVMTCBTVE9QO1BvOzA7T047Ozs7O047SURFT0dSQVBISUMgUEVSSU9EOzs7OworMzAwMztESVRUTyBNQVJLO1BvOzA7T047Ozs7O047Ozs7OworMzAwNDtKQVBBTkVTRSBJTkRVU1RSSUFMIFNUQU5EQVJEIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzMwMDU7SURFT0dSQVBISUMgSVRFUkFUSU9OIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwMDY7SURFT0dSQVBISUMgQ0xPU0lORyBNQVJLO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDA3O0lERU9HUkFQSElDIE5VTUJFUiBaRVJPO05sOzA7TDs7OzswO047Ozs7OworMzAwODtMRUZUIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIEFOR0xFIEJSQUNLRVQ7Ozs7CiszMDA5O1JJR0hUIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIEFOR0xFIEJSQUNLRVQ7Ozs7CiszMDBBO0xFRlQgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIERPVUJMRSBBTkdMRSBCUkFDS0VUOzs7OworMzAwQjtSSUdIVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7Ozs7CiszMDBDO0xFRlQgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIENPUk5FUiBCUkFDS0VUOzs7OworMzAwRDtSSUdIVCBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CiszMDBFO0xFRlQgV0hJVEUgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFdISVRFIENPUk5FUiBCUkFDS0VUOzs7OworMzAwRjtSSUdIVCBXSElURSBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgV0hJVEUgQ09STkVSIEJSQUNLRVQ7Ozs7CiszMDEwO0xFRlQgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBCTEFDSyBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CiszMDExO1JJR0hUIEJMQUNLIExFTlRJQ1VMQVIgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworMzAxMjtQT1NUQUwgTUFSSztTbzswO09OOzs7OztOOzs7OzsKKzMwMTM7R0VUQSBNQVJLO1NvOzA7T047Ozs7O047Ozs7OworMzAxNDtMRUZUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CiszMDE1O1JJR0hUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CiszMDE2O0xFRlQgV0hJVEUgTEVOVElDVUxBUiBCUkFDS0VUO1BzOzA7T047Ozs7O1k7T1BFTklORyBXSElURSBMRU5USUNVTEFSIEJSQUNLRVQ7Ozs7CiszMDE3O1JJR0hUIFdISVRFIExFTlRJQ1VMQVIgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgV0hJVEUgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworMzAxODtMRUZUIFdISVRFIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFdISVRFIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CiszMDE5O1JJR0hUIFdISVRFIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UGU7MDtPTjs7Ozs7WTtDTE9TSU5HIFdISVRFIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CiszMDFBO0xFRlQgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7UHM7MDtPTjs7Ozs7WTtPUEVOSU5HIFdISVRFIFNRVUFSRSBCUkFDS0VUOzs7OworMzAxQjtSSUdIVCBXSElURSBTUVVBUkUgQlJBQ0tFVDtQZTswO09OOzs7OztZO0NMT1NJTkcgV0hJVEUgU1FVQVJFIEJSQUNLRVQ7Ozs7CiszMDFDO1dBVkUgREFTSDtQZDswO09OOzs7OztOOzs7OzsKKzMwMUQ7UkVWRVJTRUQgRE9VQkxFIFBSSU1FIFFVT1RBVElPTiBNQVJLO1BzOzA7T047Ozs7O047Ozs7OworMzAxRTtET1VCTEUgUFJJTUUgUVVPVEFUSU9OIE1BUks7UGU7MDtPTjs7Ozs7Tjs7Ozs7CiszMDFGO0xPVyBET1VCTEUgUFJJTUUgUVVPVEFUSU9OIE1BUks7UGU7MDtPTjs7Ozs7Tjs7Ozs7CiszMDIwO1BPU1RBTCBNQVJLIEZBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMDIxO0hBTkdaSE9VIE5VTUVSQUwgT05FO05sOzA7TDs7OzsxO047Ozs7OworMzAyMjtIQU5HWkhPVSBOVU1FUkFMIFRXTztObDswO0w7Ozs7MjtOOzs7OzsKKzMwMjM7SEFOR1pIT1UgTlVNRVJBTCBUSFJFRTtObDswO0w7Ozs7MztOOzs7OzsKKzMwMjQ7SEFOR1pIT1UgTlVNRVJBTCBGT1VSO05sOzA7TDs7Ozs0O047Ozs7OworMzAyNTtIQU5HWkhPVSBOVU1FUkFMIEZJVkU7Tmw7MDtMOzs7OzU7Tjs7Ozs7CiszMDI2O0hBTkdaSE9VIE5VTUVSQUwgU0lYO05sOzA7TDs7Ozs2O047Ozs7OworMzAyNztIQU5HWkhPVSBOVU1FUkFMIFNFVkVOO05sOzA7TDs7Ozs3O047Ozs7OworMzAyODtIQU5HWkhPVSBOVU1FUkFMIEVJR0hUO05sOzA7TDs7Ozs4O047Ozs7OworMzAyOTtIQU5HWkhPVSBOVU1FUkFMIE5JTkU7Tmw7MDtMOzs7Ozk7Tjs7Ozs7CiszMDJBO0lERU9HUkFQSElDIExFVkVMIFRPTkUgTUFSSztNbjsyMTg7TlNNOzs7OztOOzs7OzsKKzMwMkI7SURFT0dSQVBISUMgUklTSU5HIFRPTkUgTUFSSztNbjsyMjg7TlNNOzs7OztOOzs7OzsKKzMwMkM7SURFT0dSQVBISUMgREVQQVJUSU5HIFRPTkUgTUFSSztNbjsyMzI7TlNNOzs7OztOOzs7OzsKKzMwMkQ7SURFT0dSQVBISUMgRU5URVJJTkcgVE9ORSBNQVJLO01uOzIyMjtOU007Ozs7O047Ozs7OworMzAyRTtIQU5HVUwgU0lOR0xFIERPVCBUT05FIE1BUks7TW47MjI0O05TTTs7Ozs7Tjs7Ozs7CiszMDJGO0hBTkdVTCBET1VCTEUgRE9UIFRPTkUgTUFSSztNbjsyMjQ7TlNNOzs7OztOOzs7OzsKKzMwMzA7V0FWWSBEQVNIO1BkOzA7T047Ozs7O047Ozs7OworMzAzMTtWRVJUSUNBTCBLQU5BIFJFUEVBVCBNQVJLO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMDMyO1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIFdJVEggVk9JQ0VEIFNPVU5EIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwMzM7VkVSVElDQUwgS0FOQSBSRVBFQVQgTUFSSyBVUFBFUiBIQUxGO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMDM0O1ZFUlRJQ0FMIEtBTkEgUkVQRUFUIFdJVEggVk9JQ0VEIFNPVU5EIE1BUksgVVBQRVIgSEFMRjtMbTswO0w7Ozs7O047Ozs7OworMzAzNTtWRVJUSUNBTCBLQU5BIFJFUEVBVCBNQVJLIExPV0VSIEhBTEY7TG07MDtMOzs7OztOOzs7OzsKKzMwMzY7Q0lSQ0xFRCBQT1NUQUwgTUFSSztTbzswO09OOzxjb21wYXQ+IDMwMTI7Ozs7Tjs7Ozs7CiszMDM3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBMSU5FIEZFRUQgU0VQQVJBVE9SIFNZTUJPTDtTbzswO09OOzs7OztOOzs7OzsKKzMwMzg7SEFOR1pIT1UgTlVNRVJBTCBURU47Tmw7MDtMOzxjb21wYXQ+IDUzNDE7OzsxMDtOOzs7OzsKKzMwMzk7SEFOR1pIT1UgTlVNRVJBTCBUV0VOVFk7Tmw7MDtMOzxjb21wYXQ+IDUzNDQ7OzsyMDtOOzs7OzsKKzMwM0E7SEFOR1pIT1UgTlVNRVJBTCBUSElSVFk7Tmw7MDtMOzxjb21wYXQ+IDUzNDU7OzszMDtOOzs7OzsKKzMwM0I7VkVSVElDQUwgSURFT0dSQVBISUMgSVRFUkFUSU9OIE1BUks7TG07MDtMOzs7OztOOzs7OzsKKzMwM0M7TUFTVSBNQVJLO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDNEO1BBUlQgQUxURVJOQVRJT04gTUFSSztQbzswO09OOzs7OztOOzs7OzsKKzMwM0U7SURFT0dSQVBISUMgVkFSSUFUSU9OIElORElDQVRPUjtTbzswO09OOzs7OztOOzs7OzsKKzMwM0Y7SURFT0dSQVBISUMgSEFMRiBGSUxMIFNQQUNFO1NvOzA7T047Ozs7O047Ozs7OworMzA0MTtISVJBR0FOQSBMRVRURVIgU01BTEwgQTtMbzswO0w7Ozs7O047Ozs7OworMzA0MjtISVJBR0FOQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMzA0MztISVJBR0FOQSBMRVRURVIgU01BTEwgSTtMbzswO0w7Ozs7O047Ozs7OworMzA0NDtISVJBR0FOQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMzA0NTtISVJBR0FOQSBMRVRURVIgU01BTEwgVTtMbzswO0w7Ozs7O047Ozs7OworMzA0NjtISVJBR0FOQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMzA0NztISVJBR0FOQSBMRVRURVIgU01BTEwgRTtMbzswO0w7Ozs7O047Ozs7OworMzA0ODtISVJBR0FOQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMzA0OTtISVJBR0FOQSBMRVRURVIgU01BTEwgTztMbzswO0w7Ozs7O047Ozs7OworMzA0QTtISVJBR0FOQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMzA0QjtISVJBR0FOQSBMRVRURVIgS0E7TG87MDtMOzs7OztOOzs7OzsKKzMwNEM7SElSQUdBTkEgTEVUVEVSIEdBO0xvOzA7TDszMDRCIDMwOTk7Ozs7Tjs7Ozs7CiszMDREO0hJUkFHQU5BIExFVFRFUiBLSTtMbzswO0w7Ozs7O047Ozs7OworMzA0RTtISVJBR0FOQSBMRVRURVIgR0k7TG87MDtMOzMwNEQgMzA5OTs7OztOOzs7OzsKKzMwNEY7SElSQUdBTkEgTEVUVEVSIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDUwO0hJUkFHQU5BIExFVFRFUiBHVTtMbzswO0w7MzA0RiAzMDk5Ozs7O047Ozs7OworMzA1MTtISVJBR0FOQSBMRVRURVIgS0U7TG87MDtMOzs7OztOOzs7OzsKKzMwNTI7SElSQUdBTkEgTEVUVEVSIEdFO0xvOzA7TDszMDUxIDMwOTk7Ozs7Tjs7Ozs7CiszMDUzO0hJUkFHQU5BIExFVFRFUiBLTztMbzswO0w7Ozs7O047Ozs7OworMzA1NDtISVJBR0FOQSBMRVRURVIgR087TG87MDtMOzMwNTMgMzA5OTs7OztOOzs7OzsKKzMwNTU7SElSQUdBTkEgTEVUVEVSIFNBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDU2O0hJUkFHQU5BIExFVFRFUiBaQTtMbzswO0w7MzA1NSAzMDk5Ozs7O047Ozs7OworMzA1NztISVJBR0FOQSBMRVRURVIgU0k7TG87MDtMOzs7OztOOzs7OzsKKzMwNTg7SElSQUdBTkEgTEVUVEVSIFpJO0xvOzA7TDszMDU3IDMwOTk7Ozs7Tjs7Ozs7CiszMDU5O0hJUkFHQU5BIExFVFRFUiBTVTtMbzswO0w7Ozs7O047Ozs7OworMzA1QTtISVJBR0FOQSBMRVRURVIgWlU7TG87MDtMOzMwNTkgMzA5OTs7OztOOzs7OzsKKzMwNUI7SElSQUdBTkEgTEVUVEVSIFNFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDVDO0hJUkFHQU5BIExFVFRFUiBaRTtMbzswO0w7MzA1QiAzMDk5Ozs7O047Ozs7OworMzA1RDtISVJBR0FOQSBMRVRURVIgU087TG87MDtMOzs7OztOOzs7OzsKKzMwNUU7SElSQUdBTkEgTEVUVEVSIFpPO0xvOzA7TDszMDVEIDMwOTk7Ozs7Tjs7Ozs7CiszMDVGO0hJUkFHQU5BIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMzA2MDtISVJBR0FOQSBMRVRURVIgREE7TG87MDtMOzMwNUYgMzA5OTs7OztOOzs7OzsKKzMwNjE7SElSQUdBTkEgTEVUVEVSIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDYyO0hJUkFHQU5BIExFVFRFUiBESTtMbzswO0w7MzA2MSAzMDk5Ozs7O047Ozs7OworMzA2MztISVJBR0FOQSBMRVRURVIgU01BTEwgVFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNjQ7SElSQUdBTkEgTEVUVEVSIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDY1O0hJUkFHQU5BIExFVFRFUiBEVTtMbzswO0w7MzA2NCAzMDk5Ozs7O047Ozs7OworMzA2NjtISVJBR0FOQSBMRVRURVIgVEU7TG87MDtMOzs7OztOOzs7OzsKKzMwNjc7SElSQUdBTkEgTEVUVEVSIERFO0xvOzA7TDszMDY2IDMwOTk7Ozs7Tjs7Ozs7CiszMDY4O0hJUkFHQU5BIExFVFRFUiBUTztMbzswO0w7Ozs7O047Ozs7OworMzA2OTtISVJBR0FOQSBMRVRURVIgRE87TG87MDtMOzMwNjggMzA5OTs7OztOOzs7OzsKKzMwNkE7SElSQUdBTkEgTEVUVEVSIE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZCO0hJUkFHQU5BIExFVFRFUiBOSTtMbzswO0w7Ozs7O047Ozs7OworMzA2QztISVJBR0FOQSBMRVRURVIgTlU7TG87MDtMOzs7OztOOzs7OzsKKzMwNkQ7SElSQUdBTkEgTEVUVEVSIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDZFO0hJUkFHQU5BIExFVFRFUiBOTztMbzswO0w7Ozs7O047Ozs7OworMzA2RjtISVJBR0FOQSBMRVRURVIgSEE7TG87MDtMOzs7OztOOzs7OzsKKzMwNzA7SElSQUdBTkEgTEVUVEVSIEJBO0xvOzA7TDszMDZGIDMwOTk7Ozs7Tjs7Ozs7CiszMDcxO0hJUkFHQU5BIExFVFRFUiBQQTtMbzswO0w7MzA2RiAzMDlBOzs7O047Ozs7OworMzA3MjtISVJBR0FOQSBMRVRURVIgSEk7TG87MDtMOzs7OztOOzs7OzsKKzMwNzM7SElSQUdBTkEgTEVUVEVSIEJJO0xvOzA7TDszMDcyIDMwOTk7Ozs7Tjs7Ozs7CiszMDc0O0hJUkFHQU5BIExFVFRFUiBQSTtMbzswO0w7MzA3MiAzMDlBOzs7O047Ozs7OworMzA3NTtISVJBR0FOQSBMRVRURVIgSFU7TG87MDtMOzs7OztOOzs7OzsKKzMwNzY7SElSQUdBTkEgTEVUVEVSIEJVO0xvOzA7TDszMDc1IDMwOTk7Ozs7Tjs7Ozs7CiszMDc3O0hJUkFHQU5BIExFVFRFUiBQVTtMbzswO0w7MzA3NSAzMDlBOzs7O047Ozs7OworMzA3ODtISVJBR0FOQSBMRVRURVIgSEU7TG87MDtMOzs7OztOOzs7OzsKKzMwNzk7SElSQUdBTkEgTEVUVEVSIEJFO0xvOzA7TDszMDc4IDMwOTk7Ozs7Tjs7Ozs7CiszMDdBO0hJUkFHQU5BIExFVFRFUiBQRTtMbzswO0w7MzA3OCAzMDlBOzs7O047Ozs7OworMzA3QjtISVJBR0FOQSBMRVRURVIgSE87TG87MDtMOzs7OztOOzs7OzsKKzMwN0M7SElSQUdBTkEgTEVUVEVSIEJPO0xvOzA7TDszMDdCIDMwOTk7Ozs7Tjs7Ozs7CiszMDdEO0hJUkFHQU5BIExFVFRFUiBQTztMbzswO0w7MzA3QiAzMDlBOzs7O047Ozs7OworMzA3RTtISVJBR0FOQSBMRVRURVIgTUE7TG87MDtMOzs7OztOOzs7OzsKKzMwN0Y7SElSQUdBTkEgTEVUVEVSIE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDgwO0hJUkFHQU5BIExFVFRFUiBNVTtMbzswO0w7Ozs7O047Ozs7OworMzA4MTtISVJBR0FOQSBMRVRURVIgTUU7TG87MDtMOzs7OztOOzs7OzsKKzMwODI7SElSQUdBTkEgTEVUVEVSIE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDgzO0hJUkFHQU5BIExFVFRFUiBTTUFMTCBZQTtMbzswO0w7Ozs7O047Ozs7OworMzA4NDtISVJBR0FOQSBMRVRURVIgWUE7TG87MDtMOzs7OztOOzs7OzsKKzMwODU7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg2O0hJUkFHQU5BIExFVFRFUiBZVTtMbzswO0w7Ozs7O047Ozs7OworMzA4NztISVJBR0FOQSBMRVRURVIgU01BTEwgWU87TG87MDtMOzs7OztOOzs7OzsKKzMwODg7SElSQUdBTkEgTEVUVEVSIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDg5O0hJUkFHQU5BIExFVFRFUiBSQTtMbzswO0w7Ozs7O047Ozs7OworMzA4QTtISVJBR0FOQSBMRVRURVIgUkk7TG87MDtMOzs7OztOOzs7OzsKKzMwOEI7SElSQUdBTkEgTEVUVEVSIFJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhDO0hJUkFHQU5BIExFVFRFUiBSRTtMbzswO0w7Ozs7O047Ozs7OworMzA4RDtISVJBR0FOQSBMRVRURVIgUk87TG87MDtMOzs7OztOOzs7OzsKKzMwOEU7SElSQUdBTkEgTEVUVEVSIFNNQUxMIFdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDhGO0hJUkFHQU5BIExFVFRFUiBXQTtMbzswO0w7Ozs7O047Ozs7OworMzA5MDtISVJBR0FOQSBMRVRURVIgV0k7TG87MDtMOzs7OztOOzs7OzsKKzMwOTE7SElSQUdBTkEgTEVUVEVSIFdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDkyO0hJUkFHQU5BIExFVFRFUiBXTztMbzswO0w7Ozs7O047Ozs7OworMzA5MztISVJBR0FOQSBMRVRURVIgTjtMbzswO0w7Ozs7O047Ozs7OworMzA5NDtISVJBR0FOQSBMRVRURVIgVlU7TG87MDtMOzMwNDYgMzA5OTs7OztOOzs7OzsKKzMwOTU7SElSQUdBTkEgTEVUVEVSIFNNQUxMIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMDk2O0hJUkFHQU5BIExFVFRFUiBTTUFMTCBLRTtMbzswO0w7Ozs7O047Ozs7OworMzA5OTtDT01CSU5JTkcgS0FUQUtBTkEtSElSQUdBTkEgVk9JQ0VEIFNPVU5EIE1BUks7TW47ODtOU007Ozs7O047Tk9OLVNQQUNJTkcgS0FUQUtBTkEtSElSQUdBTkEgVk9JQ0VEIFNPVU5EIE1BUks7Ozs7CiszMDlBO0NPTUJJTklORyBLQVRBS0FOQS1ISVJBR0FOQSBTRU1JLVZPSUNFRCBTT1VORCBNQVJLO01uOzg7TlNNOzs7OztOO05PTi1TUEFDSU5HIEtBVEFLQU5BLUhJUkFHQU5BIFNFTUktVk9JQ0VEIFNPVU5EIE1BUks7Ozs7CiszMDlCO0tBVEFLQU5BLUhJUkFHQU5BIFZPSUNFRCBTT1VORCBNQVJLO1NrOzA7T047PGNvbXBhdD4gMDAyMCAzMDk5Ozs7O047Ozs7OworMzA5QztLQVRBS0FOQS1ISVJBR0FOQSBTRU1JLVZPSUNFRCBTT1VORCBNQVJLO1NrOzA7T047PGNvbXBhdD4gMDAyMCAzMDlBOzs7O047Ozs7OworMzA5RDtISVJBR0FOQSBJVEVSQVRJT04gTUFSSztMbTswO0w7Ozs7O047Ozs7OworMzA5RTtISVJBR0FOQSBWT0lDRUQgSVRFUkFUSU9OIE1BUks7TG07MDtMOzMwOUQgMzA5OTs7OztOOzs7OzsKKzMwOUY7SElSQUdBTkEgRElHUkFQSCBZT1JJO0xvOzA7TDs8dmVydGljYWw+IDMwODggMzA4QTs7OztOOzs7OzsKKzMwQTA7S0FUQUtBTkEtSElSQUdBTkEgRE9VQkxFIEhZUEhFTjtQZDswO09OOzs7OztOOzs7OzsKKzMwQTE7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEE7TG87MDtMOzs7OztOOzs7OzsKKzMwQTI7S0FUQUtBTkEgTEVUVEVSIEE7TG87MDtMOzs7OztOOzs7OzsKKzMwQTM7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEk7TG87MDtMOzs7OztOOzs7OzsKKzMwQTQ7S0FUQUtBTkEgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzMwQTU7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTY7S0FUQUtBTkEgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTc7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTg7S0FUQUtBTkEgTEVUVEVSIEU7TG87MDtMOzs7OztOOzs7OzsKKzMwQTk7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIE87TG87MDtMOzs7OztOOzs7OzsKKzMwQUE7S0FUQUtBTkEgTEVUVEVSIE87TG87MDtMOzs7OztOOzs7OzsKKzMwQUI7S0FUQUtBTkEgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEFDO0tBVEFLQU5BIExFVFRFUiBHQTtMbzswO0w7MzBBQiAzMDk5Ozs7O047Ozs7OworMzBBRDtLQVRBS0FOQSBMRVRURVIgS0k7TG87MDtMOzs7OztOOzs7OzsKKzMwQUU7S0FUQUtBTkEgTEVUVEVSIEdJO0xvOzA7TDszMEFEIDMwOTk7Ozs7Tjs7Ozs7CiszMEFGO0tBVEFLQU5BIExFVFRFUiBLVTtMbzswO0w7Ozs7O047Ozs7OworMzBCMDtLQVRBS0FOQSBMRVRURVIgR1U7TG87MDtMOzMwQUYgMzA5OTs7OztOOzs7OzsKKzMwQjE7S0FUQUtBTkEgTEVUVEVSIEtFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEIyO0tBVEFLQU5BIExFVFRFUiBHRTtMbzswO0w7MzBCMSAzMDk5Ozs7O047Ozs7OworMzBCMztLQVRBS0FOQSBMRVRURVIgS087TG87MDtMOzs7OztOOzs7OzsKKzMwQjQ7S0FUQUtBTkEgTEVUVEVSIEdPO0xvOzA7TDszMEIzIDMwOTk7Ozs7Tjs7Ozs7CiszMEI1O0tBVEFLQU5BIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMzBCNjtLQVRBS0FOQSBMRVRURVIgWkE7TG87MDtMOzMwQjUgMzA5OTs7OztOOzs7OzsKKzMwQjc7S0FUQUtBTkEgTEVUVEVSIFNJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEI4O0tBVEFLQU5BIExFVFRFUiBaSTtMbzswO0w7MzBCNyAzMDk5Ozs7O047Ozs7OworMzBCOTtLQVRBS0FOQSBMRVRURVIgU1U7TG87MDtMOzs7OztOOzs7OzsKKzMwQkE7S0FUQUtBTkEgTEVUVEVSIFpVO0xvOzA7TDszMEI5IDMwOTk7Ozs7Tjs7Ozs7CiszMEJCO0tBVEFLQU5BIExFVFRFUiBTRTtMbzswO0w7Ozs7O047Ozs7OworMzBCQztLQVRBS0FOQSBMRVRURVIgWkU7TG87MDtMOzMwQkIgMzA5OTs7OztOOzs7OzsKKzMwQkQ7S0FUQUtBTkEgTEVUVEVSIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEJFO0tBVEFLQU5BIExFVFRFUiBaTztMbzswO0w7MzBCRCAzMDk5Ozs7O047Ozs7OworMzBCRjtLQVRBS0FOQSBMRVRURVIgVEE7TG87MDtMOzs7OztOOzs7OzsKKzMwQzA7S0FUQUtBTkEgTEVUVEVSIERBO0xvOzA7TDszMEJGIDMwOTk7Ozs7Tjs7Ozs7CiszMEMxO0tBVEFLQU5BIExFVFRFUiBUSTtMbzswO0w7Ozs7O047Ozs7OworMzBDMjtLQVRBS0FOQSBMRVRURVIgREk7TG87MDtMOzMwQzEgMzA5OTs7OztOOzs7OzsKKzMwQzM7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEM0O0tBVEFLQU5BIExFVFRFUiBUVTtMbzswO0w7Ozs7O047Ozs7OworMzBDNTtLQVRBS0FOQSBMRVRURVIgRFU7TG87MDtMOzMwQzQgMzA5OTs7OztOOzs7OzsKKzMwQzY7S0FUQUtBTkEgTEVUVEVSIFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEM3O0tBVEFLQU5BIExFVFRFUiBERTtMbzswO0w7MzBDNiAzMDk5Ozs7O047Ozs7OworMzBDODtLQVRBS0FOQSBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzMwQzk7S0FUQUtBTkEgTEVUVEVSIERPO0xvOzA7TDszMEM4IDMwOTk7Ozs7Tjs7Ozs7CiszMENBO0tBVEFLQU5BIExFVFRFUiBOQTtMbzswO0w7Ozs7O047Ozs7OworMzBDQjtLQVRBS0FOQSBMRVRURVIgTkk7TG87MDtMOzs7OztOOzs7OzsKKzMwQ0M7S0FUQUtBTkEgTEVUVEVSIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMENEO0tBVEFLQU5BIExFVFRFUiBORTtMbzswO0w7Ozs7O047Ozs7OworMzBDRTtLQVRBS0FOQSBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKKzMwQ0Y7S0FUQUtBTkEgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQwO0tBVEFLQU5BIExFVFRFUiBCQTtMbzswO0w7MzBDRiAzMDk5Ozs7O047Ozs7OworMzBEMTtLQVRBS0FOQSBMRVRURVIgUEE7TG87MDtMOzMwQ0YgMzA5QTs7OztOOzs7OzsKKzMwRDI7S0FUQUtBTkEgTEVUVEVSIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQzO0tBVEFLQU5BIExFVFRFUiBCSTtMbzswO0w7MzBEMiAzMDk5Ozs7O047Ozs7OworMzBENDtLQVRBS0FOQSBMRVRURVIgUEk7TG87MDtMOzMwRDIgMzA5QTs7OztOOzs7OzsKKzMwRDU7S0FUQUtBTkEgTEVUVEVSIEhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQ2O0tBVEFLQU5BIExFVFRFUiBCVTtMbzswO0w7MzBENSAzMDk5Ozs7O047Ozs7OworMzBENztLQVRBS0FOQSBMRVRURVIgUFU7TG87MDtMOzMwRDUgMzA5QTs7OztOOzs7OzsKKzMwRDg7S0FUQUtBTkEgTEVUVEVSIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEQ5O0tBVEFLQU5BIExFVFRFUiBCRTtMbzswO0w7MzBEOCAzMDk5Ozs7O047Ozs7OworMzBEQTtLQVRBS0FOQSBMRVRURVIgUEU7TG87MDtMOzMwRDggMzA5QTs7OztOOzs7OzsKKzMwREI7S0FUQUtBTkEgTEVUVEVSIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMERDO0tBVEFLQU5BIExFVFRFUiBCTztMbzswO0w7MzBEQiAzMDk5Ozs7O047Ozs7OworMzBERDtLQVRBS0FOQSBMRVRURVIgUE87TG87MDtMOzMwREIgMzA5QTs7OztOOzs7OzsKKzMwREU7S0FUQUtBTkEgTEVUVEVSIE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMERGO0tBVEFLQU5BIExFVFRFUiBNSTtMbzswO0w7Ozs7O047Ozs7OworMzBFMDtLQVRBS0FOQSBMRVRURVIgTVU7TG87MDtMOzs7OztOOzs7OzsKKzMwRTE7S0FUQUtBTkEgTEVUVEVSIE1FO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEUyO0tBVEFLQU5BIExFVFRFUiBNTztMbzswO0w7Ozs7O047Ozs7OworMzBFMztLQVRBS0FOQSBMRVRURVIgU01BTEwgWUE7TG87MDtMOzs7OztOOzs7OzsKKzMwRTQ7S0FUQUtBTkEgTEVUVEVSIFlBO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU1O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBZVTtMbzswO0w7Ozs7O047Ozs7OworMzBFNjtLQVRBS0FOQSBMRVRURVIgWVU7TG87MDtMOzs7OztOOzs7OzsKKzMwRTc7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEU4O0tBVEFLQU5BIExFVFRFUiBZTztMbzswO0w7Ozs7O047Ozs7OworMzBFOTtLQVRBS0FOQSBMRVRURVIgUkE7TG87MDtMOzs7OztOOzs7OzsKKzMwRUE7S0FUQUtBTkEgTEVUVEVSIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVCO0tBVEFLQU5BIExFVFRFUiBSVTtMbzswO0w7Ozs7O047Ozs7OworMzBFQztLQVRBS0FOQSBMRVRURVIgUkU7TG87MDtMOzs7OztOOzs7OzsKKzMwRUQ7S0FUQUtBTkEgTEVUVEVSIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEVFO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBXQTtMbzswO0w7Ozs7O047Ozs7OworMzBFRjtLQVRBS0FOQSBMRVRURVIgV0E7TG87MDtMOzs7OztOOzs7OzsKKzMwRjA7S0FUQUtBTkEgTEVUVEVSIFdJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMEYxO0tBVEFLQU5BIExFVFRFUiBXRTtMbzswO0w7Ozs7O047Ozs7OworMzBGMjtLQVRBS0FOQSBMRVRURVIgV087TG87MDtMOzs7OztOOzs7OzsKKzMwRjM7S0FUQUtBTkEgTEVUVEVSIE47TG87MDtMOzs7OztOOzs7OzsKKzMwRjQ7S0FUQUtBTkEgTEVUVEVSIFZVO0xvOzA7TDszMEE2IDMwOTk7Ozs7Tjs7Ozs7CiszMEY1O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBLQTtMbzswO0w7Ozs7O047Ozs7OworMzBGNjtLQVRBS0FOQSBMRVRURVIgU01BTEwgS0U7TG87MDtMOzs7OztOOzs7OzsKKzMwRjc7S0FUQUtBTkEgTEVUVEVSIFZBO0xvOzA7TDszMEVGIDMwOTk7Ozs7Tjs7Ozs7CiszMEY4O0tBVEFLQU5BIExFVFRFUiBWSTtMbzswO0w7MzBGMCAzMDk5Ozs7O047Ozs7OworMzBGOTtLQVRBS0FOQSBMRVRURVIgVkU7TG87MDtMOzMwRjEgMzA5OTs7OztOOzs7OzsKKzMwRkE7S0FUQUtBTkEgTEVUVEVSIFZPO0xvOzA7TDszMEYyIDMwOTk7Ozs7Tjs7Ozs7CiszMEZCO0tBVEFLQU5BIE1JRERMRSBET1Q7UG87MDtPTjs7Ozs7Tjs7Ozs7CiszMEZDO0tBVEFLQU5BLUhJUkFHQU5BIFBST0xPTkdFRCBTT1VORCBNQVJLO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMEZEO0tBVEFLQU5BIElURVJBVElPTiBNQVJLO0xtOzA7TDs7Ozs7Tjs7Ozs7CiszMEZFO0tBVEFLQU5BIFZPSUNFRCBJVEVSQVRJT04gTUFSSztMbTswO0w7MzBGRCAzMDk5Ozs7O047Ozs7OworMzBGRjtLQVRBS0FOQSBESUdSQVBIIEtPVE87TG87MDtMOzx2ZXJ0aWNhbD4gMzBCMyAzMEM4Ozs7O047Ozs7OworMzEwNTtCT1BPTU9GTyBMRVRURVIgQjtMbzswO0w7Ozs7O047Ozs7OworMzEwNjtCT1BPTU9GTyBMRVRURVIgUDtMbzswO0w7Ozs7O047Ozs7OworMzEwNztCT1BPTU9GTyBMRVRURVIgTTtMbzswO0w7Ozs7O047Ozs7OworMzEwODtCT1BPTU9GTyBMRVRURVIgRjtMbzswO0w7Ozs7O047Ozs7OworMzEwOTtCT1BPTU9GTyBMRVRURVIgRDtMbzswO0w7Ozs7O047Ozs7OworMzEwQTtCT1BPTU9GTyBMRVRURVIgVDtMbzswO0w7Ozs7O047Ozs7OworMzEwQjtCT1BPTU9GTyBMRVRURVIgTjtMbzswO0w7Ozs7O047Ozs7OworMzEwQztCT1BPTU9GTyBMRVRURVIgTDtMbzswO0w7Ozs7O047Ozs7OworMzEwRDtCT1BPTU9GTyBMRVRURVIgRztMbzswO0w7Ozs7O047Ozs7OworMzEwRTtCT1BPTU9GTyBMRVRURVIgSztMbzswO0w7Ozs7O047Ozs7OworMzEwRjtCT1BPTU9GTyBMRVRURVIgSDtMbzswO0w7Ozs7O047Ozs7OworMzExMDtCT1BPTU9GTyBMRVRURVIgSjtMbzswO0w7Ozs7O047Ozs7OworMzExMTtCT1BPTU9GTyBMRVRURVIgUTtMbzswO0w7Ozs7O047Ozs7OworMzExMjtCT1BPTU9GTyBMRVRURVIgWDtMbzswO0w7Ozs7O047Ozs7OworMzExMztCT1BPTU9GTyBMRVRURVIgWkg7TG87MDtMOzs7OztOOzs7OzsKKzMxMTQ7Qk9QT01PRk8gTEVUVEVSIENIO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTE1O0JPUE9NT0ZPIExFVFRFUiBTSDtMbzswO0w7Ozs7O047Ozs7OworMzExNjtCT1BPTU9GTyBMRVRURVIgUjtMbzswO0w7Ozs7O047Ozs7OworMzExNztCT1BPTU9GTyBMRVRURVIgWjtMbzswO0w7Ozs7O047Ozs7OworMzExODtCT1BPTU9GTyBMRVRURVIgQztMbzswO0w7Ozs7O047Ozs7OworMzExOTtCT1BPTU9GTyBMRVRURVIgUztMbzswO0w7Ozs7O047Ozs7OworMzExQTtCT1BPTU9GTyBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMzExQjtCT1BPTU9GTyBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMzExQztCT1BPTU9GTyBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMzExRDtCT1BPTU9GTyBMRVRURVIgRUg7TG87MDtMOzs7OztOOzs7OzsKKzMxMUU7Qk9QT01PRk8gTEVUVEVSIEFJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTFGO0JPUE9NT0ZPIExFVFRFUiBFSTtMbzswO0w7Ozs7O047Ozs7OworMzEyMDtCT1BPTU9GTyBMRVRURVIgQVU7TG87MDtMOzs7OztOOzs7OzsKKzMxMjE7Qk9QT01PRk8gTEVUVEVSIE9VO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTIyO0JPUE9NT0ZPIExFVFRFUiBBTjtMbzswO0w7Ozs7O047Ozs7OworMzEyMztCT1BPTU9GTyBMRVRURVIgRU47TG87MDtMOzs7OztOOzs7OzsKKzMxMjQ7Qk9QT01PRk8gTEVUVEVSIEFORztMbzswO0w7Ozs7O047Ozs7OworMzEyNTtCT1BPTU9GTyBMRVRURVIgRU5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTI2O0JPUE9NT0ZPIExFVFRFUiBFUjtMbzswO0w7Ozs7O047Ozs7OworMzEyNztCT1BPTU9GTyBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMzEyODtCT1BPTU9GTyBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMzEyOTtCT1BPTU9GTyBMRVRURVIgSVU7TG87MDtMOzs7OztOOzs7OzsKKzMxMkE7Qk9QT01PRk8gTEVUVEVSIFY7TG87MDtMOzs7OztOOzs7OzsKKzMxMkI7Qk9QT01PRk8gTEVUVEVSIE5HO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMTJDO0JPUE9NT0ZPIExFVFRFUiBHTjtMbzswO0w7Ozs7O047Ozs7OworMzEzMTtIQU5HVUwgTEVUVEVSIEtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEwMDs7OztOO0hBTkdVTCBMRVRURVIgR0lZRU9HOzs7OworMzEzMjtIQU5HVUwgTEVUVEVSIFNTQU5HS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTAxOzs7O047SEFOR1VMIExFVFRFUiBTU0FORyBHSVlFT0c7Ozs7CiszMTMzO0hBTkdVTCBMRVRURVIgS0lZRU9LLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQUE7Ozs7TjtIQU5HVUwgTEVUVEVSIEdJWUVPRyBTSU9TOzs7OworMzEzNDtIQU5HVUwgTEVUVEVSIE5JRVVOO0xvOzA7TDs8Y29tcGF0PiAxMTAyOzs7O047Ozs7OworMzEzNTtIQU5HVUwgTEVUVEVSIE5JRVVOLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMUFDOzs7O047SEFOR1VMIExFVFRFUiBOSUVVTiBKSUVVSjs7OzsKKzMxMzY7SEFOR1VMIExFVFRFUiBOSUVVTi1ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTFBRDs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gSElFVUg7Ozs7CiszMTM3O0hBTkdVTCBMRVRURVIgVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTAzOzs7O047SEFOR1VMIExFVFRFUiBESUdFVUQ7Ozs7CiszMTM4O0hBTkdVTCBMRVRURVIgU1NBTkdUSUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMDQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIERJR0VVRDs7OzsKKzMxMzk7SEFOR1VMIExFVFRFUiBSSUVVTDtMbzswO0w7PGNvbXBhdD4gMTEwNTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUw7Ozs7CiszMTNBO0hBTkdVTCBMRVRURVIgUklFVUwtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMUIwOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBHSVlFT0c7Ozs7CiszMTNCO0hBTkdVTCBMRVRURVIgUklFVUwtTUlFVU07TG87MDtMOzxjb21wYXQ+IDExQjE7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIE1JRVVNOzs7OworMzEzQztIQU5HVUwgTEVUVEVSIFJJRVVMLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMUIyOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBCSUVVQjs7OzsKKzMxM0Q7SEFOR1VMIExFVFRFUiBSSUVVTC1TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMUIzOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBTSU9TOzs7OworMzEzRTtIQU5HVUwgTEVUVEVSIFJJRVVMLVRISUVVVEg7TG87MDtMOzxjb21wYXQ+IDExQjQ7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIFRJRVVUOzs7OworMzEzRjtIQU5HVUwgTEVUVEVSIFJJRVVMLVBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExQjU7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIFBJRVVQOzs7OworMzE0MDtIQU5HVUwgTEVUVEVSIFJJRVVMLUhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTFBOzs7O047SEFOR1VMIExFVFRFUiBMSUVVTCBISUVVSDs7OzsKKzMxNDE7SEFOR1VMIExFVFRFUiBNSUVVTTtMbzswO0w7PGNvbXBhdD4gMTEwNjs7OztOOzs7OzsKKzMxNDI7SEFOR1VMIExFVFRFUiBQSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEwNzs7OztOO0hBTkdVTCBMRVRURVIgQklFVUI7Ozs7CiszMTQzO0hBTkdVTCBMRVRURVIgU1NBTkdQSUVVUDtMbzswO0w7PGNvbXBhdD4gMTEwODs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgQklFVUI7Ozs7CiszMTQ0O0hBTkdVTCBMRVRURVIgUElFVVAtU0lPUztMbzswO0w7PGNvbXBhdD4gMTEyMTs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgU0lPUzs7OzsKKzMxNDU7SEFOR1VMIExFVFRFUiBTSU9TO0xvOzA7TDs8Y29tcGF0PiAxMTA5Ozs7O047Ozs7OworMzE0NjtIQU5HVUwgTEVUVEVSIFNTQU5HU0lPUztMbzswO0w7PGNvbXBhdD4gMTEwQTs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgU0lPUzs7OzsKKzMxNDc7SEFOR1VMIExFVFRFUiBJRVVORztMbzswO0w7PGNvbXBhdD4gMTEwQjs7OztOOzs7OzsKKzMxNDg7SEFOR1VMIExFVFRFUiBDSUVVQztMbzswO0w7PGNvbXBhdD4gMTEwQzs7OztOO0hBTkdVTCBMRVRURVIgSklFVUo7Ozs7CiszMTQ5O0hBTkdVTCBMRVRURVIgU1NBTkdDSUVVQztMbzswO0w7PGNvbXBhdD4gMTEwRDs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgSklFVUo7Ozs7CiszMTRBO0hBTkdVTCBMRVRURVIgQ0hJRVVDSDtMbzswO0w7PGNvbXBhdD4gMTEwRTs7OztOO0hBTkdVTCBMRVRURVIgQ0lFVUM7Ozs7CiszMTRCO0hBTkdVTCBMRVRURVIgS0hJRVVLSDtMbzswO0w7PGNvbXBhdD4gMTEwRjs7OztOO0hBTkdVTCBMRVRURVIgS0lZRU9LOzs7OworMzE0QztIQU5HVUwgTEVUVEVSIFRISUVVVEg7TG87MDtMOzxjb21wYXQ+IDExMTA7Ozs7TjtIQU5HVUwgTEVUVEVSIFRJRVVUOzs7OworMzE0RDtIQU5HVUwgTEVUVEVSIFBISUVVUEg7TG87MDtMOzxjb21wYXQ+IDExMTE7Ozs7TjtIQU5HVUwgTEVUVEVSIFBJRVVQOzs7OworMzE0RTtIQU5HVUwgTEVUVEVSIEhJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTEyOzs7O047Ozs7OworMzE0RjtIQU5HVUwgTEVUVEVSIEE7TG87MDtMOzxjb21wYXQ+IDExNjE7Ozs7Tjs7Ozs7CiszMTUwO0hBTkdVTCBMRVRURVIgQUU7TG87MDtMOzxjb21wYXQ+IDExNjI7Ozs7Tjs7Ozs7CiszMTUxO0hBTkdVTCBMRVRURVIgWUE7TG87MDtMOzxjb21wYXQ+IDExNjM7Ozs7Tjs7Ozs7CiszMTUyO0hBTkdVTCBMRVRURVIgWUFFO0xvOzA7TDs8Y29tcGF0PiAxMTY0Ozs7O047Ozs7OworMzE1MztIQU5HVUwgTEVUVEVSIEVPO0xvOzA7TDs8Y29tcGF0PiAxMTY1Ozs7O047Ozs7OworMzE1NDtIQU5HVUwgTEVUVEVSIEU7TG87MDtMOzxjb21wYXQ+IDExNjY7Ozs7Tjs7Ozs7CiszMTU1O0hBTkdVTCBMRVRURVIgWUVPO0xvOzA7TDs8Y29tcGF0PiAxMTY3Ozs7O047Ozs7OworMzE1NjtIQU5HVUwgTEVUVEVSIFlFO0xvOzA7TDs8Y29tcGF0PiAxMTY4Ozs7O047Ozs7OworMzE1NztIQU5HVUwgTEVUVEVSIE87TG87MDtMOzxjb21wYXQ+IDExNjk7Ozs7Tjs7Ozs7CiszMTU4O0hBTkdVTCBMRVRURVIgV0E7TG87MDtMOzxjb21wYXQ+IDExNkE7Ozs7Tjs7Ozs7CiszMTU5O0hBTkdVTCBMRVRURVIgV0FFO0xvOzA7TDs8Y29tcGF0PiAxMTZCOzs7O047Ozs7OworMzE1QTtIQU5HVUwgTEVUVEVSIE9FO0xvOzA7TDs8Y29tcGF0PiAxMTZDOzs7O047Ozs7OworMzE1QjtIQU5HVUwgTEVUVEVSIFlPO0xvOzA7TDs8Y29tcGF0PiAxMTZEOzs7O047Ozs7OworMzE1QztIQU5HVUwgTEVUVEVSIFU7TG87MDtMOzxjb21wYXQ+IDExNkU7Ozs7Tjs7Ozs7CiszMTVEO0hBTkdVTCBMRVRURVIgV0VPO0xvOzA7TDs8Y29tcGF0PiAxMTZGOzs7O047Ozs7OworMzE1RTtIQU5HVUwgTEVUVEVSIFdFO0xvOzA7TDs8Y29tcGF0PiAxMTcwOzs7O047Ozs7OworMzE1RjtIQU5HVUwgTEVUVEVSIFdJO0xvOzA7TDs8Y29tcGF0PiAxMTcxOzs7O047Ozs7OworMzE2MDtIQU5HVUwgTEVUVEVSIFlVO0xvOzA7TDs8Y29tcGF0PiAxMTcyOzs7O047Ozs7OworMzE2MTtIQU5HVUwgTEVUVEVSIEVVO0xvOzA7TDs8Y29tcGF0PiAxMTczOzs7O047Ozs7OworMzE2MjtIQU5HVUwgTEVUVEVSIFlJO0xvOzA7TDs8Y29tcGF0PiAxMTc0Ozs7O047Ozs7OworMzE2MztIQU5HVUwgTEVUVEVSIEk7TG87MDtMOzxjb21wYXQ+IDExNzU7Ozs7Tjs7Ozs7CiszMTY0O0hBTkdVTCBGSUxMRVI7TG87MDtMOzxjb21wYXQ+IDExNjA7Ozs7TjtIQU5HVUwgQ0FFIE9NOzs7OworMzE2NTtIQU5HVUwgTEVUVEVSIFNTQU5HTklFVU47TG87MDtMOzxjb21wYXQ+IDExMTQ7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIE5JRVVOOzs7OworMzE2NjtIQU5HVUwgTEVUVEVSIE5JRVVOLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTExNTs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gRElHRVVEOzs7OworMzE2NztIQU5HVUwgTEVUVEVSIE5JRVVOLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQzc7Ozs7TjtIQU5HVUwgTEVUVEVSIE5JRVVOIFNJT1M7Ozs7CiszMTY4O0hBTkdVTCBMRVRURVIgTklFVU4tUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFDODs7OztOO0hBTkdVTCBMRVRURVIgTklFVU4gQkFOIENISSBFVU07Ozs7CiszMTY5O0hBTkdVTCBMRVRURVIgUklFVUwtS0lZRU9LLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExQ0M7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEdJWUVPRyBTSU9TOzs7OworMzE2QTtIQU5HVUwgTEVUVEVSIFJJRVVMLVRJS0VVVDtMbzswO0w7PGNvbXBhdD4gMTFDRTs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgRElHRVVEOzs7OworMzE2QjtIQU5HVUwgTEVUVEVSIFJJRVVMLVBJRVVQLVNJT1M7TG87MDtMOzxjb21wYXQ+IDExRDM7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIEJJRVVCIFNJT1M7Ozs7CiszMTZDO0hBTkdVTCBMRVRURVIgUklFVUwtUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTFENzs7OztOO0hBTkdVTCBMRVRURVIgTElFVUwgQkFOIENISSBFVU07Ozs7CiszMTZEO0hBTkdVTCBMRVRURVIgUklFVUwtWUVPUklOSElFVUg7TG87MDtMOzxjb21wYXQ+IDExRDk7Ozs7TjtIQU5HVUwgTEVUVEVSIExJRVVMIFlFT0xJTiBISUVVSDs7OzsKKzMxNkU7SEFOR1VMIExFVFRFUiBNSUVVTS1QSUVVUDtMbzswO0w7PGNvbXBhdD4gMTExQzs7OztOO0hBTkdVTCBMRVRURVIgTUlFVU0gQklFVUI7Ozs7CiszMTZGO0hBTkdVTCBMRVRURVIgTUlFVU0tU0lPUztMbzswO0w7PGNvbXBhdD4gMTFERDs7OztOO0hBTkdVTCBMRVRURVIgTUlFVU0gU0lPUzs7OzsKKzMxNzA7SEFOR1VMIExFVFRFUiBNSUVVTS1QQU5TSU9TO0xvOzA7TDs8Y29tcGF0PiAxMURGOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBCQU4gQ0hJIEVVTTs7OzsKKzMxNzE7SEFOR1VMIExFVFRFUiBLQVBZRU9VTk1JRVVNO0xvOzA7TDs8Y29tcGF0PiAxMTFEOzs7O047SEFOR1VMIExFVFRFUiBNSUVVTSBTVU4gR1lFT05HIEVVTTs7OzsKKzMxNzI7SEFOR1VMIExFVFRFUiBQSUVVUC1LSVlFT0s7TG87MDtMOzxjb21wYXQ+IDExMUU7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIEdJWUVPRzs7OzsKKzMxNzM7SEFOR1VMIExFVFRFUiBQSUVVUC1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMjA7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIERJR0VVRDs7OzsKKzMxNzQ7SEFOR1VMIExFVFRFUiBQSUVVUC1TSU9TLUtJWUVPSztMbzswO0w7PGNvbXBhdD4gMTEyMjs7OztOO0hBTkdVTCBMRVRURVIgQklFVUIgU0lPUyBHSVlFT0c7Ozs7CiszMTc1O0hBTkdVTCBMRVRURVIgUElFVVAtU0lPUy1USUtFVVQ7TG87MDtMOzxjb21wYXQ+IDExMjM7Ozs7TjtIQU5HVUwgTEVUVEVSIEJJRVVCIFNJT1MgRElHRVVEOzs7OworMzE3NjtIQU5HVUwgTEVUVEVSIFBJRVVQLUNJRVVDO0xvOzA7TDs8Y29tcGF0PiAxMTI3Ozs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBKSUVVSjs7OzsKKzMxNzc7SEFOR1VMIExFVFRFUiBQSUVVUC1USElFVVRIO0xvOzA7TDs8Y29tcGF0PiAxMTI5Ozs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBUSUVVVDs7OzsKKzMxNzg7SEFOR1VMIExFVFRFUiBLQVBZRU9VTlBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTJCOzs7O047SEFOR1VMIExFVFRFUiBCSUVVQiBTVU4gR1lFT05HIEVVTTs7OzsKKzMxNzk7SEFOR1VMIExFVFRFUiBLQVBZRU9VTlNTQU5HUElFVVA7TG87MDtMOzxjb21wYXQ+IDExMkM7Ozs7TjtIQU5HVUwgTEVUVEVSIFNTQU5HIEJJRVVCIFNVTiBHWUVPTkcgRVVNOzs7OworMzE3QTtIQU5HVUwgTEVUVEVSIFNJT1MtS0lZRU9LO0xvOzA7TDs8Y29tcGF0PiAxMTJEOzs7O047SEFOR1VMIExFVFRFUiBTSU9TIEdJWUVPRzs7OzsKKzMxN0I7SEFOR1VMIExFVFRFUiBTSU9TLU5JRVVOO0xvOzA7TDs8Y29tcGF0PiAxMTJFOzs7O047SEFOR1VMIExFVFRFUiBTSU9TIE5JRVVOOzs7OworMzE3QztIQU5HVUwgTEVUVEVSIFNJT1MtVElLRVVUO0xvOzA7TDs8Y29tcGF0PiAxMTJGOzs7O047SEFOR1VMIExFVFRFUiBTSU9TIERJR0VVRDs7OzsKKzMxN0Q7SEFOR1VMIExFVFRFUiBTSU9TLVBJRVVQO0xvOzA7TDs8Y29tcGF0PiAxMTMyOzs7O047SEFOR1VMIExFVFRFUiBTSU9TIEJJRVVCOzs7OworMzE3RTtIQU5HVUwgTEVUVEVSIFNJT1MtQ0lFVUM7TG87MDtMOzxjb21wYXQ+IDExMzY7Ozs7TjtIQU5HVUwgTEVUVEVSIFNJT1MgSklFVUo7Ozs7CiszMTdGO0hBTkdVTCBMRVRURVIgUEFOU0lPUztMbzswO0w7PGNvbXBhdD4gMTE0MDs7OztOO0hBTkdVTCBMRVRURVIgQkFOIENISSBFVU07Ozs7CiszMTgwO0hBTkdVTCBMRVRURVIgU1NBTkdJRVVORztMbzswO0w7PGNvbXBhdD4gMTE0Nzs7OztOO0hBTkdVTCBMRVRURVIgU1NBTkcgSUVVTkc7Ozs7CiszMTgxO0hBTkdVTCBMRVRURVIgWUVTSUVVTkc7TG87MDtMOzxjb21wYXQ+IDExNEM7Ozs7TjtIQU5HVUwgTEVUVEVSIE5HSUVVTkc7Ozs7CiszMTgyO0hBTkdVTCBMRVRURVIgWUVTSUVVTkctU0lPUztMbzswO0w7PGNvbXBhdD4gMTFGMTs7OztOO0hBTkdVTCBMRVRURVIgTkdJRVVORyBTSU9TOzs7OworMzE4MztIQU5HVUwgTEVUVEVSIFlFU0lFVU5HLVBBTlNJT1M7TG87MDtMOzxjb21wYXQ+IDExRjI7Ozs7TjtIQU5HVUwgTEVUVEVSIE5HSUVVTkcgQkFOIENISSBFVU07Ozs7CiszMTg0O0hBTkdVTCBMRVRURVIgS0FQWUVPVU5QSElFVVBIO0xvOzA7TDs8Y29tcGF0PiAxMTU3Ozs7O047SEFOR1VMIExFVFRFUiBQSUVVUCBTVU4gR1lFT05HIEVVTTs7OzsKKzMxODU7SEFOR1VMIExFVFRFUiBTU0FOR0hJRVVIO0xvOzA7TDs8Y29tcGF0PiAxMTU4Ozs7O047SEFOR1VMIExFVFRFUiBTU0FORyBISUVVSDs7OzsKKzMxODY7SEFOR1VMIExFVFRFUiBZRU9SSU5ISUVVSDtMbzswO0w7PGNvbXBhdD4gMTE1OTs7OztOO0hBTkdVTCBMRVRURVIgWUVPTElOIEhJRVVIOzs7OworMzE4NztIQU5HVUwgTEVUVEVSIFlPLVlBO0xvOzA7TDs8Y29tcGF0PiAxMTg0Ozs7O047SEFOR1VMIExFVFRFUiBZT1lBOzs7OworMzE4ODtIQU5HVUwgTEVUVEVSIFlPLVlBRTtMbzswO0w7PGNvbXBhdD4gMTE4NTs7OztOO0hBTkdVTCBMRVRURVIgWU9ZQUU7Ozs7CiszMTg5O0hBTkdVTCBMRVRURVIgWU8tSTtMbzswO0w7PGNvbXBhdD4gMTE4ODs7OztOO0hBTkdVTCBMRVRURVIgWU9JOzs7OworMzE4QTtIQU5HVUwgTEVUVEVSIFlVLVlFTztMbzswO0w7PGNvbXBhdD4gMTE5MTs7OztOO0hBTkdVTCBMRVRURVIgWVVZRU87Ozs7CiszMThCO0hBTkdVTCBMRVRURVIgWVUtWUU7TG87MDtMOzxjb21wYXQ+IDExOTI7Ozs7TjtIQU5HVUwgTEVUVEVSIFlVWUU7Ozs7CiszMThDO0hBTkdVTCBMRVRURVIgWVUtSTtMbzswO0w7PGNvbXBhdD4gMTE5NDs7OztOO0hBTkdVTCBMRVRURVIgWVVJOzs7OworMzE4RDtIQU5HVUwgTEVUVEVSIEFSQUVBO0xvOzA7TDs8Y29tcGF0PiAxMTlFOzs7O047SEFOR1VMIExFVFRFUiBBTEFFIEE7Ozs7CiszMThFO0hBTkdVTCBMRVRURVIgQVJBRUFFO0xvOzA7TDs8Y29tcGF0PiAxMUExOzs7O047SEFOR1VMIExFVFRFUiBBTEFFIEFFOzs7OworMzE5MDtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIExJTktJTkcgTUFSSztTbzswO0w7Ozs7O047S0FOQlVOIFRBVEVURU47S2FuYnVuIFRhdGV0ZW47OzsKKzMxOTE7SURFT0dSQVBISUMgQU5OT1RBVElPTiBSRVZFUlNFIE1BUks7U287MDtMOzs7OztOO0tBRVJJVEVOIFJFO0thZXJpdGVuOzs7CiszMTkyO0lERU9HUkFQSElDIEFOTk9UQVRJT04gT05FIE1BUks7Tm87MDtMOzxzdXBlcj4gNEUwMDs7OzE7TjtLQUVSSVRFTiBJVEk7S2Flcml0ZW47OzsKKzMxOTM7SURFT0dSQVBISUMgQU5OT1RBVElPTiBUV08gTUFSSztObzswO0w7PHN1cGVyPiA0RThDOzs7MjtOO0tBRVJJVEVOIE5JO0thZXJpdGVuOzs7CiszMTk0O0lERU9HUkFQSElDIEFOTk9UQVRJT04gVEhSRUUgTUFSSztObzswO0w7PHN1cGVyPiA0RTA5Ozs7MztOO0tBRVJJVEVOIFNBTjtLYWVyaXRlbjs7OworMzE5NTtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEZPVVIgTUFSSztObzswO0w7PHN1cGVyPiA1NkRCOzs7NDtOO0tBRVJJVEVOIFNJO0thZXJpdGVuOzs7CiszMTk2O0lERU9HUkFQSElDIEFOTk9UQVRJT04gVE9QIE1BUks7U287MDtMOzxzdXBlcj4gNEUwQTs7OztOO0tBRVJJVEVOIFpZT1U7S2Flcml0ZW47OzsKKzMxOTc7SURFT0dSQVBISUMgQU5OT1RBVElPTiBNSURETEUgTUFSSztTbzswO0w7PHN1cGVyPiA0RTJEOzs7O047S0FFUklURU4gVFlVVTtLYWVyaXRlbjs7OworMzE5ODtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEJPVFRPTSBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFMEI7Ozs7TjtLQUVSSVRFTiBHRTtLYWVyaXRlbjs7OworMzE5OTtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEZJUlNUIE1BUks7U287MDtMOzxzdXBlcj4gNzUzMjs7OztOO0tBRVJJVEVOIEtPVTtLYWVyaXRlbjs7OworMzE5QTtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIFNFQ09ORCBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFNTk7Ozs7TjtLQUVSSVRFTiBPVFU7S2Flcml0ZW47OzsKKzMxOUI7SURFT0dSQVBISUMgQU5OT1RBVElPTiBUSElSRCBNQVJLO1NvOzA7TDs8c3VwZXI+IDRFMTk7Ozs7TjtLQUVSSVRFTiBIRUk7S2Flcml0ZW47OzsKKzMxOUM7SURFT0dSQVBISUMgQU5OT1RBVElPTiBGT1VSVEggTUFSSztTbzswO0w7PHN1cGVyPiA0RTAxOzs7O047S0FFUklURU4gVEVJO0thZXJpdGVuOzs7CiszMTlEO0lERU9HUkFQSElDIEFOTk9UQVRJT04gSEVBVkVOIE1BUks7U287MDtMOzxzdXBlcj4gNTkyOTs7OztOO0tBRVJJVEVOIFRFTjtLYWVyaXRlbjs7OworMzE5RTtJREVPR1JBUEhJQyBBTk5PVEFUSU9OIEVBUlRIIE1BUks7U287MDtMOzxzdXBlcj4gNTczMDs7OztOO0tBRVJJVEVOIFRJO0thZXJpdGVuOzs7CiszMTlGO0lERU9HUkFQSElDIEFOTk9UQVRJT04gTUFOIE1BUks7U287MDtMOzxzdXBlcj4gNEVCQTs7OztOO0tBRVJJVEVOIFpJTjtLYWVyaXRlbjs7OworMzFBMDtCT1BPTU9GTyBMRVRURVIgQlU7TG87MDtMOzs7OztOOzs7OzsKKzMxQTE7Qk9QT01PRk8gTEVUVEVSIFpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUEyO0JPUE9NT0ZPIExFVFRFUiBKSTtMbzswO0w7Ozs7O047Ozs7OworMzFBMztCT1BPTU9GTyBMRVRURVIgR1U7TG87MDtMOzs7OztOOzs7OzsKKzMxQTQ7Qk9QT01PRk8gTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUE1O0JPUE9NT0ZPIExFVFRFUiBFTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQTY7Qk9QT01PRk8gTEVUVEVSIE9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUE3O0JPUE9NT0ZPIExFVFRFUiBPTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQTg7Qk9QT01PRk8gTEVUVEVSIElSO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUE5O0JPUE9NT0ZPIExFVFRFUiBBTk47TG87MDtMOzs7OztOOzs7OzsKKzMxQUE7Qk9QT01PRk8gTEVUVEVSIElOTjtMbzswO0w7Ozs7O047Ozs7OworMzFBQjtCT1BPTU9GTyBMRVRURVIgVU5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUFDO0JPUE9NT0ZPIExFVFRFUiBJTTtMbzswO0w7Ozs7O047Ozs7OworMzFBRDtCT1BPTU9GTyBMRVRURVIgTkdHO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUFFO0JPUE9NT0ZPIExFVFRFUiBBSU5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUFGO0JPUE9NT0ZPIExFVFRFUiBBVU5OO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUIwO0JPUE9NT0ZPIExFVFRFUiBBTTtMbzswO0w7Ozs7O047Ozs7OworMzFCMTtCT1BPTU9GTyBMRVRURVIgT007TG87MDtMOzs7OztOOzs7OzsKKzMxQjI7Qk9QT01PRk8gTEVUVEVSIE9ORztMbzswO0w7Ozs7O047Ozs7OworMzFCMztCT1BPTU9GTyBMRVRURVIgSU5OTjtMbzswO0w7Ozs7O047Ozs7OworMzFCNDtCT1BPTU9GTyBGSU5BTCBMRVRURVIgUDtMbzswO0w7Ozs7O047Ozs7OworMzFCNTtCT1BPTU9GTyBGSU5BTCBMRVRURVIgVDtMbzswO0w7Ozs7O047Ozs7OworMzFCNjtCT1BPTU9GTyBGSU5BTCBMRVRURVIgSztMbzswO0w7Ozs7O047Ozs7OworMzFCNztCT1BPTU9GTyBGSU5BTCBMRVRURVIgSDtMbzswO0w7Ozs7O047Ozs7OworMzFDMDtDSksgU1RST0tFIFQ7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUMxO0NKSyBTVFJPS0UgV0c7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUMyO0NKSyBTVFJPS0UgWEc7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUMzO0NKSyBTVFJPS0UgQlhHO1NvOzA7T047Ozs7O047Ozs7OworMzFDNDtDSksgU1RST0tFIFNXO1NvOzA7T047Ozs7O047Ozs7OworMzFDNTtDSksgU1RST0tFIEhaWjtTbzswO09OOzs7OztOOzs7OzsKKzMxQzY7Q0pLIFNUUk9LRSBIWkc7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUM3O0NKSyBTVFJPS0UgSFA7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUM4O0NKSyBTVFJPS0UgSFpXRztTbzswO09OOzs7OztOOzs7OzsKKzMxQzk7Q0pLIFNUUk9LRSBTWldHO1NvOzA7T047Ozs7O047Ozs7OworMzFDQTtDSksgU1RST0tFIEhaVDtTbzswO09OOzs7OztOOzs7OzsKKzMxQ0I7Q0pLIFNUUk9LRSBIWlpQO1NvOzA7T047Ozs7O047Ozs7OworMzFDQztDSksgU1RST0tFIEhQV0c7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUNEO0NKSyBTVFJPS0UgSFpXO1NvOzA7T047Ozs7O047Ozs7OworMzFDRTtDSksgU1RST0tFIEhaWlo7U287MDtPTjs7Ozs7Tjs7Ozs7CiszMUNGO0NKSyBTVFJPS0UgTjtTbzswO09OOzs7OztOOzs7OzsKKzMxRjA7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUYxO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBTSTtMbzswO0w7Ozs7O047Ozs7OworMzFGMjtLQVRBS0FOQSBMRVRURVIgU01BTEwgU1U7TG87MDtMOzs7OztOOzs7OzsKKzMxRjM7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUY0O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBOVTtMbzswO0w7Ozs7O047Ozs7OworMzFGNTtLQVRBS0FOQSBMRVRURVIgU01BTEwgSEE7TG87MDtMOzs7OztOOzs7OzsKKzMxRjY7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUY3O0tBVEFLQU5BIExFVFRFUiBTTUFMTCBIVTtMbzswO0w7Ozs7O047Ozs7OworMzFGODtLQVRBS0FOQSBMRVRURVIgU01BTEwgSEU7TG87MDtMOzs7OztOOzs7OzsKKzMxRjk7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIEhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUZBO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBNVTtMbzswO0w7Ozs7O047Ozs7OworMzFGQjtLQVRBS0FOQSBMRVRURVIgU01BTEwgUkE7TG87MDtMOzs7OztOOzs7OzsKKzMxRkM7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMUZEO0tBVEFLQU5BIExFVFRFUiBTTUFMTCBSVTtMbzswO0w7Ozs7O047Ozs7OworMzFGRTtLQVRBS0FOQSBMRVRURVIgU01BTEwgUkU7TG87MDtMOzs7OztOOzs7OzsKKzMxRkY7S0FUQUtBTkEgTEVUVEVSIFNNQUxMIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CiszMjAwO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtJWUVPSztTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTAwIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBHSVlFT0c7Ozs7CiszMjAxO1BBUkVOVEhFU0laRUQgSEFOR1VMIE5JRVVOO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDIgMDAyOTs7OztOOzs7OzsKKzMyMDI7UEFSRU5USEVTSVpFRCBIQU5HVUwgVElLRVVUO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDMgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIERJR0VVRDs7OzsKKzMyMDM7UEFSRU5USEVTSVpFRCBIQU5HVUwgUklFVUw7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgTElFVUw7Ozs7CiszMjA0O1BBUkVOVEhFU0laRUQgSEFOR1VMIE1JRVVNO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDYgMDAyOTs7OztOOzs7OzsKKzMyMDU7UEFSRU5USEVTSVpFRCBIQU5HVUwgUElFVVA7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNyAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQklFVUI7Ozs7CiszMjA2O1BBUkVOVEhFU0laRUQgSEFOR1VMIFNJT1M7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwOSAwMDI5Ozs7O047Ozs7OworMzIwNztQQVJFTlRIRVNJWkVEIEhBTkdVTCBJRVVORztTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBCIDAwMjk7Ozs7Tjs7Ozs7CiszMjA4O1BBUkVOVEhFU0laRUQgSEFOR1VMIENJRVVDO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEMgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEpJRVVKOzs7OworMzIwOTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSElFVUNIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEUgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIENJRVVDOzs7OworMzIwQTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLSElFVUtIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEYgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEtJWUVPSzs7OzsKKzMyMEI7UEFSRU5USEVTSVpFRCBIQU5HVUwgVEhJRVVUSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTEwIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBUSUVVVDs7OzsKKzMyMEM7UEFSRU5USEVTSVpFRCBIQU5HVUwgUEhJRVVQSDtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTExIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSUVVUDs7OzsKKzMyMEQ7UEFSRU5USEVTSVpFRCBIQU5HVUwgSElFVUg7U287MDtMOzxjb21wYXQ+IDAwMjggMTExMiAwMDI5Ozs7O047Ozs7OworMzIwRTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBLSVlFT0sgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTAwIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEdBOzs7OworMzIwRjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBOSUVVTiBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDIgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgTkE7Ozs7CiszMjEwO1BBUkVOVEhFU0laRUQgSEFOR1VMIFRJS0VVVCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDMgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgREE7Ozs7CiszMjExO1BBUkVOVEhFU0laRUQgSEFOR1VMIFJJRVVMIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwNSAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBMQTs7OzsKKzMyMTI7UEFSRU5USEVTSVpFRCBIQU5HVUwgTUlFVU0gQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA2IDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIE1BOzs7OworMzIxMztQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSUVVUCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMDcgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQkE7Ozs7CiszMjE0O1BBUkVOVEhFU0laRUQgSEFOR1VMIFNJT1MgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTA5IDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFNBOzs7OworMzIxNTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBJRVVORyBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEIgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgQTs7OzsKKzMyMTY7UEFSRU5USEVTSVpFRCBIQU5HVUwgQ0lFVUMgQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTBDIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEpBOzs7OworMzIxNztQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSElFVUNIIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTEwRSAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBDQTs7OzsKKzMyMTg7UEFSRU5USEVTSVpFRCBIQU5HVUwgS0hJRVVLSCBBO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEYgMTE2MSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgS0E7Ozs7CiszMjE5O1BBUkVOVEhFU0laRUQgSEFOR1VMIFRISUVVVEggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTEwIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIFRBOzs7OworMzIxQTtQQVJFTlRIRVNJWkVEIEhBTkdVTCBQSElFVVBIIEE7U287MDtMOzxjb21wYXQ+IDAwMjggMTExMSAxMTYxIDAwMjk7Ozs7TjtQQVJFTlRIRVNJWkVEIEhBTkdVTCBQQTs7OzsKKzMyMUI7UEFSRU5USEVTSVpFRCBIQU5HVUwgSElFVUggQTtTbzswO0w7PGNvbXBhdD4gMDAyOCAxMTEyIDExNjEgMDAyOTs7OztOO1BBUkVOVEhFU0laRUQgSEFOR1VMIEhBOzs7OworMzIxQztQQVJFTlRIRVNJWkVEIEhBTkdVTCBDSUVVQyBVO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDExMEMgMTE2RSAwMDI5Ozs7O047UEFSRU5USEVTSVpFRCBIQU5HVUwgSlU7Ozs7CiszMjFEO1BBUkVOVEhFU0laRUQgS09SRUFOIENIQVJBQ1RFUiBPSkVPTjtTbzswO09OOzxjb21wYXQ+IDAwMjggMTEwQiAxMTY5IDExMEMgMTE2NSAxMUFCIDAwMjk7Ozs7Tjs7Ozs7CiszMjFFO1BBUkVOVEhFU0laRUQgS09SRUFOIENIQVJBQ1RFUiBPIEhVO1NvOzA7T047PGNvbXBhdD4gMDAyOCAxMTBCIDExNjkgMTExMiAxMTZFIDAwMjk7Ozs7Tjs7Ozs7CiszMjIwO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIE9ORTtObzswO0w7PGNvbXBhdD4gMDAyOCA0RTAwIDAwMjk7OzsxO047Ozs7OworMzIyMTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBUV087Tm87MDtMOzxjb21wYXQ+IDAwMjggNEU4QyAwMDI5Ozs7MjtOOzs7OzsKKzMyMjI7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggVEhSRUU7Tm87MDtMOzxjb21wYXQ+IDAwMjggNEUwOSAwMDI5Ozs7MztOOzs7OzsKKzMyMjM7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRk9VUjtObzswO0w7PGNvbXBhdD4gMDAyOCA1NkRCIDAwMjk7Ozs0O047Ozs7OworMzIyNDtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBGSVZFO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFOTQgMDAyOTs7OzU7Tjs7Ozs7CiszMjI1O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNJWDtObzswO0w7PGNvbXBhdD4gMDAyOCA1MTZEIDAwMjk7Ozs2O047Ozs7OworMzIyNjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTRVZFTjtObzswO0w7PGNvbXBhdD4gMDAyOCA0RTAzIDAwMjk7Ozs3O047Ozs7OworMzIyNztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBFSUdIVDtObzswO0w7PGNvbXBhdD4gMDAyOCA1MTZCIDAwMjk7Ozs4O047Ozs7OworMzIyODtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBOSU5FO05vOzA7TDs8Y29tcGF0PiAwMDI4IDRFNUQgMDAyOTs7Ozk7Tjs7Ozs7CiszMjI5O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFRFTjtObzswO0w7PGNvbXBhdD4gMDAyOCA1MzQxIDAwMjk7OzsxMDtOOzs7OzsKKzMyMkE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggTU9PTjtTbzswO0w7PGNvbXBhdD4gMDAyOCA2NzA4IDAwMjk7Ozs7Tjs7Ozs7CiszMjJCO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEZJUkU7U287MDtMOzxjb21wYXQ+IDAwMjggNzA2QiAwMDI5Ozs7O047Ozs7OworMzIyQztQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBXQVRFUjtTbzswO0w7PGNvbXBhdD4gMDAyOCA2QzM0IDAwMjk7Ozs7Tjs7Ozs7CiszMjJEO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFdPT0Q7U287MDtMOzxjb21wYXQ+IDAwMjggNjcyOCAwMDI5Ozs7O047Ozs7OworMzIyRTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBNRVRBTDtTbzswO0w7PGNvbXBhdD4gMDAyOCA5MUQxIDAwMjk7Ozs7Tjs7Ozs7CiszMjJGO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEVBUlRIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDU3MUYgMDAyOTs7OztOOzs7OzsKKzMyMzA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1VOO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY1RTUgMDAyOTs7OztOOzs7OzsKKzMyMzE7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU1RPQ0s7U287MDtMOzxjb21wYXQ+IDAwMjggNjgyQSAwMDI5Ozs7O047Ozs7OworMzIzMjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBIQVZFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDY3MDkgMDAyOTs7OztOOzs7OzsKKzMyMzM7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU09DSUVUWTtTbzswO0w7PGNvbXBhdD4gMDAyOCA3OTNFIDAwMjk7Ozs7Tjs7Ozs7CiszMjM0O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIE5BTUU7U287MDtMOzxjb21wYXQ+IDAwMjggNTQwRCAwMDI5Ozs7O047Ozs7OworMzIzNTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTUEVDSUFMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDcyNzkgMDAyOTs7OztOOzs7OzsKKzMyMzY7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRklOQU5DSUFMO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDhDQTEgMDAyOTs7OztOOzs7OzsKKzMyMzc7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggQ09OR1JBVFVMQVRJT047U287MDtMOzxjb21wYXQ+IDAwMjggNzk1RCAwMDI5Ozs7O047Ozs7OworMzIzODtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBMQUJPUjtTbzswO0w7PGNvbXBhdD4gMDAyOCA1MkI0IDAwMjk7Ozs7Tjs7Ozs7CiszMjM5O1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFJFUFJFU0VOVDtTbzswO0w7PGNvbXBhdD4gMDAyOCA0RUUzIDAwMjk7Ozs7Tjs7Ozs7CiszMjNBO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIENBTEw7U287MDtMOzxjb21wYXQ+IDAwMjggNTQ3QyAwMDI5Ozs7O047Ozs7OworMzIzQjtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBTVFVEWTtTbzswO0w7PGNvbXBhdD4gMDAyOCA1QjY2IDAwMjk7Ozs7Tjs7Ozs7CiszMjNDO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFNVUEVSVklTRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA3NkUzIDAwMjk7Ozs7Tjs7Ozs7CiszMjNEO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEVOVEVSUFJJU0U7U287MDtMOzxjb21wYXQ+IDAwMjggNEYwMSAwMDI5Ozs7O047Ozs7OworMzIzRTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBSRVNPVVJDRTtTbzswO0w7PGNvbXBhdD4gMDAyOCA4Q0M3IDAwMjk7Ozs7Tjs7Ozs7CiszMjNGO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIEFMTElBTkNFO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDUzNTQgMDAyOTs7OztOOzs7OzsKKzMyNDA7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggRkVTVElWQUw7U287MDtMOzxjb21wYXQ+IDAwMjggNzk2RCAwMDI5Ozs7O047Ozs7OworMzI0MTtQQVJFTlRIRVNJWkVEIElERU9HUkFQSCBSRVNUO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDRGMTEgMDAyOTs7OztOOzs7OzsKKzMyNDI7UEFSRU5USEVTSVpFRCBJREVPR1JBUEggU0VMRjtTbzswO0w7PGNvbXBhdD4gMDAyOCA4MUVBIDAwMjk7Ozs7Tjs7Ozs7CiszMjQzO1BBUkVOVEhFU0laRUQgSURFT0dSQVBIIFJFQUNIO1NvOzA7TDs8Y29tcGF0PiAwMDI4IDgxRjMgMDAyOTs7OztOOzs7OzsKKzMyNTA7UEFSVE5FUlNISVAgU0lHTjtTbzswO09OOzxzcXVhcmU+IDAwNTAgMDA1NCAwMDQ1Ozs7O047Ozs7OworMzI1MTtDSVJDTEVEIE5VTUJFUiBUV0VOVFkgT05FO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDMxOzs7MjE7Tjs7Ozs7CiszMjUyO0NJUkNMRUQgTlVNQkVSIFRXRU5UWSBUV087Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzI7OzsyMjtOOzs7OzsKKzMyNTM7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZIFRIUkVFO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDMzOzs7MjM7Tjs7Ozs7CiszMjU0O0NJUkNMRUQgTlVNQkVSIFRXRU5UWSBGT1VSO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDM0Ozs7MjQ7Tjs7Ozs7CiszMjU1O0NJUkNMRUQgTlVNQkVSIFRXRU5UWSBGSVZFO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDM1Ozs7MjU7Tjs7Ozs7CiszMjU2O0NJUkNMRUQgTlVNQkVSIFRXRU5UWSBTSVg7Tm87MDtPTjs8Y2lyY2xlPiAwMDMyIDAwMzY7OzsyNjtOOzs7OzsKKzMyNTc7Q0lSQ0xFRCBOVU1CRVIgVFdFTlRZIFNFVkVOO05vOzA7T047PGNpcmNsZT4gMDAzMiAwMDM3Ozs7Mjc7Tjs7Ozs7CiszMjU4O0NJUkNMRUQgTlVNQkVSIFRXRU5UWSBFSUdIVDtObzswO09OOzxjaXJjbGU+IDAwMzIgMDAzODs7OzI4O047Ozs7OworMzI1OTtDSVJDTEVEIE5VTUJFUiBUV0VOVFkgTklORTtObzswO09OOzxjaXJjbGU+IDAwMzIgMDAzOTs7OzI5O047Ozs7OworMzI1QTtDSVJDTEVEIE5VTUJFUiBUSElSVFk7Tm87MDtPTjs8Y2lyY2xlPiAwMDMzIDAwMzA7OzszMDtOOzs7OzsKKzMyNUI7Q0lSQ0xFRCBOVU1CRVIgVEhJUlRZIE9ORTtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzMTs7OzMxO047Ozs7OworMzI1QztDSVJDTEVEIE5VTUJFUiBUSElSVFkgVFdPO05vOzA7T047PGNpcmNsZT4gMDAzMyAwMDMyOzs7MzI7Tjs7Ozs7CiszMjVEO0NJUkNMRUQgTlVNQkVSIFRISVJUWSBUSFJFRTtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzMzs7OzMzO047Ozs7OworMzI1RTtDSVJDTEVEIE5VTUJFUiBUSElSVFkgRk9VUjtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzNDs7OzM0O047Ozs7OworMzI1RjtDSVJDTEVEIE5VTUJFUiBUSElSVFkgRklWRTtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzNTs7OzM1O047Ozs7OworMzI2MDtDSVJDTEVEIEhBTkdVTCBLSVlFT0s7U287MDtMOzxjaXJjbGU+IDExMDA7Ozs7TjtDSVJDTEVEIEhBTkdVTCBHSVlFT0c7Ozs7CiszMjYxO0NJUkNMRUQgSEFOR1VMIE5JRVVOO1NvOzA7TDs8Y2lyY2xlPiAxMTAyOzs7O047Ozs7OworMzI2MjtDSVJDTEVEIEhBTkdVTCBUSUtFVVQ7U287MDtMOzxjaXJjbGU+IDExMDM7Ozs7TjtDSVJDTEVEIEhBTkdVTCBESUdFVUQ7Ozs7CiszMjYzO0NJUkNMRUQgSEFOR1VMIFJJRVVMO1NvOzA7TDs8Y2lyY2xlPiAxMTA1Ozs7O047Q0lSQ0xFRCBIQU5HVUwgTElFVUw7Ozs7CiszMjY0O0NJUkNMRUQgSEFOR1VMIE1JRVVNO1NvOzA7TDs8Y2lyY2xlPiAxMTA2Ozs7O047Ozs7OworMzI2NTtDSVJDTEVEIEhBTkdVTCBQSUVVUDtTbzswO0w7PGNpcmNsZT4gMTEwNzs7OztOO0NJUkNMRUQgSEFOR1VMIEJJRVVCOzs7OworMzI2NjtDSVJDTEVEIEhBTkdVTCBTSU9TO1NvOzA7TDs8Y2lyY2xlPiAxMTA5Ozs7O047Ozs7OworMzI2NztDSVJDTEVEIEhBTkdVTCBJRVVORztTbzswO0w7PGNpcmNsZT4gMTEwQjs7OztOOzs7OzsKKzMyNjg7Q0lSQ0xFRCBIQU5HVUwgQ0lFVUM7U287MDtMOzxjaXJjbGU+IDExMEM7Ozs7TjtDSVJDTEVEIEhBTkdVTCBKSUVVSjs7OzsKKzMyNjk7Q0lSQ0xFRCBIQU5HVUwgQ0hJRVVDSDtTbzswO0w7PGNpcmNsZT4gMTEwRTs7OztOO0NJUkNMRUQgSEFOR1VMIENJRVVDOzs7OworMzI2QTtDSVJDTEVEIEhBTkdVTCBLSElFVUtIO1NvOzA7TDs8Y2lyY2xlPiAxMTBGOzs7O047Q0lSQ0xFRCBIQU5HVUwgS0lZRU9LOzs7OworMzI2QjtDSVJDTEVEIEhBTkdVTCBUSElFVVRIO1NvOzA7TDs8Y2lyY2xlPiAxMTEwOzs7O047Q0lSQ0xFRCBIQU5HVUwgVElFVVQ7Ozs7CiszMjZDO0NJUkNMRUQgSEFOR1VMIFBISUVVUEg7U287MDtMOzxjaXJjbGU+IDExMTE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBQSUVVUDs7OzsKKzMyNkQ7Q0lSQ0xFRCBIQU5HVUwgSElFVUg7U287MDtMOzxjaXJjbGU+IDExMTI7Ozs7Tjs7Ozs7CiszMjZFO0NJUkNMRUQgSEFOR1VMIEtJWUVPSyBBO1NvOzA7TDs8Y2lyY2xlPiAxMTAwIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBHQTs7OzsKKzMyNkY7Q0lSQ0xFRCBIQU5HVUwgTklFVU4gQTtTbzswO0w7PGNpcmNsZT4gMTEwMiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgTkE7Ozs7CiszMjcwO0NJUkNMRUQgSEFOR1VMIFRJS0VVVCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTAzIDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBEQTs7OzsKKzMyNzE7Q0lSQ0xFRCBIQU5HVUwgUklFVUwgQTtTbzswO0w7PGNpcmNsZT4gMTEwNSAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgTEE7Ozs7CiszMjcyO0NJUkNMRUQgSEFOR1VMIE1JRVVNIEE7U287MDtMOzxjaXJjbGU+IDExMDYgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIE1BOzs7OworMzI3MztDSVJDTEVEIEhBTkdVTCBQSUVVUCBBO1NvOzA7TDs8Y2lyY2xlPiAxMTA3IDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBCQTs7OzsKKzMyNzQ7Q0lSQ0xFRCBIQU5HVUwgU0lPUyBBO1NvOzA7TDs8Y2lyY2xlPiAxMTA5IDExNjE7Ozs7TjtDSVJDTEVEIEhBTkdVTCBTQTs7OzsKKzMyNzU7Q0lSQ0xFRCBIQU5HVUwgSUVVTkcgQTtTbzswO0w7PGNpcmNsZT4gMTEwQiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgQTs7OzsKKzMyNzY7Q0lSQ0xFRCBIQU5HVUwgQ0lFVUMgQTtTbzswO0w7PGNpcmNsZT4gMTEwQyAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgSkE7Ozs7CiszMjc3O0NJUkNMRUQgSEFOR1VMIENISUVVQ0ggQTtTbzswO0w7PGNpcmNsZT4gMTEwRSAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgQ0E7Ozs7CiszMjc4O0NJUkNMRUQgSEFOR1VMIEtISUVVS0ggQTtTbzswO0w7PGNpcmNsZT4gMTEwRiAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgS0E7Ozs7CiszMjc5O0NJUkNMRUQgSEFOR1VMIFRISUVVVEggQTtTbzswO0w7PGNpcmNsZT4gMTExMCAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgVEE7Ozs7CiszMjdBO0NJUkNMRUQgSEFOR1VMIFBISUVVUEggQTtTbzswO0w7PGNpcmNsZT4gMTExMSAxMTYxOzs7O047Q0lSQ0xFRCBIQU5HVUwgUEE7Ozs7CiszMjdCO0NJUkNMRUQgSEFOR1VMIEhJRVVIIEE7U287MDtMOzxjaXJjbGU+IDExMTIgMTE2MTs7OztOO0NJUkNMRUQgSEFOR1VMIEhBOzs7OworMzI3QztDSVJDTEVEIEtPUkVBTiBDSEFSQUNURVIgQ0hBTUtPO1NvOzA7T047PGNpcmNsZT4gMTEwRSAxMTYxIDExQjcgMTEwMCAxMTY5Ozs7O047Ozs7OworMzI3RDtDSVJDTEVEIEtPUkVBTiBDSEFSQUNURVIgSlVFVUk7U287MDtPTjs8Y2lyY2xlPiAxMTBDIDExNkUgMTEwQiAxMTc0Ozs7O047Ozs7OworMzI3RTtDSVJDTEVEIEhBTkdVTCBJRVVORyBVO1NvOzA7T047PGNpcmNsZT4gMTEwQiAxMTZFOzs7O047Ozs7OworMzI3RjtLT1JFQU4gU1RBTkRBUkQgU1lNQk9MO1NvOzA7TDs7Ozs7Tjs7Ozs7CiszMjgwO0NJUkNMRUQgSURFT0dSQVBIIE9ORTtObzswO0w7PGNpcmNsZT4gNEUwMDs7OzE7Tjs7Ozs7CiszMjgxO0NJUkNMRUQgSURFT0dSQVBIIFRXTztObzswO0w7PGNpcmNsZT4gNEU4Qzs7OzI7Tjs7Ozs7CiszMjgyO0NJUkNMRUQgSURFT0dSQVBIIFRIUkVFO05vOzA7TDs8Y2lyY2xlPiA0RTA5Ozs7MztOOzs7OzsKKzMyODM7Q0lSQ0xFRCBJREVPR1JBUEggRk9VUjtObzswO0w7PGNpcmNsZT4gNTZEQjs7OzQ7Tjs7Ozs7CiszMjg0O0NJUkNMRUQgSURFT0dSQVBIIEZJVkU7Tm87MDtMOzxjaXJjbGU+IDRFOTQ7Ozs1O047Ozs7OworMzI4NTtDSVJDTEVEIElERU9HUkFQSCBTSVg7Tm87MDtMOzxjaXJjbGU+IDUxNkQ7Ozs2O047Ozs7OworMzI4NjtDSVJDTEVEIElERU9HUkFQSCBTRVZFTjtObzswO0w7PGNpcmNsZT4gNEUwMzs7Ozc7Tjs7Ozs7CiszMjg3O0NJUkNMRUQgSURFT0dSQVBIIEVJR0hUO05vOzA7TDs8Y2lyY2xlPiA1MTZCOzs7ODtOOzs7OzsKKzMyODg7Q0lSQ0xFRCBJREVPR1JBUEggTklORTtObzswO0w7PGNpcmNsZT4gNEU1RDs7Ozk7Tjs7Ozs7CiszMjg5O0NJUkNMRUQgSURFT0dSQVBIIFRFTjtObzswO0w7PGNpcmNsZT4gNTM0MTs7OzEwO047Ozs7OworMzI4QTtDSVJDTEVEIElERU9HUkFQSCBNT09OO1NvOzA7TDs8Y2lyY2xlPiA2NzA4Ozs7O047Ozs7OworMzI4QjtDSVJDTEVEIElERU9HUkFQSCBGSVJFO1NvOzA7TDs8Y2lyY2xlPiA3MDZCOzs7O047Ozs7OworMzI4QztDSVJDTEVEIElERU9HUkFQSCBXQVRFUjtTbzswO0w7PGNpcmNsZT4gNkMzNDs7OztOOzs7OzsKKzMyOEQ7Q0lSQ0xFRCBJREVPR1JBUEggV09PRDtTbzswO0w7PGNpcmNsZT4gNjcyODs7OztOOzs7OzsKKzMyOEU7Q0lSQ0xFRCBJREVPR1JBUEggTUVUQUw7U287MDtMOzxjaXJjbGU+IDkxRDE7Ozs7Tjs7Ozs7CiszMjhGO0NJUkNMRUQgSURFT0dSQVBIIEVBUlRIO1NvOzA7TDs8Y2lyY2xlPiA1NzFGOzs7O047Ozs7OworMzI5MDtDSVJDTEVEIElERU9HUkFQSCBTVU47U287MDtMOzxjaXJjbGU+IDY1RTU7Ozs7Tjs7Ozs7CiszMjkxO0NJUkNMRUQgSURFT0dSQVBIIFNUT0NLO1NvOzA7TDs8Y2lyY2xlPiA2ODJBOzs7O047Ozs7OworMzI5MjtDSVJDTEVEIElERU9HUkFQSCBIQVZFO1NvOzA7TDs8Y2lyY2xlPiA2NzA5Ozs7O047Ozs7OworMzI5MztDSVJDTEVEIElERU9HUkFQSCBTT0NJRVRZO1NvOzA7TDs8Y2lyY2xlPiA3OTNFOzs7O047Ozs7OworMzI5NDtDSVJDTEVEIElERU9HUkFQSCBOQU1FO1NvOzA7TDs8Y2lyY2xlPiA1NDBEOzs7O047Ozs7OworMzI5NTtDSVJDTEVEIElERU9HUkFQSCBTUEVDSUFMO1NvOzA7TDs8Y2lyY2xlPiA3Mjc5Ozs7O047Ozs7OworMzI5NjtDSVJDTEVEIElERU9HUkFQSCBGSU5BTkNJQUw7U287MDtMOzxjaXJjbGU+IDhDQTE7Ozs7Tjs7Ozs7CiszMjk3O0NJUkNMRUQgSURFT0dSQVBIIENPTkdSQVRVTEFUSU9OO1NvOzA7TDs8Y2lyY2xlPiA3OTVEOzs7O047Ozs7OworMzI5ODtDSVJDTEVEIElERU9HUkFQSCBMQUJPUjtTbzswO0w7PGNpcmNsZT4gNTJCNDs7OztOOzs7OzsKKzMyOTk7Q0lSQ0xFRCBJREVPR1JBUEggU0VDUkVUO1NvOzA7TDs8Y2lyY2xlPiA3OUQ4Ozs7O047Ozs7OworMzI5QTtDSVJDTEVEIElERU9HUkFQSCBNQUxFO1NvOzA7TDs8Y2lyY2xlPiA3NTM3Ozs7O047Ozs7OworMzI5QjtDSVJDTEVEIElERU9HUkFQSCBGRU1BTEU7U287MDtMOzxjaXJjbGU+IDU5NzM7Ozs7Tjs7Ozs7CiszMjlDO0NJUkNMRUQgSURFT0dSQVBIIFNVSVRBQkxFO1NvOzA7TDs8Y2lyY2xlPiA5MDY5Ozs7O047Ozs7OworMzI5RDtDSVJDTEVEIElERU9HUkFQSCBFWENFTExFTlQ7U287MDtMOzxjaXJjbGU+IDUxMkE7Ozs7Tjs7Ozs7CiszMjlFO0NJUkNMRUQgSURFT0dSQVBIIFBSSU5UO1NvOzA7TDs8Y2lyY2xlPiA1MzcwOzs7O047Ozs7OworMzI5RjtDSVJDTEVEIElERU9HUkFQSCBBVFRFTlRJT047U287MDtMOzxjaXJjbGU+IDZDRTg7Ozs7Tjs7Ozs7CiszMkEwO0NJUkNMRUQgSURFT0dSQVBIIElURU07U287MDtMOzxjaXJjbGU+IDk4MDU7Ozs7Tjs7Ozs7CiszMkExO0NJUkNMRUQgSURFT0dSQVBIIFJFU1Q7U287MDtMOzxjaXJjbGU+IDRGMTE7Ozs7Tjs7Ozs7CiszMkEyO0NJUkNMRUQgSURFT0dSQVBIIENPUFk7U287MDtMOzxjaXJjbGU+IDUxOTk7Ozs7Tjs7Ozs7CiszMkEzO0NJUkNMRUQgSURFT0dSQVBIIENPUlJFQ1Q7U287MDtMOzxjaXJjbGU+IDZCNjM7Ozs7Tjs7Ozs7CiszMkE0O0NJUkNMRUQgSURFT0dSQVBIIEhJR0g7U287MDtMOzxjaXJjbGU+IDRFMEE7Ozs7Tjs7Ozs7CiszMkE1O0NJUkNMRUQgSURFT0dSQVBIIENFTlRSRTtTbzswO0w7PGNpcmNsZT4gNEUyRDs7OztOO0NJUkNMRUQgSURFT0dSQVBIIENFTlRFUjs7OzsKKzMyQTY7Q0lSQ0xFRCBJREVPR1JBUEggTE9XO1NvOzA7TDs8Y2lyY2xlPiA0RTBCOzs7O047Ozs7OworMzJBNztDSVJDTEVEIElERU9HUkFQSCBMRUZUO1NvOzA7TDs8Y2lyY2xlPiA1REU2Ozs7O047Ozs7OworMzJBODtDSVJDTEVEIElERU9HUkFQSCBSSUdIVDtTbzswO0w7PGNpcmNsZT4gNTNGMzs7OztOOzs7OzsKKzMyQTk7Q0lSQ0xFRCBJREVPR1JBUEggTUVESUNJTkU7U287MDtMOzxjaXJjbGU+IDUzM0I7Ozs7Tjs7Ozs7CiszMkFBO0NJUkNMRUQgSURFT0dSQVBIIFJFTElHSU9OO1NvOzA7TDs8Y2lyY2xlPiA1Qjk3Ozs7O047Ozs7OworMzJBQjtDSVJDTEVEIElERU9HUkFQSCBTVFVEWTtTbzswO0w7PGNpcmNsZT4gNUI2Njs7OztOOzs7OzsKKzMyQUM7Q0lSQ0xFRCBJREVPR1JBUEggU1VQRVJWSVNFO1NvOzA7TDs8Y2lyY2xlPiA3NkUzOzs7O047Ozs7OworMzJBRDtDSVJDTEVEIElERU9HUkFQSCBFTlRFUlBSSVNFO1NvOzA7TDs8Y2lyY2xlPiA0RjAxOzs7O047Ozs7OworMzJBRTtDSVJDTEVEIElERU9HUkFQSCBSRVNPVVJDRTtTbzswO0w7PGNpcmNsZT4gOENDNzs7OztOOzs7OzsKKzMyQUY7Q0lSQ0xFRCBJREVPR1JBUEggQUxMSUFOQ0U7U287MDtMOzxjaXJjbGU+IDUzNTQ7Ozs7Tjs7Ozs7CiszMkIwO0NJUkNMRUQgSURFT0dSQVBIIE5JR0hUO1NvOzA7TDs8Y2lyY2xlPiA1OTFDOzs7O047Ozs7OworMzJCMTtDSVJDTEVEIE5VTUJFUiBUSElSVFkgU0lYO05vOzA7T047PGNpcmNsZT4gMDAzMyAwMDM2Ozs7MzY7Tjs7Ozs7CiszMkIyO0NJUkNMRUQgTlVNQkVSIFRISVJUWSBTRVZFTjtObzswO09OOzxjaXJjbGU+IDAwMzMgMDAzNzs7OzM3O047Ozs7OworMzJCMztDSVJDTEVEIE5VTUJFUiBUSElSVFkgRUlHSFQ7Tm87MDtPTjs8Y2lyY2xlPiAwMDMzIDAwMzg7OzszODtOOzs7OzsKKzMyQjQ7Q0lSQ0xFRCBOVU1CRVIgVEhJUlRZIE5JTkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDMzIDAwMzk7OzszOTtOOzs7OzsKKzMyQjU7Q0lSQ0xFRCBOVU1CRVIgRk9SVFk7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzA7Ozs0MDtOOzs7OzsKKzMyQjY7Q0lSQ0xFRCBOVU1CRVIgRk9SVFkgT05FO05vOzA7T047PGNpcmNsZT4gMDAzNCAwMDMxOzs7NDE7Tjs7Ozs7CiszMkI3O0NJUkNMRUQgTlVNQkVSIEZPUlRZIFRXTztObzswO09OOzxjaXJjbGU+IDAwMzQgMDAzMjs7OzQyO047Ozs7OworMzJCODtDSVJDTEVEIE5VTUJFUiBGT1JUWSBUSFJFRTtObzswO09OOzxjaXJjbGU+IDAwMzQgMDAzMzs7OzQzO047Ozs7OworMzJCOTtDSVJDTEVEIE5VTUJFUiBGT1JUWSBGT1VSO05vOzA7T047PGNpcmNsZT4gMDAzNCAwMDM0Ozs7NDQ7Tjs7Ozs7CiszMkJBO0NJUkNMRUQgTlVNQkVSIEZPUlRZIEZJVkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzU7Ozs0NTtOOzs7OzsKKzMyQkI7Q0lSQ0xFRCBOVU1CRVIgRk9SVFkgU0lYO05vOzA7T047PGNpcmNsZT4gMDAzNCAwMDM2Ozs7NDY7Tjs7Ozs7CiszMkJDO0NJUkNMRUQgTlVNQkVSIEZPUlRZIFNFVkVOO05vOzA7T047PGNpcmNsZT4gMDAzNCAwMDM3Ozs7NDc7Tjs7Ozs7CiszMkJEO0NJUkNMRUQgTlVNQkVSIEZPUlRZIEVJR0hUO05vOzA7T047PGNpcmNsZT4gMDAzNCAwMDM4Ozs7NDg7Tjs7Ozs7CiszMkJFO0NJUkNMRUQgTlVNQkVSIEZPUlRZIE5JTkU7Tm87MDtPTjs8Y2lyY2xlPiAwMDM0IDAwMzk7Ozs0OTtOOzs7OzsKKzMyQkY7Q0lSQ0xFRCBOVU1CRVIgRklGVFk7Tm87MDtPTjs8Y2lyY2xlPiAwMDM1IDAwMzA7Ozs1MDtOOzs7OzsKKzMyQzA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSkFOVUFSWTtTbzswO0w7PGNvbXBhdD4gMDAzMSA2NzA4Ozs7O047Ozs7OworMzJDMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBGRUJSVUFSWTtTbzswO0w7PGNvbXBhdD4gMDAzMiA2NzA4Ozs7O047Ozs7OworMzJDMjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBNQVJDSDtTbzswO0w7PGNvbXBhdD4gMDAzMyA2NzA4Ozs7O047Ozs7OworMzJDMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBBUFJJTDtTbzswO0w7PGNvbXBhdD4gMDAzNCA2NzA4Ozs7O047Ozs7OworMzJDNDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBNQVk7U287MDtMOzxjb21wYXQ+IDAwMzUgNjcwODs7OztOOzs7OzsKKzMyQzU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSlVORTtTbzswO0w7PGNvbXBhdD4gMDAzNiA2NzA4Ozs7O047Ozs7OworMzJDNjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBKVUxZO1NvOzA7TDs8Y29tcGF0PiAwMDM3IDY3MDg7Ozs7Tjs7Ozs7CiszMkM3O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEFVR1VTVDtTbzswO0w7PGNvbXBhdD4gMDAzOCA2NzA4Ozs7O047Ozs7OworMzJDODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBTRVBURU1CRVI7U287MDtMOzxjb21wYXQ+IDAwMzkgNjcwODs7OztOOzs7OzsKKzMyQzk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgT0NUT0JFUjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMwIDY3MDg7Ozs7Tjs7Ozs7CiszMkNBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIE5PVkVNQkVSO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzEgNjcwODs7OztOOzs7OzsKKzMyQ0I7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREVDRU1CRVI7U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMiA2NzA4Ozs7O047Ozs7OworMzJDQztTUVVBUkUgSEc7U287MDtPTjs8c3F1YXJlPiAwMDQ4IDAwNjc7Ozs7Tjs7Ozs7CiszMkNEO1NRVUFSRSBFUkc7U287MDtPTjs8c3F1YXJlPiAwMDY1IDAwNzIgMDA2Nzs7OztOOzs7OzsKKzMyQ0U7U1FVQVJFIEVWO1NvOzA7T047PHNxdWFyZT4gMDA2NSAwMDU2Ozs7O047Ozs7OworMzJDRjtMSU1JVEVEIExJQUJJTElUWSBTSUdOO1NvOzA7T047PHNxdWFyZT4gMDA0QyAwMDU0IDAwNDQ7Ozs7Tjs7Ozs7CiszMkQwO0NJUkNMRUQgS0FUQUtBTkEgQTtTbzswO0w7PGNpcmNsZT4gMzBBMjs7OztOOzs7OzsKKzMyRDE7Q0lSQ0xFRCBLQVRBS0FOQSBJO1NvOzA7TDs8Y2lyY2xlPiAzMEE0Ozs7O047Ozs7OworMzJEMjtDSVJDTEVEIEtBVEFLQU5BIFU7U287MDtMOzxjaXJjbGU+IDMwQTY7Ozs7Tjs7Ozs7CiszMkQzO0NJUkNMRUQgS0FUQUtBTkEgRTtTbzswO0w7PGNpcmNsZT4gMzBBODs7OztOOzs7OzsKKzMyRDQ7Q0lSQ0xFRCBLQVRBS0FOQSBPO1NvOzA7TDs8Y2lyY2xlPiAzMEFBOzs7O047Ozs7OworMzJENTtDSVJDTEVEIEtBVEFLQU5BIEtBO1NvOzA7TDs8Y2lyY2xlPiAzMEFCOzs7O047Ozs7OworMzJENjtDSVJDTEVEIEtBVEFLQU5BIEtJO1NvOzA7TDs8Y2lyY2xlPiAzMEFEOzs7O047Ozs7OworMzJENztDSVJDTEVEIEtBVEFLQU5BIEtVO1NvOzA7TDs8Y2lyY2xlPiAzMEFGOzs7O047Ozs7OworMzJEODtDSVJDTEVEIEtBVEFLQU5BIEtFO1NvOzA7TDs8Y2lyY2xlPiAzMEIxOzs7O047Ozs7OworMzJEOTtDSVJDTEVEIEtBVEFLQU5BIEtPO1NvOzA7TDs8Y2lyY2xlPiAzMEIzOzs7O047Ozs7OworMzJEQTtDSVJDTEVEIEtBVEFLQU5BIFNBO1NvOzA7TDs8Y2lyY2xlPiAzMEI1Ozs7O047Ozs7OworMzJEQjtDSVJDTEVEIEtBVEFLQU5BIFNJO1NvOzA7TDs8Y2lyY2xlPiAzMEI3Ozs7O047Ozs7OworMzJEQztDSVJDTEVEIEtBVEFLQU5BIFNVO1NvOzA7TDs8Y2lyY2xlPiAzMEI5Ozs7O047Ozs7OworMzJERDtDSVJDTEVEIEtBVEFLQU5BIFNFO1NvOzA7TDs8Y2lyY2xlPiAzMEJCOzs7O047Ozs7OworMzJERTtDSVJDTEVEIEtBVEFLQU5BIFNPO1NvOzA7TDs8Y2lyY2xlPiAzMEJEOzs7O047Ozs7OworMzJERjtDSVJDTEVEIEtBVEFLQU5BIFRBO1NvOzA7TDs8Y2lyY2xlPiAzMEJGOzs7O047Ozs7OworMzJFMDtDSVJDTEVEIEtBVEFLQU5BIFRJO1NvOzA7TDs8Y2lyY2xlPiAzMEMxOzs7O047Ozs7OworMzJFMTtDSVJDTEVEIEtBVEFLQU5BIFRVO1NvOzA7TDs8Y2lyY2xlPiAzMEM0Ozs7O047Ozs7OworMzJFMjtDSVJDTEVEIEtBVEFLQU5BIFRFO1NvOzA7TDs8Y2lyY2xlPiAzMEM2Ozs7O047Ozs7OworMzJFMztDSVJDTEVEIEtBVEFLQU5BIFRPO1NvOzA7TDs8Y2lyY2xlPiAzMEM4Ozs7O047Ozs7OworMzJFNDtDSVJDTEVEIEtBVEFLQU5BIE5BO1NvOzA7TDs8Y2lyY2xlPiAzMENBOzs7O047Ozs7OworMzJFNTtDSVJDTEVEIEtBVEFLQU5BIE5JO1NvOzA7TDs8Y2lyY2xlPiAzMENCOzs7O047Ozs7OworMzJFNjtDSVJDTEVEIEtBVEFLQU5BIE5VO1NvOzA7TDs8Y2lyY2xlPiAzMENDOzs7O047Ozs7OworMzJFNztDSVJDTEVEIEtBVEFLQU5BIE5FO1NvOzA7TDs8Y2lyY2xlPiAzMENEOzs7O047Ozs7OworMzJFODtDSVJDTEVEIEtBVEFLQU5BIE5PO1NvOzA7TDs8Y2lyY2xlPiAzMENFOzs7O047Ozs7OworMzJFOTtDSVJDTEVEIEtBVEFLQU5BIEhBO1NvOzA7TDs8Y2lyY2xlPiAzMENGOzs7O047Ozs7OworMzJFQTtDSVJDTEVEIEtBVEFLQU5BIEhJO1NvOzA7TDs8Y2lyY2xlPiAzMEQyOzs7O047Ozs7OworMzJFQjtDSVJDTEVEIEtBVEFLQU5BIEhVO1NvOzA7TDs8Y2lyY2xlPiAzMEQ1Ozs7O047Ozs7OworMzJFQztDSVJDTEVEIEtBVEFLQU5BIEhFO1NvOzA7TDs8Y2lyY2xlPiAzMEQ4Ozs7O047Ozs7OworMzJFRDtDSVJDTEVEIEtBVEFLQU5BIEhPO1NvOzA7TDs8Y2lyY2xlPiAzMERCOzs7O047Ozs7OworMzJFRTtDSVJDTEVEIEtBVEFLQU5BIE1BO1NvOzA7TDs8Y2lyY2xlPiAzMERFOzs7O047Ozs7OworMzJFRjtDSVJDTEVEIEtBVEFLQU5BIE1JO1NvOzA7TDs8Y2lyY2xlPiAzMERGOzs7O047Ozs7OworMzJGMDtDSVJDTEVEIEtBVEFLQU5BIE1VO1NvOzA7TDs8Y2lyY2xlPiAzMEUwOzs7O047Ozs7OworMzJGMTtDSVJDTEVEIEtBVEFLQU5BIE1FO1NvOzA7TDs8Y2lyY2xlPiAzMEUxOzs7O047Ozs7OworMzJGMjtDSVJDTEVEIEtBVEFLQU5BIE1PO1NvOzA7TDs8Y2lyY2xlPiAzMEUyOzs7O047Ozs7OworMzJGMztDSVJDTEVEIEtBVEFLQU5BIFlBO1NvOzA7TDs8Y2lyY2xlPiAzMEU0Ozs7O047Ozs7OworMzJGNDtDSVJDTEVEIEtBVEFLQU5BIFlVO1NvOzA7TDs8Y2lyY2xlPiAzMEU2Ozs7O047Ozs7OworMzJGNTtDSVJDTEVEIEtBVEFLQU5BIFlPO1NvOzA7TDs8Y2lyY2xlPiAzMEU4Ozs7O047Ozs7OworMzJGNjtDSVJDTEVEIEtBVEFLQU5BIFJBO1NvOzA7TDs8Y2lyY2xlPiAzMEU5Ozs7O047Ozs7OworMzJGNztDSVJDTEVEIEtBVEFLQU5BIFJJO1NvOzA7TDs8Y2lyY2xlPiAzMEVBOzs7O047Ozs7OworMzJGODtDSVJDTEVEIEtBVEFLQU5BIFJVO1NvOzA7TDs8Y2lyY2xlPiAzMEVCOzs7O047Ozs7OworMzJGOTtDSVJDTEVEIEtBVEFLQU5BIFJFO1NvOzA7TDs8Y2lyY2xlPiAzMEVDOzs7O047Ozs7OworMzJGQTtDSVJDTEVEIEtBVEFLQU5BIFJPO1NvOzA7TDs8Y2lyY2xlPiAzMEVEOzs7O047Ozs7OworMzJGQjtDSVJDTEVEIEtBVEFLQU5BIFdBO1NvOzA7TDs8Y2lyY2xlPiAzMEVGOzs7O047Ozs7OworMzJGQztDSVJDTEVEIEtBVEFLQU5BIFdJO1NvOzA7TDs8Y2lyY2xlPiAzMEYwOzs7O047Ozs7OworMzJGRDtDSVJDTEVEIEtBVEFLQU5BIFdFO1NvOzA7TDs8Y2lyY2xlPiAzMEYxOzs7O047Ozs7OworMzJGRTtDSVJDTEVEIEtBVEFLQU5BIFdPO1NvOzA7TDs8Y2lyY2xlPiAzMEYyOzs7O047Ozs7OworMzMwMDtTUVVBUkUgQVBBQVRPO1NvOzA7TDs8c3F1YXJlPiAzMEEyIDMwRDEgMzBGQyAzMEM4Ozs7O047U1FVQVJFRCBBUEFBVE87Ozs7CiszMzAxO1NRVUFSRSBBUlVIVUE7U287MDtMOzxzcXVhcmU+IDMwQTIgMzBFQiAzMEQ1IDMwQTE7Ozs7TjtTUVVBUkVEIEFSVUhVQTs7OzsKKzMzMDI7U1FVQVJFIEFOUEVBO1NvOzA7TDs8c3F1YXJlPiAzMEEyIDMwRjMgMzBEQSAzMEEyOzs7O047U1FVQVJFRCBBTlBFQTs7OzsKKzMzMDM7U1FVQVJFIEFBUlU7U287MDtMOzxzcXVhcmU+IDMwQTIgMzBGQyAzMEVCOzs7O047U1FVQVJFRCBBQVJVOzs7OworMzMwNDtTUVVBUkUgSU5JTkdVO1NvOzA7TDs8c3F1YXJlPiAzMEE0IDMwQ0IgMzBGMyAzMEIwOzs7O047U1FVQVJFRCBJTklOR1U7Ozs7CiszMzA1O1NRVUFSRSBJTlRJO1NvOzA7TDs8c3F1YXJlPiAzMEE0IDMwRjMgMzBDMTs7OztOO1NRVUFSRUQgSU5USTs7OzsKKzMzMDY7U1FVQVJFIFVPTjtTbzswO0w7PHNxdWFyZT4gMzBBNiAzMEE5IDMwRjM7Ozs7TjtTUVVBUkVEIFVPTjs7OzsKKzMzMDc7U1FVQVJFIEVTVUtVVURPO1NvOzA7TDs8c3F1YXJlPiAzMEE4IDMwQjkgMzBBRiAzMEZDIDMwQzk7Ozs7TjtTUVVBUkVEIEVTVUtVVURPOzs7OworMzMwODtTUVVBUkUgRUVLQUE7U287MDtMOzxzcXVhcmU+IDMwQTggMzBGQyAzMEFCIDMwRkM7Ozs7TjtTUVVBUkVEIEVFS0FBOzs7OworMzMwOTtTUVVBUkUgT05TVTtTbzswO0w7PHNxdWFyZT4gMzBBQSAzMEYzIDMwQjk7Ozs7TjtTUVVBUkVEIE9OU1U7Ozs7CiszMzBBO1NRVUFSRSBPT01VO1NvOzA7TDs8c3F1YXJlPiAzMEFBIDMwRkMgMzBFMDs7OztOO1NRVUFSRUQgT09NVTs7OzsKKzMzMEI7U1FVQVJFIEtBSVJJO1NvOzA7TDs8c3F1YXJlPiAzMEFCIDMwQTQgMzBFQTs7OztOO1NRVUFSRUQgS0FJUkk7Ozs7CiszMzBDO1NRVUFSRSBLQVJBVFRPO1NvOzA7TDs8c3F1YXJlPiAzMEFCIDMwRTkgMzBDMyAzMEM4Ozs7O047U1FVQVJFRCBLQVJBVFRPOzs7OworMzMwRDtTUVVBUkUgS0FST1JJSTtTbzswO0w7PHNxdWFyZT4gMzBBQiAzMEVEIDMwRUEgMzBGQzs7OztOO1NRVUFSRUQgS0FST1JJSTs7OzsKKzMzMEU7U1FVQVJFIEdBUk9OO1NvOzA7TDs8c3F1YXJlPiAzMEFDIDMwRUQgMzBGMzs7OztOO1NRVUFSRUQgR0FST047Ozs7CiszMzBGO1NRVUFSRSBHQU5NQTtTbzswO0w7PHNxdWFyZT4gMzBBQyAzMEYzIDMwREU7Ozs7TjtTUVVBUkVEIEdBTk1BOzs7OworMzMxMDtTUVVBUkUgR0lHQTtTbzswO0w7PHNxdWFyZT4gMzBBRSAzMEFDOzs7O047U1FVQVJFRCBHSUdBOzs7OworMzMxMTtTUVVBUkUgR0lOSUk7U287MDtMOzxzcXVhcmU+IDMwQUUgMzBDQiAzMEZDOzs7O047U1FVQVJFRCBHSU5JSTs7OzsKKzMzMTI7U1FVQVJFIEtZVVJJSTtTbzswO0w7PHNxdWFyZT4gMzBBRCAzMEU1IDMwRUEgMzBGQzs7OztOO1NRVUFSRUQgS1lVUklJOzs7OworMzMxMztTUVVBUkUgR0lSVURBQTtTbzswO0w7PHNxdWFyZT4gMzBBRSAzMEVCIDMwQzAgMzBGQzs7OztOO1NRVUFSRUQgR0lSVURBQTs7OzsKKzMzMTQ7U1FVQVJFIEtJUk87U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFRDs7OztOO1NRVUFSRUQgS0lSTzs7OzsKKzMzMTU7U1FVQVJFIEtJUk9HVVJBTVU7U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFRCAzMEIwIDMwRTkgMzBFMDs7OztOO1NRVUFSRUQgS0lST0dVUkFNVTs7OzsKKzMzMTY7U1FVQVJFIEtJUk9NRUVUT1JVO1NvOzA7TDs8c3F1YXJlPiAzMEFEIDMwRUQgMzBFMSAzMEZDIDMwQzggMzBFQjs7OztOO1NRVUFSRUQgS0lST01FRVRPUlU7Ozs7CiszMzE3O1NRVUFSRSBLSVJPV0FUVE87U287MDtMOzxzcXVhcmU+IDMwQUQgMzBFRCAzMEVGIDMwQzMgMzBDODs7OztOO1NRVUFSRUQgS0lST1dBVFRPOzs7OworMzMxODtTUVVBUkUgR1VSQU1VO1NvOzA7TDs8c3F1YXJlPiAzMEIwIDMwRTkgMzBFMDs7OztOO1NRVUFSRUQgR1VSQU1VOzs7OworMzMxOTtTUVVBUkUgR1VSQU1VVE9OO1NvOzA7TDs8c3F1YXJlPiAzMEIwIDMwRTkgMzBFMCAzMEM4IDMwRjM7Ozs7TjtTUVVBUkVEIEdVUkFNVVRPTjs7OzsKKzMzMUE7U1FVQVJFIEtVUlVaRUlSTztTbzswO0w7PHNxdWFyZT4gMzBBRiAzMEVCIDMwQkMgMzBBNCAzMEVEOzs7O047U1FVQVJFRCBLVVJVWkVJUk87Ozs7CiszMzFCO1NRVUFSRSBLVVJPT05FO1NvOzA7TDs8c3F1YXJlPiAzMEFGIDMwRUQgMzBGQyAzMENEOzs7O047U1FVQVJFRCBLVVJPT05FOzs7OworMzMxQztTUVVBUkUgS0VFU1U7U287MDtMOzxzcXVhcmU+IDMwQjEgMzBGQyAzMEI5Ozs7O047U1FVQVJFRCBLRUVTVTs7OzsKKzMzMUQ7U1FVQVJFIEtPUlVOQTtTbzswO0w7PHNxdWFyZT4gMzBCMyAzMEVCIDMwQ0E7Ozs7TjtTUVVBUkVEIEtPUlVOQTs7OzsKKzMzMUU7U1FVQVJFIEtPT1BPO1NvOzA7TDs8c3F1YXJlPiAzMEIzIDMwRkMgMzBERDs7OztOO1NRVUFSRUQgS09PUE87Ozs7CiszMzFGO1NRVUFSRSBTQUlLVVJVO1NvOzA7TDs8c3F1YXJlPiAzMEI1IDMwQTQgMzBBRiAzMEVCOzs7O047U1FVQVJFRCBTQUlLVVJVOzs7OworMzMyMDtTUVVBUkUgU0FOVElJTVU7U287MDtMOzxzcXVhcmU+IDMwQjUgMzBGMyAzMEMxIDMwRkMgMzBFMDs7OztOO1NRVUFSRUQgU0FOVElJTVU7Ozs7CiszMzIxO1NRVUFSRSBTSVJJTkdVO1NvOzA7TDs8c3F1YXJlPiAzMEI3IDMwRUEgMzBGMyAzMEIwOzs7O047U1FVQVJFRCBTSVJJTkdVOzs7OworMzMyMjtTUVVBUkUgU0VOVEk7U287MDtMOzxzcXVhcmU+IDMwQkIgMzBGMyAzMEMxOzs7O047U1FVQVJFRCBTRU5USTs7OzsKKzMzMjM7U1FVQVJFIFNFTlRPO1NvOzA7TDs8c3F1YXJlPiAzMEJCIDMwRjMgMzBDODs7OztOO1NRVUFSRUQgU0VOVE87Ozs7CiszMzI0O1NRVUFSRSBEQUFTVTtTbzswO0w7PHNxdWFyZT4gMzBDMCAzMEZDIDMwQjk7Ozs7TjtTUVVBUkVEIERBQVNVOzs7OworMzMyNTtTUVVBUkUgREVTSTtTbzswO0w7PHNxdWFyZT4gMzBDNyAzMEI3Ozs7O047U1FVQVJFRCBERVNJOzs7OworMzMyNjtTUVVBUkUgRE9SVTtTbzswO0w7PHNxdWFyZT4gMzBDOSAzMEVCOzs7O047U1FVQVJFRCBET1JVOzs7OworMzMyNztTUVVBUkUgVE9OO1NvOzA7TDs8c3F1YXJlPiAzMEM4IDMwRjM7Ozs7TjtTUVVBUkVEIFRPTjs7OzsKKzMzMjg7U1FVQVJFIE5BTk87U287MDtMOzxzcXVhcmU+IDMwQ0EgMzBDRTs7OztOO1NRVUFSRUQgTkFOTzs7OzsKKzMzMjk7U1FVQVJFIE5PVFRPO1NvOzA7TDs8c3F1YXJlPiAzMENFIDMwQzMgMzBDODs7OztOO1NRVUFSRUQgTk9UVE87Ozs7CiszMzJBO1NRVUFSRSBIQUlUVTtTbzswO0w7PHNxdWFyZT4gMzBDRiAzMEE0IDMwQzQ7Ozs7TjtTUVVBUkVEIEhBSVRVOzs7OworMzMyQjtTUVVBUkUgUEFBU0VOVE87U287MDtMOzxzcXVhcmU+IDMwRDEgMzBGQyAzMEJCIDMwRjMgMzBDODs7OztOO1NRVUFSRUQgUEFBU0VOVE87Ozs7CiszMzJDO1NRVUFSRSBQQUFUVTtTbzswO0w7PHNxdWFyZT4gMzBEMSAzMEZDIDMwQzQ7Ozs7TjtTUVVBUkVEIFBBQVRVOzs7OworMzMyRDtTUVVBUkUgQkFBUkVSVTtTbzswO0w7PHNxdWFyZT4gMzBEMCAzMEZDIDMwRUMgMzBFQjs7OztOO1NRVUFSRUQgQkFBUkVSVTs7OzsKKzMzMkU7U1FVQVJFIFBJQVNVVE9SVTtTbzswO0w7PHNxdWFyZT4gMzBENCAzMEEyIDMwQjkgMzBDOCAzMEVCOzs7O047U1FVQVJFRCBQSUFTVVRPUlU7Ozs7CiszMzJGO1NRVUFSRSBQSUtVUlU7U287MDtMOzxzcXVhcmU+IDMwRDQgMzBBRiAzMEVCOzs7O047U1FVQVJFRCBQSUtVUlU7Ozs7CiszMzMwO1NRVUFSRSBQSUtPO1NvOzA7TDs8c3F1YXJlPiAzMEQ0IDMwQjM7Ozs7TjtTUVVBUkVEIFBJS087Ozs7CiszMzMxO1NRVUFSRSBCSVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQzIDMwRUI7Ozs7TjtTUVVBUkVEIEJJUlU7Ozs7CiszMzMyO1NRVUFSRSBIVUFSQURETztTbzswO0w7PHNxdWFyZT4gMzBENSAzMEExIDMwRTkgMzBDMyAzMEM5Ozs7O047U1FVQVJFRCBIVUFSQURETzs7OzsKKzMzMzM7U1FVQVJFIEhVSUlUTztTbzswO0w7PHNxdWFyZT4gMzBENSAzMEEzIDMwRkMgMzBDODs7OztOO1NRVUFSRUQgSFVJSVRPOzs7OworMzMzNDtTUVVBUkUgQlVTU1lFUlU7U287MDtMOzxzcXVhcmU+IDMwRDYgMzBDMyAzMEI3IDMwQTcgMzBFQjs7OztOO1NRVUFSRUQgQlVTU1lFUlU7Ozs7CiszMzM1O1NRVUFSRSBIVVJBTjtTbzswO0w7PHNxdWFyZT4gMzBENSAzMEU5IDMwRjM7Ozs7TjtTUVVBUkVEIEhVUkFOOzs7OworMzMzNjtTUVVBUkUgSEVLVVRBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMEQ4IDMwQUYgMzBCRiAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIEhFS1VUQUFSVTs7OzsKKzMzMzc7U1FVQVJFIFBFU087U287MDtMOzxzcXVhcmU+IDMwREEgMzBCRDs7OztOO1NRVUFSRUQgUEVTTzs7OzsKKzMzMzg7U1FVQVJFIFBFTklISTtTbzswO0w7PHNxdWFyZT4gMzBEQSAzMENCIDMwRDI7Ozs7TjtTUVVBUkVEIFBFTklISTs7OzsKKzMzMzk7U1FVQVJFIEhFUlVUVTtTbzswO0w7PHNxdWFyZT4gMzBEOCAzMEVCIDMwQzQ7Ozs7TjtTUVVBUkVEIEhFUlVUVTs7OzsKKzMzM0E7U1FVQVJFIFBFTlNVO1NvOzA7TDs8c3F1YXJlPiAzMERBIDMwRjMgMzBCOTs7OztOO1NRVUFSRUQgUEVOU1U7Ozs7CiszMzNCO1NRVUFSRSBQRUVaSTtTbzswO0w7PHNxdWFyZT4gMzBEQSAzMEZDIDMwQjg7Ozs7TjtTUVVBUkVEIFBFRVpJOzs7OworMzMzQztTUVVBUkUgQkVFVEE7U287MDtMOzxzcXVhcmU+IDMwRDkgMzBGQyAzMEJGOzs7O047U1FVQVJFRCBCRUVUQTs7OzsKKzMzM0Q7U1FVQVJFIFBPSU5UTztTbzswO0w7PHNxdWFyZT4gMzBERCAzMEE0IDMwRjMgMzBDODs7OztOO1NRVUFSRUQgUE9JTlRPOzs7OworMzMzRTtTUVVBUkUgQk9SVVRPO1NvOzA7TDs8c3F1YXJlPiAzMERDIDMwRUIgMzBDODs7OztOO1NRVUFSRUQgQk9SVVRPOzs7OworMzMzRjtTUVVBUkUgSE9OO1NvOzA7TDs8c3F1YXJlPiAzMERCIDMwRjM7Ozs7TjtTUVVBUkVEIEhPTjs7OzsKKzMzNDA7U1FVQVJFIFBPTkRPO1NvOzA7TDs8c3F1YXJlPiAzMEREIDMwRjMgMzBDOTs7OztOO1NRVUFSRUQgUE9ORE87Ozs7CiszMzQxO1NRVUFSRSBIT09SVTtTbzswO0w7PHNxdWFyZT4gMzBEQiAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIEhPT1JVOzs7OworMzM0MjtTUVVBUkUgSE9PTjtTbzswO0w7PHNxdWFyZT4gMzBEQiAzMEZDIDMwRjM7Ozs7TjtTUVVBUkVEIEhPT047Ozs7CiszMzQzO1NRVUFSRSBNQUlLVVJPO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwQTQgMzBBRiAzMEVEOzs7O047U1FVQVJFRCBNQUlLVVJPOzs7OworMzM0NDtTUVVBUkUgTUFJUlU7U287MDtMOzxzcXVhcmU+IDMwREUgMzBBNCAzMEVCOzs7O047U1FVQVJFRCBNQUlSVTs7OzsKKzMzNDU7U1FVQVJFIE1BSEhBO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwQzMgMzBDRjs7OztOO1NRVUFSRUQgTUFISEE7Ozs7CiszMzQ2O1NRVUFSRSBNQVJVS1U7U287MDtMOzxzcXVhcmU+IDMwREUgMzBFQiAzMEFGOzs7O047U1FVQVJFRCBNQVJVS1U7Ozs7CiszMzQ3O1NRVUFSRSBNQU5TWU9OO1NvOzA7TDs8c3F1YXJlPiAzMERFIDMwRjMgMzBCNyAzMEU3IDMwRjM7Ozs7TjtTUVVBUkVEIE1BTlNZT047Ozs7CiszMzQ4O1NRVUFSRSBNSUtVUk9OO1NvOzA7TDs8c3F1YXJlPiAzMERGIDMwQUYgMzBFRCAzMEYzOzs7O047U1FVQVJFRCBNSUtVUk9OOzs7OworMzM0OTtTUVVBUkUgTUlSSTtTbzswO0w7PHNxdWFyZT4gMzBERiAzMEVBOzs7O047U1FVQVJFRCBNSVJJOzs7OworMzM0QTtTUVVBUkUgTUlSSUJBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMERGIDMwRUEgMzBEMCAzMEZDIDMwRUI7Ozs7TjtTUVVBUkVEIE1JUklCQUFSVTs7OzsKKzMzNEI7U1FVQVJFIE1FR0E7U287MDtMOzxzcXVhcmU+IDMwRTEgMzBBQzs7OztOO1NRVUFSRUQgTUVHQTs7OzsKKzMzNEM7U1FVQVJFIE1FR0FUT047U287MDtMOzxzcXVhcmU+IDMwRTEgMzBBQyAzMEM4IDMwRjM7Ozs7TjtTUVVBUkVEIE1FR0FUT047Ozs7CiszMzREO1NRVUFSRSBNRUVUT1JVO1NvOzA7TDs8c3F1YXJlPiAzMEUxIDMwRkMgMzBDOCAzMEVCOzs7O047U1FVQVJFRCBNRUVUT1JVOzs7OworMzM0RTtTUVVBUkUgWUFBRE87U287MDtMOzxzcXVhcmU+IDMwRTQgMzBGQyAzMEM5Ozs7O047U1FVQVJFRCBZQUFETzs7OzsKKzMzNEY7U1FVQVJFIFlBQVJVO1NvOzA7TDs8c3F1YXJlPiAzMEU0IDMwRkMgMzBFQjs7OztOO1NRVUFSRUQgWUFBUlU7Ozs7CiszMzUwO1NRVUFSRSBZVUFOO1NvOzA7TDs8c3F1YXJlPiAzMEU2IDMwQTIgMzBGMzs7OztOO1NRVUFSRUQgWVVBTjs7OzsKKzMzNTE7U1FVQVJFIFJJVFRPUlU7U287MDtMOzxzcXVhcmU+IDMwRUEgMzBDMyAzMEM4IDMwRUI7Ozs7TjtTUVVBUkVEIFJJVFRPUlU7Ozs7CiszMzUyO1NRVUFSRSBSSVJBO1NvOzA7TDs8c3F1YXJlPiAzMEVBIDMwRTk7Ozs7TjtTUVVBUkVEIFJJUkE7Ozs7CiszMzUzO1NRVUFSRSBSVVBJSTtTbzswO0w7PHNxdWFyZT4gMzBFQiAzMEQ0IDMwRkM7Ozs7TjtTUVVBUkVEIFJVUElJOzs7OworMzM1NDtTUVVBUkUgUlVVQlVSVTtTbzswO0w7PHNxdWFyZT4gMzBFQiAzMEZDIDMwRDYgMzBFQjs7OztOO1NRVUFSRUQgUlVVQlVSVTs7OzsKKzMzNTU7U1FVQVJFIFJFTVU7U287MDtMOzxzcXVhcmU+IDMwRUMgMzBFMDs7OztOO1NRVUFSRUQgUkVNVTs7OzsKKzMzNTY7U1FVQVJFIFJFTlRPR0VOO1NvOzA7TDs8c3F1YXJlPiAzMEVDIDMwRjMgMzBDOCAzMEIyIDMwRjM7Ozs7TjtTUVVBUkVEIFJFTlRPR0VOOzs7OworMzM1NztTUVVBUkUgV0FUVE87U287MDtMOzxzcXVhcmU+IDMwRUYgMzBDMyAzMEM4Ozs7O047U1FVQVJFRCBXQVRUTzs7OzsKKzMzNTg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBaRVJPO1NvOzA7TDs8Y29tcGF0PiAwMDMwIDcwQjk7Ozs7Tjs7Ozs7CiszMzU5O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDcwQjk7Ozs7Tjs7Ozs7CiszMzVBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDcwQjk7Ozs7Tjs7Ozs7CiszMzVCO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVEhSRUU7U287MDtMOzxjb21wYXQ+IDAwMzMgNzBCOTs7OztOOzs7OzsKKzMzNUM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBGT1VSO1NvOzA7TDs8Y29tcGF0PiAwMDM0IDcwQjk7Ozs7Tjs7Ozs7CiszMzVEO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRklWRTtTbzswO0w7PGNvbXBhdD4gMDAzNSA3MEI5Ozs7O047Ozs7OworMzM1RTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFNJWDtTbzswO0w7PGNvbXBhdD4gMDAzNiA3MEI5Ozs7O047Ozs7OworMzM1RjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFNFVkVOO1NvOzA7TDs8Y29tcGF0PiAwMDM3IDcwQjk7Ozs7Tjs7Ozs7CiszMzYwO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgRUlHSFQ7U287MDtMOzxjb21wYXQ+IDAwMzggNzBCOTs7OztOOzs7OzsKKzMzNjE7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBOSU5FO1NvOzA7TDs8Y29tcGF0PiAwMDM5IDcwQjk7Ozs7Tjs7Ozs7CiszMzYyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVEVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzAgNzBCOTs7OztOOzs7OzsKKzMzNjM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBFTEVWRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMSA3MEI5Ozs7O047Ozs7OworMzM2NDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRUxWRTtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMyIDcwQjk7Ozs7Tjs7Ozs7CiszMzY1O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVEhJUlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMyA3MEI5Ozs7O047Ozs7OworMzM2NjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEZPVVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzQgNzBCOTs7OztOOzs7OzsKKzMzNjc7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBGSUZURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzUgNzBCOTs7OztOOzs7OzsKKzMzNjg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBTSVhURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzYgNzBCOTs7OztOOzs7OzsKKzMzNjk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBTRVZFTlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNyA3MEI5Ozs7O047Ozs7OworMzM2QTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIEVJR0hURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzggNzBCOTs7OztOOzs7OzsKKzMzNkI7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBOSU5FVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM5IDcwQjk7Ozs7Tjs7Ozs7CiszMzZDO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIEhPVVIgVFdFTlRZO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzAgNzBCOTs7OztOOzs7OzsKKzMzNkQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzEgNzBCOTs7OztOOzs7OzsKKzMzNkU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzIgNzBCOTs7OztOOzs7OzsKKzMzNkY7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgSE9VUiBUV0VOVFktVEhSRUU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMyA3MEI5Ozs7O047Ozs7OworMzM3MDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBIT1VSIFRXRU5UWS1GT1VSO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzQgNzBCOTs7OztOOzs7OzsKKzMzNzE7U1FVQVJFIEhQQTtTbzswO0w7PHNxdWFyZT4gMDA2OCAwMDUwIDAwNjE7Ozs7Tjs7Ozs7CiszMzcyO1NRVUFSRSBEQTtTbzswO0w7PHNxdWFyZT4gMDA2NCAwMDYxOzs7O047Ozs7OworMzM3MztTUVVBUkUgQVU7U287MDtMOzxzcXVhcmU+IDAwNDEgMDA1NTs7OztOOzs7OzsKKzMzNzQ7U1FVQVJFIEJBUjtTbzswO0w7PHNxdWFyZT4gMDA2MiAwMDYxIDAwNzI7Ozs7Tjs7Ozs7CiszMzc1O1NRVUFSRSBPVjtTbzswO0w7PHNxdWFyZT4gMDA2RiAwMDU2Ozs7O047Ozs7OworMzM3NjtTUVVBUkUgUEM7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA2Mzs7OztOOzs7OzsKKzMzNzc7U1FVQVJFIERNO1NvOzA7T047PHNxdWFyZT4gMDA2NCAwMDZEOzs7O047Ozs7OworMzM3ODtTUVVBUkUgRE0gU1FVQVJFRDtTbzswO09OOzxzcXVhcmU+IDAwNjQgMDA2RCAwMEIyOzs7O047Ozs7OworMzM3OTtTUVVBUkUgRE0gQ1VCRUQ7U287MDtPTjs8c3F1YXJlPiAwMDY0IDAwNkQgMDBCMzs7OztOOzs7OzsKKzMzN0E7U1FVQVJFIElVO1NvOzA7T047PHNxdWFyZT4gMDA0OSAwMDU1Ozs7O047Ozs7OworMzM3QjtTUVVBUkUgRVJBIE5BTUUgSEVJU0VJO1NvOzA7TDs8c3F1YXJlPiA1RTczIDYyMTA7Ozs7TjtTUVVBUkVEIFRXTyBJREVPR1JBUEhTIEVSQSBOQU1FIEhFSVNFSTs7OzsKKzMzN0M7U1FVQVJFIEVSQSBOQU1FIFNZT1VXQTtTbzswO0w7PHNxdWFyZT4gNjYyRCA1NDhDOzs7O047U1FVQVJFRCBUV08gSURFT0dSQVBIUyBFUkEgTkFNRSBTWU9VV0E7Ozs7CiszMzdEO1NRVUFSRSBFUkEgTkFNRSBUQUlTWU9VO1NvOzA7TDs8c3F1YXJlPiA1OTI3IDZCNjM7Ozs7TjtTUVVBUkVEIFRXTyBJREVPR1JBUEhTIEVSQSBOQU1FIFRBSVNZT1U7Ozs7CiszMzdFO1NRVUFSRSBFUkEgTkFNRSBNRUlaSTtTbzswO0w7PHNxdWFyZT4gNjYwRSA2Q0JCOzs7O047U1FVQVJFRCBUV08gSURFT0dSQVBIUyBFUkEgTkFNRSBNRUlaSTs7OzsKKzMzN0Y7U1FVQVJFIENPUlBPUkFUSU9OO1NvOzA7TDs8c3F1YXJlPiA2ODJBIDVGMEYgNEYxQSA3OTNFOzs7O047U1FVQVJFRCBGT1VSIElERU9HUkFQSFMgQ09SUE9SQVRJT047Ozs7CiszMzgwO1NRVUFSRSBQQSBBTVBTO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNDE7Ozs7TjtTUVVBUkVEIFBBIEFNUFM7Ozs7CiszMzgxO1NRVUFSRSBOQTtTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDQxOzs7O047U1FVQVJFRCBOQTs7OzsKKzMzODI7U1FVQVJFIE1VIEE7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA0MTs7OztOO1NRVUFSRUQgTVUgQTs7OzsKKzMzODM7U1FVQVJFIE1BO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNDE7Ozs7TjtTUVVBUkVEIE1BOzs7OworMzM4NDtTUVVBUkUgS0E7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA0MTs7OztOO1NRVUFSRUQgS0E7Ozs7CiszMzg1O1NRVUFSRSBLQjtTbzswO0w7PHNxdWFyZT4gMDA0QiAwMDQyOzs7O047U1FVQVJFRCBLQjs7OzsKKzMzODY7U1FVQVJFIE1CO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNDI7Ozs7TjtTUVVBUkVEIE1COzs7OworMzM4NztTUVVBUkUgR0I7U287MDtMOzxzcXVhcmU+IDAwNDcgMDA0Mjs7OztOO1NRVUFSRUQgR0I7Ozs7CiszMzg4O1NRVUFSRSBDQUw7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2MSAwMDZDOzs7O047U1FVQVJFRCBDQUw7Ozs7CiszMzg5O1NRVUFSRSBLQ0FMO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNjMgMDA2MSAwMDZDOzs7O047U1FVQVJFRCBLQ0FMOzs7OworMzM4QTtTUVVBUkUgUEY7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA0Njs7OztOO1NRVUFSRUQgUEY7Ozs7CiszMzhCO1NRVUFSRSBORjtTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDQ2Ozs7O047U1FVQVJFRCBORjs7OzsKKzMzOEM7U1FVQVJFIE1VIEY7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA0Njs7OztOO1NRVUFSRUQgTVUgRjs7OzsKKzMzOEQ7U1FVQVJFIE1VIEc7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA2Nzs7OztOO1NRVUFSRUQgTVUgRzs7OzsKKzMzOEU7U1FVQVJFIE1HO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNjc7Ozs7TjtTUVVBUkVEIE1HOzs7OworMzM4RjtTUVVBUkUgS0c7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2Nzs7OztOO1NRVUFSRUQgS0c7Ozs7CiszMzkwO1NRVUFSRSBIWjtTbzswO0w7PHNxdWFyZT4gMDA0OCAwMDdBOzs7O047U1FVQVJFRCBIWjs7OzsKKzMzOTE7U1FVQVJFIEtIWjtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIEtIWjs7OzsKKzMzOTI7U1FVQVJFIE1IWjtTbzswO0w7PHNxdWFyZT4gMDA0RCAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIE1IWjs7OzsKKzMzOTM7U1FVQVJFIEdIWjtTbzswO0w7PHNxdWFyZT4gMDA0NyAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIEdIWjs7OzsKKzMzOTQ7U1FVQVJFIFRIWjtTbzswO0w7PHNxdWFyZT4gMDA1NCAwMDQ4IDAwN0E7Ozs7TjtTUVVBUkVEIFRIWjs7OzsKKzMzOTU7U1FVQVJFIE1VIEw7U287MDtMOzxzcXVhcmU+IDAzQkMgMjExMzs7OztOO1NRVUFSRUQgTVUgTDs7OzsKKzMzOTY7U1FVQVJFIE1MO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDIxMTM7Ozs7TjtTUVVBUkVEIE1MOzs7OworMzM5NztTUVVBUkUgREw7U287MDtMOzxzcXVhcmU+IDAwNjQgMjExMzs7OztOO1NRVUFSRUQgREw7Ozs7CiszMzk4O1NRVUFSRSBLTDtTbzswO0w7PHNxdWFyZT4gMDA2QiAyMTEzOzs7O047U1FVQVJFRCBLTDs7OzsKKzMzOTk7U1FVQVJFIEZNO1NvOzA7TDs8c3F1YXJlPiAwMDY2IDAwNkQ7Ozs7TjtTUVVBUkVEIEZNOzs7OworMzM5QTtTUVVBUkUgTk07U287MDtMOzxzcXVhcmU+IDAwNkUgMDA2RDs7OztOO1NRVUFSRUQgTk07Ozs7CiszMzlCO1NRVUFSRSBNVSBNO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNkQ7Ozs7TjtTUVVBUkVEIE1VIE07Ozs7CiszMzlDO1NRVUFSRSBNTTtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDZEOzs7O047U1FVQVJFRCBNTTs7OzsKKzMzOUQ7U1FVQVJFIENNO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNkQ7Ozs7TjtTUVVBUkVEIENNOzs7OworMzM5RTtTUVVBUkUgS007U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2RDs7OztOO1NRVUFSRUQgS007Ozs7CiszMzlGO1NRVUFSRSBNTSBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNkQgMDBCMjs7OztOO1NRVUFSRUQgTU0gU1FVQVJFRDs7OzsKKzMzQTA7U1FVQVJFIENNIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNjMgMDA2RCAwMEIyOzs7O047U1FVQVJFRCBDTSBTUVVBUkVEOzs7OworMzNBMTtTUVVBUkUgTSBTUVVBUkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwQjI7Ozs7TjtTUVVBUkVEIE0gU1FVQVJFRDs7OzsKKzMzQTI7U1FVQVJFIEtNIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA2RCAwMEIyOzs7O047U1FVQVJFRCBLTSBTUVVBUkVEOzs7OworMzNBMztTUVVBUkUgTU0gQ1VCRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMDA2RCAwMEIzOzs7O047U1FVQVJFRCBNTSBDVUJFRDs7OzsKKzMzQTQ7U1FVQVJFIENNIENVQkVEO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNkQgMDBCMzs7OztOO1NRVUFSRUQgQ00gQ1VCRUQ7Ozs7CiszM0E1O1NRVUFSRSBNIENVQkVEO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwQjM7Ozs7TjtTUVVBUkVEIE0gQ1VCRUQ7Ozs7CiszM0E2O1NRVUFSRSBLTSBDVUJFRDtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDZEIDAwQjM7Ozs7TjtTUVVBUkVEIEtNIENVQkVEOzs7OworMzNBNztTUVVBUkUgTSBPVkVSIFM7U287MDtMOzxzcXVhcmU+IDAwNkQgMjIxNSAwMDczOzs7O047U1FVQVJFRCBNIE9WRVIgUzs7OzsKKzMzQTg7U1FVQVJFIE0gT1ZFUiBTIFNRVUFSRUQ7U287MDtMOzxzcXVhcmU+IDAwNkQgMjIxNSAwMDczIDAwQjI7Ozs7TjtTUVVBUkVEIE0gT1ZFUiBTIFNRVUFSRUQ7Ozs7CiszM0E5O1NRVUFSRSBQQTtTbzswO0w7PHNxdWFyZT4gMDA1MCAwMDYxOzs7O047U1FVQVJFRCBQQTs7OzsKKzMzQUE7U1FVQVJFIEtQQTtTbzswO0w7PHNxdWFyZT4gMDA2QiAwMDUwIDAwNjE7Ozs7TjtTUVVBUkVEIEtQQTs7OzsKKzMzQUI7U1FVQVJFIE1QQTtTbzswO0w7PHNxdWFyZT4gMDA0RCAwMDUwIDAwNjE7Ozs7TjtTUVVBUkVEIE1QQTs7OzsKKzMzQUM7U1FVQVJFIEdQQTtTbzswO0w7PHNxdWFyZT4gMDA0NyAwMDUwIDAwNjE7Ozs7TjtTUVVBUkVEIEdQQTs7OzsKKzMzQUQ7U1FVQVJFIFJBRDtTbzswO0w7PHNxdWFyZT4gMDA3MiAwMDYxIDAwNjQ7Ozs7TjtTUVVBUkVEIFJBRDs7OzsKKzMzQUU7U1FVQVJFIFJBRCBPVkVSIFM7U287MDtMOzxzcXVhcmU+IDAwNzIgMDA2MSAwMDY0IDIyMTUgMDA3Mzs7OztOO1NRVUFSRUQgUkFEIE9WRVIgUzs7OzsKKzMzQUY7U1FVQVJFIFJBRCBPVkVSIFMgU1FVQVJFRDtTbzswO0w7PHNxdWFyZT4gMDA3MiAwMDYxIDAwNjQgMjIxNSAwMDczIDAwQjI7Ozs7TjtTUVVBUkVEIFJBRCBPVkVSIFMgU1FVQVJFRDs7OzsKKzMzQjA7U1FVQVJFIFBTO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNzM7Ozs7TjtTUVVBUkVEIFBTOzs7OworMzNCMTtTUVVBUkUgTlM7U287MDtMOzxzcXVhcmU+IDAwNkUgMDA3Mzs7OztOO1NRVUFSRUQgTlM7Ozs7CiszM0IyO1NRVUFSRSBNVSBTO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNzM7Ozs7TjtTUVVBUkVEIE1VIFM7Ozs7CiszM0IzO1NRVUFSRSBNUztTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDczOzs7O047U1FVQVJFRCBNUzs7OzsKKzMzQjQ7U1FVQVJFIFBWO1NvOzA7TDs8c3F1YXJlPiAwMDcwIDAwNTY7Ozs7TjtTUVVBUkVEIFBWOzs7OworMzNCNTtTUVVBUkUgTlY7U287MDtMOzxzcXVhcmU+IDAwNkUgMDA1Njs7OztOO1NRVUFSRUQgTlY7Ozs7CiszM0I2O1NRVUFSRSBNVSBWO1NvOzA7TDs8c3F1YXJlPiAwM0JDIDAwNTY7Ozs7TjtTUVVBUkVEIE1VIFY7Ozs7CiszM0I3O1NRVUFSRSBNVjtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDU2Ozs7O047U1FVQVJFRCBNVjs7OzsKKzMzQjg7U1FVQVJFIEtWO1NvOzA7TDs8c3F1YXJlPiAwMDZCIDAwNTY7Ozs7TjtTUVVBUkVEIEtWOzs7OworMzNCOTtTUVVBUkUgTVYgTUVHQTtTbzswO0w7PHNxdWFyZT4gMDA0RCAwMDU2Ozs7O047U1FVQVJFRCBNViBNRUdBOzs7OworMzNCQTtTUVVBUkUgUFc7U287MDtMOzxzcXVhcmU+IDAwNzAgMDA1Nzs7OztOO1NRVUFSRUQgUFc7Ozs7CiszM0JCO1NRVUFSRSBOVztTbzswO0w7PHNxdWFyZT4gMDA2RSAwMDU3Ozs7O047U1FVQVJFRCBOVzs7OzsKKzMzQkM7U1FVQVJFIE1VIFc7U287MDtMOzxzcXVhcmU+IDAzQkMgMDA1Nzs7OztOO1NRVUFSRUQgTVUgVzs7OzsKKzMzQkQ7U1FVQVJFIE1XO1NvOzA7TDs8c3F1YXJlPiAwMDZEIDAwNTc7Ozs7TjtTUVVBUkVEIE1XOzs7OworMzNCRTtTUVVBUkUgS1c7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA1Nzs7OztOO1NRVUFSRUQgS1c7Ozs7CiszM0JGO1NRVUFSRSBNVyBNRUdBO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAwNTc7Ozs7TjtTUVVBUkVEIE1XIE1FR0E7Ozs7CiszM0MwO1NRVUFSRSBLIE9ITTtTbzswO0w7PHNxdWFyZT4gMDA2QiAwM0E5Ozs7O047U1FVQVJFRCBLIE9ITTs7OzsKKzMzQzE7U1FVQVJFIE0gT0hNO1NvOzA7TDs8c3F1YXJlPiAwMDREIDAzQTk7Ozs7TjtTUVVBUkVEIE0gT0hNOzs7OworMzNDMjtTUVVBUkUgQU07U287MDtMOzxzcXVhcmU+IDAwNjEgMDAyRSAwMDZEIDAwMkU7Ozs7TjtTUVVBUkVEIEFNOzs7OworMzNDMztTUVVBUkUgQlE7U287MDtMOzxzcXVhcmU+IDAwNDIgMDA3MTs7OztOO1NRVUFSRUQgQlE7Ozs7CiszM0M0O1NRVUFSRSBDQztTbzswO0w7PHNxdWFyZT4gMDA2MyAwMDYzOzs7O047U1FVQVJFRCBDQzs7OzsKKzMzQzU7U1FVQVJFIENEO1NvOzA7TDs8c3F1YXJlPiAwMDYzIDAwNjQ7Ozs7TjtTUVVBUkVEIENEOzs7OworMzNDNjtTUVVBUkUgQyBPVkVSIEtHO1NvOzA7TDs8c3F1YXJlPiAwMDQzIDIyMTUgMDA2QiAwMDY3Ozs7O047U1FVQVJFRCBDIE9WRVIgS0c7Ozs7CiszM0M3O1NRVUFSRSBDTztTbzswO0w7PHNxdWFyZT4gMDA0MyAwMDZGIDAwMkU7Ozs7TjtTUVVBUkVEIENPOzs7OworMzNDODtTUVVBUkUgREI7U287MDtMOzxzcXVhcmU+IDAwNjQgMDA0Mjs7OztOO1NRVUFSRUQgREI7Ozs7CiszM0M5O1NRVUFSRSBHWTtTbzswO0w7PHNxdWFyZT4gMDA0NyAwMDc5Ozs7O047U1FVQVJFRCBHWTs7OzsKKzMzQ0E7U1FVQVJFIEhBO1NvOzA7TDs8c3F1YXJlPiAwMDY4IDAwNjE7Ozs7TjtTUVVBUkVEIEhBOzs7OworMzNDQjtTUVVBUkUgSFA7U287MDtMOzxzcXVhcmU+IDAwNDggMDA1MDs7OztOO1NRVUFSRUQgSFA7Ozs7CiszM0NDO1NRVUFSRSBJTjtTbzswO0w7PHNxdWFyZT4gMDA2OSAwMDZFOzs7O047U1FVQVJFRCBJTjs7OzsKKzMzQ0Q7U1FVQVJFIEtLO1NvOzA7TDs8c3F1YXJlPiAwMDRCIDAwNEI7Ozs7TjtTUVVBUkVEIEtLOzs7OworMzNDRTtTUVVBUkUgS00gQ0FQSVRBTDtTbzswO0w7PHNxdWFyZT4gMDA0QiAwMDREOzs7O047U1FVQVJFRCBLTSBDQVBJVEFMOzs7OworMzNDRjtTUVVBUkUgS1Q7U287MDtMOzxzcXVhcmU+IDAwNkIgMDA3NDs7OztOO1NRVUFSRUQgS1Q7Ozs7CiszM0QwO1NRVUFSRSBMTTtTbzswO0w7PHNxdWFyZT4gMDA2QyAwMDZEOzs7O047U1FVQVJFRCBMTTs7OzsKKzMzRDE7U1FVQVJFIExOO1NvOzA7TDs8c3F1YXJlPiAwMDZDIDAwNkU7Ozs7TjtTUVVBUkVEIExOOzs7OworMzNEMjtTUVVBUkUgTE9HO1NvOzA7TDs8c3F1YXJlPiAwMDZDIDAwNkYgMDA2Nzs7OztOO1NRVUFSRUQgTE9HOzs7OworMzNEMztTUVVBUkUgTFg7U287MDtMOzxzcXVhcmU+IDAwNkMgMDA3ODs7OztOO1NRVUFSRUQgTFg7Ozs7CiszM0Q0O1NRVUFSRSBNQiBTTUFMTDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDYyOzs7O047U1FVQVJFRCBNQiBTTUFMTDs7OzsKKzMzRDU7U1FVQVJFIE1JTDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDY5IDAwNkM7Ozs7TjtTUVVBUkVEIE1JTDs7OzsKKzMzRDY7U1FVQVJFIE1PTDtTbzswO0w7PHNxdWFyZT4gMDA2RCAwMDZGIDAwNkM7Ozs7TjtTUVVBUkVEIE1PTDs7OzsKKzMzRDc7U1FVQVJFIFBIO1NvOzA7TDs8c3F1YXJlPiAwMDUwIDAwNDg7Ozs7TjtTUVVBUkVEIFBIOzs7OworMzNEODtTUVVBUkUgUE07U287MDtMOzxzcXVhcmU+IDAwNzAgMDAyRSAwMDZEIDAwMkU7Ozs7TjtTUVVBUkVEIFBNOzs7OworMzNEOTtTUVVBUkUgUFBNO1NvOzA7TDs8c3F1YXJlPiAwMDUwIDAwNTAgMDA0RDs7OztOO1NRVUFSRUQgUFBNOzs7OworMzNEQTtTUVVBUkUgUFI7U287MDtMOzxzcXVhcmU+IDAwNTAgMDA1Mjs7OztOO1NRVUFSRUQgUFI7Ozs7CiszM0RCO1NRVUFSRSBTUjtTbzswO0w7PHNxdWFyZT4gMDA3MyAwMDcyOzs7O047U1FVQVJFRCBTUjs7OzsKKzMzREM7U1FVQVJFIFNWO1NvOzA7TDs8c3F1YXJlPiAwMDUzIDAwNzY7Ozs7TjtTUVVBUkVEIFNWOzs7OworMzNERDtTUVVBUkUgV0I7U287MDtMOzxzcXVhcmU+IDAwNTcgMDA2Mjs7OztOO1NRVUFSRUQgV0I7Ozs7CiszM0RFO1NRVUFSRSBWIE9WRVIgTTtTbzswO09OOzxzcXVhcmU+IDAwNTYgMjIxNSAwMDZEOzs7O047Ozs7OworMzNERjtTUVVBUkUgQSBPVkVSIE07U287MDtPTjs8c3F1YXJlPiAwMDQxIDIyMTUgMDA2RDs7OztOOzs7OzsKKzMzRTA7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIE9ORTtTbzswO0w7PGNvbXBhdD4gMDAzMSA2NUU1Ozs7O047Ozs7OworMzNFMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdPO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDY1RTU7Ozs7Tjs7Ozs7CiszM0UyO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUSFJFRTtTbzswO0w7PGNvbXBhdD4gMDAzMyA2NUU1Ozs7O047Ozs7OworMzNFMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRk9VUjtTbzswO0w7PGNvbXBhdD4gMDAzNCA2NUU1Ozs7O047Ozs7OworMzNFNDtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRklWRTtTbzswO0w7PGNvbXBhdD4gMDAzNSA2NUU1Ozs7O047Ozs7OworMzNFNTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgU0lYO1NvOzA7TDs8Y29tcGF0PiAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0U2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTRVZFTjtTbzswO0w7PGNvbXBhdD4gMDAzNyA2NUU1Ozs7O047Ozs7OworMzNFNztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRUlHSFQ7U287MDtMOzxjb21wYXQ+IDAwMzggNjVFNTs7OztOOzs7OzsKKzMzRTg7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIE5JTkU7U287MDtMOzxjb21wYXQ+IDAwMzkgNjVFNTs7OztOOzs7OzsKKzMzRTk7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDMwIDY1RTU7Ozs7Tjs7Ozs7CiszM0VBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBFTEVWRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzMSA2NUU1Ozs7O047Ozs7OworMzNFQjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTFZFO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzIgNjVFNTs7OztOOzs7OzsKKzMzRUM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRISVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzMgNjVFNTs7OztOOzs7OzsKKzMzRUQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEZPVVJURUVOO1NvOzA7TDs8Y29tcGF0PiAwMDMxIDAwMzQgNjVFNTs7OztOOzs7OzsKKzMzRUU7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIEZJRlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNSA2NUU1Ozs7O047Ozs7OworMzNFRjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgU0lYVEVFTjtTbzswO0w7PGNvbXBhdD4gMDAzMSAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0YwO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBTRVZFTlRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzNyA2NUU1Ozs7O047Ozs7OworMzNGMTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgRUlHSFRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOCA2NUU1Ozs7O047Ozs7OworMzNGMjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgTklORVRFRU47U287MDtMOzxjb21wYXQ+IDAwMzEgMDAzOSA2NUU1Ozs7O047Ozs7OworMzNGMztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzAgNjVFNTs7OztOOzs7OzsKKzMzRjQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1PTkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMSA2NUU1Ozs7O047Ozs7OworMzNGNTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLVRXTztTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDMyIDY1RTU7Ozs7Tjs7Ozs7CiszM0Y2O0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktVEhSRUU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzMyA2NUU1Ozs7O047Ozs7OworMzNGNztJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUZPVVI7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNCA2NUU1Ozs7O047Ozs7OworMzNGODtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUZJVkU7U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNSA2NUU1Ozs7O047Ozs7OworMzNGOTtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLVNJWDtTbzswO0w7PGNvbXBhdD4gMDAzMiAwMDM2IDY1RTU7Ozs7Tjs7Ozs7CiszM0ZBO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUV0VOVFktU0VWRU47U287MDtMOzxjb21wYXQ+IDAwMzIgMDAzNyA2NUU1Ozs7O047Ozs7OworMzNGQjtJREVPR1JBUEhJQyBURUxFR1JBUEggU1lNQk9MIEZPUiBEQVkgVFdFTlRZLUVJR0hUO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzggNjVFNTs7OztOOzs7OzsKKzMzRkM7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRXRU5UWS1OSU5FO1NvOzA7TDs8Y29tcGF0PiAwMDMyIDAwMzkgNjVFNTs7OztOOzs7OzsKKzMzRkQ7SURFT0dSQVBISUMgVEVMRUdSQVBIIFNZTUJPTCBGT1IgREFZIFRISVJUWTtTbzswO0w7PGNvbXBhdD4gMDAzMyAwMDMwIDY1RTU7Ozs7Tjs7Ozs7CiszM0ZFO0lERU9HUkFQSElDIFRFTEVHUkFQSCBTWU1CT0wgRk9SIERBWSBUSElSVFktT05FO1NvOzA7TDs8Y29tcGF0PiAwMDMzIDAwMzEgNjVFNTs7OztOOzs7OzsKKzMzRkY7U1FVQVJFIEdBTDtTbzswO09OOzxzcXVhcmU+IDAwNjcgMDA2MSAwMDZDOzs7O047Ozs7OworMzQwMDs8Q0pLIElkZW9ncmFwaCBFeHRlbnNpb24gQSwgRmlyc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7Cis0REI1OzxDSksgSWRlb2dyYXBoIEV4dGVuc2lvbiBBLCBMYXN0PjtMbzswO0w7Ozs7O047Ozs7OworNERDMDtIRVhBR1JBTSBGT1IgVEhFIENSRUFUSVZFIEhFQVZFTjtTbzswO09OOzs7OztOOzs7OzsKKzREQzE7SEVYQUdSQU0gRk9SIFRIRSBSRUNFUFRJVkUgRUFSVEg7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REMyO0hFWEFHUkFNIEZPUiBESUZGSUNVTFRZIEFUIFRIRSBCRUdJTk5JTkc7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REMzO0hFWEFHUkFNIEZPUiBZT1VUSEZVTCBGT0xMWTtTbzswO09OOzs7OztOOzs7OzsKKzREQzQ7SEVYQUdSQU0gRk9SIFdBSVRJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REM1O0hFWEFHUkFNIEZPUiBDT05GTElDVDtTbzswO09OOzs7OztOOzs7OzsKKzREQzY7SEVYQUdSQU0gRk9SIFRIRSBBUk1ZO1NvOzA7T047Ozs7O047Ozs7OworNERDNztIRVhBR1JBTSBGT1IgSE9MRElORyBUT0dFVEhFUjtTbzswO09OOzs7OztOOzs7OzsKKzREQzg7SEVYQUdSQU0gRk9SIFNNQUxMIFRBTUlORztTbzswO09OOzs7OztOOzs7OzsKKzREQzk7SEVYQUdSQU0gRk9SIFRSRUFESU5HO1NvOzA7T047Ozs7O047Ozs7OworNERDQTtIRVhBR1JBTSBGT1IgUEVBQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0RENCO0hFWEFHUkFNIEZPUiBTVEFORFNUSUxMO1NvOzA7T047Ozs7O047Ozs7OworNERDQztIRVhBR1JBTSBGT1IgRkVMTE9XU0hJUDtTbzswO09OOzs7OztOOzs7OzsKKzREQ0Q7SEVYQUdSQU0gRk9SIEdSRUFUIFBPU1NFU1NJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0RENFO0hFWEFHUkFNIEZPUiBNT0RFU1RZO1NvOzA7T047Ozs7O047Ozs7OworNERDRjtIRVhBR1JBTSBGT1IgRU5USFVTSUFTTTtTbzswO09OOzs7OztOOzs7OzsKKzRERDA7SEVYQUdSQU0gRk9SIEZPTExPV0lORztTbzswO09OOzs7OztOOzs7OzsKKzRERDE7SEVYQUdSQU0gRk9SIFdPUksgT04gVEhFIERFQ0FZRUQ7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REQyO0hFWEFHUkFNIEZPUiBBUFBST0FDSDtTbzswO09OOzs7OztOOzs7OzsKKzRERDM7SEVYQUdSQU0gRk9SIENPTlRFTVBMQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REQ0O0hFWEFHUkFNIEZPUiBCSVRJTkcgVEhST1VHSDtTbzswO09OOzs7OztOOzs7OzsKKzRERDU7SEVYQUdSQU0gRk9SIEdSQUNFO1NvOzA7T047Ozs7O047Ozs7OworNERENjtIRVhBR1JBTSBGT1IgU1BMSVRUSU5HIEFQQVJUO1NvOzA7T047Ozs7O047Ozs7OworNERENztIRVhBR1JBTSBGT1IgUkVUVVJOO1NvOzA7T047Ozs7O047Ozs7OworNEREODtIRVhBR1JBTSBGT1IgSU5OT0NFTkNFO1NvOzA7T047Ozs7O047Ozs7OworNEREOTtIRVhBR1JBTSBGT1IgR1JFQVQgVEFNSU5HO1NvOzA7T047Ozs7O047Ozs7OworNEREQTtIRVhBR1JBTSBGT1IgTU9VVEggQ09STkVSUztTbzswO09OOzs7OztOOzs7OzsKKzREREI7SEVYQUdSQU0gRk9SIEdSRUFUIFBSRVBPTkRFUkFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0RERDO0hFWEFHUkFNIEZPUiBUSEUgQUJZU01BTCBXQVRFUjtTbzswO09OOzs7OztOOzs7OzsKKzREREQ7SEVYQUdSQU0gRk9SIFRIRSBDTElOR0lORyBGSVJFO1NvOzA7T047Ozs7O047Ozs7OworNERERTtIRVhBR1JBTSBGT1IgSU5GTFVFTkNFO1NvOzA7T047Ozs7O047Ozs7OworNERERjtIRVhBR1JBTSBGT1IgRFVSQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REUwO0hFWEFHUkFNIEZPUiBSRVRSRUFUO1NvOzA7T047Ozs7O047Ozs7OworNERFMTtIRVhBR1JBTSBGT1IgR1JFQVQgUE9XRVI7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REUyO0hFWEFHUkFNIEZPUiBQUk9HUkVTUztTbzswO09OOzs7OztOOzs7OzsKKzRERTM7SEVYQUdSQU0gRk9SIERBUktFTklORyBPRiBUSEUgTElHSFQ7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REU0O0hFWEFHUkFNIEZPUiBUSEUgRkFNSUxZO1NvOzA7T047Ozs7O047Ozs7OworNERFNTtIRVhBR1JBTSBGT1IgT1BQT1NJVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzRERTY7SEVYQUdSQU0gRk9SIE9CU1RSVUNUSU9OO1NvOzA7T047Ozs7O047Ozs7OworNERFNztIRVhBR1JBTSBGT1IgREVMSVZFUkFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REU4O0hFWEFHUkFNIEZPUiBERUNSRUFTRTtTbzswO09OOzs7OztOOzs7OzsKKzRERTk7SEVYQUdSQU0gRk9SIElOQ1JFQVNFO1NvOzA7T047Ozs7O047Ozs7OworNERFQTtIRVhBR1JBTSBGT1IgQlJFQUtUSFJPVUdIO1NvOzA7T047Ozs7O047Ozs7OworNERFQjtIRVhBR1JBTSBGT1IgQ09NSU5HIFRPIE1FRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REVDO0hFWEFHUkFNIEZPUiBHQVRIRVJJTkcgVE9HRVRIRVI7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REVEO0hFWEFHUkFNIEZPUiBQVVNISU5HIFVQV0FSRDtTbzswO09OOzs7OztOOzs7OzsKKzRERUU7SEVYQUdSQU0gRk9SIE9QUFJFU1NJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REVGO0hFWEFHUkFNIEZPUiBUSEUgV0VMTDtTbzswO09OOzs7OztOOzs7OzsKKzRERjA7SEVYQUdSQU0gRk9SIFJFVk9MVVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REYxO0hFWEFHUkFNIEZPUiBUSEUgQ0FVTERST047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REYyO0hFWEFHUkFNIEZPUiBUSEUgQVJPVVNJTkcgVEhVTkRFUjtTbzswO09OOzs7OztOOzs7OzsKKzRERjM7SEVYQUdSQU0gRk9SIFRIRSBLRUVQSU5HIFNUSUxMIE1PVU5UQUlOO1NvOzA7T047Ozs7O047Ozs7OworNERGNDtIRVhBR1JBTSBGT1IgREVWRUxPUE1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REY1O0hFWEFHUkFNIEZPUiBUSEUgTUFSUllJTkcgTUFJREVOO1NvOzA7T047Ozs7O047Ozs7OworNERGNjtIRVhBR1JBTSBGT1IgQUJVTkRBTkNFO1NvOzA7T047Ozs7O047Ozs7OworNERGNztIRVhBR1JBTSBGT1IgVEhFIFdBTkRFUkVSO1NvOzA7T047Ozs7O047Ozs7OworNERGODtIRVhBR1JBTSBGT1IgVEhFIEdFTlRMRSBXSU5EO1NvOzA7T047Ozs7O047Ozs7OworNERGOTtIRVhBR1JBTSBGT1IgVEhFIEpPWU9VUyBMQUtFO1NvOzA7T047Ozs7O047Ozs7OworNERGQTtIRVhBR1JBTSBGT1IgRElTUEVSU0lPTjtTbzswO09OOzs7OztOOzs7OzsKKzRERkI7SEVYQUdSQU0gRk9SIExJTUlUQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REZDO0hFWEFHUkFNIEZPUiBJTk5FUiBUUlVUSDtTbzswO09OOzs7OztOOzs7OzsKKzRERkQ7SEVYQUdSQU0gRk9SIFNNQUxMIFBSRVBPTkRFUkFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7Cis0REZFO0hFWEFHUkFNIEZPUiBBRlRFUiBDT01QTEVUSU9OO1NvOzA7T047Ozs7O047Ozs7OworNERGRjtIRVhBR1JBTSBGT1IgQkVGT1JFIENPTVBMRVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7Cis0RTAwOzxDSksgSWRlb2dyYXBoLCBGaXJzdD47TG87MDtMOzs7OztOOzs7OzsKKzlGQkI7PENKSyBJZGVvZ3JhcGgsIExhc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDAwO1lJIFNZTExBQkxFIElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDAxO1lJIFNZTExBQkxFIElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDAyO1lJIFNZTExBQkxFIEk7TG87MDtMOzs7OztOOzs7OzsKK0EwMDM7WUkgU1lMTEFCTEUgSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMDQ7WUkgU1lMTEFCTEUgSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDA1O1lJIFNZTExBQkxFIElFWDtMbzswO0w7Ozs7O047Ozs7OworQTAwNjtZSSBTWUxMQUJMRSBJRTtMbzswO0w7Ozs7O047Ozs7OworQTAwNztZSSBTWUxMQUJMRSBJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMDg7WUkgU1lMTEFCTEUgQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMDk7WUkgU1lMTEFCTEUgQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMEE7WUkgU1lMTEFCTEUgQTtMbzswO0w7Ozs7O047Ozs7OworQTAwQjtZSSBTWUxMQUJMRSBBUDtMbzswO0w7Ozs7O047Ozs7OworQTAwQztZSSBTWUxMQUJMRSBVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwMEQ7WUkgU1lMTEFCTEUgVU87TG87MDtMOzs7OztOOzs7OzsKK0EwMEU7WUkgU1lMTEFCTEUgVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDBGO1lJIFNZTExBQkxFIE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDEwO1lJIFNZTExBQkxFIE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDExO1lJIFNZTExBQkxFIE87TG87MDtMOzs7OztOOzs7OzsKK0EwMTI7WUkgU1lMTEFCTEUgT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwMTM7WUkgU1lMTEFCTEUgRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMTQ7WUkgU1lMTEFCTEUgRTtMbzswO0w7Ozs7O047Ozs7OworQTAxNTtZSSBTWUxMQUJMRSBXVTtMbTswO0w7Ozs7O047Ozs7OworQTAxNjtZSSBTWUxMQUJMRSBCSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwMTc7WUkgU1lMTEFCTEUgQklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDE4O1lJIFNZTExBQkxFIEJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDE5O1lJIFNZTExBQkxFIEJJUDtMbzswO0w7Ozs7O047Ozs7OworQTAxQTtZSSBTWUxMQUJMRSBCSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDFCO1lJIFNZTExBQkxFIEJJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMUM7WUkgU1lMTEFCTEUgQklFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDFEO1lJIFNZTExBQkxFIEJJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMUU7WUkgU1lMTEFCTEUgQkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDFGO1lJIFNZTExBQkxFIEJBWDtMbzswO0w7Ozs7O047Ozs7OworQTAyMDtZSSBTWUxMQUJMRSBCQTtMbzswO0w7Ozs7O047Ozs7OworQTAyMTtZSSBTWUxMQUJMRSBCQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwMjI7WUkgU1lMTEFCTEUgQlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTAyMztZSSBTWUxMQUJMRSBCVU87TG87MDtMOzs7OztOOzs7OzsKK0EwMjQ7WUkgU1lMTEFCTEUgQlVPUDtMbzswO0w7Ozs7O047Ozs7OworQTAyNTtZSSBTWUxMQUJMRSBCT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwMjY7WUkgU1lMTEFCTEUgQk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDI3O1lJIFNZTExBQkxFIEJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDI4O1lJIFNZTExBQkxFIEJPUDtMbzswO0w7Ozs7O047Ozs7OworQTAyOTtZSSBTWUxMQUJMRSBCRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMkE7WUkgU1lMTEFCTEUgQkU7TG87MDtMOzs7OztOOzs7OzsKK0EwMkI7WUkgU1lMTEFCTEUgQkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDJDO1lJIFNZTExBQkxFIEJVVDtMbzswO0w7Ozs7O047Ozs7OworQTAyRDtZSSBTWUxMQUJMRSBCVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMkU7WUkgU1lMTEFCTEUgQlU7TG87MDtMOzs7OztOOzs7OzsKK0EwMkY7WUkgU1lMTEFCTEUgQlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDMwO1lJIFNZTExBQkxFIEJVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwMzE7WUkgU1lMTEFCTEUgQlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDMyO1lJIFNZTExBQkxFIEJZVDtMbzswO0w7Ozs7O047Ozs7OworQTAzMztZSSBTWUxMQUJMRSBCWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwMzQ7WUkgU1lMTEFCTEUgQlk7TG87MDtMOzs7OztOOzs7OzsKK0EwMzU7WUkgU1lMTEFCTEUgQllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDM2O1lJIFNZTExBQkxFIEJZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwMzc7WUkgU1lMTEFCTEUgQllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDM4O1lJIFNZTExBQkxFIFBJVDtMbzswO0w7Ozs7O047Ozs7OworQTAzOTtZSSBTWUxMQUJMRSBQSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwM0E7WUkgU1lMTEFCTEUgUEk7TG87MDtMOzs7OztOOzs7OzsKK0EwM0I7WUkgU1lMTEFCTEUgUElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDNDO1lJIFNZTExBQkxFIFBJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwM0Q7WUkgU1lMTEFCTEUgUElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDNFO1lJIFNZTExBQkxFIFBJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwM0Y7WUkgU1lMTEFCTEUgUEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQwO1lJIFNZTExBQkxFIFBBWDtMbzswO0w7Ozs7O047Ozs7OworQTA0MTtZSSBTWUxMQUJMRSBQQTtMbzswO0w7Ozs7O047Ozs7OworQTA0MjtZSSBTWUxMQUJMRSBQQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNDM7WUkgU1lMTEFCTEUgUFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTA0NDtZSSBTWUxMQUJMRSBQVU87TG87MDtMOzs7OztOOzs7OzsKK0EwNDU7WUkgU1lMTEFCTEUgUFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTA0NjtZSSBTWUxMQUJMRSBQT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwNDc7WUkgU1lMTEFCTEUgUE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQ4O1lJIFNZTExBQkxFIFBPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDQ5O1lJIFNZTExBQkxFIFBPUDtMbzswO0w7Ozs7O047Ozs7OworQTA0QTtZSSBTWUxMQUJMRSBQVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNEI7WUkgU1lMTEFCTEUgUFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDRDO1lJIFNZTExBQkxFIFBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDREO1lJIFNZTExBQkxFIFBVUDtMbzswO0w7Ozs7O047Ozs7OworQTA0RTtZSSBTWUxMQUJMRSBQVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDRGO1lJIFNZTExBQkxFIFBVUjtMbzswO0w7Ozs7O047Ozs7OworQTA1MDtZSSBTWUxMQUJMRSBQWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNTE7WUkgU1lMTEFCTEUgUFlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDUyO1lJIFNZTExBQkxFIFBZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDUzO1lJIFNZTExBQkxFIFBZUDtMbzswO0w7Ozs7O047Ozs7OworQTA1NDtZSSBTWUxMQUJMRSBQWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDU1O1lJIFNZTExBQkxFIFBZUjtMbzswO0w7Ozs7O047Ozs7OworQTA1NjtZSSBTWUxMQUJMRSBCQklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDU3O1lJIFNZTExBQkxFIEJCSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNTg7WUkgU1lMTEFCTEUgQkJJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDU5O1lJIFNZTExBQkxFIEJCSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNUE7WUkgU1lMTEFCTEUgQkJJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwNUI7WUkgU1lMTEFCTEUgQkJJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNUM7WUkgU1lMTEFCTEUgQkJJRTtMbzswO0w7Ozs7O047Ozs7OworQTA1RDtZSSBTWUxMQUJMRSBCQklFUDtMbzswO0w7Ozs7O047Ozs7OworQTA1RTtZSSBTWUxMQUJMRSBCQkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDVGO1lJIFNZTExBQkxFIEJCQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNjA7WUkgU1lMTEFCTEUgQkJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDYxO1lJIFNZTExBQkxFIEJCQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNjI7WUkgU1lMTEFCTEUgQkJVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwNjM7WUkgU1lMTEFCTEUgQkJVTztMbzswO0w7Ozs7O047Ozs7OworQTA2NDtZSSBTWUxMQUJMRSBCQlVPUDtMbzswO0w7Ozs7O047Ozs7OworQTA2NTtZSSBTWUxMQUJMRSBCQk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDY2O1lJIFNZTExBQkxFIEJCT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwNjc7WUkgU1lMTEFCTEUgQkJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDY4O1lJIFNZTExBQkxFIEJCT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwNjk7WUkgU1lMTEFCTEUgQkJFWDtMbzswO0w7Ozs7O047Ozs7OworQTA2QTtZSSBTWUxMQUJMRSBCQkU7TG87MDtMOzs7OztOOzs7OzsKK0EwNkI7WUkgU1lMTEFCTEUgQkJFUDtMbzswO0w7Ozs7O047Ozs7OworQTA2QztZSSBTWUxMQUJMRSBCQlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDZEO1lJIFNZTExBQkxFIEJCVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNkU7WUkgU1lMTEFCTEUgQkJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDZGO1lJIFNZTExBQkxFIEJCVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNzA7WUkgU1lMTEFCTEUgQkJVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwNzE7WUkgU1lMTEFCTEUgQkJVUjtMbzswO0w7Ozs7O047Ozs7OworQTA3MjtZSSBTWUxMQUJMRSBCQllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDczO1lJIFNZTExBQkxFIEJCWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwNzQ7WUkgU1lMTEFCTEUgQkJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDc1O1lJIFNZTExBQkxFIEJCWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwNzY7WUkgU1lMTEFCTEUgTkJJVDtMbzswO0w7Ozs7O047Ozs7OworQTA3NztZSSBTWUxMQUJMRSBOQklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDc4O1lJIFNZTExBQkxFIE5CSTtMbzswO0w7Ozs7O047Ozs7OworQTA3OTtZSSBTWUxMQUJMRSBOQklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDdBO1lJIFNZTExBQkxFIE5CSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDdCO1lJIFNZTExBQkxFIE5CSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwN0M7WUkgU1lMTEFCTEUgTkJJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwN0Q7WUkgU1lMTEFCTEUgTkJBVDtMbzswO0w7Ozs7O047Ozs7OworQTA3RTtZSSBTWUxMQUJMRSBOQkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDdGO1lJIFNZTExBQkxFIE5CQTtMbzswO0w7Ozs7O047Ozs7OworQTA4MDtZSSBTWUxMQUJMRSBOQkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDgxO1lJIFNZTExBQkxFIE5CT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwODI7WUkgU1lMTEFCTEUgTkJPWDtMbzswO0w7Ozs7O047Ozs7OworQTA4MztZSSBTWUxMQUJMRSBOQk87TG87MDtMOzs7OztOOzs7OzsKK0EwODQ7WUkgU1lMTEFCTEUgTkJPUDtMbzswO0w7Ozs7O047Ozs7OworQTA4NTtZSSBTWUxMQUJMRSBOQlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDg2O1lJIFNZTExBQkxFIE5CVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwODc7WUkgU1lMTEFCTEUgTkJVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDg4O1lJIFNZTExBQkxFIE5CVVA7TG87MDtMOzs7OztOOzs7OzsKK0EwODk7WUkgU1lMTEFCTEUgTkJVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwOEE7WUkgU1lMTEFCTEUgTkJVUjtMbzswO0w7Ozs7O047Ozs7OworQTA4QjtZSSBTWUxMQUJMRSBOQllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDhDO1lJIFNZTExBQkxFIE5CWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwOEQ7WUkgU1lMTEFCTEUgTkJZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDhFO1lJIFNZTExBQkxFIE5CWVA7TG87MDtMOzs7OztOOzs7OzsKK0EwOEY7WUkgU1lMTEFCTEUgTkJZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwOTA7WUkgU1lMTEFCTEUgTkJZUjtMbzswO0w7Ozs7O047Ozs7OworQTA5MTtZSSBTWUxMQUJMRSBITUlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDkyO1lJIFNZTExBQkxFIEhNSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwOTM7WUkgU1lMTEFCTEUgSE1JO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDk0O1lJIFNZTExBQkxFIEhNSVA7TG87MDtMOzs7OztOOzs7OzsKK0EwOTU7WUkgU1lMTEFCTEUgSE1JRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwOTY7WUkgU1lMTEFCTEUgSE1JRTtMbzswO0w7Ozs7O047Ozs7OworQTA5NztZSSBTWUxMQUJMRSBITUlFUDtMbzswO0w7Ozs7O047Ozs7OworQTA5ODtZSSBTWUxMQUJMRSBITUFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDk5O1lJIFNZTExBQkxFIEhNQVg7TG87MDtMOzs7OztOOzs7OzsKK0EwOUE7WUkgU1lMTEFCTEUgSE1BO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMDlCO1lJIFNZTExBQkxFIEhNQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwOUM7WUkgU1lMTEFCTEUgSE1VT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwOUQ7WUkgU1lMTEFCTEUgSE1VTztMbzswO0w7Ozs7O047Ozs7OworQTA5RTtZSSBTWUxMQUJMRSBITVVPUDtMbzswO0w7Ozs7O047Ozs7OworQTA5RjtZSSBTWUxMQUJMRSBITU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEEwO1lJIFNZTExBQkxFIEhNT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwQTE7WUkgU1lMTEFCTEUgSE1PO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEEyO1lJIFNZTExBQkxFIEhNT1A7TG87MDtMOzs7OztOOzs7OzsKK0EwQTM7WUkgU1lMTEFCTEUgSE1VVDtMbzswO0w7Ozs7O047Ozs7OworQTBBNDtZSSBTWUxMQUJMRSBITVVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEE1O1lJIFNZTExBQkxFIEhNVTtMbzswO0w7Ozs7O047Ozs7OworQTBBNjtZSSBTWUxMQUJMRSBITVVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEE3O1lJIFNZTExBQkxFIEhNVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEE4O1lJIFNZTExBQkxFIEhNVVI7TG87MDtMOzs7OztOOzs7OzsKK0EwQTk7WUkgU1lMTEFCTEUgSE1ZWDtMbzswO0w7Ozs7O047Ozs7OworQTBBQTtZSSBTWUxMQUJMRSBITVk7TG87MDtMOzs7OztOOzs7OzsKK0EwQUI7WUkgU1lMTEFCTEUgSE1ZUDtMbzswO0w7Ozs7O047Ozs7OworQTBBQztZSSBTWUxMQUJMRSBITVlSWDtMbzswO0w7Ozs7O047Ozs7OworQTBBRDtZSSBTWUxMQUJMRSBITVlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEFFO1lJIFNZTExBQkxFIE1JVDtMbzswO0w7Ozs7O047Ozs7OworQTBBRjtZSSBTWUxMQUJMRSBNSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQjA7WUkgU1lMTEFCTEUgTUk7TG87MDtMOzs7OztOOzs7OzsKK0EwQjE7WUkgU1lMTEFCTEUgTUlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEIyO1lJIFNZTExBQkxFIE1JRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwQjM7WUkgU1lMTEFCTEUgTUlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEI0O1lJIFNZTExBQkxFIE1JRVA7TG87MDtMOzs7OztOOzs7OzsKK0EwQjU7WUkgU1lMTEFCTEUgTUFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEI2O1lJIFNZTExBQkxFIE1BWDtMbzswO0w7Ozs7O047Ozs7OworQTBCNztZSSBTWUxMQUJMRSBNQTtMbzswO0w7Ozs7O047Ozs7OworQTBCODtZSSBTWUxMQUJMRSBNQVA7TG87MDtMOzs7OztOOzs7OzsKK0EwQjk7WUkgU1lMTEFCTEUgTVVPVDtMbzswO0w7Ozs7O047Ozs7OworQTBCQTtZSSBTWUxMQUJMRSBNVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEJCO1lJIFNZTExBQkxFIE1VTztMbzswO0w7Ozs7O047Ozs7OworQTBCQztZSSBTWUxMQUJMRSBNVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEJEO1lJIFNZTExBQkxFIE1PVDtMbzswO0w7Ozs7O047Ozs7OworQTBCRTtZSSBTWUxMQUJMRSBNT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwQkY7WUkgU1lMTEFCTEUgTU87TG87MDtMOzs7OztOOzs7OzsKK0EwQzA7WUkgU1lMTEFCTEUgTU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEMxO1lJIFNZTExBQkxFIE1FWDtMbzswO0w7Ozs7O047Ozs7OworQTBDMjtZSSBTWUxMQUJMRSBNRTtMbzswO0w7Ozs7O047Ozs7OworQTBDMztZSSBTWUxMQUJMRSBNVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwQzQ7WUkgU1lMTEFCTEUgTVVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEM1O1lJIFNZTExBQkxFIE1VO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEM2O1lJIFNZTExBQkxFIE1VUDtMbzswO0w7Ozs7O047Ozs7OworQTBDNztZSSBTWUxMQUJMRSBNVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEM4O1lJIFNZTExBQkxFIE1VUjtMbzswO0w7Ozs7O047Ozs7OworQTBDOTtZSSBTWUxMQUJMRSBNWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwQ0E7WUkgU1lMTEFCTEUgTVlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMENCO1lJIFNZTExBQkxFIE1ZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMENDO1lJIFNZTExBQkxFIE1ZUDtMbzswO0w7Ozs7O047Ozs7OworQTBDRDtZSSBTWUxMQUJMRSBGSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwQ0U7WUkgU1lMTEFCTEUgRklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMENGO1lJIFNZTExBQkxFIEZJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQwO1lJIFNZTExBQkxFIEZJUDtMbzswO0w7Ozs7O047Ozs7OworQTBEMTtZSSBTWUxMQUJMRSBGQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwRDI7WUkgU1lMTEFCTEUgRkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQzO1lJIFNZTExBQkxFIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQ0O1lJIFNZTExBQkxFIEZBUDtMbzswO0w7Ozs7O047Ozs7OworQTBENTtZSSBTWUxMQUJMRSBGT1g7TG87MDtMOzs7OztOOzs7OzsKK0EwRDY7WUkgU1lMTEFCTEUgRk87TG87MDtMOzs7OztOOzs7OzsKK0EwRDc7WUkgU1lMTEFCTEUgRk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEQ4O1lJIFNZTExBQkxFIEZVVDtMbzswO0w7Ozs7O047Ozs7OworQTBEOTtZSSBTWUxMQUJMRSBGVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwREE7WUkgU1lMTEFCTEUgRlU7TG87MDtMOzs7OztOOzs7OzsKK0EwREI7WUkgU1lMTEFCTEUgRlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMERDO1lJIFNZTExBQkxFIEZVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwREQ7WUkgU1lMTEFCTEUgRlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMERFO1lJIFNZTExBQkxFIEZZVDtMbzswO0w7Ozs7O047Ozs7OworQTBERjtZSSBTWUxMQUJMRSBGWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRTA7WUkgU1lMTEFCTEUgRlk7TG87MDtMOzs7OztOOzs7OzsKK0EwRTE7WUkgU1lMTEFCTEUgRllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEUyO1lJIFNZTExBQkxFIFZJVDtMbzswO0w7Ozs7O047Ozs7OworQTBFMztZSSBTWUxMQUJMRSBWSVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRTQ7WUkgU1lMTEFCTEUgVkk7TG87MDtMOzs7OztOOzs7OzsKK0EwRTU7WUkgU1lMTEFCTEUgVklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEU2O1lJIFNZTExBQkxFIFZJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwRTc7WUkgU1lMTEFCTEUgVklFWDtMbzswO0w7Ozs7O047Ozs7OworQTBFODtZSSBTWUxMQUJMRSBWSUU7TG87MDtMOzs7OztOOzs7OzsKK0EwRTk7WUkgU1lMTEFCTEUgVklFUDtMbzswO0w7Ozs7O047Ozs7OworQTBFQTtZSSBTWUxMQUJMRSBWQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EwRUI7WUkgU1lMTEFCTEUgVkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEVDO1lJIFNZTExBQkxFIFZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEVEO1lJIFNZTExBQkxFIFZBUDtMbzswO0w7Ozs7O047Ozs7OworQTBFRTtZSSBTWUxMQUJMRSBWT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EwRUY7WUkgU1lMTEFCTEUgVk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEYwO1lJIFNZTExBQkxFIFZPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEYxO1lJIFNZTExBQkxFIFZPUDtMbzswO0w7Ozs7O047Ozs7OworQTBGMjtZSSBTWUxMQUJMRSBWRVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRjM7WUkgU1lMTEFCTEUgVkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEY0O1lJIFNZTExBQkxFIFZVVDtMbzswO0w7Ozs7O047Ozs7OworQTBGNTtZSSBTWUxMQUJMRSBWVVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRjY7WUkgU1lMTEFCTEUgVlU7TG87MDtMOzs7OztOOzs7OzsKK0EwRjc7WUkgU1lMTEFCTEUgVlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEY4O1lJIFNZTExBQkxFIFZVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwRjk7WUkgU1lMTEFCTEUgVlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEZBO1lJIFNZTExBQkxFIFZZVDtMbzswO0w7Ozs7O047Ozs7OworQTBGQjtZSSBTWUxMQUJMRSBWWVg7TG87MDtMOzs7OztOOzs7OzsKK0EwRkM7WUkgU1lMTEFCTEUgVlk7TG87MDtMOzs7OztOOzs7OzsKK0EwRkQ7WUkgU1lMTEFCTEUgVllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMEZFO1lJIFNZTExBQkxFIFZZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EwRkY7WUkgU1lMTEFCTEUgVllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTAwO1lJIFNZTExBQkxFIERJVDtMbzswO0w7Ozs7O047Ozs7OworQTEwMTtZSSBTWUxMQUJMRSBESVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMDI7WUkgU1lMTEFCTEUgREk7TG87MDtMOzs7OztOOzs7OzsKK0ExMDM7WUkgU1lMTEFCTEUgRElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTA0O1lJIFNZTExBQkxFIERJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMDU7WUkgU1lMTEFCTEUgRElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTA2O1lJIFNZTExBQkxFIERJRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMDc7WUkgU1lMTEFCTEUgREFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTA4O1lJIFNZTExBQkxFIERBWDtMbzswO0w7Ozs7O047Ozs7OworQTEwOTtZSSBTWUxMQUJMRSBEQTtMbzswO0w7Ozs7O047Ozs7OworQTEwQTtZSSBTWUxMQUJMRSBEQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExMEI7WUkgU1lMTEFCTEUgRFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTEwQztZSSBTWUxMQUJMRSBEVU87TG87MDtMOzs7OztOOzs7OzsKK0ExMEQ7WUkgU1lMTEFCTEUgRE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTBFO1lJIFNZTExBQkxFIERPWDtMbzswO0w7Ozs7O047Ozs7OworQTEwRjtZSSBTWUxMQUJMRSBETztMbzswO0w7Ozs7O047Ozs7OworQTExMDtZSSBTWUxMQUJMRSBET1A7TG87MDtMOzs7OztOOzs7OzsKK0ExMTE7WUkgU1lMTEFCTEUgREVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTEyO1lJIFNZTExBQkxFIERFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTEzO1lJIFNZTExBQkxFIERFUDtMbzswO0w7Ozs7O047Ozs7OworQTExNDtZSSBTWUxMQUJMRSBEVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExMTU7WUkgU1lMTEFCTEUgRFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTE2O1lJIFNZTExBQkxFIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTE3O1lJIFNZTExBQkxFIERVUDtMbzswO0w7Ozs7O047Ozs7OworQTExODtZSSBTWUxMQUJMRSBEVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTE5O1lJIFNZTExBQkxFIERVUjtMbzswO0w7Ozs7O047Ozs7OworQTExQTtZSSBTWUxMQUJMRSBUSVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExMUI7WUkgU1lMTEFCTEUgVElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTFDO1lJIFNZTExBQkxFIFRJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTFEO1lJIFNZTExBQkxFIFRJUDtMbzswO0w7Ozs7O047Ozs7OworQTExRTtZSSBTWUxMQUJMRSBUSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTFGO1lJIFNZTExBQkxFIFRJRTtMbzswO0w7Ozs7O047Ozs7OworQTEyMDtZSSBTWUxMQUJMRSBUSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTIxO1lJIFNZTExBQkxFIFRBVDtMbzswO0w7Ozs7O047Ozs7OworQTEyMjtZSSBTWUxMQUJMRSBUQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMjM7WUkgU1lMTEFCTEUgVEE7TG87MDtMOzs7OztOOzs7OzsKK0ExMjQ7WUkgU1lMTEFCTEUgVEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTI1O1lJIFNZTExBQkxFIFRVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExMjY7WUkgU1lMTEFCTEUgVFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTEyNztZSSBTWUxMQUJMRSBUVU87TG87MDtMOzs7OztOOzs7OzsKK0ExMjg7WUkgU1lMTEFCTEUgVFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTEyOTtZSSBTWUxMQUJMRSBUT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExMkE7WUkgU1lMTEFCTEUgVE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTJCO1lJIFNZTExBQkxFIFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTJDO1lJIFNZTExBQkxFIFRPUDtMbzswO0w7Ozs7O047Ozs7OworQTEyRDtZSSBTWUxMQUJMRSBURVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMkU7WUkgU1lMTEFCTEUgVEU7TG87MDtMOzs7OztOOzs7OzsKK0ExMkY7WUkgU1lMTEFCTEUgVEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTMwO1lJIFNZTExBQkxFIFRVVDtMbzswO0w7Ozs7O047Ozs7OworQTEzMTtZSSBTWUxMQUJMRSBUVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExMzI7WUkgU1lMTEFCTEUgVFU7TG87MDtMOzs7OztOOzs7OzsKK0ExMzM7WUkgU1lMTEFCTEUgVFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTM0O1lJIFNZTExBQkxFIFRVUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExMzU7WUkgU1lMTEFCTEUgVFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTM2O1lJIFNZTExBQkxFIERESVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExMzc7WUkgU1lMTEFCTEUgRERJWDtMbzswO0w7Ozs7O047Ozs7OworQTEzODtZSSBTWUxMQUJMRSBEREk7TG87MDtMOzs7OztOOzs7OzsKK0ExMzk7WUkgU1lMTEFCTEUgRERJUDtMbzswO0w7Ozs7O047Ozs7OworQTEzQTtZSSBTWUxMQUJMRSBERElFWDtMbzswO0w7Ozs7O047Ozs7OworQTEzQjtZSSBTWUxMQUJMRSBERElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTNDO1lJIFNZTExBQkxFIERESUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTNEO1lJIFNZTExBQkxFIEREQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExM0U7WUkgU1lMTEFCTEUgRERBWDtMbzswO0w7Ozs7O047Ozs7OworQTEzRjtZSSBTWUxMQUJMRSBEREE7TG87MDtMOzs7OztOOzs7OzsKK0ExNDA7WUkgU1lMTEFCTEUgRERBUDtMbzswO0w7Ozs7O047Ozs7OworQTE0MTtZSSBTWUxMQUJMRSBERFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTE0MjtZSSBTWUxMQUJMRSBERFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQzO1lJIFNZTExBQkxFIEREVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQ0O1lJIFNZTExBQkxFIERET1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExNDU7WUkgU1lMTEFCTEUgRERPWDtMbzswO0w7Ozs7O047Ozs7OworQTE0NjtZSSBTWUxMQUJMRSBERE87TG87MDtMOzs7OztOOzs7OzsKK0ExNDc7WUkgU1lMTEFCTEUgRERPUDtMbzswO0w7Ozs7O047Ozs7OworQTE0ODtZSSBTWUxMQUJMRSBEREVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTQ5O1lJIFNZTExBQkxFIERERTtMbzswO0w7Ozs7O047Ozs7OworQTE0QTtZSSBTWUxMQUJMRSBEREVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTRCO1lJIFNZTExBQkxFIEREVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExNEM7WUkgU1lMTEFCTEUgRERVWDtMbzswO0w7Ozs7O047Ozs7OworQTE0RDtZSSBTWUxMQUJMRSBERFU7TG87MDtMOzs7OztOOzs7OzsKK0ExNEU7WUkgU1lMTEFCTEUgRERVUDtMbzswO0w7Ozs7O047Ozs7OworQTE0RjtZSSBTWUxMQUJMRSBERFVSWDtMbzswO0w7Ozs7O047Ozs7OworQTE1MDtZSSBTWUxMQUJMRSBERFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTUxO1lJIFNZTExBQkxFIE5ESVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExNTI7WUkgU1lMTEFCTEUgTkRJWDtMbzswO0w7Ozs7O047Ozs7OworQTE1MztZSSBTWUxMQUJMRSBOREk7TG87MDtMOzs7OztOOzs7OzsKK0ExNTQ7WUkgU1lMTEFCTEUgTkRJUDtMbzswO0w7Ozs7O047Ozs7OworQTE1NTtZSSBTWUxMQUJMRSBORElFWDtMbzswO0w7Ozs7O047Ozs7OworQTE1NjtZSSBTWUxMQUJMRSBORElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTU3O1lJIFNZTExBQkxFIE5EQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExNTg7WUkgU1lMTEFCTEUgTkRBWDtMbzswO0w7Ozs7O047Ozs7OworQTE1OTtZSSBTWUxMQUJMRSBOREE7TG87MDtMOzs7OztOOzs7OzsKK0ExNUE7WUkgU1lMTEFCTEUgTkRBUDtMbzswO0w7Ozs7O047Ozs7OworQTE1QjtZSSBTWUxMQUJMRSBORE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTVDO1lJIFNZTExBQkxFIE5ET1g7TG87MDtMOzs7OztOOzs7OzsKK0ExNUQ7WUkgU1lMTEFCTEUgTkRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTVFO1lJIFNZTExBQkxFIE5ET1A7TG87MDtMOzs7OztOOzs7OzsKK0ExNUY7WUkgU1lMTEFCTEUgTkRFWDtMbzswO0w7Ozs7O047Ozs7OworQTE2MDtZSSBTWUxMQUJMRSBOREU7TG87MDtMOzs7OztOOzs7OzsKK0ExNjE7WUkgU1lMTEFCTEUgTkRFUDtMbzswO0w7Ozs7O047Ozs7OworQTE2MjtZSSBTWUxMQUJMRSBORFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTYzO1lJIFNZTExBQkxFIE5EVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNjQ7WUkgU1lMTEFCTEUgTkRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTY1O1lJIFNZTExBQkxFIE5EVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNjY7WUkgU1lMTEFCTEUgTkRVUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExNjc7WUkgU1lMTEFCTEUgTkRVUjtMbzswO0w7Ozs7O047Ozs7OworQTE2ODtZSSBTWUxMQUJMRSBITklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTY5O1lJIFNZTExBQkxFIEhOSVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNkE7WUkgU1lMTEFCTEUgSE5JO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTZCO1lJIFNZTExBQkxFIEhOSVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNkM7WUkgU1lMTEFCTEUgSE5JRVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExNkQ7WUkgU1lMTEFCTEUgSE5JRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNkU7WUkgU1lMTEFCTEUgSE5JRTtMbzswO0w7Ozs7O047Ozs7OworQTE2RjtZSSBTWUxMQUJMRSBITklFUDtMbzswO0w7Ozs7O047Ozs7OworQTE3MDtZSSBTWUxMQUJMRSBITkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTcxO1lJIFNZTExBQkxFIEhOQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExNzI7WUkgU1lMTEFCTEUgSE5BO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTczO1lJIFNZTExBQkxFIEhOQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExNzQ7WUkgU1lMTEFCTEUgSE5VT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExNzU7WUkgU1lMTEFCTEUgSE5VTztMbzswO0w7Ozs7O047Ozs7OworQTE3NjtZSSBTWUxMQUJMRSBITk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTc3O1lJIFNZTExBQkxFIEhOT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExNzg7WUkgU1lMTEFCTEUgSE5PUDtMbzswO0w7Ozs7O047Ozs7OworQTE3OTtZSSBTWUxMQUJMRSBITkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTdBO1lJIFNZTExBQkxFIEhORTtMbzswO0w7Ozs7O047Ozs7OworQTE3QjtZSSBTWUxMQUJMRSBITkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTdDO1lJIFNZTExBQkxFIEhOVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExN0Q7WUkgU1lMTEFCTEUgTklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTdFO1lJIFNZTExBQkxFIE5JWDtMbzswO0w7Ozs7O047Ozs7OworQTE3RjtZSSBTWUxMQUJMRSBOSTtMbzswO0w7Ozs7O047Ozs7OworQTE4MDtZSSBTWUxMQUJMRSBOSVA7TG87MDtMOzs7OztOOzs7OzsKK0ExODE7WUkgU1lMTEFCTEUgTklFWDtMbzswO0w7Ozs7O047Ozs7OworQTE4MjtZSSBTWUxMQUJMRSBOSUU7TG87MDtMOzs7OztOOzs7OzsKK0ExODM7WUkgU1lMTEFCTEUgTklFUDtMbzswO0w7Ozs7O047Ozs7OworQTE4NDtZSSBTWUxMQUJMRSBOQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExODU7WUkgU1lMTEFCTEUgTkE7TG87MDtMOzs7OztOOzs7OzsKK0ExODY7WUkgU1lMTEFCTEUgTkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTg3O1lJIFNZTExBQkxFIE5VT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExODg7WUkgU1lMTEFCTEUgTlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTg5O1lJIFNZTExBQkxFIE5VT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExOEE7WUkgU1lMTEFCTEUgTk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMThCO1lJIFNZTExBQkxFIE5PWDtMbzswO0w7Ozs7O047Ozs7OworQTE4QztZSSBTWUxMQUJMRSBOTztMbzswO0w7Ozs7O047Ozs7OworQTE4RDtZSSBTWUxMQUJMRSBOT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExOEU7WUkgU1lMTEFCTEUgTkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMThGO1lJIFNZTExBQkxFIE5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTkwO1lJIFNZTExBQkxFIE5FUDtMbzswO0w7Ozs7O047Ozs7OworQTE5MTtZSSBTWUxMQUJMRSBOVVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExOTI7WUkgU1lMTEFCTEUgTlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTkzO1lJIFNZTExBQkxFIE5VO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTk0O1lJIFNZTExBQkxFIE5VUDtMbzswO0w7Ozs7O047Ozs7OworQTE5NTtZSSBTWUxMQUJMRSBOVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTk2O1lJIFNZTExBQkxFIE5VUjtMbzswO0w7Ozs7O047Ozs7OworQTE5NztZSSBTWUxMQUJMRSBITElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTk4O1lJIFNZTExBQkxFIEhMSVg7TG87MDtMOzs7OztOOzs7OzsKK0ExOTk7WUkgU1lMTEFCTEUgSExJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTlBO1lJIFNZTExBQkxFIEhMSVA7TG87MDtMOzs7OztOOzs7OzsKK0ExOUI7WUkgU1lMTEFCTEUgSExJRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExOUM7WUkgU1lMTEFCTEUgSExJRTtMbzswO0w7Ozs7O047Ozs7OworQTE5RDtZSSBTWUxMQUJMRSBITElFUDtMbzswO0w7Ozs7O047Ozs7OworQTE5RTtZSSBTWUxMQUJMRSBITEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMTlGO1lJIFNZTExBQkxFIEhMQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQTA7WUkgU1lMTEFCTEUgSExBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUExO1lJIFNZTExBQkxFIEhMQVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQTI7WUkgU1lMTEFCTEUgSExVT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExQTM7WUkgU1lMTEFCTEUgSExVTztMbzswO0w7Ozs7O047Ozs7OworQTFBNDtZSSBTWUxMQUJMRSBITFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTFBNTtZSSBTWUxMQUJMRSBITE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUE2O1lJIFNZTExBQkxFIEhMTztMbzswO0w7Ozs7O047Ozs7OworQTFBNztZSSBTWUxMQUJMRSBITE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUE4O1lJIFNZTExBQkxFIEhMRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQTk7WUkgU1lMTEFCTEUgSExFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUFBO1lJIFNZTExBQkxFIEhMRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQUI7WUkgU1lMTEFCTEUgSExVVDtMbzswO0w7Ozs7O047Ozs7OworQTFBQztZSSBTWUxMQUJMRSBITFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUFEO1lJIFNZTExBQkxFIEhMVTtMbzswO0w7Ozs7O047Ozs7OworQTFBRTtZSSBTWUxMQUJMRSBITFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUFGO1lJIFNZTExBQkxFIEhMVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUIwO1lJIFNZTExBQkxFIEhMVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExQjE7WUkgU1lMTEFCTEUgSExZVDtMbzswO0w7Ozs7O047Ozs7OworQTFCMjtZSSBTWUxMQUJMRSBITFlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUIzO1lJIFNZTExBQkxFIEhMWTtMbzswO0w7Ozs7O047Ozs7OworQTFCNDtZSSBTWUxMQUJMRSBITFlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUI1O1lJIFNZTExBQkxFIEhMWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUI2O1lJIFNZTExBQkxFIEhMWVI7TG87MDtMOzs7OztOOzs7OzsKK0ExQjc7WUkgU1lMTEFCTEUgTElUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUI4O1lJIFNZTExBQkxFIExJWDtMbzswO0w7Ozs7O047Ozs7OworQTFCOTtZSSBTWUxMQUJMRSBMSTtMbzswO0w7Ozs7O047Ozs7OworQTFCQTtZSSBTWUxMQUJMRSBMSVA7TG87MDtMOzs7OztOOzs7OzsKK0ExQkI7WUkgU1lMTEFCTEUgTElFVDtMbzswO0w7Ozs7O047Ozs7OworQTFCQztZSSBTWUxMQUJMRSBMSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUJEO1lJIFNZTExBQkxFIExJRTtMbzswO0w7Ozs7O047Ozs7OworQTFCRTtZSSBTWUxMQUJMRSBMSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUJGO1lJIFNZTExBQkxFIExBVDtMbzswO0w7Ozs7O047Ozs7OworQTFDMDtZSSBTWUxMQUJMRSBMQVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQzE7WUkgU1lMTEFCTEUgTEE7TG87MDtMOzs7OztOOzs7OzsKK0ExQzI7WUkgU1lMTEFCTEUgTEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUMzO1lJIFNZTExBQkxFIExVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExQzQ7WUkgU1lMTEFCTEUgTFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTFDNTtZSSBTWUxMQUJMRSBMVU87TG87MDtMOzs7OztOOzs7OzsKK0ExQzY7WUkgU1lMTEFCTEUgTFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTFDNztZSSBTWUxMQUJMRSBMT1Q7TG87MDtMOzs7OztOOzs7OzsKK0ExQzg7WUkgU1lMTEFCTEUgTE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUM5O1lJIFNZTExBQkxFIExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUNBO1lJIFNZTExBQkxFIExPUDtMbzswO0w7Ozs7O047Ozs7OworQTFDQjtZSSBTWUxMQUJMRSBMRVg7TG87MDtMOzs7OztOOzs7OzsKK0ExQ0M7WUkgU1lMTEFCTEUgTEU7TG87MDtMOzs7OztOOzs7OzsKK0ExQ0Q7WUkgU1lMTEFCTEUgTEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUNFO1lJIFNZTExBQkxFIExVVDtMbzswO0w7Ozs7O047Ozs7OworQTFDRjtZSSBTWUxMQUJMRSBMVVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRDA7WUkgU1lMTEFCTEUgTFU7TG87MDtMOzs7OztOOzs7OzsKK0ExRDE7WUkgU1lMTEFCTEUgTFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQyO1lJIFNZTExBQkxFIExVUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExRDM7WUkgU1lMTEFCTEUgTFVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQ0O1lJIFNZTExBQkxFIExZVDtMbzswO0w7Ozs7O047Ozs7OworQTFENTtZSSBTWUxMQUJMRSBMWVg7TG87MDtMOzs7OztOOzs7OzsKK0ExRDY7WUkgU1lMTEFCTEUgTFk7TG87MDtMOzs7OztOOzs7OzsKK0ExRDc7WUkgU1lMTEFCTEUgTFlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUQ4O1lJIFNZTExBQkxFIExZUlg7TG87MDtMOzs7OztOOzs7OzsKK0ExRDk7WUkgU1lMTEFCTEUgTFlSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMURBO1lJIFNZTExBQkxFIEdJVDtMbzswO0w7Ozs7O047Ozs7OworQTFEQjtZSSBTWUxMQUJMRSBHSVg7TG87MDtMOzs7OztOOzs7OzsKK0ExREM7WUkgU1lMTEFCTEUgR0k7TG87MDtMOzs7OztOOzs7OzsKK0ExREQ7WUkgU1lMTEFCTEUgR0lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMURFO1lJIFNZTExBQkxFIEdJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExREY7WUkgU1lMTEFCTEUgR0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTFFMDtZSSBTWUxMQUJMRSBHSUU7TG87MDtMOzs7OztOOzs7OzsKK0ExRTE7WUkgU1lMTEFCTEUgR0lFUDtMbzswO0w7Ozs7O047Ozs7OworQTFFMjtZSSBTWUxMQUJMRSBHQVQ7TG87MDtMOzs7OztOOzs7OzsKK0ExRTM7WUkgU1lMTEFCTEUgR0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUU0O1lJIFNZTExBQkxFIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUU1O1lJIFNZTExBQkxFIEdBUDtMbzswO0w7Ozs7O047Ozs7OworQTFFNjtZSSBTWUxMQUJMRSBHVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUU3O1lJIFNZTExBQkxFIEdVT1g7TG87MDtMOzs7OztOOzs7OzsKK0ExRTg7WUkgU1lMTEFCTEUgR1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUU5O1lJIFNZTExBQkxFIEdVT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExRUE7WUkgU1lMTEFCTEUgR09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUVCO1lJIFNZTExBQkxFIEdPWDtMbzswO0w7Ozs7O047Ozs7OworQTFFQztZSSBTWUxMQUJMRSBHTztMbzswO0w7Ozs7O047Ozs7OworQTFFRDtZSSBTWUxMQUJMRSBHT1A7TG87MDtMOzs7OztOOzs7OzsKK0ExRUU7WUkgU1lMTEFCTEUgR0VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUVGO1lJIFNZTExBQkxFIEdFWDtMbzswO0w7Ozs7O047Ozs7OworQTFGMDtZSSBTWUxMQUJMRSBHRTtMbzswO0w7Ozs7O047Ozs7OworQTFGMTtZSSBTWUxMQUJMRSBHRVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRjI7WUkgU1lMTEFCTEUgR1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUYzO1lJIFNZTExBQkxFIEdVWDtMbzswO0w7Ozs7O047Ozs7OworQTFGNDtZSSBTWUxMQUJMRSBHVTtMbzswO0w7Ozs7O047Ozs7OworQTFGNTtZSSBTWUxMQUJMRSBHVVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRjY7WUkgU1lMTEFCTEUgR1VSWDtMbzswO0w7Ozs7O047Ozs7OworQTFGNztZSSBTWUxMQUJMRSBHVVI7TG87MDtMOzs7OztOOzs7OzsKK0ExRjg7WUkgU1lMTEFCTEUgS0lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMUY5O1lJIFNZTExBQkxFIEtJWDtMbzswO0w7Ozs7O047Ozs7OworQTFGQTtZSSBTWUxMQUJMRSBLSTtMbzswO0w7Ozs7O047Ozs7OworQTFGQjtZSSBTWUxMQUJMRSBLSVA7TG87MDtMOzs7OztOOzs7OzsKK0ExRkM7WUkgU1lMTEFCTEUgS0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTFGRDtZSSBTWUxMQUJMRSBLSUU7TG87MDtMOzs7OztOOzs7OzsKK0ExRkU7WUkgU1lMTEFCTEUgS0lFUDtMbzswO0w7Ozs7O047Ozs7OworQTFGRjtZSSBTWUxMQUJMRSBLQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMDA7WUkgU1lMTEFCTEUgS0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjAxO1lJIFNZTExBQkxFIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjAyO1lJIFNZTExBQkxFIEtBUDtMbzswO0w7Ozs7O047Ozs7OworQTIwMztZSSBTWUxMQUJMRSBLVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjA0O1lJIFNZTExBQkxFIEtVTztMbzswO0w7Ozs7O047Ozs7OworQTIwNTtZSSBTWUxMQUJMRSBLVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjA2O1lJIFNZTExBQkxFIEtPVDtMbzswO0w7Ozs7O047Ozs7OworQTIwNztZSSBTWUxMQUJMRSBLT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyMDg7WUkgU1lMTEFCTEUgS087TG87MDtMOzs7OztOOzs7OzsKK0EyMDk7WUkgU1lMTEFCTEUgS09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjBBO1lJIFNZTExBQkxFIEtFVDtMbzswO0w7Ozs7O047Ozs7OworQTIwQjtZSSBTWUxMQUJMRSBLRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMEM7WUkgU1lMTEFCTEUgS0U7TG87MDtMOzs7OztOOzs7OzsKK0EyMEQ7WUkgU1lMTEFCTEUgS0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjBFO1lJIFNZTExBQkxFIEtVVDtMbzswO0w7Ozs7O047Ozs7OworQTIwRjtZSSBTWUxMQUJMRSBLVVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMTA7WUkgU1lMTEFCTEUgS1U7TG87MDtMOzs7OztOOzs7OzsKK0EyMTE7WUkgU1lMTEFCTEUgS1VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjEyO1lJIFNZTExBQkxFIEtVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyMTM7WUkgU1lMTEFCTEUgS1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjE0O1lJIFNZTExBQkxFIEdHSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMTU7WUkgU1lMTEFCTEUgR0dJWDtMbzswO0w7Ozs7O047Ozs7OworQTIxNjtZSSBTWUxMQUJMRSBHR0k7TG87MDtMOzs7OztOOzs7OzsKK0EyMTc7WUkgU1lMTEFCTEUgR0dJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMTg7WUkgU1lMTEFCTEUgR0dJRTtMbzswO0w7Ozs7O047Ozs7OworQTIxOTtZSSBTWUxMQUJMRSBHR0lFUDtMbzswO0w7Ozs7O047Ozs7OworQTIxQTtZSSBTWUxMQUJMRSBHR0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjFCO1lJIFNZTExBQkxFIEdHQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyMUM7WUkgU1lMTEFCTEUgR0dBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjFEO1lJIFNZTExBQkxFIEdHQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyMUU7WUkgU1lMTEFCTEUgR0dVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyMUY7WUkgU1lMTEFCTEUgR0dVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyMjA7WUkgU1lMTEFCTEUgR0dVTztMbzswO0w7Ozs7O047Ozs7OworQTIyMTtZSSBTWUxMQUJMRSBHR1VPUDtMbzswO0w7Ozs7O047Ozs7OworQTIyMjtZSSBTWUxMQUJMRSBHR09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjIzO1lJIFNZTExBQkxFIEdHT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyMjQ7WUkgU1lMTEFCTEUgR0dPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjI1O1lJIFNZTExBQkxFIEdHT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyMjY7WUkgU1lMTEFCTEUgR0dFVDtMbzswO0w7Ozs7O047Ozs7OworQTIyNztZSSBTWUxMQUJMRSBHR0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjI4O1lJIFNZTExBQkxFIEdHRTtMbzswO0w7Ozs7O047Ozs7OworQTIyOTtZSSBTWUxMQUJMRSBHR0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjJBO1lJIFNZTExBQkxFIEdHVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyMkI7WUkgU1lMTEFCTEUgR0dVWDtMbzswO0w7Ozs7O047Ozs7OworQTIyQztZSSBTWUxMQUJMRSBHR1U7TG87MDtMOzs7OztOOzs7OzsKK0EyMkQ7WUkgU1lMTEFCTEUgR0dVUDtMbzswO0w7Ozs7O047Ozs7OworQTIyRTtZSSBTWUxMQUJMRSBHR1VSWDtMbzswO0w7Ozs7O047Ozs7OworQTIyRjtZSSBTWUxMQUJMRSBHR1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjMwO1lJIFNZTExBQkxFIE1HSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjMxO1lJIFNZTExBQkxFIE1HSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyMzI7WUkgU1lMTEFCTEUgTUdBVDtMbzswO0w7Ozs7O047Ozs7OworQTIzMztZSSBTWUxMQUJMRSBNR0FYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjM0O1lJIFNZTExBQkxFIE1HQTtMbzswO0w7Ozs7O047Ozs7OworQTIzNTtZSSBTWUxMQUJMRSBNR0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjM2O1lJIFNZTExBQkxFIE1HVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjM3O1lJIFNZTExBQkxFIE1HVU87TG87MDtMOzs7OztOOzs7OzsKK0EyMzg7WUkgU1lMTEFCTEUgTUdVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyMzk7WUkgU1lMTEFCTEUgTUdPVDtMbzswO0w7Ozs7O047Ozs7OworQTIzQTtZSSBTWUxMQUJMRSBNR09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjNCO1lJIFNZTExBQkxFIE1HTztMbzswO0w7Ozs7O047Ozs7OworQTIzQztZSSBTWUxMQUJMRSBNR09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjNEO1lJIFNZTExBQkxFIE1HRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyM0U7WUkgU1lMTEFCTEUgTUdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjNGO1lJIFNZTExBQkxFIE1HRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNDA7WUkgU1lMTEFCTEUgTUdVVDtMbzswO0w7Ozs7O047Ozs7OworQTI0MTtZSSBTWUxMQUJMRSBNR1VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQyO1lJIFNZTExBQkxFIE1HVTtMbzswO0w7Ozs7O047Ozs7OworQTI0MztZSSBTWUxMQUJMRSBNR1VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQ0O1lJIFNZTExBQkxFIE1HVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQ1O1lJIFNZTExBQkxFIE1HVVI7TG87MDtMOzs7OztOOzs7OzsKK0EyNDY7WUkgU1lMTEFCTEUgSFhJVDtMbzswO0w7Ozs7O047Ozs7OworQTI0NztZSSBTWUxMQUJMRSBIWElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjQ4O1lJIFNZTExBQkxFIEhYSTtMbzswO0w7Ozs7O047Ozs7OworQTI0OTtZSSBTWUxMQUJMRSBIWElQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjRBO1lJIFNZTExBQkxFIEhYSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjRCO1lJIFNZTExBQkxFIEhYSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjRDO1lJIFNZTExBQkxFIEhYSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyNEQ7WUkgU1lMTEFCTEUgSFhJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNEU7WUkgU1lMTEFCTEUgSFhBVDtMbzswO0w7Ozs7O047Ozs7OworQTI0RjtZSSBTWUxMQUJMRSBIWEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjUwO1lJIFNZTExBQkxFIEhYQTtMbzswO0w7Ozs7O047Ozs7OworQTI1MTtZSSBTWUxMQUJMRSBIWEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjUyO1lJIFNZTExBQkxFIEhYVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjUzO1lJIFNZTExBQkxFIEhYVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjU0O1lJIFNZTExBQkxFIEhYVU87TG87MDtMOzs7OztOOzs7OzsKK0EyNTU7WUkgU1lMTEFCTEUgSFhVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyNTY7WUkgU1lMTEFCTEUgSFhPVDtMbzswO0w7Ozs7O047Ozs7OworQTI1NztZSSBTWUxMQUJMRSBIWE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjU4O1lJIFNZTExBQkxFIEhYTztMbzswO0w7Ozs7O047Ozs7OworQTI1OTtZSSBTWUxMQUJMRSBIWE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjVBO1lJIFNZTExBQkxFIEhYRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNUI7WUkgU1lMTEFCTEUgSFhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjVDO1lJIFNZTExBQkxFIEhYRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNUQ7WUkgU1lMTEFCTEUgTkdJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNUU7WUkgU1lMTEFCTEUgTkdJRTtMbzswO0w7Ozs7O047Ozs7OworQTI1RjtZSSBTWUxMQUJMRSBOR0lFUDtMbzswO0w7Ozs7O047Ozs7OworQTI2MDtZSSBTWUxMQUJMRSBOR0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjYxO1lJIFNZTExBQkxFIE5HQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyNjI7WUkgU1lMTEFCTEUgTkdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjYzO1lJIFNZTExBQkxFIE5HQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNjQ7WUkgU1lMTEFCTEUgTkdVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EyNjU7WUkgU1lMTEFCTEUgTkdVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyNjY7WUkgU1lMTEFCTEUgTkdVTztMbzswO0w7Ozs7O047Ozs7OworQTI2NztZSSBTWUxMQUJMRSBOR09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjY4O1lJIFNZTExBQkxFIE5HT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyNjk7WUkgU1lMTEFCTEUgTkdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjZBO1lJIFNZTExBQkxFIE5HT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyNkI7WUkgU1lMTEFCTEUgTkdFWDtMbzswO0w7Ozs7O047Ozs7OworQTI2QztZSSBTWUxMQUJMRSBOR0U7TG87MDtMOzs7OztOOzs7OzsKK0EyNkQ7WUkgU1lMTEFCTEUgTkdFUDtMbzswO0w7Ozs7O047Ozs7OworQTI2RTtZSSBTWUxMQUJMRSBISVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyNkY7WUkgU1lMTEFCTEUgSElFWDtMbzswO0w7Ozs7O047Ozs7OworQTI3MDtZSSBTWUxMQUJMRSBISUU7TG87MDtMOzs7OztOOzs7OzsKK0EyNzE7WUkgU1lMTEFCTEUgSEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjcyO1lJIFNZTExBQkxFIEhBWDtMbzswO0w7Ozs7O047Ozs7OworQTI3MztZSSBTWUxMQUJMRSBIQTtMbzswO0w7Ozs7O047Ozs7OworQTI3NDtZSSBTWUxMQUJMRSBIQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyNzU7WUkgU1lMTEFCTEUgSFVPVDtMbzswO0w7Ozs7O047Ozs7OworQTI3NjtZSSBTWUxMQUJMRSBIVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjc3O1lJIFNZTExBQkxFIEhVTztMbzswO0w7Ozs7O047Ozs7OworQTI3ODtZSSBTWUxMQUJMRSBIVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjc5O1lJIFNZTExBQkxFIEhPVDtMbzswO0w7Ozs7O047Ozs7OworQTI3QTtZSSBTWUxMQUJMRSBIT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyN0I7WUkgU1lMTEFCTEUgSE87TG87MDtMOzs7OztOOzs7OzsKK0EyN0M7WUkgU1lMTEFCTEUgSE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjdEO1lJIFNZTExBQkxFIEhFWDtMbzswO0w7Ozs7O047Ozs7OworQTI3RTtZSSBTWUxMQUJMRSBIRTtMbzswO0w7Ozs7O047Ozs7OworQTI3RjtZSSBTWUxMQUJMRSBIRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyODA7WUkgU1lMTEFCTEUgV0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjgxO1lJIFNZTExBQkxFIFdBWDtMbzswO0w7Ozs7O047Ozs7OworQTI4MjtZSSBTWUxMQUJMRSBXQTtMbzswO0w7Ozs7O047Ozs7OworQTI4MztZSSBTWUxMQUJMRSBXQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyODQ7WUkgU1lMTEFCTEUgV1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTI4NTtZSSBTWUxMQUJMRSBXVU87TG87MDtMOzs7OztOOzs7OzsKK0EyODY7WUkgU1lMTEFCTEUgV1VPUDtMbzswO0w7Ozs7O047Ozs7OworQTI4NztZSSBTWUxMQUJMRSBXT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyODg7WUkgU1lMTEFCTEUgV087TG87MDtMOzs7OztOOzs7OzsKK0EyODk7WUkgU1lMTEFCTEUgV09QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjhBO1lJIFNZTExBQkxFIFdFWDtMbzswO0w7Ozs7O047Ozs7OworQTI4QjtZSSBTWUxMQUJMRSBXRTtMbzswO0w7Ozs7O047Ozs7OworQTI4QztZSSBTWUxMQUJMRSBXRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyOEQ7WUkgU1lMTEFCTEUgWklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjhFO1lJIFNZTExBQkxFIFpJWDtMbzswO0w7Ozs7O047Ozs7OworQTI4RjtZSSBTWUxMQUJMRSBaSTtMbzswO0w7Ozs7O047Ozs7OworQTI5MDtZSSBTWUxMQUJMRSBaSVA7TG87MDtMOzs7OztOOzs7OzsKK0EyOTE7WUkgU1lMTEFCTEUgWklFWDtMbzswO0w7Ozs7O047Ozs7OworQTI5MjtZSSBTWUxMQUJMRSBaSUU7TG87MDtMOzs7OztOOzs7OzsKK0EyOTM7WUkgU1lMTEFCTEUgWklFUDtMbzswO0w7Ozs7O047Ozs7OworQTI5NDtZSSBTWUxMQUJMRSBaQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyOTU7WUkgU1lMTEFCTEUgWkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjk2O1lJIFNZTExBQkxFIFpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjk3O1lJIFNZTExBQkxFIFpBUDtMbzswO0w7Ozs7O047Ozs7OworQTI5ODtZSSBTWUxMQUJMRSBaVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjk5O1lJIFNZTExBQkxFIFpVTztMbzswO0w7Ozs7O047Ozs7OworQTI5QTtZSSBTWUxMQUJMRSBaVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjlCO1lJIFNZTExBQkxFIFpPVDtMbzswO0w7Ozs7O047Ozs7OworQTI5QztZSSBTWUxMQUJMRSBaT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyOUQ7WUkgU1lMTEFCTEUgWk87TG87MDtMOzs7OztOOzs7OzsKK0EyOUU7WUkgU1lMTEFCTEUgWk9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMjlGO1lJIFNZTExBQkxFIFpFWDtMbzswO0w7Ozs7O047Ozs7OworQTJBMDtZSSBTWUxMQUJMRSBaRTtMbzswO0w7Ozs7O047Ozs7OworQTJBMTtZSSBTWUxMQUJMRSBaRVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQTI7WUkgU1lMTEFCTEUgWlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkEzO1lJIFNZTExBQkxFIFpVWDtMbzswO0w7Ozs7O047Ozs7OworQTJBNDtZSSBTWUxMQUJMRSBaVTtMbzswO0w7Ozs7O047Ozs7OworQTJBNTtZSSBTWUxMQUJMRSBaVVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQTY7WUkgU1lMTEFCTEUgWlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTJBNztZSSBTWUxMQUJMRSBaVVI7TG87MDtMOzs7OztOOzs7OzsKK0EyQTg7WUkgU1lMTEFCTEUgWllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkE5O1lJIFNZTExBQkxFIFpZWDtMbzswO0w7Ozs7O047Ozs7OworQTJBQTtZSSBTWUxMQUJMRSBaWTtMbzswO0w7Ozs7O047Ozs7OworQTJBQjtZSSBTWUxMQUJMRSBaWVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQUM7WUkgU1lMTEFCTEUgWllSWDtMbzswO0w7Ozs7O047Ozs7OworQTJBRDtZSSBTWUxMQUJMRSBaWVI7TG87MDtMOzs7OztOOzs7OzsKK0EyQUU7WUkgU1lMTEFCTEUgQ0lUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkFGO1lJIFNZTExBQkxFIENJWDtMbzswO0w7Ozs7O047Ozs7OworQTJCMDtZSSBTWUxMQUJMRSBDSTtMbzswO0w7Ozs7O047Ozs7OworQTJCMTtZSSBTWUxMQUJMRSBDSVA7TG87MDtMOzs7OztOOzs7OzsKK0EyQjI7WUkgU1lMTEFCTEUgQ0lFVDtMbzswO0w7Ozs7O047Ozs7OworQTJCMztZSSBTWUxMQUJMRSBDSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkI0O1lJIFNZTExBQkxFIENJRTtMbzswO0w7Ozs7O047Ozs7OworQTJCNTtZSSBTWUxMQUJMRSBDSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkI2O1lJIFNZTExBQkxFIENBVDtMbzswO0w7Ozs7O047Ozs7OworQTJCNztZSSBTWUxMQUJMRSBDQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyQjg7WUkgU1lMTEFCTEUgQ0E7TG87MDtMOzs7OztOOzs7OzsKK0EyQjk7WUkgU1lMTEFCTEUgQ0FQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkJBO1lJIFNZTExBQkxFIENVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyQkI7WUkgU1lMTEFCTEUgQ1VPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkJDO1lJIFNZTExBQkxFIENVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyQkQ7WUkgU1lMTEFCTEUgQ09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkJFO1lJIFNZTExBQkxFIENPWDtMbzswO0w7Ozs7O047Ozs7OworQTJCRjtZSSBTWUxMQUJMRSBDTztMbzswO0w7Ozs7O047Ozs7OworQTJDMDtZSSBTWUxMQUJMRSBDT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyQzE7WUkgU1lMTEFCTEUgQ0VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkMyO1lJIFNZTExBQkxFIENFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkMzO1lJIFNZTExBQkxFIENFUDtMbzswO0w7Ozs7O047Ozs7OworQTJDNDtZSSBTWUxMQUJMRSBDVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyQzU7WUkgU1lMTEFCTEUgQ1VYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkM2O1lJIFNZTExBQkxFIENVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkM3O1lJIFNZTExBQkxFIENVUDtMbzswO0w7Ozs7O047Ozs7OworQTJDODtZSSBTWUxMQUJMRSBDVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkM5O1lJIFNZTExBQkxFIENVUjtMbzswO0w7Ozs7O047Ozs7OworQTJDQTtZSSBTWUxMQUJMRSBDWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyQ0I7WUkgU1lMTEFCTEUgQ1lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkNDO1lJIFNZTExBQkxFIENZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkNEO1lJIFNZTExBQkxFIENZUDtMbzswO0w7Ozs7O047Ozs7OworQTJDRTtZSSBTWUxMQUJMRSBDWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkNGO1lJIFNZTExBQkxFIENZUjtMbzswO0w7Ozs7O047Ozs7OworQTJEMDtZSSBTWUxMQUJMRSBaWklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQxO1lJIFNZTExBQkxFIFpaSVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRDI7WUkgU1lMTEFCTEUgWlpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQzO1lJIFNZTExBQkxFIFpaSVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRDQ7WUkgU1lMTEFCTEUgWlpJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EyRDU7WUkgU1lMTEFCTEUgWlpJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRDY7WUkgU1lMTEFCTEUgWlpJRTtMbzswO0w7Ozs7O047Ozs7OworQTJENztZSSBTWUxMQUJMRSBaWklFUDtMbzswO0w7Ozs7O047Ozs7OworQTJEODtZSSBTWUxMQUJMRSBaWkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkQ5O1lJIFNZTExBQkxFIFpaQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyREE7WUkgU1lMTEFCTEUgWlpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkRCO1lJIFNZTExBQkxFIFpaQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyREM7WUkgU1lMTEFCTEUgWlpPWDtMbzswO0w7Ozs7O047Ozs7OworQTJERDtZSSBTWUxMQUJMRSBaWk87TG87MDtMOzs7OztOOzs7OzsKK0EyREU7WUkgU1lMTEFCTEUgWlpPUDtMbzswO0w7Ozs7O047Ozs7OworQTJERjtZSSBTWUxMQUJMRSBaWkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkUwO1lJIFNZTExBQkxFIFpaRTtMbzswO0w7Ozs7O047Ozs7OworQTJFMTtZSSBTWUxMQUJMRSBaWkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkUyO1lJIFNZTExBQkxFIFpaVVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRTM7WUkgU1lMTEFCTEUgWlpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkU0O1lJIFNZTExBQkxFIFpaVVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRTU7WUkgU1lMTEFCTEUgWlpVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyRTY7WUkgU1lMTEFCTEUgWlpVUjtMbzswO0w7Ozs7O047Ozs7OworQTJFNztZSSBTWUxMQUJMRSBaWllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkU4O1lJIFNZTExBQkxFIFpaWVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRTk7WUkgU1lMTEFCTEUgWlpZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkVBO1lJIFNZTExBQkxFIFpaWVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRUI7WUkgU1lMTEFCTEUgWlpZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EyRUM7WUkgU1lMTEFCTEUgWlpZUjtMbzswO0w7Ozs7O047Ozs7OworQTJFRDtZSSBTWUxMQUJMRSBOWklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkVFO1lJIFNZTExBQkxFIE5aSVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRUY7WUkgU1lMTEFCTEUgTlpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkYwO1lJIFNZTExBQkxFIE5aSVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRjE7WUkgU1lMTEFCTEUgTlpJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRjI7WUkgU1lMTEFCTEUgTlpJRTtMbzswO0w7Ozs7O047Ozs7OworQTJGMztZSSBTWUxMQUJMRSBOWklFUDtMbzswO0w7Ozs7O047Ozs7OworQTJGNDtZSSBTWUxMQUJMRSBOWkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkY1O1lJIFNZTExBQkxFIE5aQVg7TG87MDtMOzs7OztOOzs7OzsKK0EyRjY7WUkgU1lMTEFCTEUgTlpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkY3O1lJIFNZTExBQkxFIE5aQVA7TG87MDtMOzs7OztOOzs7OzsKK0EyRjg7WUkgU1lMTEFCTEUgTlpVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EyRjk7WUkgU1lMTEFCTEUgTlpVTztMbzswO0w7Ozs7O047Ozs7OworQTJGQTtZSSBTWUxMQUJMRSBOWk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMkZCO1lJIFNZTExBQkxFIE5aT1A7TG87MDtMOzs7OztOOzs7OzsKK0EyRkM7WUkgU1lMTEFCTEUgTlpFWDtMbzswO0w7Ozs7O047Ozs7OworQTJGRDtZSSBTWUxMQUJMRSBOWkU7TG87MDtMOzs7OztOOzs7OzsKK0EyRkU7WUkgU1lMTEFCTEUgTlpVWDtMbzswO0w7Ozs7O047Ozs7OworQTJGRjtZSSBTWUxMQUJMRSBOWlU7TG87MDtMOzs7OztOOzs7OzsKK0EzMDA7WUkgU1lMTEFCTEUgTlpVUDtMbzswO0w7Ozs7O047Ozs7OworQTMwMTtZSSBTWUxMQUJMRSBOWlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTMwMjtZSSBTWUxMQUJMRSBOWlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzAzO1lJIFNZTExBQkxFIE5aWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzMDQ7WUkgU1lMTEFCTEUgTlpZWDtMbzswO0w7Ozs7O047Ozs7OworQTMwNTtZSSBTWUxMQUJMRSBOWlk7TG87MDtMOzs7OztOOzs7OzsKK0EzMDY7WUkgU1lMTEFCTEUgTlpZUDtMbzswO0w7Ozs7O047Ozs7OworQTMwNztZSSBTWUxMQUJMRSBOWllSWDtMbzswO0w7Ozs7O047Ozs7OworQTMwODtZSSBTWUxMQUJMRSBOWllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzA5O1lJIFNZTExBQkxFIFNJVDtMbzswO0w7Ozs7O047Ozs7OworQTMwQTtZSSBTWUxMQUJMRSBTSVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMEI7WUkgU1lMTEFCTEUgU0k7TG87MDtMOzs7OztOOzs7OzsKK0EzMEM7WUkgU1lMTEFCTEUgU0lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzBEO1lJIFNZTExBQkxFIFNJRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMEU7WUkgU1lMTEFCTEUgU0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzBGO1lJIFNZTExBQkxFIFNJRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMTA7WUkgU1lMTEFCTEUgU0FUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzExO1lJIFNZTExBQkxFIFNBWDtMbzswO0w7Ozs7O047Ozs7OworQTMxMjtZSSBTWUxMQUJMRSBTQTtMbzswO0w7Ozs7O047Ozs7OworQTMxMztZSSBTWUxMQUJMRSBTQVA7TG87MDtMOzs7OztOOzs7OzsKK0EzMTQ7WUkgU1lMTEFCTEUgU1VPWDtMbzswO0w7Ozs7O047Ozs7OworQTMxNTtZSSBTWUxMQUJMRSBTVU87TG87MDtMOzs7OztOOzs7OzsKK0EzMTY7WUkgU1lMTEFCTEUgU1VPUDtMbzswO0w7Ozs7O047Ozs7OworQTMxNztZSSBTWUxMQUJMRSBTT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzMTg7WUkgU1lMTEFCTEUgU09YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzE5O1lJIFNZTExBQkxFIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzFBO1lJIFNZTExBQkxFIFNPUDtMbzswO0w7Ozs7O047Ozs7OworQTMxQjtZSSBTWUxMQUJMRSBTRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMUM7WUkgU1lMTEFCTEUgU0U7TG87MDtMOzs7OztOOzs7OzsKK0EzMUQ7WUkgU1lMTEFCTEUgU0VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzFFO1lJIFNZTExBQkxFIFNVVDtMbzswO0w7Ozs7O047Ozs7OworQTMxRjtZSSBTWUxMQUJMRSBTVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMjA7WUkgU1lMTEFCTEUgU1U7TG87MDtMOzs7OztOOzs7OzsKK0EzMjE7WUkgU1lMTEFCTEUgU1VQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzIyO1lJIFNZTExBQkxFIFNVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzMjM7WUkgU1lMTEFCTEUgU1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzI0O1lJIFNZTExBQkxFIFNZVDtMbzswO0w7Ozs7O047Ozs7OworQTMyNTtZSSBTWUxMQUJMRSBTWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzMjY7WUkgU1lMTEFCTEUgU1k7TG87MDtMOzs7OztOOzs7OzsKK0EzMjc7WUkgU1lMTEFCTEUgU1lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzI4O1lJIFNZTExBQkxFIFNZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzMjk7WUkgU1lMTEFCTEUgU1lSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzJBO1lJIFNZTExBQkxFIFNTSVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzMkI7WUkgU1lMTEFCTEUgU1NJWDtMbzswO0w7Ozs7O047Ozs7OworQTMyQztZSSBTWUxMQUJMRSBTU0k7TG87MDtMOzs7OztOOzs7OzsKK0EzMkQ7WUkgU1lMTEFCTEUgU1NJUDtMbzswO0w7Ozs7O047Ozs7OworQTMyRTtZSSBTWUxMQUJMRSBTU0lFWDtMbzswO0w7Ozs7O047Ozs7OworQTMyRjtZSSBTWUxMQUJMRSBTU0lFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzMwO1lJIFNZTExBQkxFIFNTSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzMxO1lJIFNZTExBQkxFIFNTQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzMzI7WUkgU1lMTEFCTEUgU1NBWDtMbzswO0w7Ozs7O047Ozs7OworQTMzMztZSSBTWUxMQUJMRSBTU0E7TG87MDtMOzs7OztOOzs7OzsKK0EzMzQ7WUkgU1lMTEFCTEUgU1NBUDtMbzswO0w7Ozs7O047Ozs7OworQTMzNTtZSSBTWUxMQUJMRSBTU09UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzM2O1lJIFNZTExBQkxFIFNTT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzMzc7WUkgU1lMTEFCTEUgU1NPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzM4O1lJIFNZTExBQkxFIFNTT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzMzk7WUkgU1lMTEFCTEUgU1NFWDtMbzswO0w7Ozs7O047Ozs7OworQTMzQTtZSSBTWUxMQUJMRSBTU0U7TG87MDtMOzs7OztOOzs7OzsKK0EzM0I7WUkgU1lMTEFCTEUgU1NFUDtMbzswO0w7Ozs7O047Ozs7OworQTMzQztZSSBTWUxMQUJMRSBTU1VUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzNEO1lJIFNZTExBQkxFIFNTVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzM0U7WUkgU1lMTEFCTEUgU1NVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzNGO1lJIFNZTExBQkxFIFNTVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNDA7WUkgU1lMTEFCTEUgU1NZVDtMbzswO0w7Ozs7O047Ozs7OworQTM0MTtZSSBTWUxMQUJMRSBTU1lYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQyO1lJIFNZTExBQkxFIFNTWTtMbzswO0w7Ozs7O047Ozs7OworQTM0MztZSSBTWUxMQUJMRSBTU1lQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQ0O1lJIFNZTExBQkxFIFNTWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQ1O1lJIFNZTExBQkxFIFNTWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzNDY7WUkgU1lMTEFCTEUgWkhBVDtMbzswO0w7Ozs7O047Ozs7OworQTM0NztZSSBTWUxMQUJMRSBaSEFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzQ4O1lJIFNZTExBQkxFIFpIQTtMbzswO0w7Ozs7O047Ozs7OworQTM0OTtZSSBTWUxMQUJMRSBaSEFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzRBO1lJIFNZTExBQkxFIFpIVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzRCO1lJIFNZTExBQkxFIFpIVU87TG87MDtMOzs7OztOOzs7OzsKK0EzNEM7WUkgU1lMTEFCTEUgWkhVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzNEQ7WUkgU1lMTEFCTEUgWkhPVDtMbzswO0w7Ozs7O047Ozs7OworQTM0RTtZSSBTWUxMQUJMRSBaSE9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzRGO1lJIFNZTExBQkxFIFpITztMbzswO0w7Ozs7O047Ozs7OworQTM1MDtZSSBTWUxMQUJMRSBaSE9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzUxO1lJIFNZTExBQkxFIFpIRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzNTI7WUkgU1lMTEFCTEUgWkhFWDtMbzswO0w7Ozs7O047Ozs7OworQTM1MztZSSBTWUxMQUJMRSBaSEU7TG87MDtMOzs7OztOOzs7OzsKK0EzNTQ7WUkgU1lMTEFCTEUgWkhFUDtMbzswO0w7Ozs7O047Ozs7OworQTM1NTtZSSBTWUxMQUJMRSBaSFVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzU2O1lJIFNZTExBQkxFIFpIVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNTc7WUkgU1lMTEFCTEUgWkhVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzU4O1lJIFNZTExBQkxFIFpIVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNTk7WUkgU1lMTEFCTEUgWkhVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzNUE7WUkgU1lMTEFCTEUgWkhVUjtMbzswO0w7Ozs7O047Ozs7OworQTM1QjtZSSBTWUxMQUJMRSBaSFlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzVDO1lJIFNZTExBQkxFIFpIWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNUQ7WUkgU1lMTEFCTEUgWkhZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzVFO1lJIFNZTExBQkxFIFpIWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNUY7WUkgU1lMTEFCTEUgWkhZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzNjA7WUkgU1lMTEFCTEUgWkhZUjtMbzswO0w7Ozs7O047Ozs7OworQTM2MTtZSSBTWUxMQUJMRSBDSEFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzYyO1lJIFNZTExBQkxFIENIQVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNjM7WUkgU1lMTEFCTEUgQ0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzY0O1lJIFNZTExBQkxFIENIQVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNjU7WUkgU1lMTEFCTEUgQ0hVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzNjY7WUkgU1lMTEFCTEUgQ0hVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzNjc7WUkgU1lMTEFCTEUgQ0hVTztMbzswO0w7Ozs7O047Ozs7OworQTM2ODtZSSBTWUxMQUJMRSBDSFVPUDtMbzswO0w7Ozs7O047Ozs7OworQTM2OTtZSSBTWUxMQUJMRSBDSE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzZBO1lJIFNZTExBQkxFIENIT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzNkI7WUkgU1lMTEFCTEUgQ0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzZDO1lJIFNZTExBQkxFIENIT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzNkQ7WUkgU1lMTEFCTEUgQ0hFVDtMbzswO0w7Ozs7O047Ozs7OworQTM2RTtZSSBTWUxMQUJMRSBDSEVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzZGO1lJIFNZTExBQkxFIENIRTtMbzswO0w7Ozs7O047Ozs7OworQTM3MDtZSSBTWUxMQUJMRSBDSEVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzcxO1lJIFNZTExBQkxFIENIVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNzI7WUkgU1lMTEFCTEUgQ0hVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzczO1lJIFNZTExBQkxFIENIVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzNzQ7WUkgU1lMTEFCTEUgQ0hVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzNzU7WUkgU1lMTEFCTEUgQ0hVUjtMbzswO0w7Ozs7O047Ozs7OworQTM3NjtZSSBTWUxMQUJMRSBDSFlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzc3O1lJIFNZTExBQkxFIENIWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzNzg7WUkgU1lMTEFCTEUgQ0hZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzc5O1lJIFNZTExBQkxFIENIWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzN0E7WUkgU1lMTEFCTEUgQ0hZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzN0I7WUkgU1lMTEFCTEUgQ0hZUjtMbzswO0w7Ozs7O047Ozs7OworQTM3QztZSSBTWUxMQUJMRSBSUkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzdEO1lJIFNZTExBQkxFIFJSQTtMbzswO0w7Ozs7O047Ozs7OworQTM3RTtZSSBTWUxMQUJMRSBSUlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTM3RjtZSSBTWUxMQUJMRSBSUlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzgwO1lJIFNZTExBQkxFIFJST1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzODE7WUkgU1lMTEFCTEUgUlJPWDtMbzswO0w7Ozs7O047Ozs7OworQTM4MjtZSSBTWUxMQUJMRSBSUk87TG87MDtMOzs7OztOOzs7OzsKK0EzODM7WUkgU1lMTEFCTEUgUlJPUDtMbzswO0w7Ozs7O047Ozs7OworQTM4NDtZSSBTWUxMQUJMRSBSUkVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzg1O1lJIFNZTExBQkxFIFJSRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzODY7WUkgU1lMTEFCTEUgUlJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzg3O1lJIFNZTExBQkxFIFJSRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzODg7WUkgU1lMTEFCTEUgUlJVVDtMbzswO0w7Ozs7O047Ozs7OworQTM4OTtZSSBTWUxMQUJMRSBSUlVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzhBO1lJIFNZTExBQkxFIFJSVTtMbzswO0w7Ozs7O047Ozs7OworQTM4QjtZSSBTWUxMQUJMRSBSUlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzhDO1lJIFNZTExBQkxFIFJSVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzhEO1lJIFNZTExBQkxFIFJSVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzOEU7WUkgU1lMTEFCTEUgUlJZVDtMbzswO0w7Ozs7O047Ozs7OworQTM4RjtZSSBTWUxMQUJMRSBSUllYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzkwO1lJIFNZTExBQkxFIFJSWTtMbzswO0w7Ozs7O047Ozs7OworQTM5MTtZSSBTWUxMQUJMRSBSUllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzkyO1lJIFNZTExBQkxFIFJSWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzkzO1lJIFNZTExBQkxFIFJSWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzOTQ7WUkgU1lMTEFCTEUgTlJBVDtMbzswO0w7Ozs7O047Ozs7OworQTM5NTtZSSBTWUxMQUJMRSBOUkFYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzk2O1lJIFNZTExBQkxFIE5SQTtMbzswO0w7Ozs7O047Ozs7OworQTM5NztZSSBTWUxMQUJMRSBOUkFQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzk4O1lJIFNZTExBQkxFIE5ST1g7TG87MDtMOzs7OztOOzs7OzsKK0EzOTk7WUkgU1lMTEFCTEUgTlJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzlBO1lJIFNZTExBQkxFIE5ST1A7TG87MDtMOzs7OztOOzs7OzsKK0EzOUI7WUkgU1lMTEFCTEUgTlJFVDtMbzswO0w7Ozs7O047Ozs7OworQTM5QztZSSBTWUxMQUJMRSBOUkVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzlEO1lJIFNZTExBQkxFIE5SRTtMbzswO0w7Ozs7O047Ozs7OworQTM5RTtZSSBTWUxMQUJMRSBOUkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBMzlGO1lJIFNZTExBQkxFIE5SVVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzQTA7WUkgU1lMTEFCTEUgTlJVWDtMbzswO0w7Ozs7O047Ozs7OworQTNBMTtZSSBTWUxMQUJMRSBOUlU7TG87MDtMOzs7OztOOzs7OzsKK0EzQTI7WUkgU1lMTEFCTEUgTlJVUDtMbzswO0w7Ozs7O047Ozs7OworQTNBMztZSSBTWUxMQUJMRSBOUlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTNBNDtZSSBTWUxMQUJMRSBOUlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0E1O1lJIFNZTExBQkxFIE5SWVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzQTY7WUkgU1lMTEFCTEUgTlJZWDtMbzswO0w7Ozs7O047Ozs7OworQTNBNztZSSBTWUxMQUJMRSBOUlk7TG87MDtMOzs7OztOOzs7OzsKK0EzQTg7WUkgU1lMTEFCTEUgTlJZUDtMbzswO0w7Ozs7O047Ozs7OworQTNBOTtZSSBTWUxMQUJMRSBOUllSWDtMbzswO0w7Ozs7O047Ozs7OworQTNBQTtZSSBTWUxMQUJMRSBOUllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0FCO1lJIFNZTExBQkxFIFNIQVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzQUM7WUkgU1lMTEFCTEUgU0hBWDtMbzswO0w7Ozs7O047Ozs7OworQTNBRDtZSSBTWUxMQUJMRSBTSEE7TG87MDtMOzs7OztOOzs7OzsKK0EzQUU7WUkgU1lMTEFCTEUgU0hBUDtMbzswO0w7Ozs7O047Ozs7OworQTNBRjtZSSBTWUxMQUJMRSBTSFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTNCMDtZSSBTWUxMQUJMRSBTSFVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0IxO1lJIFNZTExBQkxFIFNIVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0IyO1lJIFNZTExBQkxFIFNIT1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzQjM7WUkgU1lMTEFCTEUgU0hPWDtMbzswO0w7Ozs7O047Ozs7OworQTNCNDtZSSBTWUxMQUJMRSBTSE87TG87MDtMOzs7OztOOzs7OzsKK0EzQjU7WUkgU1lMTEFCTEUgU0hPUDtMbzswO0w7Ozs7O047Ozs7OworQTNCNjtZSSBTWUxMQUJMRSBTSEVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0I3O1lJIFNZTExBQkxFIFNIRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzQjg7WUkgU1lMTEFCTEUgU0hFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0I5O1lJIFNZTExBQkxFIFNIRVA7TG87MDtMOzs7OztOOzs7OzsKK0EzQkE7WUkgU1lMTEFCTEUgU0hVVDtMbzswO0w7Ozs7O047Ozs7OworQTNCQjtZSSBTWUxMQUJMRSBTSFVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0JDO1lJIFNZTExBQkxFIFNIVTtMbzswO0w7Ozs7O047Ozs7OworQTNCRDtZSSBTWUxMQUJMRSBTSFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0JFO1lJIFNZTExBQkxFIFNIVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0JGO1lJIFNZTExBQkxFIFNIVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzQzA7WUkgU1lMTEFCTEUgU0hZVDtMbzswO0w7Ozs7O047Ozs7OworQTNDMTtZSSBTWUxMQUJMRSBTSFlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0MyO1lJIFNZTExBQkxFIFNIWTtMbzswO0w7Ozs7O047Ozs7OworQTNDMztZSSBTWUxMQUJMRSBTSFlQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0M0O1lJIFNZTExBQkxFIFNIWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0M1O1lJIFNZTExBQkxFIFNIWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzQzY7WUkgU1lMTEFCTEUgUkFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0M3O1lJIFNZTExBQkxFIFJBWDtMbzswO0w7Ozs7O047Ozs7OworQTNDODtZSSBTWUxMQUJMRSBSQTtMbzswO0w7Ozs7O047Ozs7OworQTNDOTtZSSBTWUxMQUJMRSBSQVA7TG87MDtMOzs7OztOOzs7OzsKK0EzQ0E7WUkgU1lMTEFCTEUgUlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTNDQjtZSSBTWUxMQUJMRSBSVU87TG87MDtMOzs7OztOOzs7OzsKK0EzQ0M7WUkgU1lMTEFCTEUgUlVPUDtMbzswO0w7Ozs7O047Ozs7OworQTNDRDtZSSBTWUxMQUJMRSBST1Q7TG87MDtMOzs7OztOOzs7OzsKK0EzQ0U7WUkgU1lMTEFCTEUgUk9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0NGO1lJIFNZTExBQkxFIFJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0QwO1lJIFNZTExBQkxFIFJPUDtMbzswO0w7Ozs7O047Ozs7OworQTNEMTtZSSBTWUxMQUJMRSBSRVg7TG87MDtMOzs7OztOOzs7OzsKK0EzRDI7WUkgU1lMTEFCTEUgUkU7TG87MDtMOzs7OztOOzs7OzsKK0EzRDM7WUkgU1lMTEFCTEUgUkVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Q0O1lJIFNZTExBQkxFIFJVVDtMbzswO0w7Ozs7O047Ozs7OworQTNENTtZSSBTWUxMQUJMRSBSVVg7TG87MDtMOzs7OztOOzs7OzsKK0EzRDY7WUkgU1lMTEFCTEUgUlU7TG87MDtMOzs7OztOOzs7OzsKK0EzRDc7WUkgU1lMTEFCTEUgUlVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Q4O1lJIFNZTExBQkxFIFJVUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzRDk7WUkgU1lMTEFCTEUgUlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0RBO1lJIFNZTExBQkxFIFJZVDtMbzswO0w7Ozs7O047Ozs7OworQTNEQjtZSSBTWUxMQUJMRSBSWVg7TG87MDtMOzs7OztOOzs7OzsKK0EzREM7WUkgU1lMTEFCTEUgUlk7TG87MDtMOzs7OztOOzs7OzsKK0EzREQ7WUkgU1lMTEFCTEUgUllQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0RFO1lJIFNZTExBQkxFIFJZUlg7TG87MDtMOzs7OztOOzs7OzsKK0EzREY7WUkgU1lMTEFCTEUgUllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0UwO1lJIFNZTExBQkxFIEpJVDtMbzswO0w7Ozs7O047Ozs7OworQTNFMTtZSSBTWUxMQUJMRSBKSVg7TG87MDtMOzs7OztOOzs7OzsKK0EzRTI7WUkgU1lMTEFCTEUgSkk7TG87MDtMOzs7OztOOzs7OzsKK0EzRTM7WUkgU1lMTEFCTEUgSklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0U0O1lJIFNZTExBQkxFIEpJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0EzRTU7WUkgU1lMTEFCTEUgSklFWDtMbzswO0w7Ozs7O047Ozs7OworQTNFNjtZSSBTWUxMQUJMRSBKSUU7TG87MDtMOzs7OztOOzs7OzsKK0EzRTc7WUkgU1lMTEFCTEUgSklFUDtMbzswO0w7Ozs7O047Ozs7OworQTNFODtZSSBTWUxMQUJMRSBKVU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0U5O1lJIFNZTExBQkxFIEpVT1g7TG87MDtMOzs7OztOOzs7OzsKK0EzRUE7WUkgU1lMTEFCTEUgSlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0VCO1lJIFNZTExBQkxFIEpVT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzRUM7WUkgU1lMTEFCTEUgSk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0VEO1lJIFNZTExBQkxFIEpPWDtMbzswO0w7Ozs7O047Ozs7OworQTNFRTtZSSBTWUxMQUJMRSBKTztMbzswO0w7Ozs7O047Ozs7OworQTNFRjtZSSBTWUxMQUJMRSBKT1A7TG87MDtMOzs7OztOOzs7OzsKK0EzRjA7WUkgU1lMTEFCTEUgSlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0YxO1lJIFNZTExBQkxFIEpVWDtMbzswO0w7Ozs7O047Ozs7OworQTNGMjtZSSBTWUxMQUJMRSBKVTtMbzswO0w7Ozs7O047Ozs7OworQTNGMztZSSBTWUxMQUJMRSBKVVA7TG87MDtMOzs7OztOOzs7OzsKK0EzRjQ7WUkgU1lMTEFCTEUgSlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTNGNTtZSSBTWUxMQUJMRSBKVVI7TG87MDtMOzs7OztOOzs7OzsKK0EzRjY7WUkgU1lMTEFCTEUgSllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0Y3O1lJIFNZTExBQkxFIEpZWDtMbzswO0w7Ozs7O047Ozs7OworQTNGODtZSSBTWUxMQUJMRSBKWTtMbzswO0w7Ozs7O047Ozs7OworQTNGOTtZSSBTWUxMQUJMRSBKWVA7TG87MDtMOzs7OztOOzs7OzsKK0EzRkE7WUkgU1lMTEFCTEUgSllSWDtMbzswO0w7Ozs7O047Ozs7OworQTNGQjtZSSBTWUxMQUJMRSBKWVI7TG87MDtMOzs7OztOOzs7OzsKK0EzRkM7WUkgU1lMTEFCTEUgUUlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBM0ZEO1lJIFNZTExBQkxFIFFJWDtMbzswO0w7Ozs7O047Ozs7OworQTNGRTtZSSBTWUxMQUJMRSBRSTtMbzswO0w7Ozs7O047Ozs7OworQTNGRjtZSSBTWUxMQUJMRSBRSVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MDA7WUkgU1lMTEFCTEUgUUlFVDtMbzswO0w7Ozs7O047Ozs7OworQTQwMTtZSSBTWUxMQUJMRSBRSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDAyO1lJIFNZTExBQkxFIFFJRTtMbzswO0w7Ozs7O047Ozs7OworQTQwMztZSSBTWUxMQUJMRSBRSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDA0O1lJIFNZTExBQkxFIFFVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0MDU7WUkgU1lMTEFCTEUgUVVPWDtMbzswO0w7Ozs7O047Ozs7OworQTQwNjtZSSBTWUxMQUJMRSBRVU87TG87MDtMOzs7OztOOzs7OzsKK0E0MDc7WUkgU1lMTEFCTEUgUVVPUDtMbzswO0w7Ozs7O047Ozs7OworQTQwODtZSSBTWUxMQUJMRSBRT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0MDk7WUkgU1lMTEFCTEUgUU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDBBO1lJIFNZTExBQkxFIFFPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDBCO1lJIFNZTExBQkxFIFFPUDtMbzswO0w7Ozs7O047Ozs7OworQTQwQztZSSBTWUxMQUJMRSBRVVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MEQ7WUkgU1lMTEFCTEUgUVVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDBFO1lJIFNZTExBQkxFIFFVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDBGO1lJIFNZTExBQkxFIFFVUDtMbzswO0w7Ozs7O047Ozs7OworQTQxMDtZSSBTWUxMQUJMRSBRVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDExO1lJIFNZTExBQkxFIFFVUjtMbzswO0w7Ozs7O047Ozs7OworQTQxMjtZSSBTWUxMQUJMRSBRWVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MTM7WUkgU1lMTEFCTEUgUVlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDE0O1lJIFNZTExBQkxFIFFZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDE1O1lJIFNZTExBQkxFIFFZUDtMbzswO0w7Ozs7O047Ozs7OworQTQxNjtZSSBTWUxMQUJMRSBRWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDE3O1lJIFNZTExBQkxFIFFZUjtMbzswO0w7Ozs7O047Ozs7OworQTQxODtZSSBTWUxMQUJMRSBKSklUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDE5O1lJIFNZTExBQkxFIEpKSVg7TG87MDtMOzs7OztOOzs7OzsKK0E0MUE7WUkgU1lMTEFCTEUgSkpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDFCO1lJIFNZTExBQkxFIEpKSVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MUM7WUkgU1lMTEFCTEUgSkpJRVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0MUQ7WUkgU1lMTEFCTEUgSkpJRVg7TG87MDtMOzs7OztOOzs7OzsKK0E0MUU7WUkgU1lMTEFCTEUgSkpJRTtMbzswO0w7Ozs7O047Ozs7OworQTQxRjtZSSBTWUxMQUJMRSBKSklFUDtMbzswO0w7Ozs7O047Ozs7OworQTQyMDtZSSBTWUxMQUJMRSBKSlVPWDtMbzswO0w7Ozs7O047Ozs7OworQTQyMTtZSSBTWUxMQUJMRSBKSlVPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDIyO1lJIFNZTExBQkxFIEpKVU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDIzO1lJIFNZTExBQkxFIEpKT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0MjQ7WUkgU1lMTEFCTEUgSkpPWDtMbzswO0w7Ozs7O047Ozs7OworQTQyNTtZSSBTWUxMQUJMRSBKSk87TG87MDtMOzs7OztOOzs7OzsKK0E0MjY7WUkgU1lMTEFCTEUgSkpPUDtMbzswO0w7Ozs7O047Ozs7OworQTQyNztZSSBTWUxMQUJMRSBKSlVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDI4O1lJIFNZTExBQkxFIEpKVVg7TG87MDtMOzs7OztOOzs7OzsKK0E0Mjk7WUkgU1lMTEFCTEUgSkpVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDJBO1lJIFNZTExBQkxFIEpKVVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MkI7WUkgU1lMTEFCTEUgSkpVUlg7TG87MDtMOzs7OztOOzs7OzsKK0E0MkM7WUkgU1lMTEFCTEUgSkpVUjtMbzswO0w7Ozs7O047Ozs7OworQTQyRDtZSSBTWUxMQUJMRSBKSllUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDJFO1lJIFNZTExBQkxFIEpKWVg7TG87MDtMOzs7OztOOzs7OzsKK0E0MkY7WUkgU1lMTEFCTEUgSkpZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDMwO1lJIFNZTExBQkxFIEpKWVA7TG87MDtMOzs7OztOOzs7OzsKK0E0MzE7WUkgU1lMTEFCTEUgTkpJVDtMbzswO0w7Ozs7O047Ozs7OworQTQzMjtZSSBTWUxMQUJMRSBOSklYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDMzO1lJIFNZTExBQkxFIE5KSTtMbzswO0w7Ozs7O047Ozs7OworQTQzNDtZSSBTWUxMQUJMRSBOSklQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDM1O1lJIFNZTExBQkxFIE5KSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDM2O1lJIFNZTExBQkxFIE5KSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDM3O1lJIFNZTExBQkxFIE5KSUU7TG87MDtMOzs7OztOOzs7OzsKK0E0Mzg7WUkgU1lMTEFCTEUgTkpJRVA7TG87MDtMOzs7OztOOzs7OzsKK0E0Mzk7WUkgU1lMTEFCTEUgTkpVT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0M0E7WUkgU1lMTEFCTEUgTkpVTztMbzswO0w7Ozs7O047Ozs7OworQTQzQjtZSSBTWUxMQUJMRSBOSk9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDNDO1lJIFNZTExBQkxFIE5KT1g7TG87MDtMOzs7OztOOzs7OzsKK0E0M0Q7WUkgU1lMTEFCTEUgTkpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDNFO1lJIFNZTExBQkxFIE5KT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0M0Y7WUkgU1lMTEFCTEUgTkpVWDtMbzswO0w7Ozs7O047Ozs7OworQTQ0MDtZSSBTWUxMQUJMRSBOSlU7TG87MDtMOzs7OztOOzs7OzsKK0E0NDE7WUkgU1lMTEFCTEUgTkpVUDtMbzswO0w7Ozs7O047Ozs7OworQTQ0MjtZSSBTWUxMQUJMRSBOSlVSWDtMbzswO0w7Ozs7O047Ozs7OworQTQ0MztZSSBTWUxMQUJMRSBOSlVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDQ0O1lJIFNZTExBQkxFIE5KWVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NDU7WUkgU1lMTEFCTEUgTkpZWDtMbzswO0w7Ozs7O047Ozs7OworQTQ0NjtZSSBTWUxMQUJMRSBOSlk7TG87MDtMOzs7OztOOzs7OzsKK0E0NDc7WUkgU1lMTEFCTEUgTkpZUDtMbzswO0w7Ozs7O047Ozs7OworQTQ0ODtZSSBTWUxMQUJMRSBOSllSWDtMbzswO0w7Ozs7O047Ozs7OworQTQ0OTtZSSBTWUxMQUJMRSBOSllSO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDRBO1lJIFNZTExBQkxFIE5ZSVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NEI7WUkgU1lMTEFCTEUgTllJWDtMbzswO0w7Ozs7O047Ozs7OworQTQ0QztZSSBTWUxMQUJMRSBOWUk7TG87MDtMOzs7OztOOzs7OzsKK0E0NEQ7WUkgU1lMTEFCTEUgTllJUDtMbzswO0w7Ozs7O047Ozs7OworQTQ0RTtZSSBTWUxMQUJMRSBOWUlFVDtMbzswO0w7Ozs7O047Ozs7OworQTQ0RjtZSSBTWUxMQUJMRSBOWUlFWDtMbzswO0w7Ozs7O047Ozs7OworQTQ1MDtZSSBTWUxMQUJMRSBOWUlFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDUxO1lJIFNZTExBQkxFIE5ZSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDUyO1lJIFNZTExBQkxFIE5ZVU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDUzO1lJIFNZTExBQkxFIE5ZVU87TG87MDtMOzs7OztOOzs7OzsKK0E0NTQ7WUkgU1lMTEFCTEUgTllVT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0NTU7WUkgU1lMTEFCTEUgTllPVDtMbzswO0w7Ozs7O047Ozs7OworQTQ1NjtZSSBTWUxMQUJMRSBOWU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDU3O1lJIFNZTExBQkxFIE5ZTztMbzswO0w7Ozs7O047Ozs7OworQTQ1ODtZSSBTWUxMQUJMRSBOWU9QO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDU5O1lJIFNZTExBQkxFIE5ZVVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NUE7WUkgU1lMTEFCTEUgTllVWDtMbzswO0w7Ozs7O047Ozs7OworQTQ1QjtZSSBTWUxMQUJMRSBOWVU7TG87MDtMOzs7OztOOzs7OzsKK0E0NUM7WUkgU1lMTEFCTEUgTllVUDtMbzswO0w7Ozs7O047Ozs7OworQTQ1RDtZSSBTWUxMQUJMRSBYSVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0NUU7WUkgU1lMTEFCTEUgWElYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDVGO1lJIFNZTExBQkxFIFhJO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDYwO1lJIFNZTExBQkxFIFhJUDtMbzswO0w7Ozs7O047Ozs7OworQTQ2MTtZSSBTWUxMQUJMRSBYSUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDYyO1lJIFNZTExBQkxFIFhJRVg7TG87MDtMOzs7OztOOzs7OzsKK0E0NjM7WUkgU1lMTEFCTEUgWElFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDY0O1lJIFNZTExBQkxFIFhJRVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NjU7WUkgU1lMTEFCTEUgWFVPWDtMbzswO0w7Ozs7O047Ozs7OworQTQ2NjtZSSBTWUxMQUJMRSBYVU87TG87MDtMOzs7OztOOzs7OzsKK0E0Njc7WUkgU1lMTEFCTEUgWE9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDY4O1lJIFNZTExBQkxFIFhPWDtMbzswO0w7Ozs7O047Ozs7OworQTQ2OTtZSSBTWUxMQUJMRSBYTztMbzswO0w7Ozs7O047Ozs7OworQTQ2QTtZSSBTWUxMQUJMRSBYT1A7TG87MDtMOzs7OztOOzs7OzsKK0E0NkI7WUkgU1lMTEFCTEUgWFlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDZDO1lJIFNZTExBQkxFIFhZWDtMbzswO0w7Ozs7O047Ozs7OworQTQ2RDtZSSBTWUxMQUJMRSBYWTtMbzswO0w7Ozs7O047Ozs7OworQTQ2RTtZSSBTWUxMQUJMRSBYWVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NkY7WUkgU1lMTEFCTEUgWFlSWDtMbzswO0w7Ozs7O047Ozs7OworQTQ3MDtZSSBTWUxMQUJMRSBYWVI7TG87MDtMOzs7OztOOzs7OzsKK0E0NzE7WUkgU1lMTEFCTEUgWUlUO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDcyO1lJIFNZTExBQkxFIFlJWDtMbzswO0w7Ozs7O047Ozs7OworQTQ3MztZSSBTWUxMQUJMRSBZSTtMbzswO0w7Ozs7O047Ozs7OworQTQ3NDtZSSBTWUxMQUJMRSBZSVA7TG87MDtMOzs7OztOOzs7OzsKK0E0NzU7WUkgU1lMTEFCTEUgWUlFVDtMbzswO0w7Ozs7O047Ozs7OworQTQ3NjtZSSBTWUxMQUJMRSBZSUVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDc3O1lJIFNZTExBQkxFIFlJRTtMbzswO0w7Ozs7O047Ozs7OworQTQ3ODtZSSBTWUxMQUJMRSBZSUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDc5O1lJIFNZTExBQkxFIFlVT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0N0E7WUkgU1lMTEFCTEUgWVVPWDtMbzswO0w7Ozs7O047Ozs7OworQTQ3QjtZSSBTWUxMQUJMRSBZVU87TG87MDtMOzs7OztOOzs7OzsKK0E0N0M7WUkgU1lMTEFCTEUgWVVPUDtMbzswO0w7Ozs7O047Ozs7OworQTQ3RDtZSSBTWUxMQUJMRSBZT1Q7TG87MDtMOzs7OztOOzs7OzsKK0E0N0U7WUkgU1lMTEFCTEUgWU9YO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDdGO1lJIFNZTExBQkxFIFlPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDgwO1lJIFNZTExBQkxFIFlPUDtMbzswO0w7Ozs7O047Ozs7OworQTQ4MTtZSSBTWUxMQUJMRSBZVVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0ODI7WUkgU1lMTEFCTEUgWVVYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDgzO1lJIFNZTExBQkxFIFlVO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDg0O1lJIFNZTExBQkxFIFlVUDtMbzswO0w7Ozs7O047Ozs7OworQTQ4NTtZSSBTWUxMQUJMRSBZVVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDg2O1lJIFNZTExBQkxFIFlVUjtMbzswO0w7Ozs7O047Ozs7OworQTQ4NztZSSBTWUxMQUJMRSBZWVQ7TG87MDtMOzs7OztOOzs7OzsKK0E0ODg7WUkgU1lMTEFCTEUgWVlYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDg5O1lJIFNZTExBQkxFIFlZO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDhBO1lJIFNZTExBQkxFIFlZUDtMbzswO0w7Ozs7O047Ozs7OworQTQ4QjtZSSBTWUxMQUJMRSBZWVJYO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBNDhDO1lJIFNZTExBQkxFIFlZUjtMbzswO0w7Ozs7O047Ozs7OworQTQ5MDtZSSBSQURJQ0FMIFFPVDtTbzswO09OOzs7OztOOzs7OzsKK0E0OTE7WUkgUkFESUNBTCBMSTtTbzswO09OOzs7OztOOzs7OzsKK0E0OTI7WUkgUkFESUNBTCBLSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDkzO1lJIFJBRElDQUwgTllJUDtTbzswO09OOzs7OztOOzs7OzsKK0E0OTQ7WUkgUkFESUNBTCBDWVA7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDk1O1lJIFJBRElDQUwgU1NJO1NvOzA7T047Ozs7O047Ozs7OworQTQ5NjtZSSBSQURJQ0FMIEdHT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDk3O1lJIFJBRElDQUwgR0VQO1NvOzA7T047Ozs7O047Ozs7OworQTQ5ODtZSSBSQURJQ0FMIE1JO1NvOzA7T047Ozs7O047Ozs7OworQTQ5OTtZSSBSQURJQ0FMIEhYSVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDlBO1lJIFJBRElDQUwgTFlSO1NvOzA7T047Ozs7O047Ozs7OworQTQ5QjtZSSBSQURJQ0FMIEJCVVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNDlDO1lJIFJBRElDQUwgTU9QO1NvOzA7T047Ozs7O047Ozs7OworQTQ5RDtZSSBSQURJQ0FMIFlPO1NvOzA7T047Ozs7O047Ozs7OworQTQ5RTtZSSBSQURJQ0FMIFBVVDtTbzswO09OOzs7OztOOzs7OzsKK0E0OUY7WUkgUkFESUNBTCBIWFVPO1NvOzA7T047Ozs7O047Ozs7OworQTRBMDtZSSBSQURJQ0FMIFRBVDtTbzswO09OOzs7OztOOzs7OzsKK0E0QTE7WUkgUkFESUNBTCBHQTtTbzswO09OOzs7OztOOzs7OzsKK0E0QTI7WUkgUkFESUNBTCBaVVA7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEEzO1lJIFJBRElDQUwgQ1lUO1NvOzA7T047Ozs7O047Ozs7OworQTRBNDtZSSBSQURJQ0FMIEREVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEE1O1lJIFJBRElDQUwgQlVSO1NvOzA7T047Ozs7O047Ozs7OworQTRBNjtZSSBSQURJQ0FMIEdHVU87U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEE3O1lJIFJBRElDQUwgTllPUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QTg7WUkgUkFESUNBTCBUVTtTbzswO09OOzs7OztOOzs7OzsKK0E0QTk7WUkgUkFESUNBTCBPUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QUE7WUkgUkFESUNBTCBKSlVUO1NvOzA7T047Ozs7O047Ozs7OworQTRBQjtZSSBSQURJQ0FMIFpPVDtTbzswO09OOzs7OztOOzs7OzsKK0E0QUM7WUkgUkFESUNBTCBQWVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEFEO1lJIFJBRElDQUwgSE1PO1NvOzA7T047Ozs7O047Ozs7OworQTRBRTtZSSBSQURJQ0FMIFlJVDtTbzswO09OOzs7OztOOzs7OzsKK0E0QUY7WUkgUkFESUNBTCBWVVI7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEIwO1lJIFJBRElDQUwgU0hZO1NvOzA7T047Ozs7O047Ozs7OworQTRCMTtZSSBSQURJQ0FMIFZFUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QjI7WUkgUkFESUNBTCBaQTtTbzswO09OOzs7OztOOzs7OzsKK0E0QjM7WUkgUkFESUNBTCBKTztTbzswO09OOzs7OztOOzs7OzsKK0E0QjQ7WUkgUkFESUNBTCBOWlVQO1NvOzA7T047Ozs7O047Ozs7OworQTRCNTtZSSBSQURJQ0FMIEpKWTtTbzswO09OOzs7OztOOzs7OzsKK0E0QjY7WUkgUkFESUNBTCBHT1Q7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEI3O1lJIFJBRElDQUwgSkpJRTtTbzswO09OOzs7OztOOzs7OzsKK0E0Qjg7WUkgUkFESUNBTCBXTztTbzswO09OOzs7OztOOzs7OzsKK0E0Qjk7WUkgUkFESUNBTCBEVTtTbzswO09OOzs7OztOOzs7OzsKK0E0QkE7WUkgUkFESUNBTCBTSFVSO1NvOzA7T047Ozs7O047Ozs7OworQTRCQjtZSSBSQURJQ0FMIExJRTtTbzswO09OOzs7OztOOzs7OzsKK0E0QkM7WUkgUkFESUNBTCBDWTtTbzswO09OOzs7OztOOzs7OzsKK0E0QkQ7WUkgUkFESUNBTCBDVU9QO1NvOzA7T047Ozs7O047Ozs7OworQTRCRTtZSSBSQURJQ0FMIENJUDtTbzswO09OOzs7OztOOzs7OzsKK0E0QkY7WUkgUkFESUNBTCBIWE9QO1NvOzA7T047Ozs7O047Ozs7OworQTRDMDtZSSBSQURJQ0FMIFNIQVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEMxO1lJIFJBRElDQUwgWlVSO1NvOzA7T047Ozs7O047Ozs7OworQTRDMjtZSSBSQURJQ0FMIFNIT1A7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEMzO1lJIFJBRElDQUwgQ0hFO1NvOzA7T047Ozs7O047Ozs7OworQTRDNDtZSSBSQURJQ0FMIFpaSUVUO1NvOzA7T047Ozs7O047Ozs7OworQTRDNTtZSSBSQURJQ0FMIE5CSUU7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNEM2O1lJIFJBRElDQUwgS0U7U287MDtPTjs7Ozs7Tjs7Ozs7CitBNzAwO01PRElGSUVSIExFVFRFUiBDSElORVNFIFRPTkUgWUlOIFBJTkc7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzAxO01PRElGSUVSIExFVFRFUiBDSElORVNFIFRPTkUgWUFORyBQSU5HO1NrOzA7T047Ozs7O047Ozs7OworQTcwMjtNT0RJRklFUiBMRVRURVIgQ0hJTkVTRSBUT05FIFlJTiBTSEFORztTazswO09OOzs7OztOOzs7OzsKK0E3MDM7TU9ESUZJRVIgTEVUVEVSIENISU5FU0UgVE9ORSBZQU5HIFNIQU5HO1NrOzA7T047Ozs7O047Ozs7OworQTcwNDtNT0RJRklFUiBMRVRURVIgQ0hJTkVTRSBUT05FIFlJTiBRVTtTazswO09OOzs7OztOOzs7OzsKK0E3MDU7TU9ESUZJRVIgTEVUVEVSIENISU5FU0UgVE9ORSBZQU5HIFFVO1NrOzA7T047Ozs7O047Ozs7OworQTcwNjtNT0RJRklFUiBMRVRURVIgQ0hJTkVTRSBUT05FIFlJTiBSVTtTazswO09OOzs7OztOOzs7OzsKK0E3MDc7TU9ESUZJRVIgTEVUVEVSIENISU5FU0UgVE9ORSBZQU5HIFJVO1NrOzA7T047Ozs7O047Ozs7OworQTcwODtNT0RJRklFUiBMRVRURVIgRVhUUkEtSElHSCBET1RURUQgVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzA5O01PRElGSUVSIExFVFRFUiBISUdIIERPVFRFRCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MEE7TU9ESUZJRVIgTEVUVEVSIE1JRCBET1RURUQgVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzBCO01PRElGSUVSIExFVFRFUiBMT1cgRE9UVEVEIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworQTcwQztNT0RJRklFUiBMRVRURVIgRVhUUkEtTE9XIERPVFRFRCBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MEQ7TU9ESUZJRVIgTEVUVEVSIEVYVFJBLUhJR0ggRE9UVEVEIExFRlQtU1RFTSBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MEU7TU9ESUZJRVIgTEVUVEVSIEhJR0ggRE9UVEVEIExFRlQtU1RFTSBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MEY7TU9ESUZJRVIgTEVUVEVSIE1JRCBET1RURUQgTEVGVC1TVEVNIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworQTcxMDtNT0RJRklFUiBMRVRURVIgTE9XIERPVFRFRCBMRUZULVNURU0gVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzExO01PRElGSUVSIExFVFRFUiBFWFRSQS1MT1cgRE9UVEVEIExFRlQtU1RFTSBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MTI7TU9ESUZJRVIgTEVUVEVSIEVYVFJBLUhJR0ggTEVGVC1TVEVNIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworQTcxMztNT0RJRklFUiBMRVRURVIgSElHSCBMRUZULVNURU0gVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBNzE0O01PRElGSUVSIExFVFRFUiBNSUQgTEVGVC1TVEVNIFRPTkUgQkFSO1NrOzA7T047Ozs7O047Ozs7OworQTcxNTtNT0RJRklFUiBMRVRURVIgTE9XIExFRlQtU1RFTSBUT05FIEJBUjtTazswO09OOzs7OztOOzs7OzsKK0E3MTY7TU9ESUZJRVIgTEVUVEVSIEVYVFJBLUxPVyBMRUZULVNURU0gVE9ORSBCQVI7U2s7MDtPTjs7Ozs7Tjs7Ozs7CitBODAwO1NZTE9USSBOQUdSSSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworQTgwMTtTWUxPVEkgTkFHUkkgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKK0E4MDI7U1lMT1RJIE5BR1JJIFNJR04gRFZJU1ZBUkE7TWM7MDtOU007Ozs7O047Ozs7OworQTgwMztTWUxPVEkgTkFHUkkgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKK0E4MDQ7U1lMT1RJIE5BR1JJIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODA1O1NZTE9USSBOQUdSSSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworQTgwNjtTWUxPVEkgTkFHUkkgU0lHTiBIQVNBTlRBO01uOzk7TlNNOzs7OztOOzs7OzsKK0E4MDc7U1lMT1RJIE5BR1JJIExFVFRFUiBLTztMbzswO0w7Ozs7O047Ozs7OworQTgwODtTWUxPVEkgTkFHUkkgTEVUVEVSIEtITztMbzswO0w7Ozs7O047Ozs7OworQTgwOTtTWUxPVEkgTkFHUkkgTEVUVEVSIEdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODBBO1NZTE9USSBOQUdSSSBMRVRURVIgR0hPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODBCO1NZTE9USSBOQUdSSSBTSUdOIEFOVVNWQVJBO01uOzA7TlNNOzs7OztOOzs7OzsKK0E4MEM7U1lMT1RJIE5BR1JJIExFVFRFUiBDTztMbzswO0w7Ozs7O047Ozs7OworQTgwRDtTWUxPVEkgTkFHUkkgTEVUVEVSIENITztMbzswO0w7Ozs7O047Ozs7OworQTgwRTtTWUxPVEkgTkFHUkkgTEVUVEVSIEpPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODBGO1NZTE9USSBOQUdSSSBMRVRURVIgSkhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODEwO1NZTE9USSBOQUdSSSBMRVRURVIgVFRPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODExO1NZTE9USSBOQUdSSSBMRVRURVIgVFRITztMbzswO0w7Ozs7O047Ozs7OworQTgxMjtTWUxPVEkgTkFHUkkgTEVUVEVSIERETztMbzswO0w7Ozs7O047Ozs7OworQTgxMztTWUxPVEkgTkFHUkkgTEVUVEVSIERESE87TG87MDtMOzs7OztOOzs7OzsKK0E4MTQ7U1lMT1RJIE5BR1JJIExFVFRFUiBUTztMbzswO0w7Ozs7O047Ozs7OworQTgxNTtTWUxPVEkgTkFHUkkgTEVUVEVSIFRITztMbzswO0w7Ozs7O047Ozs7OworQTgxNjtTWUxPVEkgTkFHUkkgTEVUVEVSIERPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODE3O1NZTE9USSBOQUdSSSBMRVRURVIgREhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODE4O1NZTE9USSBOQUdSSSBMRVRURVIgTk87TG87MDtMOzs7OztOOzs7OzsKK0E4MTk7U1lMT1RJIE5BR1JJIExFVFRFUiBQTztMbzswO0w7Ozs7O047Ozs7OworQTgxQTtTWUxPVEkgTkFHUkkgTEVUVEVSIFBITztMbzswO0w7Ozs7O047Ozs7OworQTgxQjtTWUxPVEkgTkFHUkkgTEVUVEVSIEJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODFDO1NZTE9USSBOQUdSSSBMRVRURVIgQkhPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODFEO1NZTE9USSBOQUdSSSBMRVRURVIgTU87TG87MDtMOzs7OztOOzs7OzsKK0E4MUU7U1lMT1RJIE5BR1JJIExFVFRFUiBSTztMbzswO0w7Ozs7O047Ozs7OworQTgxRjtTWUxPVEkgTkFHUkkgTEVUVEVSIExPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODIwO1NZTE9USSBOQUdSSSBMRVRURVIgUlJPO0xvOzA7TDs7Ozs7Tjs7Ozs7CitBODIxO1NZTE9USSBOQUdSSSBMRVRURVIgU087TG87MDtMOzs7OztOOzs7OzsKK0E4MjI7U1lMT1RJIE5BR1JJIExFVFRFUiBITztMbzswO0w7Ozs7O047Ozs7OworQTgyMztTWUxPVEkgTkFHUkkgVk9XRUwgU0lHTiBBO01jOzA7TDs7Ozs7Tjs7Ozs7CitBODI0O1NZTE9USSBOQUdSSSBWT1dFTCBTSUdOIEk7TWM7MDtMOzs7OztOOzs7OzsKK0E4MjU7U1lMT1RJIE5BR1JJIFZPV0VMIFNJR04gVTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitBODI2O1NZTE9USSBOQUdSSSBWT1dFTCBTSUdOIEU7TW47MDtOU007Ozs7O047Ozs7OworQTgyNztTWUxPVEkgTkFHUkkgVk9XRUwgU0lHTiBPTztNYzswO0w7Ozs7O047Ozs7OworQTgyODtTWUxPVEkgTkFHUkkgUE9FVFJZIE1BUkstMTtTbzswO09OOzs7OztOOzs7OzsKK0E4Mjk7U1lMT1RJIE5BR1JJIFBPRVRSWSBNQVJLLTI7U287MDtPTjs7Ozs7Tjs7Ozs7CitBODJBO1NZTE9USSBOQUdSSSBQT0VUUlkgTUFSSy0zO1NvOzA7T047Ozs7O047Ozs7OworQTgyQjtTWUxPVEkgTkFHUkkgUE9FVFJZIE1BUkstNDtTbzswO09OOzs7OztOOzs7OzsKK0FDMDA7PEhhbmd1bCBTeWxsYWJsZSwgRmlyc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CitEN0EzOzxIYW5ndWwgU3lsbGFibGUsIExhc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CitEODAwOzxOb24gUHJpdmF0ZSBVc2UgSGlnaCBTdXJyb2dhdGUsIEZpcnN0PjtDczswO0w7Ozs7O047Ozs7OworREI3Rjs8Tm9uIFByaXZhdGUgVXNlIEhpZ2ggU3Vycm9nYXRlLCBMYXN0PjtDczswO0w7Ozs7O047Ozs7OworREI4MDs8UHJpdmF0ZSBVc2UgSGlnaCBTdXJyb2dhdGUsIEZpcnN0PjtDczswO0w7Ozs7O047Ozs7OworREJGRjs8UHJpdmF0ZSBVc2UgSGlnaCBTdXJyb2dhdGUsIExhc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitEQzAwOzxMb3cgU3Vycm9nYXRlLCBGaXJzdD47Q3M7MDtMOzs7OztOOzs7OzsKK0RGRkY7PExvdyBTdXJyb2dhdGUsIExhc3Q+O0NzOzA7TDs7Ozs7Tjs7Ozs7CitFMDAwOzxQcml2YXRlIFVzZSwgRmlyc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CitGOEZGOzxQcml2YXRlIFVzZSwgTGFzdD47Q287MDtMOzs7OztOOzs7OzsKK0Y5MDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDA7TG87MDtMOzhDNDg7Ozs7Tjs7Ozs7CitGOTAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTAxO0xvOzA7TDs2NkY0Ozs7O047Ozs7OworRjkwMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwMjtMbzswO0w7OEVDQTs7OztOOzs7OzsKK0Y5MDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDM7TG87MDtMOzhDQzg7Ozs7Tjs7Ozs7CitGOTA0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA0O0xvOzA7TDs2RUQxOzs7O047Ozs7OworRjkwNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwNTtMbzswO0w7NEUzMjs7OztOOzs7OzsKK0Y5MDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDY7TG87MDtMOzUzRTU7Ozs7Tjs7Ozs7CitGOTA3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTA3O0xvOzA7TDs5RjlDOzs7O047Ozs7OworRjkwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwODtMbzswO0w7OUY5Qzs7OztOOzs7OzsKK0Y5MDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MDk7TG87MDtMOzU5NTE7Ozs7Tjs7Ozs7CitGOTBBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBBO0xvOzA7TDs5MUQxOzs7O047Ozs7OworRjkwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwQjtMbzswO0w7NTU4Nzs7OztOOzs7OzsKK0Y5MEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEM7TG87MDtMOzU5NDg7Ozs7Tjs7Ozs7CitGOTBEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTBEO0xvOzA7TDs2MUY2Ozs7O047Ozs7OworRjkwRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkwRTtMbzswO0w7NzY2OTs7OztOOzs7OzsKK0Y5MEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MEY7TG87MDtMOzdGODU7Ozs7Tjs7Ozs7CitGOTEwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTEwO0xvOzA7TDs4NjNGOzs7O047Ozs7OworRjkxMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxMTtMbzswO0w7ODdCQTs7OztOOzs7OzsKK0Y5MTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTI7TG87MDtMOzg4Rjg7Ozs7Tjs7Ozs7CitGOTEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTEzO0xvOzA7TDs5MDhGOzs7O047Ozs7OworRjkxNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxNDtMbzswO0w7NkEwMjs7OztOOzs7OzsKK0Y5MTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTU7TG87MDtMOzZEMUI7Ozs7Tjs7Ozs7CitGOTE2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE2O0xvOzA7TDs3MEQ5Ozs7O047Ozs7OworRjkxNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxNztMbzswO0w7NzNERTs7OztOOzs7OzsKK0Y5MTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MTg7TG87MDtMOzg0M0Q7Ozs7Tjs7Ozs7CitGOTE5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTE5O0xvOzA7TDs5MTZBOzs7O047Ozs7OworRjkxQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxQTtMbzswO0w7OTlGMTs7OztOOzs7OzsKK0Y5MUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUI7TG87MDtMOzRFODI7Ozs7Tjs7Ozs7CitGOTFDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFDO0xvOzA7TDs1Mzc1Ozs7O047Ozs7OworRjkxRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkxRDtMbzswO0w7NkIwNDs7OztOOzs7OzsKK0Y5MUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MUU7TG87MDtMOzcyMUI7Ozs7Tjs7Ozs7CitGOTFGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTFGO0xvOzA7TDs4NjJEOzs7O047Ozs7OworRjkyMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyMDtMbzswO0w7OUUxRTs7OztOOzs7OzsKK0Y5MjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjE7TG87MDtMOzVENTA7Ozs7Tjs7Ozs7CitGOTIyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTIyO0xvOzA7TDs2RkVCOzs7O047Ozs7OworRjkyMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyMztMbzswO0w7ODVDRDs7OztOOzs7OzsKK0Y5MjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MjQ7TG87MDtMOzg5NjQ7Ozs7Tjs7Ozs7CitGOTI1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI1O0xvOzA7TDs2MkM5Ozs7O047Ozs7OworRjkyNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyNjtMbzswO0w7ODFEODs7OztOOzs7OzsKK0Y5Mjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mjc7TG87MDtMOzg4MUY7Ozs7Tjs7Ozs7CitGOTI4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTI4O0xvOzA7TDs1RUNBOzs7O047Ozs7OworRjkyOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyOTtMbzswO0w7NjcxNzs7OztOOzs7OzsKK0Y5MkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkE7TG87MDtMOzZENkE7Ozs7Tjs7Ozs7CitGOTJCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJCO0xvOzA7TDs3MkZDOzs7O047Ozs7OworRjkyQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyQztMbzswO0w7OTBDRTs7OztOOzs7OzsKK0Y5MkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MkQ7TG87MDtMOzRGODY7Ozs7Tjs7Ozs7CitGOTJFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTJFO0xvOzA7TDs1MUI3Ozs7O047Ozs7OworRjkyRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkyRjtMbzswO0w7NTJERTs7OztOOzs7OzsKK0Y5MzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzA7TG87MDtMOzY0QzQ7Ozs7Tjs7Ozs7CitGOTMxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTMxO0xvOzA7TDs2QUQzOzs7O047Ozs7OworRjkzMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzMjtMbzswO0w7NzIxMDs7OztOOzs7OzsKK0Y5MzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzM7TG87MDtMOzc2RTc7Ozs7Tjs7Ozs7CitGOTM0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM0O0xvOzA7TDs4MDAxOzs7O047Ozs7OworRjkzNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzNTtMbzswO0w7ODYwNjs7OztOOzs7OzsKK0Y5MzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5MzY7TG87MDtMOzg2NUM7Ozs7Tjs7Ozs7CitGOTM3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTM3O0xvOzA7TDs4REVGOzs7O047Ozs7OworRjkzODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzODtMbzswO0w7OTczMjs7OztOOzs7OzsKK0Y5Mzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Mzk7TG87MDtMOzlCNkY7Ozs7Tjs7Ozs7CitGOTNBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNBO0xvOzA7TDs5REZBOzs7O047Ozs7OworRjkzQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzQjtMbzswO0w7Nzg4Qzs7OztOOzs7OzsKK0Y5M0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0M7TG87MDtMOzc5N0Y7Ozs7Tjs7Ozs7CitGOTNEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTNEO0xvOzA7TDs3REEwOzs7O047Ozs7OworRjkzRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjkzRTtMbzswO0w7ODNDOTs7OztOOzs7OzsKK0Y5M0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5M0Y7TG87MDtMOzkzMDQ7Ozs7Tjs7Ozs7CitGOTQwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQwO0xvOzA7TDs5RTdGOzs7O047Ozs7OworRjk0MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0MTtMbzswO0w7OEFENjs7OztOOzs7OzsKK0Y5NDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDI7TG87MDtMOzU4REY7Ozs7Tjs7Ozs7CitGOTQzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQzO0xvOzA7TDs1RjA0Ozs7O047Ozs7OworRjk0NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0NDtMbzswO0w7N0M2MDs7OztOOzs7OzsKK0Y5NDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDU7TG87MDtMOzgwN0U7Ozs7Tjs7Ozs7CitGOTQ2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ2O0xvOzA7TDs3MjYyOzs7O047Ozs7OworRjk0NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0NztMbzswO0w7NzhDQTs7OztOOzs7OzsKK0Y5NDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NDg7TG87MDtMOzhDQzI7Ozs7Tjs7Ozs7CitGOTQ5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTQ5O0xvOzA7TDs5NkY3Ozs7O047Ozs7OworRjk0QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0QTtMbzswO0w7NThEODs7OztOOzs7OzsKK0Y5NEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEI7TG87MDtMOzVDNjI7Ozs7Tjs7Ozs7CitGOTRDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTRDO0xvOzA7TDs2QTEzOzs7O047Ozs7OworRjk0RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk0RDtMbzswO0w7NkREQTs7OztOOzs7OzsKK0Y5NEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NEU7TG87MDtMOzZGMEY7Ozs7Tjs7Ozs7CitGOTRGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTRGO0xvOzA7TDs3RDJGOzs7O047Ozs7OworRjk1MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1MDtMbzswO0w7N0UzNzs7OztOOzs7OzsKK0Y5NTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTE7TG87MDtMOzk2NEI7Ozs7Tjs7Ozs7CitGOTUyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTUyO0xvOzA7TDs1MkQyOzs7O047Ozs7OworRjk1MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1MztMbzswO0w7ODA4Qjs7OztOOzs7OzsKK0Y5NTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTQ7TG87MDtMOzUxREM7Ozs7Tjs7Ozs7CitGOTU1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU1O0xvOzA7TDs1MUNDOzs7O047Ozs7OworRjk1NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1NjtMbzswO0w7N0ExQzs7OztOOzs7OzsKK0Y5NTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NTc7TG87MDtMOzdEQkU7Ozs7Tjs7Ozs7CitGOTU4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTU4O0xvOzA7TDs4M0YxOzs7O047Ozs7OworRjk1OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1OTtMbzswO0w7OTY3NTs7OztOOzs7OzsKK0Y5NUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUE7TG87MDtMOzhCODA7Ozs7Tjs7Ozs7CitGOTVCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVCO0xvOzA7TDs2MkNGOzs7O047Ozs7OworRjk1QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1QztMbzswO0w7NkEwMjs7OztOOzs7OzsKK0Y5NUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NUQ7TG87MDtMOzhBRkU7Ozs7Tjs7Ozs7CitGOTVFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTVFO0xvOzA7TDs0RTM5Ozs7O047Ozs7OworRjk1RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk1RjtMbzswO0w7NUJFNzs7OztOOzs7OzsKK0Y5NjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjA7TG87MDtMOzYwMTI7Ozs7Tjs7Ozs7CitGOTYxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTYxO0xvOzA7TDs3Mzg3Ozs7O047Ozs7OworRjk2MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2MjtMbzswO0w7NzU3MDs7OztOOzs7OzsKK0Y5NjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjM7TG87MDtMOzUzMTc7Ozs7Tjs7Ozs7CitGOTY0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY0O0xvOzA7TDs3OEZCOzs7O047Ozs7OworRjk2NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2NTtMbzswO0w7NEZCRjs7OztOOzs7OzsKK0Y5NjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NjY7TG87MDtMOzVGQTk7Ozs7Tjs7Ozs7CitGOTY3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTY3O0xvOzA7TDs0RTBEOzs7O047Ozs7OworRjk2ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2ODtMbzswO0w7NkNDQzs7OztOOzs7OzsKK0Y5Njk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Njk7TG87MDtMOzY1Nzg7Ozs7Tjs7Ozs7CitGOTZBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZBO0xvOzA7TDs3RDIyOzs7O047Ozs7OworRjk2QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2QjtMbzswO0w7NTNDMzs7OztOOzs7OzsKK0Y5NkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkM7TG87MDtMOzU4NUU7Ozs7Tjs7Ozs7CitGOTZEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTZEO0xvOzA7TDs3NzAxOzs7O047Ozs7OworRjk2RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk2RTtMbzswO0w7ODQ0OTs7OztOOzs7OzsKK0Y5NkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NkY7TG87MDtMOzhBQUE7Ozs7Tjs7Ozs7CitGOTcwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTcwO0xvOzA7TDs2QkJBOzs7O047Ozs7OworRjk3MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3MTtMbzswO0w7OEZCMDs7OztOOzs7OzsKK0Y5NzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzI7TG87MDtMOzZDODg7Ozs7Tjs7Ozs7CitGOTczO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTczO0xvOzA7TDs2MkZFOzs7O047Ozs7OworRjk3NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3NDtMbzswO0w7ODJFNTs7OztOOzs7OzsKK0Y5NzU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5NzU7TG87MDtMOzYzQTA7Ozs7Tjs7Ozs7CitGOTc2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc2O0xvOzA7TDs3NTY1Ozs7O047Ozs7OworRjk3NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3NztMbzswO0w7NEVBRTs7OztOOzs7OzsKK0Y5Nzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Nzg7TG87MDtMOzUxNjk7Ozs7Tjs7Ozs7CitGOTc5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTc5O0xvOzA7TDs1MUM5Ozs7O047Ozs7OworRjk3QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3QTtMbzswO0w7Njg4MTs7OztOOzs7OzsKK0Y5N0I7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0I7TG87MDtMOzdDRTc7Ozs7Tjs7Ozs7CitGOTdDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdDO0xvOzA7TDs4MjZGOzs7O047Ozs7OworRjk3RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk3RDtMbzswO0w7OEFEMjs7OztOOzs7OzsKK0Y5N0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5N0U7TG87MDtMOzkxQ0Y7Ozs7Tjs7Ozs7CitGOTdGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTdGO0xvOzA7TDs1MkY1Ozs7O047Ozs7OworRjk4MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4MDtMbzswO0w7NTQ0Mjs7OztOOzs7OzsKK0Y5ODE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODE7TG87MDtMOzU5NzM7Ozs7Tjs7Ozs7CitGOTgyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTgyO0xvOzA7TDs1RUVDOzs7O047Ozs7OworRjk4MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4MztMbzswO0w7NjVDNTs7OztOOzs7OzsKK0Y5ODQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODQ7TG87MDtMOzZGRkU7Ozs7Tjs7Ozs7CitGOTg1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg1O0xvOzA7TDs3OTJBOzs7O047Ozs7OworRjk4NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4NjtMbzswO0w7OTVBRDs7OztOOzs7OzsKK0Y5ODc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5ODc7TG87MDtMOzlBNkE7Ozs7Tjs7Ozs7CitGOTg4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTg4O0xvOzA7TDs5RTk3Ozs7O047Ozs7OworRjk4OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4OTtMbzswO0w7OUVDRTs7OztOOzs7OzsKK0Y5OEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEE7TG87MDtMOzUyOUI7Ozs7Tjs7Ozs7CitGOThCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThCO0xvOzA7TDs2NkM2Ozs7O047Ozs7OworRjk4QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4QztMbzswO0w7NkI3Nzs7OztOOzs7OzsKK0Y5OEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OEQ7TG87MDtMOzhGNjI7Ozs7Tjs7Ozs7CitGOThFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOThFO0xvOzA7TDs1RTc0Ozs7O047Ozs7OworRjk4RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk4RjtMbzswO0w7NjE5MDs7OztOOzs7OzsKK0Y5OTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTA7TG87MDtMOzYyMDA7Ozs7Tjs7Ozs7CitGOTkxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTkxO0xvOzA7TDs2NDlBOzs7O047Ozs7OworRjk5MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5MjtMbzswO0w7NkYyMzs7OztOOzs7OzsKK0Y5OTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTM7TG87MDtMOzcxNDk7Ozs7Tjs7Ozs7CitGOTk0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk0O0xvOzA7TDs3NDg5Ozs7O047Ozs7OworRjk5NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5NTtMbzswO0w7NzlDQTs7OztOOzs7OzsKK0Y5OTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTY7TG87MDtMOzdERjQ7Ozs7Tjs7Ozs7CitGOTk3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTk3O0xvOzA7TDs4MDZGOzs7O047Ozs7OworRjk5ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5ODtMbzswO0w7OEYyNjs7OztOOzs7OzsKK0Y5OTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OTk7TG87MDtMOzg0RUU7Ozs7Tjs7Ozs7CitGOTlBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlBO0xvOzA7TDs5MDIzOzs7O047Ozs7OworRjk5QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5QjtMbzswO0w7OTM0QTs7OztOOzs7OzsKK0Y5OUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUM7TG87MDtMOzUyMTc7Ozs7Tjs7Ozs7CitGOTlEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOTlEO0xvOzA7TDs1MkEzOzs7O047Ozs7OworRjk5RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjk5RTtMbzswO0w7NTRCRDs7OztOOzs7OzsKK0Y5OUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5OUY7TG87MDtMOzcwQzg7Ozs7Tjs7Ozs7CitGOUEwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUEwO0xvOzA7TDs4OEMyOzs7O047Ozs7OworRjlBMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBMTtMbzswO0w7OEFBQTs7OztOOzs7OzsKK0Y5QTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTI7TG87MDtMOzVFQzk7Ozs7Tjs7Ozs7CitGOUEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUEzO0xvOzA7TDs1RkY1Ozs7O047Ozs7OworRjlBNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBNDtMbzswO0w7NjM3Qjs7OztOOzs7OzsKK0Y5QTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTU7TG87MDtMOzZCQUU7Ozs7Tjs7Ozs7CitGOUE2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE2O0xvOzA7TDs3QzNFOzs7O047Ozs7OworRjlBNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBNztMbzswO0w7NzM3NTs7OztOOzs7OzsKK0Y5QTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QTg7TG87MDtMOzRFRTQ7Ozs7Tjs7Ozs7CitGOUE5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUE5O0xvOzA7TDs1NkY5Ozs7O047Ozs7OworRjlBQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBQTtMbzswO0w7NUJFNzs7OztOOzs7OzsKK0Y5QUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUI7TG87MDtMOzVEQkE7Ozs7Tjs7Ozs7CitGOUFDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFDO0xvOzA7TDs2MDFDOzs7O047Ozs7OworRjlBRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlBRDtMbzswO0w7NzNCMjs7OztOOzs7OzsKK0Y5QUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QUU7TG87MDtMOzc0Njk7Ozs7Tjs7Ozs7CitGOUFGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUFGO0xvOzA7TDs3RjlBOzs7O047Ozs7OworRjlCMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCMDtMbzswO0w7ODA0Njs7OztOOzs7OzsKK0Y5QjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjE7TG87MDtMOzkyMzQ7Ozs7Tjs7Ozs7CitGOUIyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUIyO0xvOzA7TDs5NkY2Ozs7O047Ozs7OworRjlCMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCMztMbzswO0w7OTc0ODs7OztOOzs7OzsKK0Y5QjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QjQ7TG87MDtMOzk4MTg7Ozs7Tjs7Ozs7CitGOUI1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI1O0xvOzA7TDs0RjhCOzs7O047Ozs7OworRjlCNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCNjtMbzswO0w7NzlBRTs7OztOOzs7OzsKK0Y5Qjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qjc7TG87MDtMOzkxQjQ7Ozs7Tjs7Ozs7CitGOUI4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUI4O0xvOzA7TDs5NkI4Ozs7O047Ozs7OworRjlCOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCOTtMbzswO0w7NjBFMTs7OztOOzs7OzsKK0Y5QkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkE7TG87MDtMOzRFODY7Ozs7Tjs7Ozs7CitGOUJCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJCO0xvOzA7TDs1MERBOzs7O047Ozs7OworRjlCQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCQztMbzswO0w7NUJFRTs7OztOOzs7OzsKK0Y5QkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QkQ7TG87MDtMOzVDM0Y7Ozs7Tjs7Ozs7CitGOUJFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUJFO0xvOzA7TDs2NTk5Ozs7O047Ozs7OworRjlCRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlCRjtMbzswO0w7NkEwMjs7OztOOzs7OzsKK0Y5QzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzA7TG87MDtMOzcxQ0U7Ozs7Tjs7Ozs7CitGOUMxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUMxO0xvOzA7TDs3NjQyOzs7O047Ozs7OworRjlDMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDMjtMbzswO0w7ODRGQzs7OztOOzs7OzsKK0Y5QzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzM7TG87MDtMOzkwN0M7Ozs7Tjs7Ozs7CitGOUM0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM0O0xvOzA7TDs5RjhEOzs7O047Ozs7OworRjlDNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDNTtMbzswO0w7NjY4ODs7OztOOzs7OzsKK0Y5QzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5QzY7TG87MDtMOzk2MkU7Ozs7Tjs7Ozs7CitGOUM3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUM3O0xvOzA7TDs1Mjg5Ozs7O047Ozs7OworRjlDODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDODtMbzswO0w7Njc3Qjs7OztOOzs7OzsKK0Y5Qzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Qzk7TG87MDtMOzY3RjM7Ozs7Tjs7Ozs7CitGOUNBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNBO0xvOzA7TDs2RDQxOzs7O047Ozs7OworRjlDQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDQjtMbzswO0w7NkU5Qzs7OztOOzs7OzsKK0Y5Q0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0M7TG87MDtMOzc0MDk7Ozs7Tjs7Ozs7CitGOUNEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUNEO0xvOzA7TDs3NTU5Ozs7O047Ozs7OworRjlDRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlDRTtMbzswO0w7Nzg2Qjs7OztOOzs7OzsKK0Y5Q0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Q0Y7TG87MDtMOzdEMTA7Ozs7Tjs7Ozs7CitGOUQwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQwO0xvOzA7TDs5ODVFOzs7O047Ozs7OworRjlEMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEMTtMbzswO0w7NTE2RDs7OztOOzs7OzsKK0Y5RDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDI7TG87MDtMOzYyMkU7Ozs7Tjs7Ozs7CitGOUQzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQzO0xvOzA7TDs5Njc4Ozs7O047Ozs7OworRjlENDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlENDtMbzswO0w7NTAyQjs7OztOOzs7OzsKK0Y5RDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDU7TG87MDtMOzVEMTk7Ozs7Tjs7Ozs7CitGOUQ2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ2O0xvOzA7TDs2REVBOzs7O047Ozs7OworRjlENztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlENztMbzswO0w7OEYyQTs7OztOOzs7OzsKK0Y5RDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RDg7TG87MDtMOzVGOEI7Ozs7Tjs7Ozs7CitGOUQ5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUQ5O0xvOzA7TDs2MTQ0Ozs7O047Ozs7OworRjlEQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlEQTtMbzswO0w7NjgxNzs7OztOOzs7OzsKK0Y5REI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REI7TG87MDtMOzczODc7Ozs7Tjs7Ozs7CitGOURDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOURDO0xvOzA7TDs5Njg2Ozs7O047Ozs7OworRjlERDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlERDtMbzswO0w7NTIyOTs7OztOOzs7OzsKK0Y5REU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5REU7TG87MDtMOzU0MEY7Ozs7Tjs7Ozs7CitGOURGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOURGO0xvOzA7TDs1QzY1Ozs7O047Ozs7OworRjlFMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFMDtMbzswO0w7NjYxMzs7OztOOzs7OzsKK0Y5RTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTE7TG87MDtMOzY3NEU7Ozs7Tjs7Ozs7CitGOUUyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUUyO0xvOzA7TDs2OEE4Ozs7O047Ozs7OworRjlFMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFMztMbzswO0w7NkNFNTs7OztOOzs7OzsKK0Y5RTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTQ7TG87MDtMOzc0MDY7Ozs7Tjs7Ozs7CitGOUU1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU1O0xvOzA7TDs3NUUyOzs7O047Ozs7OworRjlFNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFNjtMbzswO0w7N0Y3OTs7OztOOzs7OzsKK0Y5RTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RTc7TG87MDtMOzg4Q0Y7Ozs7Tjs7Ozs7CitGOUU4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUU4O0xvOzA7TDs4OEUxOzs7O047Ozs7OworRjlFOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFOTtMbzswO0w7OTFDQzs7OztOOzs7OzsKK0Y5RUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUE7TG87MDtMOzk2RTI7Ozs7Tjs7Ozs7CitGOUVCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVCO0xvOzA7TDs1MzNGOzs7O047Ozs7OworRjlFQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFQztMbzswO0w7NkVCQTs7OztOOzs7OzsKK0Y5RUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RUQ7TG87MDtMOzU0MUQ7Ozs7Tjs7Ozs7CitGOUVFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUVFO0xvOzA7TDs3MUQwOzs7O047Ozs7OworRjlFRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlFRjtMbzswO0w7NzQ5ODs7OztOOzs7OzsKK0Y5RjA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjA7TG87MDtMOzg1RkE7Ozs7Tjs7Ozs7CitGOUYxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUYxO0xvOzA7TDs5NkEzOzs7O047Ozs7OworRjlGMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGMjtMbzswO0w7OUM1Nzs7OztOOzs7OzsKK0Y5RjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjM7TG87MDtMOzlFOUY7Ozs7Tjs7Ozs7CitGOUY0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY0O0xvOzA7TDs2Nzk3Ozs7O047Ozs7OworRjlGNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGNTtMbzswO0w7NkRDQjs7OztOOzs7OzsKK0Y5RjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RjY7TG87MDtMOzgxRTg7Ozs7Tjs7Ozs7CitGOUY3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUY3O0xvOzA7TDs3QUNCOzs7O047Ozs7OworRjlGODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGODtMbzswO0w7N0IyMDs7OztOOzs7OzsKK0Y5Rjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5Rjk7TG87MDtMOzdDOTI7Ozs7Tjs7Ozs7CitGOUZBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZBO0xvOzA7TDs3MkMwOzs7O047Ozs7OworRjlGQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGQjtMbzswO0w7NzA5OTs7OztOOzs7OzsKK0Y5RkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkM7TG87MDtMOzhCNTg7Ozs7Tjs7Ozs7CitGOUZEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GOUZEO0xvOzA7TDs0RUMwOzs7O047Ozs7OworRjlGRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRjlGRTtMbzswO0w7ODMzNjs7OztOOzs7OzsKK0Y5RkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUY5RkY7TG87MDtMOzUyM0E7Ozs7Tjs7Ozs7CitGQTAwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTAwO0xvOzA7TDs1MjA3Ozs7O047Ozs7OworRkEwMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwMTtMbzswO0w7NUVBNjs7OztOOzs7OzsKK0ZBMDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDI7TG87MDtMOzYyRDM7Ozs7Tjs7Ozs7CitGQTAzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTAzO0xvOzA7TDs3Q0Q2Ozs7O047Ozs7OworRkEwNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwNDtMbzswO0w7NUI4NTs7OztOOzs7OzsKK0ZBMDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDU7TG87MDtMOzZEMUU7Ozs7Tjs7Ozs7CitGQTA2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA2O0xvOzA7TDs2NkI0Ozs7O047Ozs7OworRkEwNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwNztMbzswO0w7OEYzQjs7OztOOzs7OzsKK0ZBMDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMDg7TG87MDtMOzg4NEM7Ozs7Tjs7Ozs7CitGQTA5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTA5O0xvOzA7TDs5NjREOzs7O047Ozs7OworRkEwQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwQTtMbzswO0w7ODk4Qjs7OztOOzs7OzsKK0ZBMEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEI7TG87MDtMOzVFRDM7Ozs7Tjs7Ozs7CitGQTBDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTBDO0xvOzA7TDs1MTQwOzs7O047Ozs7OworRkEwRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEwRDtMbzswO0w7NTVDMDs7OztOOzs7OzsKK0ZBMEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEU7TG87MDtMOzs7OztOOzs7OzsKK0ZBMEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMEY7TG87MDtMOzs7OztOOzs7OzsKK0ZBMTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTA7TG87MDtMOzU4NUE7Ozs7Tjs7Ozs7CitGQTExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTExO0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTEyO0xvOzA7TDs2Njc0Ozs7O047Ozs7OworRkExMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExMztMbzswO0w7Ozs7O047Ozs7OworRkExNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExNDtMbzswO0w7Ozs7O047Ozs7OworRkExNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExNTtMbzswO0w7NTFERTs7OztOOzs7OzsKK0ZBMTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTY7TG87MDtMOzczMkE7Ozs7Tjs7Ozs7CitGQTE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTE3O0xvOzA7TDs3NkNBOzs7O047Ozs7OworRkExODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExODtMbzswO0w7NzkzQzs7OztOOzs7OzsKK0ZBMTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMTk7TG87MDtMOzc5NUU7Ozs7Tjs7Ozs7CitGQTFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFBO0xvOzA7TDs3OTY1Ozs7O047Ozs7OworRkExQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExQjtMbzswO0w7Nzk4Rjs7OztOOzs7OzsKK0ZBMUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUM7TG87MDtMOzk3NTY7Ozs7Tjs7Ozs7CitGQTFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTFEO0xvOzA7TDs3Q0JFOzs7O047Ozs7OworRkExRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkExRTtMbzswO0w7N0ZCRDs7OztOOzs7OzsKK0ZBMUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMUY7TG87MDtMOzs7OztOOzsqOzs7CitGQTIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTIwO0xvOzA7TDs4NjEyOzs7O047Ozs7OworRkEyMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyMTtMbzswO0w7Ozs7O047Ozs7OworRkEyMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyMjtMbzswO0w7OEFGODs7OztOOzs7OzsKK0ZBMjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjM7TG87MDtMOzs7OztOOzsqOzs7CitGQTI0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI0O0xvOzA7TDs7Ozs7Tjs7Ozs7CitGQTI1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTI1O0xvOzA7TDs5MDM4Ozs7O047Ozs7OworRkEyNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyNjtMbzswO0w7OTBGRDs7OztOOzs7OzsKK0ZBMjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjc7TG87MDtMOzs7OztOOzs7OzsKK0ZBMjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjg7TG87MDtMOzs7OztOOzs7OzsKK0ZBMjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMjk7TG87MDtMOzs7OztOOzs7OzsKK0ZBMkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkE7TG87MDtMOzk4RUY7Ozs7Tjs7Ozs7CitGQTJCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTJCO0xvOzA7TDs5OEZDOzs7O047Ozs7OworRkEyQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEyQztMbzswO0w7OTkyODs7OztOOzs7OzsKK0ZBMkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMkQ7TG87MDtMOzlEQjQ7Ozs7Tjs7Ozs7CitGQTMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTMwO0xvOzA7TDs0RkFFOzs7O047Ozs7OworRkEzMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzMTtMbzswO0w7NTBFNzs7OztOOzs7OzsKK0ZBMzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzI7TG87MDtMOzUxNEQ7Ozs7Tjs7Ozs7CitGQTMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTMzO0xvOzA7TDs1MkM5Ozs7O047Ozs7OworRkEzNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzNDtMbzswO0w7NTJFNDs7OztOOzs7OzsKK0ZBMzU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzU7TG87MDtMOzUzNTE7Ozs7Tjs7Ozs7CitGQTM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTM2O0xvOzA7TDs1NTlEOzs7O047Ozs7OworRkEzNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzNztMbzswO0w7NTYwNjs7OztOOzs7OzsKK0ZBMzg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBMzg7TG87MDtMOzU2Njg7Ozs7Tjs7Ozs7CitGQTM5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTM5O0xvOzA7TDs1ODQwOzs7O047Ozs7OworRkEzQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzQTtMbzswO0w7NThBODs7OztOOzs7OzsKK0ZBM0I7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBM0I7TG87MDtMOzVDNjQ7Ozs7Tjs7Ozs7CitGQTNDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTNDO0xvOzA7TDs1QzZFOzs7O047Ozs7OworRkEzRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkEzRDtMbzswO0w7NjA5NDs7OztOOzs7OzsKK0ZBM0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBM0U7TG87MDtMOzYxNjg7Ozs7Tjs7Ozs7CitGQTNGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTNGO0xvOzA7TDs2MThFOzs7O047Ozs7OworRkE0MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0MDtMbzswO0w7NjFGMjs7OztOOzs7OzsKK0ZBNDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNDE7TG87MDtMOzY1NEY7Ozs7Tjs7Ozs7CitGQTQyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTQyO0xvOzA7TDs2NUUyOzs7O047Ozs7OworRkE0MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0MztMbzswO0w7NjY5MTs7OztOOzs7OzsKK0ZBNDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNDQ7TG87MDtMOzY4ODU7Ozs7Tjs7Ozs7CitGQTQ1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTQ1O0xvOzA7TDs2RDc3Ozs7O047Ozs7OworRkE0NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0NjtMbzswO0w7NkUxQTs7OztOOzs7OzsKK0ZBNDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNDc7TG87MDtMOzZGMjI7Ozs7Tjs7Ozs7CitGQTQ4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTQ4O0xvOzA7TDs3MTZFOzs7O047Ozs7OworRkE0OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0OTtMbzswO0w7NzIyQjs7OztOOzs7OzsKK0ZBNEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNEE7TG87MDtMOzc0MjI7Ozs7Tjs7Ozs7CitGQTRCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTRCO0xvOzA7TDs3ODkxOzs7O047Ozs7OworRkE0QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0QztMbzswO0w7NzkzRTs7OztOOzs7OzsKK0ZBNEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNEQ7TG87MDtMOzc5NDk7Ozs7Tjs7Ozs7CitGQTRFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTRFO0xvOzA7TDs3OTQ4Ozs7O047Ozs7OworRkE0RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE0RjtMbzswO0w7Nzk1MDs7OztOOzs7OzsKK0ZBNTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNTA7TG87MDtMOzc5NTY7Ozs7Tjs7Ozs7CitGQTUxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTUxO0xvOzA7TDs3OTVEOzs7O047Ozs7OworRkE1MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1MjtMbzswO0w7Nzk4RDs7OztOOzs7OzsKK0ZBNTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNTM7TG87MDtMOzc5OEU7Ozs7Tjs7Ozs7CitGQTU0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTU0O0xvOzA7TDs3QTQwOzs7O047Ozs7OworRkE1NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1NTtMbzswO0w7N0E4MTs7OztOOzs7OzsKK0ZBNTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNTY7TG87MDtMOzdCQzA7Ozs7Tjs7Ozs7CitGQTU3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTU3O0xvOzA7TDs3REY0Ozs7O047Ozs7OworRkE1ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1ODtMbzswO0w7N0UwOTs7OztOOzs7OzsKK0ZBNTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNTk7TG87MDtMOzdFNDE7Ozs7Tjs7Ozs7CitGQTVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTVBO0xvOzA7TDs3RjcyOzs7O047Ozs7OworRkE1QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1QjtMbzswO0w7ODAwNTs7OztOOzs7OzsKK0ZBNUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNUM7TG87MDtMOzgxRUQ7Ozs7Tjs7Ozs7CitGQTVEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTVEO0xvOzA7TDs4Mjc5Ozs7O047Ozs7OworRkE1RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE1RTtMbzswO0w7ODI3OTs7OztOOzs7OzsKK0ZBNUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNUY7TG87MDtMOzg0NTc7Ozs7Tjs7Ozs7CitGQTYwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTYwO0xvOzA7TDs4OTEwOzs7O047Ozs7OworRkE2MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE2MTtMbzswO0w7ODk5Njs7OztOOzs7OzsKK0ZBNjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNjI7TG87MDtMOzhCMDE7Ozs7Tjs7Ozs7CitGQTYzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTYzO0xvOzA7TDs4QjM5Ozs7O047Ozs7OworRkE2NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE2NDtMbzswO0w7OENEMzs7OztOOzs7OzsKK0ZBNjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNjU7TG87MDtMOzhEMDg7Ozs7Tjs7Ozs7CitGQTY2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTY2O0xvOzA7TDs4RkI2Ozs7O047Ozs7OworRkE2NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE2NztMbzswO0w7OTAzODs7OztOOzs7OzsKK0ZBNjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNjg7TG87MDtMOzk2RTM7Ozs7Tjs7Ozs7CitGQTY5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTY5O0xvOzA7TDs5N0ZGOzs7O047Ozs7OworRkE2QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE2QTtMbzswO0w7OTgzQjs7OztOOzs7OzsKK0ZBNzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNzA7TG87MDtMOzRFMjY7Ozs7Tjs7Ozs7CitGQTcxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTcxO0xvOzA7TDs1MUI1Ozs7O047Ozs7OworRkE3MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3MjtMbzswO0w7NTE2ODs7OztOOzs7OzsKK0ZBNzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNzM7TG87MDtMOzRGODA7Ozs7Tjs7Ozs7CitGQTc0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTc0O0xvOzA7TDs1MTQ1Ozs7O047Ozs7OworRkE3NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3NTtMbzswO0w7NTE4MDs7OztOOzs7OzsKK0ZBNzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNzY7TG87MDtMOzUyQzc7Ozs7Tjs7Ozs7CitGQTc3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTc3O0xvOzA7TDs1MkZBOzs7O047Ozs7OworRkE3ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3ODtMbzswO0w7NTU5RDs7OztOOzs7OzsKK0ZBNzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBNzk7TG87MDtMOzU1NTU7Ozs7Tjs7Ozs7CitGQTdBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTdBO0xvOzA7TDs1NTk5Ozs7O047Ozs7OworRkE3QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3QjtMbzswO0w7NTVFMjs7OztOOzs7OzsKK0ZBN0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBN0M7TG87MDtMOzU4NUE7Ozs7Tjs7Ozs7CitGQTdEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTdEO0xvOzA7TDs1OEIzOzs7O047Ozs7OworRkE3RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE3RTtMbzswO0w7NTk0NDs7OztOOzs7OzsKK0ZBN0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBN0Y7TG87MDtMOzU5NTQ7Ozs7Tjs7Ozs7CitGQTgwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTgwO0xvOzA7TDs1QTYyOzs7O047Ozs7OworRkE4MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4MTtMbzswO0w7NUIyODs7OztOOzs7OzsKK0ZBODI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBODI7TG87MDtMOzVFRDI7Ozs7Tjs7Ozs7CitGQTgzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTgzO0xvOzA7TDs1RUQ5Ozs7O047Ozs7OworRkE4NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4NDtMbzswO0w7NUY2OTs7OztOOzs7OzsKK0ZBODU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBODU7TG87MDtMOzVGQUQ7Ozs7Tjs7Ozs7CitGQTg2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTg2O0xvOzA7TDs2MEQ4Ozs7O047Ozs7OworRkE4NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4NztMbzswO0w7NjE0RTs7OztOOzs7OzsKK0ZBODg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBODg7TG87MDtMOzYxMDg7Ozs7Tjs7Ozs7CitGQTg5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTg5O0xvOzA7TDs2MThFOzs7O047Ozs7OworRkE4QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4QTtMbzswO0w7NjE2MDs7OztOOzs7OzsKK0ZBOEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOEI7TG87MDtMOzYxRjI7Ozs7Tjs7Ozs7CitGQThDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQThDO0xvOzA7TDs2MjM0Ozs7O047Ozs7OworRkE4RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE4RDtMbzswO0w7NjNDNDs7OztOOzs7OzsKK0ZBOEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOEU7TG87MDtMOzY0MUM7Ozs7Tjs7Ozs7CitGQThGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQThGO0xvOzA7TDs2NDUyOzs7O047Ozs7OworRkE5MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5MDtMbzswO0w7NjU1Njs7OztOOzs7OzsKK0ZBOTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOTE7TG87MDtMOzY2NzQ7Ozs7Tjs7Ozs7CitGQTkyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTkyO0xvOzA7TDs2NzE3Ozs7O047Ozs7OworRkE5MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5MztMbzswO0w7NjcxQjs7OztOOzs7OzsKK0ZBOTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOTQ7TG87MDtMOzY3NTY7Ozs7Tjs7Ozs7CitGQTk1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTk1O0xvOzA7TDs2Qjc5Ozs7O047Ozs7OworRkE5NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5NjtMbzswO0w7NkJCQTs7OztOOzs7OzsKK0ZBOTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOTc7TG87MDtMOzZENDE7Ozs7Tjs7Ozs7CitGQTk4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTk4O0xvOzA7TDs2RURCOzs7O047Ozs7OworRkE5OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5OTtMbzswO0w7NkVDQjs7OztOOzs7OzsKK0ZBOUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOUE7TG87MDtMOzZGMjI7Ozs7Tjs7Ozs7CitGQTlCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTlCO0xvOzA7TDs3MDFFOzs7O047Ozs7OworRkE5QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5QztMbzswO0w7NzE2RTs7OztOOzs7OzsKK0ZBOUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBOUQ7TG87MDtMOzc3QTc7Ozs7Tjs7Ozs7CitGQTlFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQTlFO0xvOzA7TDs3MjM1Ozs7O047Ozs7OworRkE5RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkE5RjtMbzswO0w7NzJBRjs7OztOOzs7OzsKK0ZBQTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQTA7TG87MDtMOzczMkE7Ozs7Tjs7Ozs7CitGQUExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUExO0xvOzA7TDs3NDcxOzs7O047Ozs7OworRkFBMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBMjtMbzswO0w7NzUwNjs7OztOOzs7OzsKK0ZBQTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQTM7TG87MDtMOzc1M0I7Ozs7Tjs7Ozs7CitGQUE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUE0O0xvOzA7TDs3NjFEOzs7O047Ozs7OworRkFBNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBNTtMbzswO0w7NzYxRjs7OztOOzs7OzsKK0ZBQTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQTY7TG87MDtMOzc2Q0E7Ozs7Tjs7Ozs7CitGQUE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUE3O0xvOzA7TDs3NkRCOzs7O047Ozs7OworRkFBODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBODtMbzswO0w7NzZGNDs7OztOOzs7OzsKK0ZBQTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQTk7TG87MDtMOzc3NEE7Ozs7Tjs7Ozs7CitGQUFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUFBO0xvOzA7TDs3NzQwOzs7O047Ozs7OworRkFBQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBQjtMbzswO0w7NzhDQzs7OztOOzs7OzsKK0ZBQUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQUM7TG87MDtMOzdBQjE7Ozs7Tjs7Ozs7CitGQUFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUFEO0xvOzA7TDs3QkMwOzs7O047Ozs7OworRkFBRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFBRTtMbzswO0w7N0M3Qjs7OztOOzs7OzsKK0ZBQUY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQUY7TG87MDtMOzdENUI7Ozs7Tjs7Ozs7CitGQUIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUIwO0xvOzA7TDs3REY0Ozs7O047Ozs7OworRkFCMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCMTtMbzswO0w7N0YzRTs7OztOOzs7OzsKK0ZBQjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQjI7TG87MDtMOzgwMDU7Ozs7Tjs7Ozs7CitGQUIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUIzO0xvOzA7TDs4MzUyOzs7O047Ozs7OworRkFCNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCNDtMbzswO0w7ODNFRjs7OztOOzs7OzsKK0ZBQjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQjU7TG87MDtMOzg3Nzk7Ozs7Tjs7Ozs7CitGQUI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUI2O0xvOzA7TDs4OTQxOzs7O047Ozs7OworRkFCNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCNztMbzswO0w7ODk4Njs7OztOOzs7OzsKK0ZBQjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQjg7TG87MDtMOzg5OTY7Ozs7Tjs7Ozs7CitGQUI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUI5O0xvOzA7TDs4QUJGOzs7O047Ozs7OworRkFCQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCQTtMbzswO0w7OEFGODs7OztOOzs7OzsKK0ZBQkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQkI7TG87MDtMOzhBQ0I7Ozs7Tjs7Ozs7CitGQUJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUJDO0xvOzA7TDs4QjAxOzs7O047Ozs7OworRkFCRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFCRDtMbzswO0w7OEFGRTs7OztOOzs7OzsKK0ZBQkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQkU7TG87MDtMOzhBRUQ7Ozs7Tjs7Ozs7CitGQUJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUJGO0xvOzA7TDs4QjM5Ozs7O047Ozs7OworRkFDMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDMDtMbzswO0w7OEI4QTs7OztOOzs7OzsKK0ZBQzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQzE7TG87MDtMOzhEMDg7Ozs7Tjs7Ozs7CitGQUMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUMyO0xvOzA7TDs4RjM4Ozs7O047Ozs7OworRkFDMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDMztMbzswO0w7OTA3Mjs7OztOOzs7OzsKK0ZBQzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQzQ7TG87MDtMOzkxOTk7Ozs7Tjs7Ozs7CitGQUM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUM1O0xvOzA7TDs5Mjc2Ozs7O047Ozs7OworRkFDNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDNjtMbzswO0w7OTY3Qzs7OztOOzs7OzsKK0ZBQzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQzc7TG87MDtMOzk2RTM7Ozs7Tjs7Ozs7CitGQUM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUM4O0xvOzA7TDs5NzU2Ozs7O047Ozs7OworRkFDOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDOTtMbzswO0w7OTdEQjs7OztOOzs7OzsKK0ZBQ0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQ0E7TG87MDtMOzk3RkY7Ozs7Tjs7Ozs7CitGQUNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUNCO0xvOzA7TDs5ODBCOzs7O047Ozs7OworRkFDQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDQztMbzswO0w7OTgzQjs7OztOOzs7OzsKK0ZBQ0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBQ0Q7TG87MDtMOzlCMTI7Ozs7Tjs7Ozs7CitGQUNFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUNFO0xvOzA7TDs5RjlDOzs7O047Ozs7OworRkFDRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFDRjtMbzswO0w7MjI4NEE7Ozs7Tjs7Ozs7CitGQUQwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUQwO0xvOzA7TDsyMjg0NDs7OztOOzs7OzsKK0ZBRDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBRDE7TG87MDtMOzIzM0Q1Ozs7O047Ozs7OworRkFEMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFEMjtMbzswO0w7M0I5RDs7OztOOzs7OzsKK0ZBRDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBRDM7TG87MDtMOzQwMTg7Ozs7Tjs7Ozs7CitGQUQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUQ0O0xvOzA7TDs0MDM5Ozs7O047Ozs7OworRkFENTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFENTtMbzswO0w7MjUyNDk7Ozs7Tjs7Ozs7CitGQUQ2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC1GQUQ2O0xvOzA7TDsyNUNEMDs7OztOOzs7OzsKK0ZBRDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBRDc7TG87MDtMOzI3RUQzOzs7O047Ozs7OworRkFEODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtRkFEODtMbzswO0w7OUY0Mzs7OztOOzs7OzsKK0ZBRDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILUZBRDk7TG87MDtMOzlGOEU7Ozs7Tjs7Ozs7CitGQjAwO0xBVElOIFNNQUxMIExJR0FUVVJFIEZGO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNjY7Ozs7Tjs7Ozs7CitGQjAxO0xBVElOIFNNQUxMIExJR0FUVVJFIEZJO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNjk7Ozs7Tjs7Ozs7CitGQjAyO0xBVElOIFNNQUxMIExJR0FUVVJFIEZMO0xsOzA7TDs8Y29tcGF0PiAwMDY2IDAwNkM7Ozs7Tjs7Ozs7CitGQjAzO0xBVElOIFNNQUxMIExJR0FUVVJFIEZGSTtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDY2IDAwNjk7Ozs7Tjs7Ozs7CitGQjA0O0xBVElOIFNNQUxMIExJR0FUVVJFIEZGTDtMbDswO0w7PGNvbXBhdD4gMDA2NiAwMDY2IDAwNkM7Ozs7Tjs7Ozs7CitGQjA1O0xBVElOIFNNQUxMIExJR0FUVVJFIExPTkcgUyBUO0xsOzA7TDs8Y29tcGF0PiAwMTdGIDAwNzQ7Ozs7Tjs7Ozs7CitGQjA2O0xBVElOIFNNQUxMIExJR0FUVVJFIFNUO0xsOzA7TDs8Y29tcGF0PiAwMDczIDAwNzQ7Ozs7Tjs7Ozs7CitGQjEzO0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIE1FTiBOT1c7TGw7MDtMOzxjb21wYXQ+IDA1NzQgMDU3Njs7OztOOzs7OzsKK0ZCMTQ7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIEVDSDtMbDswO0w7PGNvbXBhdD4gMDU3NCAwNTY1Ozs7O047Ozs7OworRkIxNTtBUk1FTklBTiBTTUFMTCBMSUdBVFVSRSBNRU4gSU5JO0xsOzA7TDs8Y29tcGF0PiAwNTc0IDA1NkI7Ozs7Tjs7Ozs7CitGQjE2O0FSTUVOSUFOIFNNQUxMIExJR0FUVVJFIFZFVyBOT1c7TGw7MDtMOzxjb21wYXQ+IDA1N0UgMDU3Njs7OztOOzs7OzsKK0ZCMTc7QVJNRU5JQU4gU01BTEwgTElHQVRVUkUgTUVOIFhFSDtMbDswO0w7PGNvbXBhdD4gMDU3NCAwNTZEOzs7O047Ozs7OworRkIxRDtIRUJSRVcgTEVUVEVSIFlPRCBXSVRIIEhJUklRO0xvOzA7UjswNUQ5IDA1QjQ7Ozs7Tjs7Ozs7CitGQjFFO0hFQlJFVyBQT0lOVCBKVURFTy1TUEFOSVNIIFZBUklLQTtNbjsyNjtOU007Ozs7O047SEVCUkVXIFBPSU5UIFZBUklLQTs7OzsKK0ZCMUY7SEVCUkVXIExJR0FUVVJFIFlJRERJU0ggWU9EIFlPRCBQQVRBSDtMbzswO1I7MDVGMiAwNUI3Ozs7O047Ozs7OworRkIyMDtIRUJSRVcgTEVUVEVSIEFMVEVSTkFUSVZFIEFZSU47TG87MDtSOzxmb250PiAwNUUyOzs7O047Ozs7OworRkIyMTtIRUJSRVcgTEVUVEVSIFdJREUgQUxFRjtMbzswO1I7PGZvbnQ+IDA1RDA7Ozs7Tjs7Ozs7CitGQjIyO0hFQlJFVyBMRVRURVIgV0lERSBEQUxFVDtMbzswO1I7PGZvbnQ+IDA1RDM7Ozs7Tjs7Ozs7CitGQjIzO0hFQlJFVyBMRVRURVIgV0lERSBIRTtMbzswO1I7PGZvbnQ+IDA1RDQ7Ozs7Tjs7Ozs7CitGQjI0O0hFQlJFVyBMRVRURVIgV0lERSBLQUY7TG87MDtSOzxmb250PiAwNURCOzs7O047Ozs7OworRkIyNTtIRUJSRVcgTEVUVEVSIFdJREUgTEFNRUQ7TG87MDtSOzxmb250PiAwNURDOzs7O047Ozs7OworRkIyNjtIRUJSRVcgTEVUVEVSIFdJREUgRklOQUwgTUVNO0xvOzA7Ujs8Zm9udD4gMDVERDs7OztOOzs7OzsKK0ZCMjc7SEVCUkVXIExFVFRFUiBXSURFIFJFU0g7TG87MDtSOzxmb250PiAwNUU4Ozs7O047Ozs7OworRkIyODtIRUJSRVcgTEVUVEVSIFdJREUgVEFWO0xvOzA7Ujs8Zm9udD4gMDVFQTs7OztOOzs7OzsKK0ZCMjk7SEVCUkVXIExFVFRFUiBBTFRFUk5BVElWRSBQTFVTIFNJR047U207MDtFUzs8Zm9udD4gMDAyQjs7OztOOzs7OzsKK0ZCMkE7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggU0hJTiBET1Q7TG87MDtSOzA1RTkgMDVDMTs7OztOOzs7OzsKK0ZCMkI7SEVCUkVXIExFVFRFUiBTSElOIFdJVEggU0lOIERPVDtMbzswO1I7MDVFOSAwNUMyOzs7O047Ozs7OworRkIyQztIRUJSRVcgTEVUVEVSIFNISU4gV0lUSCBEQUdFU0ggQU5EIFNISU4gRE9UO0xvOzA7UjtGQjQ5IDA1QzE7Ozs7Tjs7Ozs7CitGQjJEO0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSCBBTkQgU0lOIERPVDtMbzswO1I7RkI0OSAwNUMyOzs7O047Ozs7OworRkIyRTtIRUJSRVcgTEVUVEVSIEFMRUYgV0lUSCBQQVRBSDtMbzswO1I7MDVEMCAwNUI3Ozs7O047Ozs7OworRkIyRjtIRUJSRVcgTEVUVEVSIEFMRUYgV0lUSCBRQU1BVFM7TG87MDtSOzA1RDAgMDVCODs7OztOOzs7OzsKK0ZCMzA7SEVCUkVXIExFVFRFUiBBTEVGIFdJVEggTUFQSVE7TG87MDtSOzA1RDAgMDVCQzs7OztOOzs7OzsKK0ZCMzE7SEVCUkVXIExFVFRFUiBCRVQgV0lUSCBEQUdFU0g7TG87MDtSOzA1RDEgMDVCQzs7OztOOzs7OzsKK0ZCMzI7SEVCUkVXIExFVFRFUiBHSU1FTCBXSVRIIERBR0VTSDtMbzswO1I7MDVEMiAwNUJDOzs7O047Ozs7OworRkIzMztIRUJSRVcgTEVUVEVSIERBTEVUIFdJVEggREFHRVNIO0xvOzA7UjswNUQzIDA1QkM7Ozs7Tjs7Ozs7CitGQjM0O0hFQlJFVyBMRVRURVIgSEUgV0lUSCBNQVBJUTtMbzswO1I7MDVENCAwNUJDOzs7O047Ozs7OworRkIzNTtIRUJSRVcgTEVUVEVSIFZBViBXSVRIIERBR0VTSDtMbzswO1I7MDVENSAwNUJDOzs7O047Ozs7OworRkIzNjtIRUJSRVcgTEVUVEVSIFpBWUlOIFdJVEggREFHRVNIO0xvOzA7UjswNUQ2IDA1QkM7Ozs7Tjs7Ozs7CitGQjM4O0hFQlJFVyBMRVRURVIgVEVUIFdJVEggREFHRVNIO0xvOzA7UjswNUQ4IDA1QkM7Ozs7Tjs7Ozs7CitGQjM5O0hFQlJFVyBMRVRURVIgWU9EIFdJVEggREFHRVNIO0xvOzA7UjswNUQ5IDA1QkM7Ozs7Tjs7Ozs7CitGQjNBO0hFQlJFVyBMRVRURVIgRklOQUwgS0FGIFdJVEggREFHRVNIO0xvOzA7UjswNURBIDA1QkM7Ozs7Tjs7Ozs7CitGQjNCO0hFQlJFVyBMRVRURVIgS0FGIFdJVEggREFHRVNIO0xvOzA7UjswNURCIDA1QkM7Ozs7Tjs7Ozs7CitGQjNDO0hFQlJFVyBMRVRURVIgTEFNRUQgV0lUSCBEQUdFU0g7TG87MDtSOzA1REMgMDVCQzs7OztOOzs7OzsKK0ZCM0U7SEVCUkVXIExFVFRFUiBNRU0gV0lUSCBEQUdFU0g7TG87MDtSOzA1REUgMDVCQzs7OztOOzs7OzsKK0ZCNDA7SEVCUkVXIExFVFRFUiBOVU4gV0lUSCBEQUdFU0g7TG87MDtSOzA1RTAgMDVCQzs7OztOOzs7OzsKK0ZCNDE7SEVCUkVXIExFVFRFUiBTQU1FS0ggV0lUSCBEQUdFU0g7TG87MDtSOzA1RTEgMDVCQzs7OztOOzs7OzsKK0ZCNDM7SEVCUkVXIExFVFRFUiBGSU5BTCBQRSBXSVRIIERBR0VTSDtMbzswO1I7MDVFMyAwNUJDOzs7O047Ozs7OworRkI0NDtIRUJSRVcgTEVUVEVSIFBFIFdJVEggREFHRVNIO0xvOzA7UjswNUU0IDA1QkM7Ozs7Tjs7Ozs7CitGQjQ2O0hFQlJFVyBMRVRURVIgVFNBREkgV0lUSCBEQUdFU0g7TG87MDtSOzA1RTYgMDVCQzs7OztOOzs7OzsKK0ZCNDc7SEVCUkVXIExFVFRFUiBRT0YgV0lUSCBEQUdFU0g7TG87MDtSOzA1RTcgMDVCQzs7OztOOzs7OzsKK0ZCNDg7SEVCUkVXIExFVFRFUiBSRVNIIFdJVEggREFHRVNIO0xvOzA7UjswNUU4IDA1QkM7Ozs7Tjs7Ozs7CitGQjQ5O0hFQlJFVyBMRVRURVIgU0hJTiBXSVRIIERBR0VTSDtMbzswO1I7MDVFOSAwNUJDOzs7O047Ozs7OworRkI0QTtIRUJSRVcgTEVUVEVSIFRBViBXSVRIIERBR0VTSDtMbzswO1I7MDVFQSAwNUJDOzs7O047Ozs7OworRkI0QjtIRUJSRVcgTEVUVEVSIFZBViBXSVRIIEhPTEFNO0xvOzA7UjswNUQ1IDA1Qjk7Ozs7Tjs7Ozs7CitGQjRDO0hFQlJFVyBMRVRURVIgQkVUIFdJVEggUkFGRTtMbzswO1I7MDVEMSAwNUJGOzs7O047Ozs7OworRkI0RDtIRUJSRVcgTEVUVEVSIEtBRiBXSVRIIFJBRkU7TG87MDtSOzA1REIgMDVCRjs7OztOOzs7OzsKK0ZCNEU7SEVCUkVXIExFVFRFUiBQRSBXSVRIIFJBRkU7TG87MDtSOzA1RTQgMDVCRjs7OztOOzs7OzsKK0ZCNEY7SEVCUkVXIExJR0FUVVJFIEFMRUYgTEFNRUQ7TG87MDtSOzxjb21wYXQ+IDA1RDAgMDVEQzs7OztOOzs7OzsKK0ZCNTA7QVJBQklDIExFVFRFUiBBTEVGIFdBU0xBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NzE7Ozs7Tjs7Ozs7CitGQjUxO0FSQUJJQyBMRVRURVIgQUxFRiBXQVNMQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjcxOzs7O047Ozs7OworRkI1MjtBUkFCSUMgTEVUVEVSIEJFRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3Qjs7OztOOzs7OzsKK0ZCNTM7QVJBQklDIExFVFRFUiBCRUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2N0I7Ozs7Tjs7Ozs7CitGQjU0O0FSQUJJQyBMRVRURVIgQkVFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY3Qjs7OztOOzs7OzsKK0ZCNTU7QVJBQklDIExFVFRFUiBCRUVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY3Qjs7OztOOzs7OzsKK0ZCNTY7QVJBQklDIExFVFRFUiBQRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY3RTs7OztOOzs7OzsKK0ZCNTc7QVJBQklDIExFVFRFUiBQRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY3RTs7OztOOzs7OzsKK0ZCNTg7QVJBQklDIExFVFRFUiBQRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2N0U7Ozs7Tjs7Ozs7CitGQjU5O0FSQUJJQyBMRVRURVIgUEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY3RTs7OztOOzs7OzsKK0ZCNUE7QVJBQklDIExFVFRFUiBCRUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjgwOzs7O047Ozs7OworRkI1QjtBUkFCSUMgTEVUVEVSIEJFSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2ODA7Ozs7Tjs7Ozs7CitGQjVDO0FSQUJJQyBMRVRURVIgQkVIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2ODA7Ozs7Tjs7Ozs7CitGQjVEO0FSQUJJQyBMRVRURVIgQkVIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjgwOzs7O047Ozs7OworRkI1RTtBUkFCSUMgTEVUVEVSIFRURUhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjdBOzs7O047Ozs7OworRkI1RjtBUkFCSUMgTEVUVEVSIFRURUhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjdBOzs7O047Ozs7OworRkI2MDtBUkFCSUMgTEVUVEVSIFRURUhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY3QTs7OztOOzs7OzsKK0ZCNjE7QVJBQklDIExFVFRFUiBUVEVIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjdBOzs7O047Ozs7OworRkI2MjtBUkFCSUMgTEVUVEVSIFRFSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2N0Y7Ozs7Tjs7Ozs7CitGQjYzO0FSQUJJQyBMRVRURVIgVEVIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY3Rjs7OztOOzs7OzsKK0ZCNjQ7QVJBQklDIExFVFRFUiBURUhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY3Rjs7OztOOzs7OzsKK0ZCNjU7QVJBQklDIExFVFRFUiBURUhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2N0Y7Ozs7Tjs7Ozs7CitGQjY2O0FSQUJJQyBMRVRURVIgVFRFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjc5Ozs7O047Ozs7OworRkI2NztBUkFCSUMgTEVUVEVSIFRURUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY3OTs7OztOOzs7OzsKK0ZCNjg7QVJBQklDIExFVFRFUiBUVEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjc5Ozs7O047Ozs7OworRkI2OTtBUkFCSUMgTEVUVEVSIFRURUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjc5Ozs7O047Ozs7OworRkI2QTtBUkFCSUMgTEVUVEVSIFZFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkE0Ozs7O047Ozs7OworRkI2QjtBUkFCSUMgTEVUVEVSIFZFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkE0Ozs7O047Ozs7OworRkI2QztBUkFCSUMgTEVUVEVSIFZFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZBNDs7OztOOzs7OzsKK0ZCNkQ7QVJBQklDIExFVFRFUiBWRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkE0Ozs7O047Ozs7OworRkI2RTtBUkFCSUMgTEVUVEVSIFBFSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QTY7Ozs7Tjs7Ozs7CitGQjZGO0FSQUJJQyBMRVRURVIgUEVIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZBNjs7OztOOzs7OzsKK0ZCNzA7QVJBQklDIExFVFRFUiBQRUhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZBNjs7OztOOzs7OzsKK0ZCNzE7QVJBQklDIExFVFRFUiBQRUhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QTY7Ozs7Tjs7Ozs7CitGQjcyO0FSQUJJQyBMRVRURVIgRFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjg0Ozs7O047Ozs7OworRkI3MztBUkFCSUMgTEVUVEVSIERZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4NDs7OztOOzs7OzsKK0ZCNzQ7QVJBQklDIExFVFRFUiBEWUVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjg0Ozs7O047Ozs7OworRkI3NTtBUkFCSUMgTEVUVEVSIERZRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjg0Ozs7O047Ozs7OworRkI3NjtBUkFCSUMgTEVUVEVSIE5ZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4Mzs7OztOOzs7OzsKK0ZCNzc7QVJBQklDIExFVFRFUiBOWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2ODM7Ozs7Tjs7Ozs7CitGQjc4O0FSQUJJQyBMRVRURVIgTllFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY4Mzs7OztOOzs7OzsKK0ZCNzk7QVJBQklDIExFVFRFUiBOWUVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY4Mzs7OztOOzs7OzsKK0ZCN0E7QVJBQklDIExFVFRFUiBUQ0hFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjg2Ozs7O047Ozs7OworRkI3QjtBUkFCSUMgTEVUVEVSIFRDSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2ODY7Ozs7Tjs7Ozs7CitGQjdDO0FSQUJJQyBMRVRURVIgVENIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2ODY7Ozs7Tjs7Ozs7CitGQjdEO0FSQUJJQyBMRVRURVIgVENIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjg2Ozs7O047Ozs7OworRkI3RTtBUkFCSUMgTEVUVEVSIFRDSEVIRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4Nzs7OztOOzs7OzsKK0ZCN0Y7QVJBQklDIExFVFRFUiBUQ0hFSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2ODc7Ozs7Tjs7Ozs7CitGQjgwO0FSQUJJQyBMRVRURVIgVENIRUhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY4Nzs7OztOOzs7OzsKK0ZCODE7QVJBQklDIExFVFRFUiBUQ0hFSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY4Nzs7OztOOzs7OzsKK0ZCODI7QVJBQklDIExFVFRFUiBEREFIQUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY4RDs7OztOOzs7OzsKK0ZCODM7QVJBQklDIExFVFRFUiBEREFIQUwgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4RDs7OztOOzs7OzsKK0ZCODQ7QVJBQklDIExFVFRFUiBEQUhBTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjhDOzs7O047Ozs7OworRkI4NTtBUkFCSUMgTEVUVEVSIERBSEFMIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2OEM7Ozs7Tjs7Ozs7CitGQjg2O0FSQUJJQyBMRVRURVIgRFVMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2OEU7Ozs7Tjs7Ozs7CitGQjg3O0FSQUJJQyBMRVRURVIgRFVMIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2OEU7Ozs7Tjs7Ozs7CitGQjg4O0FSQUJJQyBMRVRURVIgRERBTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjg4Ozs7O047Ozs7OworRkI4OTtBUkFCSUMgTEVUVEVSIEREQUwgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY4ODs7OztOOzs7OzsKK0ZCOEE7QVJBQklDIExFVFRFUiBKRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY5ODs7OztOOzs7OzsKK0ZCOEI7QVJBQklDIExFVFRFUiBKRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY5ODs7OztOOzs7OzsKK0ZCOEM7QVJBQklDIExFVFRFUiBSUkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2OTE7Ozs7Tjs7Ozs7CitGQjhEO0FSQUJJQyBMRVRURVIgUlJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjkxOzs7O047Ozs7OworRkI4RTtBUkFCSUMgTEVUVEVSIEtFSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QTk7Ozs7Tjs7Ozs7CitGQjhGO0FSQUJJQyBMRVRURVIgS0VIRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZBOTs7OztOOzs7OzsKK0ZCOTA7QVJBQklDIExFVFRFUiBLRUhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZBOTs7OztOOzs7OzsKK0ZCOTE7QVJBQklDIExFVFRFUiBLRUhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QTk7Ozs7Tjs7Ozs7CitGQjkyO0FSQUJJQyBMRVRURVIgR0FGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QUY7Ozs7Tjs7Ozs7CitGQjkzO0FSQUJJQyBMRVRURVIgR0FGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QUY7Ozs7Tjs7Ozs7CitGQjk0O0FSQUJJQyBMRVRURVIgR0FGIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkFGOzs7O047Ozs7OworRkI5NTtBUkFCSUMgTEVUVEVSIEdBRiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QUY7Ozs7Tjs7Ozs7CitGQjk2O0FSQUJJQyBMRVRURVIgR1VFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkIzOzs7O047Ozs7OworRkI5NztBUkFCSUMgTEVUVEVSIEdVRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZCMzs7OztOOzs7OzsKK0ZCOTg7QVJBQklDIExFVFRFUiBHVUVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkIzOzs7O047Ozs7OworRkI5OTtBUkFCSUMgTEVUVEVSIEdVRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkIzOzs7O047Ozs7OworRkI5QTtBUkFCSUMgTEVUVEVSIE5HT0VIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QjE7Ozs7Tjs7Ozs7CitGQjlCO0FSQUJJQyBMRVRURVIgTkdPRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZCMTs7OztOOzs7OzsKK0ZCOUM7QVJBQklDIExFVFRFUiBOR09FSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZCMTs7OztOOzs7OzsKK0ZCOUQ7QVJBQklDIExFVFRFUiBOR09FSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QjE7Ozs7Tjs7Ozs7CitGQjlFO0FSQUJJQyBMRVRURVIgTk9PTiBHSFVOTkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZCQTs7OztOOzs7OzsKK0ZCOUY7QVJBQklDIExFVFRFUiBOT09OIEdIVU5OQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkJBOzs7O047Ozs7OworRkJBMDtBUkFCSUMgTEVUVEVSIFJOT09OIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QkI7Ozs7Tjs7Ozs7CitGQkExO0FSQUJJQyBMRVRURVIgUk5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZCQjs7OztOOzs7OzsKK0ZCQTI7QVJBQklDIExFVFRFUiBSTk9PTiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZCQjs7OztOOzs7OzsKK0ZCQTM7QVJBQklDIExFVFRFUiBSTk9PTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QkI7Ozs7Tjs7Ozs7CitGQkE0O0FSQUJJQyBMRVRURVIgSEVIIFdJVEggWUVIIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QzA7Ozs7Tjs7Ozs7CitGQkE1O0FSQUJJQyBMRVRURVIgSEVIIFdJVEggWUVIIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QzA7Ozs7Tjs7Ozs7CitGQkE2O0FSQUJJQyBMRVRURVIgSEVIIEdPQUwgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDMTs7OztOOzs7OzsKK0ZCQTc7QVJBQklDIExFVFRFUiBIRUggR09BTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkMxOzs7O047Ozs7OworRkJBODtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkMxOzs7O047Ozs7OworRkJBOTtBUkFCSUMgTEVUVEVSIEhFSCBHT0FMIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZDMTs7OztOOzs7OzsKK0ZCQUE7QVJBQklDIExFVFRFUiBIRUggRE9BQ0hBU0hNRUUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZCRTs7OztOOzs7OzsKK0ZCQUI7QVJBQklDIExFVFRFUiBIRUggRE9BQ0hBU0hNRUUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZCRTs7OztOOzs7OzsKK0ZCQUM7QVJBQklDIExFVFRFUiBIRUggRE9BQ0hBU0hNRUUgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2QkU7Ozs7Tjs7Ozs7CitGQkFEO0FSQUJJQyBMRVRURVIgSEVIIERPQUNIQVNITUVFIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDZCRTs7OztOOzs7OzsKK0ZCQUU7QVJBQklDIExFVFRFUiBZRUggQkFSUkVFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2RDI7Ozs7Tjs7Ozs7CitGQkFGO0FSQUJJQyBMRVRURVIgWUVIIEJBUlJFRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkQyOzs7O047Ozs7OworRkJCMDtBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkQzOzs7O047Ozs7OworRkJCMTtBUkFCSUMgTEVUVEVSIFlFSCBCQVJSRUUgV0lUSCBIQU1aQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkQzOzs7O047Ozs7OworRkJEMztBUkFCSUMgTEVUVEVSIE5HIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QUQ7Ozs7Tjs7Ozs7CitGQkQ0O0FSQUJJQyBMRVRURVIgTkcgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZBRDs7OztOOzs7OzsKK0ZCRDU7QVJBQklDIExFVFRFUiBORyBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDZBRDs7OztOOzs7OzsKK0ZCRDY7QVJBQklDIExFVFRFUiBORyBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2QUQ7Ozs7Tjs7Ozs7CitGQkQ3O0FSQUJJQyBMRVRURVIgVSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkM3Ozs7O047Ozs7OworRkJEODtBUkFCSUMgTEVUVEVSIFUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDNzs7OztOOzs7OzsKK0ZCRDk7QVJBQklDIExFVFRFUiBPRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkM2Ozs7O047Ozs7OworRkJEQTtBUkFCSUMgTEVUVEVSIE9FIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2QzY7Ozs7Tjs7Ozs7CitGQkRCO0FSQUJJQyBMRVRURVIgWVUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDODs7OztOOzs7OzsKK0ZCREM7QVJBQklDIExFVFRFUiBZVSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkM4Ozs7O047Ozs7OworRkJERDtBUkFCSUMgTEVUVEVSIFUgV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjc3Ozs7O047Ozs7OworRkJERTtBUkFCSUMgTEVUVEVSIFZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Q0I7Ozs7Tjs7Ozs7CitGQkRGO0FSQUJJQyBMRVRURVIgVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZDQjs7OztOOzs7OzsKK0ZCRTA7QVJBQklDIExFVFRFUiBLSVJHSElaIE9FIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2QzU7Ozs7Tjs7Ozs7CitGQkUxO0FSQUJJQyBMRVRURVIgS0lSR0hJWiBPRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNkM1Ozs7O047Ozs7OworRkJFMjtBUkFCSUMgTEVUVEVSIEtJUkdISVogWVUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDZDOTs7OztOOzs7OzsKK0ZCRTM7QVJBQklDIExFVFRFUiBLSVJHSElaIFlVIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Qzk7Ozs7Tjs7Ozs7CitGQkU0O0FSQUJJQyBMRVRURVIgRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNkQwOzs7O047Ozs7OworRkJFNTtBUkFCSUMgTEVUVEVSIEUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDZEMDs7OztOOzs7OzsKK0ZCRTY7QVJBQklDIExFVFRFUiBFIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkQwOzs7O047Ozs7OworRkJFNztBUkFCSUMgTEVUVEVSIEUgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNkQwOzs7O047Ozs7OworRkJFODtBUkFCSUMgTEVUVEVSIFVJR0hVUiBLQVpBS0ggS0lSR0hJWiBBTEVGIE1BS1NVUkEgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDk7Ozs7Tjs7Ozs7CitGQkU5O0FSQUJJQyBMRVRURVIgVUlHSFVSIEtBWkFLSCBLSVJHSElaIEFMRUYgTUFLU1VSQSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDk7Ozs7Tjs7Ozs7CitGQkVBO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNjI3Ozs7O047Ozs7OworRkJFQjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBTEVGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDYyNzs7OztOOzs7OzsKK0ZCRUM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNkQ1Ozs7O047Ozs7OworRkJFRDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBBRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2RDU7Ozs7Tjs7Ozs7CitGQkVFO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFdBVyBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI2IDA2NDg7Ozs7Tjs7Ozs7CitGQkVGO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFdBVyBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2NDg7Ozs7Tjs7Ozs7CitGQkYwO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNkM3Ozs7O047Ozs7OworRkJGMTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBVIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDZDNzs7OztOOzs7OzsKK0ZCRjI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggT0UgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNkM2Ozs7O047Ozs7OworRkJGMztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBPRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2QzY7Ozs7Tjs7Ozs7CitGQkY0O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFlVIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDZDODs7OztOOzs7OzsKK0ZCRjU7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggWVUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNkM4Ozs7O047Ozs7OworRkJGNjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDZEMDs7OztOOzs7OzsKK0ZCRjc7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2RDA7Ozs7Tjs7Ozs7CitGQkY4O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEUgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDZEMDs7OztOOzs7OzsKK0ZCRjk7QVJBQklDIExJR0FUVVJFIFVJR0hVUiBLSVJHSElaIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDY0OTs7OztOOzs7OzsKK0ZCRkE7QVJBQklDIExJR0FUVVJFIFVJR0hVUiBLSVJHSElaIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDY0OTs7OztOOzs7OzsKK0ZCRkI7QVJBQklDIExJR0FUVVJFIFVJR0hVUiBLSVJHSElaIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBNQUtTVVJBIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQkZDO0FSQUJJQyBMRVRURVIgRkFSU0kgWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2Q0M7Ozs7Tjs7Ozs7CitGQkZEO0FSQUJJQyBMRVRURVIgRkFSU0kgWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Q0M7Ozs7Tjs7Ozs7CitGQkZFO0FSQUJJQyBMRVRURVIgRkFSU0kgWUVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNkNDOzs7O047Ozs7OworRkJGRjtBUkFCSUMgTEVUVEVSIEZBUlNJIFlFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2Q0M7Ozs7Tjs7Ozs7CitGQzAwO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNjJDOzs7O047Ozs7OworRkMwMTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNiAwNjJEOzs7O047Ozs7OworRkMwMjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDY0NTs7OztOOzs7OzsKK0ZDMDM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDY0OTs7OztOOzs7OzsKK0ZDMDQ7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjYgMDY0QTs7OztOOzs7OzsKK0ZDMDU7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyOCAwNjJDOzs7O047Ozs7OworRkMwNjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjggMDYyRDs7OztOOzs7OzsKK0ZDMDc7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyOCAwNjJFOzs7O047Ozs7OworRkMwODtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI4IDA2NDU7Ozs7Tjs7Ozs7CitGQzA5O0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyOCAwNjQ5Ozs7O047Ozs7OworRkMwQTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjggMDY0QTs7OztOOzs7OzsKK0ZDMEI7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQSAwNjJDOzs7O047Ozs7OworRkMwQztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkEgMDYyRDs7OztOOzs7OzsKK0ZDMEQ7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQSAwNjJFOzs7O047Ozs7OworRkMwRTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBIDA2NDU7Ozs7Tjs7Ozs7CitGQzBGO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQSAwNjQ5Ozs7O047Ozs7OworRkMxMDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkEgMDY0QTs7OztOOzs7OzsKK0ZDMTE7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkIgMDYyQzs7OztOOzs7OzsKK0ZDMTI7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkIgMDY0NTs7OztOOzs7OzsKK0ZDMTM7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQiAwNjQ5Ozs7O047Ozs7OworRkMxNDtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJCIDA2NEE7Ozs7Tjs7Ozs7CitGQzE1O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZDMTY7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZDMTc7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRCAwNjJDOzs7O047Ozs7OworRkMxODtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggTUVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGQzE5O0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJFIDA2MkM7Ozs7Tjs7Ozs7CitGQzFBO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkUgMDYyRDs7OztOOzs7OzsKK0ZDMUI7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkUgMDY0NTs7OztOOzs7OzsKK0ZDMUM7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDYyQzs7OztOOzs7OzsKK0ZDMUQ7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMyAwNjJEOzs7O047Ozs7OworRkMxRTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMyAwNjJFOzs7O047Ozs7OworRkMxRjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzMyAwNjQ1Ozs7O047Ozs7OworRkMyMDtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDYyRDs7OztOOzs7OzsKK0ZDMjE7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjQ1Ozs7O047Ozs7OworRkMyMjtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2IDA2MkM7Ozs7Tjs7Ozs7CitGQzIzO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjJEOzs7O047Ozs7OworRkMyNDtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2IDA2MkU7Ozs7Tjs7Ozs7CitGQzI1O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzYgMDY0NTs7OztOOzs7OzsKK0ZDMjY7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM3IDA2MkQ7Ozs7Tjs7Ozs7CitGQzI3O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzcgMDY0NTs7OztOOzs7OzsKK0ZDMjg7QVJBQklDIExJR0FUVVJFIFpBSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzOCAwNjQ1Ozs7O047Ozs7OworRkMyOTtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM5IDA2MkM7Ozs7Tjs7Ozs7CitGQzJBO0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzkgMDY0NTs7OztOOzs7OzsKK0ZDMkI7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjNBIDA2MkM7Ozs7Tjs7Ozs7CitGQzJDO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzQSAwNjQ1Ozs7O047Ozs7OworRkMyRDtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQxIDA2MkM7Ozs7Tjs7Ozs7CitGQzJFO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MSAwNjJEOzs7O047Ozs7OworRkMyRjtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQxIDA2MkU7Ozs7Tjs7Ozs7CitGQzMwO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDEgMDY0NTs7OztOOzs7OzsKK0ZDMzE7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQxIDA2NDk7Ozs7Tjs7Ozs7CitGQzMyO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MSAwNjRBOzs7O047Ozs7OworRkMzMztBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDIgMDYyRDs7OztOOzs7OzsKK0ZDMzQ7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MiAwNjQ1Ozs7O047Ozs7OworRkMzNTtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDIgMDY0OTs7OztOOzs7OzsKK0ZDMzY7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQyIDA2NEE7Ozs7Tjs7Ozs7CitGQzM3O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDYyNzs7OztOOzs7OzsKK0ZDMzg7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEpFRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MyAwNjJDOzs7O047Ozs7OworRkMzOTtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDYyRDs7OztOOzs7OzsKK0ZDM0E7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEtIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MyAwNjJFOzs7O047Ozs7OworRkMzQjtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTEFNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDY0NDs7OztOOzs7OzsKK0ZDM0M7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MyAwNjQ1Ozs7O047Ozs7OworRkMzRDtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDMgMDY0OTs7OztOOzs7OzsKK0ZDM0U7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQzIDA2NEE7Ozs7Tjs7Ozs7CitGQzNGO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDYyQzs7OztOOzs7OzsKK0ZDNDA7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2MkQ7Ozs7Tjs7Ozs7CitGQzQxO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDYyRTs7OztOOzs7OzsKK0ZDNDI7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjQ1Ozs7O047Ozs7OworRkM0MztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDY0OTs7OztOOzs7OzsKK0ZDNDQ7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2NEE7Ozs7Tjs7Ozs7CitGQzQ1O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2MkM7Ozs7Tjs7Ozs7CitGQzQ2O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZDNDc7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDUgMDYyRTs7OztOOzs7OzsKK0ZDNDg7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZDNDk7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NSAwNjQ5Ozs7O047Ozs7OworRkM0QTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGQzRCO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ2IDA2MkM7Ozs7Tjs7Ozs7CitGQzRDO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDYgMDYyRDs7OztOOzs7OzsKK0ZDNEQ7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDYgMDYyRTs7OztOOzs7OzsKK0ZDNEU7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDYgMDY0NTs7OztOOzs7OzsKK0ZDNEY7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NiAwNjQ5Ozs7O047Ozs7OworRkM1MDtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ2IDA2NEE7Ozs7Tjs7Ozs7CitGQzUxO0FSQUJJQyBMSUdBVFVSRSBIRUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDcgMDYyQzs7OztOOzs7OzsKK0ZDNTI7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NyAwNjQ1Ozs7O047Ozs7OworRkM1MztBUkFCSUMgTElHQVRVUkUgSEVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDcgMDY0OTs7OztOOzs7OzsKK0ZDNTQ7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ3IDA2NEE7Ozs7Tjs7Ozs7CitGQzU1O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NEEgMDYyQzs7OztOOzs7OzsKK0ZDNTY7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBIDA2MkQ7Ozs7Tjs7Ozs7CitGQzU3O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBLSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NEEgMDYyRTs7OztOOzs7OzsKK0ZDNTg7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0QSAwNjQ1Ozs7O047Ozs7OworRkM1OTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NEEgMDY0OTs7OztOOzs7OzsKK0ZDNUE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjRBIDA2NEE7Ozs7Tjs7Ozs7CitGQzVCO0FSQUJJQyBMSUdBVFVSRSBUSEFMIFdJVEggU1VQRVJTQ1JJUFQgQUxFRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMwIDA2NzA7Ozs7Tjs7Ozs7CitGQzVDO0FSQUJJQyBMSUdBVFVSRSBSRUggV0lUSCBTVVBFUlNDUklQVCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzEgMDY3MDs7OztOOzs7OzsKK0ZDNUQ7QVJBQklDIExJR0FUVVJFIEFMRUYgTUFLU1VSQSBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0OSAwNjcwOzs7O047Ozs7OworRkM1RTtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggREFNTUFUQU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjRDIDA2NTE7Ozs7Tjs7Ozs7CitGQzVGO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBLQVNSQVRBTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEQgMDY1MTs7OztOOzs7OzsKK0ZDNjA7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIEZBVEhBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0RSAwNjUxOzs7O047Ozs7OworRkM2MTtBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggREFNTUEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjRGIDA2NTE7Ozs7Tjs7Ozs7CitGQzYyO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBLQVNSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NTAgMDY1MTs7OztOOzs7OzsKK0ZDNjM7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjUxIDA2NzA7Ozs7Tjs7Ozs7CitGQzY0O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2MzE7Ozs7Tjs7Ozs7CitGQzY1O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFpBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNiAwNjMyOzs7O047Ozs7OworRkM2NjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjYgMDY0NTs7OztOOzs7OzsKK0ZDNjc7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2NDY7Ozs7Tjs7Ozs7CitGQzY4O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2NDk7Ozs7Tjs7Ozs7CitGQzY5O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI2IDA2NEE7Ozs7Tjs7Ozs7CitGQzZBO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjMxOzs7O047Ozs7OworRkM2QjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2MzI7Ozs7Tjs7Ozs7CitGQzZDO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjggMDY0NTs7OztOOzs7OzsKK0ZDNkQ7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOCAwNjQ2Ozs7O047Ozs7OworRkM2RTtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjggMDY0OTs7OztOOzs7OzsKK0ZDNkY7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjI4IDA2NEE7Ozs7Tjs7Ozs7CitGQzcwO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjMxOzs7O047Ozs7OworRkM3MTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggWkFJTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2MzI7Ozs7Tjs7Ozs7CitGQzcyO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDY0NTs7OztOOzs7OzsKK0ZDNzM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjQ2Ozs7O047Ozs7OworRkM3NDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDY0OTs7OztOOzs7OzsKK0ZDNzU7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2NEE7Ozs7Tjs7Ozs7CitGQzc2O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkIgMDYzMTs7OztOOzs7OzsKK0ZDNzc7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkIgMDYzMjs7OztOOzs7OzsKK0ZDNzg7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkIgMDY0NTs7OztOOzs7OzsKK0ZDNzk7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkIgMDY0Njs7OztOOzs7OzsKK0ZDN0E7QVJBQklDIExJR0FUVVJFIFRIRUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQiAwNjQ5Ozs7O047Ozs7OworRkM3QjtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJCIDA2NEE7Ozs7Tjs7Ozs7CitGQzdDO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MSAwNjQ5Ozs7O047Ozs7OworRkM3RDtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDEgMDY0QTs7OztOOzs7OzsKK0ZDN0U7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQyIDA2NDk7Ozs7Tjs7Ozs7CitGQzdGO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MiAwNjRBOzs7O047Ozs7OworRkM4MDtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggQUxFRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzIDA2Mjc7Ozs7Tjs7Ozs7CitGQzgxO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBMQU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MyAwNjQ0Ozs7O047Ozs7OworRkM4MjtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQzIDA2NDU7Ozs7Tjs7Ozs7CitGQzgzO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MyAwNjQ5Ozs7O047Ozs7OworRkM4NDtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDY0QTs7OztOOzs7OzsKK0ZDODU7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjQ1Ozs7O047Ozs7OworRkM4NjtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDY0OTs7OztOOzs7OzsKK0ZDODc7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2NEE7Ozs7Tjs7Ozs7CitGQzg4O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggQUxFRiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ1IDA2Mjc7Ozs7Tjs7Ozs7CitGQzg5O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGQzhBO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYzMTs7OztOOzs7OzsKK0ZDOEI7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDYzMjs7OztOOzs7OzsKK0ZDOEM7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDY0NTs7OztOOzs7OzsKK0ZDOEQ7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBOT09OIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDY0Njs7OztOOzs7OzsKK0ZDOEU7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjQ5Ozs7O047Ozs7OworRkM4RjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2NEE7Ozs7Tjs7Ozs7CitGQzkwO0FSQUJJQyBMSUdBVFVSRSBBTEVGIE1BS1NVUkEgV0lUSCBTVVBFUlNDUklQVCBBTEVGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDkgMDY3MDs7OztOOzs7OzsKK0ZDOTE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2MzE7Ozs7Tjs7Ozs7CitGQzkyO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBaQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDYzMjs7OztOOzs7OzsKK0ZDOTM7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjQ1Ozs7O047Ozs7OworRkM5NDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTk9PTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2NDY7Ozs7Tjs7Ozs7CitGQzk1O0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjQ5Ozs7O047Ozs7OworRkM5NjtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDY0QTs7OztOOzs7OzsKK0ZDOTc7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNiAwNjJDOzs7O047Ozs7OworRkM5ODtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjYgMDYyRDs7OztOOzs7OzsKK0ZDOTk7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNiAwNjJFOzs7O047Ozs7OworRkM5QTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEFNWkEgQUJPVkUgV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI2IDA2NDU7Ozs7Tjs7Ozs7CitGQzlCO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNiAwNjQ3Ozs7O047Ozs7OworRkM5QztBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyOCAwNjJDOzs7O047Ozs7OworRkM5RDtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI4IDA2MkQ7Ozs7Tjs7Ozs7CitGQzlFO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI4IDA2MkU7Ozs7Tjs7Ozs7CitGQzlGO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjI4IDA2NDU7Ozs7Tjs7Ozs7CitGQ0EwO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MjggMDY0Nzs7OztOOzs7OzsKK0ZDQTE7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDYyQzs7OztOOzs7OzsKK0ZDQTI7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjJEOzs7O047Ozs7OworRkNBMztBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjJFOzs7O047Ozs7OworRkNBNDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjQ1Ozs7O047Ozs7OworRkNBNTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2NDc7Ozs7Tjs7Ozs7CitGQ0E2O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQiAwNjQ1Ozs7O047Ozs7OworRkNBNztBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQyAwNjJEOzs7O047Ozs7OworRkNBODtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZDQTk7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZDQUE7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZDQUI7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJFIDA2MkM7Ozs7Tjs7Ozs7CitGQ0FDO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyRSAwNjQ1Ozs7O047Ozs7OworRkNBRDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDYyQzs7OztOOzs7OzsKK0ZDQUU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDYyRDs7OztOOzs7OzsKK0ZDQUY7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2MkU7Ozs7Tjs7Ozs7CitGQ0IwO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjQ1Ozs7O047Ozs7OworRkNCMTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM1IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0IyO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM1IDA2MkU7Ozs7Tjs7Ozs7CitGQ0IzO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM1IDA2NDU7Ozs7Tjs7Ozs7CitGQ0I0O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2IDA2MkM7Ozs7Tjs7Ozs7CitGQ0I1O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzYgMDYyRDs7OztOOzs7OzsKK0ZDQjY7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzYgMDYyRTs7OztOOzs7OzsKK0ZDQjc7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzYgMDY0NTs7OztOOzs7OzsKK0ZDQjg7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNyAwNjJEOzs7O047Ozs7OworRkNCOTtBUkFCSUMgTElHQVRVUkUgWkFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzOCAwNjQ1Ozs7O047Ozs7OworRkNCQTtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzOSAwNjJDOzs7O047Ozs7OworRkNCQjtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzOSAwNjQ1Ozs7O047Ozs7OworRkNCQztBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjNBIDA2MkM7Ozs7Tjs7Ozs7CitGQ0JEO0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2M0EgMDY0NTs7OztOOzs7OzsKK0ZDQkU7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDEgMDYyQzs7OztOOzs7OzsKK0ZDQkY7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MSAwNjJEOzs7O047Ozs7OworRkNDMDtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MSAwNjJFOzs7O047Ozs7OworRkNDMTtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MSAwNjQ1Ozs7O047Ozs7OworRkNDMjtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQyIDA2MkQ7Ozs7Tjs7Ozs7CitGQ0MzO0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQyIDA2NDU7Ozs7Tjs7Ozs7CitGQ0M0O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQzIDA2MkM7Ozs7Tjs7Ozs7CitGQ0M1O0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDMgMDYyRDs7OztOOzs7OzsKK0ZDQzY7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDMgMDYyRTs7OztOOzs7OzsKK0ZDQzc7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIExBTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MyAwNjQ0Ozs7O047Ozs7OworRkNDODtBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0MyAwNjQ1Ozs7O047Ozs7OworRkNDOTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJDOzs7O047Ozs7OworRkNDQTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0NCO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2MkU7Ozs7Tjs7Ozs7CitGQ0NDO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2NDU7Ozs7Tjs7Ozs7CitGQ0NEO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDY0Nzs7OztOOzs7OzsKK0ZDQ0U7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkM7Ozs7Tjs7Ozs7CitGQ0NGO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0QwO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJFOzs7O047Ozs7OworRkNEMTtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZDRDI7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2MkM7Ozs7Tjs7Ozs7CitGQ0QzO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2MkQ7Ozs7Tjs7Ozs7CitGQ0Q0O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjJFOzs7O047Ozs7OworRkNENTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDY0NTs7OztOOzs7OzsKK0ZDRDY7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDY0Nzs7OztOOzs7OzsKK0ZDRDc7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDcgMDYyQzs7OztOOzs7OzsKK0ZDRDg7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDcgMDY0NTs7OztOOzs7OzsKK0ZDRDk7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIFNVUEVSU0NSSVBUIEFMRUYgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDcgMDY3MDs7OztOOzs7OzsKK0ZDREE7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NEEgMDYyQzs7OztOOzs7OzsKK0ZDREI7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0QSAwNjJEOzs7O047Ozs7OworRkNEQztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0QSAwNjJFOzs7O047Ozs7OworRkNERDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0QSAwNjQ1Ozs7O047Ozs7OworRkNERTtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjRBIDA2NDc7Ozs7Tjs7Ozs7CitGQ0RGO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjI2IDA2NDU7Ozs7Tjs7Ozs7CitGQ0UwO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQU1aQSBBQk9WRSBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MjYgMDY0Nzs7OztOOzs7OzsKK0ZDRTE7QVJBQklDIExJR0FUVVJFIEJFSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjI4IDA2NDU7Ozs7Tjs7Ozs7CitGQ0UyO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjI4IDA2NDc7Ozs7Tjs7Ozs7CitGQ0UzO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyQSAwNjQ1Ozs7O047Ozs7OworRkNFNDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyQSAwNjQ3Ozs7O047Ozs7OworRkNFNTtBUkFCSUMgTElHQVRVUkUgVEhFSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJCIDA2NDU7Ozs7Tjs7Ozs7CitGQ0U2O0FSQUJJQyBMSUdBVFVSRSBUSEVIIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyQiAwNjQ3Ozs7O047Ozs7OworRkNFNztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjMzIDA2NDU7Ozs7Tjs7Ozs7CitGQ0U4O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzMyAwNjQ3Ozs7O047Ozs7OworRkNFOTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNCAwNjQ1Ozs7O047Ozs7OworRkNFQTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM0IDA2NDc7Ozs7Tjs7Ozs7CitGQ0VCO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBMQU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQzIDA2NDQ7Ozs7Tjs7Ozs7CitGQ0VDO0FSQUJJQyBMSUdBVFVSRSBLQUYgV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MyAwNjQ1Ozs7O047Ozs7OworRkNFRDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDQgMDY0NTs7OztOOzs7OzsKK0ZDRUU7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0NiAwNjQ1Ozs7O047Ozs7OworRkNFRjtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEhFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDYgMDY0Nzs7OztOOzs7OzsKK0ZDRjA7QVJBQklDIExJR0FUVVJFIFlFSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjRBIDA2NDU7Ozs7Tjs7Ozs7CitGQ0YxO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjRBIDA2NDc7Ozs7Tjs7Ozs7CitGQ0YyO0FSQUJJQyBMSUdBVFVSRSBTSEFEREEgV0lUSCBGQVRIQSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY0RSAwNjUxOzs7O047Ozs7OworRkNGMztBUkFCSUMgTElHQVRVUkUgU0hBRERBIFdJVEggREFNTUEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NEYgMDY1MTs7OztOOzs7OzsKK0ZDRjQ7QVJBQklDIExJR0FUVVJFIFNIQUREQSBXSVRIIEtBU1JBIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjUwIDA2NTE7Ozs7Tjs7Ozs7CitGQ0Y1O0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNyAwNjQ5Ozs7O047Ozs7OworRkNGNjtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzcgMDY0QTs7OztOOzs7OzsKK0ZDRjc7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM5IDA2NDk7Ozs7Tjs7Ozs7CitGQ0Y4O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzOSAwNjRBOzs7O047Ozs7OworRkNGOTtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzQSAwNjQ5Ozs7O047Ozs7OworRkNGQTtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzQSAwNjRBOzs7O047Ozs7OworRkNGQjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzIDA2NDk7Ozs7Tjs7Ozs7CitGQ0ZDO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzMgMDY0QTs7OztOOzs7OzsKK0ZDRkQ7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggQUxFRiBNQUtTVVJBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzQgMDY0OTs7OztOOzs7OzsKK0ZDRkU7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzQgMDY0QTs7OztOOzs7OzsKK0ZDRkY7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDAwO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRCAwNjRBOzs7O047Ozs7OworRkQwMTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJDIDA2NDk7Ozs7Tjs7Ozs7CitGRDAyO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEMDM7QVJBQklDIExJR0FUVVJFIEtIQUggV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRSAwNjQ5Ozs7O047Ozs7OworRkQwNDtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIFlFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGRDA1O0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBBTEVGIE1BS1NVUkEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjQ5Ozs7O047Ozs7OworRkQwNjtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzUgMDY0QTs7OztOOzs7OzsKK0ZEMDc7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM2IDA2NDk7Ozs7Tjs7Ozs7CitGRDA4O0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBZRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNiAwNjRBOzs7O047Ozs7OworRkQwOTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzQgMDYyQzs7OztOOzs7OzsKK0ZEMEE7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzQgMDYyRDs7OztOOzs7OzsKK0ZEMEI7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM0IDA2MkU7Ozs7Tjs7Ozs7CitGRDBDO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNCAwNjQ1Ozs7O047Ozs7OworRkQwRDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBSRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNCAwNjMxOzs7O047Ozs7OworRkQwRTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzIDA2MzE7Ozs7Tjs7Ozs7CitGRDBGO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBSRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjMxOzs7O047Ozs7OworRkQxMDtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggUkVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzYgMDYzMTs7OztOOzs7OzsKK0ZEMTE7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM3IDA2NDk7Ozs7Tjs7Ozs7CitGRDEyO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNyAwNjRBOzs7O047Ozs7OworRkQxMztBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzkgMDY0OTs7OztOOzs7OzsKK0ZEMTQ7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM5IDA2NEE7Ozs7Tjs7Ozs7CitGRDE1O0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjNBIDA2NDk7Ozs7Tjs7Ozs7CitGRDE2O0FSQUJJQyBMSUdBVFVSRSBHSEFJTiBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjNBIDA2NEE7Ozs7Tjs7Ozs7CitGRDE3O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDY0OTs7OztOOzs7OzsKK0ZEMTg7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMyAwNjRBOzs7O047Ozs7OworRkQxOTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjQ5Ozs7O047Ozs7OworRkQxQTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjRBOzs7O047Ozs7OworRkQxQjtBUkFCSUMgTElHQVRVUkUgSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZEMUM7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGRDFEO0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDY0OTs7OztOOzs7OzsKK0ZEMUU7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQyAwNjRBOzs7O047Ozs7OworRkQxRjtBUkFCSUMgTElHQVRVUkUgS0hBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJFIDA2NDk7Ozs7Tjs7Ozs7CitGRDIwO0FSQUJJQyBMSUdBVFVSRSBLSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEMjE7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM1IDA2NDk7Ozs7Tjs7Ozs7CitGRDIyO0FSQUJJQyBMSUdBVFVSRSBTQUQgV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNSAwNjRBOzs7O047Ozs7OworRkQyMztBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzYgMDY0OTs7OztOOzs7OzsKK0ZEMjQ7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2IDA2NEE7Ozs7Tjs7Ozs7CitGRDI1O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEpFRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjJDOzs7O047Ozs7OworRkQyNjtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjJEOzs7O047Ozs7OworRkQyNztBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBLSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDYyRTs7OztOOzs7OzsKK0ZEMjg7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2NDU7Ozs7Tjs7Ozs7CitGRDI5O0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MzE7Ozs7Tjs7Ozs7CitGRDJBO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggUkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzMgMDYzMTs7OztOOzs7OzsKK0ZEMkI7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM1IDA2MzE7Ozs7Tjs7Ozs7CitGRDJDO0FSQUJJQyBMSUdBVFVSRSBEQUQgV0lUSCBSRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNiAwNjMxOzs7O047Ozs7OworRkQyRDtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM0IDA2MkM7Ozs7Tjs7Ozs7CitGRDJFO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNCAwNjJEOzs7O047Ozs7OworRkQyRjtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM0IDA2MkU7Ozs7Tjs7Ozs7CitGRDMwO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzQgMDY0NTs7OztOOzs7OzsKK0ZEMzE7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDY0Nzs7OztOOzs7OzsKK0ZEMzI7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEVIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM0IDA2NDc7Ozs7Tjs7Ozs7CitGRDMzO0FSQUJJQyBMSUdBVFVSRSBUQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM3IDA2NDU7Ozs7Tjs7Ozs7CitGRDM0O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggSkVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzMgMDYyQzs7OztOOzs7OzsKK0ZEMzU7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBIQUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjMzIDA2MkQ7Ozs7Tjs7Ozs7CitGRDM2O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggS0hBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzMgMDYyRTs7OztOOzs7OzsKK0ZEMzc7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQgMDYyQzs7OztOOzs7OzsKK0ZEMzg7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNCAwNjJEOzs7O047Ozs7OworRkQzOTtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBLSEFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNCAwNjJFOzs7O047Ozs7OworRkQzQTtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzcgMDY0NTs7OztOOzs7OzsKK0ZEM0I7QVJBQklDIExJR0FUVVJFIFpBSCBXSVRIIE1FRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM4IDA2NDU7Ozs7Tjs7Ozs7CitGRDNDO0FSQUJJQyBMSUdBVFVSRSBBTEVGIFdJVEggRkFUSEFUQU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNyAwNjRCOzs7O047Ozs7OworRkQzRDtBUkFCSUMgTElHQVRVUkUgQUxFRiBXSVRIIEZBVEhBVEFOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjcgMDY0Qjs7OztOOzs7OzsKK0ZEM0U7T1JOQVRFIExFRlQgUEFSRU5USEVTSVM7UHM7MDtPTjs7Ozs7Tjs7Ozs7CitGRDNGO09STkFURSBSSUdIVCBQQVJFTlRIRVNJUztQZTswO09OOzs7OztOOzs7OzsKK0ZENTA7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZENTE7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhBSCBXSVRIIEpFRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGRDUyO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBIQUggV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJBIDA2MkQgMDYyQzs7OztOOzs7OzsKK0ZENTM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ1NDtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ1NTtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkEgMDY0NSAwNjJDOzs7O047Ozs7OworRkQ1NjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDU3O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIFdJVEggS0hBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQSAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGRDU4O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggTUVFTSBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJDIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENTk7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjJDIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENUE7QVJBQklDIExJR0FUVVJFIEhBSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyRCAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGRDVCO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkQgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkQ1QztBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEhBSCBXSVRIIEpFRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDYyRCAwNjJDOzs7O047Ozs7OworRkQ1RDtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEpFRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDYyQyAwNjJEOzs7O047Ozs7OworRkQ1RTtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEpFRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMyAwNjJDIDA2NDk7Ozs7Tjs7Ozs7CitGRDVGO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENjA7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjMzIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENjE7QVJBQklDIExJR0FUVVJFIFNFRU4gV0lUSCBNRUVNIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzMyAwNjQ1IDA2MkM7Ozs7Tjs7Ozs7CitGRDYyO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMyAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDYzO0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzMgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2NDtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggSEFIIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzUgMDYyRCAwNjJEOzs7O047Ozs7OworRkQ2NTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggSEFIIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM1IDA2MkQgMDYyRDs7OztOOzs7OzsKK0ZENjY7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzUgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ2NztBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkQ2ODtBUkFCSUMgTElHQVRVUkUgU0hFRU4gV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM0IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZENjk7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZENkE7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBXSVRIIEtIQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjQ1IDA2MkU7Ozs7Tjs7Ozs7CitGRDZCO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM0IDA2NDUgMDYyRTs7OztOOzs7OzsKK0ZENkM7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNCAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDZEO0FSQUJJQyBMSUdBVFVSRSBTSEVFTiBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM0IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZENkU7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2IDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZENkY7QVJBQklDIExJR0FUVVJFIERBRCBXSVRIIEtIQUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzYgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ3MDtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzYgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ3MTtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM3IDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZENzI7QVJBQklDIExJR0FUVVJFIFRBSCBXSVRIIE1FRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzcgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ3MztBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzcgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ3NDtBUkFCSUMgTElHQVRVUkUgVEFIIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM3IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZENzU7QVJBQklDIExJR0FUVVJFIEFJTiBXSVRIIEpFRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzkgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkQ3NjtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDc3O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzOSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDc4O0FSQUJJQyBMSUdBVFVSRSBBSU4gV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzkgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkQ3OTtBUkFCSUMgTElHQVRVUkUgR0hBSU4gV0lUSCBNRUVNIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjNBIDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEN0E7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjNBIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEN0I7QVJBQklDIExJR0FUVVJFIEdIQUlOIFdJVEggTUVFTSBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjNBIDA2NDUgMDY0OTs7OztOOzs7OzsKK0ZEN0M7QVJBQklDIExJR0FUVVJFIEZFSCBXSVRIIEtIQUggV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDEgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ3RDtBUkFCSUMgTElHQVRVUkUgRkVIIFdJVEggS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDEgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ3RTtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQyIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZEN0Y7QVJBQklDIExJR0FUVVJFIFFBRiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDIgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkQ4MDtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSEFIIFdJVEggTUVFTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZEODE7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEODI7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MkQgMDY0OTs7OztOOzs7OzsKK0ZEODM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2MkMgMDYyQzs7OztOOzs7OzsKK0ZEODQ7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gV0lUSCBKRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyQyAwNjJDOzs7O047Ozs7OworRkQ4NTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggS0hBSCBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDg2O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBLSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjJFIDA2NDU7Ozs7Tjs7Ozs7CitGRDg3O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBNRUVNIFdJVEggSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDY0NSAwNjJEOzs7O047Ozs7OworRkQ4ODtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggTUVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NCAwNjQ1IDA2MkQ7Ozs7Tjs7Ozs7CitGRDg5O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJEIDA2MkM7Ozs7Tjs7Ozs7CitGRDhBO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSEFIIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJEIDA2NDU7Ozs7Tjs7Ozs7CitGRDhCO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDUgMDYyRCAwNjRBOzs7O047Ozs7OworRkQ4QztBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gV0lUSCBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyQyAwNjJEOzs7O047Ozs7OworRkQ4RDtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEOEU7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBLSEFIIFdJVEggSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NSAwNjJFIDA2MkM7Ozs7Tjs7Ozs7CitGRDhGO0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggS0hBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDUgMDYyRSAwNjQ1Ozs7O047Ozs7OworRkQ5MjtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gV0lUSCBLSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1IDA2MkMgMDYyRTs7OztOOzs7OzsKK0ZEOTM7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIE1FRU0gV0lUSCBKRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ3IDA2NDUgMDYyQzs7OztOOzs7OzsKK0ZEOTQ7QVJBQklDIExJR0FUVVJFIEhFSCBXSVRIIE1FRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ3IDA2NDUgMDY0NTs7OztOOzs7OzsKK0ZEOTU7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIQUggV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2IDA2MkQgMDY0NTs7OztOOzs7OzsKK0ZEOTY7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIQUggV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjJEIDA2NDk7Ozs7Tjs7Ozs7CitGRDk3O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGRDk4O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDYgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkQ5OTtBUkFCSUMgTElHQVRVUkUgTk9PTiBXSVRIIEpFRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjJDIDA2NDk7Ozs7Tjs7Ozs7CitGRDlBO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEOUI7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDYgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkQ5QztBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDlEO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBNRUVNIFdJVEggTUVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0QSAwNjQ1IDA2NDU7Ozs7Tjs7Ozs7CitGRDlFO0FSQUJJQyBMSUdBVFVSRSBCRUggV0lUSCBLSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjggMDYyRSAwNjRBOzs7O047Ozs7OworRkQ5RjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQTA7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIEpFRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjJDIDA2NDk7Ozs7Tjs7Ozs7CitGREExO0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBLSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDYyRSAwNjRBOzs7O047Ozs7OworRkRBMjtBUkFCSUMgTElHQVRVUkUgVEVIIFdJVEggS0hBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJBIDA2MkUgMDY0OTs7OztOOzs7OzsKK0ZEQTM7QVJBQklDIExJR0FUVVJFIFRFSCBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQSAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREE0O0FSQUJJQyBMSUdBVFVSRSBURUggV0lUSCBNRUVNIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkEgMDY0NSAwNjQ5Ozs7O047Ozs7OworRkRBNTtBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQyAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREE2O0FSQUJJQyBMSUdBVFVSRSBKRUVNIFdJVEggSEFIIFdJVEggQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkMgMDYyRCAwNjQ5Ozs7O047Ozs7OworRkRBNztBUkFCSUMgTElHQVRVUkUgSkVFTSBXSVRIIE1FRU0gV0lUSCBBTEVGIE1BS1NVUkEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQyAwNjQ1IDA2NDk7Ozs7Tjs7Ozs7CitGREE4O0FSQUJJQyBMSUdBVFVSRSBTRUVOIFdJVEggS0hBSCBXSVRIIEFMRUYgTUFLU1VSQSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzIDA2MkUgMDY0OTs7OztOOzs7OzsKK0ZEQTk7QVJBQklDIExJR0FUVVJFIFNBRCBXSVRIIEhBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM1IDA2MkQgMDY0QTs7OztOOzs7OzsKK0ZEQUE7QVJBQklDIExJR0FUVVJFIFNIRUVOIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzQgMDYyRCAwNjRBOzs7O047Ozs7OworRkRBQjtBUkFCSUMgTElHQVRVUkUgREFEIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzYgMDYyRCAwNjRBOzs7O047Ozs7OworRkRBQztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZEQUQ7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREFFO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0QSAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREFGO0FSQUJJQyBMSUdBVFVSRSBZRUggV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEEgMDYyQyAwNjRBOzs7O047Ozs7OworRkRCMDtBUkFCSUMgTElHQVRVUkUgWUVIIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjRBIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQjE7QVJBQklDIExJR0FUVVJFIE1FRU0gV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDUgMDY0NSAwNjRBOzs7O047Ozs7OworRkRCMjtBUkFCSUMgTElHQVRVUkUgUUFGIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQyIDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQjM7QVJBQklDIExJR0FUVVJFIE5PT04gV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NiAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREI0O0FSQUJJQyBMSUdBVFVSRSBRQUYgV0lUSCBNRUVNIFdJVEggSEFIIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQyIDA2NDUgMDYyRDs7OztOOzs7OzsKK0ZEQjU7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEhBSCBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDQgMDYyRCAwNjQ1Ozs7O047Ozs7OworRkRCNjtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggTUVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM5IDA2NDUgMDY0QTs7OztOOzs7OzsKK0ZEQjc7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0MyAwNjQ1IDA2NEE7Ozs7Tjs7Ozs7CitGREI4O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBXSVRIIEhBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0NiAwNjJDIDA2MkQ7Ozs7Tjs7Ozs7CitGREI5O0FSQUJJQyBMSUdBVFVSRSBNRUVNIFdJVEggS0hBSCBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ1IDA2MkUgMDY0QTs7OztOOzs7OzsKK0ZEQkE7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEpFRU0gV0lUSCBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0IDA2MkMgMDY0NTs7OztOOzs7OzsKK0ZEQkI7QVJBQklDIExJR0FUVVJFIEtBRiBXSVRIIE1FRU0gV0lUSCBNRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDMgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkRCQztBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggSkVFTSBXSVRIIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjJDIDA2NDU7Ozs7Tjs7Ozs7CitGREJEO0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBXSVRIIEhBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MkMgMDYyRDs7OztOOzs7OzsKK0ZEQkU7QVJBQklDIExJR0FUVVJFIEpFRU0gV0lUSCBIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQyAwNjJEIDA2NEE7Ozs7Tjs7Ozs7CitGREJGO0FSQUJJQyBMSUdBVFVSRSBIQUggV0lUSCBKRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkQgMDYyQyAwNjRBOzs7O047Ozs7OworRkRDMDtBUkFCSUMgTElHQVRVUkUgTUVFTSBXSVRIIEpFRU0gV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NSAwNjJDIDA2NEE7Ozs7Tjs7Ozs7CitGREMxO0FSQUJJQyBMSUdBVFVSRSBGRUggV0lUSCBNRUVNIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDEgMDY0NSAwNjRBOzs7O047Ozs7OworRkRDMjtBUkFCSUMgTElHQVRVUkUgQkVIIFdJVEggSEFIIFdJVEggWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjggMDYyRCAwNjRBOzs7O047Ozs7OworRkRDMztBUkFCSUMgTElHQVRVUkUgS0FGIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDMgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkRDNDtBUkFCSUMgTElHQVRVUkUgQUlOIFdJVEggSkVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzkgMDYyQyAwNjQ1Ozs7O047Ozs7OworRkRDNTtBUkFCSUMgTElHQVRVUkUgU0FEIFdJVEggTUVFTSBXSVRIIE1FRU0gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzUgMDY0NSAwNjQ1Ozs7O047Ozs7OworRkRDNjtBUkFCSUMgTElHQVRVUkUgU0VFTiBXSVRIIEtIQUggV0lUSCBZRUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzMyAwNjJFIDA2NEE7Ozs7Tjs7Ozs7CitGREM3O0FSQUJJQyBMSUdBVFVSRSBOT09OIFdJVEggSkVFTSBXSVRIIFlFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ2IDA2MkMgMDY0QTs7OztOOzs7OzsKK0ZERjA7QVJBQklDIExJR0FUVVJFIFNBTExBIFVTRUQgQVMgS09SQU5JQyBTVE9QIFNJR04gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjQ0IDA2RDI7Ozs7Tjs7Ozs7CitGREYxO0FSQUJJQyBMSUdBVFVSRSBRQUxBIFVTRUQgQVMgS09SQU5JQyBTVE9QIFNJR04gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0MiAwNjQ0IDA2RDI7Ozs7Tjs7Ozs7CitGREYyO0FSQUJJQyBMSUdBVFVSRSBBTExBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjI3IDA2NDQgMDY0NCAwNjQ3Ozs7O047Ozs7OworRkRGMztBUkFCSUMgTElHQVRVUkUgQUtCQVIgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNyAwNjQzIDA2MjggMDYzMTs7OztOOzs7OzsKK0ZERjQ7QVJBQklDIExJR0FUVVJFIE1PSEFNTUFEIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDUgMDYyRCAwNjQ1IDA2MkY7Ozs7Tjs7Ozs7CitGREY1O0FSQUJJQyBMSUdBVFVSRSBTQUxBTSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2NDQgMDYzOSAwNjQ1Ozs7O047Ozs7OworRkRGNjtBUkFCSUMgTElHQVRVUkUgUkFTT1VMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzEgMDYzMyAwNjQ4IDA2NDQ7Ozs7Tjs7Ozs7CitGREY3O0FSQUJJQyBMSUdBVFVSRSBBTEFZSEUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzOSAwNjQ0IDA2NEEgMDY0Nzs7OztOOzs7OzsKK0ZERjg7QVJBQklDIExJR0FUVVJFIFdBU0FMTEFNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDggMDYzMyAwNjQ0IDA2NDU7Ozs7Tjs7Ozs7CitGREY5O0FSQUJJQyBMSUdBVFVSRSBTQUxMQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM1IDA2NDQgMDY0OTs7OztOOzs7OzsKK0ZERkE7QVJBQklDIExJR0FUVVJFIFNBTExBTExBSE9VIEFMQVlIRSBXQVNBTExBTTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNSAwNjQ0IDA2NDkgMDAyMCAwNjI3IDA2NDQgMDY0NCAwNjQ3IDAwMjAgMDYzOSAwNjQ0IDA2NEEgMDY0NyAwMDIwIDA2NDggMDYzMyAwNjQ0IDA2NDU7Ozs7TjtBUkFCSUMgTEVUVEVSIFNBTExBTExBSE9VIEFMQVlIRSBXQVNBTExBTTs7OzsKK0ZERkI7QVJBQklDIExJR0FUVVJFIEpBTExBSkFMQUxPVUhPVTtMbzswO0FMOzxpc29sYXRlZD4gMDYyQyAwNjQ0IDAwMjAgMDYyQyAwNjQ0IDA2MjcgMDY0NCAwNjQ3Ozs7O047QVJBQklDIExFVFRFUiBKQUxMQUpBTEFMT1VIT1U7Ozs7CitGREZDO1JJQUwgU0lHTjtTYzswO0FMOzxpc29sYXRlZD4gMDYzMSAwNkNDIDA2MjcgMDY0NDs7OztOOzs7OzsKK0ZERkQ7QVJBQklDIExJR0FUVVJFIEJJU01JTExBSCBBUi1SQUhNQU4gQVItUkFIRUVNO1NvOzA7T047Ozs7O047Ozs7OworRkUwMDtWQVJJQVRJT04gU0VMRUNUT1ItMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTAxO1ZBUklBVElPTiBTRUxFQ1RPUi0yO01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMDI7VkFSSUFUSU9OIFNFTEVDVE9SLTM7TW47MDtOU007Ozs7O047Ozs7OworRkUwMztWQVJJQVRJT04gU0VMRUNUT1ItNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTA0O1ZBUklBVElPTiBTRUxFQ1RPUi01O01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMDU7VkFSSUFUSU9OIFNFTEVDVE9SLTY7TW47MDtOU007Ozs7O047Ozs7OworRkUwNjtWQVJJQVRJT04gU0VMRUNUT1ItNztNbjswO05TTTs7Ozs7Tjs7Ozs7CitGRTA3O1ZBUklBVElPTiBTRUxFQ1RPUi04O01uOzA7TlNNOzs7OztOOzs7OzsKK0ZFMDg7VkFSSUFUSU9OIFNFTEVDVE9SLTk7TW47MDtOU007Ozs7O047Ozs7OworRkUwOTtWQVJJQVRJT04gU0VMRUNUT1ItMTA7TW47MDtOU007Ozs7O047Ozs7OworRkUwQTtWQVJJQVRJT04gU0VMRUNUT1ItMTE7TW47MDtOU007Ozs7O047Ozs7OworRkUwQjtWQVJJQVRJT04gU0VMRUNUT1ItMTI7TW47MDtOU007Ozs7O047Ozs7OworRkUwQztWQVJJQVRJT04gU0VMRUNUT1ItMTM7TW47MDtOU007Ozs7O047Ozs7OworRkUwRDtWQVJJQVRJT04gU0VMRUNUT1ItMTQ7TW47MDtOU007Ozs7O047Ozs7OworRkUwRTtWQVJJQVRJT04gU0VMRUNUT1ItMTU7TW47MDtOU007Ozs7O047Ozs7OworRkUwRjtWQVJJQVRJT04gU0VMRUNUT1ItMTY7TW47MDtOU007Ozs7O047Ozs7OworRkUxMDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgQ09NTUE7UG87MDtPTjs8dmVydGljYWw+IDAwMkM7Ozs7Tjs7Ozs7CitGRTExO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBJREVPR1JBUEhJQyBDT01NQTtQbzswO09OOzx2ZXJ0aWNhbD4gMzAwMTs7OztOOzs7OzsKK0ZFMTI7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIElERU9HUkFQSElDIEZVTEwgU1RPUDtQbzswO09OOzx2ZXJ0aWNhbD4gMzAwMjs7OztOOzs7OzsKK0ZFMTM7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIENPTE9OO1BvOzA7T047PHZlcnRpY2FsPiAwMDNBOzs7O047Ozs7OworRkUxNDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgU0VNSUNPTE9OO1BvOzA7T047PHZlcnRpY2FsPiAwMDNCOzs7O047Ozs7OworRkUxNTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgRVhDTEFNQVRJT04gTUFSSztQbzswO09OOzx2ZXJ0aWNhbD4gMDAyMTs7OztOOzs7OzsKK0ZFMTY7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFFVRVNUSU9OIE1BUks7UG87MDtPTjs8dmVydGljYWw+IDAwM0Y7Ozs7Tjs7Ozs7CitGRTE3O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIFdISVRFIExFTlRJQ1VMQVIgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAxNjs7OztOOzs7OzsKK0ZFMTg7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIFdISVRFIExFTlRJQ1VMQVIgQlJBS0NFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAxNzs7OztOOzs7OzsKK0ZFMTk7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIEhPUklaT05UQUwgRUxMSVBTSVM7UG87MDtPTjs8dmVydGljYWw+IDIwMjY7Ozs7Tjs7Ozs7CitGRTIwO0NPTUJJTklORyBMSUdBVFVSRSBMRUZUIEhBTEY7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CitGRTIxO0NPTUJJTklORyBMSUdBVFVSRSBSSUdIVCBIQUxGO01uOzIzMDtOU007Ozs7O047Ozs7OworRkUyMjtDT01CSU5JTkcgRE9VQkxFIFRJTERFIExFRlQgSEFMRjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKK0ZFMjM7Q09NQklOSU5HIERPVUJMRSBUSUxERSBSSUdIVCBIQUxGO01uOzIzMDtOU007Ozs7O047Ozs7OworRkUzMDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgVFdPIERPVCBMRUFERVI7UG87MDtPTjs8dmVydGljYWw+IDIwMjU7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgVFdPIERPVCBMRUFERVI7Ozs7CitGRTMxO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBFTSBEQVNIO1BkOzA7T047PHZlcnRpY2FsPiAyMDE0Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIEVNIERBU0g7Ozs7CitGRTMyO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBFTiBEQVNIO1BkOzA7T047PHZlcnRpY2FsPiAyMDEzOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIEVOIERBU0g7Ozs7CitGRTMzO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMT1cgTElORTtQYzswO09OOzx2ZXJ0aWNhbD4gMDA1Rjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBTUEFDSU5HIFVOREVSU0NPUkU7Ozs7CitGRTM0O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBXQVZZIExPVyBMSU5FO1BjOzA7T047PHZlcnRpY2FsPiAwMDVGOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIFNQQUNJTkcgV0FWWSBVTkRFUlNDT1JFOzs7OworRkUzNTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzx2ZXJ0aWNhbD4gMDAyODs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIFBBUkVOVEhFU0lTOzs7OworRkUzNjtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgUEFSRU5USEVTSVM7UGU7MDtPTjs8dmVydGljYWw+IDAwMjk7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKK0ZFMzc7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgQ1VSTFkgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMDA3Qjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRTM4O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBDVVJMWSBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAwMDdEOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgQ1VSTFkgQlJBQ0tFVDs7OzsKK0ZFMzk7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAxNDs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CitGRTNBO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBUT1JUT0lTRSBTSEVMTCBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDE1Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgVE9SVE9JU0UgU0hFTEwgQlJBQ0tFVDs7OzsKK0ZFM0I7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDEwOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworRkUzQztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDExOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgQkxBQ0sgTEVOVElDVUxBUiBCUkFDS0VUOzs7OworRkUzRDtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBET1VCTEUgQU5HTEUgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAwQTs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIERPVUJMRSBBTkdMRSBCUkFDS0VUOzs7OworRkUzRTtQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgRE9VQkxFIEFOR0xFIEJSQUNLRVQ7UGU7MDtPTjs8dmVydGljYWw+IDMwMEI7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgQ0xPU0lORyBET1VCTEUgQU5HTEUgQlJBQ0tFVDs7OzsKK0ZFM0Y7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgQU5HTEUgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMzAwODs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBPUEVOSU5HIEFOR0xFIEJSQUNLRVQ7Ozs7CitGRTQwO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBBTkdMRSBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDA5Ozs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgQU5HTEUgQlJBQ0tFVDs7OzsKK0ZFNDE7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIExFRlQgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs8dmVydGljYWw+IDMwMEM7Ozs7TjtHTFlQSCBGT1IgVkVSVElDQUwgT1BFTklORyBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZFNDI7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIENPUk5FUiBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAzMDBEOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIENMT1NJTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRTQzO1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBMRUZUIFdISVRFIENPUk5FUiBCUkFDS0VUO1BzOzA7T047PHZlcnRpY2FsPiAzMDBFOzs7O047R0xZUEggRk9SIFZFUlRJQ0FMIE9QRU5JTkcgV0hJVEUgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRTQ0O1BSRVNFTlRBVElPTiBGT1JNIEZPUiBWRVJUSUNBTCBSSUdIVCBXSElURSBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzx2ZXJ0aWNhbD4gMzAwRjs7OztOO0dMWVBIIEZPUiBWRVJUSUNBTCBDTE9TSU5HIFdISVRFIENPUk5FUiBCUkFDS0VUOzs7OworRkU0NTtTRVNBTUUgRE9UO1BvOzA7T047Ozs7O047Ozs7OworRkU0NjtXSElURSBTRVNBTUUgRE9UO1BvOzA7T047Ozs7O047Ozs7OworRkU0NztQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgTEVGVCBTUVVBUkUgQlJBQ0tFVDtQczswO09OOzx2ZXJ0aWNhbD4gMDA1Qjs7OztOOzs7OzsKK0ZFNDg7UFJFU0VOVEFUSU9OIEZPUk0gRk9SIFZFUlRJQ0FMIFJJR0hUIFNRVUFSRSBCUkFDS0VUO1BlOzA7T047PHZlcnRpY2FsPiAwMDVEOzs7O047Ozs7OworRkU0OTtEQVNIRUQgT1ZFUkxJTkU7UG87MDtPTjs8Y29tcGF0PiAyMDNFOzs7O047U1BBQ0lORyBEQVNIRUQgT1ZFUlNDT1JFOzs7OworRkU0QTtDRU5UUkVMSU5FIE9WRVJMSU5FO1BvOzA7T047PGNvbXBhdD4gMjAzRTs7OztOO1NQQUNJTkcgQ0VOVEVSTElORSBPVkVSU0NPUkU7Ozs7CitGRTRCO1dBVlkgT1ZFUkxJTkU7UG87MDtPTjs8Y29tcGF0PiAyMDNFOzs7O047U1BBQ0lORyBXQVZZIE9WRVJTQ09SRTs7OzsKK0ZFNEM7RE9VQkxFIFdBVlkgT1ZFUkxJTkU7UG87MDtPTjs8Y29tcGF0PiAyMDNFOzs7O047U1BBQ0lORyBET1VCTEUgV0FWWSBPVkVSU0NPUkU7Ozs7CitGRTREO0RBU0hFRCBMT1cgTElORTtQYzswO09OOzxjb21wYXQ+IDAwNUY7Ozs7TjtTUEFDSU5HIERBU0hFRCBVTkRFUlNDT1JFOzs7OworRkU0RTtDRU5UUkVMSU5FIExPVyBMSU5FO1BjOzA7T047PGNvbXBhdD4gMDA1Rjs7OztOO1NQQUNJTkcgQ0VOVEVSTElORSBVTkRFUlNDT1JFOzs7OworRkU0RjtXQVZZIExPVyBMSU5FO1BjOzA7T047PGNvbXBhdD4gMDA1Rjs7OztOO1NQQUNJTkcgV0FWWSBVTkRFUlNDT1JFOzs7OworRkU1MDtTTUFMTCBDT01NQTtQbzswO0NTOzxzbWFsbD4gMDAyQzs7OztOOzs7OzsKK0ZFNTE7U01BTEwgSURFT0dSQVBISUMgQ09NTUE7UG87MDtPTjs8c21hbGw+IDMwMDE7Ozs7Tjs7Ozs7CitGRTUyO1NNQUxMIEZVTEwgU1RPUDtQbzswO0NTOzxzbWFsbD4gMDAyRTs7OztOO1NNQUxMIFBFUklPRDs7OzsKK0ZFNTQ7U01BTEwgU0VNSUNPTE9OO1BvOzA7T047PHNtYWxsPiAwMDNCOzs7O047Ozs7OworRkU1NTtTTUFMTCBDT0xPTjtQbzswO0NTOzxzbWFsbD4gMDAzQTs7OztOOzs7OzsKK0ZFNTY7U01BTEwgUVVFU1RJT04gTUFSSztQbzswO09OOzxzbWFsbD4gMDAzRjs7OztOOzs7OzsKK0ZFNTc7U01BTEwgRVhDTEFNQVRJT04gTUFSSztQbzswO09OOzxzbWFsbD4gMDAyMTs7OztOOzs7OzsKK0ZFNTg7U01BTEwgRU0gREFTSDtQZDswO09OOzxzbWFsbD4gMjAxNDs7OztOOzs7OzsKK0ZFNTk7U01BTEwgTEVGVCBQQVJFTlRIRVNJUztQczswO09OOzxzbWFsbD4gMDAyODs7OztOO1NNQUxMIE9QRU5JTkcgUEFSRU5USEVTSVM7Ozs7CitGRTVBO1NNQUxMIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHNtYWxsPiAwMDI5Ozs7O047U01BTEwgQ0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKK0ZFNUI7U01BTEwgTEVGVCBDVVJMWSBCUkFDS0VUO1BzOzA7T047PHNtYWxsPiAwMDdCOzs7O047U01BTEwgT1BFTklORyBDVVJMWSBCUkFDS0VUOzs7OworRkU1QztTTUFMTCBSSUdIVCBDVVJMWSBCUkFDS0VUO1BlOzA7T047PHNtYWxsPiAwMDdEOzs7O047U01BTEwgQ0xPU0lORyBDVVJMWSBCUkFDS0VUOzs7OworRkU1RDtTTUFMTCBMRUZUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UHM7MDtPTjs8c21hbGw+IDMwMTQ7Ozs7TjtTTUFMTCBPUEVOSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CitGRTVFO1NNQUxMIFJJR0hUIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7UGU7MDtPTjs8c21hbGw+IDMwMTU7Ozs7TjtTTUFMTCBDTE9TSU5HIFRPUlRPSVNFIFNIRUxMIEJSQUNLRVQ7Ozs7CitGRTVGO1NNQUxMIE5VTUJFUiBTSUdOO1BvOzA7RVQ7PHNtYWxsPiAwMDIzOzs7O047Ozs7OworRkU2MDtTTUFMTCBBTVBFUlNBTkQ7UG87MDtPTjs8c21hbGw+IDAwMjY7Ozs7Tjs7Ozs7CitGRTYxO1NNQUxMIEFTVEVSSVNLO1BvOzA7T047PHNtYWxsPiAwMDJBOzs7O047Ozs7OworRkU2MjtTTUFMTCBQTFVTIFNJR047U207MDtFUzs8c21hbGw+IDAwMkI7Ozs7Tjs7Ozs7CitGRTYzO1NNQUxMIEhZUEhFTi1NSU5VUztQZDswO0VTOzxzbWFsbD4gMDAyRDs7OztOOzs7OzsKK0ZFNjQ7U01BTEwgTEVTUy1USEFOIFNJR047U207MDtPTjs8c21hbGw+IDAwM0M7Ozs7Tjs7Ozs7CitGRTY1O1NNQUxMIEdSRUFURVItVEhBTiBTSUdOO1NtOzA7T047PHNtYWxsPiAwMDNFOzs7O047Ozs7OworRkU2NjtTTUFMTCBFUVVBTFMgU0lHTjtTbTswO09OOzxzbWFsbD4gMDAzRDs7OztOOzs7OzsKK0ZFNjg7U01BTEwgUkVWRVJTRSBTT0xJRFVTO1BvOzA7T047PHNtYWxsPiAwMDVDOzs7O047U01BTEwgQkFDS1NMQVNIOzs7OworRkU2OTtTTUFMTCBET0xMQVIgU0lHTjtTYzswO0VUOzxzbWFsbD4gMDAyNDs7OztOOzs7OzsKK0ZFNkE7U01BTEwgUEVSQ0VOVCBTSUdOO1BvOzA7RVQ7PHNtYWxsPiAwMDI1Ozs7O047Ozs7OworRkU2QjtTTUFMTCBDT01NRVJDSUFMIEFUO1BvOzA7T047PHNtYWxsPiAwMDQwOzs7O047Ozs7OworRkU3MDtBUkFCSUMgRkFUSEFUQU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjRCOzs7O047QVJBQklDIFNQQUNJTkcgRkFUSEFUQU47Ozs7CitGRTcxO0FSQUJJQyBUQVRXRUVMIFdJVEggRkFUSEFUQU4gQUJPVkU7TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NEI7Ozs7TjtBUkFCSUMgRkFUSEFUQU4gT04gVEFUV0VFTDs7OzsKK0ZFNzI7QVJBQklDIERBTU1BVEFOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0Qzs7OztOO0FSQUJJQyBTUEFDSU5HIERBTU1BVEFOOzs7OworRkU3MztBUkFCSUMgVEFJTCBGUkFHTUVOVDtMbzswO0FMOzs7OztOOzs7OzsKK0ZFNzQ7QVJBQklDIEtBU1JBVEFOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY0RDs7OztOO0FSQUJJQyBTUEFDSU5HIEtBU1JBVEFOOzs7OworRkU3NjtBUkFCSUMgRkFUSEEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjRFOzs7O047QVJBQklDIFNQQUNJTkcgRkFUSEFIOzs7OworRkU3NztBUkFCSUMgRkFUSEEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NEU7Ozs7TjtBUkFCSUMgRkFUSEFIIE9OIFRBVFdFRUw7Ozs7CitGRTc4O0FSQUJJQyBEQU1NQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwMDIwIDA2NEY7Ozs7TjtBUkFCSUMgU1BBQ0lORyBEQU1NQUg7Ozs7CitGRTc5O0FSQUJJQyBEQU1NQSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY0Rjs7OztOO0FSQUJJQyBEQU1NQUggT04gVEFUV0VFTDs7OzsKK0ZFN0E7QVJBQklDIEtBU1JBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY1MDs7OztOO0FSQUJJQyBTUEFDSU5HIEtBU1JBSDs7OzsKK0ZFN0I7QVJBQklDIEtBU1JBIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MCAwNjUwOzs7O047QVJBQklDIEtBU1JBSCBPTiBUQVRXRUVMOzs7OworRkU3QztBUkFCSUMgU0hBRERBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDAwMjAgMDY1MTs7OztOO0FSQUJJQyBTUEFDSU5HIFNIQUREQUg7Ozs7CitGRTdEO0FSQUJJQyBTSEFEREEgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQwIDA2NTE7Ozs7TjtBUkFCSUMgU0hBRERBSCBPTiBUQVRXRUVMOzs7OworRkU3RTtBUkFCSUMgU1VLVU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDAyMCAwNjUyOzs7O047QVJBQklDIFNQQUNJTkcgU1VLVU47Ozs7CitGRTdGO0FSQUJJQyBTVUtVTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDAgMDY1Mjs7OztOO0FSQUJJQyBTVUtVTiBPTiBUQVRXRUVMOzs7OworRkU4MDtBUkFCSUMgTEVUVEVSIEhBTVpBIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjE7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIOzs7OworRkU4MTtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBNQUREQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjIyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIE1BRERBSCBPTiBBTEVGOzs7OworRkU4MjtBUkFCSUMgTEVUVEVSIEFMRUYgV0lUSCBNQUREQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjIyOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBNQUREQUggT04gQUxFRjs7OzsKK0ZFODM7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyMzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggT04gQUxFRjs7OzsKK0ZFODQ7QVJBQklDIExFVFRFUiBBTEVGIFdJVEggSEFNWkEgQUJPVkUgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyMzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIE9OIEFMRUY7Ozs7CitGRTg1O0FSQUJJQyBMRVRURVIgV0FXIFdJVEggSEFNWkEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggT04gV0FXOzs7OworRkU4NjtBUkFCSUMgTEVUVEVSIFdBVyBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjQ7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBPTiBXQVc7Ozs7CitGRTg3O0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEJFTE9XIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjU7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIFVOREVSIEFMRUY7Ozs7CitGRTg4O0FSQUJJQyBMRVRURVIgQUxFRiBXSVRIIEhBTVpBIEJFTE9XIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBVTkRFUiBBTEVGOzs7OworRkU4OTtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MjY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIE9OIFlBOzs7OworRkU4QTtBUkFCSUMgTEVUVEVSIFlFSCBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MjY7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBTVpBSCBPTiBZQTs7OzsKK0ZFOEI7QVJBQklDIExFVFRFUiBZRUggV0lUSCBIQU1aQSBBQk9WRSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyNjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBIQU1aQUggT04gWUE7Ozs7CitGRThDO0FSQUJJQyBMRVRURVIgWUVIIFdJVEggSEFNWkEgQUJPVkUgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjI2Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgSEFNWkFIIE9OIFlBOzs7OworRkU4RDtBUkFCSUMgTEVUVEVSIEFMRUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyNzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBBTEVGOzs7OworRkU4RTtBUkFCSUMgTEVUVEVSIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyNzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgQUxFRjs7OzsKK0ZFOEY7QVJBQklDIExFVFRFUiBCRUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyODs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBCQUE7Ozs7CitGRTkwO0FSQUJJQyBMRVRURVIgQkVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEJBQTs7OzsKK0ZFOTE7QVJBQklDIExFVFRFUiBCRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgQkFBOzs7OworRkU5MjtBUkFCSUMgTEVUVEVSIEJFSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2Mjg7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBCQUE7Ozs7CitGRTkzO0FSQUJJQyBMRVRURVIgVEVIIE1BUkJVVEEgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyOTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBUQUEgTUFSQlVUQUg7Ozs7CitGRTk0O0FSQUJJQyBMRVRURVIgVEVIIE1BUkJVVEEgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyOTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEFBIE1BUkJVVEFIOzs7OworRkU5NTtBUkFCSUMgTEVUVEVSIFRFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJBOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRBQTs7OzsKK0ZFOTY7QVJBQklDIExFVFRFUiBURUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYyQTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEFBOzs7OworRkU5NztBUkFCSUMgTEVUVEVSIFRFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBUQUE7Ozs7CitGRTk4O0FSQUJJQyBMRVRURVIgVEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyQTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFRBQTs7OzsKK0ZFOTk7QVJBQklDIExFVFRFUiBUSEVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkI7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgVEhBQTs7OzsKK0ZFOUE7QVJBQklDIExFVFRFUiBUSEVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFRIQUE7Ozs7CitGRTlCO0FSQUJJQyBMRVRURVIgVEhFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBUSEFBOzs7OworRkU5QztBUkFCSUMgTEVUVEVSIFRIRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJCOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgVEhBQTs7OzsKK0ZFOUQ7QVJBQklDIExFVFRFUiBKRUVNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSkVFTTs7OzsKK0ZFOUU7QVJBQklDIExFVFRFUiBKRUVNIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEpFRU07Ozs7CitGRTlGO0FSQUJJQyBMRVRURVIgSkVFTSBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYyQzs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBKRUVNOzs7OworRkVBMDtBUkFCSUMgTEVUVEVSIEpFRU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjJDOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgSkVFTTs7OzsKK0ZFQTE7QVJBQklDIExFVFRFUiBIQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYyRDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQUE7Ozs7CitGRUEyO0FSQUJJQyBMRVRURVIgSEFIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEhBQTs7OzsKK0ZFQTM7QVJBQklDIExFVFRFUiBIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgSEFBOzs7OworRkVBNDtBUkFCSUMgTEVUVEVSIEhBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MkQ7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBIQUE7Ozs7CitGRUE1O0FSQUJJQyBMRVRURVIgS0hBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjJFOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEtIQUE7Ozs7CitGRUE2O0FSQUJJQyBMRVRURVIgS0hBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJFOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBLSEFBOzs7OworRkVBNztBUkFCSUMgTEVUVEVSIEtIQUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MkU7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgS0hBQTs7OzsKK0ZFQTg7QVJBQklDIExFVFRFUiBLSEFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYyRTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEtIQUE7Ozs7CitGRUE5O0FSQUJJQyBMRVRURVIgREFMIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MkY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgREFMOzs7OworRkVBQTtBUkFCSUMgTEVUVEVSIERBTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjJGOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBEQUw7Ozs7CitGRUFCO0FSQUJJQyBMRVRURVIgVEhBTCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMwOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRIQUw7Ozs7CitGRUFDO0FSQUJJQyBMRVRURVIgVEhBTCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMwOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBUSEFMOzs7OworRkVBRDtBUkFCSUMgTEVUVEVSIFJFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMxOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFJBOzs7OworRkVBRTtBUkFCSUMgTEVUVEVSIFJFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMxOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBSQTs7OzsKK0ZFQUY7QVJBQklDIExFVFRFUiBaQUlOIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzI7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgWkFJTjs7OzsKK0ZFQjA7QVJBQklDIExFVFRFUiBaQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFpBSU47Ozs7CitGRUIxO0FSQUJJQyBMRVRURVIgU0VFTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjMzOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFNFRU47Ozs7CitGRUIyO0FSQUJJQyBMRVRURVIgU0VFTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjMzOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBTRUVOOzs7OworRkVCMztBUkFCSUMgTEVUVEVSIFNFRU4gSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzM7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgU0VFTjs7OzsKK0ZFQjQ7QVJBQklDIExFVFRFUiBTRUVOIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzMzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFNFRU47Ozs7CitGRUI1O0FSQUJJQyBMRVRURVIgU0hFRU4gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNDs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjY7QVJBQklDIExFVFRFUiBTSEVFTiBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM0Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjc7QVJBQklDIExFVFRFUiBTSEVFTiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNDs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjg7QVJBQklDIExFVFRFUiBTSEVFTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzQ7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBTSEVFTjs7OzsKK0ZFQjk7QVJBQklDIExFVFRFUiBTQUQgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzNTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBTQUQ7Ozs7CitGRUJBO0FSQUJJQyBMRVRURVIgU0FEIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFNBRDs7OzsKK0ZFQkI7QVJBQklDIExFVFRFUiBTQUQgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgU0FEOzs7OworRkVCQztBUkFCSUMgTEVUVEVSIFNBRCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2MzU7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBTQUQ7Ozs7CitGRUJEO0FSQUJJQyBMRVRURVIgREFEIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2MzY7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgREFEOzs7OworRkVCRTtBUkFCSUMgTEVUVEVSIERBRCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM2Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBEQUQ7Ozs7CitGRUJGO0FSQUJJQyBMRVRURVIgREFEIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjM2Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIERBRDs7OzsKK0ZFQzA7QVJBQklDIExFVFRFUiBEQUQgTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjM2Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgREFEOzs7OworRkVDMTtBUkFCSUMgTEVUVEVSIFRBSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM3Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFRBSDs7OzsKK0ZFQzI7QVJBQklDIExFVFRFUiBUQUggRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzNzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgVEFIOzs7OworRkVDMztBUkFCSUMgTEVUVEVSIFRBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzNzs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBUQUg7Ozs7CitGRUM0O0FSQUJJQyBMRVRURVIgVEFIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzNzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFRBSDs7OzsKK0ZFQzU7QVJBQklDIExFVFRFUiBaQUggSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDYzODs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBESEFIOzs7OworRkVDNjtBUkFCSUMgTEVUVEVSIFpBSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjM4Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBESEFIOzs7OworRkVDNztBUkFCSUMgTEVUVEVSIFpBSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzODs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBESEFIOzs7OworRkVDODtBUkFCSUMgTEVUVEVSIFpBSCBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2Mzg7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBESEFIOzs7OworRkVDOTtBUkFCSUMgTEVUVEVSIEFJTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjM5Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEFJTjs7OzsKK0ZFQ0E7QVJBQklDIExFVFRFUiBBSU4gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDYzOTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgQUlOOzs7OworRkVDQjtBUkFCSUMgTEVUVEVSIEFJTiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDYzOTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBBSU47Ozs7CitGRUNDO0FSQUJJQyBMRVRURVIgQUlOIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzOTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEFJTjs7OzsKK0ZFQ0Q7QVJBQklDIExFVFRFUiBHSEFJTiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjNBOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEdIQUlOOzs7OworRkVDRTtBUkFCSUMgTEVUVEVSIEdIQUlOIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2M0E7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEdIQUlOOzs7OworRkVDRjtBUkFCSUMgTEVUVEVSIEdIQUlOIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjNBOzs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIEdIQUlOOzs7OworRkVEMDtBUkFCSUMgTEVUVEVSIEdIQUlOIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDYzQTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEdIQUlOOzs7OworRkVEMTtBUkFCSUMgTEVUVEVSIEZFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQxOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEZBOzs7OworRkVEMjtBUkFCSUMgTEVUVEVSIEZFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQxOzs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBGQTs7OzsKK0ZFRDM7QVJBQklDIExFVFRFUiBGRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDE7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgRkE7Ozs7CitGRUQ0O0FSQUJJQyBMRVRURVIgRkVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0MTs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEZBOzs7OworRkVENTtBUkFCSUMgTEVUVEVSIFFBRiBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFFBRjs7OzsKK0ZFRDY7QVJBQklDIExFVFRFUiBRQUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgUUFGOzs7OworRkVENztBUkFCSUMgTEVUVEVSIFFBRiBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBRQUY7Ozs7CitGRUQ4O0FSQUJJQyBMRVRURVIgUUFGIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0Mjs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIFFBRjs7OzsKK0ZFRDk7QVJBQklDIExFVFRFUiBLQUYgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0Mzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBDQUY7Ozs7CitGRURBO0FSQUJJQyBMRVRURVIgS0FGIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIENBRjs7OzsKK0ZFREI7QVJBQklDIExFVFRFUiBLQUYgSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgQ0FGOzs7OworRkVEQztBUkFCSUMgTEVUVEVSIEtBRiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDM7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBDQUY7Ozs7CitGRUREO0FSQUJJQyBMRVRURVIgTEFNIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQ7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgTEFNOzs7OworRkVERTtBUkFCSUMgTEVUVEVSIExBTSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBMQU07Ozs7CitGRURGO0FSQUJJQyBMRVRURVIgTEFNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ0Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIExBTTs7OzsKK0ZFRTA7QVJBQklDIExFVFRFUiBMQU0gTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjQ0Ozs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgTEFNOzs7OworRkVFMTtBUkFCSUMgTEVUVEVSIE1FRU0gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBNRUVNOzs7OworRkVFMjtBUkFCSUMgTEVUVEVSIE1FRU0gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NTs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTUVFTTs7OzsKK0ZFRTM7QVJBQklDIExFVFRFUiBNRUVNIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ1Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIE1FRU07Ozs7CitGRUU0O0FSQUJJQyBMRVRURVIgTUVFTSBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDU7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBNRUVNOzs7OworRkVFNTtBUkFCSUMgTEVUVEVSIE5PT04gSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0Njs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBOT09OOzs7OworRkVFNjtBUkFCSUMgTEVUVEVSIE5PT04gRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0Njs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgTk9PTjs7OzsKK0ZFRTc7QVJBQklDIExFVFRFUiBOT09OIElOSVRJQUwgRk9STTtMbzswO0FMOzxpbml0aWFsPiAwNjQ2Ozs7O047R0xZUEggRk9SIElOSVRJQUwgQVJBQklDIE5PT047Ozs7CitGRUU4O0FSQUJJQyBMRVRURVIgTk9PTiBNRURJQUwgRk9STTtMbzswO0FMOzxtZWRpYWw+IDA2NDY7Ozs7TjtHTFlQSCBGT1IgTUVESUFMIEFSQUJJQyBOT09OOzs7OworRkVFOTtBUkFCSUMgTEVUVEVSIEhFSCBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ3Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEhBOzs7OworRkVFQTtBUkFCSUMgTEVUVEVSIEhFSCBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ3Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQTs7OzsKK0ZFRUI7QVJBQklDIExFVFRFUiBIRUggSU5JVElBTCBGT1JNO0xvOzA7QUw7PGluaXRpYWw+IDA2NDc7Ozs7TjtHTFlQSCBGT1IgSU5JVElBTCBBUkFCSUMgSEE7Ozs7CitGRUVDO0FSQUJJQyBMRVRURVIgSEVIIE1FRElBTCBGT1JNO0xvOzA7QUw7PG1lZGlhbD4gMDY0Nzs7OztOO0dMWVBIIEZPUiBNRURJQUwgQVJBQklDIEhBOzs7OworRkVFRDtBUkFCSUMgTEVUVEVSIFdBVyBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ4Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIFdBVzs7OzsKK0ZFRUU7QVJBQklDIExFVFRFUiBXQVcgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0ODs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgV0FXOzs7OworRkVFRjtBUkFCSUMgTEVUVEVSIEFMRUYgTUFLU1VSQSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ5Ozs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIEFMRUYgTUFRU1VSQUg7Ozs7CitGRUYwO0FSQUJJQyBMRVRURVIgQUxFRiBNQUtTVVJBIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDk7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIEFMRUYgTUFRU1VSQUg7Ozs7CitGRUYxO0FSQUJJQyBMRVRURVIgWUVIIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NEE7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgWUE7Ozs7CitGRUYyO0FSQUJJQyBMRVRURVIgWUVIIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NEE7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIFlBOzs7OworRkVGMztBUkFCSUMgTEVUVEVSIFlFSCBJTklUSUFMIEZPUk07TG87MDtBTDs8aW5pdGlhbD4gMDY0QTs7OztOO0dMWVBIIEZPUiBJTklUSUFMIEFSQUJJQyBZQTs7OzsKK0ZFRjQ7QVJBQklDIExFVFRFUiBZRUggTUVESUFMIEZPUk07TG87MDtBTDs8bWVkaWFsPiAwNjRBOzs7O047R0xZUEggRk9SIE1FRElBTCBBUkFCSUMgWUE7Ozs7CitGRUY1O0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggTUFEREEgQUJPVkUgSVNPTEFURUQgRk9STTtMbzswO0FMOzxpc29sYXRlZD4gMDY0NCAwNjIyOzs7O047R0xZUEggRk9SIElTT0xBVEUgQVJBQklDIE1BRERBSCBPTiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRjY7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBNQUREQSBBQk9WRSBGSU5BTCBGT1JNO0xvOzA7QUw7PGZpbmFsPiAwNjQ0IDA2MjI7Ozs7TjtHTFlQSCBGT1IgRklOQUwgQVJBQklDIE1BRERBSCBPTiBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRjc7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgV0lUSCBIQU1aQSBBQk9WRSBJU09MQVRFRCBGT1JNO0xvOzA7QUw7PGlzb2xhdGVkPiAwNjQ0IDA2MjM7Ozs7TjtHTFlQSCBGT1IgSVNPTEFURSBBUkFCSUMgSEFNWkFIIE9OIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGODtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIEhBTVpBIEFCT1ZFIEZJTkFMIEZPUk07TG87MDtBTDs8ZmluYWw+IDA2NDQgMDYyMzs7OztOO0dMWVBIIEZPUiBGSU5BTCBBUkFCSUMgSEFNWkFIIE9OIExJR0FUVVJFIExBTSBBTEVGOzs7OworRkVGOTtBUkFCSUMgTElHQVRVUkUgTEFNIFdJVEggQUxFRiBXSVRIIEhBTVpBIEJFTE9XIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDYyNTs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBIQU1aQUggVU5ERVIgTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUZBO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIFdJVEggSEFNWkEgQkVMT1cgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjI1Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBIQU1aQUggVU5ERVIgTElHQVRVUkUgTEFNIEFMRUY7Ozs7CitGRUZCO0FSQUJJQyBMSUdBVFVSRSBMQU0gV0lUSCBBTEVGIElTT0xBVEVEIEZPUk07TG87MDtBTDs8aXNvbGF0ZWQ+IDA2NDQgMDYyNzs7OztOO0dMWVBIIEZPUiBJU09MQVRFIEFSQUJJQyBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRkM7QVJBQklDIExJR0FUVVJFIExBTSBXSVRIIEFMRUYgRklOQUwgRk9STTtMbzswO0FMOzxmaW5hbD4gMDY0NCAwNjI3Ozs7O047R0xZUEggRk9SIEZJTkFMIEFSQUJJQyBMSUdBVFVSRSBMQU0gQUxFRjs7OzsKK0ZFRkY7WkVSTyBXSURUSCBOTy1CUkVBSyBTUEFDRTtDZjswO0JOOzs7OztOO0JZVEUgT1JERVIgTUFSSzs7OzsKK0ZGMDE7RlVMTFdJRFRIIEVYQ0xBTUFUSU9OIE1BUks7UG87MDtPTjs8d2lkZT4gMDAyMTs7OztOOzs7OzsKK0ZGMDI7RlVMTFdJRFRIIFFVT1RBVElPTiBNQVJLO1BvOzA7T047PHdpZGU+IDAwMjI7Ozs7Tjs7Ozs7CitGRjAzO0ZVTExXSURUSCBOVU1CRVIgU0lHTjtQbzswO0VUOzx3aWRlPiAwMDIzOzs7O047Ozs7OworRkYwNDtGVUxMV0lEVEggRE9MTEFSIFNJR047U2M7MDtFVDs8d2lkZT4gMDAyNDs7OztOOzs7OzsKK0ZGMDU7RlVMTFdJRFRIIFBFUkNFTlQgU0lHTjtQbzswO0VUOzx3aWRlPiAwMDI1Ozs7O047Ozs7OworRkYwNjtGVUxMV0lEVEggQU1QRVJTQU5EO1BvOzA7T047PHdpZGU+IDAwMjY7Ozs7Tjs7Ozs7CitGRjA3O0ZVTExXSURUSCBBUE9TVFJPUEhFO1BvOzA7T047PHdpZGU+IDAwMjc7Ozs7Tjs7Ozs7CitGRjA4O0ZVTExXSURUSCBMRUZUIFBBUkVOVEhFU0lTO1BzOzA7T047PHdpZGU+IDAwMjg7Ozs7WTtGVUxMV0lEVEggT1BFTklORyBQQVJFTlRIRVNJUzs7OzsKK0ZGMDk7RlVMTFdJRFRIIFJJR0hUIFBBUkVOVEhFU0lTO1BlOzA7T047PHdpZGU+IDAwMjk7Ozs7WTtGVUxMV0lEVEggQ0xPU0lORyBQQVJFTlRIRVNJUzs7OzsKK0ZGMEE7RlVMTFdJRFRIIEFTVEVSSVNLO1BvOzA7T047PHdpZGU+IDAwMkE7Ozs7Tjs7Ozs7CitGRjBCO0ZVTExXSURUSCBQTFVTIFNJR047U207MDtFUzs8d2lkZT4gMDAyQjs7OztOOzs7OzsKK0ZGMEM7RlVMTFdJRFRIIENPTU1BO1BvOzA7Q1M7PHdpZGU+IDAwMkM7Ozs7Tjs7Ozs7CitGRjBEO0ZVTExXSURUSCBIWVBIRU4tTUlOVVM7UGQ7MDtFUzs8d2lkZT4gMDAyRDs7OztOOzs7OzsKK0ZGMEU7RlVMTFdJRFRIIEZVTEwgU1RPUDtQbzswO0NTOzx3aWRlPiAwMDJFOzs7O047RlVMTFdJRFRIIFBFUklPRDs7OzsKK0ZGMEY7RlVMTFdJRFRIIFNPTElEVVM7UG87MDtDUzs8d2lkZT4gMDAyRjs7OztOO0ZVTExXSURUSCBTTEFTSDs7OzsKK0ZGMTA7RlVMTFdJRFRIIERJR0lUIFpFUk87TmQ7MDtFTjs8d2lkZT4gMDAzMDswOzA7MDtOOzs7OzsKK0ZGMTE7RlVMTFdJRFRIIERJR0lUIE9ORTtOZDswO0VOOzx3aWRlPiAwMDMxOzE7MTsxO047Ozs7OworRkYxMjtGVUxMV0lEVEggRElHSVQgVFdPO05kOzA7RU47PHdpZGU+IDAwMzI7MjsyOzI7Tjs7Ozs7CitGRjEzO0ZVTExXSURUSCBESUdJVCBUSFJFRTtOZDswO0VOOzx3aWRlPiAwMDMzOzM7MzszO047Ozs7OworRkYxNDtGVUxMV0lEVEggRElHSVQgRk9VUjtOZDswO0VOOzx3aWRlPiAwMDM0OzQ7NDs0O047Ozs7OworRkYxNTtGVUxMV0lEVEggRElHSVQgRklWRTtOZDswO0VOOzx3aWRlPiAwMDM1OzU7NTs1O047Ozs7OworRkYxNjtGVUxMV0lEVEggRElHSVQgU0lYO05kOzA7RU47PHdpZGU+IDAwMzY7Njs2OzY7Tjs7Ozs7CitGRjE3O0ZVTExXSURUSCBESUdJVCBTRVZFTjtOZDswO0VOOzx3aWRlPiAwMDM3Ozc7Nzs3O047Ozs7OworRkYxODtGVUxMV0lEVEggRElHSVQgRUlHSFQ7TmQ7MDtFTjs8d2lkZT4gMDAzODs4Ozg7ODtOOzs7OzsKK0ZGMTk7RlVMTFdJRFRIIERJR0lUIE5JTkU7TmQ7MDtFTjs8d2lkZT4gMDAzOTs5Ozk7OTtOOzs7OzsKK0ZGMUE7RlVMTFdJRFRIIENPTE9OO1BvOzA7Q1M7PHdpZGU+IDAwM0E7Ozs7Tjs7Ozs7CitGRjFCO0ZVTExXSURUSCBTRU1JQ09MT047UG87MDtPTjs8d2lkZT4gMDAzQjs7OztOOzs7OzsKK0ZGMUM7RlVMTFdJRFRIIExFU1MtVEhBTiBTSUdOO1NtOzA7T047PHdpZGU+IDAwM0M7Ozs7WTs7Ozs7CitGRjFEO0ZVTExXSURUSCBFUVVBTFMgU0lHTjtTbTswO09OOzx3aWRlPiAwMDNEOzs7O047Ozs7OworRkYxRTtGVUxMV0lEVEggR1JFQVRFUi1USEFOIFNJR047U207MDtPTjs8d2lkZT4gMDAzRTs7OztZOzs7OzsKK0ZGMUY7RlVMTFdJRFRIIFFVRVNUSU9OIE1BUks7UG87MDtPTjs8d2lkZT4gMDAzRjs7OztOOzs7OzsKK0ZGMjA7RlVMTFdJRFRIIENPTU1FUkNJQUwgQVQ7UG87MDtPTjs8d2lkZT4gMDA0MDs7OztOOzs7OzsKK0ZGMjE7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEE7THU7MDtMOzx3aWRlPiAwMDQxOzs7O047Ozs7RkY0MTsKK0ZGMjI7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEI7THU7MDtMOzx3aWRlPiAwMDQyOzs7O047Ozs7RkY0MjsKK0ZGMjM7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEM7THU7MDtMOzx3aWRlPiAwMDQzOzs7O047Ozs7RkY0MzsKK0ZGMjQ7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEQ7THU7MDtMOzx3aWRlPiAwMDQ0Ozs7O047Ozs7RkY0NDsKK0ZGMjU7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEU7THU7MDtMOzx3aWRlPiAwMDQ1Ozs7O047Ozs7RkY0NTsKK0ZGMjY7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEY7THU7MDtMOzx3aWRlPiAwMDQ2Ozs7O047Ozs7RkY0NjsKK0ZGMjc7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEc7THU7MDtMOzx3aWRlPiAwMDQ3Ozs7O047Ozs7RkY0NzsKK0ZGMjg7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEg7THU7MDtMOzx3aWRlPiAwMDQ4Ozs7O047Ozs7RkY0ODsKK0ZGMjk7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEk7THU7MDtMOzx3aWRlPiAwMDQ5Ozs7O047Ozs7RkY0OTsKK0ZGMkE7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEo7THU7MDtMOzx3aWRlPiAwMDRBOzs7O047Ozs7RkY0QTsKK0ZGMkI7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEs7THU7MDtMOzx3aWRlPiAwMDRCOzs7O047Ozs7RkY0QjsKK0ZGMkM7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIEw7THU7MDtMOzx3aWRlPiAwMDRDOzs7O047Ozs7RkY0QzsKK0ZGMkQ7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIE07THU7MDtMOzx3aWRlPiAwMDREOzs7O047Ozs7RkY0RDsKK0ZGMkU7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIE47THU7MDtMOzx3aWRlPiAwMDRFOzs7O047Ozs7RkY0RTsKK0ZGMkY7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIE87THU7MDtMOzx3aWRlPiAwMDRGOzs7O047Ozs7RkY0RjsKK0ZGMzA7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFA7THU7MDtMOzx3aWRlPiAwMDUwOzs7O047Ozs7RkY1MDsKK0ZGMzE7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFE7THU7MDtMOzx3aWRlPiAwMDUxOzs7O047Ozs7RkY1MTsKK0ZGMzI7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFI7THU7MDtMOzx3aWRlPiAwMDUyOzs7O047Ozs7RkY1MjsKK0ZGMzM7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFM7THU7MDtMOzx3aWRlPiAwMDUzOzs7O047Ozs7RkY1MzsKK0ZGMzQ7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFQ7THU7MDtMOzx3aWRlPiAwMDU0Ozs7O047Ozs7RkY1NDsKK0ZGMzU7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFU7THU7MDtMOzx3aWRlPiAwMDU1Ozs7O047Ozs7RkY1NTsKK0ZGMzY7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFY7THU7MDtMOzx3aWRlPiAwMDU2Ozs7O047Ozs7RkY1NjsKK0ZGMzc7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFc7THU7MDtMOzx3aWRlPiAwMDU3Ozs7O047Ozs7RkY1NzsKK0ZGMzg7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFg7THU7MDtMOzx3aWRlPiAwMDU4Ozs7O047Ozs7RkY1ODsKK0ZGMzk7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFk7THU7MDtMOzx3aWRlPiAwMDU5Ozs7O047Ozs7RkY1OTsKK0ZGM0E7RlVMTFdJRFRIIExBVElOIENBUElUQUwgTEVUVEVSIFo7THU7MDtMOzx3aWRlPiAwMDVBOzs7O047Ozs7RkY1QTsKK0ZGM0I7RlVMTFdJRFRIIExFRlQgU1FVQVJFIEJSQUNLRVQ7UHM7MDtPTjs8d2lkZT4gMDA1Qjs7OztZO0ZVTExXSURUSCBPUEVOSU5HIFNRVUFSRSBCUkFDS0VUOzs7OworRkYzQztGVUxMV0lEVEggUkVWRVJTRSBTT0xJRFVTO1BvOzA7T047PHdpZGU+IDAwNUM7Ozs7TjtGVUxMV0lEVEggQkFDS1NMQVNIOzs7OworRkYzRDtGVUxMV0lEVEggUklHSFQgU1FVQVJFIEJSQUNLRVQ7UGU7MDtPTjs8d2lkZT4gMDA1RDs7OztZO0ZVTExXSURUSCBDTE9TSU5HIFNRVUFSRSBCUkFDS0VUOzs7OworRkYzRTtGVUxMV0lEVEggQ0lSQ1VNRkxFWCBBQ0NFTlQ7U2s7MDtPTjs8d2lkZT4gMDA1RTs7OztOO0ZVTExXSURUSCBTUEFDSU5HIENJUkNVTUZMRVg7Ozs7CitGRjNGO0ZVTExXSURUSCBMT1cgTElORTtQYzswO09OOzx3aWRlPiAwMDVGOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgVU5ERVJTQ09SRTs7OzsKK0ZGNDA7RlVMTFdJRFRIIEdSQVZFIEFDQ0VOVDtTazswO09OOzx3aWRlPiAwMDYwOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgR1JBVkU7Ozs7CitGRjQxO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgQTtMbDswO0w7PHdpZGU+IDAwNjE7Ozs7Tjs7O0ZGMjE7O0ZGMjEKK0ZGNDI7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBCO0xsOzA7TDs8d2lkZT4gMDA2Mjs7OztOOzs7RkYyMjs7RkYyMgorRkY0MztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEM7TGw7MDtMOzx3aWRlPiAwMDYzOzs7O047OztGRjIzOztGRjIzCitGRjQ0O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRDtMbDswO0w7PHdpZGU+IDAwNjQ7Ozs7Tjs7O0ZGMjQ7O0ZGMjQKK0ZGNDU7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBFO0xsOzA7TDs8d2lkZT4gMDA2NTs7OztOOzs7RkYyNTs7RkYyNQorRkY0NjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEY7TGw7MDtMOzx3aWRlPiAwMDY2Ozs7O047OztGRjI2OztGRjI2CitGRjQ3O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgRztMbDswO0w7PHdpZGU+IDAwNjc7Ozs7Tjs7O0ZGMjc7O0ZGMjcKK0ZGNDg7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBIO0xsOzA7TDs8d2lkZT4gMDA2ODs7OztOOzs7RkYyODs7RkYyOAorRkY0OTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEk7TGw7MDtMOzx3aWRlPiAwMDY5Ozs7O047OztGRjI5OztGRjI5CitGRjRBO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgSjtMbDswO0w7PHdpZGU+IDAwNkE7Ozs7Tjs7O0ZGMkE7O0ZGMkEKK0ZGNEI7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBLO0xsOzA7TDs8d2lkZT4gMDA2Qjs7OztOOzs7RkYyQjs7RkYyQgorRkY0QztGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEw7TGw7MDtMOzx3aWRlPiAwMDZDOzs7O047OztGRjJDOztGRjJDCitGRjREO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgTTtMbDswO0w7PHdpZGU+IDAwNkQ7Ozs7Tjs7O0ZGMkQ7O0ZGMkQKK0ZGNEU7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBOO0xsOzA7TDs8d2lkZT4gMDA2RTs7OztOOzs7RkYyRTs7RkYyRQorRkY0RjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIE87TGw7MDtMOzx3aWRlPiAwMDZGOzs7O047OztGRjJGOztGRjJGCitGRjUwO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUDtMbDswO0w7PHdpZGU+IDAwNzA7Ozs7Tjs7O0ZGMzA7O0ZGMzAKK0ZGNTE7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBRO0xsOzA7TDs8d2lkZT4gMDA3MTs7OztOOzs7RkYzMTs7RkYzMQorRkY1MjtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFI7TGw7MDtMOzx3aWRlPiAwMDcyOzs7O047OztGRjMyOztGRjMyCitGRjUzO0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgUztMbDswO0w7PHdpZGU+IDAwNzM7Ozs7Tjs7O0ZGMzM7O0ZGMzMKK0ZGNTQ7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBUO0xsOzA7TDs8d2lkZT4gMDA3NDs7OztOOzs7RkYzNDs7RkYzNAorRkY1NTtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFU7TGw7MDtMOzx3aWRlPiAwMDc1Ozs7O047OztGRjM1OztGRjM1CitGRjU2O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgVjtMbDswO0w7PHdpZGU+IDAwNzY7Ozs7Tjs7O0ZGMzY7O0ZGMzYKK0ZGNTc7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBXO0xsOzA7TDs8d2lkZT4gMDA3Nzs7OztOOzs7RkYzNzs7RkYzNworRkY1ODtGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIFg7TGw7MDtMOzx3aWRlPiAwMDc4Ozs7O047OztGRjM4OztGRjM4CitGRjU5O0ZVTExXSURUSCBMQVRJTiBTTUFMTCBMRVRURVIgWTtMbDswO0w7PHdpZGU+IDAwNzk7Ozs7Tjs7O0ZGMzk7O0ZGMzkKK0ZGNUE7RlVMTFdJRFRIIExBVElOIFNNQUxMIExFVFRFUiBaO0xsOzA7TDs8d2lkZT4gMDA3QTs7OztOOzs7RkYzQTs7RkYzQQorRkY1QjtGVUxMV0lEVEggTEVGVCBDVVJMWSBCUkFDS0VUO1BzOzA7T047PHdpZGU+IDAwN0I7Ozs7WTtGVUxMV0lEVEggT1BFTklORyBDVVJMWSBCUkFDS0VUOzs7OworRkY1QztGVUxMV0lEVEggVkVSVElDQUwgTElORTtTbTswO09OOzx3aWRlPiAwMDdDOzs7O047RlVMTFdJRFRIIFZFUlRJQ0FMIEJBUjs7OzsKK0ZGNUQ7RlVMTFdJRFRIIFJJR0hUIENVUkxZIEJSQUNLRVQ7UGU7MDtPTjs8d2lkZT4gMDA3RDs7OztZO0ZVTExXSURUSCBDTE9TSU5HIENVUkxZIEJSQUNLRVQ7Ozs7CitGRjVFO0ZVTExXSURUSCBUSUxERTtTbTswO09OOzx3aWRlPiAwMDdFOzs7O047RlVMTFdJRFRIIFNQQUNJTkcgVElMREU7Ozs7CitGRjVGO0ZVTExXSURUSCBMRUZUIFdISVRFIFBBUkVOVEhFU0lTO1BzOzA7T047PHdpZGU+IDI5ODU7Ozs7WTs7Kjs7OworRkY2MDtGVUxMV0lEVEggUklHSFQgV0hJVEUgUEFSRU5USEVTSVM7UGU7MDtPTjs8d2lkZT4gMjk4Njs7OztZOzsqOzs7CitGRjYxO0hBTEZXSURUSCBJREVPR1JBUEhJQyBGVUxMIFNUT1A7UG87MDtPTjs8bmFycm93PiAzMDAyOzs7O047SEFMRldJRFRIIElERU9HUkFQSElDIFBFUklPRDs7OzsKK0ZGNjI7SEFMRldJRFRIIExFRlQgQ09STkVSIEJSQUNLRVQ7UHM7MDtPTjs8bmFycm93PiAzMDBDOzs7O1k7SEFMRldJRFRIIE9QRU5JTkcgQ09STkVSIEJSQUNLRVQ7Ozs7CitGRjYzO0hBTEZXSURUSCBSSUdIVCBDT1JORVIgQlJBQ0tFVDtQZTswO09OOzxuYXJyb3c+IDMwMEQ7Ozs7WTtIQUxGV0lEVEggQ0xPU0lORyBDT1JORVIgQlJBQ0tFVDs7OzsKK0ZGNjQ7SEFMRldJRFRIIElERU9HUkFQSElDIENPTU1BO1BvOzA7T047PG5hcnJvdz4gMzAwMTs7OztOOzs7OzsKK0ZGNjU7SEFMRldJRFRIIEtBVEFLQU5BIE1JRERMRSBET1Q7UG87MDtPTjs8bmFycm93PiAzMEZCOzs7O047Ozs7OworRkY2NjtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFdPO0xvOzA7TDs8bmFycm93PiAzMEYyOzs7O047Ozs7OworRkY2NztIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIEE7TG87MDtMOzxuYXJyb3c+IDMwQTE7Ozs7Tjs7Ozs7CitGRjY4O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgSTtMbzswO0w7PG5hcnJvdz4gMzBBMzs7OztOOzs7OzsKK0ZGNjk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBVO0xvOzA7TDs8bmFycm93PiAzMEE1Ozs7O047Ozs7OworRkY2QTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFNNQUxMIEU7TG87MDtMOzxuYXJyb3c+IDMwQTc7Ozs7Tjs7Ozs7CitGRjZCO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgU01BTEwgTztMbzswO0w7PG5hcnJvdz4gMzBBOTs7OztOOzs7OzsKK0ZGNkM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZQTtMbzswO0w7PG5hcnJvdz4gMzBFMzs7OztOOzs7OzsKK0ZGNkQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZVTtMbzswO0w7PG5hcnJvdz4gMzBFNTs7OztOOzs7OzsKK0ZGNkU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBZTztMbzswO0w7PG5hcnJvdz4gMzBFNzs7OztOOzs7OzsKK0ZGNkY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTUFMTCBUVTtMbzswO0w7PG5hcnJvdz4gMzBDMzs7OztOOzs7OzsKK0ZGNzA7SEFMRldJRFRIIEtBVEFLQU5BLUhJUkFHQU5BIFBST0xPTkdFRCBTT1VORCBNQVJLO0xtOzA7TDs8bmFycm93PiAzMEZDOzs7O047Ozs7OworRkY3MTtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEE7TG87MDtMOzxuYXJyb3c+IDMwQTI7Ozs7Tjs7Ozs7CitGRjcyO0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgSTtMbzswO0w7PG5hcnJvdz4gMzBBNDs7OztOOzs7OzsKK0ZGNzM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBVO0xvOzA7TDs8bmFycm93PiAzMEE2Ozs7O047Ozs7OworRkY3NDtIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIEU7TG87MDtMOzxuYXJyb3c+IDMwQTg7Ozs7Tjs7Ozs7CitGRjc1O0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTztMbzswO0w7PG5hcnJvdz4gMzBBQTs7OztOOzs7OzsKK0ZGNzY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLQTtMbzswO0w7PG5hcnJvdz4gMzBBQjs7OztOOzs7OzsKK0ZGNzc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLSTtMbzswO0w7PG5hcnJvdz4gMzBBRDs7OztOOzs7OzsKK0ZGNzg7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLVTtMbzswO0w7PG5hcnJvdz4gMzBBRjs7OztOOzs7OzsKK0ZGNzk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLRTtMbzswO0w7PG5hcnJvdz4gMzBCMTs7OztOOzs7OzsKK0ZGN0E7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBLTztMbzswO0w7PG5hcnJvdz4gMzBCMzs7OztOOzs7OzsKK0ZGN0I7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTQTtMbzswO0w7PG5hcnJvdz4gMzBCNTs7OztOOzs7OzsKK0ZGN0M7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTSTtMbzswO0w7PG5hcnJvdz4gMzBCNzs7OztOOzs7OzsKK0ZGN0Q7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTVTtMbzswO0w7PG5hcnJvdz4gMzBCOTs7OztOOzs7OzsKK0ZGN0U7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTRTtMbzswO0w7PG5hcnJvdz4gMzBCQjs7OztOOzs7OzsKK0ZGN0Y7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBTTztMbzswO0w7PG5hcnJvdz4gMzBCRDs7OztOOzs7OzsKK0ZGODA7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUQTtMbzswO0w7PG5hcnJvdz4gMzBCRjs7OztOOzs7OzsKK0ZGODE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUSTtMbzswO0w7PG5hcnJvdz4gMzBDMTs7OztOOzs7OzsKK0ZGODI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUVTtMbzswO0w7PG5hcnJvdz4gMzBDNDs7OztOOzs7OzsKK0ZGODM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBURTtMbzswO0w7PG5hcnJvdz4gMzBDNjs7OztOOzs7OzsKK0ZGODQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBUTztMbzswO0w7PG5hcnJvdz4gMzBDODs7OztOOzs7OzsKK0ZGODU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOQTtMbzswO0w7PG5hcnJvdz4gMzBDQTs7OztOOzs7OzsKK0ZGODY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOSTtMbzswO0w7PG5hcnJvdz4gMzBDQjs7OztOOzs7OzsKK0ZGODc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOVTtMbzswO0w7PG5hcnJvdz4gMzBDQzs7OztOOzs7OzsKK0ZGODg7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBORTtMbzswO0w7PG5hcnJvdz4gMzBDRDs7OztOOzs7OzsKK0ZGODk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOTztMbzswO0w7PG5hcnJvdz4gMzBDRTs7OztOOzs7OzsKK0ZGOEE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIQTtMbzswO0w7PG5hcnJvdz4gMzBDRjs7OztOOzs7OzsKK0ZGOEI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBISTtMbzswO0w7PG5hcnJvdz4gMzBEMjs7OztOOzs7OzsKK0ZGOEM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIVTtMbzswO0w7PG5hcnJvdz4gMzBENTs7OztOOzs7OzsKK0ZGOEQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBIRTtMbzswO0w7PG5hcnJvdz4gMzBEODs7OztOOzs7OzsKK0ZGOEU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBITztMbzswO0w7PG5hcnJvdz4gMzBEQjs7OztOOzs7OzsKK0ZGOEY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNQTtMbzswO0w7PG5hcnJvdz4gMzBERTs7OztOOzs7OzsKK0ZGOTA7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNSTtMbzswO0w7PG5hcnJvdz4gMzBERjs7OztOOzs7OzsKK0ZGOTE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNVTtMbzswO0w7PG5hcnJvdz4gMzBFMDs7OztOOzs7OzsKK0ZGOTI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNRTtMbzswO0w7PG5hcnJvdz4gMzBFMTs7OztOOzs7OzsKK0ZGOTM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBNTztMbzswO0w7PG5hcnJvdz4gMzBFMjs7OztOOzs7OzsKK0ZGOTQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZQTtMbzswO0w7PG5hcnJvdz4gMzBFNDs7OztOOzs7OzsKK0ZGOTU7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZVTtMbzswO0w7PG5hcnJvdz4gMzBFNjs7OztOOzs7OzsKK0ZGOTY7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBZTztMbzswO0w7PG5hcnJvdz4gMzBFODs7OztOOzs7OzsKK0ZGOTc7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSQTtMbzswO0w7PG5hcnJvdz4gMzBFOTs7OztOOzs7OzsKK0ZGOTg7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSSTtMbzswO0w7PG5hcnJvdz4gMzBFQTs7OztOOzs7OzsKK0ZGOTk7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSVTtMbzswO0w7PG5hcnJvdz4gMzBFQjs7OztOOzs7OzsKK0ZGOUE7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSRTtMbzswO0w7PG5hcnJvdz4gMzBFQzs7OztOOzs7OzsKK0ZGOUI7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBSTztMbzswO0w7PG5hcnJvdz4gMzBFRDs7OztOOzs7OzsKK0ZGOUM7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBXQTtMbzswO0w7PG5hcnJvdz4gMzBFRjs7OztOOzs7OzsKK0ZGOUQ7SEFMRldJRFRIIEtBVEFLQU5BIExFVFRFUiBOO0xvOzA7TDs8bmFycm93PiAzMEYzOzs7O047Ozs7OworRkY5RTtIQUxGV0lEVEggS0FUQUtBTkEgVk9JQ0VEIFNPVU5EIE1BUks7TG07MDtMOzxuYXJyb3c+IDMwOTk7Ozs7Tjs7aGFsZndpZHRoIGthdGFrYW5hLWhpcmFnYW5hIHZvaWNlZCBzb3VuZCBtYXJrOzs7CitGRjlGO0hBTEZXSURUSCBLQVRBS0FOQSBTRU1JLVZPSUNFRCBTT1VORCBNQVJLO0xtOzA7TDs8bmFycm93PiAzMDlBOzs7O047O2hhbGZ3aWR0aCBrYXRha2FuYS1oaXJhZ2FuYSBzZW1pLXZvaWNlZCBzb3VuZCBtYXJrOzs7CitGRkEwO0hBTEZXSURUSCBIQU5HVUwgRklMTEVSO0xvOzA7TDs8bmFycm93PiAzMTY0Ozs7O047SEFMRldJRFRIIEhBTkdVTCBDQUUgT007Ozs7CitGRkExO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEtJWUVPSztMbzswO0w7PG5hcnJvdz4gMzEzMTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEdJWUVPRzs7OzsKK0ZGQTI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkdLSVlFT0s7TG87MDtMOzxuYXJyb3c+IDMxMzI7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBHSVlFT0c7Ozs7CitGRkEzO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEtJWUVPSy1TSU9TO0xvOzA7TDs8bmFycm93PiAzMTMzOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgR0lZRU9HIFNJT1M7Ozs7CitGRkE0O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOO0xvOzA7TDs8bmFycm93PiAzMTM0Ozs7O047Ozs7OworRkZBNTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTi1DSUVVQztMbzswO0w7PG5hcnJvdz4gMzEzNTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOIEpJRVVKOzs7OworRkZBNjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBOSUVVTi1ISUVVSDtMbzswO0w7PG5hcnJvdz4gMzEzNjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE5JRVVOIEhJRVVIOzs7OworRkZBNztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBUSUtFVVQ7TG87MDtMOzxuYXJyb3c+IDMxMzc7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBESUdFVUQ7Ozs7CitGRkE4O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HVElLRVVUO0xvOzA7TDs8bmFycm93PiAzMTM4Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgRElHRVVEOzs7OworRkZBOTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTDtMbzswO0w7PG5hcnJvdz4gMzEzOTs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIExJRVVMOzs7OworRkZBQTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1LSVlFT0s7TG87MDtMOzxuYXJyb3c+IDMxM0E7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBHSVlFT0c7Ozs7CitGRkFCO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLU1JRVVNO0xvOzA7TDs8bmFycm93PiAzMTNCOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgTUlFVU07Ozs7CitGRkFDO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLVBJRVVQO0xvOzA7TDs8bmFycm93PiAzMTNDOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgQklFVUI7Ozs7CitGRkFEO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLVNJT1M7TG87MDtMOzxuYXJyb3c+IDMxM0Q7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBTSU9TOzs7OworRkZBRTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBSSUVVTC1USElFVVRIO0xvOzA7TDs8bmFycm93PiAzMTNFOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTElFVUwgVElFVVQ7Ozs7CitGRkFGO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFJJRVVMLVBISUVVUEg7TG87MDtMOzxuYXJyb3c+IDMxM0Y7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBQSUVVUDs7OzsKK0ZGQjA7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUklFVUwtSElFVUg7TG87MDtMOzxuYXJyb3c+IDMxNDA7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBMSUVVTCBISUVVSDs7OzsKK0ZGQjE7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgTUlFVU07TG87MDtMOzxuYXJyb3c+IDMxNDE7Ozs7Tjs7Ozs7CitGRkIyO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFBJRVVQO0xvOzA7TDs8bmFycm93PiAzMTQyOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgQklFVUI7Ozs7CitGRkIzO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HUElFVVA7TG87MDtMOzxuYXJyb3c+IDMxNDM7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FORyBCSUVVQjs7OzsKK0ZGQjQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUElFVVAtU0lPUztMbzswO0w7PG5hcnJvdz4gMzE0NDs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEJJRVVCIFNJT1M7Ozs7CitGRkI1O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNJT1M7TG87MDtMOzxuYXJyb3c+IDMxNDU7Ozs7Tjs7Ozs7CitGRkI2O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HU0lPUztMbzswO0w7PG5hcnJvdz4gMzE0Njs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFNTQU5HIFNJT1M7Ozs7CitGRkI3O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIElFVU5HO0xvOzA7TDs8bmFycm93PiAzMTQ3Ozs7O047Ozs7OworRkZCODtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBDSUVVQztMbzswO0w7PG5hcnJvdz4gMzE0ODs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEpJRVVKOzs7OworRkZCOTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBTU0FOR0NJRVVDO0xvOzA7TDs8bmFycm93PiAzMTQ5Ozs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgU1NBTkcgSklFVUo7Ozs7CitGRkJBO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIENISUVVQ0g7TG87MDtMOzxuYXJyb3c+IDMxNEE7Ozs7TjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBDSUVVQzs7OzsKK0ZGQkI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgS0hJRVVLSDtMbzswO0w7PG5hcnJvdz4gMzE0Qjs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEtJWUVPSzs7OzsKK0ZGQkM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgVEhJRVVUSDtMbzswO0w7PG5hcnJvdz4gMzE0Qzs7OztOO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFRJRVVUOzs7OworRkZCRDtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBQSElFVVBIO0xvOzA7TDs8bmFycm93PiAzMTREOzs7O047SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgUElFVVA7Ozs7CitGRkJFO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEhJRVVIO0xvOzA7TDs8bmFycm93PiAzMTRFOzs7O047Ozs7OworRkZDMjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBBO0xvOzA7TDs8bmFycm93PiAzMTRGOzs7O047Ozs7OworRkZDMztIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBBRTtMbzswO0w7PG5hcnJvdz4gMzE1MDs7OztOOzs7OzsKK0ZGQzQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUE7TG87MDtMOzxuYXJyb3c+IDMxNTE7Ozs7Tjs7Ozs7CitGRkM1O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlBRTtMbzswO0w7PG5hcnJvdz4gMzE1Mjs7OztOOzs7OzsKK0ZGQzY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgRU87TG87MDtMOzxuYXJyb3c+IDMxNTM7Ozs7Tjs7Ozs7CitGRkM3O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEU7TG87MDtMOzxuYXJyb3c+IDMxNTQ7Ozs7Tjs7Ozs7CitGRkNBO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlFTztMbzswO0w7PG5hcnJvdz4gMzE1NTs7OztOOzs7OzsKK0ZGQ0I7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUU7TG87MDtMOzxuYXJyb3c+IDMxNTY7Ozs7Tjs7Ozs7CitGRkNDO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE87TG87MDtMOzxuYXJyb3c+IDMxNTc7Ozs7Tjs7Ozs7CitGRkNEO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFdBO0xvOzA7TDs8bmFycm93PiAzMTU4Ozs7O047Ozs7OworRkZDRTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXQUU7TG87MDtMOzxuYXJyb3c+IDMxNTk7Ozs7Tjs7Ozs7CitGRkNGO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIE9FO0xvOzA7TDs8bmFycm93PiAzMTVBOzs7O047Ozs7OworRkZEMjtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBZTztMbzswO0w7PG5hcnJvdz4gMzE1Qjs7OztOOzs7OzsKK0ZGRDM7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgVTtMbzswO0w7PG5hcnJvdz4gMzE1Qzs7OztOOzs7OzsKK0ZGRDQ7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0VPO0xvOzA7TDs8bmFycm93PiAzMTVEOzs7O047Ozs7OworRkZENTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBXRTtMbzswO0w7PG5hcnJvdz4gMzE1RTs7OztOOzs7OzsKK0ZGRDY7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgV0k7TG87MDtMOzxuYXJyb3c+IDMxNUY7Ozs7Tjs7Ozs7CitGRkQ3O0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIFlVO0xvOzA7TDs8bmFycm93PiAzMTYwOzs7O047Ozs7OworRkZEQTtIQUxGV0lEVEggSEFOR1VMIExFVFRFUiBFVTtMbzswO0w7PG5hcnJvdz4gMzE2MTs7OztOOzs7OzsKK0ZGREI7SEFMRldJRFRIIEhBTkdVTCBMRVRURVIgWUk7TG87MDtMOzxuYXJyb3c+IDMxNjI7Ozs7Tjs7Ozs7CitGRkRDO0hBTEZXSURUSCBIQU5HVUwgTEVUVEVSIEk7TG87MDtMOzxuYXJyb3c+IDMxNjM7Ozs7Tjs7Ozs7CitGRkUwO0ZVTExXSURUSCBDRU5UIFNJR047U2M7MDtFVDs8d2lkZT4gMDBBMjs7OztOOzs7OzsKK0ZGRTE7RlVMTFdJRFRIIFBPVU5EIFNJR047U2M7MDtFVDs8d2lkZT4gMDBBMzs7OztOOzs7OzsKK0ZGRTI7RlVMTFdJRFRIIE5PVCBTSUdOO1NtOzA7T047PHdpZGU+IDAwQUM7Ozs7Tjs7Ozs7CitGRkUzO0ZVTExXSURUSCBNQUNST047U2s7MDtPTjs8d2lkZT4gMDBBRjs7OztOO0ZVTExXSURUSCBTUEFDSU5HIE1BQ1JPTjsqOzs7CitGRkU0O0ZVTExXSURUSCBCUk9LRU4gQkFSO1NvOzA7T047PHdpZGU+IDAwQTY7Ozs7TjtGVUxMV0lEVEggQlJPS0VOIFZFUlRJQ0FMIEJBUjs7OzsKK0ZGRTU7RlVMTFdJRFRIIFlFTiBTSUdOO1NjOzA7RVQ7PHdpZGU+IDAwQTU7Ozs7Tjs7Ozs7CitGRkU2O0ZVTExXSURUSCBXT04gU0lHTjtTYzswO0VUOzx3aWRlPiAyMEE5Ozs7O047Ozs7OworRkZFODtIQUxGV0lEVEggRk9STVMgTElHSFQgVkVSVElDQUw7U287MDtPTjs8bmFycm93PiAyNTAyOzs7O047Ozs7OworRkZFOTtIQUxGV0lEVEggTEVGVFdBUkRTIEFSUk9XO1NtOzA7T047PG5hcnJvdz4gMjE5MDs7OztOOzs7OzsKK0ZGRUE7SEFMRldJRFRIIFVQV0FSRFMgQVJST1c7U207MDtPTjs8bmFycm93PiAyMTkxOzs7O047Ozs7OworRkZFQjtIQUxGV0lEVEggUklHSFRXQVJEUyBBUlJPVztTbTswO09OOzxuYXJyb3c+IDIxOTI7Ozs7Tjs7Ozs7CitGRkVDO0hBTEZXSURUSCBET1dOV0FSRFMgQVJST1c7U207MDtPTjs8bmFycm93PiAyMTkzOzs7O047Ozs7OworRkZFRDtIQUxGV0lEVEggQkxBQ0sgU1FVQVJFO1NvOzA7T047PG5hcnJvdz4gMjVBMDs7OztOOzs7OzsKK0ZGRUU7SEFMRldJRFRIIFdISVRFIENJUkNMRTtTbzswO09OOzxuYXJyb3c+IDI1Q0I7Ozs7Tjs7Ozs7CitGRkY5O0lOVEVSTElORUFSIEFOTk9UQVRJT04gQU5DSE9SO0NmOzA7T047Ozs7O047Ozs7OworRkZGQTtJTlRFUkxJTkVBUiBBTk5PVEFUSU9OIFNFUEFSQVRPUjtDZjswO09OOzs7OztOOzs7OzsKK0ZGRkI7SU5URVJMSU5FQVIgQU5OT1RBVElPTiBURVJNSU5BVE9SO0NmOzA7T047Ozs7O047Ozs7OworRkZGQztPQkpFQ1QgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSO1NvOzA7T047Ozs7O047Ozs7OworRkZGRDtSRVBMQUNFTUVOVCBDSEFSQUNURVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDAwMDtMSU5FQVIgQiBTWUxMQUJMRSBCMDA4IEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMDAxO0xJTkVBUiBCIFNZTExBQkxFIEIwMzggRTtMbzswO0w7Ozs7O047Ozs7OworMTAwMDI7TElORUFSIEIgU1lMTEFCTEUgQjAyOCBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwMztMSU5FQVIgQiBTWUxMQUJMRSBCMDYxIE87TG87MDtMOzs7OztOOzs7OzsKKzEwMDA0O0xJTkVBUiBCIFNZTExBQkxFIEIwMTAgVTtMbzswO0w7Ozs7O047Ozs7OworMTAwMDU7TElORUFSIEIgU1lMTEFCTEUgQjAwMSBEQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMDY7TElORUFSIEIgU1lMTEFCTEUgQjA0NSBERTtMbzswO0w7Ozs7O047Ozs7OworMTAwMDc7TElORUFSIEIgU1lMTEFCTEUgQjAwNyBESTtMbzswO0w7Ozs7O047Ozs7OworMTAwMDg7TElORUFSIEIgU1lMTEFCTEUgQjAxNCBETztMbzswO0w7Ozs7O047Ozs7OworMTAwMDk7TElORUFSIEIgU1lMTEFCTEUgQjA1MSBEVTtMbzswO0w7Ozs7O047Ozs7OworMTAwMEE7TElORUFSIEIgU1lMTEFCTEUgQjA1NyBKQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMEI7TElORUFSIEIgU1lMTEFCTEUgQjA0NiBKRTtMbzswO0w7Ozs7O047Ozs7OworMTAwMEQ7TElORUFSIEIgU1lMTEFCTEUgQjAzNiBKTztMbzswO0w7Ozs7O047Ozs7OworMTAwMEU7TElORUFSIEIgU1lMTEFCTEUgQjA2NSBKVTtMbzswO0w7Ozs7O047Ozs7OworMTAwMEY7TElORUFSIEIgU1lMTEFCTEUgQjA3NyBLQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMTA7TElORUFSIEIgU1lMTEFCTEUgQjA0NCBLRTtMbzswO0w7Ozs7O047Ozs7OworMTAwMTE7TElORUFSIEIgU1lMTEFCTEUgQjA2NyBLSTtMbzswO0w7Ozs7O047Ozs7OworMTAwMTI7TElORUFSIEIgU1lMTEFCTEUgQjA3MCBLTztMbzswO0w7Ozs7O047Ozs7OworMTAwMTM7TElORUFSIEIgU1lMTEFCTEUgQjA4MSBLVTtMbzswO0w7Ozs7O047Ozs7OworMTAwMTQ7TElORUFSIEIgU1lMTEFCTEUgQjA4MCBNQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMTU7TElORUFSIEIgU1lMTEFCTEUgQjAxMyBNRTtMbzswO0w7Ozs7O047Ozs7OworMTAwMTY7TElORUFSIEIgU1lMTEFCTEUgQjA3MyBNSTtMbzswO0w7Ozs7O047Ozs7OworMTAwMTc7TElORUFSIEIgU1lMTEFCTEUgQjAxNSBNTztMbzswO0w7Ozs7O047Ozs7OworMTAwMTg7TElORUFSIEIgU1lMTEFCTEUgQjAyMyBNVTtMbzswO0w7Ozs7O047Ozs7OworMTAwMTk7TElORUFSIEIgU1lMTEFCTEUgQjAwNiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMUE7TElORUFSIEIgU1lMTEFCTEUgQjAyNCBORTtMbzswO0w7Ozs7O047Ozs7OworMTAwMUI7TElORUFSIEIgU1lMTEFCTEUgQjAzMCBOSTtMbzswO0w7Ozs7O047Ozs7OworMTAwMUM7TElORUFSIEIgU1lMTEFCTEUgQjA1MiBOTztMbzswO0w7Ozs7O047Ozs7OworMTAwMUQ7TElORUFSIEIgU1lMTEFCTEUgQjA1NSBOVTtMbzswO0w7Ozs7O047Ozs7OworMTAwMUU7TElORUFSIEIgU1lMTEFCTEUgQjAwMyBQQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMUY7TElORUFSIEIgU1lMTEFCTEUgQjA3MiBQRTtMbzswO0w7Ozs7O047Ozs7OworMTAwMjA7TElORUFSIEIgU1lMTEFCTEUgQjAzOSBQSTtMbzswO0w7Ozs7O047Ozs7OworMTAwMjE7TElORUFSIEIgU1lMTEFCTEUgQjAxMSBQTztMbzswO0w7Ozs7O047Ozs7OworMTAwMjI7TElORUFSIEIgU1lMTEFCTEUgQjA1MCBQVTtMbzswO0w7Ozs7O047Ozs7OworMTAwMjM7TElORUFSIEIgU1lMTEFCTEUgQjAxNiBRQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMjQ7TElORUFSIEIgU1lMTEFCTEUgQjA3OCBRRTtMbzswO0w7Ozs7O047Ozs7OworMTAwMjU7TElORUFSIEIgU1lMTEFCTEUgQjAyMSBRSTtMbzswO0w7Ozs7O047Ozs7OworMTAwMjY7TElORUFSIEIgU1lMTEFCTEUgQjAzMiBRTztMbzswO0w7Ozs7O047Ozs7OworMTAwMjg7TElORUFSIEIgU1lMTEFCTEUgQjA2MCBSQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMjk7TElORUFSIEIgU1lMTEFCTEUgQjAyNyBSRTtMbzswO0w7Ozs7O047Ozs7OworMTAwMkE7TElORUFSIEIgU1lMTEFCTEUgQjA1MyBSSTtMbzswO0w7Ozs7O047Ozs7OworMTAwMkI7TElORUFSIEIgU1lMTEFCTEUgQjAwMiBSTztMbzswO0w7Ozs7O047Ozs7OworMTAwMkM7TElORUFSIEIgU1lMTEFCTEUgQjAyNiBSVTtMbzswO0w7Ozs7O047Ozs7OworMTAwMkQ7TElORUFSIEIgU1lMTEFCTEUgQjAzMSBTQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMkU7TElORUFSIEIgU1lMTEFCTEUgQjAwOSBTRTtMbzswO0w7Ozs7O047Ozs7OworMTAwMkY7TElORUFSIEIgU1lMTEFCTEUgQjA0MSBTSTtMbzswO0w7Ozs7O047Ozs7OworMTAwMzA7TElORUFSIEIgU1lMTEFCTEUgQjAxMiBTTztMbzswO0w7Ozs7O047Ozs7OworMTAwMzE7TElORUFSIEIgU1lMTEFCTEUgQjA1OCBTVTtMbzswO0w7Ozs7O047Ozs7OworMTAwMzI7TElORUFSIEIgU1lMTEFCTEUgQjA1OSBUQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMzM7TElORUFSIEIgU1lMTEFCTEUgQjAwNCBURTtMbzswO0w7Ozs7O047Ozs7OworMTAwMzQ7TElORUFSIEIgU1lMTEFCTEUgQjAzNyBUSTtMbzswO0w7Ozs7O047Ozs7OworMTAwMzU7TElORUFSIEIgU1lMTEFCTEUgQjAwNSBUTztMbzswO0w7Ozs7O047Ozs7OworMTAwMzY7TElORUFSIEIgU1lMTEFCTEUgQjA2OSBUVTtMbzswO0w7Ozs7O047Ozs7OworMTAwMzc7TElORUFSIEIgU1lMTEFCTEUgQjA1NCBXQTtMbzswO0w7Ozs7O047Ozs7OworMTAwMzg7TElORUFSIEIgU1lMTEFCTEUgQjA3NSBXRTtMbzswO0w7Ozs7O047Ozs7OworMTAwMzk7TElORUFSIEIgU1lMTEFCTEUgQjA0MCBXSTtMbzswO0w7Ozs7O047Ozs7OworMTAwM0E7TElORUFSIEIgU1lMTEFCTEUgQjA0MiBXTztMbzswO0w7Ozs7O047Ozs7OworMTAwM0M7TElORUFSIEIgU1lMTEFCTEUgQjAxNyBaQTtMbzswO0w7Ozs7O047Ozs7OworMTAwM0Q7TElORUFSIEIgU1lMTEFCTEUgQjA3NCBaRTtMbzswO0w7Ozs7O047Ozs7OworMTAwM0Y7TElORUFSIEIgU1lMTEFCTEUgQjAyMCBaTztMbzswO0w7Ozs7O047Ozs7OworMTAwNDA7TElORUFSIEIgU1lMTEFCTEUgQjAyNSBBMjtMbzswO0w7Ozs7O047Ozs7OworMTAwNDE7TElORUFSIEIgU1lMTEFCTEUgQjA0MyBBMztMbzswO0w7Ozs7O047Ozs7OworMTAwNDI7TElORUFSIEIgU1lMTEFCTEUgQjA4NSBBVTtMbzswO0w7Ozs7O047Ozs7OworMTAwNDM7TElORUFSIEIgU1lMTEFCTEUgQjA3MSBEV0U7TG87MDtMOzs7OztOOzs7OzsKKzEwMDQ0O0xJTkVBUiBCIFNZTExBQkxFIEIwOTAgRFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0NTtMSU5FQVIgQiBTWUxMQUJMRSBCMDQ4IE5XQTtMbzswO0w7Ozs7O047Ozs7OworMTAwNDY7TElORUFSIEIgU1lMTEFCTEUgQjAyOSBQVTI7TG87MDtMOzs7OztOOzs7OzsKKzEwMDQ3O0xJTkVBUiBCIFNZTExBQkxFIEIwNjIgUFRFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0ODtMSU5FQVIgQiBTWUxMQUJMRSBCMDc2IFJBMjtMbzswO0w7Ozs7O047Ozs7OworMTAwNDk7TElORUFSIEIgU1lMTEFCTEUgQjAzMyBSQTM7TG87MDtMOzs7OztOOzs7OzsKKzEwMDRBO0xJTkVBUiBCIFNZTExBQkxFIEIwNjggUk8yO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA0QjtMSU5FQVIgQiBTWUxMQUJMRSBCMDY2IFRBMjtMbzswO0w7Ozs7O047Ozs7OworMTAwNEM7TElORUFSIEIgU1lMTEFCTEUgQjA4NyBUV0U7TG87MDtMOzs7OztOOzs7OzsKKzEwMDREO0xJTkVBUiBCIFNZTExBQkxFIEIwOTEgVFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA1MDtMSU5FQVIgQiBTWU1CT0wgQjAxODtMbzswO0w7Ozs7O047Ozs7OworMTAwNTE7TElORUFSIEIgU1lNQk9MIEIwMTk7TG87MDtMOzs7OztOOzs7OzsKKzEwMDUyO0xJTkVBUiBCIFNZTUJPTCBCMDIyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA1MztMSU5FQVIgQiBTWU1CT0wgQjAzNDtMbzswO0w7Ozs7O047Ozs7OworMTAwNTQ7TElORUFSIEIgU1lNQk9MIEIwNDc7TG87MDtMOzs7OztOOzs7OzsKKzEwMDU1O0xJTkVBUiBCIFNZTUJPTCBCMDQ5O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA1NjtMSU5FQVIgQiBTWU1CT0wgQjA1NjtMbzswO0w7Ozs7O047Ozs7OworMTAwNTc7TElORUFSIEIgU1lNQk9MIEIwNjM7TG87MDtMOzs7OztOOzs7OzsKKzEwMDU4O0xJTkVBUiBCIFNZTUJPTCBCMDY0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA1OTtMSU5FQVIgQiBTWU1CT0wgQjA3OTtMbzswO0w7Ozs7O047Ozs7OworMTAwNUE7TElORUFSIEIgU1lNQk9MIEIwODI7TG87MDtMOzs7OztOOzs7OzsKKzEwMDVCO0xJTkVBUiBCIFNZTUJPTCBCMDgzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA1QztMSU5FQVIgQiBTWU1CT0wgQjA4NjtMbzswO0w7Ozs7O047Ozs7OworMTAwNUQ7TElORUFSIEIgU1lNQk9MIEIwODk7TG87MDtMOzs7OztOOzs7OzsKKzEwMDgwO0xJTkVBUiBCIElERU9HUkFNIEIxMDAgTUFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4MTtMSU5FQVIgQiBJREVPR1JBTSBCMTAyIFdPTUFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4MjtMSU5FQVIgQiBJREVPR1JBTSBCMTA0IERFRVI7TG87MDtMOzs7OztOOzs7OzsKKzEwMDgzO0xJTkVBUiBCIElERU9HUkFNIEIxMDUgRVFVSUQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMDg0O0xJTkVBUiBCIElERU9HUkFNIEIxMDVGIE1BUkU7TG87MDtMOzs7OztOOzs7OzsKKzEwMDg1O0xJTkVBUiBCIElERU9HUkFNIEIxMDVNIFNUQUxMSU9OO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4NjtMSU5FQVIgQiBJREVPR1JBTSBCMTA2RiBFV0U7TG87MDtMOzs7OztOOzs7OzsKKzEwMDg3O0xJTkVBUiBCIElERU9HUkFNIEIxMDZNIFJBTTtMbzswO0w7Ozs7O047Ozs7OworMTAwODg7TElORUFSIEIgSURFT0dSQU0gQjEwN0YgU0hFLUdPQVQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMDg5O0xJTkVBUiBCIElERU9HUkFNIEIxMDdNIEhFLUdPQVQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMDhBO0xJTkVBUiBCIElERU9HUkFNIEIxMDhGIFNPVztMbzswO0w7Ozs7O047Ozs7OworMTAwOEI7TElORUFSIEIgSURFT0dSQU0gQjEwOE0gQk9BUjtMbzswO0w7Ozs7O047Ozs7OworMTAwOEM7TElORUFSIEIgSURFT0dSQU0gQjEwOUYgQ09XO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4RDtMSU5FQVIgQiBJREVPR1JBTSBCMTA5TSBCVUxMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4RTtMSU5FQVIgQiBJREVPR1JBTSBCMTIwIFdIRUFUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA4RjtMSU5FQVIgQiBJREVPR1JBTSBCMTIxIEJBUkxFWTtMbzswO0w7Ozs7O047Ozs7OworMTAwOTA7TElORUFSIEIgSURFT0dSQU0gQjEyMiBPTElWRTtMbzswO0w7Ozs7O047Ozs7OworMTAwOTE7TElORUFSIEIgSURFT0dSQU0gQjEyMyBTUElDRTtMbzswO0w7Ozs7O047Ozs7OworMTAwOTI7TElORUFSIEIgSURFT0dSQU0gQjEyNSBDWVBFUlVTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5MztMSU5FQVIgQiBNT05PR1JBTSBCMTI3IEtBUE87TG87MDtMOzs7OztOOzs7OzsKKzEwMDk0O0xJTkVBUiBCIE1PTk9HUkFNIEIxMjggS0FOQUtPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5NTtMSU5FQVIgQiBJREVPR1JBTSBCMTMwIE9JTDtMbzswO0w7Ozs7O047Ozs7OworMTAwOTY7TElORUFSIEIgSURFT0dSQU0gQjEzMSBXSU5FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5NztMSU5FQVIgQiBJREVPR1JBTSBCMTMyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5ODtMSU5FQVIgQiBNT05PR1JBTSBCMTMzIEFSRVBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5OTtMSU5FQVIgQiBNT05PR1JBTSBCMTM1IE1FUkk7TG87MDtMOzs7OztOOzs7OzsKKzEwMDlBO0xJTkVBUiBCIElERU9HUkFNIEIxNDAgQlJPTlpFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDA5QjtMSU5FQVIgQiBJREVPR1JBTSBCMTQxIEdPTEQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMDlDO0xJTkVBUiBCIElERU9HUkFNIEIxNDI7TG87MDtMOzs7OztOOzs7OzsKKzEwMDlEO0xJTkVBUiBCIElERU9HUkFNIEIxNDUgV09PTDtMbzswO0w7Ozs7O047Ozs7OworMTAwOUU7TElORUFSIEIgSURFT0dSQU0gQjE0NjtMbzswO0w7Ozs7O047Ozs7OworMTAwOUY7TElORUFSIEIgSURFT0dSQU0gQjE1MDtMbzswO0w7Ozs7O047Ozs7OworMTAwQTA7TElORUFSIEIgSURFT0dSQU0gQjE1MSBIT1JOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBMTtMSU5FQVIgQiBJREVPR1JBTSBCMTUyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBMjtMSU5FQVIgQiBJREVPR1JBTSBCMTUzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBMztMSU5FQVIgQiBJREVPR1JBTSBCMTU0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBNDtMSU5FQVIgQiBNT05PR1JBTSBCMTU2IFRVUk8yO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBNTtMSU5FQVIgQiBJREVPR1JBTSBCMTU3O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBNjtMSU5FQVIgQiBJREVPR1JBTSBCMTU4O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBNztMSU5FQVIgQiBJREVPR1JBTSBCMTU5IENMT1RIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBODtMSU5FQVIgQiBJREVPR1JBTSBCMTYwO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBOTtMSU5FQVIgQiBJREVPR1JBTSBCMTYxO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBQTtMSU5FQVIgQiBJREVPR1JBTSBCMTYyIEdBUk1FTlQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMEFCO0xJTkVBUiBCIElERU9HUkFNIEIxNjMgQVJNT1VSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBQztMSU5FQVIgQiBJREVPR1JBTSBCMTY0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBRDtMSU5FQVIgQiBJREVPR1JBTSBCMTY1O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBRTtMSU5FQVIgQiBJREVPR1JBTSBCMTY2O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBBRjtMSU5FQVIgQiBJREVPR1JBTSBCMTY3O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCMDtMSU5FQVIgQiBJREVPR1JBTSBCMTY4O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCMTtMSU5FQVIgQiBJREVPR1JBTSBCMTY5O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCMjtMSU5FQVIgQiBJREVPR1JBTSBCMTcwO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCMztMSU5FQVIgQiBJREVPR1JBTSBCMTcxO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCNDtMSU5FQVIgQiBJREVPR1JBTSBCMTcyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCNTtMSU5FQVIgQiBJREVPR1JBTSBCMTczIE1PTlRIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCNjtMSU5FQVIgQiBJREVPR1JBTSBCMTc0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBCNztMSU5FQVIgQiBJREVPR1JBTSBCMTc2IFRSRUU7TG87MDtMOzs7OztOOzs7OzsKKzEwMEI4O0xJTkVBUiBCIElERU9HUkFNIEIxNzc7TG87MDtMOzs7OztOOzs7OzsKKzEwMEI5O0xJTkVBUiBCIElERU9HUkFNIEIxNzg7TG87MDtMOzs7OztOOzs7OzsKKzEwMEJBO0xJTkVBUiBCIElERU9HUkFNIEIxNzk7TG87MDtMOzs7OztOOzs7OzsKKzEwMEJCO0xJTkVBUiBCIElERU9HUkFNIEIxODA7TG87MDtMOzs7OztOOzs7OzsKKzEwMEJDO0xJTkVBUiBCIElERU9HUkFNIEIxODE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEJEO0xJTkVBUiBCIElERU9HUkFNIEIxODI7TG87MDtMOzs7OztOOzs7OzsKKzEwMEJFO0xJTkVBUiBCIElERU9HUkFNIEIxODM7TG87MDtMOzs7OztOOzs7OzsKKzEwMEJGO0xJTkVBUiBCIElERU9HUkFNIEIxODQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMEMwO0xJTkVBUiBCIElERU9HUkFNIEIxODU7TG87MDtMOzs7OztOOzs7OzsKKzEwMEMxO0xJTkVBUiBCIElERU9HUkFNIEIxODk7TG87MDtMOzs7OztOOzs7OzsKKzEwMEMyO0xJTkVBUiBCIElERU9HUkFNIEIxOTA7TG87MDtMOzs7OztOOzs7OzsKKzEwMEMzO0xJTkVBUiBCIElERU9HUkFNIEIxOTEgSEVMTUVUO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBDNDtMSU5FQVIgQiBJREVPR1JBTSBCMjIwIEZPT1RTVE9PTDtMbzswO0w7Ozs7O047Ozs7OworMTAwQzU7TElORUFSIEIgSURFT0dSQU0gQjIyNSBCQVRIVFVCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBDNjtMSU5FQVIgQiBJREVPR1JBTSBCMjMwIFNQRUFSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBDNztMSU5FQVIgQiBJREVPR1JBTSBCMjMxIEFSUk9XO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBDODtMSU5FQVIgQiBJREVPR1JBTSBCMjMyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBDOTtMSU5FQVIgQiBJREVPR1JBTSBCMjMzIFNXT1JEO0xvOzA7TDs7Ozs7Tjs7cHVnOzs7CisxMDBDQTtMSU5FQVIgQiBJREVPR1JBTSBCMjM0O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBDQjtMSU5FQVIgQiBJREVPR1JBTSBCMjM2O0xvOzA7TDs7Ozs7Tjs7Z3VwOzs7CisxMDBDQztMSU5FQVIgQiBJREVPR1JBTSBCMjQwIFdIRUVMRUQgQ0hBUklPVDtMbzswO0w7Ozs7O047Ozs7OworMTAwQ0Q7TElORUFSIEIgSURFT0dSQU0gQjI0MSBDSEFSSU9UO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBDRTtMSU5FQVIgQiBJREVPR1JBTSBCMjQyIENIQVJJT1QgRlJBTUU7TG87MDtMOzs7OztOOzs7OzsKKzEwMENGO0xJTkVBUiBCIElERU9HUkFNIEIyNDMgV0hFRUw7TG87MDtMOzs7OztOOzs7OzsKKzEwMEQwO0xJTkVBUiBCIElERU9HUkFNIEIyNDU7TG87MDtMOzs7OztOOzs7OzsKKzEwMEQxO0xJTkVBUiBCIElERU9HUkFNIEIyNDY7TG87MDtMOzs7OztOOzs7OzsKKzEwMEQyO0xJTkVBUiBCIE1PTk9HUkFNIEIyNDcgRElQVEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMEQzO0xJTkVBUiBCIElERU9HUkFNIEIyNDg7TG87MDtMOzs7OztOOzs7OzsKKzEwMEQ0O0xJTkVBUiBCIElERU9HUkFNIEIyNDk7TG87MDtMOzs7OztOOzs7OzsKKzEwMEQ1O0xJTkVBUiBCIElERU9HUkFNIEIyNTE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEQ2O0xJTkVBUiBCIElERU9HUkFNIEIyNTI7TG87MDtMOzs7OztOOzs7OzsKKzEwMEQ3O0xJTkVBUiBCIElERU9HUkFNIEIyNTM7TG87MDtMOzs7OztOOzs7OzsKKzEwMEQ4O0xJTkVBUiBCIElERU9HUkFNIEIyNTQgREFSVDtMbzswO0w7Ozs7O047Ozs7OworMTAwRDk7TElORUFSIEIgSURFT0dSQU0gQjI1NTtMbzswO0w7Ozs7O047Ozs7OworMTAwREE7TElORUFSIEIgSURFT0dSQU0gQjI1NjtMbzswO0w7Ozs7O047Ozs7OworMTAwREI7TElORUFSIEIgSURFT0dSQU0gQjI1NztMbzswO0w7Ozs7O047Ozs7OworMTAwREM7TElORUFSIEIgSURFT0dSQU0gQjI1ODtMbzswO0w7Ozs7O047Ozs7OworMTAwREQ7TElORUFSIEIgSURFT0dSQU0gQjI1OTtMbzswO0w7Ozs7O047Ozs7OworMTAwREU7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIxNTU7TG87MDtMOzs7OztOOzs7OzsKKzEwMERGO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjAwO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFMDtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIwMTtMbzswO0w7Ozs7O047Ozs7OworMTAwRTE7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMDI7TG87MDtMOzs7OztOOzs7OzsKKzEwMEUyO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjAzO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFMztMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIwNDtMbzswO0w7Ozs7O047Ozs7OworMTAwRTQ7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMDU7TG87MDtMOzs7OztOOzs7OzsKKzEwMEU1O0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjA2O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFNjtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIwNztMbzswO0w7Ozs7O047Ozs7OworMTAwRTc7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMDg7TG87MDtMOzs7OztOOzs7OzsKKzEwMEU4O0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjA5O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFOTtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIxMDtMbzswO0w7Ozs7O047Ozs7OworMTAwRUE7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMTE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEVCO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjEyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFQztMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIxMztMbzswO0w7Ozs7O047Ozs7OworMTAwRUQ7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMTQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMEVFO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjE1O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBFRjtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIxNjtMbzswO0w7Ozs7O047Ozs7OworMTAwRjA7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMTc7TG87MDtMOzs7OztOOzs7OzsKKzEwMEYxO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjE4O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBGMjtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIxOTtMbzswO0w7Ozs7O047Ozs7OworMTAwRjM7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMjE7TG87MDtMOzs7OztOOzs7OzsKKzEwMEY0O0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjIyO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBGNTtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIyNjtMbzswO0w7Ozs7O047Ozs7OworMTAwRjY7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyMjc7TG87MDtMOzs7OztOOzs7OzsKKzEwMEY3O0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMjI4O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDBGODtMSU5FQVIgQiBJREVPR1JBTSBWRVNTRUwgQjIyOTtMbzswO0w7Ozs7O047Ozs7OworMTAwRjk7TElORUFSIEIgSURFT0dSQU0gVkVTU0VMIEIyNTA7TG87MDtMOzs7OztOOzs7OzsKKzEwMEZBO0xJTkVBUiBCIElERU9HUkFNIFZFU1NFTCBCMzA1O0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEwMDtBRUdFQU4gV09SRCBTRVBBUkFUT1IgTElORTtQbzswO0w7Ozs7O047Ozs7OworMTAxMDE7QUVHRUFOIFdPUkQgU0VQQVJBVE9SIERPVDtQbzswO09OOzs7OztOOzs7OzsKKzEwMTAyO0FFR0VBTiBDSEVDSyBNQVJLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEwNztBRUdFQU4gTlVNQkVSIE9ORTtObzswO0w7Ozs7MTtOOzs7OzsKKzEwMTA4O0FFR0VBTiBOVU1CRVIgVFdPO05vOzA7TDs7OzsyO047Ozs7OworMTAxMDk7QUVHRUFOIE5VTUJFUiBUSFJFRTtObzswO0w7Ozs7MztOOzs7OzsKKzEwMTBBO0FFR0VBTiBOVU1CRVIgRk9VUjtObzswO0w7Ozs7NDtOOzs7OzsKKzEwMTBCO0FFR0VBTiBOVU1CRVIgRklWRTtObzswO0w7Ozs7NTtOOzs7OzsKKzEwMTBDO0FFR0VBTiBOVU1CRVIgU0lYO05vOzA7TDs7Ozs2O047Ozs7OworMTAxMEQ7QUVHRUFOIE5VTUJFUiBTRVZFTjtObzswO0w7Ozs7NztOOzs7OzsKKzEwMTBFO0FFR0VBTiBOVU1CRVIgRUlHSFQ7Tm87MDtMOzs7Ozg7Tjs7Ozs7CisxMDEwRjtBRUdFQU4gTlVNQkVSIE5JTkU7Tm87MDtMOzs7Ozk7Tjs7Ozs7CisxMDExMDtBRUdFQU4gTlVNQkVSIFRFTjtObzswO0w7Ozs7MTA7Tjs7Ozs7CisxMDExMTtBRUdFQU4gTlVNQkVSIFRXRU5UWTtObzswO0w7Ozs7MjA7Tjs7Ozs7CisxMDExMjtBRUdFQU4gTlVNQkVSIFRISVJUWTtObzswO0w7Ozs7MzA7Tjs7Ozs7CisxMDExMztBRUdFQU4gTlVNQkVSIEZPUlRZO05vOzA7TDs7Ozs0MDtOOzs7OzsKKzEwMTE0O0FFR0VBTiBOVU1CRVIgRklGVFk7Tm87MDtMOzs7OzUwO047Ozs7OworMTAxMTU7QUVHRUFOIE5VTUJFUiBTSVhUWTtObzswO0w7Ozs7NjA7Tjs7Ozs7CisxMDExNjtBRUdFQU4gTlVNQkVSIFNFVkVOVFk7Tm87MDtMOzs7OzcwO047Ozs7OworMTAxMTc7QUVHRUFOIE5VTUJFUiBFSUdIVFk7Tm87MDtMOzs7OzgwO047Ozs7OworMTAxMTg7QUVHRUFOIE5VTUJFUiBOSU5FVFk7Tm87MDtMOzs7OzkwO047Ozs7OworMTAxMTk7QUVHRUFOIE5VTUJFUiBPTkUgSFVORFJFRDtObzswO0w7Ozs7MTAwO047Ozs7OworMTAxMUE7QUVHRUFOIE5VTUJFUiBUV08gSFVORFJFRDtObzswO0w7Ozs7MjAwO047Ozs7OworMTAxMUI7QUVHRUFOIE5VTUJFUiBUSFJFRSBIVU5EUkVEO05vOzA7TDs7OzszMDA7Tjs7Ozs7CisxMDExQztBRUdFQU4gTlVNQkVSIEZPVVIgSFVORFJFRDtObzswO0w7Ozs7NDAwO047Ozs7OworMTAxMUQ7QUVHRUFOIE5VTUJFUiBGSVZFIEhVTkRSRUQ7Tm87MDtMOzs7OzUwMDtOOzs7OzsKKzEwMTFFO0FFR0VBTiBOVU1CRVIgU0lYIEhVTkRSRUQ7Tm87MDtMOzs7OzYwMDtOOzs7OzsKKzEwMTFGO0FFR0VBTiBOVU1CRVIgU0VWRU4gSFVORFJFRDtObzswO0w7Ozs7NzAwO047Ozs7OworMTAxMjA7QUVHRUFOIE5VTUJFUiBFSUdIVCBIVU5EUkVEO05vOzA7TDs7Ozs4MDA7Tjs7Ozs7CisxMDEyMTtBRUdFQU4gTlVNQkVSIE5JTkUgSFVORFJFRDtObzswO0w7Ozs7OTAwO047Ozs7OworMTAxMjI7QUVHRUFOIE5VTUJFUiBPTkUgVEhPVVNBTkQ7Tm87MDtMOzs7OzEwMDA7Tjs7Ozs7CisxMDEyMztBRUdFQU4gTlVNQkVSIFRXTyBUSE9VU0FORDtObzswO0w7Ozs7MjAwMDtOOzs7OzsKKzEwMTI0O0FFR0VBTiBOVU1CRVIgVEhSRUUgVEhPVVNBTkQ7Tm87MDtMOzs7OzMwMDA7Tjs7Ozs7CisxMDEyNTtBRUdFQU4gTlVNQkVSIEZPVVIgVEhPVVNBTkQ7Tm87MDtMOzs7OzQwMDA7Tjs7Ozs7CisxMDEyNjtBRUdFQU4gTlVNQkVSIEZJVkUgVEhPVVNBTkQ7Tm87MDtMOzs7OzUwMDA7Tjs7Ozs7CisxMDEyNztBRUdFQU4gTlVNQkVSIFNJWCBUSE9VU0FORDtObzswO0w7Ozs7NjAwMDtOOzs7OzsKKzEwMTI4O0FFR0VBTiBOVU1CRVIgU0VWRU4gVEhPVVNBTkQ7Tm87MDtMOzs7OzcwMDA7Tjs7Ozs7CisxMDEyOTtBRUdFQU4gTlVNQkVSIEVJR0hUIFRIT1VTQU5EO05vOzA7TDs7Ozs4MDAwO047Ozs7OworMTAxMkE7QUVHRUFOIE5VTUJFUiBOSU5FIFRIT1VTQU5EO05vOzA7TDs7Ozs5MDAwO047Ozs7OworMTAxMkI7QUVHRUFOIE5VTUJFUiBURU4gVEhPVVNBTkQ7Tm87MDtMOzs7OzEwMDAwO047Ozs7OworMTAxMkM7QUVHRUFOIE5VTUJFUiBUV0VOVFkgVEhPVVNBTkQ7Tm87MDtMOzs7OzIwMDAwO047Ozs7OworMTAxMkQ7QUVHRUFOIE5VTUJFUiBUSElSVFkgVEhPVVNBTkQ7Tm87MDtMOzs7OzMwMDAwO047Ozs7OworMTAxMkU7QUVHRUFOIE5VTUJFUiBGT1JUWSBUSE9VU0FORDtObzswO0w7Ozs7NDAwMDA7Tjs7Ozs7CisxMDEyRjtBRUdFQU4gTlVNQkVSIEZJRlRZIFRIT1VTQU5EO05vOzA7TDs7Ozs1MDAwMDtOOzs7OzsKKzEwMTMwO0FFR0VBTiBOVU1CRVIgU0lYVFkgVEhPVVNBTkQ7Tm87MDtMOzs7OzYwMDAwO047Ozs7OworMTAxMzE7QUVHRUFOIE5VTUJFUiBTRVZFTlRZIFRIT1VTQU5EO05vOzA7TDs7Ozs3MDAwMDtOOzs7OzsKKzEwMTMyO0FFR0VBTiBOVU1CRVIgRUlHSFRZIFRIT1VTQU5EO05vOzA7TDs7Ozs4MDAwMDtOOzs7OzsKKzEwMTMzO0FFR0VBTiBOVU1CRVIgTklORVRZIFRIT1VTQU5EO05vOzA7TDs7Ozs5MDAwMDtOOzs7OzsKKzEwMTM3O0FFR0VBTiBXRUlHSFQgQkFTRSBVTklUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEzODtBRUdFQU4gV0VJR0hUIEZJUlNUIFNVQlVOSVQ7U287MDtMOzs7OztOOzs7OzsKKzEwMTM5O0FFR0VBTiBXRUlHSFQgU0VDT05EIFNVQlVOSVQ7U287MDtMOzs7OztOOzs7OzsKKzEwMTNBO0FFR0VBTiBXRUlHSFQgVEhJUkQgU1VCVU5JVDtTbzswO0w7Ozs7O047Ozs7OworMTAxM0I7QUVHRUFOIFdFSUdIVCBGT1VSVEggU1VCVU5JVDtTbzswO0w7Ozs7O047Ozs7OworMTAxM0M7QUVHRUFOIERSWSBNRUFTVVJFIEZJUlNUIFNVQlVOSVQ7U287MDtMOzs7OztOOzs7OzsKKzEwMTNEO0FFR0VBTiBMSVFVSUQgTUVBU1VSRSBGSVJTVCBTVUJVTklUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxMDEzRTtBRUdFQU4gTUVBU1VSRSBTRUNPTkQgU1VCVU5JVDtTbzswO0w7Ozs7O047Ozs7OworMTAxM0Y7QUVHRUFOIE1FQVNVUkUgVEhJUkQgU1VCVU5JVDtTbzswO0w7Ozs7O047Ozs7OworMTAxNDA7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBPTkUgUVVBUlRFUjtObDswO09OOzs7OzEvNDtOOzs7OzsKKzEwMTQxO0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgT05FIEhBTEY7Tmw7MDtPTjs7OzsxLzI7Tjs7Ozs7CisxMDE0MjtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIE9ORSBEUkFDSE1BO05sOzA7T047Ozs7MTtOOzs7OzsKKzEwMTQzO0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgRklWRTtObDswO09OOzs7OzU7Tjs7Ozs7CisxMDE0NDtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIEZJRlRZO05sOzA7T047Ozs7NTA7Tjs7Ozs7CisxMDE0NTtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIEZJVkUgSFVORFJFRDtObDswO09OOzs7OzUwMDtOOzs7OzsKKzEwMTQ2O0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgRklWRSBUSE9VU0FORDtObDswO09OOzs7OzUwMDA7Tjs7Ozs7CisxMDE0NztHUkVFSyBBQ1JPUEhPTklDIEFUVElDIEZJRlRZIFRIT1VTQU5EO05sOzA7T047Ozs7NTAwMDA7Tjs7Ozs7CisxMDE0ODtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIEZJVkUgVEFMRU5UUztObDswO09OOzs7OzU7Tjs7Ozs7CisxMDE0OTtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIFRFTiBUQUxFTlRTO05sOzA7T047Ozs7MTA7Tjs7Ozs7CisxMDE0QTtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIEZJRlRZIFRBTEVOVFM7Tmw7MDtPTjs7Ozs1MDtOOzs7OzsKKzEwMTRCO0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgT05FIEhVTkRSRUQgVEFMRU5UUztObDswO09OOzs7OzEwMDtOOzs7OzsKKzEwMTRDO0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgRklWRSBIVU5EUkVEIFRBTEVOVFM7Tmw7MDtPTjs7Ozs1MDA7Tjs7Ozs7CisxMDE0RDtHUkVFSyBBQ1JPUEhPTklDIEFUVElDIE9ORSBUSE9VU0FORCBUQUxFTlRTO05sOzA7T047Ozs7MTAwMDtOOzs7OzsKKzEwMTRFO0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgRklWRSBUSE9VU0FORCBUQUxFTlRTO05sOzA7T047Ozs7NTAwMDtOOzs7OzsKKzEwMTRGO0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgRklWRSBTVEFURVJTO05sOzA7T047Ozs7NTtOOzs7OzsKKzEwMTUwO0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgVEVOIFNUQVRFUlM7Tmw7MDtPTjs7OzsxMDtOOzs7OzsKKzEwMTUxO0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgRklGVFkgU1RBVEVSUztObDswO09OOzs7OzUwO047Ozs7OworMTAxNTI7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBPTkUgSFVORFJFRCBTVEFURVJTO05sOzA7T047Ozs7MTAwO047Ozs7OworMTAxNTM7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBGSVZFIEhVTkRSRUQgU1RBVEVSUztObDswO09OOzs7OzUwMDtOOzs7OzsKKzEwMTU0O0dSRUVLIEFDUk9QSE9OSUMgQVRUSUMgT05FIFRIT1VTQU5EIFNUQVRFUlM7Tmw7MDtPTjs7OzsxMDAwO047Ozs7OworMTAxNTU7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBURU4gVEhPVVNBTkQgU1RBVEVSUztObDswO09OOzs7OzEwMDAwO047Ozs7OworMTAxNTY7R1JFRUsgQUNST1BIT05JQyBBVFRJQyBGSUZUWSBUSE9VU0FORCBTVEFURVJTO05sOzA7T047Ozs7NTAwMDA7Tjs7Ozs7CisxMDE1NztHUkVFSyBBQ1JPUEhPTklDIEFUVElDIFRFTiBNTkFTO05sOzA7T047Ozs7MTA7Tjs7Ozs7CisxMDE1ODtHUkVFSyBBQ1JPUEhPTklDIEhFUkFFVU0gT05FIFBMRVRIUk9OO05sOzA7T047Ozs7MTtOOzs7OzsKKzEwMTU5O0dSRUVLIEFDUk9QSE9OSUMgVEhFU1BJQU4gT05FO05sOzA7T047Ozs7MTtOOzs7OzsKKzEwMTVBO0dSRUVLIEFDUk9QSE9OSUMgSEVSTUlPTklBTiBPTkU7Tmw7MDtPTjs7OzsxO047Ozs7OworMTAxNUI7R1JFRUsgQUNST1BIT05JQyBFUElEQVVSRUFOIFRXTztObDswO09OOzs7OzI7Tjs7Ozs7CisxMDE1QztHUkVFSyBBQ1JPUEhPTklDIFRIRVNQSUFOIFRXTztObDswO09OOzs7OzI7Tjs7Ozs7CisxMDE1RDtHUkVFSyBBQ1JPUEhPTklDIENZUkVOQUlDIFRXTyBEUkFDSE1BUztObDswO09OOzs7OzI7Tjs7Ozs7CisxMDE1RTtHUkVFSyBBQ1JPUEhPTklDIEVQSURBVVJFQU4gVFdPIERSQUNITUFTO05sOzA7T047Ozs7MjtOOzs7OzsKKzEwMTVGO0dSRUVLIEFDUk9QSE9OSUMgVFJPRVpFTklBTiBGSVZFO05sOzA7T047Ozs7NTtOOzs7OzsKKzEwMTYwO0dSRUVLIEFDUk9QSE9OSUMgVFJPRVpFTklBTiBURU47Tmw7MDtPTjs7OzsxMDtOOzs7OzsKKzEwMTYxO0dSRUVLIEFDUk9QSE9OSUMgVFJPRVpFTklBTiBURU4gQUxURVJOQVRFIEZPUk07Tmw7MDtPTjs7OzsxMDtOOzs7OzsKKzEwMTYyO0dSRUVLIEFDUk9QSE9OSUMgSEVSTUlPTklBTiBURU47Tmw7MDtPTjs7OzsxMDtOOzs7OzsKKzEwMTYzO0dSRUVLIEFDUk9QSE9OSUMgTUVTU0VOSUFOIFRFTjtObDswO09OOzs7OzEwO047Ozs7OworMTAxNjQ7R1JFRUsgQUNST1BIT05JQyBUSEVTUElBTiBURU47Tmw7MDtPTjs7OzsxMDtOOzs7OzsKKzEwMTY1O0dSRUVLIEFDUk9QSE9OSUMgVEhFU1BJQU4gVEhJUlRZO05sOzA7T047Ozs7MzA7Tjs7Ozs7CisxMDE2NjtHUkVFSyBBQ1JPUEhPTklDIFRST0VaRU5JQU4gRklGVFk7Tmw7MDtPTjs7Ozs1MDtOOzs7OzsKKzEwMTY3O0dSRUVLIEFDUk9QSE9OSUMgVFJPRVpFTklBTiBGSUZUWSBBTFRFUk5BVEUgRk9STTtObDswO09OOzs7OzUwO047Ozs7OworMTAxNjg7R1JFRUsgQUNST1BIT05JQyBIRVJNSU9OSUFOIEZJRlRZO05sOzA7T047Ozs7NTA7Tjs7Ozs7CisxMDE2OTtHUkVFSyBBQ1JPUEhPTklDIFRIRVNQSUFOIEZJRlRZO05sOzA7T047Ozs7NTA7Tjs7Ozs7CisxMDE2QTtHUkVFSyBBQ1JPUEhPTklDIFRIRVNQSUFOIE9ORSBIVU5EUkVEO05sOzA7T047Ozs7MTAwO047Ozs7OworMTAxNkI7R1JFRUsgQUNST1BIT05JQyBUSEVTUElBTiBUSFJFRSBIVU5EUkVEO05sOzA7T047Ozs7MzAwO047Ozs7OworMTAxNkM7R1JFRUsgQUNST1BIT05JQyBFUElEQVVSRUFOIEZJVkUgSFVORFJFRDtObDswO09OOzs7OzUwMDtOOzs7OzsKKzEwMTZEO0dSRUVLIEFDUk9QSE9OSUMgVFJPRVpFTklBTiBGSVZFIEhVTkRSRUQ7Tmw7MDtPTjs7Ozs1MDA7Tjs7Ozs7CisxMDE2RTtHUkVFSyBBQ1JPUEhPTklDIFRIRVNQSUFOIEZJVkUgSFVORFJFRDtObDswO09OOzs7OzUwMDtOOzs7OzsKKzEwMTZGO0dSRUVLIEFDUk9QSE9OSUMgQ0FSWVNUSUFOIEZJVkUgSFVORFJFRDtObDswO09OOzs7OzUwMDtOOzs7OzsKKzEwMTcwO0dSRUVLIEFDUk9QSE9OSUMgTkFYSUFOIEZJVkUgSFVORFJFRDtObDswO09OOzs7OzUwMDtOOzs7OzsKKzEwMTcxO0dSRUVLIEFDUk9QSE9OSUMgVEhFU1BJQU4gT05FIFRIT1VTQU5EO05sOzA7T047Ozs7MTAwMDtOOzs7OzsKKzEwMTcyO0dSRUVLIEFDUk9QSE9OSUMgVEhFU1BJQU4gRklWRSBUSE9VU0FORDtObDswO09OOzs7OzUwMDA7Tjs7Ozs7CisxMDE3MztHUkVFSyBBQ1JPUEhPTklDIERFTFBISUMgRklWRSBNTkFTO05sOzA7T047Ozs7NTtOOzs7OzsKKzEwMTc0O0dSRUVLIEFDUk9QSE9OSUMgU1RSQVRJQU4gRklGVFkgTU5BUztObDswO09OOzs7OzUwO047Ozs7OworMTAxNzU7R1JFRUsgT05FIEhBTEYgU0lHTjtObzswO09OOzs7OzEvMjtOOzs7OzsKKzEwMTc2O0dSRUVLIE9ORSBIQUxGIFNJR04gQUxURVJOQVRFIEZPUk07Tm87MDtPTjs7OzsxLzI7Tjs7Ozs7CisxMDE3NztHUkVFSyBUV08gVEhJUkRTIFNJR047Tm87MDtPTjs7OzsyLzM7Tjs7Ozs7CisxMDE3ODtHUkVFSyBUSFJFRSBRVUFSVEVSUyBTSUdOO05vOzA7T047Ozs7My80O047Ozs7OworMTAxNzk7R1JFRUsgWUVBUiBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxN0E7R1JFRUsgVEFMRU5UIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE3QjtHUkVFSyBEUkFDSE1BIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE3QztHUkVFSyBPQk9MIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE3RDtHUkVFSyBUV08gT0JPTFMgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTdFO0dSRUVLIFRIUkVFIE9CT0xTIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE3RjtHUkVFSyBGT1VSIE9CT0xTIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE4MDtHUkVFSyBGSVZFIE9CT0xTIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE4MTtHUkVFSyBNRVRSRVRFUyBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxODI7R1JFRUsgS1lBVEhPUyBCQVNFIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE4MztHUkVFSyBMSVRSQSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxODQ7R1JFRUsgT1VOS0lBIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE4NTtHUkVFSyBYRVNURVMgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTg2O0dSRUVLIEFSVEFCRSBTSUdOO1NvOzA7T047Ozs7O047Ozs7OworMTAxODc7R1JFRUsgQVJPVVJBIFNJR047U287MDtPTjs7Ozs7Tjs7Ozs7CisxMDE4ODtHUkVFSyBHUkFNTUEgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMTg5O0dSRUVLIFRSWUJMSU9OIEJBU0UgU0lHTjtTbzswO09OOzs7OztOOzs7OzsKKzEwMThBO0dSRUVLIFpFUk8gU0lHTjtObzswO09OOzs7OzA7Tjs7Ozs7CisxMDMwMDtPTEQgSVRBTElDIExFVFRFUiBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwMTtPTEQgSVRBTElDIExFVFRFUiBCRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMDI7T0xEIElUQUxJQyBMRVRURVIgS0U7TG87MDtMOzs7OztOOzs7OzsKKzEwMzAzO09MRCBJVEFMSUMgTEVUVEVSIERFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwNDtPTEQgSVRBTElDIExFVFRFUiBFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwNTtPTEQgSVRBTElDIExFVFRFUiBWRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMDY7T0xEIElUQUxJQyBMRVRURVIgWkU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzA3O09MRCBJVEFMSUMgTEVUVEVSIEhFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwODtPTEQgSVRBTElDIExFVFRFUiBUSEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzA5O09MRCBJVEFMSUMgTEVUVEVSIEk7TG87MDtMOzs7OztOOzs7OzsKKzEwMzBBO09MRCBJVEFMSUMgTEVUVEVSIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwQjtPTEQgSVRBTElDIExFVFRFUiBFTDtMbzswO0w7Ozs7O047Ozs7OworMTAzMEM7T0xEIElUQUxJQyBMRVRURVIgRU07TG87MDtMOzs7OztOOzs7OzsKKzEwMzBEO09MRCBJVEFMSUMgTEVUVEVSIEVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMwRTtPTEQgSVRBTElDIExFVFRFUiBFU0g7TG87MDtMOzs7OztOOzs7OzsKKzEwMzBGO09MRCBJVEFMSUMgTEVUVEVSIE87TG87MDtMOzs7OztOOztGYWxpc2Nhbjs7OworMTAzMTA7T0xEIElUQUxJQyBMRVRURVIgUEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzExO09MRCBJVEFMSUMgTEVUVEVSIFNIRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMTI7T0xEIElUQUxJQyBMRVRURVIgS1U7TG87MDtMOzs7OztOOzs7OzsKKzEwMzEzO09MRCBJVEFMSUMgTEVUVEVSIEVSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMxNDtPTEQgSVRBTElDIExFVFRFUiBFUztMbzswO0w7Ozs7O047Ozs7OworMTAzMTU7T0xEIElUQUxJQyBMRVRURVIgVEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzE2O09MRCBJVEFMSUMgTEVUVEVSIFU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzE3O09MRCBJVEFMSUMgTEVUVEVSIEVLUztMbzswO0w7Ozs7O047O0ZhbGlzY2FuOzs7CisxMDMxODtPTEQgSVRBTElDIExFVFRFUiBQSEU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzE5O09MRCBJVEFMSUMgTEVUVEVSIEtIRTtMbzswO0w7Ozs7O047Ozs7OworMTAzMUE7T0xEIElUQUxJQyBMRVRURVIgRUY7TG87MDtMOzs7OztOOzs7OzsKKzEwMzFCO09MRCBJVEFMSUMgTEVUVEVSIEVSUztMbzswO0w7Ozs7O047O1VtYnJpYW47OzsKKzEwMzFDO09MRCBJVEFMSUMgTEVUVEVSIENIRTtMbzswO0w7Ozs7O047O1VtYnJpYW47OzsKKzEwMzFEO09MRCBJVEFMSUMgTEVUVEVSIElJO0xvOzA7TDs7Ozs7Tjs7T3NjYW47OzsKKzEwMzFFO09MRCBJVEFMSUMgTEVUVEVSIFVVO0xvOzA7TDs7Ozs7Tjs7T3NjYW47OzsKKzEwMzIwO09MRCBJVEFMSUMgTlVNRVJBTCBPTkU7Tm87MDtMOzs7OzE7Tjs7Ozs7CisxMDMyMTtPTEQgSVRBTElDIE5VTUVSQUwgRklWRTtObzswO0w7Ozs7NTtOOzs7OzsKKzEwMzIyO09MRCBJVEFMSUMgTlVNRVJBTCBURU47Tm87MDtMOzs7OzEwO047Ozs7OworMTAzMjM7T0xEIElUQUxJQyBOVU1FUkFMIEZJRlRZO05vOzA7TDs7Ozs1MDtOOzs7OzsKKzEwMzMwO0dPVEhJQyBMRVRURVIgQUhTQTtMbzswO0w7Ozs7O047Ozs7OworMTAzMzE7R09USElDIExFVFRFUiBCQUlSS0FOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzMjtHT1RISUMgTEVUVEVSIEdJQkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzMzO0dPVEhJQyBMRVRURVIgREFHUztMbzswO0w7Ozs7O047Ozs7OworMTAzMzQ7R09USElDIExFVFRFUiBBSUhWVVM7TG87MDtMOzs7OztOOzs7OzsKKzEwMzM1O0dPVEhJQyBMRVRURVIgUUFJUlRIUkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzM2O0dPVEhJQyBMRVRURVIgSVVKQTtMbzswO0w7Ozs7O047Ozs7OworMTAzMzc7R09USElDIExFVFRFUiBIQUdMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzODtHT1RISUMgTEVUVEVSIFRISVVUSDtMbzswO0w7Ozs7O047Ozs7OworMTAzMzk7R09USElDIExFVFRFUiBFSVM7TG87MDtMOzs7OztOOzs7OzsKKzEwMzNBO0dPVEhJQyBMRVRURVIgS1VTTUE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzNCO0dPVEhJQyBMRVRURVIgTEFHVVM7TG87MDtMOzs7OztOOzs7OzsKKzEwMzNDO0dPVEhJQyBMRVRURVIgTUFOTkE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzNEO0dPVEhJQyBMRVRURVIgTkFVVEhTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDMzRTtHT1RISUMgTEVUVEVSIEpFUjtMbzswO0w7Ozs7O047Ozs7OworMTAzM0Y7R09USElDIExFVFRFUiBVUlVTO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM0MDtHT1RISUMgTEVUVEVSIFBBSVJUSFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM0MTtHT1RISUMgTEVUVEVSIE5JTkVUWTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDI7R09USElDIExFVFRFUiBSQUlEQTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDM7R09USElDIExFVFRFUiBTQVVJTDtMbzswO0w7Ozs7O047Ozs7OworMTAzNDQ7R09USElDIExFVFRFUiBURUlXUztMbzswO0w7Ozs7O047Ozs7OworMTAzNDU7R09USElDIExFVFRFUiBXSU5KQTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDY7R09USElDIExFVFRFUiBGQUlIVTtMbzswO0w7Ozs7O047Ozs7OworMTAzNDc7R09USElDIExFVFRFUiBJR0dXUztMbzswO0w7Ozs7O047Ozs7OworMTAzNDg7R09USElDIExFVFRFUiBIV0FJUjtMbzswO0w7Ozs7O047Ozs7OworMTAzNDk7R09USElDIExFVFRFUiBPVEhBTDtMbzswO0w7Ozs7O047Ozs7OworMTAzNEE7R09USElDIExFVFRFUiBOSU5FIEhVTkRSRUQ7Tmw7MDtMOzs7OzkwMDtOOzs7OzsKKzEwMzgwO1VHQVJJVElDIExFVFRFUiBBTFBBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4MTtVR0FSSVRJQyBMRVRURVIgQkVUQTtMbzswO0w7Ozs7O047Ozs7OworMTAzODI7VUdBUklUSUMgTEVUVEVSIEdBTUxBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4MztVR0FSSVRJQyBMRVRURVIgS0hBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4NDtVR0FSSVRJQyBMRVRURVIgREVMVEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzg1O1VHQVJJVElDIExFVFRFUiBITztMbzswO0w7Ozs7O047Ozs7OworMTAzODY7VUdBUklUSUMgTEVUVEVSIFdPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4NztVR0FSSVRJQyBMRVRURVIgWkVUQTtMbzswO0w7Ozs7O047Ozs7OworMTAzODg7VUdBUklUSUMgTEVUVEVSIEhPVEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzg5O1VHQVJJVElDIExFVFRFUiBURVQ7TG87MDtMOzs7OztOOzs7OzsKKzEwMzhBO1VHQVJJVElDIExFVFRFUiBZT0Q7TG87MDtMOzs7OztOOzs7OzsKKzEwMzhCO1VHQVJJVElDIExFVFRFUiBLQUY7TG87MDtMOzs7OztOOzs7OzsKKzEwMzhDO1VHQVJJVElDIExFVFRFUiBTSElOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM4RDtVR0FSSVRJQyBMRVRURVIgTEFNREE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzhFO1VHQVJJVElDIExFVFRFUiBNRU07TG87MDtMOzs7OztOOzs7OzsKKzEwMzhGO1VHQVJJVElDIExFVFRFUiBESEFMO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM5MDtVR0FSSVRJQyBMRVRURVIgTlVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM5MTtVR0FSSVRJQyBMRVRURVIgWlU7TG87MDtMOzs7OztOOzs7OzsKKzEwMzkyO1VHQVJJVElDIExFVFRFUiBTQU1LQTtMbzswO0w7Ozs7O047Ozs7OworMTAzOTM7VUdBUklUSUMgTEVUVEVSIEFJTjtMbzswO0w7Ozs7O047Ozs7OworMTAzOTQ7VUdBUklUSUMgTEVUVEVSIFBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM5NTtVR0FSSVRJQyBMRVRURVIgU0FERTtMbzswO0w7Ozs7O047Ozs7OworMTAzOTY7VUdBUklUSUMgTEVUVEVSIFFPUEE7TG87MDtMOzs7OztOOzs7OzsKKzEwMzk3O1VHQVJJVElDIExFVFRFUiBSQVNIQTtMbzswO0w7Ozs7O047Ozs7OworMTAzOTg7VUdBUklUSUMgTEVUVEVSIFRIQU5OQTtMbzswO0w7Ozs7O047Ozs7OworMTAzOTk7VUdBUklUSUMgTEVUVEVSIEdIQUlOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM5QTtVR0FSSVRJQyBMRVRURVIgVE87TG87MDtMOzs7OztOOzs7OzsKKzEwMzlCO1VHQVJJVElDIExFVFRFUiBJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDM5QztVR0FSSVRJQyBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTAzOUQ7VUdBUklUSUMgTEVUVEVSIFNTVTtMbzswO0w7Ozs7O047Ozs7OworMTAzOUY7VUdBUklUSUMgV09SRCBESVZJREVSO1BvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBMDtPTEQgUEVSU0lBTiBTSUdOIEE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0ExO09MRCBQRVJTSUFOIFNJR04gSTtMbzswO0w7Ozs7O047Ozs7OworMTAzQTI7T0xEIFBFUlNJQU4gU0lHTiBVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBMztPTEQgUEVSU0lBTiBTSUdOIEtBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBNDtPTEQgUEVSU0lBTiBTSUdOIEtVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBNTtPTEQgUEVSU0lBTiBTSUdOIEdBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBNjtPTEQgUEVSU0lBTiBTSUdOIEdVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBNztPTEQgUEVSU0lBTiBTSUdOIFhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBODtPTEQgUEVSU0lBTiBTSUdOIENBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBOTtPTEQgUEVSU0lBTiBTSUdOIEpBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBQTtPTEQgUEVSU0lBTiBTSUdOIEpJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBQjtPTEQgUEVSU0lBTiBTSUdOIFRBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBQztPTEQgUEVSU0lBTiBTSUdOIFRVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBRDtPTEQgUEVSU0lBTiBTSUdOIERBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBRTtPTEQgUEVSU0lBTiBTSUdOIERJO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNBRjtPTEQgUEVSU0lBTiBTSUdOIERVO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNCMDtPTEQgUEVSU0lBTiBTSUdOIFRIQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjE7T0xEIFBFUlNJQU4gU0lHTiBQQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjI7T0xEIFBFUlNJQU4gU0lHTiBCQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjM7T0xEIFBFUlNJQU4gU0lHTiBGQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjQ7T0xEIFBFUlNJQU4gU0lHTiBOQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjU7T0xEIFBFUlNJQU4gU0lHTiBOVTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjY7T0xEIFBFUlNJQU4gU0lHTiBNQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjc7T0xEIFBFUlNJQU4gU0lHTiBNSTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjg7T0xEIFBFUlNJQU4gU0lHTiBNVTtMbzswO0w7Ozs7O047Ozs7OworMTAzQjk7T0xEIFBFUlNJQU4gU0lHTiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQkE7T0xEIFBFUlNJQU4gU0lHTiBWQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQkI7T0xEIFBFUlNJQU4gU0lHTiBWSTtMbzswO0w7Ozs7O047Ozs7OworMTAzQkM7T0xEIFBFUlNJQU4gU0lHTiBSQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQkQ7T0xEIFBFUlNJQU4gU0lHTiBSVTtMbzswO0w7Ozs7O047Ozs7OworMTAzQkU7T0xEIFBFUlNJQU4gU0lHTiBMQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQkY7T0xEIFBFUlNJQU4gU0lHTiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQzA7T0xEIFBFUlNJQU4gU0lHTiBaQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQzE7T0xEIFBFUlNJQU4gU0lHTiBTSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0MyO09MRCBQRVJTSUFOIFNJR04gU1NBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNDMztPTEQgUEVSU0lBTiBTSUdOIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNDODtPTEQgUEVSU0lBTiBTSUdOIEFVUkFNQVpEQUE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0M5O09MRCBQRVJTSUFOIFNJR04gQVVSQU1BWkRBQS0yO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNDQTtPTEQgUEVSU0lBTiBTSUdOIEFVUkFNQVpEQUFIQTtMbzswO0w7Ozs7O047Ozs7OworMTAzQ0I7T0xEIFBFUlNJQU4gU0lHTiBYU0hBQVlBVEhJWUE7TG87MDtMOzs7OztOOzs7OzsKKzEwM0NDO09MRCBQRVJTSUFOIFNJR04gREFIWUFBVVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNDRDtPTEQgUEVSU0lBTiBTSUdOIERBSFlBQVVTSC0yO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNDRTtPTEQgUEVSU0lBTiBTSUdOIEJBR0E7TG87MDtMOzs7OztOOzs7OzsKKzEwM0NGO09MRCBQRVJTSUFOIFNJR04gQlVVTUlTSDtMbzswO0w7Ozs7O047Ozs7OworMTAzRDA7T0xEIFBFUlNJQU4gV09SRCBESVZJREVSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxMDNEMTtPTEQgUEVSU0lBTiBOVU1CRVIgT05FO05sOzA7T047Ozs7MTtOOzs7OzsKKzEwM0QyO09MRCBQRVJTSUFOIE5VTUJFUiBUV087Tmw7MDtPTjs7OzsyO047Ozs7OworMTAzRDM7T0xEIFBFUlNJQU4gTlVNQkVSIFRFTjtObDswO09OOzs7OzEwO047Ozs7OworMTAzRDQ7T0xEIFBFUlNJQU4gTlVNQkVSIFRXRU5UWTtObDswO09OOzs7OzIwO047Ozs7OworMTAzRDU7T0xEIFBFUlNJQU4gTlVNQkVSIEhVTkRSRUQ7Tmw7MDtPTjs7OzsxMDA7Tjs7Ozs7CisxMDQwMDtERVNFUkVUIENBUElUQUwgTEVUVEVSIExPTkcgSTtMdTswO0w7Ozs7O047Ozs7MTA0Mjg7CisxMDQwMTtERVNFUkVUIENBUElUQUwgTEVUVEVSIExPTkcgRTtMdTswO0w7Ozs7O047Ozs7MTA0Mjk7CisxMDQwMjtERVNFUkVUIENBUElUQUwgTEVUVEVSIExPTkcgQTtMdTswO0w7Ozs7O047Ozs7MTA0MkE7CisxMDQwMztERVNFUkVUIENBUElUQUwgTEVUVEVSIExPTkcgQUg7THU7MDtMOzs7OztOOzs7OzEwNDJCOworMTA0MDQ7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBMT05HIE87THU7MDtMOzs7OztOOzs7OzEwNDJDOworMTA0MDU7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBMT05HIE9PO0x1OzA7TDs7Ozs7Tjs7OzsxMDQyRDsKKzEwNDA2O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgU0hPUlQgSTtMdTswO0w7Ozs7O047Ozs7MTA0MkU7CisxMDQwNztERVNFUkVUIENBUElUQUwgTEVUVEVSIFNIT1JUIEU7THU7MDtMOzs7OztOOzs7OzEwNDJGOworMTA0MDg7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBTSE9SVCBBO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzMDsKKzEwNDA5O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgU0hPUlQgQUg7THU7MDtMOzs7OztOOzs7OzEwNDMxOworMTA0MEE7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBTSE9SVCBPO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzMjsKKzEwNDBCO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgU0hPUlQgT087THU7MDtMOzs7OztOOzs7OzEwNDMzOworMTA0MEM7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBBWTtMdTswO0w7Ozs7O047Ozs7MTA0MzQ7CisxMDQwRDtERVNFUkVUIENBUElUQUwgTEVUVEVSIE9XO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzNTsKKzEwNDBFO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgV1U7THU7MDtMOzs7OztOOzs7OzEwNDM2OworMTA0MEY7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBZRUU7THU7MDtMOzs7OztOOzs7OzEwNDM3OworMTA0MTA7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBIO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzODsKKzEwNDExO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgUEVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzOTsKKzEwNDEyO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgQkVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzQTsKKzEwNDEzO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgVEVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzQjsKKzEwNDE0O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgREVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQzQzsKKzEwNDE1O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgQ0hFRTtMdTswO0w7Ozs7O047Ozs7MTA0M0Q7CisxMDQxNjtERVNFUkVUIENBUElUQUwgTEVUVEVSIEpFRTtMdTswO0w7Ozs7O047Ozs7MTA0M0U7CisxMDQxNztERVNFUkVUIENBUElUQUwgTEVUVEVSIEtBWTtMdTswO0w7Ozs7O047Ozs7MTA0M0Y7CisxMDQxODtERVNFUkVUIENBUElUQUwgTEVUVEVSIEdBWTtMdTswO0w7Ozs7O047Ozs7MTA0NDA7CisxMDQxOTtERVNFUkVUIENBUElUQUwgTEVUVEVSIEVGO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0MTsKKzEwNDFBO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgVkVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0MjsKKzEwNDFCO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRVRIO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0MzsKKzEwNDFDO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgVEhFRTtMdTswO0w7Ozs7O047Ozs7MTA0NDQ7CisxMDQxRDtERVNFUkVUIENBUElUQUwgTEVUVEVSIEVTO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0NTsKKzEwNDFFO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgWkVFO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0NjsKKzEwNDFGO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRVNIO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0NzsKKzEwNDIwO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgWkhFRTtMdTswO0w7Ozs7O047Ozs7MTA0NDg7CisxMDQyMTtERVNFUkVUIENBUElUQUwgTEVUVEVSIEVSO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0OTsKKzEwNDIyO0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRUw7THU7MDtMOzs7OztOOzs7OzEwNDRBOworMTA0MjM7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFTTtMdTswO0w7Ozs7O047Ozs7MTA0NEI7CisxMDQyNDtERVNFUkVUIENBUElUQUwgTEVUVEVSIEVOO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0QzsKKzEwNDI1O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgRU5HO0x1OzA7TDs7Ozs7Tjs7OzsxMDQ0RDsKKzEwNDI2O0RFU0VSRVQgQ0FQSVRBTCBMRVRURVIgT0k7THU7MDtMOzs7OztOOzs7OzEwNDRFOworMTA0Mjc7REVTRVJFVCBDQVBJVEFMIExFVFRFUiBFVztMdTswO0w7Ozs7O047Ozs7MTA0NEY7CisxMDQyODtERVNFUkVUIFNNQUxMIExFVFRFUiBMT05HIEk7TGw7MDtMOzs7OztOOzs7MTA0MDA7OzEwNDAwCisxMDQyOTtERVNFUkVUIFNNQUxMIExFVFRFUiBMT05HIEU7TGw7MDtMOzs7OztOOzs7MTA0MDE7OzEwNDAxCisxMDQyQTtERVNFUkVUIFNNQUxMIExFVFRFUiBMT05HIEE7TGw7MDtMOzs7OztOOzs7MTA0MDI7OzEwNDAyCisxMDQyQjtERVNFUkVUIFNNQUxMIExFVFRFUiBMT05HIEFIO0xsOzA7TDs7Ozs7Tjs7OzEwNDAzOzsxMDQwMworMTA0MkM7REVTRVJFVCBTTUFMTCBMRVRURVIgTE9ORyBPO0xsOzA7TDs7Ozs7Tjs7OzEwNDA0OzsxMDQwNAorMTA0MkQ7REVTRVJFVCBTTUFMTCBMRVRURVIgTE9ORyBPTztMbDswO0w7Ozs7O047OzsxMDQwNTs7MTA0MDUKKzEwNDJFO0RFU0VSRVQgU01BTEwgTEVUVEVSIFNIT1JUIEk7TGw7MDtMOzs7OztOOzs7MTA0MDY7OzEwNDA2CisxMDQyRjtERVNFUkVUIFNNQUxMIExFVFRFUiBTSE9SVCBFO0xsOzA7TDs7Ozs7Tjs7OzEwNDA3OzsxMDQwNworMTA0MzA7REVTRVJFVCBTTUFMTCBMRVRURVIgU0hPUlQgQTtMbDswO0w7Ozs7O047OzsxMDQwODs7MTA0MDgKKzEwNDMxO0RFU0VSRVQgU01BTEwgTEVUVEVSIFNIT1JUIEFIO0xsOzA7TDs7Ozs7Tjs7OzEwNDA5OzsxMDQwOQorMTA0MzI7REVTRVJFVCBTTUFMTCBMRVRURVIgU0hPUlQgTztMbDswO0w7Ozs7O047OzsxMDQwQTs7MTA0MEEKKzEwNDMzO0RFU0VSRVQgU01BTEwgTEVUVEVSIFNIT1JUIE9PO0xsOzA7TDs7Ozs7Tjs7OzEwNDBCOzsxMDQwQgorMTA0MzQ7REVTRVJFVCBTTUFMTCBMRVRURVIgQVk7TGw7MDtMOzs7OztOOzs7MTA0MEM7OzEwNDBDCisxMDQzNTtERVNFUkVUIFNNQUxMIExFVFRFUiBPVztMbDswO0w7Ozs7O047OzsxMDQwRDs7MTA0MEQKKzEwNDM2O0RFU0VSRVQgU01BTEwgTEVUVEVSIFdVO0xsOzA7TDs7Ozs7Tjs7OzEwNDBFOzsxMDQwRQorMTA0Mzc7REVTRVJFVCBTTUFMTCBMRVRURVIgWUVFO0xsOzA7TDs7Ozs7Tjs7OzEwNDBGOzsxMDQwRgorMTA0Mzg7REVTRVJFVCBTTUFMTCBMRVRURVIgSDtMbDswO0w7Ozs7O047OzsxMDQxMDs7MTA0MTAKKzEwNDM5O0RFU0VSRVQgU01BTEwgTEVUVEVSIFBFRTtMbDswO0w7Ozs7O047OzsxMDQxMTs7MTA0MTEKKzEwNDNBO0RFU0VSRVQgU01BTEwgTEVUVEVSIEJFRTtMbDswO0w7Ozs7O047OzsxMDQxMjs7MTA0MTIKKzEwNDNCO0RFU0VSRVQgU01BTEwgTEVUVEVSIFRFRTtMbDswO0w7Ozs7O047OzsxMDQxMzs7MTA0MTMKKzEwNDNDO0RFU0VSRVQgU01BTEwgTEVUVEVSIERFRTtMbDswO0w7Ozs7O047OzsxMDQxNDs7MTA0MTQKKzEwNDNEO0RFU0VSRVQgU01BTEwgTEVUVEVSIENIRUU7TGw7MDtMOzs7OztOOzs7MTA0MTU7OzEwNDE1CisxMDQzRTtERVNFUkVUIFNNQUxMIExFVFRFUiBKRUU7TGw7MDtMOzs7OztOOzs7MTA0MTY7OzEwNDE2CisxMDQzRjtERVNFUkVUIFNNQUxMIExFVFRFUiBLQVk7TGw7MDtMOzs7OztOOzs7MTA0MTc7OzEwNDE3CisxMDQ0MDtERVNFUkVUIFNNQUxMIExFVFRFUiBHQVk7TGw7MDtMOzs7OztOOzs7MTA0MTg7OzEwNDE4CisxMDQ0MTtERVNFUkVUIFNNQUxMIExFVFRFUiBFRjtMbDswO0w7Ozs7O047OzsxMDQxOTs7MTA0MTkKKzEwNDQyO0RFU0VSRVQgU01BTEwgTEVUVEVSIFZFRTtMbDswO0w7Ozs7O047OzsxMDQxQTs7MTA0MUEKKzEwNDQzO0RFU0VSRVQgU01BTEwgTEVUVEVSIEVUSDtMbDswO0w7Ozs7O047OzsxMDQxQjs7MTA0MUIKKzEwNDQ0O0RFU0VSRVQgU01BTEwgTEVUVEVSIFRIRUU7TGw7MDtMOzs7OztOOzs7MTA0MUM7OzEwNDFDCisxMDQ0NTtERVNFUkVUIFNNQUxMIExFVFRFUiBFUztMbDswO0w7Ozs7O047OzsxMDQxRDs7MTA0MUQKKzEwNDQ2O0RFU0VSRVQgU01BTEwgTEVUVEVSIFpFRTtMbDswO0w7Ozs7O047OzsxMDQxRTs7MTA0MUUKKzEwNDQ3O0RFU0VSRVQgU01BTEwgTEVUVEVSIEVTSDtMbDswO0w7Ozs7O047OzsxMDQxRjs7MTA0MUYKKzEwNDQ4O0RFU0VSRVQgU01BTEwgTEVUVEVSIFpIRUU7TGw7MDtMOzs7OztOOzs7MTA0MjA7OzEwNDIwCisxMDQ0OTtERVNFUkVUIFNNQUxMIExFVFRFUiBFUjtMbDswO0w7Ozs7O047OzsxMDQyMTs7MTA0MjEKKzEwNDRBO0RFU0VSRVQgU01BTEwgTEVUVEVSIEVMO0xsOzA7TDs7Ozs7Tjs7OzEwNDIyOzsxMDQyMgorMTA0NEI7REVTRVJFVCBTTUFMTCBMRVRURVIgRU07TGw7MDtMOzs7OztOOzs7MTA0MjM7OzEwNDIzCisxMDQ0QztERVNFUkVUIFNNQUxMIExFVFRFUiBFTjtMbDswO0w7Ozs7O047OzsxMDQyNDs7MTA0MjQKKzEwNDREO0RFU0VSRVQgU01BTEwgTEVUVEVSIEVORztMbDswO0w7Ozs7O047OzsxMDQyNTs7MTA0MjUKKzEwNDRFO0RFU0VSRVQgU01BTEwgTEVUVEVSIE9JO0xsOzA7TDs7Ozs7Tjs7OzEwNDI2OzsxMDQyNgorMTA0NEY7REVTRVJFVCBTTUFMTCBMRVRURVIgRVc7TGw7MDtMOzs7OztOOzs7MTA0Mjc7OzEwNDI3CisxMDQ1MDtTSEFWSUFOIExFVFRFUiBQRUVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1MTtTSEFWSUFOIExFVFRFUiBUT1Q7TG87MDtMOzs7OztOOzs7OzsKKzEwNDUyO1NIQVZJQU4gTEVUVEVSIEtJQ0s7TG87MDtMOzs7OztOOzs7OzsKKzEwNDUzO1NIQVZJQU4gTEVUVEVSIEZFRTtMbzswO0w7Ozs7O047Ozs7OworMTA0NTQ7U0hBVklBTiBMRVRURVIgVEhJR0g7TG87MDtMOzs7OztOOzs7OzsKKzEwNDU1O1NIQVZJQU4gTEVUVEVSIFNPO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1NjtTSEFWSUFOIExFVFRFUiBTVVJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1NztTSEFWSUFOIExFVFRFUiBDSFVSQ0g7TG87MDtMOzs7OztOOzs7OzsKKzEwNDU4O1NIQVZJQU4gTEVUVEVSIFlFQTtMbzswO0w7Ozs7O047Ozs7OworMTA0NTk7U0hBVklBTiBMRVRURVIgSFVORztMbzswO0w7Ozs7O047Ozs7OworMTA0NUE7U0hBVklBTiBMRVRURVIgQklCO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1QjtTSEFWSUFOIExFVFRFUiBERUFEO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ1QztTSEFWSUFOIExFVFRFUiBHQUc7TG87MDtMOzs7OztOOzs7OzsKKzEwNDVEO1NIQVZJQU4gTEVUVEVSIFZPVztMbzswO0w7Ozs7O047Ozs7OworMTA0NUU7U0hBVklBTiBMRVRURVIgVEhFWTtMbzswO0w7Ozs7O047Ozs7OworMTA0NUY7U0hBVklBTiBMRVRURVIgWk9PO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2MDtTSEFWSUFOIExFVFRFUiBNRUFTVVJFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2MTtTSEFWSUFOIExFVFRFUiBKVURHRTtMbzswO0w7Ozs7O047Ozs7OworMTA0NjI7U0hBVklBTiBMRVRURVIgV09FO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2MztTSEFWSUFOIExFVFRFUiBIQS1IQTtMbzswO0w7Ozs7O047Ozs7OworMTA0NjQ7U0hBVklBTiBMRVRURVIgTE9MTDtMbzswO0w7Ozs7O047Ozs7OworMTA0NjU7U0hBVklBTiBMRVRURVIgTUlNRTtMbzswO0w7Ozs7O047Ozs7OworMTA0NjY7U0hBVklBTiBMRVRURVIgSUY7TG87MDtMOzs7OztOOzs7OzsKKzEwNDY3O1NIQVZJQU4gTEVUVEVSIEVHRztMbzswO0w7Ozs7O047Ozs7OworMTA0Njg7U0hBVklBTiBMRVRURVIgQVNIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2OTtTSEFWSUFOIExFVFRFUiBBRE87TG87MDtMOzs7OztOOzs7OzsKKzEwNDZBO1NIQVZJQU4gTEVUVEVSIE9OO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2QjtTSEFWSUFOIExFVFRFUiBXT09MO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2QztTSEFWSUFOIExFVFRFUiBPVVQ7TG87MDtMOzs7OztOOzs7OzsKKzEwNDZEO1NIQVZJQU4gTEVUVEVSIEFIO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2RTtTSEFWSUFOIExFVFRFUiBST0FSO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ2RjtTSEFWSUFOIExFVFRFUiBOVU47TG87MDtMOzs7OztOOzs7OzsKKzEwNDcwO1NIQVZJQU4gTEVUVEVSIEVBVDtMbzswO0w7Ozs7O047Ozs7OworMTA0NzE7U0hBVklBTiBMRVRURVIgQUdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3MjtTSEFWSUFOIExFVFRFUiBJQ0U7TG87MDtMOzs7OztOOzs7OzsKKzEwNDczO1NIQVZJQU4gTEVUVEVSIFVQO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3NDtTSEFWSUFOIExFVFRFUiBPQUs7TG87MDtMOzs7OztOOzs7OzsKKzEwNDc1O1NIQVZJQU4gTEVUVEVSIE9PWkU7TG87MDtMOzs7OztOOzs7OzsKKzEwNDc2O1NIQVZJQU4gTEVUVEVSIE9JTDtMbzswO0w7Ozs7O047Ozs7OworMTA0Nzc7U0hBVklBTiBMRVRURVIgQVdFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3ODtTSEFWSUFOIExFVFRFUiBBUkU7TG87MDtMOzs7OztOOzs7OzsKKzEwNDc5O1NIQVZJQU4gTEVUVEVSIE9SO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3QTtTSEFWSUFOIExFVFRFUiBBSVI7TG87MDtMOzs7OztOOzs7OzsKKzEwNDdCO1NIQVZJQU4gTEVUVEVSIEVSUjtMbzswO0w7Ozs7O047Ozs7OworMTA0N0M7U0hBVklBTiBMRVRURVIgQVJSQVk7TG87MDtMOzs7OztOOzs7OzsKKzEwNDdEO1NIQVZJQU4gTEVUVEVSIEVBUjtMbzswO0w7Ozs7O047Ozs7OworMTA0N0U7U0hBVklBTiBMRVRURVIgSUFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ3RjtTSEFWSUFOIExFVFRFUiBZRVc7TG87MDtMOzs7OztOOzs7OzsKKzEwNDgwO09TTUFOWUEgTEVUVEVSIEFMRUY7TG87MDtMOzs7OztOOzs7OzsKKzEwNDgxO09TTUFOWUEgTEVUVEVSIEJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4MjtPU01BTllBIExFVFRFUiBUQTtMbzswO0w7Ozs7O047Ozs7OworMTA0ODM7T1NNQU5ZQSBMRVRURVIgSkE7TG87MDtMOzs7OztOOzs7OzsKKzEwNDg0O09TTUFOWUEgTEVUVEVSIFhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4NTtPU01BTllBIExFVFRFUiBLSEE7TG87MDtMOzs7OztOOzs7OzsKKzEwNDg2O09TTUFOWUEgTEVUVEVSIERFRUw7TG87MDtMOzs7OztOOzs7OzsKKzEwNDg3O09TTUFOWUEgTEVUVEVSIFJBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4ODtPU01BTllBIExFVFRFUiBTQTtMbzswO0w7Ozs7O047Ozs7OworMTA0ODk7T1NNQU5ZQSBMRVRURVIgU0hJSU47TG87MDtMOzs7OztOOzs7OzsKKzEwNDhBO09TTUFOWUEgTEVUVEVSIERIQTtMbzswO0w7Ozs7O047Ozs7OworMTA0OEI7T1NNQU5ZQSBMRVRURVIgQ0FZTjtMbzswO0w7Ozs7O047Ozs7OworMTA0OEM7T1NNQU5ZQSBMRVRURVIgR0E7TG87MDtMOzs7OztOOzs7OzsKKzEwNDhEO09TTUFOWUEgTEVUVEVSIEZBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4RTtPU01BTllBIExFVFRFUiBRQUFGO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ4RjtPU01BTllBIExFVFRFUiBLQUFGO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ5MDtPU01BTllBIExFVFRFUiBMQUFOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ5MTtPU01BTllBIExFVFRFUiBNSUlOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ5MjtPU01BTllBIExFVFRFUiBOVVVOO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ5MztPU01BTllBIExFVFRFUiBXQVc7TG87MDtMOzs7OztOOzs7OzsKKzEwNDk0O09TTUFOWUEgTEVUVEVSIEhBO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ5NTtPU01BTllBIExFVFRFUiBZQTtMbzswO0w7Ozs7O047Ozs7OworMTA0OTY7T1NNQU5ZQSBMRVRURVIgQTtMbzswO0w7Ozs7O047Ozs7OworMTA0OTc7T1NNQU5ZQSBMRVRURVIgRTtMbzswO0w7Ozs7O047Ozs7OworMTA0OTg7T1NNQU5ZQSBMRVRURVIgSTtMbzswO0w7Ozs7O047Ozs7OworMTA0OTk7T1NNQU5ZQSBMRVRURVIgTztMbzswO0w7Ozs7O047Ozs7OworMTA0OUE7T1NNQU5ZQSBMRVRURVIgVTtMbzswO0w7Ozs7O047Ozs7OworMTA0OUI7T1NNQU5ZQSBMRVRURVIgQUE7TG87MDtMOzs7OztOOzs7OzsKKzEwNDlDO09TTUFOWUEgTEVUVEVSIEVFO0xvOzA7TDs7Ozs7Tjs7Ozs7CisxMDQ5RDtPU01BTllBIExFVFRFUiBPTztMbzswO0w7Ozs7O047Ozs7OworMTA0QTA7T1NNQU5ZQSBESUdJVCBaRVJPO05kOzA7TDs7MDswOzA7Tjs7Ozs7CisxMDRBMTtPU01BTllBIERJR0lUIE9ORTtOZDswO0w7OzE7MTsxO047Ozs7OworMTA0QTI7T1NNQU5ZQSBESUdJVCBUV087TmQ7MDtMOzsyOzI7MjtOOzs7OzsKKzEwNEEzO09TTUFOWUEgRElHSVQgVEhSRUU7TmQ7MDtMOzszOzM7MztOOzs7OzsKKzEwNEE0O09TTUFOWUEgRElHSVQgRk9VUjtOZDswO0w7OzQ7NDs0O047Ozs7OworMTA0QTU7T1NNQU5ZQSBESUdJVCBGSVZFO05kOzA7TDs7NTs1OzU7Tjs7Ozs7CisxMDRBNjtPU01BTllBIERJR0lUIFNJWDtOZDswO0w7OzY7Njs2O047Ozs7OworMTA0QTc7T1NNQU5ZQSBESUdJVCBTRVZFTjtOZDswO0w7Ozc7Nzs3O047Ozs7OworMTA0QTg7T1NNQU5ZQSBESUdJVCBFSUdIVDtOZDswO0w7Ozg7ODs4O047Ozs7OworMTA0QTk7T1NNQU5ZQSBESUdJVCBOSU5FO05kOzA7TDs7OTs5Ozk7Tjs7Ozs7CisxMDgwMDtDWVBSSU9UIFNZTExBQkxFIEE7TG87MDtSOzs7OztOOzs7OzsKKzEwODAxO0NZUFJJT1QgU1lMTEFCTEUgRTtMbzswO1I7Ozs7O047Ozs7OworMTA4MDI7Q1lQUklPVCBTWUxMQUJMRSBJO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMDgwMztDWVBSSU9UIFNZTExBQkxFIE87TG87MDtSOzs7OztOOzs7OzsKKzEwODA0O0NZUFJJT1QgU1lMTEFCTEUgVTtMbzswO1I7Ozs7O047Ozs7OworMTA4MDU7Q1lQUklPVCBTWUxMQUJMRSBKQTtMbzswO1I7Ozs7O047Ozs7OworMTA4MDg7Q1lQUklPVCBTWUxMQUJMRSBKTztMbzswO1I7Ozs7O047Ozs7OworMTA4MEE7Q1lQUklPVCBTWUxMQUJMRSBLQTtMbzswO1I7Ozs7O047Ozs7OworMTA4MEI7Q1lQUklPVCBTWUxMQUJMRSBLRTtMbzswO1I7Ozs7O047Ozs7OworMTA4MEM7Q1lQUklPVCBTWUxMQUJMRSBLSTtMbzswO1I7Ozs7O047Ozs7OworMTA4MEQ7Q1lQUklPVCBTWUxMQUJMRSBLTztMbzswO1I7Ozs7O047Ozs7OworMTA4MEU7Q1lQUklPVCBTWUxMQUJMRSBLVTtMbzswO1I7Ozs7O047Ozs7OworMTA4MEY7Q1lQUklPVCBTWUxMQUJMRSBMQTtMbzswO1I7Ozs7O047Ozs7OworMTA4MTA7Q1lQUklPVCBTWUxMQUJMRSBMRTtMbzswO1I7Ozs7O047Ozs7OworMTA4MTE7Q1lQUklPVCBTWUxMQUJMRSBMSTtMbzswO1I7Ozs7O047Ozs7OworMTA4MTI7Q1lQUklPVCBTWUxMQUJMRSBMTztMbzswO1I7Ozs7O047Ozs7OworMTA4MTM7Q1lQUklPVCBTWUxMQUJMRSBMVTtMbzswO1I7Ozs7O047Ozs7OworMTA4MTQ7Q1lQUklPVCBTWUxMQUJMRSBNQTtMbzswO1I7Ozs7O047Ozs7OworMTA4MTU7Q1lQUklPVCBTWUxMQUJMRSBNRTtMbzswO1I7Ozs7O047Ozs7OworMTA4MTY7Q1lQUklPVCBTWUxMQUJMRSBNSTtMbzswO1I7Ozs7O047Ozs7OworMTA4MTc7Q1lQUklPVCBTWUxMQUJMRSBNTztMbzswO1I7Ozs7O047Ozs7OworMTA4MTg7Q1lQUklPVCBTWUxMQUJMRSBNVTtMbzswO1I7Ozs7O047Ozs7OworMTA4MTk7Q1lQUklPVCBTWUxMQUJMRSBOQTtMbzswO1I7Ozs7O047Ozs7OworMTA4MUE7Q1lQUklPVCBTWUxMQUJMRSBORTtMbzswO1I7Ozs7O047Ozs7OworMTA4MUI7Q1lQUklPVCBTWUxMQUJMRSBOSTtMbzswO1I7Ozs7O047Ozs7OworMTA4MUM7Q1lQUklPVCBTWUxMQUJMRSBOTztMbzswO1I7Ozs7O047Ozs7OworMTA4MUQ7Q1lQUklPVCBTWUxMQUJMRSBOVTtMbzswO1I7Ozs7O047Ozs7OworMTA4MUU7Q1lQUklPVCBTWUxMQUJMRSBQQTtMbzswO1I7Ozs7O047Ozs7OworMTA4MUY7Q1lQUklPVCBTWUxMQUJMRSBQRTtMbzswO1I7Ozs7O047Ozs7OworMTA4MjA7Q1lQUklPVCBTWUxMQUJMRSBQSTtMbzswO1I7Ozs7O047Ozs7OworMTA4MjE7Q1lQUklPVCBTWUxMQUJMRSBQTztMbzswO1I7Ozs7O047Ozs7OworMTA4MjI7Q1lQUklPVCBTWUxMQUJMRSBQVTtMbzswO1I7Ozs7O047Ozs7OworMTA4MjM7Q1lQUklPVCBTWUxMQUJMRSBSQTtMbzswO1I7Ozs7O047Ozs7OworMTA4MjQ7Q1lQUklPVCBTWUxMQUJMRSBSRTtMbzswO1I7Ozs7O047Ozs7OworMTA4MjU7Q1lQUklPVCBTWUxMQUJMRSBSSTtMbzswO1I7Ozs7O047Ozs7OworMTA4MjY7Q1lQUklPVCBTWUxMQUJMRSBSTztMbzswO1I7Ozs7O047Ozs7OworMTA4Mjc7Q1lQUklPVCBTWUxMQUJMRSBSVTtMbzswO1I7Ozs7O047Ozs7OworMTA4Mjg7Q1lQUklPVCBTWUxMQUJMRSBTQTtMbzswO1I7Ozs7O047Ozs7OworMTA4Mjk7Q1lQUklPVCBTWUxMQUJMRSBTRTtMbzswO1I7Ozs7O047Ozs7OworMTA4MkE7Q1lQUklPVCBTWUxMQUJMRSBTSTtMbzswO1I7Ozs7O047Ozs7OworMTA4MkI7Q1lQUklPVCBTWUxMQUJMRSBTTztMbzswO1I7Ozs7O047Ozs7OworMTA4MkM7Q1lQUklPVCBTWUxMQUJMRSBTVTtMbzswO1I7Ozs7O047Ozs7OworMTA4MkQ7Q1lQUklPVCBTWUxMQUJMRSBUQTtMbzswO1I7Ozs7O047Ozs7OworMTA4MkU7Q1lQUklPVCBTWUxMQUJMRSBURTtMbzswO1I7Ozs7O047Ozs7OworMTA4MkY7Q1lQUklPVCBTWUxMQUJMRSBUSTtMbzswO1I7Ozs7O047Ozs7OworMTA4MzA7Q1lQUklPVCBTWUxMQUJMRSBUTztMbzswO1I7Ozs7O047Ozs7OworMTA4MzE7Q1lQUklPVCBTWUxMQUJMRSBUVTtMbzswO1I7Ozs7O047Ozs7OworMTA4MzI7Q1lQUklPVCBTWUxMQUJMRSBXQTtMbzswO1I7Ozs7O047Ozs7OworMTA4MzM7Q1lQUklPVCBTWUxMQUJMRSBXRTtMbzswO1I7Ozs7O047Ozs7OworMTA4MzQ7Q1lQUklPVCBTWUxMQUJMRSBXSTtMbzswO1I7Ozs7O047Ozs7OworMTA4MzU7Q1lQUklPVCBTWUxMQUJMRSBXTztMbzswO1I7Ozs7O047Ozs7OworMTA4Mzc7Q1lQUklPVCBTWUxMQUJMRSBYQTtMbzswO1I7Ozs7O047Ozs7OworMTA4Mzg7Q1lQUklPVCBTWUxMQUJMRSBYRTtMbzswO1I7Ozs7O047Ozs7OworMTA4M0M7Q1lQUklPVCBTWUxMQUJMRSBaQTtMbzswO1I7Ozs7O047Ozs7OworMTA4M0Y7Q1lQUklPVCBTWUxMQUJMRSBaTztMbzswO1I7Ozs7O047Ozs7OworMTBBMDA7S0hBUk9TSFRISSBMRVRURVIgQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMDE7S0hBUk9TSFRISSBWT1dFTCBTSUdOIEk7TW47MDtOU007Ozs7O047Ozs7OworMTBBMDI7S0hBUk9TSFRISSBWT1dFTCBTSUdOIFU7TW47MDtOU007Ozs7O047Ozs7OworMTBBMDM7S0hBUk9TSFRISSBWT1dFTCBTSUdOIFZPQ0FMSUMgUjtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMEEwNTtLSEFST1NIVEhJIFZPV0VMIFNJR04gRTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMEEwNjtLSEFST1NIVEhJIFZPV0VMIFNJR04gTztNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMEEwQztLSEFST1NIVEhJIFZPV0VMIExFTkdUSCBNQVJLO01uOzA7TlNNOzs7OztOOzs7OzsKKzEwQTBEO0tIQVJPU0hUSEkgU0lHTiBET1VCTEUgUklORyBCRUxPVztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzEwQTBFO0tIQVJPU0hUSEkgU0lHTiBBTlVTVkFSQTtNbjswO05TTTs7Ozs7Tjs7Ozs7CisxMEEwRjtLSEFST1NIVEhJIFNJR04gVklTQVJHQTtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzEwQTEwO0tIQVJPU0hUSEkgTEVUVEVSIEtBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExMTtLSEFST1NIVEhJIExFVFRFUiBLSEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTEyO0tIQVJPU0hUSEkgTEVUVEVSIEdBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExMztLSEFST1NIVEhJIExFVFRFUiBHSEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTE1O0tIQVJPU0hUSEkgTEVUVEVSIENBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExNjtLSEFST1NIVEhJIExFVFRFUiBDSEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTE3O0tIQVJPU0hUSEkgTEVUVEVSIEpBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExOTtLSEFST1NIVEhJIExFVFRFUiBOWUE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTFBO0tIQVJPU0hUSEkgTEVUVEVSIFRUQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMUI7S0hBUk9TSFRISSBMRVRURVIgVFRIQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMUM7S0hBUk9TSFRISSBMRVRURVIgRERBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExRDtLSEFST1NIVEhJIExFVFRFUiBEREhBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEExRTtLSEFST1NIVEhJIExFVFRFUiBOTkE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTFGO0tIQVJPU0hUSEkgTEVUVEVSIFRBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyMDtLSEFST1NIVEhJIExFVFRFUiBUSEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTIxO0tIQVJPU0hUSEkgTEVUVEVSIERBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyMjtLSEFST1NIVEhJIExFVFRFUiBESEE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTIzO0tIQVJPU0hUSEkgTEVUVEVSIE5BO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyNDtLSEFST1NIVEhJIExFVFRFUiBQQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMjU7S0hBUk9TSFRISSBMRVRURVIgUEhBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyNjtLSEFST1NIVEhJIExFVFRFUiBCQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMjc7S0hBUk9TSFRISSBMRVRURVIgQkhBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyODtLSEFST1NIVEhJIExFVFRFUiBNQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMjk7S0hBUk9TSFRISSBMRVRURVIgWUE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTJBO0tIQVJPU0hUSEkgTEVUVEVSIFJBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyQjtLSEFST1NIVEhJIExFVFRFUiBMQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMkM7S0hBUk9TSFRISSBMRVRURVIgVkE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTJEO0tIQVJPU0hUSEkgTEVUVEVSIFNIQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMkU7S0hBUk9TSFRISSBMRVRURVIgU1NBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEyRjtLSEFST1NIVEhJIExFVFRFUiBTQTtMbzswO1I7Ozs7O047Ozs7OworMTBBMzA7S0hBUk9TSFRISSBMRVRURVIgWkE7TG87MDtSOzs7OztOOzs7OzsKKzEwQTMxO0tIQVJPU0hUSEkgTEVUVEVSIEhBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEzMjtLSEFST1NIVEhJIExFVFRFUiBLS0E7TG87MDtSOzs7OztOOzs7OzsKKzEwQTMzO0tIQVJPU0hUSEkgTEVUVEVSIFRUVEhBO0xvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEEzODtLSEFST1NIVEhJIFNJR04gQkFSIEFCT1ZFO01uOzIzMDtOU007Ozs7O047Ozs7OworMTBBMzk7S0hBUk9TSFRISSBTSUdOIENBVURBO01uOzE7TlNNOzs7OztOOzs7OzsKKzEwQTNBO0tIQVJPU0hUSEkgU0lHTiBET1QgQkVMT1c7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxMEEzRjtLSEFST1NIVEhJIFZJUkFNQTtNbjs5O05TTTs7Ozs7Tjs7Ozs7CisxMEE0MDtLSEFST1NIVEhJIERJR0lUIE9ORTtObzswO1I7OzsxOzE7Tjs7Ozs7CisxMEE0MTtLSEFST1NIVEhJIERJR0lUIFRXTztObzswO1I7OzsyOzI7Tjs7Ozs7CisxMEE0MjtLSEFST1NIVEhJIERJR0lUIFRIUkVFO05vOzA7Ujs7OzM7MztOOzs7OzsKKzEwQTQzO0tIQVJPU0hUSEkgRElHSVQgRk9VUjtObzswO1I7Ozs0OzQ7Tjs7Ozs7CisxMEE0NDtLSEFST1NIVEhJIE5VTUJFUiBURU47Tm87MDtSOzs7OzEwO047Ozs7OworMTBBNDU7S0hBUk9TSFRISSBOVU1CRVIgVFdFTlRZO05vOzA7Ujs7OzsyMDtOOzs7OzsKKzEwQTQ2O0tIQVJPU0hUSEkgTlVNQkVSIE9ORSBIVU5EUkVEO05vOzA7Ujs7OzsxMDA7Tjs7Ozs7CisxMEE0NztLSEFST1NIVEhJIE5VTUJFUiBPTkUgVEhPVVNBTkQ7Tm87MDtSOzs7OzEwMDA7Tjs7Ozs7CisxMEE1MDtLSEFST1NIVEhJIFBVTkNUVUFUSU9OIERPVDtQbzswO1I7Ozs7O047Ozs7OworMTBBNTE7S0hBUk9TSFRISSBQVU5DVFVBVElPTiBTTUFMTCBDSVJDTEU7UG87MDtSOzs7OztOOzs7OzsKKzEwQTUyO0tIQVJPU0hUSEkgUFVOQ1RVQVRJT04gQ0lSQ0xFO1BvOzA7Ujs7Ozs7Tjs7Ozs7CisxMEE1MztLSEFST1NIVEhJIFBVTkNUVUFUSU9OIENSRVNDRU5UIEJBUjtQbzswO1I7Ozs7O047Ozs7OworMTBBNTQ7S0hBUk9TSFRISSBQVU5DVFVBVElPTiBNQU5HQUxBTTtQbzswO1I7Ozs7O047Ozs7OworMTBBNTU7S0hBUk9TSFRISSBQVU5DVFVBVElPTiBMT1RVUztQbzswO1I7Ozs7O047Ozs7OworMTBBNTY7S0hBUk9TSFRISSBQVU5DVFVBVElPTiBEQU5EQTtQbzswO1I7Ozs7O047Ozs7OworMTBBNTc7S0hBUk9TSFRISSBQVU5DVFVBVElPTiBET1VCTEUgREFOREE7UG87MDtSOzs7OztOOzs7OzsKKzEwQTU4O0tIQVJPU0hUSEkgUFVOQ1RVQVRJT04gTElORVM7UG87MDtSOzs7OztOOzs7OzsKKzFEMDAwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQU0lMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERBU0VJQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBFUklTUE9NRU5JO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT1hFSUEgRUtGT05JVElLT047U287MDtMOzs7OztOOzs7OzsKKzFEMDA0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPWEVJQSBESVBMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFZBUkVJQSBFS0ZPTklUSUtPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMDY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFZBUkVJQSBESVBMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMDc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtBVEhJU1RJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1lSTUFUSUtJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUEFSQUtMSVRJS0k7U287MDtMOzs7OztOOzs7OzsKKzFEMDBBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBZUE9LUklTSVM7U287MDtMOzs7OztOOzs7OzsKKzFEMDBCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBZUE9LUklTSVMgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDBDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLUkVNQVNUSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMEQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQRVNPIEVLRk9OSVRJS09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRVhPIEVLRk9OSVRJS09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAwRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEVMRUlBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxMDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0VOVElNQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxMTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBPU1RST0ZPUztTbzswO0w7Ozs7O047Ozs7OworMUQwMTI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQT1NUUk9GT1MgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDEzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTWU5FVk1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxNDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEhJVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMDE1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPTElHT04gQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDE2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHT1JHT04gQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDE3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQU0lMT047U287MDtMOzs7OztOOzs7OzsKKzFEMDE4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSEFNSUxPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMTk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFZBVEhZO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSVNPTiBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMUI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtFTlRJTUEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDFDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BVEEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDFEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTQVhJTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMUU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUklDSE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAxRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1RBVlJPUyBBUE9ERVhJQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMjA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9YRUlBSSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMjE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFZBUkVJQUkgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDIyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9ERVJNQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMjM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQT1RIRU1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyNDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0xBU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyNTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUkVWTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDI2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQSUFTTUEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDI3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBUSU5BR01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQU5BVFJJQ0hJU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0VJU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1lOQUdNQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMkI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNZTkFHTUEgTUVUQSBTVEFWUk9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT1lSQU5JU01BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAyRDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEhFTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDJFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBMRU1PSTtTbzswO0w7Ozs7O047Ozs7OworMUQwMkY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERZTztTbzswO0w7Ozs7O047Ozs7OworMUQwMzA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRSSUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDMxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBURVNTRVJBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1JBVElNQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzMztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBFU08gRVhPIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwMzQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwMzU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIElNSUZUSE9SQTtTbzswO0w7Ozs7O047Ozs7OworMUQwMzY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09OIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzNztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0FUQVZBIFRST01JS09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUEVMQVNUT047U287MDtMOzs7OztOOzs7OzsKKzFEMDM5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQU0lGSVNUT047U287MDtMOzs7OztOOzs7OzsKKzFEMDNBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLT05URVZNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwM0I7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIENIT1JFVk1BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUkFQSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwM0Q7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBBUkFLQUxFU01BIEFSQ0hBSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDAzRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUEFSQUtMSVRJS0kgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDNGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBJQ0hBRElOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0MDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTkFOQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNDE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBFVEFTTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDQyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLT05URVZNQSBBTExPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0MztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVFJPTUlLT04gQUxMTztTbzswO0w7Ozs7O047Ozs7OworMUQwNDQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNUUkFHR0lTTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNDU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdST05USElTTUFUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNDY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIElTT04gTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0NztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgT0xJR09OIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNDg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9YRUlBIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNDk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBFVEFTVEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDRBO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLT1VGSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNEI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBFVEFTVE9LT1VGSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNEM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtSQVRJTU9LT1VGSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNEQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBFTEFTVE9OIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNEU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtFTlRJTUFUQSBORU8gQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA0RjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0VOVElNQSBORU8gQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1MDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWVBTSUxJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1MTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVBPU1RST0ZPUyBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDUyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9TVFJPRk9JIFNZTkRFU01PUyBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDUzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBZUE9SUk9JO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1NDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1JBVElNT1lQT1JST09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1NTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRUxBRlJPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNTY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIENIQU1JTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDU3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNSUtST04gSVNPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNTg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFZBUkVJQSBORU87U287MDtMOzs7OztOOzs7OzsKKzFEMDU5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBQSUFTTUEgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1QTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJRklTVE9OIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNUI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE9NQUxPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNUM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFOVElLRU5PTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDVEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBMWUdJU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1RTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUEFSQUtMSVRJS0kgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA1RjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUEFSQUtBTEVTTUEgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2MDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRVRFUk9OIFBBUkFLQUxFU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2MTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS1lMSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNjI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFOVElLRU5PS1lMSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNjM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09OIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNjQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVLU1RSRVBUT047U287MDtMOzs7OztOOzs7OzsKKzFEMDY1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTWU5BR01BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwNjY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNZUk1BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2NztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQ0hPUkVWTUEgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2ODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRVBFR0VSTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMDY5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTRUlTTUEgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2QTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWElST04gS0xBU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2QjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVFJPTUlLT1BTSUZJU1RPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwNkM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFBTSUZJU1RPTFlHSVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNkQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09MWUdJU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2RTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVFJPTUlLT1BBUkFLQUxFU01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA2RjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJRklTVE9QQVJBS0FMRVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwNzA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRST01JS09TWU5BR01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3MTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgUFNJRklTVE9TWU5BR01BO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3MjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SR09TWU5USEVUT047U287MDtMOzs7OztOOzs7OzsKKzFEMDczO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUkdPU1lOVEhFVE9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3NDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRVRFUk9OIEFSR09TWU5USEVUT047U287MDtMOzs7OztOOzs7OzsKKzFEMDc1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBPWVJBTklTTUEgTkVPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3NjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEhFTUFUSVNNT1MgRVNPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3NztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEhFTUFUSVNNT1MgRVhPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3ODtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEhFTUEgQVBMT1VOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3OTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVEhFUyBLQUkgQVBPVEhFUztTbzswO0w7Ozs7O047Ozs7OworMUQwN0E7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtBVEFWQVNNQTtTbzswO0w7Ozs7O047Ozs7OworMUQwN0I7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEVORE9GT05PTjtTbzswO0w7Ozs7O047Ozs7OworMUQwN0M7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRU4gS0FUTztTbzswO0w7Ozs7O047Ozs7OworMUQwN0Q7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFlGRU4gQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA3RTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU1RBVlJPUztTbzswO0w7Ozs7O047Ozs7OworMUQwN0Y7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtMQVNNQSBBTk87U287MDtMOzs7OztOOzs7OzsKKzFEMDgwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESVBMSSBBUkNIQUlPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwODE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtSQVRJTUEgQVJDSEFJT047U287MDtMOzs7OztOOzs7OzsKKzFEMDgyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLUkFUSU1BIEFMTE87U287MDtMOzs7OztOOzs7OzsKKzFEMDgzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLUkFUSU1BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwODQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQT0RFUk1BIE5FTztTbzswO0w7Ozs7O047Ozs7OworMUQwODU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMDg2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESVBMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwODc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRSSVBMSTtTbzswO0w7Ozs7O047Ozs7OworMUQwODg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFRFVFJBUExJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4OTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS09ST05JUztTbzswO0w7Ozs7O047Ozs7OworMUQwOEE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIExFSU1NQSBFTk9TIENIUk9OT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMDhCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBMRUlNTUEgRFlPIENIUk9OT047U287MDtMOzs7OztOOzs7OzsKKzFEMDhDO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBMRUlNTUEgVFJJT04gQ0hST05PTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOEQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIExFSU1NQSBURVNTQVJPTiBDSFJPTk9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA4RTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTEVJTU1BIElNSVNFT1MgQ0hST05PVTtTbzswO0w7Ozs7O047Ozs7OworMUQwOEY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdPUkdPTiBORU8gQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5MDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SR09OIFBBUkVTVElHTUVOT04gQVJJU1RFUkE7U287MDtMOzs7OztOOzs7OzsKKzFEMDkxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHT1JHT04gUEFSRVNUSUdNRU5PTiBERVhJQTtTbzswO0w7Ozs7O047Ozs7OworMUQwOTI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJR09SR09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5MztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElHT1JHT04gUEFSRVNUSUdNRU5PTiBBUklTVEVSQSBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5NDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElHT1JHT04gUEFSRVNUSUdNRU5PTiBBUklTVEVSQSBBTk87U287MDtMOzs7OztOOzs7OzsKKzFEMDk1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUdPUkdPTiBQQVJFU1RJR01FTk9OIERFWElBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5NjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgVFJJR09SR09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5NztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJHT047U287MDtMOzs7OztOOzs7OzsKKzFEMDk4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBJTUlESUFSR09OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5OTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElBUkdPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwOUE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIFBPTEkgQVJHSTtTbzswO0w7Ozs7O047Ozs7OworMUQwOUI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIEFSR09URVJJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDA5QztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQUdPR0kgQVJHSTtTbzswO0w7Ozs7O047Ozs7OworMUQwOUQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIE1FVFJJQTtTbzswO0w7Ozs7O047Ozs7OworMUQwOUU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIE1FU0k7U287MDtMOzs7OztOOzs7OzsKKzFEMDlGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBR09HSSBHT1JHSTtTbzswO0w7Ozs7O047Ozs7OworMUQwQTA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIEdPUkdPVEVSSTtTbzswO0w7Ozs7O047Ozs7OworMUQwQTE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFHT0dJIFBPTEkgR09SR0k7U287MDtMOzs7OztOOzs7OzsKKzFEMEEyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBQUk9UT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEEzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBBTExJIFBST1RPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQTQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIERFWVRFUk9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBNTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgQUxMSSBERVlURVJPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQTY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFRSSVRPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQTc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFRSSUZPTklBUztTbzswO0w7Ozs7O047Ozs7OworMUQwQTg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFRFVEFSVE9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgVEVUQVJUT1MgTEVHRVRPUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQUE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIExFR0VUT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEFCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBNQVJUWVJJQSBQTEFHSU9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBBQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSVNBS0lBIFRFTE9VUyBJQ0hJTUFUT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEFEO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUE9TVFJPRk9JIFRFTE9VUyBJQ0hJTUFUT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEFFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGQU5FUk9TSVMgVEVUUkFGT05JQVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEFGO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGQU5FUk9TSVMgTU9OT0ZPTklBUztTbzswO0w7Ozs7O047Ozs7OworMUQwQjA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZBTkVST1NJUyBESUZPTklBUztTbzswO0w7Ozs7O047Ozs7OworMUQwQjE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFZBUllTIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCMjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgTUFSVFlSSUEgUFJPVE9WQVJZUyBJQ0hPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQjM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIE1BUlRZUklBIFBMQUdJT1MgVEVUQVJUT1MgSUNIT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEI0O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHT1JUSE1JS09OIE4gQVBMT1VOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCNTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgR09SVEhNSUtPTiBOIERJUExPVU47U287MDtMOzs7OztOOzs7OzsKKzFEMEI2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBFTkFSWElTIEtBSSBGVEhPUkEgVk9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCNztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgSU1JRk9OT047U287MDtMOzs7OztOOzs7OzsKKzFEMEI4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBJTUlGVEhPUk9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCOTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIEFSQ0hBSU9OIERFWVRFUk9VIElDSE9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIERJQVRPTklLSSBQQTtTbzswO0w7Ozs7O047Ozs7OworMUQwQkI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBESUFUT05JS0kgTkFOQTtTbzswO0w7Ozs7O047Ozs7OworMUQwQkM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBOQU9TIElDSE9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCRDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIERJQVRPTklLSSBESTtTbzswO0w7Ozs7O047Ozs7OworMUQwQkU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBTS0xJUk9OIERJQVRPTk9OIERJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBCRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIERJQVRPTklLSSBLRTtTbzswO0w7Ozs7O047Ozs7OworMUQwQzA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBESUFUT05JS0kgWk87U287MDtMOzs7OztOOzs7OzsKKzFEMEMxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgRElBVE9OSUtJIE5JIEtBVE87U287MDtMOzs7OztOOzs7OzsKKzFEMEMyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBGVEhPUkEgRElBVE9OSUtJIE5JIEFOTztTbzswO0w7Ozs7O047Ozs7OworMUQwQzM7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBNQUxBS09OIENIUk9NQSBESUZPTklBUztTbzswO0w7Ozs7O047Ozs7OworMUQwQzQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBNQUxBS09OIENIUk9NQSBNT05PRk9OSUFTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDNTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRkhUT1JBIFNLTElST04gQ0hST01BIFZBU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDNjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIFNLTElST04gQ0hST01BIFNZTkFGSTtTbzswO0w7Ozs7O047Ozs7OworMUQwQzc7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBORU5BTk87U287MDtMOzs7OztOOzs7OzsKKzFEMEM4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBDSFJPQSBaWUdPUztTbzswO0w7Ozs7O047Ozs7OworMUQwQzk7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIENIUk9BIEtMSVRPTjtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0E7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIENIUk9BIFNQQVRISTtTbzswO0w7Ozs7O047Ozs7OworMUQwQ0I7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBJIFlGRVNJUyBURVRBUlRJTU9SSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRlRIT1JBIEVOQVJNT05JT1MgQU5USUZPTklBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDRDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWUZFU0lTIFRSSVRJTU9SSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDRTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElFU0lTIFRSSVRJTU9SSU9OO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBDRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElFU0lTIFRFVEFSVElNT1JJT047U287MDtMOzs7OztOOzs7OzsKKzFEMEQwO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUVTSVMgQVBMSSBEWU8gRE9ERUtBVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEQxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUVTSVMgTU9OT0dSQU1NT1MgVEVTU0VSQSBET0RFS0FUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRDI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJRVNJUyBESUdSQU1NT1MgRVggRE9ERUtBVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEQzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUVTSVMgVFJJR1JBTU1PUyBPS1RPIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBENDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWUZFU0lTIEFQTEkgRFlPIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBENTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWUZFU0lTIE1PTk9HUkFNTU9TIFRFU1NFUkEgRE9ERUtBVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMEQ2O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBZRkVTSVMgRElHUkFNTU9TIEVYIERPREVLQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBENztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgWUZFU0lTIFRSSUdSQU1NT1MgT0tUTyBET0RFS0FUQTtTbzswO0w7Ozs7O047Ozs7OworMUQwRDg7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEdFTklLSSBESUVTSVM7U287MDtMOzs7OztOOzs7OzsKKzFEMEQ5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHRU5JS0kgWUZFU0lTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElBU1RPTEkgQVBMSSBNSUtSSTtTbzswO0w7Ozs7O047Ozs7OworMUQwREI7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIERJQVNUT0xJIEFQTEkgTUVHQUxJO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBEQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElBU1RPTEkgRElQTEk7U287MDtMOzs7OztOOzs7OzsKKzFEMEREO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUFTVE9MSSBUSEVTRU9TO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBERTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgU0lNQU5TSVMgVEhFU0VPUztTbzswO0w7Ozs7O047Ozs7OworMUQwREY7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNJTUFOU0lTIFRIRVNFT1MgRElTSU1PVTtTbzswO0w7Ozs7O047Ozs7OworMUQwRTA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNJTUFOU0lTIFRIRVNFT1MgVFJJU0lNT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEUxO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBUSEVTRU9TIFRFVFJBU0lNT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEUyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBBUlNFT1M7U287MDtMOzs7OztOOzs7OzsKKzFEMEUzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTSU1BTlNJUyBBUlNFT1MgRElTSU1PVTtTbzswO0w7Ozs7O047Ozs7OworMUQwRTQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNJTUFOU0lTIEFSU0VPUyBUUklTSU1PVTtTbzswO0w7Ozs7O047Ozs7OworMUQwRTU7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIFNJTUFOU0lTIEFSU0VPUyBURVRSQVNJTU9VO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFNjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgRElHUkFNTUEgR0c7U287MDtMOzs7OztOOzs7OzsKKzFEMEU3O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBESUZUT0dHT1MgT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEU4O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBTVElHTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMEU5O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUktUSUtPIFBBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFQTtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBWT1U7U287MDtMOzs7OztOOzs7OzsKKzFEMEVCO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUktUSUtPIEdBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFQztCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBESTtTbzswO0w7Ozs7O047Ozs7OworMUQwRUQ7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEFSS1RJS08gS0U7U287MDtMOzs7OztOOzs7OzsKKzFEMEVFO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBBUktUSUtPIFpPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBFRjtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgQVJLVElLTyBOSTtTbzswO0w7Ozs7O047Ozs7OworMUQwRjA7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtFTlRJTUFUQSBORU8gTUVTTztTbzswO0w7Ozs7O047Ozs7OworMUQwRjE7QllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEtFTlRJTUEgTkVPIE1FU087U287MDtMOzs7OztOOzs7OzsKKzFEMEYyO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BVEEgTkVPIEtBVE87U287MDtMOzs7OztOOzs7OzsKKzFEMEYzO0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBLRU5USU1BIE5FTyBLQVRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDBGNDtCWVpBTlRJTkUgTVVTSUNBTCBTWU1CT0wgS0xBU01BIEtBVE87U287MDtMOzs7OztOOzs7OzsKKzFEMEY1O0JZWkFOVElORSBNVVNJQ0FMIFNZTUJPTCBHT1JHT04gTkVPIEtBVE87U287MDtMOzs7OztOOzs7OzsKKzFEMTAwO01VU0lDQUwgU1lNQk9MIFNJTkdMRSBCQVJMSU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwMTtNVVNJQ0FMIFNZTUJPTCBET1VCTEUgQkFSTElORTtTbzswO0w7Ozs7O047Ozs7OworMUQxMDI7TVVTSUNBTCBTWU1CT0wgRklOQUwgQkFSTElORTtTbzswO0w7Ozs7O047Ozs7OworMUQxMDM7TVVTSUNBTCBTWU1CT0wgUkVWRVJTRSBGSU5BTCBCQVJMSU5FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwNDtNVVNJQ0FMIFNZTUJPTCBEQVNIRUQgQkFSTElORTtTbzswO0w7Ozs7O047Ozs7OworMUQxMDU7TVVTSUNBTCBTWU1CT0wgU0hPUlQgQkFSTElORTtTbzswO0w7Ozs7O047Ozs7OworMUQxMDY7TVVTSUNBTCBTWU1CT0wgTEVGVCBSRVBFQVQgU0lHTjtTbzswO0w7Ozs7O047Ozs7OworMUQxMDc7TVVTSUNBTCBTWU1CT0wgUklHSFQgUkVQRUFUIFNJR047U287MDtMOzs7OztOOzs7OzsKKzFEMTA4O01VU0lDQUwgU1lNQk9MIFJFUEVBVCBET1RTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwOTtNVVNJQ0FMIFNZTUJPTCBEQUwgU0VHTk87U287MDtMOzs7OztOOzs7OzsKKzFEMTBBO01VU0lDQUwgU1lNQk9MIERBIENBUE87U287MDtMOzs7OztOOzs7OzsKKzFEMTBCO01VU0lDQUwgU1lNQk9MIFNFR05PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwQztNVVNJQ0FMIFNZTUJPTCBDT0RBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEwRDtNVVNJQ0FMIFNZTUJPTCBSRVBFQVRFRCBGSUdVUkUtMTtTbzswO0w7Ozs7O047Ozs7OworMUQxMEU7TVVTSUNBTCBTWU1CT0wgUkVQRUFURUQgRklHVVJFLTI7U287MDtMOzs7OztOOzs7OzsKKzFEMTBGO01VU0lDQUwgU1lNQk9MIFJFUEVBVEVEIEZJR1VSRS0zO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExMDtNVVNJQ0FMIFNZTUJPTCBGRVJNQVRBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExMTtNVVNJQ0FMIFNZTUJPTCBGRVJNQVRBIEJFTE9XO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExMjtNVVNJQ0FMIFNZTUJPTCBCUkVBVEggTUFSSztTbzswO0w7Ozs7O047Ozs7OworMUQxMTM7TVVTSUNBTCBTWU1CT0wgQ0FFU1VSQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMTQ7TVVTSUNBTCBTWU1CT0wgQlJBQ0U7U287MDtMOzs7OztOOzs7OzsKKzFEMTE1O01VU0lDQUwgU1lNQk9MIEJSQUNLRVQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTE2O01VU0lDQUwgU1lNQk9MIE9ORS1MSU5FIFNUQUZGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExNztNVVNJQ0FMIFNZTUJPTCBUV08tTElORSBTVEFGRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMTg7TVVTSUNBTCBTWU1CT0wgVEhSRUUtTElORSBTVEFGRjtTbzswO0w7Ozs7O047Ozs7OworMUQxMTk7TVVTSUNBTCBTWU1CT0wgRk9VUi1MSU5FIFNUQUZGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExQTtNVVNJQ0FMIFNZTUJPTCBGSVZFLUxJTkUgU1RBRkY7U287MDtMOzs7OztOOzs7OzsKKzFEMTFCO01VU0lDQUwgU1lNQk9MIFNJWC1MSU5FIFNUQUZGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExQztNVVNJQ0FMIFNZTUJPTCBTSVgtU1RSSU5HIEZSRVRCT0FSRDtTbzswO0w7Ozs7O047Ozs7OworMUQxMUQ7TVVTSUNBTCBTWU1CT0wgRk9VUi1TVFJJTkcgRlJFVEJPQVJEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDExRTtNVVNJQ0FMIFNZTUJPTCBHIENMRUY7U287MDtMOzs7OztOOzs7OzsKKzFEMTFGO01VU0lDQUwgU1lNQk9MIEcgQ0xFRiBPVFRBVkEgQUxUQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMjA7TVVTSUNBTCBTWU1CT0wgRyBDTEVGIE9UVEFWQSBCQVNTQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMjE7TVVTSUNBTCBTWU1CT0wgQyBDTEVGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyMjtNVVNJQ0FMIFNZTUJPTCBGIENMRUY7U287MDtMOzs7OztOOzs7OzsKKzFEMTIzO01VU0lDQUwgU1lNQk9MIEYgQ0xFRiBPVFRBVkEgQUxUQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMjQ7TVVTSUNBTCBTWU1CT0wgRiBDTEVGIE9UVEFWQSBCQVNTQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMjU7TVVTSUNBTCBTWU1CT0wgRFJVTSBDTEVGLTE7U287MDtMOzs7OztOOzs7OzsKKzFEMTI2O01VU0lDQUwgU1lNQk9MIERSVU0gQ0xFRi0yO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyQTtNVVNJQ0FMIFNZTUJPTCBET1VCTEUgU0hBUlA7U287MDtMOzs7OztOOzs7OzsKKzFEMTJCO01VU0lDQUwgU1lNQk9MIERPVUJMRSBGTEFUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyQztNVVNJQ0FMIFNZTUJPTCBGTEFUIFVQO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEyRDtNVVNJQ0FMIFNZTUJPTCBGTEFUIERPV047U287MDtMOzs7OztOOzs7OzsKKzFEMTJFO01VU0lDQUwgU1lNQk9MIE5BVFVSQUwgVVA7U287MDtMOzs7OztOOzs7OzsKKzFEMTJGO01VU0lDQUwgU1lNQk9MIE5BVFVSQUwgRE9XTjtTbzswO0w7Ozs7O047Ozs7OworMUQxMzA7TVVTSUNBTCBTWU1CT0wgU0hBUlAgVVA7U287MDtMOzs7OztOOzs7OzsKKzFEMTMxO01VU0lDQUwgU1lNQk9MIFNIQVJQIERPV047U287MDtMOzs7OztOOzs7OzsKKzFEMTMyO01VU0lDQUwgU1lNQk9MIFFVQVJURVIgVE9ORSBTSEFSUDtTbzswO0w7Ozs7O047Ozs7OworMUQxMzM7TVVTSUNBTCBTWU1CT0wgUVVBUlRFUiBUT05FIEZMQVQ7U287MDtMOzs7OztOOzs7OzsKKzFEMTM0O01VU0lDQUwgU1lNQk9MIENPTU1PTiBUSU1FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzNTtNVVNJQ0FMIFNZTUJPTCBDVVQgVElNRTtTbzswO0w7Ozs7O047Ozs7OworMUQxMzY7TVVTSUNBTCBTWU1CT0wgT1RUQVZBIEFMVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMTM3O01VU0lDQUwgU1lNQk9MIE9UVEFWQSBCQVNTQTtTbzswO0w7Ozs7O047Ozs7OworMUQxMzg7TVVTSUNBTCBTWU1CT0wgUVVJTkRJQ0VTSU1BIEFMVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMTM5O01VU0lDQUwgU1lNQk9MIFFVSU5ESUNFU0lNQSBCQVNTQTtTbzswO0w7Ozs7O047Ozs7OworMUQxM0E7TVVTSUNBTCBTWU1CT0wgTVVMVEkgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxM0I7TVVTSUNBTCBTWU1CT0wgV0hPTEUgUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxM0M7TVVTSUNBTCBTWU1CT0wgSEFMRiBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzRDtNVVNJQ0FMIFNZTUJPTCBRVUFSVEVSIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMTNFO01VU0lDQUwgU1lNQk9MIEVJR0hUSCBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDEzRjtNVVNJQ0FMIFNZTUJPTCBTSVhURUVOVEggUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDA7TVVTSUNBTCBTWU1CT0wgVEhJUlRZLVNFQ09ORCBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0MTtNVVNJQ0FMIFNZTUJPTCBTSVhUWS1GT1VSVEggUkVTVDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDI7TVVTSUNBTCBTWU1CT0wgT05FIEhVTkRSRUQgVFdFTlRZLUVJR0hUSCBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0MztNVVNJQ0FMIFNZTUJPTCBYIE5PVEVIRUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0NDtNVVNJQ0FMIFNZTUJPTCBQTFVTIE5PVEVIRUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0NTtNVVNJQ0FMIFNZTUJPTCBDSVJDTEUgWCBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNDY7TVVTSUNBTCBTWU1CT0wgU1FVQVJFIE5PVEVIRUFEIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0NztNVVNJQ0FMIFNZTUJPTCBTUVVBUkUgTk9URUhFQUQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTQ4O01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIFVQIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0OTtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRSBOT1RFSEVBRCBVUCBCTEFDSztTbzswO0w7Ozs7O047Ozs7OworMUQxNEE7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgTEVGVCBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNEI7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgTEVGVCBCTEFDSztTbzswO0w7Ozs7O047Ozs7OworMUQxNEM7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgUklHSFQgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTREO01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFIE5PVEVIRUFEIFJJR0hUIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0RTtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRSBOT1RFSEVBRCBET1dOIFdISVRFO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE0RjtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRSBOT1RFSEVBRCBET1dOIEJMQUNLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1MDtNVVNJQ0FMIFNZTUJPTCBUUklBTkdMRSBOT1RFSEVBRCBVUCBSSUdIVCBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNTE7TVVTSUNBTCBTWU1CT0wgVFJJQU5HTEUgTk9URUhFQUQgVVAgUklHSFQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTUyO01VU0lDQUwgU1lNQk9MIE1PT04gTk9URUhFQUQgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTUzO01VU0lDQUwgU1lNQk9MIE1PT04gTk9URUhFQUQgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTU0O01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFLVJPVU5EIE5PVEVIRUFEIERPV04gV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTU1O01VU0lDQUwgU1lNQk9MIFRSSUFOR0xFLVJPVU5EIE5PVEVIRUFEIERPV04gQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMTU2O01VU0lDQUwgU1lNQk9MIFBBUkVOVEhFU0lTIE5PVEVIRUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1NztNVVNJQ0FMIFNZTUJPTCBWT0lEIE5PVEVIRUFEO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE1ODtNVVNJQ0FMIFNZTUJPTCBOT1RFSEVBRCBCTEFDSztTbzswO0w7Ozs7O047Ozs7OworMUQxNTk7TVVTSUNBTCBTWU1CT0wgTlVMTCBOT1RFSEVBRDtTbzswO0w7Ozs7O047Ozs7OworMUQxNUE7TVVTSUNBTCBTWU1CT0wgQ0xVU1RFUiBOT1RFSEVBRCBXSElURTtTbzswO0w7Ozs7O047Ozs7OworMUQxNUI7TVVTSUNBTCBTWU1CT0wgQ0xVU1RFUiBOT1RFSEVBRCBCTEFDSztTbzswO0w7Ozs7O047Ozs7OworMUQxNUM7TVVTSUNBTCBTWU1CT0wgQlJFVkU7U287MDtMOzs7OztOOzs7OzsKKzFEMTVEO01VU0lDQUwgU1lNQk9MIFdIT0xFIE5PVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTVFO01VU0lDQUwgU1lNQk9MIEhBTEYgTk9URTtTbzswO0w7MUQxNTcgMUQxNjU7Ozs7Tjs7Ozs7CisxRDE1RjtNVVNJQ0FMIFNZTUJPTCBRVUFSVEVSIE5PVEU7U287MDtMOzFEMTU4IDFEMTY1Ozs7O047Ozs7OworMUQxNjA7TVVTSUNBTCBTWU1CT0wgRUlHSFRIIE5PVEU7U287MDtMOzFEMTVGIDFEMTZFOzs7O047Ozs7OworMUQxNjE7TVVTSUNBTCBTWU1CT0wgU0lYVEVFTlRIIE5PVEU7U287MDtMOzFEMTVGIDFEMTZGOzs7O047Ozs7OworMUQxNjI7TVVTSUNBTCBTWU1CT0wgVEhJUlRZLVNFQ09ORCBOT1RFO1NvOzA7TDsxRDE1RiAxRDE3MDs7OztOOzs7OzsKKzFEMTYzO01VU0lDQUwgU1lNQk9MIFNJWFRZLUZPVVJUSCBOT1RFO1NvOzA7TDsxRDE1RiAxRDE3MTs7OztOOzs7OzsKKzFEMTY0O01VU0lDQUwgU1lNQk9MIE9ORSBIVU5EUkVEIFRXRU5UWS1FSUdIVEggTk9URTtTbzswO0w7MUQxNUYgMUQxNzI7Ozs7Tjs7Ozs7CisxRDE2NTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgU1RFTTtNYzsyMTY7TDs7Ozs7Tjs7Ozs7CisxRDE2NjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgU1BSRUNIR0VTQU5HIFNURU07TWM7MjE2O0w7Ozs7O047Ozs7OworMUQxNjc7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIFRSRU1PTE8tMTtNbjsxO05TTTs7Ozs7Tjs7Ozs7CisxRDE2ODtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgVFJFTU9MTy0yO01uOzE7TlNNOzs7OztOOzs7OzsKKzFEMTY5O01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBUUkVNT0xPLTM7TW47MTtOU007Ozs7O047Ozs7OworMUQxNkE7TVVTSUNBTCBTWU1CT0wgRklOR0VSRUQgVFJFTU9MTy0xO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE2QjtNVVNJQ0FMIFNZTUJPTCBGSU5HRVJFRCBUUkVNT0xPLTI7U287MDtMOzs7OztOOzs7OzsKKzFEMTZDO01VU0lDQUwgU1lNQk9MIEZJTkdFUkVEIFRSRU1PTE8tMztTbzswO0w7Ozs7O047Ozs7OworMUQxNkQ7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEFVR01FTlRBVElPTiBET1Q7TWM7MjI2O0w7Ozs7O047Ozs7OworMUQxNkU7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEZMQUctMTtNYzsyMTY7TDs7Ozs7Tjs7Ozs7CisxRDE2RjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRkxBRy0yO01jOzIxNjtMOzs7OztOOzs7OzsKKzFEMTcwO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBGTEFHLTM7TWM7MjE2O0w7Ozs7O047Ozs7OworMUQxNzE7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEZMQUctNDtNYzsyMTY7TDs7Ozs7Tjs7Ozs7CisxRDE3MjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRkxBRy01O01jOzIxNjtMOzs7OztOOzs7OzsKKzFEMTczO01VU0lDQUwgU1lNQk9MIEJFR0lOIEJFQU07Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxRDE3NDtNVVNJQ0FMIFNZTUJPTCBFTkQgQkVBTTtDZjswO0JOOzs7OztOOzs7OzsKKzFEMTc1O01VU0lDQUwgU1lNQk9MIEJFR0lOIFRJRTtDZjswO0JOOzs7OztOOzs7OzsKKzFEMTc2O01VU0lDQUwgU1lNQk9MIEVORCBUSUU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxRDE3NztNVVNJQ0FMIFNZTUJPTCBCRUdJTiBTTFVSO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxNzg7TVVTSUNBTCBTWU1CT0wgRU5EIFNMVVI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxRDE3OTtNVVNJQ0FMIFNZTUJPTCBCRUdJTiBQSFJBU0U7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CisxRDE3QTtNVVNJQ0FMIFNZTUJPTCBFTkQgUEhSQVNFO0NmOzA7Qk47Ozs7O047Ozs7OworMUQxN0I7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIEFDQ0VOVDtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTdDO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBTVEFDQ0FUTztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTdEO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBURU5VVE87TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE3RTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgU1RBQ0NBVElTU0lNTztNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMTdGO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBNQVJDQVRPO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxODA7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIE1BUkNBVE8tU1RBQ0NBVE87TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4MTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgQUNDRU5ULVNUQUNDQVRPO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxODI7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIExPVVJFO01uOzIyMDtOU007Ozs7O047Ozs7OworMUQxODM7TVVTSUNBTCBTWU1CT0wgQVJQRUdHSUFUTyBVUDtTbzswO0w7Ozs7O047Ozs7OworMUQxODQ7TVVTSUNBTCBTWU1CT0wgQVJQRUdHSUFUTyBET1dOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE4NTtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRE9JVDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEMTg2O01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBSSVA7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4NztNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgRkxJUDtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEMTg4O01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBTTUVBUjtNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEMTg5O01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBCRU5EO01uOzIzMDtOU007Ozs7O047Ozs7OworMUQxOEE7TVVTSUNBTCBTWU1CT0wgQ09NQklOSU5HIERPVUJMRSBUT05HVUU7TW47MjIwO05TTTs7Ozs7Tjs7Ozs7CisxRDE4QjtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgVFJJUExFIFRPTkdVRTtNbjsyMjA7TlNNOzs7OztOOzs7OzsKKzFEMThDO01VU0lDQUwgU1lNQk9MIFJJTkZPUlpBTkRPO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE4RDtNVVNJQ0FMIFNZTUJPTCBTVUJJVE87U287MDtMOzs7OztOOzs7OzsKKzFEMThFO01VU0lDQUwgU1lNQk9MIFo7U287MDtMOzs7OztOOzs7OzsKKzFEMThGO01VU0lDQUwgU1lNQk9MIFBJQU5PO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5MDtNVVNJQ0FMIFNZTUJPTCBNRVpaTztTbzswO0w7Ozs7O047Ozs7OworMUQxOTE7TVVTSUNBTCBTWU1CT0wgRk9SVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMTkyO01VU0lDQUwgU1lNQk9MIENSRVNDRU5ETztTbzswO0w7Ozs7O047Ozs7OworMUQxOTM7TVVTSUNBTCBTWU1CT0wgREVDUkVTQ0VORE87U287MDtMOzs7OztOOzs7OzsKKzFEMTk0O01VU0lDQUwgU1lNQk9MIEdSQUNFIE5PVEUgU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzFEMTk1O01VU0lDQUwgU1lNQk9MIEdSQUNFIE5PVEUgTk8gU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzFEMTk2O01VU0lDQUwgU1lNQk9MIFRSO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5NztNVVNJQ0FMIFNZTUJPTCBUVVJOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5ODtNVVNJQ0FMIFNZTUJPTCBJTlZFUlRFRCBUVVJOO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5OTtNVVNJQ0FMIFNZTUJPTCBUVVJOIFNMQVNIO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5QTtNVVNJQ0FMIFNZTUJPTCBUVVJOIFVQO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5QjtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtMTtTbzswO0w7Ozs7O047Ozs7OworMUQxOUM7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTI7U287MDtMOzs7OztOOzs7OzsKKzFEMTlEO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS0zO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDE5RTtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtNDtTbzswO0w7Ozs7O047Ozs7OworMUQxOUY7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTU7U287MDtMOzs7OztOOzs7OzsKKzFEMUEwO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS02O1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBMTtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtNztTbzswO0w7Ozs7O047Ozs7OworMUQxQTI7TVVTSUNBTCBTWU1CT0wgT1JOQU1FTlQgU1RST0tFLTg7U287MDtMOzs7OztOOzs7OzsKKzFEMUEzO01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS05O1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBNDtNVVNJQ0FMIFNZTUJPTCBPUk5BTUVOVCBTVFJPS0UtMTA7U287MDtMOzs7OztOOzs7OzsKKzFEMUE1O01VU0lDQUwgU1lNQk9MIE9STkFNRU5UIFNUUk9LRS0xMTtTbzswO0w7Ozs7O047Ozs7OworMUQxQTY7TVVTSUNBTCBTWU1CT0wgSEFVUFRTVElNTUU7U287MDtMOzs7OztOOzs7OzsKKzFEMUE3O01VU0lDQUwgU1lNQk9MIE5FQkVOU1RJTU1FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBODtNVVNJQ0FMIFNZTUJPTCBFTkQgT0YgU1RJTU1FO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBOTtNVVNJQ0FMIFNZTUJPTCBERUdSRUUgU0xBU0g7U287MDtMOzs7OztOOzs7OzsKKzFEMUFBO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBET1dOIEJPVztNbjsyMzA7TlNNOzs7OztOOzs7OzsKKzFEMUFCO01VU0lDQUwgU1lNQk9MIENPTUJJTklORyBVUCBCT1c7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDFBQztNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgSEFSTU9OSUM7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDFBRDtNVVNJQ0FMIFNZTUJPTCBDT01CSU5JTkcgU05BUCBQSVpaSUNBVE87TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDFBRTtNVVNJQ0FMIFNZTUJPTCBQRURBTCBNQVJLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFBRjtNVVNJQ0FMIFNZTUJPTCBQRURBTCBVUCBNQVJLO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCMDtNVVNJQ0FMIFNZTUJPTCBIQUxGIFBFREFMIE1BUks7U287MDtMOzs7OztOOzs7OzsKKzFEMUIxO01VU0lDQUwgU1lNQk9MIEdMSVNTQU5ETyBVUDtTbzswO0w7Ozs7O047Ozs7OworMUQxQjI7TVVTSUNBTCBTWU1CT0wgR0xJU1NBTkRPIERPV047U287MDtMOzs7OztOOzs7OzsKKzFEMUIzO01VU0lDQUwgU1lNQk9MIFdJVEggRklOR0VSTkFJTFM7U287MDtMOzs7OztOOzs7OzsKKzFEMUI0O01VU0lDQUwgU1lNQk9MIERBTVA7U287MDtMOzs7OztOOzs7OzsKKzFEMUI1O01VU0lDQUwgU1lNQk9MIERBTVAgQUxMO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCNjtNVVNJQ0FMIFNZTUJPTCBNQVhJTUE7U287MDtMOzs7OztOOzs7OzsKKzFEMUI3O01VU0lDQUwgU1lNQk9MIExPTkdBO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFCODtNVVNJQ0FMIFNZTUJPTCBCUkVWSVM7U287MDtMOzs7OztOOzs7OzsKKzFEMUI5O01VU0lDQUwgU1lNQk9MIFNFTUlCUkVWSVMgV0hJVEU7U287MDtMOzs7OztOOzs7OzsKKzFEMUJBO01VU0lDQUwgU1lNQk9MIFNFTUlCUkVWSVMgQkxBQ0s7U287MDtMOzs7OztOOzs7OzsKKzFEMUJCO01VU0lDQUwgU1lNQk9MIE1JTklNQTtTbzswO0w7MUQxQjkgMUQxNjU7Ozs7Tjs7Ozs7CisxRDFCQztNVVNJQ0FMIFNZTUJPTCBNSU5JTUEgQkxBQ0s7U287MDtMOzFEMUJBIDFEMTY1Ozs7O047Ozs7OworMUQxQkQ7TVVTSUNBTCBTWU1CT0wgU0VNSU1JTklNQSBXSElURTtTbzswO0w7MUQxQkIgMUQxNkU7Ozs7Tjs7Ozs7CisxRDFCRTtNVVNJQ0FMIFNZTUJPTCBTRU1JTUlOSU1BIEJMQUNLO1NvOzA7TDsxRDFCQyAxRDE2RTs7OztOOzs7OzsKKzFEMUJGO01VU0lDQUwgU1lNQk9MIEZVU0EgV0hJVEU7U287MDtMOzFEMUJCIDFEMTZGOzs7O047Ozs7OworMUQxQzA7TVVTSUNBTCBTWU1CT0wgRlVTQSBCTEFDSztTbzswO0w7MUQxQkMgMUQxNkY7Ozs7Tjs7Ozs7CisxRDFDMTtNVVNJQ0FMIFNZTUJPTCBMT05HQSBQRVJGRUNUQSBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDMjtNVVNJQ0FMIFNZTUJPTCBMT05HQSBJTVBFUkZFQ1RBIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMUMzO01VU0lDQUwgU1lNQk9MIEJSRVZJUyBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDNDtNVVNJQ0FMIFNZTUJPTCBTRU1JQlJFVklTIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMUM1O01VU0lDQUwgU1lNQk9MIE1JTklNQSBSRVNUO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDNjtNVVNJQ0FMIFNZTUJPTCBTRU1JTUlOSU1BIFJFU1Q7U287MDtMOzs7OztOOzs7OzsKKzFEMUM3O01VU0lDQUwgU1lNQk9MIFRFTVBVUyBQRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgUEVSRkVDVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMUM4O01VU0lDQUwgU1lNQk9MIFRFTVBVUyBQRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgSU1QRVJGRUNUQTtTbzswO0w7Ozs7O047Ozs7OworMUQxQzk7TVVTSUNBTCBTWU1CT0wgVEVNUFVTIFBFUkZFQ1RVTSBDVU0gUFJPTEFUSU9ORSBQRVJGRUNUQSBESU1JTlVUSU9OLTE7U287MDtMOzs7OztOOzs7OzsKKzFEMUNBO01VU0lDQUwgU1lNQk9MIFRFTVBVUyBJTVBFUkZFQ1RVTSBDVU0gUFJPTEFUSU9ORSBQRVJGRUNUQTtTbzswO0w7Ozs7O047Ozs7OworMUQxQ0I7TVVTSUNBTCBTWU1CT0wgVEVNUFVTIElNUEVSRkVDVFVNIENVTSBQUk9MQVRJT05FIElNUEVSRkVDVEE7U287MDtMOzs7OztOOzs7OzsKKzFEMUNDO01VU0lDQUwgU1lNQk9MIFRFTVBVUyBJTVBFUkZFQ1RVTSBDVU0gUFJPTEFUSU9ORSBJTVBFUkZFQ1RBIERJTUlOVVRJT04tMTtTbzswO0w7Ozs7O047Ozs7OworMUQxQ0Q7TVVTSUNBTCBTWU1CT0wgVEVNUFVTIElNUEVSRkVDVFVNIENVTSBQUk9MQVRJT05FIElNUEVSRkVDVEEgRElNSU5VVElPTi0yO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFDRTtNVVNJQ0FMIFNZTUJPTCBURU1QVVMgSU1QRVJGRUNUVU0gQ1VNIFBST0xBVElPTkUgSU1QRVJGRUNUQSBESU1JTlVUSU9OLTM7U287MDtMOzs7OztOOzs7OzsKKzFEMUNGO01VU0lDQUwgU1lNQk9MIENST0lYO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFEMDtNVVNJQ0FMIFNZTUJPTCBHUkVHT1JJQU4gQyBDTEVGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFEMTtNVVNJQ0FMIFNZTUJPTCBHUkVHT1JJQU4gRiBDTEVGO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFEMjtNVVNJQ0FMIFNZTUJPTCBTUVVBUkUgQjtTbzswO0w7Ozs7O047Ozs7OworMUQxRDM7TVVTSUNBTCBTWU1CT0wgVklSR0E7U287MDtMOzs7OztOOzs7OzsKKzFEMUQ0O01VU0lDQUwgU1lNQk9MIFBPREFUVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMUQ1O01VU0lDQUwgU1lNQk9MIENMSVZJUztTbzswO0w7Ozs7O047Ozs7OworMUQxRDY7TVVTSUNBTCBTWU1CT0wgU0NBTkRJQ1VTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFENztNVVNJQ0FMIFNZTUJPTCBDTElNQUNVUztTbzswO0w7Ozs7O047Ozs7OworMUQxRDg7TVVTSUNBTCBTWU1CT0wgVE9SQ1VMVVM7U287MDtMOzs7OztOOzs7OzsKKzFEMUQ5O01VU0lDQUwgU1lNQk9MIFBPUlJFQ1RVUztTbzswO0w7Ozs7O047Ozs7OworMUQxREE7TVVTSUNBTCBTWU1CT0wgUE9SUkVDVFVTIEZMRVhVUztTbzswO0w7Ozs7O047Ozs7OworMUQxREI7TVVTSUNBTCBTWU1CT0wgU0NBTkRJQ1VTIEZMRVhVUztTbzswO0w7Ozs7O047Ozs7OworMUQxREM7TVVTSUNBTCBTWU1CT0wgVE9SQ1VMVVMgUkVTVVBJTlVTO1NvOzA7TDs7Ozs7Tjs7Ozs7CisxRDFERDtNVVNJQ0FMIFNZTUJPTCBQRVMgU1VCUFVOQ1RJUztTbzswO0w7Ozs7O047Ozs7OworMUQyMDA7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTE7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIwMTtHUkVFSyBWT0NBTCBOT1RBVElPTiBTWU1CT0wtMjtTbzswO09OOzs7OztOOzs7OzsKKzFEMjAyO0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC0zO1NvOzA7T047Ozs7O047Ozs7OworMUQyMDM7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIwNDtHUkVFSyBWT0NBTCBOT1RBVElPTiBTWU1CT0wtNTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjA1O0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC02O1NvOzA7T047Ozs7O047Ozs7OworMUQyMDY7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIwNztHUkVFSyBWT0NBTCBOT1RBVElPTiBTWU1CT0wtODtTbzswO09OOzs7OztOOzs7OzsKKzFEMjA4O0dSRUVLIFZPQ0FMIE5PVEFUSU9OIFNZTUJPTC05O1NvOzA7T047Ozs7O047Ozs7OworMUQyMDk7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTEwO1NvOzA7T047Ozs7O047Ozs7OworMUQyMEE7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTExO1NvOzA7T047Ozs7O047Ozs7OworMUQyMEI7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTEyO1NvOzA7T047Ozs7O047Ozs7OworMUQyMEM7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTEzO1NvOzA7T047Ozs7O047Ozs7OworMUQyMEQ7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTE0O1NvOzA7T047Ozs7O047Ozs7OworMUQyMEU7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTE1O1NvOzA7T047Ozs7O047Ozs7OworMUQyMEY7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTE2O1NvOzA7T047Ozs7O047Ozs7OworMUQyMTA7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTE3O1NvOzA7T047Ozs7O047Ozs7OworMUQyMTE7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTE4O1NvOzA7T047Ozs7O047Ozs7OworMUQyMTI7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTE5O1NvOzA7T047Ozs7O047Ozs7OworMUQyMTM7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTIwO1NvOzA7T047Ozs7O047Ozs7OworMUQyMTQ7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTIxO1NvOzA7T047Ozs7O047Ozs7OworMUQyMTU7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTIyO1NvOzA7T047Ozs7O047Ozs7OworMUQyMTY7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTIzO1NvOzA7T047Ozs7O047Ozs7OworMUQyMTc7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTI0O1NvOzA7T047Ozs7O047Ozs7OworMUQyMTg7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTUwO1NvOzA7T047Ozs7O047Ozs7OworMUQyMTk7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTUxO1NvOzA7T047Ozs7O047Ozs7OworMUQyMUE7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTUyO1NvOzA7T047Ozs7O047Ozs7OworMUQyMUI7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTUzO1NvOzA7T047Ozs7O047Ozs7OworMUQyMUM7R1JFRUsgVk9DQUwgTk9UQVRJT04gU1lNQk9MLTU0O1NvOzA7T047Ozs7O047Ozs7OworMUQyMUQ7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0xO1NvOzA7T047Ozs7O047Ozs7OworMUQyMUU7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0yO1NvOzA7T047Ozs7O047Ozs7OworMUQyMUY7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC00O1NvOzA7T047Ozs7O047Ozs7OworMUQyMjA7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC01O1NvOzA7T047Ozs7O047Ozs7OworMUQyMjE7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC03O1NvOzA7T047Ozs7O047Ozs7OworMUQyMjI7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC04O1NvOzA7T047Ozs7O047Ozs7OworMUQyMjM7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0xMTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjI0O0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMTI7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIyNTtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTEzO1NvOzA7T047Ozs7O047Ozs7OworMUQyMjY7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0xNDtTbzswO09OOzs7OztOOzs7OzsKKzFEMjI3O0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMTc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIyODtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTE4O1NvOzA7T047Ozs7O047Ozs7OworMUQyMjk7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0xOTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjJBO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMjM7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIyQjtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTI0O1NvOzA7T047Ozs7O047Ozs7OworMUQyMkM7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0yNTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjJEO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMjY7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIyRTtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTI3O1NvOzA7T047Ozs7O047Ozs7OworMUQyMkY7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0yOTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjMwO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMzA7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzMTtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTMyO1NvOzA7T047Ozs7O047Ozs7OworMUQyMzI7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0zNjtTbzswO09OOzs7OztOOzs7OzsKKzFEMjMzO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtMzc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzNDtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTM4O1NvOzA7T047Ozs7O047Ozs7OworMUQyMzU7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC0zOTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjM2O0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNDA7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzNztHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTQyO1NvOzA7T047Ozs7O047Ozs7OworMUQyMzg7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC00MztTbzswO09OOzs7OztOOzs7OzsKKzFEMjM5O0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNDU7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzQTtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTQ3O1NvOzA7T047Ozs7O047Ozs7OworMUQyM0I7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC00ODtTbzswO09OOzs7OztOOzs7OzsKKzFEMjNDO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNDk7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDIzRDtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTUwO1NvOzA7T047Ozs7O047Ozs7OworMUQyM0U7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC01MTtTbzswO09OOzs7OztOOzs7OzsKKzFEMjNGO0dSRUVLIElOU1RSVU1FTlRBTCBOT1RBVElPTiBTWU1CT0wtNTI7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDI0MDtHUkVFSyBJTlNUUlVNRU5UQUwgTk9UQVRJT04gU1lNQk9MLTUzO1NvOzA7T047Ozs7O047Ozs7OworMUQyNDE7R1JFRUsgSU5TVFJVTUVOVEFMIE5PVEFUSU9OIFNZTUJPTC01NDtTbzswO09OOzs7OztOOzs7OzsKKzFEMjQyO0NPTUJJTklORyBHUkVFSyBNVVNJQ0FMIFRSSVNFTUU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDI0MztDT01CSU5JTkcgR1JFRUsgTVVTSUNBTCBURVRSQVNFTUU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDI0NDtDT01CSU5JTkcgR1JFRUsgTVVTSUNBTCBQRU5UQVNFTUU7TW47MjMwO05TTTs7Ozs7Tjs7Ozs7CisxRDI0NTtHUkVFSyBNVVNJQ0FMIExFSU1NQTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzAwO01PTk9HUkFNIEZPUiBFQVJUSDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzAxO0RJR1JBTSBGT1IgSEVBVkVOTFkgRUFSVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMwMjtESUdSQU0gRk9SIEhVTUFOIEVBUlRIO1NvOzA7T047Ozs7O047Ozs7OworMUQzMDM7RElHUkFNIEZPUiBFQVJUSExZIEhFQVZFTjtTbzswO09OOzs7OztOOzs7OzsKKzFEMzA0O0RJR1JBTSBGT1IgRUFSVEhMWSBIVU1BTjtTbzswO09OOzs7OztOOzs7OzsKKzFEMzA1O0RJR1JBTSBGT1IgRUFSVEg7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMwNjtURVRSQUdSQU0gRk9SIENFTlRSRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzA3O1RFVFJBR1JBTSBGT1IgRlVMTCBDSVJDTEU7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMwODtURVRSQUdSQU0gRk9SIE1JUkVEO1NvOzA7T047Ozs7O047Ozs7OworMUQzMDk7VEVUUkFHUkFNIEZPUiBCQVJSSUVSO1NvOzA7T047Ozs7O047Ozs7OworMUQzMEE7VEVUUkFHUkFNIEZPUiBLRUVQSU5HIFNNQUxMO1NvOzA7T047Ozs7O047Ozs7OworMUQzMEI7VEVUUkFHUkFNIEZPUiBDT05UUkFSSUVUWTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzBDO1RFVFJBR1JBTSBGT1IgQVNDRU5UO1NvOzA7T047Ozs7O047Ozs7OworMUQzMEQ7VEVUUkFHUkFNIEZPUiBPUFBPU0lUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMUQzMEU7VEVUUkFHUkFNIEZPUiBCUkFOQ0hJTkcgT1VUO1NvOzA7T047Ozs7O047Ozs7OworMUQzMEY7VEVUUkFHUkFNIEZPUiBERUZFQ1RJVkVORVNTIE9SIERJU1RPUlRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxMDtURVRSQUdSQU0gRk9SIERJVkVSR0VOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxMTtURVRSQUdSQU0gRk9SIFlPVVRIRlVMTkVTUztTbzswO09OOzs7OztOOzs7OzsKKzFEMzEyO1RFVFJBR1JBTSBGT1IgSU5DUkVBU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxMztURVRSQUdSQU0gRk9SIFBFTkVUUkFUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMUQzMTQ7VEVUUkFHUkFNIEZPUiBSRUFDSDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzE1O1RFVFJBR1JBTSBGT1IgQ09OVEFDVDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzE2O1RFVFJBR1JBTSBGT1IgSE9MRElORyBCQUNLO1NvOzA7T047Ozs7O047Ozs7OworMUQzMTc7VEVUUkFHUkFNIEZPUiBXQUlUSU5HO1NvOzA7T047Ozs7O047Ozs7OworMUQzMTg7VEVUUkFHUkFNIEZPUiBGT0xMT1dJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxOTtURVRSQUdSQU0gRk9SIEFEVkFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxQTtURVRSQUdSQU0gRk9SIFJFTEVBU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxQjtURVRSQUdSQU0gRk9SIFJFU0lTVEFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxQztURVRSQUdSQU0gRk9SIEVBU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMxRDtURVRSQUdSQU0gRk9SIEpPWTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzFFO1RFVFJBR1JBTSBGT1IgQ09OVEVOVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzFEMzFGO1RFVFJBR1JBTSBGT1IgRU5ERUFWT1VSO1NvOzA7T047Ozs7O047Ozs7OworMUQzMjA7VEVUUkFHUkFNIEZPUiBEVVRJRVM7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyMTtURVRSQUdSQU0gRk9SIENIQU5HRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzIyO1RFVFJBR1JBTSBGT1IgREVDSVNJVkVORVNTO1NvOzA7T047Ozs7O047Ozs7OworMUQzMjM7VEVUUkFHUkFNIEZPUiBCT0xEIFJFU09MVVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyNDtURVRSQUdSQU0gRk9SIFBBQ0tJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyNTtURVRSQUdSQU0gRk9SIExFR0lPTjtTbzswO09OOzs7OztOOzs7OzsKKzFEMzI2O1RFVFJBR1JBTSBGT1IgQ0xPU0VORVNTO1NvOzA7T047Ozs7O047Ozs7OworMUQzMjc7VEVUUkFHUkFNIEZPUiBLSU5TSElQO1NvOzA7T047Ozs7O047Ozs7OworMUQzMjg7VEVUUkFHUkFNIEZPUiBHQVRIRVJJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyOTtURVRSQUdSQU0gRk9SIFNUUkVOR1RIO1NvOzA7T047Ozs7O047Ozs7OworMUQzMkE7VEVUUkFHUkFNIEZPUiBQVVJJVFk7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyQjtURVRSQUdSQU0gRk9SIEZVTExORVNTO1NvOzA7T047Ozs7O047Ozs7OworMUQzMkM7VEVUUkFHUkFNIEZPUiBSRVNJREVOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyRDtURVRSQUdSQU0gRk9SIExBVyBPUiBNT0RFTDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzJFO1RFVFJBR1JBTSBGT1IgUkVTUE9OU0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMyRjtURVRSQUdSQU0gRk9SIEdPSU5HIFRPIE1FRVQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzMDtURVRSQUdSQU0gRk9SIEVOQ09VTlRFUlM7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzMTtURVRSQUdSQU0gRk9SIFNUT1ZFO1NvOzA7T047Ozs7O047Ozs7OworMUQzMzI7VEVUUkFHUkFNIEZPUiBHUkVBVE5FU1M7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzMztURVRSQUdSQU0gRk9SIEVOTEFSR0VNRU5UO1NvOzA7T047Ozs7O047Ozs7OworMUQzMzQ7VEVUUkFHUkFNIEZPUiBQQVRURVJOO1NvOzA7T047Ozs7O047Ozs7OworMUQzMzU7VEVUUkFHUkFNIEZPUiBSSVRVQUw7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzNjtURVRSQUdSQU0gRk9SIEZMSUdIVDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzM3O1RFVFJBR1JBTSBGT1IgVkFTVE5FU1MgT1IgV0FTVElORztTbzswO09OOzs7OztOOzs7OzsKKzFEMzM4O1RFVFJBR1JBTSBGT1IgQ09OU1RBTkNZO1NvOzA7T047Ozs7O047Ozs7OworMUQzMzk7VEVUUkFHUkFNIEZPUiBNRUFTVVJFO1NvOzA7T047Ozs7O047Ozs7OworMUQzM0E7VEVUUkFHUkFNIEZPUiBFVEVSTklUWTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzNCO1RFVFJBR1JBTSBGT1IgVU5JVFk7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDMzQztURVRSQUdSQU0gRk9SIERJTUlOSVNITUVOVDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzNEO1RFVFJBR1JBTSBGT1IgQ0xPU0VEIE1PVVRIO1NvOzA7T047Ozs7O047Ozs7OworMUQzM0U7VEVUUkFHUkFNIEZPUiBHVUFSREVETkVTUztTbzswO09OOzs7OztOOzs7OzsKKzFEMzNGO1RFVFJBR1JBTSBGT1IgR0FUSEVSSU5HIElOO1NvOzA7T047Ozs7O047Ozs7OworMUQzNDA7VEVUUkFHUkFNIEZPUiBNQVNTSU5HO1NvOzA7T047Ozs7O047Ozs7OworMUQzNDE7VEVUUkFHUkFNIEZPUiBBQ0NVTVVMQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0MjtURVRSQUdSQU0gRk9SIEVNQkVMTElTSE1FTlQ7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0MztURVRSQUdSQU0gRk9SIERPVUJUO1NvOzA7T047Ozs7O047Ozs7OworMUQzNDQ7VEVUUkFHUkFNIEZPUiBXQVRDSDtTbzswO09OOzs7OztOOzs7OzsKKzFEMzQ1O1RFVFJBR1JBTSBGT1IgU0lOS0lORztTbzswO09OOzs7OztOOzs7OzsKKzFEMzQ2O1RFVFJBR1JBTSBGT1IgSU5ORVI7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0NztURVRSQUdSQU0gRk9SIERFUEFSVFVSRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzQ4O1RFVFJBR1JBTSBGT1IgREFSS0VOSU5HO1NvOzA7T047Ozs7O047Ozs7OworMUQzNDk7VEVUUkFHUkFNIEZPUiBESU1NSU5HO1NvOzA7T047Ozs7O047Ozs7OworMUQzNEE7VEVUUkFHUkFNIEZPUiBFWEhBVVNUSU9OO1NvOzA7T047Ozs7O047Ozs7OworMUQzNEI7VEVUUkFHUkFNIEZPUiBTRVZFUkFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM0QztURVRSQUdSQU0gRk9SIFNUT1BQQUdFO1NvOzA7T047Ozs7O047Ozs7OworMUQzNEQ7VEVUUkFHUkFNIEZPUiBIQVJETkVTUztTbzswO09OOzs7OztOOzs7OzsKKzFEMzRFO1RFVFJBR1JBTSBGT1IgQ09NUExFVElPTjtTbzswO09OOzs7OztOOzs7OzsKKzFEMzRGO1RFVFJBR1JBTSBGT1IgQ0xPU1VSRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzUwO1RFVFJBR1JBTSBGT1IgRkFJTFVSRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzUxO1RFVFJBR1JBTSBGT1IgQUdHUkFWQVRJT047U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM1MjtURVRSQUdSQU0gRk9SIENPTVBMSUFOQ0U7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM1MztURVRSQUdSQU0gRk9SIE9OIFRIRSBWRVJHRTtTbzswO09OOzs7OztOOzs7OzsKKzFEMzU0O1RFVFJBR1JBTSBGT1IgRElGRklDVUxUSUVTO1NvOzA7T047Ozs7O047Ozs7OworMUQzNTU7VEVUUkFHUkFNIEZPUiBMQUJPVVJJTkc7U287MDtPTjs7Ozs7Tjs7Ozs7CisxRDM1NjtURVRSQUdSQU0gRk9SIEZPU1RFUklORztTbzswO09OOzs7OztOOzs7OzsKKzFENDAwO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDQwMTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ0MDI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENDAzO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDQwNDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ0MDU7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENDA2O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDQwNztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ0MDg7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENDA5O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDQwQTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0MEI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENDBDO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDQwRDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0MEU7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENDBGO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDQxMDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0MTE7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENDEyO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDQxMztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0MTQ7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENDE1O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDQxNjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0MTc7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENDE4O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDQxOTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0MUE7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDQxQjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENDFDO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0MUQ7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDQxRTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENDFGO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ0MjA7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDQyMTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENDIyO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0MjM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDQyNDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENDI1O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0MjY7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDQyNztNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENDI4O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ0Mjk7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDQyQTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENDJCO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0MkM7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDQyRDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENDJFO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0MkY7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDQzMDtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENDMxO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ0MzI7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDQzMztNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENDM0O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENDM1O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENDM2O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENDM3O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENDM4O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENDM5O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENDNBO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENDNCO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENDNDO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENDNEO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENDNFO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENDNGO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENDQwO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENDQxO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENDQyO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENDQzO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENDQ0O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENDQ1O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENDQ2O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENDQ3O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENDQ4O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENDQ5O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENDRBO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENDRCO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENDRDO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENDREO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENDRFO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDQ0RjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ0NTA7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENDUxO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDQ1MjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ0NTM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENDU0O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDQ1NjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0NTc7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENDU4O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDQ1OTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0NUE7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENDVCO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDQ1QztNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ0NUQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENDVFO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDQ1RjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0NjA7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENDYxO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDQ2MjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0NjM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENDY0O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDQ2NTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ0NjY7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENDY3O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDQ2ODtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENDY5O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ0NkE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDQ2QjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENDZDO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ0NkQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDQ2RTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENDZGO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ0NzA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDQ3MTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENDcyO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0NzM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDQ3NDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENDc1O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0NzY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDQ3NztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENDc4O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0Nzk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDQ3QTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENDdCO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0N0M7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDQ3RDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENDdFO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0N0Y7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDQ4MDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENDgxO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0ODI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ0ODM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ0ODQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0ODU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ0ODY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ0ODc7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ0ODg7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ0ODk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ0OEE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0OEI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ0OEM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ0OEQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0OEU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ0OEY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ0OTA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ0OTE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ0OTI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ0OTM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0OTQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ0OTU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ0OTY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0OTc7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ0OTg7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ0OTk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ0OUE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ0OUI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ0OUM7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ0OUU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047Ozs7OworMUQ0OUY7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ0QTI7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ0QTU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ0QTY7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0QTk7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0QUE7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ0QUI7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ0QUM7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0QUU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ0QUY7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0QjA7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFU7THU7MDtMOzxmb250PiAwMDU1Ozs7O047Ozs7OworMUQ0QjE7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ0QjI7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0QjM7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFg7THU7MDtMOzxmb250PiAwMDU4Ozs7O047Ozs7OworMUQ0QjQ7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ0QjU7TUFUSEVNQVRJQ0FMIFNDUklQVCBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0QjY7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENEI3O01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDRCODtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0Qjk7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENEJCO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDRCRDtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ0QkU7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENEJGO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDRDMDtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ0QzE7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENEMyO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDRDMztNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ0QzU7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENEM2O01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDRDNztNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0Qzg7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENEM5O01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDRDQTtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0Q0I7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENENDO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDRDRDtNQVRIRU1BVElDQUwgU0NSSVBUIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ0Q0U7TUFUSEVNQVRJQ0FMIFNDUklQVCBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENENGO01BVEhFTUFUSUNBTCBTQ1JJUFQgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDREMDtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENEQxO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ0RDI7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDREMztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENEQ0O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ0RDU7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDRENjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENEQ3O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ0RDg7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDREOTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENERBO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ0REI7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDREQztNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENEREO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ0REU7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDRERjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENEUwO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ0RTE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDRFMjtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBTO0x1OzA7TDs8Zm9udD4gMDA1Mzs7OztOOzs7OzsKKzFENEUzO01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ0RTQ7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDRFNTtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBWO0x1OzA7TDs8Zm9udD4gMDA1Njs7OztOOzs7OzsKKzFENEU2O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ0RTc7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDRFODtNQVRIRU1BVElDQUwgQk9MRCBTQ1JJUFQgQ0FQSVRBTCBZO0x1OzA7TDs8Zm9udD4gMDA1OTs7OztOOzs7OzsKKzFENEU5O01BVEhFTUFUSUNBTCBCT0xEIFNDUklQVCBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ0RUE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ0RUI7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ0RUM7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ0RUQ7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ0RUU7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ0RUY7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ0RjA7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ0RjE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ0RjI7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ0RjM7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ0RjQ7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ0RjU7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ0RjY7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ0Rjc7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ0Rjg7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ0Rjk7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ0RkE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ0RkI7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ0RkM7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ0RkQ7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ0RkU7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ0RkY7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ1MDA7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ1MDE7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ1MDI7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ1MDM7TUFUSEVNQVRJQ0FMIEJPTEQgU0NSSVBUIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ1MDQ7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBBO0x1OzA7TDs8Zm9udD4gMDA0MTs7OztOOzs7OzsKKzFENTA1O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDUwNztNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ1MDg7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENTA5O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDUwQTtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ1MEQ7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBKO0x1OzA7TDs8Zm9udD4gMDA0QTs7OztOOzs7OzsKKzFENTBFO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDUwRjtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIEw7THU7MDtMOzxmb250PiAwMDRDOzs7O047Ozs7OworMUQ1MTA7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBNO0x1OzA7TDs8Zm9udD4gMDA0RDs7OztOOzs7OzsKKzFENTExO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDUxMjtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ1MTM7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBQO0x1OzA7TDs8Zm9udD4gMDA1MDs7OztOOzs7OzsKKzFENTE0O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDUxNjtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ1MTc7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENTE4O01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDUxOTtNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ1MUE7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENTFCO01BVEhFTUFUSUNBTCBGUkFLVFVSIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDUxQztNQVRIRU1BVElDQUwgRlJBS1RVUiBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ1MUU7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDUxRjtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENTIwO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ1MjE7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDUyMjtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENTIzO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ1MjQ7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDUyNTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENTI2O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ1Mjc7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDUyODtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENTI5O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ1MkE7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDUyQjtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENTJDO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ1MkQ7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDUyRTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENTJGO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ1MzA7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDUzMTtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENTMyO01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ1MzM7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDUzNDtNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENTM1O01BVEhFTUFUSUNBTCBGUkFLVFVSIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ1MzY7TUFUSEVNQVRJQ0FMIEZSQUtUVVIgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDUzNztNQVRIRU1BVElDQUwgRlJBS1RVUiBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENTM4O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDUzOTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ1M0I7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBEO0x1OzA7TDs8Zm9udD4gMDA0NDs7OztOOzs7OzsKKzFENTNDO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDUzRDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEY7THU7MDtMOzxmb250PiAwMDQ2Ozs7O047Ozs7OworMUQ1M0U7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBHO0x1OzA7TDs8Zm9udD4gMDA0Nzs7OztOOzs7OzsKKzFENTQwO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDU0MTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ1NDI7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENTQzO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDU0NDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ1NDY7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENTRBO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDU0QjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ1NEM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENTREO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDU0RTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ1NEY7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENTUwO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDU1MjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENTUzO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEI7TGw7MDtMOzxmb250PiAwMDYyOzs7O047Ozs7OworMUQ1NTQ7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDU1NTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENTU2O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEU7TGw7MDtMOzxmb250PiAwMDY1Ozs7O047Ozs7OworMUQ1NTc7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDU1ODtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzFENTU5O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEg7TGw7MDtMOzxmb250PiAwMDY4Ozs7O047Ozs7OworMUQ1NUE7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDU1QjtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENTVDO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIEs7TGw7MDtMOzxmb250PiAwMDZCOzs7O047Ozs7OworMUQ1NUQ7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDU1RTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENTVGO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIE47TGw7MDtMOzxmb250PiAwMDZFOzs7O047Ozs7OworMUQ1NjA7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDU2MTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENTYyO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFE7TGw7MDtMOzxmb250PiAwMDcxOzs7O047Ozs7OworMUQ1NjM7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDU2NDtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENTY1O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFQ7TGw7MDtMOzxmb250PiAwMDc0Ozs7O047Ozs7OworMUQ1NjY7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDU2NztNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENTY4O01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFc7TGw7MDtMOzxmb250PiAwMDc3Ozs7O047Ozs7OworMUQ1Njk7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDU2QTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENTZCO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIFNNQUxMIFo7TGw7MDtMOzxmb250PiAwMDdBOzs7O047Ozs7OworMUQ1NkM7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ1NkQ7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEI7THU7MDtMOzxmb250PiAwMDQyOzs7O047Ozs7OworMUQ1NkU7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEM7THU7MDtMOzxmb250PiAwMDQzOzs7O047Ozs7OworMUQ1NkY7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ1NzA7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEU7THU7MDtMOzxmb250PiAwMDQ1Ozs7O047Ozs7OworMUQ1NzE7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEY7THU7MDtMOzxmb250PiAwMDQ2Ozs7O047Ozs7OworMUQ1NzI7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ1NzM7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEg7THU7MDtMOzxmb250PiAwMDQ4Ozs7O047Ozs7OworMUQ1NzQ7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEk7THU7MDtMOzxmb250PiAwMDQ5Ozs7O047Ozs7OworMUQ1NzU7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ1NzY7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEs7THU7MDtMOzxmb250PiAwMDRCOzs7O047Ozs7OworMUQ1Nzc7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIEw7THU7MDtMOzxmb250PiAwMDRDOzs7O047Ozs7OworMUQ1Nzg7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ1Nzk7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIE47THU7MDtMOzxmb250PiAwMDRFOzs7O047Ozs7OworMUQ1N0E7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIE87THU7MDtMOzxmb250PiAwMDRGOzs7O047Ozs7OworMUQ1N0I7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ1N0M7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFE7THU7MDtMOzxmb250PiAwMDUxOzs7O047Ozs7OworMUQ1N0Q7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFI7THU7MDtMOzxmb250PiAwMDUyOzs7O047Ozs7OworMUQ1N0U7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ1N0Y7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFQ7THU7MDtMOzxmb250PiAwMDU0Ozs7O047Ozs7OworMUQ1ODA7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFU7THU7MDtMOzxmb250PiAwMDU1Ozs7O047Ozs7OworMUQ1ODE7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ1ODI7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFc7THU7MDtMOzxmb250PiAwMDU3Ozs7O047Ozs7OworMUQ1ODM7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFg7THU7MDtMOzxmb250PiAwMDU4Ozs7O047Ozs7OworMUQ1ODQ7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ1ODU7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBDQVBJVEFMIFo7THU7MDtMOzxmb250PiAwMDVBOzs7O047Ozs7OworMUQ1ODY7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBBO0xsOzA7TDs8Zm9udD4gMDA2MTs7OztOOzs7OzsKKzFENTg3O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDU4ODtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEM7TGw7MDtMOzxmb250PiAwMDYzOzs7O047Ozs7OworMUQ1ODk7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBEO0xsOzA7TDs8Zm9udD4gMDA2NDs7OztOOzs7OzsKKzFENThBO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDU4QjtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEY7TGw7MDtMOzxmb250PiAwMDY2Ozs7O047Ozs7OworMUQ1OEM7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBHO0xsOzA7TDs8Zm9udD4gMDA2Nzs7OztOOzs7OzsKKzFENThEO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDU4RTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEk7TGw7MDtMOzxmb250PiAwMDY5Ozs7O047Ozs7OworMUQ1OEY7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBKO0xsOzA7TDs8Zm9udD4gMDA2QTs7OztOOzs7OzsKKzFENTkwO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDU5MTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIEw7TGw7MDtMOzxmb250PiAwMDZDOzs7O047Ozs7OworMUQ1OTI7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBNO0xsOzA7TDs8Zm9udD4gMDA2RDs7OztOOzs7OzsKKzFENTkzO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDU5NDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIE87TGw7MDtMOzxmb250PiAwMDZGOzs7O047Ozs7OworMUQ1OTU7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBQO0xsOzA7TDs8Zm9udD4gMDA3MDs7OztOOzs7OzsKKzFENTk2O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDU5NztNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFI7TGw7MDtMOzxmb250PiAwMDcyOzs7O047Ozs7OworMUQ1OTg7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBTO0xsOzA7TDs8Zm9udD4gMDA3Mzs7OztOOzs7OzsKKzFENTk5O01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDU5QTtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFU7TGw7MDtMOzxmb250PiAwMDc1Ozs7O047Ozs7OworMUQ1OUI7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBWO0xsOzA7TDs8Zm9udD4gMDA3Njs7OztOOzs7OzsKKzFENTlDO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDU5RDtNQVRIRU1BVElDQUwgQk9MRCBGUkFLVFVSIFNNQUxMIFg7TGw7MDtMOzxmb250PiAwMDc4Ozs7O047Ozs7OworMUQ1OUU7TUFUSEVNQVRJQ0FMIEJPTEQgRlJBS1RVUiBTTUFMTCBZO0xsOzA7TDs8Zm9udD4gMDA3OTs7OztOOzs7OzsKKzFENTlGO01BVEhFTUFUSUNBTCBCT0xEIEZSQUtUVVIgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDVBMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ1QTE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENUEyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDVBMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ1QTQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENUE1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDVBNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ1QTc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENUE4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDVBOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ1QUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENUFCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDVBQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ1QUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENUFFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDVBRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ1QjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENUIxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDVCMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ1QjM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENUI0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDVCNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ1QjY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENUI3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDVCODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ1Qjk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENUJBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ1QkI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDVCQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENUJEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ1QkU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDVCRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENUMwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ1QzE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDVDMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENUMzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ1QzQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDVDNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENUM2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ1Qzc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDVDODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENUM5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ1Q0E7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDVDQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENUNDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ1Q0Q7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDVDRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENUNGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ1RDA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDVEMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENUQyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ1RDM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDVENDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDVENTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDVENjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDVENztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDVEODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDVEOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDVEQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDVEQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7Tjs7Ozs7CisxRDVEQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDVERDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDVERTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDVERjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDVFMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDVFMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDVFMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDVFMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDVFNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDVFNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDVFNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDVFNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDVFODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDVFOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDVFQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDVFQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDVFQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDVFRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDVFRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ1RUY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENUYwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDVGMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ1RjI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENUYzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDVGNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ1RjU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENUY2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDVGNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ1Rjg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENUY5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDVGQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ1RkI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENUZDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDVGRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ1RkU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENUZGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDYwMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ2MDE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENjAyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDYwMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ2MDQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENjA1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDYwNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ2MDc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENjA4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ2MDk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDYwQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBDO0x1OzA7TDs8Zm9udD4gMDA0Mzs7OztOOzs7OzsKKzFENjBCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ2MEM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDYwRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBGO0x1OzA7TDs8Zm9udD4gMDA0Njs7OztOOzs7OzsKKzFENjBFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ2MEY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7Tjs7Ozs7CisxRDYxMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBJO0x1OzA7TDs8Zm9udD4gMDA0OTs7OztOOzs7OzsKKzFENjExO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ2MTI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDYxMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBMO0x1OzA7TDs8Zm9udD4gMDA0Qzs7OztOOzs7OzsKKzFENjE0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ2MTU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDYxNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBPO0x1OzA7TDs8Zm9udD4gMDA0Rjs7OztOOzs7OzsKKzFENjE3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ2MTg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDYxOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBSO0x1OzA7TDs8Zm9udD4gMDA1Mjs7OztOOzs7OzsKKzFENjFBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ2MUI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDYxQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBVO0x1OzA7TDs8Zm9udD4gMDA1NTs7OztOOzs7OzsKKzFENjFEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ2MUU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDYxRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgQ0FQSVRBTCBYO0x1OzA7TDs8Zm9udD4gMDA1ODs7OztOOzs7OzsKKzFENjIwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIElUQUxJQyBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ2MjE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgSVRBTElDIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDYyMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgQTtMbDswO0w7PGZvbnQ+IDAwNjE7Ozs7Tjs7Ozs7CisxRDYyMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDYyNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDYyNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgRDtMbDswO0w7PGZvbnQ+IDAwNjQ7Ozs7Tjs7Ozs7CisxRDYyNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDYyNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDYyODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgRztMbDswO0w7PGZvbnQ+IDAwNjc7Ozs7Tjs7Ozs7CisxRDYyOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDYyQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDYyQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgSjtMbDswO0w7PGZvbnQ+IDAwNkE7Ozs7Tjs7Ozs7CisxRDYyQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDYyRDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDYyRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgTTtMbDswO0w7PGZvbnQ+IDAwNkQ7Ozs7Tjs7Ozs7CisxRDYyRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDYzMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDYzMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgUDtMbDswO0w7PGZvbnQ+IDAwNzA7Ozs7Tjs7Ozs7CisxRDYzMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDYzMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDYzNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgUztMbDswO0w7PGZvbnQ+IDAwNzM7Ozs7Tjs7Ozs7CisxRDYzNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDYzNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDYzNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgVjtMbDswO0w7PGZvbnQ+IDAwNzY7Ozs7Tjs7Ozs7CisxRDYzODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDYzOTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDYzQTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgWTtMbDswO0w7PGZvbnQ+IDAwNzk7Ozs7Tjs7Ozs7CisxRDYzQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBJVEFMSUMgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDYzQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEE7THU7MDtMOzxmb250PiAwMDQxOzs7O047Ozs7OworMUQ2M0Q7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBCO0x1OzA7TDs8Zm9udD4gMDA0Mjs7OztOOzs7OzsKKzFENjNFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDYzRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEQ7THU7MDtMOzxmb250PiAwMDQ0Ozs7O047Ozs7OworMUQ2NDA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBFO0x1OzA7TDs8Zm9udD4gMDA0NTs7OztOOzs7OzsKKzFENjQxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDY0MjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEc7THU7MDtMOzxmb250PiAwMDQ3Ozs7O047Ozs7OworMUQ2NDM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBIO0x1OzA7TDs8Zm9udD4gMDA0ODs7OztOOzs7OzsKKzFENjQ0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDY0NTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEo7THU7MDtMOzxmb250PiAwMDRBOzs7O047Ozs7OworMUQ2NDY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBLO0x1OzA7TDs8Zm9udD4gMDA0Qjs7OztOOzs7OzsKKzFENjQ3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDY0ODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIE07THU7MDtMOzxmb250PiAwMDREOzs7O047Ozs7OworMUQ2NDk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBOO0x1OzA7TDs8Zm9udD4gMDA0RTs7OztOOzs7OzsKKzFENjRBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDY0QjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFA7THU7MDtMOzxmb250PiAwMDUwOzs7O047Ozs7OworMUQ2NEM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBRO0x1OzA7TDs8Zm9udD4gMDA1MTs7OztOOzs7OzsKKzFENjREO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDY0RTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFM7THU7MDtMOzxmb250PiAwMDUzOzs7O047Ozs7OworMUQ2NEY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUO0x1OzA7TDs8Zm9udD4gMDA1NDs7OztOOzs7OzsKKzFENjUwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDY1MTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFY7THU7MDtMOzxmb250PiAwMDU2Ozs7O047Ozs7OworMUQ2NTI7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBXO0x1OzA7TDs8Zm9udD4gMDA1Nzs7OztOOzs7OzsKKzFENjUzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDY1NDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFk7THU7MDtMOzxmb250PiAwMDU5Ozs7O047Ozs7OworMUQ2NTU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBaO0x1OzA7TDs8Zm9udD4gMDA1QTs7OztOOzs7OzsKKzFENjU2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ2NTc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgQjtMbDswO0w7PGZvbnQ+IDAwNjI7Ozs7Tjs7Ozs7CisxRDY1ODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBDO0xsOzA7TDs8Zm9udD4gMDA2Mzs7OztOOzs7OzsKKzFENjU5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ2NUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRTtMbDswO0w7PGZvbnQ+IDAwNjU7Ozs7Tjs7Ozs7CisxRDY1QjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBGO0xsOzA7TDs8Zm9udD4gMDA2Njs7OztOOzs7OzsKKzFENjVDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ2NUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgSDtMbDswO0w7PGZvbnQ+IDAwNjg7Ozs7Tjs7Ozs7CisxRDY1RTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBJO0xsOzA7TDs8Zm9udD4gMDA2OTs7OztOOzs7OzsKKzFENjVGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ2NjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgSztMbDswO0w7PGZvbnQ+IDAwNkI7Ozs7Tjs7Ozs7CisxRDY2MTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBMO0xsOzA7TDs8Zm9udD4gMDA2Qzs7OztOOzs7OzsKKzFENjYyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ2NjM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgTjtMbDswO0w7PGZvbnQ+IDAwNkU7Ozs7Tjs7Ozs7CisxRDY2NDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBPO0xsOzA7TDs8Zm9udD4gMDA2Rjs7OztOOzs7OzsKKzFENjY1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ2NjY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUTtMbDswO0w7PGZvbnQ+IDAwNzE7Ozs7Tjs7Ozs7CisxRDY2NztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBSO0xsOzA7TDs8Zm9udD4gMDA3Mjs7OztOOzs7OzsKKzFENjY4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ2Njk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgVDtMbDswO0w7PGZvbnQ+IDAwNzQ7Ozs7Tjs7Ozs7CisxRDY2QTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBVO0xsOzA7TDs8Zm9udD4gMDA3NTs7OztOOzs7OzsKKzFENjZCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ2NkM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgVztMbDswO0w7PGZvbnQ+IDAwNzc7Ozs7Tjs7Ozs7CisxRDY2RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBYO0xsOzA7TDs8Zm9udD4gMDA3ODs7OztOOzs7OzsKKzFENjZFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ2NkY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgWjtMbDswO0w7PGZvbnQ+IDAwN0E7Ozs7Tjs7Ozs7CisxRDY3MDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgQTtMdTswO0w7PGZvbnQ+IDAwNDE7Ozs7Tjs7Ozs7CisxRDY3MTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgQjtMdTswO0w7PGZvbnQ+IDAwNDI7Ozs7Tjs7Ozs7CisxRDY3MjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgQztMdTswO0w7PGZvbnQ+IDAwNDM7Ozs7Tjs7Ozs7CisxRDY3MztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgRDtMdTswO0w7PGZvbnQ+IDAwNDQ7Ozs7Tjs7Ozs7CisxRDY3NDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgRTtMdTswO0w7PGZvbnQ+IDAwNDU7Ozs7Tjs7Ozs7CisxRDY3NTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgRjtMdTswO0w7PGZvbnQ+IDAwNDY7Ozs7Tjs7Ozs7CisxRDY3NjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgRztMdTswO0w7PGZvbnQ+IDAwNDc7Ozs7Tjs7Ozs7CisxRDY3NztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgSDtMdTswO0w7PGZvbnQ+IDAwNDg7Ozs7Tjs7Ozs7CisxRDY3ODtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgSTtMdTswO0w7PGZvbnQ+IDAwNDk7Ozs7Tjs7Ozs7CisxRDY3OTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgSjtMdTswO0w7PGZvbnQ+IDAwNEE7Ozs7Tjs7Ozs7CisxRDY3QTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgSztMdTswO0w7PGZvbnQ+IDAwNEI7Ozs7Tjs7Ozs7CisxRDY3QjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgTDtMdTswO0w7PGZvbnQ+IDAwNEM7Ozs7Tjs7Ozs7CisxRDY3QztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgTTtMdTswO0w7PGZvbnQ+IDAwNEQ7Ozs7Tjs7Ozs7CisxRDY3RDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgTjtMdTswO0w7PGZvbnQ+IDAwNEU7Ozs7Tjs7Ozs7CisxRDY3RTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgTztMdTswO0w7PGZvbnQ+IDAwNEY7Ozs7Tjs7Ozs7CisxRDY3RjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgUDtMdTswO0w7PGZvbnQ+IDAwNTA7Ozs7Tjs7Ozs7CisxRDY4MDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgUTtMdTswO0w7PGZvbnQ+IDAwNTE7Ozs7Tjs7Ozs7CisxRDY4MTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgUjtMdTswO0w7PGZvbnQ+IDAwNTI7Ozs7Tjs7Ozs7CisxRDY4MjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgUztMdTswO0w7PGZvbnQ+IDAwNTM7Ozs7Tjs7Ozs7CisxRDY4MztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgVDtMdTswO0w7PGZvbnQ+IDAwNTQ7Ozs7Tjs7Ozs7CisxRDY4NDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgVTtMdTswO0w7PGZvbnQ+IDAwNTU7Ozs7Tjs7Ozs7CisxRDY4NTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgVjtMdTswO0w7PGZvbnQ+IDAwNTY7Ozs7Tjs7Ozs7CisxRDY4NjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgVztMdTswO0w7PGZvbnQ+IDAwNTc7Ozs7Tjs7Ozs7CisxRDY4NztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgWDtMdTswO0w7PGZvbnQ+IDAwNTg7Ozs7Tjs7Ozs7CisxRDY4ODtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgWTtMdTswO0w7PGZvbnQ+IDAwNTk7Ozs7Tjs7Ozs7CisxRDY4OTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIENBUElUQUwgWjtMdTswO0w7PGZvbnQ+IDAwNUE7Ozs7Tjs7Ozs7CisxRDY4QTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEE7TGw7MDtMOzxmb250PiAwMDYxOzs7O047Ozs7OworMUQ2OEI7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBCO0xsOzA7TDs8Zm9udD4gMDA2Mjs7OztOOzs7OzsKKzFENjhDO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgQztMbDswO0w7PGZvbnQ+IDAwNjM7Ozs7Tjs7Ozs7CisxRDY4RDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEQ7TGw7MDtMOzxmb250PiAwMDY0Ozs7O047Ozs7OworMUQ2OEU7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBFO0xsOzA7TDs8Zm9udD4gMDA2NTs7OztOOzs7OzsKKzFENjhGO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgRjtMbDswO0w7PGZvbnQ+IDAwNjY7Ozs7Tjs7Ozs7CisxRDY5MDtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEc7TGw7MDtMOzxmb250PiAwMDY3Ozs7O047Ozs7OworMUQ2OTE7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBIO0xsOzA7TDs8Zm9udD4gMDA2ODs7OztOOzs7OzsKKzFENjkyO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgSTtMbDswO0w7PGZvbnQ+IDAwNjk7Ozs7Tjs7Ozs7CisxRDY5MztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIEo7TGw7MDtMOzxmb250PiAwMDZBOzs7O047Ozs7OworMUQ2OTQ7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBLO0xsOzA7TDs8Zm9udD4gMDA2Qjs7OztOOzs7OzsKKzFENjk1O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgTDtMbDswO0w7PGZvbnQ+IDAwNkM7Ozs7Tjs7Ozs7CisxRDY5NjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIE07TGw7MDtMOzxmb250PiAwMDZEOzs7O047Ozs7OworMUQ2OTc7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBOO0xsOzA7TDs8Zm9udD4gMDA2RTs7OztOOzs7OzsKKzFENjk4O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgTztMbDswO0w7PGZvbnQ+IDAwNkY7Ozs7Tjs7Ozs7CisxRDY5OTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFA7TGw7MDtMOzxmb250PiAwMDcwOzs7O047Ozs7OworMUQ2OUE7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBRO0xsOzA7TDs8Zm9udD4gMDA3MTs7OztOOzs7OzsKKzFENjlCO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgUjtMbDswO0w7PGZvbnQ+IDAwNzI7Ozs7Tjs7Ozs7CisxRDY5QztNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFM7TGw7MDtMOzxmb250PiAwMDczOzs7O047Ozs7OworMUQ2OUQ7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBUO0xsOzA7TDs8Zm9udD4gMDA3NDs7OztOOzs7OzsKKzFENjlFO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgVTtMbDswO0w7PGZvbnQ+IDAwNzU7Ozs7Tjs7Ozs7CisxRDY5RjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFY7TGw7MDtMOzxmb250PiAwMDc2Ozs7O047Ozs7OworMUQ2QTA7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBXO0xsOzA7TDs8Zm9udD4gMDA3Nzs7OztOOzs7OzsKKzFENkExO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgU01BTEwgWDtMbDswO0w7PGZvbnQ+IDAwNzg7Ozs7Tjs7Ozs7CisxRDZBMjtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIFNNQUxMIFk7TGw7MDtMOzxmb250PiAwMDc5Ozs7O047Ozs7OworMUQ2QTM7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBTTUFMTCBaO0xsOzA7TDs8Zm9udD4gMDA3QTs7OztOOzs7OzsKKzFENkE0O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRE9UTEVTUyBJO0xsOzA7TDs8Zm9udD4gMDEzMTs7OztOOzs7OzsKKzFENkE1O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRE9UTEVTUyBKO0xsOzA7TDs8Zm9udD4gMDIzNzs7OztOOzs7OzsKKzFENkE4O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgQUxQSEE7THU7MDtMOzxmb250PiAwMzkxOzs7O047Ozs7OworMUQ2QTk7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBCRVRBO0x1OzA7TDs8Zm9udD4gMDM5Mjs7OztOOzs7OzsKKzFENkFBO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgR0FNTUE7THU7MDtMOzxmb250PiAwMzkzOzs7O047Ozs7OworMUQ2QUI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBERUxUQTtMdTswO0w7PGZvbnQ+IDAzOTQ7Ozs7Tjs7Ozs7CisxRDZBQztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIEVQU0lMT047THU7MDtMOzxmb250PiAwMzk1Ozs7O047Ozs7OworMUQ2QUQ7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBaRVRBO0x1OzA7TDs8Zm9udD4gMDM5Njs7OztOOzs7OzsKKzFENkFFO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgRVRBO0x1OzA7TDs8Zm9udD4gMDM5Nzs7OztOOzs7OzsKKzFENkFGO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVEhFVEE7THU7MDtMOzxmb250PiAwMzk4Ozs7O047Ozs7OworMUQ2QjA7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBJT1RBO0x1OzA7TDs8Zm9udD4gMDM5OTs7OztOOzs7OzsKKzFENkIxO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgS0FQUEE7THU7MDtMOzxmb250PiAwMzlBOzs7O047Ozs7OworMUQ2QjI7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBMQU1EQTtMdTswO0w7PGZvbnQ+IDAzOUI7Ozs7Tjs7Ozs7CisxRDZCMztNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIE1VO0x1OzA7TDs8Zm9udD4gMDM5Qzs7OztOOzs7OzsKKzFENkI0O01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgTlU7THU7MDtMOzxmb250PiAwMzlEOzs7O047Ozs7OworMUQ2QjU7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBYSTtMdTswO0w7PGZvbnQ+IDAzOUU7Ozs7Tjs7Ozs7CisxRDZCNjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIE9NSUNST047THU7MDtMOzxmb250PiAwMzlGOzs7O047Ozs7OworMUQ2Qjc7TUFUSEVNQVRJQ0FMIEJPTEQgQ0FQSVRBTCBQSTtMdTswO0w7PGZvbnQ+IDAzQTA7Ozs7Tjs7Ozs7CisxRDZCODtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFJITztMdTswO0w7PGZvbnQ+IDAzQTE7Ozs7Tjs7Ozs7CisxRDZCOTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGZvbnQ+IDAzRjQ7Ozs7Tjs7Ozs7CisxRDZCQTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFNJR01BO0x1OzA7TDs8Zm9udD4gMDNBMzs7OztOOzs7OzsKKzFENkJCO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVEFVO0x1OzA7TDs8Zm9udD4gMDNBNDs7OztOOzs7OzsKKzFENkJDO01BVEhFTUFUSUNBTCBCT0xEIENBUElUQUwgVVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzQTU7Ozs7Tjs7Ozs7CisxRDZCRDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFBISTtMdTswO0w7PGZvbnQ+IDAzQTY7Ozs7Tjs7Ozs7CisxRDZCRTtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIENISTtMdTswO0w7PGZvbnQ+IDAzQTc7Ozs7Tjs7Ozs7CisxRDZCRjtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIFBTSTtMdTswO0w7PGZvbnQ+IDAzQTg7Ozs7Tjs7Ozs7CisxRDZDMDtNQVRIRU1BVElDQUwgQk9MRCBDQVBJVEFMIE9NRUdBO0x1OzA7TDs8Zm9udD4gMDNBOTs7OztOOzs7OzsKKzFENkMxO01BVEhFTUFUSUNBTCBCT0xEIE5BQkxBO1NtOzA7TDs8Zm9udD4gMjIwNzs7OztOOzs7OzsKKzFENkMyO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEFMUEhBO0xsOzA7TDs8Zm9udD4gMDNCMTs7OztOOzs7OzsKKzFENkMzO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEJFVEE7TGw7MDtMOzxmb250PiAwM0IyOzs7O047Ozs7OworMUQ2QzQ7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgR0FNTUE7TGw7MDtMOzxmb250PiAwM0IzOzs7O047Ozs7OworMUQ2QzU7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgREVMVEE7TGw7MDtMOzxmb250PiAwM0I0Ozs7O047Ozs7OworMUQ2QzY7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgRVBTSUxPTjtMbDswO0w7PGZvbnQ+IDAzQjU7Ozs7Tjs7Ozs7CisxRDZDNztNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBaRVRBO0xsOzA7TDs8Zm9udD4gMDNCNjs7OztOOzs7OzsKKzFENkM4O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEVUQTtMbDswO0w7PGZvbnQ+IDAzQjc7Ozs7Tjs7Ozs7CisxRDZDOTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBUSEVUQTtMbDswO0w7PGZvbnQ+IDAzQjg7Ozs7Tjs7Ozs7CisxRDZDQTtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBJT1RBO0xsOzA7TDs8Zm9udD4gMDNCOTs7OztOOzs7OzsKKzFENkNCO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEtBUFBBO0xsOzA7TDs8Zm9udD4gMDNCQTs7OztOOzs7OzsKKzFENkNDO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIExBTURBO0xsOzA7TDs8Zm9udD4gMDNCQjs7OztOOzs7OzsKKzFENkNEO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIE1VO0xsOzA7TDs8Zm9udD4gMDNCQzs7OztOOzs7OzsKKzFENkNFO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIE5VO0xsOzA7TDs8Zm9udD4gMDNCRDs7OztOOzs7OzsKKzFENkNGO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFhJO0xsOzA7TDs8Zm9udD4gMDNCRTs7OztOOzs7OzsKKzFENkQwO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIE9NSUNST047TGw7MDtMOzxmb250PiAwM0JGOzs7O047Ozs7OworMUQ2RDE7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUEk7TGw7MDtMOzxmb250PiAwM0MwOzs7O047Ozs7OworMUQ2RDI7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUkhPO0xsOzA7TDs8Zm9udD4gMDNDMTs7OztOOzs7OzsKKzFENkQzO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIEZJTkFMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMjs7OztOOzs7OzsKKzFENkQ0O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMzs7OztOOzs7OzsKKzFENkQ1O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFRBVTtMbDswO0w7PGZvbnQ+IDAzQzQ7Ozs7Tjs7Ozs7CisxRDZENjtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBVUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNDNTs7OztOOzs7OzsKKzFENkQ3O01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFBISTtMbDswO0w7PGZvbnQ+IDAzQzY7Ozs7Tjs7Ozs7CisxRDZEODtNQVRIRU1BVElDQUwgQk9MRCBTTUFMTCBDSEk7TGw7MDtMOzxmb250PiAwM0M3Ozs7O047Ozs7OworMUQ2RDk7TUFUSEVNQVRJQ0FMIEJPTEQgU01BTEwgUFNJO0xsOzA7TDs8Zm9udD4gMDNDODs7OztOOzs7OzsKKzFENkRBO01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIE9NRUdBO0xsOzA7TDs8Zm9udD4gMDNDOTs7OztOOzs7OzsKKzFENkRCO01BVEhFTUFUSUNBTCBCT0xEIFBBUlRJQUwgRElGRkVSRU5USUFMO1NtOzA7TDs8Zm9udD4gMjIwMjs7OztOOzs7OzsKKzFENkRDO01BVEhFTUFUSUNBTCBCT0xEIEVQU0lMT04gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGNTs7OztOOzs7OzsKKzFENkREO01BVEhFTUFUSUNBTCBCT0xEIFRIRVRBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDE7Ozs7Tjs7Ozs7CisxRDZERTtNQVRIRU1BVElDQUwgQk9MRCBLQVBQQSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YwOzs7O047Ozs7OworMUQ2REY7TUFUSEVNQVRJQ0FMIEJPTEQgUEhJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDU7Ozs7Tjs7Ozs7CisxRDZFMDtNQVRIRU1BVElDQUwgQk9MRCBSSE8gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMTs7OztOOzs7OzsKKzFENkUxO01BVEhFTUFUSUNBTCBCT0xEIFBJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDY7Ozs7Tjs7Ozs7CisxRDZFMjtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgQUxQSEE7THU7MDtMOzxmb250PiAwMzkxOzs7O047Ozs7OworMUQ2RTM7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEJFVEE7THU7MDtMOzxmb250PiAwMzkyOzs7O047Ozs7OworMUQ2RTQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIEdBTU1BO0x1OzA7TDs8Zm9udD4gMDM5Mzs7OztOOzs7OzsKKzFENkU1O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBERUxUQTtMdTswO0w7PGZvbnQ+IDAzOTQ7Ozs7Tjs7Ozs7CisxRDZFNjtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgRVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzOTU7Ozs7Tjs7Ozs7CisxRDZFNztNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgWkVUQTtMdTswO0w7PGZvbnQ+IDAzOTY7Ozs7Tjs7Ozs7CisxRDZFODtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgRVRBO0x1OzA7TDs8Zm9udD4gMDM5Nzs7OztOOzs7OzsKKzFENkU5O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBUSEVUQTtMdTswO0w7PGZvbnQ+IDAzOTg7Ozs7Tjs7Ozs7CisxRDZFQTtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgSU9UQTtMdTswO0w7PGZvbnQ+IDAzOTk7Ozs7Tjs7Ozs7CisxRDZFQjtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgS0FQUEE7THU7MDtMOzxmb250PiAwMzlBOzs7O047Ozs7OworMUQ2RUM7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIExBTURBO0x1OzA7TDs8Zm9udD4gMDM5Qjs7OztOOzs7OzsKKzFENkVEO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBNVTtMdTswO0w7PGZvbnQ+IDAzOUM7Ozs7Tjs7Ozs7CisxRDZFRTtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgTlU7THU7MDtMOzxmb250PiAwMzlEOzs7O047Ozs7OworMUQ2RUY7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFhJO0x1OzA7TDs8Zm9udD4gMDM5RTs7OztOOzs7OzsKKzFENkYwO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBPTUlDUk9OO0x1OzA7TDs8Zm9udD4gMDM5Rjs7OztOOzs7OzsKKzFENkYxO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBQSTtMdTswO0w7PGZvbnQ+IDAzQTA7Ozs7Tjs7Ozs7CisxRDZGMjtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgUkhPO0x1OzA7TDs8Zm9udD4gMDNBMTs7OztOOzs7OzsKKzFENkYzO01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBUSEVUQSBTWU1CT0w7THU7MDtMOzxmb250PiAwM0Y0Ozs7O047Ozs7OworMUQ2RjQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFNJR01BO0x1OzA7TDs8Zm9udD4gMDNBMzs7OztOOzs7OzsKKzFENkY1O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBUQVU7THU7MDtMOzxmb250PiAwM0E0Ozs7O047Ozs7OworMUQ2RjY7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFVQU0lMT047THU7MDtMOzxmb250PiAwM0E1Ozs7O047Ozs7OworMUQ2Rjc7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIFBISTtMdTswO0w7PGZvbnQ+IDAzQTY7Ozs7Tjs7Ozs7CisxRDZGODtNQVRIRU1BVElDQUwgSVRBTElDIENBUElUQUwgQ0hJO0x1OzA7TDs8Zm9udD4gMDNBNzs7OztOOzs7OzsKKzFENkY5O01BVEhFTUFUSUNBTCBJVEFMSUMgQ0FQSVRBTCBQU0k7THU7MDtMOzxmb250PiAwM0E4Ozs7O047Ozs7OworMUQ2RkE7TUFUSEVNQVRJQ0FMIElUQUxJQyBDQVBJVEFMIE9NRUdBO0x1OzA7TDs8Zm9udD4gMDNBOTs7OztOOzs7OzsKKzFENkZCO01BVEhFTUFUSUNBTCBJVEFMSUMgTkFCTEE7U207MDtMOzxmb250PiAyMjA3Ozs7O047Ozs7OworMUQ2RkM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBBTFBIQTtMbDswO0w7PGZvbnQ+IDAzQjE7Ozs7Tjs7Ozs7CisxRDZGRDtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIEJFVEE7TGw7MDtMOzxmb250PiAwM0IyOzs7O047Ozs7OworMUQ2RkU7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBHQU1NQTtMbDswO0w7PGZvbnQ+IDAzQjM7Ozs7Tjs7Ozs7CisxRDZGRjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIERFTFRBO0xsOzA7TDs8Zm9udD4gMDNCNDs7OztOOzs7OzsKKzFENzAwO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRVBTSUxPTjtMbDswO0w7PGZvbnQ+IDAzQjU7Ozs7Tjs7Ozs7CisxRDcwMTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFpFVEE7TGw7MDtMOzxmb250PiAwM0I2Ozs7O047Ozs7OworMUQ3MDI7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBFVEE7TGw7MDtMOzxmb250PiAwM0I3Ozs7O047Ozs7OworMUQ3MDM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBUSEVUQTtMbDswO0w7PGZvbnQ+IDAzQjg7Ozs7Tjs7Ozs7CisxRDcwNDtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIElPVEE7TGw7MDtMOzxmb250PiAwM0I5Ozs7O047Ozs7OworMUQ3MDU7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBLQVBQQTtMbDswO0w7PGZvbnQ+IDAzQkE7Ozs7Tjs7Ozs7CisxRDcwNjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIExBTURBO0xsOzA7TDs8Zm9udD4gMDNCQjs7OztOOzs7OzsKKzFENzA3O01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgTVU7TGw7MDtMOzxmb250PiAwM0JDOzs7O047Ozs7OworMUQ3MDg7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBOVTtMbDswO0w7PGZvbnQ+IDAzQkQ7Ozs7Tjs7Ozs7CisxRDcwOTtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFhJO0xsOzA7TDs8Zm9udD4gMDNCRTs7OztOOzs7OzsKKzFENzBBO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgT01JQ1JPTjtMbDswO0w7PGZvbnQ+IDAzQkY7Ozs7Tjs7Ozs7CisxRDcwQjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFBJO0xsOzA7TDs8Zm9udD4gMDNDMDs7OztOOzs7OzsKKzFENzBDO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgUkhPO0xsOzA7TDs8Zm9udD4gMDNDMTs7OztOOzs7OzsKKzFENzBEO01BVEhFTUFUSUNBTCBJVEFMSUMgU01BTEwgRklOQUwgU0lHTUE7TGw7MDtMOzxmb250PiAwM0MyOzs7O047Ozs7OworMUQ3MEU7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBTSUdNQTtMbDswO0w7PGZvbnQ+IDAzQzM7Ozs7Tjs7Ozs7CisxRDcwRjtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFRBVTtMbDswO0w7PGZvbnQ+IDAzQzQ7Ozs7Tjs7Ozs7CisxRDcxMDtNQVRIRU1BVElDQUwgSVRBTElDIFNNQUxMIFVQU0lMT047TGw7MDtMOzxmb250PiAwM0M1Ozs7O047Ozs7OworMUQ3MTE7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBQSEk7TGw7MDtMOzxmb250PiAwM0M2Ozs7O047Ozs7OworMUQ3MTI7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBDSEk7TGw7MDtMOzxmb250PiAwM0M3Ozs7O047Ozs7OworMUQ3MTM7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBQU0k7TGw7MDtMOzxmb250PiAwM0M4Ozs7O047Ozs7OworMUQ3MTQ7TUFUSEVNQVRJQ0FMIElUQUxJQyBTTUFMTCBPTUVHQTtMbDswO0w7PGZvbnQ+IDAzQzk7Ozs7Tjs7Ozs7CisxRDcxNTtNQVRIRU1BVElDQUwgSVRBTElDIFBBUlRJQUwgRElGRkVSRU5USUFMO1NtOzA7TDs8Zm9udD4gMjIwMjs7OztOOzs7OzsKKzFENzE2O01BVEhFTUFUSUNBTCBJVEFMSUMgRVBTSUxPTiBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Y1Ozs7O047Ozs7OworMUQ3MTc7TUFUSEVNQVRJQ0FMIElUQUxJQyBUSEVUQSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0QxOzs7O047Ozs7OworMUQ3MTg7TUFUSEVNQVRJQ0FMIElUQUxJQyBLQVBQQSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YwOzs7O047Ozs7OworMUQ3MTk7TUFUSEVNQVRJQ0FMIElUQUxJQyBQSEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENTs7OztOOzs7OzsKKzFENzFBO01BVEhFTUFUSUNBTCBJVEFMSUMgUkhPIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjE7Ozs7Tjs7Ozs7CisxRDcxQjtNQVRIRU1BVElDQUwgSVRBTElDIFBJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDY7Ozs7Tjs7Ozs7CisxRDcxQztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBBTFBIQTtMdTswO0w7PGZvbnQ+IDAzOTE7Ozs7Tjs7Ozs7CisxRDcxRDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBCRVRBO0x1OzA7TDs8Zm9udD4gMDM5Mjs7OztOOzs7OzsKKzFENzFFO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEdBTU1BO0x1OzA7TDs8Zm9udD4gMDM5Mzs7OztOOzs7OzsKKzFENzFGO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIERFTFRBO0x1OzA7TDs8Zm9udD4gMDM5NDs7OztOOzs7OzsKKzFENzIwO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIEVQU0lMT047THU7MDtMOzxmb250PiAwMzk1Ozs7O047Ozs7OworMUQ3MjE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgWkVUQTtMdTswO0w7PGZvbnQ+IDAzOTY7Ozs7Tjs7Ozs7CisxRDcyMjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBFVEE7THU7MDtMOzxmb250PiAwMzk3Ozs7O047Ozs7OworMUQ3MjM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgVEhFVEE7THU7MDtMOzxmb250PiAwMzk4Ozs7O047Ozs7OworMUQ3MjQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgSU9UQTtMdTswO0w7PGZvbnQ+IDAzOTk7Ozs7Tjs7Ozs7CisxRDcyNTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBLQVBQQTtMdTswO0w7PGZvbnQ+IDAzOUE7Ozs7Tjs7Ozs7CisxRDcyNjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBMQU1EQTtMdTswO0w7PGZvbnQ+IDAzOUI7Ozs7Tjs7Ozs7CisxRDcyNztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBNVTtMdTswO0w7PGZvbnQ+IDAzOUM7Ozs7Tjs7Ozs7CisxRDcyODtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBOVTtMdTswO0w7PGZvbnQ+IDAzOUQ7Ozs7Tjs7Ozs7CisxRDcyOTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBYSTtMdTswO0w7PGZvbnQ+IDAzOUU7Ozs7Tjs7Ozs7CisxRDcyQTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBPTUlDUk9OO0x1OzA7TDs8Zm9udD4gMDM5Rjs7OztOOzs7OzsKKzFENzJCO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFBJO0x1OzA7TDs8Zm9udD4gMDNBMDs7OztOOzs7OzsKKzFENzJDO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFJITztMdTswO0w7PGZvbnQ+IDAzQTE7Ozs7Tjs7Ozs7CisxRDcyRDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBUSEVUQSBTWU1CT0w7THU7MDtMOzxmb250PiAwM0Y0Ozs7O047Ozs7OworMUQ3MkU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgU0lHTUE7THU7MDtMOzxmb250PiAwM0EzOzs7O047Ozs7OworMUQ3MkY7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgVEFVO0x1OzA7TDs8Zm9udD4gMDNBNDs7OztOOzs7OzsKKzFENzMwO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIFVQU0lMT047THU7MDtMOzxmb250PiAwM0E1Ozs7O047Ozs7OworMUQ3MzE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgUEhJO0x1OzA7TDs8Zm9udD4gMDNBNjs7OztOOzs7OzsKKzFENzMyO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBDQVBJVEFMIENISTtMdTswO0w7PGZvbnQ+IDAzQTc7Ozs7Tjs7Ozs7CisxRDczMztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgQ0FQSVRBTCBQU0k7THU7MDtMOzxmb250PiAwM0E4Ozs7O047Ozs7OworMUQ3MzQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIENBUElUQUwgT01FR0E7THU7MDtMOzxmb250PiAwM0E5Ozs7O047Ozs7OworMUQ3MzU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIE5BQkxBO1NtOzA7TDs8Zm9udD4gMjIwNzs7OztOOzs7OzsKKzFENzM2O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBBTFBIQTtMbDswO0w7PGZvbnQ+IDAzQjE7Ozs7Tjs7Ozs7CisxRDczNztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgQkVUQTtMbDswO0w7PGZvbnQ+IDAzQjI7Ozs7Tjs7Ozs7CisxRDczODtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgR0FNTUE7TGw7MDtMOzxmb250PiAwM0IzOzs7O047Ozs7OworMUQ3Mzk7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIERFTFRBO0xsOzA7TDs8Zm9udD4gMDNCNDs7OztOOzs7OzsKKzFENzNBO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBFUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNCNTs7OztOOzs7OzsKKzFENzNCO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBaRVRBO0xsOzA7TDs8Zm9udD4gMDNCNjs7OztOOzs7OzsKKzFENzNDO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBFVEE7TGw7MDtMOzxmb250PiAwM0I3Ozs7O047Ozs7OworMUQ3M0Q7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFRIRVRBO0xsOzA7TDs8Zm9udD4gMDNCODs7OztOOzs7OzsKKzFENzNFO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBJT1RBO0xsOzA7TDs8Zm9udD4gMDNCOTs7OztOOzs7OzsKKzFENzNGO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBLQVBQQTtMbDswO0w7PGZvbnQ+IDAzQkE7Ozs7Tjs7Ozs7CisxRDc0MDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgTEFNREE7TGw7MDtMOzxmb250PiAwM0JCOzs7O047Ozs7OworMUQ3NDE7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE1VO0xsOzA7TDs8Zm9udD4gMDNCQzs7OztOOzs7OzsKKzFENzQyO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBOVTtMbDswO0w7PGZvbnQ+IDAzQkQ7Ozs7Tjs7Ozs7CisxRDc0MztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgWEk7TGw7MDtMOzxmb250PiAwM0JFOzs7O047Ozs7OworMUQ3NDQ7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIE9NSUNST047TGw7MDtMOzxmb250PiAwM0JGOzs7O047Ozs7OworMUQ3NDU7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIFBJO0xsOzA7TDs8Zm9udD4gMDNDMDs7OztOOzs7OzsKKzFENzQ2O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBSSE87TGw7MDtMOzxmb250PiAwM0MxOzs7O047Ozs7OworMUQ3NDc7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIEZJTkFMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMjs7OztOOzs7OzsKKzFENzQ4O01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBTSUdNQTtMbDswO0w7PGZvbnQ+IDAzQzM7Ozs7Tjs7Ozs7CisxRDc0OTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgVEFVO0xsOzA7TDs8Zm9udD4gMDNDNDs7OztOOzs7OzsKKzFENzRBO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBVUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNDNTs7OztOOzs7OzsKKzFENzRCO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBQSEk7TGw7MDtMOzxmb250PiAwM0M2Ozs7O047Ozs7OworMUQ3NEM7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIFNNQUxMIENISTtMbDswO0w7PGZvbnQ+IDAzQzc7Ozs7Tjs7Ozs7CisxRDc0RDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgU01BTEwgUFNJO0xsOzA7TDs8Zm9udD4gMDNDODs7OztOOzs7OzsKKzFENzRFO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBTTUFMTCBPTUVHQTtMbDswO0w7PGZvbnQ+IDAzQzk7Ozs7Tjs7Ozs7CisxRDc0RjtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgUEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtMOzxmb250PiAyMjAyOzs7O047Ozs7OworMUQ3NTA7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIEVQU0lMT04gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGNTs7OztOOzs7OzsKKzFENzUxO01BVEhFTUFUSUNBTCBCT0xEIElUQUxJQyBUSEVUQSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0QxOzs7O047Ozs7OworMUQ3NTI7TUFUSEVNQVRJQ0FMIEJPTEQgSVRBTElDIEtBUFBBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjA7Ozs7Tjs7Ozs7CisxRDc1MztNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgUEhJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDU7Ozs7Tjs7Ozs7CisxRDc1NDtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgUkhPIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjE7Ozs7Tjs7Ozs7CisxRDc1NTtNQVRIRU1BVElDQUwgQk9MRCBJVEFMSUMgUEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENjs7OztOOzs7OzsKKzFENzU2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBBTFBIQTtMdTswO0w7PGZvbnQ+IDAzOTE7Ozs7Tjs7Ozs7CisxRDc1NztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgQkVUQTtMdTswO0w7PGZvbnQ+IDAzOTI7Ozs7Tjs7Ozs7CisxRDc1ODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgR0FNTUE7THU7MDtMOzxmb250PiAwMzkzOzs7O047Ozs7OworMUQ3NTk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIERFTFRBO0x1OzA7TDs8Zm9udD4gMDM5NDs7OztOOzs7OzsKKzFENzVBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBFUFNJTE9OO0x1OzA7TDs8Zm9udD4gMDM5NTs7OztOOzs7OzsKKzFENzVCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBaRVRBO0x1OzA7TDs8Zm9udD4gMDM5Njs7OztOOzs7OzsKKzFENzVDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBFVEE7THU7MDtMOzxmb250PiAwMzk3Ozs7O047Ozs7OworMUQ3NUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFRIRVRBO0x1OzA7TDs8Zm9udD4gMDM5ODs7OztOOzs7OzsKKzFENzVFO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBJT1RBO0x1OzA7TDs8Zm9udD4gMDM5OTs7OztOOzs7OzsKKzFENzVGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBLQVBQQTtMdTswO0w7PGZvbnQ+IDAzOUE7Ozs7Tjs7Ozs7CisxRDc2MDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgTEFNREE7THU7MDtMOzxmb250PiAwMzlCOzs7O047Ozs7OworMUQ3NjE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIE1VO0x1OzA7TDs8Zm9udD4gMDM5Qzs7OztOOzs7OzsKKzFENzYyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBOVTtMdTswO0w7PGZvbnQ+IDAzOUQ7Ozs7Tjs7Ozs7CisxRDc2MztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgWEk7THU7MDtMOzxmb250PiAwMzlFOzs7O047Ozs7OworMUQ3NjQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIE9NSUNST047THU7MDtMOzxmb250PiAwMzlGOzs7O047Ozs7OworMUQ3NjU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFBJO0x1OzA7TDs8Zm9udD4gMDNBMDs7OztOOzs7OzsKKzFENzY2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBSSE87THU7MDtMOzxmb250PiAwM0ExOzs7O047Ozs7OworMUQ3Njc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGZvbnQ+IDAzRjQ7Ozs7Tjs7Ozs7CisxRDc2ODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgU0lHTUE7THU7MDtMOzxmb250PiAwM0EzOzs7O047Ozs7OworMUQ3Njk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFRBVTtMdTswO0w7PGZvbnQ+IDAzQTQ7Ozs7Tjs7Ozs7CisxRDc2QTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgVVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzQTU7Ozs7Tjs7Ozs7CisxRDc2QjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgUEhJO0x1OzA7TDs8Zm9udD4gMDNBNjs7OztOOzs7OzsKKzFENzZDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgQ0FQSVRBTCBDSEk7THU7MDtMOzxmb250PiAwM0E3Ozs7O047Ozs7OworMUQ3NkQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBDQVBJVEFMIFBTSTtMdTswO0w7PGZvbnQ+IDAzQTg7Ozs7Tjs7Ozs7CisxRDc2RTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIENBUElUQUwgT01FR0E7THU7MDtMOzxmb250PiAwM0E5Ozs7O047Ozs7OworMUQ3NkY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBOQUJMQTtTbTswO0w7PGZvbnQ+IDIyMDc7Ozs7Tjs7Ozs7CisxRDc3MDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEFMUEhBO0xsOzA7TDs8Zm9udD4gMDNCMTs7OztOOzs7OzsKKzFENzcxO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgQkVUQTtMbDswO0w7PGZvbnQ+IDAzQjI7Ozs7Tjs7Ozs7CisxRDc3MjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEdBTU1BO0xsOzA7TDs8Zm9udD4gMDNCMzs7OztOOzs7OzsKKzFENzczO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgREVMVEE7TGw7MDtMOzxmb250PiAwM0I0Ozs7O047Ozs7OworMUQ3NzQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBFUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNCNTs7OztOOzs7OzsKKzFENzc1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgWkVUQTtMbDswO0w7PGZvbnQ+IDAzQjY7Ozs7Tjs7Ozs7CisxRDc3NjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEVUQTtMbDswO0w7PGZvbnQ+IDAzQjc7Ozs7Tjs7Ozs7CisxRDc3NztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFRIRVRBO0xsOzA7TDs8Zm9udD4gMDNCODs7OztOOzs7OzsKKzFENzc4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgSU9UQTtMbDswO0w7PGZvbnQ+IDAzQjk7Ozs7Tjs7Ozs7CisxRDc3OTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIEtBUFBBO0xsOzA7TDs8Zm9udD4gMDNCQTs7OztOOzs7OzsKKzFENzdBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgTEFNREE7TGw7MDtMOzxmb250PiAwM0JCOzs7O047Ozs7OworMUQ3N0I7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBNVTtMbDswO0w7PGZvbnQ+IDAzQkM7Ozs7Tjs7Ozs7CisxRDc3QztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE5VO0xsOzA7TDs8Zm9udD4gMDNCRDs7OztOOzs7OzsKKzFENzdEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgWEk7TGw7MDtMOzxmb250PiAwM0JFOzs7O047Ozs7OworMUQ3N0U7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBPTUlDUk9OO0xsOzA7TDs8Zm9udD4gMDNCRjs7OztOOzs7OzsKKzFENzdGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgUEk7TGw7MDtMOzxmb250PiAwM0MwOzs7O047Ozs7OworMUQ3ODA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBSSE87TGw7MDtMOzxmb250PiAwM0MxOzs7O047Ozs7OworMUQ3ODE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBTTUFMTCBGSU5BTCBTSUdNQTtMbDswO0w7PGZvbnQ+IDAzQzI7Ozs7Tjs7Ozs7CisxRDc4MjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMzs7OztOOzs7OzsKKzFENzgzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgVEFVO0xsOzA7TDs8Zm9udD4gMDNDNDs7OztOOzs7OzsKKzFENzg0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgU01BTEwgVVBTSUxPTjtMbDswO0w7PGZvbnQ+IDAzQzU7Ozs7Tjs7Ozs7CisxRDc4NTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFBISTtMbDswO0w7PGZvbnQ+IDAzQzY7Ozs7Tjs7Ozs7CisxRDc4NjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIENISTtMbDswO0w7PGZvbnQ+IDAzQzc7Ozs7Tjs7Ozs7CisxRDc4NztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIFBTSTtMbDswO0w7PGZvbnQ+IDAzQzg7Ozs7Tjs7Ozs7CisxRDc4ODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFNNQUxMIE9NRUdBO0xsOzA7TDs8Zm9udD4gMDNDOTs7OztOOzs7OzsKKzFENzg5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgUEFSVElBTCBESUZGRVJFTlRJQUw7U207MDtMOzxmb250PiAyMjAyOzs7O047Ozs7OworMUQ3OEE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBFUFNJTE9OIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjU7Ozs7Tjs7Ozs7CisxRDc4QjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFRIRVRBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDE7Ozs7Tjs7Ozs7CisxRDc4QztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIEtBUFBBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRjA7Ozs7Tjs7Ozs7CisxRDc4RDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIFBISSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0Q1Ozs7O047Ozs7OworMUQ3OEU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBSSE8gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMTs7OztOOzs7OzsKKzFENzhGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgUEkgU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNENjs7OztOOzs7OzsKKzFENzkwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgQUxQSEE7THU7MDtMOzxmb250PiAwMzkxOzs7O047Ozs7OworMUQ3OTE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBCRVRBO0x1OzA7TDs8Zm9udD4gMDM5Mjs7OztOOzs7OzsKKzFENzkyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgR0FNTUE7THU7MDtMOzxmb250PiAwMzkzOzs7O047Ozs7OworMUQ3OTM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBERUxUQTtMdTswO0w7PGZvbnQ+IDAzOTQ7Ozs7Tjs7Ozs7CisxRDc5NDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIEVQU0lMT047THU7MDtMOzxmb250PiAwMzk1Ozs7O047Ozs7OworMUQ3OTU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBaRVRBO0x1OzA7TDs8Zm9udD4gMDM5Njs7OztOOzs7OzsKKzFENzk2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgRVRBO0x1OzA7TDs8Zm9udD4gMDM5Nzs7OztOOzs7OzsKKzFENzk3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgVEhFVEE7THU7MDtMOzxmb250PiAwMzk4Ozs7O047Ozs7OworMUQ3OTg7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBJT1RBO0x1OzA7TDs8Zm9udD4gMDM5OTs7OztOOzs7OzsKKzFENzk5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgS0FQUEE7THU7MDtMOzxmb250PiAwMzlBOzs7O047Ozs7OworMUQ3OUE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBMQU1EQTtMdTswO0w7PGZvbnQ+IDAzOUI7Ozs7Tjs7Ozs7CisxRDc5QjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIE1VO0x1OzA7TDs8Zm9udD4gMDM5Qzs7OztOOzs7OzsKKzFENzlDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgTlU7THU7MDtMOzxmb250PiAwMzlEOzs7O047Ozs7OworMUQ3OUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBYSTtMdTswO0w7PGZvbnQ+IDAzOUU7Ozs7Tjs7Ozs7CisxRDc5RTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIE9NSUNST047THU7MDtMOzxmb250PiAwMzlGOzs7O047Ozs7OworMUQ3OUY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgQ0FQSVRBTCBQSTtMdTswO0w7PGZvbnQ+IDAzQTA7Ozs7Tjs7Ozs7CisxRDdBMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFJITztMdTswO0w7PGZvbnQ+IDAzQTE7Ozs7Tjs7Ozs7CisxRDdBMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFRIRVRBIFNZTUJPTDtMdTswO0w7PGZvbnQ+IDAzRjQ7Ozs7Tjs7Ozs7CisxRDdBMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFNJR01BO0x1OzA7TDs8Zm9udD4gMDNBMzs7OztOOzs7OzsKKzFEN0EzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgVEFVO0x1OzA7TDs8Zm9udD4gMDNBNDs7OztOOzs7OzsKKzFEN0E0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIENBUElUQUwgVVBTSUxPTjtMdTswO0w7PGZvbnQ+IDAzQTU7Ozs7Tjs7Ozs7CisxRDdBNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFBISTtMdTswO0w7PGZvbnQ+IDAzQTY7Ozs7Tjs7Ozs7CisxRDdBNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIENISTtMdTswO0w7PGZvbnQ+IDAzQTc7Ozs7Tjs7Ozs7CisxRDdBNztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIFBTSTtMdTswO0w7PGZvbnQ+IDAzQTg7Ozs7Tjs7Ozs7CisxRDdBODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBDQVBJVEFMIE9NRUdBO0x1OzA7TDs8Zm9udD4gMDNBOTs7OztOOzs7OzsKKzFEN0E5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIE5BQkxBO1NtOzA7TDs8Zm9udD4gMjIwNzs7OztOOzs7OzsKKzFEN0FBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEFMUEhBO0xsOzA7TDs8Zm9udD4gMDNCMTs7OztOOzs7OzsKKzFEN0FCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEJFVEE7TGw7MDtMOzxmb250PiAwM0IyOzs7O047Ozs7OworMUQ3QUM7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgR0FNTUE7TGw7MDtMOzxmb250PiAwM0IzOzs7O047Ozs7OworMUQ3QUQ7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgREVMVEE7TGw7MDtMOzxmb250PiAwM0I0Ozs7O047Ozs7OworMUQ3QUU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgRVBTSUxPTjtMbDswO0w7PGZvbnQ+IDAzQjU7Ozs7Tjs7Ozs7CisxRDdBRjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBaRVRBO0xsOzA7TDs8Zm9udD4gMDNCNjs7OztOOzs7OzsKKzFEN0IwO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEVUQTtMbDswO0w7PGZvbnQ+IDAzQjc7Ozs7Tjs7Ozs7CisxRDdCMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBUSEVUQTtMbDswO0w7PGZvbnQ+IDAzQjg7Ozs7Tjs7Ozs7CisxRDdCMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBJT1RBO0xsOzA7TDs8Zm9udD4gMDNCOTs7OztOOzs7OzsKKzFEN0IzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEtBUFBBO0xsOzA7TDs8Zm9udD4gMDNCQTs7OztOOzs7OzsKKzFEN0I0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIExBTURBO0xsOzA7TDs8Zm9udD4gMDNCQjs7OztOOzs7OzsKKzFEN0I1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIE1VO0xsOzA7TDs8Zm9udD4gMDNCQzs7OztOOzs7OzsKKzFEN0I2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIE5VO0xsOzA7TDs8Zm9udD4gMDNCRDs7OztOOzs7OzsKKzFEN0I3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFhJO0xsOzA7TDs8Zm9udD4gMDNCRTs7OztOOzs7OzsKKzFEN0I4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIE9NSUNST047TGw7MDtMOzxmb250PiAwM0JGOzs7O047Ozs7OworMUQ3Qjk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUEk7TGw7MDtMOzxmb250PiAwM0MwOzs7O047Ozs7OworMUQ3QkE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUkhPO0xsOzA7TDs8Zm9udD4gMDNDMTs7OztOOzs7OzsKKzFEN0JCO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIEZJTkFMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMjs7OztOOzs7OzsKKzFEN0JDO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFNJR01BO0xsOzA7TDs8Zm9udD4gMDNDMzs7OztOOzs7OzsKKzFEN0JEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFRBVTtMbDswO0w7PGZvbnQ+IDAzQzQ7Ozs7Tjs7Ozs7CisxRDdCRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBVUFNJTE9OO0xsOzA7TDs8Zm9udD4gMDNDNTs7OztOOzs7OzsKKzFEN0JGO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIFBISTtMbDswO0w7PGZvbnQ+IDAzQzY7Ozs7Tjs7Ozs7CisxRDdDMDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBTTUFMTCBDSEk7TGw7MDtMOzxmb250PiAwM0M3Ozs7O047Ozs7OworMUQ3QzE7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgU01BTEwgUFNJO0xsOzA7TDs8Zm9udD4gMDNDODs7OztOOzs7OzsKKzFEN0MyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFNNQUxMIE9NRUdBO0xsOzA7TDs8Zm9udD4gMDNDOTs7OztOOzs7OzsKKzFEN0MzO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFBBUlRJQUwgRElGRkVSRU5USUFMO1NtOzA7TDs8Zm9udD4gMjIwMjs7OztOOzs7OzsKKzFEN0M0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIEVQU0lMT04gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGNTs7OztOOzs7OzsKKzFEN0M1O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFRIRVRBIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDE7Ozs7Tjs7Ozs7CisxRDdDNjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBLQVBQQSBTWU1CT0w7TGw7MDtMOzxmb250PiAwM0YwOzs7O047Ozs7OworMUQ3Qzc7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgUEhJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDU7Ozs7Tjs7Ozs7CisxRDdDODtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIElUQUxJQyBSSE8gU1lNQk9MO0xsOzA7TDs8Zm9udD4gMDNGMTs7OztOOzs7OzsKKzFEN0M5O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgSVRBTElDIFBJIFNZTUJPTDtMbDswO0w7PGZvbnQ+IDAzRDY7Ozs7Tjs7Ozs7CisxRDdDRTtNQVRIRU1BVElDQUwgQk9MRCBESUdJVCBaRVJPO05kOzA7RU47PGZvbnQ+IDAwMzA7MDswOzA7Tjs7Ozs7CisxRDdDRjtNQVRIRU1BVElDQUwgQk9MRCBESUdJVCBPTkU7TmQ7MDtFTjs8Zm9udD4gMDAzMTsxOzE7MTtOOzs7OzsKKzFEN0QwO01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIFRXTztOZDswO0VOOzxmb250PiAwMDMyOzI7MjsyO047Ozs7OworMUQ3RDE7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgVEhSRUU7TmQ7MDtFTjs8Zm9udD4gMDAzMzszOzM7MztOOzs7OzsKKzFEN0QyO01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIEZPVVI7TmQ7MDtFTjs8Zm9udD4gMDAzNDs0OzQ7NDtOOzs7OzsKKzFEN0QzO01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIEZJVkU7TmQ7MDtFTjs8Zm9udD4gMDAzNTs1OzU7NTtOOzs7OzsKKzFEN0Q0O01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIFNJWDtOZDswO0VOOzxmb250PiAwMDM2OzY7Njs2O047Ozs7OworMUQ3RDU7TUFUSEVNQVRJQ0FMIEJPTEQgRElHSVQgU0VWRU47TmQ7MDtFTjs8Zm9udD4gMDAzNzs3Ozc7NztOOzs7OzsKKzFEN0Q2O01BVEhFTUFUSUNBTCBCT0xEIERJR0lUIEVJR0hUO05kOzA7RU47PGZvbnQ+IDAwMzg7ODs4Ozg7Tjs7Ozs7CisxRDdENztNQVRIRU1BVElDQUwgQk9MRCBESUdJVCBOSU5FO05kOzA7RU47PGZvbnQ+IDAwMzk7OTs5Ozk7Tjs7Ozs7CisxRDdEODtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBESUdJVCBaRVJPO05kOzA7RU47PGZvbnQ+IDAwMzA7MDswOzA7Tjs7Ozs7CisxRDdEOTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBESUdJVCBPTkU7TmQ7MDtFTjs8Zm9udD4gMDAzMTsxOzE7MTtOOzs7OzsKKzFEN0RBO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIFRXTztOZDswO0VOOzxmb250PiAwMDMyOzI7MjsyO047Ozs7OworMUQ3REI7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgVEhSRUU7TmQ7MDtFTjs8Zm9udD4gMDAzMzszOzM7MztOOzs7OzsKKzFEN0RDO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIEZPVVI7TmQ7MDtFTjs8Zm9udD4gMDAzNDs0OzQ7NDtOOzs7OzsKKzFEN0REO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIEZJVkU7TmQ7MDtFTjs8Zm9udD4gMDAzNTs1OzU7NTtOOzs7OzsKKzFEN0RFO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIFNJWDtOZDswO0VOOzxmb250PiAwMDM2OzY7Njs2O047Ozs7OworMUQ3REY7TUFUSEVNQVRJQ0FMIERPVUJMRS1TVFJVQ0sgRElHSVQgU0VWRU47TmQ7MDtFTjs8Zm9udD4gMDAzNzs3Ozc7NztOOzs7OzsKKzFEN0UwO01BVEhFTUFUSUNBTCBET1VCTEUtU1RSVUNLIERJR0lUIEVJR0hUO05kOzA7RU47PGZvbnQ+IDAwMzg7ODs4Ozg7Tjs7Ozs7CisxRDdFMTtNQVRIRU1BVElDQUwgRE9VQkxFLVNUUlVDSyBESUdJVCBOSU5FO05kOzA7RU47PGZvbnQ+IDAwMzk7OTs5Ozk7Tjs7Ozs7CisxRDdFMjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBESUdJVCBaRVJPO05kOzA7RU47PGZvbnQ+IDAwMzA7MDswOzA7Tjs7Ozs7CisxRDdFMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBESUdJVCBPTkU7TmQ7MDtFTjs8Zm9udD4gMDAzMTsxOzE7MTtOOzs7OzsKKzFEN0U0O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIFRXTztOZDswO0VOOzxmb250PiAwMDMyOzI7MjsyO047Ozs7OworMUQ3RTU7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgVEhSRUU7TmQ7MDtFTjs8Zm9udD4gMDAzMzszOzM7MztOOzs7OzsKKzFEN0U2O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIEZPVVI7TmQ7MDtFTjs8Zm9udD4gMDAzNDs0OzQ7NDtOOzs7OzsKKzFEN0U3O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIEZJVkU7TmQ7MDtFTjs8Zm9udD4gMDAzNTs1OzU7NTtOOzs7OzsKKzFEN0U4O01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIFNJWDtOZDswO0VOOzxmb250PiAwMDM2OzY7Njs2O047Ozs7OworMUQ3RTk7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgRElHSVQgU0VWRU47TmQ7MDtFTjs8Zm9udD4gMDAzNzs3Ozc7NztOOzs7OzsKKzFEN0VBO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIERJR0lUIEVJR0hUO05kOzA7RU47PGZvbnQ+IDAwMzg7ODs4Ozg7Tjs7Ozs7CisxRDdFQjtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBESUdJVCBOSU5FO05kOzA7RU47PGZvbnQ+IDAwMzk7OTs5Ozk7Tjs7Ozs7CisxRDdFQztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIFpFUk87TmQ7MDtFTjs8Zm9udD4gMDAzMDswOzA7MDtOOzs7OzsKKzFEN0VEO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgT05FO05kOzA7RU47PGZvbnQ+IDAwMzE7MTsxOzE7Tjs7Ozs7CisxRDdFRTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIFRXTztOZDswO0VOOzxmb250PiAwMDMyOzI7MjsyO047Ozs7OworMUQ3RUY7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBESUdJVCBUSFJFRTtOZDswO0VOOzxmb250PiAwMDMzOzM7MzszO047Ozs7OworMUQ3RjA7TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBESUdJVCBGT1VSO05kOzA7RU47PGZvbnQ+IDAwMzQ7NDs0OzQ7Tjs7Ozs7CisxRDdGMTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIEZJVkU7TmQ7MDtFTjs8Zm9udD4gMDAzNTs1OzU7NTtOOzs7OzsKKzFEN0YyO01BVEhFTUFUSUNBTCBTQU5TLVNFUklGIEJPTEQgRElHSVQgU0lYO05kOzA7RU47PGZvbnQ+IDAwMzY7Njs2OzY7Tjs7Ozs7CisxRDdGMztNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIFNFVkVOO05kOzA7RU47PGZvbnQ+IDAwMzc7Nzs3Ozc7Tjs7Ozs7CisxRDdGNDtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIEVJR0hUO05kOzA7RU47PGZvbnQ+IDAwMzg7ODs4Ozg7Tjs7Ozs7CisxRDdGNTtNQVRIRU1BVElDQUwgU0FOUy1TRVJJRiBCT0xEIERJR0lUIE5JTkU7TmQ7MDtFTjs8Zm9udD4gMDAzOTs5Ozk7OTtOOzs7OzsKKzFEN0Y2O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgWkVSTztOZDswO0VOOzxmb250PiAwMDMwOzA7MDswO047Ozs7OworMUQ3Rjc7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBPTkU7TmQ7MDtFTjs8Zm9udD4gMDAzMTsxOzE7MTtOOzs7OzsKKzFEN0Y4O01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgVFdPO05kOzA7RU47PGZvbnQ+IDAwMzI7MjsyOzI7Tjs7Ozs7CisxRDdGOTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIERJR0lUIFRIUkVFO05kOzA7RU47PGZvbnQ+IDAwMzM7MzszOzM7Tjs7Ozs7CisxRDdGQTtNQVRIRU1BVElDQUwgTU9OT1NQQUNFIERJR0lUIEZPVVI7TmQ7MDtFTjs8Zm9udD4gMDAzNDs0OzQ7NDtOOzs7OzsKKzFEN0ZCO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgRklWRTtOZDswO0VOOzxmb250PiAwMDM1OzU7NTs1O047Ozs7OworMUQ3RkM7TUFUSEVNQVRJQ0FMIE1PTk9TUEFDRSBESUdJVCBTSVg7TmQ7MDtFTjs8Zm9udD4gMDAzNjs2OzY7NjtOOzs7OzsKKzFEN0ZEO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgU0VWRU47TmQ7MDtFTjs8Zm9udD4gMDAzNzs3Ozc7NztOOzs7OzsKKzFEN0ZFO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgRUlHSFQ7TmQ7MDtFTjs8Zm9udD4gMDAzODs4Ozg7ODtOOzs7OzsKKzFEN0ZGO01BVEhFTUFUSUNBTCBNT05PU1BBQ0UgRElHSVQgTklORTtOZDswO0VOOzxmb250PiAwMDM5Ozk7OTs5O047Ozs7OworMjAwMDA7PENKSyBJZGVvZ3JhcGggRXh0ZW5zaW9uIEIsIEZpcnN0PjtMbzswO0w7Ozs7O047Ozs7OworMkE2RDY7PENKSyBJZGVvZ3JhcGggRXh0ZW5zaW9uIEIsIExhc3Q+O0xvOzA7TDs7Ozs7Tjs7Ozs7CisyRjgwMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDA7TG87MDtMOzRFM0Q7Ozs7Tjs7Ozs7CisyRjgwMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDE7TG87MDtMOzRFMzg7Ozs7Tjs7Ozs7CisyRjgwMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDI7TG87MDtMOzRFNDE7Ozs7Tjs7Ozs7CisyRjgwMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MDM7TG87MDtMOzIwMTIyOzs7O047Ozs7OworMkY4MDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODA0O0xvOzA7TDs0RjYwOzs7O047Ozs7OworMkY4MDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODA1O0xvOzA7TDs0RkFFOzs7O047Ozs7OworMkY4MDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODA2O0xvOzA7TDs0RkJCOzs7O047Ozs7OworMkY4MDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODA3O0xvOzA7TDs1MDAyOzs7O047Ozs7OworMkY4MDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODA4O0xvOzA7TDs1MDdBOzs7O047Ozs7OworMkY4MDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODA5O0xvOzA7TDs1MDk5Ozs7O047Ozs7OworMkY4MEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODBBO0xvOzA7TDs1MEU3Ozs7O047Ozs7OworMkY4MEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODBCO0xvOzA7TDs1MENGOzs7O047Ozs7OworMkY4MEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODBDO0xvOzA7TDszNDlFOzs7O047Ozs7OworMkY4MEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODBEO0xvOzA7TDsyMDYzQTs7OztOOzs7OzsKKzJGODBFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwRTtMbzswO0w7NTE0RDs7OztOOzs7OzsKKzJGODBGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgwRjtMbzswO0w7NTE1NDs7OztOOzs7OzsKKzJGODEwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxMDtMbzswO0w7NTE2NDs7OztOOzs7OzsKKzJGODExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxMTtMbzswO0w7NTE3Nzs7OztOOzs7OzsKKzJGODEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxMjtMbzswO0w7MjA1MUM7Ozs7Tjs7Ozs7CisyRjgxMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTM7TG87MDtMOzM0Qjk7Ozs7Tjs7Ozs7CisyRjgxNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTQ7TG87MDtMOzUxNjc7Ozs7Tjs7Ozs7CisyRjgxNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTU7TG87MDtMOzUxOEQ7Ozs7Tjs7Ozs7CisyRjgxNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MTY7TG87MDtMOzIwNTRCOzs7O047Ozs7OworMkY4MTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODE3O0xvOzA7TDs1MTk3Ozs7O047Ozs7OworMkY4MTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODE4O0xvOzA7TDs1MUE0Ozs7O047Ozs7OworMkY4MTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODE5O0xvOzA7TDs0RUNDOzs7O047Ozs7OworMkY4MUE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFBO0xvOzA7TDs1MUFDOzs7O047Ozs7OworMkY4MUI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFCO0xvOzA7TDs1MUI1Ozs7O047Ozs7OworMkY4MUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODFDO0xvOzA7TDsyOTFERjs7OztOOzs7OzsKKzJGODFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxRDtMbzswO0w7NTFGNTs7OztOOzs7OzsKKzJGODFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxRTtMbzswO0w7NTIwMzs7OztOOzs7OzsKKzJGODFGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgxRjtMbzswO0w7MzRERjs7OztOOzs7OzsKKzJGODIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyMDtMbzswO0w7NTIzQjs7OztOOzs7OzsKKzJGODIxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyMTtMbzswO0w7NTI0Njs7OztOOzs7OzsKKzJGODIyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyMjtMbzswO0w7NTI3Mjs7OztOOzs7OzsKKzJGODIzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyMztMbzswO0w7NTI3Nzs7OztOOzs7OzsKKzJGODI0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyNDtMbzswO0w7MzUxNTs7OztOOzs7OzsKKzJGODI1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyNTtMbzswO0w7NTJDNzs7OztOOzs7OzsKKzJGODI2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyNjtMbzswO0w7NTJDOTs7OztOOzs7OzsKKzJGODI3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyNztMbzswO0w7NTJFNDs7OztOOzs7OzsKKzJGODI4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyODtMbzswO0w7NTJGQTs7OztOOzs7OzsKKzJGODI5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyOTtMbzswO0w7NTMwNTs7OztOOzs7OzsKKzJGODJBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyQTtMbzswO0w7NTMwNjs7OztOOzs7OzsKKzJGODJCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyQjtMbzswO0w7NTMxNzs7OztOOzs7OzsKKzJGODJDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyQztMbzswO0w7NTM0OTs7OztOOzs7OzsKKzJGODJEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyRDtMbzswO0w7NTM1MTs7OztOOzs7OzsKKzJGODJFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyRTtMbzswO0w7NTM1QTs7OztOOzs7OzsKKzJGODJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgyRjtMbzswO0w7NTM3Mzs7OztOOzs7OzsKKzJGODMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzMDtMbzswO0w7NTM3RDs7OztOOzs7OzsKKzJGODMxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzMTtMbzswO0w7NTM3Rjs7OztOOzs7OzsKKzJGODMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzMjtMbzswO0w7NTM3Rjs7OztOOzs7OzsKKzJGODMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzMztMbzswO0w7NTM3Rjs7OztOOzs7OzsKKzJGODM0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjgzNDtMbzswO0w7MjBBMkM7Ozs7Tjs7Ozs7CisyRjgzNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MzU7TG87MDtMOzcwNzA7Ozs7Tjs7Ozs7CisyRjgzNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4MzY7TG87MDtMOzUzQ0E7Ozs7Tjs7Ozs7CisyRjgzNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Mzc7TG87MDtMOzUzREY7Ozs7Tjs7Ozs7CisyRjgzODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Mzg7TG87MDtMOzIwQjYzOzs7O047Ozs7OworMkY4Mzk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODM5O0xvOzA7TDs1M0VCOzs7O047Ozs7OworMkY4M0E7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODNBO0xvOzA7TDs1M0YxOzs7O047Ozs7OworMkY4M0I7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODNCO0xvOzA7TDs1NDA2Ozs7O047Ozs7OworMkY4M0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODNDO0xvOzA7TDs1NDlFOzs7O047Ozs7OworMkY4M0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODNEO0xvOzA7TDs1NDM4Ozs7O047Ozs7OworMkY4M0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODNFO0xvOzA7TDs1NDQ4Ozs7O047Ozs7OworMkY4M0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODNGO0xvOzA7TDs1NDY4Ozs7O047Ozs7OworMkY4NDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQwO0xvOzA7TDs1NEEyOzs7O047Ozs7OworMkY4NDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQxO0xvOzA7TDs1NEY2Ozs7O047Ozs7OworMkY4NDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQyO0xvOzA7TDs1NTEwOzs7O047Ozs7OworMkY4NDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQzO0xvOzA7TDs1NTUzOzs7O047Ozs7OworMkY4NDQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQ0O0xvOzA7TDs1NTYzOzs7O047Ozs7OworMkY4NDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQ1O0xvOzA7TDs1NTg0Ozs7O047Ozs7OworMkY4NDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQ2O0xvOzA7TDs1NTg0Ozs7O047Ozs7OworMkY4NDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQ3O0xvOzA7TDs1NTk5Ozs7O047Ozs7OworMkY4NDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQ4O0xvOzA7TDs1NUFCOzs7O047Ozs7OworMkY4NDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODQ5O0xvOzA7TDs1NUIzOzs7O047Ozs7OworMkY4NEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODRBO0xvOzA7TDs1NUMyOzs7O047Ozs7OworMkY4NEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODRCO0xvOzA7TDs1NzE2Ozs7O047Ozs7OworMkY4NEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODRDO0xvOzA7TDs1NjA2Ozs7O047Ozs7OworMkY4NEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODREO0xvOzA7TDs1NzE3Ozs7O047Ozs7OworMkY4NEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODRFO0xvOzA7TDs1NjUxOzs7O047Ozs7OworMkY4NEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODRGO0xvOzA7TDs1Njc0Ozs7O047Ozs7OworMkY4NTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODUwO0xvOzA7TDs1MjA3Ozs7O047Ozs7OworMkY4NTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODUxO0xvOzA7TDs1OEVFOzs7O047Ozs7OworMkY4NTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODUyO0xvOzA7TDs1N0NFOzs7O047Ozs7OworMkY4NTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODUzO0xvOzA7TDs1N0Y0Ozs7O047Ozs7OworMkY4NTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODU0O0xvOzA7TDs1ODBEOzs7O047Ozs7OworMkY4NTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODU1O0xvOzA7TDs1NzhCOzs7O047Ozs7OworMkY4NTY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODU2O0xvOzA7TDs1ODMyOzs7O047Ozs7OworMkY4NTc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODU3O0xvOzA7TDs1ODMxOzs7O047Ozs7OworMkY4NTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODU4O0xvOzA7TDs1OEFDOzs7O047Ozs7OworMkY4NTk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODU5O0xvOzA7TDsyMTRFNDs7OztOOzs7OzsKKzJGODVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg1QTtMbzswO0w7NThGMjs7OztOOzs7OzsKKzJGODVCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg1QjtMbzswO0w7NThGNzs7OztOOzs7OzsKKzJGODVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg1QztMbzswO0w7NTkwNjs7OztOOzs7OzsKKzJGODVEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg1RDtMbzswO0w7NTkxQTs7OztOOzs7OzsKKzJGODVFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg1RTtMbzswO0w7NTkyMjs7OztOOzs7OzsKKzJGODVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg1RjtMbzswO0w7NTk2Mjs7OztOOzs7OzsKKzJGODYwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2MDtMbzswO0w7MjE2QTg7Ozs7Tjs7Ozs7CisyRjg2MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NjE7TG87MDtMOzIxNkVBOzs7O047Ozs7OworMkY4NjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODYyO0xvOzA7TDs1OUVDOzs7O047Ozs7OworMkY4NjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODYzO0xvOzA7TDs1QTFCOzs7O047Ozs7OworMkY4NjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODY0O0xvOzA7TDs1QTI3Ozs7O047Ozs7OworMkY4NjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODY1O0xvOzA7TDs1OUQ4Ozs7O047Ozs7OworMkY4NjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODY2O0xvOzA7TDs1QTY2Ozs7O047Ozs7OworMkY4Njc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODY3O0xvOzA7TDszNkVFOzs7O047Ozs7OworMkY4Njg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODY4O0xvOzA7TDszNkZDOzs7O047Ozs7OworMkY4Njk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODY5O0xvOzA7TDs1QjA4Ozs7O047Ozs7OworMkY4NkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZBO0xvOzA7TDs1QjNFOzs7O047Ozs7OworMkY4NkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZCO0xvOzA7TDs1QjNFOzs7O047Ozs7OworMkY4NkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODZDO0xvOzA7TDsyMTlDODs7OztOOzs7OzsKKzJGODZEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2RDtMbzswO0w7NUJDMzs7OztOOzs7OzsKKzJGODZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2RTtMbzswO0w7NUJEODs7OztOOzs7OzsKKzJGODZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg2RjtMbzswO0w7NUJFNzs7OztOOzs7OzsKKzJGODcwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3MDtMbzswO0w7NUJGMzs7OztOOzs7OzsKKzJGODcxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3MTtMbzswO0w7MjFCMTg7Ozs7Tjs7Ozs7CisyRjg3MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzI7TG87MDtMOzVCRkY7Ozs7Tjs7Ozs7CisyRjg3MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzM7TG87MDtMOzVDMDY7Ozs7Tjs7Ozs7CisyRjg3NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzQ7TG87MDtMOzVGNTM7Ozs7Tjs7Ozs7CisyRjg3NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzU7TG87MDtMOzVDMjI7Ozs7Tjs7Ozs7CisyRjg3NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4NzY7TG87MDtMOzM3ODE7Ozs7Tjs7Ozs7CisyRjg3NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Nzc7TG87MDtMOzVDNjA7Ozs7Tjs7Ozs7CisyRjg3ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Nzg7TG87MDtMOzVDNkU7Ozs7Tjs7Ozs7CisyRjg3OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Nzk7TG87MDtMOzVDQzA7Ozs7Tjs7Ozs7CisyRjg3QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4N0E7TG87MDtMOzVDOEQ7Ozs7Tjs7Ozs7CisyRjg3QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4N0I7TG87MDtMOzIxREU0Ozs7O047Ozs7OworMkY4N0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODdDO0xvOzA7TDs1RDQzOzs7O047Ozs7OworMkY4N0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODdEO0xvOzA7TDsyMURFNjs7OztOOzs7OzsKKzJGODdFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3RTtMbzswO0w7NUQ2RTs7OztOOzs7OzsKKzJGODdGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg3RjtMbzswO0w7NUQ2Qjs7OztOOzs7OzsKKzJGODgwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MDtMbzswO0w7NUQ3Qzs7OztOOzs7OzsKKzJGODgxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MTtMbzswO0w7NURFMTs7OztOOzs7OzsKKzJGODgyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MjtMbzswO0w7NURFMjs7OztOOzs7OzsKKzJGODgzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4MztMbzswO0w7MzgyRjs7OztOOzs7OzsKKzJGODg0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NDtMbzswO0w7NURGRDs7OztOOzs7OzsKKzJGODg1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NTtMbzswO0w7NUUyODs7OztOOzs7OzsKKzJGODg2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NjtMbzswO0w7NUUzRDs7OztOOzs7OzsKKzJGODg3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4NztMbzswO0w7NUU2OTs7OztOOzs7OzsKKzJGODg4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4ODtMbzswO0w7Mzg2Mjs7OztOOzs7OzsKKzJGODg5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg4OTtMbzswO0w7MjIxODM7Ozs7Tjs7Ozs7CisyRjg4QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEE7TG87MDtMOzM4N0M7Ozs7Tjs7Ozs7CisyRjg4QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEI7TG87MDtMOzVFQjA7Ozs7Tjs7Ozs7CisyRjg4QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEM7TG87MDtMOzVFQjM7Ozs7Tjs7Ozs7CisyRjg4RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEQ7TG87MDtMOzVFQjY7Ozs7Tjs7Ozs7CisyRjg4RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEU7TG87MDtMOzVFQ0E7Ozs7Tjs7Ozs7CisyRjg4RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OEY7TG87MDtMOzJBMzkyOzs7O047Ozs7OworMkY4OTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODkwO0xvOzA7TDs1RUZFOzs7O047Ozs7OworMkY4OTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODkxO0xvOzA7TDsyMjMzMTs7OztOOzs7OzsKKzJGODkyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5MjtMbzswO0w7MjIzMzE7Ozs7Tjs7Ozs7CisyRjg5MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTM7TG87MDtMOzgyMDE7Ozs7Tjs7Ozs7CisyRjg5NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTQ7TG87MDtMOzVGMjI7Ozs7Tjs7Ozs7CisyRjg5NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTU7TG87MDtMOzVGMjI7Ozs7Tjs7Ozs7CisyRjg5NjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTY7TG87MDtMOzM4Qzc7Ozs7Tjs7Ozs7CisyRjg5NztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4OTc7TG87MDtMOzIzMkI4Ozs7O047Ozs7OworMkY4OTg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGODk4O0xvOzA7TDsyNjFEQTs7OztOOzs7OzsKKzJGODk5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5OTtMbzswO0w7NUY2Mjs7OztOOzs7OzsKKzJGODlBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5QTtMbzswO0w7NUY2Qjs7OztOOzs7OzsKKzJGODlCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5QjtMbzswO0w7MzhFMzs7OztOOzs7OzsKKzJGODlDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5QztMbzswO0w7NUY5QTs7OztOOzs7OzsKKzJGODlEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5RDtMbzswO0w7NUZDRDs7OztOOzs7OzsKKzJGODlFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5RTtMbzswO0w7NUZENzs7OztOOzs7OzsKKzJGODlGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjg5RjtMbzswO0w7NUZGOTs7OztOOzs7OzsKKzJGOEEwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMDtMbzswO0w7NjA4MTs7OztOOzs7OzsKKzJGOEExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMTtMbzswO0w7MzkzQTs7OztOOzs7OzsKKzJGOEEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMjtMbzswO0w7MzkxQzs7OztOOzs7OzsKKzJGOEEzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBMztMbzswO0w7NjA5NDs7OztOOzs7OzsKKzJGOEE0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhBNDtMbzswO0w7MjI2RDQ7Ozs7Tjs7Ozs7CisyRjhBNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTU7TG87MDtMOzYwQzc7Ozs7Tjs7Ozs7CisyRjhBNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTY7TG87MDtMOzYxNDg7Ozs7Tjs7Ozs7CisyRjhBNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTc7TG87MDtMOzYxNEM7Ozs7Tjs7Ozs7CisyRjhBODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTg7TG87MDtMOzYxNEU7Ozs7Tjs7Ozs7CisyRjhBOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QTk7TG87MDtMOzYxNEM7Ozs7Tjs7Ozs7CisyRjhBQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUE7TG87MDtMOzYxN0E7Ozs7Tjs7Ozs7CisyRjhBQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUI7TG87MDtMOzYxOEU7Ozs7Tjs7Ozs7CisyRjhBQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUM7TG87MDtMOzYxQjI7Ozs7Tjs7Ozs7CisyRjhBRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUQ7TG87MDtMOzYxQTQ7Ozs7Tjs7Ozs7CisyRjhBRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUU7TG87MDtMOzYxQUY7Ozs7Tjs7Ozs7CisyRjhBRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QUY7TG87MDtMOzYxREU7Ozs7Tjs7Ozs7CisyRjhCMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjA7TG87MDtMOzYxRjI7Ozs7Tjs7Ozs7CisyRjhCMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjE7TG87MDtMOzYxRjY7Ozs7Tjs7Ozs7CisyRjhCMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjI7TG87MDtMOzYyMTA7Ozs7Tjs7Ozs7CisyRjhCMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjM7TG87MDtMOzYyMUI7Ozs7Tjs7Ozs7CisyRjhCNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjQ7TG87MDtMOzYyNUQ7Ozs7Tjs7Ozs7CisyRjhCNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjU7TG87MDtMOzYyQjE7Ozs7Tjs7Ozs7CisyRjhCNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4QjY7TG87MDtMOzYyRDQ7Ozs7Tjs7Ozs7CisyRjhCNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Qjc7TG87MDtMOzYzNTA7Ozs7Tjs7Ozs7CisyRjhCODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Qjg7TG87MDtMOzIyQjBDOzs7O047Ozs7OworMkY4Qjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEI5O0xvOzA7TDs2MzNEOzs7O047Ozs7OworMkY4QkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJBO0xvOzA7TDs2MkZDOzs7O047Ozs7OworMkY4QkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJCO0xvOzA7TDs2MzY4Ozs7O047Ozs7OworMkY4QkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJDO0xvOzA7TDs2MzgzOzs7O047Ozs7OworMkY4QkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJEO0xvOzA7TDs2M0U0Ozs7O047Ozs7OworMkY4QkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEJFO0xvOzA7TDsyMkJGMTs7OztOOzs7OzsKKzJGOEJGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhCRjtMbzswO0w7NjQyMjs7OztOOzs7OzsKKzJGOEMwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMDtMbzswO0w7NjNDNTs7OztOOzs7OzsKKzJGOEMxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMTtMbzswO0w7NjNBOTs7OztOOzs7OzsKKzJGOEMyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMjtMbzswO0w7M0EyRTs7OztOOzs7OzsKKzJGOEMzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDMztMbzswO0w7NjQ2OTs7OztOOzs7OzsKKzJGOEM0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNDtMbzswO0w7NjQ3RTs7OztOOzs7OzsKKzJGOEM1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNTtMbzswO0w7NjQ5RDs7OztOOzs7OzsKKzJGOEM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNjtMbzswO0w7NjQ3Nzs7OztOOzs7OzsKKzJGOEM3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDNztMbzswO0w7M0E2Qzs7OztOOzs7OzsKKzJGOEM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDODtMbzswO0w7NjU0Rjs7OztOOzs7OzsKKzJGOEM5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDOTtMbzswO0w7NjU2Qzs7OztOOzs7OzsKKzJGOENBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhDQTtMbzswO0w7MjMwMEE7Ozs7Tjs7Ozs7CisyRjhDQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0I7TG87MDtMOzY1RTM7Ozs7Tjs7Ozs7CisyRjhDQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0M7TG87MDtMOzY2Rjg7Ozs7Tjs7Ozs7CisyRjhDRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0Q7TG87MDtMOzY2NDk7Ozs7Tjs7Ozs7CisyRjhDRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0U7TG87MDtMOzNCMTk7Ozs7Tjs7Ozs7CisyRjhDRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Q0Y7TG87MDtMOzY2OTE7Ozs7Tjs7Ozs7CisyRjhEMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDA7TG87MDtMOzNCMDg7Ozs7Tjs7Ozs7CisyRjhEMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDE7TG87MDtMOzNBRTQ7Ozs7Tjs7Ozs7CisyRjhEMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDI7TG87MDtMOzUxOTI7Ozs7Tjs7Ozs7CisyRjhEMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDM7TG87MDtMOzUxOTU7Ozs7Tjs7Ozs7CisyRjhENDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDQ7TG87MDtMOzY3MDA7Ozs7Tjs7Ozs7CisyRjhENTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDU7TG87MDtMOzY2OUM7Ozs7Tjs7Ozs7CisyRjhENjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDY7TG87MDtMOzgwQUQ7Ozs7Tjs7Ozs7CisyRjhENztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDc7TG87MDtMOzQzRDk7Ozs7Tjs7Ozs7CisyRjhEODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDg7TG87MDtMOzY3MTc7Ozs7Tjs7Ozs7CisyRjhEOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RDk7TG87MDtMOzY3MUI7Ozs7Tjs7Ozs7CisyRjhEQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REE7TG87MDtMOzY3MjE7Ozs7Tjs7Ozs7CisyRjhEQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REI7TG87MDtMOzY3NUU7Ozs7Tjs7Ozs7CisyRjhEQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REM7TG87MDtMOzY3NTM7Ozs7Tjs7Ozs7CisyRjhERDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4REQ7TG87MDtMOzIzM0MzOzs7O047Ozs7OworMkY4REU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOERFO0xvOzA7TDszQjQ5Ozs7O047Ozs7OworMkY4REY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOERGO0xvOzA7TDs2N0ZBOzs7O047Ozs7OworMkY4RTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUwO0xvOzA7TDs2Nzg1Ozs7O047Ozs7OworMkY4RTE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUxO0xvOzA7TDs2ODUyOzs7O047Ozs7OworMkY4RTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUyO0xvOzA7TDs2ODg1Ozs7O047Ozs7OworMkY4RTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEUzO0xvOzA7TDsyMzQ2RDs7OztOOzs7OzsKKzJGOEU0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNDtMbzswO0w7Njg4RTs7OztOOzs7OzsKKzJGOEU1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNTtMbzswO0w7NjgxRjs7OztOOzs7OzsKKzJGOEU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNjtMbzswO0w7NjkxNDs7OztOOzs7OzsKKzJGOEU3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFNztMbzswO0w7M0I5RDs7OztOOzs7OzsKKzJGOEU4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFODtMbzswO0w7Njk0Mjs7OztOOzs7OzsKKzJGOEU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFOTtMbzswO0w7NjlBMzs7OztOOzs7OzsKKzJGOEVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFQTtMbzswO0w7NjlFQTs7OztOOzs7OzsKKzJGOEVCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFQjtMbzswO0w7NkFBODs7OztOOzs7OzsKKzJGOEVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhFQztMbzswO0w7MjM2QTM7Ozs7Tjs7Ozs7CisyRjhFRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RUQ7TG87MDtMOzZBREI7Ozs7Tjs7Ozs7CisyRjhFRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RUU7TG87MDtMOzNDMTg7Ozs7Tjs7Ozs7CisyRjhFRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RUY7TG87MDtMOzZCMjE7Ozs7Tjs7Ozs7CisyRjhGMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4RjA7TG87MDtMOzIzOEE3Ozs7O047Ozs7OworMkY4RjE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEYxO0xvOzA7TDs2QjU0Ozs7O047Ozs7OworMkY4RjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEYyO0xvOzA7TDszQzRFOzs7O047Ozs7OworMkY4RjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEYzO0xvOzA7TDs2QjcyOzs7O047Ozs7OworMkY4RjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY0O0xvOzA7TDs2QjlGOzs7O047Ozs7OworMkY4RjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY1O0xvOzA7TDs2QkJBOzs7O047Ozs7OworMkY4RjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY2O0xvOzA7TDs2QkJCOzs7O047Ozs7OworMkY4Rjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEY3O0xvOzA7TDsyM0E4RDs7OztOOzs7OzsKKzJGOEY4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGODtMbzswO0w7MjFEMEI7Ozs7Tjs7Ozs7CisyRjhGOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY4Rjk7TG87MDtMOzIzQUZBOzs7O047Ozs7OworMkY4RkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEZBO0xvOzA7TDs2QzRFOzs7O047Ozs7OworMkY4RkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOEZCO0xvOzA7TDsyM0NCQzs7OztOOzs7OzsKKzJGOEZDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGQztMbzswO0w7NkNCRjs7OztOOzs7OzsKKzJGOEZEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGRDtMbzswO0w7NkNDRDs7OztOOzs7OzsKKzJGOEZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGRTtMbzswO0w7NkM2Nzs7OztOOzs7OzsKKzJGOEZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjhGRjtMbzswO0w7NkQxNjs7OztOOzs7OzsKKzJGOTAwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMDtMbzswO0w7NkQzRTs7OztOOzs7OzsKKzJGOTAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMTtMbzswO0w7NkQ3Nzs7OztOOzs7OzsKKzJGOTAyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMjtMbzswO0w7NkQ0MTs7OztOOzs7OzsKKzJGOTAzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwMztMbzswO0w7NkQ2OTs7OztOOzs7OzsKKzJGOTA0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwNDtMbzswO0w7NkQ3ODs7OztOOzs7OzsKKzJGOTA1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwNTtMbzswO0w7NkQ4NTs7OztOOzs7OzsKKzJGOTA2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkwNjtMbzswO0w7MjNEMUU7Ozs7Tjs7Ozs7CisyRjkwNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MDc7TG87MDtMOzZEMzQ7Ozs7Tjs7Ozs7CisyRjkwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MDg7TG87MDtMOzZFMkY7Ozs7Tjs7Ozs7CisyRjkwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MDk7TG87MDtMOzZFNkU7Ozs7Tjs7Ozs7CisyRjkwQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEE7TG87MDtMOzNEMzM7Ozs7Tjs7Ozs7CisyRjkwQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEI7TG87MDtMOzZFQ0I7Ozs7Tjs7Ozs7CisyRjkwQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEM7TG87MDtMOzZFQzc7Ozs7Tjs7Ozs7CisyRjkwRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MEQ7TG87MDtMOzIzRUQxOzs7O047Ozs7OworMkY5MEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTBFO0xvOzA7TDs2REY5Ozs7O047Ozs7OworMkY5MEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTBGO0xvOzA7TDs2RjZFOzs7O047Ozs7OworMkY5MTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTEwO0xvOzA7TDsyM0Y1RTs7OztOOzs7OzsKKzJGOTExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxMTtMbzswO0w7MjNGOEU7Ozs7Tjs7Ozs7CisyRjkxMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTI7TG87MDtMOzZGQzY7Ozs7Tjs7Ozs7CisyRjkxMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTM7TG87MDtMOzcwMzk7Ozs7Tjs7Ozs7CisyRjkxNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTQ7TG87MDtMOzcwMUU7Ozs7Tjs7Ozs7CisyRjkxNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTU7TG87MDtMOzcwMUI7Ozs7Tjs7Ozs7CisyRjkxNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTY7TG87MDtMOzNEOTY7Ozs7Tjs7Ozs7CisyRjkxNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTc7TG87MDtMOzcwNEE7Ozs7Tjs7Ozs7CisyRjkxODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTg7TG87MDtMOzcwN0Q7Ozs7Tjs7Ozs7CisyRjkxOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MTk7TG87MDtMOzcwNzc7Ozs7Tjs7Ozs7CisyRjkxQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MUE7TG87MDtMOzcwQUQ7Ozs7Tjs7Ozs7CisyRjkxQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MUI7TG87MDtMOzIwNTI1Ozs7O047Ozs7OworMkY5MUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTFDO0xvOzA7TDs3MTQ1Ozs7O047Ozs7OworMkY5MUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTFEO0xvOzA7TDsyNDI2Mzs7OztOOzs7OzsKKzJGOTFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxRTtMbzswO0w7NzE5Qzs7OztOOzs7OzsKKzJGOTFGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkxRjtMbzswO0w7MjQzQUI7Ozs7Tjs7Ozs7CisyRjkyMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjA7TG87MDtMOzcyMjg7Ozs7Tjs7Ozs7CisyRjkyMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjE7TG87MDtMOzcyMzU7Ozs7Tjs7Ozs7CisyRjkyMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjI7TG87MDtMOzcyNTA7Ozs7Tjs7Ozs7CisyRjkyMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MjM7TG87MDtMOzI0NjA4Ozs7O047Ozs7OworMkY5MjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTI0O0xvOzA7TDs3MjgwOzs7O047Ozs7OworMkY5MjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTI1O0xvOzA7TDs3Mjk1Ozs7O047Ozs7OworMkY5MjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTI2O0xvOzA7TDsyNDczNTs7OztOOzs7OzsKKzJGOTI3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkyNztMbzswO0w7MjQ4MTQ7Ozs7Tjs7Ozs7CisyRjkyODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Mjg7TG87MDtMOzczN0E7Ozs7Tjs7Ozs7CisyRjkyOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Mjk7TG87MDtMOzczOEI7Ozs7Tjs7Ozs7CisyRjkyQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MkE7TG87MDtMOzNFQUM7Ozs7Tjs7Ozs7CisyRjkyQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MkI7TG87MDtMOzczQTU7Ozs7Tjs7Ozs7CisyRjkyQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MkM7TG87MDtMOzNFQjg7Ozs7Tjs7Ozs7CisyRjkyRDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MkQ7TG87MDtMOzNFQjg7Ozs7Tjs7Ozs7CisyRjkyRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MkU7TG87MDtMOzc0NDc7Ozs7Tjs7Ozs7CisyRjkyRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MkY7TG87MDtMOzc0NUM7Ozs7Tjs7Ozs7CisyRjkzMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzA7TG87MDtMOzc0NzE7Ozs7Tjs7Ozs7CisyRjkzMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzE7TG87MDtMOzc0ODU7Ozs7Tjs7Ozs7CisyRjkzMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzI7TG87MDtMOzc0Q0E7Ozs7Tjs7Ozs7CisyRjkzMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzM7TG87MDtMOzNGMUI7Ozs7Tjs7Ozs7CisyRjkzNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzQ7TG87MDtMOzc1MjQ7Ozs7Tjs7Ozs7CisyRjkzNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5MzU7TG87MDtMOzI0QzM2Ozs7O047Ozs7OworMkY5MzY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTM2O0xvOzA7TDs3NTNFOzs7O047Ozs7OworMkY5Mzc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTM3O0xvOzA7TDsyNEM5Mjs7OztOOzs7OzsKKzJGOTM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzODtMbzswO0w7NzU3MDs7OztOOzs7OzsKKzJGOTM5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzOTtMbzswO0w7MjIxOUY7Ozs7Tjs7Ozs7CisyRjkzQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5M0E7TG87MDtMOzc2MTA7Ozs7Tjs7Ozs7CisyRjkzQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5M0I7TG87MDtMOzI0RkExOzs7O047Ozs7OworMkY5M0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTNDO0xvOzA7TDsyNEZCODs7OztOOzs7OzsKKzJGOTNEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjkzRDtMbzswO0w7MjUwNDQ7Ozs7Tjs7Ozs7CisyRjkzRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5M0U7TG87MDtMOzNGRkM7Ozs7Tjs7Ozs7CisyRjkzRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5M0Y7TG87MDtMOzQwMDg7Ozs7Tjs7Ozs7CisyRjk0MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDA7TG87MDtMOzc2RjQ7Ozs7Tjs7Ozs7CisyRjk0MTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDE7TG87MDtMOzI1MEYzOzs7O047Ozs7OworMkY5NDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQyO0xvOzA7TDsyNTBGMjs7OztOOzs7OzsKKzJGOTQzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0MztMbzswO0w7MjUxMTk7Ozs7Tjs7Ozs7CisyRjk0NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NDQ7TG87MDtMOzI1MTMzOzs7O047Ozs7OworMkY5NDU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQ1O0xvOzA7TDs3NzFFOzs7O047Ozs7OworMkY5NDY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQ2O0xvOzA7TDs3NzFGOzs7O047Ozs7OworMkY5NDc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQ3O0xvOzA7TDs3NzFGOzs7O047Ozs7OworMkY5NDg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQ4O0xvOzA7TDs3NzRBOzs7O047Ozs7OworMkY5NDk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTQ5O0xvOzA7TDs0MDM5Ozs7O047Ozs7OworMkY5NEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTRBO0xvOzA7TDs3NzhCOzs7O047Ozs7OworMkY5NEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTRCO0xvOzA7TDs0MDQ2Ozs7O047Ozs7OworMkY5NEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTRDO0xvOzA7TDs0MDk2Ozs7O047Ozs7OworMkY5NEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTREO0xvOzA7TDsyNTQxRDs7OztOOzs7OzsKKzJGOTRFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0RTtMbzswO0w7Nzg0RTs7OztOOzs7OzsKKzJGOTRGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk0RjtMbzswO0w7Nzg4Qzs7OztOOzs7OzsKKzJGOTUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1MDtMbzswO0w7NzhDQzs7OztOOzs7OzsKKzJGOTUxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1MTtMbzswO0w7NDBFMzs7OztOOzs7OzsKKzJGOTUyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1MjtMbzswO0w7MjU2MjY7Ozs7Tjs7Ozs7CisyRjk1MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NTM7TG87MDtMOzc5NTY7Ozs7Tjs7Ozs7CisyRjk1NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NTQ7TG87MDtMOzI1NjlBOzs7O047Ozs7OworMkY5NTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTU1O0xvOzA7TDsyNTZDNTs7OztOOzs7OzsKKzJGOTU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1NjtMbzswO0w7Nzk4Rjs7OztOOzs7OzsKKzJGOTU3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1NztMbzswO0w7NzlFQjs7OztOOzs7OzsKKzJGOTU4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1ODtMbzswO0w7NDEyRjs7OztOOzs7OzsKKzJGOTU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1OTtMbzswO0w7N0E0MDs7OztOOzs7OzsKKzJGOTVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1QTtMbzswO0w7N0E0QTs7OztOOzs7OzsKKzJGOTVCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1QjtMbzswO0w7N0E0Rjs7OztOOzs7OzsKKzJGOTVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1QztMbzswO0w7MjU5N0M7Ozs7Tjs7Ozs7CisyRjk1RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NUQ7TG87MDtMOzI1QUE3Ozs7O047Ozs7OworMkY5NUU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTVFO0xvOzA7TDsyNUFBNzs7OztOOzs7OzsKKzJGOTVGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk1RjtMbzswO0w7N0FFRTs7OztOOzs7OzsKKzJGOTYwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2MDtMbzswO0w7NDIwMjs7OztOOzs7OzsKKzJGOTYxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2MTtMbzswO0w7MjVCQUI7Ozs7Tjs7Ozs7CisyRjk2MjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NjI7TG87MDtMOzdCQzY7Ozs7Tjs7Ozs7CisyRjk2MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NjM7TG87MDtMOzdCQzk7Ozs7Tjs7Ozs7CisyRjk2NDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NjQ7TG87MDtMOzQyMjc7Ozs7Tjs7Ozs7CisyRjk2NTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NjU7TG87MDtMOzI1QzgwOzs7O047Ozs7OworMkY5NjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTY2O0xvOzA7TDs3Q0QyOzs7O047Ozs7OworMkY5Njc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTY3O0xvOzA7TDs0MkEwOzs7O047Ozs7OworMkY5Njg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTY4O0xvOzA7TDs3Q0U4Ozs7O047Ozs7OworMkY5Njk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTY5O0xvOzA7TDs3Q0UzOzs7O047Ozs7OworMkY5NkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZBO0xvOzA7TDs3RDAwOzs7O047Ozs7OworMkY5NkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTZCO0xvOzA7TDsyNUY4Njs7OztOOzs7OzsKKzJGOTZDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2QztMbzswO0w7N0Q2Mzs7OztOOzs7OzsKKzJGOTZEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2RDtMbzswO0w7NDMwMTs7OztOOzs7OzsKKzJGOTZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2RTtMbzswO0w7N0RDNzs7OztOOzs7OzsKKzJGOTZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk2RjtMbzswO0w7N0UwMjs7OztOOzs7OzsKKzJGOTcwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3MDtMbzswO0w7N0U0NTs7OztOOzs7OzsKKzJGOTcxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3MTtMbzswO0w7NDMzNDs7OztOOzs7OzsKKzJGOTcyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3MjtMbzswO0w7MjYyMjg7Ozs7Tjs7Ozs7CisyRjk3MztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5NzM7TG87MDtMOzI2MjQ3Ozs7O047Ozs7OworMkY5NzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTc0O0xvOzA7TDs0MzU5Ozs7O047Ozs7OworMkY5NzU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTc1O0xvOzA7TDsyNjJEOTs7OztOOzs7OzsKKzJGOTc2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3NjtMbzswO0w7N0Y3QTs7OztOOzs7OzsKKzJGOTc3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3NztMbzswO0w7MjYzM0U7Ozs7Tjs7Ozs7CisyRjk3ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Nzg7TG87MDtMOzdGOTU7Ozs7Tjs7Ozs7CisyRjk3OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Nzk7TG87MDtMOzdGRkE7Ozs7Tjs7Ozs7CisyRjk3QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5N0E7TG87MDtMOzgwMDU7Ozs7Tjs7Ozs7CisyRjk3QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5N0I7TG87MDtMOzI2NERBOzs7O047Ozs7OworMkY5N0M7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTdDO0xvOzA7TDsyNjUyMzs7OztOOzs7OzsKKzJGOTdEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3RDtMbzswO0w7ODA2MDs7OztOOzs7OzsKKzJGOTdFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk3RTtMbzswO0w7MjY1QTg7Ozs7Tjs7Ozs7CisyRjk3RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5N0Y7TG87MDtMOzgwNzA7Ozs7Tjs7Ozs7CisyRjk4MDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODA7TG87MDtMOzIzMzVGOzs7O047Ozs7OworMkY5ODE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTgxO0xvOzA7TDs0M0Q1Ozs7O047Ozs7OworMkY5ODI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTgyO0xvOzA7TDs4MEIyOzs7O047Ozs7OworMkY5ODM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTgzO0xvOzA7TDs4MTAzOzs7O047Ozs7OworMkY5ODQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTg0O0xvOzA7TDs0NDBCOzs7O047Ozs7OworMkY5ODU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTg1O0xvOzA7TDs4MTNFOzs7O047Ozs7OworMkY5ODY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTg2O0xvOzA7TDs1QUI1Ozs7O047Ozs7OworMkY5ODc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOTg3O0xvOzA7TDsyNjdBNzs7OztOOzs7OzsKKzJGOTg4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4ODtMbzswO0w7MjY3QjU7Ozs7Tjs7Ozs7CisyRjk4OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5ODk7TG87MDtMOzIzMzkzOzs7O047Ozs7OworMkY5OEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOThBO0xvOzA7TDsyMzM5Qzs7OztOOzs7OzsKKzJGOThCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4QjtMbzswO0w7ODIwMTs7OztOOzs7OzsKKzJGOThDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4QztMbzswO0w7ODIwNDs7OztOOzs7OzsKKzJGOThEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4RDtMbzswO0w7OEY5RTs7OztOOzs7OzsKKzJGOThFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4RTtMbzswO0w7NDQ2Qjs7OztOOzs7OzsKKzJGOThGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk4RjtMbzswO0w7ODI5MTs7OztOOzs7OzsKKzJGOTkwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5MDtMbzswO0w7ODI4Qjs7OztOOzs7OzsKKzJGOTkxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5MTtMbzswO0w7ODI5RDs7OztOOzs7OzsKKzJGOTkyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5MjtMbzswO0w7NTJCMzs7OztOOzs7OzsKKzJGOTkzO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5MztMbzswO0w7ODJCMTs7OztOOzs7OzsKKzJGOTk0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5NDtMbzswO0w7ODJCMzs7OztOOzs7OzsKKzJGOTk1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5NTtMbzswO0w7ODJCRDs7OztOOzs7OzsKKzJGOTk2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5NjtMbzswO0w7ODJFNjs7OztOOzs7OzsKKzJGOTk3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjk5NztMbzswO0w7MjZCM0M7Ozs7Tjs7Ozs7CisyRjk5ODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OTg7TG87MDtMOzgyRTU7Ozs7Tjs7Ozs7CisyRjk5OTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OTk7TG87MDtMOzgzMUQ7Ozs7Tjs7Ozs7CisyRjk5QTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OUE7TG87MDtMOzgzNjM7Ozs7Tjs7Ozs7CisyRjk5QjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OUI7TG87MDtMOzgzQUQ7Ozs7Tjs7Ozs7CisyRjk5QztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OUM7TG87MDtMOzgzMjM7Ozs7Tjs7Ozs7CisyRjk5RDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OUQ7TG87MDtMOzgzQkQ7Ozs7Tjs7Ozs7CisyRjk5RTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OUU7TG87MDtMOzgzRTc7Ozs7Tjs7Ozs7CisyRjk5RjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5OUY7TG87MDtMOzg0NTc7Ozs7Tjs7Ozs7CisyRjlBMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTA7TG87MDtMOzgzNTM7Ozs7Tjs7Ozs7CisyRjlBMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTE7TG87MDtMOzgzQ0E7Ozs7Tjs7Ozs7CisyRjlBMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTI7TG87MDtMOzgzQ0M7Ozs7Tjs7Ozs7CisyRjlBMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTM7TG87MDtMOzgzREM7Ozs7Tjs7Ozs7CisyRjlBNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTQ7TG87MDtMOzI2QzM2Ozs7O047Ozs7OworMkY5QTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUE1O0xvOzA7TDsyNkQ2Qjs7OztOOzs7OzsKKzJGOUE2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBNjtMbzswO0w7MjZDRDU7Ozs7Tjs7Ozs7CisyRjlBNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTc7TG87MDtMOzQ1MkI7Ozs7Tjs7Ozs7CisyRjlBODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTg7TG87MDtMOzg0RjE7Ozs7Tjs7Ozs7CisyRjlBOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QTk7TG87MDtMOzg0RjM7Ozs7Tjs7Ozs7CisyRjlBQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QUE7TG87MDtMOzg1MTY7Ozs7Tjs7Ozs7CisyRjlBQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QUI7TG87MDtMOzI3M0NBOzs7O047Ozs7OworMkY5QUM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUFDO0xvOzA7TDs4NTY0Ozs7O047Ozs7OworMkY5QUQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUFEO0xvOzA7TDsyNkYyQzs7OztOOzs7OzsKKzJGOUFFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBRTtMbzswO0w7NDU1RDs7OztOOzs7OzsKKzJGOUFGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlBRjtMbzswO0w7NDU2MTs7OztOOzs7OzsKKzJGOUIwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlCMDtMbzswO0w7MjZGQjE7Ozs7Tjs7Ozs7CisyRjlCMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5QjE7TG87MDtMOzI3MEQyOzs7O047Ozs7OworMkY5QjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUIyO0xvOzA7TDs0NTZCOzs7O047Ozs7OworMkY5QjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUIzO0xvOzA7TDs4NjUwOzs7O047Ozs7OworMkY5QjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUI0O0xvOzA7TDs4NjVDOzs7O047Ozs7OworMkY5QjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUI1O0xvOzA7TDs4NjY3Ozs7O047Ozs7OworMkY5QjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUI2O0xvOzA7TDs4NjY5Ozs7O047Ozs7OworMkY5Qjc7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUI3O0xvOzA7TDs4NkE5Ozs7O047Ozs7OworMkY5Qjg7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUI4O0xvOzA7TDs4Njg4Ozs7O047Ozs7OworMkY5Qjk7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUI5O0xvOzA7TDs4NzBFOzs7O047Ozs7OworMkY5QkE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUJBO0xvOzA7TDs4NkUyOzs7O047Ozs7OworMkY5QkI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUJCO0xvOzA7TDs4Nzc5Ozs7O047Ozs7OworMkY5QkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUJDO0xvOzA7TDs4NzI4Ozs7O047Ozs7OworMkY5QkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUJEO0xvOzA7TDs4NzZCOzs7O047Ozs7OworMkY5QkU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUJFO0xvOzA7TDs4Nzg2Ozs7O047Ozs7OworMkY5QkY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUJGO0xvOzA7TDs0NUQ3Ozs7O047Ozs7OworMkY5QzA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUMwO0xvOzA7TDs4N0UxOzs7O047Ozs7OworMkY5QzE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUMxO0xvOzA7TDs4ODAxOzs7O047Ozs7OworMkY5QzI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUMyO0xvOzA7TDs0NUY5Ozs7O047Ozs7OworMkY5QzM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUMzO0xvOzA7TDs4ODYwOzs7O047Ozs7OworMkY5QzQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM0O0xvOzA7TDs4ODYzOzs7O047Ozs7OworMkY5QzU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUM1O0xvOzA7TDsyNzY2Nzs7OztOOzs7OzsKKzJGOUM2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDNjtMbzswO0w7ODhENzs7OztOOzs7OzsKKzJGOUM3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDNztMbzswO0w7ODhERTs7OztOOzs7OzsKKzJGOUM4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDODtMbzswO0w7NDYzNTs7OztOOzs7OzsKKzJGOUM5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDOTtMbzswO0w7ODhGQTs7OztOOzs7OzsKKzJGOUNBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDQTtMbzswO0w7MzRCQjs7OztOOzs7OzsKKzJGOUNCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlDQjtMbzswO0w7Mjc4QUU7Ozs7Tjs7Ozs7CisyRjlDQztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Q0M7TG87MDtMOzI3OTY2Ozs7O047Ozs7OworMkY5Q0Q7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUNEO0xvOzA7TDs0NkJFOzs7O047Ozs7OworMkY5Q0U7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUNFO0xvOzA7TDs0NkM3Ozs7O047Ozs7OworMkY5Q0Y7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUNGO0xvOzA7TDs4QUEwOzs7O047Ozs7OworMkY5RDA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQwO0xvOzA7TDs4QUVEOzs7O047Ozs7OworMkY5RDE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQxO0xvOzA7TDs4QjhBOzs7O047Ozs7OworMkY5RDI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQyO0xvOzA7TDs4QzU1Ozs7O047Ozs7OworMkY5RDM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUQzO0xvOzA7TDsyN0NBODs7OztOOzs7OzsKKzJGOUQ0O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlENDtMbzswO0w7OENBQjs7OztOOzs7OzsKKzJGOUQ1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlENTtMbzswO0w7OENDMTs7OztOOzs7OzsKKzJGOUQ2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlENjtMbzswO0w7OEQxQjs7OztOOzs7OzsKKzJGOUQ3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlENztMbzswO0w7OEQ3Nzs7OztOOzs7OzsKKzJGOUQ4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlEODtMbzswO0w7MjdGMkY7Ozs7Tjs7Ozs7CisyRjlEOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RDk7TG87MDtMOzIwODA0Ozs7O047Ozs7OworMkY5REE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOURBO0xvOzA7TDs4RENCOzs7O047Ozs7OworMkY5REI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOURCO0xvOzA7TDs4REJDOzs7O047Ozs7OworMkY5REM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOURDO0xvOzA7TDs4REYwOzs7O047Ozs7OworMkY5REQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUREO0xvOzA7TDsyMDhERTs7OztOOzs7OzsKKzJGOURFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlERTtMbzswO0w7OEVENDs7OztOOzs7OzsKKzJGOURGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlERjtMbzswO0w7OEYzODs7OztOOzs7OzsKKzJGOUUwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFMDtMbzswO0w7Mjg1RDI7Ozs7Tjs7Ozs7CisyRjlFMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RTE7TG87MDtMOzI4NUVEOzs7O047Ozs7OworMkY5RTI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUUyO0xvOzA7TDs5MDk0Ozs7O047Ozs7OworMkY5RTM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUUzO0xvOzA7TDs5MEYxOzs7O047Ozs7OworMkY5RTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU0O0xvOzA7TDs5MTExOzs7O047Ozs7OworMkY5RTU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUU1O0xvOzA7TDsyODcyRTs7OztOOzs7OzsKKzJGOUU2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFNjtMbzswO0w7OTExQjs7OztOOzs7OzsKKzJGOUU3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFNztMbzswO0w7OTIzODs7OztOOzs7OzsKKzJGOUU4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFODtMbzswO0w7OTJENzs7OztOOzs7OzsKKzJGOUU5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFOTtMbzswO0w7OTJEODs7OztOOzs7OzsKKzJGOUVBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFQTtMbzswO0w7OTI3Qzs7OztOOzs7OzsKKzJGOUVCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFQjtMbzswO0w7OTNGOTs7OztOOzs7OzsKKzJGOUVDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFQztMbzswO0w7OTQxNTs7OztOOzs7OzsKKzJGOUVEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlFRDtMbzswO0w7MjhCRkE7Ozs7Tjs7Ozs7CisyRjlFRTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RUU7TG87MDtMOzk1OEI7Ozs7Tjs7Ozs7CisyRjlFRjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RUY7TG87MDtMOzQ5OTU7Ozs7Tjs7Ozs7CisyRjlGMDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjA7TG87MDtMOzk1Qjc7Ozs7Tjs7Ozs7CisyRjlGMTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RjE7TG87MDtMOzI4RDc3Ozs7O047Ozs7OworMkY5RjI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUYyO0xvOzA7TDs0OUU2Ozs7O047Ozs7OworMkY5RjM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUYzO0xvOzA7TDs5NkMzOzs7O047Ozs7OworMkY5RjQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUY0O0xvOzA7TDs1REIyOzs7O047Ozs7OworMkY5RjU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUY1O0xvOzA7TDs5NzIzOzs7O047Ozs7OworMkY5RjY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUY2O0xvOzA7TDsyOTE0NTs7OztOOzs7OzsKKzJGOUY3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGNztMbzswO0w7MjkyMUE7Ozs7Tjs7Ozs7CisyRjlGODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Rjg7TG87MDtMOzRBNkU7Ozs7Tjs7Ozs7CisyRjlGOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5Rjk7TG87MDtMOzRBNzY7Ozs7Tjs7Ozs7CisyRjlGQTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RkE7TG87MDtMOzk3RTA7Ozs7Tjs7Ozs7CisyRjlGQjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkY5RkI7TG87MDtMOzI5NDBBOzs7O047Ozs7OworMkY5RkM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUZDO0xvOzA7TDs0QUIyOzs7O047Ozs7OworMkY5RkQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGOUZEO0xvOzA7TDsyOTQ5Njs7OztOOzs7OzsKKzJGOUZFO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGRTtMbzswO0w7OTgwQjs7OztOOzs7OzsKKzJGOUZGO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRjlGRjtMbzswO0w7OTgwQjs7OztOOzs7OzsKKzJGQTAwO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwMDtMbzswO0w7OTgyOTs7OztOOzs7OzsKKzJGQTAxO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkEwMTtMbzswO0w7Mjk1QjY7Ozs7Tjs7Ozs7CisyRkEwMjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDI7TG87MDtMOzk4RTI7Ozs7Tjs7Ozs7CisyRkEwMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDM7TG87MDtMOzRCMzM7Ozs7Tjs7Ozs7CisyRkEwNDtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDQ7TG87MDtMOzk5Mjk7Ozs7Tjs7Ozs7CisyRkEwNTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDU7TG87MDtMOzk5QTc7Ozs7Tjs7Ozs7CisyRkEwNjtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDY7TG87MDtMOzk5QzI7Ozs7Tjs7Ozs7CisyRkEwNztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDc7TG87MDtMOzk5RkU7Ozs7Tjs7Ozs7CisyRkEwODtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDg7TG87MDtMOzRCQ0U7Ozs7Tjs7Ozs7CisyRkEwOTtDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMDk7TG87MDtMOzI5QjMwOzs7O047Ozs7OworMkZBMEE7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTBBO0xvOzA7TDs5QjEyOzs7O047Ozs7OworMkZBMEI7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTBCO0xvOzA7TDs5QzQwOzs7O047Ozs7OworMkZBMEM7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTBDO0xvOzA7TDs5Q0ZEOzs7O047Ozs7OworMkZBMEQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTBEO0xvOzA7TDs0Q0NFOzs7O047Ozs7OworMkZBMEU7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTBFO0xvOzA7TDs0Q0VEOzs7O047Ozs7OworMkZBMEY7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTBGO0xvOzA7TDs5RDY3Ozs7O047Ozs7OworMkZBMTA7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTEwO0xvOzA7TDsyQTBDRTs7OztOOzs7OzsKKzJGQTExO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExMTtMbzswO0w7NENGODs7OztOOzs7OzsKKzJGQTEyO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExMjtMbzswO0w7MkExMDU7Ozs7Tjs7Ozs7CisyRkExMztDSksgQ09NUEFUSUJJTElUWSBJREVPR1JBUEgtMkZBMTM7TG87MDtMOzJBMjBFOzs7O047Ozs7OworMkZBMTQ7Q0pLIENPTVBBVElCSUxJVFkgSURFT0dSQVBILTJGQTE0O0xvOzA7TDsyQTI5MTs7OztOOzs7OzsKKzJGQTE1O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExNTtMbzswO0w7OUVCQjs7OztOOzs7OzsKKzJGQTE2O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExNjtMbzswO0w7NEQ1Njs7OztOOzs7OzsKKzJGQTE3O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExNztMbzswO0w7OUVGOTs7OztOOzs7OzsKKzJGQTE4O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExODtMbzswO0w7OUVGRTs7OztOOzs7OzsKKzJGQTE5O0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExOTtMbzswO0w7OUYwNTs7OztOOzs7OzsKKzJGQTFBO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExQTtMbzswO0w7OUYwRjs7OztOOzs7OzsKKzJGQTFCO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExQjtMbzswO0w7OUYxNjs7OztOOzs7OzsKKzJGQTFDO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExQztMbzswO0w7OUYzQjs7OztOOzs7OzsKKzJGQTFEO0NKSyBDT01QQVRJQklMSVRZIElERU9HUkFQSC0yRkExRDtMbzswO0w7MkE2MDA7Ozs7Tjs7Ozs7CitFMDAwMTtMQU5HVUFHRSBUQUc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyMDtUQUcgU1BBQ0U7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyMTtUQUcgRVhDTEFNQVRJT04gTUFSSztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDIyO1RBRyBRVU9UQVRJT04gTUFSSztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDIzO1RBRyBOVU1CRVIgU0lHTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDI0O1RBRyBET0xMQVIgU0lHTjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDI1O1RBRyBQRVJDRU5UIFNJR047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyNjtUQUcgQU1QRVJTQU5EO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMjc7VEFHIEFQT1NUUk9QSEU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyODtUQUcgTEVGVCBQQVJFTlRIRVNJUztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDI5O1RBRyBSSUdIVCBQQVJFTlRIRVNJUztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDJBO1RBRyBBU1RFUklTSztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDJCO1RBRyBQTFVTIFNJR047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyQztUQUcgQ09NTUE7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAyRDtUQUcgSFlQSEVOLU1JTlVTO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMkU7VEFHIEZVTEwgU1RPUDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDJGO1RBRyBTT0xJRFVTO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzA7VEFHIERJR0lUIFpFUk87Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzMTtUQUcgRElHSVQgT05FO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzI7VEFHIERJR0lUIFRXTztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDMzO1RBRyBESUdJVCBUSFJFRTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDM0O1RBRyBESUdJVCBGT1VSO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzU7VEFHIERJR0lUIEZJVkU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzNjtUQUcgRElHSVQgU0lYO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzc7VEFHIERJR0lUIFNFVkVOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzg7VEFHIERJR0lUIEVJR0hUO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwMzk7VEFHIERJR0lUIE5JTkU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzQTtUQUcgQ09MT047Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDAzQjtUQUcgU0VNSUNPTE9OO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwM0M7VEFHIExFU1MtVEhBTiBTSUdOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwM0Q7VEFHIEVRVUFMUyBTSUdOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwM0U7VEFHIEdSRUFURVItVEhBTiBTSUdOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwM0Y7VEFHIFFVRVNUSU9OIE1BUks7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0MDtUQUcgQ09NTUVSQ0lBTCBBVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQxO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBBO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDI7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEI7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0MztUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQ0O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBEO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDU7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0NjtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDQ3O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBHO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNDg7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEg7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0OTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDRBO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBKO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNEI7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIEs7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0QztUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDREO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBNO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNEU7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIE47Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA0RjtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTztDZjswO0JOOzs7OztOOzs7OzsKK0UwMDUwO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBQO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTE7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFE7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1MjtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUjtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDUzO1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBTO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTQ7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1NTtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVTtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDU2O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBWO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNTc7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFc7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1ODtUQUcgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDU5O1RBRyBMQVRJTiBDQVBJVEFMIExFVFRFUiBZO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNUE7VEFHIExBVElOIENBUElUQUwgTEVUVEVSIFo7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1QjtUQUcgTEVGVCBTUVVBUkUgQlJBQ0tFVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDVDO1RBRyBSRVZFUlNFIFNPTElEVVM7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1RDtUQUcgUklHSFQgU1FVQVJFIEJSQUNLRVQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1RTtUQUcgQ0lSQ1VNRkxFWCBBQ0NFTlQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA1RjtUQUcgTE9XIExJTkU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA2MDtUQUcgR1JBVkUgQUNDRU5UO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjE7VEFHIExBVElOIFNNQUxMIExFVFRFUiBBO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjI7VEFHIExBVElOIFNNQUxMIExFVFRFUiBCO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjM7VEFHIExBVElOIFNNQUxMIExFVFRFUiBDO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjQ7VEFHIExBVElOIFNNQUxMIExFVFRFUiBEO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjU7VEFHIExBVElOIFNNQUxMIExFVFRFUiBFO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjY7VEFHIExBVElOIFNNQUxMIExFVFRFUiBGO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjc7VEFHIExBVElOIFNNQUxMIExFVFRFUiBHO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjg7VEFHIExBVElOIFNNQUxMIExFVFRFUiBIO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNjk7VEFHIExBVElOIFNNQUxMIExFVFRFUiBJO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNkE7VEFHIExBVElOIFNNQUxMIExFVFRFUiBKO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNkI7VEFHIExBVElOIFNNQUxMIExFVFRFUiBLO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNkM7VEFHIExBVElOIFNNQUxMIExFVFRFUiBMO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNkQ7VEFHIExBVElOIFNNQUxMIExFVFRFUiBNO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNkU7VEFHIExBVElOIFNNQUxMIExFVFRFUiBOO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNkY7VEFHIExBVElOIFNNQUxMIExFVFRFUiBPO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzA7VEFHIExBVElOIFNNQUxMIExFVFRFUiBQO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzE7VEFHIExBVElOIFNNQUxMIExFVFRFUiBRO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzI7VEFHIExBVElOIFNNQUxMIExFVFRFUiBSO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzM7VEFHIExBVElOIFNNQUxMIExFVFRFUiBTO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzQ7VEFHIExBVElOIFNNQUxMIExFVFRFUiBUO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzU7VEFHIExBVElOIFNNQUxMIExFVFRFUiBVO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzY7VEFHIExBVElOIFNNQUxMIExFVFRFUiBWO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzc7VEFHIExBVElOIFNNQUxMIExFVFRFUiBXO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzg7VEFHIExBVElOIFNNQUxMIExFVFRFUiBYO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwNzk7VEFHIExBVElOIFNNQUxMIExFVFRFUiBZO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwN0E7VEFHIExBVElOIFNNQUxMIExFVFRFUiBaO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwN0I7VEFHIExFRlQgQ1VSTFkgQlJBQ0tFVDtDZjswO0JOOzs7OztOOzs7OzsKK0UwMDdDO1RBRyBWRVJUSUNBTCBMSU5FO0NmOzA7Qk47Ozs7O047Ozs7OworRTAwN0Q7VEFHIFJJR0hUIENVUkxZIEJSQUNLRVQ7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3RTtUQUcgVElMREU7Q2Y7MDtCTjs7Ozs7Tjs7Ozs7CitFMDA3RjtDQU5DRUwgVEFHO0NmOzA7Qk47Ozs7O047Ozs7OworRTAxMDA7VkFSSUFUSU9OIFNFTEVDVE9SLTE3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTAxO1ZBUklBVElPTiBTRUxFQ1RPUi0xODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwMjtWQVJJQVRJT04gU0VMRUNUT1ItMTk7TW47MDtOU007Ozs7O047Ozs7OworRTAxMDM7VkFSSUFUSU9OIFNFTEVDVE9SLTIwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTA0O1ZBUklBVElPTiBTRUxFQ1RPUi0yMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwNTtWQVJJQVRJT04gU0VMRUNUT1ItMjI7TW47MDtOU007Ozs7O047Ozs7OworRTAxMDY7VkFSSUFUSU9OIFNFTEVDVE9SLTIzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTA3O1ZBUklBVElPTiBTRUxFQ1RPUi0yNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwODtWQVJJQVRJT04gU0VMRUNUT1ItMjU7TW47MDtOU007Ozs7O047Ozs7OworRTAxMDk7VkFSSUFUSU9OIFNFTEVDVE9SLTI2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTBBO1ZBUklBVElPTiBTRUxFQ1RPUi0yNztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwQjtWQVJJQVRJT04gU0VMRUNUT1ItMjg7TW47MDtOU007Ozs7O047Ozs7OworRTAxMEM7VkFSSUFUSU9OIFNFTEVDVE9SLTI5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTBEO1ZBUklBVElPTiBTRUxFQ1RPUi0zMDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEwRTtWQVJJQVRJT04gU0VMRUNUT1ItMzE7TW47MDtOU007Ozs7O047Ozs7OworRTAxMEY7VkFSSUFUSU9OIFNFTEVDVE9SLTMyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTEwO1ZBUklBVElPTiBTRUxFQ1RPUi0zMztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExMTtWQVJJQVRJT04gU0VMRUNUT1ItMzQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxMTI7VkFSSUFUSU9OIFNFTEVDVE9SLTM1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTEzO1ZBUklBVElPTiBTRUxFQ1RPUi0zNjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExNDtWQVJJQVRJT04gU0VMRUNUT1ItMzc7TW47MDtOU007Ozs7O047Ozs7OworRTAxMTU7VkFSSUFUSU9OIFNFTEVDVE9SLTM4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTE2O1ZBUklBVElPTiBTRUxFQ1RPUi0zOTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExNztWQVJJQVRJT04gU0VMRUNUT1ItNDA7TW47MDtOU007Ozs7O047Ozs7OworRTAxMTg7VkFSSUFUSU9OIFNFTEVDVE9SLTQxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTE5O1ZBUklBVElPTiBTRUxFQ1RPUi00MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExQTtWQVJJQVRJT04gU0VMRUNUT1ItNDM7TW47MDtOU007Ozs7O047Ozs7OworRTAxMUI7VkFSSUFUSU9OIFNFTEVDVE9SLTQ0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTFDO1ZBUklBVElPTiBTRUxFQ1RPUi00NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDExRDtWQVJJQVRJT04gU0VMRUNUT1ItNDY7TW47MDtOU007Ozs7O047Ozs7OworRTAxMUU7VkFSSUFUSU9OIFNFTEVDVE9SLTQ3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTFGO1ZBUklBVElPTiBTRUxFQ1RPUi00ODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyMDtWQVJJQVRJT04gU0VMRUNUT1ItNDk7TW47MDtOU007Ozs7O047Ozs7OworRTAxMjE7VkFSSUFUSU9OIFNFTEVDVE9SLTUwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTIyO1ZBUklBVElPTiBTRUxFQ1RPUi01MTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyMztWQVJJQVRJT04gU0VMRUNUT1ItNTI7TW47MDtOU007Ozs7O047Ozs7OworRTAxMjQ7VkFSSUFUSU9OIFNFTEVDVE9SLTUzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTI1O1ZBUklBVElPTiBTRUxFQ1RPUi01NDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyNjtWQVJJQVRJT04gU0VMRUNUT1ItNTU7TW47MDtOU007Ozs7O047Ozs7OworRTAxMjc7VkFSSUFUSU9OIFNFTEVDVE9SLTU2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTI4O1ZBUklBVElPTiBTRUxFQ1RPUi01NztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyOTtWQVJJQVRJT04gU0VMRUNUT1ItNTg7TW47MDtOU007Ozs7O047Ozs7OworRTAxMkE7VkFSSUFUSU9OIFNFTEVDVE9SLTU5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTJCO1ZBUklBVElPTiBTRUxFQ1RPUi02MDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyQztWQVJJQVRJT04gU0VMRUNUT1ItNjE7TW47MDtOU007Ozs7O047Ozs7OworRTAxMkQ7VkFSSUFUSU9OIFNFTEVDVE9SLTYyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTJFO1ZBUklBVElPTiBTRUxFQ1RPUi02MztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEyRjtWQVJJQVRJT04gU0VMRUNUT1ItNjQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxMzA7VkFSSUFUSU9OIFNFTEVDVE9SLTY1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTMxO1ZBUklBVElPTiBTRUxFQ1RPUi02NjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzMjtWQVJJQVRJT04gU0VMRUNUT1ItNjc7TW47MDtOU007Ozs7O047Ozs7OworRTAxMzM7VkFSSUFUSU9OIFNFTEVDVE9SLTY4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTM0O1ZBUklBVElPTiBTRUxFQ1RPUi02OTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzNTtWQVJJQVRJT04gU0VMRUNUT1ItNzA7TW47MDtOU007Ozs7O047Ozs7OworRTAxMzY7VkFSSUFUSU9OIFNFTEVDVE9SLTcxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTM3O1ZBUklBVElPTiBTRUxFQ1RPUi03MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzODtWQVJJQVRJT04gU0VMRUNUT1ItNzM7TW47MDtOU007Ozs7O047Ozs7OworRTAxMzk7VkFSSUFUSU9OIFNFTEVDVE9SLTc0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTNBO1ZBUklBVElPTiBTRUxFQ1RPUi03NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzQjtWQVJJQVRJT04gU0VMRUNUT1ItNzY7TW47MDtOU007Ozs7O047Ozs7OworRTAxM0M7VkFSSUFUSU9OIFNFTEVDVE9SLTc3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTNEO1ZBUklBVElPTiBTRUxFQ1RPUi03ODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDEzRTtWQVJJQVRJT04gU0VMRUNUT1ItNzk7TW47MDtOU007Ozs7O047Ozs7OworRTAxM0Y7VkFSSUFUSU9OIFNFTEVDVE9SLTgwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTQwO1ZBUklBVElPTiBTRUxFQ1RPUi04MTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0MTtWQVJJQVRJT04gU0VMRUNUT1ItODI7TW47MDtOU007Ozs7O047Ozs7OworRTAxNDI7VkFSSUFUSU9OIFNFTEVDVE9SLTgzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTQzO1ZBUklBVElPTiBTRUxFQ1RPUi04NDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0NDtWQVJJQVRJT04gU0VMRUNUT1ItODU7TW47MDtOU007Ozs7O047Ozs7OworRTAxNDU7VkFSSUFUSU9OIFNFTEVDVE9SLTg2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTQ2O1ZBUklBVElPTiBTRUxFQ1RPUi04NztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0NztWQVJJQVRJT04gU0VMRUNUT1ItODg7TW47MDtOU007Ozs7O047Ozs7OworRTAxNDg7VkFSSUFUSU9OIFNFTEVDVE9SLTg5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTQ5O1ZBUklBVElPTiBTRUxFQ1RPUi05MDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0QTtWQVJJQVRJT04gU0VMRUNUT1ItOTE7TW47MDtOU007Ozs7O047Ozs7OworRTAxNEI7VkFSSUFUSU9OIFNFTEVDVE9SLTkyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTRDO1ZBUklBVElPTiBTRUxFQ1RPUi05MztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE0RDtWQVJJQVRJT04gU0VMRUNUT1ItOTQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxNEU7VkFSSUFUSU9OIFNFTEVDVE9SLTk1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTRGO1ZBUklBVElPTiBTRUxFQ1RPUi05NjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1MDtWQVJJQVRJT04gU0VMRUNUT1ItOTc7TW47MDtOU007Ozs7O047Ozs7OworRTAxNTE7VkFSSUFUSU9OIFNFTEVDVE9SLTk4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTUyO1ZBUklBVElPTiBTRUxFQ1RPUi05OTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1MztWQVJJQVRJT04gU0VMRUNUT1ItMTAwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTU0O1ZBUklBVElPTiBTRUxFQ1RPUi0xMDE7TW47MDtOU007Ozs7O047Ozs7OworRTAxNTU7VkFSSUFUSU9OIFNFTEVDVE9SLTEwMjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1NjtWQVJJQVRJT04gU0VMRUNUT1ItMTAzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTU3O1ZBUklBVElPTiBTRUxFQ1RPUi0xMDQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxNTg7VkFSSUFUSU9OIFNFTEVDVE9SLTEwNTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1OTtWQVJJQVRJT04gU0VMRUNUT1ItMTA2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTVBO1ZBUklBVElPTiBTRUxFQ1RPUi0xMDc7TW47MDtOU007Ozs7O047Ozs7OworRTAxNUI7VkFSSUFUSU9OIFNFTEVDVE9SLTEwODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1QztWQVJJQVRJT04gU0VMRUNUT1ItMTA5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTVEO1ZBUklBVElPTiBTRUxFQ1RPUi0xMTA7TW47MDtOU007Ozs7O047Ozs7OworRTAxNUU7VkFSSUFUSU9OIFNFTEVDVE9SLTExMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE1RjtWQVJJQVRJT04gU0VMRUNUT1ItMTEyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTYwO1ZBUklBVElPTiBTRUxFQ1RPUi0xMTM7TW47MDtOU007Ozs7O047Ozs7OworRTAxNjE7VkFSSUFUSU9OIFNFTEVDVE9SLTExNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2MjtWQVJJQVRJT04gU0VMRUNUT1ItMTE1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTYzO1ZBUklBVElPTiBTRUxFQ1RPUi0xMTY7TW47MDtOU007Ozs7O047Ozs7OworRTAxNjQ7VkFSSUFUSU9OIFNFTEVDVE9SLTExNztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2NTtWQVJJQVRJT04gU0VMRUNUT1ItMTE4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTY2O1ZBUklBVElPTiBTRUxFQ1RPUi0xMTk7TW47MDtOU007Ozs7O047Ozs7OworRTAxNjc7VkFSSUFUSU9OIFNFTEVDVE9SLTEyMDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2ODtWQVJJQVRJT04gU0VMRUNUT1ItMTIxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTY5O1ZBUklBVElPTiBTRUxFQ1RPUi0xMjI7TW47MDtOU007Ozs7O047Ozs7OworRTAxNkE7VkFSSUFUSU9OIFNFTEVDVE9SLTEyMztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2QjtWQVJJQVRJT04gU0VMRUNUT1ItMTI0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTZDO1ZBUklBVElPTiBTRUxFQ1RPUi0xMjU7TW47MDtOU007Ozs7O047Ozs7OworRTAxNkQ7VkFSSUFUSU9OIFNFTEVDVE9SLTEyNjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE2RTtWQVJJQVRJT04gU0VMRUNUT1ItMTI3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTZGO1ZBUklBVElPTiBTRUxFQ1RPUi0xMjg7TW47MDtOU007Ozs7O047Ozs7OworRTAxNzA7VkFSSUFUSU9OIFNFTEVDVE9SLTEyOTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3MTtWQVJJQVRJT04gU0VMRUNUT1ItMTMwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTcyO1ZBUklBVElPTiBTRUxFQ1RPUi0xMzE7TW47MDtOU007Ozs7O047Ozs7OworRTAxNzM7VkFSSUFUSU9OIFNFTEVDVE9SLTEzMjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3NDtWQVJJQVRJT04gU0VMRUNUT1ItMTMzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTc1O1ZBUklBVElPTiBTRUxFQ1RPUi0xMzQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxNzY7VkFSSUFUSU9OIFNFTEVDVE9SLTEzNTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3NztWQVJJQVRJT04gU0VMRUNUT1ItMTM2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTc4O1ZBUklBVElPTiBTRUxFQ1RPUi0xMzc7TW47MDtOU007Ozs7O047Ozs7OworRTAxNzk7VkFSSUFUSU9OIFNFTEVDVE9SLTEzODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3QTtWQVJJQVRJT04gU0VMRUNUT1ItMTM5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTdCO1ZBUklBVElPTiBTRUxFQ1RPUi0xNDA7TW47MDtOU007Ozs7O047Ozs7OworRTAxN0M7VkFSSUFUSU9OIFNFTEVDVE9SLTE0MTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE3RDtWQVJJQVRJT04gU0VMRUNUT1ItMTQyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTdFO1ZBUklBVElPTiBTRUxFQ1RPUi0xNDM7TW47MDtOU007Ozs7O047Ozs7OworRTAxN0Y7VkFSSUFUSU9OIFNFTEVDVE9SLTE0NDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4MDtWQVJJQVRJT04gU0VMRUNUT1ItMTQ1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTgxO1ZBUklBVElPTiBTRUxFQ1RPUi0xNDY7TW47MDtOU007Ozs7O047Ozs7OworRTAxODI7VkFSSUFUSU9OIFNFTEVDVE9SLTE0NztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4MztWQVJJQVRJT04gU0VMRUNUT1ItMTQ4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTg0O1ZBUklBVElPTiBTRUxFQ1RPUi0xNDk7TW47MDtOU007Ozs7O047Ozs7OworRTAxODU7VkFSSUFUSU9OIFNFTEVDVE9SLTE1MDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4NjtWQVJJQVRJT04gU0VMRUNUT1ItMTUxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTg3O1ZBUklBVElPTiBTRUxFQ1RPUi0xNTI7TW47MDtOU007Ozs7O047Ozs7OworRTAxODg7VkFSSUFUSU9OIFNFTEVDVE9SLTE1MztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4OTtWQVJJQVRJT04gU0VMRUNUT1ItMTU0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMThBO1ZBUklBVElPTiBTRUxFQ1RPUi0xNTU7TW47MDtOU007Ozs7O047Ozs7OworRTAxOEI7VkFSSUFUSU9OIFNFTEVDVE9SLTE1NjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4QztWQVJJQVRJT04gU0VMRUNUT1ItMTU3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMThEO1ZBUklBVElPTiBTRUxFQ1RPUi0xNTg7TW47MDtOU007Ozs7O047Ozs7OworRTAxOEU7VkFSSUFUSU9OIFNFTEVDVE9SLTE1OTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE4RjtWQVJJQVRJT04gU0VMRUNUT1ItMTYwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTkwO1ZBUklBVElPTiBTRUxFQ1RPUi0xNjE7TW47MDtOU007Ozs7O047Ozs7OworRTAxOTE7VkFSSUFUSU9OIFNFTEVDVE9SLTE2MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5MjtWQVJJQVRJT04gU0VMRUNUT1ItMTYzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTkzO1ZBUklBVElPTiBTRUxFQ1RPUi0xNjQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxOTQ7VkFSSUFUSU9OIFNFTEVDVE9SLTE2NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5NTtWQVJJQVRJT04gU0VMRUNUT1ItMTY2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTk2O1ZBUklBVElPTiBTRUxFQ1RPUi0xNjc7TW47MDtOU007Ozs7O047Ozs7OworRTAxOTc7VkFSSUFUSU9OIFNFTEVDVE9SLTE2ODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5ODtWQVJJQVRJT04gU0VMRUNUT1ItMTY5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTk5O1ZBUklBVElPTiBTRUxFQ1RPUi0xNzA7TW47MDtOU007Ozs7O047Ozs7OworRTAxOUE7VkFSSUFUSU9OIFNFTEVDVE9SLTE3MTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5QjtWQVJJQVRJT04gU0VMRUNUT1ItMTcyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTlDO1ZBUklBVElPTiBTRUxFQ1RPUi0xNzM7TW47MDtOU007Ozs7O047Ozs7OworRTAxOUQ7VkFSSUFUSU9OIFNFTEVDVE9SLTE3NDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDE5RTtWQVJJQVRJT04gU0VMRUNUT1ItMTc1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMTlGO1ZBUklBVElPTiBTRUxFQ1RPUi0xNzY7TW47MDtOU007Ozs7O047Ozs7OworRTAxQTA7VkFSSUFUSU9OIFNFTEVDVE9SLTE3NztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBMTtWQVJJQVRJT04gU0VMRUNUT1ItMTc4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUEyO1ZBUklBVElPTiBTRUxFQ1RPUi0xNzk7TW47MDtOU007Ozs7O047Ozs7OworRTAxQTM7VkFSSUFUSU9OIFNFTEVDVE9SLTE4MDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBNDtWQVJJQVRJT04gU0VMRUNUT1ItMTgxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUE1O1ZBUklBVElPTiBTRUxFQ1RPUi0xODI7TW47MDtOU007Ozs7O047Ozs7OworRTAxQTY7VkFSSUFUSU9OIFNFTEVDVE9SLTE4MztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBNztWQVJJQVRJT04gU0VMRUNUT1ItMTg0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUE4O1ZBUklBVElPTiBTRUxFQ1RPUi0xODU7TW47MDtOU007Ozs7O047Ozs7OworRTAxQTk7VkFSSUFUSU9OIFNFTEVDVE9SLTE4NjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBQTtWQVJJQVRJT04gU0VMRUNUT1ItMTg3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUFCO1ZBUklBVElPTiBTRUxFQ1RPUi0xODg7TW47MDtOU007Ozs7O047Ozs7OworRTAxQUM7VkFSSUFUSU9OIFNFTEVDVE9SLTE4OTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFBRDtWQVJJQVRJT04gU0VMRUNUT1ItMTkwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUFFO1ZBUklBVElPTiBTRUxFQ1RPUi0xOTE7TW47MDtOU007Ozs7O047Ozs7OworRTAxQUY7VkFSSUFUSU9OIFNFTEVDVE9SLTE5MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCMDtWQVJJQVRJT04gU0VMRUNUT1ItMTkzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUIxO1ZBUklBVElPTiBTRUxFQ1RPUi0xOTQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxQjI7VkFSSUFUSU9OIFNFTEVDVE9SLTE5NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCMztWQVJJQVRJT04gU0VMRUNUT1ItMTk2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUI0O1ZBUklBVElPTiBTRUxFQ1RPUi0xOTc7TW47MDtOU007Ozs7O047Ozs7OworRTAxQjU7VkFSSUFUSU9OIFNFTEVDVE9SLTE5ODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCNjtWQVJJQVRJT04gU0VMRUNUT1ItMTk5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUI3O1ZBUklBVElPTiBTRUxFQ1RPUi0yMDA7TW47MDtOU007Ozs7O047Ozs7OworRTAxQjg7VkFSSUFUSU9OIFNFTEVDVE9SLTIwMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCOTtWQVJJQVRJT04gU0VMRUNUT1ItMjAyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUJBO1ZBUklBVElPTiBTRUxFQ1RPUi0yMDM7TW47MDtOU007Ozs7O047Ozs7OworRTAxQkI7VkFSSUFUSU9OIFNFTEVDVE9SLTIwNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCQztWQVJJQVRJT04gU0VMRUNUT1ItMjA1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUJEO1ZBUklBVElPTiBTRUxFQ1RPUi0yMDY7TW47MDtOU007Ozs7O047Ozs7OworRTAxQkU7VkFSSUFUSU9OIFNFTEVDVE9SLTIwNztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFCRjtWQVJJQVRJT04gU0VMRUNUT1ItMjA4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUMwO1ZBUklBVElPTiBTRUxFQ1RPUi0yMDk7TW47MDtOU007Ozs7O047Ozs7OworRTAxQzE7VkFSSUFUSU9OIFNFTEVDVE9SLTIxMDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDMjtWQVJJQVRJT04gU0VMRUNUT1ItMjExO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUMzO1ZBUklBVElPTiBTRUxFQ1RPUi0yMTI7TW47MDtOU007Ozs7O047Ozs7OworRTAxQzQ7VkFSSUFUSU9OIFNFTEVDVE9SLTIxMztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDNTtWQVJJQVRJT04gU0VMRUNUT1ItMjE0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUM2O1ZBUklBVElPTiBTRUxFQ1RPUi0yMTU7TW47MDtOU007Ozs7O047Ozs7OworRTAxQzc7VkFSSUFUSU9OIFNFTEVDVE9SLTIxNjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDODtWQVJJQVRJT04gU0VMRUNUT1ItMjE3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUM5O1ZBUklBVElPTiBTRUxFQ1RPUi0yMTg7TW47MDtOU007Ozs7O047Ozs7OworRTAxQ0E7VkFSSUFUSU9OIFNFTEVDVE9SLTIxOTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDQjtWQVJJQVRJT04gU0VMRUNUT1ItMjIwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUNDO1ZBUklBVElPTiBTRUxFQ1RPUi0yMjE7TW47MDtOU007Ozs7O047Ozs7OworRTAxQ0Q7VkFSSUFUSU9OIFNFTEVDVE9SLTIyMjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFDRTtWQVJJQVRJT04gU0VMRUNUT1ItMjIzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUNGO1ZBUklBVElPTiBTRUxFQ1RPUi0yMjQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxRDA7VkFSSUFUSU9OIFNFTEVDVE9SLTIyNTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFEMTtWQVJJQVRJT04gU0VMRUNUT1ItMjI2O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUQyO1ZBUklBVElPTiBTRUxFQ1RPUi0yMjc7TW47MDtOU007Ozs7O047Ozs7OworRTAxRDM7VkFSSUFUSU9OIFNFTEVDVE9SLTIyODtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFENDtWQVJJQVRJT04gU0VMRUNUT1ItMjI5O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUQ1O1ZBUklBVElPTiBTRUxFQ1RPUi0yMzA7TW47MDtOU007Ozs7O047Ozs7OworRTAxRDY7VkFSSUFUSU9OIFNFTEVDVE9SLTIzMTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFENztWQVJJQVRJT04gU0VMRUNUT1ItMjMyO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUQ4O1ZBUklBVElPTiBTRUxFQ1RPUi0yMzM7TW47MDtOU007Ozs7O047Ozs7OworRTAxRDk7VkFSSUFUSU9OIFNFTEVDVE9SLTIzNDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFEQTtWQVJJQVRJT04gU0VMRUNUT1ItMjM1O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMURCO1ZBUklBVElPTiBTRUxFQ1RPUi0yMzY7TW47MDtOU007Ozs7O047Ozs7OworRTAxREM7VkFSSUFUSU9OIFNFTEVDVE9SLTIzNztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFERDtWQVJJQVRJT04gU0VMRUNUT1ItMjM4O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMURFO1ZBUklBVElPTiBTRUxFQ1RPUi0yMzk7TW47MDtOU007Ozs7O047Ozs7OworRTAxREY7VkFSSUFUSU9OIFNFTEVDVE9SLTI0MDtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFMDtWQVJJQVRJT04gU0VMRUNUT1ItMjQxO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUUxO1ZBUklBVElPTiBTRUxFQ1RPUi0yNDI7TW47MDtOU007Ozs7O047Ozs7OworRTAxRTI7VkFSSUFUSU9OIFNFTEVDVE9SLTI0MztNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFMztWQVJJQVRJT04gU0VMRUNUT1ItMjQ0O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUU0O1ZBUklBVElPTiBTRUxFQ1RPUi0yNDU7TW47MDtOU007Ozs7O047Ozs7OworRTAxRTU7VkFSSUFUSU9OIFNFTEVDVE9SLTI0NjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFNjtWQVJJQVRJT04gU0VMRUNUT1ItMjQ3O01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUU3O1ZBUklBVElPTiBTRUxFQ1RPUi0yNDg7TW47MDtOU007Ozs7O047Ozs7OworRTAxRTg7VkFSSUFUSU9OIFNFTEVDVE9SLTI0OTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFOTtWQVJJQVRJT04gU0VMRUNUT1ItMjUwO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUVBO1ZBUklBVElPTiBTRUxFQ1RPUi0yNTE7TW47MDtOU007Ozs7O047Ozs7OworRTAxRUI7VkFSSUFUSU9OIFNFTEVDVE9SLTI1MjtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFQztWQVJJQVRJT04gU0VMRUNUT1ItMjUzO01uOzA7TlNNOzs7OztOOzs7OzsKK0UwMUVEO1ZBUklBVElPTiBTRUxFQ1RPUi0yNTQ7TW47MDtOU007Ozs7O047Ozs7OworRTAxRUU7VkFSSUFUSU9OIFNFTEVDVE9SLTI1NTtNbjswO05TTTs7Ozs7Tjs7Ozs7CitFMDFFRjtWQVJJQVRJT04gU0VMRUNUT1ItMjU2O01uOzA7TlNNOzs7OztOOzs7OzsKK0YwMDAwOzxQbGFuZSAxNSBQcml2YXRlIFVzZSwgRmlyc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CitGRkZGRDs8UGxhbmUgMTUgUHJpdmF0ZSBVc2UsIExhc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CisxMDAwMDA7PFBsYW5lIDE2IFByaXZhdGUgVXNlLCBGaXJzdD47Q287MDtMOzs7OztOOzs7OzsKKzEwRkZGRDs8UGxhbmUgMTYgUHJpdmF0ZSBVc2UsIExhc3Q+O0NvOzA7TDs7Ozs7Tjs7Ozs7CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS91Y2R0ZXJtcy50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdW5pY29kZS91Y2R0ZXJtcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2YxZGRlYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGF0YS91bmljb2RlL3VjZHRlcm1zLnR4dApAQCAtMCwwICsxLDQ1IEBACitVTklDT0RFLCBJTkMuIExJQ0VOU0UgQUdSRUVNRU5UIC0gREFUQSBGSUxFUyBBTkQgU09GVFdBUkUKKworVW5pY29kZSBEYXRhIEZpbGVzIGluY2x1ZGUgYWxsIGRhdGEgZmlsZXMgdW5kZXIgdGhlIGRpcmVjdG9yaWVzCitodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy8gYW5kIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy8uCitVbmljb2RlIFNvZnR3YXJlIGluY2x1ZGVzIGFueSBzb3VyY2UgY29kZSB1bmRlciB0aGUgZGlyZWN0b3JpZXMKK2h0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljLyBhbmQgaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzLy4KKworTk9USUNFIFRPIFVTRVI6IENhcmVmdWxseSByZWFkIHRoZSBmb2xsb3dpbmcgbGVnYWwgYWdyZWVtZW50LiBCWSBET1dOTE9BRElORywKK0lOU1RBTExJTkcsIENPUFlJTkcgT1IgT1RIRVJXSVNFIFVTSU5HIFVOSUNPREUgSU5DLidTIERBVEEgRklMRVMgKCJEQVRBIEZJTEVTIiksCitBTkQvT1IgU09GVFdBUkUgKCJTT0ZUV0FSRSIpLCBZT1UgVU5FUVVJVk9DQUxMWSBBQ0NFUFQsIEFORCBBR1JFRSBUTyBCRSBCT1VORAorQlksIEFMTCBPRiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQuIElGIFlPVSBETyBOT1QgQUdSRUUsCitETyBOT1QgRE9XTkxPQUQsIElOU1RBTEwsIENPUFksIERJU1RSSUJVVEUgT1IgVVNFIFRIRSBEQVRBIEZJTEVTIE9SIFNPRlRXQVJFLgorCitDT1BZUklHSFQgQU5EIFBFUk1JU1NJT04gTk9USUNFCisKK0NvcHlyaWdodCAoYykgMTk5MS0yMDA0IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlCitUZXJtcyBvZiBVc2UgaW4gaHR0cDovL3d3dy51bmljb2RlLm9yZy9jb3B5cmlnaHQuaHRtbC4KKworUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZgordGhlIFVuaWNvZGUgZGF0YSBmaWxlcyBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uICh0aGUgIkRhdGEgRmlsZXMiKSBvcgorVW5pY29kZSBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uICh0aGUgIlNvZnR3YXJlIikgdG8gZGVhbCBpbiB0aGUKK0RhdGEgRmlsZXMgb3IgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKK3JpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIGFuZC9vciBzZWxsIGNvcGllcyBvZgordGhlIERhdGEgRmlsZXMgb3IgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBEYXRhIEZpbGVzIG9yCitTb2Z0d2FyZSBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBwcm92aWRlZCB0aGF0IChhKSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZShzKQorYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgb2YgdGhlIERhdGEgRmlsZXMgb3IgU29mdHdhcmUsCisoYikgYm90aCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZShzKSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4KK2Fzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiwgYW5kIChjKSB0aGVyZSBpcyBjbGVhciBub3RpY2UgaW4gZWFjaCBtb2RpZmllZCBEYXRhCitGaWxlIG9yIGluIHRoZSBTb2Z0d2FyZSBhcyB3ZWxsIGFzIGluIHRoZSBkb2N1bWVudGF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgRGF0YQorRmlsZShzKSBvciBTb2Z0d2FyZSB0aGF0IHRoZSBkYXRhIG9yIHNvZnR3YXJlIGhhcyBiZWVuIG1vZGlmaWVkLgorCitUSEUgREFUQSBGSUxFUyBBTkQgU09GVFdBUkUgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCitFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKK01FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVCBPRiBUSElSRAorUEFSVFkgUklHSFRTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBIT0xERVJTIElOQ0xVREVEIElOIFRISVMKK05PVElDRSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgT1IgQU5ZIFNQRUNJQUwgSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTAorREFNQUdFUywgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLAorV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhFIERBVEEgRklMRVMgT1IKK1NPRlRXQVJFLgorCitFeGNlcHQgYXMgY29udGFpbmVkIGluIHRoaXMgbm90aWNlLCB0aGUgbmFtZSBvZiBhIGNvcHlyaWdodCBob2xkZXIgc2hhbGwgbm90IGJlCit1c2VkIGluIGFkdmVydGlzaW5nIG9yIG90aGVyd2lzZSB0byBwcm9tb3RlIHRoZSBzYWxlLCB1c2Ugb3Igb3RoZXIgZGVhbGluZ3MgaW4KK3RoZXNlIERhdGEgRmlsZXMgb3IgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1dGhvcml6YXRpb24gb2YgdGhlCitjb3B5cmlnaHQgaG9sZGVyLgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyQXBwLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJBcHAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNzUyYzBhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyQXBwLmphdmEKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5jYWxlbmRhcjsKKworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC4qOworCisvKioKKyAqIENhbGVuZGFyQXBwIGRlbW9uc3RyYXRlcyBob3cgQ2FsZW5kYXIgd29ya3MuCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxlbmRhckFwcCBleHRlbmRzIERlbW9BcHBsZXQKK3sKKyAgICAvKioKKyAgICAgKiBUaGUgbWFpbiBmdW5jdGlvbiB3aGljaCBkZWZpbmVzIHRoZSBiZWhhdmlvciBvZiB0aGUgQ2FsZW5kYXJEZW1vCisgICAgICogYXBwbGV0IHdoZW4gYW4gYXBwbGV0IGlzIHN0YXJ0ZWQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgeworCisgICAgICAgIG5ldyBDYWxlbmRhckFwcCgpLnNob3dEZW1vKCk7CisgICAgfQorCisgICAgLyogVGhpcyBjcmVhdGVzIGEgQ2FsZW5kYXJGcmFtZSBmb3IgdGhlIGRlbW8gYXBwbGV0LiAqLworICAgIHB1YmxpYyBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxlbmRhckZyYW1lKGFwcGxldCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyQ2FsYy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyQ2FsYy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY3N2ViNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJDYWxjLmphdmEKQEAgLTAsMCArMSw1ODYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8uY2FsZW5kYXI7CisKK2ltcG9ydCBqYXZhLmF3dC5CdXR0b247CitpbXBvcnQgamF2YS5hd3QuQ2hlY2tib3g7CitpbXBvcnQgamF2YS5hd3QuQ2hlY2tib3hHcm91cDsKK2ltcG9ydCBqYXZhLmF3dC5DaG9pY2U7CitpbXBvcnQgamF2YS5hd3QuQ29tcG9uZW50OworaW1wb3J0IGphdmEuYXd0LkNvbnRhaW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5GbG93TGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkZvbnQ7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuR3JpZExheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5MYWJlbDsKK2ltcG9ydCBqYXZhLmF3dC5QYW5lbDsKK2ltcG9ydCBqYXZhLmF3dC5UZXh0RmllbGQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgamF2YXguc3dpbmcuSlRleHRGaWVsZDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuRGVtb0FwcGxldDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLkRlbW9VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5CdWRkaGlzdENhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSXNsYW1pY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSmFwYW5lc2VDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworCisvKioKKyAqIENhbGVuZGFyQ2FsYyBkZW1vbnN0cmF0ZXMgaG93IERhdGUvVGltZSBmb3JtYXR0ZXIgd29ya3MuCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxlbmRhckNhbGMgZXh0ZW5kcyBEZW1vQXBwbGV0Cit7CisgICAgLyoqCisgICAgICogVGhlIG1haW4gZnVuY3Rpb24gd2hpY2ggZGVmaW5lcyB0aGUgYmVoYXZpb3Igb2YgdGhlIE11bHRpQ2FsZW5kYXJEZW1vCisgICAgICogYXBwbGV0IHdoZW4gYW4gYXBwbGV0IGlzIHN0YXJ0ZWQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgeworICAgICAgICBuZXcgQ2FsZW5kYXJDYWxjKCkuc2hvd0RlbW8oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGNyZWF0ZXMgYSBDYWxlbmRhckNhbGNGcmFtZSBmb3IgdGhlIGRlbW8gYXBwbGV0LgorICAgICAqLworICAgIHB1YmxpYyBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxlbmRhckNhbGNGcmFtZShhcHBsZXQpOworICAgIH0KK30KKworLyoqCisgKiBBIEZyYW1lIGlzIGEgdG9wLWxldmVsIHdpbmRvdyB3aXRoIGEgdGl0bGUuIFRoZSBkZWZhdWx0IGxheW91dCBmb3IgYSBmcmFtZQorICogaXMgQm9yZGVyTGF5b3V0LiAgVGhlIENhbGVuZGFyQ2FsY0ZyYW1lIGNsYXNzIGRlZmluZXMgdGhlIHdpbmRvdyBsYXlvdXQgb2YKKyAqIE11bHRpQ2FsZW5kYXJEZW1vLgorICovCitjbGFzcyBDYWxlbmRhckNhbGNGcmFtZSBleHRlbmRzIEZyYW1lIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIKK3sKKyAgICBzdGF0aWMgZmluYWwgTG9jYWxlW10gbG9jYWxlcyA9IERlbW9VdGlsaXR5LmdldEc3TG9jYWxlcygpOworCisgICAgcHJpdmF0ZSBEZW1vQXBwbGV0ICAgICAgICAgICAgICBhcHBsZXQ7CisgICAgcHJpdmF0ZSBsb25nICAgICAgICAgICAgICAgICAgICB0aW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBSb2xsQWRkRmllbGQga1JvbGxBZGRGaWVsZHNbXSA9IHsKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5ZRUFSLCAgICAgICAgICAgICAgICAgIlllYXIiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuTU9OVEgsICAgICAgICAgICAgICAgICJNb250aCIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5XRUVLX09GX01PTlRILCAgICAgICAgIldlZWsgb2YgTW9udGgiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCAgICAgICAgICJXZWVrIG9mIFllYXIiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAgICAgICAgICJEYXkgb2YgTW9udGgiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuREFZX09GX1dFRUssICAgICAgICAgICJEYXkgb2YgV2VlayIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCwgIkRheSBvZiBXZWVrIGluIE1vbnRoIiApLAorICAgICAgICBuZXcgUm9sbEFkZEZpZWxkKENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAgICAgICAgICAiRGF5IG9mIFllYXIiICksCisgICAgICAgIG5ldyBSb2xsQWRkRmllbGQoQ2FsZW5kYXIuQU1fUE0sICAgICAgICAgICAgICAgICJBTS9QTSIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5IT1VSX09GX0RBWSwgICAgICAgICAgIkhvdXIgb2YgZGF5IiApLAorICAgICAgICBuZXcgUm9sbEFkZEZpZWxkKENhbGVuZGFyLkhPVVIsICAgICAgICAgICAgICAgICAiSG91ciIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5NSU5VVEUsICAgICAgICAgICAgICAgIk1pbnV0ZSIgKSwKKyAgICAgICAgbmV3IFJvbGxBZGRGaWVsZChDYWxlbmRhci5TRUNPTkQsICAgICAgICAgICAgICAgIlNlY29uZCIgKSwKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIG5ldyBDYWxlbmRhckNhbGNGcmFtZSB0aGF0IGlzIGluaXRpYWxseSBpbnZpc2libGUuCisgICAgICovCisgICAgcHVibGljIENhbGVuZGFyQ2FsY0ZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KQorICAgIHsKKyAgICAgICAgc3VwZXIoIk11bHRpcGxlIENhbGVuZGFyIERlbW8iKTsKKyAgICAgICAgdGhpcy5hcHBsZXQgPSBhcHBsZXQ7CisgICAgICAgIGluaXQoKTsKKyAgICAgICAgc3RhcnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplcyB0aGUgYXBwbGV0LiBZb3UgbmV2ZXIgbmVlZCB0byBjYWxsIHRoaXMgZGlyZWN0bHksIGl0CisgICAgICogaXMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHN5c3RlbSBvbmNlIHRoZSBhcHBsZXQgaXMgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbml0KCkKKyAgICB7CisgICAgICAgIGJ1aWxkR1VJKCk7CisKKyAgICAgICAgcGF0dGVyblRleHQuc2V0VGV4dCggY2FsZW5kYXJzWzBdLnRvUGF0dGVybigpICk7CisKKyAgICAgICAgLy8gRm9yY2UgYW4gdXBkYXRlIG9mIHRoZSBkaXNwbGF5CisgICAgICAgIGNpdHlDaGFuZ2VkKCk7CisgICAgICAgIG1pbGxpc0Zvcm1hdCgpOworICAgICAgICBlbmFibGVFdmVudHMoS2V5RXZlbnQuS0VZX1JFTEVBU0VEKTsKKyAgICAgICAgZW5hYmxlRXZlbnRzKFdpbmRvd0V2ZW50LldJTkRPV19DTE9TSU5HKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgdm9pZCBhZGRXaXRoRm9udChDb250YWluZXIgY29udGFpbmVyLCBDb21wb25lbnQgZm9vLCBGb250IGZvbnQpIHsKKyAgICAgICAgaWYgKGZvbnQgIT0gbnVsbCkKKyAgICAgICAgICAgIGZvby5zZXRGb250KGZvbnQpOworICAgICAgICBjb250YWluZXIuYWRkKGZvbyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsbGVkIHRvIHN0YXJ0IHRoZSBhcHBsZXQuIFlvdSBuZXZlciBuZWVkIHRvIGNhbGwgdGhpcyBtZXRob2QKKyAgICAgKiBkaXJlY3RseSwgaXQgaXMgY2FsbGVkIHdoZW4gdGhlIGFwcGxldCdzIGRvY3VtZW50IGlzIHZpc2l0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICAgICAgLy8gZG8gbm90aGluZworICAgIH0KKworICAgIFRleHRGaWVsZCBwYXR0ZXJuVGV4dDsKKworICAgIENob2ljZSBkYXRlTWVudTsKKyAgICBDaG9pY2UgbG9jYWxlTWVudTsKKworICAgIEJ1dHRvbiB1cDsKKyAgICBCdXR0b24gZG93bjsKKworICAgIENoZWNrYm94IGdldFJvbGw7CisgICAgQ2hlY2tib3ggZ2V0QWRkOworCisgICAgcHVibGljIHZvaWQgYnVpbGRHVUkoKQorICAgIHsKKyAgICAgICAgc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5iZ0NvbG9yKTsKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KCkpOyAvLyBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5LCBidXQgaXQgaXMuCisKKy8vIFRJVExFCisgICAgICAgIExhYmVsIGxhYmVsMT1uZXcgTGFiZWwoIkNhbGVuZGFyIENvbnZlcnRlciIsIExhYmVsLkNFTlRFUik7CisgICAgICAgIGxhYmVsMS5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisgICAgICAgIGFkZChsYWJlbDEpOworICAgICAgICBhZGQoRGVtb1V0aWxpdHkuY3JlYXRlU3BhY2VyKCkpOworCisvLyBJTyBQYW5lbAorICAgICAgICBQYW5lbCB0b3BQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICB0b3BQYW5lbC5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoKSk7CisKKyAgICAgICAgQ2hlY2tib3hHcm91cCBncm91cDE9IG5ldyBDaGVja2JveEdyb3VwKCk7CisKKyAgICAgICAgLy8gU2V0IHVwIHRoZSBjb250cm9scyBmb3IgZWFjaCBjYWxlbmRhciB3ZSdyZSBkZW1vbnN0cmF0aW5nCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBMYWJlbCBsYWJlbCA9IG5ldyBMYWJlbChjYWxlbmRhcnNbaV0ubmFtZSwgTGFiZWwuUklHSFQpOworICAgICAgICAgICAgbGFiZWwuc2V0Rm9udChEZW1vVXRpbGl0eS5sYWJlbEZvbnQpOworICAgICAgICAgICAgdG9wUGFuZWwuYWRkKGxhYmVsKTsKKworICAgICAgICAgICAgdG9wUGFuZWwuYWRkKGNhbGVuZGFyc1tpXS50ZXh0KTsKKworICAgICAgICAgICAgZmluYWwgaW50IGogPSBpOworICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnRleHQuYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICB0ZXh0Q2hhbmdlZChqKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICk7CisKKyAgICAgICAgICAgIGNhbGVuZGFyc1tpXS5yb2xsQWRkLnNldENoZWNrYm94R3JvdXAoZ3JvdXAxKTsKKyAgICAgICAgICAgIHRvcFBhbmVsLmFkZChjYWxlbmRhcnNbaV0ucm9sbEFkZCk7CisgICAgICAgIH0KKyAgICAgICAgY2FsZW5kYXJzWzBdLnJvbGxBZGQuc2V0U3RhdGUodHJ1ZSk7ICAgIC8vIE1ha2UgdGhlIGZpcnN0IG9uZSBzZWxlY3RlZAorCisgICAgICAgIExhYmVsIGxhYmVsND1uZXcgTGFiZWwoIlBhdHRlcm4iLCBMYWJlbC5SSUdIVCk7CisgICAgICAgIGxhYmVsNC5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgIHRvcFBhbmVsLmFkZChsYWJlbDQpOworCisgICAgICAgIHBhdHRlcm5UZXh0PW5ldyBUZXh0RmllbGQoRklFTERfQ09MVU1OUyk7CisgICAgICAgIHBhdHRlcm5UZXh0LnNldEZvbnQoRGVtb1V0aWxpdHkuZWRpdEZvbnQpOworICAgICAgICB0b3BQYW5lbC5hZGQocGF0dGVyblRleHQpOworICAgICAgICB0b3BQYW5lbC5hZGQobmV3IExhYmVsKCIiKSk7CisKKyAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZCh0b3BQYW5lbCwzKTsKKyAgICAgICAgYWRkKHRvcFBhbmVsKTsKKyAgICAgICAgYWRkKERlbW9VdGlsaXR5LmNyZWF0ZVNwYWNlcigpKTsKKworLy8gUk9MTCAvIEFERAorICAgICAgICBQYW5lbCByb2xsQWRkUGFuZWw9bmV3IFBhbmVsKCk7CisgICAgICAgIHsKKyAgICAgICAgICAgIHJvbGxBZGRQYW5lbC5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoKSk7CisKKyAgICAgICAgICAgIFBhbmVsIHJvbGxBZGRCb3hlcyA9IG5ldyBQYW5lbCgpOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJvbGxBZGRCb3hlcy5zZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMiwxKSk7CisgICAgICAgICAgICAgICAgQ2hlY2tib3hHcm91cCBncm91cDI9IG5ldyBDaGVja2JveEdyb3VwKCk7CisgICAgICAgICAgICAgICAgZ2V0Um9sbCA9IG5ldyBDaGVja2JveCgiUm9sbCIsZ3JvdXAyLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgZ2V0QWRkID0gbmV3IENoZWNrYm94KCJBZGQiLGdyb3VwMiwgdHJ1ZSk7CisKKyAgICAgICAgICAgICAgICByb2xsQWRkQm94ZXMuYWRkKGdldFJvbGwpOworICAgICAgICAgICAgICAgIHJvbGxBZGRCb3hlcy5hZGQoZ2V0QWRkKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgTGFiZWwgZGF0ZUxhYmVsPW5ldyBMYWJlbCgiRGF0ZSBGaWVsZHMiKTsKKyAgICAgICAgICAgIGRhdGVMYWJlbC5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisKKyAgICAgICAgICAgIGRhdGVNZW51PSBuZXcgQ2hvaWNlKCk7CisgICAgICAgICAgICBkYXRlTWVudS5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwga1JvbGxBZGRGaWVsZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBkYXRlTWVudS5hZGRJdGVtKGtSb2xsQWRkRmllbGRzW2ldLm5hbWUpOworICAgICAgICAgICAgICAgIGlmIChrUm9sbEFkZEZpZWxkc1tpXS5maWVsZCA9PSBDYWxlbmRhci5NT05USCkgeworICAgICAgICAgICAgICAgICAgICBkYXRlTWVudS5zZWxlY3QoaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBQYW5lbCB1cERvd24gPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB1cERvd24uc2V0TGF5b3V0KG5ldyBHcmlkTGF5b3V0KDIsMSkpOworCisgICAgICAgICAgICAgICAgLy8gKioqIElmIHRoZSBpbWFnZXMgYXJlIG5vdCBmb3VuZCwgd2UgdXNlIHRoZSBsYWJlbC4KKyAgICAgICAgICAgICAgICB1cCA9IG5ldyBCdXR0b24oIl4iKTsKKyAgICAgICAgICAgICAgICBkb3duID0gbmV3IEJ1dHRvbigidiIpOworICAgICAgICAgICAgICAgIHVwLnNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuYmdDb2xvcik7CisgICAgICAgICAgICAgICAgZG93bi5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmJnQ29sb3IpOworICAgICAgICAgICAgICAgIHVwRG93bi5hZGQodXApOworICAgICAgICAgICAgICAgIHVwRG93bi5hZGQoZG93bik7CisgICAgICAgICAgICAgICAgdXAuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICAgICAgZG93bi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcm9sbEFkZFBhbmVsLmFkZChkYXRlTGFiZWwpOworICAgICAgICAgICAgcm9sbEFkZFBhbmVsLmFkZChkYXRlTWVudSk7CisgICAgICAgICAgICByb2xsQWRkUGFuZWwuYWRkKHJvbGxBZGRCb3hlcyk7CisgICAgICAgICAgICByb2xsQWRkUGFuZWwuYWRkKHVwRG93bik7CisKKyAgICAgICAgfQorICAgICAgICBQYW5lbCBsb2NhbGVQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICB7CisgICAgICAgICAgICAvLyBNYWtlIHRoZSBsb2NhbGUgcG9wdXAgbWVudXMKKyAgICAgICAgICAgIGxvY2FsZU1lbnU9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgIExvY2FsZSBkZWZhdWx0TG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgIGludCBiZXN0TWF0Y2ggPSAtMSwgdGhpc01hdGNoID0gLTE7CisgICAgICAgICAgICBpbnQgc2VsZWN0TWUgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA+IDAgJiYgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2ktMV0uZ2V0TGFuZ3VhZ2UoKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgaSA8IGxvY2FsZXMubGVuZ3RoIC0gMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2krMV0uZ2V0TGFuZ3VhZ2UoKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBsb2NhbGVNZW51LmFkZEl0ZW0oIGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKSApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZU1lbnUuYWRkSXRlbSggbG9jYWxlc1tpXS5nZXREaXNwbGF5TGFuZ3VhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRoaXNNYXRjaCA9IERlbW9VdGlsaXR5LmNvbXBhcmVMb2NhbGVzKGxvY2FsZXNbaV0sIGRlZmF1bHRMb2NhbGUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICh0aGlzTWF0Y2ggPj0gYmVzdE1hdGNoKSB7CisgICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaCA9IHRoaXNNYXRjaDsKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0TWUgPSBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9jYWxlTWVudS5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGxvY2FsZU1lbnUuc2VsZWN0KHNlbGVjdE1lKTsKKworICAgICAgICAgICAgTGFiZWwgbG9jYWxlTGFiZWwgPW5ldyBMYWJlbCgiRGlzcGxheSBMb2NhbGUiKTsKKyAgICAgICAgICAgIGxvY2FsZUxhYmVsLnNldEZvbnQoRGVtb1V0aWxpdHkubGFiZWxGb250KTsKKworICAgICAgICAgICAgbG9jYWxlUGFuZWwuYWRkKGxvY2FsZUxhYmVsKTsKKyAgICAgICAgICAgIGxvY2FsZVBhbmVsLmFkZChsb2NhbGVNZW51KTsKKyAgICAgICAgICAgIERlbW9VdGlsaXR5LmZpeEdyaWQobG9jYWxlUGFuZWwsMik7CisKKyAgICAgICAgICAgIGxvY2FsZU1lbnUuYWRkSXRlbUxpc3RlbmVyKCBuZXcgSXRlbUxpc3RlbmVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgTG9jYWxlIGxvYyA9IGxvY2FsZXNbbG9jYWxlTWVudS5nZXRTZWxlY3RlZEluZGV4KCldOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNoYW5nZSBsb2NhbGUgdG8gIiArIGxvYy5nZXREaXNwbGF5TmFtZSgpKTsKKworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnNldExvY2FsZShsb2MpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG1pbGxpc0Zvcm1hdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gKTsKKyAgICAgICAgfQorICAgICAgICBhZGQocm9sbEFkZFBhbmVsKTsKKyAgICAgICAgYWRkKERlbW9VdGlsaXR5LmNyZWF0ZVNwYWNlcigpKTsKKyAgICAgICAgYWRkKGxvY2FsZVBhbmVsKTsKKyAgICAgICAgYWRkKERlbW9VdGlsaXR5LmNyZWF0ZVNwYWNlcigpKTsKKworLy8gQ09QWVJJR0hUCisgICAgICAgIFBhbmVsIGNvcHlyaWdodFBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIGFkZFdpdGhGb250IChjb3B5cmlnaHRQYW5lbCxuZXcgTGFiZWwoRGVtb1V0aWxpdHkuY29weXJpZ2h0MSwgTGFiZWwuTEVGVCksCisgICAgICAgICAgICBEZW1vVXRpbGl0eS5jcmVkaXRGb250KTsKKyAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZChjb3B5cmlnaHRQYW5lbCwxKTsKKyAgICAgICAgYWRkKGNvcHlyaWdodFBhbmVsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHVzZXJzIGNoYW5nZSB0aGUgcGF0dGVybiB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdEZyb21QYXR0ZXJuKCkgeworICAgICAgICBTdHJpbmcgdGltZVBhdHRlcm4gPSBwYXR0ZXJuVGV4dC5nZXRUZXh0KCk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGNhbGVuZGFyc1tpXS5hcHBseVBhdHRlcm4odGltZVBhdHRlcm4pOworICAgICAgICB9CisKKyAgICAgICAgbWlsbGlzRm9ybWF0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBpdCBpcyBuZWNlc3NhcnkgdG8gcGFyc2UgdGhlIHRpbWUKKyAgICAgKiBzdHJpbmcgaW4gb25lIG9mIHRoZSBmb3JtYXR0ZWQgZGF0ZSBmaWVsZHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXh0Q2hhbmdlZChpbnQgaW5kZXgpIHsKKyAgICAgICAgU3RyaW5nIHJpZ2h0U3RyaW5nID0gY2FsZW5kYXJzW2luZGV4XS50ZXh0LmdldFRleHQoKTsKKworICAgICAgICBQYXJzZVBvc2l0aW9uIHN0YXR1cyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworCisgICAgICAgIGlmIChyaWdodFN0cmluZy5sZW5ndGgoKSA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJvclRleHQoIkVycm9yOiBubyBpbnB1dCB0byBwYXJzZSEiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlIGRhdGUgPSBjYWxlbmRhcnNbaW5kZXhdLmZvcm1hdC5wYXJzZShyaWdodFN0cmluZywgc3RhdHVzKTsKKyAgICAgICAgICAgIHRpbWUgPSBkYXRlLmdldFRpbWUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgIT0gaW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnRleHQuc2V0VGV4dCgiRVJST1IiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJvclRleHQoIkV4Y2VwdGlvbjogIiArIGUuZ2V0Q2xhc3MoKS50b1N0cmluZygpICsgIiBwYXJzaW5nOiAiK3JpZ2h0U3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGludCBzdGFydCA9IGNhbGVuZGFyc1tpbmRleF0udGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICBpbnQgZW5kID0gY2FsZW5kYXJzW2luZGV4XS50ZXh0LmdldFNlbGVjdGlvbkVuZCgpOworCisgICAgICAgIG1pbGxpc0Zvcm1hdCgpOworCisgICAgICAgIGNhbGVuZGFyc1tpbmRleF0udGV4dC5zZWxlY3Qoc3RhcnQsZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGl0IGlzIG5lY2Vzc2FyeSB0byBmb3JtYXQgdGhlIHRpbWUKKyAgICAgKiBpbiB0aGUgIk1pbGxpcyIgdGV4dCBmaWVsZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtaWxsaXNGb3JtYXQoKSB7CisgICAgICAgIFN0cmluZyBvdXQgPSAiIjsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBvdXQgPSBjYWxlbmRhcnNbaV0uZm9ybWF0LmZvcm1hdChuZXcgRGF0ZSh0aW1lKSk7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnRleHQuc2V0VGV4dChvdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLnRleHQuc2V0VGV4dCgiRVJST1IiKTsKKyAgICAgICAgICAgICAgICBlcnJvclRleHQoIkV4Y2VwdGlvbjogIiArIGUuZ2V0Q2xhc3MoKS50b1N0cmluZygpICsgIiBmb3JtYXR0aW5nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGNhbGVuZGFyc1tpXS5uYW1lICsgIiAiICsgdGltZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdXNlcnMgY2hhbmdlIHRoZSBwYXR0ZXJuIHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcGF0dGVyblRleHRDaGFuZ2VkKCkgeworICAgICAgICBzZXRGb3JtYXRGcm9tUGF0dGVybigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gdXNlcnMgc2VsZWN0IGEgbmV3IHJlcHJlc2VudGF0aXZlIGNpdHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2l0eUNoYW5nZWQoKSB7CisgICAgICAgIFRpbWVab25lIHRpbWVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBjYWxlbmRhcnNbaV0uZm9ybWF0LnNldFRpbWVab25lKHRpbWVab25lKTsKKyAgICAgICAgfQorICAgICAgICBtaWxsaXNGb3JtYXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHVzZXJzIHNlbGVjdCBhIG5ldyB0aW1lIGZpZWxkCisgICAgICogdG8gYWRkIG9yIHJvbGwgaXRzIHZhbHVlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRhdGVGaWVsZENoYW5nZWQoYm9vbGVhbiB1cCkgeworICAgICAgICBpbnQgZmllbGQgPSBrUm9sbEFkZEZpZWxkc1tkYXRlTWVudS5nZXRTZWxlY3RlZEluZGV4KCldLmZpZWxkOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoY2FsZW5kYXJzW2ldLnJvbGxBZGQuZ2V0U3RhdGUoKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBDYWxlbmRhciBjID0gY2FsZW5kYXJzW2ldLmNhbGVuZGFyOworICAgICAgICAgICAgICAgIGMuc2V0VGltZShuZXcgRGF0ZSh0aW1lKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoZ2V0QWRkLmdldFN0YXRlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYy5hZGQoZmllbGQsIHVwID8gMSA6IC0xKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjLnJvbGwoZmllbGQsIHVwKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0aW1lID0gYy5nZXRUaW1lKCkuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgIG1pbGxpc0Zvcm1hdCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJpbnQgb3V0IHRoZSBlcnJvciBtZXNzYWdlIHdoaWxlIGRlYnVnZ2luZyB0aGlzIHByb2dyYW0uCisgICAgICovCisgICAgcHVibGljIHZvaWQgZXJyb3JUZXh0KFN0cmluZyBzKQorICAgIHsKKyAgICAgICAgaWYgKHRydWUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgaWYgYW4gYWN0aW9uIG9jY3VycyBpbiB0aGUgQ2FsZW5kYXJDYWxjRnJhbWUgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldnQpCisgICAgeworICAgICAgICAvLyAqKiogQnV0dG9uIGV2ZW50cyBhcmUgaGFuZGxlZCBoZXJlLgorICAgICAgICBPYmplY3Qgb2JqID0gZXZ0LmdldFNvdXJjZSgpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImFjdGlvbiAiICsgb2JqKTsKKyAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIEJ1dHRvbikgeworICAgICAgICAgICAgaWYgKGV2dC5nZXRTb3VyY2UoKSA9PSB1cCkgeworICAgICAgICAgICAgICAgIGRhdGVGaWVsZENoYW5nZWQoZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgaWYgKGV2dC5nZXRTb3VyY2UoKSA9PSBkb3duKSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGVGaWVsZENoYW5nZWQodHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSGFuZGxlcyB0aGUgZXZlbnQuIFJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgaXMgaGFuZGxlZCBhbmQgc2hvdWxkIG5vdAorICAgICAqIGJlIHBhc3NlZCB0byB0aGUgcGFyZW50IG9mIHRoaXMgY29tcG9uZW50LiBUaGUgZGVmYXVsdCBldmVudCBoYW5kbGVyCisgICAgICogY2FsbHMgc29tZSBoZWxwZXIgbWV0aG9kcyB0byBtYWtlIGxpZmUgZWFzaWVyIG9uIHRoZSBwcm9ncmFtbWVyLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NLZXlFdmVudChLZXlFdmVudCBldnQpCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImtleSAiICsgZXZ0KTsKKyAgICAgICAgaWYgKGV2dC5nZXRJRCgpID09IEtleUV2ZW50LktFWV9SRUxFQVNFRCkgeyAKKyAgICAgICAgICAgIGlmIChldnQuZ2V0U291cmNlKCkgPT0gcGF0dGVyblRleHQpIHsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuVGV4dENoYW5nZWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChldnQuZ2V0U291cmNlKCkgPT0gY2FsZW5kYXJzW2ldLnRleHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDaGFuZ2VkKGkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NXaW5kb3dFdmVudChXaW5kb3dFdmVudCBldnQpIAorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ3aW5kb3cgIiArIGV2dCk7CisgICAgICAgIGlmIChldnQuZ2V0SUQoKSA9PSBXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORyAmJiAKKyAgICAgICAgICAgIGV2dC5nZXRTb3VyY2UoKSA9PSB0aGlzKSB7CisgICAgICAgICAgICB0aGlzLmhpZGUoKTsKKyAgICAgICAgICAgIHRoaXMuZGlzcG9zZSgpOworCisgICAgICAgICAgICBpZiAoYXBwbGV0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgIGFwcGxldC5kZW1vQ2xvc2VkKCk7CisgICAgICAgICAgICB9IGVsc2UgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICBwcm90ZWN0ZWQgdm9pZCBwcm9jZXNzRXZlbnQoQVdURXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgaWYgKGV2dC5nZXRJRCgpID09IEFXVEV2ZW50LiBFdmVudC5BQ1RJT05fRVZFTlQgJiYgZXZ0LnRhcmdldCA9PSB1cCkgeworICAgICAgICAgICAgZGF0ZUZpZWxkQ2hhbmdlZCh0cnVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2dC5pZCA9PSBFdmVudC5BQ1RJT05fRVZFTlQgJiYgZXZ0LnRhcmdldCA9PSBkb3duKSB7CisgICAgICAgICAgICBkYXRlRmllbGRDaGFuZ2VkKGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgICAgIEZJRUxEX0NPTFVNTlMgPSAzNTsKKworCisgICAgY2xhc3MgQ2FsZW5kYXJSZWMgeworICAgICAgICBwdWJsaWMgQ2FsZW5kYXJSZWMoU3RyaW5nIG5hbWVTdHIsIENhbGVuZGFyIGNhbCkKKyAgICAgICAgeworICAgICAgICAgICAgbmFtZSA9IG5hbWVTdHI7CisgICAgICAgICAgICBjYWxlbmRhciA9IGNhbDsKKyAgICAgICAgICAgIHJvbGxBZGQgPSBuZXcgQ2hlY2tib3goKTsKKworICAgICAgICAgICAgdGV4dCA9IG5ldyBKVGV4dEZpZWxkKCIiLEZJRUxEX0NPTFVNTlMpOworICAgICAgICAgICAgdGV4dC5zZXRGb250KERlbW9VdGlsaXR5LmVkaXRGb250KTsKKworICAgICAgICAgICAgZm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LkZVTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIC8vZm9ybWF0LmFwcGx5UGF0dGVybihERUZBVUxUX0ZPUk1BVCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXRMb2NhbGUoTG9jYWxlIGxvYykgeworICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSB0b1BhdHRlcm4oKTsKKworICAgICAgICAgICAgZm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoY2FsZW5kYXIsIERhdGVGb3JtYXQuRlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYyk7CisgICAgICAgICAgICBhcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBhcHBseVBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgICAgIGlmIChmb3JtYXQgaW5zdGFuY2VvZiBTaW1wbGVEYXRlRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgKChTaW1wbGVEYXRlRm9ybWF0KWZvcm1hdCkuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworLy9oZXkge2FsfSAtIAorLy8gICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCBpbnN0YW5jZW9mIGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KSB7CisvLyAgICAgICAgICAgICAgICAoKGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KWZvcm1hdCkuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIFN0cmluZyB0b1BhdHRlcm4oKSB7CisgICAgICAgICAgICBpZiAoZm9ybWF0IGluc3RhbmNlb2YgU2ltcGxlRGF0ZUZvcm1hdCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoKFNpbXBsZURhdGVGb3JtYXQpZm9ybWF0KS50b1BhdHRlcm4oKTsKKy8vaGV5IHthbH0gLSAKKy8vICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgaW5zdGFuY2VvZiBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdCkgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuICgoamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQpZm9ybWF0KS50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQ2FsZW5kYXIgIGNhbGVuZGFyOworICAgICAgICBEYXRlRm9ybWF0ICAgICAgICAgIGZvcm1hdDsKKyAgICAgICAgU3RyaW5nICAgICAgICAgICAgICBuYW1lOworICAgICAgICBKVGV4dEZpZWxkICAgICAgICAgICB0ZXh0OworICAgICAgICBDaGVja2JveCAgICAgICAgICAgIHJvbGxBZGQ7CisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCBDYWxlbmRhclJlY1tdIGNhbGVuZGFycyA9IHsKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJHcmVnb3JpYW4iLCAgICAgICAgbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCkpLAorICAgICAgICBuZXcgQ2FsZW5kYXJSZWMoIkhlYnJldyIsICAgICAgICAgICBuZXcgSGVicmV3Q2FsZW5kYXIoKSksCisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiSXNsYW1pYyAoY2l2aWwpIiwgIG1ha2VJc2xhbWljKHRydWUpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJJc2xhbWljICh0cnVlKSIsICAgbWFrZUlzbGFtaWMoZmFsc2UpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJCdWRkaGlzdCIsICAgICAgICAgbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoKSksCisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiSmFwYW5lc2UiLCAgICAgICAgIG5ldyBKYXBhbmVzZUNhbGVuZGFyKCkpLAorLy8gICAgICAgIG5ldyBDYWxlbmRhclJlYygiQ2hpbmVzZSIsICAgICAgICAgIG5ldyBDaGluZXNlQ2FsZW5kYXIoKSksCisgICAgfTsKKworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIENhbGVuZGFyIG1ha2VJc2xhbWljKGJvb2xlYW4gY2l2aWwpIHsKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldENpdmlsKGNpdmlsKTsKKyAgICAgICAgcmV0dXJuIGNhbDsKKyAgICB9Cit9CisKK2NsYXNzIFJvbGxBZGRGaWVsZCB7CisgICAgUm9sbEFkZEZpZWxkKGludCBmaWVsZCwgU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgdGhpcy5maWVsZCA9IGZpZWxkOworICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgIH0KKyAgICBpbnQgZmllbGQ7CisgICAgU3RyaW5nIG5hbWU7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvQ2FsZW5kYXJGcmFtZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyRnJhbWUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMWZjYTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyRnJhbWUuamF2YQpAQCAtMCwwICsxLDQzMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5jYWxlbmRhcjsKKworaW1wb3J0IGphdmEuYXd0LkJvcmRlckxheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5CdXR0b247CitpbXBvcnQgamF2YS5hd3QuQ2hvaWNlOworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5Db250YWluZXI7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0LkZsb3dMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuRm9udDsKK2ltcG9ydCBqYXZhLmF3dC5Gb250TWV0cmljczsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5HcmlkQmFnQ29uc3RyYWludHM7CitpbXBvcnQgamF2YS5hd3QuR3JpZEJhZ0xheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5MYWJlbDsKK2ltcG9ydCBqYXZhLmF3dC5QYW5lbDsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLkRlbW9BcHBsZXQ7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC5EZW1vVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5CdWRkaGlzdENhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSXNsYW1pY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSmFwYW5lc2VDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lOworCisvKioKKyAqIEEgRnJhbWUgaXMgYSB0b3AtbGV2ZWwgd2luZG93IHdpdGggYSB0aXRsZS4gVGhlIGRlZmF1bHQgbGF5b3V0IGZvciBhIGZyYW1lCisgKiBpcyBCb3JkZXJMYXlvdXQuICBUaGUgQ2FsZW5kYXJGcmFtZSBjbGFzcyBkZWZpbmVzIHRoZSB3aW5kb3cgbGF5b3V0IG9mCisgKiBDYWxlbmRhckRlbW8uCisgKi8KK2NsYXNzIENhbGVuZGFyRnJhbWUgZXh0ZW5kcyBGcmFtZQoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgIHByaXZhdGUgRGVtb0FwcGxldCBhcHBsZXQ7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IENhbGVuZGFyRnJhbWUgdGhhdCBpcyBpbml0aWFsbHkgaW52aXNpYmxlLgorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhckZyYW1lKERlbW9BcHBsZXQgbXlBcHBsZXQpCisgICAgeworICAgICAgICBzdXBlcigiQ2FsZW5kYXIgRGVtbyIpOworICAgICAgICB0aGlzLmFwcGxldCA9IG15QXBwbGV0OworICAgICAgICBpbml0KCk7CisKKyAgICAgICAgLy8gV2hlbiB0aGUgd2luZG93IGlzIGNsb3NlZCwgd2Ugd2FudCB0byBzaHV0IGRvd24gdGhlIGFwcGxldCBvciBhcHBsaWNhdGlvbgorICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcigKKyAgICAgICAgICAgIG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgZGlzcG9zZSgpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChhcHBsZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGV0LmRlbW9DbG9zZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gKTsKKyAgICB9CisKKyAgICBwcml2YXRlIENob2ljZSAgICAgICAgICBkaXNwbGF5TWVudTsKKyAgICBwcml2YXRlIExvY2FsZVtdICAgICAgICBsb2NhbGVzID0gRGVtb1V0aWxpdHkuZ2V0RzdMb2NhbGVzKCk7CisKKyAgICBwcml2YXRlIENhbGVuZGFyICAgICAgICBjYWxlbmRhcnNbXSAgID0gbmV3IENhbGVuZGFyWzJdOworICAgIHByaXZhdGUgQ2hvaWNlICAgICAgICAgIGNhbE1lbnVbXSAgICAgPSBuZXcgQ2hvaWNlWzJdOworICAgIHByaXZhdGUgQ29sb3JlZExhYmVsICAgIG1vbnRoTGFiZWxbXSAgPSBuZXcgQ29sb3JlZExhYmVsWzJdOworICAgIHByaXZhdGUgRGF0ZUZvcm1hdCAgICAgIG1vbnRoRm9ybWF0W10gPSBuZXcgRGF0ZUZvcm1hdFsyXTsKKworICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIHByZXZZZWFyOworICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIHByZXZNb250aDsKKyAgICBwcml2YXRlIEJ1dHRvbiAgICAgICAgICBnb3RvVG9kYXk7CisgICAgcHJpdmF0ZSBCdXR0b24gICAgICAgICAgbmV4dE1vbnRoOworICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIG5leHRZZWFyOworICAgIHByaXZhdGUgQ2FsZW5kYXJQYW5lbCAgIGNhbGVuZGFyUGFuZWw7CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGFkZChDb250YWluZXIgY29udGFpbmVyLCBDb21wb25lbnQgY29tcG9uZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyaWRCYWdMYXlvdXQgZywgR3JpZEJhZ0NvbnN0cmFpbnRzIGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGdyaWR3aWR0aCwgaW50IHdlaWdodHgpCisgICAgeworICAgICAgICBjLmdyaWR3aWR0aCA9IGdyaWR3aWR0aDsKKyAgICAgICAgYy53ZWlnaHR4ID0gd2VpZ2h0eDsKKyAgICAgICAgZy5zZXRDb25zdHJhaW50cyhjb21wb25lbnQsIGMpOworICAgICAgICBjb250YWluZXIuYWRkKGNvbXBvbmVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGFwcGxldC4gWW91IG5ldmVyIG5lZWQgdG8gY2FsbCB0aGlzIGRpcmVjdGx5LCBpdAorICAgICAqIGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBzeXN0ZW0gb25jZSB0aGUgYXBwbGV0IGlzIGNyZWF0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgaW5pdCgpIHsKKyAgICAgICAgc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5iZ0NvbG9yKTsKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoMTAsMTApKTsKKworICAgICAgICBQYW5lbCB0b3BQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICBHcmlkQmFnTGF5b3V0IGcgPSBuZXcgR3JpZEJhZ0xheW91dCgpOworICAgICAgICB0b3BQYW5lbC5zZXRMYXlvdXQoZyk7CisgICAgICAgIEdyaWRCYWdDb25zdHJhaW50cyBjID0gbmV3IEdyaWRCYWdDb25zdHJhaW50cygpOworICAgICAgICBjLmZpbGwgPSBHcmlkQmFnQ29uc3RyYWludHMuSE9SSVpPTlRBTDsKKworICAgICAgICAvLyBCdWlsZCB0aGUgdHdvIG1lbnVzIGZvciBzZWxlY3Rpbmcgd2hpY2ggY2FsZW5kYXIgaXMgZGlzcGxheWVkLAorICAgICAgICAvLyBwbHVzIHRoZSBtb250aC95ZWFyIGxhYmVsIGZvciBlYWNoIGNhbGVuZGFyCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjsgaSsrKSB7CisgICAgICAgICAgICBjYWxNZW51W2ldID0gbmV3IENob2ljZSgpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBDQUxFTkRBUlMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICBjYWxNZW51W2ldLmFkZEl0ZW0oQ0FMRU5EQVJTW2pdLm5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsTWVudVtpXS5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGNhbE1lbnVbaV0uc2VsZWN0KGkpOworICAgICAgICAgICAgY2FsTWVudVtpXS5hZGRJdGVtTGlzdGVuZXIobmV3IENhbE1lbnVMaXN0ZW5lcigpKTsKKworICAgICAgICAgICAgLy8gTGFiZWwgZm9yIHRoZSBjdXJyZW50IG1vbnRoIG5hbWUKKyAgICAgICAgICAgIG1vbnRoTGFiZWxbaV0gPSBuZXcgQ29sb3JlZExhYmVsKCIiLCBDT0xPUlNbaV0pOworICAgICAgICAgICAgbW9udGhMYWJlbFtpXS5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisKKyAgICAgICAgICAgIC8vIEFuZCB0aGUgZGVmYXVsdCBjYWxlbmRhciB0byB1c2UgZm9yIHRoaXMgc2xvdAorICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gQ0FMRU5EQVJTW2ldLmNhbGVuZGFyOworCisgICAgICAgICAgICBhZGQodG9wUGFuZWwsIGNhbE1lbnVbaV0sIGcsIGMsIDUsIDApOworICAgICAgICAgICAgYWRkKHRvcFBhbmVsLCBtb250aExhYmVsW2ldLCBnLCBjLCBHcmlkQmFnQ29uc3RyYWludHMuUkVNQUlOREVSLCAxKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyBhZGQgdGhlIG5leHQvcHJldmlvdXMgeWVhci9tb250aCBidXR0b25zOgorICAgICAgICBwcmV2WWVhciA9IG5ldyBCdXR0b24oIjw8Iik7CisgICAgICAgIHByZXZZZWFyLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBZGRBY3Rpb24oQ2FsZW5kYXIuWUVBUiwgLTEpKTsKKworICAgICAgICBwcmV2TW9udGggPSBuZXcgQnV0dG9uKCI8Iik7CisgICAgICAgIHByZXZNb250aC5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWRkQWN0aW9uKENhbGVuZGFyLk1PTlRILCAtMSkpOworCisgICAgICAgIGdvdG9Ub2RheSA9IG5ldyBCdXR0b24oIlRvZGF5Iik7CisgICAgICAgIGdvdG9Ub2RheS5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkKKyAgICAgICAgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLnNldERhdGUoIG5ldyBEYXRlKCkgKTsKKyAgICAgICAgICAgICAgICB1cGRhdGVNb250aE5hbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIG5leHRNb250aCA9IG5ldyBCdXR0b24oIj4iKTsKKyAgICAgICAgbmV4dE1vbnRoLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBZGRBY3Rpb24oQ2FsZW5kYXIuTU9OVEgsIDEpKTsKKworICAgICAgICBuZXh0WWVhciA9IG5ldyBCdXR0b24oIj4+Iik7CisgICAgICAgIG5leHRZZWFyLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBZGRBY3Rpb24oQ2FsZW5kYXIuWUVBUiwgMSkpOworCisgICAgICAgIGMuZmlsbCA9IEdyaWRCYWdDb25zdHJhaW50cy5OT05FOworICAgICAgICBhZGQodG9wUGFuZWwsIHByZXZZZWFyLCAgZywgYywgMSwgMCk7CisgICAgICAgIGFkZCh0b3BQYW5lbCwgcHJldk1vbnRoLCBnLCBjLCAxLCAwKTsKKyAgICAgICAgYWRkKHRvcFBhbmVsLCBnb3RvVG9kYXksIGcsIGMsIDEsIDApOworICAgICAgICBhZGQodG9wUGFuZWwsIG5leHRNb250aCwgZywgYywgMSwgMCk7CisgICAgICAgIGFkZCh0b3BQYW5lbCwgbmV4dFllYXIsICBnLCBjLCAxLCAwKTsKKworICAgICAgICAvLyBOb3cgYWRkIHRoZSBtZW51IGZvciBzZWxlY3RpbmcgdGhlIGRpc3BsYXkgbGFuZ3VhZ2UKKyAgICAgICAgUGFuZWwgZGlzcGxheVBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHsKKyAgICAgICAgICAgIGRpc3BsYXlNZW51ID0gbmV3IENob2ljZSgpOworICAgICAgICAgICAgTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgaW50IGJlc3RNYXRjaCA9IC0xLCB0aGlzTWF0Y2ggPSAtMTsKKyAgICAgICAgICAgIGludCBzZWxlY3RNZSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChpID4gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2ktMV0uZ2V0TGFuZ3VhZ2UoKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgaSA8IGxvY2FsZXMubGVuZ3RoIC0gMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2krMV0uZ2V0TGFuZ3VhZ2UoKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TWVudS5hZGRJdGVtKCBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkgKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TWVudS5hZGRJdGVtKCBsb2NhbGVzW2ldLmdldERpc3BsYXlMYW5ndWFnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0aGlzTWF0Y2ggPSBEZW1vVXRpbGl0eS5jb21wYXJlTG9jYWxlcyhsb2NhbGVzW2ldLCBkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAodGhpc01hdGNoID49IGJlc3RNYXRjaCkgeworICAgICAgICAgICAgICAgICAgICBiZXN0TWF0Y2ggPSB0aGlzTWF0Y2g7CisgICAgICAgICAgICAgICAgICAgIHNlbGVjdE1lID0gaTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRpc3BsYXlNZW51LnNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuY2hvaWNlQ29sb3IpOworICAgICAgICAgICAgZGlzcGxheU1lbnUuc2VsZWN0KHNlbGVjdE1lKTsKKworICAgICAgICAgICAgZGlzcGxheU1lbnUuYWRkSXRlbUxpc3RlbmVyKCBuZXcgSXRlbUxpc3RlbmVyKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICBMb2NhbGUgbG9jID0gbG9jYWxlc1tkaXNwbGF5TWVudS5nZXRTZWxlY3RlZEluZGV4KCldOworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLnNldExvY2FsZSggbG9jICk7CisgICAgICAgICAgICAgICAgICAgIG1vbnRoRm9ybWF0WzBdID0gbW9udGhGb3JtYXRbMV0gPSBudWxsOworICAgICAgICAgICAgICAgICAgICB1cGRhdGVNb250aE5hbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmVwYWludCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gKTsKKworICAgICAgICAgICAgTGFiZWwgbDEgPSBuZXcgTGFiZWwoIkRpc3BsYXkgTGFuZ3VhZ2U6IiwgTGFiZWwuUklHSFQpOworICAgICAgICAgICAgbDEuc2V0Rm9udChEZW1vVXRpbGl0eS5sYWJlbEZvbnQpOworCisgICAgICAgICAgICBkaXNwbGF5UGFuZWwuc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KCkpOworICAgICAgICAgICAgZGlzcGxheVBhbmVsLmFkZChsMSk7CisgICAgICAgICAgICBkaXNwbGF5UGFuZWwuYWRkKGRpc3BsYXlNZW51KTsKKworICAgICAgICB9CisgICAgICAgIGMuZmlsbCA9IEdyaWRCYWdDb25zdHJhaW50cy5OT05FOworICAgICAgICBjLmFuY2hvciA9IEdyaWRCYWdDb25zdHJhaW50cy5FQVNUOworCisgICAgICAgIGFkZCh0b3BQYW5lbCwgZGlzcGxheVBhbmVsLCBnLCBjLCBHcmlkQmFnQ29uc3RyYWludHMuUkVNQUlOREVSLCAwKTsKKworICAgICAgICAvLyBUaGUgdGl0bGUsIGJ1dHRvbnMsIGV0Yy4gZ28gaW4gYSBwYW5lbCBhdCB0aGUgdG9wIG9mIHRoZSB3aW5kb3cKKyAgICAgICAgYWRkKCJOb3J0aCIsIHRvcFBhbmVsKTsKKworICAgICAgICAvLyBUaGUgY29weXJpZ2h0IG5vdGljZSBnb2VzIGF0IHRoZSBib3R0b20gb2YgdGhlIHdpbmRvdworICAgICAgICBMYWJlbCBjb3B5cmlnaHQgPSBuZXcgTGFiZWwoRGVtb1V0aWxpdHkuY29weXJpZ2h0MSwgTGFiZWwuTEVGVCk7CisgICAgICAgIGNvcHlyaWdodC5zZXRGb250KERlbW9VdGlsaXR5LmNyZWRpdEZvbnQpOworICAgICAgICBhZGQoIlNvdXRoIiwgY29weXJpZ2h0KTsKKworICAgICAgICAvLyBOb3cgY3JlYXRlIHRoZSBiaWcgY2FsZW5kYXIgcGFuZWwgYW5kIHN0aWNrIGl0IGluIHRoZSBtaWRkbGUKKyAgICAgICAgY2FsZW5kYXJQYW5lbCA9IG5ldyBDYWxlbmRhclBhbmVsKCBsb2NhbGVzW2Rpc3BsYXlNZW51LmdldFNlbGVjdGVkSW5kZXgoKV0gKTsKKyAgICAgICAgYWRkKCJDZW50ZXIiLCBjYWxlbmRhclBhbmVsKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5zZXRDYWxlbmRhcihpLCBjYWxlbmRhcnNbaV0pOworICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5zZXRDb2xvcihpLCBDT0xPUlNbaV0pOworICAgICAgICB9CisKKyAgICAgICAgdXBkYXRlTW9udGhOYW1lKCk7CisgICAgfQorCisKKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlTW9udGhOYW1lKCkKKyAgICB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtb250aEZvcm1hdFtpXSA9PSBudWxsKSB7ICAgICAvLyBUT0RPOiBvcHRpbWl6ZQorICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBmID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLCBEYXRlRm9ybWF0Lk1FRElVTSwgLTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVzW2Rpc3BsYXlNZW51LmdldFNlbGVjdGVkSW5kZXgoKV0pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGYgaW5zdGFuY2VvZiBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQgZjEgPSAoY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0KSBmOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYxLmFwcGx5UGF0dGVybigiTU1NTSwgeXl5eSBHIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZjEuc2V0VGltZVpvbmUobmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtb250aEZvcm1hdFtpXSA9IGY7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAvL2hleSB7bHd9IC0gdGhlcmUncyBzb21ldGhpbmcgd3JvbmcgaW4gdGhpcyByb3V0aW5lIHRoYXQgY3Vhc2VzIGV4Y2VwdGlvbnMuCisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBtb250aExhYmVsW2ldLnNldFRleHQoIG1vbnRoRm9ybWF0W2ldLmZvcm1hdCggY2FsZW5kYXJQYW5lbC5maXJzdE9mTW9udGgoKSApKTsKKyAgICAgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxNZW51TGlzdGVuZXIgcmVzcG9uZHMgdG8gZXZlbnRzIGluIHRoZSB0d28gcG9wdXAgbWVudXMgdGhhdCBzZWxlY3QKKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtcyB0byBiZSB1c2VkIGluIHRoZSBkaXNwbGF5LiAgSXQgZmlndXJlcyBvdXQgd2hpY2gKKyAgICAgKiBvZiB0aGUgdHdvIG1lbnVzIHRoZSBldmVudCBvY2N1cnJlZCBpbiBhbmQgdXBkYXRlcyB0aGUgY29ycmVzcG9uZGluZworICAgICAqIGVsZW1lbnQgb2YgdGhlIGNhbGVuZGFyc1tdIGFycmF5IHRvIG1hdGNoIHRoZSBuZXcgc2VsZWN0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgY2xhc3MgQ2FsTWVudUxpc3RlbmVyIGltcGxlbWVudHMgSXRlbUxpc3RlbmVyCisgICAgeworICAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsTWVudS5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoZS5nZXRJdGVtU2VsZWN0YWJsZSgpID09IGNhbE1lbnVbaV0pCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSBmb3VuZCB0aGUgbWVudSB0aGF0IHRoZSBldmVudCBoYXBwZW5lZCBpbi4KKyAgICAgICAgICAgICAgICAgICAgLy8gRmlndXJlIG91dCB3aGljaCBuZXcgY2FsZW5kYXIgdGhleSBzZWxlY3RlZC4KKyAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgbmV3Q2FsID0gQ0FMRU5EQVJTWyBjYWxNZW51W2ldLmdldFNlbGVjdGVkSW5kZXgoKSBdLmNhbGVuZGFyOworCisgICAgICAgICAgICAgICAgICAgIGlmIChuZXdDYWwgIT0gY2FsZW5kYXJzW2ldKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBhbnkgb2YgdGhlIG90aGVyIG1lbnVzIGFyZSBzZXQgdG8gdGhlIHNhbWUgbmV3IGNhbGVuZGFyCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSdyZSBhYm91dCB0byB1c2UgZm9yIHRoaXMgbWVudSwgc2V0IHRoZW0gdG8gdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbGVuZGFyIGZyb20gKnRoaXMqIG1lbnUgc28gd2Ugd29uJ3QgaGF2ZSB0d28gdGhlIHNhbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgY2FsZW5kYXJzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGogIT0gaSAmJiBjYWxlbmRhcnNbal0gPT0gbmV3Q2FsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tqXSA9IGNhbGVuZGFyc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5zZXRDYWxlbmRhcihqLCBjYWxlbmRhcnNbal0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aEZvcm1hdFtqXSA9IG51bGw7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBDQUxFTkRBUlMubGVuZ3RoOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWxlbmRhcnNbal0gPT0gQ0FMRU5EQVJTW2tdLmNhbGVuZGFyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsTWVudVtqXS5zZWxlY3Qoayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3cgdXBkYXRlIHRoaXMgbWVudSB0byB1c2UgdGhlIG5ldyBjYWxlbmRhciB0aGUgdXNlciBzZWxlY3RlZAorICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gbmV3Q2FsOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5zZXRDYWxlbmRhcihpLCBuZXdDYWwpOworICAgICAgICAgICAgICAgICAgICAgICAgbW9udGhGb3JtYXRbaV0gPSBudWxsOworCisgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVNb250aE5hbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkQWN0aW9uIGhhbmRsZXMgdGhlIG5leHQvcHJldmlvdXMgeWVhci9tb250aCBidXR0b25zLi4uCisgICAgICovCisgICAgcHJpdmF0ZSBjbGFzcyBBZGRBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7CisgICAgICAgIEFkZEFjdGlvbihpbnQgZmllbGQsIGludCBhbW91bnQpIHsKKyAgICAgICAgICAgIHRoaXMuZmllbGQgPSBmaWVsZDsKKyAgICAgICAgICAgIHRoaXMuYW1vdW50ID0gYW1vdW50OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgIGNhbGVuZGFyUGFuZWwuYWRkKGZpZWxkLCBhbW91bnQpOworICAgICAgICAgICAgdXBkYXRlTW9udGhOYW1lKCk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGludCBmaWVsZCwgYW1vdW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbG9yZWRMYWJlbCBpcyBzaW1pbGFyIHRvIGphdmEuYXd0LkxhYmVsLCB3aXRoIHR3byBkaWZmZXJlbmNlczoKKyAgICAgKgorICAgICAqICAtIFlvdSBjYW4gc2V0IGl0cyB0ZXh0IGNvbG9yCisgICAgICoKKyAgICAgKiAgLSBJdCBkcmF3cyB0ZXh0IHVzaW5nIGRyYXdTdHJpbmcgcmF0aGVyIHRoYW4gdXNpbmcgYSBob3N0LXNwZWNpZmljCisgICAgICogICAgIlBlZXIiIG9iamVjdCBsaWtlIEFXVCBkb2VzLiAgT24gMS4yLCB1c2luZyBkcmF3U3RyaW5nIGdpdmVzCisgICAgICogICAgdXMgQmlkaSByZW9yZGVyaW5nIGZvciBmcmVlLgorICAgICAqLworICAgIHN0YXRpYyBwcml2YXRlIGNsYXNzIENvbG9yZWRMYWJlbCBleHRlbmRzIENvbXBvbmVudCB7CisgICAgICAgIHB1YmxpYyBDb2xvcmVkTGFiZWwoU3RyaW5nIGxhYmVsKSB7CisgICAgICAgICAgICB0ZXh0ID0gbGFiZWw7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQ29sb3JlZExhYmVsKFN0cmluZyBsYWJlbCwgQ29sb3IgYykgeworICAgICAgICAgICAgdGV4dCA9IGxhYmVsOworICAgICAgICAgICAgY29sb3IgPSBjOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgbGFiZWwpIHsKKyAgICAgICAgICAgIHRleHQgPSBsYWJlbDsKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldEZvbnQoRm9udCBmKSB7CisgICAgICAgICAgICBmb250ID0gZjsKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgICAgIEZvbnRNZXRyaWNzIGZtID0gZy5nZXRGb250TWV0cmljcyhmb250KTsKKworICAgICAgICAgICAgUmVjdGFuZ2xlIGJvdW5kcyA9IGdldEJvdW5kcygpOworCisgICAgICAgICAgICBnLnNldENvbG9yKGNvbG9yKTsKKyAgICAgICAgICAgIGcuc2V0Rm9udChmb250KTsKKyAgICAgICAgICAgIGcuZHJhd1N0cmluZyh0ZXh0LCBmbS5zdHJpbmdXaWR0aCgiXHUwMGEwIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRzLmhlaWdodC8yICsgZm0uZ2V0SGVpZ2h0KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAtIGZtLmdldEFzY2VudCgpICsgZm0uZ2V0TGVhZGluZygpLzIpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIERpbWVuc2lvbiBnZXRQcmVmZXJyZWRTaXplKCkgeworICAgICAgICAgICAgcmV0dXJuIGdldE1pbmltdW1TaXplKCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgRGltZW5zaW9uIGdldE1pbmltdW1TaXplKCkgeworICAgICAgICAgICAgRm9udE1ldHJpY3MgZm0gPSBnZXRGb250TWV0cmljcyhmb250KTsKKworICAgICAgICAgICAgcmV0dXJuIG5ldyBEaW1lbnNpb24oIGZtLnN0cmluZ1dpZHRoKHRleHQpICsgMipmbS5zdHJpbmdXaWR0aCgiXHUwMGEwIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm0uZ2V0SGVpZ2h0KCkgKyBmbS5nZXRMZWFkaW5nKCkqMik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgdGV4dDsKKyAgICAgICAgQ29sb3IgY29sb3IgPSBDb2xvci5ibGFjazsKKyAgICAgICAgRm9udCBmb250ID0gRGVtb1V0aWxpdHkubGFiZWxGb250OworICAgIH0KKworICAgIC8qKgorICAgICAqIFByaW50IG91dCB0aGUgZXJyb3IgbWVzc2FnZSB3aGlsZSBkZWJ1Z2dpbmcgdGhpcyBwcm9ncmFtLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGVycm9yVGV4dChTdHJpbmcgcykKKyAgICB7CisgICAgICAgIGlmIChERUJVRykKKyAgICAgICAgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHMpOworICAgICAgICB9CisgICAgfQorCisgICAgY2xhc3MgQ2FsZW5kYXJSZWMgeworICAgICAgICBwdWJsaWMgQ2FsZW5kYXJSZWMoU3RyaW5nIG5hbWVTdHIsIENhbGVuZGFyIGNhbCkKKyAgICAgICAgeworICAgICAgICAgICAgbmFtZSA9IG5hbWVTdHI7CisgICAgICAgICAgICBjYWxlbmRhciA9IGNhbDsKKyAgICAgICAgfQorCisgICAgICAgIENhbGVuZGFyICBjYWxlbmRhcjsKKyAgICAgICAgU3RyaW5nICAgICAgICAgICAgICBuYW1lOworICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgQ2FsZW5kYXJSZWNbXSBDQUxFTkRBUlMgPSB7CisgICAgICAgIG5ldyBDYWxlbmRhclJlYygiR3JlZ29yaWFuIENhbGVuZGFyIiwgICAgICAgbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCkpLAorICAgICAgICBuZXcgQ2FsZW5kYXJSZWMoIkhlYnJldyBDYWxlbmRhciIsICAgICAgICAgIG5ldyBIZWJyZXdDYWxlbmRhcigpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJJc2xhbWljIENhbGVuZGFyIiwgICAgICAgICBtYWtlSXNsYW1pYyhmYWxzZSkpLAorICAgICAgICBuZXcgQ2FsZW5kYXJSZWMoIklzbGFtaWMgQ2l2aWwgQ2FsZW5kYXIgIiwgIG1ha2VJc2xhbWljKHRydWUpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJCdWRkaGlzdCBDYWxlbmRhciIsICAgICAgICBuZXcgQnVkZGhpc3RDYWxlbmRhcigpKSwKKyAgICAgICAgbmV3IENhbGVuZGFyUmVjKCJKYXBhbmVzZSBDYWxlbmRhciIsICAgICAgICBuZXcgSmFwYW5lc2VDYWxlbmRhcigpKSwKKyAgICB9OworCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgQ2FsZW5kYXIgbWFrZUlzbGFtaWMoYm9vbGVhbiBjaXZpbCkgeworICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcigpOworICAgICAgICBjYWwuc2V0Q2l2aWwoY2l2aWwpOworICAgICAgICByZXR1cm4gY2FsOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBDb2xvcltdIENPTE9SUyA9IHsgQ29sb3IuYmx1ZSwgQ29sb3IuYmxhY2sgfTsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NhbGVuZGFyL0NhbGVuZGFyUGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jYWxlbmRhci9DYWxlbmRhclBhbmVsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWFjMTVjNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jYWxlbmRhci9DYWxlbmRhclBhbmVsLmphdmEKQEAgLTAsMCArMSwzNjAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8uY2FsZW5kYXI7CisKK2ltcG9ydCBqYXZhLmF3dC5DYW52YXM7CitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0LkZvbnRNZXRyaWNzOworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LlBvaW50OworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLkRlbW9VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lOworCitjbGFzcyBDYWxlbmRhclBhbmVsIGV4dGVuZHMgQ2FudmFzIHsKKworICAgIHB1YmxpYyBDYWxlbmRhclBhbmVsKCBMb2NhbGUgbG9jYWxlICkgeworICAgICAgICBzZXRMb2NhbGUobG9jYWxlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRMb2NhbGUoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBpZiAoZkRpc3BsYXlMb2NhbGUgPT0gbnVsbCB8fCAhZkRpc3BsYXlMb2NhbGUuZXF1YWxzKGxvY2FsZSkpIHsKKyAgICAgICAgICAgIGZEaXNwbGF5TG9jYWxlID0gbG9jYWxlOworICAgICAgICAgICAgZGlydHkgPSB0cnVlOworCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZDYWxlbmRhci5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChmQ2FsZW5kYXJbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBmU3ltYm9sc1tpXSA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhmQ2FsZW5kYXJbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZEaXNwbGF5TG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgbGFuZyA9IGxvY2FsZS5nZXRMYW5ndWFnZSgpOworICAgICAgICAgICAgbGVmdFRvUmlnaHQgPSAhKGxhbmcuZXF1YWxzKCJpdyIpIHx8IGxhbmcuZXF1YWxzKCJhciIpKTsKKworICAgICAgICAgICAgcmVwYWludCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RGF0ZShEYXRlIGRhdGUpIHsKKyAgICAgICAgZlN0YXJ0T2ZNb250aCA9IGRhdGU7CisgICAgICAgIGRpcnR5ID0gdHJ1ZTsKKyAgICAgICAgcmVwYWludCgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZChpbnQgZmllbGQsIGludCBkZWx0YSkKKyAgICB7CisgICAgICAgIHN5bmNocm9uaXplZChmQ2FsZW5kYXIpIHsKKyAgICAgICAgICAgIGZDYWxlbmRhclswXS5zZXRUaW1lKGZTdGFydE9mTW9udGgpOworICAgICAgICAgICAgZkNhbGVuZGFyWzBdLmFkZChmaWVsZCwgZGVsdGEpOworICAgICAgICAgICAgZlN0YXJ0T2ZNb250aCA9IGZDYWxlbmRhclswXS5nZXRUaW1lKCk7CisgICAgICAgIH0KKyAgICAgICAgZGlydHkgPSB0cnVlOworICAgICAgICByZXBhaW50KCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Q29sb3IoaW50IGluZGV4LCBDb2xvciBjKSB7CisgICAgICAgIGZDb2xvcltpbmRleF0gPSBjOworICAgICAgICByZXBhaW50KCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Q2FsZW5kYXIoaW50IGluZGV4LCBDYWxlbmRhciBjKSB7CisgICAgICAgIERhdGUgZGF0ZSA9IChmQ2FsZW5kYXJbaW5kZXhdID09IG51bGwpID8gbmV3IERhdGUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZDYWxlbmRhcltpbmRleF0uZ2V0VGltZSgpOworCisgICAgICAgIGZDYWxlbmRhcltpbmRleF0gPSBjOworICAgICAgICBmQ2FsZW5kYXJbaW5kZXhdLnNldFRpbWUoZGF0ZSk7CisKKyAgICAgICAgZlN5bWJvbHNbaW5kZXhdID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKGMsIGZEaXNwbGF5TG9jYWxlKTsKKyAgICAgICAgZGlydHkgPSB0cnVlOworICAgICAgICByZXBhaW50KCk7CisgICAgfQorCisgICAgcHVibGljIENhbGVuZGFyIGdldENhbGVuZGFyKGludCBpbmRleCkgeworICAgICAgICByZXR1cm4gZkNhbGVuZGFyW2luZGV4XTsKKyAgICB9CisKKyAgICBwdWJsaWMgTG9jYWxlIGdldERpc3BsYXlMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiBmRGlzcGxheUxvY2FsZTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGF0ZSBmaXJzdE9mTW9udGgoKSB7CisgICAgICAgIHJldHVybiBmU3RhcnRPZk1vbnRoOworICAgIH0KKworICAgIHByaXZhdGUgRGF0ZSBzdGFydE9mTW9udGgoRGF0ZSBkYXRlSW5Nb250aCkKKyAgICB7CisgICAgICAgIHN5bmNocm9uaXplZChmQ2FsZW5kYXIpIHsKKyAgICAgICAgICAgIGZDYWxlbmRhclswXS5zZXRUaW1lKGRhdGVJbk1vbnRoKTsKKworICAgICAgICAgICAgaW50IGVyYSA9IGZDYWxlbmRhclswXS5nZXQoQ2FsZW5kYXIuRVJBKTsKKyAgICAgICAgICAgIGludCB5ZWFyID0gZkNhbGVuZGFyWzBdLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgICAgIGludCBtb250aCA9IGZDYWxlbmRhclswXS5nZXQoQ2FsZW5kYXIuTU9OVEgpOworCisgICAgICAgICAgICBmQ2FsZW5kYXJbMF0uY2xlYXIoKTsKKyAgICAgICAgICAgIGZDYWxlbmRhclswXS5zZXQoQ2FsZW5kYXIuRVJBLCBlcmEpOworICAgICAgICAgICAgZkNhbGVuZGFyWzBdLnNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgICAgIGZDYWxlbmRhclswXS5zZXQoQ2FsZW5kYXIuTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgICAgIGZDYWxlbmRhclswXS5zZXQoQ2FsZW5kYXIuREFURSwgMSk7CisKKyAgICAgICAgICAgIHJldHVybiBmQ2FsZW5kYXJbMF0uZ2V0VGltZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNhbGN1bGF0ZSgpCisgICAgeworICAgICAgICAvLworICAgICAgICAvLyBBcyBhIHdvcmthcm91bmQgZm9yIEpESyAxLjEuMyBhbmQgYmVsb3csIHdoZXJlIENhbGVuZGFycyBhbmQgdGltZQorICAgICAgICAvLyB6b25lcyBhcmUgYSBiaXQgZ29vZnksIGFsd2F5cyBzZXQgbXkgY2FsZW5kYXIncyB0aW1lIHpvbmUgdG8gVVRDLgorICAgICAgICAvLyBZb3Ugd291bGQgdGhpbmsgSSB3b3VsZCB3YW50IHRvIGRvIHRoaXMgaW4gdGhlICJzZXQiIGZ1bmN0aW9uIGFib3ZlLAorICAgICAgICAvLyBidXQgaWYgSSBkbyB0aGF0LCB0aGUgcHJvZ3JhbSBoYW5ncyB3aGVuIHRoaXMgY2xhc3MgaXMgbG9hZGVkLAorICAgICAgICAvLyBwZXJoYXBzIGR1ZSB0byBzb21lIHNvcnQgb2Ygc3RhdGljIGluaXRpYWxpemF0aW9uIG9yZGVyaW5nIHByb2JsZW0uCisgICAgICAgIC8vIFNvIEkgZG8gaXQgaGVyZSBpbnN0ZWFkLgorICAgICAgICAvLworICAgICAgICBmQ2FsZW5kYXJbMF0uc2V0VGltZVpvbmUobmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKSk7CisKKyAgICAgICAgQ2FsZW5kYXIgYyA9IChDYWxlbmRhcilmQ2FsZW5kYXJbMF0uY2xvbmUoKTsgLy8gVGVtcG9yYXJ5IGNvcHkKKworICAgICAgICBmU3RhcnRPZk1vbnRoID0gc3RhcnRPZk1vbnRoKGZTdGFydE9mTW9udGgpOworCisgICAgICAgIC8vIFN0YXNoIGF3YXkgYSBmZXcgdXNlZnVsIGNvbnN0YW50cyBmb3IgdGhpcyBjYWxlbmRhciBhbmQgZGlzcGxheQorICAgICAgICBtaW5EYXkgPSBjLmdldE1pbmltdW0oQ2FsZW5kYXIuREFZX09GX1dFRUspOworICAgICAgICBkYXlzSW5XZWVrID0gYy5nZXRNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKSAtIG1pbkRheSArIDE7CisKKyAgICAgICAgZmlyc3REYXlPZldlZWsgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShmRGlzcGxheUxvY2FsZSkuZ2V0Rmlyc3REYXlPZldlZWsoKTsKKworICAgICAgICAvLyBTdGFzaCBhd2F5IGEgRGF0ZSBmb3IgdGhlIHN0YXJ0IG9mIHRoaXMgbW9udGgKKworICAgICAgICAvLyBGaW5kIHRoZSBkYXkgb2Ygd2VlayBvZiB0aGUgZmlyc3QgZGF5IGluIHRoaXMgbW9udGgKKyAgICAgICAgYy5zZXRUaW1lKGZTdGFydE9mTW9udGgpOworICAgICAgICBmaXJzdERheUluTW9udGggPSBjLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBmaXJzdFdlZWsgPSBjLmdldChDYWxlbmRhci5XRUVLX09GX01PTlRIKTsKKworICAgICAgICAvLyBOb3cgZmluZCB0aGUgIyBvZiBkYXlzIGluIHRoZSBtb250aAorICAgICAgICBjLnJvbGwoQ2FsZW5kYXIuREFURSwgZmFsc2UpOworICAgICAgICBkYXlzSW5Nb250aCA9IGMuZ2V0KENhbGVuZGFyLkRBVEUpOworCisgICAgICAgIC8vIEZpbmFsbHksIGZpbmQgdGhlIGVuZCBvZiB0aGUgbW9udGgsIGkuZS4gdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IG9uZQorICAgICAgICBjLnJvbGwoQ2FsZW5kYXIuREFURSwgdHJ1ZSk7CisgICAgICAgIGMuYWRkKENhbGVuZGFyLk1PTlRILCAxKTsKKyAgICAgICAgYy5nZXRUaW1lKCk7ICAgICAgICAvLyBKREsgMS4xLjIgYnVnIHdvcmthcm91bmQKKyAgICAgICAgYy5hZGQoQ2FsZW5kYXIuU0VDT05ELCAtMSk7CisgICAgICAgIERhdGUgZW5kT2ZNb250aCA9IGMuZ2V0VGltZSgpOworICAgICAgICBpZihlbmRPZk1vbnRoPT1udWxsKXsKKyAgICAgICAgIC8vZG8gbm90aGluZworICAgICAgICB9CisgICAgICAgIGVuZE9mTW9udGggPSBudWxsOworICAgICAgICBpbnQgbGFzdFdlZWsgPSBjLmdldChDYWxlbmRhci5XRUVLX09GX01PTlRIKTsKKyAgICAgICAgCisgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGZ1bGwgb3IgcGFydGlhbCB3ZWVrcyBpbiB0aGlzIG1vbnRoLgorICAgICAgICBudW1XZWVrcyA9IGxhc3RXZWVrIC0gZmlyc3RXZWVrICsgMTsKKworICAgICAgICBkaXJ0eSA9IGZhbHNlOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgWElOU0VUID0gNDsKKyAgICBzdGF0aWMgZmluYWwgaW50IFlJTlNFVCA9IDI7CisKKyAgICAvKgorICAgICAqIENvbnZlcnQgZnJvbSB0aGUgZGF5IG51bWJlciB3aXRoaW4gYSBtb250aCAoMS1iYXNlZCkKKyAgICAgKiB0byB0aGUgY2VsbCBjb29yZGluYXRlcyBvbiB0aGUgY2FsZW5kYXIgKDAtYmFzZWQpCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGRhdGVUb0NlbGwoaW50IGRhdGUsIFBvaW50IHBvcykKKyAgICB7CisgICAgICAgIGludCBjZWxsID0gKGRhdGUgKyBmaXJzdERheUluTW9udGggLSBmaXJzdERheU9mV2VlayAtIG1pbkRheSk7CisgICAgICAgIGlmIChmaXJzdERheUluTW9udGggPCBmaXJzdERheU9mV2VlaykgeworICAgICAgICAgICAgY2VsbCArPSBkYXlzSW5XZWVrOworICAgICAgICB9CisKKyAgICAgICAgcG9zLnggPSBjZWxsICUgZGF5c0luV2VlazsKKyAgICAgICAgcG9zLnkgPSBjZWxsIC8gZGF5c0luV2VlazsKKyAgICB9CisgICAgLy9wcml2YXRlIFBvaW50IGRhdGVUb0NlbGwoaW50IGRhdGUpIHsKKyAgICAvLyAgICBQb2ludCBwID0gbmV3IFBvaW50KDAsMCk7CisgICAgLy8gICAgZGF0ZVRvQ2VsbChkYXRlLCBwKTsKKyAgICAvLyAgICByZXR1cm4gcDsKKyAgICAvL30KKworICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKworICAgICAgICBpZiAoZGlydHkpIHsKKyAgICAgICAgICAgIGNhbGN1bGF0ZSgpOworICAgICAgICB9CisKKyAgICAgICAgUG9pbnQgY2VsbFBvcyA9IG5ldyBQb2ludCgwLDApOyAgICAgLy8gVGVtcG9yYXJ5IHZhcmlhYmxlCisgICAgICAgIERpbWVuc2lvbiBkID0gdGhpcy5nZXRTaXplKCk7CisKKyAgICAgICAgZy5zZXRDb2xvcihDb2xvci5saWdodEdyYXkpOworICAgICAgICBnLmZpbGxSZWN0KDAsMCxkLndpZHRoLGQuaGVpZ2h0KTsKKworICAgICAgICAvLyBEcmF3IHRoZSBkYXkgbmFtZXMgYXQgdGhlIHRvcAorICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgZy5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgIEZvbnRNZXRyaWNzIGZtID0gZy5nZXRGb250TWV0cmljcygpOworICAgICAgICBpbnQgbGFiZWxIZWlnaHQgPSBmbS5nZXRIZWlnaHQoKSArIFlJTlNFVCAqIDI7CisKKyAgICAgICAgaW50IHYgPSBmbS5nZXRBc2NlbnQoKSArIFlJTlNFVDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXlzSW5XZWVrOyBpKyspIHsKKyAgICAgICAgICAgIGludCBkYXlOdW0gPSAoaSArIG1pbkRheSArIGZpcnN0RGF5T2ZXZWVrIC0gMikgJSBkYXlzSW5XZWVrICsgMTsKKyAgICAgICAgICAgIFN0cmluZyBkYXlOYW1lID0gZlN5bWJvbHNbMF0uZ2V0V2Vla2RheXMoKVtkYXlOdW1dOworCisKKyAgICAgICAgICAgIGRvdWJsZSBoOworICAgICAgICAgICAgaWYgKGxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgaCA9IGQud2lkdGgqKGkgKyAwLjUpIC8gZGF5c0luV2VlazsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaCA9IGQud2lkdGgqKGRheXNJbldlZWsgLSBpIC0gMC41KSAvIGRheXNJbldlZWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBoIC09IGZtLnN0cmluZ1dpZHRoKGRheU5hbWUpIC8gMjsKKworICAgICAgICAgICAgZy5kcmF3U3RyaW5nKGRheU5hbWUsIChpbnQpaCwgdik7CisgICAgICAgIH0KKworICAgICAgICBkb3VibGUgY2VsbEhlaWdodCA9IChkLmhlaWdodCAtIGxhYmVsSGVpZ2h0IC0gMSkgLyBudW1XZWVrczsKKyAgICAgICAgZG91YmxlIGNlbGxXaWR0aCA9IChkb3VibGUpKGQud2lkdGggLSAxKSAvIGRheXNJbldlZWs7CisKKyAgICAgICAgLy8gRHJhdyBhIHdoaXRlIGJhY2tncm91bmQgaW4gdGhlIHBhcnQgb2YgdGhlIGNhbGVuZGFyCisgICAgICAgIC8vIHRoYXQgZGlzcGxheXMgdGhpcyBtb250aC4KKyAgICAgICAgLy8gRmlyc3QgZmlndXJlIG91dCBob3cgbXVjaCBvZiB0aGUgZmlyc3Qgd2VlayBzaG91bGQgYmUgc2hhZGVkLgorICAgICAgICB7CisgICAgICAgICAgICBnLnNldENvbG9yKENvbG9yLndoaXRlKTsKKyAgICAgICAgICAgIGRhdGVUb0NlbGwoMSwgY2VsbFBvcyk7CisgICAgICAgICAgICBpbnQgd2lkdGggPSAoaW50KShjZWxsUG9zLngqY2VsbFdpZHRoKTsgIC8vIFdpZHRoIG9mIHVuc2hhZGVkIGFyZWEKKworICAgICAgICAgICAgaWYgKGxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgZy5maWxsUmVjdCgoaW50KSh3aWR0aCksIGxhYmVsSGVpZ2h0ICwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGQud2lkdGggLSB3aWR0aCwgKGludCljZWxsSGVpZ2h0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZy5maWxsUmVjdCgwLCBsYWJlbEhlaWdodCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkLndpZHRoIC0gd2lkdGgsIChpbnQpY2VsbEhlaWdodCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEFsbCBvZiB0aGUgaW50ZXJtZWRpYXRlIHdlZWtzIGdldCBzaGFkZWQgY29tcGxldGVseQorICAgICAgICAgICAgZy5maWxsUmVjdCgwLCAoaW50KShsYWJlbEhlaWdodCArIGNlbGxIZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgZC53aWR0aCwgKGludCkoY2VsbEhlaWdodCAqIChudW1XZWVrcyAtIDIpKSk7CisKKyAgICAgICAgICAgIC8vIE5vdyBmaWd1cmUgb3V0IHRoZSBsYXN0IHdlZWsuCisgICAgICAgICAgICBkYXRlVG9DZWxsKGRheXNJbk1vbnRoLCBjZWxsUG9zKTsKKyAgICAgICAgICAgIHdpZHRoID0gKGludCkoKGNlbGxQb3MueCsxKSpjZWxsV2lkdGgpOyAgLy8gV2lkdGggb2Ygc2hhZGVkIGFyZWEKKworICAgICAgICAgICAgaWYgKGxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgZy5maWxsUmVjdCgwLCAoaW50KShsYWJlbEhlaWdodCArIChudW1XZWVrcy0xKSAqIGNlbGxIZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIChpbnQpY2VsbEhlaWdodCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGcuZmlsbFJlY3QoZC53aWR0aCAtIHdpZHRoLCAoaW50KShsYWJlbEhlaWdodCArIChudW1XZWVrcy0xKSAqIGNlbGxIZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIChpbnQpY2VsbEhlaWdodCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICAvLyBEcmF3IHRoZSBYL1kgZ3JpZCBsaW5lcworICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbnVtV2Vla3M7IGkrKykgeworICAgICAgICAgICAgaW50IHkgPSAoaW50KShsYWJlbEhlaWdodCArIGkgKiBjZWxsSGVpZ2h0KTsKKyAgICAgICAgICAgIGcuZHJhd0xpbmUoMCwgeSwgZC53aWR0aCAtIDEsIHkpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IGRheXNJbldlZWs7IGkrKykgeworICAgICAgICAgICAgaW50IHggPSAoaW50KShpICogY2VsbFdpZHRoKTsKKyAgICAgICAgICAgIGcuZHJhd0xpbmUoeCwgbGFiZWxIZWlnaHQsIHgsIGQuaGVpZ2h0IC0gMSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgbG9vcCB0aHJvdWdoIGFsbCBvZiB0aGUgZGF5cyBpbiB0aGUgbW9udGgsIGZpZ3VyZSBvdXQgd2hlcmUKKyAgICAgICAgLy8gdGhleSBnbyBpbiB0aGUgZ3JpZCwgYW5kIGRyYXcgdGhlIGRheSAjIGZvciBlYWNoIG9uZQorCisgICAgICAgIC8vIEZpZ3VyZSBvdXQgdGhlIGRhdGUgb2YgdGhlIGZpcnN0IGNlbGwgaW4gdGhlIGNhbGVuZGFyIGRpc3BsYXkKKyAgICAgICAgaW50IGNlbGwgPSAoMSArIGZpcnN0RGF5SW5Nb250aCAtIGZpcnN0RGF5T2ZXZWVrIC0gbWluRGF5KTsKKyAgICAgICAgaWYgKGZpcnN0RGF5SW5Nb250aCA8IGZpcnN0RGF5T2ZXZWVrKSB7CisgICAgICAgICAgICBjZWxsICs9IGRheXNJbldlZWs7CisgICAgICAgIH0KKworICAgICAgICBDYWxlbmRhciBjID0gKENhbGVuZGFyKWZDYWxlbmRhclswXS5jbG9uZSgpOworICAgICAgICBjLnNldFRpbWUoZlN0YXJ0T2ZNb250aCk7CisgICAgICAgIGMuYWRkKENhbGVuZGFyLkRBVEUsIC1jZWxsKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIGZvciAoaW50IHJvdyA9IDA7IHJvdyA8IG51bVdlZWtzOyByb3crKykgeworICAgICAgICAgICAgZm9yIChpbnQgY29sID0gMDsgY29sIDwgZGF5c0luV2VlazsgY29sKyspIHsKKworICAgICAgICAgICAgICAgIGcuc2V0Rm9udChEZW1vVXRpbGl0eS5udW1iZXJGb250KTsKKyAgICAgICAgICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgICAgICAgICBmbSA9IGcuZ2V0Rm9udE1ldHJpY3MoKTsKKworICAgICAgICAgICAgICAgIGludCBjZWxseDsKKyAgICAgICAgICAgICAgICBpZiAobGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2VsbHggPSAoaW50KSgoY29sKSAqIGNlbGxXaWR0aCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY2VsbHggPSAoaW50KSgoZGF5c0luV2VlayAtIGNvbCAtIDEpICogY2VsbFdpZHRoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgY2VsbHkgPSAoaW50KShyb3cgKiBjZWxsSGVpZ2h0ICsgbGFiZWxIZWlnaHQpOworCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZkNhbGVuZGFyW2ldLnNldFRpbWUoYy5nZXRUaW1lKCkpOworCisgICAgICAgICAgICAgICAgICAgIGludCBkYXRlID0gZkNhbGVuZGFyW2ldLmdldChDYWxlbmRhci5EQVRFKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChkYXRlKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRheU51bSA9IGJ1ZmZlci50b1N0cmluZygpOworCisgICAgICAgICAgICAgICAgICAgIGludCB4OworCisgICAgICAgICAgICAgICAgICAgIGlmIChsZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgICAgICAgICAgeCA9IGNlbGx4ICsgKGludCljZWxsV2lkdGggLSBYSU5TRVQgLSBmbS5zdHJpbmdXaWR0aChkYXlOdW0pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgeCA9IGNlbGx4ICsgWElOU0VUOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGludCB5ID0gY2VsbHkgKyArIGZtLmdldEFzY2VudCgpICsgWUlOU0VUICsgaSAqIGZtLmdldEhlaWdodCgpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChmQ29sb3JbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZy5zZXRDb2xvcihmQ29sb3JbaV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGcuZHJhd1N0cmluZyhkYXlOdW0sIHgsIHkpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChkYXRlID09IDEgfHwgcm93ID09IDAgJiYgY29sID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGcuc2V0Rm9udChEZW1vVXRpbGl0eS5udW1iZXJGb250KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtb250aCA9IGZTeW1ib2xzW2ldLmdldE1vbnRocygpWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQ2FsZW5kYXJbaV0uZ2V0KENhbGVuZGFyLk1PTlRIKV07CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHggPSBjZWxseCArIFhJTlNFVDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCA9IGNlbGx4ICsgKGludCljZWxsV2lkdGggLSBYSU5TRVQgLSBmbS5zdHJpbmdXaWR0aChtb250aCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBnLmRyYXdTdHJpbmcobW9udGgsIHgsIHkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYy5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBJbXBvcnRhbnQgc3RhdGUgdmFyaWFibGVzCisgICAgcHJpdmF0ZSBDYWxlbmRhcltdICAgICAgICAgIGZDYWxlbmRhciA9IG5ldyBDYWxlbmRhcls0XTsKKyAgICBwcml2YXRlIENvbG9yW10gICAgICAgICAgICAgZkNvbG9yID0gbmV3IENvbG9yWzRdOworCisgICAgcHJpdmF0ZSBMb2NhbGUgICAgICAgICAgICAgIGZEaXNwbGF5TG9jYWxlOworICAgIHByaXZhdGUgRGF0ZUZvcm1hdFN5bWJvbHNbXSBmU3ltYm9scyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9sc1s0XTsKKworICAgIHByaXZhdGUgRGF0ZSAgICAgICAgICAgICAgICBmU3RhcnRPZk1vbnRoID0gbmV3IERhdGUoKTsgICAgIC8vIDAwOjAwOjAwIG9uIGZpcnN0IGRheSBvZiBtb250aAorCisgICAgLy8gQ2FjaGVkIGNhbGN1bGF0aW9ucyB0byBtYWtlIGRyYXdpbmcgZmFzdGVyLgorICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICBtaW5EYXk7ICAgICAgICAgICAvLyBNaW5pbXVtIGxlZ2FsIGRheSAjCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50ICAgICAgIGRheXNJbldlZWs7ICAgICAgIC8vICMgb2YgZGF5cyBpbiBhIHdlZWsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgICAgICAgZmlyc3REYXlPZldlZWs7ICAgLy8gRmlyc3QgZGF5IHRvIGRpc3BsYXkgaW4gd2VlaworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICBudW1XZWVrczsgICAgICAgICAvLyAjIGZ1bGwgb3IgcGFydGlhbCB3ZWVrcyBpbiBtb250aAorICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICBkYXlzSW5Nb250aDsgICAgICAvLyAjIGRheXMgaW4gdGhpcyBtb250aAorICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICBmaXJzdERheUluTW9udGg7ICAvLyBEYXkgb2Ygd2VlayBvZiBmaXJzdCBkYXkgaW4gbW9udGgKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuICAgbGVmdFRvUmlnaHQ7CisKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGRpcnR5ID0gdHJ1ZTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jYWxlbmRhci9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMxYmIxMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2FsZW5kYXIvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK0NhbGVuZGFyIGRlbW8gYXBwbGljYXRpb25zIGluY2x1ZGluZyBkYXRlL3RpbWUgYXJpdGhtZXRpYy4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2hhcnNldGRldC9EZXRlY3RpbmdWaWV3ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9jaGFyc2V0ZGV0L0RldGVjdGluZ1ZpZXdlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2NTYxNjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2hhcnNldGRldC9EZXRlY3RpbmdWaWV3ZXIuamF2YQpAQCAtMCwwICsxLDM3MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmNoYXJzZXRkZXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEubmV0LlVSTDsKKworaW1wb3J0IGphdmF4LnN3aW5nLio7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVURjMyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ2hhcnNldERldGVjdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ2hhcnNldE1hdGNoOworCisvKioKKyAqIFRoaXMgc2ltcGxlIGFwcGxpY2F0aW9uIGRlbW9uc3RyYXRlcyBob3cgdG8gdXNlIHRoZSBDaGFyc2V0RGV0ZWN0b3IgQVBJLiBJdAorICogb3BlbnMgYSBmaWxlIG9yIHdlYiBwYWdlLCBkZXRlY3RzIHRoZSBlbmNvZGluZywgYW5kIHRoZW4gZGlzcGxheXMgaXQgdXNpbmcgdGhhdAorICogZW5jb2RpbmcuCisgKi8KK3B1YmxpYyBjbGFzcyBEZXRlY3RpbmdWaWV3ZXIgZXh0ZW5kcyBKRnJhbWUgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lcgoreworICAgIAorICAgIHByaXZhdGUgSlRleHRQYW5lIHRleHQ7CisgICAgcHJpdmF0ZSBKRmlsZUNob29zZXIgZmlsZUNob29zZXI7CisgICAgCisgICAgLyoqCisgICAgICogQHRocm93cyBqYXZhLmF3dC5IZWFkbGVzc0V4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBEZXRlY3RpbmdWaWV3ZXIoKQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgCisgICAgICAgIGZpbGVDaG9vc2VyID0gbmV3IEpGaWxlQ2hvb3NlcigpOworICAgICAgICAKKyAgICAgICAgc2V0RGVmYXVsdENsb3NlT3BlcmF0aW9uKEpGcmFtZS5FWElUX09OX0NMT1NFKTsKKyAgICAgICAgc2V0U2l6ZSg4MDAsIDgwMCk7CisKKyAgICAgICAgc2V0Sk1lbnVCYXIobWFrZU1lbnVzKCkpOworICAgICAgICB0ZXh0ID0gbmV3IEpUZXh0UGFuZSgpOworICAgICAgICB0ZXh0LnNldENvbnRlbnRUeXBlKCJ0ZXh0L3BsYWluIik7CisgICAgICAgIHRleHQuc2V0VGV4dCgiIik7CisgICAgICAgIHRleHQuc2V0U2l6ZSg4MDAsIDgwMCk7CisgICAgICAgIAorICAgICAgICBGb250IGZvbnQgPSBuZXcgRm9udCgiQXJpYWwgVW5pY29kZSBNUyIsIEZvbnQuUExBSU4sIDI0KTsKKyAgICAgICAgdGV4dC5zZXRGb250KGZvbnQpOworICAgICAgICAKKyAgICAgICAgSlNjcm9sbFBhbmUgc2Nyb2xsUGFuZSA9IG5ldyBKU2Nyb2xsUGFuZSh0ZXh0KTsKKyAgICAgICAgCisgICAgICAgIGdldENvbnRlbnRQYW5lKCkuYWRkKHNjcm9sbFBhbmUpOworICAgICAgICBzZXRWaXNpYmxlKHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldmVudCkKKyAgICB7CisgICAgICAgIFN0cmluZyBjbWQgPSBldmVudC5nZXRBY3Rpb25Db21tYW5kKCk7CisgICAgICAgIAorICAgICAgICBpZiAoY21kLmVxdWFscygiTmV3Li4uIikpIHsKKyAgICAgICAgICAgZG9OZXcoKTsKKyAgICAgICAgfSBlbHNlIGlmIChjbWQuZXF1YWxzKCJPcGVuIEZpbGUuLi4iKSkgeworICAgICAgICAgICBkb09wZW5GaWxlKCk7CisgICAgICAgIH0gZWxzZSBpZiAoY21kLmVxdWFscygiT3BlbiBVUkwuLi4iKSkgeworICAgICAgICAgICAgZG9PcGVuVVJMKCk7CisgICAgICAgIH0gZWxzZSBpZiAoY21kLmVxdWFscygiUXVpdCIpKSB7CisgICAgICAgICAgIGRvUXVpdCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIG5ldyBEZXRlY3RpbmdWaWV3ZXIoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGVycm9yRGlhbG9nKFN0cmluZyB0aXRsZSwgU3RyaW5nIG1zZykKKyAgICB7CisgICAgICAgIEpPcHRpb25QYW5lLnNob3dNZXNzYWdlRGlhbG9nKHRoaXMsIG1zZywgdGl0bGUsIEpPcHRpb25QYW5lLkVSUk9SX01FU1NBR0UpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gb3BlbkZpbGUoRmlsZSBmaWxlKQorICAgIHsKKyAgICAgICAgRmlsZUlucHV0U3RyZWFtIGZpbGVTdHJlYW0gPSBudWxsOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpbGVTdHJlYW0gPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3JEaWFsb2coIkVycm9yIE9wZW5pbmcgRmlsZSIsIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oZmlsZVN0cmVhbSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBvcGVuRmlsZShTdHJpbmcgZGlyZWN0b3J5LCBTdHJpbmcgZmlsZW5hbWUpCisgICAgeworICAgICAgICBvcGVuRmlsZShuZXcgRmlsZShkaXJlY3RvcnksIGZpbGVuYW1lKSk7CisgICAgfQorICAgIAorICAgIAorICAgIHByaXZhdGUgQnVmZmVyZWRJbnB1dFN0cmVhbSBvcGVuVVJMKFN0cmluZyB1cmwpCisgICAgeworICAgICAgICBJbnB1dFN0cmVhbSBzID0gbnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgVVJMIGFVUkwgPSBuZXcgVVJMKHVybCk7CisgICAgICAgICAgICBzID0gYVVSTC5vcGVuU3RyZWFtKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvckRpYWxvZygiRXJyb3IgT3BlbmluZyBVUkwiLCBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKHMpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBlbmNvZGluZ05hbWUoQ2hhcnNldE1hdGNoIG1hdGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1hdGNoLmdldE5hbWUoKSArICIgKCIgKyBtYXRjaC5nZXRMYW5ndWFnZSgpICsgIikiOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0TWF0Y2hNZW51KENoYXJzZXRNYXRjaFtdIG1hdGNoZXMpCisgICAgeworICAgICAgICBKTWVudSBtZW51ID0gZ2V0Sk1lbnVCYXIoKS5nZXRNZW51KDEpOworICAgICAgICBKTWVudUl0ZW0gbWVudUl0ZW07CisgICAgICAgIAorICAgICAgICBtZW51LnJlbW92ZUFsbCgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXRjaGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICBDaGFyc2V0TWF0Y2ggbWF0Y2ggPSBtYXRjaGVzW2ldOworICAgICAgICAgICAgCisgICAgICAgICAgICBtZW51SXRlbSA9IG5ldyBKTWVudUl0ZW0oZW5jb2RpbmdOYW1lKG1hdGNoKSArICIgIiArIG1hdGNoLmdldENvbmZpZGVuY2UoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1lbnUuYWRkKG1lbnVJdGVtKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGJ5dGVbXSBzY3JpcHRUYWcgPSB7KGJ5dGUpICdzJywgKGJ5dGUpICdjJywgKGJ5dGUpICdyJywgKGJ5dGUpICdpJywgKGJ5dGUpICdwJywgKGJ5dGUpICd0J307CisgICAgcHJpdmF0ZSBieXRlW10gc3R5bGVUYWcgID0geyhieXRlKSAncycsIChieXRlKSAndCcsIChieXRlKSAneScsIChieXRlKSAnbCcsIChieXRlKSAnZSd9OworICAgIHByaXZhdGUgc3RhdGljIGludCBCVUZGRVJfU0laRSA9IDEwMDAwMDsKKyAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gb3BlblRhZyhieXRlW10gYnVmZmVyLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBieXRlW10gdGFnKQorICAgIHsKKyAgICAgICAgaW50IHRhZ0xlbiA9IHRhZy5sZW5ndGg7CisgICAgICAgIGludCBidWZSZW0gPSBsZW5ndGggLSBvZmZzZXQ7CisgICAgICAgIGludCBiOworICAgICAgICAKKyAgICAgICAgZm9yIChiID0gMDsgYiA8IHRhZ0xlbiAmJiBiIDwgYnVmUmVtOyBiICs9IDEpIHsKKyAgICAgICAgICAgIGlmIChidWZmZXJbYiArIG9mZnNldF0gIT0gdGFnW2JdKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gYiA9PSB0YWdMZW47CisgICAgfQorICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBjbG9zZWRUYWcoYnl0ZVtdIGJ1ZmZlciwgaW50IG9mZnNldCwgaW50IGxlbmd0aCwgYnl0ZVtdIHRhZykKKyAgICB7CisgICAgICAgIGlmIChidWZmZXJbb2Zmc2V0XSAhPSAoYnl0ZSkgJy8nKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBvcGVuVGFnKGJ1ZmZlciwgb2Zmc2V0ICsgMSwgbGVuZ3RoLCB0YWcpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGJ5dGVbXSBmaWx0ZXIoSW5wdXRTdHJlYW0gaW4pCisgICAgeworICAgICAgICBieXRlW10gYnVmZmVyID0gbmV3IGJ5dGVbQlVGRkVSX1NJWkVdOworICAgICAgICBpbnQgYnl0ZXNSZW1haW5pbmcgPSBCVUZGRVJfU0laRTsKKyAgICAgICAgaW50IGJ1ZkxlbiA9IDA7CisgICAgICAgIAorICAgICAgICBpbi5tYXJrKEJVRkZFUl9TSVpFKTsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB3aGlsZSAoYnl0ZXNSZW1haW5pbmcgPiAwKSB7CisgICAgICAgICAgICAgICAgaW50IGJ5dGVzUmVhZCA9IGluLnJlYWQoYnVmZmVyLCBidWZMZW4sIGJ5dGVzUmVtYWluaW5nKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoYnl0ZXNSZWFkIDw9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGJ1ZkxlbiArPSBieXRlc1JlYWQ7CisgICAgICAgICAgICAgICAgYnl0ZXNSZW1haW5pbmcgLT0gYnl0ZXNSZWFkOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gVE9ETzogZXJyb3IgaGFuZGxpbmc/CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBpblRhZyA9IGZhbHNlOworICAgICAgICBib29sZWFuIHNraXAgID0gZmFsc2U7CisgICAgICAgIGludCBvdXQgPSAwOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBidWZMZW47IGkgKz0gMSkgeworICAgICAgICAgICAgYnl0ZSBiID0gYnVmZmVyW2ldOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoYiA9PSAoYnl0ZSkgJzwnKSB7CisgICAgICAgICAgICAgICAgaW5UYWcgPSB0cnVlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChvcGVuVGFnKGJ1ZmZlciwgaSArIDEsIGJ1Zkxlbiwgc2NyaXB0VGFnKSB8fAorICAgICAgICAgICAgICAgICAgICBvcGVuVGFnKGJ1ZmZlciwgaSArIDEsIGJ1Zkxlbiwgc3R5bGVUYWcpKSB7CisgICAgICAgICAgICAgICAgICAgIHNraXAgPSB0cnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2xvc2VkVGFnKGJ1ZmZlciwgaSArIDEsIGJ1Zkxlbiwgc2NyaXB0VGFnKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VkVGFnKGJ1ZmZlciwgaSArIDEsIGJ1Zkxlbiwgc3R5bGVUYWcpKSB7CisgICAgICAgICAgICAgICAgICAgIHNraXAgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGIgPT0gKGJ5dGUpICc+JykgeworICAgICAgICAgICAgICAgIGluVGFnID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgaWYgKCEgKGluVGFnIHx8IHNraXApKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyW291dCsrXSA9IGI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBieXRlW10gZmlsdGVyZWQgPSBuZXcgYnl0ZVtvdXRdOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsIDAsIGZpbHRlcmVkLCAwLCBvdXQpOworICAgICAgICByZXR1cm4gZmlsdGVyZWQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgQ2hhcnNldE1hdGNoW10gZGV0ZWN0KGJ5dGVbXSBieXRlcykKKyAgICB7CisgICAgICAgIENoYXJzZXREZXRlY3RvciBkZXQgPSBuZXcgQ2hhcnNldERldGVjdG9yKCk7CisgICAgICAgIAorICAgICAgICBkZXQuc2V0VGV4dChieXRlcyk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZGV0LmRldGVjdEFsbCgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIENoYXJzZXRNYXRjaFtdIGRldGVjdChCdWZmZXJlZElucHV0U3RyZWFtIGlucHV0U3RyZWFtKQorICAgIHsKKyAgICAgICAgQ2hhcnNldERldGVjdG9yIGRldCAgICA9IG5ldyBDaGFyc2V0RGV0ZWN0b3IoKTsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkZXQuc2V0VGV4dChpbnB1dFN0cmVhbSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBkZXQuZGV0ZWN0QWxsKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBUT0RPOiBlcnJvciBtZXNzYWdlPworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNob3coSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0sIENoYXJzZXRNYXRjaFtdIG1hdGNoZXMsIFN0cmluZyB0aXRsZSkKKyAgICB7CisgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzcjsKKyAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyWzEwMjRdOworICAgICAgICBpbnQgYnl0ZXNSZWFkID0gMDsKKyAgICAgICAgCisgICAgICAgIGlmIChtYXRjaGVzID09IG51bGwgfHwgbWF0Y2hlcy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgZXJyb3JEaWFsb2coIk1hdGNoIEVycm9yIiwgIk5vIG1hdGNoZXMhIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBTdHJpbmcgZW5jb2RpbmcgPSBtYXRjaGVzWzBdLmdldE5hbWUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW5wdXRTdHJlYW0ucmVzZXQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGVuY29kaW5nLnN0YXJ0c1dpdGgoIlVURi0zMiIpKSB7CisgICAgICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzID0gbmV3IGJ5dGVbMTAyNF07CisgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgICAgICAgICAgICAgaW50IGNoQnl0ZXMgPSAwOworICAgICAgICAgICAgICAgIFVURjMyIHV0ZjMyID0gVVRGMzIuZ2V0SW5zdGFuY2UoZW5jb2RpbmcpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlICgoYnl0ZXNSZWFkID0gaW5wdXRTdHJlYW0ucmVhZChieXRlcywgb2Zmc2V0LCAxMDI0KSkgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXQgID0gYnl0ZXNSZWFkICUgNDsKKyAgICAgICAgICAgICAgICAgICAgY2hCeXRlcyA9IGJ5dGVzUmVhZCAtIG9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHNiLmFwcGVuZCh1dGYzMi5mcm9tQnl0ZXMoYnl0ZXMsIDAsIGNoQnl0ZXMpKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvZmZzZXQ7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzW2ldID0gYnl0ZXNbY2hCeXRlcyArIGldOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpc3IgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaW5wdXRTdHJlYW0sIGVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB3aGlsZSAoKGJ5dGVzUmVhZCA9IGlzci5yZWFkKGJ1ZmZlciwgMCwgMTAyNCkpID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc2IuYXBwZW5kKGJ1ZmZlciwgMCwgYnl0ZXNSZWFkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaXNyLmNsb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRoaXMuc2V0VGl0bGUodGl0bGUgKyAiIC0gIiArIGVuY29kaW5nTmFtZShtYXRjaGVzWzBdKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNldE1hdGNoTWVudShtYXRjaGVzKTsKKyAgICAgICAgICAgIHRleHQuc2V0VGV4dChzYi50b1N0cmluZygpKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3JEaWFsb2coIklPIEVycm9yIiwgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3JEaWFsb2coIkludGVybmFsIEVycm9yIiwgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBkb05ldygpCisgICAgeworICAgICAgICAvLyBvcGVuIGEgbmV3IHdpbmRvdy4uLgorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9PcGVuRmlsZSgpCisgICAgeworICAgICAgICBpbnQgcmV0VmFsID0gZmlsZUNob29zZXIuc2hvd09wZW5EaWFsb2codGhpcyk7CisgICAgICAgIAorICAgICAgICBpZiAocmV0VmFsID09IEpGaWxlQ2hvb3Nlci5BUFBST1ZFX09QVElPTikgeworICAgICAgICAgICAgRmlsZSBmaWxlID0gZmlsZUNob29zZXIuZ2V0U2VsZWN0ZWRGaWxlKCk7CisgICAgICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGlucHV0U3RyZWFtID0gb3BlbkZpbGUoZmlsZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbnB1dFN0cmVhbSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgQ2hhcnNldE1hdGNoW10gbWF0Y2hlcyA9IGRldGVjdChpbnB1dFN0cmVhbSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc2hvdyhpbnB1dFN0cmVhbSwgbWF0Y2hlcywgZmlsZS5nZXROYW1lKCkpOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9PcGVuVVJMKCkKKyAgICB7CisgICAgICAgIFN0cmluZyB1cmwgPSAoU3RyaW5nKSBKT3B0aW9uUGFuZS5zaG93SW5wdXREaWFsb2codGhpcywgIlVSTCB0byBvcGVuOiIsICJPcGVuIFVSTCIsIEpPcHRpb25QYW5lLlBMQUlOX01FU1NBR0UsCisgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCwgbnVsbCk7CisgICAgICAgIAorICAgICAgICBpZiAodXJsICE9IG51bGwgJiYgdXJsLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSA9IG9wZW5VUkwodXJsKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGlucHV0U3RyZWFtICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBieXRlW10gZmlsdGVyZWQgPSBmaWx0ZXIoaW5wdXRTdHJlYW0pOworICAgICAgICAgICAgICAgIENoYXJzZXRNYXRjaFtdIG1hdGNoZXMgPSBkZXRlY3QoZmlsdGVyZWQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNob3coaW5wdXRTdHJlYW0sIG1hdGNoZXMsIHVybCk7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9Cit9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvUXVpdCgpCisgICAgeworICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBKTWVudUJhciBtYWtlTWVudXMoKQorICAgIHsKKyAgICAgICAgSk1lbnUgbWVudSA9IG5ldyBKTWVudSgiRmlsZSIpOworICAgICAgICBKTWVudUl0ZW0gbWk7CisgICAgICAgIAorICAgICAgICBtaSA9IG5ldyBKTWVudUl0ZW0oIk9wZW4gRmlsZS4uLiIpOworICAgICAgICBtaS5zZXRBY2NlbGVyYXRvcigoS2V5U3Ryb2tlLmdldEtleVN0cm9rZShLZXlFdmVudC5WS19PLCBBY3Rpb25FdmVudC5DVFJMX01BU0spKSk7CisgICAgICAgIG1pLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBtZW51LmFkZChtaSk7CisgICAgICAgIAorICAgICAgICBtaSA9IG5ldyBKTWVudUl0ZW0oIk9wZW4gVVJMLi4uIik7CisgICAgICAgIG1pLnNldEFjY2VsZXJhdG9yKChLZXlTdHJva2UuZ2V0S2V5U3Ryb2tlKEtleUV2ZW50LlZLX1UsIEFjdGlvbkV2ZW50LkNUUkxfTUFTSykpKTsKKyAgICAgICAgbWkuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIG1lbnUuYWRkKG1pKTsKKyAgICAgICAgCisgICAgICAgIG1pID0gbmV3IEpNZW51SXRlbSgiUXVpdCIpOworICAgICAgICBtaS5zZXRBY2NlbGVyYXRvcigoS2V5U3Ryb2tlLmdldEtleVN0cm9rZShLZXlFdmVudC5WS19RLCBBY3Rpb25FdmVudC5DVFJMX01BU0spKSk7CisgICAgICAgIG1pLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBtZW51LmFkZChtaSk7CisgICAgICAgIAorICAgICAgICBKTWVudUJhciBtYmFyID0gbmV3IEpNZW51QmFyKCk7CisgICAgICAgIG1iYXIuYWRkKG1lbnUpOworICAgICAgICAKKyAgICAgICAgbWVudSA9IG5ldyBKTWVudSgiRGV0ZWN0ZWQgRW5jb2RpbmdzIik7CisgICAgICAgIG1iYXIuYWRkKG1lbnUpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG1iYXI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJ0L1VuaWNvZGVDaGFydC5jc3MgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2hhcnQvVW5pY29kZUNoYXJ0LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjA1MTZlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJ0L1VuaWNvZGVDaGFydC5jc3MKQEAgLTAsMCArMSwyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uCisgKiBhbmQgb3RoZXJzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqLworCit0aAl7IGZvbnQtc2l6ZTogNjAlOyB0ZXh0LWFsaWduOiBDZW50ZXI7CisJICB3aWR0aDogMC4zOSU7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisJICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgbWFyZ2luOiAwOyBwYWRkaW5nOiAxcHggfQordGQJeyBmb250LXNpemU6IDYwJTsgdGV4dC1hbGlnbjogQ2VudGVyOworCSAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzk5OTlGRjsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5OTk5RkY7IG1hcmdpbjogMDsgcGFkZGluZzogMXB4IH0KK3RhYmxlCXsgYm9yZGVyLXNwYWNpbmc6IDA7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CisJICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwIH0KKy5kCXsgYm9yZGVyLXRvcDogMnB4IGRvdWJsZSBibHVlIH0KKy51CXsgYmFja2dyb3VuZC1jb2xvcjogI0RERERERCB9CisuZHUJeyBiYWNrZ3JvdW5kLWNvbG9yOiAjREREREREOyBib3JkZXItdG9wOiAycHggZG91YmxlIGJsdWUgfQorLm4JeyBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjayB9CisuZG4JeyBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgYm9yZGVyLXRvcDogMnB4IGRvdWJsZSBibHVlIH0KKy5pCXsgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93IH0KKy5kaQl7IGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsgYm9yZGVyLXRvcDogMnB4IGRvdWJsZSBibHVlIH0KK3AJeyBmb250LXNpemU6IDUwJTsgdGV4dC1hbGlnbjogUmlnaHQgfQorLmxlZnQJeyBmb250LXNpemU6IDc1JTsgdGV4dC1hbGlnbjogTGVmdCB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJ0L1VuaWNvZGVDaGFydC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJ0L1VuaWNvZGVDaGFydC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZGU4MWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2hhcnQvVW5pY29kZUNoYXJ0LmphdmEKQEAgLTAsMCArMSwxNjQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8uY2hhcnQ7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworCitwdWJsaWMgY2xhc3MgVW5pY29kZUNoYXJ0IHsKKyAgICBzdGF0aWMgaW50IHN1cnJvZ2F0ZVR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoJ1x1ZDgwMCcpOworICAgIHN0YXRpYyBpbnQgcHJpdmF0ZVVzZVR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoJ1x1ZTAwMCcpOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgLy9pbnQgcm93V2lkdGggPSAyNTY7CisgICAgCVZlcnNpb25JbmZvIHZpID0gVUNoYXJhY3Rlci5nZXRVbmljb2RlVmVyc2lvbigpOworICAgIAlTdHJpbmcgdmVyc2lvbiA9IHZpLmdldE1ham9yKCkgKyAiLiIgKyB2aS5nZXRNaW5vcigpICsgIi4iICsgdmkuZ2V0TWlsbGkoKTsKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBCYWdGb3JtYXR0ZXIub3BlblVURjhXcml0ZXIoIkM6XFxEQVRBXFxHRU5cXCIsICJVbmljb2RlQ2hhcnQuaHRtbCIpOworICAgICAgICBwdy5wcmludGxuKCI8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCc+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J1VuaWNvZGVDaGFydC5qcyc+PC9zY3JpcHQ+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgdHlwZT0ndGV4dC9jc3MnIGhyZWY9J1VuaWNvZGVDaGFydC5jc3MnPiIpOworICAgICAgICBwdy5wcmludGxuKCI8dGl0bGU+VW5pY29kZSAiICsgdmVyc2lvbiArICIgQ2hhcnQ8L3RpdGxlPiIpOworICAgICAgICBwdy5wcmludGxuKCI8L2hlYWQ+PGJvZHkgYmdjb2xvcj0nI0ZGRkZGRic+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0YWJsZSBib3JkZXI9JzEnIGNlbGxzcGFjaW5nPScwJz48Y2FwdGlvbj48aDE+VW5pY29kZSAiICsgdmVyc2lvbiArICIgQ2hhcnQ8L2gxPjwvY2FwdGlvbj4iKTsKKworICAgICAgICAvKnB3LnByaW50bG4oIjx0cj48dGg+PC90aD4iKTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCByb3dXaWR0aDsgKytqKSB7CisgICAgICAgICAgICBwdy5wcmludCgiPHRoPiIgKyBoZXgoaiwyKSArICI8L3RoPiIpOworICAgICAgICB9CisgICAgICAgIHB3LnByaW50bG4oIjwvdHI+Iik7CisgICAgICAgICovCisgICAgICAgIC8vIFRPRE86IGZpeCBVdGlsaXR5IHRvIHRha2UgaW50cworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIvL1N1cnJvZ2F0ZSBUeXBlOiBKYXZhPSIgKyBDaGFyYWN0ZXIuU1VSUk9HQVRFICsgIiwgSUNVPSIgKyBzdXJyb2dhdGVUeXBlKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIvL1ByaXZhdGUtVXNlIFR5cGU6IEphdmE9IiArIENoYXJhY3Rlci5QUklWQVRFX1VTRSArICIsIElDVT0iICsgcHJpdmF0ZVVzZVR5cGUpOworICAgICAgICAKKyAgICAgICAgLy9ib29sZWFuIGdvdE9uZSA9IHRydWU7CisgICAgICAgIGludCBjb2x1bW5zID0gMDsKKyAgICAgICAgaW50IGxpbWl0ID0gMHgxMTAwMDAvMTY7CisgICAgICAgIGNoYXIgbGFzdFR5cGUgPSAneCc7CisgICAgICAgIGludCBsYXN0Q291bnQgPSAwOworICAgICAgICBwdy5wcmludGxuKCI8c2NyaXB0PiIpOworICAgICAgICBwdy5wcmludCgidG9wKCk7Iik7CisgICAgICAgIGludCBpdGVtQ291bnQgPSAxOworICAgICAgICAvLyBhbiBhcnJheSB0aGF0IG1hcHMgU3RyaW5nIChjb250YWluaW5nIGNvbHVtbiBpbmZvcm1hdGlvbikgdG8gVW5pY29kZVNldCAoY29udGFpbmluZyBjb2x1bW4gbnVtYmVycykKKyAgICAgICAgTWFwIGluZm9fbnVtYmVyID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgTGlzdCBudW1iZXJfaW5mbyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgbGFzdEluZm8gPSAtMTsKKyAgICAgICAgaW50IHNhbWVDb3VudCA9IDA7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigidmFyIGNoYXJSYW5nZXMgPSBbIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGltaXQ7ICsraSkgeworICAgICAgICAJLy8gZ2V0IHRoZSBzdHJpbmcgb2YgaW5mbywgYW5kIGdldCBpdHMgbnVtYmVyCisgICAgICAgICAgICBzYi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDE2OyArK2opIHsKKyAgICAgICAgICAgIAlpbnQgY3AgPSBpKjE2K2o7CisgICAgICAgICAgICAJY2hhciB0eXBlID0gZ2V0VHlwZShjcCk7CisgICAgICAgICAgICAJc2IuYXBwZW5kKHR5cGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIGluZm8gPSBzYi50b1N0cmluZygpOworICAgICAgICAgICAgSW50ZWdlciBzID0gKEludGVnZXIpIGluZm9fbnVtYmVyLmdldChpbmZvKTsKKyAgICAgICAgICAgIGlmIChzID09IG51bGwpIHsKKyAgICAgICAgICAgIAlpbmZvX251bWJlci5wdXQoaW5mbywgcz1uZXcgSW50ZWdlcihudW1iZXJfaW5mby5zaXplKCkpKTsKKyAgICAgICAgICAgIAludW1iZXJfaW5mby5hZGQoaW5mbyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHdyaXRlIGEgbGluZSB3aGVuZXZlciB0aGUgdmFsdWUgY2hhbmdlcworICAgICAgICAgICAgaWYgKGxhc3RJbmZvID09IHMuaW50VmFsdWUoKSkgeworICAgICAgICAgICAgCXNhbWVDb3VudCsrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIAlpZiAobGFzdEluZm8gIT0gLTEpIFN5c3RlbS5vdXQucHJpbnRsbihzYW1lQ291bnQgKyAiLCIgKyBsYXN0SW5mbyArICIsIik7CisgICAgICAgICAgICAJc2FtZUNvdW50ID0gMTsKKyAgICAgICAgICAgIAlsYXN0SW5mbyA9IHMuaW50VmFsdWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyB3cml0ZSBsYXN0IGxpbmUKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHNhbWVDb3VudCArICIsIiArIGxhc3RJbmZvKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJdOyIpOworICAgICAgIAorICAgICAgICAvLyBub3cgd3JpdGUgb3V0IGFycmF5CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIFVuaWNvZGVNYXAgdW0gPSBuZXcgVW5pY29kZU1hcCgpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInZhciBjaGFySW5mbyA9IFsiKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IG51bWJlcl9pbmZvLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgCVN0cmluZyBpbmZvID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAJU3lzdGVtLm91dC5wcmludGxuKCInIiArIGluZm8gKyAiJywiKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIl07Iik7CisgICAgICAgIAorICAgICAgICAvLyB3cml0ZSBvdXQgYmxvY2tzCisgICAgICAgIE1hcCBibG9ja01hcCA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIGludCBzdGFydFZhbHVlID0gLTE7CisgICAgICAgIGludCBsYXN0RW51bSA9IC0xOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAweDEwRkZGRjsgKytpKSB7CisgICAgICAgIAlpbnQgcHJvcCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShpLFVQcm9wZXJ0eS5CTE9DSyk7CisgICAgICAgIAlpZiAocHJvcCA9PSBsYXN0RW51bSkgY29udGludWU7CisgICAgICAgIAlpZiAobGFzdEVudW0gIT0gLTEpIHsKKyAgICAgICAgCQlTdHJpbmcgcyA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUoVVByb3BlcnR5LkJMT0NLLCBsYXN0RW51bSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyk7CisgICAgICAgIAkJYmxvY2tNYXAucHV0KHMsIGhleChzdGFydFZhbHVlLDApICsgIi8iICsgaGV4KGkgLSBzdGFydFZhbHVlLDApKTsKKyAgICAgICAgCQlTeXN0ZW0ub3V0LnByaW50bG4ocyArICI6ICIgKyBibG9ja01hcC5nZXQocykpOworICAgICAgICAJfQorICAgICAgICAJbGFzdEVudW0gPSBwcm9wOworICAgICAgICAJc3RhcnRWYWx1ZSA9IGk7CisgICAgICAgIH0KKwkJU3RyaW5nIHMgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVOYW1lKFVQcm9wZXJ0eS5CTE9DSywgbGFzdEVudW0sIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcpOworCQlibG9ja01hcC5wdXQocywgaGV4KHN0YXJ0VmFsdWUsMCkgKyAiLyIgKyBoZXgoMHgxMTAwMDAgLSBzdGFydFZhbHVlLDApKTsKKwkJYmxvY2tNYXAucmVtb3ZlKCJOb19CbG9jayIpOworCQlmb3IgKEl0ZXJhdG9yIGl0ID0gYmxvY2tNYXAua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJU3RyaW5nIGJsb2NrTmFtZSA9IChTdHJpbmcpaXQubmV4dCgpOworCQkJU3RyaW5nIHZhbCA9IChTdHJpbmcpIGJsb2NrTWFwLmdldChibG9ja05hbWUpOworCQkJU3lzdGVtLm91dC5wcmludGxuKCI8b3B0aW9uIHZhbHVlPSciICsgdmFsICsgIic+IiArIGJsb2NrTmFtZSArICI8L29wdGlvbj4iKTsKKwkJfQorICAgICAgICAKKyAgICAgICAgLy8gICAgICA8b3B0aW9uIHZhbHVlPSI0REMwIj5ZaWppbmcgSGV4YWdyYW0gU3ltYm9sczwvb3B0aW9uPgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIHB3LnByaW50bG4oIjwvc2NyaXB0PjwvdHI+PC90YWJsZT48cD48L3A+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0YWJsZT48Y2FwdGlvbj5LZXk8L2NhcHRpb24+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0cj48dGQ+WDwvdGQ+PHRkIGNsYXNzPSdsZWZ0Jz5HcmFwaGljIGNoYXJhY3RlcnM8L3RkPjwvdHI+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0cj48dGQ+XHUwMEEwPC90ZD48dGQgY2xhc3M9J2xlZnQnPldoaXRlc3BhY2U8L3RkPjwvdHI+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0cj48dGQgY2xhc3M9J2knPlx1MDBBMDwvdGQ+PHRkIGNsYXNzPSdsZWZ0Jz5PdGhlciBEZWZhdWx0IElnbm9yYWJsZTwvdGQ+PC90cj4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiPHRyPjx0ZCBjbGFzcz0ndSc+XHUwMEEwPC90ZD48dGQgY2xhc3M9J2xlZnQnPlVuZGVmaW5lZCwgUHJpdmF0ZSBVc2UsIG9yIFN1cnJvZ2F0ZXM8L3RkPjwvdHI+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0cj48dGQgY2xhc3M9J24nPlx1MDBBMDwvdGQ+PHRkIGNsYXNzPSdsZWZ0Jz5Ob25jaGFyYWN0ZXI8L3RkPjwvdHI+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjwvdGFibGU+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjxwPkNvcHlyaWdodCBcdTAwQTkgMjAwMywgTWFyayBEYXZpcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC48L2JvZHk+PC9odG1sPiIpOworICAgICAgICBwdy5jbG9zZSgpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIi8vY29sdW1uczogIiArIGNvbHVtbnMpOworICAgIH0KKworCXByaXZhdGUgc3RhdGljIGNoYXIgZ2V0VHlwZShpbnQgaSkgeworCQljaGFyIHR5cGUgPSAndic7CisJCWludCBjYXQgPSBVQ2hhcmFjdGVyLmdldFR5cGUoaSk7CisJCWlmIChVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KGksIFVQcm9wZXJ0eS5OT05DSEFSQUNURVJfQ09ERV9QT0lOVCkpIHsKKwkJICAgIHR5cGUgPSAnbic7CisJCX0gZWxzZSBpZiAoY2F0ID09IENoYXJhY3Rlci5VTkFTU0lHTkVEIHx8IGNhdCA9PSBzdXJyb2dhdGVUeXBlIHx8IGNhdCA9PSBwcml2YXRlVXNlVHlwZSkgeworCQkgICAgdHlwZSA9ICd1JzsKKwkJfSBlbHNlIGlmIChVQ2hhcmFjdGVyLmlzVVdoaXRlU3BhY2UoaSkpIHsKKwkJICAgIHR5cGUgPSAndyc7CisJCX0gZWxzZSBpZiAoVUNoYXJhY3Rlci5oYXNCaW5hcnlQcm9wZXJ0eShpLCBVUHJvcGVydHkuREVGQVVMVF9JR05PUkFCTEVfQ09ERV9QT0lOVCkpIHsKKwkJICAgIHR5cGUgPSAnaSc7CisJCX0gZWxzZSB7CisJCSAgICB0eXBlID0gJ3YnOworCQl9CisJCXJldHVybiB0eXBlOworCX0KKyAgICAKKyAgICBzdGF0aWMgU3RyaW5nIGhleChpbnQgaSwgaW50IHBhZFRvKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpLnRvVXBwZXJDYXNlKGphdmEudXRpbC5Mb2NhbGUuRU5HTElTSCk7CisgICAgICAgIHdoaWxlIChyZXN1bHQubGVuZ3RoKCkgPCBwYWRUbykgcmVzdWx0ID0gIjAiICsgcmVzdWx0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vY2hhcnQvVW5pY29kZUNoYXJ0LmpzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJ0L1VuaWNvZGVDaGFydC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjg1MjJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2NoYXJ0L1VuaWNvZGVDaGFydC5qcwpAQCAtMCwwICsxLDkzIEBACisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisvLyBDb3B5cmlnaHQgKEMpIDE5OTctMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKy8vIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKwordmFyIGNvbHVtbkJpdHMgPSA4OwkvLyA4CisKK3ZhciBjb2x1bW5Db3VudCA9IE1hdGgucG93KDIsY29sdW1uQml0cyk7Cit2YXIgY29sdW1uTWFzayA9IGNvbHVtbkNvdW50LTE7Cit2YXIgY29sdW1uU2hpZnQgPSBNYXRoLmZsb29yKGNvbHVtbkJpdHMvNCk7Cit2YXIgY29sdW1uR2FwID0gcmVwZWF0KCdfJywgY29sdW1uU2hpZnQpOwordmFyIGNvbHVtblBhZCA9IDQtY29sdW1uU2hpZnQ7CisKK3ZhciBnb3RMYXN0ID0gdHJ1ZTsKK3ZhciBjdXJyZW50ID0gMDsKK3ZhciBoYXZlRmlyc3QgPSBmYWxzZTsKKworZnVuY3Rpb24gdG9wKGNvdW50KSB7CisgIGRvY3VtZW50LndyaXRlbG4oIjx0aD48L3RoPiIpOworICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbHVtbkNvdW50OyArK2kpIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCI8dGg+IiwgaGV4KGksMiksICI8L3RoPiIpOworICB9Cit9CisKK2Z1bmN0aW9uIHdyaXRlQ2VsbChjZWxsY2xhc3MsIHZhbHVlKSB7CisgaWYgKCFnb3RMYXN0KSBjZWxsY2xhc3MgPSAnZCcgKyBjZWxsY2xhc3M7CisgaWYgKHZhbHVlKSB7CisgICB2YWx1ZSA9IGN1cnJlbnQgPD0gMHhGRkZGIAorICAgCQk/IFN0cmluZy5mcm9tQ2hhckNvZGUoY3VycmVudCkgCisgICAJCTogU3RyaW5nLmZyb21DaGFyQ29kZSgweEQ4MDAgKyAoY3VycmVudCA+PiAxMCksIDB4REMwMCArIChjdXJyZW50ICYgMHgzRkYpKTsKKyB9IGVsc2UgeworICAgdmFsdWUgPSAnXHUwMEEwJworIH0KKyBpZiAoY2VsbGNsYXNzIT0iIikgY2VsbGNsYXNzID0gIiBjbGFzcz0nIiArIGNlbGxjbGFzcyArICInIjsKKyBkb2N1bWVudC53cml0ZWxuKCI8dGQiLCBjZWxsY2xhc3MsICI+IiwgdmFsdWUsICI8L3RkPiIpOworICsrY3VycmVudDsKK30KKworZnVuY3Rpb24gd3JpdGVDZWxscyhjb3VudCxjZWxsY2xhc3MsdmFsdWUpIHsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgaWYgKChjdXJyZW50ICYgY29sdW1uTWFzaykgPT0gMCkgeworICAgICAgaWYgKGNlbGxjbGFzcyE9J3UnIHx8IGNvdW50IC0gaSA8IGNvbHVtbkNvdW50KSB7CisgICAJZ290TGFzdCA9IHRydWUKKyAgICAgIH0gZWxzZSB7CisgICAJZ290TGFzdCA9IGZhbHNlOworICAgICAgICB2YXIgcmVtID0gKGNvdW50IC0gaSkgJiB+Y29sdW1uTWFzazsKKyAgIAljdXJyZW50ICs9IHJlbTsKKyAgICAgICAgaSArPSByZW07CisgICAgICAgIGlmIChpID09IGNvdW50KSBicmVhazsKKyAgICAgIH0KKyAgICAgIG5ld1JvdygpOworICAgIH0KKyAgICB3cml0ZUNlbGwoY2VsbGNsYXNzLHZhbHVlKTsKKyAgfQorfQorCitmdW5jdGlvbiBuZXdSb3coKSB7CisgICBpZiAoaGF2ZUZpcnN0KSBkb2N1bWVudC53cml0ZSgiPC90cj4iKTsKKyAgIGVsc2UgaGF2ZUZpcnN0ID0gdHJ1ZTsKKyAgIHZhciBoY2xhc3MgPSAoZ290TGFzdCkgPyAiIiA6ICIgY2xhc3M9J2QnIjsKKyAgIGRvY3VtZW50LndyaXRlbG4oIjx0cj48dGgiLCBoY2xhc3MsICI+IiwgaGV4KGN1cnJlbnQ+Pihjb2x1bW5TaGlmdCo0KSxjb2x1bW5QYWQpLCBjb2x1bW5HYXAsICI8L3RoPiIpOworfQorCisvLyBVdGlsaXRpZXMKKworZnVuY3Rpb24gaGV4KHZhbHVlLCBwYWQpIHsKKyAgdmFyIHJlc3VsdCA9IHZhbHVlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpOworICB3aGlsZSAocmVzdWx0Lmxlbmd0aCA8IHBhZCkgcmVzdWx0ID0gJzAnICsgcmVzdWx0OworICByZXR1cm4gcmVzdWx0OworfQorCitmdW5jdGlvbiByZXBlYXQoc3RyLCBjb3VudCkgeworIHZhciByZXN1bHQgPSAiIjsKKyBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyArK2kpIHJlc3VsdCArPSBzdHI7CisgcmV0dXJuIHJlc3VsdDsKK30KKworLy8gdXNlZCBpbiB0aGUgYm9keS4gc2luZ2xlIGxldHRlcnMgdG8gc2F2ZSBieXRlcy4KK2Z1bmN0aW9uIHUoY291bnQpIHsgLy8gdW5kZWZpbmVkLCBwcml2YXRlIHVzZSwgb3Igc3Vycm9nYXRlcworCXdyaXRlQ2VsbHMoY291bnQsJ3UnLGZhbHNlKTsKK30KK2Z1bmN0aW9uIG4oY291bnQpIHsgLy8gbm9uY2hhcmFjdGVyCisJd3JpdGVDZWxscyhjb3VudCwnbicsZmFsc2UpOworfQorZnVuY3Rpb24gaShjb3VudCkgeyAvLyBpZ25vcmFibGUKKwl3cml0ZUNlbGxzKGNvdW50LCdpJyxmYWxzZSk7Cit9CitmdW5jdGlvbiB3KGNvdW50KSB7IC8vIHdoaXRlc3BhY2UKKwl3cml0ZUNlbGxzKGNvdW50LCcnLGZhbHNlKTsKK30KK2Z1bmN0aW9uIHYoY291bnQpIHsgLy8gbm9ybWFsIHZpc2libGUgZ3JhcGhpYworCXdyaXRlQ2VsbHMoY291bnQsJycsdHJ1ZSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9Ib2xpZGF5Qm9yZGVyUGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9ob2xpZGF5L0hvbGlkYXlCb3JkZXJQYW5lbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZmMDc1NTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9Ib2xpZGF5Qm9yZGVyUGFuZWwuamF2YQpAQCAtMCwwICsxLDU0NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8uaG9saWRheTsKKworaW1wb3J0IGphdmEuYXd0Lio7CisKKy8qKgorICogVmFyaW91cyBncmFwaGljYWwgYm9yZGVycy4gVGhlIGJvcmRlciBpdHNlbGYgaXMgYSBQYW5lbCBzbyB0aGF0IGl0IGNhbgorICogY29udGFpbiBvdGhlciBDb21wb25lbnRzIChpLmUuIGl0IGJvcmRlcnMgc29tZXRoaW5nKS4gWW91IHVzZSB0aGUKKyAqIEhvbGlkYXlCb3JkZXJQYW5lbCBsaWtlIGFueSBvdGhlciBQYW5lbDogeW91IHNldCB0aGUgbGF5b3V0IHRoYXQgeW91IHByZWZlciBhbmQKKyAqIGFkZCBDb21wb25lbnRzIHRvIGl0LiBCZXdhcmUgdGhhdCBhIG51bGwgbGF5b3V0IGRvZXMgbm90IG9iZXkgdGhlIGluc2V0cworICogb2YgdGhlIHBhbmVsIHNvIGlmIHlvdSB1c2UgbnVsbCBsYXlvdXRzLCBhZGp1c3QgeW91ciBtZWFzdXJlbWVudHMgdG8KKyAqIGhhbmRsZSB0aGUgYm9yZGVyIGJ5IGNhbGxpbmcgaW5zZXRzKCkuCisgKgorICogQGF1dGhvciAgQW5keSBDbGFyaywgVGFsaWdlbnQgSW5jLgorICogQHZlcnNpb24gMS4wCisgKi8KK3B1YmxpYyBjbGFzcyBIb2xpZGF5Qm9yZGVyUGFuZWwgZXh0ZW5kcyBQYW5lbCB7CisgICAgLy8gQ29uc3RhbnRzCisKKyAgICAvKiogU29saWQgYm9yZGVyLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNPTElEID0gMDsKKyAgICAvKiogQSByYWlzZWQgYm9yZGVyLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFJBSVNFRCA9IDE7CisgICAgLyoqIEEgbG93ZXJlZCBib3JkZXIuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTE9XRVJFRCA9IDI7CisgICAgLyoqIEFuIGV0Y2hlZCBpbiBib3JkZXIuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSU4gPSAzOworICAgIC8qKiBBbiBldGNoZWQgb3V0IGJvcmRlci4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBPVVQgPSA0OworCisgICAgLyoqIExlZnQgYWxpZ25tZW50LiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExFRlQgPSAwOworICAgIC8qKiBDZW50ZXIgYWxpZ25tZW50LiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IENFTlRFUiA9IDE7CisgICAgLyoqIFJpZ2h0IGFsaWdubWVudC4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBSSUdIVCA9IDI7CisKKyAgICAvKiogRGVmYXVsdCBzdHlsZSAoSU4pLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFRkFVTFRfU1RZTEUgPSBJTjsKKyAgICAvKiogRGVmYXVsdCB0aGlja25lc3MgKDEwKS4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUZBVUxUX1RISUNLTkVTUyA9IDEwOworICAgIC8qKiBEZWZhdWx0IHRoaWNrbmVzcyBmb3Igc29saWQgYm9yZGVycyAoNCkuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVGQVVMVF9TT0xJRF9USElDS05FU1MgPSA0OworICAgIC8qKiBEZWZhdWx0IHRoaWNrbmVzcyBmb3IgcmFpc2VkIGJvcmRlcnMgKDIpLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFRkFVTFRfUkFJU0VEX1RISUNLTkVTUyA9IDI7CisgICAgLyoqIERlZmF1bHQgdGhpY2tuZXNzIGZvciBsb3dlcmVkIGJvcmRlcnMgKDIpLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFRkFVTFRfTE9XRVJFRF9USElDS05FU1MgPSAyOworICAgIC8qKiBEZWZhdWx0IHRoaWNrbmVzcyBmb3IgZXRjaGVkLWluIGJvcmRlcnMgKDEwKS4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUZBVUxUX0lOX1RISUNLTkVTUyA9IDEwOworICAgIC8qKiBEZWZhdWx0IHRoaWNrbmVzcyBmb3IgZXRjaGVkLW91dCBib3JkZXJzICgxMCkuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVGQVVMVF9PVVRfVEhJQ0tORVNTID0gMTA7CisgICAgLyoqIERlZmF1bHQgZ2FwIGJldHdlZW4gYm9yZGVyIGFuZCBjb250YWluZWQgY29tcG9uZW50ICg1KS4gKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBERUZBVUxUX0dBUCA9IDU7CisgICAgLyoqIERlZmF1bHQgY29sb3IgKGJsYWNrKS4gQXBwbGllcyB0byBTT0xJRCBhbmQgZXRjaGVkIGJvcmRlcnMuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBDb2xvciBERUZBVUxUX0NPTE9SID0gQ29sb3IuYmxhY2s7CisKKyAgICAvKiogRGVmYXVsdCBmb250IChUaW1lc1JvbWFuLFBMQUlOLDE0KS4gT25seSBhcHBsaWVzIHRvIGV0Y2hlZCBib3JkZXJzLiAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRm9udCBERUZBVUxUX0ZPTlQgPSBuZXcgRm9udCgiVGltZXNSb21hbiIsIEZvbnQuUExBSU4sIDE0KTsKKyAgICAvKiogRGVmYXVsdCBhbGlnbm1lbnQgKExFRlQpLiBPbmx5IGFwcGxpZXMgdG8gZXRjaGVkIGJvcmRlcnMuICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVGQVVMVF9BTElHTk1FTlQgPSBMRUZUOworCisgICAgLy8gRGF0YQorICAgIHByaXZhdGUgaW50IHN0eWxlOworICAgIHByaXZhdGUgaW50IHRoaWNrbmVzczsKKyAgICBwcml2YXRlIGludCBnYXA7CisgICAgcHJpdmF0ZSBDb2xvciBjb2xvcjsKKworICAgIHByaXZhdGUgRm9udCBmb250OworICAgIHByaXZhdGUgU3RyaW5nIHRleHQ7CisgICAgcHJpdmF0ZSBpbnQgYWxpZ25tZW50OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuIE1ha2VzIGRlZmF1bHQgYm9yZGVyLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwoKSB7CisKKyAgICAgICAgLy8gaW5pdGlhbGl6ZSBkYXRhCisgICAgICAgIHN0eWxlICAgICAgID0gREVGQVVMVF9TVFlMRTsKKyAgICAgICAgdGhpY2tuZXNzICAgPSBERUZBVUxUX1RISUNLTkVTUzsKKyAgICAgICAgZ2FwICAgICAgICAgPSBERUZBVUxUX0dBUDsKKyAgICAgICAgY29sb3IgICAgICAgPSBERUZBVUxUX0NPTE9SOworCisgICAgICAgIHRleHQgICAgICAgID0gbnVsbDsKKyAgICAgICAgZm9udCAgICAgICAgPSBERUZBVUxUX0ZPTlQ7CisgICAgICAgIGFsaWdubWVudCAgID0gREVGQVVMVF9BTElHTk1FTlQ7CisKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuIE1ha2VzIGFuIGV0Y2hlZCBJTiBib3JkZXIgd2l0aCBnaXZlbiB0ZXh0IGNhcHRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCAgVGV4dCBjYXB0aW9uCisgICAgICovCisgICAgcHVibGljIEhvbGlkYXlCb3JkZXJQYW5lbChTdHJpbmcgdGV4dCkgeworICAgICAgICB0aGlzKCk7CisKKyAgICAgICAgc3R5bGUgPSBJTjsKKyAgICAgICAgdGhpcy50ZXh0ID0gdGV4dDsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuIE1ha2VzIFNPTElEIGJvcmRlciB3aXRoIGNvbG9yIGFuZCB0aGlja25lc3MgZ2l2ZW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29sb3IgICAgIFRoZSBjb2xvciBmb3IgdGhlIGJvcmRlci4KKyAgICAgKiBAcGFyYW0gdGhpY2tuZXNzIFRoZSB0aGlja25lc3Mgb2YgdGhlIGJvcmRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsKENvbG9yIGNvbG9yLCBpbnQgdGhpY2tuZXNzKSB7CisgICAgICAgIHRoaXMoKTsKKworICAgICAgICBzdHlsZSA9IFNPTElEOworICAgICAgICB0aGlzLmNvbG9yID0gY29sb3I7CisgICAgICAgIHRoaXMudGhpY2tuZXNzID0gdGhpY2tuZXNzOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4gTWFrZXMgYSBib3JkZXIgb2YgdGhlIGdpdmVuIHN0eWxlIHdpdGggdGhlIGRlZmF1bHQKKyAgICAgKiB0aGlja25lc3MgZm9yIHRoYXQgc3R5bGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3R5bGUgVGhlIHN0eWxlIGZvciB0aGlzIGJvcmRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsKGludCBzdHlsZSkgeworICAgICAgICB0aGlzKCk7CisKKyAgICAgICAgLy8gc2V0IHRoaWNrbmVzcyBhcHByb3ByaWF0ZSB0byB0aGlzIHN0eWxlCisgICAgICAgIGludCB0aGlja25lc3M7CisgICAgICAgIHN3aXRjaCAoc3R5bGUpIHsKKyAgICAgICAgICAgIGNhc2UgU09MSUQ6IHRoaWNrbmVzcyA9IERFRkFVTFRfU09MSURfVEhJQ0tORVNTOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkFJU0VEOiB0aGlja25lc3MgPSBERUZBVUxUX1JBSVNFRF9USElDS05FU1M7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBMT1dFUkVEOiB0aGlja25lc3MgPSBERUZBVUxUX0xPV0VSRURfVEhJQ0tORVNTOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSU46IHRoaWNrbmVzcyA9IERFRkFVTFRfSU5fVEhJQ0tORVNTOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgT1VUOiB0aGlja25lc3MgPSBERUZBVUxUX09VVF9USElDS05FU1M7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aGlja25lc3MgPSBERUZBVUxUX1RISUNLTkVTUzsKKyAgICAgICAgICAgIH0KKworICAgICAgICB0aGlzLnN0eWxlID0gc3R5bGU7CisgICAgICAgIHRoaXMudGhpY2tuZXNzID0gdGhpY2tuZXNzOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4gTWFrZXMgYm9yZGVyIHdpdGggZ2l2ZW4gc3R5bGUgYW5kIHRoaWNrbmVzcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdHlsZSAgICAgVGhlIHN0eWxlIGZvciB0aGlzIGJvcmRlci4KKyAgICAgKiBAcGFyYW0gdGhpY2tuZXNzIFRoZSB0aGlja25lc3MgZm9yIHRoaXMgYm9yZGVyLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwoaW50IHN0eWxlLCBpbnQgdGhpY2tuZXNzKSB7CisgICAgICAgIHRoaXMoKTsKKworICAgICAgICB0aGlzLnN0eWxlID0gc3R5bGU7CisgICAgICAgIHRoaXMudGhpY2tuZXNzID0gdGhpY2tuZXNzOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbnNldHMgb2YgdGhpcyBwYW5lbC4uCisgICAgICovCisgICAgcHVibGljIEluc2V0cyBnZXRJbnNldHMoKSB7CisgICAgICAgIGludCBhZGp1c3RtZW50ID0gMDsKKworICAgICAgICAvLyBhZGp1c3QgZm9yIHRleHQgc3RyaW5nCisgICAgICAgIGlmIChzdHlsZSA9PSBJTiB8fCBzdHlsZSA9PSBPVVQpIHsKKyAgICAgICAgICAgIGlmICh0ZXh0ICE9IG51bGwgJiYgdGV4dC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAvLyBzZXQgZm9udCBhbmQgZ2V0IGluZm8KKyAgICAgICAgICAgICAgICAgICAgaW50IGhlaWdodCA9IGdldEdyYXBoaWNzKCkuZ2V0Rm9udE1ldHJpY3MoZm9udCkuZ2V0SGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChoZWlnaHQgPiB0aGlja25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICBhZGp1c3RtZW50ID0gaGVpZ2h0IC0gdGhpY2tuZXNzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIG5vdGhpbmc6IGp1c3QgaW4gY2FzZSB0aGVyZSBpcyBubyBncmFwaGljcyBjb250ZXh0CisgICAgICAgICAgICAgICAgICAgIC8vICAgYXQgdGhlIGJlZ2lubmluZy4KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIGFwcHJvcHJpYXRlIGluc2V0cworICAgICAgICBpbnQgZGlzdCA9IHRoaWNrbmVzcyArIGdhcDsKKyAgICAgICAgcmV0dXJuIG5ldyBJbnNldHMoZGlzdCArIGFkanVzdG1lbnQsIGRpc3QsIGRpc3QsIGRpc3QpOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBzdHlsZSBvZiB0aGUgYm9yZGVyCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3R5bGUgVGhlIG5ldyBzdHlsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsIHNldFN0eWxlKGludCBzdHlsZSkgeworCisgICAgICAgIC8vIHNldCB0aGUgc3R5bGUgYW5kIHJlLWxheW91dCB0aGUgcGFuZWwKKyAgICAgICAgdGhpcy5zdHlsZSA9IHN0eWxlOworICAgICAgICBkb0xheW91dCgpOworICAgICAgICByZXBhaW50KCk7CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHN0eWxlIG9mIHRoZSBib3JkZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFN0eWxlKCkgeworCisgICAgICAgIHJldHVybiBzdHlsZTsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGhpY2tuZXNzIG9mIHRoZSBib3JkZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGhpY2tuZXNzIFRoZSBuZXcgdGhpY2tuZXNzCisgICAgICovCisgICAgcHVibGljIEhvbGlkYXlCb3JkZXJQYW5lbCBzZXRUaGlja25lc3MoaW50IHRoaWNrbmVzcykgeworCisgICAgICAgIGlmICh0aGlja25lc3MgPiAwKSB7CisgICAgICAgICAgICB0aGlzLnRoaWNrbmVzcyA9IHRoaWNrbmVzczsKKyAgICAgICAgICAgIGRvTGF5b3V0KCk7CisgICAgICAgICAgICByZXBhaW50KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRoaWNrbmVzcyBvZiB0aGUgYm9yZGVyLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VGhpY2tuZXNzKCkgeworCisgICAgICAgIHJldHVybiB0aGlja25lc3M7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGdhcCBiZXR3ZWVuIHRoZSBib3JkZXIgYW5kIHRoZSBjb250YWluZWQgQ29tcG9uZW50LgorICAgICAqCisgICAgICogQHBhcmFtIGdhcCBUaGUgbmV3IGdhcCwgaW4gcGl4ZWxzLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwgc2V0R2FwKGludCBnYXApIHsKKworICAgICAgICBpZiAoZ2FwID4gLTEpIHsKKyAgICAgICAgICAgIHRoaXMuZ2FwID0gZ2FwOworICAgICAgICAgICAgZG9MYXlvdXQoKTsKKyAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZ2FwIGJldHdlZW4gdGhlIGJvcmRlciBhbmQgdGhlIGNvbnRhaW5lZCBDb21wb25lbnQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRHYXAoKSB7CisKKyAgICAgICAgcmV0dXJuIGdhcDsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBjb2xvciBmb3IgU09MSUQgYm9yZGVycyBhbmQgdGhlIGNhcHRpb24gdGV4dAorICAgICAqIGNvbG9yIGZvciBldGNoZWQgYm9yZGVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb2xvciBUaGUgbmV3IGNvbG9yLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwgc2V0Q29sb3IoQ29sb3IgY29sb3IpIHsKKworICAgICAgICB0aGlzLmNvbG9yID0gY29sb3I7CisgICAgICAgIGlmIChzdHlsZSA9PSBTT0xJRCB8fCBzdHlsZSA9PSBJTiB8fCBzdHlsZSA9PSBPVVQpCisgICAgICAgICAgICByZXBhaW50KCk7CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY29sb3IgZm9yIFNPTElEIGJvcmRlcnMgYW5kIHRoZSBjYXB0aW9uCisgICAgICogdGV4dCBjb2xvciBmb3IgZXRjaGVkIGJvcmRlcnMuCisgICAgICovCisgICAgcHVibGljIENvbG9yIGdldENvbG9yKCkgeworCisgICAgICAgIHJldHVybiBjb2xvcjsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZm9udC4gT25seSBhcHBsaWVzIHRvIGV0Y2hlZCBib3JkZXJzLgorICAgICAqLworICAgIHB1YmxpYyBIb2xpZGF5Qm9yZGVyUGFuZWwgc2V0VGV4dEZvbnQoRm9udCBmb250KSB7CisKKyAgICAgICAgLy8gc2V0IGZvbnQKKyAgICAgICAgaWYgKGZvbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhpcy5mb250ID0gZm9udDsKKyAgICAgICAgICAgIGlmIChzdHlsZSA9PSBJTiB8fCBzdHlsZSA9PSBPVVQpIHsKKyAgICAgICAgICAgICAgICBkb0xheW91dCgpOworICAgICAgICAgICAgICAgIHJlcGFpbnQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGZvbnQgb2YgdGhlIHRleHQuIE9ubHkgYXBwbGllcyB0byBldGNoZWQgYm9yZGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgRm9udCBnZXRUZXh0Rm9udCgpIHsKKworICAgICAgICByZXR1cm4gZm9udDsKKyAgICAgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGV4dC4gT25seSBhcHBsaWVzIHRvIGV0Y2hlZCBib3JkZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgIFRoZSBuZXcgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsIHNldFRleHQoU3RyaW5nIHRleHQpIHsKKworICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICBpZiAoc3R5bGUgPT0gSU4gfHwgc3R5bGUgPT0gT1VUKSB7CisgICAgICAgICAgICBkb0xheW91dCgpOworICAgICAgICAgICAgcmVwYWludCgpOworICAgICAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0ZXh0LiBPbmx5IGFwcGxpZXMgdG8gZXRjaGVkIGJvcmRlcnMuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUZXh0KCkgeworCisgICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0ZXh0IGFsaWdubWVudC4gT25seSBhcHBsaWVzIHRvIGV0Y2hlZCBib3JkZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIGFsaWdubWVudCBUaGUgbmV3IGFsaWdubWVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSG9saWRheUJvcmRlclBhbmVsIHNldEFsaWdubWVudChpbnQgYWxpZ25tZW50KSB7CisKKyAgICAgICAgdGhpcy5hbGlnbm1lbnQgPSBhbGlnbm1lbnQ7CisgICAgICAgIGlmIChzdHlsZSA9PSBJTiB8fCBzdHlsZSA9PSBPVVQpIHsKKyAgICAgICAgICAgIGRvTGF5b3V0KCk7CisgICAgICAgICAgICByZXBhaW50KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRleHQgYWxpZ25tZW50LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWxpZ25tZW50KCkgeworCisgICAgICAgIHJldHVybiBhbGlnbm1lbnQ7CisgICAgICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcGFpbnRzIHRoZSBib3JkZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZyBUaGUgZ3JhcGhpY3MgY29udGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKSB7CisKKyAgICAgICAgLy8gZ2V0IGN1cnJlbnQgZGltZW5zaW9ucworICAgICAgICBEaW1lbnNpb24gc2l6ZSA9IGdldFNpemUoKTsKKyAgICAgICAgaW50IHdpZHRoID0gc2l6ZS53aWR0aDsKKyAgICAgICAgaW50IGhlaWdodCA9IHNpemUuaGVpZ2h0OworCisgICAgICAgIC8vIHNldCBjb2xvcnMKKyAgICAgICAgQ29sb3IgbGlnaHQgPSBnZXRCYWNrZ3JvdW5kKCkuYnJpZ2h0ZXIoKS5icmlnaHRlcigpLmJyaWdodGVyKCk7CisgICAgICAgIENvbG9yIGRhcmsgPSBnZXRCYWNrZ3JvdW5kKCkuZGFya2VyKCkuZGFya2VyKCkuZGFya2VyKCk7CisKKyAgICAgICAgLy8gRHJhdyBib3JkZXIKKyAgICAgICAgc3dpdGNoIChzdHlsZSkgeworICAgICAgICAgICAgY2FzZSBSQUlTRUQ6ICAgIC8vIDNEIEJvcmRlciAoaW4gb3Igb3V0KQorICAgICAgICAgICAgY2FzZSBMT1dFUkVEOgorICAgICAgICAgICAgICAgIENvbG9yIHRvcGxlZnQgPSBudWxsOworICAgICAgICAgICAgICAgIENvbG9yIGJvdHRvbXJpZ2h0ID0gbnVsbDsKKworICAgICAgICAgICAgICAgIC8vIHNldCBjb2xvcnMKKyAgICAgICAgICAgICAgICBpZiAoc3R5bGUgPT0gUkFJU0VEKSB7CisgICAgICAgICAgICAgICAgICAgIHRvcGxlZnQgPSBsaWdodDsKKyAgICAgICAgICAgICAgICAgICAgYm90dG9tcmlnaHQgPSBkYXJrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRvcGxlZnQgPSBkYXJrOworICAgICAgICAgICAgICAgICAgICBib3R0b21yaWdodCA9IGxpZ2h0OworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBkcmF3IGJvcmRlcgorICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IodG9wbGVmdCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0aGlja25lc3M7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBnLmRyYXdMaW5lKGksIGksIHdpZHRoIC0gaSAtIDIsIGkpOworICAgICAgICAgICAgICAgICAgICBnLmRyYXdMaW5lKGksIGkgKyAxLCBpLCBoZWlnaHQgLSBpIC0gMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnLnNldENvbG9yKGJvdHRvbXJpZ2h0KTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRoaWNrbmVzczsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUoaSArIDEsIGhlaWdodCAtIGkgLSAxLCB3aWR0aCAtIGkgLSAxLCBoZWlnaHQgLSBpIC0gMSk7CisgICAgICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUod2lkdGggLSBpIC0gMSwgaSwgd2lkdGggLSBpIC0gMSwgaGVpZ2h0IC0gaSAtIDIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgSU46ICAgIC8vIEV0Y2hlZCBCb3JkZXIgKGluIG9yIG91dCkKKyAgICAgICAgICAgIGNhc2UgT1VUOgorICAgICAgICAgICAgICAgIGludCBhZGp1c3QxID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgYWRqdXN0MiA9IDA7CisKKyAgICAgICAgICAgICAgICAvLyBzZXQgZm9udCBhbmQgZ2V0IGluZm8KKyAgICAgICAgICAgICAgICBGb250IG9sZGZvbnQgPSBnLmdldEZvbnQoKTsKKyAgICAgICAgICAgICAgICBnLnNldEZvbnQoZm9udCk7CisgICAgICAgICAgICAgICAgRm9udE1ldHJpY3MgZm0gPSBnLmdldEZvbnRNZXRyaWNzKCk7CisgICAgICAgICAgICAgICAgaW50IGFzY2VudCA9IGZtLmdldEFzY2VudCgpOworCisgICAgICAgICAgICAgICAgLy8gc2V0IGFkanVzdG1lbnQKKyAgICAgICAgICAgICAgICBpZiAoc3R5bGUgPT0gSU4pCisgICAgICAgICAgICAgICAgICAgIGFkanVzdDEgPSAxOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYWRqdXN0MiA9IDE7CisKKyAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgYWRqdXN0bWVudCBmb3IgdGV4dAorICAgICAgICAgICAgICAgIGludCBhZGp1c3RtZW50ID0gMDsKKyAgICAgICAgICAgICAgICBpZiAodGV4dCAhPSBudWxsICYmIHRleHQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhc2NlbnQgPiB0aGlja25lc3MpCisgICAgICAgICAgICAgICAgICAgICAgICBhZGp1c3RtZW50ID0gKGFzY2VudCAtIHRoaWNrbmVzcykgLyAyOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBUaGUgYWRqdXN0bWVudCBpcyB0aGVyZSBzbyB0aGF0IHdlIGFsd2F5cyBkcmF3IHRoZQorICAgICAgICAgICAgICAgIC8vIGxpZ2h0IHJlY3RhbmdsZSBmaXJzdC4gT3RoZXJ3aXNlLCB5b3VyIGV5ZSBwaWNrcyB1cAorICAgICAgICAgICAgICAgIC8vIHRoZSBkaXNjcmVwYW5jeSB3aGVyZSB0aGUgbGlnaHQgcmVjdC4gcGFzc2VzIG92ZXIKKyAgICAgICAgICAgICAgICAvLyB0aGUgZGFya2VyIHJlY3QuCisgICAgICAgICAgICAgICAgaW50IHggPSB0aGlja25lc3MgLyAyOworICAgICAgICAgICAgICAgIGludCB5ID0gdGhpY2tuZXNzIC8gMiArIGFkanVzdG1lbnQ7CisgICAgICAgICAgICAgICAgaW50IHcgPSB3aWR0aCAtIHRoaWNrbmVzcyAtIDE7CisgICAgICAgICAgICAgICAgaW50IGggPSBoZWlnaHQgLSB0aGlja25lc3MgLSAxIC0gYWRqdXN0bWVudDsKKworICAgICAgICAgICAgICAgIC8vIGRyYXcgcmVjdGFuZ2xlcworICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IobGlnaHQpOworICAgICAgICAgICAgICAgIGcuZHJhd1JlY3QoeCArIGFkanVzdDEsIHkgKyBhZGp1c3QxLCB3LCBoKTsKKyAgICAgICAgICAgICAgICBnLnNldENvbG9yKGRhcmspOworICAgICAgICAgICAgICAgIGcuZHJhd1JlY3QoeCArIGFkanVzdDIsIHkgKyBhZGp1c3QyLCB3LCBoKTsKKworICAgICAgICAgICAgICAgIC8vIGRyYXcgdGV4dCwgaWYgYXBwbGljYWJsZQorICAgICAgICAgICAgICAgIGlmICh0ZXh0ICE9IG51bGwgJiYgdGV4dC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIGRyYXdpbmcgYXJlYQorICAgICAgICAgICAgICAgICAgICBpbnQgZm9udGhlaWdodCA9IGZtLmdldEhlaWdodCgpOworICAgICAgICAgICAgICAgICAgICBpbnQgc3Ryd2lkdGggPSBmbS5zdHJpbmdXaWR0aCh0ZXh0KTsKKworICAgICAgICAgICAgICAgICAgICBpbnQgdGV4dHdpZHRoID0gd2lkdGggLSAyICogKHRoaWNrbmVzcyArIDUpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3Ryd2lkdGggPiB0ZXh0d2lkdGgpCisgICAgICAgICAgICAgICAgICAgICAgICBzdHJ3aWR0aCA9IHRleHR3aWR0aDsKKworICAgICAgICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgb2Zmc2V0IGZvciBhbGlnbm1lbnQKKyAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChhbGlnbm1lbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ0VOVEVSOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9ICh3aWR0aCAtIHN0cndpZHRoKSAvIDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFJJR0hUOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IHdpZHRoIC0gc3Ryd2lkdGggLSB0aGlja25lc3MgLSA1OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBMRUZUOgorICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogLy8gYXNzdW1lIGxlZnQgYWxpZ25tZW50IGlmIGludmFsaWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSB0aGlja25lc3MgKyA1OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIGNsZWFyIGRyYXdpbmcgYXJlYSBhbmQgc2V0IGNsaXBwaW5nIHJlZ2lvbgorICAgICAgICAgICAgICAgICAgICBnLmNsZWFyUmVjdChvZmZzZXQgLSA1LCAwLCBzdHJ3aWR0aCAgKyAxMCwgZm9udGhlaWdodCk7CisgICAgICAgICAgICAgICAgICAgIGcuY2xpcFJlY3Qob2Zmc2V0LCAwLCBzdHJ3aWR0aCwgZm9udGhlaWdodCk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gZHJhdyB0ZXh0CisgICAgICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IoY29sb3IpOworICAgICAgICAgICAgICAgICAgICBnLmRyYXdTdHJpbmcodGV4dCwgb2Zmc2V0LCBhc2NlbnQpOworCisgICAgICAgICAgICAgICAgICAgIC8vIHJlc3RvcmUgb2xkIGNsaXBwaW5nIGFyZWEKKyAgICAgICAgICAgICAgICAgICAgZy5jbGlwUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZy5zZXRGb250KG9sZGZvbnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFNPTElEOgorICAgICAgICAgICAgZGVmYXVsdDogLy8gYXNzdW1lIFNPTElECisgICAgICAgICAgICAgICAgZy5zZXRDb2xvcihjb2xvcik7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0aGlja25lc3M7IGkrKykKKyAgICAgICAgICAgICAgICAgICAgZy5kcmF3UmVjdChpLCBpLCB3aWR0aCAtIDIgKiBpIC0gMSwgaGVpZ2h0IC0gMiAqIGkgLSAxKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzZXR0aW5ncyBvZiB0aGlzIEhvbGlkYXlCb3JkZXJQYW5lbCBpbnN0YW5jZSBhcyBhIHN0cmluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyID0gbmV3IFN0cmluZ0J1ZmZlcigiSG9saWRheUJvcmRlclBhbmVsWyIpOworCisgICAgICAgIC8vIHN0eWxlCisgICAgICAgIHN0ci5hcHBlbmQoInN0eWxlPSIpOworICAgICAgICBzd2l0Y2ggKHN0eWxlKSB7CisgICAgICAgICAgICBjYXNlIFNPTElEOiBzdHIuYXBwZW5kKCJTT0xJRCIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkFJU0VEOiBzdHIuYXBwZW5kKCJSQUlTRUQiKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIExPV0VSRUQ6IHN0ci5hcHBlbmQoIkxPV0VSRUQiKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIElOOiBzdHIuYXBwZW5kKCJJTiIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgT1VUOiBzdHIuYXBwZW5kKCJPVVQiKTsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiBzdHIuYXBwZW5kKCJ1bmtub3duIik7CisgICAgICAgICAgICB9CisgICAgICAgIHN0ci5hcHBlbmQoIiwiKTsKKworICAgICAgICAvLyB0aGlja25lc3MKKyAgICAgICAgc3RyLmFwcGVuZCgidGhpY2tuZXNzPSIpOworICAgICAgICBzdHIuYXBwZW5kKHRoaWNrbmVzcyk7CisgICAgICAgIHN0ci5hcHBlbmQoIiwiKTsKKworICAgICAgICAvLyBnYXAKKyAgICAgICAgc3RyLmFwcGVuZCgiZ2FwPSIpOworICAgICAgICBzdHIuYXBwZW5kKGdhcCk7CisgICAgICAgIHN0ci5hcHBlbmQoIiwiKTsKKworICAgICAgICAvLyBjb2xvcgorICAgICAgICBzdHIuYXBwZW5kKGNvbG9yKTsKKyAgICAgICAgc3RyLmFwcGVuZCgiLCIpOworCisgICAgICAgIC8vIGZvbnQKKyAgICAgICAgc3RyLmFwcGVuZChmb250KTsKKyAgICAgICAgc3RyLmFwcGVuZCgiLCIpOworCisgICAgICAgIC8vIHRleHQKKyAgICAgICAgc3RyLmFwcGVuZCgidGV4dD0iKTsKKyAgICAgICAgc3RyLmFwcGVuZCh0ZXh0KTsKKyAgICAgICAgc3RyLmFwcGVuZCgiLCIpOworCisgICAgICAgIC8vIGFsaWdubWVudAorICAgICAgICBzdHIuYXBwZW5kKCJhbGlnbm1lbnQ9Iik7CisgICAgICAgIHN3aXRjaCAoYWxpZ25tZW50KSB7CisgICAgICAgICAgICBjYXNlIExFRlQ6IHN0ci5hcHBlbmQoIkxFRlQiKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENFTlRFUjogc3RyLmFwcGVuZCgiQ0VOVEVSIik7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBSSUdIVDogc3RyLmFwcGVuZCgiUklHSFQiKTsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiBzdHIuYXBwZW5kKCJ1bmtub3duIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgc3RyLmFwcGVuZCgiXSIpOworCisgICAgICAgIHJldHVybiBzdHIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorCisgICAgfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9Ib2xpZGF5Q2FsZW5kYXJEZW1vLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9Ib2xpZGF5Q2FsZW5kYXJEZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGY2Y2EzYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9ob2xpZGF5L0hvbGlkYXlDYWxlbmRhckRlbW8uamF2YQpAQCAtMCwwICsxLDczMSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5ob2xpZGF5OworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkJ1dHRvbjsKK2ltcG9ydCBqYXZhLmF3dC5DYW52YXM7CitpbXBvcnQgamF2YS5hd3QuQ2hvaWNlOworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5Db250YWluZXI7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0LkZvbnQ7CitpbXBvcnQgamF2YS5hd3QuRm9udE1ldHJpY3M7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuR3JpZEJhZ0NvbnN0cmFpbnRzOworaW1wb3J0IGphdmEuYXd0LkdyaWRCYWdMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuTGFiZWw7CitpbXBvcnQgamF2YS5hd3QuUGFuZWw7CitpbXBvcnQgamF2YS5hd3QuUG9pbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLnRleHQuRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC5EZW1vQXBwbGV0OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuRGVtb1RleHRCb3g7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC5EZW1vVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkhvbGlkYXk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZTsKKworLyoqCisgKiBDYWxlbmRhckRlbW8gZGVtb25zdHJhdGVzIGhvdyBDYWxlbmRhciB3b3Jrcy4KKyAqLworcHVibGljIGNsYXNzIEhvbGlkYXlDYWxlbmRhckRlbW8gZXh0ZW5kcyBEZW1vQXBwbGV0IAoreworICAgIC8qKgorICAgICAqIFRoZSBtYWluIGZ1bmN0aW9uIHdoaWNoIGRlZmluZXMgdGhlIGJlaGF2aW9yIG9mIHRoZSBDYWxlbmRhckRlbW8KKyAgICAgKiBhcHBsZXQgd2hlbiBhbiBhcHBsZXQgaXMgc3RhcnRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJndltdKSB7CisKKyAgICAgICAgbmV3IEhvbGlkYXlDYWxlbmRhckRlbW8oKS5zaG93RGVtbygpOworICAgIH0KKworICAgIC8qIFRoaXMgY3JlYXRlcyBhIENhbGVuZGFyRnJhbWUgZm9yIHRoZSBkZW1vIGFwcGxldC4gKi8KKyAgICBwdWJsaWMgRnJhbWUgY3JlYXRlRGVtb0ZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KSB7CisgICAgICAgIHJldHVybiBuZXcgQ2FsZW5kYXJGcmFtZShhcHBsZXQpOworICAgIH0KKworICAgIC8qKgorICAgICogQSBGcmFtZSBpcyBhIHRvcC1sZXZlbCB3aW5kb3cgd2l0aCBhIHRpdGxlLiBUaGUgZGVmYXVsdCBsYXlvdXQgZm9yIGEgZnJhbWUKKyAgICAqIGlzIEJvcmRlckxheW91dC4gIFRoZSBDYWxlbmRhckZyYW1lIGNsYXNzIGRlZmluZXMgdGhlIHdpbmRvdyBsYXlvdXQgb2YKKyAgICAqIENhbGVuZGFyRGVtby4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIENhbGVuZGFyRnJhbWUgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIEFjdGlvbkxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0ZW1MaXN0ZW5lcgorICAgIHsKKyAgICAgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY3JlZGl0U3RyaW5nID0gIiI7IC8vIHVudXNlZAorCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgICAgICAvL3ByaXZhdGUgTG9jYWxlIGN1ckxvY2FsZSA9IExvY2FsZS5VUzsgLy8gdW51c2VkCisKKyAgICAgICAgcHJpdmF0ZSBEZW1vQXBwbGV0IGFwcGxldDsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGVbXSBjYWxlbmRhcnMgPSB7CisgICAgICAgICAgICAvL25ldyBMb2NhbGUoImRlIiwiQVQiKSwKKyAgICAgICAgICAgIExvY2FsZS5DQU5BREEsCisgICAgICAgICAgICBMb2NhbGUuQ0FOQURBX0ZSRU5DSCwKKyAgICAgICAgICAgIExvY2FsZS5GUkFOQ0UsCisgICAgICAgICAgICBMb2NhbGUuR0VSTUFOWSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoIml3IiwiSUwiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImVsIiwiR1IiKSwKKyAgICAgICAgICAgIC8vbmV3IExvY2FsZSgiZXMiLCJNWCIpLAorICAgICAgICAgICAgTG9jYWxlLlVLLAorICAgICAgICAgICAgTG9jYWxlLlVTLAorICAgICAgICB9OworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGVbXSBkaXNwbGF5cyA9IHsKKyAgICAgICAgICAgIExvY2FsZS5DQU5BREEsCisgICAgICAgICAgICBMb2NhbGUuVUssCisgICAgICAgICAgICBMb2NhbGUuVVMsCisgICAgICAgICAgICBMb2NhbGUuRlJBTkNFLAorICAgICAgICAgICAgTG9jYWxlLkNBTkFEQV9GUkVOQ0gsCisgICAgICAgICAgICAvL25ldyBMb2NhbGUoImRlIiwiQVQiKSwKKyAgICAgICAgICAgIExvY2FsZS5HRVJNQU4sCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJlbCIsIkdSIiksCisgICAgICAgICAgICAvL25ldyBMb2NhbGUoIml3IiwiSUwiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImVzIiwiTVgiKSwKKyAgICAgICAgfTsKKworICAgICAgICAvKioKKyAgICAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IENhbGVuZGFyRnJhbWUgdGhhdCBpcyBpbml0aWFsbHkgaW52aXNpYmxlLgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgQ2FsZW5kYXJGcmFtZShEZW1vQXBwbGV0IGFwcGxldCkKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIoIkNhbGVuZGFyIERlbW8iKTsKKyAgICAgICAgICAgIHRoaXMuYXBwbGV0ID0gYXBwbGV0OworICAgICAgICAgICAgaW5pdCgpOworICAgICAgICAgICAgc3RhcnQoKTsKKyAgICAgICAgICAgIGVuYWJsZUV2ZW50cyhXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORyk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbml0aWFsaXplcyB0aGUgYXBwbGV0LiBZb3UgbmV2ZXIgbmVlZCB0byBjYWxsIHRoaXMgZGlyZWN0bHksIGl0CisgICAgICAgICogaXMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHN5c3RlbSBvbmNlIHRoZSBhcHBsZXQgaXMgY3JlYXRlZC4KKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgaW5pdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIEdldCBHNyBsb2NhbGVzIG9ubHkgZm9yIGRlbW8gcHVycG9zZS4gVG8gZ2V0IGFsbCB0aGUgbG9jYWxlcworICAgICAgICAgICAgLy8gc3VwcG9ydGVkLCBzd2l0Y2ggdG8gY2FsbGluZyBDYWxlbmRhci5nZXRBdmFpbGFibGVMb2NhbGVzKCkuCisgICAgICAgICAgICAvLyBjb21tZW50ZWQKKyAgICAgICAgICAgIGxvY2FsZXMgPSBkaXNwbGF5czsKKworICAgICAgICAgICAgYnVpbGRHVUkoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZQorICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICB2b2lkIGFkZFdpdGhGb250KENvbnRhaW5lciBjb250YWluZXIsIENvbXBvbmVudCBmb28sIEZvbnQgZm9udCkgeworICAgICAgICAgICAgaWYgKGZvbnQgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBmb28uc2V0Rm9udChmb250KTsKKyAgICAgICAgICAgIGNvbnRhaW5lci5hZGQoZm9vKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIENhbGxlZCB0byBzdGFydCB0aGUgYXBwbGV0LiBZb3UgbmV2ZXIgbmVlZCB0byBjYWxsIHRoaXMgbWV0aG9kCisgICAgICAgICogZGlyZWN0bHksIGl0IGlzIGNhbGxlZCB3aGVuIHRoZSBhcHBsZXQncyBkb2N1bWVudCBpcyB2aXNpdGVkLgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzdGFydCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGRvIG5vdGhpbmcKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgQ2hvaWNlICAgICAgICAgIGxvY2FsZU1lbnU7CisgICAgICAgIHByaXZhdGUgQ2hvaWNlICAgICAgICAgIGRpc3BsYXlNZW51OworICAgICAgICBwcml2YXRlIExvY2FsZVtdICAgICAgICBsb2NhbGVzOworCisgICAgICAgIHByaXZhdGUgTGFiZWwgICAgICAgICAgIG1vbnRoTGFiZWw7CisgICAgICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIHByZXZZZWFyOworICAgICAgICBwcml2YXRlIEJ1dHRvbiAgICAgICAgICBwcmV2TW9udGg7CisgICAgICAgIHByaXZhdGUgQnV0dG9uICAgICAgICAgIGdvdG9Ub2RheTsKKyAgICAgICAgcHJpdmF0ZSBCdXR0b24gICAgICAgICAgbmV4dE1vbnRoOworICAgICAgICBwcml2YXRlIEJ1dHRvbiAgICAgICAgICBuZXh0WWVhcjsKKyAgICAgICAgcHJpdmF0ZSBDYWxlbmRhclBhbmVsICAgY2FsZW5kYXJQYW5lbDsKKworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUga0ZpcnN0TG9jYWxlID0gTG9jYWxlLlVTOworCisgICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYWRkKENvbnRhaW5lciBjb250YWluZXIsIENvbXBvbmVudCBjb21wb25lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyaWRCYWdMYXlvdXQgZywgR3JpZEJhZ0NvbnN0cmFpbnRzIGMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGcuc2V0Q29uc3RyYWludHMoY29tcG9uZW50LCBjKTsKKyAgICAgICAgICAgIGNvbnRhaW5lci5hZGQoY29tcG9uZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGJ1aWxkR1VJKCkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5iZ0NvbG9yKTsKKyAgICAgICAgICAgIHNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KDEwLDEwKSk7CisKKyAgICAgICAgICAgIC8vIExhYmVsIGZvciB0aGUgZGVtbydzIHRpdGxlCisgICAgICAgICAgICBMYWJlbCB0aXRsZUxhYmVsID0gbmV3IExhYmVsKCJDYWxlbmRhciBEZW1vIiwgTGFiZWwuQ0VOVEVSKTsKKyAgICAgICAgICAgIHRpdGxlTGFiZWwuc2V0Rm9udChEZW1vVXRpbGl0eS50aXRsZUZvbnQpOworCisgICAgICAgICAgICAvLyBMYWJlbCBmb3IgdGhlIGN1cnJlbnQgbW9udGggbmFtZQorICAgICAgICAgICAgbW9udGhMYWJlbCA9IG5ldyBMYWJlbCgiIiwgTGFiZWwuTEVGVCk7CisgICAgICAgICAgICBtb250aExhYmVsLnNldEZvbnQobmV3IEZvbnQoRGVtb1V0aWxpdHkudGl0bGVGb250LmdldE5hbWUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZW1vVXRpbGl0eS50aXRsZUZvbnQuZ2V0U3R5bGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRGVtb1V0aWxpdHkudGl0bGVGb250LmdldFNpemUoKSAqIDMpLzIpKTsKKworICAgICAgICAgICAgLy8gTWFrZSB0aGUgbG9jYWxlIHBvcHVwIG1lbnVzCisgICAgICAgICAgICBsb2NhbGVNZW51PSBuZXcgQ2hvaWNlKCk7CisgICAgICAgICAgICBsb2NhbGVNZW51LmFkZEl0ZW1MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIGludCBzZWxlY3RNZSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPiAwICYmCisgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0uZ2V0Q291bnRyeSgpLmVxdWFscyhjYWxlbmRhcnNbaS0xXS5nZXRDb3VudHJ5KCkpIHx8CisgICAgICAgICAgICAgICAgICAgIGkgPCBjYWxlbmRhcnMubGVuZ3RoIC0gMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLmdldENvdW50cnkoKS5lcXVhbHMoY2FsZW5kYXJzW2krMV0uZ2V0Q291bnRyeSgpKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZU1lbnUuYWRkSXRlbShjYWxlbmRhcnNbaV0uZ2V0RGlzcGxheUNvdW50cnkoKSArICIgKCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldLmdldERpc3BsYXlMYW5ndWFnZSgpICsgIikiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2NhbGVNZW51LmFkZEl0ZW0oIGNhbGVuZGFyc1tpXS5nZXREaXNwbGF5Q291bnRyeSgpICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChjYWxlbmRhcnNbaV0uZXF1YWxzKGtGaXJzdExvY2FsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0TWUgPSBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9jYWxlTWVudS5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGxvY2FsZU1lbnUuc2VsZWN0KHNlbGVjdE1lKTsKKworICAgICAgICAgICAgZGlzcGxheU1lbnUgPSBuZXcgQ2hvaWNlKCk7CisgICAgICAgICAgICBkaXNwbGF5TWVudS5hZGRJdGVtTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNlbGVjdE1lID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChpID4gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2ktMV0uZ2V0TGFuZ3VhZ2UoKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgaSA8IGxvY2FsZXMubGVuZ3RoIC0gMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsb2NhbGVzW2krMV0uZ2V0TGFuZ3VhZ2UoKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TWVudS5hZGRJdGVtKCBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkgKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TWVudS5hZGRJdGVtKCBsb2NhbGVzW2ldLmdldERpc3BsYXlMYW5ndWFnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGxvY2FsZXNbaV0uZXF1YWxzKGtGaXJzdExvY2FsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0TWUgPSBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGlzcGxheU1lbnUuc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5jaG9pY2VDb2xvcik7CisgICAgICAgICAgICBkaXNwbGF5TWVudS5zZWxlY3Qoc2VsZWN0TWUpOworCisgICAgICAgICAgICAvLyBNYWtlIGFsbCB0aGUgbmV4dC9wcmV2aW91cy90b2RheSBidXR0b25zCisgICAgICAgICAgICBwcmV2WWVhciA9IG5ldyBCdXR0b24oIjw8Iik7CisgICAgICAgICAgICBwcmV2WWVhci5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIHByZXZNb250aCA9IG5ldyBCdXR0b24oIjwiKTsKKyAgICAgICAgICAgIHByZXZNb250aC5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIGdvdG9Ub2RheSA9IG5ldyBCdXR0b24oIlRvZGF5Iik7CisgICAgICAgICAgICBnb3RvVG9kYXkuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBuZXh0TW9udGggPSBuZXcgQnV0dG9uKCI+Iik7CisgICAgICAgICAgICBuZXh0TW9udGguYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBuZXh0WWVhciA9IG5ldyBCdXR0b24oIj4+Iik7CisgICAgICAgICAgICBuZXh0WWVhci5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKworICAgICAgICAgICAgLy8gVGhlIG1vbnRoIG5hbWUgYW5kIHRoZSBjb250cm9sIGJ1dHRvbnMgYXJlIGJ1bmNoZWQgdG9nZXRoZXIKKyAgICAgICAgICAgIFBhbmVsIG1vbnRoUGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBHcmlkQmFnTGF5b3V0IGcgPSBuZXcgR3JpZEJhZ0xheW91dCgpOworICAgICAgICAgICAgICAgIEdyaWRCYWdDb25zdHJhaW50cyBjID0gbmV3IEdyaWRCYWdDb25zdHJhaW50cygpOworICAgICAgICAgICAgICAgIG1vbnRoUGFuZWwuc2V0TGF5b3V0KGcpOworCisgICAgICAgICAgICAgICAgYy53ZWlnaHR4ID0gMTsKKyAgICAgICAgICAgICAgICBjLndlaWdodHkgPSAxOworCisgICAgICAgICAgICAgICAgYy5ncmlkd2lkdGggPSAxOworICAgICAgICAgICAgICAgIGMuZmlsbCA9IEdyaWRCYWdDb25zdHJhaW50cy5IT1JJWk9OVEFMOworICAgICAgICAgICAgICAgIGMuZ3JpZHdpZHRoID0gR3JpZEJhZ0NvbnN0cmFpbnRzLlJFTUFJTkRFUjsKKyAgICAgICAgICAgICAgICBhZGQobW9udGhQYW5lbCwgbW9udGhMYWJlbCwgZywgYyk7CisKKyAgICAgICAgICAgICAgICBjLmdyaWR3aWR0aCA9IDE7CisgICAgICAgICAgICAgICAgYWRkKG1vbnRoUGFuZWwsIHByZXZZZWFyLCBnLCBjKTsKKyAgICAgICAgICAgICAgICBhZGQobW9udGhQYW5lbCwgcHJldk1vbnRoLCBnLCBjKTsKKyAgICAgICAgICAgICAgICBhZGQobW9udGhQYW5lbCwgZ290b1RvZGF5LCBnLCBjKTsKKyAgICAgICAgICAgICAgICBhZGQobW9udGhQYW5lbCwgbmV4dE1vbnRoLCBnLCBjKTsKKyAgICAgICAgICAgICAgICBjLmdyaWR3aWR0aCA9IEdyaWRCYWdDb25zdHJhaW50cy5SRU1BSU5ERVI7CisgICAgICAgICAgICAgICAgYWRkKG1vbnRoUGFuZWwsIG5leHRZZWFyLCBnLCBjKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gU3RpY2sgdGhlIG1lbnUgYW5kIGJ1dHRvbnMgaW4gYSBsaXR0bGUgImNvbnRyb2wgcGFuZWwiCisgICAgICAgICAgICBQYW5lbCBtZW51UGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBHcmlkQmFnTGF5b3V0IGcgPSBuZXcgR3JpZEJhZ0xheW91dCgpOworICAgICAgICAgICAgICAgIEdyaWRCYWdDb25zdHJhaW50cyBjID0gbmV3IEdyaWRCYWdDb25zdHJhaW50cygpOworICAgICAgICAgICAgICAgIG1lbnVQYW5lbC5zZXRMYXlvdXQoZyk7CisKKyAgICAgICAgICAgICAgICBjLndlaWdodHggPSAxOworICAgICAgICAgICAgICAgIGMud2VpZ2h0eSA9IDE7CisKKyAgICAgICAgICAgICAgICBjLmZpbGwgPSBHcmlkQmFnQ29uc3RyYWludHMuSE9SSVpPTlRBTDsKKworICAgICAgICAgICAgICAgIGMuZ3JpZHdpZHRoID0gR3JpZEJhZ0NvbnN0cmFpbnRzLlJFTEFUSVZFOworICAgICAgICAgICAgICAgIExhYmVsIGwxID0gbmV3IExhYmVsKCJIb2xpZGF5cyIpOworICAgICAgICAgICAgICAgIGwxLnNldEZvbnQoRGVtb1V0aWxpdHkubGFiZWxGb250KTsKKyAgICAgICAgICAgICAgICBhZGQobWVudVBhbmVsLCBsMSwgZywgYyk7CisKKyAgICAgICAgICAgICAgICBjLmdyaWR3aWR0aCA9IEdyaWRCYWdDb25zdHJhaW50cy5SRU1BSU5ERVI7CisgICAgICAgICAgICAgICAgYWRkKG1lbnVQYW5lbCwgbG9jYWxlTWVudSwgZywgYyk7CisKKyAgICAgICAgICAgICAgICBjLmdyaWR3aWR0aCA9IEdyaWRCYWdDb25zdHJhaW50cy5SRUxBVElWRTsKKyAgICAgICAgICAgICAgICBMYWJlbCBsMiA9IG5ldyBMYWJlbCgiRGlzcGxheToiKTsKKyAgICAgICAgICAgICAgICBsMi5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgICAgICAgICAgYWRkKG1lbnVQYW5lbCwgbDIsIGcsIGMpOworCisgICAgICAgICAgICAgICAgYy5ncmlkd2lkdGggPSBHcmlkQmFnQ29uc3RyYWludHMuUkVNQUlOREVSOworICAgICAgICAgICAgICAgIGFkZChtZW51UGFuZWwsIGRpc3BsYXlNZW51LCBnLCBjKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gVGhlIHRpdGxlLCBidXR0b25zLCBldGMuIGdvIGluIGEgcGFuZWwgYXQgdGhlIHRvcCBvZiB0aGUgd2luZG93CisgICAgICAgICAgICBQYW5lbCB0b3BQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRvcFBhbmVsLnNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworCisgICAgICAgICAgICAgICAgLy90b3BQYW5lbC5hZGQoIk5vcnRoIiwgdGl0bGVMYWJlbCk7CisgICAgICAgICAgICAgICAgdG9wUGFuZWwuYWRkKCJDZW50ZXIiLCBtb250aFBhbmVsKTsKKyAgICAgICAgICAgICAgICB0b3BQYW5lbC5hZGQoIkVhc3QiLCBtZW51UGFuZWwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYWRkKCJOb3J0aCIsIHRvcFBhbmVsKTsKKworICAgICAgICAgICAgLy8gVGhlIGNvcHlyaWdodCBub3RpY2UgZ29lcyBhdCB0aGUgYm90dG9tIG9mIHRoZSB3aW5kb3cKKyAgICAgICAgICAgIExhYmVsIGNvcHlyaWdodCA9IG5ldyBMYWJlbChEZW1vVXRpbGl0eS5jb3B5cmlnaHQxLCBMYWJlbC5MRUZUKTsKKyAgICAgICAgICAgIGNvcHlyaWdodC5zZXRGb250KERlbW9VdGlsaXR5LmNyZWRpdEZvbnQpOworICAgICAgICAgICAgYWRkKCJTb3V0aCIsIGNvcHlyaWdodCk7CisKKyAgICAgICAgICAgIC8vIE5vdyBjcmVhdGUgdGhlIGJpZyBjYWxlbmRhciBwYW5lbCBhbmQgc3RpY2sgaXQgaW4gdGhlIG1pZGRsZQorICAgICAgICAgICAgY2FsZW5kYXJQYW5lbCA9IG5ldyBDYWxlbmRhclBhbmVsKCBrRmlyc3RMb2NhbGUgKTsKKyAgICAgICAgICAgIGFkZCgiQ2VudGVyIiwgY2FsZW5kYXJQYW5lbCk7CisKKyAgICAgICAgICAgIHVwZGF0ZU1vbnRoTmFtZSgpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZU1vbnRoTmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTU1NIHl5eXl5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5nZXREaXNwbGF5TG9jYWxlKCkpOworICAgICAgICAgICAgZi5zZXRDYWxlbmRhcihjYWxlbmRhclBhbmVsLmdldENhbGVuZGFyKCkpOworICAgICAgICAgICAgZi5zZXRUaW1lWm9uZShuZXcgU2ltcGxlVGltZVpvbmUoMCwgIlVUQyIpKTsgICAgICAgIC8vIEpESyAxLjEuMiB3b3JrYXJvdW5kCisgICAgICAgICAgICBtb250aExhYmVsLnNldFRleHQoIGYuZm9ybWF0KCBjYWxlbmRhclBhbmVsLmZpcnN0T2ZNb250aCgpICkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgKiBIYW5kbGVzIHRoZSBldmVudC4gUmV0dXJucyB0cnVlIGlmIHRoZSBldmVudCBpcyBoYW5kbGVkIGFuZCBzaG91bGQgbm90CisgICAgICAgICogYmUgcGFzc2VkIHRvIHRoZSBwYXJlbnQgb2YgdGhpcyBjb21wb25lbnQuIFRoZSBkZWZhdWx0IGV2ZW50IGhhbmRsZXIKKyAgICAgICAgKiBjYWxscyBzb21lIGhlbHBlciBtZXRob2RzIHRvIG1ha2UgbGlmZSBlYXNpZXIgb24gdGhlIHByb2dyYW1tZXIuCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKQorICAgICAgICB7CisgICAgICAgICAgICBPYmplY3Qgb2JqID0gZS5nZXRTb3VyY2UoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gKioqIEJ1dHRvbiBldmVudHMgYXJlIGhhbmRsZWQgaGVyZS4KKyAgICAgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBCdXR0b24pIHsKKyAgICAgICAgICAgICAgICBpZiAob2JqID09IG5leHRNb250aCkgeworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLmFkZChDYWxlbmRhci5NT05USCwgKzEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaWYgKG9iaiA9PSBwcmV2TW9udGgpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5hZGQoQ2FsZW5kYXIuTU9OVEgsIC0xKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlmIChvYmogPT0gcHJldlllYXIpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJQYW5lbC5hZGQoQ2FsZW5kYXIuWUVBUiwgLTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaWYgKG9iaiA9PSBuZXh0WWVhcikgeworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLmFkZChDYWxlbmRhci5ZRUFSLCArMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpZiAob2JqID09IGdvdG9Ub2RheSkgeworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLnNldCggbmV3IERhdGUoKSApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1cGRhdGVNb250aE5hbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkKKyAgICAgICAgeworICAgICAgICAgICAgT2JqZWN0IG9iaiA9IGUuZ2V0U291cmNlKCk7CisgICAgICAgICAgICBpZiAob2JqID09IGxvY2FsZU1lbnUpIHsKKyAgICAgICAgICAgICAgICBjYWxlbmRhclBhbmVsLnNldENhbGVuZGFyTG9jYWxlKGNhbGVuZGFyc1tsb2NhbGVNZW51LmdldFNlbGVjdGVkSW5kZXgoKV0pOworICAgICAgICAgICAgICAgIHVwZGF0ZU1vbnRoTmFtZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICBpZiAob2JqID09IGRpc3BsYXlNZW51KSB7CisgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyUGFuZWwuc2V0RGlzcGxheUxvY2FsZShsb2NhbGVzW2Rpc3BsYXlNZW51LmdldFNlbGVjdGVkSW5kZXgoKV0pOworICAgICAgICAgICAgICAgICAgICB1cGRhdGVNb250aE5hbWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAqIFByaW50IG91dCB0aGUgZXJyb3IgbWVzc2FnZSB3aGlsZSBkZWJ1Z2dpbmcgdGhpcyBwcm9ncmFtLgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBlcnJvclRleHQoU3RyaW5nIHMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChERUJVRykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NXaW5kb3dFdmVudChXaW5kb3dFdmVudCBlKQorICAgICAgICB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImV2ZW50ICIgKyBlKTsKKyAgICAgICAgICAgIGlmIChlLmdldElEKCkgPT0gV2luZG93RXZlbnQuV0lORE9XX0NMT1NJTkcpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTsKKyAgICAgICAgICAgICAgICB0aGlzLmRpc3Bvc2UoKTsKKworICAgICAgICAgICAgICAgIGlmIChhcHBsZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBhcHBsZXQuZGVtb0Nsb3NlZCgpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ2FsZW5kYXJQYW5lbCBleHRlbmRzIENhbnZhcyB7CisKKyAgICAgICAgcHVibGljIENhbGVuZGFyUGFuZWwoIExvY2FsZSBsb2NhbGUgKSB7CisgICAgICAgICAgICBzZXQobG9jYWxlLCBsb2NhbGUsIG5ldyBEYXRlKCkpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0Q2FsZW5kYXJMb2NhbGUoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAgICAgc2V0KGxvY2FsZSwgZkRpc3BsYXlMb2NhbGUsIGZDYWxlbmRhci5nZXRUaW1lKCkpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0RGlzcGxheUxvY2FsZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICBzZXQoZkNhbGVuZGFyTG9jYWxlLCBsb2NhbGUsIGZDYWxlbmRhci5nZXRUaW1lKCkpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0KERhdGUgZGF0ZSkgeworICAgICAgICAgICAgc2V0KGZDYWxlbmRhckxvY2FsZSwgZkRpc3BsYXlMb2NhbGUsIGRhdGUpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0KExvY2FsZSBsb2MsIExvY2FsZSBkaXNwbGF5LCBEYXRlIGRhdGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChmQ2FsZW5kYXJMb2NhbGUgPT0gbnVsbCB8fCAhbG9jLmVxdWFscyhmQ2FsZW5kYXJMb2NhbGUpKSB7CisgICAgICAgICAgICAgICAgZkNhbGVuZGFyTG9jYWxlID0gbG9jOworICAgICAgICAgICAgICAgIGZDYWxlbmRhciA9IENhbGVuZGFyLmdldEluc3RhbmNlKGZDYWxlbmRhckxvY2FsZSk7CisgICAgICAgICAgICAgICAgZkFsbEhvbGlkYXlzID0gSG9saWRheS5nZXRIb2xpZGF5cyhmQ2FsZW5kYXJMb2NhbGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZEaXNwbGF5TG9jYWxlID09IG51bGwgfHwgIWRpc3BsYXkuZXF1YWxzKGZEaXNwbGF5TG9jYWxlKSkgeworICAgICAgICAgICAgICAgIGZEaXNwbGF5TG9jYWxlID0gZGlzcGxheTsKKyAgICAgICAgICAgICAgICBmU3ltYm9scyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhmRGlzcGxheUxvY2FsZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZTdGFydE9mTW9udGggPSBkYXRlOworCisgICAgICAgICAgICBkaXJ0eSA9IHRydWU7CisgICAgICAgICAgICByZXBhaW50KCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBhZGQoaW50IGZpZWxkLCBpbnQgZGVsdGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZChmQ2FsZW5kYXIpIHsKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXIuc2V0VGltZShmU3RhcnRPZk1vbnRoKTsKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXIuYWRkKGZpZWxkLCBkZWx0YSk7CisgICAgICAgICAgICAgICAgZlN0YXJ0T2ZNb250aCA9IGZDYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkaXJ0eSA9IHRydWU7CisgICAgICAgICAgICByZXBhaW50KCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciBnZXRDYWxlbmRhcigpIHsKKyAgICAgICAgICAgIHJldHVybiBmQ2FsZW5kYXI7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgTG9jYWxlIGdldENhbGVuZGFyTG9jYWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIGZDYWxlbmRhckxvY2FsZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBMb2NhbGUgZ2V0RGlzcGxheUxvY2FsZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBmRGlzcGxheUxvY2FsZTsKKyAgICAgICAgfQorCisKKyAgICAgICAgcHVibGljIERhdGUgZmlyc3RPZk1vbnRoKCkgeworICAgICAgICAgICAgcmV0dXJuIGZTdGFydE9mTW9udGg7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIERhdGUgc3RhcnRPZk1vbnRoKERhdGUgZGF0ZUluTW9udGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZChmQ2FsZW5kYXIpIHsKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXIuc2V0VGltZShkYXRlSW5Nb250aCk7ICAgICAgICAgICAgIC8vIFRPRE86IHN5bmNocm9uaXphdGlvbgorCisgICAgICAgICAgICAgICAgaW50IGVyYSA9IGZDYWxlbmRhci5nZXQoQ2FsZW5kYXIuRVJBKTsKKyAgICAgICAgICAgICAgICBpbnQgeWVhciA9IGZDYWxlbmRhci5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgICAgICAgICAgaW50IG1vbnRoID0gZkNhbGVuZGFyLmdldChDYWxlbmRhci5NT05USCk7CisKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXIuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXIuc2V0KENhbGVuZGFyLkVSQSwgZXJhKTsKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXIuc2V0KENhbGVuZGFyLllFQVIsIHllYXIpOworICAgICAgICAgICAgICAgIGZDYWxlbmRhci5zZXQoQ2FsZW5kYXIuTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgICAgICAgICBmQ2FsZW5kYXIuc2V0KENhbGVuZGFyLkRBVEUsIDEpOworCisgICAgICAgICAgICAgICAgcmV0dXJuIGZDYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgY2FsY3VsYXRlKCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEFzIGEgd29ya2Fyb3VuZCBmb3IgSkRLIDEuMS4zIGFuZCBiZWxvdywgd2hlcmUgQ2FsZW5kYXJzIGFuZCB0aW1lCisgICAgICAgICAgICAvLyB6b25lcyBhcmUgYSBiaXQgZ29vZnksIGFsd2F5cyBzZXQgbXkgY2FsZW5kYXIncyB0aW1lIHpvbmUgdG8gVVRDLgorICAgICAgICAgICAgLy8gWW91IHdvdWxkIHRoaW5rIEkgd291bGQgd2FudCB0byBkbyB0aGlzIGluIHRoZSAic2V0IiBmdW5jdGlvbiBhYm92ZSwKKyAgICAgICAgICAgIC8vIGJ1dCBpZiBJIGRvIHRoYXQsIHRoZSBwcm9ncmFtIGhhbmdzIHdoZW4gdGhpcyBjbGFzcyBpcyBsb2FkZWQsCisgICAgICAgICAgICAvLyBwZXJoYXBzIGR1ZSB0byBzb21lIHNvcnQgb2Ygc3RhdGljIGluaXRpYWxpemF0aW9uIG9yZGVyaW5nIHByb2JsZW0uCisgICAgICAgICAgICAvLyBTbyBJIGRvIGl0IGhlcmUgaW5zdGVhZC4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBmQ2FsZW5kYXIuc2V0VGltZVpvbmUobmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKSk7CisKKyAgICAgICAgICAgIENhbGVuZGFyIGMgPSAoQ2FsZW5kYXIpZkNhbGVuZGFyLmNsb25lKCk7IC8vIFRlbXBvcmFyeSBjb3B5CisKKyAgICAgICAgICAgIGZTdGFydE9mTW9udGggPSBzdGFydE9mTW9udGgoZlN0YXJ0T2ZNb250aCk7CisKKyAgICAgICAgICAgIC8vIFN0YXNoIGF3YXkgYSBmZXcgdXNlZnVsIGNvbnN0YW50cyBmb3IgdGhpcyBjYWxlbmRhciBhbmQgZGlzcGxheQorICAgICAgICAgICAgbWluRGF5ID0gYy5nZXRNaW5pbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgICAgIGRheXNJbldlZWsgPSBjLmdldE1heGltdW0oQ2FsZW5kYXIuREFZX09GX1dFRUspIC0gbWluRGF5ICsgMTsKKworICAgICAgICAgICAgZmlyc3REYXlPZldlZWsgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShmRGlzcGxheUxvY2FsZSkuZ2V0Rmlyc3REYXlPZldlZWsoKTsKKworICAgICAgICAgICAgLy8gU3Rhc2ggYXdheSBhIERhdGUgZm9yIHRoZSBzdGFydCBvZiB0aGlzIG1vbnRoCisKKyAgICAgICAgICAgIC8vIEZpbmQgdGhlIGRheSBvZiB3ZWVrIG9mIHRoZSBmaXJzdCBkYXkgaW4gdGhpcyBtb250aAorICAgICAgICAgICAgYy5zZXRUaW1lKGZTdGFydE9mTW9udGgpOworICAgICAgICAgICAgZmlyc3REYXlJbk1vbnRoID0gYy5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOworCisgICAgICAgICAgICAvLyBOb3cgZmluZCB0aGUgIyBvZiBkYXlzIGluIHRoZSBtb250aAorICAgICAgICAgICAgYy5yb2xsKENhbGVuZGFyLkRBVEUsIGZhbHNlKTsKKyAgICAgICAgICAgIGRheXNJbk1vbnRoID0gYy5nZXQoQ2FsZW5kYXIuREFURSk7CisKKyAgICAgICAgICAgIC8vIEZpbmFsbHksIGZpbmQgdGhlIGVuZCBvZiB0aGUgbW9udGgsIGkuZS4gdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IG9uZQorICAgICAgICAgICAgYy5yb2xsKENhbGVuZGFyLkRBVEUsIHRydWUpOworICAgICAgICAgICAgYy5hZGQoQ2FsZW5kYXIuTU9OVEgsIDEpOworICAgICAgICAgICAgYy5nZXRUaW1lKCk7ICAgICAgICAvLyBKREsgMS4xLjIgYnVnIHdvcmthcm91bmQKKyAgICAgICAgICAgIGMuYWRkKENhbGVuZGFyLlNFQ09ORCwgLTEpOworICAgICAgICAgICAgRGF0ZSBlbmRPZk1vbnRoID0gYy5nZXRUaW1lKCk7CisKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG51bWJlciBvZiBmdWxsIG9yIHBhcnRpYWwgd2Vla3MgaW4gdGhpcyBtb250aC4KKyAgICAgICAgICAgIC8vIFRvIGRvIHRoaXMgSSBjYW4ganVzdCByZXVzZSB0aGUgY29kZSB0aGF0IGNhbGN1bGF0ZXMgd2hpY2gKKyAgICAgICAgICAgIC8vIGNhbGVuZGFyIGNlbGwgY29udGFpbnMgYSBnaXZlbiBkYXRlLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIG51bVdlZWtzID0gZGF0ZVRvQ2VsbChkYXlzSW5Nb250aCkueSAtIGRhdGVUb0NlbGwoMSkueSArIDE7CisKKyAgICAgICAgICAgIC8vIFJlbWVtYmVyIHdoaWNoIGhvbGlkYXlzIGZhbGwgb24gd2hpY2ggZGF5cyBpbiB0aGlzIG1vbnRoLAorICAgICAgICAgICAgLy8gdG8gc2F2ZSB0aGUgdHJvdWJsZSBvZiBoYXZpbmcgdG8gZG8gaXQgbGF0ZXIKKyAgICAgICAgICAgIGZIb2xpZGF5cy5zZXRTaXplKDApOworCisgICAgICAgICAgICBmb3IgKGludCBoID0gMDsgaCA8IGZBbGxIb2xpZGF5cy5sZW5ndGg7IGgrKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmU3RhcnRPZk1vbnRoOworICAgICAgICAgICAgICAgIHdoaWxlICggKGQgPSBmQWxsSG9saWRheXNbaF0uZmlyc3RCZXR3ZWVuKGQsIGVuZE9mTW9udGgpICkgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGMuc2V0VGltZShkKTsKKyAgICAgICAgICAgICAgICAgICAgZkhvbGlkYXlzLmFkZEVsZW1lbnQoIG5ldyBIb2xpZGF5SW5mbyhjLmdldChDYWxlbmRhci5EQVRFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkFsbEhvbGlkYXlzW2hdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQWxsSG9saWRheXNbaF0uZ2V0RGlzcGxheU5hbWUoZkRpc3BsYXlMb2NhbGUpICkpOworCisgICAgICAgICAgICAgICAgICAgIGQuc2V0VGltZSggZC5nZXRUaW1lKCkgKyAxMDAwICk7ICAgIC8vICJkKysiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZGlydHkgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5TRVQgPSAyOworCisgICAgICAgIC8qCisgICAgICAgICogQ29udmVydCBmcm9tIHRoZSBkYXkgbnVtYmVyIHdpdGhpbiBhIG1vbnRoICgxLWJhc2VkKQorICAgICAgICAqIHRvIHRoZSBjZWxsIGNvb3JkaW5hdGVzIG9uIHRoZSBjYWxlbmRhciAoMC1iYXNlZCkKKyAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIGRhdGVUb0NlbGwoaW50IGRhdGUsIFBvaW50IHBvcykKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGNlbGwgPSAoZGF0ZSArIGZpcnN0RGF5SW5Nb250aCAtIGZpcnN0RGF5T2ZXZWVrIC0gbWluRGF5KTsKKyAgICAgICAgICAgIGlmIChmaXJzdERheUluTW9udGggPCBmaXJzdERheU9mV2VlaykgeworICAgICAgICAgICAgICAgIGNlbGwgKz0gZGF5c0luV2VlazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcG9zLnggPSBjZWxsICUgZGF5c0luV2VlazsKKyAgICAgICAgICAgIHBvcy55ID0gY2VsbCAvIGRheXNJbldlZWs7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBQb2ludCBkYXRlVG9DZWxsKGludCBkYXRlKSB7CisgICAgICAgICAgICBQb2ludCBwID0gbmV3IFBvaW50KDAsMCk7CisgICAgICAgICAgICBkYXRlVG9DZWxsKGRhdGUsIHApOworICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKSB7CisKKyAgICAgICAgICAgIGlmIChkaXJ0eSkgeworICAgICAgICAgICAgICAgIGNhbGN1bGF0ZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBQb2ludCBjZWxsUG9zID0gbmV3IFBvaW50KDAsMCk7ICAgICAvLyBUZW1wb3JhcnkgdmFyaWFibGUKKyAgICAgICAgICAgIERpbWVuc2lvbiBkID0gZ2V0U2l6ZSgpOworCisgICAgICAgICAgICBnLnNldENvbG9yKERlbW9VdGlsaXR5LmJnQ29sb3IpOworICAgICAgICAgICAgZy5maWxsUmVjdCgwLDAsZC53aWR0aCxkLmhlaWdodCk7CisKKyAgICAgICAgICAgIC8vIERyYXcgdGhlIGRheSBuYW1lcyBhdCB0aGUgdG9wCisgICAgICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgICAgIGcuc2V0Rm9udChEZW1vVXRpbGl0eS5sYWJlbEZvbnQpOworICAgICAgICAgICAgRm9udE1ldHJpY3MgZm0gPSBnLmdldEZvbnRNZXRyaWNzKCk7CisgICAgICAgICAgICBpbnQgbGFiZWxIZWlnaHQgPSBmbS5nZXRIZWlnaHQoKSArIElOU0VUICogMjsKKworICAgICAgICAgICAgaW50IHYgPSBmbS5nZXRBc2NlbnQoKSArIElOU0VUOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXlzSW5XZWVrOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpbnQgZGF5TnVtID0gKGkgKyBtaW5EYXkgKyBmaXJzdERheU9mV2VlayAtIDIpICUgZGF5c0luV2VlayArIDE7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRheU5hbWUgPSBmU3ltYm9scy5nZXRXZWVrZGF5cygpW2RheU51bV07CisKKyAgICAgICAgICAgICAgICBpbnQgaCA9IChpbnQpIChkLndpZHRoICogKGkgKyAwLjUpKSAvIGRheXNJbldlZWs7CisgICAgICAgICAgICAgICAgaCAtPSBmbS5zdHJpbmdXaWR0aChkYXlOYW1lKSAvIDI7CisKKyAgICAgICAgICAgICAgICBnLmRyYXdTdHJpbmcoZGF5TmFtZSwgaCwgdik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRvdWJsZSBjZWxsSGVpZ2h0ID0gKGQuaGVpZ2h0IC0gbGFiZWxIZWlnaHQgLSAxKSAvIG51bVdlZWtzOworICAgICAgICAgICAgZG91YmxlIGNlbGxXaWR0aCA9IChkb3VibGUpKGQud2lkdGggLSAxKSAvIGRheXNJbldlZWs7CisKKyAgICAgICAgICAgIC8vIERyYXcgYSB3aGl0ZSBiYWNrZ3JvdW5kIGluIHRoZSBwYXJ0IG9mIHRoZSBjYWxlbmRhcgorICAgICAgICAgICAgLy8gdGhhdCBkaXNwbGF5cyB0aGlzIG1vbnRoLgorICAgICAgICAgICAgLy8gRmlyc3QgZmlndXJlIG91dCBob3cgbXVjaCBvZiB0aGUgZmlyc3Qgd2VlayBzaG91bGQgYmUgc2hhZGVkLgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IoQ29sb3Iud2hpdGUpOworICAgICAgICAgICAgICAgIGRhdGVUb0NlbGwoMSwgY2VsbFBvcyk7CisgICAgICAgICAgICAgICAgaW50IHdpZHRoID0gKGludCkoY2VsbFBvcy54KmNlbGxXaWR0aCk7ICAvLyBXaWR0aCBvZiB1bnNoYWRlZCBhcmVhCisKKyAgICAgICAgICAgICAgICBnLmZpbGxSZWN0KChpbnQpKHdpZHRoKSwgbGFiZWxIZWlnaHQgLAorICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoZC53aWR0aCAtIHdpZHRoKSwgKGludCljZWxsSGVpZ2h0KTsKKworICAgICAgICAgICAgICAgIC8vIEFsbCBvZiB0aGUgaW50ZXJtZWRpYXRlIHdlZWtzIGdldCBzaGFkZWQgY29tcGxldGVseQorICAgICAgICAgICAgICAgIGcuZmlsbFJlY3QoMCwgKGludCkobGFiZWxIZWlnaHQgKyBjZWxsSGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLndpZHRoLCAoaW50KShjZWxsSGVpZ2h0ICogKG51bVdlZWtzIC0gMikpKTsKKworICAgICAgICAgICAgICAgIC8vIE5vdyBmaWd1cmUgb3V0IHRoZSBsYXN0IHdlZWsuCisgICAgICAgICAgICAgICAgZGF0ZVRvQ2VsbChkYXlzSW5Nb250aCwgY2VsbFBvcyk7CisgICAgICAgICAgICAgICAgd2lkdGggPSAoaW50KSgoY2VsbFBvcy54KzEpKmNlbGxXaWR0aCk7ICAvLyBXaWR0aCBvZiBzaGFkZWQgYXJlYQorCisgICAgICAgICAgICAgICAgZy5maWxsUmVjdCgwLCAoaW50KShsYWJlbEhlaWdodCArIChudW1XZWVrcy0xKSAqIGNlbGxIZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLCAoaW50KShjZWxsSGVpZ2h0KSk7CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIERyYXcgdGhlIFgvWSBncmlkIGxpbmVzCisgICAgICAgICAgICBnLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IG51bVdlZWtzOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpbnQgeSA9IChpbnQpKGxhYmVsSGVpZ2h0ICsgaSAqIGNlbGxIZWlnaHQpOworICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUoMCwgeSwgZC53aWR0aCAtIDEsIHkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gZGF5c0luV2VlazsgaSsrKSB7CisgICAgICAgICAgICAgICAgaW50IHggPSAoaW50KShpICogY2VsbFdpZHRoKTsKKyAgICAgICAgICAgICAgICBnLmRyYXdMaW5lKHgsIGxhYmVsSGVpZ2h0LCB4LCBkLmhlaWdodCAtIDEpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBOb3cgbG9vcCB0aHJvdWdoIGFsbCBvZiB0aGUgZGF5cyBpbiB0aGUgbW9udGgsIGZpZ3VyZSBvdXQgd2hlcmUKKyAgICAgICAgICAgIC8vIHRoZXkgZ28gaW4gdGhlIGdyaWQsIGFuZCBkcmF3IHRoZSBkYXkgIyBmb3IgZWFjaCBvbmUKKyAgICAgICAgICAgIEZvbnQgbnVtYmVyRm9udCA9IG5ldyBGb250KCJIZWx2ZXRpY2EiLEZvbnQuUExBSU4sMTIpOworICAgICAgICAgICAgLy8gbm90IHVzZWQgRm9udCBob2xpZGF5Rm9udCA9IERlbW9VdGlsaXR5LmNyZWRpdEZvbnQ7CisKKyAgICAgICAgICAgIENhbGVuZGFyIGMgPSAoQ2FsZW5kYXIpZkNhbGVuZGFyLmNsb25lKCk7CisgICAgICAgICAgICBjLnNldFRpbWUoZlN0YXJ0T2ZNb250aCk7CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxLCBoID0gMDsgaSA8PSBkYXlzSW5Nb250aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgZy5zZXRGb250KG51bWJlckZvbnQpOworICAgICAgICAgICAgICAgIGcuc2V0Q29sb3IoQ29sb3IuYmxhY2spOworICAgICAgICAgICAgICAgIGZtID0gZy5nZXRGb250TWV0cmljcygpOworCisgICAgICAgICAgICAgICAgZGF0ZVRvQ2VsbChpLCBjZWxsUG9zKTsKKyAgICAgICAgICAgICAgICBpbnQgeCA9IChpbnQpKChjZWxsUG9zLnggKyAxKSAqIGNlbGxXaWR0aCk7CisgICAgICAgICAgICAgICAgaW50IHkgPSAoaW50KShjZWxsUG9zLnkgKiBjZWxsSGVpZ2h0ICsgbGFiZWxIZWlnaHQpOworCisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGkpOworICAgICAgICAgICAgICAgIFN0cmluZyBkYXlOdW0gPSBidWZmZXIudG9TdHJpbmcoKTsKKworICAgICAgICAgICAgICAgIHggPSB4IC0gSU5TRVQgLSBmbS5zdHJpbmdXaWR0aChkYXlOdW0pOworICAgICAgICAgICAgICAgIHkgPSB5ICsgZm0uZ2V0QXNjZW50KCkgKyBJTlNFVDsKKworICAgICAgICAgICAgICAgIGcuZHJhd1N0cmluZyhkYXlOdW0sIHgsIHkpOworCisgICAgICAgICAgICAgICAgLy8gU2VlIGlmIGFueSBvZiB0aGUgaG9saWRheXMgbGFuZCBvbiB0aGlzIGRheS4uLi4KKyAgICAgICAgICAgICAgICBIb2xpZGF5SW5mbyBpbmZvID0gbnVsbDsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQgPSAwOworCisgICAgICAgICAgICAgICAgLy8gQ29vcmRpbmF0ZXMgb2YgbG93ZXItbGVmdCBjb3JuZXIgb2YgY2VsbC4KKyAgICAgICAgICAgICAgICB4ID0gKGludCkoKGNlbGxQb3MueCkgKiBjZWxsV2lkdGgpOworICAgICAgICAgICAgICAgIHkgPSAoaW50KSgoY2VsbFBvcy55KzEpICogY2VsbEhlaWdodCkgKyBsYWJlbEhlaWdodDsKKworICAgICAgICAgICAgICAgIHdoaWxlIChoIDwgZkhvbGlkYXlzLnNpemUoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgKGluZm8gPSAoSG9saWRheUluZm8pZkhvbGlkYXlzLmVsZW1lbnRBdChoKSkuZGF0ZSA8PSBpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluZm8uZGF0ZSA9PSBpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBEcmF3IHRoZSBob2xpZGF5IGhlcmUuCisgICAgICAgICAgICAgICAgICAgICAgICBnLnNldEZvbnQobnVtYmVyRm9udCk7CisgICAgICAgICAgICAgICAgICAgICAgICBnLnNldENvbG9yKENvbG9yLnJlZCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIERlbW9UZXh0Qm94IGJveCA9IG5ldyBEZW1vVGV4dEJveChnLCBpbmZvLm5hbWUsIChpbnQpKGNlbGxXaWR0aCAtIElOU0VUKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBib3guZHJhdyhnLCB4ICsgSU5TRVQsIHkgLSBJTlNFVCAtIGJveC5nZXRIZWlnaHQoKSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHkgLT0gKGJveC5nZXRIZWlnaHQoKSArIElOU0VUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEltcG9ydGFudCBzdGF0ZSB2YXJpYWJsZXMKKyAgICAgICAgcHJpdmF0ZSBMb2NhbGUgICAgICAgICAgICAgIGZDYWxlbmRhckxvY2FsZTsgICAgLy8gV2hvc2UgY2FsZW5kYXIKKyAgICAgICAgcHJpdmF0ZSBDYWxlbmRhciAgICAgICAgICAgIGZDYWxlbmRhcjsgICAgICAgICAgLy8gQ2FsZW5kYXIgZm9yIGNhbGN1bGF0aW9ucworCisgICAgICAgIHByaXZhdGUgTG9jYWxlICAgICAgICAgICAgICBmRGlzcGxheUxvY2FsZTsgICAgIC8vIEhvdyB0byBkaXNwbGF5IGl0CisgICAgICAgIHByaXZhdGUgRGF0ZUZvcm1hdFN5bWJvbHMgICBmU3ltYm9sczsgICAgICAgICAgIC8vIFN5bWJvbHMgZm9yIGRyYXdpbmcKKworICAgICAgICBwcml2YXRlIERhdGUgICAgICAgICAgICAgICAgZlN0YXJ0T2ZNb250aDsgICAgICAvLyAwMDowMDowMCBvbiBmaXJzdCBkYXkgb2YgbW9udGgKKworICAgICAgICAvLyBDYWNoZWQgY2FsY3VsYXRpb25zIHRvIG1ha2UgZHJhd2luZyBmYXN0ZXIuCisgICAgICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBtaW5EYXk7ICAgICAgICAgICAvLyBNaW5pbXVtIGxlZ2FsIGRheSAjCisgICAgICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBkYXlzSW5XZWVrOyAgICAgICAvLyAjIG9mIGRheXMgaW4gYSB3ZWVrCisgICAgICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBmaXJzdERheU9mV2VlazsgICAvLyBGaXJzdCBkYXkgdG8gZGlzcGxheSBpbiB3ZWVrCisgICAgICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBudW1XZWVrczsgICAgICAgICAvLyAjIGZ1bGwgb3IgcGFydGlhbCB3ZWVrcyBpbiBtb250aAorICAgICAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgZGF5c0luTW9udGg7ICAgICAgLy8gIyBkYXlzIGluIHRoaXMgbW9udGgKKyAgICAgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGZpcnN0RGF5SW5Nb250aDsgIC8vIERheSBvZiB3ZWVrIG9mIGZpcnN0IGRheSBpbiBtb250aAorCisgICAgICAgIHByaXZhdGUgdHJhbnNpZW50IEhvbGlkYXlbXSBmQWxsSG9saWRheXM7CisgICAgICAgIHByaXZhdGUgdHJhbnNpZW50IFZlY3RvciAgICBmSG9saWRheXMgPSBuZXcgVmVjdG9yKDUsNSk7CisKKyAgICAgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBkaXJ0eSA9IHRydWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgSG9saWRheUluZm8geworICAgICAgICBwdWJsaWMgSG9saWRheUluZm8oaW50IGRhdGUsIEhvbGlkYXkgaG9saWRheSwgU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMuZGF0ZSA9IGRhdGU7CisgICAgICAgICAgICB0aGlzLmhvbGlkYXkgPSBob2xpZGF5OworICAgICAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBIb2xpZGF5IGhvbGlkYXk7CisgICAgICAgIHB1YmxpYyBpbnQgZGF0ZTsKKyAgICAgICAgcHVibGljIFN0cmluZyBuYW1lOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2hvbGlkYXkvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2hvbGlkYXkvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQwNWUyZjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaG9saWRheS9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorSG9saWRheSBkZW1vIGFwcGxpY2F0aW9uLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0FwcGxldEZyYW1lLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9BcHBsZXRGcmFtZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVkZmYzODMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9BcHBsZXRGcmFtZS5qYXZhCkBAIC0wLDAgKzEsMTQ1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsOworaW1wb3J0IGphdmEuYXBwbGV0Lio7CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworLyoqCisgKiA8cD5BIEZyYW1lIHRoYXQgcnVucyBhbiBBcHBsZXQgd2l0aGluIGl0c2VsZiwgbWFraW5nIGl0IHBvc3NpYmxlCisgKiBmb3IgYW4gYXBwbGV0IHRvIHJ1biBhcyBhbiBhcHBsaWNhdGlvbi4gIFVzYWdlOgorICoKKyAqIDxwcmU+CisgKiBwdWJsaWMgY2xhc3MgTXlBcHBsZXQgZXh0ZW5kcyBBcHBsZXQgeworICogICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAqICAgICAgICAgTXlBcHBsZXQgYXBwbGV0ID0gbmV3IE15QXBwbGV0KCk7CisgKiAgICAgICAgIG5ldyBBcHBsZXRGcmFtZSgiTXkgQXBwbGV0IFJ1bm5pbmcgQXMgQW4gQXBwIiwgYXBwbGV0LCA2NDAsIDQ4MCk7CisgKiAgICAgfQorICogICAgIC4uLgorICogfQorICogPHByZT4KKyAqCisgKiA8cD5Db3B5cmlnaHQgJmNvcHk7IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK3B1YmxpYyBjbGFzcyBBcHBsZXRGcmFtZSBleHRlbmRzIEZyYW1lIGltcGxlbWVudHMgQXBwbGV0U3R1YiwgQXBwbGV0Q29udGV4dCB7CisKKyAgICBBcHBsZXQgYXBwbGV0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICJcdTAwQTkgSUJNIENvcnBvcmF0aW9uIDE5OTkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBGcmFtZSBydW5uaW5nIHRoZSBnaXZlbiBBcHBsZXQgd2l0aCB0aGUgZGVmYXVsdCBzaXplCisgICAgICogb2YgNjQwIGJ5IDQ4MC4KKyAgICAgKiBXaGVuIHRoZSBGcmFtZSBpcyBjbG9zZWQsIHRoZSBhcHBsZXQncyBzdG9wKCkgbWV0aG9kIGlzIGNhbGxlZCwKKyAgICAgKiB0aGUgRnJhbWUgaXMgZGlzcG9zZSgpZCBvZiwgYW5kIFN5c3RlbS5leGl0KDApIGlzIGNhbGxlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lIHRoZSBGcmFtZSB0aXRsZQorICAgICAqIEBwYXJhbSBhcHBsZXQgdGhlIGFwcGxldCB0byBiZSBydW4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXBwbGV0RnJhbWUoU3RyaW5nIG5hbWUsIEFwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgdGhpcyhuYW1lLCBhcHBsZXQsIDY0MCwgNDgwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBGcmFtZSBydW5uaW5nIHRoZSBnaXZlbiBBcHBsZXQgd2l0aCB0aGUgZ2l2ZW4gc2l6ZS4KKyAgICAgKiBXaGVuIHRoZSBGcmFtZSBpcyBjbG9zZWQsIHRoZSBhcHBsZXQncyBzdG9wKCkgbWV0aG9kIGlzIGNhbGxlZCwKKyAgICAgKiB0aGUgRnJhbWUgaXMgZGlzcG9zZSgpZCBvZiwgYW5kIFN5c3RlbS5leGl0KDApIGlzIGNhbGxlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lIHRoZSBGcmFtZSB0aXRsZQorICAgICAqIEBwYXJhbSBhcHBsZXQgdGhlIGFwcGxldCB0byBiZSBydW4KKyAgICAgKiBAcGFyYW0gd2lkdGggd2lkdGggb2YgdGhlIEZyYW1lCisgICAgICogQHBhcmFtIGhlaWdodCBoZWlnaHQgb2YgdGhlIEZyYW1lCisgICAgICovCisgICAgcHVibGljIEFwcGxldEZyYW1lKFN0cmluZyBuYW1lLCBBcHBsZXQgYXBwbGV0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIHsKKyAgICAgICAgc3VwZXIobmFtZSk7CisgICAgICAgIHRoaXMuYXBwbGV0ID0gYXBwbGV0OworICAgICAgICBhcHBsZXQuc2V0U3R1Yih0aGlzKTsKKworICAgICAgICBzZXRTaXplKHdpZHRoLCBoZWlnaHQpOworICAgICAgICBhZGQoIkNlbnRlciIsIGFwcGxldCk7CisgICAgICAgIHNob3coKTsKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBBcHBsZXRGcmFtZS50aGlzLmFwcGxldC5zdG9wKCk7CisgICAgICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICBhcHBsZXQuaW5pdCgpOworICAgICAgICBhcHBsZXQuc3RhcnQoKTsKKyAgICB9CisKKyAgICAvLyBBcHBsZXRTdHViIEFQSQorICAgIHB1YmxpYyB2b2lkIGFwcGxldFJlc2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpIHsKKyAgICAgICAgc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgQXBwbGV0Q29udGV4dCBnZXRBcHBsZXRDb250ZXh0KCkgeworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgVVJMIGdldENvZGVCYXNlKCkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgVVJMIGdldERvY3VtZW50QmFzZSgpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGFyYW1ldGVyKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHJldHVybiAiUEFSQU1FVEVSIjsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0FjdGl2ZSgpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIAorICAgIC8vIEFwcGxldENvbnRleHQgQVBJCisgICAgcHVibGljIEFwcGxldCBnZXRBcHBsZXQoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGFwcGxldDsKKyAgICB9CisKKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0QXBwbGV0cygpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHVibGljIEF1ZGlvQ2xpcCBnZXRBdWRpb0NsaXAoVVJMIHVybCkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgSW1hZ2UgZ2V0SW1hZ2UoVVJMIHVybCkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzaG93RG9jdW1lbnQoVVJMIHVybCkge30KKyAgICBwdWJsaWMgdm9pZCBzaG93RG9jdW1lbnQoVVJMIHVybCwgU3RyaW5nIHRhcmdldCkge30KKworICAgIHB1YmxpYyB2b2lkIHNob3dTdGF0dXMoU3RyaW5nIHN0YXR1cykgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc3RhdHVzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0U3RyZWFtKFN0cmluZyBrZXksIElucHV0U3RyZWFtIHN0cmVhbSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICB9CisgICAgCisgICAgcHVibGljIElucHV0U3RyZWFtIGdldFN0cmVhbShTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0U3RyZWFtS2V5cygpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb0FwcGxldC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb0FwcGxldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJjNTI3YzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9EZW1vQXBwbGV0LmphdmEKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTctMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsOworCitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRGVtb0FwcGxldCBleHRlbmRzIGphdmEuYXBwbGV0LkFwcGxldCB7CisgICAgcHJpdmF0ZSBCdXR0b24gICBkZW1vQnV0dG9uOworICAgIHByaXZhdGUgRnJhbWUgICAgZGVtb0ZyYW1lOworICAgIHByaXZhdGUgc3RhdGljIGludCBkZW1vRnJhbWVDb3VudCA9IDA7CisKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgRnJhbWUgY3JlYXRlRGVtb0ZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KTsKKyAgICBwcm90ZWN0ZWQgRGltZW5zaW9uIGdldERlZmF1bHRGcmFtZVNpemUoRGVtb0FwcGxldCBhcHBsZXQsIEZyYW1lIGYpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEaW1lbnNpb24oNzAwLCA1NTApOworICAgIH0KKworICAgIC8vQ3JlYXRlIGEgYnV0dG9uIHRoYXQgd2lsbCBkaXNwbGF5IHRoZSBkZW1vCisgICAgcHVibGljIHZvaWQgaW5pdCgpCisgICAgeworICAgICAgICBzZXRCYWNrZ3JvdW5kKENvbG9yLndoaXRlKTsKKyAgICAgICAgZGVtb0J1dHRvbiA9IG5ldyBCdXR0b24oIkRlbW8iKTsKKyAgICAgICAgZGVtb0J1dHRvbi5zZXRCYWNrZ3JvdW5kKENvbG9yLnllbGxvdyk7CisgICAgICAgIGFkZCggZGVtb0J1dHRvbiApOworCisgICAgICAgIGRlbW9CdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGlmIChlLmdldElEKCkgPT0gQWN0aW9uRXZlbnQuQUNUSU9OX1BFUkZPUk1FRCkgeworICAgICAgICAgICAgICAgICAgICBkZW1vQnV0dG9uLnNldExhYmVsKCJsb2FkaW5nIik7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRlbW9GcmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgIGRlbW9GcmFtZSA9IGNyZWF0ZURlbW9GcmFtZShEZW1vQXBwbGV0LnRoaXMpOworICAgICAgICAgICAgICAgICAgICAgICBzaG93RGVtbygpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgZGVtb0J1dHRvbi5zZXRMYWJlbCgiRGVtbyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzaG93RGVtbygpCisgICAgeworICAgICAgICBkZW1vRnJhbWUgPSBjcmVhdGVEZW1vRnJhbWUodGhpcyk7CisgICAgICAgIGRlbW9GcmFtZS5kb0xheW91dCgpOworICAgICAgICBEaW1lbnNpb24gZCA9IGdldERlZmF1bHRGcmFtZVNpemUodGhpcywgZGVtb0ZyYW1lKTsKKyAgICAgICAgZGVtb0ZyYW1lLnNldFNpemUoZC53aWR0aCwgZC5oZWlnaHQpOworICAgICAgICBkZW1vRnJhbWUuc2hvdygpOworICAgICAgICBkZW1vRnJhbWVPcGVuZWQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkZW1vQ2xvc2VkKCkKKyAgICB7CisgICAgICAgIGRlbW9GcmFtZSA9IG51bGw7CisgICAgICAgIGRlbW9GcmFtZUNsb3NlZCgpOworICAgIH0KKworICAgIHByb3RlY3RlZCBzdGF0aWMgdm9pZCBkZW1vRnJhbWVPcGVuZWQoKSB7CisgICAgICAgIGRlbW9GcmFtZUNvdW50Kys7CisgICAgfQorICAgIHByb3RlY3RlZCBzdGF0aWMgdm9pZCBkZW1vRnJhbWVDbG9zZWQoKSB7CisgICAgICAgIGlmICgtLWRlbW9GcmFtZUNvdW50ID09IDApIHsKKyAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICB9CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9EZW1vVGV4dEJveC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb1RleHRCb3guamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYjZhOWM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb1RleHRCb3guamF2YQpAQCAtMCwwICsxLDk1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ny0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsOworCisKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLmF3dC4qOworCitwdWJsaWMgY2xhc3MgRGVtb1RleHRCb3ggeworCisgICAgcHVibGljIERlbW9UZXh0Qm94KEdyYXBoaWNzIGcsIFN0cmluZyB0ZXh0LCBpbnQgd2lkdGgpCisgICAgeworICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICB0aGlzLmNoYXJzID0gbmV3IGNoYXJbdGV4dC5sZW5ndGgoKV07CisgICAgICAgIHRleHQuZ2V0Q2hhcnMoMCwgdGV4dC5sZW5ndGgoKSwgY2hhcnMsIDApOworCisgICAgICAgIHRoaXMud2lkdGggPSB3aWR0aDsKKyAgICAgICAgdGhpcy5wb3J0ID0gZzsKKyAgICAgICAgdGhpcy5tZXRyaWNzID0gZy5nZXRGb250TWV0cmljcygpOworCisgICAgICAgIGJyZWFrVGV4dCgpOworICAgIH0KKworICAgIHB1YmxpYyAgaW50IGdldEhlaWdodCgpIHsKKyAgICAgICAgcmV0dXJuIChuYnJlYWtzICsgMSkgKiBtZXRyaWNzLmdldEhlaWdodCgpOworICAgIH0KKworICAgIHB1YmxpYyAgdm9pZCBkcmF3KEdyYXBoaWNzIGcsIGludCB4LCBpbnQgeSkKKyAgICB7CisgICAgICAgIGludCBpbmRleCA9IDA7CisKKyAgICAgICAgeSArPSBtZXRyaWNzLmdldEFzY2VudCgpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmJyZWFrczsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBnLmRyYXdDaGFycyhjaGFycywgaW5kZXgsIGJyZWFrUG9zW2ldIC0gaW5kZXgsIHgsIHkpOworICAgICAgICAgICAgaW5kZXggPSBicmVha1Bvc1tpXTsKKyAgICAgICAgICAgIHkgKz0gbWV0cmljcy5nZXRIZWlnaHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGcuZHJhd0NoYXJzKGNoYXJzLCBpbmRleCwgY2hhcnMubGVuZ3RoIC0gaW5kZXgsIHgsIHkpOworICAgIH0KKworCisgICAgcHJpdmF0ZSB2b2lkIGJyZWFrVGV4dCgpCisgICAgeworICAgICAgICBpZiAobWV0cmljcy5jaGFyc1dpZHRoKGNoYXJzLCAwLCBjaGFycy5sZW5ndGgpID4gd2lkdGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgICAgICBpdGVyLnNldFRleHQodGV4dCk7CisKKyAgICAgICAgICAgIGludCBzdGFydCA9IGl0ZXIuZmlyc3QoKTsKKyAgICAgICAgICAgIGludCBlbmQgPSBzdGFydDsKKyAgICAgICAgICAgIGludCBwb3M7CisKKyAgICAgICAgICAgIHdoaWxlICggKHBvcyA9IGl0ZXIubmV4dCgpKSAhPSBCcmVha0l0ZXJhdG9yLkRPTkUgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCB3ID0gbWV0cmljcy5jaGFyc1dpZHRoKGNoYXJzLCBzdGFydCwgcG9zIC0gc3RhcnQpOworICAgICAgICAgICAgICAgIGlmICh3ID4gd2lkdGgpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBnb25lIHBhc3QgdGhlIG1heGltdW0gd2lkdGgsIHNvIGJyZWFrIHRoZSBsaW5lCisgICAgICAgICAgICAgICAgICAgIGlmIChlbmQgPiBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgd2FzIGF0IGxlYXN0IG9uZSBicmVhayBwb3NpdGlvbiBiZWZvcmUgdGhpcyBwb2ludAorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtQb3NbbmJyZWFrcysrXSA9IGVuZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZW5kOworICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gcG9zOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgd2VyZW4ndCBhbnkgYnJlYWsgcG9zaXRpb25zIGJlZm9yZSB0aGlzIG9uZSwgc28KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCB0aGlzIHdvcmQgb3ZlcmZsb3cgdGhlIG1hcmdpbiAoeXVjaykKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrUG9zW25icmVha3MrK10gPSBwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGVuZCA9IHBvczsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IHBvc2l0aW9uIHN0aWxsIGZpdHMgb24gdGhlIGxpbmU7IGl0J3MgdGhlIGJlc3QKKyAgICAgICAgICAgICAgICAgICAgLy8gdGVudGF0aXZlIGJyZWFrIHBvc2l0aW9uIHdlIGhhdmUgc28gZmFyLgorICAgICAgICAgICAgICAgICAgICBlbmQgPSBwb3M7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyAgICAgICAgICB0ZXh0OworICAgIHByaXZhdGUgY2hhcltdICAgICAgICAgIGNoYXJzOworICAgIHByaXZhdGUgR3JhcGhpY3MgICAgICAgIHBvcnQ7CisgICAgcHJpdmF0ZSBGb250TWV0cmljcyAgICAgbWV0cmljczsKKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICB3aWR0aDsKKworICAgIHByaXZhdGUgaW50W10gICAgICAgICAgIGJyZWFrUG9zID0gbmV3IGludFsxMF07IC8vIFRPRE86IGdldCByZWFsCisgICAgcHJpdmF0ZSBpbnQgICAgICAgICAgICAgbmJyZWFrcyA9IDA7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvRGVtb1V0aWxpdHkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9VdGlsaXR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWM1YzNmNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0RlbW9VdGlsaXR5LmphdmEKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk3LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGw7CisKK2ltcG9ydCBqYXZhLmF3dC4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgRGVtb1V0aWxpdHkKK3sKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZvbnQgdGl0bGVGb250ID0gbmV3IEZvbnQoIlRpbWVzUm9tYW4iLEZvbnQuQk9MRCwxOCk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBGb250IGxhYmVsRm9udCA9IG5ldyBGb250KCJUaW1lc1JvbWFuIixGb250LkJPTEQsMTQpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRm9udCBjaG9pY2VGb250ID0gbmV3IEZvbnQoIkhlbHZldGljYSIsRm9udC5CT0xELDEyKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZvbnQgZWRpdEZvbnQgPSBuZXcgRm9udCgiSGVsdmV0aWNhIixGb250LlBMQUlOLDE0KTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZvbnQgY3JlZGl0Rm9udCA9IG5ldyBGb250KCJIZWx2ZXRpY2EiLEZvbnQuUExBSU4sMTApOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRm9udCBudW1iZXJGb250ID0gbmV3IEZvbnQoInNhbnNzZXJpZiIsIEZvbnQuUExBSU4sIDE0KTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29sb3IgYmdDb2xvciA9IENvbG9yLmxpZ2h0R3JheTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbG9yIGNob2ljZUNvbG9yID0gQ29sb3Iud2hpdGU7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQxID0KKyAgICAgICAgIkNvcHlyaWdodCAoQykgSUJNIENvcnAgYW5kIG90aGVycy4gMTk5NyAtIDIwMDIgQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICAvKioKKyAgICBQcm92aWRlcyBlYXN5IHdheSB0byB1c2UgYmFzaWMgZnVuY3Rpb25zIG9mIEdyaWRCYWdMYXlvdXQsIHdpdGhvdXQKKyAgICB0aGUgY29tcGxpY2F0aW9ucy4gQWZ0ZXIgYnVpbGRpbmcgYSBwYW5lbCwgYW5kIGluc2VydGluZyBhbGwgdGhlCisgICAgKiBzdWJjb21wb25lbnRzLCBjYWxsIHRoaXMgdG8gbGF5IGl0IG91dCBpbiB0aGUgZGVzaXJlZCBudW1iZXIgb2YgY29sdW1ucy4KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBmaXhHcmlkKENvbnRhaW5lciBjb250LCBpbnQgY29sdW1ucykgeworICAgICAgICBHcmlkQmFnTGF5b3V0IGdyaWRiYWcgPSBuZXcgR3JpZEJhZ0xheW91dCgpOworICAgICAgICBjb250LnNldExheW91dChncmlkYmFnKTsKKworICAgICAgICBHcmlkQmFnQ29uc3RyYWludHMgYyA9IG5ldyBHcmlkQmFnQ29uc3RyYWludHMoKTsKKyAgICAgICAgYy5maWxsID0gR3JpZEJhZ0NvbnN0cmFpbnRzLlZFUlRJQ0FMOworICAgICAgICBjLndlaWdodHggPSAxLjA7CisgICAgICAgIGMuaW5zZXRzID0gbmV3IEluc2V0cygyLDIsMiwyKTsKKworICAgICAgICBDb21wb25lbnRbXSBjb21wb25lbnRzID0gY29udC5nZXRDb21wb25lbnRzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29tcG9uZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgLy8gbm90IHVzZWQgaW50IGNvbE51bWJlciA9IGklY29sdW1uczsKKyAgICAgICAgICAgIGMuZ3JpZHdpZHRoID0gMTsgICAgLy8gZGVmYXVsdAorICAgICAgICAgICAgaWYgKChpJWNvbHVtbnMpID09IGNvbHVtbnMgLSAxKQorICAgICAgICAgICAgICAgIGMuZ3JpZHdpZHRoID0gR3JpZEJhZ0NvbnN0cmFpbnRzLlJFTUFJTkRFUjsgICAgLy8gbGFzdCBpbiBncmlkCisgICAgICAgICAgICBpZiAoY29tcG9uZW50c1tpXSBpbnN0YW5jZW9mIExhYmVsKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoICgoKExhYmVsKWNvbXBvbmVudHNbaV0pLmdldEFsaWdubWVudCgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBMYWJlbC5DRU5URVI6IGMuYW5jaG9yID0gR3JpZEJhZ0NvbnN0cmFpbnRzLkNFTlRFUjsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBMYWJlbC5MRUZUOiBjLmFuY2hvciA9IEdyaWRCYWdDb25zdHJhaW50cy5XRVNUOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIExhYmVsLlJJR0hUOiBjLmFuY2hvciA9IEdyaWRCYWdDb25zdHJhaW50cy5FQVNUOyBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBncmlkYmFnLnNldENvbnN0cmFpbnRzKGNvbXBvbmVudHNbaV0sIGMpOworICAgICAgICB9CisKKyAgICB9CisKKyAgICAvKioKKyAgICBQcm92aWRlcyBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIHNwYWNpbmcgYXJvdW5kIGFuIG9iamVjdCBpbiBhIEdyaWRCYWdMYXlvdXQuCisgICAgQ2FsbCBBRlRFUiBmaXhHcmlkQmFnLCBwYXNzaW5nIGluIHRoZSBjb250YWluZXIsIHRoZSBjb21wb25lbnQsIGFuZCB0aGUKKyAgICBuZXcgaW5zZXRzLgorICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldEluc2V0cyhDb250YWluZXIgY29udCwgQ29tcG9uZW50IGNvbXAsIEluc2V0cyBpbnNldHMpIHsKKyAgICAgICAgR3JpZEJhZ0xheW91dCBnYmwgPSAoR3JpZEJhZ0xheW91dCljb250LmdldExheW91dCgpOworICAgICAgICBHcmlkQmFnQ29uc3RyYWludHMgZyA9IGdibC5nZXRDb25zdHJhaW50cyhjb21wKTsKKyAgICAgICAgZy5pbnNldHMgPSBpbnNldHM7CisgICAgICAgIGdibC5zZXRDb25zdHJhaW50cyhjb21wLGcpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgUGFuZWwgY3JlYXRlU3BhY2VyKCkgeworICAgICAgICBQYW5lbCBzcGFjZXIgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgc3BhY2VyLnNldExheW91dChudWxsKTsKKyAgICAgICAgc3BhY2VyLnNldFNpemUoMTAwMCwgMSk7CisgICAgICAgIHJldHVybiBzcGFjZXI7CisgICAgfQorCisgICAgLy8gdG8gYXZvaWQgZ29vZnkgdXBkYXRlcyBhbmQgbWlzcGxhY2VkIGN1cnNvcnMKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0VGV4dChUZXh0Q29tcG9uZW50IGFyZWEsIFN0cmluZyBuZXdUZXh0KSB7CisgICAgICAgIFN0cmluZyBmb28gPSBhcmVhLmdldFRleHQoKTsKKyAgICAgICAgaWYgKGZvby5lcXVhbHMobmV3VGV4dCkpIHJldHVybjsKKyAgICAgICAgYXJlYS5zZXRUZXh0KG5ld1RleHQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0d28gbG9jYWxzLiBSZXR1cm4gdmFsdWUgaXMgbmVnYXRpdmUKKyAgICAgKiBpZiB0aGV5J3JlIGRpZmZlcmVudCwgYW5kIG1vcmUgcG9zaXRpdmUgdGhlIG1vcmUKKyAgICAgKiBmaWVsZHMgdGhhdCBtYXRjaC4KKyAgICAgKi8KKyAgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZUxvY2FsZXMoTG9jYWxlIGwxLCBMb2NhbGUgbDIpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0ID0gLTE7CisgICAgICAgIAorICAgICAgICBpZiAobDEuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMobDIuZ2V0TGFuZ3VhZ2UoKSkpIHsKKyAgICAgICAgICAgIHJlc3VsdCArPSAxOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobDEuZ2V0Q291bnRyeSgpLmVxdWFscyhsMi5nZXRDb3VudHJ5KCkpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ICs9IDE7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGwxLmdldFZhcmlhbnQoKS5lcXVhbHMobDIuZ2V0VmFyaWFudCgpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgRzcgbG9jYWxlIGxpc3QgZm9yIGRlbW9zLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0RzdMb2NhbGVzKCkgeworICAgICAgICByZXR1cm4gbG9jYWxlTGlzdDsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgTG9jYWxlW10gbG9jYWxlTGlzdCA9IHsKKyAgICAgICAgbmV3IExvY2FsZSgiREEiLCAiREsiLCAiIiksCisgICAgICAgIG5ldyBMb2NhbGUoIkVOIiwgIlVTIiwgIiIpLAorICAgICAgICBuZXcgTG9jYWxlKCJFTiIsICJHQiIsICIiKSwKKyAgICAgICAgbmV3IExvY2FsZSgiRU4iLCAiQ0EiLCAiIiksCisgICAgICAgIG5ldyBMb2NhbGUoIkZSIiwgIkZSIiwgIiIpLAorICAgICAgICBuZXcgTG9jYWxlKCJGUiIsICJDQSIsICIiKSwKKyAgICAgICAgbmV3IExvY2FsZSgiREUiLCAiREUiLCAiIiksCisgICAgICAgIG5ldyBMb2NhbGUoIklUIiwgIklUIiwgIiIpLAorICAgIC8vbmV3IExvY2FsZSgiSkEiLCAiSlAiLCAiIiksCisgICAgfTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9pbXBsL0R1bWJUZXh0Q29tcG9uZW50LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9EdW1iVGV4dENvbXBvbmVudC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI5ZjZlOTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9EdW1iVGV4dENvbXBvbmVudC5qYXZhCkBAIC0wLDAgKzEsNzk4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsOworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuKjsKK2ltcG9ydCBqYXZhLnRleHQuKjsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuKjsKKworLy8gTElVOiBDaGFuZ2VkIGZyb20gZmluYWwgdG8gbm9uLWZpbmFsCitwdWJsaWMgY2xhc3MgRHVtYlRleHRDb21wb25lbnQgZXh0ZW5kcyBDYW52YXMKKyAgaW1wbGVtZW50cyBLZXlMaXN0ZW5lciwgTW91c2VMaXN0ZW5lciwgTW91c2VNb3Rpb25MaXN0ZW5lciwgRm9jdXNMaXN0ZW5lcgorICB7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPQorICAgICAgIkNvcHlyaWdodCBcdTAwQTkgMTk5OCwgTWFyayBEYXZpcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworICAgIHByaXZhdGUgdHJhbnNpZW50IHN0YXRpYyBib29sZWFuIERFQlVHID0gZmFsc2U7CisKKyAgICBwcml2YXRlIFN0cmluZyBjb250ZW50cyA9ICIiOworICAgIHByaXZhdGUgU2VsZWN0aW9uIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKKyAgICBwcml2YXRlIGludCBhY3RpdmVTdGFydCA9IC0xOworICAgIHByaXZhdGUgYm9vbGVhbiBlZGl0YWJsZSA9IHRydWU7CisKKyAgICBwcml2YXRlIHRyYW5zaWVudCBTZWxlY3Rpb24gdGVtcFNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oKTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGZvY3VzOworICAgIHByaXZhdGUgdHJhbnNpZW50IEJyZWFrSXRlcmF0b3IgbGluZUJyZWFrZXIgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgIHByaXZhdGUgdHJhbnNpZW50IEJyZWFrSXRlcmF0b3Igd29yZEJyZWFrZXIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgIHByaXZhdGUgdHJhbnNpZW50IEJyZWFrSXRlcmF0b3IgY2hhckJyZWFrZXIgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGxpbmVBc2NlbnQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGxpbmVIZWlnaHQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGxpbmVMZWFkaW5nOworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBsYXN0SGVpZ2h0ID0gMTA7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGxhc3RXaWR0aCA9IDUwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfTElORVMgPSAyMDA7IC8vIExJVTogVXNlIHN5bWJvbGljIG5hbWUKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnRbXSBsaW5lU3RhcnRzID0gbmV3IGludFtNQVhfTElORVNdOyAvLyBMSVUKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgbGluZUNvdW50ID0gMTsKKworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gdmFsaWQgPSBmYWxzZTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBGb250TWV0cmljcyBmbTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIHJlZG9MaW5lcyA9IHRydWU7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBkb3VibGVDbGljayA9IGZhbHNlOworICAgIHByaXZhdGUgdHJhbnNpZW50IFRleHRMaXN0ZW5lciB0ZXh0TGlzdGVuZXI7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgQWN0aW9uTGlzdGVuZXIgc2VsZWN0aW9uTGlzdGVuZXI7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgSW1hZ2UgY2FjaGVJbWFnZTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBEaW1lbnNpb24gbXlTaXplOworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCB4SW5zZXQgPSA1OworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCB5SW5zZXQgPSA1OworICAgIHByaXZhdGUgdHJhbnNpZW50IFBvaW50IHN0YXJ0UG9pbnQgPSBuZXcgUG9pbnQoKTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBQb2ludCBlbmRQb2ludCA9IG5ldyBQb2ludCgpOworICAgIHByaXZhdGUgdHJhbnNpZW50IFBvaW50IGNhcmV0UG9pbnQgPSBuZXcgUG9pbnQoKTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBQb2ludCBhY3RpdmVQb2ludCA9IG5ldyBQb2ludCgpOworICAgIAorICAgIC8vcHJpdmF0ZSB0cmFuc2llbnQgc3RhdGljIFN0cmluZyBjbGlwQm9hcmQ7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENSID0gJ1wwMTUnOyAvLyBMSVUKKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBwdWJsaWMgRHVtYlRleHRDb21wb25lbnQoKSB7CisgICAgICAgIGFkZE1vdXNlTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGFkZE1vdXNlTW90aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGFkZEtleUxpc3RlbmVyKHRoaXMpOworICAgICAgICBhZGRGb2N1c0xpc3RlbmVyKHRoaXMpOworICAgICAgICBzZXRDdXJzb3IoQ3Vyc29yLmdldFByZWRlZmluZWRDdXJzb3IoQ3Vyc29yLlRFWFRfQ1VSU09SKSk7CisKKyAgICB9CisKKy8vID09PT09PT09PT09PT09PT0gRXZlbnRzID09PT09PT09PT09PT09PT09PT09CisKKyAgICAvLyBwdWJsaWMgYm9vbGVhbiBpc0ZvY3VzVHJhdmVyc2FibGUoKSB7IHJldHVybiB0cnVlOyB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRBY3Rpb25MaXN0ZW5lcihBY3Rpb25MaXN0ZW5lciBsKSB7CisgICAgICAgIHNlbGVjdGlvbkxpc3RlbmVyID0gQVdURXZlbnRNdWx0aWNhc3Rlci5hZGQoc2VsZWN0aW9uTGlzdGVuZXIsIGwpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUFjdGlvbkxpc3RlbmVyKEFjdGlvbkxpc3RlbmVyIGwpIHsKKyAgICAgICAgc2VsZWN0aW9uTGlzdGVuZXIgPSBBV1RFdmVudE11bHRpY2FzdGVyLnJlbW92ZShzZWxlY3Rpb25MaXN0ZW5lciwgbCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkVGV4dExpc3RlbmVyKFRleHRMaXN0ZW5lciBsKSB7CisgICAgICAgIHRleHRMaXN0ZW5lciA9IEFXVEV2ZW50TXVsdGljYXN0ZXIuYWRkKHRleHRMaXN0ZW5lciwgbCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlVGV4dExpc3RlbmVyKFRleHRMaXN0ZW5lciBsKSB7CisgICAgICAgIHRleHRMaXN0ZW5lciA9IEFXVEV2ZW50TXVsdGljYXN0ZXIucmVtb3ZlKHRleHRMaXN0ZW5lciwgbCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBwcmVzc2VkOworCisgICAgcHVibGljIHZvaWQgbW91c2VQcmVzc2VkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigibW91c2VQcmVzc2VkIik7CisgICAgICAgIGlmIChwcmVzc2VkKSB7CisgICAgICAgICAgICBzZWxlY3QoZSxmYWxzZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb3VibGVDbGljayA9IGUuZ2V0Q2xpY2tDb3VudCgpID4gMTsKKyAgICAgICAgICAgIHJlcXVlc3RGb2N1cygpOworICAgICAgICAgICAgc2VsZWN0KGUsIHRydWUpOworICAgICAgICAgICAgcHJlc3NlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtb3VzZURyYWdnZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJtb3VzZURyYWdnZWQiKTsKKyAgICAgICAgc2VsZWN0KGUsIGZhbHNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtb3VzZVJlbGVhc2VkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigibW91c2VSZWxlYXNlZCIpOworICAgICAgICBwcmVzc2VkID0gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VFbnRlcmVkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICAvL2lmIChwcmVzc2VkKSBzZWxlY3QoZSwgZmFsc2UpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZSl7CisgICAgICAgIC8vaWYgKHByZXNzZWQpIHNlbGVjdChlLCBmYWxzZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VDbGlja2VkKE1vdXNlRXZlbnQgZSkge30KKyAgICBwdWJsaWMgdm9pZCBtb3VzZU1vdmVkKE1vdXNlRXZlbnQgZSkge30KKworCisgICAgcHVibGljIHZvaWQgZm9jdXNHYWluZWQoRm9jdXNFdmVudCBlKSB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJmb2N1c0dhaW5lZCIpOworICAgICAgICBmb2N1cyA9IHRydWU7CisgICAgICAgIHZhbGlkID0gZmFsc2U7CisgICAgICAgIHJlcGFpbnQoMTYpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBmb2N1c0xvc3QoRm9jdXNFdmVudCBlKSB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJmb2N1c0xvc3QiKTsKKyAgICAgICAgZm9jdXMgPSBmYWxzZTsKKyAgICAgICAgdmFsaWQgPSBmYWxzZTsKKyAgICAgICAgcmVwYWludCgxNik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2VsZWN0KE1vdXNlRXZlbnQgZSwgYm9vbGVhbiBmaXJzdCkgeworICAgICAgICBzZXRLZXlTdGFydCgtMSk7CisgICAgICAgIHBvaW50Mk9mZnNldChlLmdldFBvaW50KCksIHRlbXBTZWxlY3Rpb24pOworICAgICAgICBpZiAoZmlyc3QpIHsKKyAgICAgICAgICAgIGlmICgoZS5nZXRNb2RpZmllcnMoKSAmIElucHV0RXZlbnQuU0hJRlRfTUFTSykgPT0gMCkgeworICAgICAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uYW5jaG9yID0gdGVtcFNlbGVjdGlvbi5jYXJldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBmaXggd29yZHMKKyAgICAgICAgaWYgKGRvdWJsZUNsaWNrKSB7CisgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLmV4cGFuZCh3b3JkQnJlYWtlcik7CisgICAgICAgIH0KKyAgICAgICAgc2VsZWN0KHRlbXBTZWxlY3Rpb24pOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBrZXlQcmVzc2VkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgaW50IGNvZGUgPSBlLmdldEtleUNvZGUoKTsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImtleVByZXNzZWQgIgorICAgICAgICAgICsgaGV4KChjaGFyKWNvZGUpICsgIiwgIiArIGhleCgoY2hhcillLmdldE1vZGlmaWVycygpKSk7CisgICAgICAgIGludCBzdGFydCA9IHNlbGVjdGlvbi5nZXRTdGFydCgpOworICAgICAgICBpbnQgZW5kID0gc2VsZWN0aW9uLmdldEVuZCgpOworICAgICAgICBib29sZWFuIHNoaWZ0ID0gKGUuZ2V0TW9kaWZpZXJzKCkgJiBLZXlFdmVudC5TSElGVF9NQVNLKSAhPSAwOworICAgICAgICBib29sZWFuIGN0cmwgPSAoZS5nZXRNb2RpZmllcnMoKSAmIEtleUV2ZW50LkNUUkxfTUFTSykgIT0gMDsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgc3dpdGNoIChjb2RlKSB7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfUToKKyAgICAgICAgICAgIGlmICghY3RybCB8fCAhZWRpdGFibGUpIGJyZWFrOworICAgICAgICAgICAgc2V0S2V5U3RhcnQoLTEpOworICAgICAgICAgICAgZml4SGV4KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19WOgorICAgICAgICAgICAgaWYgKCFjdHJsKSBicmVhazsKKyAgICAgICAgICAgIGlmICghZWRpdGFibGUpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmdldFRvb2xraXQoKS5iZWVwKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHBhc3RlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19DOgorICAgICAgICAgICAgaWYgKCFjdHJsKSBicmVhazsKKyAgICAgICAgICAgIGNvcHkoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1g6CisgICAgICAgICAgICBpZiAoIWN0cmwpIGJyZWFrOworICAgICAgICAgICAgaWYgKCFlZGl0YWJsZSkgeworICAgICAgICAgICAgICAgIHRoaXMuZ2V0VG9vbGtpdCgpLmJlZXAoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY29weSgpOworICAgICAgICAgICAgICAgIGluc2VydFRleHQoIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfQToKKyAgICAgICAgICAgIGlmICghY3RybCkgYnJlYWs7CisgICAgICAgICAgICBzZXRLZXlTdGFydCgtMSk7CisgICAgICAgICAgICBzZWxlY3QoSW50ZWdlci5NQVhfVkFMVUUsIDAsIGZhbHNlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1JJR0hUOgorICAgICAgICAgICAgc2V0S2V5U3RhcnQoLTEpOworICAgICAgICAgICAgdGVtcFNlbGVjdGlvbi5zZXQoc2VsZWN0aW9uKTsKKyAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24ubmV4dEJvdW5kKGN0cmwgPyB3b3JkQnJlYWtlciA6IGNoYXJCcmVha2VyLCArMSwgc2hpZnQpOworICAgICAgICAgICAgc2VsZWN0KHRlbXBTZWxlY3Rpb24pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfTEVGVDoKKyAgICAgICAgICAgIHNldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uc2V0KHNlbGVjdGlvbik7CisgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLm5leHRCb3VuZChjdHJsID8gd29yZEJyZWFrZXIgOiBjaGFyQnJlYWtlciwgLTEsIHNoaWZ0KTsKKyAgICAgICAgICAgIHNlbGVjdCh0ZW1wU2VsZWN0aW9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1VQOiAvLyBMSVU6IEFkZCBzdXBwb3J0IGZvciB1cCBhcnJvdworICAgICAgICAgICAgc2V0S2V5U3RhcnQoLTEpOworICAgICAgICAgICAgdGVtcFNlbGVjdGlvbi5zZXQoc2VsZWN0aW9uKTsKKyAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uY2FyZXQgPSBsaW5lRGVsdGEodGVtcFNlbGVjdGlvbi5jYXJldCwgLTEpOworICAgICAgICAgICAgaWYgKCFzaGlmdCkgeworICAgICAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uYW5jaG9yID0gdGVtcFNlbGVjdGlvbi5jYXJldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNlbGVjdCh0ZW1wU2VsZWN0aW9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0RPV046IC8vIExJVTogQWRkIHN1cHBvcnQgZm9yIGRvd24gYXJyb3cKKyAgICAgICAgICAgIHNldEtleVN0YXJ0KC0xKTsKKyAgICAgICAgICAgIHRlbXBTZWxlY3Rpb24uc2V0KHNlbGVjdGlvbik7CisgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLmNhcmV0ID0gbGluZURlbHRhKHRlbXBTZWxlY3Rpb24uY2FyZXQsICsxKTsKKyAgICAgICAgICAgIGlmICghc2hpZnQpIHsKKyAgICAgICAgICAgICAgICB0ZW1wU2VsZWN0aW9uLmFuY2hvciA9IHRlbXBTZWxlY3Rpb24uY2FyZXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWxlY3QodGVtcFNlbGVjdGlvbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ERUxFVEU6IC8vIExJVTogQWRkIGRlbGV0ZSBrZXkgc3VwcG9ydAorICAgICAgICAgICAgaWYgKCFlZGl0YWJsZSkgYnJlYWs7CisgICAgICAgICAgICBzZXRLZXlTdGFydCgtMSk7CisgICAgICAgICAgICBpZiAoY29udGVudHMubGVuZ3RoKCkgPT0gMCkgYnJlYWs7CisgICAgICAgICAgICBzdGFydCA9IHNlbGVjdGlvbi5nZXRTdGFydCgpOworICAgICAgICAgICAgZW5kID0gc2VsZWN0aW9uLmdldEVuZCgpOworICAgICAgICAgICAgaWYgKHN0YXJ0ID09IGVuZCkgeworICAgICAgICAgICAgICAgICsrZW5kOworICAgICAgICAgICAgICAgIGlmIChlbmQgPiBjb250ZW50cy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBnZXRUb29sa2l0KCkuYmVlcCgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVwbGFjZVJhbmdlKCIiLCBzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBjb3B5KCkgeworICAgICAgICBDbGlwYm9hcmQgY2IgPSB0aGlzLmdldFRvb2xraXQoKS5nZXRTeXN0ZW1DbGlwYm9hcmQoKTsKKyAgICAgICAgU3RyaW5nU2VsZWN0aW9uIHNzID0gbmV3IFN0cmluZ1NlbGVjdGlvbigKKyAgICAgICAgICAgIGNvbnRlbnRzLnN1YnN0cmluZyhzZWxlY3Rpb24uZ2V0U3RhcnQoKSwgc2VsZWN0aW9uLmdldEVuZCgpKSk7CisgICAgICAgIGNiLnNldENvbnRlbnRzKHNzLCBzcyk7CisgICAgfQorICAgIAorICAgIHZvaWQgcGFzdGUgKCkgeworICAgICAgICBDbGlwYm9hcmQgY2IgPSB0aGlzLmdldFRvb2xraXQoKS5nZXRTeXN0ZW1DbGlwYm9hcmQoKTsKKyAgICAgICAgVHJhbnNmZXJhYmxlIHQgPSBjYi5nZXRDb250ZW50cyh0aGlzKTsKKyAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhpcy5nZXRUb29sa2l0KCkuYmVlcCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IChTdHJpbmcpIHQuZ2V0VHJhbnNmZXJEYXRhKERhdGFGbGF2b3Iuc3RyaW5nRmxhdm9yKTsKKyAgICAgICAgICAgIGluc2VydFRleHQodGVtcCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aGlzLmdldFRvb2xraXQoKS5iZWVwKCk7CisgICAgICAgIH0gICAgICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMSVU6IEdpdmVuIGFuIG9mZnNldCBpbnRvIGNvbnRlbnRzLCBtb3ZlcyB1cCBvciBkb3duIGJ5IGxpbmVzLAorICAgICAqIGFjY29yZGluZyB0byBsaW5lU3RhcnRzW10uCisgICAgICogQHBhcmFtIG9mZiB0aGUgb2Zmc2V0IGludG8gY29udGVudHMKKyAgICAgKiBAcGFyYW0gZGVsdGEgaG93IG1hbnkgbGluZXMgdG8gbW92ZSB1cCAoPCAwKSBvciBkb3duICg+IDApCisgICAgICogQHJldHVybiB0aGUgbmV3IG9mZnNldCBpbnRvIGNvbnRlbnRzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGluZURlbHRhKGludCBvZmYsIGludCBkZWx0YSkgeworICAgICAgICBpbnQgbGluZSA9IGZpbmRMaW5lKG9mZiwgZmFsc2UpOworICAgICAgICBpbnQgcG9zSW5MaW5lID0gb2ZmIC0gbGluZVN0YXJ0c1tsaW5lXTsKKyAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJvZmY9IiArIG9mZiArICIgYXQgIiArIGxpbmUgKyAiOiIgKyBwb3NJbkxpbmUpOworICAgICAgICBsaW5lICs9IGRlbHRhOworICAgICAgICBpZiAobGluZSA8IDApIHsKKyAgICAgICAgICAgIGxpbmUgPSBwb3NJbkxpbmUgPSAwOworICAgICAgICB9IGVsc2UgaWYgKGxpbmUgPj0gbGluZUNvdW50KSB7CisgICAgICAgICAgICByZXR1cm4gY29udGVudHMubGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICAgICAgb2ZmID0gbGluZVN0YXJ0c1tsaW5lXSArIHBvc0luTGluZTsKKyAgICAgICAgaWYgKG9mZiA+PSBsaW5lU3RhcnRzW2xpbmUrMV0pIHsKKyAgICAgICAgICAgIG9mZiA9IGxpbmVTdGFydHNbbGluZSsxXSAtIDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9mZjsKKyAgICB9CisgICAgICAKKyAgICBwdWJsaWMgdm9pZCBrZXlSZWxlYXNlZChLZXlFdmVudCBlKSB7CisgICAgICAgIGludCBjb2RlID0gZS5nZXRLZXlDb2RlKCk7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJrZXlSZWxlYXNlZCAiCisgICAgICAgICAgKyBoZXgoKGNoYXIpY29kZSkgKyAiLCAiICsgaGV4KChjaGFyKWUuZ2V0TW9kaWZpZXJzKCkpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBrZXlUeXBlZChLZXlFdmVudCBlKSB7CisgICAgICAgIGNoYXIgY2ggPSBlLmdldEtleUNoYXIoKTsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImtleVR5cGVkICIKKyAgICAgICAgICArIGhleCgoY2hhciljaCkgKyAiLCAiICsgaGV4KChjaGFyKWUuZ2V0TW9kaWZpZXJzKCkpKTsKKyAgICAgICAgaWYgKChlLmdldE1vZGlmaWVycygpICYgS2V5RXZlbnQuQ1RSTF9NQVNLKSAhPSAwKSByZXR1cm47CisgICAgICAgIGludCBzdGFydCwgZW5kOworICAgICAgICBzd2l0Y2ggKGNoKSB7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuQ0hBUl9VTkRFRklORUQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19CQUNLX1NQQUNFOgorICAgICAgICAgICAgLy9zZXRLZXlTdGFydCgtMSk7CisgICAgICAgICAgICBpZiAoIWVkaXRhYmxlKSBicmVhazsKKyAgICAgICAgICAgIGlmIChjb250ZW50cy5sZW5ndGgoKSA9PSAwKSBicmVhazsKKyAgICAgICAgICAgIHN0YXJ0ID0gc2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgICAgICAgICBlbmQgPSBzZWxlY3Rpb24uZ2V0RW5kKCk7CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gZW5kKSB7CisgICAgICAgICAgICAgICAgLS1zdGFydDsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGdldFRvb2xraXQoKS5iZWVwKCk7IC8vIExJVTogQWRkIGF1ZGlvIGZlZWRiYWNrIG9mIE5PUAorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVwbGFjZVJhbmdlKCIiLCBzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIGJyZWFrOyAgICAgICAgCisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfREVMRVRFOgorICAgICAgICAgICAgLy9zZXRLZXlTdGFydCgtMSk7CisgICAgICAgICAgICBpZiAoIWVkaXRhYmxlKSBicmVhazsKKyAgICAgICAgICAgIGlmIChjb250ZW50cy5sZW5ndGgoKSA9PSAwKSBicmVhazsKKyAgICAgICAgICAgIHN0YXJ0ID0gc2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgICAgICAgICBlbmQgPSBzZWxlY3Rpb24uZ2V0RW5kKCk7CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gZW5kKSB7CisgICAgICAgICAgICAgICAgKytlbmQ7CisgICAgICAgICAgICAgICAgaWYgKGVuZCA+IGNvbnRlbnRzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGdldFRvb2xraXQoKS5iZWVwKCk7IC8vIExJVTogQWRkIGF1ZGlvIGZlZWRiYWNrIG9mIE5PUAorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVwbGFjZVJhbmdlKCIiLCBzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgaWYgKCFlZGl0YWJsZSkgYnJlYWs7CisgICAgICAgICAgICAvLyBMSVU6IERpc3BhdGNoIHRvIHN1YmNsYXNzIEFQSQorICAgICAgICAgICAgaGFuZGxlS2V5VHlwZWQoZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIExJVTogU3ViY2xhc3MgQVBJIGZvciBoYW5kbGluZyBvZiBrZXkgdHlwaW5nCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlS2V5VHlwZWQoS2V5RXZlbnQgZSkgeworICAgICAgICBpbnNlcnRUZXh0KFN0cmluZy52YWx1ZU9mKGUuZ2V0S2V5Q2hhcigpKSk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHNldEtleVN0YXJ0KGludCBrZXlTdGFydCkgeworICAgICAgICBpZiAoYWN0aXZlU3RhcnQgIT0ga2V5U3RhcnQpIHsKKyAgICAgICAgICAgIGFjdGl2ZVN0YXJ0ID0ga2V5U3RhcnQ7CisgICAgICAgICAgICByZXBhaW50KDEwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCB2YWxpZGF0ZUtleVN0YXJ0KCkgeworICAgICAgICBpZiAoYWN0aXZlU3RhcnQgPiBzZWxlY3Rpb24uZ2V0U3RhcnQoKSkgeworICAgICAgICAgICAgYWN0aXZlU3RhcnQgPSBzZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICAgICAgICAgIHJlcGFpbnQoMTApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBpbnQgZ2V0S2V5U3RhcnQoKSB7CisgICAgICAgIHJldHVybiBhY3RpdmVTdGFydDsKKyAgICB9CisKKy8vID09PT09PT09PT09PT09PT09PT09PSBDb250cm9sID09PT09PT09PT09PT09PT09PT09PT0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBzZXRFZGl0YWJsZShib29sZWFuIGIpIHsKKyAgICAgICAgZWRpdGFibGUgPSBiOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzRWRpdGFibGUoKSB7CisgICAgICAgIHJldHVybiBlZGl0YWJsZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoU2VsZWN0aW9uIG5ld1NlbGVjdGlvbikgeworICAgICAgICBuZXdTZWxlY3Rpb24ucGluKGNvbnRlbnRzKTsKKyAgICAgICAgaWYgKCFzZWxlY3Rpb24uZXF1YWxzKG5ld1NlbGVjdGlvbikpIHsKKyAgICAgICAgICAgIHNlbGVjdGlvbi5zZXQobmV3U2VsZWN0aW9uKTsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25MaXN0ZW5lciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9uTGlzdGVuZXIuYWN0aW9uUGVyZm9ybWVkKAorICAgICAgICAgICAgICAgICAgbmV3IEFjdGlvbkV2ZW50KHRoaXMsIEFjdGlvbkV2ZW50LkFDVElPTl9QRVJGT1JNRUQsCisgICAgICAgICAgICAgICAgICAgICJTZWxlY3Rpb24gQ2hhbmdlZCIsIDApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlcGFpbnQoMTApOworICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNlbGVjdChpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgc2VsZWN0KHN0YXJ0LCBlbmQsIGZhbHNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoaW50IHN0YXJ0LCBpbnQgZW5kLCBib29sZWFuIGNsaWNrQWZ0ZXIpIHsKKyAgICAgICAgdGVtcFNlbGVjdGlvbi5zZXQoc3RhcnQsIGVuZCwgY2xpY2tBZnRlcik7CisgICAgICAgIHNlbGVjdCh0ZW1wU2VsZWN0aW9uKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvblN0YXJ0KCkgeworICAgICAgICByZXR1cm4gc2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25FbmQoKSB7CisgICAgICAgIHJldHVybiBzZWxlY3Rpb24uZ2V0RW5kKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Qm91bmRzKGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSB7CisgICAgICAgIHN1cGVyLnNldEJvdW5kcyh4LHksdyxoKTsKKyAgICAgICAgcmVkb0xpbmVzID0gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldFByZWZlcnJlZFNpemUoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGltZW5zaW9uKGxhc3RXaWR0aCxsYXN0SGVpZ2h0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldE1heGltdW1TaXplKCkgeworICAgICAgICByZXR1cm4gbmV3IERpbWVuc2lvbihsYXN0V2lkdGgsbGFzdEhlaWdodCk7CisgICAgfQorCisgICAgcHVibGljIERpbWVuc2lvbiBnZXRNaW5pbXVtU2l6ZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEaW1lbnNpb24obGFzdEhlaWdodCxsYXN0SGVpZ2h0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFN0cmluZyB0ZXh0KSB7CisgICAgICAgIHNldFRleHQyKHRleHQpOworICAgICAgICBzZWxlY3QodGVtcFNlbGVjdGlvbi5zZXQoc2VsZWN0aW9uKS5waW4oY29udGVudHMpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0MihTdHJpbmcgdGV4dCkgeworICAgICAgICBjb250ZW50cyA9IHRleHQ7CisgICAgICAgIGNoYXJCcmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgIHdvcmRCcmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgIGxpbmVCcmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgIHJlZG9MaW5lcyA9IHRydWU7CisgICAgICAgIGlmICh0ZXh0TGlzdGVuZXIgIT0gbnVsbCkKKyAgICAgICAgICAgIHRleHRMaXN0ZW5lci50ZXh0VmFsdWVDaGFuZ2VkKAorICAgICAgICAgICAgICBuZXcgVGV4dEV2ZW50KHRoaXMsIFRleHRFdmVudC5URVhUX1ZBTFVFX0NIQU5HRUQpKTsKKyAgICAgICAgcmVwYWludCgxNik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaW5zZXJ0VGV4dChTdHJpbmcgdGV4dCkgeworICAgICAgICBpZiAoYWN0aXZlU3RhcnQgPT0gLTEpIGFjdGl2ZVN0YXJ0ID0gc2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgICAgIHJlcGxhY2VSYW5nZSh0ZXh0LCBzZWxlY3Rpb24uZ2V0U3RhcnQoKSwgc2VsZWN0aW9uLmdldEVuZCgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlUmFuZ2UoU3RyaW5nIHMsIGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBzZXRUZXh0Mihjb250ZW50cy5zdWJzdHJpbmcoMCxzdGFydCkgKyBzCisgICAgICAgICAgKyBjb250ZW50cy5zdWJzdHJpbmcoZW5kKSk7CisgICAgICAgIHNlbGVjdCh0ZW1wU2VsZWN0aW9uLnNldChzZWxlY3Rpb24pLgorICAgICAgICAgIGZpeEFmdGVyUmVwbGFjZShzdGFydCwgZW5kLCBzLmxlbmd0aCgpKSk7CisgICAgICAgIHZhbGlkYXRlS2V5U3RhcnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRleHQoKSB7CisgICAgICAgIHJldHVybiBjb250ZW50czsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRGb250KEZvbnQgZm9udCkgeworICAgICAgICBzdXBlci5zZXRGb250KGZvbnQpOworICAgICAgICByZWRvTGluZXMgPSB0cnVlOworICAgICAgICByZXBhaW50KDE2KTsKKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PT0gR3JhcGhpY3MgPT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHVibGljIHZvaWQgdXBkYXRlKEdyYXBoaWNzIGcpIHsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oInVwZGF0ZSIpOworICAgICAgICBwYWludChnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKSB7CisgICAgICAgIG15U2l6ZSA9IGdldFNpemUoKTsKKyAgICAgICAgaWYgKGNhY2hlSW1hZ2UgPT0gbnVsbAorICAgICAgICAgIHx8IGNhY2hlSW1hZ2UuZ2V0SGVpZ2h0KHRoaXMpICE9IG15U2l6ZS5oZWlnaHQKKyAgICAgICAgICB8fCBjYWNoZUltYWdlLmdldFdpZHRoKHRoaXMpICE9IG15U2l6ZS53aWR0aCkgeworICAgICAgICAgICAgY2FjaGVJbWFnZSA9IGNyZWF0ZUltYWdlKG15U2l6ZS53aWR0aCwgbXlTaXplLmhlaWdodCk7CisgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICghdmFsaWQgfHwgcmVkb0xpbmVzKSB7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigicGFpbnRpbmciKTsKKyAgICAgICAgICAgIHBhaW50MihjYWNoZUltYWdlLmdldEdyYXBoaWNzKCkpOworICAgICAgICAgICAgdmFsaWQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIC8vZ2V0VG9vbGtpdCgpLnN5bmMoKTsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImNvcHlpbmciKTsKKyAgICAgICAgZy5kcmF3SW1hZ2UoY2FjaGVJbWFnZSwKKyAgICAgICAgICAwLCAwLCBteVNpemUud2lkdGgsIG15U2l6ZS5oZWlnaHQsCisgICAgICAgICAgMCwgMCwgbXlTaXplLndpZHRoLCBteVNpemUuaGVpZ2h0LAorICAgICAgICAgIHRoaXMpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHBhaW50MihHcmFwaGljcyBnKSB7CisgICAgICAgIGcuY2xlYXJSZWN0KDAsIDAsIG15U2l6ZS53aWR0aCwgbXlTaXplLmhlaWdodCk7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJwcmludCIpOworICAgICAgICBpZiAoZm9jdXMpIGcuc2V0Q29sb3IoQ29sb3IuYmxhY2spOworICAgICAgICBlbHNlIGcuc2V0Q29sb3IoQ29sb3IuZ3JheSk7CisgICAgICAgIGcuZHJhd1JlY3QoMCwwLG15U2l6ZS53aWR0aC0xLG15U2l6ZS5oZWlnaHQtMSk7CisgICAgICAgIGcuc2V0Q2xpcCgxLDEsCisgICAgICAgICAgbXlTaXplLndpZHRoLTIsbXlTaXplLmhlaWdodC0yKTsKKyAgICAgICAgZy5zZXRDb2xvcihDb2xvci5ibGFjayk7CisgICAgICAgIGcuc2V0Rm9udChnZXRGb250KCkpOworICAgICAgICBmbSA9IGcuZ2V0Rm9udE1ldHJpY3MoKTsKKyAgICAgICAgbGluZUFzY2VudCA9IGZtLmdldEFzY2VudCgpOworICAgICAgICBsaW5lTGVhZGluZyA9IGZtLmdldExlYWRpbmcoKTsKKyAgICAgICAgbGluZUhlaWdodCA9IGxpbmVBc2NlbnQgKyBmbS5nZXREZXNjZW50KCkgKyBsaW5lTGVhZGluZzsKKyAgICAgICAgaW50IHkgPSB5SW5zZXQgKyBsaW5lQXNjZW50OworICAgICAgICBTdHJpbmcgbGFzdFN1YnN0cmluZyA9ICIiOworICAgICAgICBpZiAocmVkb0xpbmVzKSBmaXhMaW5lU3RhcnRzKG15U2l6ZS53aWR0aC14SW5zZXQteEluc2V0KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaW5lQ291bnQ7IHkgKz0gbGluZUhlaWdodCwgKytpKSB7CisgICAgICAgICAgICAvLyBMSVU6IERvbid0IGRpc3BsYXkgdGVybWluYXRpbmcgXk0gY2hhcmFjdGVycworICAgICAgICAgICAgaW50IGxpbSA9IGxpbmVTdGFydHNbaSsxXTsKKyAgICAgICAgICAgIGlmIChsaW0gPiAwICYmIGNvbnRlbnRzLmxlbmd0aCgpID4gMCAmJgorICAgICAgICAgICAgICAgIGNvbnRlbnRzLmNoYXJBdChsaW0tMSkgPT0gQ1IpIC0tbGltOworICAgICAgICAgICAgbGFzdFN1YnN0cmluZyA9IGNvbnRlbnRzLnN1YnN0cmluZyhsaW5lU3RhcnRzW2ldLGxpbSk7CisgICAgICAgICAgICBnLmRyYXdTdHJpbmcobGFzdFN1YnN0cmluZywgeEluc2V0LCB5KTsKKyAgICAgICAgfQorICAgICAgICBkcmF3U2VsZWN0aW9uKGcsIGxhc3RTdWJzdHJpbmcpOworICAgICAgICBsYXN0SGVpZ2h0ID0geSArIHlJbnNldCAtIGxpbmVIZWlnaHQgKyB5SW5zZXQ7CisgICAgICAgIGxhc3RXaWR0aCA9IG15U2l6ZS53aWR0aC14SW5zZXQteEluc2V0OworICAgIH0KKworICAgIHZvaWQgcGFpbnRSZWN0KEdyYXBoaWNzIGcsIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKSB7CisgICAgICAgIGlmIChmb2N1cykgeworICAgICAgICAgICAgZy5maWxsUmVjdCh4LCB5LCB3LCBoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGcuZHJhd1JlY3QoeCwgeSwgdy0xLCBoLTEpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZHJhd1NlbGVjdGlvbihHcmFwaGljcyBnLCBTdHJpbmcgbGFzdFN1YnN0cmluZykgeworICAgICAgICBnLnNldFhPUk1vZGUoQ29sb3IuYmxhY2spOworICAgICAgICBpZiAoYWN0aXZlU3RhcnQgIT0gLTEpIHsKKyAgICAgICAgICAgIG9mZnNldDJQb2ludChhY3RpdmVTdGFydCwgZmFsc2UsIGFjdGl2ZVBvaW50KTsKKyAgICAgICAgICAgIGcuc2V0Q29sb3IoQ29sb3IubWFnZW50YSk7CisgICAgICAgICAgICBpbnQgbGluZSA9IGFjdGl2ZVBvaW50LnggLSAxOworICAgICAgICAgICAgZy5maWxsUmVjdChsaW5lLCBhY3RpdmVQb2ludC55LCAxLCBsaW5lSGVpZ2h0KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2VsZWN0aW9uLmlzQ2FyZXQoKSkgeworICAgICAgICAgICAgb2Zmc2V0MlBvaW50KHNlbGVjdGlvbi5jYXJldCwgc2VsZWN0aW9uLmNsaWNrQWZ0ZXIsIGNhcmV0UG9pbnQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGZvY3VzKSBnLnNldENvbG9yKENvbG9yLmJsdWUpOworICAgICAgICAgICAgZWxzZSBnLnNldENvbG9yKENvbG9yLnllbGxvdyk7CisgICAgICAgICAgICBvZmZzZXQyUG9pbnQoc2VsZWN0aW9uLmdldFN0YXJ0KCksIHRydWUsIHN0YXJ0UG9pbnQpOworICAgICAgICAgICAgb2Zmc2V0MlBvaW50KHNlbGVjdGlvbi5nZXRFbmQoKSwgZmFsc2UsIGVuZFBvaW50KTsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb24uZ2V0U3RhcnQoKSA9PSBzZWxlY3Rpb24uY2FyZXQpCisgICAgICAgICAgICAgICAgY2FyZXRQb2ludC5zZXRMb2NhdGlvbihzdGFydFBvaW50KTsKKyAgICAgICAgICAgIGVsc2UgY2FyZXRQb2ludC5zZXRMb2NhdGlvbihlbmRQb2ludCk7CisgICAgICAgICAgICBpZiAoc3RhcnRQb2ludC55ID09IGVuZFBvaW50LnkpIHsKKyAgICAgICAgICAgICAgICBwYWludFJlY3QoZywgc3RhcnRQb2ludC54LCBzdGFydFBvaW50LnksCisgICAgICAgICAgICAgICAgICBNYXRoLm1heCgxLGVuZFBvaW50Lngtc3RhcnRQb2ludC54KSwgbGluZUhlaWdodCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHBhaW50UmVjdChnLCBzdGFydFBvaW50LngsIHN0YXJ0UG9pbnQueSwKKyAgICAgICAgICAgICAgICAgIChteVNpemUud2lkdGgteEluc2V0KS1zdGFydFBvaW50LngsIGxpbmVIZWlnaHQpOworICAgICAgICAgICAgICAgIGlmIChzdGFydFBvaW50LnkgKyBsaW5lSGVpZ2h0IDwgZW5kUG9pbnQueSkKKyAgICAgICAgICAgICAgICAgIHBhaW50UmVjdChnLCB4SW5zZXQsIHN0YXJ0UG9pbnQueSArIGxpbmVIZWlnaHQsCisgICAgICAgICAgICAgICAgICAobXlTaXplLndpZHRoLXhJbnNldCkteEluc2V0LCBlbmRQb2ludC55IC0gc3RhcnRQb2ludC55IC0gbGluZUhlaWdodCk7CisgICAgICAgICAgICAgICAgcGFpbnRSZWN0KGcsIHhJbnNldCwgZW5kUG9pbnQueSwgZW5kUG9pbnQueC14SW5zZXQsIGxpbmVIZWlnaHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChmb2N1cyB8fCBzZWxlY3Rpb24uaXNDYXJldCgpKSB7CisgICAgICAgICAgICBpZiAoZm9jdXMpIGcuc2V0Q29sb3IoQ29sb3IuZ3JlZW4pOworICAgICAgICAgICAgZWxzZSBnLnNldENvbG9yKENvbG9yLnJlZCk7CisgICAgICAgICAgICBpbnQgbGluZSA9IGNhcmV0UG9pbnQueCAtIChzZWxlY3Rpb24uY2xpY2tBZnRlciA/IDAgOiAxKTsKKyAgICAgICAgICAgIGcuZmlsbFJlY3QobGluZSwgY2FyZXRQb2ludC55LCAxLCBsaW5lSGVpZ2h0KTsKKyAgICAgICAgICAgIGludCB3ID0gbGluZUhlaWdodC8xMiArIDE7CisgICAgICAgICAgICBpbnQgYnJhY2VzID0gbGluZSAtIChzZWxlY3Rpb24uY2xpY2tBZnRlciA/IC0xIDogdyk7CisgICAgICAgICAgICBnLmZpbGxSZWN0KGJyYWNlcywgY2FyZXRQb2ludC55LCB3LCAxKTsKKyAgICAgICAgICAgIGcuZmlsbFJlY3QoYnJhY2VzLCBjYXJldFBvaW50LnkgKyBsaW5lSGVpZ2h0IC0gMSwgdywgMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgUG9pbnQgb2Zmc2V0MlBvaW50KGludCBvZmYsIGJvb2xlYW4gc3RhcnQsIFBvaW50IHApIHsKKyAgICAgICAgaW50IGxpbmUgPSBmaW5kTGluZShvZmYsIHN0YXJ0KTsKKyAgICAgICAgaW50IHdpZHRoID0gMDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHdpZHRoID0gZm0uc3RyaW5nV2lkdGgoCisgICAgICAgICAgICAgIGNvbnRlbnRzLnN1YnN0cmluZyhsaW5lU3RhcnRzW2xpbmVdLCBvZmYpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgICAgICBwLnggPSB3aWR0aCArIHhJbnNldDsKKyAgICAgICAgaWYgKHAueCA+IG15U2l6ZS53aWR0aCAtIHhJbnNldCkKKyAgICAgICAgICAgIHAueCA9IG15U2l6ZS53aWR0aCAtIHhJbnNldDsKKyAgICAgICAgcC55ID0gbGluZUhlaWdodCAqIGxpbmUgKyB5SW5zZXQ7CisgICAgICAgIHJldHVybiBwOworICAgIH0KKworICAgIHByaXZhdGUgaW50IGZpbmRMaW5lKGludCBvZmYsIGJvb2xlYW4gc3RhcnQpIHsKKyAgICAgICAgLy8gaWYgaXQgaXMgc3RhcnQsIHRoZW4gZ28gdG8gdGhlIG5leHQgbGluZSEKKyAgICAgICAgaWYgKHN0YXJ0KSArK29mZjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBsaW5lQ291bnQ7ICsraSkgeworICAgICAgICAgICAgLy8gTElVOiBUaGlzIHdhcyA8PSA7IGNoYW5nZWQgdG8gPCB0byBtYWtlIGNhcmV0IGFmdGVyCisgICAgICAgICAgICAvLyBmaW5hbCBDUiBpbiBsaW5lIGFwcGVhciBhdCBTVEFSVCBvZiBuZXh0IGxpbmUuCisgICAgICAgICAgICBpZiAob2ZmIDwgbGluZVN0YXJ0c1tpXSkgcmV0dXJuIGktMTsKKyAgICAgICAgfQorICAgICAgICAvLyBMSVU6IENoZWNrIGZvciBzcGVjaWFsIGNhc2U7IGFmdGVyIENSIGF0IGVuZCBvZiB0aGUgbGFzdCBsaW5lCisgICAgICAgIGlmIChvZmYgPT0gbGluZVN0YXJ0c1tsaW5lQ291bnRdICYmCisgICAgICAgICAgICBvZmYgPiAwICYmIGNvbnRlbnRzLmxlbmd0aCgpID4gMCAmJiBjb250ZW50cy5jaGFyQXQob2ZmLTEpID09IENSKSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUNvdW50OworICAgICAgICB9CisgICAgICAgIHJldHVybiBsaW5lQ291bnQtMTsKKyAgICB9CisKKyAgICAvLyBvZmZzZXRzIG9uIGFueSBsaW5lIHdpbGwgZ28gZnJvbSBzdGFydCx0cnVlIHRvIGVuZCxmYWxzZQorICAgIC8vIGV4Y2x1ZGluZyBzdGFydCxmYWxzZSBhbmQgZW5kLHRydWUKKyAgICBwdWJsaWMgU2VsZWN0aW9uIHBvaW50Mk9mZnNldChQb2ludCBwLCBTZWxlY3Rpb24gbykgeworICAgICAgICBpZiAocC55IDwgeUluc2V0KSB7CisgICAgICAgICAgICBvLmNhcmV0ID0gMDsKKyAgICAgICAgICAgIG8uY2xpY2tBZnRlciA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gbzsKKyAgICAgICAgfQorICAgICAgICBpbnQgbGluZSA9IChwLnkgLSB5SW5zZXQpL2xpbmVIZWlnaHQ7CisgICAgICAgIGlmIChsaW5lID49IGxpbmVDb3VudCkgeworICAgICAgICAgICAgby5jYXJldCA9IGNvbnRlbnRzLmxlbmd0aCgpOworICAgICAgICAgICAgby5jbGlja0FmdGVyID0gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gbzsKKyAgICAgICAgfQorICAgICAgICBpbnQgdGFyZ2V0ID0gcC54IC0geEluc2V0OworICAgICAgICBpZiAodGFyZ2V0IDw9IDApIHsKKyAgICAgICAgICAgIG8uY2FyZXQgPSBsaW5lU3RhcnRzW2xpbmVdOworICAgICAgICAgICAgby5jbGlja0FmdGVyID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBvOworICAgICAgICB9CisgICAgICAgIGludCBsb3dHdWVzcyA9IGxpbmVTdGFydHNbbGluZV07CisgICAgICAgIGludCBsb3dXaWR0aCA9IDA7CisgICAgICAgIGludCBoaWdoR3Vlc3MgPSBsaW5lU3RhcnRzW2xpbmUrMV07CisgICAgICAgIGludCBoaWdoV2lkdGggPSBmbS5zdHJpbmdXaWR0aChjb250ZW50cy5zdWJzdHJpbmcobGluZVN0YXJ0c1tsaW5lXSxoaWdoR3Vlc3MpKTsKKyAgICAgICAgaWYgKHRhcmdldCA+PSBoaWdoV2lkdGgpIHsKKyAgICAgICAgICAgIG8uY2FyZXQgPSBsaW5lU3RhcnRzW2xpbmUrMV07CisgICAgICAgICAgICBvLmNsaWNrQWZ0ZXIgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiBvOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChsb3dHdWVzcyA8IGhpZ2hHdWVzcyAtIDEpIHsKKyAgICAgICAgICAgIGludCBndWVzcyA9IChsb3dHdWVzcyArIGhpZ2hHdWVzcykvMjsKKyAgICAgICAgICAgIGludCB3aWR0aCA9IGZtLnN0cmluZ1dpZHRoKGNvbnRlbnRzLnN1YnN0cmluZyhsaW5lU3RhcnRzW2xpbmVdLGd1ZXNzKSk7CisgICAgICAgICAgICBpZiAod2lkdGggPD0gdGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgbG93R3Vlc3MgPSBndWVzczsKKyAgICAgICAgICAgICAgICBsb3dXaWR0aCA9IHdpZHRoOworICAgICAgICAgICAgICAgIGlmICh3aWR0aCA9PSB0YXJnZXQpIGJyZWFrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBoaWdoR3Vlc3MgPSBndWVzczsKKyAgICAgICAgICAgICAgICBoaWdoV2lkdGggPSB3aWR0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBhdCBlbmQsIGVpdGhlciBsb3dXaWR0aCA8IHRhcmdldCA8IHdpZHRoKGxvdysxKSwgb3IgbG93V2lkdGggPSB0YXJnZXQKKyAgICAgICAgaW50IGhpZ2hCb3VuZCA9IGNoYXJCcmVha2VyLmZvbGxvd2luZyhsb3dHdWVzcyk7CisgICAgICAgIGludCBsb3dCb3VuZCA9IGNoYXJCcmVha2VyLnByZXZpb3VzKCk7CisgICAgICAgIC8vIHdlIGFyZSBub3cgYXQgY2hhcmFjdGVyIGJvdW5kYXJpZXMKKyAgICAgICAgaWYgKGxvd0JvdW5kICE9IGxvd0d1ZXNzKQorICAgICAgICAgICAgbG93V2lkdGggPSBmbS5zdHJpbmdXaWR0aChjb250ZW50cy5zdWJzdHJpbmcobGluZVN0YXJ0c1tsaW5lXSxsb3dCb3VuZCkpOworICAgICAgICBpZiAoaGlnaEJvdW5kICE9IGhpZ2hHdWVzcykKKyAgICAgICAgICAgIGhpZ2hXaWR0aCA9IGZtLnN0cmluZ1dpZHRoKGNvbnRlbnRzLnN1YnN0cmluZyhsaW5lU3RhcnRzW2xpbmVdLGhpZ2hCb3VuZCkpOworICAgICAgICAvLyB3ZSBub3cgaGF2ZSB0aGUgcmlnaHQgd2lkdGhzCisgICAgICAgIGlmICh0YXJnZXQgLSBsb3dXaWR0aCA8IGhpZ2hXaWR0aCAtIHRhcmdldCkgeworICAgICAgICAgICAgby5jYXJldCA9IGxvd0JvdW5kOworICAgICAgICAgICAgby5jbGlja0FmdGVyID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG8uY2FyZXQgPSBoaWdoQm91bmQ7CisgICAgICAgICAgICBvLmNsaWNrQWZ0ZXIgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAvLyB3ZSBub3cgaGF2ZSB0aGUgY2xvc2VzdCEKKyAgICAgICAgcmV0dXJuIG87CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGZpeExpbmVTdGFydHMoaW50IHdpZHRoKSB7CisgICAgICAgIGxpbmVDb3VudCA9IDE7CisgICAgICAgIGxpbmVTdGFydHNbMF0gPSAwOworICAgICAgICBpZiAoY29udGVudHMubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgbGluZVN0YXJ0c1sxXSA9IDA7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaW50IGVuZCA9IDA7CisgICAgICAgIC8vIExJVTogQWRkIGNoZWNrIGZvciBNQVhfTElORVMKKyAgICAgICAgZm9yIChpbnQgc3RhcnQgPSAwOyBzdGFydCA8IGNvbnRlbnRzLmxlbmd0aCgpICYmIGxpbmVDb3VudCA8IE1BWF9MSU5FUzsKKyAgICAgICAgICAgICBzdGFydCA9IGVuZCkgeworICAgICAgICAgICAgZW5kID0gbmV4dExpbmUoZm0sIHN0YXJ0LCB3aWR0aCk7CisgICAgICAgICAgICBsaW5lU3RhcnRzW2xpbmVDb3VudCsrXSA9IGVuZDsKKyAgICAgICAgICAgIGlmIChlbmQgPT0gc3RhcnQpIHsgLy8gTElVOiBBc3NlcnRpb24KKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigibmV4dExpbmUgYnJva2VuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLS1saW5lQ291bnQ7CisgICAgICAgIHJlZG9MaW5lcyA9IGZhbHNlOworICAgIH0KKworICAgIC8vIExJVTogRW5oYW5jZWQgdG8gd3JhcCBsb25nIGxpbmVzLiAgQnVnIHdpdGggcmV0dXJuIG9mIHN0YXJ0IGZpeGVkLgorICAgIHB1YmxpYyBpbnQgbmV4dExpbmUoRm9udE1ldHJpY3MgZm0sIGludCBzdGFydCwgaW50IHdpZHRoKSB7CisgICAgICAgIGludCBsZW4gPSBjb250ZW50cy5sZW5ndGgoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0OyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAgIC8vIGNoZWNrIGZvciBsaW5lIHNlcGFyYXRvcgorICAgICAgICAgICAgY2hhciBjaCA9IChjb250ZW50cy5jaGFyQXQoaSkpOworICAgICAgICAgICAgaWYgKGNoID49IDB4MDAwQSAmJiBjaCA8PSAweDAwMEQgfHwgY2ggPT0gMHgyMDI4IHx8IGNoID09IDB4MjAyOSkgeworICAgICAgICAgICAgICAgIGxlbiA9IGkgKyAxOworICAgICAgICAgICAgICAgIGlmIChjaCA9PSAweDAwMEQgJiYgaSsxIDwgbGVuICYmIGNvbnRlbnRzLmNoYXJBdChpKzEpID09IDB4MDAwQSkgLy8gY3JsZgorICAgICAgICAgICAgICAgICAgICArK2xlbjsgLy8gZ3JhYiBleHRyYSBjaGFyCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHN1YmplY3QgPSBjb250ZW50cy5zdWJzdHJpbmcoc3RhcnQsbGVuKTsKKyAgICAgICAgaWYgKHZpc2libGVXaWR0aChmbSwgc3ViamVjdCkgPD0gd2lkdGgpCisgICAgICAgICAgcmV0dXJuIGxlbjsKKworICAgICAgICAvLyBMSVU6IFJlbWFpbmRlciBvZiB0aGlzIG1ldGhvZCByZXdyaXR0ZW4gdG8gYWNjb21vZGF0ZSBsaW5lcworICAgICAgICAvLyBsb25nZXIgdGhhbiB0aGUgY29tcG9uZW50IHdpZHRoIGJ5IGZpcnN0IHRyeWluZyB0byBicmVhaworICAgICAgICAvLyBpbnRvIGxpbmVzOyB0aGVuIHdvcmRzOyBmaW5hbGx5IGNoYXJzLgorICAgICAgICBpbnQgbiA9IGZpbmRGaXR0aW5nQnJlYWsoZm0sIHN1YmplY3QsIHdpZHRoLCBsaW5lQnJlYWtlcik7CisgICAgICAgIGlmIChuID09IDApIHsKKyAgICAgICAgICAgIG4gPSBmaW5kRml0dGluZ0JyZWFrKGZtLCBzdWJqZWN0LCB3aWR0aCwgd29yZEJyZWFrZXIpOworICAgICAgICB9CisgICAgICAgIGlmIChuID09IDApIHsKKyAgICAgICAgICAgIG4gPSBmaW5kRml0dGluZ0JyZWFrKGZtLCBzdWJqZWN0LCB3aWR0aCwgY2hhckJyZWFrZXIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuID4gMCA/IHN0YXJ0ICsgbiA6IGxlbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMSVU6IEZpbmRzIHRoZSBsb25nZXN0IHN1YnN0cmluZyB0aGF0IGZpdHMgYSBnaXZlbiB3aWR0aAorICAgICAqIGNvbXBvc2VkIG9mIHN1YnVuaXRzIHJldHVybmVkIGJ5IGEgQnJlYWtJdGVyYXRvci4gIElmIHRoZSBzbWFsbGVzdAorICAgICAqIHN1YnVuaXQgaXMgdG9vIGxvbmcsIHJldHVybnMgMC4KKyAgICAgKiBAcGFyYW0gZm0gbWV0cmljcyB0byB1c2UKKyAgICAgKiBAcGFyYW0gbGluZSB0aGUgc3RyaW5nIHRvIGJlIGZpeCBpbnRvIHdpZHRoCisgICAgICogQHBhcmFtIHdpZHRoIGxpbmUuc3Vic3RyaW5nKDAsIHJlc3VsdCkgbXVzdCBiZSA8PSB3aWR0aAorICAgICAqIEBwYXJhbSBicmVha2VyIHRoZSBCcmVha0l0ZXJhdG9yIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGZpbmQgc3VidW5pdHMKKyAgICAgKiBAcmV0dXJuIG1heGltdW0gY2hhcmFjdGVycywgYXQgYm91bmRhcmllcyByZXR1cm5lZCBieSBicmVha2VyLAorICAgICAqIHRoYXQgZml0IGludG8gd2lkdGgsIG9yIHplcm8gb24gZmFpbHVyZQorICAgICAqLworICAgIHByaXZhdGUgaW50IGZpbmRGaXR0aW5nQnJlYWsoRm9udE1ldHJpY3MgZm0sIFN0cmluZyBsaW5lLCBpbnQgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIGJyZWFrZXIpIHsKKyAgICAgICAgYnJlYWtlci5zZXRUZXh0KGxpbmUpOworICAgICAgICBpbnQgbGFzdCA9IGJyZWFrZXIuZmlyc3QoKTsKKyAgICAgICAgaW50IGVuZCA9IGJyZWFrZXIubmV4dCgpOworICAgICAgICB3aGlsZSAoZW5kICE9IEJyZWFrSXRlcmF0b3IuRE9ORSAmJgorICAgICAgICAgICAgICAgdmlzaWJsZVdpZHRoKGZtLCBsaW5lLnN1YnN0cmluZygwLCBlbmQpKSA8PSB3aWR0aCkgeworICAgICAgICAgICAgbGFzdCA9IGVuZDsKKyAgICAgICAgICAgIGVuZCA9IGJyZWFrZXIubmV4dCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsYXN0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgdmlzaWJsZVdpZHRoKEZvbnRNZXRyaWNzIGZtLCBTdHJpbmcgcykgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpID0gcy5sZW5ndGgoKS0xOyBpID49IDA7IC0taSkgeworICAgICAgICAgICAgY2hhciBjaCA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKCEoY2ggPT0gJyAnIHx8IGNoID49IDB4MDAwQSAmJiBjaCA8PSAweDAwMEQgfHwgY2ggPT0gMHgyMDI4IHx8IGNoID09IDB4MjAyOSkpCisgICAgICAgICAgICAgIHJldHVybiBmbS5zdHJpbmdXaWR0aChzLnN1YnN0cmluZygwLGkrMSkpOzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKy8vID09PT09PT09PT09PT09PSBVdGlsaXR5ID09PT09PT09PT09PT09PT09PT09CisKKyAgICBwcml2YXRlIHZvaWQgZml4SGV4KCkgeworICAgICAgICBpZiAoc2VsZWN0aW9uLmdldEVuZCgpID09IDApIHJldHVybjsKKyAgICAgICAgaW50IHN0b3JlID0gMDsKKyAgICAgICAgaW50IHBsYWNlcyA9IDE7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIGludCBtaW4gPSBNYXRoLm1pbig4LHNlbGVjdGlvbi5nZXRFbmQoKSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWluOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBjb250ZW50cy5jaGFyQXQoc2VsZWN0aW9uLmdldEVuZCgpLTEtaSk7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSBDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGNoKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPiAxNSkgYnJlYWs7CisgICAgICAgICAgICBzdG9yZSArPSBwbGFjZXMgKiB2YWx1ZTsKKyAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICBwbGFjZXMgKj0gMTY7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGFkZCA9ICIiOworICAgICAgICBpbnQgYm90dG9tID0gc3RvcmUgJiAweEZGRkY7CisgICAgICAgIGlmIChzdG9yZSA+PSAweEQ4MDAwMDAwICYmIHN0b3JlIDwgMHhEQzAwMDAwMAorICAgICAgICAgICYmIGJvdHRvbSA+PSAweERDMDAgJiYgYm90dG9tIDwgMHhFMDAwKSB7IC8vIHN1cnJvZ2F0ZXMKKyAgICAgICAgICAgIGFkZCA9ICIiICsgKGNoYXIpKHN0b3JlID4+IDE2KSArIChjaGFyKWJvdHRvbTsKKyAgICAgICAgfSBlbHNlIGlmIChzdG9yZSA+IDB4RkZGRiAmJiBzdG9yZSA8PSAweDEwRkZGRikgeworICAgICAgICAgICAgc3RvcmUgLT0gMHgxMDAwMDsKKyAgICAgICAgICAgIGFkZCA9ICIiICsgKGNoYXIpKCgoc3RvcmUgPj4gMTApICYgMHgzRkYpICsgMHhEODAwKQorICAgICAgICAgICAgICArIChjaGFyKSgoc3RvcmUgJiAweDNGRikgKyAweERDMDApOworICAgICAgICAgICAgICAKKyAgICAgICAgfSBlbHNlIGlmIChjb3VudCA+PSA0KSB7CisgICAgICAgICAgICBjb3VudCA9IDQ7CisgICAgICAgICAgICBhZGQgPSAiIisoY2hhcikoc3RvcmUgJiAweEZGRkYpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY291bnQgPSAxOworICAgICAgICAgICAgY2hhciBjaCA9IGNvbnRlbnRzLmNoYXJBdChzZWxlY3Rpb24uZ2V0RW5kKCktMSk7CisgICAgICAgICAgICBhZGQgPSBoZXgoY2gpOworICAgICAgICAgICAgaWYgKGNoID49IDB4REMwMCAmJiBjaCA8PSAweERGRkYgJiYgc2VsZWN0aW9uLmdldEVuZCgpID4gMSkgeworICAgICAgICAgICAgICAgIGNoID0gY29udGVudHMuY2hhckF0KHNlbGVjdGlvbi5nZXRFbmQoKS0yKTsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPj0gMHhEODAwICYmIGNoIDw9IDB4REJGRikgeworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IDI7CisgICAgICAgICAgICAgICAgICAgIGFkZCA9IGhleChjaCkgKyBhZGQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJlcGxhY2VSYW5nZShhZGQsIHNlbGVjdGlvbi5nZXRFbmQoKS1jb3VudCwgc2VsZWN0aW9uLmdldEVuZCgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoY2hhciBjaCkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gSW50ZWdlci50b1N0cmluZyhjaCwxNikudG9VcHBlckNhc2UoKTsKKyAgICAgICAgcmVzdWx0ID0gIjAwMDAiLnN1YnN0cmluZyhyZXN1bHQubGVuZ3RoKCksNCkgKyByZXN1bHQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvU2VsZWN0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9TZWxlY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZjgwYTRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvU2VsZWN0aW9uLmphdmEKQEAgLTAsMCArMSwxNjEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGw7CitpbXBvcnQgamF2YS50ZXh0Lio7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTZWxlY3Rpb24geworCisgICAgcHVibGljIGludCBhbmNob3I7CisgICAgcHVibGljIGludCBjYXJldDsKKyAgICBwdWJsaWMgYm9vbGVhbiBjbGlja0FmdGVyOworCisgICAgcHVibGljIGludCBnZXRTdGFydCgpIHsKKyAgICAgICAgcmV0dXJuIGFuY2hvciA8IGNhcmV0ID8gYW5jaG9yIDogY2FyZXQ7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRFbmQoKSB7CisgICAgICAgIHJldHVybiBhbmNob3IgPiBjYXJldCA/IGFuY2hvciA6IGNhcmV0OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzQ2FyZXQoKSB7CisgICAgICAgIHJldHVybiBhbmNob3IgPT0gY2FyZXQ7CisgICAgfQorCisgICAgcHVibGljIFNlbGVjdGlvbiBzZXQoU2VsZWN0aW9uIG90aGVyKSB7CisgICAgICAgIGFuY2hvciA9IG90aGVyLmFuY2hvcjsKKyAgICAgICAgY2FyZXQgPSBvdGhlci5jYXJldDsKKyAgICAgICAgY2xpY2tBZnRlciA9IG90aGVyLmNsaWNrQWZ0ZXI7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBTZWxlY3Rpb24gc2V0KGludCBhbmNob3IsIGludCBjYXJldCwgYm9vbGVhbiBjbGlja0FmdGVyKSB7CisgICAgICAgIHRoaXMuYW5jaG9yID0gYW5jaG9yOworICAgICAgICB0aGlzLmNhcmV0ID0gY2FyZXQ7CisgICAgICAgIHRoaXMuY2xpY2tBZnRlciA9IGNsaWNrQWZ0ZXI7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgU2VsZWN0aW9uIG90aGVyMiA9IChTZWxlY3Rpb24pb3RoZXI7CisgICAgICAgIHJldHVybiBhbmNob3IgPT0gb3RoZXIyLmFuY2hvcgorICAgICAgICAgICYmIGNhcmV0ID09IG90aGVyMi5jYXJldAorICAgICAgICAgICYmIGNsaWNrQWZ0ZXIgPT0gb3RoZXIyLmNsaWNrQWZ0ZXI7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNMZXNzVGhhbihTZWxlY3Rpb24gb3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIGdldFN0YXJ0KCkgPCBvdGhlci5nZXRFbmQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU2VsZWN0aW9uIHBpbihTdHJpbmcgdGV4dCkgeworICAgICAgICBpZiAoYW5jaG9yID4gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgYW5jaG9yID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgfSBlbHNlIGlmIChhbmNob3IgPCAwKSB7CisgICAgICAgICAgICBhbmNob3IgPSAwOworICAgICAgICB9CisgICAgICAgIGlmIChjYXJldCA+IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGNhcmV0ID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgIGNsaWNrQWZ0ZXIgPSB0cnVlOworICAgICAgICB9IGVsc2UgaWYgKGNhcmV0IDwgMCkgeworICAgICAgICAgICAgY2FyZXQgPSAwOworICAgICAgICAgICAgY2xpY2tBZnRlciA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBTZWxlY3Rpb24gc3dhcChTZWxlY3Rpb24gYWZ0ZXIpIHsKKyAgICAgICAgaW50IHRlbXAgPSBhbmNob3I7CisgICAgICAgIGFuY2hvciA9IGFmdGVyLmFuY2hvcjsKKyAgICAgICAgYWZ0ZXIuYW5jaG9yID0gdGVtcDsKKyAgICAgICAgdGVtcCA9IGNhcmV0OworICAgICAgICBjYXJldCA9IGFmdGVyLmNhcmV0OworICAgICAgICBhZnRlci5jYXJldCA9IHRlbXA7CisgICAgICAgIGJvb2xlYW4gYiA9IGNsaWNrQWZ0ZXI7CisgICAgICAgIGNsaWNrQWZ0ZXIgPSBhZnRlci5jbGlja0FmdGVyOworICAgICAgICBhZnRlci5jbGlja0FmdGVyID0gYjsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIFNlbGVjdGlvbiBmaXhBZnRlclJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgZW5kLCBpbnQgbGVuKSB7CisgICAgICAgIGlmIChhbmNob3IgPj0gc3RhcnQpIHsKKyAgICAgICAgICAgIGlmIChhbmNob3IgPCBlbmQpIGFuY2hvciA9IGVuZDsKKyAgICAgICAgICAgIGFuY2hvciA9IHN0YXJ0ICsgbGVuICsgYW5jaG9yIC0gZW5kOworICAgICAgICB9CisgICAgICAgIGlmIChjYXJldCA+PSBzdGFydCkgeworICAgICAgICAgICAgaWYgKGNhcmV0IDwgZW5kKSBjYXJldCA9IGVuZDsKKyAgICAgICAgICAgIGNhcmV0ID0gc3RhcnQgKyBsZW4gKyBjYXJldCAtIGVuZDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAgICAgLy8gTWFjICYgV2luZG93cyBjb25zaWRlcmFibHkgZGlmZmVyZW50CisgICAgICAgIC8vIE1hYzogZW5kKysuIElmIHN0YXJ0IT1lbmQsIHN0YXJ0PWVuZAorICAgICAgICAvLyAgU0hJRlQ6IG1vdmUgZW5kIHJpZ2h0CisgICAgICAgIC8vICBDVEw6IG5vIGRpZmZlcmVudAorICAgICAgICAvLyBXaW5kb3dzOgorICAgICAgICAvLyAgVU5TSElGVEVEOiBpZiBzdGFydCE9ZW5kLCBzdGFydCA9IGVuZCwgZWxzZSBzdGFydD1lbmQ9ZW5kKzE7CisgICAgICAgIC8vICAgICAgIGFuY2hvciA9IHRpcCA9IHN0YXJ0CisgICAgICAgIC8vICBTSElGVDogdGlwKysKKyAgICAgICAgLy8gIENUTDogaWYgc3RhcnQhPWVuZCwgc3RhcnQgPSBlbmQgPSBuZXh0Ym91bmQoZW5kLTEpLAorICAgICAgICAvLyAgIGVsc2Ugc3RhcnQ9ZW5kPW5leHRib3VuZChlbmQpCisgICAgICAgIC8vICAgICAgIGFuY2hvciA9IHRpcCA9IHN0YXJ0CisgICAgICAgIC8vICBDVEwvU0hJRlQ6IHRpcCA9IG5leHRib3VuZCh0aXApCisKKyAgICBwdWJsaWMgU2VsZWN0aW9uIG5leHRCb3VuZChCcmVha0l0ZXJhdG9yIGJyZWFrZXIsCisgICAgICBpbnQgZGlyZWN0aW9uLCBib29sZWFuIGV4dGVuZCkgeworICAgICAgICBpZiAoIWV4dGVuZCAmJiBhbmNob3IgIT0gY2FyZXQpIGNhcmV0IC09IGRpcmVjdGlvbjsKKyAgICAgICAgY2FyZXQgPSBuZXh0KGNhcmV0LCBicmVha2VyLCBkaXJlY3Rpb24sIHRydWUpOworICAgICAgICBpZiAoIWV4dGVuZCkgYW5jaG9yID0gY2FyZXQ7CisgICAgICAgIGNsaWNrQWZ0ZXIgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLy8gZXhwYW5kIHN0YXJ0IGFuZCBlbmQgdG8gd29yZCBicmVha3MtLWlmIHRoZXkgYXJlIG5vdCBhbHJlYWR5IG9uIG9uZQorICAgIHB1YmxpYyB2b2lkIGV4cGFuZChCcmVha0l0ZXJhdG9yIGJyZWFrZXIpIHsKKyAgICAgICAgaWYgKGFuY2hvciA8PSBjYXJldCkgeworICAgICAgICAgICAgYW5jaG9yID0gbmV4dChhbmNob3IsYnJlYWtlciwtMSxmYWxzZSk7CisgICAgICAgICAgICBjYXJldCA9IG5leHQoY2FyZXQsYnJlYWtlciwxLGZhbHNlKTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGJyZWFrZXIuZm9sbG93aW5nKGFuY2hvcik7CisgICAgICAgICAgICAgICAgYW5jaG9yID0gYnJlYWtlci5wcmV2aW91cygpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNhcmV0ID0gYnJlYWtlci5mb2xsb3dpbmcoY2FyZXQtMSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgICovCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhbmNob3IgPSBuZXh0KGFuY2hvcixicmVha2VyLDEsZmFsc2UpOworICAgICAgICAgICAgY2FyZXQgPSBuZXh0KGNhcmV0LGJyZWFrZXIsLTEsZmFsc2UpOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYnJlYWtlci5mb2xsb3dpbmcoY2FyZXQpOworICAgICAgICAgICAgICAgIGNhcmV0ID0gYnJlYWtlci5wcmV2aW91cygpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGFuY2hvciA9IGJyZWFrZXIuZm9sbG93aW5nKGFuY2hvci0xKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7fQorICAgICAgICAgICAgKi8KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGRpZmZlcmVudCA9IGZhbHNlIC0gbW92ZSB0byBuZXh0IGJvdW5kYXJ5LCB1bmxlc3Mgb24gb25lCisgICAgLy8gdHJ1ZSAtIG1vdmUgdG8gbmV4dCBib3VuZGFyeSwgZXZlbiBpZiBvbiBvbmUKKyAgICBwdWJsaWMgc3RhdGljIGludCBuZXh0KGludCBwb3NpdGlvbiwgQnJlYWtJdGVyYXRvciBicmVha2VyLAorICAgICAgaW50IGRpcmVjdGlvbiwgYm9vbGVhbiBkaWZmZXJlbnQpIHsKKyAgICAgICAgaWYgKCFkaWZmZXJlbnQpIHBvc2l0aW9uIC09IGRpcmVjdGlvbjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPiAwKSB7CisgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBicmVha2VyLmZvbGxvd2luZyhwb3NpdGlvbik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJyZWFrZXIuZm9sbG93aW5nKHBvc2l0aW9uLTEpOworICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gYnJlYWtlci5wcmV2aW91cygpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30KKyAgICAgICAgcmV0dXJuIHBvc2l0aW9uOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL2ltcGwvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE3ZThkMzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vaW1wbC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorU2hhcmVkIHV0aWxpdGllcyBmb3IgZGVtbyBhcHBsaWNhdGlvbnMgYW5kIEFwcGxldHMuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL251bWJlci9DdXJyZW5jeURlbW8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9udW1iZXIvQ3VycmVuY3lEZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkxMmEwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9udW1iZXIvQ3VycmVuY3lEZW1vLmphdmEKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBNYXJrIERhdmlzCisqIENyZWF0ZWQ6IE1heSAyMiAyMDAzCisqIFNpbmNlOiBJQ1UgMi42CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5udW1iZXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9sczsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworCisvKioKKyAqIERlbW9uc3RyYXRpb24gY29kZSB0byBpbGx1c3RyYXRlIGhvdyB0byBvYnRhaW4gSUNVIDIuNi1saWtlIGN1cnJlbmN5CisgKiBiZWhhdmlvciB1c2luZyBwcmUtSUNVIDIuNiBJQ1U0Si4KKyAqIEBhdXRob3IgTWFyayBEYXZpcworICovCitwdWJsaWMgY2xhc3MgQ3VycmVuY3lEZW1vIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgdGVzdEZvcm1hdEhhY2sodHJ1ZSk7CisgICAgfQorCisgICAgc3RhdGljIE51bWJlckZvcm1hdCBnZXRDdXJyZW5jeUZvcm1hdChDdXJyZW5jeSBjdXJyZW5jeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZSBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBJQ1UyNikgeworICAgICAgICAvLyBjb2RlIGZvciBJQ1UgMi42CisgICAgICAgIGlmIChJQ1UyNikgeworICAgICAgICAgICAgTnVtYmVyRm9ybWF0IHJlc3VsdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGRpc3BsYXlMb2NhbGUpOworICAgICAgICAgICAgcmVzdWx0LnNldEN1cnJlbmN5KGN1cnJlbmN5KTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvLyB1Z2x5IHdvcmstYXJvdW5kIGZvciAyLjQKKyAgICAgICAgRGVjaW1hbEZvcm1hdCByZXN1bHQgPSAoRGVjaW1hbEZvcm1hdClOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShkaXNwbGF5TG9jYWxlKTsKKyAgICAgICAgSGFja0N1cnJlbmN5SW5mbyBoYWNrID0gKEhhY2tDdXJyZW5jeUluZm8pKGhhY2tEYXRhLmdldChjdXJyZW5jeS5nZXRDdXJyZW5jeUNvZGUoKSkpOworICAgICAgICByZXN1bHQuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKGhhY2suZGVjaW1hbHMpOworICAgICAgICByZXN1bHQuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKGhhY2suZGVjaW1hbHMpOworICAgICAgICByZXN1bHQuc2V0Um91bmRpbmdJbmNyZW1lbnQoaGFjay5yb3VuZGluZyk7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSByZXN1bHQuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgc3ltYm9scy5zZXRDdXJyZW5jeVN5bWJvbChoYWNrLnN5bWJvbCk7CisgICAgICAgIHJlc3VsdC5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW1ib2xzKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgICAgIAorICAgIHN0YXRpYyBNYXAgaGFja0RhdGEgPSBuZXcgSGFzaE1hcCgpOworICAgIHN0YXRpYyBjbGFzcyBIYWNrQ3VycmVuY3lJbmZvIHsKKyAgICAgICAgaW50IGRlY2ltYWxzOworICAgICAgICBkb3VibGUgcm91bmRpbmc7CisgICAgICAgIFN0cmluZyBzeW1ib2w7CisgICAgICAgIEhhY2tDdXJyZW5jeUluZm8oaW50IGRlY2ltYWxzLCBkb3VibGUgcm91bmRpbmcsIFN0cmluZyBzeW1ib2wpIHsKKyAgICAgICAgICAgIHRoaXMuZGVjaW1hbHMgPSBkZWNpbWFsczsKKyAgICAgICAgICAgIHRoaXMucm91bmRpbmcgPSByb3VuZGluZzsKKyAgICAgICAgICAgIHRoaXMuc3ltYm9sID0gc3ltYm9sOworICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyB7CisgICAgICAgIGhhY2tEYXRhLnB1dCgiVVNEIiwgbmV3IEhhY2tDdXJyZW5jeUluZm8oMiwgMCwgIiQiKSk7CisgICAgICAgIGhhY2tEYXRhLnB1dCgiR0JQIiwgbmV3IEhhY2tDdXJyZW5jeUluZm8oMiwgMCwgIlx1MDBBMyIpKTsKKyAgICAgICAgaGFja0RhdGEucHV0KCJKUFkiLCBuZXcgSGFja0N1cnJlbmN5SW5mbygwLCAwLCAiXHUwMEE1IikpOworICAgICAgICBoYWNrRGF0YS5wdXQoIkVVUiIsIG5ldyBIYWNrQ3VycmVuY3lJbmZvKDIsIDAsICJcdTIwQUMiKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogV2FsayB0aHJvdWdoIGFsbCBsb2NhbGVzIGFuZCBjb21wYXJlIHRoZSBvdXRwdXQgb2YgdGhlIElDVTI2CisgICAgICogY3VycmVuY3kgZm9ybWF0IHdpdGggdGhlICJoYWNrZWQiIGN1cnJlbmN5IGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gcXVpZXQgaWYgdHJ1ZSwgb25seSBkaXNwbGF5IGRpc2NyZXBhbmNpZXMuICBPdGhlcndpc2UsCisgICAgICogZGlzcGxheSBhbGwgcmVzdWx0cy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCB0ZXN0Rm9ybWF0SGFjayhib29sZWFuIHF1aWV0KSB7CisgICAgICAgIFN0cmluZ1tdIHRlc3RDdXJyZW5jaWVzID0geyJVU0QiLCJHQlAiLCJKUFkiLCJFVVIifTsKKyAgICAgICAgTG9jYWxlW10gdGVzdExvY2FsZXMgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RMb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAvLyBzaW5jZSBub25lIG9mIHRoaXMgc2hvdWxkIHZhcnkgYnkgY291bnRyeSwgd2UnbGwganVzdCBkbyBieSBsYW5ndWFnZQorICAgICAgICAgICAgaWYgKCF0ZXN0TG9jYWxlc1tpXS5nZXRDb3VudHJ5KCkuZXF1YWxzKCIiKSkgY29udGludWU7CisgICAgICAgICAgICBib29sZWFuIG5vT3V0cHV0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmICghcXVpZXQpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odGVzdExvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgICAgICAgICAgICAgbm9PdXRwdXQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdEN1cnJlbmNpZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQgbmYyNiA9IGdldEN1cnJlbmN5Rm9ybWF0KEN1cnJlbmN5LmdldEluc3RhbmNlKHRlc3RDdXJyZW5jaWVzW2pdKSwgdGVzdExvY2FsZXNbaV0sIHRydWUpOworICAgICAgICAgICAgICAgIFN0cmluZyBzdHIyNiA9IG5mMjYuZm9ybWF0KDEyMzQuNTY3KTsKKyAgICAgICAgICAgICAgICBpZiAoIXF1aWV0KSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlx0IiArIFV0aWxpdHkuZXNjYXBlKHN0cjI2KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIE51bWJlckZvcm1hdCBuZjI0ID0gZ2V0Q3VycmVuY3lGb3JtYXQoQ3VycmVuY3kuZ2V0SW5zdGFuY2UodGVzdEN1cnJlbmNpZXNbal0pLCB0ZXN0TG9jYWxlc1tpXSwgZmFsc2UpOworICAgICAgICAgICAgICAgIFN0cmluZyBzdHIyNCA9IG5mMjQuZm9ybWF0KDEyMzQuNTY3KTsKKyAgICAgICAgICAgICAgICBpZiAoIXN0cjI0LmVxdWFscyhzdHIyNikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5vT3V0cHV0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odGVzdExvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBub091dHB1dCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChxdWlldCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXHQiICsgVXRpbGl0eS5lc2NhcGUoc3RyMjYpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgKCIgKyBVdGlsaXR5LmVzY2FwZShzdHIyNCkgKyAiKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbm9PdXRwdXQpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL0JyZWFrSXRlcmF0b3JSdWxlc19lbl9VU19ERU1PLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9CcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfREVNTy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFhNzRmNjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9CcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfREVNTy5qYXZhCkBAIC0wLDAgKzEsMjI1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5yYmJpOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGF0YTsKKworLyoqCisgKiBUaGlzIHJlc291cmNlIGJ1bmRsZSBpcyBpbmNsdWRlZCBmb3IgdGVzdGluZyBhbmQgZGVtb25zdHJhdGlvbiBwdXJwb3NlcyBvbmx5LgorICogSXQgYXBwbGllcyB0aGUgZGljdGlvbmFyeS1iYXNlZCBhbGdvcml0aG0gdG8gRW5nbGlzaCB0ZXh0IHRoYXQgaGFzIGhhZCBhbGwgdGhlCisgKiBzcGFjZXMgcmVtb3ZlZC4gIE9uY2Ugd2UgaGF2ZSBnb29kIHRlc3QgY2FzZXMgZm9yIFRoYWksIHdlIHdpbGwgcmVwbGFjZSB0aGlzCisgKiB3aXRoIGdvb2QgcmVzb3VyY2UgZGF0YSAoYW5kIGEgZ29vZCBkaWN0aW9uYXJ5IGZpbGUpIGZvciBUaGFpCisgKi8KK3B1YmxpYyBjbGFzcyBCcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfREVNTyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfTkFNRSA9ICIvY29tL2libS9kYXRhL21pc2MvZW5nbGlzaC5kaWN0IjsKKworICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICBmaW5hbCBib29sZWFuIGV4aXN0cyA9IElDVURhdGEuZXhpc3RzKERBVEFfTkFNRSk7CisKKyAgICAgICAgaWYgKCFleGlzdHMpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0WzBdWzBdOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIC8vIG5hbWVzIG9mIGNsYXNzZXMgdG8gaW5zdGFudGlhdGUgZm9yIHRoZSBkaWZmZXJlbnQga2luZHMgb2YgYnJlYWsKKyAgICAgICAgICAgIC8vIGl0ZXJhdG9yLiAgTm90aWNlIHdlJ3JlIG5vdyB1c2luZyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICAgICAgICAvLyBmb3Igd29yZCBhbmQgbGluZSBicmVha2luZy4KKyAgICAgICAgICAgIHsgICAiQnJlYWtJdGVyYXRvckNsYXNzZXMiLAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICJEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgLy8gd29yZC1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICAgICAgICAgICAgICAiRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciIsCisgICAgICAgICAgICAgICAgICAgIC8vIGxpbmUtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgIlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IiIH0gLy8gc2VudGVuY2UtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgIC8vIFRoZXNlIGFyZSB0aGUgc2FtZSB3b3JkLWJyZWFraW5nIHJ1bGVzIGFzIGFyZSBzcGVjaWZpZWQgaW4gdGhlIGRlZmF1bHQKKyAgICAgICAgICAgIC8vIHJlc291cmNlLCBleGNlcHQgdGhhdCB0aGUgTGF0aW4gbGV0dGVycywgYXBvc3Ryb3BoZSwgYW5kIGh5cGhlbiBhcmUKKyAgICAgICAgICAgIC8vIHNwZWNpZmllZCBhcyBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiV29yZEJyZWFrUnVsZXMiLAorICAgICAgICAgICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMsCisgICAgICAgICAgICAgICAgLy8gYWxsIG9mIHdoaWNoIHNob3VsZCBub3QgaW5mbHVlbmNlIHRoZSBhbGdvcml0aG0KKyAgICAgICAgICAgICAgICAiJF9pZ25vcmVfPVtbOk1uOl1bOk1lOl1bOkNmOl1dOyIKKworICAgICAgICAgICAgICAgIC8vIGxvd2VyIGFuZCB1cHBlciBjYXNlIFJvbWFuIGxldHRlcnMsIGFwb3N0cm9waHkgYW5kIGRhc2ggYXJlCisgICAgICAgICAgICAgICAgLy8gaW4gdGhlIEVuZ2xpc2ggZGljdGlvbmFyeQorICAgICAgICAgICAgICAgICsiJF9kaWN0aW9uYXJ5Xz1bYS16QS1aXFwnXFwtXTsiCisKKyAgICAgICAgICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9yLCBrYW5qaSwga2F0YWthbmEsIGhpcmFnYW5hLCBDSksgZGlhY3JpdGljYWxzLAorICAgICAgICAgICAgICAgIC8vIG90aGVyIGxldHRlcnMsIGFuZCBkaWdpdHMKKyAgICAgICAgICAgICAgICArIiRkYW5kYT1bXHUwOTY0XHUwOTY1XTsiCisgICAgICAgICAgICAgICAgICAgICsgIiRrYW5qaT1bXHUzMDA1XHU0ZTAwLVx1OWZhNVx1ZjkwMC1cdWZhMmRdOyIKKyAgICAgICAgICAgICAgICAgICAgKyAiJGthdGE9W1x1MzA5OS1cdTMwOWNcdTMwYTEtXHUzMGZlXTsiCisgICAgICAgICAgICAgICAgICAgICsgIiRoaXJhPVtcdTMwNDEtXHUzMDllXHUzMGZjXTsiCisgICAgICAgICAgICAgICAgICAgICsgIiRsZXQ9W1tbOkw6XVs6TWM6XV0tWyRrYW5qaSRrYXRhJGhpcmFdXTsiCisgICAgICAgICAgICAgICAgICAgICsgIiRkZ3Q9WzpOOl07IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQ6IGN1cnJlbnRseQorICAgICAgICAgICAgICAgIC8vIGRhc2hlcywgYXBvc3Ryb3BoZXMsIGFuZCBxdW90YXRpb24gbWFya3MKKyAgICAgICAgICAgICAgICArIiRtaWRfd29yZD1bWzpQZDpdXHUwMGFkXHUyMDI3XFxcIlxcXCddOyIKKworICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGluIHRoZSBtaWRkbGUgb2YgYSBudW1iZXI6IGN1cnJlbnRseQorICAgICAgICAgICAgICAgIC8vIGFwb3N0cm9waGVzLCBxb3V0YXRpb24gbWFya3MsIHBlcmlvZHMsIGNvbW1hcywgYW5kIHRoZSBBcmFiaWMKKyAgICAgICAgICAgICAgICAvLyBkZWNpbWFsIHBvaW50CisgICAgICAgICAgICAgICAgKyIkbWlkX251bT1bXFxcIlxcXCdcXCxcdTA2NmJcXC5dOyIKKworICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBudW1iZXI6IGN1cnJlbnRseQorICAgICAgICAgICAgICAgIC8vIHRoZSBwZXJpb2QsIHRoZSBudW1iZXIgc2lnbiwgYW5kIGFsbCBjdXJyZW5jeSBzeW1ib2xzIGV4Y2VwdCB0aGUgY2VudHMgc2lnbgorICAgICAgICAgICAgICAgICsiJHByZV9udW09W1tbOlNjOl0tW1x1MDBhMl1dXFwjXFwuXTsiCisKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBhdCB0aGUgZW5kIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgICAgICAvLyB0aGUgcGVyY2VudCwgcGVyLXRob3VzYW5kLCBwZXItdGVuLXRob3VzYW5kLCBhbmQgQXJhYmljIHBlcmNlbnQKKyAgICAgICAgICAgICAgICAvLyBzaWducywgdGhlIGNlbnRzIHNpZ24sIGFuZCB0aGUgYW1wZXJzYW5kCisgICAgICAgICAgICAgICAgKyIkcG9zdF9udW09W1xcJVxcJlx1MDBhMlx1MDY2YVx1MjAzMFx1MjAzMV07IgorCisgICAgICAgICAgICAgICAgLy8gbGluZSBzZXBhcmF0b3JzOiBjdXJyZW50bHkgTEYsIEZGLCBQUywgYW5kIExTCisgICAgICAgICAgICAgICAgKyIkbHM9W1xuXHUwMDBjXHUyMDI4XHUyMDI5XTsiCisKKyAgICAgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlOiBhbGwgc3BhY2Ugc2VwYXJhdG9ycyBhbmQgdGhlIHRhYiBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICArIiR3cz1bWzpaczpdXHRdOyIKKworICAgICAgICAgICAgICAgIC8vIGEgd29yZCBpcyBhIHNlcXVlbmNlIG9mIGxldHRlcnMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAorICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uLCBhcyBsb25nIGFzIGl0IGJlZ2lucyBhbmQgZW5kcyB3aXRoIGEgbGV0dGVyIGFuZAorICAgICAgICAgICAgICAgIC8vIG5ldmVyIGNvbnRhaW5zIHR3byBwdW5jdHVhdGlvbiBtYXJrcyBpbiBhIHJvdworICAgICAgICAgICAgICAgICsiJHdvcmQ9KCRsZXQrKCRtaWRfd29yZCRsZXQrKSokZGFuZGE/KTsiCisKKyAgICAgICAgICAgICAgICAvLyBhIG51bWJlciBpcyBhIHNlcXVlbmNlIG9mIGRpZ2l0cyB0aGF0IG1heSBjb250YWluIGludGVybmFsCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24sIGFzIGxvbmcgYXMgaXQgYmVnaW5zIGFuZCBlbmRzIHdpdGggYSBkaWdpdCBhbmQKKyAgICAgICAgICAgICAgICAvLyBuZXZlciBjb250YWlucyB0d28gcHVuY3R1YXRpb24gbWFya3MgaW4gYSByb3cuCisgICAgICAgICAgICAgICAgKyIkbnVtYmVyPSgkZGd0KygkbWlkX251bSRkZ3QrKSopOyIKKworICAgICAgICAgICAgICAgIC8vIGJyZWFrIGFmdGVyIGV2ZXJ5IGNoYXJhY3Rlciwgd2l0aCB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbnMKKyAgICAgICAgICAgICAgICAvLyAodGhpcyB3aWxsIGNhdXNlIHB1bmN0dWF0aW9uIG1hcmtzIHRoYXQgYXJlbid0IGNvbnNpZGVyZWQKKyAgICAgICAgICAgICAgICAvLyBwYXJ0IG9mIHdvcmRzIG9yIG51bWJlcnMgdG8gYmUgdHJlYXRlZCBhcyB3b3JkcyB1bnRvIHRoZW1zZWx2ZXMpCisgICAgICAgICAgICAgICAgKyIuOyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgYW55IHNlcXVlbmNlIG9mIGNvbnRpZ3VvdXMgd29yZHMgYW5kIG51bWJlcnMKKyAgICAgICAgICAgICAgICAvLyAoaW5jbHVkaW5nIGp1c3Qgb25lIG9mIGVpdGhlciksIHBsdXMgYW4gb3B0aW9uYWwgdHJhaWxpbmcKKyAgICAgICAgICAgICAgICAvLyBudW1iZXItc3VmZml4IGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICsiJHdvcmQ/KCRudW1iZXIkd29yZCkqKCRudW1iZXIkcG9zdF9udW0/KT87IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBhbmQgc2VxdWVuY2Ugb2YgY29udGlndW91cyB3b3JkcyBhbmQgbnVtYmVycworICAgICAgICAgICAgICAgIC8vIHRoYXQgc3RhcnRzIHdpdGggYSBudW1iZXItcHJlZml4IGNoYXJhY3RlciBhbmQgYSBudW1iZXIsCisgICAgICAgICAgICAgICAgLy8gYW5kIG1heSBlbmQgd2l0aCBhIG51bWJlci1zdWZmaXggY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgKyIkcHJlX251bSgkbnVtYmVyJHdvcmQpKigkbnVtYmVyJHBvc3RfbnVtPyk/OyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiB3aGl0ZXNwYWNlIChvcHRpb25hbGx5IHdpdGggYSBzaW5nbGUgdHJhaWxpbmcKKyAgICAgICAgICAgICAgICAvLyBsaW5lIHNlcGFyYXRvciBvciBDUkxGIHNlcXVlbmNlKQorICAgICAgICAgICAgICAgICsiJHdzKlxyPyRscz87IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEthdGFrYW5hCisgICAgICAgICAgICAgICAgKyIka2F0YSo7IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEhpcmFnYW5hCisgICAgICAgICAgICAgICAgKyIkaGlyYSo7IgorCisgICAgICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEthbmppCisgICAgICAgICAgICAgICAgKyIka2FuamkqOyIgfSwKKworICAgICAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBzYW1lIGxpbmUtYnJlYWtpbmcgcnVsZXMgYXMgYXJlIHNwZWNpZmllZCBpbiB0aGUgZGVmYXVsdAorICAgICAgICAgICAgLy8gcmVzb3VyY2UsIGV4Y2VwdCB0aGF0IHRoZSBMYXRpbiBsZXR0ZXJzLCBhcG9zdHJvcGhlLCBhbmQgaHlwaGVuIGFyZQorICAgICAgICAgICAgLy8gc3BlY2lmaWVkIGFzIGRpY3Rpb25hcnkgY2hhcmFjdGVycworICAgICAgICAgICAgeyAgICJMaW5lQnJlYWtSdWxlcyIsCisgICAgICAgICAgICAgICAgLy8gaWdub3JlIG5vbi1zcGFjaW5nIG1hcmtzLCBlbmNsb3NpbmcgbWFya3MsIGFuZCBmb3JtYXQgY2hhcmFjdGVycworICAgICAgICAgICAgICAgICIkX2lnbm9yZV89W1s6TW46XVs6TWU6XVs6Q2Y6XV07IgorCisgICAgICAgICAgICAgICAgLy8gbG93ZXIgYW5kIHVwcGVyIGNhc2UgUm9tYW4gbGV0dGVycywgYXBvc3Ryb3BoeSBhbmQgZGFzaAorICAgICAgICAgICAgICAgIC8vIGFyZSBpbiB0aGUgRW5nbGlzaCBkaWN0aW9uYXJ5CisgICAgICAgICAgICAgICAgKyIkX2RpY3Rpb25hcnlfPVthLXpBLVpcXCdcXC1dOyIKKworICAgICAgICAgICAgICAgIC8vIEhpbmRpIHBocmFzZSBzZXBhcmF0b3JzCisgICAgICAgICAgICAgICAgKyIkZGFuZGE9W1x1MDk2NFx1MDk2NV07IgorCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBjYXVzZSBhIGJyZWFrOiBFVFgsIHRhYiwgTEYsIEZGLCBMUywgYW5kIFBTCisgICAgICAgICAgICAgICAgKyIkYnJlYWs9W1x1MDAwM1x0XG5cZlx1MjAyOFx1MjAyOV07IgorCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBwcmV2ZW50IGEgYnJlYWs6IHRoZSBub24tYnJlYWtpbmcgc3BhY2UKKyAgICAgICAgICAgICAgICAvLyBhbmQgc2ltaWxhciBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgKyIkbmJzcD1bXHUwMGEwXHUyMDA3XHUyMDExXHVmZWZmXTsiCisKKyAgICAgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlOiBzcGFjZSBzZXBhcmF0b3JzIGFuZCBjb250cm9sIGNoYXJhY3RlcnMsIGV4Y2VwdCBmb3IKKyAgICAgICAgICAgICAgICAvLyBDUiBhbmQgdGhlIG90aGVyIGNoYXJhY3RlcnMgbWVudGlvbmVkIGFib3ZlCisgICAgICAgICAgICAgICAgKyIkc3BhY2U9W1tbOlpzOl1bOkNjOl1dLVskbmJzcCRicmVha1xyXV07IgorCisgICAgICAgICAgICAgICAgLy8gZGFzaGVzOiBkYXNoIHB1bmN0dWF0aW9uIGFuZCB0aGUgZGlzY3JldGlvbmFyeSBoeXBoZW4sIGV4Y2VwdCBmb3IKKyAgICAgICAgICAgICAgICAvLyBub24tYnJlYWtpbmcgaHlwaGVucworICAgICAgICAgICAgICAgICsiJGRhc2g9W1tbOlBkOl1cdTAwYWRdLVskbmJzcF1dOyIKKworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBwcmVjZWRlIGl0OiBjdXJyZW5jeSBzeW1ib2xzCisgICAgICAgICAgICAgICAgLy8gKGV4Y2VwdCB0aGUgY2VudHMgc2lnbikgYW5kIHN0YXJ0aW5nIHB1bmN0dWF0aW9uCisgICAgICAgICAgICAgICAgKyIkcHJlX3dvcmQ9W1tbOlNjOl0tW1x1MDBhMl1dWzpQczpdXFxcIlxcXCddOyIKKworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBmb2xsb3cgaXQ6IGVuZGluZyBwdW5jdHVhdGlvbiwKKyAgICAgICAgICAgICAgICAvLyBvdGhlciBwdW5jdHVhdGlvbiB0aGF0IHVzdWFsbHkgb2NjdXJzIGF0IHRoZSBlbmQgb2YgYSBzZW50ZW5jZSwKKyAgICAgICAgICAgICAgICAvLyBzbWFsbCBLYW5hIGNoYXJhY3RlcnMsIHNvbWUgQ0pLIGRpYWNyaXRpY3MsIGV0Yy4KKyAgICAgICAgICAgICAgICArIiRwb3N0X3dvcmQ9W1s6UGU6XVxcIVxcXCJcXFwnXFwlXFwuXFwsXFw6XFw7XFw/XHUwMGEyXHUwMGIwXHUwNjZhXHUyMDMwLVx1MjAzNCIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHUyMTAzXHUyMTA1XHUyMTA5XHUzMDAxXHUzMDAyXHUzMDA1XHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzIgorICAgICAgICAgICAgICAgICAgICArICJcdTMwODNcdTMwODVcdTMwODdcdTMwOGVcdTMwOTktXHUzMDllXHUzMGExXHUzMGEzXHUzMGE1XHUzMGE3XHUzMGE5IgorICAgICAgICAgICAgICAgICAgICArICJcdTMwYzNcdTMwZTNcdTMwZTVcdTMwZTdcdTMwZWVcdTMwZjVcdTMwZjZcdTMwZmMtXHUzMGZlXHVmZjAxXHVmZjBjIgorICAgICAgICAgICAgICAgICAgICArICJcdWZmMGVcdWZmMWZdOyIKKworICAgICAgICAgICAgICAgIC8vIEthbmppOiBhY3R1YWxseSBpbmNsdWRlcyBib3RoIEthbmppIGFuZCBLYW5hLCBleGNlcHQgZm9yIHNtYWxsIEthbmEgYW5kCisgICAgICAgICAgICAgICAgLy8gQ0pLIGRpYWNyaXRpY3MKKyAgICAgICAgICAgICAgICArIiRrYW5qaT1bW1x1NGUwMC1cdTlmYTVcdWY5MDAtXHVmYTJkXHUzMDQxLVx1MzA5NFx1MzBhMS1cdTMwZmFdLVskcG9zdF93b3JkJF9pZ25vcmVfXV07IgorCisgICAgICAgICAgICAgICAgLy8gZGlnaXRzCisgICAgICAgICAgICAgICAgKyIkZGlnaXQ9W1s6TmQ6XVs6Tm86XV07IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIG51bWJlcjogcGVyaW9kcyBhbmQgY29tbWFzCisgICAgICAgICAgICAgICAgKyIkbWlkX251bT1bXFwuXFwsXTsiCisKKyAgICAgICAgICAgICAgICAvLyBldmVyeXRoaW5nIG5vdCBtZW50aW9uZWQgYWJvdmUsIHBsdXMgdGhlIHF1b3RlIG1hcmtzICh3aGljaCBhcmUgYm90aAorICAgICAgICAgICAgICAgIC8vIDxwcmUtd29yZD4sIDxwb3N0LXdvcmQ+LCBhbmQgPGNoYXI+KQorICAgICAgICAgICAgICAgICsiJGNoYXI9W14kYnJlYWskc3BhY2UkZGFzaCRrYW5qaSRuYnNwJF9pZ25vcmVfJHByZV93b3JkJHBvc3Rfd29yZCRtaWRfbnVtJGRhbmRhXHJcXFwiXFxcJ107IgorCisgICAgICAgICAgICAgICAgLy8gYSAibnVtYmVyIiBpcyBhIHJ1biBvZiBwcmVmaXggY2hhcmFjdGVycyBhbmQgZGFzaGVzLCBmb2xsb3dlZCBieSBvbmUgb3IKKyAgICAgICAgICAgICAgICAvLyBtb3JlIGRpZ2l0cyB3aXRoIGlzb2xhdGVkIG51bWJlci1wdW5jdHVhdGlvbiBjaGFyYWN0ZXJzIGludGVyc3BlcnNlZAorICAgICAgICAgICAgICAgICsiJG51bWJlcj0oWyRwcmVfd29yZCRkYXNoXSokZGlnaXQrKCRtaWRfbnVtJGRpZ2l0KykqKTsiCisKKyAgICAgICAgICAgICAgICAvLyB0aGUgYmFzaWMgY29yZSBvZiBhIHdvcmQgY2FuIGJlIGVpdGhlciBhICJudW1iZXIiIGFzIGRlZmluZWQgYWJvdmUsIGEgc2luZ2xlCisgICAgICAgICAgICAgICAgLy8gIkthbmppIiBjaGFyYWN0ZXIsIG9yIGEgcnVuIG9mIGFueSBudW1iZXIgb2Ygbm90LWV4cGxpY2l0bHktbWVudGlvbmVkCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyAodGhpcyBpbmNsdWRlcyBMYXRpbiBsZXR0ZXJzKQorICAgICAgICAgICAgICAgICsiJHdvcmRfY29yZT0oWyRwcmVfd29yZCRjaGFyXSp8JGthbmppfCRudW1iZXIpOyIKKworICAgICAgICAgICAgICAgIC8vIGEgd29yZCBtYXkgZW5kIHdpdGggYW4gb3B0aW9uYWwgc3VmZml4IHRoYXQgYmUgZWl0aGVyIGEgcnVuIG9mIG9uZSBvcgorICAgICAgICAgICAgICAgIC8vIG1vcmUgZGFzaGVzIG9yIGEgcnVuIG9mIHdvcmQtc3VmZml4IGNoYXJhY3RlcnMsIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgLy8gcnVuIG9mIHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICArIiR3b3JkX3N1ZmZpeD0oKCRkYXNoK3wkcG9zdF93b3JkKikkc3BhY2UqKTsiCisKKyAgICAgICAgICAgICAgICAvLyBhIHdvcmQsIHRodXMsIGlzIGFuIG9wdGlvbmFsIHJ1biBvZiB3b3JkLXByZWZpeCBjaGFyYWN0ZXJzLCBmb2xsb3dlZCBieQorICAgICAgICAgICAgICAgIC8vIGEgd29yZCBjb3JlIGFuZCBhIHdvcmQgc3VmZml4ICh0aGUgc3ludGF4IG9mIDx3b3JkLWNvcmU+IGFuZCA8d29yZC1zdWZmaXg+CisgICAgICAgICAgICAgICAgLy8gYWN0dWFsbHkgYWxsb3dzIGVpdGhlciBvZiB0aGVtIHRvIG1hdGNoIHRoZSBlbXB0eSBzdHJpbmcsIHB1dHRpbmcgYSBicmVhaworICAgICAgICAgICAgICAgIC8vIGJldHdlZW4gdGhpbmdzIGxpa2UgIikoIiBvciAiYWFhKGFhYSIKKyAgICAgICAgICAgICAgICArIiR3b3JkPSgkcHJlX3dvcmQqJHdvcmRfY29yZSR3b3JkX3N1ZmZpeCk7IgorCisgICAgICAgICAgICAgICAgLy8gZmluYWxseSwgdGhlIHJ1bGUgdGhhdCBkb2VzIHRoZSB3b3JrOiBLZWVwIHRvZ2V0aGVyIGFueSBydW4gb2Ygd29yZHMgdGhhdAorICAgICAgICAgICAgICAgIC8vIGFyZSBqb2luZWQgYnkgcnVucyBvZiBvbmUgb2YgbW9yZSBub24tc3BhY2luZyBtYXJrLiAgQWxzbyBrZWVwIGEgdHJhaWxpbmcKKyAgICAgICAgICAgICAgICAvLyBsaW5lLWJyZWFrIGNoYXJhY3RlciBvciBDUkxGIGNvbWJpbmF0aW9uIHdpdGggdGhlIHdvcmQuICAobGluZSBzZXBhcmF0b3JzCisgICAgICAgICAgICAgICAgLy8gIndpbiIgb3ZlciBuYnNwJ3MpCisgICAgICAgICAgICAgICAgKyIkd29yZCgkbmJzcCskd29yZCkqXHI/JGJyZWFrPzsiIH0sCisKKyAgICAgICAgICAgIC8vIHRoZXNlIHR3byByZXNvdXJjZXMgc3BlY2lmeSB0aGUgcGF0aG5hbWVzIG9mIHRoZSBkaWN0aW9uYXJ5IGZpbGVzIHRvCisgICAgICAgICAgICAvLyB1c2UgZm9yIHdvcmQgYnJlYWtpbmcgYW5kIGxpbmUgYnJlYWtpbmcuICBCb3RoIGN1cnJlbnRseSByZWZlciB0byAKKyAgICAgICAgICAgIC8vIGEgZmlsZSBjYWxsZWQgZW5nbGlzaC5kaWN0IHBsYWNlZCBpbiBjb20uaWJtLmljdS5pbXBsLmRhdGEKKyAgICAgICAgICAgIC8vIHNvbWV3aGVyZSBpbiB0aGUgY2xhc3MgcGF0aC4gIEl0J3MgaW1wb3J0YW50IHRvIG5vdGUgdGhhdAorICAgICAgICAgICAgLy8gZW5nbGlzaC5kaWN0IHdhcyBjcmVhdGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHksIGFuZCBkb2Vzbid0CisgICAgICAgICAgICAvLyBjb21lIGFueXdoZXJlIGNsb3NlIHRvIGJlaW5nIGFuIGV4aGF1c3RpdmUgZGljdGlvbmFyeSBvZiBFbmdsaXNoCisgICAgICAgICAgICAvLyB3b3JkcyAoYmFzaWNhbGx5LCBpdCBjb250YWlucyBhbGwgdGhlIHdvcmRzIGluIHRoZSBEZWNsYXJhdGlvbiBvZgorICAgICAgICAgICAgLy8gSW5kZXBlbmRlbmNlLCBhbmQgdGhlIFJldmlzZWQgU3RhbmRhcmQgVmVyc2lvbiBvZiB0aGUgYm9vayBvZiBHZW5lc2lzLAorICAgICAgICAgICAgLy8gcGx1cyBhIGZldyBvdGhlciB3b3JkcyB0aHJvd24gaW4gdG8gc2hvdyBtb3JlIGludGVyZXN0aW5nIGNhc2VzKS4KKyAgICAgICAgICAgIC8vIHsgIldvcmRCcmVha0RpY3Rpb25hcnkiLCAiY29tXFxpYm1cXHRleHRcXHJlc291cmNlc1xcZW5nbGlzaC5kaWN0IiB9LAorICAgICAgICAgICAgLy8geyAiTGluZUJyZWFrRGljdGlvbmFyeSIsICJjb21cXGlibVxcdGV4dFxccmVzb3VyY2VzXFxlbmdsaXNoLmRpY3QiIH0KKyAgICAgICAgICAgIHsgICAiV29yZEJyZWFrRGljdGlvbmFyeSIsIERBVEFfTkFNRSB9LCAKKyAgICAgICAgICAgIHsgICAiTGluZUJyZWFrRGljdGlvbmFyeSIsIERBVEFfTkFNRSB9CisgICAgICAgIH07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvREJCSURlbW8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL0RCQklEZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDA2Nzc3YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL0RCQklEZW1vLmphdmEKQEAgLTAsMCArMSw0OTIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnJiYmk7CisKK2ltcG9ydCBqYXZhLmF3dC4qOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUFkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lkl0ZW1FdmVudDsKK2ltcG9ydCBqYXZheC5zd2luZy5KVGV4dEFyZWE7CitpbXBvcnQgamF2YXguc3dpbmcuSlNjcm9sbFBhbmU7CitpbXBvcnQgamF2YXguc3dpbmcuQm9yZGVyRmFjdG9yeTsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYuZGVtby5pbXBsLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworCitwdWJsaWMgY2xhc3MgREJCSURlbW8gZXh0ZW5kcyBEZW1vQXBwbGV0Cit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgeworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChuZXcgTG9jYWxlKCJlbiIsICJVUyIsICJERU1PIikpOworICAgICAgICBuZXcgREJCSURlbW8oKS5zaG93RGVtbygpOworICAgIH0KKworICAgIHB1YmxpYyBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEQkJJRnJhbWUoYXBwbGV0KTsKKyAgICB9Cit9CisKKworCitjbGFzcyBEQkJJRnJhbWUgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIEl0ZW1MaXN0ZW5lcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjcmVkaXRTdHJpbmcgPQorICAgICAgICAidjEuMWE5LCBEZW1vIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSUVMRF9DT0xVTU5TID0gNDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRm9udCBjaG9pY2VGb250ID0gbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgcHJpdmF0ZSBEZW1vQXBwbGV0IGFwcGxldDsKKworICAgIGZpbmFsIFN0cmluZyByaWdodCA9ICItLT4iOworICAgIGZpbmFsIFN0cmluZyBsZWZ0ID0gIjwtLSI7CisKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgaXRlcjsKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzY3RybGRvd25fID0gZmFsc2U7CisKK0pUZXh0QXJlYSB0ZXh0OworLy8gICAgVGV4dEFyZWEgdGV4dDsKKyAgICBDaG9pY2UgYm91bmQ7CisKKyAgICBwdWJsaWMgREJCSUZyYW1lKERlbW9BcHBsZXQgYXBwbGV0KQorICAgIHsKKyAgICAgICAgdGhpcy5hcHBsZXQgPSBhcHBsZXQ7CisgICAgICAgIGluaXQoKTsKKyAgICAgICAgc3RhcnQoKTsKKyAgICB9CisKKworCisgICAgcHVibGljIHZvaWQgcnVuKCkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNoZWNrQ2hhbmdlKCk7CisgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDI1MCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAqLworICAgIH0KKworICAgIGludCBzLCBlOworICAgIGludCB0cywgdGU7CisKKyAgICBwdWJsaWMgdm9pZCBjaGVja0NoYW5nZSgpCisgICAgeworLy8gICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY2hlY2tDaGFuZ2UuLi4iKTsKKyAgICAgICAgaWYgKCh0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkYpICE9IHRzIHx8CisgICAgICAgICAgICAodGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRikgIT0gdGUpIHsKKworICAgICAgICAgICAgLy8gbm90IHVzZWQgaW50IHRlbXBTID0gdGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGOworICAgICAgICAgICAgLy8gbm90IHVzZWQgaW50IHRlbXBFID0gdGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRjsKKworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI+Iik7CisvLyAgICAgICAgICBzZWxlY3QoMCwgMCk7CisvLyAgICAgICAgICBzZWxlY3QodGVtcFMsIHRlbXBFKTsKKyAgICAgICAgICAgIC8vc2VsZWN0KHRlbXBTIC0gKHRzIC0gcyksIHRlbXBFIC0gKHRlIC0gZSkpOworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI8Iik7CisKKworLy8gICAgICAgICAgaWYgKHMgIT0gdHMgfHwgZSAhPSB0ZSkgU3lzdGVtLm91dC5wcmludGxuKCIgICAgIHMoIitzKyIpIHRzKCIrdHMrIikgZSgiK2UrIikgdGUoIit0ZSsiKSIpOworLy8gICAgICAgICAgaWYgKHRlbXBTICE9IHRzIHx8IHRlbXBFICE9IHRlKSBTeXN0ZW0ub3V0LnByaW50bG4oIj5zKCIrcysiKSB0ZW1wUygiK3RlbXBTKyIpIGUoIitlKyIpIHRlbXBFKCIrdGVtcEUrIikiKTsKKy8vICAgICAgICAgIHNlbGVjdChzIC0gKHRzIC0gcyksIGUgLSAodGUgLSBlKSk7CisvLyAgICAgICAgICBpZiAodGVtcFMgIT0gdHMgfHwgdGVtcEUgIT0gdGUpIFN5c3RlbS5vdXQucHJpbnRsbigicygiK3MrIikgdGVtcFMoIit0ZW1wUysiKSBlKCIrZSsiKSB0ZW1wRSgiK3RlbXBFKyIpIik7CisKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibGtkc2xrc2oiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNlbGVjdChpbnQgc0luLCBpbnQgZUluKQorICAgIHsKKyAgICAgICAgcyA9IHNJbjsKKyAgICAgICAgZSA9IGVJbjsKKyAgICAgICAgdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgIHRzID0gdGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGOworICAgICAgICB0ZSA9IHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkY7CisvLyAgICAgICAgaWYgKHMgIT0gdHMgfHwgZSAhPSB0ZSkgeworLy8gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj5zKCIrcysiKSB0cygiK3RzKyIpIGUoIitlKyIpIHRlKCIrdGUrIikiKTsKKy8vICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAiKyh0cy1zKSsiLCIrKHRlLWUpKTsKKy8vICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25TdGFydCgpCisgICAgeworICAgICAgICBjaGVja0NoYW5nZSgpOworLy8gICAgICByZXR1cm4gczsKKyAgICAgICAgcmV0dXJuIHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRjsKKyAgICB9CisKKworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uRW5kKCkKKyAgICB7CisgICAgICAgIGNoZWNrQ2hhbmdlKCk7CisvLyAgICAgIHJldHVybiBlOworICAgICAgICByZXR1cm4gdGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRjsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgc3luY2hyb25pemVkIHZvaWQgc2VsZWN0UmFuZ2UoaW50IHMsIGludCBlKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vaWYgKGdldFNlbGVjdGlvblN0YXJ0KCkgIT0gcyB8fCBnZXRTZWxlY3Rpb25FbmQoKSAhPSBlKSB7CisgICAgICAgICAgICAgICAgLy90ZXh0LnNlbGVjdChzLCBlKTsKKyAgICAgICAgICAgICAgICBzZWxlY3QocyxlKTsKKyAgICAgICAgICAgIC8vfQorLy8gICAgICAgICAgaWYgKGdldFNlbGVjdGlvblN0YXJ0KCkgIT0gcyB8fCBnZXRTZWxlY3Rpb25FbmQoKSAhPSBlKSB7CisvLyAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJBR0ghIHNlbGVjdCgiK3MrIiwiK2UrIikgLT4gKCIrCisvLyAgICAgICAgICAgICAgZ2V0U2VsZWN0aW9uU3RhcnQoKSsiLCIrZ2V0U2VsZWN0aW9uRW5kKCkrIikiKTsKKy8vICAgICAgICAgICAgICB0ZXh0LnNlbGVjdChzIC0gKGdldFNlbGVjdGlvblN0YXJ0KCkgLSBzKSwgZSAtIChnZXRTZWxlY3Rpb25FbmQoKSAtIGUpKTsKKy8vICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4cCkgeworICAgICAgICAgICAgZXJyb3JUZXh0KGV4cC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworCisKKyAgICBwdWJsaWMgdm9pZCBpbml0KCkKKyAgICB7CisgICAgICAgIGJ1aWxkR1VJKCk7CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBzdGFydCgpCisgICAgeworICAgIH0KKworCisgICAgdm9pZCBhZGRXaXRoRm9udChDb250YWluZXIgY29udGFpbmVyLCBDb21wb25lbnQgZm9vLCBGb250IGZvbnQpIHsKKyAgICAgICAgaWYgKGZvbnQgIT0gbnVsbCkKKyAgICAgICAgICAgIGZvby5zZXRGb250KGZvbnQpOworICAgICAgICBjb250YWluZXIuYWRkKGZvbyk7CisgICAgfQorCisKKworICAgcHVibGljIHZvaWQgYnVpbGRHVUkoKQorICAgIHsKKyAgICAgICAgc2V0QmFja2dyb3VuZChEZW1vVXRpbGl0eS5iZ0NvbG9yKTsKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisKKyAgICAgICBQYW5lbCB0b3BQYW5lbCA9IG5ldyBQYW5lbCgpOworCisgICAgICAgICAgICBMYWJlbCB0aXRsZUxhYmVsID0KKyAgICAgICAgICAgICAgICBuZXcgTGFiZWwoIlRleHQgQm91bmRhcnkgRGVtbyIsIExhYmVsLkNFTlRFUik7CisgICAgICAgICAgICB0aXRsZUxhYmVsLnNldEZvbnQoRGVtb1V0aWxpdHkudGl0bGVGb250KTsKKyAgICAgICAgICAgIHRvcFBhbmVsLmFkZCh0aXRsZUxhYmVsKTsKKworICAgICAgICAgICAgLy9MYWJlbCBkZW1vPW5ldyBMYWJlbChjcmVkaXRTdHJpbmcsIExhYmVsLkNFTlRFUik7CisgICAgICAgICAgICAvL2RlbW8uc2V0Rm9udChEZW1vVXRpbGl0eS5jcmVkaXRGb250KTsKKyAgICAgICAgICAgIC8vdG9wUGFuZWwuYWRkKGRlbW8pOworCisgICAgICAgICAgICBQYW5lbCBjaG9pY2VQYW5lbCA9IG5ldyBQYW5lbCgpOworCisgICAgICAgICAgICBMYWJlbCBkZW1vMT1uZXcgTGFiZWwoIkJvdW5kYXJpZXMiLCBMYWJlbC5MRUZUKTsKKyAgICAgICAgICAgIGRlbW8xLnNldEZvbnQoRGVtb1V0aWxpdHkubGFiZWxGb250KTsKKyAgICAgICAgICAgIGNob2ljZVBhbmVsLmFkZChkZW1vMSk7CisKKyAgICAgICAgICAgIGJvdW5kID0gbmV3IENob2ljZSgpOworICAgICAgICAgICAgICAgIGJvdW5kLnNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuY2hvaWNlQ29sb3IpOworICAgICAgICAgICAgYm91bmQuYWRkSXRlbSgiU2VudGVuY2UiKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIkxpbmUgQnJlYWsiKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIldvcmQiKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIkNoYXIiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm91bmQuYWRkSXRlbUxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgaWYgKGNob2ljZUZvbnQgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBib3VuZC5zZXRGb250KGNob2ljZUZvbnQpOworCisgICAgICAgICAgICBjaG9pY2VQYW5lbC5hZGQoYm91bmQpOworICAgICAgICAgICAgdG9wUGFuZWwuYWRkKGNob2ljZVBhbmVsKTsKKworICAgICAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZCh0b3BQYW5lbCwxKTsKKworCisgICAgICAgIGFkZCgiTm9ydGgiLCB0b3BQYW5lbCk7CisKKworICAgICAgICAgICAgaW50IFJPV1MgPSAxNTsKKyAgICAgICAgICAgIGludCBDT0xVTU5TID0gNTA7CisvLyAgICAgICAgICAgIHRleHQgPSBuZXcgVGV4dEFyZWEoZ2V0SW5pdGlhbFRleHQoKSwgUk9XUywgQ09MVU1OUyk7Cit0ZXh0ID0gbmV3IEpUZXh0QXJlYShnZXRJbml0aWFsVGV4dCgpLCBST1dTLCBDT0xVTU5TKTsKK3RleHQuc2V0TGluZVdyYXAodHJ1ZSk7Cit0ZXh0LnNldFdyYXBTdHlsZVdvcmQodHJ1ZSk7CisgICAgICAgICAgICB0ZXh0LnNldEVkaXRhYmxlKHRydWUpOworICAgICAgICAgICAgdGV4dC5zZWxlY3RBbGwoKTsKKyAgICAgICAgICAgIHRleHQuc2V0Rm9udChEZW1vVXRpbGl0eS5lZGl0Rm9udCk7CisgICAgICAgICAgICB0ZXh0LnNldEJvcmRlcihCb3JkZXJGYWN0b3J5LmNyZWF0ZUVtcHR5Qm9yZGVyKDIsIDIsIDIsIDIpKTsKKworICAgICAgICBhZGQoIkNlbnRlciIsIG5ldyBKU2Nyb2xsUGFuZSh0ZXh0LCBKU2Nyb2xsUGFuZS5WRVJUSUNBTF9TQ1JPTExCQVJfQUxXQVlTLAorICAgICAgICAgICAgICAgICAgICAgICAgSlNjcm9sbFBhbmUuSE9SSVpPTlRBTF9TQ1JPTExCQVJfTkVWRVIpKTsKKworICAgICAgICBQYW5lbCBjb3B5cmlnaHRQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICBhZGRXaXRoRm9udCAoY29weXJpZ2h0UGFuZWwsCisgICAgICAgICAgICBuZXcgTGFiZWwoRGVtb1V0aWxpdHkuY29weXJpZ2h0MSwgTGFiZWwuTEVGVCksRGVtb1V0aWxpdHkuY3JlZGl0Rm9udCk7CisgICAgICAgIERlbW9VdGlsaXR5LmZpeEdyaWQoY29weXJpZ2h0UGFuZWwsMSk7CisgICAgICAgIGFkZCgiU291dGgiLCBjb3B5cmlnaHRQYW5lbCk7CisKKyAgICAgICAgLy9sYXlvdXQoKTsKKyAgICAgICAgaGFuZGxlRW51bUNoYW5nZWQoKTsKKyAgICAgICAgCisgICAgICAgIGVuYWJsZUV2ZW50cyhXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORyk7CisgICAgICAgIGVuYWJsZUV2ZW50cyhLZXlFdmVudC5LRVlfUFJFU1NFRCk7CisgICAgICAgIGVuYWJsZUV2ZW50cyhLZXlFdmVudC5LRVlfUkVMRUFTRUQpOworCisgICAgdGV4dC5hZGRLZXlMaXN0ZW5lcihuZXcgS2V5QWRhcHRlcigpIHsKKyAgICAgICAgcHVibGljIHZvaWQga2V5UHJlc3NlZChLZXlFdmVudCBlKSB7CisgICAgICAgICAgICBpZiAoZS5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgICAgIGludCBrYyA9IGUuZ2V0S2V5Q29kZSgpOworICAgICAgICAgICAgc3dpdGNoIChlLmdldEtleUNvZGUoKSkgeworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19OOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19SSUdIVDoKKyAgICAgICAgICAgICAgICBoYW5kbGVGb3J3YXJkKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1A6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0xFRlQ6CisgICAgICAgICAgICAgICAgaGFuZGxlQmFja3dhcmQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlLmNvbnN1bWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBrZXlSZWxlYXNlZChLZXlFdmVudCBlKSB7CisgICAgICAgICAgICBpZiAoZS5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgICAgIGUuY29uc3VtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGtleVR5cGVkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgZS5jb25zdW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gKG5ldyBUaHJlYWQodGhpcykpLnN0YXJ0KCk7CisgICAgfQorCisKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW5pdGlhbFRleHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuCisiV2hlbixpbnRoZWNvdXJzZW9maHVtYW5ldmVudHMsaXRiZWNvbWVzbmVjZXNzYXJ5Zm9yb25lcGVvcGxldG9kaXNzb2x2ZXRoZXBvbGl0aWNhbGJvbmRzd2hpY2hoYXZlIgorKyAiY29ubmVjdGVkdGhlbXdpdGhhbm90aGVyLGFuZHRvYXNzdW1lYW1vbmd0aGVwb3dlcnNvZnRoZWVhcnRoLHRoZXNlcGFyYXRlYW5kZXF1YWxzdGF0aW9udG93aGljaHRoZWxhd3MiCisrICJvZm5hdHVyZWFuZG9mbmF0dXJlJ3NHb2RlbnRpdGxldGhlbSxhZGVjZW50cmVzcGVjdHRvdGhlb3BpbmlvbnNvZm1hbmtpbmRyZXF1aXJlc3RoYXR0aGV5c2hvdWxkZGVjbGFyZXRoZSIKKysgImNhdXNlc3doaWNoaW1wZWx0aGVtdG90aGVzZXBhcmF0aW9uLlxuIgorKyAiV2Vob2xkdGhlc2V0cnV0aHN0b2Jlc2VsZi1ldmlkZW50LHRoYXRhbGxtZW5hcmVjcmVhdGVkZXF1YWwsdGhhdHRoZXlhcmVlbmRvd2VkYnl0aGVpckNyZWF0b3J3aXRoY2VydGFpbiIKKysgInVuYWxpZW5hYmxlcmlnaHRzLHRoYXRhbW9uZ3RoZXNlYXJlbGlmZSxsaWJlcnR5YW5kdGhlcHVyc3VpdG9maGFwcGluZXNzLlRoYXR0b3NlY3VyZXRoZXNlcmlnaHRzLGdvdmVybm1lbnRzYXJlIgorKyAiaW5zdGl0dXRlZGFtb25nbWVuLGRlcml2aW5ndGhlaXJqdXN0cG93ZXJzZnJvbXRoZWNvbnNlbnRvZnRoZWdvdmVybmVkLlRoYXR3aGVuZXZlcmFueWZvcm1vZmdvdmVybm1lbnQiCisrICJiZWNvbWVzZGVzdHJ1Y3RpdmV0b3RoZXNlZW5kcyxpdGlzdGhlcmlnaHRvZnRoZXBlb3BsZXRvYWx0ZXJvcnRvYWJvbGlzaGl0LGFuZHRvaW5zdGl0dXRlbmV3Z292ZXJubWVudCxsYXlpbmciCisrICJpdHNmb3VuZGF0aW9ub25zdWNocHJpbmNpcGxlc2FuZG9yZ2FuaXppbmdpdHNwb3dlcnNpbnN1Y2hmb3JtLGFzdG90aGVtc2hhbGxzZWVtbW9zdGxpa2VseXRvZWZmZWN0dGhlaXJzYWZldHkiCisrICJhbmRoYXBwaW5lc3MuUHJ1ZGVuY2UsaW5kZWVkLHdpbGxkaWN0YXRldGhhdGdvdmVybm1lbnRzbG9uZ2VzdGFibGlzaGVkc2hvdWxkbm90YmVjaGFuZ2VkZm9ybGlnaHRhbmR0cmFuc2llbnQiCisrICJjYXVzZXM7YW5kYWNjb3JkaW5nbHlhbGxleHBlcmllbmNlaGF0aHNob3dudGhhdG1hbmtpbmRhcmVtb3JlZGlzcG9zZWR0b3N1ZmZlcix3aGlsZWV2aWxzYXJlc3VmZmVyYWJsZSx0aGFuIgorKyAidG9yaWdodHRoZW1zZWx2ZXNieWFib2xpc2hpbmd0aGVmb3Jtc3Rvd2hpY2h0aGV5YXJlYWNjdXN0b21lZC5CdXR3aGVuYWxvbmd0cmFpbm9mYWJ1c2VzYW5kdXN1cnBhdGlvbnMsIgorKyAicHVyc3VpbmdpbnZhcmlhYmx5dGhlc2FtZW9iamVjdGV2aW5jZXNhZGVzaWdudG9yZWR1Y2V0aGVtdW5kZXJhYnNvbHV0ZWRlc3BvdGlzbSxpdGlzdGhlaXJyaWdodCxpdGlzdGhlaXJkdXR5LCIKKysgInRvdGhyb3dvZmZzdWNoZ292ZXJubWVudCxhbmR0b3Byb3ZpZGVuZXdndWFyZHNmb3J0aGVpcmZ1dHVyZXNlY3VyaXR5Li0tU3VjaGhhc2JlZW50aGVwYXRpZW50c3VmZmVyYW5jZW9mIgorKyAidGhlc2Vjb2xvbmllczthbmRzdWNoaXNub3d0aGVuZWNlc3NpdHl3aGljaGNvbnN0cmFpbnN0aGVtdG9hbHRlcnRoZWlyZm9ybWVyc3lzdGVtc29mZ292ZXJubWVudC5UaGVoaXN0b3J5IgorKyAib2Z0aGVwcmVzZW50S2luZ29mR3JlYXRCcml0YWluaXNhaGlzdG9yeW9mcmVwZWF0ZWRpbmp1cmllc2FuZHVzdXJwYXRpb25zLGFsbGhhdmluZ2luZGlyZWN0b2JqZWN0dGhlIgorKyAiZXN0YWJsaXNobWVudG9mYW5hYnNvbHV0ZXR5cmFubnlvdmVydGhlc2VzdGF0ZXMuVG9wcm92ZXRoaXMsbGV0ZmFjdHNiZXN1Ym1pdHRlZHRvYWNhbmRpZHdvcmxkLlxuIgorKyAiSGVoYXNyZWZ1c2VkaGlzYXNzZW50dG9sYXdzLHRoZW1vc3R3aG9sZXNvbWVhbmRuZWNlc3Nhcnlmb3J0aGVwdWJsaWNnb29kLlxuIgorKyAiSGVoYXNmb3JiaWRkZW5oaXNnb3Zlcm5vcnN0b3Bhc3NsYXdzb2ZpbW1lZGlhdGVhbmRwcmVzc2luZ2ltcG9ydGFuY2UsdW5sZXNzc3VzcGVuZGVkaW50aGVpcm9wZXJhdGlvbnRpbGwiCisrICJoaXNhc3NlbnRzaG91bGRiZW9idGFpbmVkO2FuZHdoZW5zb3N1c3BlbmRlZCxoZWhhc3V0dGVybHluZWdsZWN0ZWR0b2F0dGVuZHRvdGhlbS5cbiIKKysgIkhlaGFzcmVmdXNlZHRvcGFzc290aGVybGF3c2ZvcnRoZWFjY29tbW9kYXRpb25vZmxhcmdlZGlzdHJpY3Rzb2ZwZW9wbGUsdW5sZXNzdGhvc2VwZW9wbGV3b3VsZHJlbGlucXVpc2giCisrICJ0aGVyaWdodG9mcmVwcmVzZW50YXRpb25pbnRoZWxlZ2lzbGF0dXJlLGFyaWdodGluZXN0aW1hYmxldG90aGVtYW5kZm9ybWlkYWJsZXRvdHlyYW50c29ubHkuXG4iCisrICJIZWhhc2NhbGxlZHRvZ2V0aGVybGVnaXNsYXRpdmVib2RpZXNhdHBsYWNlc3VudXN1YWwsdW5jb21mb3J0YWJsZSxhbmRkaXN0YW50ZnJvbXRoZWRlcG9zaXRvcnlvZnRoZWlycHVibGljIgorKyAicmVjb3Jkcyxmb3J0aGVzb2xlcHVycG9zZW9mZmF0aWd1aW5ndGhlbWludG9jb21wbGlhbmNld2l0aGhpc21lYXN1cmVzLlxuIgorKyAiSGVoYXNkaXNzb2x2ZWRyZXByZXNlbnRhdGl2ZWhvdXNlc3JlcGVhdGVkbHksZm9yb3Bwb3Npbmd3aXRobWFubHlmaXJtbmVzc2hpc2ludmFzaW9uc29udGhlcmlnaHRzb2Z0aGVwZW9wbGUuXG4iCisrICJIZWhhc3JlZnVzZWRmb3JhbG9uZ3RpbWUsYWZ0ZXJzdWNoZGlzc29sdXRpb25zLHRvY2F1c2VvdGhlcnN0b2JlZWxlY3RlZDt3aGVyZWJ5dGhlbGVnaXNsYXRpdmVwb3dlcnMsIgorKyAiaW5jYXBhYmxlb2Zhbm5paGlsYXRpb24saGF2ZXJldHVybmVkdG90aGVwZW9wbGVhdGxhcmdlZm9ydGhlaXJleGVyY2lzZTt0aGVzdGF0ZXJlbWFpbmluZ2ludGhlbWVhbnRpbWVleHBvc2VkIgorKyAidG9hbGx0aGVkYW5nZXJzb2ZpbnZhc2lvbmZyb213aXRob3V0LGFuZGNvbnZ1bHNpb25zd2l0aGluLlxuIgorKyAiSGVoYXNlbmRlYXZvcmVkdG9wcmV2ZW50dGhlcG9wdWxhdGlvbm9mdGhlc2VzdGF0ZXM7Zm9ydGhhdHB1cnBvc2VvYnN0cnVjdGluZ3RoZWxhd3Nmb3JuYXR1cmFsaXphdGlvbm9mIgorKyAiZm9yZWlnbmVycztyZWZ1c2luZ3RvcGFzc290aGVyc3RvZW5jb3VyYWdldGhlaXJtaWdyYXRpb25oaXRoZXIsYW5kcmFpc2luZ3RoZWNvbmRpdGlvbnNvZm5ld2FwcHJvcHJpYXRpb25zb2YiCisrICJsYW5kcy5cbiIKKysgIkhlaGFzb2JzdHJ1Y3RlZHRoZWFkbWluaXN0cmF0aW9ub2ZqdXN0aWNlLGJ5cmVmdXNpbmdoaXNhc3NlbnR0b2xhd3Nmb3Jlc3RhYmxpc2hpbmdqdWRpY2lhcnlwb3dlcnMuXG4iCisrICJIZWhhc21hZGVqdWRnZXNkZXBlbmRlbnRvbmhpc3dpbGxhbG9uZSxmb3J0aGV0ZW51cmVvZnRoZWlyb2ZmaWNlcyxhbmR0aGVhbW91bnRhbmRwYXltZW50b2Z0aGVpcnNhbGFyaWVzLlxuIgorKyAiSGVoYXNlcmVjdGVkYW11bHRpdHVkZW9mbmV3b2ZmaWNlcyxhbmRzZW50aGl0aGVyc3dhcm1zb2ZvZmZpY2Vyc3RvaGFyYXNzb3VycGVvcGxlLGFuZGVhdG91dHRoZWlyIgorKyAic3Vic3RhbmNlLlxuIgorKyAiSGVoYXNrZXB0YW1vbmd1cyxpbnRpbWVzb2ZwZWFjZSxzdGFuZGluZ2FybWllc3dpdGhvdXR0aGVjb25zZW50b2ZvdXJsZWdpc2xhdHVyZS5cbiIKKysgIkhlaGFzYWZmZWN0ZWR0b3JlbmRlcnRoZW1pbGl0YXJ5aW5kZXBlbmRlbnRvZmFuZHN1cGVyaW9ydG9jaXZpbHBvd2VyLlxuIgorKyAiSGVoYXNjb21iaW5lZHdpdGhvdGhlcnN0b3N1YmplY3R1c3RvYWp1cmlzZGljdGlvbmZvcmVpZ250b291cmNvbnN0aXR1dGlvbixhbmR1bmFja25vd2xlZGdlZGJ5b3VybGF3czsiCisrICJnaXZpbmdoaXNhc3NlbnR0b3RoZWlyYWN0c29mcHJldGVuZGVkbGVnaXNsYXRpb246XG4iCisrICJGb3JxdWFydGVyaW5nbGFyZ2Vib2RpZXNvZmFybWVkdHJvb3BzYW1vbmd1czpcbiIKKysgIkZvcnByb3RlY3Rpbmd0aGVtLGJ5bW9ja3RyaWFsLGZyb21wdW5pc2htZW50Zm9yYW55bXVyZGVyc3doaWNodGhleXNob3VsZGNvbW1pdG9udGhlaW5oYWJpdGFudHNvZnRoZXNlIgorKyAic3RhdGVzOlxuIgorKyAiRm9yY3V0dGluZ29mZm91cnRyYWRld2l0aGFsbHBhcnRzb2Z0aGV3b3JsZDpcbiIKKysgIkZvcmltcG9zaW5ndGF4ZXNvbnVzd2l0aG91dG91cmNvbnNlbnQ6XG4iCisrICJGb3JkZXByaXZpbmd1c2lubWFueWNhc2VzLG9mdGhlYmVuZWZpdHNvZnRyaWFsYnlqdXJ5OlxuIgorKyAiRm9ydHJhbnNwb3J0aW5ndXNiZXlvbmRzZWFzdG9iZXRyaWVkZm9ycHJldGVuZGVkb2ZmZW5zZXM6XG4iCisrICJGb3JhYm9saXNoaW5ndGhlZnJlZXN5c3RlbW9mRW5nbGlzaGxhd3NpbmFuZWlnaGJvcmluZ3Byb3ZpbmNlLGVzdGFibGlzaGluZ3RoZXJlaW5hbmFyYml0cmFyeWdvdmVybm1lbnQsYW5kIgorKyAiZW5sYXJnaW5naXRzYm91bmRhcmllc3NvYXN0b3JlbmRlcml0YXRvbmNlYW5leGFtcGxlYW5kZml0aW5zdHJ1bWVudGZvcmludHJvZHVjaW5ndGhlc2FtZWFic29sdXRlcnVsZWludGhlc2UiCisrICJjb2xvbmllczpcbiIKKysgIkZvcnRha2luZ2F3YXlvdXJjaGFydGVycyxhYm9saXNoaW5nb3VybW9zdHZhbHVhYmxlbGF3cyxhbmRhbHRlcmluZ2Z1bmRhbWVudGFsbHl0aGVmb3Jtc29mb3VyZ292ZXJubWVudHM6XG4iCisrICJGb3JzdXNwZW5kaW5nb3Vyb3dubGVnaXNsYXR1cmVzLGFuZGRlY2xhcmluZ3RoZW1zZWx2ZXNpbnZlc3RlZHdpdGhwb3dlcnRvbGVnaXNsYXRlZm9ydXNpbmFsbGNhc2Vzd2hhdHNvZXZlci5cbiIKKysgIkhlaGFzYWJkaWNhdGVkZ292ZXJubWVudGhlcmUsYnlkZWNsYXJpbmd1c291dG9maGlzcHJvdGVjdGlvbmFuZHdhZ2luZ3dhcmFnYWluc3R1cy5cbiIKKysgIkhlaGFzcGx1bmRlcmVkb3Vyc2VhcyxyYXZhZ2Vkb3VyY29hc3RzLGJ1cm5lZG91cnRvd25zLGFuZGRlc3Ryb3llZHRoZWxpdmVzb2ZvdXJwZW9wbGUuXG4iCisrICJIZWlzYXR0aGlzdGltZXRyYW5zcG9ydGluZ2xhcmdlYXJtaWVzb2Zmb3JlaWdubWVyY2VuYXJpZXN0b2NvbXBsZXRldGhld29ya3NvZmRlYXRoLGRlc29sYXRpb25hbmR0eXJhbm55LCIKKysgImFscmVhZHliZWd1bndpdGhjaXJjdW1zdGFuY2Vzb2ZjcnVlbHR5YW5kcGVyZmlkeXNjYXJjZWx5cGFyYWxsZWxlZGludGhlbW9zdGJhcmJhcm91c2FnZXMsYW5kdG90YWxseXVud29ydGh5IgorKyAidGhlaGVhZG9mYWNpdmlsaXplZG5hdGlvbi5cbiIKKysgIkhlaGFzY29uc3RyYWluZWRvdXJmZWxsb3djaXRpemVuc3Rha2VuY2FwdGl2ZW9udGhlaGlnaHNlYXN0b2JlYXJhcm1zYWdhaW5zdHRoZWlyY291bnRyeSx0b2JlY29tZXRoZSIKKysgImV4ZWN1dGlvbmVyc29mdGhlaXJmcmllbmRzYW5kYnJldGhyZW4sb3J0b2ZhbGx0aGVtc2VsdmVzYnl0aGVpcmhhbmRzLlxuIgorKyAiSGVoYXNleGNpdGVkZG9tZXN0aWNpbnN1cnJlY3Rpb25zYW1vbmdzdHVzLGFuZGhhc2VuZGVhdm9yZWR0b2JyaW5nb250aGVpbmhhYml0YW50c29mb3VyZnJvbnRpZXJzLHRoZSIKKysgIm1lcmNpbGVzc0luZGlhbnNhdmFnZXMsd2hvc2Vrbm93bnJ1bGVvZndhcmZhcmUsaXN1bmRpc3Rpbmd1aXNoZWRkZXN0cnVjdGlvbm9mYWxsYWdlcyxzZXhlc2FuZGNvbmRpdGlvbnMuXG4iCisrICJJbmV2ZXJ5c3RhZ2VvZnRoZXNlb3BwcmVzc2lvbnN3ZWhhdmVwZXRpdGlvbmVkZm9ycmVkcmVzc2ludGhlbW9zdGh1bWJsZXRlcm1zOm91cnJlcGVhdGVkcGV0aXRpb25zaGF2ZSIKKysgImJlZW5hbnN3ZXJlZG9ubHlieXJlcGVhdGVkaW5qdXJ5LkFwcmluY2Usd2hvc2VjaGFyYWN0ZXJpc3RodXNtYXJrZWRieWV2ZXJ5YWN0d2hpY2htYXlkZWZpbmVhdHlyYW50LGlzIgorKyAidW5maXR0b2JldGhlcnVsZXJvZmFmcmVlcGVvcGxlLlxuIgorKyAiTm9yaGF2ZXdlYmVlbndhbnRpbmdpbmF0dGVudGlvbnRvb3VyQnJpdGlzaGJyZXRocmVuLldlaGF2ZXdhcm5lZHRoZW1mcm9tdGltZXRvdGltZW9mYXR0ZW1wdHNieXRoZWlyIgorKyAibGVnaXNsYXR1cmV0b2V4dGVuZGFudW53YXJyYW50YWJsZWp1cmlzZGljdGlvbm92ZXJ1cy5XZWhhdmVyZW1pbmRlZHRoZW1vZnRoZWNpcmN1bXN0YW5jZXNvZm91cmVtaWdyYXRpb24iCisrICJhbmRzZXR0bGVtZW50aGVyZS5XZWhhdmVhcHBlYWxlZHRvdGhlaXJuYXRpdmVqdXN0aWNlYW5kbWFnbmFuaW1pdHksYW5kd2VoYXZlY29uanVyZWR0aGVtYnl0aGV0aWVzb2ZvdXIiCisrICJjb21tb25raW5kcmVkdG9kaXNhdm93dGhlc2V1c3VycGF0aW9ucyx3aGljaCx3b3VsZGluZXZpdGFibHlpbnRlcnJ1cHRvdXJjb25uZWN0aW9uc2FuZGNvcnJlc3BvbmRlbmNlLldlIgorKyAibXVzdCx0aGVyZWZvcmUsYWNxdWllc2NlaW50aGVuZWNlc3NpdHksd2hpY2hkZW5vdW5jZXNvdXJzZXBhcmF0aW9uLGFuZGhvbGR0aGVtLGFzd2Vob2xkdGhlcmVzdG9mbWFua2luZCwiCisrICJlbmVtaWVzaW53YXIsaW5wZWFjZWZyaWVuZHMuXG4iCisrICJXZSx0aGVyZWZvcmUsdGhlcmVwcmVzZW50YXRpdmVzb2Z0aGVVbml0ZWRTdGF0ZXNvZkFtZXJpY2EsaW5HZW5lcmFsQ29uZ3Jlc3MsYXNzZW1ibGVkLGFwcGVhbGluZ3RvdGhlIgorKyAiU3VwcmVtZUp1ZGdlb2Z0aGV3b3JsZGZvcnRoZXJlY3RpdHVkZW9mb3VyaW50ZW50aW9ucyxkbyxpbnRoZW5hbWUsYW5kYnl0aGVhdXRob3JpdHlvZnRoZWdvb2RwZW9wbGVvZiIKKysgInRoZXNlY29sb25pZXMsc29sZW1ubHlwdWJsaXNoYW5kZGVjbGFyZSx0aGF0dGhlc2V1bml0ZWRjb2xvbmllc2FyZSxhbmRvZnJpZ2h0b3VnaHR0b2JlZnJlZWFuZGluZGVwZW5kZW50IgorKyAic3RhdGVzO3RoYXR0aGV5YXJlYWJzb2x2ZWRmcm9tYWxsYWxsZWdpYW5jZXRvdGhlQnJpdGlzaENyb3duLGFuZHRoYXRhbGxwb2xpdGljYWxjb25uZWN0aW9uYmV0d2VlbnRoZW1hbmR0aGUiCisrICJzdGF0ZW9mR3JlYXRCcml0YWluLGlzYW5kb3VnaHR0b2JldG90YWxseWRpc3NvbHZlZDthbmR0aGF0YXNmcmVlYW5kaW5kZXBlbmRlbnRzdGF0ZXMsdGhleWhhdmVmdWxscG93ZXJ0byIKKysgImxldmV5d2FyLGNvbmNsdWRlcGVhY2UsY29udHJhY3RhbGxpYW5jZXMsZXN0YWJsaXNoY29tbWVyY2UsYW5kdG9kb2FsbG90aGVyYWN0c2FuZHRoaW5nc3doaWNoaW5kZXBlbmRlbnQiCisrICJzdGF0ZXNtYXlvZnJpZ2h0ZG8uQW5kZm9ydGhlc3VwcG9ydG9mdGhpc2RlY2xhcmF0aW9uLHdpdGhhZmlybXJlbGlhbmNlb250aGVwcm90ZWN0aW9ub2ZEaXZpbmVQcm92aWRlbmNlLHdlIgorKyAibXV0dWFsbHlwbGVkZ2V0b2VhY2hvdGhlcm91cmxpdmVzLG91cmZvcnR1bmVzYW5kb3Vyc2FjcmVkaG9ub3IuXG4iOworICAgIH0KKworCisgICAgcHVibGljIHZvaWQgaGFuZGxlRW51bUNoYW5nZWQoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHMgPSBib3VuZC5nZXRTZWxlY3RlZEl0ZW0oKTsKKyAgICAgICAgaWYgKHMuZXF1YWxzKCJDaGFyIikpIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0Q2hhcmFjdGVySW5zdGFuY2UiKTsKKyAgICAgICAgICAgIGl0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocy5lcXVhbHMoIldvcmQiKSkgeworICAgICAgICAgICAgZXJyb3JUZXh0KCJnZXRXb3JkSW5zdGFuY2UiKTsKKyAgICAgICAgICAgIGl0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHMuZXF1YWxzKCJMaW5lIEJyZWFrIikpIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0TGluZUluc3RhbmNlIik7CisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIC8qIGlmIChzLmVxdWFscygiU2VudGVuY2UiKSkgKi8geworICAgICAgICAgICAgZXJyb3JUZXh0KCJnZXRTZW50ZW5jZUluc3RhbmNlIik7CisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgaXRlci5zZXRUZXh0KHRleHQuZ2V0VGV4dCgpKTsKKyAgICAgICAgc2VsZWN0UmFuZ2UoMCwgMCk7CisgICAgICAgIC8vdGV4dC5zZWxlY3QoMCwwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVGb3J3YXJkKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImVudGVyaW5nIGhhbmRsZUZvcndhcmQiKTsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXh0LmdldFRleHQoKSk7CisgICAgICAgICAgICBpbnQgb2xkU3RhcnQgPSBnZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgaW50IG9sZEVuZCA9IGdldFNlbGVjdGlvbkVuZCgpOworCisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImhhbmRsZUZvcndhcmQ6IG9sZFN0YXJ0PSIgKyBvbGRTdGFydCArICIsIG9sZEVuZD0iICsgb2xkRW5kKTsKKworICAgICAgICAgICAgaWYgKG9sZEVuZCA8IDEpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZSgwLCBpdGVyLmZvbGxvd2luZygwKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgcyA9IGl0ZXIuZm9sbG93aW5nKG9sZEVuZC0xKTsKKyAgICAgICAgICAgICAgICBpbnQgZSA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChlID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGUgPSBzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZShzLCBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgICAgICBlcnJvclRleHQoIjwiICsgb2xkU3RhcnQgKyAiLCIgKyBvbGRFbmQgKyAiPiAtPiA8IiArCisgICAgICAgICAgICAgICAgcyArICIsIiArIGUgKyAiPiIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXhwKSB7CisgICAgICAgICAgICBlcnJvclRleHQoZXhwLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaGFuZGxlQmFja3dhcmQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXh0LmdldFRleHQoKSk7CisgICAgICAgICAgICBpbnQgb2xkU3RhcnQgPSBnZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgaW50IG9sZEVuZCA9IGdldFNlbGVjdGlvbkVuZCgpOworICAgICAgICAgICAgaWYgKG9sZFN0YXJ0IDwgMSkgeworICAgICAgICAgICAgICAgIHNlbGVjdFJhbmdlKDAsIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGUgPSBpdGVyLmZvbGxvd2luZyhvbGRTdGFydC0xKTsKKyAgICAgICAgICAgICAgICBpbnQgcyA9IGl0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZShzLCBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgICAgICBlcnJvclRleHQoIjwiICsgb2xkU3RhcnQgKyAiLCIgKyBvbGRFbmQgKyAiPiAtPiA8IiArIHMgKyAiLCIgKyBlICsgIj4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4cCkgeworICAgICAgICAgICAgZXJyb3JUZXh0KGV4cC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGV2dCkKKyAgICB7CisgICAgICAgIGlmIChldnQuZ2V0U291cmNlKCkgaW5zdGFuY2VvZiBDaG9pY2UpIHsKKyAgICAgICAgICAgIGhhbmRsZUVudW1DaGFuZ2VkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBlcnJvclRleHQoU3RyaW5nIHMpCisgICAgeworICAgICAgIGlmIChERUJVRykKKyAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHMpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBwcm9jZXNzV2luZG93RXZlbnQoV2luZG93RXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgaWYgKGV2dC5nZXRJRCgpID09IFdpbmRvd0V2ZW50LldJTkRPV19DTE9TSU5HICYmIAorICAgICAgICAgICAgZXZ0LmdldFdpbmRvdygpID09IHRoaXMpIHsKKyAgICAgICAgICAgIGhpZGUoKTsKKyAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIGlmIChhcHBsZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGFwcGxldC5kZW1vQ2xvc2VkKCk7CisgICAgICAgICAgICB9IGVsc2UgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgcHJvY2Vzc0tleUV2ZW50KEtleUV2ZW50IGV2dCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoZXZ0LmdldElEKCkpIHsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuS0VZX1BSRVNTRUQgOgorICAgICAgICAgICAgICAgIGlmIChldnQuZ2V0S2V5Q29kZSgpID09IEtleUV2ZW50LlZLX0NPTlRST0wpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNjdHJsZG93bl8gPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuS0VZX1JFTEVBU0VEIDoKKyAgICAgICAgICAgICAgICAvLyBrZXkgZGV0ZWN0aW9uIGZvciBsZWZ0IGFuZCByaWdodCBidXR0b25zIGFyZSByZW1vdmVkCisgICAgICAgICAgICAgICAgLy8gdG8gZW11bGF0ZSB0aGUgb2xkIHJlbGVhc2UgYmVoYXZpb3VyCisgICAgICAgICAgICAgICAgaW50IGtleSA9IGV2dC5nZXRLZXlDb2RlKCk7CisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19OICYmIGlzY3RybGRvd25fKSB7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUZvcndhcmQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX1AgJiYgaXNjdHJsZG93bl8pIHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlQmFja3dhcmQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX0NPTlRST0wpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNjdHJsZG93bl8gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9SQkJJRGVtby5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvUkJCSURlbW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMDBmMWYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvUkJCSURlbW8uamF2YQpAQCAtMCwwICsxLDQ3NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8ucmJiaTsKKworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JdGVtTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUV2ZW50OworaW1wb3J0IGphdmF4LnN3aW5nLkpUZXh0QXJlYTsKK2ltcG9ydCBqYXZheC5zd2luZy5KU2Nyb2xsUGFuZTsKK2ltcG9ydCBqYXZheC5zd2luZy5Cb3JkZXJGYWN0b3J5OworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CisKK3B1YmxpYyBjbGFzcyBSQkJJRGVtbyBleHRlbmRzIERlbW9BcHBsZXQKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJndltdKSB7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KG5ldyBMb2NhbGUoImVuIiwgIlVTIikpOworICAgICAgICBuZXcgUkJCSURlbW8oKS5zaG93RGVtbygpOworICAgIH0KKworICAgIHB1YmxpYyBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSQkJJRnJhbWUoYXBwbGV0KTsKKyAgICB9Cit9CisKKworCitjbGFzcyBSQkJJRnJhbWUgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIEl0ZW1MaXN0ZW5lcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjcmVkaXRTdHJpbmcgPQorICAgICAgICAidjEuMWE5LCBEZW1vIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSUVMRF9DT0xVTU5TID0gNDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRm9udCBjaG9pY2VGb250ID0gbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgcHJpdmF0ZSBEZW1vQXBwbGV0IGFwcGxldDsKKworICAgIGZpbmFsIFN0cmluZyByaWdodCA9ICItLT4iOworICAgIGZpbmFsIFN0cmluZyBsZWZ0ID0gIjwtLSI7CisKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgaXRlcjsKKyAgICBwcml2YXRlIGJvb2xlYW4gICAgICAgaXNjdHJsZG93bl8gPSBmYWxzZTsKKworSlRleHRBcmVhIHRleHQ7CisvLyAgICBUZXh0QXJlYSB0ZXh0OworICAgIENob2ljZSBib3VuZDsKKworICAgIHB1YmxpYyBSQkJJRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpCisgICAgeworICAgICAgICB0aGlzLmFwcGxldCA9IGFwcGxldDsKKyAgICAgICAgaW5pdCgpOworICAgICAgICBzdGFydCgpOworICAgIH0KKworCisKKyAgICBwdWJsaWMgdm9pZCBydW4oKQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY2hlY2tDaGFuZ2UoKTsKKyAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMjUwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICovCisgICAgfQorCisgICAgaW50IHMsIGU7CisgICAgaW50IHRzLCB0ZTsKKworICAgIHB1YmxpYyB2b2lkIGNoZWNrQ2hhbmdlKCkKKyAgICB7CisvLyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjaGVja0NoYW5nZS4uLiIpOworICAgICAgICBpZiAoKHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRikgIT0gdHMgfHwKKyAgICAgICAgICAgICh0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGKSAhPSB0ZSkgeworCisgICAgICAgICAgICAvLyBub3QgdXNlZCBpbnQgdGVtcFMgPSB0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkY7CisgICAgICAgICAgICAvLyBub3QgdXNlZCBpbnQgdGVtcEUgPSB0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGOworCisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj4iKTsKKy8vICAgICAgICAgIHNlbGVjdCgwLCAwKTsKKy8vICAgICAgICAgIHNlbGVjdCh0ZW1wUywgdGVtcEUpOworICAgICAgICAgICAgLy9zZWxlY3QodGVtcFMgLSAodHMgLSBzKSwgdGVtcEUgLSAodGUgLSBlKSk7CisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjwiKTsKKworCisvLyAgICAgICAgICBpZiAocyAhPSB0cyB8fCBlICE9IHRlKSBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgcygiK3MrIikgdHMoIit0cysiKSBlKCIrZSsiKSB0ZSgiK3RlKyIpIik7CisvLyAgICAgICAgICBpZiAodGVtcFMgIT0gdHMgfHwgdGVtcEUgIT0gdGUpIFN5c3RlbS5vdXQucHJpbnRsbigiPnMoIitzKyIpIHRlbXBTKCIrdGVtcFMrIikgZSgiK2UrIikgdGVtcEUoIit0ZW1wRSsiKSIpOworLy8gICAgICAgICAgc2VsZWN0KHMgLSAodHMgLSBzKSwgZSAtICh0ZSAtIGUpKTsKKy8vICAgICAgICAgIGlmICh0ZW1wUyAhPSB0cyB8fCB0ZW1wRSAhPSB0ZSkgU3lzdGVtLm91dC5wcmludGxuKCJzKCIrcysiKSB0ZW1wUygiK3RlbXBTKyIpIGUoIitlKyIpIHRlbXBFKCIrdGVtcEUrIikiKTsKKworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJsa2RzbGtzaiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2VsZWN0KGludCBzSW4sIGludCBlSW4pCisgICAgeworICAgICAgICBzID0gc0luOworICAgICAgICBlID0gZUluOworICAgICAgICB0ZXh0LnNlbGVjdChzLCBlKTsKKyAgICAgICAgdHMgPSB0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkY7CisgICAgICAgIHRlID0gdGV4dC5nZXRTZWxlY3Rpb25FbmQoKSAmIDB4N0ZGRjsKKy8vICAgICAgICBpZiAocyAhPSB0cyB8fCBlICE9IHRlKSB7CisvLyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPnMoIitzKyIpIHRzKCIrdHMrIikgZSgiK2UrIikgdGUoIit0ZSsiKSIpOworLy8gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICIrKHRzLXMpKyIsIisodGUtZSkpOworLy8gICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvblN0YXJ0KCkKKyAgICB7CisgICAgICAgIGNoZWNrQ2hhbmdlKCk7CisvLyAgICAgIHJldHVybiBzOworICAgICAgICByZXR1cm4gdGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGOworICAgIH0KKworCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25FbmQoKQorICAgIHsKKyAgICAgICAgY2hlY2tDaGFuZ2UoKTsKKy8vICAgICAgcmV0dXJuIGU7CisgICAgICAgIHJldHVybiB0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBzeW5jaHJvbml6ZWQgdm9pZCBzZWxlY3RSYW5nZShpbnQgcywgaW50IGUpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy9pZiAoZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBzIHx8IGdldFNlbGVjdGlvbkVuZCgpICE9IGUpIHsKKyAgICAgICAgICAgICAgICAvL3RleHQuc2VsZWN0KHMsIGUpOworICAgICAgICAgICAgICAgIHNlbGVjdChzLGUpOworICAgICAgICAgICAgLy99CisvLyAgICAgICAgICBpZiAoZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBzIHx8IGdldFNlbGVjdGlvbkVuZCgpICE9IGUpIHsKKy8vICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkFHSCEgc2VsZWN0KCIrcysiLCIrZSsiKSAtPiAoIisKKy8vICAgICAgICAgICAgICBnZXRTZWxlY3Rpb25TdGFydCgpKyIsIitnZXRTZWxlY3Rpb25FbmQoKSsiKSIpOworLy8gICAgICAgICAgICAgIHRleHQuc2VsZWN0KHMgLSAoZ2V0U2VsZWN0aW9uU3RhcnQoKSAtIHMpLCBlIC0gKGdldFNlbGVjdGlvbkVuZCgpIC0gZSkpOworLy8gICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXhwKSB7CisgICAgICAgICAgICBlcnJvclRleHQoZXhwLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisKKworICAgIHB1YmxpYyB2b2lkIGluaXQoKQorICAgIHsKKyAgICAgICAgYnVpbGRHVUkoKTsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIHN0YXJ0KCkKKyAgICB7CisgICAgfQorCisKKyAgICB2b2lkIGFkZFdpdGhGb250KENvbnRhaW5lciBjb250YWluZXIsIENvbXBvbmVudCBmb28sIEZvbnQgZm9udCkgeworICAgICAgICBpZiAoZm9udCAhPSBudWxsKQorICAgICAgICAgICAgZm9vLnNldEZvbnQoZm9udCk7CisgICAgICAgIGNvbnRhaW5lci5hZGQoZm9vKTsKKyAgICB9CisKKworCisgICBwdWJsaWMgdm9pZCBidWlsZEdVSSgpCisgICAgeworICAgICAgICBzZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmJnQ29sb3IpOworICAgICAgICBzZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKworICAgICAgIFBhbmVsIHRvcFBhbmVsID0gbmV3IFBhbmVsKCk7CisKKyAgICAgICAgICAgIExhYmVsIHRpdGxlTGFiZWwgPQorICAgICAgICAgICAgICAgIG5ldyBMYWJlbCgiRGV2YSBUZXh0IEJvdW5kYXJ5IERlbW8iLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgdGl0bGVMYWJlbC5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisgICAgICAgICAgICB0b3BQYW5lbC5hZGQodGl0bGVMYWJlbCk7CisKKyAgICAgICAgICAgIC8vTGFiZWwgZGVtbz1uZXcgTGFiZWwoY3JlZGl0U3RyaW5nLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgLy9kZW1vLnNldEZvbnQoRGVtb1V0aWxpdHkuY3JlZGl0Rm9udCk7CisgICAgICAgICAgICAvL3RvcFBhbmVsLmFkZChkZW1vKTsKKworICAgICAgICAgICAgUGFuZWwgY2hvaWNlUGFuZWwgPSBuZXcgUGFuZWwoKTsKKworICAgICAgICAgICAgTGFiZWwgZGVtbzE9bmV3IExhYmVsKCJCb3VuZGFyaWVzIiwgTGFiZWwuTEVGVCk7CisgICAgICAgICAgICBkZW1vMS5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgICAgICBjaG9pY2VQYW5lbC5hZGQoZGVtbzEpOworCisgICAgICAgICAgICBib3VuZCA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgICAgICBib3VuZC5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIlNlbnRlbmNlIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJMaW5lIEJyZWFrIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJXb3JkIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJDaGFyIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBpZiAoY2hvaWNlRm9udCAhPSBudWxsKQorICAgICAgICAgICAgICAgIGJvdW5kLnNldEZvbnQoY2hvaWNlRm9udCk7CisKKyAgICAgICAgICAgIGNob2ljZVBhbmVsLmFkZChib3VuZCk7CisgICAgICAgICAgICB0b3BQYW5lbC5hZGQoY2hvaWNlUGFuZWwpOworCisgICAgICAgICAgICBEZW1vVXRpbGl0eS5maXhHcmlkKHRvcFBhbmVsLDEpOworCisKKyAgICAgICAgYWRkKCJOb3J0aCIsIHRvcFBhbmVsKTsKKworCisgICAgICAgICAgICBpbnQgUk9XUyA9IDE1OworICAgICAgICAgICAgaW50IENPTFVNTlMgPSA1MDsKKy8vICAgICAgICAgICAgdGV4dCA9IG5ldyBUZXh0QXJlYShnZXRJbml0aWFsVGV4dCgpLCBST1dTLCBDT0xVTU5TKTsKKyAgICAgICAgICAgIHRleHQgPSBuZXcgSlRleHRBcmVhKGdldEluaXRpYWxUZXh0KCksIFJPV1MsIENPTFVNTlMpOworICAgICAgICAgICAgdGV4dC5zZXRMaW5lV3JhcCh0cnVlKTsKKyAgICAgICAgICAgIHRleHQuc2V0V3JhcFN0eWxlV29yZCh0cnVlKTsKKyAgICAgICAgICAgIHRleHQuc2V0RWRpdGFibGUodHJ1ZSk7CisgICAgICAgICAgICB0ZXh0LnNlbGVjdEFsbCgpOworICAgICAgICAgICAgdGV4dC5zZXRGb250KG5ldyBGb250KCJEZXZhbmFnYXJpIE1UIGZvciBJQk0iLCBGb250LlBMQUlOLCA0OCkpOworICAgICAgICAgICAgdGV4dC5zZXRCb3JkZXIoQm9yZGVyRmFjdG9yeS5jcmVhdGVFbXB0eUJvcmRlcigyLCAyLCAyLCAyKSk7CisKKyAgICAgICAgYWRkKCJDZW50ZXIiLCBuZXcgSlNjcm9sbFBhbmUodGV4dCwgSlNjcm9sbFBhbmUuVkVSVElDQUxfU0NST0xMQkFSX0FMV0FZUywKKyAgICAgICAgICAgICAgICAgICAgICAgIEpTY3JvbGxQYW5lLkhPUklaT05UQUxfU0NST0xMQkFSX05FVkVSKSk7CisKKyAgICAgICAgUGFuZWwgY29weXJpZ2h0UGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgYWRkV2l0aEZvbnQgKGNvcHlyaWdodFBhbmVsLAorICAgICAgICAgICAgbmV3IExhYmVsKERlbW9VdGlsaXR5LmNvcHlyaWdodDEsIExhYmVsLkxFRlQpLERlbW9VdGlsaXR5LmNyZWRpdEZvbnQpOworICAgICAgICBEZW1vVXRpbGl0eS5maXhHcmlkKGNvcHlyaWdodFBhbmVsLDEpOworICAgICAgICBhZGQoIlNvdXRoIiwgY29weXJpZ2h0UGFuZWwpOworCisgICAgICAgIC8vbGF5b3V0KCk7CisgICAgICAgIGhhbmRsZUVudW1DaGFuZ2VkKCk7CisgICAgICAgIAorICAgICAgICBlbmFibGVFdmVudHMoV2luZG93RXZlbnQuV0lORE9XX0NMT1NJTkcpOworICAgICAgICBlbmFibGVFdmVudHMoS2V5RXZlbnQuS0VZX1BSRVNTRUQpOworICAgICAgICBlbmFibGVFdmVudHMoS2V5RXZlbnQuS0VZX1JFTEVBU0VEKTsKKworICAgIHRleHQuYWRkS2V5TGlzdGVuZXIobmV3IEtleUFkYXB0ZXIoKSB7CisgICAgICAgIHB1YmxpYyB2b2lkIGtleVByZXNzZWQoS2V5RXZlbnQgZSkgeworICAgICAgICAgICAgaWYgKGUuaXNDb250cm9sRG93bigpKSB7CisgICAgICAgICAgICBpbnQga2MgPSBlLmdldEtleUNvZGUoKTsKKyAgICAgICAgICAgIHN3aXRjaCAoZS5nZXRLZXlDb2RlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfTjoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfUklHSFQ6CisgICAgICAgICAgICAgICAgaGFuZGxlRm9yd2FyZCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19QOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19MRUZUOgorICAgICAgICAgICAgICAgIGhhbmRsZUJhY2t3YXJkKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZS5jb25zdW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQga2V5UmVsZWFzZWQoS2V5RXZlbnQgZSkgeworICAgICAgICAgICAgaWYgKGUuaXNDb250cm9sRG93bigpKSB7CisgICAgICAgICAgICBlLmNvbnN1bWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBrZXlUeXBlZChLZXlFdmVudCBlKSB7CisgICAgICAgICAgICBpZiAoZS5pc0NvbnRyb2xEb3duKCkpIHsKKyAgICAgICAgICAgIGUuY29uc3VtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vIChuZXcgVGhyZWFkKHRoaXMpKS5zdGFydCgpOworICAgIH0KKworCisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEluaXRpYWxUZXh0KCkKKyAgICB7CisgICAgICAgIHJldHVybgorICAgICAgICAgICAgIlx1MDkzNlx1MDk0ZFx1MDkzMFx1MDk0MFx1MDkyZVx1MDkyNlx1MDk0ZCAiICsKKyAgICAgICAgICAgICJcdTA5MmRcdTA5MTdcdTA5MzVcdTA5MjZcdTA5NGRcdTA5MTdcdTA5NDBcdTA5MjRcdTA5M2UgIiArCisgICAgICAgICAgICAiXHUwOTA1XHUwOTI3XHUwOTRkXHUwOTJmXHUwOTNlXHUwOTJmICIgKworICAgICAgICAgICAgIlx1MDkwNVx1MDkzMFx1MDk0ZFx1MDkxY1x1MDk0MVx1MDkyOCAiICsKKyAgICAgICAgICAgICJcdTA5MzVcdTA5M2ZcdTA5MzdcdTA5M2VcdTA5MjYgIiArCisgICAgICAgICAgICAiXHUwOTJmXHUwOTRiXHUwOTE3ICIgKworICAgICAgICAgICAgIlx1MDkyN1x1MDk0M1x1MDkyNFx1MDkzMFx1MDkzZVx1MDkzN1x1MDk0ZFx1MDkxZlx1MDk0ZFx1MDkzMCAiICsKKyAgICAgICAgICAgICJcdTA5MDlcdTA5MzVcdTA5M0VcdTA5MUFcdTA5NjQgIiArCisgICAgICAgICAgICAiXHUwOTI3XHUwOTMwXHUwOTRkXHUwOTJlXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTQ3XHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQ3ICIgKworICAgICAgICAgICAgIlx1MDkxNVx1MDk0MVx1MDkzMFx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzN1x1MDk0N1x1MDkyNFx1MDk0ZFx1MDkzMFx1MDk0NyAiICsKKyAgICAgICAgICAgICJcdTA5MzhcdTA5MmVcdTA5MzVcdTA5NDdcdTA5MjRcdTA5M2UgIiArCisgICAgICAgICAgICAiXHUwOTJmXHUwOTQxXHUwOTJmXHUwOTQxXHUwOTI0XHUwOTRkXHUwOTM4XHUwOTM1XHUwOTAzICIgKworICAgICAgICAgICAgIlx1MDkyZVx1MDkzZVx1MDkyZVx1MDkxNVx1MDkzZVx1MDkwMyAiICsKKyAgICAgICAgICAgICJcdTA5MmFcdTA5M2VcdTA5MjNcdTA5NGRcdTA5MjFcdTA5MzVcdTA5M2VcdTA5MzZcdTA5NGRcdTA5MWFcdTA5NDhcdTA5MzUgIiArCisgICAgICAgICAgICAiXHUwOTE1XHUwOTNmXHUwOTJlXHUwOTE1XHUwOTQxXHUwOTMwXHUwOTRkXHUwOTM1XHUwOTI0ICIgKworICAgICAgICAgICAgIlx1MDkzOFx1MDkwMlx1MDkxY1x1MDkyRiI7CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVFbnVtQ2hhbmdlZCgpCisgICAgeworICAgICAgICBTdHJpbmcgcyA9IGJvdW5kLmdldFNlbGVjdGVkSXRlbSgpOworICAgICAgICBpZiAocy5lcXVhbHMoIkNoYXIiKSkgeworICAgICAgICAgICAgZXJyb3JUZXh0KCJnZXRDaGFyYWN0ZXJJbnN0YW5jZSIpOworICAgICAgICAgICAgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzLmVxdWFscygiV29yZCIpKSB7CisgICAgICAgICAgICBlcnJvclRleHQoInRXb3JkQnJlYWsiKTsKKyAgICAgICAgICAgIGl0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHMuZXF1YWxzKCJMaW5lIEJyZWFrIikpIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0TGluZUluc3RhbmNlIik7CisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIC8qIGlmIChzLmVxdWFscygiU2VudGVuY2UiKSkgKi8geworICAgICAgICAgICAgZXJyb3JUZXh0KCJnZXRTZW50ZW5jZUluc3RhbmNlIik7CisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgaXRlci5zZXRUZXh0KHRleHQuZ2V0VGV4dCgpKTsKKyAgICAgICAgc2VsZWN0UmFuZ2UoMCwgMCk7CisgICAgICAgIC8vdGV4dC5zZWxlY3QoMCwwKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVGb3J3YXJkKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImVudGVyaW5nIGhhbmRsZUZvcndhcmQiKTsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXh0LmdldFRleHQoKSk7CisgICAgICAgICAgICBpbnQgb2xkU3RhcnQgPSBnZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgaW50IG9sZEVuZCA9IGdldFNlbGVjdGlvbkVuZCgpOworCisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImhhbmRsZUZvcndhcmQ6IG9sZFN0YXJ0PSIgKyBvbGRTdGFydCArICIsIG9sZEVuZD0iICsgb2xkRW5kKTsKKworICAgICAgICAgICAgaWYgKG9sZEVuZCA8IDEpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZSgwLCBpdGVyLmZvbGxvd2luZygwKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgcyA9IGl0ZXIuZm9sbG93aW5nKG9sZEVuZC0xKTsKKyAgICAgICAgICAgICAgICBpbnQgZSA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChlID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGUgPSBzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZShzLCBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgICAgICBlcnJvclRleHQoIjwiICsgb2xkU3RhcnQgKyAiLCIgKyBvbGRFbmQgKyAiPiAtPiA8IiArCisgICAgICAgICAgICAgICAgcyArICIsIiArIGUgKyAiPiIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZXhwKSB7CisgICAgICAgICAgICBlcnJvclRleHQoZXhwLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaGFuZGxlQmFja3dhcmQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXh0LmdldFRleHQoKSk7CisgICAgICAgICAgICBpbnQgb2xkU3RhcnQgPSBnZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgaW50IG9sZEVuZCA9IGdldFNlbGVjdGlvbkVuZCgpOworICAgICAgICAgICAgaWYgKG9sZFN0YXJ0IDwgMSkgeworICAgICAgICAgICAgICAgIHNlbGVjdFJhbmdlKDAsIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IGUgPSBpdGVyLmZvbGxvd2luZyhvbGRTdGFydC0xKTsKKyAgICAgICAgICAgICAgICBpbnQgcyA9IGl0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZShzLCBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgICAgICBlcnJvclRleHQoIjwiICsgb2xkU3RhcnQgKyAiLCIgKyBvbGRFbmQgKyAiPiAtPiA8IiArIHMgKyAiLCIgKyBlICsgIj4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4cCkgeworICAgICAgICAgICAgZXJyb3JUZXh0KGV4cC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgcHVibGljIGJvb2xlYW4gYWN0aW9uKEV2ZW50IGV2dCwgT2JqZWN0IG9iaikKKyAgICB7CisKKyAgICAgICAgaWYoZXZ0LnRhcmdldCBpbnN0YW5jZW9mIEJ1dHRvbiAmJiBsZWZ0LmVxdWFscyhvYmopKQorICAgICAgICB7CisgICAgICAgICAgICBoYW5kbGVCYWNrd2FyZCgpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZihldnQudGFyZ2V0IGluc3RhbmNlb2YgQnV0dG9uICYmIHJpZ2h0LmVxdWFscyhvYmopKQorICAgICAgICB7CisgICAgICAgICAgICBoYW5kbGVGb3J3YXJkKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmKGV2dC50YXJnZXQgaW5zdGFuY2VvZiBDaG9pY2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIGhhbmRsZUVudW1DaGFuZ2VkKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaGFuZGxlRXZlbnQoRXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgaWYgKGV2dC5pZCA9PSBFdmVudC5LRVlfUFJFU1MgfHwgZXZ0LmlkID09IEV2ZW50LktFWV9BQ1RJT04pIHsKKyAgICAgICAgICAgIGlmIChldnQua2V5ID09IEV2ZW50LlJJR0hUIHx8IChldnQua2V5ID09IDB4MEUgJiYgZXZ0LmNvbnRyb2xEb3duKCkpKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlRm9yd2FyZCgpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmtleSA9PSBFdmVudC5MRUZUIHx8IChldnQua2V5ID09IDB4MTAgJiYgZXZ0LmNvbnRyb2xEb3duKCkpKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlQmFja3dhcmQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIGlmIChldnQuaWQgPT0gRXZlbnQuV0lORE9XX0RFU1RST1kgJiYgZXZ0LnRhcmdldCA9PSB0aGlzKSB7CisgICAgICAgICAgICB0aGlzLmhpZGUoKTsKKyAgICAgICAgICAgIHRoaXMuZGlzcG9zZSgpOworICAgICAgICAgICAgICAgIGlmIChhcHBsZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgYXBwbGV0LmRlbW9DbG9zZWQoKTsKKyAgICAgICAgICAgICAgIH0gZWxzZSBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdXBlci5oYW5kbGVFdmVudChldnQpOworICAgIH0qLworCisgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgaWYgKGV2dC5nZXRTb3VyY2UoKSBpbnN0YW5jZW9mIENob2ljZSkgeworICAgICAgICAgICAgaGFuZGxlRW51bUNoYW5nZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGVycm9yVGV4dChTdHJpbmcgcykKKyAgICB7CisgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocyk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NXaW5kb3dFdmVudChXaW5kb3dFdmVudCBldnQpCisgICAgeworICAgICAgICBpZiAoZXZ0LmdldElEKCkgPT0gV2luZG93RXZlbnQuV0lORE9XX0NMT1NJTkcgJiYgCisgICAgICAgICAgICBldnQuZ2V0V2luZG93KCkgPT0gdGhpcykgeworICAgICAgICAgICAgaGlkZSgpOworICAgICAgICAgICAgZGlzcG9zZSgpOworICAgICAgICAgICAgaWYgKGFwcGxldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYXBwbGV0LmRlbW9DbG9zZWQoKTsKKyAgICAgICAgICAgIH0gZWxzZSBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBwcm9jZXNzS2V5RXZlbnQoS2V5RXZlbnQgZXZ0KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChldnQuZ2V0SUQoKSkgeworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5LRVlfUFJFU1NFRCA6CisgICAgICAgICAgICAgICAgaWYgKGV2dC5nZXRLZXlDb2RlKCkgPT0gS2V5RXZlbnQuVktfQ09OVFJPTCkgeworICAgICAgICAgICAgICAgICAgICBpc2N0cmxkb3duXyA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5LRVlfUkVMRUFTRUQgOgorICAgICAgICAgICAgICAgIC8vIGtleSBkZXRlY3Rpb24gZm9yIGxlZnQgYW5kIHJpZ2h0IGJ1dHRvbnMgYXJlIHJlbW92ZWQKKyAgICAgICAgICAgICAgICAvLyB0byBlbXVsYXRlIHRoZSBvbGQgcmVsZWFzZSBiZWhhdmlvdXIKKyAgICAgICAgICAgICAgICBpbnQga2V5ID0gZXZ0LmdldEtleUNvZGUoKTsKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX04gJiYgaXNjdHJsZG93bl8pIHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlRm9yd2FyZCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfUCAmJiBpc2N0cmxkb3duXykgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVCYWNrd2FyZCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfQ09OVFJPTCkgeworICAgICAgICAgICAgICAgICAgICBpc2N0cmxkb3duXyA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL1RleHRCb3VuZERlbW8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL1RleHRCb3VuZERlbW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xODgzMzg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3JiYmkvVGV4dEJvdW5kRGVtby5qYXZhCkBAIC0wLDAgKzEsNDU2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5yYmJpOworCitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JdGVtTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUFkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CitpbXBvcnQgamF2YXguc3dpbmcuSlRleHRBcmVhOworaW1wb3J0IGphdmF4LnN3aW5nLkpTY3JvbGxQYW5lOworaW1wb3J0IGphdmF4LnN3aW5nLkJvcmRlckZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKKworcHVibGljIGNsYXNzIFRleHRCb3VuZERlbW8gZXh0ZW5kcyBEZW1vQXBwbGV0Cit7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3ZbXSkgeworICAgICAgICBuZXcgVGV4dEJvdW5kRGVtbygpLnNob3dEZW1vKCk7CisgICAgfQorCisgICAgcHVibGljIEZyYW1lIGNyZWF0ZURlbW9GcmFtZShEZW1vQXBwbGV0IGFwcGxldCkgeworICAgICAgICByZXR1cm4gbmV3IFRleHRCb3VuZEZyYW1lKGFwcGxldCk7CisgICAgfQorfQorCisKKworY2xhc3MgVGV4dEJvdW5kRnJhbWUgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIEl0ZW1MaXN0ZW5lcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjcmVkaXRTdHJpbmcgPQorICAgICAgICAidjEuMWE5LCBEZW1vIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSUVMRF9DT0xVTU5TID0gNDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRm9udCBjaG9pY2VGb250ID0gbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgcHJpdmF0ZSBEZW1vQXBwbGV0IGFwcGxldDsKKworICAgIGZpbmFsIFN0cmluZyByaWdodCA9ICItLT4iOworICAgIGZpbmFsIFN0cmluZyBsZWZ0ID0gIjwtLSI7CisKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgaXRlcjsKKyAgICBwcml2YXRlIGJvb2xlYW4gaXNjdHJsZG93bl8gPSBmYWxzZTsKKworSlRleHRBcmVhIHRleHQ7CisvLyAgICBUZXh0QXJlYSB0ZXh0OworICAgIENob2ljZSBib3VuZDsKKworICAgIHB1YmxpYyBUZXh0Qm91bmRGcmFtZShEZW1vQXBwbGV0IGFwcGxldCkKKyAgICB7CisgICAgICAgIHRoaXMuYXBwbGV0ID0gYXBwbGV0OworICAgICAgICBpbml0KCk7CisgICAgICAgIHN0YXJ0KCk7CisgICAgfQorCisKKworICAgIHB1YmxpYyB2b2lkIHJ1bigpCisgICAgeworICAgICAgICAvKgorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjaGVja0NoYW5nZSgpOworICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcCgyNTApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFRocm93YWJsZSBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9CisKKyAgICBpbnQgcywgZTsKKyAgICBpbnQgdHMsIHRlOworCisgICAgcHVibGljIHZvaWQgY2hlY2tDaGFuZ2UoKQorICAgIHsKKy8vICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNoZWNrQ2hhbmdlLi4uIik7CisgICAgICAgIGlmICgodGV4dC5nZXRTZWxlY3Rpb25TdGFydCgpICYgMHg3RkZGKSAhPSB0cyB8fAorICAgICAgICAgICAgKHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkYpICE9IHRlKSB7CisKKyAgICAgICAgICAgIC8vIG5vdCB1c2VkIGludCB0ZW1wUyA9IHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRjsKKyAgICAgICAgICAgIC8vIG5vdCB1c2VkIGludCB0ZW1wRSA9IHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkY7CisKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPiIpOworLy8gICAgICAgICAgc2VsZWN0KDAsIDApOworLy8gICAgICAgICAgc2VsZWN0KHRlbXBTLCB0ZW1wRSk7CisgICAgICAgICAgICAvL3NlbGVjdCh0ZW1wUyAtICh0cyAtIHMpLCB0ZW1wRSAtICh0ZSAtIGUpKTsKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPCIpOworCisKKy8vICAgICAgICAgIGlmIChzICE9IHRzIHx8IGUgIT0gdGUpIFN5c3RlbS5vdXQucHJpbnRsbigiICAgICBzKCIrcysiKSB0cygiK3RzKyIpIGUoIitlKyIpIHRlKCIrdGUrIikiKTsKKy8vICAgICAgICAgIGlmICh0ZW1wUyAhPSB0cyB8fCB0ZW1wRSAhPSB0ZSkgU3lzdGVtLm91dC5wcmludGxuKCI+cygiK3MrIikgdGVtcFMoIit0ZW1wUysiKSBlKCIrZSsiKSB0ZW1wRSgiK3RlbXBFKyIpIik7CisvLyAgICAgICAgICBzZWxlY3QocyAtICh0cyAtIHMpLCBlIC0gKHRlIC0gZSkpOworLy8gICAgICAgICAgaWYgKHRlbXBTICE9IHRzIHx8IHRlbXBFICE9IHRlKSBTeXN0ZW0ub3V0LnByaW50bG4oInMoIitzKyIpIHRlbXBTKCIrdGVtcFMrIikgZSgiK2UrIikgdGVtcEUoIit0ZW1wRSsiKSIpOworCisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImxrZHNsa3NqIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoaW50IHNJbiwgaW50IGVJbikKKyAgICB7CisgICAgICAgIHMgPSBzSW47CisgICAgICAgIGUgPSBlSW47CisgICAgICAgIHRleHQuc2VsZWN0KHMsIGUpOworICAgICAgICB0cyA9IHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKSAmIDB4N0ZGRjsKKyAgICAgICAgdGUgPSB0ZXh0LmdldFNlbGVjdGlvbkVuZCgpICYgMHg3RkZGOworLy8gICAgICAgIGlmIChzICE9IHRzIHx8IGUgIT0gdGUpIHsKKy8vICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI+cygiK3MrIikgdHMoIit0cysiKSBlKCIrZSsiKSB0ZSgiK3RlKyIpIik7CisvLyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAgIisodHMtcykrIiwiKyh0ZS1lKSk7CisvLyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uU3RhcnQoKQorICAgIHsKKyAgICAgICAgY2hlY2tDaGFuZ2UoKTsKKy8vICAgICAgcmV0dXJuIHM7CisgICAgICAgIHJldHVybiB0ZXh0LmdldFNlbGVjdGlvblN0YXJ0KCkgJiAweDdGRkY7CisgICAgfQorCisKKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvbkVuZCgpCisgICAgeworICAgICAgICBjaGVja0NoYW5nZSgpOworLy8gICAgICByZXR1cm4gZTsKKyAgICAgICAgcmV0dXJuIHRleHQuZ2V0U2VsZWN0aW9uRW5kKCkgJiAweDdGRkY7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHN5bmNocm9uaXplZCB2b2lkIHNlbGVjdFJhbmdlKGludCBzLCBpbnQgZSkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvL2lmIChnZXRTZWxlY3Rpb25TdGFydCgpICE9IHMgfHwgZ2V0U2VsZWN0aW9uRW5kKCkgIT0gZSkgeworICAgICAgICAgICAgICAgIC8vdGV4dC5zZWxlY3QocywgZSk7CisgICAgICAgICAgICAgICAgc2VsZWN0KHMsZSk7CisgICAgICAgICAgICAvL30KKy8vICAgICAgICAgIGlmIChnZXRTZWxlY3Rpb25TdGFydCgpICE9IHMgfHwgZ2V0U2VsZWN0aW9uRW5kKCkgIT0gZSkgeworLy8gICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQUdIISBzZWxlY3QoIitzKyIsIitlKyIpIC0+ICgiKworLy8gICAgICAgICAgICAgIGdldFNlbGVjdGlvblN0YXJ0KCkrIiwiK2dldFNlbGVjdGlvbkVuZCgpKyIpIik7CisvLyAgICAgICAgICAgICAgdGV4dC5zZWxlY3QocyAtIChnZXRTZWxlY3Rpb25TdGFydCgpIC0gcyksIGUgLSAoZ2V0U2VsZWN0aW9uRW5kKCkgLSBlKSk7CisvLyAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleHApIHsKKyAgICAgICAgICAgIGVycm9yVGV4dChleHAudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKworCisgICAgcHVibGljIHZvaWQgaW5pdCgpCisgICAgeworICAgICAgICBidWlsZEdVSSgpOworICAgIH0KKworCisgICAgcHVibGljIHZvaWQgc3RhcnQoKQorICAgIHsKKyAgICB9CisKKworICAgIHZvaWQgYWRkV2l0aEZvbnQoQ29udGFpbmVyIGNvbnRhaW5lciwgQ29tcG9uZW50IGZvbywgRm9udCBmb250KSB7CisgICAgICAgIGlmIChmb250ICE9IG51bGwpCisgICAgICAgICAgICBmb28uc2V0Rm9udChmb250KTsKKyAgICAgICAgY29udGFpbmVyLmFkZChmb28pOworICAgIH0KKworCisKKyAgIHB1YmxpYyB2b2lkIGJ1aWxkR1VJKCkKKyAgICB7CisgICAgICAgIHNldEJhY2tncm91bmQoRGVtb1V0aWxpdHkuYmdDb2xvcik7CisgICAgICAgIHNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworCisgICAgICAgUGFuZWwgdG9wUGFuZWwgPSBuZXcgUGFuZWwoKTsKKworICAgICAgICAgICAgTGFiZWwgdGl0bGVMYWJlbCA9CisgICAgICAgICAgICAgICAgbmV3IExhYmVsKCJUZXh0IEJvdW5kYXJ5IERlbW8iLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgdGl0bGVMYWJlbC5zZXRGb250KERlbW9VdGlsaXR5LnRpdGxlRm9udCk7CisgICAgICAgICAgICB0b3BQYW5lbC5hZGQodGl0bGVMYWJlbCk7CisKKyAgICAgICAgICAgIC8vTGFiZWwgZGVtbz1uZXcgTGFiZWwoY3JlZGl0U3RyaW5nLCBMYWJlbC5DRU5URVIpOworICAgICAgICAgICAgLy9kZW1vLnNldEZvbnQoRGVtb1V0aWxpdHkuY3JlZGl0Rm9udCk7CisgICAgICAgICAgICAvL3RvcFBhbmVsLmFkZChkZW1vKTsKKworICAgICAgICAgICAgUGFuZWwgY2hvaWNlUGFuZWwgPSBuZXcgUGFuZWwoKTsKKworICAgICAgICAgICAgTGFiZWwgZGVtbzE9bmV3IExhYmVsKCJCb3VuZGFyaWVzIiwgTGFiZWwuTEVGVCk7CisgICAgICAgICAgICBkZW1vMS5zZXRGb250KERlbW9VdGlsaXR5LmxhYmVsRm9udCk7CisgICAgICAgICAgICBjaG9pY2VQYW5lbC5hZGQoZGVtbzEpOworCisgICAgICAgICAgICBib3VuZCA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgICAgICAgICBib3VuZC5zZXRCYWNrZ3JvdW5kKERlbW9VdGlsaXR5LmNob2ljZUNvbG9yKTsKKyAgICAgICAgICAgIGJvdW5kLmFkZEl0ZW0oIlNlbnRlbmNlIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJMaW5lIEJyZWFrIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJXb3JkIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtKCJDaGFyIik7CisgICAgICAgICAgICBib3VuZC5hZGRJdGVtTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBpZiAoY2hvaWNlRm9udCAhPSBudWxsKQorICAgICAgICAgICAgICAgIGJvdW5kLnNldEZvbnQoY2hvaWNlRm9udCk7CisKKyAgICAgICAgICAgIGNob2ljZVBhbmVsLmFkZChib3VuZCk7CisgICAgICAgICAgICB0b3BQYW5lbC5hZGQoY2hvaWNlUGFuZWwpOworCisgICAgICAgICAgICBEZW1vVXRpbGl0eS5maXhHcmlkKHRvcFBhbmVsLDEpOworCisKKyAgICAgICAgYWRkKCJOb3J0aCIsIHRvcFBhbmVsKTsKKworCisgICAgICAgICAgICBpbnQgUk9XUyA9IDE1OworICAgICAgICAgICAgaW50IENPTFVNTlMgPSA1MDsKKy8vICAgICAgICAgICAgdGV4dCA9IG5ldyBUZXh0QXJlYShnZXRJbml0aWFsVGV4dCgpLCBST1dTLCBDT0xVTU5TKTsKK3RleHQgPSBuZXcgSlRleHRBcmVhKGdldEluaXRpYWxUZXh0KCksIFJPV1MsIENPTFVNTlMpOwordGV4dC5zZXRMaW5lV3JhcCh0cnVlKTsKK3RleHQuc2V0V3JhcFN0eWxlV29yZCh0cnVlKTsKKyAgICAgICAgICAgIHRleHQuc2V0RWRpdGFibGUodHJ1ZSk7CisgICAgICAgICAgICB0ZXh0LnNlbGVjdEFsbCgpOworICAgICAgICAgICAgdGV4dC5zZXRGb250KERlbW9VdGlsaXR5LmVkaXRGb250KTsKKyAgICAgICAgICAgIHRleHQuc2V0Qm9yZGVyKEJvcmRlckZhY3RvcnkuY3JlYXRlRW1wdHlCb3JkZXIoMiwgMiwgMiwgMikpOworCisgICAgICAgIGFkZCgiQ2VudGVyIiwgbmV3IEpTY3JvbGxQYW5lKHRleHQsIEpTY3JvbGxQYW5lLlZFUlRJQ0FMX1NDUk9MTEJBUl9BTFdBWVMsCisgICAgICAgICAgICAgICAgICAgICAgICBKU2Nyb2xsUGFuZS5IT1JJWk9OVEFMX1NDUk9MTEJBUl9ORVZFUikpOworCisgICAgICAgIFBhbmVsIGNvcHlyaWdodFBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIGFkZFdpdGhGb250IChjb3B5cmlnaHRQYW5lbCwKKyAgICAgICAgICAgIG5ldyBMYWJlbChEZW1vVXRpbGl0eS5jb3B5cmlnaHQxLCBMYWJlbC5MRUZUKSxEZW1vVXRpbGl0eS5jcmVkaXRGb250KTsKKyAgICAgICAgRGVtb1V0aWxpdHkuZml4R3JpZChjb3B5cmlnaHRQYW5lbCwxKTsKKyAgICAgICAgYWRkKCJTb3V0aCIsIGNvcHlyaWdodFBhbmVsKTsKKworICAgICAgICAvL2xheW91dCgpOworICAgICAgICBoYW5kbGVFbnVtQ2hhbmdlZCgpOworICAgICAgICAKKyAgICAgICAgZW5hYmxlRXZlbnRzKFdpbmRvd0V2ZW50LldJTkRPV19DTE9TSU5HKTsKKyAgICAgICAgZW5hYmxlRXZlbnRzKEtleUV2ZW50LktFWV9QUkVTU0VEKTsKKyAgICAgICAgZW5hYmxlRXZlbnRzKEtleUV2ZW50LktFWV9SRUxFQVNFRCk7CisKKyAgICB0ZXh0LmFkZEtleUxpc3RlbmVyKG5ldyBLZXlBZGFwdGVyKCkgeworICAgICAgICBwdWJsaWMgdm9pZCBrZXlQcmVzc2VkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgaW50IGtjID0gZS5nZXRLZXlDb2RlKCk7CisgICAgICAgICAgICBzd2l0Y2ggKGUuZ2V0S2V5Q29kZSgpKSB7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX046CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1JJR0hUOgorICAgICAgICAgICAgICAgIGhhbmRsZUZvcndhcmQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfUDoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfTEVGVDoKKyAgICAgICAgICAgICAgICBoYW5kbGVCYWNrd2FyZCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGUuY29uc3VtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGtleVJlbGVhc2VkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgZS5jb25zdW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQga2V5VHlwZWQoS2V5RXZlbnQgZSkgeworICAgICAgICAgICAgaWYgKGUuaXNDb250cm9sRG93bigpKSB7CisgICAgICAgICAgICBlLmNvbnN1bWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICAvLyAobmV3IFRocmVhZCh0aGlzKSkuc3RhcnQoKTsKKyAgICB9CisKKworCisgICAgcHVibGljIFN0cmluZyBnZXRJbml0aWFsVGV4dCgpCisgICAgeworICAgICAgICByZXR1cm4KKyAgICAvKgorICAgICAgICAgICAgIlwiVGhpcyBpcyBhIHNlbnRlbmNlLlwiIFRoaXMgaXMgbm90LlwiIFwiYmVjYXVzZS4gQW5kIGdvLiAiICsKKyAgICAgICAgICAgICJUaGlzIGlzIGEgc2ltcGxlIDAxMi41NjYsNSBzYW1wbGUgc2VudGVuY2UuIFxuIisKKyAgICAgICAgICAgICJJdCBkb2VzIG5vdCBoYXZlIHRvIG1ha2UgYW55IHNlbnNlIGFzIHlvdSBjYW4gc2VlLiBcbiIrCisgICAgICAgICAgICAiTmVsIG1lenpvIGRlbCBjYW1taW4gZGkgbm9zdHJhIHZpdGEsIG1pIHJpdHJvdmFpIGluICIrCisgICAgICAgICAgICAgICAgInVuYSBzZWx2YSBvc2N1cmEuIFxuIisKKyAgICAgICAgICAgICJDaGUgbGEgZHJpdHRhIHZpYSBhdmVvIHNtYXJyaXRhLiBcbiIrCisgICAgICAgICAgICAiSGUgc2FpZCwgdGhhdCBJIHNhaWQsIHRoYXQgeW91IHNhaWQhISBcbiIrCisgICAgICAgICAgICAiRG9uJ3Qgcm9jayB0aGUgYm9hdC5cblxuIisKKyAgICAgICAgICAgICJCZWNhdXNlIEkgYW0gdGhlIGRhZGR5LCB0aGF0IGlzIHdoeS4gXG4iKworICAgICAgICAgICAgIk5vdCBvbiBteSB0aW1lIChlbCB0aW1vLikhIFxuIisKKyAgICAgICAgICAgICJUYWJcdFRhYlxyVGFiXHRXb3cuIisKKyAgICAgICAgICAgICJTbyB3aGF0ISFcblxuIisKKyAgICAgICAgICAgICJJcyB0aGlzIGEgcXVlc3Rpb24/Pz8gICIgKworICAgICAgICAgICAgIkkgd29uZGVyLi4uSG1tLlxuIiArCisgICAgICAgICAgICAiSGFycmlzIHRodW1iZWQgZG93biBzZXZlcmFsLCBpbmNsdWRpbmcgXCJBd2F5IFdlIEdvXCIgIisKKyAgICAgICAgICAgICAgICAiKHdoaWNoIGJlY2FtZSB0aGUgaHVnZSBzdWNjZXNzIE9rbGFob21hISkuIFxuIisKKyAgICAgICAgICAgICJPbmUgc3BlY2llcywgQi4gYW50aHJhY2lzLCBpcyBoaWdobHkgdmlydWxlbnQuXG4iKworICAgICAgICAgICAgIldvbGYgc2FpZCBhYm91dCBTb3VuZGVyOiBcIkJlYXV0aWZ1bGx5IHRob3VnaHQtb3V0IGFuZCAiKworICAgICAgICAgICAgICAgICJkaXJlY3RlZC5cIlxuIisKKyAgICAgICAgICAgICJIYXZlIHlvdSBldmVyIHNhaWQsIFwiVGhpcyBpcyB3aGVyZSBJIHNoYWxsIGxpdmVcIj8gXG4iKworICAgICAgICAgICAgIkhlIDEwMDAsMjMzLDQ1Ni4wMDAgYW5zd2VyZWQsIFwiWW91IG1heSBub3QhXCIgXG4iKworICAgICAgICAgICAgIkFub3RoZXIgcG9wdWxhciBzYXlpbmcgaXM6IFwiSG93IGRvIHlvdSBkbz9cIi4gXG4iKworICAgICAgICAgICAgIldoYXQgaXMgdGhlIHByb3BlciB1c2Ugb2YgdGhlIGFiYnJldmlhdGlvbiBwcC4/IFxuIisKKyAgICAgICAgICAgICJZZXMsIEkgYW0gMSwyMy4zMjIlIGRlZmluYXRlbGx5IDEyXCIgdGFsbCEhIjsKKyAgICAqLworICAgICAgICAgICAgIihcIlRoaXMgaXMgYSBjb21wbGV0ZSBzZW50ZW5jZS5cIikgVGhpcyBpcyAoXCJub3QuXCIpIGFsc28uICAiCisgICAgICAgICAgICArIkFuIGFiYnJldmlhdGlvbiBpbiB0aGUgbWlkZGxlLCBldGMuIGFuZCBvbmUgYXQgdGhlIGVuZCwgZXRjLiAiKworICAgICAgICAgICAgICAgICJUaGlzICIKKyAgICAgICAgICAgICsiaXMgYSBzaW1wbGUgc2FtcGxlIDAxMi41NjYsNSBzZW50ZW5jZS4gSXQgZG9lc24ndCAiCisgICAgICAgICAgICArImhhdmUgdG8gbWFrZSBhbnkgc2Vuc2UsIGFzIHlvdSBjYW4gc2VlLiBOZWwgbWV6em8gZGVsICBjIgorICAgICAgICAgICAgKyJhbW1pbiBkaSBub3N0cmEgdml0YSwgbWkgcml0cm92YWkgaW4gdW5hIHNlbHZhIG9zY3VyYS4gQ2hlICIKKyAgICAgICAgICAgICsibGEgZHJpdHRhIHZpYSBhdmVvIHNtYXJyaXRhLiBOb3Qgb24gbXkgdGltZSAoZWwgdGltby4pISBBbmQgIgorICAgICAgICAgICAgKyJ0YWJ1bGF0ZWQgY29sdW1uczogXHRDb2wxXHRDb2wyXHQzLDQ1NiUuXHQgIgorICAgICAgICAgICAgKyJJcyB0aGlzIGEgcXVlc3Rpb24/Pz8gIEkgd29uZGVyLi4uIEhtbS4gSGFycmlzIHRodW1iZWQgIgorICAgICAgICAgICAgKyJkb3duIHNldmVyYWwsIGluY2x1ZGluZyBcIkF3YXkgV2UgR29cIiAod2hpY2ggYmVjYW1lIHRoZSAgIgorICAgICAgICAgICAgKyJodWdlIHN1Y2Nlc3MgT2tsYWhvbWEhKS4gT25lIHNwZWNpZXMsIEIuIGFudGhyYWNpcywgaXMgICIKKyAgICAgICAgICAgICsiaGlnaGx5IHZpcnVsZW50LiBXb2xmIHNhaWQgYWJvdXQgU291bmRlcjogXCJCZWF1dGlmdWxseSAgIgorICAgICAgICAgICAgKyJ0aG91Z2h0LW91dCBhbmQgZGlyZWN0ZWQuXCIgSGF2ZSB5b3UgZXZlciBzYWlkLCBcIlRoaXMgaXMgIisKKyAgICAgICAgICAgICAgICAid2hlcmUgSSAiCisgICAgICAgICAgICArInNoYWxsIGxpdmVcIj8gSGUgc2FpZCAxMDAwLDIzMyw0NTYuMDAwIGFuZCBhbnN3ZXJlZCwgXCJZb3UgIisKKyAgICAgICAgICAgICAgICAibWF5IG5vdCFcIiAgIgorICAgICAgICAgICAgKyJBbm90aGVyIHBvcHVsYXIgc2F5aW5nIGlzOiBcIkhvdyBkbyB5b3UgZG8/XCIuIFdoYXQgaXMgdGhlICAiCisgICAgICAgICAgICArInByb3BlciB1c2Ugb2YgdGhlIGFiYnJldmlhdGlvbiBwcC4/IFllcywgSSBhbSAxMlwnIDNcIiB0YWxsISEiOworICAgIH0KKworCisgICAgcHVibGljIHZvaWQgaGFuZGxlRW51bUNoYW5nZWQoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHMgPSBib3VuZC5nZXRTZWxlY3RlZEl0ZW0oKTsKKyAgICAgICAgaWYgKHMuZXF1YWxzKCJDaGFyIikpIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0Q2hhcmFjdGVySW5zdGFuY2UiKTsKKyAgICAgICAgICAgIGl0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocy5lcXVhbHMoIldvcmQiKSkgeworICAgICAgICAgICAgZXJyb3JUZXh0KCJ0V29yZEJyZWFrIik7CisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzLmVxdWFscygiTGluZSBCcmVhayIpKSB7CisgICAgICAgICAgICBlcnJvclRleHQoImdldExpbmVJbnN0YW5jZSIpOworICAgICAgICAgICAgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSAvKiBpZiAocy5lcXVhbHMoIlNlbnRlbmNlIikpICovIHsKKyAgICAgICAgICAgIGVycm9yVGV4dCgiZ2V0U2VudGVuY2VJbnN0YW5jZSIpOworICAgICAgICAgICAgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXh0LmdldFRleHQoKSk7CisgICAgICAgIHNlbGVjdFJhbmdlKDAsIDApOworICAgICAgICAvL3RleHQuc2VsZWN0KDAsMCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaGFuZGxlRm9yd2FyZCgpCisgICAgeworICAgICAgICB0cnkgeworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJlbnRlcmluZyBoYW5kbGVGb3J3YXJkIik7CisgICAgICAgICAgICBpdGVyLnNldFRleHQodGV4dC5nZXRUZXh0KCkpOworICAgICAgICAgICAgaW50IG9sZFN0YXJ0ID0gZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgICAgIGludCBvbGRFbmQgPSBnZXRTZWxlY3Rpb25FbmQoKTsKKworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJoYW5kbGVGb3J3YXJkOiBvbGRTdGFydD0iICsgb2xkU3RhcnQgKyAiLCBvbGRFbmQ9IiArIG9sZEVuZCk7CisKKyAgICAgICAgICAgIGlmIChvbGRFbmQgPCAxKSB7CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UoMCwgaXRlci5mb2xsb3dpbmcoMCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IHMgPSBpdGVyLmZvbGxvd2luZyhvbGRFbmQtMSk7CisgICAgICAgICAgICAgICAgaW50IGUgPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoZSA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBlID0gczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UocywgZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL3RleHQuc2VsZWN0KHMsIGUpOworICAgICAgICAgICAgZXJyb3JUZXh0KCI8IiArIG9sZFN0YXJ0ICsgIiwiICsgb2xkRW5kICsgIj4gLT4gPCIgKworICAgICAgICAgICAgICAgIHMgKyAiLCIgKyBlICsgIj4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGV4cCkgeworICAgICAgICAgICAgZXJyb3JUZXh0KGV4cC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGhhbmRsZUJhY2t3YXJkKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpdGVyLnNldFRleHQodGV4dC5nZXRUZXh0KCkpOworICAgICAgICAgICAgaW50IG9sZFN0YXJ0ID0gZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgICAgIGludCBvbGRFbmQgPSBnZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgICAgIGlmIChvbGRTdGFydCA8IDEpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3RSYW5nZSgwLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBlID0gaXRlci5mb2xsb3dpbmcob2xkU3RhcnQtMSk7CisgICAgICAgICAgICAgICAgaW50IHMgPSBpdGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgc2VsZWN0UmFuZ2UocywgZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL3RleHQuc2VsZWN0KHMsIGUpOworICAgICAgICAgICAgZXJyb3JUZXh0KCI8IiArIG9sZFN0YXJ0ICsgIiwiICsgb2xkRW5kICsgIj4gLT4gPCIgKyBzICsgIiwiICsgZSArICI+Iik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBleHApIHsKKyAgICAgICAgICAgIGVycm9yVGV4dChleHAudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBldnQpCisgICAgeworICAgICAgICBpZiAoZXZ0LmdldFNvdXJjZSgpIGluc3RhbmNlb2YgQ2hvaWNlKSB7CisgICAgICAgICAgICBoYW5kbGVFbnVtQ2hhbmdlZCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXJyb3JUZXh0KFN0cmluZyBzKQorICAgIHsKKyAgICAgICBpZiAoREVCVUcpCisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgcHJvY2Vzc1dpbmRvd0V2ZW50KFdpbmRvd0V2ZW50IGV2dCkKKyAgICB7CisgICAgICAgIGlmIChldnQuZ2V0SUQoKSA9PSBXaW5kb3dFdmVudC5XSU5ET1dfQ0xPU0lORyAmJiAKKyAgICAgICAgICAgIGV2dC5nZXRXaW5kb3coKSA9PSB0aGlzKSB7CisgICAgICAgICAgICBoaWRlKCk7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICBpZiAoYXBwbGV0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhcHBsZXQuZGVtb0Nsb3NlZCgpOworICAgICAgICAgICAgfSBlbHNlIFN5c3RlbS5leGl0KDApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHByb2Nlc3NLZXlFdmVudChLZXlFdmVudCBldnQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGV2dC5nZXRJRCgpKSB7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LktFWV9QUkVTU0VEIDoKKyAgICAgICAgICAgICAgICBpZiAoZXZ0LmdldEtleUNvZGUoKSA9PSBLZXlFdmVudC5WS19DT05UUk9MKSB7CisgICAgICAgICAgICAgICAgICAgIGlzY3RybGRvd25fID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LktFWV9SRUxFQVNFRCA6CisgICAgICAgICAgICAgICAgLy8ga2V5IGRldGVjdGlvbiBmb3IgbGVmdCBhbmQgcmlnaHQgYnV0dG9ucyBhcmUgcmVtb3ZlZAorICAgICAgICAgICAgICAgIC8vIHRvIGVtdWxhdGUgdGhlIG9sZCByZWxlYXNlIGJlaGF2aW91cgorICAgICAgICAgICAgICAgIGludCBrZXkgPSBldnQuZ2V0S2V5Q29kZSgpOworICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfTiAmJiBpc2N0cmxkb3duXykgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVGb3J3YXJkKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgCisgICAgICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19QICYmIGlzY3RybGRvd25fKSB7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJhY2t3YXJkKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX0NPTlRST0wpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNjdHJsZG93bl8gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJiaS9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTNmMGMyYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYmJpL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGFuZCBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIGRlbW8gYXBwbGljYXRpb25zLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYm5mL1JibmZEZW1vLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9SYm5mRGVtby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZjOTY0NmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9SYm5mRGVtby5qYXZhCkBAIC0wLDAgKzEsNTI1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby5yYm5mOworCitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkTnVtYmVyRm9ybWF0OworCitwdWJsaWMgY2xhc3MgUmJuZkRlbW8gZXh0ZW5kcyBEZW1vQXBwbGV0IHsKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8qCisgICAgICogY29kZSB0byBydW4gdGhlIGRlbW8gYXMgYW4gYXBwbGljYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmd2KSB7CisgICAgICAgIG5ldyBSYm5mRGVtbygpLnNob3dEZW1vKCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIERpbWVuc2lvbiBnZXREZWZhdWx0RnJhbWVTaXplKERlbW9BcHBsZXQgYXBwbGV0LCBGcmFtZSBmKSB7CisgICAgICAgIHJldHVybiBuZXcgRGltZW5zaW9uKDQzMCwyNzApOworICAgIH0KKworICAgIHByb3RlY3RlZCBGcmFtZSBjcmVhdGVEZW1vRnJhbWUoRGVtb0FwcGxldCBhcHBsZXQpIHsKKyAgICAgICAgZmluYWwgRnJhbWUgd2luZG93ID0gbmV3IEZyYW1lKCJOdW1iZXIgU3BlbGxvdXQgRGVtbyIpOworICAgICAgICB3aW5kb3cuc2V0U2l6ZSg4MDAsIDYwMCk7CisgICAgICAgIHdpbmRvdy5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKworICAgICAgICBQYW5lbCBtYWluUGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgbWFpblBhbmVsLnNldExheW91dChuZXcgR3JpZExheW91dCgxLDIpKTsKKworICAgICAgICBjb21tZW50YXJ5RmllbGQgPSBuZXcgVGV4dEFyZWEoIiIsIDAsIDAsIFRleHRBcmVhLlNDUk9MTEJBUlNfVkVSVElDQUxfT05MWSk7CisgICAgICAgIGNvbW1lbnRhcnlGaWVsZC5zZXRTaXplKDgwMCwgNTApOworICAgICAgICBjb21tZW50YXJ5RmllbGQuc2V0VGV4dChSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldENvbW1lbnRhcnlbMF0pOworICAgICAgICBjb21tZW50YXJ5RmllbGQuc2V0RWRpdGFibGUoZmFsc2UpOworICAgICAgICBjb21tZW50YXJ5RmllbGQuc2V0Rm9udChuZXcgRm9udCgiSGVsdmV0aWNhIiwgRm9udC5QTEFJTiwgMTQpKTsKKworICAgICAgICBzcGVsbG91dEZvcm1hdHRlciA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoUmJuZlNhbXBsZVJ1bGVTZXRzLnVzRW5nbGlzaCwgTG9jYWxlLlVTKTsKKyAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZShsZW5pZW50UGFyc2UpOworICAgICAgICBwb3B1bGF0ZVJ1bGVTZXRNZW51KCk7CisgICAgICAgIG51bWJlckZvcm1hdHRlciA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMC4jIyMjIyMjIyMjIik7CisgICAgICAgIHBhcnNlUG9zaXRpb24gPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgdGhlTnVtYmVyID0gMDsKKworICAgICAgICBudW1iZXJGaWVsZCA9IG5ldyBUZXh0RmllbGQoKTsKKyAgICAgICAgbnVtYmVyRmllbGQuc2V0Rm9udChuZXcgRm9udCgiU2VyaWYiLCBGb250LlBMQUlOLCAyNCkpOworICAgICAgICB0ZXh0RmllbGQgPSBuZXcgRGVtb1RleHRGaWVsZEhvbGRlcigpOworICAgICAgICB0ZXh0RmllbGQuc2V0Rm9udChuZXcgRm9udCgiU2VyaWYiLCBGb250LlBMQUlOLCAyNCkpOworICAgICAgICBydWxlc0ZpZWxkID0gbmV3IERlbW9UZXh0RmllbGRIb2xkZXIoKTsKKyAgICAgICAgcnVsZXNGaWVsZC5zZXRGb250KG5ldyBGb250KCJTZXJpZiIsIEZvbnQuUExBSU4sIDE0KSk7CisgICAgICAgIGxlbmllbnRQYXJzZUJ1dHRvbiA9IG5ldyBDaGVja2JveCgiTGVuaWVudCBwYXJzZSIsIGxlbmllbnRQYXJzZSk7CisKKyAgICAgICAgbnVtYmVyRmllbGQuYWRkVGV4dExpc3RlbmVyKG5ldyBUZXh0TGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB0ZXh0VmFsdWVDaGFuZ2VkKFRleHRFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFudW1iZXJGaWVsZEhhc0ZvY3VzKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgZmllbGRUZXh0ID0gKChUZXh0Q29tcG9uZW50KShlLmdldFNvdXJjZSgpKSkuZ2V0VGV4dCgpOworICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgoMCk7CisgICAgICAgICAgICAgICAgTnVtYmVyIHRlbXAgPSBudW1iZXJGb3JtYXR0ZXIucGFyc2UoZmllbGRUZXh0LCBwYXJzZVBvc2l0aW9uKTsKKyAgICAgICAgICAgICAgICBpZiAodGVtcCA9PSBudWxsIHx8IHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRoZU51bWJlciA9IDA7CisgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZC5zZXRUZXh0KCJQQVJTRSBFUlJPUiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGhlTnVtYmVyID0gdGVtcC5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2V0VGV4dChzcGVsbG91dEZvcm1hdHRlci5mb3JtYXQodGhlTnVtYmVyLCBydWxlU2V0TmFtZSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIG51bWJlckZpZWxkLmFkZEZvY3VzTGlzdGVuZXIobmV3IEZvY3VzQWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGZvY3VzTG9zdChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBudW1iZXJGaWVsZEhhc0ZvY3VzID0gZmFsc2U7CisgICAgICAgICAgICAgICAgbnVtYmVyRmllbGQuc2V0VGV4dChudW1iZXJGb3JtYXR0ZXIuZm9ybWF0KHRoZU51bWJlcikpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBmb2N1c0dhaW5lZChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBudW1iZXJGaWVsZEhhc0ZvY3VzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBudW1iZXJGaWVsZC5zZWxlY3RBbGwoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIHRleHRGaWVsZC5hZGRLZXlMaXN0ZW5lcihuZXcgS2V5QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGtleVR5cGVkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZS5nZXRLZXlDaGFyKCkgPT0gJ1x0JykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZmllbGRUZXh0ID0gKChUZXh0Q29tcG9uZW50KShlLmdldFNvdXJjZSgpKSkuZ2V0VGV4dCgpOworICAgICAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICAgICAgICAgICAgICB0aGVOdW1iZXIgPSBzcGVsbG91dEZvcm1hdHRlci5wYXJzZShmaWVsZFRleHQsIHBhcnNlUG9zaXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhlTnVtYmVyID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQoIlBBUlNFIEVSUk9SIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2VsZWN0QWxsKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpIDwgZmllbGRUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2VsZWN0KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSwgZmllbGRUZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQobnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZC5zZWxlY3RBbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQobnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlLmNvbnN1bWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICB0ZXh0RmllbGQuYWRkRm9jdXNMaXN0ZW5lcihuZXcgRm9jdXNBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgZm9jdXNMb3N0KEZvY3VzRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBmaWVsZFRleHQgPSAoKFRleHRDb21wb25lbnQpKGUuZ2V0U291cmNlKCkpKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICB0aGVOdW1iZXIgPSBzcGVsbG91dEZvcm1hdHRlci5wYXJzZShmaWVsZFRleHQsIHBhcnNlUG9zaXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyRmllbGQuc2V0VGV4dCgiUEFSU0UgRVJST1IiKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQobnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIpKTsKKyAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2V0VGV4dCh0ZXh0RmllbGQuZ2V0VGV4dCgpKTsgLy8gdGV4dEZpZWxkLnJlcGFpbnQoKSBkaWRuJ3Qgd29yayByaWdodAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBmb2N1c0dhaW5lZChGb2N1c0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2VsZWN0QWxsKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICBydWxlc0ZpZWxkLmFkZEtleUxpc3RlbmVyKG5ldyBLZXlBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQga2V5VHlwZWQoS2V5RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGlmIChlLmdldEtleUNoYXIoKSA9PSAnXHQnKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBmaWVsZFRleHQgPSAoKFRleHRDb21wb25lbnQpKGUuZ2V0U291cmNlKCkpKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtYXR0ZXJNZW51LmdldFNlbGVjdGVkSXRlbSgpLmVxdWFscygiQ3VzdG9tIikgfHwgIWZpZWxkVGV4dC5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldHNbZm9ybWF0dGVyTWVudS5nZXRTZWxlY3RlZEluZGV4KCldKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGVtcCA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoZmllbGRUZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLnNldExlbmllbnRQYXJzZU1vZGUobGVuaWVudFBhcnNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3B1bGF0ZVJ1bGVTZXRNZW51KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbVJ1bGVTZXQgPSBmaWVsZFRleHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyTWVudS5zZWxlY3QoIkN1c3RvbSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRhcnlGaWVsZC5zZXRUZXh0KFJibmZTYW1wbGVSdWxlU2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlUnVsZVNldENvbW1lbnRhcnlbUmJuZlNhbXBsZVJ1bGVTZXRzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVSdWxlU2V0Q29tbWVudGFyeS5sZW5ndGggLSAxXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIHgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2V0VGV4dCh4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGUuY29uc3VtZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIHJ1bGVzRmllbGQuYWRkRm9jdXNMaXN0ZW5lcihuZXcgRm9jdXNBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgZm9jdXNMb3N0KEZvY3VzRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBmaWVsZFRleHQgPSAoKFRleHRDb21wb25lbnQpKGUuZ2V0U291cmNlKCkpKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRlck1lbnUuZ2V0U2VsZWN0ZWRJdGVtKCkuZXF1YWxzKCJDdXN0b20iKSB8fCAhZmllbGRUZXh0LmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmJuZlNhbXBsZVJ1bGVTZXRzLnNhbXBsZVJ1bGVTZXRzW2Zvcm1hdHRlck1lbnUuZ2V0U2VsZWN0ZWRJbmRleCgpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0ZW1wID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChmaWVsZFRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcC5zZXRMZW5pZW50UGFyc2VNb2RlKGxlbmllbnRQYXJzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3B1bGF0ZVJ1bGVTZXRNZW51KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzcGVsbG91dEZvcm1hdHRlciA9IHRlbXA7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21SdWxlU2V0ID0gZmllbGRUZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyTWVudS5zZWxlY3QoIkN1c3RvbSIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXNwbGF5KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiB4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQuc2V0VGV4dCh4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJ1bGVzRmllbGQuc2V0VGV4dChydWxlc0ZpZWxkLmdldFRleHQoKSk7IC8vIHJ1bGVzRmllbGQucmVwYWludCgpIGRpZG4ndCB3b3JrIHJpZ2h0CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKworICAgICAgICBsZW5pZW50UGFyc2VCdXR0b24uYWRkSXRlbUxpc3RlbmVyKG5ldyBJdGVtTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgbGVuaWVudFBhcnNlID0gbGVuaWVudFBhcnNlQnV0dG9uLmdldFN0YXRlKCk7CisgICAgICAgICAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZShsZW5pZW50UGFyc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisKKyAgICAgICAgbnVtYmVyRmllbGQuc2V0VGV4dChudW1iZXJGb3JtYXR0ZXIuZm9ybWF0KHRoZU51bWJlcikpOworICAgICAgICBudW1iZXJGaWVsZC5zZWxlY3RBbGwoKTsKKyAgICAgICAgdGV4dEZpZWxkLnNldFRleHQoc3BlbGxvdXRGb3JtYXR0ZXIuZm9ybWF0KHRoZU51bWJlciwgcnVsZVNldE5hbWUpKTsKKworICAgICAgICBQYW5lbCBsZWZ0UGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgbGVmdFBhbmVsLnNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworICAgICAgICBQYW5lbCBwYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICBwYW5lbC5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKyAgICAgICAgUGFuZWwgcGFuZWwxID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHBhbmVsMS5zZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMywgMSkpOworICAgICAgICBwYW5lbDEuYWRkKG5ldyBQYW5lbCgpKTsKKyAgICAgICAgcGFuZWwxLmFkZChudW1iZXJGaWVsZCwgIkNlbnRlciIpOworICAgICAgICBwYW5lbDEuYWRkKGxlbmllbnRQYXJzZUJ1dHRvbik7CisgICAgICAgIHBhbmVsLmFkZChwYW5lbDEsICJDZW50ZXIiKTsKKyAgICAgICAgUGFuZWwgcGFuZWwyID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHBhbmVsMi5zZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMywgMykpOworICAgICAgICBCdXR0b24gYnV0dG9uID0gbmV3IEJ1dHRvbigiKzEwMCIpOworICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgcm9sbCgxMDApOworICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisgICAgICAgIHBhbmVsMi5hZGQoYnV0dG9uKTsKKyAgICAgICAgYnV0dG9uID0gbmV3IEJ1dHRvbigiKzEwIik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICByb2xsKDEwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIisxIik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICByb2xsKDEpOworICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisgICAgICAgIHBhbmVsMi5hZGQoYnV0dG9uKTsKKyAgICAgICAgYnV0dG9uID0gbmV3IEJ1dHRvbigiPCIpOworICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIoIG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgdGhlTnVtYmVyICo9IDEwOworICAgICAgICAgICAgICAgIHJlZGlzcGxheSgpOworICAgICAgICAgICAgfQorICAgICAgICB9ICk7CisgICAgICAgIHBhbmVsMi5hZGQoYnV0dG9uKTsKKyAgICAgICAgcGFuZWwyLmFkZChuZXcgUGFuZWwoKSk7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIj4iKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKCBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHRoZU51bWJlciAvPSAxMDsKKyAgICAgICAgICAgICAgICByZWRpc3BsYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIi0xMDAiKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKCBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHJvbGwoLTEwMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gKTsKKyAgICAgICAgcGFuZWwyLmFkZChidXR0b24pOworICAgICAgICBidXR0b24gPSBuZXcgQnV0dG9uKCItMTAiKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKCBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHJvbGwoLTEwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIi0xIik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lciggbmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICByb2xsKC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworICAgICAgICBwYW5lbDIuYWRkKGJ1dHRvbik7CisgICAgICAgIHBhbmVsLmFkZChwYW5lbDIsICJFYXN0Iik7CisgICAgICAgIGxlZnRQYW5lbC5hZGQocGFuZWwsICJOb3J0aCIpOworICAgICAgICBsZWZ0UGFuZWwuYWRkKHRleHRGaWVsZCwgIkNlbnRlciIpOworCisgICAgICAgIFBhbmVsIHJpZ2h0UGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgcmlnaHRQYW5lbC5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKyAgICAgICAgZm9ybWF0dGVyTWVudSA9IG5ldyBDaG9pY2UoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldE5hbWVzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgZm9ybWF0dGVyTWVudS5hZGRJdGVtKFJibmZTYW1wbGVSdWxlU2V0cy5zYW1wbGVSdWxlU2V0TmFtZXNbaV0pOworICAgICAgICBmb3JtYXR0ZXJNZW51LmFkZEl0ZW0oIkN1c3RvbSIpOworICAgICAgICBmb3JtYXR0ZXJNZW51LmFkZEl0ZW1MaXN0ZW5lcihuZXcgSXRlbUxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIENob2ljZSBzb3VyY2UgPSAoQ2hvaWNlKShlLmdldFNvdXJjZSgpKTsKKyAgICAgICAgICAgICAgICBpbnQgaXRlbSA9IHNvdXJjZS5nZXRTZWxlY3RlZEluZGV4KCk7CisgICAgICAgICAgICAgICAgTG9jYWxlIGxvY2FsZSA9IFJibmZTYW1wbGVSdWxlU2V0cy5zYW1wbGVSdWxlU2V0TG9jYWxlc1tpdGVtXTsKKworICAgICAgICAgICAgICAgIGNvbW1lbnRhcnlGaWVsZC5zZXRUZXh0KFJibmZTYW1wbGVSdWxlU2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlUnVsZVNldENvbW1lbnRhcnlbaXRlbV0pOworCisgICAgICAgICAgICAgICAgaWYgKGxvY2FsZSAhPSBudWxsICYmIChsb2NhbGUuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoIml3IikKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGxvY2FsZS5nZXRMYW5ndWFnZSgpLmVxdWFscygicnUiKSB8fCBsb2NhbGUuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoImphIikKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IGxvY2FsZS5nZXRMYW5ndWFnZSgpLmVxdWFscygiZWwiKQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgbG9jYWxlLmdldExhbmd1YWdlKCkuZXF1YWxzKCJ6aCIpKSkgeworICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQudG9nZ2xlUGFuZXMoZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBydWxlc0ZpZWxkLnRvZ2dsZVBhbmVzKGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZC50b2dnbGVQYW5lcyh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgcnVsZXNGaWVsZC50b2dnbGVQYW5lcyh0cnVlKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBtYWtlTmV3U3BlbGxvdXRGb3JtYXR0ZXIoKTsKKyAgICAgICAgICAgICAgICByZWRpc3BsYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIHJ1bGVTZXRNZW51ID0gbmV3IENob2ljZSgpOworICAgICAgICBwb3B1bGF0ZVJ1bGVTZXRNZW51KCk7CisKKyAgICAgICAgcnVsZVNldE1lbnUuYWRkSXRlbUxpc3RlbmVyKG5ldyBJdGVtTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBpdGVtU3RhdGVDaGFuZ2VkKEl0ZW1FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgcnVsZVNldE5hbWUgPSBydWxlU2V0TWVudS5nZXRTZWxlY3RlZEl0ZW0oKTsKKyAgICAgICAgICAgICAgICByZWRpc3BsYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSApOworCisgICAgICAgIFBhbmVsIG1lbnVQYW5lbCA9IG5ldyBQYW5lbCgpOworICAgICAgICBtZW51UGFuZWwuc2V0TGF5b3V0KG5ldyBHcmlkTGF5b3V0KDEsIDIpKTsKKyAgICAgICAgbWVudVBhbmVsLmFkZChmb3JtYXR0ZXJNZW51KTsKKyAgICAgICAgbWVudVBhbmVsLmFkZChydWxlU2V0TWVudSk7CisgICAgICAgIHJpZ2h0UGFuZWwuYWRkKG1lbnVQYW5lbCwgIk5vcnRoIik7CisKKyAgICAgICAgcnVsZXNGaWVsZC5zZXRUZXh0KFJibmZTYW1wbGVSdWxlU2V0cy5zYW1wbGVSdWxlU2V0c1tmb3JtYXR0ZXJNZW51LmdldFNlbGVjdGVkSW5kZXgoKV0pOworICAgICAgICByaWdodFBhbmVsLmFkZChydWxlc0ZpZWxkLCAiQ2VudGVyIik7CisKKyAgICAgICAgbWFpblBhbmVsLmFkZChsZWZ0UGFuZWwpOworICAgICAgICBtYWluUGFuZWwuYWRkKHJpZ2h0UGFuZWwpOworCisgICAgICAgIHdpbmRvdy5hZGQobWFpblBhbmVsLCAiQ2VudGVyIik7CisgICAgICAgIHdpbmRvdy5hZGQoY29tbWVudGFyeUZpZWxkLCAiU291dGgiKTsKKworICAgICAgICB3aW5kb3cuZG9MYXlvdXQoKTsKKyAgICAgICAgd2luZG93LnNob3coKTsKKyAgICAgICAgcmV0dXJuIHdpbmRvdzsKKyAgICB9CisKKyAgICB2b2lkIHJvbGwoaW50IGRlbHRhKSB7CisgICAgICAgIHRoZU51bWJlciArPSBkZWx0YTsKKyAgICAgICAgcmVkaXNwbGF5KCk7CisgICAgfQorCisgICAgdm9pZCByZWRpc3BsYXkoKSB7CisgICAgICAgIG51bWJlckZpZWxkLnNldFRleHQobnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh0aGVOdW1iZXIpKTsKKyAgICAgICAgdGV4dEZpZWxkLnNldFRleHQoc3BlbGxvdXRGb3JtYXR0ZXIuZm9ybWF0KHRoZU51bWJlciwgcnVsZVNldE5hbWUpKTsKKyAgICB9CisKKyAgICB2b2lkIG1ha2VOZXdTcGVsbG91dEZvcm1hdHRlcigpIHsKKyAgICAgICAgaW50IGl0ZW0gPSBmb3JtYXR0ZXJNZW51LmdldFNlbGVjdGVkSW5kZXgoKTsKKyAgICAgICAgU3RyaW5nIGZvcm1hdHRlck1lbnVJdGVtID0gZm9ybWF0dGVyTWVudS5nZXRTZWxlY3RlZEl0ZW0oKTsKKworICAgICAgICBpZiAoZm9ybWF0dGVyTWVudUl0ZW0uZXF1YWxzKCJDdXN0b20iKSkgeworICAgICAgICAgICAgcnVsZXNGaWVsZC5zZXRUZXh0KGN1c3RvbVJ1bGVTZXQpOworICAgICAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGN1c3RvbVJ1bGVTZXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcnVsZXNGaWVsZC5zZXRUZXh0KFJibmZTYW1wbGVSdWxlU2V0cy5zYW1wbGVSdWxlU2V0c1tpdGVtXSk7CisKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSBSYm5mU2FtcGxlUnVsZVNldHMuc2FtcGxlUnVsZVNldExvY2FsZXNbaXRlbV07CisgICAgICAgICAgICBpZiAobG9jYWxlID09IG51bGwpCisgICAgICAgICAgICAgICAgbG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKworICAgICAgICAgICAgc3BlbGxvdXRGb3JtYXR0ZXIgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFJibmZTYW1wbGVSdWxlU2V0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVSdWxlU2V0c1tpdGVtXSwgbG9jYWxlKTsKKyAgICAgICAgfQorICAgICAgICBzcGVsbG91dEZvcm1hdHRlci5zZXRMZW5pZW50UGFyc2VNb2RlKGxlbmllbnRQYXJzZSk7CisgICAgICAgIHBvcHVsYXRlUnVsZVNldE1lbnUoKTsKKyAgICB9CisKKyAgICB2b2lkIHBvcHVsYXRlUnVsZVNldE1lbnUoKSB7CisgICAgICAgIFN0cmluZ1tdIHJ1bGVTZXROYW1lcyA9IHNwZWxsb3V0Rm9ybWF0dGVyLmdldFJ1bGVTZXROYW1lcygpOworCisgICAgICAgIGlmIChydWxlU2V0TWVudSAhPSBudWxsKSB7CisgICAgICAgICAgICBydWxlU2V0TWVudS5yZW1vdmVBbGwoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVsZVNldE5hbWVzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgICAgIHJ1bGVTZXRNZW51LmFkZEl0ZW0ocnVsZVNldE5hbWVzW2ldKTsKKworICAgICAgICAgICAgcnVsZVNldE5hbWUgPSBydWxlU2V0TWVudS5nZXRTZWxlY3RlZEl0ZW0oKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICBydWxlU2V0TmFtZSA9IHJ1bGVTZXROYW1lc1swXTsKKyAgICB9CisKKyAgICBwcml2YXRlIEZyYW1lIGRlbW9XaW5kb3cgPSBudWxsOworCisgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50IG51bWJlckZpZWxkOworICAgIHByaXZhdGUgRGVtb1RleHRGaWVsZEhvbGRlciB0ZXh0RmllbGQ7CisgICAgcHJpdmF0ZSBEZW1vVGV4dEZpZWxkSG9sZGVyIHJ1bGVzRmllbGQ7CisgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50IGNvbW1lbnRhcnlGaWVsZDsKKyAgICBwcml2YXRlIENoZWNrYm94IGxlbmllbnRQYXJzZUJ1dHRvbjsKKworICAgIHByaXZhdGUgYm9vbGVhbiBudW1iZXJGaWVsZEhhc0ZvY3VzID0gdHJ1ZTsKKworICAgIHByaXZhdGUgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHNwZWxsb3V0Rm9ybWF0dGVyOworICAgIHByaXZhdGUgRGVjaW1hbEZvcm1hdCBudW1iZXJGb3JtYXR0ZXI7CisgICAgcHJpdmF0ZSBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb247CisKKyAgICBwcml2YXRlIGJvb2xlYW4gbGVuaWVudFBhcnNlID0gdHJ1ZTsKKworICAgIHByaXZhdGUgZG91YmxlIHRoZU51bWJlciA9IDA7CisgICAgcHJpdmF0ZSBib29sZWFuIGNhbkVkaXQgPSB0cnVlOworCisgICAgcHJpdmF0ZSBDaG9pY2UgZm9ybWF0dGVyTWVudTsKKyAgICBwcml2YXRlIENob2ljZSBydWxlU2V0TWVudTsKKyAgICBwcml2YXRlIFN0cmluZyBydWxlU2V0TmFtZTsKKworICAgIHByaXZhdGUgU3RyaW5nIGN1c3RvbVJ1bGVTZXQgPSAiTk8gUlVMRVMhIjsKK30KKworY2xhc3MgRGVtb1RleHRGaWVsZCBleHRlbmRzIENvbXBvbmVudCB7CisgICAgcHVibGljIERlbW9UZXh0RmllbGQoKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgdGV4dCkgeworICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICB0aGlzLnJlcGFpbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRleHQoKSB7CisgICAgICAgIHJldHVybiB0ZXh0OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgRm9udCBmb250ID0gZ2V0Rm9udCgpOworICAgICAgICBGb250TWV0cmljcyBmbSA9IGcuZ2V0Rm9udE1ldHJpY3MoKTsKKyAgICAgICAgZy5zZXRGb250KGZvbnQpOworICAgICAgICBTdHJpbmcgdGV4dCA9IGdldFRleHQoKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgIGJpLnNldFRleHQodGV4dCk7CisgICAgICAgIGludCBsaW5lSGVpZ2h0ID0gZm0uZ2V0SGVpZ2h0KCk7CisgICAgICAgIGludCB3aWR0aCA9IGdldFNpemUoKS53aWR0aDsKKyAgICAgICAgaW50IHBlblkgPSBmbS5nZXRBc2NlbnQoKTsKKyAgICAgICAgaW50IGxpbmVTdGFydCA9IDA7CisgICAgICAgIGludCB0ZW1wTGluZUVuZCA9IGJpLmZpcnN0KCk7CisgICAgICAgIGludCBsaW5lRW5kID0gMDsKKyAgICAgICAgaW50IG1heExpbmVFbmQgPSAwOworICAgICAgICB0b3RhbEhlaWdodCA9IDA7CisKKyAgICAgICAgd2hpbGUgKGxpbmVTdGFydCA8IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIG1heExpbmVFbmQgPSB0ZXh0LmluZGV4T2YoJ1xuJywgbGluZVN0YXJ0KTsKKyAgICAgICAgICAgIGlmIChtYXhMaW5lRW5kID09IC0xKQorICAgICAgICAgICAgICAgIG1heExpbmVFbmQgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgICAgIHdoaWxlICh0ZW1wTGluZUVuZCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUgJiYgZm0uc3RyaW5nV2lkdGgodGV4dC5zdWJzdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVN0YXJ0LCB0ZW1wTGluZUVuZCkpIDwgd2lkdGgpIHsKKyAgICAgICAgICAgICAgICBsaW5lRW5kID0gdGVtcExpbmVFbmQ7CisgICAgICAgICAgICAgICAgdGVtcExpbmVFbmQgPSBiaS5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGluZVN0YXJ0ID49IGxpbmVFbmQpIHsKKyAgICAgICAgICAgICAgICBpZiAodGVtcExpbmVFbmQgPT0gQnJlYWtJdGVyYXRvci5ET05FKQorICAgICAgICAgICAgICAgICAgICBsaW5lRW5kID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxpbmVFbmQgPSB0ZW1wTGluZUVuZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaW5lRW5kID4gbWF4TGluZUVuZCkKKyAgICAgICAgICAgICAgICBsaW5lRW5kID0gbWF4TGluZUVuZDsKKyAgICAgICAgICAgIGcuZHJhd1N0cmluZyh0ZXh0LnN1YnN0cmluZyhsaW5lU3RhcnQsIGxpbmVFbmQpLCAwLCBwZW5ZKTsKKyAgICAgICAgICAgIHBlblkgKz0gbGluZUhlaWdodDsKKyAgICAgICAgICAgIHRvdGFsSGVpZ2h0ICs9IGxpbmVIZWlnaHQ7CisgICAgICAgICAgICBsaW5lU3RhcnQgPSBsaW5lRW5kOworICAgICAgICAgICAgaWYgKGxpbmVTdGFydCA8IHRleHQubGVuZ3RoKCkgJiYgdGV4dC5jaGFyQXQobGluZVN0YXJ0KSA9PSAnXG4nKQorICAgICAgICAgICAgICAgICsrbGluZVN0YXJ0OworICAgICAgICB9CisgICAgfQorCisvKgorICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0UHJlZmVycmVkU2l6ZSgpIHsKKyAgICAgICAgRGltZW5zaW9uIHNpemUgPSBnZXRQYXJlbnQoKS5nZXRTaXplKCk7CisgICAgICAgIHJldHVybiBuZXcgRGltZW5zaW9uKHNpemUud2lkdGgsIHRvdGFsSGVpZ2h0KTsKKyAgICB9CisqLworCisgICAgcHJpdmF0ZSBTdHJpbmcgdGV4dDsKKyAgICBwcml2YXRlIGludCB0b3RhbEhlaWdodDsKK30KKworY2xhc3MgRGVtb1RleHRGaWVsZEhvbGRlciBleHRlbmRzIFBhbmVsIHsKKyAgICBwdWJsaWMgRGVtb1RleHRGaWVsZEhvbGRlcigpIHsKKyAgICAgICAgdGYxID0gbmV3IFRleHRBcmVhKCIiLCAwLCAwLCBUZXh0QXJlYS5TQ1JPTExCQVJTX1ZFUlRJQ0FMX09OTFkpOworICAgICAgICB0ZjIgPSBuZXcgRGVtb1RleHRGaWVsZCgpOworICAgICAgICBzcCA9IG5ldyBTY3JvbGxQYW5lKCk7CisKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBDYXJkTGF5b3V0KCkpOworCisgICAgICAgIHNwLmFkZCh0ZjIsICJUZXh0RmllbGQxIik7CisgICAgICAgIHNwLnNldFZpc2libGUoZmFsc2UpOworICAgICAgICBhZGQodGYxLCAiVGVzdEZpZWxkMiIpOworICAgICAgICBhZGQoc3AsICJTY3JvbGxQYW5lIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkRm9jdXNMaXN0ZW5lcihGb2N1c0xpc3RlbmVyIGwpIHsKKyAgICAgICAgdGYxLmFkZEZvY3VzTGlzdGVuZXIobCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkS2V5TGlzdGVuZXIoS2V5TGlzdGVuZXIgbCkgeworICAgICAgICB0ZjEuYWRkS2V5TGlzdGVuZXIobCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgdGV4dCkgeworICAgICAgICB0ZjEuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgdGYyLnNldFRleHQodGV4dCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRUZXh0KCkgeworICAgICAgICByZXR1cm4gdGYxLmdldFRleHQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIHRmMS5zZWxlY3Qoc3RhcnQsIGVuZCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2VsZWN0QWxsKCkgeworICAgICAgICB0ZjEuc2VsZWN0QWxsKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdG9nZ2xlUGFuZXMoYm9vbGVhbiBjYW5TaG93UmVhbFRleHRGaWVsZCkgeworICAgICAgICBpZiAoY2FuU2hvd1JlYWxUZXh0RmllbGQgIT0gc2hvd2luZ1JlYWxUZXh0RmllbGQpIHsKKyAgICAgICAgICAgIENhcmRMYXlvdXQgbGF5b3V0ID0gKENhcmRMYXlvdXQpKGdldExheW91dCgpKTsKKyAgICAgICAgICAgIGxheW91dC5uZXh0KHRoaXMpOworICAgICAgICAgICAgc2hvd2luZ1JlYWxUZXh0RmllbGQgPSBjYW5TaG93UmVhbFRleHRGaWVsZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgVGV4dEFyZWEgdGYxID0gbnVsbDsKKyAgICBwcml2YXRlIERlbW9UZXh0RmllbGQgdGYyID0gbnVsbDsKKyAgICBwcml2YXRlIFNjcm9sbFBhbmUgc3AgPSBudWxsOworICAgIHByaXZhdGUgYm9vbGVhbiBzaG93aW5nUmVhbFRleHRGaWVsZCA9IHRydWU7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9SYm5mU2FtcGxlUnVsZVNldHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYm5mL1JibmZTYW1wbGVSdWxlU2V0cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY4Y2YxNDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9SYm5mU2FtcGxlUnVsZVNldHMuamF2YQpAQCAtMCwwICsxLDE5NDEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnJibmY7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIEEgY29sbGVjdGlvbiBvZiBleGFtcGxlIHJ1bGUgc2V0cyBmb3IgdXNlIHdpdGggUnVsZUJhc2VkTnVtYmVyRm9ybWF0LgorICogVGhlc2UgZXhhbXBsZXMgYXJlIGludGVuZGVkIHRvIHNlcnZlIGJvdGggYXMgZGVtb25zdHJhdGlvbnMgb2Ygd2hhdCBjYW4KKyAqIGJlIGRvbmUgd2l0aCB0aGlzIGZyYW1ld29yaywgYW5kIGFzIHN0YXJ0aW5nIHBvaW50cyBmb3IgZGVzaWduaW5nIG5ldworICogcnVsZSBzZXRzLgorICoKKyAqIEZvciB0aG9zZSB0aGF0IGNsYWltIHRvIHJlcHJlc2VudCBudW1iZXItc3BlbGxvdXQgcnVsZXMgZm9yIGxhbmd1YWdlcworICogb3RoZXIgdGhhbiBVLlMuIEVuZ2xpc2gsIHdlIG1ha2Ugbm8gY2xhaW1zIG9mIGVpdGhlciBhY2N1cmFjeSBvcgorICogY29tcGxldGVuZXNzLiAgSW4gZmFjdCwgd2Uga25vdyB0aGVtIHRvIGJlIGluY29tcGxldGUsIGFuZCBzdXNwZWN0CisgKiBtb3N0IGhhdmUgbWlzdGFrZXMgaW4gdGhlbS4gIElmIHlvdSBzZWUgc29tZXRoaW5nIHRoYXQgeW91IGtub3cgaXMgd3JvbmcsCisgKiBwbGVhc2UgdGVsbCB1cyEKKyAqCisgKiBAYXV0aG9yIFJpY2hhcmQgR2lsbGFtCisgKi8KK3B1YmxpYyBjbGFzcyBSYm5mU2FtcGxlUnVsZVNldHMgeworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBTcGVsbG91dCBydWxlcyBmb3IgdmFyaW91cyBsYW5ndWFnZXMKKyAgICAvLworICAgIC8vIFRoZSBmb2xsb3dpbmcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGRlc2NyaXB0aW9ucyBzaG93IHRoZSBydWxlcyBmb3IKKyAgICAvLyBzcGVsbGluZyBvdXQgbnVtZXJpYyB2YWx1ZXMgaW4gdmFyaW91cyBsYW5ndWFnZXMuICBBcyBtZW50aW9uZWQKKyAgICAvLyBiZWZvcmUsIHdlIGNhbm5vdCB2b3VjaCBmb3IgdGhlIGFjY3VyYWN5IG9yIGNvbXBsZXRlbmVzcyBvZiB0aGlzCisgICAgLy8gZGF0YSwgYWx0aG91Z2ggd2UgYmVsaWV2ZSBpdCdzIHByZXR0eSBjbG9zZS4gIEJhc2ljYWxseSwgdGhpcworICAgIC8vIHJlcHJlc2VudHMgb25lIGRheSdzIHdvcnRoIG9mIFdlYi1zdXJmaW5nLiAgSWYgeW91IGNhbiBzdXBwbHkgdGhlCisgICAgLy8gbWlzc2luZyBpbmZvcm1hdGlvbiBpbiBhbnkgb2YgdGhlc2UgcnVsZSBzZXRzLCBvciBpZiB5b3UgZmluZCBlcnJvcnMsCisgICAgLy8gb3IgaWYgeW91IGNhbiBzdXBwbHkgc3BlbGxvdXQgcnVsZXMgZm9yIGxhbmd1YWdlcyB0aGF0IGFyZW4ndCBzaG93bgorICAgIC8vIGhlcmUsIHdlIHdhbnQgdG8gaGVhciBmcm9tIHlvdSEKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIFUuUy4gRW5nbGlzaC4gIFRoaXMgZGVtb25zdHJhdGlvbiB2ZXJzaW9uIG9mIHRoZQorICAgICAqIFUuUy4gRW5nbGlzaCBzcGVsbG91dCBydWxlcyBoYXMgZm91ciB2YXJpYW50czogMSkgJXNpbXBsaWZpZWQgaXMgYQorICAgICAqIHNldCBvZiBydWxlcyBzaG93aW5nIHRoZSBzaW1wbGUgbWV0aG9kIG9mIHNwZWxsaW5nIG91dCBudW1iZXJzIGluCisgICAgICogRW5nbGlzaDogMjg5IGlzIGZvcm1hdHRlZCBhcyAidHdvIGh1bmRyZWQgZWlnaHR5LW5pbmUiLiAgMikgJWFsdC10ZWVucworICAgICAqIGlzIHRoZSBzYW1lIGFzICVzaW1wbGlmaWVkLCBleGNlcHQgdGhhdCB2YWx1ZXMgYmV0d2VlbiAxLDAwMCBhbmQgOSw5OTkKKyAgICAgKiB3aG9zZSBodW5kcmVkcyBwbGFjZSBpc24ndCB6ZXJvIGFyZSBmb3JtYXR0ZWQgaW4gaHVuZHJlZHMuICBGb3IgZXhhbXBsZSwKKyAgICAgKiAxLDk4MyBpcyBmb3JtYXR0ZWQgYXMgIm5pbmV0ZWVuIGh1bmRyZWQgZWlnaHR5LXRocmVlLCIgYW5kIDIsMTgzIGlzCisgICAgICogZm9ybWF0dGVkIGFzICJ0d2VudHktb25lIGh1bmRyZWQgZWlnaHR5LXRocmVlLCIgYnV0IDIsMDgzIGlzIHN0aWxsCisgICAgICogZm9ybWF0dGVkIGFzICJ0d28gdGhvdXNhbmQgZWlnaHR5LXRocmVlLiIgIDMpICVvcmRpbmFsIGZvcm1hdHMgdGhlCisgICAgICogdmFsdWVzIGFzIG9yZGluYWwgbnVtYmVycyBpbiBFbmdsaXNoIChlLmcuLCAyODkgaXMgInR3byBodW5kcmVkIGVpZ2h0eS0KKyAgICAgKiBuaW50aCIpLiAgNCkgJWRlZmF1bHQgdXNlcyBhIG1vcmUgY29tcGxpY2F0ZWQgYWxnb3JpdGhtIHRvIGZvcm1hdAorICAgICAqIG51bWJlcnMgaW4gYSBtb3JlIG5hdHVyYWwgd2F5OiAyODkgaXMgZm9ybWF0dGVkIGFzICJ0d28gaHVuZHJlZCBBTkQKKyAgICAgKiBlaWdodHktbmluZSIgYW5kIGNvbW1hcyBhcmUgaW5zZXJ0ZWQgYmV0d2VlbiB0aGUgdGhvdXNhbmRzIGdyb3VwcyBmb3IKKyAgICAgKiB2YWx1ZXMgYWJvdmUgMTAwLDAwMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyB1c0VuZ2xpc2ggPQorICAgICAgICAvLyBUaGlzIHJ1bGUgc2V0IHNob3dzIHRoZSBub3JtYWwgc2ltcGxlIGZvcm1hdHRpbmcgcnVsZXMgZm9yIEVuZ2xpc2gKKyAgICAgICAgIiVzaW1wbGlmaWVkOlxuIgorICAgICAgICAgICAgICAgLy8gbmVnYXRpdmUgbnVtYmVyIHJ1bGUuICBUaGlzIHJ1bGUgaXMgdXNlZCB0byBmb3JtYXQgbmVnYXRpdmUKKyAgICAgICAgICAgICAgIC8vIG51bWJlcnMuICBUaGUgcmVzdWx0IG9mIGZvcm1hdHRpbmcgdGhlIG51bWJlcidzIGFic29sdXRlCisgICAgICAgICAgICAgICAvLyB2YWx1ZSBpcyBwbGFjZWQgd2hlcmUgdGhlID4+IGlzLgorICAgICAgICArICIgICAgLXg6IG1pbnVzID4+O1xuIgorICAgICAgICAgICAgICAgLy8gZmFjdGlvbiBydWxlLiAgVGhpcyBydWxlIGlzIHVzZWQgZm9yIGZvcm1hdHRpbmcgbnVtYmVycworICAgICAgICAgICAgICAgLy8gd2l0aCBmcmFjdGlvbmFsIHBhcnRzLiAgVGhlIHJlc3VsdCBvZiBmb3JtYXR0aW5nIHRoZQorICAgICAgICAgICAgICAgLy8gbnVtYmVyJ3MgaW50ZWdyYWwgcGFydCBpcyBzdWJzdGl0dXRlZCBmb3IgdGhlIDw8LCBhbmQKKyAgICAgICAgICAgICAgIC8vIHRoZSByZXN1bHQgb2YgZm9ybWF0dGluZyB0aGUgbnVtYmVyJ3MgZnJhY3Rpb25hbCBwYXJ0CisgICAgICAgICAgICAgICAvLyAob25lIGRpZ2l0IGF0IGEgdGltZSwgZS5nLiwgMC4xMjMgaXMgInplcm8gcG9pbnQgb25lIHR3bworICAgICAgICAgICAgICAgLy8gdGhyZWUiKSByZXBsYWNlcyB0aGUgPj4uCisgICAgICAgICsgIiAgICB4Lng6IDw8IHBvaW50ID4+O1xuIgorICAgICAgICAgICAgICAgLy8gdGhlIHJ1bGVzIGZvciB0aGUgdmFsdWVzIGZyb20gMCB0byAxOSBhcmUgc2ltcGx5IHRoZQorICAgICAgICAgICAgICAgLy8gd29yZHMgZm9yIHRob3NlIG51bWJlcnMKKyAgICAgICAgKyAiICAgIHplcm87IG9uZTsgdHdvOyB0aHJlZTsgZm91cjsgZml2ZTsgc2l4OyBzZXZlbjsgZWlnaHQ7IG5pbmU7XG4iCisgICAgICAgICsgIiAgICB0ZW47IGVsZXZlbjsgdHdlbHZlOyB0aGlydGVlbjsgZm91cnRlZW47IGZpZnRlZW47IHNpeHRlZW47XG4iCisgICAgICAgICsgIiAgICAgICAgc2V2ZW50ZWVuOyBlaWdodGVlbjsgbmluZXRlZW47XG4iCisgICAgICAgICAgICAgICAvLyBiZWdpbm5pbmcgYXQgMjAsIHdlIHVzZSB0aGUgPj4gdG8gbWFyayB0aGUgcG9zaXRpb24gd2hlcmUKKyAgICAgICAgICAgICAgIC8vIHRoZSByZXN1bHQgb2YgZm9ybWF0dGluZyB0aGUgbnVtYmVyJ3Mgb25lcyBkaWdpdC4gIFRodXMsCisgICAgICAgICAgICAgICAvLyB3ZSBvbmx5IG5lZWQgYSBuZXcgcnVsZSBhdCBldmVyeSBtdWx0aXBsZSBvZiAxMC4gIFRleHQgaW4KKyAgICAgICAgICAgICAgIC8vIGJhY2tldHMgaXMgb21pdHRlZCBpZiB0aGUgdmFsdWUgYmVpbmcgZm9ybWF0dGVkIGlzIGFuCisgICAgICAgICAgICAgICAvLyBldmVuIG11bHRpcGxlIG9mIDEwLgorICAgICAgICArICIgICAgMjA6IHR3ZW50eVstPj5dO1xuIgorICAgICAgICArICIgICAgMzA6IHRoaXJ0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNDA6IGZvcnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDogZmlmdHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzaXh0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNzA6IHNldmVudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBlaWdodHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBuaW5ldHlbLT4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIGJlZ2lubmluZyBhdCAxMDAsIHdlIGNhbiB1c2UgPDwgdG8gbWFyayB0aGUgcG9zaXRpb24gd2hlcmUKKyAgICAgICAgICAgICAgIC8vIHRoZSByZXN1bHQgb2YgZm9ybWF0dGluZyB0aGUgbXVsdGlwbGUgb2YgMTAwIGlzIHRvIGJlCisgICAgICAgICAgICAgICAvLyBpbnNlcnRlZC4gIE5vdGljZSBhbHNvIHRoYXQgdGhlIG1lYW5pbmcgb2YgPj4gaGFzIHNoaWZ0ZWQ6CisgICAgICAgICAgICAgICAvLyBoZXJlLCBpdCByZWZlcnMgdG8gYm90aCB0aGUgb25lcyBwbGFjZSBhbmQgdGhlIHRlbnMgcGxhY2UuCisgICAgICAgICAgICAgICAvLyBUaGUgbWVhbmluZ3Mgb2YgdGhlIDw8IGFuZCA+PiB0b2tlbnMgZGVwZW5kIG9uIHRoZSBiYXNlIHZhbHVlCisgICAgICAgICAgICAgICAvLyBvZiB0aGUgcnVsZS4gIEEgcnVsZSdzIGRpdmlzb3IgaXMgKHVzdWFsbHkpIHRoZSBoaWdoZXN0CisgICAgICAgICAgICAgICAvLyBwb3dlciBvZiAxMCB0aGF0IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgcnVsZSdzIGJhc2UKKyAgICAgICAgICAgICAgIC8vIHZhbHVlLiAgVGhlIHZhbHVlIGJlaW5nIGZvcm1hdHRlZCBpcyBkaXZpZGVkIGJ5IHRoZSBydWxlJ3MKKyAgICAgICAgICAgICAgIC8vIGRpdmlzb3IsIGFuZCB0aGUgaW50ZWdyYWwgcXVvdGllbnQgaXMgdXNlZCB0byBnZXQgdGhlIHRleHQKKyAgICAgICAgICAgICAgIC8vIGZvciA8PCwgd2hpbGUgdGhlIHJlbWFpbmRlciBpcyB1c2VkIHRvIHByb2R1Y2UgdGhlIHRleHQKKyAgICAgICAgICAgICAgIC8vIGZvciA+Pi4gIEFnYWluLCB0ZXh0IGluIGJyYWNrZXRzIGlzIG9taXR0ZWQgaWYgdGhlIHZhbHVlCisgICAgICAgICAgICAgICAvLyBiZWluZyBmb3JtYXR0ZWQgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiB0aGUgcnVsZSdzIGRpdmlzb3IKKyAgICAgICAgICAgICAgIC8vIChpbiB0aGlzIGNhc2UsIGFuIGV2ZW4gbXVsdGlwbGUgb2YgMTAwKQorICAgICAgICArICIgICAgMTAwOiA8PCBodW5kcmVkWyA+Pl07XG4iCisgICAgICAgICAgICAgICAvLyBUaGUgcnVsZXMgZm9yIHRoZSBoaWdoZXIgbnVtYmVycyB3b3JrIHRoZSBzYW1lIHdheSBhcyB0aGUKKyAgICAgICAgICAgICAgIC8vIHJ1bGUgZm9yIDEwMDogQWdhaW4sIHRoZSA8PCBhbmQgPj4gdG9rZW5zIGRlcGVuZCBvbiB0aGUKKyAgICAgICAgICAgICAgIC8vIHJ1bGUncyBkaXZpc29yLCB3aGljaCBmb3IgYWxsIHRoZXNlIHJ1bGVzIGlzIGFsc28gdGhlIHJ1bGUncworICAgICAgICAgICAgICAgLy8gYmFzZSB2YWx1ZS4gIFRvIGdyb3VwIGJ5IHRob3VzYW5kLCB3ZSBzaW1wbHkgZG9uJ3QgaGF2ZSBhbnkKKyAgICAgICAgICAgICAgIC8vIHJ1bGVzIGJldHdlZW4gMSwwMDAgYW5kIDEsMDAwLDAwMC4KKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCB0cmlsbGlvblsgPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gb3ZlcmZsb3cgcnVsZS4gIFRoaXMgcnVsZSBzcGVjaWZpZXMgdGhhdCB2YWx1ZXMgb2YgYQorICAgICAgICAgICAgICAgLy8gcXVhZHJpbGxpb24gb3IgbW9yZSBhcmUgc2hvd24gaW4gbnVtZXJhbHMgcmF0aGVyIHRoYW4gd29yZHMuCisgICAgICAgICAgICAgICAvLyBUaGUgPT0gdG9rZW4gbWVhbnMgdG8gZm9ybWF0ICh3aXRoIG5ldyBydWxlcykgdGhlIHZhbHVlCisgICAgICAgICAgICAgICAvLyBiZWluZyBmb3JtYXR0ZWQgYnkgdGhpcyBydWxlIGFuZCBwbGFjZSB0aGUgcmVzdWx0IHdoZXJlCisgICAgICAgICAgICAgICAvLyB0aGUgPT0gaXMuICBUaGUgIywjIzAgaW5zaWRlIHRoZSA9PSBzaWducyBpcyBhCisgICAgICAgICAgICAgICAvLyBEZWNpbWFsRm9ybWF0IHBhdHRlcm4uICBJdCBzcGVjaWZpZXMgdGhhdCB0aGUgdmFsdWUgc2hvdWxkCisgICAgICAgICAgICAgICAvLyBiZSBmb3JtYXR0ZWQgd2l0aCBhIERlY2ltYWxGb3JtYXQgb2JqZWN0LCBhbmQgdGhhdCBpdAorICAgICAgICAgICAgICAgLy8gc2hvdWxkIGJlIGZvcm1hdHRlZCB3aXRoIG5vIGRlY2ltYWwgcGxhY2VzLCBhdCBsZWFzdCBvbmUKKyAgICAgICAgICAgICAgIC8vIGRpZ2l0LCBhbmQgYSB0aG91c2FuZHMgc2VwYXJhdG9yLgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIgorCisgICAgICAgIC8vIFRoaXMgcnVsZSBzZXQgZm9ybWF0cyBudW1iZXJzIGJldHdlZW4gMSwwMDAgYW5kIDksOTk5IHNvbWV3aGF0CisgICAgICAgIC8vIGRpZmZlcmVudGx5OiBJZiB0aGUgaHVuZHJlZHMgZGlnaXQgaXMgbm90IHplcm8sIHRoZSBmaXJzdCB0d28KKyAgICAgICAgLy8gZGlnaXRzIGFyZSB0cmVhdGVkIGFzIGEgbnVtYmVyIG9mIGh1bmRyZWRzLiAgRm9yIGV4YW1wbGUsIDIsMTk3CisgICAgICAgIC8vIHdvdWxkIGNvbWUgb3V0IGFzICJ0d2VudHktb25lIGh1bmRyZWQgbmluZXR5LXNldmVuLiIKKyAgICAgICAgKyAiJWFsdC10ZWVuczpcbiIKKyAgICAgICAgICAgICAgIC8vIGp1c3QgdXNlICVzaW1wbGlmaWVkIHRvIGZvcm1hdCB2YWx1ZXMgYmVsb3cgMSwwMDAKKyAgICAgICAgKyAiICAgID0lc2ltcGxpZmllZD07XG4iCisgICAgICAgICAgICAgICAvLyB2YWx1ZXMgYmV0d2VlbiAxLDAwMCBhbmQgOSw5OTkgYXJlIGRlbGVnYXRlZCB0byAlJWFsdC1odW5kcmVkcworICAgICAgICAgICAgICAgLy8gZm9yIGZvcm1hdHRpbmcuICBUaGUgPiBhZnRlciAiMTAwMCIgZGVjcmVhc2VzIHRoZSBleHBvbmVudAorICAgICAgICAgICAgICAgLy8gb2YgdGhlIHJ1bGUncyByYWRpeCBieSBvbmUsIGNhdXNpbmcgdGhlIHJ1bGUncyBkaXZpc29yCisgICAgICAgICAgICAgICAvLyB0byBiZSAxMDAgaW5zdGVhZCBvZiAxLDAwMC4gIFRoaXMgY2F1c2VzIHRoZSBmaXJzdCBUV08KKyAgICAgICAgICAgICAgIC8vIGRpZ2l0cyBvZiB0aGUgbnVtYmVyLCBpbnN0ZWFkIG9mIGp1c3QgdGhlIGZpcnN0IGRpZ2l0LAorICAgICAgICAgICAgICAgLy8gdG8gYmUgc2VudCB0byAlJWFsdC1odW5kcmVkcworICAgICAgICArICIgICAgMTAwMD46IDwlJWFsdC1odW5kcmVkczxbID4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgb2YgMTAsMDAwIGFuZCBtb3JlLCB3ZSBhZ2FpbiBqdXN0IHVzZSAlc2ltcGxpZmllZAorICAgICAgICArICIgICAgMTAsMDAwOiA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICAvLyBUaGlzIHJ1bGUgc2V0IHVzZXMgc29tZSBvYnNjdXJlIHZvb2RvbyBvZiB0aGUgZGVzY3JpcHRpb24gbGFuZ3VhZ2UKKyAgICAgICAgLy8gdG8gZm9ybWF0IHRoZSBmaXJzdCB0d28gZGlnaXRzIG9mIGEgdmFsdWUgaW4gdGhlIHRob3VzYW5kcy4KKyAgICAgICAgLy8gVGhlIHJ1bGUgYXQgMTAgZm9ybWF0cyB0aGUgZmlyc3QgdHdvIGRpZ2l0cyBhcyBhIG11bHRpcGxlIG9mIDEsMDAwCisgICAgICAgIC8vIGFuZCB0aGUgcnVsZSBhdCAxMSBmb3JtYXRzIHRoZSBmaXJzdCB0d28gZGlnaXRzIGFzIGEgbXVsdGlwbGUgb2YKKyAgICAgICAgLy8gMTAwLiAgVGhpcyB3b3JrcyBiZWNhdXNlIG9mIHNvbWV0aGluZyBrbm93biBhcyB0aGUgInJvbGxiYWNrIHJ1bGUiOgorICAgICAgICAvLyBpZiB0aGUgcnVsZSBhcHBsaWNhYmxlIHRvIHRoZSB2YWx1ZSBiZWluZyBmb3JtYXR0ZWQgaGFzIHR3bworICAgICAgICAvLyBzdWJzdGl0dXRpb25zLCB0aGUgdmFsdWUgYmVpbmcgZm9ybWF0dGVkIGlzIGFuIGV2ZW4gbXVsdGlwbGUgb2YKKyAgICAgICAgLy8gdGhlIHJ1bGUncyBkaXZpc29yLCBhbmQgdGhlIHJ1bGUncyBiYXNlIHZhbHVlIElTTidUIGFuIGV2ZW4gbXVsdGlwbGUKKyAgICAgICAgLy8gaWYgdGhlIHJ1bGUncyBkaXZpc29yLCB0aGVuIHRoZSBydWxlIHRoYXQgcHJlY2VkZXMgdGhpcyBvbmUgaW4gdGhlCisgICAgICAgIC8vIGxpc3QgaXMgdXNlZCBpbnN0ZWFkLiAgKFRoZSBbXSBub3RhdGlvbiBpcyBpbXBsZW1lbnRlZCBpbnRlcm5hbGx5CisgICAgICAgIC8vIHVzaW5nIHRoaXMgbm90YXRpb246IGEgcnVsZSBjb250YWluaW5nIFtdIGlzIHNwbGl0IGludG8gdHdvIHJ1bGVzLAorICAgICAgICAvLyBhbmQgdGhlIHJpZ2h0IG9uZSBpcyBjaG9zZW4gdXNpbmcgdGhlIHJvbGxiYWNrIHJ1bGUuKSBJbiB0aGlzIGNhc2UsCisgICAgICAgIC8vIGl0IG1lYW5zIHRoYXQgaWYgdGhlIGZpcnN0IHR3byBkaWdpdHMgYXJlIGFuIGV2ZW4gbXVsdGlwbGUgb2YgMTAsCisgICAgICAgIC8vIHRoZXkncmUgZm9ybWF0dGVkIHdpdGggdGhlIDEwIHJ1bGUgKGNvbnRhaW5pbmcgInRob3VzYW5kIiksIGFuZCBpZgorICAgICAgICAvLyB0aGV5J3JlIG5vdCwgdGhleSdyZSBmb3JtYXR0ZWQgd2l0aCB0aGUgMTEgcnVsZSAoY29udGFpbmluZworICAgICAgICAvLyAiaHVuZHJlZCIpLiAgJSVlbXB0eSBpcyBhIGhhY2sgdG8gY2F1c2UgdGhlIHJvbGxiYWNrIHJ1bGUgdG8gYmUKKyAgICAgICAgLy8gaW52b2tlZDogaXQgbWFrZXMgdGhlIDExIHJ1bGUgaGF2ZSB0d28gc3Vic3RpdHV0aW9ucywgZXZlbiB0aG91Z2gKKyAgICAgICAgLy8gdGhlIHNlY29uZCBzdWJzdGl0dXRpb24gKGNhbGxpbmcgJSVlbXB0eSkgZG9lc24ndCBhY3R1YWxseSBkbworICAgICAgICAvLyBhbnl0aGluZy4KKyAgICAgICAgKyAiJSVhbHQtaHVuZHJlZHM6XG4iCisgICAgICAgICsgIiAgICAwOiBTSE9VTEQgTkVWRVIgR0VUIEhFUkUhO1xuIgorICAgICAgICArICIgICAgMTA6IDwlc2ltcGxpZmllZDwgdGhvdXNhbmQ7XG4iCisgICAgICAgICsgIiAgICAxMTogPSVzaW1wbGlmaWVkPSBodW5kcmVkPiUlZW1wdHk+O1xuIgorICAgICAgICArICIlJWVtcHR5OlxuIgorICAgICAgICArICIgICAgMDo7IgorCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgaXMgdGhlIHNhbWUgYXMgJXNpbXBsaWZpZWQsIGV4Y2VwdCB0aGF0IGl0IGZvcm1hdHMKKyAgICAgICAgLy8gdGhlIHZhbHVlIGFzIGFuIG9yZGluYWwgbnVtYmVyOiAyMzQgaXMgZm9ybWF0dGVkIGFzICJ0d28gaHVuZHJlZAorICAgICAgICAvLyB0aGlydHktZm91cnRoIi4gIE5vdGljZSB0aGUgY2FsbHMgdG8gXnNpbXBsaWZpZWQ6IHdlIGhhdmUgdG8KKyAgICAgICAgLy8gY2FsbCAlc2ltcGxpZmllZCB0byBhdm9pZCBnZXR0aW5nICJzZWNvbmQgaHVuZHJlZCB0aGlydHktZm91cnRoLiIKKyAgICAgICAgKyAiJW9yZGluYWw6XG4iCisgICAgICAgICsgIiAgICB6ZXJvdGg7IGZpcnN0OyBzZWNvbmQ7IHRoaXJkOyBmb3VydGg7IGZpZnRoOyBzaXh0aDsgc2V2ZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBlaWdodGg7IG5pbnRoO1xuIgorICAgICAgICArICIgICAgdGVudGg7IGVsZXZlbnRoOyB0d2VsZnRoOyB0aGlydGVlbnRoOyBmb3VydGVlbnRoO1xuIgorICAgICAgICArICIgICAgICAgIGZpZnRlZW50aDsgc2l4dGVlbnRoOyBzZXZlbnRlZW50aDsgZWlnaHRlZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBuaW5ldGVlbnRoO1xuIgorICAgICAgICArICIgICAgdHdlbnRpZXRoOyB0d2VudHktPj47XG4iCisgICAgICAgICsgIiAgICAzMDogdGhpcnRpZXRoOyB0aGlydHktPj47XG4iCisgICAgICAgICsgIiAgICA0MDogZm9ydGlldGg7IGZvcnR5LT4+O1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnRpZXRoOyBmaWZ0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzaXh0aWV0aDsgc2l4dHktPj47XG4iCisgICAgICAgICsgIiAgICA3MDogc2V2ZW50aWV0aDsgc2V2ZW50eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBlaWdodGlldGg7IGVpZ2h0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBuaW5ldGlldGg7IG5pbmV0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPCVzaW1wbGlmaWVkPCBodW5kcmVkdGg7IDwlc2ltcGxpZmllZDwgaHVuZHJlZCA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDwlc2ltcGxpZmllZDwgdGhvdXNhbmR0aDsgPCVzaW1wbGlmaWVkPCB0aG91c2FuZCA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPCVzaW1wbGlmaWVkPCBtaWxsaW9udGg7IDwlc2ltcGxpZmllZDwgbWlsbGlvbiA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDA6IDwlc2ltcGxpZmllZDwgYmlsbGlvbnRoO1xuIgorICAgICAgICArICIgICAgICAgIDwlc2ltcGxpZmllZDwgYmlsbGlvbiA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8JXNpbXBsaWZpZWQ8IHRyaWxsaW9udGg7XG4iCisgICAgICAgICsgIiAgICAgICAgPCVzaW1wbGlmaWVkPCB0cmlsbGlvbiA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTsiCisKKyAgICAgICAgLy8gJWRlZmF1bHQgaXMgYSBtb3JlIGVsYWJvcmF0ZSBmb3JtIG9mICVzaW1wbGlmaWVkOyAgSXQgaXMgYmFzaWNhbGx5CisgICAgICAgIC8vIHRoZSBzYW1lLCBleGNlcHQgdGhhdCBpdCBpbnRyb2R1Y2VzICJhbmQiIGJlZm9yZSB0aGUgb25lcyBkaWdpdAorICAgICAgICAvLyB3aGVuIGFwcHJvcHJpYXRlIChiYXNpY2FsbHksIGJldHdlZW4gdGhlIHRlbnMgYW5kIG9uZXMgZGlnaXRzKSBhbmQKKyAgICAgICAgLy8gc2VwYXJhdGVzIHRoZSB0aG91c2FuZHMgZ3JvdXBzIHdpdGggY29tbWFzIGluIHZhbHVlcyBvdmVyIDEwMCwwMDAuCisgICAgICAgICsgIiVkZWZhdWx0OlxuIgorICAgICAgICAgICAgICAgLy8gbmVnYXRpdmUtbnVtYmVyIGFuZCBmcmFjdGlvbiBydWxlcy4gIFRoZXNlIGFyZSB0aGUgc2FtZQorICAgICAgICAgICAgICAgLy8gYXMgdGhvc2UgZm9yICVzaW1wbGlmaWVkLCBidXQgYXZlIHRvIGJlIHN0YXRlZCBoZXJlIHRvbworICAgICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGlzIGlzIGFuIGVudHJ5IHBvaW50CisgICAgICAgICsgIiAgICAteDogbWludXMgPj47XG4iCisgICAgICAgICsgIiAgICB4Lng6IDw8IHBvaW50ID4+O1xuIgorICAgICAgICAgICAgICAgLy8ganVzdCB1c2UgJXNpbXBsaWZpZWQgZm9yIHZhbHVlcyBiZWxvdyAxMDAKKyAgICAgICAgKyAiICAgID0lc2ltcGxpZmllZD07XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIGZyb20gMTAwIHRvIDksOTk5IHVzZSAlJWFuZCB0byBkZWNpZGUgd2hldGhlciBvcgorICAgICAgICAgICAgICAgLy8gbm90IHRvIGludGVycG9zZSB0aGUgImFuZCIKKyAgICAgICAgKyAiICAgIDEwMDogPDwgaHVuZHJlZFsgPiUlYW5kPl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiA8PCB0aG91c2FuZFsgPiUlYW5kPl07XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIG9mIDEwMCwwMDAgYW5kIHVwLCB1c2UgJSVjb21tYXMgdG8gaW50ZXJwb3NlIHRoZQorICAgICAgICAgICAgICAgLy8gY29tbWFzIGluIHRoZSByaWdodCBwbGFjZXMgKGFuZCBhbHNvIHRvIGludGVycG9zZSB0aGUgImFuZCIpCisgICAgICAgICsgIiAgICAxMDAsMDAwPj46IDw8IHRob3VzYW5kWz4lJWNvbW1hcz5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8PCBtaWxsaW9uWz4lJWNvbW1hcz5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMDogPDwgYmlsbGlvbls+JSVjb21tYXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCB0cmlsbGlvbls+JSVjb21tYXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgLy8gaWYgdGhlIHZhbHVlIHBhc3NlZCB0byB0aGlzIHJ1bGUgc2V0IGlzIGdyZWF0ZXIgdGhhbiAxMDAsIGRvbid0CisgICAgICAgIC8vIGFkZCB0aGUgImFuZCI7IGlmIGl0J3MgbGVzcyB0aGFuIDEwMCwgYWRkICJhbmQiIGJlZm9yZSB0aGUgbGFzdAorICAgICAgICAvLyBkaWdpdHMKKyAgICAgICAgKyAiJSVhbmQ6XG4iCisgICAgICAgICsgIiAgICBhbmQgPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIHRvIHBsYWNlIHRoZSBjb21tYXMKKyAgICAgICAgKyAiJSVjb21tYXM6XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIGJlbG93IDEwMCwgYWRkICJhbmQiICh0aGUgYXBvc3Ryb3BoZSBhdCB0aGUKKyAgICAgICAgICAgICAgIC8vIGJlZ2lubmluZyBpcyBpZ25vcmVkLCBidXQgY2F1c2VzIHRoZSBzcGFjZSB0aGF0IGZvbGxvd3MgaXQKKyAgICAgICAgICAgICAgIC8vIHRvIGJlIHNpZ25pZmljYW50OiB0aGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBydWxlcworICAgICAgICAgICAgICAgLy8gY2FsbGluZyAlJWNvbW1hcyBkb24ndCBwdXQgYSBzcGFjZSBiZWZvcmUgaXQpCisgICAgICAgICsgIiAgICAnIGFuZCA9JWRlZmF1bHQ9O1xuIgorICAgICAgICAgICAgICAgLy8gcHV0IGEgY29tbWEgYWZ0ZXIgdGhlIHRob3VzYW5kcyAob3Igd2hhdGV2ZXIgcHJlY2VkZWQgdGhlCisgICAgICAgICAgICAgICAvLyBodW5kcmVkcykKKyAgICAgICAgKyAiICAgIDEwMDogLCA9JWRlZmF1bHQ9O1xuIgorICAgICAgICAgICAgICAgLy8gcHV0IGEgY29tbWEgYWZ0ZXIgdGhlIG1pbGxpb25zIChvciB3aGF0ZXZlciBwcmVjZWRlcyB0aGUKKyAgICAgICAgICAgICAgIC8vIHRob3VzYW5kcykKKyAgICAgICAgKyAiICAgIDEwMDA6ICwgPCVkZWZhdWx0PCB0aG91c2FuZCwgPiVkZWZhdWx0PjtcbiIKKyAgICAgICAgICAgICAgIC8vIGFuZCBzbyBvbi4uLgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiAsID0lZGVmYXVsdD07IgorICAgICAgICAvLyAlJWxlbmllbnQtcGFyc2UgaXNuJ3QgcmVhbGx5IGEgc2V0IG9mIG51bWJlciBmb3JtYXR0aW5nIHJ1bGVzOworICAgICAgICAvLyBpdCdzIGEgc2V0IG9mIGNvbGxhdGlvbiBydWxlcy4gIExlbmllbnQtcGFyc2UgbW9kZSB1c2VzIGEgQ29sbGF0b3IKKyAgICAgICAgLy8gb2JqZWN0IHRvIGNvbXBhcmUgZnJhZ21lbnRzIG9mIHRoZSB0ZXh0IGJlaW5nIHBhcnNlZCB0byB0aGUgdGV4dAorICAgICAgICAvLyBpbiB0aGUgcnVsZXMsIGFsbG93aW5nIG1vcmUgbGVld2F5IGluIHRoZSBtYXRjaGluZyB0ZXh0LiAgVGhpcyBzZXQKKyAgICAgICAgLy8gb2YgcnVsZXMgdGVsbHMgdGhlIGZvcm1hdHRlciB0byBpZ25vcmUgY29tbWFzIHdoZW4gcGFyc2luZyAoaXQKKyAgICAgICAgLy8gYWxyZWFkeSBpZ25vcmVzIHNwYWNlcywgd2hpY2ggaXMgd2h5IHdlIHJlZmVyIHRvIHRoZSBzcGFjZTsgaXQgYWxzbworICAgICAgICAvLyBpZ25vcmVzIGh5cGhlbnMsIG1ha2luZyAidHdlbnR5IG9uZSIgYW5kICJ0d2VudHktb25lIiBwYXJzZQorICAgICAgICAvLyBpZGVudGljYWxseSkKKyAgICAgICAgKyAiJSVsZW5pZW50LXBhcnNlOlxuIgorICAgICAgICArICIgICAgJiAnICcgLCAnLCcgO1xuIjsKKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBVLksuIEVuZ2xpc2guICBVLksuIEVuZ2xpc2ggaGFzIG9uZSBzaWduaWZpY2FudAorICAgICAqIGRpZmZlcmVuY2UgZnJvbSBVLlMuIEVuZ2xpc2g6IHRoZSBuYW1lcyBmb3IgdmFsdWVzIG9mIDEsMDAwLDAwMCwwMDAKKyAgICAgKiBhbmQgaGlnaGVyLiAgSW4gQW1lcmljYW4gRW5nbGlzaCwgZWFjaCBzdWNjZXNzaXZlICItaWxsaW9uIiBpcyAxLDAwMAorICAgICAqIHRpbWVzIGdyZWF0ZXIgdGhhbiB0aGUgcHJlY2VkaW5nIG9uZTogMSwwMDAsMDAwLDAwMCBpcyAib25lIGJpbGxpb24iCisgICAgICogYW5kIDEsMDAwLDAwMCwwMDAsMDAwIGlzICJvbmUgdHJpbGxpb24uIiAgSW4gQnJpdGlzaCBFbmdsaXNoLCBlYWNoCisgICAgICogc3VjY2Vzc2l2ZSAiLWlsbGlvbiIgaXMgb25lIG1pbGxpb24gdGltZXMgZ3JlYXRlciB0aGFuIHRoZSBvbmUgYmVmb3JlOgorICAgICAqICJvbmUgYmlsbGlvbiIgaXMgMSwwMDAsMDAwLDAwMCwwMDAgKG9yIHdoYXQgQW1lcmljYW5zIHdvdWxkIGNhbGwgYQorICAgICAqICJ0cmlsbGlvbiIpLCBhbmQgIm9uZSB0cmlsbGlvbiIgaXMgMSwwMDAsMDAwLDAwMCwwMDAsMDAwLDAwMC4KKyAgICAgKiAxLDAwMCwwMDAsMDAwIGluIEJyaXRpc2ggRW5nbGlzaCBpcyAib25lIHRob3VzYW5kIG1pbGxpb24uIiAgKFRoaXMKKyAgICAgKiB2YWx1ZSBpcyBzb21ldGltZXMgY2FsbGVkIGEgIm1pbGxpYXJkLCIgYnV0IHRoaXMgd29yZCBzZWVtcyB0byBoYXZlCisgICAgICogZmFsbGVuIGludG8gZGlzdXNlLikKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyB1a0VuZ2xpc2ggPQorICAgICAgICAiJXNpbXBsaWZpZWQ6XG4iCisgICAgICAgICsgIiAgICAteDogbWludXMgPj47XG4iCisgICAgICAgICsgIiAgICB4Lng6IDw8IHBvaW50ID4+O1xuIgorICAgICAgICArICIgICAgemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7IHNldmVuOyBlaWdodDsgbmluZTtcbiIKKyAgICAgICAgKyAiICAgIHRlbjsgZWxldmVuOyB0d2VsdmU7IHRoaXJ0ZWVuOyBmb3VydGVlbjsgZmlmdGVlbjsgc2l4dGVlbjtcbiIKKyAgICAgICAgKyAiICAgICAgICBzZXZlbnRlZW47IGVpZ2h0ZWVuOyBuaW5ldGVlbjtcbiIKKyAgICAgICAgKyAiICAgIDIwOiB0d2VudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0aGlydHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBmb3J0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA2MDogc2l4dHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBzZXZlbnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA4MDogZWlnaHR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDogbmluZXR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IDw8IGh1bmRyZWRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiVhbHQtdGVlbnM6XG4iCisgICAgICAgICsgIiAgICA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICArICIgICAgMTAwMD46IDwlJWFsdC1odW5kcmVkczxbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMDogPSVzaW1wbGlmaWVkPTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvblsgPiVzaW1wbGlmaWVkPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgYmlsbGlvblsgPiVzaW1wbGlmaWVkPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiUlYWx0LWh1bmRyZWRzOlxuIgorICAgICAgICArICIgICAgMDogU0hPVUxEIE5FVkVSIEdFVCBIRVJFITtcbiIKKyAgICAgICAgKyAiICAgIDEwOiA8JXNpbXBsaWZpZWQ8IHRob3VzYW5kO1xuIgorICAgICAgICArICIgICAgMTE6ID0lc2ltcGxpZmllZD0gaHVuZHJlZD4lJWVtcHR5PjtcbiIKKyAgICAgICAgKyAiJSVlbXB0eTpcbiIKKyAgICAgICAgKyAiICAgIDA6OyIKKyAgICAgICAgKyAiJW9yZGluYWw6XG4iCisgICAgICAgICsgIiAgICB6ZXJvdGg7IGZpcnN0OyBzZWNvbmQ7IHRoaXJkOyBmb3VydGg7IGZpZnRoOyBzaXh0aDsgc2V2ZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBlaWdodGg7IG5pbnRoO1xuIgorICAgICAgICArICIgICAgdGVudGg7IGVsZXZlbnRoOyB0d2VsZnRoOyB0aGlydGVlbnRoOyBmb3VydGVlbnRoO1xuIgorICAgICAgICArICIgICAgICAgIGZpZnRlZW50aDsgc2l4dGVlbnRoOyBzZXZlbnRlZW50aDsgZWlnaHRlZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBuaW5ldGVlbnRoO1xuIgorICAgICAgICArICIgICAgdHdlbnRpZXRoOyB0d2VudHktPj47XG4iCisgICAgICAgICsgIiAgICAzMDogdGhpcnRpZXRoOyB0aGlydHktPj47XG4iCisgICAgICAgICsgIiAgICA0MDogZm9ydGlldGg7IGZvcnR5LT4+O1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnRpZXRoOyBmaWZ0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzaXh0aWV0aDsgc2l4dHktPj47XG4iCisgICAgICAgICsgIiAgICA3MDogc2V2ZW50aWV0aDsgc2V2ZW50eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBlaWdodGlldGg7IGVpZ2h0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBuaW5ldGlldGg7IG5pbmV0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPCVzaW1wbGlmaWVkPCBodW5kcmVkdGg7IDwlc2ltcGxpZmllZDwgaHVuZHJlZCA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDwlc2ltcGxpZmllZDwgdGhvdXNhbmR0aDsgPCVzaW1wbGlmaWVkPCB0aG91c2FuZCA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPCVzaW1wbGlmaWVkPCBtaWxsaW9udGg7IDwlc2ltcGxpZmllZDwgbWlsbGlvbiA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8JXNpbXBsaWZpZWQ8IGJpbGxpb250aDtcbiIKKyAgICAgICAgKyAiICAgICAgICA8JXNpbXBsaWZpZWQ8IGJpbGxpb24gPj47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07IgorICAgICAgICArICIlZGVmYXVsdDpcbiIKKyAgICAgICAgKyAiICAgIC14OiBtaW51cyA+PjtcbiIKKyAgICAgICAgKyAiICAgIHgueDogPDwgcG9pbnQgPj47XG4iCisgICAgICAgICsgIiAgICA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICArICIgICAgMTAwOiA8PCBodW5kcmVkWyA+JSVhbmQ+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+JSVhbmQ+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDA+PjogPDwgdGhvdXNhbmRbPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgYmlsbGlvbls+JSVjb21tYXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgKyAiJSVhbmQ6XG4iCisgICAgICAgICsgIiAgICBhbmQgPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgKyAiJSVjb21tYXM6XG4iCisgICAgICAgICsgIiAgICAnIGFuZCA9JWRlZmF1bHQ9O1xuIgorICAgICAgICArICIgICAgMTAwOiAsID0lZGVmYXVsdD07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiAsIDwlZGVmYXVsdDwgdGhvdXNhbmQsID4lZGVmYXVsdD47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6ICwgPSVkZWZhdWx0PTsiCisgICAgICAgICsgIiUlbGVuaWVudC1wYXJzZTpcbiIKKyAgICAgICAgKyAiICAgICYgJyAnICwgJywnIDtcbiI7CisgICAgLy8gQ291bGQgc29tZW9uZSBwbGVhc2UgY29ycmVjdCBtZSBpZiBJJ20gd3JvbmcgYWJvdXQgIm1pbGxpYXJkIiBmYWxsaW5nCisgICAgLy8gaW50byBkaXN1c2UsIG9yIGhhdmUgbWlzc2VkIGFueSBvdGhlciBkZXRhaWxzIG9mIGhvdyBsYXJnZSBudW1iZXJzCisgICAgLy8gYXJlIHJlbmRlcmVkLiAgQWxzbywgY291bGQgc29tZW9uZSBwbGVhc2UgcHJvdmlkZSBtZSB3aXRoIGluZm9ybWF0aW9uCisgICAgLy8gb24gd2hpY2ggb3RoZXIgRW5nbGlzaC1zcGVha2luZyBjb3VudHJpZXMgdXNlIHdoaWNoIHN5c3RlbT8gIFJpZ2h0IG5vdywKKyAgICAvLyBJJ20gYXNzdW1pbmcgdGhhdCB0aGUgVS5TLiBzeXN0ZW0gaXMgdXNlZCBpbiBDYW5hZGEgYW5kIHRoYXQgYWxsIHRoZQorICAgIC8vIG90aGVyIEVuZ2xpc2gtc3BlYWtpbmcgY291bnRyaWVzIGZvbGxvdyB0aGUgQnJpdGlzaCBzeXN0ZW0uICBDYW4KKyAgICAvLyBzb21lb25lIG91dCB0aGVyZSBjb25maXJtIHRoaXM/CisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgU3BhbmlzaC4gIFRoZSBTcGFuaXNoIHJ1bGVzIGFyZSBxdWl0ZSBzaW1pbGFyIHRvCisgICAgICogdGhlIEVuZ2xpc2ggcnVsZXMsIGJ1dCB0aGVyZSBhcmUgc29tZSBpbXBvcnRhbnQgZGlmZmVyZW5jZXM6CisgICAgICogRmlyc3QsIHdlIGhhdmUgdG8gcHJvdmlkZSBzZXBhcmF0ZSBydWxlcyBmb3IgbW9zdCBvZiB0aGUgdHdlbnRpZXMKKyAgICAgKiBiZWNhdXNlIHRoZSBvbmVzIGRpZ2l0IGZyZXF1ZW50bHkgcGlja3MgdXAgYW4gYWNjZW50IG1hcmsgdGhhdCBpdAorICAgICAqIGRvZXNuJ3QgaGF2ZSB3aGVuIHN0YW5kaW5nIGFsb25lLiAgU2Vjb25kLCBlYWNoIG11bHRpcGxlIG9mIDEwMCBoYXMKKyAgICAgKiB0byBiZSBzcGVjaWZpZWQgc2VwYXJhdGVseSBiZWNhdXNlIHRoZSBtdWx0aXBsaWVyIG9uIDEwMCB2ZXJ5IG9mdGVuCisgICAgICogY2hhbmdlcyBmb3JtIGluIHRoZSBjb250cmFjdGlvbjogNTAwIGlzICJxdWluaWVudG9zLCIgbm90CisgICAgICogImNpbmNvY2llbnRvcy4iICBJbiBhZGRpdGlvbiwgdGhlIHdvcmQgZm9yIDEwMCBpcyAiY2llbiIgd2hlbgorICAgICAqIHN0YW5kaW5nIGFsb25lLCBidXQgY2hhbmdlcyB0byAiY2llbnRvIiB3aGVuIGZvbGxvd2VkIGJ5IG1vcmUgZGlnaXRzLgorICAgICAqIFRoZXJlIGFsc28gc29tZSBvdGhlciBkaWZmZXJlbmNlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBzcGFuaXNoID0KKyAgICAgICAgLy8gbmVnYXRpdmUtbnVtYmVyIGFuZCBmcmFjdGlvbiBydWxlcworICAgICAgICAiLXg6IG1lbm9zID4+O1xuIgorICAgICAgICArICJ4Lng6IDw8IHB1bnRvID4+O1xuIgorICAgICAgICAvLyB3b3JkcyBmb3IgdmFsdWVzIGZyb20gMCB0byAxOQorICAgICAgICArICJjZXJvOyB1bm87IGRvczsgdHJlczsgY3VhdHJvOyBjaW5jbzsgc2Vpczsgc2lldGU7IG9jaG87IG51ZXZlO1xuIgorICAgICAgICArICJkaWV6OyBvbmNlOyBkb2NlOyB0cmVjZTsgY2F0b3JjZTsgcXVpbmNlOyBkaWVjaXNcdTAwZTlpcztcbiIKKyAgICAgICAgKyAiICAgIGRpZWNpc2lldGU7IGRpZWNpb2NobzsgZGllY2ludWV2ZTtcbiIKKyAgICAgICAgLy8gd29yZHMgZm9yIHZhbHVlcyBmcm9tIDIwIHRvIDI5IChuZWNlc3NhcnkgYmVjYXVzZSB0aGUgb25lcyBkaWdpdAorICAgICAgICAvLyBvZnRlbiBwaWNrcyB1cCBhbiBhY2NlbnQgbWFyayBpdCBkb2Vzbid0IGhhdmUgd2hlbiBzdGFuZGluZyBhbG9uZSkKKyAgICAgICAgKyAidmVpbnRlOyB2ZWludGl1bm87IHZlaW50aWRcdTAwZjNzOyB2ZWludGl0clx1MDBlOXM7IHZlaW50aWN1YXRybztcbiIKKyAgICAgICAgKyAiICAgIHZlaW50aWNpbmNvOyB2ZWludGlzXHUwMGU5aXM7IHZlaW50aXNpZXRlOyB2ZWludGlvY2hvO1xuIgorICAgICAgICArICIgICAgdmVpbnRpbnVldmU7XG4iCisgICAgICAgIC8vIHdvcmRzIGZvciBtdWx0aXBsZXMgb2YgMTAgKG5vdGljZSB0aGF0IHRoZSB0ZW5zIGRpZ2l0IGlzIHNlcGFyYXRlZAorICAgICAgICAvLyBmcm9tIHRoZSBvbmVzIGRpZ2l0IGJ5IHRoZSB3b3JkICJ5Ii4pCisgICAgICAgICsgIjMwOiB0cmVpbnRhWyB5ID4+XTtcbiIKKyAgICAgICAgKyAiNDA6IGN1YXJlbnRhWyB5ID4+XTtcbiIKKyAgICAgICAgKyAiNTA6IGNpbmN1ZW50YVsgeSA+Pl07XG4iCisgICAgICAgICsgIjYwOiBzZXNlbnRhWyB5ID4+XTtcbiIKKyAgICAgICAgKyAiNzA6IHNldGVudGFbIHkgPj5dO1xuIgorICAgICAgICArICI4MDogb2NoZW50YVsgeSA+Pl07XG4iCisgICAgICAgICsgIjkwOiBub3ZlbnRhWyB5ID4+XTtcbiIKKyAgICAgICAgLy8gMTAwIGJ5IGl0c2VsZiBpcyAiY2llbiwiIGJ1dCAxMDAgZm9sbG93ZWQgYnkgc29tZXRoaW5nIGlzICJjaW5ldG8iCisgICAgICAgICsgIjEwMDogY2llbjtcbiIKKyAgICAgICAgKyAiMTAxOiBjaWVudG8gPj47XG4iCisgICAgICAgIC8vIHdvcmRzIGZvciBtdWx0aXBsZXMgb2YgMTAwIChtdXN0IGJlIHN0YXRlZCBiZWNhdXNlIHRoZXkncmUKKyAgICAgICAgLy8gcmFyZWx5IHNpbXBsZSBjb25jYXRlbmF0aW9ucykKKyAgICAgICAgKyAiMjAwOiBkb3NjaWVudG9zWyA+Pl07XG4iCisgICAgICAgICsgIjMwMDogdHJlc2NpZW50b3NbID4+XTtcbiIKKyAgICAgICAgKyAiNDAwOiBjdWF0cm9jaWVudG9zWyA+Pl07XG4iCisgICAgICAgICsgIjUwMDogcXVpbmllbnRvc1sgPj5dO1xuIgorICAgICAgICArICI2MDA6IHNlaXNjaWVudG9zWyA+Pl07XG4iCisgICAgICAgICsgIjcwMDogc2V0ZWNpZW50b3NbID4+XTtcbiIKKyAgICAgICAgKyAiODAwOiBvY2hvY2llbnRvc1sgPj5dO1xuIgorICAgICAgICArICI5MDA6IG5vdmVjaWVudG9zWyA+Pl07XG4iCisgICAgICAgIC8vIGZvciAxLDAwMCwgdGhlIG11bHRpcGxpZXIgb24gIm1pbCIgaXMgb21pdHRlZDogMiwwMDAgaXMgImRvcyBtaWwsIgorICAgICAgICAvLyBidXQgMSwwMDAgaXMganVzdCAibWlsLiIKKyAgICAgICAgKyAiMTAwMDogbWlsWyA+Pl07XG4iCisgICAgICAgICsgIjIwMDA6IDw8IG1pbFsgPj5dO1xuIgorICAgICAgICAvLyAxLDAwMCwwMDAgaXMgInVuIG1pbGxvbiwiIG5vdCAidW5vIG1pbGxvbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwOiB1biBtaWxsXHUwMGYzblsgPj5dO1xuIgorICAgICAgICArICIyLDAwMCwwMDA6IDw8IG1pbGxcdTAwZjNuWyA+Pl07XG4iCisgICAgICAgIC8vIG92ZXJmbG93IHJ1bGUKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMDogPSMsIyMwPSAoaW5jb21wbGV0ZSBkYXRhKTsiOworICAgIC8vIFRoZSBTcGFuaXNoIHJ1bGVzIGFyZSBpbmNvbXBsZXRlLiAgSSdtIG1pc3NpbmcgaW5mb3JtYXRpb24gb24gbmVnYXRpdmUKKyAgICAvLyBudW1iZXJzIGFuZCBudW1iZXJzIHdpdGggZnJhY3Rpb25hbCBwYXJ0cy4gIEkgYWxzbyBkb24ndCBoYXZlCisgICAgLy8gaW5mb3JtYXRpb24gb24gbnVtYmVycyBoaWdoZXIgdGhhbiB0aGUgbWlsbGlvbnMKKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBGcmVuY2guICBGcmVuY2ggYWRkcyBzb21lIGludGVyZXN0aW5nIHF1aXJrcyBvZiBpdHMKKyAgICAgKiBvd246IDEpIFRoZSB3b3JkICJldCIgaXMgaW50ZXJwb3NlZCBiZXR3ZWVuIHRoZSB0ZW5zIGFuZCBvbmVzIGRpZ2l0cywKKyAgICAgKiBidXQgb25seSBpZiB0aGUgb25lcyBkaWdpdCBpZiAxOiAyMCBpcyAidmluZ3QsIiBhbmQgMiBpcyAidmluZ3QtZGV1eCwiCisgICAgICogYnV0IDIxIGlzICJ2aW5ndC1ldC11bi4iICAyKSAgVGhlcmUgYXJlIG5vIHdvcmRzIGZvciA3MCwgODAsIG9yIDkwLgorICAgICAqICJxdWF0cmUtdmluZ3RzIiAoImZvdXIgdHdlbnRpZXMiKSBpcyB1c2VkIGZvciA4MCwgYW5kIHZhbHVlcyBwcm9jZWVkCisgICAgICogYnkgc2NvcmUgZnJvbSA2MCB0byA5OSAoZS5nLiwgNzMgaXMgInNvaXhhbnRlLXRyZWl6ZSIgWyJzaXh0eS10aGlydGVlbiJdKS4KKyAgICAgKiBOdW1iZXJzIGZyb20gMSwxMDAgdG8gMSwxOTkgYXJlIHJlbmRlcmVkIGFzIGh1bmRyZWRzIHJhdGhlciB0aGFuCisgICAgICogdGhvdXNhbmRzOiAxLDEwMCBpcyAib256ZSBjZW50cyIgKCJlbGV2ZW4gaHVuZHJlZCIpLCByYXRoZXIgdGhhbgorICAgICAqICJtaWxsZSBjZW50IiAoIm9uZSB0aG91c2FuZCBvbmUgaHVuZHJlZCIpCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZnJlbmNoID0KKyAgICAgICAgLy8gdGhlIG1haW4gcnVsZSBzZXQKKyAgICAgICAgIiVtYWluOlxuIgorICAgICAgICAgICAgICAgLy8gbmVnYXRpdmUtbnVtYmVyIGFuZCBmcmFjdGlvbiBydWxlcworICAgICAgICArICIgICAgLXg6IG1vaW5zID4+O1xuIgorICAgICAgICArICIgICAgeC54OiA8PCB2aXJndWxlID4+O1xuIgorICAgICAgICAgICAgICAgLy8gd29yZHMgZm9yIG51bWJlcnMgZnJvbSAwIHRvIDEwCisgICAgICAgICsgIiAgICB6XHUwMGU5cm87IHVuOyBkZXV4OyB0cm9pczsgcXVhdHJlOyBjaW5xOyBzaXg7IHNlcHQ7IGh1aXQ7IG5ldWY7XG4iCisgICAgICAgICsgIiAgICBkaXg7IG9uemU7IGRvdXplOyB0cmVpemU7IHF1YXRvcnplOyBxdWluemU7IHNlaXplO1xuIgorICAgICAgICArICIgICAgICAgIGRpeC1zZXB0OyBkaXgtaHVpdDsgZGl4LW5ldWY7XG4iCisgICAgICAgICAgICAgICAvLyBvcmRzIGZvciB0aGUgbXVsdGlwbGVzIG9mIDEwOiAlJWFsdC1vbmVzIGluc2VydHMgImV0IgorICAgICAgICAgICAgICAgLy8gd2hlbiBuZWVkZWQKKyAgICAgICAgKyAiICAgIDIwOiB2aW5ndFstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0cmVudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICA0MDogcXVhcmFudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICA1MDogY2lucXVhbnRlWy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICAgICAgICAgLy8gcnVsZSBmb3IgNjAuICBUaGUgLzIwIGNhdXNlcyB0aGlzIHJ1bGUncyBtdWx0aXBsaWVyIHRvIGJlCisgICAgICAgICAgICAgICAvLyAyMCByYXRoZXIgdGhhbiAxMCwgYWxsb3dpbmhnIHVzIHRvIHJlY3Vyc2UgZm9yIGFsbCB2YWx1ZXMKKyAgICAgICAgICAgICAgIC8vIGZyb20gNjAgdG8gNzkuLi4KKyAgICAgICAgKyAiICAgIDYwLzIwOiBzb2l4YW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIC4uLmV4Y2VwdCBmb3IgNzEsIHdoaWNoIG11c3QgYmUgc3BlY2lhbC1jYXNlZAorICAgICAgICArICIgICAgNzE6IHNvaXhhbnRlIGV0IG9uemU7XG4iCisgICAgICAgICAgICAgICAvLyBhdCA3Miwgd2UgaGF2ZSB0byByZXBlYXQgdGhlIHJ1bGUgZm9yIDYwIHRvIGdldCB1cyB0byA3OQorICAgICAgICArICIgICAgNzIvMjA6IHNvaXhhbnRlLT4lJWFsdC1vbmVzPjtcbiIKKyAgICAgICAgICAgICAgIC8vIGF0IDgwLCB3ZSBzdGF0ZSBhIG5ldyBydWxlIHdpdGggdGhlIHBocmFzZSBmb3IgODAuICBTaW5jZQorICAgICAgICAgICAgICAgLy8gaXQgY2hhbmdlcyBmb3JtIHdoZW4gdGhlcmUncyBhIG9uZXMgZGlnaXQsIHdlIG5lZWQgYSBzZWNvbmQKKyAgICAgICAgICAgICAgIC8vIHJ1bGUgYXQgODEuICBUaGlzIHJ1bGUgYWxzbyBpbmNsdWRlcyAiLzIwLCIgYWxsb3dpbmcgaXQgdG8KKyAgICAgICAgICAgICAgIC8vIGJlIHVzZWQgY29ycmVjdGx5IGZvciBhbGwgdmFsdWVzIHVwIHRvIDk5CisgICAgICAgICsgIiAgICA4MDogcXVhdHJlLXZpbmd0czsgODEvMjA6IHF1YXRyZS12aW5ndC0+PjtcbiIKKyAgICAgICAgICAgICAgIC8vICJjZW50IiBiZWNvbWVzIHBsdXJhbCB3aGVuIHByZWNlZGVkIGJ5IGEgbXVsdGlwbGllciwgYW5kCisgICAgICAgICAgICAgICAvLyB0aGUgbXVsdGlwbGllciBpcyBvbWl0dGVkIGZyb20gdGhlIHNpbmd1bGFyIGZvcm0KKyAgICAgICAgKyAiICAgIDEwMDogY2VudFsgPj5dO1xuIgorICAgICAgICArICIgICAgMjAwOiA8PCBjZW50c1sgPj5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogbWlsbGVbID4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIHZhbHVlcyBmcm9tIDEsMTAwIHRvIDEsMTk5IGFyZSByZW5kZXJlZCBhcyAib256ZSBjZW50cy4uLiIKKyAgICAgICAgICAgICAgIC8vIGluc3RlYWQgb2YgIm1pbGxlIGNlbnQuLi4iICBUaGUgPiBhZnRlciAiMTAwMCIgZGVjcmVhc2VzCisgICAgICAgICAgICAgICAvLyB0aGUgcnVsZSdzIGV4cG9uZW50LCBjYXVzaW5nIGl0cyBtdWx0aXBsaWVyIHRvIGJlIDEwMCBpbnN0ZWFkCisgICAgICAgICAgICAgICAvLyBvZiAxLDAwMC4gIFRoaXMgcHJldmVudHMgdXMgZnJvbSBnZXR0aW5nICJvbnplIGNlbnRzIGNlbnQKKyAgICAgICAgICAgICAgIC8vIHZpbmd0LWRldXgiICgiZWxldmVuIGh1bmRyZWQgb25lIGh1bmRyZWQgdHdlbnR5LXR3byIpLgorICAgICAgICArICIgICAgMTEwMD46IG9uemUgY2VudHNbID4+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIGF0IDEsMjAwLCB3ZSBnbyBiYWNrIHRvIGZvcm1hdGluZyBpbiB0aG91c2FuZHMsIHNvIHdlCisgICAgICAgICAgICAgICAvLyByZXBlYXQgdGhlIHJ1bGUgZm9yIDEsMDAwCisgICAgICAgICsgIiAgICAxMjAwOiBtaWxsZSA+PjtcbiIKKyAgICAgICAgICAgICAgIC8vIGF0IDIsMDAwLCB0aGUgbXVsdGlwbGllciBpcyBhZGRlZAorICAgICAgICArICIgICAgMjAwMDogPDwgbWlsbGVbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMDogPDwgbWlsbGlhcmRlWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgYmlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIgorICAgICAgICAvLyAlJWFsdC1vbmVzIGlzIHVzZWQgdG8gaW5zZXJ0ICJldCIgd2hlbiB0aGUgb25lcyBkaWdpdCBpcyAxCisgICAgICAgICsgIiUlYWx0LW9uZXM6XG4iCisgICAgICAgICsgIiAgICA7IGV0LXVuOyA9JW1haW49OyI7CisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgU3dpc3MgRnJlbmNoLiAgU3dpc3MgRnJlbmNoIGRpZmZlcnMgZnJvbSBGcmVuY2ggRnJlbmNoCisgICAgICogaW4gdGhhdCBpdCBkb2VzIGhhdmUgd29yZHMgZm9yIDcwLCA4MCwgYW5kIDkwLiAgVGhpcyBydWxlIHNldCBzaG93cyB0aGVtLAorICAgICAqIGFuZCBpcyBzaW1wbGVyIGFzIGEgcmVzdWx0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHN3aXNzRnJlbmNoID0KKyAgICAgICAgIiVtYWluOlxuIgorICAgICAgICArICIgICAgLXg6IG1vaW5zID4+O1xuIgorICAgICAgICArICIgICAgeC54OiA8PCB2aXJndWxlID4+O1xuIgorICAgICAgICArICIgICAgelx1MDBlOXJvOyB1bjsgZGV1eDsgdHJvaXM7IHF1YXRyZTsgY2lucTsgc2l4OyBzZXB0OyBodWl0OyBuZXVmO1xuIgorICAgICAgICArICIgICAgZGl4OyBvbnplOyBkb3V6ZTsgdHJlaXplOyBxdWF0b3J6ZTsgcXVpbnplOyBzZWl6ZTtcbiIKKyAgICAgICAgKyAiICAgICAgICBkaXgtc2VwdDsgZGl4LWh1aXQ7IGRpeC1uZXVmO1xuIgorICAgICAgICArICIgICAgMjA6IHZpbmd0Wy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMzA6IHRyZW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBxdWFyYW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDUwOiBjaW5xdWFudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICA2MDogc29peGFudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICAgICAgICAvLyBub3RpY2UgbmV3IHdvcmRzIGZvciA3MCwgODAsIGFuZCA5MAorICAgICAgICArICIgICAgNzA6IHNlcHRhbnRlWy0+JSVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgODA6IG9jdGFudGVbLT4lJWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICA5MDogbm9uYW50ZVstPiUlYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogY2VudFsgPj5dO1xuIgorICAgICAgICArICIgICAgMjAwOiA8PCBjZW50c1sgPj5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogbWlsbGVbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDExMDA+OiBvbnplIGNlbnRzWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxMjAwOiBtaWxsZSA+PjtcbiIKKyAgICAgICAgKyAiICAgIDIwMDA6IDw8IG1pbGxlWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDA6IDw8IG1pbGxpYXJkZVsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDw8IGJpbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgKyAiJSVhbHQtb25lczpcbiIKKyAgICAgICAgKyAiICAgIDsgZXQtdW47ID0lbWFpbj07IjsKKyAgICAvLyBJJ20gbm90IDEwMCUgc3VyZSBhYm91dCBTd2lzcyBGcmVuY2guICBJcworICAgIC8vIHRoaXMgY29ycmVjdD8gIElzICJvbnplIGNlbnRzIiBjb21tb25seSB1c2VkIGZvciAxLDEwMCBpbiBib3RoIEZyYW5jZQorICAgIC8vIGFuZCBTd2l0emVybGFuZD8gIENhbiBzb21lb25lIGZpbGwgbWUgaW4gb24gdGhlIHJ1bGVzIGZvciB0aGUgb3RoZXIKKyAgICAvLyBGcmVuY2gtc3BlYWtpbmcgY291bnRyaWVzPyAgSSd2ZSBoZWFyZCBjb25mbGljdGluZyBvcGluaW9ucyBvbiB3aGljaAorICAgIC8vIHZlcnNpb24gaXMgdXNlZCBpbiBDYW5hZGEsIGFuZCBJIHVuZGVyc3RhbmQgdGhlcmUncyBhbiBhbHRlcm5hdGUgc2V0CisgICAgLy8gb2Ygd29yZHMgZm9yIDcwLCA4MCwgYW5kIDkwIHRoYXQgaXMgdXNlZCBzb21ld2hlcmUsIGJ1dCBJIGRvbid0IGtub3cKKyAgICAvLyB3aGF0IHRob3NlIHdvcmRzIGFyZSBvciB3aGVyZSB0aGV5J3JlIHVzZWQuCisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgR2VybWFuLiAgR2VybWFuIGFsc28gYWRkcyBzb21lIGludGVyZXN0aW5nCisgICAgICogY2hhcmFjdGVyaXN0aWNzLiAgRm9yIHZhbHVlcyBiZWxvdyAxLDAwMCwwMDAsIG51bWJlcnMgYXJlIGN1c3RvbWFyaWx5CisgICAgICogd3JpdHRlbiBvdXQgYXMgYSBzaW5nbGUgd29yZC4gIEFuZCB0aGUgb25lcyBkaWdpdCBQUkVDRURFUyB0aGUgdGVucworICAgICAqIGRpZ2l0IChlLmcuLCAyMyBpcyAiZHJlaXVuZHp3YW56aWcsIiBub3QgInp3YW56aWd1bmRkcmVpIikuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZ2VybWFuID0KKyAgICAgICAgLy8gMSBpcyAiZWlucyIgd2hlbiBieSBpdHNlbGYsIGJ1dCB0dXJucyBpbnRvICJlaW4iIGluIG1vc3QKKyAgICAgICAgLy8gY29tYmluYXRpb25zCisgICAgICAgICIlYWx0LW9uZXM6XG4iCisgICAgICAgICsgIiAgICBudWxsOyBlaW5zOyA9JSVtYWluPTtcbiIKKyAgICAgICAgKyAiJSVtYWluOlxuIgorICAgICAgICAgICAgICAgLy8gd29yZHMgZm9yIG51bWJlcnMgZnJvbSAwIHRvIDEyLiAgTm90aWNlIHRoYXQgdGhlIHZhbHVlcworICAgICAgICAgICAgICAgLy8gZnJvbSAxMyB0byAxOSBjYW4gZGVyaXZlZCBhbGdvcml0aG1pY2FsbHksIHVubGlrZSBpbiBtb3N0CisgICAgICAgICAgICAgICAvLyBvdGhlciBsYW5ndWFnZXMKKyAgICAgICAgKyAiICAgIG51bGw7IGVpbjsgendlaTsgZHJlaTsgdmllcjsgZlx1MDBmY25mOyBzZWNoczsgc2llYmVuOyBhY2h0OyBuZXVuO1xuIgorICAgICAgICArICIgICAgemVobjsgZWxmOyB6d1x1MDBmNmxmOyA+PnplaG47XG4iCisgICAgICAgICAgICAgICAvLyBydWxlcyBmb3IgdGhlIG11bHRpcGxlcyBvZiAxMC4gIE5vdGljZSB0aGF0IHRoZSBvbmVzIGRpZ2l0CisgICAgICAgICAgICAgICAvLyBnb2VzIG9uIHRoZSBmcm9udAorICAgICAgICArICIgICAgMjA6IFs+PnVuZF16d2FuemlnO1xuIgorICAgICAgICArICIgICAgMzA6IFs+PnVuZF1kcmVpXHUwMGRmaWc7XG4iCisgICAgICAgICsgIiAgICA0MDogWz4+dW5kXXZpZXJ6aWc7XG4iCisgICAgICAgICsgIiAgICA1MDogWz4+dW5kXWZcdTAwZmNuZnppZztcbiIKKyAgICAgICAgKyAiICAgIDYwOiBbPj51bmRdc2VjaHppZztcbiIKKyAgICAgICAgKyAiICAgIDcwOiBbPj51bmRdc2llYnppZztcbiIKKyAgICAgICAgKyAiICAgIDgwOiBbPj51bmRdYWNodHppZztcbiIKKyAgICAgICAgKyAiICAgIDkwOiBbPj51bmRdbmV1bnppZztcbiIKKyAgICAgICAgKyAiICAgIDEwMDogaHVuZGVydFs+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAyMDA6IDw8aHVuZGVydFs+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiB0YXVzZW5kWz4lYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDA6IDw8dGF1c2VuZFs+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IGVpbmUgTWlsbGlvblsgPiVhbHQtb25lcz5dO1xuIgorICAgICAgICArICIgICAgMiwwMDAsMDAwOiA8PCBNaWxsaW9uZW5bID4lYWx0LW9uZXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDA6IGVpbmUgTWlsbGlhcmRlWyA+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAyLDAwMCwwMDAsMDAwOiA8PCBNaWxsaWFyZGVuWyA+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogZWluZSBCaWxsaW9uWyA+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAyLDAwMCwwMDAsMDAwLDAwMDogPDwgQmlsbGlvbmVuWyA+JWFsdC1vbmVzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07IjsKKyAgICAvLyBhZ2FpbiwgSSdtIG5vdCAxMDAlIHN1cmUgb2YgdGhlc2UgcnVsZXMuICBJIHRoaW5rIGJvdGggImh1bmRlcnQiIGFuZAorICAgIC8vICJlaW5odW5kZXJ0IiBhcmUgY29ycmVjdCBvciAxMDAsIGJ1dCBJJ20gbm90IHN1cmUgd2hpY2ggaXMgcHJlZmVyYWJsZQorICAgIC8vIGluIHNpdHVhdGlvbnMgd2hlcmUgdGhpcyBmcmFtZXdvcmsgaXMgbGlrZWx5IHRvIGJlIHVzZWQuICBBbHNvLCBpcyBpdAorICAgIC8vIHJlYWxseSB0cnVlIHRoYXQgbnVtYmVycyBhcmUgcnVuIHRvZ2V0aGVyIGludG8gY29tcG91bmQgd29yZHMgYWxsIHRoZQorICAgIC8vIHRpbWU/ICBBbmQgYWdhaW4sIEknbSBtaXNzaW5nIGluZm9ybWF0aW9uIG9uIG5lZ2F0aXZlIG51bWJlcnMgYW5kCisgICAgLy8gZGVjaW1hbHMuCisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgSXRhbGlhbi4gIExpa2UgR2VybWFuLCBtb3N0IEl0YWxpYW4gbnVtYmVycyBhcmUKKyAgICAgKiB3cml0dGVuIGFzIHNpbmdsZSB3b3Jkcy4gIFdoYXQgbWFrZXMgdGhlc2UgcnVsZXMgY29tcGxpY2F0ZWQgaXMgdGhlIHJ1bGUKKyAgICAgKiB0aGF0IHNheXMgdGhhdCB3aGVuIGEgd29yZCBlbmRpbmcgaW4gYSB2b3dlbCBhbmQgYSB3b3JkIGJlZ2lubmluZyB3aXRoCisgICAgICogYSB2b3dlbCBhcmUgY29tYmluZWQgaW50byBhIGNvbXBvdW5kLCB0aGUgdm93ZWwgaXMgZHJvcHBlZCBmcm9tIHRoZQorICAgICAqIGVuZCBvZiB0aGUgZmlyc3Qgd29yZDogMTgwIGlzICJjZW50b3R0YW50YSwiIG5vdCAiY2VudG9vdHRhbnRhLiIKKyAgICAgKiBUaGUgY29tcGxleGl0eSBvZiB0aGlzIHJ1bGUgc2V0IGlzIHRvIHByb2R1Y2UgdGhpcyBiZWhhdmlvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBpdGFsaWFuID0KKyAgICAgICAgLy8gbWFpbiBydWxlIHNldC4gIEZvbGxvd3MgdGhlIHBhdHRlcm5zIG9mIHRoZSBwcmVjZWRpbmcgcnVsZSBzZXRzLAorICAgICAgICAvLyBleGNlcHQgdGhhdCB0aGUgZmluYWwgdm93ZWwgaXMgb21pdHRlZCBmcm9tIHdvcmRzIGVuZGluZyBpbgorICAgICAgICAvLyB2b3dlbHMgd2hlbiB0aGV5IGFyZSBmb2xsb3dlZCBieSBhbm90aGVyIHdvcmQ7IGluc3RlYWQsIHdlIGhhdmUKKyAgICAgICAgLy8gc2VwYXJhdGUgcnVsZSBzZXRzIHRoYXQgYXJlIGlkZW50aWNhbCB0byB0aGlzIG9uZSwgZXhjZXB0IHRoYXQKKyAgICAgICAgLy8gYWxsIHRoZSB3b3JkcyB0aGF0IGRvbid0IGJlZ2luIHdpdGggYSB2b3dlbCBoYXZlIGEgdm93ZWwgdGFja2VkCisgICAgICAgIC8vIG9udG8gdGhlbSBhdCB0aGUgZnJvbnQuICBBIHdvcmQgZW5kaW5nIGluIGEgdm93ZWwgY2FsbHMgYQorICAgICAgICAvLyBzdWJzdGl0dXRpb24gdGhhdCB3aWxsIHN1cHBseSB0aGF0IHZvd2VsLCB1bmxlc3MgdGhhdCB2b3dlbCBpcyB0bworICAgICAgICAvLyBiZSBlbGlkZWQuCisgICAgICAgICIlbWFpbjpcbiIKKyAgICAgICAgKyAiICAgIC14OiBtZW5vID4+O1xuIgorICAgICAgICArICIgICAgeC54OiA8PCB2aXJnb2xhID4+O1xuIgorICAgICAgICArICIgICAgemVybzsgdW5vOyBkdWU7IHRyZTsgcXVhdHRybzsgY2lucXVlOyBzZWk7IHNldHRlOyBvdHRvO1xuIgorICAgICAgICArICIgICAgICAgIG5vdmU7XG4iCisgICAgICAgICsgIiAgICBkaWVjaTsgdW5kaWNpOyBkb2RpY2k7IHRyZWRpY2k7IHF1YXR0b3JkaWNpOyBxdWluZGljaTsgc2VkaWNpO1xuIgorICAgICAgICArICIgICAgICAgIGRpY2lhc2V0dGU7IGRpY2lvdHRvOyBkaWNpYW5ub3ZlO1xuIgorICAgICAgICArICIgICAgMjA6IHZlbnRpOyB2ZW50PiUld2l0aC1pPjtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0cmVudGE7IHRyZW50PiUld2l0aC1pPjtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBxdWFyYW50YTsgcXVhcmFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA1MDogY2lucXVhbnRhOyBjaW5xdWFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA2MDogc2Vzc2FudGE7IHNlc3NhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNzA6IHNldHRhbnRhOyBzZXR0YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBvdHRhbnRhOyBvdHRhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgOTA6IG5vdmFudGE7IG5vdmFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICAxMDA6IGNlbnRvOyBjZW50Wz4lJXdpdGgtbz5dO1xuIgorICAgICAgICArICIgICAgMjAwOiA8PGNlbnRvOyA8PGNlbnRbPiUld2l0aC1vPl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiBtaWxsZTsgbWlsbFs+JSV3aXRoLWk+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDA6IDw8bWlsYTsgPDxtaWxbPiUld2l0aC1hPl07XG4iCisgICAgICAgICsgIiAgICAxMDAsMDAwPj46IDw8bWlsYVsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA9IywjIzA9IChpbmNvbXBsZXRlIGRhdGEpO1xuIgorICAgICAgICArICIlJXdpdGgtYTpcbiIKKyAgICAgICAgKyAiICAgIGF6ZXJvOyB1bm87IGFkdWU7IGF0cmU7IGFxdWF0dHJvOyBhY2lucXVlOyBhc2VpOyBhc2V0dGU7IG90dG87XG4iCisgICAgICAgICsgIiAgICAgICAgYW5vdmU7XG4iCisgICAgICAgICsgIiAgICBhZGllY2k7IHVuZGljaTsgYWRvZGljaTsgYXRyZWRpY2k7IGFxdWF0dG9yZGljaTsgYXF1aW5kaWNpOyBhc2VkaWNpO1xuIgorICAgICAgICArICIgICAgICAgIGFkaWNpYXNldHRlOyBhZGljaW90dG87IGFkaWNpYW5ub3ZlO1xuIgorICAgICAgICArICIgICAgMjA6IGF2ZW50aTsgYXZlbnQ+JSV3aXRoLWk+O1xuIgorICAgICAgICArICIgICAgMzA6IGF0cmVudGE7IGF0cmVudD4lJXdpdGgtaT47XG4iCisgICAgICAgICsgIiAgICA0MDogYXF1YXJhbnRhOyBhcXVhcmFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA1MDogYWNpbnF1YW50YTsgYWNpbnF1YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBhc2Vzc2FudGE7IGFzZXNzYW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBhc2V0dGFudGE7IGFzZXR0YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBvdHRhbnRhOyBvdHRhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgOTA6IGFub3ZhbnRhOyBhbm92YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogYWNlbnRvOyBhY2VudFs+JSV3aXRoLW8+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDogPCUld2l0aC1hPGNlbnRvOyA8JSV3aXRoLWE8Y2VudFs+JSV3aXRoLW8+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IGFtaWxsZTsgYW1pbGxbPiUld2l0aC1pPl07XG4iCisgICAgICAgICsgIiAgICAyMDAwOiA8JSV3aXRoLWE8bWlsYTsgPCUld2l0aC1hPG1pbFs+JSV3aXRoLWE+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDA6ID0lbWFpbj07XG4iCisgICAgICAgICsgIiUld2l0aC1pOlxuIgorICAgICAgICArICIgICAgaXplcm87IHVubzsgaWR1ZTsgaXRyZTsgaXF1YXR0cm87IGljaW5xdWU7IGlzZWk7IGlzZXR0ZTsgb3R0bztcbiIKKyAgICAgICAgKyAiICAgICAgICBpbm92ZTtcbiIKKyAgICAgICAgKyAiICAgIGlkaWVjaTsgdW5kaWNpOyBpZG9kaWNpOyBpdHJlZGljaTsgaXF1YXR0b3JkaWNpOyBpcXVpbmRpY2k7IGlzZWRpY2k7XG4iCisgICAgICAgICsgIiAgICAgICAgaWRpY2lhc2V0dGU7IGlkaWNpb3R0bzsgaWRpY2lhbm5vdmU7XG4iCisgICAgICAgICsgIiAgICAyMDogaXZlbnRpOyBpdmVudD4lJXdpdGgtaT47XG4iCisgICAgICAgICsgIiAgICAzMDogaXRyZW50YTsgaXRyZW50PiUld2l0aC1pPjtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBpcXVhcmFudGE7IGlxdWFyYW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDUwOiBpY2lucXVhbnRhOyBpY2lucXVhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNjA6IGlzZXNzYW50YTsgaXNlc3NhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNzA6IGlzZXR0YW50YTsgaXNldHRhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgODA6IG90dGFudGE7IG90dGFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA5MDogaW5vdmFudGE7IGlub3ZhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgMTAwOiBpY2VudG87IGljZW50Wz4lJXdpdGgtbz5dO1xuIgorICAgICAgICArICIgICAgMjAwOiA8JSV3aXRoLWk8Y2VudG87IDwlJXdpdGgtaTxjZW50Wz4lJXdpdGgtbz5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogaW1pbGxlOyBpbWlsbFs+JSV3aXRoLWk+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwMDA6IDwlJXdpdGgtaTxtaWxhOyA8JSV3aXRoLWk8bWlsWz4lJXdpdGgtYT5dO1xuIgorICAgICAgICArICIgICAgMTAwLDAwMDogPSVtYWluPTtcbiIKKyAgICAgICAgKyAiJSV3aXRoLW86XG4iCisgICAgICAgICsgIiAgICBvemVybzsgdW5vOyBvZHVlOyBvdHJlOyBvcXVhdHRybzsgb2NpbnF1ZTsgb3NlaTsgb3NldHRlOyBvdHRvO1xuIgorICAgICAgICArICIgICAgICAgIG9ub3ZlO1xuIgorICAgICAgICArICIgICAgb2RpZWNpOyB1bmRpY2k7IG9kb2RpY2k7IG90cmVkaWNpOyBvcXVhdHRvcmRpY2k7IG9xdWluZGljaTsgb3NlZGljaTtcbiIKKyAgICAgICAgKyAiICAgICAgICBvZGljaWFzZXR0ZTsgb2RpY2lvdHRvOyBvZGljaWFubm92ZTtcbiIKKyAgICAgICAgKyAiICAgIDIwOiBvdmVudGk7IG92ZW50PiUld2l0aC1pPjtcbiIKKyAgICAgICAgKyAiICAgIDMwOiBvdHJlbnRhOyBvdHJlbnQ+JSV3aXRoLWk+O1xuIgorICAgICAgICArICIgICAgNDA6IG9xdWFyYW50YTsgb3F1YXJhbnQ+JSV3aXRoLWE+O1xuIgorICAgICAgICArICIgICAgNTA6IG9jaW5xdWFudGE7IG9jaW5xdWFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA2MDogb3Nlc3NhbnRhOyBvc2Vzc2FudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA3MDogb3NldHRhbnRhOyBvc2V0dGFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICA4MDogb3R0YW50YTsgb3R0YW50PiUld2l0aC1hPjtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBvbm92YW50YTsgb25vdmFudD4lJXdpdGgtYT47XG4iCisgICAgICAgICsgIiAgICAxMDA6IG9jZW50bzsgb2NlbnRbPiUld2l0aC1vPl07XG4iCisgICAgICAgICsgIiAgICAyMDA6IDwlJXdpdGgtbzxjZW50bzsgPCUld2l0aC1vPGNlbnRbPiUld2l0aC1vPl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiBvbWlsbGU7IG9taWxsWz4lJXdpdGgtaT5dO1xuIgorICAgICAgICArICIgICAgMjAwMDogPCUld2l0aC1vPG1pbGE7IDwlJXdpdGgtbzxtaWxbPiUld2l0aC1hPl07XG4iCisgICAgICAgICsgIiAgICAxMDAsMDAwOiA9JW1haW49O1xuIjsKKyAgICAvLyBDYW4gc29tZW9uZSBjb25maXJtIHRoYXQgSSBkaWQgdGhlIHZvd2VsLWVsaWRpbmcgdGhpbmcgcmlnaHQ/ICBJJ20KKyAgICAvLyBub3QgMTAwJSBzdXJlIEknbSBkb2luZyBpdCBpbiBhbGwgdGhlIHJpZ2h0IHBsYWNlcywgb3IgY29tcGxldGVseQorICAgIC8vIGNvcnJlY3RseS4gIEFsc28sIEkgZG9uJ3QgaGF2ZSBpbmZvcm1hdGlvbiBmb3IgbmVnYXRpdmVzIGFuZCBkZWNpbWFscywKKyAgICAvLyBhbmQgSSBsYWNrIHdvcmRzIGZyb3IgdmFsdWVzIGZyb20gMSwwMDAsMDAwIG9uIHVwLgorCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIFN3ZWRpc2guCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgc3dlZGlzaCA9CisgICAgICAgICJub2xsOyBldHQ7IHR2XHUwMGU1OyB0cmU7IGZ5cmE7IGZlbTsgc2V4OyBzam87IFx1MDBlNXR0YTsgbmlvO1xuIgorICAgICAgICArICJ0aW87IGVsdmE7IHRvbHY7IHRyZXR0b247IGZqb3J0b247IGZlbXRvbjsgc2V4dG9uOyBzanV0dG9uOyBhcnRvbjsgbml0dG9uO1xuIgorICAgICAgICArICIyMDogdGp1Z29bPj5dO1xuIgorICAgICAgICArICIzMDogdHJldHRpb1s+Pl07XG4iCisgICAgICAgICsgIjQwOiBmeXJ0aW9bPj5dO1xuIgorICAgICAgICArICI1MDogZmVtdGlvWz4+XTtcbiIKKyAgICAgICAgKyAiNjA6IHNleHRpb1s+Pl07XG4iCisgICAgICAgICsgIjcwOiBzanV0dGlvWz4+XTtcbiIKKyAgICAgICAgKyAiODA6IFx1MDBlNXR0aW9bPj5dO1xuIgorICAgICAgICArICI5MDogbml0dGlvWz4+XTtcbiIKKyAgICAgICAgKyAiMTAwOiBodW5kcmFbPj5dO1xuIgorICAgICAgICArICIyMDA6IDw8aHVuZHJhWz4+XTtcbiIKKyAgICAgICAgKyAiMTAwMDogdHVzZW5bID4+XTtcbiIKKyAgICAgICAgKyAiMjAwMDogPDwgdHVzZW5bID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwOiBlbiBtaWxqb25bID4+XTtcbiIKKyAgICAgICAgKyAiMiwwMDAsMDAwOiA8PCBtaWxqb25bID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMDogZW4gbWlsamFyZFsgPj5dO1xuIgorICAgICAgICArICIyLDAwMCwwMDAsMDAwOiA8PCBtaWxqYXJkWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDAsMDAwOiBlbiBiaWxqb25bID4+XTtcbiIKKyAgICAgICAgKyAiMiwwMDAsMDAwLDAwMCwwMDA6IDw8IGJpbGpvblsgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD0iOworICAgIC8vIGNhbiBzb21lb25lIHN1cHBseSBtZSB3aXRoIGluZm9ybWF0aW9uIG9uIG5lZ2F0aXZlcyBhbmQgZGVjaW1hbHM/CisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgRHV0Y2guICBOb3RpY2UgdGhhdCBpbiBEdXRjaCwgYXMgaW4gR2VybWFuLAorICAgICAqIHRoZSBvbmVzIGRpZ2l0IHByZWNlZGVzIHRoZSB0ZW5zIGRpZ2l0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGR1dGNoID0KKyAgICAgICAgIiAteDogbWluID4+O1xuIgorICAgICAgICArICJ4Lng6IDw8IGtvbW1hID4+O1xuIgorICAgICAgICArICIoemVybz8pOyBlZW47IHR3ZWU7IGRyaWU7IHZpZXI7IHZpamY7IHplczsgemV2ZW47IGFjaHQ7IG5lZ2VuO1xuIgorICAgICAgICArICJ0aWVuOyBlbGY7IHR3YWFsZjsgZGVydGllbjsgdmVlcnRpZW47IHZpamZ0aWVuOyB6ZXN0aWVuO1xuIgorICAgICAgICArICJ6ZXZlbnRpZW47IGFjaHRpZW47IG5lZ2VudGllbjtcbiIKKyAgICAgICAgKyAiMjA6IFs+PiBlbiBddHdpbnRpZztcbiIKKyAgICAgICAgKyAiMzA6IFs+PiBlbiBdZGVydGlnO1xuIgorICAgICAgICArICI0MDogWz4+IGVuIF12ZWVydGlnO1xuIgorICAgICAgICArICI1MDogWz4+IGVuIF12aWpmdGlnO1xuIgorICAgICAgICArICI2MDogWz4+IGVuIF16ZXN0aWc7XG4iCisgICAgICAgICsgIjcwOiBbPj4gZW4gXXpldmVudGlnO1xuIgorICAgICAgICArICI4MDogWz4+IGVuIF10YWNodGlnO1xuIgorICAgICAgICArICI5MDogWz4+IGVuIF1uZWdlbnRpZztcbiIKKyAgICAgICAgKyAiMTAwOiA8PCBob25kZXJkWyA+Pl07XG4iCisgICAgICAgICsgIjEwMDA6IDw8IGR1aXplbmRbID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwOiA8PCBtaWxqb2VuWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDA6IDw8IGJpbGpvZW5bID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD0iOworCisgICAgLyoqCisgICAgICogU3BlbGxvdXQgcnVsZXMgZm9yIEphcGFuZXNlLiAgSW4gSmFwYW5lc2UsIHRoZXJlIHJlYWxseSBpc24ndCBhbnkKKyAgICAgKiBkaXN0aW5jdGlvbiBiZXR3ZWVuIGEgbnVtYmVyIHdyaXR0ZW4gb3V0IGluIGRpZ2l0cyBhbmQgYSBudW1iZXIKKyAgICAgKiB3cml0dGVuIG91dCBpbiB3b3JkczogdGhlIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMgYXJlIGJvdGggZGlnaXRzCisgICAgICogYW5kIHdvcmRzLiAgVGhpcyBydWxlIHNldCBwcm92aWRlcyB0d28gdmFyaWFudHM6ICAldHJhZGl0aW9uYWwKKyAgICAgKiB1c2VzIHRoZSB0cmFkaXRpb25hbCBDSksgbnVtZXJhbHMgKHdoaWNoIGFyZSBhbHNvIHVzZWQgaW4gQ2hpbmEKKyAgICAgKiBhbmQgS29yZWEpLiAgJWZpbmFuY2lhbCB1c2VzIGFsdGVybmF0ZSBpZGVvZ3JhcGhzIGZvciBtYW55IG51bWJlcnMKKyAgICAgKiB0aGF0IGFyZSBoYXJkZXIgdG8gYWx0ZXIgdGhhbiB0aGUgdHJhZGl0aW9uYWwgbnVtZXJhbHMgKG9uZSBjb3VsZAorICAgICAqIGZhaXJseSBlYXNpbHkgY2hhbmdlIGEgb25lIHRvCisgICAgICogYSB0aHJlZSBqdXN0IGJ5IGFkZGluZyB0d28gc3Ryb2tlcywgZm9yIGV4YW1wbGUpLiAgVGhpcyBpcyBhbHNvIGRvbmUgaW4KKyAgICAgKiB0aGUgb3RoZXIgY291bnRyaWVzIHVzaW5nIENoaW5lc2UgaWRvZ3JhcGhzLCBidXQgZGlmZmVyZW50IGlkZW9ncmFwaHMKKyAgICAgKiBhcmUgdXNlZCBpbiB0aG9zZSBwbGFjZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgamFwYW5lc2UgPQorICAgICAgICAiJWZpbmFuY2lhbDpcbiIKKyAgICAgICAgKyAiICAgIFx1OTZmNjsgXHU1OGYxOyBcdTVmMTA7IFx1NTNjMjsgXHU1NmRiOyBcdTRmMGQ7IFx1NTE2ZDsgXHU0ZTAzOyBcdTUxNmI7IFx1NGU1ZDtcbiIKKyAgICAgICAgKyAiICAgIFx1NjJmZVs+Pl07XG4iCisgICAgICAgICsgIiAgICAyMDogPDxcdTYyZmVbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwOiA8PFx1NzY3ZVs+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiA8PFx1NTM0M1s+Pl07XG4iCisgICAgICAgICsgIiAgICAxMCwwMDA6IDw8XHU0ZTA3Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDAsMDAwOiA8PFx1NTEwNFs+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDxcdTUxNDZbPj5dO1xuIgorICAgICAgICArICIgICAgMTAsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgKyAiJXRyYWRpdGlvbmFsOlxuIgorICAgICAgICArICIgICAgXHU5NmY2OyBcdTRlMDA7IFx1NGU4YzsgXHU0ZTA5OyBcdTU2ZGI7IFx1NGU5NDsgXHU1MTZkOyBcdTRlMDM7IFx1NTE2YjsgXHU0ZTVkO1xuIgorICAgICAgICArICIgICAgXHU1MzQxWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDIwOiA8PFx1NTM0MVs+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IDw8XHU3NjdlWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8XHU1MzQzWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMDogPDxcdTRlMDdbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwLDAwMCwwMDA6IDw8XHU1MTA0Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PFx1NTE0Nls+Pl07XG4iCisgICAgICAgICsgIiAgICAxMCwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9OyI7CisgICAgLy8gQ2FuIHNvbWVvbmUgc3VwcGx5IG1lIHdpdGggdGhlIHJpZ2h0IGZyYXVkLXByb29mIGlkZW9ncmFwaHMgZm9yCisgICAgLy8gU2ltcGxpZmllZCBhbmQgVHJhZGl0aW9uYWwgQ2hpbmVzZSwgYW5kIGZvciBLb3JlYW4/ICBDYW4gc29tZW9uZQorICAgIC8vIHN1cHBseSBtZSB3aXRoIGluZm9ybWF0aW9uIG9uIG5lZ2F0aXZlcyBhbmQgZGVjaW1hbHM/CisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgR3JlZWsuICBBZ2FpbiBpbiBHcmVlayB3ZSBoYXZlIHRvIHN1cHBseSB0aGUgd29yZHMKKyAgICAgKiBmb3IgdGhlIG11bHRpcGxlcyBvZiAxMDAgYmVjYXVzZSB0aGV5IGNhbid0IGJlIGRlcml2ZWQgYWxnb3JpdGhtaWNhbGx5LgorICAgICAqIEFsc28sIHRoZSB0ZW5zIGRnaXQgY2hhbmdlcyBmb3JtIHdoZW4gZm9sbG93ZWQgYnkgYSBvbmVzIGRpZ2l0OiBhbgorICAgICAqIGFjY2VudCBtYXJrIGRpc2FwcGVhcnMgZnJvbSB0aGUgdGVucyBkaWdpdCBhbmQgbW92ZXMgdG8gdGhlIG9uZXMgZGlnaXQuCisgICAgICogVGhlcmVmb3JlLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBbXSBub3RhdGlvbiwgd2UgYWN0dWFsbHkgaGF2ZSB0byB1c2UKKyAgICAgKiB0d28gc2VwYXJhdGUgcnVsZXMgZm9yIGVhY2ggbXVsdGlwbGUgb2YgMTAgdG8gc2hvdyB0aGUgdHdvIGZvcm1zIG9mCisgICAgICogdGhlIHdvcmQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZ3JlZWsgPQorICAgICAgICAiemVybyAoaW5jb21wbGV0ZSBkYXRhKTsgXHUwM2FkXHUwM2JkXHUwM2IxOyBcdTAzYjRcdTAzY2RcdTAzYmY7IFx1MDNiNFx1MDNjMVx1MDNhZlx1MDNiMTsgIgorICAgICAgICArICJcdTAzYzRcdTAzYWRcdTAzYzNcdTAzYzNcdTAzYjVcdTAzYzFcdTAzYjE7IFx1MDNjMFx1MDNhZFx1MDNiZFx1MDNjNFx1MDNiNTsgIgorICAgICAgICArICJcdTAzYWRcdTAzYmVcdTAzYjk7IFx1MDNiNVx1MDNjMFx1MDNjNFx1MDNhYzsgXHUwM2JmXHUwM2JhXHUwM2M0XHUwM2NlOyAiCisgICAgICAgICsgIlx1MDNiNVx1MDNiZFx1MDNiZFx1MDNhZFx1MDNiMTtcbiIKKyAgICAgICAgKyAiMTA6IFx1MDNiNFx1MDNhZFx1MDNiYVx1MDNiMTsgIgorICAgICAgICArICJcdTAzYWRcdTAzYmRcdTAzYjRcdTAzYjVcdTAzYmFcdTAzYjE7IFx1MDNiNFx1MDNjZVx1MDNiNFx1MDNiNVx1MDNiYVx1MDNiMTsgIgorICAgICAgICArICJcdTAzYjRcdTAzYjVcdTAzYmFcdTAzYjE+PjtcbiIKKyAgICAgICAgKyAiMjA6IFx1MDNiNVx1MDNhZlx1MDNiYVx1MDNiZlx1MDNjM1x1MDNiOTsgXHUwM2I1XHUwM2I5XHUwM2JhXHUwM2JmXHUwM2MzXHUwM2I5Pj47XG4iCisgICAgICAgICsgIjMwOiBcdTAzYzRcdTAzYzFcdTAzYjlcdTAzYWNcdTAzYmRcdTAzYzRcdTAzYjE7IFx1MDNjNFx1MDNjMVx1MDNiOVx1MDNiMVx1MDNiZFx1MDNjNFx1MDNiMT4+O1xuIgorICAgICAgICArICI0MDogXHUwM2MzXHUwM2IxXHUwM2MxXHUwM2FjXHUwM2JkXHUwM2M0XHUwM2IxOyBcdTAzYzNcdTAzYjFcdTAzYzFcdTAzYjFcdTAzYmRcdTAzYzRcdTAzYjE+PjtcbiIKKyAgICAgICAgKyAiNTA6IFx1MDNjMFx1MDNiNVx1MDNiZFx1MDNhZVx1MDNiZFx1MDNjNFx1MDNiMTsgXHUwM2MwXHUwM2I1XHUwM2JkXHUwM2I3XHUwM2JkXHUwM2M0XHUwM2IxPj47XG4iCisgICAgICAgICsgIjYwOiBcdTAzYjVcdTAzYmVcdTAzYWVcdTAzYmRcdTAzYzRcdTAzYjE7IFx1MDNiNVx1MDNiZVx1MDNiN1x1MDNiZFx1MDNjNFx1MDNiMT4+O1xuIgorICAgICAgICArICI3MDogXHUwM2I1XHUwM2IyXHUwM2I0XHUwM2JmXHUwM2JjXHUwM2FlXHUwM2JkXHUwM2M0XHUwM2IxOyAiCisgICAgICAgICsgIlx1MDNiNVx1MDNiMlx1MDNiNFx1MDNiZlx1MDNiY1x1MDNiN1x1MDNiZFx1MDNjNFx1MDNiMT4+O1xuIgorICAgICAgICArICI4MDogXHUwM2JmXHUwM2IzXHUwM2I0XHUwM2NjXHUwM2JkXHUwM2M0XHUwM2IxOyBcdTAzYmZcdTAzYjNcdTAzYjRcdTAzYmZcdTAzYmRcdTAzYzRcdTAzYjE+PjtcbiIKKyAgICAgICAgKyAiOTA6IFx1MDNiNVx1MDNiZFx1MDNiZFx1MDNiNVx1MDNiZFx1MDNhZVx1MDNiZFx1MDNjNFx1MDNiMTsgIgorICAgICAgICArICJcdTAzYjVcdTAzYmRcdTAzYmRcdTAzYjVcdTAzYmRcdTAzYjdcdTAzYmRcdTAzYzRcdTAzYjE+PjtcbiIKKyAgICAgICAgKyAiMTAwOiBcdTAzYjVcdTAzYmFcdTAzYjFcdTAzYzRcdTAzY2NbXHUwM2JkID4+XTtcbiIKKyAgICAgICAgKyAiMjAwOiBcdTAzYjRcdTAzYjlcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiMzAwOiBcdTAzYzRcdTAzYzFcdTAzYjlcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiNDAwOiBcdTAzYzRcdTAzYjVcdTAzYzRcdTAzYzFcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiNTAwOiBcdTAzYzBcdTAzYjVcdTAzYmRcdTAzYzRcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiNjAwOiBcdTAzYjVcdTAzYmVcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiNzAwOiBcdTAzYjVcdTAzYzBcdTAzYzRcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiODAwOiBcdTAzYmZcdTAzYmFcdTAzYzRcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiOTAwOiBcdTAzYjVcdTAzYmRcdTAzYmRcdTAzYjlcdTAzYjFcdTAzYmFcdTAzY2NcdTAzYzNcdTAzYjlcdTAzYjFbID4+XTtcbiIKKyAgICAgICAgKyAiMTAwMDogXHUwM2M3XHUwM2FmXHUwM2JiXHUwM2I5XHUwM2IxWyA+Pl07XG4iCisgICAgICAgICsgIjIwMDA6IDw8IFx1MDNjN1x1MDNhZlx1MDNiYlx1MDNiOVx1MDNiMVsgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDA6IDw8IFx1MDNiNVx1MDNiYVx1MDNiMVx1MDNjNFx1MDNiZlx1MDNiY1x1MDNiY1x1MDNiOVx1MDNjY1x1MDNjMVx1MDNiOVx1MDNiZlsgPj5dO1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwOiA8PCBcdTAzYjRcdTAzYjlcdTAzYzNcdTAzYjVcdTAzYmFcdTAzYjFcdTAzYzRcdTAzYmZcdTAzYmNcdTAzYmNcdTAzYjlcdTAzY2NcdTAzYzFcdTAzYjlcdTAzYmZbID4+XTtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD0iOworICAgIC8vIENhbiBzb21lb25lIHN1cHBseSBtZSB3aXRoIGluZm9ybWF0aW9uIG9uIG5lZ2F0aXZlcyBhbmQgZGVjaW1hbHM/CisgICAgLy8gSSdtIGFsc28gbWlzc2luZyB0aGUgd29yZCBmb3IgemVyby4gIENhbiBzb21lb25lIGNsdWUgbWUgaW4/CisKKyAgICAvKioKKyAgICAgKiBTcGVsbG91dCBydWxlcyBmb3IgUnVzc2lhbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBydXNzaWFuID0KKyAgICAgICAgIlx1MDQzZFx1MDQzZVx1MDQzYlx1MDQ0YzsgXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkOyBcdTA0MzRcdTA0MzJcdTA0MzA7IFx1MDQ0Mlx1MDQ0MFx1MDQzODsgIgorICAgICAgICArICJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0NGJcdTA0NDBcdTA0MzU7IFx1MDQzZlx1MDQ0Zlx1MDQ0MjsgXHUwNDQ4XHUwNDM1XHUwNDQxXHUwNDQyOyAiCisgICAgICAgICsgIlx1MDQ0MVx1MDQzNVx1MDQzY1x1MDQ0YzsgXHUwNDMyXHUwNDNlXHUwNDQxXHUwNDM1XHUwNDNjXHUwNDRjOyBcdTA0MzRcdTA0MzVcdTA0MzJcdTA0NGZcdTA0NDI7XG4iCisgICAgICAgICsgIjEwOiBcdTA0MzRcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDI7ICIKKyAgICAgICAgKyAiXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDNkXHUwNDMwXHUwNDM0XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDRjO1xuIgorICAgICAgICArICJcdTA0MzRcdTA0MzJcdTA0MzVcdTA0M2RcdTA0M2RcdTA0MzBcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGM7ICIKKyAgICAgICAgKyAiXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDNkXHUwNDMwXHUwNDM0XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDRjOyAiCisgICAgICAgICsgIlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQ0Ylx1MDQ0MFx1MDQzZFx1MDQzMFx1MDQzNFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQ0YztcbiIKKyAgICAgICAgKyAiMTU6IFx1MDQzZlx1MDQ0Zlx1MDQ0Mlx1MDQzZFx1MDQzMFx1MDQzNFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQ0YzsgIgorICAgICAgICArICJcdTA0NDhcdTA0MzVcdTA0NDFcdTA0NDJcdTA0M2RcdTA0MzBcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGM7ICIKKyAgICAgICAgKyAiXHUwNDQxXHUwNDM1XHUwNDNjXHUwNDNkXHUwNDMwXHUwNDM0XHUwNDQ2XHUwNDMwXHUwNDQyXHUwNDRjOyAiCisgICAgICAgICsgIlx1MDQzMlx1MDQzZVx1MDQ0MVx1MDQzNVx1MDQzY1x1MDQzZFx1MDQzMFx1MDQzNFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQ0YzsgIgorICAgICAgICArICJcdTA0MzRcdTA0MzVcdTA0MzJcdTA0NGZcdTA0NDJcdTA0M2RcdTA0MzBcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGM7XG4iCisgICAgICAgICsgIjIwOiBcdTA0MzRcdTA0MzJcdTA0MzBcdTA0MzRcdTA0NDZcdTA0MzBcdTA0NDJcdTA0NGNbID4+XTtcbiIKKyAgICAgICAgKyAiMzA6IFx1MDQ0Mlx1MDQ0MFx1MDQzYlx1MDQzNFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQ0Y1sgPj5dO1xuIgorICAgICAgICArICI0MDogXHUwNDQxXHUwNDNlXHUwNDQwXHUwNDNlXHUwNDNhWyA+Pl07XG4iCisgICAgICAgICsgIjUwOiBcdTA0M2ZcdTA0NGZcdTA0NDJcdTA0NGNcdTA0MzRcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDJbID4+XTtcbiIKKyAgICAgICAgKyAiNjA6IFx1MDQ0OFx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQ0Y1x1MDQzNFx1MDQzNVx1MDQ0MVx1MDQ0Zlx1MDQ0MlsgPj5dO1xuIgorICAgICAgICArICI3MDogXHUwNDQxXHUwNDM1XHUwNDNjXHUwNDRjXHUwNDM0XHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQyWyA+Pl07XG4iCisgICAgICAgICsgIjgwOiBcdTA0MzJcdTA0M2VcdTA0NDFcdTA0MzVcdTA0M2NcdTA0NGNcdTA0MzRcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDJbID4+XTtcbiIKKyAgICAgICAgKyAiOTA6IFx1MDQzNFx1MDQzNVx1MDQzMlx1MDQ0Zlx1MDQzZFx1MDQzZVx1MDQ0MVx1MDQ0Mlx1MDQzZVsgPj5dO1xuIgorICAgICAgICArICIxMDA6IFx1MDQ0MVx1MDQ0Mlx1MDQzZVsgPj5dO1xuIgorICAgICAgICArICIyMDA6IDw8IFx1MDQ0MVx1MDQ0Mlx1MDQzZVsgPj5dO1xuIgorICAgICAgICArICIxMDAwOiBcdTA0NDJcdTA0NGJcdTA0NDFcdTA0NGZcdTA0NDdcdTA0MzBbID4+XTtcbiIKKyAgICAgICAgKyAiMjAwMDogPDwgXHUwNDQyXHUwNDRiXHUwNDQxXHUwNDRmXHUwNDQ3XHUwNDMwWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMDogXHUwNDNjXHUwNDM4XHUwNDNiXHUwNDNiXHUwNDM4XHUwNDNlXHUwNDNkWyA+Pl07XG4iCisgICAgICAgICsgIjIsMDAwLDAwMDogPDwgXHUwNDNjXHUwNDM4XHUwNDNiXHUwNDNiXHUwNDM4XHUwNDNlXHUwNDNkWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDA6ID0jLCMjMD07IjsKKyAgICAvLyBDYW4gc29tZW9uZSBzdXBwbHkgbWUgd2l0aCBpbmZvcm1hdGlvbiBvbiBuZWdhdGl2ZXMgYW5kIGRlY2ltYWxzPworICAgIC8vIEhvdyBhYm91dCB3b3JkcyBmb3IgYmlsbGlvbnMgYW5kIHRyaWxsaW9ucz8KKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBIZWJyZXcuICBIZWJyZXcgYWN0dWFsbHkgaGFzIGluZmxlY3RlZCBmb3JtcyBmb3IKKyAgICAgKiBtb3N0IG9mIHRoZSBsb3dlci1vcmRlciBudW1iZXJzLiAgVGhlIG1hc2N1bGluZSBmb3JtcyBhcmUgc2hvd24KKyAgICAgKiBoZXJlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGhlYnJldyA9CisgICAgICAgICJ6ZXJvIChpbmNvbXBsZXRlIGRhdGEpOyBcdTA1ZDBcdTA1ZDRcdTA1ZDM7IFx1MDVlOVx1MDVkMlx1MDVkOVx1MDVkOVx1MDVkZDsgXHUwNWU5XHUwNWRjXHUwNWQ1XHUwNWU5XHUwNWQ0O1xuIgorICAgICAgICArICI0OiBcdTA1ZDBcdTA1ZDNcdTA1ZDFcdTA1ZTZcdTA1ZDQ7IFx1MDVkN1x1MDVkMlx1MDVkNVx1MDVkOVx1MDVlOVx1MDVkNDsgXHUwNWU5XHUwNWU5XHUwNWQ0O1xuIgorICAgICAgICArICI3OiBcdTA1ZTlcdTA1ZDFcdTA1ZTZcdTA1ZDQ7IFx1MDVlOVx1MDVkZVx1MDVkNVx1MDVkMlx1MDVkNDsgXHUwNWVhXHUwNWU5XHUwNWU2XHUwNWQ0O1xuIgorICAgICAgICArICIxMDogXHUwNWU2XHUwNWU5XHUwNWQzXHUwNWQ0WyA+Pl07XG4iCisgICAgICAgICsgIjIwOiBcdTA1ZTZcdTA1ZTlcdTA1ZDNcdTA1ZDlcdTA1ZGRbID4+XTtcbiIKKyAgICAgICAgKyAiMzA6IFx1MDVlOVx1MDVkY1x1MDVkNVx1MDVlOVx1MDVkOVx1MDVkZFsgPj5dO1xuIgorICAgICAgICArICI0MDogXHUwNWQwXHUwNWQzXHUwNWQxXHUwNWU2XHUwNWQ5XHUwNWRkWyA+Pl07XG4iCisgICAgICAgICsgIjUwOiBcdTA1ZDdcdTA1ZGVcdTA1ZDlcdTA1ZTlcdTA1ZDlcdTA1ZGRbID4+XTtcbiIKKyAgICAgICAgKyAiNjA6IFx1MDVlOVx1MDVlOVx1MDVkOVx1MDVkZFsgPj5dO1xuIgorICAgICAgICArICI3MDogXHUwNWU5XHUwNWQxXHUwNWU2XHUwNWQ5XHUwNWRkWyA+Pl07XG4iCisgICAgICAgICsgIjgwOiBcdTA1ZTlcdTA1ZGVcdTA1ZDVcdTA1ZDJcdTA1ZDlcdTA1ZGRbID4+XTtcbiIKKyAgICAgICAgKyAiOTA6IFx1MDVlYVx1MDVlOVx1MDVlNlx1MDVkOVx1MDVkZFsgPj5dO1xuIgorICAgICAgICArICIxMDA6IFx1MDVkZVx1MDVkMFx1MDVkNFsgPj5dO1xuIgorICAgICAgICArICIyMDA6IDw8IFx1MDVkZVx1MDVkMFx1MDVkNFsgPj5dO1xuIgorICAgICAgICArICIxMDAwOiBcdTA1ZDBcdTA1ZGNcdTA1ZTNbID4+XTtcbiIKKyAgICAgICAgKyAiMjAwMDogPDwgXHUwNWQwXHUwNWRjXHUwNWUzWyA+Pl07XG4iCisgICAgICAgICsgIjEsMDAwLDAwMDogPSMsIyMwPSAoaW5jb21wbGV0ZSBkYXRhKTsiOworICAgIC8vIFRoaXMgZGF0YSBpcyB3b2VmdWxseSBpbmNvbXBsZXRlLiAgQ2FuIHNvbWVvbmUgZmlsbCBtZSBpbiBvbiB0aGUKKyAgICAvLyB2YXJpb3VzIGluZmxlY3RlZCBmb3JtcyBvZiB0aGUgbnVtYmVycywgd2hpY2ggc2VlbSB0byBiZSBuZWNlc3NhcnkKKyAgICAvLyB0byBkbyBIZWJyZXcgY29ycmVjdGx5PyAgQ2FuIHNvbW9uZSBzdXBwbHkgbWUgd2l0aCBkYXRhIGZvciB2YWx1ZXMKKyAgICAvLyBmcm9tIDEsMDAwLDAwMCBvbiB1cD8gIFdoYXQgYWJvdXQgdGhlIHdvcmQgZm9yIHplcm8/ICBXaGF0IGFib3V0CisgICAgLy8gaW5mb3JtYXRpb24gb24gbmVnYXRpdmVzIGFuZCBkZWNpbWFscz8KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gU2ltcGxlIGV4YW1wbGVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoaXMgcnVsZSBzZXQgYWRkcyBhbiBFbmdsaXNoIG9yZGluYWwgYWJicmV2aWF0aW9uIHRvIHRoZSBlbmQgb2YgYQorICAgICAqIG51bWJlci4gIEZvciBleGFtcGxlLCAyIGlzIGZvcm1hdHRlZCBhcyAiMm5kIi4gIFBhcnNpbmcgZG9lc24ndCB3b3JrIHdpdGgKKyAgICAgKiB0aGlzIHJ1bGUgc2V0LiAgVG8gcGFyc2UsIHVzZSBEZWNpbWFsRm9ybWF0IG9uIHRoZSBudW1lcmFsLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIG9yZGluYWwgPQorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGZvcm1hdHMgdGhlIG51bWVyYWwgYW5kIGNhbGxzICUlYWJicmV2IHRvCisgICAgICAgIC8vIHN1cHBseSB0aGUgYWJicmV2aWF0aW9uCisgICAgICAgICIlbWFpbjpcbiIKKyAgICAgICAgKyAiICAgID0jLCMjMD09JSVhYmJyZXY9O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IHN1cHBsaWVzIHRoZSBhYmJyZXZpYXRpb24KKyAgICAgICAgKyAiJSVhYmJyZXY6XG4iCisgICAgICAgICAgICAgICAvLyB0aGUgYWJicmV2aWF0aW9ucy4gIEV2ZXJ5dGhpbmcgZnJvbSA0IHRvIDE5IGVuZHMgaW4gInRoIgorICAgICAgICArICIgICAgdGg7IHN0OyBuZDsgcmQ7IHRoO1xuIgorICAgICAgICAgICAgICAgLy8gYXQgMjAsIHdlIGJlZ2luIHJlcGVhdGluZyB0aGUgY3ljbGUgZXZlcnkgMTAgKDEzIGlzICIxM3RoIiwKKyAgICAgICAgICAgICAgIC8vIGJ1dCAyMyBhbmQgMzMgYXJlICIyM3JkIiBhbmQgIjMzcmQiKSAgV2UgZG8gdGhpcyBieQorICAgICAgICAgICAgICAgLy8gaWdub3JpbmcgYWxsIGJ1ZyB0aGUgb25lcyBkaWdpdCBpbiBzZWxlY3RpbmcgdGhlIGFiYnJldmlhdGlvbgorICAgICAgICArICIgICAgMjA6ID4+O1xuIgorICAgICAgICAgICAgICAgLy8gYXQgMTAwLCB3ZSByZXBlYXQgdGhlIHdob2xlIGN5Y2xlIGJ5IGNvbnNpZGVyaW5nIG9ubHkgdGhlCisgICAgICAgICAgICAgICAvLyB0ZW5zIGFuZCBvbmVzIGRpZ2l0cyBpbiBwaWNraW5nIGFuIGFiYnJldmlhdGlvbgorICAgICAgICArICIgICAgMTAwOiA+PjtcbiI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGEgc2ltcGxlIG1lc3NhZ2UtZm9ybWF0dGluZyBleGFtcGxlLiAgTm9ybWFsbHkgb25lIHdvdWxkCisgICAgICogdXNlIENob2ljZUZvcm1hdCBhbmQgTWVzc2FnZUZvcm1hdCB0byBkbyBzb21ldGhpbmcgdGhpcyBzaW1wbGUsCisgICAgICogYnV0IHRoaXMgc2hvd3MgaXQgY291bGQgYmUgZG9uZSB3aXRoIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0b28uCisgICAgICogQSBtZXNzYWdlLWZvcm1hdHRpbmcgZXhhbXBsZSB0aGF0IG1pZ2h0IHdvcmsgYmV0dGVyIHdpdGgKKyAgICAgKiBSdWxlQmFzZWROdW1iZXJGb3JtYXQgYXBwZWFycyBsYXRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBtZXNzYWdlMSA9CisgICAgICAgIC8vIHRoaXMgcnVsZSBzdXJyb3VuZHMgd2hhdGV2ZXIgdGhlIG90aGVyIHJ1bGVzIHByb2R1Y2Ugd2l0aCB0aGUKKyAgICAgICAgLy8gcmVzdCBvZiB0aGUgc2VudGVuY2UKKyAgICAgICAgInguMDogVGhlIHNlYXJjaCBmb3VuZCA8PC47XG4iCisgICAgICAgIC8vIHVzZSB3b3JkcyBmb3IgdmFsdWVzIGJlbG93IDEwIChhbmQgY2hhbmdlIHRvICJmaWxlIiBmb3IgMSkKKyAgICAgICAgKyAibm8gZmlsZXM7IG9uZSBmaWxlOyB0d28gZmlsZXM7IHRocmVlIGZpbGVzOyBmb3VyIGZpbGVzOyBmaXZlIGZpbGVzO1xuIgorICAgICAgICArICIgICAgc2l4IGZpbGVzOyBzZXZlbiBmaWxlczsgZWlnaHQgZmlsZXM7IG5pbmUgZmlsZXM7XG4iCisgICAgICAgIC8vIHVzZSBudW1lcmFscyBmb3IgdmFsdWVzIGhpZ2hlciB0aGFuIDEwCisgICAgICAgICsgIj0jLCMjMD0gZmlsZXM7IjsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gRnJhY3Rpb24gaGFuZGxpbmcKKyAgICAvLworICAgIC8vIFRoZSBuZXh0IGZldyBleGFtcGxlcyBzaG93IGhvdyBSdWxlQmFzZWROdW1iZXJGb3JtYXQgY2FuIGJlIHVzZWQgZm9yCisgICAgLy8gbW9yZSBmbGV4aWJsZSBoYW5kbGluZyBvZiBmcmFjdGlvbnMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogVGhpcyBleGFtcGxlIGZvcm1hdHMgYSBudW1iZXIgaW4gb25lIG9mIHRoZSB0d28gc3R5bGVzIG9mdGVuIHVzZWQKKyAgICAgKiBvbiBjaGVja3MuICAlZG9sbGFycy1hbmQtaHVuZHJlZHRocyBmb3JtYXRzIGNlbnRzIGFzIGh1bmRyZWR0aHMgb2YKKyAgICAgKiBhIGRvbGxhciAoMjMuNDAgY29tZXMgb3V0IGFzICJ0d2VudHktdGhyZWUgYW5kIDQwLzEwMCBkb2xsYXJzIikuCisgICAgICogJWRvbGxhcnMtYW5kLWNlbnRzIGZvcm1hdHMgaW4gZG9sbGFycyBhbmQgY2VudHMgKDIzLjQwIGNvbWVzIG91dCBhcworICAgICAqICJ0d2VudHktdGhyZWUgZG9sbGFycyBhbmQgZm9ydHkgY2VudHMiKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGRvbGxhcnNBbmRDZW50cyA9CisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyBudW1iZXJzIGFzIGRvbGxhcnMgYW5kIGNlbnRzCisgICAgICAgICIlZG9sbGFycy1hbmQtY2VudHM6XG4iCisgICAgICAgICAgICAgICAvLyBpZiB0aGUgdmFsdWUgaXMgMSBvciBtb3JlLCBwdXQgInh4IGRvbGxhcnMgYW5kIHl5IGNlbnRzIi4KKyAgICAgICAgICAgICAgIC8vIHRoZSAiYW5kIHkgY2VudHMiIHBhcnQgaXMgc3VwcHJlc3NlZCBpZiB0aGUgdmFsdWUgaXMgYW4KKyAgICAgICAgICAgICAgIC8vIGV2ZW4gbnVtYmVyIG9mIGRvbGxhcnMKKyAgICAgICAgKyAiICAgIHguMDogPDwgW2FuZCA+JSVjZW50cz5dO1xuIgorICAgICAgICAgICAgICAgLy8gaWYgdGhlIHZhbHVlIGlzIGJldHdlZW4gMCBhbmQgMSwgcHV0ICJ4eCBjZW50cyIKKyAgICAgICAgKyAiICAgIDAueDogPiUlY2VudHM+O1xuIgorICAgICAgICAgICAgICAgLy8gdGhlc2UgdGhyZWUgcnVsZXMgdGFrZSBjYXJlIG9mIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsCisgICAgICAgICAgICAgICAvLyBmb3JtcyBvZiAiZG9sbGFyIiBhbmQgdXNlICUlbWFpbiB0byBmb3JtYXQgdGhlIG51bWJlcgorICAgICAgICArICIgICAgMDogemVybyBkb2xsYXJzOyBvbmUgZG9sbGFyOyA9JSVtYWluPSBkb2xsYXJzO1xuIgorICAgICAgICAvLyB0aGVzZSBhcmUgdGhlIHJlZ3VsYXIgVS5TLiBFbmdsaXNoIG51bWJlciBzcGVsbG91dCBydWxlcworICAgICAgICArICIlJW1haW46XG4iCisgICAgICAgICsgIiAgICB6ZXJvOyBvbmU7IHR3bzsgdGhyZWU7IGZvdXI7IGZpdmU7IHNpeDsgc2V2ZW47IGVpZ2h0OyBuaW5lO1xuIgorICAgICAgICArICIgICAgdGVuOyBlbGV2ZW47IHR3ZWx2ZTsgdGhpcnRlZW47IGZvdXJ0ZWVuOyBmaWZ0ZWVuOyBzaXh0ZWVuO1xuIgorICAgICAgICArICIgICAgICAgIHNldmVudGVlbjsgZWlnaHRlZW47IG5pbmV0ZWVuO1xuIgorICAgICAgICArICIgICAgMjA6IHR3ZW50eVstPj5dO1xuIgorICAgICAgICArICIgICAgMzA6IHRoaXJ0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNDA6IGZvcnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDogZmlmdHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzaXh0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNzA6IHNldmVudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBlaWdodHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBuaW5ldHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPDwgaHVuZHJlZFsgPj5dO1xuIgorICAgICAgICArICIgICAgMTAwMDogPDwgdGhvdXNhbmRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMDogPDwgYmlsbGlvblsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDw8IHRyaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSB0YWtlcyBjYXJlIG9mIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIHZhbHVlLiAgSXQKKyAgICAgICAgLy8gbXVsdGlwbGllcyB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIGJ5CisgICAgICAgIC8vIDEwMCwgZm9ybWF0cyBpdCB3aXRoICUlbWFpbiwgYW5kIHRoZW4gYWRkZXMgdGhlIHdvcmQgImNlbnQiIG9yCisgICAgICAgIC8vICJjZW50cyIgdG8gdGhlIGVuZC4gIChUaGUgdGV4dCBpbiBicmFja2V0cyBpcyBvbWl0dGVkIGlmIHRoZQorICAgICAgICAvLyBudW1lcmF0b3Igb2YgdGhlIGZyYWN0aW9uIGlzIDEuKQorICAgICAgICArICIlJWNlbnRzOlxuIgorICAgICAgICArICIgICAgMTAwOiA8JSVtYWluPCBjZW50W3NdO1xuIgorCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyBudW1iZXJzIGFzIGRvbGxhcnMgYW5kIGh1bmRyZWR0aHMgb2YgZG9sbGFycworICAgICAgICArICIlZG9sbGFycy1hbmQtaHVuZHJlZHRoczpcbiIKKyAgICAgICAgICAgICAgIC8vIHRoaXMgcnVsZSB0YWtlcyBjYXJlIG9mIHRoZSBnZW5lcmFsIHNoZWxsIG9mIHRoZSBvdXRwdXQKKyAgICAgICAgICAgICAgIC8vIHN0cmluZy4gIFdlIGFsd2F5cyBzaG93IHRoZSBjZW50cywgZXZlbiB3aGVuIHRoZXJlIGFyZW4ndAorICAgICAgICAgICAgICAgLy8gYW55LiAgQmVjYXVzZSBvZiB0aGlzLCB0aGUgd29yZCBpcyBhbHdheXMgImRvbGxhcnMiLS0KKyAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhlIHNpbmd1bGFyIGZvcm0uICBXZSB1c2UKKyAgICAgICAgICAgICAgIC8vICUlbWFpbiB0byBmb3JtYXQgdGhlIG51bWJlciBvZiBkb2xsYXJzIGFuZCAlJWh1bmRyZWR0aHMgdG8KKyAgICAgICAgICAgICAgIC8vIGZvcm1hdCB0aGUgbnVtYmVyIG9mIGNlbnRzCisgICAgICAgICsgIiAgICB4LjA6IDwlJW1haW48IGFuZCA+JSVodW5kcmVkdGhzPi8xMDAgZG9sbGFycztcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBmb3JtYXRzIHRoZSBjZW50cyBmb3IgJWRvbGxhcnMtYW5kLWh1bmRyZWR0aHMuCisgICAgICAgIC8vIEl0IG11bHRpcGxpZXMgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyIGJ5IDEwMCBhbmQgZm9ybWF0cworICAgICAgICAvLyB0aGUgcmVzdWx0IHVzaW5nIGEgRGVjaW1hbEZvcm1hdCAoIjAwIiB0ZWxscyB0aGUgRGVjaW1hbEZvcm1hdCB0bworICAgICAgICAvLyBhbHdheXMgdXNlIHR3byBkaWdpdHMsIGV2ZW4gZm9yIG51bWJlcnMgdW5kZXIgMTApCisgICAgICAgICsgIiUlaHVuZHJlZHRoczpcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPDAwPDtcbiI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHJ1bGUgc2V0IHNob3dzIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciBhcyBhIGZyYWN0aW9uCisgICAgICogd2l0aCBhIHBvd2VyIG9mIDEwIGFzIHRoZSBkZW5vbWluYXRvci4gIFNvbWUgbGFuZ3VhZ2VzIGRvbid0IHNwZWxsCisgICAgICogb3V0IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgYSBudW1iZXIgYXMgInBvaW50IG9uZSB0d28gdGhyZWUsIiBidXQKKyAgICAgKiBhbHdheXMgcmVuZGVyIGl0IGFzIGEgZnJhY3Rpb24uICBJZiB3ZSBzdGlsbCB3YW50IHRvIHRyZWF0IHRoZSBmcmFjdGlvbmFsCisgICAgICogcGFydCBvZiB0aGUgbnVtYmVyIGFzIGEgZGVjaW1hbCwgdGhlbiB0aGUgZnJhY3Rpb24ncyBkZW5vbWluYXRvcgorICAgICAqIGlzIGFsd2F5cyBhIHBvd2VyIG9mIDEwLiAgVGhpcyBleGFtcGxlIGRvZXMgdGhhdDogMjMuMTI1IGlzIGZvcm1hdHRlZAorICAgICAqIGFzICJ0d2VudHktdGhyZWUgYW5kIG9uZSBodW5kcmVkIHR3ZW50eS1maXZlIHRob3VzYW5kdGhzIiAoYXMgb3Bwb3NlZAorICAgICAqIHRvICJ0d2VudHktdGhyZWUgcG9pbnQgb25lIHR3byBmaXZlIiBvciAidHdlbnR5LXRocmVlIGFuZCBvbmUgZWlnaHRoIikuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZGVjaW1hbEFzRnJhY3Rpb24gPQorICAgICAgICAvLyB0aGUgcmVndWxhciBVLlMuIEVuZ2xpc2ggc3BlbGxvdXQgcnVsZXMsIHdpdGggb25lIGRpZmZlcmVuY2UKKyAgICAgICAgIiVtYWluOlxuIgorICAgICAgICArICIgICAgLXg6IG1pbnVzID4+O1xuIgorICAgICAgICAgICAgICAgLy8gdGhlIGRpZmZlcmVuY2UuICBUaGlzIHJ1bGUgdXNlcyAlJWZyYWMgdG8gc2hvdyB0aGUgZnJhY3Rpb25hbAorICAgICAgICAgICAgICAgLy8gcGFydCBvZiB0aGUgbnVtYmVyLiAgVGV4dCBpbiBicmFja2V0cyBpcyBvbWl0dGVkIHdoZW4gdGhlCisgICAgICAgICAgICAgICAvLyB2YWx1ZSBpcyBiZXR3ZWVuIDAgYW5kIDEgKGNhdXNpbmcgMC4zIHRvIGNvbWUgb3V0IGFzICJ0aHJlZQorICAgICAgICAgICAgICAgLy8gdGVudGhzIiBpbnN0ZWFkIG9mICJ6ZXJvIGFuZCB0aHJlZSB0ZW50aHMiKS4KKyAgICAgICAgKyAiICAgIHgueDogWzw8IGFuZCBdPiUlZnJhYz47XG4iCisgICAgICAgICsgIiAgICB6ZXJvOyBvbmU7IHR3bzsgdGhyZWU7IGZvdXI7IGZpdmU7IHNpeDsgc2V2ZW47IGVpZ2h0OyBuaW5lO1xuIgorICAgICAgICArICIgICAgdGVuOyBlbGV2ZW47IHR3ZWx2ZTsgdGhpcnRlZW47IGZvdXJ0ZWVuOyBmaWZ0ZWVuOyBzaXh0ZWVuO1xuIgorICAgICAgICArICIgICAgICAgIHNldmVudGVlbjsgZWlnaHRlZW47IG5pbmV0ZWVuO1xuIgorICAgICAgICArICIgICAgdHdlbnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICAzMDogdGhpcnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA0MDogZm9ydHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDUwOiBmaWZ0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNjA6IHNpeHR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA3MDogc2V2ZW50eVstPj5dO1xuIgorICAgICAgICArICIgICAgODA6IGVpZ2h0eVstPj5dO1xuIgorICAgICAgICArICIgICAgOTA6IG5pbmV0eVstPj5dO1xuIgorICAgICAgICArICIgICAgMTAwOiA8PCBodW5kcmVkWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiA8PCB0aG91c2FuZFsgPj5dO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8PCBtaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgdHJpbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgLy8gdGhlIHJ1bGUgc2V0IHRoYXQgZm9ybWF0cyB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIuCisgICAgICAgIC8vIFRoZSBydWxlIHRoYXQgaXMgdXNlZCBpcyB0aGUgb25lIHRoYXQsIHdoZW4gaXRzIGJhYXNlIHZhbHVlIGlzCisgICAgICAgIC8vIG11bHRpcGxpZWQgYnkgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCwKKyAgICAgICAgLy8gcHJvZHVjZXMgdGhlIHJlc3VsdCBjbG9zZXN0IHRvIHplcm8uICBUaHVzLCB0aGUgYmFzZSB2YWx1ZXMgYXJlCisgICAgICAgIC8vIHByb3NwZWN0aXZlIGRlbm9taW5hdG9ycyBvZiB0aGUgZnJhY3Rpb24uICBUaGUgPDwgbWFya3MgdGhlIHBsYWNlCisgICAgICAgIC8vIHdoZXJlIHRoZSBudW1lcmF0b3Igb2YgdGhlIGZyYWN0aW9uICh0aGUgcmVzdWx0IG9mIG11bHRpcGx5aW5nIHRoZQorICAgICAgICAvLyBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciBieSB0aGUgcnVsZSdzIGJhc2UgdmFsdWUpIGlzCisgICAgICAgIC8vIHBsYWNlZC4gIFRleHQgaW4gYnJhY2tldHMgaXMgb21pdHRlZCB3aGVuIHRoZSBudW1lcmF0b3IgaXMgMSwgZ2l2aW5nCisgICAgICAgIC8vIHVzIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zIG9mIHRoZSB3b3Jkcy4KKyAgICAgICAgLy8gW0luIGxhbmd1YWdlcyB3aGVyZSB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbCBhcmUgY29tcGxldGVseSBkaWZmZXJlbnQKKyAgICAgICAgLy8gd29yZHMsIHRoZSBydWxlIGNhbiBqdXN0IGJlIHN0YXRlZCB0d2ljZTogdGhlIHNlY29uZCB0aW1lIHdpdGgKKyAgICAgICAgLy8gdGhlIHBsdXJhbCBmb3JtLl0KKyAgICAgICAgKyAiJSVmcmFjOlxuIgorICAgICAgICArICIgICAgMTA6IDw8IHRlbnRoW3NdO1xuIgorICAgICAgICArICIgICAgMTAwOiA8PCBodW5kcmVkdGhbc107XG4iCisgICAgICAgICsgIiAgICAxMDAwOiA8PCB0aG91c2FuZHRoW3NdO1xuIgorICAgICAgICArICIgICAgMTAsMDAwOiA8PCB0ZW4tdGhvdXNhbmR0aFtzXTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDA6IDw8IGh1bmRyZWQtdGhvdXNhbmR0aFtzXTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvbnRoW3NdOyI7CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgd2l0aCBjbG9zZXN0IGZyYWN0aW9uLiAgVGhpcyBleGFtcGxlIGZvcm1hdHMgYSB2YWx1ZSB1c2luZworICAgICAqIG51bWVyYWxzLCBidXQgc2hvd3MgdGhlIGZyYWN0aW9uYWwgcGFydCBhcyBhIHJhdGlvIChmcmFjdGlvbikgcmF0aGVyCisgICAgICogdGhhbiBhIGRlY2ltYWwuICBUaGUgZnJhY3Rpb24gYWx3YXlzIGhhcyBhIGRlbm9taW5hdG9yIGJldHdlZW4gMiBhbmQgMTAuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY2xvc2VzdEZyYWN0aW9uID0KKyAgICAgICAgIiVtYWluOlxuIgorICAgICAgICAgICAgICAgLy8gdGhpcyBydWxlIGZvcm1hdHMgdGhlIG51bWJlciBpZiBpdCdzIDEgb3IgbW9yZS4gIEl0IGZvcm1hdHMKKyAgICAgICAgICAgICAgIC8vIHRoZSBpbnRlZ3JhbCBwYXJ0IHVzaW5nIGEgRGVjaW1hbEZvcm1hdCAoIiMsIyMwIiBwdXRzCisgICAgICAgICAgICAgICAvLyB0aG91c2FuZHMgc2VwYXJhdG9ycyBpbiB0aGUgcmlnaHQgcGxhY2VzKSBhbmQgdGhlIGZyYWN0aW9uYWwKKyAgICAgICAgICAgICAgIC8vIHBhcnQgdXNpbmcgJSVmcmFjLiAgSWYgdGhlcmUgaXMgbm8gZnJhY3Rpb25hbCBwYXJ0LCBpdAorICAgICAgICAgICAgICAgLy8ganVzdCBzaG93cyB0aGUgaW50ZWdyYWwgcGFydC4KKyAgICAgICAgKyAiICAgIHguMDogPCMsIyMwPFsgPiUlZnJhYz5dO1xuIgorICAgICAgICAgICAgICAgLy8gdGhpcyBydWxlIGZvcm1hdHMgdGhlIG51bWJlciBpZiBpdCdzIGJldHdlZW4gMCBhbmQgMS4gIEl0CisgICAgICAgICAgICAgICAvLyBzaG93cyBvbmx5IHRoZSBmcmFjdGlvbmFsIHBhcnQgKDAuNSBzaG93cyB1cCBhcyAiMS8yLCIgbm90CisgICAgICAgICAgICAgICAvLyAiMCAxLzIiKQorICAgICAgICArICIgICAgMC54OiA+JSVmcmFjPjtcbiIKKyAgICAgICAgLy8gdGhlIGZyYWN0aW9uIHJ1bGUgc2V0LiAgVGhpcyB3b3JrcyB0aGUgc2FtZSB3YXkgYXMgdGhlIG9uZSBpbiB0aGUKKyAgICAgICAgLy8gcHJlY2VkaW5nIGV4YW1wbGU6IFdlIG11bHRpcGx5IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlcgorICAgICAgICAvLyBiZWluZyBmb3JtYXR0ZWQgYnkgZWFjaCBydWxlJ3MgYmFzZSB2YWx1ZSBhbmQgdXNlIHRoZSBydWxlIHRoYXQKKyAgICAgICAgLy8gcHJvZHVjZXMgdGhlIHJlc3VsdCBjbG9zZXN0IHRvIDAgKG9yIHRoZSBmaXJzdCBydWxlIHRoYXQgcHJvZHVjZXMgMCkuCisgICAgICAgIC8vIFNpbmNlIHdlIG9ubHkgcHJvdmlkZSBydWxlcyBmb3IgdGhlIG51bWJlcnMgZnJvbSAyIHRvIDEwLCB3ZSBrbm93CisgICAgICAgIC8vIHdlJ2xsIGdldCBhIGZyYWN0aW9uIHdpdGggYSBkZW5vbWluYXRvciBiZXR3ZWVuIDIgYW5kIDEwLgorICAgICAgICAvLyAiPDA8IiBjYXVzZXMgdGhlIG51bWVyYXRvciBvZiB0aGUgZnJhY3Rpb24gdG8gYmUgZm9ybWF0dGVkCisgICAgICAgIC8vIHVzaW5nIG51bWVyYWxzCisgICAgICAgICsgIiUlZnJhYzpcbiIKKyAgICAgICAgKyAiICAgIDI6IDEvMjtcbiIKKyAgICAgICAgKyAiICAgIDM6IDwwPC8zO1xuIgorICAgICAgICArICIgICAgNDogPDA8LzQ7XG4iCisgICAgICAgICsgIiAgICA1OiA8MDwvNTtcbiIKKyAgICAgICAgKyAiICAgIDY6IDwwPC82O1xuIgorICAgICAgICArICIgICAgNzogPDA8Lzc7XG4iCisgICAgICAgICsgIiAgICA4OiA8MDwvODtcbiIKKyAgICAgICAgKyAiICAgIDk6IDwwPC85O1xuIgorICAgICAgICArICIgICAgMTA6IDwwPC8xMDtcbiI7CisKKyAgICAvKioKKyAgICAgKiBBbWVyaWNhbiBzdG9jay1wcmljZSBmb3JtYXR0aW5nLiAgTm9uLWludGVncmFsIHN0b2NrIHByaWNlcyBhcmUgc3RpbGwKKyAgICAgKiBnZW5lcmFsbHkgc2hvd24gaW4gZWlnaHRocyBvciBzaXh0ZWVudGhzIG9mIGRvbGxhcnMgaW5zdGVhZCBvZiBkb2xsYXJzCisgICAgICogYW5kIGNlbnRzLiAgVGhpcyBleGFtcGxlIGZvcm1hdHMgc3RvY2sgcHJpY2VzIGluIHRoaXMgd2F5IGlmIHBvc3NpYmxlLAorICAgICAqIGFuZCBpbiBkb2xsYXJzIGFuZCBjZW50cyBpZiBub3QuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgc3RvY2sgPQorICAgICAgICAiJW1haW46XG4iCisgICAgICAgICAgICAgICAvLyB0aGlzIHJ1bGUgZm9ybWF0cyB0aGUgaW50ZWdyYWwgcGFydCBvZiB0aGUgbnVtYmVyIGluIG51bWVyYWxzCisgICAgICAgICAgICAgICAvLyBhbmQgKGlmIG5lY2Vzc2FyeSkgdGhlIGZyYWN0aW9uYWwgcGFydCB1c2luZyAlJWZyYWMxCisgICAgICAgICsgIiAgICB4LjA6IDwjLCMjMDxbPiUlZnJhYzE+XTtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoaXMgcnVsZSBpcyB1c2VkIGZvciB2YWx1ZXMgYmV0d2VlbiAwIGFuZCAxIGFuZCBvbWl0cyB0aGUKKyAgICAgICAgICAgICAgIC8vIGludGVncmFsIHBhcnQKKyAgICAgICAgKyAiICAgIDAueDogPiUlZnJhYzI+O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgdG8gZm9ybWF0IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciB3aGVuCisgICAgICAgIC8vIHRoZXJlJ3MgYW4gaW50ZWdyYWwgcGFydCBiZWZvcmUgaXQgKGFnYWluLCB3ZSB0cnkgYWxsIGRlbm9taW5hdG9ycworICAgICAgICAvLyBhbmQgdXNlIHRoZSAiYmVzdCIgb25lKQorICAgICAgICArICIlJWZyYWMxOlxuIgorICAgICAgICAgICAgICAgLy8gZm9yIGV2ZW4gbXVsdGlwbGVzIG9mIDEvNCwgZm9ybWF0IHRoZSBmcmFjdGlvbiB1c2luZyB0aGUKKyAgICAgICAgICAgICAgIC8vIHR5cG9ncmFwaGVyJ3MgZnJhY3Rpb25zCisgICAgICAgICsgIiAgICA0OiA8JSVxdWFydGVyczw7XG4iCisgICAgICAgICAgICAgICAvLyBmb3JtYXQgdGhlIHZhbHVlIGFzIGEgbnVtYmVyIG9mIGVpZ2h0aHMsIHNpeHRlZW50aHMsIG9yCisgICAgICAgICAgICAgICAvLyB0aGlydHktc2Vjb25kcywgd2hpY2hldmVyIHByb2R1Y2VzIHRoZSBtb3N0IGFjY3VyYXRlIHZhbHVlLgorICAgICAgICAgICAgICAgLy8gVGhlIGFwb3N0cm9waGUgYXQgdGhlIGZyb250IG9mIHRoZXNlIHJ1bGVzIGlzIGlnbm9yZWQsIGJ1dAorICAgICAgICAgICAgICAgLy8gaXQgbWFrZXMgdGhlIHNwYWNlIHRoYXQgZm9sbG93cyBpdCBzaWduaWZpY2FudC4gIFRoaXMgcHV0cyBhCisgICAgICAgICAgICAgICAvLyBzcGFjZSBiZXR3ZWVuIHRoZSB2YWx1ZSdzIGludGVncmFsIGFuZCBmcmFjdGlvbmFsIHBhcnRzIHNvCisgICAgICAgICAgICAgICAvLyB5b3UgY2FuIHJlYWQgaXQKKyAgICAgICAgKyAiICAgIDg6ICcgPDA8Lzg7XG4iCisgICAgICAgICsgIiAgICAxNjogJyA8MDwvMTY7XG4iCisgICAgICAgICsgIiAgICAzMjogJyA8MDwvMzI7XG4iCisgICAgICAgICAgICAgICAvLyBpZiB3ZSBjYW4ndCByZWFzb25hYmx5IGZvcm1hdCB0aGUgbnVtYmVyIGluIHBvd2VycyBvZiAyLAorICAgICAgICAgICAgICAgLy8gdGhlbiBzaG93IGl0IGFzIGRvbGxhcnMgYW5kIGNlbnRzCisgICAgICAgICsgIiAgICAxMDA6IC48MDA8O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgd2hlbiB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSB2YWx1ZSBzdGFuZHMKKyAgICAgICAgLy8gYWxvbmUKKyAgICAgICAgKyAiJSVmcmFjMjpcbiIKKyAgICAgICAgKyAiICAgIDQ6IDwlJXF1YXJ0ZXJzPDtcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciBmcmFjdGlvbnMgdGhhdCB3ZSBjYW4ndCBzaG93IHVzaW5nIHR5cG9ncmFwaGVyJ3MgZnJhY3Rpb25zLAorICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSB0byBwdXQgYSBzcGFjZSBiZWZvcmUgdGhlIGZyYWN0aW9uCisgICAgICAgICsgIiAgICA4OiA8MDwvODtcbiIKKyAgICAgICAgKyAiICAgIDE2OiA8MDwvMTY7XG4iCisgICAgICAgICsgIiAgICAzMjogPDA8LzMyO1xuIgorICAgICAgICAgICAgICAgLy8gYnV0IGRvbGxhcnMgYW5kIGNlbnRzIGxvb2sgYmV0dGVyIHdpdGggYSBsZWFkaW5nIDAKKyAgICAgICAgKyAiICAgIDEwMDogMC48MDA8O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGZvcm1hdHMgMS80LCAxLzIsIGFuZCAzLzQgdXNpbmcgdHlwb2dyYXBoZXIncyBmcmFjdGlvbnMKKyAgICAgICAgKyAiJSVxdWFydGVyczpcbiIKKyAgICAgICAgKyAiICAgIDsgXHUwMGJjOyBcdTAwYmQ7IFx1MDBiZTtcbiIKKyAgICAgICAgLy8gdGhlcmUgYXJlIHRoZSBsZW5pZW50LXBhcnNlIHJ1bGVzLiAgVGhlc2UgYWxsb3cgdGhlIHVzZXIgdG8gdHlwZQorICAgICAgICAvLyAiMS80LCIgIjEvMiwiIGFuZCAiMy80IiBpbnN0ZWFkIG9mIHRoZWlyIHR5cG9ncmFwaGljYWwgY291bnRlcnBhcnRzCisgICAgICAgIC8vIGFuZCBzdGlsbCBoYXZlIHRoZW0gYmUgdW5kZXJzdG9vZCBieSB0aGUgZm9ybWF0dGVyCisgICAgICAgICsgIiUlbGVuaWVudC1wYXJzZTpcbiIKKyAgICAgICAgKyAiICAgICYgJzEvNCcgLCBcdTAwYmNcbiIKKyAgICAgICAgKyAiICAgICYgJzEvMicgLCBcdTAwYmRcbiIKKyAgICAgICAgKyAiICAgICYgJzMvNCcgLCBcdTAwYmVcbjsiOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBDaGFuZ2luZyBkaW1lbnNpb25zCisgICAgLy8KKyAgICAvLyBUaGUgbmV4dCBmZXcgZXhhbXBsZXMgZGVtb25zdHJhdGUgdXNpbmcgYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdG8KKyAgICAvLyBjaGFuZ2UgdGhlIHVuaXRzIGEgdmFsdWUgaXMgZGVub21pbmF0ZWQgaW4gZGVwZW5kaW5nIG9uIGl0cyBtYWduaXR1ZGUKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogVGhlIGV4YW1wbGUgc2hvd3MgbGFyZ2UgbnVtYmVycyB0aGUgd2F5IHRoZXkgb2Z0ZW4gYXBwZWFyIGlzIG53ZXNwYXBlcnM6CisgICAgICogMSwyMDAsMDAwIGlzIGZvcm1hdHRlZCBhcyAiMS4yIG1pbGxpb24iLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGFiYkVuZ2xpc2ggPQorICAgICAgICAiPSMsIyMwPTtcbiIKKyAgICAgICAgLy8gdGhpcyBpcyBmYWlybHkgc2VsZi1leHBsYW5hdG9yeSwgYnV0IG5vdGUgdGhhdCB0aGUgPDwgc3Vic3RpdHV0aW9uCisgICAgICAgIC8vIGNhbiBzaG93IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIHN1YnN0aXR1dGlvbiB2YWx1ZSBpZiB0aGUgdXNlcgorICAgICAgICAvLyB3YW50cyBpdAorICAgICAgICArICIxLDAwMCwwMDA6IDwjIzAuIyMjPCBtaWxsaW9uO1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwOiA8IyMwLiMjIzwgYmlsbGlvbjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDA6IDwjIzAuIyMjPCB0cmlsbGlvbjtcbiI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV4YW1wbGUgdGFrZXMgYSBudW1iZXIgb2YgbWV0ZXJzIGFuZCBmb3JtYXRzIGl0IGluIHdoYXRldmVyIHVuaXQKKyAgICAgKiB3aWxsIHByb2R1Y2UgYSBudW1iZXIgd2l0aCBmcm9tIG9uZSB0byB0aHJlZSBkaWdpdHMgYmVmb3JlIHRoZSBkZWNpbWFsCisgICAgICogcG9pbnQuICBGb3IgZXhhbXBsZSwgMjMwLDAwMCBpcyBmb3JtYXR0ZWQgYXMgIjIzMCBrbSIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgdW5pdHMgPQorICAgICAgICAiJW1haW46XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIGJldHdlZW4gMCBhbmQgMSwgZGVsZWdhdGUgdG8gJSVzbWFsbAorICAgICAgICArICIgICAgMC54OiA+JSVzbWFsbD47XG4iCisgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHNob3cgYmV0d2VlbiAzIGFuZCA2IHNpZ25pZmljYW50IGRpZ2l0cyBvZiB0aGUgdmFsdWUKKyAgICAgICAgICAgICAgIC8vIGFsb25nIHdpdGggdGhlIG1vc3QgYXBwcm9wcmlhdGUgdW5pdAorICAgICAgICArICIgICAgMDogPSMjMC4jIyM9IG07XG4iCisgICAgICAgICsgIiAgICAxLDAwMDogPCMjMC4jIyM8IGttO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8IyMwLiMjIzwgTW07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwOiA8IyMwLiMjIzwgR207XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPCMsIyMwLiMjIzwgVG07XG4iCisgICAgICAgIC8vICUlc21hbGwgZm9ybWF0cyB0aGUgbnVtYmVyIHdoZW4gaXQncyBsZXNzIHRoZW4gMS4gIEl0IG11bHRpcGxpZXMgdGhlCisgICAgICAgIC8vIHZhbHVlIGJ5IG9uZSBiaWxsaW9uLCBhbmQgdGhlbiB1c2VzICUlc21hbGwyIHRvIGFjdHVhbGx5IGRvIHRoZQorICAgICAgICAvLyBmb3JtYXR0aW5nLgorICAgICAgICArICIlJXNtYWxsOlxuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwLDAwMCwwMDA6IDwlJXNtYWxsMjw7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgYWN0dWFsbHkgZm9ybWF0cyBzbWFsbCB2YWx1ZXMuICAlJXNtYWxsIHBhc3NlcyB0aGlzCisgICAgICAgIC8vIHJ1bGUgc2V0IGEgbnVtYmVyIG9mIHBpY29tZXRlcnMsIGFuZCBpdCB0YWtlcyBjYXJlIG9mIHNjYWxpbmcgdXAgYXMKKyAgICAgICAgLy8gYXBwcm9wcmlhdGUgaW4gZXhhY3RseSB0aGUgc2FtZSB3YXkgJW1haW4gZG9lcyAod2UgY2FuJ3Qgbm9ybWFsbHkKKyAgICAgICAgLy8gaGFuZGxlIGZyYWN0aW9uYWwgdmFsdWVzIHRoaXMgd2F5OiBoZXJlLCB3ZSdyZSBjb25jZXJuZWQgYWJvdXQKKyAgICAgICAgLy8gbWFnbml0dWRlOyBtb3N0IG9mIHRoZSB0aW1lLCB3ZSdyZSBjb25jZXJuZWQgYWJvdXQgcHJlY3Npb24pCisgICAgICAgICsgIiUlc21hbGwyOlxuIgorICAgICAgICArICIgICAgMDogPSMjMD0gcG07XG4iCisgICAgICAgICsgIiAgICAxLDAwMDogPCMjMC4jIyM8IG5tO1xuIgorICAgICAgICArICIgICAgMSwwMDAsMDAwOiA8IyMwLiMjIzwgXHUwMGI1bTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDA6IDwjIzAuIyMjPCBtbTtcbiI7CisKKyAgICAvKioKKyAgICAgKiBBIG1vcmUgY29tcGxpY2F0ZWQgbWVzc2FnZS1mb3JtYXR0aW5nIGV4YW1wbGUuICBIZXJlLCBpbiBhZGRpdGlvbiB0bworICAgICAqIGhhbmRsaW5nIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIHZlcnNpb25zIG9mIHRoZSB3b3JkLCB0aGUgdmFsdWUgaXMKKyAgICAgKiBkZW5vbWluYXRlZCBpbiBieXRlcywga2lsb2J5dGVzLCBvciBtZWdhYnl0ZXMgZGVwZW5kaW5nIG9uIGl0cyBtYWduaXR1ZGUuCisgICAgICogQWxzbyBub3RpY2UgdGhhdCBpdCBjb3JyZWN0bHkgdHJlYXRzIGEga2lsb2J5dGUgYXMgMSwwMjQgYnl0ZXMgKG5vdCAxLDAwMCksCisgICAgICogYW5kIGEgbWVnYWJ5dGUgYXMgMSwwMjQga2lsb2J5dGVzIChub3QgMSwwMDApLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIG1lc3NhZ2UyID0KKyAgICAgICAgLy8gdGhpcyBydWxlIHN1cHBsaWVzIHRoZSBzaGVsbCBvZiB0aGUgc2VudGVuY2UKKyAgICAgICAgInguMDogVGhlcmUgPDwgZnJlZSBzcGFjZSBvbiB0aGUgZGlzay47XG4iCisgICAgICAgIC8vIGhhbmRsZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zIG9mICJieXRlIiAoYW5kIGZvcm1hdCAwIGFzCisgICAgICAgIC8vICJUaGVyZSBpcyBubyBmcmVlIHNwYWNlLi4uIikKKyAgICAgICAgKyAiMDogaXMgbm87XG4iCisgICAgICAgICsgImlzIG9uZSBieXRlIG9mO1xuIgorICAgICAgICArICJhcmUgPTA9IGJ5dGVzIG9mO1xuIgorICAgICAgICAvLyBmb3IgdmFsdWVzIGFib3ZlIDEsMDI0LCBmb3JtYXQgdGhlIG51bWJlciBpbiBLIChzaW5jZSAiSyIgaXMgdXN1YWxseQorICAgICAgICAvLyBwcm9tb3VuY2VkICJLIiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQncyBzaW5ndWxhciBvciBwbHVyYWwsIHdlCisgICAgICAgIC8vIGRvbid0IHdvcnJ5IGFib3V0IHRoZSBwbHVyYWwgZm9ybSkuICBUaGUgIi8xMDI0IiBoZXJlIGNhdXNlcyB1cyB0bworICAgICAgICAvLyB0cmVhdCBhIEsgYXMgMSwwMjQgYnl0ZXMgcmF0aGVyIHRoYW4gMSwwMDAgYnl0ZXMuCisgICAgICAgICsgIjEwMjQvMTAyNDogaXMgPDA8SyBvZjtcbiIKKyAgICAgICAgLy8gZm9yIHZhbHVlcyBhYm91dCAxLDA0OCw1NzYsIGZvcm1hdCB0aGUgbnVtYmVyIGluIE1iLiAgU2luY2UgIk1iIiBpcworICAgICAgICAvLyB1c3VhbGx5IHByb21vdW5jZWQgIm1lZyIgaW4gc2luZ3VsYXIgYW5kICJtZWdzIiBpbiBwbHVyYWwsIHdlIGRvIGhhdmUKKyAgICAgICAgLy8gYm90aCBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zLiAgQWdhaW4sIG5vdGljZSB3ZSB0cmVhdCBhIG1lZ2FieXRlCisgICAgICAgIC8vIGFzIDEsMDI0IGtpbG9ieXRlcy4KKyAgICAgICAgKyAiMSwwNDgsNTc2LzEwMjQ6IGlzIDEgTWIgb2Y7XG4iCisgICAgICAgICsgIjIsMDk3LDE1Mi8xMDI0OiBhcmUgPDA8IE1iIG9mOyI7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEFsdGVybmF0ZSByYWRpY2VzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgbnVtYmVyIGluIGRvemVucyBhbmQgZ3Jvc3MuICBUaGlzIGlzIGludGVuZGVkIHRvCisgICAgICogZGVtb25zdHJhdGUgaG93IHRoaXMgcnVsZSBzZXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IG51bWJlcnMgaW4gc3lzdGVtcworICAgICAqIG90aGVyIHRoYW4gYmFzZSAxMC4gIFRoZSAiLzEyIiBhZnRlciB0aGUgcnVsZXMnIGJhc2UgdmFsdWVzIGNvbnRyb2xzIHRoaXMuCisgICAgICogQWxzbyBub3RpY2UgdGhhdCB0aGUgYmFzZSBkb2Vzbid0IGhhdmUgdG8gYmUgY29uc2lzdGVudCB0aHJvdWdob3V0IHRoZQorICAgICAqIHdob2xlIHJ1bGUgc2V0OiB3ZSBnbyBiYWNrIHRvIGJhc2UgMTAgZm9yIHZhbHVlcyBvdmVyIDEsMDAwLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGRvemVucyA9CisgICAgICAgIC8vIHdvcmRzIGZvciBudW1iZXJzLi4uCisgICAgICAgICJ6ZXJvOyBvbmU7IHR3bzsgdGhyZWU7IGZvdXI7IGZpdmU7IHNpeDtcbiIKKyAgICAgICAgKyAic2V2ZW47IGVpZ2h0OyBuaW5lOyB0ZW47IGVsZXZlbjtcbiIKKyAgICAgICAgLy8gZm9ybWF0IHZhbHVlcyBvdmVyIDEyIGluIGRvemVucworICAgICAgICArICIxMi8xMjogPDwgZG96ZW5bIGFuZCA+Pl07XG4iCisgICAgICAgIC8vIGZvcm1hdCB2YWx1ZXMgb3ZlciAxNDQgaW4gZ3Jvc3MKKyAgICAgICAgKyAiMTQ0LzEyOiA8PCBncm9zc1ssID4+XTtcbiIKKyAgICAgICAgLy8gZm9ybWF0IHZhbHVlcyBvdmVyIDEsMDAwIGluIHRob3VzYW5kcworICAgICAgICArICIxMDAwOiA8PCB0aG91c2FuZFssID4+XTtcbiIKKyAgICAgICAgLy8gb3ZlcmZsb3cgcnVsZS4gIEZvcm1hdCB2YWx1ZXMgb3ZlciAxMCwwMDAgaW4gbnVtZXJhbHMKKyAgICAgICAgKyAiMTAsMDAwOiA9IywjIzA9O1xuIjsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gTWFqb3IgYW5kIG1pbm9yIHVuaXRzCisgICAgLy8KKyAgICAvLyBUaGVzZSBleGFtcGxlcyBzaG93IGhvdyBhIHNpbmdsZSB2YWx1ZSBjYW4gYmUgZGl2aWRlZCB1cCBpbnRvIG1ham9yCisgICAgLy8gYW5kIG1pbm9yIHVuaXRzIHRoYXQgZG9uJ3QgcmVsYXRlIHRvIGVhY2ggb3RoZXIgYnkgYSBmYWN0b3Igb2YgMTAuCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgbnVtYmVyIG9mIHNlY29uZHMgaW4gc2V4YWdlc2ltYWwgbm90YXRpb24KKyAgICAgKiAoaS5lLiwgaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzKS4gICV3aXRoLXdvcmRzIGZvcm1hdHMgaXQgd2l0aAorICAgICAqIHdvcmRzICgzNzQwIGlzICIxIGhvdXIsIDIgbWludXRlcywgMjAgc2Vjb25kcyIpIGFuZCAlaW4tbnVtZXJhbHMKKyAgICAgKiBmb3JtYXRzIGl0IGVudGlyZWx5IGluIG51bWVyYWxzICgzNzQwIGlzICIxOjAyOjIwIikuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZHVyYXRpb25JblNlY29uZHMgPQorICAgICAgICAvLyBtYWluIHJ1bGUgc2V0IGZvciBmb3JtYXR0aW5nIHdpdGggd29yZHMKKyAgICAgICAgIiV3aXRoLXdvcmRzOlxuIgorICAgICAgICAgICAgICAgLy8gdGFrZSBjYXJlIG9mIHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMgb2YgInNlY29uZCIKKyAgICAgICAgKyAiICAgIDAgc2Vjb25kczsgMSBzZWNvbmQ7ID0wPSBzZWNvbmRzO1xuIgorICAgICAgICAgICAgICAgLy8gdXNlICUlbWluIHRvIGZvcm1hdCB2YWx1ZXMgZ3JlYXRlciB0aGFuIDYwIHNlY29uZHMKKyAgICAgICAgKyAiICAgIDYwLzYwOiA8JSVtaW48WywgPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gdXNlICUlaHIgdG8gZm9ybWF0IHZhbHVlcyBncmVhdGVyIHRoYW4gMyw2MDAgc2Vjb25kcworICAgICAgICAgICAgICAgLy8gKHRoZSAiPj4+IiBiZWxvdyBjYXVzZXMgdXMgdG8gc2VlIHRoZSBudW1iZXIgb2YgbWludXRlcworICAgICAgICAgICAgICAgLy8gd2hlbiB3aGVuIHRoZXJlIGFyZSB6ZXJvIG1pbnV0ZXMpCisgICAgICAgICsgIiAgICAzNjAwLzYwOiA8JSVocjxbLCA+Pj5dO1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IHRha2VzIGNhcmUgb2YgdGhlIHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMKKyAgICAgICAgLy8gb2YgIm1pbnV0ZSIKKyAgICAgICAgKyAiJSVtaW46XG4iCisgICAgICAgICsgIiAgICAwIG1pbnV0ZXM7IDEgbWludXRlOyA9MD0gbWludXRlcztcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCB0YWtlcyBjYXJlIG9mIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zCisgICAgICAgIC8vIG9mICJob3VyIgorICAgICAgICArICIlJWhyOlxuIgorICAgICAgICArICIgICAgMCBob3VyczsgMSBob3VyOyA9MD0gaG91cnM7XG4iCisKKyAgICAgICAgLy8gbWFpbiBydWxlIHNldCBmb3IgZm9ybWF0dGluZyBpbiBudW1lcmFscworICAgICAgICArICIlaW4tbnVtZXJhbHM6XG4iCisgICAgICAgICAgICAgICAvLyB2YWx1ZXMgYmVsb3cgNjAgc2Vjb25kcyBhcmUgc2hvd24gd2l0aCAic2VjLiIKKyAgICAgICAgKyAiICAgID0wPSBzZWMuO1xuIgorICAgICAgICAgICAgICAgLy8gaGlnaGVyIHZhbHVlcyBhcmUgc2hvd24gd2l0aCBjb2xvbnM6ICUlbWluLXNlYyBpcyB1c2VkIGZvcgorICAgICAgICAgICAgICAgLy8gdmFsdWVzIGJlbG93IDMsNjAwIHNlY29uZHMuLi4KKyAgICAgICAgKyAiICAgIDYwOiA9JSVtaW4tc2VjPTtcbiIKKyAgICAgICAgICAgICAgIC8vIC4uLmFuZCAlJWhyLW1pbi1zZWMgaXMgdXNlZCBmb3IgdmFsdWVzIG9mIDMsNjAwIHNlY29uZHMKKyAgICAgICAgICAgICAgIC8vIGFuZCBhYm92ZQorICAgICAgICArICIgICAgMzYwMDogPSUlaHItbWluLXNlYz07XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBjYXVzZXMgdmFsdWVzIG9mIGxlc3MgdGhhbiAxMCBtaW51dGVzIHRvIHNob3cgd2l0aG91dAorICAgICAgICAvLyBhIGxlYWRpbmcgemVybworICAgICAgICArICIlJW1pbi1zZWM6XG4iCisgICAgICAgICsgIiAgICAwOiA6PTAwPTtcbiIKKyAgICAgICAgKyAiICAgIDYwLzYwOiA8MDw+PjtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBpcyB1c2VkIGZvciB2YWx1ZXMgb2YgMyw2MDAgb3IgbW9yZS4gIE1pbnV0ZXMgYXJlIGFsd2F5cworICAgICAgICAvLyBzaG93biwgYW5kIGFsd2F5cyBzaG93biB3aXRoIHR3byBkaWdpdHMKKyAgICAgICAgKyAiJSVoci1taW4tc2VjOlxuIgorICAgICAgICArICIgICAgMDogOj0wMD07XG4iCisgICAgICAgICsgIiAgICA2MC82MDogPDAwPD4+O1xuIgorICAgICAgICArICIgICAgMzYwMC82MDogPCMsIyMwPDo+Pj47XG4iCisgICAgICAgIC8vIHRoZSBsZW5pZW50LXBhcnNlIHJ1bGVzIGFsbG93IHNldmVyYWwgZGlmZmVyZW50IGNoYXJhY3RlcnMgdG8gYmUgdXNlZAorICAgICAgICAvLyBhcyBkZWxpbWl0ZXJzIGJldHdlZW4gaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzCisgICAgICAgICsgIiUlbGVuaWVudC1wYXJzZTpcbiIKKyAgICAgICAgKyAiICAgICYgOiA9IC4gPSAnICcgPSAtO1xuIjsKKworICAgIC8qKgorICAgICAqIFRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgbnVtYmVyIG9mIGhvdXJzIGluIHNleGFnZXNpbWFsIG5vdGF0aW9uIChpLmUuLAorICAgICAqIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcykuICAld2l0aC13b3JkcyBmb3JtYXRzIHRoZSB2YWx1ZSB1c2luZworICAgICAqIHdvcmRzIGZvciB0aGUgdW5pdHMsIGFuZCAlaW4tbnVtZXJhbHMgZm9ybWF0cyB0aGUgdmFsdWUgdXNpbmcgb25seQorICAgICAqIG51bWVyYWxzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGR1cmF0aW9uSW5Ib3VycyA9CisgICAgICAgIC8vIG1haW4gZW50cnkgcG9pbnQgZm9yIGZvcm1hdHRpbmcgd2l0aCB3b3JkcworICAgICAgICAiJXdpdGgtd29yZHM6XG4iCisgICAgICAgICAgICAgICAvLyB0aGlzIHJ1bGUgb21pdHMgbWludXRlcyBhbmQgc2Vjb25kcyB3aGVuIHRoZSB2YWx1ZSBpcworICAgICAgICAgICAgICAgLy8gYW4gZXZlbiBudW1iZXIgb2YgaG91cnMKKyAgICAgICAgKyAiICAgIHguMDogPDxbLCA+JSVtaW4tc2VjPl07XG4iCisgICAgICAgICAgICAgICAvLyB0aGVzZSBydWxlcyB0YWtlIGNhcmUgb2YgdGhlIHNpbmd1bGFyIGFuZCBwbHVyYWwgZm9ybXMKKyAgICAgICAgICAgICAgIC8vIG9mIGhvdXJzCisgICAgICAgICsgIiAgICAwIGhvdXJzOyAxIGhvdXI7ID0jLCMjMD0gaG91cnM7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgdGFrZXMgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyIGFuZCBtdWx0aXBsaWVzCisgICAgICAgIC8vIGl0IGJ5IDMsNjAwICh0dXJuaW5nIGl0IGludG8gYSBudW1iZXIgb2Ygc2Vjb25kcykuICBUaGVuIGl0IGRlbGVnYXRlcworICAgICAgICAvLyB0byAlJW1pbi1zZWMtaW1wbGVtZW50YXRpb24gdG8gZm9ybWF0IHRoZSByZXN1bHRpbmcgdmFsdWUKKyAgICAgICAgKyAiJSVtaW4tc2VjOlxuIgorICAgICAgICArICIgICAgMzYwMDogPSUlbWluLXNlYy1pbXBsZW1lbnRhdGlvbj07XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZm9ybWF0cyB0aGUgc2Vjb25kcyBhcyBlaXRoZXIgc2Vjb25kcyBvciBtaW51dGVzIGFuZAorICAgICAgICAvLyBzZWNvbmRzLCBhbmQgdGFrZXMgY2FyZSBvZiB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcyBvZgorICAgICAgICAvLyAibWludXRlIiBhbmQgInNlY29uZCIKKyAgICAgICAgKyAiJSVtaW4tc2VjLWltcGxlbWVudGF0aW9uOlxuIgorICAgICAgICArICIgICAgMCBzZWNvbmRzOyAxIHNlY29uZDsgPTA9IHNlY29uZHM7XG4iCisgICAgICAgICsgIiAgICA2MC82MDogMSBtaW51dGVbLCA+Pl07XG4iCisgICAgICAgICsgIiAgICAxMjAvNjA6IDwwPCBtaW51dGVzWywgPj5dO1xuIgorCisgICAgICAgIC8vIG1haW4gZW50cnkgcG9pbnQgZm9yIGZvcm1hdHRpbmcgaW4gbnVtZXJhbHMKKyAgICAgICAgKyAiJWluLW51bWVyYWxzOlxuIgorICAgICAgICAgICAgICAgLy8gc2hvdyBtaW51dGVzIGV2ZW4gZm9yIGV2ZW4gbnVtYmVycyBvZiBob3VycworICAgICAgICArICIgICAgeC4wOiA8IywjIzA8OjAwO1xuIgorICAgICAgICAgICAgICAgLy8gZGVsZWdhdGUgdG8gJSVtaW4tc2VjMiB0byBmb3JtYXQgbWludXRlcyBhbmQgc2Vjb25kcworICAgICAgICArICIgICAgeC54OiA8IywjIzA8Oj4lJW1pbi1zZWMyPjtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBmb3JtYXRzIG1pbnV0ZXMgd2hlbiB0aGVyZSBpcyBhbiBldmVuIG51bWJlciBvZgorICAgICAgICAvLyBtaW51dGVzLCBhbmQgZGVsZWdhdGVzIHRvICUlbWluLXNlYzItaW1wbGVtZW50YXRpb24gd2hlbiB0aGVyZQorICAgICAgICAvLyBhcmUgc2Vjb25kcworICAgICAgICArICIlJW1pbi1zZWMyOlxuIgorICAgICAgICArICIgICAgNjA6IDwwMDw7XG4iCisgICAgICAgICsgIiAgICAzNjAwOiA8JSVtaW4tc2VjMi1pbXBsZW1lbnRhdGlvbjw7XG4iCisgICAgICAgIC8vIHRoZXNlIHR3byBydWxlIHNldHMgYXJlIHVzZWQgdG8gZm9ybWF0IHRoZSBtaW51dGVzIGFuZCBzZWNvbmRzCisgICAgICAgICsgIiUlbWluLXNlYzItaW1wbGVtZW50YXRpb246XG4iCisgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBhcmUgZmV3ZXIgdGhhbiA2MCBzZWNvbmRzLCBzaG93IHRoZSBtaW51dGVzIGFueXdheQorICAgICAgICArICIgICAgMDogMDA6PTAwPTtcbiIKKyAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBtaW51dGVzLCBmb3JtYXQgdGhlbSB0b28sIGFuZCBhbHdheXMgdXNlIDIgZGlnaXRzCisgICAgICAgICAgICAgICAvLyBmb3IgYm90aCBtaW51dGVzIGFuZCBzZWNvbmRzCisgICAgICAgICsgIiAgICA2MDogPSUlbWluLXNlYzM9O1xuIgorICAgICAgICArICIlJW1pbi1zZWMzOlxuIgorICAgICAgICArICIgICAgMDogOj0wMD07XG4iCisgICAgICAgICsgIiAgICA2MC82MDogPDAwPD4+O1xuIgorICAgICAgICAvLyB0aGUgbGVuaWVudC1wYXJzZSBydWxlcyBhbGxvdyB0aGUgdXNlciB0byB1c2UgYW55IG9mIHNldmVyYWwKKyAgICAgICAgLy8gY2hhcmFjdGVycyBhcyBkZWxpbWl0ZXJzIGJldHdlZW4gaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzCisgICAgICAgICsgIiUlbGVuaWVudC1wYXJzZTpcbiIKKyAgICAgICAgKyAiICAgICYgOiA9IC4gPSAnICcgPSAtO1xuIjsKKworICAgIC8qKgorICAgICAqIFRoaXMgcnVsZSBzZXQgZm9ybWF0cyBhIG51bWJlciBvZiBwb3VuZHMgYXMgcG91bmRzLCBzaGlsbGluZ3MsIGFuZAorICAgICAqIHBlbmNlIGluIHRoZSBvbGQgRW5nbGlzaCBzeXN0ZW0gb2YgY3VycmVuY3kuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgcG91bmRzU2hpbGxpbmdzQW5kUGVuY2UgPQorICAgICAgICAvLyBmb3IgdmFsdWVzIG9mIDEgb3IgbW9yZSwgZm9ybWF0IHRoZSBpbnRlZ3JhbCBwYXJ0IHdpdGggYSBwb3VuZAorICAgICAgICAvLyBzaWduIGluIGZyb250LCBhbmQgc2hvdyBzaGlsbGluZ3MgYW5kIHBlbmNlIGlmIG5lY2Vzc2FyeQorICAgICAgICAiJW1haW46XG4iCisgICAgICAgICsgIiAgICB4LjA6IFx1MDBhMzwjLCMjMDxbID4lJXNoaWxsaW5ncy1hbmQtcGVuY2U+XTtcbiIKKyAgICAgICAgLy8gZm9yIHZhbHVlcyBiZXR3ZWVuIDAgYW5kIDEsIG9taXQgdGhlIG51bWJlciBvZiBwb3VuZHMKKyAgICAgICAgKyAiICAgIDAueDogPiUlcGVuY2UtYWxvbmU+O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgdG8gc2hvdyBzaGlsbGluZ3MgYW5kIHBlbmNlLiAgSXQgbXVsdGlwbGllcworICAgICAgICAvLyB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIgYnkgMjQwICh0aGUgbnVtYmVyIG9mIHBlbmNlIGluIGEKKyAgICAgICAgLy8gcG91bmQpIGFuZCB1c2VzICUlc2hpbGxpbmdzLWFuZC1wZW5jZS1pbXBsZW1lbnRhdGlvbiB0byBmb3JtYXQKKyAgICAgICAgLy8gdGhlIHJlc3VsdAorICAgICAgICArICIlJXNoaWxsaW5ncy1hbmQtcGVuY2U6XG4iCisgICAgICAgICsgIiAgICAyNDA6IDwlJXNoaWxsaW5ncy1hbmQtcGVuY2UtaW1wbGVtZW50YXRpb248O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgdG8gc2hvdyBzaGlsbGluZ3MgYW5kIHBlbmNlIHdoZW4gdGhlcmUgYXJlCisgICAgICAgIC8vIG5vIHBvdW5kcy4gIEl0IGFsc28gbXVsdGlwbGllcyB0aGUgdmFsdWUgYnkgMjQwLCBhbmQgdGhlbiBpdCB1c2VzCisgICAgICAgIC8vICUlcGVuY2UtYWxvbmUtaW1wbGVtZW50YXRpb24gdG8gZm9ybWF0IHRoZSByZXN1bHQuCisgICAgICAgICsgIiUlcGVuY2UtYWxvbmU6XG4iCisgICAgICAgICsgIiAgICAyNDA6IDwlJXBlbmNlLWFsb25lLWltcGxlbWVudGF0aW9uPDtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBmb3JtYXRzIGEgbnVtYmVyIG9mIHBlbmNlIHdoZW4gd2Uga25vdyB3ZSBhbHNvCisgICAgICAgIC8vIGhhdmUgcG91bmRzLiAgV2UgYWx3YXlzIHNob3cgc2hpbGxpbmdzICh3aXRoIGEgMCBpZiBuZWNlc3NhcnkpLAorICAgICAgICAvLyBidXQgb25seSBzaG93IHBlbmNlIGlmIHRoZSB2YWx1ZSBpc24ndCBhbiBldmVuIG51bWJlciBvZiBzaGlsbGluZ3MKKyAgICAgICAgKyAiJSVzaGlsbGluZ3MtYW5kLXBlbmNlLWltcGxlbWVudGF0aW9uOlxuIgorICAgICAgICArICIgICAgMC87IDAvPTA9O1xuIgorICAgICAgICArICIgICAgMTIvMTI6IDwwPC9bPjA+XTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCBmb3JtYXRzIGEgbnVtYmVyIG9mIHBlbmNlIHdoZW4gd2Uga25vdyB0aGVyZSBhcmUKKyAgICAgICAgLy8gbm8gcG91bmRzLiAgVmFsdWVzIGxlc3MgdGhhbiBhIHNoaWxsaW5nIGFyZSBzaG93biB3aXRoICJkLiIgKHRoZQorICAgICAgICAvLyBhYmJyZXZpYXRpb24gZm9yIHBlbmNlKSwgYW5kIHZhbHVlcyBncmVhdGVyIHRoYW4gYSBzaGlsbGluZyBhcmUKKyAgICAgICAgLy8gc2hvd24gd2l0aCBhIHNoaWxsaW5nIGJhciAoYW5kIHdpdGhvdXQgcGVuY2Ugd2hlbiB0aGUgdmFsdWUgaXMKKyAgICAgICAgLy8gYW4gZXZlbiBudW1iZXIgb2Ygc2hpbGxpbmdzKQorICAgICAgICArICIlJXBlbmNlLWFsb25lLWltcGxlbWVudGF0aW9uOlxuIgorICAgICAgICArICIgICAgPTA9IGQuO1xuIgorICAgICAgICArICIgICAgMTIvMTI6IDwwPC9bPjA+XTtcbiI7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEFsdGVybmF0ZSBudW1lcmF0aW9uIHN5c3RlbXMKKyAgICAvLworICAgIC8vIFRoZXNlIGV4YW1wbGVzIHNob3cgaG93IFJ1bGVCYXNlZE51bWJlckZvcm1hdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQKKyAgICAvLyBudW1iZXJzIHVzaW5nIG5vbi1wb3NpdGlvbmFsIG51bWVyYXRpb24gc3lzdGVtcy4KKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogQXJhYmljIGRpZ2l0cy4gIFRoaXMgZXhhbXBsZSBmb3JtYXRzIG51bWJlcnMgaW4gQXJhYmljIG51bWVyYWxzLgorICAgICAqIE5vcm1hbGx5LCB5b3UnZCBkbyB0aGlzIHdpdGggRGVjaW1hbEZvcm1hdCwgYnV0IHRoaXMgc2hvd3MgdGhhdAorICAgICAqIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBjYW4gaGFuZGxlIGl0IHRvby4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBhcmFiaWNOdW1lcmFscyA9CisgICAgICAgICIwOyAxOyAyOyAzOyA0OyA1OyA2OyA3OyA4OyA5O1xuIgorICAgICAgICArICIxMDogPDw+PjtcbiIKKyAgICAgICAgKyAiMTAwOiA8PD4+PjtcbiIKKyAgICAgICAgKyAiMTAwMDogPDwsPj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDA6IDw8LD4+PjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMDogPDwsPj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwLDAwMDogPDwsPj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIi14OiAtPj47XG4iCisgICAgICAgICsgIngueDogPDwuPj47IjsKKworICAgIC8qKgorICAgICAqIFdvcmRzIGZvciBkaWdpdHMuICBGb2xsb3dzIHRoZSBzYW1lIHBhdHRlcm4gYXMgdGhlIEFyYWJpYy1udW1lcmFscworICAgICAqIGV4YW1wbGUgYWJvdmUsIGJ1dCB1c2VzIHdvcmRzIGZvciB0aGUgdmFyaW91cyBkaWdpdHMgKGUuZy4sIDEyMyBjb21lcworICAgICAqIG91dCBhcyAib25lIHR3byB0aHJlZSIpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHdvcmRzRm9yRGlnaXRzID0KKyAgICAgICAgIi14OiBtaW51cyA+PjtcbiIKKyAgICAgICAgKyAieC54OiA8PCBwb2ludCA+PjtcbiIKKyAgICAgICAgKyAiemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7XG4iCisgICAgICAgICsgIiAgICBzZXZlbjsgZWlnaHQ7IG5pbmU7XG4iCisgICAgICAgICsgIjEwOiA8PCA+PjtcbiIKKyAgICAgICAgKyAiMTAwOiA8PCA+Pj47XG4iCisgICAgICAgICsgIjEwMDA6IDw8LCA+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMDogPDwsID4+PjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMDogPDwsID4+PjtcbiIKKyAgICAgICAgKyAiMSwwMDAsMDAwLDAwMCwwMDA6IDw8LCA+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV4YW1wbGUgZm9ybWF0cyBudW1iZXJzIHVzaW5nIENoaW5lc2UgY2hhcmFjdGVycyBpbiB0aGUgQXJhYmljCisgICAgICogcGxhY2UtdmFsdWUgbWV0aG9kLiAgVGhpcyB3YXMgdXNlZCBoaXN0b3JpY2FsbHkgaW4gQ2hpbmEgZm9yIGEgd2hpbGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgY2hpbmVzZVBsYWNlVmFsdWUgPQorICAgICAgICAiXHUzMDA3OyBcdTRlMDA7IFx1NGU4YzsgXHU0ZTA5OyBcdTU2ZGI7IFx1NGU5NDsgXHU1MTZkOyBcdTRlMDM7IFx1NTE2YjsgXHU0ZTVkO1xuIgorICAgICAgICArICIxMDogPDw+PjtcbiIKKyAgICAgICAgKyAiMTAwOiA8PD4+PjtcbiIKKyAgICAgICAgKyAiMTAwMDogPDw+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMDogPDw+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDA6IDw8Pj4+O1xuIgorICAgICAgICArICIxLDAwMCwwMDAsMDAwLDAwMDogPDw+Pj47XG4iCisgICAgICAgICsgIjEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiI7CisKKyAgICAvKioKKyAgICAgKiBSb21hbiBudW1lcmFscy4gIFRoaXMgZXhhbXBsZSBoYXMgdHdvIHZhcmlhbnRzOiAlbW9kZXJuIHNob3dzIGhvdyBsYXJnZQorICAgICAqIG51bWJlcnMgYXJlIHVzdWFsbHkgaGFuZGxlZCB0b2RheTsgJWhpc3RvcmljYWwgc2VzIHRoZSBvbGRlciBzeW1ib2xzIGZvcgorICAgICAqIHRob3VzYW5kcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyByb21hbk51bWVyYWxzID0KKyAgICAgICAgIiVoaXN0b3JpY2FsOlxuIgorICAgICAgICArICIgICAgPSVtb2Rlcm49O1xuIgorICAgICAgICAgICAgICAgLy8gaW4gZWFybHkgUm9tYW4gbnVtZXJhbHMsIDEsMDAwIHdhcyBzaG93biB3aXRoIGEgY2lyY2xlCisgICAgICAgICAgICAgICAvLyBiaXNlY3RlZCBieSBhIHZlcnRpY2FsIGxpbmUuICBBZGRpdGlvbmFsIHRob3VzYW5kcyB3ZXJlCisgICAgICAgICAgICAgICAvLyBzaG93biBieSBhZGRpbmcgbW9yZSBjb25jZW50cmljIGNpcmNsZXMsIGFuZCBmaXZlcyB3ZXJlCisgICAgICAgICAgICAgICAvLyBzaG93biBieSBjdXR0aW5nIHRoZSBzeW1ib2wgZm9yIG5leHQtaGlnaGVyIHBvd2VyIG9mIDEwCisgICAgICAgICAgICAgICAvLyBpbiBoYWxmICh0aGUgbGV0dGVyIEQgZm9yIDUwMCBldm9sdmVkIGZyb20gdGhpcykuCisgICAgICAgICAgICAgICAvLyBXZSBjb3VsZCBnbyBiZXlvbmQgNDAsMDAwLCBidXQgVW5pY29kZSBkb2Vzbid0IGVuY29kZQorICAgICAgICAgICAgICAgLy8gdGhlIHN5bWJvbHMgZm9yIGhpZ2hlciBudW1iZXJzLworICAgICAgICArICIgICAgMTAwMDogXHUyMTgwWz4+XTsgMjAwMDogXHUyMTgwXHUyMTgwWz4+XTsgMzAwMDogXHUyMTgwXHUyMTgwXHUyMTgwWz4+XTsgNDAwMDogXHUyMTgwXHUyMTgxWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDUwMDA6IFx1MjE4MVs+Pl07IDYwMDA6IFx1MjE4MVx1MjE4MFs+Pl07IDcwMDA6IFx1MjE4MVx1MjE4MFx1MjE4MFs+Pl07XG4iCisgICAgICAgICsgIiAgICA4MDAwOiBcdTIxODFcdTIxODBcdTIxODBcdTIxODBbPj5dOyA5MDAwOiBcdTIxODBcdTIxODJbPj5dO1xuIgorICAgICAgICArICIgICAgMTAsMDAwOiBcdTIxODJbPj5dOyAyMCwwMDA6IFx1MjE4Mlx1MjE4Mls+Pl07IDMwLDAwMDogXHUyMTgyXHUyMTgyXHUyMTgyWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgKyAiJW1vZGVybjpcbiIKKyAgICAgICAgKyAiICAgIDsgSTsgSUk7IElJSTsgSVY7IFY7IFZJOyBWSUk7IFZJSUk7IElYO1xuIgorICAgICAgICArICIgICAgMTA6IFhbPj5dOyAyMDogWFhbPj5dOyAzMDogWFhYWz4+XTsgNDA6IFhMWz4+XTsgNTA6IExbPj5dO1xuIgorICAgICAgICArICIgICAgNjA6IExYWz4+XTsgNzA6IExYWFs+Pl07IDgwOiBMWFhYWz4+XTsgOTA6IFhDWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogQ1s+Pl07IDIwMDogQ0NbPj5dOyAzMDA6IENDQ1s+Pl07IDQwMDogQ0RbPj5dOyA1MDA6IERbPj5dO1xuIgorICAgICAgICArICIgICAgNjAwOiBEQ1s+Pl07IDcwMDogRENDWz4+XTsgODAwOiBEQ0NDWz4+XTsgOTAwOiBDTVs+Pl07XG4iCisgICAgICAgICAgICAgICAvLyBpbiBtb2Rlcm4gUm9tYW4gbnVtZXJhbHMsIGhpZ2ggbnVtYmVycyBhcmUgZ2VuZXJhbGx5IHNob3duCisgICAgICAgICAgICAgICAvLyBieSBwbGFjaW5nIGEgYmFyIG92ZXIgdGhlIGxldHRlcnMgZm9yIHRoZSBsb3dlciBudW1iZXJzOgorICAgICAgICAgICAgICAgLy8gdGhlIGJhciBtdWx0aXBsaWVkIGEgbGV0dGVyJ3MgdmFsdWUgYnkgMSwwMDAKKyAgICAgICAgKyAiICAgIDEwMDA6IE1bPj5dOyAyMDAwOiBNTVs+Pl07IDMwMDA6IE1NTVs+Pl07IDQwMDA6IE1WXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDUwMDA6IFZcdTAzMDZbPj5dOyA2MDAwOiBWXHUwMzA2TVs+Pl07IDcwMDA6IFZcdTAzMDZNTVs+Pl07XG4iCisgICAgICAgICsgIiAgICA4MDAwOiBWXHUwMzA2TU1NWz4+XTsgOTAwMDogTVhcdTAzMDZbPj5dO1xuIgorICAgICAgICArICIgICAgMTAsMDAwOiBYXHUwMzA2Wz4+XTsgMjAsMDAwOiBYXHUwMzA2WFx1MDMwNls+Pl07IDMwLDAwMDogWFx1MDMwNlhcdTAzMDZYXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwLDAwMDogWFx1MDMwNkxcdTAzMDZbPj5dOyA1MCwwMDA6IExcdTAzMDZbPj5dOyA2MCwwMDA6IExcdTAzMDZYXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDcwLDAwMDogTFx1MDMwNlhcdTAzMDZYXHUwMzA2Wz4+XTsgODAsMDAwOiBMXHUwMzA2WFx1MDMwNlhcdTAzMDZYXHUwMzA2Wz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDkwLDAwMDogWFx1MDMwNkNcdTAzMDZbPj5dO1xuIgorICAgICAgICArICIgICAgMTAwLDAwMDogQ1x1MDMwNls+Pl07IDIwMCwwMDA6IENcdTAzMDZDXHUwMzA2Wz4+XTsgMzAwLDAwMDogQ1x1MDMwNkNcdTAzMDZbPj5dO1xuIgorICAgICAgICArICIgICAgNDAwLDAwMDogQ1x1MDMwNkRcdTAzMDZbPj5dOyA1MDAsMDAwOiBEXHUwMzA2Wz4+XTsgNjAwLDAwMDogRFx1MDMwNkNcdTAzMDZbPj5dO1xuIgorICAgICAgICArICIgICAgNzAwLDAwMDogRFx1MDMwNkNcdTAzMDZDXHUwMzA2Wz4+XTsgODAwLDAwMDogRFx1MDMwNkNcdTAzMDZDXHUwMzA2Q1x1MDMwNls+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDAsMDAwOiA9IywjIzA9O1xuIjsKKworICAgIC8qKgorICAgICAqIEhlYnJldyBhbHBoYWJldGljIG51bWVyYWxzLiAgQmVmb3JlIGFkb3B0aW9uIG9mIEFyYWJpYyBudW1lcmFscywgSGVicmV3IHNwZWFrZXJzCisgICAgICogdXNlZCB0aGUgbGV0dGVyIG9mIHRoZWlyIGFscGhhYmV0IGFzIG51bWVyYWxzLiAgVGhlIGZpcnN0IG5pbmUgbGV0dGVycyBvZgorICAgICAqIHRoZSBhbHBoYWJldCByZXBlc2VudGVkIHRoZSB2YWx1ZXMgZnJvbSAxIHRvIDksIHRoZSBzZWNvbmQgbmluZSBsZXR0ZXJzIHRoZQorICAgICAqIG11bHRpcGxlcyBvZiAxMCwgYW5kIHRoZSByZW1haW5pbmcgbGV0dGVycyB0aGUgbXVsdGlwbGVzIG9mIDEwMC4gIFNpbmNlIHRoZXkKKyAgICAgKiByYW4gb3V0IG9mIGxldHRlcnMgYXQgNDAwLCB0aGUgcmVtYWluaW5nIG11bHRpcGxlcyBvZiAxMDAgd2VyZSByZXByZXNlbnRlZAorICAgICAqIHVzaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgZXhpc3RpbmcgbGV0dGVycyBmb3IgdGhlIGh1bmRyZWRzLiAgTnVtYmVycyB3ZXJlCisgICAgICogZGlzdGluZ3Vpc2hlZCBmcm9tIHdvcmRzIGluIGEgbnVtYmVyIG9mIGRpZmZlcmVudCB3YXlzOiB0aGUgd2F5IHNob3duIGhlcmUKKyAgICAgKiB1c2VzIGEgc2luZ2xlIG1hcmsgYWZ0ZXIgYSBudW1iZXIgY29uc2lzdGluZyBvZiBvbmUgbGV0dGVyLCBhbmQgYSBkb3VibGUKKyAgICAgKiBtYXJrIGJldHdlZW4gdGhlIGxhc3QgdHdvIGxldHRlcnMgb2YgYSBudW1iZXIgY29uc2lzdGluZyBvZiB0d28gb3IgbW9yZQorICAgICAqIGxldHRlcnMuICBUd28gZG90cyBvdmVyIGEgbGV0dGVyIG11bHRpcGxpZWQgaXRzIHZhbHVlIGJ5IDEsMDAwLiAgQWxzbywgc2luY2UKKyAgICAgKiB0aGUgbGV0dGVyIGZvciAxMCBpcyB0aGUgZmlyc3QgbGV0dGVyIG9mIEdvZCdzIG5hbWUgYW5kIHRoZSBsZXR0ZXJzIGZvciA1IGFuZCA2CisgICAgICogYXJlIGxldHRlcnMgaW4gR29kJ3MgbmFtZSwgd2hpY2ggd2Fzbid0IHN1cHBvc2VkIHRvIGJlIHdyaXR0ZW4gb3Igc3Bva2VuLCAxNSBhbmQKKyAgICAgKiAxNiB3ZXJlIHVzdWFsbHkgd3JpdHRlbiBhcyA5ICsgNiBhbmQgOSArIDcgaW5zdGVhZCBvZiAxMCArIDUgYW5kIDEwICsgNi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBoZWJyZXdBbHBoYWJldGljID0KKyAgICAgICAgLy8gbGV0dGVycyBmb3IgdGhlIG9uZXMKKyAgICAgICAgIiUlb25lczpcbiIKKyAgICAgICAgKyAiICAgIChubyB6ZXJvKTsgXHUwNWQwOyBcdTA1ZDE7IFx1MDVkMjsgXHUwNWQzOyBcdTA1ZDQ7IFx1MDVkNTsgXHUwNWQ2OyBcdTA1ZDc7IFx1MDVkODtcbiIKKyAgICAgICAgLy8gbGV0dGVycyBmb3IgdGhlIHRlbnMKKyAgICAgICAgKyAiJSV0ZW5zOlxuIgorICAgICAgICArICIgICAgOyBcdTA1ZDk7IFx1MDVkYjsgXHUwNWRjOyBcdTA1ZGU7IFx1MDVlMDsgXHUwNWUxOyBcdTA1ZTI7IFx1MDVlNDsgXHUwNWU2O1xuIgorICAgICAgICAvLyBsZXR0ZXJzIGZvciB0aGUgZmlyc3QgZm91ciBodW5kcmVkcworICAgICAgICArICIlJWh1bmRyZWRzOlxuIgorICAgICAgICArICIgICAgOyBcdTA1ZTc7IFx1MDVlODsgXHUwNWU5OyBcdTA1ZWE7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgaXMgdXNlZCB0byB3cml0ZSB0aGUgY29tYmluYXRpb24gb2YgdGhlIHRlbnMgYW5kIG9uZXMgZGlnaXRzCisgICAgICAgIC8vIHdoZW4gd2Uga25vdyB0aGF0IG5vIG90aGVyIGRpZ2l0cyBwcmVjZWRlIHRoZW06IHRoZXkgcHV0IHRoZSBudW1lcmFsIG1hcmtzCisgICAgICAgIC8vIGluIHRoZSByaWdodCBwbGFjZSBhbmQgcHJvcGVybHkgaGFuZGxlIDE1IGFuZCAxNiAoSSdtIHVzaW5nIHRoZSBtYXRoZW1hdGljYWwKKyAgICAgICAgLy8gcHJpbWUgY2hhcmFjdGVycyBmb3IgdGhlIG51bWVyYWwgbWFya3MgYmVjYXVzZSBteSBVbmljb2RlIGZvbnQgZG9lc24ndAorICAgICAgICAvLyBpbmNsdWRlIHRoZSByZWFsIEhlYnJldyBjaGFyYWN0ZXJzLCB3aGljaCBsb29rIGp1c3QgbGlrZSB0aGUgcHJpbWUgbWFya3MpCisgICAgICAgICsgIiUldGVucy1hbmQtb25lczpcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgbGVzcyB0aGFuIDEwLCBqdXN0IHVzZSAlJW9uZXMgYW5kIHB1dCB0aGUgbnVtZXJhbCBtYXJrCisgICAgICAgICAgICAgICAvLyBhZnRlcndhcmQKKyAgICAgICAgKyAiICAgID0lJW9uZXM9XHUyMDMyO1xuIgorICAgICAgICAgICAgICAgLy8gcHV0IHRoZSBudW1lcmFsIG1hcmsgYXQgdGhlIGVuZCBmb3IgMTAsIGJ1dCBpbiB0aGUgbWlkZGxlIGZvcgorICAgICAgICAgICAgICAgLy8gMTEgdGhyb3VnaCAxNAorICAgICAgICArICIgICAgMTA6IDwlJXRlbnM8XHUyMDMyOyA8JSV0ZW5zPFx1MjAzMz4lJW9uZXM+O1xuIgorICAgICAgICAgICAgICAgLy8gc3BlY2lhbC1jYXNlIDE1IGFuZCAxNgorICAgICAgICArICIgICAgMTU6IFx1MDVkOFx1MjAzM1x1MDVkNTsgMTY6IFx1MDVkOFx1MjAzM1x1MDVkNjtcbiIKKyAgICAgICAgICAgICAgIC8vIGdvIGJhY2sgdG8gdGhlIG5vcm1hbCBtZXRob2QgYXQgMTcKKyAgICAgICAgKyAiICAgIDE3OiA8JSV0ZW5zPFx1MjAzMz4lJW9uZXM+O1xuIgorICAgICAgICAgICAgICAgLy8gcmVwZWF0IHRoZSBydWxlcyBmb3IgMTAgYW5kIDExIHRvIGNvdmVyIHRoZSB2YWx1ZXMgZnJvbSAyMCB0byA5OQorICAgICAgICArICIgICAgMjA6IDwlJXRlbnM8XHUyMDMyOyA8JSV0ZW5zPFx1MjAzMz4lJW9uZXM+O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgdG8gZm9ybWF0IG51bWJlcnMgYmVsb3cgMSwwMDAuICBJdCByZWxpZXMgb24KKyAgICAgICAgLy8gJSV0ZW5zLWFuZC1vbmVzIHRvIGZvcm1hdCB0aGUgdGVucyBhbmQgb25lcyBwbGFjZXMsIGFuZCBhZGRzIGxvZ2ljCisgICAgICAgIC8vIHRvIGhhbmRsZSB0aGUgaGlnaCBodW5kcmVkcyBhbmQgdGhlIG51bWVyYWwgbWFya3Mgd2hlbiB0aGVyZSBpcyBubworICAgICAgICAvLyB0ZW5zIGRpZ2l0LiAgTm90aWNlIGhvdyB0aGUgcnVsZXMgYXJlIHBhaXJlZDogYWxsIG9mIHRoZXNlIHBhaXJzIG9mCisgICAgICAgIC8vIHJ1bGVzIHRha2UgYWR2YW50YWdlIG9mIHRoZSByb2xsYmFjayBydWxlOiBpZiB0aGUgdmFsdWUgKGJldHdlZW4gMTAwCisgICAgICAgIC8vIGFuZCA0OTkpIGlzIGFuIGV2ZW4gbXVsdGlwbGUgb2YgMTAwLCB0aGUgcnVsZSBmb3IgMTAwIGlzIHVzZWQ7IG90aGVyd2lzZSwKKyAgICAgICAgLy8gdGhlIHJ1bGUgZm9yIDEwMSAodGhlIGZvbGxvd2luZyBydWxlKSBpcyB1c2VkLiAgVGhlIGZpcnN0IHJ1bGUgaW4gZWFjaAorICAgICAgICAvLyBwYWlyICh0aGUgb25lIGZvciB0aGUgZXZlbiBtdWx0aXBsZSkgcGxhY2VzIHRoZSBudW1lcmFsIG1hcmsgaW4gYSBkaWZmZXJlbnQKKyAgICAgICAgLy8gc3BvdCB0aGFuIHRoZSBzZWNvbmQgcnVsZSBpbiBlYWNoIHBhaXIgKHdoaWNoIGtub3dzIHRoZXJlIGFyZSBtb3JlIGRpZ2l0cworICAgICAgICAvLyBhbmQgcmVsaWVzIG9uIHRoZSBydWxlIHN1cHBseWluZyB0aGVtIHRvIGFsc28gc3VwcGx5IHRoZSBudW1lcmFsIG1hcmspLgorICAgICAgICAvLyBUaGUgY2FsbCB0byAlJW51bGwgaW4gbGluZSAxMCBpcyB0aGVyZSBzaW1wbHkgdG8gaW52b2tlIHRoZSByb2xsYmFjaworICAgICAgICAvLyBydWxlLgorICAgICAgICArICIlJWxvdy1vcmRlcjpcbiIKKyAgICAgICAgICAgICAgIC8vIHRoaXMgcnVsZSBpcyBvbmx5IGNhbGxlZCB3aGVuIHRoZXJlIGFyZSBvdGhlciBjaGFyYWN0ZXJzIGJlZm9yZS4KKyAgICAgICAgICAgICAgIC8vIEl0IHBsYWNlcyB0aGUgbnVtZXJhbCBtYXJrIGJlZm9yZSB0aGUgbGFzdCBkaWdpdAorICAgICAgICArICIgICAgXHUyMDMzPSUlb25lcz07XG4iCisgICAgICAgICAgICAgICAvLyB0aGUgcnVsZSBmb3IgMTAgcGxhY2VzIHRoZSBudW1lcmFsIG1hcmsgYmVmb3JlIHRoZSAxMCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgIC8vIChiZWNhdXNlIHdlIGtub3cgaXQncyB0aGUgbGFzdCBjaGFyYWN0ZXIpOyB0aGUgcnVsZSBmb3IgMTEgcmVsaWVzCisgICAgICAgICAgICAgICAvLyBvbiAlJXRlbnMtYW5kLW9uZXMgdG8gcGxhY2UgdGhlIG51bWVyYWwgbWFyaworICAgICAgICArICIgICAgMTA6IFx1MjAzMzwlJXRlbnM8OyA9JSV0ZW5zLWFuZC1vbmVzPT4lJW51bGw+O1xuIgorICAgICAgICAgICAgICAgLy8gdGhlIHJ1bGUgZm9yIDEwMCBwbGFjZXMgdGhlIG51bWVyYWwgbWFyayBiZWZvcmUgdGhlIDEwMCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgIC8vICh3ZSBrbm93IGl0J3MgdGhlIGxhc3QgY2hhcmFjdGVyKTsgdGhlIHJ1bGUgZm9yIDEwMSByZWN1cnNlcyB0bworICAgICAgICAgICAgICAgLy8gZmlsbCBpbiB0aGUgcmVtYWluaW5nIGRpZ2l0cyBhbmQgdGhlIG51bWVyYWwgbWFyaworICAgICAgICArICIgICAgMTAwOiA8JSVodW5kcmVkczxcdTIwMzI7IDwlJWh1bmRyZWRzPD4+O1xuIgorICAgICAgICAgICAgICAgLy8gc3BlY2lhbC1jYXNlIHRoZSBodW5kcmVkcyBmcm9tIDUwMCB0byA5MDAgYmVjYXVzZSB0aGV5IGNvbnNpc3Qgb2YKKyAgICAgICAgICAgICAgIC8vIG1vcmUgdGhhbiBvbmUgY2hhcmFjdGVyCisgICAgICAgICsgIiAgICA1MDA6IFx1MDVlYVx1MjAzM1x1MDVlNzsgXHUwNWVhXHUwNWU3Pj47XG4iCisgICAgICAgICsgIiAgICA2MDA6IFx1MDVlYVx1MjAzM1x1MDVlODsgXHUwNWVhXHUwNWU4Pj47XG4iCisgICAgICAgICsgIiAgICA3MDA6IFx1MDVlYVx1MjAzM1x1MDVlOTsgXHUwNWVhXHUwNWU5Pj47XG4iCisgICAgICAgICsgIiAgICA4MDA6IFx1MDVlYVx1MjAzM1x1MDVlYTsgXHUwNWVhXHUwNWVhPj47XG4iCisgICAgICAgICsgIiAgICA5MDA6IFx1MDVlYVx1MDVlYVx1MjAzM1x1MDVlNzsgXHUwNWVhXHUwNWVhXHUwNWU3Pj47XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgaXMgdXNlZCB0byBmb3JtYXQgdmFsdWVzIG9mIDEsMDAwIG9yIG1vcmUuICBIZXJlLCB3ZSBkb24ndAorICAgICAgICAvLyB3b3JyeSBhYm91dCB0aGUgbnVtZXJhbCBtYXJrLCBhbmQgd2UgYWRkIHR3byBkb3RzICh0aGUgVW5pY29kZSBjb21iaW5pbmcKKyAgICAgICAgLy8gZGlhZXJlc2lzIGNoYXJhY3RlcikgdG8gZXZlciBsZXR0ZXIKKyAgICAgICAgKyAiJSVoaWdoLW9yZGVyOlxuIgorICAgICAgICAgICAgICAgLy8gcHV0IHRoZSBvbmVzIGRpZ2l0LCBmb2xsb3dlZCBieSB0aGUgZGlhZXJlc2lzCisgICAgICAgICsgIiAgICA9JSVvbmVzPVx1MDMwODtcbiIKKyAgICAgICAgICAgICAgIC8vIHRoZSB0ZW5zIGNhbiBiZSBoYW5kbGVkIHdpdGggcmVjdXJzaW9uCisgICAgICAgICsgIiAgICAxMDogPCUldGVuczxcdTAzMDhbPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gc3RpbGwgaGF2ZSB0byBzcGVjaWFsLWNhc2UgMTUgYW5kIDE2CisgICAgICAgICsgIiAgICAxNTogXHUwNWQ4XHUwMzA4XHUwNWQ1XHUwMzA4OyAxNjogXHUwNWQ4XHUwMDMwNzhcdTA1ZDZcdTAzMDg7XG4iCisgICAgICAgICAgICAgICAvLyBiYWNrIHRvIHRoZSByZWd1bGFyIHJ1bGVzIGF0IDE3CisgICAgICAgICsgIiAgICAxNzogPCUldGVuczxcdTAzMDhbPj5dO1xuIgorICAgICAgICAgICAgICAgLy8gdGhlIGh1bmRyZWRzIHdpdGggdGhlIGRvdHMgYWRkZWQgKGFuZCB3aXRob3V0IHdvcnJ5aW5nIGFib3V0CisgICAgICAgICAgICAgICAvLyBwbGFjaW5nIHRoZSBudW1lcmFsIG1hcmspCisgICAgICAgICsgIiAgICAxMDA6IDwlJWh1bmRyZWRzPFx1MDMwOFs+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDA6IFx1MDVlYVx1MDMwOFx1MDVlN1x1MDMwOFs+Pl07XG4iCisgICAgICAgICsgIiAgICA2MDA6IFx1MDVlYVx1MDMwOFx1MDVlOFx1MDMwOFs+Pl07XG4iCisgICAgICAgICsgIiAgICA3MDA6IFx1MDVlYVx1MDMwOFx1MDVlOVx1MDMwOFs+Pl07XG4iCisgICAgICAgICsgIiAgICA4MDA6IFx1MDVlYVx1MDMwOFx1MDVlYVx1MDMwOFs+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDA6IFx1MDVlYVx1MDMwOFx1MDVlYVx1MDMwOFx1MDVlN1x1MDMwOFs+Pl07XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgZG9lc24ndCBkbyBhbnl0aGluZzsgaXQncyB1c2VkIGJ5IHNvbWUgb3RoZXIgcnVsZXMgdG8KKyAgICAgICAgLy8gaW52b2tlIHRoZSByb2xsYmFjayBydWxlCisgICAgICAgICsgIiAlJW51bGw6XG4iCisgICAgICAgICsgIiAgICA7XG4iCisgICAgICAgIC8vIHRoZSBtYWluIHJ1bGUgc2V0LgorICAgICAgICArICIlbWFpbjpcbiIKKyAgICAgICAgICAgICAgIC8vIGZvciB2YWx1ZXMgYmVsb3cgMTAsIGp1c3Qgb3V0cHV0IHRoZSBsZXR0ZXIgYW5kIHRoZSBudW1lcmFsIG1hcmsKKyAgICAgICAgKyAiICAgID0lJW9uZXM9XHUyMDMyO1xuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBmcm9tIDEwIHRvIDk5LCB1c2UgJSV0ZW5zLWFuZC1vbmVzIHRvIGRvIHRoZSBmb3JtYXR0aW5nCisgICAgICAgICsgIiAgICAxMDogPSUldGVucy1hbmQtb25lcz07XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIGZyb20gMTAwIHRvIDk5OSwgdXNlICUlbG93LW9yZGVyIHRvIGRvIHRoZSBmb3JtYXR0aW5nCisgICAgICAgICsgIiAgICAxMDA6ID0lJWxvdy1vcmRlcj07XG4iCisgICAgICAgICAgICAgICAvLyBmb3IgdmFsdWVzIG9mIDEsMDAwIGFuZCBvdmVyLCB1c2UgJSVoaWdoLW9yZGVyIHRvIGRvIHRoZSBmb3JtYXR0aW5nCisgICAgICAgICsgIiAgICAxMDAwOiA8JSVoaWdoLW9yZGVyPFs+JSVsb3ctb3JkZXI+XTtcbiI7CisKKyAgICAvKioKKyAgICAgKiBHcmVlayBhbHBoYWJldGljIG51bWVyYWxzLiAgVGhlIEdyZWVrcywgYmVmb3JlIGFkb3B0aW5nIHRoZSBBcmFiaWMgbnVtZXJhbHMsCisgICAgICogYWxzbyB1c2VkIHRoZSBsZXR0ZXJzIG9mIHRoZWlyIGFscGhhYmV0IGFzIG51bWVyYWxzLiAgVGhlcmUgYXJlIHRocmVlIG5vdy0KKyAgICAgKiBvYnNvbGV0ZSBHcmVlayBsZXR0ZXJzIHRoYXQgYXJlIHVzZWQgYXMgbnVtZXJhbHM7IG1hbnkgZm9udHMgZG9uJ3QgaGF2ZSB0aGVtLgorICAgICAqIExhcmdlIG51bWJlcnMgd2VyZSBoYW5kbGVkIG1hbnkgZGlmZmVyZW50IHdheXM7IHRoZSB3YXkgc2hvd24gaGVyZSBkaXZpZGVzCisgICAgICogbGFyZ2UgbnVtYmVycyBpbnRvIGdyb3VwcyBvZiBmb3VyIGxldHRlcnMgKGZhY3RvcnMgb2YgMTAsMDAwKSwgYW5kIHNlcGFyYXRlcworICAgICAqIHRoZSBncm91cHMgd2l0aCB0aGUgY2FwaXRhbCBsZXR0ZXIgbXUgKGZvciBteXJpYWQpLiAgQ2FwaXRhbCBsZXR0ZXJzIGFyZSB1c2VkCisgICAgICogZm9yIHZhbHVlcyBiZWxvdyAxMCwwMDA7IHNtYWxsIGxldHRlcnMgZm9yIGhpZ2hlciBudW1iZXJzICh0byBtYWtlIHRoZSBjYXBpdGFsCisgICAgICogbXUgc3RhbmQgb3V0KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBncmVla0FscGhhYmV0aWMgPQorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgZm9yIGZvcm1hdHRpbmcgbnVtYmVycyBiZWxvdyAxMCwwMDAuICBJdCB1c2VzCisgICAgICAgIC8vIGNhcGl0YWwgbGV0dGVycy4KKyAgICAgICAgIiUlbG93LW9yZGVyOlxuIgorICAgICAgICArICIgICAgKG5vIHplcm8pOyBcdTAzOTE7IFx1MDM5MjsgXHUwMzkzOyBcdTAzOTQ7IFx1MDM5NTsgXHUwM2RjOyBcdTAzOTY7IFx1MDM5NzsgXHUwMzk4O1xuIgorICAgICAgICArICIgICAgMTA6IFx1MDM5OVs+Pl07IDIwOiBcdTAzOWFbPj5dOyAzMDogXHUwMzliWz4+XTsgNDA6IFx1MDM5Y1s+Pl07IDUwOiBcdTAzOWRbPj5dO1xuIgorICAgICAgICArICIgICAgNjA6IFx1MDM5ZVs+Pl07IDcwOiBcdTAzOWZbPj5dOyA4MDogXHUwM2EwWz4+XTsgOTA6IFx1MDNkZVs+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IFx1MDNhMVs+Pl07IDIwMDogXHUwM2EzWz4+XTsgMzAwOiBcdTAzYTRbPj5dOyA0MDA6IFx1MDNhNVs+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDA6IFx1MDNhNls+Pl07IDYwMDogXHUwM2E3Wz4+XTsgNzAwOiBcdTAzYThbPj5dOyA4MDA6IFx1MDNhOVs+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDA6IFx1MDNlMFs+Pl07XG4iCisgICAgICAgICAgICAgICAvLyB0aGUgdGhvdXNhbmRzIGFyZSByZXByZXNlbnRlZCBieSB0aGUgc2FtZSBudW1iZXJzIGFzIHRoZSBvbmVzLCBidXQKKyAgICAgICAgICAgICAgIC8vIHdpdGggYSBjb21tYS1saWtlIG1hcmsgYWRkZWQgdG8gdGhlaXIgbGVmdCBzaG91bGRlcgorICAgICAgICArICIgICAgMTAwMDogXHUwMzkxXHUwMzEzWz4+XTsgMjAwMDogXHUwMzkyXHUwMzEzWz4+XTsgMzAwMDogXHUwMzkzXHUwMzEzWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwMDA6IFx1MDM5NFx1MDMxM1s+Pl07IDUwMDA6IFx1MDM5NVx1MDMxM1s+Pl07IDYwMDA6IFx1MDNkY1x1MDMxM1s+Pl07XG4iCisgICAgICAgICsgIiAgICA3MDAwOiBcdTAzOTZcdTAzMTNbPj5dOyA4MDAwOiBcdTAzOTdcdTAzMTNbPj5dOyA5MDAwOiBcdTAzOThcdTAzMTNbPj5dO1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHRoZSBzYW1lIGFzIGFib3ZlLCBidXQgdXNlcyBsb3dlcmNhc2UgbGV0dGVycy4gIEl0IGlzIHVzZWQKKyAgICAgICAgLy8gZm9yIGZvcm1hdHRpbmcgdGhlIGdyb3VwcyBpbiBudW1iZXJzIGFib3ZlIDEwLDAwMC4KKyAgICAgICAgKyAiJSVoaWdoLW9yZGVyOlxuIgorICAgICAgICArICIgICAgKG5vIHplcm8pOyBcdTAzYjE7IFx1MDNiMjsgXHUwM2IzOyBcdTAzYjQ7IFx1MDNiNTsgXHUwM2RjOyBcdTAzYjY7IFx1MDNiNzsgXHUwM2I4O1xuIgorICAgICAgICArICIgICAgMTA6IFx1MDNiOVs+Pl07IDIwOiBcdTAzYmFbPj5dOyAzMDogXHUwM2JiWz4+XTsgNDA6IFx1MDNiY1s+Pl07IDUwOiBcdTAzYmRbPj5dO1xuIgorICAgICAgICArICIgICAgNjA6IFx1MDNiZVs+Pl07IDcwOiBcdTAzYmZbPj5dOyA4MDogXHUwM2MwWz4+XTsgOTA6IFx1MDNkZVs+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IFx1MDNjMVs+Pl07IDIwMDogXHUwM2MzWz4+XTsgMzAwOiBcdTAzYzRbPj5dOyA0MDA6IFx1MDNjNVs+Pl07XG4iCisgICAgICAgICsgIiAgICA1MDA6IFx1MDNjNls+Pl07IDYwMDogXHUwM2M3Wz4+XTsgNzAwOiBcdTAzYzhbPj5dOyA4MDA6IFx1MDNjOVs+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDA6IFx1MDNjMFs+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiBcdTAzYjFcdTAzMTNbPj5dOyAyMDAwOiBcdTAzYjJcdTAzMTNbPj5dOyAzMDAwOiBcdTAzYjNcdTAzMTNbPj5dO1xuIgorICAgICAgICArICIgICAgNDAwMDogXHUwM2I0XHUwMzEzWz4+XTsgNTAwMDogXHUwM2I1XHUwMzEzWz4+XTsgNjAwMDogXHUwM2RjXHUwMzEzWz4+XTtcbiIKKyAgICAgICAgKyAiICAgIDcwMDA6IFx1MDNiNlx1MDMxM1s+Pl07IDgwMDA6IFx1MDNiN1x1MDMxM1s+Pl07IDkwMDA6IFx1MDNiOFx1MDMxM1s+Pl07XG4iCisgICAgICAgIC8vIHRoZSBtYWluIHJ1bGUgc2V0CisgICAgICAgICsgIiVtYWluOlxuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBiZWxvdyAxMCwwMDAsIGp1c3QgdXNlICUlbG93LW9yZGVyCisgICAgICAgICsgIiAgICA9JSVsb3ctb3JkZXI9O1xuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBhYm92ZSAxMCwwMDAsIHNwbGl0IGludG8gdHdvIGdyb3VwcyBvZiBmb3VyIGRpZ2l0cworICAgICAgICAgICAgICAgLy8gYW5kIGZvcm1hdCBlYWNoIHdpdGggJSVoaWdoLW9yZGVyIChwdXR0aW5nIGFuIE0gaW4gYmV0d2VuKQorICAgICAgICArICIgICAgMTAsMDAwOiA8JSVoaWdoLW9yZGVyPFx1MDM5Yz4lJWhpZ2gtb3JkZXI+O1xuIgorICAgICAgICAgICAgICAgLy8gZm9yIHZhbHVlcyBhYm92ZSAxMDAsMDAwLDAwMCwgYWRkIGFub3RoZXIgZ3JvdXAgb250byB0aGUgZnJvbnQKKyAgICAgICAgICAgICAgIC8vIGFuZCBhbm90aGVyIE0KKyAgICAgICAgKyAiICAgIDEwMCwwMDAsMDAwOiA8JSVoaWdoLW9yZGVyPFx1MDM5Yz4+XG4iOworCisgICAgLyoqCisgICAgICogQSBsaXN0IG9mIGFsbCB0aGUgc2FtcGxlIHJ1bGUgc2V0cywgdXNlZCBieSB0aGUgZGVtbyBwcm9ncmFtLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gc2FtcGxlUnVsZVNldHMgPQorICAgICAgICB7IHVzRW5nbGlzaCwKKyAgICAgICAgICB1a0VuZ2xpc2gsCisgICAgICAgICAgc3BhbmlzaCwKKyAgICAgICAgICBmcmVuY2gsCisgICAgICAgICAgc3dpc3NGcmVuY2gsCisgICAgICAgICAgZ2VybWFuLAorICAgICAgICAgIGl0YWxpYW4sCisgICAgICAgICAgc3dlZGlzaCwKKyAgICAgICAgICBkdXRjaCwKKyAgICAgICAgICBqYXBhbmVzZSwKKyAgICAgICAgICBncmVlaywKKyAgICAgICAgICBydXNzaWFuLAorICAgICAgICAgIGhlYnJldywKKyAgICAgICAgICBvcmRpbmFsLAorICAgICAgICAgIG1lc3NhZ2UxLAorICAgICAgICAgIGRvbGxhcnNBbmRDZW50cywKKyAgICAgICAgICBkZWNpbWFsQXNGcmFjdGlvbiwKKyAgICAgICAgICBjbG9zZXN0RnJhY3Rpb24sCisgICAgICAgICAgc3RvY2ssCisgICAgICAgICAgYWJiRW5nbGlzaCwKKyAgICAgICAgICB1bml0cywKKyAgICAgICAgICBtZXNzYWdlMiwKKyAgICAgICAgICBkb3plbnMsCisgICAgICAgICAgZHVyYXRpb25JblNlY29uZHMsCisgICAgICAgICAgZHVyYXRpb25JbkhvdXJzLAorICAgICAgICAgIHBvdW5kc1NoaWxsaW5nc0FuZFBlbmNlLAorICAgICAgICAgIGFyYWJpY051bWVyYWxzLAorICAgICAgICAgIHdvcmRzRm9yRGlnaXRzLAorICAgICAgICAgIGNoaW5lc2VQbGFjZVZhbHVlLAorICAgICAgICAgIHJvbWFuTnVtZXJhbHMsCisgICAgICAgICAgaGVicmV3QWxwaGFiZXRpYywKKyAgICAgICAgICBncmVla0FscGhhYmV0aWMgfTsKKworICAgIC8qKgorICAgICAqIFRoZSBkaXNwbGF5YWJsZSBuYW1lcyBmb3IgYWxsIHRoZSBzYW1wbGUgcnVsZSBzZXRzLCBpbiB0aGUgc2FtZSBvcmRlciBhcworICAgICAqIHRoZSBwcmVjZWRpbmcgYXJyYXkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBzYW1wbGVSdWxlU2V0TmFtZXMgPQorICAgICAgICB7ICJFbmdsaXNoIChVUykiLAorICAgICAgICAgICJFbmdsaXNoIChVSykiLAorICAgICAgICAgICJTcGFuaXNoIiwKKyAgICAgICAgICAiRnJlbmNoIChGcmFuY2UpIiwKKyAgICAgICAgICAiRnJlbmNoIChTd2l0emVybGFuZCkiLAorICAgICAgICAgICJHZXJtYW4iLAorICAgICAgICAgICJJdGFsaWFuIiwKKyAgICAgICAgICAiU3dlZGlzaCIsCisgICAgICAgICAgIkR1dGNoIiwKKyAgICAgICAgICAiSmFwYW5lc2UiLAorICAgICAgICAgICJHcmVlayIsCisgICAgICAgICAgIlJ1c3NpYW4iLAorICAgICAgICAgICJIZWJyZXciLAorICAgICAgICAgICJFbmdsaXNoIG9yZGluYWwgYWJicmV2aWF0aW9ucyIsCisgICAgICAgICAgIlNpbXBsZSBtZXNzYWdlIGZvcm1hdHRpbmciLAorICAgICAgICAgICJEb2xsYXJzIGFuZCBjZW50cyIsCisgICAgICAgICAgIkRlY2ltYWxzIGFzIGZyYWN0aW9ucyIsCisgICAgICAgICAgIkNsb3Nlc3QgZnJhY3Rpb24iLAorICAgICAgICAgICJTdG9jayBwcmljZXMiLAorICAgICAgICAgICJBYmJyZXZpYXRlZCBVUyBFbmdsaXNoIiwKKyAgICAgICAgICAiQ2hhbmdpbmcgZGltZW5zaW9ucyIsCisgICAgICAgICAgIkNvbXBsZXggbWVzc2FnZSBmb3JtYXR0aW5nIiwKKyAgICAgICAgICAiRG96ZW5zIiwKKyAgICAgICAgICAiRHVyYXRpb24gKHZhbHVlIGluIHNlY29uZHMpIiwKKyAgICAgICAgICAiRHVyYXRpb24gKHZhbHVlIGluIGhvdXJzKSIsCisgICAgICAgICAgIlBvdW5kcywgc2hpbGxpbmdzLCBhbmQgcGVuY2UiLAorICAgICAgICAgICJBcmFiaWMgbnVtZXJhbHMiLAorICAgICAgICAgICJXb3JkcyBmb3IgZGlnaXRzIiwKKyAgICAgICAgICAiQ2hpbmVzZSBwbGFjZS12YWx1ZSBub3RhdGlvbiIsCisgICAgICAgICAgIlJvbWFuIG51bWVyYWxzIiwKKyAgICAgICAgICAiSGVicmV3IGFobHBoYWJldGljIG51bWVyYWxzIiwKKyAgICAgICAgICAiR3JlZWsgYWxwaGFiZXRpYyBudW1lcmFscyIgfTsKKworICAgIC8qKgorICAgICAqIFRoZSBiYXNlIGxvY2FsZSBmb3IgZWFjaCBvZiB0aGUgc2FtcGxlIHJ1bGUgc2V0cy4gIFRoZSBsb2NhbGUgaXMgdXNlZCB0bworICAgICAqIGRldGVybWluZSBEZWNpbWFsRm9ybWF0IGJlaGF2aW9yLCBsZW5pZW50LXBhcnNlIGJlaGF2aW9yLCBhbmQgdGV4dC1kaXNwbGF5CisgICAgICogc2VsZWN0aW9uICh3ZSBoYXZlIGEgaGFjayBpbiBoZXJlIHRvIGFsbG93IGRpc3BsYXkgb2Ygbm9uLUxhdGluIHNjcmlwdHMpLgorICAgICAqIE51bGwgbWVhbnMgdGhlIGxvY2FsZSBzZXR0aW5nIGlzIGlycmVsZXZhbnQgYW5kIHRoZSBkZWZhdWx0IGNhbiBiZSB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTG9jYWxlW10gc2FtcGxlUnVsZVNldExvY2FsZXMgPQorICAgICAgICB7IExvY2FsZS5VUywKKyAgICAgICAgICBMb2NhbGUuVUssCisgICAgICAgICAgbmV3IExvY2FsZSgiZXMiLCAiIiwgIiIpLAorICAgICAgICAgIExvY2FsZS5GUkFOQ0UsCisgICAgICAgICAgbmV3IExvY2FsZSgiZnIiLCAiQ0giLCAiIiksCisgICAgICAgICAgTG9jYWxlLkdFUk1BTiwKKyAgICAgICAgICBMb2NhbGUuSVRBTElBTiwKKyAgICAgICAgICBuZXcgTG9jYWxlKCJzdiIsICIiLCAiIiksCisgICAgICAgICAgbmV3IExvY2FsZSgibmwiLCAiIiwgIiIpLAorICAgICAgICAgIExvY2FsZS5KQVBBTkVTRSwKKyAgICAgICAgICBuZXcgTG9jYWxlKCJlbCIsICIiLCAiIiksCisgICAgICAgICAgbmV3IExvY2FsZSgicnUiLCAiIiwgIiIpLAorICAgICAgICAgIG5ldyBMb2NhbGUoIml3IiwgIiIsICIiKSwKKyAgICAgICAgICBMb2NhbGUuRU5HTElTSCwKKyAgICAgICAgICBMb2NhbGUuRU5HTElTSCwKKyAgICAgICAgICBMb2NhbGUuVVMsCisgICAgICAgICAgTG9jYWxlLkVOR0xJU0gsCisgICAgICAgICAgbnVsbCwKKyAgICAgICAgICBudWxsLAorICAgICAgICAgIExvY2FsZS5FTkdMSVNILAorICAgICAgICAgIG51bGwsCisgICAgICAgICAgTG9jYWxlLkVOR0xJU0gsCisgICAgICAgICAgTG9jYWxlLkVOR0xJU0gsCisgICAgICAgICAgbnVsbCwKKyAgICAgICAgICBudWxsLAorICAgICAgICAgIExvY2FsZS5VSywKKyAgICAgICAgICBudWxsLAorICAgICAgICAgIExvY2FsZS5FTkdMSVNILAorICAgICAgICAgIG5ldyBMb2NhbGUoInpoIiwgIiIsICIiKSwKKyAgICAgICAgICBudWxsLAorICAgICAgICAgIG5ldyBMb2NhbGUoIml3IiwgIiIsICIiKSwKKyAgICAgICAgICBuZXcgTG9jYWxlKCJlbCIsICIiLCAiIiksCisgICAgICAgICAgbnVsbCB9OworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gc2FtcGxlUnVsZVNldENvbW1lbnRhcnkgPSB7CisgICAgICAgICAgICAiVGhpcyBkZW1vbnN0cmF0aW9uIHZlcnNpb24gb2YgdGhlICIKKyAgICAgICAgICAgICsgIlUuUy4gRW5nbGlzaCBzcGVsbG91dCBydWxlcyBoYXMgZm91ciB2YXJpYW50czogMSkgJXNpbXBsaWZpZWQgaXMgYSAiCisgICAgICAgICAgICArICJzZXQgb2YgcnVsZXMgc2hvd2luZyB0aGUgc2ltcGxlIG1ldGhvZCBvZiBzcGVsbGluZyBvdXQgbnVtYmVycyBpbiAiCisgICAgICAgICAgICArICJFbmdsaXNoOiAyODkgaXMgZm9ybWF0dGVkIGFzIFwidHdvIGh1bmRyZWQgZWlnaHR5LW5pbmVcIi4gIDIpICVhbHQtdGVlbnMgIgorICAgICAgICAgICAgKyAiaXMgdGhlIHNhbWUgYXMgJXNpbXBsaWZpZWQsIGV4Y2VwdCB0aGF0IHZhbHVlcyBiZXR3ZWVuIDEsMDAwIGFuZCA5LDk5OSAiCisgICAgICAgICAgICArICJ3aG9zZSBodW5kcmVkcyBwbGFjZSBpc24ndCB6ZXJvIGFyZSBmb3JtYXR0ZWQgaW4gaHVuZHJlZHMuICBGb3IgZXhhbXBsZSwgIgorICAgICAgICAgICAgKyAiMSw5ODMgaXMgZm9ybWF0dGVkIGFzIFwibmluZXRlZW4gaHVuZHJlZCBlaWdodHktdGhyZWUsXCIgYW5kIDIsMTgzIGlzICIKKyAgICAgICAgICAgICsgImZvcm1hdHRlZCBhcyBcInR3ZW50eS1vbmUgaHVuZHJlZCBlaWdodHktdGhyZWUsXCIgYnV0IDIsMDgzIGlzIHN0aWxsICIKKyAgICAgICAgICAgICsgImZvcm1hdHRlZCBhcyBcInR3byB0aG91c2FuZCBlaWdodHktdGhyZWUuXCIgIDMpICVvcmRpbmFsIGZvcm1hdHMgdGhlICIKKyAgICAgICAgICAgICsgInZhbHVlcyBhcyBvcmRpbmFsIG51bWJlcnMgaW4gRW5nbGlzaCAoZS5nLiwgMjg5IGlzIFwidHdvIGh1bmRyZWQgZWlnaHR5LSIKKyAgICAgICAgICAgICsgIm5pbnRoXCIpLiAgNCkgJWRlZmF1bHQgdXNlcyBhIG1vcmUgY29tcGxpY2F0ZWQgYWxnb3JpdGhtIHRvIGZvcm1hdCAiCisgICAgICAgICAgICArICJudW1iZXJzIGluIGEgbW9yZSBuYXR1cmFsIHdheTogMjg5IGlzIGZvcm1hdHRlZCBhcyBcInR3byBodW5kcmVkIEFORCAiCisgICAgICAgICAgICArICJlaWdodHktbmluZVwiIGFuZCBjb21tYXMgYXJlIGluc2VydGVkIGJldHdlZW4gdGhlIHRob3VzYW5kcyBncm91cHMgZm9yICIKKyAgICAgICAgICAgICsgInZhbHVlcyBhYm92ZSAxMDAsMDAwLiIsCisKKyAgICAgICAgICAgICJVLksuIEVuZ2xpc2ggaGFzIG9uZSBzaWduaWZpY2FudCAiCisgICAgICAgICAgICArICJkaWZmZXJlbmNlIGZyb20gVS5TLiBFbmdsaXNoOiB0aGUgbmFtZXMgZm9yIHZhbHVlcyBvZiAxLDAwMCwwMDAsMDAwICIKKyAgICAgICAgICAgICsgImFuZCBoaWdoZXIuICBJbiBBbWVyaWNhbiBFbmdsaXNoLCBlYWNoIHN1Y2Nlc3NpdmUgXCItaWxsaW9uXCIgaXMgMSwwMDAgIgorICAgICAgICAgICAgKyAidGltZXMgZ3JlYXRlciB0aGFuIHRoZSBwcmVjZWRpbmcgb25lOiAxLDAwMCwwMDAsMDAwIGlzIFwib25lIGJpbGxpb25cIiAiCisgICAgICAgICAgICArICJhbmQgMSwwMDAsMDAwLDAwMCwwMDAgaXMgXCJvbmUgdHJpbGxpb24uXCIgIEluIEJyaXRpc2ggRW5nbGlzaCwgZWFjaCAiCisgICAgICAgICAgICArICJzdWNjZXNzaXZlIFwiLWlsbGlvblwiIGlzIG9uZSBtaWxsaW9uIHRpbWVzIGdyZWF0ZXIgdGhhbiB0aGUgb25lIGJlZm9yZTogIgorICAgICAgICAgICAgKyAiXCJvbmUgYmlsbGlvblwiIGlzIDEsMDAwLDAwMCwwMDAsMDAwIChvciB3aGF0IEFtZXJpY2FucyB3b3VsZCBjYWxsIGEgIgorICAgICAgICAgICAgKyAiXCJ0cmlsbGlvblwiKSwgYW5kIFwib25lIHRyaWxsaW9uXCIgaXMgMSwwMDAsMDAwLDAwMCwwMDAsMDAwLDAwMC4gICIKKyAgICAgICAgICAgICsgIjEsMDAwLDAwMCwwMDAgaW4gQnJpdGlzaCBFbmdsaXNoIGlzIFwib25lIHRob3VzYW5kIG1pbGxpb24uXCIgIChUaGlzICIKKyAgICAgICAgICAgICsgInZhbHVlIGlzIHNvbWV0aW1lcyBjYWxsZWQgYSBcIm1pbGxpYXJkLFwiIGJ1dCB0aGlzIHdvcmQgc2VlbXMgdG8gaGF2ZSAiCisgICAgICAgICAgICArICJmYWxsZW4gaW50byBkaXN1c2UuKSIsCisKKyAgICAgICAgICAgICJUaGUgU3BhbmlzaCBydWxlcyBhcmUgcXVpdGUgc2ltaWxhciB0byAiCisgICAgICAgICAgICArICJ0aGUgRW5nbGlzaCBydWxlcywgYnV0IHRoZXJlIGFyZSBzb21lIGltcG9ydGFudCBkaWZmZXJlbmNlczogIgorICAgICAgICAgICAgKyAiRmlyc3QsIHdlIGhhdmUgdG8gcHJvdmlkZSBzZXBhcmF0ZSBydWxlcyBmb3IgbW9zdCBvZiB0aGUgdHdlbnRpZXMgIgorICAgICAgICAgICAgKyAiYmVjYXVzZSB0aGUgb25lcyBkaWdpdCBmcmVxdWVudGx5IHBpY2tzIHVwIGFuIGFjY2VudCBtYXJrIHRoYXQgaXQgIgorICAgICAgICAgICAgKyAiZG9lc24ndCBoYXZlIHdoZW4gc3RhbmRpbmcgYWxvbmUuICBTZWNvbmQsIGVhY2ggbXVsdGlwbGUgb2YgMTAwIGhhcyAiCisgICAgICAgICAgICArICJ0byBiZSBzcGVjaWZpZWQgc2VwYXJhdGVseSBiZWNhdXNlIHRoZSBtdWx0aXBsaWVyIG9uIDEwMCB2ZXJ5IG9mdGVuICIKKyAgICAgICAgICAgICsgImNoYW5nZXMgZm9ybSBpbiB0aGUgY29udHJhY3Rpb246IDUwMCBpcyBcInF1aW5pZW50b3MsXCIgbm90ICIKKyAgICAgICAgICAgICsgIlwiY2luY29jaWVudG9zLlwiICBJbiBhZGRpdGlvbiwgdGhlIHdvcmQgZm9yIDEwMCBpcyBcImNpZW5cIiB3aGVuICIKKyAgICAgICAgICAgICsgInN0YW5kaW5nIGFsb25lLCBidXQgY2hhbmdlcyB0byBcImNpZW50b1wiIHdoZW4gZm9sbG93ZWQgYnkgbW9yZSBkaWdpdHMuICAiCisgICAgICAgICAgICArICJUaGVyZSBhbHNvIHNvbWUgb3RoZXIgZGlmZmVyZW5jZXMuIiwKKworICAgICAgICAgICAgIkZyZW5jaCBhZGRzIHNvbWUgaW50ZXJlc3RpbmcgcXVpcmtzIG9mIGl0cyAiCisgICAgICAgICAgICArICJvd246IDEpIFRoZSB3b3JkIFwiZXRcIiBpcyBpbnRlcnBvc2VkIGJldHdlZW4gdGhlIHRlbnMgYW5kIG9uZXMgZGlnaXRzLCAiCisgICAgICAgICAgICArICJidXQgb25seSBpZiB0aGUgb25lcyBkaWdpdCBpZiAxOiAyMCBpcyBcInZpbmd0LFwiIGFuZCAyIGlzIFwidmluZ3QtZGV1eCxcIiAiCisgICAgICAgICAgICArICJidXQgMjEgaXMgXCJ2aW5ndC1ldC11bi5cIiAgMikgIFRoZXJlIGFyZSBubyB3b3JkcyBmb3IgNzAsIDgwLCBvciA5MC4gICIKKyAgICAgICAgICAgICsgIlwicXVhdHJlLXZpbmd0c1wiIChcImZvdXIgdHdlbnRpZXNcIikgaXMgdXNlZCBmb3IgODAsIGFuZCB2YWx1ZXMgcHJvY2VlZCAiCisgICAgICAgICAgICArICJieSBzY29yZSBmcm9tIDYwIHRvIDk5IChlLmcuLCA3MyBpcyBcInNvaXhhbnRlLXRyZWl6ZVwiIFtcInNpeHR5LXRoaXJ0ZWVuXCJdKS4gICIKKyAgICAgICAgICAgICsgIk51bWJlcnMgZnJvbSAxLDEwMCB0byAxLDE5OSBhcmUgcmVuZGVyZWQgYXMgaHVuZHJlZHMgcmF0aGVyIHRoYW4gIgorICAgICAgICAgICAgKyAidGhvdXNhbmRzOiAxLDEwMCBpcyBcIm9uemUgY2VudHNcIiAoXCJlbGV2ZW4gaHVuZHJlZFwiKSwgcmF0aGVyIHRoYW4gIgorICAgICAgICAgICAgKyAiXCJtaWxsZSBjZW50XCIgKFwib25lIHRob3VzYW5kIG9uZSBodW5kcmVkXCIpIiwKKworICAgICAgICAgICAgIlN3aXNzIEZyZW5jaCBkaWZmZXJzIGZyb20gRnJlbmNoIEZyZW5jaCAiCisgICAgICAgICAgICArICJpbiB0aGF0IGl0IGRvZXMgaGF2ZSB3b3JkcyBmb3IgNzAsIDgwLCBhbmQgOTAuICBUaGlzIHJ1bGUgc2V0IHNob3dzIHRoZW0sICIKKyAgICAgICAgICAgICsgImFuZCBpcyBzaW1wbGVyIGFzIGEgcmVzdWx0LiIsCisKKyAgICAgICAgICAgICJHZXJtYW4gYWxzbyBhZGRzIHNvbWUgaW50ZXJlc3RpbmcgIgorICAgICAgICAgICAgKyAiY2hhcmFjdGVyaXN0aWNzLiAgRm9yIHZhbHVlcyBiZWxvdyAxLDAwMCwwMDAsIG51bWJlcnMgYXJlIGN1c3RvbWFyaWx5ICIKKyAgICAgICAgICAgICsgIndyaXR0ZW4gb3V0IGFzIGEgc2luZ2xlIHdvcmQuICBBbmQgdGhlIG9uZXMgZGlnaXQgUFJFQ0VERVMgdGhlIHRlbnMgIgorICAgICAgICAgICAgKyAiZGlnaXQgKGUuZy4sIDIzIGlzIFwiZHJlaXVuZHp3YW56aWcsXCIgbm90IFwiendhbnppZ3VuZGRyZWlcIikuIiwKKworICAgICAgICAgICAgIkxpa2UgR2VybWFuLCBtb3N0IEl0YWxpYW4gbnVtYmVycyBhcmUgIgorICAgICAgICAgICAgKyAid3JpdHRlbiBhcyBzaW5nbGUgd29yZHMuICBXaGF0IG1ha2VzIHRoZXNlIHJ1bGVzIGNvbXBsaWNhdGVkIGlzIHRoZSBydWxlICIKKyAgICAgICAgICAgICsgInRoYXQgc2F5cyB0aGF0IHdoZW4gYSB3b3JkIGVuZGluZyBpbiBhIHZvd2VsIGFuZCBhIHdvcmQgYmVnaW5uaW5nIHdpdGggIgorICAgICAgICAgICAgKyAiYSB2b3dlbCBhcmUgY29tYmluZWQgaW50byBhIGNvbXBvdW5kLCB0aGUgdm93ZWwgaXMgZHJvcHBlZCBmcm9tIHRoZSAiCisgICAgICAgICAgICArICJlbmQgb2YgdGhlIGZpcnN0IHdvcmQ6IDE4MCBpcyBcImNlbnRvdHRhbnRhLFwiIG5vdCBcImNlbnRvb3R0YW50YS5cIiAgIgorICAgICAgICAgICAgKyAiVGhlIGNvbXBsZXhpdHkgb2YgdGhpcyBydWxlIHNldCBpcyB0byBwcm9kdWNlIHRoaXMgYmVoYXZpb3IuIiwKKworICAgICAgICAgICAgIlNwZWxsb3V0IHJ1bGVzIGZvciBTd2VkaXNoLiIsCisKKyAgICAgICAgICAgICJTcGVsbG91dCBydWxlcyBmb3IgRHV0Y2guICBOb3RpY2UgdGhhdCBpbiBEdXRjaCwgYXMgaW4gR2VybWFuLCIKKyAgICAgICAgICAgICsgInRoZSBvbmVzIGRpZ2l0IHByZWNlZGVzIHRoZSB0ZW5zIGRpZ2l0LiIsCisKKyAgICAgICAgICAgICJJbiBKYXBhbmVzZSwgdGhlcmUgcmVhbGx5IGlzbid0IGFueSAiCisgICAgICAgICAgICArICJkaXN0aW5jdGlvbiBiZXR3ZWVuIGEgbnVtYmVyIHdyaXR0ZW4gb3V0IGluIGRpZ2l0cyBhbmQgYSBudW1iZXIgIgorICAgICAgICAgICAgKyAid3JpdHRlbiBvdXQgaW4gd29yZHM6IHRoZSBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzIGFyZSBib3RoIGRpZ2l0cyAiCisgICAgICAgICAgICArICJhbmQgd29yZHMuICBUaGlzIHJ1bGUgc2V0IHByb3ZpZGVzIHR3byB2YXJpYW50czogICV0cmFkaXRpb25hbCAiCisgICAgICAgICAgICArICJ1c2VzIHRoZSB0cmFkaXRpb25hbCBDSksgbnVtZXJhbHMgKHdoaWNoIGFyZSBhbHNvIHVzZWQgaW4gQ2hpbmEgIgorICAgICAgICAgICAgKyAiYW5kIEtvcmVhKS4gICVmaW5hbmNpYWwgdXNlcyBhbHRlcm5hdGUgaWRlb2dyYXBocyBmb3IgbWFueSBudW1iZXJzICIKKyAgICAgICAgICAgICsgInRoYXQgYXJlIGhhcmRlciB0byBhbHRlciB0aGFuIHRoZSB0cmFkaXRpb25hbCBudW1lcmFscyAob25lIGNvdWxkICIKKyAgICAgICAgICAgICsgImZhaXJseSBlYXNpbHkgY2hhbmdlIGEgb25lIHRvICIKKyAgICAgICAgICAgICsgImEgdGhyZWUganVzdCBieSBhZGRpbmcgdHdvIHN0cm9rZXMsIGZvciBleGFtcGxlKS4gIFRoaXMgaXMgYWxzbyBkb25lIGluICIKKyAgICAgICAgICAgICsgInRoZSBvdGhlciBjb3VudHJpZXMgdXNpbmcgQ2hpbmVzZSBpZG9ncmFwaHMsIGJ1dCBkaWZmZXJlbnQgaWRlb2dyYXBocyAiCisgICAgICAgICAgICArICJhcmUgdXNlZCBpbiB0aG9zZSBwbGFjZXMuIiwKKworICAgICAgICAgICAgIkFnYWluIGluIEdyZWVrIHdlIGhhdmUgdG8gc3VwcGx5IHRoZSB3b3JkcyAiCisgICAgICAgICAgICArICJmb3IgdGhlIG11bHRpcGxlcyBvZiAxMDAgYmVjYXVzZSB0aGV5IGNhbid0IGJlIGRlcml2ZWQgYWxnb3JpdGhtaWNhbGx5LiAgIgorICAgICAgICAgICAgKyAiQWxzbywgdGhlIHRlbnMgZGdpdCBjaGFuZ2VzIGZvcm0gd2hlbiBmb2xsb3dlZCBieSBhIG9uZXMgZGlnaXQ6IGFuICIKKyAgICAgICAgICAgICsgImFjY2VudCBtYXJrIGRpc2FwcGVhcnMgZnJvbSB0aGUgdGVucyBkaWdpdCBhbmQgbW92ZXMgdG8gdGhlIG9uZXMgZGlnaXQuICAiCisgICAgICAgICAgICArICJUaGVyZWZvcmUsIGluc3RlYWQgb2YgdXNpbmcgdGhlIFtdIG5vdGF0aW9uLCB3ZSBhY3R1YWxseSBoYXZlIHRvIHVzZSAiCisgICAgICAgICAgICArICJ0d28gc2VwYXJhdGUgcnVsZXMgZm9yIGVhY2ggbXVsdGlwbGUgb2YgMTAgdG8gc2hvdyB0aGUgdHdvIGZvcm1zIG9mICIKKyAgICAgICAgICAgICsgInRoZSB3b3JkLiIsCisKKyAgICAgICAgICAgICJTcGVsbG91dCBydWxlcyBmb3IgUnVzc2lhbi4iLAorCisgICAgICAgICAgICAiU3BlbGxvdXQgcnVsZXMgZm9yIEhlYnJldy4gIEhlYnJldyBhY3R1YWxseSBoYXMgaW5mbGVjdGVkIGZvcm1zIGZvciAiCisgICAgICAgICAgICArICJtb3N0IG9mIHRoZSBsb3dlci1vcmRlciBudW1iZXJzLiAgVGhlIG1hc2N1bGluZSBmb3JtcyBhcmUgc2hvd24gIgorICAgICAgICAgICAgKyAiaGVyZS4iLAorCisgICAgICAgICAgICAiVGhpcyBydWxlIHNldCBhZGRzIGFuIEVuZ2xpc2ggb3JkaW5hbCBhYmJyZXZpYXRpb24gdG8gdGhlIGVuZCBvZiBhICIKKyAgICAgICAgICAgICsgIm51bWJlci4gIEZvciBleGFtcGxlLCAyIGlzIGZvcm1hdHRlZCBhcyBcIjJuZFwiLiAgUGFyc2luZyBkb2Vzbid0IHdvcmsgd2l0aCAiCisgICAgICAgICAgICArICJ0aGlzIHJ1bGUgc2V0LiAgVG8gcGFyc2UsIHVzZSBEZWNpbWFsRm9ybWF0IG9uIHRoZSBudW1lcmFsLiIsCisKKyAgICAgICAgICAgICJUaGlzIGlzIGEgc2ltcGxlIG1lc3NhZ2UtZm9ybWF0dGluZyBleGFtcGxlLiAgTm9ybWFsbHkgb25lIHdvdWxkICIKKyAgICAgICAgICAgICsgInVzZSBDaG9pY2VGb3JtYXQgYW5kIE1lc3NhZ2VGb3JtYXQgdG8gZG8gc29tZXRoaW5nIHRoaXMgc2ltcGxlLCAiCisgICAgICAgICAgICArICJidXQgdGhpcyBzaG93cyBpdCBjb3VsZCBiZSBkb25lIHdpdGggUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRvby4gICIKKyAgICAgICAgICAgICsgIkEgbWVzc2FnZS1mb3JtYXR0aW5nIGV4YW1wbGUgdGhhdCBtaWdodCB3b3JrIGJldHRlciB3aXRoICIKKyAgICAgICAgICAgICsgIlJ1bGVCYXNlZE51bWJlckZvcm1hdCBhcHBlYXJzIGxhdGVyLiIsCisKKyAgICAgICAgICAgICJUaGUgbmV4dCBmZXcgZXhhbXBsZXMgZGVtb25zdHJhdGUgZnJhY3Rpb24gaGFuZGxpbmcuICAiCisgICAgICAgICAgICArICJUaGlzIGV4YW1wbGUgZm9ybWF0cyBhIG51bWJlciBpbiBvbmUgb2YgdGhlIHR3byBzdHlsZXMgb2Z0ZW4gdXNlZCAiCisgICAgICAgICAgICArICJvbiBjaGVja3MuICAlZG9sbGFycy1hbmQtaHVuZHJlZHRocyBmb3JtYXRzIGNlbnRzIGFzIGh1bmRyZWR0aHMgb2YgIgorICAgICAgICAgICAgKyAiYSBkb2xsYXIgKDIzLjQwIGNvbWVzIG91dCBhcyBcInR3ZW50eS10aHJlZSBhbmQgNDAvMTAwIGRvbGxhcnNcIikuICAiCisgICAgICAgICAgICArICIlZG9sbGFycy1hbmQtY2VudHMgZm9ybWF0cyBpbiBkb2xsYXJzIGFuZCBjZW50cyAoMjMuNDAgY29tZXMgb3V0IGFzICIKKyAgICAgICAgICAgICsgIlwidHdlbnR5LXRocmVlIGRvbGxhcnMgYW5kIGZvcnR5IGNlbnRzXCIpIiwKKworICAgICAgICAgICAgIlRoaXMgcnVsZSBzZXQgc2hvd3MgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyIGFzIGEgZnJhY3Rpb24gIgorICAgICAgICAgICAgKyAid2l0aCBhIHBvd2VyIG9mIDEwIGFzIHRoZSBkZW5vbWluYXRvci4gIFNvbWUgbGFuZ3VhZ2VzIGRvbid0IHNwZWxsICIKKyAgICAgICAgICAgICsgIm91dCB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIGEgbnVtYmVyIGFzIFwicG9pbnQgb25lIHR3byB0aHJlZSxcIiBidXQgIgorICAgICAgICAgICAgKyAiYWx3YXlzIHJlbmRlciBpdCBhcyBhIGZyYWN0aW9uLiAgSWYgd2Ugc3RpbGwgd2FudCB0byB0cmVhdCB0aGUgZnJhY3Rpb25hbCAiCisgICAgICAgICAgICArICJwYXJ0IG9mIHRoZSBudW1iZXIgYXMgYSBkZWNpbWFsLCB0aGVuIHRoZSBmcmFjdGlvbidzIGRlbm9taW5hdG9yICIKKyAgICAgICAgICAgICsgImlzIGFsd2F5cyBhIHBvd2VyIG9mIDEwLiAgVGhpcyBleGFtcGxlIGRvZXMgdGhhdDogMjMuMTI1IGlzIGZvcm1hdHRlZCAiCisgICAgICAgICAgICArICJhcyBcInR3ZW50eS10aHJlZSBhbmQgb25lIGh1bmRyZWQgdHdlbnR5LWZpdmUgdGhvdXNhbmR0aHNcIiAoYXMgb3Bwb3NlZCAiCisgICAgICAgICAgICArICJ0byBcInR3ZW50eS10aHJlZSBwb2ludCBvbmUgdHdvIGZpdmVcIiBvciBcInR3ZW50eS10aHJlZSBhbmQgb25lIGVpZ2h0aFwiKS4iLAorCisgICAgICAgICAgICAiTnVtYmVyIHdpdGggY2xvc2VzdCBmcmFjdGlvbi4gIFRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgdmFsdWUgdXNpbmcgIgorICAgICAgICAgICAgKyAibnVtZXJhbHMsIGJ1dCBzaG93cyB0aGUgZnJhY3Rpb25hbCBwYXJ0IGFzIGEgcmF0aW8gKGZyYWN0aW9uKSByYXRoZXIgIgorICAgICAgICAgICAgKyAidGhhbiBhIGRlY2ltYWwuICBUaGUgZnJhY3Rpb24gYWx3YXlzIGhhcyBhIGRlbm9taW5hdG9yIGJldHdlZW4gMiBhbmQgMTAuIiwKKworICAgICAgICAgICAgIkFtZXJpY2FuIHN0b2NrLXByaWNlIGZvcm1hdHRpbmcuICBOb24taW50ZWdyYWwgc3RvY2sgcHJpY2VzIGFyZSBzdGlsbCAiCisgICAgICAgICAgICArICJnZW5lcmFsbHkgc2hvd24gaW4gZWlnaHRocyBvciBzaXh0ZWVudGhzIG9mIGRvbGxhcnMgaW5zdGVhZCBvZiBkb2xsYXJzICIKKyAgICAgICAgICAgICsgImFuZCBjZW50cy4gIFRoaXMgZXhhbXBsZSBmb3JtYXRzIHN0b2NrIHByaWNlcyBpbiB0aGlzIHdheSBpZiBwb3NzaWJsZSwgIgorICAgICAgICAgICAgKyAiYW5kIGluIGRvbGxhcnMgYW5kIGNlbnRzIGlmIG5vdC4iLAorCisgICAgICAgICAgICAiVGhlIG5leHQgZmV3IGV4YW1wbGVzIGRlbW9uc3RyYXRlIHVzaW5nIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRvICIKKyAgICAgICAgICAgICsgImNoYW5nZSB0aGUgdW5pdHMgYSB2YWx1ZSBpcyBkZW5vbWluYXRlZCBpbiBkZXBlbmRpbmcgb24gaXRzIG1hZ25pdHVkZS4gICIKKyAgICAgICAgICAgICsgIlRoZSBleGFtcGxlIHNob3dzIGxhcmdlIG51bWJlcnMgdGhlIHdheSB0aGV5IG9mdGVuIGFwcGVhciBpcyBud2VzcGFwZXJzOiAiCisgICAgICAgICAgICArICIxLDIwMCwwMDAgaXMgZm9ybWF0dGVkIGFzIFwiMS4yIG1pbGxpb25cIi4iLAorCisgICAgICAgICAgICAiVGhpcyBleGFtcGxlIHRha2VzIGEgbnVtYmVyIG9mIG1ldGVycyBhbmQgZm9ybWF0cyBpdCBpbiB3aGF0ZXZlciB1bml0ICIKKyAgICAgICAgICAgICsgIndpbGwgcHJvZHVjZSBhIG51bWJlciB3aXRoIGZyb20gb25lIHRvIHRocmVlIGRpZ2l0cyBiZWZvcmUgdGhlIGRlY2ltYWwgIgorICAgICAgICAgICAgKyAicG9pbnQuICBGb3IgZXhhbXBsZSwgMjMwLDAwMCBpcyBmb3JtYXR0ZWQgYXMgXCIyMzAga21cIi4iLAorCisgICAgICAgICAgICAiQSBtb3JlIGNvbXBsaWNhdGVkIG1lc3NhZ2UtZm9ybWF0dGluZyBleGFtcGxlLiAgSGVyZSwgaW4gYWRkaXRpb24gdG8gIgorICAgICAgICAgICAgKyAiaGFuZGxpbmcgdGhlIHNpbmd1bGFyIGFuZCBwbHVyYWwgdmVyc2lvbnMgb2YgdGhlIHdvcmQsIHRoZSB2YWx1ZSBpcyAiCisgICAgICAgICAgICArICJkZW5vbWluYXRlZCBpbiBieXRlcywga2lsb2J5dGVzLCBvciBtZWdhYnl0ZXMgZGVwZW5kaW5nIG9uIGl0cyBtYWduaXR1ZGUuICAiCisgICAgICAgICAgICArICJBbHNvIG5vdGljZSB0aGF0IGl0IGNvcnJlY3RseSB0cmVhdHMgYSBraWxvYnl0ZSBhcyAxLDAyNCBieXRlcyAobm90IDEsMDAwKSwgIgorICAgICAgICAgICAgKyAiYW5kIGEgbWVnYWJ5dGUgYXMgMSwwMjQga2lsb2J5dGVzIChub3QgMSwwMDApLiIsCisKKyAgICAgICAgICAgICJUaGlzIGV4YW1wbGUgZm9ybWF0cyBhIG51bWJlciBpbiBkb3plbnMgYW5kIGdyb3NzLiAgVGhpcyBpcyBpbnRlbmRlZCB0byAiCisgICAgICAgICAgICArICJkZW1vbnN0cmF0ZSBob3cgdGhpcyBydWxlIHNldCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgbnVtYmVycyBpbiBzeXN0ZW1zICIKKyAgICAgICAgICAgICsgIm90aGVyIHRoYW4gYmFzZSAxMC4gIFRoZSBcIi8xMlwiIGFmdGVyIHRoZSBydWxlcycgYmFzZSB2YWx1ZXMgY29udHJvbHMgdGhpcy4gICIKKyAgICAgICAgICAgICsgIkFsc28gbm90aWNlIHRoYXQgdGhlIGJhc2UgZG9lc24ndCBoYXZlIHRvIGJlIGNvbnNpc3RlbnQgdGhyb3VnaG91dCB0aGUgIgorICAgICAgICAgICAgKyAid2hvbGUgcnVsZSBzZXQ6IHdlIGdvIGJhY2sgdG8gYmFzZSAxMCBmb3IgdmFsdWVzIG92ZXIgMSwwMDAuIiwKKworICAgICAgICAgICAgIlRoZSBuZXh0IGZldyBleGFtcGxlcyBzaG93IGhvdyBhIHNpbmdsZSB2YWx1ZSBjYW4gYmUgZGl2aWRlZCB1cCBpbnRvIG1ham9yICIKKyAgICAgICAgICAgICsgImFuZCBtaW5vciB1bml0cyB0aGF0IGRvbid0IHJlbGF0ZSB0byBlYWNoIG90aGVyIGJ5IGEgZmFjdG9yIG9mIDEwLiAgIgorICAgICAgICAgICAgKyAiVGhpcyBleGFtcGxlIGZvcm1hdHMgYSBudW1iZXIgb2Ygc2Vjb25kcyBpbiBzZXhhZ2VzaW1hbCBub3RhdGlvbiAiCisgICAgICAgICAgICArICIoaS5lLiwgaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzKS4gICV3aXRoLXdvcmRzIGZvcm1hdHMgaXQgd2l0aCAiCisgICAgICAgICAgICArICJ3b3JkcyAoMzc0MCBpcyBcIjEgaG91ciwgMiBtaW51dGVzLCAyMCBzZWNvbmRzXCIpIGFuZCAlaW4tbnVtZXJhbHMgIgorICAgICAgICAgICAgKyAiZm9ybWF0cyBpdCBlbnRpcmVseSBpbiBudW1lcmFscyAoMzc0MCBpcyBcIjE6MDI6MjBcIikuIiwKKworICAgICAgICAgICAgIlRoaXMgZXhhbXBsZSBmb3JtYXRzIGEgbnVtYmVyIG9mIGhvdXJzIGluIHNleGFnZXNpbWFsIG5vdGF0aW9uIChpLmUuLCAiCisgICAgICAgICAgICArICJob3VycywgbWludXRlcywgYW5kIHNlY29uZHMpLiAgJXdpdGgtd29yZHMgZm9ybWF0cyB0aGUgdmFsdWUgdXNpbmcgIgorICAgICAgICAgICAgKyAid29yZHMgZm9yIHRoZSB1bml0cywgYW5kICVpbi1udW1lcmFscyBmb3JtYXRzIHRoZSB2YWx1ZSB1c2luZyBvbmx5ICIKKyAgICAgICAgICAgICsgIm51bWVyYWxzLiIsCisKKyAgICAgICAgICAgICJUaGlzIHJ1bGUgc2V0IGZvcm1hdHMgYSBudW1iZXIgb2YgcG91bmRzIGFzIHBvdW5kcywgc2hpbGxpbmdzLCBhbmQgIgorICAgICAgICAgICAgKyAicGVuY2UgaW4gdGhlIG9sZCBFbmdsaXNoIHN5c3RlbSBvZiBjdXJyZW5jeS4iLAorCisgICAgICAgICAgICAiVGhlc2UgZXhhbXBsZXMgc2hvdyBob3cgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCAiCisgICAgICAgICAgICArICJudW1iZXJzIHVzaW5nIG5vbi1wb3NpdGlvbmFsIG51bWVyYXRpb24gc3lzdGVtcy4gICIKKyAgICAgICAgICAgICsgIlRoaXMgZXhhbXBsZSBmb3JtYXRzIG51bWJlcnMgaW4gQXJhYmljIG51bWVyYWxzLiAgIgorICAgICAgICAgICAgKyAiTm9ybWFsbHksIHlvdSdkIGRvIHRoaXMgd2l0aCBEZWNpbWFsRm9ybWF0LCBidXQgdGhpcyBzaG93cyB0aGF0ICIKKyAgICAgICAgICAgICsgIlJ1bGVCYXNlZE51bWJlckZvcm1hdCBjYW4gaGFuZGxlIGl0IHRvby4iLAorCisgICAgICAgICAgICAiVGhpcyBleGFtcGxlIGZvbGxvd3MgdGhlIHNhbWUgcGF0dGVybiBhcyB0aGUgQXJhYmljLW51bWVyYWxzICIKKyAgICAgICAgICAgICsgImV4YW1wbGUsIGJ1dCB1c2VzIHdvcmRzIGZvciB0aGUgdmFyaW91cyBkaWdpdHMgKGUuZy4sIDEyMyBjb21lcyAiCisgICAgICAgICAgICArICJvdXQgYXMgXCJvbmUgdHdvIHRocmVlXCIpLiIsCisKKyAgICAgICAgICAgICJUaGlzIGV4YW1wbGUgZm9ybWF0cyBudW1iZXJzIHVzaW5nIENoaW5lc2UgY2hhcmFjdGVycyBpbiB0aGUgQXJhYmljICIKKyAgICAgICAgICAgICsgInBsYWNlLXZhbHVlIG1ldGhvZC4gIFRoaXMgd2FzIHVzZWQgaGlzdG9yaWNhbGx5IGluIENoaW5hIGZvciBhIHdoaWxlLiIsCisKKyAgICAgICAgICAgICJSb21hbiBudW1lcmFscy4gIFRoaXMgZXhhbXBsZSBoYXMgdHdvIHZhcmlhbnRzOiAlbW9kZXJuIHNob3dzIGhvdyBsYXJnZSAiCisgICAgICAgICAgICArICJudW1iZXJzIGFyZSB1c3VhbGx5IGhhbmRsZWQgdG9kYXk7ICVoaXN0b3JpY2FsIHNlcyB0aGUgb2xkZXIgc3ltYm9scyBmb3IgIgorICAgICAgICAgICAgKyAidGhvdXNhbmRzLiAgTm90IGFsbCBvZiB0aGUgY2hhcmFjdGVycyBhcmUgZGlzcGxheWFibGUgd2l0aCBtb3N0IGZvbnRzLiIsCisKKyAgICAgICAgICAgICJIZWJyZXcgYWxwaGFiZXRpYyBudW1lcmFscy4gIEJlZm9yZSBhZG9wdGlvbiBvZiBBcmFiaWMgbnVtZXJhbHMsIEhlYnJldyBzcGVha2VycyAiCisgICAgICAgICAgICArICJ1c2VkIHRoZSBsZXR0ZXIgb2YgdGhlaXIgYWxwaGFiZXQgYXMgbnVtZXJhbHMuICBUaGUgZmlyc3QgbmluZSBsZXR0ZXJzIG9mICIKKyAgICAgICAgICAgICsgInRoZSBhbHBoYWJldCByZXBlc2VudGVkIHRoZSB2YWx1ZXMgZnJvbSAxIHRvIDksIHRoZSBzZWNvbmQgbmluZSBsZXR0ZXJzIHRoZSAiCisgICAgICAgICAgICArICJtdWx0aXBsZXMgb2YgMTAsIGFuZCB0aGUgcmVtYWluaW5nIGxldHRlcnMgdGhlIG11bHRpcGxlcyBvZiAxMDAuICBTaW5jZSB0aGV5ICIKKyAgICAgICAgICAgICsgInJhbiBvdXQgb2YgbGV0dGVycyBhdCA0MDAsIHRoZSByZW1haW5pbmcgbXVsdGlwbGVzIG9mIDEwMCB3ZXJlIHJlcHJlc2VudGVkICIKKyAgICAgICAgICAgICsgInVzaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgZXhpc3RpbmcgbGV0dGVycyBmb3IgdGhlIGh1bmRyZWRzLiAgTnVtYmVycyB3ZXJlICIKKyAgICAgICAgICAgICsgImRpc3Rpbmd1aXNoZWQgZnJvbSB3b3JkcyBpbiBhIG51bWJlciBvZiBkaWZmZXJlbnQgd2F5czogdGhlIHdheSBzaG93biBoZXJlICIKKyAgICAgICAgICAgICsgInVzZXMgYSBzaW5nbGUgbWFyayBhZnRlciBhIG51bWJlciBjb25zaXN0aW5nIG9mIG9uZSBsZXR0ZXIsIGFuZCBhIGRvdWJsZSAiCisgICAgICAgICAgICArICJtYXJrIGJldHdlZW4gdGhlIGxhc3QgdHdvIGxldHRlcnMgb2YgYSBudW1iZXIgY29uc2lzdGluZyBvZiB0d28gb3IgbW9yZSAiCisgICAgICAgICAgICArICJsZXR0ZXJzLiAgVHdvIGRvdHMgb3ZlciBhIGxldHRlciBtdWx0aXBsaWVkIGl0cyB2YWx1ZSBieSAxLDAwMC4gIEFsc28sIHNpbmNlICIKKyAgICAgICAgICAgICsgInRoZSBsZXR0ZXIgZm9yIDEwIGlzIHRoZSBmaXJzdCBsZXR0ZXIgb2YgR29kJ3MgbmFtZSBhbmQgdGhlIGxldHRlcnMgZm9yIDUgYW5kIDYgIgorICAgICAgICAgICAgKyAiYXJlIGxldHRlcnMgaW4gR29kJ3MgbmFtZSwgd2hpY2ggd2Fzbid0IHN1cHBvc2VkIHRvIGJlIHdyaXR0ZW4gb3Igc3Bva2VuLCAxNSBhbmQgIgorICAgICAgICAgICAgKyAiMTYgd2VyZSB1c3VhbGx5IHdyaXR0ZW4gYXMgOSArIDYgYW5kIDkgKyA3IGluc3RlYWQgb2YgMTAgKyA1IGFuZCAxMCArIDYuIiwKKworICAgICAgICAgICAgIkdyZWVrIGFscGhhYmV0aWMgbnVtZXJhbHMuICBUaGUgR3JlZWtzLCBiZWZvcmUgYWRvcHRpbmcgdGhlIEFyYWJpYyBudW1lcmFscywgIgorICAgICAgICAgICAgKyAiYWxzbyB1c2VkIHRoZSBsZXR0ZXJzIG9mIHRoZWlyIGFscGhhYmV0IGFzIG51bWVyYWxzLiAgVGhlcmUgYXJlIHRocmVlIG5vdy0iCisgICAgICAgICAgICArICJvYnNvbGV0ZSBHcmVlayBsZXR0ZXJzIHRoYXQgYXJlIHVzZWQgYXMgbnVtZXJhbHM7IG1hbnkgZm9udHMgZG9uJ3QgaGF2ZSB0aGVtLiAgIgorICAgICAgICAgICAgKyAiTGFyZ2UgbnVtYmVycyB3ZXJlIGhhbmRsZWQgbWFueSBkaWZmZXJlbnQgd2F5czsgdGhlIHdheSBzaG93biBoZXJlIGRpdmlkZXMgIgorICAgICAgICAgICAgKyAibGFyZ2UgbnVtYmVycyBpbnRvIGdyb3VwcyBvZiBmb3VyIGxldHRlcnMgKGZhY3RvcnMgb2YgMTAsMDAwKSwgYW5kIHNlcGFyYXRlcyAiCisgICAgICAgICAgICArICJ0aGUgZ3JvdXBzIHdpdGggdGhlIGNhcGl0YWwgbGV0dGVyIG11IChmb3IgbXlyaWFkKS4gIENhcGl0YWwgbGV0dGVycyBhcmUgdXNlZCAiCisgICAgICAgICAgICArICJmb3IgdmFsdWVzIGJlbG93IDEwLDAwMDsgc21hbGwgbGV0dGVycyBmb3IgaGlnaGVyIG51bWJlcnMgKHRvIG1ha2UgdGhlIGNhcGl0YWwgIgorICAgICAgICAgICAgKyAibXUgc3RhbmQgb3V0KS4iLAorCisgICAgICAgICAgICAiVGhpcyBpcyBhIGN1c3RvbSAodXNlci1kZWZpbmVkKSBydWxlIHNldC4iCisgICAgICAgIH07Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vcmJuZi9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGEwNTA3ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby9yYm5mL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitSdWxlQmFzZWROdW1iZXJGb3JtYXQgZGVtbyBhcHBsaWF0aW9uLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90aW1lc2NhbGUvUGl2b3REZW1vLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdGltZXNjYWxlL1Bpdm90RGVtby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmNzFjMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdGltZXNjYWxlL1Bpdm90RGVtby5qYXZhCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnRpbWVzY2FsZTsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Vbml2ZXJzYWxUaW1lU2NhbGU7CisKKy8qKgorICogVGhpcyBjbGFzcyBkZW1vbnN0cmF0ZXMgaG93IHRvIHVzZSA8Y29kZT5Vbml2ZXJzYWxUaW1lU2NhbGU8L2NvZGU+IHRvCisgKiBjb252ZXJ0IGZyb20gb25lIGxvY2FsIHRpbWUgc2NhbGUgdG8gYW5vdGhlci4KKyAqIAorICogQHNlZSBVbml2ZXJzYWxUaW1lU2NhbGUKKyAqIAorICogQGRyYWZ0IElDVSAzLjIKKyAqLworcHVibGljIGNsYXNzIFBpdm90RGVtbyB7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBQaXZvdERlbW8oKQorICAgIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgPGNvZGU+bWFpbigpPC9jb2RlPiBtZXRob2QgdXNlcyA8Y29kZT5Vbml2ZXJzYWxUaW1lU2NhbGU8L2NvZGU+IHRvCisgICAgICogY29udmVydCBmcm9tIHRoZSBKYXZhIGFuZCBVbml4IHRpbWUgc2NhbGVzIHRvIHRoZSBJQ1UgdGltZSBzY2FsZS4gSXQgdXNlcworICAgICAqIGEgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IG9iamVjdCB0byBkaXNwbGF5IHRoZSBJQ1UgdGltZSB2YWx1ZXMuCisgICAgICogCisgICAgICogQHBhcmFtIGFyZ3MgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgVGltZVpvbmUgdXRjID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UodXRjLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm10ID0gbmV3IE1lc3NhZ2VGb3JtYXQoInsxfSA9IHswLCBkYXRlLCBmdWxsfSB7MCwgdGltZSwgZnVsbH0iKTsKKyAgICAgICAgT2JqZWN0IGFyZ3VtZW50c1tdID0ge2NhbCwgbnVsbH07CisgICAgICAgIAorICAgICAgICBhcmd1bWVudHNbMF0gPSBjYWw7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuSmF2YSB0ZXN0OiIpOworICAgICAgICBjYWwuc2V0VGltZUluTWlsbGlzKFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcoVW5pdmVyc2FsVGltZVNjYWxlLmZyb20oMCwgVW5pdmVyc2FsVGltZVNjYWxlLkpBVkFfVElNRSksIFVuaXZlcnNhbFRpbWVTY2FsZS5JQ1U0Q19USU1FKSk7CisgICAgICAgIGFyZ3VtZW50c1sxXSA9ICIgMDAwMDAwMDAwMDAwMDAwIjsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGZtdC5mb3JtYXQoYXJndW1lbnRzKSk7CisgICAgICAgIAorICAgICAgICBjYWwuc2V0VGltZUluTWlsbGlzKFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcoVW5pdmVyc2FsVGltZVNjYWxlLmZyb20oLTYyMTY0Njg0ODAwMDAwTCwgVW5pdmVyc2FsVGltZVNjYWxlLkpBVkFfVElNRSksIFVuaXZlcnNhbFRpbWVTY2FsZS5JQ1U0Q19USU1FKSk7CisgICAgICAgIGFyZ3VtZW50c1sxXSA9ICItNjIxNjQ2ODQ4MDAwMDBMIjsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGZtdC5mb3JtYXQoYXJndW1lbnRzKSk7CisgICAgICAgIAorICAgICAgICBjYWwuc2V0VGltZUluTWlsbGlzKFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcoVW5pdmVyc2FsVGltZVNjYWxlLmZyb20oLTYyMTM1NzY5NjAwMDAwTCwgVW5pdmVyc2FsVGltZVNjYWxlLkpBVkFfVElNRSksIFVuaXZlcnNhbFRpbWVTY2FsZS5JQ1U0Q19USU1FKSk7CisgICAgICAgIGFyZ3VtZW50c1sxXSA9ICItNjIxMzU3Njk2MDAwMDBMIjsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGZtdC5mb3JtYXQoYXJndW1lbnRzKSk7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuVW5peCB0ZXN0OiIpOworICAgICAgICAKKyAgICAgICAgY2FsLnNldFRpbWVJbk1pbGxpcyhVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKDB4ODAwMDAwMDAsIFVuaXZlcnNhbFRpbWVTY2FsZS5VTklYX1RJTUUpLCBVbml2ZXJzYWxUaW1lU2NhbGUuSUNVNENfVElNRSkpOworICAgICAgICBhcmd1bWVudHNbMV0gPSAiMHg4MDAwMDAwMCI7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmbXQuZm9ybWF0KGFyZ3VtZW50cykpOworICAgICAgICAKKyAgICAgICAgY2FsLnNldFRpbWVJbk1pbGxpcyhVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKDAsIFVuaXZlcnNhbFRpbWVTY2FsZS5VTklYX1RJTUUpLCBVbml2ZXJzYWxUaW1lU2NhbGUuSUNVNENfVElNRSkpOworICAgICAgICBhcmd1bWVudHNbMV0gPSAiMHgwMDAwMDAwMCI7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmbXQuZm9ybWF0KGFyZ3VtZW50cykpOworICAgICAgICAKKyAgICAgICAgY2FsLnNldFRpbWVJbk1pbGxpcyhVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKDB4N0ZGRkZGRkYsIFVuaXZlcnNhbFRpbWVTY2FsZS5VTklYX1RJTUUpLCBVbml2ZXJzYWxUaW1lU2NhbGUuSUNVNENfVElNRSkpOworICAgICAgICBhcmd1bWVudHNbMV0gPSAiMHg3RkZGRkZGRiI7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmbXQuZm9ybWF0KGFyZ3VtZW50cykpOworICAgICAgICAKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvQW55VHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9BbnlUcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjZjFhZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvQW55VHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDI5OSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBBbnlUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIHByaXZhdGUgU3RyaW5nIHRhcmdldE5hbWU7CisgICAgcHJpdmF0ZSBSdW5JdGVyYXRvciBpdDsKKyAgICBwcml2YXRlIFBvc2l0aW9uIHJ1bjsKKyAgICAKKyAgICAKKyAgICBwdWJsaWMgQW55VHJhbnNsaXRlcmF0b3IoU3RyaW5nIHRhcmdldE5hbWUsIFVuaWNvZGVGaWx0ZXIgZmlsdGVyLCBSdW5JdGVyYXRvciBpdCl7CisgICAgICAgIHN1cGVyKCJBbnktIiArIHRhcmdldE5hbWUsIGZpbHRlcik7CisgICAgICAgIHRoaXMudGFyZ2V0TmFtZSA9IHRhcmdldE5hbWU7CisgICAgICAgIHRoaXMuaXQgPSBpdDsKKyAgICAgICAgcnVuID0gbmV3IFBvc2l0aW9uKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBBbnlUcmFuc2xpdGVyYXRvcihTdHJpbmcgdGFyZ2V0TmFtZSwgVW5pY29kZUZpbHRlciBmaWx0ZXIpeworICAgICAgICB0aGlzKHRhcmdldE5hbWUsIGZpbHRlciwgbmV3IFNjcmlwdFJ1bkl0ZXJhdG9yKCkpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvciBoZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiW15cXHUwMDIwLVxcdTAwN0VdIGhleCIpOworICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIG9mZnNldHMsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiLSBoYW5kbGVUcmFuc2xpdGVyYXRlICIgKyBoZXgudHJhbnNsaXRlcmF0ZSh0ZXh0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgKyAiLCAiICsgdG9TdHJpbmcob2Zmc2V0cykpOworICAgICAgICB9CisgICAgICAgIGl0LnJlc2V0KHRleHQsIG9mZnNldHMpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGl0Lm5leHQocnVuKSkgeworICAgICAgICAgICAgaWYgKHRhcmdldE5hbWUuZXF1YWxzSWdub3JlQ2FzZShpdC5nZXROYW1lKCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlNraXBwaW5nIGlkZW50aWNhbDogIiArIHRhcmdldE5hbWUpOworICAgICAgICAgICAgICAgIHJ1bi5zdGFydCA9IHJ1bi5saW1pdDsgLy8gc2hvdyB3ZSBwcm9jZXNzZWQKKyAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gc2tpcCBpZiBzYW1lCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSBpdC5nZXROYW1lKCkgKyAnLScgKyB0YXJnZXROYW1lOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWQpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIkNvdWxkbid0IGZpbmQ6ICIgKyBpZCArICIsIFRyeWluZyBMYXRpbiBhcyBQaXZvdCIpOworICAgICAgICAgICAgICAgIGlkID0gaXQuZ2V0TmFtZSgpICsgIi1MYXRpbjsgTGF0aW4tIiArIHRhcmdldE5hbWU7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGlkKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJDb3VsZG4ndCBmaW5kOiAiICsgaWQpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBUT0RPIGNhdGNoIGVycm9yIGxhdGVyISEKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0LmdldElEKCkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5wdXQ6ICIgKyBoZXgudHJhbnNsaXRlcmF0ZSh0ZXh0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICsgIiwgIiArIHRvU3RyaW5nKHJ1bikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaXNJbmNyZW1lbnRhbCAmJiBpdC5hdEVuZCgpKSB7CisgICAgICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHRleHQsIHJ1bik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHQuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHRleHQsIHJ1bik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBhZGp1c3QgdGhlIG9mZnNldHMgaW4gbGluZSB3aXRoIHRoZSBjaGFuZ2VzCisgICAgICAgICAgICBpdC5hZGp1c3QocnVuLmxpbWl0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJvdXRwdXQ6ICIgKyBoZXgudHJhbnNsaXRlcmF0ZSh0ZXh0LnRvU3RyaW5nKCkpCisgICAgICAgICAgICAgICAgICsgIiwgIiArIHRvU3RyaW5nKHJ1bikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gc2hvdyBob3cgZmFyIHdlIGdvdCEKKyAgICAgICAgaXQuZ2V0RXhwYW5zZShvZmZzZXRzKTsKKyAgICAgICAgaWYgKHJ1bi5zdGFydCA9PSBydW4ubGltaXQpIG9mZnNldHMuc3RhcnQgPSBvZmZzZXRzLmxpbWl0OworICAgICAgICBlbHNlIG9mZnNldHMuc3RhcnQgPSBydW4uc3RhcnQ7CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIrIGhhbmRsZVRyYW5zbGl0ZXJhdGU6ICIgKyAiLCAiICsgdG9TdHJpbmcob2Zmc2V0cykpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gc2hvdWxkIGJlIG1ldGhvZCBvbiBQb3NpdGlvbgorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFBvc2l0aW9uIG9mZnNldHMpIHsKKyAgICAgICAgcmV0dXJuICJbY3M6ICIgKyBvZmZzZXRzLmNvbnRleHRTdGFydAorICAgICAgICAgICAgICAgICsgIiwgczogIiArIG9mZnNldHMuc3RhcnQKKyAgICAgICAgICAgICAgICArICIsIGw6ICIgKyBvZmZzZXRzLmxpbWl0CisgICAgICAgICAgICAgICAgKyAiLCBjbDogIiArIG9mZnNldHMuY29udGV4dExpbWl0CisgICAgICAgICAgICAgICAgKyAiXSI7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnRlcmZhY2UgUnVuSXRlcmF0b3IgeworICAgICAgICBwdWJsaWMgdm9pZCByZXNldChSZXBsYWNlYWJsZSB0ZXh0LCBQb3NpdGlvbiBleHBhbnNlKTsKKyAgICAgICAgcHVibGljIHZvaWQgZ2V0RXhwYW5zZShQb3NpdGlvbiBydW4pOworICAgICAgICBwdWJsaWMgdm9pZCByZXNldCgpOworICAgICAgICBwdWJsaWMgYm9vbGVhbiBuZXh0KFBvc2l0aW9uIHJ1bik7CisgICAgICAgIHB1YmxpYyB2b2lkIGdldEN1cnJlbnQoUG9zaXRpb24gcnVuKTsKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCk7CisgICAgICAgIHB1YmxpYyB2b2lkIGFkanVzdChpbnQgbmV3Q3VycmVudExpbWl0KTsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gYXRFbmQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHNlcmllcyBvZiByYW5nZXMgY29ycmVzcG9uZGluZyB0byBzY3JpcHRzLiBUaGV5IHdpbGwgYmUgb2YgdGhlIGZvcm06CisgICAgICogY2NjY1NTY1NTY2NjY1RUY1RjY2NjICAgIC0gd2hlcmUgYyBpcyBjb21tb24sIFMgaXMgdGhlIGZpcnN0IHNjcmlwdCBhbmQgVCBpcyB0aGUgc2Vjb25kCisgICAgICp8ICAgICAgICAgICAgfCAgICAgICAgICAgIC0gZmlyc3QgcnVuCisgICAgICogICAgICAgICB8ICAgICAgICAgICAgfCAgICAtIHNlY29uZCBydW4KKyAgICAgKiBUaGF0IGlzLCB0aGUgcnVucyB3aWxsIG92ZXJsYXAuIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgc28gdGhhdCBhIHRyYW5zbGl0ZXJhdG9yIGNhbgorICAgICAqIGNvbnNpZGVyIGNvbW1vbiBjaGFyYWN0ZXJzIGJvdGggYmVmb3JlIGFuZCBhZnRlciB0aGUgc2NyaXB0cy4KKyAgICAgKiBUaGUgb25seSB0aW1lIHRoYXQgY29udGV4dFN0YXJ0ICE9IHN0YXJ0IGlzIGZvciB0aGUgZmlyc3QgcnVuIAorICAgICAqICAgICh0aGUgY29udGV4dCBpcyB0aGUgc3RhcnQgY29udGV4dCBvZiB0aGUgZW50aXJlIGV4cGFuc2UpCisgICAgICogVGhlIG9ubHkgdGltZSB0aGF0IGNvbnRleHRMaW1pdCAhPSBsaW1pdCBpcyBmb3IgdGhlIGxhc3QgcnVuIAorICAgICAqICAgICh0aGUgY29udGV4dCBpcyB0aGUgZW5kIGNvbnRleHQgb2YgdGhlIGVudGlyZSBleHBhbnNlKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgU2NyaXB0UnVuSXRlcmF0b3IgaW1wbGVtZW50cyBSdW5JdGVyYXRvciB7CisgICAgICAgIHByaXZhdGUgUmVwbGFjZWFibGUgdGV4dDsKKyAgICAgICAgcHJpdmF0ZSBQb3NpdGlvbiBleHBhbnNlID0gbmV3IFBvc2l0aW9uKCk7CisgICAgICAgIHByaXZhdGUgUG9zaXRpb24gY3VycmVudCA9IG5ldyBQb3NpdGlvbigpOworICAgICAgICBwcml2YXRlIGludCBzY3JpcHQ7CisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBkb25lID0gdHJ1ZTsKKyAgICAgICAgCisKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoUmVwbGFjZWFibGUgdGV4dCwgUG9zaXRpb24gZXhwYW5zZSkgeworICAgICAgICAgICAgc2V0KHRoaXMuZXhwYW5zZSwgZXhwYW5zZSk7CisgICAgICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkgeworICAgICAgICAgICAgZG9uZSA9IGZhbHNlOworICAgICAgICAgICAgLy90aGlzLmV4cGFuc2UgPSBleHBhbnNlOworICAgICAgICAgICAgc2NyaXB0ID0gVVNjcmlwdC5JTlZBTElEX0NPREU7CisgICAgICAgICAgICAvLyBzZXQgdXAgZmlyc3QgcmFuZ2UgdG8gYmUgZW1wdHksIGF0IGJlZ2lubmluZworICAgICAgICAgICAgY3VycmVudC5jb250ZXh0U3RhcnQgPSBleHBhbnNlLmNvbnRleHRTdGFydDsKKyAgICAgICAgICAgIGN1cnJlbnQuc3RhcnQgPSBjdXJyZW50LmxpbWl0ID0gY3VycmVudC5jb250ZXh0TGltaXQgPSBleHBhbnNlLnN0YXJ0OyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gbmV4dChQb3NpdGlvbiBydW4pIHsKKyAgICAgICAgICAgIGlmIChkb25lKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIitjczogIiArIGN1cnJlbnQuY29udGV4dFN0YXJ0CisgICAgICAgICAgICAgICAgICAgICsgIiwgczogIiArIGN1cnJlbnQuc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgKyAiLCBsOiAiICsgY3VycmVudC5saW1pdAorICAgICAgICAgICAgICAgICAgICArICIsIGNsOiAiICsgY3VycmVudC5jb250ZXh0TGltaXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gcmVzZXQgc3RhcnQgY29udGV4dCBydW4gdG8gdGhlIGxhc3QgZW5kCisgICAgICAgICAgICBjdXJyZW50LnN0YXJ0ID0gY3VycmVudC5saW1pdDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gUGhhc2UgMS4gQmFja3VwIHRoZSBTVEFSVCB2YWx1ZSB0aHJvdWdoIENPTU1PTiB1bnRpbCB3ZSBnZXQgdG8gZXhwYW5zZS5zdGFydCBvciBhIHJlYWwgc2NyaXB0LgorICAgICAgICAgICAgaW50IGksIGNwOworICAgICAgICAgICAgaW50IGxpbWl0ID0gZXhwYW5zZS5zdGFydDsKKyAgICAgICAgICAgIGZvciAoaSA9IGN1cnJlbnQuc3RhcnQ7IGkgPiBsaW1pdDsgaSAtPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICAgICAgY3AgPSB0ZXh0LmNoYXIzMkF0KGkpOworICAgICAgICAgICAgICAgIGludCBzY3JpcHQgPSBVU2NyaXB0LmdldFNjcmlwdChjcCk7CisgICAgICAgICAgICAgICAgaWYgKHNjcmlwdCAhPSBVU2NyaXB0LkNPTU1PTiAmJiBzY3JpcHQgIT0gVVNjcmlwdC5JTkhFUklURUQpIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudC5zdGFydCA9IGk7CisgICAgICAgICAgICBjdXJyZW50LmNvbnRleHRTdGFydCA9IChpID09IGxpbWl0KSA/IGV4cGFuc2UuY29udGV4dFN0YXJ0IDogaTsgLy8gZXh0ZW5kIGF0IHN0YXJ0CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFBIQVNFIDIuIE1vdmUgdXAgdGhlIExJTUlUIHZhbHVlIHRocm91Z2ggQ09NTU9OIG9yIHNpbmdsZSBzY3JpcHQgdW50aWwgd2UgZ2V0IHRvIGV4cGFuc2UubGltaXQKKyAgICAgICAgICAgIGludCBsYXN0U2NyaXB0ID0gVVNjcmlwdC5DT01NT047CisgICAgICAgICAgICAvL2ludCB2ZXJ5TGFzdFNjcmlwdCA9IFVTY3JpcHQuQ09NTU9OOworICAgICAgICAgICAgbGltaXQgPSBleHBhbnNlLmxpbWl0OyAKKyAgICAgICAgICAgIGZvciAoaSA9IGN1cnJlbnQubGltaXQ7IGkgPCBsaW1pdDsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICAgICAgY3AgPSB0ZXh0LmNoYXIzMkF0KGkpOworICAgICAgICAgICAgICAgIGludCBzY3JpcHQgPSBVU2NyaXB0LmdldFNjcmlwdChjcCk7CisgICAgICAgICAgICAgICAgaWYgKHNjcmlwdCA9PSBVU2NyaXB0LklOSEVSSVRFRCkgc2NyaXB0ID0gVVNjcmlwdC5DT01NT047CisgICAgICAgICAgICAgICAgaWYgKHNjcmlwdCAhPSBVU2NyaXB0LkNPTU1PTikgeworICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBmaW5kIGEgcmVhbCBzY3JpcHQ6CisgICAgICAgICAgICAgICAgICAgIC8vICAgaWYgd2UgYWxyZWFkeSBoYWQgYSBzY3JpcHQsIGJhaWwKKyAgICAgICAgICAgICAgICAgICAgLy8gICBvdGhlcndpc2Ugc2V0IG91ciBzY3JpcHQKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RTY3JpcHQgPT0gVVNjcmlwdC5DT01NT04pIGxhc3RTY3JpcHQgPSBzY3JpcHQ7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGxhc3RTY3JpcHQgIT0gc2NyaXB0KSBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50LmxpbWl0ID0gaTsKKyAgICAgICAgICAgIGN1cnJlbnQuY29udGV4dExpbWl0ID0gKGkgPT0gbGltaXQpID8gZXhwYW5zZS5jb250ZXh0TGltaXQgOiBpOyAvLyBleHRlbmQgYXQgZW5kCisgICAgICAgICAgICBkb25lID0gKGkgPT0gbGltaXQpOworICAgICAgICAgICAgc2NyaXB0ID0gbGFzdFNjcmlwdDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCItY3M6ICIgKyBjdXJyZW50LmNvbnRleHRTdGFydAorICAgICAgICAgICAgICAgICAgICArICIsIHM6ICIgKyBjdXJyZW50LnN0YXJ0CisgICAgICAgICAgICAgICAgICAgICsgIiwgbDogIiArIGN1cnJlbnQubGltaXQKKyAgICAgICAgICAgICAgICAgICAgKyAiLCBjbDogIiArIGN1cnJlbnQuY29udGV4dExpbWl0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2V0KHJ1biwgY3VycmVudCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gU0hPVUxEIEJFIE1FVEhPRCBPTiBQT1NJVElPTgorICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0KFBvc2l0aW9uIHJ1biwgUG9zaXRpb24gY3VycmVudCkgeworICAgICAgICAgICAgcnVuLmNvbnRleHRTdGFydCA9IGN1cnJlbnQuY29udGV4dFN0YXJ0OworICAgICAgICAgICAgcnVuLnN0YXJ0ID0gY3VycmVudC5zdGFydDsKKyAgICAgICAgICAgIHJ1bi5saW1pdCA9IGN1cnJlbnQubGltaXQ7CisgICAgICAgICAgICBydW4uY29udGV4dExpbWl0ID0gY3VycmVudC5jb250ZXh0TGltaXQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGF0RW5kKCkgeworICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQubGltaXQgPT0gZXhwYW5zZS5saW1pdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgZ2V0Q3VycmVudChQb3NpdGlvbiBydW4pIHsKKyAgICAgICAgICAgIHNldChydW4sIGN1cnJlbnQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCBnZXRFeHBhbnNlKFBvc2l0aW9uIHJ1bikgeworICAgICAgICAgICAgc2V0KHJ1biwgZXhwYW5zZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBVU2NyaXB0LmdldE5hbWUoc2NyaXB0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgYWRqdXN0KGludCBuZXdDdXJyZW50TGltaXQpIHsKKyAgICAgICAgICAgIGlmIChleHBhbnNlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJNdXN0IHJlc2V0KCkgYmVmb3JlIGNhbGxpbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBkZWx0YSA9IG5ld0N1cnJlbnRMaW1pdCAtIGN1cnJlbnQubGltaXQ7CisgICAgICAgICAgICBjdXJyZW50LmxpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgY3VycmVudC5jb250ZXh0TGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICBleHBhbnNlLmxpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgZXhwYW5zZS5jb250ZXh0TGltaXQgKz0gZGVsdGE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHJlZ2lzdGVyIEFueS1TY3JpcHQgZm9yIGV2ZXJ5IHNjcmlwdC4KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgc3RhdGljIFNldCBzY3JpcHRMaXN0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlckFueVRvU2NyaXB0KCkgeworICAgICAgICAgICAgc3luY2hyb25pemVkIChzY3JpcHRMaXN0KSB7CisgICAgICAgICAgICAgICAgRW51bWVyYXRpb24gc291cmNlcyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVNvdXJjZXMoKTsKKyAgICAgICAgICAgICAgICB3aGlsZShzb3VyY2VzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSAoU3RyaW5nKSBzb3VyY2VzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuZXF1YWxzKCJBbnkiKSkgY29udGludWU7IC8vIHRvIGtlZXAgZnJvbSBsb29waW5nCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBFbnVtZXJhdGlvbiB0YXJnZXRzID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlVGFyZ2V0cyhzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSh0YXJnZXRzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gKFN0cmluZykgdGFyZ2V0cy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVTY3JpcHQuZ2V0Q29kZSh0YXJnZXQpID09IG51bGwpIGNvbnRpbnVlOyAvLyBTS0lQIHVubGVzcyB3ZSBoYXZlIGEgc2NyaXB0IChvciBsb2NhbGUpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0TGlzdC5jb250YWlucyh0YXJnZXQpKSBjb250aW51ZTsgLy8gYWxyZWFkeSBlbmNvdW50ZXJlZAorICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0TGlzdC5hZGQodGFyZ2V0KTsgLy8gb3RoZXJ3aXNlIGFkZCBmb3IgbGF0ZXIgdGVzdGluZworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBTZXQgdmFyaWFudFNldCA9IGFkZChuZXcgVHJlZVNldCgpLCBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVWYXJpYW50cyhzb3VyY2UsIHRhcmdldCkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhcmlhbnRTZXQuc2l6ZSgpIDwgMikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFueVRyYW5zbGl0ZXJhdG9yIGF0ID0gbmV3IEFueVRyYW5zbGl0ZXJhdG9yKHRhcmdldCwgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHVtbXlGYWN0b3J5LmFkZChhdC5nZXRJRCgpLCBhdCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIHZhcmlhbnRzID0gdmFyaWFudFNldC5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKHZhcmlhbnRzLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIHZhcmlhbnRzLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW55VHJhbnNsaXRlcmF0b3IgYXQgPSBuZXcgQW55VHJhbnNsaXRlcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFyaWFudC5sZW5ndGgoKSA+IDApID8gdGFyZ2V0ICsgIi8iICsgdmFyaWFudCA6IHRhcmdldCwgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIER1bW15RmFjdG9yeS5hZGQoYXQuZ2V0SUQoKSwgYXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIGNsYXNzIER1bW15RmFjdG9yeSBpbXBsZW1lbnRzIFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkgeworICAgICAgICAgICAgc3RhdGljIER1bW15RmFjdG9yeSBzaW5nbGV0b24gPSBuZXcgRHVtbXlGYWN0b3J5KCk7CisgICAgICAgICAgICBzdGF0aWMgSGFzaE1hcCBtID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICAgICAgLy8gU2luY2UgVHJhbnNsaXRlcmF0b3JzIGFyZSBpbW11dGFibGUsIHdlIGRvbid0IGhhdmUgdG8gY2xvbmUgb24gc2V0ICYgZ2V0CisgICAgICAgICAgICBzdGF0aWMgdm9pZCBhZGQoU3RyaW5nIElELCBUcmFuc2xpdGVyYXRvciB0KSB7CisgICAgICAgICAgICAgICAgbS5wdXQoSUQsIHQpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVnaXN0ZXJpbmc6ICIgKyBJRCArICIsICIgKyB0LnRvUnVsZXModHJ1ZSkpOworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShJRCwgc2luZ2xldG9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKFRyYW5zbGl0ZXJhdG9yKSBtLmdldChJRCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE5pY2UgbGl0dGxlIFV0aWxpdHkgZm9yIGNvbnZlcnRpbmcgRW51bWVyYXRpb24gdG8gY29sbGVjdGlvbgorICAgICAgICBzdGF0aWMgU2V0IGFkZChTZXQgcywgRW51bWVyYXRpb24gZW51bWVyYXRpb24pIHsKKyAgICAgICAgICAgIHdoaWxlKGVudW1lcmF0aW9uLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgcy5hZGQoZW51bWVyYXRpb24ubmV4dEVsZW1lbnQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0Nhc2VJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0Nhc2VJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMmUyMWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvQ2FzZUl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw1NTUgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdDsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworLyoqCisgKiBJbmNyZW1lbnRhbGx5IHJldHVybnMgdGhlIHNldCBvZiBhbGwgc3RyaW5ncyB0aGF0IGNhc2UtZm9sZCB0byB0aGUgc2FtZSB2YWx1ZS4KKyAqLworcHVibGljIGNsYXNzIENhc2VJdGVyYXRvciB7CisgICAgCisgICAgLy8gdGVzdGluZyBzdHVmZgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSB0cnVlOworICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciB0b05hbWUgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiWzpeYXNjaWk6XSBBbnktTmFtZSIpOworICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciB0b0hleCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJbOl5hc2NpaTpdIEFueS1IZXgiKTsKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgdG9IZXgyID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIltbXlx1MDAyMS1cdTAwN0ZdLVssXV0gQW55LUhleCIpOworICAgIAorICAgIC8vIGdsb2JhbCB0YWJsZXMgKGNvdWxkIGJlIHByZWNvbXBpbGVkKQorICAgIHByaXZhdGUgc3RhdGljIE1hcCBmcm9tQ2FzZUZvbGQgPSBuZXcgSGFzaE1hcCgpOworICAgIHByaXZhdGUgc3RhdGljIE1hcCB0b0Nhc2VGb2xkID0gbmV3IEhhc2hNYXAoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbWF4TGVuZ3RoID0gMDsKKyAgICAKKyAgICAvLyBUaGlzIGV4Y2VwdGlvbiBsaXN0IGlzIGdlbmVyYXRlZCBvbiB0aGUgY29uc29sZSBieSB0dXJuaW5nIG9uIHRoZSBHRU5FUkFURUQgZmxhZywgCisgICAgLy8gd2hpY2ggTVVTVCBiZSBmYWxzZSBmb3Igbm9ybWFsIG9wZXJhdGlvbi4KKyAgICAvLyBPbmNlIHRoZSBsaXN0IGlzIGdlbmVyYXRlZCwgaXQgaXMgcGFzdGVkIGluIGhlcmUuCisgICAgLy8gQSBiaXQgb2YgYSBjbHVkZ2UsIGJ1dCB0aGlzIGJvb3RzdHJhcHBpbmcgaXMgdGhlIGVhc2llc3Qgd2F5IAorICAgIC8vIHRvIGdldCBhcm91bmQgY2VydGFpbiBjb21wbGljYXRpb25zIGluIHRoZSBkYXRhLgorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gR0VORVJBVEUgPSBmYWxzZTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gRFVNUCA9IGZhbHNlOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdW10gZXhjZXB0aW9uTGlzdCA9IHsKKyAgICAgICAgLy8gYVxOe01PRElGSUVSIExFVFRFUiBSSUdIVCBIQUxGIFJJTkd9CisgICAgICAgIHsiYVx1MDJCRSIsIkFcdTAyQkUiLCJhXHUwMkJFIix9LAorICAgICAgICAvLyBmZgorICAgICAgICB7ImZmIiwiRkYiLCJGZiIsImZGIiwiZmYiLH0sCisgICAgICAgIC8vIGZmaQorICAgICAgICB7ImZmaSIsIkZGSSIsIkZGaSIsIkZmSSIsIkZmaSIsIkZcdUZCMDEiLCJmRkkiLCJmRmkiLCJmZkkiLCJmZmkiLCJmXHVGQjAxIiwiXHVGQjAwSSIsIlx1RkIwMGkiLH0sCisgICAgICAgIC8vIGZmbAorICAgICAgICB7ImZmbCIsIkZGTCIsIkZGbCIsIkZmTCIsIkZmbCIsIkZcdUZCMDIiLCJmRkwiLCJmRmwiLCJmZkwiLCJmZmwiLCJmXHVGQjAyIiwiXHVGQjAwTCIsIlx1RkIwMGwiLH0sCisgICAgICAgIC8vIGZpCisgICAgICAgIHsiZmkiLCJGSSIsIkZpIiwiZkkiLCJmaSIsfSwKKyAgICAgICAgLy8gZmwKKyAgICAgICAgeyJmbCIsIkZMIiwiRmwiLCJmTCIsImZsIix9LAorICAgICAgICAvLyBoXE57Q09NQklOSU5HIE1BQ1JPTiBCRUxPV30KKyAgICAgICAgeyJoXHUwMzMxIiwiSFx1MDMzMSIsImhcdTAzMzEiLH0sCisgICAgICAgIC8vIGlcTntDT01CSU5JTkcgRE9UIEFCT1ZFfQorICAgICAgICB7ImlcdTAzMDciLCJJXHUwMzA3IiwiaVx1MDMwNyIsfSwKKyAgICAgICAgLy8galxOe0NPTUJJTklORyBDQVJPTn0KKyAgICAgICAgeyJqXHUwMzBDIiwiSlx1MDMwQyIsImpcdTAzMEMiLH0sCisgICAgICAgIC8vIHNzCisgICAgICAgIHsic3MiLCJTUyIsIlNzIiwiU1x1MDE3RiIsInNTIiwic3MiLCJzXHUwMTdGIiwiXHUwMTdGUyIsIlx1MDE3RnMiLCJcdTAxN0ZcdTAxN0YiLH0sCisgICAgICAgIC8vIHN0CisgICAgICAgIHsic3QiLCJTVCIsIlN0Iiwic1QiLCJzdCIsIlx1MDE3RlQiLCJcdTAxN0Z0Iix9LAorICAgICAgICAvLyB0XE57Q09NQklOSU5HIERJQUVSRVNJU30KKyAgICAgICAgeyJ0XHUwMzA4IiwiVFx1MDMwOCIsInRcdTAzMDgiLH0sCisgICAgICAgIC8vIHdcTntDT01CSU5JTkcgUklORyBBQk9WRX0KKyAgICAgICAgeyJ3XHUwMzBBIiwiV1x1MDMwQSIsIndcdTAzMEEiLH0sCisgICAgICAgIC8vIHlcTntDT01CSU5JTkcgUklORyBBQk9WRX0KKyAgICAgICAgeyJ5XHUwMzBBIiwiWVx1MDMwQSIsInlcdTAzMEEiLH0sCisgICAgICAgIC8vIFxOe01PRElGSUVSIExFVFRFUiBBUE9TVFJPUEhFfW4KKyAgICAgICAgeyJcdTAyQkNuIiwiXHUwMkJDTiIsIlx1MDJCQ24iLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFRPTk9TfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNBQ1x1MDNCOSIsIlx1MDM4Nlx1MDM0NSIsIlx1MDM4Nlx1MDM5OSIsIlx1MDM4Nlx1MDNCOSIsIlx1MDM4Nlx1MUZCRSIsIlx1MDNBQ1x1MDM0NSIsIlx1MDNBQ1x1MDM5OSIsIlx1MDNBQ1x1MDNCOSIsIlx1MDNBQ1x1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFRPTk9TfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNBRVx1MDNCOSIsIlx1MDM4OVx1MDM0NSIsIlx1MDM4OVx1MDM5OSIsIlx1MDM4OVx1MDNCOSIsIlx1MDM4OVx1MUZCRSIsIlx1MDNBRVx1MDM0NSIsIlx1MDNBRVx1MDM5OSIsIlx1MDNBRVx1MDNCOSIsIlx1MDNBRVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX0KKyAgICAgICAgeyJcdTAzQjFcdTAzNDIiLCJcdTAzOTFcdTAzNDIiLCJcdTAzQjFcdTAzNDIiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUwM0IxXHUwMzQyXHUwM0I5IiwiXHUwMzkxXHUwMzQyXHUwMzQ1IiwiXHUwMzkxXHUwMzQyXHUwMzk5IiwiXHUwMzkxXHUwMzQyXHUwM0I5IiwiXHUwMzkxXHUwMzQyXHUxRkJFIiwKKyAgICAgICAgICAgICJcdTAzQjFcdTAzNDJcdTAzNDUiLCJcdTAzQjFcdTAzNDJcdTAzOTkiLCJcdTAzQjFcdTAzNDJcdTAzQjkiLCJcdTAzQjFcdTAzNDJcdTFGQkUiLCJcdTFGQjZcdTAzNDUiLAorICAgICAgICAgICAgIlx1MUZCNlx1MDM5OSIsIlx1MUZCNlx1MDNCOSIsIlx1MUZCNlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNCMVx1MDNCOSIsIlx1MDM5MVx1MDM0NSIsIlx1MDM5MVx1MDM5OSIsIlx1MDM5MVx1MDNCOSIsIlx1MDM5MVx1MUZCRSIsIlx1MDNCMVx1MDM0NSIsIlx1MDNCMVx1MDM5OSIsIlx1MDNCMVx1MDNCOSIsIlx1MDNCMVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0I3XHUwMzQyIiwiXHUwMzk3XHUwMzQyIiwiXHUwM0I3XHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQjdcdTAzNDJcdTAzQjkiLCJcdTAzOTdcdTAzNDJcdTAzNDUiLCJcdTAzOTdcdTAzNDJcdTAzOTkiLCJcdTAzOTdcdTAzNDJcdTAzQjkiLCJcdTAzOTdcdTAzNDJcdTFGQkUiLAorICAgICAgICAgICAgIlx1MDNCN1x1MDM0Mlx1MDM0NSIsIlx1MDNCN1x1MDM0Mlx1MDM5OSIsIlx1MDNCN1x1MDM0Mlx1MDNCOSIsIlx1MDNCN1x1MDM0Mlx1MUZCRSIsIlx1MUZDNlx1MDM0NSIsIlx1MUZDNlx1MDM5OSIsCisgICAgICAgICAgICAiXHUxRkM2XHUwM0I5IiwiXHUxRkM2XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNCN1x1MDNCOSIsIlx1MDM5N1x1MDM0NSIsIlx1MDM5N1x1MDM5OSIsIlx1MDM5N1x1MDNCOSIsIlx1MDM5N1x1MUZCRSIsIlx1MDNCN1x1MDM0NSIsIlx1MDNCN1x1MDM5OSIsIlx1MDNCN1x1MDNCOSIsIlx1MDNCN1x1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9XE57Q09NQklOSU5HIERJQUVSRVNJU31cTntDT01CSU5JTkcgR1JBVkUgQUNDRU5UfQorICAgICAgICB7Ilx1MDNCOVx1MDMwOFx1MDMwMCIsIlx1MDM0NVx1MDMwOFx1MDMwMCIsIlx1MDM5OVx1MDMwOFx1MDMwMCIsIlx1MDNCOVx1MDMwOFx1MDMwMCIsIlx1MUZCRVx1MDMwOFx1MDMwMCIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9XE57Q09NQklOSU5HIERJQUVSRVNJU31cTntDT01CSU5JTkcgQUNVVEUgQUNDRU5UfQorICAgICAgICB7Ilx1MDNCOVx1MDMwOFx1MDMwMSIsIlx1MDM0NVx1MDMwOFx1MDMwMSIsIlx1MDM5OVx1MDMwOFx1MDMwMSIsIlx1MDNCOVx1MDMwOFx1MDMwMSIsIlx1MUZCRVx1MDMwOFx1MDMwMSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9XE57Q09NQklOSU5HIERJQUVSRVNJU31cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0I5XHUwMzA4XHUwMzQyIiwiXHUwMzQ1XHUwMzA4XHUwMzQyIiwiXHUwMzk5XHUwMzA4XHUwMzQyIiwiXHUwM0I5XHUwMzA4XHUwMzQyIiwiXHUxRkJFXHUwMzA4XHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0I5XHUwMzQyIiwiXHUwMzQ1XHUwMzQyIiwiXHUwMzk5XHUwMzQyIiwiXHUwM0I5XHUwMzQyIiwiXHUxRkJFXHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgUkhPfVxOe0NPTUJJTklORyBDT01NQSBBQk9WRX0KKyAgICAgICAgeyJcdTAzQzFcdTAzMTMiLCJcdTAzQTFcdTAzMTMiLCJcdTAzQzFcdTAzMTMiLCJcdTAzRjFcdTAzMTMiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEdSQVZFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQzVcdTAzMDhcdTAzMDAiLCJcdTAzQTVcdTAzMDhcdTAzMDAiLCJcdTAzQzVcdTAzMDhcdTAzMDAiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEFDVVRFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQzVcdTAzMDhcdTAzMDEiLCJcdTAzQTVcdTAzMDhcdTAzMDEiLCJcdTAzQzVcdTAzMDhcdTAzMDEiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNDNVx1MDMwOFx1MDM0MiIsIlx1MDNBNVx1MDMwOFx1MDM0MiIsIlx1MDNDNVx1MDMwOFx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT059XE57Q09NQklOSU5HIENPTU1BIEFCT1ZFfQorICAgICAgICB7Ilx1MDNDNVx1MDMxMyIsIlx1MDNBNVx1MDMxMyIsIlx1MDNDNVx1MDMxMyIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT059XE57Q09NQklOSU5HIENPTU1BIEFCT1ZFfVxOe0NPTUJJTklORyBHUkFWRSBBQ0NFTlR9CisgICAgICAgIHsiXHUwM0M1XHUwMzEzXHUwMzAwIiwiXHUwM0E1XHUwMzEzXHUwMzAwIiwiXHUwM0M1XHUwMzEzXHUwMzAwIiwiXHUxRjUwXHUwMzAwIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgQ09NTUEgQUJPVkV9XE57Q09NQklOSU5HIEFDVVRFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQzVcdTAzMTNcdTAzMDEiLCJcdTAzQTVcdTAzMTNcdTAzMDEiLCJcdTAzQzVcdTAzMTNcdTAzMDEiLCJcdTFGNTBcdTAzMDEiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBDT01NQSBBQk9WRX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0M1XHUwMzEzXHUwMzQyIiwiXHUwM0E1XHUwMzEzXHUwMzQyIiwiXHUwM0M1XHUwMzEzXHUwMzQyIiwiXHUxRjUwXHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0M1XHUwMzQyIiwiXHUwM0E1XHUwMzQyIiwiXHUwM0M1XHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0F9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNDOVx1MDM0MiIsIlx1MDNBOVx1MDM0MiIsIlx1MDNDOVx1MDM0MiIsIlx1MjEyNlx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQzlcdTAzNDJcdTAzQjkiLCJcdTAzQTlcdTAzNDJcdTAzNDUiLCJcdTAzQTlcdTAzNDJcdTAzOTkiLCJcdTAzQTlcdTAzNDJcdTAzQjkiLCJcdTAzQTlcdTAzNDJcdTFGQkUiLCJcdTAzQzlcdTAzNDJcdTAzNDUiLCJcdTAzQzlcdTAzNDJcdTAzOTkiLCJcdTAzQzlcdTAzNDJcdTAzQjkiLCJcdTAzQzlcdTAzNDJcdTFGQkUiLCJcdTFGRjZcdTAzNDUiLAorICAgICAgICAgICAgIlx1MUZGNlx1MDM5OSIsIlx1MUZGNlx1MDNCOSIsIlx1MUZGNlx1MUZCRSIsIlx1MjEyNlx1MDM0Mlx1MDM0NSIsIlx1MjEyNlx1MDM0Mlx1MDM5OSIsIlx1MjEyNlx1MDM0Mlx1MDNCOSIsIlx1MjEyNlx1MDM0Mlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNDOVx1MDNCOSIsIlx1MDNBOVx1MDM0NSIsIlx1MDNBOVx1MDM5OSIsIlx1MDNBOVx1MDNCOSIsIlx1MDNBOVx1MUZCRSIsIlx1MDNDOVx1MDM0NSIsIlx1MDNDOVx1MDM5OSIsIlx1MDNDOVx1MDNCOSIsIlx1MDNDOVx1MUZCRSIsIlx1MjEyNlx1MDM0NSIsIlx1MjEyNlx1MDM5OSIsIlx1MjEyNlx1MDNCOSIsIlx1MjEyNlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggVE9OT1N9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUwM0NFXHUwM0I5IiwiXHUwMzhGXHUwMzQ1IiwiXHUwMzhGXHUwMzk5IiwiXHUwMzhGXHUwM0I5IiwiXHUwMzhGXHUxRkJFIiwiXHUwM0NFXHUwMzQ1IiwiXHUwM0NFXHUwMzk5IiwiXHUwM0NFXHUwM0I5IiwiXHUwM0NFXHUxRkJFIix9LAorICAgICAgICAvLyBcTntBUk1FTklBTiBTTUFMTCBMRVRURVIgRUNIfVxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBZSVdOfQorICAgICAgICB7Ilx1MDU2NVx1MDU4MiIsIlx1MDUzNVx1MDU1MiIsIlx1MDUzNVx1MDU4MiIsIlx1MDU2NVx1MDU1MiIsIlx1MDU2NVx1MDU4MiIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTn1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgRUNIfQorICAgICAgICB7Ilx1MDU3NFx1MDU2NSIsIlx1MDU0NFx1MDUzNSIsIlx1MDU0NFx1MDU2NSIsIlx1MDU3NFx1MDUzNSIsIlx1MDU3NFx1MDU2NSIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTn1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgSU5JfQorICAgICAgICB7Ilx1MDU3NFx1MDU2QiIsIlx1MDU0NFx1MDUzQiIsIlx1MDU0NFx1MDU2QiIsIlx1MDU3NFx1MDUzQiIsIlx1MDU3NFx1MDU2QiIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTn1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgWEVIfQorICAgICAgICB7Ilx1MDU3NFx1MDU2RCIsIlx1MDU0NFx1MDUzRCIsIlx1MDU0NFx1MDU2RCIsIlx1MDU3NFx1MDUzRCIsIlx1MDU3NFx1MDU2RCIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE1FTn1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgTk9XfQorICAgICAgICB7Ilx1MDU3NFx1MDU3NiIsIlx1MDU0NFx1MDU0NiIsIlx1MDU0NFx1MDU3NiIsIlx1MDU3NFx1MDU0NiIsIlx1MDU3NFx1MDU3NiIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIFZFV31cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgTk9XfQorICAgICAgICB7Ilx1MDU3RVx1MDU3NiIsIlx1MDU0RVx1MDU0NiIsIlx1MDU0RVx1MDU3NiIsIlx1MDU3RVx1MDU0NiIsIlx1MDU3RVx1MDU3NiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjAwXHUwM0I5IiwiXHUxRjAwXHUwMzQ1IiwiXHUxRjAwXHUwMzk5IiwiXHUxRjAwXHUwM0I5IiwiXHUxRjAwXHUxRkJFIiwiXHUxRjA4XHUwMzQ1IiwiXHUxRjA4XHUwMzk5IiwiXHUxRjA4XHUwM0I5IiwiXHUxRjA4XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMDFcdTAzQjkiLCJcdTFGMDFcdTAzNDUiLCJcdTFGMDFcdTAzOTkiLCJcdTFGMDFcdTAzQjkiLCJcdTFGMDFcdTFGQkUiLCJcdTFGMDlcdTAzNDUiLCJcdTFGMDlcdTAzOTkiLCJcdTFGMDlcdTAzQjkiLCJcdTFGMDlcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMDJcdTAzQjkiLCJcdTFGMDJcdTAzNDUiLCJcdTFGMDJcdTAzOTkiLCJcdTFGMDJcdTAzQjkiLCJcdTFGMDJcdTFGQkUiLCJcdTFGMEFcdTAzNDUiLCJcdTFGMEFcdTAzOTkiLCJcdTFGMEFcdTAzQjkiLCJcdTFGMEFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMDNcdTAzQjkiLCJcdTFGMDNcdTAzNDUiLCJcdTFGMDNcdTAzOTkiLCJcdTFGMDNcdTAzQjkiLCJcdTFGMDNcdTFGQkUiLCJcdTFGMEJcdTAzNDUiLCJcdTFGMEJcdTAzOTkiLCJcdTFGMEJcdTAzQjkiLCJcdTFGMEJcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwNFx1MDNCOSIsIlx1MUYwNFx1MDM0NSIsIlx1MUYwNFx1MDM5OSIsIlx1MUYwNFx1MDNCOSIsIlx1MUYwNFx1MUZCRSIsIlx1MUYwQ1x1MDM0NSIsIlx1MUYwQ1x1MDM5OSIsIlx1MUYwQ1x1MDNCOSIsIlx1MUYwQ1x1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjA1XHUwM0I5IiwiXHUxRjA1XHUwMzQ1IiwiXHUxRjA1XHUwMzk5IiwiXHUxRjA1XHUwM0I5IiwiXHUxRjA1XHUxRkJFIiwiXHUxRjBEXHUwMzQ1IiwiXHUxRjBEXHUwMzk5IiwiXHUxRjBEXHUwM0I5IiwiXHUxRjBEXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjA2XHUwM0I5IiwiXHUxRjA2XHUwMzQ1IiwiXHUxRjA2XHUwMzk5IiwiXHUxRjA2XHUwM0I5IiwiXHUxRjA2XHUxRkJFIiwiXHUxRjBFXHUwMzQ1IiwiXHUxRjBFXHUwMzk5IiwiXHUxRjBFXHUwM0I5IiwiXHUxRjBFXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjA3XHUwM0I5IiwiXHUxRjA3XHUwMzQ1IiwiXHUxRjA3XHUwMzk5IiwiXHUxRjA3XHUwM0I5IiwiXHUxRjA3XHUxRkJFIiwiXHUxRjBGXHUwMzQ1IiwiXHUxRjBGXHUwMzk5IiwiXHUxRjBGXHUwM0I5IiwiXHUxRjBGXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjIwXHUwM0I5IiwiXHUxRjIwXHUwMzQ1IiwiXHUxRjIwXHUwMzk5IiwiXHUxRjIwXHUwM0I5IiwiXHUxRjIwXHUxRkJFIiwiXHUxRjI4XHUwMzQ1IiwiXHUxRjI4XHUwMzk5IiwiXHUxRjI4XHUwM0I5IiwiXHUxRjI4XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjIxXHUwM0I5IiwiXHUxRjIxXHUwMzQ1IiwiXHUxRjIxXHUwMzk5IiwiXHUxRjIxXHUwM0I5IiwiXHUxRjIxXHUxRkJFIiwiXHUxRjI5XHUwMzQ1IiwiXHUxRjI5XHUwMzk5IiwiXHUxRjI5XHUwM0I5IiwiXHUxRjI5XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyMlx1MDNCOSIsIlx1MUYyMlx1MDM0NSIsIlx1MUYyMlx1MDM5OSIsIlx1MUYyMlx1MDNCOSIsIlx1MUYyMlx1MUZCRSIsIlx1MUYyQVx1MDM0NSIsIlx1MUYyQVx1MDM5OSIsIlx1MUYyQVx1MDNCOSIsIlx1MUYyQVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjNcdTAzQjkiLCJcdTFGMjNcdTAzNDUiLCJcdTFGMjNcdTAzOTkiLCJcdTFGMjNcdTAzQjkiLCJcdTFGMjNcdTFGQkUiLCJcdTFGMkJcdTAzNDUiLCJcdTFGMkJcdTAzOTkiLCJcdTFGMkJcdTAzQjkiLCJcdTFGMkJcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjRcdTAzQjkiLCJcdTFGMjRcdTAzNDUiLCJcdTFGMjRcdTAzOTkiLCJcdTFGMjRcdTAzQjkiLCJcdTFGMjRcdTFGQkUiLCJcdTFGMkNcdTAzNDUiLCJcdTFGMkNcdTAzOTkiLCJcdTFGMkNcdTAzQjkiLCJcdTFGMkNcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjVcdTAzQjkiLCJcdTFGMjVcdTAzNDUiLCJcdTFGMjVcdTAzOTkiLCJcdTFGMjVcdTAzQjkiLCJcdTFGMjVcdTFGQkUiLCJcdTFGMkRcdTAzNDUiLCJcdTFGMkRcdTAzOTkiLCJcdTFGMkRcdTAzQjkiLCJcdTFGMkRcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjI2XHUwM0I5IiwiXHUxRjI2XHUwMzQ1IiwiXHUxRjI2XHUwMzk5IiwiXHUxRjI2XHUwM0I5IiwiXHUxRjI2XHUxRkJFIiwiXHUxRjJFXHUwMzQ1IiwiXHUxRjJFXHUwMzk5IiwiXHUxRjJFXHUwM0I5IiwiXHUxRjJFXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyN1x1MDNCOSIsIlx1MUYyN1x1MDM0NSIsIlx1MUYyN1x1MDM5OSIsIlx1MUYyN1x1MDNCOSIsIlx1MUYyN1x1MUZCRSIsIlx1MUYyRlx1MDM0NSIsIlx1MUYyRlx1MDM5OSIsIlx1MUYyRlx1MDNCOSIsIlx1MUYyRlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjYwXHUwM0I5IiwiXHUxRjYwXHUwMzQ1IiwiXHUxRjYwXHUwMzk5IiwiXHUxRjYwXHUwM0I5IiwiXHUxRjYwXHUxRkJFIiwiXHUxRjY4XHUwMzQ1IiwiXHUxRjY4XHUwMzk5IiwiXHUxRjY4XHUwM0I5IiwiXHUxRjY4XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNjFcdTAzQjkiLCJcdTFGNjFcdTAzNDUiLCJcdTFGNjFcdTAzOTkiLCJcdTFGNjFcdTAzQjkiLCJcdTFGNjFcdTFGQkUiLCJcdTFGNjlcdTAzNDUiLCJcdTFGNjlcdTAzOTkiLCJcdTFGNjlcdTAzQjkiLCJcdTFGNjlcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNjJcdTAzQjkiLCJcdTFGNjJcdTAzNDUiLCJcdTFGNjJcdTAzOTkiLCJcdTFGNjJcdTAzQjkiLCJcdTFGNjJcdTFGQkUiLCJcdTFGNkFcdTAzNDUiLCJcdTFGNkFcdTAzOTkiLCJcdTFGNkFcdTAzQjkiLCJcdTFGNkFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNjNcdTAzQjkiLCJcdTFGNjNcdTAzNDUiLCJcdTFGNjNcdTAzOTkiLCJcdTFGNjNcdTAzQjkiLCJcdTFGNjNcdTFGQkUiLCJcdTFGNkJcdTAzNDUiLCJcdTFGNkJcdTAzOTkiLCJcdTFGNkJcdTAzQjkiLCJcdTFGNkJcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBPWElBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2NFx1MDNCOSIsIlx1MUY2NFx1MDM0NSIsIlx1MUY2NFx1MDM5OSIsIlx1MUY2NFx1MDNCOSIsIlx1MUY2NFx1MUZCRSIsIlx1MUY2Q1x1MDM0NSIsIlx1MUY2Q1x1MDM5OSIsIlx1MUY2Q1x1MDNCOSIsIlx1MUY2Q1x1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjY1XHUwM0I5IiwiXHUxRjY1XHUwMzQ1IiwiXHUxRjY1XHUwMzk5IiwiXHUxRjY1XHUwM0I5IiwiXHUxRjY1XHUxRkJFIiwiXHUxRjZEXHUwMzQ1IiwiXHUxRjZEXHUwMzk5IiwiXHUxRjZEXHUwM0I5IiwiXHUxRjZEXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjY2XHUwM0I5IiwiXHUxRjY2XHUwMzQ1IiwiXHUxRjY2XHUwMzk5IiwiXHUxRjY2XHUwM0I5IiwiXHUxRjY2XHUxRkJFIiwiXHUxRjZFXHUwMzQ1IiwiXHUxRjZFXHUwMzk5IiwiXHUxRjZFXHUwM0I5IiwiXHUxRjZFXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjY3XHUwM0I5IiwiXHUxRjY3XHUwMzQ1IiwiXHUxRjY3XHUwMzk5IiwiXHUxRjY3XHUwM0I5IiwiXHUxRjY3XHUxRkJFIiwiXHUxRjZGXHUwMzQ1IiwiXHUxRjZGXHUwMzk5IiwiXHUxRjZGXHUwM0I5IiwiXHUxRjZGXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNzBcdTAzQjkiLCJcdTFGNzBcdTAzNDUiLCJcdTFGNzBcdTAzOTkiLCJcdTFGNzBcdTAzQjkiLCJcdTFGNzBcdTFGQkUiLCJcdTFGQkFcdTAzNDUiLCJcdTFGQkFcdTAzOTkiLCJcdTFGQkFcdTAzQjkiLCJcdTFGQkFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNzRcdTAzQjkiLCJcdTFGNzRcdTAzNDUiLCJcdTFGNzRcdTAzOTkiLCJcdTFGNzRcdTAzQjkiLCJcdTFGNzRcdTFGQkUiLCJcdTFGQ0FcdTAzNDUiLCJcdTFGQ0FcdTAzOTkiLCJcdTFGQ0FcdTAzQjkiLCJcdTFGQ0FcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFZBUklBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY3Q1x1MDNCOSIsIlx1MUY3Q1x1MDM0NSIsIlx1MUY3Q1x1MDM5OSIsIlx1MUY3Q1x1MDNCOSIsIlx1MUY3Q1x1MUZCRSIsIlx1MUZGQVx1MDM0NSIsIlx1MUZGQVx1MDM5OSIsIlx1MUZGQVx1MDNCOSIsIlx1MUZGQVx1MUZCRSIsfSwKKyAgICB9OworICAgIAorICAgIC8vIHRoaXMgaW5pdGlhbGl6ZXMgdGhlIGRhdGEgdXNlZCB0byBnZW5lcmF0ZWQgdGhlIGNhc2UtZXF1aXZhbGVudHMKKworICAgIHN0YXRpYyB7CisgICAgICAgIAorICAgICAgICAvLyBHYXRoZXIgdXAgdGhlIGV4Y2VwdGlvbnMgaW4gYSBmb3JtIHdlIGNhbiB1c2UKKyAgICAgICAgCisgICAgICAgIGlmICghR0VORVJBVEUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhjZXB0aW9uTGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIGV4Y2VwdGlvbiA9IGV4Y2VwdGlvbkxpc3RbaV07CisgICAgICAgICAgICAgICAgU2V0IHMgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgICAgIC8vIHRoZXJlIGhhcyB0byBiZSBzb21lIG1ldGhvZCB0byBkbyB0aGUgZm9sbG93aW5nLCBidXQgSSBjYW4ndCBmaW5kIGl0IGluIHRoZSBjb2xsZWN0aW9ucworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZXhjZXB0aW9uLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIHMuYWRkKGV4Y2VwdGlvbltqXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZyb21DYXNlRm9sZC5wdXQoZXhjZXB0aW9uWzBdLCBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gd2FsayB0aHJvdWdoIGFsbCB0aGUgY2hhcmFjdGVycywgYW5kIGF0IGV2ZXJ5IGNhc2UgZm9sZCByZXN1bHQsCisgICAgICAgIC8vIHB1dCBhIHNldCBvZiBhbGwgdGhlIGNoYXJhY3RlcnMgdGhhdCBtYXAgdG8gdGhhdCByZXN1bHQKKworICAgICAgICBib29sZWFuIGRlZmF1bHRtYXBwaW5nID0gdHJ1ZTsgLy8gZmFsc2UgZm9yIHR1cmtpc2gKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgICAgICAgICAgaW50IGNhdCA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShpKTsKKyAgICAgICAgICAgIGlmIChjYXQgPT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQgfHwgY2F0ID09IENoYXJhY3Rlci5QUklWQVRFX1VTRSkgY29udGludWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBjcCA9IFVURjE2LnZhbHVlT2YoaSk7CisgICAgICAgICAgICBTdHJpbmcgbWFwcGVkID0gVUNoYXJhY3Rlci5mb2xkQ2FzZShjcCwgZGVmYXVsdG1hcHBpbmcpOworICAgICAgICAgICAgaWYgKG1hcHBlZC5lcXVhbHMoY3ApKSBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG1heExlbmd0aCA8IG1hcHBlZC5sZW5ndGgoKSkgbWF4TGVuZ3RoID0gbWFwcGVkLmxlbmd0aCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBhdCB0aGlzIHBvaW50LCBoYXZlIGRpZmZlcmVudCBjYXNlIGZvbGRpbmcKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU2V0IHMgPSAoU2V0KSBmcm9tQ2FzZUZvbGQuZ2V0KG1hcHBlZCk7CisgICAgICAgICAgICBpZiAocyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcyA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgICAgICAgICAgcy5hZGQobWFwcGVkKTsgLy8gYWRkIHRoZSBjYXNlIGZvbGQgcmVzdWx0IGl0c2VsZgorICAgICAgICAgICAgICAgIGZyb21DYXNlRm9sZC5wdXQobWFwcGVkLCBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHMuYWRkKGNwKTsKKyAgICAgICAgICAgIHRvQ2FzZUZvbGQucHV0KGNwLCBtYXBwZWQpOworICAgICAgICAgICAgdG9DYXNlRm9sZC5wdXQobWFwcGVkLCBtYXBwZWQpOyAvLyBhZGQgbWFwcGluZyB0byBzZWxmCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEVtaXQgdGhlIGZpbmFsIGRhdGEKKworICAgICAgICBpZiAoRFVNUCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJtYXhMZW5ndGggPSAiICsgbWF4TGVuZ3RoKTsKKworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbmZyb21DYXNlRm9sZDoiKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gZnJvbUNhc2VGb2xkLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IGtleSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgIiArIHRvSGV4Mi50cmFuc2xpdGVyYXRlKChTdHJpbmcpa2V5KSArICI6ICIpOworICAgICAgICAgICAgICAgIFNldCBzID0gKFNldCkgZnJvbUNhc2VGb2xkLmdldChrZXkpOworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0MiA9IHMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3QpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIsICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQodG9IZXgyLnRyYW5zbGl0ZXJhdGUoKFN0cmluZylpdDIubmV4dCgpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG50b0Nhc2VGb2xkOiIpOworICAgICAgICAgICAgaXQgPSB0b0Nhc2VGb2xkLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSAoU3RyaW5nKSB0b0Nhc2VGb2xkLmdldChrZXkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICIgKyB0b0hleDIudHJhbnNsaXRlcmF0ZShrZXkpICsgIjogIiArIHRvSGV4Mi50cmFuc2xpdGVyYXRlKHZhbHVlKSk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE5vdyBjb252ZXJ0IGFsbCB0aG9zZSBzZXRzIGludG8gbGluZWFyIGFycmF5cworICAgICAgICAvLyBXZSBjYW4ndCBkbyB0aGlzIGluIHBsYWNlIGluIEphdmEsIHNvIG1ha2UgYSB0ZW1wb3JhcnkgdGFyZ2V0IGFycmF5CisgICAgICAgIAorICAgICAgICAvLyBOb3RlOiBUaGlzIGNvdWxkIGJlIHRyYW5zZm9ybWVkIGludG8gYSBzaW5nbGUgYXJyYXksIHdpdGggb2Zmc2V0cyBpbnRvIGl0LgorICAgICAgICAvLyBNaWdodCBiZSBiZXN0IGNob2ljZSBpbiBDLgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIE1hcCBmcm9tQ2FzZUZvbGQyID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBmcm9tQ2FzZUZvbGQua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIFNldCBzID0gKFNldCkgZnJvbUNhc2VGb2xkLmdldChrZXkpOworICAgICAgICAgICAgU3RyaW5nW10gdGVtcCA9IG5ldyBTdHJpbmdbcy5zaXplKCldOworICAgICAgICAgICAgcy50b0FycmF5KHRlbXApOworICAgICAgICAgICAgZnJvbUNhc2VGb2xkMi5wdXQoa2V5LCB0ZW1wKTsKKyAgICAgICAgfQorICAgICAgICBmcm9tQ2FzZUZvbGQgPSBmcm9tQ2FzZUZvbGQyOworCisgICAgICAgIC8vIFdlIGhhdmUgcHJvY2Vzc2VkIGV2ZXJ5dGhpbmcsIHNvIHRoZSBpdGVyYXRvciB3aWxsIG5vdyB3b3JrCisgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgbm9ybWFsbHkgT0ZGLiAKKyAgICAgICAgLy8gSXQgaXMgaGVyZSB0byBnZW5lcmF0ZSAodW5kZXIgdGhlIEdFTkVSQVRFIGZsYWcpIHRoZSBzdGF0aWMgZXhjZXB0aW9uIGxpc3QuCisgICAgICAgIC8vIEl0IG11c3QgYmUgYXQgdGhlIHZlcnkgZW5kIG9mIGluaXRpYWxpemF0aW9uLCBzbyB0aGF0IHRoZSBpdGVyYXRvciBpcyBmdW5jdGlvbmFsLgorICAgICAgICAvLyAoZWFzaWVzdCB0byBkbyBpdCB0aGF0IHdheSkKKyAgICAgICAgICAgIAorICAgICAgICBpZiAoR0VORVJBVEUpIHsKKworICAgICAgICAgICAgLy8gZmlyc3QgZ2V0IHNtYWxsIHNldCBvZiBpdGVtcyB0aGF0IGhhdmUgbXVsdGlwbGUgY2hhcmFjdGVycworICAgICAgICAgICAgCisgICAgICAgICAgICBTZXQgbXVsdGljaGFycyA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgICAgICBpdCA9IGZyb21DYXNlRm9sZC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKFVURjE2LmNvdW50Q29kZVBvaW50KGtleSkgPCAyKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBtdWx0aWNoYXJzLmFkZChrZXkpOworICAgICAgICAgICAgfSAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBub3cgd2Ugd2lsbCBnbyB0aHJvdWdoIGVhY2ggb2YgdGhlbS4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgQ2FzZUl0ZXJhdG9yIGNpID0gbmV3IENhc2VJdGVyYXRvcigpOworICAgICAgICAgICAgaXQgPSBtdWx0aWNoYXJzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGhlcmUgaXMgYSBuYXN0eSBjb21wbGljYXRpb24uIFRha2UgJ2ZmaScgbGlnYXR1cmUuIFdlCisgICAgICAgICAgICAgICAgLy8gY2FuJ3QganVzdCBjbG9zZSBpdCwgc2luY2Ugd2Ugd291bGQgbWlzcyB0aGUgY29tYmluYXRpb24KKyAgICAgICAgICAgICAgICAvLyB0aGF0IGluY2x1ZGVzIHRoZSAnZmknID0+ICJmaSIgbGlnYXR1cmUKKyAgICAgICAgICAgICAgICAvLyBzbyBmaXJzdCBkbyBhIHBhc3MgdGhyb3VnaCwgYW5kIGFkZCBzdWJzdHJpbmcgY29tYmluYXRpb25zCisgICAgICAgICAgICAgICAgLy8gd2UgY2FsbCB0aGlzIGEgJ3BhcnRpYWwgY2xvc3VyZScKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTZXQgcGFydGlhbENsb3N1cmUgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAgICAgICAgIHBhcnRpYWxDbG9zdXJlLmFkZChrZXkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChrZXkpID4gMikgeworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBtdWx0aUl0MiA9IG11bHRpY2hhcnMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG11bHRpSXQyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG90aGVyS2V5ID0gKFN0cmluZykgbXVsdGlJdDIubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG90aGVyS2V5Lmxlbmd0aCgpID49IGtleS5sZW5ndGgoKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgbm90IGNvbXBsZXRlbHkgZ2VuZXJhbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCB3b3JrcyBmb3IgdGhlIGFjdHVhbCBjYXNlZCBzdHVmZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgc2hvdWxkIHdvcmsgZm9yIGZ1dHVyZSBjaGFyYWN0ZXJzLCBzaW5jZSB3ZSB3b24ndCBoYXZlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9yZSBsaWdhdHVyZXMgJiBvdGhlciBvZGRpdGllcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBrZXkuaW5kZXhPZihvdGhlcktleSwgcG9zKzEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPCAwKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kUG9zID0gcG9zICsgb3RoZXJLZXkubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2Uga25vdyB3ZSBoYXZlIGEgcHJvcGVyIHN1YnN0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbyBnZXQgdGhlIGNvbWJpbmF0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdIGNob2ljZXMgPSAoU3RyaW5nW10pIGZyb21DYXNlRm9sZC5nZXQob3RoZXJLZXkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGlpID0gMDsgaWkgPCBjaG9pY2VzLmxlbmd0aDsgKytpaSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcGF0Y2h3b3JrID0ga2V5LnN1YnN0cmluZygwLCBwb3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGNob2ljZXNbaWldCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGtleS5zdWJzdHJpbmcoZW5kUG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydGlhbENsb3N1cmUuYWRkKHBhdGNod29yayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIG5vdywgZm9yIGVhY2ggdGhpbmcgaW4gdGhlIHBhcnRpYWwgY2xvc3VyZSwgZ2V0IGl0cworICAgICAgICAgICAgICAgIC8vIGNhc2UgY2xvc3VyZSBhbmQgYWRkIGl0IHRvIHRoZSBmaW5hbCByZXN1bHQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU2V0IGNsb3N1cmUgPSBuZXcgVHJlZVNldCgpOyAvLyB0aGlzIHdpbGwgYmUgdGhlIHJlYWwgY2xvc3VyZQorICAgICAgICAgICAgICAgIEl0ZXJhdG9yIHBhcnRpYWxJdCA9IHBhcnRpYWxDbG9zdXJlLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHBhcnRpYWxJdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGtleTIgPSAoU3RyaW5nKSBwYXJ0aWFsSXQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBjaS5yZXNldChrZXkyKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChTdHJpbmcgdGVtcCA9IGNpLm5leHQoKTsgdGVtcCAhPSBudWxsOyB0ZW1wID0gY2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjbG9zdXJlLmFkZCh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBmb3JtIGNsb3N1cmUKKyAgICAgICAgICAgICAgICAgICAgLypTdHJpbmdbXSBjaG9pY2VzID0gKFN0cmluZ1tdKSBmcm9tQ2FzZUZvbGQuZ2V0KGtleTIpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNob2ljZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNpLnJlc2V0KGNob2ljZXNbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXA7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobnVsbCAhPSAodGVtcCA9IGNpLm5leHQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zdXJlLmFkZCh0ZW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBwcmludCBpdCBvdXQsIHNvIHRoYXQgaXQgY2FuIGJlIGN1dCBhbmQgcGFzdGVkIGJhY2sgaW50byB0aGlzIGRvY3VtZW50LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0MiA9IGNsb3N1cmUuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlx0Ly8gIiArIHRvTmFtZS50cmFuc2xpdGVyYXRlKGtleSkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlx0e1wiIiArIHRvSGV4LnRyYW5zbGl0ZXJhdGUoa2V5KSArICJcIiwiKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IChTdHJpbmcpaXQyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXCIiICsgdG9IZXgudHJhbnNsaXRlcmF0ZShpdGVtKSArICJcIiwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ9LCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vID09PT09PT09PT09PSBQUklWQVRFIENMQVNTIERBVEEgPT09PT09PT09PT09IAorICAgIAorICAgIC8vIHBpZWNlcyB0aGF0IHdlIHdpbGwgcHV0IHRvZ2V0aGVyCisgICAgLy8gaXMgbm90IGNoYW5nZWQgZHVyaW5nIGl0ZXJhdGlvbgorICAgIHByaXZhdGUgaW50IGNvdW50ID0gMDsKKyAgICBwcml2YXRlIFN0cmluZ1tdW10gdmFyaWFudHM7CisgICAgCisgICAgLy8gc3RhdGUgaW5mb3JtYXRpb24sIGNoYW5nZXMgZHVyaW5nIGl0ZXJhdGlvbgorICAgIHByaXZhdGUgYm9vbGVhbiBkb25lID0gZmFsc2U7CisgICAgcHJpdmF0ZSBpbnRbXSBjb3VudHM7CisgICAgCisgICAgLy8gaW50ZXJuYWwgYnVmZmVyIGZvciBlZmZpY2llbmN5CisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbmV4dEJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT0gIAorCisgICAgLyoqCisgICAgICogUmVzZXQgdG8gZGlmZmVyZW50IHNvdXJjZS4gT25jZSByZXNldCwgdGhlIGl0ZXJhdGlvbiBzdGFydHMgZnJvbSB0aGUgYmVnaW5uaW5nLgorICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIHN0cmluZyB0byBnZXQgY2FzZSB2YXJpYW50cyBmb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldChTdHJpbmcgc291cmNlKSB7CisgICAgICAgIAorICAgICAgICAvLyBhbGxvY2F0ZSBhcnJheXMgdG8gc3RvcmUgcGllY2VzCisgICAgICAgIC8vIHVzaW5nIGxlbmd0aCBtaWdodCBiZSBzbGlnaHRseSB0b28gbG9uZywgYnV0IHdlIGRvbid0IGNhcmUgbXVjaAorICAgICAgICAKKyAgICAgICAgY291bnRzID0gbmV3IGludFtzb3VyY2UubGVuZ3RoKCldOworICAgICAgICB2YXJpYW50cyA9IG5ldyBTdHJpbmdbc291cmNlLmxlbmd0aCgpXVtdOworICAgICAgICAKKyAgICAgICAgLy8gd2FsayB0aHJvdWdoIHRoZSBzb3VyY2UsIGFuZCBicmVhayB1cCBpbnRvIHBpZWNlcworICAgICAgICAvLyBlYWNoIHBpZWNlIGJlY29tZXMgYW4gYXJyYXkgb2YgZXF1aXZhbGVudCB2YWx1ZXMKKyAgICAgICAgLy8gVE9ETzogY291bGQgb3B0aW1pemVkIHRoaXMgbGF0ZXIgdG8gY29hbGVzY2UgYWxsIHNpbmdsZSBzdHJpbmcgcGllY2VzCisgICAgICAgIAorICAgICAgICBTdHJpbmcgcGllY2UgPSBudWxsOworICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aCgpOyBpICs9IHBpZWNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGZpbmQgKmxvbmdlc3QqIG1hdGNoaW5nIHBpZWNlCisgICAgICAgICAgICBTdHJpbmcgY2FzZUZvbGQgPSBudWxsOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoR0VORVJBVEUpIHsKKyAgICAgICAgICAgICAgICAvLyBkbyBleGFjdGx5IG9uZSBDUAorICAgICAgICAgICAgICAgIHBpZWNlID0gVVRGMTYudmFsdWVPZihzb3VyY2UsIGkpOworICAgICAgICAgICAgICAgIGNhc2VGb2xkID0gKFN0cmluZykgdG9DYXNlRm9sZC5nZXQocGllY2UpOworICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgbWF4ID0gaSArIG1heExlbmd0aDsKKyAgICAgICAgICAgICAgICBpZiAobWF4ID4gc291cmNlLmxlbmd0aCgpKSBtYXggPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IG1heDsgaiA+IGk7IC0taikgeworICAgICAgICAgICAgICAgICAgICBwaWVjZSA9IHNvdXJjZS5zdWJzdHJpbmcoaSwgaik7CisgICAgICAgICAgICAgICAgICAgIGNhc2VGb2xkID0gKFN0cmluZykgdG9DYXNlRm9sZC5nZXQocGllY2UpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2FzZUZvbGQgIT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBpZiB3ZSBmYWlsLCBwaWNrIG9uZSBjb2RlIHBvaW50CisgICAgICAgICAgICBpZiAoY2FzZUZvbGQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHBpZWNlID0gVVRGMTYudmFsdWVPZihzb3VyY2UsIGkpOworICAgICAgICAgICAgICAgIHZhcmlhbnRzW2NvdW50KytdID0gbmV3IFN0cmluZ1tdIHtwaWVjZX07IC8vIHNpbmdsZSBpdGVtIHN0cmluZworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXJpYW50c1tjb3VudCsrXSA9IChTdHJpbmdbXSlmcm9tQ2FzZUZvbGQuZ2V0KGNhc2VGb2xkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXNldCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXN0YXJ0IHRoZSBpdGVyYXRpb24gZnJvbSB0aGUgYmVnaW5uaW5nLCBidXQgd2l0aCBzYW1lIHNvdXJjZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkgeworICAgICAgICBkb25lID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgY291bnRzW2ldID0gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBJdGVyYXRlcyB0aHJvdWdoIHRoZSBjYXNlIHZhcmlhbnRzLgorICAgICAqIEByZXR1cm4gbmV4dCBjYXNlIHZhcmlhbnQuIEVhY2ggdmFyaWFudCB3aWxsIGNhc2UtZm9sZCB0byB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgc291cmNlIHdpbGwuCisgICAgICogV2hlbiB0aGUgaXRlcmF0aW9uIGlzIGRvbmUsIG51bGwgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBuZXh0KCkgeworICAgICAgICAKKyAgICAgICAgaWYgKGRvbmUpIHJldHVybiBudWxsOworICAgICAgICBpbnQgaTsKKyAgICAgICAgCisgICAgICAgIC8vIFRPRE8gT3B0aW1pemUgc28gd2Uga2VlcCB0aGUgcGllY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbgorICAgICAgICAvLyBzbyB3ZSBkb24ndCBoYXZlIHNvIG11Y2ggY29uY2F0ZW5hdGlvbgorICAgICAgICAKKyAgICAgICAgLy8gZ2V0IHRoZSByZXN1bHQsIGEgY29uY2F0ZW5hdGlvbgorICAgICAgICAKKyAgICAgICAgbmV4dEJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBuZXh0QnVmZmVyLmFwcGVuZCh2YXJpYW50c1tpXVtjb3VudHNbaV1dKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gZmluZCB0aGUgbmV4dCByaWdodCBzZXQgb2YgcGllY2VzIHRvIGNvbmNhdGVuYXRlCisgICAgICAgIAorICAgICAgICBmb3IgKGkgPSBjb3VudC0xOyBpID49IDA7IC0taSkgeworICAgICAgICAgICAgY291bnRzW2ldKys7CisgICAgICAgICAgICBpZiAoY291bnRzW2ldIDwgdmFyaWFudHNbaV0ubGVuZ3RoKSBicmVhazsKKyAgICAgICAgICAgIGNvdW50c1tpXSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGlmIHdlIGdvIHRvbyBmYXIsIGJhaWwKKyAgICAgICAgCisgICAgICAgIGlmIChpIDwgMCkgeworICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXh0QnVmZmVyLnRvU3RyaW5nKCk7ICAgICAgICAgICAgCisgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVGVtcG9yYXJ5IHRlc3QsIGp1c3QgdG8gc2VlIGhvdyB0aGUgc3R1ZmYgd29ya3MuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBTdHJpbmdbXSB0ZXN0Q2FzZXMgPSB7ImZpc3MiLCAiaFx1MDNhMyJ9OworICAgICAgICBDYXNlSXRlcmF0b3IgY2kgPSBuZXcgQ2FzZUl0ZXJhdG9yKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSB0ZXN0Q2FzZXNbaV07CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdGluZzogIiArIHRvTmFtZS50cmFuc2xpdGVyYXRlKGl0ZW0pKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgY2kucmVzZXQoaXRlbSk7CisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgZm9yIChTdHJpbmcgdGVtcCA9IGNpLm5leHQoKTsgdGVtcCAhPSBudWxsOyB0ZW1wID0gY2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRvTmFtZS50cmFuc2xpdGVyYXRlKHRlbXApKTsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUb3RhbDogIiArIGNvdW50KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGdlbmVyYXRlIGEgbGlzdCBvZiBhbGwgY2FzZWxlc3MgY2hhcmFjdGVycyAtLSBjaGFyYWN0ZXJzIHdob3NlCisgICAgICAgIC8vIGNhc2UgY2xvc3VyZSBpcyB0aGVtc2VsdmVzLgorCisgICAgICAgIFVuaWNvZGVTZXQgY2FzZWxlc3MgPSBuZXcgVW5pY29kZVNldCgpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBjcCA9IFVURjE2LnZhbHVlT2YoaSk7CisgICAgICAgICAgICBjaS5yZXNldChjcCk7CisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgU3RyaW5nIGZvbGQgPSBudWxsOworICAgICAgICAgICAgZm9yIChTdHJpbmcgdGVtcCA9IGNpLm5leHQoKTsgdGVtcCAhPSBudWxsOyB0ZW1wID0gY2kubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgZm9sZCA9IHRlbXA7CisgICAgICAgICAgICAgICAgaWYgKCsrY291bnQgPiAxKSBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjb3VudD09MSAmJiBmb2xkLmVxdWFscyhjcCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlbGVzcy5hZGQoaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNhc2VsZXNzID0gIiArIGNhc2VsZXNzLnRvUGF0dGVybih0cnVlKSk7CisKKyAgICAgICAgVW5pY29kZVNldCBub3RfbGMgPSBuZXcgVW5pY29kZVNldCgiWzpebGM6XSIpOworICAgICAgICAKKyAgICAgICAgVW5pY29kZVNldCBhID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgYS5zZXQobm90X2xjKTsKKyAgICAgICAgYS5yZW1vdmVBbGwoY2FzZWxlc3MpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIls6XmxjOl0gLSBjYXNlbGVzcyA9ICIgKyBhLnRvUGF0dGVybih0cnVlKSk7CisKKyAgICAgICAgYS5zZXQoY2FzZWxlc3MpOworICAgICAgICBhLnJlbW92ZUFsbChub3RfbGMpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNhc2VsZXNzIC0gWzpebGM6XSA9ICIgKyBhLnRvUGF0dGVybih0cnVlKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0RlbW8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EZW1vLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjIwNmMwOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EZW1vLmphdmEKQEAgLTAsMCArMSwxMzc1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdDsKKworaW1wb3J0IGphdmEuYXd0Lio7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLkRpZmZlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEEgZnJhbWUgdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gZXhwZXJpbWVudCB3aXRoIGtleWJvYXJkCisgKiB0cmFuc2xpdGVyYXRpb24uICBUaGlzIGNsYXNzIGhhcyBhIG1haW4oKSBtZXRob2Qgc28gaXQgY2FuIGJlIHJ1bgorICogYXMgYW4gYXBwbGljYXRpb24uICBUaGUgZnJhbWUgY29udGFpbnMgYW4gZWRpdGFibGUgdGV4dCBjb21wb25lbnQKKyAqIGFuZCB1c2VzIGtleWJvYXJkIHRyYW5zbGl0ZXJhdGlvbiB0byBwcm9jZXNzIGtleWJvYXJkIGV2ZW50cy4KKyAqCisgKiA8cD5Db3B5cmlnaHQgKGMpIElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK3B1YmxpYyBjbGFzcyBEZW1vIGV4dGVuZHMgRnJhbWUgeworCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFNUQVJUX1RFWFQgPSAiKGN1dCxcdTAzQkFcdTAzQzVcdTAzQzQsXHUwNUQwLFx1MzBBRlx1MzBDOCxcdTRFODAsXHUwOTFBXHUwOTQxXHUwOTI0XHUwOTREKSI7CisKKyAgICBUcmFuc2xpdGVyYXRvciB0cmFuc2xpdCA9IG51bGw7CisgICAgU3RyaW5nIGZvbnROYW1lID0gIkFyaWFsIFVuaWNvZGUgTVMiOworICAgIGludCBmb250U2l6ZSA9IDE4OworICAgIAorICAgIAorCisgICAgLyoKKyAgICBib29sZWFuIGNvbXBvdW5kID0gZmFsc2U7CisgICAgVHJhbnNsaXRlcmF0b3JbXSBjb21wb3VuZFRyYW5zbGl0ID0gbmV3IFRyYW5zbGl0ZXJhdG9yW01BWF9DT01QT1VORF07CisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfQ09NUE9VTkQgPSAxMjg7CisgICAgaW50IGNvbXBvdW5kQ291bnQgPSAwOworICAgICovCisKKyAgICBUcmFuc2xpdGVyYXRpbmdUZXh0Q29tcG9uZW50IHRleHQgPSBudWxsOworCisgICAgTWVudSB0cmFuc2xpdE1lbnU7CisgICAgQ2hlY2tib3hNZW51SXRlbSB0cmFuc2xpdEl0ZW07CisgICAgQ2hlY2tib3hNZW51SXRlbSBub1RyYW5zbGl0SXRlbTsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgTk9fVFJBTlNMSVRFUkFUT1IgPSAiTm9uZSI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBGcmFtZSBmID0gbmV3IERlbW8oNjAwLCAyMDApOworICAgICAgICBmLmFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBmLnNldFZpc2libGUodHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIERlbW8oaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB7CisgICAgICAgIHN1cGVyKCJUcmFuc2xpdGVyYXRpb24gRGVtbyIpOworCisgICAgICAgIGluaXRNZW51cygpOworCisgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlQ2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICB0ZXh0ID0gbmV3IFRyYW5zbGl0ZXJhdGluZ1RleHRDb21wb25lbnQoKTsKKyAgICAgICAgRm9udCBmb250ID0gbmV3IEZvbnQoZm9udE5hbWUsIEZvbnQuUExBSU4sIGZvbnRTaXplKTsKKyAgICAgICAgdGV4dC5zZXRGb250KGZvbnQpOworICAgICAgICB0ZXh0LnNldFNpemUod2lkdGgsIGhlaWdodCk7CisgICAgICAgIHRleHQuc2V0VmlzaWJsZSh0cnVlKTsKKyAgICAgICAgdGV4dC5zZXRUZXh0KFNUQVJUX1RFWFQpOworICAgICAgICBhZGQodGV4dCk7CisKKyAgICAgICAgc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgc2V0VHJhbnNsaXRlcmF0b3IoIkxhdGluLUdyZWVrIiwgbnVsbCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGluaXRNZW51cygpIHsKKyAgICAgICAgTWVudUJhciBtYmFyOworICAgICAgICBNZW51IG1lbnU7CisgICAgICAgIE1lbnVJdGVtIG1pdGVtOworICAgICAgICAvL0NoZWNrYm94TWVudUl0ZW0gY2l0ZW07CisgICAgICAgIAorICAgICAgICBzZXRNZW51QmFyKG1iYXIgPSBuZXcgTWVudUJhcigpKTsKKyAgICAgICAgbWJhci5hZGQobWVudSA9IG5ldyBNZW51KCJGaWxlIikpOworICAgICAgICBtZW51LmFkZChtaXRlbSA9IG5ldyBNZW51SXRlbSgiUXVpdCIpKTsKKyAgICAgICAgbWl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVDbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKy8qCisgICAgICAgIGZpbmFsIEl0ZW1MaXN0ZW5lciBzZXRUcmFuc2xpdGVyYXRvckxpc3RlbmVyID0gbmV3IEl0ZW1MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBDaGVja2JveE1lbnVJdGVtIGl0ZW0gPSAoQ2hlY2tib3hNZW51SXRlbSkgZS5nZXRTb3VyY2UoKTsKKyAgICAgICAgICAgICAgICBpZiAoZS5nZXRTdGF0ZUNoYW5nZSgpID09IEl0ZW1FdmVudC5ERVNFTEVDVEVEKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGxldCB0aGUgY3VycmVudCB0cmFuc2xpdGVyYXRvciBiZSBkZXNlbGVjdGVkLgorICAgICAgICAgICAgICAgICAgICAvLyBKdXN0IHJlc2VsZWN0IGl0LgorICAgICAgICAgICAgICAgICAgICBpdGVtLnNldFN0YXRlKHRydWUpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29tcG91bmQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQWRkaW5nIGFuIGl0ZW0gdG8gYSBjb21wb3VuZCB0cmFuc2xpdGVyYXRvcgorICAgICAgICAgICAgICAgICAgICBoYW5kbGVBZGRUb0NvbXBvdW5kKGl0ZW0uZ2V0TGFiZWwoKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtICE9IHRyYW5zbGl0SXRlbSkgeworICAgICAgICAgICAgICAgICAgICAvLyBEZXNlbGVjdCBwcmV2aW91cyBjaG9pY2UuICBEb24ndCBuZWVkIHRvIGNhbGwKKyAgICAgICAgICAgICAgICAgICAgLy8gc2V0U3RhdGUodHJ1ZSkgb24gbmV3IGNob2ljZS4KKyAgICAgICAgICAgICAgICAgICAgdHJhbnNsaXRJdGVtLnNldFN0YXRlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNsaXRJdGVtID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2V0VHJhbnNsaXRlcmF0b3IoaXRlbS5nZXRMYWJlbCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisqLworICAgICAgICAvKgorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkKHRyYW5zbGl0SXRlbSA9IG5vVHJhbnNsaXRJdGVtID0KKyAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ2hlY2tib3hNZW51SXRlbShOT19UUkFOU0xJVEVSQVRPUiwgdHJ1ZSkpOworICAgICAgICBub1RyYW5zbGl0SXRlbS5hZGRJdGVtTGlzdGVuZXIobmV3IEl0ZW1MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAvLyBDYW4ndCB1bmNoZWNrIE5vbmUgLS0gYW55IGFjdGlvbiBoZXJlIHNldHMgTm9uZSB0byB0cnVlCisgICAgICAgICAgICAgICAgc2V0Tm9UcmFuc2xpdGVyYXRvcigpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICB0cmFuc2xpdE1lbnUuYWRkU2VwYXJhdG9yKCk7CisgICAgICAgICovCisKKy8qCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQoY2l0ZW0gPSBuZXcgQ2hlY2tib3hNZW51SXRlbSgiQ29tcG91bmQiKSk7CisgICAgICAgIGNpdGVtLmFkZEl0ZW1MaXN0ZW5lcihuZXcgSXRlbUxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgaXRlbVN0YXRlQ2hhbmdlZChJdGVtRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIENoZWNrYm94TWVudUl0ZW0gaXRlbSA9IChDaGVja2JveE1lbnVJdGVtKSBlLmdldFNvdXJjZSgpOworICAgICAgICAgICAgICAgIGlmIChlLmdldFN0YXRlQ2hhbmdlKCkgPT0gSXRlbUV2ZW50LkRFU0VMRUNURUQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgY29tcG91bmQgZ2V0cyBkZXNlbGVjdGVkLCB0aGVuIHNlbGVjdCBOT05FCisgICAgICAgICAgICAgICAgICAgIHNldE5vVHJhbnNsaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFjb21wb3VuZCkgeworICAgICAgICAgICAgICAgICAgICAvLyBTd2l0Y2hpbmcgZnJvbSBub24tY29tcG91bmQgdG8gY29tcG91bmQKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNsaXRJdGVtLnNldFN0YXRlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNsaXRJdGVtID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNsaXQgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBjb21wb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kQ291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8TUFYX0NPTVBPVU5EOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kVHJhbnNsaXRbaV0gPSBudWxsOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgIAorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkU2VwYXJhdG9yKCk7CisgICAgICAgKi8KKworICAgICAgICAvKgorICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGU9Z2V0U3lzdGVtVHJhbnNsaXRlcmF0b3JOYW1lcygpLmVsZW1lbnRzKCk7CisgICAgICAgICAgICAgZS5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IChTdHJpbmcpIGUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIHRyYW5zbGl0TWVudS5hZGQoY2l0ZW0gPSBuZXcgQ2hlY2tib3hNZW51SXRlbShzKSk7CisgICAgICAgICAgICBjaXRlbS5hZGRJdGVtTGlzdGVuZXIoc2V0VHJhbnNsaXRlcmF0b3JMaXN0ZW5lcik7CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIE1lbnUgZm9udE1lbnUgPSBuZXcgTWVudSgiRm9udCIpOworICAgICAgICBTdHJpbmdbXSBmb250cyA9IEdyYXBoaWNzRW52aXJvbm1lbnQuZ2V0TG9jYWxHcmFwaGljc0Vudmlyb25tZW50KCkuZ2V0QXZhaWxhYmxlRm9udEZhbWlseU5hbWVzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZm9udHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIE1lbnVJdGVtIG1JdGVtID0gbmV3IE1lbnVJdGVtKGZvbnRzW2ldKTsKKyAgICAgICAgICAgIG1JdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBGb250QWN0aW9uTGlzdGVuZXIoZm9udHNbaV0pKTsKKyAgICAgICAgICAgIGZvbnRNZW51LmFkZChtSXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgbWJhci5hZGQoZm9udE1lbnUpOworICAgICAgICAKKyAgICAgICAgTWVudSBzaXplTWVudSA9IG5ldyBNZW51KCJTaXplIik7CisgICAgICAgIGludFtdIHNpemVzID0gezksIDEwLCAxMiwgMTQsIDE4LCAyNCwgMzYsIDQ4LCA3Mn07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIE1lbnVJdGVtIG1JdGVtID0gbmV3IE1lbnVJdGVtKCIiICsgc2l6ZXNbaV0pOworICAgICAgICAgICAgbUl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IFNpemVBY3Rpb25MaXN0ZW5lcihzaXplc1tpXSkpOworICAgICAgICAgICAgc2l6ZU1lbnUuYWRkKG1JdGVtKTsKKyAgICAgICAgfQorICAgICAgICBtYmFyLmFkZChzaXplTWVudSk7CisgICAgICAgIAorICAgICAgICB0cmFuc2xpdCA9IG51bGw7CisgICAgICAgIAorICAgICAgICBtYmFyLmFkZCh0cmFuc2xpdE1lbnUgPSBuZXcgTWVudSgiVHJhbnNsaXRlcmF0b3IiKSk7CisgICAgICAgIAorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkKGNvbnZlcnRTZWxlY3Rpb25JdGVtID0gbmV3IE1lbnVJdGVtKCJUcmFuc2xpdGVyYXRlIiwgCisgICAgICAgICAgICBuZXcgTWVudVNob3J0Y3V0KEtleUV2ZW50LlZLX0spKSk7CisgICAgICAgIGNvbnZlcnRTZWxlY3Rpb25JdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlQmF0Y2hUcmFuc2xpdGVyYXRlKHRyYW5zbGl0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICB0cmFuc2xpdE1lbnUuYWRkKHN3YXBTZWxlY3Rpb25JdGVtID0gbmV3IE1lbnVJdGVtKCJSZXZlcnNlIiwgCisgICAgICAgICAgICBuZXcgTWVudVNob3J0Y3V0KEtleUV2ZW50LlZLX1MpKSk7CisgICAgICAgIHN3YXBTZWxlY3Rpb25JdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgaW52OworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGludiA9IHRyYW5zbGl0LmdldEludmVyc2UoKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24geCkgeworICAgICAgICAgICAgICAgICAgICBpbnYgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgibnVsbCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXRUcmFuc2xpdGVyYXRvcihpbnYuZ2V0SUQoKSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZChjb252ZXJ0VHlwaW5nSXRlbSA9IG5ldyBNZW51SXRlbSgiTm8gVHlwaW5nIENvbnZlcnNpb24iLAorICAgICAgICAgICAgbmV3IE1lbnVTaG9ydGN1dChLZXlFdmVudC5WS19UKSkpOworICAgICAgICBjb252ZXJ0VHlwaW5nSXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGlmICghdHJhbnNsaXRlcmF0ZVR5cGluZykgeworICAgICAgICAgICAgICAgICAgICB0ZXh0LnNldFRyYW5zbGl0ZXJhdG9yKHRyYW5zbGl0KTsKKyAgICAgICAgICAgICAgICAgICAgY29udmVydFR5cGluZ0l0ZW0uc2V0TGFiZWwoIk5vIFR5cGluZyBDb252ZXJzaW9uIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dC5mbHVzaCgpOworICAgICAgICAgICAgICAgICAgICB0ZXh0LnNldFRyYW5zbGl0ZXJhdG9yKG51bGwpOworICAgICAgICAgICAgICAgICAgICBjb252ZXJ0VHlwaW5nSXRlbS5zZXRMYWJlbCgiQ29udmVydCBUeXBpbmciKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJhbnNsaXRlcmF0ZVR5cGluZyA9ICF0cmFuc2xpdGVyYXRlVHlwaW5nOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQoaGlzdG9yeU1lbnUgPSBuZXcgTWVudSgiUmVjZW50IikpOworICAgICAgICAKKyAgICAgICAgaGVscERpYWxvZyA9IG5ldyBJbmZvRGlhbG9nKHRoaXMsICJTaW1wbGUgRGVtbyIsICJJbnN0cnVjdGlvbnMiLAorICAgICAgICAgICAiQ1RMIEEsIFgsIEMsIFYgaGF2ZSBjdXN0b21hcnkgbWVhbmluZ3MuXG4iCisgICAgICAgICArICJBcnJvdyBrZXlzLCBkZWxldGUgYW5kIGJhY2tzcGFjZSB3b3JrLlxuIgorICAgICAgICAgKyAiVG8gZ2V0IGEgY2hhcmFjdGVyIGZyb20gaXRzIGNvbnRyb2wgcG9pbnQsIHR5cGUgdGhlIGhleCwgdGhlbiBoaXQgQ1RMIFEiCisgICAgICAgICk7CisgICAgICAgIGhlbHBEaWFsb2cuZ2V0QXJlYSgpLnNldEVkaXRhYmxlKGZhbHNlKTsKKyAgICAgICAgCisgICAgICAgCisgICAgICAgIE1lbnUgaGVscE1lbnU7CisgICAgICAgIG1iYXIuYWRkKGhlbHBNZW51ID0gbmV3IE1lbnUoIkV4dHJhcyIpKTsKKyAgICAgICAgaGVscE1lbnUuYWRkKG1pdGVtID0gbmV3IE1lbnVJdGVtKCJIZWxwIikpOworICAgICAgICBtaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGhlbHBEaWFsb2cuc2hvdygpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsgICAKKyAgICAgICAgCisgICAgICAgIGhleERpYWxvZyA9IG5ldyBJbmZvRGlhbG9nKHRoaXMsICJIZXggRW50cnkiLCAiVXNlIFUrLi4uLCBcXHUuLi4sIFxceHsuLi59LCBvciAmI3guLi47IiwKKyAgICAgICAgICAgIlxcdTAwRTEiCisgICAgICAgICk7CisgICAgICAgIEJ1dHRvbiBidXR0b24gPSBuZXcgQnV0dG9uKCJJbnNlcnQiKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGhleFZhbHVlID0gaGV4RGlhbG9nLmdldEFyZWEoKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgdGV4dC5pbnNlcnRUZXh0KGZyb21IZXgudHJhbnNsaXRlcmF0ZShoZXhWYWx1ZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgaGV4RGlhbG9nLmdldEJvdHRvbSgpLmFkZChidXR0b24pOworICAgICAgICAKKyAgICAgICAgaGVscE1lbnUuYWRkKG1pdGVtID0gbmV3IE1lbnVJdGVtKCJIZXguLi4iLCAKKyAgICAgICAgICAgIG5ldyBNZW51U2hvcnRjdXQoS2V5RXZlbnQuVktfSCkpKTsKKyAgICAgICAgbWl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBoZXhEaWFsb2cuc2hvdygpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIC8vIENvbXBvdW5kIFRyYW5zbGl0ZXJhdG9yCisgICAgICAgIAorICAgICAgICBjb21wb3VuZERpYWxvZyA9IG5ldyBJbmZvRGlhbG9nKHRoaXMsICJDb21wb3VuZCBUcmFuc2xpdGVyYXRvciIsICIiLAorICAgICAgICAgICAiW15cXHUwMDAwLVxcdTAwRkZdIGhleCIKKyAgICAgICAgKTsKKyAgICAgICAgYnV0dG9uID0gbmV3IEJ1dHRvbigiU2V0Iik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBjb21wb3VuZCA9ICIiOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kID0gY29tcG91bmREaWFsb2cuZ2V0QXJlYSgpLmdldFRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0VHJhbnNsaXRlcmF0b3IoY29tcG91bmQsIG51bGwpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgY29tcG91bmREaWFsb2cuZ2V0QXJlYSgpLnNldFRleHQoY29tcG91bmQgKyAiXG4iICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBjb21wb3VuZERpYWxvZy5nZXRCb3R0b20oKS5hZGQoYnV0dG9uKTsKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQobWl0ZW0gPSBuZXcgTWVudUl0ZW0oIk11bHRpcGxlLi4uIiwgCisgICAgICAgICAgICBuZXcgTWVudVNob3J0Y3V0KEtleUV2ZW50LlZLX00pKSk7CisgICAgICAgIG1pdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgY29tcG91bmREaWFsb2cuc2hvdygpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIC8vIFJ1bGVCYXNlZCBUcmFuc2xpdGVyYXRvcgorICAgICAgICAKKyAgICAgICAgcnVsZXNEaWFsb2cgPSBuZXcgSW5mb0RpYWxvZyh0aGlzLCAiUnVsZS1CYXNlZCBUcmFuc2xpdGVyYXRvciIsICIiLAorICAgICAgICAgICAiKFtBLVpdKSA+ICZIZXgoJDEpICZOYW1lKCQxKTtcclxuIiAKKyAgICAgICAgICAgICsgIiZIZXgtQW55KCQxKSA8ICgnXFwnIFt1VV0gW2EtZkEtRjAtOV0qKTtcclxuIiAKKyAgICAgICAgICAgICsgIiZOYW1lLUFueSgkMSkgPCAoJ3snIFteXFx9XSogJ30nKTsiCisgICAgICAgICk7CisgICAgICAgIGJ1dHRvbiA9IG5ldyBCdXR0b24oIlNldCIpOworICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY29tcG91bmQgPSAiIjsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBjb21wb3VuZCA9IHJ1bGVzRGlhbG9nLmdldEFyZWEoKS5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IHJ1bGVJZC5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIHNldFRyYW5zbGl0ZXJhdG9yKGNvbXBvdW5kLCBpZCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICBydWxlc0RpYWxvZy5nZXRBcmVhKCkuc2V0VGV4dChjb21wb3VuZCArICJcbiMiICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBydWxlc0RpYWxvZy5nZXRCb3R0b20oKS5hZGQoYnV0dG9uKTsKKyAgICAgICAgcnVsZUlkID0gbmV3IFRleHRGaWVsZCgidGVzdDEiLCAyMCk7CisgICAgICAgIExhYmVsIHRlbXAgPSBuZXcgTGFiZWwoIiBOYW1lOiIpOworICAgICAgICBydWxlc0RpYWxvZy5nZXRCb3R0b20oKS5hZGQodGVtcCk7CisgICAgICAgIHJ1bGVzRGlhbG9nLmdldEJvdHRvbSgpLmFkZChydWxlSWQpOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQobWl0ZW0gPSBuZXcgTWVudUl0ZW0oIkZyb20gUnVsZXMuLi4iLCAKKyAgICAgICAgICAgIG5ldyBNZW51U2hvcnRjdXQoS2V5RXZlbnQuVktfUikpKTsKKyAgICAgICAgbWl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBydWxlc0RpYWxvZy5zaG93KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGQobWl0ZW0gPSBuZXcgTWVudUl0ZW0oIkZyb20gRmlsZS4uLiIsIAorICAgICAgICAgICAgbmV3IE1lbnVTaG9ydGN1dChLZXlFdmVudC5WS19GKSkpOworICAgICAgICBtaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgRmlsZUxpc3RlbmVyKHRoaXMsIFJVTEVfRklMRSkpOworICAgICAgICAKKyAgICAgICAgdHJhbnNsaXRNZW51LmFkZChtaXRlbSA9IG5ldyBNZW51SXRlbSgiVGVzdCBGaWxlLi4uIikpOworICAgICAgICBtaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgRmlsZUxpc3RlbmVyKHRoaXMsIFRFU1RfRklMRSkpOworICAgICAgICAKKyAgICAgICAgLy8gRmxlc2ggb3V0IHRoZSBtZW51IHdpdGggdGhlIGluc3RhbGxlZCB0cmFuc2xpdGVyYXRvcnMKKyAgICAgICAgCisgICAgICAgIHRyYW5zbGl0TWVudS5hZGRTZXBhcmF0b3IoKTsKKyAgICAgICAgCisgICAgICAgIEl0ZXJhdG9yIHNvdXJjZXMgPSBhZGQobmV3IFRyZWVTZXQoKSwgVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlU291cmNlcygpKS5pdGVyYXRvcigpOworICAgICAgICB3aGlsZShzb3VyY2VzLmhhc05leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IChTdHJpbmcpIHNvdXJjZXMubmV4dCgpOworICAgICAgICAgICAgSXRlcmF0b3IgdGFyZ2V0cyA9IGFkZChuZXcgVHJlZVNldCgpLCBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVUYXJnZXRzKHNvdXJjZSkpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICBNZW51IHRhcmdldE1lbnUgPSBuZXcgTWVudShzb3VyY2UpOworICAgICAgICAgICAgd2hpbGUodGFyZ2V0cy5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gKFN0cmluZykgdGFyZ2V0cy5uZXh0KCk7CisgICAgICAgICAgICAgICAgU2V0IHZhcmlhbnRTZXQgPSBhZGQobmV3IFRyZWVTZXQoKSwgVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlVmFyaWFudHMoc291cmNlLCB0YXJnZXQpKTsKKyAgICAgICAgICAgICAgICBpZiAodmFyaWFudFNldC5zaXplKCkgPCAyKSB7CisgICAgICAgICAgICAgICAgICAgIG1pdGVtID0gbmV3IE1lbnVJdGVtKHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgIG1pdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBUcmFuc2xpdGVyYXRpb25MaXN0ZW5lcihzb3VyY2UgKyAiLSIgKyB0YXJnZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0TWVudS5hZGQobWl0ZW0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIHZhcmlhbnRzID0gdmFyaWFudFNldC5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICBNZW51IHZhcmlhbnRNZW51ID0gbmV3IE1lbnUodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUodmFyaWFudHMuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIHZhcmlhbnRzLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZW51TmFtZSA9IHZhcmlhbnQubGVuZ3RoKCkgPT0gMCA/ICI8ZGVmYXVsdD4iIDogdmFyaWFudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCI8IiArIHNvdXJjZSArICItIiArIHRhcmdldCArICIvIiArIHZhcmlhbnQgKyAiPiwgPCIgKyBtZW51TmFtZSArICI+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBtaXRlbSA9IG5ldyBNZW51SXRlbShtZW51TmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgVHJhbnNsaXRlcmF0aW9uTGlzdGVuZXIoc291cmNlICsgIi0iICsgdGFyZ2V0ICsgIi8iICsgdmFyaWFudCkpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudE1lbnUuYWRkKG1pdGVtKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0YXJnZXRNZW51LmFkZCh2YXJpYW50TWVudSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJhbnNsaXRNZW51LmFkZCh0YXJnZXRNZW51KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgUlVMRV9GSUxFID0gMCwgVEVTVF9GSUxFID0gMTsKKyAgICAvLworICAgIHN0YXRpYyBjbGFzcyBGaWxlTGlzdGVuZXIgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7CisgICAgICAgIERlbW8gZnJhbWU7CisgICAgICAgIGludCBjaG9pY2U7CisgICAgICAgIAorICAgICAgICBGaWxlTGlzdGVuZXIoRGVtbyBmcmFtZSwgaW50IGNob2ljZSkgeworICAgICAgICAgICAgdGhpcy5mcmFtZSA9IGZyYW1lOworICAgICAgICAgICAgdGhpcy5jaG9pY2UgPSBjaG9pY2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSBmcmFtZS50cmFuc2xpdC5nZXRJRCgpOworICAgICAgICAgICAgaW50IHNsYXNoUG9zID0gaWQuaW5kZXhPZignLycpOworICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgICAgIGlmIChzbGFzaFBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgdmFyaWFudCA9ICJfIiArIGlkLnN1YnN0cmluZyhzbGFzaFBvcysxKTsKKyAgICAgICAgICAgICAgICBpZCA9IGlkLnN1YnN0cmluZygwLCBzbGFzaFBvcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEZpbGVEaWFsb2cgZmlsZURpYWxvZyA9IG5ldyBGaWxlRGlhbG9nKGZyYW1lLCAiSW5wdXQgRmlsZSIpOworICAgICAgICAgICAgZmlsZURpYWxvZy5zZXRGaWxlKCJUZXN0XyIgKyBpZCArICIudHh0Iik7CisgICAgICAgICAgICBmaWxlRGlhbG9nLnNob3coKTsKKyAgICAgICAgICAgIFN0cmluZyBmaWxlTmFtZSA9IGZpbGVEaWFsb2cuZ2V0RmlsZSgpOworICAgICAgICAgICAgU3RyaW5nIGZpbGVEaXJlY3RvcnkgPSBmaWxlRGlhbG9nLmdldERpcmVjdG9yeSgpOworICAgICAgICAgICAgaWYgKGZpbGVOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZShmaWxlRGlyZWN0b3J5LCBmaWxlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaG9pY2UgPT0gUlVMRV9GSUxFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlYWQgc3R1ZmYgaW50byBidWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBmaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGYpOworICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpcywgIlVURjgiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGlzciwgMzIqMTAyNCk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lID0gYnIucmVhZExpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA+IDAgJiYgbGluZS5jaGFyQXQoMCkgPT0gJ1x1RkVGRicpIGxpbmUgPSBsaW5lLnN1YnN0cmluZygxKTsgLy8gc3RyaXAgQk9NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnXG4nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGxpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnIuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJhbnNmb3JtIGZpbGUgbmFtZSBpbnRvIGlkCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZU5hbWUuc3RhcnRzV2l0aCgiVHJhbnNsaXRlcmF0b3JfIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZSA9IGZpbGVOYW1lLnN1YnN0cmluZygiVHJhbnNsaXRlcmF0b3JfIi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zID0gZmlsZU5hbWUuaW5kZXhPZignXycpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9IGZpbGVOYW1lOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA9IGZpbGVOYW1lLnN1YnN0cmluZygwLCBwb3MpICsgIi0iOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwb3MyID0gZmlsZU5hbWUuaW5kZXhPZignXycsIHBvcysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zMiA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgKz0gZmlsZU5hbWUuc3Vic3RyaW5nKHBvcysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCArPSBmaWxlTmFtZS5zdWJzdHJpbmcocG9zKzEsIHBvczIpICsgIi8iICsgZmlsZU5hbWUuc3Vic3RyaW5nKHBvczIgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBpZC5sYXN0SW5kZXhPZignLicpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA+PSAwKSBpZCA9IGlkLnN1YnN0cmluZygwLCBwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3cgc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLnNldFRyYW5zbGl0ZXJhdG9yKGJ1ZmZlci50b1N0cmluZygpLCBpZCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hvaWNlID09IFRFU1RfRklMRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZ2VuVGVzdEZpbGUoZiwgZnJhbWUudHJhbnNsaXQsIHZhcmlhbnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgICAgIGUyLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlByb2JsZW0gb3BlbmluZy9yZWFkaW5nOiAiICsgZmlsZURpcmVjdG9yeSArICIsICIgKyBmaWxlTmFtZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZmlsZURpYWxvZy5kaXNwb3NlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisKKyAgICBib29sZWFuIHRyYW5zbGl0ZXJhdGVUeXBpbmcgPSB0cnVlOworICAgIFRyYW5zbGl0ZXJhdG9yIGZyb21IZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSGV4LUFueSIpOworICAgIEluZm9EaWFsb2cgaGVscERpYWxvZzsKKyAgICBJbmZvRGlhbG9nIGhleERpYWxvZzsKKyAgICBJbmZvRGlhbG9nIGNvbXBvdW5kRGlhbG9nOworICAgIEluZm9EaWFsb2cgcnVsZXNEaWFsb2c7CisgICAgVGV4dEZpZWxkIHJ1bGVJZDsKKyAgICBNZW51SXRlbSBjb252ZXJ0U2VsZWN0aW9uSXRlbSA9IG51bGw7CisgICAgTWVudUl0ZW0gc3dhcFNlbGVjdGlvbkl0ZW0gPSBudWxsOworICAgIE1lbnVJdGVtIGNvbnZlcnRUeXBpbmdJdGVtID0gbnVsbDsKKyAgICBNZW51IGhpc3RvcnlNZW51OworICAgIE1hcCBoaXN0b3J5TWFwID0gbmV3IEhhc2hNYXAoKTsKKyAgICBTZXQgaGlzdG9yeVNldCA9IG5ldyBUcmVlU2V0KG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgICAgIE1lbnVJdGVtIGFhID0gKE1lbnVJdGVtKWE7CisgICAgICAgICAgICAgICAgTWVudUl0ZW0gYmIgPSAoTWVudUl0ZW0pYjsKKyAgICAgICAgICAgICAgICByZXR1cm4gYWEuZ2V0TGFiZWwoKS5jb21wYXJlVG8oYmIuZ2V0TGFiZWwoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAvLyBBREQgRmFjdG9yeSBzaW5jZSBvdGhlcndpc2UgZ2V0SW52ZXJzZSBibG93cyBvdXQKKyAgICBzdGF0aWMgY2xhc3MgRHVtbXlGYWN0b3J5IGltcGxlbWVudHMgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSB7CisgICAgICAgIHN0YXRpYyBEdW1teUZhY3Rvcnkgc2luZ2xldG9uID0gbmV3IER1bW15RmFjdG9yeSgpOworICAgICAgICBzdGF0aWMgSGFzaE1hcCBtID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICAvLyBTaW5jZSBUcmFuc2xpdGVyYXRvcnMgYXJlIGltbXV0YWJsZSwgd2UgZG9uJ3QgaGF2ZSB0byBjbG9uZSBvbiBzZXQgJiBnZXQKKyAgICAgICAgc3RhdGljIHZvaWQgYWRkKFN0cmluZyBJRCwgVHJhbnNsaXRlcmF0b3IgdCkgeworICAgICAgICAgICAgbS5wdXQoSUQsIHQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSZWdpc3RlcmluZzogIiArIElEICsgIiwgIiArIHQudG9SdWxlcyh0cnVlKSk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoSUQsIHNpbmdsZXRvbik7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgcmV0dXJuIChUcmFuc2xpdGVyYXRvcikgbS5nZXQoSUQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHByaW50QnJlYWtzKGludCBudW0sIFN0cmluZyB0ZXN0U291cmNlLCBCcmVha0l0ZXJhdG9yIGJpKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAiIjsKKyAgICAgICAgaW50IGxhc3RQb3MgPSAwOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IHBvcyA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChwb3MgPT0gQnJlYWtJdGVyYXRvci5ET05FKSBicmVhazsKKyAgICAgICAgICAgIHJlc3VsdCArPSB0ZXN0U291cmNlLnN1YnN0cmluZyhsYXN0UG9zLCBwb3MpICsgIiYiOworICAgICAgICAgICAgbGFzdFBvcyA9IHBvczsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwb3MpOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdCIgKyBudW0gKyAiOiAiICsgcmVzdWx0KTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgcHJpbnRJdGVyYXRpb24oaW50IG51bSwgU3RyaW5nIHRlc3RTb3VyY2UsIENoYXJhY3Rlckl0ZXJhdG9yIGNpKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAiIjsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBjaS5uZXh0KCk7CisgICAgICAgICAgICBpZiAoY2ggPT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgYnJlYWs7CisgICAgICAgICAgICByZXN1bHQgKz0gY2ggKyAiKCIgKyBjaS5nZXRJbmRleCgpICsgIikiOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdCIgKyBudW0gKyAiOiAiICsgcmVzdWx0KTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgcHJpbnRTb3VyY2VzKCkgeworICAgICAgICBTdHJpbmdbXSBsaXN0ID0geyJMYXRpbi1UaGFpTG9naWNhbCIsICJUaGFpTG9naWNhbC1MYXRpbiIsICJUaGFpLVRoYWlMb2dpY2FsIiwgIlRoYWlMb2dpY2FsLVRoYWkifTsKKyAgICAgICAgVW5pY29kZVNldCBhbGwgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRyID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UobGlzdFtpXSk7CisgICAgICAgICAgICBVbmljb2RlU2V0IHNyYyA9IHRyLmdldFNvdXJjZVNldCgpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGxpc3RbaV0gKyAiOiAiICsgc3JjLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgICAgICBhbGwuYWRkQWxsKHNyYyk7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJBbGw6ICIgKyBhbGwudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgVW5pY29kZVNldCByZW0gPSBuZXcgVW5pY29kZVNldCgiW1s6bGF0aW46XVs6dGhhaTpdXSIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm1pc3NpbmcgZnJvbSBbOmxhdGluOl1bOnRoYWk6XTogIiArIGFsbC5yZW1vdmVBbGwocmVtKS50b1BhdHRlcm4odHJ1ZSkpOworICAgIH0KKyAgICAKKyAgICAvLyAyMDBFO0xFRlQtVE8tUklHSFQgTUFSSztDZjswO0w7Ozs7O047Ozs7OworCisgICAgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIHRpdGxlID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoInRpdGxlIik7CisgICAgc3RhdGljIFN0cmluZyBoZXhBbmROYW1lUnVsZXMgPSAiICAgIChbOmM6XSkgPiBcXHUyMDBFICZoZXgvdW5pY29kZSgkMSkgJyAoICkgJyAmbmFtZSgkMSkgXFx1MjAwRSAnICc7IgorICAgICAgICArICIoWzptYXJrOl0pID4gXFx1MjAwRSAmaGV4L3VuaWNvZGUoJDEpICcgKCAnIFxcdTIwMEUgXHUyNUNDICQxIFxcdTIwMEUgJyApICcgJm5hbWUoJDEpIFxcdTIwMEUgJyAnOyIKKyAgICAgICAgKyAiKC4pID4gXFx1MjAwRSAmaGV4L3VuaWNvZGUoJDEpICcgKCAnIFxcdTIwMEUgJDEgXFx1MjAwRSAnICkgJyAmbmFtZSgkMSkgJyAnIFxcdTIwMEU7IjsKKworICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciBoZXhBbmROYW1lID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJhbnktaGV4QW5kTmFtZSIsIAorICAgICAgICBoZXhBbmROYW1lUnVsZXMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgIAorCisKKyAgICAvL3N0YXRpYyBUcmFuc2xpdGVyYXRvciB1cHBlciA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJ1cHBlciIpOworICAgICAKKyAgICBzdGF0aWMgZmluYWwgYnl0ZSBOT05FID0gMCwgVElUTEVXT1JEID0gMSwgVElUTEVMSU5FID0gMjsKKyAgICAKKyAgICBzdGF0aWMgdm9pZCBnZW5UZXN0RmlsZShGaWxlIHNvdXJjZUZpbGUsIFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0LCBTdHJpbmcgdmFyaWFudCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJlYWRpbmc6ICIgKyBzb3VyY2VGaWxlLmdldENhbm9uaWNhbFBhdGgoKSk7CisgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBpbiA9IG5ldyBCdWZmZXJlZFJlYWRlcigKKyAgICAgICAgICAgICAgICBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoCisgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlSW5wdXRTdHJlYW0oc291cmNlRmlsZSksICJVVEYtOCIpKTsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXRGaWxlID0gc291cmNlRmlsZS5nZXRDYW5vbmljYWxQYXRoKCk7CisgICAgICAgICAgICBpbnQgZG90UG9zID0gdGFyZ2V0RmlsZS5sYXN0SW5kZXhPZignLicpOworICAgICAgICAgICAgaWYgKGRvdFBvcyA+PSAwKSB0YXJnZXRGaWxlID0gdGFyZ2V0RmlsZS5zdWJzdHJpbmcoMCxkb3RQb3MpOworICAgICAgICAgICAgdGFyZ2V0RmlsZSArPSB2YXJpYW50OworICAgICAgICAgICAgCisgICAgICAgICAgICBGaWxlIG91dEZpbGUgPSBuZXcgRmlsZSh0YXJnZXRGaWxlICsgIi5odG1sIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmc6ICIgKyBvdXRGaWxlLmdldENhbm9uaWNhbFBhdGgoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFByaW50V3JpdGVyIG91dCA9IG5ldyBQcmludFdyaXRlcigKKyAgICAgICAgICAgICAgICBuZXcgQnVmZmVyZWRXcml0ZXIoCisgICAgICAgICAgICAgICAgICAgIG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRGaWxlKSwgIlVURi04IikpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIGRpcmVjdGlvbiA9ICIiOworICAgICAgICAgICAgU3RyaW5nIGlkID0gdHJhbnNsaXQuZ2V0SUQoKTsKKyAgICAgICAgICAgIGlmIChpZC5pbmRleE9mKCJBcmFiaWMiKSA+PSAwIHx8IGlkLmluZGV4T2YoIkhlYnJldyIpID49IDApIHsKKyAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAiIGRpcmVjdGlvbjogcnRsOyI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib29sZWFuIHRlc3RSb3VuZFRyaXAgPSB0cnVlOworICAgICAgICAgICAgYm9vbGVhbiBnZW5lcmF0ZVNldHMgPSB0cnVlOworICAgICAgICAgICAgaWYgKGlkLnN0YXJ0c1dpdGgoIkhhbi0iKSB8fCBpZC5zdGFydHNXaXRoKCJqYS0iKSkgeworICAgICAgICAgICAgICAgIHRlc3RSb3VuZFRyaXAgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBnZW5lcmF0ZVNldHMgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8aGVhZD48bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCc+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPHN0eWxlPjwhLS0iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJ0ZCwgdGggICAgICAgeyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyBib3JkZXI6IDFweCBzb2xpZCBibGFjayB9Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigidGQucyAgICAgICB7IGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7IiArIGRpcmVjdGlvbiArICIgfSIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oInRkLnIgICAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0NDQ0NDOyIgKyBkaXJlY3Rpb24gKyAiIH0iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJ0ZC5uICAgICAgIHsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzsgfSIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oInRkLnRpdGxlICAgICAgIHsgYm9yZGVyOiAwcHggc29saWQgYmxhY2t9Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigic3Bhbi5kICAgICAgIHsgYmFja2dyb3VuZC1jb2xvcjogI0ZGNjY2NiB9Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigic3Bhbi5yICAgICAgIHsgYmFja2dyb3VuZC1jb2xvcjogIzY2RkY2NiB9Iik7CisKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJib2R5ICAgICAgICAgeyBmb250LWZhbWlseTogJ0FyaWFsIFVuaWNvZGUgTVMnLCAnTHVjaWRhIFNhbnMgVW5pY29kZScsIEFyaWFsLCBzYW5zLXNlcmlmOyBtYXJnaW46IDUgfSIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIi0tPjwvc3R5bGU+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPHRpdGxlPiIgKyBpZCArICIgVHJhbnNsaXRlcmF0aW9uIENoZWNrPC90aXRsZT48L2hlYWQ+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGJvZHkgYmdjb2xvcj0nI0ZGRkZGRic+PHA+U2VlIDxhIGhyZWY9J1Rlc3RfSW5zdHJ1Y3Rpb25zLmh0bWwnPlRlc3RfSW5zdHJ1Y3Rpb25zLmh0bWw8L2E+IGZvciBkZXRhaWxzLjwvcD4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8dGFibGU+Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vb3V0LnByaW50bG4oIjx0cj48dGggd2lkdGg9JzMzJSc+VGhhaTwvdGg+PHRoIHdpZHRoPSczMyUnPkxhdGluPC90aD48dGggd2lkdGg9JzMzJSc+VGhhaTwvdGg+PC90cj4iKTsKKyAgCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0bCA9IHRyYW5zbGl0OworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgbHQgPSB0bC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGx0RmlsdGVyID0gdGwuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgbHRGaWx0ZXIuc2V0RmlsdGVyKG5ldyBVbmljb2RlU2V0KCJbOl5MdTpdIikpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdGxGaWx0ZXIgPSBsdC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICB0bEZpbHRlci5zZXRGaWx0ZXIobmV3IFVuaWNvZGVTZXQoIls6Xkx1Ol0iKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIls6Xkx1Ol0iICsgIGx0LmdldElEKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIHNlbnRlbmNlQnJlYWsgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYnl0ZSB0aXRsZVNldHRpbmcgPSBUSVRMRUxJTkU7CisgICAgICAgICAgICBib29sZWFuIHVwcGVyZmlsdGVyID0gZmFsc2U7CisgICAgICAgICAgICBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSBpbi5yZWFkTGluZSgpOworICAgICAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnRyaW0oKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAobGluZS5jaGFyQXQoMCkgPT0gJ1x1RkVGRicpIGxpbmUgPSBsaW5lLnN1YnN0cmluZygxKTsgLy8gcmVtb3ZlIEJPTQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChsaW5lLmNoYXJBdCgwKSA9PSAnIycpIGNvbnRpbnVlOyAvLyBjb21tZW50cworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChsaW5lLmVxdWFscygiQFRJVExFQ0FTRUAiKSkgeworICAgICAgICAgICAgICAgICAgICB0aXRsZVNldHRpbmcgPSBUSVRMRVdPUkQ7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8dHI+PHRkIGNvbHNwYW49JzInIGNsYXNzPSd0aXRsZSc+PGI+TmFtZXM8L2I+PC90ZD48L3RyPiIpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxpbmUuZXF1YWxzKCJAVVBQRVJGSUxURVJAIikpIHsKKyAgICAgICAgICAgICAgICAgICAgdXBwZXJmaWx0ZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxpbmUuc3RhcnRzV2l0aCgiQFNFVCIpKSB7CisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgcyA9IG5ldyBVbmljb2RlU2V0KGxpbmUuc3Vic3RyaW5nKDQpLnRyaW0oKSk7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8dHI+PHRkIGNvbHNwYW49JzInIGNsYXNzPSd0aXRsZSc+PGI+Q2hhcmFjdGVyczwvYj48L3RkPjwvdHI+Iik7CisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Iocyk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZFNlbnRlbmNlVG9UYWJsZShvdXQsIGl0LmNvZGVwb2ludCAhPSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gVVRGMTYudmFsdWVPZihpdC5jb2RlcG9pbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpdC5zdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTk9ORSwgdHJ1ZSwgdGVzdFJvdW5kVHJpcCwgZmlyc3QsIHRsLCBsdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc2VudGVuY2VCcmVhay5zZXRUZXh0KGxpbmUpOworICAgICAgICAgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVuZCA9IHNlbnRlbmNlQnJlYWsubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoZW5kID09IEJyZWFrSXRlcmF0b3IuRE9ORSkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjb3JlU2VudGVuY2UgPSBsaW5lLnN1YnN0cmluZyhzdGFydCwgZW5kKTsKKyAgICAgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkNvcmU6ICIgKyBoZXgudHJhbnNsaXRlcmF0ZShjb3JlU2VudGVuY2UpKTsKKyAgICAgICAgICAgICAgICAgICAgZW5kID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpbnQgb2xkUG9zID0gMDsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG9sZFBvcyA8IGNvcmVTZW50ZW5jZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFjaywgYmVjYXVzZSBzZW50ZW5jZSBkb2Vzbid0IHNlZW0gdG8gYmUgd29ya2luZyByaWdodAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IGNvcmVTZW50ZW5jZS5pbmRleE9mKCIuICIsIG9sZFBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zIDwgMCkgcG9zID0gY29yZVNlbnRlbmNlLmxlbmd0aCgpOyBlbHNlIHBvcyA9IHBvcysyOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvczIgPSBjb3JlU2VudGVuY2UuaW5kZXhPZignXHUzMDAyJywgb2xkUG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MyIDwgMCkgcG9zMiA9IGNvcmVTZW50ZW5jZS5sZW5ndGgoKTsgZWxzZSBwb3MyID0gcG9zMiArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zID4gcG9zMikgcG9zID0gcG9zMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzZW50ZW5jZSA9IGNvcmVTZW50ZW5jZS5zdWJzdHJpbmcob2xkUG9zLCBwb3MpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJTZW50ZW5jZTogIiArIGhleC50cmFuc2xpdGVyYXRlKGNvcmVTZW50ZW5jZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgb2xkUG9zID0gcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBhZGRTZW50ZW5jZVRvVGFibGUob3V0LCBzZW50ZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZVNldHRpbmcsIGZhbHNlLCB0ZXN0Um91bmRUcmlwLCBmaXJzdCwgdGwsIGx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8L3RhYmxlPjwvYm9keT4iKTsKKyAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBOb3cgd3JpdGUgdGhlIHNvdXJjZS90YXJnZXQgc2V0cworICAgICAgICAgICAgaWYgKGdlbmVyYXRlU2V0cykgeworICAgICAgICAgICAgICAgIG91dEZpbGUgPSBuZXcgRmlsZSh0YXJnZXRGaWxlICsgIl9TZXRzLmh0bWwiKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmc6ICIgKyBvdXRGaWxlLmdldENhbm9uaWNhbFBhdGgoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0ID0gbmV3IFByaW50V3JpdGVyKAorICAgICAgICAgICAgICAgICAgICBuZXcgQnVmZmVyZWRXcml0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dEZpbGUpLCAiVVRGLTgiKSkpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8aGVhZD48bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCc+Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxzdHlsZT48IS0tIik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImJvZHkgICAgICAgICB7IGZvbnQtZmFtaWx5OiAnQXJpYWwgVW5pY29kZSBNUycsICdMdWNpZGEgU2FucyBVbmljb2RlJywgQXJpYWwsIHNhbnMtc2VyaWY7IG1hcmdpbjogNSB9Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIi0tPjwvc3R5bGU+Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjx0aXRsZT4iICsgaWQgKyAiIFRyYW5zbGl0ZXJhdGlvbiBTZXRzPC90aXRsZT48L2hlYWQ+Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxib2R5IGJnY29sb3I9JyNGRkZGRkYnPiIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCBkYXNoUG9zID0gaWQuaW5kZXhPZignLScpOworICAgICAgICAgICAgICAgIGludCBzbGFzaFBvcyA9IGlkLmluZGV4T2YoJy8nKTsKKyAgICAgICAgICAgICAgICBpZiAoc2xhc2hQb3MgPCAwKSBzbGFzaFBvcyA9IGlkLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgc291cmNlU3VwZXIgPSBudWxsOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gaWQuc3Vic3RyaW5nKDAsZGFzaFBvcyk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wLmVxdWFscygiamEiKSkgc291cmNlU3VwZXIgPSBuZXcgVW5pY29kZVNldCgiW1s6SGFuOl1bOmhpcmFnYW5hOl1bOmthdGFrYW5hOl1dIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2Ugc291cmNlU3VwZXIgPSBuZXcgVW5pY29kZVNldCgiW1s6IiArIHRlbXAgKyAiOl1bOk1uOl1bOk1lOl1dIik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVW5pY29kZVNldCB0YXJnZXRTdXBlciA9IG51bGw7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U3VwZXIgPSBuZXcgVW5pY29kZVNldCgiW1s6IiArIGlkLnN1YnN0cmluZyhkYXNoUG9zKzEsIHNsYXNoUG9zKSArICI6XVs6TW46XVs6TWU6XV0iKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgbmZkU3R5bGUgPSBDTE9TRV9DQVNFIHwgQ0xPU0VfRkxBVFRFTiB8IENMT1NFX0NBTk9OSUNBTDsKKyAgICAgICAgICAgICAgICBpbnQgbmZrZFN0eWxlID0gbmZkU3R5bGUgfCBDTE9TRV9DT01QQVRJQklMSVRZOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8dWw+Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxwPjxiPk5vbmU8L2I+PC9wPiIpOworICAgICAgICAgICAgICAgIHNob3dTZXRzKG91dCwgdHJhbnNsaXQsIGx0LCBudWxsLCBudWxsLCAwKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPHA+PGI+TkZEPC9iPjwvcD4iKTsKKyAgICAgICAgICAgICAgICBzaG93U2V0cyhvdXQsIHRyYW5zbGl0LCBsdCwgc291cmNlU3VwZXIsIHRhcmdldFN1cGVyLCBuZmRTdHlsZSk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxwPjxiPk5GS0Q8L2I+PC9wPiIpOworICAgICAgICAgICAgICAgIHNob3dTZXRzKG91dCwgdHJhbnNsaXQsIGx0LCBzb3VyY2VTdXBlciwgdGFyZ2V0U3VwZXIsIG5ma2RTdHlsZSk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjwvdWw+PC9ib2R5PiIpOworICAgICAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEb25lIFdyaXRpbmciKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgYWRkU2VudGVuY2VUb1RhYmxlKFByaW50V3JpdGVyIG91dCwgU3RyaW5nIHNlbnRlbmNlLCAKKyAgICAgICAgICAgIGJ5dGUgdGl0bGVTZXR0aW5nLCBib29sZWFuIGFkZE5hbWUsIGJvb2xlYW4gdGVzdFJvdW5kVHJpcCwgYm9vbGVhbiBmaXJzdCwKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRsLCBUcmFuc2xpdGVyYXRvciBsdCkgeworICAgICAgICBpZiAoc2VudGVuY2UubGVuZ3RoKCkgPT0gMCkgcmV0dXJuOyAvLyBza2lwIGVtcHR5IGxpbmVzCisgICAgICAgIAorICAgICAgICBTdHJpbmcgb3JpZ2luYWxTaG93ID0gc2VudGVuY2U7CisgICAgICAgIFN0cmluZyBsYXRpbjsKKyAgICAgICAgbGF0aW4gPSB0bC50cmFuc2xpdGVyYXRlKHNhdmVBc2NpaS50cmFuc2xpdGVyYXRlKHNlbnRlbmNlKSk7CisKKyAgICAgICAgU3RyaW5nIGxhdGluU2hvdyA9IGxhdGluOworICAgICAgICBpZiAodGl0bGVTZXR0aW5nID09IFRJVExFV09SRCkgeworICAgICAgICAgICAgbGF0aW5TaG93ID0gdGl0bGUudHJhbnNsaXRlcmF0ZShsYXRpbik7CisgICAgICAgIH0gZWxzZSBpZiAodGl0bGVTZXR0aW5nID09IFRJVExFTElORSkgeworICAgICAgICAgICAgbGF0aW5TaG93ID0gdGl0bGVjYXNlRmlyc3RXb3JkKGxhdGluU2hvdyk7CisgICAgICAgIH0KKyAgICAgICAgbGF0aW5TaG93ID0gcmVzdG9yZUFzY2lpLnRyYW5zbGl0ZXJhdGUobGF0aW5TaG93KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBTdHJpbmcgcmV2ZXJzZTsKKyAgICAgICAgcmV2ZXJzZSA9IHJlc3RvcmVBc2NpaS50cmFuc2xpdGVyYXRlKGx0LnRyYW5zbGl0ZXJhdGUobGF0aW4pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBTdHJpbmcgTkZLRFNlbnRlbmNlID0gTm9ybWFsaXplci5ub3JtYWxpemUoc2VudGVuY2UsIE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgIFN0cmluZyBORktETGF0aW4gPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShsYXRpbiwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgU3RyaW5nIE5GS0RSZXZlcnNlID0gTm9ybWFsaXplci5ub3JtYWxpemUocmV2ZXJzZSwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgCisgICAgICAgIGlmIChsYXRpblNob3cubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgbGF0aW5TaG93ID0gIjxpPmVtcHR5PC9pPiI7CisgICAgICAgIH0gZWxzZSBpZiAoTkZLRFNlbnRlbmNlLmVxdWFscyhORktETGF0aW4pKSB7CisgICAgICAgICAgICBsYXRpblNob3cgPSAiPHNwYW4gY2xhc3M9J3InPiIgKyBsYXRpblNob3cgKyAiPC9zcGFuPiI7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHJldmVyc2VTaG93ID0gcmV2ZXJzZTsKKyAgICAgICAgCisgICAgICAgIGlmICh0ZXN0Um91bmRUcmlwICYmICFORktEUmV2ZXJzZS5lcXVhbHMoTkZLRFNlbnRlbmNlKSkgeworICAgICAgICAgICAgaW50IG1pbkxlbiA9IHJldmVyc2UubGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAobWluTGVuID4gc2VudGVuY2UubGVuZ3RoKCkpIG1pbkxlbiA9IHNlbnRlbmNlLmxlbmd0aCgpOworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbWluTGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAocmV2ZXJzZS5jaGFyQXQoaSkgIT0gc2VudGVuY2UuY2hhckF0KGkpKSBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vb3JpZ2luYWxTaG93ID0gc2VudGVuY2Uuc3Vic3RyaW5nKDAsaSkgKyAiPHNwYW4gY2xhc3M9J2QnPiIgKyBzZW50ZW5jZS5zdWJzdHJpbmcoaSkgKyAiPC9zcGFuPiI7CisgICAgICAgICAgICByZXZlcnNlU2hvdyA9IHJldmVyc2VTaG93Lmxlbmd0aCgpID09IDAgCisgICAgICAgICAgICAgICAgPyAiPGk+ZW1wdHk8L2k+IiAKKyAgICAgICAgICAgICAgICAvLzogcmV2ZXJzZS5zdWJzdHJpbmcoMCxpKSArICI8c3BhbiBjbGFzcz0nZCc+IiArIHJldmVyc2Uuc3Vic3RyaW5nKGkpICsgIjwvc3Bhbj4iOworICAgICAgICAgICAgICAgIDogc2hvd0RpZmZlcmVuY2Uoc2VudGVuY2UsIHJldmVyc2UpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjx0cj48dGQgY2xhc3M9J3MnIiArIChmaXJzdCA/ICIgd2lkdGg9JzUwJSc+IiA6ICI+IikgKyBvcmlnaW5hbFNob3cgCisgICAgICAgICAgICAgICAgKyAiPC90ZD48dGQgcm93U3Bhbj0nMic+IiArIGxhdGluU2hvdworICAgICAgICAgICAgICAgICsgIjwvdGQ+PC90cj48dHI+PHRkIGNsYXNzPSdyJz4iICsgcmV2ZXJzZVNob3cKKyAgICAgICAgICAgICAgICArICI8L3RkPjwvdHI+Iik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPHRyPjx0ZCBjbGFzcz0ncyciICsgKGZpcnN0ID8gIiB3aWR0aD0nNTAlJz4iIDogIj4iKSArIG9yaWdpbmFsU2hvdyAKKyAgICAgICAgICAgICAgICArICI8L3RkPjx0ZD4iICsgbGF0aW5TaG93CisgICAgICAgICAgICAgICAgKyAiPC90ZD48L3RyPiIpOworICAgICAgICB9CisgICAgICAgIGlmIChhZGROYW1lKSB7CisgICAgICAgICAgICBsYXRpblNob3cgPSBoZXhBbmROYW1lLnRyYW5zbGl0ZXJhdGUobGF0aW4pOworICAgICAgICAgICAgaWYgKGxhdGluU2hvdy5sZW5ndGgoKSA9PSAwKSBsYXRpblNob3cgPSAiPGk+ZW1wdHk8L2k+IjsKKyAgICAgICAgICAgIG9yaWdpbmFsU2hvdyA9IGhleEFuZE5hbWUudHJhbnNsaXRlcmF0ZShzZW50ZW5jZSk7CisgICAgICAgICAgICBpZiAob3JpZ2luYWxTaG93Lmxlbmd0aCgpID09IDApIG9yaWdpbmFsU2hvdyA9ICI8aT5lbXB0eTwvaT4iOworCisgICAgICAgICAgICBvdXQucHJpbnRsbigiPHRyPjx0ZCBjbGFzcz0nbic+IiArIG9yaWdpbmFsU2hvdworICAgICAgICAgICAgICAgICsgIjwvdGQ+PHRkIGNsYXNzPSduJz4iICsgbGF0aW5TaG93CisgICAgICAgICAgICAgICAgKyAiPC90ZD48L3RyPiIpOworICAgICAgICB9CisgICAgICAgIG91dC5wcmludGxuKCI8dHI+PHRkPjwvdGQ+PC90cj4iKTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHN0YXRpYyBTdHJpbmcgc2hvd0RpZmZlcmVuY2UoU3RyaW5nIGFzLCBTdHJpbmcgYnMpIHsKKyAgICAgICAgRGlmZmVyIGRpZmZlciA9IG5ldyBEaWZmZXIoMzAwLCAzKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IG1heCA9IGFzLmxlbmd0aCgpOworICAgICAgICBpZiAobWF4IDwgYnMubGVuZ3RoKCkpIG1heCA9IGJzLmxlbmd0aCgpOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8PSBtYXg7ICsraikgeworICAgICAgICAgICAgaWYgKGogPCBhcy5sZW5ndGgoKSkgZGlmZmVyLmFkZEEoYXMuc3Vic3RyaW5nKGosIGorMSkpOworICAgICAgICAgICAgaWYgKGogPCBicy5sZW5ndGgoKSkgZGlmZmVyLmFkZEIoYnMuc3Vic3RyaW5nKGosIGorMSkpOworICAgICAgICAgICAgZGlmZmVyLmNoZWNrTWF0Y2goaiA9PSBtYXgpOworCisgICAgICAgICAgICBpZiAoZGlmZmVyLmdldEFDb3VudCgpICE9IDAgfHwgZGlmZmVyLmdldEJDb3VudCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCIuLi4iKTsKKyAgICAgICAgICAgICAgICBpZiAoZGlmZmVyLmdldEFDb3VudCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiPHNwYW4gY2xhc3M9J3InPiIpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRpZmZlci5nZXRBQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGRpZmZlci5nZXRBKGkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCI8L3NwYW4+Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChkaWZmZXIuZ2V0QkNvdW50KCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCI8c3BhbiBjbGFzcz0nZCc+Iik7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGlmZmVyLmdldEJDb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoZGlmZmVyLmdldEIoaSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoIjwvc3Bhbj4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiLi4uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG91dC50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCBzaG93U2V0cyhQcmludFdyaXRlciBvdXQsIFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0LCBUcmFuc2xpdGVyYXRvciBpbnZlcnNlLAorICAgICAgVW5pY29kZVNldCBzb3VyY2VTdXBlciwgVW5pY29kZVNldCB0YXJnZXRTdXBlciwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgb3V0LnByaW50bG4oIjxsaT5Tb3VyY2UgU2V0Ojx1bD48bGk+IiArICAgICAgICAgdG9QYXR0ZXJuKGNsb3NlVW5pY29kZVNldCh0cmFuc2xpdC5nZXRTb3VyY2VTZXQoKSwgb3B0aW9ucyksIHNvdXJjZVN1cGVyKSArICI8L2xpPjwvdWw+PC9saT4iKTsKKyAgICAgICAgb3V0LnByaW50bG4oIjxsaT5SZXZlcnNlIFRhcmdldCBTZXQ6PHVsPjxsaT4iICsgdG9QYXR0ZXJuKGNsb3NlVW5pY29kZVNldChpbnZlcnNlLmdldFRhcmdldFNldCgpLCAgb3B0aW9ucyksIHNvdXJjZVN1cGVyKSArICI8L2xpPjwvdWw+PC9saT4iKTsKKyAgICAgICAgb3V0LnByaW50bG4oIjxsaT5UYXJnZXQgU2V0Ojx1bD48bGk+IiArICAgICAgICAgdG9QYXR0ZXJuKGNsb3NlVW5pY29kZVNldCh0cmFuc2xpdC5nZXRUYXJnZXRTZXQoKSwgb3B0aW9ucyksIHRhcmdldFN1cGVyKSArICI8L2xpPjwvdWw+PC9saT4iKTsKKyAgICAgICAgb3V0LnByaW50bG4oIjxsaT5SZXZlcnNlIFNvdXJjZSBTZXQ6PHVsPjxsaT4iICsgdG9QYXR0ZXJuKGNsb3NlVW5pY29kZVNldChpbnZlcnNlLmdldFNvdXJjZVNldCgpLCAgb3B0aW9ucyksIHRhcmdldFN1cGVyKSArICI8L2xpPjwvdWw+PC9saT4iKTsKKyAgICB9CisgICAgICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0xPU0VfQ0FTRSA9IDEsIENMT1NFX0ZMQVRURU4gPSAyLCBDTE9TRV9DQU5PTklDQUwgPSA0LCBDTE9TRV9DT01QQVRJQklMSVRZID0gODsKKyAgICAKKyAgICBzdGF0aWMgVW5pY29kZVNldCBjbG9zZVVuaWNvZGVTZXQoVW5pY29kZVNldCBzb3VyY2UsIGludCBvcHRpb25zKSB7CisgICAgICAgIGlmIChvcHRpb25zID09IDApIHJldHVybiBzb3VyY2U7CisgICAgICAgIAorICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIFVuaWNvZGVTZXQgYWRkaXRpb25zID0gbmV3IFVuaWNvZGVTZXQoKTsgLy8gdG8gYXZvaWQgbWVzc2luZyB1cCBpdGVyYXRvcgorICAgICAgICBVbmljb2RlU2V0IHJlbW92YWxzID0gbmV3IFVuaWNvZGVTZXQoKTsgLy8gdG8gYXZvaWQgbWVzc2luZyB1cCBpdGVyYXRvcgorICAgICAgICBTdHJpbmcgYmFzZTsKKyAgICAgICAgaW50IGNwOworICAgICAgICAKKyAgICAgICAgLy8gQWRkIGFsbCBjYXNlIGVxdWl2YWxlbnRzCisgICAgICAgIGlmICgob3B0aW9ucyAmIENMT1NFX0NBU0UpICE9IDApIHsKKyAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBjcCA9IGl0LmNvZGVwb2ludDsKKyAgICAgICAgICAgICAgICBpZiAoY3AgPT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgY29udGludWU7CisgICAgICAgICAgICAgICAgaW50IHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY3ApOworICAgICAgICAgICAgICAgIGlmICh0eXBlID09IENoYXJhY3Rlci5VUFBFUkNBU0VfTEVUVEVSIHx8IHR5cGUgPT0gQ2hhcmFjdGVyLkxPV0VSQ0FTRV9MRVRURVIgfHwgdHlwZSA9PSBDaGFyYWN0ZXIuVElUTEVDQVNFX0xFVFRFUikgeworICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbnMuYWRkKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoVVRGMTYudmFsdWVPZihjcCkpKTsKKyAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25zLmFkZChVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFVURjE2LnZhbHVlT2YoY3ApKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlLmFkZEFsbChhZGRpdGlvbnMpOworICAgICAgICB9CisgICAgICAgCisgICAgICAgIC8vIEFkZCB0aGUgY2Fub25pY2FsIGNsb3N1cmUgb2YgYWxsIHN0cmluZ3MgYW5kIGNoYXJhY3RlcnMgaW4gc291cmNlCisgICAgICAgIGlmICgob3B0aW9ucyAmIENMT1NFX0NBTk9OSUNBTCkgIT0gMCkgeworICAgICAgICAgICAgaXQucmVzZXQoKTsKKyAgICAgICAgICAgIGFkZGl0aW9ucy5jbGVhcigpOworICAgICAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IgY2kgPSBuZXcgQ2Fub25pY2FsSXRlcmF0b3IoIi4iKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXQuY29kZXBvaW50ID09IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIGJhc2UgPSBpdC5zdHJpbmc7CisgICAgICAgICAgICAgICAgZWxzZSBiYXNlID0gVVRGMTYudmFsdWVPZihpdC5jb2RlcG9pbnQpOworICAgICAgICAgICAgICAgIGNpLnNldFNvdXJjZShiYXNlKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdHJpYWwgPSBjaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0cmlhbCA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRyaWFsLmVxdWFscyhiYXNlKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9ucy5hZGQodHJpYWwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNvdXJjZS5hZGRBbGwoYWRkaXRpb25zKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZsYXR0ZW4gc3RyaW5ncworICAgICAgICBpZiAoKG9wdGlvbnMgJiBDTE9TRV9GTEFUVEVOKSAhPSAwKSB7CisgICAgICAgICAgICBpdC5yZXNldCgpOworICAgICAgICAgICAgYWRkaXRpb25zLmNsZWFyKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGl0LmNvZGVwb2ludCAhPSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBhZGRpdGlvbnMuYWRkQWxsKGl0LnN0cmluZyk7CisgICAgICAgICAgICAgICAgcmVtb3ZhbHMuYWRkKGl0LnN0cmluZyk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImZsYXR0ZW5pbmcgJyIgKyBoZXgudHJhbnNsaXRlcmF0ZShpdC5zdHJpbmcpICsgIiciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNvdXJjZS5hZGRBbGwoYWRkaXRpb25zKTsKKyAgICAgICAgICAgIHNvdXJjZS5yZW1vdmVBbGwocmVtb3ZhbHMpOworICAgICAgICB9CisgICAgICAgCisgICAgICAgIC8vIE5vdyBhZGQgZGVjb21wb3NpdGlvbnMgb2YgY2hhcmFjdGVycyBpbiBzb3VyY2UKKyAgICAgICAgaWYgKChvcHRpb25zICYgQ0xPU0VfQ09NUEFUSUJJTElUWSkgIT0gMCkgeworICAgICAgICAgICAgaXQucmVzZXQoc291cmNlKTsKKyAgICAgICAgICAgIGFkZGl0aW9ucy5jbGVhcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChpdC5jb2RlcG9pbnQgPT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgYmFzZSA9IGl0LnN0cmluZzsKKyAgICAgICAgICAgICAgICBlbHNlIGJhc2UgPSBVVEYxNi52YWx1ZU9mKGl0LmNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGJhc2UsIE5vcm1hbGl6ZXIuTkZLRCwwKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGJhc2UsIE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgICAgICAgICAgYWRkaXRpb25zLmFkZChkZWNvbXApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlLmFkZEFsbChhZGRpdGlvbnMpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBOb3cgYWRkIGFueSBvdGhlciBjaGFyYWN0ZXIgdGhhdCBkZWNvbXBvc2VzIHRvIGEgY2hhcmFjdGVyIGluIHNvdXJjZQorICAgICAgICAgICAgZm9yIChjcCA9IDA7IGNwIDwgMHgxMEZGRkY7ICsrY3ApIHsKKyAgICAgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNEZWZpbmVkKGNwKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKGNwLCBOb3JtYWxpemVyLk5GS0QsMCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuY29udGFpbnMoY3ApKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTdHJpbmcgZGVjb21wID0gTm9ybWFsaXplci5ub3JtYWxpemUoY3AsIE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5jb250YWluc0FsbChkZWNvbXApKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigiQWRkaW5nOiAiICsgSW50ZWdlci50b1N0cmluZyhjcCwxNikgKyAiICIgKyBVQ2hhcmFjdGVyLmdldE5hbWUoY3ApKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLmFkZChjcCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gc291cmNlOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgU3RyaW5nIHRvUGF0dGVybihVbmljb2RlU2V0IHNvdXJjZSwgVW5pY29kZVNldCBzdXBlcnNldCkgeworICAgICAgICBpZiAoc3VwZXJzZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgc291cmNlLnJlbW92ZUFsbChzdXBlcnNldCk7CisgICAgICAgICAgICByZXR1cm4gIlsiICsgc3VwZXJzZXQudG9QYXR0ZXJuKHRydWUpICsgIiAiICsgc291cmNlLnRvUGF0dGVybih0cnVlKSArICJdIjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc291cmNlLnRvUGF0dGVybih0cnVlKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgIAorICAgIHN0YXRpYyBTdHJpbmcgdGl0bGVjYXNlRmlyc3RXb3JkKFN0cmluZyBsaW5lKSB7CisgICAgICAgIC8vIHNlYXJjaCBmb3IgZmlyc3Qgd29yZCB3aXRoIGxldHRlcnMuIElmIHRoZSBmaXJzdCBsZXR0ZXIgaXMgbG93ZXIsIHRoZW4gdGl0bGVjYXNlIGl0LgorICAgICAgICBiaS5zZXRUZXh0KGxpbmUpOworICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGVuZCA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChlbmQgPT0gQnJlYWtJdGVyYXRvci5ET05FKSBicmVhazsKKyAgICAgICAgICAgIGludCBmaXJzdExldHRlclR5cGUgPSBnZXRGaXJzdExldHRlclR5cGUobGluZSwgc3RhcnQsIGVuZCk7CisgICAgICAgICAgICBpZiAoZmlyc3RMZXR0ZXJUeXBlICE9IENoYXJhY3Rlci5VTkFTU0lHTkVEKSB7CisgICAgICAgICAgICAgICAgaWYgKGZpcnN0TGV0dGVyVHlwZSAhPSBDaGFyYWN0ZXIuTE9XRVJDQVNFX0xFVFRFUikgYnJlYWs7CisgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIHN0YXJ0KSAKKyAgICAgICAgICAgICAgICAgICAgKyBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGxpbmUuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpLCBiaSkKKyAgICAgICAgICAgICAgICAgICAgKyBsaW5lLnN1YnN0cmluZyhlbmQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZW5kID0gc3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgTEVUVEVSX01BU0sgPSAKKyAgICAgICAgICAoMTw8Q2hhcmFjdGVyLlVQUEVSQ0FTRV9MRVRURVIpCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5MT1dFUkNBU0VfTEVUVEVSKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuVElUTEVDQVNFX0xFVFRFUikKKyAgICAgICAgfCAoMTw8Q2hhcmFjdGVyLk1PRElGSUVSX0xFVFRFUikKKyAgICAgICAgfCAoMTw8Q2hhcmFjdGVyLk9USEVSX0xFVFRFUikKKyAgICAgICAgOworICAgIAorICAgIHN0YXRpYyBpbnQgZ2V0Rmlyc3RMZXR0ZXJUeXBlKFN0cmluZyBsaW5lLCBpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQobGluZSwgaSk7CisgICAgICAgICAgICBpbnQgdHlwZSA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShjcCk7CisgICAgICAgICAgICBpZiAoKCgxPDx0eXBlKSAmIExFVFRFUl9NQVNLKSAhPSAwKSByZXR1cm4gdHlwZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gQ2hhcmFjdGVyLlVOQVNTSUdORUQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHByaW50TmFtZXMoVW5pY29kZVNldCBzLCBTdHJpbmcgdGFyZ2V0RmlsZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRmlsZSBvdXRGaWxlID0gbmV3IEZpbGUodGFyZ2V0RmlsZSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmc6ICIgKyBvdXRGaWxlLmdldENhbm9uaWNhbFBhdGgoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBQcmludFdyaXRlciBvdXQgPSBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICAgICAgbmV3IEJ1ZmZlcmVkV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0RmlsZSksICJVVEYtOCIpKSk7CisgICAgICAgICAgICBVbmljb2RlU2V0IG1haW4gPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBVbmljb2RlU2V0IG90aGVycyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHMpOworICAgICAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0RlZmluZWQoaXQuY29kZXBvaW50KSkgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKCFOb3JtYWxpemVyLmlzTm9ybWFsaXplZChpdC5jb2RlcG9pbnQsIE5vcm1hbGl6ZXIuTkZELDApKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShpdC5jb2RlcG9pbnQsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICAgICAgb3RoZXJzLmFkZEFsbChkZWNvbXApOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIiAiICsgVVRGMTYudmFsdWVPZihpdC5jb2RlcG9pbnQpICsgIiA8PiBYWFggIyAiICsgVUNoYXJhY3Rlci5nZXROYW1lKGl0LmNvZGVwb2ludCkpOworICAgICAgICAgICAgICAgIG1haW4uYWRkKGl0LmNvZGVwb2ludCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChvdGhlcnMuc2l6ZSgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiRGVjb21wb3NlZCBjaGFyYWN0ZXJzIGZvdW5kIGFib3ZlOiAiKTsKKyAgICAgICAgICAgICAgICBvdGhlcnMucmVtb3ZlQWxsKG1haW4pOworICAgICAgICAgICAgICAgIGl0LnJlc2V0KG90aGVycyk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiICIgKyBVVEYxNi52YWx1ZU9mKGl0LmNvZGVwb2ludCkgKyAiIDw+IFhYWCAjICIgKyBVQ2hhcmFjdGVyLmdldE5hbWUoaXQuY29kZXBvaW50KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRG9uZSBXcml0aW5nIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciBoZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiW15cXHUwMDIwLVxcdTAwN0VdIGhleCIpOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgc2F2ZVJ1bGVzID0gCisgICAgICAgICAgIkEgPD4gXHVFQTQxOyBCIDw+IFx1RUE0MjsgQyA8PiBcdUVBNDM7IEQgPD4gXHVFQTQ0OyBFIDw+IFx1RUE0NTsgRiA8PiBcdUVBNDY7IEcgPD4gXHVFQTQ3OyBIIDw+IFx1RUE0ODsgSSA8PiBcdUVBNDk7ICIKKyAgICAgICAgKyAiSiA8PiBcdUVBNEE7IEsgPD4gXHVFQTRCOyBMIDw+IFx1RUE0QzsgTSA8PiBcdUVBNEQ7IE4gPD4gXHVFQTRFOyBPIDw+IFx1RUE0RjsgUCA8PiBcdUVBNTA7IFEgPD4gXHVFQTUxOyBSIDw+IFx1RUE1MjsgIgorICAgICAgICArICJTIDw+IFx1RUE1MzsgVCA8PiBcdUVBNTQ7IFUgPD4gXHVFQTU1OyBWIDw+IFx1RUE1NjsgVyA8PiBcdUVBNTc7IFggPD4gXHVFQTU4OyBZIDw+IFx1RUE1OTsgWiA8PiBcdUVBNUE7ICIKKyAgICAgICAgKyAiYSA8PiBcdUVBNjE7IGIgPD4gXHVFQTYyOyBjIDw+IFx1RUE2MzsgZCA8PiBcdUVBNjQ7IGUgPD4gXHVFQTY1OyBmIDw+IFx1RUE2NjsgZyA8PiBcdUVBNjc7IGggPD4gXHVFQTY4OyBpIDw+IFx1RUE2OTsgIgorICAgICAgICArICJqIDw+IFx1RUE2QTsgayA8PiBcdUVBNkI7IGwgPD4gXHVFQTZDOyBtIDw+IFx1RUE2RDsgbiA8PiBcdUVBNkU7IG8gPD4gXHVFQTZGOyBwIDw+IFx1RUE3MDsgcSA8PiBcdUVBNzE7IHIgPD4gXHVFQTcyOyAiCisgICAgICAgICsgInMgPD4gXHVFQTczOyB0IDw+IFx1RUE3NDsgdSA8PiBcdUVBNzU7IHYgPD4gXHVFQTc2OyB3IDw+IFx1RUE3NzsgeCA8PiBcdUVBNzg7IHkgPD4gXHVFQTc5OyB6IDw+IFx1RUE3QTsiOworICAgICAgICAKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3Igc2F2ZUFzY2lpID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJhc2NpaS1zYXZlZCIsIHNhdmVSdWxlcywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIHJlc3RvcmVBc2NpaSA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiYXNjaWktc2F2ZWQiLCBzYXZlUnVsZXMsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgIAorICAgIHN0YXRpYyB7CisgICAgICAgIAorICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgCisgICAgICAgIGZvciAoY2hhciBpID0gJ0EnOyBpIDw9ICd6JzsgKytpKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KGkgKyAiIDw+ICIgKyBoZXgudHJhbnNsaXRlcmF0ZShTdHJpbmcudmFsdWVPZigoY2hhcikoMHhFQTAwICsgaSkpKSArICI7ICIpOworICAgICAgICB9CisKKyAgICAgICAgVW5pY29kZVNldCB4ID0gbmV3IFVuaWNvZGVTZXQoIltbOl5jY2M9MDpdJls6XmNjYz0yMzA6XV0iKTsKKyAgICAgICAgeCA9IHguY29tcGxlbWVudCgpOworICAgICAgICB4ID0geC5jb21wbGVtZW50KCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdDogIiArIHgudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHkgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoInh4eCIsICIkbm90QWJvdmUgPSBbWzpeY2NjPTA6XSZbOl5jY2M9MjMwOl1dOyB1ICgkbm90QWJvdmUqKSBcdTAzMDggPiBYWFggfCAkMTsgIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSB0ZXN0TGlzdCA9IHsidVx1MDMwOCIsICJ1XHUwMzE2XHUwMzA4IiwgInVcdTAzMDhcdTAzMTYiLCAidVx1MDMwMVx1MDMwOCIsICJ1XHUwMzA4XHUwMzAxIn07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdExpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyB5eSA9IHkudHJhbnNsaXRlcmF0ZSh0ZXN0TGlzdFtpXSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaGV4LnRyYW5zbGl0ZXJhdGUodGVzdExpc3RbaV0pICsgIiA9PiAiICsgaGV4LnRyYW5zbGl0ZXJhdGUoeXkpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy9wcmludE5hbWVzKG5ldyBVbmljb2RlU2V0KCJbXHUwNjAwLVx1MDZGRl0iKSwgIkFyYWJpYy1MYXRpbi50eHQiKTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAvKiAgCisgICAgICAgIEJyZWFrVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgCisgICAgICAgIEJyZWFrVHJhbnNsaXRlcmF0b3IgdGVzdFRyYW5zID0gbmV3IEJyZWFrVHJhbnNsaXRlcmF0b3IoIkFueS1YWFgiLCBudWxsLCBudWxsLCAiJCIpOworICAgICAgICBTdHJpbmcgdGVzdFNvdXJjZSA9ICJUaGUgUXVpY2s6ICAgQnJvd24gZm94LS1qdW1wZWQuIjsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBiaSA9IHRlc3RUcmFucy5nZXRCcmVha0l0ZXJhdG9yKCk7CisgICAgICAgIGJpLnNldFRleHQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRlc3RTb3VyY2UpKTsKKyAgICAgICAgcHJpbnRCcmVha3MoMCwgdGVzdFNvdXJjZSwgYmkpOworICAgICAgICAvL2JpLnNldFRleHQoVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHRlc3RTb3VyY2UpKTsKKyAgICAgICAgLy9wcmludEJyZWFrcygxLCB0ZXN0U291cmNlLCBiaSk7CisgICAgICAgIAorICAgICAgICBwcmludEl0ZXJhdGlvbigyLCB0ZXN0U291cmNlLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGVzdFNvdXJjZSkpOworICAgICAgICAvL3ByaW50SXRlcmF0aW9uKDMsIHRlc3RTb3VyY2UsIFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSh0ZXN0U291cmNlKSk7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0ZXN0ID0gdGVzdFRyYW5zLnRyYW5zbGl0ZXJhdGUodGVzdFNvdXJjZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdDM6ICIgKyB0ZXN0KTsKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCh0ZXN0VHJhbnMuZ2V0SUQoKSwgdGVzdFRyYW5zKTsKKyAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIC8vIEFueVRyYW5zbGl0ZXJhdG9yLlNjcmlwdFJ1bkl0ZXJhdG9yLnJlZ2lzdGVyQW55VG9TY3JpcHQoKTsKKyAgICAgICAgCisgICAgICAgIEFueVRyYW5zbGl0ZXJhdG9yIGF0ID0gbmV3IEFueVRyYW5zbGl0ZXJhdG9yKCJHcmVlayIsIG51bGwpOworICAgICAgICBhdC50cmFuc2xpdGVyYXRlKCIoY2F0LFx1MDNiMSxcdTA5MTUpIik7CisgICAgICAgIER1bW15RmFjdG9yeS5hZGQoYXQuZ2V0SUQoKSwgYXQpOworICAgICAgICAKKyAgICAgICAgYXQgPSBuZXcgQW55VHJhbnNsaXRlcmF0b3IoIkRldmFuYWdhcmkiLCBudWxsKTsKKyAgICAgICAgYXQudHJhbnNsaXRlcmF0ZSgiKGNhdCxcdTAzYjEsXHUwOTE1KSIpOworICAgICAgICBEdW1teUZhY3RvcnkuYWRkKGF0LmdldElEKCksIGF0KTsKKyAgICAgICAgCisgICAgICAgIGF0ID0gbmV3IEFueVRyYW5zbGl0ZXJhdG9yKCJMYXRpbiIsIG51bGwpOworICAgICAgICBhdC50cmFuc2xpdGVyYXRlKCIoY2F0LFx1MDNiMSxcdTA5MTUpIik7CisgICAgICAgIER1bW15RmFjdG9yeS5hZGQoYXQuZ2V0SUQoKSwgYXQpOworICAgICAgICAKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCgiQW55LWdpZiIsIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiZ2lmIiwgIidcXCd1KC4uKSguLikgPiAnPGltZyBzcmM9XCJodHRwOi8vd3d3LnVuaWNvZGUub3JnL2dpZnMvMjQvJyAkMSAnL1UnICQxJDIgJy5naWZcIj4nOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpKTsgICAgICAgIAorICAgICAgICBEdW1teUZhY3RvcnkuYWRkKCJnaWYtQW55IiwgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1OdWxsIikpOyAgICAgICAgCisKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCgiQW55LVJlbW92ZUN1cmx5IiwgVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJSZW1vdmVDdXJseSIsICJbXFx7XFx9XSA+IDsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKSk7ICAgICAgICAKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCgiUmVtb3ZlQ3VybHktQW55IiwgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1OdWxsIikpOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcnlpbmcgJmhleCIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJoZXgyIiwgIiguKSA+ICZoZXgoJDEpOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJlZ2lzdGVyaW5nIik7CisgICAgICAgIER1bW15RmFjdG9yeS5hZGQoIkFueS1oZXgyIiwgdCk7ICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVHJ5aW5nICZnaWYiKTsKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiZ2lmMiIsICIoLikgPiAmYW55LWdpZigkMSk7IiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVnaXN0ZXJpbmciKTsKKyAgICAgICAgRHVtbXlGYWN0b3J5LmFkZCgiQW55LWdpZjIiLCB0KTsgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgCisgICAgdm9pZCBzZXRUcmFuc2xpdGVyYXRvcihTdHJpbmcgbmFtZSwgU3RyaW5nIGlkKSB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJHb3Q6ICIgKyBuYW1lKTsKKyAgICAgICAgaWYgKGlkID09IG51bGwpIHsKKyAgICAgICAgICAgIHRyYW5zbGl0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UobmFtZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgcmV2ZXJzZUlkID0gIiI7CisgICAgICAgICAgICBpbnQgcG9zID0gaWQuaW5kZXhPZignLScpOworICAgICAgICAgICAgaWYgKHBvcyA8IDApIHsKKyAgICAgICAgICAgICAgICByZXZlcnNlSWQgPSBpZCArICItQW55IjsKKyAgICAgICAgICAgICAgICBpZCA9ICJBbnktIiArIGlkOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgcG9zMiA9IGlkLmluZGV4T2YoIi8iLCBwb3MpOworICAgICAgICAgICAgICAgIGlmIChwb3MyIDwgMCkgeworICAgICAgICAgICAgICAgICAgICByZXZlcnNlSWQgPSBpZC5zdWJzdHJpbmcocG9zKzEpICsgIi0iICsgaWQuc3Vic3RyaW5nKDAscG9zKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXZlcnNlSWQgPSBpZC5zdWJzdHJpbmcocG9zKzEsIHBvczIpICsgIi0iICsgaWQuc3Vic3RyaW5nKDAscG9zKSArIGlkLnN1YnN0cmluZyhwb3MyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJhbnNsaXQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoaWQsIG5hbWUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIqKipGb3J3YXJkIFJ1bGVzIik7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRyYW5zbGl0LnRvUnVsZXModHJ1ZSkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKioqU291cmNlIFNldCIpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0cmFuc2xpdC5nZXRTb3VyY2VTZXQoKS50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKioqVGFyZ2V0IFNldCIpOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgdGFyZ2V0ID0gdHJhbnNsaXQuZ2V0VGFyZ2V0U2V0KCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRhcmdldC50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgcmVzdCA9IG5ldyBVbmljb2RlU2V0KCJbYS16XSIpLnJlbW92ZUFsbCh0YXJnZXQpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKioqQVNDSUkgLSBUYXJnZXQgU2V0Iik7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHJlc3QudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIER1bW15RmFjdG9yeS5hZGQoaWQsIHRyYW5zbGl0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdHJhbnNsaXQyID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKHJldmVyc2VJZCwgbmFtZSwgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIioqKkJhY2t3YXJkIFJ1bGVzIik7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRyYW5zbGl0Mi50b1J1bGVzKHRydWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIER1bW15RmFjdG9yeS5hZGQocmV2ZXJzZUlkLCB0cmFuc2xpdDIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciByZXYgPSB0cmFuc2xpdC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiKioqSW52ZXJzZSBSdWxlcyIpOworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4ocmV2LnRvUnVsZXModHJ1ZSkpOworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgdGV4dC5mbHVzaCgpOworICAgICAgICB0ZXh0LnNldFRyYW5zbGl0ZXJhdG9yKHRyYW5zbGl0KTsKKyAgICAgICAgY29udmVydFNlbGVjdGlvbkl0ZW0uc2V0TGFiZWwoVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUodHJhbnNsaXQuZ2V0SUQoKSkpOworICAgICAgICAKKyAgICAgICAgYWRkSGlzdG9yeSh0cmFuc2xpdCk7CisgICAgICAgIAorICAgICAgICBUcmFuc2xpdGVyYXRvciBpbnY7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnYgPSB0cmFuc2xpdC5nZXRJbnZlcnNlKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgaW52ID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW52ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGFkZEhpc3RvcnkoaW52KTsKKyAgICAgICAgICAgIHN3YXBTZWxlY3Rpb25JdGVtLnNldEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzd2FwU2VsZWN0aW9uSXRlbS5zZXRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNldCB0cmFuc2xpdGVyYXRvcjogIiArIHRyYW5zbGl0LmdldElEKCkKKyAgICAgICAgICAgICsgKGludiA9PSBudWxsID8gIiBhbmQgIiArIGludi5nZXRJRCgpIDogIiIpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBhZGRIaXN0b3J5KFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0KSB7CisgICAgICAgIFN0cmluZyBuYW1lID0gdHJhbnNsaXQuZ2V0SUQoKTsKKyAgICAgICAgTWVudUl0ZW0gY21pID0gKE1lbnVJdGVtKSBoaXN0b3J5TWFwLmdldChuYW1lKTsKKyAgICAgICAgaWYgKGNtaSA9PSBudWxsKSB7CisgICAgICAgICAgICBjbWkgPSBuZXcgTWVudUl0ZW0oVHJhbnNsaXRlcmF0b3IuZ2V0RGlzcGxheU5hbWUobmFtZSkpOworICAgICAgICAgICAgY21pLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBUcmFuc2xpdGVyYXRpb25MaXN0ZW5lcihuYW1lKSk7CisgICAgICAgICAgICBoaXN0b3J5TWFwLnB1dChuYW1lLCBjbWkpOworICAgICAgICAgICAgaGlzdG9yeVNldC5hZGQoY21pKTsKKyAgICAgICAgICAgIGhpc3RvcnlNZW51LnJlbW92ZUFsbCgpOworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBoaXN0b3J5U2V0Lml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaGlzdG9yeU1lbnUuYWRkKChNZW51SXRlbSlpdC5uZXh0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGNsYXNzIFRyYW5zbGl0ZXJhdGlvbkxpc3RlbmVyIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIsIEl0ZW1MaXN0ZW5lciB7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0aW9uTGlzdGVuZXIoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgIHNldFRyYW5zbGl0ZXJhdG9yKG5hbWUsIG51bGwpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChlLmdldFN0YXRlQ2hhbmdlKCkgPT0gSXRlbUV2ZW50LlNFTEVDVEVEKSB7CisgICAgICAgICAgICAgICAgc2V0VHJhbnNsaXRlcmF0b3IobmFtZSwgbnVsbCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNldFRyYW5zbGl0ZXJhdG9yKCJBbnktTnVsbCIsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGNsYXNzIEZvbnRBY3Rpb25MaXN0ZW5lciBpbXBsZW1lbnRzIEFjdGlvbkxpc3RlbmVyIHsKKyAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgIHB1YmxpYyBGb250QWN0aW9uTGlzdGVuZXIoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJGb250OiAiICsgbmFtZSk7CisgICAgICAgICAgICBmb250TmFtZSA9IG5hbWU7CisgICAgICAgICAgICB0ZXh0LnNldEZvbnQobmV3IEZvbnQoZm9udE5hbWUsIEZvbnQuUExBSU4sIGZvbnRTaXplKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgY2xhc3MgU2l6ZUFjdGlvbkxpc3RlbmVyIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIgeworICAgICAgICBpbnQgc2l6ZTsKKyAgICAgICAgcHVibGljIFNpemVBY3Rpb25MaXN0ZW5lcihpbnQgc2l6ZSkgeworICAgICAgICAgICAgdGhpcy5zaXplID0gc2l6ZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlNpemU6ICIgKyBzaXplKTsKKyAgICAgICAgICAgIGZvbnRTaXplID0gc2l6ZTsKKyAgICAgICAgICAgIHRleHQuc2V0Rm9udChuZXcgRm9udChmb250TmFtZSwgRm9udC5QTEFJTiwgZm9udFNpemUpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBTZXQgYWRkKFNldCBzLCBFbnVtZXJhdGlvbiBlbnVtZXJhdGlvbikgeworICAgICAgICB3aGlsZShlbnVtZXJhdGlvbi5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgcy5hZGQoZW51bWVyYXRpb24ubmV4dEVsZW1lbnQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgc29ydGVkIGxpc3Qgb2YgdGhlIHN5c3RlbSB0cmFuc2xpdGVyYXRvcnMuCisgICAgICovCisgICAgIC8qCisgICAgcHJpdmF0ZSBzdGF0aWMgVmVjdG9yIGdldFN5c3RlbVRyYW5zbGl0ZXJhdG9yTmFtZXMoKSB7CisgICAgICAgIFZlY3RvciB2ID0gbmV3IFZlY3RvcigpOworICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGU9VHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgICAgICAgZS5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICB2LmFkZEVsZW1lbnQoZS5uZXh0RWxlbWVudCgpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBJbnNlcnRpb24gc29ydCwgTyhuXjIpIGFjY2VwdGFibGUgZm9yIHNtYWxsIG4KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPCh2LnNpemUoKS0xKTsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgYSA9IChTdHJpbmcpIHYuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgZm9yIChpbnQgaj1pKzE7IGo8di5zaXplKCk7ICsraikgeworICAgICAgICAgICAgICAgIFN0cmluZyBiID0gKFN0cmluZykgdi5lbGVtZW50QXQoaik7CisgICAgICAgICAgICAgICAgaWYgKGEuY29tcGFyZVRvKGIpID4gMCkgeworICAgICAgICAgICAgICAgICAgICB2LnNldEVsZW1lbnRBdChiLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgdi5zZXRFbGVtZW50QXQoYSwgaik7CisgICAgICAgICAgICAgICAgICAgIGEgPSBiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdjsKKyAgICB9CisgICAgKi8KKworLyoKKyAgICBwcml2YXRlIHZvaWQgc2V0Tm9UcmFuc2xpdGVyYXRvcigpIHsKKyAgICAgICAgdHJhbnNsaXRJdGVtID0gbm9UcmFuc2xpdEl0ZW07CisgICAgICAgIG5vVHJhbnNsaXRJdGVtLnNldFN0YXRlKHRydWUpOworICAgICAgICBoYW5kbGVTZXRUcmFuc2xpdGVyYXRvcihub1RyYW5zbGl0SXRlbS5nZXRMYWJlbCgpKTsKKyAgICAgICAgY29tcG91bmQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRyYW5zbGl0TWVudS5nZXRJdGVtQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICBNZW51SXRlbSBpdCA9IHRyYW5zbGl0TWVudS5nZXRJdGVtKGkpOworICAgICAgICAgICAgaWYgKGl0ICE9IG5vVHJhbnNsaXRJdGVtICYmIGl0IGluc3RhbmNlb2YgQ2hlY2tib3hNZW51SXRlbSkgeworICAgICAgICAgICAgICAgICgoQ2hlY2tib3hNZW51SXRlbSkgaXQpLnNldFN0YXRlKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyovCisvKgorICAgIHByaXZhdGUgdm9pZCBoYW5kbGVBZGRUb0NvbXBvdW5kKFN0cmluZyBuYW1lKSB7CisgICAgICAgIGlmIChjb21wb3VuZENvdW50IDwgTUFYX0NPTVBPVU5EKSB7CisgICAgICAgICAgICBjb21wb3VuZFRyYW5zbGl0W2NvbXBvdW5kQ291bnRdID0gZGVjb2RlVHJhbnNsaXRJdGVtKG5hbWUpOworICAgICAgICAgICAgKytjb21wb3VuZENvdW50OworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdFtdID0gbmV3IFRyYW5zbGl0ZXJhdG9yW2NvbXBvdW5kQ291bnRdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShjb21wb3VuZFRyYW5zbGl0LCAwLCB0LCAwLCBjb21wb3VuZENvdW50KTsKKyAgICAgICAgICAgIHRyYW5zbGl0ID0gbmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IodCk7CisgICAgICAgICAgICB0ZXh0LnNldFRyYW5zbGl0ZXJhdG9yKHRyYW5zbGl0KTsKKyAgICAgICAgfQorICAgIH0KKyovCisvKgorICAgIHByaXZhdGUgdm9pZCBoYW5kbGVTZXRUcmFuc2xpdGVyYXRvcihTdHJpbmcgbmFtZSkgeworICAgICAgICB0cmFuc2xpdCA9IGRlY29kZVRyYW5zbGl0SXRlbShuYW1lKTsKKyAgICAgICAgdGV4dC5zZXRUcmFuc2xpdGVyYXRvcih0cmFuc2xpdCk7CisgICAgfQorICAgICovCisKKyAgICAvKioKKyAgICAgKiBEZWNvZGUgYSBtZW51IGl0ZW0gdGhhdCBsb29rcyBsaWtlIDx0cmFuc2xpdCBuYW1lPi4KKyAgICAgKi8KKyAgICAgLyoKKyAgICBwcml2YXRlIHN0YXRpYyBUcmFuc2xpdGVyYXRvciBkZWNvZGVUcmFuc2xpdEl0ZW0oU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgcmV0dXJuIChuYW1lLmVxdWFscyhOT19UUkFOU0xJVEVSQVRPUikpCisgICAgICAgICAgICA/IG51bGwgOiBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShuYW1lKTsKKyAgICB9CisgICAgKi8KKworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVCYXRjaFRyYW5zbGl0ZXJhdGUoVHJhbnNsaXRlcmF0b3IgdHJhbnNsaXQpIHsKKyAgICAgICAgaWYgKHRyYW5zbGl0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGludCBzdGFydCA9IHRleHQuZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgaW50IGVuZCA9IHRleHQuZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHMgPQorICAgICAgICAgICAgbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHRleHQuZ2V0VGV4dCgpLnN1YnN0cmluZyhzdGFydCwgZW5kKSk7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGxvZyA9IG51bGw7CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgbG9nID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgbG9nLmFwcGVuZCgnIicgKyBzLnRvU3RyaW5nKCkgKyAiXCIgKHN0YXJ0ICIgKyBzdGFydCArCisgICAgICAgICAgICAgICAgICAgICAgICIsIGVuZCAiICsgZW5kICsgIikgLT4gXCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUocyk7CisgICAgICAgIFN0cmluZyBzdHIgPSBzLnRvU3RyaW5nKCk7CisKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBsb2cuYXBwZW5kKHN0ciArICJcIiIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJCYXRjaCAiICsgdHJhbnNsaXQuZ2V0SUQoKSArICI6ICIgKyBsb2cudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICB0ZXh0LnJlcGxhY2VSYW5nZShzdHIsIHN0YXJ0LCBlbmQpOworICAgICAgICB0ZXh0LnNlbGVjdChzdGFydCwgc3RhcnQgKyBzdHIubGVuZ3RoKCkpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVDbG9zZSgpIHsKKyAgICAgICAgaGVscERpYWxvZy5kaXNwb3NlKCk7CisgICAgICAgIGRpc3Bvc2UoKTsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICBjbGFzcyBJbmZvRGlhbG9nIGV4dGVuZHMgRGlhbG9nIHsKKyAgICAgICAgcHJvdGVjdGVkIEJ1dHRvbiBidXR0b247CisgICAgICAgIHByb3RlY3RlZCBUZXh0QXJlYSBhcmVhOworICAgICAgICBwcm90ZWN0ZWQgRGlhbG9nIG1lOworICAgICAgICBwcm90ZWN0ZWQgUGFuZWwgYm90dG9tOworICAgICAgICAKKyAgICAgICAgcHVibGljIFRleHRBcmVhIGdldEFyZWEoKSB7CisgICAgICAgICAgICByZXR1cm4gYXJlYTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFBhbmVsIGdldEJvdHRvbSgpIHsKKyAgICAgICAgICAgIHJldHVybiBib3R0b207CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEluZm9EaWFsb2coRnJhbWUgcGFyZW50LCBTdHJpbmcgdGl0bGUsIFN0cmluZyBsYWJlbCwgU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIHN1cGVyKHBhcmVudCwgdGl0bGUsIGZhbHNlKTsKKyAgICAgICAgICAgIG1lID0gdGhpczsKKyAgICAgICAgICAgIHRoaXMuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisgICAgICAgICAgICBpZiAobGFiZWwubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHRoaXMuYWRkKCJOb3J0aCIsIG5ldyBMYWJlbChsYWJlbCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBhcmVhID0gbmV3IFRleHRBcmVhKG1lc3NhZ2UsIDgsIDgwLCBUZXh0QXJlYS5TQ1JPTExCQVJTX1ZFUlRJQ0FMX09OTFkpOworICAgICAgICAgICAgdGhpcy5hZGQoIkNlbnRlciIsIGFyZWEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBidXR0b24gPSBuZXcgQnV0dG9uKCJIaWRlIik7CisgICAgICAgICAgICBidXR0b24uYWRkQWN0aW9uTGlzdGVuZXIobmV3IEFjdGlvbkxpc3RlbmVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgICAgIG1lLmhpZGUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGJvdHRvbSA9IG5ldyBQYW5lbCgpOworICAgICAgICAgICAgYm90dG9tLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgMCwgMCkpOworICAgICAgICAgICAgYm90dG9tLmFkZChidXR0b24pOworICAgICAgICAgICAgdGhpcy5hZGQoIlNvdXRoIiwgYm90dG9tKTsKKyAgICAgICAgICAgIHRoaXMucGFjaygpOworICAgICAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgICAgIG1lLmhpZGUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0RlbW9BcHBsZXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EZW1vQXBwbGV0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2FiMDJjZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9EZW1vQXBwbGV0LmphdmEKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8udHJhbnNsaXQ7CitpbXBvcnQgamF2YS5hd3QuKjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC4qOworaW1wb3J0IGphdmEuYXBwbGV0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LmRlbW8uaW1wbC5BcHBsZXRGcmFtZTsKKworLyoqCisgKiBBIHNpbXBsZSBBcHBsZXQgdGhhdCBzaG93cyBhIGJ1dHRvbi4gIFdoZW4gcHJlc3NlZCwgdGhlIGJ1dHRvbgorICogc2hvd3MgdGhlIERlbW9BcHBsZXRGcmFtZS4gIFRoaXMgQXBwbGV0IGlzIG1lYW50IHRvIGJlIGVtYmVkZGVkCisgKiBpbiBhIHdlYiBwYWdlLgorICoKKyAqIDxwPkNvcHlyaWdodCAoYykgSUJNIENvcnBvcmF0aW9uIDE5OTkuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworcHVibGljIGNsYXNzIERlbW9BcHBsZXQgZXh0ZW5kcyBBcHBsZXQgeworCisgICAgRGVtbyBmcmFtZSA9IG51bGw7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICJcdTAwQTkgSUJNIENvcnBvcmF0aW9uIDE5OTkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAgICAgICAgZmluYWwgRGVtb0FwcGxldCBhcHBsZXQgPSBuZXcgRGVtb0FwcGxldCgpOworICAgICAgICBuZXcgQXBwbGV0RnJhbWUoIlRyYW5zbGl0ZXJhdGlvbiBEZW1vIiwgYXBwbGV0LCA2NDAsIDQ4MCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaW5pdCgpIHsKKworICAgICAgICBCdXR0b24gYnV0dG9uID0gbmV3IEJ1dHRvbigiVHJhbnNsaXRlcmF0aW9uIERlbW8iKTsKKyAgICAgICAgYnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGZyYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZnJhbWUgPSBuZXcgRGVtbyg2MDAsIDIwMCk7CisgICAgICAgICAgICAgICAgICAgIGZyYW1lLmFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCB3ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZyYW1lLnNldFZpc2libGUodHJ1ZSk7CisgICAgICAgICAgICAgICAgZnJhbWUudG9Gcm9udCgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICBhZGQoYnV0dG9uKTsKKworICAgICAgICBEaW1lbnNpb24gc2l6ZSA9IGJ1dHRvbi5nZXRQcmVmZXJyZWRTaXplKCk7CisgICAgICAgIHNpemUud2lkdGggKz0gMTA7CisgICAgICAgIHNpemUuaGVpZ2h0ICs9IDEwOworCisgICAgICAgIHJlc2l6ZShzaXplKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc3RvcCgpIHsKKyAgICAgICAgaWYgKGZyYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZyYW1lLmRpc3Bvc2UoKTsKKyAgICAgICAgfQorICAgICAgICBmcmFtZSA9IG51bGw7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0RpZmZlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0RpZmZlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1MjVhZTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvRGlmZmVyLmphdmEKQEAgLTAsMCArMSwxNzEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdDsKKworLyoqIFZFUlkgQmFzaWMgRGlmZiBwcm9ncmFtLiBDb21wYXJlcyB0d28gc2VxdWVuY2VzIG9mIG9iamVjdHMgZmVkIGludG8gaXQsIGFuZAorICogbGV0cyB5b3Uga25vdyB3aGVyZSB0aGV5IGFyZSBkaWZmZXJlbnQuCisgKiBAYXV0aG9yIE1hcmsgRGF2aXMKKyAqIEB2ZXJzaW9uIDEuMAorICovCisKK2ZpbmFsIHB1YmxpYyBjbGFzcyBEaWZmZXIgeworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9CisgICAgICAiQ29weXJpZ2h0IChDKSAyMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIjsKKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdGFja1NpemUgVGhlIHNpemUgb2YgdGhlIGxhcmdlc3QgZGlmZmVyZW5jZSB5b3UgZXhwZWN0LgorICAgICAqIEBwYXJhbSBtYXRjaENvdW50IFRoZSBudW1iZXIgb2YgaXRlbXMgdGhhdCBoYXZlIHRvIGJlIHRoZSBzYW1lIHRvIGNvdW50IGFzIGEgbWF0Y2gKKyAgICAgKi8KKyAgICBwdWJsaWMgRGlmZmVyKGludCBzdGFja1NpemUsIGludCBtYXRjaENvdW50KSB7CisgICAgICAgIHRoaXMuU1RBQ0tTSVpFID0gc3RhY2tTaXplOworICAgICAgICB0aGlzLkVRVUFMU0laRSA9IG1hdGNoQ291bnQ7CisgICAgICAgIGEgPSBuZXcgT2JqZWN0W3N0YWNrU2l6ZSttYXRjaENvdW50XTsKKyAgICAgICAgYiA9IG5ldyBPYmplY3Rbc3RhY2tTaXplK21hdGNoQ291bnRdOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZCAoT2JqZWN0IGFTdHIsIE9iamVjdCBiU3RyKSB7CisgICAgICAgIGFkZEEoYVN0cik7CisgICAgICAgIGFkZEIoYlN0cik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkQSAoT2JqZWN0IGFTdHIpIHsKKyAgICAgICAgZmx1c2goKTsKKyAgICAgICAgYVthQ291bnQrK10gPSBhU3RyOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEIgKE9iamVjdCBiU3RyKSB7CisgICAgICAgIGZsdXNoKCk7CisgICAgICAgIGJbYkNvdW50KytdID0gYlN0cjsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEFMaW5lKGludCBvZmZzZXQpIHsKKyAgICAgICAgcmV0dXJuIGFMaW5lICsgbWF4U2FtZSArIG9mZnNldDsKKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IGdldEEoaW50IG9mZnNldCkgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCkgcmV0dXJuIGxhc3Q7CisgICAgICAgIGlmIChvZmZzZXQgPiBhVG9wLW1heFNhbWUpIHJldHVybiBuZXh0OworICAgICAgICByZXR1cm4gYVtvZmZzZXRdOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0QUNvdW50KCkgeworICAgICAgICByZXR1cm4gYVRvcC1tYXhTYW1lOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0QkNvdW50KCkgeworICAgICAgICByZXR1cm4gYlRvcC1tYXhTYW1lOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0QkxpbmUoaW50IG9mZnNldCkgeworICAgICAgICByZXR1cm4gYkxpbmUgKyBtYXhTYW1lICsgb2Zmc2V0OworICAgIH0KKworICAgIHB1YmxpYyBPYmplY3QgZ2V0QihpbnQgb2Zmc2V0KSB7CisgICAgICAgIGlmIChvZmZzZXQgPCAwKSByZXR1cm4gbGFzdDsKKyAgICAgICAgaWYgKG9mZnNldCA+IGJUb3AtbWF4U2FtZSkgcmV0dXJuIG5leHQ7CisgICAgICAgIHJldHVybiBiW29mZnNldF07CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY2hlY2tNYXRjaChib29sZWFuIGZpbmFsUGFzcykgeworICAgICAgICAvLyBmaW5kIHRoZSBpbml0aWFsIHN0cmluZ3MgdGhhdCBhcmUgdGhlIHNhbWUKKyAgICAgICAgaW50IG1heCA9IGFDb3VudDsKKyAgICAgICAgaWYgKG1heCA+IGJDb3VudCkgbWF4ID0gYkNvdW50OworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG1heDsgKytpKSB7CisgICAgICAgICAgICBpZiAoIWFbaV0uZXF1YWxzKGJbaV0pKSBicmVhazsKKyAgICAgICAgfQorICAgICAgICAvLyBhdCB0aGlzIHBvaW50LCBhbGwgaXRlbXMgdXAgdG8gaSBhcmUgZXF1YWwKKyAgICAgICAgbWF4U2FtZSA9IGk7CisgICAgICAgIGFUb3AgPSBiVG9wID0gbWF4U2FtZTsKKyAgICAgICAgaWYgKG1heFNhbWUgPiAwKSBsYXN0ID0gYVttYXhTYW1lLTFdOworICAgICAgICBuZXh0ID0gIiI7CisKKyAgICAgICAgaWYgKGZpbmFsUGFzcykgeworICAgICAgICAgICAgYVRvcCA9IGFDb3VudDsKKyAgICAgICAgICAgIGJUb3AgPSBiQ291bnQ7CisgICAgICAgICAgICBuZXh0ID0gIiI7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoYUNvdW50IC0gbWF4U2FtZSA8IEVRVUFMU0laRSB8fCBiQ291bnQgLSBtYXhTYW1lIDwgRVFVQUxTSVpFKSByZXR1cm47CisKKyAgICAgICAgLy8gbm93IHNlZSBpZiB0aGUgbGFzdCBmZXcgYSdzIG9jY3VyIGFueXdoZXJlIGluIHRoZSBiJ3MsIG9yIHZpY2UgdmVyc2EKKyAgICAgICAgaW50IG1hdGNoID0gZmluZCAoYSwgYUNvdW50LUVRVUFMU0laRSwgYUNvdW50LCBiLCBtYXhTYW1lLCBiQ291bnQpOworICAgICAgICBpZiAobWF0Y2ggIT0gLTEpIHsKKyAgICAgICAgICAgIGFUb3AgPSBhQ291bnQtRVFVQUxTSVpFOworICAgICAgICAgICAgYlRvcCA9IG1hdGNoOworICAgICAgICAgICAgbmV4dCA9IGFbYVRvcF07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbWF0Y2ggPSBmaW5kIChiLCBiQ291bnQtRVFVQUxTSVpFLCBiQ291bnQsIGEsIG1heFNhbWUsIGFDb3VudCk7CisgICAgICAgIGlmIChtYXRjaCAhPSAtMSkgeworICAgICAgICAgICAgYlRvcCA9IGJDb3VudC1FUVVBTFNJWkU7CisgICAgICAgICAgICBhVG9wID0gbWF0Y2g7CisgICAgICAgICAgICBuZXh0ID0gYltiVG9wXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoYUNvdW50ID49IFNUQUNLU0laRSB8fCBiQ291bnQgPj0gU1RBQ0tTSVpFKSB7CisgICAgICAgICAgICAvLyBmbHVzaCBzb21lIG9mIHRoZW0KKyAgICAgICAgICAgIGFDb3VudCA9IChhQ291bnQgKyBtYXhTYW1lKSAvIDI7CisgICAgICAgICAgICBiQ291bnQgPSAoYkNvdW50ICsgbWF4U2FtZSkgLyAyOworICAgICAgICAgICAgbmV4dCA9ICIiOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIENvbnZlbmllbnQgdXRpbGl0eQorICAgICAqIGZpbmRzIGEgc2VnbWVudCBvZiB0aGUgZmlyc3QgYXJyYXkgaW4gdGhlIHNlY29uZCBhcnJheS4KKyAgICAgKiBAcmV0dXJuIC0xIGlmIG5vdCBmb3VuZCwgb3RoZXJ3aXNlIHN0YXJ0IHBvc2l0aW9uIGluIGIKKyAgICAgKi8KKworICAgIHB1YmxpYyBpbnQgZmluZCAoT2JqZWN0W10gYSwgaW50IGFTdGFydCwgaW50IGFFbmQsIE9iamVjdFtdIGIsIGludCBiU3RhcnQsIGludCBiRW5kKSB7CisgICAgICAgIGludCBsZW4gPSBhRW5kIC0gYVN0YXJ0OworICAgICAgICBpbnQgYkVuZE1pbnVzID0gYkVuZCAtIGxlbjsKKyAgICAgICAgdHJ5QToKKyAgICAgICAgZm9yIChpbnQgaSA9IGJTdGFydDsgaSA8PSBiRW5kTWludXM7ICsraSkgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBsZW47ICsraikgeworICAgICAgICAgICAgICAgIGlmICghYltpICsgal0uZXF1YWxzKGFbYVN0YXJ0ICsgal0pKSBjb250aW51ZSB0cnlBOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGk7IC8vIHdlIGhhdmUgYSBtYXRjaCEKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PSBQUklWQVRFUyA9PT09PT09PT09PT09PT09PT09PT09CisKKyAgICBwcml2YXRlIHZvaWQgZmx1c2goKSB7CisgICAgICAgIGlmIChhVG9wICE9IDApIHsKKyAgICAgICAgICAgIGludCBuZXdDb3VudCA9IGFDb3VudC1hVG9wOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShhLCBhVG9wLCBhLCAwLCBuZXdDb3VudCk7CisgICAgICAgICAgICBhQ291bnQgPSBuZXdDb3VudDsKKyAgICAgICAgICAgIGFMaW5lICs9IGFUb3A7CisgICAgICAgICAgICBhVG9wID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChiVG9wICE9IDApIHsKKyAgICAgICAgICAgIGludCBuZXdDb3VudCA9IGJDb3VudC1iVG9wOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShiLCBiVG9wLCBiLCAwLCBuZXdDb3VudCk7CisgICAgICAgICAgICBiQ291bnQgPSBuZXdDb3VudDsKKyAgICAgICAgICAgIGJMaW5lICs9IGJUb3A7CisgICAgICAgICAgICBiVG9wID0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgaW50IFNUQUNLU0laRTsKKyAgICBwcml2YXRlIGludCBFUVVBTFNJWkU7CisKKyAgICBwcml2YXRlIE9iamVjdCBbXSBhOworICAgIHByaXZhdGUgT2JqZWN0IFtdIGI7CisgICAgcHJpdmF0ZSBPYmplY3QgbGFzdCA9ICIiOworICAgIHByaXZhdGUgT2JqZWN0IG5leHQgPSAiIjsKKyAgICBwcml2YXRlIGludCBhQ291bnQgPSAwOworICAgIHByaXZhdGUgaW50IGJDb3VudCA9IDA7CisgICAgcHJpdmF0ZSBpbnQgYUxpbmUgPSAxOworICAgIHByaXZhdGUgaW50IGJMaW5lID0gMTsKKyAgICBwcml2YXRlIGludCBtYXhTYW1lID0gMCwgYVRvcCA9IDAsIGJUb3AgPSAwOworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvSW5mb0RpYWxvZy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0luZm9EaWFsb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzczYjI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L0luZm9EaWFsb2cuamF2YQpAQCAtMCwwICsxLDUyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LmRlbW8udHJhbnNsaXQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuKjsKK2ltcG9ydCBqYXZhLmF3dC4qOworcHVibGljIGNsYXNzIEluZm9EaWFsb2cgZXh0ZW5kcyBEaWFsb2cgeworICAgIHByb3RlY3RlZCBCdXR0b24gYnV0dG9uOworICAgIHByb3RlY3RlZCBUZXh0QXJlYSBhcmVhOworICAgIHByb3RlY3RlZCBEaWFsb2cgbWU7CisgICAgcHJvdGVjdGVkIFBhbmVsIGJvdHRvbTsKKyAgICAgICAgCisgICAgcHVibGljIFRleHRBcmVhIGdldEFyZWEoKSB7CisgICAgICAgIHJldHVybiBhcmVhOworICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIFBhbmVsIGdldEJvdHRvbSgpIHsKKyAgICAgICAgcmV0dXJuIGJvdHRvbTsKKyAgICB9CisgICAgICAgIAorICAgIEluZm9EaWFsb2coRnJhbWUgcGFyZW50LCBTdHJpbmcgdGl0bGUsIFN0cmluZyBsYWJlbCwgU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgc3VwZXIocGFyZW50LCB0aXRsZSwgZmFsc2UpOworICAgICAgICBtZSA9IHRoaXM7CisgICAgICAgIHRoaXMuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisgICAgICAgIGlmIChsYWJlbC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICB0aGlzLmFkZCgiTm9ydGgiLCBuZXcgTGFiZWwobGFiZWwpKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGFyZWEgPSBuZXcgVGV4dEFyZWEobWVzc2FnZSwgOCwgODAsIFRleHRBcmVhLlNDUk9MTEJBUlNfVkVSVElDQUxfT05MWSk7CisgICAgICAgIHRoaXMuYWRkKCJDZW50ZXIiLCBhcmVhKTsKKyAgICAgICAgICAgIAorICAgICAgICBidXR0b24gPSBuZXcgQnV0dG9uKCJIaWRlIik7CisgICAgICAgIGJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIG1lLmhpZGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGJvdHRvbSA9IG5ldyBQYW5lbCgpOworICAgICAgICBib3R0b20uc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KEZsb3dMYXlvdXQuQ0VOVEVSLCAwLCAwKSk7CisgICAgICAgIGJvdHRvbS5hZGQoYnV0dG9uKTsKKyAgICAgICAgdGhpcy5hZGQoIlNvdXRoIiwgYm90dG9tKTsKKyAgICAgICAgdGhpcy5wYWNrKCk7CisgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgbWUuaGlkZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9BcmFiaWMtTGF0aW4udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfQXJhYmljLUxhdGluLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDZjNjU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfQXJhYmljLUxhdGluLnR4dApAQCAtMCwwICsxLDI0IEBACivvu78jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQFVQUEVSRklMVEVSQAor2YXYpyDZh9mKINin2YTYtNmB2LHYqSDYp9mE2YXZiNit2K/YqSAi2YrZiNmG2ZDZg9mI2K8iINifCisKK9ij2LPYp9iz2YvYp9iMINiq2KrYudin2YXZhCDYp9mE2K3ZiNin2LPZitioINmB2YLYtyDZhdi5INin2YTYo9ix2YLYp9mF2Iwg2YjYqtmC2YjZhSDYqNiq2K7YstmK2YYg2KfZhNij2K3YsdmBINmI2KfZhNmF2K3Yp9ix2YEg2KfZhNij2K7YsdmJINio2LnYryDYo9mGINiq2Y/Yudi32Yog2LHZgtmF2Kcg2YXYudmK2YbYpyDZhNmD2YQg2YjYp9it2K8g2YXZhtmH2KcuINmI2YLYqNmEINin2K7Yqtix2KfYuSAi2YrZiNmG2ZDZg9mI2K8i2Iwg2YPYp9mGINmH2YbYp9mDINmF2KbYp9iqINin2YTYo9mG2LjZhdipINmE2YTYqti02YHZitixINmI2KrYrti12YrYtSDZh9iw2Ycg2KfZhNij2LHZgtin2YUg2YTZhNmF2K3Yp9ix2YHYjCDZiNmE2YUg2YrZiNis2K8g2YbYuNin2YUg2KrYtNmB2YrYsSDZiNin2K3YryDZitit2KrZiNmKINi52YTZiSDYrNmF2YrYuSDYp9mE2YXYrdin2LHZgSDYp9mE2LbYsdmI2LHZitipLiDZiNi52YTZiSDYs9io2YrZhCDYp9mE2YXYq9in2YTYjCDZgdil2YYg2KfZhNin2KrYrdin2K8g2KfZhNij2YjYsdmI2KjZiiDZhNmI2K3Yr9mH2Iwg2KfYrdiq2YjZiSDYp9mE2LnYr9mK2K8g2YXZhiDYp9mE2LTZgdix2KfYqiDYp9mE2YXYrtiq2YTZgdipINmE2YrYuti32Yog2KzZhdmK2Lkg2KfZhNmE2LrYp9iqINin2YTZhdiz2KrYrtiv2YXYqSDZgdmKINin2YTYp9iq2K3Yp9ivLiDZiNit2KrZiSDZhNmIINin2LnYqtio2LHZhtinINmE2LrYqSDZiNin2K3Yr9ip2Iwg2YPYp9mE2YTYutipINin2YTYpdmG2KzZhNmK2LLZitip2Iwg2YHYpdmGINis2K/ZiNmEINi02YHYsdipINmI2KfYrdivINmE2YUg2YrZg9mBINmE2KfYs9iq2YrYudin2Kgg2KzZhdmK2Lkg2KfZhNij2K3YsdmBINmI2LnZhNin2YXYp9iqINin2YTYqtix2YLZitmFINmI2KfZhNix2YXZiNiyINin2YTZgdmG2YrYqSDZiNin2YTYudmE2YXZitipINin2YTYtNin2KbYudipINin2YTYp9iz2KrYudmF2KfZhC4KKworIAorCivZiNiq2KzYr9ixINin2YTZhdmE2KfYrdi42Kkg2KPZhiDYo9mG2LjZhdipINin2YTYqti02YHZitixINin2YTZhdiu2KrZhNmB2Kkg2KrYqti52KfYsdi2INmF2Lkg2KjYudi22YfYpyDYp9mE2KjYudi2LiDZiNio2LnYqNin2LHYqSDYo9iu2LHZidiMINmK2YXZg9mGINij2YYg2YrYs9iq2K7Yr9mQ2YUg2KzYr9mI2YTZiiDYtNmB2LHYqSDZhtmB2LMg2KfZhNix2YLZhSDZhNiq2YXYq9mK2YQg2YXYrdix2YHZitmGINmF2K7YqtmE2YHZitmG2Iwg2KPZiCDYsdmC2YXZitmGINmF2K7YqtmE2YHZitmGINmE2KrZhdir2YrZhCDZhtmB2LMg2KfZhNmF2K3YsdmBLiDZiNmE2Ygg2KPYrtiw2YbYpyDYo9mKINis2YfYp9iyINit2KfYs9mI2KjYjCDZiNio2K7Yp9i12Kkg2KzZh9in2LIg2KfZhNmG2KfYr9mEIChzZXJ2ZXIp2Iwg2YHZitis2Kgg2KPZhiDYqtmD2YjZhiDZhNiv2YrZhyDYp9mE2YLYr9ix2Kkg2LnZhNmJINin2YTYqti52KfZhdmEINmF2Lkg2LnYr9ivINmD2KjZitixINmF2YYg2KfZhNi02YHYsdin2Kog2KfZhNmF2K7YqtmE2YHYqdiMINmI2YrYqtmFINiq2LXZhdmK2YXZhyDYudmE2Ykg2YfYsNinINin2YTYo9iz2KfYsy4g2YjZhdi5INiw2YTZg9iMINmB2LnZhtiv2YXYpyDYqtmF2LEg2KfZhNio2YrYp9mG2KfYqiDYudio2LEg2KPZhti42YXYqSDZhdiu2KrZhNmB2KnYjCDYqtmI2KzYryDZh9mG2KfZgyDYrti32YjYsdipINmE2LbZitin2Lkg2KPZiCDYqtit2LHZitmBINio2LnYtiDZh9iw2Ycg2KfZhNio2YrYp9mG2KfYqi4KKworIAorCisi2YrZiNmG2ZDZg9mI2K8iINiq2LrZitixINmH2LDYpyDZg9mE2YrYpyAhCisKK9iq2K7Ytdi1INin2YTYtNmB2LHYqSDYp9mE2YXZiNit2K/YqSAi2YrZiNmG2ZDZg9mI2K8iINix2YLZhdinINmI2K3Zitiv2Kcg2YTZg9mEINmF2K3YsdmBINmB2Yog2KzZhdmK2Lkg2KfZhNmE2LrYp9iqINin2YTYudin2YTZhdmK2KnYjCDZiNiw2YTZgyDYqNi62LYg2KfZhNmG2LjYsSDYudmGINmG2YjYuSDYp9mE2K3Yp9iz2YjYqCDYo9mIINin2YTYqNix2KfZhdisINin2YTZhdiz2KrYrtiv2YXYqS4g2YjZgtivINiq2YUg2KrYqNmG2Yog2YXZiNin2LXZgdipICLZitmI2YbZkNmD2YjYryIg2YXZhiDZgtio2YQg2YLYp9iv2Kkg2KfZhNi12KfZhti52YrZhiDZhNij2YbYuNmF2Kkg2KfZhNit2YjYp9iz2YrYqCDZgdmKINin2YTYudin2YTZhdiMINmF2KvZhCDYtNix2YPYp9iqINii2You2KjZii7YpdmFLiAoSUJNKdiMINij2KjZhCAoQVBQTEUp2Iwg2YfZkNmK2ZLZiNmE2ZDYqiDYqNin2YPYsdivIChIZXdsZXR0LVBhY2thcmQpINiMINmF2KfZitmD2LHZiNiz2YjZgdiqIChNaWNyb3NvZnQp2Iwg2KPZiNix2KfZg9mQ2YQgKE9yYWNsZSkg2Iwg2LXZhiAoU3VuKSDZiNi62YrYsdmH2KcuINmD2YXYpyDYo9mGINin2YTZhdmI2KfYtdmB2KfYqiDZiNin2YTZhdmC2KfZitmK2LMg2KfZhNit2K/Zitir2KkgKNmF2KvZhCDZhNi62Kkg2KfZhNio2LHZhdis2KkgItis2KfZgdinIiAiSkFWQSIg2YjZhNi62KkgItil2YPYsyDYpdmFINil2YQiICJYTUwiINin2YTYqtmKINiq2LPYqtiu2K/ZhSDZhNio2LHZhdis2Kkg2KfZhNin2YbYqtix2YbZitiqKSDYqtiq2LfZhNioINin2LPYqtiu2K/Yp9mFICLZitmI2YbZkNmD2YjYryIuINi52YTYp9mI2Kkg2LnZhNmJINiw2YTZgyDYjCDZgdil2YYgItmK2YjZhtmQ2YPZiNivIiDZh9mKINin2YTYt9ix2YrZgtipINin2YTYsdiz2YXZitipINmE2KrYt9io2YrZgiDYp9mE2YXZgtmK2KfYsyDYp9mE2LnYp9mE2YXZiiDYpdmK2LLZiCDZodmg2abZpNmmICAoSVNPIDEwNjQ2KSAuCisKKyAKKwor2KXZhiDYqNiy2YjYuiDZhdmI2KfYtdmB2KkgItmK2YjZhtmQ2YPZiNivIiDZiNiq2YjZgdmR2Y/YsSDYp9mE2KPZhti42YXYqSDYp9mE2KrZiiDYqtiz2KrYrtiv2YXZhyDZiNiq2K/YudmF2YfYjCDZiti52KrYqNixINmF2YYg2KPZh9mFINin2YTYp9iu2KrYsdin2LnYp9iqINin2YTYrdiv2YrYq9ipINmB2Yog2LnZiNmE2YXYqSDYp9mE2KjYsdmF2KzZitin2Kog2YTYrNmF2YrYuSDYp9mE2YTYutin2Kog2YHZiiDYp9mE2LnYp9mE2YUuINmI2KXZhiDYp9iz2KrYrtiv2KfZhSAi2YrZiNmG2ZDZg9mI2K8iINmB2Yog2LnYp9mE2YUg2KfZhNin2YbYqtix2YbZitiqINiz2YrYpNiv2Yog2KXZhNmJINiq2YjZgdmK2LEg2YPYqNmK2LEg2YXZgtin2LHZhtipINmF2Lkg2KfYs9iq2K7Yr9in2YUg2KfZhNmF2KzZhdmI2LnYp9iqINin2YTYqtmC2YTZitiv2YrYqSDZhNmE2YXYrdin2LHZgSDYp9mE2YXYtNmB2LHYqS4g2YPZhdinINij2YYg2KfYs9iq2K7Yr9in2YUgItmK2YjZhtmQ2YPZiNivIiDYs9mK2Y/ZhdmD2ZHZkNmGINin2YTZhdio2LHZhdisINmF2YYg2YPYqtin2KjYqSDYp9mE2KjYsdmG2KfZhdisINmF2LHYqSDZiNin2K3Yr9ip2Iwg2YjYp9iz2KrYrtiv2KfZhdmHINi52YTZiSDYo9mKINmG2YjYuSDZhdmGINin2YTYo9is2YfYstipINij2Ygg2KfZhNij2YbYuNmF2KnYjCDZiNmE2KPZiiDZhNi62Kkg2KPZiCDYr9mI2YTYqSDZgdmKINin2YTYudin2YTZhSDYo9mK2YbZhdinINmD2KfZhtiq2Iwg2K/ZiNmGINin2YTYrdin2KzYqSDZhNil2LnYp9iv2Kkg2KfZhNio2LHZhdis2Kkg2KPZiCDYpdis2LHYp9ihINij2Yog2KrYudiv2YrZhC4g2YjYo9iu2YrYsdin2Iwg2YHYpdmGINin2LPYqtiu2K/Yp9mFICLZitmI2YbZkNmD2YjYryIg2LPZitmF2YPZhiDYp9mE2KjZitin2YbYp9iqINmF2YYg2KfZhNin2YbYqtmC2KfZhCDYudio2LEg2KfZhNij2YbYuNmF2Kkg2YjYp9mE2KPYrNmH2LLYqSDYp9mE2YXYrtiq2YTZgdipINiv2YjZhiDYo9mKINiu2LfZiNix2Kkg2YTYqtit2LHZitmB2YfYp9iMINmF2YfZhdinINiq2LnYr9iv2Kog2KfZhNi02LHZg9in2Kog2KfZhNi12KfZhti52Kkg2YTZhNij2YbYuNmF2Kkg2YjYp9mE2YTYutin2KrYjCDZiNin2YTYr9mI2YQg2KfZhNiq2Yog2KrZhdixINmF2YYg2K7ZhNin2YTZh9inINmH2LDZhyDYp9mE2KjZitin2YbYp9iqLiAKKworQFNFVCBbW1s6QXJhYmljOl0gJiBbXHUwNjAwLVx1MDZGRl1dIFvigI5cdTA2MENcdTA2MUJcdTA2MUZcdTA2NDBcdTA2NEItXHUwNjU1XHUwNjYwLVx1MDY2Q1x1MDZGMC1cdTA2RjldXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0dyZWVrLUxhdGluLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0dyZWVrLUxhdGluLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzgwMDc0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfR3JlZWstTGF0aW4udHh0CkBAIC0wLDAgKzEsNzMgQEAKK++7vyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK86kzrkgzrXOr869zrHOuSDPhM6/IFVuaWNvZGU/IAorCivOlyDOus+JzrTOuc66zr/Pg861zrvOr860zrEgVW5pY29kZSDPgM+Bzr/PhM61zq/Ovc61zrkgzq3Ovc6xzr0gzrrOsc65IM68zr/Ovc6xzrTOuc66z4wgzrHPgc65zrjOvM+MIM6zzrnOsSDOus6szrjOtSDPh86xz4HOsc66z4TOrs+BzrEsIM6xzr3Otc6+zqzPgc+EzrfPhM6xIM6xz4DPjCDPhM6/IM67zrXOuc+Ezr/Phc+BzrPOuc66z4wgz4PPjc+Dz4TOt868zrEsIM6xzr3Otc6+zqzPgc+EzrfPhM6xIM6xz4DPjCDPhM6/IM67zr/Os865z4POvM65zrrPjCwgzrHOvc61zr7OrM+Bz4TOt8+EzrEgzrHPgM+MIM+EzrfOvSDOs867z47Pg8+DzrEuCisKK86fzrkgzrfOu861zrrPhM+Bzr/Ovc65zrrOv86vIM+Fz4DOv867zr/Os865z4PPhM6tz4IsIM+DzrUgz4TOtc67zrnOus6uIM6xzr3OrM67z4XPg863LCDPh861zrnPgc6vzrbOv869z4TOsc65IM6xz4DOu8+Oz4IgzrHPgc65zrjOvM6/z43Pgi4gzpHPgM6/zrjOt866zrXPjc6/z4XOvSDOs8+BzqzOvM68zrHPhM6xIM66zrHOuSDOrM67zrvOv8+Fz4Igz4fOsc+BzrHOus+Ezq7Pgc61z4IgzrHOvc+EzrnPg8+Ezr/Ouc+Hz47Ovc+EzrHPgiDPg8+Ezr8gzrrOsc64zq3Ovc6xIM+Ezr/Phc+CIM6xz4DPjCDOrc69zrHOvSDOsc+BzrnOuM68z4wgKM6/zr3Ov868zqzOts6/z4XOvM61IM68zq/OsSDPhM6tz4TOv865zrEgzrHOvc+EzrnPg8+Ezr/Ouc+Hzq/OsSDOus+JzrTOuc66zr/Pg861zrvOr860zrEpLiDOoM+BzrnOvSDPhM63zr0gzrXPhs61z43Pgc61z4POtyDPhM6/z4UgVW5pY29kZSwgz4XPgM6uz4HPh86xzr0gzrXOus6xz4TOv869z4TOrM60zrXPgiDOtM65zrHPhs6/z4HOtc+EzrnOus6tz4IgzrrPic60zrnOus6/z4POtc67zq/OtM61z4IuIM6bz4zOs8+JIM+AzrXPgc65zr/Pgc65z4POvM+Ozr0gzrzOtc6zzq3OuM6/z4XPgiDPjM68z4nPgiwgz4POtSDOus6xzrzOr86xIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSDOtM61zr0gz4fPic+Bzr/Pjc+DzrHOvSDOsc+BzrrOtc+Ezr/OryDPh86xz4HOsc66z4TOrs+BzrXPgjogzrvPjM6zzr/PhSDPh86sz4HOuc69LCDOtyDOlc+Fz4HPic+AzrHPis66zq4gzojOvc+Jz4POtyDPh8+BzrXOuc6xzrbPjM+EzrHOvSDPgM67zq7OuM6/z4IgzrTOuc6xz4bOv8+BzrXPhM65zrrPjs69IM66z4nOtM65zrrOv8+DzrXOu86vzrTPic69IM6zzrnOsSDOvc6xIM66zrHOu8+Nz4jOtc65IM+MzrvOtc+CIM+EzrnPgiDOs867z47Pg8+DzrXPgiDPhM+Jzr0gz4fPic+Bz47OvS3OvM61zrvPjs69IM+EzrfPgi4gzpHOus+MzrzOsSDOus6xzrkgzrPOuc6xIM68zq/OsSDOus6xzrkgzrzPjM69zrcgzrPOu8+Oz4PPg86xLCDPjM+Az4nPgiDPgC7Phy4gz4TOsSDOkc6zzrPOu865zrrOrCwgzrzOr86xIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSDOtM61zr0gzrXPgM6xz4HOus6/z43Pg861IM6zzrnOsSDOvc6xIM66zrHOu8+Nz4jOtc65IM+MzrvOsSDPhM6xIM6zz4HOrM68zrzOsc+EzrEsIM+DzrfOvM61zq/OsSDPg8+Ezq/Ovs63z4IgzrrOsc65IM+EzrXPh869zrnOus6sIM+Dz43OvM6yzr/Ou86xIM61z4XPgc61zq/Osc+CIM+Hz4HOrs+DzrfPgi4KKworzpXOus+Ez4zPgiDOsc+Fz4TOv8+NLCDOv865IM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CIM6xz4XPhM6tz4IgzrTOuc6xz4bPic69zr/Pjc+DzrHOvSDOvM61z4TOsc6+z40gz4TOv8+Fz4IuIM6Iz4TPg865LCDOtM+Nzr8gzrrPic60zrnOus6/z4POtc67zq/OtM61z4IgzrzPgM6/z4HOv8+Nz4POsc69IM66zqzOu867zrnPg8+EzrEgzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc6/z43OvSDPhM6/zr0gzq/OtM65zr8gzrHPgc65zrjOvM+MIM6zzrnOsSDOtM+Nzr8gzrTOuc6xz4bOv8+BzrXPhM65zrrOv8+Nz4Igz4fOsc+BzrHOus+Ezq7Pgc61z4IsIM6uIM69zrEgz4fPgc63z4POuc68zr/PgM6/zrnOv8+Nzr0gzrTOuc6xz4bOv8+BzrXPhM65zrrOv8+Nz4IgzrHPgc65zrjOvM6/z43PgiDOs865zrEgz4TOv869IM6vzrTOuc6/IM+HzrHPgc6xzrrPhM6uz4HOsS4gzprOrM64zrUgz4XPgM6/zrvOv86zzrnPg8+Ezq7PgiAozrrOsc65IM65zrTOr8+Jz4IgzrXOrM69IM6uz4TOsc69IM60zrnOsc66zr/OvM65z4PPhM6uz4IpIM6tz4DPgc61z4DOtSDOvc6xIM+Fz4DOv8+Dz4TOt8+Bzq/Ots61zrkgz4DOu86uzrjOv8+CIM60zrnOsc+Gzr/Pgc61z4TOuc66z47OvSDOus+JzrTOuc66zr/Pg861zrvOr860z4nOvc6HIM+EzrHPhc+Ez4zPh8+Bzr/Ovc6xIM66zqzOuM61IM+Gzr/Pgc6sIM+Azr/PhSDOtM61zrTOv868zq3Ovc6xIM68zrXPhM6xz4bOrc+Bzr/Ovc+EzrHOvSDOvM61z4TOsc6+z40gzrTOuc6xz4bOv8+BzrXPhM65zrrPjs69IM66z4nOtM65zrrOv8+DzrXOu86vzrTPic69IM6uIM67zrXOuc+Ezr/Phc+BzrPOuc66z47OvSDPg8+Fz4PPhM63zrzOrM+Ez4nOvSwgz4TOsSDOtM61zrTOv868zq3Ovc6xIM6xz4XPhM6sIM66zrnOvc60z43Ovc61z4XOsc69IM69zrEgzrHOu867zr/Ouc+JzrjOv8+Nzr0uCisKK86kzr8gVW5pY29kZSDOsc67zrvOrM62zrXOuSDOsc+Fz4TOriDPhM63zr0gzrrOsc+EzqzPg8+EzrHPg863IQorzqTOvyBVbmljb2RlIM+Az4HOv8+EzrXOr869zrXOuSDOrc69zrHOvSDOvM6/zr3Osc60zrnOus+MIM6xz4HOuc64zrzPjCDOs865zrEgzrrOrM64zrUgz4fOsc+BzrHOus+Ezq7Pgc6xLCDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOvyDOu861zrnPhM6/z4XPgc6zzrnOus+MIM+Dz43Pg8+EzrfOvM6xLCDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOvyDOu86/zrPOuc+DzrzOuc66z4wsIM6xzr3Otc6+zqzPgc+EzrfPhM6xIM6xz4DPjCDPhM63zr0gzrPOu8+Oz4PPg86xLiDOpM63zr0gzrrPic60zrnOus6/z4POtc67zq/OtM6xIFVuaWNvZGUgzq3Ph86/z4XOvSDOsc+Dz4DOsc+DzrjOtc6vIM66zr/Pgc+Fz4bOsc6vzr/OuSDPgM6xz4HOrM6zzr/Ovc+EzrXPgiDPhM6/z4Ugz4fPjs+Bzr/PhSDPhM+Jzr0gzrvOv86zzrnPg868zrnOus+Ozr0gz4zPgM+Jz4Igzr/OuTogQXBwbGUsIEhQLCBJQk0sIEp1c3RTeXN0ZW0sIE1pY3Jvc29mdCwgT3JhY2xlLCBTQVAsIFN1biwgU3liYXNlLCBVbmlzeXMgzrrOsc65IM+Azr/Ou867zr/OryDOrM67zrvOv865LiDOpM6/IFVuaWNvZGUgzrHPgM6xzrnPhM6/z43OvSDPgM6/zrvOu86tz4Igz4PPjc6zz4fPgc6/zr3Otc+CIM+Ez4XPgM6/z4DOv865zq7Pg861zrnPgiDPjM+Az4nPgiDOv865OiBYTUwsIEphdmEsIEVDTUFTY3JpcHQgKEphdmFTY3JpcHQpLCBMREFQLCBDT1JCQSAzLjAsIFdNTCwgzrouzrvPgC4sIM66zrHOuSDOtc6vzr3Osc65IM63IM61z4DOr8+DzrfOvM63IM68zq3OuM6/zrTOv8+CIM61z4bOsc+BzrzOv86zzq7PgiDPhM63z4Igz4TPhc+Azr/PgM6/zq/Ot8+DzrfPgiBJU08vSUVDIDEwNjQ2LiDOpc+Azr/Pg8+EzrfPgc6vzrbOtc+EzrHOuSDOsc+Az4wgz4DOv867zrvOrCDOu861zrnPhM6/z4XPgc6zzrnOus6sIM+Dz4XPg8+Ezq7OvM6xz4TOsSwgz4zOu86/z4XPgiDPhM6/z4XPgiDPg8+Nz4fPgc6/zr3Ov8+Fz4Igz4DOtc+BzrnOt86zzrfPhM6tz4IgzpTOuc6xzrTOuc66z4TPjc6/z4UsIM66zrHOuSDPgM6/zrvOu86sIM6szrvOu86xIM+Az4HOv8+Kz4zOvc+EzrEuIM6XIM61zrzPhs6szr3Ouc+Dzrcgz4TOt8+CIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsc+CIFVuaWNvZGUsIM66zrHOuSDOtyDOtM65zrHOuM61z4POuc68z4zPhM63z4TOsSDOtc+BzrPOsc67zrXOr8+Jzr0gz4DOv8+FIM69zrEgz4TOt869IM+Fz4DOv8+Dz4TOt8+Bzq/Ots6/z4XOvSDOtc6vzr3Osc65IM6xz4DPjCDPhM65z4Igz4POt868zrHOvc+EzrnOus+Mz4TOtc+BzrXPgiDOtc6+zrXOu86vzr7Otc65z4Igz4TOt8+CIM+Az4HPjM+Dz4bOsc+EzrfPgiDPhM61z4fOvc6/zrvOv86zzq/Osc+CIM67zr/Os865z4POvM65zrrPjs69LgorCivOlyDOtc69z4PPic68zqzPhM+Jz4POtyDPhM6/z4UgVW5pY29kZSDPg861IM61z4bOsc+BzrzOv86zzq3PgiDPgM61zrvOrM+EzrctzrTOuc6xzrrOv868zrnPg8+Ezq4gzq4gIm11bHRpLXRpZXJlZCIgz4DPgc6/z4PPhs6tz4HOtc65IM+DzrfOvM6xzr3PhM65zrrOrc+CIM6/zrnOus6/zr3Ov868zq/Otc+CIM+DzrUgz4PPh86tz4POtyDOvM61IM+EzrnPgiDPic+CIM+Ez47Pgc6xIM+Fz4DOrM+Bz4fOv8+Fz4POtc+CIM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CLiDOp86sz4HOuc+CIM+Dz4TOvyBVbmljb2RlIM6tzr3OsSDOus6xzrkgzrzPjM69zr8gz4DPgc6/z4rPjM69IM6uIM68zq/OsSDOus6xzrkgzrzPjM69zrcgz4TOv8+Azr/OuM61z4POr86xIM6UzrnOsc60zrnOus+Ez43Ov8+FIM68z4DOv8+BzrXOryDOvc6xIM61z4DOuc66zr/Ouc69z4nOvc61zq8gzrzOtSDOtM65zqzPhs6/z4HOsSDOu861zrnPhM6/z4XPgc6zzrnOus6sIM+Dz4XPg8+Ezq7OvM6xz4TOsSwgz4POtSDOtM65zqzPhs6/z4HOtc+CIM6zzrvPjs+Dz4POtc+CIM66zrHOuSDPh8+Oz4HOtc+CLCDPh8+Jz4HOr8+CIM+EzrfOvSDOsc69zqzOs866zrcgzrXPgM6xzr3Osc+Az4HOv86zz4HOsc68zrzOsc+EzrnPg868zr/PjS4gzpPOr869zrXPhM6xzrkgzq3PhM+DzrkgzrTPhc69zrHPhM6uIM63IM68zrXPhM6xz4bOv8+BzqwgzrTOtc60zr/OvM6tzr3Pic69IM6xzr3OrM68zrXPg86xIM+DzrUgz4DOu86uzrjOv8+CIM60zrnOsc+Gzr/Pgc61z4TOuc66z47OvSDPg8+Fz4PPhM63zrzOrM+Ez4nOvSDOtM6vz4fPic+CIM66zq/Ovc60z4XOvc6/IM6xzrvOu86/zq/Pic+DzrfPgi4KKworzqPPh861z4TOuc66zqwgzrzOtSDPhM6/IM6azr/Ovc+Dz4zPgc+EzrnOv8+FzrwgVW5pY29kZQorVM6/IM6azr/Ovc+Dz4zPgc+EzrnOv8+FzrwgVW5pY29kZSDOtc6vzr3Osc65IM6tzr3Osc+CIM66zr/Ouc69z4nPhs61zrvOrs+CIM6/z4HOs86xzr3Ouc+DzrzPjM+CzocgzrnOtM+Bz43OuM63zrrOtSDOs865zrEgzr3OsSDOsc69zrHPgM+Ez43Ovs61zrksIM69zrEgzrXPgM61zrrPhM61zq/Ovc61zrkgzrrOsc65IM69zrEgzrzOtc+EzrHOtM+Oz4POtc65IM+EzrfOvSDPh8+Bzq7Pg863IM+EzrfPgiDOus+JzrTOuc66zr/Pg861zrvOr860zrHPgiBVbmljb2RlIM+Azr/PhSDOus6xzrjOv8+Bzq/Ots61zrkgz4TOt869IM6xzr3Osc+AzrHPgc6sz4PPhM6xz4POtyDOus61zrnOvM6tzr3Ov8+FIM+DzrUgz4PPjc6zz4fPgc6/zr3OsSDOu86/zrPOuc+DzrzOuc66zqwgz4DPgc6/z4rPjM69z4TOsSDOus6xzrkgz4TPhc+Azr/PgM6/zrnOrs+DzrXOuc+CLiDOnM61zrPOrM67zr/PgiDOsc+BzrnOuM68z4zPgiDOtc+EzrHOuc+BzrXOuc+Ozr0gzrrOsc65IM6/z4HOs86xzr3Ouc+DzrzPjs69IM+EzrfPgiDOtM65zrXOuM69zr/Pjc+CIM6yzrnOv868zrfPh86xzr3Or86xz4Igz4XPgM6/zrvOv86zzrnPg8+Ez47OvSDOus6xzrkgzrvOv86zzrnPg868zrnOus+Ozr0gzrXOr869zrHOuSDOvM6tzrvOtyDPhM6/z4UgzprOv869z4PPjM+Bz4TOuc6/z4XOvCBVbmljb2RlLiDOpM6/IM6azr/Ovc+Dz4zPgc+EzrnOv8+Fzrwgz4fPgc63zrzOsc+Ezr/OtM6/z4TOtc6vz4TOsc65IM68z4zOvc6/IM6xz4DPjCDPhM65z4Igz4PPhc69zrTPgc6/zrzOrc+CIM+Ez4nOvSDOvM61zrvPjs69IM+Ezr/PhS4gzpzOrc67zr/PgiDPhM6/z4UgzrrOv869z4PPjM+Bz4TOuc6/z4XOvCBVbmljb2RlIM68z4DOv8+BzrXOryDOvc6xIM6zzq/Ovc61zrkgzr/Ouc6/z4POtM6uz4DOv8+EzrUgKM6/z4HOs86xzr3Ouc+DzrzPjM+CLCDOtc+EzrHOuc+BzrXOr86xIM6uIM65zrTOuc+Oz4TOt8+CLCDOv8+Azr/Phc60zq7PgM6/z4TOtSDPg8+Ezr/OvSDOus+Mz4POvM6/KSDPgM6/z4Ugzr3OsSDPhc+Azr/Pg8+EzrfPgc6vzrbOtc65IM+EzrfOvSDOus+JzrTOuc66zr/Pg861zrvOr860zrEgVW5pY29kZSDOus6xzrkgzr3OsSDOtc+AzrnOuM+FzrzOtc6vIM69zrEgz4PPhc69zrTPgc6szrzOtc65IM+Dz4TOt869IM61z4DOrc66z4TOsc+DzrcgzrrOsc65IM+Dz4TOt869IM61z4bOsc+BzrzOv86zzq4gz4TOt8+CLgorCivOk865zrEgz4DOtc+BzrHOuc+Ezq3Pgc+JIM+AzrvOt8+Bzr/Phs6/z4HOr861z4IsIM6yzrvOrc+AzrUgz4TOuc+CIM61zr7Ors+CIM65z4PPhM6/z4POtc67zq/OtM61z4I6IM6TzrvPic+Dz4POrM+BzrksIM6UzrXOr86zzrzOsc+EzrEgz4DPgc6/z4rPjM69z4TPic69IM+Dz4XOvM6yzrHPhM+Ozr0gzrzOtSDPhM6/IFVuaWNvZGUsIM6kzrXPh869zrnOus6uIM6VzrnPg86xzrPPic6zzq4gzrrOsc65IM6nz4HOrs+DzrnOvM61z4Igz4DOt86zzq3PgiDPgM67zrfPgc6/z4bOv8+BzrnPjs69LgorCisoQU5DSUVOVCkKKwor4byEzr3OtM+BzrEgzrzOv865IOG8lM69zr3Otc+AzrUsIM68zr/hv6bPg86xLCDPgM6/zrvPjc+Ez4HOv8+Azr/OvSwg4b2Dz4IgzrzOrM67zrEgz4DOv867zrvhvbAKK8+AzrvOrM6zz4fOuM63LCDhvJDPgM614b22IM6kz4HOv86vzrfPgiDhvLHOtc+B4b24zr0gz4DPhM6/zrvOr861zrjPgc6/zr0g4byUz4DOtc+Bz4POtc69Ogorz4DOv867zrvhv7bOvSDOtOKAmSDhvIDOvc64z4HPjs+Az4nOvSDhvLTOtM61zr0g4byEz4PPhM61zrEgzrrOseG9tiDOvc+Mzr/OvSDhvJTOs869z4ksCivPgM6/zrvOu+G9sCDOtOKAmSDhvYUgzrPigJkg4byQzr0gz4DPjM69z4Thv7Mgz4DOrM64zrXOvSDhvITOu86zzrXOsSDhvYPOvSDOus6xz4ThvbAgzrjPhc68z4zOvSwKK+G8gM+Bzr3Pjc68zrXOvc6/z4Ig4bylzr0gz4TOtSDPiM+Fz4fhvbTOvSDOus6x4b22IM69z4zPg8+Ezr/OvSDhvJHPhM6xzq/Pgc+Jzr0uCivhvIDOu8674oCZIM6/4b2QzrTigJkg4b2jz4Ig4byRz4TOrM+Bzr/Phc+CIOG8kM+Bz4HPjc+DzrHPhM6/LCDhvLHOrc68zrXOvc+Mz4Igz4DOtc+BOgorzrHhvZDPhOG/ts69IM6z4b2wz4Egz4PPhs61z4TOrc+B4b+Dz4POuc69IOG8gM+EzrHPg864zrHOu86v4b+Dz4POuc69IOG9hM67zr/Ovc+Ezr8sCivOvc6uz4DOuc6/zrksIM6/4byzIM66zrHPhOG9sCDOss6/4b+mz4Ig4b2Zz4DOtc+Bzq/Ov869zr/PgiDhvKjOtc67zq/Ov865zr8KK+G8pM+DzrjOuc6/zr06IM6x4b2Qz4ThvbDPgSDhvYEgz4TOv+G/ls+DzrnOvSDhvIDPhs61zq/Ou861z4TOvyDOvc+Mz4PPhM65zrzOv869IOG8ps68zrHPgS4KK8+E4b+2zr0g4byBzrzPjM64zrXOvSDOs861LCDOuM61zqwsIM64z43Os86xz4TOtc+BIM6UzrnPjM+CLCDOteG8sM+A4b2yIM66zrHhvbYg4byhzrzhv5bOvS4KKyoKK+G8lM69zrjigJkg4byEzrvOu86/zrkgzrzhvbLOvSDPgM6szr3PhM61z4IsIOG9hc+Dzr/OuSDPhs+NzrPOv869IM6x4bywz4DhvbrOvSDhvYTOu861zrjPgc6/zr0sCivOv+G8tM66zr/OuSDhvJTPg86xzr0sIM+Az4zOu861zrzPjM69IM+EzrUgz4DOtc+GzrXPhc6zz4zPhM61z4Ig4bygzrThvbIgzrjOrM67zrHPg8+DzrHOvToKK8+E4b24zr0gzrTigJkgzr/hvLbOv869IM69z4zPg8+Ezr/PhSDOus61z4fPgc63zrzOrc69zr/OvSDhvKDOtOG9siDOs8+Fzr3Osc65zrrhvbjPggorzr3Pjc68z4bOtyDPgM+Mz4TOvc654oCZIOG8lM+Bz4XOus61IM6azrHOu8+Fz4jhvbwgzrThv5bOsSDOuM61zqzPic69CivhvJDOvSDPg8+Azq3Pg8+DzrkgzrPOu86xz4bPhc+Bzr/hv5bPg865LCDOu865zrvOsc65zr/OvM6tzr3OtyDPgM+Mz4POuc69IM614by2zr3Osc65Lgor4byAzrvOu+KAmSDhvYXPhM61IM604b20IOG8lM+Ezr/PgiDhvKbOu864zrUgz4DOtc+BzrnPgM67zr/OvM6tzr3Pic69IOG8kM69zrnOsc+Fz4Thv7bOvSwKK8+E4b+3IM6/4byxIOG8kM+AzrXOus67z47Pg86xzr3PhM6/IM64zrXOv+G9tiDOv+G8ts66z4zOvc60zrUgzr3Orc61z4POuM6xzrkKK8614bywz4Ig4by4zrjOrM66zrfOvSwgzr/hvZDOtOKAmSDhvJTOvc64zrEgz4DOtc+Gz4XOs868zq3Ovc6/z4Ig4bymzrXOvSDhvIDOrc64zrvPic69CivOus6x4b22IM68zrXPhOG9sCDOv+G8t8+Dzrkgz4bOr867zr/Ouc+DzrkuIM64zrXOv+G9tiDOtOKAmSDhvJDOu86tzrHOuc+Bzr/OvSDhvIXPgM6xzr3PhM61z4IKK869z4zPg8+GzrkgzqDOv8+DzrXOuc60zqzPic69zr/Pgjog4b2BIM604oCZIOG8gM+Dz4DOtc+Bz4fhvbLPgiDOvM61zr3Orc6xzrnOvc61zr0KK+G8gM69z4TOuc64zq3hv7Mg4b2IzrTPhc+D4b+Gzrkgz4DOrM+Bzr/PgiDhvKPOvSDOs86x4b+WzrHOvSDhvLHOus6tz4POuM6xzrkuCisqCivhvIDOu8674oCZIOG9gSDOvOG9ss69IM6R4bywzrjOr86/z4DOsc+CIM68zrXPhM61zrrOr86xzrjOtSDPhM63zrvPjM644oCZIOG8kM+Mzr3PhM6xz4IsCivOkeG8sM64zq/Ov8+AzrHPgiDPhM6/4b22IM60zrnPh8644b2wIM60zrXOtM6xzq/Osc+EzrHOuSwg4byUz4PPh86xz4TOv865IOG8gM69zrTPgeG/ts69LAorzr/hvLEgzrzhvbLOvSDOtM+Fz4POv868zq3Ovc6/z4Ug4b2Zz4DOtc+Bzq/Ov869zr/PgiDOv+G8sSDOtOKAmSDhvIDOvc65z4zOvc+Ezr/PgiwKK+G8gM69z4TOuc+Mz4nOvSDPhM6xz43Pgc+Jzr0gz4TOtSDOus6x4b22IOG8gM+Bzr3Otc654b+2zr0g4byRzrrOsc+Ez4zOvM6yzrfPgi4KK+G8lM69zrjigJkg4b2FIM6z4oCZIOG8kM+Ezq3Pgc+AzrXPhM6/IM60zrHOuc+E4b22IM+AzrHPgc6uzrzOtc69zr/Pgjogzr/hvLEgzrThvbIgzrThvbQg4byEzrvOu86/zrkKK86WzrfOveG9uM+CIOG8kM694b22IM68zrXOs86sz4HOv865z4POuc69IOG9iM67z4XOvM+Azq/Ov8+FIOG8gc64z4HPjM6/zrkg4bymz4POsc69Lgorz4TOv+G/ls+DzrkgzrThvbIgzrzPjc64z4nOvSDhvKbPgc+HzrUgz4DOsc+E4b20z4Eg4byAzr3OtM+B4b+2zr0gz4TOtSDOuM614b+2zr0gz4TOtToKK868zr3Ors+DzrHPhM6/IM6z4b2wz4EgzrrOsc+E4b2wIM64z4XOvOG9uM69IOG8gM68z43OvM6/zr3Ov8+CIM6R4bywzrPOr8+DzrjOv865zr8sCivPhM+Mzr0g4b+l4oCZIOG8iM6zzrHOvM61zrzOvc6/zr3Or860zrfPgiDPhM63zrvOtc66zrvPhc+E4b24z4Ig4byUzrrPhM6xzr3igJkg4b2Iz4HOrc+Dz4TOt8+COgorz4TOv+G/piDhvYUgzrPigJkg4byQz4DOuc68zr3Ot8+DzrjOteG9ts+CIOG8lM+AzrXigJkg4byAzrjOsc69zqzPhM6/zrnPg865IM68zrXPhM63z43OtM6xOgorKgor4oCc4b2iIM+Az4zPgM6/zrksIM6/4by3zr/OvSDOtM6uIM69z4UgzrjOtc6/4b26z4IgzrLPgc6/z4TOv+G9tiDOseG8sM+EzrnPjM+Jzr3PhM6xzrk6CivhvJDOviDhvKHOvM6tz4nOvSDOs86sz4Egz4bOsc+DzrkgzrrOrM664oCZIOG8lM68zrzOtc69zrHOuSwgzr/hvLEgzrThvbIgzrrOseG9tiDOseG9kM+Ezr/hvbYKK8+Dz4bhv4fPg865zr0g4byAz4TOsc+DzrjOsc67zq/hv4PPg865zr0g4b2Rz4DhvbLPgSDOvM+Mz4HOv869IOG8hM67zrPOteKAmSDhvJTPh86/z4XPg865zr0sCivhvaHPgiDOus6x4b22IM694b+mzr0gzpHhvLTOs865z4POuM6/z4Ig4b2Rz4DhvbLPgSDOvM+Mz4HOv869IOG8iM+Ez4HOtc6vzIjOtM6xzr8KK86z4b+GzrzigJkg4byEzrvOv8+Hzr/OvSDOvM69zrfPg8+Ezq7OvSwgz4ThvbjOvSDOtOKAmSDhvJTOus+EzrHOvc61IM69zr/Pg8+Ezq7Pg86xzr3PhM6xLAorzrXhvLDOtOG9vM+CIM6x4bywz4DhvbrOvSDhvYTOu861zrjPgc6/zr0sIOG8kM+AzrXhvbYgz4DPgc+MIM6/4byxIM614by0z4DOv868zrXOvSDhvKHOvM614b+Wz4IsCivhvJnPgc68zrXOr86xzr0gz4DOrc68z4jOsc69z4TOtc+CLCDhvJDPjc+DzrrOv8+Azr/OvSDhvIDPgc6zzrXPis+Gz4zOvc+EzrfOvSwKK868zq7PhOKAmSDOseG9kM+E4b24zr0gzrrPhM61zq/Ovc61zrnOvSDOvM6uz4TOtSDOvM69zqzOsc+DzrjOsc65IOG8hM66zr/Ouc+EzrnOvToKK+G8kM66IM6z4b2wz4Eg4b2Iz4HOrc+Dz4TOsc6/IM+Ezq/Pg865z4Ig4byUz4PPg861z4TOsc65IOG8iM+Ez4HOtc6vzIjOtM6xzr8sCivhvYHPgM+Az4zPhOKAmSDhvILOvSDhvKHOss6uz4Phv4Mgz4TOtSDOus6x4b22IOG8p8+CIOG8sc68zrXOr8+BzrXPhM6xzrkgzrHhvLTOt8+CLgor4b2jz4Ig4byUz4bOsc644oCZIOG8mc+BzrzOtc6vzrHPgiwg4byAzrvOu+KAmSDOv+G9kCDPhs+Bzq3Ovc6xz4IgzpHhvLDOs86vz4POuM6/zrnOvworz4DOteG/ls644oCZIOG8gM6zzrHOuOG9sCDPhs+Bzr/Ovc6tz4nOvTogzr3hv6bOvSDOtOKAmSDhvIHOuM+Bz4zOsSDPgM6szr3PhOKAmSDhvIDPgM6tz4TOuc+DzrXOvS7igJ0KKworQFNFVCBbW1s6R3JlZWs6XSZbXHUwMzcwLVx1MDNFMSBcdTAzRjAtXHUwM0ZGXV0gW1w6LTs/XHUwMEI3XHUwMzdFXHUwMzg3XV0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9IYW4tTGF0aW4udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfSGFuLUxhdGluLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjAzNjYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfSGFuLUxhdGluLnR4dApAQCAtMCwwICsxLDI2IEBACivvu78jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQFVQUEVSRklMVEVSQAor5LuA5LmI5pivVW5pY29kZSjnu5/kuIDnoIEpPworVW5pY29kZee7meavj+S4quWtl+espuaPkOS+m+S6huS4gOS4quWUr+S4gOeahOaVsOWtl++8jAor5LiN6K665piv5LuA5LmI5bmz5Y+w77yMCivkuI3orrrmmK/ku4DkuYjnqIvluo/vvIwKK+S4jeiuuuaYr+S7gOS5iOivreiogOOAggorCivln7rmnKzkuIrvvIzorqHnrpfmnLrlj6rmmK/lpITnkIbmlbDlrZfjgILlroPku6zmjIflrprkuIDkuKrmlbDlrZfvvIzmnaXlgqjlrZjlrZfmr43miJblhbbku5blrZfnrKbjgILlnKjliJvpgKBVbmljb2Rl5LmL5YmN77yM5pyJ5pWw55m+56eN5oyH5a6a6L+Z5Lqb5pWw5a2X55qE57yW56CB57O757uf44CC5rKh5pyJ5LiA5Liq57yW56CB5Y+v5Lul5YyF5ZCr6Laz5aSf55qE5a2X56ym77ya5L6L5aaC77yM5Y2V5Y2V5qyn5bee5YWx5ZCM5L2T5bCx6ZyA6KaB5aW95Yeg56eN5LiN5ZCM55qE57yW56CB5p2l5YyF5ous5omA5pyJ55qE6K+t6KiA44CC5Y2z5L2/5piv5Y2V5LiA56eN6K+t6KiA77yM5L6L5aaC6Iux6K+t77yM5Lmf5rKh5pyJ5ZOq5LiA5Liq57yW56CB5Y+v5Lul6YCC55So5LqO5omA5pyJ55qE5a2X5q+N77yM5qCH54K556ym5Y+377yM5ZKM5bi455So55qE5oqA5pyv56ym5Y+344CCCisKK+i/meS6m+e8lueggeezu+e7n+S5n+S8muS6kuebuOWGsueqgeOAguS5n+WwseaYr+ivtO+8jOS4pOenjee8lueggeWPr+iDveS9v+eUqOebuOWQjOeahOaVsOWtl+S7o+ihqOS4pOS4quS4jeWQjOeahOWtl+espu+8jOaIluS9v+eUqOS4jeWQjOeahOaVsOWtl+S7o+ihqOebuOWQjOeahOWtl+espuOAguS7u+S9leS4gOWPsOeJueWumueahOiuoeeul+acuijnibnliKvmmK/mnI3liqHlmagp6YO96ZyA6KaB5pSv5oyB6K645aSa5LiN5ZCM55qE57yW56CB77yM5L2G5piv77yM5LiN6K665LuA5LmI5pe25YCZ5pWw5o2u6YCa6L+H5LiN5ZCM55qE57yW56CB5oiW5bmz5Y+w5LmL6Ze077yM6YKj5Lqb5pWw5o2u5oC75Lya5pyJ5o2f5Z2P55qE5Y2x6Zmp44CCCisKK1VuaWNvZGXmraPlnKjmlLnlj5jmiYDmnInov5nkuIDliIfvvIEKK1VuaWNvZGXnu5nmr4/kuKrlrZfnrKbmj5DkvpvkuobkuIDkuKrllK/kuIDnmoTmlbDlrZfvvIzkuI3orrrmmK/ku4DkuYjlubPlj7DvvIzkuI3orrrmmK/ku4DkuYjnqIvluo/vvIzkuI3orrrku4DkuYjor63oqIDjgIJVbmljb2Rl5qCH5YeG5bey57uP6KKr6L+Z5Lqb5bel5Lia55WM55qE6aKG5a+85Lus5omA6YeH55So77yM5L6L5aaC77yaQXBwbGUsIEhQLCBJQk0sIEp1c3RTeXN0ZW0sIE1pY3Jvc29mdCwgT3JhY2xlLCBTQVAsIFN1biwgU3liYXNlLCBVbmlzeXPlkozlhbblroPorrjlpJrlhazlj7jjgILmnIDmlrDnmoTmoIflh4bpg73pnIDopoFVbmljb2Rl77yM5L6L5aaCWE1MLCBKYXZhLCBFQ01BU2NyaXB0IChKYXZhU2NyaXB0KSwgTERBUCwgQ09SQkEgMy4wLCBXTUznrYnnrYnvvIzlubbkuJTvvIxVbmljb2Rl5piv5a6e546wSVNPL0lFQyAxMDY0NueahOato+inhOaWueW8j+OAguiuuOWkmuaTjeS9nOezu+e7n++8jOaJgOacieacgOaWsOeahOa1j+iniOWZqOWSjOiuuOWkmuWFtuS7luS6p+WTgemDveaUr+aMgeWug+OAglVuaWNvZGXmoIflh4bnmoTlh7rnjrDlkozmlK/mjIHlroPlt6XlhbfnmoTlrZjlnKjvvIzmmK/ov5HmnaXlhajnkIPova/ku7bmioDmnK/mnIDph43opoHnmoTlj5HlsZXotovlir/jgIIKKwor5bCGVW5pY29kZeS4juWuouaIt+acjeWKoeWZqOaIluWkmuWxguW6lOeUqOeoi+W6j+WSjOe9keermee7k+WQiO+8jOavlOS9v+eUqOS8oOe7n+Wtl+espumbhuiKguecgei0ueeUqOOAglVuaWNvZGXkvb/ljZXkuIDova/ku7bkuqflk4HmiJbljZXkuIDnvZHnq5nog73lpJ/otK/nqb/lpJrkuKrlubPlj7DvvIzor63oqIDlkozlm73lrrbvvIzogIzkuI3pnIDopoHph43lu7rjgILlroPlj6/lsIbmlbDmja7kvKDovpPliLDorrjlpJrkuI3lkIznmoTns7vnu5/vvIzogIzml6DmjZ/lnY/jgIIKKwor5YWz5LqOVW5pY29kZeWtpuacr+WtpuS8mgorVW5pY29kZeWtpuacr+WtpuS8muaYr+S4gOS4qumdnuebiOWIqeeahOe7hOe7h++8jOaYr+S4uuWPkeWxle+8jOaJqeWxleWSjOaOqOW5v+S9v+eUqFVuaWNvZGXmoIflh4bogIzlu7rnq4vnmoTvvIxVbmljb2Rl5a2m5pyv5a2m5Lya6K6+56uL5LqG546w5Luj6L2v5Lu25Lqn5ZOB5ZKM5qCH5YeG5paH5pys55qE6KGo56S65rOV44CC5a2m5pyv5a2m5Lya55qE5Lya5ZGY5Luj6KGo5LqG5bm/5rOb6aKG5Z+f55qE6K6h566X5py65ZKM6LWE6K6v5bel5Lia55qE5YWs5Y+45ZKM57uE57uH44CC5a2m5pyv5a2m5Lya5Y+q55Sx5Lya5ZGY5o+Q5L6b6LWE6YeR44CCVW5pY29kZeWtpuacr+WtpuS8mueahOS8muWRmOi1hOagvOW8gOaUvue7meS4lueVjOS4iuS7u+S9leaUr+aMgVVuaWNvZGXmoIflh4blkozluIzmnJvljY/liqnlhbbmianlsZXlkozmiafooYznmoTnu4Tnu4flj4rkuKrkurrjgIIKKwor5qyy55+l5pu05aSa5L+h5oGv77yM6K+35Y+C6ZiF5pyv6K+t6K+N5rGH6KGo77yMVW5pY29kZeS6p+WTgeagt+acrO+8jOaKgOacr+eugOS7i+WSjOWPguiAg+i1hOaWmeOAggorCitDaGluZXNlIHRyYW5zbGF0aW9uIGJ5ICDpu47lnIvnj40sIFhlcm94ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L1Rlc3RfSGVicmV3LUxhdGluLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0hlYnJldy1MYXRpbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQyNjc0NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0hlYnJldy1MYXRpbi50eHQKQEAgLTAsMCArMSwyNiBAQAor77u/Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAoYykgMTk5OS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0BVUFBFUkZJTFRFUkAKK9ee15Qg15bXlCDXmdeV16DXmden15XXkyAoVW5pY29kZSk/CivXmdeV16DXmden15XXkyDXnten16bXlCDXnteh16TXqCDXmdeZ15fXldeT15kg15zXm9ecINeq15UsIAor15zXkCDXntep16DXlCDXotecINeQ15nXlteVINek15zXmNek15XXqNee15QsIAor15zXkCDXntep16DXlCDXkdeQ15nXlteVINeq15XXm9eg15nXqiwgCivXldec15Ag157Xqdeg15Qg15HXkNeZ15bXlSDXqdek15QuCisKK9eR15DXldek158g15HXodeZ16HXmSwg157Xl9ep15HXmdedINei15XXoden15nXnSDXqNenINeR157Xodek16jXmdedLiDXlNedINee15DXl9eh16DXmdedINeQ15XXqteZ15XXqiDXldeq15XXldeZ150g15DXl9eo15nXnSDXotecLdeZ15PXmSDXlNen16bXkNeqINee16HXpNeoINec15vXnCDXkNeX15Mg157XlNedLiDXkdeY16jXnSDXlNeV157XpteQINeU15nXldeg15nXp9eV15MsINeU15nXlSDXnteQ15XXqiDXntei16jXm9eV16og16fXmdeT15XXkyDXqdeV16DXldeqINec15TXp9em15DXqiDXlNee16HXpNeo15nXnSDXlNec15zXlS4g15DXoyDXnNeQINeQ15fXqiDXnteU158g15nXm9ec15Qg15zXlNeb15nXnCDXm9ee15XXqiDXqteV15XXmdedINee16HXpNen16ouINec15PXldeS157XkDog16jXpyDXnNeQ15nXl9eV15Mg15TXkNeZ16jXldek15DXmSDXoNeT16jXqdeZ150g15vXnteUINeh15XXkteZINen15nXk9eV15PXmdedINep15XXoNeZ150g16LXnCDXnteg16og15zXm9eh15XXqiDXkNeqINeb15wg15TXqdek15XXqiDXlNee15PXldeR16jXldeqINeR15UuINeZ16rXmdeo15Qg157XlteQ16og15DXoyDXnNep16TXlCDXkdeV15PXk9eqLCDXm9ee15Ug15DXoNeS15zXmdeqINec157XqdecLCDXnNeQINeU15nXlCDXk9eZINeR157Xoteo15vXqiDXp9eZ15PXldeTINeQ15fXqiDXkdei15HXldeoINeb15wg15TXkNeV16rXmdeV16osINeh15nXnteg15kg15TXpNeZ16HXldenINeV15TXodee15zXmdedINeU15jXm9eg15nXmdedINep15HXqdeZ157XldepINep15XXmNejLiAKKwor157Xoteo15vXldeqINen15nXk9eV15Mg15DXnNeVINeQ16Mg16HXldeq16jXldeqINeW15Ug15DXqiDXlteVLiDXm9ec15XXnteoLCDXqdeg15kg16fXmdeT15XXk9eZ150g15nXm9eV15zXmdedINec15TXqdeq157XqSDXkdeQ15XXqteVINee16HXpNeoINec16nXoNeZINeq15XXmdedINeg15HXk9ec15nXnSwg15DXlSDXnNeU16nXqtee16kg15HXnteh16TXqNeZ150g16nXldeg15nXnSDXnNeQ15XXqteVINeq15UuINei15wg15vXnCDXnteX16nXkSAo15XXkdee15nXldeX15Mg16nXqNeq15nXnSkg15zXqtee15XXmiDXkdee16HXpNeoINeo15Eg16nXnCDXntei16jXm9eV16og16fXmdeT15XXkyDXqdeV16DXldeqOyDXkNeV15zXnSDXm9ecINeQ15nXnteqINep16DXqteV16DXmdedINei15XXkdeo15nXnSDXkdeZ158g157Xoteo15vXldeqINen15nXk9eV15Mg15DXlSDXpNec15jXpNeV16jXnteV16og16nXldeg15XXqiDXp9eZ15nXnSDXlNeh15nXm9eV158g16nXmdeZ16TXktee15UuCisKK9eZ15XXoNeZ16fXldeTINee16nXoNeUINeQ16og15vXnCDXlteUIQor15nXldeg15nXp9eV15Mg157Xp9em15Qg157Xodek16gg15nXmdeX15XXk9eZINec15vXnCDXqteVLCDXnNec15Ag16rXnNeV16og15HXpNec15jXpNeV16jXnteULCDXkdeq15XXm9eg15nXqiwg15DXlSDXkdep16TXlC4g16rXp9efINeU15nXldeg15nXp9eV15Mg15DXldee16Ug16LXnC3XmdeT15kg15TXnteV15HXmdec15nXnSDXkdeq16LXqdeZ15nXlCDXm9ee15UgQXBwbGXigI8sIEhQ4oCPLCBJQk3igI8sIEp1c3RTeXN0ZW3igI8sIE1pY3Jvc29mdOKAjywgT3JhY2xl4oCPLCBTQVDigI8sIFN1buKAjywgU3liYXNl4oCPLCBVbmlzeXPigI8g15XXqNeR15nXnSDXkNeX16jXmdedLiDXmdeV16DXmden15XXkyDXoNeT16jXqSDXotecLdeZ15PXmSDXqten16DXmdedINee15XXk9eo16DXmdeZ150g15vXnteVIFhNTOKAjywgSmF2YeKAjywgRUNNQVNjcmlwdCAoSmF2YVNjcmlwdCnigI7igI8sIExEQVDigI8sIENPUkJBIDMuMOKAjuKAjywgV01M4oCPINeV15vXk9eV157XlCwg15XXnteU15XXldeUINec157Xotep15Qg15DXqiDXlNeZ15nXqdeV150g15TXqNep157XmSDXqdecINeq16fXnyBJU08vSUVDIDEwNjQ2LiDXlNeV15Ag16DXqtee15og16LXnCDXmdeT15kg157Xoteo15vXldeqINeU16TXotec15Qg16jXkdeV16osINeb15wg15TXk9ek15PXpNeg15nXnSDXlNeX15PXmdep15nXnSwg15XXnteV16bXqNeZ150g16jXkdeZ150g15DXl9eo15nXnS4g15TXldek16LXqiDXqten158g15TXmdeV16DXmden15XXkyDXldeW157Xmdeg15XXqiDXlNeb15zXmdedINeU16rXldee15vXmdedINeR15Ug16DXnteg15XXqiDXotedINeU157Xktee15XXqiDXlNeb15zXnC3XoteV15zXnteZ15XXqiDXlNeX16nXldeR15XXqiDXkdeZ15XXqteoLCDXkNep16gg157Xodeq157XoNeV16og15zXkNeX16jXldeg15Qg15HXmNeb16DXldec15XXkteZ15nXqiDXlNeq15XXm9eg15QuCisKK9ep15nXnNeV15Eg15nXldeg15nXp9eV15Mg15HXmdeZ16nXldee15kg16nXqNeqLdec16fXldeXINeQ15Ug15HXmdeZ16nXldee15nXnSDXqNeR15kt16nXm9eR15XXqiDXldeR15DXqteo15kg15DXmdeg15jXqNeg15gg157XkNek16nXqCDXl9eZ16HXm9eV158g16DXmdeb16gg15HXotec15XXmdeV16og15zXoteV157XqiDXlNep15nXnteV16kg15HXodeT16jXldeqINeU16rXldeV15nXnSDXlNee16HXldeo16rXmdeV16ouINeU15XXk9eV16og15zXmdeV16DXmden15XXkywg157Xldem16gg16rXldeb16DXlCDXkNeX15Mg15DXlSDXkNeq16gg15nXl9eZ15Mg15HXqNep16og15nXm9eV15wg15zXlNeo15fXmdeRINeQ16og15nXoteT15nXlSDXnNee15LXldeV158g16TXnNeY16TXldeo157XldeqLCDXkNeo16bXldeqINeV16nXpNeV16og15zXnNeQINem15XXqNeaINeR16nXmdeg15XXmdeZ150g157XqNeX15nXp9eZ150uINeZ15XXoNeZ16fXldeTINee15DXpNep16gg157XoteR16gg16DXqteV16DXmdedINeT16jXmiDXntei16jXm9eV16og16jXkdeV16og15XXqdeV16DXldeqINee15HXnNeZINep15nXmdek15LXnteVLgorCivXpNeo15jXmdedINeQ15XXk9eV16og15TXp9eV16DXodeV16jXpteZ15XXnSDXqdecINeZ15XXoNeZ16fXldeTIChVbmljb2RlIENvbnNvcnRpdW0pIAor15TXp9eV16DXodeV16jXpteZ15XXnSDXqdecINeZ15XXoNeZ16fXldeTINeU15XXkCDXkNeo15LXldefINec15zXkCDXnteY16jXqiDXqNeV15XXlyDXqdeg15XXodeTINeb15PXmSDXnNek16rXlywg15zXlNeo15fXmdeRINeV15zXp9eT150g15DXqiDXlNep15nXnteV16kg15HXqten158g15nXldeg15nXp9eV15MsINeQ16nXqCDXnteS15PXmdeoINeQ16og15nXmdem15XXkiDXlNeY16fXodeYINeR157Xldem16jXmSDXqteV15vXoNeUINeV16rXp9eg15nXnSDXnteV15PXqNeg15nXmdedLiDXl9eR16jXmdedINeR16fXldeg16HXldeo16bXmdeV150g157XkteV15XXnyDXqNeX15Eg16nXnCDXqteQ15LXmdeT15nXnSDXldeQ16jXkteV16DXmdedINeR16rXotep15nXmdeqINeU157Xl9ep15HXmdedINeV16LXmdeR15XXkyDXlNee15nXk9eiLiDXlNen15XXoNeh15XXqNem15nXldedINee157Xldee158g16LXnC3XmdeT15kg15PXnteZLdeX15HXqCDXkdec15HXky4g15TXl9eR16jXldeqINeR16fXldeg16HXldeo16bXmdeV150g15nXldeg15nXp9eV15Mg16TXqteV15fXlCDXnNeQ16jXkteV16DXmdedINeV15zXkNeg16nXmdedINek16jXmNeZ15nXnSwg15HXm9ecINeo15fXkdeZINeU16LXldec150sINeQ16nXqCDXqteV157Xm9eZ150g15HXqten158g15nXldeg15nXp9eV15Mg15XXntei15XXoNeZ15nXoNeZ150g15zXodeZ15nXoiDXkdeU16rXpNeq15fXldeq15Ug15XXlNeY157Xoteq15UuCisKK9ec157XmdeT16Ig16DXldeh16MsINeo15DXlCDXnteZ15zXldefINee15XXoNeX15nXnSwg16jXqdeZ157XlCDXl9ec16fXmdeqINep15wg157Xldem16jXmdedINee15XXqteQ157XmdedINec15nXldeg15nXp9eV15MsINee15HXldeQINeY15vXoNeZINeVLSDXl9eV157XqNeZINei15bXqCBb16fXmdep15XXqNeZ150g15HXkNeg15LXnNeZ16pdLgorCitAU0VUIFtbOkhlYnJldzpdIFtcdTA1QjAtXHUwNUI5XHUwNUJCLVx1MDVCQ1x1MDVDMS1cdTA1QzJcdTIxMzUtXHUyMTM4XV0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9JbnN0cnVjdGlvbnMuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X0luc3RydWN0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ZTE0YzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9JbnN0cnVjdGlvbnMuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCEtLSAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLS0+Cis8aHRtbD4KKworPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LUxhbmd1YWdlIiBjb250ZW50PSJlbi11cyI+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPgorPG1ldGEgbmFtZT0iR0VORVJBVE9SIiBjb250ZW50PSJNaWNyb3NvZnQgRnJvbnRQYWdlIDQuMCI+Cis8bWV0YSBuYW1lPSJQcm9nSWQiIGNvbnRlbnQ9IkZyb250UGFnZS5FZGl0b3IuRG9jdW1lbnQiPgorPHRpdGxlPk5ldyBUcmFuc2xpdGVyYXRpb24gVGVzdCBGaWxlczwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IGJnY29sb3I9IiNGRkZGRkYiPgorCis8aDI+TmV3IFRyYW5zbGl0ZXJhdGlvbiBUZXN0IEZpbGVzPC9oMj4KKzxwPlRoZSBUZXN0XyouaHRtbCBmaWxlcyBzaG93IHRoZSB0cmFuc2xpdGVyYXRpb24gb2YgY2hhcmFjdGVycyBmb3IgZ2l2ZW4KK2xhbmd1YWdlcy4gVGhlIHNhbXBsZSBmb3IgZWFjaCBsYW5ndWFnZSBjb25zaXN0cyBvZiAmcXVvdDtXaGF0IElzIFVuaWNvZGUmcXVvdDsKK2luIFRoYWksIGZvbGxvd2VkIGJ5IG90aGVyIGF2YWlsYWJsZSB0ZXh0LiBUaGUgdGV4dCBpcyBicm9rZW4gYXBhcnQgaW50bworc2VudGVuY2VzIGZvciBlYXNlIG9mIHZpZXdpbmcgKG5vdGU6IHdlIGtub3cgb2Ygc29tZSBwcm9ibGVtcyB3aXRoIHRoZSBzZW50ZW5jZQorcnVsZXMgZm9yIEphcGFuZXNlIGFuZCBDaGluZXNlKS4gVGhlIGxlZnQgY29sdW1uIGlzIHRoZSBvcmlnaW5hbCwgYW5kIHRoZSByaWdodAoraXMgdGhlIHJvbWFuaXphdGlvbi4gVGhlIHByb2dyYW0gYWxzbyBjb252ZXJ0cyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzY3JpcHQuIElmCit0aGVyZSBpcyBhIGRpc2NyZXBhbmN5IGJldHdlZW4gdGhlIHNvdXJjZSBhbmQgdGhlIHJldmVyc2UgdHJhbnNmb3JtYXRpb24sIHRoYXQKK2lzIGluZGljYXRlZCBieSBtYWtpbmcgdGhlIGJhY2tncm91bmQgPGZvbnQgY29sb3I9IiNGRjAwMDAiPjxiPnJlZDwvYj48L2ZvbnQ+Citmcm9tIHRoYXQgcG9pbnQgb24uPC9wPgorPGJsb2NrcXVvdGU+CisgIDxwPjxpPjxiPk5vdGU6IDwvYj5JZiB5b3UgaGF2ZSBzb21lIG1vcmUgdGV4dCB0aGF0IHlvdSB3b3VsZCBsaWtlIGFkZGVkIHRvIHRoZQorICBzYW1wbGUsIGp1c3QgbGV0IG1lIGtub3cuIEkgYW0gcGFydGljdWxhcmx5IGludGVyZXN0ZWQgaW4gbmFtZSBsaXN0cywgc2luY2UKKyAgdGhleSBhcmUgdGhlIHR5cGljYWwgc291cmNlLjwvaT48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8aDM+U3RhbmRhcmRzPC9oMz4KKzxwPlRoZSBnb2FsIGlzIHRvIGZvbGxvdyBhIGdpdmVuIHN0YW5kYXJkLCBzdWNoIGFzIElTTyogb3IgVU5HRUdOIHdoZXJldmVyCitwb3NzaWJsZS4gV2UgYWxzbyBuZWVkIHRvIHJvdW5kLXRyaXAsIHNvIGluIHNvbWUgY2FzZXMsIHRoYXQgbWVhbnMgYWRkaW5nIHNvbWUKK2FkZGl0aW9uYWwgYWNjZW50IG1hcmtzIHRvIGRpc2FtYmlndWF0ZSBjaGFyYWN0ZXJzLiBBbmQgb2Z0ZW4gdGhlIHNvdXJjZQorc3RhbmRhcmRzIGFyZSBtaXNzaW5nIHNvbWUgY2hhcmFjdGVycywgc3VjaCBhcyBjaGFyYWN0ZXJzIHdpdGggY29tYmluaW5nIEhhbXphcworaW4gQXJhYmljLiBSZW1lbWJlciB0aGF0IHRoZSBnb2FsIGZvciB0aGVzZSBpcyB0cmFuc2xpdGVyYXRpb24gKHVuYW1iaWd1b3VzbHkKK3JlcHJlc2VudGluZyBhbGwgdGhlIGxldHRlcnMgaW4gdGhlIG9yaWdpbmFsKSwgbm90IHRyYW5zY3JpcHRpb24gKHJlcHJlc2VudGluZwordGhlIGJlc3QgcHJvbnVuY2lhdGlvbikuPC9wPgorPHVsPgorICA8bGk+PGI+PGEgaHJlZj0iVGVzdF9UaGFpLUxhdGluLmh0bWwiPlRoYWk8L2E+OjwvYj4gSVNPIDExOTQwICZsdDsgPGEgaHJlZj0iaHR0cDovL2hvbWVwYWdlLm1hYy5jb20vc2lyYmlua3MvcGRmL1RoYWkucjIucGRmIj5odHRwOi8vaG9tZXBhZ2UubWFjLmNvbS9zaXJiaW5rcy9wZGYvVGhhaS5yMi5wZGY8L2E+CisgICAgJmd0OyBwbHVzIGEgZmV3IGl0ZW1zOgorICAgIDx1bD4KKyAgICAgIDxsaT5BY2NlbnRzIG1heSBiZSBhZGRlZCB0byB0aGUgTGF0aW4gZm9yIGRpc2FtYmlndWF0aW9uLjwvbGk+CisgICAgICA8bGk+SW4gdGhlIG5leHQgcmVsZWFzZSwgd2UnZCBsaWtlIHRvIGRvIHRoZSBVTkdFR04gdmVyc2lvbiAmbHQ7IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWtpLmVlL3dncnMvcm9tMV90aC5wZGYiPmh0dHA6Ly93d3cuZWtpLmVlL3dncnMvcm9tMV90aC5wZGY8L2E+CisgICAgICAgICZndDsgd2hpY2ggaXMgcHJvYmFibHkgbW9yZSB1c2VmdWwgKGFuZCByZWFkYWJsZSksIGFuZCBmb2xsb3dzIG1vcmUKKyAgICAgICAgY2xvc2VseSB0aGUgVGhhaSBzdGFuZGFyZC48L2xpPgorICAgICAgPGxpPlNwYWNlcyBhcmUgcHJvdmlkZWQgYXQgd29yZC1icmVha3MsIHVzaW5nIHRoZSBUaGFpIEJyZWFrSXRlcmF0b3IuPC9saT4KKyAgICAgIDxsaT5BbiBpbmhlcmVudCB2b3dlbCAoJiM3ODg1OykgaXMgYWRkZWQsIGFzIGluIFVOR0VHTi4gVGhlIGRvdCBpcyBmb3IKKyAgICAgICAgZGlzYW1iaWd1YXRpb24uCisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+PGk+Tm90ZTogaWYgdGhlIGluaGVyZW50IHZvd2VsIHBvc2l0aW9ucyBjYW5ub3QgYmUgYWxnb3JpdGhtaWNhbGx5CisgICAgICAgICAgICBkZXRlcm1pbmVkLCBsZXQgbWUga25vdyBhbmQgSSB3aWxsIHJlbW92ZSB0aGVtLjwvaT48L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorICA8bGk+PGI+PGEgaHJlZj0iVGVzdF9BcmFiaWMtTGF0aW4uaHRtbCI+QXJhYmljPC9hPjogPC9iPkdlbmVyYWxseSBmb2xsb3dzCisgICAgVU5HRUdOICZsdDsgPGEgaHJlZj0iaHR0cDovL3d3dy5la2kuZWUvd2dycy9yb20xX2FyLnBkZiI+aHR0cDovL3d3dy5la2kuZWUvd2dycy9yb20xX2FyLnBkZjwvYT4KKyAgICAmZ3Q7CisgICAgPHVsPgorICAgICAgPGxpPkFjY2VudHMgbWF5IGJlIGFkZGVkIHRvIHRoZSBMYXRpbiBmb3IgZGlzYW1iaWd1YXRpb24uPC9saT4KKyAgICAgIDxsaT5PY2Nhc2lvbmFsbHkgZGV2aWF0ZXMgaW4gdGhlIGRpcmVjdGlvbiBvZiBJU08gMjMzICZsdDsgPGEgaHJlZj0iaHR0cDovL2hvbWVwYWdlLm1hYy5jb20vc2lyYmlua3MvcGRmL0FyYWJpYy5wZGYiPmh0dHA6Ly9ob21lcGFnZS5tYWMuY29tL3NpcmJpbmtzL3BkZi9BcmFiaWMucGRmPC9hPgorICAgICAgICAmZ3Q7CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+d2l0aCB1bmRlcmRvdCBpbnN0ZWFkIG9mIGNlZGlsbGEgZm9yIGxldHRlciBsaWtlIFNBRCwgc2luY2UgdGhvc2UKKyAgICAgICAgICAgIGFyZSBleHBsaWNpdGx5IGluIFVuaWNvZGUgZm9yIHRyYW5zbGl0ZXJhdGlvbiBvZiBBcmFiaWM8L2xpPgorICAgICAgICAgIDxsaT5hZGRpbmcgZXh0cmEgbm9uLUFyYWJpYy1sYW5ndWFnZSBsZXR0ZXJzLCBsaWtlIFBFSC4gTm90ZTogbm90IGFsbAorICAgICAgICAgICAgZXh0ZW5kZWQgQXJhYmljIGNoYXJhY3RlcnMgYXJlIGhhbmRsZWQgeWV0LjwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPgorICAgICAgPGxpPkRvZXMgPGk+bm90PC9pPiBkbyBhc3NpbWlsYXRpb24gb2YgJnF1b3Q7YWwmcXVvdDssIG5vciBoeXBoZW5hdGlvbiBvZgorICAgICAgICBpdC4KKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5XaGlsZSBpdCBjb3VsZCBiZSBkb25lLCB3ZSBuZWVkIHRvIGRldGVybWluZSB3aGV0aGVyIGEgcHJlZml4CisgICAgICAgICAgICAmcXVvdDthbCZxdW90OyBjb3VsZCBvY2N1ciBvdGhlciB0aGFuIGFzIHRoZSBkZWZpbml0ZSBhcnRpY2xlIChzaW5jZQorICAgICAgICAgICAgbm8gc3BhY2UgaXMgdXNlZCkuPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+VGhpcyBpcyB0cmFuc2xpdGVyYXRpb24uIEZvciA8aT50cmFuc2NyaXB0aW9uPC9pPiBvbmUgd291bGQgd2FudCBhbgorICAgICAgICBlbmdpbmUgdGhhdCBhZGRlZCBwb2ludHMgYXBwcm9wcmlhdGVseSB0byB0aGUgSGVicmV3LjwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKyAgPGxpPjxiPjxhIGhyZWY9IlRlc3RfSGVicmV3LUxhdGluLmh0bWwiPkhlYnJldzwvYT48L2I+PGI+OiA8L2I+R2VuZXJhbGx5CisgICAgZm9sbG93cyBVTkdFR04gJmx0OyA8YSBocmVmPSJodHRwOi8vd3d3LmVraS5lZS93Z3JzL3JvbTFfaGUucGRmIj5odHRwOi8vd3d3LmVraS5lZS93Z3JzL3JvbTFfaGUucGRmPC9hPgorICAgICZndDssIHdpdGggc29tZSBleGNlcHRpb25zOgorICAgIDx1bD4KKyAgICAgIDxsaT5BY2NlbnRzIG1heSBiZSBhZGRlZCB0byB0aGUgTGF0aW4gZm9yIGRpc2FtYmlndWF0aW9uLjwvbGk+CisgICAgICA8bGk+Q29tYmluYXRpb25zIG9mIGRhZ2VzaCwgc2hpbi9zaW4gZG90IHRoYXQgd291bGQgcHJvZHVjZSBkaWZmZXJlbnQKKyAgICAgICAgbGV0dGVycyBhcmUgbm90IHlldCBjYWxsZWQgb3V0LjwvbGk+CisgICAgICA8bGk+Tm90ZSB0aGF0IHRoZSBmaW5hbCBmb3JtcyBhcmUgbm90IHByZXNlcnZlZC4gVGh1cywgd2hlbiBnb2luZyBmcm9tCisgICAgICAgIExhdGluIHRvIEhlYnJldywgYSBjaGFyYWN0ZXIgaXMgZ2l2ZW4gZmluYWwgZm9ybSBkZXBlbmRpbmcgb24gaXRzCisgICAgICAgIHBvc2l0aW9uLgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPkUuZy4gJiMxNTAyOyYjMTUwMTsmIzE1MDI7JiMxNTAxOyA9Jmd0OyBtbW1tID0mZ3Q7CisgICAgICAgICAgICAmIzE1MDI7JiMxNTAyOyYjMTUwMjsmIzE1MDE7PC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+VGhpcyBpcyB0cmFuc2xpdGVyYXRpb24uIEZvciA8aT50cmFuc2NyaXB0aW9uPC9pPiBvbmUgd291bGQgd2FudCBhbgorICAgICAgICBlbmdpbmUgdGhhdCBhZGRlZCBwb2ludHMgYXBwcm9wcmlhdGVseSB0byB0aGUgSGVicmV3LjwvbGk+CisgICAgICA8bGk+U2VlIGFsc28gJmx0OyA8YSBocmVmPSJodHRwOi8vaG9tZXBhZ2UubWFjLmNvbS9zaXJiaW5rcy9wZGYvSGVicmV3LnIxLnBkZiI+aHR0cDovL2hvbWVwYWdlLm1hYy5jb20vc2lyYmlua3MvcGRmL0hlYnJldy5yMS5wZGY8L2E+CisgICAgICAgICZndDsgZm9yIHRoZSBJU08gdmVyc2lvbi4gVGhlIENoaWNhZ28gTWFudWFsIG9mIFN0eWxlIGhhcyBhIGNsZWFyIHRhYmxlCisgICAgICAgIG9mIG1hcHBpbmdzIGZvciB0aGUgdm93ZWwgbWFya3MuPC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorICA8bGk+PGI+PGEgaHJlZj0iVGVzdF9IYW4tTGF0aW4uaHRtbCI+SGFuPC9hPjo8L2I+IFVzZXMgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cubWFuZGFyaW50b29scy5jb20vY2VkaWN0Lmh0bWwiPkNFRElDVDwvYT4KKyAgICBkYXRhIHBsdXMgVW5pY29kZSBVbmloYW4gPGk+a01hbmRhcmluPC9pPiB2YWx1ZXMgZm9yIHBpbnlpbi4gRG9lc24ndAorICAgIHJvdW5kdHJpcCEKKyAgICA8dWw+CisgICAgICA8bGk+PGk+Tm90ZTogPC9pPnRoZSBDaGluZXNlIHByb251bmNpYXRpb24gb2YgSGFuIGNoYXJhY3RlcnMgdmFyaWVzIGJ5CisgICAgICAgIGNvbnRleHQgYW5kIGdyYW1tYXIsIHRob3VnaCBub3doZXJlIG5lYXIgYXMgbXVjaCBhIEphcGFuZXNlLgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPklkZWFsbHkgd2UnZCBoYXZlIGFuIHVuZGVybHlpbmcgZW5naW5lIGZvciB0aGlzLiBJbiAyLjQgd2Ugd2lsbAorICAgICAgICAgICAgaGF2ZSBhIHBsdWctaW4gaW50ZXJmYWNlIHNvIHRoYXQgcGVvcGxlIGNvdWxkIGFkZCBvbmUsIHN1Y2ggYXMgdGhlCisgICAgICAgICAgICBJQk0gZW5naW5lLjwvbGk+CisgICAgICAgICAgPGxpPlRoZSBkYXRhIGZyb20gQ0VESUNUIGFuZCBVbmloYW4gZG9uJ3QgbGlzdCB0aGUgbW9zdCBmcmVxdWVudAorICAgICAgICAgICAgY2hvaWNlIGZpcnN0LCBzbyB3ZSB3aWxsIGJlIHVwZGF0aW5nIHRoYXQuPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKyAgPGxpPjxhIGhyZWY9IlRlc3RfR3JlZWstTGF0aW5fVU5HRUdOLmh0bWwiPjxiPkdyZWVrL1VOR0VHTjwvYj48L2E+OiBVc2VzIGEKKyAgICBtb2Rlcm4gR3JlZWsgdHJhbnNsaXRlcmF0aW9uLCBiYXNlZCBvbiB0aGUgVU5HRUdOIHJ1bGVzIGF0ICZsdDsgPGEgaHJlZj0iaHR0cDovL3d3dy5la2kuZWUvd2dycy9yb20xX2VsLnBkZiI+aHR0cDovL3d3dy5la2kuZWUvd2dycy9yb20xX2VsLnBkZjwvYT4KKyAgICAmZ3Q7LiBUaGlzIHZlcnNpb24gd2lsbCBub3Qgcm91bmR0cmlwIGFuY2llbnQgR3JlZWsuPC9saT4KKyAgPGxpPjxhIGhyZWY9IlRlc3RfR3JlZWstTGF0aW4uaHRtbCI+PGI+R3JlZWs8L2I+PC9hPjogVXNlcyBhIGNsYXNzaWMgR3JlZWsKKyAgICB0cmFuc2xpdGVyYXRpb24uIFRoaXMgdmVyc2lvbiB3aWxsIG5vdCByb3VuZHRyaXAgbW9kZXJuIEdyZWVrLjwvbGk+Cis8L3VsPgorPGgzPjxiPk5vdGVzPC9iPjwvaDM+Cis8b2w+CisgIDxsaT5Gb3IgcmVhZGFiaWxpdHksIHRoZSBmaWxlcyBoYXZlIGEgZmV3IG90aGVyIHRoaW5ncyBiZXNpZGVzIGp1c3QgdGhlCisgICAgdHJhbnNsaXRlcmF0aW9uOgorICAgIDx1bD4KKyAgICAgIDxsaT5UaGUgZmlyc3Qgd29yZCBvZiB0aGUgc2VudGVuY2VzIGFyZSB0aXRsZWNhc2VkLCBhcyBhcmUgbmFtZXMgKHdoZXJlIHdlCisgICAgICAgIGhhdmUgYSBuYW1lLWxpc3QsIHN1Y2ggYXMgaW4gVGhhaSkuPC9saT4KKyAgICAgIDxsaT5UaGUgTGF0aW4gaW4gdGhlIG9yaWdpbmFsIGlzIG1hcHBlZCB0byB0aGUgcHJpdmF0ZS11c2Ugem9uZSBiZWZvcmUKKyAgICAgICAgY29udmVyc2lvbiwgYW5kIHRoZW4gYWdhaW4gYWZ0ZXIgY29udmVyc2lvbi4gVGhpcyBkb2VzIGhhdmUgdGhlIGRvd25zaWRlCisgICAgICAgIHRoYXQgYW55IHJ1bGVzIChzdWNoIGFzIGluIEhhbikgdGhhdCBuZWVkIHRvIGtub3cgdGhlIGNvbnRleHQgKGUuZy4gZm9yCisgICAgICAgIGluc2VydGluZyBzcGFjZXMgb3IgY2FwaXRhbGl6YXRpb24pIHdpbGwgZ3VtIHVwIGEgbGl0dGxlIGJpdC4gVGhpcyBpcworICAgICAgICBqdXN0IGFuIGFydGlmYWN0IG9mIHRoZSB0ZXN0IGRpc3BsYXkuPC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorICA8bGk+SSBkb24ndCB0aGluayB0aGF0IElTTyAxMTk0MCBpcyBhIHBhcnRpY3VsYXJseSBnb29kIHdheSB0byByb21hbml6ZSwgYnV0CisgICAgaXQgaXMgYXQgbGVhc3QgY29tcGxldGUgYW5kIGEgc3RhbmRhcmQuIFNvIHdoYXQgSSBhbSBpbnRlcmVzdGVkIGluIGp1c3QgZm9yCisgICAgbm93IGlzIHdoZXRoZXIgdGhlIHNhbXBsZXMgaW4gdGhlIGZpbGUgZm9sbG93IGl0ICh3aXRoIHRoZSBhYm92ZQorICAgIGV4Y2VwdGlvbnMpLjwvbGk+CisgIDxsaT5Tb21lIG9mIHRoZSBmaWxlcyBhbHNvIGhhdmUgYSBzZXQgb2YgY2hhcmFjdGVycyBhdCB0aGUgZW5kLCBvbmUgY2hhcmFjdGVyCisgICAgcGVyIHJvdywgd2l0aCBhIGZvbGxvd2luZyByb3cgbGlzdGluZyB0aGUgaGV4IGFuZCBuYW1lLjwvbGk+CisgIDxsaT5UaGUgc291cmNlIHJ1bGVzIGZvciBhbGwgb2YgdGhlc2UgaXMgaW4gdGhlIGZvbGxvd2luZyBVUkwuIFNvIGlmIHlvdSB3YW50CisgICAgdG8ga25vdyB0aGUgZGV0YWlscyBvZiBob3cgdGhlIGNoYXJhY3RlcnMgYXJlIGhhbmRsZWQsIHRoYXQgaXMgdGhlIHBsYWNlIHRvCisgICAgbG9vay4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2Rldi5pY3UtcHJvamVjdC5vcmcvY2dpLWJpbi92aWV3Y3ZzLmNnaS9pY3Uvc291cmNlL2RhdGEvdHJhbnNsaXQvIj5odHRwOi8vZGV2LmljdS1wcm9qZWN0Lm9yZy9jZ2ktYmluL3ZpZXdjdnMuY2dpL2ljdS9zb3VyY2UvZGF0YS90cmFuc2xpdC88L2E+PC9saT4KKyAgICA8L3VsPgorICA8L2xpPgorPC9vbD4KKworPC9ib2R5PgorCis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9UaGFpLUxhdGluLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UZXN0X1RoYWktTGF0aW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzMWYxOTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVGVzdF9UaGFpLUxhdGluLnR4dApAQCAtMCwwICsxLDY5IEBACivvu78jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQFVQUEVSRklMVEVSQAorVW5pY29kZSDguITguLfguK3guK3guLDguYTguKM/CitVbmljb2RlIOC4geC4s+C4q+C4meC4lOC4q+C4oeC4suC4ouC5gOC4peC4guC5gOC4ieC4nuC4suC4sOC4quC4s+C4q+C4o+C4seC4muC4l+C4uOC4geC4reC4seC4geC4guC4o+C4sAor4LmC4LiU4Lii4LmE4Lih4LmI4Liq4LiZ4LmD4LiI4Lin4LmI4Liy4LmA4Lib4LmH4LiZ4LmB4Lie4Lil4LmH4LiV4Lif4Lit4Lij4LmM4Lih4LmD4LiUCivguYTguKHguYjguILguLbguYnguJnguIHguLHguJrguKfguYjguLLguIjguLDguYDguJvguYfguJnguYLguJvguKPguYHguIHguKPguKHguYPguJQKK+C5geC4peC4sOC5hOC4oeC5iOC4p+C5iOC4suC4iOC4sOC5gOC4m+C5h+C4meC4oOC4suC4qeC4suC5g+C4lAorCivguYLguJTguKLguJ7guLfguYnguJnguJDguLLguJnguYHguKXguYnguKcsIOC4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jOC4iOC4sOC5gOC4geC4teC5iOC4ouC4p+C4guC5ieC4reC4h+C4geC4seC4muC5gOC4o+C4t+C5iOC4reC4h+C4guC4reC4h+C4leC4seC4p+C5gOC4peC4gi4g4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmM4LiI4Lix4LiU4LmA4LiB4LmH4Lia4LiV4Lix4Lin4Lit4Lix4LiB4Lip4Lij4LmB4Lil4Liw4Lit4Lix4LiB4LiC4Lij4Liw4Lit4Li34LmI4LiZ4LmGIOC5guC4lOC4ouC4geC4suC4o+C4geC4s+C4q+C4meC4lOC4q+C4oeC4suC4ouC5gOC4peC4guC5g+C4q+C5ieC4quC4s+C4q+C4o+C4seC4muC5geC4leC5iOC4peC4sOC4leC4seC4py4g4LiB4LmI4Lit4LiZ4Lir4LiZ4LmJ4Liy4LiX4Li14LmI4LmKIFVuaWNvZGUg4LiI4Liw4LiW4Li54LiB4Liq4Lij4LmJ4Liy4LiH4LiC4Li24LmJ4LiZLCDguYTguJTguYnguKHguLXguKPguLDguJrguJogZW5jb2Rpbmcg4Lit4Lii4Li54LmI4Lir4Lil4Liy4Lii4Lij4LmJ4Lit4Lii4Lij4Liw4Lia4Lia4Liq4Liz4Lir4Lij4Lix4Lia4LiB4Liy4Lij4LiB4Liz4Lir4LiZ4LiU4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmA4Lir4Lil4LmI4Liy4LiZ4Li14LmJLiDguYTguKHguYjguKHguLUgZW5jb2Rpbmcg4LmD4LiU4LiX4Li14LmI4Lih4Li14LiI4Liz4LiZ4Lin4LiZ4LiV4Lix4Lin4Lit4Lix4LiB4LiC4Lij4Liw4Lih4Liy4LiB4LmA4Lie4Li14Lii4LiH4Lie4LitOiDguKLguIHguJXguLHguKfguK3guKLguYjguLLguIfguYDguIrguYjguJksIOC5gOC4ieC4nuC4suC4sOC5g+C4meC4geC4peC4uOC5iOC4oeC4quC4q+C4oOC4suC4nuC4ouC4uOC5guC4o+C4m+C5gOC4nuC4teC4ouC4h+C5geC4q+C5iOC4h+C5gOC4lOC4teC4ouC4pyDguIHguYfguJXguYnguK3guIfguIHguLLguKPguKvguKXguLLguKIgZW5jb2Rpbmcg4LmD4LiZ4LiB4Liy4Lij4LiE4Lij4Lit4Lia4LiE4Lil4Li44Lih4LiX4Li44LiB4Lig4Liy4Lip4Liy4LmD4LiZ4LiB4Lil4Li44LmI4LihLiDguKvguKPguLfguK3guYHguKHguYnguYHguJXguYjguYPguJnguKDguLLguKnguLLguYDguJTguLXguYjguKLguKcg4LmA4LiK4LmI4LiZIOC4oOC4suC4qeC4suC4reC4seC4h+C4geC4pOC4qSDguIHguYfguYTguKHguYjguKHguLUgZW5jb2Rpbmcg4LmD4LiU4LiX4Li14LmI4LmA4Lie4Li14Lii4LiH4Lie4Lit4Liq4Liz4Lir4Lij4Lix4Lia4LiX4Li44LiB4LiV4Lix4Lin4Lit4Lix4LiB4Lip4LijLCDguYDguITguKPguLfguYjguK3guIfguKvguKHguLLguKLguKfguKPguKPguITguJXguK3guJkg4LmB4Lil4Liw4Liq4Lix4LiN4Lil4Lix4LiB4Lip4LiT4LmM4LiX4Liy4LiH4LmA4LiX4LiE4LiZ4Li04LiE4LiX4Li14LmI4LmD4LiK4LmJ4LiB4Lix4LiZ4Lit4Lii4Li54LmI4LiX4Lix4LmI4Lin4LmE4LibLiAKKwor4Lij4Liw4Lia4LiaIGVuY29kaW5nIOC5gOC4q+C4peC5iOC4suC4meC4teC5ieC4ouC4seC4h+C4guC4seC4lOC5geC4ouC5ieC4h+C4i+C4tuC5iOC4h+C4geC4seC4meC5geC4peC4sOC4geC4seC4mS4g4LiZ4Lix4LmI4LiZ4LiB4LmH4LiE4Li34LitLCDguYPguJnguKrguK3guIcgZW5jb2Rpbmcg4Liq4Liy4Lih4Liy4Lij4LiW4LmD4LiK4LmJ4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4LiV4Lix4Lin4Lit4Lix4LiB4LiC4Lij4Liw4Liq4Lit4LiH4LiV4Lix4Lin4LiX4Li14LmI4LmB4LiV4LiB4LiV4LmI4Liy4LiH4LiB4Lix4LiZLOC4q+C4o+C4t+C4reC5g+C4iuC5ieC4q+C4oeC4suC4ouC5gOC4peC4guC4leC5iOC4suC4h+C4geC4seC4meC4quC4s+C4q+C4o+C4seC4muC4reC4seC4geC4guC4o+C4sOC4leC4seC4p+C5gOC4lOC4teC4ouC4p+C4geC4seC4mS4g4LmD4LiZ4Lij4Liw4Lia4Lia4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmMICjguYLguJTguKLguYDguInguJ7guLLguLDguYDguIvguLTguKPguYzguJ/guYDguKfguK3guKPguYwpIOC4leC5ieC4reC4h+C4oeC4teC4geC4suC4o+C4quC4meC4seC4muC4quC4meC4uOC4meC4q+C4peC4suC4oiBlbmNvZGluZzsg4LmB4Lil4Liw4LmA4Lih4Li34LmI4Lit4LiC4LmJ4Lit4Lih4Li54Lil4LiX4Li14LmI4Lic4LmI4Liy4LiZ4LmE4Lib4Lih4Liy4Lij4Liw4Lir4Lin4LmI4Liy4LiH4LiB4Liy4Lij4LmA4LiC4LmJ4Liy4Lij4Lir4Lix4Liq4Lir4Lij4Li34Lit4LmB4Lie4Lil4LmH4LiV4Lif4Lit4Lij4LmM4Lih4LiX4Li14LmI4LiV4LmI4Liy4LiH4LiB4Lix4LiZLCDguILguYnguK3guKHguLnguKXguJnguLHguYnguJnguIjguLDguYDguKrguLXguYjguKLguIfguJXguYjguK3guIHguLLguKPguJzguLTguJTguJ7guKXguLLguJTguYDguKrguLXguKLguKvguLLguKIuCisKK1VuaWNvZGUg4LiI4Liw4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmB4Lib4Lil4LiH4Liq4Li04LmI4LiH4LmA4Lir4Lil4LmI4Liy4LiZ4Lix4LmJ4LiZ4LiX4Lix4LmJ4LiH4Lir4Lih4LiUIQorVW5pY29kZSDguIHguLPguKvguJnguJTguKvguKHguLLguKLguYDguKXguILguYDguInguJ7guLLguLDguKrguLPguKvguKPguLHguJrguYHguJXguYjguKXguLDguK3guLHguIHguILguKPguLAsIOC5guC4lOC4ouC5hOC4oeC5iOC4quC4meC5g+C4iOC4p+C5iOC4suC5gOC4m+C5h+C4meC5geC4nuC4peC5h+C4leC4n+C4reC4o+C5jOC4oeC5g+C4lCwg4LmE4Lih4LmI4LiC4Li24LmJ4LiZ4LiB4Lix4Lia4Lin4LmI4Liy4LiI4Liw4LmA4Lib4LmH4LiZ4LmC4Lib4Lij4LmB4LiB4Lij4Lih4LmD4LiU4LmB4Lil4Liw4LmE4Lih4LmI4Lin4LmI4Liy4LiI4Liw4LmA4Lib4LmH4LiZ4Lig4Liy4Lip4Liy4LmD4LiULiDguKHguLLguJXguKPguJDguLLguJkgVW5pY29kZSDguYTguJTguYnguJbguLnguIHguJnguLPguYTguJvguYPguIrguYnguYLguJTguKLguJzguLnguYnguJnguLPguYPguJnguK3guLjguJXguKrguLLguKvguIHguKPguKPguKEg4LmA4LiK4LmI4LiZIEFwcGxlLCBIUCwgSUJNLCBKdXN0U3lzdGVtLCBNaWNyb3NvZnQsIE9yYWNsZSwgU0FQLCBTdW4sIFN5YmFzZSwgVW5pc3lzIOC5geC4peC4sOC4reC4t+C5iOC4meC5hiDguK3guLXguIHguKHguLLguIEuIFVuaWNvZGUg4LmA4Lib4LmH4LiZ4Liq4Li04LmI4LiH4LiX4Li14LmI4LiI4Liz4LmA4Lib4LmH4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4Lih4Liy4LiV4Lij4LiQ4Liy4LiZ4LmD4Lir4Lih4LmI4LmGIOC5gOC4iuC5iOC4mSBYTUwsIEphdmEsIEVDTUFTY3JpcHQgKEphdmFTY3JpcHQpLCBMREFQLCBDT1JCQSAzLjAsIFdNTCDguK/guKXguK8uLCDguYHguKXguLDguYDguJvguYfguJnguYHguJnguKfguJfguLLguIfguK3guKLguYjguLLguIfguYDguJvguYfguJnguJfguLLguIfguIHguLLguKPguYPguJnguIHguLLguKPguJfguLMgSVNPL0lFQyAxMDY0Ni4gVW5pY29kZSDguYTguJTguYnguKPguLHguJrguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJnguYPguJnguKPguLDguJrguJrguJvguI/guLTguJrguLHguJXguLTguIHguLLguKPguIjguLPguJnguKfguJnguKHguLLguIEsIOC4muC4o+C4suC4p+C5gOC4i+C4reC4o+C5jOC5g+C4q+C4oeC5iOC5hiDguJfguIHguJXguLHguKcsIOC5geC4peC4sOC4nOC4peC4tOC4leC4oOC4seC4k+C4keC5jOC4reC4t+C5iOC4meC5hiDguK3guLXguIHguKHguLLguIEuIOC4geC4suC4o+C5gOC4geC4tOC4lOC4guC4tuC5ieC4meC4guC4reC4hyBVbmljb2RlIFN0YW5kYXJkIOC5geC4peC4sOC4l+C4ueC4peC4quC5jOC4leC5iOC4suC4h+C5hiDguJfguLXguYjguKHguLXguYPguJnguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJkgVW5pY29kZSwg4LmA4Lib4LmH4LiZ4Lir4LiZ4Li24LmI4LiH4LmD4LiZ4LmB4LiZ4Lin4LmC4LiZ4LmJ4Lih4LiX4Liy4LiH4LmA4LiX4LiE4LmC4LiZ4LmC4Lil4Lii4Li14LiL4Lit4Lif4LiV4LmM4LmB4Lin4Lij4LmM4Lij4Liw4LiU4Lix4Lia4LmC4Lil4LiB4LiX4Li14LmI4Lih4Li14LiE4Lin4Liy4Lih4Liq4Liz4LiE4Lix4LiN4LiX4Li14LmI4Liq4Li44LiULgorCivguIHguLLguKPguKPguKfguKEgVW5pY29kZSDguYDguILguYnguLLguYTguJvguYPguJnguKPguLDguJrguJrguYTguITguKXguYDguK3guYfguJnguJXguYwt4LmA4LiL4Li04Lij4LmM4Lif4LmA4Lin4Lit4Lij4LmMIOC4q+C4o+C4t+C4reC5geC4reC5h+C4nuC4nuC4peC4tOC5gOC4hOC4iuC4seC4meC5geC4muC4miBtdWx0aS10aWVyZWQg4LmB4Lil4Liw4LmA4Lin4LmH4Lia4LmE4LiL4LiV4LmMIOC4iOC4sOC4l+C4s+C5g+C4q+C5ieC5gOC4geC4tOC4lOC4geC4suC4o+C4m+C4o+C4sOC4q+C4ouC4seC4lOC4hOC5iOC4suC5g+C4iuC5ieC4iOC5iOC4suC4ouC4oeC4suC4geC4geC4p+C5iOC4suC4geC4suC4o+C5g+C4iuC5ieC4iuC4uOC4lOC4reC4seC4geC4guC4o+C4sOC5geC4muC4muC5gOC4lOC4tOC4oS4gVW5pY29kZSDguJfguLPguYPguKvguYnguJzguKXguLTguJXguKDguLHguJPguJHguYzguIvguK3guJ/guJXguYzguYHguKfguKPguYzguKvguJnguLbguYjguIfguYDguJTguLXguKLguKcg4Lir4Lij4Li34Lit4LmA4Lin4LmH4Lia4LmE4LiL4LiV4LmM4LmB4Lir4LmI4LiH4LmA4LiU4Li14Lii4LinIOC4o+C4reC4h+C4o+C4seC4muC5hOC4lOC5ieC4q+C4peC4suC4ouC5geC4nuC4peC5h+C4leC4n+C4reC4o+C5jOC4oSwg4Lir4Lil4Liy4Lii4Lig4Liy4Lip4Liy4LmB4Lil4Liw4Lir4Lil4Liy4Lii4Lib4Lij4Liw4LmA4LiX4Lio4LmC4LiU4Lii4LmE4Lih4LmI4LiV4LmJ4Lit4LiH4LiX4Liz4LiB4Liy4Lij4Lij4Li34LmJ4Lit4Lib4Lij4Lix4Lia4Lij4Liw4Lia4LiaLiBVbmljb2RlIOC4ouC4seC4h+C4l+C4s+C5g+C4q+C5ieC4guC5ieC4reC4oeC4ueC4peC4quC4suC4oeC4suC4o+C4luC5gOC4hOC4peC4t+C5iOC4reC4meC4ouC5ieC4suC4ouC5hOC4m+C4oeC4suC5g+C4meC4q+C4peC4suC4ouC5hiDguKPguLDguJrguJrguYLguJTguKLguYTguKHguYjguYDguIHguLTguJTguITguKfguLLguKHguJzguLTguJTguJ7guKXguLLguJTguYDguKrguLXguKLguKvguLLguKIuCisKK+C5gOC4geC4teC5iOC4ouC4p+C4geC4seC4miBVbmljb2RlIENvbnNvcnRpdW0KK1VuaWNvZGUgQ29uc29ydGl1bSDguYDguJvguYfguJnguK3guIfguITguYzguIHguKPguYTguKHguYjguYHguKrguKfguIfguKvguLLguIHguLPguYTguKPguJfguLXguYjguIHguYjguK3guJXguLHguYnguIfguILguLbguYnguJnguYDguJ7guLfguYjguK3guJ7guLHguJLguJnguLIsIOC4guC4ouC4suC4ouC5geC4peC4sOC4quC5iOC4h+C5gOC4quC4o+C4tOC4oeC4geC4suC4o+C5g+C4iuC5iSBVbmljb2RlIFN0YW5kYXJkLCDguIvguLbguYjguIfguIHguLPguKvguJnguJTguKPguLnguJvguYHguJrguJrguIHguLLguKPguYHguJfguJnguITguYjguLLguILguK3guIfguILguYnguK3guITguKfguLLguKHguYPguJnguJzguKXguLTguJXguKDguLHguJPguJHguYzguIvguK3guJ/guJXguYzguYHguKfguKPguYzguYHguKXguLDguKHguLLguJXguKPguJDguLLguJnguYPguKvguKHguYjguYYuIOC4quC4oeC4suC4iuC4tOC4geC4guC4reC4h+C4quC4oeC4suC4hOC4oeC5gOC4m+C5h+C4meC4leC4seC4p+C5geC4l+C4meC4iOC4suC4geC4muC4o+C4tOC4qeC4seC4l+C5geC4peC4sOC4reC4h+C4hOC5jOC4geC4o+C5g+C4meC4reC4uOC4leC4quC4suC4q+C4geC4o+C4o+C4oeC4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jOC5geC4peC4sOC4geC4suC4o+C4m+C4o+C4sOC4oeC4p+C4peC4nOC4peC4quC4suC4o+C4quC4meC5gOC4l+C4qC4g4Liq4Lih4Liy4LiE4Lih4LmE4LiU4LmJ4Lij4Lix4Lia4LiB4Liy4Lij4Liq4LiZ4Lix4Lia4Liq4LiZ4Li44LiZ4LiX4Liy4LiH4LiB4Liy4Lij4LmA4LiH4Li04LiZ4Lic4LmI4Liy4LiZ4LiX4Liy4LiH4LiE4LmI4Liy4LiY4Lij4Lij4Lih4LmA4LiZ4Li14Lii4Lih4LiC4Lit4LiH4LiB4Liy4Lij4LmA4Lib4LmH4LiZ4Liq4Lih4Liy4LiK4Li04LiB4LmA4LiX4LmI4Liy4LiZ4Lix4LmJ4LiZLiDguKrguKHguLLguIrguLTguIHguKDguLLguJ7guILguK3guIcgVW5pY29kZSBDb25zb3J0aXVtIOC5gOC4m+C4tOC4lOC4geC4p+C5ieC4suC4h+C4quC4s+C4q+C4o+C4seC4muC4reC4h+C4hOC5jOC4geC4o+C4q+C4o+C4t+C4reC4muC4uOC4hOC4hOC4peC5g+C4lOC5hiDguYPguJnguYLguKXguIHguJfguLXguYjguJXguYnguK3guIfguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJkgVW5pY29kZSBTdGFuZGFyZCDguYHguKXguLDguIrguYjguKfguKLguYDguKvguKXguLfguK3guIHguLLguKPguILguKLguLLguKLguJXguLHguKfguYHguKXguLDguIHguLLguKPguJnguLMgVW5pY29kZSDguYTguJvguYPguIrguYnguIfguLLguJkuIAorCivguKrguLPguKvguKPguLHguJrguILguYnguK3guKHguLnguKXguYDguJ7guLTguYjguKHguYDguJXguLTguKEsIOC5g+C4q+C5ieC4lOC4ueC4l+C4teC5iCBHbG9zc2FyeSwgU2FtcGxlIFVuaWNvZGUtRW5hYmxlZCBQcm9kdWN0cywgVGVjaG5pY2FsIEludHJvZHVjdGlvbiDguYHguKXguLAgVXNlZnVsIFJlc291cmNlcy4KKwor4LmA4Lib4LmH4LiZ4Lih4LiZ4Li44Lip4Lii4LmM4Liq4Li44LiU4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LmA4Lil4Li04Lio4LiE4Li44LiT4LiE4LmI4LiyCivguIHguKfguYjguLLguJrguKPguKPguJTguLLguJ3guLnguIfguKrguLHguJXguKfguYzguYDguJTguKPguLHguIjguInguLLguJkKK+C4iOC4h+C4neC5iOC4suC4n+C4seC4meC4nuC4seC4kuC4meC4suC4p+C4tOC4iuC4suC4geC4suC4owor4Lit4Lii4LmI4Liy4Lil4LmJ4Liy4LiH4Lic4Lil4Liy4LiN4Lik4LmF4LmA4LiC4LmI4LiZ4LiG4LmI4Liy4Lia4Li14LiR4Liy4LmD4LiE4LijCivguYTguKHguYjguJbguLfguK3guYLguJfguKnguYLguIHguKPguJjguYHguIrguYjguIfguIvguLHguJTguK7guLbguJTguK7guLHguJTguJTguYjguLIKK+C4q+C4seC4lOC4reC4oOC4seC4ouC5gOC4q+C4oeC4t+C4reC4meC4geC4teC4rOC4suC4reC4seC4iuC4jOC4suC4quC4seC4ogor4Lib4LiP4Li04Lia4Lix4LiV4Li04Lib4Lij4Liw4Lie4Lik4LiV4Li04LiB4LiO4LiB4Liz4Lir4LiZ4LiU4LmD4LiICivguJ7guLnguJTguIjguLLguYPguKvguYnguIjguYrguLAg4LmGIOC4iOC5i+C4siDguYYg4LiZ4LmI4Liy4Lif4Lix4LiH4LmA4Lit4Lii4LivCisKK+C5geC4q+C4peC5iOC4h+C4l+C4teC5iOC4oeC4siA6IOC4quC4oeC4suC4hOC4oeC4hOC4reC4oeC4nuC4tOC4p+C5gOC4leC4reC4o+C5jOC5geC4q+C5iOC4h+C4m+C4o+C4sOC5gOC4l+C4qOC5hOC4l+C4ogorCivguIXguJnguIPguKfguJQga2hvIGtodWF0IGFuZCBraG8ga2hvbgorQFRJVExFQ0FTRUAKK+C4geC5iuC4geC5gOC4ruC4hyDguYHguIvguYjguYHguJXguYkKK+C4geC4iuC4geC4oyDguKjguKPguLLguJfguJjguJfguLHguJUKK+C4geC4leC4tOC4geC4siDguK3guLHguIfguITguKrguLjguKDguJMKK+C4geC4meC4gSDguJjguKPguKPguKHguJvguKPguLDguJfguLXguJsKK+C4geC4meC4gSDguKfguIfguKjguYzguJfguK3guIfguKjguKPguLUKK+C4geC4meC4geC4geC4oyDguIrguYnguLLguIfguYDguKLguYfguJnguInguYjguLMKK+C4geC4meC4geC4ieC4seC4leC4o+C5jCDguJbguLLguKfguKPguJnguLHguJnguJfguYwKK+C4geC4meC4geC4meC4p+C4pSDguYLguJvguKnguKLguLDguJnguLHguJnguJfguJnguYwKK+C4geC4meC4geC4nuC4oyDguITguKHguITguLLguKIKK+C4geC4meC4geC4nuC4oyDguJXguLXguKPguYDguKXguLTguKjguJ7guLLguJnguLTguIoKK+C4geC4meC4geC4nuC4oyDguJ7guLHguJnguJfguKMKK+C4geC4meC4geC4nuC4oyDguKjguKPguLXguJrguLHguJPguJHguLTguJUKK+C4geC4meC4geC4nuC4oyDguK3guJXguLTguKfguKPguKPguJPguLLguJ7guLHguJLguJnguYwKK+C4geC4meC4geC4nuC4o+C4o+C4kyDguKjguKPguLXguKfguJnguLLguKDguLTguKPguKHguKLguYwKK+C4geC4meC4geC4o+C4seC4leC4meC5jCDguYDguIHguLXguKLguKPguJXguLTguKLguLTguYjguIfguK3guLHguIfguKjguLjguKXguLUKK+C4geC4meC4geC4o+C4seC4leC4meC5jCDguKrguLjguJjguKPguKPguKHguJ7guLTguJfguLHguIHguKnguYwKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguITguIfguITguLLguJvguKPguLDguYDguKrguKPguLTguJAKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguYHguIvguYjguYDguJXguLXguKLguKcKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguJrguLjguI3guJvguKPguLDguYDguKrguKPguLTguJAKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguKPguLHguIHguJfguKPguLHguJ7guKLguYwKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguKrguLHguIjguIjguJ7guIfguKnguYwKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguK3guLjguYnguKLguKfguIfguKjguYzguYTguJ7guKjguLLguKUKK+C4geC4meC4geC4qOC4seC4geC4lOC4tOC5jCDguKLguLTguYjguIfguKLguIcKK+C4geC4meC4geC5geC4geC5ieC4pyDguIHguKPguKrguKHguLTguJUKK+C4geC4meC4tOC4qeC4kOC4siDguJfguJnguLjguJbguJnguK3guKHguKPguLLguKnguI7guKPguYwKK+C4geC4meC4tOC4qeC4kOC4siDguKvguKfguLHguIfguKfguLTguJrguLnguKXguKLguYzguIHguLTguIgKK+C4geC4oeC4pSDguIHguLLguI3guIjguJnguYLguKPguIjguJnguYwKK+C4geC4oeC4pSDguITguLHguKHguKDguLXguKPguYwKK+C4geC4oeC4pSDguYDguIjguJXguJnguYzguKHguIfguITguKXguKPguLHguJXguJnguYwKK+C4geC4oeC4pSDguIrguLnguJXguKPguLDguIHguLnguKXguJjguKPguKPguKEKK0BTRVQgW1s6dGhhaTpdIFx1MEUwMS1cdTBFM0FcdTBFNDAtXHUwRTVCXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UcmFuc2xpdGVyYXRpbmdUZXh0Q29tcG9uZW50LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVHJhbnNsaXRlcmF0aW5nVGV4dENvbXBvbmVudC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFiZGNkOTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVHJhbnNsaXRlcmF0aW5nVGV4dENvbXBvbmVudC5qYXZhCkBAIC0wLDAgKzEsMjUyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYuZGVtby50cmFuc2xpdDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi5kZW1vLmltcGwuKjsKKworLyoqCisgKiBBIHN1YmNsYXNzIG9mIHtAbGluayBEdW1iVGV4dENvbXBvbmVudH0gdGhhdCBwYXNzZXMga2V5IGV2ZW50cyB0aHJvdWdoCisgKiBhIHtAbGluayBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yfS4KKyAqCisgKiA8cD5Db3B5cmlnaHQgJmNvcHk7IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK3B1YmxpYyBjbGFzcyBUcmFuc2xpdGVyYXRpbmdUZXh0Q29tcG9uZW50IGV4dGVuZHMgRHVtYlRleHRDb21wb25lbnQgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRvciB0cmFuc2xpdCA9IG51bGw7CisgICAgCisgICAgLy8gTk9URTogRElTQUJMRSBUSEUgU1RBUlQgQU5EIENVUlNPUiBVTlRJTCBXRSBDQU4gR0VUIElUIFRPIFdPUksgQVQgQUxMCisKKyAgICAvLyBJbmRleCBpbnRvIGdldFRleHQoKSB3aGVyZSB0aGUgc3RhcnQgb2YgdHJhbnNsaXRlcmF0aW9uIGlzLgorICAgIC8vIEFzIHdlIGNvbW1pdCB0ZXh0IGR1cmluZyB0cmFuc2xpdGVyYXRpb24sIHdlIGFkdmFuY2UKKyAgICAvLyB0aGlzLgorICAgIC8vcHJpdmF0ZSBpbnQgc3RhcnQgPSAwOworCisgICAgLy8gSW5kZXggaW50byBnZXRUZXh0KCkgd2hlcmUgdGhlIGN1cnNvciBpczsgY3Vyc29yID49IHN0YXJ0CisgICAgLy9wcml2YXRlIGludCBjdXJzb3IgPSAwOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICJcdTAwQTkgSUJNIENvcnBvcmF0aW9uIDE5OTkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLgorICAgICAqLworICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRpbmdUZXh0Q29tcG9uZW50KCkgeworICAgICAgICBzdXBlcigpOworICAgICAgICAvKgorICAgICAgICBhZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIC8vIFdlIGdldCBhbiBBY3Rpb25FdmVudCBvbmx5IHdoZW4gdGhlIHNlbGVjdGlvbiBjaGFuZ2VzCisgICAgICAgICAgICAgICAgcmVzZXRUcmFuc2xpdGVyYXRpb25TdGFydCgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgKi8KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiB7QGxpbmsgRHVtYlRleHRDb21wb25lbnR9IEFQSS4gIEZyYW1ld29yayBtZXRob2QgdGhhdCBpcyBjYWxsZWQKKyAgICAgKiB3aGVuIGEgPGNvZGU+S2V5RXZlbnQ8L2NvZGU+IGlzIHJlY2VpdmVkLiAgVGhpcyBpbXBsZW1lbnRhdGlvbgorICAgICAqIHJ1bnMgdGhlIG5ldyBjaGFyYWN0ZXIgdGhyb3VnaCB0aGUgY3VycmVudAorICAgICAqIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiwgaWYgb25lIGlzIHNldCwgYW5kIGluc2VydHMgdGhlCisgICAgICogdHJhbnNsaXRlcmF0ZWQgdGV4dCBpbnRvIHRoZSBidWZmZXIuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlS2V5VHlwZWQoS2V5RXZlbnQgZSkgeworICAgICAgICBjaGFyIGNoID0gZS5nZXRLZXlDaGFyKCk7CisgICAgICAgIAorICAgICAgICBpZiAodHJhbnNsaXQgPT0gbnVsbCkgeworICAgICAgICAgICAgc2V0S2V5U3RhcnQoLTEpOworICAgICAgICAgICAgc3VwZXIuaGFuZGxlS2V5VHlwZWQoZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0cmFuc2xpdGVyYXRlKGNoLCBmYWxzZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGZsdXNoKCkgeworICAgICAgICBpZiAodHJhbnNsaXQgIT0gbnVsbCkgdHJhbnNsaXRlcmF0ZSgnXHVGRkZGJywgdHJ1ZSk7CisgICAgfQorICAgIAorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHRyYW5zbGl0ZXJhdGUoY2hhciBjaCwgYm9vbGVhbiBmbHVzaCkgeworCisgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNhc2UgbW90aXZhdGVzIHRoZSB0d28gbGluZXMgdGhhdCByZWNvbXB1dGUKKyAgICAgICAgLy8gc3RhcnQgYW5kIGN1cnNvciBiZWxvdy4KKworICAgICAgICAvLyAgICAgICIgICAgICIgICAKKyAgICAgICAgLy8gYSBiIGMgcSByfHMgdCB1IG0gbQorICAgICAgICAvLyAwIDEgMiAzIDQgNSA2IDcgOCA5CisgICAgICAgIC8vICAgICAgIDAgMSAyCisKKyAgICAgICAgLy8gc3RhcnQgMywgY3Vyc29yIDUsIHNlbCA2IC0+IHsgMCwgMywgMiB9CisgICAgICAgIC8vIDogbmV3IGludFtdIHsgMCwgc2VsIC0gc3RhcnQsIGN1cnNvciAtIHN0YXJ0IH07CisgICAgICAgIAorICAgICAgICAvLyBzej45OXw5CisKKyAgICAgICAgLy8gICAgICAiICAgICB7ICAgIgorICAgICAgICAvLyBhIGIgYyBxIHIgOSA5fDkgdCB1IG0gbQorICAgICAgICAvLyAwIDEgMiAzIDQgNSA2IDcgOCA5IGEgYgorICAgICAgICAvLyAgICAgICAwIDEgMiAzIDQKKworICAgICAgICAvLyB7IDMsIDUsIDQgfSAtPiBzdGFydCA2LCBjdXJzb3IgNywgc2VsIDgKKyAgICAgICAgLy8gOiBzdGFydCArPSBpbmRleFswXTsKKyAgICAgICAgLy8gOiBjdXJzb3IgPSBzdGFydCArIGluZGV4WzJdIC0gaW5kZXhbMF07CisgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8vIE5lZWQgdG8gc2F2ZSBzdGFydCBiZWNhdXNlIGNhbGxzIHRvIHJlcGxhY2VSYW5nZSB3aWxsIHVwZGF0ZQorICAgICAgICAvLyBzdGFydCBhbmQgY3Vyc29yLgorICAgICAgICAvL2ludCBzYXZlU3RhcnQgPSBzdGFydDsKKworICAgICAgICBpbnQgZW5kID0gZmx1c2ggPyBnZXRTZWxlY3Rpb25FbmQoKSA6IGdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIFN0cmluZyBzb3VyY2VUZXh0ID0gZ2V0VGV4dCgpLnN1YnN0cmluZygwLGVuZCk7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIGJ1ZiA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzb3VyY2VUZXh0KTsKKyAgICAgICAgLypidWYucmVwbGFjZSgwLCAxLCBnZXRUZXh0KCkuc3Vic3RyaW5nKHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFNlbGVjdGlvblN0YXJ0KCkpKTsqLworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKCk7CisgICAgICAgIGluZGV4LmNvbnRleHRMaW1pdCA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgaW5kZXguY29udGV4dFN0YXJ0ID0gMDsKKyAgICAgICAgaW5kZXguc3RhcnQgPSBnZXRLZXlTdGFydCgpOworICAgICAgICBpZiAoaW5kZXguc3RhcnQgPT0gLTEpIGluZGV4LnN0YXJ0ID0gZ2V0U2VsZWN0aW9uU3RhcnQoKTsKKyAgICAgICAgaW5kZXgubGltaXQgPSBidWYubGVuZ3RoKCk7CisKKyAgICAgIC8vICBTdHJpbmdCdWZmZXIgbG9nID0gbnVsbDsKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRyYW5zbGl0ZXJhdG9yOiAiICsgdHJhbnNsaXQuZ2V0SUQoKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZyb206XHQiICsgJyInICsgYnVmLnRvU3RyaW5nKCkgKyAnIicKKyAgICAgICAgICAgICAgICArICI7IHtjczogIiArIGluZGV4LmNvbnRleHRTdGFydAorICAgICAgICAgICAgICAgICsgIiwgczogIiArIGluZGV4LnN0YXJ0CisgICAgICAgICAgICAgICAgKyAiLCBsOiAiICsgaW5kZXgubGltaXQKKyAgICAgICAgICAgICAgICArICIsIGNsOiAiICsgaW5kZXguY29udGV4dExpbWl0IAorICAgICAgICAgICAgICAgICsgIn0iICsgIjsgJyIgKyBjaCArICInIgorICAgICAgICAgICAgICAgICsgIiAiICsgZ2V0S2V5U3RhcnQoKQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmbHVzaCkgeworICAgICAgICAgICAgdHJhbnNsaXQuZmluaXNoVHJhbnNsaXRlcmF0aW9uKGJ1ZiwgaW5kZXgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdHJhbnNsaXQudHJhbnNsaXRlcmF0ZShidWYsIGluZGV4LCBjaCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUbzpcdCIgKyAnIicgKyBidWYudG9TdHJpbmcoKSArICciJworICAgICAgICAgICAgICAgICsgIjsge2NzOiAiICsgaW5kZXguY29udGV4dFN0YXJ0CisgICAgICAgICAgICAgICAgKyAiLCBzOiAiICsgaW5kZXguc3RhcnQKKyAgICAgICAgICAgICAgICArICIsIGw6ICIgKyBpbmRleC5saW1pdAorICAgICAgICAgICAgICAgICsgIiwgY2w6ICIgKyBpbmRleC5jb250ZXh0TGltaXQgCisgICAgICAgICAgICAgICAgKyAifSIKKyAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICAgICAgLyoKKyAgICAgICAgYnVmLnJlcGxhY2UoYnVmLmxlbmd0aCgpLCBidWYubGVuZ3RoKCksIFN0cmluZy52YWx1ZU9mKGNoKSk7CisgICAgICAgIHRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUoYnVmKTsKKyAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIFN0cmluZyByZXN1bHQgPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgLy9pZiAocmVzdWx0LmVxdWFscyhzb3VyY2VUZXh0ICsgY2gpKSByZXR1cm47CisgICAgICAgIAorICAgICAgICByZXBsYWNlUmFuZ2UocmVzdWx0LCAwLCBnZXRTZWxlY3Rpb25FbmQoKSk7CisgICAgICAgIHNldEtleVN0YXJ0KGluZGV4LnN0YXJ0KTsKKyAgICAgICAgCisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgc3RhcnQgaGFzIGJlZW4gY2hhbmdlZCBieSB0aGUgY2FsbGJhY2sgdG8KKyAgICAgICAgLy8gcmVzZXRUcmFuc2xpdGVyYXRvclN0YXJ0KCkgdmlhIHJlcGxhY2VSYW5nZSgpIC0tIHNvIHVzZSBvdXIKKyAgICAgICAgLy8gbG9jYWwgY29weSwgc2F2ZVN0YXJ0LgorCisgICAgICAgIC8vIFRoZSBTVEFSVCBpbmRleCBpcyB6ZXJvLWJhc2VkLiAgT24gZW50cnkgdG8gdHJhbnNsaXRlcmF0ZSgpLAorICAgICAgICAvLyBpdCB3YXMgemVyby4gIFdlIGNhbiB0aGVyZWZvcmUganVzdCBhZGQgaXQgdG8gb3VyIG9yaWdpbmFsCisgICAgICAgIC8vIGdldFRleHQoKS1iYXNlZCBpbmRleCB2YWx1ZSBvZiBzdGFydCAoaW4gc2F2ZVN0YXJ0KSB0byBnZXQKKyAgICAgICAgLy8gdGhlIG5ldyBnZXRUZXh0KCktYmFzZWQgc3RhcnQuCisvLyAgICAgICAgc3RhcnQgPSBzYXZlU3RhcnQgKyBpbmRleC5jb250ZXh0U3RhcnQ7CisKKyAgICAgICAgLy8gTWFrZSB0aGUgY3Vyc29yIGdldFRleHQoKS1iYXNlZC4gIFRoZSBDVVJTT1IgaW5kZXggaXMgemVyby1iYXNlZC4KKy8vICAgICAgICBjdXJzb3IgPSBzdGFydCArIGluZGV4LnN0YXJ0IC0gaW5kZXguY29udGV4dFN0YXJ0OworCisvKgorICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIFN0cmluZyBvdXQgPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGxvZy5hcHBlbmQob3V0LnN1YnN0cmluZygwLCBpbmRleC5jb250ZXh0U3RhcnQpKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQoJ3snKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQob3V0LnN1YnN0cmluZyhpbmRleC5jb250ZXh0U3RhcnQsIGluZGV4LnN0YXJ0KSkuCisgICAgICAgICAgICAgICAgYXBwZW5kKCd8JykuCisgICAgICAgICAgICAgICAgYXBwZW5kKG91dC5zdWJzdHJpbmcoaW5kZXguc3RhcnQpKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQoJyInKTsKKyAgICAgICAgICAgIGxvZy5hcHBlbmQoIiwgeyIgKyBpbmRleC5jb250ZXh0U3RhcnQgKyAiLCAiICsgaW5kZXguY29udGV4dExpbWl0ICsgIiwgIiArIGluZGV4LnN0YXJ0ICsgIn0sICIpOworLy8gICAgICAgICAgICBsb2cuYXBwZW5kKCJzdGFydCAiICsgc3RhcnQgKyAiLCBjdXJzb3IgIiArIGN1cnNvcik7CisgICAgICAgICAgICBsb2cuYXBwZW5kKCIsIHNlbCAiICsgZ2V0U2VsZWN0aW9uU3RhcnQoKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZXNjYXBlKGxvZy50b1N0cmluZygpKSk7CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcn0gYW5kIGRpcmVjdGlvbiB0bworICAgICAqIHVzZSB0byBwcm9jZXNzIGluY29taW5nIDxjb2RlPktleUV2ZW50PC9jb2RlPnMuCisgICAgICogQHBhcmFtIHQgdGhlIHtAbGluayBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yfSB0byB1c2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUcmFuc2xpdGVyYXRvcihUcmFuc2xpdGVyYXRvciB0KSB7CisgICAgICAgIC8qCisgICAgICAgIGlmICh0cmFuc2xpdCAhPSB0KSB7IC8vIFtzaWNdIHBvaW50ZXIgY29tcGFyZSBvazsgc2luZ2xldG9ucworICAgICAgICAgICAgcmVzZXRUcmFuc2xpdGVyYXRpb25TdGFydCgpOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIHRyYW5zbGl0ID0gdDsKKyAgICB9CisKKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0VHJhbnNsaXRlcmF0b3IoKSB7CisgICAgICAgIHJldHVybiB0cmFuc2xpdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgc3RhcnQgcG9pbnQgYXQgd2hpY2ggdHJhbnNsaXRlcmF0aW9uIGJlZ2lucy4gIFRoaXMKKyAgICAgKiBuZWVkcyB0byBiZSBkb25lIHdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIGN1cnNvciBvciB3aGVuIHRoZQorICAgICAqIGN1cnJlbnQge0BsaW5rIGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3J9IGlzIGNoYW5nZWQuIAorICAgICAqLworICAgICAvKgorICAgIHByaXZhdGUgdm9pZCByZXNldFRyYW5zbGl0ZXJhdGlvblN0YXJ0KCkgeworICAgICAgICBzdGFydCA9IGdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIGN1cnNvciA9IHN0YXJ0OworICAgIH0KKyAgICAqLworCisgICAgLyoqCisgICAgICogRXNjYXBlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGFzIFVuaWNvZGUuCisgICAgICogSlVTVCBGT1IgREVCVUdHSU5HIE9VVFBVVC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBlc2NhcGUoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAnICcgJiYgYyA8PSAweDAwN0YpIHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxcXFwiKTsgLy8gVGhhdCBpcywgIlxcIgorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA8IDB4MTAwMCkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCcwJyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjIDwgMHgxMDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjIDwgMHgxMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKEludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVHJhbnNsaXRlcmF0aW9uQ2hhcnQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9UcmFuc2xpdGVyYXRpb25DaGFydC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0ODdlYTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvVHJhbnNsaXRlcmF0aW9uQ2hhcnQuamF2YQpAQCAtMCwwICsxLDI4NSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi5kZW1vLnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgamF2YS5pby4qOworCitwdWJsaWMgY2xhc3MgVHJhbnNsaXRlcmF0aW9uQ2hhcnQgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RhcnQiKTsKKyAgICAgICAgVW5pY29kZVNldCBsZW5ndGhNYXJrcyA9IG5ldyBVbmljb2RlU2V0KCJbXHUwOUQ3XHUwQjU2LVx1MEI1N1x1MEJEN1x1MEM1Nlx1MENENS1cdTBDRDZcdTBENTdcdTBDNTVcdTBDRDVdIik7CisgICAgICAgIGludFtdIGluZGljU2NyaXB0cyA9IHsKKyAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICBVU2NyaXB0LkRFVkFOQUdBUkksCisgICAgICAgICAgICBVU2NyaXB0LkJFTkdBTEksCisgICAgICAgICAgICBVU2NyaXB0LkdVUk1VS0hJLAorICAgICAgICAgICAgVVNjcmlwdC5HVUpBUkFUSSwKKyAgICAgICAgICAgIFVTY3JpcHQuT1JJWUEsCisgICAgICAgICAgICBVU2NyaXB0LlRBTUlMLAorICAgICAgICAgICAgVVNjcmlwdC5URUxVR1UsCisgICAgICAgICAgICBVU2NyaXB0LktBTk5BREEsCisgICAgICAgICAgICBVU2NyaXB0Lk1BTEFZQUxBTSwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW10gbmFtZXMgPSBuZXcgU3RyaW5nW2luZGljU2NyaXB0cy5sZW5ndGhdOworICAgICAgICBVbmljb2RlU2V0W10gc2V0cyA9IG5ldyBVbmljb2RlU2V0W2luZGljU2NyaXB0cy5sZW5ndGhdOworICAgICAgICBUcmFuc2xpdGVyYXRvcltdIGZhbGxiYWNrcyA9IG5ldyBUcmFuc2xpdGVyYXRvcltpbmRpY1NjcmlwdHMubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRpY1NjcmlwdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIG5hbWVzW2ldID0gVVNjcmlwdC5nZXROYW1lKGluZGljU2NyaXB0c1tpXSk7CisgICAgICAgICAgICBzZXRzW2ldID0gbmV3IFVuaWNvZGVTZXQoIltbOiIgKyBuYW1lc1tpXSArICI6XSZbWzpMOl1bOk06XV0mWzphZ2U9My4xOl1dIik7CisgICAgICAgICAgICBmYWxsYmFja3NbaV0gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiYW55LSIgKyBuYW1lc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgRXF1aXZDbGFzcyBlcSA9IG5ldyBFcXVpdkNsYXNzKG5ldyBSZXZlcnNlQ29tcGFyYXRvcigpKTsKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBvcGVuUHJpbnRXcml0ZXIoInRyYW5zQ2hhcnQuaHRtbCIpOworICAgICAgICBwdy5wcmludGxuKCI8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCc+Iik7CisgICAgICAgIHB3LnByaW50bG4oIjx0aXRsZT5JbmRpYyBUcmFuc2xpdGVyYXRpb24gQ2hhcnQ8L3RpdGxlPjxzdHlsZT4iKTsKKyAgICAgICAgcHcucHJpbnRsbigidGQgeyB0ZXh0LWFsaWduOiBDZW50ZXI7IGZvbnQtc2l6ZTogMjAwJSB9Iik7CisgICAgICAgIHB3LnByaW50bG4oInR0IHsgZm9udC1zaXplOiA1MCUgfSIpOworICAgICAgICBwdy5wcmludGxuKCJ0ZC5taXNzIHsgYmFja2dyb3VuZC1jb2xvcjogI0NDQ0NGRiB9Iik7CisgICAgICAgIHB3LnByaW50bG4oIjwvc3R5bGU+PC9oZWFkPjxib2R5IGJnY29sb3I9JyNGRkZGRkYnPiIpOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGFueVRvTGF0aW4gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiYW55LWxhdGluIik7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdGVzdFN0cmluZyA9ICJcdTA5NDZcdTA5M0UiOworICAgICAgICAKKyAgICAgICAgVW5pY29kZVNldCBmYWlsTm9ybSA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIFNldCBsYXRpbkZhaWwgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRpY1NjcmlwdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpbmRpY1NjcmlwdHNbaV0gPT0gVVNjcmlwdC5MQVRJTikgY29udGludWU7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gbmFtZXNbaV07CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc291cmNlQ2hhcnMgPSBzZXRzW2ldOworCisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGluZGljU2NyaXB0cy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGlmIChpID09IGopIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSBuYW1lc1tqXTsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBmb3J3YXJkID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc291cmNlICsgJy0nICsgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBiYWNrd2FyZCA9IGZvcndhcmQuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Ioc291cmNlQ2hhcnMpOworICAgICAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aE1hcmtzLmNvbnRhaW5zKGl0LmNvZGVwb2ludCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGl0LmNvZGVwb2ludCxOb3JtYWxpemVyLk5GQywwKTsKKyAgICAgICAgICAgICAgICAgICAgLy9pZiAoIU5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKHMsTm9ybWFsaXplci5ORkMsMCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKE5vcm1hbGl6ZXIubm9ybWFsaXplKHMsTm9ybWFsaXplci5ORkQsMCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmYWlsTm9ybS5hZGQoaXQuY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHQgPSBmaXgoZm9yd2FyZC50cmFuc2xpdGVyYXRlKHMpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHQuZXF1YWxzKHRlc3RTdHJpbmcpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRlYnVnIik7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgciA9IGZpeChiYWNrd2FyZC50cmFuc2xpdGVyYXRlKHQpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIuY29tcGFyZShzLHIsMCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGljU2NyaXB0c1tqXSAhPSBVU2NyaXB0LkxBVElOKSBlcS5hZGQocyx0KTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmRpY1NjcmlwdHNbal0gPT0gVVNjcmlwdC5MQVRJTikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdGluRmFpbC5hZGQocyArICIgLSAiICsgdCArICIgLSAiICsgcik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gY29sbGVjdCBlcXVpdmFsZW50cworICAgICAgICBwdy5wcmludGxuKCI8dGFibGUgYm9yZGVyPScxJyBjZWxsc3BhY2luZz0nMCc+PHRyPiIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGljU2NyaXB0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgcHcucHJpbnQoIjx0aCB3aWR0aD0nMTAlJz4iICsgbmFtZXNbaV0uc3Vic3RyaW5nKDAsMykgKyAiPC90aD4iKTsKKyAgICAgICAgfQorICAgICAgICBwdy5wcmludGxuKCI8L3RyPiIpOworCisgICAgICAgIEl0ZXJhdG9yIHJpdCA9IGVxLmdldFNldEl0ZXJhdG9yKG5ldyBNeUNvbXBhcmF0b3IoKSk7CisgICAgICAgIHdoaWxlKHJpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIFNldCBlcXVpdnMgPSAoU2V0KXJpdC5uZXh0KCk7CisgICAgICAgICAgICBwdy5wcmludCgiPHRyPiIpOworICAgICAgICAgICAgSXRlcmF0b3Igc2l0ID0gZXF1aXZzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gKFN0cmluZylzaXQubmV4dCgpOworICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSBhbnlUb0xhdGluLnRyYW5zbGl0ZXJhdGUoc291cmNlKTsKKyAgICAgICAgICAgIGlmIChpdGVtLmVxdWFscygiIikgfHwgc291cmNlLmVxdWFscyhpdGVtKSkgaXRlbSA9ICImbmJzcDsiOworICAgICAgICAgICAgcHcucHJpbnQoIjx0ZD4iICsgaXRlbSArICI8L3RkPiIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBpbmRpY1NjcmlwdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBzaXQgPSBlcXVpdnMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBpdGVtID0gIiI7CisgICAgICAgICAgICAgICAgd2hpbGUgKHNpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRyaWFsID0gKFN0cmluZylzaXQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXNldHNbaV0uY29udGFpbnNBbGwodHJpYWwpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgaXRlbSA9IHRyaWFsOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIGNsYXNzU3RyaW5nID0gIiI7CisgICAgICAgICAgICAgICAgaWYgKGl0ZW0uZXF1YWxzKCIiKSkgeworICAgICAgICAgICAgICAgICAgICBjbGFzc1N0cmluZyA9ICIgY2xhc3M9J21pc3MnIjsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBmYWxsYmFja3NbaV0udHJhbnNsaXRlcmF0ZShzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlbXAuZXF1YWxzKCIiKSAmJiAhdGVtcC5lcXVhbHMoc291cmNlKSkgaXRlbSA9IHRlbXA7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBTdHJpbmcgYmFja3VwID0gaXRlbS5lcXVhbHMoIiIpID8gIiZuYnNwOyIgOiBpdGVtOworICAgICAgICAgICAgICAgIHB3LnByaW50KCI8dGQiICsgY2xhc3NTdHJpbmcgKyAiIHRpdGxlPSciICsgZ2V0TmFtZShpdGVtLCAiOyAiKSArICInPiIgCisgICAgICAgICAgICAgICAgICAgICsgYmFja3VwICsgIjxicj48dHQ+IiArIFV0aWxpdHkuaGV4KGl0ZW0pICsgIjwvdHQ+PC90ZD4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICBJdGVyYXRvciBzaXQgPSBlcXVpdnMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChzaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSAoU3RyaW5nKXNpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgcHcucHJpbnQoIjx0ZD4iICsgaXRlbSArICI8L3RkPiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHB3LnByaW50bG4oIjwvdHI+Iik7CisgICAgICAgIH0KKyAgICAgICAgcHcucHJpbnRsbigiPC90YWJsZT4iKTsKKyAgICAgICAgaWYgKHRydWUpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxoMj5GYWlsZWQgTm9ybWFsaXphdGlvbjwvaDI+Iik7CisgICAgCisgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGZhaWxOb3JtKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgcGllY2VzID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IFVURjE2LnZhbHVlT2YoaXQuY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHMsTm9ybWFsaXplci5ORkQsMCk7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiTm9ybToiICsgcyArICIsICIgKyBVdGlsaXR5LmhleChzKSArICIgIiArIFVDaGFyYWN0ZXIuZ2V0TmFtZShpdC5jb2RlcG9pbnQpCisgICAgICAgICAgICAgICAgICAgICArICI7ICIgKyBkICsgIiwgIiArIFV0aWxpdHkuaGV4KGQpICsgIiwgIik7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbihVQ2hhcmFjdGVyLmdldE5hbWUoZC5jaGFyQXQoMSkpICsgIjxicj4iKTsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXROYW1lKGQuY2hhckF0KDEpKS5pbmRleE9mKCJMRU5HVEgiKSA+PSAwKSBwaWVjZXMuYWRkKGQuY2hhckF0KDEpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB3LnByaW50bG4ocGllY2VzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHcucHJpbnRsbigiPGgyPkZhaWxlZCBSb3VuZC1UcmlwPC9oMj4iKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGNpdCA9IGxhdGluRmFpbC5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGNpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKGNpdC5uZXh0KCkgKyAiPGJyPiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IAorCisgICAgICAgIHB3LnByaW50bG4oIjwvdGFibGU+PC9ib2R5PjwvaHRtbD4iKTsKKyAgICAgICAgcHcuY2xvc2UoKTsgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRvbmUiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZml4KFN0cmluZyBzKSB7CisgICAgICAgIGlmIChzLmVxdWFscygiXHUwOTQ2XHUwOTNFIikpIHJldHVybiAiXHUwOTRBIjsKKyAgICAgICAgaWYgKHMuZXF1YWxzKCJcdTBDNDZcdTBDM0UiKSkgcmV0dXJuICJcdTBDNEEiOworICAgICAgICBpZiAocy5lcXVhbHMoIlx1MENDNlx1MENCRSIpKSByZXR1cm4gIlx1MENDQSI7CisKKyAgICAgICAgaWYgKHMuZXF1YWxzKCJcdTA5NDdcdTA5M0UiKSkgcmV0dXJuICJcdTA5NEIiOworICAgICAgICBpZiAocy5lcXVhbHMoIlx1MEE0N1x1MEEzRSIpKSByZXR1cm4gIlx1MEE0QiI7CisgICAgICAgIGlmIChzLmVxdWFscygiXHUwQUM3XHUwQUJFIikpIHJldHVybiAiXHUwQUNCIjsKKyAgICAgICAgaWYgKHMuZXF1YWxzKCJcdTBDNDdcdTBDM0UiKSkgcmV0dXJuICJcdTBDNEIiOworICAgICAgICBpZiAocy5lcXVhbHMoIlx1MENDN1x1MENCRSIpKSByZXR1cm4gIlx1MENDQiI7CisgICAgICAgCisgICAgICAgIC8vcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKHMsTm9ybWFsaXplci5ORkQsMCk7CisgICAgICAgIHJldHVybiBzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFByaW50V3JpdGVyIG9wZW5QcmludFdyaXRlcihTdHJpbmcgZmlsZU5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIEZpbGUgbGYgPSBuZXcgRmlsZShmaWxlTmFtZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ3JlYXRpbmcgZmlsZTogIiArIGxmLmdldEFic29sdXRlRmlsZSgpKTsKKyAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBQcmludFdyaXRlcigKKyAgICAgICAgICAgICAgICBuZXcgQnVmZmVyZWRXcml0ZXIoCisgICAgICAgICAgICAgICAgICAgIG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlTmFtZSksICJVVEY4IiksIDQqMTAyNCkpOworICAgIH0KKworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldE5hbWUoU3RyaW5nIHMsIFN0cmluZyBzZXBhcmF0b3IpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLGkpOworICAgICAgICAgICAgaWYgKGkgIT0gMCkgc2IuYXBwZW5kKHNlcGFyYXRvcik7CisgICAgICAgICAgICBzYi5hcHBlbmQoVUNoYXJhY3Rlci5nZXROYW1lKGNwKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBNeUNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IG8xLCBPYmplY3QgbzIpIHsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGkxID0gKChUcmVlU2V0KSBvMSkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGkyID0gKChUcmVlU2V0KSBvMikuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpMS5oYXNOZXh0KCkgJiYgaTIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGEgPSAoU3RyaW5nKWkxLm5leHQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYiA9IChTdHJpbmcpaTIubmV4dCgpOworICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBhLmNvbXBhcmVUbyhiKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IDApIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaTEuaGFzTmV4dCgpKSByZXR1cm4gMTsKKyAgICAgICAgICAgIGlmIChpMi5oYXNOZXh0KCkpIHJldHVybiAtMTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICBzdGF0aWMgY2xhc3MgUmV2ZXJzZUNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBvMSwgT2JqZWN0IG8yKSB7CisgICAgICAgICAgICBTdHJpbmcgYSA9IG8xLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBjaGFyIGExID0gYS5jaGFyQXQoMCk7CisgICAgICAgICAgICBTdHJpbmcgYiA9IG8yLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBjaGFyIGIxID0gYi5jaGFyQXQoMCk7CisgICAgICAgICAgICBpZiAoYTEgPCAweDkwMCAmJiBiMSA+IDB4OTAwKSByZXR1cm4gLTE7CisgICAgICAgICAgICBpZiAoYTEgPiAweDkwMCAmJiBiMSA8IDB4OTAwKSByZXR1cm4gKzE7CisgICAgICAgICAgICByZXR1cm4gYS5jb21wYXJlVG8oYik7CisgICAgICAgIH0gICAgICAgCisgICAgfQorICAgICAgCisgICAgc3RhdGljIGNsYXNzIEVxdWl2Q2xhc3MgeworICAgICAgICBFcXVpdkNsYXNzKENvbXBhcmF0b3IgYykgeworICAgICAgICAgICAgY29tcGFyYXRvciA9IGM7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBIYXNoTWFwIGl0ZW1Ub1NldCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIHByaXZhdGUgQ29tcGFyYXRvciBjb21wYXJhdG9yOworICAgICAgICAKKyAgICAgICAgdm9pZCBhZGQoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgICAgICBTZXQgc2EgPSAoU2V0KWl0ZW1Ub1NldC5nZXQoYSk7CisgICAgICAgICAgICBTZXQgc2IgPSAoU2V0KWl0ZW1Ub1NldC5nZXQoYik7CisgICAgICAgICAgICBpZiAoc2EgPT0gbnVsbCAmJiBzYiA9PSBudWxsKSB7IC8vIG5ldyBzZXQhCisgICAgICAgICAgICAgICAgU2V0IHMgPSBuZXcgVHJlZVNldChjb21wYXJhdG9yKTsKKyAgICAgICAgICAgICAgICBzLmFkZChhKTsKKyAgICAgICAgICAgICAgICBzLmFkZChiKTsKKyAgICAgICAgICAgICAgICBpdGVtVG9TZXQucHV0KGEsIHMpOworICAgICAgICAgICAgICAgIGl0ZW1Ub1NldC5wdXQoYiwgcyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNhID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzYi5hZGQoYSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNiID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzYS5hZGQoYik7CisgICAgICAgICAgICB9IGVsc2UgeyAvLyBtZXJnZSBzZXRzLCBkdW1waW5nIHNiCisgICAgICAgICAgICAgICAgc2EuYWRkQWxsKHNiKTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBpdCA9IHNiLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpdGVtVG9TZXQucHV0KGl0Lm5leHQoKSwgc2EpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBjbGFzcyBNeUl0ZXJhdG9yIGltcGxlbWVudHMgSXRlcmF0b3IgeworICAgICAgICAgICAgcHJpdmF0ZSBJdGVyYXRvciBpdDsKKyAgICAgICAgICAgIE15SXRlcmF0b3IgKENvbXBhcmF0b3IgY29tcCkgeworICAgICAgICAgICAgICAgIFRyZWVTZXQgdmFsdWVzID0gbmV3IFRyZWVTZXQoY29tcCk7CisgICAgICAgICAgICAgICAgdmFsdWVzLmFkZEFsbChpdGVtVG9TZXQudmFsdWVzKCkpOworICAgICAgICAgICAgICAgIGl0ID0gdmFsdWVzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzTmV4dCgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaXQuaGFzTmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIE9iamVjdCBuZXh0KCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpdC5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCByZW1vdmUoKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiY2FuJ3QgcmVtb3ZlIik7CisgICAgICAgICAgICB9ICAgICAgICAKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBJdGVyYXRvciBnZXRTZXRJdGVyYXRvciAoQ29tcGFyYXRvciBjb21wKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IE15SXRlcmF0b3IoY29tcCk7CisgICAgICAgIH0KKworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvZGVtby5iYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvZGVtby5iYXQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGQ5YzIwNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9kZW1vLmJhdApAQCAtMCwwICsxLDEzIEBACitSRU0gLyoKK1JFTSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCitSRU0gICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKK1JFTSAgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorUkVNICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCitSRU0gICovCitSRU0gRm9yIGJlc3QgcmVzdWx0cywgcnVuIHRoZSBkZW1vIGFzIGFuIGFwcGxldCBpbnNpZGUgb2YgTmV0c2NhcGUKK1JFTSB3aXRoIEJpdHN0cmVhbSBDeWJlcmJpdCBpbnN0YWxsZWQuCisKK1JFTSBzZXR1cCB5b3VyIEpESyAxLjEueCBwYXRoIGFuZCBjbGFzc3BhdGggaGVyZToKK2NhbGwgSkRLMTEKK3NldCBDTEFTU1BBVEg9Li4vdHJhbnNsaXQuamFyOyVDTEFTU1BBVEglCitqYXZhdyBEZW1vCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvZGVtby5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L2RlbW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYTdlZTViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L2RlbW8uaHRtbApAQCAtMCwwICsxLDM0IEBACis8IS0tIAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk5LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCistLT4KKzxIVE1MPgorPEhFQUQ+Cis8VElUTEU+VHJhbnNsaXRlcmF0aW9uIERlbW88L1RJVExFPgorPC9IRUFEPgorPEJPRFk+Cis8QVBQTEVUIENPREU9ImNvbS5pYm0uZGVtby50cmFuc2xpdC5EZW1vQXBwbGV0LmNsYXNzIiBXSURUSD0xNDAgSEVJR0hUPTMzPjwvQVBQTEVUPgorCis8SFI+CisKK0lmIHlvdSBkb24ndCBzZWUgYSBidXR0b24gYWJvdmUsIHRoZW4geW91ciBicm93c2VyIGlzIGZhaWxpbmcgdG8KK2xvY2F0ZSB0aGUgbmVjZXNzYXJ5IEphdmEgY2xhc3MgZmlsZXMuCisKKzxQPgorCitPbmUgd2F5IHRvIG1ha2UgdGhpcyB3b3JrIGlzIHRvIGNvcHkgdGhpcyBIVE1MIGZpbGUgdG8KKzxjb2RlPmljdTRqL3NyYzwvY29kZT4sIGFuZCBtYWtlIHN1cmUgdGhlIEphdmEgZmlsZXMgaW4gdGhlIGRpcmVjdG9yaWVzCit1bmRlciA8Y29kZT5pY3U0ai9zcmMvY29tPC9jb2RlPiBhcmUgYnVpbHQuICBUaGVuIG9wZW4gdGhpcyBIVE1MIGZpbGUKK3VzaW5nIGEgYnJvd3NlciBvciBhcHBsZXR2aWV3ZXIuCisKKzxQPgorCitGb3IgYmVzdCByZXN1bHRzLCBydW4gdGhpcyBkZW1vIGFzIGFuIGFwcGxldCB3aXRoaW4gTmV0c2NhcGUgd2l0aAorQml0c3RyZWFtIEN5YmVyYml0IGluc3RhbGxlZC4KKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODM1NWQxZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorVHJhbnNsaXRlcmF0b3IgZGVtbyBhcHBsaWF0aW9uLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfSGFuX1Bpbnlpbi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcmVzb3VyY2VzL1RyYW5zbGl0ZXJhdG9yX0hhbl9QaW55aW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhmN2MyMWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcmVzb3VyY2VzL1RyYW5zbGl0ZXJhdG9yX0hhbl9QaW55aW4udHh0CkBAIC0wLDAgKzEsMjAzNjUgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBHZW5lcmF0ZWQ6IEZyaSBKYW4gMjYgMTU6MTQ6NDggMjAwMQorIyBUb29sOiAuLlwuLlx0b29sc1x0cmFuc2xpdFxoYW5waW55aW4ucGwKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEhhbi1QaW55aW4KKworIyBNZWNoYW5pY2FsbHkgZGVyaXZlZCBmcm9tIFxkZXNrXFVuaWhhbi50eHQgKGZ0cC51bmljb2RlLm9yZyksIHZlcnNpb246CisjCisjCU5hbWU6ICAgICAgICAgICAgIFVuaWhhbiBkYXRhYmFzZQorIwlVbmljb2RlIHZlcnNpb246ICAzLjBiMQorIwlUYWJsZSB2ZXJzaW9uOiAgICAxLjEKKyMJRGF0ZTogICAgICAgICAgICAgMiBKdWx5IDE5OTkKKyMKKyMJQ29weXJpZ2h0IChjKSAxOTk2LTE5OTkgVW5pY29kZSwgSW5jLiAgQWxsIFJpZ2h0cyByZXNlcnZlZC4KKwor5LiBID4gZMSrbmc7ICM0RTAxCivkuIIgPiBrxINvOyAjNEUwMgor5LiDID4gccSrOyAjNEUwMwor5LiEID4gc2jDoG5nOyAjNEUwNAor5LiFID4geGnDoDsgIzRFMDUKK+S4hyA+IG3DsjsgIzRFMDcKK+S4iCA+IHpow6BuZzsgIzRFMDgKK+S4iSA+IHPEgW47ICM0RTA5CivkuIogPiBzaMOgbmc7ICM0RTBBCivkuIsgPiB4acOgOyAjNEUwQgor5LiMID4gasSrOyAjNEUwQwor5LiNID4gYsO5OyAjNEUwRAor5LiOID4gecWtOyAjNEUwRQor5LiPID4gbWnEg247ICM0RTBGCivkuJAgPiBnw6BpOyAjNEUxMAor5LiRID4gY2jFj3U7ICM0RTExCivkuJIgPiBjaMWPdTsgIzRFMTIKK+S4kyA+IHpodcSBbjsgIzRFMTMKK+S4lCA+IHFpxJU7ICM0RTE0CivkuJUgPiBwxKs7ICM0RTE1CivkuJYgPiBzaMOsOyAjNEUxNgor5LiXID4gc2jDrDsgIzRFMTcKK+S4mCA+IHHEq3U7ICM0RTE4CivkuJkgPiBixK1uZzsgIzRFMTkKK+S4miA+IHnDqDsgIzRFMUEKK+S4myA+IGPDs25nOyAjNEUxQgor5LicID4gZMWNbmc7ICM0RTFDCivkuJ0gPiBzxKs7ICM0RTFECivkuJ4gPiBjaMOpbmc7ICM0RTFFCivkuJ8gPiBkxKt1OyAjNEUxRgor5LigID4gccSrdTsgIzRFMjAKK+S4oSA+IGxpxINuZzsgIzRFMjEKK+S4oiA+IGTEq3U7ICM0RTIyCivkuKMgPiB5xY91OyAjNEUyMwor5LikID4gbGnEg25nOyAjNEUyNAor5LilID4gecOhbjsgIzRFMjUKK+S4piA+IGLDrG5nOyAjNEUyNgor5LinID4gc8SBbmc7ICM0RTI3CivkuKggPiBnxa1uOyAjNEUyOAor5LipID4gasSrdTsgIzRFMjkKK+S4qiA+IGfDqDsgIzRFMkEKK+S4qyA+IHnEgTsgIzRFMkIKK+S4rCA+IHFpw6FuZzsgIzRFMkMKK+S4rSA+IHpoxY1uZzsgIzRFMkQKK+S4riA+IGrErTsgIzRFMkUKK+S4ryA+IGppw6g7ICM0RTJGCivkuLAgPiBmxJNuZzsgIzRFMzAKK+S4sSA+IGd1w6BuOyAjNEUzMQor5LiyID4gY2h1w6BuOyAjNEUzMgor5LizID4gY2jEg247ICM0RTMzCivkuLQgPiBsw61uOyAjNEUzNAor5Li1ID4gemjFrW87ICM0RTM1CivkuLYgPiB6aMWtOyAjNEUzNgor5Li4ID4gd8OhbjsgIzRFMzgKK+S4uSA+IGTEgW47ICM0RTM5CivkuLogPiB3w6hpOyAjNEUzQQor5Li7ID4gemjFrTsgIzRFM0IKK+S4vCA+IGrErW5nOyAjNEUzQwor5Li9ID4gbMOsOyAjNEUzRAor5Li+ID4gasWtOyAjNEUzRQor5Li/ID4gcGnElTsgIzRFM0YKK+S5gCA+IGbDujsgIzRFNDAKK+S5gSA+IHnDrTsgIzRFNDEKK+S5giA+IHnDrDsgIzRFNDIKK+S5gyA+IG7Eg2k7ICM0RTQzCivkuYUgPiBqxK11OyAjNEU0NQor5LmGID4gasStdTsgIzRFNDYKK+S5hyA+IHpow6k7ICM0RTQ3CivkuYggPiB5xIFvOyAjNEU0OAor5LmJID4gecOsOyAjNEU0OQor5LmLID4gemjEqzsgIzRFNEIKK+S5jCA+IHfFqzsgIzRFNEMKK+S5jSA+IHpow6A7ICM0RTRECivkuY4gPiBoxas7ICM0RTRFCivkuY8gPiBmw6E7ICM0RTRGCivkuZAgPiBsw6g7ICM0RTUwCivkuZEgPiB6aMOybmc7ICM0RTUxCivkuZIgPiBwxKtuZzsgIzRFNTIKK+S5kyA+IHBhbmc7ICM0RTUzCivkuZQgPiBxacOhbzsgIzRFNTQKK+S5lSA+IGjFrTsgIzRFNTUKK+S5liA+IGd1xIFpOyAjNEU1Ngor5LmXID4gY2jDqW5nOyAjNEU1Nwor5LmYID4gY2jDqW5nOyAjNEU1OAor5LmZID4gecStOyAjNEU1OQor5LmaID4gecStbjsgIzRFNUEKK+S5nCA+IG1pxJM7ICM0RTVDCivkuZ0gPiBqxK11OyAjNEU1RAor5LmeID4gccStOyAjNEU1RQor5LmfID4gecSVOyAjNEU1Rgor5LmgID4geMOtOyAjNEU2MAor5LmhID4geGnEgW5nOyAjNEU2MQor5LmiID4gZ8OgaTsgIzRFNjIKK+S5oyA+IGTEq3U7ICM0RTYzCivkuaYgPiBzaMWrOyAjNEU2Ngor5LmoID4gc2jErTsgIzRFNjgKK+S5qSA+IGrEqzsgIzRFNjkKK+S5qiA+IG7EgW5nOyAjNEU2QQor5LmrID4gamnEgTsgIzRFNkIKK+S5rSA+IHNow607ICM0RTZECivkubAgPiBtxINpOyAjNEU3MAor5LmxID4gbHXDoG47ICM0RTcxCivkubMgPiByxa07ICM0RTczCivkubQgPiB4dcOpOyAjNEU3NAor5Lm1ID4gecSDbjsgIzRFNzUKK+S5tiA+IGbFrTsgIzRFNzYKK+S5tyA+IHNoxIE7ICM0RTc3CivkubggPiBuxIM7ICM0RTc4CivkubkgPiBnxIFuOyAjNEU3OQor5Lm+ID4gZ8SBbjsgIzRFN0UKK+S5vyA+IGNow6w7ICM0RTdGCivkuoAgPiBnxatpOyAjNEU4MAor5LqBID4gZ8SBbjsgIzRFODEKK+S6giA+IGx1w6BuOyAjNEU4Mgor5LqDID4gbMOtbjsgIzRFODMKK+S6hCA+IHnDrDsgIzRFODQKK+S6hSA+IGp1w6k7ICM0RTg1CivkuoYgPiBsacSDbzsgIzRFODYKK+S6iCA+IHnDujsgIzRFODgKK+S6iSA+IHpoxJNuZzsgIzRFODkKK+S6iiA+IHNow6w7ICM0RThBCivkuosgPiBzaMOsOyAjNEU4Qgor5LqMID4gw6hyOyAjNEU4Qwor5LqNID4gY2jDuTsgIzRFOEQKK+S6jiA+IHnDujsgIzRFOEUKK+S6jyA+IHnDujsgIzRFOEYKK+S6kCA+IHnDujsgIzRFOTAKK+S6kSA+IHnDum47ICM0RTkxCivkupIgPiBow7k7ICM0RTkyCivkupMgPiBxw607ICM0RTkzCivkupQgPiB3xa07ICM0RTk0CivkupUgPiBqxK1uZzsgIzRFOTUKK+S6liA+IHPDrDsgIzRFOTYKK+S6lyA+IHPDuWk7ICM0RTk3CivkupggPiBnw6huOyAjNEU5OAor5LqZID4gZ8OobjsgIzRFOTkKK+S6miA+IHnDoDsgIzRFOUEKK+S6myA+IHhpxJM7ICM0RTlCCivkupwgPiB5w6A7ICM0RTlDCivkup0gPiBxw607ICM0RTlECivkup4gPiB5w6A7ICM0RTlFCivkup8gPiBqw607ICM0RTlGCivkuqAgPiB0w7N1OyAjNEVBMAor5LqhID4gd8Ohbmc7ICM0RUExCivkuqIgPiBrw6BuZzsgIzRFQTIKK+S6oyA+IHTDoDsgIzRFQTMKK+S6pCA+IGppxIFvOyAjNEVBNAor5LqlID4gaMOgaTsgIzRFQTUKK+S6piA+IHnDrDsgIzRFQTYKK+S6pyA+IGNoxINuOyAjNEVBNwor5LqoID4gaMSTbmc7ICM0RUE4CivkuqkgPiBtxa07ICM0RUE5CivkuqsgPiB4acSDbmc7ICM0RUFCCivkuqwgPiBqxKtuZzsgIzRFQUMKK+S6rSA+IHTDrW5nOyAjNEVBRAor5LquID4gbGnDoG5nOyAjNEVBRQor5LqvID4geGnEg25nOyAjNEVBRgor5LqwID4gasSrbmc7ICM0RUIwCivkurEgPiB5w6g7ICM0RUIxCivkurIgPiBxxKtuOyAjNEVCMgor5LqzID4gYsOzOyAjNEVCMwor5Lq0ID4gecOydTsgIzRFQjQKK+S6tSA+IHhpw6g7ICM0RUI1CivkurYgPiBkxINuOyAjNEVCNgor5Lq3ID4gbGnDoW47ICM0RUI3CivkurggPiBkxa1vOyAjNEVCOAor5Lq5ID4gd8SVaTsgIzRFQjkKK+S6uiA+IHLDqW47ICM0RUJBCivkursgPiByw6luOyAjNEVCQgor5Lq8ID4gasOtOyAjNEVCQwor5Lq+ID4gd8Ohbmc7ICM0RUJFCivkur8gPiB5w6w7ICM0RUJGCivku4AgPiBzaMOtOyAjNEVDMAor5LuBID4gcsOpbjsgIzRFQzEKK+S7giA+IGzDqDsgIzRFQzIKK+S7gyA+IGTEq25nOyAjNEVDMwor5LuEID4gesOoOyAjNEVDNAor5LuFID4gasStbjsgIzRFQzUKK+S7hiA+IHDFqzsgIzRFQzYKK+S7hyA+IGNow7N1OyAjNEVDNwor5LuIID4gYsSBOyAjNEVDOAor5LuJID4gemjEg25nOyAjNEVDOQor5LuKID4gasSrbjsgIzRFQ0EKK+S7iyA+IGppw6g7ICM0RUNCCivku4wgPiBixKtuZzsgIzRFQ0MKK+S7jSA+IHLDqW5nOyAjNEVDRAor5LuOID4gY8Ozbmc7ICM0RUNFCivku48gPiBmw7M7ICM0RUNGCivku5AgPiBzxINuOyAjNEVEMAor5LuRID4gbMO6bjsgIzRFRDEKK+S7kyA+IGPEgW5nOyAjNEVEMwor5LuUID4gesStOyAjNEVENAor5LuVID4gc2jDrDsgIzRFRDUKK+S7liA+IHTEgTsgIzRFRDYKK+S7lyA+IHpow6BuZzsgIzRFRDcKK+S7mCA+IGbDuTsgIzRFRDgKK+S7mSA+IHhpxIFuOyAjNEVEOQor5LuaID4geGnEgW47ICM0RURBCivku5sgPiB0xatvOyAjNEVEQgor5LucID4gaMOzbmc7ICM0RURDCivku50gPiB0w7NuZzsgIzRFREQKK+S7niA+IHLDqG47ICM0RURFCivku58gPiBxacSBbjsgIzRFREYKK+S7oCA+IGfDoW47ICM0RUUwCivku6EgPiB5w6w7ICM0RUUxCivku6IgPiBkw607ICM0RUUyCivku6MgPiBkw6BpOyAjNEVFMwor5LukID4gbMOsbmc7ICM0RUU0Civku6UgPiB5xK07ICM0RUU1Civku6YgPiBjaMOgbzsgIzRFRTYKK+S7pyA+IGNow6FuZzsgIzRFRTcKK+S7qCA+IHPEgTsgIzRFRTgKK+S7qiA+IHnDrTsgIzRFRUEKK+S7qyA+IG3DuTsgIzRFRUIKK+S7rCA+IG1lbjsgIzRFRUMKK+S7rSA+IHLDqG47ICM0RUVECivku64gPiBqacSDOyAjNEVFRQor5LuvID4gY2jDoG87ICM0RUVGCivku7AgPiB5xINuZzsgIzRFRjAKK+S7sSA+IHFpw6FuOyAjNEVGMQor5LuyID4gemjDsm5nOyAjNEVGMgor5LuzID4gcMStOyAjNEVGMwor5Lu0ID4gd8OgbjsgIzRFRjQKK+S7tSA+IHfFrTsgIzRFRjUKK+S7tiA+IGppw6BuOyAjNEVGNgor5Lu3ID4gamnDqDsgIzRFRjcKK+S7uCA+IHnEg287ICM0RUY4Civku7kgPiBmxJNuZzsgIzRFRjkKK+S7uiA+IGPEgW5nOyAjNEVGQQor5Lu7ID4gcsOobjsgIzRFRkIKK+S7vCA+IHfDoW5nOyAjNEVGQwor5Lu9ID4gZsOobjsgIzRFRkQKK+S7viA+IGTEqzsgIzRFRkUKK+S7vyA+IGbEg25nOyAjNEVGRgor5LyAID4gemjFjW5nOyAjNEYwMAor5LyBID4gccStOyAjNEYwMQor5LyCID4gcMOoaTsgIzRGMDIKK+S8gyA+IHnDujsgIzRGMDMKK+S8hCA+IGRpw6BvOyAjNEYwNAor5LyFID4gZMO5bjsgIzRGMDUKK+S8hiA+IHfDqG47ICM0RjA2CivkvIcgPiB5w6w7ICM0RjA3CivkvIggPiB4xK1uOyAjNEYwOAor5LyJID4ga8Ogbmc7ICM0RjA5CivkvIogPiB5xKs7ICM0RjBBCivkvIsgPiBqw607ICM0RjBCCivkvIwgPiDDoGk7ICM0RjBDCivkvI0gPiB3xa07ICM0RjBECivkvI4gPiBqw6w7ICM0RjBFCivkvI8gPiBmw7o7ICM0RjBGCivkvJAgPiBmw6E7ICM0RjEwCivkvJEgPiB4xKt1OyAjNEYxMQor5LySID4gasOsbjsgIzRGMTIKK+S8kyA+IGLEk2k7ICM0RjEzCivkvJQgPiBkxINuOyAjNEYxNAor5LyVID4gZsWrOyAjNEYxNQor5LyWID4gdMSDbmc7ICM0RjE2CivkvJcgPiB6aMOybmc7ICM0RjE3CivkvJggPiB5xY11OyAjNEYxOAor5LyZID4gaMWtbzsgIzRGMTkKK+S8miA+IGjDuWk7ICM0RjFBCivkvJsgPiB5xa07ICM0RjFCCivkvJwgPiBjw7lpOyAjNEYxQwor5LydID4gY2h1w6FuOyAjNEYxRAor5LyeID4gc8SDbjsgIzRGMUUKK+S8nyA+IHfElWk7ICM0RjFGCivkvKAgPiBjaHXDoW47ICM0RjIwCivkvKEgPiBjaMSTOyAjNEYyMQor5LyiID4gecOhOyAjNEYyMgor5LyjID4geGnDoG47ICM0RjIzCivkvKQgPiBzaMSBbmc7ICM0RjI0CivkvKUgPiBjaMSBbmc7ICM0RjI1CivkvKYgPiBsw7puOyAjNEYyNgor5LynID4gY8SBbmc7ICM0RjI3CivkvKggPiB4w7luOyAjNEYyOAor5LypID4geMOsbjsgIzRGMjkKK+S8qiA+IHfElWk7ICM0RjJBCivkvKsgPiB6aMO5OyAjNEYyQgor5LytID4geHXDoW47ICM0RjJECivkvK4gPiBuw7o7ICM0RjJFCivkvK8gPiBiw7M7ICM0RjJGCivkvLAgPiBnxas7ICM0RjMwCivkvLEgPiBuxK07ICM0RjMxCivkvLIgPiBuxK07ICM0RjMyCivkvLMgPiB4acOoOyAjNEYzMwor5Ly0ID4gYsOgbjsgIzRGMzQKK+S8tSA+IHjDuTsgIzRGMzUKK+S8tiA+IGzDrW5nOyAjNEYzNgor5Ly3ID4gemjDsnU7ICM0RjM3CivkvLggPiBzaMSTbjsgIzRGMzgKK+S8uSA+IHHFqzsgIzRGMzkKK+S8uiA+IHPDrDsgIzRGM0EKK+S8uyA+IGLEk25nOyAjNEYzQgor5Ly8ID4gc8OsOyAjNEYzQwor5Ly9ID4gamnEgTsgIzRGM0QKK+S8viA+IHDEqzsgIzRGM0UKK+S8vyA+IHnDrDsgIzRGM0YKK+S9gCA+IHPDrDsgIzRGNDAKK+S9gSA+IMSDaTsgIzRGNDEKK+S9giA+IHpoxJNuZzsgIzRGNDIKK+S9gyA+IGRpw6BuOyAjNEY0Mwor5L2EID4gaMOhbjsgIzRGNDQKK+S9hSA+IG3DoGk7ICM0RjQ1CivkvYYgPiBkw6BuOyAjNEY0Ngor5L2HID4gemjDuTsgIzRGNDcKK+S9iCA+IGLDuTsgIzRGNDgKK+S9iSA+IHHFqzsgIzRGNDkKK+S9iiA+IGLErTsgIzRGNEEKK+S9iyA+IHNow6BvOyAjNEY0Qgor5L2MID4gY8StOyAjNEY0Qwor5L2NID4gd8OoaTsgIzRGNEQKK+S9jiA+IGTEqzsgIzRGNEUKK+S9jyA+IHpow7k7ICM0RjRGCivkvZAgPiB6xa1vOyAjNEY1MAor5L2RID4gecOydTsgIzRGNTEKK+S9kiA+IHnEgW5nOyAjNEY1Mgor5L2TID4gdMStOyAjNEY1Mwor5L2UID4gemjDoG47ICM0RjU0CivkvZUgPiBow6k7ICM0RjU1CivkvZYgPiBiw6w7ICM0RjU2CivkvZcgPiB0xatvOyAjNEY1Nwor5L2YID4gc2jDqTsgIzRGNTgKK+S9mSA+IHnDujsgIzRGNTkKK+S9miA+IHnDrDsgIzRGNUEKK+S9myA+IGbDszsgIzRGNUIKK+S9nCA+IHrDuW87ICM0RjVDCivkvZ0gPiBrw7J1OyAjNEY1RAor5L2eID4gbsOsbmc7ICM0RjVFCivkvZ8gPiB0w7NuZzsgIzRGNUYKK+S9oCA+IG7ErTsgIzRGNjAKK+S9oSA+IHh1xIFuOyAjNEY2MQor5L2iID4gccO6OyAjNEY2Mgor5L2jID4gecOybmc7ICM0RjYzCivkvaQgPiB3xIM7ICM0RjY0CivkvaUgPiBxacSBbjsgIzRGNjUKK+S9pyA+IGvEgzsgIzRGNjcKK+S9qSA+IHDDqGk7ICM0RjY5CivkvaogPiBodcOhaTsgIzRGNkEKK+S9qyA+IGjDqDsgIzRGNkIKK+S9rCA+IGzEg287ICM0RjZDCivkva0gPiB4acOhbmc7ICM0RjZECivkva4gPiBnw6k7ICM0RjZFCivkva8gPiB5w6FuZzsgIzRGNkYKK+S9sCA+IGLEg2k7ICM0RjcwCivkvbEgPiBmxIM7ICM0RjcxCivkvbIgPiBtw61uZzsgIzRGNzIKK+S9syA+IGppYTsgIzRGNzMKK+S9tCA+IMOocjsgIzRGNzQKK+S9tSA+IGLDrG5nOyAjNEY3NQor5L22ID4gasOtOyAjNEY3Ngor5L23ID4gaMSVbjsgIzRGNzcKK+S9uCA+IGjDum87ICM0Rjc4CivkvbkgPiBnxa1pOyAjNEY3OQor5L26ID4gcXXDoW47ICM0RjdBCivkvbsgPiB0acSBbzsgIzRGN0IKK+S9vCA+IGppxINvOyAjNEY3Qwor5L29ID4gY8OsOyAjNEY3RAor5L2+ID4gecOsOyAjNEY3RQor5L2/ID4gc2jErTsgIzRGN0YKK+S+gCA+IHjDrW5nOyAjNEY4MAor5L6BID4gc2jEk247ICM0RjgxCivkvoIgPiB0xatvOyAjNEY4Mgor5L6DID4ga8SDbjsgIzRGODMKK+S+hCA+IHpow607ICM0Rjg0CivkvoUgPiBnxIFpOyAjNEY4NQor5L6GID4gbMOhaTsgIzRGODYKK+S+hyA+IHnDrTsgIzRGODcKK+S+iCA+IGNoxK07ICM0Rjg4CivkvokgPiBrdcSBOyAjNEY4OQor5L6KID4gZ3XEgW5nOyAjNEY4QQor5L6LID4gbMOsOyAjNEY4Qgor5L6MID4gecSrbjsgIzRGOEMKK+S+jSA+IHNow6w7ICM0RjhECivkvo4gPiBtxK07ICM0RjhFCivkvo8gPiB6aMWrOyAjNEY4Rgor5L6QID4geMO5OyAjNEY5MAor5L6RID4gecOydTsgIzRGOTEKK+S+kiA+IMSBbjsgIzRGOTIKK+S+kyA+IGzDuTsgIzRGOTMKK+S+lCA+IG3Ds3U7ICM0Rjk0CivkvpUgPiDDqXI7ICM0Rjk1CivkvpYgPiBsw7puOyAjNEY5Ngor5L6XID4gdMOzbmc7ICM0Rjk3CivkvpggPiBjaMOgOyAjNEY5OAor5L6ZID4gY2jDrDsgIzRGOTkKK+S+miA+IHjDuW47ICM0RjlBCivkvpsgPiBnxY1uZzsgIzRGOUIKK+S+nCA+IHpoxY11OyAjNEY5Qwor5L6dID4gecSrOyAjNEY5RAor5L6eID4gcsWtOyAjNEY5RQor5L6fID4gamnDoG47ICM0RjlGCivkvqAgPiB4acOhOyAjNEZBMAor5L6hID4gamnDoDsgIzRGQTEKK+S+oiA+IHrDoGk7ICM0RkEyCivkvqMgPiBsx5o7ICM0RkEzCivkvqUgPiBqacSDbzsgIzRGQTUKK+S+piA+IHpoxJNuOyAjNEZBNgor5L6nID4gY8OoOyAjNEZBNwor5L6oID4gcWnDoW87ICM0RkE4CivkvqkgPiBrdcOgaTsgIzRGQTkKK+S+qiA+IGNow6FpOyAjNEZBQQor5L6rID4gbsOsbmc7ICM0RkFCCivkvqwgPiBuw7NuZzsgIzRGQUMKK+S+rSA+IGrErW47ICM0RkFECivkvq4gPiB3xa07ICM0RkFFCivkvq8gPiBow7N1OyAjNEZBRgor5L6wID4gasStb25nOyAjNEZCMAor5L6xID4gY2jElW5nOyAjNEZCMQor5L6yID4gemjDqG47ICM0RkIyCivkvrMgPiB6w7lvOyAjNEZCMwor5L60ID4gY2jFj3U7ICM0RkI0CivkvrUgPiBxxKtuOyAjNEZCNQor5L62ID4gbMeaOyAjNEZCNgor5L63ID4gasO6OyAjNEZCNwor5L64ID4gc2jDuTsgIzRGQjgKK+S+uSA+IHTErW5nOyAjNEZCOQor5L66ID4gc2jDqG47ICM0RkJBCivkvrsgPiB0xatvOyAjNEZCQgor5L68ID4gYsOzOyAjNEZCQwor5L69ID4gbsOhbjsgIzRGQkQKK+S+viA+IGjEgW87ICM0RkJFCivkvr8gPiBiacOgbjsgIzRGQkYKK+S/gCA+IHTFrWk7ICM0RkMwCivkv4EgPiB5xa07ICM0RkMxCivkv4IgPiB4w6w7ICM0RkMyCivkv4MgPiBjw7k7ICM0RkMzCivkv4QgPiDDqTsgIzRGQzQKK+S/hSA+IHHDrXU7ICM0RkM1Civkv4YgPiB4w7o7ICM0RkM2Civkv4cgPiBrdcSDbmc7ICM0RkM3Civkv4ggPiBrw7k7ICM0RkM4Civkv4kgPiB3w7k7ICM0RkM5Civkv4ogPiBqw7luOyAjNEZDQQor5L+LID4gecOsOyAjNEZDQgor5L+MID4gZsWtOyAjNEZDQwor5L+NID4gbMOhbmc7ICM0RkNECivkv44gPiB6xa07ICM0RkNFCivkv48gPiBxacOgbzsgIzRGQ0YKK+S/kCA+IGzDrDsgIzRGRDAKK+S/kSA+IHnFj25nOyAjNEZEMQor5L+SID4gaMO5bjsgIzRGRDIKK+S/kyA+IGrDrG5nOyAjNEZEMwor5L+UID4geGnDoG47ICM0RkQ0Civkv5UgPiBzw6BuOyAjNEZENQor5L+WID4gcMSDaTsgIzRGRDYKK+S/lyA+IHPDujsgIzRGRDcKK+S/mCA+IGbDujsgIzRGRDgKK+S/mSA+IHjEqzsgIzRGRDkKK+S/miA+IGzErTsgIzRGREEKK+S/myA+IGbFrTsgIzRGREIKK+S/nCA+IHDEq25nOyAjNEZEQwor5L+dID4gYsSDbzsgIzRGREQKK+S/niA+IHnDujsgIzRGREUKK+S/nyA+IHPDrDsgIzRGREYKK+S/oCA+IHhpw6E7ICM0RkUwCivkv6EgPiB4w6xuOyAjNEZFMQor5L+iID4geMSrdTsgIzRGRTIKK+S/oyA+IHnFrTsgIzRGRTMKK+S/pCA+IHTDrDsgIzRGRTQKK+S/pSA+IGNoxJM7ICM0RkU1Civkv6YgPiBjaMOzdTsgIzRGRTYKK+S/qCA+IHnEg247ICM0RkU4Civkv6kgPiBsacSDOyAjNEZFOQor5L+qID4gbMOsOyAjNEZFQQor5L+rID4gbMOhaTsgIzRGRUIKK+S/rSA+IGppxINuOyAjNEZFRAor5L+uID4geMSrdTsgIzRGRUUKK+S/ryA+IGbFrTsgIzRGRUYKK+S/sCA+IGjDqDsgIzRGRjAKK+S/sSA+IGrDuTsgIzRGRjEKK+S/siA+IHhpw6BvOyAjNEZGMgor5L+zID4gcMOhaTsgIzRGRjMKK+S/tCA+IGppw6BuOyAjNEZGNAor5L+1ID4gYmnDoG87ICM0RkY1Civkv7YgPiBjaMO5OyAjNEZGNgor5L+3ID4gZsOoaTsgIzRGRjcKK+S/uCA+IGbDqG5nOyAjNEZGOAor5L+5ID4gecOgOyAjNEZGOQor5L+6ID4gxINuOyAjNEZGQQor5L+7ID4gYsOoaTsgIzRGRkIKK+S/vCA+IHnDuTsgIzRGRkMKK+S/vSA+IHjEq247ICM0RkZECivkv74gPiBixK07ICM0RkZFCivkv78gPiBqacOgbjsgIzRGRkYKK+WAgCA+IGNoxIFuZzsgIzUwMDAKK+WAgSA+IGNow607ICM1MDAxCivlgIIgPiBiw6xuZzsgIzUwMDIKK+WAgyA+IHrDoW47ICM1MDAzCivlgIQgPiB5w6FvOyAjNTAwNAor5YCFID4gY8O5aTsgIzUwMDUKK+WAhiA+IGxpxIM7ICM1MDA2CivlgIcgPiB3xINuOyAjNTAwNwor5YCIID4gbMOhaTsgIzUwMDgKK+WAiSA+IGPEgW5nOyAjNTAwOQor5YCKID4gesOybmc7ICM1MDBBCivlgIsgPiBnw6g7ICM1MDBCCivlgIwgPiBndcSBbjsgIzUwMEMKK+WAjSA+IGLDqGk7ICM1MDBECivlgI4gPiB0acSBbjsgIzUwMEUKK+WAjyA+IHNoxas7ICM1MDBGCivlgJAgPiBzaMWrOyAjNTAxMAor5YCRID4gbWVuOyAjNTAxMQor5YCSID4gZMSDbzsgIzUwMTIKK+WAkyA+IHTDoW47ICM1MDEzCivlgJQgPiBqdcOpOyAjNTAxNAor5YCVID4gY2jDumk7ICM1MDE1CivlgJYgPiB4w6xuZzsgIzUwMTYKK+WAlyA+IHDDqW5nOyAjNTAxNwor5YCYID4gdMSDbmc7ICM1MDE4CivlgJkgPiBow7J1OyAjNTAxOQor5YCaID4gecStOyAjNTAxQQor5YCbID4gccSrOyAjNTAxQgor5YCcID4gdMOsOyAjNTAxQwor5YCdID4gZ8OgbjsgIzUwMUQKK+WAniA+IGrDrG5nOyAjNTAxRQor5YCfID4gamnDqDsgIzUwMUYKK+WAoCA+IHPFq2k7ICM1MDIwCivlgKEgPiBjaMOgbmc7ICM1MDIxCivlgKIgPiBqacOpOyAjNTAyMgor5YCjID4gZsSDbmc7ICM1MDIzCivlgKQgPiB6aMOtOyAjNTAyNAor5YClID4ga8WNbmc7ICM1MDI1CivlgKYgPiBqdcOgbjsgIzUwMjYKK+WApyA+IHrFjW5nOyAjNTAyNwor5YCoID4gasO5OyAjNTAyOAor5YCpID4gcWnDoG47ICM1MDI5CivlgKogPiBuw607ICM1MDJBCivlgKsgPiBsw7puOyAjNTAyQgor5YCsID4gemjFq287ICM1MDJDCivlgK0gPiB3xJNpOyAjNTAyRAor5YCuID4gbMWtbzsgIzUwMkUKK+WAryA+IHPFjW5nOyAjNTAyRgor5YCwID4gbMOpbmc7ICM1MDMwCivlgLEgPiBow7luOyAjNTAzMQor5YCyID4gZMWNbmc7ICM1MDMyCivlgLMgPiB6w6w7ICM1MDMzCivlgLQgPiBiw6huOyAjNTAzNAor5YC1ID4gd8WtOyAjNTAzNQor5YC2ID4gasO5OyAjNTAzNgor5YC3ID4gbsOgaTsgIzUwMzcKK+WAuCA+IGPEg2k7ICM1MDM4CivlgLkgPiBqacSDbjsgIzUwMzkKK+WAuiA+IHpow6BpOyAjNTAzQQor5YC7ID4gecSTOyAjNTAzQgor5YC8ID4gemjDrTsgIzUwM0MKK+WAvSA+IHNow6A7ICM1MDNECivlgL4gPiBxxKtuZzsgIzUwM0UKK+WBgCA+IHnEq25nOyAjNTA0MAor5YGBID4gY2jEk25nOyAjNTA0MQor5YGCID4gamnEgW47ICM1MDQyCivlgYMgPiB5xINuOyAjNTA0Mwor5YGEID4gbnXDoG47ICM1MDQ0CivlgYUgPiB6aMOybmc7ICM1MDQ1CivlgYYgPiBjaMWtbjsgIzUwNDYKK+WBhyA+IGppxIM7ICM1MDQ3CivlgYggPiBqacOpOyAjNTA0OAor5YGJID4gd8SVaTsgIzUwNDkKK+WBiiA+IHnFrTsgIzUwNEEKK+WBiyA+IGLErW5nOyAjNTA0Qgor5YGMID4gcsO5bzsgIzUwNEMKK+WBjSA+IHTDrTsgIzUwNEQKK+WBjiA+IHfEk2k7ICM1MDRFCivlgY8gPiBwacSBbjsgIzUwNEYKK+WBkCA+IHnDoG47ICM1MDUwCivlgZEgPiBmxJNuZzsgIzUwNTEKK+WBkiA+IHTEg25nOyAjNTA1Mgor5YGTID4gd8OyOyAjNTA1Mwor5YGUID4gw6g7ICM1MDU0CivlgZUgPiB4acOpOyAjNTA1NQor5YGWID4gY2jElTsgIzUwNTYKK+WBlyA+IHNoxJVuZzsgIzUwNTcKK+WBmCA+IGvEg247ICM1MDU4CivlgZkgPiBkw6w7ICM1MDU5CivlgZogPiB6w7lvOyAjNTA1QQor5YGbID4gY2jEgTsgIzUwNUIKK+WBnCA+IHTDrW5nOyAjNTA1Qwor5YGdID4gYsOoaTsgIzUwNUQKK+WBniA+IHnDqDsgIzUwNUUKK+WBnyA+IGh1w6FuZzsgIzUwNUYKK+WBoCA+IHnEg287ICM1MDYwCivlgaEgPiB6aMOgbjsgIzUwNjEKK+WBoiA+IGNoxY91OyAjNTA2Mgor5YGjID4gecSBbjsgIzUwNjMKK+WBpCA+IHnFj3U7ICM1MDY0CivlgaUgPiBqacOgbjsgIzUwNjUKK+WBpiA+IHjFqzsgIzUwNjYKK+WBpyA+IHpoxIE7ICM1MDY3CivlgaggPiBjxKs7ICM1MDY4CivlgakgPiBmw7k7ICM1MDY5CivlgaogPiBixKs7ICM1MDZBCivlgasgPiB6aMOsOyAjNTA2Qgor5YGsID4gesWPbmc7ICM1MDZDCivlga0gPiBtacSDbjsgIzUwNkQKK+WBriA+IGrDrTsgIzUwNkUKK+WBryA+IHnErTsgIzUwNkYKK+WBsCA+IHhpw6g7ICM1MDcwCivlgbEgPiB4w7puOyAjNTA3MQor5YGyID4gc8SrOyAjNTA3Mgor5YGzID4gZHXEgW47ICM1MDczCivlgbQgPiBjw6g7ICM1MDc0CivlgbUgPiB6aMSTbjsgIzUwNzUKK+WBtiA+IMWPdTsgIzUwNzYKK+WBtyA+IHTFjXU7ICM1MDc3CivlgbggPiB0xY11OyAjNTA3OAor5YG5ID4gYsOoaTsgIzUwNzkKK+WBuiA+IHrDoTsgIzUwN0EKK+WBuyA+IGzHmjsgIzUwN0IKK+WBvCA+IGppw6k7ICM1MDdDCivlgb0gPiB3xJVpOyAjNTA3RAor5YG+ID4gZsOobjsgIzUwN0UKK+WBvyA+IGNow6FuZzsgIzUwN0YKK+WCgCA+IGfFq2k7ICM1MDgwCivlgoEgPiBzxY91OyAjNTA4MQor5YKCID4gemjDrDsgIzUwODIKK+WCgyA+IHPDuTsgIzUwODMKK+WChCA+IHhpxIE7ICM1MDg0CivlgoUgPiBmw7k7ICM1MDg1CivlgoYgPiB5dcOgbjsgIzUwODYKK+WChyA+IHLFj25nOyAjNTA4Nwor5YKIID4gbMOsOyAjNTA4OAor5YKJID4gcsO5OyAjNTA4OQor5YKKID4gecWtbjsgIzUwOEEKK+WCiyA+IGfDsnU7ICM1MDhCCivlgowgPiBtw6A7ICM1MDhDCivlgo0gPiBiw6BuZzsgIzUwOEQKK+WCjiA+IGRpxIFuOyAjNTA4RQor5YKPID4gdMOhbmc7ICM1MDhGCivlgpAgPiBow6BvOyAjNTA5MAor5YKRID4gamnDqTsgIzUwOTEKK+WCkiA+IHjEqzsgIzUwOTIKK+WCkyA+IHNow6BuOyAjNTA5Mwor5YKUID4gcWnDoG47ICM1MDk0CivlgpUgPiBqdcOpOyAjNTA5NQor5YKWID4gY8SBbmc7ICM1MDk2CivlgpcgPiBjaMO5OyAjNTA5Nwor5YKYID4gc8SDbjsgIzUwOTgKK+WCmSA+IGLDqGk7ICM1MDk5CivlgpogPiB4acOgbzsgIzUwOUEKK+WCmyA+IHnFj25nOyAjNTA5Qgor5YKcID4gecOhbzsgIzUwOUMKK+WCnSA+IHTDoG47ICM1MDlECivlgp4gPiBzxatvOyAjNTA5RQor5YKfID4gecSDbmc7ICM1MDlGCivlgqAgPiBmxIE7ICM1MEEwCivlgqEgPiBiw6xuZzsgIzUwQTEKK+WCoiA+IGppxIE7ICM1MEEyCivlgqMgPiBkxINpOyAjNTBBMwor5YKkID4gesOgaTsgIzUwQTQKK+WCpSA+IHTEg25nOyAjNTBBNQor5YKnID4gYsOsbjsgIzUwQTcKK+WCqCA+IGNoxa07ICM1MEE4CivlgqkgPiBuw7pvOyAjNTBBOQor5YKqID4gY8SBbjsgIzUwQUEKK+WCqyA+IGzElWk7ICM1MEFCCivlgqwgPiBjxatpOyAjNTBBQwor5YKtID4gecWNbmc7ICM1MEFECivlgq4gPiB6xIFvOyAjNTBBRQor5YKvID4gesWPbmc7ICM1MEFGCivlgrAgPiBww6luZzsgIzUwQjAKK+WCsSA+IHPFj25nOyAjNTBCMQor5YKyID4gw6BvOyAjNTBCMgor5YKzID4gY2h1w6FuOyAjNTBCMwor5YK0ID4gecWtOyAjNTBCNAor5YK1ID4gemjDoGk7ICM1MEI1CivlgrYgPiBjw7J1OyAjNTBCNgor5YK3ID4gc2jEgW5nOyAjNTBCNwor5YK4ID4gcWnEg25nOyAjNTBCOAor5YK5ID4gasOsbmc7ICM1MEI5CivlgrogPiBjaMOsOyAjNTBCQQor5YK7ID4gc2jEgzsgIzUwQkIKK+WCvCA+IGjDoG47ICM1MEJDCivlgr0gPiB6aMSBbmc7ICM1MEJECivlgr4gPiBxxKtuZzsgIzUwQkUKK+WCvyA+IHnDoG47ICM1MEJGCivlg4AgPiBkw6w7ICM1MEMwCivlg4EgPiB4xKs7ICM1MEMxCivlg4IgPiBsx5o7ICM1MEMyCivlg4MgPiBiw6hpOyAjNTBDMwor5YOEID4gcGnDoG87ICM1MEM0Civlg4UgPiBqxK1uOyAjNTBDNQor5YOGID4gbGnDoW47ICM1MEM2Civlg4cgPiBsw7k7ICM1MEM3Civlg4ggPiBtw6BuOyAjNTBDOAor5YOJID4gcWnEgW47ICM1MEM5Civlg4ogPiB4acSBbjsgIzUwQ0EKK+WDiyA+IHTDoG47ICM1MENCCivlg4wgPiB5w61uZzsgIzUwQ0MKK+WDjSA+IGTDsm5nOyAjNTBDRAor5YOOID4gemh1w6BuOyAjNTBDRQor5YOPID4geGnDoG5nOyAjNTBDRgor5YOQID4gc2jDoG47ICM1MEQwCivlg5EgPiBxacOhbzsgIzUwRDEKK+WDkiA+IGrErW9uZzsgIzUwRDIKK+WDkyA+IHTFrWk7ICM1MEQzCivlg5QgPiB6xa1uOyAjNTBENAor5YOVID4gcMO6OyAjNTBENQor5YOWID4geMSrOyAjNTBENgor5YOXID4gbMOhbzsgIzUwRDcKK+WDmCA+IGNoxINuZzsgIzUwRDgKK+WDmSA+IGd1xIFuZzsgIzUwRDkKK+WDmiA+IGxpw6FvOyAjNTBEQQor5YObID4gccSrOyAjNTBEQgor5YOcID4gZMOobmc7ICM1MERDCivlg50gPiBjaMOhbjsgIzUwREQKK+WDniA+IHfElWk7ICM1MERFCivlg58gPiBqxKs7ICM1MERGCivlg6AgPiBmxIFuOyAjNTBFMAor5YOhID4gaMO5aTsgIzUwRTEKK+WDoiA+IGNodcSDbjsgIzUwRTIKK+WDoyA+IGppw6BuOyAjNTBFMwor5YOkID4gZMOgbjsgIzUwRTQKK+WDpSA+IGppxINvOyAjNTBFNQor5YOmID4gasOsdTsgIzUwRTYKK+WDpyA+IHPEk25nOyAjNTBFNwor5YOoID4gZsOobjsgIzUwRTgKK+WDqSA+IHhpw6BuOyAjNTBFOQor5YOqID4ganXDqTsgIzUwRUEKK+WDqyA+IMOoOyAjNTBFQgor5YOsID4gamnEgW87ICM1MEVDCivlg60gPiBqacOgbjsgIzUwRUQKK+WDriA+IHTDs25nOyAjNTBFRQor5YOvID4gbMStbjsgIzUwRUYKK+WDsCA+IGLDszsgIzUwRjAKK+WDsSA+IGfDuTsgIzUwRjEKK+WDsyA+IHPDuTsgIzUwRjMKK+WDtCA+IHhpw6BuOyAjNTBGNAor5YO1ID4gamnEgW5nOyAjNTBGNQor5YO2ID4gbcStbjsgIzUwRjYKK+WDtyA+IHnDqDsgIzUwRjcKK+WDuCA+IGrDrG47ICM1MEY4Civlg7kgPiBqacOgOyAjNTBGOQor5YO6ID4gcWnDoG87ICM1MEZBCivlg7sgPiBww6w7ICM1MEZCCivlg7wgPiBmxJNuZzsgIzUwRkMKK+WDvSA+IHpow7J1OyAjNTBGRAor5YO+ID4gw6BpOyAjNTBGRQor5YO/ID4gc8OgaTsgIzUwRkYKK+WEgCA+IHnDrTsgIzUxMDAKK+WEgSA+IGrDuW47ICM1MTAxCivlhIIgPiBuw7NuZzsgIzUxMDIKK+WEgyA+IGNow6FuOyAjNTEwMwor5YSEID4gecOsOyAjNTEwNAor5YSFID4gZMSBbmc7ICM1MTA1CivlhIYgPiBqxK1uZzsgIzUxMDYKK+WEhyA+IHh1xIFuOyAjNTEwNwor5YSIID4ga3XDoGk7ICM1MTA4CivlhIkgPiBqacSDbjsgIzUxMDkKK+WEiiA+IGNow7k7ICM1MTBBCivlhIsgPiBkxIFuOyAjNTEwQgor5YSMID4gamnEg287ICM1MTBDCivlhI0gPiBzaMSDOyAjNTEwRAor5YSOID4gesOgaTsgIzUxMEUKK+WEkCA+IGLDrG47ICM1MTEwCivlhJEgPiDDoG47ICM1MTExCivlhJIgPiByw7o7ICM1MTEyCivlhJMgPiB0w6FpOyAjNTExMwor5YSUID4gY2jDs3U7ICM1MTE0CivlhJUgPiBjaMOhaTsgIzUxMTUKK+WEliA+IGzDoW47ICM1MTE2CivlhJcgPiBuxK07ICM1MTE3CivlhJggPiBqxK1uOyAjNTExOAor5YSZID4gcWnDoG47ICM1MTE5CivlhJogPiBtw6luZzsgIzUxMUEKK+WEmyA+IHfFrTsgIzUxMUIKK+WEnCA+IG7DrW5nOyAjNTExQwor5YSdID4gccOtb25nOyAjNTExRAor5YSeID4gbsStOyAjNTExRQor5YSfID4gY2jDoW5nOyAjNTExRgor5YSgID4gbGnDqDsgIzUxMjAKK+WEoSA+IGzElWk7ICM1MTIxCivlhKIgPiBsx5o7ICM1MTIyCivlhKMgPiBrdcOgbmc7ICM1MTIzCivlhKQgPiBiw6BvOyAjNTEyNAor5YSlID4gZMO6OyAjNTEyNQor5YSmID4gYmnEgW87ICM1MTI2CivlhKcgPiB6xINuOyAjNTEyNwor5YSoID4gemjDrTsgIzUxMjgKK+WEqSA+IHPDrDsgIzUxMjkKK+WEqiA+IHnFjXU7ICM1MTJBCivlhKsgPiBow6FvOyAjNTEyQgor5YSsID4gY2jDqG47ICM1MTJDCivlhK0gPiBjaMOobjsgIzUxMkQKK+WEriA+IGzDrDsgIzUxMkUKK+WEryA+IHTDqW5nOyAjNTEyRgor5YSwID4gd8SVaTsgIzUxMzAKK+WEsSA+IGzFj25nOyAjNTEzMQor5YSyID4gY2jFrTsgIzUxMzIKK+WEsyA+IGNow6BuOyAjNTEzMwor5YS0ID4gcsOhbmc7ICM1MTM0CivlhLUgPiBzaMWrOyAjNTEzNQor5YS2ID4gaMO5aTsgIzUxMzYKK+WEtyA+IGzDrDsgIzUxMzcKK+WEuCA+IGzDum87ICM1MTM4CivlhLkgPiB6xINuOyAjNTEzOQor5YS6ID4gbsO6bzsgIzUxM0EKK+WEuyA+IHTEg25nOyAjNTEzQgor5YS8ID4gecSDbjsgIzUxM0MKK+WEvSA+IGzElWk7ICM1MTNECivlhL4gPiBuw6BuZzsgIzUxM0UKK+WEvyA+IMOpcjsgIzUxM0YKK+WFgCA+IHfDuTsgIzUxNDAKK+WFgSA+IHnFrW47ICM1MTQxCivlhYIgPiB6xIFuOyAjNTE0Mgor5YWDID4geXXDoW47ICM1MTQzCivlhYQgPiB4xKtvbmc7ICM1MTQ0CivlhYUgPiBjaMWNbmc7ICM1MTQ1CivlhYYgPiB6aMOgbzsgIzUxNDYKK+WFhyA+IHjEq29uZzsgIzUxNDcKK+WFiCA+IHhpxIFuOyAjNTE0OAor5YWJID4gZ3XEgW5nOyAjNTE0OQor5YWKID4gZMO5aTsgIzUxNEEKK+WFiyA+IGvDqDsgIzUxNEIKK+WFjCA+IGTDuWk7ICM1MTRDCivlhY0gPiBtacSDbjsgIzUxNEQKK+WFjiA+IHTDuTsgIzUxNEUKK+WFjyA+IGNow6FuZzsgIzUxNEYKK+WFkCA+IMOpcjsgIzUxNTAKK+WFkSA+IGTDuWk7ICM1MTUxCivlhZIgPiDDqXI7ICM1MTUyCivlhZMgPiB4xKtuOyAjNTE1Mwor5YWUID4gdMO5OyAjNTE1NAor5YWVID4gc8OsOyAjNTE1NQor5YWWID4gecSDbjsgIzUxNTYKK+WFlyA+IHnEg247ICM1MTU3CivlhZggPiBzaMStOyAjNTE1OAor5YWZID4gc2jDrScgJ2vDqDsgIzUxNTkKK+WFmiA+IGTEg25nOyAjNTE1QQor5YWbID4gcWnEgW47ICM1MTVCCivlhZwgPiBkxY11OyAjNTE1Qwor5YWdID4gZsSTbjsgIzUxNUQKK+WFniA+IG3DoW87ICM1MTVFCivlhZ8gPiBzaMSTbjsgIzUxNUYKK+WFoCA+IGTFjXU7ICM1MTYwCivlhaEgPiBixINpJyAna8OoOyAjNTE2MQor5YWiID4gasSrbmc7ICM1MTYyCivlhaMgPiBsxK07ICM1MTYzCivlhaQgPiBodcOhbmc7ICM1MTY0CivlhaUgPiByw7k7ICM1MTY1CivlhaYgPiB3w6FuZzsgIzUxNjYKK+WFpyA+IG7DqGk7ICM1MTY3CivlhaggPiBxdcOhbjsgIzUxNjgKK+WFqSA+IGxpxINuZzsgIzUxNjkKK+WFqiA+IHnDujsgIzUxNkEKK+WFqyA+IGLEgTsgIzUxNkIKK+WFrCA+IGfFjW5nOyAjNTE2Qwor5YWtID4gbMOsdTsgIzUxNkQKK+WFriA+IHjEqzsgIzUxNkUKK+WFsCA+IGzDoW47ICM1MTcwCivlhbEgPiBnw7JuZzsgIzUxNzEKK+WFsiA+IHRpxIFuOyAjNTE3Mgor5YWzID4gZ3XEgW47ICM1MTczCivlhbQgPiB4xKtuZzsgIzUxNzQKK+WFtSA+IGLEq25nOyAjNTE3NQor5YW2ID4gccOtOyAjNTE3Ngor5YW3ID4gasO5OyAjNTE3Nwor5YW4ID4gZGnEg247ICM1MTc4CivlhbkgPiB6xKs7ICM1MTc5CivlhbsgPiB5xINuZzsgIzUxN0IKK+WFvCA+IGppxIFuOyAjNTE3Qwor5YW9ID4gc2jDsnU7ICM1MTdECivlhb4gPiBqw6w7ICM1MTdFCivlhb8gPiB5w6w7ICM1MTdGCivlhoAgPiBqw6w7ICM1MTgwCivlhoEgPiBjaMSDbjsgIzUxODEKK+WGgiA+IGrEq29uZzsgIzUxODIKK+WGgyA+IG1hbzsgIzUxODMKK+WGhCA+IHLEg247ICM1MTg0CivlhoUgPiBuw6hpOyAjNTE4NQor5YaGID4geXVhbjsgIzUxODYKK+WGhyA+IG3Eg287ICM1MTg3CivlhoggPiBnxIFuZzsgIzUxODgKK+WGiSA+IHLEg247ICM1MTg5CivlhoogPiBjw6g7ICM1MThBCivlhosgPiBqxKtvbmc7ICM1MThCCivlhowgPiBjw6g7ICM1MThDCivlho0gPiB6w6BpOyAjNTE4RAor5YaOID4gZ3XEgzsgIzUxOEUKK+WGjyA+IGrErW9uZzsgIzUxOEYKK+WGkCA+IG3DoG87ICM1MTkwCivlhpEgPiB6aMOydTsgIzUxOTEKK+WGkiA+IG3DsnU7ICM1MTkyCivlhpMgPiBnw7J1OyAjNTE5Mwor5YaUID4geMWtOyAjNTE5NAor5YaVID4gbWnEg247ICM1MTk1CivlhpYgPiBtw6w7ICM1MTk2CivlhpcgPiByxY9uZzsgIzUxOTcKK+WGmCA+IHnDrW47ICM1MTk4CivlhpkgPiB4acSVOyAjNTE5OQor5YaaID4ga8SDbjsgIzUxOUEKK+WGmyA+IGrFq247ICM1MTlCCivlhpwgPiBuw7NuZzsgIzUxOUMKK+WGnSA+IHnDrTsgIzUxOUQKK+WGniA+IG3DrTsgIzUxOUUKK+WGnyA+IHNow6w7ICM1MTlGCivlhqAgPiBndcSBbjsgIzUxQTAKK+WGoSA+IG3DqW5nOyAjNTFBMQor5YaiID4gemjFj25nOyAjNTFBMgor5YajID4gasO5OyAjNTFBMwor5YakID4geXXEgW47ICM1MUE0CivlhqUgPiBtw61uZzsgIzUxQTUKK+WGpiA+IGvDsnU7ICM1MUE2CivlhqggPiBmw7k7ICM1MUE4CivlhqkgPiB4acSVOyAjNTFBOQor5YaqID4gbcOsOyAjNTFBQQor5YarID4gYsSrbmc7ICM1MUFCCivlhqwgPiBkxY1uZzsgIzUxQUMKK+WGrSA+IHTDoWk7ICM1MUFECivlhq4gPiBnxIFuZzsgIzUxQUUKK+WGryA+IGbDqW5nOyAjNTFBRgor5YawID4gYsSrbmc7ICM1MUIwCivlhrEgPiBow7k7ICM1MUIxCivlhrIgPiBjaMWNbmc7ICM1MUIyCivlhrMgPiBqdcOpOyAjNTFCMwor5Ya0ID4gaMO5OyAjNTFCNAor5Ya1ID4ga3XDoG5nOyAjNTFCNQor5Ya2ID4gecSVOyAjNTFCNgor5Ya3ID4gbMSVbmc7ICM1MUI3CivlhrggPiBww6BuOyAjNTFCOAor5Ya5ID4gZsO6OyAjNTFCOQor5Ya6ID4gbcStbjsgIzUxQkEKK+WGuyA+IGTDsm5nOyAjNTFCQgor5Ya8ID4geGnEg247ICM1MUJDCivlhr0gPiBsacOoOyAjNTFCRAor5Ya+ID4geGnDoTsgIzUxQkUKK+WGvyA+IGppxIFuOyAjNTFCRgor5YeAID4gasOsbmc7ICM1MUMwCivlh4EgPiBzaMO5OyAjNTFDMQor5YeCID4gbcSVaTsgIzUxQzIKK+WHgyA+IHTDujsgIzUxQzMKK+WHhCA+IHHEqzsgIzUxQzQKK+WHhSA+IGfDuTsgIzUxQzUKK+WHhiA+IHpoxa1uOyAjNTFDNgor5YeHID4gc8Oybmc7ICM1MUM3Civlh4ggPiBqw6xuZzsgIzUxQzgKK+WHiSA+IGxpw6FuZzsgIzUxQzkKK+WHiiA+IHHDrG5nOyAjNTFDQQor5YeLID4gZGnEgW87ICM1MUNCCivlh4wgPiBsw61uZzsgIzUxQ0MKK+WHjSA+IGTDsm5nOyAjNTFDRAor5YeOID4gZ8OgbjsgIzUxQ0UKK+WHjyA+IGppxINuOyAjNTFDRgor5YeQID4gecSrbjsgIzUxRDAKK+WHkSA+IGPDsnU7ICM1MUQxCivlh5IgPiB5w607ICM1MUQyCivlh5MgPiBsw6w7ICM1MUQzCivlh5QgPiBjxIFuZzsgIzUxRDQKK+WHlSA+IG3ErW5nOyAjNTFENQor5YeWID4gemh1xJVuOyAjNTFENgor5YeXID4gY8O6aTsgIzUxRDcKK+WHmCA+IHPEqzsgIzUxRDgKK+WHmSA+IGTDum87ICM1MUQ5Civlh5ogPiBqw6xuOyAjNTFEQQor5YebID4gbMStbjsgIzUxREIKK+WHnCA+IGzErW47ICM1MURDCivlh50gPiBuw61uZzsgIzUxREQKK+WHniA+IHjEqzsgIzUxREUKK+WHnyA+IGTDujsgIzUxREYKK+WHoCA+IGrEqzsgIzUxRTAKK+WHoSA+IGbDoW47ICM1MUUxCivlh6IgPiBmw6FuOyAjNTFFMgor5YejID4gZsOhbjsgIzUxRTMKK+WHpCA+IGbDqG5nOyAjNTFFNAor5YelID4gasWrOyAjNTFFNQor5YemID4gY2jFrTsgIzUxRTYKK+WHqCA+IGbEk25nOyAjNTFFOAor5YerID4gZsO6OyAjNTFFQgor5YesID4gZsSTbmc7ICM1MUVDCivlh60gPiBww61uZzsgIzUxRUQKK+WHriA+IGbEk25nOyAjNTFFRQor5YevID4ga8SDaTsgIzUxRUYKK+WHsCA+IGh1w6FuZzsgIzUxRjAKK+WHsSA+IGvEg2k7ICM1MUYxCivlh7IgPiBnxIFuOyAjNTFGMgor5YezID4gZMOobmc7ICM1MUYzCivlh7QgPiBww61uZzsgIzUxRjQKK+WHtSA+IHHFqzsgIzUxRjUKK+WHtiA+IHjEq29uZzsgIzUxRjYKK+WHtyA+IGt1w6BpOyAjNTFGNwor5Ye4ID4gdMWrOyAjNTFGOAor5Ye5ID4gxIFvOyAjNTFGOQor5Ye6ID4gY2jFqzsgIzUxRkEKK+WHuyA+IGrDrTsgIzUxRkIKK+WHvCA+IGTDoG5nOyAjNTFGQwor5Ye9ID4gaMOhbjsgIzUxRkQKK+WHviA+IGjDoW47ICM1MUZFCivlh78gPiB6w6FvOyAjNTFGRgor5YiAID4gZMSBbzsgIzUyMDAKK+WIgSA+IGRpxIFvOyAjNTIwMQor5YiCID4gZMSBbzsgIzUyMDIKK+WIgyA+IHLDqG47ICM1MjAzCivliIQgPiByw6huOyAjNTIwNAor5YiFID4gY2h1xIFuZzsgIzUyMDUKK+WIhiA+IGbEk247ICM1MjA2CivliIcgPiBxacSTOyAjNTIwNwor5YiIID4gecOsOyAjNTIwOAor5YiJID4gasSrOyAjNTIwOQor5YiKID4ga8SBbjsgIzUyMEEKK+WIiyA+IHFpw6BuOyAjNTIwQgor5YiMID4gY8WtbjsgIzUyMEMKK+WIjSA+IGNow7o7ICM1MjBECivliI4gPiB3xJVuOyAjNTIwRQor5YiPID4gasSrOyAjNTIwRgor5YiQID4gZMSDbjsgIzUyMTAKK+WIkSA+IHjDrW5nOyAjNTIxMQor5YiSID4gaHXDoTsgIzUyMTIKK+WIkyA+IHfDoW47ICM1MjEzCivliJQgPiBqdcOpOyAjNTIxNAor5YiVID4gbMOtOyAjNTIxNQor5YiWID4geXXDqDsgIzUyMTYKK+WIlyA+IGxpw6g7ICM1MjE3CivliJggPiBsw611OyAjNTIxOAor5YiZID4gesOpOyAjNTIxOQor5YiaID4gZ8SBbmc7ICM1MjFBCivliJsgPiBjaHXDoG5nOyAjNTIxQgor5YicID4gZsO6OyAjNTIxQwor5YidID4gY2jFqzsgIzUyMUQKK+WIniA+IHHDuTsgIzUyMUUKK+WInyA+IGrFqzsgIzUyMUYKK+WIoCA+IHNoxIFuOyAjNTIyMAor5YihID4gbcStbjsgIzUyMjEKK+WIoiA+IGzDrW5nOyAjNTIyMgor5YijID4gemjFjW5nOyAjNTIyMwor5YikID4gcMOgbjsgIzUyMjQKK+WIpSA+IGJpw6k7ICM1MjI1CivliKYgPiBqacOpOyAjNTIyNgor5YinID4gamnDqTsgIzUyMjcKK+WIqCA+IGLDoG87ICM1MjI4CivliKkgPiBsw6w7ICM1MjI5CivliKogPiBzaMSBbjsgIzUyMkEKK+WIqyA+IGJpw6k7ICM1MjJCCivliKwgPiBjaMSDbjsgIzUyMkMKK+WIrSA+IGrErW5nOyAjNTIyRAor5YiuID4gZ3XEgTsgIzUyMkUKK+WIryA+IGfEk247ICM1MjJGCivliLAgPiBkw6BvOyAjNTIzMAor5YixID4gY2h1w6BuZzsgIzUyMzEKK+WIsiA+IGvFq2k7ICM1MjMyCivliLMgPiBrxas7ICM1MjMzCivliLQgPiBkw7lvOyAjNTIzNAor5Yi1ID4gw6hyOyAjNTIzNQor5Yi2ID4gemjDrDsgIzUyMzYKK+WItyA+IHNodcSBOyAjNTIzNwor5Yi4ID4gcXXDoG47ICM1MjM4CivliLkgPiBjaMOgOyAjNTIzOQor5Yi6ID4gY8OsOyAjNTIzQQor5Yi7ID4ga8OoOyAjNTIzQgor5Yi8ID4gamnDqTsgIzUyM0MKK+WIvSA+IGfDuWk7ICM1MjNECivliL4gPiBjw6w7ICM1MjNFCivliL8gPiBnw7lpOyAjNTIzRgor5YmAID4ga8SDaTsgIzUyNDAKK+WJgSA+IGTDuW87ICM1MjQxCivliYIgPiBqw6w7ICM1MjQyCivliYMgPiB0w6w7ICM1MjQzCivliYQgPiBqxK1uZzsgIzUyNDQKK+WJhSA+IGzDs3U7ICM1MjQ1CivliYYgPiBnxJNuOyAjNTI0Ngor5YmHID4gesOpOyAjNTI0Nwor5YmIID4geXXEgW47ICM1MjQ4CivliYkgPiBjw7lvOyAjNTI0OQor5YmKID4geHXEkzsgIzUyNEEKK+WJiyA+IGvDqDsgIzUyNEIKK+WJjCA+IGzDoDsgIzUyNEMKK+WJjSA+IHFpw6FuOyAjNTI0RAor5YmOID4gY2jDoDsgIzUyNEUKK+WJjyA+IGNodcOgbmc7ICM1MjRGCivliZAgPiBndcSDOyAjNTI1MAor5YmRID4gamnDoG47ICM1MjUxCivliZIgPiBjw7lvOyAjNTI1Mgor5YmTID4gbMOtOyAjNTI1Mwor5YmUID4gdMSrOyAjNTI1NAor5YmVID4gZsOoaTsgIzUyNTUKK+WJliA+IHDFjXU7ICM1MjU2CivliZcgPiBjaMSDbjsgIzUyNTcKK+WJmCA+IHHDrTsgIzUyNTgKK+WJmSA+IGNodcOgbmc7ICM1MjU5CivliZogPiB6w6w7ICM1MjVBCivliZsgPiBnxIFuZzsgIzUyNUIKK+WJnCA+IHfEgW47ICM1MjVDCivliZ0gPiBixY07ICM1MjVECivliZ4gPiBqxKs7ICM1MjVFCivliZ8gPiBkxatvOyAjNTI1Rgor5YmgID4gccOtbmc7ICM1MjYwCivliaEgPiB5xINuOyAjNTI2MQor5YmiID4gemjDum87ICM1MjYyCivliaMgPiBqacOgbjsgIzUyNjMKK+WJpCA+IGrDrDsgIzUyNjQKK+WJpSA+IGLFjTsgIzUyNjUKK+WJpiA+IHnEgW47ICM1MjY2CivliacgPiBqw7k7ICM1MjY3CivliaggPiBow7lvOyAjNTI2OAor5YmpID4gc2jDqG5nOyAjNTI2OQor5YmqID4gamnEg247ICM1MjZBCivliasgPiBkw7pvOyAjNTI2Qgor5YmsID4gZHXEgW47ICM1MjZDCivlia0gPiB3xas7ICM1MjZECivlia4gPiBndcSDOyAjNTI2RQor5YmvID4gZsO5OyAjNTI2Rgor5YmwID4gc2jDqG5nOyAjNTI3MAor5YmxID4gamnDoG47ICM1MjcxCivlibIgPiBnxJM7ICM1MjcyCivlibMgPiB6aMSBOyAjNTI3Mwor5Ym0ID4ga8SDaTsgIzUyNzQKK+WJtSA+IGNodcOgbmc7ICM1Mjc1CivlibYgPiBqdcSBbjsgIzUyNzYKK+WJtyA+IGNoxINuOyAjNTI3Nwor5Ym4ID4gdHXDoW47ICM1Mjc4CivlibkgPiBsw7k7ICM1Mjc5CivlibogPiBsw607ICM1MjdBCivlibsgPiBmw7N1OyAjNTI3Qgor5Ym8ID4gc2jEgW47ICM1MjdDCivlib0gPiBwacOgbzsgIzUyN0QKK+WJviA+IGvFjXU7ICM1MjdFCivlib8gPiBqacSDbzsgIzUyN0YKK+WKgCA+IGd1xIE7ICM1MjgwCivlioEgPiBxacSBbzsgIzUyODEKK+WKgiA+IGp1w6k7ICM1MjgyCivlioMgPiBodcOgOyAjNTI4Mwor5YqEID4gemjDoTsgIzUyODQKK+WKhSA+IHpow7lvOyAjNTI4NQor5YqGID4gbGnDoW47ICM1Mjg2CivliocgPiBqw7k7ICM1Mjg3CivlioggPiBwxKs7ICM1Mjg4CivliokgPiBsw611OyAjNTI4OQor5YqKID4gZ8O5aTsgIzUyOEEKK+WKiyA+IGppxINvOyAjNTI4Qgor5YqMID4gZ8O5aTsgIzUyOEMKK+WKjSA+IGppw6BuOyAjNTI4RAor5YqOID4gamnDoG47ICM1MjhFCivlio8gPiB0xIFuZzsgIzUyOEYKK+WKkCA+IGjFq287ICM1MjkwCivlipEgPiBqw6w7ICM1MjkxCivlipIgPiBqacOgbjsgIzUyOTIKK+WKkyA+IHnDrDsgIzUyOTMKK+WKlCA+IGppw6BuOyAjNTI5NAor5YqVID4gemjDrTsgIzUyOTUKK+WKliA+IGNow6FuOyAjNTI5Ngor5YqXID4gY3XDoW47ICM1Mjk3CivlipggPiBtw7M7ICM1Mjk4CivlipkgPiBsw607ICM1Mjk5CivlipogPiB6aMO6OyAjNTI5QQor5YqbID4gbMOsOyAjNTI5Qgor5YqcID4gecSBOyAjNTI5Qwor5YqdID4gcXXDoG47ICM1MjlECivlip4gPiBiw6BuOyAjNTI5RQor5YqfID4gZ8WNbmc7ICM1MjlGCivliqAgPiBqacSBOyAjNTJBMAor5YqhID4gd8O5OyAjNTJBMQor5YqiID4gbcOgaTsgIzUyQTIKK+WKoyA+IGxpw6g7ICM1MkEzCivliqQgPiBqw6xuOyAjNTJBNAor5YqlID4ga8STbmc7ICM1MkE1CivliqYgPiB4acOpOyAjNTJBNgor5YqnID4gemjErTsgIzUyQTcKK+WKqCA+IGTDsm5nOyAjNTJBOAor5YqpID4gemjDuTsgIzUyQTkKK+WKqiA+IG7FrTsgIzUyQUEKK+WKqyA+IGppw6k7ICM1MkFCCivliqwgPiBxw7o7ICM1MkFDCivliq0gPiBzaMOgbzsgIzUyQUQKK+WKriA+IHnDrDsgIzUyQUUKK+WKryA+IHpoxas7ICM1MkFGCivlirAgPiBtacSDbzsgIzUyQjAKK+WKsSA+IGzDrDsgIzUyQjEKK+WKsiA+IGrDrG5nOyAjNTJCMgor5YqzID4gbMOhbzsgIzUyQjMKK+WKtCA+IGzDoW87ICM1MkI0CivlirUgPiBqdcOgbjsgIzUyQjUKK+WKtiA+IGvFj3U7ICM1MkI2CivlircgPiB5w6FuZzsgIzUyQjcKK+WKuCA+IHfEgTsgIzUyQjgKK+WKuSA+IHhpw6BvOyAjNTJCOQor5Yq6ID4gbcOzdTsgIzUyQkEKK+WKuyA+IGt1xIFuZzsgIzUyQkIKK+WKvCA+IGppw6k7ICM1MkJDCivlir0gPiBsacOoOyAjNTJCRAor5Yq+ID4gaMOpOyAjNTJCRQor5Yq/ID4gc2jDrDsgIzUyQkYKK+WLgCA+IGvDqDsgIzUyQzAKK+WLgSA+IGrDrG5nOyAjNTJDMQor5YuCID4gaMOhbzsgIzUyQzIKK+WLgyA+IGLDszsgIzUyQzMKK+WLhCA+IG3ErW47ICM1MkM0Civli4UgPiBjaMOsOyAjNTJDNQor5YuGID4gbMOhbmc7ICM1MkM2Civli4cgPiB5xY9uZzsgIzUyQzcKK+WLiCA+IHnFj25nOyAjNTJDOAor5YuJID4gbWnEg247ICM1MkM5Civli4ogPiBrw6g7ICM1MkNBCivli4sgPiB4xatuOyAjNTJDQgor5YuMID4ganXDoG47ICM1MkNDCivli40gPiBxw61uZzsgIzUyQ0QKK+WLjiA+IGzDuTsgIzUyQ0UKK+WLjyA+IHDFj3U7ICM1MkNGCivli5AgPiBtxJVuZzsgIzUyRDAKK+WLkSA+IGzDoGk7ICM1MkQxCivli5IgPiBsw6g7ICM1MkQyCivli5MgPiBrw6BpOyAjNTJEMwor5YuUID4gbWnEg247ICM1MkQ0Civli5UgPiBkw7JuZzsgIzUyRDUKK+WLliA+IHjDuTsgIzUyRDYKK+WLlyA+IHjDuTsgIzUyRDcKK+WLmCA+IGvEgW47ICM1MkQ4Civli5kgPiB3w7k7ICM1MkQ5Civli5ogPiB5w6w7ICM1MkRBCivli5sgPiB4xatuOyAjNTJEQgor5YucID4gd8SVbmc7ICM1MkRDCivli50gPiBzaMOobmc7ICM1MkRECivli54gPiBsw6FvOyAjNTJERQor5YufID4gbcO5OyAjNTJERgor5YugID4gbMO5OyAjNTJFMAor5YuhID4gcGnDoG87ICM1MkUxCivli6IgPiBzaMOsOyAjNTJFMgor5YujID4gasSrOyAjNTJFMwor5YukID4gccOtbjsgIzUyRTQKK+WLpSA+IHFpxINuZzsgIzUyRTUKK+WLpiA+IGppxINvOyAjNTJFNgor5YunID4gcXXDoG47ICM1MkU3Civli6ggPiB5xINuZzsgIzUyRTgKK+WLqSA+IHnDrDsgIzUyRTkKK+WLqiA+IGp1w6k7ICM1MkVBCivli6sgPiBmw6FuOyAjNTJFQgor5YusID4ganXDoG47ICM1MkVDCivli60gPiB0w7NuZzsgIzUyRUQKK+WLriA+IGrDuTsgIzUyRUUKK+WLryA+IGTEgW47ICM1MkVGCivli7AgPiB4acOpOyAjNTJGMAor5YuxID4gbcOgaTsgIzUyRjEKK+WLsiA+IHjFq247ICM1MkYyCivli7MgPiB4xatuOyAjNTJGMwor5Yu0ID4gbMecOyAjNTJGNAor5Yu1ID4gbMOsOyAjNTJGNQor5Yu2ID4gY2jDqDsgIzUyRjYKK+WLtyA+IHLDoW5nOyAjNTJGNwor5Yu4ID4gcXXDoG47ICM1MkY4Civli7kgPiBixIFvOyAjNTJGOQor5Yu6ID4gc2jDoW87ICM1MkZBCivli7sgPiB5w7puOyAjNTJGQgor5Yu8ID4gasSrdTsgIzUyRkMKK+WLvSA+IGLDoG87ICM1MkZECivli74gPiBnxY11OyAjNTJGRQor5Yu/ID4gd8O5OyAjNTJGRgor5YyAID4gecO6bjsgIzUzMDAKK+WMgyA+IGfDoGk7ICM1MzAzCivljIQgPiBnw6BpOyAjNTMwNAor5YyFID4gYsSBbzsgIzUzMDUKK+WMhiA+IGPFjW5nOyAjNTMwNgor5YyIID4geMSrb25nOyAjNTMwOAor5YyJID4gcMSTbmc7ICM1MzA5CivljIogPiBqw7o7ICM1MzBBCivljIsgPiB0w6FvOyAjNTMwQgor5YyMID4gZ8OpOyAjNTMwQwor5YyNID4gcMO6OyAjNTMwRAor5YyOID4gw6BuOyAjNTMwRQor5YyPID4gcMOhbzsgIzUzMEYKK+WMkCA+IGbDujsgIzUzMTAKK+WMkSA+IGfFjW5nOyAjNTMxMQor5YySID4gZMOhOyAjNTMxMgor5YyTID4gasOsdTsgIzUzMTMKK+WMlCA+IHHEq29uZzsgIzUzMTQKK+WMlSA+IGLErTsgIzUzMTUKK+WMliA+IGh1w6A7ICM1MzE2CivljJcgPiBixJVpOyAjNTMxNwor5YyYID4gbsSDbzsgIzUzMTgKK+WMmSA+IGNow607ICM1MzE5CivljJogPiBmxIFuZzsgIzUzMUEKK+WMmyA+IGrDrHU7ICM1MzFCCivljJwgPiB5w607ICM1MzFDCivljJ0gPiB6xIE7ICM1MzFECivljJ4gPiBqacOgbmc7ICM1MzFFCivljJ8gPiBrw6BuZzsgIzUzMUYKK+WMoCA+IGppw6BuZzsgIzUzMjAKK+WMoSA+IGt1xIFuZzsgIzUzMjEKK+WMoiA+IGjFqzsgIzUzMjIKK+WMoyA+IHhpw6E7ICM1MzIzCivljKQgPiBxxas7ICM1MzI0CivljKUgPiBiacOgbjsgIzUzMjUKK+WMpiA+IGfFrWk7ICM1MzI2CivljKcgPiBxacOoOyAjNTMyNwor5YyoID4gesSBbmc7ICM1MzI4CivljKkgPiBrdcSBbmc7ICM1MzI5CivljKogPiBmxJVpOyAjNTMyQQor5YyrID4gaMWrOyAjNTMyQgor5YysID4gdMOzdTsgIzUzMkMKK+WMrSA+IGfFrWk7ICM1MzJECivljK4gPiBnw7lpOyAjNTMyRQor5YyvID4gaMO5aTsgIzUzMkYKK+WMsCA+IGTEgW47ICM1MzMwCivljLEgPiBnw7lpOyAjNTMzMQor5YyyID4gbGnDoW47ICM1MzMyCivljLMgPiBsacOhbjsgIzUzMzMKK+WMtCA+IHN1xINuOyAjNTMzNAor5Yy1ID4gZMO6OyAjNTMzNQor5Yy2ID4gasOsdTsgIzUzMzYKK+WMtyA+IHHDujsgIzUzMzcKK+WMuCA+IHjErTsgIzUzMzgKK+WMuSA+IHDErTsgIzUzMzkKK+WMuiA+IHHFqzsgIzUzM0EKK+WMuyA+IHnDrDsgIzUzM0IKK+WMvCA+IHFpw6A7ICM1MzNDCivljL0gPiB5xINuOyAjNTMzRAor5Yy+ID4gYmnEg247ICM1MzNFCivljL8gPiBuw6w7ICM1MzNGCivljYAgPiBxxas7ICM1MzQwCivljYEgPiBzaMOtOyAjNTM0MQor5Y2CID4geMOsbjsgIzUzNDIKK+WNgyA+IHFpxIFuOyAjNTM0Mwor5Y2EID4gbmnDoG47ICM1MzQ0CivljYUgPiBzw6A7ICM1MzQ1CivljYYgPiB6w7o7ICM1MzQ2CivljYcgPiBzaMSTbmc7ICM1MzQ3CivljYggPiB3xa07ICM1MzQ4CivljYkgPiBow7lpOyAjNTM0OQor5Y2KID4gYsOgbjsgIzUzNEEKK+WNiyA+IHNow6w7ICM1MzRCCivljYwgPiB4w6w7ICM1MzRDCivljY0gPiB3w6BuOyAjNTM0RAor5Y2OID4gaHXDoTsgIzUzNEUKK+WNjyA+IHhpw6k7ICM1MzRGCivljZAgPiB3w6BuOyAjNTM1MAor5Y2RID4gYsSTaTsgIzUzNTEKK+WNkiA+IHrDujsgIzUzNTIKK+WNkyA+IHpoxatvOyAjNTM1Mwor5Y2UID4geGnDqTsgIzUzNTQKK+WNlSA+IGTEgW47ICM1MzU1CivljZYgPiBtw6BpOyAjNTM1Ngor5Y2XID4gbsOhbjsgIzUzNTcKK+WNmCA+IGTEgW47ICM1MzU4CivljZkgPiBqw607ICM1MzU5CivljZogPiBiw7M7ICM1MzVBCivljZsgPiBzaHXDoGk7ICM1MzVCCivljZwgPiBixa07ICM1MzVDCivljZ0gPiBrdcOgbmc7ICM1MzVECivljZ4gPiBiacOgbjsgIzUzNUUKK+WNnyA+IGLFrTsgIzUzNUYKK+WNoCA+IHpoxIFuOyAjNTM2MAor5Y2hID4gcWnEgzsgIzUzNjEKK+WNoiA+IGzDujsgIzUzNjIKK+WNoyA+IHnFj3U7ICM1MzYzCivljaQgPiBsxa07ICM1MzY0CivljaUgPiB4xKs7ICM1MzY1CivljaYgPiBndcOgOyAjNTM2Ngor5Y2nID4gd8OyOyAjNTM2Nwor5Y2oID4geGnDqDsgIzUzNjgKK+WNqSA+IGppw6k7ICM1MzY5CivljaogPiBqacOpOyAjNTM2QQor5Y2rID4gd8OoaTsgIzUzNkIKK+WNrCA+IMOhbmc7ICM1MzZDCivlja0gPiBxw61vbmc7ICM1MzZECivlja4gPiB6aMSrOyAjNTM2RQor5Y2vID4gbcSDbzsgIzUzNkYKK+WNsCA+IHnDrG47ICM1MzcwCivljbEgPiB3xJNpOyAjNTM3MQor5Y2yID4gc2jDoG87ICM1MzcyCivljbMgPiBqw607ICM1MzczCivljbQgPiBxdcOoOyAjNTM3NAor5Y21ID4gbHXEg247ICM1Mzc1CivljbYgPiBzaMOsOyAjNTM3Ngor5Y23ID4ganXDoG47ICM1Mzc3CivljbggPiB4acOoOyAjNTM3OAor5Y25ID4geMO5OyAjNTM3OQor5Y26ID4gasStbjsgIzUzN0EKK+WNuyA+IHF1w6g7ICM1MzdCCivljbwgPiB3w7k7ICM1MzdDCivljb0gPiBqw607ICM1MzdECivljb4gPiDDqDsgIzUzN0UKK+WNvyA+IHHEq25nOyAjNTM3Rgor5Y6AID4geMSrOyAjNTM4MAor5Y6CID4gaMOgbjsgIzUzODIKK+WOgyA+IHpoxIFuOyAjNTM4Mwor5Y6EID4gw6g7ICM1Mzg0CivljoUgPiB0xKtuZzsgIzUzODUKK+WOhiA+IGzDrDsgIzUzODYKK+WOhyA+IHpow6k7ICM1Mzg3CivljoggPiBoxINuOyAjNTM4OAor5Y6JID4gbMOsOyAjNTM4OQor5Y6KID4gecSDOyAjNTM4QQor5Y6LID4gecSBOyAjNTM4Qgor5Y6MID4gecOgbjsgIzUzOEMKK+WOjSA+IHNow6g7ICM1MzhECivljo4gPiB6aMStOyAjNTM4RQor5Y6PID4gemjEgzsgIzUzOEYKK+WOkCA+IHDDoW5nOyAjNTM5MAor5Y6SID4gaMOpOyAjNTM5Mgor5Y6TID4gecOhOyAjNTM5Mwor5Y6UID4gemjDrDsgIzUzOTQKK+WOlSA+IGPDqDsgIzUzOTUKK+WOliA+IHDDoW5nOyAjNTM5Ngor5Y6XID4gdMOtOyAjNTM5Nwor5Y6YID4gbMOtOyAjNTM5OAor5Y6ZID4gc2jDqDsgIzUzOTkKK+WOmiA+IGjDsnU7ICM1MzlBCivljpsgPiB0xKtuZzsgIzUzOUIKK+WOnCA+IHrFq2k7ICM1MzlDCivljp0gPiBjw7lvOyAjNTM5RAor5Y6eID4gZsOoaTsgIzUzOUUKK+WOnyA+IHl1w6FuOyAjNTM5Rgor5Y6gID4gY8OoOyAjNTNBMAor5Y6hID4geXXDoW47ICM1M0ExCivljqIgPiB4acSBbmc7ICM1M0EyCivljqMgPiB5xINuOyAjNTNBMwor5Y6kID4gbMOsOyAjNTNBNAor5Y6lID4ganXDqTsgIzUzQTUKK+WOpiA+IHNow6A7ICM1M0E2CivljqcgPiBkacSBbjsgIzUzQTcKK+WOqCA+IGNow7o7ICM1M0E4CivljqkgPiBqw6x1OyAjNTNBOQor5Y6qID4gccOtbjsgIzUzQUEKK+WOqyA+IMOhbzsgIzUzQUIKK+WOrCA+IGfFrWk7ICM1M0FDCivljq0gPiB5w6BuOyAjNTNBRAor5Y6uID4gc8SrOyAjNTNBRQor5Y6vID4gbMOsOyAjNTNBRgor5Y6wID4gY2jEg25nOyAjNTNCMAor5Y6xID4gbMOhbjsgIzUzQjEKK+WOsiA+IGzDrDsgIzUzQjIKK+WOsyA+IHnDoW47ICM1M0IzCivljrQgPiB5xINuOyAjNTNCNAor5Y61ID4geXXDoW47ICM1M0I1CivljrYgPiBzxKs7ICM1M0I2CivljrcgPiBnxY1uZzsgIzUzQjcKK+WOuCA+IGzDrW47ICM1M0I4CivljrkgPiBxw611OyAjNTNCOQor5Y66ID4gccO5OyAjNTNCQQor5Y67ID4gccO5OyAjNTNCQgor5Y69ID4gbMSVaTsgIzUzQkQKK+WOviA+IGTFqzsgIzUzQkUKK+WOvyA+IHhpw6BuOyAjNTNCRgor5Y+AID4gemh1xIFuOyAjNTNDMAor5Y+BID4gc8SBbjsgIzUzQzEKK+WPgiA+IGPEgW47ICM1M0MyCivlj4MgPiBjxIFuOyAjNTNDMwor5Y+EID4gY8SBbjsgIzUzQzQKK+WPhSA+IGPEgW47ICM1M0M1Civlj4YgPiDDoGk7ICM1M0M2Civlj4cgPiBkw6BpOyAjNTNDNwor5Y+IID4gecOydTsgIzUzQzgKK+WPiSA+IGNoYTsgIzUzQzkKK+WPiiA+IGrDrTsgIzUzQ0EKK+WPiyA+IHnFj3U7ICM1M0NCCivlj4wgPiBzaHXEgW5nOyAjNTNDQwor5Y+NID4gZsSDbjsgIzUzQ0QKK+WPjiA+IHNoxY11OyAjNTNDRQor5Y+PID4gZ3XDoGk7ICM1M0NGCivlj5AgPiBiw6E7ICM1M0QwCivlj5EgPiBmxIE7ICM1M0QxCivlj5IgPiByw7lvOyAjNTNEMgor5Y+TID4gc2jDrDsgIzUzRDMKK+WPlCA+IHNoxas7ICM1M0Q0Civlj5UgPiB6aMO6bzsgIzUzRDUKK+WPliA+IHHFqzsgIzUzRDYKK+WPlyA+IHNow7J1OyAjNTNENwor5Y+YID4gYmnDoG47ICM1M0Q4Civlj5kgPiB4w7k7ICM1M0Q5Civlj5ogPiBqacSDOyAjNTNEQQor5Y+bID4gcMOgbjsgIzUzREIKK+WPnCA+IHPFj3U7ICM1M0RDCivlj50gPiBnw6BvOyAjNTNERAor5Y+eID4gd8OoaTsgIzUzREUKK+WPnyA+IHPFj3U7ICM1M0RGCivlj6AgPiBkacOpOyAjNTNFMAor5Y+hID4gcsO5aTsgIzUzRTEKK+WPoiA+IGPDs25nOyAjNTNFMgor5Y+jID4ga8WPdTsgIzUzRTMKK+WPpCA+IGfFrTsgIzUzRTQKK+WPpSA+IGrDuTsgIzUzRTUKK+WPpiA+IGzDrG5nOyAjNTNFNgor5Y+nID4gZ3XEgzsgIzUzRTcKK+WPqCA+IHTEgW87ICM1M0U4Civlj6kgPiBrw7J1OyAjNTNFOQor5Y+qID4gemjErTsgIzUzRUEKK+WPqyA+IGppw6BvOyAjNTNFQgor5Y+sID4gemjDoG87ICM1M0VDCivlj60gPiBixIE7ICM1M0VECivlj64gPiBkxKtuZzsgIzUzRUUKK+WPryA+IGvElTsgIzUzRUYKK+WPsCA+IHTDoWk7ICM1M0YwCivlj7EgPiBjaMOsOyAjNTNGMQor5Y+yID4gc2jErTsgIzUzRjIKK+WPsyA+IHnDsnU7ICM1M0YzCivlj7QgPiBxw611OyAjNTNGNAor5Y+1ID4gcMWPOyAjNTNGNQor5Y+2ID4geGnDqTsgIzUzRjYKK+WPtyA+IGjDoG87ICM1M0Y3Civlj7ggPiBzxKs7ICM1M0Y4Civlj7kgPiB0w6BuOyAjNTNGOQor5Y+6ID4gY2jErTsgIzUzRkEKK+WPuyA+IGzDqDsgIzUzRkIKK+WPvCA+IGRpxIFvOyAjNTNGQwor5Y+9ID4gasSrOyAjNTNGRAor5Y+/ID4gaMWNbmc7ICM1M0ZGCivlkIAgPiBtacSTOyAjNTQwMAor5ZCBID4geMWrOyAjNTQwMQor5ZCCID4gbcOhbmc7ICM1NDAyCivlkIMgPiBjaMSrOyAjNTQwMwor5ZCEID4gZ8OoOyAjNTQwNAor5ZCFID4geHXEgW47ICM1NDA1CivlkIYgPiB5xIFvOyAjNTQwNgor5ZCHID4gesStOyAjNTQwNwor5ZCIID4gaMOpOyAjNTQwOAor5ZCJID4gasOtOyAjNTQwOQor5ZCKID4gZGnDoG87ICM1NDBBCivlkIsgPiBjw7luOyAjNTQwQgor5ZCMID4gdMOzbmc7ICM1NDBDCivlkI0gPiBtw61uZzsgIzU0MEQKK+WQjiA+IGjDsnU7ICM1NDBFCivlkI8gPiBsw6w7ICM1NDBGCivlkJAgPiB0xa07ICM1NDEwCivlkJEgPiB4acOgbmc7ICM1NDExCivlkJIgPiB6aMOgOyAjNTQxMgor5ZCTID4geGnDoDsgIzU0MTMKK+WQlCA+IHnElTsgIzU0MTQKK+WQlSA+IGzHmjsgIzU0MTUKK+WQliA+IMSBOyAjNTQxNgor5ZCXID4gbWE7ICM1NDE3CivlkJggPiDFj3U7ICM1NDE4CivlkJkgPiB4dcSTOyAjNTQxOQor5ZCaID4gecSrOyAjNTQxQQor5ZCbID4gasWrbjsgIzU0MUIKK+WQnCA+IGNoxY91OyAjNTQxQwor5ZCdID4gbMOsbjsgIzU0MUQKK+WQniA+IHTFq247ICM1NDFFCivlkJ8gPiB5w61uOyAjNTQxRgor5ZCgID4gZsOoaTsgIzU0MjAKK+WQoSA+IGLErTsgIzU0MjEKK+WQoiA+IHHDrG47ICM1NDIyCivlkKMgPiBxw6xuOyAjNTQyMwor5ZCkID4gamnDqDsgIzU0MjQKK+WQpSA+IGLDuTsgIzU0MjUKK+WQpiA+IGbFj3U7ICM1NDI2CivlkKcgPiBiYTsgIzU0MjcKK+WQqCA+IGTFq247ICM1NDI4CivlkKkgPiBmxJNuOyAjNTQyOQor5ZCqID4gw6k7ICM1NDJBCivlkKsgPiBow6FuOyAjNTQyQgor5ZCsID4gdMSrbmc7ICM1NDJDCivlkK0gPiBow6FuZzsgIzU0MkQKK+WQriA+IHNoxa1uOyAjNTQyRQor5ZCvID4gccStOyAjNTQyRgor5ZCwID4gaMOzbmc7ICM1NDMwCivlkLEgPiB6aMSrOyAjNTQzMQor5ZCyID4gc2jElW47ICM1NDMyCivlkLMgPiB3w7o7ICM1NDMzCivlkLQgPiB3w7o7ICM1NDM0CivlkLUgPiBjaMSDbzsgIzU0MzUKK+WQtiA+IG7DqDsgIzU0MzYKK+WQtyA+IHh1w6g7ICM1NDM3CivlkLggPiB4xKs7ICM1NDM4CivlkLkgPiBjaMWraTsgIzU0MzkKK+WQuiA+IGTFjXU7ICM1NDNBCivlkLsgPiB3xJVuOyAjNTQzQgor5ZC8ID4gaMWPdTsgIzU0M0MKK+WQvSA+IMOzdTsgIzU0M0QKK+WQviA+IHfDujsgIzU0M0UKK+WQvyA+IGfDoG87ICM1NDNGCivlkYAgPiB5xIE7ICM1NDQwCivlkYEgPiBqw7luOyAjNTQ0MQor5ZGCID4gbMeaOyAjNTQ0Mgor5ZGDID4gw6g7ICM1NDQzCivlkYQgPiBnw6k7ICM1NDQ0CivlkYUgPiBtw6lpOyAjNTQ0NQor5ZGGID4gw6FpOyAjNTQ0Ngor5ZGHID4gccStOyAjNTQ0Nwor5ZGIID4gY2jDqW5nOyAjNTQ0OAor5ZGJID4gd8O6OyAjNTQ0OQor5ZGKID4gZ8OgbzsgIzU0NEEKK+WRiyA+IGbFqzsgIzU0NEIKK+WRjCA+IGppw6BvOyAjNTQ0Qwor5ZGNID4gaMWNbmc7ICM1NDRECivlkY4gPiBjaMStOyAjNTQ0RQor5ZGPID4gc2jEk25nOyAjNTQ0Rgor5ZGQID4gbsOoOyAjNTQ1MAor5ZGRID4gdMWrbjsgIzU0NTEKK+WRkiA+IGbFrTsgIzU0NTIKK+WRkyA+IHnDrDsgIzU0NTMKK+WRlCA+IGTEgWk7ICM1NDU0CivlkZUgPiDFjXU7ICM1NDU1CivlkZYgPiBsw6w7ICM1NDU2CivlkZcgPiBiw6BpOyAjNTQ1Nwor5ZGYID4geXXDoW47ICM1NDU4CivlkZkgPiBrdcSBaTsgIzU0NTkKK+WRmyA+IHFpxIFuZzsgIzU0NUIKK+WRnCA+IHfFqzsgIzU0NUMKK+WRnSA+IMOoOyAjNTQ1RAor5ZGeID4gc2jEqzsgIzU0NUUKK+WRnyA+IHF1xINuOyAjNTQ1Rgor5ZGgID4gcMSTbjsgIzU0NjAKK+WRoSA+IHfElW47ICM1NDYxCivlkaIgPiBuw607ICM1NDYyCivlkaMgPiBtzIE7ICM1NDYzCivlkaQgPiBsxK1uZzsgIzU0NjQKK+WRpSA+IHLEg247ICM1NDY1CivlkaYgPiB5xY11OyAjNTQ2Ngor5ZGnID4gZMStOyAjNTQ2Nwor5ZGoID4gemjFjXU7ICM1NDY4CivlkakgPiBzaMOsOyAjNTQ2OQor5ZGqID4gemjDsnU7ICM1NDZBCivlkasgPiB0acSTOyAjNTQ2Qgor5ZGsID4geMOsOyAjNTQ2Qwor5ZGtID4gecOsOyAjNTQ2RAor5ZGuID4gccOsOyAjNTQ2RQor5ZGvID4gcMOtbmc7ICM1NDZGCivlkbAgPiB6xK07ICM1NDcwCivlkbEgPiBnxas7ICM1NDcxCivlkbIgPiB6xKs7ICM1NDcyCivlkbMgPiB3w6hpOyAjNTQ3Mwor5ZG0ID4geMWrOyAjNTQ3NAor5ZG1ID4gaMSTOyAjNTQ3NQor5ZG2ID4gbsOhbzsgIzU0NzYKK+WRtyA+IHhpxIE7ICM1NDc3CivlkbggPiBwxJNpOyAjNTQ3OAor5ZG5ID4gecOsOyAjNTQ3OQor5ZG6ID4geGnEgW87ICM1NDdBCivlkbsgPiBzaMSTbjsgIzU0N0IKK+WRvCA+IGjFqzsgIzU0N0MKK+WRvSA+IG3DrG5nOyAjNTQ3RAor5ZG+ID4gZMOhOyAjNTQ3RQor5ZG/ID4gccWrOyAjNTQ3Rgor5ZKAID4gasWtOyAjNTQ4MAor5ZKBID4gZ8OobTsgIzU0ODEKK+WSgiA+IHrEgTsgIzU0ODIKK+WSgyA+IHTFq287ICM1NDgzCivlkoQgPiBkxatvOyAjNTQ4NAor5ZKFID4gcMOydTsgIzU0ODUKK+WShiA+IHDDoW87ICM1NDg2CivlkocgPiBiw6w7ICM1NDg3CivlkoggPiBmw7o7ICM1NDg4CivlkokgPiB5xIFuZzsgIzU0ODkKK+WSiiA+IGjDqTsgIzU0OEEKK+WSiyA+IHpow6A7ICM1NDhCCivlkowgPiBow6k7ICM1NDhDCivlko0gPiBoxIFpOyAjNTQ4RAor5ZKOID4gasOsdTsgIzU0OEUKK+WSjyA+IHnFj25nOyAjNTQ4Rgor5ZKQID4gZsO5OyAjNTQ5MAor5ZKRID4gcXXDqDsgIzU0OTEKK+WSkiA+IHpow7J1OyAjNTQ5Mgor5ZKTID4gd8SDOyAjNTQ5Mwor5ZKUID4ga8SDOyAjNTQ5NAor5ZKVID4gZ8WrOyAjNTQ5NQor5ZKWID4ga8SBOyAjNTQ5Ngor5ZKXID4gesWtbzsgIzU0OTcKK+WSmCA+IGLDuTsgIzU0OTgKK+WSmSA+IGzDs25nOyAjNTQ5OQor5ZKaID4gZMWNbmc7ICM1NDlBCivlkpsgPiBuw61uZzsgIzU0OUIKK+WSnSA+IHPEqzsgIzU0OUQKK+WSniA+IHhpw6BuOyAjNTQ5RQor5ZKfID4gaMO5bzsgIzU0OUYKK+WSoCA+IHHDrDsgIzU0QTAKK+WSoSA+IMOocjsgIzU0QTEKK+WSoiA+IMOoOyAjNTRBMgor5ZKjID4gZ3XEgW5nOyAjNTRBMwor5ZKkID4gemjDoDsgIzU0QTQKK+WSpSA+IHjDrDsgIzU0QTUKK+WSpiA+IHnDrTsgIzU0QTYKK+WSpyA+IGxpxJU7ICM1NEE3CivlkqggPiB6xKs7ICM1NEE4CivlkqkgPiBtacSTOyAjNTRBOQor5ZKqID4gbcSrOyAjNTRBQQor5ZKrID4gemjErTsgIzU0QUIKK+WSrCA+IHnEg287ICM1NEFDCivlkq0gPiBqxKs7ICM1NEFECivlkq4gPiB6aMOydTsgIzU0QUUKK+WSryA+IGfEkzsgIzU0QUYKK+WSsCA+IHNodcOgaTsgIzU0QjAKK+WSsSA+IHrDoW47ICM1NEIxCivlkrIgPiB4acOgbzsgIzU0QjIKK+WSsyA+IGvDqTsgIzU0QjMKK+WStCA+IGjFq2k7ICM1NEI0CivlkrUgPiBrdcSBOyAjNTRCNQor5ZK2ID4gaHXDoGk7ICM1NEI2CivlkrcgPiB0w6FvOyAjNTRCNwor5ZK4ID4geGnDoW47ICM1NEI4CivlkrkgPiDDqDsgIzU0QjkKK+WSuiA+IHh1xIFuOyAjNTRCQQor5ZK7ID4geMSrdTsgIzU0QkIKK+WSvCA+IHfEgWk7ICM1NEJDCivlkr0gPiB5xIFuOyAjNTRCRAor5ZK+ID4gbMSDbzsgIzU0QkUKK+WSvyA+IHnEqzsgIzU0QkYKK+WTgCA+IMSBaTsgIzU0QzAKK+WTgSA+IHDErW47ICM1NEMxCivlk4IgPiBzaMSVbjsgIzU0QzIKK+WTgyA+IHTDs25nOyAjNTRDMwor5ZOEID4gaMWNbmc7ICM1NEM0Civlk4UgPiB4xKtvbmc7ICM1NEM1Civlk4YgPiBjaMStOyAjNTRDNgor5ZOHID4gd8SBOyAjNTRDNwor5ZOIID4gaMSBOyAjNTRDOAor5ZOJID4gesSBaTsgIzU0QzkKK+WTiiA+IHnDuTsgIzU0Q0EKK+WTiyA+IGTDrDsgIzU0Q0IKK+WTjCA+IHDDoGk7ICM1NENDCivlk40gPiB4acSDbmc7ICM1NENECivlk44gPiDEgWk7ICM1NENFCivlk48gPiBoxJVuOyAjNTRDRgor5ZOQID4ga3XEgW5nOyAjNTREMAor5ZORID4gecSDOyAjNTREMQor5ZOSID4gZMSBOyAjNTREMgor5ZOTID4geGnEgW87ICM1NEQzCivlk5QgPiBiw6w7ICM1NEQ0Civlk5UgPiB5dcSVOyAjNTRENQor5ZOXID4gaHXEgTsgIzU0RDcKK+WTmSA+IGt1w6BpOyAjNTREOQor5ZOaID4gZMWtbzsgIzU0REEKK+WTnCA+IGrDrDsgIzU0REMKK+WTnSA+IG7Ds25nOyAjNTRERAor5ZOeID4gbcWNdTsgIzU0REUKK+WTnyA+IHlvOyAjNTRERgor5ZOgID4gaMOgbzsgIzU0RTAKK+WToSA+IHl1w6FuOyAjNTRFMQor5ZOiID4gbMOybmc7ICM1NEUyCivlk6MgPiBwxY91OyAjNTRFMwor5ZOkID4gbcOhbmc7ICM1NEU0Civlk6UgPiBnxJM7ICM1NEU1Civlk6YgPiDDqTsgIzU0RTYKK+WTpyA+IGNoxKs7ICM1NEU3Civlk6ggPiBzaMOgbzsgIzU0RTgKK+WTqSA+IGzEqzsgIzU0RTkKK+WTqiA+IG7EgzsgIzU0RUEKK+WTqyA+IHrDujsgIzU0RUIKK+WTrCA+IGjDqTsgIzU0RUMKK+WTrSA+IGvFqzsgIzU0RUQKK+WTriA+IHhpxIFvOyAjNTRFRQor5ZOvID4geGnDoG47ICM1NEVGCivlk7AgPiBsw6FvOyAjNTRGMAor5ZOxID4gYsWNOyAjNTRGMQor5ZOyID4gemjDqTsgIzU0RjIKK+WTsyA+IHpoxIE7ICM1NEYzCivlk7QgPiBsacOgbmc7ICM1NEY0Civlk7UgPiBixIE7ICM1NEY1Civlk7YgPiBtacSTOyAjNTRGNgor5ZO3ID4gbMOoOyAjNTRGNwor5ZO4ID4gc8WraTsgIzU0RjgKK+WTuSA+IGbDs3U7ICM1NEY5Civlk7ogPiBixa07ICM1NEZBCivlk7sgPiBow6BuOyAjNTRGQgor5ZO8ID4gaMSTbmc7ICM1NEZDCivlk70gPiBnxJVuZzsgIzU0RkQKK+WTviA+IHNoxatvOyAjNTRGRQor5ZO/ID4gZ8SVOyAjNTRGRgor5ZSAID4gecWPdTsgIzU1MDAKK+WUgSA+IHnDoG47ICM1NTAxCivllIIgPiBnxa07ICM1NTAyCivllIMgPiBnxa07ICM1NTAzCivllIQgPiBiw6BpOyAjNTUwNAor5ZSFID4gaMSBbjsgIzU1MDUKK+WUhiA+IHPFq287ICM1NTA2CivllIcgPiBjaMO6bjsgIzU1MDcKK+WUiCA+IHnDrDsgIzU1MDgKK+WUiSA+IMSBaTsgIzU1MDkKK+WUiiA+IGppw6E7ICM1NTBBCivllIsgPiB0xa07ICM1NTBCCivllIwgPiB4acOhbjsgIzU1MEMKK+WUjSA+IGh1xINuOyAjNTUwRAor5ZSOID4gbMSrOyAjNTUwRQor5ZSPID4geMSrOyAjNTUwRgor5ZSQID4gdMOhbmc7ICM1NTEwCivllJEgPiB6w7lvOyAjNTUxMQor5ZSSID4gccOtdTsgIzU1MTIKK+WUkyA+IGNoxJM7ICM1NTEzCivllJQgPiB3w7o7ICM1NTE0CivllJUgPiB6w6BvOyAjNTUxNQor5ZSWID4gecSDOyAjNTUxNgor5ZSXID4gZMWNdTsgIzU1MTcKK+WUmCA+IHHErTsgIzU1MTgKK+WUmSA+IGTDrTsgIzU1MTkKK+WUmiA+IHHDrG47ICM1NTFBCivllJsgPiBtw6A7ICM1NTFCCivllJ0gPiBoxY9uZzsgIzU1MUQKK+WUniA+IGTFj3U7ICM1NTFFCivllKAgPiBsw6FvOyAjNTUyMAor5ZShID4gbGnEg25nOyAjNTUyMQor5ZSiID4gc8WtbzsgIzU1MjIKK+WUoyA+IHrDoG87ICM1NTIzCivllKQgPiBodcOgbjsgIzU1MjQKK+WUpiA+IHNoxIE7ICM1NTI2CivllKcgPiBqxKs7ICM1NTI3CivllKggPiB6xa1vOyAjNTUyOAor5ZSpID4gd8WNOyAjNTUyOQor5ZSqID4gZsSVbmc7ICM1NTJBCivllKsgPiB5w61uOyAjNTUyQgor5ZSsID4gaMWtOyAjNTUyQwor5ZStID4gccSrOyAjNTUyRAor5ZSuID4gc2jDsnU7ICM1NTJFCivllK8gPiB3w6lpOyAjNTUyRgor5ZSwID4gc2h1xIE7ICM1NTMwCivllLEgPiBjaMOgbmc7ICM1NTMxCivllLIgPiDDqXI7ICM1NTMyCivllLMgPiBsw6w7ICM1NTMzCivllLQgPiBxacOgbmc7ICM1NTM0CivllLUgPiDEg247ICM1NTM1CivllLYgPiBqacOoOyAjNTUzNgor5ZS3ID4gecWNOyAjNTUzNwor5ZS4ID4gbmnDoG47ICM1NTM4CivllLkgPiB5xas7ICM1NTM5CivllLogPiB0acSDbjsgIzU1M0EKK+WUuyA+IGzEg2k7ICM1NTNCCivllLwgPiBzaMOgOyAjNTUzQwor5ZS9ID4geMSrOyAjNTUzRAor5ZS+ID4gdMO5bzsgIzU1M0UKK+WUvyA+IGjFqzsgIzU1M0YKK+WVgCA+IMOhaTsgIzU1NDAKK+WVgSA+IHpoxY11OyAjNTU0MQor5ZWCID4gbsOydTsgIzU1NDIKK+WVgyA+IGvElW47ICM1NTQzCivllYQgPiB6aMO6bzsgIzU1NDQKK+WVhSA+IHpow7pvOyAjNTU0NQor5ZWGID4gc2jEgW5nOyAjNTU0Ngor5ZWHID4gZMOtOyAjNTU0Nwor5ZWIID4gaMOobmc7ICM1NTQ4CivllYkgPiBsw6FuOyAjNTU0OQor5ZWKID4gYTsgIzU1NEEKK+WViyA+IHhpxIFvOyAjNTU0Qgor5ZWMID4geGnEgW5nOyAjNTU0Qwor5ZWNID4gdMWrbjsgIzU1NEQKK+WVjiA+IHfFrTsgIzU1NEUKK+WVjyA+IHfDqG47ICM1NTRGCivllZAgPiBjw7lpOyAjNTU1MAor5ZWRID4gc2jDoDsgIzU1NTEKK+WVkiA+IGjFqzsgIzU1NTIKK+WVkyA+IHHErTsgIzU1NTMKK+WVlCA+IHHErTsgIzU1NTQKK+WVlSA+IHTDoW87ICM1NTU1CivllZYgPiBkw6BuOyAjNTU1Ngor5ZWXID4gZMOgbjsgIzU1NTcKK+WVmCA+IHnDqDsgIzU1NTgKK+WVmSA+IHrErTsgIzU1NTkKK+WVmiA+IGLErTsgIzU1NUEKK+WVmyA+IGPDuWk7ICM1NTVCCivllZwgPiBjaMO5bzsgIzU1NUMKK+WVnSA+IGjDqTsgIzU1NUQKK+WVniA+IHnEgzsgIzU1NUUKK+WVnyA+IHHErTsgIzU1NUYKK+WVoCA+IHpow6k7ICM1NTYwCivllaEgPiBwxJNpOyAjNTU2MQor5ZWiID4gbGnEg25nOyAjNTU2Mgor5ZWjID4geGnDoW47ICM1NTYzCivllaQgPiBww607ICM1NTY0CivllaUgPiBzaMOgOyAjNTU2NQor5ZWmID4gbGE7ICM1NTY2CivllacgPiB6w6k7ICM1NTY3CivllaggPiBxxKtuZzsgIzU1NjgKK+WVqSA+IGd1w6A7ICM1NTY5CivllaogPiBwxIE7ICM1NTZBCivllasgPiB6aMSVOyAjNTU2Qgor5ZWsID4gc8OoOyAjNTU2Qwor5ZWtID4gemh1w6BuOyAjNTU2RAor5ZWuID4gbmnDqDsgIzU1NkUKK+WVryA+IGd1bzsgIzU1NkYKK+WVsCA+IGzFq287ICM1NTcwCivllbEgPiB5xIFuOyAjNTU3MQor5ZWyID4gZMOsOyAjNTU3Mgor5ZWzID4gcXXDoW47ICM1NTczCivllbQgPiB0xIFuOyAjNTU3NAor5ZW1ID4gYm87ICM1NTc1CivllbYgPiBkw6xuZzsgIzU1NzYKK+WVtyA+IGzEgW5nOyAjNTU3Nwor5ZW4ID4geGnDoG87ICM1NTc4CivllbogPiB0w6FuZzsgIzU1N0EKK+WVuyA+IGNow6w7ICM1NTdCCivllbwgPiB0w607ICM1NTdDCivllb0gPiDDoW47ICM1NTdECivllb4gPiBqxKt1OyAjNTU3RQor5ZW/ID4gZMOgbjsgIzU1N0YKK+WWgCA+IGvDqDsgIzU1ODAKK+WWgSA+IHnDs25nOyAjNTU4MQor5ZaCID4gd8OoaTsgIzU1ODIKK+WWgyA+IG7DoW47ICM1NTgzCivlloQgPiBzaMOgbjsgIzU1ODQKK+WWhSA+IHnDuTsgIzU1ODUKK+WWhiA+IHpow6k7ICM1NTg2CivllocgPiBsxIM7ICM1NTg3CivlloggPiBqacSTOyAjNTU4OAor5ZaJID4gaMOzdTsgIzU1ODkKK+WWiiA+IGjEg247ICM1NThBCivllosgPiBkacOpOyAjNTU4Qgor5ZaMID4gemjFjXU7ICM1NThDCivllo0gPiBjaMOhaTsgIzU1OEQKK+WWjiA+IHfEgWk7ICM1NThFCivllo8gPiByxJU7ICM1NThGCivllpAgPiB5w7k7ICM1NTkwCivllpEgPiB5xKtuOyAjNTU5MQor5ZaSID4gesOhbjsgIzU1OTIKK+WWkyA+IHnEgW87ICM1NTkzCivllpQgPiB3xY07ICM1NTk0CivllpUgPiBtacSDbjsgIzU1OTUKK+WWliA+IGjDujsgIzU1OTYKK+WWlyA+IHnFrW47ICM1NTk3CivllpggPiBjaHXEg247ICM1NTk4CivllpkgPiBow7lpOyAjNTU5OQor5ZaaID4gaHXDoG47ICM1NTlBCivllpsgPiBodcOgbjsgIzU1OUIKK+WWnCA+IHjErTsgIzU1OUMKK+WWnSA+IGjEkzsgIzU1OUQKK+WWniA+IGrEqzsgIzU1OUUKK+WWnyA+IGvDuWk7ICM1NTlGCivllqAgPiB6aMWPbmc7ICM1NUEwCivllqEgPiB3xJVpOyAjNTVBMQor5ZaiID4gc2jDoDsgIzU1QTIKK+WWoyA+IHjFrTsgIzU1QTMKK+WWpCA+IGh1w6FuZzsgIzU1QTQKK+WWpSA+IGTDuTsgIzU1QTUKK+WWpiA+IG5pw6g7ICM1NUE2CivllqcgPiAxeHXEgW47ICM1NUE3CivllqggPiBsacOgbmc7ICM1NUE4CivllqkgPiB5w7k7ICM1NUE5CivllqogPiBzxIFuZzsgIzU1QUEKK+WWqyA+IGNoxKs7ICM1NUFCCivllqwgPiBxacOhbzsgIzU1QUMKK+WWrSA+IHnDoG47ICM1NUFECivllq4gPiBkxIFuOyAjNTVBRQor5ZavID4gcMSTbjsgIzU1QUYKK+WWsCA+IGPEgW47ICM1NUIwCivllrEgPiBsw607ICM1NUIxCivllrIgPiB5bzsgIzU1QjIKK+WWsyA+IHpoxIE7ICM1NUIzCivllrQgPiB3xJNpOyAjNTVCNAor5Za1ID4gbWnEgW87ICM1NUI1CivllrYgPiB5w61uZzsgIzU1QjYKK+WWtyA+IHDEk247ICM1NUI3CivllrkgPiBrw7ppOyAjNTVCOQor5Za6ID4geMOsOyAjNTVCQQor5Za7ID4gecO5OyAjNTVCQgor5Za8ID4gamnDqTsgIzU1QkMKK+WWvSA+IGxvdTsgIzU1QkQKK+WWviA+IGvDuTsgIzU1QkUKK+WWvyA+IHPDoG87ICM1NUJGCivll4AgPiBow7lvOyAjNTVDMAor5ZeBID4gdMOtOyAjNTVDMQor5ZeCID4gecOhbzsgIzU1QzIKK+WXgyA+IGjDqDsgIzU1QzMKK+WXhCA+IMOhOyAjNTVDNAor5ZeFID4geMOsdTsgIzU1QzUKK+WXhiA+IHFpxIFuZzsgIzU1QzYKK+WXhyA+IHPDqDsgIzU1QzcKK+WXiCA+IHnFjW5nOyAjNTVDOAor5ZeJID4gc8O5OyAjNTVDOQor5ZeKID4gaMWPbmc7ICM1NUNBCivll4sgPiB4acOpOyAjNTVDQgor5ZeMID4gecOsOyAjNTVDQwor5ZeNID4gc8WrbzsgIzU1Q0QKK+WXjiA+IG1hOyAjNTVDRQor5ZePID4gY2jEgTsgIzU1Q0YKK+WXkCA+IGjDoGk7ICM1NUQwCivll5EgPiBrw6g7ICM1NUQxCivll5IgPiB0w6A7ICM1NUQyCivll5MgPiBzxINuZzsgIzU1RDMKK+WXlCA+IHRpw6FuOyAjNTVENAor5ZeVID4gcsO5OyAjNTVENQor5ZeWID4gc8WNdTsgIzU1RDYKK+WXlyA+IHfEgTsgIzU1RDcKK+WXmCA+IGrEqzsgIzU1RDgKK+WXmSA+IHDEg25nOyAjNTVEOQor5ZeaID4gd8WrOyAjNTVEQQor5ZebID4geGnDoW47ICM1NURCCivll5wgPiBzaMOsOyAjNTVEQwor5ZedID4gZ8OpOyAjNTVERAor5ZeeID4gesSrOyAjNTVERQor5ZefID4gamnEkzsgIzU1REYKK+WXoCA+IGzDuW87ICM1NUUwCivll6EgPiB3xJNuZzsgIzU1RTEKK+WXoiA+IHfDoDsgIzU1RTIKK+WXoyA+IHPDrDsgIzU1RTMKK+WXpCA+IGNoxKs7ICM1NUU0Civll6UgPiBow6FvOyAjNTVFNQor5ZemID4gc8WrbzsgIzU1RTYKK+WXpyA+IGppxIEnICdsw7puOyAjNTVFNwor5ZeoID4gaMSDaTsgIzU1RTgKK+WXqSA+IHPFrW87ICM1NUU5Civll6ogPiBxw61uOyAjNTVFQQor5ZerID4gbmnDqDsgIzU1RUIKK+WXrCA+IGjEkzsgIzU1RUMKK+WXriA+IHPDoGk7ICM1NUVFCivll68gPiBuzIBnOyAjNTVFRgor5ZewID4gZ8OoOyAjNTVGMAor5ZexID4gbsOhOyAjNTVGMQor5ZeyID4gZGnEgzsgIzU1RjIKK+WXsyA+IMOgaTsgIzU1RjMKK+WXtSA+IHTFjW5nOyAjNTVGNQor5Ze2ID4gYsOsOyAjNTVGNgor5Ze3ID4gw6FvOyAjNTVGNwor5Ze4ID4gw6FvOyAjNTVGOAor5Ze5ID4gbGnDoW47ICM1NUY5Civll7ogPiBjxatpOyAjNTVGQQor5Ze7ID4gemjEkzsgIzU1RkIKK+WXvCA+IG3DsjsgIzU1RkMKK+WXvSA+IHPDsnU7ICM1NUZECivll74gPiBzxY91OyAjNTVGRQor5Ze/ID4gdMSDbjsgIzU1RkYKK+WYgCA+IGTDrTsgIzU2MDAKK+WYgSA+IHHEqzsgIzU2MDEKK+WYgiA+IGppw6BvOyAjNTYwMgor5ZiDID4gY2jFjW5nOyAjNTYwMwor5ZiEID4gamnEgW87ICM1NjA0CivlmIUgPiBrxINpOyAjNTYwNQor5ZiGID4gdMOgbjsgIzU2MDYKK+WYhyA+IHPEgW47ICM1NjA3CivlmIggPiBjw6FvOyAjNTYwOAor5ZiJID4gamnEgTsgIzU2MDkKK+WYiiA+IMOhaTsgIzU2MEEKK+WYiyA+IHhpxIFvOyAjNTYwQgor5ZiMID4gcGnEgW87ICM1NjBDCivlmI0gPiBsb3U7ICM1NjBECivlmI4gPiBnxIE7ICM1NjBFCivlmI8gPiBnxa07ICM1NjBGCivlmJAgPiB4acSBbzsgIzU2MTAKK+WYkSA+IGjFqzsgIzU2MTEKK+WYkiA+IGjDuWk7ICM1NjEyCivlmJMgPiBndW87ICM1NjEzCivlmJQgPiDFjXU7ICM1NjE0CivlmJUgPiB4acSBbjsgIzU2MTUKK+WYliA+IHrDqTsgIzU2MTYKK+WYlyA+IGNow6FuZzsgIzU2MTcKK+WYmCA+IHjFqzsgIzU2MTgKK+WYmSA+IHDDszsgIzU2MTkKK+WYmiA+IGTDqTsgIzU2MUEKK+WYmyA+IG1hOyAjNTYxQgor5ZicID4gbcOgOyAjNTYxQwor5ZidID4gaMO6OyAjNTYxRAor5ZieID4gbGVpOyAjNTYxRQor5ZifID4gZMWrOyAjNTYxRgor5ZigID4gZ8SBOyAjNTYyMAor5ZihID4gdMSBbmc7ICM1NjIxCivlmKIgPiB5xJU7ICM1NjIyCivlmKMgPiBixJNuZzsgIzU2MjMKK+WYpCA+IHnEq25nOyAjNTYyNAor5ZimID4gamnDoG87ICM1NjI2CivlmKcgPiBtxKs7ICM1NjI3CivlmKggPiB4acOgbzsgIzU2MjgKK+WYqSA+IGh1xIE7ICM1NjI5CivlmKogPiBtxINpOyAjNTYyQQor5ZirID4gcsOhbjsgIzU2MkIKK+WYrCA+IHrFq287ICM1NjJDCivlmK0gPiBwxJNuZzsgIzU2MkQKK+WYriA+IGzDoW87ICM1NjJFCivlmK8gPiB4acOgbzsgIzU2MkYKK+WYsCA+IGrEqzsgIzU2MzAKK+WYsSA+IHpoxa07ICM1NjMxCivlmLIgPiBjaMOhbzsgIzU2MzIKK+WYsyA+IGvDuWk7ICM1NjMzCivlmLQgPiB6xa1pOyAjNTYzNAor5Zi1ID4geGnEgW87ICM1NjM1CivlmLYgPiBzxKs7ICM1NjM2CivlmLcgPiBow6FvOyAjNTYzNwor5Zi4ID4gZsWtOyAjNTYzOAor5Zi5ID4gbGnDoW87ICM1NjM5CivlmLogPiBxacOhbzsgIzU2M0EKK+WYuyA+IHjEqzsgIzU2M0IKK+WYvCA+IHjDrHU7ICM1NjNDCivlmL0gPiB0xIFuOyAjNTYzRAor5Zi+ID4gdMOhbjsgIzU2M0UKK+WYvyA+IG3DsjsgIzU2M0YKK+WZgCA+IHjDuW47ICM1NjQwCivlmYEgPiDElTsgIzU2NDEKK+WZgiA+IHrFrW47ICM1NjQyCivlmYMgPiBmxIFuOyAjNTY0Mwor5ZmEID4gY2jEqzsgIzU2NDQKK+WZhSA+IGjFq2k7ICM1NjQ1CivlmYYgPiB6xINuOyAjNTY0Ngor5ZmHID4gY2h1w6FuZzsgIzU2NDcKK+WZiCA+IGPDuTsgIzU2NDgKK+WZiSA+IGTDoG47ICM1NjQ5CivlmYogPiB5w7k7ICM1NjRBCivlmYsgPiB0xatuOyAjNTY0Qgor5ZmMID4gY2jEk25nOyAjNTY0Qwor5ZmNID4gamnDoG87ICM1NjRECivlmY4gPiB5xJM7ICM1NjRFCivlmY8gPiB4xKs7ICM1NjRGCivlmZAgPiBxw6w7ICM1NjUwCivlmZEgPiBow6FvOyAjNTY1MQor5ZmSID4gbGnDoW47ICM1NjUyCivlmZMgPiB4xas7ICM1NjUzCivlmZQgPiBkxJNuZzsgIzU2NTQKK+WZlSA+IGjFq2k7ICM1NjU1CivlmZYgPiB5w61uOyAjNTY1Ngor5ZmXID4gcMWrOyAjNTY1Nwor5ZmYID4ganXEkzsgIzU2NTgKK+WZmSA+IHHDrW47ICM1NjU5CivlmZogPiB4w7puOyAjNTY1QQor5ZmbID4gbmnDqDsgIzU2NUIKK+WZnCA+IGzFqzsgIzU2NUMKK+WZnSA+IHPEqzsgIzU2NUQKK+WZniA+IHnEg247ICM1NjVFCivlmZ8gPiB5w6xuZzsgIzU2NUYKK+WZoCA+IGTEgTsgIzU2NjAKK+WZoSA+IGTEgW47ICM1NjYxCivlmaIgPiB5xa07ICM1NjYyCivlmaMgPiB6aMOydTsgIzU2NjMKK+WZpCA+IGrDrG47ICM1NjY0CivlmaUgPiBuw7NuZzsgIzU2NjUKK+WZpiA+IHl1xJU7ICM1NjY2CivlmacgPiBow7lpOyAjNTY2Nwor5ZmoID4gccOsOyAjNTY2OAor5ZmpID4gw6g7ICM1NjY5CivlmaogPiB6w6BvOyAjNTY2QQor5ZmrID4gecSrOyAjNTY2Qgor5ZmsID4gc2jDrDsgIzU2NkMKK+WZrSA+IGppw6BvOyAjNTY2RAor5ZmuID4geXXEgW47ICM1NjZFCivlma8gPiDDoGk7ICM1NjZGCivlmbAgPiB5xY1uZzsgIzU2NzAKK+WZsSA+IGp1w6k7ICM1NjcxCivlmbIgPiBrdcOgaTsgIzU2NzIKK+WZsyA+IHnFrTsgIzU2NzMKK+WZtCA+IHDEk247ICM1Njc0CivlmbUgPiBkw6BvOyAjNTY3NQor5Zm2ID4gZ8OpOyAjNTY3Ngor5Zm3ID4geMSrbjsgIzU2NzcKK+WZuCA+IGTFq247ICM1Njc4CivlmbkgPiBkxIFuZzsgIzU2NzkKK+WZuyA+IHNhaTsgIzU2N0IKK+WZvCA+IHDEqzsgIzU2N0MKK+WZvSA+IHDErTsgIzU2N0QKK+WZviA+IHnEq247ICM1NjdFCivlmb8gPiB6xa1pOyAjNTY3Rgor5ZqAID4gbsOtbmc7ICM1NjgwCivlmoEgPiBkw607ICM1NjgxCivlmoIgPiBsw6BuOyAjNTY4Mgor5ZqDID4gdMSBOyAjNTY4Mwor5ZqEID4gaMO5bzsgIzU2ODQKK+WahSA+IHLDujsgIzU2ODUKK+WahiA+IGjEgW87ICM1Njg2CivlmocgPiB4acOgOyAjNTY4Nwor5ZqIID4gecOgOyAjNTY4OAor5ZqJID4gZMWrbzsgIzU2ODkKK+WaiiA+IHjDrDsgIzU2OEEKK+WaiyA+IGNow7N1OyAjNTY4Qgor5ZqMID4gasOsOyAjNTY4Qwor5ZqNID4gasOsbjsgIzU2OEQKK+WajiA+IGjDoW87ICM1NjhFCivlmo8gPiB0w6w7ICM1NjhGCivlmpAgPiBjaMOhbmc7ICM1NjkwCivlmpMgPiBjxIE7ICM1NjkzCivlmpQgPiB0w6w7ICM1Njk0CivlmpUgPiBsxas7ICM1Njk1CivlmpYgPiBow7lpOyAjNTY5Ngor5ZqXID4gYsOzOyAjNTY5Nwor5ZqYID4gecWNdTsgIzU2OTgKK+WamSA+IG5pw6g7ICM1Njk5CivlmpogPiB5w61uOyAjNTY5QQor5ZqbID4gaMO5OyAjNTY5Qgor5ZqcID4gbcOyOyAjNTY5Qwor5ZqdID4gaHXEgW5nOyAjNTY5RAor5ZqeID4gemjDqTsgIzU2OUUKK+WanyA+IGzDrTsgIzU2OUYKK+WaoCA+IGzDrXU7ICM1NkEwCivlmqIgPiBuw6FuZzsgIzU2QTIKK+WaoyA+IHhpxIFvOyAjNTZBMwor5ZqkID4gbcOzOyAjNTZBNAor5ZqlID4gecOgbjsgIzU2QTUKK+WapiA+IGzDrDsgIzU2QTYKK+WapyA+IGzDujsgIzU2QTcKK+WaqCA+IGzDs25nOyAjNTZBOAor5ZqpID4gZsO6OyAjNTZBOQor5ZqqID4gZMOgbjsgIzU2QUEKK+WaqyA+IGNow6huOyAjNTZBQgor5ZqsID4gcMOtbjsgIzU2QUMKK+WarSA+IHDErTsgIzU2QUQKK+WariA+IHhpw6BuZzsgIzU2QUUKK+WaryA+IGjDuW87ICM1NkFGCivlmrAgPiBtw7M7ICM1NkIwCivlmrEgPiB4w6w7ICM1NkIxCivlmrIgPiBkxa1vOyAjNTZCMgor5ZqzID4ga8O5OyAjNTZCMwor5Zq0ID4gecOhbjsgIzU2QjQKK+WatSA+IGNow6FuOyAjNTZCNQor5Zq2ID4gecSrbmc7ICM1NkI2CivlmrcgPiByxINuZzsgIzU2QjcKK+WauCA+IGRpxINuOyAjNTZCOAor5Zq5ID4gbMSBOyAjNTZCOQor5Zq6ID4gdMOgOyAjNTZCQQor5Zq7ID4geGnEgW87ICM1NkJCCivlmrwgPiBqacOhbzsgIzU2QkMKK+WavSA+IGNow7lvOyAjNTZCRAor5Zq+ID4gaHXEgW47ICM1NkJFCivlmr8gPiBow7lvOyAjNTZCRgor5ZuAID4gemh1w6BuOyAjNTZDMAor5ZuBID4gbmnDqDsgIzU2QzEKK+WbgiA+IHhpxIFvOyAjNTZDMgor5ZuDID4gY8OgOyAjNTZDMwor5ZuEID4gbMOtOyAjNTZDNAor5ZuFID4gY2jEg247ICM1NkM1Civlm4YgPiBjaMOgaTsgIzU2QzYKK+WbhyA+IGzDrDsgIzU2QzcKK+WbiCA+IHnDrDsgIzU2QzgKK+WbiSA+IGzFq287ICM1NkM5Civlm4ogPiBuw6FuZzsgIzU2Q0EKK+WbiyA+IHrDoG47ICM1NkNCCivlm4wgPiBzxas7ICM1NkNDCivlm40gPiB4xK07ICM1NkNECivlm48gPiBqacSBbjsgIzU2Q0YKK+WbkCA+IHrDoTsgIzU2RDAKK+WbkSA+IHpoxa07ICM1NkQxCivlm5IgPiBsw6FuOyAjNTZEMgor5ZuTID4gbmnDqDsgIzU2RDMKK+WblCA+IG7EgW5nOyAjNTZENAor5ZuXID4gd8OpaTsgIzU2RDcKK+WbmCA+IGjDumk7ICM1NkQ4Civlm5kgPiB5xKtuOyAjNTZEOQor5ZuaID4gccOtdTsgIzU2REEKK+WbmyA+IHPDrDsgIzU2REIKK+WbnCA+IG7DrW47ICM1NkRDCivlm50gPiBqacSDbjsgIzU2REQKK+WbniA+IGjDumk7ICM1NkRFCivlm58gPiB4w6xuOyAjNTZERgor5ZugID4gecSrbjsgIzU2RTAKK+WboSA+IG7EgW47ICM1NkUxCivlm6IgPiB0dcOhbjsgIzU2RTIKK+WboyA+IHR1w6FuOyAjNTZFMwor5ZukID4gZMO5bjsgIzU2RTQKK+WbpSA+IGvDoG5nOyAjNTZFNQor5ZumID4geXXEgW47ICM1NkU2Civlm6cgPiBqxK1vbmc7ICM1NkU3Civlm6ggPiBwacSBbjsgIzU2RTgKK+WbqSA+IHnDuW47ICM1NkU5Civlm6ogPiBjxY1uZzsgIzU2RUEKK+WbqyA+IGjDujsgIzU2RUIKK+WbrCA+IGjDumk7ICM1NkVDCivlm60gPiB5dcOhbjsgIzU2RUQKK+WbriA+IHnDs3U7ICM1NkVFCivlm68gPiBnw7pvOyAjNTZFRgor5ZuwID4ga8O5bjsgIzU2RjAKK+WbsSA+IGPFjW5nOyAjNTZGMQor5ZuyID4gd8OpaTsgIzU2RjIKK+WbsyA+IHTDujsgIzU2RjMKK+WbtCA+IHfDqWk7ICM1NkY0Civlm7UgPiBsw7puOyAjNTZGNQor5Zu2ID4gZ8O6bzsgIzU2RjYKK+WbtyA+IHHFq247ICM1NkY3Civlm7ggPiByw6w7ICM1NkY4Civlm7kgPiBsw61uZzsgIzU2RjkKK+WbuiA+IGfDuTsgIzU2RkEKK+WbuyA+IGfDum87ICM1NkZCCivlm7wgPiB0xIFpOyAjNTZGQwor5Zu9ID4gZ8O6bzsgIzU2RkQKK+WbviA+IHTDujsgIzU2RkUKK+WbvyA+IHnDsnU7ICM1NkZGCivlnIAgPiBnw7pvOyAjNTcwMAor5ZyBID4gecOtbjsgIzU3MDEKK+WcgiA+IGjDuW47ICM1NzAyCivlnIMgPiBwxa07ICM1NzAzCivlnIQgPiB5xa07ICM1NzA0CivlnIUgPiBow6FuOyAjNTcwNQor5ZyGID4geXXDoW47ICM1NzA2CivlnIcgPiBsw7puOyAjNTcwNwor5ZyIID4gcXXEgW47ICM1NzA4CivlnIkgPiB5xa07ICM1NzA5CivlnIogPiBxxKtuZzsgIzU3MEEKK+WciyA+IGfDum87ICM1NzBCCivlnIwgPiBjaHXDoW47ICM1NzBDCivlnI0gPiB3w6lpOyAjNTcwRAor5ZyOID4geXXDoW47ICM1NzBFCivlnI8gPiBxdcSBbjsgIzU3MEYKK+WckCA+IGvFqzsgIzU3MTAKK+WckSA+IGbDuTsgIzU3MTEKK+WckiA+IHl1w6FuOyAjNTcxMgor5ZyTID4geXXDoW47ICM1NzEzCivlnJQgPiDDqDsgIzU3MTQKK+WclSA+IHTDuicgJ3NoxasnICdndcSDbjsgIzU3MTUKK+WcliA+IHTDujsgIzU3MTYKK+WclyA+IHTDujsgIzU3MTcKK+WcmCA+IHR1w6FuOyAjNTcxOAor5ZyZID4gbMecZTsgIzU3MTkKK+WcmiA+IGjDuWk7ICM1NzFBCivlnJsgPiB5w6w7ICM1NzFCCivlnJwgPiB5dcOhbjsgIzU3MUMKK+WcnSA+IGx1w6FuOyAjNTcxRAor5ZyeID4gbHXDoW47ICM1NzFFCivlnJ8gPiB0xa07ICM1NzFGCivlnKAgPiB5w6A7ICM1NzIwCivlnKEgPiB0xa07ICM1NzIxCivlnKIgPiB0xKtuZzsgIzU3MjIKK+WcoyA+IHNow6huZzsgIzU3MjMKK+WcpCA+IHDFrTsgIzU3MjQKK+WcpSA+IGzDuTsgIzU3MjUKK+WcpyA+IHnEgTsgIzU3MjcKK+WcqCA+IHrDoGk7ICM1NzI4CivlnKkgPiB3w6lpOyAjNTcyOQor5ZyqID4gZ8STOyAjNTcyQQor5ZyrID4gecO5OyAjNTcyQgor5ZysID4gd8WrOyAjNTcyQwor5ZytID4gZ8WraTsgIzU3MkQKK+WcriA+IHDErTsgIzU3MkUKK+WcryA+IHnDrTsgIzU3MkYKK+WcsCA+IGTDrDsgIzU3MzAKK+WcsSA+IHFpxIFuOyAjNTczMQor5ZyyID4gcWnEgW47ICM1NzMyCivlnLMgPiB6aMOobjsgIzU3MzMKK+WctCA+IHpow7pvOyAjNTczNAor5Zy1ID4gZMOgbmc7ICM1NzM1CivlnLYgPiBxacOgOyAjNTczNgor5Zy5ID4ga3XDoG5nOyAjNTczOQor5Zy6ID4gY2jDoW5nOyAjNTczQQor5Zy7ID4gccOtOyAjNTczQgor5Zy8ID4gbmnDqDsgIzU3M0MKK+WcvSA+IG3DsjsgIzU3M0QKK+WcviA+IGrDrTsgIzU3M0UKK+WcvyA+IGppw6E7ICM1NzNGCivlnYAgPiB6aMStOyAjNTc0MAor5Z2BID4gemjErTsgIzU3NDEKK+WdgiA+IGLEg247ICM1NzQyCivlnYMgPiB4xatuOyAjNTc0Mwor5Z2EID4gdMOzdTsgIzU3NDQKK+WdhSA+IHHErW47ICM1NzQ1CivlnYYgPiBmw6luOyAjNTc0Ngor5Z2HID4gasWrbjsgIzU3NDcKK+WdiCA+IGvEk25nOyAjNTc0OAor5Z2JID4gdMO6bjsgIzU3NDkKK+WdiiA+IGbEgW5nOyAjNTc0QQor5Z2LID4gZsOobjsgIzU3NEIKK+WdjCA+IGLDqG47ICM1NzRDCivlnY0gPiB0xIFuOyAjNTc0RAor5Z2OID4ga8SDbjsgIzU3NEUKK+WdjyA+IHDEqzsgIzU3NEYKK+WdkCA+IHrDuW87ICM1NzUwCivlnZEgPiBrxJNuZzsgIzU3NTEKK+WdkiA+IGLDrDsgIzU3NTIKK+WdkyA+IHjDrW5nOyAjNTc1Mwor5Z2UID4gZMOsOyAjNTc1NAor5Z2VID4gasSrbmc7ICM1NzU1CivlnZYgPiBqw6w7ICM1NzU2CivlnZcgPiBrdcOgaTsgIzU3NTcKK+WdmCA+IGTErTsgIzU3NTgKK+WdmSA+IGrEq25nOyAjNTc1OQor5Z2aID4gamnEgW47ICM1NzVBCivlnZsgPiB0w6FuOyAjNTc1Qgor5Z2cID4gbMOsOyAjNTc1Qwor5Z2dID4gYsOgOyAjNTc1RAor5Z2eID4gd8O5OyAjNTc1RQor5Z2fID4gZsOpbjsgIzU3NUYKK+WdoCA+IHpow7lpOyAjNTc2MAor5Z2hID4gcMWNOyAjNTc2MQor5Z2iID4gcMSDbjsgIzU3NjIKK+WdoyA+IHTEgW5nOyAjNTc2Mwor5Z2kID4ga8WrbjsgIzU3NjQKK+WdpSA+IHHFqzsgIzU3NjUKK+WdpiA+IHTEg247ICM1NzY2CivlnacgPiB6aMSrOyAjNTc2Nwor5Z2oID4gdMO6bzsgIzU3NjgKK+WdqSA+IGfEgW47ICM1NzY5CivlnaogPiBww61uZzsgIzU3NkEKK+WdqyA+IGRpw6BuOyAjNTc2Qgor5Z2sID4gZ3XDoDsgIzU3NkMKK+WdrSA+IG7DrTsgIzU3NkQKK+WdriA+IHTDoWk7ICM1NzZFCivlna8gPiBwxKs7ICM1NzZGCivlnbAgPiBqxKtvbmc7ICM1NzcwCivlnbEgPiB5xINuZzsgIzU3NzEKK+WdsiA+IGbDszsgIzU3NzIKK+WdsyA+IMOgbzsgIzU3NzMKK+WdtCA+IGzDrHU7ICM1Nzc0CivlnbUgPiBxxKt1OyAjNTc3NQor5Z22ID4gbcO5OyAjNTc3Ngor5Z23ID4ga8SVOyAjNTc3Nwor5Z24ID4gZ8OydTsgIzU3NzgKK+WduSA+IHh1w6g7ICM1Nzc5CivlnbogPiBiw6E7ICM1NzdBCivlnbsgPiBjaMOtOyAjNTc3Qgor5Z28ID4gY2jDqDsgIzU3N0MKK+WdvSA+IGzDrW5nOyAjNTc3RAor5Z2+ID4gemjDuTsgIzU3N0UKK+WdvyA+IGbDuTsgIzU3N0YKK+WegCA+IGjFqzsgIzU3ODAKK+WegSA+IHpow6w7ICM1NzgxCivlnoIgPiBjaMO6aTsgIzU3ODIKK+WegyA+IGzEgTsgIzU3ODMKK+WehCA+IGzFj25nOyAjNTc4NAor5Z6FID4gbMWPbmc7ICM1Nzg1CivlnoYgPiBsw7o7ICM1Nzg2CivlnocgPiDDoG87ICM1Nzg3CivlnokgPiBww6FvOyAjNTc4OQor5Z6LID4geMOtbmc7ICM1NzhCCivlnowgPiBkw7JuZzsgIzU3OEMKK+WejSA+IGrDrDsgIzU3OEQKK+WejiA+IGvDqDsgIzU3OEUKK+WejyA+IGzDuTsgIzU3OEYKK+WekCA+IGPDrTsgIzU3OTAKK+WekSA+IGNoxK07ICM1NzkxCivlnpIgPiBsxJVpOyAjNTc5Mgor5Z6TID4gZ8SBaTsgIzU3OTMKK+WelCA+IHnEq247ICM1Nzk0CivlnpUgPiBow7J1OyAjNTc5NQor5Z6WID4gZMWraTsgIzU3OTYKK+WelyA+IHpow6BvOyAjNTc5Nwor5Z6YID4gZsO6OyAjNTc5OAor5Z6ZID4gZ3XEgW5nOyAjNTc5OQor5Z6aID4gecOhbzsgIzU3OUEKK+WemyA+IGTFrW87ICM1NzlCCivlnpwgPiBkxa1vOyAjNTc5Qwor5Z6dID4gZ8WtaTsgIzU3OUQKK+WeniA+IGNow6E7ICM1NzlFCivlnp8gPiB5w6FuZzsgIzU3OUYKK+WeoCA+IHnDrW47ICM1N0EwCivlnqEgPiBmw6E7ICM1N0ExCivlnqIgPiBnw7J1OyAjNTdBMgor5Z6jID4geXXDoW47ICM1N0EzCivlnqQgPiBkacOpOyAjNTdBNAor5Z6lID4geGnDqTsgIzU3QTUKK+WepiA+IGvElW47ICM1N0E2CivlnqcgPiBqxKtvbmc7ICM1N0E3CivlnqggPiBzaMWPdTsgIzU3QTgKK+WeqSA+IMOoOyAjNTdBOQor5Z6rID4gZGnDoG47ICM1N0FCCivlnqwgPiBow7NuZzsgIzU3QUMKK+WerSA+IHfDuTsgIzU3QUQKK+WeriA+IGt1xIM7ICM1N0FFCivlnrEgPiBkw6BuZzsgIzU3QjEKK+WesiA+IGvEg2k7ICM1N0IyCivlnrQgPiBuxINvOyAjNTdCNAor5Z61ID4gxINuOyAjNTdCNQor5Z62ID4geMSrbmc7ICM1N0I2CivlnrcgPiB4acOgbjsgIzU3QjcKK+WeuCA+IGh1w6BuOyAjNTdCOAor5Z65ID4gYsSBbmc7ICM1N0I5CivlnrogPiBwxJNpOyAjNTdCQQor5Z67ID4gYsOgOyAjNTdCQgor5Z68ID4gecOsOyAjNTdCQwor5Z69ID4gecOsbjsgIzU3QkQKK+WeviA+IGjDoG47ICM1N0JFCivlnr8gPiB4w7k7ICM1N0JGCivln4AgPiBjaMO6aTsgIzU3QzAKK+WfgSA+IGPDqW47ICM1N0MxCivln4IgPiBnxJVuZzsgIzU3QzIKK+WfgyA+IMSBaTsgIzU3QzMKK+WfhCA+IHDDqW5nOyAjNTdDNAor5Z+FID4gZsOhbmc7ICM1N0M1Civln4YgPiBxdcOoOyAjNTdDNgor5Z+HID4gecWPbmc7ICM1N0M3Civln4ggPiB4w7luOyAjNTdDOAor5Z+JID4gamnDoTsgIzU3QzkKK+WfiiA+IGTDrDsgIzU3Q0EKK+WfiyA+IG3DoWk7ICM1N0NCCivln4wgPiBsw6BuZzsgIzU3Q0MKK+WfjSA+IHh1w6BuOyAjNTdDRAor5Z+OID4gY2jDqW5nOyAjNTdDRQor5Z+PID4gecOhbjsgIzU3Q0YKK+WfkCA+IGrEq247ICM1N0QwCivln5EgPiB6aMOpOyAjNTdEMQor5Z+SID4gbMOoaTsgIzU3RDIKK+WfkyA+IGxpw6g7ICM1N0QzCivln5QgPiBiw7k7ICM1N0Q0Civln5UgPiBjaMOpbmc7ICM1N0Q1Civln5cgPiBiw7k7ICM1N0Q3Civln5ggPiBzaMOtOyAjNTdEOAor5Z+ZID4geMWrbjsgIzU3RDkKK+WfmiA+IGfFq287ICM1N0RBCivln5sgPiBqxKtvbmc7ICM1N0RCCivln5wgPiB5xJU7ICM1N0RDCivln50gPiBuacOgbjsgIzU3REQKK+WfniA+IGTErTsgIzU3REUKK+WfnyA+IHnDuTsgIzU3REYKK+WfoCA+IGLDuTsgIzU3RTAKK+WfoSA+IHnDoDsgIzU3RTEKK+WfoiA+IGp1xINuOyAjNTdFMgor5Z+jID4gc8O5aTsgIzU3RTMKK+WfpCA+IHDDrTsgIzU3RTQKK+WfpSA+IGNoxJNuZzsgIzU3RTUKK+WfpiA+IHfEg247ICM1N0U2Civln6cgPiBqw7k7ICM1N0U3Civln6ggPiBsxa1uOyAjNTdFOAor5Z+pID4gemjEk25nOyAjNTdFOQor5Z+qID4ga8WNbmc7ICM1N0VBCivln6sgPiBjaMWPbmc7ICM1N0VCCivln6wgPiBkxY1uZzsgIzU3RUMKK+WfrSA+IGTDoGk7ICM1N0VECivln64gPiB0w6BuOyAjNTdFRQor5Z+vID4gxINuOyAjNTdFRgor5Z+wID4gY8OgaTsgIzU3RjAKK+WfsSA+IHNow7o7ICM1N0YxCivln7IgPiBixJVuZzsgIzU3RjIKK+WfsyA+IGvEg247ICM1N0YzCivln7QgPiB6aMOtOyAjNTdGNAor5Z+1ID4gZMWtbzsgIzU3RjUKK+WftiA+IHnDrDsgIzU3RjYKK+WftyA+IHpow607ICM1N0Y3Civln7ggPiB5w6w7ICM1N0Y4Civln7kgPiBww6lpOyAjNTdGOQor5Z+6ID4gasSrOyAjNTdGQQor5Z+7ID4gemjFrW47ICM1N0ZCCivln7wgPiBxw607ICM1N0ZDCivln70gPiBzw6BvOyAjNTdGRAor5Z++ID4gasO5OyAjNTdGRQor5Z+/ID4gbsOtOyAjNTdGRgor5aCAID4ga8WrOyAjNTgwMAor5aCBID4ga8OoOyAjNTgwMQor5aCCID4gdMOhbmc7ICM1ODAyCivloIMgPiBrxatuOyAjNTgwMwor5aCEID4gbsOsOyAjNTgwNAor5aCFID4gamnEgW47ICM1ODA1CivloIYgPiBkxatpOyAjNTgwNgor5aCHID4gasStbjsgIzU4MDcKK+WgiCA+IGfEgW5nOyAjNTgwOAor5aCJID4gecO5OyAjNTgwOQor5aCKID4gw6g7ICM1ODBBCivloIsgPiBww6luZzsgIzU4MEIKK+WgjCA+IGfDuTsgIzU4MEMKK+WgjSA+IHTDuTsgIzU4MEQKK+WgjiA+IGzDqG5nOyAjNTgwRQor5aCQID4gecOhOyAjNTgxMAor5aCRID4gcWnDoG47ICM1ODExCivloJMgPiDDoG47ICM1ODEzCivloJUgPiBkw7lvOyAjNTgxNQor5aCWID4gbsSDbzsgIzU4MTYKK+WglyA+IHTFqzsgIzU4MTcKK+WgmCA+IGNow6luZzsgIzU4MTgKK+WgmSA+IHnEq247ICM1ODE5CivloJogPiBow7puOyAjNTgxQQor5aCbID4gYsOsOyAjNTgxQgor5aCcID4gbGnDoG47ICM1ODFDCivloJ0gPiBnxatvOyAjNTgxRAor5aCeID4gZGnDqTsgIzU4MUUKK+WgnyA+IHpodcOgbjsgIzU4MUYKK+WgoCA+IGjDsnU7ICM1ODIwCivloKEgPiBixINvOyAjNTgyMQor5aCiID4gYsSDbzsgIzU4MjIKK+WgoyA+IHnDujsgIzU4MjMKK+WgpCA+IGTEqzsgIzU4MjQKK+WgpSA+IG3DoW87ICM1ODI1CivloKYgPiBqacSTOyAjNTgyNgor5aCnID4gcnXDoW47ICM1ODI3CivloKggPiDDqDsgIzU4MjgKK+WgqSA+IGfDqG5nOyAjNTgyOQor5aCqID4ga8SBbjsgIzU4MkEKK+WgqyA+IHrFjW5nOyAjNTgyQgor5aCsID4gecO6OyAjNTgyQwor5aCtID4gaHXDoW5nOyAjNTgyRAor5aCuID4gw6g7ICM1ODJFCivloK8gPiB5w6FvOyAjNTgyRgor5aCwID4gecOgbjsgIzU4MzAKK+WgsSA+IGLDoG87ICM1ODMxCivloLIgPiBqw607ICM1ODMyCivloLMgPiBtw6lpOyAjNTgzMwor5aC0ID4gY2jDoW5nOyAjNTgzNAor5aC1ID4gZMWtOyAjNTgzNQor5aC2ID4gdMO6bzsgIzU4MzYKK+WgtyA+IHnDrG47ICM1ODM3CivloLggPiBmw6luZzsgIzU4MzgKK+WguSA+IHpow7JuZzsgIzU4MzkKK+WguiA+IGppw6g7ICM1ODNBCivloLsgPiB6aMSTbjsgIzU4M0IKK+WgvCA+IGbEk25nOyAjNTgzQwor5aC9ID4gZ8SBbmc7ICM1ODNECivloL4gPiBjaHXEg247ICM1ODNFCivloL8gPiBqacSDbjsgIzU4M0YKK+WhgiA+IHhpw6BuZzsgIzU4NDIKK+WhgyA+IGh1xIFuZzsgIzU4NDMKK+WhhCA+IGzDqW5nOyAjNTg0NAor5aGFID4gZHXDoG47ICM1ODQ1CivloYcgPiB4dcSBbjsgIzU4NDcKK+WhiCA+IGrDrDsgIzU4NDgKK+WhiSA+IGrDrTsgIzU4NDkKK+WhiiA+IGt1w6BpOyAjNTg0QQor5aGLID4gecOtbmc7ICM1ODRCCivloYwgPiB0xIE7ICM1ODRDCivloY0gPiBjaMOpbmc7ICM1ODRECivloY4gPiB5xY9uZzsgIzU4NEUKK+WhjyA+IGvEg2k7ICM1ODRGCivloZAgPiBzw7k7ICM1ODUwCivloZEgPiBzw7k7ICM1ODUxCivloZIgPiBzaMOtOyAjNTg1Mgor5aGTID4gbcOsOyAjNTg1Mwor5aGUID4gdMSDOyAjNTg1NAor5aGVID4gd8SVbmc7ICM1ODU1CivloZYgPiBjaMOpbmc7ICM1ODU2CivloZcgPiB0w7o7ICM1ODU3CivloZggPiB0w6FuZzsgIzU4NTgKK+WhmSA+IHF1w6g7ICM1ODU5CivloZogPiB6aMWPbmc7ICM1ODVBCivloZsgPiBsw6w7ICM1ODVCCivloZwgPiBww6luZzsgIzU4NUMKK+WhnSA+IGLDoG5nOyAjNTg1RAor5aGeID4gc8SBaTsgIzU4NUUKK+WhnyA+IHrDoG5nOyAjNTg1Rgor5aGgID4gZMWraTsgIzU4NjAKK+WhoSA+IHRpw6FuOyAjNTg2MQor5aGiID4gd8O5OyAjNTg2Mgor5aGjID4gY2jElW5nOyAjNTg2Mwor5aGkID4geMWrbjsgIzU4NjQKK+WhpSA+IGfDqTsgIzU4NjUKK+WhpiA+IHpow6huOyAjNTg2Ngor5aGnID4gw6BpOyAjNTg2Nwor5aGoID4gZ8WNbmc7ICM1ODY4CivloakgPiB5w6FuOyAjNTg2OQor5aGqID4ga8SDbjsgIzU4NkEKK+WhqyA+IHRpw6FuOyAjNTg2Qgor5aGsID4geXXDoW47ICM1ODZDCivloa0gPiB3xJNuOyAjNTg2RAor5aGuID4geGnDqDsgIzU4NkUKK+WhryA+IGzDrHU7ICM1ODZGCivlobEgPiBsxINuZzsgIzU4NzEKK+WhsiA+IGNow6FuZzsgIzU4NzIKK+WhsyA+IHDDqW5nOyAjNTg3Mwor5aG0ID4gYsOobmc7ICM1ODc0CivlobUgPiBjaMOpbjsgIzU4NzUKK+WhtiA+IGPDuTsgIzU4NzYKK+WhtyA+IGzFrTsgIzU4NzcKK+WhuCA+IMWPdTsgIzU4NzgKK+WhuSA+IHFpw6BuOyAjNTg3OQor5aG6ID4gbcOpaTsgIzU4N0EKK+WhuyA+IG3DsjsgIzU4N0IKK+WhvCA+IHpodcSBbjsgIzU4N0MKK+WhvSA+IHNodcSDbmc7ICM1ODdECivlob4gPiBzaMO6OyAjNTg3RQor5aG/ID4gbMWPdTsgIzU4N0YKK+WigCA+IGNow607ICM1ODgwCivlooEgPiBtw6BuOyAjNTg4MQor5aKCID4gYmnEgW87ICM1ODgyCivlooMgPiBqw6xuZzsgIzU4ODMKK+WihCA+IHHEqzsgIzU4ODQKK+WihSA+IHNow7k7ICM1ODg1CivlooYgPiBkw6w7ICM1ODg2CivloocgPiB6aMSBbmc7ICM1ODg3CivlooggPiBrw6BuOyAjNTg4OAor5aKJID4gecWNbmc7ICM1ODg5CivlooogPiBkacOgbjsgIzU4OEEKK+WiiyA+IGNoxJVuOyAjNTg4Qgor5aKMID4gemjEqzsgIzU4OEMKK+WijSA+IHjDrDsgIzU4OEQKK+WijiA+IGfFq287ICM1ODhFCivloo8gPiBxacSDbmc7ICM1ODhGCivlopAgPiBqw6xuOyAjNTg5MAor5aKRID4gZMSrOyAjNTg5MQor5aKSID4gc2jEgW5nOyAjNTg5Mgor5aKTID4gbcO5OyAjNTg5Mwor5aKUID4gY8WraTsgIzU4OTQKK+WilSA+IHnDoG47ICM1ODk1CivlopYgPiB0xIM7ICM1ODk2CivlopcgPiB6xJNuZzsgIzU4OTcKK+WimCA+IHHDrTsgIzU4OTgKK+WimSA+IHFpw6FuZzsgIzU4OTkKK+WimiA+IGxpw6FuZzsgIzU4OUEKK+WinCA+IHpow7lpOyAjNTg5Qwor5aKdID4gcWnEgW87ICM1ODlECivlop4gPiB6xJNuZzsgIzU4OUUKK+WinyA+IHjFqzsgIzU4OUYKK+WioCA+IHNow6BuOyAjNThBMAor5aKhID4gc2jDoG47ICM1OEExCivloqIgPiBiw6E7ICM1OEEyCivloqMgPiBwxas7ICM1OEEzCivloqQgPiBrdcOgaTsgIzU4QTQKK+WipSA+IGTFj25nOyAjNThBNQor5aKmID4gZsOhbjsgIzU4QTYKK+WipyA+IHF1w6g7ICM1OEE3CivloqggPiBtw7I7ICM1OEE4CivloqkgPiBkxatuOyAjNThBOQor5aKqID4gZMWrbjsgIzU4QUEKK+WiqyA+IGTFq247ICM1OEFCCivloqwgPiBkw6w7ICM1OEFDCivloq0gPiBzaMOobmc7ICM1OEFECivloq4gPiBkw7lvOyAjNThBRQor5aKvID4gZMO5bzsgIzU4QUYKK+WisCA+IHTDoW47ICM1OEIwCivlorEgPiBkw6huZzsgIzU4QjEKK+WisiA+IHfFrTsgIzU4QjIKK+WisyA+IGbDqW47ICM1OEIzCivlorQgPiBodcOhbmc7ICM1OEI0CivlorUgPiB0w6FuOyAjNThCNQor5aK2ID4gZMSBOyAjNThCNgor5aK3ID4gecOoOyAjNThCNwor5aK6ID4gecO5OyAjNThCQQor5aK7ID4gcWnDoW5nOyAjNThCQgor5aK8ID4gasSrOyAjNThCQwor5aK9ID4gcWnEgW87ICM1OEJECivlor4gPiBrxJVuOyAjNThCRQor5aK/ID4gecOsOyAjNThCRgor5aOAID4gcMOtOyAjNThDMAor5aOBID4gYsOsOyAjNThDMQor5aOCID4gZGnDoG47ICM1OEMyCivlo4MgPiBqacSBbmc7ICM1OEMzCivlo4QgPiB5xJU7ICM1OEM0Civlo4UgPiB5xY1uZzsgIzU4QzUKK+WjhiA+IGLDszsgIzU4QzYKK+WjhyA+IHTDoW47ICM1OEM3Civlo4ggPiBsxINuOyAjNThDOAor5aOJID4gasO5OyAjNThDOQor5aOKID4gaHXDoGk7ICM1OENBCivlo4sgPiBkw6BuZzsgIzU4Q0IKK+WjjCA+IHLEg25nOyAjNThDQwor5aONID4gcWnDoG47ICM1OENECivlo44gPiB4xatuOyAjNThDRQor5aOPID4gbMOgbjsgIzU4Q0YKK+WjkCA+IHjErTsgIzU4RDAKK+WjkSA+IGjDqDsgIzU4RDEKK+WjkiA+IMOgaTsgIzU4RDIKK+WjkyA+IHnEgTsgIzU4RDMKK+WjlCA+IGTEg287ICM1OEQ0Civlo5UgPiBow6FvOyAjNThENQor5aOWID4gcnXDoW47ICM1OEQ2Civlo5ggPiBsxJVpOyAjNThEOAor5aOZID4ga3XDoG5nOyAjNThEOQor5aOaID4gbMO6OyAjNThEQQor5aObID4gecOhbjsgIzU4REIKK+WjnCA+IHTDoW47ICM1OERDCivlo50gPiB3w6lpOyAjNThERAor5aOeID4gaHXDoGk7ICM1OERFCivlo58gPiBsxY9uZzsgIzU4REYKK+WjoCA+IGzFj25nOyAjNThFMAor5aOhID4gcsO5aTsgIzU4RTEKK+WjoiA+IGzDrDsgIzU4RTIKK+WjoyA+IGzDrW47ICM1OEUzCivlo6QgPiByxINuZzsgIzU4RTQKK+WjpiA+IHjFq247ICM1OEU2Civlo6cgPiB5w6FuOyAjNThFNwor5aOoID4gbMOpaTsgIzU4RTgKK+WjqSA+IGLDoDsgIzU4RTkKK+WjqyA+IHNow6w7ICM1OEVCCivlo6wgPiByw6luOyAjNThFQwor5aOuID4gemh1w6BuZzsgIzU4RUUKK+WjryA+IHpodcOgbmc7ICM1OEVGCivlo7AgPiBzaMSTbmc7ICM1OEYwCivlo7EgPiB5xKs7ICM1OEYxCivlo7IgPiBtw6BpOyAjNThGMgor5aOzID4ga8OpOyAjNThGMwor5aO0ID4gemjFrTsgIzU4RjQKK+WjtSA+IHpodcOgbmc7ICM1OEY1Civlo7YgPiBow7o7ICM1OEY2Civlo7cgPiBow7o7ICM1OEY3Civlo7ggPiBrxa1uOyAjNThGOAor5aO5ID4gecSrOyAjNThGOQor5aO6ID4gaMO6OyAjNThGQQor5aO7ID4geMO5OyAjNThGQgor5aO8ID4ga8WtbjsgIzU4RkMKK+WjvSA+IHNow7J1OyAjNThGRAor5aO+ID4gbcSDbmc7ICM1OEZFCivlo78gPiB6xa1uOyAjNThGRgor5aSAID4gc2jDsnU7ICM1OTAwCivlpIEgPiB5xKs7ICM1OTAxCivlpIIgPiB6aMStOyAjNTkwMgor5aSDID4gZ8WrOyAjNTkwMwor5aSEID4gY2jDuTsgIzU5MDQKK+WkhSA+IGppw6BuZzsgIzU5MDUKK+WkhiA+IGbEk25nOyAjNTkwNgor5aSHID4gYsOoaTsgIzU5MDcKK+WkiSA+IGJpw6BuOyAjNTkwOQor5aSKID4gc8WraTsgIzU5MEEKK+WkiyA+IHHFq247ICM1OTBCCivlpIwgPiBsw61uZzsgIzU5MEMKK+WkjSA+IGbDuTsgIzU5MEQKK+WkjiA+IHrDuW87ICM1OTBFCivlpI8gPiB4acOgOyAjNTkwRgor5aSQID4geMOsb25nOyAjNTkxMAor5aSSID4gbsOhbzsgIzU5MTIKK+WkkyA+IHhpw6A7ICM1OTEzCivlpJQgPiBrw7ppOyAjNTkxNAor5aSVID4geMSrOyAjNTkxNQor5aSWID4gd8OgaTsgIzU5MTYKK+WklyA+IHl1w6BuOyAjNTkxNwor5aSYID4gbcSDbzsgIzU5MTgKK+WkmSA+IHPDuTsgIzU5MTkKK+WkmiA+IGTFq287ICM1OTFBCivlpJsgPiBkxatvOyAjNTkxQgor5aScID4gecOoOyAjNTkxQwor5aSdID4gccOtbmc7ICM1OTFECivlpJ8gPiBnw7J1OyAjNTkxRgor5aSgID4gZ8OydTsgIzU5MjAKK+WkoSA+IHHDrDsgIzU5MjEKK+WkoiA+IG3DqG5nOyAjNTkyMgor5aSjID4gbcOobmc7ICM1OTIzCivlpKQgPiB5w61uOyAjNTkyNAor5aSlID4gaMWtbzsgIzU5MjUKK+WkpiA+IGNow6huOyAjNTkyNgor5aSnID4gZMOgOyAjNTkyNwor5aSoID4gesOoOyAjNTkyOAor5aSpID4gdGnEgW47ICM1OTI5CivlpKogPiB0w6BpOyAjNTkyQQor5aSrID4gZsWrOyAjNTkyQgor5aSsID4gZ3XDoGk7ICM1OTJDCivlpK0gPiB5xINvOyAjNTkyRAor5aSuID4gecSBbmc7ICM1OTJFCivlpK8gPiBoxIFuZzsgIzU5MkYKK+WksCA+IGfEg287ICM1OTMwCivlpLEgPiBzaMSrOyAjNTkzMQor5aSyID4gYsSVbjsgIzU5MzIKK+WksyA+IHTDoGk7ICM1OTMzCivlpLQgPiB0w7N1OyAjNTkzNAor5aS1ID4gecSDbjsgIzU5MzUKK+WktiA+IGLErTsgIzU5MzYKK+WktyA+IHnDrTsgIzU5MzcKK+WkuCA+IGt1xIE7ICM1OTM4CivlpLkgPiBqacSBOyAjNTkzOQor5aS6ID4gZMO6bzsgIzU5M0EKK+WkvCA+IGt1xINuZzsgIzU5M0MKK+WkvSA+IHnDuW47ICM1OTNECivlpL4gPiBqacSBOyAjNTkzRQor5aS/ID4gcMSBOyAjNTkzRgor5aWAID4gxJNuOyAjNTk0MAor5aWBID4gbGnDoW47ICM1OTQxCivlpYIgPiBodcOgbjsgIzU5NDIKK+WlgyA+IGTDrDsgIzU5NDMKK+WlhCA+IHnEg247ICM1OTQ0CivlpYUgPiBww6BvOyAjNTk0NQor5aWGID4gcXXEg247ICM1OTQ2CivlpYcgPiBxw607ICM1OTQ3CivlpYggPiBuw6BpOyAjNTk0OAor5aWJID4gZsOobmc7ICM1OTQ5CivlpYogPiB4acOpOyAjNTk0QQor5aWLID4gZsOobjsgIzU5NEIKK+WljCA+IGRpxINuOyAjNTk0Qwor5aWOID4ga8O6aTsgIzU5NEUKK+WljyA+IHrDsnU7ICM1OTRGCivlpZAgPiBodcOgbjsgIzU5NTAKK+WlkSA+IHHDrDsgIzU5NTEKK+WlkiA+IGvEgWk7ICM1OTUyCivlpZMgPiB6aMOgOyAjNTk1Mwor5aWUID4gYsSTbjsgIzU5NTQKK+WllSA+IHnDrDsgIzU5NTUKK+WlliA+IGppxINuZzsgIzU5NTYKK+WllyA+IHTDoG87ICM1OTU3CivlpZggPiB6w6BuZzsgIzU5NTgKK+WlmSA+IGLElW47ICM1OTU5CivlpZogPiB4xKs7ICM1OTVBCivlpZsgPiB4acSDbmc7ICM1OTVCCivlpZwgPiBmxJVpOyAjNTk1Qwor5aWdID4gZGnEgW87ICM1OTVECivlpZ4gPiB4w7luOyAjNTk1RQor5aWfID4ga8STbmc7ICM1OTVGCivlpaAgPiBkacOgbjsgIzU5NjAKK+WloSA+IMOgbzsgIzU5NjEKK+WloiA+IHNoxJM7ICM1OTYyCivlpaMgPiB3xJVuZzsgIzU5NjMKK+WlpCA+IHDEg247ICM1OTY0CivlpaUgPiDDoG87ICM1OTY1CivlpaYgPiB3w7k7ICM1OTY2CivlpacgPiDDoG87ICM1OTY3CivlpaggPiBqacSDbmc7ICM1OTY4CivlpakgPiBsacOhbjsgIzU5NjkKK+WlqiA+IGTDum87ICM1OTZBCivlpasgPiB5xatuOyAjNTk2Qgor5aWsID4gamnEg25nOyAjNTk2Qwor5aWtID4gc2jDrDsgIzU5NkQKK+WlriA+IGbDqG47ICM1OTZFCivlpa8gPiBow7lvOyAjNTk2Rgor5aWwID4gYsOsOyAjNTk3MAor5aWxID4gbGnDoW47ICM1OTcxCivlpbIgPiBkxa1vOyAjNTk3Mgor5aWzID4gbseaOyAjNTk3Mwor5aW0ID4gbsO6OyAjNTk3NAor5aW1ID4gZMSrbmc7ICM1OTc1CivlpbYgPiBuxINpOyAjNTk3Ngor5aW3ID4gcWnEgW47ICM1OTc3CivlpbggPiBqacSBbjsgIzU5NzgKK+WluSA+IHTEgTsgIzU5NzkKK+WluiA+IGrErXU7ICM1OTdBCivlpbsgPiBuw6FuOyAjNTk3Qgor5aW8ID4gY2jDoDsgIzU5N0MKK+WlvSA+IGjEg287ICM1OTdECivlpb4gPiB4acSBbjsgIzU5N0UKK+WlvyA+IGbDoG47ICM1OTdGCivlpoAgPiBqxK07ICM1OTgwCivlpoEgPiBzaMO5bzsgIzU5ODEKK+WmgiA+IHLDujsgIzU5ODIKK+WmgyA+IGbEk2k7ICM1OTgzCivlpoQgPiB3w6BuZzsgIzU5ODQKK+WmhSA+IGjDs25nOyAjNTk4NQor5aaGID4gemh1xIFuZzsgIzU5ODYKK+WmhyA+IGbDuTsgIzU5ODcKK+WmiCA+IG3EgTsgIzU5ODgKK+WmiSA+IGTEgW47ICM1OTg5CivlpoogPiByw6huOyAjNTk4QQor5aaLID4gZsWrOyAjNTk4Qgor5aaMID4gasOsbmc7ICM1OThDCivlpo0gPiB5w6FuOyAjNTk4RAor5aaOID4geGnDqDsgIzU5OEUKK+WmjyA+IHfDqG47ICM1OThGCivlppAgPiB6aMWNbmc7ICM1OTkwCivlppEgPiBwxIE7ICM1OTkxCivlppIgPiBkw7k7ICM1OTkyCivlppMgPiBqw6w7ICM1OTkzCivlppQgPiBrxJNuZzsgIzU5OTQKK+WmlSA+IHpow7JuZzsgIzU5OTUKK+WmliA+IHnEgW87ICM1OTk2CivlppcgPiBqw6xuOyAjNTk5Nwor5aaYID4gecO6bjsgIzU5OTgKK+WmmSA+IG1pw6BvOyAjNTk5OQor5aaaID4gcMSTaTsgIzU5OUEKK+WmnCA+IHl1w6g7ICM1OTlDCivlpp0gPiB6aHXEgW5nOyAjNTk5RAor5aaeID4gbsSrdTsgIzU5OUUKK+WmnyA+IHnDoG47ICM1OTlGCivlpqAgPiBuw6A7ICM1OUEwCivlpqEgPiB4xKtuOyAjNTlBMQor5aaiID4gZsOpbjsgIzU5QTIKK+WmoyA+IGLErTsgIzU5QTMKK+WmpCA+IHnDujsgIzU5QTQKK+WmpSA+IHTFrW87ICM1OUE1CivlpqYgPiBmxJNuZzsgIzU5QTYKK+WmpyA+IHl1w6FuOyAjNTlBNwor5aaoID4gZsOhbmc7ICM1OUE4CivlpqkgPiB3xa07ICM1OUE5CivlpqogPiB5w7k7ICM1OUFBCivlpqsgPiBnxatpOyAjNTlBQgor5aasID4gZMO5OyAjNTlBQwor5aatID4gYsOhOyAjNTlBRAor5aauID4gbsSrOyAjNTlBRQor5aavID4gemjDs3U7ICM1OUFGCivlprAgPiB6aMO6bzsgIzU5QjAKK+WmsSA+IHpoxIFvOyAjNTlCMQor5aayID4gZMOhOyAjNTlCMgor5aazID4gbsSDaTsgIzU5QjMKK+WmtCA+IHl1xINuOyAjNTlCNAor5aa1ID4gdMWPdTsgIzU5QjUKK+WmtiA+IHh1w6FuOyAjNTlCNgor5aa3ID4gemjDrTsgIzU5QjcKK+WmuCA+IMSTOyAjNTlCOAor5aa5ID4gbcOoaTsgIzU5QjkKK+WmuiA+IG3DsjsgIzU5QkEKK+WmuyA+IHHEqzsgIzU5QkIKK+WmvCA+IGLDrDsgIzU5QkMKK+WmvSA+IHNoxJNuOyAjNTlCRAor5aa+ID4gcWnDqDsgIzU5QkUKK+WmvyA+IMSTOyAjNTlCRgor5aeAID4gaMOpOyAjNTlDMAor5aeBID4geMWtOyAjNTlDMQor5aeCID4gZsOhOyAjNTlDMgor5aeDID4gemjEk25nOyAjNTlDMwor5aeEID4gbcOtbjsgIzU5QzQKK+WnhSA+IGLDoG47ICM1OUM1Civlp4YgPiBtxa07ICM1OUM2Civlp4cgPiBmxas7ICM1OUM3Civlp4ggPiBsw61uZzsgIzU5QzgKK+WniSA+IHrErTsgIzU5QzkKK+WniiA+IHrErTsgIzU5Q0EKK+WniyA+IHNoxK07ICM1OUNCCivlp4wgPiByxINuOyAjNTlDQwor5aeNID4gc2jEgW47ICM1OUNECivlp44gPiB5xIFuZzsgIzU5Q0UKK+WnjyA+IG3DoW47ICM1OUNGCivlp5AgPiBqacSVOyAjNTlEMAor5aeRID4gZ8WrOyAjNTlEMQor5aeSID4gc8OsOyAjNTlEMgor5aeTID4geMOsbmc7ICM1OUQzCivlp5QgPiB3xJVpOyAjNTlENAor5aeVID4gesSrOyAjNTlENQor5aeWID4gasO5OyAjNTlENgor5aeXID4gc2jEgW47ICM1OUQ3Civlp5ggPiBwxKtuOyAjNTlEOAor5aeZID4gcsOobjsgIzU5RDkKK+WnmiA+IHnDoW87ICM1OURBCivlp5sgPiB0xY9uZzsgIzU5REIKK+WnnCA+IGppxIFuZzsgIzU5REMKK+WnnSA+IHNoxas7ICM1OURECivlp54gPiBqw607ICM1OURFCivlp58gPiBnxIFpOyAjNTlERgor5aegID4gc2jDoG5nOyAjNTlFMAor5aehID4ga8O5bzsgIzU5RTEKK+WnoiA+IGp1xIFuOyAjNTlFMgor5aejID4gamnEgW87ICM1OUUzCivlp6QgPiBnw7J1OyAjNTlFNAor5aelID4gbcWtOyAjNTlFNQor5aemID4gamnEgW47ICM1OUU2Civlp6cgPiBqacSBbjsgIzU5RTcKK+WnqCA+IHnDrTsgIzU5RTgKK+WnqSA+IG5pw6BuOyAjNTlFOQor5aeqID4gemjDrTsgIzU5RUEKK+WnqyA+IGrEqzsgIzU5RUIKK+WnrCA+IGrEqzsgIzU5RUMKK+WnrSA+IHhpw6BuOyAjNTlFRAor5aeuID4gaMOpbmc7ICM1OUVFCivlp68gPiBndcSBbmc7ICM1OUVGCivlp7AgPiBqxatuOyAjNTlGMAor5aexID4ga3XEgTsgIzU5RjEKK+WnsiA+IHnDoG47ICM1OUYyCivlp7MgPiBtxK1uZzsgIzU5RjMKK+WntCA+IGxpw6g7ICM1OUY0Civlp7UgPiBww6hpOyAjNTlGNQor5ae2ID4gecSDbjsgIzU5RjYKK+WntyA+IHnDsnU7ICM1OUY3Civlp7ggPiB5w6FuOyAjNTlGOAor5ae5ID4gY2jDoDsgIzU5RjkKK+WnuiA+IHNoxJNuOyAjNTlGQQor5ae7ID4gecSrbjsgIzU5RkIKK+WnvCA+IGNoxK07ICM1OUZDCivlp70gPiBnxa1pOyAjNTlGRAor5ae+ID4gcXXEgW47ICM1OUZFCivlp78gPiB6xKs7ICM1OUZGCivlqIAgPiBzxY1uZzsgIzVBMDAKK+WogSA+IHfEk2k7ICM1QTAxCivlqIIgPiBow7NuZzsgIzVBMDIKK+WogyA+IHfDoTsgIzVBMDMKK+WohCA+IGzDs3U7ICM1QTA0CivlqIUgPiB5w6A7ICM1QTA1CivlqIYgPiByxINvOyAjNUEwNgor5aiHID4gamnEgW87ICM1QTA3CivlqIggPiBsdcOhbjsgIzVBMDgKK+WoiSA+IHDEq25nOyAjNUEwOQor5aiKID4geGnDoG47ICM1QTBBCivlqIsgPiBzaMOgbzsgIzVBMEIKK+WojCA+IGzErTsgIzVBMEMKK+WojSA+IGNow6luZzsgIzVBMEQKK+WojiA+IHhpw6BvOyAjNUEwRQor5aiPID4gbcOhbmc7ICM1QTBGCivlqJAgPiBmdTsgIzVBMTAKK+WokSA+IHPFq287ICM1QTExCivlqJIgPiB3xa07ICM1QTEyCivlqJMgPiB3xJVpOyAjNUExMwor5aiUID4ga8OoOyAjNUExNAor5aiVID4gbMOgaTsgIzVBMTUKK+WoliA+IGNow7lvOyAjNUExNgor5aiXID4gZMOsbmc7ICM1QTE3CivlqJggPiBuacOhbmc7ICM1QTE4CivlqJkgPiB4w61uZzsgIzVBMTkKK+WomiA+IG7DoW47ICM1QTFBCivlqJsgPiB5w7o7ICM1QTFCCivlqJwgPiBuw7pvOyAjNUExQwor5aidID4gcMSTaTsgIzVBMUQKK+WoniA+IG7ElWk7ICM1QTFFCivlqJ8gPiBqdcSBbjsgIzVBMUYKK+WooCA+IHNoxJNuOyAjNUEyMAor5aihID4gemjDrDsgIzVBMjEKK+WooiA+IGjDoW47ICM1QTIyCivlqKMgPiBkw6w7ICM1QTIzCivlqKQgPiB6aHXEgW5nOyAjNUEyNAor5ailID4gw6k7ICM1QTI1CivlqKYgPiBww61uOyAjNUEyNgor5ainID4gdMO5aTsgIzVBMjcKK+WoqCA+IGjDoG47ICM1QTI4CivlqKkgPiBtacSDbjsgIzVBMjkKK+WoqiA+IHfDujsgIzVBMkEKK+WoqyA+IHnDoW47ICM1QTJCCivlqKwgPiB3xa07ICM1QTJDCivlqK0gPiB4xKs7ICM1QTJECivlqK4gPiB5w6FuOyAjNUEyRQor5aivID4gecO6OyAjNUEyRgor5aiwID4gc8OsOyAjNUEzMAor5aixID4gecO6OyAjNUEzMQor5aiyID4gd8SBOyAjNUEzMgor5ai0ID4geGnDoW47ICM1QTM0CivlqLUgPiBqxas7ICM1QTM1CivlqLYgPiBxxa07ICM1QTM2CivlqLcgPiBzaMO5aTsgIzVBMzcKK+WouCA+IHHEqzsgIzVBMzgKK+WouSA+IHhpw6FuOyAjNUEzOQor5ai6ID4gemjFq2k7ICM1QTNBCivlqLsgPiBkxY1uZzsgIzVBM0IKK+WovCA+IGNoxIFuZzsgIzVBM0MKK+WovSA+IGzDuTsgIzVBM0QKK+WoviA+IMSDaTsgIzVBM0UKK+WovyA+IMSTOyAjNUEzRgor5amAID4gxJM7ICM1QTQwCivlqYEgPiBsw7N1OyAjNUE0MQor5amCID4gbWnDoW47ICM1QTQyCivlqYMgPiBjw7NuZzsgIzVBNDMKK+WphCA+IHDFj3U7ICM1QTQ0CivlqYUgPiBqw7o7ICM1QTQ1CivlqYYgPiBww7M7ICM1QTQ2CivlqYcgPiBjxINpOyAjNUE0Nwor5amIID4gZMOtbmc7ICM1QTQ4CivlqYkgPiB3xINuOyAjNUE0OQor5amKID4gYmnEg287ICM1QTRBCivlqYsgPiB4acSBbzsgIzVBNEIKK+WpjCA+IHNoxa07ICM1QTRDCivlqY0gPiBxxK07ICM1QTRECivlqY4gPiBoxatpOyAjNUE0RQor5amPID4gZsO5OyAjNUE0Rgor5amQID4gxJM7ICM1QTUwCivlqZEgPiB3xY87ICM1QTUxCivlqZIgPiB0w6FuOyAjNUE1Mgor5amTID4gZsSTaTsgIzVBNTMKK+WplCA+IHdlaTsgIzVBNTQKK+WplSA+IGppw6k7ICM1QTU1CivlqZYgPiB0acSBbjsgIzVBNTYKK+WplyA+IG7DrTsgIzVBNTcKK+WpmCA+IHF1w6FuOyAjNUE1OAor5amZID4gasOsbmc7ICM1QTU5CivlqZogPiBoxatuOyAjNUE1QQor5ambID4gasSrbmc7ICM1QTVCCivlqZwgPiBxacSBbjsgIzVBNUMKK+WpnSA+IGRpw6BuOyAjNUE1RAor5ameID4geMOsbmc7ICM1QTVFCivlqZ8gPiBow7k7ICM1QTVGCivlqaAgPiB3w6A7ICM1QTYwCivlqaEgPiBsw6FpOyAjNUE2MQor5amiID4gYsOsOyAjNUE2Mgor5amjID4gecSrbjsgIzVBNjMKK+WppCA+IGNoxY11OyAjNUE2NAor5amlID4gY2jDuW87ICM1QTY1CivlqaYgPiBmw7k7ICM1QTY2CivlqacgPiBqw6xuZzsgIzVBNjcKK+WpqCA+IGzDum47ICM1QTY4CivlqakgPiB5w6BuOyAjNUE2OQor5amqID4gbMOhbjsgIzVBNkEKK+WpqyA+IGvFq247ICM1QTZCCivlqawgPiB5w61uOyAjNUE2Qwor5amtID4gecOgOyAjNUE2RAor5amuID4ganU7ICM1QTZFCivlqa8gPiBsw6w7ICM1QTZGCivlqbAgPiBkacSDbjsgIzVBNzAKK+WpsSA+IHhpw6FuOyAjNUE3MQor5amzID4gaHXDoDsgIzVBNzMKK+WptCA+IHnEq25nOyAjNUE3NAor5am1ID4gY2jDoW47ICM1QTc1CivlqbYgPiBzaMSVbjsgIzVBNzYKK+WptyA+IHTDrW5nOyAjNUE3Nwor5am4ID4gZMOgbmc7ICM1QTc4CivlqbkgPiB5xINvOyAjNUE3OQor5am6ID4gd8O5OyAjNUE3QQor5am7ID4gbsOgbjsgIzVBN0IKK+WpvCA+IHLDuW87ICM1QTdDCivlqb0gPiBqacSDOyAjNUE3RAor5am+ID4gdMWNdTsgIzVBN0UKK+WpvyA+IHjDuTsgIzVBN0YKK+WqgCA+IHnDujsgIzVBODAKK+WqgSA+IHfEk2k7ICM1QTgxCivlqoIgPiB0w607ICM1QTgyCivlqoMgPiByw7N1OyAjNUE4Mwor5aqEID4gbcSVaTsgIzVBODQKK+WqhSA+IGTEgW47ICM1QTg1CivlqoYgPiBydcSDbjsgIzVBODYKK+WqhyA+IHHEq247ICM1QTg3CivlqoggPiBodWk7ICM1QTg4CivlqokgPiB3xas7ICM1QTg5CivlqoogPiBxacOhbjsgIzVBOEEKK+WqiyA+IGNoxatuOyAjNUE4Qgor5aqMID4gbcOhbzsgIzVBOEMKK+WqjSA+IGbDuTsgIzVBOEQKK+WqjiA+IGppxJU7ICM1QThFCivlqo8gPiBkdcSBbjsgIzVBOEYKK+WqkCA+IHjEqzsgIzVBOTAKK+WqkSA+IHpow7JuZzsgIzVBOTEKK+WqkiA+IG3DqWk7ICM1QTkyCivlqpMgPiBodcOhbmc7ICM1QTkzCivlqpQgPiBtacOhbjsgIzVBOTQKK+WqlSA+IMSBbjsgIzVBOTUKK+WqliA+IHnEq25nOyAjNUE5Ngor5aqXID4geHXEgW47ICM1QTk3CivlqpggPiBqaWU7ICM1QTk4CivlqpkgPiB3xJNpOyAjNUE5OQor5aqaID4gbcOoaTsgIzVBOUEKK+WqmyA+IHl1w6BuOyAjNUE5Qgor5aqcID4gemjEk247ICM1QTlDCivlqp0gPiBxxKt1OyAjNUE5RAor5aqeID4gdMOtOyAjNUE5RQor5aqfID4geGnDqDsgIzVBOUYKK+WqoCA+IHTFrW87ICM1QUEwCivlqqEgPiBsacOgbjsgIzVBQTEKK+WqoiA+IG3DoG87ICM1QUEyCivlqqMgPiByxINuOyAjNUFBMwor5aqkID4gc8SrOyAjNUFBNAor5aqlID4gcGnEgW47ICM1QUE1CivlqqYgPiB3w6hpOyAjNUFBNgor5aqnID4gd8SBOyAjNUFBNwor5aqoID4gasOsdTsgIzVBQTgKK+WqqSA+IGjDujsgIzVBQTkKK+WqqiA+IMSDbzsgIzVBQUEKK+WqrSA+IHjFqzsgIzVBQUQKK+WqriA+IHTFjXU7ICM1QUFFCivlqq8gPiBnxatpOyAjNUFBRgor5aqwID4gesWNdTsgIzVBQjAKK+WqsSA+IHnDoW87ICM1QUIxCivlqrIgPiBww6w7ICM1QUIyCivlqrMgPiB4w607ICM1QUIzCivlqrQgPiB5dcOhbjsgIzVBQjQKK+WqtSA+IHnDrG5nOyAjNUFCNQor5aq2ID4gcsOzbmc7ICM1QUI2CivlqrcgPiByw7k7ICM1QUI3CivlqrggPiBjaMSrOyAjNUFCOAor5aq5ID4gbMOtdTsgIzVBQjkKK+WquiA+IG3ElWk7ICM1QUJBCivlqrsgPiBww6FuOyAjNUFCQgor5aq8ID4gxINvOyAjNUFCQwor5aq9ID4gbcSBOyAjNUFCRAor5aq+ID4gZ8OydTsgIzVBQkUKK+WqvyA+IGvDuWk7ICM1QUJGCivlq4AgPiBxw61uOyAjNUFDMAor5auBID4gamnDoDsgIzVBQzEKK+WrgiA+IHPEg287ICM1QUMyCivlq4MgPiB6aMSTbjsgIzVBQzMKK+WrhCA+IHl1w6FuOyAjNUFDNAor5auFID4gY2jEgTsgIzVBQzUKK+WrhiA+IHnDs25nOyAjNUFDNgor5auHID4gbcOtbmc7ICM1QUM3Civlq4ggPiB5xKtuZzsgIzVBQzgKK+WriSA+IGrDrTsgIzVBQzkKK+WriiA+IHPDuTsgIzVBQ0EKK+WriyA+IG5pxINvOyAjNUFDQgor5auMID4geGnDoW47ICM1QUNDCivlq40gPiB0xIFvOyAjNUFDRAor5auOID4gcMOhbmc7ICM1QUNFCivlq48gPiBsw6FuZzsgIzVBQ0YKK+WrkCA+IG7Eg287ICM1QUQwCivlq5EgPiBiw6FvOyAjNUFEMQor5auSID4gw6BpOyAjNUFEMgor5auTID4gcMOsOyAjNUFEMwor5auUID4gcMOtbjsgIzVBRDQKK+WrlSA+IHnDrDsgIzVBRDUKK+WrliA+IHBpw6BvOyAjNUFENgor5auXID4gecO5OyAjNUFENwor5auYID4gbMOpaTsgIzVBRDgKK+WrmSA+IHh1w6FuOyAjNUFEOQor5auaID4gbcOgbjsgIzVBREEKK+WrmyA+IHnEqzsgIzVBREIKK+WrnCA+IHpoxIFuZzsgIzVBREMKK+WrnSA+IGvEgW5nOyAjNUFERAor5aueID4gecOzbmc7ICM1QURFCivlq58gPiBuw6w7ICM1QURGCivlq6AgPiBsw607ICM1QUUwCivlq6EgPiBkw607ICM1QUUxCivlq6IgPiBnxatpOyAjNUFFMgor5aujID4gecSBbjsgIzVBRTMKK+WrpCA+IGrDrG47ICM1QUU0Civlq6UgPiB6aHXEgW47ICM1QUU1Civlq6YgPiBjaMOhbmc7ICM1QUU2Civlq6cgPiBjw6g7ICM1QUU3Civlq6ggPiBoxIFuOyAjNUFFOAor5aupID4gbsOobjsgIzVBRTkKK+WrqiA+IGzDoG87ICM1QUVBCivlq6sgPiBtw7M7ICM1QUVCCivlq6wgPiB6aMSTOyAjNUFFQwor5autID4gaMO5OyAjNUFFRAor5auuID4gaMO5OyAjNUFFRQor5auvID4gw6BvOyAjNUFFRgor5auwID4gbsOobjsgIzVBRjAKK+WrsSA+IHFpw6FuZzsgIzVBRjEKK+WrsyA+IHBpw6g7ICM1QUYzCivlq7QgPiBnxas7ICM1QUY0Civlq7UgPiB3xa07ICM1QUY1Civlq7YgPiBqacOhbzsgIzVBRjYKK+WrtyA+IHTFrW87ICM1QUY3Civlq7ggPiB6aMSDbjsgIzVBRjgKK+WruSA+IG3DoW87ICM1QUY5Civlq7ogPiB4acOhbjsgIzVBRkEKK+WruyA+IHhpw6FuOyAjNUFGQgor5au8ID4gbcOyOyAjNUFGQwor5au9ID4gbGnDoW87ICM1QUZECivlq74gPiBsacOhbjsgIzVBRkUKK+WrvyA+IGh1w6A7ICM1QUZGCivlrIAgPiBnxatpOyAjNUIwMAor5ayBID4gZMSTbmc7ICM1QjAxCivlrIIgPiB6aMSrOyAjNUIwMgor5ayDID4geMWrOyAjNUIwMwor5ayEID4geWk7ICM1QjA0CivlrIUgPiBodcOhOyAjNUIwNQor5ayGID4geMSrOyAjNUIwNgor5ayHID4gaMO5aTsgIzVCMDcKK+WsiCA+IHLEg287ICM1QjA4CivlrIkgPiB4xKs7ICM1QjA5CivlrIogPiB5w6BuOyAjNUIwQQor5ayLID4gY2jDoW47ICM1QjBCCivlrIwgPiBqacSBbzsgIzVCMEMKK+WsjSA+IG3ElWk7ICM1QjBECivlrI4gPiBmw6BuOyAjNUIwRQor5ayPID4gZsSBbjsgIzVCMEYKK+WskCA+IHhpxIFuOyAjNUIxMAor5ayRID4gecOsOyAjNUIxMQor5aySID4gd8OoaTsgIzVCMTIKK+WskyA+IGppw6BvOyAjNUIxMwor5ayUID4gZsO5OyAjNUIxNAor5ayVID4gc2jDrDsgIzVCMTUKK+WsliA+IGLDrDsgIzVCMTYKK+WslyA+IHNow6BuOyAjNUIxNwor5ayYID4gc8O5aTsgIzVCMTgKK+WsmSA+IHFpw6FuZzsgIzVCMTkKK+WsmiA+IGxpxINuOyAjNUIxQQor5aybID4gaHXDoW47ICM1QjFCCivlrJwgPiB4aW47ICM1QjFDCivlrJ0gPiBuacSDbzsgIzVCMUQKK+WsniA+IGTFj25nOyAjNUIxRQor5ayfID4gecOsOyAjNUIxRgor5aygID4gY8OhbjsgIzVCMjAKK+WsoSA+IMOgaTsgIzVCMjEKK+WsoiA+IG5pw6FuZzsgIzVCMjIKK+WsoyA+IG7DqW5nOyAjNUIyMwor5aykID4gbcSBOyAjNUIyNAor5aylID4gdGnEg287ICM1QjI1CivlrKYgPiBjaMOzdTsgIzVCMjYKK+WspyA+IGrDrG47ICM1QjI3CivlrKggPiBjw607ICM1QjI4CivlrKkgPiB5w7o7ICM1QjI5CivlrKogPiBww61uOyAjNUIyQQor5ayrID4geW9uZzsgIzVCMkIKK+WsrCA+IHjFqzsgIzVCMkMKK+WsrSA+IG7Eg2k7ICM1QjJECivlrK4gPiB5xIFuOyAjNUIyRQor5ayvID4gdMOhaTsgIzVCMkYKK+WssCA+IHnEq25nOyAjNUIzMAor5ayxID4gY8OhbjsgIzVCMzEKK+WssiA+IG5pxINvOyAjNUIzMgor5ayzID4gd287ICM1QjMzCivlrLQgPiB5w61uZzsgIzVCMzQKK+WstSA+IG1pw6FuOyAjNUIzNQor5ay3ID4gbcSBOyAjNUIzNwor5ay4ID4gc2jElW47ICM1QjM4CivlrLkgPiB4w6xuZzsgIzVCMzkKK+WsuiA+IG7DrDsgIzVCM0EKK+WsuyA+IGTDujsgIzVCM0IKK+WsvCA+IGzErXU7ICM1QjNDCivlrL0gPiB5dcSBbjsgIzVCM0QKK+WsviA+IGzEg247ICM1QjNFCivlrL8gPiB5w6BuOyAjNUIzRgor5a2AID4gc2h1xIFuZzsgIzVCNDAKK+WtgSA+IGzDrW5nOyAjNUI0MQor5a2CID4gamnEg287ICM1QjQyCivlrYMgPiBuacOhbmc7ICM1QjQzCivlrYQgPiBsxINuOyAjNUI0NAor5a2FID4geGnEgW47ICM1QjQ1CivlrYYgPiB5xKtuZzsgIzVCNDYKK+WthyA+IHNodcSBbmc7ICM1QjQ3CivlrYggPiBzaHXEgWk7ICM1QjQ4CivlrYkgPiBxdcOhbjsgIzVCNDkKK+WtiiA+IG3ErTsgIzVCNEEKK+WtiyA+IGzDrTsgIzVCNEIKK+WtjCA+IGx1w6FuOyAjNUI0Qwor5a2NID4gecOhbjsgIzVCNEQKK+WtjiA+IHpoxa07ICM1QjRFCivlrY8gPiBsxINuOyAjNUI0Rgor5a2QID4gesStOyAjNUI1MAor5a2RID4gamnDqTsgIzVCNTEKK+WtkiA+IGp1w6k7ICM1QjUyCivlrZMgPiBqdcOpOyAjNUI1Mwor5a2UID4ga8WPbmc7ICM1QjU0CivlrZUgPiB5w7luOyAjNUI1NQor5a2WID4gesSrOyAjNUI1Ngor5a2XID4gesOsOyAjNUI1Nwor5a2YID4gY8O6bjsgIzVCNTgKK+WtmSA+IHPFq247ICM1QjU5CivlrZogPiBmw7o7ICM1QjVBCivlrZsgPiBiw6hpOyAjNUI1Qgor5a2cID4gesSrOyAjNUI1Qwor5a2dID4geGnDoG87ICM1QjVECivlrZ4gPiB4w6xuOyAjNUI1RQor5a2fID4gbcOobmc7ICM1QjVGCivlraAgPiBzw6w7ICM1QjYwCivlraEgPiB0xIFpOyAjNUI2MQor5a2iID4gYsSBbzsgIzVCNjIKK+WtoyA+IGrDrDsgIzVCNjMKK+WtpCA+IGfFqzsgIzVCNjQKK+WtpSA+IG7DujsgIzVCNjUKK+WtpiA+IHh1w6k7ICM1QjY2CivlraggPiB6aHXEg247ICM1QjY4CivlrakgPiBow6FpOyAjNUI2OQor5a2qID4gbHXDoW47ICM1QjZBCivlrasgPiBzxatuOyAjNUI2Qgor5a2sID4gaHXDoGk7ICM1QjZDCivlra0gPiBtacSTOyAjNUI2RAor5a2uID4gY8Ozbmc7ICM1QjZFCivlra8gPiBxacSBbjsgIzVCNkYKK+WtsCA+IHNow7o7ICM1QjcwCivlrbEgPiBjaMOhbjsgIzVCNzEKK+WtsiA+IHnEgTsgIzVCNzIKK+WtsyA+IHrEqzsgIzVCNzMKK+WttCA+IG7ErTsgIzVCNzQKK+WttSA+IGbFqzsgIzVCNzUKK+WttiA+IHrEqzsgIzVCNzYKK+WttyA+IGzDrTsgIzVCNzcKK+WtuCA+IHh1w6k7ICM1Qjc4CivlrbkgPiBiw7I7ICM1Qjc5CivlrbogPiByw7o7ICM1QjdBCivlrbsgPiBsw6FpOyAjNUI3Qgor5a28ID4gbmnDqDsgIzVCN0MKK+WtvSA+IG5pw6g7ICM1QjdECivlrb4gPiB5xKtuZzsgIzVCN0UKK+WtvyA+IGx1w6FuOyAjNUI3Rgor5a6AID4gbWnDoW47ICM1QjgwCivlroEgPiB6aMO5OyAjNUI4MQor5a6CID4gcsWPbmc7ICM1QjgyCivlroMgPiB0xIE7ICM1QjgzCivlroQgPiBnxa1pOyAjNUI4NAor5a6FID4gemjDoWk7ICM1Qjg1CivlroYgPiBxw61vbmc7ICM1Qjg2CivlrocgPiB5xa07ICM1Qjg3CivlroggPiBzaMWPdTsgIzVCODgKK+WuiSA+IMSBbjsgIzVCODkKK+WuiiA+IHTDujsgIzVCOEEKK+WuiyA+IHPDsm5nOyAjNUI4Qgor5a6MID4gd8OhbjsgIzVCOEMKK+WujSA+IHLDsnU7ICM1QjhECivlro4gPiB5xINvOyAjNUI4RQor5a6PID4gaMOzbmc7ICM1QjhGCivlrpAgPiB5w607ICM1QjkwCivlrpEgPiBqxK1uZzsgIzVCOTEKK+WukiA+IHpoxatuOyAjNUI5Mgor5a6TID4gbcOsOyAjNUI5Mwor5a6UID4gemjFrTsgIzVCOTQKK+WulSA+IGTDoG5nOyAjNUI5NQor5a6WID4gaMOzbmc7ICM1Qjk2CivlrpcgPiB6xY1uZzsgIzVCOTcKK+WumCA+IGd1xIFuOyAjNUI5OAor5a6ZID4gemjDsnU7ICM1Qjk5CivlrpogPiBkw6xuZzsgIzVCOUEKK+WumyA+IHfEg247ICM1QjlCCivlrpwgPiB5w607ICM1QjlDCivlrp0gPiBixINvOyAjNUI5RAor5a6eID4gc2jDrTsgIzVCOUUKK+WunyA+IHNow607ICM1QjlGCivlrqAgPiBjaMWPbmc7ICM1QkEwCivlrqEgPiBzaMSVbjsgIzVCQTEKK+WuoiA+IGvDqDsgIzVCQTIKK+WuoyA+IHh1xIFuOyAjNUJBMwor5a6kID4gc2jDrDsgIzVCQTQKK+WupSA+IHnDsnU7ICM1QkE1CivlrqYgPiBodcOgbjsgIzVCQTYKK+WupyA+IHnDrTsgIzVCQTcKK+WuqCA+IHRpxINvOyAjNUJBOAor5a6pID4gc2jErTsgIzVCQTkKK+WuqiA+IHhpw6BuOyAjNUJBQQor5a6rID4gZ8WNbmc7ICM1QkFCCivlrqwgPiBjaMOpbmc7ICM1QkFDCivlrq0gPiBxw7puOyAjNUJBRAor5a6uID4gZ8WNbmc7ICM1QkFFCivlrq8gPiB4acSBbzsgIzVCQUYKK+WusCA+IHrEg2k7ICM1QkIwCivlrrEgPiB6aMOgOyAjNUJCMQor5a6yID4gYsSDbzsgIzVCQjIKK+WusyA+IGjDoGk7ICM1QkIzCivlrrQgPiB5w6BuOyAjNUJCNAor5a61ID4geGnEgW87ICM1QkI1CivlrrYgPiBqacSBOyAjNUJCNgor5a63ID4gc2jElW47ICM1QkI3CivlrrggPiBjaMOpbjsgIzVCQjgKK+WuuSA+IHLDs25nOyAjNUJCOQor5a66ID4gaHXEg25nOyAjNUJCQQor5a67ID4gbcOsOyAjNUJCQgor5a68ID4ga8OydTsgIzVCQkMKK+WuvSA+IGt1xIFuOyAjNUJCRAor5a6+ID4gYsSrbjsgIzVCQkUKK+WuvyA+IHPDuTsgIzVCQkYKK+WvgCA+IGPDoGk7ICM1QkMwCivlr4EgPiB6xINuOyAjNUJDMQor5a+CID4gasOsOyAjNUJDMgor5a+DID4geXXEgW47ICM1QkMzCivlr4QgPiBqw6w7ICM1QkM0Civlr4UgPiB5w61uOyAjNUJDNQor5a+GID4gbcOsOyAjNUJDNgor5a+HID4ga8OydTsgIzVCQzcKK+WviCA+IHHEq25nOyAjNUJDOAor5a+JID4gcXXDqDsgIzVCQzkKK+WviiA+IHpoxJNuOyAjNUJDQQor5a+LID4gamnEg247ICM1QkNCCivlr4wgPiBmw7k7ICM1QkNDCivlr40gPiBuw61uZzsgIzVCQ0QKK+WvjiA+IGLDrG5nOyAjNUJDRQor5a+PID4gaHXDoW47ICM1QkNGCivlr5AgPiBtw6hpOyAjNUJEMAor5a+RID4gccStbjsgIzVCRDEKK+WvkiA+IGjDoW47ICM1QkQyCivlr5MgPiB5w7k7ICM1QkQzCivlr5QgPiBzaMOtOyAjNUJENAor5a+VID4gbsOtbmc7ICM1QkQ1Civlr5YgPiBxw6xuOyAjNUJENgor5a+XID4gbsOtbmc7ICM1QkQ3Civlr5ggPiB6aMOsOyAjNUJEOAor5a+ZID4gecWtOyAjNUJEOQor5a+aID4gYsSDbzsgIzVCREEKK+WvmyA+IGt1xIFuOyAjNUJEQgor5a+cID4gbsOtbmc7ICM1QkRDCivlr50gPiBxxK1uOyAjNUJERAor5a+eID4gbcOyOyAjNUJERQor5a+fID4gY2jDoTsgIzVCREYKK+WvoCA+IGrDuTsgIzVCRTAKK+WvoSA+IGd1xIM7ICM1QkUxCivlr6IgPiBxxK1uOyAjNUJFMgor5a+jID4gaMWrOyAjNUJFMwor5a+kID4gd8O5OyAjNUJFNAor5a+lID4gbGnDoW87ICM1QkU1Civlr6YgPiBzaMOtOyAjNUJFNgor5a+nID4gemjDuTsgIzVCRTcKK+WvqCA+IHpow6BpOyAjNUJFOAor5a+pID4gc2jElW47ICM1QkU5Civlr6ogPiB3xJVpOyAjNUJFQQor5a+rID4geGnElTsgIzVCRUIKK+WvrCA+IGt1xIFuOyAjNUJFQwor5a+tID4gaMO5aTsgIzVCRUQKK+WvriA+IGxpw6FvOyAjNUJFRQor5a+vID4gasO5bjsgIzVCRUYKK+WvsCA+IGh1w6FuOyAjNUJGMAor5a+xID4gecOsOyAjNUJGMQor5a+yID4gecOtOyAjNUJGMgor5a+zID4gYsSDbzsgIzVCRjMKK+WvtCA+IHHDrG47ICM1QkY0Civlr7UgPiBjaMWPbmc7ICM1QkY1Civlr7YgPiBixINvOyAjNUJGNgor5a+3ID4gZsSTbmc7ICM1QkY3Civlr7ggPiBjw7luOyAjNUJGOAor5a+5ID4gZMO5aTsgIzVCRjkKK+WvuiA+IHPDrDsgIzVCRkEKK+WvuyA+IHjDum47ICM1QkZCCivlr7wgPiBkxINvOyAjNUJGQwor5a+9ID4gbMecOyAjNUJGRAor5a++ID4gZMO5aTsgIzVCRkUKK+WvvyA+IHNow7J1OyAjNUJGRgor5bCAID4gcMWPOyAjNUMwMAor5bCBID4gZsSTbmc7ICM1QzAxCivlsIIgPiB6aHXEgW47ICM1QzAyCivlsIMgPiBmxas7ICM1QzAzCivlsIQgPiBzaMOoOyAjNUMwNAor5bCFID4ga8OoOyAjNUMwNQor5bCGID4gamnEgW5nOyAjNUMwNgor5bCHID4gamnEgW5nOyAjNUMwNwor5bCIID4gemh1xIFuOyAjNUMwOAor5bCJID4gd8OoaTsgIzVDMDkKK+WwiiA+IHrFq247ICM1QzBBCivlsIsgPiB4w7puOyAjNUMwQgor5bCMID4gc2jDuTsgIzVDMEMKK+WwjSA+IGTDuWk7ICM1QzBECivlsI4gPiBkxINvOyAjNUMwRQor5bCPID4geGnEg287ICM1QzBGCivlsJAgPiBqxKs7ICM1QzEwCivlsJEgPiBzaMSDbzsgIzVDMTEKK+WwkiA+IMSVcjsgIzVDMTIKK+WwkyA+IMSVcjsgIzVDMTMKK+WwlCA+IMSVcjsgIzVDMTQKK+WwlSA+IGfEgzsgIzVDMTUKK+WwliA+IGppxIFuOyAjNUMxNgor5bCXID4gc2jDujsgIzVDMTcKK+WwmCA+IGNow6luOyAjNUMxOAor5bCZID4gc2jDoG5nOyAjNUMxOQor5bCaID4gc2jDoG5nOyAjNUMxQQor5bCbID4gbW87ICM1QzFCCivlsJwgPiBnw6E7ICM1QzFDCivlsJ0gPiBjaMOhbmc7ICM1QzFECivlsJ4gPiBsacOgbzsgIzVDMUUKK+WwnyA+IHhpxINuOyAjNUMxRgor5bCgID4geGnEg247ICM1QzIwCivlsKIgPiB3xIFuZzsgIzVDMjIKK+WwoyA+IHfEgW5nOyAjNUMyMwor5bCkID4gecOzdTsgIzVDMjQKK+WwpSA+IGxpw6BvOyAjNUMyNQor5bCmID4gbGnDoG87ICM1QzI2CivlsKcgPiB5w6FvOyAjNUMyNwor5bCoID4gbcOhbmc7ICM1QzI4CivlsKkgPiB3xIFuZzsgIzVDMjkKK+WwqiA+IHfEgW5nOyAjNUMyQQor5bCrID4gd8SBbmc7ICM1QzJCCivlsKwgPiBnw6A7ICM1QzJDCivlsK0gPiB5w6FvOyAjNUMyRAor5bCuID4gZMO5bzsgIzVDMkUKK+WwryA+IGvDuWk7ICM1QzJGCivlsLAgPiB6aMWPbmc7ICM1QzMwCivlsLEgPiBqw6x1OyAjNUMzMQor5bCyID4gZ8SBbjsgIzVDMzIKK+WwsyA+IGfFrTsgIzVDMzMKK+WwtCA+IGfEgW47ICM1QzM0CivlsLUgPiB0w7ppOyAjNUMzNQor5bC2ID4gZ8SBbjsgIzVDMzYKK+WwtyA+IGfEgW47ICM1QzM3CivlsLggPiBzaMSrOyAjNUMzOAor5bC5ID4gecStbjsgIzVDMzkKK+WwuiA+IGNoxK07ICM1QzNBCivlsLsgPiBrxIFvOyAjNUMzQgor5bC8ID4gbsOtOyAjNUMzQwor5bC9ID4gasStbjsgIzVDM0QKK+WwviA+IHfElWk7ICM1QzNFCivlsL8gPiBuacOgbzsgIzVDM0YKK+WxgCA+IGrDujsgIzVDNDAKK+WxgSA+IHDDrDsgIzVDNDEKK+WxgiA+IGPDqW5nOyAjNUM0Mgor5bGDID4geMOsOyAjNUM0Mwor5bGEID4gYsSrOyAjNUM0NAor5bGFID4gasWrOyAjNUM0NQor5bGGID4gamnDqDsgIzVDNDYKK+WxhyA+IHRpw6FuOyAjNUM0Nwor5bGIID4gccWrOyAjNUM0OAor5bGJID4gdMOsOyAjNUM0OQor5bGKID4gamnDqDsgIzVDNEEKK+WxiyA+IHfFqzsgIzVDNEIKK+WxjCA+IGRpxINvOyAjNUM0Qwor5bGNID4gc2jEqzsgIzVDNEQKK+WxjiA+IHNoxK07ICM1QzRFCivlsY8gPiBww61uZzsgIzVDNEYKK+WxkCA+IGrEqzsgIzVDNTAKK+WxkSA+IHhpw6g7ICM1QzUxCivlsZIgPiBjaMOpbjsgIzVDNTIKK+WxkyA+IHjDrDsgIzVDNTMKK+WxlCA+IG7DrTsgIzVDNTQKK+WxlSA+IHpoxINuOyAjNUM1NQor5bGWID4geMSrOyAjNUM1Ngor5bGYID4gbcSDbjsgIzVDNTgKK+WxmSA+IMSTOyAjNUM1OQor5bGaID4gbMOydTsgIzVDNUEKK+WxmyA+IHDDrW5nOyAjNUM1Qgor5bGcID4gdMOsOyAjNUM1Qwor5bGdID4gZsOoaTsgIzVDNUQKK+WxniA+IHNoxa07ICM1QzVFCivlsZ8gPiB4acOoOyAjNUM1Rgor5bGgID4gdMO6OyAjNUM2MAor5bGhID4gbMeaOyAjNUM2MQor5bGiID4gbMeaOyAjNUM2Mgor5bGjID4geMStOyAjNUM2Mwor5bGkID4gY8Opbmc7ICM1QzY0CivlsaUgPiBsx5o7ICM1QzY1CivlsaYgPiBqw7k7ICM1QzY2CivlsacgPiB4acOoOyAjNUM2Nwor5bGoID4gasO5OyAjNUM2OAor5bGpID4ganXEkzsgIzVDNjkKK+WxqiA+IGxpw6FvOyAjNUM2QQor5bGrID4ganXDqTsgIzVDNkIKK+WxrCA+IHNoxa07ICM1QzZDCivlsa0gPiB4w6w7ICM1QzZECivlsa4gPiBjaMOoOyAjNUM2RQor5bGvID4gdMO6bjsgIzVDNkYKK+WxsCA+IG7DrDsgIzVDNzAKK+WxsSA+IHNoxIFuOyAjNUM3MQor5bGzID4geGnEgW47ICM1QzczCivlsbQgPiBsw6w7ICM1Qzc0CivlsbUgPiB4dcSTOyAjNUM3NQor5bG4ID4gbMOzbmc7ICM1Qzc4CivlsbkgPiB5w6w7ICM1Qzc5CivlsbogPiBxxK07ICM1QzdBCivlsbsgPiByw6huOyAjNUM3Qgor5bG8ID4gd8O5OyAjNUM3Qwor5bG9ID4gaMOgbjsgIzVDN0QKK+WxviA+IHNoxJNuOyAjNUM3RQor5bG/ID4gecWtOyAjNUM3Rgor5bKAID4gY2jFqzsgIzVDODAKK+WygSA+IHPDuWk7ICM1QzgxCivlsoIgPiBxxK07ICM1QzgyCivlsoQgPiB5dcOoOyAjNUM4NAor5bKFID4gYsSDbjsgIzVDODUKK+WyhiA+IHnEg287ICM1Qzg2CivlsocgPiDDoW5nOyAjNUM4Nwor5bKIID4gecOhOyAjNUM4OAor5bKJID4gd8O5OyAjNUM4OQor5bKKID4gamnDqTsgIzVDOEEKK+WyiyA+IMOoOyAjNUM4Qgor5bKMID4gasOtOyAjNUM4Qwor5bKNID4gcWnEgW47ICM1QzhECivlso4gPiBmxJNuOyAjNUM4RQor5bKPID4geXXDoW47ICM1QzhGCivlspAgPiBxw607ICM1QzkwCivlspEgPiBjw6luOyAjNUM5MQor5bKSID4gcWnDoW47ICM1QzkyCivlspMgPiBxw607ICM1QzkzCivlspQgPiBjaMOgOyAjNUM5NAor5bKVID4gamnDqDsgIzVDOTUKK+WyliA+IHHFqzsgIzVDOTYKK+WylyA+IGfEg25nOyAjNUM5Nwor5bKYID4geGnDoG47ICM1Qzk4CivlspkgPiDDoG87ICM1Qzk5CivlspogPiBsw6FuOyAjNUM5QQor5bKbID4gZMSDbzsgIzVDOUIKK+WynCA+IGLEgTsgIzVDOUMKK+WynSA+IHrDuW87ICM1QzlECivlsp4gPiB6w7lvOyAjNUM5RQor5bKfID4gecSDbmc7ICM1QzlGCivlsqAgPiBqw7k7ICM1Q0EwCivlsqEgPiBnxIFuZzsgIzVDQTEKK+WyoiA+IGvElTsgIzVDQTIKK+WyoyA+IGfFj3U7ICM1Q0EzCivlsqQgPiB4dcOoOyAjNUNBNAor5bKlID4gYsSTaTsgIzVDQTUKK+WypiA+IGzDrDsgIzVDQTYKK+WypyA+IHRpw6FvOyAjNUNBNwor5bKoID4gasWrOyAjNUNBOAor5bKpID4gecOhbjsgIzVDQTkKK+WyqiA+IGbDujsgIzVDQUEKK+WyqyA+IHjDrHU7ICM1Q0FCCivlsqwgPiBqacSDOyAjNUNBQwor5bKtID4gbMOtbmc7ICM1Q0FECivlsq4gPiB0w7pvOyAjNUNBRQor5bKvID4gcMSTaTsgIzVDQUYKK+WysCA+IHnFj3U7ICM1Q0IwCivlsrEgPiBkw6BpOyAjNUNCMQor5bKyID4ga3XDoG5nOyAjNUNCMgor5bKzID4geXXDqDsgIzVDQjMKK+WytCA+IHHFqzsgIzVDQjQKK+WytSA+IGjDuTsgIzVDQjUKK+WytiA+IHDDsjsgIzVDQjYKK+WytyA+IG3DrW47ICM1Q0I3CivlsrggPiDDoG47ICM1Q0I4CivlsrkgPiB0acOhbzsgIzVDQjkKK+WyuiA+IGzDrW5nOyAjNUNCQQor5bK7ID4gY2jDrTsgIzVDQkIKK+WyvSA+IGTFjW5nOyAjNUNCRAor5bK/ID4ga8WraTsgIzVDQkYKK+WzgCA+IHjDrHU7ICM1Q0MwCivls4EgPiBtxINvOyAjNUNDMQor5bOCID4gdMOzbmc7ICM1Q0MyCivls4MgPiB4dcOpOyAjNUNDMwor5bOEID4gecOsOyAjNUNDNAor5bOGID4gaMSTOyAjNUNDNgor5bOHID4ga8STOyAjNUNDNwor5bOIID4gbMO5bzsgIzVDQzgKK+WziSA+IMSTOyAjNUNDOQor5bOKID4gZsO5OyAjNUNDQQor5bOLID4geMO6bjsgIzVDQ0IKK+WzjCA+IGRpw6k7ICM1Q0NDCivls40gPiBsw7k7ICM1Q0NECivls44gPiDEgW47ICM1Q0NFCivls48gPiDElXI7ICM1Q0NGCivls5AgPiBnxIFpOyAjNUNEMAor5bORID4gcXXDoW47ICM1Q0QxCivls5IgPiB0w7NuZzsgIzVDRDIKK+WzkyA+IHnDrTsgIzVDRDMKK+WzlCA+IG3FrTsgIzVDRDQKK+WzlSA+IHNow607ICM1Q0Q1Civls5YgPiDEgW47ICM1Q0Q2Civls5cgPiB3w6lpOyAjNUNENwor5bOYID4gaMWrOyAjNUNEOAor5bOZID4gemjDrDsgIzVDRDkKK+WzmiA+IG3DrDsgIzVDREEKK+WzmyA+IGzErTsgIzVDREIKK+WznCA+IGrEqzsgIzVDREMKK+WznSA+IHTDs25nOyAjNUNERAor5bOeID4gd8OpaTsgIzVDREUKK+WznyA+IHnDsnU7ICM1Q0RGCivls6EgPiB4acOhOyAjNUNFMQor5bOiID4gbMStOyAjNUNFMgor5bOjID4gecOhbzsgIzVDRTMKK+WzpCA+IGppw6BvOyAjNUNFNAor5bOlID4gemjEk25nOyAjNUNFNQor5bOmID4gbHXDoW47ICM1Q0U2Civls6cgPiBqacSBbzsgIzVDRTcKK+WzqCA+IMOpOyAjNUNFOAor5bOpID4gw6k7ICM1Q0U5Civls6ogPiB5w7k7ICM1Q0VBCivls6sgPiB5w6k7ICM1Q0VCCivls6wgPiBixas7ICM1Q0VDCivls60gPiBxacOgbzsgIzVDRUQKK+WzriA+IHHFq247ICM1Q0VFCivls68gPiBmxJNuZzsgIzVDRUYKK+WzsCA+IGbEk25nOyAjNUNGMAor5bOxID4gbsOhbzsgIzVDRjEKK+WzsiA+IGzErTsgIzVDRjIKK+WzsyA+IHnDs3U7ICM1Q0YzCivls7QgPiB4acOgbjsgIzVDRjQKK+WztSA+IGjDs25nOyAjNUNGNQor5bO2ID4gZMSDbzsgIzVDRjYKK+WztyA+IHNoxJNuOyAjNUNGNwor5bO4ID4gY2jDqW5nOyAjNUNGOAor5bO5ID4gdMO6OyAjNUNGOQor5bO6ID4gZ8SVbmc7ICM1Q0ZBCivls7sgPiBqw7luOyAjNUNGQgor5bO8ID4gaMOgbzsgIzVDRkMKK+WzvSA+IHhpw6E7ICM1Q0ZECivls74gPiB5xKtuOyAjNUNGRQor5bO/ID4gecWtOyAjNUNGRgor5bSAID4gbMOgbmc7ICM1RDAwCivltIEgPiBrxINuOyAjNUQwMQor5bSCID4gbMOhbzsgIzVEMDIKK+W0gyA+IGzDoWk7ICM1RDAzCivltIQgPiB4acSDbjsgIzVEMDQKK+W0hSA+IHF1w6g7ICM1RDA1CivltIYgPiBrxY1uZzsgIzVEMDYKK+W0hyA+IGNow7NuZzsgIzVEMDcKK+W0iCA+IGNow7NuZzsgIzVEMDgKK+W0iSA+IHTDoDsgIzVEMDkKK+W0iiA+IGxpbjsgIzVEMEEKK+W0iyA+IGh1w6E7ICM1RDBCCivltIwgPiBqxas7ICM1RDBDCivltI0gPiBsw6FpOyAjNUQwRAor5bSOID4gccOtOyAjNUQwRQor5bSPID4gbcOtbjsgIzVEMEYKK+W0kCA+IGvFq247ICM1RDEwCivltJEgPiBrxatuOyAjNUQxMQor5bSSID4gesO6OyAjNUQxMgor5bSTID4gZ8O5OyAjNUQxMwor5bSUID4gY8WraTsgIzVEMTQKK+W0lSA+IHnDoTsgIzVEMTUKK+W0liA+IHnDoTsgIzVEMTYKK+W0lyA+IGfEg25nOyAjNUQxNwor5bSYID4gbMO6bjsgIzVEMTgKK+W0mSA+IGzDum47ICM1RDE5CivltJogPiBsw6luZzsgIzVEMUEKK+W0myA+IGp1w6k7ICM1RDFCCivltJwgPiBkxatvOyAjNUQxQwor5bSdID4gemjEk25nOyAjNUQxRAor5bSeID4gZ8WrbzsgIzVEMUUKK+W0nyA+IHnDrW47ICM1RDFGCivltKAgPiBkxY1uZzsgIzVEMjAKK+W0oSA+IGjDoW47ICM1RDIxCivltKIgPiB6aMSTbmc7ICM1RDIyCivltKMgPiB3xJVpOyAjNUQyMwor5bSkID4gecOhbzsgIzVEMjQKK+W0pSA+IHDErTsgIzVEMjUKK+W0piA+IHnEgW47ICM1RDI2CivltKcgPiBzxY1uZzsgIzVEMjcKK+W0qCA+IGppw6k7ICM1RDI4CivltKkgPiBixJNuZzsgIzVEMjkKK+W0qiA+IHrDujsgIzVEMkEKK+W0qyA+IGp1w6k7ICM1RDJCCivltKwgPiBkxY1uZzsgIzVEMkMKK+W0rSA+IHpoxINuOyAjNUQyRAor5bSuID4gZ8O5OyAjNUQyRQor5bSvID4gecOtbjsgIzVEMkYKK+W0sSA+IHrDqTsgIzVEMzEKK+W0siA+IGh1w6FuZzsgIzVEMzIKK+W0syA+IHnDujsgIzVEMzMKK+W0tCA+IHfEk2k7ICM1RDM0CivltLUgPiB5w6FuZzsgIzVEMzUKK+W0tiA+IGbEk25nOyAjNUQzNgor5bS3ID4gccOtdTsgIzVEMzcKK+W0uCA+IGTDuW47ICM1RDM4CivltLkgPiB0w607ICM1RDM5CivltLogPiB5xK07ICM1RDNBCivltLsgPiB6aMOsOyAjNUQzQgor5bS8ID4gc2jDrDsgIzVEM0MKK+W0vSA+IHrEg2k7ICM1RDNECivltL4gPiB5xINvOyAjNUQzRQor5bS/ID4gw6g7ICM1RDNGCivltYAgPiB6aMO5OyAjNUQ0MAor5bWBID4ga8SBbjsgIzVENDEKK+W1giA+IGzHnDsgIzVENDIKK+W1gyA+IHnEg247ICM1RDQzCivltYQgPiBtxJVpOyAjNUQ0NAor5bWFID4gZ8SBbjsgIzVENDUKK+W1hiA+IGrEqzsgIzVENDYKK+W1hyA+IGrEqzsgIzVENDcKK+W1iCA+IGh1xINuOyAjNUQ0OAor5bWJID4gdMOtbmc7ICM1RDQ5CivltYogPiBzaMOobmc7ICM1RDRBCivltYsgPiBtw6lpOyAjNUQ0Qgor5bWMID4gcWnDoG47ICM1RDRDCivltY0gPiB3w7k7ICM1RDRECivltY4gPiB5w7o7ICM1RDRFCivltY8gPiB6xY1uZzsgIzVENEYKK+W1kCA+IGzDoW47ICM1RDUwCivltZEgPiBqdcOpOyAjNUQ1MQor5bWSID4gecOhbjsgIzVENTIKK+W1kyA+IHnDoW47ICM1RDUzCivltZQgPiB3xJVpOyAjNUQ1NAor5bWVID4gesWNbmc7ICM1RDU1CivltZYgPiBjaMOhOyAjNUQ1Ngor5bWXID4gc8O5aTsgIzVENTcKK+W1mCA+IHLDs25nOyAjNUQ1OAor5bWaID4gccSrbjsgIzVENUEKK+W1myA+IHnDujsgIzVENUIKK+W1nSA+IGzFj3U7ICM1RDVECivltZ4gPiB0w7o7ICM1RDVFCivltZ8gPiBkxatpOyAjNUQ1Rgor5bWgID4geMSrOyAjNUQ2MAor5bWhID4gd8STbmc7ICM1RDYxCivltaIgPiBjxIFuZzsgIzVENjIKK+W1oyA+IGTEgW5nOyAjNUQ2Mwor5bWkID4gaMOzbmc7ICM1RDY0CivltaUgPiBqacOpOyAjNUQ2NQor5bWmID4gw6FpOyAjNUQ2Ngor5bWnID4gbMOtdTsgIzVENjcKK+W1qCA+IHfFrTsgIzVENjgKK+W1qSA+IHPFjW5nOyAjNUQ2OQor5bWqID4gcWnEgW87ICM1RDZBCivltasgPiB6xKs7ICM1RDZCCivltawgPiB3w6lpOyAjNUQ2Qwor5bWtID4gYsSTbmc7ICM1RDZECivlta4gPiBkacSBbjsgIzVENkUKK+W1ryA+IGPDum87ICM1RDZGCivltbAgPiBxacSDbjsgIzVENzAKK+W1sSA+IHnFj25nOyAjNUQ3MQor5bWyID4gbmnDqDsgIzVENzIKK+W1syA+IGPDum87ICM1RDczCivltbQgPiBqw607ICM1RDc0CivltbcgPiBzxY9uZzsgIzVENzcKK+W1uCA+IHrFjW5nOyAjNUQ3OAor5bW5ID4gamnDoG5nOyAjNUQ3OQor5bW6ID4gbGnDoW87ICM1RDdBCivltbsgPiBrYW5nOyAjNUQ3Qgor5bW8ID4gY2jEg247ICM1RDdDCivltb0gPiBkacOpOyAjNUQ3RAor5bW+ID4gY8STbjsgIzVEN0UKK+W1vyA+IGTErW5nOyAjNUQ3Rgor5baAID4gdMWrOyAjNUQ4MAor5baBID4gbMWPdTsgIzVEODEKK+W2giA+IHpow6BuZzsgIzVEODIKK+W2gyA+IHpoxINuOyAjNUQ4Mwor5baEID4gemjEg247ICM1RDg0CivltoUgPiDDoW87ICM1RDg1CivltoYgPiBjw6FvOyAjNUQ4Ngor5baHID4gccWrOyAjNUQ4Nwor5baIID4gcWnEgW5nOyAjNUQ4OAor5baJID4gesWraTsgIzVEODkKK+W2iiA+IHrFrWk7ICM1RDhBCivltosgPiBkxINvOyAjNUQ4Qgor5baMID4gZMSDbzsgIzVEOEMKK+W2jSA+IHjDrTsgIzVEOEQKK+W2jiA+IHnDuTsgIzVEOEUKK+W2jyA+IGLDszsgIzVEOEYKK+W2kCA+IGzDs25nOyAjNUQ5MAor5baRID4geGnEg25nOyAjNUQ5MQor5baSID4gY8Opbmc7ICM1RDkyCivltpMgPiBixY07ICM1RDkzCivltpQgPiBxxKtuOyAjNUQ5NAor5baVID4gamnEgW87ICM1RDk1CivltpYgPiB5xINuOyAjNUQ5Ngor5baXID4gbMOhbzsgIzVEOTcKK+W2mCA+IHpow6BuOyAjNUQ5OAor5baZID4gbMOtbjsgIzVEOTkKK+W2miA+IGxpw6FvOyAjNUQ5QQor5babID4gbGnDoW87ICM1RDlCCivltpwgPiBqxKtuOyAjNUQ5Qwor5badID4gZMOobmc7ICM1RDlECivltp4gPiBkw7lvOyAjNUQ5RQor5bafID4gesWrbjsgIzVEOUYKK+W2oCA+IGppw6BvOyAjNURBMAor5bahID4gZ8O5aTsgIzVEQTEKK+W2oiA+IHnDoW87ICM1REEyCivltqMgPiBxacOhbzsgIzVEQTMKK+W2pCA+IHnDoW87ICM1REE0CivltqUgPiBqdcOpOyAjNURBNQor5bamID4gemjEgW47ICM1REE2CivltqcgPiB5w6w7ICM1REE3CivltqggPiB4dcOpOyAjNURBOAor5bapID4gbsOhbzsgIzVEQTkKK+W2qiA+IHnDqDsgIzVEQUEKK+W2qyA+IHnDqDsgIzVEQUIKK+W2rCA+IHnDrTsgIzVEQUMKK+W2rSA+IMOoOyAjNURBRAor5bauID4geGnEg247ICM1REFFCivltq8gPiBqw607ICM1REFGCivltrAgPiB4acOoOyAjNURCMAor5baxID4ga8SVOyAjNURCMQor5bayID4geMSrOyAjNURCMgor5bazID4gZMOsOyAjNURCMwor5ba0ID4gw6BvOyAjNURCNAor5ba1ID4gesWtaTsgIzVEQjUKK+W2tyA+IG7DrDsgIzVEQjcKK+W2uCA+IHLDs25nOyAjNURCOAor5ba5ID4gZMSDbzsgIzVEQjkKK+W2uiA+IGzErW5nOyAjNURCQQor5ba7ID4gesOhOyAjNURCQgor5ba8ID4gecWtOyAjNURCQwor5ba9ID4geXXDqDsgIzVEQkQKK+W2viA+IHnErW47ICM1REJFCivlt4AgPiBqacSTOyAjNURDMAor5beBID4gbMOsOyAjNURDMQor5beCID4gc8WtaTsgIzVEQzIKK+W3gyA+IGzDs25nOyAjNURDMwor5beEID4gbMOzbmc7ICM1REM0Civlt4UgPiBkacSBbjsgIzVEQzUKK+W3hiA+IHnDrW5nOyAjNURDNgor5beHID4geMSrOyAjNURDNwor5beIID4gasO6OyAjNURDOAor5beJID4gY2jDoW47ICM1REM5Civlt4ogPiB5xK1uZzsgIzVEQ0EKK+W3iyA+IGvFq2k7ICM1RENCCivlt4wgPiB5w6FuOyAjNURDQwor5beNID4gd8STaTsgIzVEQ0QKK+W3jiA+IG7DoW87ICM1RENFCivlt48gPiBxdcOhbjsgIzVEQ0YKK+W3kCA+IGNoxINvOyAjNUREMAor5beRID4gY3XDoW47ICM1REQxCivlt5IgPiBsdcOhbjsgIzVERDIKK+W3kyA+IGRpxIFuOyAjNUREMwor5beUID4gZGnEgW47ICM1REQ0Civlt5YgPiB5w6FuOyAjNURENgor5beXID4gecOhbjsgIzVERDcKK+W3mCA+IHnEg247ICM1REQ4Civlt5kgPiBuw6FvOyAjNUREOQor5beaID4gecSDbjsgIzVEREEKK+W3myA+IGNodcSBbjsgIzVEREIKK+W3nCA+IGfDuWk7ICM1RERDCivlt50gPiBjaHXEgW47ICM1RERECivlt54gPiB6aMWNdTsgIzVEREUKK+W3nyA+IGh1xIFuZzsgIzVEREYKK+W3oCA+IGrEq25nOyAjNURFMAor5behID4geMO6bjsgIzVERTEKK+W3oiA+IGNow6FvOyAjNURFMgor5bejID4gY2jDoW87ICM1REUzCivlt6QgPiBsacSTOyAjNURFNAor5belID4gZ8WNbmc7ICM1REU1Civlt6YgPiB6xa1vOyAjNURFNgor5benID4gcWnEg287ICM1REU3Civlt6ggPiBqw7k7ICM1REU4Civlt6kgPiBnxY9uZzsgIzVERTkKK+W3qyA+IHfFqzsgIzVERUIKK+W3riA+IGNoxIFpOyAjNURFRQor5bevID4gccOtdTsgIzVERUYKK+W3sCA+IHHDrXU7ICM1REYwCivlt7EgPiBqxK07ICM1REYxCivlt7IgPiB5xK07ICM1REYyCivlt7MgPiBzw6w7ICM1REYzCivlt7QgPiBixIE7ICM1REY0Civlt7UgPiB6aMSrOyAjNURGNQor5be2ID4gemjEgW87ICM1REY2Civlt7cgPiB4acOgbmc7ICM1REY3Civlt7ggPiB5w607ICM1REY4Civlt7kgPiBqxK1uOyAjNURGOQor5be6ID4geMO5bjsgIzVERkEKK+W3uyA+IGp1w6BuOyAjNURGQgor5be9ID4geMO5bjsgIzVERkQKK+W3viA+IGrEq247ICM1REZFCivlt78gPiBmw7o7ICM1REZGCivluIAgPiB6xIE7ICM1RTAwCivluIEgPiBiw6w7ICM1RTAxCivluIIgPiBzaMOsOyAjNUUwMgor5biDID4gYsO5OyAjNUUwMwor5biEID4gZMSrbmc7ICM1RTA0CivluIUgPiBzaHXDoGk7ICM1RTA1CivluIYgPiBmxIFuOyAjNUUwNgor5biHID4gbmnDqDsgIzVFMDcKK+W4iCA+IHNoxKs7ICM1RTA4CivluIkgPiBmxJNuOyAjNUUwOQor5biKID4gcMOgOyAjNUUwQQor5biLID4gemjErTsgIzVFMEIKK+W4jCA+IHjEqzsgIzVFMEMKK+W4jSA+IGjDuTsgIzVFMEQKK+W4jiA+IGTDoG47ICM1RTBFCivluI8gPiB3w6lpOyAjNUUwRgor5biQID4gemjDoG5nOyAjNUUxMAor5biRID4gdMSDbmc7ICM1RTExCivluJIgPiBkw6BpOyAjNUUxMgor5biTID4gbcOgOyAjNUUxMwor5biUID4gcMOoaTsgIzVFMTQKK+W4lSA+IHDDoDsgIzVFMTUKK+W4liA+IHRpxJM7ICM1RTE2CivluJcgPiBmw7o7ICM1RTE3CivluJggPiBsacOhbjsgIzVFMTgKK+W4mSA+IHpow6w7ICM1RTE5CivluJogPiB6aMWPdTsgIzVFMUEKK+W4myA+IGLDszsgIzVFMUIKK+W4nCA+IHpow6w7ICM1RTFDCivluJ0gPiBkw6w7ICM1RTFECivluJ4gPiBtw7I7ICM1RTFFCivluJ8gPiB5w6w7ICM1RTFGCivluKAgPiB5w6w7ICM1RTIwCivluKEgPiBww61uZzsgIzVFMjEKK+W4oiA+IHFpw6A7ICM1RTIyCivluKMgPiBqdcOgbjsgIzVFMjMKK+W4pCA+IHLDujsgIzVFMjQKK+W4pSA+IHNodcOgaTsgIzVFMjUKK+W4piA+IGTDoGk7ICM1RTI2CivluKcgPiB6aMOobmc7ICM1RTI3CivluKggPiBzaMO5aTsgIzVFMjgKK+W4qSA+IHFpw6BvOyAjNUUyOQor5biqID4gemjEk247ICM1RTJBCivluKsgPiBzaMSrOyAjNUUyQgor5bisID4gccO6bjsgIzVFMkMKK+W4rSA+IHjDrTsgIzVFMkQKK+W4riA+IGLEgW5nOyAjNUUyRQor5bivID4gZMOgaTsgIzVFMkYKK+W4sCA+IGfFq2k7ICM1RTMwCivluLEgPiBjaMOzdTsgIzVFMzEKK+W4siA+IHDDrW5nOyAjNUUzMgor5bizID4gemjDoG5nOyAjNUUzMwor5bi0ID4gc2jEgTsgIzVFMzQKK+W4tSA+IHfEgW47ICM1RTM1CivluLYgPiBkw6BpOyAjNUUzNgor5bi3ID4gd8OpaTsgIzVFMzcKK+W4uCA+IGNow6FuZzsgIzVFMzgKK+W4uSA+IHNow6A7ICM1RTM5CivluLogPiBxw607ICM1RTNBCivluLsgPiB6w6k7ICM1RTNCCivluLwgPiBnw7pvOyAjNUUzQwor5bi9ID4gbcOgbzsgIzVFM0QKK+W4viA+IGTFrTsgIzVFM0UKK+W4vyA+IGjDs3U7ICM1RTNGCivluYAgPiB6aMOobmc7ICM1RTQwCivluYEgPiB4xas7ICM1RTQxCivluYIgPiBtw6w7ICM1RTQyCivluYMgPiB3w6lpOyAjNUU0Mwor5bmEID4gd8OyOyAjNUU0NAor5bmFID4gZsO6OyAjNUU0NQor5bmGID4gecOsOyAjNUU0Ngor5bmHID4gYsSBbmc7ICM1RTQ3CivluYggPiBww61uZzsgIzVFNDgKK+W5iiA+IGfFjW5nOyAjNUU0QQor5bmLID4gcMOhbjsgIzVFNEIKK+W5jCA+IGh1xINuZzsgIzVFNEMKK+W5jSA+IGTEgW87ICM1RTRECivluY4gPiBtw6w7ICM1RTRFCivluY8gPiBqacSBOyAjNUU0Rgor5bmQID4gdMOpbmc7ICM1RTUwCivluZEgPiBoxatpOyAjNUU1MQor5bmSID4gemjFjW5nOyAjNUU1Mgor5bmTID4gc2jEgW47ICM1RTUzCivluZQgPiBtw6BuOyAjNUU1NAor5bmVID4gbcO5OyAjNUU1NQor5bmWID4gYmnEgW87ICM1RTU2CivluZcgPiBnw7pvOyAjNUU1Nwor5bmYID4gesOpOyAjNUU1OAor5bmZID4gbcO5OyAjNUU1OQor5bmaID4gYsSBbmc7ICM1RTVBCivluZsgPiB6aMOgbmc7ICM1RTVCCivluZwgPiBqxK1vbmc7ICM1RTVDCivluZ0gPiBjaMSDbjsgIzVFNUQKK+W5niA+IGbDujsgIzVFNUUKK+W5nyA+IHpow6w7ICM1RTVGCivluaAgPiBoxas7ICM1RTYwCivluaEgPiBmxIFuOyAjNUU2MQor5bmiID4gY2h1w6FuZzsgIzVFNjIKK+W5oyA+IGLDrDsgIzVFNjMKK+W5piA+IG3DrDsgIzVFNjYKK+W5pyA+IHFpxIFvOyAjNUU2Nwor5bmoID4gY2jEgW47ICM1RTY4CivluakgPiBmw6luOyAjNUU2OQor5bmqID4gbcOpbmc7ICM1RTZBCivluasgPiBixIFuZzsgIzVFNkIKK+W5rCA+IGNow7N1OyAjNUU2Qwor5bmtID4gbWnDqDsgIzVFNkQKK+W5riA+IGNow7o7ICM1RTZFCivlua8gPiBqacOpOyAjNUU2Rgor5bmwID4geGnEg247ICM1RTcwCivlubEgPiBsw6FuOyAjNUU3MQor5bmyID4gZ8SBbjsgIzVFNzIKK+W5syA+IHDDrW5nOyAjNUU3Mwor5bm0ID4gbmnDoW47ICM1RTc0CivlubUgPiBxacSBbjsgIzVFNzUKK+W5tiA+IGLDrG5nOyAjNUU3Ngor5bm3ID4gYsOsbmc7ICM1RTc3CivlubggPiB4w6xuZzsgIzVFNzgKK+W5uSA+IGfDoG47ICM1RTc5CivlubogPiB5xIFvOyAjNUU3QQor5bm7ID4gaHXDoG47ICM1RTdCCivlubwgPiB5w7J1OyAjNUU3Qwor5bm9ID4gecWNdTsgIzVFN0QKK+W5viA+IGrErTsgIzVFN0UKK+W5vyA+IHnEg247ICM1RTdGCivluoAgPiBwxK07ICM1RTgwCivluoEgPiB0xKtuZzsgIzVFODEKK+W6giA+IHrDqDsgIzVFODIKK+W6gyA+IGd1xINuZzsgIzVFODMKK+W6hCA+IHpodcSBbmc7ICM1RTg0CivluoUgPiBtbzsgIzVFODUKK+W6hiA+IHHDrG5nOyAjNUU4Ngor5bqHID4gYsOsOyAjNUU4Nwor5bqIID4gccOtbjsgIzVFODgKK+W6iSA+IGTDuW47ICM1RTg5CivluoogPiBjaHXDoW5nOyAjNUU4QQor5bqLID4gZ8WtaTsgIzVFOEIKK+W6jCA+IHnEgzsgIzVFOEMKK+W6jSA+IGLDoGk7ICM1RThECivluo4gPiBqacOoOyAjNUU4RQor5bqPID4geMO5OyAjNUU4Rgor5bqQID4gbMO6OyAjNUU5MAor5bqRID4gd8WtOyAjNUU5MQor5bqTID4ga8O5OyAjNUU5Mwor5bqUID4gecOsbmc7ICM1RTk0CivlupUgPiBkxK07ICM1RTk1CivlupYgPiBww6FvOyAjNUU5Ngor5bqXID4gZGnDoG47ICM1RTk3CivlupggPiB5xIE7ICM1RTk4CivlupkgPiBtacOgbzsgIzVFOTkKK+W6miA+IGfEk25nOyAjNUU5QQor5bqbID4gY8SrOyAjNUU5Qgor5bqcID4gZsWtOyAjNUU5Qwor5bqdID4gdMOzbmc7ICM1RTlECivlup4gPiBww6FuZzsgIzVFOUUKK+W6nyA+IGbDqGk7ICM1RTlGCivluqAgPiB4acOhbmc7ICM1RUEwCivluqEgPiB5xK07ICM1RUExCivluqIgPiB6aMOsOyAjNUVBMgor5bqjID4gdGnEgW87ICM1RUEzCivluqQgPiB6aMOsOyAjNUVBNAor5bqlID4geMSrdTsgIzVFQTUKK+W6piA+IGTDuTsgIzVFQTYKK+W6pyA+IHrDuW87ICM1RUE3CivluqggPiB4acSBbzsgIzVFQTgKK+W6qSA+IHTDujsgIzVFQTkKK+W6qiA+IGfFrWk7ICM1RUFBCivluqsgPiBrw7k7ICM1RUFCCivluqwgPiBww6FuZzsgIzVFQUMKK+W6rSA+IHTDrW5nOyAjNUVBRAor5bquID4gecWPdTsgIzVFQUUKK+W6ryA+IGLFqzsgIzVFQUYKK+W6sCA+IGTEq25nOyAjNUVCMAor5bqxID4gY2jElW5nOyAjNUVCMQor5bqyID4gbMOhaTsgIzVFQjIKK+W6syA+IGLEk2k7ICM1RUIzCivlurQgPiBqw607ICM1RUI0CivlurUgPiDEgW47ICM1RUI1CivlurYgPiBzaMO5OyAjNUVCNgor5bq3ID4ga8SBbmc7ICM1RUI3CivlurggPiB5xY1uZzsgIzVFQjgKK+W6uSA+IHTFrW87ICM1RUI5CivlurogPiBzxY1uZzsgIzVFQkEKK+W6uyA+IHNow7k7ICM1RUJCCivlurwgPiBxxK1uZzsgIzVFQkMKK+W6vSA+IHnDuTsgIzVFQkQKK+W6viA+IHnFrTsgIzVFQkUKK+W6vyA+IG1pw6BvOyAjNUVCRgor5buAID4gc8WNdTsgIzVFQzAKK+W7gSA+IGPDqDsgIzVFQzEKK+W7giA+IHhpxIFuZzsgIzVFQzIKK+W7gyA+IGbDqGk7ICM1RUMzCivlu4QgPiBqw6x1OyAjNUVDNAor5buFID4gaMOpOyAjNUVDNQor5buGID4gaMO5aTsgIzVFQzYKK+W7hyA+IGzDrHU7ICM1RUM3Civlu4ggPiBzaMOgOyAjNUVDOAor5buJID4gbGnDoW47ICM1RUM5Civlu4ogPiBsw6FuZzsgIzVFQ0EKK+W7iyA+IHPFjXU7ICM1RUNCCivlu4wgPiBqacOgbjsgIzVFQ0MKK+W7jSA+IHDFj3U7ICM1RUNECivlu44gPiBxxK1uZzsgIzVFQ0UKK+W7jyA+IGrDrHU7ICM1RUNGCivlu5AgPiBqw6x1OyAjNUVEMAor5buRID4gccOtbjsgIzVFRDEKK+W7kiA+IMOhbzsgIzVFRDIKK+W7kyA+IGvDuW87ICM1RUQzCivlu5QgPiBsw7N1OyAjNUVENAor5buVID4gecSrbjsgIzVFRDUKK+W7liA+IGxpw6BvOyAjNUVENgor5buXID4gZMOgaTsgIzVFRDcKK+W7mCA+IGzDuTsgIzVFRDgKK+W7mSA+IHnDrDsgIzVFRDkKK+W7miA+IGNow7o7ICM1RURBCivlu5sgPiBjaMOhbjsgIzVFREIKK+W7nCA+IHTFqzsgIzVFREMKK+W7nSA+IHPEqzsgIzVFREQKK+W7niA+IHjEq247ICM1RURFCivlu58gPiBtacOgbzsgIzVFREYKK+W7oCA+IGNoxINuZzsgIzVFRTAKK+W7oSA+IHfFrTsgIzVFRTEKK+W7oiA+IGbDqGk7ICM1RUUyCivlu6MgPiBndcSDbmc7ICM1RUUzCivlu6UgPiBrdcOgaTsgIzVFRTUKK+W7piA+IGLDrDsgIzVFRTYKK+W7pyA+IHFpw6FuZzsgIzVFRTcKK+W7qCA+IHhpw6g7ICM1RUU4Civlu6kgPiBsxK1uOyAjNUVFOQor5buqID4gbMStbjsgIzVFRUEKK+W7qyA+IGxpw6FvOyAjNUVFQgor5busID4gbMO6OyAjNUVFQwor5buuID4gecOtbmc7ICM1RUVFCivlu68gPiB4acSBbjsgIzVFRUYKK+W7sCA+IHTEq25nOyAjNUVGMAor5buxID4gecWNbmc7ICM1RUYxCivlu7IgPiBsw607ICM1RUYyCivlu7MgPiB0xKtuZzsgIzVFRjMKK+W7tCA+IHnErW47ICM1RUY0Civlu7UgPiB4w7puOyAjNUVGNQor5bu2ID4gecOhbjsgIzVFRjYKK+W7tyA+IHTDrW5nOyAjNUVGNwor5bu4ID4gZMOtOyAjNUVGOAor5bu5ID4gcMOyOyAjNUVGOQor5bu6ID4gamnDoG47ICM1RUZBCivlu7sgPiBow7ppOyAjNUVGQgor5bu8ID4gbsSDaTsgIzVFRkMKK+W7vSA+IGjDumk7ICM1RUZECivlu74gPiBnw7JuZzsgIzVFRkUKK+W7vyA+IG5pw6BuOyAjNUVGRgor5byAID4ga8SBaTsgIzVGMDAKK+W8gSA+IGJpw6BuOyAjNUYwMQor5byCID4gecOsOyAjNUYwMgor5byDID4gccOsOyAjNUYwMwor5byEID4gbsOybmc7ICM1RjA0CivlvIUgPiBmw6luOyAjNUYwNQor5byGID4gasWtOyAjNUYwNgor5byHID4gecSDbjsgIzVGMDcKK+W8iCA+IHnDrDsgIzVGMDgKK+W8iSA+IHrDoG5nOyAjNUYwOQor5byKID4gYsOsOyAjNUYwQQor5byLID4gecOsOyAjNUYwQgor5byMID4gecSrOyAjNUYwQwor5byNID4gw6hyOyAjNUYwRAor5byOID4gc8SBbjsgIzVGMEUKK+W8jyA+IHNow6w7ICM1RjBGCivlvJAgPiDDqHI7ICM1RjEwCivlvJEgPiBzaMOsOyAjNUYxMQor5bySID4gc2jDrDsgIzVGMTIKK+W8kyA+IGfFjW5nOyAjNUYxMwor5byUID4gZGnDoG87ICM1RjE0CivlvJUgPiB5xK1uOyAjNUYxNQor5byWID4gaMO5OyAjNUYxNgor5byXID4gZsO6OyAjNUYxNwor5byYID4gaMOzbmc7ICM1RjE4CivlvJkgPiB3xas7ICM1RjE5CivlvJogPiB0w7ppOyAjNUYxQQor5bybID4gY2jDrTsgIzVGMUIKK+W8nCA+IGppw6BuZzsgIzVGMUMKK+W8nSA+IGLDoDsgIzVGMUQKK+W8niA+IHNoxJVuOyAjNUYxRQor5byfID4gZMOsOyAjNUYxRgor5bygID4gemjEgW5nOyAjNUYyMAor5byhID4ganXDqTsgIzVGMjEKK+W8oiA+IHTEgW87ICM1RjIyCivlvKMgPiBmxa07ICM1RjIzCivlvKQgPiBkxK07ICM1RjI0CivlvKUgPiBtw607ICM1RjI1CivlvKYgPiB4acOhbjsgIzVGMjYKK+W8pyA+IGjDujsgIzVGMjcKK+W8qCA+IGNoxIFvOyAjNUYyOAor5bypID4gbsWtOyAjNUYyOQor5byqID4gasOsbmc7ICM1RjJBCivlvKsgPiB6aMSVbjsgIzVGMkIKK+W8rCA+IHnDrTsgIzVGMkMKK+W8rSA+IG3ErTsgIzVGMkQKK+W8riA+IHF1xIFuOyAjNUYyRQor5byvID4gd8SBbjsgIzVGMkYKK+W8sCA+IHNoxIFvOyAjNUYzMAor5byxID4gcsO5bzsgIzVGMzEKK+W8siA+IHh1xIFuOyAjNUYzMgor5byzID4gasOsbmc7ICM1RjMzCivlvLQgPiBkxatuOyAjNUYzNAor5by1ID4gemjEgW5nOyAjNUYzNQor5by2ID4gamnDoG5nOyAjNUYzNgor5by3ID4gcWnDoW5nOyAjNUYzNwor5by4ID4gcMOpbmc7ICM1RjM4CivlvLkgPiBkw6BuOyAjNUYzOQor5by6ID4gcWnDoW5nOyAjNUYzQQor5by7ID4gYsOsOyAjNUYzQgor5by8ID4gYsOsOyAjNUYzQwor5by9ID4gc2jDqDsgIzVGM0QKK+W8viA+IGTDoG47ICM1RjNFCivlvL8gPiBqacSDbjsgIzVGM0YKK+W9gCA+IGfDsnU7ICM1RjQwCivlvYIgPiBmxIE7ICM1RjQyCivlvYMgPiBiw6w7ICM1RjQzCivlvYQgPiBrxY11OyAjNUY0NAor5b2GID4gYmnDqDsgIzVGNDYKK+W9hyA+IHhpxIFvOyAjNUY0Nwor5b2IID4gZMOgbjsgIzVGNDgKK+W9iSA+IGvDuW87ICM1RjQ5CivlvYogPiBxacOhbmc7ICM1RjRBCivlvYsgPiBow7NuZzsgIzVGNEIKK+W9jCA+IG3DrTsgIzVGNEMKK+W9jSA+IGvDuW87ICM1RjRECivlvY4gPiB3xIFuOyAjNUY0RQor5b2PID4ganXDqTsgIzVGNEYKK+W9kCA+IGrDrDsgIzVGNTAKK+W9kSA+IGrDrDsgIzVGNTEKK+W9kiA+IGfFq2k7ICM1RjUyCivlvZMgPiBkxIFuZzsgIzVGNTMKK+W9lCA+IGzDuTsgIzVGNTQKK+W9lSA+IGzDuTsgIzVGNTUKK+W9liA+IHR1w6BuOyAjNUY1Ngor5b2XID4gaMO5aTsgIzVGNTcKK+W9mCA+IHpow6w7ICM1RjU4CivlvZkgPiBow7lpOyAjNUY1OQor5b2aID4gaMO5aTsgIzVGNUEKK+W9myA+IHnDrTsgIzVGNUIKK+W9nCA+IHnDrTsgIzVGNUMKK+W9nSA+IHnDrTsgIzVGNUQKK+W9niA+IHnDrTsgIzVGNUUKK+W9nyA+IGjDuW87ICM1RjVGCivlvaAgPiBow7lvOyAjNUY2MAor5b2hID4gc2jEgW47ICM1RjYxCivlvaIgPiB4w61uZzsgIzVGNjIKK+W9oyA+IHfDqW47ICM1RjYzCivlvaQgPiB0w7NuZzsgIzVGNjQKK+W9pSA+IHnDoG47ICM1RjY1CivlvaYgPiB5w6BuOyAjNUY2Ngor5b2nID4gecO5OyAjNUY2Nwor5b2oID4gY2jEqzsgIzVGNjgKK+W9qSA+IGPEg2k7ICM1RjY5CivlvaogPiBiacSBbzsgIzVGNkEKK+W9qyA+IGRpxIFvOyAjNUY2Qgor5b2sID4gYsSrbjsgIzVGNkMKK+W9rSA+IHDDqW5nOyAjNUY2RAor5b2uID4gecWPbmc7ICM1RjZFCivlva8gPiBwacSBbzsgIzVGNkYKK+W9sCA+IHpoxIFuZzsgIzVGNzAKK+W9sSA+IHnErW5nOyAjNUY3MQor5b2yID4gY2jEqzsgIzVGNzIKK+W9syA+IGNow6w7ICM1RjczCivlvbQgPiB6aMO6bzsgIzVGNzQKK+W9tSA+IHTFrW87ICM1Rjc1CivlvbYgPiBqw607ICM1Rjc2CivlvbcgPiBww6FuZzsgIzVGNzcKK+W9uCA+IHpoxY1uZzsgIzVGNzgKK+W9uSA+IHnDrDsgIzVGNzkKK+W9uiA+IHfDoW5nOyAjNUY3QQor5b27ID4gY2jDqDsgIzVGN0IKK+W9vCA+IGLErTsgIzVGN0MKK+W9vSA+IGNow607ICM1RjdECivlvb4gPiBsxK1uZzsgIzVGN0UKK+W9vyA+IGbDujsgIzVGN0YKK+W+gCA+IHfEg25nOyAjNUY4MAor5b6BID4gemjEk25nOyAjNUY4MQor5b6CID4gY8O6OyAjNUY4Mgor5b6DID4gd8SDbmc7ICM1RjgzCivlvoQgPiBqw6xuZzsgIzVGODQKK+W+hSA+IGTDoGk7ICM1Rjg1CivlvoYgPiB4xKs7ICM1Rjg2CivlvocgPiB4w7luOyAjNUY4Nwor5b6IID4gaMSVbjsgIzVGODgKK+W+iSA+IHnDoW5nOyAjNUY4OQor5b6KID4gaHXDoWk7ICM1RjhBCivlvosgPiBsx5w7ICM1RjhCCivlvowgPiBow7J1OyAjNUY4Qwor5b6NID4gd8SBOyAjNUY4RAor5b6OID4gY2jElW5nOyAjNUY4RQor5b6PID4gemjDrDsgIzVGOEYKK+W+kCA+IHjDujsgIzVGOTAKK+W+kSA+IGrDrG5nOyAjNUY5MQor5b6SID4gdMO6OyAjNUY5Mgor5b6TID4gY8Ozbmc7ICM1RjkzCivlvpUgPiBsw6FpOyAjNUY5NQor5b6WID4gY8Ozbmc7ICM1Rjk2CivlvpcgPiBkw6k7ICM1Rjk3CivlvpggPiBww6FpOyAjNUY5OAor5b6ZID4geMStOyAjNUY5OQor5b6bID4gccOsOyAjNUY5Qgor5b6cID4gY2jDoW5nOyAjNUY5Qwor5b6dID4gemjDrDsgIzVGOUQKK+W+niA+IGPDs25nOyAjNUY5RQor5b6fID4gemjFjXU7ICM1RjlGCivlvqAgPiBsw6FpOyAjNUZBMAor5b6hID4gecO5OyAjNUZBMQor5b6iID4geGnDqDsgIzVGQTIKK+W+oyA+IGppw6g7ICM1RkEzCivlvqQgPiBqacOgbjsgIzVGQTQKK+W+pSA+IGNow607ICM1RkE1CivlvqYgPiBqacSDOyAjNUZBNgor5b6nID4gYmnDoG47ICM1RkE3CivlvqggPiBodcOhbmc7ICM1RkE4CivlvqkgPiBmw7k7ICM1RkE5CivlvqogPiB4w7puOyAjNUZBQQor5b6rID4gd8SVaTsgIzVGQUIKK+W+rCA+IHDDoW5nOyAjNUZBQwor5b6tID4gecOhbzsgIzVGQUQKK+W+riA+IHfEk2k7ICM1RkFFCivlvq8gPiB4xKs7ICM1RkFGCivlvrAgPiB6aMSTbmc7ICM1RkIwCivlvrEgPiBwacOgbzsgIzVGQjEKK+W+siA+IGNow607ICM1RkIyCivlvrMgPiBkw6k7ICM1RkIzCivlvrQgPiB6aMSTbmc7ICM1RkI0CivlvrUgPiB6aMSTbmc7ICM1RkI1CivlvrYgPiBiacOoOyAjNUZCNgor5b63ID4gZMOpOyAjNUZCNwor5b64ID4gY2jFjW5nOyAjNUZCOAor5b65ID4gY2jDqDsgIzVGQjkKK+W+uiA+IGppxINvOyAjNUZCQQor5b67ID4gd8OoaTsgIzVGQkIKK+W+vCA+IGppw6BvOyAjNUZCQwor5b69ID4gaMWraTsgIzVGQkQKK+W+viA+IG3DqWk7ICM1RkJFCivlvr8gPiBsw7JuZzsgIzVGQkYKK+W/gCA+IHhpxIFuZzsgIzVGQzAKK+W/gSA+IGLDoG87ICM1RkMxCivlv4IgPiBxw7o7ICM1RkMyCivlv4MgPiB4xKtuOyAjNUZDMwor5b+EID4gc2jDuScgJ3jEq24nICdww6FuZzsgIzVGQzQKK+W/hSA+IGLDrDsgIzVGQzUKK+W/hiA+IHnDrDsgIzVGQzYKK+W/hyA+IGzDqDsgIzVGQzcKK+W/iCA+IHLDqW47ICM1RkM4Civlv4kgPiBkxIFvOyAjNUZDOQor5b+KID4gZMOsbmc7ICM1RkNBCivlv4sgPiBnxINpOyAjNUZDQgor5b+MID4gasOsOyAjNUZDQwor5b+NID4gcsSVbjsgIzVGQ0QKK+W/jiA+IHLDqW47ICM1RkNFCivlv48gPiBjaMOgbjsgIzVGQ0YKK+W/kCA+IHTEg247ICM1RkQwCivlv5EgPiB0w6g7ICM1RkQxCivlv5IgPiB0w6g7ICM1RkQyCivlv5MgPiBnxIFuOyAjNUZEMwor5b+UID4gccOsOyAjNUZENAor5b+VID4gc2jDrDsgIzVGRDUKK+W/liA+IGPFrW47ICM1RkQ2Civlv5cgPiB6aMOsOyAjNUZENwor5b+YID4gd8Ogbmc7ICM1RkQ4Civlv5kgPiBtw6FuZzsgIzVGRDkKK+W/miA+IHjEqzsgIzVGREEKK+W/myA+IGbDoW47ICM1RkRCCivlv5wgPiB5xKtuZzsgIzVGREMKK+W/nSA+IHRpxINuOyAjNUZERAor5b+eID4gbcOtbjsgIzVGREUKK+W/nyA+IG3DrW47ICM1RkRGCivlv6AgPiB6aMWNbmc7ICM1RkUwCivlv6EgPiBjaMWNbmc7ICM1RkUxCivlv6IgPiB3w7k7ICM1RkUyCivlv6MgPiBqw607ICM1RkUzCivlv6QgPiB3xa07ICM1RkU0Civlv6UgPiB4w6w7ICM1RkU1Civlv6YgPiB5w6g7ICM1RkU2Civlv6cgPiB5xY11OyAjNUZFNwor5b+oID4gd8OgbjsgIzVGRTgKK+W/qSA+IGPFjW5nOyAjNUZFOQor5b+qID4gemjFjW5nOyAjNUZFQQor5b+rID4ga3XDoGk7ICM1RkVCCivlv6wgPiB5w7k7ICM1RkVDCivlv60gPiBiacOgbjsgIzVGRUQKK+W/riA+IHpow6w7ICM1RkVFCivlv68gPiBxw607ICM1RkVGCivlv7AgPiBjw7lpOyAjNUZGMAor5b+xID4gY2jDqW47ICM1RkYxCivlv7IgPiB0w6BpOyAjNUZGMgor5b+zID4gdMO6bjsgIzVGRjMKK+W/tCA+IHFpw6FuOyAjNUZGNAor5b+1ID4gbmnDoG47ICM1RkY1Civlv7YgPiBow7puOyAjNUZGNgor5b+3ID4geMSrb25nOyAjNUZGNwor5b+4ID4gbsStdTsgIzVGRjgKK+W/uSA+IHfEg25nOyAjNUZGOQor5b+6ID4geGnEgW47ICM1RkZBCivlv7sgPiB4xKtuOyAjNUZGQgor5b+8ID4ga8SBbmc7ICM1RkZDCivlv70gPiBoxas7ICM1RkZECivlv74gPiBrw6BpOyAjNUZGRQor5b+/ID4gZsOobjsgIzVGRkYKK+aAgCA+IGh1w6FpOyAjNjAwMAor5oCBID4gdMOgaTsgIzYwMDEKK+aAgiA+IHPFj25nOyAjNjAwMgor5oCDID4gd8WtOyAjNjAwMwor5oCEID4gw7J1OyAjNjAwNAor5oCFID4gY2jDoG5nOyAjNjAwNQor5oCGID4gY2h1w6BuZzsgIzYwMDYKK+aAhyA+IGrDuTsgIzYwMDcKK+aAiCA+IHnDrDsgIzYwMDgKK+aAiSA+IGLEg287ICM2MDA5CivmgIogPiBjaMSBbzsgIzYwMEEKK+aAiyA+IG3DrW47ICM2MDBCCivmgIwgPiBwxJNpOyAjNjAwQwor5oCNID4gesO5bzsgIzYwMEQKK+aAjiA+IHrElW47ICM2MDBFCivmgI8gPiB5w6BuZzsgIzYwMEYKK+aAkCA+IGvDsnU7ICM2MDEwCivmgJEgPiBiw6BuOyAjNjAxMQor5oCSID4gbsO5OyAjNjAxMgor5oCTID4gbsOhbzsgIzYwMTMKK+aAlCA+IHpoxJNuZzsgIzYwMTQKK+aAlSA+IHDDoDsgIzYwMTUKK+aAliA+IGLDuTsgIzYwMTYKK+aAlyA+IHRpxJM7ICM2MDE3CivmgJggPiBnw7k7ICM2MDE4CivmgJkgPiBow7k7ICM2MDE5CivmgJogPiBqw7k7ICM2MDFBCivmgJsgPiBkw6E7ICM2MDFCCivmgJwgPiBsacOhbjsgIzYwMUMKK+aAnSA+IHPEqzsgIzYwMUQKK+aAniA+IGNoxY11OyAjNjAxRQor5oCfID4gZMOsOyAjNjAxRgor5oCgID4gZMOgaTsgIzYwMjAKK+aAoSA+IHnDrTsgIzYwMjEKK+aAoiA+IHTDujsgIzYwMjIKK+aAoyA+IHnDs3U7ICM2MDIzCivmgKQgPiBmxas7ICM2MDI0CivmgKUgPiBqw607ICM2MDI1CivmgKYgPiBwxJNuZzsgIzYwMjYKK+aApyA+IHjDrG5nOyAjNjAyNwor5oCoID4geXXDoG47ICM2MDI4CivmgKkgPiBuw607ICM2MDI5CivmgKogPiBndcOgaTsgIzYwMkEKK+aAqyA+IGbDujsgIzYwMkIKK+aArCA+IHjDrDsgIzYwMkMKK+aArSA+IGLDrDsgIzYwMkQKK+aAriA+IHnFjXU7ICM2MDJFCivmgK8gPiBxacOoOyAjNjAyRgor5oCwID4geHXDoG47ICM2MDMwCivmgLEgPiBjxY1uZzsgIzYwMzEKK+aAsiA+IGLErW5nOyAjNjAzMgor5oCzID4gaHXEg25nOyAjNjAzMwor5oC0ID4geMO5OyAjNjAzNAor5oC1ID4gY2jDuTsgIzYwMzUKK+aAtiA+IHDEqzsgIzYwMzYKK+aAtyA+IHjEqzsgIzYwMzcKK+aAuCA+IHjEqzsgIzYwMzgKK+aAuSA+IHTEgW47ICM2MDM5CivmgLsgPiB6xY9uZzsgIzYwM0IKK+aAvCA+IGTDuWk7ICM2MDNDCivmgL8gPiB5w6w7ICM2MDNGCivmgYAgPiBjaMStOyAjNjA0MAor5oGBID4gcsOobjsgIzYwNDEKK+aBgiA+IHjDum47ICM2MDQyCivmgYMgPiBzaMOsOyAjNjA0Mwor5oGEID4geMOsOyAjNjA0NAor5oGFID4gbMSDbzsgIzYwNDUKK+aBhiA+IGjDqW5nOyAjNjA0Ngor5oGHID4ga3XEgW5nOyAjNjA0Nwor5oGIID4gbcO6OyAjNjA0OAor5oGJID4gemjErTsgIzYwNDkKK+aBiiA+IHhpw6k7ICM2MDRBCivmgYsgPiBsacOgbjsgIzYwNEIKK+aBjCA+IHRpxIFvOyAjNjA0Qwor5oGNID4gaHXEg25nOyAjNjA0RAor5oGOID4gZGnDqTsgIzYwNEUKK+aBjyA+IGjEg287ICM2MDRGCivmgZAgPiBrxY9uZzsgIzYwNTAKK+aBkSA+IGfFrWk7ICM2MDUxCivmgZIgPiBow6luZzsgIzYwNTIKK+aBkyA+IHjEqzsgIzYwNTMKK+aBlCA+IHhpw6BvOyAjNjA1NAor5oGVID4gc2jDuTsgIzYwNTUKK+aBliA+IHPEqzsgIzYwNTYKK+aBlyA+IGt1xIM7ICM2MDU3CivmgZggPiBxxKt1OyAjNjA1OAor5oGZID4gecOgbmc7ICM2MDU5CivmgZogPiBow7lpOyAjNjA1QQor5oGbID4gaMO6aTsgIzYwNUIKK+aBnCA+IGNow6w7ICM2MDVDCivmgZ0gPiBqacOhOyAjNjA1RAor5oGeID4gecOtOyAjNjA1RQor5oGfID4geMSrb25nOyAjNjA1Rgor5oGgID4gZ3XDoGk7ICM2MDYwCivmgaEgPiBsw6xuOyAjNjA2MQor5oGiID4gaMWraTsgIzYwNjIKK+aBoyA+IHrDrDsgIzYwNjMKK+aBpCA+IHjDuTsgIzYwNjQKK+aBpSA+IGNoxK07ICM2MDY1CivmgaYgPiB4acOgbmc7ICM2MDY2CivmgacgPiBux5w7ICM2MDY3CivmgaggPiBow6huOyAjNjA2OAor5oGpID4gxJNuOyAjNjA2OQor5oGqID4ga8OoOyAjNjA2QQor5oGrID4gdMWNbmc7ICM2MDZCCivmgawgPiB0acOhbjsgIzYwNkMKK+aBrSA+IGfFjW5nOyAjNjA2RAor5oGuID4gcXXDoW47ICM2MDZFCivmga8gPiB4xKs7ICM2MDZGCivmgbAgPiBxacOgOyAjNjA3MAor5oGxID4geXXDqDsgIzYwNzEKK+aBsiA+IHDEk25nOyAjNjA3Mgor5oGzID4ga8SVbjsgIzYwNzMKK+aBtCA+IGTDqTsgIzYwNzQKK+aBtSA+IGjDuWk7ICM2MDc1CivmgbYgPiDDqDsgIzYwNzYKK+aBuCA+IHTDsm5nOyAjNjA3OAor5oG5ID4gecOgbjsgIzYwNzkKK+aBuiA+IGvEg2k7ICM2MDdBCivmgbsgPiBjw6g7ICM2MDdCCivmgbwgPiBuxINvOyAjNjA3Qwor5oG9ID4gecO5bjsgIzYwN0QKK+aBviA+IG3DoW5nOyAjNjA3RQor5oG/ID4gecWPbmc7ICM2MDdGCivmgoAgPiB5xY9uZzsgIzYwODAKK+aCgSA+IHl1xIFuOyAjNjA4MQor5oKCID4gcMSrOyAjNjA4Mgor5oKDID4ga8WtbjsgIzYwODMKK+aChCA+IHFpxINvOyAjNjA4NAor5oKFID4geXXDqDsgIzYwODUKK+aChiA+IHnDuTsgIzYwODYKK+aChyA+IHnDuTsgIzYwODcKK+aCiCA+IGppw6g7ICM2MDg4CivmgokgPiB4xKs7ICM2MDg5CivmgoogPiB6aMOpOyAjNjA4QQor5oKLID4gbMOsbjsgIzYwOEIKK+aCjCA+IHTDrDsgIzYwOEMKK+aCjSA+IGjDoG47ICM2MDhECivmgo4gPiBow6BvOyAjNjA4RQor5oKPID4gcWnDqDsgIzYwOEYKK+aCkCA+IHTDrDsgIzYwOTAKK+aCkSA+IGLDuTsgIzYwOTEKK+aCkiA+IHnDrDsgIzYwOTIKK+aCkyA+IHFpw6BuOyAjNjA5Mwor5oKUID4gaMWtaTsgIzYwOTQKK+aClSA+IHjEqzsgIzYwOTUKK+aCliA+IGLDqGk7ICM2MDk2CivmgpcgPiBtw6FuOyAjNjA5Nwor5oKYID4gecSrOyAjNjA5OAor5oKZID4gaMSTbmc7ICM2MDk5CivmgpogPiBzxY9uZzsgIzYwOUEKK+aCmyA+IHF1xIFuOyAjNjA5Qgor5oKcID4gY2jElW5nOyAjNjA5Qwor5oKdID4gaMWraTsgIzYwOUQKK+aCniA+IHfDuTsgIzYwOUUKK+aCnyA+IHfDuTsgIzYwOUYKK+aCoCA+IHnFjXU7ICM2MEEwCivmgqEgPiBsw607ICM2MEExCivmgqIgPiBsacOgbmc7ICM2MEEyCivmgqMgPiBodcOgbjsgIzYwQTMKK+aCpCA+IGPFjW5nOyAjNjBBNAor5oKlID4gecOsOyAjNjBBNQor5oKmID4geXXDqDsgIzYwQTYKK+aCpyA+IGzDrDsgIzYwQTcKK+aCqCA+IG7DrW47ICM2MEE4CivmgqkgPiBuxINvOyAjNjBBOQor5oKqID4gw6g7ICM2MEFBCivmgqsgPiBxdcOoOyAjNjBBQgor5oKsID4geHXDoW47ICM2MEFDCivmgq0gPiBxacSBbjsgIzYwQUQKK+aCriA+IHfDuTsgIzYwQUUKK+aCryA+IG3ErW47ICM2MEFGCivmgrAgPiBjw7NuZzsgIzYwQjAKK+aCsSA+IGbElWk7ICM2MEIxCivmgrIgPiBixJNpOyAjNjBCMgor5oKzID4gZMO6bzsgIzYwQjMKK+aCtCA+IGPDuWk7ICM2MEI0CivmgrUgPiBjaMOgbmc7ICM2MEI1CivmgrYgPiBtw6huOyAjNjBCNgor5oK3ID4gbMOsOyAjNjBCNwor5oK4ID4gasOsOyAjNjBCOAor5oK5ID4gZ3XDoG47ICM2MEI5CivmgrogPiBndcOgbjsgIzYwQkEKK+aCuyA+IHjDrG5nOyAjNjBCQgor5oK8ID4gZMOgbzsgIzYwQkMKK+aCvSA+IHHEqzsgIzYwQkQKK+aCviA+IGvFjW5nOyAjNjBCRQor5oK/ID4gdGnEg247ICM2MEJGCivmg4AgPiBsw7puOyAjNjBDMAor5oOBID4geMSrOyAjNjBDMQor5oOCID4ga8SDbjsgIzYwQzIKK+aDgyA+IGvFq247ICM2MEMzCivmg4QgPiBuw6w7ICM2MEM0Civmg4UgPiBxw61uZzsgIzYwQzUKK+aDhiA+IGNow7N1OyAjNjBDNgor5oOHID4gZMWrbjsgIzYwQzcKK+aDiCA+IGfFrW87ICM2MEM4Civmg4kgPiBjaMSBbjsgIzYwQzkKK+aDiiA+IGxpw6FuZzsgIzYwQ0EKK+aDiyA+IHfEg247ICM2MENCCivmg4wgPiB5dcSBbjsgIzYwQ0MKK+aDjSA+IGrEq247ICM2MENECivmg44gPiBqw6w7ICM2MENFCivmg48gPiBsw61uOyAjNjBDRgor5oOQID4gecO5OyAjNjBEMAor5oORID4gaMO5bzsgIzYwRDEKK+aDkiA+IGjDqTsgIzYwRDIKK+aDkyA+IHF1w6FuOyAjNjBEMwor5oOUID4gdMOhbjsgIzYwRDQKK+aDlSA+IHTDrDsgIzYwRDUKK+aDliA+IHTDrDsgIzYwRDYKK+aDlyA+IG5pxJM7ICM2MEQ3Civmg5ggPiB3xINuZzsgIzYwRDgKK+aDmSA+IGNow7lvOyAjNjBEOQor5oOaID4gYsWrOyAjNjBEQQor5oObID4gaMWrbjsgIzYwREIKK+aDnCA+IHjEqzsgIzYwREMKK+aDnSA+IHTEg25nOyAjNjBERAor5oOeID4geMSrbjsgIzYwREUKK+aDnyA+IHfDqWk7ICM2MERGCivmg6AgPiBow7lpOyAjNjBFMAor5oOhID4gw6g7ICM2MEUxCivmg6IgPiByxa1pOyAjNjBFMgor5oOjID4gesWPbmc7ICM2MEUzCivmg6QgPiBqacSBbjsgIzYwRTQKK+aDpSA+IHnFj25nOyAjNjBFNQor5oOmID4gZGnDoG47ICM2MEU2Civmg6cgPiBqw7k7ICM2MEU3Civmg6ggPiBjxINuOyAjNjBFOAor5oOpID4gY2jDqW5nOyAjNjBFOQor5oOqID4gZMOpOyAjNjBFQQor5oOrID4gYsOoaTsgIzYwRUIKK+aDrCA+IHFpw6g7ICM2MEVDCivmg60gPiBjw6FuOyAjNjBFRAor5oOuID4gZMOgbjsgIzYwRUUKK+aDryA+IGd1w6BuOyAjNjBFRgor5oOwID4gZMO5bzsgIzYwRjAKK+aDsSA+IG7Eg287ICM2MEYxCivmg7IgPiB5w7luOyAjNjBGMgor5oOzID4geGnEg25nOyAjNjBGMwor5oO0ID4gemjDuWk7ICM2MEY0Civmg7UgPiBkacOoOyAjNjBGNQor5oO2ID4gaHXDoW5nOyAjNjBGNgor5oO3ID4gY2jFrW47ICM2MEY3Civmg7ggPiBxw61vbmc7ICM2MEY4Civmg7kgPiByxJU7ICM2MEY5Civmg7ogPiB4xKtuZzsgIzYwRkEKK+aDuyA+IGPDqDsgIzYwRkIKK+aDvCA+IGJpxINuOyAjNjBGQwor5oO9ID4gaMWrbjsgIzYwRkQKK+aDviA+IHrFjW5nOyAjNjBGRQor5oO/ID4gdMOtOyAjNjBGRgor5oSAID4gcWnEg287ICM2MTAwCivmhIEgPiBjaMOzdTsgIzYxMDEKK+aEgiA+IGLDqGk7ICM2MTAyCivmhIMgPiB4dcSBbjsgIzYxMDMKK+aEhCA+IHfEk2k7ICM2MTA0CivmhIUgPiBnw6k7ICM2MTA1CivmhIYgPiBxacSBbjsgIzYxMDYKK+aEhyA+IHfElWk7ICM2MTA3CivmhIggPiB5w7k7ICM2MTA4CivmhIkgPiB5w7o7ICM2MTA5CivmhIogPiBiw6w7ICM2MTBBCivmhIsgPiB4dcSBbjsgIzYxMEIKK+aEjCA+IGh1w6BuOyAjNjEwQwor5oSNID4gbcStbjsgIzYxMEQKK+aEjiA+IGLDrDsgIzYxMEUKK+aEjyA+IHnDrDsgIzYxMEYKK+aEkCA+IG1pxINuOyAjNjExMAor5oSRID4gecWPbmc7ICM2MTExCivmhJIgPiBrw6BpOyAjNjExMgor5oSTID4gZMOgbmc7ICM2MTEzCivmhJQgPiB5xKtuOyAjNjExNAor5oSVID4gw6g7ICM2MTE1CivmhJYgPiBjaMOpbjsgIzYxMTYKK+aElyA+IG3DsnU7ICM2MTE3CivmhJggPiBrw6g7ICM2MTE4CivmhJkgPiBrw6g7ICM2MTE5CivmhJogPiB5w7o7ICM2MTFBCivmhJsgPiDDoGk7ICM2MTFCCivmhJwgPiBxacOoOyAjNjExQwor5oSdID4gecSDbjsgIzYxMUQKK+aEniA+IG7DuW87ICM2MTFFCivmhJ8gPiBnxINuOyAjNjExRgor5oSgID4gecO5bjsgIzYxMjAKK+aEoSA+IHrFj25nOyAjNjEyMQor5oSiID4gc8SBaTsgIzYxMjIKK+aEoyA+IGzDqW5nOyAjNjEyMwor5oSkID4gZsOobjsgIzYxMjQKK+aEpiA+IGvDuWk7ICM2MTI2CivmhKcgPiBrw7lpOyAjNjEyNwor5oSoID4gcXXDqDsgIzYxMjgKK+aEqSA+IGfFjW5nOyAjNjEyOQor5oSqID4gecO6bjsgIzYxMkEKK+aEqyA+IHPDuTsgIzYxMkIKK+aErCA+IHPDuTsgIzYxMkMKK+aErSA+IHHDrTsgIzYxMkQKK+aEriA+IHnDoW87ICM2MTJFCivmhK8gPiBzxY9uZzsgIzYxMkYKK+aEsCA+IGh1xINuZzsgIzYxMzAKK+aEsSA+IGrDrTsgIzYxMzEKK+aEsiA+IGfFrTsgIzYxMzIKK+aEsyA+IGrDuTsgIzYxMzMKK+aEtCA+IGNodcOgbmc7ICM2MTM0CivmhLUgPiBuw6w7ICM2MTM1CivmhLYgPiB4acOpOyAjNjEzNgor5oS3ID4ga8SDaTsgIzYxMzcKK+aEuCA+IHpoxJVuZzsgIzYxMzgKK+aEuSA+IHnFj25nOyAjNjEzOQor5oS6ID4gY8SDbzsgIzYxM0EKK+aEuyA+IHPDuW47ICM2MTNCCivmhLwgPiBzaMOobjsgIzYxM0MKK+aEvSA+IGLDszsgIzYxM0QKK+aEviA+IGvDoGk7ICM2MTNFCivmhL8gPiB5dcOgbjsgIzYxM0YKK+aFgCA+IHhpw6k7ICM2MTQwCivmhYEgPiBow7luOyAjNjE0MQor5oWCID4gecWPbmc7ICM2MTQyCivmhYMgPiB5xINuZzsgIzYxNDMKK+aFhCA+IGzDrDsgIzYxNDQKK+aFhSA+IHPEgW87ICM2MTQ1CivmhYYgPiB0xIFvOyAjNjE0Ngor5oWHID4gecSrbjsgIzYxNDcKK+aFiCA+IGPDrTsgIzYxNDgKK+aFiSA+IHjDuTsgIzYxNDkKK+aFiiA+IHFpw6BuOyAjNjE0QQor5oWLID4gdMOgaTsgIzYxNEIKK+aFjCA+IGh1xIFuZzsgIzYxNEMKK+aFjSA+IHnDuW47ICM2MTRECivmhY4gPiBzaMOobjsgIzYxNEUKK+aFjyA+IG3ErW5nOyAjNjE0Rgor5oWRID4gc2jDqDsgIzYxNTEKK+aFkiA+IGPDs25nOyAjNjE1Mgor5oWTID4gcGnDoG87ICM2MTUzCivmhZQgPiBtw7I7ICM2MTU0CivmhZUgPiBtw7k7ICM2MTU1CivmhZYgPiBnw7pvOyAjNjE1Ngor5oWXID4gY2jDrDsgIzYxNTcKK+aFmCA+IGPEg247ICM2MTU4CivmhZkgPiBjw6FuOyAjNjE1OQor5oWaID4gY8OhbjsgIzYxNUEKK+aFmyA+IGPDumk7ICM2MTVCCivmhZwgPiBtxK1uOyAjNjE1Qwor5oWdID4gdMOoOyAjNjE1RAor5oWeID4gemjEgW5nOyAjNjE1RQor5oWfID4gdMOybmc7ICM2MTVGCivmhaAgPiDDoG87ICM2MTYwCivmhaEgPiBzaHXEg25nOyAjNjE2MQor5oWiID4gbcOgbjsgIzYxNjIKK+aFoyA+IGd1w6BuOyAjNjE2Mwor5oWkID4gcXXDqDsgIzYxNjQKK+aFpSA+IHrDoG87ICM2MTY1CivmhaYgPiBqw6x1OyAjNjE2Ngor5oWnID4gaMO5aTsgIzYxNjcKK+aFqCA+IGvEg2k7ICM2MTY4CivmhakgPiBsacOhbjsgIzYxNjkKK+aFqiA+IMOydTsgIzYxNkEKK+aFqyA+IHPFj25nOyAjNjE2Qgor5oWsID4gasStbjsgIzYxNkMKK+aFrSA+IHnDrG47ICM2MTZECivmha4gPiBsx5w7ICM2MTZFCivmha8gPiBzaMSBbmc7ICM2MTZGCivmhbAgPiB3w6hpOyAjNjE3MAor5oWxID4gdHXDoW47ICM2MTcxCivmhbIgPiBtw6FuOyAjNjE3Mgor5oWzID4gcWnEgW47ICM2MTczCivmhbQgPiBzaMOoOyAjNjE3NAor5oW1ID4gecWNbmc7ICM2MTc1CivmhbYgPiBxw6xuZzsgIzYxNzYKK+aFtyA+IGvEgW5nOyAjNjE3Nwor5oW4ID4gZMOsOyAjNjE3OAor5oW5ID4gemjDrTsgIzYxNzkKK+aFuiA+IGzDs3U7ICM2MTdBCivmhbsgPiBqdcOgbjsgIzYxN0IKK+aFvCA+IHHEqzsgIzYxN0MKK+aFvSA+IHHEqzsgIzYxN0QKK+aFviA+IHnDuTsgIzYxN0UKK+aFvyA+IHDDrW5nOyAjNjE3Rgor5oaAID4gbGnDoW87ICM2MTgwCivmhoEgPiBjxY1uZzsgIzYxODEKK+aGgiA+IHnFjXU7ICM2MTgyCivmhoMgPiBjaMWNbmc7ICM2MTgzCivmhoQgPiB6aMOsOyAjNjE4NAor5oaFID4gdMOybmc7ICM2MTg1CivmhoYgPiBjaMSTbmc7ICM2MTg2CivmhocgPiBxw6w7ICM2MTg3CivmhoggPiBxxas7ICM2MTg4CivmhokgPiBww6luZzsgIzYxODkKK+aGiiA+IGLDqGk7ICM2MThBCivmhosgPiBiacSTOyAjNjE4Qgor5oaMID4gY2jDum47ICM2MThDCivmho0gPiBqacSBbzsgIzYxOEQKK+aGjiA+IHrEk25nOyAjNjE4RQor5oaPID4gY2jDrDsgIzYxOEYKK+aGkCA+IGxpw6FuOyAjNjE5MAor5oaRID4gcMOtbmc7ICM2MTkxCivmhpIgPiBrw7lpOyAjNjE5Mgor5oaTID4gaMO5aTsgIzYxOTMKK+aGlCA+IHFpw6FvOyAjNjE5NAor5oaVID4gY2jDqW5nOyAjNjE5NQor5oaWID4gecOsbjsgIzYxOTYKK+aGlyA+IHnDrG47ICM2MTk3CivmhpggPiB4xK07ICM2MTk4CivmhpkgPiB4xK07ICM2MTk5CivmhpogPiBkw6BuOyAjNjE5QQor5oabID4gdMOhbjsgIzYxOUIKK+aGnCA+IGTFrW87ICM2MTlDCivmhp0gPiBkw7lpOyAjNjE5RAor5oaeID4gZMO5aTsgIzYxOUUKK+aGnyA+IHPDuTsgIzYxOUYKK+aGoCA+IGp1w6k7ICM2MUEwCivmhqEgPiBjw6g7ICM2MUExCivmhqIgPiB4acSBbzsgIzYxQTIKK+aGoyA+IGbDoW47ICM2MUEzCivmhqQgPiBmw6huOyAjNjFBNAor5oalID4gbMOhbzsgIzYxQTUKK+aGpiA+IGzDoG87ICM2MUE2CivmhqcgPiBjaMWNbmc7ICM2MUE3CivmhqggPiBoxIFuOyAjNjFBOAor5oapID4gccOsOyAjNjFBOQor5oaqID4geGnDoW47ICM2MUFBCivmhqsgPiBtxK1uOyAjNjFBQgor5oasID4gasStbmc7ICM2MUFDCivmhq0gPiBsacSDbzsgIzYxQUQKK+aGriA+IHfFrTsgIzYxQUUKK+aGryA+IGPEg247ICM2MUFGCivmhrAgPiBqdcOpOyAjNjFCMAor5oaxID4gY8O5OyAjNjFCMQor5oayID4geGnDoG47ICM2MUIyCivmhrMgPiB0xINuOyAjNjFCMwor5oa0ID4gc2jDqW5nOyAjNjFCNAor5oa1ID4gcMSrOyAjNjFCNQor5oa2ID4gecOsOyAjNjFCNgor5oa3ID4gY2jFrTsgIzYxQjcKK+aGuCA+IHhpxIFuOyAjNjFCOAor5oa5ID4gbsOhbzsgIzYxQjkKK+aGuiA+IGTDoG47ICM2MUJBCivmhrsgPiB0xINuOyAjNjFCQgor5oa8ID4gasStbmc7ICM2MUJDCivmhr0gPiBzxY1uZzsgIzYxQkQKK+aGviA+IGjDoG47ICM2MUJFCivmhr8gPiBqacSBbzsgIzYxQkYKK+aHgCA+IHfDoGk7ICM2MUMwCivmh4EgPiBodcOhbjsgIzYxQzEKK+aHgiA+IGTFj25nOyAjNjFDMgor5oeDID4gccOtbjsgIzYxQzMKK+aHhCA+IHHDrW47ICM2MUM0Civmh4UgPiBxw7o7ICM2MUM1Civmh4YgPiBjxINvOyAjNjFDNgor5oeHID4ga8SVbjsgIzYxQzcKK+aHiCA+IHhpw6g7ICM2MUM4Civmh4kgPiB5w6xuZzsgIzYxQzkKK+aHiiA+IMOgbzsgIzYxQ0EKK+aHiyA+IG3DoG87ICM2MUNCCivmh4wgPiB5w6w7ICM2MUNDCivmh40gPiBsxK1uOyAjNjFDRAor5oeOID4gc8OoOyAjNjFDRQor5oePID4gasO5bjsgIzYxQ0YKK+aHkCA+IGh1w6FpOyAjNjFEMAor5oeRID4gbcOobjsgIzYxRDEKK+aHkiA+IGzEg247ICM2MUQyCivmh5MgPiDDoGk7ICM2MUQzCivmh5QgPiBsxK1uOyAjNjFENAor5oeVID4gecSBbjsgIzYxRDUKK+aHliA+IGd1xIE7ICM2MUQ2Civmh5cgPiB4acOgOyAjNjFENwor5oeYID4gY2jDrDsgIzYxRDgKK+aHmSA+IHnFrTsgIzYxRDkKK+aHmiA+IHnDrG47ICM2MURBCivmh5sgPiBkxIFpOyAjNjFEQgor5oecID4gbcOobmc7ICM2MURDCivmh50gPiDDoGk7ICM2MURECivmh54gPiBtw6luZzsgIzYxREUKK+aHnyA+IGTDuWk7ICM2MURGCivmh6AgPiBxw607ICM2MUUwCivmh6EgPiBtxY87ICM2MUUxCivmh6IgPiBsw6FuOyAjNjFFMgor5oejID4gbcOobjsgIzYxRTMKK+aHpCA+IGNow7N1OyAjNjFFNAor5oelID4gemjDrDsgIzYxRTUKK+aHpiA+IG7DuW87ICM2MUU2Civmh6cgPiBuw7lvOyAjNjFFNwor5oeoID4gecSBbjsgIzYxRTgKK+aHqSA+IHnEg25nOyAjNjFFOQor5oeqID4gYsOzOyAjNjFFQQor5oerID4gemjDrTsgIzYxRUIKK+aHrCA+IGt1w6BuZzsgIzYxRUMKK+aHrSA+IGt1w6BuZzsgIzYxRUQKK+aHriA+IHnFj3U7ICM2MUVFCivmh68gPiBmxas7ICM2MUVGCivmh7AgPiBsw611OyAjNjFGMAor5oexID4gbWnDqDsgIzYxRjEKK+aHsiA+IGNow6luZzsgIzYxRjIKK+aHtCA+IGNow6BuOyAjNjFGNAor5oe1ID4gbcOpbmc7ICM2MUY1Civmh7YgPiBsxINuOyAjNjFGNgor5oe3ID4gaHXDoWk7ICM2MUY3Civmh7ggPiB4dcOhbjsgIzYxRjgKK+aHuSA+IHLDoG5nOyAjNjFGOQor5oe6ID4gY2jDoG47ICM2MUZBCivmh7sgPiBqw6w7ICM2MUZCCivmh7wgPiBqw7k7ICM2MUZDCivmh70gPiBodcSBbjsgIzYxRkQKK+aHviA+IHNow6g7ICM2MUZFCivmh78gPiB5w6w7ICM2MUZGCivmiIAgPiBsacOgbjsgIzYyMDAKK+aIgSA+IG7Eg247ICM2MjAxCivmiIIgPiBtw607ICM2MjAyCivmiIMgPiB0xINuZzsgIzYyMDMKK+aIhCA+IGp1w6k7ICM2MjA0CivmiIUgPiBnw6BuZzsgIzYyMDUKK+aIhiA+IGfDoG5nOyAjNjIwNgor5oiHID4gZ8Ogbmc7ICM2MjA3CivmiIggPiBnxJM7ICM2MjA4CivmiIkgPiB5dcOoOyAjNjIwOQor5oiKID4gd8O5OyAjNjIwQQor5oiLID4gamnEgW47ICM2MjBCCivmiIwgPiB4xas7ICM2MjBDCivmiI0gPiBzaMO5OyAjNjIwRAor5oiOID4gcsOzbmc7ICM2MjBFCivmiI8gPiB4w6w7ICM2MjBGCivmiJAgPiBjaMOpbmc7ICM2MjEwCivmiJEgPiB3xY87ICM2MjExCivmiJIgPiBqacOoOyAjNjIxMgor5oiTID4gZ8STOyAjNjIxMwor5oiUID4gamnEgW47ICM2MjE0CivmiJUgPiBxacSBbmc7ICM2MjE1CivmiJYgPiBow7lvOyAjNjIxNgor5oiXID4gcWnEgW5nOyAjNjIxNwor5oiYID4gemjDoG47ICM2MjE4CivmiJkgPiBkw7JuZzsgIzYyMTkKK+aImiA+IHHEqzsgIzYyMUEKK+aImyA+IGppw6E7ICM2MjFCCivmiJwgPiBkacOpOyAjNjIxQwor5oidID4gesOpaTsgIzYyMUQKK+aIniA+IGppw6E7ICM2MjFFCivmiJ8gPiBqxK07ICM2MjFGCivmiKAgPiBzaMOsOyAjNjIyMAor5oihID4ga8SBbjsgIzYyMjEKK+aIoiA+IGrDrTsgIzYyMjIKK+aIoyA+IGvDumk7ICM2MjIzCivmiKQgPiBnw6BpOyAjNjIyNAor5oilID4gZMSVbmc7ICM2MjI1CivmiKYgPiB6aMOgbjsgIzYyMjYKK+aIpyA+IGNodcSBbmc7ICM2MjI3CivmiKggPiBnxJM7ICM2MjI4CivmiKkgPiBqacSDbjsgIzYyMjkKK+aIqiA+IGppw6k7ICM2MjJBCivmiKsgPiB5w7k7ICM2MjJCCivmiKwgPiBqacSDbjsgIzYyMkMKK+aIrSA+IHnEg247ICM2MjJECivmiK4gPiBsw7k7ICM2MjJFCivmiK8gPiB4w6w7ICM2MjJGCivmiLAgPiB6aMOgbjsgIzYyMzAKK+aIsSA+IHjDrDsgIzYyMzEKK+aIsiA+IHjDrDsgIzYyMzIKK+aIsyA+IGNoxatvOyAjNjIzMwor5oi0ID4gZMOgaTsgIzYyMzQKK+aItSA+IHHDujsgIzYyMzUKK+aItiA+IGjDuTsgIzYyMzYKK+aItyA+IGjDuTsgIzYyMzcKK+aIuCA+IGjDuTsgIzYyMzgKK+aIuSA+IMOoOyAjNjIzOQor5oi6ID4gc2jDrDsgIzYyM0EKK+aIuyA+IGzDrDsgIzYyM0IKK+aIvCA+IG3Eg287ICM2MjNDCivmiL0gPiBow7k7ICM2MjNECivmiL4gPiBsw6w7ICM2MjNFCivmiL8gPiBmw6FuZzsgIzYyM0YKK+aJgCA+IHPFrW87ICM2MjQwCivmiYEgPiBiacSDbjsgIzYyNDEKK+aJgiA+IGRpw6BuOyAjNjI0Mgor5omDID4gasSrb25nOyAjNjI0Mwor5omEID4gc2jEg25nOyAjNjI0NAor5omFID4gecOtOyAjNjI0NQor5omGID4gecStOyAjNjI0Ngor5omHID4gc2jDoG47ICM2MjQ3CivmiYggPiBow7k7ICM2MjQ4CivmiYkgPiBmxJNpOyAjNjI0OQor5omKID4gecSDbjsgIzYyNEEKK+aJiyA+IHNoxY91OyAjNjI0Qgor5omMID4gdMyEJyAnc2jFj3UnICdww6FuZzsgIzYyNEMKK+aJjSA+IGPDoWk7ICM2MjRECivmiY4gPiB6aMSBOyAjNjI0RQor5omPID4gccOtdTsgIzYyNEYKK+aJkCA+IGzDqDsgIzYyNTAKK+aJkSA+IGLFqzsgIzYyNTEKK+aJkiA+IGLEgTsgIzYyNTIKK+aJkyA+IGTEgzsgIzYyNTMKK+aJlCA+IHLEk25nOyAjNjI1NAor5omVID4gZsO6OyAjNjI1NQor5omXID4gesOgaTsgIzYyNTcKK+aJmCA+IHTFq287ICM2MjU4CivmiZkgPiB6aMOgbmc7ICM2MjU5CivmiZogPiBkacSBbzsgIzYyNUEKK+aJmyA+IGvDoW5nOyAjNjI1Qgor5omcID4gecWrOyAjNjI1Qwor5omdID4ga8WrOyAjNjI1RAor5omeID4gaMOgbjsgIzYyNUUKK+aJnyA+IHNoxJNuOyAjNjI1Rgor5omgID4gY2jEgTsgIzYyNjAKK+aJoSA+IHnErTsgIzYyNjEKK+aJoiA+IGfFrTsgIzYyNjIKK+aJoyA+IGvDsnU7ICM2MjYzCivmiaQgPiB3w7k7ICM2MjY0CivmiaUgPiB0xatvOyAjNjI2NQor5ommID4gcWnEgW47ICM2MjY2CivmiacgPiB6aMOtOyAjNjI2Nwor5omoID4gcsOobjsgIzYyNjgKK+aJqSA+IGvDuW87ICM2MjY5CivmiaogPiBtw6luOyAjNjI2QQor5omrID4gc8SDbzsgIzYyNkIKK+aJrCA+IHnDoW5nOyAjNjI2Qwor5omtID4gbsStdTsgIzYyNkQKK+aJriA+IGLDoG47ICM2MjZFCivmia8gPiBjaMSVOyAjNjI2Rgor5omwID4gcsSDbzsgIzYyNzAKK+aJsSA+IHjEqzsgIzYyNzEKK+aJsiA+IHFpw6FuOyAjNjI3Mgor5omzID4gYsSBbjsgIzYyNzMKK+aJtCA+IGppw6E7ICM2Mjc0CivmibUgPiB5w7o7ICM2Mjc1CivmibYgPiBmw7o7ICM2Mjc2CivmibcgPiDDoG87ICM2Mjc3CivmibggPiB4xKs7ICM2Mjc4CivmibkgPiBwxKs7ICM2Mjc5CivmibogPiB6aMStOyAjNjI3QQor5om7ID4gesOsOyAjNjI3Qgor5om8ID4gw6g7ICM2MjdDCivmib0gPiBkw7luOyAjNjI3RAor5om+ID4gemjEg287ICM2MjdFCivmib8gPiBjaMOpbmc7ICM2MjdGCivmioAgPiBqw6w7ICM2MjgwCivmioEgPiB5xINuOyAjNjI4MQor5oqCID4ga3XDoW5nOyAjNjI4Mgor5oqDID4gYmnDoG47ICM2MjgzCivmioQgPiBjaMSBbzsgIzYyODQKK+aKhSA+IGrFqzsgIzYyODUKK+aKhiA+IHfDqG47ICM2Mjg2CivmiocgPiBow7o7ICM2Mjg3CivmioggPiB5dcOoOyAjNjI4OAor5oqJID4ganXDqTsgIzYyODkKK+aKiiA+IGLEgzsgIzYyOEEKK+aKiyA+IHHDrG47ICM2MjhCCivmiowgPiB6aMSVbjsgIzYyOEMKK+aKjSA+IHpoxJVuZzsgIzYyOEQKK+aKjiA+IHnFrW47ICM2MjhFCivmio8gPiB3w6FuOyAjNjI4Rgor5oqQID4gbsO5OyAjNjI5MAor5oqRID4gecOsOyAjNjI5MQor5oqSID4gc2jFqzsgIzYyOTIKK+aKkyA+IHpodcSBOyAjNjI5Mwor5oqUID4gcMOzdTsgIzYyOTQKK+aKlSA+IHTDs3U7ICM2Mjk1CivmipYgPiBkxY91OyAjNjI5Ngor5oqXID4ga8Ogbmc7ICM2Mjk3CivmipggPiB6aMOpOyAjNjI5OAor5oqZID4gcMOzdTsgIzYyOTkKK+aKmiA+IGbFrTsgIzYyOUEKK+aKmyA+IHDEgW87ICM2MjlCCivmipwgPiBiw6E7ICM2MjlDCivmip0gPiDEg287ICM2MjlECivmip4gPiB6w6k7ICM2MjlFCivmip8gPiB0dcOhbjsgIzYyOUYKK+aKoCA+IGvFjXU7ICM2MkEwCivmiqEgPiBsw7puOyAjNjJBMQor5oqiID4gcWnEg25nOyAjNjJBMgor5oqkID4gaMO5OyAjNjJBNAor5oqlID4gYsOgbzsgIzYyQTUKK+aKpiA+IGLErW5nOyAjNjJBNgor5oqnID4gemjErTsgIzYyQTcKK+aKqCA+IHDEk25nOyAjNjJBOAor5oqpID4gdMSBbjsgIzYyQTkKK+aKqiA+IHDFqzsgIzYyQUEKK+aKqyA+IHDEqzsgIzYyQUIKK+aKrCA+IHTDoWk7ICM2MkFDCivmiq0gPiB5xINvOyAjNjJBRAor5oquID4gemjElW47ICM2MkFFCivmiq8gPiB6aMSBOyAjNjJBRgor5oqwID4gecSDbmc7ICM2MkIwCivmirEgPiBiw6BvOyAjNjJCMQor5oqyID4gaMSTOyAjNjJCMgor5oqzID4gbsStOyAjNjJCMwor5oq0ID4gecOsOyAjNjJCNAor5oq1ID4gZMStOyAjNjJCNQor5oq2ID4gY2jDrDsgIzYyQjYKK+aKtyA+IHDEqzsgIzYyQjcKK+aKuCA+IHrEgTsgIzYyQjgKK+aKuSA+IG3FjzsgIzYyQjkKK+aKuiA+IG3FjzsgIzYyQkEKK+aKuyA+IHNow6huOyAjNjJCQgor5oq8ID4gecSBOyAjNjJCQwor5oq9ID4gY2jFjXU7ICM2MkJECivmir4gPiBxxas7ICM2MkJFCivmir8gPiBtxK1uOyAjNjJCRgor5ouAID4gY2jDuTsgIzYyQzAKK+aLgSA+IGppxIE7ICM2MkMxCivmi4IgPiBmw7o7ICM2MkMyCivmi4MgPiB6aMSDbjsgIzYyQzMKK+aLhCA+IHpoxa07ICM2MkM0Civmi4UgPiBkw6BuOyAjNjJDNQor5ouGID4gY2jEgWk7ICM2MkM2Civmi4cgPiBtxa07ICM2MkM3Civmi4ggPiBuacOhbjsgIzYyQzgKK+aLiSA+IGzEgTsgIzYyQzkKK+aLiiA+IGbFrTsgIzYyQ0EKK+aLiyA+IHDEgW87ICM2MkNCCivmi4wgPiBiw6BuOyAjNjJDQwor5ouNID4gcMSBaTsgIzYyQ0QKK+aLjiA+IGzEq25nOyAjNjJDRQor5ouPID4gbsOhOyAjNjJDRgor5ouQID4gZ3XEg2k7ICM2MkQwCivmi5EgPiBxacOhbjsgIzYyRDEKK+aLkiA+IGrDuTsgIzYyRDIKK+aLkyA+IHTDuW87ICM2MkQzCivmi5QgPiBiw6E7ICM2MkQ0Civmi5UgPiB0xatvOyAjNjJENQor5ouWID4gdMWrbzsgIzYyRDYKK+aLlyA+IMSDbzsgIzYyRDcKK+aLmCA+IGrFqzsgIzYyRDgKK+aLmSA+IHpow7pvOyAjNjJEOQor5ouaID4gcMOgbjsgIzYyREEKK+aLmyA+IHpoxIFvOyAjNjJEQgor5oucID4gYsOgaTsgIzYyREMKK+aLnSA+IGLDoGk7ICM2MkRECivmi54gPiBkxK07ICM2MkRFCivmi58gPiBuxK07ICM2MkRGCivmi6AgPiBqw7k7ICM2MkUwCivmi6EgPiBrw7lvOyAjNjJFMQor5ouiID4gbMWPbmc7ICM2MkUyCivmi6MgPiBqacSDbjsgIzYyRTMKK+aLpSA+IHnFj25nOyAjNjJFNQor5oumID4gbMOhbjsgIzYyRTYKK+aLpyA+IG7DrW5nOyAjNjJFNwor5ouoID4gYsWNOyAjNjJFOAor5oupID4gesOpOyAjNjJFOQor5ouqID4gcWnEgW47ICM2MkVBCivmi6sgPiBow6luOyAjNjJFQgor5ousID4gZ3XEgTsgIzYyRUMKK+aLrSA+IHNow6w7ICM2MkVECivmi64gPiBqacOpOyAjNjJFRQor5ouvID4gemjElW5nOyAjNjJFRgor5ouwID4gbsStbjsgIzYyRjAKK+aLsSA+IGfFj25nOyAjNjJGMQor5ouyID4gZ8WPbmc7ICM2MkYyCivmi7MgPiBxdcOhbjsgIzYyRjMKK+aLtCA+IHNodcSBbjsgIzYyRjQKK+aLtSA+IGPDum47ICM2MkY1Civmi7YgPiB6xINuOyAjNjJGNgor5ou3ID4ga8SDbzsgIzYyRjcKK+aLuCA+IGNoxK07ICM2MkY4Civmi7kgPiB4acOpOyAjNjJGOQor5ou6ID4gY8OoOyAjNjJGQQor5ou7ID4gaMWraTsgIzYyRkIKK+aLvCA+IHDEq247ICM2MkZDCivmi70gPiB6aHXEgWk7ICM2MkZECivmi74gPiBzaMOtOyAjNjJGRQor5ou/ID4gbsOhOyAjNjJGRgor5oyAID4gYsOyOyAjNjMwMAor5oyBID4gY2jDrTsgIzYzMDEKK+aMgiA+IGd1w6A7ICM2MzAyCivmjIMgPiB6aMOsOyAjNjMwMwor5oyEID4ga8O5bzsgIzYzMDQKK+aMhSA+IGTFrW87ICM2MzA1CivmjIYgPiBkxa1vOyAjNjMwNgor5oyHID4gemjErTsgIzYzMDcKK+aMiCA+IHFpw6g7ICM2MzA4CivmjIkgPiDDoG47ICM2MzA5CivmjIogPiBuw7JuZzsgIzYzMEEKK+aMiyA+IHpow6huOyAjNjMwQgor5oyMID4gZ8OpOyAjNjMwQwor5oyNID4gamnDoG87ICM2MzBECivmjI4gPiBrxas7ICM2MzBFCivmjI8gPiBkw7JuZzsgIzYzMEYKK+aMkCA+IHLDujsgIzYzMTAKK+aMkSA+IHRpxIFvOyAjNjMxMQor5oySID4gbGnDqDsgIzYzMTIKK+aMkyA+IHpoxIE7ICM2MzEzCivmjJQgPiBsx5o7ICM2MzE0CivmjJUgPiBkacOpOyAjNjMxNQor5oyWID4gd8SBOyAjNjMxNgor5oyXID4ganXDqTsgIzYzMTcKK+aMmSA+IGrFrTsgIzYzMTkKK+aMmiA+IHpow6w7ICM2MzFBCivmjJsgPiBsdcOhbjsgIzYzMUIKK+aMnCA+IHnDoDsgIzYzMUMKK+aMnSA+IHpodcSBOyAjNjMxRAor5oyeID4gdMOgOyAjNjMxRQor5oyfID4geGnDqTsgIzYzMUYKK+aMoCA+IG7DoW87ICM2MzIwCivmjKEgPiBkxINuZzsgIzYzMjEKK+aMoiA+IGppxINvOyAjNjMyMgor5oyjID4gemjEk25nOyAjNjMyMwor5oykID4gasStOyAjNjMyNAor5oylID4gaMWraTsgIzYzMjUKK+aMpiA+IHjDum47ICM2MzI2CivmjKggPiDEgWk7ICM2MzI4CivmjKkgPiB0xatvOyAjNjMyOQor5oyqID4gbsO6bzsgIzYzMkEKK+aMqyA+IGPDuW87ICM2MzJCCivmjKwgPiBiw7M7ICM2MzJDCivmjK0gPiBnxJVuZzsgIzYzMkQKK+aMriA+IHTErTsgIzYzMkUKK+aMryA+IHpow6huOyAjNjMyRgor5oywID4gY2jDqW5nOyAjNjMzMAor5oyxID4gc8WrbzsgIzYzMzEKK+aMsiA+IHPFq287ICM2MzMyCivmjLMgPiBrxJNuZzsgIzYzMzMKK+aMtCA+IG3ElWk7ICM2MzM0CivmjLUgPiBsw7JuZzsgIzYzMzUKK+aMtiA+IGrDujsgIzYzMzYKK+aMtyA+IHDDqW5nOyAjNjMzNwor5oy4ID4gamnEg247ICM2MzM4CivmjLkgPiB5w6w7ICM2MzM5CivmjLogPiB0xK1uZzsgIzYzM0EKK+aMuyA+IHNoxIFuOyAjNjMzQgor5oy8ID4gbsO5bzsgIzYzM0MKK+aMvSA+IHfEg247ICM2MzNECivmjL4gPiB4acOpOyAjNjMzRQor5oy/ID4gY2jEgTsgIzYzM0YKK+aNgCA+IGbEk25nOyAjNjM0MAor5o2BID4gamnEg287ICM2MzQxCivmjYIgPiB3xa07ICM2MzQyCivmjYMgPiBqw7luOyAjNjM0Mwor5o2EID4gasOsdTsgIzYzNDQKK+aNhSA+IHTFj25nOyAjNjM0NQor5o2GID4ga8WtbjsgIzYzNDYKK+aNhyA+IGjDuW87ICM2MzQ3CivmjYggPiB0w7o7ICM2MzQ4CivmjYkgPiB6aMWrbzsgIzYzNDkKK+aNiiA+IHDDs3U7ICM2MzRBCivmjYsgPiBsw6g7ICM2MzRCCivmjYwgPiBixIE7ICM2MzRDCivmjY0gPiBow6BuOyAjNjM0RAor5o2OID4gc2jEgW87ICM2MzRFCivmjY8gPiBuacSTOyAjNjM0Rgor5o2QID4ganXEgW47ICM2MzUwCivmjZEgPiB6w6k7ICM2MzUxCivmjZIgPiBzxY9uZzsgIzYzNTIKK+aNkyA+IHnDqTsgIzYzNTMKK+aNlCA+IGp1w6k7ICM2MzU0CivmjZUgPiBixa07ICM2MzU1CivmjZYgPiBodcOhbjsgIzYzNTYKK+aNlyA+IGLDuTsgIzYzNTcKK+aNmCA+IHrDuW47ICM2MzU4CivmjZkgPiB5w6w7ICM2MzU5CivmjZogPiB6aMSBaTsgIzYzNUEKK+aNmyA+IGzHmjsgIzYzNUIKK+aNnCA+IHPFjXU7ICM2MzVDCivmjZ0gPiB0xatvOyAjNjM1RAor5o2eID4gbMSBbzsgIzYzNUUKK+aNnyA+IHPFrW47ICM2MzVGCivmjaAgPiBixIFuZzsgIzYzNjAKK+aNoSA+IGppxINuOyAjNjM2MQor5o2iID4gaHXDoG47ICM2MzYyCivmjaMgPiBkxINvOyAjNjM2Mwor5o2lID4gd8OgbjsgIzYzNjUKK+aNpiA+IHHDrW47ICM2MzY2CivmjacgPiBwxJVuZzsgIzYzNjcKK+aNqCA+IHNoxJU7ICM2MzY4CivmjakgPiBsacOoOyAjNjM2OQor5o2qID4gbcOtbjsgIzYzNkEKK+aNqyA+IG3DqW47ICM2MzZCCivmjawgPiBmxa07ICM2MzZDCivmja0gPiBixINpOyAjNjM2RAor5o2uID4gasO5OyAjNjM2RQor5o2vID4gZMSDbzsgIzYzNkYKK+aNsCA+IHfFjzsgIzYzNzAKK+aNsSA+IMOhaTsgIzYzNzEKK+aNsiA+IGp1xINuOyAjNjM3Mgor5o2zID4geXXDqDsgIzYzNzMKK+aNtCA+IHrFj25nOyAjNjM3NAor5o21ID4gY2jElW47ICM2Mzc1CivmjbYgPiBjaMO6aTsgIzYzNzYKK+aNtyA+IGppw6k7ICM2Mzc3CivmjbggPiB0xas7ICM2Mzc4CivmjbkgPiBiw6huOyAjNjM3OQor5o26ID4gbsOgOyAjNjM3QQor5o27ID4gbmnEg247ICM2MzdCCivmjbwgPiBuw7pvOyAjNjM3Qwor5o29ID4gesO6OyAjNjM3RAor5o2+ID4gd8OyOyAjNjM3RQor5o2/ID4geMSrOyAjNjM3Rgor5o6AID4geGnEgW47ICM2MzgwCivmjoEgPiBjaMOpbmc7ICM2MzgxCivmjoIgPiBkacSBbjsgIzYzODIKK+aOgyA+IHPEg287ICM2MzgzCivmjoQgPiBsw7puOyAjNjM4NAor5o6FID4gccOsbmc7ICM2Mzg1CivmjoYgPiBnxIFuZzsgIzYzODYKK+aOhyA+IGTDum87ICM2Mzg3CivmjoggPiBzaMOydTsgIzYzODgKK+aOiSA+IGRpw6BvOyAjNjM4OQor5o6KID4gcMOzdTsgIzYzOEEKK+aOiyA+IGTErTsgIzYzOEIKK+aOjCA+IHpoxINuZzsgIzYzOEMKK+aOjSA+IGfFrW47ICM2MzhECivmjo4gPiBqxK07ICM2MzhFCivmjo8gPiB0xIFvOyAjNjM4Rgor5o6QID4gcWnEgTsgIzYzOTAKK+aOkSA+IHHDrTsgIzYzOTEKK+aOkiA+IHDDoWk7ICM2MzkyCivmjpMgPiBzaMO6OyAjNjM5Mwor5o6UID4gcWnEgW47ICM2Mzk0CivmjpUgPiBsw6xuZzsgIzYzOTUKK+aOliA+IHnDrDsgIzYzOTYKK+aOlyA+IHnDoDsgIzYzOTcKK+aOmCA+IGp1w6k7ICM2Mzk4CivmjpkgPiB6aMSTbmc7ICM2Mzk5CivmjpogPiBsacSDbmc7ICM2MzlBCivmjpsgPiBndcOgOyAjNjM5Qgor5o6cID4gecStOyAjNjM5Qwor5o6dID4gaMO5bzsgIzYzOUQKK+aOniA+IHNow6BuOyAjNjM5RQor5o6fID4gemjElW5nOyAjNjM5Rgor5o6gID4gbMecZTsgIzYzQTAKK+aOoSA+IGPEg2k7ICM2M0ExCivmjqIgPiB0w6BuOyAjNjNBMgor5o6jID4gY2jDqDsgIzYzQTMKK+aOpCA+IGLEq25nOyAjNjNBNAor5o6lID4gamnEkzsgIzYzQTUKK+aOpiA+IHTDrDsgIzYzQTYKK+aOpyA+IGvDsm5nOyAjNjNBNwor5o6oID4gdMWraTsgIzYzQTgKK+aOqSA+IHnEg247ICM2M0E5CivmjqogPiBjw7lvOyAjNjNBQQor5o6rID4gesWNdTsgIzYzQUIKK+aOrCA+IGrDujsgIzYzQUMKK+aOrSA+IHRpw6BuOyAjNjNBRAor5o6uID4gcWnDoW47ICM2M0FFCivmjq8gPiBrw6huOyAjNjNBRgor5o6wID4gYsSBaTsgIzYzQjAKK+aOsSA+IHNoxY91OyAjNjNCMQor5o6yID4gamnEkzsgIzYzQjIKK+aOsyA+IGzFrTsgIzYzQjMKK+aOtCA+IGfDum87ICM2M0I0CivmjrcgPiB6aMOtOyAjNjNCNwor5o64ID4gZMSDbjsgIzYzQjgKK+aOuiA+IHhpxIFuOyAjNjNCQQor5o67ID4gc8SBbzsgIzYzQkIKK+aOvCA+IGd1w6BuOyAjNjNCQwor5o69ID4gcMOobmc7ICM2M0JECivmjr4gPiB5dcOgbjsgIzYzQkUKK+aOvyA+IG7DuW87ICM2M0JGCivmj4AgPiBqacSDbjsgIzYzQzAKK+aPgSA+IHpoxJNuOyAjNjNDMQor5o+CID4gasSrdTsgIzYzQzIKK+aPgyA+IGppxIFuOyAjNjNDMwor5o+EID4gecO6OyAjNjNDNAor5o+FID4gecOhbjsgIzYzQzUKK+aPhiA+IGvDumk7ICM2M0M2Civmj4cgPiBuxINuOyAjNjNDNwor5o+IID4gaMWNbmc7ICM2M0M4Civmj4kgPiByw7N1OyAjNjNDOQor5o+KID4gcMOsOyAjNjNDQQor5o+LID4gd8STaTsgIzYzQ0IKK+aPjCA+IHPEgWk7ICM2M0NDCivmj40gPiB6w7J1OyAjNjNDRAor5o+OID4geHXEgW47ICM2M0NFCivmj48gPiBtacOhbzsgIzYzQ0YKK+aPkCA+IHTDrTsgIzYzRDAKK+aPkSA+IG5pxJM7ICM2M0QxCivmj5IgPiBjaMSBOyAjNjNEMgor5o+TID4gc2jDrDsgIzYzRDMKK+aPlCA+IHrFj25nOyAjNjNENAor5o+VID4gemjDqG47ICM2M0Q1Civmj5YgPiB5xKs7ICM2M0Q2Civmj5cgPiBzaMWtbjsgIzYzRDcKK+aPmCA+IGjDqW5nOyAjNjNEOAor5o+ZID4gYmnDoG47ICM2M0Q5Civmj5ogPiB5w6FuZzsgIzYzREEKK+aPmyA+IGh1w6BuOyAjNjNEQgor5o+cID4gecSDbjsgIzYzREMKK+aPnSA+IHp1w6BuOyAjNjNERAor5o+eID4gxINuOyAjNjNERQor5o+fID4geMWrOyAjNjNERgor5o+gID4gecOgOyAjNjNFMAor5o+hID4gd8OyOyAjNjNFMQor5o+iID4ga8OoOyAjNjNFMgor5o+jID4gY2h1xINpOyAjNjNFMwor5o+kID4gasOtOyAjNjNFNAor5o+lID4gdMOsOyAjNjNFNQor5o+mID4gbMOhOyAjNjNFNgor5o+nID4gbMOgOyAjNjNFNwor5o+oID4gY2jDqW5nOyAjNjNFOAor5o+pID4ga8SBaTsgIzYzRTkKK+aPqiA+IGrEq3U7ICM2M0VBCivmj6sgPiBqxKt1OyAjNjNFQgor5o+sID4gdMO6OyAjNjNFQwor5o+tID4gamnEkzsgIzYzRUQKK+aPriA+IGjFq2k7ICM2M0VFCivmj68gPiBnxJNuZzsgIzYzRUYKK+aPsCA+IGNow7JuZzsgIzYzRjAKK+aPsSA+IHNow7lvOyAjNjNGMQor5o+yID4gc2jDqTsgIzYzRjIKK+aPsyA+IHhpw6g7ICM2M0YzCivmj7QgPiB5dcOhbjsgIzYzRjQKK+aPtSA+IHFpw6FuOyAjNjNGNQor5o+2ID4gecOpOyAjNjNGNgor5o+3ID4gY2jEgTsgIzYzRjcKK+aPuCA+IHpoxIE7ICM2M0Y4Civmj7kgPiBixJNpOyAjNjNGOQor5o+6ID4gecOhbzsgIzYzRkEKK+aPvSA+IGzEg247ICM2M0ZECivmj74gPiB3w6huOyAjNjNGRQor5o+/ID4gccOsbjsgIzYzRkYKK+aQgCA+IGNoxIFuOyAjNjQwMAor5pCBID4gZ8STOyAjNjQwMQor5pCCID4gbMWPdTsgIzY0MDIKK+aQgyA+IHrFj25nOyAjNjQwMwor5pCEID4gZ8STbmc7ICM2NDA0CivmkIUgPiBqacSDbzsgIzY0MDUKK+aQhiA+IGfDsnU7ICM2NDA2CivmkIcgPiBxw6xuOyAjNjQwNwor5pCIID4gecWPbmc7ICM2NDA4CivmkIkgPiBxdcOoOyAjNjQwOQor5pCKID4gY2jFjXU7ICM2NDBBCivmkIsgPiBjaMStOyAjNjQwQgor5pCMID4gemjEg247ICM2NDBDCivmkI0gPiBzxa1uOyAjNjQwRAor5pCOID4gc8WrbjsgIzY0MEUKK+aQjyA+IGLDszsgIzY0MEYKK+aQkCA+IGNow7k7ICM2NDEwCivmkJEgPiByxY9uZzsgIzY0MTEKK+aQkiA+IGLDqG5nOyAjNjQxMgor5pCTID4gY8WrbzsgIzY0MTMKK+aQlCA+IHPEgW87ICM2NDE0CivmkJUgPiBrw6g7ICM2NDE1CivmkJYgPiB5w6FvOyAjNjQxNgor5pCXID4gZMSDbzsgIzY0MTcKK+aQmCA+IHpoxKs7ICM2NDE4CivmkJkgPiBuw7k7ICM2NDE5CivmkJogPiB4acOpOyAjNjQxQQor5pCbID4gamnEgW47ICM2NDFCCivmkJwgPiBzxY11OyAjNjQxQwor5pCdID4gccStdTsgIzY0MUQKK+aQniA+IGfEg287ICM2NDFFCivmkJ8gPiB4acSDbjsgIzY0MUYKK+aQoCA+IHNow7lvOyAjNjQyMAor5pChID4gc8SDbmc7ICM2NDIxCivmkKIgPiBqw6xuOyAjNjQyMgor5pCjID4gbWnDqDsgIzY0MjMKK+aQpCA+IMOoOyAjNjQyNAor5pClID4gY2jDumk7ICM2NDI1CivmkKYgPiBuw7lvOyAjNjQyNgor5pCnID4gc2jEgW47ICM2NDI3CivmkKggPiB0w6A7ICM2NDI4CivmkKkgPiBqacOpOyAjNjQyOQor5pCqID4gdMOhbmc7ICM2NDJBCivmkKsgPiBww6FuOyAjNjQyQgor5pCsID4gYsSBbjsgIzY0MkMKK+aQrSA+IGTEgTsgIzY0MkQKK+aQriA+IGzDrDsgIzY0MkUKK+aQryA+IHTEgW87ICM2NDJGCivmkLAgPiBow7o7ICM2NDMwCivmkLEgPiB6aMOsOyAjNjQzMQor5pCyID4gd8SBOyAjNjQzMgor5pCzID4geGnDoTsgIzY0MzMKK+aQtCA+IHFpxIFuOyAjNjQzNAor5pC1ID4gd8OobjsgIzY0MzUKK+aQtiA+IHFpxINuZzsgIzY0MzYKK+aQtyA+IHRpw6FuOyAjNjQzNwor5pC4ID4gemjEk247ICM2NDM4CivmkLkgPiDDqDsgIzY0MzkKK+aQuiA+IHjEqzsgIzY0M0EKK+aQuyA+IG7DuW87ICM2NDNCCivmkLwgPiBxdcOhbjsgIzY0M0MKK+aQvSA+IGNow6E7ICM2NDNECivmkL4gPiB6aMOgOyAjNjQzRQor5pC/ID4gZ8OpOyAjNjQzRgor5pGAID4gd8WtOyAjNjQ0MAor5pGBID4gw6huOyAjNjQ0MQor5pGCID4gc2jDqDsgIzY0NDIKK+aRgyA+IGvDoW5nOyAjNjQ0Mwor5pGEID4gc2jDqDsgIzY0NDQKK+aRhSA+IHNoxas7ICM2NDQ1CivmkYYgPiBixINpOyAjNjQ0Ngor5pGHID4gecOhbzsgIzY0NDcKK+aRiCA+IGLDrG47ICM2NDQ4CivmkYkgPiBzxY11OyAjNjQ0OQor5pGKID4gdMSBbjsgIzY0NEEKK+aRiyA+IHPDoDsgIzY0NEIKK+aRjCA+IGNoxINuOyAjNjQ0Qwor5pGNID4gc8WrbzsgIzY0NEQKK+aRjiA+IGxpw6FvOyAjNjQ0RQor5pGPID4gY2jFjW5nOyAjNjQ0Rgor5pGQID4gY2h1xIFuZzsgIzY0NTAKK+aRkSA+IGfDum87ICM2NDUxCivmkZIgPiBiw6xuZzsgIzY0NTIKK+aRkyA+IGbDqW5nOyAjNjQ1Mwor5pGUID4gc2h1xIFpOyAjNjQ1NAor5pGVID4gZMOsOyAjNjQ1NQor5pGWID4gccOsOyAjNjQ1Ngor5pGXID4gc291OyAjNjQ1Nwor5pGYID4gemjEgWk7ICM2NDU4CivmkZkgPiBsacSDbjsgIzY0NTkKK+aRmiA+IHTDoW5nOyAjNjQ1QQor5pGbID4gY2jEqzsgIzY0NUIKK+aRnCA+IGd1w6BuOyAjNjQ1Qwor5pGdID4gbMO5OyAjNjQ1RAor5pGeID4gbMO6bzsgIzY0NUUKK+aRnyA+IGzFj3U7ICM2NDVGCivmkaAgPiB6xY9uZzsgIzY0NjAKK+aRoSA+IGfDoGk7ICM2NDYxCivmkaIgPiBow7k7ICM2NDYyCivmkaMgPiB6aMSBOyAjNjQ2Mwor5pGkID4gY2h1xINuZzsgIzY0NjQKK+aRpSA+IHTDoG5nOyAjNjQ2NQor5pGmID4gaHXDoDsgIzY0NjYKK+aRpyA+IGPFq2k7ICM2NDY3CivmkaggPiBuw6FpOyAjNjQ2OAor5pGpID4gbcOzOyAjNjQ2OQor5pGqID4gamnEgW5nOyAjNjQ2QQor5pGrID4gZ8WraTsgIzY0NkIKK+aRrCA+IHnDrG5nOyAjNjQ2Qwor5pGtID4gemjDrTsgIzY0NkQKK+aRriA+IMOhbzsgIzY0NkUKK+aRryA+IHpow6w7ICM2NDZGCivmkbAgPiBuacOoOyAjNjQ3MAor5pGxID4gbcOhbjsgIzY0NzEKK+aRsiA+IHNow6BuOyAjNjQ3Mgor5pGzID4ga8WNdTsgIzY0NzMKK+aRtCA+IHNoxas7ICM2NDc0CivmkbUgPiBzxa1vOyAjNjQ3NQor5pG2ID4gdHXDoW47ICM2NDc2CivmkbcgPiBqacSDbzsgIzY0NzcKK+aRuCA+IG3FjTsgIzY0NzgKK+aRuSA+IG3DszsgIzY0NzkKK+aRuiA+IHpow6k7ICM2NDdBCivmkbsgPiB4acSBbjsgIzY0N0IKK+aRvCA+IGvEk25nOyAjNjQ3Qwor5pG9ID4gcGnEg287ICM2NDdECivmkb4gPiBqacOgbmc7ICM2NDdFCivmkb8gPiB5xKtuOyAjNjQ3Rgor5pKAID4gZ8OydTsgIzY0ODAKK+aSgSA+IHFpxIFuOyAjNjQ4MQor5pKCID4gbMecZTsgIzY0ODIKK+aSgyA+IGrDrTsgIzY0ODMKK+aShCA+IHnEq25nOyAjNjQ4NAor5pKFID4ganXEkzsgIzY0ODUKK+aShiA+IHBpxJM7ICM2NDg2CivmkocgPiBwacSVOyAjNjQ4Nwor5pKIID4gbMSBbzsgIzY0ODgKK+aSiSA+IGTFq247ICM2NDg5CivmkoogPiB4acOgbjsgIzY0OEEKK+aSiyA+IHJ1w6FuOyAjNjQ4Qgor5pKMID4ga8O5aTsgIzY0OEMKK+aSjSA+IHrEg247ICM2NDhECivmko4gPiB5w6w7ICM2NDhFCivmko8gPiB4w7puOyAjNjQ4Rgor5pKQID4gY2jEk25nOyAjNjQ5MAor5pKRID4gY2jEk25nOyAjNjQ5MQor5pKSID4gc8SDOyAjNjQ5Mgor5pKTID4gbsOhbzsgIzY0OTMKK+aSlCA+IGjDqG5nOyAjNjQ5NAor5pKVID4gc8SrOyAjNjQ5NQor5pKWID4gcWnEg247ICM2NDk2CivmkpcgPiBodcOhbmc7ICM2NDk3CivmkpggPiBkxIE7ICM2NDk4CivmkpkgPiB6xa1uOyAjNjQ5OQor5pKaID4gbmnEg247ICM2NDlBCivmkpsgPiBsxK1uOyAjNjQ5Qgor5pKcID4gemjElW5nOyAjNjQ5Qwor5pKdID4gaMWraTsgIzY0OUQKK+aSniA+IHpodcOgbmc7ICM2NDlFCivmkp8gPiBqacSDbzsgIzY0OUYKK+aSoCA+IGrErTsgIzY0QTAKK+aSoSA+IGPEgW87ICM2NEExCivmkqIgPiBkxINuOyAjNjRBMgor5pKjID4gZMSDbjsgIzY0QTMKK+aSpCA+IGNow6g7ICM2NEE0CivmkqUgPiBixY07ICM2NEE1CivmkqYgPiBjaMSVOyAjNjRBNgor5pKnID4ganXDqTsgIzY0QTcKK+aSqCA+IHhpxIFvOyAjNjRBOAor5pKpID4gbGnDoW87ICM2NEE5CivmkqogPiBiw6huOyAjNjRBQQor5pKrID4gZsWtOyAjNjRBQgor5pKsID4gcWnDoG87ICM2NEFDCivmkq0gPiBiw7I7ICM2NEFECivmkq4gPiBjxatvOyAjNjRBRQor5pKvID4gemjDum87ICM2NEFGCivmkrAgPiB6aHXDoG47ICM2NEIwCivmkrEgPiB0xa1vOyAjNjRCMQor5pKyID4gcMWrOyAjNjRCMgor5pKzID4gccOsbjsgIzY0QjMKK+aStCA+IGTFq247ICM2NEI0CivmkrUgPiBuacSDbjsgIzY0QjUKK+aStyA+IHhpw6k7ICM2NEI3CivmkrggPiBsxa07ICM2NEI4CivmkrkgPiBqacSDbzsgIzY0QjkKK+aSuiA+IGN1xIFuOyAjNjRCQQor5pK7ID4gdMOgOyAjNjRCQgor5pK8ID4gaMOgbjsgIzY0QkMKK+aSvSA+IHFpw6BvOyAjNjRCRAor5pK+ID4gemh1xIE7ICM2NEJFCivmkr8gPiBqacSDbjsgIzY0QkYKK+aTgCA+IGfEg247ICM2NEMwCivmk4EgPiB5xY9uZzsgIzY0QzEKK+aTgiA+IGzDqWk7ICM2NEMyCivmk4MgPiBrxa1vOyAjNjRDMwor5pOEID4gbMWtOyAjNjRDNAor5pOFID4gc2jDoG47ICM2NEM1Civmk4YgPiB6aMO6bzsgIzY0QzYKK+aThyA+IHrDqTsgIzY0QzcKK+aTiCA+IHDFqzsgIzY0QzgKK+aTiSA+IGNow7lvOyAjNjRDOQor5pOKID4gasOtOyAjNjRDQQor5pOLID4gZMSDbmc7ICM2NENCCivmk4wgPiBzxa1vOyAjNjRDQwor5pONID4gY8SBbzsgIzY0Q0QKK+aTjiA+IHHDrW5nOyAjNjRDRQor5pOPID4gasOsbmc7ICM2NENGCivmk5AgPiBodcOgbjsgIzY0RDAKK+aTkSA+IGppxJM7ICM2NEQxCivmk5IgPiBxw61uOyAjNjREMgor5pOTID4ga3XEg2k7ICM2NEQzCivmk5QgPiBkxIFuOyAjNjRENAor5pOVID4geMSrOyAjNjRENQor5pOWID4gZ8SVOyAjNjRENgor5pOXID4gcMOsOyAjNjRENwor5pOYID4gYsOyOyAjNjREOAor5pOZID4gw6BvOyAjNjREOQor5pOaID4gasO5OyAjNjREQQor5pObID4gecOoOyAjNjREQgor5pOeID4gc8WPdTsgIzY0REUKK+aTnyA+IG3DrTsgIzY0REYKK+aToCA+IGrErTsgIzY0RTAKK+aToSA+IHTDoWk7ICM2NEUxCivmk6IgPiB6aMO6bzsgIzY0RTIKK+aToyA+IGTEg287ICM2NEUzCivmk6QgPiB4xK1uZzsgIzY0RTQKK+aTpSA+IGzEg247ICM2NEU1Civmk6YgPiBjxIE7ICM2NEU2Civmk6cgPiBqxa07ICM2NEU3Civmk6ggPiB5w6k7ICM2NEU4Civmk6kgPiByxa07ICM2NEU5Civmk6ogPiB5w6g7ICM2NEVBCivmk6sgPiB5w6g7ICM2NEVCCivmk6wgPiBuxK07ICM2NEVDCivmk60gPiBow7k7ICM2NEVECivmk64gPiBqw607ICM2NEVFCivmk68gPiBiw6xuOyAjNjRFRgor5pOwID4gbsOtbmc7ICM2NEYwCivmk7EgPiBnxJM7ICM2NEYxCivmk7IgPiB6aMOtOyAjNjRGMgor5pOzID4gamnDqTsgIzY0RjMKK+aTtCA+IGvDuW87ICM2NEY0Civmk7UgPiBtw7M7ICM2NEY1Civmk7YgPiBqacOgbjsgIzY0RjYKK+aTtyA+IHhpw6k7ICM2NEY3Civmk7ggPiBsacOoOyAjNjRGOAor5pO5ID4gdMSBbjsgIzY0RjkKK+aTuiA+IGLEg2k7ICM2NEZBCivmk7sgPiBzxY91OyAjNjRGQgor5pO8ID4gbMWtOyAjNjRGQwor5pO9ID4gbMecZTsgIzY0RkQKK+aTviA+IHLEg287ICM2NEZFCivmk78gPiB6aMOtOyAjNjRGRgor5pSAID4gcMSBbjsgIzY1MDAKK+aUgSA+IHnEg25nOyAjNjUwMQor5pSCID4gbMOoaTsgIzY1MDIKK+aUgyA+IHPDoDsgIzY1MDMKK+aUhCA+IHNoxas7ICM2NTA0CivmlIUgPiB6xINuOyAjNjUwNQor5pSGID4gbmnEg247ICM2NTA2CivmlIcgPiB4acSDbjsgIzY1MDcKK+aUiCA+IGrDuW47ICM2NTA4CivmlIkgPiBow7lvOyAjNjUwOQor5pSKID4gbMOsOyAjNjUwQQor5pSLID4gbMOgOyAjNjUwQgor5pSMID4gaMOgbjsgIzY1MEMKK+aUjSA+IHnDrW5nOyAjNjUwRAor5pSOID4gbMO6OyAjNjUwRQor5pSPID4gbMWPbmc7ICM2NTBGCivmlJAgPiBxacSBbjsgIzY1MTAKK+aUkSA+IHFpxIFuOyAjNjUxMQor5pSSID4gesSDbjsgIzY1MTIKK+aUkyA+IHFpxIFuOyAjNjUxMwor5pSUID4gbMOhbjsgIzY1MTQKK+aUlSA+IHPEgW47ICM2NTE1CivmlJYgPiB5xKtuZzsgIzY1MTYKK+aUlyA+IG3DqWk7ICM2NTE3CivmlJggPiByw6FuZzsgIzY1MTgKK+aUmSA+IGNoxIFuOyAjNjUxOQor5pSbID4gY3XEgW47ICM2NTFCCivmlJwgPiB4xKs7ICM2NTFDCivmlJ0gPiBzaMOoOyAjNjUxRAor5pSeID4gbMWtbzsgIzY1MUUKK+aUnyA+IGrDuW47ICM2NTFGCivmlKAgPiBtw607ICM2NTIwCivmlKEgPiBsw607ICM2NTIxCivmlKIgPiB6xINuOyAjNjUyMgor5pSjID4gbMeYYW47ICM2NTIzCivmlKQgPiB0xIFuOyAjNjUyNAor5pSlID4genXDoG47ICM2NTI1CivmlKYgPiBsw6w7ICM2NTI2CivmlKcgPiBkacSBbjsgIzY1MjcKK+aUqCA+IHfEgTsgIzY1MjgKK+aUqSA+IGTEg25nOyAjNjUyOQor5pSqID4gamnEg287ICM2NTJBCivmlKsgPiBqdcOpOyAjNjUyQgor5pSsID4gbMSDbjsgIzY1MkMKK+aUrSA+IGzDrDsgIzY1MkQKK+aUriA+IG7Eg25nOyAjNjUyRQor5pSvID4gemjEqzsgIzY1MkYKK+aUsCA+IGfDuWk7ICM2NTMwCivmlLEgPiBnxa1pOyAjNjUzMQor5pSyID4gccSrOyAjNjUzMgor5pSzID4geMOtbjsgIzY1MzMKK+aUtCA+IHDFqzsgIzY1MzQKK+aUtSA+IHPFq2k7ICM2NTM1CivmlLYgPiBzaMWNdTsgIzY1MzYKK+aUtyA+IGvDoW87ICM2NTM3CivmlLggPiB5xY11OyAjNjUzOAor5pS5ID4gZ8SDaTsgIzY1MzkKK+aUuiA+IHnErTsgIzY1M0EKK+aUuyA+IGfFjW5nOyAjNjUzQgor5pS8ID4gZ8SBbjsgIzY1M0MKK+aUvSA+IGLEgW47ICM2NTNECivmlL4gPiBmw6BuZzsgIzY1M0UKK+aUvyA+IHpow6huZzsgIzY1M0YKK+aVgCA+IGLDszsgIzY1NDAKK+aVgSA+IGRpxIFuOyAjNjU0MQor5pWCID4ga8OydTsgIzY1NDIKK+aVgyA+IG3ErW47ICM2NTQzCivmlYQgPiB3w7k7ICM2NTQ0CivmlYUgPiBnw7k7ICM2NTQ1CivmlYYgPiBow6k7ICM2NTQ2CivmlYcgPiBjw6g7ICM2NTQ3CivmlYggPiB4acOgbzsgIzY1NDgKK+aViSA+IG3ErTsgIzY1NDkKK+aViiA+IGNow7k7ICM2NTRBCivmlYsgPiBnw6k7ICM2NTRCCivmlYwgPiBkw607ICM2NTRDCivmlY0gPiB4w7k7ICM2NTRECivmlY4gPiBqacOgbzsgIzY1NEUKK+aVjyA+IG3ErW47ICM2NTRGCivmlZAgPiBjaMOpbjsgIzY1NTAKK+aVkSA+IGrDrHU7ICM2NTUxCivmlZIgPiB6aMOobjsgIzY1NTIKK+aVkyA+IGTDum87ICM2NTUzCivmlZQgPiB5xa07ICM2NTU0CivmlZUgPiBjaMOsOyAjNjU1NQor5pWWID4gw6FvOyAjNjU1Ngor5pWXID4gYsOgaTsgIzY1NTcKK+aVmCA+IHjDuTsgIzY1NTgKK+aVmSA+IGppw6BvOyAjNjU1OQor5pWaID4gZMO6bzsgIzY1NUEKK+aVmyA+IGxpw6BuOyAjNjU1Qgor5pWcID4gbmnDqDsgIzY1NUMKK+aVnSA+IGLDrDsgIzY1NUQKK+aVniA+IGNoxINuZzsgIzY1NUUKK+aVnyA+IGRpxINuOyAjNjU1Rgor5pWgID4gZMO6bzsgIzY1NjAKK+aVoSA+IHnDrDsgIzY1NjEKK+aVoiA+IGfEg247ICM2NTYyCivmlaMgPiBzw6BuOyAjNjU2Mwor5pWkID4ga8SVOyAjNjU2NAor5pWlID4gecOgbjsgIzY1NjUKK+aVpiA+IGTFq247ICM2NTY2CivmlacgPiBxxK07ICM2NTY3CivmlaggPiBkxY91OyAjNjU2OAor5pWpID4geGnDoG87ICM2NTY5CivmlaogPiBkw7pvOyAjNjU2QQor5pWrID4gamnDoG87ICM2NTZCCivmlawgPiBqw6xuZzsgIzY1NkMKK+aVrSA+IHnDoW5nOyAjNjU2RAor5pWuID4geGnDoTsgIzY1NkUKK+aVryA+IG3DrW47ICM2NTZGCivmlbAgPiBzaMO5OyAjNjU3MAor5pWxID4gw6FpOyAjNjU3MQor5pWyID4gcWnEgW87ICM2NTcyCivmlbMgPiDDoWk7ICM2NTczCivmlbQgPiB6aMSVbmc7ICM2NTc0CivmlbUgPiBkw607ICM2NTc1CivmlbYgPiB6aMOobjsgIzY1NzYKK+aVtyA+IGbFqzsgIzY1NzcKK+aVuCA+IHNow7k7ICM2NTc4CivmlbkgPiBsacOhbzsgIzY1NzkKK+aVuiA+IHHFqzsgIzY1N0EKK+aVuyA+IHjDrG9uZzsgIzY1N0IKK+aVvCA+IHjErTsgIzY1N0MKK+aVvSA+IGppxINvOyAjNjU3RAor5pW/ID4gamnEg287ICM2NTdGCivmloAgPiB6aMO6bzsgIzY1ODAKK+aWgSA+IHnDrDsgIzY1ODEKK+aWgiA+IGxpw6BuOyAjNjU4Mgor5paDID4gYsOsOyAjNjU4Mwor5paEID4gbMOsOyAjNjU4NAor5paFID4geGnDoG87ICM2NTg1CivmloYgPiB4acOgbzsgIzY1ODYKK+aWhyA+IHfDqW47ICM2NTg3CivmloggPiB4dcOpOyAjNjU4OAor5paJID4gccOtOyAjNjU4OQor5paKID4gccOtOyAjNjU4QQor5paLID4gemjEgWk7ICM2NThCCivmlowgPiBixKtuOyAjNjU4Qwor5paNID4ganXDqTsgIzY1OEQKK+aWjiA+IHpoxIFpOyAjNjU4RQor5paQID4gZsSVaTsgIzY1OTAKK+aWkSA+IGLEgW47ICM2NTkxCivmlpIgPiBixIFuOyAjNjU5Mgor5paTID4gbMOhbjsgIzY1OTMKK+aWlCA+IHnFrTsgIzY1OTQKK+aWlSA+IGzDoW47ICM2NTk1CivmlpYgPiB3xJVpOyAjNjU5Ngor5paXID4gZMWPdTsgIzY1OTcKK+aWmCA+IHNoxJNuZzsgIzY1OTgKK+aWmSA+IGxpw6BvOyAjNjU5OQor5paaID4gamnEgzsgIzY1OUEKK+aWmyA+IGjDujsgIzY1OUIKK+aWnCA+IHhpw6k7ICM2NTlDCivmlp0gPiBqacSDOyAjNjU5RAor5paeID4gecWtOyAjNjU5RQor5pafID4gemjEk247ICM2NTlGCivmlqAgPiBqacOgbzsgIzY1QTAKK+aWoSA+IHfDsjsgIzY1QTEKK+aWoiA+IHTFj3U7ICM2NUEyCivmlqMgPiBjaMO5OyAjNjVBMwor5pakID4gasSrbjsgIzY1QTQKK+aWpSA+IGNow6w7ICM2NUE1CivmlqYgPiB5w61uOyAjNjVBNgor5panID4gZsWtOyAjNjVBNwor5paoID4gcWnEgW5nOyAjNjVBOAor5papID4gemjEg247ICM2NUE5CivmlqogPiBxw7o7ICM2NUFBCivmlqsgPiB6aMO6bzsgIzY1QUIKK+aWrCA+IHpoxINuOyAjNjVBQwor5patID4gZHXDoG47ICM2NUFECivmlq4gPiB6aMO6bzsgIzY1QUUKK+aWryA+IHPEqzsgIzY1QUYKK+aWsCA+IHjEq247ICM2NUIwCivmlrEgPiB6aMO6bzsgIzY1QjEKK+aWsiA+IHpow7pvOyAjNjVCMgor5pazID4gccOtbjsgIzY1QjMKK+aWtCA+IGzDrW47ICM2NUI0CivmlrUgPiB6aMO6bzsgIzY1QjUKK+aWtiA+IGNow7k7ICM2NUI2CivmlrcgPiBkdcOgbjsgIzY1QjcKK+aWuCA+IHpoxa07ICM2NUI4CivmlrkgPiBmxIFuZzsgIzY1QjkKK+aWuiA+IHhpw6g7ICM2NUJBCivmlrsgPiBow6FuZzsgIzY1QkIKK+aWvCA+IHnDujsgIzY1QkMKK+aWvSA+IHNoxKs7ICM2NUJECivmlr4gPiBww6hpOyAjNjVCRQor5pa/ID4gecOzdTsgIzY1QkYKK+aXgSA+IHDDoW5nOyAjNjVDMQor5peCID4gccOtOyAjNjVDMgor5peDID4gemjEgW47ICM2NUMzCivml4QgPiBtw6FvOyAjNjVDNAor5peFID4gbMeaOyAjNjVDNQor5peGID4gcMOoaTsgIzY1QzYKK+aXhyA+IHDEqzsgIzY1QzcKK+aXiCA+IGzDrXU7ICM2NUM4Civml4kgPiBmxas7ICM2NUM5Civml4ogPiBmxINuZzsgIzY1Q0EKK+aXiyA+IHh1w6FuOyAjNjVDQgor5peMID4gasSrbmc7ICM2NUNDCivml40gPiBqxKtuZzsgIzY1Q0QKK+aXjiA+IG7ErTsgIzY1Q0UKK+aXjyA+IHrDujsgIzY1Q0YKK+aXkCA+IHpow6BvOyAjNjVEMAor5peRID4gecStOyAjNjVEMQor5peSID4gbMOtdTsgIzY1RDIKK+aXkyA+IHNoxIFvOyAjNjVEMwor5peUID4gamnDoG47ICM2NUQ0Civml5YgPiB5xK07ICM2NUQ2Civml5cgPiBxw607ICM2NUQ3Civml5ggPiB6aMOsOyAjNjVEOAor5peZID4gZsSBbjsgIzY1RDkKK+aXmiA+IHBpxIFvOyAjNjVEQQor5pebID4gZsSBbjsgIzY1REIKK+aXnCA+IHpoxIFuOyAjNjVEQwor5pedID4gZ3XDoGk7ICM2NURECivml54gPiBzw7lpOyAjNjVERQor5pefID4gecO6OyAjNjVERgor5pegID4gd8O6OyAjNjVFMAor5pehID4gasOsOyAjNjVFMQor5peiID4gasOsOyAjNjVFMgor5pejID4gasOsOyAjNjVFMwor5pekID4gaMO5bzsgIzY1RTQKK+aXpSA+IHLDrDsgIzY1RTUKK+aXpiA+IGTDoG47ICM2NUU2Civml6cgPiBqw6x1OyAjNjVFNwor5peoID4gemjErTsgIzY1RTgKK+aXqSA+IHrEg287ICM2NUU5Civml6ogPiB4acOpOyAjNjVFQQor5perID4gdGnEgW87ICM2NUVCCivml6wgPiB4w7puOyAjNjVFQwor5petID4geMO5OyAjNjVFRAor5peuID4geMO5OyAjNjVFRQor5pevID4geMO5OyAjNjVFRgor5pewID4gZ8OgbjsgIzY1RjAKK+aXsSA+IGjDoG47ICM2NUYxCivml7IgPiB0w6FpOyAjNjVGMgor5pezID4gZMOsOyAjNjVGMwor5pe0ID4geMWrOyAjNjVGNAor5pe1ID4gY2jEg247ICM2NUY1Civml7YgPiBzaMOtOyAjNjVGNgor5pe3ID4ga3XDoG5nOyAjNjVGNwor5pe4ID4gecOhbmc7ICM2NUY4Civml7kgPiBzaMOtOyAjNjVGOQor5pe6ID4gd8Ogbmc7ICM2NUZBCivml7sgPiBtw61uOyAjNjVGQgor5pe8ID4gbcOtbjsgIzY1RkMKK+aXvSA+IHTFq247ICM2NUZECivml74gPiBjaMWrbjsgIzY1RkUKK+aXvyA+IHfFrTsgIzY1RkYKK+aYgCA+IHnDum47ICM2NjAwCivmmIEgPiBiw6hpOyAjNjYwMQor5piCID4gw6FuZzsgIzY2MDIKK+aYgyA+IHrDqDsgIzY2MDMKK+aYhCA+IGLEg247ICM2NjA0CivmmIUgPiBqacOpOyAjNjYwNQor5piGID4ga8WrbjsgIzY2MDYKK+aYhyA+IHNoxJNuZzsgIzY2MDcKK+aYiCA+IGjDuTsgIzY2MDgKK+aYiSA+IGbEg25nOyAjNjYwOQor5piKID4gaMOgbzsgIzY2MEEKK+aYiyA+IGfDuWk7ICM2NjBCCivmmIwgPiBjaMSBbmc7ICM2NjBDCivmmI0gPiB4dcSBbjsgIzY2MEQKK+aYjiA+IG3DrW5nOyAjNjYwRQor5piPID4gaMWrbjsgIzY2MEYKK+aYkCA+IGbEk247ICM2NjEwCivmmJEgPiBxxK1uOyAjNjYxMQor5piSID4gaMWrOyAjNjYxMgor5piTID4gecOsOyAjNjYxMwor5piUID4geMOtOyAjNjYxNAor5piVID4geMSrbjsgIzY2MTUKK+aYliA+IHnDoW47ICM2NjE2CivmmJcgPiB6w6g7ICM2NjE3CivmmJggPiBmxINuZzsgIzY2MTgKK+aYmSA+IHTDoW47ICM2NjE5CivmmJogPiBzaMOobjsgIzY2MUEKK+aYmyA+IGrDuTsgIzY2MUIKK+aYnCA+IHnDoW5nOyAjNjYxQwor5pidID4gesSDbjsgIzY2MUQKK+aYniA+IGLErW5nOyAjNjYxRQor5pifID4geMSrbmc7ICM2NjFGCivmmKAgPiB5w6xuZzsgIzY2MjAKK+aYoSA+IHh1w6BuOyAjNjYyMQor5piiID4gcMSVaTsgIzY2MjIKK+aYoyA+IHpoxJVuOyAjNjYyMwor5pikID4gbMSrbmc7ICM2NjI0CivmmKUgPiBjaMWrbjsgIzY2MjUKK+aYpiA+IGjDoG87ICM2NjI2CivmmKcgPiBtw6hpOyAjNjYyNwor5pioID4gesO6bzsgIzY2MjgKK+aYqSA+IG3DsjsgIzY2MjkKK+aYqiA+IGJpw6BuOyAjNjYyQQor5pirID4geMWtOyAjNjYyQgor5pisID4gaMWrbjsgIzY2MkMKK+aYrSA+IHpoxIFvOyAjNjYyRAor5piuID4gesOybmc7ICM2NjJFCivmmK8gPiBzaMOsOyAjNjYyRgor5piwID4gc2jDrDsgIzY2MzAKK+aYsSA+IHnDuTsgIzY2MzEKK+aYsiA+IGbDqGk7ICM2NjMyCivmmLMgPiBkacOpOyAjNjYzMwor5pi0ID4gbcSDbzsgIzY2MzQKK+aYtSA+IG7DrDsgIzY2MzUKK+aYtiA+IGNoxINuZzsgIzY2MzYKK+aYtyA+IHfEk247ICM2NjM3CivmmLggPiBkxY1uZzsgIzY2MzgKK+aYuSA+IMSDaTsgIzY2MzkKK+aYuiA+IGLErW5nOyAjNjYzQQor5pi7ID4gw6FuZzsgIzY2M0IKK+aYvCA+IHpow7J1OyAjNjYzQwor5pi9ID4gbMOzbmc7ICM2NjNECivmmL4gPiB4acSDbjsgIzY2M0UKK+aYvyA+IGt1w6BuZzsgIzY2M0YKK+aZgCA+IHRpxINvOyAjNjY0MAor5pmBID4gY2jDoW87ICM2NjQxCivmmYIgPiBzaMOtOyAjNjY0Mgor5pmDID4gaHXEg25nOyAjNjY0Mwor5pmEID4gaHXEg25nOyAjNjY0NAor5pmFID4geHXEgW47ICM2NjQ1CivmmYYgPiBrw7ppOyAjNjY0Ngor5pmHID4geMWrOyAjNjY0Nwor5pmIID4gamnEg287ICM2NjQ4CivmmYkgPiBqw6xuOyAjNjY0OQor5pmKID4gemjErTsgIzY2NEEKK+aZiyA+IGrDrG47ICM2NjRCCivmmYwgPiBzaMSDbmc7ICM2NjRDCivmmY0gPiB0w7NuZzsgIzY2NEQKK+aZjiA+IGjFj25nOyAjNjY0RQor5pmPID4gecOgbjsgIzY2NEYKK+aZkCA+IGfEgWk7ICM2NjUwCivmmZEgPiB4acSDbmc7ICM2NjUxCivmmZIgPiBzaMOgaTsgIzY2NTIKK+aZkyA+IHhpxINvOyAjNjY1Mwor5pmUID4gecSTOyAjNjY1NAor5pmVID4gecWrbjsgIzY2NTUKK+aZliA+IGjFq2k7ICM2NjU2CivmmZcgPiBow6FuOyAjNjY1Nwor5pmYID4gaMOgbjsgIzY2NTgKK+aZmSA+IGrDuW47ICM2NjU5CivmmZogPiB3xINuOyAjNjY1QQor5pmbID4geGnDoG47ICM2NjVCCivmmZwgPiBrxatuOyAjNjY1Qwor5pmdID4gemjDsnU7ICM2NjVECivmmZ4gPiB4xKs7ICM2NjVFCivmmZ8gPiBjaMOpbmc7ICM2NjVGCivmmaAgPiBzaMOpbmc7ICM2NjYwCivmmaEgPiBixas7ICM2NjYxCivmmaIgPiB6aMSTOyAjNjY2Mgor5pmjID4gemjEkzsgIzY2NjMKK+aZpCA+IHfDuTsgIzY2NjQKK+aZpSA+IGjDoG47ICM2NjY1CivmmaYgPiBow7lpOyAjNjY2Ngor5pmnID4gaMOgbzsgIzY2NjcKK+aZqCA+IGNow6luOyAjNjY2OAor5pmpID4gd8SDbjsgIzY2NjkKK+aZqiA+IHRpxINuOyAjNjY2QQor5pmrID4gemjDum87ICM2NjZCCivmmawgPiB6w7lpOyAjNjY2Qwor5pmtID4gemjFj3U7ICM2NjZECivmma4gPiBwxa07ICM2NjZFCivmma8gPiBqxK1uZzsgIzY2NkYKK+aZsCA+IHjEqzsgIzY2NzAKK+aZsSA+IHNoxINuOyAjNjY3MQor5pmyID4gecStOyAjNjY3Mgor5pmzID4geMOsOyAjNjY3Mwor5pm0ID4gccOtbmc7ICM2Njc0CivmmbUgPiBxxK07ICM2Njc1CivmmbYgPiBqxKtuZzsgIzY2NzYKK+aZtyA+IGfFrWk7ICM2Njc3CivmmbggPiB6aMSVbjsgIzY2NzgKK+aZuSA+IHnDrDsgIzY2NzkKK+aZuiA+IHpow6w7ICM2NjdBCivmmbsgPiDEg247ICM2NjdCCivmmbwgPiB3xINuOyAjNjY3Qwor5pm9ID4gbMOtbjsgIzY2N0QKK+aZviA+IGxpw6BuZzsgIzY2N0UKK+aZvyA+IGNoxIFuZzsgIzY2N0YKK+aagCA+IHfEg25nOyAjNjY4MAor5pqBID4geGnEg287ICM2NjgxCivmmoIgPiB6w6BuOyAjNjY4Mgor5pqEID4geHXEgW47ICM2Njg0CivmmoUgPiB4dcSDbjsgIzY2ODUKK+aahiA+IHnDrTsgIzY2ODYKK+aahyA+IHhpw6E7ICM2Njg3CivmmoggPiB5xatuOyAjNjY4OAor5pqJID4gaMWraTsgIzY2ODkKK+aaiiA+IGbFrTsgIzY2OEEKK+aaiyA+IG3ErW47ICM2NjhCCivmmowgPiBrw7ppOyAjNjY4Qwor5pqNID4gaMOoOyAjNjY4RAor5pqOID4gecOsbmc7ICM2NjhFCivmmo8gPiBkxa07ICM2NjhGCivmmpAgPiB3xJVpOyAjNjY5MAor5pqRID4gc2jFrTsgIzY2OTEKK+aakiA+IHHDrW5nOyAjNjY5Mgor5pqTID4gbcOgbzsgIzY2OTMKK+aalCA+IG7DoW47ICM2Njk0CivmmpUgPiBqacSDbjsgIzY2OTUKK+aaliA+IG51xINuOyAjNjY5Ngor5pqXID4gw6BuOyAjNjY5Nwor5pqYID4gecOhbmc7ICM2Njk4CivmmpkgPiBjaMWrbjsgIzY2OTkKK+aamiA+IHnDoW87ICM2NjlBCivmmpsgPiBzxa1vOyAjNjY5Qgor5pqcID4gasOsbjsgIzY2OUMKK+aanSA+IG3DrW5nOyAjNjY5RAor5pqeID4gamnEg287ICM2NjlFCivmmp8gPiBrxINpOyAjNjY5Rgor5pqgID4gZ8SDbzsgIzY2QTAKK+aaoSA+IHfElW5nOyAjNjZBMQor5pqiID4gY2jDoG5nOyAjNjZBMgor5pqjID4gccOsOyAjNjZBMwor5pqkID4gaMOgbzsgIzY2QTQKK+aapSA+IHnDoG47ICM2NkE1CivmmqYgPiBsw6w7ICM2NkE2CivmmqcgPiDDoGk7ICM2NkE3CivmmqggPiBqw6w7ICM2NkE4CivmmqkgPiBnw7lpOyAjNjZBOQor5pqqID4gbcSVbjsgIzY2QUEKK+aaqyA+IHrDoG47ICM2NkFCCivmmqwgPiB4acOoOyAjNjZBQwor5pqtID4gaMOgbzsgIzY2QUQKK+aariA+IG3DuTsgIzY2QUUKK+aaryA+IG3DsjsgIzY2QUYKK+aasCA+IGPFjW5nOyAjNjZCMAor5pqxID4gbsOsOyAjNjZCMQor5pqyID4gemjEgW5nOyAjNjZCMgor5pqzID4gaMO5aTsgIzY2QjMKK+aatCA+IGLDoG87ICM2NkI0CivmmrUgPiBow6BuOyAjNjZCNQor5pq2ID4geHXDoW47ICM2NkI2CivmmrcgPiBjaHXDoW47ICM2NkI3CivmmrggPiBsacOhbzsgIzY2QjgKK+aauSA+IHhpxIFuOyAjNjZCOQor5pq6ID4gZMOgbjsgIzY2QkEKK+aauyA+IGrErW5nOyAjNjZCQgor5pq8ID4gcGnEkzsgIzY2QkMKK+aavSA+IGzDrW47ICM2NkJECivmmr4gPiB0xatuOyAjNjZCRQor5pq/ID4geMStOyAjNjZCRgor5puAID4gecOsOyAjNjZDMAor5puBID4gasOsOyAjNjZDMQor5puCID4gaHXDoG5nOyAjNjZDMgor5puDID4gdMOgaTsgIzY2QzMKK+abhCA+IHnDqDsgIzY2QzQKK+abhSA+IHnDqDsgIzY2QzUKK+abhiA+IGzDrDsgIzY2QzYKK+abhyA+IHTDoW47ICM2NkM3Civmm4ggPiB0w7NuZzsgIzY2QzgKK+abiSA+IHhpxINvOyAjNjZDOQor5puKID4gZsOoaTsgIzY2Q0EKK+abiyA+IHHErW47ICM2NkNCCivmm4wgPiB6aMOgbzsgIzY2Q0MKK+abjSA+IGjDoG87ICM2NkNECivmm44gPiB5w6w7ICM2NkNFCivmm48gPiB4acOgbmc7ICM2NkNGCivmm5AgPiB4xKtuZzsgIzY2RDAKK+abkSA+IHPEk247ICM2NkQxCivmm5IgPiBqacSDbzsgIzY2RDIKK+abkyA+IGLDoG87ICM2NkQzCivmm5QgPiBqw6xuZzsgIzY2RDQKK+ablSA+IHlpw6BuOyAjNjZENQor5puWID4gw6BpOyAjNjZENgor5puXID4gecOoOyAjNjZENwor5puYID4gcsO6OyAjNjZEOAor5puZID4gc2jDuTsgIzY2RDkKK+abmiA+IG3DqW5nOyAjNjZEQQor5pubID4geMWrbjsgIzY2REIKK+abnCA+IHnDoG87ICM2NkRDCivmm50gPiBww7k7ICM2NkRECivmm54gPiBsw6w7ICM2NkRFCivmm58gPiBjaMOpbjsgIzY2REYKK+aboCA+IGt1w6BuZzsgIzY2RTAKK+aboSA+IGRpw6k7ICM2NkUxCivmm6MgPiB5w6BuOyAjNjZFMwor5pukID4gaMO5bzsgIzY2RTQKK+abpSA+IGzDujsgIzY2RTUKK+abpiA+IHjEqzsgIzY2RTYKK+abpyA+IHLDs25nOyAjNjZFNwor5puoID4gbMOzbmc7ICM2NkU4Civmm6kgPiBuxINuZzsgIzY2RTkKK+abqiA+IGzFrW87ICM2NkVBCivmm6sgPiBsdcOhbjsgIzY2RUIKK+abrCA+IHNow6BpOyAjNjZFQwor5putID4gdMSDbmc7ICM2NkVECivmm64gPiB5xINuOyAjNjZFRQor5puvID4gY2jDujsgIzY2RUYKK+absCA+IHl1xJM7ICM2NkYwCivmm7EgPiB5dcSTOyAjNjZGMQor5puyID4gccWtOyAjNjZGMgor5puzID4gecOsOyAjNjZGMwor5pu0ID4gZ8Oobmc7ICM2NkY0Civmm7UgPiB5w6g7ICM2NkY1Civmm7YgPiBoxas7ICM2NkY2Civmm7cgPiBow6k7ICM2NkY3Civmm7ggPiBzaMWrOyAjNjZGOAor5pu5ID4gY8OhbzsgIzY2RjkKK+abuiA+IGPDoW87ICM2NkZBCivmm7wgPiBtw6BuOyAjNjZGQwor5pu9ID4gY8STbmc7ICM2NkZECivmm74gPiBjw6luZzsgIzY2RkUKK+abvyA+IHTDrDsgIzY2RkYKK+acgCA+IHrDuWk7ICM2NzAwCivmnIEgPiBjxINuOyAjNjcwMQor5pyCID4geMO5OyAjNjcwMgor5pyDID4gaMO5aTsgIzY3MDMKK+achCA+IHnDrG47ICM2NzA0CivmnIUgPiBxacOoOyAjNjcwNQor5pyGID4gZsSTbjsgIzY3MDYKK+achyA+IHDDrTsgIzY3MDcKK+aciCA+IHl1w6g7ICM2NzA4CivmnIkgPiB5xY91OyAjNjcwOQor5pyKID4gcnXEg247ICM2NzBBCivmnIsgPiBww6luZzsgIzY3MEIKK+acjCA+IGLEgW47ICM2NzBDCivmnI0gPiBmw7o7ICM2NzBECivmnI4gPiBsw61uZzsgIzY3MEUKK+acjyA+IGbElWk7ICM2NzBGCivmnJAgPiBxw7o7ICM2NzEwCivmnJIgPiBux5w7ICM2NzEyCivmnJMgPiB0acOgbzsgIzY3MTMKK+aclCA+IHNow7lvOyAjNjcxNAor5pyVID4gemjDqG47ICM2NzE1CivmnJYgPiBsxINuZzsgIzY3MTYKK+aclyA+IGzEg25nOyAjNjcxNwor5pyYID4ganXEgW47ICM2NzE4CivmnJkgPiBtw61uZzsgIzY3MTkKK+acmiA+IGh1xIFuZzsgIzY3MUEKK+acmyA+IHfDoG5nOyAjNjcxQgor5pycID4gdMWrbjsgIzY3MUMKK+acnSA+IHpoxIFvOyAjNjcxRAor5pyeID4gasSrOyAjNjcxRQor5pyfID4gccOtOyAjNjcxRgor5pygID4gecSrbmc7ICM2NzIwCivmnKEgPiB6xY1uZzsgIzY3MjEKK+acoiA+IHfDoG5nOyAjNjcyMgor5pyjID4gdMOzbmc7ICM2NzIzCivmnKQgPiBsxINuZzsgIzY3MjQKK+acpiA+IG3DqW5nOyAjNjcyNgor5pynID4gbMOzbmc7ICM2NzI3CivmnKggPiBtw7k7ICM2NzI4CivmnKkgPiBkxJVuZzsgIzY3MjkKK+acqiA+IHfDqGk7ICM2NzJBCivmnKsgPiBtw7I7ICM2NzJCCivmnKwgPiBixJVuOyAjNjcyQwor5pytID4gemjDoTsgIzY3MkQKK+acriA+IHpow7o7ICM2NzJFCivmnK8gPiB6aMO6OyAjNjcyRgor5pyxID4gemjFqzsgIzY3MzEKK+acsiA+IHLDqW47ICM2NzMyCivmnLMgPiBixIE7ICM2NzMzCivmnLQgPiBww7I7ICM2NzM0CivmnLUgPiBkxa1vOyAjNjczNQor5py2ID4gZMWtbzsgIzY3MzYKK+actyA+IGTEgW87ICM2NzM3CivmnLggPiBsw6w7ICM2NzM4CivmnLkgPiBxw611OyAjNjczOQor5py6ID4gasSrOyAjNjczQQor5py7ID4gasSrdTsgIzY3M0IKK+acvCA+IGLErTsgIzY3M0MKK+acvSA+IHjErXU7ICM2NzNECivmnL4gPiB0w61uZzsgIzY3M0UKK+acvyA+IGPDrDsgIzY3M0YKK+adgCA+IHNoxIE7ICM2NzQwCivmnYIgPiB6w6E7ICM2NzQyCivmnYMgPiBxdcOhbjsgIzY3NDMKK+adhCA+IHFpxIFuOyAjNjc0NAor5p2FID4gecO6OyAjNjc0NQor5p2GID4gZ8SBbjsgIzY3NDYKK+adhyA+IHfFqzsgIzY3NDcKK+adiCA+IGNoxIE7ICM2NzQ4CivmnYkgPiBzaMSBbjsgIzY3NDkKK+adiiA+IHjDum47ICM2NzRBCivmnYsgPiBmxIFuOyAjNjc0Qgor5p2MID4gd8O5OyAjNjc0Qwor5p2NID4gesStOyAjNjc0RAor5p2OID4gbMStOyAjNjc0RQor5p2PID4geMOsbmc7ICM2NzRGCivmnZAgPiBjw6FpOyAjNjc1MAor5p2RID4gY8WrbjsgIzY3NTEKK+adkiA+IHLDqG47ICM2NzUyCivmnZMgPiBzaMOhbzsgIzY3NTMKK+adlCA+IHTFq287ICM2NzU0CivmnZUgPiBkw6w7ICM2NzU1CivmnZYgPiB6aMOgbmc7ICM2NzU2CivmnZcgPiBtw6FuZzsgIzY3NTcKK+admCA+IGNow6w7ICM2NzU4CivmnZkgPiB5w6w7ICM2NzU5CivmnZogPiBnxa07ICM2NzVBCivmnZsgPiBnxY1uZzsgIzY3NUIKK+adnCA+IGTDuTsgIzY3NUMKK+adnSA+IHnDrTsgIzY3NUQKK+adniA+IHHErTsgIzY3NUUKK+adnyA+IHNow7k7ICM2NzVGCivmnaAgPiBnxIFuZzsgIzY3NjAKK+adoSA+IHRpw6FvOyAjNjc2MQor5p2lID4gbMOhaTsgIzY3NjUKK+adpyA+IG3DoW5nOyAjNjc2Nwor5p2oID4gecOhbmc7ICM2NzY4CivmnakgPiBtw6A7ICM2NzY5CivmnaogPiBtacSDbzsgIzY3NkEKK+adqyA+IHPDrDsgIzY3NkIKK+adrCA+IHl1w6FuOyAjNjc2Qwor5p2tID4gaMOhbmc7ICM2NzZECivmna4gPiBmw6hpOyAjNjc2RQor5p2vID4gYsSTaTsgIzY3NkYKK+adsCA+IGppw6k7ICM2NzcwCivmnbEgPiBkxY1uZzsgIzY3NzEKK+adsiA+IGfEg287ICM2NzcyCivmnbMgPiB5xINvOyAjNjc3Mwor5p20ID4geGnEgW47ICM2Nzc0CivmnbUgPiBjaMWtOyAjNjc3NQor5p22ID4gccWrbjsgIzY3NzYKK+adtyA+IHDDoTsgIzY3NzcKK+aduCA+IHNoxas7ICM2Nzc4CivmnbkgPiBodcOgOyAjNjc3OQor5p26ID4geMSrbjsgIzY3N0EKK+aduyA+IGNoxY91OyAjNjc3Qgor5p28ID4gemjDuTsgIzY3N0MKK+advSA+IGNoxY91OyAjNjc3RAor5p2+ID4gc8WNbmc7ICM2NzdFCivmnb8gPiBixINuOyAjNjc3Rgor5p6AID4gc8WNbmc7ICM2NzgwCivmnoEgPiBqw607ICM2NzgxCivmnoIgPiB5dcOoOyAjNjc4Mgor5p6DID4gasOsbjsgIzY3ODMKK+aehCA+IGfFjXU7ICM2Nzg0CivmnoUgPiBqxKs7ICM2Nzg1CivmnoYgPiBtw6FvOyAjNjc4Ngor5p6HID4gcMOtOyAjNjc4Nwor5p6IID4gYsOsOyAjNjc4OAor5p6JID4gd8SDbmc7ICM2Nzg5CivmnoogPiDDoG5nOyAjNjc4QQor5p6LID4gZsSBbmc7ICM2NzhCCivmnowgPiBmw6luOyAjNjc4Qwor5p6NID4gecOsOyAjNjc4RAor5p6OID4gZsO6OyAjNjc4RQor5p6PID4gbsOhbjsgIzY3OEYKK+aekCA+IHjEqzsgIzY3OTAKK+aekSA+IGjDuTsgIzY3OTEKK+aekiA+IHnDoTsgIzY3OTIKK+aekyA+IGTFj3U7ICM2NzkzCivmnpQgPiB4w7puOyAjNjc5NAor5p6VID4gemjElW47ICM2Nzk1CivmnpYgPiB5xIFvOyAjNjc5Ngor5p6XID4gbMOtbjsgIzY3OTcKK+aemCA+IHLDuWk7ICM2Nzk4CivmnpkgPiDDqTsgIzY3OTkKK+aemiA+IG3DqWk7ICM2NzlBCivmnpsgPiB6aMOgbzsgIzY3OUIKK+aenCA+IGfFrW87ICM2NzlDCivmnp0gPiB6aMSrOyAjNjc5RAor5p6eID4gY8WNbmc7ICM2NzlFCivmnp8gPiB5w7luOyAjNjc5Rgor5p6hID4gZMWPdTsgIzY3QTEKK+aeoiA+IHNoxas7ICM2N0EyCivmnqMgPiB6xINvOyAjNjdBMwor5p6lID4gbMOsOyAjNjdBNQor5p6nID4gamnDoG47ICM2N0E3CivmnqggPiBjaMOpbmc7ICM2N0E4CivmnqogPiBxacSBbmc7ICM2N0FBCivmnqsgPiBmxJNuZzsgIzY3QUIKK+aerCA+IG7DoW47ICM2N0FDCivmnq0gPiB4acSBbzsgIzY3QUQKK+aeriA+IHhpxIFuOyAjNjdBRQor5p6vID4ga8WrOyAjNjdBRgor5p6wID4gcMOtbmc7ICM2N0IwCivmnrEgPiB5w607ICM2N0IxCivmnrIgPiB4xK07ICM2N0IyCivmnrMgPiB6aMSrOyAjNjdCMwor5p60ID4gZ3XEg2k7ICM2N0I0CivmnrUgPiB4acSBbzsgIzY3QjUKK+aetiA+IGppw6A7ICM2N0I2CivmnrcgPiBqacSBOyAjNjdCNwor5p64ID4gZ8WPdTsgIzY3QjgKK+aeuSA+IGbFqzsgIzY3QjkKK+aeuiA+IG3DsjsgIzY3QkEKK+aeuyA+IHnDrDsgIzY3QkIKK+aevCA+IHnDqDsgIzY3QkMKK+aevSA+IHnDqDsgIzY3QkQKK+aeviA+IHNow6w7ICM2N0JFCivmnr8gPiBuacOoOyAjNjdCRgor5p+AID4gYsStOyAjNjdDMAor5p+BID4gZMO5bzsgIzY3QzEKK+afgiA+IHnDrTsgIzY3QzIKK+afgyA+IGzDrW5nOyAjNjdDMwor5p+EID4gYsStbmc7ICM2N0M0Civmn4UgPiBuxK07ICM2N0M1Civmn4YgPiBsxIE7ICM2N0M2Civmn4cgPiBow6k7ICM2N0M3Civmn4ggPiBww6FuOyAjNjdDOAor5p+JID4gZsOhbjsgIzY3QzkKK+afiiA+IHpoxY1uZzsgIzY3Q0EKK+afiyA+IGTDoGk7ICM2N0NCCivmn4wgPiBjw607ICM2N0NDCivmn40gPiB5xIFuZzsgIzY3Q0QKK+afjiA+IGbFqzsgIzY3Q0UKK+afjyA+IGLDszsgIzY3Q0YKK+afkCA+IG3Fj3U7ICM2N0QwCivmn5EgPiBnxIFuOyAjNjdEMQor5p+SID4gccSrOyAjNjdEMgor5p+TID4gcsSDbjsgIzY3RDMKK+aflCA+IHLDs3U7ICM2N0Q0Civmn5UgPiBtw6BvOyAjNjdENQor5p+WID4gemjEgW87ICM2N0Q2Civmn5cgPiBzxY1uZzsgIzY3RDcKK+afmCA+IHpow6g7ICM2N0Q4Civmn5kgPiB4acOhOyAjNjdEOQor5p+aID4gecOydTsgIzY3REEKK+afmyA+IHNoxJNuOyAjNjdEQgor5p+cID4gasWtOyAjNjdEQwor5p+dID4gdMO5bzsgIzY3REQKK+afniA+IHrDuW87ICM2N0RFCivmn58gPiBuw6FuOyAjNjdERgor5p+gID4gbsOtbmc7ICM2N0UwCivmn6EgPiB5xY9uZzsgIzY3RTEKK+afoiA+IGTErTsgIzY3RTIKK+afoyA+IHpow607ICM2N0UzCivmn6QgPiB6aMSBOyAjNjdFNAor5p+lID4gY2jDoTsgIzY3RTUKK+afpiA+IGTDoG47ICM2N0U2Civmn6cgPiBnxas7ICM2N0U3Civmn6ggPiBwdTsgIzY3RTgKK+afqSA+IGrDrHU7ICM2N0U5Civmn6ogPiDEgW87ICM2N0VBCivmn6sgPiBmw7o7ICM2N0VCCivmn6wgPiBqacSDbjsgIzY3RUMKK+afrSA+IGLFjTsgIzY3RUQKK+afriA+IGTDuW87ICM2N0VFCivmn68gPiBrxJM7ICM2N0VGCivmn7AgPiBuw6BpOyAjNjdGMAor5p+xID4gemjDuTsgIzY3RjEKK+afsiA+IGLDrDsgIzY3RjIKK+afsyA+IGzErXU7ICM2N0YzCivmn7QgPiBjaMOhaTsgIzY3RjQKK+aftSA+IHpow6A7ICM2N0Y1Civmn7YgPiBzw6w7ICM2N0Y2Civmn7cgPiB6aMO5OyAjNjdGNwor5p+4ID4gcMSTaTsgIzY3RjgKK+afuSA+IHNow6w7ICM2N0Y5Civmn7ogPiBndcSDaTsgIzY3RkEKK+afuyA+IGNow6E7ICM2N0ZCCivmn7wgPiB5xINvOyAjNjdGQwor5p+9ID4ganXDqTsgIzY3RkQKK+afviA+IGrDrHU7ICM2N0ZFCivmn78gPiBzaMOsOyAjNjdGRgor5qCAID4gemjEqzsgIzY4MDAKK+aggSA+IGzErXU7ICM2ODAxCivmoIIgPiBtw6lpOyAjNjgwMgor5qCEID4gcsOzbmc7ICM2ODA0CivmoIUgPiB6aMOgOyAjNjgwNQor5qCHID4gYmnEgW87ICM2ODA3CivmoIggPiB6aMOgbjsgIzY4MDgKK+agiSA+IGppw6k7ICM2ODA5CivmoIogPiBsw7NuZzsgIzY4MEEKK+agiyA+IGTDsm5nOyAjNjgwQgor5qCMID4gbMO6OyAjNjgwQwor5qCOID4gbMOsOyAjNjgwRQor5qCPID4gbMOhbjsgIzY4MEYKK+agkCA+IHnFj25nOyAjNjgxMAor5qCRID4gc2jDuTsgIzY4MTEKK+agkiA+IHjDum47ICM2ODEyCivmoJMgPiBzaHXEgW47ICM2ODEzCivmoJQgPiBxw6w7ICM2ODE0CivmoJUgPiB6aMSTbjsgIzY4MTUKK+agliA+IHHEqzsgIzY4MTYKK+aglyA+IGzDrDsgIzY4MTcKK+agmCA+IHnErTsgIzY4MTgKK+agmSA+IHhpw6FuZzsgIzY4MTkKK+agmiA+IHpow6huOyAjNjgxQQor5qCbID4gbMOsOyAjNjgxQgor5qCcID4gc8O5OyAjNjgxQwor5qCdID4gZ3XEgTsgIzY4MUQKK+agniA+IGvEgW47ICM2ODFFCivmoJ8gPiBixKtuZzsgIzY4MUYKK+agoCA+IHLElW47ICM2ODIwCivmoKEgPiB4acOgbzsgIzY4MjEKK+agoiA+IGLDszsgIzY4MjIKK+agoyA+IHLElW47ICM2ODIzCivmoKQgPiBiw6xuZzsgIzY4MjQKK+agpSA+IHrEqzsgIzY4MjUKK+agpiA+IGNow7N1OyAjNjgyNgor5qCnID4gecOsOyAjNjgyNwor5qCoID4gamnDqTsgIzY4MjgKK+agqSA+IHjFrTsgIzY4MjkKK+agqiA+IHpoxas7ICM2ODJBCivmoKsgPiBqacOgbjsgIzY4MkIKK+agrCA+IHrDuWk7ICM2ODJDCivmoK0gPiDDqXI7ICM2ODJECivmoK4gPiDElXI7ICM2ODJFCivmoK8gPiB5xY91OyAjNjgyRgor5qCwID4gZsOhOyAjNjgzMAor5qCxID4gZ8WPbmc7ICM2ODMxCivmoLIgPiBrxINvOyAjNjgzMgor5qCzID4gbMSDbzsgIzY4MzMKK+agtCA+IHpoxIFuOyAjNjgzNAor5qC1ID4gbMOsOyAjNjgzNQor5qC2ID4geWluOyAjNjgzNgor5qC3ID4gecOhbmc7ICM2ODM3CivmoLggPiBow6k7ICM2ODM4CivmoLkgPiBnxJNuOyAjNjgzOQor5qC6ID4gemjErTsgIzY4M0EKK+aguyA+IGNow6w7ICM2ODNCCivmoLwgPiBnw6k7ICM2ODNDCivmoL0gPiB6xIFpOyAjNjgzRAor5qC+ID4gbHXDoW47ICM2ODNFCivmoL8gPiBmw7o7ICM2ODNGCivmoYAgPiBqacOpOyAjNjg0MAor5qGBID4gaMOhbmc7ICM2ODQxCivmoYIgPiBnw7lpOyAjNjg0Mgor5qGDID4gdMOhbzsgIzY4NDMKK+ahhCA+IGd1w6BuZzsgIzY4NDQKK+ahhSA+IHfDqWk7ICM2ODQ1CivmoYYgPiBrdcOgbmc7ICM2ODQ2CivmoYcgPiByw7o7ICM2ODQ3CivmoYggPiDDoG47ICM2ODQ4CivmoYkgPiDDoG47ICM2ODQ5CivmoYogPiBqdcOgbjsgIzY4NEEKK+ahiyA+IHnDrTsgIzY4NEIKK+ahjCA+IHpoxatvOyAjNjg0Qwor5qGNID4ga8WrOyAjNjg0RAor5qGOID4gemjDrTsgIzY4NEUKK+ahjyA+IHHDrW9uZzsgIzY4NEYKK+ahkCA+IHTDs25nOyAjNjg1MAor5qGRID4gc8SBbmc7ICM2ODUxCivmoZIgPiBzxIFuZzsgIzY4NTIKK+ahkyA+IGh1w6FuOyAjNjg1Mwor5qGUID4gamnDqTsgIzY4NTQKK+ahlSA+IGrDrHU7ICM2ODU1CivmoZYgPiB4dcOoOyAjNjg1Ngor5qGXID4gZMO5bzsgIzY4NTcKK+ahmCA+IHpow7lpOyAjNjg1OAor5qGZID4gecO6OyAjNjg1OQor5qGaID4gesSDbjsgIzY4NUEKK+ahnCA+IHnEq25nOyAjNjg1Qwor5qGfID4gemjDoG47ICM2ODVGCivmoaAgPiB5w6E7ICM2ODYwCivmoaEgPiBuw6FvOyAjNjg2MQor5qGiID4gemjEk247ICM2ODYyCivmoaMgPiBkxINuZzsgIzY4NjMKK+ahpCA+IHHEqzsgIzY4NjQKK+ahpSA+IHFpw6FvOyAjNjg2NQor5qGmID4gaHXDoDsgIzY4NjYKK+ahpyA+IGt1w6BpOyAjNjg2Nwor5qGoID4gamnEg25nOyAjNjg2OAor5qGpID4gemh1xIFuZzsgIzY4NjkKK+ahqiA+IHjDum47ICM2ODZBCivmoasgPiBzxatvOyAjNjg2Qgor5qGsID4gc2jEgTsgIzY4NkMKK+ahrSA+IHpoxJNuOyAjNjg2RAor5qGuID4gYsSTaTsgIzY4NkUKK+ahryA+IHTEq25nOyAjNjg2Rgor5qGwID4gZ3XEgTsgIzY4NzAKK+ahsSA+IGrDrG5nOyAjNjg3MQor5qGyID4gYsOzOyAjNjg3Mgor5qGzID4gYsOobjsgIzY4NzMKK+ahtCA+IGbDujsgIzY4NzQKK+ahtSA+IHLFrWk7ICM2ODc1CivmobYgPiB0xY9uZzsgIzY4NzYKK+ahtyA+IGp1w6k7ICM2ODc3CivmobggPiB4xKs7ICM2ODc4CivmobkgPiBsw6FuZzsgIzY4NzkKK+ahuiA+IGzErXU7ICM2ODdBCivmobsgPiBmxJNuZzsgIzY4N0IKK+ahvCA+IHHEqzsgIzY4N0MKK+ahvSA+IHfElW47ICM2ODdECivmob4gPiBqxatuOyAjNjg3RQor5qG/ID4gZ8SDbjsgIzY4N0YKK+aigCA+IGPDuTsgIzY4ODAKK+aigSA+IGxpw6FuZzsgIzY4ODEKK+aigiA+IHHDrXU7ICM2ODgyCivmooMgPiB0xK1uZzsgIzY4ODMKK+aihCA+IHnFj3U7ICM2ODg0CivmooUgPiBtw6lpOyAjNjg4NQor5qKGID4gYsSBbmc7ICM2ODg2CivmoocgPiBsw7JuZzsgIzY4ODcKK+aiiCA+IHDEk25nOyAjNjg4OAor5qKJID4gemh1xIFuZzsgIzY4ODkKK+aiiiA+IGTDrDsgIzY4OEEKK+aiiyA+IHh1xIFuOyAjNjg4Qgor5qKMID4gdMO6OyAjNjg4Qwor5qKNID4gesOgbzsgIzY4OEQKK+aijiA+IMSBbzsgIzY4OEUKK+aijyA+IGfDuTsgIzY4OEYKK+aikCA+IGLDrDsgIzY4OTAKK+aikSA+IGTDrTsgIzY4OTEKK+aikiA+IGjDoW47ICM2ODkyCivmopMgPiB6xK07ICM2ODkzCivmopQgPiB6aMSrOyAjNjg5NAor5qKVID4gcsOobjsgIzY4OTUKK+ailiA+IGLDqGk7ICM2ODk2CivmopcgPiBnxJVuZzsgIzY4OTcKK+aimCA+IGppw6BuOyAjNjg5OAor5qKZID4gaHXDoG47ICM2ODk5CivmopogPiB3xINuOyAjNjg5QQor5qKbID4gbsO6bzsgIzY4OUIKK+ainCA+IGppw6E7ICM2ODlDCivmop0gPiB0acOhbzsgIzY4OUQKK+ainiA+IGrDrDsgIzY4OUUKK+ainyA+IHhpxIFvOyAjNjg5Rgor5qKgID4gbMeaOyAjNjhBMAor5qKhID4gaHXDoW47ICM2OEExCivmoqIgPiBzaMSBbzsgIzY4QTIKK+aioyA+IGPDqW47ICM2OEEzCivmoqQgPiBmw6luOyAjNjhBNAor5qKlID4gc8WNbmc7ICM2OEE1CivmoqYgPiBtw6huZzsgIzY4QTYKK+aipyA+IHfDujsgIzY4QTcKK+aiqCA+IGzDrTsgIzY4QTgKK+aiqSA+IGzDrTsgIzY4QTkKK+aiqiA+IGTDsnU7ICM2OEFBCivmoqsgPiBjxJNuOyAjNjhBQgor5qKsID4gecStbmc7ICM2OEFDCivmoq0gPiBzxatvOyAjNjhBRAor5qKuID4gasO6OyAjNjhBRQor5qKvID4gdMSrOyAjNjhBRgor5qKwID4gamnDqDsgIzY4QjAKK+aisSA+IGvFrW47ICM2OEIxCivmorIgPiB6aMO6bzsgIzY4QjIKK+aisyA+IHNoxas7ICM2OEIzCivmorQgPiBjaMSBbjsgIzY4QjQKK+aitSA+IGbDoG47ICM2OEI1CivmorYgPiB3xJVpOyAjNjhCNgor5qK3ID4gasOsbmc7ICM2OEI3CivmorggPiBsw607ICM2OEI4CivmorkgPiBixKtuZzsgIzY4QjkKK+aivCA+IHTDoW87ICM2OEJDCivmor0gPiB6aMOsOyAjNjhCRAor5qK+ID4gbMOhaTsgIzY4QkUKK+aivyA+IGxpw6FuOyAjNjhCRgor5qOAID4gamnEg247ICM2OEMwCivmo4EgPiB6aMO6bzsgIzY4QzEKK+ajgiA+IGzDrW5nOyAjNjhDMgor5qODID4gbMOtOyAjNjhDMwor5qOEID4gccOsOyAjNjhDNAor5qOFID4gYsOsbmc7ICM2OEM1Civmo4YgPiB6aMWrbjsgIzY4QzYKK+ajhyA+IGPFjW5nOyAjNjhDNwor5qOIID4gcWnDoG47ICM2OEM4Civmo4kgPiBtacOhbjsgIzY4QzkKK+ajiiA+IHHDrTsgIzY4Q0EKK+ajiyA+IHHDrTsgIzY4Q0IKK+ajjCA+IGPEg2k7ICM2OENDCivmo40gPiBnw7luOyAjNjhDRAor5qOOID4gY2jDoW47ICM2OENFCivmo48gPiB0w6g7ICM2OENGCivmo5AgPiBmxJVpOyAjNjhEMAor5qORID4gcMOhaTsgIzY4RDEKK+ajkiA+IGLDoG5nOyAjNjhEMgor5qOTID4gcMWPdTsgIzY4RDMKK+ajlCA+IGjFq247ICM2OEQ0Civmo5UgPiB6xY1uZzsgIzY4RDUKK+ajliA+IGNow6luZzsgIzY4RDYKK+ajlyA+IHrEg287ICM2OEQ3Civmo5ggPiBqw607ICM2OEQ4Civmo5kgPiBsw6w7ICM2OEQ5Civmo5ogPiBww6luZzsgIzY4REEKK+ajmyA+IHnDuTsgIzY4REIKK+ajnCA+IHnDuTsgIzY4REMKK+ajnSA+IGfDuTsgIzY4REQKK+ajniA+IGjDum47ICM2OERFCivmo58gPiBkw7JuZzsgIzY4REYKK+ajoCA+IHTDoW5nOyAjNjhFMAor5qOhID4gZ8SBbmc7ICM2OEUxCivmo6IgPiB3xINuZzsgIzY4RTIKK+ajoyA+IGTDrDsgIzY4RTMKK+ajpCA+IHjDrTsgIzY4RTQKK+ajpSA+IGbDoW47ICM2OEU1Civmo6YgPiBjaMSTbmc7ICM2OEU2Civmo6cgPiB6aMOgbjsgIzY4RTcKK+ajqCA+IHHErTsgIzY4RTgKK+ajqSA+IHl1xIFuOyAjNjhFOQor5qOqID4gecSDbjsgIzY4RUEKK+ajqyA+IHnDuTsgIzY4RUIKK+ajrCA+IHF1xIFuOyAjNjhFQwor5qOtID4gecOsOyAjNjhFRAor5qOuID4gc8STbjsgIzY4RUUKK+ajryA+IHLElW47ICM2OEVGCivmo7AgPiBjaMO6aTsgIzY4RjAKK+ajsSA+IGzDqW5nOyAjNjhGMQor5qOyID4gccSrOyAjNjhGMgor5qOzID4gemjDum87ICM2OEYzCivmo7QgPiBmw7o7ICM2OEY0Civmo7UgPiBrxJM7ICM2OEY1Civmo7YgPiBsw6FpOyAjNjhGNgor5qO3ID4gesWNdTsgIzY4RjcKK+ajuCA+IHrFjXU7ICM2OEY4Civmo7kgPiB6aMWrbzsgIzY4RjkKK+ajuiA+IGd1xIFuOyAjNjhGQQor5qO7ID4gZsOpbjsgIzY4RkIKK+ajvCA+IGbDqW47ICM2OEZDCivmo70gPiBjaMSTbjsgIzY4RkQKK+ajviA+IHHDrW9uZzsgIzY4RkUKK+ajvyA+IG5pw6g7ICM2OEZGCivmpIAgPiB3xINuOyAjNjkwMAor5qSBID4gZ8WtbzsgIzY5MDEKK+akgiA+IGzDuTsgIzY5MDIKK+akgyA+IGjDoW87ICM2OTAzCivmpIQgPiBqacSTOyAjNjkwNAor5qSFID4gecStOyAjNjkwNQor5qSGID4gY2jDs3U7ICM2OTA2CivmpIcgPiBqxa07ICM2OTA3CivmpIggPiBqw7o7ICM2OTA4CivmpIkgPiBjaMOpbmc7ICM2OTA5CivmpIogPiB6w7pvOyAjNjkwQQor5qSLID4gbGnDoW5nOyAjNjkwQgor5qSMID4gcWnEgW5nOyAjNjkwQwor5qSNID4gemjDrTsgIzY5MEQKK+akjiA+IHpoxatpOyAjNjkwRQor5qSPID4gecSBOyAjNjkwRgor5qSQID4gasWrOyAjNjkxMAor5qSRID4gYsSTaTsgIzY5MTEKK+akkiA+IGppxIFvOyAjNjkxMgor5qSTID4gemjDum87ICM2OTEzCivmpJQgPiB6xKs7ICM2OTE0CivmpJUgPiBixKtuOyAjNjkxNQor5qSWID4gcMOpbmc7ICM2OTE2CivmpJcgPiBkw6xuZzsgIzY5MTcKK+akmCA+IGNoxa07ICM2OTE4CivmpJwgPiBqacSDbjsgIzY5MUMKK+aknSA+IGfFq2k7ICM2OTFECivmpJ4gPiB4w6w7ICM2OTFFCivmpJ8gPiBkw7o7ICM2OTFGCivmpKAgPiBxacOgbjsgIzY5MjAKK+akpCA+IGzDum87ICM2OTI0CivmpKUgPiB6aMSrOyAjNjkyNQor5qSqID4gcMOobmc7ICM2OTJBCivmpKsgPiB6aMSDbjsgIzY5MkIKK+akrSA+IHTFrW87ICM2OTJECivmpK4gPiBzxJNuOyAjNjkyRQor5qSvID4gZMO6bzsgIzY5MkYKK+aksCA+IHnDqTsgIzY5MzAKK+aksSA+IGbDsnU7ICM2OTMxCivmpLIgPiB3xJVpOyAjNjkzMgor5qSzID4gd8STaTsgIzY5MzMKK+aktCA+IGR1w6BuOyAjNjkzNAor5qS1ID4gamnEgzsgIzY5MzUKK+aktiA+IHrFjW5nOyAjNjkzNgor5qS3ID4gamnEgW47ICM2OTM3CivmpLggPiB5w607ICM2OTM4CivmpLkgPiBzaMOobjsgIzY5MzkKK+akuiA+IHjDrTsgIzY5M0EKK+akuyA+IHnDoG47ICM2OTNCCivmpLwgPiB5xINuOyAjNjkzQwor5qS9ID4gY2h1w6FuOyAjNjkzRAor5qS+ID4gemjDoG47ICM2OTNFCivmpL8gPiBjaMWrbjsgIzY5M0YKK+algCA+IHnFrTsgIzY5NDAKK+algSA+IGjDqTsgIzY5NDEKK+algiA+IHpoxIE7ICM2OTQyCivmpYMgPiB3w7I7ICM2OTQzCivmpYQgPiBwacOhbjsgIzY5NDQKK+alhSA+IGLDrDsgIzY5NDUKK+alhiA+IHnEgW87ICM2OTQ2CivmpYcgPiBow7lvOyAjNjk0Nwor5qWIID4geMWrOyAjNjk0OAor5qWJID4gcsO5bzsgIzY5NDkKK+aliiA+IHnDoW5nOyAjNjk0QQor5qWLID4gbMOgOyAjNjk0Qgor5qWMID4gecOhbjsgIzY5NEMKK+aljSA+IGLElW47ICM2OTRECivmpY4gPiBow7puOyAjNjk0RQor5qWPID4ga8O6aTsgIzY5NEYKK+alkCA+IGppw6g7ICM2OTUwCivmpZEgPiBrw7ppOyAjNjk1MQor5qWSID4gc8SrOyAjNjk1Mgor5qWTID4gZsSTbmc7ICM2OTUzCivmpZQgPiB4acOoOyAjNjk1NAor5qWVID4gdMWtbzsgIzY5NTUKK+alliA+IHpow6w7ICM2OTU2CivmpZcgPiBqacOgbjsgIzY5NTcKK+almCA+IG3DuTsgIzY5NTgKK+almSA+IG3DoG87ICM2OTU5CivmpZogPiBjaMWtOyAjNjk1QQor5qWbID4gaMO5OyAjNjk1Qgor5qWcID4gaMO6OyAjNjk1Qwor5qWdID4gbGnDoG47ICM2OTVECivmpZ4gPiBsw6luZzsgIzY5NUUKK+alnyA+IHTDrW5nOyAjNjk1Rgor5qWgID4gbsOhbjsgIzY5NjAKK+aloSA+IHnDujsgIzY5NjEKK+aloiA+IHnDs3U7ICM2OTYyCivmpaMgPiBtw6lpOyAjNjk2Mwor5qWkID4gc8WPbmc7ICM2OTY0CivmpaUgPiB4dcOgbjsgIzY5NjUKK+alpiA+IHh1w6BuOyAjNjk2Ngor5qWnID4gecSrbmc7ICM2OTY3CivmpaggPiB6aMSTbjsgIzY5NjgKK+alqSA+IHBpw6FuOyAjNjk2OQor5qWqID4gecOoOyAjNjk2QQor5qWrID4gasOtOyAjNjk2Qgor5qWsID4gamnDqTsgIzY5NkMKK+alrSA+IHnDqDsgIzY5NkQKK+alriA+IGNoxa07ICM2OTZFCivmpa8gPiBzaMWtbjsgIzY5NkYKK+alsCA+IHnDujsgIzY5NzAKK+alsSA+IGPDsnU7ICM2OTcxCivmpbIgPiB3xJNpOyAjNjk3Mgor5qWzID4gbcOpaTsgIzY5NzMKK+altCA+IGTDrDsgIzY5NzQKK+altSA+IGrDrTsgIzY5NzUKK+altiA+IGppw6k7ICM2OTc2CivmpbcgPiBrxINpOyAjNjk3Nwor5qW4ID4gccSrdTsgIzY5NzgKK+aluSA+IHnDrW5nOyAjNjk3OQor5qW6ID4gcsOzdTsgIzY5N0EKK+aluyA+IGjDqW5nOyAjNjk3Qgor5qW8ID4gbMOzdTsgIzY5N0MKK+alvSA+IGzDqDsgIzY5N0QKK+amgCA+IHDErW47ICM2OTgwCivmpoIgPiBnw6BpOyAjNjk4Mgor5qaDID4gdMOhbjsgIzY5ODMKK+amhCA+IGzEg247ICM2OTg0CivmpoUgPiB5w7puOyAjNjk4NQor5qaGID4gecO6OyAjNjk4Ngor5qaHID4gY2jDqG47ICM2OTg3CivmpoggPiBsx5g7ICM2OTg4CivmpokgPiBqxa07ICM2OTg5Civmpo0gPiB4acOoOyAjNjk4RAor5qaOID4gamnEgzsgIzY5OEUKK+amjyA+IHnDrDsgIzY5OEYKK+amkCA+IHpoxINuOyAjNjk5MAor5qaRID4gZsO5OyAjNjk5MQor5qaSID4gbsOgaTsgIzY5OTIKK+amkyA+IG3DrDsgIzY5OTMKK+amlCA+IGzDoW5nOyAjNjk5NAor5qaVID4gcsOzbmc7ICM2OTk1CivmppYgPiBnxa07ICM2OTk2CivmppcgPiBqacOgbjsgIzY5OTcKK+ammCA+IGrFrTsgIzY5OTgKK+ammSA+IHTEgzsgIzY5OTkKK+ammiA+IHnEg287ICM2OTlBCivmppsgPiB6aMSTbjsgIzY5OUIKK+amnCA+IGLEg25nOyAjNjk5Qwor5qadID4gc2jEgTsgIzY5OUQKK+amniA+IHl1w6FuOyAjNjk5RQor5qafID4gesStOyAjNjk5Rgor5qagID4gbcSrbmc7ICM2OUEwCivmpqEgPiBzw7k7ICM2OUExCivmpqIgPiBqacOgOyAjNjlBMgor5qajID4gecOhbzsgIzY5QTMKK+ampCA+IGppw6k7ICM2OUE0CivmpqUgPiBodcSDbmc7ICM2OUE1CivmpqYgPiBnw6BuOyAjNjlBNgor5qanID4gZsSVaTsgIzY5QTcKK+amqCA+IHpow6A7ICM2OUE4CivmpqkgPiBxacOhbjsgIzY5QTkKK+amqiA+IG3DoDsgIzY5QUEKK+amqyA+IHPFrW47ICM2OUFCCivmpqwgPiB5dcOhbjsgIzY5QUMKK+amrSA+IHhpw6g7ICM2OUFECivmpq4gPiByw7NuZzsgIzY5QUUKK+amryA+IHNow607ICM2OUFGCivmprAgPiB6aMSrOyAjNjlCMAor5qaxID4gY8WraTsgIzY5QjEKK+amsiA+IHnDum47ICM2OUIyCivmprMgPiB0w61uZzsgIzY5QjMKK+amtCA+IGzDrXU7ICM2OUI0CivmprUgPiByw7NuZzsgIzY5QjUKK+amtiA+IHTDoW5nOyAjNjlCNgor5qa3ID4gcXXDqDsgIzY5QjcKK+amuCA+IHpoxIFpOyAjNjlCOAor5qa5ID4gc8SrOyAjNjlCOQor5qa6ID4gc2jDqG5nOyAjNjlCQQor5qa7ID4gdMOgOyAjNjlCQgor5qa8ID4ga8OoOyAjNjlCQwor5qa9ID4geMSrOyAjNjlCRAor5qa+ID4gZ8O5OyAjNjlCRQor5qa/ID4gccSrOyAjNjlCRgor5qeAID4ga8SDbzsgIzY5QzAKK+angSA+IGfEg287ICM2OUMxCivmp4IgPiBzxatuOyAjNjlDMgor5qeDID4gcMOhbjsgIzY5QzMKK+anhCA+IHTEgW87ICM2OUM0Civmp4UgPiBnw6k7ICM2OUM1Civmp4YgPiB4w7puOyAjNjlDNgor5qeHID4gZGnEgW47ICM2OUM3Civmp4ggPiBuw7J1OyAjNjlDOAor5qeJID4gasOtOyAjNjlDOQor5qeKID4gc2jDuW87ICM2OUNBCivmp4sgPiBnw7J1OyAjNjlDQgor5qeMID4gY2jDumk7ICM2OUNDCivmp40gPiBxacSBbmc7ICM2OUNECivmp44gPiBjaMSBOyAjNjlDRQor5qePID4gcWnEg247ICM2OUNGCivmp5AgPiBodcOhaTsgIzY5RDAKK+ankSA+IG3DqWk7ICM2OUQxCivmp5IgPiB4w7k7ICM2OUQyCivmp5MgPiBnw6BuZzsgIzY5RDMKK+anlCA+IGfEgW87ICM2OUQ0Civmp5UgPiB6aMO6bzsgIzY5RDUKK+anliA+IHTDuW87ICM2OUQ2Civmp5ggPiB5w6BuZzsgIzY5RDgKK+anmSA+IGRpxIFuOyAjNjlEOQor5qeaID4gamnEgzsgIzY5REEKK+anmyA+IGppw6BuOyAjNjlEQgor5qecID4gesO5aTsgIzY5REMKK+annyA+IGLEq247ICM2OURGCivmp6AgPiB6aMWrOyAjNjlFMAor5qeiID4geMOtOyAjNjlFMgor5qejID4gccStOyAjNjlFMwor5qekID4gbGnDoW47ICM2OUU0Civmp6UgPiBow7lpOyAjNjlFNQor5qemID4gecOzbmc7ICM2OUU2Civmp6cgPiBxacOgbjsgIzY5RTcKK+anqCA+IGfFrW87ICM2OUU4Civmp6kgPiBnw6BpOyAjNjlFOQor5qeqID4gZ8OgaTsgIzY5RUEKK+anqyA+IHR1w6FuOyAjNjlFQgor5qesID4gaHXDoDsgIzY5RUMKK+anrSA+IGPDuTsgIzY5RUQKK+anriA+IHPEk247ICM2OUVFCivmp68gPiBjxatpOyAjNjlFRgor5qewID4gYsOobmc7ICM2OUYwCivmp7EgPiB5xY91OyAjNjlGMQor5qeyID4gaMO6OyAjNjlGMgor5qezID4gamnEg25nOyAjNjlGMwor5qe0ID4gaMO5OyAjNjlGNAor5qe1ID4gaHXDoG47ICM2OUY1Civmp7YgPiBrw7lpOyAjNjlGNgor5qe3ID4gecOsOyAjNjlGNwor5qe4ID4gbmnDqDsgIzY5RjgKK+anuSA+IGfEgW87ICM2OUY5Civmp7ogPiBrxIFuZzsgIzY5RkEKK+anuyA+IGfFq2k7ICM2OUZCCivmp7wgPiBnxatpOyAjNjlGQwor5qe9ID4gY8OhbzsgIzY5RkQKK+anviA+IG3DoW47ICM2OUZFCivmp78gPiBqxK1uOyAjNjlGRgor5qiAID4gZMOsOyAjNkEwMAor5qiBID4gemh1xIFuZzsgIzZBMDEKK+aogiA+IGzDqDsgIzZBMDIKK+aogyA+IGzDoW5nOyAjNkEwMwor5qiEID4gY2jDqW47ICM2QTA0CivmqIUgPiBjxY1uZzsgIzZBMDUKK+aohiA+IGzDrTsgIzZBMDYKK+aohyA+IHjEq3U7ICM2QTA3CivmqIggPiBxw61uZzsgIzZBMDgKK+aoiSA+IHNodcSDbmc7ICM2QTA5CivmqIogPiBmw6FuOyAjNkEwQQor5qiLID4gdMWNbmc7ICM2QTBCCivmqIwgPiBndcOgbjsgIzZBMEMKK+aojSA+IGrEqzsgIzZBMEQKK+aojiA+IHPFq287ICM2QTBFCivmqI8gPiBsxJVpOyAjNkEwRgor5qiQID4gbMWtOyAjNkExMAor5qiRID4gbGnDoW5nOyAjNkExMQor5qiSID4gbcOsOyAjNkExMgor5qiTID4gbMOzdTsgIzZBMTMKK+aolCA+IGNow6FvOyAjNkExNAor5qiVID4gc8O5OyAjNkExNQor5qiWID4ga8STOyAjNkExNgor5qiXID4gc2jFqzsgIzZBMTcKK+aomCA+IHTDoW5nOyAjNkExOAor5qiZID4gYmnEgW87ICM2QTE5CivmqJogPiBsw7k7ICM2QTFBCivmqJsgPiBqxKt1OyAjNkExQgor5qicID4gc2jDuTsgIzZBMUMKK+aonSA+IHpoxIE7ICM2QTFECivmqJ4gPiBzaMWrOyAjNkExRQor5qifID4gemjEgW5nOyAjNkExRgor5qigID4gbcOpbjsgIzZBMjAKK+aooSA+IG3DszsgIzZBMjEKK+aooiA+IG5pxINvOyAjNkEyMgor5qijID4gecOgbmc7ICM2QTIzCivmqKQgPiB0acOhbzsgIzZBMjQKK+aopSA+IHDDqW5nOyAjNkEyNQor5qimID4gemjDuTsgIzZBMjYKK+aopyA+IHNoxIE7ICM2QTI3CivmqKggPiB4xKs7ICM2QTI4CivmqKkgPiBxdcOhbjsgIzZBMjkKK+aoqiA+IGjDqW5nOyAjNkEyQQor5qirID4gamnEgW47ICM2QTJCCivmqKwgPiBjxY1uZzsgIzZBMkMKK+aoryA+IHFpw6FuZzsgIzZBMkYKK+aosSA+IHnEq25nOyAjNkEzMQor5qiyID4gw6hyOyAjNkEzMgor5qizID4geMOtbjsgIzZBMzMKK+aotCA+IHpow607ICM2QTM0CivmqLUgPiBxacOhbzsgIzZBMzUKK+aotiA+IHrFq2k7ICM2QTM2CivmqLcgPiBjxY1uZzsgIzZBMzcKK+aouCA+IHDDujsgIzZBMzgKK+aouSA+IHNow7k7ICM2QTM5CivmqLogPiBodcOgOyAjNkEzQQor5qi7ID4ga8O5aTsgIzZBM0IKK+aovCA+IHpoxJNuOyAjNkEzQwor5qi9ID4gesWrbjsgIzZBM0QKK+aoviA+IHl1w6g7ICM2QTNFCivmqL8gPiB6aMSDbjsgIzZBM0YKK+apgCA+IHjEqzsgIzZBNDAKK+apgSA+IHjDum47ICM2QTQxCivmqYIgPiBkacOgbjsgIzZBNDIKK+apgyA+IGbEgTsgIzZBNDMKK+aphCA+IGfEg247ICM2QTQ0CivmqYUgPiBtw7M7ICM2QTQ1CivmqYYgPiB3xa07ICM2QTQ2CivmqYcgPiBxacSBbzsgIzZBNDcKK+apiCA+IG7DoW87ICM2QTQ4CivmqYkgPiBsw6xuOyAjNkE0OQor5qmKID4gbMOtdTsgIzZBNEEKK+apiyA+IHFpw6FvOyAjNkE0Qgor5qmMID4geGnDoG47ICM2QTRDCivmqY0gPiByw7luOyAjNkE0RAor5qmOID4gZsOhbjsgIzZBNEUKK+apjyA+IHpoxINuOyAjNkE0Rgor5qmQID4gdMO5bzsgIzZBNTAKK+apkSA+IGzEg287ICM2QTUxCivmqZIgPiB5w7puOyAjNkE1Mgor5qmTID4gc2jDuW47ICM2QTUzCivmqZQgPiB0w7ppOyAjNkE1NAor5qmVID4gY2jEk25nOyAjNkE1NQor5qmWID4gdMOhbmc7ICM2QTU2CivmqZcgPiBtw6luZzsgIzZBNTcKK+apmCA+IGrDujsgIzZBNTgKK+apmSA+IGNow6luZzsgIzZBNTkKK+apmiA+IHPDuTsgIzZBNUEKK+apmyA+IGp1w6k7ICM2QTVCCivmqZwgPiBqdcOpOyAjNkE1Qwor5qmdID4gdMSBbjsgIzZBNUQKK+apniA+IGjDuWk7ICM2QTVFCivmqZ8gPiBqxKs7ICM2QTVGCivmqaAgPiBuxa1vOyAjNkE2MAor5qmhID4geGnDoG5nOyAjNkE2MQor5qmiID4gdMWtbzsgIzZBNjIKK+apoyA+IG7ErW5nOyAjNkE2Mwor5qmkID4gcsWtaTsgIzZBNjQKK+appSA+IHpoxas7ICM2QTY1CivmqaYgPiBjaHXDoW5nOyAjNkE2Ngor5qmnID4gesSTbmc7ICM2QTY3CivmqaggPiBmw6luOyAjNkE2OAor5qmpID4gccOtb25nOyAjNkE2OQor5qmqID4gcsSDbjsgIzZBNkEKK+apqyA+IGjDqW5nOyAjNkE2Qgor5qmsID4gY8OpbjsgIzZBNkMKK+aprSA+IGfFqzsgIzZBNkQKK+apriA+IGzErXU7ICM2QTZFCivmqa8gPiBsw6BvOyAjNkE2Rgor5qmwID4gZ8SBbzsgIzZBNzAKK+apsSA+IGNow7o7ICM2QTcxCivmqbYgPiBqw607ICM2QTc2CivmqbcgPiBkxY11OyAjNkE3Nwor5qm5ID4gbMWtOyAjNkE3OQor5qm8ID4geXXDoW47ICM2QTdDCivmqb0gPiB0w6A7ICM2QTdECivmqb4gPiBzaMWrOyAjNkE3RQor5qm/ID4gamnEgW5nOyAjNkE3Rgor5qqAID4gdMOhbjsgIzZBODAKK+aqgSA+IGzErW47ICM2QTgxCivmqoIgPiBuw7NuZzsgIzZBODIKK+aqgyA+IHnErW47ICM2QTgzCivmqoQgPiB4w607ICM2QTg0CivmqoUgPiBzw7lpOyAjNkE4NQor5qqGID4gc2jEgW47ICM2QTg2CivmqocgPiB6w7lpOyAjNkE4Nwor5qqIID4geHXDoW47ICM2QTg4CivmqokgPiBjaMSTbmc7ICM2QTg5CivmqoogPiBnw6BuOyAjNkE4QQor5qqLID4gasWrOyAjNkE4Qgor5qqMID4gesO5aTsgIzZBOEMKK+aqjSA+IHnDrDsgIzZBOEQKK+aqjiA+IHHDrW47ICM2QThFCivmqo8gPiBwxa07ICM2QThGCivmqpAgPiB5w6FuOyAjNkE5MAor5qqRID4gbMOpaTsgIzZBOTEKK+aqkiA+IGbEk25nOyAjNkE5Mgor5qqTID4gaMWtaTsgIzZBOTMKK+aqlCA+IGTEg25nOyAjNkE5NAor5qqVID4gasOsOyAjNkE5NQor5qqWID4gc8O5aTsgIzZBOTYKK+aqlyA+IGLDsjsgIzZBOTcKK+aqmCA+IGLDrDsgIzZBOTgKK+aqmSA+IGTErW5nOyAjNkE5OQor5qqaID4gY2jFrTsgIzZBOUEKK+aqmyA+IHpodcSBOyAjNkE5Qgor5qqcID4ga3XDoGk7ICM2QTlDCivmqp0gPiBqw607ICM2QTlECivmqp4gPiBqacSVOyAjNkE5RQor5qqfID4gamnEgzsgIzZBOUYKK+aqoCA+IHHDrW5nOyAjNkFBMAor5qqhID4gemjDqDsgIzZBQTEKK+aqoiA+IGppxINuOyAjNkFBMgor5qqjID4gcWnDoW5nOyAjNkFBMwor5qqkID4gZMOgbzsgIzZBQTQKK+aqpSA+IHnErTsgIzZBQTUKK+aqpiA+IGJpxINvOyAjNkFBNgor5qqnID4gc8WNbmc7ICM2QUE3CivmqqggPiBzaMSTOyAjNkFBOAor5qqpID4gbMStbjsgIzZBQTkKK+aqqyA+IGNow6E7ICM2QUFCCivmqqwgPiBtw6luZzsgIzZBQUMKK+aqrSA+IHnDrW47ICM2QUFECivmqq4gPiB0w6FvOyAjNkFBRQor5qqvID4gdMOhaTsgIzZBQUYKK+aqsCA+IG1pw6FuOyAjNkFCMAor5qqxID4gccOtOyAjNkFCMQor5qqyID4gdMOzYW47ICM2QUIyCivmqrMgPiBixKtuOyAjNkFCMwor5qq0ID4gaMO5bzsgIzZBQjQKK+aqtSA+IGrDrDsgIzZBQjUKK+aqtiA+IHFpxIFuOyAjNkFCNgor5qq3ID4gbcOtOyAjNkFCNwor5qq4ID4gbsOtbmc7ICM2QUI4CivmqrkgPiB5xKs7ICM2QUI5CivmqrogPiBnxINvOyAjNkFCQQor5qq7ID4gamnDoG47ICM2QUJCCivmqrwgPiB5w6xuOyAjNkFCQwor5qq9ID4gw6lyOyAjNkFCRAor5qq+ID4gccStbmc7ICM2QUJFCivmqr8gPiB5xINuOyAjNkFCRgor5quAID4gccOtOyAjNkFDMAor5quBID4gbcOsOyAjNkFDMQor5quCID4gemjDoG87ICM2QUMyCivmq4MgPiBnw7lpOyAjNkFDMwor5quEID4gY2jFq247ICM2QUM0Civmq4UgPiBqxKs7ICM2QUM1Civmq4YgPiBrw7ppOyAjNkFDNgor5quHID4gcMOzOyAjNkFDNwor5quIID4gZMOobmc7ICM2QUM4Civmq4kgPiBjaMO6OyAjNkFDOQor5quLID4gbWnDoW47ICM2QUNCCivmq4wgPiB5xY11OyAjNkFDQwor5quNID4gemjDrDsgIzZBQ0QKK+arjiA+IGd1w6BuZzsgIzZBQ0UKK+arjyA+IHFpxIFuOyAjNkFDRgor5quQID4gbMSVaTsgIzZBRDAKK+arkSA+IGzElWk7ICM2QUQxCivmq5IgPiBzw6A7ICM2QUQyCivmq5MgPiBsxa07ICM2QUQzCivmq5QgPiBsw6w7ICM2QUQ0Civmq5UgPiBjdcOhbjsgIzZBRDUKK+arliA+IGzHmDsgIzZBRDYKK+arlyA+IG1pw6g7ICM2QUQ3Civmq5ggPiBow7lpOyAjNkFEOAor5quZID4gxY11OyAjNkFEOQor5quaID4gbMeYOyAjNkFEQQor5qubID4gamnDqTsgIzZBREIKK+arnCA+IGfEgW87ICM2QURDCivmq50gPiBkw7o7ICM2QURECivmq54gPiB5dcOhbjsgIzZBREUKK+arnyA+IGzDrDsgIzZBREYKK+aroCA+IGbDqGk7ICM2QUUwCivmq6EgPiB6aMO6bzsgIzZBRTEKK+aroiA+IHPFj3U7ICM2QUUyCivmq6MgPiBsacOhbjsgIzZBRTMKK+arpSA+IGNow7o7ICM2QUU1Civmq6cgPiB6aMWrOyAjNkFFNwor5quoID4gbMO6OyAjNkFFOAor5qupID4gecOhbjsgIzZBRTkKK+arqiA+IGzDrDsgIzZBRUEKK+arqyA+IHpoxas7ICM2QUVCCivmq6wgPiBjaMOobjsgIzZBRUMKK+arrSA+IGppw6k7ICM2QUVECivmq64gPiDDqDsgIzZBRUUKK+arryA+IHPFqzsgIzZBRUYKK+arsCA+IGh1w6FpOyAjNkFGMAor5quxID4gbmnDqDsgIzZBRjEKK+arsiA+IHnDuTsgIzZBRjIKK+arsyA+IGzDs25nOyAjNkFGMwor5qu0ID4gbMOgaTsgIzZBRjQKK+artiA+IHhpxINuOyAjNkFGNgor5qu4ID4gasWtOyAjNkFGOAor5qu5ID4geGnEgW87ICM2QUY5Civmq7ogPiBsw61uZzsgIzZBRkEKK+aruyA+IHnEq25nOyAjNkFGQgor5qu8ID4gamnEgW47ICM2QUZDCivmq70gPiB5xK1uOyAjNkFGRAor5qu+ID4gecOzdTsgIzZBRkUKK+arvyA+IHnDrW5nOyAjNkFGRgor5qyAID4geGnEgW5nOyAjNkIwMAor5qyBID4gbsOzbmc7ICM2QjAxCivmrIIgPiBiw7M7ICM2QjAyCivmrIMgPiBjaMOhbjsgIzZCMDMKK+ashCA+IGzDoW47ICM2QjA0CivmrIUgPiBqxa07ICM2QjA1CivmrIYgPiBzaHXEgW5nOyAjNkIwNgor5qyHID4gc2jDqDsgIzZCMDcKK+asiCA+IHfDqWk7ICM2QjA4CivmrIkgPiBjw7JuZzsgIzZCMDkKK+asiiA+IHF1w6FuOyAjNkIwQQor5qyLID4gccO6OyAjNkIwQgor5qyOID4gecO5OyAjNkIwRQor5qyPID4gbMO6bzsgIzZCMEYKK+askCA+IGzErTsgIzZCMTAKK+askSA+IHrDoG47ICM2QjExCivmrJIgPiBsdcOhbjsgIzZCMTIKK+askyA+IGTEg25nOyAjNkIxMwor5qyUID4ganXDqTsgIzZCMTQKK+asliA+IGzEg247ICM2QjE2CivmrJcgPiBsw6FuOyAjNkIxNwor5qyYID4gemjFrTsgIzZCMTgKK+asmSA+IGzDqWk7ICM2QjE5CivmrJogPiBsxK07ICM2QjFBCivmrJsgPiBiw6A7ICM2QjFCCivmrJwgPiBuw6FuZzsgIzZCMUMKK+asnSA+IHnDuTsgIzZCMUQKK+asniA+IGzDrW5nOyAjNkIxRQor5qygID4gcWnDoG47ICM2QjIwCivmrKEgPiBjw6w7ICM2QjIxCivmrKIgPiBodcSBbjsgIzZCMjIKK+asoyA+IHjEq247ICM2QjIzCivmrKQgPiB5w7o7ICM2QjI0CivmrKUgPiB5w7k7ICM2QjI1CivmrKYgPiBxacSBbjsgIzZCMjYKK+aspyA+IMWNdTsgIzZCMjcKK+asqCA+IHjFqzsgIzZCMjgKK+asqSA+IGNoxIFvOyAjNkIyOQor5qyqID4gY2jDuTsgIzZCMkEKK+asqyA+IGNoxKs7ICM2QjJCCivmrKwgPiBrw6BpOyAjNkIyQwor5qytID4gecOsOyAjNkIyRAor5qyuID4ganXDqTsgIzZCMkUKK+asryA+IHjDrTsgIzZCMkYKK+assCA+IHjFqzsgIzZCMzAKK+assSA+IHhpw6A7ICM2QjMxCivmrLIgPiB5w7k7ICM2QjMyCivmrLMgPiBrdcOgaTsgIzZCMzMKK+astCA+IGzDoW5nOyAjNkIzNAor5qy1ID4ga3XEg247ICM2QjM1CivmrLYgPiBzaMO5bzsgIzZCMzYKK+astyA+IHjEqzsgIzZCMzcKK+asuCA+IMSDaTsgIzZCMzgKK+asuSA+IHnEqzsgIzZCMzkKK+asuiA+IHHEqzsgIzZCM0EKK+asuyA+IGjFqzsgIzZCM0IKK+asvCA+IGNoxK07ICM2QjNDCivmrL0gPiBxxKtuOyAjNkIzRAor5qy+ID4ga3XEg247ICM2QjNFCivmrL8gPiBrxINuOyAjNkIzRgor5q2AID4ga3XEg247ICM2QjQwCivmrYEgPiBrxINuOyAjNkI0MQor5q2CID4gY2h1w6FuOyAjNkI0Mgor5q2DID4gc2jDoDsgIzZCNDMKK+athCA+IGd1YTsgIzZCNDQKK+athSA+IHnEq247ICM2QjQ1CivmrYYgPiB4xKtuOyAjNkI0Ngor5q2HID4geGnEkzsgIzZCNDcKK+atiCA+IHnDujsgIzZCNDgKK+atiSA+IHFpw6BuOyAjNkI0OQor5q2KID4geGnEgW87ICM2QjRBCivmrYsgPiB5w607ICM2QjRCCivmrYwgPiBnxJM7ICM2QjRDCivmrY0gPiB3xas7ICM2QjRECivmrY4gPiB0w6BuOyAjNkI0RQor5q2PID4gasOsbjsgIzZCNEYKK+atkCA+IMWNdTsgIzZCNTAKK+atkSA+IGjFqzsgIzZCNTEKK+atkiA+IHTDrDsgIzZCNTIKK+atkyA+IGh1xIFuOyAjNkI1Mwor5q2UID4geMWrOyAjNkI1NAor5q2VID4gcMOobjsgIzZCNTUKK+atliA+IHjEqzsgIzZCNTYKK+atlyA+IHhpw6BvOyAjNkI1Nwor5q2YID4geMWrOyAjNkI1OAor5q2ZID4geMOsOyAjNkI1OQor5q2bID4gbGnDoG47ICM2QjVCCivmrZwgPiBjaMO5OyAjNkI1Qwor5q2dID4gecOsOyAjNkI1RAor5q2eID4ga8SDbjsgIzZCNUUKK+atnyA+IHnDujsgIzZCNUYKK+atoCA+IGNow7lvOyAjNkI2MAor5q2hID4gaHXEgW47ICM2QjYxCivmraIgPiB6aMStOyAjNkI2Mgor5q2jID4gemjDqG5nOyAjNkI2Mwor5q2kID4gY8StOyAjNkI2NAor5q2lID4gYsO5OyAjNkI2NQor5q2mID4gd8WtOyAjNkI2Ngor5q2nID4gccOtOyAjNkI2Nwor5q2oID4gYsO5OyAjNkI2OAor5q2pID4gYsO5OyAjNkI2OQor5q2qID4gd8SBaTsgIzZCNkEKK+atqyA+IGrDuTsgIzZCNkIKK+atrCA+IHFpw6FuOyAjNkI2Qwor5q2tID4gY2jDrTsgIzZCNkQKK+atriA+IHPDqDsgIzZCNkUKK+atryA+IGNoxK07ICM2QjZGCivmrbAgPiBzw6g7ICM2QjcwCivmrbEgPiB6aMWPbmc7ICM2QjcxCivmrbIgPiBzw7lpOyAjNkI3Mgor5q2zID4gc8O5aTsgIzZCNzMKK+attCA+IGzDrDsgIzZCNzQKK+attSA+IGPDuW87ICM2Qjc1CivmrbYgPiB5w7o7ICM2Qjc2CivmrbcgPiBsw6w7ICM2Qjc3CivmrbggPiBnxatpOyAjNkI3OAor5q25ID4gZMSDaTsgIzZCNzkKK+atuiA+IGTEg2k7ICM2QjdBCivmrbsgPiBzxK07ICM2QjdCCivmrbwgPiBqacSBbjsgIzZCN0MKK+atvSA+IHpow6k7ICM2QjdECivmrb4gPiBtw7I7ICM2QjdFCivmrb8gPiBtw7I7ICM2QjdGCivmroAgPiB5xINvOyAjNkI4MAor5q6BID4gbcOyOyAjNkI4MQor5q6CID4gY8O6OyAjNkI4Mgor5q6DID4gecSBbmc7ICM2QjgzCivmroQgPiB0acSDbjsgIzZCODQKK+auhSA+IHNoxJNuZzsgIzZCODUKK+auhiA+IGTDoGk7ICM2Qjg2CivmrocgPiBzaMSBbmc7ICM2Qjg3CivmroggPiB4w7k7ICM2Qjg4CivmrokgPiB4w7luOyAjNkI4OQor5q6KID4gc2jFqzsgIzZCOEEKK+auiyA+IGPDoW47ICM2QjhCCivmrowgPiBqdcOpOyAjNkI4Qwor5q6NID4gcGnEg287ICM2QjhECivmro4gPiBxacOgOyAjNkI4RQor5q6PID4gccOsdTsgIzZCOEYKK+aukCA+IHPDuTsgIzZCOTAKK+aukSA+IHHDrW5nOyAjNkI5MQor5q6SID4gecWtbjsgIzZCOTIKK+aukyA+IGxpw6BuOyAjNkI5Mwor5q6UID4gecOsOyAjNkI5NAor5q6VID4gZsWPdTsgIzZCOTUKK+auliA+IHpow607ICM2Qjk2CivmrpcgPiB5w6g7ICM2Qjk3CivmrpggPiBjw6FuOyAjNkI5OAor5q6ZID4gaMWrbjsgIzZCOTkKK+aumiA+IGTEgW47ICM2QjlBCivmrpsgPiBqw607ICM2QjlCCivmrpwgPiB5w6g7ICM2QjlDCivmrp0gPiB6aGVuOyAjNkI5RAor5q6eID4gecWtbjsgIzZCOUUKK+aunyA+IHfEk247ICM2QjlGCivmrqAgPiBjaMOydTsgIzZCQTAKK+auoSA+IGLDrG47ICM2QkExCivmrqIgPiB0w6w7ICM2QkEyCivmrqMgPiBqxK1uOyAjNkJBMwor5q6kID4gc2jEgW5nOyAjNkJBNAor5q6lID4gecOtbjsgIzZCQTUKK+aupiA+IGRpxIFvOyAjNkJBNgor5q6nID4gY8O5OyAjNkJBNwor5q6oID4gaMO5aTsgIzZCQTgKK+auqSA+IGN1w6BuOyAjNkJBOQor5q6qID4gecOsOyAjNkJBQQor5q6rID4gZMSBbjsgIzZCQUIKK+aurCA+IGTDuTsgIzZCQUMKK+aurSA+IGppxIFuZzsgIzZCQUQKK+auriA+IGxpw6BuOyAjNkJBRQor5q6vID4gYsOsbjsgIzZCQUYKK+ausCA+IGTDujsgIzZCQjAKK+ausiA+IGppxIFuOyAjNkJCMgor5q6zID4gc2jFqzsgIzZCQjMKK+autCA+IMWNdTsgIzZCQjQKK+autSA+IGR1w6BuOyAjNkJCNQor5q62ID4gemjDuTsgIzZCQjYKK+autyA+IHnEq247ICM2QkI3CivmrrggPiBxw6xuZzsgIzZCQjgKK+auuSA+IHnDrDsgIzZCQjkKK+auuiA+IHNoxIE7ICM2QkJBCivmrrsgPiBxdcOoOyAjNkJCQgor5q68ID4ga8OpOyAjNkJCQwor5q69ID4gecOhbzsgIzZCQkQKK+auviA+IGrDuW47ICM2QkJFCivmrr8gPiBkacOgbjsgIzZCQkYKK+avgCA+IGjFrWk7ICM2QkMwCivmr4EgPiBoxa1pOyAjNkJDMQor5q+CID4gZ8WtOyAjNkJDMgor5q+DID4gcXXDqDsgIzZCQzMKK+avhCA+IGrEqzsgIzZCQzQKK+avhSA+IHnDrDsgIzZCQzUKK+avhiA+IMWNdTsgIzZCQzYKK+avhyA+IGjFrWk7ICM2QkM3Civmr4ggPiBkdcOgbjsgIzZCQzgKK+aviSA+IHnEqzsgIzZCQzkKK+aviiA+IHhpxIFvOyAjNkJDQQor5q+LID4gd8O6OyAjNkJDQgor5q+MID4gZ3XDoG47ICM2QkNDCivmr40gPiBtxa07ICM2QkNECivmr44gPiBtxJVpOyAjNkJDRQor5q+PID4gbcSVaTsgIzZCQ0YKK+avkCA+IMSDaTsgIzZCRDAKK+avkSA+IHrFrW87ICM2QkQxCivmr5IgPiBkw7o7ICM2QkQyCivmr5MgPiB5w7k7ICM2QkQzCivmr5QgPiBixK07ICM2QkQ0Civmr5UgPiBiw6w7ICM2QkQ1Civmr5YgPiBiw6w7ICM2QkQ2Civmr5cgPiBww607ICM2QkQ3Civmr5ggPiBww607ICM2QkQ4Civmr5kgPiBiw6w7ICM2QkQ5Civmr5ogPiBjaMOhbjsgIzZCREEKK+avmyA+IG3DoW87ICM2QkRCCivmr54gPiBww7o7ICM2QkRFCivmr6AgPiBqacSBOyAjNkJFMAor5q+hID4gemjEgW47ICM2QkUxCivmr6IgPiBzxIFpOyAjNkJFMgor5q+jID4gbcO5OyAjNkJFMwor5q+kID4gdMO5bzsgIzZCRTQKK+avpSA+IHjDum47ICM2QkU1Civmr6YgPiDDqHI7ICM2QkU2Civmr6cgPiByw7NuZzsgIzZCRTcKK+avqCA+IHhpxINuOyAjNkJFOAor5q+pID4gasO6OyAjNkJFOQor5q+qID4gbcO6OyAjNkJFQQor5q+rID4gaMOhbzsgIzZCRUIKK+avrCA+IHHDrXU7ICM2QkVDCivmr60gPiBkw7J1OyAjNkJFRAor5q+vID4gdMSDbjsgIzZCRUYKK+avsCA+IHDDqWk7ICM2QkYwCivmr7EgPiBqw7o7ICM2QkYxCivmr7IgPiBkw7pvOyAjNkJGMgor5q+zID4gY8O5aTsgIzZCRjMKK+avtCA+IGLEqzsgIzZCRjQKK+avtSA+IHPEgW47ICM2QkY1Civmr7cgPiBtw6BvOyAjNkJGNwor5q+4ID4gc8WraTsgIzZCRjgKK+avuSA+IHnFqzsgIzZCRjkKK+avuiA+IHnFqzsgIzZCRkEKK+avuyA+IHTDuW87ICM2QkZCCivmr7wgPiBow6k7ICM2QkZDCivmr70gPiBqacOgbjsgIzZCRkQKK+avviA+IHTDoDsgIzZCRkUKK+avvyA+IHPEgW47ICM2QkZGCivmsIAgPiBsx5g7ICM2QzAwCivmsIEgPiBtw7o7ICM2QzAxCivmsIIgPiBsw607ICM2QzAyCivmsIMgPiB0w7NuZzsgIzZDMDMKK+awhCA+IHLFj25nOyAjNkMwNAor5rCFID4gY2jEg25nOyAjNkMwNQor5rCGID4gcMWtOyAjNkMwNgor5rCHID4gbMO6bzsgIzZDMDcKK+awiCA+IHpoxIFuOyAjNkMwOAor5rCJID4gc8OgbzsgIzZDMDkKK+awiiA+IHpoxIFuOyAjNkMwQQor5rCLID4gbcOpbmc7ICM2QzBCCivmsIwgPiBsw7pvOyAjNkMwQwor5rCNID4gccO6OyAjNkMwRAor5rCOID4gZGnDqTsgIzZDMEUKK+awjyA+IHNow6w7ICM2QzBGCivmsJAgPiBkxK07ICM2QzEwCivmsJEgPiBtw61uOyAjNkMxMQor5rCSID4ganXDqTsgIzZDMTIKK+awkyA+IG3DoW5nOyAjNkMxMwor5rCUID4gccOsOyAjNkMxNAor5rCVID4gcGnEkzsgIzZDMTUKK+awliA+IG7Eg2k7ICM2QzE2CivmsJcgPiBxw6w7ICM2QzE3CivmsJggPiBkxIFvOyAjNkMxOAor5rCZID4geGnEgW47ICM2QzE5CivmsJogPiBjaHXEgW47ICM2QzFBCivmsJsgPiBmxJNuOyAjNkMxQgor5rCcID4gcsOsOyAjNkMxQwor5rCdID4gbsOoaTsgIzZDMUQKK+awnyA+IGbDujsgIzZDMUYKK+awoCA+IHNoxJNuOyAjNkMyMAor5rChID4gZMWNbmc7ICM2QzIxCivmsKIgPiBxxKtuZzsgIzZDMjIKK+awoyA+IHHDrDsgIzZDMjMKK+awpCA+IHnEq247ICM2QzI0CivmsKUgPiB4xKs7ICM2QzI1CivmsKYgPiBow6BpOyAjNkMyNgor5rCnID4gecSDbmc7ICM2QzI3CivmsKggPiDEgW47ICM2QzI4CivmsKkgPiB5w6A7ICM2QzI5CivmsKogPiBrw6g7ICM2QzJBCivmsKsgPiBxxKtuZzsgIzZDMkIKK+awrCA+IHnDoDsgIzZDMkMKK+awrSA+IGTFjW5nOyAjNkMyRAor5rCuID4gZMOgbjsgIzZDMkUKK+awryA+IGzHnDsgIzZDMkYKK+awsCA+IHHEq25nOyAjNkMzMAor5rCxID4gecSDbmc7ICM2QzMxCivmsLIgPiB5xatuOyAjNkMzMgor5rCzID4gecWrbjsgIzZDMzMKK+awtCA+IHNoxa1pOyAjNkMzNAor5rC1ID4gc8SBbicgJ2RpxINuJyAnc2jFrWk7ICM2QzM1CivmsLYgPiB6aMSVbmc7ICM2QzM2CivmsLcgPiBixKtuZzsgIzZDMzcKK+awuCA+IHnFj25nOyAjNkMzOAor5rC5ID4gZMOgbmc7ICM2QzM5CivmsLsgPiBsw6g7ICM2QzNCCivmsLwgPiBuw6w7ICM2QzNDCivmsL0gPiB0xa1uOyAjNkMzRAor5rC+ID4gZsOgbjsgIzZDM0UKK+awvyA+IGfFrWk7ICM2QzNGCivmsYAgPiB0xKtuZzsgIzZDNDAKK+axgSA+IHpoxKs7ICM2QzQxCivmsYIgPiBxw611OyAjNkM0Mgor5rGDID4gYsSrbjsgIzZDNDMKK+axhCA+IHrDqDsgIzZDNDQKK+axhSA+IG1pxINuOyAjNkM0NQor5rGGID4gY3XEgW47ICM2QzQ2CivmsYcgPiBow7lpOyAjNkM0Nwor5rGIID4gZGnEgW87ICM2QzQ4CivmsYkgPiB5w6w7ICM2QzQ5CivmsYogPiBjaMOgOyAjNkM0QQor5rGLID4gemjDum87ICM2QzRCCivmsYwgPiBjaHXDoG47ICM2QzRDCivmsY0gPiB3w6FuOyAjNkM0RAor5rGOID4gZsOgbjsgIzZDNEUKK+axjyA+IGTDoGk7ICM2QzRGCivmsZAgPiB4w6w7ICM2QzUwCivmsZEgPiB0xatvOyAjNkM1MQor5rGSID4gbcOhbmc7ICM2QzUyCivmsZMgPiBxw611OyAjNkM1Mwor5rGUID4gccOsOyAjNkM1NAor5rGVID4gc2jDoG47ICM2QzU1CivmsZYgPiBww6BpOyAjNkM1Ngor5rGXID4gaMOgbjsgIzZDNTcKK+axmCA+IHFpxIFuOyAjNkM1OAor5rGZID4gd8WrOyAjNkM1OQor5rGaID4gd8WrOyAjNkM1QQor5rGbID4geMO5bjsgIzZDNUIKK+axnCA+IHPDrDsgIzZDNUMKK+axnSA+IHLFrTsgIzZDNUQKK+axniA+IGfFj25nOyAjNkM1RQor5rGfID4gamnEgW5nOyAjNkM1Rgor5rGgID4gY2jDrTsgIzZDNjAKK+axoSA+IHfFqzsgIzZDNjEKK+axpCA+IHTEgW5nOyAjNkM2NAor5rGlID4gemjEqzsgIzZDNjUKK+axpiA+IGNow607ICM2QzY2CivmsacgPiBxacSBbjsgIzZDNjcKK+axqCA+IG3DrDsgIzZDNjgKK+axqSA+IHnDuTsgIzZDNjkKK+axqiA+IHfEgW5nOyAjNkM2QQor5rGrID4gccOsbmc7ICM2QzZCCivmsawgPiBqxK1uZzsgIzZDNkMKK+axrSA+IHLDuWk7ICM2QzZECivmsa4gPiBqxatuOyAjNkM2RQor5rGvID4gaMOzbmc7ICM2QzZGCivmsbAgPiB0w6BpOyAjNkM3MAor5rGxID4gcXXEg247ICM2QzcxCivmsbIgPiBqw607ICM2QzcyCivmsbMgPiBiacOgbjsgIzZDNzMKK+axtCA+IGJpw6BuOyAjNkM3NAor5rG1ID4gZ8OgbjsgIzZDNzUKK+axtiA+IHfDqG47ICM2Qzc2CivmsbcgPiB6aMWNbmc7ICM2Qzc3CivmsbggPiBmxIFuZzsgIzZDNzgKK+axuSA+IHjEq29uZzsgIzZDNzkKK+axuiA+IGp1w6k7ICM2QzdBCivmsbsgPiBoxINuZzsgIzZDN0IKK+axvCA+IG5pxY11OyAjNkM3Qwor5rG9ID4gccOsOyAjNkM3RAor5rG+ID4gZsOpbjsgIzZDN0UKK+axvyA+IHjDuTsgIzZDN0YKK+aygCA+IHjDuTsgIzZDODAKK+aygSA+IHHDrG47ICM2QzgxCivmsoIgPiB5w607ICM2QzgyCivmsoMgPiB3w7I7ICM2QzgzCivmsoQgPiB5w7puOyAjNkM4NAor5rKFID4geXXDoW47ICM2Qzg1CivmsoYgPiBow6FuZzsgIzZDODYKK+ayhyA+IHnEg247ICM2Qzg3CivmsoggPiBjaMOpbjsgIzZDODgKK+ayiSA+IGNow6luOyAjNkM4OQor5rKKID4gZMOgbjsgIzZDOEEKK+ayiyA+IHnDs3U7ICM2QzhCCivmsowgPiBkw7luOyAjNkM4Qwor5rKNID4gaMO5OyAjNkM4RAor5rKOID4gaMO5bzsgIzZDOEUKK+ayjyA+IHFpxJM7ICM2QzhGCivmspAgPiBtw7k7ICM2QzkwCivmspEgPiByw7N1OyAjNkM5MQor5rKSID4gbcOpaTsgIzZDOTIKK+aykyA+IHTDoDsgIzZDOTMKK+aylCA+IG1pxINuOyAjNkM5NAor5rKVID4gd8O5OyAjNkM5NQor5rKWID4gY2jFjW5nOyAjNkM5Ngor5rKXID4gdGnEgW47ICM2Qzk3CivmspggPiBixK07ICM2Qzk4CivmspkgPiBzaMSBOyAjNkM5OQor5rKaID4gemjErTsgIzZDOUEKK+aymyA+IHDDqGk7ICM2QzlCCivmspwgPiBww6BuOyAjNkM5Qwor5rKdID4gemjFrWk7ICM2QzlECivmsp4gPiB6xIE7ICM2QzlFCivmsp8gPiBnxY11OyAjNkM5Rgor5rKgID4gbMOtdTsgIzZDQTAKK+ayoSA+IG3DqWk7ICM2Q0ExCivmsqIgPiB6w6k7ICM2Q0EyCivmsqMgPiBmxJNuZzsgIzZDQTMKK+aypCA+IMOydTsgIzZDQTQKK+aypSA+IGzDrDsgIzZDQTUKK+aypiA+IGzDum47ICM2Q0E2CivmsqcgPiBjxIFuZzsgIzZDQTcKK+ayqCA+IGbDqW5nOyAjNkNBOAor5rKpID4gd8OpaTsgIzZDQTkKK+ayqiA+IGjDuTsgIzZDQUEKK+ayqyA+IG3DsjsgIzZDQUIKK+ayrCA+IG3DqGk7ICM2Q0FDCivmsq0gPiBzaMO5OyAjNkNBRAor5rKuID4gasWrOyAjNkNBRQor5rKvID4gesSDbjsgIzZDQUYKK+aysCA+IHTFq287ICM2Q0IwCivmsrEgPiB0w7pvOyAjNkNCMQor5rKyID4gdMO6bzsgIzZDQjIKK+aysyA+IGjDqTsgIzZDQjMKK+aytCA+IGzDrDsgIzZDQjQKK+aytSA+IG3ErTsgIzZDQjUKK+aytiA+IHnDrTsgIzZDQjYKK+aytyA+IGbEgTsgIzZDQjcKK+ayuCA+IGbDqGk7ICM2Q0I4CivmsrkgPiB5w7N1OyAjNkNCOQor5rK6ID4gdGnDoW47ICM2Q0JBCivmsrsgPiB6aMOsOyAjNkNCQgor5rK8ID4gemjEg287ICM2Q0JDCivmsr0gPiBnxas7ICM2Q0JECivmsr4gPiB6aMSBbjsgIzZDQkUKK+ayvyA+IHnDoW47ICM2Q0JGCivms4AgPiBzxKs7ICM2Q0MwCivms4EgPiBrdcOgbmc7ICM2Q0MxCivms4IgPiBqxK1vbmc7ICM2Q0MyCivms4MgPiBqw7k7ICM2Q0MzCivms4QgPiB4acOoOyAjNkNDNAor5rOFID4gccOtdTsgIzZDQzUKK+azhiA+IHnEqzsgIzZDQzYKK+azhyA+IGppxIE7ICM2Q0M3Civms4ggPiB6aMWNbmc7ICM2Q0M4Civms4kgPiBxdcOhbjsgIzZDQzkKK+aziiA+IGLDszsgIzZDQ0EKK+aziyA+IGjDuWk7ICM2Q0NCCivms4wgPiBtw6w7ICM2Q0NDCivms40gPiBixJNuOyAjNkNDRAor5rOOID4gemjDum87ICM2Q0NFCivms48gPiBjaMO5OyAjNkNDRgor5rOQID4gbMOoOyAjNkNEMAor5rORID4gecWPdTsgIzZDRDEKK+azkiA+IGfFqzsgIzZDRDIKK+azkyA+IGjDs25nOyAjNkNEMwor5rOUID4gZ8SBbjsgIzZDRDQKK+azlSA+IGbEgzsgIzZDRDUKK+azliA+IG3Eg287ICM2Q0Q2Civms5cgPiBzw6w7ICM2Q0Q3Civms5ggPiBoxas7ICM2Q0Q4Civms5kgPiBww61uZzsgIzZDRDkKK+azmiA+IGPErTsgIzZDREEKK+azmyA+IGbDoG47ICM2Q0RCCivms5wgPiBjaMOtOyAjNkNEQwor5rOdID4gc8O5OyAjNkNERAor5rOeID4gbsOsbmc7ICM2Q0RFCivms58gPiBjaMSTbmc7ICM2Q0RGCivms6AgPiBsw61uZzsgIzZDRTAKK+azoSA+IHDDoG87ICM2Q0UxCivms6IgPiBixY07ICM2Q0UyCivms6MgPiBxw6w7ICM2Q0UzCivms6QgPiBzw6w7ICM2Q0U0Civms6UgPiBuw607ICM2Q0U1Civms6YgPiBqw7o7ICM2Q0U2Civms6cgPiB5dcOoOyAjNkNFNwor5rOoID4gemjDuTsgIzZDRTgKK+azqSA+IHNoxJNuZzsgIzZDRTkKK+azqiA+IGzDqGk7ICM2Q0VBCivms6sgPiB4dcOgbjsgIzZDRUIKK+azrCA+IHh1w6g7ICM2Q0VDCivms60gPiBmxas7ICM2Q0VECivms64gPiBww6BuOyAjNkNFRQor5rOvID4gbcStbjsgIzZDRUYKK+azsCA+IHTDoGk7ICM2Q0YwCivms7EgPiB5xIFuZzsgIzZDRjEKK+azsiA+IGrErTsgIzZDRjIKK+azsyA+IHnFj25nOyAjNkNGMwor5rO0ID4gZ3XDoG47ICM2Q0Y0Civms7UgPiBiw6huZzsgIzZDRjUKK+aztiA+IHh1w6k7ICM2Q0Y2Civms7cgPiBsw7NuZzsgIzZDRjcKK+azuCA+IGzDujsgIzZDRjgKK+azuiA+IGLDszsgIzZDRkEKK+azuyA+IHhpw6g7ICM2Q0ZCCivms7wgPiBwxY07ICM2Q0ZDCivms70gPiB6w6k7ICM2Q0ZECivms74gPiBqxKtuZzsgIzZDRkUKK+azvyA+IHnDrW47ICM2Q0ZGCivmtIAgPiB6aMWNdTsgIzZEMDAKK+a0gSA+IGrDrTsgIzZEMDEKK+a0giA+IHnDrDsgIzZEMDIKK+a0gyA+IGjFq2k7ICM2RDAzCivmtIQgPiBow7ppOyAjNkQwNAor5rSFID4gesWtaTsgIzZEMDUKK+a0hiA+IGNow6luZzsgIzZEMDYKK+a0hyA+IHnEq247ICM2RDA3CivmtIggPiB3w6lpOyAjNkQwOAor5rSJID4gaMOydTsgIzZEMDkKK+a0iiA+IGppw6BuOyAjNkQwQQor5rSLID4gecOhbmc7ICM2RDBCCivmtIwgPiBsacOoOyAjNkQwQwor5rSNID4gc8OsOyAjNkQwRAor5rSOID4gasOsOyAjNkQwRQor5rSPID4gw6lyOyAjNkQwRgor5rSQID4geMOtbmc7ICM2RDEwCivmtJEgPiBmw7o7ICM2RDExCivmtJIgPiBzxIM7ICM2RDEyCivmtJMgPiBzxa1vOyAjNkQxMwor5rSUID4gemjErTsgIzZEMTQKK+a0lSA+IHnEq247ICM2RDE1CivmtJYgPiB3w7o7ICM2RDE2CivmtJcgPiB4xK07ICM2RDE3CivmtJggPiBrxINvOyAjNkQxOAor5rSZID4gemjFqzsgIzZEMTkKK+a0miA+IGppw6BuZzsgIzZEMUEKK+a0myA+IGzDuW87ICM2RDFCCivmtJ0gPiDDoG47ICM2RDFECivmtJ4gPiBkw7JuZzsgIzZEMUUKK+a0nyA+IHnDrTsgIzZEMUYKK+a0oCA+IG3Ds3U7ICM2RDIwCivmtKEgPiBsxJVpOyAjNkQyMQor5rSiID4gecSrOyAjNkQyMgor5rSjID4gbcStOyAjNkQyMwor5rSkID4gcXXDoW47ICM2RDI0CivmtKUgPiBqxKtuOyAjNkQyNQor5rSmID4gbcOyOyAjNkQyNgor5rSnID4gd8SVaTsgIzZEMjcKK+a0qCA+IHhpw6FvOyAjNkQyOAor5rSpID4geGnDqDsgIzZEMjkKK+a0qiA+IGjDs25nOyAjNkQyQQor5rSrID4geMO5OyAjNkQyQgor5rSsID4gc2jDuW87ICM2RDJDCivmtK0gPiBrdcSBbmc7ICM2RDJECivmtK4gPiB0xIFvOyAjNkQyRQor5rSvID4gcWnDqDsgIzZEMkYKK+a0sCA+IGrDuTsgIzZEMzAKK+a0sSA+IMSVcjsgIzZEMzEKK+a0siA+IHpoxY11OyAjNkQzMgor5rSzID4gcsO5OyAjNkQzMwor5rS0ID4gcMOtbmc7ICM2RDM0CivmtLUgPiB4w7puOyAjNkQzNQor5rS2ID4geMSrb25nOyAjNkQzNgor5rS3ID4gemjDrDsgIzZEMzcKK+a0uCA+IGd1xIFuZzsgIzZEMzgKK+a0uSA+IGh1w6FuOyAjNkQzOQor5rS6ID4gbcOtbmc7ICM2RDNBCivmtLsgPiBow7pvOyAjNkQzQgor5rS8ID4gd8SBOyAjNkQzQwor5rS9ID4gcWnDoDsgIzZEM0QKK+a0viA+IHDDoGk7ICM2RDNFCivmtL8gPiB3xas7ICM2RDNGCivmtYAgPiBxxa07ICM2RDQwCivmtYEgPiBsw611OyAjNkQ0MQor5rWCID4gecOsOyAjNkQ0Mgor5rWDID4gamnDoTsgIzZENDMKK+a1hCA+IGrDrG5nOyAjNkQ0NAor5rWFID4gcWnEg247ICM2RDQ1CivmtYYgPiBqacSBbmc7ICM2RDQ2CivmtYcgPiBqacSBbzsgIzZENDcKK+a1iCA+IGNow6luZzsgIzZENDgKK+a1iSA+IHNoxKs7ICM2RDQ5CivmtYogPiB6aMO6bzsgIzZENEEKK+a1iyA+IGPDqDsgIzZENEIKK+a1jSA+IGt1w6BpOyAjNkQ0RAor5rWOID4gasOsOyAjNkQ0RQor5rWPID4gbMOtdTsgIzZENEYKK+a1kCA+IGNoxINuOyAjNkQ1MAor5rWRID4gaMO6bjsgIzZENTEKK+a1kiA+IGjFrTsgIzZENTIKK+a1kyA+IG7Ds25nOyAjNkQ1Mwor5rWUID4geMO6bjsgIzZENTQKK+a1lSA+IGrDrG47ICM2RDU1CivmtZYgPiBsacOoOyAjNkQ1Ngor5rWXID4gccOtdTsgIzZENTcKK+a1mCA+IHfElWk7ICM2RDU4CivmtZkgPiB6aMOoOyAjNkQ1OQor5rWaID4gasO5bjsgIzZENUEKK+a1myA+IGjDoG47ICM2RDVCCivmtZwgPiBixIFuZzsgIzZENUMKK+a1nSA+IG3DoW5nOyAjNkQ1RAor5rWeID4gemjDum87ICM2RDVFCivmtZ8gPiB5w7N1OyAjNkQ1Rgor5rWgID4geMSrOyAjNkQ2MAor5rWhID4gYsOzOyAjNkQ2MQor5rWiID4gZMOydTsgIzZENjIKK+a1oyA+IHfEg247ICM2RDYzCivmtaQgPiBow7NuZzsgIzZENjQKK+a1pSA+IHnDrDsgIzZENjUKK+a1piA+IHDFrTsgIzZENjYKK+a1pyA+IHnErW5nOyAjNkQ2Nwor5rWoID4gbMSDbjsgIzZENjgKK+a1qSA+IGjDoG87ICM2RDY5CivmtaogPiBsw6BuZzsgIzZENkEKK+a1qyA+IGjEg247ICM2RDZCCivmtawgPiBsxK07ICM2RDZDCivmta0gPiBnxJNuZzsgIzZENkQKK+a1riA+IGbDujsgIzZENkUKK+a1ryA+IHfDujsgIzZENkYKK+a1sCA+IGxpw6BuOyAjNkQ3MAor5rWxID4gY2jDum47ICM2RDcxCivmtbIgPiBmw6luZzsgIzZENzIKK+a1syA+IHnDrDsgIzZENzMKK+a1tCA+IHnDuTsgIzZENzQKK+a1tSA+IHTDs25nOyAjNkQ3NQor5rW2ID4gbMOhbzsgIzZENzYKK+a1tyA+IGjEg2k7ICM2RDc3CivmtbggPiBqw6xuOyAjNkQ3OAor5rW5ID4gamnDoTsgIzZENzkKK+a1uiA+IGNoxY1uZzsgIzZEN0EKK+a1uyA+IHfElW5nOyAjNkQ3Qgor5rW8ID4gbcSVaTsgIzZEN0MKK+a1vSA+IHPFq2k7ICM2RDdECivmtb4gPiBjaMSTbmc7ICM2RDdFCivmtb8gPiBww6hpOyAjNkQ3Rgor5raAID4geGnDoG47ICM2RDgwCivmtoEgPiBzaMOobjsgIzZEODEKK+a2giA+IHTDujsgIzZEODIKK+a2gyA+IGvDuW47ICM2RDgzCivmtoQgPiBwxKtuOyAjNkQ4NAor5raFID4gbmnDqDsgIzZEODUKK+a2hiA+IGjDoG47ICM2RDg2CivmtocgPiBqxKtuZzsgIzZEODcKK+a2iCA+IHhpxIFvOyAjNkQ4OAor5raJID4gc2jDqDsgIzZEODkKK+a2iiA+IG5pw6BuOyAjNkQ4QQor5raLID4gdMWrOyAjNkQ4Qgor5raMID4gecWPbmc7ICM2RDhDCivmto0gPiB4acOgbzsgIzZEOEQKK+a2jiA+IHhpw6FuOyAjNkQ4RQor5raPID4gdMStbmc7ICM2RDhGCivmtpAgPiDDqTsgIzZEOTAKK+a2kSA+IHPDuTsgIzZEOTEKK+a2kiA+IHTFq247ICM2RDkyCivmtpMgPiBqdcSBbjsgIzZEOTMKK+a2lCA+IGPDqW47ICM2RDk0CivmtpUgPiB0w6w7ICM2RDk1CivmtpYgPiBsw6w7ICM2RDk2CivmtpcgPiBzaMO5aTsgIzZEOTcKK+a2mCA+IHPDrDsgIzZEOTgKK+a2mSA+IGzDqGk7ICM2RDk5CivmtpogPiBzaMO5aTsgIzZEOUEKK+a2myA+IHTEgW87ICM2RDlCCivmtpwgPiBkw7o7ICM2RDlDCivmtp0gPiBsw6BvOyAjNkQ5RAor5raeID4gbMOhaTsgIzZEOUUKK+a2nyA+IGxpw6FuOyAjNkQ5Rgor5ragID4gd8OpaTsgIzZEQTAKK+a2oSA+IHfFjTsgIzZEQTEKK+a2oiA+IHnDum47ICM2REEyCivmtqMgPiBodcOgbjsgIzZEQTMKK+a2pCA+IGTDrTsgIzZEQTQKK+a2piA+IHLDuW47ICM2REE2CivmtqcgPiBqacOgbjsgIzZEQTcKK+a2qCA+IHpoxINuZzsgIzZEQTgKK+a2qSA+IHPDqDsgIzZEQTkKK+a2qiA+IGbDujsgIzZEQUEKK+a2qyA+IGd1w6BuOyAjNkRBQgor5rasID4geMOsbmc7ICM2REFDCivmtq0gPiBzaMOydTsgIzZEQUQKK+a2riA+IHNodcOgbjsgIzZEQUUKK+a2ryA+IHnDoTsgIzZEQUYKK+a2sCA+IGNow7lvOyAjNkRCMAor5raxID4gemjDoG5nOyAjNkRCMQor5rayID4gecOoOyAjNkRCMgor5razID4ga8WNbmc7ICM2REIzCivmtrQgPiB3w7I7ICM2REI0CivmtrUgPiBow6FuOyAjNkRCNQor5ra2ID4gdMWrbzsgIzZEQjYKK+a2tyA+IGTFjW5nOyAjNkRCNwor5ra4ID4gaMOpOyAjNkRCOAor5ra5ID4gd8WNOyAjNkRCOQor5ra6ID4gasWrOyAjNkRCQQor5ra7ID4gZ8OgbjsgIzZEQkIKK+a2vCA+IGxpw6FuZzsgIzZEQkMKK+a2vSA+IGjFq247ICM2REJECivmtr4gPiB0w6A7ICM2REJFCivmtr8gPiB6aMO6bzsgIzZEQkYKK+a3gCA+IGRpw6BuOyAjNkRDMAor5reBID4gcWnDqDsgIzZEQzEKK+a3giA+IGTDqTsgIzZEQzIKK+a3gyA+IGp1w6BuOyAjNkRDMwor5reEID4gesSrOyAjNkRDNAor5reFID4geMSrOyAjNkRDNQor5reGID4gecOhbzsgIzZEQzYKK+a3hyA+IHHDrTsgIzZEQzcKK+a3iCA+IGfFrTsgIzZEQzgKK+a3iSA+IGfFrW87ICM2REM5Civmt4ogPiBow6BuOyAjNkRDQQor5reLID4gbMOtbjsgIzZEQ0IKK+a3jCA+IHTEg25nOyAjNkRDQwor5reNID4gemjFjXU7ICM2RENECivmt44gPiBwxJVuZzsgIzZEQ0UKK+a3jyA+IGjDoG87ICM2RENGCivmt5AgPiBjaMSBbmc7ICM2REQwCivmt5EgPiBzaMO6OyAjNkREMQor5reSID4gccSrOyAjNkREMgor5reTID4gZsSBbmc7ICM2REQzCivmt5QgPiBjaMOsOyAjNkRENAor5reVID4gbMO5OyAjNkRENQor5reWID4gbsOgbzsgIzZERDYKK+a3lyA+IGrDujsgIzZERDcKK+a3mCA+IHTDoW87ICM2REQ4Civmt5kgPiBjw7NuZzsgIzZERDkKK+a3miA+IGzDqGk7ICM2RERBCivmt5sgPiB6aMOsOyAjNkREQgor5recID4gcMOpbmc7ICM2RERDCivmt50gPiBmw6lpOyAjNkRERAor5reeID4gc8WNbmc7ICM2RERFCivmt58gPiB0acSDbjsgIzZEREYKK+a3oCA+IHDDrDsgIzZERTAKK+a3oSA+IGTDoG47ICM2REUxCivmt6IgPiB5w7k7ICM2REUyCivmt6MgPiBuw607ICM2REUzCivmt6QgPiB5xas7ICM2REU0Civmt6UgPiBsw7k7ICM2REU1Civmt6YgPiBnw6BuOyAjNkRFNgor5renID4gbcOsOyAjNkRFNwor5reoID4gasOsbmc7ICM2REU4Civmt6kgPiBsw61uZzsgIzZERTkKK+a3qiA+IGzDum47ICM2REVBCivmt6sgPiB5w61uOyAjNkRFQgor5resID4gY8O5aTsgIzZERUMKK+a3rSA+IHHDujsgIzZERUQKK+a3riA+IGh1w6FpOyAjNkRFRQor5revID4gecO5OyAjNkRFRgor5rewID4gbmnDoG47ICM2REYwCivmt7EgPiBzaMSTbjsgIzZERjEKK+a3siA+IHBpw6FvOyAjNkRGMgor5rezID4gY2jDum47ICM2REYzCivmt7QgPiB3w6A7ICM2REY0Civmt7UgPiB5dcSBbjsgIzZERjUKK+a3tiA+IGzDoWk7ICM2REY2Civmt7cgPiBoxa1uOyAjNkRGNwor5re4ID4gccSrbmc7ICM2REY4Civmt7kgPiB5xIFuOyAjNkRGOQor5re6ID4gcWnEg247ICM2REZBCivmt7sgPiB0acSBbjsgIzZERkIKK+a3vCA+IG1pxINvOyAjNkRGQwor5re9ID4gemjErTsgIzZERkQKK+a3viA+IHnErW47ICM2REZFCivmt78gPiBtw6w7ICM2REZGCivmuIAgPiBixJNuOyAjNkUwMAor5riBID4geXXEgW47ICM2RTAxCivmuIIgPiB3w6huOyAjNkUwMgor5riDID4gcsOoOyAjNkUwMwor5riEID4gZsSTaTsgIzZFMDQKK+a4hSA+IHHEq25nOyAjNkUwNQor5riGID4geXXEgW47ICM2RTA2CivmuIcgPiBrxJU7ICM2RTA3CivmuIggPiBqw6w7ICM2RTA4CivmuIkgPiBzaMOoOyAjNkUwOQor5riKID4geXXEgW47ICM2RTBBCivmuIwgPiBsw7k7ICM2RTBDCivmuI0gPiB6w6w7ICM2RTBECivmuI4gPiBkw7o7ICM2RTBFCivmuJAgPiBqacOgbjsgIzZFMTAKK+a4kSA+IG3ErW47ICM2RTExCivmuJIgPiBww6w7ICM2RTEyCivmuJQgPiB5w7o7ICM2RTE0CivmuJUgPiB5dcSBbjsgIzZFMTUKK+a4liA+IHNoxJVuOyAjNkUxNgor5riXID4gc2jDqG47ICM2RTE3CivmuJggPiByw7N1OyAjNkUxOAor5riZID4gaHXDoG47ICM2RTE5CivmuJogPiB6aMWtOyAjNkUxQQor5ribID4gamnEg247ICM2RTFCCivmuJwgPiBudcSDbjsgIzZFMUMKK+a4nSA+IHnDujsgIzZFMUQKK+a4niA+IHHDrXU7ICM2RTFFCivmuJ8gPiB0w61uZzsgIzZFMUYKK+a4oCA+IHHDujsgIzZFMjAKK+a4oSA+IGTDuTsgIzZFMjEKK+a4oiA+IGbDqW5nOyAjNkUyMgor5rijID4gemjEgTsgIzZFMjMKK+a4pCA+IGLDszsgIzZFMjQKK+a4pSA+IHfDsjsgIzZFMjUKK+a4piA+IHfFjTsgIzZFMjYKK+a4pyA+IGTDrDsgIzZFMjcKK+a4qCA+IHfEk2k7ICM2RTI4CivmuKkgPiB3xJNuOyAjNkUyOQor5riqID4gcsO6OyAjNkUyQQor5rirID4geGnDqDsgIzZFMkIKK+a4rCA+IGPDqDsgIzZFMkMKK+a4rSA+IHfDqGk7ICM2RTJECivmuK4gPiBnxJM7ICM2RTJFCivmuK8gPiBnxINuZzsgIzZFMkYKK+a4sCA+IHnEg247ICM2RTMwCivmuLEgPiBow7NuZzsgIzZFMzEKK+a4siA+IHh1w6BuOyAjNkUzMgor5rizID4gbcStOyAjNkUzMwor5ri0ID4ga8SVOyAjNkUzNAor5ri1ID4gbcOhbzsgIzZFMzUKK+a4tiA+IHnEq25nOyAjNkUzNgor5ri3ID4gecSDbjsgIzZFMzcKK+a4uCA+IHnDs3U7ICM2RTM4CivmuLkgPiBoxY1uZzsgIzZFMzkKK+a4uiA+IG1pxINvOyAjNkUzQQor5ri7ID4geMStbmc7ICM2RTNCCivmuLwgPiBtxJVpOyAjNkUzQwor5ri9ID4gesSBaTsgIzZFM0QKK+a4viA+IGjDum47ICM2RTNFCivmuL8gPiBuw6BpOyAjNkUzRgor5rmAID4ga8O6aTsgIzZFNDAKK+a5gSA+IHNow607ICM2RTQxCivmuYIgPiDDqDsgIzZFNDIKK+a5gyA+IHDDoGk7ICM2RTQzCivmuYQgPiBtw6lpOyAjNkU0NAor5rmFID4gbGnDoG47ICM2RTQ1CivmuYYgPiBxw6w7ICM2RTQ2CivmuYcgPiBxw6w7ICM2RTQ3CivmuYggPiBtw6lpOyAjNkU0OAor5rmJID4gdGnDoW47ICM2RTQ5CivmuYogPiBjw7J1OyAjNkU0QQor5rmLID4gd8OpaTsgIzZFNEIKK+a5jCA+IGPEgW47ICM2RTRDCivmuY0gPiB0dcSBbjsgIzZFNEQKK+a5jiA+IG1pxINuOyAjNkU0RQor5rmPID4gaMO5aTsgIzZFNEYKK+a5kCA+IG3DsjsgIzZFNTAKK+a5kSA+IHjFrTsgIzZFNTEKK+a5kiA+IGrDrTsgIzZFNTIKK+a5kyA+IHDDqW47ICM2RTUzCivmuZQgPiBqacSBbjsgIzZFNTQKK+a5lSA+IGppxINuOyAjNkU1NQor5rmWID4gaMO6OyAjNkU1Ngor5rmXID4gZsOobmc7ICM2RTU3CivmuZggPiB4acSBbmc7ICM2RTU4CivmuZkgPiB5w6w7ICM2RTU5CivmuZogPiB5w6xuOyAjNkU1QQor5rmbID4gemjDoG47ICM2RTVCCivmuZwgPiBzaMOtOyAjNkU1Qwor5rmdID4gamnEkzsgIzZFNUQKK+a5niA+IGNow6luZzsgIzZFNUUKK+a5nyA+IGh1w6FuZzsgIzZFNUYKK+a5oCA+IHTDoG47ICM2RTYwCivmuaEgPiB5w7o7ICM2RTYxCivmuaIgPiBiw6w7ICM2RTYyCivmuaMgPiBtxK1uOyAjNkU2Mwor5rmkID4gc2jEqzsgIzZFNjQKK+a5pSA+IHTDujsgIzZFNjUKK+a5piA+IHNoxJNuZzsgIzZFNjYKK+a5pyA+IHnFj25nOyAjNkU2Nwor5rmoID4gccO5OyAjNkU2OAor5rmpID4gemjDsm5nOyAjNkU2OQor5rmqID4gc3XDqGk7ICM2RTZBCivmuasgPiBqxKt1OyAjNkU2Qgor5rmsID4gamnEg287ICM2RTZDCivmua0gPiBxacOzdTsgIzZFNkQKK+a5riA+IHnEq247ICM2RTZFCivmua8gPiB0xIFuZzsgIzZFNkYKK+a5sCA+IGzDs25nOyAjNkU3MAor5rmxID4gaMO5bzsgIzZFNzEKK+a5siA+IHl1w6FuOyAjNkU3Mgor5rmzID4gbsSDbjsgIzZFNzMKK+a5tCA+IGLDoG47ICM2RTc0CivmubUgPiB5xY91OyAjNkU3NQor5rm2ID4gcXXDoW47ICM2RTc2CivmubcgPiBjaMO6aTsgIzZFNzcKK+a5uCA+IGxpw6BuZzsgIzZFNzgKK+a5uSA+IGNow6FuOyAjNkU3OQor5rm6ID4gecOhbjsgIzZFN0EKK+a5uyA+IGNow7puOyAjNkU3Qgor5rm8ID4gbmnDqDsgIzZFN0MKK+a5vSA+IHrEqzsgIzZFN0QKK+a5viA+IHfEgW47ICM2RTdFCivmub8gPiBzaMSrOyAjNkU3Rgor5rqAID4gbcSDbjsgIzZFODAKK+a6gSA+IHnDrW5nOyAjNkU4MQor5rqDID4ga8O5aTsgIzZFODMKK+a6hSA+IGppw6BuOyAjNkU4NQor5rqGID4geMO5OyAjNkU4Ngor5rqHID4gbMeaOyAjNkU4Nwor5rqIID4gZ8WraTsgIzZFODgKK+a6iSA+IGfDoGk7ICM2RTg5CivmuowgPiBwxY07ICM2RThDCivmuo0gPiBqw6xuOyAjNkU4RAor5rqOID4gZ8O5aTsgIzZFOEUKK+a6jyA+IHTDoW5nOyAjNkU4Rgor5rqQID4geXXDoW47ICM2RTkwCivmupEgPiBzxa1vOyAjNkU5MQor5rqSID4geXXDoW47ICM2RTkyCivmupMgPiBsacOhbjsgIzZFOTMKK+a6lCA+IHnEg287ICM2RTk0CivmupUgPiBtw6huZzsgIzZFOTUKK+a6liA+IHpoxa1uOyAjNkU5Ngor5rqXID4gc2jDqW5nOyAjNkU5Nwor5rqYID4ga8OoOyAjNkU5OAor5rqZID4gdMOgaTsgIzZFOTkKK+a6miA+IGTDoTsgIzZFOUEKK+a6myA+IHfEgTsgIzZFOUIKK+a6nCA+IGzEq3U7ICM2RTlDCivmup0gPiBnxY11OyAjNkU5RAor5rqeID4gc8SBbzsgIzZFOUUKK+a6nyA+IG3DrW5nOyAjNkU5Rgor5rqgID4gemjDoDsgIzZFQTAKK+a6oSA+IHNow607ICM2RUExCivmuqIgPiB5w6w7ICM2RUEyCivmuqMgPiBsw7puOyAjNkVBMwor5rqkID4gbcSDOyAjNkVBNAor5rqlID4gcMWtOyAjNkVBNQor5rqmID4gd8OpaTsgIzZFQTYKK+a6pyA+IGzDrDsgIzZFQTcKK+a6qCA+IGPDoWk7ICM2RUE4CivmuqkgPiB3w7k7ICM2RUE5CivmuqogPiB4xKs7ICM2RUFBCivmuqsgPiB3xJNuOyAjNkVBQgor5rqsID4gcWnEgW5nOyAjNkVBQwor5rqtID4gesOpOyAjNkVBRAor5rquID4gc2jEqzsgIzZFQUUKK+a6ryA+IHPDuTsgIzZFQUYKK+a6sCA+IHnEqzsgIzZFQjAKK+a6sSA+IHpoxJNuOyAjNkVCMQor5rqyID4gc8WNdTsgIzZFQjIKK+a6syA+IHnDum47ICM2RUIzCivmurQgPiB4w6x1OyAjNkVCNAor5rq1ID4gecSrbjsgIzZFQjUKK+a6tiA+IHLDs25nOyAjNkVCNgor5rq3ID4gaMO5bjsgIzZFQjcKK+a6uCA+IHPDuTsgIzZFQjgKK+a6uSA+IHPDuTsgIzZFQjkKK+a6uiA+IG7DrDsgIzZFQkEKK+a6uyA+IHTDoDsgIzZFQkIKK+a6vCA+IHNoxKs7ICM2RUJDCivmur0gPiByw7k7ICM2RUJECivmur4gPiB3xJNpOyAjNkVCRQor5rq/ID4gcMOgbjsgIzZFQkYKK+a7gCA+IGNow7k7ICM2RUMwCivmu4EgPiBjaMO6OyAjNkVDMQor5ruCID4gcMSBbmc7ICM2RUMyCivmu4MgPiB3xJVuZzsgIzZFQzMKK+a7hCA+IGPEgW5nOyAjNkVDNAor5ruFID4gbWnDqDsgIzZFQzUKK+a7hiA+IGjDqTsgIzZFQzYKK+a7hyA+IGRpxIFuOyAjNkVDNwor5ruIID4gaMOgbzsgIzZFQzgKK+a7iSA+IGh1xINuZzsgIzZFQzkKK+a7iiA+IHjDrDsgIzZFQ0EKK+a7iyA+IHrEqzsgIzZFQ0IKK+a7jCA+IGTDrTsgIzZFQ0MKK+a7jSA+IHpoxK07ICM2RUNECivmu44gPiB5w61uZzsgIzZFQ0UKK+a7jyA+IGbFrTsgIzZFQ0YKK+a7kCA+IGppw6k7ICM2RUQwCivmu5EgPiBodcOhOyAjNkVEMQor5ruSID4gZ8STOyAjNkVEMgor5ruTID4gesStOyAjNkVEMwor5ruUID4gdMSBbzsgIzZFRDQKK+a7lSA+IHTDqW5nOyAjNkVENQor5ruWID4gc8WraTsgIzZFRDYKK+a7lyA+IGLErTsgIzZFRDcKK+a7mCA+IGppw6BvOyAjNkVEOAor5ruZID4gaMO5aTsgIzZFRDkKK+a7miA+IGfFrW47ICM2RURBCivmu5sgPiB5w61uOyAjNkVEQgor5rucID4gZ8SBbzsgIzZFREMKK+a7nSA+IGzDs25nOyAjNkVERAor5rueID4gemjDrDsgIzZFREUKK+a7nyA+IHnDoG47ICM2RURGCivmu6AgPiBzaMOoOyAjNkVFMAor5ruhID4gbcSDbjsgIzZFRTEKK+a7oiA+IHnDrG5nOyAjNkVFMgor5rujID4gY2jDum47ICM2RUUzCivmu6QgPiBsx5w7ICM2RUU0Civmu6UgPiBsw6BuOyAjNkVFNQor5rumID4gbHXDoW47ICM2RUU2Civmu6ggPiBixKtuOyAjNkVFOAor5rupID4gdMSBbjsgIzZFRTkKK+a7qiA+IHnDuTsgIzZFRUEKK+a7qyA+IHPFj3U7ICM2RUVCCivmu6wgPiBow7k7ICM2RUVDCivmu60gPiBiw6w7ICM2RUVECivmu64gPiBiacSBbzsgIzZFRUUKK+a7ryA+IHpow6w7ICM2RUVGCivmu7AgPiBqacSDbmc7ICM2RUYwCivmu7EgPiBrw7J1OyAjNkVGMQor5ruyID4gc2jDqG47ICM2RUYyCivmu7MgPiBzaMSBbmc7ICM2RUYzCivmu7QgPiBkxKs7ICM2RUY0Civmu7UgPiBtw6w7ICM2RUY1Civmu7YgPiDDoW87ICM2RUY2Civmu7cgPiBsxa07ICM2RUY3Civmu7ggPiBoxa07ICM2RUY4Civmu7kgPiBoxas7ICM2RUY5Civmu7ogPiB5w7N1OyAjNkVGQQor5ru7ID4gY2jEg247ICM2RUZCCivmu7wgPiBmw6BuOyAjNkVGQwor5ru9ID4gecOzbmc7ICM2RUZECivmu74gPiBnxa1uOyAjNkVGRQor5ru/ID4gbcSDbjsgIzZFRkYKK+a8gCA+IHHDrG5nOyAjNkYwMAor5ryBID4gecO6OyAjNkYwMQor5ryCID4gcGnEgW87ICM2RjAyCivmvIMgPiBqw607ICM2RjAzCivmvIQgPiB5w6E7ICM2RjA0CivmvIUgPiBqacSDbzsgIzZGMDUKK+a8hiA+IHHEqzsgIzZGMDYKK+a8hyA+IHjErTsgIzZGMDcKK+a8iCA+IGrDrDsgIzZGMDgKK+a8iSA+IGzDuTsgIzZGMDkKK+a8iiA+IGzHmjsgIzZGMEEKK+a8iyA+IGzDs25nOyAjNkYwQgor5ryMID4gasStbjsgIzZGMEMKK+a8jSA+IGfDum87ICM2RjBECivmvI4gPiBjw7NuZzsgIzZGMEUKK+a8jyA+IGzDsnU7ICM2RjBGCivmvJAgPiB6aMOtOyAjNkYxMAor5ryRID4gZ8OgaTsgIzZGMTEKK+a8kiA+IHFpw6FuZzsgIzZGMTIKK+a8kyA+IGzDrTsgIzZGMTMKK+a8lCA+IHnEg247ICM2RjE0CivmvJUgPiBjw6FvOyAjNkYxNQor5ryWID4gamnDoG87ICM2RjE2CivmvJcgPiBjxY1uZzsgIzZGMTcKK+a8mCA+IHHDum47ICM2RjE4CivmvJkgPiB0dcOhbjsgIzZGMTkKK+a8miA+IMOydTsgIzZGMUEKK+a8myA+IHTDqW5nOyAjNkYxQgor5rycID4gecSVOyAjNkYxQwor5rydID4geMOtOyAjNkYxRAor5ryeID4gbcOsOyAjNkYxRQor5ryfID4gdMOhbmc7ICM2RjFGCivmvKAgPiBtw7I7ICM2RjIwCivmvKEgPiBzaMSBbmc7ICM2RjIxCivmvKIgPiBow6BuOyAjNkYyMgor5ryjID4gbGnDoW47ICM2RjIzCivmvKQgPiBsxINuOyAjNkYyNAor5rylID4gd8SBOyAjNkYyNQor5rymID4gbMOtOyAjNkYyNgor5rynID4gcWnDoW47ICM2RjI3CivmvKggPiBmw6luZzsgIzZGMjgKK+a8qSA+IHh1w6FuOyAjNkYyOQor5ryqID4gecSrOyAjNkYyQQor5ryrID4gbcOgbjsgIzZGMkIKK+a8rCA+IHrDrDsgIzZGMkMKK+a8rSA+IG3Eg25nOyAjNkYyRAor5ryuID4ga8SBbmc7ICM2RjJFCivmvK8gPiBsxJVpOyAjNkYyRgor5rywID4gcMSTbmc7ICM2RjMwCivmvLEgPiBzaMO5OyAjNkYzMQor5ryyID4gemjEg25nOyAjNkYzMgor5ryzID4gemjEgW5nOyAjNkYzMwor5ry0ID4gY2jDs25nOyAjNkYzNAor5ry1ID4geMO5OyAjNkYzNQor5ry2ID4gaHXDoG47ICM2RjM2CivmvLcgPiBrw7lvOyAjNkYzNwor5ry4ID4gamnDoG47ICM2RjM4CivmvLkgPiB5xIFuOyAjNkYzOQor5ry6ID4gY2h1xINuZzsgIzZGM0EKK+a8uyA+IGxpw6FvOyAjNkYzQgor5ry8ID4gY8WtaTsgIzZGM0MKK+a8vSA+IHTDrTsgIzZGM0QKK+a8viA+IHnDoG5nOyAjNkYzRQor5ry/ID4gamnEgW5nOyAjNkYzRgor5r2AID4gY8Ozbmc7ICM2RjQwCivmvYEgPiB5xK1uZzsgIzZGNDEKK+a9giA+IGjDs25nOyAjNkY0Mgor5r2DID4geMO6bjsgIzZGNDMKK+a9hCA+IHNow7k7ICM2RjQ0CivmvYUgPiBndcOgbjsgIzZGNDUKK+a9hiA+IHnDrW5nOyAjNkY0Ngor5r2HID4geGnEgW87ICM2RjQ3CivmvYogPiB4w7k7ICM2RjRBCivmvYsgPiBsacOgbjsgIzZGNEIKK+a9jCA+IHpow6w7ICM2RjRDCivmvY0gPiB3w6lpOyAjNkY0RAor5r2OID4gcMOsOyAjNkY0RQor5r2PID4ganXDqTsgIzZGNEYKK+a9kCA+IGppw6BvOyAjNkY1MAor5r2RID4gcMWNOyAjNkY1MQor5r2SID4gZMOgbmc7ICM2RjUyCivmvZMgPiBow7lpOyAjNkY1Mwor5r2UID4gamnDqTsgIzZGNTQKK+a9lSA+IHfFrTsgIzZGNTUKK+a9liA+IHDDoTsgIzZGNTYKK+a9lyA+IGrDrTsgIzZGNTcKK+a9mCA+IHDEgW47ICM2RjU4CivmvZkgPiBnw7ppOyAjNkY1OQor5r2aID4geGnEgW87ICM2RjVBCivmvZsgPiBxacOhbjsgIzZGNUIKK+a9nCA+IHFpw6FuOyAjNkY1Qwor5r2dID4geMSrOyAjNkY1RAor5r2eID4gbMO5OyAjNkY1RQor5r2fID4geMOsOyAjNkY1Rgor5r2gID4geHXDoG47ICM2RjYwCivmvaEgPiBkw7luOyAjNkY2MQor5r2iID4gaHXDoW5nOyAjNkY2Mgor5r2jID4gbcStbjsgIzZGNjMKK+a9pCA+IHLDuW47ICM2RjY0CivmvaUgPiBzw7k7ICM2RjY1CivmvaYgPiBsacOhbzsgIzZGNjYKK+a9pyA+IHpoxJNuOyAjNkY2Nwor5r2oID4gemjFjW5nOyAjNkY2OAor5r2pID4gecOsOyAjNkY2OQor5r2qID4gZMOtOyAjNkY2QQor5r2rID4gd8SBbjsgIzZGNkIKK+a9rCA+IGTDoG47ICM2RjZDCivmva0gPiB0w6FuOyAjNkY2RAor5r2uID4gY2jDoW87ICM2RjZFCivmva8gPiB4w7puOyAjNkY2Rgor5r2wID4ga8O5aTsgIzZGNzAKK+a9sSA+IHlpZTsgIzZGNzEKK+a9siA+IHNow6BvOyAjNkY3Mgor5r2zID4gdMO6OyAjNkY3Mwor5r20ID4gemjFqzsgIzZGNzQKK+a9tSA+IHPDoG47ICM2Rjc1CivmvbYgPiBoxJNpOyAjNkY3Ngor5r23ID4gYsStOyAjNkY3Nwor5r24ID4gc2jEgW47ICM2Rjc4CivmvbkgPiBjaMOhbjsgIzZGNzkKK+a9uiA+IGNow6FuOyAjNkY3QQor5r27ID4gc2jFrTsgIzZGN0IKK+a9vCA+IHTDs25nOyAjNkY3Qwor5r29ID4gcMWtOyAjNkY3RAor5r2+ID4gbMOtbjsgIzZGN0UKK+a9vyA+IHfDqWk7ICM2RjdGCivmvoAgPiBzw6g7ICM2RjgwCivmvoEgPiBzw6g7ICM2RjgxCivmvoIgPiBjaMOpbmc7ICM2RjgyCivmvoMgPiBqw6xvbmc7ICM2RjgzCivmvoQgPiBjaMOpbmc7ICM2Rjg0CivmvoUgPiBodcOgOyAjNkY4NQor5r6GID4gamnEgW87ICM2Rjg2CivmvocgPiBsw6BvOyAjNkY4Nwor5r6IID4gY2jDqDsgIzZGODgKK+a+iSA+IGfEg247ICM2Rjg5CivmvoogPiBjxatuOyAjNkY4QQor5r6LID4gaMOobmc7ICM2RjhCCivmvowgPiBzxKs7ICM2RjhDCivmvo0gPiBzaMO5OyAjNkY4RAor5r6OID4gcMOpbmc7ICM2RjhFCivmvo8gPiBow6BuOyAjNkY4Rgor5r6QID4gecO6bjsgIzZGOTAKK+a+kSA+IGzDrHU7ICM2RjkxCivmvpIgPiBow7JuZzsgIzZGOTIKK+a+kyA+IGbDujsgIzZGOTMKK+a+lCA+IGjDoG87ICM2Rjk0CivmvpUgPiBow6k7ICM2Rjk1CivmvpYgPiB4acSBbjsgIzZGOTYKK+a+lyA+IGppw6BuOyAjNkY5Nwor5r6YID4gc2jEgW47ICM2Rjk4CivmvpkgPiB4w6w7ICM2Rjk5CivmvpwgPiBsw6FuOyAjNkY5Qwor5r6eID4gecO6OyAjNkY5RQor5r6fID4gbMStbjsgIzZGOUYKK+a+oCA+IG3ErW47ICM2RkEwCivmvqEgPiB6xINvOyAjNkZBMQor5r6iID4gZMSBbmc7ICM2RkEyCivmvqMgPiB3xINuOyAjNkZBMwor5r6kID4gesOpOyAjNkZBNAor5r6lID4geGnDqDsgIzZGQTUKK+a+piA+IHnDuTsgIzZGQTYKK+a+pyA+IGzErTsgIzZGQTcKK+a+qCA+IHNow6w7ICM2RkE4CivmvqkgPiB4dcOpOyAjNkZBOQor5r6qID4gbMOtbmc7ICM2RkFBCivmvqsgPiBtw6BuOyAjNkZBQgor5r6sID4gesSrOyAjNkZBQwor5r6tID4gecWNbmc7ICM2RkFECivmvq4gPiBrdcOgaTsgIzZGQUUKK+a+ryA+IGPDoG47ICM2RkFGCivmvrAgPiBsacOgbjsgIzZGQjAKK+a+sSA+IGRpw6BuOyAjNkZCMQor5r6yID4gecOoOyAjNkZCMgor5r6zID4gw6BvOyAjNkZCMwor5r60ID4gaHXDoW47ICM2RkI0CivmvrUgPiB6aMSTbjsgIzZGQjUKK+a+tiA+IGNow6FuOyAjNkZCNgor5r63ID4gbcOgbjsgIzZGQjcKK+a+uCA+IGTEg247ICM2RkI4CivmvrkgPiBkw6BuOyAjNkZCOQor5r66ID4gecOsOyAjNkZCQQor5r67ID4gc8O5aTsgIzZGQkIKK+a+vCA+IHDDrDsgIzZGQkMKK+a+vSA+IGrDuTsgIzZGQkQKK+a+viA+IHTDoDsgIzZGQkUKK+a+vyA+IHHDrW47ICM2RkJGCivmv4AgPiBqxKs7ICM2RkMwCivmv4EgPiB6aMO6bzsgIzZGQzEKK+a/giA+IGxpw6FuOyAjNkZDMgor5r+DID4gbsOzbmc7ICM2RkMzCivmv4QgPiBnxatvOyAjNkZDNAor5r+FID4gasOsbjsgIzZGQzUKK+a/hiA+IGbDqW47ICM2RkM2Civmv4cgPiBzw6g7ICM2RkM3Civmv4ggPiBqw607ICM2RkM4Civmv4kgPiBzxatpOyAjNkZDOQor5r+KID4gaMO5aTsgIzZGQ0EKK+a/iyA+IGNoxa07ICM2RkNCCivmv4wgPiB0w6A7ICM2RkNDCivmv40gPiBzxY1uZzsgIzZGQ0QKK+a/jiA+IGTErW5nOyAjNkZDRQor5r+QID4gemjFrTsgIzZGRDAKK+a/kSA+IGzDoGk7ICM2RkQxCivmv5IgPiBixKtuOyAjNkZEMgor5r+TID4gbGnDoW47ICM2RkQzCivmv5QgPiBtxK07ICM2RkQ0Civmv5UgPiBzaMSrOyAjNkZENQor5r+WID4gc2jDuTsgIzZGRDYKK+a/lyA+IG3DrDsgIzZGRDcKK+a/mCA+IG7DrG5nOyAjNkZEOAor5r+ZID4gecOtbmc7ICM2RkQ5Civmv5ogPiB5w61uZzsgIzZGREEKK+a/myA+IG3DqW5nOyAjNkZEQgor5r+cID4gasOsbjsgIzZGREMKK+a/nSA+IHHDrTsgIzZGREQKK+a/niA+IHDDrDsgIzZGREUKK+a/nyA+IGrDrDsgIzZGREYKK+a/oCA+IGjDoW87ICM2RkUwCivmv6EgPiByw7o7ICM2RkUxCivmv6IgPiB6xa1pOyAjNkZFMgor5r+jID4gd8OyOyAjNkZFMwor5r+kID4gdMSBbzsgIzZGRTQKK+a/pSA+IHnDrG47ICM2RkU1Civmv6YgPiB5xK1uOyAjNkZFNgor5r+nID4gZMO5aTsgIzZGRTcKK+a/qCA+IGPDrTsgIzZGRTgKK+a/qSA+IGjDuW87ICM2RkU5Civmv6ogPiBqw6xuZzsgIzZGRUEKK+a/qyA+IGzDoG47ICM2RkVCCivmv6wgPiBqw7luOyAjNkZFQwor5r+tID4gw6BpOyAjNkZFRAor5r+uID4gcMWrOyAjNkZFRQor5r+vID4gemjDum87ICM2RkVGCivmv7AgPiB3w6lpOyAjNkZGMAor5r+xID4gYsSrbjsgIzZGRjEKK+a/siA+IGfFrTsgIzZGRjIKK+a/syA+IHFpw6FuOyAjNkZGMwor5r+0ID4geMOtbmc7ICM2RkY0Civmv7YgPiBrw7lvOyAjNkZGNgor5r+3ID4gZsOoaTsgIzZGRjcKK+a/uiA+IGppw6BuOyAjNkZGQQor5r+7ID4gd8SVaTsgIzZGRkIKK+a/vCA+IGzDuW87ICM2RkZDCivmv70gPiB6w6BuOyAjNkZGRAor5r++ID4gbMecOyAjNkZGRQor5r+/ID4gbMOsOyAjNkZGRgor54CAID4gecWNdTsgIzcwMDAKK+eAgSA+IHnDoG5nOyAjNzAwMQor54CCID4gbMWtOyAjNzAwMgor54CDID4gc8OsOyAjNzAwMwor54CEID4gamnDqTsgIzcwMDQKK+eAhSA+IHnDrG5nOyAjNzAwNQor54CGID4gZMO6OyAjNzAwNgor54CHID4gd8SDbmc7ICM3MDA3CivngIggPiBoxatpOyAjNzAwOAor54CJID4geGnDqDsgIzcwMDkKK+eAiiA+IHDDoW47ICM3MDBBCivngIsgPiBzaMSVbjsgIzcwMEIKK+eAjCA+IGJpxIFvOyAjNzAwQwor54CNID4gY2jDoW47ICM3MDBECivngI4gPiBtw7I7ICM3MDBFCivngI8gPiBsw611OyAjNzAwRgor54CQID4gamnEgW47ICM3MDEwCivngJEgPiBww7k7ICM3MDExCivngJIgPiBzw6g7ICM3MDEyCivngJMgPiBjaMOpbmc7ICM3MDEzCivngJQgPiBnxa07ICM3MDE0CivngJUgPiBixKtuOyAjNzAxNQor54CWID4gaMO5bzsgIzcwMTYKK+eAlyA+IHhpw6BuOyAjNzAxNwor54CYID4gbMO6OyAjNzAxOAor54CZID4gccSrbjsgIzcwMTkKK+eAmiA+IGjDoG47ICM3MDFBCivngJsgPiB5w61uZzsgIzcwMUIKK+eAnCA+IHnFjW5nOyAjNzAxQwor54CdID4gbMOsOyAjNzAxRAor54CeID4gasOsbmc7ICM3MDFFCivngJ8gPiB4acSBbzsgIzcwMUYKK+eAoCA+IHnDrW5nOyAjNzAyMAor54ChID4gc8WtaTsgIzcwMjEKK+eAoiA+IHfDqWk7ICM3MDIyCivngKMgPiB4acOoOyAjNzAyMwor54CkID4gaHXDoWk7ICM3MDI0CivngKUgPiBow6BvOyAjNzAyNQor54CmID4gemjFqzsgIzcwMjYKK+eApyA+IGzDs25nOyAjNzAyNwor54CoID4gbMOgaTsgIzcwMjgKK+eAqSA+IGTDuWk7ICM3MDI5CivngKogPiBmw6FuOyAjNzAyQQor54CrID4gaMO6OyAjNzAyQgor54CsID4gbMOgaTsgIzcwMkMKK+eAryA+IHnDrW5nOyAjNzAyRgor54CwID4gbcOtOyAjNzAzMAor54CxID4gasOsOyAjNzAzMQor54CyID4gbGnDoG47ICM3MDMyCivngLMgPiBqacOgbjsgIzcwMzMKK+eAtCA+IHnErW5nOyAjNzAzNAor54C1ID4gZsOobjsgIzcwMzUKK+eAtiA+IGzDrW47ICM3MDM2CivngLcgPiB5w6w7ICM3MDM3CivngLggPiBqacSBbjsgIzcwMzgKK+eAuSA+IHl1w6g7ICM3MDM5CivngLogPiBjaMOhbjsgIzcwM0EKK+eAuyA+IGTDoGk7ICM3MDNCCivngLwgPiByw6FuZzsgIzcwM0MKK+eAvSA+IGppxINuOyAjNzAzRAor54C+ID4gbMOhbjsgIzcwM0UKK+eAvyA+IGbDoW47ICM3MDNGCivngYAgPiBzaHXDoG5nOyAjNzA0MAor54GBID4geXXEgW47ICM3MDQxCivngYIgPiB6aMO6bzsgIzcwNDIKK+eBgyA+IGbEk25nOyAjNzA0Mwor54GEID4gc2jDqDsgIzcwNDQKK+eBhSA+IGzElWk7ICM3MDQ1CivngYYgPiBsw6FuOyAjNzA0Ngor54GHID4gY8Ozbmc7ICM3MDQ3CivngYggPiBxw7o7ICM3MDQ4CivngYkgPiB5xY1uZzsgIzcwNDkKK+eBiiA+IHFpw6FuOyAjNzA0QQor54GLID4gZsSDOyAjNzA0Qgor54GMID4gZ3XDoG47ICM3MDRDCivngY0gPiBxdcOoOyAjNzA0RAor54GOID4gecOgbjsgIzcwNEUKK+eBjyA+IGjDoG87ICM3MDRGCivngZEgPiBzxIM7ICM3MDUxCivngZIgPiB6w6BuOyAjNzA1Mgor54GTID4gbHXDoW47ICM3MDUzCivngZQgPiB5w6BuOyAjNzA1NAor54GVID4gbMOtOyAjNzA1NQor54GWID4gbcStOyAjNzA1Ngor54GXID4gc2jDoG47ICM3MDU3CivngZggPiB0xIFuOyAjNzA1OAor54GZID4gZMSDbmc7ICM3MDU5CivngZogPiBqacSDbzsgIzcwNUEKK+eBmyA+IGNoxINuOyAjNzA1Qgor54GdID4gaMOgbzsgIzcwNUQKK+eBniA+IGLDoDsgIzcwNUUKK+eBnyA+IHpow7o7ICM3MDVGCivngaAgPiBsxINuOyAjNzA2MAor54GhID4gbMOhbjsgIzcwNjEKK+eBoiA+IG7Eg25nOyAjNzA2Mgor54GjID4gd8SBbjsgIzcwNjMKK+eBpCA+IGx1w6FuOyAjNzA2NAor54GlID4geMO6bjsgIzcwNjUKK+eBpiA+IHhpxINuOyAjNzA2Ngor54GnID4gecOgbjsgIzcwNjcKK+eBqCA+IGfEg247ICM3MDY4CivngakgPiB5w6BuOyAjNzA2OQor54GqID4gecO5OyAjNzA2QQor54GrID4gaMWtbzsgIzcwNkIKK+eBrCA+IHPDrCcgJ2RpxINuJyAnaMWtbzsgIzcwNkMKK+eBrSA+IG1pw6g7ICM3MDZECivnga4gPiBndcSBbmc7ICM3MDZFCivnga8gPiBkxJNuZzsgIzcwNkYKK+eBsCA+IGjFq2k7ICM3MDcwCivngbEgPiB4acSBbzsgIzcwNzEKK+eBsiA+IHhpxIFvOyAjNzA3Mgor54GzID4gaMWrMTsgIzcwNzMKK+eBtCA+IGjDs25nOyAjNzA3NAor54G1ID4gbMOtbmc7ICM3MDc1CivngbYgPiB6w6BvOyAjNzA3Ngor54G3ID4gemh1w6BuOyAjNzA3Nwor54G4ID4gasStdTsgIzcwNzgKK+eBuSA+IHpow6A7ICM3MDc5CivngbogPiB4acOoOyAjNzA3QQor54G7ID4gY2jDrDsgIzcwN0IKK+eBvCA+IHpow7pvOyAjNzA3Qwor54G9ID4gesSBaTsgIzcwN0QKK+eBviA+IHrEgWk7ICM3MDdFCivngb8gPiBjw6BuOyAjNzA3Rgor54KAID4gecOhbmc7ICM3MDgwCivngoEgPiBxw6w7ICM3MDgxCivngoIgPiB6aMWNbmc7ICM3MDgyCivngoMgPiBmw6luOyAjNzA4Mwor54KEID4gbsStdTsgIzcwODQKK+eChSA+IGrErW9uZzsgIzcwODUKK+eChiA+IHfDqW47ICM3MDg2CivngocgPiBww7I7ICM3MDg3CivngoggPiB5w6w7ICM3MDg4CivngokgPiBsw7o7ICM3MDg5CivngoogPiBjaMWraTsgIzcwOEEKK+eCiyA+IHDEqzsgIzcwOEIKK+eCjCA+IGvDoGk7ICM3MDhDCivngo0gPiBww6BuOyAjNzA4RAor54KOID4gecOhbjsgIzcwOEUKK+eCjyA+IGvDoGk7ICM3MDhGCivngpAgPiBww6BuZzsgIzcwOTAKK+eCkSA+IG3DuTsgIzcwOTEKK+eCkiA+IGNoxINvOyAjNzA5Mgor54KTID4gbGnDoG87ICM3MDkzCivngpQgPiBnw7lpOyAjNzA5NAor54KVID4ga8Ogbmc7ICM3MDk1CivngpYgPiB0xatuOyAjNzA5Ngor54KXID4gZ3XEgW5nOyAjNzA5Nwor54KYID4geMSrbjsgIzcwOTgKK+eCmSA+IHpow6w7ICM3MDk5CivngpogPiBndWFuZzsgIzcwOUEKK+eCmyA+IGd1xIFuZzsgIzcwOUIKK+eCnCA+IHfElWk7ICM3MDlDCivngp0gPiBxacOgbmc7ICM3MDlECivngp8gPiBkw6E7ICM3MDlGCivngqAgPiB4acOhOyAjNzBBMAor54KhID4gemjEk25nOyAjNzBBMQor54KiID4gemjDujsgIzcwQTIKK+eCoyA+IGvElTsgIzcwQTMKK+eCpCA+IHpow6BvOyAjNzBBNAor54KlID4gZsO6OyAjNzBBNQor54KmID4gYsOhOyAjNzBBNgor54KnID4gZMO5bzsgIzcwQTcKK+eCqCA+IGTDuW87ICM3MEE4CivngqkgPiBsw6xuZzsgIzcwQTkKK+eCqiA+IHpow7pvOyAjNzBBQQor54KrID4geHXDoG47ICM3MEFCCivngqwgPiBqw7k7ICM3MEFDCivngq0gPiB0w6BuOyAjNzBBRAor54KuID4gcMOgbzsgIzcwQUUKK+eCryA+IGrErW9uZzsgIzcwQUYKK+eCsCA+IHDDoW87ICM3MEIwCivngrEgPiB0w6FpOyAjNzBCMQor54KyID4gdMOhaTsgIzcwQjIKK+eCsyA+IGLErW5nOyAjNzBCMwor54K0ID4gecSDbmc7ICM3MEI0CivngrUgPiB0xY1uZzsgIzcwQjUKK+eCtiA+IGjEgW47ICM3MEI2CivngrcgPiB6aMO5OyAjNzBCNwor54K4ID4gemjDoDsgIzcwQjgKK+eCuSA+IGRpxINuOyAjNzBCOQor54K6ID4gd8OoaTsgIzcwQkEKK+eCuyA+IHNow607ICM3MEJCCivngrwgPiBsacOgbjsgIzcwQkMKK+eCvSA+IGNow6w7ICM3MEJECivngr4gPiBodcSDbmc7ICM3MEJFCivng4AgPiBoxas7ICM3MEMwCivng4EgPiBzaMO5bzsgIzcwQzEKK+eDgiA+IGzDoG47ICM3MEMyCivng4MgPiBqxK1uZzsgIzcwQzMKK+eDhCA+IGppxINvOyAjNzBDNAor54OFID4geMO5OyAjNzBDNQor54OGID4geMOtbmc7ICM3MEM2Civng4cgPiBxdcOgbjsgIzcwQzcKK+eDiCA+IGxpw6g7ICM3MEM4Civng4kgPiBodcOgbjsgIzcwQzkKK+eDiiA+IHnDoW5nOyAjNzBDQQor54OLID4geGnEgW87ICM3MENCCivng4wgPiB4xKt1OyAjNzBDQwor54ONID4geGnEg247ICM3MENECivng44gPiB5w61uOyAjNzBDRQor54OPID4gd8WrOyAjNzBDRgor54OQID4gemjFjXU7ICM3MEQwCivng5EgPiB5w6FvOyAjNzBEMQor54OSID4gc2jDrDsgIzcwRDIKK+eDkyA+IHfEk2k7ICM3MEQzCivng5QgPiB0w7NuZzsgIzcwRDQKK+eDlSA+IHh1w6g7ICM3MEQ1Civng5YgPiB6xIFpOyAjNzBENgor54OXID4ga8OgaTsgIzcwRDcKK+eDmCA+IGjFjW5nOyAjNzBEOAor54OZID4gbMO5bzsgIzcwRDkKK+eDmiA+IHhpw6E7ICM3MERBCivng5sgPiB6aMO6OyAjNzBEQgor54OcID4geHXEg247ICM3MERDCivng50gPiB6aMSTbmc7ICM3MERECivng54gPiBww7I7ICM3MERFCivng58gPiB5xIFuOyAjNzBERgor54OgID4gaMWtaTsgIzcwRTAKK+eDoSA+IGd1xIFuZzsgIzcwRTEKK+eDoiA+IHpow6g7ICM3MEUyCivng6MgPiBoxatpOyAjNzBFMwor54OkID4ga8SDbzsgIzcwRTQKK+eDpiA+IGbDoW47ICM3MEU2Civng6cgPiBzaMSBbzsgIzcwRTcKK+eDqCA+IHnDqDsgIzcwRTgKK+eDqSA+IGjDuWk7ICM3MEU5Civng6sgPiB0w6BuZzsgIzcwRUIKK+eDrCA+IGrDrG47ICM3MEVDCivng60gPiByw6g7ICM3MEVECivng68gPiB4xKs7ICM3MEVGCivng7AgPiBmw7o7ICM3MEYwCivng7EgPiBqxK1vbmc7ICM3MEYxCivng7IgPiBjaMOoOyAjNzBGMgor54OzID4gcMWtOyAjNzBGMwor54O0ID4gasStbmc7ICM3MEY0Civng7UgPiB6aMO6bzsgIzcwRjUKK+eDtiA+IHTErW5nOyAjNzBGNgor54O3ID4gd8OhbjsgIzcwRjcKK+eDuCA+IGjEg2k7ICM3MEY4Civng7kgPiBwxJNuZzsgIzcwRjkKK+eDuiA+IGzEg25nOyAjNzBGQQor54O7ID4gc2jEgW47ICM3MEZCCivng7wgPiBoxas7ICM3MEZDCivng70gPiBmxJNuZzsgIzcwRkQKK+eDviA+IGNow6w7ICM3MEZFCivng78gPiByw7NuZzsgIzcwRkYKK+eEgCA+IGjDujsgIzcxMDAKK+eEgSA+IHhpOyAjNzEwMQor54SCID4gc2jDujsgIzcxMDIKK+eEgyA+IGjDqDsgIzcxMDMKK+eEhCA+IHjFq247ICM3MTA0CivnhIUgPiBrw7k7ICM3MTA1CivnhIYgPiBqdcOpOyAjNzEwNgor54SHID4geGnEgW87ICM3MTA3CivnhIggPiB4xKs7ICM3MTA4CivnhIkgPiB5xIFuOyAjNzEwOQor54SKID4gaMOgbjsgIzcxMEEKK+eEiyA+IHpodcOgbmc7ICM3MTBCCivnhIwgPiBqw7luOyAjNzEwQwor54SNID4gZMOsOyAjNzEwRAor54SOID4geGnDqDsgIzcxMEUKK+eEjyA+IGrDrTsgIzcxMEYKK+eEkCA+IHfDuTsgIzcxMTAKK+eEkyA+IGjDoW47ICM3MTEzCivnhJQgPiB5w6BuOyAjNzExNAor54SVID4gaHXDoG47ICM3MTE1CivnhJYgPiBtw6huOyAjNzExNgor54SXID4gasO6OyAjNzExNwor54SYID4gY2jDs3U7ICM3MTE4CivnhJkgPiBiw6hpOyAjNzExOQor54SaID4gZsOpbjsgIzcxMUEKK+eEmyA+IGzDrG47ICM3MTFCCivnhJwgPiBrxatuOyAjNzExQwor54SdID4gaMO5bjsgIzcxMUQKK+eEniA+IHTFq247ICM3MTFFCivnhJ8gPiB4w607ICM3MTFGCivnhKAgPiBjw7lpOyAjNzEyMAor54ShID4gd8O6OyAjNzEyMQor54SiID4gaMWNbmc7ICM3MTIyCivnhKMgPiBqw7k7ICM3MTIzCivnhKQgPiBmxa07ICM3MTI0CivnhKUgPiB3w7I7ICM3MTI1CivnhKYgPiBqacSBbzsgIzcxMjYKK+eEpyA+IGPFjW5nOyAjNzEyNwor54SoID4gZsOobmc7ICM3MTI4CivnhKkgPiBwxKtuZzsgIzcxMjkKK+eEqiA+IHHEq29uZzsgIzcxMkEKK+eEqyA+IHLDuW87ICM3MTJCCivnhKwgPiB4w607ICM3MTJDCivnhK0gPiBxw61vbmc7ICM3MTJECivnhK4gPiB4w6xuOyAjNzEyRQor54SvID4gemjDum87ICM3MTJGCivnhLAgPiB5w6BuOyAjNzEzMAor54SxID4gecOgbjsgIzcxMzEKK+eEsiA+IHnDrDsgIzcxMzIKK+eEsyA+IGp1w6k7ICM3MTMzCivnhLQgPiB5w7k7ICM3MTM0CivnhLUgPiBnw6BuZzsgIzcxMzUKK+eEtiA+IHLDoW47ICM3MTM2CivnhLcgPiBww607ICM3MTM3CivnhLggPiBnxa07ICM3MTM4CivnhLogPiBzaMSTbmc7ICM3MTNBCivnhLsgPiBjaMOgbmc7ICM3MTNCCivnhLwgPiBzaMSBbzsgIzcxM0MKK+eFgSA+IGNow6luOyAjNzE0MQor54WCID4gaMOoOyAjNzE0Mgor54WDID4ga8WtaTsgIzcxNDMKK+eFhCA+IHpoxY1uZzsgIzcxNDQKK+eFhSA+IGR1w6BuOyAjNzE0NQor54WGID4geGnEgTsgIzcxNDYKK+eFhyA+IGjFq2k7ICM3MTQ3CivnhYggPiBmw6huZzsgIzcxNDgKK+eFiSA+IGxpw6BuOyAjNzE0OQor54WKID4geHXEgW47ICM3MTRBCivnhYsgPiB4xKtuZzsgIzcxNEIKK+eFjCA+IGh1w6FuZzsgIzcxNEMKK+eFjSA+IGppxINvOyAjNzE0RAor54WOID4gamnEgW47ICM3MTRFCivnhY8gPiBiw6w7ICM3MTRGCivnhZAgPiB5xKtuZzsgIzcxNTAKK+eFkSA+IHpoxa07ICM3MTUxCivnhZIgPiB3xJVpOyAjNzE1Mgor54WTID4gdHXEgW47ICM3MTUzCivnhZQgPiB0acOgbjsgIzcxNTQKK+eFlSA+IHjEqzsgIzcxNTUKK+eFliA+IG51xINuOyAjNzE1Ngor54WXID4gbnXEg247ICM3MTU3CivnhZggPiBjaMOhbjsgIzcxNTgKK+eFmSA+IHnEgW47ICM3MTU5CivnhZogPiBqxK1vbmc7ICM3MTVBCivnhZsgPiBqxK1vbmc7ICM3MTVCCivnhZwgPiB5w7k7ICM3MTVDCivnhZ0gPiBtw6hpOyAjNzE1RAor54WeID4gc2jDoDsgIzcxNUUKK+eFnyA+IHfDqGk7ICM3MTVGCivnhaAgPiB5w6g7ICM3MTYwCivnhaEgPiB4w6xuOyAjNzE2MQor54WiID4gccOtb25nOyAjNzE2Mgor54WjID4gcsWPdTsgIzcxNjMKK+eFpCA+IG3DqWk7ICM3MTY0CivnhaUgPiBodcOgbjsgIzcxNjUKK+eFpiA+IHjFrTsgIzcxNjYKK+eFpyA+IHpow6BvOyAjNzE2Nwor54WoID4gd8STaTsgIzcxNjgKK+eFqSA+IGbDoW47ICM3MTY5CivnhaogPiBxw611OyAjNzE2QQor54WrID4gc8O5aTsgIzcxNkIKK+eFrCA+IHnDoW5nOyAjNzE2Qwor54WtID4gbGnDqDsgIzcxNkQKK+eFriA+IHpoxa07ICM3MTZFCivnha8gPiBqaWU7ICM3MTZGCivnhbAgPiBnw6BvOyAjNzE3MAor54WxID4gZ3XEgTsgIzcxNzEKK+eFsiA+IGLDoG87ICM3MTcyCivnhbMgPiBow7o7ICM3MTczCivnhbQgPiB5xatuOyAjNzE3NAor54W1ID4geGnEgTsgIzcxNzUKK+eFuCA+IGJpxIFuOyAjNzE3OAor54W5ID4gZ8OydTsgIzcxNzkKK+eFuiA+IHTDuWk7ICM3MTdBCivnhbsgPiB0w6FuZzsgIzcxN0IKK+eFvCA+IGNoxINvOyAjNzE3Qwor54W9ID4gc2jEgW47ICM3MTdECivnhb4gPiBuOyAjNzE3RQor54W/ID4gYsOzOyAjNzE3Rgor54aAID4gaHXEg25nOyAjNzE4MAor54aBID4geGnDqTsgIzcxODEKK+eGgiA+IHjDrDsgIzcxODIKK+eGgyA+IHfDuTsgIzcxODMKK+eGhCA+IHjDrTsgIzcxODQKK+eGhSA+IHnDum47ICM3MTg1CivnhoYgPiBow6k7ICM3MTg2CivnhocgPiBow6g7ICM3MTg3CivnhoggPiB4xKs7ICM3MTg4CivnhokgPiB5w7puOyAjNzE4OQor54aKID4geMOtb25nOyAjNzE4QQor54aLID4gbsOhaTsgIzcxOEIKK+eGjCA+IHNow6BuOyAjNzE4Qwor54aNID4gcWlvbmc7ICM3MThECivnho4gPiB5w6BvOyAjNzE4RQor54aPID4geMWrbjsgIzcxOEYKK+eGkCA+IG3DrDsgIzcxOTAKK+eGkSA+IGxpw6FuOyAjNzE5MQor54aSID4gecOtbmc7ICM3MTkyCivnhpMgPiB3w6huOyAjNzE5Mwor54aUID4gcsOzbmc7ICM3MTk0CivnhpcgPiBxacOgbmc7ICM3MTk3CivnhpggPiBsxKt1OyAjNzE5OAor54aZID4geMSrOyAjNzE5OQor54aaID4gYsOsOyAjNzE5QQor54abID4gYmnEgW87ICM3MTlCCivnhpwgPiB6xY9uZzsgIzcxOUMKK+eGnSA+IGzDuTsgIzcxOUQKK+eGniA+IGppxIFuOyAjNzE5RQor54afID4gc2jDs3U7ICM3MTlGCivnhqAgPiB5w6w7ICM3MUEwCivnhqEgPiBsw7N1OyAjNzFBMQor54aiID4gZsSTbmc7ICM3MUEyCivnhqMgPiBzxatpOyAjNzFBMwor54akID4gecOsOyAjNzFBNAor54alID4gdMWNbmc7ICM3MUE1CivnhqYgPiBqdcOpOyAjNzFBNgor54anID4gesWNbmc7ICM3MUE3CivnhqggPiB5w7luOyAjNzFBOAor54apID4gaMO5OyAjNzFBOQor54aqID4gecOtOyAjNzFBQQor54arID4gemjDrDsgIzcxQUIKK+eGrCA+IMOhbzsgIzcxQUMKK+eGrSA+IHfDqGk7ICM3MUFECivnhq4gPiBsacOhbzsgIzcxQUUKK+eGryA+IGjDoG47ICM3MUFGCivnhrAgPiDFjXU7ICM3MUIwCivnhrEgPiByw6g7ICM3MUIxCivnhrIgPiBqxK1vbmc7ICM3MUIyCivnhrMgPiBtw6BuOyAjNzFCMwor54a1ID4gc2jEgW5nOyAjNzFCNQor54a2ID4gY3XDoG47ICM3MUI2CivnhrcgPiB6xJNuZzsgIzcxQjcKK+eGuCA+IGppxIFuOyAjNzFCOAor54a5ID4geMSrOyAjNzFCOQor54a6ID4geMSrOyAjNzFCQQor54a7ID4geMSrOyAjNzFCQgor54a8ID4gecOsOyAjNzFCQwor54a9ID4geGnDoG87ICM3MUJECivnhr4gPiBjaMOsOyAjNzFCRQor54a/ID4gaHXDoW5nOyAjNzFCRgor54eAID4gY2jEg247ICM3MUMwCivnh4EgPiB5w6g7ICM3MUMxCivnh4IgPiBxacOhbjsgIzcxQzIKK+eHgyA+IHLDoW47ICM3MUMzCivnh4QgPiB5w6BuOyAjNzFDNAor54eFID4geGnDoW47ICM3MUM1Civnh4YgPiBxacOhbzsgIzcxQzYKK+eHhyA+IHrDuW47ICM3MUM3Civnh4ggPiBkxJNuZzsgIzcxQzgKK+eHiSA+IGTDuW47ICM3MUM5Civnh4ogPiBzaMSTbjsgIzcxQ0EKK+eHiyA+IGppxIFvOyAjNzFDQgor54eMID4gZsOpbjsgIzcxQ0MKK+eHjSA+IHPEqzsgIzcxQ0QKK+eHjiA+IGxpw6BvOyAjNzFDRQor54ePID4gecO5OyAjNzFDRgor54eQID4gbMOtbjsgIzcxRDAKK+eHkSA+IHTDs25nOyAjNzFEMQor54eSID4gc2jEgW87ICM3MUQyCivnh5MgPiBmxJNuOyAjNzFEMwor54eUID4gZsOhbjsgIzcxRDQKK+eHlSA+IHnDoG47ICM3MUQ1Civnh5YgPiB4w7puOyAjNzFENgor54eXID4gbMOgbjsgIzcxRDcKK+eHmCA+IG3ElWk7ICM3MUQ4Civnh5kgPiB0w6BuZzsgIzcxRDkKK+eHmiA+IHnEqzsgIzcxREEKK+eHmyA+IGrErW5nOyAjNzFEQgor54ecID4gbcOobjsgIzcxREMKK+eHnyA+IHnDrW5nOyAjNzFERgor54egID4gecO5OyAjNzFFMAor54ehID4gecOsOyAjNzFFMQor54eiID4geHXDqTsgIzcxRTIKK+eHoyA+IGzDoW47ICM3MUUzCivnh6QgPiB0w6BpOyAjNzFFNAor54elID4gesOgbzsgIzcxRTUKK+eHpiA+IGPDoG47ICM3MUU2Civnh6cgPiBzw7lpOyAjNzFFNwor54eoID4geMSrOyAjNzFFOAor54epID4gcXXDqDsgIzcxRTkKK+eHqiA+IGPFjW5nOyAjNzFFQQor54erID4gbGnDoW47ICM3MUVCCivnh6wgPiBoxa1pOyAjNzFFQwor54etID4gemjDujsgIzcxRUQKK+eHriA+IHhpw6g7ICM3MUVFCivnh68gPiBsw61uZzsgIzcxRUYKK+eHsCA+IHfEk2k7ICM3MUYwCivnh7EgPiB5w6w7ICM3MUYxCivnh7IgPiB4acOpOyAjNzFGMgor54ezID4gemjDoG87ICM3MUYzCivnh7QgPiBow7lpOyAjNzFGNAor54e3ID4gbMOhbjsgIzcxRjcKK+eHuCA+IHLDujsgIzcxRjgKK+eHuSA+IHhpxINuOyAjNzFGOQor54e6ID4ga8SDbzsgIzcxRkEKK+eHuyA+IHjFq247ICM3MUZCCivnh7wgPiBqw6xuOyAjNzFGQwor54e9ID4gY2jDs3U7ICM3MUZECivnh74gPiBjaMOzdTsgIzcxRkUKK+eHvyA+IHnDoG87ICM3MUZGCivniIAgPiBow6g7ICM3MjAwCivniIEgPiBsw6BuOyAjNzIwMQor54iCID4gYmnEgW87ICM3MjAyCivniIMgPiByw7NuZzsgIzcyMDMKK+eIhCA+IGzDrDsgIzcyMDQKK+eIhSA+IG3DsjsgIzcyMDUKK+eIhiA+IGLDoG87ICM3MjA2CivniIcgPiByw7lvOyAjNzIwNwor54iIID4gbMeYOyAjNzIwOAor54iJID4gbMOgOyAjNzIwOQor54iKID4gw6FvOyAjNzIwQQor54iLID4geMO5bjsgIzcyMEIKK+eIjCA+IGt1w6BuZzsgIzcyMEMKK+eIjSA+IHNow7lvOyAjNzIwRAor54iPID4gbMOsOyAjNzIwRgor54iQID4gbMO6OyAjNzIxMAor54iRID4ganXDqTsgIzcyMTEKK+eIkiA+IGxpw6BvOyAjNzIxMgor54iTID4gecOgbjsgIzcyMTMKK+eIlCA+IHjEqzsgIzcyMTQKK+eIlSA+IHhpw6g7ICM3MjE1CivniJYgPiBsw7NuZzsgIzcyMTYKK+eIlyA+IHnDqDsgIzcyMTcKK+eImSA+IHLEg25nOyAjNzIxOQor54iaID4geXXDqDsgIzcyMUEKK+eImyA+IGzDoG47ICM3MjFCCivniJwgPiBjw7NuZzsgIzcyMUMKK+eInSA+IGp1w6k7ICM3MjFECivniJ4gPiB0w7NuZzsgIzcyMUUKK+eInyA+IGd1w6BuOyAjNzIxRgor54ihID4gY2jDqDsgIzcyMjEKK+eIoiA+IG3DrTsgIzcyMjIKK+eIoyA+IHTEg25nOyAjNzIyMwor54ikID4gbMOgbjsgIzcyMjQKK+eIpSA+IHpow7o7ICM3MjI1CivniKcgPiBsw61uZzsgIzcyMjcKK+eIqCA+IGN1w6BuOyAjNzIyOAor54ipID4gecO5OyAjNzIyOQor54iqID4gemh1xIM7ICM3MjJBCivniKwgPiBww6E7ICM3MjJDCivniK0gPiB6aMSTbmc7ICM3MjJECivniK4gPiBww6FvOyAjNzIyRQor54ivID4gY2jEk25nOyAjNzIyRgor54iwID4geXXDoW47ICM3MjMwCivniLEgPiDDoGk7ICM3MjMxCivniLIgPiB3w6hpOyAjNzIzMgor54i0ID4ganXDqTsgIzcyMzQKK+eItSA+IGp1w6k7ICM3MjM1CivniLYgPiBmw7k7ICM3MjM2CivniLcgPiB5w6k7ICM3MjM3CivniLggPiBiw6A7ICM3MjM4CivniLkgPiBkacSTOyAjNzIzOQor54i6ID4gecOpOyAjNzIzQQor54i7ID4gecOhbzsgIzcyM0IKK+eIvCA+IHrFrTsgIzcyM0MKK+eIvSA+IHNodcSDbmc7ICM3MjNECivniL4gPiDElXI7ICM3MjNFCivniL8gPiBxacOhbmc7ICM3MjNGCivniYAgPiBjaHXDoW5nOyAjNzI0MAor54mBID4gZ8STOyAjNzI0MQor54mCID4gesSBbmc7ICM3MjQyCivniYMgPiBkacOpOyAjNzI0Mwor54mEID4gcWnEgW5nOyAjNzI0NAor54mFID4gecOzbmc7ICM3MjQ1CivniYYgPiBxacOhbmc7ICM3MjQ2CivniYcgPiBwacOgbjsgIzcyNDcKK+eJiCA+IGLEg247ICM3MjQ4CivniYkgPiBww6BuOyAjNzI0OQor54mKID4gc2jDoW87ICM3MjRBCivniYsgPiBqacSBbjsgIzcyNEIKK+eJjCA+IHDDoWk7ICM3MjRDCivniY0gPiBkw7o7ICM3MjRECivniY4gPiBjaHXEgW5nOyAjNzI0RQor54mPID4gdMOzdTsgIzcyNEYKK+eJkCA+IHpow6E7ICM3MjUwCivniZEgPiBiacSBbjsgIzcyNTEKK+eJkiA+IGRpw6k7ICM3MjUyCivniZMgPiBixINuZzsgIzcyNTMKK+eJlCA+IGLDszsgIzcyNTQKK+eJlSA+IGNodcSBbmc7ICM3MjU1CivniZYgPiB5xY91OyAjNzI1Ngor54mYID4gZMO6OyAjNzI1OAor54mZID4gecOhOyAjNzI1OQor54maID4gY2jDqG5nOyAjNzI1QQor54mbID4gbsOtdTsgIzcyNUIKK+eJnSA+IHDDrG47ICM3MjVECivniZ4gPiBqxKt1OyAjNzI1RQor54mfID4gbcOzdTsgIzcyNUYKK+eJoCA+IHTFq287ICM3MjYwCivniaEgPiBtxa07ICM3MjYxCivniaIgPiBsw6FvOyAjNzI2Mgor54mjID4gcsOobjsgIzcyNjMKK+eJpCA+IG3DoW5nOyAjNzI2NAor54mlID4gZsSBbmc7ICM3MjY1CivniaYgPiBtw6FvOyAjNzI2Ngor54mnID4gbcO5OyAjNzI2Nwor54moID4gZ8SBbmc7ICM3MjY4CivniakgPiB3w7k7ICM3MjY5CivniaogPiB5w6BuOyAjNzI2QQor54mrID4gZ8STOyAjNzI2Qgor54msID4gYsOoaTsgIzcyNkMKK+eJrSA+IHPDrDsgIzcyNkQKK+eJriA+IGppw6BuOyAjNzI2RQor54mvID4gZ8WtOyAjNzI2Rgor54mwID4gecOydTsgIzcyNzAKK+eJsSA+IGfEkzsgIzcyNzEKK+eJsiA+IHNoxJNuZzsgIzcyNzIKK+eJsyA+IG3FrTsgIzcyNzMKK+eJtCA+IGTErTsgIzcyNzQKK+eJtSA+IHFpxIFuOyAjNzI3NQor54m2ID4gcXXDoG47ICM3Mjc2CivnibcgPiBxdcOhbjsgIzcyNzcKK+eJuCA+IHrDrDsgIzcyNzgKK+eJuSA+IHTDqDsgIzcyNzkKK+eJuiA+IHjEqzsgIzcyN0EKK+eJuyA+IG3DoW5nOyAjNzI3Qgor54m8ID4ga8STbmc7ICM3MjdDCivnib0gPiBxacSBbjsgIzcyN0QKK+eJviA+IHfDujsgIzcyN0UKK+eJvyA+IGfDuTsgIzcyN0YKK+eKgCA+IHjEqzsgIzcyODAKK+eKgSA+IGzDrTsgIzcyODEKK+eKgiA+IGzDrTsgIzcyODIKK+eKgyA+IHDFj3U7ICM3MjgzCivnioQgPiBqxKs7ICM3Mjg0CivnioUgPiBnxIFuZzsgIzcyODUKK+eKhiA+IHpow607ICM3Mjg2CivniocgPiBixJNuOyAjNzI4Nwor54qIID4gcXXDoW47ICM3Mjg4CivniokgPiByw7puOyAjNzI4OQor54qKID4gZMO6OyAjNzI4QQor54qLID4gasO5OyAjNzI4Qgor54qMID4gamnEgTsgIzcyOEMKK+eKjSA+IGppxIFuOyAjNzI4RAor54qOID4gZsSTbmc7ICM3MjhFCivnio8gPiBwacSBbjsgIzcyOEYKK+eKkCA+IGvEkzsgIzcyOTAKK+eKkSA+IGrDujsgIzcyOTEKK+eKkiA+IGvDoG87ICM3MjkyCivnipMgPiBjaMO6OyAjNzI5Mwor54qUID4geMOsOyAjNzI5NAor54qVID4gYsOoaTsgIzcyOTUKK+eKliA+IGzDuW87ICM3Mjk2CivnipcgPiBqacOoOyAjNzI5Nwor54qYID4gbcOhOyAjNzI5OAor54qZID4gc8SBbjsgIzcyOTkKK+eKmiA+IHfDqGk7ICM3MjlBCivnipsgPiBsw607ICM3MjlCCivnipwgPiBkxatuOyAjNzI5Qwor54qdID4gdMOzbmc7ICM3MjlECivnip8gPiBqacOgbmc7ICM3MjlGCivniqEgPiBsw6w7ICM3MkExCivniqIgPiBkw7o7ICM3MkEyCivniqMgPiBsacOoOyAjNzJBMwor54qkID4gcMOtOyAjNzJBNAor54qlID4gcGnEg287ICM3MkE1CivniqYgPiBiw6BvOyAjNzJBNgor54qnID4geMSrOyAjNzJBNwor54qoID4gY2jFjXU7ICM3MkE4CivniqkgPiB3w6hpOyAjNzJBOQor54qqID4ga8O6aTsgIzcyQUEKK+eKqyA+IGNoxY11OyAjNzJBQgor54qsID4gcXXEg247ICM3MkFDCivniq0gPiBmxINuJyAncXXEg24nICdww6FuZzsgIzcyQUQKK+eKriA+IGLDoTsgIzcyQUUKK+eKryA+IGbDoG47ICM3MkFGCivnirAgPiBxw611OyAjNzJCMAor54qxID4gasStOyAjNzJCMQor54qyID4gY8OhaTsgIzcyQjIKK+eKsyA+IGNow7pvOyAjNzJCMwor54q0ID4gw6BuOyAjNzJCNAor54q1ID4gamnDqTsgIzcyQjUKK+eKtiA+IHpodcOgbmc7ICM3MkI2CivnircgPiBndcSDbmc7ICM3MkI3CivnirggPiBtw6A7ICM3MkI4CivnirkgPiB5w7N1OyAjNzJCOQor54q6ID4ga8Ogbmc7ICM3MkJBCivnirsgPiBiw7M7ICM3MkJCCivnirwgPiBoxY91OyAjNzJCQwor54q9ID4gecOhOyAjNzJCRAor54q+ID4gecOtbjsgIzcyQkUKK+eKvyA+IGh1xIFuOyAjNzJCRgor54uAID4gemh1w6BuZzsgIzcyQzAKK+eLgSA+IHnFrW47ICM3MkMxCivni4IgPiBrdcOhbmc7ICM3MkMyCivni4MgPiBuxK11OyAjNzJDMwor54uEID4gZMOtOyAjNzJDNAor54uFID4gccSrbmc7ICM3MkM1Civni4YgPiB6aMOybmc7ICM3MkM2Civni4cgPiBtw7k7ICM3MkM3Civni4ggPiBiw6hpOyAjNzJDOAor54uJID4gcMSrOyAjNzJDOQor54uKID4gasO6OyAjNzJDQQor54uLID4gbsOtOyAjNzJDQgor54uMID4gc2jEk25nOyAjNzJDQwor54uNID4gcMOhbzsgIzcyQ0QKK+eLjiA+IHhpw6E7ICM3MkNFCivni48gPiB0w7pvOyAjNzJDRgor54uQID4gaMO6OyAjNzJEMAor54uRID4gbMOtbmc7ICM3MkQxCivni5IgPiBmw6hpOyAjNzJEMgor54uTID4gcMSrOyAjNzJEMwor54uUID4gbsStOyAjNzJENAor54uVID4gxINvOyAjNzJENQor54uWID4gecOydTsgIzcyRDYKK+eLlyA+IGfFj3U7ICM3MkQ3Civni5ggPiB5dcOoOyAjNzJEOAor54uZID4gasWrOyAjNzJEOQor54uaID4gZMOgbjsgIzcyREEKK+eLmyA+IHDDsjsgIzcyREIKK+eLnCA+IGfFrTsgIzcyREMKK+eLnSA+IHhpxINuOyAjNzJERAor54ueID4gbsOtbmc7ICM3MkRFCivni58gPiBodcOhbjsgIzcyREYKK+eLoCA+IGjElW47ICM3MkUwCivni6EgPiBqacSDbzsgIzcyRTEKK+eLoiA+IGjDqTsgIzcyRTIKK+eLoyA+IHpow6BvOyAjNzJFMwor54ukID4gasOtOyAjNzJFNAor54ulID4geMO5bjsgIzcyRTUKK+eLpiA+IHNoxIFuOyAjNzJFNgor54unID4gdMOgOyAjNzJFNwor54uoID4gcsOzbmc7ICM3MkU4Civni6kgPiBzaMOydTsgIzcyRTkKK+eLqiA+IHTFjW5nOyAjNzJFQQor54urID4gbMSDbzsgIzcyRUIKK+eLrCA+IGTDujsgIzcyRUMKK+eLrSA+IHhpw6E7ICM3MkVECivni64gPiBzaMSrOyAjNzJFRQor54uvID4gaHXDoTsgIzcyRUYKK+eLsCA+IHpoxJNuZzsgIzcyRjAKK+eLsSA+IHnDuTsgIzcyRjEKK+eLsiA+IHPFq247ICM3MkYyCivni7MgPiB5w7o7ICM3MkYzCivni7QgPiBiw6w7ICM3MkY0Civni7UgPiBtw6FuZzsgIzcyRjUKK+eLtiA+IHjErTsgIzcyRjYKK+eLtyA+IGp1w6BuOyAjNzJGNwor54u4ID4gbMOtOyAjNzJGOAor54u5ID4geGnDoTsgIzcyRjkKK+eLuiA+IHnDrW47ICM3MkZBCivni7sgPiBzdcSBbjsgIzcyRkIKK+eLvCA+IGzDoW5nOyAjNzJGQwor54u9ID4gYsOoaTsgIzcyRkQKK+eLviA+IHpow6w7ICM3MkZFCivni78gPiB5w6FuOyAjNzJGRgor54yAID4gc2jEgTsgIzczMDAKK+eMgSA+IGzDrDsgIzczMDEKK+eMgiA+IGjDoG47ICM3MzAyCivnjIMgPiB4acSDbjsgIzczMDMKK+eMhCA+IGrEq25nOyAjNzMwNAor54yFID4gcMOhaTsgIzczMDUKK+eMhiA+IGbEk2k7ICM3MzA2CivnjIcgPiB5w6FvOyAjNzMwNwor54yIID4gYsOgOyAjNzMwOAor54yJID4gccOtOyAjNzMwOQor54yKID4gbsOtOyAjNzMwQQor54yLID4gYmnEgW87ICM3MzBCCivnjIwgPiB5w6xuOyAjNzMwQwor54yNID4gbMOhaTsgIzczMEQKK+eMjiA+IHjDrTsgIzczMEUKK+eMjyA+IGppxIFuOyAjNzMwRgor54yQID4gcWnEgW5nOyAjNzMxMAor54yRID4ga8WrbjsgIzczMTEKK+eMkiA+IHnEgW47ICM3MzEyCivnjJMgPiBnxa1vOyAjNzMxMwor54yUID4gesOybmc7ICM3MzE0CivnjJUgPiBtw607ICM3MzE1CivnjJYgPiBjaMSBbmc7ICM3MzE2CivnjJcgPiB5xKs7ICM3MzE3CivnjJggPiB6aMOsOyAjNzMxOAor54yZID4gemjEk25nOyAjNzMxOQor54yaID4gecOhOyAjNzMxQQor54ybID4gbcSVbmc7ICM3MzFCCivnjJwgPiBjxIFpOyAjNzMxQwor54ydID4gY8O5OyAjNzMxRAor54yeID4gc2jDqDsgIzczMUUKK+eMoSA+IGzDum87ICM3MzIxCivnjKIgPiBow7o7ICM3MzIyCivnjKMgPiB6xY1uZzsgIzczMjMKK+eMpCA+IGrDrDsgIzczMjQKK+eMpSA+IHfElWk7ICM3MzI1CivnjKYgPiBmxJNuZzsgIzczMjYKK+eMpyA+IHfFjTsgIzczMjcKK+eMqCA+IHl1w6FuOyAjNzMyOAor54ypID4geMSrbmc7ICM3MzI5CivnjKogPiB6aMWrOyAjNzMyQQor54yrID4gbcSBbzsgIzczMkIKK+eMrCA+IHfDqGk7ICM3MzJDCivnjK0gPiB5dcOhbjsgIzczMkQKK+eMriA+IHhpw6BuOyAjNzMyRQor54yvID4gdHXEgW47ICM3MzJGCivnjLAgPiB5w6A7ICM3MzMwCivnjLEgPiBuw6FvOyAjNzMzMQor54yyID4geGnEkzsgIzczMzIKK+eMsyA+IGppxIE7ICM3MzMzCivnjLQgPiBow7N1OyAjNzMzNAor54y1ID4gYmnEgW47ICM3MzM1CivnjLYgPiB5w7N1OyAjNzMzNgor54y3ID4gecOzdTsgIzczMzcKK+eMuCA+IG3DqWk7ICM3MzM4CivnjLkgPiB6aMSBOyAjNzMzOQor54y6ID4gecOhbzsgIzczM0EKK+eMuyA+IHPFq247ICM3MzNCCivnjLwgPiBiw7M7ICM3MzNDCivnjL0gPiBtw61uZzsgIzczM0QKK+eMviA+IGh1w6E7ICM3MzNFCivnjL8gPiB5dcOhbjsgIzczM0YKK+eNgCA+IHPFjXU7ICM3MzQwCivnjYEgPiBtw6A7ICM3MzQxCivnjYIgPiB5dcOhbjsgIzczNDIKK+eNgyA+IGTEgWk7ICM3MzQzCivnjYQgPiB5w7k7ICM3MzQ0CivnjYUgPiBzaMSrOyAjNzM0NQor542GID4gaMOhbzsgIzczNDYKK+eNiCA+IHnDrDsgIzczNDgKK+eNiSA+IHpoxJNuOyAjNzM0OQor542KID4gY2h1w6BuZzsgIzczNEEKK+eNiyA+IGjDoW87ICM3MzRCCivnjYwgPiBtw6BuOyAjNzM0Qwor542NID4gasOsbmc7ICM3MzRECivnjY4gPiBqacSDbmc7ICM3MzRFCivnjY8gPiBtw7o7ICM3MzRGCivnjZAgPiB6aMSBbmc7ICM3MzUwCivnjZEgPiBjaMOhbjsgIzczNTEKK+eNkiA+IMOhbzsgIzczNTIKK+eNkyA+IMOhbzsgIzczNTMKK+eNlCA+IGjDoW87ICM3MzU0CivnjZUgPiBjxatpOyAjNzM1NQor542WID4gZsOpbjsgIzczNTYKK+eNlyA+IGp1w6k7ICM3MzU3CivnjZggPiBiw6w7ICM3MzU4CivnjZkgPiBiw6w7ICM3MzU5CivnjZogPiBodcOhbmc7ICM3MzVBCivnjZsgPiBww7o7ICM3MzVCCivnjZwgPiBsw61uOyAjNzM1Qwor542dID4gecO5OyAjNzM1RAor542eID4gdMOzbmc7ICM3MzVFCivnjZ8gPiB5w6BvOyAjNzM1Rgor542gID4gbGnDoW87ICM3MzYwCivnjaEgPiBzaMO5bzsgIzczNjEKK+eNoiA+IHhpxIFvOyAjNzM2Mgor542lID4geMOtOyAjNzM2NQor542mID4gZ8OpOyAjNzM2Ngor542nID4ganXDoG47ICM3MzY3CivnjaggPiBkw7o7ICM3MzY4CivnjakgPiBow7lpOyAjNzM2OQor542qID4ga3XDoGk7ICM3MzZBCivnjasgPiB4acSDbjsgIzczNkIKK+eNrCA+IHhpw6g7ICM3MzZDCivnja0gPiB0w6A7ICM3MzZECivnja4gPiB4acSDbjsgIzczNkUKK+eNryA+IHjFq247ICM3MzZGCivnjbAgPiBuw61uZzsgIzczNzAKK+eNsSA+IHDDrW47ICM3MzcxCivnjbIgPiBow7lvOyAjNzM3Mgor542zID4gbsOydTsgIzczNzMKK+eNtCA+IG3DqW5nOyAjNzM3NAor5421ID4gbGnDqDsgIzczNzUKK+eNtiA+IG7DoW87ICM3Mzc2CivnjbcgPiBndcSDbmc7ICM3Mzc3CivnjbggPiBzaMOydTsgIzczNzgKK+eNuSA+IGzDujsgIzczNzkKK+eNuiA+IHTDoDsgIzczN0EKK+eNuyA+IHhpw6BuOyAjNzM3Qgor5428ID4gbcOtOyAjNzM3Qwor5429ID4gcsOhbmc7ICM3MzdECivnjb4gPiBodcSBbjsgIzczN0UKK+eNvyA+IG7DoW87ICM3MzdGCivnjoAgPiBsw7pvOyAjNzM4MAor546BID4geGnEg247ICM3MzgxCivnjoIgPiBxw607ICM3MzgyCivnjoMgPiBqdcOpOyAjNzM4Mwor546EID4geHXDoW47ICM3Mzg0CivnjoUgPiBtacOgbzsgIzczODUKK+eOhiA+IHrEqzsgIzczODYKK+eOhyA+IGzHnDsgIzczODcKK+eOiCA+IGzDujsgIzczODgKK+eOiSA+IHnDuTsgIzczODkKK+eOiiA+IHPDuTsgIzczOEEKK+eOiyA+IHfDoW5nOyAjNzM4Qgor546MID4gccOtdTsgIzczOEMKK+eOjSA+IGfEgzsgIzczOEQKK+eOjiA+IGTEq25nOyAjNzM4RQor546PID4gbMOoOyAjNzM4Rgor546QID4gYsSBOyAjNzM5MAor546RID4gasSrOyAjNzM5MQor546SID4gaMOzbmc7ICM3MzkyCivnjpMgPiBkw6w7ICM3MzkzCivnjpQgPiBxdcOgbjsgIzczOTQKK+eOlSA+IGfEgW47ICM3Mzk1CivnjpYgPiBqxK11OyAjNzM5Ngor546XID4gecO6OyAjNzM5Nwor546YID4gasStOyAjNzM5OAor546ZID4gecO6OyAjNzM5OQor546aID4gecOhbmc7ICM3MzlBCivnjpsgPiBtxIM7ICM3MzlCCivnjpwgPiBnxY1uZzsgIzczOUMKK+eOnSA+IHfFrTsgIzczOUQKK+eOniA+IGbFqzsgIzczOUUKK+eOnyA+IHfDqW47ICM3MzlGCivnjqAgPiBqacOoOyAjNzNBMAor546hID4gecOgOyAjNzNBMQor546iID4gZsOpbjsgIzczQTIKK+eOoyA+IGJpw6BuOyAjNzNBMwor546kID4gYsSVbmc7ICM3M0E0CivnjqUgPiB5dcOoOyAjNzNBNQor546mID4ganXDqTsgIzczQTYKK+eOpyA+IHnFrW47ICM3M0E3CivnjqggPiBqdcOpOyAjNzNBOAor546pID4gd8OhbjsgIzczQTkKK+eOqiA+IGppxIFuOyAjNzNBQQor546rID4gbcOpaTsgIzczQUIKK+eOrCA+IGTEg247ICM3M0FDCivnjq0gPiBww607ICM3M0FECivnjq4gPiB3xJVpOyAjNzNBRQor546vID4gaHXDoW47ICM3M0FGCivnjrAgPiB4acOgbjsgIzczQjAKK+eOsSA+IHFpxIFuZzsgIzczQjEKK+eOsiA+IGzDrW5nOyAjNzNCMgor546zID4gZMOgaTsgIzczQjMKK+eOtCA+IHnDrDsgIzczQjQKK+eOtSA+IMOhbjsgIzczQjUKK+eOtiA+IHDDrW5nOyAjNzNCNgor5463ID4gZGnDoG47ICM3M0I3CivnjrggPiBmw7o7ICM3M0I4CivnjrkgPiB4dcOhbjsgIzczQjkKK+eOuiA+IHjErTsgIzczQkEKK+eOuyA+IGLFjTsgIzczQkIKK+eOvCA+IGPErTsgIzczQkMKK+eOvSA+IGfFj3U7ICM3M0JECivnjr4gPiBqacSDOyAjNzNCRQor546/ID4gc2jDoW87ICM3M0JGCivnj4AgPiBww7I7ICM3M0MwCivnj4EgPiBjw607ICM3M0MxCivnj4IgPiBrxJM7ICM3M0MyCivnj4MgPiByxINuOyAjNzNDMwor54+EID4gc2jEk25nOyAjNzNDNAor54+FID4gc2jEk247ICM3M0M1Civnj4YgPiB5w607ICM3M0M2Civnj4cgPiB6xa07ICM3M0M3Civnj4ggPiBqacSBOyAjNzNDOAor54+JID4gbcOtbjsgIzczQzkKK+ePiiA+IHNoxIFuOyAjNzNDQQor54+LID4gbMStdTsgIzczQ0IKK+ePjCA+IGLDrDsgIzczQ0MKK+ePjSA+IHpoxJNuOyAjNzNDRAor54+OID4gemjEk247ICM3M0NFCivnj48gPiBqdcOpOyAjNzNDRgor54+QID4gZsOgOyAjNzNEMAor54+RID4gbMOzbmc7ICM3M0QxCivnj5IgPiBqxKtuOyAjNzNEMgor54+TID4gamnDoG87ICM3M0QzCivnj5QgPiBqacOgbjsgIzczRDQKK+ePlSA+IGzDrDsgIzczRDUKK+ePliA+IGd1xIFuZzsgIzczRDYKK+ePlyA+IHhpxIFuOyAjNzNENwor54+YID4gemjFjXU7ICM3M0Q4Civnj5kgPiBnxY9uZzsgIzczRDkKK+ePmiA+IHnEgW47ICM3M0RBCivnj5sgPiB4w6x1OyAjNzNEQgor54+cID4gecOhbmc7ICM3M0RDCivnj50gPiB4xa07ICM3M0RECivnj54gPiBsw7lvOyAjNzNERQor54+fID4gc8O5OyAjNzNERgor54+gID4gemjFqzsgIzczRTAKK+ePoSA+IHHDrW47ICM3M0UxCivnj6IgPiBrw6huOyAjNzNFMgor54+jID4geMO6bjsgIzczRTMKK+ePpCA+IGLEg287ICM3M0U0Civnj6UgPiDElXI7ICM3M0U1Civnj6YgPiB4acOgbmc7ICM3M0U2Civnj6cgPiB5w6FvOyAjNzNFNwor54+oID4geGnDoTsgIzczRTgKK+ePqSA+IGjDqW5nOyAjNzNFOQor54+qID4gZ8WraTsgIzczRUEKK+ePqyA+IGNoxY1uZzsgIzczRUIKK+ePrCA+IHjDuTsgIzczRUMKK+ePrSA+IGLEgW47ICM3M0VECivnj64gPiBww6hpOyAjNzNFRQor54+wID4gZMSBbmc7ICM3M0YwCivnj7IgPiBow7puOyAjNzNGMgor54+zID4gd8OpbjsgIzczRjMKK+ePtCA+IMOpOyAjNzNGNAor54+1ID4gY2jDqW5nOyAjNzNGNQor54+2ID4gdMOtOyAjNzNGNgor54+3ID4gd8WtOyAjNzNGNwor54+4ID4gd8O6OyAjNzNGOAor54+5ID4gY2jDqW5nOyAjNzNGOQor54+6ID4gasO5bjsgIzczRkEKK+ePuyA+IG3DqWk7ICM3M0ZCCivnj7wgPiBiw6hpOyAjNzNGQwor54+9ID4gdMStbmc7ICM3M0ZECivnj74gPiB4acOgbjsgIzczRkUKK+ePvyA+IGNow7lvOyAjNzNGRgor55CAID4gaMOhbjsgIzc0MDAKK+eQgSA+IHh1YW47ICM3NDAxCivnkIIgPiB5w6FuOyAjNzQwMgor55CDID4gccOtdTsgIzc0MDMKK+eQhCA+IHF1xINuOyAjNzQwNAor55CFID4gbMOhbmc7ICM3NDA1CivnkIYgPiBsxK07ICM3NDA2CivnkIcgPiB4w6x1OyAjNzQwNwor55CIID4gZsO6OyAjNzQwOAor55CJID4gbMOtdTsgIzc0MDkKK+eQiiA+IHnDqTsgIzc0MEEKK+eQiyA+IHjEqzsgIzc0MEIKK+eQjCA+IGzDrW5nOyAjNzQwQwor55CNID4gbMOsOyAjNzQwRAor55COID4gasOsbjsgIzc0MEUKK+eQjyA+IGxpw6FuOyAjNzQwRgor55CQID4gc8WtbzsgIzc0MTAKK+eQkyA+IHfDoW47ICM3NDEzCivnkJQgPiBkacOgbjsgIzc0MTQKK+eQlSA+IHDDrW47ICM3NDE1CivnkJYgPiB6aMSDbjsgIzc0MTYKK+eQlyA+IGPDuWk7ICM3NDE3CivnkJggPiBtw61uOyAjNzQxOAor55CZID4gecO5OyAjNzQxOQor55CaID4gasWrOyAjNzQxQQor55CbID4gY2jEk247ICM3NDFCCivnkJwgPiBsw6FpOyAjNzQxQwor55CdID4gd8OpbjsgIzc0MUQKK+eQniA+IHNow6huZzsgIzc0MUUKK+eQnyA+IHfDqWk7ICM3NDFGCivnkKAgPiBkacSDbjsgIzc0MjAKK+eQoSA+IGNow7k7ICM3NDIxCivnkKIgPiB6aMO6bzsgIzc0MjIKK+eQoyA+IHDElWk7ICM3NDIzCivnkKQgPiBjaMSTbmc7ICM3NDI0CivnkKUgPiBoxa07ICM3NDI1CivnkKYgPiBxw607ICM3NDI2CivnkKcgPiDDqDsgIzc0MjcKK+eQqCA+IGvFq247ICM3NDI4CivnkKkgPiBjaMSBbmc7ICM3NDI5CivnkKogPiBxw607ICM3NDJBCivnkKsgPiBixJVuZzsgIzc0MkIKK+eQrCA+IHfEg247ICM3NDJDCivnkK0gPiBsw7k7ICM3NDJECivnkK4gPiBjw7NuZzsgIzc0MkUKK+eQryA+IGd1xINuOyAjNzQyRgor55CwID4gecSDbjsgIzc0MzAKK+eQsSA+IGRpxIFvOyAjNzQzMQor55CyID4gYsOoaTsgIzc0MzIKK+eQsyA+IGzDrW47ICM3NDMzCivnkLQgPiBxw61uOyAjNzQzNAor55C1ID4gcMOtOyAjNzQzNQor55C2ID4gcMOhOyAjNzQzNgor55C3ID4gcXXDqDsgIzc0MzcKK+eQuCA+IHpow7pvOyAjNzQzOAor55C5ID4gccOtbjsgIzc0MzkKK+eQuiA+IGbDoDsgIzc0M0EKK+eQvCA+IHHDrW9uZzsgIzc0M0MKK+eQvSA+IGTFrTsgIzc0M0QKK+eQviA+IGppw6g7ICM3NDNFCivnkL8gPiBow7puOyAjNzQzRgor55GAID4gecWtOyAjNzQ0MAor55GBID4gbcOgbzsgIzc0NDEKK+eRgiA+IG3DqWk7ICM3NDQyCivnkYMgPiBjaHVuOyAjNzQ0Mwor55GEID4geHXEgW47ICM3NDQ0CivnkYUgPiB0w607ICM3NDQ1CivnkYYgPiB4xKtuZzsgIzc0NDYKK+eRhyA+IGTDoGk7ICM3NDQ3CivnkYggPiByw7N1OyAjNzQ0OAor55GJID4gbcOtbjsgIzc0NDkKK+eRiiA+IHpoxJNuOyAjNzQ0QQor55GLID4gd8SVaTsgIzc0NEIKK+eRjCA+IHJ1xINuOyAjNzQ0Qwor55GNID4gaHXDoG47ICM3NDRECivnkY4gPiBqacSTOyAjNzQ0RQor55GPID4gY2h1xIFuOyAjNzQ0Rgor55GQID4gamnEg247ICM3NDUwCivnkZEgPiB6aHXDoG47ICM3NDUxCivnkZIgPiB5w6FuZzsgIzc0NTIKK+eRkyA+IGxpw6BuOyAjNzQ1Mwor55GUID4gcXXDoW47ICM3NDU0CivnkZUgPiB4acOhOyAjNzQ1NQor55GWID4gZHXDoG47ICM3NDU2CivnkZcgPiB5dcOgbjsgIzc0NTcKK+eRmCA+IHnDqTsgIzc0NTgKK+eRmSA+IG7Eg287ICM3NDU5CivnkZogPiBow7o7ICM3NDVBCivnkZsgPiB5xKtuZzsgIzc0NUIKK+eRnCA+IHnDujsgIzc0NUMKK+eRnSA+IGh1w6FuZzsgIzc0NUQKK+eRniA+IHLDuWk7ICM3NDVFCivnkZ8gPiBzw6g7ICM3NDVGCivnkaAgPiBsw611OyAjNzQ2MAor55GhID4gc2hpOyAjNzQ2MQor55GiID4gcsOzbmc7ICM3NDYyCivnkaMgPiBzxa1vOyAjNzQ2Mwor55GkID4gecOhbzsgIzc0NjQKK+eRpSA+IHfEk247ICM3NDY1CivnkaYgPiB3xas7ICM3NDY2CivnkacgPiBqxKtuOyAjNzQ2Nwor55GoID4gasOsbjsgIzc0NjgKK+eRqSA+IHnDrW5nOyAjNzQ2OQor55GqID4gbcSDOyAjNzQ2QQor55GrID4gdMSBbzsgIzc0NkIKK+eRrCA+IGzDrXU7ICM3NDZDCivnka0gPiB0w6FuZzsgIzc0NkQKK+eRriA+IGzDrDsgIzc0NkUKK+eRryA+IGzDoW5nOyAjNzQ2Rgor55GwID4gZ8WraTsgIzc0NzAKK+eRsSA+IHpow6huOyAjNzQ3MQor55GyID4gcWnEgW5nOyAjNzQ3Mgor55GzID4gY8WtbzsgIzc0NzMKK+eRtCA+IGp1w6k7ICM3NDc0CivnkbUgPiB6aMSDbzsgIzc0NzUKK+eRtiA+IHnDoW87ICM3NDc2CivnkbcgPiDDoGk7ICM3NDc3CivnkbggPiBixKtuOyAjNzQ3OAor55G5ID4gdMO6OyAjNzQ3OQor55G6ID4gY2jDoW5nOyAjNzQ3QQor55G7ID4ga8WrbjsgIzc0N0IKK+eRvCA+IHpodcSBbjsgIzc0N0MKK+eRvSA+IGPFjW5nOyAjNzQ3RAor55G+ID4gasStbjsgIzc0N0UKK+eRvyA+IHnEqzsgIzc0N0YKK+eSgCA+IGPFrWk7ICM3NDgwCivnkoEgPiBjxY1uZzsgIzc0ODEKK+eSgiA+IHHDrTsgIzc0ODIKK+eSgyA+IGzDrTsgIzc0ODMKK+eShCA+IHnErW5nOyAjNzQ4NAor55KFID4gc8WtbzsgIzc0ODUKK+eShiA+IHHDrXU7ICM3NDg2CivnkocgPiB4dcOhbjsgIzc0ODcKK+eSiCA+IMOhbzsgIzc0ODgKK+eSiSA+IGxpw6FuOyAjNzQ4OQor55KKID4gbcOhbjsgIzc0OEEKK+eSiyA+IHpoxIFuZzsgIzc0OEIKK+eSjCA+IHnDrW47ICM3NDhDCivnko4gPiB5xKtuZzsgIzc0OEUKK+eSjyA+IHpow6w7ICM3NDhGCivnkpAgPiBsw7k7ICM3NDkwCivnkpEgPiB3w7o7ICM3NDkxCivnkpIgPiBkxJNuZzsgIzc0OTIKK+eSkyA+IHhpw7J1OyAjNzQ5Mwor55KUID4gesSTbmc7ICM3NDk0CivnkpUgPiB4w7puOyAjNzQ5NQor55KWID4gccO6OyAjNzQ5Ngor55KXID4gZMOgbmc7ICM3NDk3CivnkpggPiBsw61uOyAjNzQ5OAor55KZID4gbGnDoW87ICM3NDk5CivnkpogPiBxw61vbmc7ICM3NDlBCivnkpsgPiBzw7k7ICM3NDlCCivnkpwgPiBodcOhbmc7ICM3NDlDCivnkp0gPiBnxatpOyAjNzQ5RAor55KeID4gcMO6OyAjNzQ5RQor55KfID4gasStbmc7ICM3NDlGCivnkqAgPiBmw6FuOyAjNzRBMAor55KhID4gasOsbjsgIzc0QTEKK+eSoiA+IGzDrXU7ICM3NEEyCivnkqMgPiBqxKs7ICM3NEEzCivnkqUgPiBqxK1uZzsgIzc0QTUKK+eSpiA+IMOgaTsgIzc0QTYKK+eSpyA+IGLDrDsgIzc0QTcKK+eSqCA+IGPDoG47ICM3NEE4CivnkqkgPiBxw7o7ICM3NEE5CivnkqogPiB6xINvOyAjNzRBQQor55KrID4gZMSBbmc7ICM3NEFCCivnkqwgPiBqacSDbzsgIzc0QUMKK+eSrSA+IGfDuW47ICM3NEFECivnkq4gPiB0xINuOyAjNzRBRQor55KvID4gaMO5aTsgIzc0QUYKK+eSsCA+IGh1w6FuOyAjNzRCMAor55KxID4gc8OoOyAjNzRCMQor55KyID4gc8O5aTsgIzc0QjIKK+eSsyA+IHRpw6FuOyAjNzRCMwor55K1ID4gecO6OyAjNzRCNQor55K2ID4gasOsbjsgIzc0QjYKK+eStyA+IGzDujsgIzc0QjcKK+eSuCA+IGLEq247ICM3NEI4CivnkrkgPiBzaMOydTsgIzc0QjkKK+eSuiA+IHfDqG47ICM3NEJBCivnkrsgPiB6xa1pOyAjNzRCQgor55K8ID4gbMOhbjsgIzc0QkMKK+eSvSA+IHjErTsgIzc0QkQKK+eSviA+IGrDrDsgIzc0QkUKK+eSvyA+IHh1w6FuOyAjNzRCRgor55OAID4gcnXEg247ICM3NEMwCivnk4EgPiBow7lvOyAjNzRDMQor55OCID4gZ8OgaTsgIzc0QzIKK+eTgyA+IGzDqWk7ICM3NEMzCivnk4QgPiBkw7o7ICM3NEM0Civnk4UgPiBsw6w7ICM3NEM1Civnk4YgPiB6aMOtOyAjNzRDNgor55OHID4gcsOzdTsgIzc0QzcKK+eTiCA+IGzDrTsgIzc0QzgKK+eTiSA+IHrDoG47ICM3NEM5Civnk4ogPiBxw61vbmc7ICM3NENBCivnk4sgPiB6aMOpOyAjNzRDQgor55OMID4gZ8WraTsgIzc0Q0MKK+eTjSA+IHPDuWk7ICM3NENECivnk44gPiBsw6A7ICM3NENFCivnk48gPiBsw7NuZzsgIzc0Q0YKK+eTkCA+IGzDujsgIzc0RDAKK+eTkSA+IGzDrDsgIzc0RDEKK+eTkiA+IHrDoG47ICM3NEQyCivnk5MgPiBsw6BuOyAjNzREMwor55OUID4gecSrbmc7ICM3NEQ0Civnk5UgPiBtw607ICM3NEQ1Civnk5YgPiB4acSBbmc7ICM3NEQ2Civnk5cgPiB4xKs7ICM3NEQ3Civnk5ggPiBndcOgbjsgIzc0RDgKK+eTmSA+IGTDoG87ICM3NEQ5Civnk5ogPiB6w6BuOyAjNzREQQor55ObID4gaHXDoW47ICM3NERCCivnk5wgPiBndcSBOyAjNzREQwor55OdID4gYsOzOyAjNzRERAor55OeID4gZGnDqTsgIzc0REUKK+eTnyA+IGLDoW87ICM3NERGCivnk6AgPiBow7k7ICM3NEUwCivnk6EgPiB6aMOtOyAjNzRFMQor55OiID4gcGnDoW87ICM3NEUyCivnk6MgPiBiw6BuOyAjNzRFMwor55OkID4gcsOhbmc7ICM3NEU0Civnk6UgPiBsw6w7ICM3NEU1Civnk6YgPiB3xIM7ICM3NEU2Civnk6ggPiBqacSBbmc7ICM3NEU4Civnk6kgPiBxacOhbicgJ3fEgzsgIzc0RTkKK+eTqiA+IGbEg247ICM3NEVBCivnk6sgPiBww6luOyAjNzRFQgor55OsID4gZsSDbmc7ICM3NEVDCivnk60gPiBkxINuOyAjNzRFRAor55OuID4gd8Oobmc7ICM3NEVFCivnk68gPiDFjXU7ICM3NEVGCivnk7MgPiBow7o7ICM3NEYzCivnk7QgPiBsw61uZzsgIzc0RjQKK+eTtSA+IHnDrTsgIzc0RjUKK+eTtiA+IHDDrW5nOyAjNzRGNgor55O3ID4gY8OtOyAjNzRGNwor55O5ID4ganXDoG47ICM3NEY5Civnk7ogPiBjaMOhbmc7ICM3NEZBCivnk7sgPiBjaMSrOyAjNzRGQgor55O9ID4gZMOgbmc7ICM3NEZECivnk74gPiBtxJVuZzsgIzc0RkUKK+eTvyA+IHDFj3U7ICM3NEZGCivnlIAgPiB6aMO5aTsgIzc1MDAKK+eUgSA+IHDDrW5nOyAjNzUwMQor55SCID4gYmnEgW47ICM3NTAyCivnlIMgPiB6aMOydTsgIzc1MDMKK+eUhCA+IHpoxJNuOyAjNzUwNAor55SGID4gY8OtOyAjNzUwNgor55SHID4gecSrbmc7ICM3NTA3CivnlIggPiBxw6w7ICM3NTA4CivnlIkgPiB4acOhbjsgIzc1MDkKK+eUiiA+IGzFj3U7ICM3NTBBCivnlIsgPiBkw6w7ICM3NTBCCivnlIwgPiDFjXU7ICM3NTBDCivnlI0gPiBtw6luZzsgIzc1MEQKK+eUjiA+IHpodcSBbjsgIzc1MEUKK+eUjyA+IHDDqG5nOyAjNzUwRgor55SQID4gbMOtbjsgIzc1MTAKK+eUkSA+IHrDqG5nOyAjNzUxMQor55SSID4gd8WtOyAjNzUxMgor55STID4gcMOsOyAjNzUxMwor55SUID4gZMSBbjsgIzc1MTQKK+eUlSA+IHfDqG5nOyAjNzUxNQor55SWID4gecSrbmc7ICM3NTE2CivnlJcgPiB5xINuOyAjNzUxNwor55SYID4gZ8SBbjsgIzc1MTgKK+eUmSA+IGTDoGk7ICM3NTE5CivnlJogPiBzaMOpbjsgIzc1MUEKK+eUmyA+IHRpw6FuOyAjNzUxQgor55ScID4gdGnDoW47ICM3NTFDCivnlJ0gPiBoxIFuOyAjNzUxRAor55SeID4gY2jDoW5nOyAjNzUxRQor55SfID4gc2jEk25nOyAjNzUxRgor55SgID4gccOtbmc7ICM3NTIwCivnlKEgPiBzaMSTbmc7ICM3NTIxCivnlKIgPiBjaMSDbjsgIzc1MjIKK+eUoyA+IGNoxINuOyAjNzUyMwor55SkID4gcsO6aTsgIzc1MjQKK+eUpSA+IHNoxJNuZzsgIzc1MjUKK+eUpiA+IHPFqzsgIzc1MjYKK+eUpyA+IHPEk247ICM3NTI3CivnlKggPiB5w7JuZzsgIzc1MjgKK+eUqSA+IHNodcSDaTsgIzc1MjkKK+eUqiA+IGzDuTsgIzc1MkEKK+eUqyA+IGbFrTsgIzc1MkIKK+eUrCA+IHnFj25nOyAjNzUyQwor55StID4gYsOpbmc7ICM3NTJECivnlK4gPiBmw6huZzsgIzc1MkUKK+eUryA+IG7DrW5nOyAjNzUyRgor55SwID4gdGnDoW47ICM3NTMwCivnlLEgPiB5w7N1OyAjNzUzMQor55SyID4gamnEgzsgIzc1MzIKK+eUsyA+IHNoxJNuOyAjNzUzMwor55S0ID4gemjDoTsgIzc1MzQKK+eUtSA+IGRpw6BuOyAjNzUzNQor55S2ID4gZsO6OyAjNzUzNgor55S3ID4gbsOhbjsgIzc1MzcKK+eUuCA+IGRpw6BuOyAjNzUzOAor55S5ID4gcMOtbmc7ICM3NTM5CivnlLogPiB0xK1uZzsgIzc1M0EKK+eUuyA+IGh1w6A7ICM3NTNCCivnlLwgPiB0xK1uZzsgIzc1M0MKK+eUvSA+IHF1xINuOyAjNzUzRAor55S+ID4gesSrOyAjNzUzRQor55S/ID4gbcOpbmc7ICM3NTNGCivnlYAgPiBiw6w7ICM3NTQwCivnlYEgPiBxw607ICM3NTQxCivnlYIgPiBsw6x1OyAjNzU0Mgor55WDID4geMO6bjsgIzc1NDMKK+eVhCA+IGzDrXU7ICM3NTQ0CivnlYUgPiBjaMOgbmc7ICM3NTQ1CivnlYYgPiBtxa07ICM3NTQ2CivnlYcgPiB5w7puOyAjNzU0Nwor55WIID4gZsOgbjsgIzc1NDgKK+eViSA+IGbDujsgIzc1NDkKK+eViiA+IGfEk25nOyAjNzU0QQor55WLID4gdGnDoW47ICM3NTRCCivnlYwgPiBqacOoOyAjNzU0Qwor55WNID4gamnDqDsgIzc1NEQKK+eVjiA+IHF1xINuOyAjNzU0RQor55WPID4gd8OoaTsgIzc1NEYKK+eVkCA+IGbDujsgIzc1NTAKK+eVkSA+IHRpw6FuOyAjNzU1MQor55WSID4gbcWtOyAjNzU1Mgor55WUID4gcMOgbjsgIzc1NTQKK+eVlSA+IGppxIFuZzsgIzc1NTUKK+eVliA+IHfEgTsgIzc1NTYKK+eVlyA+IGTDoTsgIzc1NTcKK+eVmCA+IG7DoW47ICM3NTU4CivnlZkgPiBsw611OyAjNzU1OQor55WaID4gYsSVbjsgIzc1NUEKK+eVmyA+IHpoxJVuOyAjNzU1Qgor55WcID4gY2jDuTsgIzc1NUMKK+eVnSA+IG3FrTsgIzc1NUQKK+eVniA+IG3FrTsgIzc1NUUKK+eVnyA+IGPDqDsgIzc1NUYKK+eVoSA+IGfEgWk7ICM3NTYxCivnlaIgPiBiw6w7ICM3NTYyCivnlaMgPiBkw6E7ICM3NTYzCivnlaQgPiB6aMOsOyAjNzU2NAor55WlID4gbMecZTsgIzc1NjUKK+eVpiA+IHHDrTsgIzc1NjYKK+eVpyA+IGzHnGU7ICM3NTY3CivnlaggPiBwxIFuOyAjNzU2OAor55WqID4gZsSBbjsgIzc1NkEKK+eVqyA+IGh1w6A7ICM3NTZCCivnlawgPiB5w7o7ICM3NTZDCivnla0gPiB5w7o7ICM3NTZECivnla4gPiBtxa07ICM3NTZFCivnla8gPiBqw7luOyAjNzU2Rgor55WwID4gecOsOyAjNzU3MAor55WxID4gbMOtdTsgIzc1NzEKK+eVsiA+IHnDujsgIzc1NzIKK+eVsyA+IGRpw6k7ICM3NTczCivnlbQgPiBjaMOzdTsgIzc1NzQKK+eVtSA+IGh1w6A7ICM3NTc1CivnlbYgPiBkxIFuZzsgIzc1NzYKK+eVtyA+IGNow7lvOyAjNzU3Nwor55W4ID4gasSrOyAjNzU3OAor55W5ID4gd8SDbjsgIzc1NzkKK+eVuiA+IGppxIFuZzsgIzc1N0EKK+eVuyA+IHNow6luZzsgIzc1N0IKK+eVvCA+IGNow6BuZzsgIzc1N0MKK+eVvSA+IHR1xINuOyAjNzU3RAor55W+ID4gbMOpaTsgIzc1N0UKK+eVvyA+IGrEqzsgIzc1N0YKK+eWgCA+IGNoxIE7ICM3NTgwCivnloEgPiBsw611OyAjNzU4MQor55aDID4gdHXEg247ICM3NTgzCivnloQgPiBsw61uOyAjNzU4NAor55aFID4gamnEgW5nOyAjNzU4NQor55aGID4gamnEgW5nOyAjNzU4Ngor55aHID4gY2jDs3U7ICM3NTg3CivnloggPiBiw7I7ICM3NTg4CivnlokgPiBkacOpOyAjNzU4OQor55aKID4gZGnDqTsgIzc1OEEKK+eWiyA+IHDErTsgIzc1OEIKK+eWjCA+IG5pw6g7ICM3NThDCivnlo0gPiBkw6BuOyAjNzU4RAor55aOID4gc2jFqzsgIzc1OEUKK+eWjyA+IHNoxas7ICM3NThGCivnlpAgPiB6aMOsOyAjNzU5MAor55aRID4gecOtOyAjNzU5MQor55aSID4gY2h1w6FuZzsgIzc1OTIKK+eWkyA+IG7Eg2k7ICM3NTkzCivnlpQgPiBkxKtuZzsgIzc1OTQKK+eWlSA+IGLErTsgIzc1OTUKK+eWliA+IGppw6k7ICM3NTk2CivnlpcgPiBsacOhbzsgIzc1OTcKK+eWmCA+IGfFjW5nOyAjNzU5OAor55aZID4gZ8STOyAjNzU5OQor55aaID4gasOsdTsgIzc1OUEKK+eWmyA+IHpoxY91OyAjNzU5Qgor55acID4geGnDoDsgIzc1OUMKK+eWnSA+IHNow6BuOyAjNzU5RAor55aeID4geMWrOyAjNzU5RQor55afID4gbsecZTsgIzc1OUYKK+eWoCA+IGzDrDsgIzc1QTAKK+eWoSA+IHnDoW5nOyAjNzVBMQor55aiID4gY2jDqG47ICM3NUEyCivnlqMgPiB5w7N1OyAjNzVBMwor55akID4gYsSBOyAjNzVBNAor55alID4gamnDqDsgIzc1QTUKK+eWpiA+IGp1w6k7ICM3NUE2CivnlqcgPiB6aMSrOyAjNzVBNwor55aoID4geGnEgTsgIzc1QTgKK+eWqSA+IGPDuWk7ICM3NUE5CivnlqogPiBiw6w7ICM3NUFBCivnlqsgPiB5w6w7ICM3NUFCCivnlqwgPiBsw6w7ICM3NUFDCivnlq0gPiB6w7JuZzsgIzc1QUQKK+eWriA+IGNodcSBbmc7ICM3NUFFCivnlq8gPiBmxJNuZzsgIzc1QUYKK+eWsCA+IHpow7k7ICM3NUIwCivnlrEgPiBww6BvOyAjNzVCMQor55ayID4gcMOtOyAjNzVCMgor55azID4gZ8SBbjsgIzc1QjMKK+eWtCA+IGvEkzsgIzc1QjQKK+eWtSA+IGPEqzsgIzc1QjUKK+eWtiA+IHhpw6g7ICM3NUI2CivnlrcgPiBxw607ICM3NUI3CivnlrggPiBkxINuOyAjNzVCOAor55a5ID4gemjElW47ICM3NUI5CivnlrogPiBmw6E7ICM3NUJBCivnlrsgPiB6aMStOyAjNzVCQgor55a8ID4gdMOpbmc7ICM3NUJDCivnlr0gPiBqxas7ICM3NUJECivnlr4gPiBqw607ICM3NUJFCivnlr8gPiBmw6hpOyAjNzVCRgor55eAID4gccO6OyAjNzVDMAor55eBID4gZGnDoG47ICM3NUMxCivnl4IgPiBqacSBOyAjNzVDMgor55eDID4geGnDoW47ICM3NUMzCivnl4QgPiBjaMOhOyAjNzVDNAor55eFID4gYsOsbmc7ICM3NUM1Civnl4YgPiBuw6w7ICM3NUM2Civnl4cgPiB6aMOobmc7ICM3NUM3Civnl4ggPiB5xY1uZzsgIzc1QzgKK+eXiSA+IGrDrG5nOyAjNzVDOQor55eKID4gcXXDoW47ICM3NUNBCivnl4sgPiBjaMOzbmc7ICM3NUNCCivnl4wgPiB0xY1uZzsgIzc1Q0MKK+eXjSA+IHnDrTsgIzc1Q0QKK+eXjiA+IGvEgWk7ICM3NUNFCivnl48gPiB3xJVpOyAjNzVDRgor55eQID4gaMO6aTsgIzc1RDAKK+eXkSA+IGTFrW87ICM3NUQxCivnl5IgPiB5xINuZzsgIzc1RDIKK+eXkyA+IGNow6w7ICM3NUQzCivnl5QgPiB6aMOsOyAjNzVENAor55eVID4gaMOpbjsgIzc1RDUKK+eXliA+IHnEgzsgIzc1RDYKK+eXlyA+IG3DqGk7ICM3NUQ3Civnl5ggPiBkw7J1OyAjNzVEOAor55eZID4gasOsbmc7ICM3NUQ5Civnl5ogPiB4acSBbzsgIzc1REEKK+eXmyA+IHTDsm5nOyAjNzVEQgor55ecID4gdMWrOyAjNzVEQwor55edID4gbcOhbmc7ICM3NURECivnl54gPiBwxK07ICM3NURFCivnl58gPiB4acSBbzsgIzc1REYKK+eXoCA+IHN1xIFuOyAjNzVFMAor55ehID4gcMWrOyAjNzVFMQor55eiID4gbMOsOyAjNzVFMgor55ejID4gemjDrDsgIzc1RTMKK+eXpCA+IGPDum87ICM3NUU0Civnl6UgPiBkw7pvOyAjNzVFNQor55emID4gd8O5OyAjNzVFNgor55enID4gc2jEgTsgIzc1RTcKK+eXqCA+IGzDoW87ICM3NUU4Civnl6kgPiBzaMOydTsgIzc1RTkKK+eXqiA+IGh1w6BuOyAjNzVFQQor55erID4geGnDoW47ICM3NUVCCivnl6wgPiB5w6w7ICM3NUVDCivnl60gPiBww6luZzsgIzc1RUQKK+eXriA+IHpow6BuZzsgIzc1RUUKK+eXryA+IGd1xINuOyAjNzVFRgor55ewID4gdMOhbjsgIzc1RjAKK+eXsSA+IGbDqGk7ICM3NUYxCivnl7IgPiBtw6E7ICM3NUYyCivnl7MgPiBsw61uOyAjNzVGMwor55e0ID4gY2jEqzsgIzc1RjQKK+eXtSA+IGrDrDsgIzc1RjUKK+eXtiA+IGRpxINuOyAjNzVGNgor55e3ID4gxIFuOyAjNzVGNwor55e4ID4gY2jDrDsgIzc1RjgKK+eXuSA+IGLDrDsgIzc1RjkKK+eXuiA+IGLEk2k7ICM3NUZBCivnl7sgPiBtw61uOyAjNzVGQgor55e8ID4gZ8WrOyAjNzVGQwor55e9ID4gZMWraTsgIzc1RkQKK+eXviA+IMSTOyAjNzVGRQor55e/ID4gd8SVaTsgIzc1RkYKK+eYgCA+IHnFqzsgIzc2MDAKK+eYgSA+IGPDuWk7ICM3NjAxCivnmIIgPiB5xIM7ICM3NjAyCivnmIMgPiB6aMWtOyAjNzYwMwor55iEID4gY8O5OyAjNzYwNAor55iFID4gZMOgbjsgIzc2MDUKK+eYhiA+IHNow6huOyAjNzYwNgor55iHID4gemjFrW5nOyAjNzYwNwor55iIID4gasOsOyAjNzYwOAor55iJID4gecO5OyAjNzYwOQor55iKID4gaMOzdTsgIzc2MEEKK+eYiyA+IGbEk25nOyAjNzYwQgor55iMID4gbMOgOyAjNzYwQwor55iNID4gecOhbmc7ICM3NjBECivnmI4gPiBzaMOobjsgIzc2MEUKK+eYjyA+IHTDujsgIzc2MEYKK+eYkCA+IHnFrTsgIzc2MTAKK+eYkSA+IGd1xIE7ICM3NjExCivnmJIgPiB3w6luOyAjNzYxMgor55iTID4gaHXDoG47ICM3NjEzCivnmJQgPiBrw7k7ICM3NjE0CivnmJUgPiBqacSDOyAjNzYxNQor55iWID4gecSrbjsgIzc2MTYKK+eYlyA+IHnDrDsgIzc2MTcKK+eYmCA+IGzHmDsgIzc2MTgKK+eYmSA+IHPEgW87ICM3NjE5CivnmJogPiBqdcOpOyAjNzYxQQor55ibID4gY2jDrDsgIzc2MUIKK+eYnCA+IHjDrTsgIzc2MUMKK+eYnSA+IGd1xIFuOyAjNzYxRAor55ieID4gecOsOyAjNzYxRQor55ifID4gd8STbjsgIzc2MUYKK+eYoCA+IGrDrTsgIzc2MjAKK+eYoSA+IGNodcSBbmc7ICM3NjIxCivnmKIgPiBixIFuOyAjNzYyMgor55ijID4gbMSVaTsgIzc2MjMKK+eYpCA+IGzDrXU7ICM3NjI0CivnmKUgPiBjaMOgaTsgIzc2MjUKK+eYpiA+IHNow7J1OyAjNzYyNgor55inID4gbsecZTsgIzc2MjcKK+eYqCA+IGRpxIFuOyAjNzYyOAor55ipID4gZMSBOyAjNzYyOQor55iqID4gcGnEkzsgIzc2MkEKK+eYqyA+IHTEgW47ICM3NjJCCivnmKwgPiB6aMOgbmc7ICM3NjJDCivnmK0gPiBiacSBbzsgIzc2MkQKK+eYriA+IHNoZW47ICM3NjJFCivnmK8gPiBjw7k7ICM3NjJGCivnmLAgPiBsxa1vOyAjNzYzMAor55ixID4gecOsOyAjNzYzMQor55iyID4gesOybmc7ICM3NjMyCivnmLMgPiBjaMWNdTsgIzc2MzMKK+eYtCA+IHpow6BuZzsgIzc2MzQKK+eYtSA+IHpow6BpOyAjNzYzNQor55i2ID4gc8OydTsgIzc2MzYKK+eYtyA+IHPFrW87ICM3NjM3CivnmLggPiBxdcOpOyAjNzYzOAor55i5ID4gZGnDoG87ICM3NjM5CivnmLogPiBsw7J1OyAjNzYzQQor55i7ID4gbMeYOyAjNzYzQgor55i8ID4gbcOyOyAjNzYzQwor55i9ID4gasOsbjsgIzc2M0QKK+eYviA+IHnErW47ICM3NjNFCivnmL8gPiB5xK1uZzsgIzc2M0YKK+eZgCA+IGh1w6FuZzsgIzc2NDAKK+eZgSA+IGbDujsgIzc2NDEKK+eZgiA+IGxpw6FvOyAjNzY0Mgor55mDID4gbMOzbmc7ICM3NjQzCivnmYQgPiBxacOhbzsgIzc2NDQKK+eZhSA+IGzDrXU7ICM3NjQ1CivnmYYgPiBsw6FvOyAjNzY0Ngor55mHID4geGnDoW47ICM3NjQ3CivnmYggPiBmw6hpOyAjNzY0OAor55mJID4gZMOgbjsgIzc2NDkKK+eZiiA+IHnDrG47ICM3NjRBCivnmYsgPiBow6g7ICM3NjRCCivnmYwgPiB5w6FuOyAjNzY0Qwor55mNID4gYsSBbjsgIzc2NEQKK+eZjiA+IHhpw6FuOyAjNzY0RQor55mPID4gZ3XEgW47ICM3NjRGCivnmZAgPiBndcOgaTsgIzc2NTAKK+eZkSA+IG7Ds25nOyAjNzY1MQor55mSID4gecO5OyAjNzY1Mgor55mTID4gd8OpaTsgIzc2NTMKK+eZlCA+IHnDrDsgIzc2NTQKK+eZlSA+IHnFjW5nOyAjNzY1NQor55mWID4gcMStOyAjNzY1Ngor55mXID4gbMSVaTsgIzc2NTcKK+eZmCA+IGzDrDsgIzc2NTgKK+eZmSA+IHNoxa07ICM3NjU5CivnmZogPiBkw6BuOyAjNzY1QQor55mbID4gbMStbjsgIzc2NUIKK+eZnCA+IGRpw6BuOyAjNzY1Qwor55mdID4gbMStbjsgIzc2NUQKK+eZniA+IGzDoGk7ICM3NjVFCivnmZ8gPiBwacSTOyAjNzY1Rgor55mgID4gasOsOyAjNzY2MAor55mhID4gY2jEqzsgIzc2NjEKK+eZoiA+IHnEg25nOyAjNzY2Mgor55mjID4geGnEg247ICM3NjYzCivnmaQgPiBqacOpOyAjNzY2NAor55mlID4gemjEk25nOyAjNzY2NQor55mnID4gbMOsOyAjNzY2Nwor55moID4gaMO5bzsgIzc2NjgKK+eZqSA+IGzDoGk7ICM3NjY5CivnmasgPiBkacSBbjsgIzc2NkIKK+eZrCA+IHhpxINuOyAjNzY2Qwor55mtID4gecStbmc7ICM3NjZECivnma4gPiB5xK1uOyAjNzY2RQor55mvID4gccO6OyAjNzY2Rgor55mwID4gecWNbmc7ICM3NjcwCivnmbEgPiB0xIFuOyAjNzY3MQor55myID4gZGnEgW47ICM3NjcyCivnmbMgPiBsxa1vOyAjNzY3Mwor55m0ID4gbMeYYW47ICM3Njc0CivnmbUgPiBsdcOhbjsgIzc2NzUKK+eZtiA+IGLFjTsgIzc2NzYKK+eZuCA+IGfFrWk7ICM3Njc4CivnmbkgPiBwxY07ICM3Njc5CivnmbogPiBmxIE7ICM3NjdBCivnmbsgPiBkxJNuZzsgIzc2N0IKK+eZvCA+IGbEgTsgIzc2N0MKK+eZvSA+IGLDoWk7ICM3NjdECivnmb4gPiBixINpOyAjNzY3RQor55m/ID4gcWnDqTsgIzc2N0YKK+eagCA+IGLEqzsgIzc2ODAKK+eagSA+IHrDoG87ICM3NjgxCivnmoIgPiB6w6BvOyAjNzY4Mgor55qDID4gbcOgbzsgIzc2ODMKK+eahCA+IGRlOyAjNzY4NAor55qFID4gcMSBOyAjNzY4NQor55qGID4gamnEkzsgIzc2ODYKK+eahyA+IGh1w6FuZzsgIzc2ODcKK+eaiCA+IGfFq2k7ICM3Njg4CivnmokgPiBjxK07ICM3Njg5CivnmoogPiBsw61uZzsgIzc2OEEKK+eaiyA+IGfEgW87ICM3NjhCCivnmowgPiBtw7I7ICM3NjhDCivnmo0gPiBqw607ICM3NjhECivnmo4gPiBqacSDbzsgIzc2OEUKK+eajyA+IHDElW5nOyAjNzY4Rgor55qQID4gZ8SBbzsgIzc2OTAKK+eakSA+IMOhaTsgIzc2OTEKK+eakiA+IMOpOyAjNzY5Mgor55qTID4gaMOgbzsgIzc2OTMKK+ealCA+IGjDoG47ICM3Njk0CivnmpUgPiBixKs7ICM3Njk1CivnmpYgPiB3xINuOyAjNzY5Ngor55qXID4gY2jDs3U7ICM3Njk3CivnmpggPiBxacOgbjsgIzc2OTgKK+eamSA+IHjEqzsgIzc2OTkKK+eamiA+IMOhaTsgIzc2OUEKK+eamyA+IGrErW9uZzsgIzc2OUIKK+eanCA+IGjDoG87ICM3NjlDCivnmp0gPiBodcSDbmc7ICM3NjlECivnmp4gPiBow6BvOyAjNzY5RQor55qfID4gesOpOyAjNzY5Rgor55qgID4gY8WtaTsgIzc2QTAKK+eaoSA+IGjDoG87ICM3NkExCivnmqIgPiB4acSDbzsgIzc2QTIKK+eaoyA+IHnDqDsgIzc2QTMKK+eapCA+IHDDszsgIzc2QTQKK+eapSA+IGjDoG87ICM3NkE1CivnmqYgPiBqacSDbzsgIzc2QTYKK+eapyA+IMOgaTsgIzc2QTcKK+eaqCA+IHjEq25nOyAjNzZBOAor55qpID4gaHXDoG5nOyAjNzZBOQor55qqID4gbMOsOyAjNzZBQQor55qrID4gcGnEg287ICM3NkFCCivnmqwgPiBow6g7ICM3NkFDCivnmq0gPiBqacOgbzsgIzc2QUQKK+eariA+IHDDrTsgIzc2QUUKK+earyA+IGfEg247ICM3NkFGCivnmrAgPiBww6BvOyAjNzZCMAor55qxID4gemjDsnU7ICM3NkIxCivnmrIgPiBqxatuOyAjNzZCMgor55qzID4gccOtdTsgIzc2QjMKK+eatCA+IGPFq247ICM3NkI0CivnmrUgPiBxdcOoOyAjNzZCNQor55q2ID4gemjEgTsgIzc2QjYKK+eatyA+IGfFrTsgIzc2QjcKK+eauCA+IGrFq247ICM3NkI4CivnmrkgPiBqxatuOyAjNzZCOQor55q6ID4gemjDsnU7ICM3NkJBCivnmrsgPiB6aMSBOyAjNzZCQgor55q8ID4gZ8WtOyAjNzZCQwor55q9ID4gemjEg247ICM3NkJECivnmr4gPiBkw7o7ICM3NkJFCivnmr8gPiBtxK1uOyAjNzZCRgor55uAID4gccStOyAjNzZDMAor55uBID4gecOtbmc7ICM3NkMxCivnm4IgPiB5w7o7ICM3NkMyCivnm4MgPiBixJNpOyAjNzZDMwor55uEID4gemjEgW87ICM3NkM0Civnm4UgPiB6aMWNbmc7ICM3NkM1Civnm4YgPiBww6luOyAjNzZDNgor55uHID4gaMOpOyAjNzZDNwor55uIID4gecOtbmc7ICM3NkM4Civnm4kgPiBow6k7ICM3NkM5Civnm4ogPiB5w6w7ICM3NkNBCivnm4sgPiBixY07ICM3NkNCCivnm4wgPiB3xINuOyAjNzZDQwor55uNID4gaMOpOyAjNzZDRAor55uOID4gw6BuZzsgIzc2Q0UKK+ebjyA+IHpoxINuOyAjNzZDRgor55uQID4gecOhbjsgIzc2RDAKK+ebkSA+IGppxIFuOyAjNzZEMQor55uSID4gaMOpOyAjNzZEMgor55uTID4gecWrOyAjNzZEMwor55uUID4ga8WraTsgIzc2RDQKK+eblSA+IGbDoG47ICM3NkQ1Civnm5YgPiBnw6BpOyAjNzZENgor55uXID4gZMOgbzsgIzc2RDcKK+ebmCA+IHDDoW47ICM3NkQ4Civnm5kgPiBmxa07ICM3NkQ5Civnm5ogPiBxw611OyAjNzZEQQor55ubID4gc2jDqG5nOyAjNzZEQgor55ucID4gZMOgbzsgIzc2REMKK+ebnSA+IGzDuTsgIzc2REQKK+ebniA+IHpoxINuOyAjNzZERQor55ufID4gbcOpbmc7ICM3NkRGCivnm6AgPiBsxK07ICM3NkUwCivnm6EgPiBqw6xuOyAjNzZFMQor55uiID4geMO5OyAjNzZFMgor55ujID4gamnEgW47ICM3NkUzCivnm6QgPiBww6FuOyAjNzZFNAor55ulID4gZ3XDoG47ICM3NkU1Civnm6YgPiDEgW47ICM3NkU2Civnm6cgPiBsw7o7ICM3NkU3Civnm6ggPiBzaMWtOyAjNzZFOAor55upID4gemjFjXU7ICM3NkU5Civnm6ogPiBkw6BuZzsgIzc2RUEKK+ebqyA+IMSBbjsgIzc2RUIKK+ebrCA+IGfFrTsgIzc2RUMKK+ebrSA+IGzDrDsgIzc2RUQKK+ebriA+IG3DuTsgIzc2RUUKK+ebryA+IGNow6luZzsgIzc2RUYKK+ebsCA+IGfEg247ICM3NkYwCivnm7EgPiB4xas7ICM3NkYxCivnm7IgPiBtw6FuZzsgIzc2RjIKK+ebsyA+IG3DoW5nOyAjNzZGMwor55u0ID4gemjDrTsgIzc2RjQKK+ebtSA+IHHDrDsgIzc2RjUKK+ebtiA+IHJ1xINuOyAjNzZGNgor55u3ID4gdGnDoW47ICM3NkY3Civnm7ggPiB4acSBbmc7ICM3NkY4Civnm7kgPiBkw7luOyAjNzZGOQor55u6ID4geMSrbjsgIzc2RkEKK+ebuyA+IHjDrDsgIzc2RkIKK+ebvCA+IHDDoG47ICM3NkZDCivnm70gPiBmxJNuZzsgIzc2RkQKK+ebviA+IGTDuW47ICM3NkZFCivnm78gPiBtw61uOyAjNzZGRgor55yAID4gbcOtbmc7ICM3NzAwCivnnIEgPiBzaMSVbmc7ICM3NzAxCivnnIIgPiBzaMOsOyAjNzcwMgor55yDID4gecO6bjsgIzc3MDMKK+echCA+IG1pxINuOyAjNzcwNAor55yFID4gcMSBbjsgIzc3MDUKK+echiA+IGbEg25nOyAjNzcwNgor55yHID4gbWnEg287ICM3NzA3CivnnIggPiBkxIFuOyAjNzcwOAor55yJID4gbcOpaTsgIzc3MDkKK+eciiA+IG3DoG87ICM3NzBBCivnnIsgPiBrw6BuOyAjNzcwQgor55yMID4geGnDoG47ICM3NzBDCivnnI0gPiDFjXU7ICM3NzBECivnnI4gPiBzaMOsOyAjNzcwRQor55yPID4gecSBbmc7ICM3NzBGCivnnJAgPiB6aMSTbmc7ICM3NzEwCivnnJEgPiB5xINvOyAjNzcxMQor55ySID4gc2jDqG47ICM3NzEyCivnnJMgPiBow7lvOyAjNzcxMwor55yUID4gZMOgOyAjNzcxNAor55yVID4gemjElW47ICM3NzE1CivnnJYgPiBrdcOgbmc7ICM3NzE2CivnnJcgPiBqxas7ICM3NzE3CivnnJggPiBzaMOobjsgIzc3MTgKK+ecmSA+IGNow6w7ICM3NzE5CivnnJogPiBzaMSVbmc7ICM3NzFBCivnnJsgPiBtw6hpOyAjNzcxQgor55ycID4gbcOyOyAjNzcxQwor55ydID4gemjDuTsgIzc3MUQKK+ecniA+IHpoxJNuOyAjNzcxRQor55yfID4gemjEk247ICM3NzFGCivnnKAgPiBtacOhbjsgIzc3MjAKK+ecoSA+IGTEqzsgIzc3MjEKK+ecoiA+IHl1xIFuOyAjNzcyMgor55yjID4gZGnDqTsgIzc3MjMKK+ecpCA+IHnDrTsgIzc3MjQKK+ecpSA+IHrDrDsgIzc3MjUKK+ecpiA+IHrDrDsgIzc3MjYKK+ecpyA+IGNoxINvOyAjNzcyNwor55yoID4gemjEgzsgIzc3MjgKK+ecqSA+IHh1w6BuOyAjNzcyOQor55yqID4gYsStbmc7ICM3NzJBCivnnKsgPiBtxK07ICM3NzJCCivnnKwgPiBsw7NuZzsgIzc3MkMKK+ecrSA+IHPFq2k7ICM3NzJECivnnK4gPiBkw7JuZzsgIzc3MkUKK+ecryA+IG3ErTsgIzc3MkYKK+ecsCA+IGRpw6k7ICM3NzMwCivnnLEgPiB5w607ICM3NzMxCivnnLIgPiDDqHI7ICM3NzMyCivnnLMgPiBtxK1uZzsgIzc3MzMKK+ectCA+IHh1w6BuOyAjNzczNAor55y1ID4gY2jEqzsgIzc3MzUKK+ectiA+IGt1w6BuZzsgIzc3MzYKK+ectyA+IGp1w6BuOyAjNzczNwor55y4ID4gbcOzdTsgIzc3MzgKK+ecuSA+IHpow6huOyAjNzczOQor55y6ID4gdGnDoG87ICM3NzNBCivnnLsgPiB5w6FuZzsgIzc3M0IKK+ecvCA+IHnEg247ICM3NzNDCivnnL0gPiBtw7I7ICM3NzNECivnnL4gPiB6aMOybmc7ICM3NzNFCivnnL8gPiBtw6BpOyAjNzczRgor552AID4gemjDoW87ICM3NzQwCivnnYEgPiB6aMSTbmc7ICM3NzQxCivnnYIgPiBtw6lpOyAjNzc0Mgor552DID4gasO5bjsgIzc3NDMKK+edhCA+IHNow6BvOyAjNzc0NAor552FID4gaMOgbjsgIzc3NDUKK+edhiA+IGh1xINuOyAjNzc0Ngor552HID4gZMOsOyAjNzc0Nwor552IID4gY2jElW5nOyAjNzc0OAor552JID4gY8WrbzsgIzc3NDkKK+ediiA+IGp1w6BuOyAjNzc0QQor552LID4gw6k7ICM3NzRCCivnnYwgPiB3xINuOyAjNzc0Qwor552NID4geGnDoG47ICM3NzRECivnnY4gPiB4xKs7ICM3NzRFCivnnY8gPiBrw7luOyAjNzc0Rgor552QID4gbMOgaTsgIzc3NTAKK+edkSA+IGppxINuOyAjNzc1MQor552SID4gc2jEg247ICM3NzUyCivnnZMgPiB0acSDbjsgIzc3NTMKK+edlCA+IGjFrW47ICM3NzU0CivnnZUgPiB3xINuOyAjNzc1NQor552WID4gbMOtbmc7ICM3NzU2CivnnZcgPiBzaMOsOyAjNzc1Nwor552YID4gccOtb25nOyAjNzc1OAor552ZID4gbGnDqDsgIzc3NTkKK+edmiA+IHnDoWk7ICM3NzVBCivnnZsgPiBqxKtuZzsgIzc3NUIKK+ednCA+IHpoxJNuZzsgIzc3NUMKK+ednSA+IGzDrTsgIzc3NUQKK+edniA+IGzDoGk7ICM3NzVFCivnnZ8gPiBzw7lpOyAjNzc1Rgor552gID4ganXDoG47ICM3NzYwCivnnaEgPiBzaMO5aTsgIzc3NjEKK+edoiA+IHPFq2k7ICM3NzYyCivnnaMgPiBkxas7ICM3NzYzCivnnaQgPiBiw6w7ICM3NzY0CivnnaUgPiBiw6w7ICM3NzY1CivnnaYgPiBtw7k7ICM3NzY2CivnnacgPiBoxatuOyAjNzc2Nwor552oID4gbsOsOyAjNzc2OAor552pID4gbMO5OyAjNzc2OQor552qID4gecOsOyAjNzc2QQor552rID4gamnDqTsgIzc3NkIKK+edrCA+IGPEg2k7ICM3NzZDCivnna0gPiB6aMWPdTsgIzc3NkQKK+edriA+IHnDujsgIzc3NkUKK+edryA+IGjFq247ICM3NzZGCivnnbAgPiBtw6A7ICM3NzcwCivnnbEgPiB4acOgOyAjNzc3MQor552yID4geMStbmc7ICM3NzcyCivnnbMgPiB4xKs7ICM3NzczCivnnbQgPiBnw7luOyAjNzc3NAor5521ID4gY2FpOyAjNzc3NQor5522ID4gY2jFrW47ICM3Nzc2CivnnbcgPiBqacSBbjsgIzc3NzcKK+eduCA+IG3DqGk7ICM3Nzc4CivnnbkgPiBkxa07ICM3Nzc5CivnnbogPiBow7N1OyAjNzc3QQor5527ID4geHXEgW47ICM3NzdCCivnnbwgPiB0w6w7ICM3NzdDCivnnb0gPiBrw7ppOyAjNzc3RAor552+ID4gZ8SBbzsgIzc3N0UKK+edvyA+IHLDuWk7ICM3NzdGCivnnoAgPiBtw7J1OyAjNzc4MAor556BID4geMO5OyAjNzc4MQor556CID4gZsSBOyAjNzc4Mgor556DID4gd8STbjsgIzc3ODMKK+eehCA+IG1pw6FvOyAjNzc4NAor556FID4gY2jFj3U7ICM3Nzg1CivnnoYgPiBrw7lpOyAjNzc4Ngor556HID4gbcSrOyAjNzc4Nwor556IID4gd8SVbmc7ICM3Nzg4CivnnokgPiBrw7J1OyAjNzc4OQor556KID4gZMOgbmc7ICM3NzhBCivnnosgPiBjaMSTbjsgIzc3OEIKK+eejCA+IGvEkzsgIzc3OEMKK+eejSA+IHPFj3U7ICM3NzhECivnno4gPiB4acSBOyAjNzc4RQor556PID4gccOtb25nOyAjNzc4Rgor556QID4gbcOgbzsgIzc3OTAKK+eekSA+IG3DrW5nOyAjNzc5MQor556SID4gbcOhbjsgIzc3OTIKK+eekyA+IHNow7lpOyAjNzc5Mwor556UID4gesOpOyAjNzc5NAor556VID4gemjDoG5nOyAjNzc5NQor556WID4gecOsOyAjNzc5Ngor556XID4gZGnEgW87ICM3Nzk3CivnnpggPiDFjXU7ICM3Nzk4CivnnpkgPiBtw7I7ICM3Nzk5CivnnpogPiBzaMO5bjsgIzc3OUEKK+eemyA+IGPFjW5nOyAjNzc5Qgor556cID4gbMWNdTsgIzc3OUMKK+eenSA+IGNoxKs7ICM3NzlECivnnp4gPiBtw6FuOyAjNzc5RQor556fID4gcGnEg287ICM3NzlGCivnnqAgPiBjaMSTbmc7ICM3N0EwCivnnqEgPiBqw6w7ICM3N0ExCivnnqIgPiBtw6luZzsgIzc3QTIKK+eepCA+IHLDum47ICM3N0E0CivnnqUgPiBwacSTOyAjNzdBNQor556mID4geMSrOyAjNzdBNgor556nID4gcWnDoW87ICM3N0E3CivnnqggPiBww7o7ICM3N0E4CivnnqkgPiB6aMWtOyAjNzdBOQor556qID4gZMOobmc7ICM3N0FBCivnnqsgPiBzaMSVbjsgIzc3QUIKK+eerCA+IHNow7luOyAjNzdBQwor556tID4gbGnEg287ICM3N0FECivnnq4gPiBjaMOoOyAjNzdBRQor556vID4geGnDoW47ICM3N0FGCivnnrAgPiBrw6BuOyAjNzdCMAor556xID4gecOoOyAjNzdCMQor556yID4geMO5OyAjNzdCMgor556zID4gdMOzbmc7ICM3N0IzCivnnrQgPiBtw7N1OyAjNzdCNAor5561ID4gbMOtbjsgIzc3QjUKK+eetiA+IGvDuWk7ICM3N0I2CivnnrcgPiB4acOhbjsgIzc3QjcKK+eeuCA+IHnDqDsgIzc3QjgKK+eeuSA+IMOgaTsgIzc3QjkKK+eeuiA+IGjDuWk7ICM3N0JBCivnnrsgPiB6aMSBbjsgIzc3QkIKK+eevCA+IGppxINuOyAjNzdCQwor5569ID4gZ8WtOyAjNzdCRAor556+ID4gemjDoG87ICM3N0JFCivnnr8gPiBxxas7ICM3N0JGCivnn4AgPiB3w6lpOyAjNzdDMAor55+BID4gY2jFj3U7ICM3N0MxCivnn4IgPiBzw6BvOyAjNzdDMgor55+DID4gbsStbmc7ICM3N0MzCivnn4QgPiB4xatuOyAjNzdDNAor55+FID4gecOgbzsgIzc3QzUKK+efhiA+IGjDuW87ICM3N0M2Civnn4cgPiBtw6luZzsgIzc3QzcKK+efiCA+IG1pw6FuOyAjNzdDOAor55+JID4gYsSrbjsgIzc3QzkKK+efiiA+IG1pw6FuOyAjNzdDQQor55+LID4gbMOsOyAjNzdDQgor55+MID4ga3XDoG5nOyAjNzdDQwor55+NID4ganXDqTsgIzc3Q0QKK+efjiA+IHh1xIFuOyAjNzdDRQor55+PID4gbWnDoW47ICM3N0NGCivnn5AgPiBow7lvOyAjNzdEMAor55+RID4gbMO6OyAjNzdEMQor55+SID4gbcOpbmc7ICM3N0QyCivnn5MgPiBsw7NuZzsgIzc3RDMKK+eflCA+IGd1w6BuOyAjNzdENAor55+VID4gbcSDbjsgIzc3RDUKK+efliA+IHjErTsgIzc3RDYKK+eflyA+IGNow7k7ICM3N0Q3Civnn5ggPiB0xINuZzsgIzc3RDgKK+efmSA+IGvDoG47ICM3N0Q5Civnn5ogPiB6aMWtOyAjNzdEQQor55+bID4gbcOhbzsgIzc3REIKK+efnCA+IGrEq247ICM3N0RDCivnn50gPiBsw61uOyAjNzdERAor55+eID4gecO5OyAjNzdERQor55+fID4gc2jDuW87ICM3N0RGCivnn6AgPiBjw6g7ICM3N0UwCivnn6EgPiBqdcOpOyAjNzdFMQor55+iID4gc2jErTsgIzc3RTIKK+efoyA+IHnErTsgIzc3RTMKK+efpCA+IHNoxJVuOyAjNzdFNAor55+lID4gemjEqzsgIzc3RTUKK+efpiA+IGjDs3U7ICM3N0U2Civnn6cgPiBzaMSVbjsgIzc3RTcKK+efqCA+IHnErW5nOyAjNzdFOAor55+pID4gasWtOyAjNzdFOQor55+qID4gemjFjXU7ICM3N0VBCivnn6sgPiBqacSDbzsgIzc3RUIKK+efrCA+IGPDum87ICM3N0VDCivnn60gPiBkdcSDbjsgIzc3RUQKK+efriA+IMSDaTsgIzc3RUUKK+efryA+IGppxINvOyAjNzdFRgor55+wID4gesSTbmc7ICM3N0YwCivnn7EgPiBow7lvOyAjNzdGMQor55+yID4gYsSDaTsgIzc3RjIKK+efsyA+IHNow607ICM3N0YzCivnn7QgPiBkw6xuZzsgIzc3RjQKK+eftSA+IHHDrDsgIzc3RjUKK+eftiA+IGrEqzsgIzc3RjYKK+eftyA+IHrErTsgIzc3RjcKK+efuCA+IGfEgW47ICM3N0Y4Civnn7kgPiB3w7k7ICM3N0Y5Civnn7ogPiB0xatvOyAjNzdGQQor55+7ID4ga8O5OyAjNzdGQgor55+8ID4gcWnEgW5nOyAjNzdGQwor55+9ID4geMOsOyAjNzdGRAor55++ID4gZsOhbjsgIzc3RkUKK+efvyA+IGt1w6BuZzsgIzc3RkYKK+eggCA+IGTDoG5nOyAjNzgwMAor56CBID4gbcSDOyAjNzgwMQor56CCID4gc2jEgTsgIzc4MDIKK+eggyA+IGTEgW47ICM3ODAzCivnoIQgPiBqdcOpOyAjNzgwNAor56CFID4gbMOsOyAjNzgwNQor56CGID4gZsWrOyAjNzgwNgor56CHID4gbcOtbjsgIzc4MDcKK+egiCA+IG7FrW87ICM3ODA4CivnoIkgPiBow7lvOyAjNzgwOQor56CKID4ga8Ogbmc7ICM3ODBBCivnoIsgPiB6aMStOyAjNzgwQgor56CMID4gccOsOyAjNzgwQwor56CNID4ga8SDbjsgIzc4MEQKK+egjiA+IGppw6g7ICM3ODBFCivnoI8gPiBmxJNuOyAjNzgwRgor56CQID4gw6g7ICM3ODEwCivnoJEgPiB5w6A7ICM3ODExCivnoJIgPiBwxKs7ICM3ODEyCivnoJMgPiB6aMOpOyAjNzgxMwor56CUID4gecOhbjsgIzc4MTQKK+eglSA+IHPDuWk7ICM3ODE1CivnoJYgPiB6aHXEgW47ICM3ODE2CivnoJcgPiBjaMSTOyAjNzgxNwor56CYID4gZMO5bjsgIzc4MTgKK+egmSA+IHDEgW47ICM3ODE5CivnoJogPiB5w6BuOyAjNzgxQQor56CcID4gZsSTbmc7ICM3ODFDCivnoJ0gPiBmw6E7ICM3ODFECivnoJ4gPiBtw7I7ICM3ODFFCivnoJ8gPiB6aMOgOyAjNzgxRgor56CgID4gccWrOyAjNzgyMAor56ChID4gecO5OyAjNzgyMQor56CiID4gbMWtbzsgIzc4MjIKK+egoyA+IHTDum87ICM3ODIzCivnoKQgPiB0w7pvOyAjNzgyNAor56ClID4gZMStOyAjNzgyNQor56CmID4gemjDoGk7ICM3ODI2CivnoKcgPiB6aMSTbjsgIzc4MjcKK+egqCA+IMOgaTsgIzc4MjgKK+egqSA+IGbDqGk7ICM3ODI5CivnoKogPiBtxa07ICM3ODJBCivnoKsgPiB6aMWtOyAjNzgyQgor56CsID4gbMOsOyAjNzgyQwor56CtID4gYmnEgW47ICM3ODJECivnoK4gPiBuxa07ICM3ODJFCivnoK8gPiBwxKtuZzsgIzc4MkYKK+egsCA+IHDEk25nOyAjNzgzMAor56CxID4gbMOtbmc7ICM3ODMxCivnoLIgPiBww6BvOyAjNzgzMgor56CzID4gbMOoOyAjNzgzMwor56C0ID4gcMOyOyAjNzgzNAor56C1ID4gYsWNOyAjNzgzNQor56C2ID4gcMOyOyAjNzgzNgor56C3ID4gc2jEk247ICM3ODM3CivnoLggPiB6w6E7ICM3ODM4CivnoLkgPiBuxa1vOyAjNzgzOQor56C6ID4gbMOsOyAjNzgzQQor56C7ID4gbMOzbmc7ICM3ODNCCivnoLwgPiB0w7NuZzsgIzc4M0MKK+egviA+IGzDrDsgIzc4M0UKK+ehgCA+IGNoxa07ICM3ODQwCivnoYEgPiBrxJNuZzsgIzc4NDEKK+ehgiA+IHF1w6FuOyAjNzg0Mgor56GDID4gemjFqzsgIzc4NDMKK+ehhCA+IGt1xIFuZzsgIzc4NDQKK+ehhSA+IGjDuW87ICM3ODQ1CivnoYYgPiDDqDsgIzc4NDYKK+ehhyA+IG7DoW87ICM3ODQ3CivnoYggPiBqacOhOyAjNzg0OAor56GJID4gbMO5OyAjNzg0OQor56GKID4gd8SVaTsgIzc4NEEKK+ehiyA+IMOgaTsgIzc4NEIKK+ehjCA+IGzDuW87ICM3ODRDCivnoY0gPiBrw6huOyAjNzg0RAor56GOID4geMOtbmc7ICM3ODRFCivnoY8gPiB5w6FuOyAjNzg0Rgor56GQID4gdMOzbmc7ICM3ODUwCivnoZEgPiBwxJNuZzsgIzc4NTEKK+ehkiA+IHjEqzsgIzc4NTIKK+ehlCA+IGjDs25nOyAjNzg1NAor56GVID4gc2jDuW87ICM3ODU1CivnoZYgPiB4acOhOyAjNzg1Ngor56GXID4gcWnEgW87ICM3ODU3CivnoZkgPiB3w6hpOyAjNzg1OQor56GaID4gcWnDoW87ICM3ODVBCivnoZwgPiBrxJNuZzsgIzc4NUMKK+ehnSA+IHhpxIFvOyAjNzg1RAor56GeID4gcXXDqDsgIzc4NUUKK+ehnyA+IGNow6BuOyAjNzg1Rgor56GgID4gbMSDbmc7ICM3ODYwCivnoaEgPiBow7NuZzsgIzc4NjEKK+ehoiA+IHnDujsgIzc4NjIKK+ehoyA+IHhpxIFvOyAjNzg2Mwor56GkID4geGnDoTsgIzc4NjQKK+ehpSA+IG3Eg25nOyAjNzg2NQor56GmID4gbMOybmc7ICM3ODY2CivnoacgPiDErW9uZzsgIzc4NjcKK+ehqCA+IGNoxJM7ICM3ODY4CivnoakgPiBjaMOoOyAjNzg2OQor56GqID4gw6k7ICM3ODZBCivnoasgPiBsw611OyAjNzg2Qgor56GsID4gecOsbmc7ICM3ODZDCivnoa0gPiBtw6FuZzsgIzc4NkQKK+ehriA+IHF1w6g7ICM3ODZFCivnoa8gPiB5w6BuOyAjNzg2Rgor56GwID4gc2jEgTsgIzc4NzAKK+ehsSA+IGvFrW47ICM3ODcxCivnobIgPiB5w7k7ICM3ODcyCivnobUgPiBsxa07ICM3ODc1CivnobYgPiBjaMSVbjsgIzc4NzYKK+ehtyA+IGppxINuOyAjNzg3Nwor56G4ID4gbnXDqDsgIzc4NzgKK+ehuSA+IHPFjW5nOyAjNzg3OQor56G6ID4gemjDum87ICM3ODdBCivnobsgPiBrxJNuZzsgIzc4N0IKK+ehvCA+IHDDqW5nOyAjNzg3Qwor56G9ID4gecSDbjsgIzc4N0QKK+ehviA+IHpow7lpOyAjNzg3RQor56G/ID4ga8WNbmc7ICM3ODdGCivnooAgPiBjw6luZzsgIzc4ODAKK+eigSA+IHHDrTsgIzc4ODEKK+eigiA+IHrDsm5nOyAjNzg4Mgor56KDID4gccOsbmc7ICM3ODgzCivnooQgPiBsw61uOyAjNzg4NAor56KFID4gasWrbjsgIzc4ODUKK+eihiA+IGLFjTsgIzc4ODYKK+eihyA+IGTDrG5nOyAjNzg4Nwor56KIID4gbcOtbjsgIzc4ODgKK+eiiSA+IGRpxIFvOyAjNzg4OQor56KKID4gamnEgW47ICM3ODhBCivnoosgPiBow6g7ICM3ODhCCivnoowgPiBsw7k7ICM3ODhDCivnoo0gPiDDoGk7ICM3ODhECivnoo4gPiBzw7lpOyAjNzg4RQor56KPID4gcXXDqDsgIzc4OEYKK+eikCA+IGzDrW5nOyAjNzg5MAor56KRID4gYsSTaTsgIzc4OTEKK+eikiA+IHnDrW47ICM3ODkyCivnopMgPiBkw7lpOyAjNzg5Mwor56KUID4gd8WtOyAjNzg5NAor56KVID4gccOtOyAjNzg5NQor56KWID4gbMO5bjsgIzc4OTYKK+eilyA+IHfEg247ICM3ODk3CivnopggPiBkacSDbjsgIzc4OTgKK+eimSA+IGfEgW5nOyAjNzg5OQor56KaID4gcMOpaTsgIzc4OUEKK+eimyA+IHHDrDsgIzc4OUIKK+einCA+IGNoxJVuOyAjNzg5Qwor56KdID4gcnXEg247ICM3ODlECivnop4gPiB5w6FuOyAjNzg5RQor56KfID4gZGnDqTsgIzc4OUYKK+eioCA+IGTDrG5nOyAjNzhBMAor56KhID4gZMO6OyAjNzhBMQor56KiID4gdMO6bzsgIzc4QTIKK+eioyA+IGppw6k7ICM3OEEzCivnoqQgPiB5xKtuZzsgIzc4QTQKK+eipSA+IGJpxINuOyAjNzhBNQor56KmID4ga8OoOyAjNzhBNgor56KnID4gYsOsOyAjNzhBNwor56KoID4gd8STaTsgIzc4QTgKK+eiqSA+IHNow7lvOyAjNzhBOQor56KqID4gemjEk247ICM3OEFBCivnoqsgPiBkdcOgbjsgIzc4QUIKK+eirCA+IHhpw6E7ICM3OEFDCivnoq0gPiBkw6BuZzsgIzc4QUQKK+eiriA+IHTDrTsgIzc4QUUKK+eiryA+IG7Eg287ICM3OEFGCivnorAgPiBww6huZzsgIzc4QjAKK+eisSA+IGppxINuOyAjNzhCMQor56KyID4gZMOsOyAjNzhCMgor56KzID4gdMOgbjsgIzc4QjMKK+eitCA+IGNow6E7ICM3OEI0CivnorYgPiBxw6w7ICM3OEI2CivnorggPiBmxJNuZzsgIzc4QjgKK+eiuSA+IHh1w6BuOyAjNzhCOQor56K6ID4gcXXDqDsgIzc4QkEKK+eiuyA+IHF1w6g7ICM3OEJCCivnorwgPiBtxIM7ICM3OEJDCivnor0gPiBnxY1uZzsgIzc4QkQKK+eiviA+IG5pw6BuOyAjNzhCRQor56K/ID4gc8O5OyAjNzhCRgor56OAID4gw6k7ICM3OEMwCivno4EgPiBjw607ICM3OEMxCivno4IgPiBsw6x1OyAjNzhDMgor56ODID4gc8SrOyAjNzhDMwor56OEID4gdMOhbmc7ICM3OEM0Civno4UgPiBiw6BuZzsgIzc4QzUKK+ejhiA+IGh1w6E7ICM3OEM2Civno4cgPiBwxKs7ICM3OEM3Civno4ggPiB3xJVpOyAjNzhDOAor56OJID4gc8SDbmc7ICM3OEM5Civno4ogPiBsxJVpOyAjNzhDQQor56OLID4gY8WrbzsgIzc4Q0IKK+ejjCA+IHpoxJNuOyAjNzhDQwor56ONID4geGnDoTsgIzc4Q0QKK+ejjiA+IHHEqzsgIzc4Q0UKK+ejjyA+IGxpw6FuOyAjNzhDRgor56OQID4gcMOhbjsgIzc4RDAKK+ejkSA+IHfDqGk7ICM3OEQxCivno5IgPiB5xa1uOyAjNzhEMgor56OTID4gZMWraTsgIzc4RDMKK+ejlCA+IHpow6k7ICM3OEQ0Civno5UgPiBrxJM7ICM3OEQ1Civno5YgPiBsxIE7ICM3OEQ2Civno5ggPiBxw6xuZzsgIzc4RDgKK+ejmSA+IGfFrW47ICM3OEQ5Civno5ogPiB6aHXEgW47ICM3OERBCivno5sgPiBjaMOhbjsgIzc4REIKK+ejnCA+IHHDrDsgIzc4REMKK+ejnSA+IMOhbzsgIzc4REQKK+ejniA+IHDEk25nOyAjNzhERQor56OfID4gbMO5OyAjNzhERgor56OgID4gbMWtOyAjNzhFMAor56OhID4ga8OgbjsgIzc4RTEKK+ejoiA+IHFpxINuZzsgIzc4RTIKK+ejoyA+IGNoxJVuOyAjNzhFMwor56OkID4gecStbjsgIzc4RTQKK+ejpSA+IGzElWk7ICM3OEU1Civno6YgPiBiacSBbzsgIzc4RTYKK+ejpyA+IHHDrDsgIzc4RTcKK+ejqCA+IG3DszsgIzc4RTgKK+ejqSA+IHHEqzsgIzc4RTkKK+ejqiA+IGPFq2k7ICM3OEVBCivno6sgPiB6xY1uZzsgIzc4RUIKK+ejrCA+IHHDrG5nOyAjNzhFQwor56OtID4gY2jDuW87ICM3OEVECivno68gPiBqxKs7ICM3OEVGCivno7AgPiBzaMOgbjsgIzc4RjAKK+ejsSA+IGzDoW87ICM3OEYxCivno7IgPiBxw7o7ICM3OEYyCivno7MgPiB6xJNuZzsgIzc4RjMKK+ejtCA+IGTDqG5nOyAjNzhGNAor56O1ID4gamnDoG47ICM3OEY1Civno7YgPiB4w6w7ICM3OEY2Civno7cgPiBsw6xuOyAjNzhGNwor56O4ID4gZMOsbmc7ICM3OEY4Civno7kgPiBkacOgbjsgIzc4RjkKK+ejuiA+IGh1w6FuZzsgIzc4RkEKK+ejuyA+IHDDoW47ICM3OEZCCivno7wgPiB6w6E7ICM3OEZDCivno70gPiBxacSBbzsgIzc4RkQKK+ejviA+IGTEqzsgIzc4RkUKK+ejvyA+IGzDrDsgIzc4RkYKK+ekgSA+IGppxIFvOyAjNzkwMQor56SDID4gemjEg25nOyAjNzkwMwor56SEID4gcWnDoW87ICM3OTA0CivnpIUgPiBkxatuOyAjNzkwNQor56SGID4geGnEg247ICM3OTA2CivnpIcgPiB5w7k7ICM3OTA3CivnpIggPiB6aMO5aTsgIzc5MDgKK+ekiSA+IGjDqTsgIzc5MDkKK+ekiiA+IGjDuW87ICM3OTBBCivnpIsgPiB6aMOhaTsgIzc5MEIKK+ekjCA+IGzDqGk7ICM3OTBDCivnpI0gPiBrxJU7ICM3OTBECivnpI4gPiBjaMWtOyAjNzkwRQor56SPID4gasOtOyAjNzkwRgor56SQID4gcXXDqDsgIzc5MTAKK+ekkSA+IGTDoG5nOyAjNzkxMQor56SSID4gecStOyAjNzkxMgor56STID4gamnEgW5nOyAjNzkxMwor56SUID4gcMOsOyAjNzkxNAor56SVID4gcMSrOyAjNzkxNQor56SWID4gecO5OyAjNzkxNgor56SXID4gcMSrbjsgIzc5MTcKK+ekmCA+IHHDrDsgIzc5MTgKK+ekmSA+IMOgaTsgIzc5MTkKK+ekmiA+IGvDoGk7ICM3OTFBCivnpJsgPiBqacSBbjsgIzc5MUIKK+eknCA+IHnDuTsgIzc5MUMKK+eknSA+IHJ1xINuOyAjNzkxRAor56SeID4gbcOpbmc7ICM3OTFFCivnpJ8gPiBww6BvOyAjNzkxRgor56SgID4gY8OtOyAjNzkyMAor56SjID4gbWnDqDsgIzc5MjMKK+ekpCA+IGPEgzsgIzc5MjQKK+ekpSA+IHhpw6FuOyAjNzkyNQor56SmID4ga3XDoG5nOyAjNzkyNgor56SnID4gbMOoaTsgIzc5MjcKK+ekqCA+IGzElWk7ICM3OTI4CivnpKkgPiB6aMOsOyAjNzkyOQor56SqID4gbMOsOyAjNzkyQQor56SrID4gbMOsOyAjNzkyQgor56SsID4gZsOhbjsgIzc5MkMKK+ekrSA+IHF1w6g7ICM3OTJECivnpK4gPiBww6BvOyAjNzkyRQor56SvID4gecSrbmc7ICM3OTJGCivnpLAgPiBsw6w7ICM3OTMwCivnpLEgPiBsw7NuZzsgIzc5MzEKK+eksiA+IGzDs25nOyAjNzkzMgor56SzID4gbcOyOyAjNzkzMwor56S0ID4gYsOzOyAjNzkzNAor56S1ID4gc2h1xIFuZzsgIzc5MzUKK+ektiA+IGd1w6BuOyAjNzkzNgor56S3ID4gbMOhbjsgIzc5MzcKK+ekuCA+IHrEg247ICM3OTM4CivnpLkgPiB5w6FuOyAjNzkzOQor56S6ID4gc2jDrDsgIzc5M0EKK+ekuyA+IHNow6wnICd6w6wnICdww6FuZzsgIzc5M0IKK+ekvCA+IGzErTsgIzc5M0MKK+ekvSA+IHLDqW5nOyAjNzkzRAor56S+ID4gc2jDqDsgIzc5M0UKK+ekvyA+IHl1w6g7ICM3OTNGCivnpYAgPiBzw6w7ICM3OTQwCivnpYEgPiBxw607ICM3OTQxCivnpYIgPiB0xIE7ICM3OTQyCivnpYMgPiBtw6A7ICM3OTQzCivnpYQgPiB4acOoOyAjNzk0NAor56WFID4geGnEgW47ICM3OTQ1CivnpYYgPiB4acSBbjsgIzc5NDYKK+elhyA+IHpoxKs7ICM3OTQ3CivnpYggPiBxw607ICM3OTQ4CivnpYkgPiB6aMStOyAjNzk0OQor56WKID4gYsSTbmc7ICM3OTRBCivnpYsgPiBkw7lpOyAjNzk0Qgor56WMID4gemjDsm5nOyAjNzk0Qwor56WOID4gecSrOyAjNzk0RQor56WPID4gc2jDrTsgIzc5NEYKK+elkCA+IHnDsnU7ICM3OTUwCivnpZEgPiB6aMOsOyAjNzk1MQor56WSID4gdGnDoW87ICM3OTUyCivnpZMgPiBmw7o7ICM3OTUzCivnpZQgPiBmw7k7ICM3OTU0CivnpZUgPiBtw6w7ICM3OTU1CivnpZYgPiB6xa07ICM3OTU2CivnpZcgPiB6aMSrOyAjNzk1Nwor56WYID4gc3XDoG47ICM3OTU4CivnpZkgPiBtw6hpOyAjNzk1OQor56WaID4gesO5bzsgIzc5NUEKK+elmyA+IHHFqzsgIzc5NUIKK+elnCA+IGjDuTsgIzc5NUMKK+elnSA+IHpow7k7ICM3OTVECivnpZ4gPiBzaMOpbjsgIzc5NUUKK+elnyA+IHPDuWk7ICM3OTVGCivnpaAgPiBjw607ICM3OTYwCivnpaEgPiBjaMOhaTsgIzc5NjEKK+eloiA+IG3DrTsgIzc5NjIKK+eloyA+IGzHmjsgIzc5NjMKK+elpCA+IHnFrTsgIzc5NjQKK+elpSA+IHhpw6FuZzsgIzc5NjUKK+elpiA+IHfDujsgIzc5NjYKK+elpyA+IHRpxIFvOyAjNzk2Nwor56WoID4gcGnDoG87ICM3OTY4CivnpakgPiB6aMWrOyAjNzk2OQor56WqID4gZ8WtaTsgIzc5NkEKK+elqyA+IHhpw6E7ICM3OTZCCivnpawgPiB6aMSrOyAjNzk2Qwor56WtID4gasOsOyAjNzk2RAor56WuID4gZ8OgbzsgIzc5NkUKK+elryA+IHpoxJNuOyAjNzk2Rgor56WwID4gZ8OgbzsgIzc5NzAKK+elsSA+IHNow7lpOyAjNzk3MQor56WyID4gasSrbjsgIzc5NzIKK+elsyA+IGNoxJVuOyAjNzk3Mwor56W0ID4gZ8SBaTsgIzc5NzQKK+eltSA+IGvFrW47ICM3OTc1CivnpbYgPiBkw6w7ICM3OTc2CivnpbcgPiBkxINvOyAjNzk3Nwor56W4ID4gaMO5bzsgIzc5NzgKK+eluSA+IHTDoW87ICM3OTc5CivnpbogPiBxw607ICM3OTdBCivnpbsgPiBnw7k7ICM3OTdCCivnpbwgPiBndcOgbjsgIzc5N0MKK+elvSA+IHrDuWk7ICM3OTdECivnpb4gPiBsw61uZzsgIzc5N0UKK+elvyA+IGzDuTsgIzc5N0YKK+emgCA+IGLErW5nOyAjNzk4MAor56aBID4gasOsbjsgIzc5ODEKK+emgiA+IGTEg287ICM3OTgyCivnpoMgPiB6aMOtOyAjNzk4Mwor56aEID4gbMO5OyAjNzk4NAor56aFID4gc2jDoG47ICM3OTg1CivnpoYgPiBixJNpOyAjNzk4Ngor56aHID4gemjElTsgIzc5ODcKK+emiCA+IGjFq2k7ICM3OTg4CivnpokgPiB5xY91OyAjNzk4OQor56aKID4geMOsOyAjNzk4QQor56aLID4gecSrbjsgIzc5OEIKK+emjCA+IHrEqzsgIzc5OEMKK+emjSA+IGjDuW87ICM3OThECivnpo4gPiB6aMSTbjsgIzc5OEUKK+emjyA+IGbDujsgIzc5OEYKK+emkCA+IHl1w6BuOyAjNzk5MAor56aRID4gd8O6OyAjNzk5MQor56aSID4geGnEg247ICM3OTkyCivnppMgPiB5w6FuZzsgIzc5OTMKK+emlCA+IHTDrTsgIzc5OTQKK+emlSA+IHnEqzsgIzc5OTUKK+emliA+IG3DqWk7ICM3OTk2CivnppcgPiBzxKs7ICM3OTk3CivnppggPiBkw6w7ICM3OTk4CivnppogPiB6aMO6bzsgIzc5OUEKK+emmyA+IHpoxJNuOyAjNzk5Qgor56acID4gecWPbmc7ICM3OTlDCivnpp0gPiBqw607ICM3OTlECivnpp4gPiBnw6BvOyAjNzk5RQor56afID4gdMOhbmc7ICM3OTlGCivnpqAgPiBzxKs7ICM3OUEwCivnpqEgPiBtw6A7ICM3OUExCivnpqIgPiB0xIE7ICM3OUEyCivnpqQgPiB4dcSBbjsgIzc5QTQKK+empSA+IHHDrTsgIzc5QTUKK+empiA+IHnDuTsgIzc5QTYKK+empyA+IHjEqzsgIzc5QTcKK+emqCA+IGrEqzsgIzc5QTgKK+emqSA+IHPDrDsgIzc5QTkKK+emqiA+IGNow6FuOyAjNzlBQQor56arID4gdMSDbjsgIzc5QUIKK+emrCA+IGt1w6BpOyAjNzlBQwor56atID4gc8O5aTsgIzc5QUQKK+emriA+IGzErTsgIzc5QUUKK+emryA+IG7Ds25nOyAjNzlBRgor56awID4gbsStOyAjNzlCMAor56axID4gZMSDbzsgIzc5QjEKK+emsiA+IGzDrDsgIzc5QjIKK+emsyA+IHLDoW5nOyAjNzlCMwor56a0ID4geXXDqDsgIzc5QjQKK+emtSA+IHTDrTsgIzc5QjUKK+emtiA+IHrEg247ICM3OUI2CivnprcgPiBsw6hpOyAjNzlCNwor56a4ID4gcsOzdTsgIzc5QjgKK+emuSA+IHnFrTsgIzc5QjkKK+emuiA+IHnDujsgIzc5QkEKK+emuyA+IGNoxKs7ICM3OUJCCivnprwgPiB4acOoOyAjNzlCQwor56a9ID4gccOtbjsgIzc5QkQKK+emviA+IGjDqTsgIzc5QkUKK+emvyA+IHTFqzsgIzc5QkYKK+engCA+IHjDrHU7ICM3OUMwCivnp4EgPiBzxKs7ICM3OUMxCivnp4IgPiByw6luOyAjNzlDMgor56eDID4gdMWrOyAjNzlDMwor56eEID4gesStOyAjNzlDNAor56eFID4gY2jDoTsgIzc5QzUKK+enhiA+IGfEg247ICM3OUM2Civnp4cgPiB5w6w7ICM3OUM3Civnp4ggPiB4acSBbjsgIzc5QzgKK+eniSA+IGLErW5nOyAjNzlDOQor56eKID4gbmnDoW47ICM3OUNBCivnp4sgPiBxxKt1OyAjNzlDQgor56eMID4gccSrdTsgIzc5Q0MKK+enjSA+IGNow7NuZzsgIzc5Q0QKK+enjiA+IGbDqW47ICM3OUNFCivnp48gPiBow6BvOyAjNzlDRgor56eQID4gecO6bjsgIzc5RDAKK+enkSA+IGvEkzsgIzc5RDEKK+enkiA+IG1pxINvOyAjNzlEMgor56eTID4gemjEqzsgIzc5RDMKK+enlCA+IGfEk25nOyAjNzlENAor56eVID4gYsStOyAjNzlENQor56eWID4gemjEqzsgIzc5RDYKK+enlyA+IHnDuTsgIzc5RDcKK+enmCA+IG3DrDsgIzc5RDgKK+enmSA+IGvDuTsgIzc5RDkKK+enmiA+IGLDoG47ICM3OURBCivnp5sgPiBwxKs7ICM3OURCCivnp5wgPiBuw607ICM3OURDCivnp50gPiBsw6w7ICM3OURECivnp54gPiB5w7N1OyAjNzlERQor56efID4gesWrOyAjNzlERgor56egID4gcMSrOyAjNzlFMAor56ehID4gYsOhOyAjNzlFMQor56eiID4gbMOtbmc7ICM3OUUyCivnp6MgPiBtw7I7ICM3OUUzCivnp6QgPiBjaMOobmc7ICM3OUU0Civnp6UgPiBuacOhbjsgIzc5RTUKK+enpiA+IHHDrW47ICM3OUU2Civnp6cgPiB5xIFuZzsgIzc5RTcKK+enqCA+IHrDum87ICM3OUU4Civnp6kgPiB6aMOsOyAjNzlFOQor56eqID4gemjEqzsgIzc5RUEKK+enqyA+IHNow7o7ICM3OUVCCivnp6wgPiBqw7k7ICM3OUVDCivnp60gPiB6xK07ICM3OUVECivnp64gPiBow7pvOyAjNzlFRQor56evID4gasSrOyAjNzlFRgor56ewID4gY2jEk25nOyAjNzlGMAor56exID4gdMOzbmc7ICM3OUYxCivnp7IgPiB6aMOsOyAjNzlGMgor56ezID4gaMO6bzsgIzc5RjMKK+entCA+IGjDqTsgIzc5RjQKK+entSA+IHnEq247ICM3OUY1Civnp7YgPiB6xKs7ICM3OUY2Civnp7cgPiB6aMOtOyAjNzlGNwor56e4ID4gamnEkzsgIzc5RjgKK+enuSA+IHLElW47ICM3OUY5Civnp7ogPiBkw7k7ICM3OUZBCivnp7sgPiB5w607ICM3OUZCCivnp7wgPiB6aMWrOyAjNzlGQwor56e9ID4gaMO5aTsgIzc5RkQKK+enviA+IG7Ds25nOyAjNzlGRQor56e/ID4gZsWtOyAjNzlGRgor56iAID4geMSrOyAjN0EwMAor56iBID4ga8SDbzsgIzdBMDEKK+eogiA+IGzDoW5nOyAjN0EwMgor56iDID4gZsWrOyAjN0EwMwor56iEID4gesOoOyAjN0EwNAor56iFID4gc2jDuWk7ICM3QTA1CivnqIYgPiBsx5o7ICM3QTA2CivnqIcgPiBrxa1uOyAjN0EwNwor56iIID4gZ8SDbjsgIzdBMDgKK+eoiSA+IGfEk25nOyAjN0EwOQor56iKID4gdMOtOyAjN0EwQQor56iLID4gY2jDqW5nOyAjN0EwQgor56iMID4gdMO6OyAjN0EwQwor56iNID4gc2jEgW87ICM3QTBECivnqI4gPiBzaMO5aTsgIzdBMEUKK+eojyA+IHnDoDsgIzdBMEYKK+eokCA+IGzFrW47ICM3QTEwCivnqJEgPiBsw7k7ICM3QTExCivnqJIgPiBnw7k7ICM3QTEyCivnqJMgPiB6w7pvOyAjN0ExMwor56iUID4gcsSVbjsgIzdBMTQKK+eolSA+IHpow7luOyAjN0ExNQor56iWID4gYsOgbmc7ICM3QTE2CivnqJcgPiBiw6BpOyAjN0ExNwor56iYID4gasSrOyAjN0ExOAor56iZID4gemjDrTsgIzdBMTkKK+eomiA+IHpow6w7ICM3QTFBCivnqJsgPiBrxa1uOyAjN0ExQgor56icID4gbMOpbmc7ICM3QTFDCivnqJ0gPiBww6luZzsgIzdBMUQKK+eoniA+IGvEkzsgIzdBMUUKK+eonyA+IGLErW5nOyAjN0ExRgor56igID4gY2jDs3U7ICM3QTIwCivnqKEgPiB6w7o7ICM3QTIxCivnqKIgPiB5w7k7ICM3QTIyCivnqKMgPiBzxas7ICM3QTIzCivnqKQgPiBsx5xlOyAjN0EyNAor56imID4gecSrOyAjN0EyNgor56inID4geMOsOyAjN0EyNwor56ioID4gYmnEgW47ICM3QTI4CivnqKkgPiBqw6w7ICM3QTI5CivnqKogPiBmw7k7ICM3QTJBCivnqKsgPiBixKs7ICM3QTJCCivnqKwgPiBuw7lvOyAjN0EyQwor56itID4gamnEkzsgIzdBMkQKK+eoriA+IHpoxY9uZzsgIzdBMkUKK+eoryA+IHrFjW5nOyAjN0EyRgor56iwID4geMWrOyAjN0EzMAor56ixID4gY2jEk25nOyAjN0EzMQor56iyID4gZMOgbzsgIzdBMzIKK+eosyA+IHfElW47ICM3QTMzCivnqLQgPiBsacOhbjsgIzdBMzQKK+eotSA+IHrEqzsgIzdBMzUKK+eotiA+IHnDuTsgIzdBMzYKK+eotyA+IGrDrDsgIzdBMzcKK+eouCA+IHjDuTsgIzdBMzgKK+eouSA+IHpoxJVuOyAjN0EzOQor56i6ID4gemjDrDsgIzdBM0EKK+eouyA+IGTDoG87ICM3QTNCCivnqLwgPiBqacOgOyAjN0EzQwor56i9ID4gasSrOyAjN0EzRAor56i+ID4gZ8SDbzsgIzdBM0UKK+eovyA+IGfEg287ICM3QTNGCivnqYAgPiBnxa07ICM3QTQwCivnqYEgPiByw7NuZzsgIzdBNDEKK+epgiA+IHPDuWk7ICM3QTQyCivnqYQgPiBqw6w7ICM3QTQ0CivnqYUgPiBrxIFuZzsgIzdBNDUKK+ephiA+IG3DuTsgIzdBNDYKK+ephyA+IHNoxIFuOyAjN0E0Nwor56mIID4gbcOpbjsgIzdBNDgKK+epiSA+IHpow6w7ICM3QTQ5CivnqYogPiBqw6w7ICM3QTRBCivnqYsgPiBsw7k7ICM3QTRCCivnqYwgPiBzxas7ICM3QTRDCivnqY0gPiBqxKs7ICM3QTRECivnqY4gPiB5xK1uZzsgIzdBNEUKK+epjyA+IHfElW47ICM3QTRGCivnqZAgPiBxxKt1OyAjN0E1MAor56mRID4gc8OoOyAjN0E1MQor56mTID4gecOsOyAjN0E1Mwor56mUID4gaHXDoW5nOyAjN0E1NAor56mVID4gcWnDqDsgIzdBNTUKK+epliA+IGrErTsgIzdBNTYKK+eplyA+IHPDuWk7ICM3QTU3CivnqZggPiB4acSBbzsgIzdBNTgKK+epmSA+IHDDujsgIzdBNTkKK+epmiA+IGppxIFvOyAjN0E1QQor56mbID4gemjFq287ICM3QTVCCivnqZwgPiB0w7NuZzsgIzdBNUMKK+epniA+IGzHmjsgIzdBNUUKK+epnyA+IHPDuWk7ICM3QTVGCivnqaAgPiBuw7NuZzsgIzdBNjAKK+epoSA+IHPDqDsgIzdBNjEKK+epoiA+IGjDuWk7ICM3QTYyCivnqaMgPiByw6FuZzsgIzdBNjMKK+eppCA+IG7DuW87ICM3QTY0CivnqaUgPiB5w7k7ICM3QTY1CivnqaYgPiBiaW47ICM3QTY2CivnqacgPiBqw6w7ICM3QTY3CivnqaggPiB0w7ppOyAjN0E2OAor56mpID4gd8SVbjsgIzdBNjkKK+epqiA+IGNoxJNuZzsgIzdBNkEKK+epqyA+IGjDuW87ICM3QTZCCivnqawgPiBnxY9uZzsgIzdBNkMKK+eprSA+IGzHmjsgIzdBNkQKK+epriA+IGJpxIFvOyAjN0E2RQor56mwID4gcsOhbmc7ICM3QTcwCivnqbEgPiB6aMWrbzsgIzdBNzEKK+epsiA+IGzDrTsgIzdBNzIKK+epsyA+IHrDoG47ICM3QTczCivnqbQgPiB4dcOoOyAjN0E3NAor56m1ID4gd8SBOyAjN0E3NQor56m2ID4gasOsdTsgIzdBNzYKK+eptyA+IHHDrW9uZzsgIzdBNzcKK+epuCA+IHjDrDsgIzdBNzgKK+epuSA+IHHEq29uZzsgIzdBNzkKK+epuiA+IGvFjW5nOyAjN0E3QQor56m7ID4gecWrOyAjN0E3Qgor56m8ID4gc8STbjsgIzdBN0MKK+epvSA+IGrErW5nOyAjN0E3RAor56m+ID4gecOgbzsgIzdBN0UKK+epvyA+IGNodcSBbjsgIzdBN0YKK+eqgCA+IHpoxatuOyAjN0E4MAor56qBID4gdMO6OyAjN0E4MQor56qCID4gbMOhbzsgIzdBODIKK+eqgyA+IHFpw6g7ICM3QTgzCivnqoQgPiB6aMSDaTsgIzdBODQKK+eqhSA+IHnEg287ICM3QTg1CivnqoYgPiBiacSDbjsgIzdBODYKK+eqhyA+IGLDoW87ICM3QTg3CivnqoggPiB5xINvOyAjN0E4OAor56qJID4gYsStbmc7ICM3QTg5CivnqoogPiB3xIE7ICM3QThBCivnqosgPiB6aMO6OyAjN0E4Qgor56qMID4gamnDoG87ICM3QThDCivnqo0gPiBxacOgbzsgIzdBOEQKK+eqjiA+IGRpw6BvOyAjN0E4RQor56qPID4gd8WrOyAjN0E4Rgor56qQID4gZ8WraTsgIzdBOTAKK+eqkSA+IHnDoW87ICM3QTkxCivnqpIgPiB6aMOsOyAjN0E5Mgor56qTID4gY2h1xIFuZzsgIzdBOTMKK+eqlCA+IHnEg287ICM3QTk0CivnqpUgPiB0acSDbzsgIzdBOTUKK+eqliA+IGppw6BvOyAjN0E5Ngor56qXID4gY2h1xIFuZzsgIzdBOTcKK+eqmCA+IGrErW9uZzsgIzdBOTgKK+eqmSA+IHhpxIFvOyAjN0E5OQor56qaID4gY2jDqW5nOyAjN0E5QQor56qbID4ga8OydTsgIzdBOUIKK+eqnCA+IGN1w6BuOyAjN0E5Qwor56qdID4gd8WNOyAjN0E5RAor56qeID4gZMOgbjsgIzdBOUUKK+eqnyA+IGvFqzsgIzdBOUYKK+eqoCA+IGvEkzsgIzdBQTAKK+eqoSA+IHpow7lpOyAjN0FBMQor56qiID4geMO5OyAjN0FBMgor56qjID4gc8O5OyAjN0FBMwor56qkID4gZ3VhbjsgIzdBQTQKK+eqpSA+IGvFq2k7ICM3QUE1CivnqqYgPiBkw7J1OyAjN0FBNgor56qoID4gecOsbjsgIzdBQTgKK+eqqSA+IHfFjTsgIzdBQTkKK+eqqiA+IHfEgTsgIzdBQUEKK+eqqyA+IHnDoDsgIzdBQUIKK+eqrCA+IHnDujsgIzdBQUMKK+eqrSA+IGrDuTsgIzdBQUQKK+eqriA+IHHDrW9uZzsgIzdBQUUKK+eqryA+IHnDoW87ICM3QUFGCivnqrAgPiB5w6FvOyAjN0FCMAor56qxID4gdGnDoG87ICM3QUIxCivnqrIgPiBjaMOhbzsgIzdBQjIKK+eqsyA+IHnFrTsgIzdBQjMKK+eqtCA+IHRpw6FuOyAjN0FCNAor56q1ID4gZGnDoG87ICM3QUI1CivnqrYgPiBqw7k7ICM3QUI2CivnqrcgPiBsacOhbzsgIzdBQjcKK+equCA+IHjEqzsgIzdBQjgKK+equSA+IHfDuTsgIzdBQjkKK+equiA+IGvFq2k7ICM3QUJBCivnqrsgPiBjaHXEgW5nOyAjN0FCQgor56q8ID4gemjEgW87ICM3QUJDCivnqr4gPiBrdcSDbjsgIzdBQkUKK+eqvyA+IGzDs25nOyAjN0FCRgor56uAID4gY2jEk25nOyAjN0FDMAor56uBID4gY8O5aTsgIzdBQzEKK+ergiA+IHBpw6FvOyAjN0FDMgor56uDID4gesOgbzsgIzdBQzMKK+erhCA+IGN1w6BuOyAjN0FDNAor56uFID4gcWnDoG87ICM3QUM1Civnq4YgPiBxw61vbmc7ICM3QUM2Civnq4cgPiBkw7J1OyAjN0FDNwor56uIID4gesOgbzsgIzdBQzgKK+eriSA+IGzFj25nOyAjN0FDOQor56uKID4gcWnDqDsgIzdBQ0EKK+eriyA+IGzDrDsgIzdBQ0IKK+erjCA+IGNow7k7ICM3QUNDCivnq40gPiBzaMOtJyAnZ8WNbmcnICdzaMSTbmc7ICM3QUNECivnq44gPiBmw7J1OyAjN0FDRQor56uPID4gcWnEgW4nICdnxY1uZycgJ3NoxJNuZzsgIzdBQ0YKK+erkCA+IGNow7k7ICM3QUQwCivnq5EgPiBow7NuZzsgIzdBRDEKK+erkiA+IHHDrTsgIzdBRDIKK+erkyA+IHFpxIFuJyAnZsSTbicgJ3poxKsnICd5xKsnICdnxY1uZycgJ3NoxJNuZzsgIzdBRDMKK+erlCA+IGfFjW5nJyAnc2jEk25nOyAjN0FENAor56uVID4gc2jDrScgJ2bEk24nICd6aMSrJyAnecSrJyAnZ8WNbmcnICdzaMSTbmc7ICM3QUQ1Civnq5YgPiBzaMO5OyAjN0FENgor56uXID4gbWnDoG87ICM3QUQ3Civnq5ggPiBqxa07ICM3QUQ4Civnq5kgPiB6aMOgbjsgIzdBRDkKK+ermiA+IHpow7k7ICM3QURBCivnq5sgPiBsw61uZzsgIzdBREIKK+ernCA+IGzDs25nOyAjN0FEQwor56udID4gYsOsbmc7ICM3QURECivnq54gPiBqw6xuZzsgIzdBREUKK+ernyA+IGrDrG5nOyAjN0FERgor56ugID4gemjEgW5nOyAjN0FFMAor56uhID4gecSrJyAnZ8WNbmcnICdzaMSTbmcnICdkZScgJ3nEqycgJ2LEg2knICdiw6hpOyAjN0FFMQor56uiID4gc8OsOyAjN0FFMgor56ujID4gasO5bjsgIzdBRTMKK+erpCA+IGjDs25nOyAjN0FFNAor56ulID4gdMOzbmc7ICM3QUU1Civnq6YgPiBzxY9uZzsgIzdBRTYKK+erpyA+IGrDrG5nOyAjN0FFNwor56uoID4gZGnDoG87ICM3QUU4Civnq6kgPiB5w6w7ICM3QUU5Civnq6ogPiBzaMO5OyAjN0FFQQor56urID4gasOsbmc7ICM3QUVCCivnq6wgPiBxxa07ICM3QUVDCivnq60gPiBqacOpOyAjN0FFRAor56uuID4gcMOtbmc7ICM3QUVFCivnq68gPiBkdcSBbjsgIzdBRUYKK+ersCA+IHNow6FvOyAjN0FGMAor56uxID4gemh1xINuOyAjN0FGMQor56uyID4gY8Opbmc7ICM3QUYyCivnq7MgPiBkxJNuZzsgIzdBRjMKK+ertCA+IGPFq2k7ICM3QUY0Civnq7UgPiBodcSBaTsgIzdBRjUKK+ertiA+IGrDrG5nOyAjN0FGNgor56u3ID4ga8OgbjsgIzdBRjcKK+eruCA+IGrDrG5nOyAjN0FGOAor56u5ID4gemjDujsgIzdBRjkKK+eruiA+IHpow7o7ICM3QUZBCivnq7sgPiBsw6g7ICM3QUZCCivnq7wgPiBww6luZzsgIzdBRkMKK+ervSA+IHnDujsgIzdBRkQKK+erviA+IGNow607ICM3QUZFCivnq78gPiBnxIFuOyAjN0FGRgor56yAID4gbcOhbmc7ICM3QjAwCivnrIEgPiB6aMO6OyAjN0IwMQor56yDID4gZMWtOyAjN0IwMwor56yEID4gasSrOyAjN0IwNAor56yFID4geGnDoW87ICM3QjA1CivnrIYgPiBixIE7ICM3QjA2CivnrIcgPiBzdcOgbjsgIzdCMDcKK+esiCA+IGrDrTsgIzdCMDgKK+esiSA+IHpoxJVuOyAjN0IwOQor56yKID4gemjDoG87ICM3QjBBCivnrIsgPiBzxa1uOyAjN0IwQgor56yMID4gecOhOyAjN0IwQwor56yNID4gemjDuWk7ICM3QjBECivnrI4gPiB5dcOhbjsgIzdCMEUKK+esjyA+IGjDuTsgIzdCMEYKK+eskCA+IGfEgW5nOyAjN0IxMAor56yRID4geGnDoG87ICM3QjExCivnrJIgPiBjw6luOyAjN0IxMgor56yTID4gcMOtOyAjN0IxMwor56yUID4gYsStOyAjN0IxNAor56yVID4gamnEg247ICM3QjE1CivnrJYgPiB5xK07ICM3QjE2CivnrJcgPiBkxY1uZzsgIzdCMTcKK+esmCA+IHNoxIFuOyAjN0IxOAor56yZID4gc2jEk25nOyAjN0IxOQor56yaID4geGnDoTsgIzdCMUEKK+esmyA+IGTDrTsgIzdCMUIKK+esnCA+IHpow7o7ICM3QjFDCivnrJ0gPiBuw6A7ICM3QjFECivnrJ4gPiBjaMSrOyAjN0IxRQor56yfID4gZ8WrOyAjN0IxRgor56ygID4gbMOsOyAjN0IyMAor56yhID4gcWnDqDsgIzdCMjEKK+esoiA+IG3ErW47ICM3QjIyCivnrKMgPiBixIFvOyAjN0IyMwor56ykID4gdGnDoW87ICM3QjI0CivnrKUgPiBzw6w7ICM3QjI1CivnrKYgPiBmw7o7ICM3QjI2CivnrKcgPiBjw6g7ICM3QjI3CivnrKggPiBiw6huOyAjN0IyOAor56ypID4gcMOoaTsgIzdCMjkKK+esqiA+IGTDoTsgIzdCMkEKK+esqyA+IHrErTsgIzdCMkIKK+esrCA+IGTDrDsgIzdCMkMKK+esrSA+IGzDrW5nOyAjN0IyRAor56yuID4gesOpOyAjN0IyRQor56yvID4gbsO6OyAjN0IyRgor56ywID4gZsO6OyAjN0IzMAor56yxID4gZ8WPdTsgIzdCMzEKK+essiA+IGbEgW47ICM3QjMyCivnrLMgPiBqacSBOyAjN0IzMwor56y0ID4gZ8SVOyAjN0IzNAor56y1ID4gZsOgbjsgIzdCMzUKK+estiA+IHNoxK07ICM3QjM2CivnrLcgPiBtxINvOyAjN0IzNwor56y4ID4gcMWPOyAjN0IzOAor56y6ID4gamnEgW47ICM3QjNBCivnrLsgPiBxw61vbmc7ICM3QjNCCivnrLwgPiBsw7NuZzsgIzdCM0MKK+esviA+IGJpxIFuOyAjN0IzRQor56y/ID4gbMO5bzsgIzdCM0YKK+etgCA+IGfDuWk7ICM3QjQwCivnrYEgPiBxxa07ICM3QjQxCivnrYIgPiBjaMOtOyAjN0I0Mgor562DID4gecSrbjsgIzdCNDMKK+ethCA+IHnDoG87ICM3QjQ0CivnrYUgPiB4acSDbjsgIzdCNDUKK+ethiA+IGLErTsgIzdCNDYKK+ethyA+IHHDrW9uZzsgIzdCNDcKK+etiCA+IGd1xIE7ICM3QjQ4CivnrYkgPiBkxJVuZzsgIzdCNDkKK+etiiA+IGppxINvOyAjN0I0QQor562LID4gasSrbjsgIzdCNEIKK+etjCA+IHF1w6FuOyAjN0I0Qwor562NID4gc8WtbjsgIzdCNEQKK+etjiA+IHLDujsgIzdCNEUKK+etjyA+IGbDoTsgIzdCNEYKK+etkCA+IGt1xIFuZzsgIzdCNTAKK+etkSA+IHpow7o7ICM3QjUxCivnrZIgPiB0xY9uZzsgIzdCNTIKK+etkyA+IGrEqzsgIzdCNTMKK+etlCA+IGTDoTsgIzdCNTQKK+etlSA+IHjDrW5nOyAjN0I1NQor562WID4gY8OoOyAjN0I1Ngor562XID4gemjDsm5nOyAjN0I1Nwor562YID4ga8OydTsgIzdCNTgKK+etmSA+IGzDoWk7ICM3QjU5CivnrZogPiBiw6w7ICM3QjVBCivnrZsgPiBzaMSBaTsgIzdCNUIKK+etnCA+IGTEgW5nOyAjN0I1Qwor562dID4gemjEk25nOyAjN0I1RAor562eID4gY8OoOyAjN0I1RQor562fID4gZsWrOyAjN0I1Rgor562gID4gecO6bjsgIzdCNjAKK+etoSA+IHTDujsgIzdCNjEKK+etoiA+IHDDoTsgIzdCNjIKK+etoyA+IGzDrDsgIzdCNjMKK+etpCA+IGzDoW5nOyAjN0I2NAor562lID4gasWtOyAjN0I2NQor562mID4gZ3XEg247ICM3QjY2CivnracgPiBqacSDbjsgIzdCNjcKK+etqCA+IGjDoW47ICM3QjY4CivnrakgPiB0w7NuZzsgIzdCNjkKK+etqiA+IHhpw6E7ICM3QjZBCivnrasgPiB6aMOsOyAjN0I2Qgor562sID4gY2jDqW5nOyAjN0I2Qwor562tID4gc3XDoG47ICM3QjZECivnra4gPiBzaMOsOyAjN0I2RQor562vID4gemjDuTsgIzdCNkYKK+etsCA+IHrDum87ICM3QjcwCivnrbEgPiB4acSDbzsgIzdCNzEKK+etsiA+IHNoxIFvOyAjN0I3Mgor562zID4gdMOtbmc7ICM3QjczCivnrbQgPiBjw6g7ICM3Qjc0CivnrbUgPiB5w6FuOyAjN0I3NQor5622ID4gZ8SDbzsgIzdCNzYKK+ettyA+IGt1w6BpOyAjN0I3Nwor5624ID4gZ8SBbjsgIzdCNzgKK+etuSA+IGNow7N1OyAjN0I3OQor5627ID4gZ8Ogbmc7ICM3QjdCCivnrbwgPiB5w7puOyAjN0I3Qwor562+ID4gcWnEgW47ICM3QjdFCivnrb8gPiB4acSDbzsgIzdCN0YKK+eugCA+IGppxINuOyAjN0I4MAor566BID4gcMO6OyAjN0I4MQor566CID4gbMOhaTsgIzdCODIKK+eugyA+IHrFjXU7ICM3QjgzCivnroQgPiBiw6w7ICM3Qjg0CivnroUgPiBiw6w7ICM3Qjg1CivnroYgPiBiw6w7ICM3Qjg2CivnrocgPiBnw6g7ICM3Qjg3CivnroggPiBjaMOtOyAjN0I4OAor566JID4gZ3XEg2k7ICM3Qjg5CivnroogPiB5xas7ICM3QjhBCivnrosgPiBqacSBbjsgIzdCOEIKK+eujCA+IHpow6BvOyAjN0I4Qwor566NID4gZ8WrOyAjN0I4RAor566OID4gY2jDrTsgIzdCOEUKK+eujyA+IHpoxJNuZzsgIzdCOEYKK+eukCA+IGrEq25nOyAjN0I5MAor566RID4gc2jDoDsgIzdCOTEKK+eukiA+IHpoxY91OyAjN0I5Mgor566TID4gbMO5OyAjN0I5Mwor566UID4gYsOzOyAjN0I5NAor566VID4gasSrOyAjN0I5NQor566WID4gbMOtbjsgIzdCOTYKK+eulyA+IHN1w6BuOyAjN0I5Nwor566YID4gasO5bjsgIzdCOTgKK+eumSA+IGbDujsgIzdCOTkKK+eumiA+IHpow6E7ICM3QjlBCivnrpsgPiBnxas7ICM3QjlCCivnrpwgPiBrxY1uZzsgIzdCOUMKK+eunSA+IHFpw6FuOyAjN0I5RAor566eID4gcXXEgW47ICM3QjlFCivnrp8gPiBqw7luOyAjN0I5Rgor566gID4gY2jDumk7ICM3QkEwCivnrqEgPiBndcSDbjsgIzdCQTEKK+euoiA+IHl1xIFuOyAjN0JBMgor566jID4gY8OoOyAjN0JBMwor566kID4gasO6OyAjN0JBNAor566lID4gYsWPOyAjN0JBNQor566mID4gesOpOyAjN0JBNgor566nID4gcWnDqDsgIzdCQTcKK+euqCA+IHTDuW87ICM3QkE4CivnrqkgPiBsw7pvOyAjN0JBOQor566qID4gZMSBbjsgIzdCQUEKK+euqyA+IHhpxIFvOyAjN0JBQgor566sID4gcsO5bzsgIzdCQUMKK+eurSA+IGppw6BuOyAjN0JBRAor566uID4geHVhbjsgIzdCQUUKK+euryA+IGJpxIFuOyAjN0JBRgor566wID4gc8WtbjsgIzdCQjAKK+eusSA+IHhpxIFuZzsgIzdCQjEKK+eusiA+IHhpxINuOyAjN0JCMgor566zID4gcMOtbmc7ICM3QkIzCivnrrQgPiB6aMSTbjsgIzdCQjQKK+eutSA+IHNoxJVuZzsgIzdCQjUKK+eutiA+IGjDujsgIzdCQjYKK+eutyA+IHNoxKs7ICM3QkI3CivnrrggPiB6aMO5OyAjN0JCOAor5665ID4geXXEkzsgIzdCQjkKK+euuiA+IGNoxa1uOyAjN0JCQQor5667ID4gbMecOyAjN0JCQgor5668ID4gd8WrOyAjN0JCQwor5669ID4gZMWPbmc7ICM3QkJECivnrr4gPiB4acSBbzsgIzdCQkUKK+euvyA+IGrDrTsgIzdCQkYKK+evgCA+IGppw6k7ICM3QkMwCivnr4EgPiBodcOhbmc7ICM3QkMxCivnr4IgPiB4xKtuZzsgIzdCQzIKK+evgyA+IG3DqWk7ICM3QkMzCivnr4QgPiBmw6BuOyAjN0JDNAor56+FID4gY2jDumk7ICM3QkM1Civnr4YgPiB6aHXDoG47ICM3QkM2Civnr4cgPiBwacSBbjsgIzdCQzcKK+eviCA+IGbEk25nOyAjN0JDOAor56+JID4gemjDujsgIzdCQzkKK+eviiA+IGjDs25nOyAjN0JDQQor56+LID4gcWnDqDsgIzdCQ0IKK+evjCA+IGjDs3U7ICM3QkNDCivnr40gPiBxxKt1OyAjN0JDRAor56+OID4gbWnEg287ICM3QkNFCivnr48gPiBxacOgbjsgIzdCQ0YKK+evkSA+IGvDuWk7ICM3QkQxCivnr5MgPiBsxY91OyAjN0JEMwor56+UID4gecO6bjsgIzdCRDQKK+evlSA+IGjDqTsgIzdCRDUKK+evliA+IHTDoW5nOyAjN0JENgor56+XID4geXXDqDsgIzdCRDcKK+evmCA+IGNoxY11OyAjN0JEOAor56+ZID4gZ8SBbzsgIzdCRDkKK+evmiA+IGbElWk7ICM3QkRBCivnr5sgPiByw7lvOyAjN0JEQgor56+cID4gemjEk25nOyAjN0JEQwor56+dID4gZ8WNdTsgIzdCREQKK+evniA+IG5pw6g7ICM3QkRFCivnr58gPiBxacOgbjsgIzdCREYKK+evoCA+IHhpxINvOyAjN0JFMAor56+hID4gY3XDoG47ICM3QkUxCivnr6IgPiBnxY1uZzsgIzdCRTIKK+evoyA+IHDDoW5nOyAjN0JFMwor56+kID4gZMWtOyAjN0JFNAor56+lID4gbMOsOyAjN0JFNQor56+mID4gYsOsOyAjN0JFNgor56+nID4gemjDum87ICM3QkU3Civnr6ggPiBjaMO6OyAjN0JFOAor56+pID4gc2jEgWk7ICM3QkU5Civnr6ogPiBjaMOtOyAjN0JFQQor56+rID4gemjDujsgIzdCRUIKK+evrCA+IHFpxIFuZzsgIzdCRUMKK+evrSA+IGzDs25nOyAjN0JFRAor56+uID4gbMOhbjsgIzdCRUUKK+evryA+IGppxIFuOyAjN0JFRgor56+wID4gYsO5OyAjN0JGMAor56+xID4gbMOtOyAjN0JGMQor56+yID4gaMO5aTsgIzdCRjIKK+evsyA+IGLDrDsgIzdCRjMKK+evtCA+IGTDrTsgIzdCRjQKK+evtSA+IGPFjW5nOyAjN0JGNQor56+2ID4gecSBbjsgIzdCRjYKK+evtyA+IHDDqW5nOyAjN0JGNwor56+4ID4gc8STbjsgIzdCRjgKK+evuSA+IHpodcOgbjsgIzdCRjkKK+evuiA+IHDDoWk7ICM3QkZBCivnr7sgPiBwacOgbzsgIzdCRkIKK+evvCA+IGTFjXU7ICM3QkZDCivnr70gPiB5xa07ICM3QkZECivnr74gPiBtacOoOyAjN0JGRQor56+/ID4gemh1xIFuOyAjN0JGRgor57CAID4gesOpOyAjN0MwMAor57CBID4geMStOyAjN0MwMQor57CCID4gZ8O6bzsgIzdDMDIKK+ewgyA+IHnDrTsgIzdDMDMKK+ewhCA+IGjDuTsgIzdDMDQKK+ewhSA+IGNoxINuOyAjN0MwNQor57CGID4ga8OydTsgIzdDMDYKK+ewhyA+IGPDuTsgIzdDMDcKK+ewiCA+IHDDrW5nOyAjN0MwOAor57CJID4gY2jDsnU7ICM3QzA5CivnsIogPiBqxKs7ICM3QzBBCivnsIsgPiBnxa1pOyAjN0MwQgor57CMID4gc8O5OyAjN0MwQwor57CNID4gbMWPdTsgIzdDMEQKK+ewjiA+IHpow6A7ICM3QzBFCivnsI8gPiBsw7k7ICM3QzBGCivnsJAgPiBuacSDbjsgIzdDMTAKK+ewkSA+IHPFq287ICM3QzExCivnsJIgPiBjdcOgbjsgIzdDMTIKK+ewlCA+IHPFq287ICM3QzE0CivnsJUgPiBsw6g7ICM3QzE1CivnsJYgPiBkdcOgbjsgIzdDMTYKK+ewmCA+IHhpxIFvOyAjN0MxOAor57CZID4gYsOzOyAjN0MxOQor57CaID4gbcOsOyAjN0MxQQor57CbID4gc8SrOyAjN0MxQgor57CcID4gZMOgbmc7ICM3QzFDCivnsJ0gPiBsacOhbzsgIzdDMUQKK+ewniA+IGTEgW47ICM3QzFFCivnsJ8gPiBkacOgbjsgIzdDMUYKK+ewoCA+IGbFrTsgIzdDMjAKK+ewoSA+IGppxINuOyAjN0MyMQor57CiID4gbcStbjsgIzdDMjIKK+ewoyA+IGvDuWk7ICM3QzIzCivnsKQgPiBkw6BpOyAjN0MyNAor57ClID4gcWnDoW87ICM3QzI1CivnsKYgPiBkxJNuZzsgIzdDMjYKK+ewpyA+IGh1w6FuZzsgIzdDMjcKK+ewqCA+IHPFrW47ICM3QzI4CivnsKkgPiBsw6FvOyAjN0MyOQor57CqID4gesSBbjsgIzdDMkEKK+ewqyA+IHhpxIFvOyAjN0MyQgor57CsID4gZMO5OyAjN0MyQwor57CtID4gc2jDrDsgIzdDMkQKK+ewriA+IHrEgW47ICM3QzJFCivnsLAgPiBww6FpOyAjN0MzMAor57CyID4gcMOhaTsgIzdDMzIKK+ewsyA+IGfDoG47ICM3QzMzCivnsLQgPiBqw7k7ICM3QzM0CivnsLUgPiBkw7k7ICM3QzM1CivnsLYgPiBsw7k7ICM3QzM2CivnsLcgPiB5w6FuOyAjN0MzNwor57C4ID4gYsOyOyAjN0MzOAor57C5ID4gZMSBbmc7ICM3QzM5CivnsLogPiBzw6BpOyAjN0MzQQor57C7ID4ga8STOyAjN0MzQgor57C8ID4gbMOzbmc7ICM3QzNDCivnsL0gPiBxacSBbjsgIzdDM0QKK+ewviA+IGxpw6FuOyAjN0MzRQor57C/ID4gYsOzOyAjN0MzRgor57GAID4gemjDsnU7ICM3QzQwCivnsYEgPiBsw6BpOyAjN0M0MQor57GDID4gbMOhbjsgIzdDNDMKK+exhCA+IGvDuWk7ICM3QzQ0CivnsYUgPiB5w7o7ICM3QzQ1CivnsYYgPiB5dcOoOyAjN0M0Ngor57GHID4gaMOhbzsgIzdDNDcKK+exiCA+IHpoxJNuOyAjN0M0OAor57GJID4gdMOhaTsgIzdDNDkKK+exiiA+IHTDrDsgIzdDNEEKK+exiyA+IG3DrTsgIzdDNEIKK+exjCA+IGNow7N1OyAjN0M0Qwor57GNID4gasOtOyAjN0M0RAor57GQID4gdMOpbmc7ICM3QzUwCivnsZEgPiB6aHXDoG47ICM3QzUxCivnsZIgPiB6aMOydTsgIzdDNTIKK+exkyA+IGbEgW47ICM3QzUzCivnsZQgPiBzxY91OyAjN0M1NAor57GVID4gemjDsnU7ICM3QzU1CivnsZcgPiB6aMO6bzsgIzdDNTcKK+exmCA+IHTDqW5nOyAjN0M1OAor57GZID4gbMO5OyAjN0M1OQor57GaID4gbMO6OyAjN0M1QQor57GbID4gamnEgW47ICM3QzVCCivnsZwgPiB0w7lvOyAjN0M1Qwor57GdID4gecOtbmc7ICM3QzVECivnsZ4gPiB5w7k7ICM3QzVFCivnsZ8gPiBsw6BpOyAjN0M1Rgor57GgID4gbMOzbmc7ICM3QzYwCivnsaIgPiBsacOhbjsgIzdDNjIKK+exoyA+IGzDoW47ICM3QzYzCivnsaQgPiBxacSBbjsgIzdDNjQKK+expSA+IHl1w6g7ICM3QzY1CivnsaYgPiB6aMWNbmc7ICM3QzY2CivnsacgPiBxw7o7ICM3QzY3CivnsaggPiBsacOhbjsgIzdDNjgKK+exqSA+IGJpxIFuOyAjN0M2OQor57GqID4gZHXDoG47ICM3QzZBCivnsasgPiB6dcSDbjsgIzdDNkIKK+exrCA+IGzDrTsgIzdDNkMKK+exrSA+IHPEqzsgIzdDNkQKK+exriA+IGzDum87ICM3QzZFCivnsa8gPiB5w61uZzsgIzdDNkYKK+exsCA+IHl1w6g7ICM3QzcwCivnsbEgPiB6aMO6bzsgIzdDNzEKK+exsiA+IHjFqzsgIzdDNzIKK+exsyA+IG3ErTsgIzdDNzMKK+extCA+IGTDrTsgIzdDNzQKK+extSA+IGbDoW47ICM3Qzc1CivnsbYgPiBzaMSTbjsgIzdDNzYKK+extyA+IHpow6k7ICM3Qzc3CivnsbggPiBzaMSTbjsgIzdDNzgKK+exuSA+IG7HmjsgIzdDNzkKK+exuiA+IHhpw6k7ICM3QzdBCivnsbsgPiBsw6hpOyAjN0M3Qgor57G8ID4geGnEgW47ICM3QzdDCivnsb0gPiB6xK07ICM3QzdECivnsb4gPiBuw607ICM3QzdFCivnsb8gPiBjw7luOyAjN0M3Rgor57KBID4gcWnEgW47ICM3QzgxCivnsoMgPiBixK07ICM3QzgzCivnsoQgPiBixINuOyAjN0M4NAor57KFID4gd8O5OyAjN0M4NQor57KGID4gc2jEgTsgIzdDODYKK+eyhyA+IGvEgW5nOyAjN0M4Nwor57KIID4gcsWPdTsgIzdDODgKK+eyiSA+IGbElW47ICM3Qzg5CivnsoogPiBiw6w7ICM3QzhBCivnsosgPiBjw7lpOyAjN0M4Qgor57KNID4gbMOtOyAjN0M4RAor57KOID4gY2jErTsgIzdDOEUKK+eykSA+IGLEgTsgIzdDOTEKK+eykiA+IGzDrDsgIzdDOTIKK+eykyA+IGfEgW47ICM3QzkzCivnspQgPiBqw7k7ICM3Qzk0CivnspUgPiBww7I7ICM3Qzk1CivnspYgPiBtw7I7ICM3Qzk2CivnspcgPiBjxas7ICM3Qzk3CivnspggPiBuacOhbjsgIzdDOTgKK+eymSA+IHpow7J1OyAjN0M5OQor57KaID4gbMOtOyAjN0M5QQor57KbID4gc8O5OyAjN0M5Qgor57KcID4gdGnDoG87ICM3QzlDCivnsp0gPiBsw6w7ICM3QzlECivnsp4gPiBxxKs7ICM3QzlFCivnsp8gPiBzw7k7ICM3QzlGCivnsqAgPiBow7NuZzsgIzdDQTAKK+eyoSA+IHTDs25nOyAjN0NBMQor57KiID4gesSrOyAjN0NBMgor57KjID4gY8OoOyAjN0NBMwor57KkID4geXXDqDsgIzdDQTQKK+eypSA+IHpoxY11OyAjN0NBNQor57KmID4gbMOsbjsgIzdDQTYKK+eypyA+IHpodcSBbmc7ICM3Q0E3CivnsqggPiBixINpOyAjN0NBOAor57KqID4gZsOobjsgIzdDQUEKK+eyriA+IGxpw6FuZzsgIzdDQUUKK+eyryA+IHhpw6BuOyAjN0NBRgor57KwID4gZsO6OyAjN0NCMAor57KxID4gbGnDoW5nOyAjN0NCMQor57KyID4gY8OgbjsgIzdDQjIKK+eysyA+IGfEk25nOyAjN0NCMwor57K0ID4gbMStOyAjN0NCNAor57K1ID4geXXDqDsgIzdDQjUKK+eytiA+IGzDuTsgIzdDQjYKK+eytyA+IGrDujsgIzdDQjcKK+eyuCA+IHHDrTsgIzdDQjgKK+eyuSA+IGPDuWk7ICM3Q0I5CivnsrogPiBiw6BpOyAjN0NCQQor57K7ID4gemjEgW5nOyAjN0NCQgor57K8ID4gbMOtbjsgIzdDQkMKK+eyvSA+IHrDsm5nOyAjN0NCRAor57K+ID4gasSrbmc7ICM3Q0JFCivnsr8gPiBnxa1vOyAjN0NCRgor57OBID4gc8SBbjsgIzdDQzEKK+ezgiA+IHPEg247ICM3Q0MyCivns4MgPiB0w6FuZzsgIzdDQzMKK+ezhCA+IGJpxIFuOyAjN0NDNAor57OFID4gcsWPdTsgIzdDQzUKK+ezhiA+IG1pw6BuOyAjN0NDNgor57OHID4gaMOzdTsgIzdDQzcKK+eziCA+IHjFrTsgIzdDQzgKK+eziSA+IHrDsm5nOyAjN0NDOQor57OKID4gaMO6OyAjN0NDQQor57OLID4gamnDoG47ICM3Q0NCCivns4wgPiB6w6FuOyAjN0NDQwor57ONID4gY8OtOyAjN0NDRAor57OOID4gbMOtOyAjN0NDRQor57OPID4geGnDqDsgIzdDQ0YKK+ezkCA+IGbFqzsgIzdDRDAKK+ezkSA+IG7DrDsgIzdDRDEKK+ezkiA+IGLDqGk7ICM3Q0QyCivns5MgPiBnxa07ICM3Q0QzCivns5QgPiB4xK11OyAjN0NENAor57OVID4gZ8SBbzsgIzdDRDUKK+ezliA+IHTDoW5nOyAjN0NENgor57OXID4gccStdTsgIzdDRDcKK+ezmSA+IGPEgW87ICM3Q0Q5Civns5ogPiB6aHXEgW5nOyAjN0NEQQor57ObID4gdMOhbmc7ICM3Q0RCCivns5wgPiBtw607ICM3Q0RDCivns50gPiBzxIFuOyAjN0NERAor57OeID4gZsOobjsgIzdDREUKK+eznyA+IHrEgW87ICM3Q0RGCivns6AgPiBrxIFuZzsgIzdDRTAKK+ezoSA+IGppw6BuZzsgIzdDRTEKK+ezoiA+IG3DszsgIzdDRTIKK+ezoyA+IHPEg247ICM3Q0UzCivns6QgPiBzxINuOyAjN0NFNAor57OlID4gbsO5bzsgIzdDRTUKK+ezpiA+IHjEqzsgIzdDRTYKK+ezpyA+IGxpw6FuZzsgIzdDRTcKK+ezqCA+IGppw6BuZzsgIzdDRTgKK+ezqSA+IGt1w6BpOyAjN0NFOQor57OqID4gYsOzOyAjN0NFQQor57OrID4gaHXDoW47ICM3Q0VCCivns60gPiB6w7JuZzsgIzdDRUQKK+ezriA+IHhpw6BuOyAjN0NFRQor57OvID4gbsO5bzsgIzdDRUYKK+ezsCA+IHR1w6FuOyAjN0NGMAor57OxID4gbmnDqDsgIzdDRjEKK+ezsiA+IGzDrDsgIzdDRjIKK+ezsyA+IHrDuW87ICM3Q0YzCivns7QgPiBkw607ICM3Q0Y0Civns7UgPiBuacOoOyAjN0NGNQor57O2ID4gdGnDoG87ICM3Q0Y2Civns7cgPiBsw6FuOyAjN0NGNwor57O4ID4gbcOsOyAjN0NGOAor57O5ID4gamnEg28nICdzxKsnICdww6FuZzsgIzdDRjkKK+ezuiA+IGrEq3U7ICM3Q0ZBCivns7sgPiB4w6w7ICM3Q0ZCCivns7wgPiBnxY1uZzsgIzdDRkMKK+ezvSA+IHpoxJVuZzsgIzdDRkQKK+ezviA+IGrEq3U7ICM3Q0ZFCivns78gPiB5w7J1OyAjN0NGRgor57SAID4gasOsOyAjN0QwMAor57SBID4gY2jDoDsgIzdEMDEKK+e0giA+IHpow7J1OyAjN0QwMgor57SDID4geMO6bjsgIzdEMDMKK+e0hCA+IHl1xJM7ICM3RDA0CivntIUgPiBow7NuZzsgIzdEMDUKK+e0hiA+IHnFqzsgIzdEMDYKK+e0hyA+IGjDqTsgIzdEMDcKK+e0iCA+IHfDoW47ICM3RDA4CivntIkgPiByw6huOyAjN0QwOQor57SKID4gd8OobjsgIzdEMEEKK+e0iyA+IHfDqW47ICM3RDBCCivntIwgPiBxw611OyAjN0QwQwor57SNID4gbsOgOyAjN0QwRAor57SOID4gesSrOyAjN0QwRQor57SPID4gdMWPdTsgIzdEMEYKK+e0kCA+IG7ErXU7ICM3RDEwCivntJEgPiBmw7N1OyAjN0QxMQor57SSID4gamnDqDsgIzdEMTIKK+e0kyA+IHNoxas7ICM3RDEzCivntJQgPiBjaMO6bjsgIzdEMTQKK+e0lSA+IHDDrTsgIzdEMTUKK+e0liA+IHnErW47ICM3RDE2CivntJcgPiBzaMSBOyAjN0QxNwor57SYID4gaMOzbmc7ICM3RDE4CivntJkgPiB6aMStOyAjN0QxOQor57SaID4gasOtOyAjN0QxQQor57SbID4gZsSTbjsgIzdEMUIKK+e0nCA+IHnDum47ICM3RDFDCivntJ0gPiByw6luOyAjN0QxRAor57SeID4gZMSDbjsgIzdEMUUKK+e0nyA+IGrEq247ICM3RDFGCivntKAgPiBzw7k7ICM3RDIwCivntKEgPiBmxINuZzsgIzdEMjEKK+e0oiA+IHPFrW87ICM3RDIyCivntKMgPiBjw7lpOyAjN0QyMwor57SkID4gasStdTsgIzdEMjQKK+e0pSA+IHpow6E7ICM3RDI1CivntKcgPiBqxK1uOyAjN0QyNwor57SoID4gZsO5OyAjN0QyOAor57SpID4gemjDrDsgIzdEMjkKK+e0qiA+IGPErTsgIzdEMkEKK+e0qyA+IHrErTsgIzdEMkIKK+e0rCA+IGNow7N1OyAjN0QyQwor57StID4gaMOzbmc7ICM3RDJECivntK4gPiB6aMOhOyAjN0QyRQor57SvID4gbMOoaTsgIzdEMkYKK+e0sCA+IHjDrDsgIzdEMzAKK+e0sSA+IGbDujsgIzdEMzEKK+e0siA+IHhpw6g7ICM3RDMyCivntLMgPiBzaMSTbjsgIzdEMzMKK+e0tCA+IGLDqGk7ICM3RDM0CivntLUgPiB6aMO5OyAjN0QzNQor57S2ID4gccWtOyAjN0QzNgor57S3ID4gbMOtbmc7ICM3RDM3CivntLggPiB6aMO5OyAjN0QzOAor57S5ID4gc2jDoG87ICM3RDM5CivntLogPiBnw6BuOyAjN0QzQQor57S7ID4gecSBbmc7ICM3RDNCCivntLwgPiBmw7o7ICM3RDNDCivntL0gPiB0w7pvOyAjN0QzRAor57S+ID4gemjElW47ICM3RDNFCivntL8gPiBkw6BpOyAjN0QzRgor57WAID4gemjDum87ICM3RDQwCivntYEgPiBzaMSrOyAjN0Q0MQor57WCID4gemjFjW5nOyAjN0Q0Mgor57WDID4geGnDoW47ICM3RDQzCivntYQgPiB6xa07ICM3RDQ0CivntYUgPiBqxK1vbmc7ICM3RDQ1CivntYYgPiBiw6BuOyAjN0Q0Ngor57WHID4gasO5OyAjN0Q0Nwor57WIID4gbcOyOyAjN0Q0OAor57WJID4gc2jDuTsgIzdENDkKK+e1iiA+IHrDuWk7ICM3RDRBCivntYwgPiBqxKtuZzsgIzdENEMKK+e1jSA+IHLDqW47ICM3RDRECivntY4gPiBow6huZzsgIzdENEUKK+e1jyA+IHhpw6g7ICM3RDRGCivntZAgPiBqacOpOyAjN0Q1MAor57WRID4gemjFqzsgIzdENTEKK+e1kiA+IGNow7N1OyAjN0Q1Mgor57WTID4gZ3XDoDsgIzdENTMKK+e1lCA+IGLEg2k7ICM3RDU0CivntZUgPiBqdcOpOyAjN0Q1NQor57WWID4ga3XDoG5nOyAjN0Q1Ngor57WXID4gaMO6OyAjN0Q1Nwor57WYID4gY8OsOyAjN0Q1OAor57WZID4gZ8STbmc7ICM3RDU5CivntZogPiBnxJNuZzsgIzdENUEKK+e1myA+IHTEgW87ICM3RDVCCivntZwgPiB4acOpOyAjN0Q1Qwor57WdID4ga8O5OyAjN0Q1RAor57WeID4gamnEg287ICM3RDVFCivntZ8gPiBxdcSBbjsgIzdENUYKK+e1oCA+IGfEg2k7ICM3RDYwCivntaEgPiBsw7lvOyAjN0Q2MQor57WiID4geHXDoG47ICM3RDYyCivntaMgPiBixKtuZzsgIzdENjMKK+e1pCA+IHhpw6BuOyAjN0Q2NAor57WlID4gZsO6OyAjN0Q2NQor57WmID4gZ8SVaTsgIzdENjYKK+e1pyA+IHTDs25nOyAjN0Q2Nwor57WoID4gcsOzbmc7ICM3RDY4CivntakgPiB0acOgbzsgIzdENjkKK+e1qiA+IHnEq247ICM3RDZBCivntasgPiBsxJVpOyAjN0Q2Qgor57WsID4geGnDqDsgIzdENkMKK+e1rSA+IHF1w6BuOyAjN0Q2RAor57WuID4geMO5OyAjN0Q2RQor57WvID4gbMecbjsgIzdENkYKK+e1sCA+IGRpw6k7ICM3RDcwCivntbEgPiB0xY9uZzsgIzdENzEKK+e1siA+IHPEqzsgIzdENzIKK+e1syA+IGppw6BuZzsgIzdENzMKK+e1tCA+IHhpw6FuZzsgIzdENzQKK+e1tSA+IGjDuWk7ICM3RDc1CivntbYgPiBqdcOpOyAjN0Q3Ngor57W3ID4gemjDrTsgIzdENzcKK+e1uCA+IGppxINuOyAjN0Q3OAor57W5ID4ganXDoG47ICM3RDc5CivntbogPiBjaMSrOyAjN0Q3QQor57W7ID4gbWnEg247ICM3RDdCCivntbwgPiB6aMSVbjsgIzdEN0MKK+e1vSA+IGzHmjsgIzdEN0QKK+e1viA+IGNow6luZzsgIzdEN0UKK+e1vyA+IHHDrXU7ICM3RDdGCivntoAgPiBzaMWrOyAjN0Q4MAor57aBID4gYsSDbmc7ICM3RDgxCivntoIgPiB0xY9uZzsgIzdEODIKK+e2gyA+IHhpxIFvOyAjN0Q4Mwor57aEID4gd8OgbjsgIzdEODQKK+e2hSA+IHHEq247ICM3RDg1CivntoYgPiBnxJVuZzsgIzdEODYKK+e2hyA+IHjErXU7ICM3RDg3CivntoggPiB0w607ICM3RDg4CivntokgPiB4w6x1OyAjN0Q4OQor57aKID4geGnDqTsgIzdEOEEKK+e2iyA+IGjDs25nOyAjN0Q4Qgor57aMID4geMOsOyAjN0Q4Qwor57aNID4gZsO6OyAjN0Q4RAor57aOID4gdMSrbmc7ICM3RDhFCivnto8gPiBzxatpOyAjN0Q4Rgor57aQID4gZMO5aTsgIzdEOTAKK+e2kSA+IGvFrW47ICM3RDkxCivntpIgPiBmxas7ICM3RDkyCivntpMgPiBqxKtuZzsgIzdEOTMKK+e2lCA+IGjDuTsgIzdEOTQKK+e2lSA+IHpoxKs7ICM3RDk1CivntpYgPiB5w6FuOyAjN0Q5Ngor57aXID4gasStb25nOyAjN0Q5Nwor57aYID4gZsOpbmc7ICM3RDk4CivntpkgPiBqw6w7ICM3RDk5CivntpwgPiB6w7JuZzsgIzdEOUMKK+e2nSA+IGzDrW47ICM3RDlECivntp4gPiBkxa1vOyAjN0Q5RQor57afID4gbMOsOyAjN0Q5Rgor57agID4gbMecOyAjN0RBMAor57ahID4gbGnDoW5nOyAjN0RBMQor57aiID4gY2jDs3U7ICM3REEyCivntqMgPiBxdcSDbjsgIzdEQTMKK+e2pCA+IHNow6BvOyAjN0RBNAor57alID4gccOsOyAjN0RBNQor57amID4gccOtOyAjN0RBNgor57anID4gemjFrW47ICM3REE3CivntqggPiBxw607ICM3REE4CivntqkgPiB3xINuOyAjN0RBOQor57aqID4gcWnDoG47ICM3REFBCivntqsgPiB4acOgbjsgIzdEQUIKK+e2rCA+IHNow7J1OyAjN0RBQwor57atID4gd8OpaTsgIzdEQUQKK+e2riA+IHHErTsgIzdEQUUKK+e2ryA+IHTDoW87ICM3REFGCivntrAgPiB3xINuOyAjN0RCMAor57axID4gZ8SBbmc7ICM3REIxCivntrIgPiB3xINuZzsgIzdEQjIKK+e2syA+IGLEk25nOyAjN0RCMwor57a0ID4gemjDuWk7ICM3REI0CivntrUgPiBjxINpOyAjN0RCNQor57a2ID4gZ8WtbzsgIzdEQjYKK+e2tyA+IGPDuWk7ICM3REI3CivntrggPiBsw7puOyAjN0RCOAor57a5ID4gbMStdTsgIzdEQjkKK+e2uiA+IHHErTsgIzdEQkEKK+e2uyA+IHpow6BuOyAjN0RCQgor57a8ID4gYsSTaTsgIzdEQkMKK+e2vSA+IGNow7lvOyAjN0RCRAor57a+ID4gbMOtbmc7ICM3REJFCivntr8gPiBtacOhbjsgIzdEQkYKK+e3gCA+IHHEqzsgIzdEQzAKK+e3gSA+IHFpw6g7ICM3REMxCivnt4IgPiB0xIFuOyAjN0RDMgor57eDID4gesWNbmc7ICM3REMzCivnt4QgPiBnxa1uOyAjN0RDNAor57eFID4gesWNdTsgIzdEQzUKK+e3hiA+IHnDrDsgIzdEQzYKK+e3hyA+IHrEqzsgIzdEQzcKK+e3iCA+IHjDrG5nOyAjN0RDOAor57eJID4gbGnEg25nOyAjN0RDOQor57eKID4gasStbjsgIzdEQ0EKK+e3iyA+IGbEk2k7ICM3RENCCivnt4wgPiByw7ppOyAjN0RDQwor57eNID4gbcOtbjsgIzdEQ0QKK+e3jiA+IHnDuTsgIzdEQ0UKK+e3jyA+IHrFj25nOyAjN0RDRgor57eQID4gZsOhbjsgIzdERDAKK+e3kSA+IGzHnDsgIzdERDEKK+e3kiA+IHjDuTsgIzdERDIKK+e3kyA+IHlpbmdsOyAjN0REMwor57eUID4gemjDoG5nOyAjN0RENAor57eWID4geMO5OyAjN0RENgor57eXID4geGnEgW5nOyAjN0RENwor57eYID4gamnEgW47ICM3REQ4Civnt5kgPiBrw6g7ICM3REQ5Civnt5ogPiB4acOgbjsgIzdEREEKK+e3myA+IHJ1xINuOyAjN0REQgor57ecID4gbWnDoW47ICM3RERDCivnt50gPiBxw6w7ICM3RERECivnt54gPiBkdcOgbjsgIzdEREUKK+e3nyA+IHpow7JuZzsgIzdEREYKK+e3oCA+IGTDrDsgIzdERTAKK+e3oSA+IG3DrW47ICM3REUxCivnt6IgPiBtacOhbzsgIzdERTIKK+e3oyA+IHl1w6FuOyAjN0RFMwor57ekID4geGnDqDsgIzdERTQKK+e3pSA+IGLEg287ICM3REU1Civnt6YgPiBzxKs7ICM3REU2Civnt6cgPiBxxKt1OyAjN0RFNwor57eoID4gYmnEgW47ICM3REU4Civnt6kgPiBodcSDbjsgIzdERTkKK+e3qiA+IGfEk25nOyAjN0RFQQor57erID4gY8WNbmc7ICM3REVCCivnt6wgPiBtacSDbjsgIzdERUMKK+e3rSA+IHfDqGk7ICM3REVECivnt64gPiBmw7k7ICM3REVFCivnt68gPiB3xJVpOyAjN0RFRgor57ewID4gecO6OyAjN0RGMAor57exID4gZ8WNdTsgIzdERjEKK+e3siA+IG1pxINvOyAjN0RGMgor57ezID4geGnDqTsgIzdERjMKK+e3tCA+IGxpw6BuOyAjN0RGNAor57e1ID4gesWNbmc7ICM3REY1Civnt7YgPiBiacOgbjsgIzdERjYKK+e3tyA+IHnDuW47ICM3REY3Civnt7ggPiB5xKtuOyAjN0RGOAor57e5ID4gdMOtOyAjN0RGOQor57e6ID4gZ3XEgTsgIzdERkEKK+e3uyA+IHpow6w7ICM3REZCCivnt7wgPiB5xatuOyAjN0RGQwor57e9ID4gY2jEk25nOyAjN0RGRAor57e+ID4gY2jDoW47ICM3REZFCivnt78gPiBkw6BpOyAjN0RGRgor57iAID4geGnDoTsgIzdFMDAKK+e4gSA+IHl1w6FuOyAjN0UwMQor57iCID4gesWPbmc7ICM3RTAyCivnuIMgPiB4xas7ICM3RTAzCivnuIYgPiBnxJNuZzsgIzdFMDYKK+e4iCA+IHnDrW5nOyAjN0UwOAor57iJID4gasOsbjsgIzdFMDkKK+e4iiA+IHnDrDsgIzdFMEEKK+e4iyA+IHpow7lpOyAjN0UwQgor57iMID4gbsOsOyAjN0UwQwor57iNID4gYsSBbmc7ICM3RTBECivnuI4gPiBnxa07ICM3RTBFCivnuI8gPiBww6FuOyAjN0UwRgor57iQID4gemjDsnU7ICM3RTEwCivnuJEgPiBqacSBbjsgIzdFMTEKK+e4kiA+IGPFrW87ICM3RTEyCivnuJMgPiBxdcSDbjsgIzdFMTMKK+e4lCA+IHNodcSDbmc7ICM3RTE0CivnuJUgPiB5xatuOyAjN0UxNQor57iWID4geGnDoTsgIzdFMTYKK+e4lyA+IHNodcSBaTsgIzdFMTcKK+e4mCA+IHjEqzsgIzdFMTgKK+e4mSA+IHLDs25nOyAjN0UxOQor57iaID4gdMSBbzsgIzdFMUEKK+e4myA+IGbDujsgIzdFMUIKK+e4nCA+IHnDum47ICM3RTFDCivnuJ0gPiB6aMSTbjsgIzdFMUQKK+e4niA+IGfEg287ICM3RTFFCivnuJ8gPiByw7k7ICM3RTFGCivnuKAgPiBow7o7ICM3RTIwCivnuKEgPiB6xINpOyAjN0UyMQor57iiID4gdMOpbmc7ICM3RTIyCivnuKMgPiB4acOgbjsgIzdFMjMKK+e4pCA+IHPDuTsgIzdFMjQKK+e4pSA+IHpoxJVuOyAjN0UyNQor57imID4gesOybmc7ICM3RTI2CivnuKcgPiB0xIFvOyAjN0UyNwor57ipID4gY8OgaTsgIzdFMjkKK+e4qiA+IGLDrDsgIzdFMkEKK+e4qyA+IGbDqW5nOyAjN0UyQgor57isID4gY8O5OyAjN0UyQwor57itID4gbMOtOyAjN0UyRAor57iuID4gc8WrbzsgIzdFMkUKK+e4ryA+IHnErW47ICM3RTJGCivnuLAgPiB4xK07ICM3RTMwCivnuLEgPiB6w7JuZzsgIzdFMzEKK+e4siA+IGzDqWk7ICM3RTMyCivnuLMgPiB6aHXDoG47ICM3RTMzCivnuLQgPiBxacSBbjsgIzdFMzQKK+e4tSA+IG3DoG47ICM3RTM1CivnuLYgPiB6aMOtOyAjN0UzNgor57i3ID4gbMeaOyAjN0UzNwor57i4ID4gbcOyOyAjN0UzOAor57i5ID4gcGnEg287ICM3RTM5CivnuLogPiBsacOhbjsgIzdFM0EKK+e4uyA+IG3DrTsgIzdFM0IKK+e4vCA+IHh1w6BuOyAjN0UzQwor57i9ID4gesWPbmc7ICM3RTNECivnuL4gPiBqxKs7ICM3RTNFCivnuL8gPiBzaMSBbjsgIzdFM0YKK+e5gCA+IHPDuWk7ICM3RTQwCivnuYEgPiBmw6FuOyAjN0U0MQor57mCID4gc2h1w6BpOyAjN0U0Mgor57mDID4gYsSTbmc7ICM3RTQzCivnuYQgPiB5xKs7ICM3RTQ0CivnuYUgPiBzxIFvOyAjN0U0NQor57mGID4gbcOzdTsgIzdFNDYKK+e5hyA+IHpow7J1OyAjN0U0Nwor57mIID4gcWnEg25nOyAjN0U0OAor57mJID4gaMO6bjsgIzdFNDkKK+e5iyA+IHjDrDsgIzdFNEIKK+e5jSA+IHjDrHU7ICM3RTRECivnuY4gPiByw6FuOyAjN0U0RQor57mPID4geHXDoG47ICM3RTRGCivnuZAgPiBow7lpOyAjN0U1MAor57mRID4gcWnEgW87ICM3RTUxCivnuZIgPiB6xJNuZzsgIzdFNTIKK+e5kyA+IHrFrW87ICM3RTUzCivnuZQgPiB6aMSrOyAjN0U1NAor57mVID4gc2jDoG47ICM3RTU1CivnuZYgPiBzxINuOyAjN0U1Ngor57mXID4gbMOtbjsgIzdFNTcKK+e5mCA+IHnDuTsgIzdFNTgKK+e5mSA+IGbEgW47ICM3RTU5CivnuZogPiBsacOhbzsgIzdFNUEKK+e5myA+IGNow7lvOyAjN0U1Qgor57mcID4gesWrbjsgIzdFNUMKK+e5nSA+IGppw6BuOyAjN0U1RAor57meID4gcsOgbzsgIzdFNUUKK+e5nyA+IGNoxINuOyAjN0U1Rgor57mgID4gcsWtaTsgIzdFNjAKK+e5oSA+IHjDrHU7ICM3RTYxCivnuaIgPiBow7lpOyAjN0U2Mgor57mjID4gaHXDoDsgIzdFNjMKK+e5pCA+IHp1xINuOyAjN0U2NAor57mlID4geMSrOyAjN0U2NQor57mmID4gcWnEg25nOyAjN0U2Ngor57moID4gZMOhOyAjN0U2OAor57mpID4gc2jDqW5nOyAjN0U2OQor57mqID4gaMO5aTsgIzdFNkEKK+e5qyA+IHjDrDsgIzdFNkIKK+e5rCA+IHPDqDsgIzdFNkMKK+e5rSA+IGppxINuOyAjN0U2RAor57muID4gamnEgW5nOyAjN0U2RQor57mvID4gaHXDoW47ICM3RTZGCivnubAgPiB6xINvOyAjN0U3MAor57mxID4gY8WNbmc7ICM3RTcxCivnubIgPiBqacOoOyAjN0U3Mgor57mzID4gamnEg287ICM3RTczCivnubQgPiBiw7I7ICM3RTc0CivnubUgPiBjaMOhbjsgIzdFNzUKK+e5tiA+IHnDrDsgIzdFNzYKK+e5tyA+IG7DoW87ICM3RTc3CivnubggPiBzw7lpOyAjN0U3OAor57m5ID4gecOsOyAjN0U3OQor57m6ID4gc2jEg2k7ICM3RTdBCivnubsgPiB4xas7ICM3RTdCCivnubwgPiBqw6w7ICM3RTdDCivnub0gPiBixKtuOyAjN0U3RAor57m+ID4gcWnEg247ICM3RTdFCivnub8gPiBsw6FuOyAjN0U3Rgor57qAID4gcMO6OyAjN0U4MAor57qBID4geMWrbjsgIzdFODEKK+e6giA+IHp1xINuOyAjN0U4Mgor57qDID4gccOtOyAjN0U4Mwor57qEID4gcMOpbmc7ICM3RTg0CivnuoUgPiBsw6w7ICM3RTg1CivnuoYgPiBtw7I7ICM3RTg2CivnuocgPiBsw6hpOyAjN0U4Nwor57qIID4geGnDqTsgIzdFODgKK+e6iSA+IHp1xINuOyAjN0U4OQor57qKID4ga3XDoG5nOyAjN0U4QQor57qLID4gecWNdTsgIzdFOEIKK+e6jCA+IHjDuTsgIzdFOEMKK+e6jSA+IGzDqWk7ICM3RThECivnuo4gPiB4acSBbjsgIzdFOEUKK+e6jyA+IGNow6FuOyAjN0U4Rgor57qRID4gbMO6OyAjN0U5MQor57qSID4gY2jDoW47ICM3RTkyCivnupMgPiB5xKtuZzsgIzdFOTMKK+e6lCA+IGPDoWk7ICM3RTk0CivnupUgPiB4acSBbmc7ICM3RTk1CivnupYgPiB4acSBbjsgIzdFOTYKK+e6lyA+IHrFq2k7ICM3RTk3CivnupggPiB6dcSDbjsgIzdFOTgKK+e6mSA+IGzDuW87ICM3RTk5CivnupogPiB4xK07ICM3RTlBCivnupsgPiBkw6BvOyAjN0U5Qgor57qcID4gbMOgbjsgIzdFOUMKK+e6nSA+IGzDqWk7ICM3RTlECivnup4gPiBsacOgbjsgIzdFOUUKK+e6nyA+IHPEqzsgIzdFOUYKK+e6oCA+IGrEq3U7ICM3RUEwCivnuqEgPiB5xas7ICM3RUExCivnuqIgPiBow7NuZzsgIzdFQTIKK+e6oyA+IHpow7J1OyAjN0VBMwor57qkID4geGnEgW47ICM3RUE0CivnuqUgPiBow6k7ICM3RUE1CivnuqYgPiB5dcSTOyAjN0VBNgor57qnID4gasOtOyAjN0VBNwor57qoID4gd8OhbjsgIzdFQTgKK+e6qSA+IGt1w6BuZzsgIzdFQTkKK+e6qiA+IGrDrDsgIzdFQUEKK+e6qyA+IHLDqG47ICM3RUFCCivnuqwgPiB3xJVpOyAjN0VBQwor57qtID4gecO6bjsgIzdFQUQKK+e6riA+IGjDs25nOyAjN0VBRQor57qvID4gY2jDum47ICM3RUFGCivnurAgPiBww607ICM3RUIwCivnurEgPiBzaMSBOyAjN0VCMQor57qyID4gZ8SBbmc7ICM3RUIyCivnurMgPiBuw6A7ICM3RUIzCivnurQgPiByw6luOyAjN0VCNAor57q1ID4gesOybmc7ICM3RUI1CivnurYgPiBsw7puOyAjN0VCNgor57q3ID4gZsSTbjsgIzdFQjcKK+e6uCA+IHpoxK07ICM3RUI4CivnurkgPiB3w6luOyAjN0VCOQor57q6ID4gZsSDbmc7ICM3RUJBCivnursgPiB6aMO5OyAjN0VCQgor57q8ID4gecStbjsgIzdFQkMKK+e6vSA+IG7ErXU7ICM3RUJECivnur4gPiBzaMWrOyAjN0VCRQor57q/ID4geGnDoG47ICM3RUJGCivnu4AgPiBnw6BuOyAjN0VDMAor57uBID4geGnDqDsgIzdFQzEKK+e7giA+IGbDujsgIzdFQzIKK+e7gyA+IGxpw6BuOyAjN0VDMwor57uEID4gesWtOyAjN0VDNAor57uFID4gc2jEk247ICM3RUM1Civnu4YgPiB4w6w7ICM3RUM2Civnu4cgPiB6aMSrOyAjN0VDNwor57uIID4gemjFjW5nOyAjN0VDOAor57uJID4gemjDsnU7ICM3RUM5Civnu4ogPiBiw6BuOyAjN0VDQQor57uLID4gZsO6OyAjN0VDQgor57uMID4gemjDum87ICM3RUNDCivnu40gPiBzaMOgbzsgIzdFQ0QKK+e7jiA+IHnDrDsgIzdFQ0UKK+e7jyA+IGrEq25nOyAjN0VDRgor57uQID4gZMOgaTsgIzdFRDAKK+e7kSA+IGLEg25nOyAjN0VEMQor57uSID4gcsOzbmc7ICM3RUQyCivnu5MgPiBqacOpOyAjN0VEMwor57uUID4ga8O5OyAjN0VENAor57uVID4gcsOgbzsgIzdFRDUKK+e7liA+IGRpw6k7ICM3RUQ2Civnu5cgPiBow6huZzsgIzdFRDcKK+e7mCA+IGjDuWk7ICM3RUQ4Civnu5kgPiBnxJVpOyAjN0VEOQor57uaID4geHXDoG47ICM3RURBCivnu5sgPiBqacOgbmc7ICM3RURCCivnu5wgPiBsw7lvOyAjN0VEQwor57udID4ganXDqTsgIzdFREQKK+e7niA+IGppxINvOyAjN0VERQor57ufID4gdMWPbmc7ICM3RURGCivnu6AgPiBnxJVuZzsgIzdFRTAKK+e7oSA+IHhpxIFvOyAjN0VFMQor57uiID4ganXDoG47ICM3RUUyCivnu6MgPiB4w6x1OyAjN0VFMwor57ukID4geMOsOyAjN0VFNAor57ulID4gc8WraTsgIzdFRTUKK+e7piA+IHTEgW87ICM3RUU2Civnu6cgPiBqw6w7ICM3RUU3Civnu6ggPiB0w607ICM3RUU4Civnu6kgPiBqxKs7ICM3RUU5Civnu6ogPiB4w7k7ICM3RUVBCivnu6sgPiBsw61uZzsgIzdFRUIKK+e7rSA+IHjDuTsgIzdFRUQKK+e7riA+IHHErTsgIzdFRUUKK+e7ryA+IGbEk2k7ICM3RUVGCivnu7AgPiBjaMO5bzsgIzdFRjAKK+e7sSA+IHpoxINuZzsgIzdFRjEKK+e7siA+IGfFrW47ICM3RUYyCivnu7MgPiBzaMOpbmc7ICM3RUYzCivnu7QgPiB3w6lpOyAjN0VGNAor57u1ID4gbWnDoW47ICM3RUY1Civnu7YgPiBzaMOydTsgIzdFRjYKK+e7tyA+IGLEk25nOyAjN0VGNwor57u4ID4gY2jDs3U7ICM3RUY4Civnu7kgPiB0w6FvOyAjN0VGOQor57u6ID4gbMStdTsgIzdFRkEKK+e7uyA+IHF1xINuOyAjN0VGQgor57u8ID4gesOybmc7ICM3RUZDCivnu70gPiB6aMOgbjsgIzdFRkQKK+e7viA+IHfEg247ICM3RUZFCivnu78gPiBsx5w7ICM3RUZGCivnvIAgPiB6aMO5aTsgIzdGMDAKK+e8gSA+IHrEqzsgIzdGMDEKK+e8giA+IGvDqDsgIzdGMDIKK+e8gyA+IHhpxIFuZzsgIzdGMDMKK+e8hCA+IGppxIFuOyAjN0YwNAor57yFID4gbWnEg247ICM3RjA1CivnvIYgPiBsw6BuOyAjN0YwNgor57yHID4gdMOtOyAjN0YwNwor57yIID4gbWnEg287ICM3RjA4CivnvIkgPiBxw6w7ICM3RjA5CivnvIogPiB5xatuOyAjN0YwQQor57yLID4gaMO5aTsgIzdGMEIKK+e8jCA+IHPEqzsgIzdGMEMKK+e8jSA+IGTFrW87ICM3RjBECivnvI4gPiBkdcOgbjsgIzdGMEUKK+e8jyA+IGJpw6BuOyAjN0YwRgor57yQID4geGnDoG47ICM3RjEwCivnvJEgPiBnxY11OyAjN0YxMQor57ySID4gemjDuWk7ICM3RjEyCivnvJMgPiBodcSDbjsgIzdGMTMKK+e8lCA+IGTDrDsgIzdGMTQKK+e8lSA+IGzHmjsgIzdGMTUKK+e8liA+IGJpxIFuOyAjN0YxNgor57yXID4gbcOtbjsgIzdGMTcKK+e8mCA+IHl1w6FuOyAjN0YxOAor57yZID4gasOsbjsgIzdGMTkKK+e8miA+IGbDujsgIzdGMUEKK+e8myA+IHLDuTsgIzdGMUIKK+e8nCA+IHpoxJNuOyAjN0YxQwor57ydID4gZsOpbmc7ICM3RjFECivnvJ4gPiBzaHXEgWk7ICM3RjFFCivnvJ8gPiBnxINvOyAjN0YxRgor57ygID4gY2jDoW47ICM3RjIwCivnvKEgPiBsw607ICM3RjIxCivnvKIgPiB5w6w7ICM3RjIyCivnvKMgPiBqacSBbjsgIzdGMjMKK+e8pCA+IGLEq247ICM3RjI0CivnvKUgPiBwacSDbzsgIzdGMjUKK+e8piA+IG3DoG47ICM3RjI2CivnvKcgPiBsw6lpOyAjN0YyNwor57yoID4gecSrbmc7ICM3RjI4CivnvKkgPiBzxatvOyAjN0YyOQor57yqID4gbcOzdTsgIzdGMkEKK+e8qyA+IHPEgW87ICM3RjJCCivnvKwgPiB4acOpOyAjN0YyQwor57ytID4gbGnDoW87ICM3RjJECivnvK4gPiBzaMOgbjsgIzdGMkUKK+e8ryA+IHrEk25nOyAjN0YyRgor57ywID4gamnEgW5nOyAjN0YzMAor57yxID4gcWnEg247ICM3RjMxCivnvLIgPiB6xINvOyAjN0YzMgor57yzID4gaHXDoW47ICM3RjMzCivnvLQgPiBqacSDbzsgIzdGMzQKK+e8tSA+IHp1xINuOyAjN0YzNQor57y2ID4gZsWPdTsgIzdGMzYKK+e8tyA+IHhpw6g7ICM3RjM3CivnvLggPiBnxIFuZzsgIzdGMzgKK+e8uSA+IGbFj3U7ICM3RjM5CivnvLogPiBxdcSTOyAjN0YzQQor57y7ID4gZsWPdTsgIzdGM0IKK+e8vSA+IGLFjTsgIzdGM0QKK+e8viA+IHDDrW5nOyAjN0YzRQor57y/ID4gaMOydTsgIzdGM0YKK+e9gSA+IGfEgW5nOyAjN0Y0MQor572CID4gecSrbmc7ICM3RjQyCivnvYMgPiB5xKtuZzsgIzdGNDMKK+e9hCA+IHHDrG5nOyAjN0Y0NAor572FID4geGnDoDsgIzdGNDUKK+e9hiA+IGd1w6BuOyAjN0Y0Ngor572HID4gesWrbjsgIzdGNDcKK+e9iCA+IHTDoW47ICM3RjQ4CivnvYogPiBxw6w7ICM3RjRBCivnvYsgPiB3w6huZzsgIzdGNEIKK+e9jCA+IHnEq25nOyAjN0Y0Qwor572NID4gbMOpaTsgIzdGNEQKK+e9jiA+IHTDoW47ICM3RjRFCivnvY8gPiBsw7o7ICM3RjRGCivnvZAgPiBndcOgbjsgIzdGNTAKK+e9kSA+IHfEg25nOyAjN0Y1MQor572SID4gd8SDbmc7ICM3RjUyCivnvZMgPiBnxIFuZzsgIzdGNTMKK+e9lCA+IHfEg25nOyAjN0Y1NAor572VID4gaMSDbjsgIzdGNTUKK+e9lyA+IGzFq287ICM3RjU3CivnvZggPiBmw7o7ICM3RjU4CivnvZkgPiBtw607ICM3RjU5CivnvZogPiBmw6E7ICM3RjVBCivnvZsgPiBnxas7ICM3RjVCCivnvZwgPiB6aMWtOyAjN0Y1Qwor572dID4gasWrOyAjN0Y1RAor572eID4gbcOhbzsgIzdGNUUKK+e9nyA+IGfFrTsgIzdGNUYKK+e9oCA+IG3DrW47ICM3RjYwCivnvaEgPiBnxIFuZzsgIzdGNjEKK+e9oiA+IGLDoDsgIzdGNjIKK+e9oyA+IGd1w6A7ICM3RjYzCivnvaQgPiB0w607ICM3RjY0CivnvaUgPiBqdcOgbjsgIzdGNjUKK+e9piA+IGbFqzsgIzdGNjYKK+e9pyA+IGzDrW47ICM3RjY3CivnvaggPiB5xINuOyAjN0Y2OAor572pID4gemjDoG87ICM3RjY5CivnvaogPiB6w7lpOyAjN0Y2QQor572rID4gZ3XDoDsgIzdGNkIKK+e9rCA+IHpow7pvOyAjN0Y2Qwor572tID4gecO5OyAjN0Y2RAor572uID4gemjDrDsgIzdGNkUKK+e9ryA+IMSDbjsgIzdGNkYKK+e9sCA+IGbDoTsgIzdGNzAKK+e9sSA+IG7Eg247ICM3RjcxCivnvbIgPiBzaMWtOyAjN0Y3Mgor572zID4gc8SrOyAjN0Y3Mwor5720ID4gcMOtOyAjN0Y3NAor5721ID4gbcOgOyAjN0Y3NQor5722ID4gbMStdTsgIzdGNzYKK+e9tyA+IGLDoDsgIzdGNzcKK+e9uCA+IGbDoTsgIzdGNzgKK+e9uSA+IGzDrTsgIzdGNzkKK+e9uiA+IGNoxIFvOyAjN0Y3QQor5727ID4gd8OoaTsgIzdGN0IKK+e9vCA+IGLDrDsgIzdGN0MKK+e9vSA+IGrDrDsgIzdGN0QKK+e9viA+IHrEk25nOyAjN0Y3RQor572/ID4gdMOzbmc7ICM3RjdGCivnvoAgPiBsxK11OyAjN0Y4MAor576BID4gasSrOyAjN0Y4MQor576CID4ganXDoG47ICM3RjgyCivnvoMgPiBtw6w7ICM3RjgzCivnvoQgPiB6aMOgbzsgIzdGODQKK+e+hSA+IGzDum87ICM3Rjg1CivnvoYgPiBww607ICM3Rjg2CivnvocgPiBqxKs7ICM3Rjg3CivnvoggPiBqxKs7ICM3Rjg4CivnvokgPiBsdcOhbjsgIzdGODkKK+e+iiA+IHnDoW5nOyAjN0Y4QQor576LID4gbWnEkzsgIzdGOEIKK+e+jCA+IHFpxIFuZzsgIzdGOEMKK+e+jSA+IHTDoDsgIzdGOEQKK+e+jiA+IG3ElWk7ICM3RjhFCivnvo8gPiB5w6FuZzsgIzdGOEYKK+e+kCA+IHnFj3U7ICM3RjkwCivnvpEgPiB5xY91OyAjN0Y5MQor576SID4gZsOpbjsgIzdGOTIKK+e+kyA+IGLEgTsgIzdGOTMKK+e+lCA+IGfEgW87ICM3Rjk0CivnvpUgPiB5w6BuZzsgIzdGOTUKK+e+liA+IGfFrTsgIzdGOTYKK+e+lyA+IHFpxIFuZzsgIzdGOTcKK+e+mCA+IHrEgW5nOyAjN0Y5OAor576ZID4gZ8SBbzsgIzdGOTkKK+e+miA+IGzDrW5nOyAjN0Y5QQor576bID4gecOsOyAjN0Y5Qgor576cID4gemjDuTsgIzdGOUMKK+e+nSA+IGTEqzsgIzdGOUQKK+e+niA+IHjEq3U7ICM3RjlFCivnvp8gPiBxacSBbjsgIzdGOUYKK+e+oCA+IHnDrTsgIzdGQTAKK+e+oSA+IHhpw6BuOyAjN0ZBMQor576iID4gcsOzbmc7ICM3RkEyCivnvqMgPiBxw7puOyAjN0ZBMwor576kID4gccO6bjsgIzdGQTQKK+e+pSA+IHFpxIFuOyAjN0ZBNQor576mID4gaHXDoW47ICM3RkE2CivnvqcgPiB6xatpOyAjN0ZBNwor576oID4geGnDoG47ICM3RkE4CivnvqkgPiB5w6w7ICM3RkE5CivnvqsgPiBxacSBbmc7ICM3RkFCCivnvqwgPiB4acOhbjsgIzdGQUMKK+e+rSA+IHnDujsgIzdGQUQKK+e+riA+IGfEk25nOyAjN0ZBRQor576vID4gamnDqTsgIzdGQUYKK+e+sCA+IHTEgW5nOyAjN0ZCMAor576xID4geXXDoW47ICM3RkIxCivnvrIgPiB4xKs7ICM3RkIyCivnvrMgPiBmw6FuOyAjN0ZCMwor5760ID4gc2jEgW47ICM3RkI0CivnvrUgPiBmxJVuOyAjN0ZCNQor5762ID4gc2jEgW47ICM3RkI2CivnvrcgPiBsacSDbjsgIzdGQjcKK+e+uCA+IGzDqWk7ICM3RkI4CivnvrkgPiBnxJNuZzsgIzdGQjkKK+e+uiA+IG7Ds3U7ICM3RkJBCivnvrsgPiBxacOgbmc7ICM3RkJCCivnvrwgPiBjaMOgbjsgIzdGQkMKK+e+vSA+IHnFrTsgIzdGQkQKK+e+viA+IGfDsm5nOyAjN0ZCRQor576/ID4gecOsOyAjN0ZCRgor57+AID4gY2jDs25nOyAjN0ZDMAor57+BID4gd8STbmc7ICM3RkMxCivnv4IgPiBmxJNuOyAjN0ZDMgor57+DID4gaMOzbmc7ICM3RkMzCivnv4QgPiBjaMOsOyAjN0ZDNAor57+FID4gY2jDrDsgIzdGQzUKK+e/hiA+IGPDuWk7ICM3RkM2Civnv4cgPiBmw7o7ICM3RkM3Civnv4ggPiB4acOhOyAjN0ZDOAor57+JID4gcMSVbjsgIzdGQzkKK+e/iiA+IHnDrDsgIzdGQ0EKK+e/iyA+IGzEgTsgIzdGQ0IKK+e/jCA+IHnDrDsgIzdGQ0MKK+e/jSA+IHDEqzsgIzdGQ0QKK+e/jiA+IGzDrW5nOyAjN0ZDRQor57+PID4gbMOsdTsgIzdGQ0YKK+e/kCA+IHpow6w7ICM3RkQwCivnv5EgPiBxw7o7ICM3RkQxCivnv5IgPiB4w607ICM3RkQyCivnv5MgPiB4acOpOyAjN0ZEMwor57+UID4geGnDoW5nOyAjN0ZENAor57+VID4geMOsOyAjN0ZENQor57+WID4geMOsOyAjN0ZENgor57+XID4gccOtOyAjN0ZENwor57+YID4gcWnDoW87ICM3RkQ4Civnv5kgPiBow7lpOyAjN0ZEOQor57+aID4gaMWraTsgIzdGREEKK+e/myA+IHhpxIFvOyAjN0ZEQgor57+cID4gc8OoOyAjN0ZEQwor57+dID4gaMOzbmc7ICM3RkRECivnv54gPiBqacSBbmc7ICM3RkRFCivnv58gPiBkw607ICM3RkRGCivnv6AgPiBjw7lpOyAjN0ZFMAor57+hID4gZsSVaTsgIzdGRTEKK+e/oiA+IHTEgW87ICM3RkUyCivnv6MgPiBzaMOgOyAjN0ZFMwor57+kID4gY2jDrDsgIzdGRTQKK+e/pSA+IHpow7k7ICM3RkU1Civnv6YgPiBqacSDbjsgIzdGRTYKK+e/pyA+IHh1xIFuOyAjN0ZFNwor57+oID4gc2jDrDsgIzdGRTgKK+e/qSA+IHBpxIFuOyAjN0ZFOQor57+qID4gesWNbmc7ICM3RkVBCivnv6sgPiB3w6BuOyAjN0ZFQgor57+sID4gaMWraTsgIzdGRUMKK+e/rSA+IGjDs3U7ICM3RkVECivnv64gPiBow6k7ICM3RkVFCivnv68gPiBow6g7ICM3RkVGCivnv7AgPiBow6BuOyAjN0ZGMAor57+xID4gw6FvOyAjN0ZGMQor57+yID4gcGnEgW87ICM3RkYyCivnv7MgPiB5w6w7ICM3RkYzCivnv7QgPiBsacOhbjsgIzdGRjQKK+e/tSA+IHHDujsgIzdGRjUKK+e/tyA+IGzDrW47ICM3RkY3Civnv7ggPiBwxJVuOyAjN0ZGOAor57+5ID4gcWnDoW87ICM3RkY5Civnv7ogPiDDoW87ICM3RkZBCivnv7sgPiBmxIFuOyAjN0ZGQgor57+8ID4gecOsOyAjN0ZGQwor57+9ID4gaMO5aTsgIzdGRkQKK+e/viA+IHh1xIFuOyAjN0ZGRQor57+/ID4gZMOgbzsgIzdGRkYKK+iAgCA+IHnDoG87ICM4MDAwCivogIEgPiBsxINvOyAjODAwMQor6ICDID4ga8SDbzsgIzgwMDMKK+iAhCA+IG3DoG87ICM4MDA0CivogIUgPiB6aMSVOyAjODAwNQor6ICGID4gccOtOyAjODAwNgor6ICHID4gZ8WPdTsgIzgwMDcKK+iAiCA+IGfFj3U7ICM4MDA4CivogIkgPiBnxY91OyAjODAwOQor6ICKID4gZGnDqDsgIzgwMEEKK+iAiyA+IGRpw6g7ICM4MDBCCivogIwgPiDDqXI7ICM4MDBDCivogI0gPiBzaHXEgzsgIzgwMEQKK+iAjiA+IHJ1xINuOyAjODAwRQor6ICPID4gw6lyOyAjODAwRgor6ICQID4gbsOgaTsgIzgwMTAKK+iAkSA+IHpodcSBbjsgIzgwMTEKK+iAkiA+IGzElWk7ICM4MDEyCivogJMgPiB0xKtuZzsgIzgwMTMKK+iAlCA+IHrErTsgIzgwMTQKK+iAlSA+IGfEk25nOyAjODAxNQor6ICWID4gY2jDoG87ICM4MDE2CivogJcgPiBow6BvOyAjODAxNwor6ICYID4gecO6bjsgIzgwMTgKK+iAmSA+IHDDoTsgIzgwMTkKK+iAmiA+IHDEqzsgIzgwMUEKK+iAmyA+IGNow607ICM4MDFCCivogJwgPiBzw6w7ICM4MDFDCivogJ0gPiBjaMO6OyAjODAxRAor6ICeID4gamnEgTsgIzgwMUUKK+iAnyA+IGrDuTsgIzgwMUYKK+iAoCA+IGjDqTsgIzgwMjAKK+iAoSA+IGNow7o7ICM4MDIxCivogKIgPiBsw6BvOyAjODAyMgor6ICjID4gbMWtbjsgIzgwMjMKK+iApCA+IGrDrTsgIzgwMjQKK+iApSA+IHTEg25nOyAjODAyNQor6ICmID4gxY91OyAjODAyNgor6ICnID4gbMOzdTsgIzgwMjcKK+iAqCA+IG7DsnU7ICM4MDI4CivogKkgPiBnxY11OyAjODAyOQor6ICqID4gcMSDbmc7ICM4MDJBCivogKsgPiB6w6k7ICM4MDJCCivogKwgPiBsw7N1OyAjODAyQwor6ICtID4gasSrOyAjODAyRAor6ICuID4gbMOgbzsgIzgwMkUKK+iAryA+IGjDuW87ICM4MDJGCivogLAgPiB5xY11OyAjODAzMAor6ICxID4gbcOyOyAjODAzMQor6ICyID4gaHXDoWk7ICM4MDMyCivogLMgPiDElXI7ICM4MDMzCivogLQgPiB6aMOpOyAjODAzNAor6IC1ID4gdMSrbmc7ICM4MDM1CivogLYgPiB5w6k7ICM4MDM2CivogLcgPiBkxIE7ICM4MDM3CivogLggPiBzxY9uZzsgIzgwMzgKK+iAuSA+IHHDrW47ICM4MDM5CivogLogPiB5w7puOyAjODAzQQor6IC7ID4gY2jErTsgIzgwM0IKK+iAvCA+IGTEgW47ICM4MDNDCivogL0gPiBkxIFuOyAjODAzRAor6IC+ID4gaMOzbmc7ICM4MDNFCivogL8gPiBnxJVuZzsgIzgwM0YKK+iBgCA+IHpow607ICM4MDQwCivogYIgPiBuacOoOyAjODA0Mgor6IGDID4gZMSBbjsgIzgwNDMKK+iBhCA+IHpoxJVuOyAjODA0NAor6IGFID4gY2jDqDsgIzgwNDUKK+iBhiA+IGzDrW5nOyAjODA0Ngor6IGHID4gemjEk25nOyAjODA0Nwor6IGIID4gecWPdTsgIzgwNDgKK+iBiSA+IHfEgTsgIzgwNDkKK+iBiiA+IGxpw6FvOyAjODA0QQor6IGLID4gbMOzbmc7ICM4MDRCCivogYwgPiB6aMOtOyAjODA0Qwor6IGNID4gbsOtbmc7ICM4MDRECivogY4gPiB0acSBbzsgIzgwNEUKK+iBjyA+IMOpcjsgIzgwNEYKK+iBkCA+IHnDoDsgIzgwNTAKK+iBkSA+IGRpw6k7ICM4MDUxCivogZIgPiBndcSBOyAjODA1Mgor6IGUID4gbGnDoW47ICM4MDU0CivogZUgPiBow6BvOyAjODA1NQor6IGWID4gc2jDqG5nOyAjODA1Ngor6IGXID4gbGnDqDsgIzgwNTcKK+iBmCA+IHDDrG47ICM4MDU4CivogZkgPiBqxKtuZzsgIzgwNTkKK+iBmiA+IGrDuTsgIzgwNUEKK+iBmyA+IGLDrDsgIzgwNUIKK+iBnCA+IGTErTsgIzgwNUMKK+iBnSA+IGfDum87ICM4MDVECivogZ4gPiB3w6luOyAjODA1RQor6IGfID4geMO5OyAjODA1Rgor6IGgID4gcMOtbmc7ICM4MDYwCivogaEgPiBjxY1uZzsgIzgwNjEKK+iBpCA+IHTDrW5nOyAjODA2NAor6IGlID4gecWtOyAjODA2NQor6IGmID4gY8WNbmc7ICM4MDY2CivogacgPiBrw7ppOyAjODA2Nwor6IGpID4ga8O5aTsgIzgwNjkKK+iBqiA+IGPFjW5nOyAjODA2QQor6IGrID4gbGnDoW47ICM4MDZCCivogawgPiB3xJVuZzsgIzgwNkMKK+iBrSA+IGvDuWk7ICM4MDZECivoga4gPiBsacOhbjsgIzgwNkUKK+iBryA+IGxpw6FuOyAjODA2Rgor6IGwID4gY8WNbmc7ICM4MDcwCivogbEgPiDDoW87ICM4MDcxCivogbIgPiBzaMSTbmc7ICM4MDcyCivogbMgPiBzxY9uZzsgIzgwNzMKK+iBtCA+IHTEq25nOyAjODA3NAor6IG1ID4ga8O5aTsgIzgwNzUKK+iBtiA+IG5pw6g7ICM4MDc2CivogbcgPiB6aMOtOyAjODA3Nwor6IG4ID4gZMSBbjsgIzgwNzgKK+iBuSA+IG7DrW5nOyAjODA3OQor6IG6ID4gcWllOyAjODA3QQor6IG7ID4gasSrOyAjODA3Qgor6IG8ID4gdMSrbmc7ICM4MDdDCivogb0gPiB0xKtuZzsgIzgwN0QKK+iBviA+IGzDs25nOyAjODA3RQor6IG/ID4gecO5OyAjODA3Rgor6IKAID4gecO5OyAjODA4MAor6IKBID4gemjDoG87ICM4MDgxCivogoIgPiBzw6w7ICM4MDgyCivogoMgPiBzw7k7ICM4MDgzCivogoQgPiB5w6w7ICM4MDg0CivogoUgPiBzw7k7ICM4MDg1CivogoYgPiBzw6w7ICM4MDg2CivogocgPiB6aMOgbzsgIzgwODcKK+iCiCA+IHpow6BvOyAjODA4OAor6IKJID4gcsOydTsgIzgwODkKK+iCiiA+IHnDrDsgIzgwOEEKK+iCiyA+IGzDqDsgIzgwOEIKK+iCjCA+IGrEqzsgIzgwOEMKK+iCjSA+IHHDrXU7ICM4MDhECivogo4gPiBrxJVuOyAjODA4RQor6IKPID4gY8OgbzsgIzgwOEYKK+iCkCA+IGfEkzsgIzgwOTAKK+iCkSA+IGTDrDsgIzgwOTEKK+iCkiA+IGh1w6FuOyAjODA5Mgor6IKTID4gaHXEgW5nOyAjODA5Mwor6IKUID4gecStOyAjODA5NAor6IKVID4gcsOobjsgIzgwOTUKK+iCliA+IHhpw6BvOyAjODA5Ngor6IKXID4gcsWtOyAjODA5Nwor6IKYID4gemjFj3U7ICM4MDk4CivogpkgPiB5dcSBbjsgIzgwOTkKK+iCmiA+IGTDuTsgIzgwOUEKK+iCmyA+IGfEgW5nOyAjODA5Qgor6IKcID4gcsOzbmc7ICM4MDlDCivogp0gPiBnxIFuOyAjODA5RAor6IKeID4gY2jEgTsgIzgwOUUKK+iCnyA+IHfDsjsgIzgwOUYKK+iCoCA+IGNow6FuZzsgIzgwQTAKK+iCoSA+IGfFrTsgIzgwQTEKK+iCoiA+IHpoxKs7ICM4MEEyCivogqMgPiBow6FuOyAjODBBMwor6IKkID4gZsWrOyAjODBBNAor6IKlID4gZsOpaTsgIzgwQTUKK+iCpiA+IGbDqW47ICM4MEE2CivogqcgPiBwxJNpOyAjODBBNwor6IKoID4gcMOgbmc7ICM4MEE4CivogqkgPiBqacSBbjsgIzgwQTkKK+iCqiA+IGbDoW5nOyAjODBBQQor6IKrID4gemjFq247ICM4MEFCCivogqwgPiB5w7N1OyAjODBBQwor6IKtID4gbsOgOyAjODBBRAor6IKuID4gaMOhbmc7ICM4MEFFCivogq8gPiBrxJVuOyAjODBBRgor6IKwID4gcsOhbjsgIzgwQjAKK+iCsSA+IGfFjW5nOyAjODBCMQor6IKyID4gecO5OyAjODBCMgor6IKzID4gd8SVbjsgIzgwQjMKK+iCtCA+IHnDoW87ICM4MEI0CivogrUgPiBqw6xuOyAjODBCNQor6IK2ID4gcMOtOyAjODBCNgor6IK3ID4gcWnEgW47ICM4MEI3CivogrggPiB4w6w7ICM4MEI4CivogrkgPiB4xKs7ICM4MEI5CivogrogPiBmw6hpOyAjODBCQQor6IK7ID4ga8SVbjsgIzgwQkIKK+iCvCA+IGrErW5nOyAjODBCQwor6IK9ID4gdMOgaTsgIzgwQkQKK+iCviA+IHNow6huOyAjODBCRQor6IK/ID4gemjFj25nOyAjODBCRgor6IOAID4gemjDoG5nOyAjODBDMAor6IOBID4geGnDqTsgIzgwQzEKK+iDgiA+IHNoxJNuOyAjODBDMgor6IODID4gd8OoaTsgIzgwQzMKK+iDhCA+IHpow7J1OyAjODBDNAor6IOFID4gZGnDqTsgIzgwQzUKK+iDhiA+IGTEg247ICM4MEM2Civog4cgPiBmw6hpOyAjODBDNwor6IOIID4gYsOhOyAjODBDOAor6IOJID4gYsOzOyAjODBDOQor6IOKID4gccO6OyAjODBDQQor6IOLID4gdGnDoW47ICM4MENCCivog4wgPiBiw6hpOyAjODBDQwor6IONID4gZ3XEgTsgIzgwQ0QKK+iDjiA+IHTEgWk7ICM4MENFCivog48gPiB6xK07ICM4MENGCivog5AgPiBrxas7ICM4MEQwCivog5EgPiB6aMSrOyAjODBEMQor6IOSID4gbsOsOyAjODBEMgor6IOTID4gcMOtbmc7ICM4MEQzCivog5QgPiB6w6w7ICM4MEQ0Civog5UgPiBmw7k7ICM4MEQ1Civog5YgPiBww6BuZzsgIzgwRDYKK+iDlyA+IHpoxJNuOyAjODBENwor6IOYID4geGnDoW47ICM4MEQ4Civog5kgPiB6w7lvOyAjODBEOQor6IOaID4gcMSTaTsgIzgwREEKK+iDmyA+IGppxIM7ICM4MERCCivog5wgPiBzaMOobmc7ICM4MERDCivog50gPiB6aMSrOyAjODBERAor6IOeID4gYsSBbzsgIzgwREUKK+iDnyA+IG3FrTsgIzgwREYKK+iDoCA+IHHFqzsgIzgwRTAKK+iDoSA+IGjDujsgIzgwRTEKK+iDoiA+IGvEkzsgIzgwRTIKK+iDoyA+IHnErTsgIzgwRTMKK+iDpCA+IHnDrG47ICM4MEU0Civog6UgPiB4xas7ICM4MEU1Civog6YgPiB5xIFuZzsgIzgwRTYKK+iDpyA+IGzDs25nOyAjODBFNwor6IOoID4gZMOybmc7ICM4MEU4Civog6kgPiBrxIM7ICM4MEU5Civog6ogPiBsw7o7ICM4MEVBCivog6sgPiBqw6xuZzsgIzgwRUIKK+iDrCA+IG7FrTsgIzgwRUMKK+iDrSA+IHnEgW47ICM4MEVECivog64gPiBww6FuZzsgIzgwRUUKK+iDryA+IGt1w6A7ICM4MEVGCivog7AgPiB5w607ICM4MEYwCivog7EgPiBndcSBbmc7ICM4MEYxCivog7IgPiBnxIFpOyAjODBGMgor6IOzID4gZ8STOyAjODBGMwor6IO0ID4gZMOybmc7ICM4MEY0Civog7UgPiB6aMOsOyAjODBGNQor6IO2ID4geGnDoW87ICM4MEY2Civog7cgPiB4xKtvbmc7ICM4MEY3Civog7ggPiB4xKtvbmc7ICM4MEY4Civog7kgPiDDqXI7ICM4MEY5Civog7ogPiDDqDsgIzgwRkEKK+iDuyA+IHjDrW5nOyAjODBGQgor6IO8ID4gcGnDoW47ICM4MEZDCivog70gPiBuw6luZzsgIzgwRkQKK+iDviA+IHrDrDsgIzgwRkUKK+iDvyA+IGd1aTsgIzgwRkYKK+iEgCA+IGNow6luZzsgIzgxMDAKK+iEgSA+IHRpw6BvOyAjODEwMQor6ISCID4gemjEqzsgIzgxMDIKK+iEgyA+IGPDuWk7ICM4MTAzCivohIQgPiBtw6lpOyAjODEwNAor6ISFID4geGnDqTsgIzgxMDUKK+iEhiA+IGPDuWk7ICM4MTA2CivohIcgPiB4acOpOyAjODEwNwor6ISIID4gbcOyOyAjODEwOAor6ISJID4gbcOgaTsgIzgxMDkKK+iEiiA+IGrDrTsgIzgxMEEKK+iEjSA+IGt1w6BpOyAjODEwRAor6ISOID4gc8OgOyAjODEwRQor6ISPID4gesSBbmc7ICM4MTBGCivohJAgPiBxw607ICM4MTEwCivohJEgPiBuxINvOyAjODExMQor6ISSID4gbcStOyAjODExMgor6ISTID4gbsOzbmc7ICM4MTEzCivohJQgPiBsdcOhbjsgIzgxMTQKK+iElSA+IHfEg247ICM4MTE1CivohJYgPiBiw7M7ICM4MTE2CivohJcgPiB3xJVuOyAjODExNwor6ISYID4gZ3XEg247ICM4MTE4CivohJkgPiBxw611OyAjODExOQor6ISaID4gamnEg287ICM4MTFBCivohJsgPiBqw6xuZzsgIzgxMUIKK+iEnCA+IHLDs3U7ICM4MTFDCivohJ0gPiBoxJNuZzsgIzgxMUQKK+iEniA+IGPFrW87ICM4MTFFCivohJ8gPiBsacOoOyAjODExRgor6ISgID4gc2jEgW47ICM4MTIwCivohKEgPiB0xK1uZzsgIzgxMjEKK+iEoiA+IG3DqWk7ICM4MTIyCivohKMgPiBjaMO6bjsgIzgxMjMKK+iEpCA+IHNow6huOyAjODEyNAor6ISlID4geGnDqTsgIzgxMjUKK+iEpiA+IGRlOyAjODEyNgor6ISnID4gesWraTsgIzgxMjcKK+iEqCA+IGPDuTsgIzgxMjgKK+iEqSA+IHjEq3U7ICM4MTI5CivohKogPiB4w6xuOyAjODEyQQor6ISrID4gdMWrbzsgIzgxMkIKK+iErCA+IHDEgW87ICM4MTJDCivohK0gPiBjaMOpbmc7ICM4MTJECivohK4gPiBuxJVpOyAjODEyRQor6ISvID4gZsWtOyAjODEyRgor6ISwID4gZMOydTsgIzgxMzAKK+iEsSA+IHTFq287ICM4MTMxCivohLIgPiBuacOgbzsgIzgxMzIKK+iEtCA+IHDErTsgIzgxMzQKK+iEtSA+IGfFrTsgIzgxMzUKK+iEtiA+IGd1xIE7ICM4MTM2CivohLcgPiBsw6w7ICM4MTM3CivohLggPiBsacSDbjsgIzgxMzgKK+iEuSA+IHpow6BuZzsgIzgxMzkKK+iEuiA+IGPDuWk7ICM4MTNBCivohLsgPiBqacOpOyAjODEzQgor6IS8ID4gbGnEg25nOyAjODEzQwor6IS9ID4gemjFjXU7ICM4MTNECivohL4gPiBww607ICM4MTNFCivohL8gPiBiacSBbzsgIzgxM0YKK+iFgCA+IGzDum47ICM4MTQwCivohYEgPiBwacOhbjsgIzgxNDEKK+iFgiA+IGfDuW87ICM4MTQyCivohYMgPiBrw7lpOyAjODE0Mwor6IWEID4gY2jDumk7ICM4MTQ0CivohYUgPiBkw6BuOyAjODE0NQor6IWGID4gdGnEg247ICM4MTQ2CivohYcgPiBuxJVpOyAjODE0Nwor6IWIID4gasSrbmc7ICM4MTQ4CivohYkgPiBqacSTOyAjODE0OQor6IWKID4gbMOgOyAjODE0QQor6IWLID4gecOsOyAjODE0Qgor6IWMID4gxIFuOyAjODE0Qwor6IWNID4gcsSVbjsgIzgxNEQKK+iFjiA+IHNow6huOyAjODE0RQor6IWPID4gY2jDuW87ICM4MTRGCivohZAgPiBmxa07ICM4MTUwCivohZEgPiBmxa07ICM4MTUxCivohZIgPiBqxas7ICM4MTUyCivohZMgPiBmw6lpOyAjODE1Mwor6IWUID4gcWnEgW5nOyAjODE1NAor6IWVID4gd8OgbjsgIzgxNTUKK+iFliA+IGTDsm5nOyAjODE1Ngor6IWXID4gcMOtOyAjODE1Nwor6IWYID4gZ8O6bzsgIzgxNTgKK+iFmSA+IHrFjW5nOyAjODE1OQor6IWaID4gZMOsbmc7ICM4MTVBCivohZsgPiB3xas7ICM4MTVCCivohZwgPiBtw6lpOyAjODE1Qwor6IWdID4gcnXEg247ICM4MTVECivohZ4gPiB6aHXDoG47ICM4MTVFCivohZ8gPiB6aMOsOyAjODE1Rgor6IWgID4gY8OydTsgIzgxNjAKK+iFoSA+IGd1xIE7ICM4MTYxCivohaIgPiDFj3U7ICM4MTYyCivohaMgPiBkw6w7ICM4MTYzCivohaQgPiDEgW47ICM4MTY0CivohaUgPiB4xKtuZzsgIzgxNjUKK+iFpiA+IG7Eg287ICM4MTY2CivohacgPiB5w7o7ICM4MTY3CivohaggPiBjaHXEg247ICM4MTY4CivohakgPiBuxINuOyAjODE2OQor6IWqID4gecO5bjsgIzgxNkEKK+iFqyA+IHpoxY9uZzsgIzgxNkIKK+iFrCA+IHLDs3U7ICM4MTZDCivoha0gPiDDqDsgIzgxNkQKK+iFriA+IHPEgWk7ICM4MTZFCivoha8gPiB0w7o7ICM4MTZGCivohbAgPiB5xIFvOyAjODE3MAor6IWxID4gamnDoG47ICM4MTcxCivohbIgPiB3xJVpOyAjODE3Mgor6IWzID4gamnEg287ICM4MTczCivohbQgPiB5w7o7ICM4MTc0CivohbUgPiBqacSBOyAjODE3NQor6IW2ID4gZHXDoG47ICM4MTc2CivohbcgPiBiw6w7ICM4MTc3CivohbggPiBjaMOhbmc7ICM4MTc4CivohbkgPiBmw7k7ICM4MTc5CivohbogPiB4acOgbjsgIzgxN0EKK+iFuyA+IG7DrDsgIzgxN0IKK+iFvCA+IG1pxINuOyAjODE3Qwor6IW9ID4gd8OgOyAjODE3RAor6IW+ID4gdMOpbmc7ICM4MTdFCivohb8gPiB0xa1pOyAjODE3Rgor6IaAID4gYsSDbmc7ICM4MTgwCivohoEgPiBxacSBbjsgIzgxODEKK+iGgiA+IGzHmjsgIzgxODIKK+iGgyA+IHfDoDsgIzgxODMKK+iGhCA+IHPDsnU7ICM4MTg0CivohoUgPiB0w6FuZzsgIzgxODUKK+iGhiA+IHPDuTsgIzgxODYKK+iGhyA+IHpow7lpOyAjODE4Nwor6IaIID4gZ8OpOyAjODE4OAor6IaJID4gecOsOyAjODE4OQor6IaKID4gYsOzOyAjODE4QQor6IaLID4gbGnDoW87ICM4MThCCivohowgPiBqw607ICM4MThDCivoho0gPiBww607ICM4MThECivoho4gPiB4acOpOyAjODE4RQor6IaPID4gZ8SBbzsgIzgxOEYKK+iGkCA+IGzHmjsgIzgxOTAKK+iGkSA+IGLDrG47ICM4MTkxCivohpIgPiBvdTsgIzgxOTIKK+iGkyA+IGNow6FuZzsgIzgxOTMKK+iGlCA+IGzDuTsgIzgxOTQKK+iGlSA+IGfDum87ICM4MTk1CivohpYgPiBwxIFuZzsgIzgxOTYKK+iGlyA+IGNodcOhaTsgIzgxOTcKK+iGmCA+IHBpxINvOyAjODE5OAor6IaZID4gamnEg25nOyAjODE5OQor6IaaID4gZsWrOyAjODE5QQor6IabID4gdMOhbmc7ICM4MTlCCivohpwgPiBtw7I7ICM4MTlDCivohp0gPiB4xKs7ICM4MTlECivohp4gPiB6aHXEgW47ICM4MTlFCivohp8gPiBsx5w7ICM4MTlGCivohqAgPiBqacSBbzsgIzgxQTAKK+iGoSA+IHnDrG5nOyAjODFBMQor6IaiID4gbMeYOyAjODFBMgor6IajID4gemjDrDsgIzgxQTMKK+iGpSA+IGNoxatuOyAjODFBNQor6IamID4gbGnEg247ICM4MUE2CivohqcgPiB0w7NuZzsgIzgxQTcKK+iGqCA+IHDDqW5nOyAjODFBOAor6IapID4gbsOsOyAjODFBOQor6IaqID4gemjDoDsgIzgxQUEKK+iGqyA+IGxpw6FvOyAjODFBQgor6IasID4gY8O5aTsgIzgxQUMKK+iGrSA+IGfFq2k7ICM4MUFECivohq4gPiB4acSBbzsgIzgxQUUKK+iGryA+IHTEk25nOyAjODFBRgor6IawID4gZsOhbjsgIzgxQjAKK+iGsSA+IHpow607ICM4MUIxCivohrIgPiBqacSBbzsgIzgxQjIKK+iGsyA+IHNow6BuOyAjODFCMwor6Ia0ID4gd8O6OyAjODFCNAor6Ia1ID4gY8O5aTsgIzgxQjUKK+iGtiA+IHLDuW47ICM4MUI2CivohrcgPiB4acSBbmc7ICM4MUI3CivohrggPiBzxa1pOyAjODFCOAor6Ia5ID4gZsOobjsgIzgxQjkKK+iGuiA+IHnEq25nOyAjODFCQQor6Ia7ID4gdMSDbjsgIzgxQkIKK+iGvCA+IHpodcSBOyAjODFCQwor6Ia9ID4gZMSDbjsgIzgxQkQKK+iGviA+IGt1w6BpOyAjODFCRQor6Ia/ID4gbsOzbmc7ICM4MUJGCivoh4AgPiB0w7puOyAjODFDMAor6IeBID4gbGnDoW47ICM4MUMxCivoh4IgPiBiw6w7ICM4MUMyCivoh4MgPiB5xY9uZzsgIzgxQzMKK+iHhCA+IGp1w6k7ICM4MUM0Civoh4UgPiBjaMO5OyAjODFDNQor6IeGID4gecOsOyAjODFDNgor6IeHID4ganXEg247ICM4MUM3Civoh4ggPiBsw6A7ICM4MUM4Civoh4kgPiBsacSDbjsgIzgxQzkKK+iHiiA+IHPEgW87ICM4MUNBCivoh4sgPiB0w7puOyAjODFDQgor6IeMID4gZ8WtOyAjODFDQwor6IeNID4gccOtOyAjODFDRAor6IeOID4gY8O5aTsgIzgxQ0UKK+iHjyA+IGLDrG47ICM4MUNGCivoh5AgPiB4xatuOyAjODFEMAor6IeRID4gcsO6OyAjODFEMQor6IeSID4gaMO5bzsgIzgxRDIKK+iHkyA+IHrDoG5nOyAjODFEMwor6IeUID4geGnDoG47ICM4MUQ0Civoh5UgPiBiacSBbzsgIzgxRDUKK+iHliA+IHjDrG5nOyAjODFENgor6IeXID4ga3XEgW47ICM4MUQ3Civoh5ggPiBsw6A7ICM4MUQ4Civoh5kgPiB5xIFuOyAjODFEOQor6IeaID4gbMO6OyAjODFEQQor6IebID4gaMO5bzsgIzgxREIKK+iHnCA+IHrEgW5nOyAjODFEQwor6IedID4gbMWtbzsgIzgxREQKK+iHniA+IHHDujsgIzgxREUKK+iHnyA+IHrDoG5nOyAjODFERgor6IegID4gbHXDoW47ICM4MUUwCivoh6EgPiBuw607ICM4MUUxCivoh6IgPiB6xIFuZzsgIzgxRTIKK+iHoyA+IGNow6luOyAjODFFMwor6IekID4gcWnEgW47ICM4MUU0Civoh6UgPiB3w7I7ICM4MUU1Civoh6YgPiBndcOgbmc7ICM4MUU2Civoh6cgPiB6w6FuZzsgIzgxRTcKK+iHqCA+IGzDrW47ICM4MUU4Civoh6kgPiBndcOgbmc7ICM4MUU5Civoh6ogPiB6w6w7ICM4MUVBCivoh6sgPiBqacSDbzsgIzgxRUIKK+iHrCA+IG5pw6g7ICM4MUVDCivoh60gPiBjaMOydTsgIzgxRUQKK+iHriA+IGrDrDsgIzgxRUUKK+iHryA+IGfEgW87ICM4MUVGCivoh7AgPiBjaMOydTsgIzgxRjAKK+iHsSA+IG1pw6FuOyAjODFGMQor6IeyID4gbmnDqDsgIzgxRjIKK+iHsyA+IHpow6w7ICM4MUYzCivoh7QgPiB6aMOsOyAjODFGNAor6Ie1ID4gZ8OpOyAjODFGNQor6Ie2ID4gamnDoG47ICM4MUY2Civoh7cgPiBkacOpOyAjODFGNwor6Ie4ID4gemjDrDsgIzgxRjgKK+iHuSA+IHjEq3U7ICM4MUY5Civoh7ogPiB0w6FpOyAjODFGQQor6Ie7ID4gemjEk247ICM4MUZCCivoh7wgPiBqw6x1OyAjODFGQwor6Ie9ID4geGnDoG47ICM4MUZECivoh74gPiB5w7o7ICM4MUZFCivoh78gPiBjaMSBOyAjODFGRgor6IiAID4gecSDbzsgIzgyMDAKK+iIgSA+IHnDujsgIzgyMDEKK+iIgiA+IGNoxY1uZzsgIzgyMDIKK+iIgyA+IHjDrDsgIzgyMDMKK+iIhCA+IHjDrDsgIzgyMDQKK+iIhSA+IGrDrHU7ICM4MjA1CivoiIYgPiB5w7o7ICM4MjA2CivoiIcgPiB5xa07ICM4MjA3CivoiIggPiB4xKtuZzsgIzgyMDgKK+iIiSA+IGrFrTsgIzgyMDkKK+iIiiA+IGrDrHU7ICM4MjBBCivoiIsgPiB4w6xuOyAjODIwQgor6IiMID4gc2jDqTsgIzgyMEMKK+iIjSA+IHNow6g7ICM4MjBECivoiI8gPiBqxK11OyAjODIwRgor6IiQID4gc2jDrDsgIzgyMTAKK+iIkSA+IHTEgW47ICM4MjExCivoiJIgPiBzaMWrOyAjODIxMgor6IiTID4gc2jDrDsgIzgyMTMKK+iIlCA+IHRpxINuOyAjODIxNAor6IiVID4gZMOgbjsgIzgyMTUKK+iIliA+IHDDuTsgIzgyMTYKK+iIlyA+IHDDuTsgIzgyMTcKK+iImCA+IGd1xINuOyAjODIxOAor6IiZID4gaHXDoDsgIzgyMTkKK+iImiA+IHTEgW47ICM4MjFBCivoiJsgPiBjaHXEg247ICM4MjFCCivoiJwgPiBzaMO5bjsgIzgyMUMKK+iInSA+IHhpw6E7ICM4MjFECivoiJ4gPiB3xa07ICM4MjFFCivoiJ8gPiB6aMWNdTsgIzgyMUYKK+iIoCA+IGTEgW87ICM4MjIwCivoiKEgPiBnxIFuZzsgIzgyMjEKK+iIoiA+IHNoxIFuOyAjODIyMgor6IijID4gecStOyAjODIyMwor6IilID4gcMSBOyAjODIyNQor6IimID4gdMOgaTsgIzgyMjYKK+iIpyA+IGbDoW47ICM4MjI3CivoiKggPiBixINuOyAjODIyOAor6IipID4gY2h1w6FuOyAjODIyOQor6IiqID4gaMOhbmc7ICM4MjJBCivoiKsgPiBmxINuZzsgIzgyMkIKK+iIrCA+IGLEgW47ICM4MjJDCivoiK0gPiBxdcOoOyAjODIyRAor6IivID4gemjFjW5nOyAjODIyRgor6IiwID4gamnDoG47ICM4MjMwCivoiLEgPiBjxIFuZzsgIzgyMzEKK+iIsiA+IGzDrW5nOyAjODIzMgor6IizID4gemjDujsgIzgyMzMKK+iItCA+IHrDqTsgIzgyMzQKK+iItSA+IGTDuW87ICM4MjM1CivoiLYgPiBiw7M7ICM4MjM2CivoiLcgPiB4acOhbjsgIzgyMzcKK+iIuCA+IGfElTsgIzgyMzgKK+iIuSA+IGNodcOhbjsgIzgyMzkKK+iIuiA+IGppw6E7ICM4MjNBCivoiLsgPiBsxa07ICM4MjNCCivoiLwgPiBow7NuZzsgIzgyM0MKK+iIvSA+IHDDoW5nOyAjODIzRAor6Ii+ID4geMSrOyAjODIzRQor6ImAID4gZsO6OyAjODI0MAor6ImBID4gesOgbzsgIzgyNDEKK+iJgiA+IGbDqW5nOyAjODI0Mgor6ImDID4gbMOtOyAjODI0Mwor6ImEID4gc2jEgW87ICM4MjQ0CivoiYUgPiB5w7o7ICM4MjQ1CivoiYYgPiBsw6FuZzsgIzgyNDYKK+iJhyA+IHTErW5nOyAjODI0Nwor6ImJID4gd8SVaTsgIzgyNDkKK+iJiiA+IGLDszsgIzgyNEEKK+iJiyA+IG3ElW5nOyAjODI0Qgor6ImMID4gbmnDoG47ICM4MjRDCivoiY0gPiBqxas7ICM4MjRECivoiY4gPiBodcOhbmc7ICM4MjRFCivoiY8gPiBzaMWPdTsgIzgyNEYKK+iJkCA+IHrFjW5nOyAjODI1MAor6ImRID4gYmnDoG47ICM4MjUxCivoiZIgPiBtw6BvOyAjODI1Mgor6ImTID4gZGnDqTsgIzgyNTMKK+iJlSA+IGLDoG5nOyAjODI1NQor6ImWID4gY2jEgTsgIzgyNTYKK+iJlyA+IHnDrDsgIzgyNTcKK+iJmCA+IHPEgW87ICM4MjU4CivoiZkgPiBjxIFuZzsgIzgyNTkKK+iJmiA+IGPDoW87ICM4MjVBCivoiZsgPiBsw7N1OyAjODI1Qgor6ImcID4gZMOgaTsgIzgyNUMKK+iJniA+IHnDoG87ICM4MjVFCivoiZ8gPiB0w7NuZzsgIzgyNUYKK+iJoSA+IGTEgW5nOyAjODI2MQor6ImiID4gdMOhbjsgIzgyNjIKK+iJoyA+IGzFrTsgIzgyNjMKK+iJpCA+IHnErTsgIzgyNjQKK+iJpSA+IGppw6g7ICM4MjY1CivoiaYgPiBqacOgbjsgIzgyNjYKK+iJpyA+IGjDuW87ICM4MjY3CivoiaggPiBtw6luZzsgIzgyNjgKK+iJqSA+IHHDrTsgIzgyNjkKK+iJqiA+IGzFrTsgIzgyNkEKK+iJqyA+IGzDujsgIzgyNkIKK+iJrCA+IGNow6FuOyAjODI2Qwor6ImtID4gc2h1xIFuZzsgIzgyNkQKK+iJriA+IGfDqG47ICM4MjZFCivoia8gPiBsacOhbmc7ICM4MjZGCivoibAgPiBqacSBbjsgIzgyNzAKK+iJsSA+IGppxIFuOyAjODI3MQor6ImyID4gc8OoOyAjODI3Mgor6ImzID4gecOgbjsgIzgyNzMKK+iJtCA+IGbDujsgIzgyNzQKK+iJtSA+IHDDrW5nOyAjODI3NQor6Im2ID4gecOgbjsgIzgyNzYKK+iJtyA+IHnDoG47ICM4Mjc3CivoibggPiBjxINvOyAjODI3OAor6Im5ID4gY8SDbycgJ3rDrCcgJ3TDs3U7ICM4Mjc5CivoibogPiB5w6w7ICM4MjdBCivoibsgPiBsw6g7ICM4MjdCCivoibwgPiB0xKtuZzsgIzgyN0MKK+iJvSA+IHHDrXU7ICM4MjdECivoib4gPiDDoGk7ICM4MjdFCivoib8gPiBuxINpOyAjODI3Rgor6IqAID4gdGnDoW87ICM4MjgwCivoioEgPiBqacSBbzsgIzgyODEKK+iKgiA+IGppw6k7ICM4MjgyCivoioMgPiBww6luZzsgIzgyODMKK+iKhCA+IHfDoW47ICM4Mjg0CivoioUgPiB5w6w7ICM4Mjg1CivoioYgPiBjaMSBaTsgIzgyODYKK+iKhyA+IG1pw6FuOyAjODI4Nwor6IqIID4gbWnEkzsgIzgyODgKK+iKiSA+IGfEgW47ICM4Mjg5CivoioogPiBxacSBbjsgIzgyOEEKK+iKiyA+IHnDuTsgIzgyOEIKK+iKjCA+IHnDuTsgIzgyOEMKK+iKjSA+IHNow7lvOyAjODI4RAor6IqOID4gccSrb25nOyAjODI4RQor6IqPID4gdMWtOyAjODI4Rgor6IqQID4geGnDoDsgIzgyOTAKK+iKkSA+IHHErTsgIzgyOTEKK+iKkiA+IG3DoW5nOyAjODI5Mgor6IqTID4gesStOyAjODI5Mwor6IqUID4gaMWtaTsgIzgyOTQKK+iKlSA+IHPFq2k7ICM4Mjk1CivoipYgPiB6aMOsOyAjODI5Ngor6IqXID4geGnEgW5nOyAjODI5Nwor6IqYID4gYsSrOyAjODI5OAor6IqZID4gZsO6OyAjODI5OQor6IqaID4gdMO6bjsgIzgyOUEKK+iKmyA+IHfElWk7ICM4MjlCCivoipwgPiB3w7o7ICM4MjlDCivoip0gPiB6aMSrOyAjODI5RAor6IqeID4gccStOyAjODI5RQor6IqfID4gc2jEgW47ICM4MjlGCivoiqAgPiB3w6luOyAjODJBMAor6IqhID4gcWnDoG47ICM4MkExCivoiqIgPiByw6luOyAjODJBMgor6IqjID4gZsWPdTsgIzgyQTMKK+iKpCA+IGvFjXU7ICM4MkE0CivoiqUgPiBqacOoOyAjODJBNQor6IqmID4gbMO6OyAjODJBNgor6IqnID4geMO5OyAjODJBNwor6IqoID4gasOtOyAjODJBOAor6IqpID4gccOtbjsgIzgyQTkKK+iKqiA+IHHDrTsgIzgyQUEKK+iKqyA+IHl1w6FuOyAjODJBQgor6IqsID4gZsSTbjsgIzgyQUMKK+iKrSA+IGLEgTsgIzgyQUQKK+iKriA+IHLDuWk7ICM4MkFFCivoiq8gPiB4xKtuOyAjODJBRgor6IqwID4gasOsOyAjODJCMAor6IqxID4gaHXEgTsgIzgyQjEKK+iKsiA+IGh1xIE7ICM4MkIyCivoirMgPiBmxIFuZzsgIzgyQjMKK+iKtCA+IHfDuTsgIzgyQjQKK+iKtSA+IGp1w6k7ICM4MkI1CivoirYgPiBnxY11OyAjODJCNgor6Iq3ID4gemjErTsgIzgyQjcKK+iKuCA+IHnDum47ICM4MkI4CivoirkgPiBxw61uOyAjODJCOQor6Iq6ID4gxINvOyAjODJCQQor6Iq7ID4gY2jDujsgIzgyQkIKK+iKvCA+IG3DoG87ICM4MkJDCivoir0gPiB5w6E7ICM4MkJECivoir4gPiBmw6hpOyAjODJCRQor6Iq/ID4gcsOobmc7ICM4MkJGCivoi4AgPiBow6FuZzsgIzgyQzAKK+iLgSA+IGPFjW5nOyAjODJDMQor6IuCID4gecOtbjsgIzgyQzIKK+iLgyA+IHnFj3U7ICM4MkMzCivoi4QgPiBiacOgbjsgIzgyQzQKK+iLhSA+IHnDrDsgIzgyQzUKK+iLhyA+IHfElWk7ICM4MkM3Civoi4ggPiBsw6w7ICM4MkM4Civoi4kgPiBwxK07ICM4MkM5Civoi4ogPiDDqDsgIzgyQ0EKK+iLiyA+IHhpw6BuOyAjODJDQgor6IuMID4gY2jDoW5nOyAjODJDQwor6IuNID4gY8SBbmc7ICM4MkNECivoi44gPiBtw6luZzsgIzgyQ0UKK+iLjyA+IHPFqzsgIzgyQ0YKK+iLkCA+IHnDrTsgIzgyRDAKK+iLkSA+IHl1w6BuOyAjODJEMQor6IuSID4gcsSDbjsgIzgyRDIKK+iLkyA+IGzDrW5nOyAjODJEMwor6IuUID4gdMOhaTsgIzgyRDQKK+iLlSA+IHRpw6FvOyAjODJENQor6IuWID4gZMStOyAjODJENgor6IuXID4gbWnDoW87ICM4MkQ3Civoi5ggPiBxxK1vbmc7ICM4MkQ4Civoi5kgPiBsw6w7ICM4MkQ5Civoi5ogPiB5w7JuZzsgIzgyREEKK+iLmyA+IGvEkzsgIzgyREIKK+iLnCA+IG3DuTsgIzgyREMKK+iLnSA+IHDDqGk7ICM4MkRECivoi54gPiBixIFvOyAjODJERQor6IufID4gZ8WPdTsgIzgyREYKK+iLoCA+IG3DrW47ICM4MkUwCivoi6EgPiB5xK07ICM4MkUxCivoi6IgPiB5xK07ICM4MkUyCivoi6MgPiBqw7k7ICM4MkUzCivoi6QgPiBwxK07ICM4MkU0Civoi6UgPiByw7lvOyAjODJFNQor6IumID4ga8WtOyAjODJFNgor6IunID4gemjDuTsgIzgyRTcKK+iLqCA+IG7ErTsgIzgyRTgKK+iLqSA+IGLDszsgIzgyRTkKK+iLqiA+IGLErW5nOyAjODJFQQor6IurID4gc2jEgW47ICM4MkVCCivoi6wgPiBxw611OyAjODJFQwor6IutID4gecSDbzsgIzgyRUQKK+iLriA+IHhpxIFuOyAjODJFRQor6IuvID4gYsSVbjsgIzgyRUYKK+iLsCA+IGjDs25nOyAjODJGMAor6IuxID4gecSrbmc7ICM4MkYxCivoi7IgPiB6aMSDOyAjODJGMgor6IuzID4gZMWNbmc7ICM4MkYzCivoi7QgPiBqxas7ICM4MkY0Civoi7UgPiBkacOpOyAjODJGNQor6Iu2ID4gbmnDqTsgIzgyRjYKK+iLtyA+IGfEgW47ICM4MkY3Civoi7ggPiBoxas7ICM4MkY4Civoi7kgPiBww61uZzsgIzgyRjkKK+iLuiA+IG3DqWk7ICM4MkZBCivoi7sgPiBmw7o7ICM4MkZCCivoi7wgPiBzaMSTbmc7ICM4MkZDCivoi70gPiBnxas7ICM4MkZECivoi74gPiBiw6w7ICM4MkZFCivoi78gPiB3w6hpOyAjODJGRgor6IyAID4gZsO6OyAjODMwMAor6IyBID4gemjDum87ICM4MzAxCivojIIgPiBtw6BvOyAjODMwMgor6IyDID4gZsOgbjsgIzgzMDMKK+iMhCA+IHFpw6k7ICM4MzA0CivojIUgPiBtw6FvOyAjODMwNQor6IyGID4gbcSDbzsgIzgzMDYKK+iMhyA+IGLDoTsgIzgzMDcKK+iMiCA+IHrErTsgIzgzMDgKK+iMiSA+IG3DsjsgIzgzMDkKK+iMiiA+IHrEqzsgIzgzMEEKK+iMiyA+IGTErTsgIzgzMEIKK+iMjCA+IGNow607ICM4MzBDCivojI0gPiBqw6w7ICM4MzBECivojI4gPiBqxKtuZzsgIzgzMEUKK+iMjyA+IGzDs25nOyAjODMwRgor6IyRID4gbmnEg287ICM4MzExCivojJMgPiB4dcOpOyAjODMxMwor6IyUID4gecOtbmc7ICM4MzE0CivojJUgPiBxw61vbmc7ICM4MzE1CivojJYgPiBnw6k7ICM4MzE2CivojJcgPiBtxK1uZzsgIzgzMTcKK+iMmCA+IGzDrDsgIzgzMTgKK+iMmSA+IHLDs25nOyAjODMxOQor6IyaID4gecOsbjsgIzgzMUEKK+iMmyA+IGfDqG47ICM4MzFCCivojJwgPiBxacOgbjsgIzgzMUMKK+iMnSA+IGNoxINpOyAjODMxRAor6IyeID4gY2jDqW47ICM4MzFFCivojJ8gPiB5w7k7ICM4MzFGCivojKAgPiB4xKt1OyAjODMyMAor6IyhID4gesOsOyAjODMyMQor6IyiID4gbGnDqDsgIzgzMjIKK+iMoyA+IHfDujsgIzgzMjMKK+iMpCA+IGrDrDsgIzgzMjQKK+iMpSA+IGvFq2k7ICM4MzI1CivojKYgPiBjw6g7ICM4MzI2CivojKcgPiBjaMOzbmc7ICM4MzI3CivojKggPiBjw607ICM4MzI4CivojKkgPiBnxY91OyAjODMyOQor6IyqID4gZ3XEgW5nOyAjODMyQQor6IyrID4gbcOhbmc7ICM4MzJCCivojKwgPiBjaMOtOyAjODMyQwor6IytID4gamnEgW87ICM4MzJECivojK4gPiBqacSBbzsgIzgzMkUKK+iMryA+IGbDujsgIzgzMkYKK+iMsCA+IHnDujsgIzgzMzAKK+iMsSA+IHpoxas7ICM4MzMxCivojLIgPiB6xKs7ICM4MzMyCivojLMgPiBqacSBbmc7ICM4MzMzCivojLQgPiBow7ppOyAjODMzNAor6Iy1ID4gecSrbjsgIzgzMzUKK+iMtiA+IGNow6E7ICM4MzM2CivojLcgPiBmw6E7ICM4MzM3CivojLggPiByw7NuZzsgIzgzMzgKK+iMuSA+IHLDujsgIzgzMzkKK+iMuiA+IGNoxY1uZzsgIzgzM0EKK+iMuyA+IG3Eg25nOyAjODMzQgor6Iy8ID4gdMOzbmc7ICM4MzNDCivojL0gPiB6aMOybmc7ICM4MzNECivojL8gPiB6aMO6OyAjODMzRgor6I2AID4geMO6bjsgIzgzNDAKK+iNgSA+IGh1w6FuOyAjODM0MQor6I2CID4ga3XEgTsgIzgzNDIKK+iNgyA+IHF1w6FuOyAjODM0Mwor6I2EID4gZ8SBaTsgIzgzNDQKK+iNhSA+IGTEgTsgIzgzNDUKK+iNhiA+IGrEq25nOyAjODM0Ngor6I2HID4geMOsbmc7ICM4MzQ3CivojYggPiBxdcOgbjsgIzgzNDgKK+iNiSA+IGPEg287ICM4MzQ5CivojYogPiBqxKtuZzsgIzgzNEEKK+iNiyA+IMOpcjsgIzgzNEIKK+iNjCA+IMOgbjsgIzgzNEMKK+iNjSA+IHNoxY11OyAjODM0RAor6I2OID4gY2jDrTsgIzgzNEUKK+iNjyA+IHLElW47ICM4MzRGCivojZAgPiBqacOgbjsgIzgzNTAKK+iNkSA+IHTDrTsgIzgzNTEKK+iNkiA+IGh1xIFuZzsgIzgzNTIKK+iNkyA+IHDDrW5nOyAjODM1Mwor6I2UID4gbMOsOyAjODM1NAor6I2VID4gasSrbjsgIzgzNTUKK+iNliA+IGzEg287ICM4MzU2CivojZcgPiBzaMO5OyAjODM1Nwor6I2YID4gemh1xIFuZzsgIzgzNTgKK+iNmSA+IGTDoTsgIzgzNTkKK+iNmiA+IGppw6E7ICM4MzVBCivojZsgPiByw6FvOyAjODM1Qgor6I2cID4gYsOsOyAjODM1Qwor6I2dID4gesOpOyAjODM1RAor6I2eID4gcWnDoW87ICM4MzVFCivojZ8gPiBow7lpOyAjODM1Rgor6I2gID4gccOtOyAjODM2MAor6I2hID4gZMOgbmc7ICM4MzYxCivojaMgPiByw7NuZzsgIzgzNjMKK+iNpCA+IGjFq247ICM4MzY0CivojaUgPiB5w61uZzsgIzgzNjUKK+iNpiA+IGzDuW87ICM4MzY2CivojacgPiB5w61uZzsgIzgzNjcKK+iNqCA+IHjDum47ICM4MzY4CivojakgPiBqw6xuOyAjODM2OQor6I2qID4gc8WrbjsgIzgzNkEKK+iNqyA+IHnDrG47ICM4MzZCCivojawgPiBtxINpOyAjODM2Qwor6I2tID4gaMOzbmc7ICM4MzZECivoja4gPiB6aMOydTsgIzgzNkUKK+iNryA+IHnDoG87ICM4MzZGCivojbAgPiBkw7k7ICM4MzcwCivojbEgPiB3xJVpOyAjODM3MQor6I2yID4gY2jDuTsgIzgzNzIKK+iNsyA+IGTDsnU7ICM4MzczCivojbQgPiBmxas7ICM4Mzc0CivojbUgPiByxJVuOyAjODM3NQor6I22ID4gecOtbjsgIzgzNzYKK+iNtyA+IGjDqTsgIzgzNzcKK+iNuCA+IGLDrTsgIzgzNzgKK+iNuSA+IGLDuTsgIzgzNzkKK+iNuiA+IHnDum47ICM4MzdBCivojbsgPiBkw607ICM4MzdCCivojbwgPiB0w7o7ICM4MzdDCivojb0gPiBzxatpOyAjODM3RAor6I2+ID4gc8WraTsgIzgzN0UKK+iNvyA+IGNow6luZzsgIzgzN0YKK+iOgCA+IGNow6luOyAjODM4MAor6I6BID4gd8O6OyAjODM4MQor6I6CID4gYmnDqTsgIzgzODIKK+iOgyA+IHjEqzsgIzgzODMKK+iOhCA+IGfElW5nOyAjODM4NAor6I6FID4gbMOsOyAjODM4NQor6I6GID4gZsWtOyAjODM4Ngor6I6HID4gemjDuTsgIzgzODcKK+iOiCA+IG3DsjsgIzgzODgKK+iOiSA+IGzDrDsgIzgzODkKK+iOiiA+IHpodcSBbmc7ICM4MzhBCivojosgPiBqw607ICM4MzhCCivojowgPiBkw7pvOyAjODM4Qwor6I6NID4gccOtdTsgIzgzOEQKK+iOjiA+IHNoxIE7ICM4MzhFCivojo8gPiBzxatvOyAjODM4Rgor6I6QID4gY2jDqW47ICM4MzkwCivojpEgPiBmxJNuZzsgIzgzOTEKK+iOkiA+IGrFrTsgIzgzOTIKK+iOkyA+IG3DqWk7ICM4MzkzCivojpQgPiBtw6luZzsgIzgzOTQKK+iOlSA+IHjDrG5nOyAjODM5NQor6I6WID4gasSrbmc7ICM4Mzk2CivojpcgPiBjaMSTOyAjODM5Nwor6I6YID4geMSrbjsgIzgzOTgKK+iOmSA+IGrFq247ICM4Mzk5CivojpogPiB5w6FuOyAjODM5QQor6I6bID4gdMOtbmc7ICM4MzlCCivojpwgPiBkacOgbzsgIzgzOUMKK+iOnSA+IGPDuW87ICM4MzlECivojp4gPiB3xINuOyAjODM5RQor6I6fID4gaMOgbjsgIzgzOUYKK+iOoCA+IHnFj3U7ICM4M0EwCivojqEgPiBjw7lvOyAjODNBMQor6I6iID4gamnDoTsgIzgzQTIKK+iOoyA+IHfDoW5nOyAjODNBMwor6I6kID4gecOzdTsgIzgzQTQKK+iOpSA+IG7ErXU7ICM4M0E1CivojqYgPiBzaMSBbzsgIzgzQTYKK+iOpyA+IHhpw6BuOyAjODNBNwor6I6oID4gbMOhbmc7ICM4M0E4CivojqkgPiBmw7o7ICM4M0E5CivojqogPiDDqTsgIzgzQUEKK+iOqyA+IG3DsjsgIzgzQUIKK+iOrCA+IHfDqG47ICM4M0FDCivojq0gPiBqacOpOyAjODNBRAor6I6uID4gbsOhbjsgIzgzQUUKK+iOryA+IG3DuTsgIzgzQUYKK+iOsCA+IGvEg247ICM4M0IwCivojrEgPiBsw6FpOyAjODNCMQor6I6yID4gbGnDoW47ICM4M0IyCivojrMgPiBzaMOtOyAjODNCMwor6I60ID4gd8WNOyAjODNCNAor6I62ID4gbGnEg247ICM4M0I2CivojrcgPiBow7lvOyAjODNCNwor6I64ID4gecOzdTsgIzgzQjgKK+iOuSA+IHnDrW5nOyAjODNCOQor6I66ID4gecSrbmc7ICM4M0JBCivojrwgPiBjaMO6bjsgIzgzQkMKK+iOvSA+IG3Eg25nOyAjODNCRAor6I6+ID4gbcSDbmc7ICM4M0JFCivojr8gPiBjw6w7ICM4M0JGCivoj4AgPiB3xINuOyAjODNDMAor6I+BID4gasSrbmc7ICM4M0MxCivoj4IgPiBkxKs7ICM4M0MyCivoj4MgPiBxw7o7ICM4M0MzCivoj4QgPiBkxY1uZzsgIzgzQzQKK+iPhSA+IGppxIFuOyAjODNDNQor6I+GID4gesWNdTsgIzgzQzYKK+iPhyA+IGfFqzsgIzgzQzcKK+iPiCA+IGzEgTsgIzgzQzgKK+iPiSA+IGzDuTsgIzgzQzkKK+iPiiA+IGrDujsgIzgzQ0EKK+iPiyA+IHfDqGk7ICM4M0NCCivoj4wgPiBqw7luOyAjODNDQwor6I+NID4gbmnDqDsgIzgzQ0QKK+iPjiA+IGvFq247ICM4M0NFCivoj48gPiBow6k7ICM4M0NGCivoj5AgPiBww7o7ICM4M0QwCivoj5EgPiB6xKs7ICM4M0QxCivoj5IgPiBnxINvOyAjODNEMgor6I+TID4gZ8WtbzsgIzgzRDMKK+iPlCA+IGbDujsgIzgzRDQKK+iPlSA+IGzDum47ICM4M0Q1Civoj5YgPiBjaMSBbmc7ICM4M0Q2Civoj5cgPiBjaMOzdTsgIzgzRDcKK+iPmCA+IHPFjW5nOyAjODNEOAor6I+ZID4gY2jDumk7ICM4M0Q5Civoj5ogPiB6aMOgbjsgIzgzREEKK+iPmyA+IG3DqW47ICM4M0RCCivoj5wgPiBjw6BpOyAjODNEQwor6I+dID4gYsOhOyAjODNERAor6I+eID4gbMOtOyAjODNERQor6I+fID4gdMO5OyAjODNERgor6I+gID4gYsWNOyAjODNFMAor6I+hID4gaMOgbjsgIzgzRTEKK+iPoiA+IGLDoG87ICM4M0UyCivoj6MgPiBxw6xuOyAjODNFMwor6I+kID4ganXEg247ICM4M0U0Civoj6UgPiB4xKs7ICM4M0U1Civoj6YgPiBxw61uOyAjODNFNgor6I+nID4gZMStOyAjODNFNwor6I+oID4gamnEkzsgIzgzRTgKK+iPqSA+IHDDujsgIzgzRTkKK+iPqiA+IGTDoG5nOyAjODNFQQor6I+rID4gasStbjsgIzgzRUIKK+iPrCA+IHpoxINvOyAjODNFQwor6I+tID4gdMOhaTsgIzgzRUQKK+iPriA+IGfEk25nOyAjODNFRQor6I+vID4gaHXDoTsgIzgzRUYKK+iPsCA+IGfFqzsgIzgzRjAKK+iPsSA+IGzDrW5nOyAjODNGMQor6I+yID4gZsSTaTsgIzgzRjIKK+iPsyA+IGrEq247ICM4M0YzCivoj7QgPiDEgW47ICM4M0Y0Civoj7UgPiB3xINuZzsgIzgzRjUKK+iPtiA+IGLElW5nOyAjODNGNgor6I+3ID4gemjFj3U7ICM4M0Y3Civoj7ggPiB5xIFuOyAjODNGOAor6I+5ID4gasWrOyAjODNGOQor6I+6ID4gamnEgW47ICM4M0ZBCivoj7sgPiBsxK1uOyAjODNGQgor6I+8ID4gdMSDbjsgIzgzRkMKK+iPvSA+IHNow7o7ICM4M0ZECivoj74gPiB0acOhbjsgIzgzRkUKK+iPvyA+IGTDoG87ICM4M0ZGCivokIAgPiBoxa07ICM4NDAwCivokIEgPiBxw607ICM4NDAxCivokIIgPiBow6k7ICM4NDAyCivokIMgPiBjw7lpOyAjODQwMwor6JCEID4gdMOhbzsgIzg0MDQKK+iQhSA+IGNoxatuOyAjODQwNQor6JCGID4gYsSTaTsgIzg0MDYKK+iQhyA+IGNow6FuZzsgIzg0MDcKK+iQiCA+IGh1w6FuOyAjODQwOAor6JCJID4gZsOpaTsgIzg0MDkKK+iQiiA+IGzDoWk7ICM4NDBBCivokIsgPiBxxKs7ICM4NDBCCivokIwgPiBtw6luZzsgIzg0MEMKK+iQjSA+IHDDrW5nOyAjODQwRAor6JCOID4gd8STaTsgIzg0MEUKK+iQjyA+IGTDoG47ICM4NDBGCivokJAgPiBzaMOgOyAjODQxMAor6JCRID4gaHXDoW47ICM4NDExCivokJIgPiB5xINuOyAjODQxMgor6JCTID4gecOtOyAjODQxMwor6JCUID4gdGnDoW87ICM4NDE0CivokJUgPiBxw607ICM4NDE1CivokJYgPiB3xINuOyAjODQxNgor6JCXID4gY8OoOyAjODQxNwor6JCYID4gbsOgaTsgIzg0MTgKK+iQmiA+IHTDuW87ICM4NDFBCivokJsgPiBqxKt1OyAjODQxQgor6JCcID4gdGnEkzsgIzg0MUMKK+iQnSA+IGzDum87ICM4NDFECivokKAgPiBtw6luZzsgIzg0MjAKK+iQpCA+IHnDrW5nOyAjODQyNAor6JClID4gecOtbmc7ICM4NDI1CivokKYgPiB5w61uZzsgIzg0MjYKK+iQpyA+IHhpxIFvOyAjODQyNwor6JCoID4gc8OgOyAjODQyOAor6JCpID4gccSrdTsgIzg0MjkKK+iQqiA+IGvEkzsgIzg0MkEKK+iQqyA+IHhpw6BuZzsgIzg0MkIKK+iQrCA+IHfDoG47ICM4NDJDCivokK0gPiB5xa07ICM4NDJECivokK4gPiB5w7k7ICM4NDJFCivokK8gPiBmw7k7ICM4NDJGCivokLAgPiBsacOgbjsgIzg0MzAKK+iQsSA+IHh1xIFuOyAjODQzMQor6JCyID4geXXDoW47ICM4NDMyCivokLMgPiBuw6FuOyAjODQzMwor6JC0ID4gesOpOyAjODQzNAor6JC1ID4gd8WNOyAjODQzNQor6JC2ID4gY2jFrW47ICM4NDM2CivokLcgPiB4acSBbzsgIzg0MzcKK+iQuCA+IHnDujsgIzg0MzgKK+iQuSA+IHBpxIFuOyAjODQzOQor6JC6ID4gbcOgbzsgIzg0M0EKK+iQuyA+IMSBbjsgIzg0M0IKK+iQvCA+IMOoOyAjODQzQwor6JC9ID4gbMO5bzsgIzg0M0QKK+iQviA+IHnDrW5nOyAjODQzRQor6JC/ID4gaMO6bzsgIzg0M0YKK+iRgCA+IGd1xIE7ICM4NDQwCivokYEgPiBqacSBbmc7ICM4NDQxCivokYIgPiBtacSDbjsgIzg0NDIKK+iRgyA+IHrDum87ICM4NDQzCivokYQgPiB6w7lvOyAjODQ0NAor6JGFID4gasWrOyAjODQ0NQor6JGGID4gYsSDbzsgIzg0NDYKK+iRhyA+IHLDs3U7ICM4NDQ3CivokYggPiB4xK07ICM4NDQ4CivokYkgPiB4acOpOyAjODQ0OQor6JGKID4gxIFuOyAjODQ0QQor6JGLID4gccO6OyAjODQ0Qgor6JGMID4gamnEgW47ICM4NDRDCivokY0gPiBmw7o7ICM4NDRECivokY4gPiBsx5w7ICM4NDRFCivokY8gPiBqxKtuZzsgIzg0NEYKK+iRkCA+IHDDqW47ICM4NDUwCivokZEgPiBmxJNuZzsgIzg0NTEKK+iRkiA+IGjDs25nOyAjODQ1Mgor6JGTID4gaMOzbmc7ICM4NDUzCivokZQgPiBow7N1OyAjODQ1NAor6JGVID4gecOhbjsgIzg0NTUKK+iRliA+IHTDujsgIzg0NTYKK+iRlyA+IHpow7k7ICM4NDU3CivokZggPiB6xKs7ICM4NDU4CivokZkgPiB4acSBbmc7ICM4NDU5CivokZogPiBzaMOobjsgIzg0NUEKK+iRmyA+IGfElTsgIzg0NUIKK+iRnCA+IGppw6k7ICM4NDVDCivokZ0gPiBqw6xuZzsgIzg0NUQKK+iRniA+IG3ErTsgIzg0NUUKK+iRnyA+IGh1w6FuZzsgIzg0NUYKK+iRoCA+IHNoxJNuOyAjODQ2MAor6JGhID4gcMO6OyAjODQ2MQor6JGiID4gZ8OgaTsgIzg0NjIKK+iRoyA+IGTFj25nOyAjODQ2Mwor6JGkID4gemjDsnU7ICM4NDY0CivokaUgPiBxacOhbjsgIzg0NjUKK+iRpiA+IHfElWk7ICM4NDY2CivokacgPiBiw7M7ICM4NDY3CivokaggPiB3xJNpOyAjODQ2OAor6JGpID4gcMSBOyAjODQ2OQor6JGqID4gasOsOyAjODQ2QQor6JGrID4gaMO6OyAjODQ2Qgor6JGsID4gesOgbmc7ICM4NDZDCivoka0gPiBqacSBOyAjODQ2RAor6JGuID4gZHXDoG47ICM4NDZFCivoka8gPiB5w6BvOyAjODQ2Rgor6JGwID4gasO5bjsgIzg0NzAKK+iRsSA+IGPFjW5nOyAjODQ3MQor6JGyID4gcXXDoW47ICM4NDcyCivokbMgPiB3xJNpOyAjODQ3Mwor6JG0ID4geGnDoW47ICM4NDc0CivokbUgPiBrw7ppOyAjODQ3NQor6JG2ID4gdMOtbmc7ICM4NDc2CivokbcgPiBoxatuOyAjODQ3Nwor6JG4ID4geMStOyAjODQ3OAor6JG5ID4gc2jEqzsgIzg0NzkKK+iRuiA+IHHDrDsgIzg0N0EKK+iRuyA+IGzDoW47ICM4NDdCCivokbwgPiB6xY1uZzsgIzg0N0MKK+iRvSA+IHnEgW87ICM4NDdECivokb4gPiB5dcSBbjsgIzg0N0UKK+iRvyA+IG3DqWk7ICM4NDdGCivokoAgPiB5xatuOyAjODQ4MAor6JKBID4gc2jDuTsgIzg0ODEKK+iSgiA+IGTDrDsgIzg0ODIKK+iSgyA+IHpodcOgbjsgIzg0ODMKK+iShCA+IGd1xIFuOyAjODQ4NAor6JKGID4geHXEkzsgIzg0ODYKK+iShyA+IGNoxINuOyAjODQ4Nwor6JKIID4ga8SDaTsgIzg0ODgKK+iSiSA+IGvDuWk7ICM4NDg5CivokosgPiBqacSDbmc7ICM4NDhCCivokowgPiBsw7N1OyAjODQ4Qwor6JKNID4gd8OpaTsgIzg0OEQKK+iSjiA+IHDDoGk7ICM4NDhFCivokpAgPiBzxY11OyAjODQ5MAor6JKRID4gecSrbjsgIzg0OTEKK+iSkiA+IHNoxKs7ICM4NDkyCivokpMgPiBjaMO6bjsgIzg0OTMKK+iSlCA+IHNow607ICM4NDk0CivokpUgPiB5xatuOyAjODQ5NQor6JKWID4gemjEk247ICM4NDk2CivokpcgPiBsw6BuZzsgIzg0OTcKK+iSmCA+IG7DujsgIzg0OTgKK+iSmSA+IG3DqW5nOyAjODQ5OQor6JKaID4gaMOpOyAjODQ5QQor6JKbID4gcXXEkzsgIzg0OUIKK+iSnCA+IHN1w6BuOyAjODQ5Qwor6JKdID4geXXDoW47ICM4NDlECivokp4gPiBsw6w7ICM4NDlFCivokp8gPiBqxa07ICM4NDlGCivokqAgPiB4w607ICM4NEEwCivokqEgPiBww6FuZzsgIzg0QTEKK+iSoiA+IGNow7o7ICM4NEEyCivokqMgPiB4w7o7ICM4NEEzCivokqQgPiB0w7o7ICM4NEE0CivokqUgPiBsw611OyAjODRBNQor6JKmID4gd8OyOyAjODRBNgor6JKnID4gemjEk247ICM4NEE3CivokqggPiBxacOgbjsgIzg0QTgKK+iSqSA+IHrFqzsgIzg0QTkKK+iSqiA+IHDDsjsgIzg0QUEKK+iSqyA+IGPFq287ICM4NEFCCivokqwgPiB5dcSBbjsgIzg0QUMKK+iSrSA+IGNow7o7ICM4NEFECivokq4gPiB5w7k7ICM4NEFFCivokq8gPiBrdcSDaTsgIzg0QUYKK+iSsCA+IHDDoW47ICM4NEIwCivokrEgPiBww7o7ICM4NEIxCivokrIgPiBww7o7ICM4NEIyCivokrMgPiBuw6A7ICM4NEIzCivokrQgPiBzaMO5bzsgIzg0QjQKK+iStSA+IHjEqzsgIzg0QjUKK+iStiA+IGbDqW47ICM4NEI2CivokrcgPiB5w7puOyAjODRCNwor6JK4ID4gemjEk25nOyAjODRCOAor6JK5ID4gamnEgW47ICM4NEI5CivokrogPiBqw607ICM4NEJBCivokrsgPiByw7lvOyAjODRCQgor6JK8ID4gY8SBbmc7ICM4NEJDCivokr0gPiDEk247ICM4NEJECivokr4gPiBtw607ICM4NEJFCivokr8gPiBoxIFvOyAjODRCRgor6JOAID4gc8WrbjsgIzg0QzAKK+iTgSA+IHpoxJNuOyAjODRDMQor6JOCID4gbcOtbmc7ICM4NEMyCivok4MgPiBzb3U7ICM4NEMzCivok4QgPiB4w7k7ICM4NEM0Civok4UgPiBsw611OyAjODRDNQor6JOGID4geMOtOyAjODRDNgor6JOHID4gZ8WtOyAjODRDNwor6JOIID4gbMOhbmc7ICM4NEM4Civok4kgPiByw7NuZzsgIzg0QzkKK+iTiiA+IHfElW5nOyAjODRDQQor6JOLID4gZ8OgaTsgIzg0Q0IKK+iTjCA+IGPDuW87ICM4NENDCivok40gPiBzaMSrOyAjODRDRAor6JOOID4gdMOhbmc7ICM4NENFCivok48gPiBsxa1vOyAjODRDRgor6JOQID4gcsO5OyAjODREMAor6JORID4gc8WrbzsgIzg0RDEKK+iTkiA+IHhpxIFuOyAjODREMgor6JOTID4gYsOoaTsgIzg0RDMKK+iTlCA+IHnEg287ICM4NEQ0Civok5UgPiBnw7lpOyAjODRENQor6JOWID4gYsSrOyAjODRENgor6JOXID4gesWPbmc7ICM4NEQ3Civok5ggPiBnxa1uOyAjODREOAor6JOaID4geMSrdTsgIzg0REEKK+iTmyA+IGPDqDsgIzg0REIKK+iTnSA+IGzDoW47ICM4NERECivok58gPiBqw6w7ICM4NERGCivok6AgPiBsw607ICM4NEUwCivok6EgPiBjxIFuOyAjODRFMQor6JOiID4gbMOhbmc7ICM4NEUyCivok6MgPiB5w7k7ICM4NEUzCivok6UgPiB5w6xuZzsgIzg0RTUKK+iTpiA+IG3DsjsgIzg0RTYKK+iTpyA+IGRpw6BvOyAjODRFNwor6JOoID4gdGnEgW87ICM4NEU4Civok6kgPiBtw6BvOyAjODRFOQor6JOqID4gdMWNbmc7ICM4NEVBCivok6sgPiB6aMO6OyAjODRFQgor6JOsID4gcMOpbmc7ICM4NEVDCivok60gPiDEgW47ICM4NEVECivok64gPiBsacOhbjsgIzg0RUUKK+iTryA+IGPFjW5nOyAjODRFRgor6JOwID4geMStOyAjODRGMAor6JOxID4gcMOtbmc7ICM4NEYxCivok7IgPiBxxKt1OyAjODRGMgor6JOzID4gasOsbjsgIzg0RjMKK+iTtCA+IGNow7puOyAjODRGNAor6JO1ID4gamnDqTsgIzg0RjUKK+iTtiA+IHfElWk7ICM4NEY2Civok7cgPiB0xatpOyAjODRGNwor6JO4ID4gY8OhbzsgIzg0RjgKK+iTuSA+IHnFrTsgIzg0RjkKK+iTuiA+IHnDrDsgIzg0RkEKK+iTuyA+IGrDrTsgIzg0RkIKK+iTvCA+IGxpxINvOyAjODRGQwor6JO9ID4gYsOsOyAjODRGRAor6JO+ID4gbMWtOyAjODRGRQor6JO/ID4gc8O5OyAjODRGRgor6JSAID4gYsO5OyAjODUwMAor6JSBID4gemjEgW5nOyAjODUwMQor6JSCID4gbMO6bzsgIzg1MDIKK+iUgyA+IGppw6BuZzsgIzg1MDMKK+iUhCA+IG3DoG47ICM4NTA0CivolIUgPiB5w6FuOyAjODUwNQor6JSGID4gbMOtbmc7ICM4NTA2CivolIcgPiBqw6w7ICM4NTA3CivolIggPiBwacSDbzsgIzg1MDgKK+iUiSA+IGfFrW47ICM4NTA5CivolIogPiBoxINuOyAjODUwQQor6JSLID4gZMOtOyAjODUwQgor6JSMID4gc8O5OyAjODUwQwor6JSNID4gbMO5OyAjODUwRAor6JSOID4gc2jDqDsgIzg1MEUKK+iUjyA+IHNoxIFuZzsgIzg1MEYKK+iUkCA+IGTDrTsgIzg1MTAKK+iUkSA+IG1pw6g7ICM4NTExCivolJIgPiB4xatuOyAjODUxMgor6JSTID4gbcOgbjsgIzg1MTMKK+iUlCA+IGLDszsgIzg1MTQKK+iUlSA+IGTDrDsgIzg1MTUKK+iUliA+IGPDum87ICM4NTE2CivolJcgPiB6aMOoOyAjODUxNwor6JSYID4gc8STbjsgIzg1MTgKK+iUmSA+IHh1w6BuOyAjODUxOQor6JSaID4gd8OoaTsgIzg1MUEKK+iUmyA+IGjDujsgIzg1MUIKK+iUnCA+IMOhbzsgIzg1MUMKK+iUnSA+IG3ErTsgIzg1MUQKK+iUniA+IGzDs3U7ICM4NTFFCivolJ8gPiBjw7k7ICM4NTFGCivolKAgPiB6aMWNbmc7ICM4NTIwCivolKEgPiBjw6BpOyAjODUyMQor6JSiID4gcMOzOyAjODUyMgor6JSjID4gamnEg25nOyAjODUyMwor6JSkID4gbcOsOyAjODUyNAor6JSlID4gY8WNbmc7ICM4NTI1CivolKYgPiBuacSDbzsgIzg1MjYKK+iUpyA+IGjDuWk7ICM4NTI3CivolKggPiBqw7luOyAjODUyOAor6JSpID4gecOtbjsgIzg1MjkKK+iUqiA+IGppw6BuOyAjODUyQQor6JSrID4gecSBbjsgIzg1MkIKK+iUrCA+IHNoxas7ICM4NTJDCivolK0gPiB5w6xuOyAjODUyRAor6JSuID4ga8O5aTsgIzg1MkUKK+iUryA+IGNow6luOyAjODUyRgor6JSwID4gaMO5OyAjODUzMAor6JSxID4gc2jEgTsgIzg1MzEKK+iUsiA+IGvDsnU7ICM4NTMyCivolLMgPiBxacOgbjsgIzg1MzMKK+iUtCA+IG3DoTsgIzg1MzQKK+iUtSA+IHrEgW5nOyAjODUzNQor6JS3ID4gcWnDoW5nOyAjODUzNwor6JS4ID4gZMWNdTsgIzg1MzgKK+iUuSA+IGxpw6BuOyAjODUzOQor6JS6ID4gbMOsbjsgIzg1M0EKK+iUuyA+IGvDsnU7ICM4NTNCCivolLwgPiDEg2k7ICM4NTNDCivolL0gPiBiw6w7ICM4NTNECivolL4gPiBsw607ICM4NTNFCivolL8gPiB3w6lpOyAjODUzRgor6JWAID4gasOtOyAjODU0MAor6JWBID4geMO6bjsgIzg1NDEKK+iVgiA+IHNow6huZzsgIzg1NDIKK+iVgyA+IGbDoW47ICM4NTQzCivolYQgPiBtw6luZzsgIzg1NDQKK+iVhSA+IMWPdTsgIzg1NDUKK+iVhiA+IGNoxINuOyAjODU0Ngor6JWHID4gZGnEg247ICM4NTQ3CivolYggPiB4w7luOyAjODU0OAor6JWJID4gamnEgW87ICM4NTQ5CivolYogPiByxa1pOyAjODU0QQor6JWLID4gcsWtaTsgIzg1NEIKK+iVjCA+IGzElWk7ICM4NTRDCivolY0gPiB5w7o7ICM4NTRECivolY4gPiBxacOhbzsgIzg1NEUKK+iVjyA+IGNow7o7ICM4NTRGCivolZAgPiBodcOhOyAjODU1MAor6JWRID4gamnEgW47ICM4NTUxCivolZIgPiBtxINpOyAjODU1Mgor6JWTID4gecO6bjsgIzg1NTMKK+iVlCA+IGLEgW87ICM4NTU0CivolZUgPiB5w7N1OyAjODU1NQor6JWWID4gccO6OyAjODU1Ngor6JWXID4gbMO5OyAjODU1Nwor6JWYID4gcsOhbzsgIzg1NTgKK+iVmSA+IGjDuWk7ICM4NTU5CivolZogPiDDqDsgIzg1NUEKK+iVmyA+IHTDqW5nOyAjODU1Qgor6JWcID4gZsSVaTsgIzg1NUMKK+iVnSA+IGp1w6k7ICM4NTVECivolZ4gPiB6w7lpOyAjODU1RQor6JWfID4gZsOgOyAjODU1Rgor6JWgID4gcsO6OyAjODU2MAor6JWhID4gZsOpbjsgIzg1NjEKK+iVoiA+IGvDuWk7ICM4NTYyCivolaMgPiBzaMO5bjsgIzg1NjMKK+iVpCA+IHLDumk7ICM4NTY0CivolaUgPiB5xIM7ICM4NTY1CivolaYgPiB4xas7ICM4NTY2CivolacgPiBmw7k7ICM4NTY3CivolaggPiBqdcOpOyAjODU2OAor6JWpID4gZMOgbmc7ICM4NTY5CivolaogPiB3w7o7ICM4NTZBCivolasgPiB0w7NuZzsgIzg1NkIKK+iVrCA+IHPEqzsgIzg1NkMKK+iVrSA+IHhpxIFvOyAjODU2RAor6JWuID4geMOsOyAjODU2RQor6JWvID4gbMOzbmc7ICM4NTZGCivolbAgPiB5w7luOyAjODU3MAor6JWyID4gccOtOyAjODU3Mgor6JWzID4gamnEgW47ICM4NTczCivolbQgPiB5w7luOyAjODU3NAor6JW1ID4gc8WrbjsgIzg1NzUKK+iVtiA+IGzDrW5nOyAjODU3Ngor6JW3ID4gecO5OyAjODU3Nwor6JW4ID4geGnDoTsgIzg1NzgKK+iVuSA+IHnFjW5nOyAjODU3OQor6JW6ID4gasOtOyAjODU3QQor6JW7ID4gaMOybmc7ICM4NTdCCivolbwgPiBzw6w7ICM4NTdDCivolb0gPiBuw7NuZzsgIzg1N0QKK+iVviA+IGzElWk7ICM4NTdFCivolb8gPiB4dcSBbjsgIzg1N0YKK+iWgCA+IHnDuW47ICM4NTgwCivoloEgPiB5w7k7ICM4NTgxCivoloIgPiB4w607ICM4NTgyCivoloMgPiBow6BvOyAjODU4Mwor6JaEID4gYsOzOyAjODU4NAor6JaFID4gaMSBbzsgIzg1ODUKK+iWhiA+IMOgaTsgIzg1ODYKK+iWhyA+IHfDqWk7ICM4NTg3CivologgPiBow7lpOyAjODU4OAor6JaJID4gd8OoaTsgIzg1ODkKK+iWiiA+IGrDrDsgIzg1OEEKK+iWiyA+IGPEqzsgIzg1OEIKK+iWjCA+IHhpxIFuZzsgIzg1OEMKK+iWjSA+IGx1w6BuOyAjODU4RAor6JaOID4gbWnDqDsgIzg1OEUKK+iWjyA+IHnDrDsgIzg1OEYKK+iWkCA+IGzDqW5nOyAjODU5MAor6JaRID4gamnEgW5nOyAjODU5MQor6JaSID4gY8OgbjsgIzg1OTIKK+iWkyA+IHNoxJNuOyAjODU5Mwor6JaUID4gcWnDoW5nOyAjODU5NAor6JaVID4gbGnDoW47ICM4NTk1CivolpYgPiBrxJM7ICM4NTk2CivolpcgPiB5dcOhbjsgIzg1OTcKK+iWmCA+IGTDoTsgIzg1OTgKK+iWmSA+IHTDrDsgIzg1OTkKK+iWmiA+IHTDoW5nOyAjODU5QQor6JabID4geGnEkzsgIzg1OUIKK+iWnCA+IGLDrDsgIzg1OUMKK+iWnSA+IHpow6FuOyAjODU5RAor6JaeID4gc8WrbjsgIzg1OUUKK+iWnyA+IGxpxINuOyAjODU5Rgor6JagID4gZsOhbjsgIzg1QTAKK+iWoSA+IGTErW5nOyAjODVBMQor6JaiID4gamnEkzsgIzg1QTIKK+iWoyA+IGfFrTsgIzg1QTMKK+iWpCA+IHhpw6g7ICM4NUE0CivolqUgPiBzaMWtOyAjODVBNQor6JamID4gamnDoG47ICM4NUE2CivolqcgPiBrxINvOyAjODVBNwor6JaoID4gaMWNbmc7ICM4NUE4CivolqkgPiBzw6A7ICM4NUE5CivolqogPiB4xKtuOyAjODVBQQor6JarID4geMWrbjsgIzg1QUIKK+iWrCA+IHnDoG87ICM4NUFDCivolq4gPiBzxY91OyAjODVBRQor6JavID4gc2jFrTsgIzg1QUYKK+iWsCA+IHjFq247ICM4NUIwCivolrEgPiBkw7lpOyAjODVCMQor6JayID4gcMOtbjsgIzg1QjIKK+iWsyA+IHfElWk7ICM4NUIzCivolrQgPiBuw6luZzsgIzg1QjQKK+iWtSA+IGNow7N1OyAjODVCNQor6Ja2ID4gbcOhaTsgIzg1QjYKK+iWtyA+IHLDujsgIzg1QjcKK+iWuCA+IHBpxIFvOyAjODVCOAor6Ja5ID4gdMOhaTsgIzg1QjkKK+iWuiA+IHHDrTsgIzg1QkEKK+iWuyA+IHrEg287ICM4NUJCCivolrwgPiBjaMOpbjsgIzg1QkMKK+iWvSA+IHpoxJNuOyAjODVCRAor6Ja+ID4gxJVyOyAjODVCRQor6Ja/ID4gbsStOyAjODVCRgor6JeAID4gecOtbmc7ICM4NUMwCivol4EgPiBnxINvOyAjODVDMQor6JeCID4gY8Oybmc7ICM4NUMyCivol4MgPiB4acSBbzsgIzg1QzMKK+iXhCA+IHHDrTsgIzg1QzQKK+iXhSA+IGbDoTsgIzg1QzUKK+iXhiA+IGppxINuOyAjODVDNgor6JeHID4geMO5OyAjODVDNwor6JeIID4ga8WraTsgIzg1QzgKK+iXiSA+IGppw6g7ICM4NUM5Civol4ogPiBiacSDbjsgIzg1Q0EKK+iXiyA+IGRpw6BvOyAjODVDQgor6JeMID4gbcOsOyAjODVDQwor6JeNID4gbMOhbjsgIzg1Q0QKK+iXjiA+IGrDrG47ICM4NUNFCivol48gPiBjw6FuZzsgIzg1Q0YKK+iXkCA+IG1pxINvOyAjODVEMAor6JeRID4gccOtb25nOyAjODVEMQor6JeSID4gcWnDqDsgIzg1RDIKK+iXkyA+IHhpxINuOyAjODVEMwor6JeVID4gxY91OyAjODVENQor6JeWID4geGnDoW47ICM4NUQ2Civol5cgPiBzw7k7ICM4NUQ3Civol5ggPiBsx5g7ICM4NUQ4Civol5kgPiB5w6w7ICM4NUQ5Civol5ogPiB4w7k7ICM4NURBCivol5sgPiB4acSVOyAjODVEQgor6JecID4gbMOtOyAjODVEQwor6JedID4gecOsOyAjODVERAor6JeeID4gbMSDOyAjODVERQor6JefID4gbMSVaTsgIzg1REYKK+iXoCA+IHhpw6BvOyAjODVFMAor6JehID4gZMOtOyAjODVFMQor6JeiID4gemjErTsgIzg1RTIKK+iXoyA+IGLEk2k7ICM4NUUzCivol6QgPiB0w6luZzsgIzg1RTQKK+iXpSA+IHnDoG87ICM4NUU1Civol6YgPiBtw7I7ICM4NUU2Civol6cgPiBodcSDbjsgIzg1RTcKK+iXqCA+IHBpxINvOyAjODVFOAor6JepID4gZsOhbjsgIzg1RTkKK+iXqiA+IHPFj3U7ICM4NUVBCivol6sgPiB0w6FuOyAjODVFQgor6JesID4gdMWraTsgIzg1RUMKK+iXrSA+IHHDrW9uZzsgIzg1RUQKK+iXriA+IHFpw6FvOyAjODVFRQor6JevID4gd8OoaTsgIzg1RUYKK+iXsCA+IGzDrXU7ICM4NUYwCivol7EgPiBow7lpOyAjODVGMQor6JezID4gZ8SDbzsgIzg1RjMKK+iXtCA+IHnDuW47ICM4NUY0Civol7YgPiBsw6w7ICM4NUY2Civol7cgPiBzaMWtOyAjODVGNwor6Je4ID4gY2jDujsgIzg1RjgKK+iXuSA+IMSDaTsgIzg1RjkKK+iXuiA+IGzDrG47ICM4NUZBCivol7sgPiB6xINvOyAjODVGQgor6Je8ID4geHXEgW47ICM4NUZDCivol70gPiBjaMOobjsgIzg1RkQKK+iXviA+IGzDoGk7ICM4NUZFCivol78gPiBow7lvOyAjODVGRgor6JiAID4gdMO5bzsgIzg2MDAKK+iYgSA+IHfDuTsgIzg2MDEKK+iYgiA+IHLFrWk7ICM4NjAyCivomIMgPiByxa1pOyAjODYwMwor6JiEID4gccOtOyAjODYwNAor6JiFID4gaMOpbmc7ICM4NjA1CivomIYgPiBsw7o7ICM4NjA2CivomIcgPiBzxas7ICM4NjA3CivomIggPiB0w7ppOyAjODYwOAor6JiJID4gbcOhbmc7ICM4NjA5CivomIogPiB5w7luOyAjODYwQQor6JiLID4gcMOtbjsgIzg2MEIKK+iYjCA+IHnFrTsgIzg2MEMKK+iYjSA+IHjFq247ICM4NjBECivomI4gPiBqw6w7ICM4NjBFCivomI8gPiBqxKtvbmc7ICM4NjBGCivomJAgPiB4acSBbjsgIzg2MTAKK+iYkSA+IG3DszsgIzg2MTEKK+iYkyA+IHPFqzsgIzg2MTMKK+iYlCA+IGrEq29uZzsgIzg2MTQKK+iYliA+IG5pw6g7ICM4NjE2CivomJcgPiBiw7I7ICM4NjE3CivomJggPiByw6FuZzsgIzg2MTgKK+iYmSA+IHnDrDsgIzg2MTkKK+iYmiA+IHhpxINuOyAjODYxQQor6JibID4gecO6OyAjODYxQgor6JicID4gasO6OyAjODYxQwor6JidID4gbGnDoG47ICM4NjFECivomJ4gPiBsacOgbjsgIzg2MUUKK+iYnyA+IHnErW47ICM4NjFGCivomKAgPiBxacOhbmc7ICM4NjIwCivomKEgPiB5xKtuZzsgIzg2MjEKK+iYoiA+IGzDs25nOyAjODYyMgor6JijID4gdMOybmc7ICM4NjIzCivomKQgPiB3xJVpOyAjODYyNAor6JilID4geXXDqDsgIzg2MjUKK+iYpiA+IGzDrW5nOyAjODYyNgor6JinID4gccO6OyAjODYyNwor6JioID4gecOhbzsgIzg2MjgKK+iYqSA+IGbDoW47ICM4NjI5CivomKogPiBtw607ICM4NjJBCivomKsgPiBsw6FuOyAjODYyQgor6JisID4ga8WraTsgIzg2MkMKK+iYrSA+IGzDoW47ICM4NjJECivomK4gPiBqw6w7ICM4NjJFCivomK8gPiBkw6BuZzsgIzg2MkYKK+iYsSA+IGzDqGk7ICM4NjMxCivomLIgPiBsw6lpOyAjODYzMgor6JizID4gaHXEgzsgIzg2MzMKK+iYtCA+IGbEk25nOyAjODYzNAor6Ji1ID4gemjDrTsgIzg2MzUKK+iYtiA+IHfDqGk7ICM4NjM2CivomLcgPiBrw7ppOyAjODYzNwor6Ji4ID4gemjDoG47ICM4NjM4CivomLkgPiBodcOgaTsgIzg2MzkKK+iYuiA+IGzDrTsgIzg2M0EKK+iYuyA+IGrDrDsgIzg2M0IKK+iYvCA+IG3DrTsgIzg2M0MKK+iYvSA+IGzElWk7ICM4NjNECivomL4gPiBodcOgaTsgIzg2M0UKK+iYvyA+IGzDum87ICM4NjNGCivomYAgPiBqxKs7ICM4NjQwCivomYEgPiBrw7ppOyAjODY0MQor6JmCID4gbMO5OyAjODY0Mgor6JmDID4gamnEgW47ICM4NjQzCivomYYgPiBsw6lpOyAjODY0Ngor6JmHID4gcXXEg247ICM4NjQ3CivomYggPiB4acSBbzsgIzg2NDgKK+iZiSA+IHnDrDsgIzg2NDkKK+iZiiA+IGx1w6FuOyAjODY0QQor6JmLID4gbcOpbjsgIzg2NEIKK+iZjCA+IGJpxJM7ICM4NjRDCivomY0gPiBoxas7ICM4NjRECivomY4gPiBoxa07ICM4NjRFCivomY8gPiBsxa07ICM4NjRGCivomZAgPiBux5xlOyAjODY1MAor6JmRID4gbMecOyAjODY1MQor6JmSID4gc8SrOyAjODY1Mgor6JmTID4geGnEgW87ICM4NjUzCivomZQgPiBxacOhbjsgIzg2NTQKK+iZlSA+IGNow7k7ICM4NjU1CivomZYgPiBoxas7ICM4NjU2CivomZcgPiB4xas7ICM4NjU3CivomZggPiBjw7pvOyAjODY1OAor6JmZID4gZsO6OyAjODY1OQor6JmaID4geMWrOyAjODY1QQor6JmbID4geMWrOyAjODY1Qgor6JmcID4gbMWtOyAjODY1Qwor6JmdID4gaMWtOyAjODY1RAor6JmeID4gecO6OyAjODY1RQor6JmfID4gaMOgbzsgIzg2NUYKK+iZoCA+IGppxINvOyAjODY2MAor6JmhID4gasO5OyAjODY2MQor6JmiID4gZ8O6bzsgIzg2NjIKK+iZoyA+IGLDoG87ICM4NjYzCivomaQgPiB5w6FuOyAjODY2NAor6JmlID4gemjDoG47ICM4NjY1CivomaYgPiB6aMOgbjsgIzg2NjYKK+iZpyA+IGvFq2k7ICM4NjY3CivomaggPiBixIFuOyAjODY2OAor6JmpID4geMOsOyAjODY2OQor6JmqID4gc2jDujsgIzg2NkEKK+iZqyA+IGNow7NuZzsgIzg2NkIKK+iZrCA+IHHDrXU7ICM4NjZDCivoma0gPiBkacSBbzsgIzg2NkQKK+iZriA+IGrEqzsgIzg2NkUKK+iZryA+IHHDrXU7ICM4NjZGCivombAgPiBjaMOpbmc7ICM4NjcwCivombEgPiBzaMSrOyAjODY3MQor6JmzID4gZMOsOyAjODY3Mwor6Jm0ID4gemjDqTsgIzg2NzQKK+iZtSA+IHNow6k7ICM4Njc1CivombYgPiB5xas7ICM4Njc2CivombcgPiBnxIFuOyAjODY3Nwor6Jm4ID4gesStOyAjODY3OAor6Jm5ID4gaMOzbmc7ICM4Njc5CivombogPiBoxa1pOyAjODY3QQor6Jm7ID4gbcOpbmc7ICM4NjdCCivombwgPiBnw6g7ICM4NjdDCivomb0gPiBzxatpOyAjODY3RAor6Jm+ID4geGnEgTsgIzg2N0UKK+iZvyA+IGNow6BpOyAjODY3Rgor6JqAID4gc2jDrTsgIzg2ODAKK+iagSA+IHnErTsgIzg2ODEKK+iagiA+IG3EgzsgIzg2ODIKK+iagyA+IHhpw6BuZzsgIzg2ODMKK+iahCA+IGbEgW5nOyAjODY4NAor6JqFID4gw6g7ICM4Njg1CivomoYgPiBwxIE7ICM4Njg2CivomocgPiBjaMStOyAjODY4Nwor6JqIID4gcWnEgW47ICM4Njg4CivomokgPiB3w6luOyAjODY4OQor6JqKID4gd8OpbjsgIzg2OEEKK+iaiyA+IHLDuWk7ICM4NjhCCivomowgPiBiw6BuZzsgIzg2OEMKK+iajSA+IGLErTsgIzg2OEQKK+iajiA+IHl1w6g7ICM4NjhFCivomo8gPiB5dcOoOyAjODY4Rgor6JqQID4gasWrbjsgIzg2OTAKK+iakSA+IHHDrTsgIzg2OTEKK+iakiA+IHLDoW47ICM4NjkyCivompMgPiB5xK1uOyAjODY5Mwor6JqUID4gccOtOyAjODY5NAor6JqVID4gdGnEg247ICM4Njk1CivompYgPiB5dcOhbjsgIzg2OTYKK+ialyA+IGp1w6k7ICM4Njk3CivompggPiBow7ppOyAjODY5OAor6JqZID4gccOtbjsgIzg2OTkKK+iamiA+IHHDrTsgIzg2OUEKK+iamyA+IHpow7JuZzsgIzg2OUIKK+ianCA+IHnDoTsgIzg2OUMKK+ianSA+IGPDrDsgIzg2OUQKK+ianiA+IG3DuTsgIzg2OUUKK+ianyA+IHfDoW5nOyAjODY5Rgor6JqgID4gZsOpbjsgIzg2QTAKK+iaoSA+IGbDqW47ICM4NkExCivomqIgPiBow6FuZzsgIzg2QTIKK+iaoyA+IGfFjW5nOyAjODZBMwor6JqkID4gesSDbzsgIzg2QTQKK+iapSA+IGbFrTsgIzg2QTUKK+iapiA+IHLDoW47ICM4NkE2CivomqcgPiBqacOoOyAjODZBNwor6JqoID4gZsO6OyAjODZBOAor6JqpID4gY2jEqzsgIzg2QTkKK+iaqiA+IGTFj3U7ICM4NkFBCivomqsgPiBwacOhbzsgIzg2QUIKK+iarCA+IHhpw6BuOyAjODZBQwor6JqtID4gbsOtOyAjODZBRAor6JquID4gdMOoOyAjODZBRQor6JqvID4gccSrdTsgIzg2QUYKK+iasCA+IHnDs3U7ICM4NkIwCivomrEgPiB6aMOgOyAjODZCMQor6JqyID4gcMOtbmc7ICM4NkIyCivomrMgPiBjaMOtOyAjODZCMwor6Jq0ID4gecWPdTsgIzg2QjQKK+iatSA+IGjDqTsgIzg2QjUKK+iatiA+IGjEgW47ICM4NkI2CivomrcgPiBqw7k7ICM4NkI3CivomrggPiBsw6w7ICM4NkI4CivomrkgPiBmw7k7ICM4NkI5CivomrogPiByw6FuOyAjODZCQQor6Jq7ID4gemjDoTsgIzg2QkIKK+iavCA+IGfFj3U7ICM4NkJDCivomr0gPiBww607ICM4NkJECivomr4gPiBixY87ICM4NkJFCivomr8gPiB4acOhbjsgIzg2QkYKK+ibgCA+IHpow7k7ICM4NkMwCivom4EgPiBkacSBbzsgIzg2QzEKK+ibgiA+IGJpxJU7ICM4NkMyCivom4MgPiBixK1uZzsgIzg2QzMKK+ibhCA+IGfFqzsgIzg2QzQKK+ibhSA+IHLDoW47ICM4NkM1Civom4YgPiBxxas7ICM4NkM2Civom4cgPiBzaMOpOyAjODZDNwor6JuIID4gdGnDqDsgIzg2QzgKK+ibiSA+IGzDrW5nOyAjODZDOQor6JuKID4gZ8WtOyAjODZDQQor6JuLID4gZMOgbjsgIzg2Q0IKK+ibjCA+IGfFrTsgIzg2Q0MKK+ibjSA+IHnDrW5nOyAjODZDRAor6JuOID4gbMOsOyAjODZDRQor6JuPID4gY2jEk25nOyAjODZDRgor6JuQID4gccWrOyAjODZEMAor6JuRID4gbcOzdTsgIzg2RDEKK+ibkiA+IGfDqTsgIzg2RDIKK+ibkyA+IGPDrDsgIzg2RDMKK+iblCA+IGjDumk7ICM4NkQ0Civom5UgPiBow7ppOyAjODZENQor6JuWID4gbcOhbmc7ICM4NkQ2Civom5cgPiBmw7k7ICM4NkQ3Civom5ggPiB5w6FuZzsgIzg2RDgKK+ibmSA+IHfEgTsgIzg2RDkKK+ibmiA+IGxpw6g7ICM4NkRBCivom5sgPiB6aMWrOyAjODZEQgor6JucID4gecSrOyAjODZEQwor6JudID4geGnDoW47ICM4NkRECivom54gPiBrw7lvOyAjODZERQor6JufID4gamnEgW87ICM4NkRGCivom6AgPiBsw6w7ICM4NkUwCivom6EgPiB5w6w7ICM4NkUxCivom6IgPiBww61uZzsgIzg2RTIKK+iboyA+IGrEqzsgIzg2RTMKK+ibpCA+IGjDoTsgIzg2RTQKK+ibpSA+IHNow6k7ICM4NkU1Civom6YgPiB5w607ICM4NkU2Civom6cgPiB3xINuZzsgIzg2RTcKK+ibqCA+IG3DsjsgIzg2RTgKK+ibqSA+IHHDrW9uZzsgIzg2RTkKK+ibqiA+IHFpw6g7ICM4NkVBCivom6sgPiBnxa1pOyAjODZFQgor6JusID4gZ8WPbmc7ICM4NkVDCivom60gPiB6aMOsOyAjODZFRAor6JuuID4gbcOhbjsgIzg2RUUKK+ibsCA+IHpow607ICM4NkYwCivom7EgPiBqacOhOyAjODZGMQor6JuyID4gcsOhbzsgIzg2RjIKK+ibsyA+IHPEqzsgIzg2RjMKK+ibtCA+IHHDrTsgIzg2RjQKK+ibtSA+IHjEq25nOyAjODZGNQor6Ju2ID4gbGnDqDsgIzg2RjYKK+ibtyA+IHHDrXU7ICM4NkY3Civom7ggPiBzaMSBbzsgIzg2RjgKK+ibuSA+IHnFj25nOyAjODZGOQor6Ju6ID4gamnDoTsgIzg2RkEKK+ibuyA+IHNow7lpOyAjODZGQgor6Ju8ID4gY2jEkzsgIzg2RkMKK+ibvSA+IGLDoGk7ICM4NkZECivom74gPiDDqTsgIzg2RkUKK+ibvyA+IGjDoG47ICM4NkZGCivonIAgPiBzaMWtOyAjODcwMAor6JyBID4geHXDoW47ICM4NzAxCivonIIgPiBmxJNuZzsgIzg3MDIKK+icgyA+IHNow6huOyAjODcwMwor6JyEID4gemjDqG47ICM4NzA0CivonIUgPiBmxa07ICM4NzA1CivonIYgPiB4acOgbjsgIzg3MDYKK+ichyA+IHpow6k7ICM4NzA3CivonIggPiB3w7o7ICM4NzA4CivonIkgPiBmw7o7ICM4NzA5CivonIogPiBsw607ICM4NzBBCivonIsgPiBsw6FuZzsgIzg3MEIKK+icjCA+IGLDrDsgIzg3MEMKK+icjSA+IGNow7o7ICM4NzBECivonI4gPiB5dcSBbjsgIzg3MEUKK+icjyA+IHnFj3U7ICM4NzBGCivonJAgPiBqacOpOyAjODcxMAor6JyRID4gZMOgbjsgIzg3MTEKK+ickiA+IHnDoW47ICM4NzEyCivonJMgPiB0w61uZzsgIzg3MTMKK+iclCA+IGRpw6BuOyAjODcxNAor6JyVID4gc2jDuWk7ICM4NzE1CivonJYgPiBow7ppOyAjODcxNgor6JyXID4gZ3XEgTsgIzg3MTcKK+icmCA+IHpoxKs7ICM4NzE4CivonJkgPiBzxY1uZzsgIzg3MTkKK+icmiA+IGbEk2k7ICM4NzFBCivonJsgPiBqxas7ICM4NzFCCivonJwgPiBtw6w7ICM4NzFDCivonJ0gPiBxw607ICM4NzFECivonJ4gPiBxw607ICM4NzFFCivonJ8gPiB5w7k7ICM4NzFGCivonKAgPiBqxa1uOyAjODcyMAor6JyhID4gemjDoDsgIzg3MjEKK+icoiA+IG3ElW5nOyAjODcyMgor6JyjID4gcWnEgW5nOyAjODcyMwor6JykID4gc8SrOyAjODcyNAor6JylID4geMSrOyAjODcyNQor6JymID4gbMO6bjsgIzg3MjYKK+icpyA+IGzDrDsgIzg3MjcKK+icqCA+IGRpw6k7ICM4NzI4CivonKkgPiB0acOhbzsgIzg3MjkKK+icqiA+IHTEgW87ICM4NzJBCivonKsgPiBrxatuOyAjODcyQgor6JysID4gZ8SBbjsgIzg3MkMKK+icrSA+IGjDoG47ICM4NzJECivonK4gPiB5w7k7ICM4NzJFCivonK8gPiBiw6BuZzsgIzg3MkYKK+icsCA+IGbDqWk7ICM4NzMwCivonLEgPiBww607ICM4NzMxCivonLIgPiB3xJVpOyAjODczMgor6JyzID4gZMWrbjsgIzg3MzMKK+ictCA+IHnDrDsgIzg3MzQKK+ictSA+IHl1xIFuOyAjODczNQor6Jy2ID4gc8O5OyAjODczNgor6Jy3ID4gcXXDoW47ICM4NzM3CivonLggPiBxacSDbjsgIzg3MzgKK+icuSA+IHLDuWk7ICM4NzM5CivonLogPiBuw607ICM4NzNBCivonLsgPiBxxKtuZzsgIzg3M0IKK+icvCA+IHfDqGk7ICM4NzNDCivonL0gPiBsacSDbmc7ICM4NzNECivonL4gPiBnxa1vOyAjODczRQor6Jy/ID4gd8SBbjsgIzg3M0YKK+idgCA+IGTFjW5nOyAjODc0MAor6J2BID4gw6g7ICM4NzQxCivonYIgPiBixINuOyAjODc0Mgor6J2DID4gZMOsOyAjODc0Mwor6J2EID4gd8SDbmc7ICM4NzQ0CivonYUgPiBjw6FuOyAjODc0NQor6J2GID4gecSDbmc7ICM4NzQ2CivonYcgPiB5w61uZzsgIzg3NDcKK+idiCA+IGfFq287ICM4NzQ4CivonYkgPiBjaMOhbjsgIzg3NDkKK+idiyA+IGzDoDsgIzg3NEIKK+idjCA+IGvEkzsgIzg3NEMKK+idjSA+IGrDrTsgIzg3NEQKK+idjiA+IGjDqTsgIzg3NEUKK+idjyA+IHTDrW5nOyAjODc0Rgor6J2QID4gbcOgaTsgIzg3NTAKK+idkSA+IHjFqzsgIzg3NTEKK+idkiA+IG1pw6FuOyAjODc1Mgor6J2TID4gecO6OyAjODc1Mwor6J2UID4gamnEkzsgIzg3NTQKK+idlSA+IHNow607ICM4NzU1CivonZYgPiB4dcSBbjsgIzg3NTYKK+idlyA+IGh1w6FuZzsgIzg3NTcKK+idmCA+IHnEg247ICM4NzU4CivonZkgPiBiacSBbjsgIzg3NTkKK+idmiA+IHLDs3U7ICM4NzVBCivonZsgPiB3xJNpOyAjODc1Qgor6J2cID4gZsO5OyAjODc1Qwor6J2dID4geXXDoW47ICM4NzVECivonZ4gPiBtw6hpOyAjODc1RQor6J2fID4gd8OoaTsgIzg3NUYKK+idoCA+IGbDujsgIzg3NjAKK+idoSA+IHJ1xINuOyAjODc2MQor6J2iID4geGnDqTsgIzg3NjIKK+idoyA+IHnDs3U7ICM4NzYzCivonaQgPiBxw611OyAjODc2NAor6J2lID4gbcOhbzsgIzg3NjUKK+idpiA+IHhpxIE7ICM4NzY2CivonacgPiB5xKtuZzsgIzg3NjcKK+idqCA+IHNoxKs7ICM4NzY4CivonakgPiBjaMOzbmc7ICM4NzY5CivonaogPiB0xIFuZzsgIzg3NkEKK+idqyA+IHpoxas7ICM4NzZCCivonawgPiB6xY1uZzsgIzg3NkMKK+idrSA+IHTDrTsgIzg3NkQKK+idriA+IGbDuTsgIzg3NkUKK+idryA+IHl1w6FuOyAjODc2Rgor6J2wID4gaMWtaTsgIzg3NzAKK+idsSA+IG3DqW5nOyAjODc3MQor6J2yID4gbMOgOyAjODc3Mgor6J2zID4gZMO6OyAjODc3Mwor6J20ID4gaMO6OyAjODc3NAor6J21ID4gccSrdTsgIzg3NzUKK+idtiA+IGRpw6k7ICM4Nzc2CivonbcgPiBsw6w7ICM4Nzc3CivonbggPiBndcSBOyAjODc3OAor6J25ID4gecWrbjsgIzg3NzkKK+iduiA+IGrFrTsgIzg3N0EKK+iduyA+IG7Eg247ICM4NzdCCivonbwgPiBsw7N1OyAjODc3Qwor6J29ID4gccWtbjsgIzg3N0QKK+idviA+IHLDs25nOyAjODc3RQor6J2/ID4gecOtbmc7ICM4NzdGCivonoAgPiBqacSBbmc7ICM4NzgwCivonoIgPiBsw6FuZzsgIzg3ODIKK+iegyA+IHDDoW5nOyAjODc4Mwor6J6EID4gc8SrOyAjODc4NAor6J6FID4geMSrOyAjODc4NQor6J6GID4gY8OsOyAjODc4Ngor6J6HID4geMSrOyAjODc4Nwor6J6IID4geXXDoW47ICM4Nzg4CivonokgPiB3xJNuZzsgIzg3ODkKK+ieiiA+IGxpw6FuOyAjODc4QQor6J6LID4gc8WNdTsgIzg3OEIKK+iejCA+IGLEgW47ICM4NzhDCivono0gPiByw7NuZzsgIzg3OEQKK+iejiA+IHLDs25nOyAjODc4RQor6J6PID4gasOtOyAjODc4Rgor6J6QID4gd8WrOyAjODc5MAor6J6RID4gccOsdTsgIzg3OTEKK+iekiA+IGjDoG47ICM4NzkyCivonpMgPiBxw61uOyAjODc5Mwor6J6UID4gecOtOyAjODc5NAor6J6VID4gYsSrOyAjODc5NQor6J6WID4gaHXDoTsgIzg3OTYKK+ielyA+IHTDoW5nOyAjODc5Nwor6J6YID4gecStOyAjODc5OAor6J6ZID4gZMO5OyAjODc5OQor6J6aID4gbsOgaTsgIzg3OUEKK+iemyA+IGjDqTsgIzg3OUIKK+ienCA+IGjDujsgIzg3OUMKK+ienSA+IGjDuWk7ICM4NzlECivonp4gPiBtxIM7ICM4NzlFCivonp8gPiBtw61uZzsgIzg3OUYKK+ieoCA+IHnDrDsgIzg3QTAKK+ieoSA+IHfDqW47ICM4N0ExCivonqIgPiB5w61uZzsgIzg3QTIKK+ieoyA+IHTDqW5nOyAjODdBMwor6J6kID4gecWtOyAjODdBNAor6J6lID4gY8SBbmc7ICM4N0E1CivonqggPiBtxINuOyAjODdBOAor6J6qID4gc2jEgW5nOyAjODdBQQor6J6rID4gemjEkzsgIzg3QUIKK+ierCA+IGPDoW87ICM4N0FDCivonq0gPiBjaMSrOyAjODdBRAor6J6uID4gZMOsOyAjODdBRQor6J6vID4gw6FvOyAjODdBRgor6J6wID4gbMO5OyAjODdCMAor6J6xID4gd8OoaTsgIzg3QjEKK+iesiA+IHpow6w7ICM4N0IyCivonrMgPiB0w6FuZzsgIzg3QjMKK+ietCA+IGNow6luOyAjODdCNAor6J61ID4gcGnEgW87ICM4N0I1CivonrYgPiBxw7o7ICM4N0I2CivonrcgPiBww607ICM4N0I3CivonrggPiB5w7o7ICM4N0I4CivonrkgPiBqacOgbjsgIzg3QjkKK+ieuiA+IGzDum87ICM4N0JBCivonrsgPiBsw7N1OyAjODdCQgor6J68ID4gccStbjsgIzg3QkMKK+ievSA+IHpoxY1uZzsgIzg3QkQKK+ieviA+IHnErW47ICM4N0JFCivonr8gPiBqacSBbmc7ICM4N0JGCivon4AgPiBzaHXDoGk7ICM4N0MwCivon4EgPiB3w6luOyAjODdDMQor6J+CID4gamnEgW87ICM4N0MyCivon4MgPiB3w6BuOyAjODdDMwor6J+EID4gemjDrTsgIzg3QzQKK+ifhSA+IHpow6g7ICM4N0M1Civon4YgPiBtw6E7ICM4N0M2Civon4cgPiBtw6E7ICM4N0M3Civon4ggPiBnxatvOyAjODdDOAor6J+JID4gbMOtdTsgIzg3QzkKK+ifiiA+IG3DoW87ICM4N0NBCivon4sgPiB4xKs7ICM4N0NCCivon4wgPiBjxY1uZzsgIzg3Q0MKK+ifjSA+IGzDrTsgIzg3Q0QKK+ifjiA+IG3Eg247ICM4N0NFCivon48gPiB4acSBbzsgIzg3Q0YKK+ifkSA+IHpoxIFuZzsgIzg3RDEKK+ifkiA+IG3Eg25nOyAjODdEMgor6J+TID4geGnDoG5nOyAjODdEMwor6J+UID4gbcOyOyAjODdENAor6J+VID4gesWraTsgIzg3RDUKK+ifliA+IHPEqzsgIzg3RDYKK+iflyA+IHHEq3U7ICM4N0Q3Civon5ggPiB0w6g7ICM4N0Q4Civon5kgPiB6aMOtOyAjODdEOQor6J+aID4gcMOpbmc7ICM4N0RBCivon5sgPiBww6luZzsgIzg3REIKK+ifnCA+IGppxINvOyAjODdEQwor6J+dID4gccO6OyAjODdERAor6J+eID4gYmnDqTsgIzg3REUKK+ifnyA+IGxpw6FvOyAjODdERgor6J+gID4gcMOhbjsgIzg3RTAKK+ifoSA+IGfFrWk7ICM4N0UxCivon6IgPiB4xK07ICM4N0UyCivon6MgPiBqxK07ICM4N0UzCivon6QgPiB6aHXEgW47ICM4N0U0Civon6UgPiBodcOhbmc7ICM4N0U1Civon6YgPiBmw6hpOyAjODdFNgor6J+nID4gbMOhbzsgIzg3RTcKK+ifqCA+IGp1w6k7ICM4N0U4Civon6kgPiBqdcOpOyAjODdFOQor6J+qID4gaMO5aTsgIzg3RUEKK+ifqyA+IHnDrW47ICM4N0VCCivon6wgPiBjaMOhbjsgIzg3RUMKK+ifrSA+IGppxIFvOyAjODdFRAor6J+uID4gc2jDoG47ICM4N0VFCivon68gPiByw6FvOyAjODdFRgor6J+wID4geGnEgW87ICM4N0YwCivon7EgPiBtw7N1OyAjODdGMQor6J+yID4gY2jDs25nOyAjODdGMgor6J+zID4geMO6bjsgIzg3RjMKK+iftCA+IHPEqzsgIzg3RjQKK+iftiA+IGNoxJNuZzsgIzg3RjYKK+iftyA+IGTEgW5nOyAjODdGNwor6J+4ID4gbMStOyAjODdGOAor6J+5ID4geGnDqDsgIzg3RjkKK+ifuiA+IHNow6BuOyAjODdGQQor6J+7ID4gecStOyAjODdGQgor6J+8ID4gasStbmc7ICM4N0ZDCivon70gPiBkw6E7ICM4N0ZECivon74gPiBjaMOhbjsgIzg3RkUKK+ifvyA+IHHDrDsgIzg3RkYKK+iggCA+IGPEqzsgIzg4MDAKK+iggSA+IHhpw6BuZzsgIzg4MDEKK+iggiA+IHNow6g7ICM4ODAyCivooIMgPiBsxa1vOyAjODgwMwor6KCEID4gccOtbjsgIzg4MDQKK+ighSA+IHnDrW5nOyAjODgwNQor6KCGID4gY2jDoGk7ICM4ODA2CivooIcgPiBsw6w7ICM4ODA3CivooIggPiB6w6k7ICM4ODA4CivooIkgPiB4dcSBbjsgIzg4MDkKK+igiiA+IGxpw6FuOyAjODgwQQor6KCLID4gemjDujsgIzg4MEIKK+igjCA+IHrDqTsgIzg4MEMKK+igjSA+IHhpxJM7ICM4ODBECivooI4gPiBtxINuZzsgIzg4MEUKK+igjyA+IHhpw6g7ICM4ODBGCivooJAgPiBxw607ICM4ODEwCivooJEgPiByw7NuZzsgIzg4MTEKK+igkiA+IGppxINuOyAjODgxMgor6KCTID4gbcSVbmc7ICM4ODEzCivooJQgPiBow6FvOyAjODgxNAor6KCVID4gcnXEg247ICM4ODE1CivooJYgPiBow7lvOyAjODgxNgor6KCXID4gemjDum87ICM4ODE3CivooJggPiBqacOpOyAjODgxOAor6KCZID4gYsSrbjsgIzg4MTkKK+igmiA+IGjDqDsgIzg4MUEKK+igmyA+IG1pw6g7ICM4ODFCCivooJwgPiBmw6FuOyAjODgxQwor6KCdID4gbMOpaTsgIzg4MUQKK+igniA+IGppw6k7ICM4ODFFCivooJ8gPiBsw6A7ICM4ODFGCivooKAgPiBtw6w7ICM4ODIwCivooKEgPiBsxK07ICM4ODIxCivooKIgPiBjaMWtbjsgIzg4MjIKK+igoyA+IGzDrDsgIzg4MjMKK+igpCA+IHHEq3U7ICM4ODI0CivooKUgPiBuacOoOyAjODgyNQor6KCmID4gbMO6OyAjODgyNgor6KCnID4gZMO5OyAjODgyNwor6KCoID4geGnEgW87ICM4ODI4CivooKkgPiB6aMWrOyAjODgyOQor6KCqID4gbMOzbmc7ICM4ODJBCivooKsgPiBsw6w7ICM4ODJCCivooKwgPiBsw7NuZzsgIzg4MkMKK+igrSA+IGbEk25nOyAjODgyRAor6KCuID4gecSTOyAjODgyRQor6KCvID4gYsOobmc7ICM4ODJGCivooLAgPiBzaMOgbmc7ICM4ODMwCivooLEgPiBnxa07ICM4ODMxCivooLIgPiBqdcSBbjsgIzg4MzIKK+igsyA+IHnEq25nOyAjODgzMwor6KC1ID4geMSrOyAjODgzNQor6KC2ID4gY8OhbjsgIzg4MzYKK+igtyA+IHHDujsgIzg4MzcKK+iguCA+IHF1w6FuOyAjODgzOAor6KC5ID4gZMO5OyAjODgzOQor6KC6ID4gY8OhbjsgIzg4M0EKK+iguyA+IG3DoW47ICM4ODNCCivooLwgPiBqdcOpOyAjODgzQwor6KC9ID4gamnDqTsgIzg4M0QKK+igviA+IHpow7o7ICM4ODNFCivooL8gPiB6aMOhOyAjODgzRgor6KGAID4geGnElTsgIzg4NDAKK+ihgSA+IGh1xIFuZzsgIzg4NDEKK+ihgiA+IG7DrHU7ICM4ODQyCivooYMgPiBwxJNpOyAjODg0Mwor6KGEID4gbsecOyAjODg0NAor6KGFID4geMOsbjsgIzg4NDUKK+ihhiA+IHpow7JuZzsgIzg4NDYKK+ihhyA+IG3DsjsgIzg4NDcKK+ihiCA+IMOocjsgIzg4NDgKK+ihiSA+IGvDqDsgIzg4NDkKK+ihiiA+IG1pw6g7ICM4ODRBCivooYsgPiB4w6w7ICM4ODRCCivooYwgPiB4w61uZzsgIzg4NEMKK+ihjSA+IHnEg247ICM4ODRECivooY4gPiBrw6BuOyAjODg0RQor6KGPID4geXXDoG47ICM4ODRGCivooZEgPiBsw61uZzsgIzg4NTEKK+ihkiA+IHh1w6BuOyAjODg1Mgor6KGTID4gc2jDuTsgIzg4NTMKK+ihlCA+IHhpw6FuOyAjODg1NAor6KGVID4gdMOybmc7ICM4ODU1CivooZYgPiBsw7JuZzsgIzg4NTYKK+ihlyA+IGppxJM7ICM4ODU3CivooZggPiB4acOhbjsgIzg4NTgKK+ihmSA+IHnDoTsgIzg4NTkKK+ihmiA+IGjDujsgIzg4NUEKK+ihmyA+IHfDqGk7ICM4ODVCCivooZwgPiBkw6BvOyAjODg1Qwor6KGdID4gY2jFjW5nOyAjODg1RAor6KGeID4gd8OoaTsgIzg4NUUKK+ihnyA+IGTDoG87ICM4ODVGCivooaAgPiB6aMWrbjsgIzg4NjAKK+ihoSA+IGjDqW5nOyAjODg2MQor6KGiID4gccO6OyAjODg2Mgor6KGjID4gecSrOyAjODg2Mwor6KGkID4gecSrJyAnesOsJyAncMOhbmc7ICM4ODY0CivooaUgPiBixa07ICM4ODY1CivooaYgPiBnxINuOyAjODg2Ngor6KGnID4gecO6OyAjODg2Nwor6KGoID4gYmnEg287ICM4ODY4CivooakgPiBjaMOgOyAjODg2OQor6KGqID4gecStOyAjODg2QQor6KGrID4gc2jEgW47ICM4ODZCCivooawgPiBjaMOobjsgIzg4NkMKK+ihrSA+IGbFqzsgIzg4NkQKK+ihriA+IGfFrW47ICM4ODZFCivooa8gPiBmxJNuOyAjODg2Rgor6KGwID4gc2h1xIFpOyAjODg3MAor6KGxID4gamnDqTsgIzg4NzEKK+ihsiA+IG7DoDsgIzg4NzIKK+ihsyA+IHpoxY1uZzsgIzg4NzMKK+ihtCA+IGTEg247ICM4ODc0CivoobUgPiByw6w7ICM4ODc1CivoobYgPiB6aMOybmc7ICM4ODc2CivoobcgPiB6aMWNbmc7ICM4ODc3CivoobggPiB4acOoOyAjODg3OAor6KG5ID4gccOtOyAjODg3OQor6KG6ID4geGnDqTsgIzg4N0EKK+ihuyA+IHLDoW47ICM4ODdCCivoobwgPiB6aMSrOyAjODg3Qwor6KG9ID4gcsOobjsgIzg4N0QKK+ihviA+IHHEq247ICM4ODdFCivoob8gPiBqxKtuOyAjODg3Rgor6KKAID4gasWrbjsgIzg4ODAKK+iigSA+IHl1w6FuOyAjODg4MQor6KKCID4gbcOoaTsgIzg4ODIKK+iigyA+IGNow6BpOyAjODg4Mwor6KKEID4gxINvOyAjODg4NAor6KKFID4gbmnEg287ICM4ODg1CivoooYgPiBoxatpOyAjODg4Ngor6KKHID4gcsOhbjsgIzg4ODcKK+iiiCA+IGppxIE7ICM4ODg4CivoookgPiB0w7pvOyAjODg4OQor6KKKID4gbMStbmc7ICM4ODhBCivooosgPiBkw6BpOyAjODg4Qgor6KKMID4gYsOgbzsgIzg4OEMKK+iijSA+IHDDoW87ICM4ODhECivooo4gPiB5w6BvOyAjODg4RQor6KKPID4gesO5bzsgIzg4OEYKK+iikCA+IGLDrDsgIzg4OTAKK+iikSA+IHNow6BvOyAjODg5MQor6KKSID4gdMSDbjsgIzg4OTIKK+iikyA+IGrFrTsgIzg4OTMKK+iilCA+IGjDqDsgIzg4OTQKK+iilSA+IHNow7k7ICM4ODk1CivoopYgPiB4w6x1OyAjODg5Ngor6KKXID4gemjElW47ICM4ODk3CivoopggPiB5w607ICM4ODk4CivoopkgPiBww6A7ICM4ODk5CivoopogPiBixY07ICM4ODlBCivoopsgPiBkxKs7ICM4ODlCCivoopwgPiB3w6A7ICM4ODlDCivoop0gPiBmw7k7ICM4ODlECivoop4gPiBnxa1uOyAjODg5RQor6KKfID4gemjDrDsgIzg4OUYKK+iioCA+IHpow6w7ICM4OEEwCivooqEgPiByw6FuOyAjODhBMQor6KKiID4gcMOgbjsgIzg4QTIKK+iioyA+IHnDrDsgIzg4QTMKK+iipCA+IG3DoG87ICM4OEE0CivooqUgPiB0dW87ICM4OEE1CivooqYgPiBuw6A7ICM4OEE2CivooqcgPiBrxY11OyAjODhBNwor6KKoID4geGnDoG47ICM4OEE4CivooqkgPiBjaMSBbjsgIzg4QTkKK+iiqiA+IHHFqzsgIzg4QUEKK+iiqyA+IGLDqGk7ICM4OEFCCivooqwgPiBnxa1uOyAjODhBQwor6KKtID4geMOtOyAjODhBRAor6KKvID4gYsOzOyAjODhBRgor6KKxID4gZsO6OyAjODhCMQor6KKyID4gecOtOyAjODhCMgor6KKzID4gY2jErTsgIzg4QjMKK+iitCA+IGvDuTsgIzg4QjQKK+iitSA+IHLDqG47ICM4OEI1CivoorYgPiBqacOgbmc7ICM4OEI2CivoorcgPiBqacOhOyAjODhCNwor6KK4ID4gY8O6bjsgIzg4QjgKK+iiuSA+IG3DsjsgIzg4QjkKK+iiuiA+IGppw6k7ICM4OEJBCivoorsgPiDDqXI7ICM4OEJCCivoorwgPiBsw7lvOyAjODhCQwor6KK9ID4gcsO6OyAjODhCRAor6KK+ID4gemjFqzsgIzg4QkUKK+iivyA+IGfFq2k7ICM4OEJGCivoo4AgPiB5xKtuOyAjODhDMAor6KOBID4gY8OhaTsgIzg4QzEKK+ijgiA+IGxpw6g7ICM4OEMyCivoo4UgPiB6aHXEgW5nOyAjODhDNQor6KOGID4gZMSBbmc7ICM4OEM2Civoo4ggPiBrxatuOyAjODhDOAor6KOJID4ga8OobjsgIzg4QzkKK+ijiiA+IG5pxINvOyAjODhDQQor6KOLID4gc2jDuTsgIzg4Q0IKK+ijjCA+IGppw6E7ICM4OENDCivoo40gPiBrxa1uOyAjODhDRAor6KOOID4gY2jDqW5nOyAjODhDRQor6KOPID4gbMStOyAjODhDRgor6KOQID4ganXEgW47ICM4OEQwCivoo5EgPiBzaMSTbjsgIzg4RDEKK+ijkiA+IHDDs3U7ICM4OEQyCivoo5MgPiBnw6k7ICM4OEQzCivoo5QgPiB5w6w7ICM4OEQ0Civoo5UgPiB5w7k7ICM4OEQ1Civoo5YgPiB6aMSVbjsgIzg4RDYKK+ijlyA+IGzDrXU7ICM4OEQ3Civoo5ggPiBxw611OyAjODhEOAor6KOZID4gccO6bjsgIzg4RDkKK+ijmiA+IGrDrDsgIzg4REEKK+ijmyA+IHnDrDsgIzg4REIKK+ijnCA+IGLFrTsgIzg4REMKK+ijnSA+IHpodcSBbmc7ICM4OERECivoo54gPiBzaMO5aTsgIzg4REUKK+ijnyA+IHNoxIE7ICM4OERGCivoo6AgPiBxw7puOyAjODhFMAor6KOhID4gbMStOyAjODhFMQor6KOiID4gbGnDoW47ICM4OEUyCivoo6MgPiBsacOgbjsgIzg4RTMKK+ijpCA+IGvDuTsgIzg4RTQKK+ijpSA+IGppxINuOyAjODhFNQor6KOmID4gZsOzdTsgIzg4RTYKK+ijpyA+IGNoxIFuOyAjODhFNwor6KOoID4gYsOsOyAjODhFOAor6KOpID4gZ8WrbjsgIzg4RTkKK+ijqiA+IHTDoW87ICM4OEVBCivoo6sgPiB5dcOgbjsgIzg4RUIKK+ijrCA+IGzDrW5nOyAjODhFQwor6KOtID4gY2jErTsgIzg4RUQKK+ijriA+IGNoxIFuZzsgIzg4RUUKK+ijryA+IGNow7N1OyAjODhFRgor6KOwID4gZMO6bzsgIzg4RjAKK+ijsSA+IGJpxINvOyAjODhGMQor6KOyID4gbGnEg25nOyAjODhGMgor6KOzID4gY2jDoW5nOyAjODhGMwor6KO0ID4gcMOpaTsgIzg4RjQKK+ijtSA+IHDDqWk7ICM4OEY1Civoo7YgPiBmxJNpOyAjODhGNgor6KO3ID4geXXEgW47ICM4OEY3Civoo7ggPiBsxa1vOyAjODhGOAor6KO5ID4gZ8WtbzsgIzg4RjkKK+ijuiA+IHnEg247ICM4OEZBCivoo7sgPiBkxa07ICM4OEZCCivoo7wgPiB4w607ICM4OEZDCivoo70gPiB6aMOsOyAjODhGRAor6KO+ID4gasWrOyAjODhGRQor6KO/ID4gccStOyAjODhGRgor6KSAID4gasOsOyAjODkwMAor6KSBID4gemjDrTsgIzg5MDEKK+ikgiA+IGd1w6A7ICM4OTAyCivopIMgPiBrw6huOyAjODkwMwor6KSFID4gdMOsOyAjODkwNQor6KSGID4gdMOtOyAjODkwNgor6KSHID4gZsO5OyAjODkwNwor6KSIID4gY2jDs25nOyAjODkwOAor6KSJID4geGnEkzsgIzg5MDkKK+ikiiA+IGJpxINuOyAjODkwQQor6KSLID4gZGnDqTsgIzg5MEIKK+ikjCA+IGvFq247ICM4OTBDCivopI0gPiBkdcSBbjsgIzg5MEQKK+ikjiA+IHjDrHU7ICM4OTBFCivopI8gPiB4w6x1OyAjODkwRgor6KSQID4gaMOpOyAjODkxMAor6KSRID4geXXDoG47ICM4OTExCivopJIgPiBixIFvOyAjODkxMgor6KSTID4gYsSDbzsgIzg5MTMKK+iklCA+IGbDuTsgIzg5MTQKK+iklSA+IHnDujsgIzg5MTUKK+ikliA+IHR1w6BuOyAjODkxNgor6KSXID4gecSDbjsgIzg5MTcKK+ikmCA+IGjFq2k7ICM4OTE4CivopJkgPiBiw6hpOyAjODkxOQor6KSaID4gY2jFrTsgIzg5MUEKK+ikmyA+IGzHmjsgIzg5MUIKK+ikniA+IHnFrW47ICM4OTFFCivopJ8gPiBkw6E7ICM4OTFGCivopKAgPiBnxY11OyAjODkyMAor6KShID4gZMSBOyAjODkyMQor6KSiID4gaHXDoWk7ICM4OTIyCivopKMgPiByw7NuZzsgIzg5MjMKK+ikpCA+IHl1w6BuOyAjODkyNAor6KSlID4gcsO5OyAjODkyNQor6KSmID4gbsOgaTsgIzg5MjYKK+ikpyA+IGrErW9uZzsgIzg5MjcKK+ikqCA+IHPFrW87ICM4OTI4CivopKkgPiBixIFuOyAjODkyOQor6KSqID4gdMO5bjsgIzg5MkEKK+ikqyA+IGNoxK07ICM4OTJCCivopKwgPiBzxINuZzsgIzg5MkMKK+ikrSA+IG5pxINvOyAjODkyRAor6KSuID4gecSrbmc7ICM4OTJFCivopK8gPiBqacOoOyAjODkyRgor6KSwID4gcWnEgW47ICM4OTMwCivopLEgPiBodcOhaTsgIzg5MzEKK+iksiA+IGvDuTsgIzg5MzIKK+iksyA+IGxpw6FuOyAjODkzMwor6KS0ID4gYsSDbzsgIzg5MzQKK+iktSA+IGzDrTsgIzg5MzUKK+iktiA+IHpow6k7ICM4OTM2CivopLcgPiBzaMSrOyAjODkzNwor6KS4ID4gbMeaOyAjODkzOAor6KS5ID4gecOsOyAjODkzOQor6KS6ID4gZGnDqTsgIzg5M0EKK+ikuyA+IHhpw6g7ICM4OTNCCivopLwgPiB4acSBbjsgIzg5M0MKK+ikvSA+IHfDqGk7ICM4OTNECivopL4gPiBiacSDbzsgIzg5M0UKK+ikvyA+IGPDoW87ICM4OTNGCivopYAgPiBqxKs7ICM4OTQwCivopYEgPiBqacSDbmc7ICM4OTQxCivopYIgPiBzxJNuOyAjODk0Mgor6KWDID4gYsSBbzsgIzg5NDMKK+ilhCA+IHhpxIFuZzsgIzg5NDQKK+ilhiA+IHDDujsgIzg5NDYKK+ilhyA+IGppxINuOyAjODk0Nwor6KWIID4gemh1w6BuOyAjODk0OAor6KWJID4gamnDoG47ICM4OTQ5CivopYogPiB6w7lpOyAjODk0QQor6KWLID4gasOtOyAjODk0Qgor6KWMID4gZMSBbjsgIzg5NEMKK+iljSA+IHrDoTsgIzg5NEQKK+iljiA+IGbDoW47ICM4OTRFCivopY8gPiBiw7M7ICM4OTRGCivopZAgPiB4acOgbmc7ICM4OTUwCivopZEgPiB4w61uOyAjODk1MQor6KWSID4gYmnDqTsgIzg5NTIKK+ilkyA+IHLDoW87ICM4OTUzCivopZQgPiBtxINuOyAjODk1NAor6KWVID4gbMOhbjsgIzg5NTUKK+illiA+IMSDbzsgIzg5NTYKK+illyA+IGTDum87ICM4OTU3CivopZggPiBnw7lpOyAjODk1OAor6KWZID4gY8OgbzsgIzg5NTkKK+ilmiA+IHPDuWk7ICM4OTVBCivopZsgPiBuw7NuZzsgIzg5NUIKK+ilnCA+IGNoxIFuOyAjODk1Qwor6KWdID4gbGnDoG47ICM4OTVECivopZ4gPiBiw6w7ICM4OTVFCivopZ8gPiBqxKtuOyAjODk1Rgor6KWgID4gZMSBbmc7ICM4OTYwCivopaEgPiBzaMO6OyAjODk2MQor6KWiID4gdMSDbjsgIzg5NjIKK+iloyA+IGLDrDsgIzg5NjMKK+ilpCA+IGzDoW47ICM4OTY0CivopaUgPiBww7o7ICM4OTY1CivopaYgPiByw7o7ICM4OTY2CivopacgPiB6aMStOyAjODk2Nwor6KWpID4gc2jFrTsgIzg5NjkKK+ilqiA+IHfDoDsgIzg5NkEKK+ilqyA+IHNow6w7ICM4OTZCCivopawgPiBixINpOyAjODk2Qwor6KWtID4geGnDqTsgIzg5NkQKK+ilriA+IGLDszsgIzg5NkUKK+ilryA+IGNow6huOyAjODk2Rgor6KWwID4gbMOgaTsgIzg5NzAKK+ilsSA+IGzDs25nOyAjODk3MQor6KWyID4geMOtOyAjODk3Mgor6KWzID4geGnEgW47ICM4OTczCivopbQgPiBsw6FuOyAjODk3NAor6KW1ID4gemjDqTsgIzg5NzUKK+iltiA+IGTDoGk7ICM4OTc2CivopbggPiB6w6BuOyAjODk3OAor6KW5ID4gc2jEqzsgIzg5NzkKK+iluiA+IGppxINuOyAjODk3QQor6KW7ID4gcMOgbjsgIzg5N0IKK+ilvCA+IHnDrDsgIzg5N0MKK+ilviA+IHnDoDsgIzg5N0UKK+ilvyA+IHjEqzsgIzg5N0YKK+imgCA+IHjEqzsgIzg5ODAKK+imgSA+IHnDoG87ICM4OTgxCivopoIgPiBmxJVuZzsgIzg5ODIKK+imgyA+IHTDoW47ICM4OTgzCivopoUgPiBiacOgbzsgIzg5ODUKK+imhiA+IGbDuTsgIzg5ODYKK+imhyA+IGLDoDsgIzg5ODcKK+imiCA+IGjDqTsgIzg5ODgKK+imiSA+IGrEqzsgIzg5ODkKK+imiiA+IGrEqzsgIzg5OEEKK+imiyA+IGppw6BuOyAjODk4Qgor6KaMID4gZ3XEgW47ICM4OThDCivopo0gPiBiacOgbjsgIzg5OEQKK+imjiA+IHnDoG47ICM4OThFCivopo8gPiBnxatpOyAjODk4Rgor6KaQID4ganXDqTsgIzg5OTAKK+imkSA+IHBpxINuOyAjODk5MQor6KaSID4gbcOhbzsgIzg5OTIKK+imkyA+IG3DrDsgIzg5OTMKK+imlCA+IG3DrDsgIzg5OTQKK+imlSA+IG1pw6g7ICM4OTk1CivoppYgPiBzaMOsOyAjODk5Ngor6KaXID4gc8SrOyAjODk5Nwor6KaYID4gemjEgW47ICM4OTk4CivoppkgPiBsw7pvOyAjODk5OQor6KaaID4ganXDqTsgIzg5OUEKK+immyA+IG3DrDsgIzg5OUIKK+imnCA+IHRpw6BvOyAjODk5Qwor6KadID4gbGnDoW47ICM4OTlECivopp4gPiB5w6BvOyAjODk5RQor6KafID4gemjDrDsgIzg5OUYKK+imoCA+IGrFq247ICM4OUEwCivopqEgPiB4w607ICM4OUExCivopqIgPiBzaMSDbjsgIzg5QTIKK+imoyA+IHfEk2k7ICM4OUEzCivopqQgPiB4w6w7ICM4OUE0CivopqUgPiB0acSDbjsgIzg5QTUKK+impiA+IHnDujsgIzg5QTYKK+impyA+IGzEg247ICM4OUE3CivopqggPiDDqDsgIzg5QTgKK+imqSA+IGTFrTsgIzg5QTkKK+imqiA+IHHEq247ICM4OUFBCivopqsgPiBwxINuZzsgIzg5QUIKK+imrCA+IGrDrDsgIzg5QUMKK+imrSA+IG3DrW5nOyAjODlBRAor6KauID4gecOtbmc7ICM4OUFFCivopq8gPiBnw7J1OyAjODlBRgor6KawID4gccO5OyAjODlCMAor6KaxID4gemjDoG47ICM4OUIxCivoprIgPiBqxK1uOyAjODlCMgor6KazID4gZ3XEgW47ICM4OUIzCivoprQgPiBkxJNuZzsgIzg5QjQKK+imtSA+IGppw6BuOyAjODlCNQor6Ka2ID4gbMO6bzsgIzg5QjYKK+imtyA+IHHDuTsgIzg5QjcKK+imuCA+IGppw6BuOyAjODlCOAor6Ka5ID4gd8OpaTsgIzg5QjkKK+imuiA+IGp1w6k7ICM4OUJBCivoprsgPiBxw7k7ICM4OUJCCivoprwgPiBsw7pvOyAjODlCQwor6Ka9ID4gbMSDbjsgIzg5QkQKK+imviA+IHNoxJVuOyAjODlCRQor6Ka/ID4gZMOtOyAjODlCRgor6KeAID4gZ3XEgW47ICM4OUMwCivop4EgPiBqacOgbjsgIzg5QzEKK+ingiA+IGd1xIFuOyAjODlDMgor6KeDID4gecOgbjsgIzg5QzMKK+inhCA+IGfFq2k7ICM4OUM0Civop4UgPiBtw6w7ICM4OUM1Civop4YgPiBzaMOsOyAjODlDNgor6KeHID4gemjEgW47ICM4OUM3Civop4ggPiBsxINuOyAjODlDOAor6KeJID4ganXDqTsgIzg5QzkKK+iniiA+IGrDrDsgIzg5Q0EKK+iniyA+IHjDrTsgIzg5Q0IKK+injCA+IGTDrTsgIzg5Q0MKK+injSA+IHRpxINuOyAjODlDRAor6KeOID4gecO6OyAjODlDRQor6KePID4gZ8OydTsgIzg5Q0YKK+inkCA+IGrErW47ICM4OUQwCivop5EgPiBxw7k7ICM4OUQxCivop5IgPiBqacSDbzsgIzg5RDIKK+inkyA+IGrEq3U7ICM4OUQzCivop5QgPiBqxKtuOyAjODlENAor6KeVID4gY8WrOyAjODlENQor6KeWID4ganXDqTsgIzg5RDYKK+inlyA+IHpow6w7ICM4OUQ3Civop5ggPiBjaMOgbzsgIzg5RDgKK+inmSA+IGrDrTsgIzg5RDkKK+inmiA+IGfFqzsgIzg5REEKK+inmyA+IGTDoG47ICM4OURCCivop5wgPiB6xa1pOyAjODlEQwor6KedID4gZMStOyAjODlERAor6KeeID4gc2jEgW5nOyAjODlERQor6KefID4gaHXDoDsgIzg5REYKK+inoCA+IHF1w6FuOyAjODlFMAor6KehID4gZ8OpOyAjODlFMQor6KeiID4gY2jDrDsgIzg5RTIKK+inoyA+IGppxJU7ICM4OUUzCivop6QgPiBnxa1pOyAjODlFNAor6KelID4gZ8WNbmc7ICM4OUU1Civop6YgPiBow7NuZzsgIzg5RTYKK+inpyA+IGppxJU7ICM4OUU3Civop6ggPiBow7luOyAjODlFOAor6KepID4gccOtdTsgIzg5RTkKK+inqiA+IHjEq25nOyAjODlFQQor6KerID4gc8O5OyAjODlFQgor6KesID4gbsOtOyAjODlFQwor6KetID4gasSrOyAjODlFRAor6KeuID4gbMO5OyAjODlFRQor6KevID4gemjDrDsgIzg5RUYKK+insCA+IHpoxIE7ICM4OUYwCivop7EgPiBiw6w7ICM4OUYxCivop7IgPiB4xKtuZzsgIzg5RjIKK+insyA+IGjDujsgIzg5RjMKK+intCA+IHNoxIFuZzsgIzg5RjQKK+intSA+IGfFjW5nOyAjODlGNQor6Ke2ID4gemjDrDsgIzg5RjYKK+intyA+IHh1w6k7ICM4OUY3Civop7ggPiBjaMO5OyAjODlGOAor6Ke5ID4geMSrOyAjODlGOQor6Ke6ID4gecOtOyAjODlGQQor6Ke7ID4gbMO5OyAjODlGQgor6Ke8ID4ganXDqTsgIzg5RkMKK+invSA+IHjEqzsgIzg5RkQKK+inviA+IHnDoG47ICM4OUZFCivop78gPiB4xKs7ICM4OUZGCivoqIAgPiB5w6FuOyAjOEEwMAor6KiBID4gecOhbicgJ3rDrCcgJ3DDoW5nOyAjOEEwMQor6KiCID4gZMOsbmc7ICM4QTAyCivoqIMgPiBmw7k7ICM4QTAzCivoqIQgPiBxw611OyAjOEEwNAor6KiFID4gccOtdTsgIzhBMDUKK+iohiA+IGppw6BvOyAjOEEwNgor6KiHID4gaMWNbmc7ICM4QTA3CivoqIggPiBqw6w7ICM4QTA4CivoqIkgPiBmw6BuOyAjOEEwOQor6KiKID4geMO5bjsgIzhBMEEKK+ioiyA+IGRpw6BvOyAjOEEwQgor6KiMID4gaMOzbmc7ICM4QTBDCivoqI0gPiBjaMOgOyAjOEEwRAor6KiOID4gdMSDbzsgIzhBMEUKK+iojyA+IHjFqzsgIzhBMEYKK+iokCA+IGppw6k7ICM4QTEwCivoqJEgPiB5w607ICM4QTExCivoqJIgPiByw6huOyAjOEExMgor6KiTID4geMO5bjsgIzhBMTMKK+iolCA+IHnDrW47ICM4QTE0CivoqJUgPiBzaMOgbjsgIzhBMTUKK+ioliA+IHHDrDsgIzhBMTYKK+iolyA+IHTFq287ICM4QTE3CivoqJggPiBqw6w7ICM4QTE4CivoqJkgPiB4w7luOyAjOEExOQor6KiaID4gecOtbjsgIzhBMUEKK+iomyA+IMOpOyAjOEExQgor6KicID4gZsSTbjsgIzhBMUMKK+ionSA+IHnDoDsgIzhBMUQKK+ioniA+IHnEgW87ICM4QTFFCivoqJ8gPiBzw7JuZzsgIzhBMUYKK+iooCA+IHNoxJVuOyAjOEEyMAor6KihID4gecOtbjsgIzhBMjEKK+iooiA+IHjEq247ICM4QTIyCivoqKMgPiBqdcOpOyAjOEEyMwor6KikID4geGnDoW87ICM4QTI0CivoqKUgPiBuw6g7ICM4QTI1CivoqKYgPiBjaMOpbjsgIzhBMjYKK+iopyA+IHnDs3U7ICM4QTI3CivoqKggPiB6aMStOyAjOEEyOAor6KipID4geMSrb25nOyAjOEEyOQor6KiqID4gZsSDbmc7ICM4QTJBCivoqKsgPiB4w6xuOyAjOEEyQgor6KisID4gY2jEgW87ICM4QTJDCivoqK0gPiBzaMOoOyAjOEEyRAor6KiuID4geGnEgW47ICM4QTJFCivoqK8gPiBzaMSDOyAjOEEyRgor6KiwID4gdMO6bjsgIzhBMzAKK+iosSA+IHjFrTsgIzhBMzEKK+iosiA+IHnDrDsgIzhBMzIKK+iosyA+IHnDrDsgIzhBMzMKK+iotCA+IHPDuTsgIzhBMzQKK+iotSA+IGNoxKs7ICM4QTM1CivoqLYgPiBoxJM7ICM4QTM2CivoqLcgPiBzaMSTbjsgIzhBMzcKK+iouCA+IGjDqTsgIzhBMzgKK+iouSA+IHjDuTsgIzhBMzkKK+iouiA+IHpoxJVuOyAjOEEzQQor6Ki7ID4gemjDuTsgIzhBM0IKK+iovCA+IHpow6huZzsgIzhBM0MKK+iovSA+IGfDsnU7ICM4QTNECivoqL4gPiB6xK07ICM4QTNFCivoqL8gPiB6xK07ICM4QTNGCivoqYAgPiB6aMSBbjsgIzhBNDAKK+ipgSA+IGfFrTsgIzhBNDEKK+ipgiA+IGbDuTsgIzhBNDIKK+ipgyA+IHF1xINuOyAjOEE0Mwor6KmEID4gZGnDqTsgIzhBNDQKK+iphSA+IGzDrW5nOyAjOEE0NQor6KmGID4gZMStOyAjOEE0Ngor6KmHID4gecOgbmc7ICM4QTQ3CivoqYggPiBsw6w7ICM4QTQ4CivoqYkgPiBuw6FvOyAjOEE0OQor6KmKID4gcMOgbjsgIzhBNEEKK+ipiyA+IHpow7J1OyAjOEE0Qgor6KmMID4gZ8OgbjsgIzhBNEMKK+ipjSA+IHnDrDsgIzhBNEQKK+ipjiA+IGrDuTsgIzhBNEUKK+ipjyA+IMOgbzsgIzhBNEYKK+ipkCA+IHpow6A7ICM4QTUwCivoqZEgPiB0w7pvOyAjOEE1MQor6KmSID4gecOtOyAjOEE1Mgor6KmTID4gccWtOyAjOEE1Mwor6KmUID4gemjDoG87ICM4QTU0CivoqZUgPiBww61uZzsgIzhBNTUKK+ipliA+IGLDrDsgIzhBNTYKK+iplyA+IHjDrG9uZzsgIzhBNTcKK+ipmCA+IHHDuTsgIzhBNTgKK+ipmSA+IGLDoTsgIzhBNTkKK+ipmiA+IGTDoTsgIzhBNUEKK+ipmyA+IHrFrTsgIzhBNUIKK+ipnCA+IHTEgW87ICM4QTVDCivoqZ0gPiB6aMWtOyAjOEE1RAor6KmeID4gY8OtOyAjOEE1RQor6KmfID4gemjDqTsgIzhBNUYKK+ipoCA+IHnFj25nOyAjOEE2MAor6KmhID4geMWtOyAjOEE2MQor6KmiID4geMO6bjsgIzhBNjIKK+ipoyA+IHnDrDsgIzhBNjMKK+ippCA+IGh1xINuZzsgIzhBNjQKK+ippSA+IGjDqTsgIzhBNjUKK+ippiA+IHNow6w7ICM4QTY2CivoqacgPiBjaMOhOyAjOEE2Nwor6KmoID4gamnEgW87ICM4QTY4CivoqakgPiBzaMSrOyAjOEE2OQor6KmqID4gaMSVbjsgIzhBNkEKK+ipqyA+IGNow6A7ICM4QTZCCivoqawgPiBnw7J1OyAjOEE2Qwor6KmtID4gZ8WtaTsgIzhBNkQKK+ipriA+IHF1w6FuOyAjOEE2RQor6KmvID4gaMO5aTsgIzhBNkYKK+ipsCA+IGppw6k7ICM4QTcwCivoqbEgPiBodcOgOyAjOEE3MQor6KmyID4gZ8SBaTsgIzhBNzIKK+ipsyA+IHhpw6FuZzsgIzhBNzMKK+iptCA+IHfEk2k7ICM4QTc0CivoqbUgPiBzaMSTbjsgIzhBNzUKK+iptiA+IGNow7N1OyAjOEE3Ngor6Km3ID4gdMOzbmc7ICM4QTc3CivoqbggPiBtw607ICM4QTc4CivoqbkgPiB6aMSBbjsgIzhBNzkKK+ipuiA+IG3DrG5nOyAjOEE3QQor6Km7ID4gw6g7ICM4QTdCCivoqbwgPiBoxatpOyAjOEE3Qwor6Km9ID4gecOhbjsgIzhBN0QKK+ipviA+IHjEq29uZzsgIzhBN0UKK+ipvyA+IGd1w6A7ICM4QTdGCivoqoAgPiDDqHI7ICM4QTgwCivoqoEgPiBixJVuZzsgIzhBODEKK+iqgiA+IHRpxINvOyAjOEE4Mgor6KqDID4gY2jErTsgIzhBODMKK+iqhCA+IGzElWk7ICM4QTg0CivoqoUgPiB6aMWrOyAjOEE4NQor6KqGID4ga3XEgW5nOyAjOEE4Ngor6KqHID4ga3XEgTsgIzhBODcKK+iqiCA+IHfDujsgIzhBODgKK+iqiSA+IHnDuTsgIzhBODkKK+iqiiA+IHTDqW5nOyAjOEE4QQor6KqLID4gasOsOyAjOEE4Qgor6KqMID4gemjDrDsgIzhBOEMKK+iqjSA+IHLDqG47ICM4QThECivoqo4gPiBzw7k7ICM4QThFCivoqo8gPiBsxINuZzsgIzhBOEYKK+iqkCA+IMOpOyAjOEE5MAor6KqRID4ga3XDoW5nOyAjOEE5MQor6KqSID4gw6g7ICM4QTkyCivoqpMgPiBzaMOsOyAjOEE5Mwor6KqUID4gdMStbmc7ICM4QTk0CivoqpUgPiBkw6BuOyAjOEE5NQor6KqWID4gYsOzOyAjOEE5Ngor6KqXID4gY2jDoW47ICM4QTk3CivoqpggPiB5w7J1OyAjOEE5OAor6KqZID4gaMOpbmc7ICM4QTk5CivoqpogPiBxacOgbzsgIzhBOUEKK+iqmyA+IHHEq247ICM4QTlCCivoqpwgPiBzaHXDoDsgIzhBOUMKK+iqnSA+IMSBbjsgIzhBOUQKK+iqniA+IHnFrTsgIzhBOUUKK+iqnyA+IHhpw6BvOyAjOEE5Rgor6KqgID4gY2jDqW5nOyAjOEFBMAor6KqhID4gamnDqDsgIzhBQTEKK+iqoiA+IHhpw6BuOyAjOEFBMgor6KqjID4gd8O6OyAjOEFBMwor6KqkID4gd8O5OyAjOEFBNAor6KqlID4gZ8OgbzsgIzhBQTUKK+iqpiA+IHPDsm5nOyAjOEFBNgor6KqnID4gcMWtOyAjOEFBNwor6KqoID4gaMO5aTsgIzhBQTgKK+iqqSA+IGrDrG5nOyAjOEFBOQor6KqqID4gc2jFq287ICM4QUFBCivoqqsgPiB6aMOobjsgIzhBQUIKK+iqrCA+IHNoxatvOyAjOEFBQwor6KqtID4gZMO6OyAjOEFBRAor6KqvID4gY2jDoG5nOyAjOEFBRgor6KqwID4gc2jDumk7ICM4QUIwCivoqrEgPiBqacOpOyAjOEFCMQor6KqyID4ga8OoOyAjOEFCMgor6KqzID4gccWrOyAjOEFCMwor6Kq0ID4gY8Ozbmc7ICM4QUI0CivoqrUgPiB4acOhbzsgIzhBQjUKK+iqtiA+IHPDuWk7ICM4QUI2CivoqrcgPiB3xINuZzsgIzhBQjcKK+iquCA+IHh1w6FuOyAjOEFCOAor6Kq5ID4gZsSVaTsgIzhBQjkKK+iquiA+IGNoxKs7ICM4QUJBCivoqrsgPiB0w6A7ICM4QUJCCivoqrwgPiB5w607ICM4QUJDCivoqr0gPiBuw6E7ICM4QUJECivoqr4gPiB5w61uOyAjOEFCRQor6Kq/ID4gZGnDoG87ICM4QUJGCivoq4AgPiBwxK07ICM4QUMwCivoq4EgPiBjaMO5bzsgIzhBQzEKK+irgiA+IGNoxINuOyAjOEFDMgor6KuDID4gY2jEk247ICM4QUMzCivoq4QgPiB6aMWrbjsgIzhBQzQKK+irhSA+IGrEqzsgIzhBQzUKK+irhiA+IHHEqzsgIzhBQzYKK+irhyA+IHTDoW47ICM4QUM3Civoq4ggPiB6aMO5aTsgIzhBQzgKK+iriSA+IHfElWk7ICM4QUM5Civoq4ogPiBqw7o7ICM4QUNBCivoq4sgPiBxxK1uZzsgIzhBQ0IKK+irjCA+IGppw6BuOyAjOEFDQwor6KuNID4gemjEk25nOyAjOEFDRAor6KuOID4gesOpOyAjOEFDRQor6KuPID4gesWNdTsgIzhBQ0YKK+irkCA+IHFpxIFuOyAjOEFEMAor6KuRID4gemjDum87ICM4QUQxCivoq5IgPiBsacOgbmc7ICM4QUQyCivoq5MgPiBqacOgbjsgIzhBRDMKK+irlCA+IHpow7k7ICM4QUQ0Civoq5UgPiBow6FvOyAjOEFENQor6KuWID4gbMO5bjsgIzhBRDYKK+irlyA+IHNoxJVuOyAjOEFENwor6KuYID4gYmnEg287ICM4QUQ4Civoq5kgPiBodcOgaTsgIzhBRDkKK+irmiA+IHBpw6FuOyAjOEFEQQor6KubID4gecO6OyAjOEFEQgor6KucID4gZGnDqTsgIzhBREMKK+irnSA+IHjFrTsgIzhBREQKK+irniA+IHBpw6FuOyAjOEFERQor6KufID4gc2jDrDsgIzhBREYKK+iroCA+IHh1xIFuOyAjOEFFMAor6KuhID4gc2jDrDsgIzhBRTEKK+iroiA+IGjDuW47ICM4QUUyCivoq6MgPiBodcOgOyAjOEFFMwor6KukID4gw6g7ICM4QUU0Civoq6UgPiB6aMOybmc7ICM4QUU1Civoq6YgPiBkw6w7ICM4QUU2Civoq6cgPiB4acOpOyAjOEFFNwor6KuoID4gZsO6OyAjOEFFOAor6KupID4gcMWtOyAjOEFFOQor6KuqID4gdMOtbmc7ICM4QUVBCivoq6sgPiBqacOgbjsgIzhBRUIKK+irrCA+IHHErTsgIzhBRUMKK+irrSA+IHnDuTsgIzhBRUQKK+irriA+IHrEqzsgIzhBRUUKK+irryA+IGNodcOhbjsgIzhBRUYKK+irsCA+IHjErTsgIzhBRjAKK+irsSA+IGjDuWk7ICM4QUYxCivoq7IgPiB5xKtuOyAjOEFGMgor6KuzID4gxIFuOyAjOEFGMwor6Ku0ID4geGnDoW47ICM4QUY0Civoq7UgPiBuw6FuOyAjOEFGNQor6Ku2ID4gY2jDqW47ICM4QUY2Civoq7cgPiBmxJNuZzsgIzhBRjcKK+iruCA+IHpoxas7ICM4QUY4Civoq7kgPiB5w6FuZzsgIzhBRjkKK+iruiA+IHnDoG47ICM4QUZBCivoq7sgPiBoxJNuZzsgIzhBRkIKK+irvCA+IHh1xIFuOyAjOEFGQwor6Ku9ID4gZ8OpOyAjOEFGRAor6Ku+ID4gbsO5bzsgIzhBRkUKK+irvyA+IHHDrDsgIzhBRkYKK+isgCA+IG3Ds3U7ICM4QjAwCivorIEgPiB5w6g7ICM4QjAxCivorIIgPiB3w6hpOyAjOEIwMgor6KyEID4gdMOpbmc7ICM4QjA0CivorIUgPiB6xY11OyAjOEIwNQor6KyGID4gc2jDoG47ICM4QjA2CivorIcgPiBqacSDbjsgIzhCMDcKK+isiCA+IGLDszsgIzhCMDgKK+isiSA+IGvDuTE7ICM4QjA5CivorIogPiBodcSDbmc7ICM4QjBBCivorIsgPiBow7lvOyAjOEIwQgor6KyMID4gZ8STOyAjOEIwQwor6KyNID4gecOtbmc7ICM4QjBECivorI4gPiBtw607ICM4QjBFCivorI8gPiB4acSDbzsgIzhCMEYKK+iskCA+IG3DrDsgIzhCMTAKK+iskSA+IHjDrDsgIzhCMTEKK+iskiA+IHFpxIFuZzsgIzhCMTIKK+iskyA+IGNoxJNuOyAjOEIxMwor6KyUID4gbsecZTsgIzhCMTQKK+islSA+IHTDrTsgIzhCMTUKK+isliA+IHPDuTsgIzhCMTYKK+islyA+IGLDoG5nOyAjOEIxNwor6KyYID4gY2jDrTsgIzhCMTgKK+ismSA+IHFpxIFuOyAjOEIxOQor6KyaID4gc2jDrDsgIzhCMUEKK+ismyA+IGppxINuZzsgIzhCMUIKK+isnCA+IHl1w6BuOyAjOEIxQwor6KydID4geGnDqDsgIzhCMUQKK+isniA+IHh1w6g7ICM4QjFFCivorJ8gPiB0xIFvOyAjOEIxRgor6KygID4gecOhbzsgIzhCMjAKK+isoSA+IHnDoW87ICM4QjIxCivorKMgPiB5w7o7ICM4QjIzCivorKQgPiBiacSBbzsgIzhCMjQKK+ispSA+IGPDsm5nOyAjOEIyNQor6KymID4gccOsbmc7ICM4QjI2CivorKcgPiBsw607ICM4QjI3CivorKggPiBtw7M7ICM4QjI4CivorKkgPiBtw7I7ICM4QjI5CivorKogPiBzaMSBbmc7ICM4QjJBCivorKsgPiB6aMOpOyAjOEIyQgor6KysID4gbcOsdTsgIzhCMkMKK+isrSA+IGppxINuOyAjOEIyRAor6KyuID4gesOpOyAjOEIyRQor6KyvID4gamnEkzsgIzhCMkYKK+issCA+IGxpw6FuOyAjOEIzMAor6KyxID4gbMOzdTsgIzhCMzEKK+issiA+IGPEgW47ICM4QjMyCivorLMgPiDFjXU7ICM4QjMzCivorLQgPiBndcOgbjsgIzhCMzQKK+istSA+IHjDrTsgIzhCMzUKK+istiA+IHpow7pvOyAjOEIzNgor6Ky3ID4gw6FvOyAjOEIzNwor6Ky4ID4gw6FvOyAjOEIzOAor6Ky5ID4gasStbjsgIzhCMzkKK+isuiA+IHpow6k7ICM4QjNBCivorLsgPiB5w607ICM4QjNCCivorLwgPiBow7k7ICM4QjNDCivorL0gPiBqacOgbmc7ICM4QjNECivorL4gPiBtw6FuOyAjOEIzRQor6Ky/ID4gY2jDoW87ICM4QjNGCivorYAgPiBow6BuOyAjOEI0MAor6K2BID4gaHXDoTsgIzhCNDEKK+itgiA+IGNoxINuOyAjOEI0Mgor6K2DID4geMWrOyAjOEI0Mwor6K2EID4gesSTbmc7ICM4QjQ0CivorYUgPiBzw6g7ICM4QjQ1CivorYYgPiB4xKs7ICM4QjQ2CivorYcgPiBzaMSTOyAjOEI0Nwor6K2IID4gZMO5aTsgIzhCNDgKK+itiSA+IHpow6huZzsgIzhCNDkKK+itiiA+IG7DoW87ICM4QjRBCivorYsgPiBsw6FuOyAjOEI0Qgor6K2MID4gw6k7ICM4QjRDCivorY0gPiB5w6xuZzsgIzhCNEQKK+itjiA+IGp1w6k7ICM4QjRFCivorY8gPiBqxKs7ICM4QjRGCivorZAgPiB6xa1uOyAjOEI1MAor6K2RID4gamnEg287ICM4QjUxCivorZIgPiBiw7I7ICM4QjUyCivorZMgPiBow7lpOyAjOEI1Mwor6K2UID4gemh1w6BuOyAjOEI1NAor6K2VID4gbcO6OyAjOEI1NQor6K2WID4gesOobjsgIzhCNTYKK+itlyA+IHpow6E7ICM4QjU3CivorZggPiBzaMOsOyAjOEI1OAor6K2ZID4gcWnDoW87ICM4QjU5CivorZogPiB0w6FuOyAjOEI1QQor6K2bID4gesOobjsgIzhCNUIKK+itnCA+IHDFrTsgIzhCNUMKK+itnSA+IHNow6luZzsgIzhCNUQKK+itniA+IHh1xIFuOyAjOEI1RQor6K2fID4gesOgbzsgIzhCNUYKK+itoCA+IHTEgW47ICM4QjYwCivoraEgPiBkxINuZzsgIzhCNjEKK+itoiA+IHPDuWk7ICM4QjYyCivoraMgPiBxacSBbjsgIzhCNjMKK+itpCA+IGrEqzsgIzhCNjQKK+itpSA+IGppw6BvOyAjOEI2NQor6K2mID4gasStbmc7ICM4QjY2CivoracgPiBsacOhbjsgIzhCNjcKK+itqCA+IG7Ds3U7ICM4QjY4CivorakgPiB5xKs7ICM4QjY5CivoraogPiDDoGk7ICM4QjZBCivorasgPiB6aMSBbjsgIzhCNkIKK+itrCA+IHDDrDsgIzhCNkMKK+itrSA+IGjFrWk7ICM4QjZECivora4gPiBodcOgOyAjOEI2RQor6K2vID4gecOsOyAjOEI2Rgor6K2wID4gecOsOyAjOEI3MAor6K2xID4gc2jDoG47ICM4QjcxCivorbIgPiByw6BuZzsgIzhCNzIKK+itsyA+IG7DsnU7ICM4QjczCivorbQgPiBxacSDbjsgIzhCNzQKK+ittSA+IHpow7lpOyAjOEI3NQor6K22ID4gdMOgOyAjOEI3Ngor6K23ID4gaMO5OyAjOEI3Nwor6K24ID4gemjFjXU7ICM4Qjc4CivorbkgPiBow6FvOyAjOEI3OQor6K26ID4gecOoOyAjOEI3QQor6K27ID4gecSrbmc7ICM4QjdCCivorbwgPiBqacOgbjsgIzhCN0MKK+itvSA+IHnDuTsgIzhCN0QKK+itviA+IGppxINuOyAjOEI3RQor6K2/ID4gaMO5aTsgIzhCN0YKK+iugCA+IGTDujsgIzhCODAKK+iugSA+IHpow6k7ICM4QjgxCivoroIgPiB4dcOgbjsgIzhCODIKK+iugyA+IHrDoG47ICM4QjgzCivoroQgPiBsxJVpOyAjOEI4NAor6K6FID4gc2jElW47ICM4Qjg1CivoroYgPiB3w6hpOyAjOEI4Ngor6K6HID4gY2jEg247ICM4Qjg3CivoroggPiBsw6w7ICM4Qjg4CivorokgPiB5w607ICM4Qjg5CivoroogPiBiacOgbjsgIzhCOEEKK+iuiyA+IHpow6k7ICM4QjhCCivorowgPiB5w6BuOyAjOEI4Qwor6K6NID4gw6g7ICM4QjhECivoro4gPiBjaMOzdTsgIzhCOEUKK+iujyA+IHfDqGk7ICM4QjhGCivorpAgPiBjaMOzdTsgIzhCOTAKK+iukSA+IHnDoG87ICM4QjkxCivorpIgPiBjaMOhbjsgIzhCOTIKK+iukyA+IHLDoG5nOyAjOEI5Mwor6K6UID4gecStbjsgIzhCOTQKK+iulSA+IGzDoW47ICM4Qjk1CivorpYgPiBjaMOobjsgIzhCOTYKK+iulyA+IGjDuW87ICM4Qjk3CivorpggPiB6aMOpOyAjOEI5OAor6K6ZID4gaHXEgW47ICM4Qjk5CivorpogPiB6w6BuOyAjOEI5QQor6K6bID4gecOsOyAjOEI5Qgor6K6cID4gZMSDbmc7ICM4QjlDCivorp0gPiB6aMSBbjsgIzhCOUQKK+iuniA+IHnDoG47ICM4QjlFCivorp8gPiBkw7o7ICM4QjlGCivorqAgPiB5w6FuOyAjOEJBMAor6K6hID4gasOsOyAjOEJBMQor6K6iID4gZMOsbmc7ICM4QkEyCivorqMgPiBmw7k7ICM4QkEzCivorqQgPiByw6huOyAjOEJBNAor6K6lID4gasSrOyAjOEJBNQor6K6mID4gamnDqTsgIzhCQTYKK+iupyA+IGjDs25nOyAjOEJBNwor6K6oID4gdMSDbzsgIzhCQTgKK+iuqSA+IHLDoG5nOyAjOEJBOQor6K6qID4gc2jDoG47ICM4QkFBCivorqsgPiBxw6w7ICM4QkFCCivorqwgPiB0xatvOyAjOEJBQwor6K6tID4geMO5bjsgIzhCQUQKK+iuriA+IHnDrDsgIzhCQUUKK+iuryA+IHjDuW47ICM4QkFGCivorrAgPiBqw6w7ICM4QkIwCivorrEgPiByw6huOyAjOEJCMQor6K6yID4gamnEg25nOyAjOEJCMgor6K6zID4gaMO5aTsgIzhCQjMKK+iutCA+IMWNdTsgIzhCQjQKK+iutSA+IGrDuTsgIzhCQjUKK+iutiA+IHnDoDsgIzhCQjYKK+iutyA+IG7DqDsgIzhCQjcKK+iuuCA+IHjFrTsgIzhCQjgKK+iuuSA+IMOpOyAjOEJCOQor6K66ID4gbMO5bjsgIzhCQkEKK+iuuyA+IHjEq29uZzsgIzhCQkIKK+iuvCA+IHPDsm5nOyAjOEJCQwor6K69ID4gZsSTbmc7ICM4QkJECivorr4gPiBzaMOoOyAjOEJCRQor6K6/ID4gZsSDbmc7ICM4QkJGCivor4AgPiBqdcOpOyAjOEJDMAor6K+BID4gemjDqG5nOyAjOEJDMQor6K+CID4gZ8WtOyAjOEJDMgor6K+DID4gaMSTOyAjOEJDMwor6K+EID4gcMOtbmc7ICM4QkM0Civor4UgPiB6xa07ICM4QkM1Civor4YgPiBzaMOsOyAjOEJDNgor6K+HID4geMOsb25nOyAjOEJDNwor6K+IID4gemjDoDsgIzhCQzgKK+iviSA+IHPDuTsgIzhCQzkKK+iviiA+IHpoxJVuOyAjOEJDQQor6K+LID4gZMStOyAjOEJDQgor6K+MID4gesWNdTsgIzhCQ0MKK+ivjSA+IGPDrTsgIzhCQ0QKK+ivjiA+IHHDuTsgIzhCQ0UKK+ivjyA+IHpow6BvOyAjOEJDRgor6K+QID4gYsOsOyAjOEJEMAor6K+RID4gecOsOyAjOEJEMQor6K+SID4gecOtOyAjOEJEMgor6K+TID4ga3XEgW5nOyAjOEJEMwor6K+UID4gbMSVaTsgIzhCRDQKK+ivlSA+IHNow6w7ICM4QkQ1Civor5YgPiBndcOgOyAjOEJENgor6K+XID4gc2jEqzsgIzhCRDcKK+ivmCA+IGppw6k7ICM4QkQ4Civor5kgPiBoxatpOyAjOEJEOQor6K+aID4gY2jDqW5nOyAjOEJEQQor6K+bID4gemjFqzsgIzhCREIKK+ivnCA+IHNoxJNuOyAjOEJEQwor6K+dID4gaHXDoDsgIzhCREQKK+ivniA+IGTDoG47ICM4QkRFCivor58gPiBnw7J1OyAjOEJERgor6K+gID4gcXXDoW47ICM4QkUwCivor6EgPiBnxa1pOyAjOEJFMQor6K+iID4geMO6bjsgIzhCRTIKK+ivoyA+IHnDrDsgIzhCRTMKK+ivpCA+IHpoxJNuZzsgIzhCRTQKK+ivpSA+IGfEgWk7ICM4QkU1Civor6YgPiB4acOhbmc7ICM4QkU2Civor6cgPiBjaMOgOyAjOEJFNwor6K+oID4gaMO5bjsgIzhCRTgKK+ivqSA+IHjFrTsgIzhCRTkKK+ivqiA+IHpoxY11OyAjOEJFQQor6K+rID4gamnDqDsgIzhCRUIKK+ivrCA+IHfDujsgIzhCRUMKK+ivrSA+IHnFrTsgIzhCRUQKK+ivriA+IHFpw6BvOyAjOEJFRQor6K+vID4gd8O5OyAjOEJFRgor6K+wID4gZ8OgbzsgIzhCRjAKK+ivsSA+IHnDsnU7ICM4QkYxCivor7IgPiBow7lpOyAjOEJGMgor6K+zID4ga3XDoW5nOyAjOEJGMwor6K+0ID4gc2jFq287ICM4QkY0Civor7UgPiBzw7JuZzsgIzhCRjUKK+ivtiA+IMSBaTsgIzhCRjYKK+ivtyA+IHHErW5nOyAjOEJGNwor6K+4ID4gemjFqzsgIzhCRjgKK+ivuSA+IHrFjXU7ICM4QkY5Civor7ogPiBuw7lvOyAjOEJGQQor6K+7ID4gZMO6OyAjOEJGQgor6K+8ID4gemjDum87ICM4QkZDCivor70gPiBmxJVpOyAjOEJGRAor6K++ID4ga8OoOyAjOEJGRQor6K+/ID4gd8SVaTsgIzhCRkYKK+iwgCA+IHnDujsgIzhDMDAKK+iwgSA+IHNow7ppOyAjOEMwMQor6LCCID4gc2jElW47ICM4QzAyCivosIMgPiBkacOgbzsgIzhDMDMKK+iwhCA+IGNoxINuOyAjOEMwNAor6LCFID4gbGnDoG5nOyAjOEMwNQor6LCGID4gemjFq247ICM4QzA2CivosIcgPiBzw7lpOyAjOEMwNwor6LCIID4gdMOhbjsgIzhDMDgKK+iwiSA+IHNoxJVuOyAjOEMwOQor6LCKID4gecOtOyAjOEMwQQor6LCLID4gbcOzdTsgIzhDMEIKK+iwjCA+IGNow6luOyAjOEMwQwor6LCNID4gZGnDqTsgIzhDMEQKK+iwjiA+IGh1xINuZzsgIzhDMEUKK+iwjyA+IGppw6BuOyAjOEMwRgor6LCQID4geGnDqTsgIzhDMTAKK+iwkSA+IG7HnGU7ICM4QzExCivosJIgPiB5w6g7ICM4QzEyCivosJMgPiB3w6hpOyAjOEMxMwor6LCUID4gw6g7ICM4QzE0CivosJUgPiB5w7k7ICM4QzE1CivosJYgPiB4dcSBbjsgIzhDMTYKK+iwlyA+IGNow6FuOyAjOEMxNwor6LCYID4gesSrOyAjOEMxOAor6LCZID4gxIFuOyAjOEMxOQor6LCaID4gecOgbjsgIzhDMUEKK+iwmyA+IGTDrDsgIzhDMUIKK+iwnCA+IG3DrTsgIzhDMUMKK+iwnSA+IHBpw6FuOyAjOEMxRAor6LCeID4geMWtOyAjOEMxRQor6LCfID4gbcOzOyAjOEMxRgor6LCgID4gZMSDbmc7ICM4QzIwCivosKEgPiBzw7k7ICM4QzIxCivosKIgPiB4acOoOyAjOEMyMgor6LCjID4gecOhbzsgIzhDMjMKK+iwpCA+IGLDoG5nOyAjOEMyNAor6LClID4gc2jDrDsgIzhDMjUKK+iwpiA+IHFpxIFuOyAjOEMyNgor6LCnID4gbcOsOyAjOEMyNwor6LCoID4gasStbjsgIzhDMjgKK+iwqSA+IG3DoW47ICM4QzI5CivosKogPiB6aMOpOyAjOEMyQQor6LCrID4gamnEg247ICM4QzJCCivosKwgPiBtw6x1OyAjOEMyQwor6LCtID4gdMOhbjsgIzhDMkQKK+iwriA+IHrDqG47ICM4QzJFCivosK8gPiBxacOhbzsgIzhDMkYKK+iwsCA+IGzDoW47ICM4QzMwCivosLEgPiBwxa07ICM4QzMxCivosLIgPiBqdcOpOyAjOEMzMgor6LCzID4gecOgbjsgIzhDMzMKK+iwtCA+IHFpxINuOyAjOEMzNAor6LC1ID4gemjEgW47ICM4QzM1CivosLYgPiBjaMOobjsgIzhDMzYKK+iwtyA+IGfFrTsgIzhDMzcKK+iwuCA+IHFpxIFuOyAjOEMzOAor6LC5ID4gaMOzbmc7ICM4QzM5CivosLogPiB4acSBOyAjOEMzQQor6LC7ID4ganXDqTsgIzhDM0IKK+iwvCA+IGjDs25nOyAjOEMzQwor6LC9ID4gaMSBbjsgIzhDM0QKK+iwviA+IGjFjW5nOyAjOEMzRQor6LC/ID4geMSrOyAjOEMzRgor6LGAID4geMSrOyAjOEM0MAor6LGBID4gaMO5bzsgIzhDNDEKK+ixgiA+IGxpw6FvOyAjOEM0Mgor6LGDID4gaMSDbjsgIzhDNDMKK+ixhCA+IGTDujsgIzhDNDQKK+ixhSA+IGzDs25nOyAjOEM0NQor6LGGID4gZMOydTsgIzhDNDYKK+ixhyA+IGppxIFuZzsgIzhDNDcKK+ixiCA+IHHErTsgIzhDNDgKK+ixiSA+IHNow6w7ICM4QzQ5CivosYogPiBsxK07ICM4QzRBCivosYsgPiBkxJNuZzsgIzhDNEIKK+ixjCA+IHfEgW47ICM4QzRDCivosY0gPiBixKs7ICM4QzRECivosY4gPiBzaMO5OyAjOEM0RQor6LGPID4geGnDoG47ICM4QzRGCivosZAgPiBmxJNuZzsgIzhDNTAKK+ixkSA+IHpow6w7ICM4QzUxCivosZIgPiB6aMOsOyAjOEM1Mgor6LGTID4gecOgbjsgIzhDNTMKK+ixlCA+IHnDoG47ICM4QzU0CivosZUgPiBzaMStOyAjOEM1NQor6LGWID4gY2jDuTsgIzhDNTYKK+ixlyA+IGjFq2k7ICM4QzU3CivosZggPiB0w7puOyAjOEM1OAor6LGZID4gecOsOyAjOEM1OQor6LGaID4gdMO6bjsgIzhDNUEKK+ixmyA+IHnDrDsgIzhDNUIKK+ixnCA+IGppxIFuOyAjOEM1Qwor6LGdID4gYsSBOyAjOEM1RAor6LGeID4gaMOydTsgIzhDNUUKK+ixnyA+IMOoOyAjOEM1Rgor6LGgID4gY8O6OyAjOEM2MAor6LGhID4geGnDoG5nOyAjOEM2MQor6LGiID4gaHXDoG47ICM4QzYyCivosaMgPiBqacSBbjsgIzhDNjMKK+ixpCA+IGvElW47ICM4QzY0CivosaUgPiBnxIFpOyAjOEM2NQor6LGmID4gccO6OyAjOEM2Ngor6LGnID4gZsWrOyAjOEM2Nwor6LGoID4geMSrOyAjOEM2OAor6LGpID4gYsSrbjsgIzhDNjkKK+ixqiA+IGjDoW87ICM4QzZBCivosasgPiB5w7k7ICM4QzZCCivosawgPiB6aMWrOyAjOEM2Qwor6LGtID4gamnEgTsgIzhDNkQKK+ixryA+IHjEqzsgIzhDNkYKK+ixsCA+IGLDszsgIzhDNzAKK+ixsSA+IHfEk247ICM4QzcxCivosbIgPiBodcOhbjsgIzhDNzIKK+ixsyA+IGLEq247ICM4QzczCivosbQgPiBkw607ICM4Qzc0CivosbUgPiB6xY1uZzsgIzhDNzUKK+ixtiA+IGbDqW47ICM4Qzc2CivosbcgPiB5w6w7ICM4Qzc3CivosbggPiB6aMOsOyAjOEM3OAor6LG5ID4gYsOgbzsgIzhDNzkKK+ixuiA+IGNow6FpOyAjOEM3QQor6LG7ID4gaMOgbjsgIzhDN0IKK+ixvCA+IHDDrTsgIzhDN0MKK+ixvSA+IG7DoDsgIzhDN0QKK+ixviA+IHDEqzsgIzhDN0UKK+ixvyA+IGfFj3U7ICM4QzdGCivosoAgPiBuw6A7ICM4QzgwCivosoEgPiB5w7J1OyAjOEM4MQor6LKCID4gZGnEgW87ICM4QzgyCivosoMgPiBtw7I7ICM4QzgzCivosoQgPiBzw6w7ICM4Qzg0CivosoUgPiB4xKt1OyAjOEM4NQor6LKGID4gaHXDoW47ICM4Qzg2CivosocgPiBrxatuOyAjOEM4Nwor6LKIID4gaMOpOyAjOEM4OAor6LKJID4gaMOpOyAjOEM4OQor6LKKID4gbcOyOyAjOEM4QQor6LKLID4gaMOgbjsgIzhDOEIKK+iyjCA+IG3DoG87ICM4QzhDCivoso0gPiBsw607ICM4QzhECivoso4gPiBuw607ICM4QzhFCivoso8gPiBixK07ICM4QzhGCivospAgPiB5xa07ICM4QzkwCivospEgPiBqacSBOyAjOEM5MQor6LKSID4gdHXEgW47ICM4QzkyCivospMgPiBtxIFvOyAjOEM5Mwor6LKUID4gcMOtOyAjOEM5NAor6LKVID4geMSrOyAjOEM5NQor6LKWID4gw6g7ICM4Qzk2CivospcgPiBqw7k7ICM4Qzk3CivospggPiBtw7I7ICM4Qzk4CivospkgPiBjaMWrOyAjOEM5OQor6LKaID4gdMOhbjsgIzhDOUEKK+iymyA+IGh1xIFuOyAjOEM5Qgor6LKcID4ganXDqTsgIzhDOUMKK+iynSA+IGLDqGk7ICM4QzlECivosp4gPiB6aMSTbjsgIzhDOUUKK+iynyA+IHl1w6FuOyAjOEM5Rgor6LKgID4gZsO5OyAjOENBMAor6LKhID4gY8OhaTsgIzhDQTEKK+iyoiA+IGfDsm5nOyAjOENBMgor6LKjID4gdMOoOyAjOENBMwor6LKkID4gecOtOyAjOENBNAor6LKlID4gaMOhbmc7ICM4Q0E1CivosqYgPiB3w6BuOyAjOENBNgor6LKnID4gcMOtbjsgIzhDQTcKK+iyqCA+IGjDuW87ICM4Q0E4CivosqkgPiBmw6BuOyAjOENBOQor6LKqID4gdMSBbjsgIzhDQUEKK+iyqyA+IGd1w6BuOyAjOENBQgor6LKsID4gesOpOyAjOENBQwor6LKtID4gemjDrTsgIzhDQUQKK+iyriA+IMOocjsgIzhDQUUKK+iyryA+IHpoxa07ICM4Q0FGCivosrAgPiBzaMOsOyAjOENCMAor6LKxID4gYsOsOyAjOENCMQor6LKyID4gesSrOyAjOENCMgor6LKzID4gw6hyOyAjOENCMwor6LK0ID4gZ8O5aTsgIzhDQjQKK+iytSA+IHBpxINuOyAjOENCNQor6LK2ID4gYmnEg247ICM4Q0I2CivosrcgPiBtxINpOyAjOENCNwor6LK4ID4gZMOgaTsgIzhDQjgKK+iyuSA+IHNow6huZzsgIzhDQjkKK+iyuiA+IGt1w6BuZzsgIzhDQkEKK+iyuyA+IGbDqGk7ICM4Q0JCCivosrwgPiB0acSTOyAjOENCQwor6LK9ID4gecOtOyAjOENCRAor6LK+ID4gY2jDrTsgIzhDQkUKK+iyvyA+IG3DoG87ICM4Q0JGCivos4AgPiBow6g7ICM4Q0MwCivos4EgPiBiw6w7ICM4Q0MxCivos4IgPiBsw7k7ICM4Q0MyCivos4MgPiByw6huOyAjOENDMwor6LOEID4gaMO5aTsgIzhDQzQKK+izhSA+IGfEgWk7ICM4Q0M1Civos4YgPiBwacOhbjsgIzhDQzYKK+izhyA+IHrEqzsgIzhDQzcKK+iziCA+IGppxIM7ICM4Q0M4Civos4kgPiB4w7k7ICM4Q0M5Civos4ogPiB6w6lpOyAjOENDQQor6LOLID4gamnEg287ICM4Q0NCCivos4wgPiBnw6BpOyAjOENDQwor6LONID4gesSBbmc7ICM4Q0NECivos44gPiBqacOgbjsgIzhDQ0UKK+izjyA+IHnDrG5nOyAjOENDRgor6LOQID4geMO5bjsgIzhDRDAKK+izkSA+IHpow6huOyAjOENEMQor6LOSID4gc2jEkzsgIzhDRDIKK+izkyA+IGLEq247ICM4Q0QzCivos5QgPiBixKtuOyAjOENENAor6LOVID4gccOtdTsgIzhDRDUKK+izliA+IHNoxJM7ICM4Q0Q2Civos5cgPiBjaHXDoG47ICM4Q0Q3Civos5ggPiB6xIFuZzsgIzhDRDgKK+izmSA+IHpoxY11OyAjOENEOQor6LOaID4gbMOgaTsgIzhDREEKK+izmyA+IHrDoG47ICM4Q0RCCivos5wgPiBzw6w7ICM4Q0RDCivos50gPiBjaMSTbjsgIzhDREQKK+izniA+IHNoxINuZzsgIzhDREUKK+iznyA+IHRpxINuOyAjOENERgor6LOgID4gcMOpaTsgIzhDRTAKK+izoSA+IGfEk25nOyAjOENFMQor6LOiID4geGnDoW47ICM4Q0UyCivos6MgPiBtw6BpOyAjOENFMwor6LOkID4gamnDoG47ICM4Q0U0Civos6UgPiBzw7lpOyAjOENFNQor6LOmID4gZsO5OyAjOENFNgor6LOnID4gdMOgbjsgIzhDRTcKK+izqCA+IGPDs25nOyAjOENFOAor6LOpID4gY8Ozbmc7ICM4Q0U5Civos6ogPiB6aMOtOyAjOENFQQor6LOrID4gasSrOyAjOENFQgor6LOsID4gemjDoG5nOyAjOENFQwor6LOtID4gZMWtOyAjOENFRAor6LOuID4gasOsbjsgIzhDRUUKK+izryA+IHjEq29uZzsgIzhDRUYKK+izsCA+IHNoxa1uOyAjOENGMAor6LOxID4gecWtbjsgIzhDRjEKK+izsiA+IGLEg287ICM4Q0YyCivos7MgPiB6xIFpOyAjOENGMwor6LO0ID4gbMOgaTsgIzhDRjQKK+iztSA+IGbDqG5nOyAjOENGNQor6LO2ID4gY8Ogbmc7ICM4Q0Y2Civos7cgPiBqxKs7ICM4Q0Y3Civos7ggPiBzaMOobmc7ICM4Q0Y4Civos7kgPiDDoGk7ICM4Q0Y5Civos7ogPiB6aHXDoG47ICM4Q0ZBCivos7sgPiBmw7k7ICM4Q0ZCCivos7wgPiBnw7J1OyAjOENGQwor6LO9ID4gc8OgaTsgIzhDRkQKK+izviA+IHrDqTsgIzhDRkUKK+izvyA+IGxpw6FvOyAjOENGRgor6LSAID4gd8OoaTsgIzhEMDAKK+i0gSA+IGLDoGk7ICM4RDAxCivotIIgPiBjaMSVbjsgIzhEMDIKK+i0gyA+IHpodcOgbjsgIzhEMDMKK+i0hCA+IHpow6w7ICM4RDA0CivotIUgPiB6aMO5aTsgIzhEMDUKK+i0hiA+IGJpxIFvOyAjOEQwNgor6LSHID4gecWrbjsgIzhEMDcKK+i0iCA+IHrDqG5nOyAjOEQwOAor6LSJID4gdMSDbjsgIzhEMDkKK+i0iiA+IHrDoG47ICM4RDBBCivotIsgPiB5w6BuOyAjOEQwQgor6LSNID4gc2jDoG47ICM4RDBECivotI4gPiB3w6BuOyAjOEQwRQor6LSPID4gecOtbmc7ICM4RDBGCivotJAgPiBqw6xuOyAjOEQxMAor6LSRID4gZ8SDbjsgIzhEMTEKK+i0kiA+IHhpw6FuOyAjOEQxMgor6LSTID4gesSBbmc7ICM4RDEzCivotJQgPiBiw6w7ICM4RDE0CivotJUgPiBkw7o7ICM4RDE1CivotJYgPiBzaMO6OyAjOEQxNgor6LSXID4gecOgbjsgIzhEMTcKK+i0mSA+IHh1w6BuOyAjOEQxOQor6LSaID4gbMOybmc7ICM4RDFBCivotJsgPiBnw6BuOyAjOEQxQgor6LScID4gesSBbmc7ICM4RDFDCivotJ0gPiBiw6hpOyAjOEQxRAor6LSeID4gemjEk247ICM4RDFFCivotJ8gPiBmw7k7ICM4RDFGCivotKAgPiB5dcOhbjsgIzhEMjAKK+i0oSA+IGfDsm5nOyAjOEQyMQor6LSiID4gY8OhaTsgIzhEMjIKK+i0oyA+IHrDqTsgIzhEMjMKK+i0pCA+IHhpw6FuOyAjOEQyNAor6LSlID4gYsOgaTsgIzhEMjUKK+i0piA+IHpow6BuZzsgIzhEMjYKK+i0pyA+IGjDuW87ICM4RDI3CivotKggPiB6aMOtOyAjOEQyOAor6LSpID4gZsOgbjsgIzhEMjkKK+i0qiA+IHTEgW47ICM4RDJBCivotKsgPiBww61uOyAjOEQyQgor6LSsID4gYmnEg247ICM4RDJDCivotK0gPiBnw7J1OyAjOEQyRAor6LSuID4gemjFrTsgIzhEMkUKK+i0ryA+IGd1w6BuOyAjOEQyRgor6LSwID4gw6hyOyAjOEQzMAor6LSxID4gamnDoG47ICM4RDMxCivotLIgPiBiw6w7ICM4RDMyCivotLMgPiBzaMOsOyAjOEQzMwor6LS0ID4gdGnEkzsgIzhEMzQKK+i0tSA+IGfDuWk7ICM4RDM1CivotLYgPiBrdcOgbmc7ICM4RDM2CivotLcgPiBkw6BpOyAjOEQzNwor6LS4ID4gbcOgbzsgIzhEMzgKK+i0uSA+IGbDqGk7ICM4RDM5CivotLogPiBow6g7ICM4RDNBCivotLsgPiB5w607ICM4RDNCCivotLwgPiB6w6lpOyAjOEQzQwor6LS9ID4gemjDrDsgIzhEM0QKK+i0viA+IGppxIM7ICM4RDNFCivotL8gPiBow7lpOyAjOEQzRgor6LWAID4gesSrOyAjOEQ0MAor6LWBID4gcsOobjsgIzhENDEKK+i1giA+IGzDuTsgIzhENDIKK+i1gyA+IHrEgW5nOyAjOEQ0Mwor6LWEID4gesSrOyAjOEQ0NAor6LWFID4gZ8SBaTsgIzhENDUKK+i1hiA+IGrDrG47ICM4RDQ2CivotYcgPiBxw611OyAjOEQ0Nwor6LWIID4gemjDqG47ICM4RDQ4CivotYkgPiBsw6BpOyAjOEQ0OQor6LWKID4gc2jEkzsgIzhENEEKK+i1iyA+IGbDuTsgIzhENEIKK+i1jCA+IGTFrTsgIzhENEMKK+i1jSA+IGrEqzsgIzhENEQKK+i1jiA+IHNow7o7ICM4RDRFCivotY8gPiBzaMSDbmc7ICM4RDRGCivotZAgPiBzw6w7ICM4RDUwCivotZEgPiBiw6w7ICM4RDUxCivotZIgPiB6aMWNdTsgIzhENTIKK+i1kyA+IGfEk25nOyAjOEQ1Mwor6LWUID4gcMOpaTsgIzhENTQKK+i1lSA+IHTDoG47ICM4RDU1CivotZYgPiBsw6BpOyAjOEQ1Ngor6LWXID4gZsOobmc7ICM4RDU3CivotZggPiB6aMO5aTsgIzhENTgKK+i1mSA+IGbDuTsgIzhENTkKK+i1miA+IHpodcOgbjsgIzhENUEKK+i1myA+IHPDoGk7ICM4RDVCCivotZwgPiB6w6k7ICM4RDVDCivotZ0gPiB5w6BuOyAjOEQ1RAor6LWeID4gesOgbjsgIzhENUUKK+i1nyA+IHnFq247ICM4RDVGCivotaAgPiB6w6huZzsgIzhENjAKK+i1oSA+IHNow6BuOyAjOEQ2MQor6LWiID4gecOtbmc7ICM4RDYyCivotaMgPiBnw6BuOyAjOEQ2Mwor6LWkID4gY2jDrDsgIzhENjQKK+i1pSA+IHjDrDsgIzhENjUKK+i1piA+IHNow6g7ICM4RDY2CivotacgPiBuxINuOyAjOEQ2Nwor6LWoID4geMOtb25nOyAjOEQ2OAor6LWpID4geMOsOyAjOEQ2OQor6LWqID4gY2jEk25nOyAjOEQ2QQor6LWrID4gaMOoOyAjOEQ2Qgor6LWsID4gY2jEk25nOyAjOEQ2Qwor6LWtID4gemjElTsgIzhENkQKK+i1riA+IHhpw6E7ICM4RDZFCivota8gPiB0w6FuZzsgIzhENkYKK+i1sCA+IHrFj3U7ICM4RDcwCivotbEgPiB6xY91OyAjOEQ3MQor6LWyID4gbMOsOyAjOEQ3Mgor6LWzID4gasStdTsgIzhENzMKK+i1tCA+IGbDuTsgIzhENzQKK+i1tSA+IHpow6BvOyAjOEQ3NQor6LW2ID4gZ8SDbjsgIzhENzYKK+i1tyA+IHHErTsgIzhENzcKK+i1uCA+IHNow6BuOyAjOEQ3OAor6LW5ID4gccOtb25nOyAjOEQ3OQor6LW6ID4gccOtbjsgIzhEN0EKK+i1uyA+IHhpxINuOyAjOEQ3Qgor6LW8ID4gY8SrOyAjOEQ3Qwor6LW9ID4ganXDqTsgIzhEN0QKK+i1viA+IHHErW47ICM4RDdFCivotb8gPiBjaMOtOyAjOEQ3Rgor6LaAID4gY8SrOyAjOEQ4MAor6LaBID4gY2jDqG47ICM4RDgxCivotoIgPiBjaMOobjsgIzhEODIKK+i2gyA+IGRpw6k7ICM4RDgzCivotoQgPiBqxas7ICM4RDg0CivotoUgPiBjaMSBbzsgIzhEODUKK+i2hiA+IGTEqzsgIzhEODYKK+i2hyA+IHPDqDsgIzhEODcKK+i2iCA+IHpoxIFuOyAjOEQ4OAor6LaJID4gemjDujsgIzhEODkKK+i2iiA+IHl1w6g7ICM4RDhBCivotosgPiBxxas7ICM4RDhCCivotowgPiBqacOpOyAjOEQ4Qwor6LaNID4gY2jDrTsgIzhEOEQKK+i2jiA+IGNow7o7ICM4RDhFCivoto8gPiBndcSBOyAjOEQ4Rgor6LaQID4geHXDqDsgIzhEOTAKK+i2kSA+IGPEqzsgIzhEOTEKK+i2kiA+IHRpw6FvOyAjOEQ5Mgor6LaTID4gZMWtbzsgIzhEOTMKK+i2lCA+IGxpw6g7ICM4RDk0CivotpUgPiBnxINuOyAjOEQ5NQor6LaWID4gc8WrbzsgIzhEOTYKK+i2lyA+IGPDuTsgIzhEOTcKK+i2mCA+IHjDrTsgIzhEOTgKK+i2mSA+IHpow6BvOyAjOEQ5OQor6LaaID4gc8O5OyAjOEQ5QQor6LabID4gecStbjsgIzhEOUIKK+i2nCA+IGrDujsgIzhEOUMKK+i2nSA+IGppw6BuOyAjOEQ5RAor6LaeID4gcXXDqDsgIzhEOUUKK+i2nyA+IHTDoG5nOyAjOEQ5Rgor6LagID4gY2jDuW87ICM4REEwCivotqEgPiBjxa1pOyAjOERBMQor6LaiID4gbMO5OyAjOERBMgor6LajID4gccO5OyAjOERBMwor6LakID4gZMOgbmc7ICM4REE0CivotqUgPiBxxKt1OyAjOERBNQor6LamID4gesSrOyAjOERBNgor6LanID4gdMOtOyAjOERBNwor6LaoID4gccWrOyAjOERBOAor6LapID4gY2jDrDsgIzhEQTkKK+i2qiA+IGh1w6FuZzsgIzhEQUEKK+i2qyA+IHFpw6FvOyAjOERBQgor6LasID4gcWnDoW87ICM4REFDCivotq0gPiB5w6BvOyAjOERBRAor6LauID4gesOgbzsgIzhEQUUKK+i2ryA+IHTDrDsgIzhEQUYKK+i2sSA+IHrEg247ICM4REIxCivotrIgPiB6xINuOyAjOERCMgor6LazID4gesO6OyAjOERCMwor6La0ID4gcMSBOyAjOERCNAor6La1ID4gYsOgbzsgIzhEQjUKK+i2tiA+IGvDuTsgIzhEQjYKK+i2tyA+IGvEkzsgIzhEQjcKK+i2uCA+IGTFrW47ICM4REI4CivotrkgPiBqdcOpOyAjOERCOQor6La6ID4gZsWrOyAjOERCQQor6La7ID4gY2jElW47ICM4REJCCivotrwgPiBqacSDbjsgIzhEQkMKK+i2vSA+IGbDoG5nOyAjOERCRAor6La+ID4gemjErTsgIzhEQkUKK+i2vyA+IHPDoDsgIzhEQkYKK+i3gCA+IHl1w6g7ICM4REMwCivot4EgPiBww6E7ICM4REMxCivot4IgPiBxw607ICM4REMyCivot4MgPiB5dcOoOyAjOERDMwor6LeEID4gcWnEgW5nOyAjOERDNAor6LeFID4gdMO5bzsgIzhEQzUKK+i3hiA+IHTDoWk7ICM4REM2Civot4cgPiB5w6w7ICM4REM3Civot4ggPiBuacSDbjsgIzhEQzgKK+i3iSA+IGzDrW5nOyAjOERDOQor6LeKID4gbcOoaTsgIzhEQ0EKK+i3iyA+IGLDoTsgIzhEQ0IKK+i3jCA+IGRpxJM7ICM4RENDCivot40gPiBrxas7ICM4RENECivot44gPiB0w7pvOyAjOERDRQor6LePID4gamnEgTsgIzhEQ0YKK+i3kCA+IGPErTsgIzhERDAKK+i3kSA+IHDEg287ICM4REQxCivot5IgPiBxacSDOyAjOEREMgor6LeTID4gemjDuTsgIzhERDMKK+i3lCA+IGrFqzsgIzhERDQKK+i3lSA+IGRpw6k7ICM4REQ1Civot5YgPiB6aMSrOyAjOERENgor6LeXID4gZsWrOyAjOERENwor6LeYID4gcMOhbjsgIzhERDgKK+i3mSA+IGrFrTsgIzhERDkKK+i3miA+IHNoxIFuOyAjOEREQQor6LebID4gYsWPOyAjOEREQgor6LecID4gbsOtOyAjOEREQwor6LedID4gasO5OyAjOERERAor6LeeID4gbMOsOyAjOERERQor6LefID4gZ8STbjsgIzhEREYKK+i3oCA+IHnDrTsgIzhERTAKK+i3oSA+IGrEqzsgIzhERTEKK+i3oiA+IGTDoGk7ICM4REUyCivot6MgPiB4acSDbjsgIzhERTMKK+i3pCA+IGppxIFvOyAjOERFNAor6LelID4gZMO5bzsgIzhERTUKK+i3piA+IHpoxas7ICM4REU2Civot6cgPiB6aHXEgW47ICM4REU3Civot6ggPiBrdcOgOyAjOERFOAor6LepID4gemh1xINpOyAjOERFOQor6LeqID4gZ8O5aTsgIzhERUEKK+i3qyA+IHHDrW9uZzsgIzhERUIKK+i3rCA+IGvFrWk7ICM4REVDCivot60gPiB4acOhbmc7ICM4REVECivot64gPiBjaMOsOyAjOERFRQor6LevID4gbMO5OyAjOERFRgor6LewID4gYsOobmc7ICM4REYwCivot7EgPiB6aMOsOyAjOERGMQor6LeyID4gamnDoTsgIzhERjIKK+i3syA+IHRpw6BvOyAjOERGMwor6Le0ID4gY8SDaTsgIzhERjQKK+i3tSA+IGppw6BuOyAjOERGNQor6Le2ID4gdMOgOyAjOERGNgor6Le3ID4gcWnEgW87ICM4REY3Civot7ggPiBiw6w7ICM4REY4Civot7kgPiB4acSBbjsgIzhERjkKK+i3uiA+IGTDuW87ICM4REZBCivot7sgPiBqxKs7ICM4REZCCivot7wgPiBqw7o7ICM4REZDCivot70gPiBqw6w7ICM4REZECivot74gPiBzaMO6OyAjOERGRQor6Le/ID4gdMO6OyAjOERGRgor6LiAID4gY2jDuTsgIzhFMDAKK+i4gSA+IGrDrG5nOyAjOEUwMQor6LiCID4gbmnDqDsgIzhFMDIKK+i4gyA+IHhpxIFvOyAjOEUwMwor6LiEID4gYsOzOyAjOEUwNAor6LiFID4gY2jDrDsgIzhFMDUKK+i4hiA+IHHFq247ICM4RTA2CivouIcgPiBtxY91OyAjOEUwNwor6LiIID4gc2jFqzsgIzhFMDgKK+i4iSA+IGzDoW5nOyAjOEUwOQor6LiKID4gecWPbmc7ICM4RTBBCivouIsgPiBqacSDbzsgIzhFMEIKK+i4jCA+IGNow7N1OyAjOEUwQwor6LiNID4gcWnEgW87ICM4RTBECivouI8gPiB0w6A7ICM4RTBGCivouJAgPiBqacOgbjsgIzhFMTAKK+i4kSA+IHHDrTsgIzhFMTEKK+i4kiA+IHfFjTsgIzhFMTIKK+i4kyA+IHfElWk7ICM4RTEzCivouJQgPiB6aMO6bzsgIzhFMTQKK+i4lSA+IGppw6k7ICM4RTE1CivouJYgPiBqw607ICM4RTE2CivouJcgPiBuacSTOyAjOEUxNwor6LiYID4gasO6OyAjOEUxOAor6LiZID4gasWrOyAjOEUxOQor6LiaID4gbMO6bjsgIzhFMUEKK+i4myA+IGzDuTsgIzhFMUIKK+i4nCA+IGzDqG5nOyAjOEUxQwor6LidID4gaHXDoWk7ICM4RTFECivouJ4gPiBqw7k7ICM4RTFFCivouJ8gPiBjaMOtOyAjOEUxRgor6LigID4gd8SDbjsgIzhFMjAKK+i4oSA+IHF1w6FuOyAjOEUyMQor6LiiID4gdMSrOyAjOEUyMgor6LijID4gYsOzOyAjOEUyMwor6LikID4gesO6OyAjOEUyNAor6LilID4gcWnDqDsgIzhFMjUKK+i4piA+IGrErTsgIzhFMjYKK+i4pyA+IGPDuTsgIzhFMjcKK+i4qCA+IHrFjW5nOyAjOEUyOAor6LipID4gY8SDaTsgIzhFMjkKK+i4qiA+IHrFjW5nOyAjOEUyQQor6LirID4gcMOobmc7ICM4RTJCCivouKwgPiB6aMOsOyAjOEUyQwor6LitID4gemjEk25nOyAjOEUyRAor6LiuID4gZGnEg247ICM4RTJFCivouK8gPiB6aMOtOyAjOEUyRgor6LiwID4gecO6OyAjOEUzMAor6LixID4gZMO5bzsgIzhFMzEKK+i4siA+IGTDuW47ICM4RTMyCivouLMgPiBjaMWtbjsgIzhFMzMKK+i4tCA+IHnFj25nOyAjOEUzNAor6Li1ID4gemjFj25nOyAjOEUzNQor6Li2ID4gZMOsOyAjOEUzNgor6Li3ID4gemjElTsgIzhFMzcKK+i4uCA+IGNoxJVuOyAjOEUzOAor6Li5ID4gY2h1w6BpOyAjOEUzOQor6Li6ID4gamnDoG47ICM4RTNBCivouLsgPiBndcSBOyAjOEUzQgor6Li8ID4gdMOhbmc7ICM4RTNDCivouL0gPiBqxa07ICM4RTNECivouL4gPiBmw7o7ICM4RTNFCivouL8gPiB6w7o7ICM4RTNGCivouYAgPiBkacOpOyAjOEU0MAor6LmBID4gcGnDoW47ICM4RTQxCivouYIgPiByw7N1OyAjOEU0Mgor6LmDID4gbsO5bzsgIzhFNDMKK+i5hCA+IHTDrTsgIzhFNDQKK+i5hSA+IGNoxIM7ICM4RTQ1CivouYYgPiB0xa1pOyAjOEU0Ngor6LmHID4gamnEg247ICM4RTQ3CivouYggPiBkw6BvOyAjOEU0OAor6LmJID4gY8WrbzsgIzhFNDkKK+i5iiA+IHjEqzsgIzhFNEEKK+i5iyA+IHTDoDsgIzhFNEIKK+i5jCA+IHFpxIFuZzsgIzhFNEMKK+i5jSA+IHpoxINuOyAjOEU0RAor6LmOID4gZGnEgW47ICM4RTRFCivouY8gPiB0w607ICM4RTRGCivouZAgPiBqw607ICM4RTUwCivouZEgPiBuacOoOyAjOEU1MQor6LmSID4gbcOhbjsgIzhFNTIKK+i5kyA+IGzEq3U7ICM4RTUzCivouZQgPiB6aMOgbjsgIzhFNTQKK+i5lSA+IGLDrDsgIzhFNTUKK+i5liA+IGNoxY1uZzsgIzhFNTYKK+i5lyA+IGzDuTsgIzhFNTcKK+i5mCA+IGxpw6FvOyAjOEU1OAor6LmZID4gY8O5OyAjOEU1OQor6LmaID4gdMSBbmc7ICM4RTVBCivouZsgPiBkw6BpOyAjOEU1Qgor6LmcID4gc8WrbzsgIzhFNUMKK+i5nSA+IHjErTsgIzhFNUQKK+i5niA+IGvFrWk7ICM4RTVFCivouZ8gPiBqxKs7ICM4RTVGCivouaAgPiB6aMOtOyAjOEU2MAor6LmhID4gcWnEgW5nOyAjOEU2MQor6LmiID4gZMOtOyAjOEU2Mgor6LmjID4gbcOhbjsgIzhFNjMKK+i5pCA+IHrFjW5nOyAjOEU2NAor6LmlID4gbGnDoW47ICM4RTY1CivouaYgPiBiw6huZzsgIzhFNjYKK+i5pyA+IHrEgW87ICM4RTY3CivouaggPiBuacSDbjsgIzhFNjgKK+i5qSA+IGJpw6k7ICM4RTY5CivouaogPiB0w7ppOyAjOEU2QQor6LmrID4gasO6OyAjOEU2Qgor6LmsID4gZMOobmc7ICM4RTZDCivoua0gPiBjw6huZzsgIzhFNkQKK+i5riA+IHhpxIFuOyAjOEU2RQor6LmvID4gZsOhbjsgIzhFNkYKK+i5sCA+IGNow7o7ICM4RTcwCivoubEgPiB6aMWNbmc7ICM4RTcxCivoubIgPiBkxatuOyAjOEU3Mgor6LmzID4gYsWNOyAjOEU3Mwor6Lm0ID4gY8O5OyAjOEU3NAor6Lm1ID4gesO6OyAjOEU3NQor6Lm2ID4ganXDqTsgIzhFNzYKK+i5tyA+IGp1w6k7ICM4RTc3CivoubggPiBsw6xuOyAjOEU3OAor6Lm5ID4gdMOgOyAjOEU3OQor6Lm6ID4gcWnEgW87ICM4RTdBCivoubsgPiBxacSBbzsgIzhFN0IKK+i5vCA+IHDDujsgIzhFN0MKK+i5vSA+IGxpxIFvOyAjOEU3RAor6Lm+ID4gZMWrbjsgIzhFN0UKK+i5vyA+IGN1xIFuOyAjOEU3Rgor6LqAID4ga3XDoG5nOyAjOEU4MAor6LqBID4gesOgbzsgIzhFODEKK+i6giA+IHTDoDsgIzhFODIKK+i6gyA+IGLDrDsgIzhFODMKK+i6hCA+IGLDrDsgIzhFODQKK+i6hSA+IHpow7o7ICM4RTg1CivouoYgPiBqw7k7ICM4RTg2CivouocgPiBjaMO6OyAjOEU4Nwor6LqIID4gcWnDoG87ICM4RTg4CivouokgPiBkxa1uOyAjOEU4OQor6LqKID4gY2jDs3U7ICM4RThBCivouosgPiBqxKs7ICM4RThCCivouowgPiB3xa07ICM4RThDCivouo0gPiB5dcOoOyAjOEU4RAor6LqOID4gbmnEg247ICM4RThFCivouo8gPiBsw6xuOyAjOEU4Rgor6LqQID4gbGnDqDsgIzhFOTAKK+i6kSA+IHpow607ICM4RTkxCivoupIgPiBsw6w7ICM4RTkyCivoupMgPiB6aMOsOyAjOEU5Mwor6LqUID4gY2jDoW47ICM4RTk0CivoupUgPiBjaMO6OyAjOEU5NQor6LqWID4gZHXDoG47ICM4RTk2CivoupcgPiB3w6hpOyAjOEU5Nwor6LqYID4gbMOzbmc7ICM4RTk4CivoupkgPiBsw6xuOyAjOEU5OQor6LqaID4geGnEgW47ICM4RTlBCivoupsgPiB3w6hpOyAjOEU5Qgor6LqcID4genXEgW47ICM4RTlDCivoup0gPiBsw6FuOyAjOEU5RAor6LqeID4geGnDqDsgIzhFOUUKK+i6nyA+IHLDoW5nOyAjOEU5Rgor6LqgID4geGnElTsgIzhFQTAKK+i6oSA+IG5pw6g7ICM4RUExCivouqIgPiB0w6A7ICM4RUEyCivouqMgPiBxw7o7ICM4RUEzCivouqQgPiBqacOoOyAjOEVBNAor6LqlID4gY3XEgW47ICM4RUE1CivouqYgPiB6dcSBbjsgIzhFQTYKK+i6pyA+IHjErTsgIzhFQTcKK+i6qCA+IGvDumk7ICM4RUE4CivouqkgPiBqdcOpOyAjOEVBOQor6LqqID4gbMOsbjsgIzhFQUEKK+i6qyA+IHNoxJNuOyAjOEVBQgor6LqsID4gZ8WNbmc7ICM4RUFDCivouq0gPiBkxIFuOyAjOEVBRAor6LqvID4gccWrOyAjOEVBRgor6LqwID4gdMStOyAjOEVCMAor6LqxID4gZMWtbzsgIzhFQjEKK+i6siA+IGTFrW87ICM4RUIyCivourMgPiBnxY1uZzsgIzhFQjMKK+i6tCA+IGzDoW5nOyAjOEVCNAor6Lq2ID4gbMWtbzsgIzhFQjYKK+i6tyA+IMSDaTsgIzhFQjcKK+i6uCA+IGrEqzsgIzhFQjgKK+i6uSA+IGrDujsgIzhFQjkKK+i6uiA+IHTEg25nOyAjOEVCQQor6Lq9ID4gecSDbjsgIzhFQkQKK+i6vyA+IGvEgW5nOyAjOEVCRgor6LuAID4gccWrOyAjOEVDMAor6LuBID4gbMOzdTsgIzhFQzEKK+i7giA+IGzDoG87ICM4RUMyCivou4MgPiB0xa1vOyAjOEVDMwor6LuEID4gemjDrTsgIzhFQzQKK+i7hiA+IHTErTsgIzhFQzYKK+i7hyA+IGTDoG87ICM4RUM3Civou4kgPiB5w7k7ICM4RUM5Civou4ogPiBjaMSTOyAjOEVDQQor6LuLID4gecOgOyAjOEVDQgor6LuMID4gZ8WtaTsgIzhFQ0MKK+i7jSA+IGrFq247ICM4RUNECivou44gPiB3w6hpOyAjOEVDRQor6LuPID4geXXDqDsgIzhFQ0YKK+i7kCA+IHjDrG47ICM4RUQwCivou5EgPiBkw6w7ICM4RUQxCivou5IgPiB4dcSBbjsgIzhFRDIKK+i7kyA+IGbDoG47ICM4RUQzCivou5QgPiByw6huOyAjOEVENAor6LuVID4gc2jEgW47ICM4RUQ1Civou5YgPiBxacOhbmc7ICM4RUQ2Civou5cgPiBzaMWrOyAjOEVENwor6LuYID4gdMO6bjsgIzhFRDgKK+i7mSA+IGNow6luOyAjOEVEOQor6LuaID4gZMOgaTsgIzhFREEKK+i7myA+IMOoOyAjOEVEQgor6LucID4gbsOgOyAjOEVEQwor6LudID4gccOtOyAjOEVERAor6LueID4gbcOhbzsgIzhFREUKK+i7nyA+IHJ1xINuOyAjOEVERgor6LugID4gcsOobjsgIzhFRTAKK+i7oSA+IGbEg247ICM4RUUxCivou6IgPiB6aHXEg247ICM4RUUyCivou6MgPiBoxY1uZzsgIzhFRTMKK+i7pCA+IGjFqzsgIzhFRTQKK+i7pSA+IHHDujsgIzhFRTUKK+i7piA+IGh1w6BuZzsgIzhFRTYKK+i7pyA+IGTErTsgIzhFRTcKK+i7qCA+IGzDrW5nOyAjOEVFOAor6LupID4gZMOgaTsgIzhFRTkKK+i7qiA+IMSBbzsgIzhFRUEKK+i7qyA+IHpoxJVuOyAjOEVFQgor6LusID4gZsOgbjsgIzhFRUMKK+i7rSA+IGt1xIFuZzsgIzhFRUQKK+i7riA+IMSDbmc7ICM4RUVFCivou68gPiBwxJNuZzsgIzhFRUYKK+i7sCA+IGLDqGk7ICM4RUYwCivou7EgPiBnxas7ICM4RUYxCivou7IgPiBrxas7ICM4RUYyCivou7MgPiBww6FvOyAjOEVGMwor6Lu0ID4gemjDuTsgIzhFRjQKK+i7tSA+IHLFj25nOyAjOEVGNQor6Lu2ID4gw6g7ICM4RUY2Civou7cgPiBiw6E7ICM4RUY3Civou7ggPiB6aMOzdTsgIzhFRjgKK+i7uSA+IHpoxK07ICM4RUY5Civou7ogPiB5w6FvOyAjOEVGQQor6Lu7ID4ga8STOyAjOEVGQgor6Lu8ID4gecOsOyAjOEVGQwor6Lu9ID4gccSrbmc7ICM4RUZECivou74gPiBzaMOsOyAjOEVGRQor6Lu/ID4gcMOtbmc7ICM4RUZGCivovIAgPiDDqXI7ICM4RjAwCivovIEgPiBxw61vbmc7ICM4RjAxCivovIIgPiBqw7o7ICM4RjAyCivovIMgPiBqacOgbzsgIzhGMDMKK+i8hCA+IGd1xIFuZzsgIzhGMDQKK+i8hSA+IGzDuTsgIzhGMDUKK+i8hiA+IGvEg2k7ICM4RjA2CivovIcgPiBxdcOhbjsgIzhGMDcKK+i8iCA+IHpoxY11OyAjOEYwOAor6LyJID4gesOgaTsgIzhGMDkKK+i8iiA+IHpow6w7ICM4RjBBCivovIsgPiBzaMSTOyAjOEYwQgor6LyMID4gbGnDoG5nOyAjOEYwQwor6LyNID4gecO5OyAjOEYwRAor6LyOID4gc2jEgW87ICM4RjBFCivovI8gPiB5w7N1OyAjOEYwRgor6LyQID4gaHXEg247ICM4RjEwCivovJEgPiB5xa1uOyAjOEYxMQor6LySID4gemjDqTsgIzhGMTIKK+i8kyA+IHfEg247ICM4RjEzCivovJQgPiBmxa07ICM4RjE0CivovJUgPiBxxKtuZzsgIzhGMTUKK+i8liA+IHpoxY11OyAjOEYxNgor6LyXID4gbsOtOyAjOEYxNwor6LyYID4gbMOtbmc7ICM4RjE4CivovJkgPiB6aMOpOyAjOEYxOQor6LyaID4gemjDoG47ICM4RjFBCivovJsgPiBsacOgbmc7ICM4RjFCCivovJwgPiB6xKs7ICM4RjFDCivovJ0gPiBoxatpOyAjOEYxRAor6LyeID4gd8SDbmc7ICM4RjFFCivovJ8gPiBjaMO5bzsgIzhGMUYKK+i8oCA+IGfFrW87ICM4RjIwCivovKEgPiBrxINuOyAjOEYyMQor6LyiID4gecStOyAjOEYyMgor6LyjID4gcMOpbmc7ICM4RjIzCivovKQgPiBxacOgbjsgIzhGMjQKK+i8pSA+IGfFrW47ICM4RjI1CivovKYgPiBuacSDbjsgIzhGMjYKK+i8pyA+IHBpw6FuOyAjOEYyNwor6LyoID4gZ3XEg247ICM4RjI4CivovKkgPiBiw6hpOyAjOEYyOQor6LyqID4gbMO6bjsgIzhGMkEKK+i8qyA+IHDDoWk7ICM4RjJCCivovKwgPiBsacOhbmc7ICM4RjJDCivovK0gPiBydcSDbjsgIzhGMkQKK+i8riA+IHLDs3U7ICM4RjJFCivovK8gPiBqw607ICM4RjJGCivovLAgPiB5w6FuZzsgIzhGMzAKK+i8sSA+IHhpw6FuOyAjOEYzMQor6LyyID4gY2h1w6FuOyAjOEYzMgor6LyzID4gY8OydTsgIzhGMzMKK+i8tCA+IHHFq247ICM4RjM0CivovLUgPiBnw6k7ICM4RjM1CivovLYgPiB5w7N1OyAjOEYzNgor6Ly3ID4gaMWNbmc7ICM4RjM3CivovLggPiBzaMWrOyAjOEYzOAor6Ly5ID4gZsO5OyAjOEYzOQor6Ly6ID4gesSrOyAjOEYzQQor6Ly7ID4gZsO6OyAjOEYzQgor6Ly8ID4gd8STbjsgIzhGM0MKK+i8vSA+IGLDqG47ICM4RjNECivovL4gPiB6aMSDbjsgIzhGM0UKK+i8vyA+IHnDujsgIzhGM0YKK+i9gCA+IHfEk247ICM4RjQwCivovYEgPiB0xIFvOyAjOEY0MQor6L2CID4gZ8WtOyAjOEY0Mgor6L2DID4gemjEk247ICM4RjQzCivovYQgPiB4acOhOyAjOEY0NAor6L2FID4geXXDoW47ICM4RjQ1CivovYYgPiBsw7k7ICM4RjQ2CivovYcgPiBqxKt1OyAjOEY0Nwor6L2IID4gY2jDoW87ICM4RjQ4CivovYkgPiB6aHXEg247ICM4RjQ5CivovYogPiB3w6hpOyAjOEY0QQor6L2LID4gaMO6bjsgIzhGNEIKK+i9jSA+IGNow6g7ICM4RjRECivovY4gPiBqacOgbzsgIzhGNEUKK+i9jyA+IHpow6BuOyAjOEY0Rgor6L2QID4gcMO6OyAjOEY1MAor6L2RID4gbMSDbzsgIzhGNTEKK+i9kiA+IGbDqW47ICM4RjUyCivovZMgPiBmxIFuOyAjOEY1Mwor6L2UID4gbMOtbjsgIzhGNTQKK+i9lSA+IGfDqTsgIzhGNTUKK+i9liA+IHPDqDsgIzhGNTYKK+i9lyA+IGvEg247ICM4RjU3CivovZggPiBodcOgbjsgIzhGNTgKK+i9mSA+IHnErTsgIzhGNTkKK+i9miA+IGrDrTsgIzhGNUEKK+i9myA+IGTDuWk7ICM4RjVCCivovZwgPiDDqXI7ICM4RjVDCivovZ0gPiB5w7o7ICM4RjVECivovZ4gPiB4acOgbjsgIzhGNUUKK+i9nyA+IGjFjW5nOyAjOEY1Rgor6L2gID4gbMSVaTsgIzhGNjAKK+i9oSA+IHDDqGk7ICM4RjYxCivovaIgPiBsw6w7ICM4RjYyCivovaMgPiBsw6w7ICM4RjYzCivovaQgPiBsw7o7ICM4RjY0CivovaUgPiBsw6xuOyAjOEY2NQor6L2mID4gY2jEkzsgIzhGNjYKK+i9pyA+IHnDoDsgIzhGNjcKK+i9qCA+IGfFrWk7ICM4RjY4CivovakgPiB4dcSBbjsgIzhGNjkKK+i9qiA+IGTDrDsgIzhGNkEKK+i9qyA+IHLDqG47ICM4RjZCCivovawgPiB6aHXEg247ICM4RjZDCivova0gPiDDqDsgIzhGNkQKK+i9riA+IGzDum47ICM4RjZFCivova8gPiBydcSDbjsgIzhGNkYKK+i9sCA+IGjFjW5nOyAjOEY3MAor6L2xID4ga8WrOyAjOEY3MQor6L2yID4ga8STOyAjOEY3Mgor6L2zID4gbMO6OyAjOEY3Mwor6L20ID4gemjDs3U7ICM4Rjc0CivovbUgPiB6aMStOyAjOEY3NQor6L22ID4gecOsOyAjOEY3Ngor6L23ID4gaMWrOyAjOEY3Nwor6L24ID4gemjElW47ICM4Rjc4CivovbkgPiBsw6w7ICM4Rjc5CivovbogPiB5w6FvOyAjOEY3QQor6L27ID4gccSrbmc7ICM4RjdCCivovbwgPiBzaMOsOyAjOEY3Qwor6L29ID4gesOgaTsgIzhGN0QKK+i9viA+IHpow6w7ICM4RjdFCivovb8gPiBqacOgbzsgIzhGN0YKK+i+gCA+IHpoxY11OyAjOEY4MAor6L6BID4gcXXDoW47ICM4RjgxCivovoIgPiBsw7k7ICM4RjgyCivovoMgPiBqacOgbzsgIzhGODMKK+i+hCA+IHpow6k7ICM4Rjg0CivovoUgPiBmxa07ICM4Rjg1CivovoYgPiBsacOgbmc7ICM4Rjg2CivovocgPiBuacSDbjsgIzhGODcKK+i+iCA+IGLDqGk7ICM4Rjg4CivovokgPiBoxatpOyAjOEY4OQor6L6KID4gZ8WtbjsgIzhGOEEKK+i+iyA+IHfEg25nOyAjOEY4Qgor6L6MID4gbGnDoW5nOyAjOEY4Qwor6L6NID4gY2jDuW87ICM4RjhECivovo4gPiB6xKs7ICM4RjhFCivovo8gPiBjw7J1OyAjOEY4Rgor6L6QID4gZsO6OyAjOEY5MAor6L6RID4gasOtOyAjOEY5MQor6L6SID4gd8STbjsgIzhGOTIKK+i+kyA+IHNoxas7ICM4RjkzCivovpQgPiBww6hpOyAjOEY5NAor6L6VID4geXXDoW47ICM4Rjk1CivovpYgPiB4acOhOyAjOEY5Ngor6L6XID4gemjEg247ICM4Rjk3CivovpggPiBsw7k7ICM4Rjk4CivovpkgPiBjaMOoOyAjOEY5OQor6L6aID4gbMOtbjsgIzhGOUEKK+i+myA+IHjEq247ICM4RjlCCivovpwgPiBnxas7ICM4RjlDCivovp0gPiBjw607ICM4RjlECivovp4gPiBjw607ICM4RjlFCivovp8gPiBww6w7ICM4RjlGCivovqAgPiB6w7lpOyAjOEZBMAor6L6hID4gYmnDoG47ICM4RkExCivovqIgPiBsw6A7ICM4RkEyCivovqMgPiBsw6A7ICM4RkEzCivovqQgPiBjw607ICM4RkE0CivovqUgPiB4dcSTOyAjOEZBNQor6L6mID4gYsOgbjsgIzhGQTYKK+i+pyA+IGJpw6BuOyAjOEZBNwor6L6oID4gYmnDoG47ICM4RkE4CivovqkgPiBiacOgbjsgIzhGQTkKK+i+qyA+IGJpw6BuOyAjOEZBQgor6L6sID4gYsSBbjsgIzhGQUMKK+i+rSA+IGPDrTsgIzhGQUQKK+i+riA+IGJpw6BuOyAjOEZBRQor6L6vID4gYmnDoG47ICM4RkFGCivovrAgPiBjaMOpbjsgIzhGQjAKK+i+sSA+IHLDuTsgIzhGQjEKK+i+siA+IG7Ds25nOyAjOEZCMgor6L6zID4gbsOzbmc7ICM4RkIzCivovrQgPiB6aMSVbjsgIzhGQjQKK+i+tSA+IGNow7lvOyAjOEZCNQor6L62ID4gY2jDuW87ICM4RkI2CivovrggPiByw6luZzsgIzhGQjgKK+i+uSA+IGJpxIFuOyAjOEZCOQor6L66ID4gYmnEgW47ICM4RkJBCivovr0gPiBsacOhbzsgIzhGQkQKK+i+viA+IGTDoTsgIzhGQkUKK+i+vyA+IGNoxIFuOyAjOEZCRgor6L+AID4gZ8SBbjsgIzhGQzAKK+i/gSA+IHFpxIFuOyAjOEZDMQor6L+CID4gecWrOyAjOEZDMgor6L+DID4gecWrOyAjOEZDMwor6L+EID4gccOsOyAjOEZDNAor6L+FID4geMO5bjsgIzhGQzUKK+i/hiA+IHnErTsgIzhGQzYKK+i/hyA+IGfDuW87ICM4RkM3Civov4ggPiBtw6BpOyAjOEZDOAor6L+JID4gccOtOyAjOEZDOQor6L+KID4gesSBOyAjOEZDQQor6L+LID4gd8Ogbmc7ICM4RkNCCivov4wgPiBqaWE7ICM4RkNDCivov40gPiB6aMWrbjsgIzhGQ0QKK+i/jiA+IHnDrW5nOyAjOEZDRQor6L+PID4gdMOsOyAjOEZDRgor6L+QID4gecO5bjsgIzhGRDAKK+i/kSA+IGrDrG47ICM4RkQxCivov5IgPiBow6FuZzsgIzhGRDIKK+i/kyA+IHnDoDsgIzhGRDMKK+i/lCA+IGbEg247ICM4RkQ0Civov5UgPiB3w7k7ICM4RkQ1Civov5YgPiBkw6E7ICM4RkQ2Civov5cgPiDDqTsgIzhGRDcKK+i/mCA+IGh1w6FuOyAjOEZEOAor6L+ZID4gemjDqDsgIzhGRDkKK+i/myA+IGrDrG47ICM4RkRCCivov5wgPiB5dcSDbjsgIzhGREMKK+i/nSA+IHfDqWk7ICM4RkRECivov54gPiBsacOhbjsgIzhGREUKK+i/nyA+IGNow607ICM4RkRGCivov6AgPiBjaMOoOyAjOEZFMAor6L+hID4gbsOsOyAjOEZFMQor6L+iID4gdGnDoW87ICM4RkUyCivov6MgPiB6aMOsOyAjOEZFMwor6L+kID4gecStOyAjOEZFNAor6L+lID4gasStb25nOyAjOEZFNQor6L+mID4gamnEgTsgIzhGRTYKK+i/pyA+IGNow6luOyAjOEZFNwor6L+oID4gZMOgaTsgIzhGRTgKK+i/qSA+IMSVcjsgIzhGRTkKK+i/qiA+IGTDrTsgIzhGRUEKK+i/qyA+IHDDsjsgIzhGRUIKK+i/rCA+IHfEg25nOyAjOEZFQwor6L+tID4gZGnDqTsgIzhGRUQKK+i/riA+IHrDqTsgIzhGRUUKK+i/ryA+IHTDoW87ICM4RkVGCivov7AgPiBzaMO5OyAjOEZGMAor6L+xID4gdMO6bzsgIzhGRjEKK+i/syA+IGrDrG5nOyAjOEZGMwor6L+0ID4gaMO6aTsgIzhGRjQKK+i/tSA+IHTDs25nOyAjOEZGNQor6L+2ID4gecOydTsgIzhGRjYKK+i/tyA+IG3DrTsgIzhGRjcKK+i/uCA+IGLDqG5nOyAjOEZGOAor6L+5ID4gasSrOyAjOEZGOQor6L+6ID4gbsSDaTsgIzhGRkEKK+i/uyA+IHnDrTsgIzhGRkIKK+i/vCA+IGppw6k7ICM4RkZDCivov70gPiB6aMWraTsgIzhGRkQKK+i/viA+IGxpw6g7ICM4RkZFCivov78gPiB4w7luOyAjOEZGRgor6YCAID4gdMO5aTsgIzkwMDAKK+mAgSA+IHPDsm5nOyAjOTAwMQor6YCCID4gZ3XEgTsgIzkwMDIKK+mAgyA+IHTDoW87ICM5MDAzCivpgIQgPiBww6FuZzsgIzkwMDQKK+mAhSA+IGjDsnU7ICM5MDA1CivpgIYgPiBuw6w7ICM5MDA2CivpgIcgPiBkw7luOyAjOTAwNwor6YCIID4gasStb25nOyAjOTAwOAor6YCJID4geHXEg247ICM5MDA5CivpgIogPiB4w7luOyAjOTAwQQor6YCLID4gYsWrOyAjOTAwQgor6YCMID4gecOzdTsgIzkwMEMKK+mAjSA+IHhpxIFvOyAjOTAwRAor6YCOID4gccOtdTsgIzkwMEUKK+mAjyA+IHTDsnU7ICM5MDBGCivpgJAgPiB6aMO6OyAjOTAxMAor6YCRID4gccOtdTsgIzkwMTEKK+mAkiA+IGTDrDsgIzkwMTIKK+mAkyA+IGTDrDsgIzkwMTMKK+mAlCA+IHTDujsgIzkwMTQKK+mAlSA+IGrDrG5nOyAjOTAxNQor6YCWID4gdMOsOyAjOTAxNgor6YCXID4gZMOydTsgIzkwMTcKK+mAmCA+IHnErTsgIzkwMTgKK+mAmSA+IHpow6g7ICM5MDE5CivpgJogPiB0xY1uZzsgIzkwMUEKK+mAmyA+IGd1w6BuZzsgIzkwMUIKK+mAnCA+IHfDuTsgIzkwMUMKK+mAnSA+IHNow6w7ICM5MDFECivpgJ4gPiBjaMSVbmc7ICM5MDFFCivpgJ8gPiBzw7k7ICM5MDFGCivpgKAgPiB6w6BvOyAjOTAyMAor6YChID4gccWrbjsgIzkwMjEKK+mAoiA+IGbDqW5nOyAjOTAyMgor6YCjID4gbGnDoW47ICM5MDIzCivpgKQgPiBzw7lvOyAjOTAyNAor6YClID4gaMO6aTsgIzkwMjUKK+mApiA+IGzErTsgIzkwMjYKK+mAqCA+IGzDoWk7ICM5MDI4CivpgKkgPiBiw6huOyAjOTAyOQor6YCqID4gY8O5bzsgIzkwMkEKK+mAqyA+IGp1w6k7ICM5MDJCCivpgKwgPiBiw6huZzsgIzkwMkMKK+mArSA+IGh1w6BuOyAjOTAyRAor6YCuID4gZMOgaTsgIzkwMkUKK+mAryA+IGzDuTsgIzkwMkYKK+mAsCA+IHnDs3U7ICM5MDMwCivpgLEgPiB6aMWNdTsgIzkwMzEKK+mAsiA+IGrDrG47ICM5MDMyCivpgLMgPiB5w7k7ICM5MDMzCivpgLQgPiBjaMO5bzsgIzkwMzQKK+mAtSA+IGvDumk7ICM5MDM1CivpgLYgPiB3xJNpOyAjOTAzNgor6YC3ID4gdMOsOyAjOTAzNwor6YC4ID4gecOsOyAjOTAzOAor6YC5ID4gZMOhOyAjOTAzOQor6YC6ID4geXXEg247ICM5MDNBCivpgLsgPiBsw7pvOyAjOTAzQgor6YC8ID4gYsSrOyAjOTAzQwor6YC9ID4gbsO5bzsgIzkwM0QKK+mAviA+IHnDujsgIzkwM0UKK+mAvyA+IGTDoG5nOyAjOTAzRgor6YGAID4gc8O6aTsgIzkwNDAKK+mBgSA+IGTDuW47ICM5MDQxCivpgYIgPiBzw7lpOyAjOTA0Mgor6YGDID4gecSDbjsgIzkwNDMKK+mBhCA+IGNodcOhbjsgIzkwNDQKK+mBhSA+IGNow607ICM5MDQ1CivpgYYgPiB0w607ICM5MDQ2CivpgYcgPiB5w7k7ICM5MDQ3CivpgYggPiBzaMOtOyAjOTA0OAor6YGJID4gemjEk247ICM5MDQ5CivpgYogPiB5w7N1OyAjOTA0QQor6YGLID4gecO5bjsgIzkwNEIKK+mBjCA+IMOoOyAjOTA0Qwor6YGNID4gYmnDoG47ICM5MDRECivpgY4gPiBnw7lvOyAjOTA0RQor6YGPID4gw6g7ICM5MDRGCivpgZAgPiB4acOhOyAjOTA1MAor6YGRID4gaHXDoW5nOyAjOTA1MQor6YGSID4gccOtdTsgIzkwNTIKK+mBkyA+IGTDoG87ICM5MDUzCivpgZQgPiBkw6E7ICM5MDU0CivpgZUgPiB3w6lpOyAjOTA1NQor6YGXID4gecOtOyAjOTA1Nwor6YGYID4gZ8OydTsgIzkwNTgKK+mBmSA+IHnDoW87ICM5MDU5CivpgZogPiBjaMO5OyAjOTA1QQor6YGbID4gbMOtdTsgIzkwNUIKK+mBnCA+IHjDuW47ICM5MDVDCivpgZ0gPiB0w6A7ICM5MDVECivpgZ4gPiBkw6w7ICM5MDVFCivpgZ8gPiBjaMOtOyAjOTA1Rgor6YGgID4geXXEg247ICM5MDYwCivpgaEgPiBzw7k7ICM5MDYxCivpgaIgPiB0w6A7ICM5MDYyCivpgaMgPiBxacSDbjsgIzkwNjMKK+mBpSA+IHnDoW87ICM5MDY1CivpgaYgPiBndcOgbjsgIzkwNjYKK+mBpyA+IHpoxIFuZzsgIzkwNjcKK+mBqCA+IMOhbzsgIzkwNjgKK+mBqSA+IHNow6w7ICM5MDY5CivpgaogPiBjw6g7ICM5MDZBCivpgasgPiBjaMOsOyAjOTA2Qgor6YGsID4gc8O5OyAjOTA2Qwor6YGtID4gesSBbzsgIzkwNkQKK+mBriA+IHpoxJM7ICM5MDZFCivpga8gPiBkw7luOyAjOTA2Rgor6YGwID4gZMOsOyAjOTA3MAor6YGxID4gbMOzdTsgIzkwNzEKK+mBsiA+IGNow607ICM5MDcyCivpgbMgPiBjxatvOyAjOTA3Mwor6YG0ID4gbMOtbjsgIzkwNzQKK+mBtSA+IHrFq247ICM5MDc1CivpgbYgPiByw6BvOyAjOTA3Ngor6YG3ID4gcWnEgW47ICM5MDc3CivpgbggPiB4dcSDbjsgIzkwNzgKK+mBuSA+IHnDuTsgIzkwNzkKK+mBuiA+IHnDrTsgIzkwN0EKK+mBuyA+IHfDuTsgIzkwN0IKK+mBvCA+IGxpw6FvOyAjOTA3Qwor6YG9ID4gasO5OyAjOTA3RAor6YG+ID4gc2jDrDsgIzkwN0UKK+mBvyA+IGLDrDsgIzkwN0YKK+mCgCA+IHnEgW87ICM5MDgwCivpgoEgPiBtw6BpOyAjOTA4MQor6YKCID4geGnDqDsgIzkwODIKK+mCgyA+IHPDuWk7ICM5MDgzCivpgoQgPiBodcOhbjsgIzkwODQKK+mChSA+IHpoxIFuOyAjOTA4NQor6YKGID4gdMOpbmc7ICM5MDg2CivpgocgPiDElXI7ICM5MDg3CivpgoggPiBtacSDbzsgIzkwODgKK+mCiSA+IGJpxIFuOyAjOTA4OQor6YKKID4gYmnEgW47ICM5MDhBCivpgosgPiBsw6E7ICM5MDhCCivpgowgPiBsw607ICM5MDhDCivpgo0gPiB5dcOhbjsgIzkwOEQKK+mCjiA+IHnDoW87ICM5MDhFCivpgo8gPiBsw7pvOyAjOTA4Rgor6YKQID4gbMStOyAjOTA5MAor6YKRID4gecOsOyAjOTA5MQor6YKSID4gdMOtbmc7ICM5MDkyCivpgpMgPiBkw6huZzsgIzkwOTMKK+mClCA+IHHErTsgIzkwOTQKK+mClSA+IHnFjW5nOyAjOTA5NQor6YKWID4gc2jEgW47ICM5MDk2CivpgpcgPiBow6FuOyAjOTA5Nwor6YKYID4gecO6OyAjOTA5OAor6YKZID4gbcOhbmc7ICM5MDk5CivpgpogPiByw7o7ICM5MDlBCivpgpsgPiBxw61vbmc7ICM5MDlCCivpgp0gPiBrdcOgbmc7ICM5MDlECivpgp4gPiBmxas7ICM5MDlFCivpgp8gPiBrw6BuZzsgIzkwOUYKK+mCoCA+IGLEq247ICM5MEEwCivpgqEgPiBmxIFuZzsgIzkwQTEKK+mCoiA+IHjDrW5nOyAjOTBBMgor6YKjID4gbsOgOyAjOTBBMwor6YKkID4geGluOyAjOTBBNAor6YKlID4gc2jElW47ICM5MEE1CivpgqYgPiBixIFuZzsgIzkwQTYKK+mCpyA+IHl1w6FuOyAjOTBBNwor6YKoID4gY8WrbjsgIzkwQTgKK+mCqSA+IGjFrW87ICM5MEE5CivpgqogPiB4acOpOyAjOTBBQQor6YKrID4gYsSBbmc7ICM5MEFCCivpgqwgPiB3xas7ICM5MEFDCivpgq0gPiBqw7k7ICM5MEFECivpgq4gPiB5w7N1OyAjOTBBRQor6YKvID4gaMOhbjsgIzkwQUYKK+mCsCA+IHTDoWk7ICM5MEIwCivpgrEgPiBxxKt1OyAjOTBCMQor6YKyID4gYsOsOyAjOTBCMgor6YKzID4gcMOpaTsgIzkwQjMKK+mCtCA+IGLErW5nOyAjOTBCNAor6YK1ID4gc2jDoG87ICM5MEI1CivpgrYgPiBiw6hpOyAjOTBCNgor6YK3ID4gd8SDOyAjOTBCNwor6YK4ID4gZMStOyAjOTBCOAor6YK5ID4gesWNdTsgIzkwQjkKK+mCuiA+IHnDqDsgIzkwQkEKK+mCuyA+IGzDrW47ICM5MEJCCivpgrwgPiBrdcSBbmc7ICM5MEJDCivpgr0gPiBnxatpOyAjOTBCRAor6YK+ID4gemjFqzsgIzkwQkUKK+mCvyA+IHNoxKs7ICM5MEJGCivpg4AgPiBrxas7ICM5MEMwCivpg4EgPiB5w7k7ICM5MEMxCivpg4IgPiBnxIFpOyAjOTBDMgor6YODID4gZ8OpOyAjOTBDMwor6YOEID4geMOsOyAjOTBDNAor6YOFID4gemjDrDsgIzkwQzUKK+mDhiA+IGrDrTsgIzkwQzYKK+mDhyA+IHjDum47ICM5MEM3Civpg4ggPiBow7J1OyAjOTBDOAor6YOJID4geMOtbmc7ICM5MEM5Civpg4ogPiBqacSBbzsgIzkwQ0EKK+mDiyA+IHjDrTsgIzkwQ0IKK+mDjCA+IGfFq2k7ICM5MENDCivpg40gPiBuw7pvOyAjOTBDRAor6YOOID4gbMOhbmc7ICM5MENFCivpg48gPiBqacOhOyAjOTBDRgor6YOQID4ga3XDoGk7ICM5MEQwCivpg5EgPiB6aMOobmc7ICM5MEQxCivpg5MgPiB5w7luOyAjOTBEMwor6YOUID4gecOhbjsgIzkwRDQKK+mDlSA+IGNow6luZzsgIzkwRDUKK+mDliA+IGTFjXU7ICM5MEQ2Civpg5cgPiBjaMSrOyAjOTBENwor6YOYID4gbMeaOyAjOTBEOAor6YOZID4gZsWtOyAjOTBEOQor6YOaID4gd8O6OyAjOTBEQQor6YObID4gZsO6OyAjOTBEQgor6YOcID4gZ8OgbzsgIzkwREMKK+mDnSA+IGjEg287ICM5MERECivpg54gPiBsw6FuZzsgIzkwREUKK+mDnyA+IGppw6E7ICM5MERGCivpg6AgPiBnxJVuZzsgIzkwRTAKK+mDoSA+IGrDuW47ICM5MEUxCivpg6IgPiB5xK1uZzsgIzkwRTIKK+mDoyA+IGLDszsgIzkwRTMKK+mDpCA+IHjDrDsgIzkwRTQKK+mDpSA+IGLDqGk7ICM5MEU1Civpg6YgPiBsw6w7ICM5MEU2Civpg6cgPiB5w7puOyAjOTBFNwor6YOoID4gYsO5OyAjOTBFOAor6YOpID4geGnDoW87ICM5MEU5Civpg6ogPiBxxKs7ICM5MEVBCivpg6sgPiBww607ICM5MEVCCivpg6wgPiBxxKtuZzsgIzkwRUMKK+mDrSA+IGfFq287ICM5MEVECivpg64gPiB6aG91OyAjOTBFRQor6YOvID4gdMOhbjsgIzkwRUYKK+mDsCA+IHrFjXU7ICM5MEYwCivpg7EgPiBww61uZzsgIzkwRjEKK+mDsiA+IGzDoWk7ICM5MEYyCivpg7MgPiBuw607ICM5MEYzCivpg7QgPiBjaMSTbjsgIzkwRjQKK+mDtSA+IHnDs3U7ICM5MEY1Civpg7YgPiBiw7k7ICM5MEY2Civpg7cgPiB4acSBbmc7ICM5MEY3Civpg7ggPiBkxIFuOyAjOTBGOAor6YO5ID4gasO6OyAjOTBGOQor6YO6ID4gecWNbmc7ICM5MEZBCivpg7sgPiBxacSBbzsgIzkwRkIKK+mDvCA+IHnEqzsgIzkwRkMKK+mDvSA+IGTFqzsgIzkwRkQKK+mDviA+IHnEg247ICM5MEZFCivpg78gPiBtw6lpOyAjOTBGRgor6YSAID4gcsO5bzsgIzkxMDAKK+mEgSA+IGLDqGk7ICM5MTAxCivphIIgPiDDqDsgIzkxMDIKK+mEgyA+IHnDujsgIzkxMDMKK+mEhCA+IGp1w6BuOyAjOTEwNAor6YSFID4gecWtOyAjOTEwNQor6YSGID4gecO5bjsgIzkxMDYKK+mEhyA+IGjDsnU7ICM5MTA3CivphIggPiBrw7ppOyAjOTEwOAor6YSJID4geGnEgW5nOyAjOTEwOQor6YSKID4geGnEgW5nOyAjOTEwQQor6YSLID4gc8WNdTsgIzkxMEIKK+mEjCA+IHTDoW5nOyAjOTEwQwor6YSNID4gbcOtbmc7ICM5MTBECivphI4gPiB4w6w7ICM5MTBFCivphI8gPiByw7k7ICM5MTBGCivphJAgPiBjaMO5OyAjOTExMAor6YSRID4gesSrOyAjOTExMQor6YSSID4gesWNdTsgIzkxMTIKK+mEkyA+IGrDujsgIzkxMTMKK+mElCA+IHfFqzsgIzkxMTQKK+mElSA+IHhpxIFuZzsgIzkxMTUKK+mEliA+IHnDum47ICM5MTE2CivphJcgPiBow6BvOyAjOTExNwor6YSYID4gecWNbmc7ICM5MTE4CivphJkgPiBixK07ICM5MTE5CivphJogPiBtw7I7ICM5MTFBCivphJsgPiBjaMOhbzsgIzkxMUIKK+mEnCA+IGbFqzsgIzkxMUMKK+mEnSA+IGxpxINvOyAjOTExRAor6YSeID4gecOtbjsgIzkxMUUKK+mEnyA+IHpodcSBbjsgIzkxMUYKK+mEoCA+IGjDuTsgIzkxMjAKK+mEoSA+IHFpxIFvOyAjOTEyMQor6YSiID4gecSBbjsgIzkxMjIKK+mEoyA+IHpoxIFuZzsgIzkxMjMKK+mEpCA+IGbDoG47ICM5MTI0CivphKUgPiBxacSBbzsgIzkxMjUKK+mEpiA+IHjFrTsgIzkxMjYKK+mEpyA+IGTDqG5nOyAjOTEyNwor6YSoID4gYsOsOyAjOTEyOAor6YSpID4geMOtbjsgIzkxMjkKK+mEqiA+IGLDrDsgIzkxMkEKK+mEqyA+IGPDqW5nOyAjOTEyQgor6YSsID4gd8OpaTsgIzkxMkMKK+mErSA+IHpow6huZzsgIzkxMkQKK+mEriA+IG3DoG87ICM5MTJFCivphK8gPiBzaMOgbjsgIzkxMkYKK+mEsCA+IGzDrW47ICM5MTMwCivphLEgPiBww7M7ICM5MTMxCivphLIgPiBkxIFuOyAjOTEzMgor6YSzID4gbcOpbmc7ICM5MTMzCivphLQgPiB5w6g7ICM5MTM0CivphLUgPiBjxIFvOyAjOTEzNQor6YS2ID4ga3XDoGk7ICM5MTM2CivphLcgPiBmxJNuZzsgIzkxMzcKK+mEuCA+IG3DqW5nOyAjOTEzOAor6YS5ID4gesWNdTsgIzkxMzkKK+mEuiA+IGt1w6BuZzsgIzkxM0EKK+mEuyA+IGxpw6FuOyAjOTEzQgor6YS8ID4gesOgbjsgIzkxM0MKK+mEvSA+IGNow6FuOyAjOTEzRAor6YS+ID4gecWNdTsgIzkxM0UKK+mEvyA+IHHDrTsgIzkxM0YKK+mFgCA+IHnEgW47ICM5MTQwCivphYEgPiBjaMOhbjsgIzkxNDEKK+mFgiA+IHrDoG47ICM5MTQyCivphYMgPiBsw61uZzsgIzkxNDMKK+mFhCA+IGh1xIFuOyAjOTE0NAor6YWFID4geMSrOyAjOTE0NQor6YWGID4gZsSTbmc7ICM5MTQ2CivphYcgPiB6w6BuOyAjOTE0Nwor6YWIID4gbMOsOyAjOTE0OAor6YWJID4gecWPdTsgIzkxNDkKK+mFiiA+IGTErW5nOyAjOTE0QQor6YWLID4gccOtdTsgIzkxNEIKK+mFjCA+IHpow7pvOyAjOTE0Qwor6YWNID4gcMOoaTsgIzkxNEQKK+mFjiA+IHpow7J1OyAjOTE0RQor6YWPID4gecOtOyAjOTE0Rgor6YWQID4gaMSDbmc7ICM5MTUwCivphZEgPiB5xa07ICM5MTUxCivphZIgPiBqxK11OyAjOTE1Mgor6YWTID4gecSDbjsgIzkxNTMKK+mFlCA+IHrDuWk7ICM5MTU0CivphZUgPiBtw6FvOyAjOTE1NQor6YWWID4gZMSBbjsgIzkxNTYKK+mFlyA+IHjDuTsgIzkxNTcKK+mFmCA+IHTDs3U7ICM5MTU4CivphZkgPiB6aMSTbjsgIzkxNTkKK+mFmiA+IGbEk247ICM5MTVBCivphZ0gPiB5w7luOyAjOTE1RAor6YWeID4gdMOgaTsgIzkxNUUKK+mFnyA+IHRpxIFuOyAjOTE1Rgor6YWgID4gcWnEgzsgIzkxNjAKK+mFoSA+IHTDum87ICM5MTYxCivphaIgPiB6w7lvOyAjOTE2Mgor6YWjID4gaMSBbjsgIzkxNjMKK+mFpCA+IGfFqzsgIzkxNjQKK+mFpSA+IHPFqzsgIzkxNjUKK+mFpiA+IHDDsjsgIzkxNjYKK+mFpyA+IGNow7N1OyAjOTE2Nwor6YWoID4gesOgaTsgIzkxNjgKK+mFqSA+IG3DrW5nOyAjOTE2OQor6YWqID4gbMO5bzsgIzkxNkEKK+mFqyA+IGNow7lvOyAjOTE2Qgor6YWsID4gY2jDs3U7ICM5MTZDCivpha0gPiB5w7J1OyAjOTE2RAor6YWuID4gdMOzbmc7ICM5MTZFCivpha8gPiB6aMStOyAjOTE2Rgor6YWwID4geGnEgW47ICM5MTcwCivphbEgPiBqacOgbmc7ICM5MTcxCivphbIgPiBjaMOpbmc7ICM5MTcyCivphbMgPiB5w6xuOyAjOTE3Mwor6YW0ID4gdMO6OyAjOTE3NAor6YW1ID4geGnDoG87ICM5MTc1CivphbYgPiBtw6lpOyAjOTE3Ngor6YW3ID4ga8O5OyAjOTE3Nwor6YW4ID4gc3XEgW47ICM5MTc4CivphbkgPiBsw6hpOyAjOTE3OQor6YW6ID4gcMO6OyAjOTE3QQor6YW7ID4gesO5aTsgIzkxN0IKK+mFvCA+IGjEg2k7ICM5MTdDCivphb0gPiB5w6BuOyAjOTE3RAor6YW+ID4geMStOyAjOTE3RQor6YW/ID4gbmnDoG5nOyAjOTE3Rgor6YaAID4gd8OpaTsgIzkxODAKK+mGgSA+IGzDuTsgIzkxODEKK+mGgiA+IGzEg247ICM5MTgyCivphoMgPiB5xIFuOyAjOTE4Mwor6YaEID4gdMOhbzsgIzkxODQKK+mGhSA+IHDEk2k7ICM5MTg1CivphoYgPiB6aMSDbjsgIzkxODYKK+mGhyA+IGNow7puOyAjOTE4Nwor6YaIID4gdMOhbjsgIzkxODgKK+mGiSA+IHrDuWk7ICM5MTg5CivphoogPiBjaMO5bzsgIzkxOEEKK+mGiyA+IGPDuTsgIzkxOEIKK+mGjCA+IGvFq247ICM5MThDCivpho0gPiB0w607ICM5MThECivpho4gPiBtacOhbjsgIzkxOEUKK+mGjyA+IGTFqzsgIzkxOEYKK+mGkCA+IGjDujsgIzkxOTAKK+mGkSA+IHjFrTsgIzkxOTEKK+mGkiA+IHjErW5nOyAjOTE5Mgor6YaTID4gdMSDbjsgIzkxOTMKK+mGlCA+IGrEq3U7ICM5MTk0CivphpUgPiBjaMO6bjsgIzkxOTUKK+mGliA+IHnDuW47ICM5MTk2CivphpcgPiBww7I7ICM5MTk3CivphpggPiBrw6g7ICM5MTk4CivphpkgPiBzxY11OyAjOTE5OQor6YaaID4gbcOtOyAjOTE5QQor6YabID4gcXXDoW47ICM5MTlCCivphpwgPiBjaMWPdTsgIzkxOUMKK+mGnSA+IGPDum87ICM5MTlECivphp4gPiB5w7luOyAjOTE5RQor6YafID4gecOybmc7ICM5MTlGCivphqAgPiDDoG5nOyAjOTFBMAor6YahID4gemjDoDsgIzkxQTEKK+mGoiA+IGjEg2k7ICM5MUEyCivphqMgPiB0w6FuZzsgIzkxQTMKK+mGpCA+IGppw6BuZzsgIzkxQTQKK+mGpSA+IHBpxINvOyAjOTFBNQor6YamID4gc2jEg247ICM5MUE2CivphqcgPiB5w7k7ICM5MUE3CivphqggPiBsw607ICM5MUE4CivphqkgPiB6w6FvOyAjOTFBOQor6YaqID4gbMOhbzsgIzkxQUEKK+mGqyA+IHnEqzsgIzkxQUIKK+mGrCA+IGppw6BuZzsgIzkxQUMKK+mGrSA+IHDFqzsgIzkxQUQKK+mGriA+IGppw6BvOyAjOTFBRQor6YavID4geMSrOyAjOTFBRgor6YawID4gdMOhbjsgIzkxQjAKK+mGsSA+IHDDsjsgIzkxQjEKK+mGsiA+IG7Ds25nOyAjOTFCMgor6YazID4gecOsOyAjOTFCMwor6Ya0ID4gbMStOyAjOTFCNAor6Ya1ID4gasO5OyAjOTFCNQor6Ya2ID4gamnDoG87ICM5MUI2CivphrcgPiB5w6w7ICM5MUI3CivphrggPiBuacOgbmc7ICM5MUI4CivphrkgPiByw7o7ICM5MUI5CivphrogPiB4xatuOyAjOTFCQQor6Ya7ID4gY2jDs3U7ICM5MUJCCivphrwgPiB5w6BuOyAjOTFCQwor6Ya9ID4gbMOtbmc7ICM5MUJECivphr4gPiBtw607ICM5MUJFCivphr8gPiBtw607ICM5MUJGCivph4AgPiBuacOgbmc7ICM5MUMwCivph4EgPiB4w6xuOyAjOTFDMQor6YeCID4gamnDoG87ICM5MUMyCivph4MgPiB4xK07ICM5MUMzCivph4QgPiBtw607ICM5MUM0Civph4UgPiB5w6BuOyAjOTFDNQor6YeGID4gYmnDoG47ICM5MUM2Civph4cgPiBjxINpOyAjOTFDNwor6YeIID4gc2jDrDsgIzkxQzgKK+mHiSA+IHnDsnU7ICM5MUM5Civph4ogPiBzaMOsOyAjOTFDQQor6YeLID4gc2jDrDsgIzkxQ0IKK+mHjCA+IGzErTsgIzkxQ0MKK+mHjSA+IHpow7JuZzsgIzkxQ0QKK+mHjiA+IHnElTsgIzkxQ0UKK+mHjyA+IGxpw6BuZzsgIzkxQ0YKK+mHkCA+IGzDrTsgIzkxRDAKK+mHkSA+IGrEq247ICM5MUQxCivph5IgPiBqxKtuJyAnesOsJyAncMOhbmc7ICM5MUQyCivph5MgPiBxw611OyAjOTFEMwor6YeUID4gecStOyAjOTFENAor6YeVID4gZGnEg287ICM5MUQ1Civph5YgPiBkxIFvOyAjOTFENgor6YeXID4gemjEgW87ICM5MUQ3Civph5ggPiBkxKtuZzsgIzkxRDgKK+mHmSA+IHDDsjsgIzkxRDkKK+mHmiA+IHHDrXU7ICM5MURBCivph5sgPiBow6k7ICM5MURCCivph5wgPiBmxa07ICM5MURDCivph50gPiB6aMSTbjsgIzkxREQKK+mHniA+IHpow607ICM5MURFCivph58gPiBixIE7ICM5MURGCivph6AgPiBsdcOgbjsgIzkxRTAKK+mHoSA+IGbFrTsgIzkxRTEKK+mHoiA+IG7DoWk7ICM5MUUyCivph6MgPiBkacOgbzsgIzkxRTMKK+mHpCA+IHNow6BuOyAjOTFFNAor6YelID4gcWnEg287ICM5MUU1Civph6YgPiBrw7J1OyAjOTFFNgor6YenID4gY2h1w6BuOyAjOTFFNwor6YeoID4gesStOyAjOTFFOAor6YepID4gZsOhbjsgIzkxRTkKK+mHqiA+IHnDujsgIzkxRUEKK+mHqyA+IGh1w6E7ICM5MUVCCivph6wgPiBow6BuOyAjOTFFQwor6YetID4gZ8WNbmc7ICM5MUVECivph64gPiBxw607ICM5MUVFCivph68gPiBtw6FuZzsgIzkxRUYKK+mHsCA+IHLDrDsgIzkxRjAKK+mHsSA+IGTDrDsgIzkxRjEKK+mHsiA+IHPDrDsgIzkxRjIKK+mHsyA+IHjDrDsgIzkxRjMKK+mHtCA+IHnDrDsgIzkxRjQKK+mHtSA+IGNoxIFpOyAjOTFGNQor6Ye2ID4gc2jEqzsgIzkxRjYKK+mHtyA+IHTFrTsgIzkxRjcKK+mHuCA+IHjDrDsgIzkxRjgKK+mHuSA+IG7HmjsgIzkxRjkKK+mHuiA+IHFpxIFuOyAjOTFGQQor6Ye8ID4gamnDoG47ICM5MUZDCivph70gPiBwxKs7ICM5MUZECivph74gPiB5w6k7ICM5MUZFCivph78gPiB5w61uOyAjOTFGRgor6YiAID4gYsSDOyAjOTIwMAor6YiBID4gZsSBbmc7ICM5MjAxCivpiIIgPiBjaMOpbjsgIzkyMDIKK+mIgyA+IHjDrW5nOyAjOTIwMwor6YiEID4gdMWPdTsgIzkyMDQKK+mIhSA+IHl1w6g7ICM5MjA1CivpiIYgPiB5w6FuOyAjOTIwNgor6YiHID4gZsWrOyAjOTIwNwor6YiIID4gcMSrOyAjOTIwOAor6YiJID4gbsOgOyAjOTIwOQor6YiKID4geMSrbjsgIzkyMEEKK+mIiyA+IMOpOyAjOTIwQgor6YiMID4ganXDqTsgIzkyMEMKK+mIjSA+IGTDuW47ICM5MjBECivpiI4gPiBnxY11OyAjOTIwRQor6YiPID4gecStbjsgIzkyMEYKK+mIkCA+IHFpw6FuOyAjOTIxMAor6YiRID4gYsSDbjsgIzkyMTEKK+mIkiA+IGrDrTsgIzkyMTIKK+mIkyA+IHLDqW47ICM5MjEzCivpiJQgPiBjaMSBbzsgIzkyMTQKK+mIlSA+IG7ErXU7ICM5MjE1CivpiJYgPiBmxJNuOyAjOTIxNgor6YiXID4gecWtbjsgIzkyMTcKK+mImCA+IGrErTsgIzkyMTgKK+mImSA+IHHDrW47ICM5MjE5CivpiJogPiBww607ICM5MjFBCivpiJsgPiBnxatvOyAjOTIxQgor6YicID4gaMOzbmc7ICM5MjFDCivpiJ0gPiB5w61uOyAjOTIxRAor6YieID4gasWrbjsgIzkyMUUKK+mInyA+IHNoxKs7ICM5MjFGCivpiKAgPiB5w6w7ICM5MjIwCivpiKEgPiB6aMWNbmc7ICM5MjIxCivpiKIgPiBuacSTOyAjOTIyMgor6YijID4gZ8OgaTsgIzkyMjMKK+mIpCA+IHLDrDsgIzkyMjQKK+mIpSA+IGjDum87ICM5MjI1CivpiKYgPiB0w6BpOyAjOTIyNgor6YinID4ga8Ogbmc7ICM5MjI3CivpiKwgPiBkw7pvOyAjOTIyQwor6YitID4gesSrOyAjOTIyRAor6YiuID4gbsStOyAjOTIyRQor6YivID4gdMO6OyAjOTIyRgor6YiwID4gc2jDrDsgIzkyMzAKK+mIsSA+IG3DrW47ICM5MjMxCivpiLIgPiBnxas7ICM5MjMyCivpiLMgPiDEkzsgIzkyMzMKK+mItCA+IGzDrW5nOyAjOTIzNAor6Yi1ID4gYsOsbmc7ICM5MjM1CivpiLYgPiB5w607ICM5MjM2CivpiLcgPiBnxas7ICM5MjM3CivpiLggPiBiw6E7ICM5MjM4CivpiLkgPiBwxKs7ICM5MjM5CivpiLogPiB5w7k7ICM5MjNBCivpiLsgPiBzw6w7ICM5MjNCCivpiLwgPiB6w7pvOyAjOTIzQwor6Yi9ID4gYsO5OyAjOTIzRAor6Yi+ID4gecOzdTsgIzkyM0UKK+mIvyA+IGRpw6BuOyAjOTIzRgor6YmAID4gamnEgzsgIzkyNDAKK+mJgSA+IHpoxJNuOyAjOTI0MQor6YmCID4gc2jErTsgIzkyNDIKK+mJgyA+IHNow6w7ICM5MjQzCivpiYQgPiB0acSVOyAjOTI0NAor6YmFID4gasO5OyAjOTI0NQor6YmGID4gemjEgW47ICM5MjQ2CivpiYcgPiBzaMSrOyAjOTI0Nwor6YmIID4gc2jDqTsgIzkyNDgKK+mJiSA+IHh1w6BuOyAjOTI0OQor6YmKID4gemjEgW87ICM5MjRBCivpiYsgPiBiw6BvOyAjOTI0Qgor6YmMID4gaMOpOyAjOTI0Qwor6YmNID4gYsOsOyAjOTI0RAor6YmOID4gc2jEk25nOyAjOTI0RQor6YmPID4gY2jDujsgIzkyNEYKK+mJkCA+IHNow607ICM5MjUwCivpiZEgPiBiw7M7ICM5MjUxCivpiZIgPiB6aMO5OyAjOTI1Mgor6YmTID4gY2jDrDsgIzkyNTMKK+mJlCA+IHrEgTsgIzkyNTQKK+mJlSA+IHDFjTsgIzkyNTUKK+mJliA+IHTDs25nOyAjOTI1Ngor6YmXID4gcWnDoW47ICM5MjU3CivpiZggPiBmw7o7ICM5MjU4CivpiZkgPiB6aMSDaTsgIzkyNTkKK+mJmiA+IGzErXU7ICM5MjVBCivpiZsgPiBxacSBbjsgIzkyNUIKK+mJnCA+IGbDujsgIzkyNUMKK+mJnSA+IGzDrDsgIzkyNUQKK+mJniA+IHl1w6g7ICM5MjVFCivpiZ8gPiBwxKs7ICM5MjVGCivpiaAgPiB5xIFuZzsgIzkyNjAKK+mJoSA+IGLDoG47ICM5MjYxCivpiaIgPiBixY07ICM5MjYyCivpiaMgPiBqacOpOyAjOTI2Mwor6YmkID4gZ8WNdTsgIzkyNjQKK+mJpSA+IHNow7k7ICM5MjY1CivpiaYgPiB6aMSTbmc7ICM5MjY2CivpiacgPiBtxa07ICM5MjY3CivpiaggPiBuxK07ICM5MjY4CivpiakgPiBuacSTOyAjOTI2OQor6YmqID4gZMOsOyAjOTI2QQor6YmrID4gamnEgTsgIzkyNkIKK+mJrCA+IG3DuTsgIzkyNkMKK+mJrSA+IGTDoG47ICM5MjZECivpia4gPiBzaMSTbjsgIzkyNkUKK+mJryA+IHnErTsgIzkyNkYKK+mJsCA+IHPEqzsgIzkyNzAKK+mJsSA+IGt1w6BuZzsgIzkyNzEKK+mJsiA+IGvEgzsgIzkyNzIKK+mJsyA+IGLElWk7ICM5MjczCivpibQgPiBqacOgbjsgIzkyNzQKK+mJtSA+IHTDs25nOyAjOTI3NQor6Ym2ID4geMOtbmc7ICM5Mjc2CivpibcgPiBow7NuZzsgIzkyNzcKK+mJuCA+IGppxINvOyAjOTI3OAor6Ym5ID4gY2jErTsgIzkyNzkKK+mJuiA+IMOocjsgIzkyN0EKK+mJuyA+IGfDqDsgIzkyN0IKK+mJvCA+IGLErW5nOyAjOTI3Qwor6Ym9ID4gc2jDrDsgIzkyN0QKK+mJviA+IG3Ds3U7ICM5MjdFCivpib8gPiBqacOhOyAjOTI3Rgor6YqAID4gecOtbjsgIzkyODAKK+mKgSA+IGrFq247ICM5MjgxCivpioIgPiB6aMWNdTsgIzkyODIKK+mKgyA+IGNow7JuZzsgIzkyODMKK+mKhCA+IHNow6BuZzsgIzkyODQKK+mKhSA+IHTDs25nOyAjOTI4NQor6YqGID4gbcOyOyAjOTI4Ngor6YqHID4gbMOoaTsgIzkyODcKK+mKiCA+IGrEqzsgIzkyODgKK+mKiSA+IHnDuTsgIzkyODkKK+mKiiA+IHjDuTsgIzkyOEEKK+mKiyA+IHLDqW47ICM5MjhCCivpiowgPiB6w7luOyAjOTI4Qwor6YqNID4gemjDrDsgIzkyOEQKK+mKjiA+IHHEq29uZzsgIzkyOEUKK+mKjyA+IHNow6BuOyAjOTI4Rgor6YqQID4gY2jDrDsgIzkyOTAKK+mKkSA+IHhpxINuOyAjOTI5MQor6YqSID4geMOtbmc7ICM5MjkyCivpipMgPiBxdcOhbjsgIzkyOTMKK+mKlCA+IHDEqzsgIzkyOTQKK+mKlSA+IHRpxJU7ICM5Mjk1CivpipYgPiB6aMWrOyAjOTI5Ngor6YqXID4gaMOzdTsgIzkyOTcKK+mKmCA+IG3DrW5nOyAjOTI5OAor6YqZID4ga3XEgzsgIzkyOTkKK+mKmiA+IHnDoW87ICM5MjlBCivpipsgPiB4acSBbjsgIzkyOUIKK+mKnCA+IHhpw6FuOyAjOTI5Qwor6YqdID4geMSrdTsgIzkyOUQKK+mKniA+IGrFq247ICM5MjlFCivpip8gPiBjaMSBOyAjOTI5Rgor6YqgID4gbMSDbzsgIzkyQTAKK+mKoSA+IGrDrTsgIzkyQTEKK+mKoiA+IHDErTsgIzkyQTIKK+mKoyA+IHLFrTsgIzkyQTMKK+mKpCA+IG3ErTsgIzkyQTQKK+mKpSA+IHnErTsgIzkyQTUKK+mKpiA+IHnEq247ICM5MkE2CivpiqcgPiBndcSBbmc7ICM5MkE3CivpiqggPiDEgW47ICM5MkE4CivpiqkgPiBkacWNdTsgIzkyQTkKK+mKqiA+IHnFj3U7ICM5MkFBCivpiqsgPiBzw6g7ICM5MkFCCivpiqwgPiBrw6BvOyAjOTJBQwor6YqtID4gcWnDoW47ICM5MkFECivpiq4gPiBsdcOhbjsgIzkyQUUKK+mKsCA+IMSBaTsgIzkyQjAKK+mKsSA+IGRpw6BvOyAjOTJCMQor6YqyID4gaMOgbjsgIzkyQjIKK+mKsyA+IHLDuWk7ICM5MkIzCivpirQgPiBzaMOsOyAjOTJCNAor6Yq1ID4ga8STbmc7ICM5MkI1CivpirYgPiBxw611OyAjOTJCNgor6Yq3ID4geGnEgW87ICM5MkI3CivpirggPiB6aMOpOyAjOTJCOAor6Yq5ID4geMOsdTsgIzkyQjkKK+mKuiA+IHrDoG5nOyAjOTJCQQor6Yq7ID4gdMOsOyAjOTJCQgor6Yq8ID4gY8O5bzsgIzkyQkMKK+mKvSA+IGd1xIE7ICM5MkJECivpir4gPiBnxY9uZzsgIzkyQkUKK+mKvyA+IHpoxY1uZzsgIzkyQkYKK+mLgCA+IGTDsnU7ICM5MkMwCivpi4EgPiBsx5o7ICM5MkMxCivpi4IgPiBtw6lpOyAjOTJDMgor6YuDID4gbMOhbmc7ICM5MkMzCivpi4QgPiB3xINuOyAjOTJDNAor6YuFID4geMSrbjsgIzkyQzUKK+mLhiA+IHnDum47ICM5MkM2Civpi4cgPiBiw6hpOyAjOTJDNwor6YuIID4gd8O5OyAjOTJDOAor6YuJID4gc8O5OyAjOTJDOQor6YuKID4gecO5OyAjOTJDQQor6YuLID4gY2jDoW47ICM5MkNCCivpi4wgPiB0xK1uZzsgIzkyQ0MKK+mLjSA+IGLDszsgIzkyQ0QKK+mLjiA+IGjDoG47ICM5MkNFCivpi48gPiBqacOhOyAjOTJDRgor6YuQID4gaMOzbmc7ICM5MkQwCivpi5EgPiBjdcSBbjsgIzkyRDEKK+mLkiA+IGbEk25nOyAjOTJEMgor6YuTID4gY2jEgW47ICM5MkQzCivpi5QgPiB3xINuOyAjOTJENAor6YuVID4gemjDrDsgIzkyRDUKK+mLliA+IHPEqzsgIzkyRDYKK+mLlyA+IHh1xIFuOyAjOTJENwor6YuYID4gd8O6OyAjOTJEOAor6YuZID4gd8O6OyAjOTJEOQor6YuaID4gdGnDoW87ICM5MkRBCivpi5sgPiBnxY9uZzsgIzkyREIKK+mLnCA+IHpow7pvOyAjOTJEQwor6YudID4gbMecZTsgIzkyREQKK+mLniA+IHjDrW5nOyAjOTJERQor6YufID4gcWnEgW47ICM5MkRGCivpi6AgPiBzaMOobjsgIzkyRTAKK+mLoSA+IGjDoW47ICM5MkUxCivpi6IgPiBsx5xlOyAjOTJFMgor6YujID4geGnDqTsgIzkyRTMKK+mLpCA+IGNow7o7ICM5MkU0Civpi6UgPiB6aMOobmc7ICM5MkU1Civpi6YgPiBqw7o7ICM5MkU2Civpi6cgPiB4acOgbjsgIzkyRTcKK+mLqCA+IHRpxJU7ICM5MkU4Civpi6kgPiBtw6FuZzsgIzkyRTkKK+mLqiA+IHDFqzsgIzkyRUEKK+mLqyA+IGzDrTsgIzkyRUIKK+mLrCA+IHDDoG47ICM5MkVDCivpi60gPiByw7lpOyAjOTJFRAor6YuuID4gY2jDqW5nOyAjOTJFRQor6YuvID4gZ8OgbzsgIzkyRUYKK+mLsCA+IGzErTsgIzkyRjAKK+mLsSA+IHTDqDsgIzkyRjEKK+mLsyA+IHpow7k7ICM5MkYzCivpi7UgPiB0xas7ICM5MkY1Civpi7YgPiBsxK11OyAjOTJGNgor6Yu3ID4gesO5aTsgIzkyRjcKK+mLuCA+IGrDuTsgIzkyRjgKK+mLuSA+IGNoxINuZzsgIzkyRjkKK+mLuiA+IHl1xIFuOyAjOTJGQQor6Yu7ID4gamnDoG47ICM5MkZCCivpi7wgPiBnxIFuZzsgIzkyRkMKK+mLvSA+IGRpw6BvOyAjOTJGRAor6Yu+ID4gdMOhbzsgIzkyRkUKK+mLvyA+IGNow6FuZzsgIzkyRkYKK+mMgCA+IGzDum47ICM5MzAwCivpjIEgPiBrdcSDOyAjOTMwMQor6YyCID4gbMOtbmc7ICM5MzAyCivpjIMgPiBixJNpOyAjOTMwMwor6YyEID4gbMO5OyAjOTMwNAor6YyFID4gbMOtOyAjOTMwNQor6YyGID4gcWnEgW5nOyAjOTMwNgor6YyHID4gcMOzdTsgIzkzMDcKK+mMiCA+IGp1w6BuOyAjOTMwOAor6YyJID4gbcOtbjsgIzkzMDkKK+mMiiA+IHrDuWk7ICM5MzBBCivpjIsgPiBww6luZzsgIzkzMEIKK+mMjCA+IMOgbjsgIzkzMEMKK+mMjSA+IHDDrTsgIzkzMEQKK+mMjiA+IHhpw6BuOyAjOTMwRQor6YyPID4gecOgOyAjOTMwRgor6YyQID4gemjFq2k7ICM5MzEwCivpjJEgPiBsw6hpOyAjOTMxMQor6YySID4gxIE7ICM5MzEyCivpjJMgPiBrxY1uZzsgIzkzMTMKK+mMlCA+IHTDoDsgIzkzMTQKK+mMlSA+IGvFq247ICM5MzE1CivpjJYgPiBkxa07ICM5MzE2CivpjJcgPiB3w6hpOyAjOTMxNwor6YyYID4gY2jDumk7ICM5MzE4CivpjJkgPiB6xKs7ICM5MzE5CivpjJogPiB6aMSTbmc7ICM5MzFBCivpjJsgPiBixJNuOyAjOTMxQgor6YycID4gbmnEkzsgIzkzMUMKK+mMnSA+IGPDs25nOyAjOTMxRAor6YyeID4gccO6bjsgIzkzMUUKK+mMnyA+IHTDoW47ICM5MzFGCivpjKAgPiBkw6xuZzsgIzkzMjAKK+mMoSA+IHHDrTsgIzkzMjEKK+mMoiA+IHFpw6FuOyAjOTMyMgor6YyjID4gemjDum87ICM5MzIzCivpjKQgPiBxw607ICM5MzI0CivpjKUgPiB5w7k7ICM5MzI1CivpjKYgPiBqxK1uOyAjOTMyNgor6YynID4gZ3XEg247ICM5MzI3CivpjKggPiBtw6FvOyAjOTMyOAor6YypID4gY2jEgW5nOyAjOTMyOQor6YyqID4gdGnEg247ICM5MzJBCivpjKsgPiB4w607ICM5MzJCCivpjKwgPiBsacOgbjsgIzkzMkMKK+mMrSA+IHTDoW87ICM5MzJECivpjK4gPiBnw7k7ICM5MzJFCivpjK8gPiBjw7lvOyAjOTMyRgor6YywID4gc2jDuTsgIzkzMzAKK+mMsSA+IHpoxJNuOyAjOTMzMQor6YyyID4gbMO5OyAjOTMzMgor6YyzID4gbcSVbmc7ICM5MzMzCivpjLQgPiBsw7k7ICM5MzM0CivpjLUgPiBodcSBOyAjOTMzNQor6Yy2ID4gYmnEg287ICM5MzM2CivpjLcgPiBnw6E7ICM5MzM3CivpjLggPiBsw6FpOyAjOTMzOAor6Yy5ID4ga8SVbjsgIzkzMzkKK+mMvCA+IG7DoGk7ICM5MzNDCivpjL0gPiB3xINuOyAjOTMzRAor6Yy+ID4gesOgbjsgIzkzM0UKK+mNgCA+IGTDqTsgIzkzNDAKK+mNgSA+IHhpxIFuOyAjOTM0MQor6Y2DID4gaMWrbzsgIzkzNDMKK+mNhCA+IGxpw6BuZzsgIzkzNDQKK+mNhiA+IG3DqW47ICM5MzQ2CivpjYcgPiBrxINpOyAjOTM0Nwor6Y2IID4gecSrbmc7ICM5MzQ4CivpjYkgPiBkxKs7ICM5MzQ5CivpjYogPiBsacOgbjsgIzkzNEEKK+mNiyA+IGfFq287ICM5MzRCCivpjYwgPiB4acSDbjsgIzkzNEMKK+mNjSA+IGTDuTsgIzkzNEQKK+mNjiA+IHTDujsgIzkzNEUKK+mNjyA+IHfDqWk7ICM5MzRGCivpjZAgPiBjxY1uZzsgIzkzNTAKK+mNkSA+IGbDuTsgIzkzNTEKK+mNkiA+IHLDs3U7ICM5MzUyCivpjZMgPiBqw607ICM5MzUzCivpjZQgPiDDqDsgIzkzNTQKK+mNlSA+IHLDs3U7ICM5MzU1CivpjZYgPiBjaMSVbjsgIzkzNTYKK+mNlyA+IHTDrTsgIzkzNTcKK+mNmCA+IHpow6E7ICM5MzU4CivpjZkgPiBow7JuZzsgIzkzNTkKK+mNmiA+IHnDoW5nOyAjOTM1QQor6Y2bID4gZHXDoG47ICM5MzVCCivpjZwgPiB4acSBOyAjOTM1Qwor6Y2dID4gecO6OyAjOTM1RAor6Y2eID4ga8STbmc7ICM5MzVFCivpjZ8gPiB4xKtuZzsgIzkzNUYKK+mNoCA+IGh1w6FuZzsgIzkzNjAKK+mNoSA+IHfElWk7ICM5MzYxCivpjaIgPiBmw7k7ICM5MzYyCivpjaMgPiB6aMSBbzsgIzkzNjMKK+mNpCA+IGNow6E7ICM5MzY0CivpjaUgPiBxacOoOyAjOTM2NQor6Y2mID4gc2jDqTsgIzkzNjYKK+mNpyA+IGjFjW5nOyAjOTM2Nwor6Y2oID4ga8O6aTsgIzkzNjgKK+mNqSA+IHRpxINuOyAjOTM2OQor6Y2qID4gbcOzdTsgIzkzNkEKK+mNqyA+IHFpxIFvOyAjOTM2Qgor6Y2sID4gcWnEgW87ICM5MzZDCivpja0gPiBow7N1OyAjOTM2RAor6Y2uID4gdMWNdTsgIzkzNkUKK+mNryA+IGPFjW5nOyAjOTM2Rgor6Y2wID4gaHXDoW47ICM5MzcwCivpjbEgPiB5w6g7ICM5MzcxCivpjbIgPiBtw61uOyAjOTM3Mgor6Y2zID4gamnDoG47ICM5MzczCivpjbQgPiBkdcSBbjsgIzkzNzQKK+mNtSA+IGppw6BuOyAjOTM3NQor6Y22ID4gc8WNbmc7ICM5Mzc2CivpjbcgPiBrxatpOyAjOTM3Nwor6Y24ID4gaMO6OyAjOTM3OAor6Y25ID4geHXEgW47ICM5Mzc5CivpjbogPiBkxa1vOyAjOTM3QQor6Y27ID4gamnDqTsgIzkzN0IKK+mNvCA+IHpoxJNuOyAjOTM3Qwor6Y29ID4gYmnEgW47ICM5MzdECivpjb4gPiB6aMWNbmc7ICM5MzdFCivpjb8gPiB6xKs7ICM5MzdGCivpjoAgPiB4xKt1OyAjOTM4MAor6Y6BID4gecOpOyAjOTM4MQor6Y6CID4gbcSVaTsgIzkzODIKK+mOgyA+IHDDoGk7ICM5MzgzCivpjoQgPiDEgWk7ICM5Mzg0CivpjoUgPiBqacOoOyAjOTM4NQor6Y6HID4gbcOpaTsgIzkzODcKK+mOiCA+IGNoxatvOyAjOTM4OAor6Y6JID4gdMOgOyAjOTM4OQor6Y6KID4gYsOgbmc7ICM5MzhBCivpjosgPiB4acOhOyAjOTM4Qgor6Y6MID4gbGnDoW47ICM5MzhDCivpjo0gPiBzxa1vOyAjOTM4RAor6Y6OID4geMOsOyAjOTM4RQor6Y6PID4gbMOtdTsgIzkzOEYKK+mOkCA+IHrDujsgIzkzOTAKK+mOkSA+IHnDqDsgIzkzOTEKK+mOkiA+IG7DsnU7ICM5MzkyCivpjpMgPiB3xJNuZzsgIzkzOTMKK+mOlCA+IHLDs25nOyAjOTM5NAor6Y6VID4gdMOhbmc7ICM5Mzk1CivpjpYgPiBzxa1vOyAjOTM5Ngor6Y6XID4gcWnEgW5nOyAjOTM5Nwor6Y6YID4gZ8OpOyAjOTM5OAor6Y6ZID4gc2jDuW87ICM5Mzk5CivpjpogPiBjaMO6aTsgIzkzOUEKK+mOmyA+IGLDszsgIzkzOUIKK+mOnCA+IHDDoW47ICM5MzlDCivpjp0gPiBzw6A7ICM5MzlECivpjp4gPiBiw6w7ICM5MzlFCivpjp8gPiBzxINuZzsgIzkzOUYKK+mOoCA+IGfEgW5nOyAjOTNBMAor6Y6hID4gesSrOyAjOTNBMQor6Y6iID4gd8O5OyAjOTNBMgor6Y6jID4gecOsbmc7ICM5M0EzCivpjqQgPiBodcSDbmc7ICM5M0E0CivpjqUgPiB0acOhbzsgIzkzQTUKK+mOpiA+IGzDrXU7ICM5M0E2CivpjqcgPiBrxINpOyAjOTNBNwor6Y6oID4gc8WtbjsgIzkzQTgKK+mOqSA+IHNoxIE7ICM5M0E5CivpjqogPiBzxY11OyAjOTNBQQor6Y6rID4gd8OgbjsgIzkzQUIKK+mOrCA+IGjDoG87ICM5M0FDCivpjq0gPiB6aMOobjsgIzkzQUQKK+mOriA+IHpow6huOyAjOTNBRQor6Y6vID4gbMWtbzsgIzkzQUYKK+mOsCA+IHnDrDsgIzkzQjAKK+mOsSA+IHl1w6FuOyAjOTNCMQor6Y6yID4gdMSDbmc7ICM5M0IyCivpjrMgPiBuacOoOyAjOTNCMwor6Y60ID4geMOtOyAjOTNCNAor6Y61ID4gamnEgTsgIzkzQjUKK+mOtiA+IGfEkzsgIzkzQjYKK+mOtyA+IG3EgzsgIzkzQjcKK+mOuCA+IGp1xIFuOyAjOTNCOAor6Y67ID4gc8WtbzsgIzkzQkIKK+mOvyA+IG7DoTsgIzkzQkYKK+mPgCA+IGzFrTsgIzkzQzAKK+mPgSA+IHPFrW87ICM5M0MxCivpj4IgPiDFjXU7ICM5M0MyCivpj4MgPiB6w7o7ICM5M0MzCivpj4QgPiB0dcOhbjsgIzkzQzQKK+mPhSA+IHjEq3U7ICM5M0M1Civpj4YgPiBndcOgbjsgIzkzQzYKK+mPhyA+IHh1w6BuOyAjOTNDNwor6Y+IID4gbGnDoG47ICM5M0M4Civpj4kgPiBzaMOydTsgIzkzQzkKK+mPiiA+IMOhbzsgIzkzQ0EKK+mPiyA+IG3Eg247ICM5M0NCCivpj4wgPiBtw7I7ICM5M0NDCivpj40gPiBsw7pvOyAjOTNDRAor6Y+OID4gYsOsOyAjOTNDRQor6Y+PID4gd8OoaTsgIzkzQ0YKK+mPkCA+IGzDrXU7ICM5M0QwCivpj5EgPiBkw607ICM5M0QxCivpj5IgPiBxacSBbzsgIzkzRDIKK+mPkyA+IGPFjW5nOyAjOTNEMwor6Y+UID4gecOtOyAjOTNENAor6Y+VID4gbMO5OyAjOTNENQor6Y+WID4gw6FvOyAjOTNENgor6Y+XID4ga8STbmc7ICM5M0Q3Civpj5ggPiBxacSBbmc7ICM5M0Q4Civpj5kgPiBjxatpOyAjOTNEOQor6Y+aID4gccOsOyAjOTNEQQor6Y+bID4gY2jDoW5nOyAjOTNEQgor6Y+cID4gdMSBbmc7ICM5M0RDCivpj50gPiBtw6BuOyAjOTNERAor6Y+eID4gecWNbmc7ICM5M0RFCivpj58gPiBjaMSDbjsgIzkzREYKK+mPoCA+IGbEk25nOyAjOTNFMAor6Y+hID4gasOsbmc7ICM5M0UxCivpj6IgPiBiacSBbzsgIzkzRTIKK+mPoyA+IHNow7k7ICM5M0UzCivpj6QgPiBsw7J1OyAjOTNFNAor6Y+lID4geMOsdTsgIzkzRTUKK+mPpiA+IGPFjW5nOyAjOTNFNgor6Y+nID4gbMOzbmc7ICM5M0U3Civpj6ggPiB6w6BuOyAjOTNFOAor6Y+pID4gamnDoG47ICM5M0U5Civpj6ogPiBjw6FvOyAjOTNFQQor6Y+rID4gbMOtOyAjOTNFQgor6Y+sID4geGnDoDsgIzkzRUMKK+mPrSA+IHjEqzsgIzkzRUQKK+mPriA+IGvEgW5nOyAjOTNFRQor6Y+wID4gYsOobmc7ICM5M0YwCivpj7MgPiB6aMSTbmc7ICM5M0YzCivpj7QgPiBsw7k7ICM5M0Y0Civpj7UgPiBodcOhOyAjOTNGNQor6Y+2ID4gasOtOyAjOTNGNgor6Y+3ID4gcMO6OyAjOTNGNwor6Y+4ID4gaMO5aTsgIzkzRjgKK+mPuSA+IHFpxIFuZzsgIzkzRjkKK+mPuiA+IHDFjTsgIzkzRkEKK+mPuyA+IGzDrW47ICM5M0ZCCivpj7wgPiBzxa1vOyAjOTNGQwor6Y+9ID4geMOsdTsgIzkzRkQKK+mPviA+IHPEg247ICM5M0ZFCivpj78gPiBjaMSTbmc7ICM5M0ZGCivpkIAgPiBrw7lpOyAjOTQwMAor6ZCBID4gc8SrOyAjOTQwMQor6ZCCID4gbMOsdTsgIzk0MDIKK+mQgyA+IG7DoW87ICM5NDAzCivpkIQgPiBow6luZzsgIzk0MDQKK+mQhSA+IHBpxJU7ICM5NDA1CivpkIYgPiBzw7lpOyAjOTQwNgor6ZCHID4gZsOhbjsgIzk0MDcKK+mQiCA+IHFpw6FvOyAjOTQwOAor6ZCJID4gcXXEgW47ICM5NDA5CivpkIogPiB5w6FuZzsgIzk0MEEKK+mQiyA+IHTDoG5nOyAjOTQwQgor6ZCMID4geGnDoG5nOyAjOTQwQwor6ZCNID4ganXDqTsgIzk0MEQKK+mQjiA+IGppxIFvOyAjOTQwRQor6ZCPID4gesWrbjsgIzk0MEYKK+mQkCA+IGxpw6FvOyAjOTQxMAor6ZCRID4gamnDqTsgIzk0MTEKK+mQkiA+IGzDoW87ICM5NDEyCivpkJMgPiBkw7lpOyAjOTQxMwor6ZCUID4gdMOhbjsgIzk0MTQKK+mQlSA+IHrEgW47ICM5NDE1CivpkJYgPiBqxKs7ICM5NDE2CivpkJcgPiBqacSDbjsgIzk0MTcKK+mQmCA+IHpoxY1uZzsgIzk0MTgKK+mQmSA+IGTEk25nOyAjOTQxOQor6ZCaID4gecOgOyAjOTQxQQor6ZCbID4gecOsbmc7ICM5NDFCCivpkJwgPiBkw7lpOyAjOTQxQwor6ZCdID4ganXDqTsgIzk0MUQKK+mQniA+IG7DsnU7ICM5NDFFCivpkJ8gPiB0w6w7ICM5NDFGCivpkKAgPiBwxa07ICM5NDIwCivpkKEgPiB0acSVOyAjOTQyMQor6ZCkID4gZMStbmc7ICM5NDI0CivpkKUgPiBzaMOgbjsgIzk0MjUKK+mQpiA+IGvEgWk7ICM5NDI2CivpkKcgPiBqacSDbjsgIzk0MjcKK+mQqCA+IGbDqGk7ICM5NDI4CivpkKkgPiBzw7lpOyAjOTQyOQor6ZCqID4gbMWtOyAjOTQyQQor6ZCrID4ganXEgW47ICM5NDJCCivpkKwgPiBow7lpOyAjOTQyQwor6ZCtID4gecO5OyAjOTQyRAor6ZCuID4gbGnDoW47ICM5NDJFCivpkK8gPiB6aMO6bzsgIzk0MkYKK+mQsCA+IHFpxIFvOyAjOTQzMAor6ZCxID4gcWnEgW47ICM5NDMxCivpkLIgPiB6aMO6bzsgIzk0MzIKK+mQsyA+IGzDqWk7ICM5NDMzCivpkLQgPiBiw6w7ICM5NDM0CivpkLUgPiB0acSVOyAjOTQzNQor6ZC2ID4gaHXDoW47ICM5NDM2CivpkLcgPiB5w6g7ICM5NDM3CivpkLggPiBkw7pvOyAjOTQzOAor6ZC5ID4gZ8WtbzsgIzk0MzkKK+mQuiA+IGTEgW5nOyAjOTQzQQor6ZC7ID4gasO5OyAjOTQzQgor6ZC8ID4gZsOpbjsgIzk0M0MKK+mQvSA+IGTDoTsgIzk0M0QKK+mQviA+IGLDqGk7ICM5NDNFCivpkL8gPiB5w6w7ICM5NDNGCivpkYAgPiDDoGk7ICM5NDQwCivpkYEgPiB6xY1uZzsgIzk0NDEKK+mRgiA+IHjDuW47ICM5NDQyCivpkYMgPiBkacOgbzsgIzk0NDMKK+mRhCA+IHpow7k7ICM5NDQ0CivpkYUgPiBow6luZzsgIzk0NDUKK+mRhiA+IHpow7lpOyAjOTQ0Ngor6ZGHID4gasSrOyAjOTQ0Nwor6ZGIID4gbmnEkzsgIzk0NDgKK+mRiSA+IHTDoDsgIzk0NDkKK+mRiiA+IGjDuW87ICM5NDRBCivpkYsgPiBxw6xuZzsgIzk0NEIKK+mRjCA+IGLEq247ICM5NDRDCivpkY0gPiB5xKtuZzsgIzk0NEQKK+mRjiA+IGvDuWk7ICM5NDRFCivpkY8gPiBuw61uZzsgIzk0NEYKK+mRkCA+IHjFqzsgIzk0NTAKK+mRkSA+IGppw6BuOyAjOTQ1MQor6ZGSID4gamnDoG47ICM5NDUyCivpkZQgPiBjaMSDOyAjOTQ1NAor6ZGVID4gemjDrDsgIzk0NTUKK+mRliA+IG1pw6g7ICM5NDU2CivpkZcgPiBsw607ICM5NDU3CivpkZggPiBsw6lpOyAjOTQ1OAor6ZGZID4gasSrOyAjOTQ1OQor6ZGaID4genXDoG47ICM5NDVBCivpkZsgPiBrdcOgbmc7ICM5NDVCCivpkZwgPiBzaMOgbmc7ICM5NDVDCivpkZ0gPiBww6luZzsgIzk0NUQKK+mRniA+IGzDoDsgIzk0NUUKK+mRnyA+IGTDujsgIzk0NUYKK+mRoCA+IHNow7lvOyAjOTQ2MAor6ZGhID4gY2jDuW87ICM5NDYxCivpkaIgPiBsx5w7ICM5NDYyCivpkaMgPiBiacSBbzsgIzk0NjMKK+mRpCA+IGLDoG87ICM5NDY0CivpkaUgPiBsxa07ICM5NDY1CivpkaggPiBsw7NuZzsgIzk0NjgKK+mRqSA+IMOoOyAjOTQ2OQor6ZGqID4gbMO6OyAjOTQ2QQor6ZGrID4geMSrbjsgIzk0NkIKK+mRrCA+IGppw6BuOyAjOTQ2Qwor6ZGtID4gbMOgbjsgIzk0NkQKK+mRriA+IGLDszsgIzk0NkUKK+mRryA+IGppxIFuOyAjOTQ2Rgor6ZGwID4gecOgbzsgIzk0NzAKK+mRsSA+IGNow6FuOyAjOTQ3MQor6ZGyID4geGnEgW5nOyAjOTQ3Mgor6ZGzID4gamnDoG47ICM5NDczCivpkbQgPiB4xKs7ICM5NDc0CivpkbUgPiBndcOgbjsgIzk0NzUKK+mRtiA+IGPDoW5nOyAjOTQ3Ngor6ZG3ID4gbmnDqDsgIzk0NzcKK+mRuCA+IGzElWk7ICM5NDc4CivpkbkgPiBjdcOgbjsgIzk0NzkKK+mRuiA+IHHDujsgIzk0N0EKK+mRuyA+IHDDoG47ICM5NDdCCivpkbwgPiBsw7pvOyAjOTQ3Qwor6ZG9ID4genXDoG47ICM5NDdECivpkb4gPiBsdcOhbjsgIzk0N0UKK+mRvyA+IHrDoW87ICM5NDdGCivpkoAgPiBuacOoOyAjOTQ4MAor6ZKBID4ganXDqTsgIzk0ODEKK+mSgiA+IHTEg25nOyAjOTQ4Mgor6ZKDID4gc2jFrTsgIzk0ODMKK+mShCA+IGzDoW47ICM5NDg0CivpkoUgPiBqxKtuOyAjOTQ4NQor6ZKGID4gccOtdTsgIzk0ODYKK+mShyA+IHnErTsgIzk0ODcKK+mSiCA+IHpoxJNuOyAjOTQ4OAor6ZKJID4gZMSrbmc7ICM5NDg5CivpkoogPiB6aMSBbzsgIzk0OEEKK+mSiyA+IHDDsjsgIzk0OEIKK+mSjCA+IGRpxINvOyAjOTQ4Qwor6ZKNID4gdMWtOyAjOTQ4RAor6ZKOID4gcWnEgW47ICM5NDhFCivpko8gPiBjaHXDoG47ICM5NDhGCivpkpAgPiBzaMOgbjsgIzk0OTAKK+mSkSA+IGrDrTsgIzk0OTEKK+mSkiA+IGbDoW47ICM5NDkyCivpkpMgPiBkacOgbzsgIzk0OTMKK+mSlCA+IG3DqW47ICM5NDk0CivpkpUgPiBux5o7ICM5NDk1CivpkpYgPiB4w607ICM5NDk2CivpkpcgPiBjaMSBaTsgIzk0OTcKK+mSmCA+IHjDrW5nOyAjOTQ5OAor6ZKZID4gZ8OgaTsgIzk0OTkKK+mSmiA+IGLDuTsgIzk0OUEKK+mSmyA+IHTDoGk7ICM5NDlCCivpkpwgPiBqw7k7ICM5NDlDCivpkp0gPiBkw7luOyAjOTQ5RAor6ZKeID4gY2jEgW87ICM5NDlFCivpkp8gPiB6aMWNbmc7ICM5NDlGCivpkqAgPiBuw6A7ICM5NEEwCivpkqEgPiBiw6hpOyAjOTRBMQor6ZKiID4gZ8SBbmc7ICM5NEEyCivpkqMgPiBixINuOyAjOTRBMwor6ZKkID4gcWnDoW47ICM5NEE0CivpkqUgPiB5w6BvOyAjOTRBNQor6ZKmID4gccSrbjsgIzk0QTYKK+mSpyA+IGrFq247ICM5NEE3CivpkqggPiB3w7k7ICM5NEE4CivpkqkgPiBnxY11OyAjOTRBOQor6ZKqID4ga8Ogbmc7ICM5NEFBCivpkqsgPiBmxIFuZzsgIzk0QUIKK+mSrCA+IGjDum87ICM5NEFDCivpkq0gPiB0xY91OyAjOTRBRAor6ZKuID4gbsStdTsgIzk0QUUKK+mSryA+IGLEgzsgIzk0QUYKK+mSsCA+IHnDuTsgIzk0QjAKK+mSsSA+IHFpw6FuOyAjOTRCMQor6ZKyID4gemjEk25nOyAjOTRCMgor6ZKzID4gcWnDoW47ICM5NEIzCivpkrQgPiBnxas7ICM5NEI0CivpkrUgPiBixY07ICM5NEI1CivpkrYgPiDEkzsgIzk0QjYKK+mStyA+IHDFjTsgIzk0QjcKK+mSuCA+IGLDuTsgIzk0QjgKK+mSuSA+IGLDoTsgIzk0QjkKK+mSuiA+IHl1w6g7ICM5NEJBCivpkrsgPiB6dcOgbjsgIzk0QkIKK+mSvCA+IG3DuTsgIzk0QkMKK+mSvSA+IGTDoG47ICM5NEJECivpkr4gPiBqacSDOyAjOTRCRQor6ZK/ID4gZGnDoG47ICM5NEJGCivpk4AgPiB5w7N1OyAjOTRDMAor6ZOBID4gdGnElTsgIzk0QzEKK+mTgiA+IGLDszsgIzk0QzIKK+mTgyA+IGzDrW5nOyAjOTRDMwor6ZOEID4gc2jDuW87ICM5NEM0Civpk4UgPiBxacSBbjsgIzk0QzUKK+mThiA+IGzErXU7ICM5NEM2Civpk4cgPiBiw6BvOyAjOTRDNwor6ZOIID4gc2jDrDsgIzk0QzgKK+mTiSA+IHh1w6BuOyAjOTRDOQor6ZOKID4gc2jDqTsgIzk0Q0EKK+mTiyA+IGLDrDsgIzk0Q0IKK+mTjCA+IG7ErTsgIzk0Q0MKK+mTjSA+IHDEqzsgIzk0Q0QKK+mTjiA+IGTDum87ICM5NENFCivpk48gPiB4w61uZzsgIzk0Q0YKK+mTkCA+IGvDoG87ICM5NEQwCivpk5EgPiBsxINvOyAjOTREMQor6ZOSID4gw6hyOyAjOTREMgor6ZOTID4gbcOhbmc7ICM5NEQzCivpk5QgPiB5w6A7ICM5NEQ0Civpk5UgPiB5xY91OyAjOTRENQor6ZOWID4gY2jDqW5nOyAjOTRENgor6ZOXID4gamnDoTsgIzk0RDcKK+mTmCA+IHnDqTsgIzk0RDgKK+mTmSA+IG7DoW87ICM5NEQ5Civpk5ogPiB6aMOsOyAjOTREQQor6ZObID4gZMSBbmc7ICM5NERCCivpk5wgPiB0w7NuZzsgIzk0REMKK+mTnSA+IGzHmjsgIzk0REQKK+mTniA+IGRpw6BvOyAjOTRERQor6ZOfID4gecSrbjsgIzk0REYKK+mToCA+IGvEg2k7ICM5NEUwCivpk6EgPiB6aMOhOyAjOTRFMQor6ZOiID4gemjFqzsgIzk0RTIKK+mToyA+IHhpxINuOyAjOTRFMwor6ZOkID4gdMStbmc7ICM5NEU0Civpk6UgPiBkxKt1OyAjOTRFNQor6ZOmID4geGnEgW47ICM5NEU2Civpk6cgPiBodcOhOyAjOTRFNwor6ZOoID4gcXXDoW47ICM5NEU4Civpk6kgPiBzaMSBOyAjOTRFOQor6ZOqID4gamnDoTsgIzk0RUEKK+mTqyA+IHnDoW87ICM5NEVCCivpk6wgPiBnw6g7ICM5NEVDCivpk60gPiBtw61uZzsgIzk0RUQKK+mTriA+IHpoxJNuZzsgIzk0RUUKK+mTryA+IHPDqDsgIzk0RUYKK+mTsCA+IGppxINvOyAjOTRGMAor6ZOxID4gecStOyAjOTRGMQor6ZOyID4gY2jEg247ICM5NEYyCivpk7MgPiBjaMOybmc7ICM5NEYzCivpk7QgPiB0w6BuZzsgIzk0RjQKK+mTtSA+IMSBbjsgIzk0RjUKK+mTtiA+IHnDrW47ICM5NEY2Civpk7cgPiByxa07ICM5NEY3Civpk7ggPiB6aMO5OyAjOTRGOAor6ZO5ID4gbMOhbzsgIzk0RjkKK+mTuiA+IHDFqzsgIzk0RkEKK+mTuyA+IHfDujsgIzk0RkIKK+mTvCA+IGzDoWk7ICM5NEZDCivpk70gPiB0w6g7ICM5NEZECivpk74gPiBsacOgbjsgIzk0RkUKK+mTvyA+IGvEk25nOyAjOTRGRgor6ZSAID4geGnEgW87ICM5NTAwCivplIEgPiBzxa1vOyAjOTUwMQor6ZSCID4gbMStOyAjOTUwMgor6ZSDID4gemjDqG5nOyAjOTUwMwor6ZSEID4gY2jDujsgIzk1MDQKK+mUhSA+IGfFq287ICM5NTA1CivplIYgPiBnw6BvOyAjOTUwNgor6ZSHID4gdGnElTsgIzk1MDcKK+mUiCA+IHjDrHU7ICM5NTA4CivplIkgPiBjw7lvOyAjOTUwOQor6ZSKID4gbMecZTsgIzk1MEEKK+mUiyA+IGbEk25nOyAjOTUwQgor6ZSMID4geMSrbjsgIzk1MEMKK+mUjSA+IGzErXU7ICM5NTBECivplI4gPiBrxIFpOyAjOTUwRQor6ZSPID4gamnEg247ICM5NTBGCivplJAgPiByw7lpOyAjOTUxMAor6ZSRID4gdMOsOyAjOTUxMQor6ZSSID4gbMOhbmc7ICM5NTEyCivplJMgPiBxacSBbjsgIzk1MTMKK+mUlCA+IGrDujsgIzk1MTQKK+mUlSA+IMSBOyAjOTUxNQor6ZSWID4gcWnEgW5nOyAjOTUxNgor6ZSXID4gZMWtbzsgIzk1MTcKK+mUmCA+IHRpxINuOyAjOTUxOAor6ZSZID4gY8O5bzsgIzk1MTkKK+mUmiA+IG3DoW87ICM5NTFBCivplJsgPiBixJNuOyAjOTUxQgor6ZScID4gccOtOyAjOTUxQwor6ZSdID4gZMOpOyAjOTUxRAor6ZSeID4ga3XEgzsgIzk1MUUKK+mUnyA+IGvFq247ICM5NTFGCivplKAgPiBjaMSBbmc7ICM5NTIwCivplKEgPiB4w607ICM5NTIxCivplKIgPiBnw7k7ICM5NTIyCivplKMgPiBsw7pvOyAjOTUyMwor6ZSkID4gY2jDumk7ICM5NTI0CivplKUgPiB6aMWraTsgIzk1MjUKK+mUpiA+IGrErW47ICM5NTI2CivplKcgPiB6aMOsOyAjOTUyNwor6ZSoID4geGnEgW47ICM5NTI4CivplKkgPiBqdcOgbjsgIzk1MjkKK+mUqiA+IGjFq287ICM5NTJBCivplKsgPiBww7N1OyAjOTUyQgor6ZSsID4gdMOhbjsgIzk1MkMKK+mUrSA+IGTDrG5nOyAjOTUyRAor6ZSuID4gamnDoG47ICM5NTJFCivplK8gPiBqw7k7ICM5NTJGCivplLAgPiBtxJVuZzsgIzk1MzAKK+mUsSA+IHrEqzsgIzk1MzEKK+mUsiA+IHFpw6g7ICM5NTMyCivplLMgPiB5xKtuZzsgIzk1MzMKK+mUtCA+IGvEg2k7ICM5NTM0CivplLUgPiBxacSBbmc7ICM5NTM1CivplLYgPiBzxY1uZzsgIzk1MzYKK+mUtyA+IMOoOyAjOTUzNwor6ZS4ID4gY2jDoTsgIzk1MzgKK+mUuSA+IHFpxIFvOyAjOTUzOQor6ZS6ID4gemjFjW5nOyAjOTUzQQor6ZS7ID4gZHXDoG47ICM5NTNCCivplLwgPiBzxY11OyAjOTUzQwor6ZS9ID4gaHXDoW5nOyAjOTUzRAor6ZS+ID4gaHXDoW47ICM5NTNFCivplL8gPiDEgWk7ICM5NTNGCivplYAgPiBkw7k7ICM5NTQwCivplYEgPiBtxJVpOyAjOTU0MQor6ZWCID4gbMOydTsgIzk1NDIKK+mVgyA+IHrEqzsgIzk1NDMKK+mVhCA+IGbDqGk7ICM5NTQ0CivplYUgPiBtw6lpOyAjOTU0NQor6ZWGID4gbcOyOyAjOTU0Ngor6ZWHID4gemjDqG47ICM5NTQ3CivplYggPiBiw7M7ICM5NTQ4CivplYkgPiBnw6k7ICM5NTQ5CivplYogPiBuacOoOyAjOTU0QQor6ZWLID4gdMSDbmc7ICM5NTRCCivplYwgPiBqdcSBbjsgIzk1NEMKK+mVjSA+IG5pw6g7ICM5NTRECivplY4gPiBuw6E7ICM5NTRFCivplY8gPiBsw611OyAjOTU0Rgor6ZWQID4gaMOgbzsgIzk1NTAKK+mVkSA+IGLDoG5nOyAjOTU1MQor6ZWSID4gecOsOyAjOTU1Mgor6ZWTID4gamnEgTsgIzk1NTMKK+mVlCA+IGLEq247ICM5NTU0CivplZUgPiByw7NuZzsgIzk1NTUKK+mVliA+IGJpxIFvOyAjOTU1Ngor6ZWXID4gdMSBbmc7ICM5NTU3CivplZggPiBtw6BuOyAjOTU1OAor6ZWZID4gbMO6bzsgIzk1NTkKK+mVmiA+IGLDqG5nOyAjOTU1QQor6ZWbID4gecWNbmc7ICM5NTVCCivplZwgPiBqw6xuZzsgIzk1NUMKK+mVnSA+IGTDrTsgIzk1NUQKK+mVniA+IHrDujsgIzk1NUUKK+mVnyA+IHh1w6BuOyAjOTU1Rgor6ZWgID4gbMOtdTsgIzk1NjAKK+mVoSA+IHTDoW47ICM5NTYxCivplaIgPiBqdcOpOyAjOTU2Mgor6ZWjID4gbGnDoW87ICM5NTYzCivplaQgPiBww7o7ICM5NTY0CivplaUgPiBsxa07ICM5NTY1CivplaYgPiBkw7lpOyAjOTU2Ngor6ZWnID4gbMOgbjsgIzk1NjcKK+mVqCA+IHDFrTsgIzk1NjgKK+mVqSA+IGN1w6BuOyAjOTU2OQor6ZWqID4gcWnEgW5nOyAjOTU2QQor6ZWrID4gZMSTbmc7ICM5NTZCCivplawgPiBow7lvOyAjOTU2Qwor6ZWtID4gbMOpaTsgIzk1NkQKK+mVriA+IGh1w6FuOyAjOTU2RQor6ZWvID4gemjDum87ICM5NTZGCivplbAgPiBsacOhbjsgIzk1NzAKK+mVsSA+IHnDrDsgIzk1NzEKK+mVsiA+IGNoxIM7ICM5NTcyCivplbMgPiBiacSBbzsgIzk1NzMKK+mVtCA+IGzDoDsgIzk1NzQKK+mVtSA+IGNow6FuOyAjOTU3NQor6ZW2ID4geGnEgW5nOyAjOTU3Ngor6ZW3ID4gY2jDoW5nOyAjOTU3Nwor6ZW4ID4gY2jDoW5nOyAjOTU3OAor6ZW5ID4gasStdTsgIzk1NzkKK+mVuiA+IMSDbzsgIzk1N0EKK+mVuyA+IGRpw6k7ICM5NTdCCivplbwgPiBxxas7ICM5NTdDCivplb0gPiBsacSDbzsgIzk1N0QKK+mVviA+IG3DrTsgIzk1N0UKK+mVvyA+IGNow6FuZzsgIzk1N0YKK+mWgCA+IG3DqW47ICM5NTgwCivploEgPiBtw6A7ICM5NTgxCivploIgPiBzaHXEgW47ICM5NTgyCivploMgPiBzaMSDbjsgIzk1ODMKK+mWhCA+IGjDuW87ICM5NTg0CivploUgPiBtw6luOyAjOTU4NQor6ZaGID4gecOgbjsgIzk1ODYKK+mWhyA+IGLDrDsgIzk1ODcKK+mWiCA+IGjDoG47ICM5NTg4CivplokgPiBiw6w7ICM5NTg5CivplosgPiBrxIFpOyAjOTU4Qgor6ZaMID4ga8Ogbmc7ICM5NThDCivplo0gPiBixJNuZzsgIzk1OEQKK+mWjiA+IGjDs25nOyAjOTU4RQor6ZaPID4gcsO5bjsgIzk1OEYKK+mWkCA+IHPDoG47ICM5NTkwCivplpEgPiB4acOhbjsgIzk1OTEKK+mWkiA+IHhpw6FuOyAjOTU5Mgor6ZaTID4gamnEgW47ICM5NTkzCivplpQgPiBtxK1uOyAjOTU5NAor6ZaVID4geGnEgTsgIzk1OTUKK+mWlyA+IGTDsnU7ICM5NTk3CivplpggPiB6aMOhOyAjOTU5OAor6ZaZID4gbsOgbzsgIzk1OTkKK+mWmiA+IGppYW47ICM5NTlBCivplpsgPiBwxJNuZzsgIzk1OUIKK+mWnCA+IHhpxIM7ICM5NTlDCivplp0gPiBsw61uZzsgIzk1OUQKK+mWniA+IGJpw6BuOyAjOTU5RQor6ZafID4gYsOsOyAjOTU5Rgor6ZagID4gcsO5bjsgIzk1QTAKK+mWoSA+IGjDqTsgIzk1QTEKK+mWoiA+IGd1xIFuOyAjOTVBMgor6ZajID4gZ8OpOyAjOTVBMwor6ZakID4gZ8OpOyAjOTVBNAor6ZalID4gZsOhOyAjOTVBNQor6ZamID4gY2jDuTsgIzk1QTYKK+mWpyA+IGjDsm5nOyAjOTVBNwor6ZaoID4gZ8WraTsgIzk1QTgKK+mWqSA+IG3ErW47ICM5NUE5CivplqsgPiBrxa1uOyAjOTVBQgor6ZasID4gbMSDbmc7ICM5NUFDCivplq0gPiBsx5g7ICM5NUFECivplq4gPiB0w61uZzsgIzk1QUUKK+mWryA+IHNow6A7ICM5NUFGCivplrAgPiBqw7o7ICM5NUIwCivplrEgPiB5dcOoOyAjOTVCMQor6ZayID4geXXDqDsgIzk1QjIKK+mWsyA+IGNoxINuOyAjOTVCMwor6Za0ID4gccO5OyAjOTVCNAor6Za1ID4gbMOsbjsgIzk1QjUKK+mWtiA+IGNoxIFuZzsgIzk1QjYKK+mWtyA+IHNow6BpOyAjOTVCNwor6Za4ID4ga8WtbjsgIzk1QjgKK+mWuSA+IHnEgW47ICM5NUI5CivplrogPiBtw61uOyAjOTVCQQor6Za7ID4gecOhbjsgIzk1QkIKK+mWvCA+IMOoOyAjOTVCQwor6Za9ID4gaMWrbjsgIzk1QkQKK+mWviA+IHnDuTsgIzk1QkUKK+mWvyA+IHfDqW47ICM5NUJGCivpl4AgPiB4acOgbmc7ICM5NUMwCivpl4EgPiBiYW87ICM5NUMxCivpl4IgPiB4acOgbmc7ICM5NUMyCivpl4MgPiBxw7k7ICM5NUMzCivpl4QgPiB5xINvOyAjOTVDNAor6ZeFID4gd8OpbjsgIzk1QzUKK+mXhiA+IGLEg247ICM5NUM2Civpl4cgPiDDoG47ICM5NUM3Civpl4ggPiB3w6lpOyAjOTVDOAor6ZeJID4gecSrbjsgIzk1QzkKK+mXiiA+IGvDuW87ICM5NUNBCivpl4sgPiBxdcOoOyAjOTVDQgor6ZeMID4gbMOhbjsgIzk1Q0MKK+mXjSA+IGTFqzsgIzk1Q0QKK+mXkCA+IHRpw6FuOyAjOTVEMAor6ZeRID4gbmnDqDsgIzk1RDEKK+mXkiA+IHTDoDsgIzk1RDIKK+mXkyA+IGvEg2k7ICM5NUQzCivpl5QgPiBow6k7ICM5NUQ0Civpl5UgPiBxdcOoOyAjOTVENQor6ZeWID4gY2h1xINuZzsgIzk1RDYKK+mXlyA+IGd1xIFuOyAjOTVENwor6ZeYID4gZMOydTsgIzk1RDgKK+mXmSA+IHHErTsgIzk1RDkKK+mXmiA+IGvFq2k7ICM5NURBCivpl5sgPiB0w6FuZzsgIzk1REIKK+mXnCA+IGd1xIFuOyAjOTVEQwor6ZedID4gcGnDoW87ICM5NURECivpl54gPiBrw6BuOyAjOTVERQor6ZefID4geMOsOyAjOTVERgor6ZegID4gaMO5aTsgIzk1RTAKK+mXoSA+IGNoxINuOyAjOTVFMQor6ZeiID4gcMOsOyAjOTVFMgor6ZejID4gZMOgbmc7ICM5NUUzCivpl6QgPiBodcOhbjsgIzk1RTQKK+mXpSA+IHTDoDsgIzk1RTUKK+mXpiA+IHfDqW47ICM5NUU2Civpl6ggPiBtw6luOyAjOTVFOAor6ZepID4gc2h1xIFuOyAjOTVFOQor6ZeqID4gc2jEg247ICM5NUVBCivpl6sgPiB5w6BuOyAjOTVFQgor6ZesID4gaMOgbjsgIzk1RUMKK+mXrSA+IGLDrDsgIzk1RUQKK+mXriA+IHfDqG47ICM5NUVFCivpl68gPiBjaHXEg25nOyAjOTVFRgor6ZewID4gcsO5bjsgIzk1RjAKK+mXsSA+IHfDqWk7ICM5NUYxCivpl7IgPiB4acOhbjsgIzk1RjIKK+mXsyA+IGjDs25nOyAjOTVGMwor6Ze0ID4gamnEgW47ICM5NUY0Civpl7UgPiBtxK1uOyAjOTVGNQor6Ze2ID4ga8Ogbmc7ICM5NUY2Civpl7cgPiBtw6huOyAjOTVGNwor6Ze4ID4gemjDoTsgIzk1RjgKK+mXuSA+IG7DoG87ICM5NUY5Civpl7ogPiBnxatpOyAjOTVGQQor6Ze7ID4gd8OpbjsgIzk1RkIKK+mXvCA+IHTDoDsgIzk1RkMKK+mXvSA+IG3ErW47ICM5NUZECivpl74gPiBsx5g7ICM5NUZFCivpl78gPiBrxINpOyAjOTVGRgor6ZiAID4gZsOhOyAjOTYwMAor6ZiBID4gZ8OpOyAjOTYwMQor6ZiCID4gaMOpOyAjOTYwMgor6ZiDID4ga8WtbjsgIzk2MDMKK+mYhCA+IGrEq3U7ICM5NjA0CivpmIUgPiB5dcOoOyAjOTYwNQor6ZiGID4gbMSDbmc7ICM5NjA2CivpmIcgPiBkxas7ICM5NjA3CivpmIggPiB5w7k7ICM5NjA4CivpmIkgPiB5xIFuOyAjOTYwOQor6ZiKID4gY2jEgW5nOyAjOTYwQQor6ZiLID4geMOsOyAjOTYwQgor6ZiMID4gd8OpbjsgIzk2MEMKK+mYjSA+IGjFq247ICM5NjBECivpmI4gPiB5w6FuOyAjOTYwRQor6ZiPID4gw6g7ICM5NjBGCivpmJAgPiBjaMSDbjsgIzk2MTAKK+mYkSA+IGzDoW47ICM5NjExCivpmJIgPiBxw7k7ICM5NjEyCivpmJMgPiBow7lpOyAjOTYxMwor6ZiUID4ga8O5bzsgIzk2MTQKK+mYlSA+IHF1w6g7ICM5NjE1CivpmJYgPiBnw6k7ICM5NjE2CivpmJcgPiB0acOhbjsgIzk2MTcKK+mYmCA+IHTDoDsgIzk2MTgKK+mYmSA+IHF1w6g7ICM5NjE5CivpmJogPiBrw6BuOyAjOTYxQQor6ZibID4gaHXDoW47ICM5NjFCCivpmJwgPiBmw7k7ICM5NjFDCivpmJ0gPiBmw7k7ICM5NjFECivpmJ4gPiBsw6g7ICM5NjFFCivpmJ8gPiBkw7lpOyAjOTYxRgor6ZigID4geMOsbjsgIzk2MjAKK+mYoSA+IHFpxIFuOyAjOTYyMQor6ZiiID4gd8O5OyAjOTYyMgor6ZijID4gecOsOyAjOTYyMwor6ZikID4gdMO6bzsgIzk2MjQKK+mYpSA+IHnEq247ICM5NjI1CivpmKYgPiB5w6FuZzsgIzk2MjYKK+mYpyA+IGTFj3U7ICM5NjI3CivpmKggPiDDqDsgIzk2MjgKK+mYqSA+IHNoxJNuZzsgIzk2MjkKK+mYqiA+IGLEg247ICM5NjJBCivpmKsgPiBww6lpOyAjOTYyQgor6ZisID4ga8STbmc7ICM5NjJDCivpmK0gPiB5xa1uOyAjOTYyRAor6ZiuID4gcnXEg247ICM5NjJFCivpmK8gPiB6aMStOyAjOTYyRgor6ZiwID4gcMOtOyAjOTYzMAor6ZixID4gasStbmc7ICM5NjMxCivpmLIgPiBmw6FuZzsgIzk2MzIKK+mYsyA+IHnDoW5nOyAjOTYzMwor6Zi0ID4gecSrbjsgIzk2MzQKK+mYtSA+IHpow6huOyAjOTYzNQor6Zi2ID4gamnEkzsgIzk2MzYKK+mYtyA+IGNoxJNuZzsgIzk2MzcKK+mYuCA+IMOoOyAjOTYzOAor6Zi5ID4gccWrOyAjOTYzOQor6Zi6ID4gZMStOyAjOTYzQQor6Zi7ID4gesWtOyAjOTYzQgor6Zi8ID4gesO5bzsgIzk2M0MKK+mYvSA+IGRpw6BuOyAjOTYzRAor6Zi+ID4gbMStbmc7ICM5NjNFCivpmL8gPiDEgTsgIzk2M0YKK+mZgCA+IHTDum87ICM5NjQwCivpmYEgPiB0w7pvOyAjOTY0MQor6ZmCID4gcMWNOyAjOTY0Mgor6ZmDID4gYsStbmc7ICM5NjQzCivpmYQgPiBmw7k7ICM5NjQ0CivpmYUgPiBqw6w7ICM5NjQ1CivpmYYgPiBsw7k7ICM5NjQ2CivpmYcgPiBsxY9uZzsgIzk2NDcKK+mZiCA+IGNow6luOyAjOTY0OAor6ZmJID4geMOtbmc7ICM5NjQ5CivpmYogPiBkw7lvOyAjOTY0QQor6ZmLID4gbMOydTsgIzk2NEIKK+mZjCA+IG3DsjsgIzk2NEMKK+mZjSA+IGppw6BuZzsgIzk2NEQKK+mZjiA+IHNoxas7ICM5NjRFCivpmY8gPiBkw7lvOyAjOTY0Rgor6ZmQID4geGnDoG47ICM5NjUwCivpmZEgPiDDqXI7ICM5NjUxCivpmZIgPiBnxa1pOyAjOTY1Mgor6ZmTID4gecWrOyAjOTY1Mwor6ZmUID4gZ8SBaTsgIzk2NTQKK+mZlSA+IHNoxINuOyAjOTY1NQor6ZmWID4geMO5bjsgIzk2NTYKK+mZlyA+IHFpw6BvOyAjOTY1Nwor6ZmYID4geMOtbmc7ICM5NjU4CivpmZkgPiBjaMO6bjsgIzk2NTkKK+mZmiA+IGbDuTsgIzk2NUEKK+mZmyA+IGLDrDsgIzk2NUIKK+mZnCA+IHhpw6E7ICM5NjVDCivpmZ0gPiBzaMSDbjsgIzk2NUQKK+mZniA+IHNoxJNuZzsgIzk2NUUKK+mZnyA+IHpow6w7ICM5NjVGCivpmaAgPiBwxas7ICM5NjYwCivpmaEgPiBkxY91OyAjOTY2MQor6ZmiID4geXXDoG47ICM5NjYyCivpmaMgPiB6aMOobjsgIzk2NjMKK+mZpCA+IGNow7o7ICM5NjY0CivpmaUgPiB4acOgbjsgIzk2NjUKK+mZpyA+IG5pw6g7ICM5NjY3CivpmaggPiB5xa1uOyAjOTY2OAor6ZmpID4geGnEg247ICM5NjY5CivpmaogPiBww6lpOyAjOTY2QQor6ZmrID4gcMOpaTsgIzk2NkIKK+mZrCA+IHrFjXU7ICM5NjZDCivpma0gPiB5xKs7ICM5NjZECivpma4gPiBkxa1pOyAjOTY2RQor6ZmvID4gbMO6bjsgIzk2NkYKK+mZsCA+IHnEq247ICM5NjcwCivpmbEgPiBqxas7ICM5NjcxCivpmbIgPiBjaMO6aTsgIzk2NzIKK+mZsyA+IGNow6luOyAjOTY3Mwor6Zm0ID4gcMOtOyAjOTY3NAor6Zm1ID4gbMOtbmc7ICM5Njc1CivpmbYgPiB0w6FvOyAjOTY3Ngor6Zm3ID4geGnDoG47ICM5Njc3CivpmbggPiBsw7k7ICM5Njc4CivpmbkgPiBzaGVuZzsgIzk2NzkKK+mZuiA+IHhpxINuOyAjOTY3QQor6Zm7ID4gecSrbjsgIzk2N0IKK+mZvCA+IHpoxa07ICM5NjdDCivpmb0gPiB5w6FuZzsgIzk2N0QKK+mZviA+IHLDqW5nOyAjOTY3RQor6Zm/ID4gc2jEg247ICM5NjdGCivpmoAgPiBjaMOzbmc7ICM5NjgwCivpmoEgPiB5w6BuOyAjOTY4MQor6ZqCID4gecSrbjsgIzk2ODIKK+magyA+IHnDujsgIzk2ODMKK+mahCA+IHTDrTsgIzk2ODQKK+mahSA+IHnDujsgIzk2ODUKK+mahiA+IGzDs25nOyAjOTY4Ngor6ZqHID4gd8STaTsgIzk2ODcKK+maiCA+IHfEk2k7ICM5Njg4CivpmokgPiBuacOoOyAjOTY4OQor6ZqKID4gZMO5aTsgIzk2OEEKK+maiyA+IHPDumk7ICM5NjhCCivpmowgPiDEg247ICM5NjhDCivpmo0gPiBodcOhbmc7ICM5NjhECivpmo4gPiBqacSTOyAjOTY4RQor6ZqPID4gc8O6aTsgIzk2OEYKK+makCA+IHnErW47ICM5NjkwCivpmpEgPiBnxIFpOyAjOTY5MQor6ZqSID4gecSDbjsgIzk2OTIKK+makyA+IGjFq2k7ICM5NjkzCivpmpQgPiBnw6k7ICM5Njk0CivpmpUgPiB5xa1uOyAjOTY5NQor6ZqWID4gd8O5OyAjOTY5Ngor6ZqXID4gd8SVaTsgIzk2OTcKK+mamCA+IMOgaTsgIzk2OTgKK+mamSA+IHjDrDsgIzk2OTkKK+mamiA+IHTDoW5nOyAjOTY5QQor6ZqbID4gasOsOyAjOTY5Qgor6ZqcID4gemjDoG5nOyAjOTY5Qwor6ZqdID4gZMSDbzsgIzk2OUQKK+maniA+IMOhbzsgIzk2OUUKK+manyA+IHjDrDsgIzk2OUYKK+maoCA+IHnErW47ICM5NkEwCivpmqIgPiByw6BvOyAjOTZBMgor6ZqjID4gbMOtbjsgIzk2QTMKK+mapCA+IHTDumk7ICM5NkE0CivpmqUgPiBkw6huZzsgIzk2QTUKK+mapiA+IHDErTsgIzk2QTYKK+mapyA+IHPDuWk7ICM5NkE3CivpmqggPiBzw7ppOyAjOTZBOAor6ZqpID4gecO5OyAjOTZBOQor6ZqqID4geGnEg247ICM5NkFBCivpmqsgPiBmxJNuOyAjOTZBQgor6ZqsID4gbsStOyAjOTZBQwor6ZqtID4gw6lyOyAjOTZBRAor6ZquID4gasSrOyAjOTZBRQor6ZqvID4gZMSDbzsgIzk2QUYKK+masCA+IHjDrTsgIzk2QjAKK+masSA+IHnErW47ICM5NkIxCivpmrIgPiDDqTsgIzk2QjIKK+masyA+IGjFq2k7ICM5NkIzCivpmrQgPiBsxY9uZzsgIzk2QjQKK+matSA+IHjEqzsgIzk2QjUKK+matiA+IGzDrDsgIzk2QjYKK+matyA+IGzDrDsgIzk2QjcKK+mauCA+IGzDrDsgIzk2QjgKK+mauSA+IHpoxatpOyAjOTZCOQor6Zq6ID4gaMOoOyAjOTZCQQor6Zq7ID4gemjEqzsgIzk2QkIKK+mavCA+IHpoxa1uOyAjOTZCQwor6Zq9ID4gasO5bjsgIzk2QkQKK+maviA+IG7DoW47ICM5NkJFCivpmr8gPiB5w6w7ICM5NkJGCivpm4AgPiBxdcOoOyAjOTZDMAor6ZuBID4gecOgbjsgIzk2QzEKK+mbgiA+IHFpw6FuOyAjOTZDMgor6ZuDID4gecSDOyAjOTZDMwor6ZuEID4geMOtb25nOyAjOTZDNAor6ZuFID4gecSDOyAjOTZDNQor6ZuGID4gasOtOyAjOTZDNgor6ZuHID4gZ8O5OyAjOTZDNwor6ZuIID4gaHXDoW47ICM5NkM4Civpm4kgPiB6aMOsOyAjOTZDOQor6ZuKID4gZ8OydTsgIzk2Q0EKK+mbiyA+IGrDuW47ICM5NkNCCivpm4wgPiBjw607ICM5NkNDCivpm40gPiB5xY1uZzsgIzk2Q0QKK+mbjiA+IGrFqzsgIzk2Q0UKK+mbjyA+IGNow7o7ICM5NkNGCivpm5AgPiBoxas7ICM5NkQwCivpm5EgPiB6w6E7ICM5NkQxCivpm5IgPiBsw7lvOyAjOTZEMgor6ZuTID4gecO6OyAjOTZEMwor6ZuUID4gY2jDs3U7ICM5NkQ0Civpm5UgPiBkacSBbzsgIzk2RDUKK+mbliA+IHPFq2k7ICM5NkQ2Civpm5cgPiBow6BuOyAjOTZENwor6ZuYID4gaMO5bzsgIzk2RDgKK+mbmSA+IHNodcSBbmc7ICM5NkQ5Civpm5ogPiBndcOgbjsgIzk2REEKK+mbmyA+IGNow7o7ICM5NkRCCivpm5wgPiB6w6E7ICM5NkRDCivpm50gPiB5xY1uZzsgIzk2REQKK+mbniA+IGrEqzsgIzk2REUKK+mbnyA+IHjEqzsgIzk2REYKK+mboCA+IGNow7N1OyAjOTZFMAor6ZuhID4gbMOsdTsgIzk2RTEKK+mboiA+IGzDrTsgIzk2RTIKK+mboyA+IG7DoW47ICM5NkUzCivpm6QgPiB4dcOpOyAjOTZFNAor6ZulID4gesOhOyAjOTZFNQor6ZumID4gasOtOyAjOTZFNgor6ZunID4gasOtOyAjOTZFNwor6ZuoID4gecWtOyAjOTZFOAor6ZupID4gecO6OyAjOTZFOQor6ZuqID4geHXElTsgIzk2RUEKK+mbqyA+IG7EgzsgIzk2RUIKK+mbrCA+IGbFj3U7ICM5NkVDCivpm60gPiBzw6g7ICM5NkVECivpm64gPiBtw7k7ICM5NkVFCivpm68gPiB3w6luOyAjOTZFRgor6ZuwID4gZsSTbjsgIzk2RjAKK+mbsSA+IHDDoW5nOyAjOTZGMQor6ZuyID4gecO6bjsgIzk2RjIKK+mbsyA+IGzDrDsgIzk2RjMKK+mbtCA+IGzDrDsgIzk2RjQKK+mbtSA+IMSDbmc7ICM5NkY1Civpm7YgPiBsw61uZzsgIzk2RjYKK+mbtyA+IGzDqWk7ICM5NkY3Civpm7ggPiDDoW47ICM5NkY4Civpm7kgPiBiw6FvOyAjOTZGOQor6Zu6ID4gbcOpbmc7ICM5NkZBCivpm7sgPiBkacOgbjsgIzk2RkIKK+mbvCA+IGTDoG5nOyAjOTZGQwor6Zu9ID4geMOtbmc7ICM5NkZECivpm74gPiB3w7k7ICM5NkZFCivpm78gPiB6aMOgbzsgIzk2RkYKK+mcgCA+IHjFqzsgIzk3MDAKK+mcgSA+IGrDrDsgIzk3MDEKK+mcgiA+IG3DuTsgIzk3MDIKK+mcgyA+IGNow6luOyAjOTcwMwor6ZyEID4geGnEgW87ICM5NzA0CivpnIUgPiB6aMOhOyAjOTcwNQor6ZyGID4gdMOtbmc7ICM5NzA2CivpnIcgPiB6aMOobjsgIzk3MDcKK+mciCA+IHDDqGk7ICM5NzA4CivpnIkgPiBtw6lpOyAjOTcwOQor6ZyKID4gbMOtbmc7ICM5NzBBCivpnIsgPiBxxKs7ICM5NzBCCivpnIwgPiBjaMWNdTsgIzk3MEMKK+mcjSA+IGjDuW87ICM5NzBECivpnI4gPiBzaMOgOyAjOTcwRQor6ZyPID4gZsSTaTsgIzk3MEYKK+mckCA+IHfEk25nOyAjOTcxMAor6ZyRID4gemjEgW47ICM5NzExCivpnJIgPiB5xKtuOyAjOTcxMgor6ZyTID4gbsOtOyAjOTcxMwor6ZyUID4gY2jDsnU7ICM5NzE0CivpnJUgPiB0w7puOyAjOTcxNQor6ZyWID4gbMOtbjsgIzk3MTYKK+mcmCA+IGTDsm5nOyAjOTcxOAor6ZyZID4gecSrbmc7ICM5NzE5CivpnJogPiB3w7k7ICM5NzFBCivpnJsgPiBsw61uZzsgIzk3MUIKK+mcnCA+IHNodcSBbmc7ICM5NzFDCivpnJ0gPiBsw61uZzsgIzk3MUQKK+mcniA+IHhpw6E7ICM5NzFFCivpnJ8gPiBow7NuZzsgIzk3MUYKK+mcoCA+IHnEq247ICM5NzIwCivpnKEgPiBtw7I7ICM5NzIxCivpnKIgPiBtw6BpOyAjOTcyMgor6ZyjID4gecWtbjsgIzk3MjMKK+mcpCA+IGzDrHU7ICM5NzI0CivpnKUgPiBtw6huZzsgIzk3MjUKK+mcpiA+IGLEq247ICM5NzI2CivpnKcgPiB3w7k7ICM5NzI3CivpnKggPiB3w6hpOyAjOTcyOAor6ZypID4gaMO5bzsgIzk3MjkKK+mcqiA+IHnDrW47ICM5NzJBCivpnKsgPiB4w607ICM5NzJCCivpnKwgPiB5w6w7ICM5NzJDCivpnK0gPiDEg2k7ICM5NzJECivpnK4gPiBkw6BuOyAjOTcyRQor6ZyvID4gZMOobmc7ICM5NzJGCivpnLAgPiB4acOgbjsgIzk3MzAKK+mcsSA+IHnDuTsgIzk3MzEKK+mcsiA+IGzDuTsgIzk3MzIKK+mcsyA+IGzDs25nOyAjOTczMwor6Zy0ID4gZMOgaTsgIzk3MzQKK+mctSA+IGrDrTsgIzk3MzUKK+mctiA+IHDDoW5nOyAjOTczNgor6Zy3ID4gecOhbmc7ICM5NzM3CivpnLggPiBiw6A7ICM5NzM4CivpnLkgPiBwxKs7ICM5NzM5CivpnLogPiB3w6lpOyAjOTczQQor6Zy8ID4geMStOyAjOTczQwor6Zy9ID4gasOsOyAjOTczRAor6Zy+ID4gbcOhaTsgIzk3M0UKK+mcvyA+IG3DqG5nOyAjOTczRgor6Z2AID4gbcOpbmc7ICM5NzQwCivpnYEgPiBsw6lpOyAjOTc0MQor6Z2CID4gbMOsOyAjOTc0Mgor6Z2DID4gaMO5bzsgIzk3NDMKK+mdhCA+IMSDaTsgIzk3NDQKK+mdhSA+IGbDqGk7ICM5NzQ1CivpnYYgPiBkw6BpOyAjOTc0Ngor6Z2HID4gbMOzbmc7ICM5NzQ3CivpnYggPiBsw61uZzsgIzk3NDgKK+mdiSA+IMOgaTsgIzk3NDkKK+mdiiA+IGbEk25nOyAjOTc0QQor6Z2LID4gbMOsOyAjOTc0Qgor6Z2MID4gYsSDbzsgIzk3NEMKK+mdjiA+IGjDqDsgIzk3NEUKK+mdjyA+IGjDqDsgIzk3NEYKK+mdkCA+IGLDrG5nOyAjOTc1MAor6Z2RID4gccSrbmc7ICM5NzUxCivpnZIgPiBxxKtuZzsgIzk3NTIKK+mdkyA+IGrDrG5nOyAjOTc1Mwor6Z2UID4gdGnEgW47ICM5NzU0CivpnZUgPiB6aMSTbjsgIzk3NTUKK+mdliA+IGrDrG5nOyAjOTc1Ngor6Z2XID4gY2jDqG5nOyAjOTc1Nwor6Z2YID4gccOsbmc7ICM5NzU4CivpnZkgPiBqw6xuZzsgIzk3NTkKK+mdmiA+IGrDrG5nOyAjOTc1QQor6Z2bID4gZGnDoG47ICM5NzVCCivpnZwgPiBqw6xuZzsgIzk3NUMKK+mdnSA+IHRpxIFuOyAjOTc1RAor6Z2eID4gZsSTaTsgIzk3NUUKK+mdnyA+IGbEk2k7ICM5NzVGCivpnaAgPiBrw6BvOyAjOTc2MAor6Z2hID4gbcStOyAjOTc2MQor6Z2iID4gbWnDoG47ICM5NzYyCivpnaMgPiBtacOgbjsgIzk3NjMKK+mdpCA+IHDDoG87ICM5NzY0CivpnaUgPiB5w6g7ICM5NzY1CivpnaYgPiB0acSDbjsgIzk3NjYKK+mdpyA+IGjDuWk7ICM5NzY3CivpnaggPiB5w6g7ICM5NzY4CivpnakgPiBnw6k7ICM5NzY5CivpnaogPiBkxKtuZzsgIzk3NkEKK+mdqyA+IGNoxIE7ICM5NzZCCivpnawgPiBqacSBbjsgIzk3NkMKK+mdrSA+IHLDqG47ICM5NzZECivpna4gPiBkw607ICM5NzZFCivpna8gPiBkw7k7ICM5NzZGCivpnbAgPiB3w7k7ICM5NzcwCivpnbEgPiByw6huOyAjOTc3MQor6Z2yID4gccOtbjsgIzk3NzIKK+mdsyA+IGrDrG47ICM5NzczCivpnbQgPiB4dcSTOyAjOTc3NAor6Z21ID4gbsStdTsgIzk3NzUKK+mdtiA+IGLEgzsgIzk3NzYKK+mdtyA+IHnErW47ICM5Nzc3CivpnbggPiBzxIM7ICM5Nzc4CivpnbkgPiBuw6A7ICM5Nzc5CivpnbogPiBtw7I7ICM5NzdBCivpnbsgPiB6xa07ICM5NzdCCivpnbwgPiBkw6E7ICM5NzdDCivpnb0gPiBiw6BuOyAjOTc3RAor6Z2+ID4gecOsOyAjOTc3RQor6Z2/ID4gecOgbzsgIzk3N0YKK+megCA+IHTDoW87ICM5NzgwCivpnoEgPiB0w7pvOyAjOTc4MQor6Z6CID4gamnDoTsgIzk3ODIKK+megyA+IGjDs25nOyAjOTc4Mwor6Z6EID4gcMOhbzsgIzk3ODQKK+mehSA+IHnEg25nOyAjOTc4NQor6Z6HID4gecSrbjsgIzk3ODcKK+meiCA+IGppw6E7ICM5Nzg4CivpnokgPiB0w6FvOyAjOTc4OQor6Z6KID4gasOtOyAjOTc4QQor6Z6LID4geGnDqTsgIzk3OEIKK+mejCA+IMSBbjsgIzk3OEMKK+mejSA+IMSBbjsgIzk3OEQKK+mejiA+IGjDqW47ICM5NzhFCivpno8gPiBnxY9uZzsgIzk3OEYKK+mekSA+IGTDoTsgIzk3OTEKK+mekiA+IHFpxIFvOyAjOTc5Mgor6Z6TID4gdMSrbmc7ICM5NzkzCivpnpQgPiB3xINuOyAjOTc5NAor6Z6VID4gecOsbmc7ICM5Nzk1CivpnpYgPiBzxatpOyAjOTc5Ngor6Z6XID4gdGnDoW87ICM5Nzk3CivpnpggPiBxacOgbzsgIzk3OTgKK+memSA+IHh1w6BuOyAjOTc5OQor6Z6aID4ga8Oybmc7ICM5NzlBCivpnpsgPiBixJVuZzsgIzk3OUIKK+menCA+IHTDoDsgIzk3OUMKK+menSA+IHpoxINuZzsgIzk3OUQKK+meniA+IGLErW5nOyAjOTc5RQor6Z6fID4ga8O5bzsgIzk3OUYKK+meoCA+IGrDujsgIzk3QTAKK+meoSA+IGxhOyAjOTdBMQor6Z6iID4geGnDqDsgIzk3QTIKK+meoyA+IHLDs3U7ICM5N0EzCivpnqQgPiBixIFuZzsgIzk3QTQKK+mepSA+IHnDrDsgIzk3QTUKK+mepiA+IHHEq3U7ICM5N0E2CivpnqcgPiBxxKt1OyAjOTdBNwor6Z6oID4gaMOpOyAjOTdBOAor6Z6pID4geGnDoG87ICM5N0E5CivpnqogPiBtw7k7ICM5N0FBCivpnqsgPiBqw7o7ICM5N0FCCivpnqwgPiBqacSBbjsgIzk3QUMKK+merSA+IGJpxIFuOyAjOTdBRAor6Z6uID4gZMSrOyAjOTdBRQor6Z6vID4gamnEgW47ICM5N0FGCivpnrEgPiB0xIFvOyAjOTdCMQor6Z6yID4gZ8WNdTsgIzk3QjIKK+mesyA+IHTDoDsgIzk3QjMKK+metCA+IGLDqGk7ICM5N0I0CivpnrUgPiB4acOpOyAjOTdCNQor6Z62ID4gcMOhbjsgIzk3QjYKK+metyA+IGfDqTsgIzk3QjcKK+meuCA+IGLDrDsgIzk3QjgKK+meuSA+IGvDuW87ICM5N0I5CivpnrogPiB0YW5nOyAjOTdCQQor6Z67ID4gbMOzdTsgIzk3QkIKK+mevCA+IGfDuWk7ICM5N0JDCivpnr0gPiBxacOhbzsgIzk3QkQKK+meviA+IHh1xJM7ICM5N0JFCivpnr8gPiBqxKs7ICM5N0JGCivpn4AgPiBqacSBbjsgIzk3QzAKK+mfgSA+IGppxIFuZzsgIzk3QzEKK+mfgiA+IGNow6BuOyAjOTdDMgor6Z+DID4gZMOhOyAjOTdDMwor6Z+EID4gaMO5bzsgIzk3QzQKK+mfhSA+IHhpxINuOyAjOTdDNQor6Z+GID4gcWnEgW47ICM5N0M2Civpn4cgPiBkw7o7ICM5N0M3Civpn4ggPiB3w6A7ICM5N0M4Civpn4kgPiBqacSBbjsgIzk3QzkKK+mfiiA+IGzDoW47ICM5N0NBCivpn4sgPiB3w6lpOyAjOTdDQgor6Z+MID4gcsOobjsgIzk3Q0MKK+mfjSA+IGbDujsgIzk3Q0QKK+mfjiA+IG3DqGk7ICM5N0NFCivpn48gPiBqdcOgbjsgIzk3Q0YKK+mfkCA+IGfDqTsgIzk3RDAKK+mfkSA+IHfElWk7ICM5N0QxCivpn5IgPiBxacOgbzsgIzk3RDIKK+mfkyA+IGjDoW47ICM5N0QzCivpn5QgPiBjaMOgbmc7ICM5N0Q0Civpn5YgPiByw7N1OyAjOTdENgor6Z+XID4geMO5bjsgIzk3RDcKK+mfmCA+IHNow6g7ICM5N0Q4Civpn5kgPiB3xJVpOyAjOTdEOQor6Z+aID4gZ8OpOyAjOTdEQQor6Z+bID4gYsOoaTsgIzk3REIKK+mfnCA+IHTEgW87ICM5N0RDCivpn50gPiBnxY11OyAjOTdERAor6Z+eID4gecO5bjsgIzk3REUKK+mfoCA+IGLDrDsgIzk3RTAKK+mfoSA+IHfElWk7ICM5N0UxCivpn6IgPiBow7lpOyAjOTdFMgor6Z+jID4gZMO6OyAjOTdFMwor6Z+kID4gd8OgOyAjOTdFNAor6Z+lID4gZMO6OyAjOTdFNQor6Z+mID4gd8OpaTsgIzk3RTYKK+mfpyA+IHLDqG47ICM5N0U3Civpn6ggPiBmw7o7ICM5N0U4Civpn6kgPiBow6FuOyAjOTdFOQor6Z+qID4gd8SVaTsgIzk3RUEKK+mfqyA+IHnDuW47ICM5N0VCCivpn6wgPiB0xIFvOyAjOTdFQwor6Z+tID4gasStdTsgIzk3RUQKK+mfriA+IGrErXU7ICM5N0VFCivpn68gPiB4acSBbjsgIzk3RUYKK+mfsCA+IHhpw6g7ICM5N0YwCivpn7EgPiB4acSBbjsgIzk3RjEKK+mfsiA+IGrEqzsgIzk3RjIKK+mfsyA+IHnEq247ICM5N0YzCivpn7QgPiB6w6E7ICM5N0Y0Civpn7UgPiB5w7luOyAjOTdGNQor6Z+2ID4gc2jDoW87ICM5N0Y2Civpn7cgPiBsw6g7ICM5N0Y3Civpn7ggPiBww6luZzsgIzk3RjgKK+mfuSA+IGjDqW5nOyAjOTdGOQor6Z+6ID4gecSrbmc7ICM5N0ZBCivpn7sgPiB5w7luOyAjOTdGQgor6Z+8ID4gcMOpbmc7ICM5N0ZDCivpn70gPiB5xKtuOyAjOTdGRAor6Z++ID4gecSrbjsgIzk3RkUKK+mfvyA+IHhpxINuZzsgIzk3RkYKK+mggCA+IGjDuTsgIzk4MDAKK+mggSA+IHnDqDsgIzk4MDEKK+mggiA+IGTErW5nOyAjOTgwMgor6aCDID4gccStbmc7ICM5ODAzCivpoIQgPiBww6BuOyAjOTgwNAor6aCFID4geGnDoG5nOyAjOTgwNQor6aCGID4gc2jDuW47ICM5ODA2CivpoIcgPiBoxIFuOyAjOTgwNwor6aCIID4geMWrOyAjOTgwOAor6aCJID4gecOtOyAjOTgwOQor6aCKID4geMO5OyAjOTgwQQor6aCLID4gZ8O5OyAjOTgwQgor6aCMID4gc8Oybmc7ICM5ODBDCivpoI0gPiBrxa1pOyAjOTgwRAor6aCOID4gccOtOyAjOTgwRQor6aCPID4gaMOhbmc7ICM5ODBGCivpoJAgPiB5w7k7ICM5ODEwCivpoJEgPiB3w6FuOyAjOTgxMQor6aCSID4gYsSBbjsgIzk4MTIKK+mgkyA+IGTDuW47ICM5ODEzCivpoJQgPiBkw607ICM5ODE0CivpoJUgPiBkxIFuOyAjOTgxNQor6aCWID4gcMOgbjsgIzk4MTYKK+mglyA+IHDFjzsgIzk4MTcKK+mgmCA+IGzErW5nOyAjOTgxOAor6aCZID4gY8OoOyAjOTgxOQor6aCaID4gasStbmc7ICM5ODFBCivpoJsgPiBsxJVpOyAjOTgxQgor6aCcID4gaMOpOyAjOTgxQwor6aCdID4gcWnEgW87ICM5ODFECivpoJ4gPiDDqDsgIzk4MUUKK+mgnyA+IMOpOyAjOTgxRgor6aCgID4gd8SVaTsgIzk4MjAKK+mgoSA+IGppw6k7ICM5ODIxCivpoKIgPiBndcSBOyAjOTgyMgor6aCjID4gc2jElW47ICM5ODIzCivpoKQgPiB5w607ICM5ODI0CivpoKUgPiBzaMSVbjsgIzk4MjUKK+mgpiA+IGjDoWk7ICM5ODI2CivpoKcgPiBkxatpOyAjOTgyNwor6aCoID4gcGnEgW47ICM5ODI4CivpoKkgPiBwxKtuZzsgIzk4MjkKK+mgqiA+IGzDqGk7ICM5ODJBCivpoKsgPiBmxa07ICM5ODJCCivpoKwgPiBqacOhOyAjOTgyQwor6aCtID4gdMOzdTsgIzk4MkQKK+mgriA+IGjDuWk7ICM5ODJFCivpoK8gPiBrw7ppOyAjOTgyRgor6aCwID4gamnDoTsgIzk4MzAKK+mgsSA+IGzDqDsgIzk4MzEKK+mgsiA+IHRpYW47ICM5ODMyCivpoLMgPiBjaMSTbmc7ICM5ODMzCivpoLQgPiB5xK1uZzsgIzk4MzQKK+mgtSA+IGrFq247ICM5ODM1CivpoLYgPiBow7o7ICM5ODM2CivpoLcgPiBow6BuOyAjOTgzNwor6aC4ID4gasStbmc7ICM5ODM4CivpoLkgPiB0w7ppOyAjOTgzOQor6aC6ID4gdMO6aTsgIzk4M0EKK+mguyA+IHDDrW47ICM5ODNCCivpoLwgPiBsw6BpOyAjOTgzQwor6aC9ID4gdMO6aTsgIzk4M0QKK+mgviA+IHrEqzsgIzk4M0UKK+mgvyA+IHrEqzsgIzk4M0YKK+mhgCA+IGNow7ppOyAjOTg0MAor6aGBID4gZMOsbmc7ICM5ODQxCivpoYIgPiBsw6BpOyAjOTg0Mgor6aGDID4gecOhbjsgIzk4NDMKK+mhhCA+IGjDoG47ICM5ODQ0CivpoYUgPiBqacSBbjsgIzk4NDUKK+mhhiA+IGvEkzsgIzk4NDYKK+mhhyA+IGPDuWk7ICM5ODQ3CivpoYggPiBqxK1vbmc7ICM5ODQ4CivpoYkgPiBxxKtuOyAjOTg0OQor6aGKID4gecOtOyAjOTg0QQor6aGLID4gc8SBaTsgIzk4NEIKK+mhjCA+IHTDrTsgIzk4NEMKK+mhjSA+IMOpOyAjOTg0RAor6aGOID4gw6g7ICM5ODRFCivpoY8gPiB5w6FuOyAjOTg0Rgor6aGQID4gaMO6bjsgIzk4NTAKK+mhkSA+IGvEg247ICM5ODUxCivpoZIgPiB5w7NuZzsgIzk4NTIKK+mhkyA+IHpodcSBbjsgIzk4NTMKK+mhlCA+IHnDoW47ICM5ODU0CivpoZUgPiB4acSDbjsgIzk4NTUKK+mhliA+IHjDrG47ICM5ODU2CivpoZcgPiB5xK07ICM5ODU3CivpoZggPiB5dcOgbjsgIzk4NTgKK+mhmSA+IHPEg25nOyAjOTg1OQor6aGaID4gZGnEgW47ICM5ODVBCivpoZsgPiBkacSBbjsgIzk4NUIKK+mhnCA+IGppxINuZzsgIzk4NUMKK+mhnSA+IGvFqzsgIzk4NUQKK+mhniA+IGzDqGk7ICM5ODVFCivpoZ8gPiBsacOhbzsgIzk4NUYKK+mhoCA+IHBpw6BvOyAjOTg2MAor6aGhID4gecOsOyAjOTg2MQor6aGiID4gbcOhbjsgIzk4NjIKK+mhoyA+IHHEqzsgIzk4NjMKK+mhpCA+IHLDoG87ICM5ODY0CivpoaUgPiBow6BvOyAjOTg2NQor6aGmID4gcWnDoW87ICM5ODY2CivpoacgPiBnw7k7ICM5ODY3CivpoaggPiB4w7luOyAjOTg2OAor6aGpID4gcWnEgW47ICM5ODY5CivpoaogPiBoxatpOyAjOTg2QQor6aGrID4gemjDoG47ICM5ODZCCivpoawgPiByw7o7ICM5ODZDCivpoa0gPiBoxY1uZzsgIzk4NkQKK+mhriA+IGLEq247ICM5ODZFCivpoa8gPiB4acSDbjsgIzk4NkYKK+mhsCA+IHDDrW47ICM5ODcwCivpobEgPiBsw7o7ICM5ODcxCivpobIgPiBsxINuOyAjOTg3Mgor6aGzID4gbmnDqDsgIzk4NzMKK+mhtCA+IHF1w6FuOyAjOTg3NAor6aG1ID4gecOoOyAjOTg3NQor6aG2ID4gZMStbmc7ICM5ODc2CivpobcgPiBxxK1uZzsgIzk4NzcKK+mhuCA+IGjEgW47ICM5ODc4CivpobkgPiB4acOgbmc7ICM5ODc5CivpobogPiBzaMO5bjsgIzk4N0EKK+mhuyA+IHjFqzsgIzk4N0IKK+mhvCA+IHjDuTsgIzk4N0MKK+mhvSA+IHfDoW47ICM5ODdECivpob4gPiBnw7k7ICM5ODdFCivpob8gPiBkw7luOyAjOTg3Rgor6aKAID4gccOtOyAjOTg4MAor6aKBID4gYsSBbjsgIzk4ODEKK+migiA+IHPDsm5nOyAjOTg4Mgor6aKDID4gaMOhbmc7ICM5ODgzCivpooQgPiB5w7k7ICM5ODg0CivpooUgPiBsw7o7ICM5ODg1CivpooYgPiBsxK1uZzsgIzk4ODYKK+mihyA+IHDFjzsgIzk4ODcKK+miiCA+IGrErW5nOyAjOTg4OAor6aKJID4gamnDqTsgIzk4ODkKK+miiiA+IGppw6E7ICM5ODhBCivpoosgPiB0aWFuOyAjOTg4Qgor6aKMID4gaMOgbjsgIzk4OEMKK+mijSA+IHnErW5nOyAjOTg4RAor6aKOID4gasStb25nOyAjOTg4RQor6aKPID4gaMOhaTsgIzk4OEYKK+mikCA+IHnDrTsgIzk4OTAKK+mikSA+IHDDrW47ICM5ODkxCivpopIgPiBow7lpOyAjOTg5Mgor6aKTID4gdMO6aTsgIzk4OTMKK+milCA+IGjDoG47ICM5ODk0CivpopUgPiB5xK1uZzsgIzk4OTUKK+miliA+IHnErW5nOyAjOTg5Ngor6aKXID4ga8STOyAjOTg5Nwor6aKYID4gdMOtOyAjOTg5OAor6aKZID4gecOzbmc7ICM5ODk5CivpopogPiDDqDsgIzk4OUEKK+mimyA+IHpodcSBbjsgIzk4OUIKK+minCA+IHnDoW47ICM5ODlDCivpop0gPiDDqTsgIzk4OUQKK+miniA+IG5pw6g7ICM5ODlFCivpop8gPiBtw6FuOyAjOTg5Rgor6aKgID4gZGnEgW47ICM5OEEwCivpoqEgPiBzxINuZzsgIzk4QTEKK+mioiA+IGjDoG87ICM5OEEyCivpoqMgPiBsw6hpOyAjOThBMwor6aKkID4gemjDoG47ICM5OEE0CivpoqUgPiByw7o7ICM5OEE1CivpoqYgPiBww61uOyAjOThBNgor6aKnID4gcXXDoW47ICM5OEE3CivpoqggPiBmxJNuZzsgIzk4QTgKK+miqSA+IGJpxIFvOyAjOThBOQor6aKrID4gZsO6OyAjOThBQgor6aKsID4geGnEgTsgIzk4QUMKK+mirSA+IHpoxINuOyAjOThBRAor6aKuID4gYmnEgW87ICM5OEFFCivpoq8gPiBzw6A7ICM5OEFGCivporAgPiBiw6E7ICM5OEIwCivporEgPiB0w6FpOyAjOThCMQor6aKyID4gbGnDqDsgIzk4QjIKK+misyA+IGd1xIE7ICM5OEIzCivporQgPiB4dcOgbjsgIzk4QjQKK+mitSA+IHNow6BvOyAjOThCNQor6aK2ID4gasO5OyAjOThCNgor6aK3ID4gYsSrOyAjOThCNwor6aK4ID4gc8SrOyAjOThCOAor6aK5ID4gd8SVaTsgIzk4QjkKK+miuiA+IHnDoW5nOyAjOThCQQor6aK7ID4gecOhbzsgIzk4QkIKK+mivCA+IHPFjXU7ICM5OEJDCivpor0gPiBrxINpOyAjOThCRAor6aK+ID4gc8SBbzsgIzk4QkUKK+mivyA+IGbDoW47ICM5OEJGCivpo4AgPiBsw611OyAjOThDMAor6aOBID4geMOtOyAjOThDMQor6aOCID4gbGnDoW87ICM5OEMyCivpo4MgPiBwacSBbzsgIzk4QzMKK+mjhCA+IHBpxIFvOyAjOThDNAor6aOFID4gbMOtdTsgIzk4QzUKK+mjhiA+IGJpxIFvOyAjOThDNgor6aOHID4gYmnEgW87ICM5OEM3Civpo4ggPiBiacSDbzsgIzk4QzgKK+mjiSA+IGxpw6FvOyAjOThDOQor6aOLID4gc8OoOyAjOThDQgor6aOMID4gZsSTbmc7ICM5OENDCivpo40gPiBiacSBbzsgIzk4Q0QKK+mjjiA+IGbEk25nOyAjOThDRQor6aOPID4gecOhbmc7ICM5OENGCivpo5AgPiB6aMSDbjsgIzk4RDAKK+mjkSA+IGJpxIFvOyAjOThEMQor6aOSID4gc8OgOyAjOThEMgor6aOTID4gasO5OyAjOThEMwor6aOUID4gc8SrOyAjOThENAor6aOVID4gc8WNdTsgIzk4RDUKK+mjliA+IHnDoW87ICM5OEQ2Civpo5cgPiBsw611OyAjOThENwor6aOYID4gcGnEgW87ICM5OEQ4Civpo5kgPiBiacSBbzsgIzk4RDkKK+mjmiA+IGJpxIFvOyAjOThEQQor6aObID4gZsSTaTsgIzk4REIKK+mjnCA+IGbEgW47ICM5OERDCivpo50gPiBmxJNpOyAjOThERAor6aOeID4gZsSTaTsgIzk4REUKK+mjnyA+IHNow607ICM5OERGCivpo6AgPiBzaMOtOyAjOThFMAor6aOhID4gY8SBbjsgIzk4RTEKK+mjoiA+IGrEqzsgIzk4RTIKK+mjoyA+IGTDrG5nOyAjOThFMwor6aOkID4gc8OsOyAjOThFNAor6aOlID4gdMWrbzsgIzk4RTUKK+mjpiA+IHpoxIFuOyAjOThFNgor6aOnID4gc8WrbjsgIzk4RTcKK+mjqCA+IHhpxINuZzsgIzk4RTgKK+mjqSA+IHTDum47ICM5OEU5Civpo6ogPiByw6huOyAjOThFQQor6aOrID4gecO5OyAjOThFQgor6aOsID4ganXDoG47ICM5OEVDCivpo60gPiBjaMOsOyAjOThFRAor6aOuID4gecStbjsgIzk4RUUKK+mjryA+IGbDoG47ICM5OEVGCivpo7AgPiBmw6BuOyAjOThGMAor6aOxID4gc8WrbjsgIzk4RjEKK+mjsiA+IHnErW47ICM5OEYyCivpo7MgPiB6aMO5OyAjOThGMwor6aO0ID4gecOtOyAjOThGNAor6aO1ID4gemjEg2k7ICM5OEY1Civpo7YgPiBiw6w7ICM5OEY2Civpo7cgPiBqacSVOyAjOThGNwor6aO4ID4gdMSBbzsgIzk4RjgKK+mjuSA+IGzErXU7ICM5OEY5Civpo7ogPiBjw607ICM5OEZBCivpo7sgPiB0acOoOyAjOThGQgor6aO8ID4gc8OsOyAjOThGQwor6aO9ID4gYsSDbzsgIzk4RkQKK+mjviA+IHNow6w7ICM5OEZFCivpo78gPiBkw7lvOyAjOThGRgor6aSAID4gaMOgaTsgIzk5MDAKK+mkgSA+IHLDqG47ICM5OTAxCivppIIgPiB0acSDbjsgIzk5MDIKK+mkgyA+IGppxINvOyAjOTkwMwor6aSEID4gamnDoTsgIzk5MDQKK+mkhSA+IGLErW5nOyAjOTkwNQor6aSGID4gecOhbzsgIzk5MDYKK+mkhyA+IHTDs25nOyAjOTkwNwor6aSIID4gY8OtOyAjOTkwOAor6aSJID4geGnEg25nOyAjOTkwOQor6aSKID4gecSDbmc7ICM5OTBBCivppIsgPiB5xINuZzsgIzk5MEIKK+mkjCA+IMSVcjsgIzk5MEMKK+mkjSA+IHnDoG47ICM5OTBECivppI4gPiBsZTsgIzk5MEUKK+mkjyA+IHnEqzsgIzk5MEYKK+mkkCA+IGPEgW47ICM5OTEwCivppJEgPiBiw7M7ICM5OTExCivppJIgPiBuxJVpOyAjOTkxMgor6aSTID4gw6g7ICM5OTEzCivppJQgPiBixas7ICM5OTE0CivppJUgPiBqw7luOyAjOTkxNQor6aSWID4gZMOydTsgIzk5MTYKK+mklyA+IHPDuTsgIzk5MTcKK+mkmCA+IHnDujsgIzk5MTgKK+mkmSA+IHNow6w7ICM5OTE5CivppJogPiB5w6FvOyAjOTkxQQor6aSbID4gaMO6bjsgIzk5MUIKK+mknCA+IGfFrW87ICM5OTFDCivppJ0gPiBzaMOsOyAjOTkxRAor6aSeID4gamnDoG47ICM5OTFFCivppJ8gPiB6aMO5aTsgIzk5MUYKK+mkoCA+IGLErW5nOyAjOTkyMAor6aShID4geGnDoG47ICM5OTIxCivppKIgPiBiw7k7ICM5OTIyCivppKMgPiB5w6g7ICM5OTIzCivppKQgPiB0w6FuOyAjOTkyNAor6aSlID4gZsSVaTsgIzk5MjUKK+mkpiA+IHpoxIFuZzsgIzk5MjYKK+mkpyA+IHfDqGk7ICM5OTI3CivppKggPiBndcSDbjsgIzk5MjgKK+mkqSA+IMOoOyAjOTkyOQor6aSqID4gbnXEg247ICM5OTJBCivppKsgPiBow7puOyAjOTkyQgor6aSsID4gaMO6OyAjOTkyQwor6aStID4gaHXDoW5nOyAjOTkyRAor6aSuID4gdGnDqDsgIzk5MkUKK+mkryA+IGjDuWk7ICM5OTJGCivppLAgPiBqacSBbjsgIzk5MzAKK+mksSA+IGjDs3U7ICM5OTMxCivppLIgPiBow6k7ICM5OTMyCivppLMgPiB4w61uZzsgIzk5MzMKK+mktCA+IGbEk247ICM5OTM0CivppLUgPiB3w6hpOyAjOTkzNQor6aS2ID4gZ8WtOyAjOTkzNgor6aS3ID4gY2jEgTsgIzk5MzcKK+mkuCA+IHPDsm5nOyAjOTkzOAor6aS5ID4gdMOhbmc7ICM5OTM5CivppLogPiBiw7M7ICM5OTNBCivppLsgPiBnxIFvOyAjOTkzQgor6aS8ID4geMOsOyAjOTkzQwor6aS9ID4ga8O5aTsgIzk5M0QKK+mkviA+IGzDrHU7ICM5OTNFCivppL8gPiBzxY11OyAjOTkzRgor6aWAID4gdMOhbzsgIzk5NDAKK+mlgSA+IHnDqDsgIzk5NDEKK+mlgiA+IHnDum47ICM5OTQyCivppYMgPiBtw7M7ICM5OTQzCivppYQgPiB0w6FuZzsgIzk5NDQKK+mlhSA+IG3DoW47ICM5OTQ1CivppYYgPiBiw6w7ICM5OTQ2CivppYcgPiB5w7k7ICM5OTQ3CivppYggPiB4xKt1OyAjOTk0OAor6aWJID4gasStbjsgIzk5NDkKK+mliiA+IHPEg247ICM5OTRBCivppYsgPiBrw7lpOyAjOTk0Qgor6aWMID4gemh1w6BuOyAjOTk0Qwor6aWNID4gc2jDoG47ICM5OTRECivppY4gPiBjaMOsOyAjOTk0RQor6aWPID4gZMOgbjsgIzk5NEYKK+mlkCA+IHnDrDsgIzk5NTAKK+mlkSA+IGrEqzsgIzk5NTEKK+mlkiA+IHLDoW87ICM5OTUyCivppZMgPiBjaMSTbmc7ICM5OTUzCivppZQgPiB5xY1uZzsgIzk5NTQKK+mllSA+IHTEgW87ICM5OTU1CivppZYgPiBow7lpOyAjOTk1Ngor6aWXID4geGnEg25nOyAjOTk1Nwor6aWYID4gemjEgW47ICM5OTU4CivppZkgPiBmxJNuOyAjOTk1OQor6aWaID4gaMOgaTsgIzk5NUEKK+mlmyA+IG3DqW5nOyAjOTk1Qgor6aWcID4gecOgbjsgIzk5NUMKK+mlnSA+IG3DszsgIzk5NUQKK+mlniA+IGNow6FuOyAjOTk1RQor6aWfID4geGnEg25nOyAjOTk1Rgor6aWgID4gbMO6bzsgIzk5NjAKK+mloSA+IHp1w6BuOyAjOTk2MQor6aWiID4gbsSDbmc7ICM5OTYyCivppaMgPiBzaMOtOyAjOTk2Mwor6aWkID4gZMOsbmc7ICM5OTY0CivppaUgPiBqxKs7ICM5OTY1CivppaYgPiB0xatvOyAjOTk2Ngor6aWnID4geMOtbmc7ICM5OTY3CivppaggPiB0w7puOyAjOTk2OAor6aWpID4geMOsOyAjOTk2OQor6aWqID4gcsOobjsgIzk5NkEKK+mlqyA+IHnDuTsgIzk5NkIKK+mlrCA+IGNow6w7ICM5OTZDCivppa0gPiBmw6BuOyAjOTk2RAor6aWuID4gecStbjsgIzk5NkUKK+mlryA+IGppw6BuOyAjOTk2Rgor6aWwID4gc2jDrDsgIzk5NzAKK+mlsSA+IGLEg287ICM5OTcxCivppbIgPiBzw6w7ICM5OTcyCivppbMgPiBkw7lvOyAjOTk3Mwor6aW0ID4gecOtOyAjOTk3NAor6aW1ID4gxJVyOyAjOTk3NQor6aW2ID4gcsOhbzsgIzk5NzYKK+mltyA+IHhpxINuZzsgIzk5NzcKK+mluCA+IGppw6E7ICM5OTc4CivppbkgPiBsZTsgIzk5NzkKK+mluiA+IGppxINvOyAjOTk3QQor6aW7ID4gecSrOyAjOTk3Qgor6aW8ID4gYsStbmc7ICM5OTdDCivppb0gPiBiw7M7ICM5OTdECivppb4gPiBkw7J1OyAjOTk3RQor6aW/ID4gw6g7ICM5OTdGCivppoAgPiB5w7o7ICM5OTgwCivppoEgPiBuxJVpOyAjOTk4MQor6aaCID4gasO5bjsgIzk5ODIKK+mmgyA+IGfFrW87ICM5OTgzCivppoQgPiBow7puOyAjOTk4NAor6aaFID4geGnDoG47ICM5OTg1CivppoYgPiBndcSDbjsgIzk5ODYKK+mmhyA+IGNoxIE7ICM5OTg3CivppoggPiBrw7lpOyAjOTk4OAor6aaJID4gZ8WtOyAjOTk4OQor6aaKID4gc8WNdTsgIzk5OEEKK+mmiyA+IGNow6FuOyAjOTk4Qgor6aaMID4gecOoOyAjOTk4Qwor6aaNID4gbcOzOyAjOTk4RAor6aaOID4gYsOzOyAjOTk4RQor6aaPID4gbMOsdTsgIzk5OEYKK+mmkCA+IHjEq3U7ICM5OTkwCivpppEgPiBqxK1uOyAjOTk5MQor6aaSID4gbcOhbjsgIzk5OTIKK+mmkyA+IHPEg247ICM5OTkzCivpppQgPiB6aHXDoG47ICM5OTk0CivpppUgPiBuxINuZzsgIzk5OTUKK+mmliA+IHNoxY91OyAjOTk5Ngor6aaXID4ga8O6aTsgIzk5OTcKK+mmmCA+IGfDum87ICM5OTk4CivpppkgPiB4acSBbmc7ICM5OTk5CivpppogPiBmw6luOyAjOTk5QQor6aabID4gYsOhOyAjOTk5Qgor6aacID4gbsStOyAjOTk5Qwor6aadID4gYsOsOyAjOTk5RAor6aaeID4gYsOzOyAjOTk5RQor6aafID4gdMO6OyAjOTk5Rgor6aagID4gaMSBbjsgIzk5QTAKK+mmoSA+IGbEk2k7ICM5OUExCivppqIgPiBqacSBbjsgIzk5QTIKK+mmoyA+IMSBbjsgIzk5QTMKK+mmpCA+IMSDaTsgIzk5QTQKK+mmpSA+IGbDuTsgIzk5QTUKK+mmpiA+IHhpxIFuOyAjOTlBNgor6aanID4gd8STbjsgIzk5QTcKK+mmqCA+IHjEq247ICM5OUE4CivppqkgPiBmw6luOyAjOTlBOQor6aaqID4gYsSrbjsgIzk5QUEKK+mmqyA+IHjEq25nOyAjOTlBQgor6aasID4gbcSDOyAjOTlBQwor6aatID4gecO5OyAjOTlBRAor6aauID4gZsOpbmc7ICM5OUFFCivppq8gPiBow6BuOyAjOTlBRgor6aawID4gZMOsOyAjOTlCMAor6aaxID4gdMO6bzsgIzk5QjEKK+mmsiA+IHTFq287ICM5OUIyCivpprMgPiBjaMOtOyAjOTlCMwor6aa0ID4geMO6bjsgIzk5QjQKK+mmtSA+IHpow7k7ICM5OUI1CivpprYgPiB6aMSrOyAjOTlCNgor6aa3ID4gcMOoaTsgIzk5QjcKK+mmuCA+IHjDrG47ICM5OUI4CivpprkgPiByw6w7ICM5OUI5CivpprogPiBzw6A7ICM5OUJBCivpprsgPiB5xK1uOyAjOTlCQgor6aa8ID4gd8OpbjsgIzk5QkMKK+mmvSA+IHpow607ICM5OUJECivppr4gPiBkw6BuOyAjOTlCRQor6aa/ID4gbMeYOyAjOTlCRgor6aeAID4gecOzdTsgIzk5QzAKK+mngSA+IGLDszsgIzk5QzEKK+mngiA+IGLEg287ICM5OUMyCivpp4MgPiBrdcOgaTsgIzk5QzMKK+mnhCA+IHTDum87ICM5OUM0Civpp4UgPiB5w6w7ICM5OUM1Civpp4YgPiBxxas7ICM5OUM2Civpp4ggPiBxxas7ICM5OUM4Civpp4kgPiBqxKtvbmc7ICM5OUM5Civpp4ogPiBixY87ICM5OUNBCivpp4sgPiB6aMSBbzsgIzk5Q0IKK+mnjCA+IHl1xIFuOyAjOTlDQwor6aeNID4gcMSTbmc7ICM5OUNECivpp44gPiB6aMOydTsgIzk5Q0UKK+mnjyA+IGrDuTsgIzk5Q0YKK+mnkCA+IHpow7k7ICM5OUQwCivpp5EgPiBuw7o7ICM5OUQxCivpp5IgPiBqxas7ICM5OUQyCivpp5MgPiBww607ICM5OUQzCivpp5QgPiB6xINuZzsgIzk5RDQKK+mnlSA+IGppw6A7ICM5OUQ1Civpp5YgPiBsw61uZzsgIzk5RDYKK+mnlyA+IHpoxJNuOyAjOTlENwor6aeYID4gdMOhaTsgIzk5RDgKK+mnmSA+IGbDuTsgIzk5RDkKK+mnmiA+IHnEg25nOyAjOTlEQQor6aebID4gc2jErTsgIzk5REIKK+mnnCA+IGLDrDsgIzk5REMKK+mnnSA+IHTDum87ICM5OURECivpp54gPiB0w7pvOyAjOTlERQor6aefID4gc8OsOyAjOTlERgor6aegID4gbMOtdTsgIzk5RTAKK+mnoSA+IG3DoDsgIzk5RTEKK+mnoiA+IHBpw6FuOyAjOTlFMgor6aejID4gdMOhbzsgIzk5RTMKK+mnpCA+IHpow6w7ICM5OUU0Civpp6UgPiByw7NuZzsgIzk5RTUKK+mnpiA+IHTDqW5nOyAjOTlFNgor6aenID4gZMOybmc7ICM5OUU3Civpp6ggPiB4w7puOyAjOTlFOAor6aepID4gcXXDoW47ICM5OUU5Civpp6ogPiBzaMSTbjsgIzk5RUEKK+mnqyA+IGrEq29uZzsgIzk5RUIKK+mnrCA+IMSVcjsgIzk5RUMKK+mnrSA+IGjDoGk7ICM5OUVECivpp64gPiBiw7M7ICM5OUVFCivpp68gPiB6aHU7ICM5OUVGCivpp7AgPiB5xKtuOyAjOTlGMAor6aexID4gbMO5bzsgIzk5RjEKK+mnsyA+IGTDoG47ICM5OUYzCivpp7QgPiB4acOoOyAjOTlGNAor6ae1ID4gbMOtdTsgIzk5RjUKK+mntiA+IGrDujsgIzk5RjYKK+mntyA+IHPFj25nOyAjOTlGNwor6ae4ID4gccSrbjsgIzk5RjgKK+mnuSA+IG3DoW5nOyAjOTlGOQor6ae6ID4gbGnDoW5nOyAjOTlGQQor6ae7ID4gaMOgbjsgIzk5RkIKK+mnvCA+IHTDujsgIzk5RkMKK+mnvSA+IHh1w6BuOyAjOTlGRAor6ae+ID4gdMO5aTsgIzk5RkUKK+mnvyA+IGrDuW47ICM5OUZGCivpqIAgPiDDqTsgIzlBMDAKK+mogSA+IGNoxJVuZzsgIzlBMDEKK+mogiA+IHjEq247ICM5QTAyCivpqIMgPiDDoWk7ICM5QTAzCivpqIQgPiBsw7k7ICM5QTA0CivpqIUgPiB6aMWraTsgIzlBMDUKK+mohiA+IHpoxY11OyAjOUEwNgor6aiHID4gc2jElTsgIzlBMDcKK+moiCA+IHBpw6FuOyAjOUEwOAor6aiJID4ga8WrbjsgIzlBMDkKK+moiiA+IHTDoW87ICM5QTBBCivpqIsgPiBsw6FpOyAjOUEwQgor6aiMID4gesWNbmc7ICM5QTBDCivpqI0gPiBrw6g7ICM5QTBECivpqI4gPiBxw607ICM5QTBFCivpqI8gPiBxw607ICM5QTBGCivpqJAgPiB5w6BuOyAjOUExMAor6aiRID4gZsSTaTsgIzlBMTEKK+mokiA+IHPEgW87ICM5QTEyCivpqJMgPiB5xINuOyAjOUExMwor6aiUID4gamnDqTsgIzlBMTQKK+molSA+IHnEg287ICM5QTE1CivpqJYgPiB3w7k7ICM5QTE2CivpqJcgPiBwacOgbjsgIzlBMTcKK+momCA+IGPFjW5nOyAjOUExOAor6aiZID4gcGnDoG47ICM5QTE5CivpqJogPiBxacOhbjsgIzlBMUEKK+momyA+IGbEk2k7ICM5QTFCCivpqJwgPiBodcOhbmc7ICM5QTFDCivpqJ0gPiBqacSBbjsgIzlBMUQKK+moniA+IGjDuW87ICM5QTFFCivpqJ8gPiB5w7k7ICM5QTFGCivpqKAgPiB0w607ICM5QTIwCivpqKEgPiBxdcOhbjsgIzlBMjEKK+mooiA+IHhpw6E7ICM5QTIyCivpqKMgPiB6xY1uZzsgIzlBMjMKK+mopCA+IGvDumk7ICM5QTI0CivpqKUgPiByw7N1OyAjOUEyNQor6aimID4gc8SrOyAjOUEyNgor6ainID4gZ3XEgTsgIzlBMjcKK+moqCA+IHTDum87ICM5QTI4CivpqKkgPiBrw7lpOyAjOUEyOQor6aiqID4gc8WNdTsgIzlBMkEKK+moqyA+IHFpxIFuOyAjOUEyQgor6aisID4gY2jDqW5nOyAjOUEyQwor6aitID4gemjDrDsgIzlBMkQKK+moriA+IGzDrXU7ICM5QTJFCivpqK8gPiBww6FuZzsgIzlBMkYKK+mosCA+IHTDqW5nOyAjOUEzMAor6aixID4geMSrOyAjOUEzMQor6aiyID4gY8SDbzsgIzlBMzIKK+mosyA+IGTDujsgIzlBMzMKK+motCA+IHnDoG47ICM5QTM0CivpqLUgPiB5dcOhbjsgIzlBMzUKK+motiA+IHrFjXU7ICM5QTM2CivpqLcgPiBzxIFvOyAjOUEzNwor6ai4ID4gc2jDoG47ICM5QTM4CivpqLkgPiBsw607ICM5QTM5CivpqLogPiB6aMOsOyAjOUEzQQor6ai7ID4gc2h1xINuZzsgIzlBM0IKK+movCA+IGzDuTsgIzlBM0MKK+movSA+IHjDrTsgIzlBM0QKK+moviA+IGzDum87ICM5QTNFCivpqL8gPiB6aMSBbmc7ICM5QTNGCivpqYAgPiBtw7I7ICM5QTQwCivpqYEgPiDDoW87ICM5QTQxCivpqYIgPiBjxIFuOyAjOUE0Mgor6amDID4gcGnDoG87ICM5QTQzCivpqYQgPiBjxY1uZzsgIzlBNDQKK+mphSA+IHHFqzsgIzlBNDUKK+mphiA+IGLDrDsgIzlBNDYKK+mphyA+IHpow6w7ICM5QTQ3CivpqYggPiB5w7k7ICM5QTQ4CivpqYkgPiB4xas7ICM5QTQ5CivpqYogPiBodcOhOyAjOUE0QQor6amLID4gYsWNOyAjOUE0Qgor6amMID4gc8O5OyAjOUE0Qwor6amNID4geGnEgW87ICM5QTRECivpqY4gPiBsw61uOyAjOUE0RQor6amPID4gY2jEg247ICM5QTRGCivpqZAgPiBkxatuOyAjOUE1MAor6amRID4gbMOtdTsgIzlBNTEKK+mpkiA+IHTDum87ICM5QTUyCivpqZMgPiB6xJNuZzsgIzlBNTMKK+mplCA+IHTDoW47ICM5QTU0CivpqZUgPiBqacSBbzsgIzlBNTUKK+mpliA+IHRpxJU7ICM5QTU2CivpqZcgPiB5w6BuOyAjOUE1Nwor6amYID4gbMO6bzsgIzlBNTgKK+mpmSA+IHpoxIFuOyAjOUE1OQor6amaID4gasSrbmc7ICM5QTVBCivpqZsgPiB5w6w7ICM5QTVCCivpqZwgPiB5w6g7ICM5QTVDCivpqZ0gPiB0xatvOyAjOUE1RAor6ameID4gYsSrbjsgIzlBNUUKK+mpnyA+IHrDsnU7ICM5QTVGCivpqaAgPiB5w6BuOyAjOUE2MAor6amhID4gcMOpbmc7ICM5QTYxCivpqaIgPiBsx5g7ICM5QTYyCivpqaMgPiB0w6luZzsgIzlBNjMKK+mppCA+IHhpxIFuZzsgIzlBNjQKK+mppSA+IGrDrDsgIzlBNjUKK+mppiA+IHNodcSBbmc7ICM5QTY2CivpqacgPiBqw7o7ICM5QTY3CivpqaggPiB4xKs7ICM5QTY4CivpqakgPiBodcSBbjsgIzlBNjkKK+mpqiA+IGzDrTsgIzlBNkEKK+mpqyA+IGJpxIFvOyAjOUE2Qgor6amsID4gbcSDOyAjOUE2Qwor6amtID4gecO5OyAjOUE2RAor6amuID4gdMO6bzsgIzlBNkUKK+mpryA+IHjDum47ICM5QTZGCivpqbAgPiBjaMOtOyAjOUE3MAor6amxID4gccWrOyAjOUE3MQor6amyID4gcsOsOyAjOUE3Mgor6amzID4gYsOzOyAjOUE3Mwor6am0ID4gbMeYOyAjOUE3NAor6am1ID4gesSDbmc7ICM5QTc1CivpqbYgPiBzaMStOyAjOUE3Ngor6am3ID4gc8OsOyAjOUE3Nwor6am4ID4gZsO5OyAjOUE3OAor6am5ID4gasWrOyAjOUE3OQor6am6ID4gesWNdTsgIzlBN0EKK+mpuyA+IHpow7k7ICM5QTdCCivpqbwgPiB0w7pvOyAjOUE3Qwor6am9ID4gbsO6OyAjOUE3RAor6am+ID4gamnDoDsgIzlBN0UKK+mpvyA+IHnDrDsgIzlBN0YKK+mqgCA+IHTDoWk7ICM5QTgwCivpqoEgPiB4acSBbzsgIzlBODEKK+mqgiA+IG3DoDsgIzlBODIKK+mqgyA+IHnEq247ICM5QTgzCivpqoQgPiBqacSBbzsgIzlBODQKK+mqhSA+IGh1w6E7ICM5QTg1CivpqoYgPiBsw7lvOyAjOUE4Ngor6aqHID4gaMOgaTsgIzlBODcKK+mqiCA+IHBpw6FuOyAjOUE4OAor6aqJID4gYmnEgW87ICM5QTg5CivpqoogPiBsw607ICM5QThBCivpqosgPiBjaMSVbmc7ICM5QThCCivpqowgPiB5w6BuOyAjOUE4Qwor6aqNID4geMSrbjsgIzlBOEQKK+mqjiA+IHHEq247ICM5QThFCivpqo8gPiBqw7luOyAjOUE4Rgor6aqQID4gccOtOyAjOUE5MAor6aqRID4gccOtOyAjOUE5MQor6aqSID4ga8OoOyAjOUE5Mgor6aqTID4gemjFq2k7ICM5QTkzCivpqpQgPiB6xY1uZzsgIzlBOTQKK+mqlSA+IHPDuTsgIzlBOTUKK+mqliA+IGPEgW47ICM5QTk2CivpqpcgPiBwacOgbjsgIzlBOTcKK+mqmCA+IHpow6w7ICM5QTk4CivpqpkgPiBrw7ppOyAjOUE5OQor6aqaID4gc8SBbzsgIzlBOUEKK+mqmyA+IHfDuTsgIzlBOUIKK+mqnCA+IMOhbzsgIzlBOUMKK+mqnSA+IGzDrXU7ICM5QTlECivpqp4gPiBxacSBbjsgIzlBOUUKK+mqnyA+IHNow6BuOyAjOUE5Rgor6aqgID4gcGnDoG87ICM5QUEwCivpqqEgPiBsw7pvOyAjOUFBMQor6aqiID4gY8WNbmc7ICM5QUEyCivpqqMgPiBjaMSDbjsgIzlBQTMKK+mqpCA+IHrDsnU7ICM5QUE0CivpqqUgPiBqw6w7ICM5QUE1CivpqqYgPiBzaHXEgW5nOyAjOUFBNgor6aqnID4geGnEgW5nOyAjOUFBNwor6aqoID4gZ8WtOyAjOUFBOAor6aqpID4gd8SVaTsgIzlBQTkKK+mqqiA+IHfElWk7ICM5QUFBCivpqqsgPiB3xJVpOyAjOUFBQgor6aqsID4gecO6OyAjOUFBQwor6aqtID4gZ8OgbjsgIzlBQUQKK+mqriA+IHnDrDsgIzlBQUUKK+mqryA+IMSBbmc7ICM5QUFGCivpqrAgPiB0w7N1OyAjOUFCMAor6aqxID4geGnDqDsgIzlBQjEKK+mqsiA+IGLEgW87ICM5QUIyCivpqrMgPiBiw6w7ICM5QUIzCivpqrQgPiBjaMSrOyAjOUFCNAor6aq1ID4gdMStOyAjOUFCNQor6aq2ID4gZMStOyAjOUFCNgor6aq3ID4ga8WrOyAjOUFCNwor6aq4ID4gaMOhaTsgIzlBQjgKK+mquSA+IHFpxIFvOyAjOUFCOQor6aq6ID4gZ8OydTsgIzlBQkEKK+mquyA+IGt1w6A7ICM5QUJCCivpqrwgPiBnw6k7ICM5QUJDCivpqr0gPiB0xa1pOyAjOUFCRAor6aq+ID4gZ8SVbmc7ICM5QUJFCivpqr8gPiBwacOhbjsgIzlBQkYKK+mrgCA+IGLDrDsgIzlBQzAKK+mrgSA+IGvEkzsgIzlBQzEKK+mrgiA+IGvDoDsgIzlBQzIKK+mrgyA+IHnDujsgIzlBQzMKK+mrhCA+IHPFrWk7ICM5QUM0Civpq4UgPiBsw7N1OyAjOUFDNQor6auGID4gYsOzOyAjOUFDNgor6auHID4geGnEgW87ICM5QUM3Civpq4ggPiBww6FuZzsgIzlBQzgKK+mriSA+IGLFjTsgIzlBQzkKK+mriiA+IGPEqzsgIzlBQ0EKK+mriyA+IGt1xIFuOyAjOUFDQgor6auMID4gYsOsbjsgIzlBQ0MKK+mrjSA+IG3DszsgIzlBQ0QKK+mrjiA+IGxpw6FvOyAjOUFDRQor6auPID4gbMOzdTsgIzlBQ0YKK+mrkCA+IG7DoW87ICM5QUQwCivpq5EgPiBkw7o7ICM5QUQxCivpq5IgPiB6xIFuZzsgIzlBRDIKK+mrkyA+IHPFrWk7ICM5QUQzCivpq5QgPiB0xK07ICM5QUQ0Civpq5UgPiBiw6xuOyAjOUFENQor6auWID4ga3XEgW47ICM5QUQ2Civpq5cgPiBsw7o7ICM5QUQ3Civpq5ggPiBnxIFvOyAjOUFEOAor6auZID4gZ8SBbzsgIzlBRDkKK+mrmiA+IHFpw6BvOyAjOUFEQQor6aubID4ga8SBbzsgIzlBREIKK+mrnCA+IHFpxIFvOyAjOUFEQwor6audID4gbMOgbzsgIzlBREQKK+mrniA+IHrDoG87ICM5QURFCivpq58gPiBiacSBbzsgIzlBREYKK+mroCA+IGvFq247ICM5QUUwCivpq6EgPiBrxatuOyAjOUFFMQor6auiID4gdMOsOyAjOUFFMgor6aujID4gZsSDbmc7ICM5QUUzCivpq6QgPiB4xKt1OyAjOUFFNAor6aulID4gcsOhbjsgIzlBRTUKK+mrpiA+IG3DoW87ICM5QUU2Civpq6cgPiBkw6BuOyAjOUFFNwor6auoID4ga8WrbjsgIzlBRTgKK+mrqSA+IGLDrG47ICM5QUU5Civpq6ogPiBmw6A7ICM5QUVBCivpq6sgPiB0acOhbzsgIzlBRUIKK+mrrCA+IHBlbmc7ICM5QUVDCivpq60gPiB6xKs7ICM5QUVECivpq64gPiBmxIM7ICM5QUVFCivpq68gPiByw6FuOyAjOUFFRgor6auwID4gdMOsOyAjOUFGMAor6auxID4gcMOgbzsgIzlBRjEKK+mrsiA+IHDEqzsgIzlBRjIKK+mrsyA+IG3DoW87ICM5QUYzCivpq7QgPiBmw7o7ICM5QUY0Civpq7UgPiDDqXI7ICM5QUY1Civpq7YgPiByw7NuZzsgIzlBRjYKK+mrtyA+IHHFqzsgIzlBRjcKK+mruCA+IGdvbmc7ICM5QUY4Civpq7kgPiB4xKt1OyAjOUFGOQor6au6ID4gZ3XDoDsgIzlBRkEKK+mruyA+IGrDrDsgIzlBRkIKK+mrvCA+IHDDqW5nOyAjOUFGQwor6au9ID4gemh1xIE7ICM5QUZECivpq74gPiBzaMSBbzsgIzlBRkUKK+mrvyA+IHNoxIE7ICM5QUZGCivprIAgPiB0w6w7ICM5QjAwCivprIEgPiBsw6w7ICM5QjAxCivprIIgPiBiw6xuOyAjOUIwMgor6ayDID4gesWNbmc7ICM5QjAzCivprIQgPiB0w6w7ICM5QjA0CivprIUgPiBww6luZzsgIzlCMDUKK+mshiA+IHPFjW5nOyAjOUIwNgor6ayHID4gemjEk25nOyAjOUIwNwor6ayIID4gcXXDoW47ICM5QjA4CivprIkgPiB6xY1uZzsgIzlCMDkKK+msiiA+IHNow7luOyAjOUIwQQor6ayLID4gamnEgW47ICM5QjBCCivprIwgPiBkxa1vOyAjOUIwQwor6ayNID4gaMO6OyAjOUIwRAor6ayOID4gbMOgOyAjOUIwRQor6ayPID4gasSrdTsgIzlCMEYKK+mskCA+IHHDrTsgIzlCMTAKK+mskSA+IGxpw6FuOyAjOUIxMQor6aySID4gemjElW47ICM5QjEyCivprJMgPiBiw6xuOyAjOUIxMwor6ayUID4gcMOpbmc7ICM5QjE0CivprJUgPiBtw7I7ICM5QjE1CivprJYgPiBzxIFuOyAjOUIxNgor6ayXID4gbcOgbjsgIzlCMTcKK+msmCA+IG3DoW47ICM5QjE4CivprJkgPiBzxJNuZzsgIzlCMTkKK+msmiA+IHjFqzsgIzlCMUEKK+msmyA+IGxpw6g7ICM5QjFCCivprJwgPiBxacSBbjsgIzlCMUMKK+msnSA+IHFpxIFuOyAjOUIxRAor6ayeID4gbsOzbmc7ICM5QjFFCivprJ8gPiBodcOhbjsgIzlCMUYKK+msoCA+IGt1w6BpOyAjOUIyMAor6ayhID4gbsOtbmc7ICM5QjIxCivprKIgPiBiw6xuOyAjOUIyMgor6ayjID4gbGnDqDsgIzlCMjMKK+mspCA+IHLDoW5nOyAjOUIyNAor6aylID4gZMOydTsgIzlCMjUKK+mspiA+IGTDsnU7ICM5QjI2CivprKcgPiBuw6BvOyAjOUIyNwor6ayoID4gaMWNbmc7ICM5QjI4CivprKkgPiB4w6w7ICM5QjI5CivprKogPiBkw7J1OyAjOUIyQQor6ayrID4gaMSDbjsgIzlCMkIKK+msrCA+IGTDsnU7ICM5QjJDCivprK0gPiBkw7J1OyAjOUIyRAor6ayuID4gasSrdTsgIzlCMkUKK+msryA+IGNow6BuZzsgIzlCMkYKK+mssCA+IHnDuTsgIzlCMzAKK+mssSA+IHnDuTsgIzlCMzEKK+mssiA+IGzDrDsgIzlCMzIKK+mssyA+IGp1w6BuOyAjOUIzMwor6ay0ID4gZsWtOyAjOUIzNAor6ay1ID4gcWnDoW47ICM5QjM1CivprLYgPiBnxatpOyAjOUIzNgor6ay3ID4gesWNbmc7ICM5QjM3CivprLggPiBsw6x1OyAjOUIzOAor6ay5ID4gZ8WraTsgIzlCMzkKK+msuiA+IHNoxIFuZzsgIzlCM0EKK+msuyA+IHnDuTsgIzlCM0IKK+msvCA+IGfFrWk7ICM5QjNDCivprL0gPiBtw6hpOyAjOUIzRAor6ay+ID4gasOsOyAjOUIzRQor6ay/ID4gccOtOyAjOUIzRgor6a2AID4gamnDqDsgIzlCNDAKK+mtgSA+IGvDumk7ICM5QjQxCivprYIgPiBow7puOyAjOUI0Mgor6a2DID4gYsOhOyAjOUI0Mwor6a2EID4gcMOyOyAjOUI0NAor6a2FID4gbcOoaTsgIzlCNDUKK+mthiA+IHjDuTsgIzlCNDYKK+mthyA+IHnEg247ICM5QjQ3CivprYggPiB4acSBbzsgIzlCNDgKK+mtiSA+IGxpxINuZzsgIzlCNDkKK+mtiiA+IHnDuTsgIzlCNEEKK+mtiyA+IHTDumk7ICM5QjRCCivprYwgPiBxxKs7ICM5QjRDCivprY0gPiB3xINuZzsgIzlCNEQKK+mtjiA+IGxpxINuZzsgIzlCNEUKK+mtjyA+IHfDqGk7ICM5QjRGCivprZAgPiBqacSBbjsgIzlCNTAKK+mtkSA+IGNoxKs7ICM5QjUxCivprZIgPiBwacSBbzsgIzlCNTIKK+mtkyA+IGLDrDsgIzlCNTMKK+mtlCA+IG3DszsgIzlCNTQKK+mtlSA+IGrErTsgIzlCNTUKK+mtliA+IHjFqzsgIzlCNTYKK+mtlyA+IGNoxY91OyAjOUI1Nwor6a2YID4gecSDbjsgIzlCNTgKK+mtmSA+IHpoxINuOyAjOUI1OQor6a2aID4gecO6OyAjOUI1QQor6a2bID4gZMSBbzsgIzlCNUIKK+mtnCA+IHLDqW47ICM5QjVDCivprZ0gPiBqw6w7ICM5QjVECivprZ8gPiBnxY1uZzsgIzlCNUYKK+mtoCA+IHTDum87ICM5QjYwCivpraEgPiBkacOgbzsgIzlCNjEKK+mtoiA+IGrErTsgIzlCNjIKK+mtoyA+IHjDuTsgIzlCNjMKK+mtpCA+IMOpOyAjOUI2NAor6a2lID4gw6g7ICM5QjY1CivpraYgPiBzaMSBOyAjOUI2Ngor6a2nID4gaMOhbmc7ICM5QjY3CivpraggPiB0w7puOyAjOUI2OAor6a2pID4gbcOyOyAjOUI2OQor6a2qID4gamnDqDsgIzlCNkEKK+mtqyA+IHNoxJVuOyAjOUI2Qgor6a2sID4gZsSDbjsgIzlCNkMKK+mtrSA+IHl1w6FuOyAjOUI2RAor6a2uID4gYsOtOyAjOUI2RQor6a2vID4gbMWtOyAjOUI2Rgor6a2wID4gd8OpbjsgIzlCNzAKK+mtsSA+IGjDujsgIzlCNzEKK+mtsiA+IGzDujsgIzlCNzIKK+mtsyA+IHrDoTsgIzlCNzMKK+mttCA+IGbDoW5nOyAjOUI3NAor6a21ID4gZsOpbjsgIzlCNzUKK+mttiA+IG7DoDsgIzlCNzYKK+mttyA+IHnDs3U7ICM5Qjc3CivprbogPiBow6k7ICM5QjdBCivprbsgPiB4acOhOyAjOUI3Qgor6a28ID4gccWrOyAjOUI3Qwor6a29ID4gaMSBbjsgIzlCN0QKK+mtviA+IHDDrTsgIzlCN0UKK+mtvyA+IGzDrW5nOyAjOUI3Rgor6a6AID4gdMO6bzsgIzlCODAKK+mugSA+IGLFjTsgIzlCODEKK+mugiA+IHHDrXU7ICM5QjgyCivproMgPiBww61uZzsgIzlCODMKK+muhCA+IGbDujsgIzlCODQKK+muhSA+IGLDrDsgIzlCODUKK+muhiA+IGrDrDsgIzlCODYKK+muhyA+IHfDqGk7ICM5Qjg3CivproggPiBqxas7ICM5Qjg4CivprokgPiBkacSBbzsgIzlCODkKK+muiiA+IGLDszsgIzlCOEEKK+muiyA+IHnDs3U7ICM5QjhCCivprowgPiBnxa1uOyAjOUI4Qwor6a6NID4gcMSrOyAjOUI4RAor6a6OID4gbmnDoW47ICM5QjhFCivpro8gPiB4xKtuZzsgIzlCOEYKK+mukCA+IHTDoWk7ICM5QjkwCivprpEgPiBiw6BvOyAjOUI5MQor6a6SID4gZsO5OyAjOUI5Mgor6a6TID4gemjEgzsgIzlCOTMKK+mulCA+IGrDuTsgIzlCOTQKK+mulSA+IGfFqzsgIzlCOTUKK+mumSA+IHTDoDsgIzlCOTkKK+mumiA+IGppw6k7ICM5QjlBCivprpsgPiBzaMO5OyAjOUI5Qgor6a6cID4gaMOydTsgIzlCOUMKK+munSA+IHhpxINuZzsgIzlCOUQKK+muniA+IMOpcjsgIzlCOUUKK+munyA+IMOgbjsgIzlCOUYKK+muoCA+IHfDqWk7ICM5QkEwCivprqEgPiB0acSBbzsgIzlCQTEKK+muoiA+IHpoxas7ICM5QkEyCivprqMgPiB5w6xuOyAjOUJBMwor6a6kID4gbGnDqDsgIzlCQTQKK+mupSA+IGzDuW87ICM5QkE1CivprqYgPiB0w7NuZzsgIzlCQTYKK+mupyA+IHnDrTsgIzlCQTcKK+muqCA+IHHDrTsgIzlCQTgKK+muqSA+IGLDrG5nOyAjOUJBOQor6a6qID4gd8SVaTsgIzlCQUEKK+muqyA+IGppxINvOyAjOUJBQgor6a6sID4gYsO5OyAjOUJBQwor6a6tID4gZ8WraTsgIzlCQUQKK+muriA+IHhpxIFuOyAjOUJBRQor6a6vID4gZ8OpOyAjOUJBRgor6a6wID4gaMO6aTsgIzlCQjAKK+musyA+IGvEg287ICM5QkIzCivprrUgPiBkw7pvOyAjOUJCNQor6a62ID4gasWrbjsgIzlCQjYKK+mutyA+IHTDrTsgIzlCQjcKK+muuCA+IG3Eg247ICM5QkI4CivprrkgPiB4acSBbzsgIzlCQjkKK+muuiA+IHrEgzsgIzlCQkEKK+muuyA+IHNoxIE7ICM5QkJCCivprrwgPiBxxKtuOyAjOUJCQwor6a69ID4gecO6OyAjOUJCRAor6a6+ID4gbsSVaTsgIzlCQkUKK+muvyA+IHpow6k7ICM5QkJGCivpr4AgPiBnxa1uOyAjOUJDMAor6a+BID4gZ8SVbmc7ICM5QkMxCivpr4IgPiBzdTsgIzlCQzIKK+mvgyA+IHfDujsgIzlCQzMKK+mvhCA+IHHDrXU7ICM5QkM0Civpr4UgPiB0w61uZzsgIzlCQzUKK+mvhiA+IGbFrTsgIzlCQzYKK+mvhyA+IHfEg247ICM5QkM3Civpr4ggPiB5w7N1OyAjOUJDOAor6a+JID4gbMStOyAjOUJDOQor6a+KID4gc2jEgTsgIzlCQ0EKK+mviyA+IHNoxIE7ICM5QkNCCivpr4wgPiBnw6BvOyAjOUJDQwor6a+NID4gbcOpbmc7ICM5QkNECivpr5IgPiB5xY9uZzsgIzlCRDIKK+mvkyA+IG7DrTsgIzlCRDMKK+mvlCA+IHrEqzsgIzlCRDQKK+mvlSA+IHHDrTsgIzlCRDUKK+mvliA+IHHEq25nOyAjOUJENgor6a+XID4geGnEg25nOyAjOUJENwor6a+YID4gbsSVaTsgIzlCRDgKK+mvmSA+IGNow7puOyAjOUJEOQor6a+aID4gasOsOyAjOUJEQQor6a+bID4gZGnEgW87ICM5QkRCCivpr5wgPiBxacOoOyAjOUJEQwor6a+dID4gZ8O5OyAjOUJERAor6a+eID4gemjFj3U7ICM5QkRFCivpr58gPiBkxY1uZzsgIzlCREYKK+mvoCA+IGzDoWk7ICM5QkUwCivpr6EgPiBmxJNpOyAjOUJFMQor6a+iID4gbsOtOyAjOUJFMgor6a+jID4gecOsOyAjOUJFMwor6a+kID4ga8WrbjsgIzlCRTQKK+mvpSA+IGzDuTsgIzlCRTUKK+mvpiA+IGrDrHU7ICM5QkU2Civpr6cgPiBjaMSBbmc7ICM5QkU3Civpr6ggPiBqxKtuZzsgIzlCRTgKK+mvqSA+IGzDum47ICM5QkU5Civpr6ogPiBsw61uZzsgIzlCRUEKK+mvqyA+IHrFjXU7ICM5QkVCCivpr6wgPiBsw607ICM5QkVDCivpr60gPiBtxJVuZzsgIzlCRUQKK+mvriA+IHrFjW5nOyAjOUJFRQor6a+vID4gemjDrDsgIzlCRUYKK+mvsCA+IG5pw6FuOyAjOUJGMAor6a+0ID4gc2jEqzsgIzlCRjQKK+mvtSA+IHNoxJNuOyAjOUJGNQor6a+2ID4gaMWtbjsgIzlCRjYKK+mvtyA+IHNow6w7ICM5QkY3Civpr7ggPiBow7N1OyAjOUJGOAor6a+5ID4geMSrbmc7ICM5QkY5Civpr7ogPiB6aMWrOyAjOUJGQQor6a+7ID4gbMOgOyAjOUJGQgor6a+8ID4gesWNbmc7ICM5QkZDCivpr70gPiBqw6w7ICM5QkZECivpr74gPiBiacSBbjsgIzlCRkUKK+mvvyA+IGJpxIFuOyAjOUJGRgor6bCAID4gaHXDoG47ICM5QzAwCivpsIEgPiBxdcOhbjsgIzlDMDEKK+mwgiA+IHrDqTsgIzlDMDIKK+mwgyA+IHfEk2k7ICM5QzAzCivpsIQgPiB3xJNpOyAjOUMwNAor6bCFID4gecO6OyAjOUMwNQor6bCGID4gccWrbjsgIzlDMDYKK+mwhyA+IHLDs3U7ICM5QzA3CivpsIggPiBkacOpOyAjOUMwOAor6bCJID4gaHXDoW5nOyAjOUMwOQor6bCKID4gbGnDoG47ICM5QzBBCivpsIsgPiB5xINuOyAjOUMwQgor6bCMID4gccOtdTsgIzlDMEMKK+mwjSA+IHHEq3U7ICM5QzBECivpsI4gPiBqacOgbjsgIzlDMEUKK+mwjyA+IGLDrDsgIzlDMEYKK+mwkCA+IMOoOyAjOUMxMAor6bCRID4gecOhbmc7ICM5QzExCivpsJIgPiBmw7k7ICM5QzEyCivpsJMgPiBzxIFpOyAjOUMxMwor6bCUID4gamnEg247ICM5QzE0CivpsJUgPiB4acOhOyAjOUMxNQor6bCWID4gdMWtbzsgIzlDMTYKK+mwlyA+IGjDujsgIzlDMTcKK+mwmSA+IHLDuW87ICM5QzE5CivpsJsgPiB3xJNuOyAjOUMxQgor6bCcID4gamnEgW47ICM5QzFDCivpsJ0gPiBow6BvOyAjOUMxRAor6bCeID4gd8WrOyAjOUMxRQor6bCfID4gZsOhbmc7ICM5QzFGCivpsKAgPiBzxIFvOyAjOUMyMAor6bChID4gbMOtdTsgIzlDMjEKK+mwoiA+IG3EgzsgIzlDMjIKK+mwoyA+IHNow607ICM5QzIzCivpsKQgPiBzaMSrOyAjOUMyNAor6bClID4gecOtbjsgIzlDMjUKK+mwpiA+IHrMhDsgIzlDMjYKK+mwpyA+IHTDqW5nOyAjOUMyNwor6bCoID4gdMOgOyAjOUMyOAor6bCpID4gecOhbzsgIzlDMjkKK+mwqiA+IGfDqTsgIzlDMkEKK+mwqyA+IHLDs25nOyAjOUMyQgor6bCsID4gcWnDoW47ICM5QzJDCivpsK0gPiBxw607ICM5QzJECivpsK4gPiB3xJNuOyAjOUMyRQor6bCvID4gcsO5bzsgIzlDMkYKK+mwsSA+IGxpw6FuOyAjOUMzMQor6bCyID4gw6FvOyAjOUMzMgor6bCzID4gbMOoOyAjOUMzMwor6bC0ID4gaMWraTsgIzlDMzQKK+mwtSA+IG3ErW47ICM5QzM1CivpsLYgPiBqw6w7ICM5QzM2CivpsLcgPiB0acOhbzsgIzlDMzcKK+mwuCA+IHHFqzsgIzlDMzgKK+mwuSA+IGppxIFuOyAjOUMzOQor6bC6ID4gc8SBbzsgIzlDM0EKK+mwuyA+IG3DoW47ICM5QzNCCivpsLwgPiB4w607ICM5QzNDCivpsL0gPiBxw611OyAjOUMzRAor6bC+ID4gYmnDoG87ICM5QzNFCivpsL8gPiBqxKs7ICM5QzNGCivpsYAgPiBqw6w7ICM5QzQwCivpsYEgPiB6aMO6OyAjOUM0MQor6bGCID4gamnEgW5nOyAjOUM0Mgor6bGDID4gccSrdTsgIzlDNDMKK+mxhCA+IHpodcSBbjsgIzlDNDQKK+mxhSA+IHnDs25nOyAjOUM0NQor6bGGID4gemjEgW5nOyAjOUM0Ngor6bGHID4ga8SBbmc7ICM5QzQ3CivpsYggPiB4dcSVOyAjOUM0OAor6bGJID4gYmnEkzsgIzlDNDkKK+mxiiA+IGp1w6k7ICM5QzRBCivpsYsgPiBxxas7ICM5QzRCCivpsYwgPiB4acOgbmc7ICM5QzRDCivpsY0gPiBixY07ICM5QzRECivpsY4gPiBqacSBbzsgIzlDNEUKK+mxjyA+IHjDum47ICM5QzRGCivpsZAgPiBzw7k7ICM5QzUwCivpsZEgPiBodcOhbmc7ICM5QzUxCivpsZIgPiB6w7luOyAjOUM1Mgor6bGTID4gc2jDoG47ICM5QzUzCivpsZQgPiBzaMOgbjsgIzlDNTQKK+mxlSA+IGbEgW47ICM5QzU1CivpsZYgPiBqdcOpOyAjOUM1Ngor6bGXID4gbMOtbjsgIzlDNTcKK+mxmCA+IHjDum47ICM5QzU4CivpsZkgPiBtacOhbzsgIzlDNTkKK+mxmiA+IHjErTsgIzlDNUEKK+mxnSA+IGbDqG47ICM5QzVECivpsZ4gPiBndcSBbjsgIzlDNUUKK+mxnyA+IGjDsnU7ICM5QzVGCivpsaAgPiBrdcOgaTsgIzlDNjAKK+mxoSA+IHrDqWk7ICM5QzYxCivpsaIgPiBzxIFvOyAjOUM2Mgor6bGjID4gemjEgW47ICM5QzYzCivpsaQgPiBnxINuOyAjOUM2NAor6bGlID4gZ8O5aTsgIzlDNjUKK+mxpiA+IHNow6luZzsgIzlDNjYKK+mxpyA+IGzErTsgIzlDNjcKK+mxqCA+IGNow6FuZzsgIzlDNjgKK+mxrCA+IHLDujsgIzlDNkMKK+mxrSA+IGrDrDsgIzlDNkQKK+mxriA+IHjDuTsgIzlDNkUKK+mxryA+IGjDuW87ICM5QzZGCivpsbEgPiBsw6w7ICM5QzcxCivpsbIgPiBsacOoOyAjOUM3Mgor6bGzID4gbMOsOyAjOUM3Mwor6bG0ID4gbWnDqDsgIzlDNzQKK+mxtSA+IHpoxJNuOyAjOUM3NQor6bG2ID4geGnEg25nOyAjOUM3Ngor6bG3ID4gw6g7ICM5Qzc3CivpsbggPiBsw7o7ICM5Qzc4CivpsbkgPiBndcOgbjsgIzlDNzkKK+mxuiA+IGzDrTsgIzlDN0EKK+mxuyA+IHhpxIFuOyAjOUM3Qgor6bG8ID4gecO6OyAjOUM3Qwor6bG9ID4gZMSBbzsgIzlDN0QKK+mxviA+IGrErTsgIzlDN0UKK+mxvyA+IHnDs3U7ICM5QzdGCivpsoAgPiB0w7puOyAjOUM4MAor6bKBID4gbMWtOyAjOUM4MQor6bKCID4gZsOhbmc7ICM5QzgyCivpsoMgPiBixIE7ICM5QzgzCivpsoQgPiBow6k7ICM5Qzg0CivpsoUgPiBixY07ICM5Qzg1CivpsoYgPiBww61uZzsgIzlDODYKK+myhyA+IG5pw6FuOyAjOUM4Nwor6bKIID4gbMO6OyAjOUM4OAor6bKJID4gecOzdTsgIzlDODkKK+myiiA+IHpoxIM7ICM5QzhBCivpsosgPiBmw7k7ICM5QzhCCivpsowgPiBiw7M7ICM5QzhDCivpso0gPiBiw6BvOyAjOUM4RAor6bKOID4gaMOydTsgIzlDOEUKK+myjyA+IHDEqzsgIzlDOEYKK+mykCA+IHTDoWk7ICM5QzkwCivpspEgPiBnxatpOyAjOUM5MQor6bKSID4gamnDqTsgIzlDOTIKK+mykyA+IGvEg287ICM5QzkzCivpspQgPiB3xJVpOyAjOUM5NAor6bKVID4gw6lyOyAjOUM5NQor6bKWID4gdMOzbmc7ICM5Qzk2CivpspcgPiB6w6k7ICM5Qzk3CivpspggPiBow7J1OyAjOUM5OAor6bKZID4ga3XDoGk7ICM5Qzk5CivpspogPiBqw6w7ICM5QzlBCivpspsgPiBqacSDbzsgIzlDOUIKK+mynCA+IHhpxIFuOyAjOUM5Qwor6bKdID4gesSDOyAjOUM5RAor6bKeID4geGnEg25nOyAjOUM5RQor6bKfID4geMO6bjsgIzlDOUYKK+myoCA+IGfElW5nOyAjOUNBMAor6bKhID4gbMOtOyAjOUNBMQor6bKiID4gbGnDoW47ICM5Q0EyCivpsqMgPiBqacSBbjsgIzlDQTMKK+mypCA+IGzErTsgIzlDQTQKK+mypSA+IHNow607ICM5Q0E1CivpsqYgPiB0acOhbzsgIzlDQTYKK+mypyA+IGfFrW47ICM5Q0E3CivpsqggPiBzaMSBOyAjOUNBOAor6bKpID4gd8SDbjsgIzlDQTkKK+myqiA+IGrFq247ICM5Q0FBCivpsqsgPiBqw6w7ICM5Q0FCCivpsqwgPiB5xY9uZzsgIzlDQUMKK+myrSA+IHHEq25nOyAjOUNBRAor6bKuID4gbMOtbmc7ICM5Q0FFCivpsq8gPiBxw607ICM5Q0FGCivpsrAgPiB6xY11OyAjOUNCMAor6bKxID4gZsSTaTsgIzlDQjEKK+mysiA+IGvFq247ICM5Q0IyCivpsrMgPiBjaMSBbmc7ICM5Q0IzCivpsrQgPiBnw7k7ICM5Q0I0CivpsrUgPiBuw607ICM5Q0I1CivpsrYgPiBuacOhbjsgIzlDQjYKK+mytyA+IGRpxIFvOyAjOUNCNwor6bK4ID4gasSrbmc7ICM5Q0I4CivpsrkgPiBzaMSTbjsgIzlDQjkKK+myuiA+IHNoxKs7ICM5Q0JBCivpsrsgPiB6xKs7ICM5Q0JCCivpsrwgPiBmw6huOyAjOUNCQwor6bK9ID4gZGnDqTsgIzlDQkQKK+myviA+IGLDrDsgIzlDQkUKK+myvyA+IGNow6FuZzsgIzlDQkYKK+mzgCA+IHNow6w7ICM5Q0MwCivps4EgPiB3xJNuOyAjOUNDMQor6bOCID4gd8STaTsgIzlDQzIKK+mzgyA+IHPEgWk7ICM5Q0MzCivps4QgPiDDqDsgIzlDQzQKK+mzhSA+IHHEq3U7ICM5Q0M1Civps4YgPiBmw7k7ICM5Q0M2Civps4cgPiBodcOhbmc7ICM5Q0M3Civps4ggPiBxdcOhbjsgIzlDQzgKK+mziSA+IGppxIFuZzsgIzlDQzkKK+mziiA+IGJpxIFuOyAjOUNDQQor6bOLID4gc8SBbzsgIzlDQ0IKK+mzjCA+IMOhbzsgIzlDQ0MKK+mzjSA+IHHDrTsgIzlDQ0QKK+mzjiA+IHTDoDsgIzlDQ0UKK+mzjyA+IHnDrW47ICM5Q0NGCivps5AgPiB5w6FvOyAjOUNEMAor6bORID4gZsOhbmc7ICM5Q0QxCivps5IgPiBqacSBbjsgIzlDRDIKK+mzkyA+IGzDqDsgIzlDRDMKK+mzlCA+IGJpw6BvOyAjOUNENAor6bOVID4geHXElTsgIzlDRDUKK+mzliA+IGJpxJM7ICM5Q0Q2Civps5cgPiBtw6FuOyAjOUNENwor6bOYID4gbcStbjsgIzlDRDgKK+mzmSA+IHnDs25nOyAjOUNEOQor6bOaID4gd8OoaTsgIzlDREEKK+mzmyA+IHjDrTsgIzlDREIKK+mznCA+IGp1w6k7ICM5Q0RDCivps50gPiBzaMOgbjsgIzlDREQKK+mzniA+IGzDrW47ICM5Q0RFCivps58gPiB6w7luOyAjOUNERgor6bOgID4gaMO5bzsgIzlDRTAKK+mzoSA+IGfEg247ICM5Q0UxCivps6IgPiBsxK07ICM5Q0UyCivps6MgPiB6aMSBbjsgIzlDRTMKK+mzpCA+IGd1xINuOyAjOUNFNAor6bOlID4gbmnEg287ICM5Q0U1Civps6YgPiB5xK07ICM5Q0U2Civps6cgPiBmw7o7ICM5Q0U3Civps6ggPiBsw6w7ICM5Q0U4Civps6kgPiBqxKt1OyAjOUNFOQor6bOqID4gYsWtOyAjOUNFQQor6bOrID4gecOgbjsgIzlDRUIKK+mzrCA+IGbDujsgIzlDRUMKK+mzrSA+IGRpxIFvOyAjOUNFRAor6bOuID4gasSrOyAjOUNFRQor6bOvID4gZsOobmc7ICM5Q0VGCivps7EgPiBnxIFuOyAjOUNGMQor6bOyID4gc2jEqzsgIzlDRjIKK+mzsyA+IGbDqG5nOyAjOUNGMwor6bO0ID4gbcOtbmc7ICM5Q0Y0Civps7UgPiBixINvOyAjOUNGNQor6bO2ID4geXXEgW47ICM5Q0Y2Civps7cgPiB6aMSrOyAjOUNGNwor6bO4ID4gaMO5OyAjOUNGOAor6bO5ID4gccOtbjsgIzlDRjkKK+mzuiA+IGbFqzsgIzlDRkEKK+mzuyA+IGbEk247ICM5Q0ZCCivps7wgPiB3w6luOyAjOUNGQwor6bO9ID4gamnEgW47ICM5Q0ZECivps74gPiBzaMSrOyAjOUNGRQor6bO/ID4gecO5OyAjOUNGRgor6bSAID4gZsWPdTsgIzlEMDAKK+m0gSA+IHlpxIFvOyAjOUQwMQor6bSCID4ganXDqDsgIzlEMDIKK+m0gyA+IGp1w6k7ICM5RDAzCivptIQgPiBwxKs7ICM5RDA0CivptIUgPiBodcSBbjsgIzlEMDUKK+m0hiA+IHpow6huOyAjOUQwNgor6bSHID4gYsSDbzsgIzlEMDcKK+m0iCA+IHnDoG47ICM5RDA4CivptIkgPiB5xIE7ICM5RDA5CivptIogPiB6aMOobmc7ICM5RDBBCivptIsgPiBmxIFuZzsgIzlEMEIKK+m0jCA+IGbDqG5nOyAjOUQwQwor6bSNID4gd8OpbjsgIzlEMEQKK+m0jiA+IMWNdTsgIzlEMEUKK+m0jyA+IHTDqDsgIzlEMEYKK+m0kCA+IGppxIE7ICM5RDEwCivptJEgPiBuw7o7ICM5RDExCivptJIgPiBsw61uZzsgIzlEMTIKK+m0kyA+IG1pw6g7ICM5RDEzCivptJQgPiBmw7o7ICM5RDE0CivptJUgPiB0w7pvOyAjOUQxNQor6bSWID4gd8OpbjsgIzlEMTYKK+m0lyA+IGzDrDsgIzlEMTcKK+m0mCA+IGJpw6BuOyAjOUQxOAor6bSZID4gemjDrDsgIzlEMTkKK+m0miA+IGfEkzsgIzlEMUEKK+m0myA+IHl1xIFuOyAjOUQxQgor6bScID4gesSrOyAjOUQxQwor6bSdID4gccO6OyAjOUQxRAor6bSeID4geGnEgW87ICM5RDFFCivptJ8gPiB6aMSrOyAjOUQxRgor6bSgID4gZMOgbjsgIzlEMjAKK+m0oSA+IGrFqzsgIzlEMjEKK+m0oiA+IHnDsnU7ICM5RDIyCivptKMgPiBnxas7ICM5RDIzCivptKQgPiB6aMWNbmc7ICM5RDI0CivptKUgPiB5w7k7ICM5RDI1CivptKYgPiB5xIFuZzsgIzlEMjYKK+m0pyA+IHLDsm5nOyAjOUQyNwor6bSoID4gecSBOyAjOUQyOAor6bSpID4gdGnElTsgIzlEMjkKK+m0qiA+IHnDuTsgIzlEMkEKK+m0rCA+IHnEq25nOyAjOUQyQwor6bStID4gemjFq2k7ICM5RDJECivptK4gPiB3xas7ICM5RDJFCivptK8gPiDDqXI7ICM5RDJGCivptLAgPiBndcSBOyAjOUQzMAor6bSxID4gw6BpOyAjOUQzMQor6bSyID4gemjEqzsgIzlEMzIKK+m0syA+IHnDoG47ICM5RDMzCivptLQgPiBow6luZzsgIzlEMzQKK+m0tSA+IGppxIFvOyAjOUQzNQor6bS2ID4gasOtOyAjOUQzNgor6bS3ID4gbGnDqDsgIzlEMzcKK+m0uCA+IHpoxas7ICM5RDM4CivptLkgPiByw6luOyAjOUQzOQor6bS6ID4gecOtOyAjOUQzQQor6bS7ID4gaMOzbmc7ICM5RDNCCivptLwgPiBsw7lvOyAjOUQzQwor6bS9ID4gcsO6OyAjOUQzRAor6bS+ID4gbcOzdTsgIzlEM0UKK+m0vyA+IGfEkzsgIzlEM0YKK+m1gCA+IHLDqG47ICM5RDQwCivptYEgPiBqacSBbzsgIzlENDEKK+m1giA+IHjEq3U7ICM5RDQyCivptYMgPiB6aMWNdTsgIzlENDMKK+m1hCA+IHpoxKs7ICM5RDQ0CivptYUgPiBsw7lvOyAjOUQ0NQor6bWJID4gbHXDoW47ICM5RDQ5CivptYogPiBqacOhOyAjOUQ0QQor6bWLID4gasOsOyAjOUQ0Qgor6bWMID4gecO6OyAjOUQ0Qwor6bWNID4gaHXEgW47ICM5RDRECivptY4gPiB0xa1vOyAjOUQ0RQor6bWPID4gYsWrOyAjOUQ0Rgor6bWQID4gd8O6OyAjOUQ1MAor6bWRID4ganXEgW47ICM5RDUxCivptZIgPiB5w7k7ICM5RDUyCivptZMgPiBiw7M7ICM5RDUzCivptZQgPiB4w7luOyAjOUQ1NAor6bWVID4geMO5bjsgIzlENTUKK+m1liA+IGLDrDsgIzlENTYKK+m1lyA+IHjEqzsgIzlENTcKK+m1mCA+IGrDuW47ICM5RDU4CivptZkgPiBqw7o7ICM5RDU5CivptZogPiB0w7o7ICM5RDVBCivptZsgPiBqxKtuZzsgIzlENUIKK+m1nCA+IHTDrTsgIzlENUMKK+m1nSA+IMOpOyAjOUQ1RAor6bWeID4gw6k7ICM5RDVFCivptZ8gPiBrdcOhbmc7ICM5RDVGCivptaAgPiBow7o7ICM5RDYwCivptaEgPiB3xa07ICM5RDYxCivptaIgPiBzaMSTbjsgIzlENjIKK+m1oyA+IGzDoGk7ICM5RDYzCivptaYgPiBsw7k7ICM5RDY2CivptacgPiBww61uZzsgIzlENjcKK+m1qCA+IHNoxas7ICM5RDY4CivptakgPiBmw7o7ICM5RDY5CivptaogPiDEgW47ICM5RDZBCivptasgPiB6aMOgbzsgIzlENkIKK+m1rCA+IHDDqW5nOyAjOUQ2Qwor6bWtID4gccOtbjsgIzlENkQKK+m1riA+IHFpxIFuOyAjOUQ2RQor6bWvID4gYsSTaTsgIzlENkYKK+m1sCA+IGRpxIFvOyAjOUQ3MAor6bWxID4gbMO5OyAjOUQ3MQor6bWyID4gcXXDqDsgIzlENzIKK+m1syA+IGppxIFuOyAjOUQ3Mwor6bW0ID4gasO6OyAjOUQ3NAor6bW1ID4gdMO5OyAjOUQ3NQor6bW2ID4gecSBOyAjOUQ3Ngor6bW3ID4geXXEgW47ICM5RDc3CivptbggPiBxw607ICM5RDc4CivptbkgPiBsw607ICM5RDc5CivptbogPiB5w6g7ICM5RDdBCivptbsgPiB6aMWraTsgIzlEN0IKK+m1vCA+IGvFjW5nOyAjOUQ3Qwor6bW9ID4gemjDuWk7ICM5RDdECivptb4gPiBrxatuOyAjOUQ3RQor6bW/ID4gc2jEk25nOyAjOUQ3Rgor6baAID4gccOtOyAjOUQ4MAor6baBID4gasSrbmc7ICM5RDgxCivptoIgPiB5w6w7ICM5RDgyCivptoMgPiB5w6w7ICM5RDgzCivptoQgPiBqxKtuZzsgIzlEODQKK+m2hSA+IHrEqzsgIzlEODUKK+m2hiA+IGzDoWk7ICM5RDg2CivptocgPiBkxY1uZzsgIzlEODcKK+m2iCA+IHHEqzsgIzlEODgKK+m2iSA+IGNow7puOyAjOUQ4OQor6baKID4gZ8STbmc7ICM5RDhBCivptosgPiBqxas7ICM5RDhCCivptowgPiBxxas7ICM5RDhDCivpto8gPiBqxKs7ICM5RDhGCivptpAgPiBzaMO5OyAjOUQ5MAor6baSID4gY2jDrDsgIzlEOTIKK+m2kyA+IG1pw6FvOyAjOUQ5Mwor6baUID4gcsOzdTsgIzlEOTQKK+m2lSA+IMSBbjsgIzlEOTUKK+m2liA+IHHEq3U7ICM5RDk2CivptpcgPiB0w607ICM5RDk3CivptpggPiBow7o7ICM5RDk4CivptpkgPiB0w607ICM5RDk5CivptpogPiDDqDsgIzlEOUEKK+m2myA+IGppxJM7ICM5RDlCCivptpwgPiBtw6FvOyAjOUQ5Qwor6badID4gZsO6OyAjOUQ5RAor6baeID4gY2jFq247ICM5RDlFCivptp8gPiB0w7o7ICM5RDlGCivptqAgPiB5xINuOyAjOURBMAor6bahID4gaMOpOyAjOURBMQor6baiID4geXXDoW47ICM5REEyCivptqMgPiBwacSBbjsgIzlEQTMKK+m2pCA+IHnDuW47ICM5REE0CivptqUgPiBtw6lpOyAjOURBNQor6bamID4gaMO6OyAjOURBNgor6banID4gecSrbmc7ICM5REE3CivptqggPiBkw7luOyAjOURBOAor6bapID4gbcO5OyAjOURBOQor6baqID4gasO6OyAjOURBQQor6basID4gY8SBbmc7ICM5REFDCivptq0gPiBmxINuZzsgIzlEQUQKK+m2riA+IGfDuTsgIzlEQUUKK+m2ryA+IHnEq25nOyAjOURBRgor6bawID4geXXDoW47ICM5REIwCivptrEgPiB4dcSBbjsgIzlEQjEKK+m2siA+IHfEk25nOyAjOURCMgor6bazID4gc2jEqzsgIzlEQjMKK+m2tCA+IGjDqDsgIzlEQjQKK+m2tSA+IGNow7o7ICM5REI1CivptrYgPiB0w6FuZzsgIzlEQjYKK+m2tyA+IHhpw6A7ICM5REI3CivptrggPiByw7lvOyAjOURCOAor6ba5ID4gbMOtdTsgIzlEQjkKK+m2uiA+IGrDrTsgIzlEQkEKK+m2uyA+IGfDujsgIzlEQkIKK+m2vCA+IGppxIFuOyAjOURCQwor6ba9ID4gemjFrW47ICM5REJECivptr4gPiBow6BuOyAjOURCRQor6ba/ID4gesSrOyAjOURCRgor6beAID4gesSrOyAjOURDMAor6beBID4gbsOsOyAjOURDMQor6beCID4gecOgbzsgIzlEQzIKK+m3gyA+IHnDoG47ICM5REMzCivpt4QgPiBqxKs7ICM5REM0Civpt4UgPiBsw6w7ICM5REM1Civpt4YgPiB0acOhbjsgIzlEQzYKK+m3hyA+IGvDsnU7ICM5REM3Civpt4ggPiB0xKs7ICM5REM4Civpt4kgPiB0xKs7ICM5REM5Civpt4ogPiBuw6w7ICM5RENBCivpt4sgPiB0w7o7ICM5RENCCivpt4wgPiBtxIM7ICM5RENDCivpt40gPiBqacSBbzsgIzlEQ0QKK+m3jiA+IGfEgW87ICM5RENFCivpt48gPiB0acOhbjsgIzlEQ0YKK+m3kCA+IGNow6luOyAjOUREMAor6beRID4gbMOsOyAjOUREMQor6beSID4gemh1xIFuOyAjOUREMgor6beTID4gemjDqDsgIzlERDMKK+m3lCA+IMOhbzsgIzlERDQKK+m3lSA+IHnEg287ICM5REQ1Civpt5YgPiB5xKs7ICM5REQ2Civpt5cgPiDFjXU7ICM5REQ3Civpt5ggPiBjaMOsOyAjOUREOAor6beZID4gemjDrDsgIzlERDkKK+m3miA+IGxpw6FvOyAjOUREQQor6bebID4gcsOzbmc7ICM5RERCCivpt5wgPiBsw7N1OyAjOUREQwor6bedID4gYsOsOyAjOURERAor6beeID4gc2h1xIFuZzsgIzlEREUKK+m3nyA+IHpow7pvOyAjOURERgor6begID4gecO6OyAjOURFMAor6behID4gd8O6OyAjOURFMQor6beiID4ganXDqTsgIzlERTIKK+m3oyA+IHnDrW47ICM5REUzCivpt6QgPiBxdcOhbjsgIzlERTQKK+m3pSA+IHPEqzsgIzlERTUKK+m3piA+IGppxIFvOyAjOURFNgor6benID4gecOsOyAjOURFNwor6beoID4gaHXEgTsgIzlERTgKK+m3qSA+IGLDrDsgIzlERTkKK+m3qiA+IHnEq25nOyAjOURFQQor6berID4gc8O5OyAjOURFQgor6besID4gaHXDoW5nOyAjOURFQwor6betID4gZsOhbjsgIzlERUQKK+m3riA+IGppxIFvOyAjOURFRQor6bevID4gbGnDoW87ICM5REVGCivpt7AgPiB5w6BuOyAjOURGMAor6bexID4ga8SBbzsgIzlERjEKK+m3siA+IGrDrHU7ICM5REYyCivpt7MgPiB4acOhbjsgIzlERjMKK+m3tCA+IHhpw6FuOyAjOURGNAor6be1ID4gdMO6OyAjOURGNQor6be2ID4gbcSDaTsgIzlERjYKK+m3tyA+IHrFq247ICM5REY3Civpt7ggPiB5w7k7ICM5REY4Civpt7kgPiB5xKtuZzsgIzlERjkKK+m3uiA+IGzDuTsgIzlERkEKK+m3uyA+IHR1w6FuOyAjOURGQgor6be8ID4geGnDoW47ICM5REZDCivpt70gPiB4dcOpOyAjOURGRAor6be+ID4gecOsOyAjOURGRQor6be/ID4gcMOsOyAjOURGRgor6biAID4gc2jDujsgIzlFMDAKK+m4gSA+IGzDum87ICM5RTAxCivpuIIgPiBxxKs7ICM5RTAyCivpuIMgPiB5w607ICM5RTAzCivpuIQgPiBqw607ICM5RTA0CivpuIUgPiB6aMOpOyAjOUUwNQor6biGID4gecO6OyAjOUUwNgor6biHID4gemjEgW47ICM5RTA3CivpuIggPiB5w6g7ICM5RTA4CivpuIkgPiB5w6FuZzsgIzlFMDkKK+m4iiA+IHDDrDsgIzlFMEEKK+m4iyA+IG7DrW5nOyAjOUUwQgor6biMID4gaMO5bzsgIzlFMEMKK+m4jSA+IG3DrTsgIzlFMEQKK+m4jiA+IHnEq25nOyAjOUUwRQor6biPID4gbcOpbmc7ICM5RTBGCivpuJAgPiBkw607ICM5RTEwCivpuJEgPiB5dcOoOyAjOUUxMQor6biSID4gecO6OyAjOUUxMgor6biTID4gbMSVaTsgIzlFMTMKK+m4lCA+IGLDoG87ICM5RTE0CivpuJUgPiBsw7o7ICM5RTE1CivpuJYgPiBow6g7ICM5RTE2CivpuJcgPiBsw7NuZzsgIzlFMTcKK+m4mCA+IHNodcSBbmc7ICM5RTE4CivpuJkgPiB5dcOoOyAjOUUxOQor6biaID4gecSrbmc7ICM5RTFBCivpuJsgPiBndcOgbjsgIzlFMUIKK+m4nCA+IHHDujsgIzlFMUMKK+m4nSA+IGzDrTsgIzlFMUQKK+m4niA+IGx1w6FuOyAjOUUxRQor6bifID4gbmnEg287ICM5RTFGCivpuKAgPiBqxKt1OyAjOUUyMAor6bihID4gasSrOyAjOUUyMQor6biiID4geXXEgW47ICM5RTIyCivpuKMgPiBtw61uZzsgIzlFMjMKK+m4pCA+IHNoxKs7ICM5RTI0CivpuKUgPiDFjXU7ICM5RTI1CivpuKYgPiB5xIE7ICM5RTI2CivpuKcgPiBjxIFuZzsgIzlFMjcKK+m4qCA+IGLEg287ICM5RTI4CivpuKkgPiB6aMOobjsgIzlFMjkKK+m4qiA+IGfFqzsgIzlFMkEKK+m4qyA+IGTFjW5nOyAjOUUyQgor6bisID4gbMO6OyAjOUUyQwor6bitID4gecSBOyAjOUUyRAor6biuID4geGnEgW87ICM5RTJFCivpuK8gPiB5xIFuZzsgIzlFMkYKK+m4sCA+IGzDrW5nOyAjOUUzMAor6bixID4gemjEqzsgIzlFMzEKK+m4siA+IHHDujsgIzlFMzIKK+m4syA+IHl1xIFuOyAjOUUzMwor6bi0ID4geHXDqTsgIzlFMzQKK+m4tSA+IHTDum87ICM5RTM1CivpuLYgPiBzxKs7ICM5RTM2CivpuLcgPiB6aMOsOyAjOUUzNwor6bi4ID4gw6lyOyAjOUUzOAor6bi5ID4gZ3XEgTsgIzlFMzkKK+m4uiA+IHjEq3U7ICM5RTNBCivpuLsgPiBow6luZzsgIzlFM0IKK+m4vCA+IHpoxY11OyAjOUUzQwor6bi9ID4gZ8STOyAjOUUzRAor6bi+ID4gbHXDoW47ICM5RTNFCivpuL8gPiBow7NuZzsgIzlFM0YKK+m5gCA+IHfDujsgIzlFNDAKK+m5gSA+IGLDszsgIzlFNDEKK+m5giA+IGzDrTsgIzlFNDIKK+m5gyA+IGp1xIFuOyAjOUU0Mwor6bmEID4gaMO6OyAjOUU0NAor6bmFID4gw6k7ICM5RTQ1CivpuYYgPiB5w7k7ICM5RTQ2CivpuYcgPiB4acOhbjsgIzlFNDcKK+m5iCA+IHTDrTsgIzlFNDgKK+m5iSA+IHfFrTsgIzlFNDkKK+m5iiA+IHF1w6g7ICM5RTRBCivpuYsgPiBtacOhbzsgIzlFNEIKK+m5jCA+IMSBbjsgIzlFNEMKK+m5jSA+IGvFq247ICM5RTRECivpuY4gPiBixJNpOyAjOUU0RQor6bmPID4gcMOpbmc7ICM5RTRGCivpuZAgPiBxacSBbjsgIzlFNTAKK+m5kSA+IGNow7puOyAjOUU1MQor6bmSID4gZ8STbmc7ICM5RTUyCivpuZMgPiB5dcSBbjsgIzlFNTMKK+m5lCA+IHPDuTsgIzlFNTQKK+m5lSA+IGjDujsgIzlFNTUKK+m5liA+IGjDqTsgIzlFNTYKK+m5lyA+IMOoOyAjOUU1Nwor6bmYID4gZ8O6OyAjOUU1OAor6bmZID4gccSrdTsgIzlFNTkKK+m5miA+IHrEqzsgIzlFNUEKK+m5myA+IG3DqWk7ICM5RTVCCivpuZwgPiBtw7k7ICM5RTVDCivpuZ0gPiBuw6w7ICM5RTVECivpuZ4gPiB5w6BvOyAjOUU1RQor6bmfID4gd8STbmc7ICM5RTVGCivpuaAgPiBsw611OyAjOUU2MAor6bmhID4gasOtOyAjOUU2MQor6bmiID4gbsOsOyAjOUU2Mgor6bmjID4gamnEgW47ICM5RTYzCivpuaQgPiBow6g7ICM5RTY0CivpuaUgPiB5xKs7ICM5RTY1CivpuaYgPiB5xKtuZzsgIzlFNjYKK+m5pyA+IHpow6g7ICM5RTY3CivpuaggPiBsacOhbzsgIzlFNjgKK+m5qSA+IGxpw6FvOyAjOUU2OQor6bmqID4gamnEgW87ICM5RTZBCivpuasgPiBqw6x1OyAjOUU2Qgor6bmsID4gecO5OyAjOUU2Qwor6bmtID4gbMO5OyAjOUU2RAor6bmuID4geHXDoW47ICM5RTZFCivpua8gPiB6aMSBbjsgIzlFNkYKK+m5sCA+IHnEq25nOyAjOUU3MAor6bmxID4gaMO5bzsgIzlFNzEKK+m5siA+IG3DqW5nOyAjOUU3Mgor6bmzID4gZ3XDoG47ICM5RTczCivpubQgPiBzaHXEgW5nOyAjOUU3NAor6bm1ID4gbMWtOyAjOUU3NQor6bm2ID4gasSrbjsgIzlFNzYKK+m5tyA+IGzDrW5nOyAjOUU3Nwor6bm4ID4gamnEg247ICM5RTc4CivpubkgPiB4acOhbjsgIzlFNzkKK+m5uiA+IGPDum87ICM5RTdBCivpubsgPiBqacSDbjsgIzlFN0IKK+m5vCA+IGppxINuOyAjOUU3Qwor6bm9ID4gecOhbjsgIzlFN0QKK+m5viA+IGPDum87ICM5RTdFCivpub8gPiBsw7k7ICM5RTdGCivpuoAgPiB5xY11OyAjOUU4MAor6bqBID4gY8WrOyAjOUU4MQor6bqCID4gasStOyAjOUU4Mgor6bqDID4gYmnEgW87ICM5RTgzCivpuoQgPiBjxas7ICM5RTg0CivpuoUgPiBiacSBbzsgIzlFODUKK+m6hiA+IHpow7k7ICM5RTg2CivpuocgPiBqxatuOyAjOUU4Nwor6bqIID4gemjFrTsgIzlFODgKK+m6iSA+IGppxIFuOyAjOUU4OQor6bqKID4gbcOtOyAjOUU4QQor6bqLID4gbcOtOyAjOUU4Qgor6bqMID4gd8O6OyAjOUU4Qwor6bqNID4gbMOtdTsgIzlFOEQKK+m6jiA+IGNow6luOyAjOUU4RQor6bqPID4gasWrbjsgIzlFOEYKK+m6kCA+IGzDrW47ICM5RTkwCivpupEgPiBuw607ICM5RTkxCivpupIgPiBxw607ICM5RTkyCivpupMgPiBsw7k7ICM5RTkzCivpupQgPiBqw6x1OyAjOUU5NAor6bqVID4gasWrbjsgIzlFOTUKK+m6liA+IGrEq25nOyAjOUU5Ngor6bqXID4gbMOsOyAjOUU5Nwor6bqYID4geGnEgW5nOyAjOUU5OAor6bqZID4gecOhbjsgIzlFOTkKK+m6miA+IGppxIE7ICM5RTlBCivpupsgPiBtw607ICM5RTlCCivpupwgPiBsw6w7ICM5RTlDCivpup0gPiBzaMOoOyAjOUU5RAor6bqeID4gemjEgW5nOyAjOUU5RQor6bqfID4gbMOtbjsgIzlFOUYKK+m6oCA+IGrEq25nOyAjOUVBMAor6bqhID4gasSrOyAjOUVBMQor6bqiID4gbMOtbmc7ICM5RUEyCivpuqMgPiB5w6FuOyAjOUVBMwor6bqkID4gY8WrOyAjOUVBNAor6bqlID4gbcOgaTsgIzlFQTUKK+m6piA+IG3DoGk7ICM5RUE2CivpuqcgPiBnxJM7ICM5RUE3CivpuqggPiBjaMSDbzsgIzlFQTgKK+m6qSA+IGbFqzsgIzlFQTkKK+m6qiA+IG1pxINuOyAjOUVBQQor6bqrID4gbWnEg247ICM5RUFCCivpuqwgPiBmxas7ICM5RUFDCivpuq0gPiBww6BvOyAjOUVBRAor6bquID4gccO5OyAjOUVBRQor6bqvID4gccO6OyAjOUVBRgor6bqwID4gbcOzdTsgIzlFQjAKK+m6sSA+IGbFqzsgIzlFQjEKK+m6siA+IHhpw6BuOyAjOUVCMgor6bqzID4gbMOhaTsgIzlFQjMKK+m6tCA+IHHDujsgIzlFQjQKK+m6tSA+IG1pw6BuOyAjOUVCNQor6bq3ID4gZsSTbmc7ICM5RUI3CivpurggPiBmxas7ICM5RUI4CivpurkgPiBxw7o7ICM5RUI5CivpurogPiBtacOgbjsgIzlFQkEKK+m6uyA+IG3DoTsgIzlFQkIKK+m6vCA+IG1vOyAjOUVCQwor6bq9ID4gbW87ICM5RUJECivpur4gPiBoxatpOyAjOUVCRQor6buAID4gesWNdTsgIzlFQzAKK+m7gSA+IG7Ek247ICM5RUMxCivpu4IgPiBmw6luOyAjOUVDMgor6buDID4gaHXDoW5nOyAjOUVDMwor6buEID4gaHXDoW5nOyAjOUVDNAor6buFID4gasSrbjsgIzlFQzUKK+m7hiA+IGd1xIFuZzsgIzlFQzYKK+m7hyA+IHRpxIFuOyAjOUVDNwor6buIID4gdMWPdTsgIzlFQzgKK+m7iSA+IGjDqW5nOyAjOUVDOQor6buKID4geMSrOyAjOUVDQQor6buLID4ga3XEg25nOyAjOUVDQgor6buMID4gaMOpbmc7ICM5RUNDCivpu40gPiBzaMWtOyAjOUVDRAor6buOID4gbMOtOyAjOUVDRQor6buPID4gbmnDoW47ICM5RUNGCivpu5AgPiBjaMSrOyAjOUVEMAor6buRID4gaMSTaTsgIzlFRDEKK+m7kiA+IGjEk2k7ICM5RUQyCivpu5MgPiB5w6w7ICM5RUQzCivpu5QgPiBxacOhbjsgIzlFRDQKK+m7lSA+IGTEgW47ICM5RUQ1Civpu5YgPiB4w6w7ICM5RUQ2Civpu5cgPiB0dcSDbjsgIzlFRDcKK+m7mCA+IG3DsjsgIzlFRDgKK+m7mSA+IG3DsjsgIzlFRDkKK+m7miA+IHFpw6FuOyAjOUVEQQor6bubID4gZMOgaTsgIzlFREIKK+m7nCA+IGNow7k7ICM5RURDCivpu50gPiB5xY91OyAjOUVERAor6bueID4gZGnEg247ICM5RURFCivpu58gPiB5xKs7ICM5RURGCivpu6AgPiB4acOhOyAjOUVFMAor6buhID4gecSDbjsgIzlFRTEKK+m7oiA+IHHFqzsgIzlFRTIKK+m7oyA+IG3ElWk7ICM5RUUzCivpu6QgPiB5xINuOyAjOUVFNAor6bulID4gasSrbmc7ICM5RUU1Civpu6YgPiB5w7k7ICM5RUU2Civpu6cgPiBsw607ICM5RUU3Civpu6ggPiBkxINuZzsgIzlFRTgKK+m7qSA+IGTDujsgIzlFRTkKK+m7qiA+IGPEg247ICM5RUVBCivpu6sgPiB5xKtuOyAjOUVFQgor6busID4gw6BuOyAjOUVFQwor6butID4gecSBbjsgIzlFRUQKK+m7riA+IHTEg247ICM5RUVFCivpu68gPiDDoG47ICM5RUVGCivpu7AgPiB6aMSVbjsgIzlFRjAKK+m7sSA+IGTDoGk7ICM5RUYxCivpu7IgPiBjxINuOyAjOUVGMgor6buzID4gecSrOyAjOUVGMwor6bu0ID4gbcOpaTsgIzlFRjQKK+m7tSA+IGTEg247ICM5RUY1Civpu7YgPiB5xINuOyAjOUVGNgor6bu3ID4gZMO6OyAjOUVGNwor6bu4ID4gbMO6OyAjOUVGOAor6bu5ID4gemjErTsgIzlFRjkKK+m7uiA+IGbElW47ICM5RUZBCivpu7sgPiBmw7k7ICM5RUZCCivpu7wgPiBmxa07ICM5RUZDCivpu70gPiBtxK1uOyAjOUVGRAor6bu+ID4gbcStbjsgIzlFRkUKK+m7vyA+IHl1w6FuOyAjOUVGRgor6byAID4gY8O5OyAjOUYwMAor6byBID4gccO5OyAjOUYwMQor6byCID4gY2jDoW87ICM5RjAyCivpvIMgPiB3xIE7ICM5RjAzCivpvIQgPiB6aMWrOyAjOUYwNAor6byFID4gemjEqzsgIzlGMDUKK+m8hiA+IG3DoW5nOyAjOUYwNgor6byHID4gw6FvOyAjOUYwNwor6byIID4gYmnEkzsgIzlGMDgKK+m8iSA+IHTDum87ICM5RjA5CivpvIogPiBiw6w7ICM5RjBBCivpvIsgPiB5dcOhbjsgIzlGMEIKK+m8jCA+IGNow6FvOyAjOUYwQwor6byNID4gdMO6bzsgIzlGMEQKK+m8jiA+IGTErW5nOyAjOUYwRQor6byPID4gbcOsOyAjOUYwRgor6byQID4gbsOgaTsgIzlGMTAKK+m8kSA+IGTErW5nOyAjOUYxMQor6bySID4gesSrOyAjOUYxMgor6byTID4gZ8WtOyAjOUYxMwor6byUID4gZ8WtOyAjOUYxNAor6byVID4gZMWNbmc7ICM5RjE1CivpvJYgPiBmw6luOyAjOUYxNgor6byXID4gdMOhbzsgIzlGMTcKK+m8mCA+IHl1xIFuOyAjOUYxOAor6byZID4gcMOtOyAjOUYxOQor6byaID4gY2jEgW5nOyAjOUYxQQor6bybID4gZ8SBbzsgIzlGMUIKK+m8nCA+IHHDrDsgIzlGMUMKK+m8nSA+IHl1xIFuOyAjOUYxRAor6byeID4gdMSBbmc7ICM5RjFFCivpvJ8gPiB0xJNuZzsgIzlGMUYKK+m8oCA+IHNoxa07ICM5RjIwCivpvKEgPiBzaMWtOyAjOUYyMQor6byiID4gZsOpbjsgIzlGMjIKK+m8oyA+IGbDqGk7ICM5RjIzCivpvKQgPiB3w6luOyAjOUYyNAor6bylID4gYsOhOyAjOUYyNQor6bymID4gZGnEgW87ICM5RjI2CivpvKcgPiB0w7pvOyAjOUYyNwor6byoID4gdMOzbmc7ICM5RjI4CivpvKkgPiBxw7o7ICM5RjI5CivpvKogPiBzaMSTbmc7ICM5RjJBCivpvKsgPiBzaMOtOyAjOUYyQgor6bysID4gecOydTsgIzlGMkMKK+m8rSA+IHNow607ICM5RjJECivpvK4gPiB0w61uZzsgIzlGMkUKK+m8ryA+IHfDujsgIzlGMkYKK+m8sCA+IG5pw6BuOyAjOUYzMAor6byxID4gasSrbmc7ICM5RjMxCivpvLIgPiBow7puOyAjOUYzMgor6byzID4gasO6OyAjOUYzMwor6by0ID4gecSDbjsgIzlGMzQKK+m8tSA+IHTDujsgIzlGMzUKK+m8tiA+IHTDrTsgIzlGMzYKK+m8tyA+IHjEqzsgIzlGMzcKK+m8uCA+IHhpxINuOyAjOUYzOAor6by5ID4gecSDbjsgIzlGMzkKK+m8uiA+IGzDqWk7ICM5RjNBCivpvLsgPiBiw607ICM5RjNCCivpvLwgPiB5xINvOyAjOUYzQwor6by9ID4gccOtdTsgIzlGM0QKK+m8viA+IGjEgW47ICM5RjNFCivpvL8gPiB3xas7ICM5RjNGCivpvYAgPiB3w7k7ICM5RjQwCivpvYEgPiBow7N1OyAjOUY0MQor6b2CID4geMOsOyAjOUY0Mgor6b2DID4gZ8OpOyAjOUY0Mwor6b2EID4gemjEgTsgIzlGNDQKK+m9hSA+IHjDrHU7ICM5RjQ1CivpvYYgPiB3w6huZzsgIzlGNDYKK+m9hyA+IHpoxIE7ICM5RjQ3CivpvYggPiBuw7NuZzsgIzlGNDgKK+m9iSA+IG7DoG5nOyAjOUY0OQor6b2KID4gccOtOyAjOUY0QQor6b2LID4gemjEgWk7ICM5RjRCCivpvYwgPiBqw6w7ICM5RjRDCivpvY0gPiB6xKs7ICM5RjRECivpvY4gPiBqxKs7ICM5RjRFCivpvY8gPiBqxKs7ICM5RjRGCivpvZAgPiBxw607ICM5RjUwCivpvZEgPiBqxKs7ICM5RjUxCivpvZIgPiBjaMStOyAjOUY1Mgor6b2TID4gY2jDqG47ICM5RjUzCivpvZQgPiBjaMOobjsgIzlGNTQKK+m9lSA+IGjDqTsgIzlGNTUKK+m9liA+IHnDoTsgIzlGNTYKK+m9lyA+IGvElW47ICM5RjU3CivpvZggPiB4acOoOyAjOUY1OAor6b2ZID4gcMOhbzsgIzlGNTkKK+m9miA+IGPDuW87ICM5RjVBCivpvZsgPiBzaMOsOyAjOUY1Qgor6b2cID4gesSrOyAjOUY1Qwor6b2dID4gY2jEqzsgIzlGNUQKK+m9niA+IG5pw6BuOyAjOUY1RQor6b2fID4gasWtOyAjOUY1Rgor6b2gID4gdGnDoW87ICM5RjYwCivpvaEgPiBsw61uZzsgIzlGNjEKK+m9oiA+IGzDrW5nOyAjOUY2Mgor6b2jID4gY2jFqzsgIzlGNjMKK+m9pCA+IHF1w6FuOyAjOUY2NAor6b2lID4geGnDqDsgIzlGNjUKK+m9piA+IGvElW47ICM5RjY2CivpvacgPiBuacOoOyAjOUY2Nwor6b2oID4gasOsdTsgIzlGNjgKK+m9qSA+IHnEg287ICM5RjY5CivpvaogPiBjaMO5bzsgIzlGNkEKK+m9qyA+IGvFrW47ICM5RjZCCivpvawgPiB5xa07ICM5RjZDCivpva0gPiBjaMWtOyAjOUY2RAor6b2uID4gecStOyAjOUY2RQor6b2vID4gbsOtOyAjOUY2Rgor6b2wID4gY8O5bzsgIzlGNzAKK+m9sSA+IHrFjXU7ICM5RjcxCivpvbIgPiBxxa07ICM5RjcyCivpvbMgPiBuxJVuOyAjOUY3Mwor6b20ID4geGnEg247ICM5Rjc0CivpvbUgPiDDs3U7ICM5Rjc1CivpvbYgPiDDqDsgIzlGNzYKK+m9tyA+IHfDsjsgIzlGNzcKK+m9uCA+IHnDrDsgIzlGNzgKK+m9uSA+IGNoxatvOyAjOUY3OQor6b26ID4gesWNdTsgIzlGN0EKK+m9uyA+IGRpxIFuOyAjOUY3Qgor6b28ID4gY2jFrTsgIzlGN0MKK+m9vSA+IGrDrG47ICM5RjdECivpvb4gPiB5w6A7ICM5RjdFCivpvb8gPiBjaMStOyAjOUY3Rgor6b6AID4gY2jDqG47ICM5RjgwCivpvoEgPiBow6k7ICM5RjgxCivpvoIgPiBrxJVuOyAjOUY4Mgor6b6DID4gasWtOyAjOUY4Mwor6b6EID4gbMOtbmc7ICM5Rjg0CivpvoUgPiBww6FvOyAjOUY4NQor6b6GID4gdGnDoW87ICM5Rjg2CivpvocgPiB6xKs7ICM5Rjg3CivpvoggPiBrxJVuOyAjOUY4OAor6b6JID4gecWtOyAjOUY4OQor6b6KID4gY2jDuW87ICM5RjhBCivpvosgPiBxxa07ICM5RjhCCivpvowgPiB3w7I7ICM5RjhDCivpvo0gPiBsw7NuZzsgIzlGOEQKK+m+jiA+IHDDoW5nOyAjOUY4RQor6b6PID4gZ8WNbmc7ICM5RjhGCivpvpAgPiBww6FuZzsgIzlGOTAKK+m+kSA+IHnEg247ICM5RjkxCivpvpIgPiBsw7NuZzsgIzlGOTIKK+m+kyA+IGzDs25nOyAjOUY5Mwor6b6UID4gZ8WNbmc7ICM5Rjk0CivpvpUgPiBrxIFuOyAjOUY5NQor6b6WID4gdMOgOyAjOUY5Ngor6b6XID4gbMOtbmc7ICM5Rjk3CivpvpggPiB0w6A7ICM5Rjk4CivpvpkgPiBsw7NuZzsgIzlGOTkKK+m+miA+IGfFjW5nOyAjOUY5QQor6b6bID4ga8SBbjsgIzlGOUIKK+m+nCA+IGfFq2k7ICM5RjlDCivpvp0gPiBxxKt1OyAjOUY5RAor6b6eID4gYmnEkzsgIzlGOUUKK+m+nyA+IGfFq2k7ICM5RjlGCivpvqAgPiB5dcOoOyAjOUZBMAor6b6hID4gY2jDuWk7ICM5RkExCivpvqIgPiBow6k7ICM5RkEyCivpvqMgPiBqdcOpOyAjOUZBMwor6b6kID4geGnDqTsgIzlGQTQKK+m+pSA+IHnDuTsgIzlGQTUKK++kjiA+IGzDoDsgI0Y5MEUKK++ojCA+IHfDuTsgI0ZBMEMKK++ojSA+IGjDuW87ICNGQTBECivvqJAgPiB6aMWPbmc7ICNGQTEwCivvqJIgPiBxw61uZzsgI0ZBMTIKK++olSA+IHjEqzsgI0ZBMTUKK++oliA+IHpoxas7ICNGQTE2CivvqJcgPiB5w6w7ICNGQTE3CivvqJggPiBsxK07ICNGQTE4CivvqJkgPiBzaMOpbjsgI0ZBMTkKK++omiA+IHhpw6FuZzsgI0ZBMUEKK++omyA+IGbDujsgI0ZBMUIKK++onCA+IGrDrG5nOyAjRkExQwor76idID4gasSrbmc7ICNGQTFECivvqJ4gPiB5xa07ICNGQTFFCivvqKIgPiB6aMWrOyAjRkEyMgor76ilID4gecOsOyAjRkEyNQor76imID4gZMWrOyAjRkEyNgor76iqID4gZsOgbjsgI0ZBMkEKK++oqyA+IHPDrDsgI0ZBMkIKK++orCA+IGd1xINuOyAjRkEyQwor76itID4gaMOoOyAjRkEyRAorCisjIGVvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3Jlc291cmNlcy9UcmFuc2xpdGVyYXRvcl9LYW5qaV9FbmdsaXNoLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfS2FuamlfRW5nbGlzaC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmUzNTNmMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfS2FuamlfRW5nbGlzaC50eHQKQEAgLTAsMCArMSw2MzY2IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRGF0ZTogVHVlIEphbiAyMyAxMjo0MjowMiAyMDAxCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBLYW5qaS1FbmdsaXNoCisKK+S4gT4nW21hbGUgYWR1bHRdJzsKK+S4gz4nW3NldmVuXSc7CivkuIc+J1t0ZW4gdGhvdXNhbmRdJzsKK+S4iD4nW3VuaXQgb2YgbGVuZ3RoIGVxdWFsIDMuMyBtZXRlcnNdJzsKK+S4iT4nW3RocmVlXSc7CivkuIo+J1t0b3BdJzsKK+S4iz4nW3VuZGVyXSc7CivkuI0+J1tub10nOwor5LiOPidbYW5kXSc7CivkuJA+J1tiZWdnYXJdJzsKK+S4kT4nW2Nsb3duXSc7CivkuJQ+J1ttb3Jlb3Zlcl0nOwor5LiVPidbZ3JlYXRdJzsKK+S4lj4nW2dlbmVyYXRpb25dJzsKK+S4lz4nW3RoaXJ0eV0nOwor5LiYPidbaGlsbF0nOwor5LiZPidbdGhpcmQgb2YgaGVhdmVubHkgc3RlbXNdJzsKK+S4nj4nW2Fzc2lzdF0nOwor5LihPidbdHdvXSc7CivkuKY+J1tlcXVhbCB0b10nOwor5LiqPidbbnVtZXJhcnkgYWRqdW5jdF0nOwor5LitPidbY2VudHJhbF0nOwor5LixPidbY2hpbGQnJ3MgaGFpcnN0eWxlIGJvdW5kIGluIHR3byB0dWZ0c10nOwor5LiyPidbc3RyaW5nXSc7CivkuLY+J1tkb3RdJzsKK+S4uD4nW3NtYWxsIHJvdW5kIG9iamVjdF0nOwor5Li5PidbY2lubmFiYXIgKG5hdGl2ZSBIZ1MpXSc7CivkuLs+J1ttYXN0ZXJdJzsKK+S4vD4nW2Jvd2wgb2YgZm9vZF0nOwor5Li/PidbbGluZV0nOwor5LmCPidbZ292ZXJuXSc7CivkuYM+J1t0aGVuXSc7CivkuYU+J1tsb25nIHRpbWUgKGFnbyldJzsKK+S5iz4nWycncyAobWFya3MgcHJlY2VkaW5nIHBocmFzZSBhcyBtb2RpZmllciBvZiBmb2xsb3dpbmcgcGhyYXNlKV0nOwor5LmNPidbc3VkZGVubHldJzsKK+S5jj4nW2ludGVycm9nYXRpdmUgb3IgZXhjbGFtYXRvcnkgZmluYWwgcGFydGljbGVdJzsKK+S5jz4nW2xhY2tdJzsKK+S5lT4nW3RpZ2VyXSc7CivkuZY+J1tyZWJlbF0nOwor5LmXPidbcmlkZV0nOwor5LmYPidbcmlkZV0nOwor5LmZPidbc2Vjb25kIGhlYXZlbicncyBzdGVtXSc7CivkuZ0+J1tuaW5lXSc7CivkuZ4+J1tiZWddJzsKK+S5nz4nW2Fsc29dJzsKK+S5oj4nW2xpZF0nOwor5LmxPidbY29uZnVzaW9uXSc7CivkubM+J1ticmVhc3RdJzsKK+S5vj4nW2RyeV0nOwor5LqAPidbdHVydGxlIG9yIHRvcnRvaXNlXSc7CivkuoI+J1tjb25mdXNpb25dJzsKK+S6hT4nW2hvb2tdJzsKK+S6hj4nW3RvIGZpbmlzaF0nOwor5LqIPidbSV0nOwor5LqJPidbZGlzcHV0ZV0nOwor5LqKPidbYWZmYWlyXSc7Civkuos+J1thZmZhaXJdJzsKK+S6jD4nW3R3b10nOwor5LqOPidbaW5dJzsKK+S6kT4nW3NheV0nOwor5LqSPidbbXV0dWFsbHldJzsKK+S6lD4nW2ZpdmVdJzsKK+S6lT4nW3dlbGxdJzsKK+S6mD4nW2V4dGVuZCBhY3Jvc3NdJzsKK+S6mT4nW2V4dGVuZCBhY3Jvc3NdJzsKK+S6mz4nW2xpdHRsZV0nOwor5LqcPidbYXNpYV0nOwor5LqePidbYXNpYV0nOwor5LqfPidbdXJnZW50bHldJzsKK+S6oD4nW2hlYWRdJzsKK+S6oT4nW2RlYXRoXSc7CivkuqI+J1toaWdoXSc7CivkuqQ+J1ttaXhdJzsKK+S6pT4nW2xhc3Qgb2YgMTIgZWFydGggYnJhbmNoZXNdJzsKK+S6pj4nW2Fsc29dJzsKK+S6qD4nW3Ntb290aGx5XSc7Civkuqs+J1tlbmpveV0nOwor5LqsPidbY2FwaXRhbCBjaXR5XSc7Civkuq0+J1twYXZpbGlvbl0nOwor5LquPidbYnJpZ2h0XSc7CivkurA+J1tjYXBpdGFsIGNpdHldJzsKK+S6sz4nW25hbWUgb2YgZGlzdHJpY3QgaW4gQW5odWldJzsKK+S6tj4nW3NpbmNlcmVdJzsKK+S6uj4nW21hbl0nOwor5LuAPidbZmlsZSBvZiB0ZW4gc29sZGllcnNdJzsKK+S7gT4nW2h1bWFuZW5lc3NdJzsKK+S7gj4nW3N1cnBsdXMgb3IgZXhjZXNzXSc7Civku4Q+J1tzbGFudGluZ10nOwor5LuGPidbZmFsbCBmb3J3YXJkXSc7Civku4c+J1tlbmVteV0nOwor5LuKPidbbm93XSc7Civku4s+J1tmb3JlcnVubmVyXSc7Civku40+J1t5ZXRdJzsKK+S7jj4nW2Zyb21dJzsKK+S7jz4nW2J1ZGRoYV0nOwor5LuUPidbc21hbGwgdGhpbmddJzsKK+S7lT4nW29mZmljaWFsXSc7Civku5Y+J1tvdGhlcl0nOwor5LuXPidbcmVseSB1cG9uXSc7Civku5g+J1tnaXZlXSc7Civku5k+J1tUYW9pc3Qgc3VwZXItYmVpbmddJzsKK+S7nT4nW3RvZ2V0aGVyXSc7Civku54+J1thbmNpZW50IHVuaXQgb2YgbWVhc3VyZSAoOCBmZWV0KV0nOwor5LufPidbb25lIHRob3VzYW5kXSc7Civku6M+J1tyZXBsYWNlXSc7Civku6Q+J1tjb21tYW5kXSc7Civku6U+J1tieSBtZWFucyBvZl0nOwor5LutPidbYW5jaWVudCB1bml0IG9mIG1lYXN1cmUgKDggZmVldCldJzsKK+S7rj4nW2ZhbHNlaG9vZF0nOwor5LuwPidbcmFpc2UgdGhlIGhlYWQgdG8gbG9va10nOwor5LuyPidbbWlkZGxlIGJyb3RoZXJdJzsKK+S7tj4nW251bWVyYXJ5IGFkanVuY3QgZm9yIGFydGljbGVdJzsKK+S7tz4nW3ByaWNlXSc7Civku7s+J1t0cnVzdCB0b10nOwor5LyBPidbcGxhbiBhIHByb2plY3RdJzsKK+S8iT4nW2NvbXBhcmVdJzsKK+S8ij4nW3RoaXJkIHBlcnNvbiBwcm9ub3VuXSc7CivkvI0+J1tmaXZlXSc7CivkvI4+J1t0YWxlbnRdJzsKK+S8jz4nW2Nyb3VjaF0nOwor5LyQPidbY3V0IGRvd25dJzsKK+S8kT4nW3Jlc3RdJzsKK+S8mj4nW2Fzc2VtYmxlXSc7CivkvJw+J1tkZXB1dHldJzsKK+S8nT4nW3N1bW1vbl0nOwor5LyvPidbb2xkZXIgYnJvdGhlcl0nOwor5LywPidbbWVyY2hhbnRdJzsKK+S8tD4nW2NvbXBhbmlvbl0nOwor5Ly2PidbbG9uZWx5XSc7CivkvLg+J1tleHRlbmRdJzsKK+S8uj4nW3NlcnZlXSc7CivkvLw+J1tyZXNlbWJsZV0nOwor5Ly9PidbdHJhbnNjcmlwdGlvbiBvZiBzYW5za3JpdCBnaGEgaW4gYnVkZGhpc3QgdGV4dHMgKCfDq23DosOmJyBcInNhbWdoYVwiKV0nOwor5L2DPidbdGVuYW50IGZhcm1lcl0nOwor5L2GPidbb25seV0nOwor5L2HPidbd2FpdF0nOwor5L2NPidbdGhyb25lXSc7CivkvY4+J1tsb3ddJzsKK+S9jz4nW3Jlc2lkZV0nOwor5L2QPidbYXNzaXN0XSc7CivkvZE+J1toZWxwXSc7CivkvZM+J1tib2R5XSc7CivkvZU+J1t3aGF0XSc7CivkvZc+J1tvdGhlcl0nOwor5L2ZPidbSV0nOwor5L2aPidbaW5kdWxnZSBpbiBwbGVhc3VyZXNdJzsKK+S9mz4nW2J1ZGRoYSAoY29udHJhY3Rpb24gb2YgTUMgJ2JoacOqdGRoYScpXSc7CivkvZw+J1ttYWtlXSc7CivkvZ0+J1tyaWNrZXRzXSc7CivkvZ4+J1tmbGF0dGVyeV0nOwor5L2pPidbYmVsdCBvcm5hbWVudF0nOwor5L2vPidbcHJldGVuZF0nOwor5L2wPidbaHVuZHJlZF0nOwor5L2zPidbZ29vZF0nOwor5L21PidbY29tYmluZV0nOwor5L22Pidbc3Ryb25nXSc7Civkvbs+J1tmcml2b2xvdXNdJzsKK+S9vD4nW2JlYXV0aWZ1bF0nOwor5L2/PidbY2F1c2VdJzsKK+S+gz4nW3VwcmlnaHQgYW5kIHN0cm9uZ10nOwor5L6GPidbY29tZV0nOwor5L6IPidbbHV4dXJpb3VzXSc7Civkvos+J1twcmVjZWRlbnRdJzsKK+S+jT4nW3NlcnZlXSc7Civkvo8+J1tzbWFsbF0nOwor5L6RPidbaGVscF0nOwor5L6WPidbbG9naWNhbCByZWFzb25zXSc7Civkvpg+J1tkaXNhcHBvaW50ZWRdJzsKK+S+mz4nW3N1cHBseV0nOwor5L6dPidbcmVseSBvbl0nOwor5L6gPidbY2hpdmFscm91cyBwZXJzb25dJzsKK+S+oT4nW3ByaWNlXSc7Civkvqs+J1tmbGF0dGVyeV0nOwor5L6tPidbY29tcGxldGVdJzsKK+S+rj4nW2luc3VsdF0nOwor5L6vPidbbWFycXVpc10nOwor5L61PidbaW52YWRlXSc7CivkvrY+J1tjb21wYW5pb25dJzsKK+S+vz4nW2NvbnZlbmllbmNlXSc7Civkv4I+J1tiaW5kXSc7Civkv4M+J1t1cmdlXSc7Civkv4Q+J1tzdWRkZW4obHkpXSc7Civkv4o+J1t0YWxlbnRlZF0nOwor5L+OPidbY2hvcHBpbmcgYm9hcmQgb3IgYmxvY2tdJzsKK+S/kD4nW3Ntb290aF0nOwor5L+RPidbd29vZGVuIGZpZ3VyZSBidXJpZWQgd2l0aCBkZWFkXSc7Civkv5Q+J1tsaWtlXSc7Civkv5c+J1tzb2NpYWwgY3VzdG9tc10nOwor5L+YPidbcHJpc29uZXIgb2Ygd2FyXSc7Civkv5o+J1tydXN0aWNdJzsKK+S/mz4nW21ha2UgZWZmb3J0XSc7Civkv50+J1twcm90ZWN0XSc7Civkv58+J1t3YWl0IGZvcl0nOwor5L+hPidbdHJ1c3RdJzsKK+S/oz4nW2JpZ10nOworIyLkv6M+J1tiaWddJyIsCivkv6U+J1tyaWNrc2hhd10nOwor5L+uPidbc3R1ZHldJzsKK+S/rz4nW2JvdyBkb3duXSc7Civkv7M+J1thY3Rvcl0nOwor5L+1PidbZGl2aWRlXSc7Civkv7Y+J1tzdGFydF0nOwor5L+4Pidbd2FnZXNdJzsKK+S/uj4nW3BlcnNvbmFsIHByb25vdW5dJzsKK+S/vj4nW3NvIHRoYXRdJzsKK+WAhT4nW2RlcHV0eV0nOwor5YCGPidbY2xldmVyXSc7CivlgIk+J1tncmFuYXJ5XSc7CivlgIs+J1tudW1lcmFyeSBhZGp1bmN0XSc7CivlgI0+J1t0aW1lc10nOwor5YCPPidbaGFzdGlseV0nOwor5YCRPidbYWRqdW5jdCBwcm9ub3VuIGluZGljYXRlIHBsdXJhbF0nOwor5YCSPidbZmFsbCBvdmVyXSc7CivlgJQ+J1tzdHViYm9ybl0nOwor5YCWPidbbHVja3ldJzsKK+WAmT4nW3dhaXRdJzsKK+WAmj4nW3JlbHkgb25dJzsKK+WAnz4nW2JvcnJvd10nOwor5YChPidbZ3VpZGVdJzsKK+WAoz4nW2ltaXRhdGVdJzsKK+WApD4nW3ByaWNlXSc7CivlgKU+J1tib29yaXNoXSc7CivlgKY+J1tiZSB0aXJlZCBvZl0nOwor5YCoPidbYXJyb2dhbnRdJzsKK+WAqT4nW2JlYXV0aWZ1bF0nOwor5YCqPidbZmVlYmxlXSc7CivlgKs+J1tub3JtYWwgaHVtYW4gcmVsYXRpb25zaGlwc10nOwor5YCsPidbbm90aWNlYWJsZV0nOwor5YCtPidbZHdhcmZdJzsKK+WAtj4nW2FsbF0nOwor5YC5PidbdGVtcGVyYXRlXSc7CivlgYM+J1tjZWFzZV0nOwor5YGHPidbZmFsc2Vob29kXSc7CivlgYg+J1ticmF2ZV0nOwor5YGJPidbZ3JlYXRdJzsKK+WBjz4nW2luY2xpbmVkIG9uZSBzaWRlXSc7CivlgZA+J1tmYWxzZV0nOwor5YGVPidbdG9nZXRoZXJdJzsKK+WBlj4nW3JpcCB1cF0nOwor5YGaPidbd29ya10nOwor5YGcPidbc3RvcF0nOwor5YGlPidbc3Ryb25nXSc7Civlgaw+J1t1cmdlbnRdJzsKK+WBsj4nW3RhbGVudGVkXSc7CivlgbQ+J1tzaWRlXSc7CivlgbU+J1tzcHldJzsKK+WBtj4nW2FjY2lkZW50YWxseV0nOwor5YG4PidbdG8gc3RlYWxdJzsKK+WBvT4nW2ZhbHNlXSc7CivlgoA+J1tncmVhdF0nOwor5YKFPidbdHV0b3JdJzsKK+WCjT4nW2J5IHNpZGUgb2ZdJzsKK+WCkT4nW2hlcm9dJzsKK+WCmD4nW3VtYnJlbGxhXSc7Civlgpk+J1twcmVwYXJlXSc7Civlgpo+J1tpbWl0YXRlXSc7Civlgqw+J1twcmVzc10nOwor5YKtPidbaGlyZV0nOwor5YKyPidbcHJvdWRdJzsKK+WCsz4nW3N1bW1vbl0nOwor5YK0PidbaHVtcGJhY2tdJzsKK+WCtT4nW2RlYnRdJzsKK+WCtz4nW3dvdW5kXSc7Civlgr4+J1t1cHNldF0nOwor5YOCPidbaHVtcGJhY2tdJzsKK+WDhT4nW29ubHldJzsKK+WDiT4nW2FsbF0nOwor5YOKPidbVGFvaXN0IHN1cGVyLWJlaW5nXSc7Civlg40+J1tsYWJvcl0nOwor5YOPPidbcGljdHVyZV0nOwor5YORPidbc29qb3Vybl0nOwor5YOVPidbc2xhdmVdJzsKK+WDlj4nW2pveV0nOwor5YOaPidbY29tcGFuaW9uXSc7Civlg54+J1tmYWxzZV0nOwor5YOjPidbYXNzdW1lXSc7Civlg6U+J1tiZSBsdWNreV0nOwor5YOnPidbYnVkZGhpc3QgcHJpZXN0XSc7Civlg60+J1thc3N1bWVdJzsKK+WDrj4nW3BhZ2VdJzsKK+WDtT4nW3N0aWZmIGFuZCBtb3Rpb25sZXNzXSc7Civlg7k+J1twcmljZV0nOwor5YO7Pidbb3V0LW9mLXRoZS13YXldJzsKK+WEgD4nW2NlcmVtb255XSc7CivlhIE+J1tvdXRzdGFuZGluZ10nOwor5YSCPidbSV0nOwor5YSEPidbaHVuZHJlZCBtaWxsaW9uXSc7CivlhIk+J1t0ZW1wZXJhdGVdJzsKK+WEkj4nW2NvbmZ1Y2lhbiBzY2hvbGFyXSc7CivlhJQ+J1tjb21wYW5pb25dJzsKK+WElT4nW2EgY29tcGFueV0nOworIyLlhJU+J1thIGNvbXBhbnldJyIsCivlhJg+J1t1dG1vc3RdJzsKKyMi5YSYPidbdXRtb3N0XSciLAor5YSfPidbcmVwYXldJzsKK+WEoT4nW3B1cHBldF0nOwor5YSqPidbc3VwZXJpb3JdJzsKK+WEsj4nW3NhdmUgbW9uZXldJzsKK+WEtz4nW3Nwb3VzZV0nOwor5YS6PidbcmljaF0nOwor5YS7PidbaWZdJzsKK+WEvD4nW2dyYXZlXSc7CivlhL8+J1tzb25dJzsKK+WFgD4nW3RvIGN1dCBvZmYgdGhlIGZlZXRdJzsKK+WFgT4nW3RvIGdyYW50XSc7CivlhYM+J1tmaXJzdF0nOwor5YWEPidbZWxkZXIgYnJvdGhlcl0nOwor5YWFPidbZmlsbF0nOwor5YWGPidbb21lbl0nOwor5YWHPidbYXRyb2Npb3VzXSc7CivlhYg+J1tmaXJzdF0nOwor5YWJPidbbGlnaHRdJzsKK+WFiz4nW2dyYW1dJzsKK+WFjD4nW2Nhc2hdJzsKK+WFjT4nW3NwYXJlXSc7CivlhY4+J1tyYWJiaXRdJzsKK+WFkD4nW3Nvbl0nOwor5YWSPidbc29uXSc7CivlhZQ+J1tyYWJiaXRdJzsKK+WFmj4nW3BvbGl0aWNhbCBwYXJ0eV0nOwor5YWcPidbcG91Y2hdJzsKK+WFoj4nW2ZlYXJmdWxdJzsKK+WFpT4nW2VudGVyXSc7Civlhag+J1ttYWludGFpbl0nOwor5YWpPidbdHdvXSc7Civlhao+J1tzdXJuYW1lXSc7Civlhas+J1tlaWdodF0nOwor5YWsPidbZmFpcl0nOwor5YWtPidbbnVtYmVyIHNpeF0nOwor5YWuPidbZXhjbGFtYXRvcnkgcGFydGljbGVdJzsKK+WFsT4nW3RvZ2V0aGVyIHdpdGhdJzsKK+WFtT4nW3NvbGRpZXJdJzsKK+WFtj4nW2hpc10nOwor5YW3PidbdG9vbF0nOwor5YW4PidbbGF3XSc7Civlhbw+J1t1bml0ZV0nOwor5YaAPidbaG9wZSBmb3JdJzsKK+WGgj4nW3dpZGVdJzsKK+WGhT4nW2luc2lkZV0nOwor5YaGPidbeWVuXSc7Civlhok+J1t0ZW5kZXJdJzsKK+WGij4nW2Jvb2tdJzsKK+WGjD4nW2Jvb2tdJzsKK+WGjT4nW2FnYWluXSc7Civlho8+J1tbbm90IGZvdW5kIGluIGRpY3Rpb25hcnldXSc7CivlhpA+J1tyaXNrXSc7CivlhpE+J1toZWxtZXRdJzsKK+WGkj4nW3Jpc2tdJzsKK+WGkz4nW2Egc2VjbHVkZWQgcGxhY2VdJzsKK+WGlT4nW2Nyb3duXSc7CivlhpY+J1tjb3Zlcl0nOwor5YaXPidbZXhjZXNzaXZlXSc7Civlhpk+J1t3cml0ZV0nOwor5YagPidbY2FwXSc7CivlhqI+J1tidXJpYWwgbW91bmRdJzsKK+WGpD4nW2dyaWV2YW5jZV0nOwor5YalPidbZGFya10nOwor5YamPidbYmFuZGl0c10nOwor5YaoPidbYWJ1bmRhbnRdJzsKK+WGqT4nW3dyaXRlXSc7Civlhqo+J1tjb3Zlci1jbG90aF0nOwor5YarPidbaWNlXSc7Civlhqw+J1t3aW50ZXJdJzsKK+WGsD4nW2ljZV0nOwor5YaxPidbZnJlZXppbmddJzsKK+WGsj4nW3NvYXJdJzsKK+WGsz4nW2RlY2lkZV0nOwor5Ya0PidbZnJlZXppbmddJzsKK+WGtT4nW2NvbmRpdGlvbl0nOwor5Ya2Pidbc21lbHRdJzsKK+WGtz4nW2NvbGRdJzsKK+WGvT4nW2NvbGQgYW5kIHJhd10nOwor5YeEPidbYml0dGVyIGNvbGRdJzsKK+WHhT4nW2RyaWVkIHVwXSc7Civlh4Y+J1thcHByb3ZlXSc7Civlh4k+J1tjb29sXSc7Civlh4s+J1tiZSB3aXRoZXJlZF0nOwor5YeMPidbcHVyZV0nOwor5YeNPidbZnJlZXplXSc7Civlh5Y+J1tydWxlXSc7Civlh5s+J1t0byBzaGl2ZXIgd2l0aCBjb2xkIG9yIGZlYXJdJzsKK+WHnD4nW3NoaXZlciB3aXRoIGNvbGQgb3IgZmVhcl0nOwor5YedPidbY29hZ3VsYXRlXSc7Civlh6A+J1tzbWFsbCB0YWJsZV0nOwor5YehPidbYWxsXSc7Civlh6Y+J1twbGFjZV0nOwor5YenPidba2l0ZV0nOwor5YepPidbd2ludHJ5IHdpbmRdJzsKK+WHqj4nW2NhbG1dJzsKK+WHrT4nW2xlYW4gb25dJzsKK+WHsD4nW2ZlbWFsZSBwaG9lbml4XSc7Civlh7E+J1t0cml1bXBoYW50XSc7Civlh7U+J1tyZWNlcHRhY2xlXSc7Civlh7Y+J1tjdWxwcml0XSc7Civlh7g+J1twcm90cnVkZV0nOwor5Ye5PidbY29uY2F2ZV0nOwor5Ye6PidbZ28gb3V0XSc7Civlh70+J1tjb3JyZXNwb25kZW5jZV0nOwor5Ye+PidbY29ycmVzcG9uZGVuY2VdJzsKK+WIgD4nW2tuaWZlXSc7CivliIM+J1tlZGdlZCB0b29sXSc7CivliIQ+J1tlZGdlZCB0b29sXSc7CivliIY+J1tkaXZpZGVdJzsKK+WIhz4nW2N1dF0nOwor5YiIPidbY3V0IG9mZl0nOwor5YiKPidbcHVibGljYXRpb25dJzsKK+WIiz4nW3B1YmxpY2F0aW9uXSc7CivliI4+J1tiZWhlYWRdJzsKK+WIkT4nW3B1bmlzaG1lbnRdJzsKK+WIlD4nW3Njb29wIG91dF0nOwor5YiXPidbbGluZV0nOwor5YidPidbYmVnaW5uaW5nXSc7CivliKQ+J1tqdWRnZV0nOwor5YilPidbc2VwYXJhdGVdJzsKK+WIpz4nW2Rpc2FzdGVyXSc7CivliKk+J1tnYWluc10nOwor5YiqPidbdG8gY3V0XSc7CivliK4+J1tzaGF2ZV0nOwor5YiwPidbZ28gdG9dJzsKK+WIsz4nW2N1dCBvdXRdJzsKK+WItj4nW3N5c3RlbV0nOwor5Yi3PidbYnJ1c2hdJzsKK+WIuD4nW2NlcnRpZmljYXRlXSc7CivliLk+J1t0ZW1wbGVdJzsKK+WIuj4nW3N0YWJdJzsKK+WIuz4nW2NhcnZlXSc7CivliYM+J1tzaGF2ZV0nOwor5YmEPidbY3V0IHRocm9hdF0nOwor5YmHPidbcnVsZV0nOwor5YmKPidbc2NyYXBlIG9mZl0nOwor5YmLPidbc3ViZHVlXSc7CivliYw+J1tzbGFzaF0nOwor5YmNPidbaW4gZnJvbnRdJzsKK+WJjz4nW2VzdGFibGlzaF0nOwor5YmUPidbcGljayBvdXRdJzsKK+WJlj4nW3NwbGl0IGluIHR3b10nOwor5YmbPidbaGFyZF0nOwor5YmePidbY2FydmluZyBvciBlbmdyYXZpbmcga25pZmVdJzsKK+WJoz4nW3N3b3JkXSc7CivliaQ+J1ttZWRpY2luYWwgcHJlcGFyYXRpb25dJzsKK+WJpT4nW3BlZWxdJzsKK+WJqT4nW2xlZnRvdmVyc10nOwor5YmqPidbc2Npc3NvcnNdJzsKK+WJrz4nW2Fzc2lzdF0nOwor5YmwPidbbGVmdG92ZXJzXSc7CivlibE+J1tzd29yZF0nOwor5YmyPidbY3V0XSc7CivlibM+J1ticmllZiBub3RlXSc7CivlibQ+J1tzaGFycGVuXSc7CivlibU+J1tlc3RhYmxpc2hdJzsKK+WJvT4nW3JvYl0nOwor5Ym/PidbZGVzdHJveV0nOwor5YqDPidbZGl2aWRlXSc7Civlioc+J1t0aGVhdHJpY2FsIHBsYXlzXSc7Civliog+J1tjdXQgYXBhcnRdJzsKK+WKiT4nW3N1cm5hbWVdJzsKK+WKjT4nW3N3b3JkXSc7CivlipE+J1ttZWRpY2luYWwgcHJlcGFyYXRpb25dJzsKK+WKkj4nW3N3b3JkXSc7CivlipQ+J1tzd29yZF0nOwor5YqbPidbcG93ZXJdJzsKK+WKnz4nW2FjaGlldmVtZW50XSc7CivliqA+J1thZGQgdG9dJzsKK+WKoz4nW2JhZF0nOwor5YqpPidbaGVscF0nOwor5YqqPidbZXhlcnRdJzsKK+WKqz4nW3Rha2UgYnkgZm9yY2VdJzsKK+WKrD4nW2JlIGRpbGlnZW50XSc7Civliq0+J1tlbmNvdXJhZ2VdJzsKK+WKsT4nW3N0cml2ZV0nOwor5Yq0PidbbGFib3JdJzsKK+WKtT4nW2NlcnRpZmljYXRlXSc7Civlirk+J1tlZmZpY2FjaW91c10nOwor5Yq8PidbYmUgZGlzY3JlZXRdJzsKK+WKvj4nW2V4YW1pbmUgaW50b10nOwor5YuBPidbc3Ryb25nXSc7Civli4M+J1tzdWRkZW5seV0nOwor5YuFPidbaW1wZXJpYWwgZGVncmVlXSc7Civli4c+J1ticmF2ZV0nOwor5YuJPidbZW5kZWF2b3JdJzsKK+WLjT4nW3N0cm9uZ10nOwor5YuSPidbc3RyYW5nbGVdJzsKK+WLlT4nW21vdmVdJzsKK+WLlz4nW2Vuam9pbl0nOwor5YuYPidbaW52ZXN0aWdhdGVdJzsKK+WLmT4nW2FmZmFpcnNdJzsKK+WLnT4nW3ZpY3RvcnldJzsKK+WLnj4nW2xhYm9yXSc7Civli58+J1tsZXZ5XSc7Civli6A+J1tqb2luIGZvcmNlc10nOwor5YuiPidbcG93ZXJdJzsKK+WLoz4nW2FjaGlldmVtZW50c10nOwor5YukPidbaW5kdXN0cmlvdXNdJzsKK+WLpj4nW2Rlc3Ryb3ldJzsKK+WLpz4nW3JlY29tbWVuZF0nOwor5YuyPidbbWVyaXRvcmlvdXMgZGVlZF0nOwor5YuzPidbbWVyaXRvcmlvdXMgZGVlZF0nOwor5Yu1Pidbc3RyaXZlXSc7Civli7g+J1tyZWNvbW1lbmRdJzsKK+WLuT4nW3dyYXBdJzsKK+WLuj4nW3Nwb29uXSc7Civli74+J1tob29rXSc7Civli78+J1ttdXN0IG5vdF0nOwor5YyBPidbSmFwYW5lc2UgdW5pdCBvZiB3ZWlnaHQgKDEvMTAwMCBvZiBhIGthbildJzsKK+WMgj4nW2ZyYWdyYW5jZV0nOwor5YyFPidbd3JhcF0nOwor5YyGPidbaGFzdGlseV0nOwor5YyIPidbYnJlYXN0XSc7CivljI0+J1tjcmF3bF0nOwor5YyPPidbZ291cmRdJzsKK+WMkD4nW2ZhbGwgcHJvc3RyYXRlXSc7CivljJU+J1tzcG9vbl0nOwor5YyWPidbY2hhbmdlXSc7CivljJc+J1tub3J0aF0nOwor5YyZPidbc3Bvb25dJzsKK+WMmj4nW2JveF0nOwor5YydPidbZnVsbCBjaXJjbGVdJzsKK+WMoD4nW2NyYWZ0c21hbl0nOwor5YyhPidbY29ycmVjdF0nOwor5YyjPidbc21hbGwgYm94XSc7CivljKo+J1tiYW5kaXRzXSc7CivljK8+J1tjb25jb3Vyc2VdJzsKK+WMsT4nW3RvIGxhY2tdJzsKK+WMsz4nW2xhZGllcyB0b2lsZXQgY2FzZSB3aXRoIG1pcnJvcl0nOwor5Yy4PidbYm94XSc7CivljLk+J1tib2x0IG9mIGNsb3RoXSc7CivljLo+J1thcmVhXSc7CivljLs+J1tjdXJlXSc7CivljL8+J1toaWRlXSc7CivljYA+J1thcmVhXSc7CivljYE+J1t0ZW5dJzsKK+WNgz4nW3Rob3VzYW5kXSc7CivljYU+J1t0aGlydHldJzsKK+WNhj4nW3NvbGRpZXJdJzsKK+WNhz4nW2FyaXNlXSc7CivljYg+J1tub29uXSc7CivljYk+J1tnZW5lcmFsIHRlcm0gZm9yIHBsYW50c10nOwor5Y2KPidbaGFsZl0nOwor5Y2NPidbc3dhc3Rpa2EgLSBmb3VydGggb2YgYXVzcGljaW91c10nOwor5Y2RPidbaHVtYmxlXSc7CivljZI+J1tzb2xkaWVyXSc7CivljZM+J1twcm9mb3VuZF0nOwor5Y2UPidbYmUgdW5pdGVkXSc7CivljZc+J1tzb3V0aF0nOworIyLljZc+J1tzb3V0aF0nIiwKK+WNmj4nW2dhbWJsZV0nOwor5Y2cPidbZm9ydHVuZSB0ZWxsaW5nXSc7CivljZ4+J1tiZSBpbXBhdGllbnRdJzsKK+WNoD4nW2RpdmluZV0nOwor5Y2mPidbZm9ydHVuZSB0ZWxsaW5nXSc7Civljak+J1tzZWFsXSc7Civlja4+J1ttZWFzdXJpbmcgY3VwXSc7Civlja8+J1s0dGggb2YgRWFydGggQnJhbmNoZXNdJzsKK+WNsD4nW3ByaW50XSc7CivljbE+J1tkYW5nZXJvdXNdJzsKK+WNsz4nW3Byb21wdGx5XSc7CivljbQ+J1tzdGlsbF0nOwor5Y21PidbZWdnXSc7Civljbc+J1tzY3JvbGxdJzsKK+WNuD4nW2xheSBkb3duXSc7Civljbs+J1tzdGlsbF0nOwor5Y2/Pidbbm9ibGVdJzsKK+WOgj4nW2ZhY3RvcnldJzsKK+WOhD4nW2FkdmVyc2l0eV0nOwor5Y6WPidbYnVsa3ldJzsKK+WOmD4nW3Rob3VzYW5kdGggcGFydCBvZiB0YWVsXSc7Civljpo+J1t0aGlja10nOwor5Y6fPidbc291cmNlXSc7CivljqA+J1ttaW5nbGUgd2l0aF0nOwor5Y6lPidbcGVyc29uYWwgcHJvbm91biAtIGhlXSc7CivljqY+J1tiaWcgYnVpbGRpbmddJzsKK+WOqD4nW2tpdGNoZW5dJzsKK+WOqT4nW3N0YWJsZV0nOwor5Y6tPidbZGlzbGlrZV0nOwor5Y6uPidbc2VydmFudF0nOwor5Y6wPidbZmFjdG9yeV0nOwor5Y6zPidbc3RyaWN0XSc7CivljrY+J1twcml2YXRlXSc7Civljrs+J1tnbyBhd2F5XSc7Civlj4I+J1t0YWtlIHBhcnQgaW5dJzsKK+WPgz4nW3Rha2UgcGFydCBpbl0nOwor5Y+IPidbYW5kXSc7Civlj4k+J1tjcm90Y2hdJzsKK+WPij4nW2V4dGVuZF0nOwor5Y+LPidbZnJpZW5kXSc7Civlj4w+J1tzZXQgb2YgdHdvXSc7Civlj40+J1tyZXZlcnNlXSc7Civlj44+J1tnYXRoZXIgdG9nZXRoZXJdJzsKK+WPlD4nW2ZhdGhlcicncyB5b3VuZ2VyIGJyb3RoZXJdJzsKK+WPlj4nW3Rha2VdJzsKK+WPlz4nW3JlY2VpdmVdJzsKK+WPmT4nW2V4cHJlc3NdJzsKK+WPmz4nW3JlYmVsXSc7Civlj58+J1tvbGQgbWFuXSc7Civlj6E+J1thc3R1dGVdJzsKK+WPoj4nW2J1c2hdJzsKK+WPoz4nW21vdXRoXSc7Civlj6Q+J1tvbGRdJzsKK+WPpT4nW3NlbnRlbmNlXSc7Civlj6g+J1t0YWxrYXRpdmVdJzsKK+WPqT4nW2tub2NrXSc7Civlj6o+J1tvbmx5XSc7Civlj6s+J1tjcnldJzsKK+WPrD4nW2ltcGVyaWFsIGRlY3JlZV0nOwor5Y+tPidbdHJ1bXBldF0nOwor5Y+uPidbZXhob3J0IG9yIGVuam9pbiByZXBlYXRlZGx5XSc7Civlj68+J1ttYXldJzsKK+WPsD4nW3BsYXRmb3JtXSc7Civlj7E+J1tzY29sZF0nOwor5Y+yPidbaGlzdG9yeV0nOwor5Y+zPidbcmlnaHRdJzsKK+WPtj4nW3RvIGhhcm1vbml6ZV0nOwor5Y+3PidbbWFya10nOwor5Y+4PidbdGFrZSBjaGFyZ2Ugb2ZdJzsKKyMi5Y+5Pidbc2lnaF0nIiwKK+WQgT4nW2ludGVyamVjdGlvbiBcIkFsYXMhXCJdJzsKK+WQgz4nW2VhdF0nOwor5ZCEPidbZWFjaF0nOwor5ZCIPidbY29tYmluZV0nOwor5ZCJPidbbHVja3ldJzsKK+WQij4nW2NvbmRvbGVdJzsKK+WQiz4nW2luY2hdJzsKK+WQjD4nW3NhbWVdJzsKK+WQjT4nW25hbWVdJzsKK+WQjj4nW3F1ZWVuXSc7CivlkI8+J1tnb3Zlcm5tZW50IG9mZmljaWFsXSc7CivlkJA+J1t2b21pdF0nOwor5ZCRPidbdG93YXJkXSc7CivlkJs+J1tzb3ZlcmVpZ25dJzsKK+WQnT4nW3N0aW5neV0nOwor5ZCfPidbc2luZ10nOwor5ZCgPidbYmFya10nOwor5ZCmPidbbm90XSc7CivlkKk+J1tvcmRlcl0nOwor5ZCrPidbaG9sZCBpbiBtb3V0aF0nOwor5ZCsPidbaGVhcl0nOwor5ZCtPidbdGhyb2F0XSc7CivlkK4+J1tzdWNrIHdpdGggbW91dGhdJzsKK+WQtj4nW3JhaXNlIHZvaWNlXSc7CivlkLg+J1tpbmhhbGVdJzsKK+WQuT4nW2Jsb3ddJzsKK+WQuz4nW2tpc3NdJzsKK+WQvD4nW3JvYXJdJzsKK+WQvT4nW1wiT01cIl0nOwor5ZC+PidbaV0nOwor5ZGAPidbcGFydGljbGUgdXNlZCBleHByZXNzIHN1cnByaXNlXSc7CivlkYI+J1tzdXJuYW1lXSc7CivlkYY+J1tkdWxsXSc7CivlkYg+J1tzdWJtaXRdJzsKK+WRiT4nW29uZSBvZiB3YXJyaW5nIHN0YXRlc10nOwor5ZGKPidbdGVsbF0nOwor5ZGOPidbZm9vdF0nOwor5ZGRPidbc3dhbGxvd10nOworIyLlkZw+J1tzb3VuZCBvZiBjcnlpbmddJyIsCivlkag+J1t6aG91IGR5bmFzdHldJzsKK+WRqj4nW2N1cnNlXSc7CisjIuWRsD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5ZGxPidbd2FpbF0nOwor5ZGzPidbdGFzdGVdJzsKK+WRtT4nW3Njb2xkXSc7CivlkbY+J1t0YWxrYXRpdmVdJzsKK+WRtz4nW3N1Y2tdJzsKK+WRuz4nW2dyb2FuXSc7Civlkbw+J1ticmVhdGhlIHNpZ2hdJzsKK+WRvT4nW2xpZmVdJzsKK+WSgD4nW3N1Y2tdJzsKK+WShD4nW25vaXNlIG9mIHJhZ2VdJzsKK+WShj4nW3JvYXJdJzsKK+WSiz4nW3doeT8gaG93PyB3aGF0P10nOwor5ZKMPidbaGFybW9ueV0nOwor5ZKOPidbZmF1bHRdJzsKK+WSjz4nW3Npbmcgc29uZyBvciBwb2VtXSc7CivlkpA+J1tpbnN0cnVjdF0nOwor5ZKSPidbY3Vyc2VdJzsKK+WSoj4nW3NvdW5kXSc7CivlkqQ+J1tzY29sZF0nOwor5ZKlPidbc291bmQgb2YgY2F0XSc7Civlkqg+J1tpbnF1aXJlXSc7Civlkqs+J1tmb290IG1lYXN1cmUgb2YgWmhvdSBkeW5hc3R5XSc7Civlkqw+J1tiaXRlXSc7Civlkq8+J1tmaW5hbCBwYXJ0aWNsZV0nOwor5ZKyPidbc21pbGVdJzsKK+WSsz4nW2NvdWdoXSc7Civlkrg+J1t0b2dldGhlcl0nOwor5ZK8PidbY2hhdF0nOwor5ZK9PidbdGhyb2F0XSc7Civlkr4+J1thIG5vaXNlXSc7Civlk4A+J1tzYWRdJzsKK+WTgT4nW2FydGljbGVdJzsKK+WTgj4nW3NtaWxlXSc7Civlk4Q+J1tjb2F4XSc7Civlk4c+J1t2b21pdF0nOwor5ZOIPidbc291bmQgb2YgbGF1Z2h0ZXJdJzsKK+WTiT4nW2ZpbmFsIGV4Y2xhbWF0b3J5IHBhcnRpY2xlXSc7CisjIuWTlz4nW3J1c2hpbmcgc291bmRdJyIsCivlk6E+J1ttZW1iZXJdJzsKK+WToj4nW3N5bGxhYmxlXSc7Civlk6U+J1tlbGRlciBicm90aGVyXSc7Civlk6Y+J1tvaD8gcmVhbGx5PyBpcyB0aGF0IHNvP10nOwor5ZOoPidbd2hpc3RsZV0nOwor5ZOpPidbbWlsZV0nOwor5ZOtPidbd2VlcF0nOwor5ZOuPidbY291Z2hdJzsKK+WTsj4nW3dpc2VdJzsKK+WTuj4nW2NoZXcgZm9vZF0nOwor5ZO9PidbY2hva2VdJzsKK+WUhD4nW2ZpbmFsIHBhcnRpY2xlIG9mIGFzc2VydGlvbiBwYXRoYWthXSc7CivllIY+J1ttYWtlIG1pc2NoaWVmXSc7CivllIc+J1tsaXBzXSc7CivllI8+J1t3ZWVwIG9yIHNvYl0nOwor5ZSQPidbdGFuZyBkeW5hc3R5XSc7CivllJQ+J1tob2xkIGluIG1vdXRoXSc7CivllJY+J1tkdW1iXSc7CivllK4+J1tzZWxsXSc7CivllK8+J1tvbmx5XSc7CivllLE+J1tzaW5nXSc7CivllLM+J1tjcnkgb2YgYmlyZF0nOwor5ZS4PidbcmVjaXRlXSc7CivllLk+J1t0byBzbWlsZSBhdF0nOwor5ZS+Pidbc3BpdF0nOwor5ZWAPidbZ25hd10nOwor5ZWEPidbdG8gcGVja10nOworIyLllYQ+J1t0byBwZWNrXSciLAor5ZWGPidbY29tbWVyY2VdJzsKK+WVjD4nW2FuaW1hbCBkaXNlYXNlXSc7CivllY8+J1thc2sgKGFib3V0KV0nOwor5ZWTPidbb3Blbl0nOwor5ZWWPidbZWF0XSc7CivllZc+J1tlYXRdJzsKK+WVnD4nW3NpcF0nOworIyLllZw+J1tzaXBdJyIsCivllaM+J1tob2xkIGluIG1vdXRoXSc7Civllbs+J1tvbmx5XSc7Civllbw+J1t3ZWVwXSc7Civllb4+J1t3YWlsaW5nIG9mIGNoaWxkXSc7CivlloA+J1t2b21pdF0nOwor5ZaDPidba2VlcCB0YWxraW5nXSc7CivlloQ+J1tnb29kXSc7Civlloc+J1tob3JuXSc7Civllok+J1t0aHJvYXRdJzsKK+WWij4nW3Nob3V0XSc7Civllos+J1tuYWddJzsKK+WWmD4nW3BhbnRdJzsKK+WWmT4nW2JlYWtdJzsKK+WWmj4nW2NhbGxdJzsKK+WWnD4nW2xpa2VdJzsKK+WWnT4nW2RyaW5rXSc7Civllp4+J1tjaGlycGluZyBvZiBpbnNlY3RzXSc7Civllp8+J1toZWF2ZSBzaWdoXSc7Civllqc+J1tsaXZlbHldJzsKK+WWqD4nW3dhaWxdJzsKK+WWqT4nW21ldGFwaG9yXSc7Civllqo+J1ttb3VybmluZ10nOwor5ZarPidbZWF0XSc7Civllqw+J1t0YWxsXSc7Civllq4+J1tzaW5nbGVdJzsKK+WWsD4nW3RvIGVhdF0nOwor5Za2PidbZW5jYW1wbWVudF0nOwor5ZeEPidbaG9hcnNlIG9mIHZvaWNlXSc7Civll4U+J1tzbWVsbF0nOwor5ZeHPidbbWlzZXJseV0nOwor5ZeUPidbYmUgYW5ncnkgYXRdJzsKK+WXmj4nW3NvdW5kIG9mIGNyeWluZ10nOwor5ZecPidbYmUgZm9uZCBvZl0nOwor5ZefPidbc2lnaF0nOwor5ZejPidbdG8gY29ubmVjdF0nOwor5ZekPidbbGF1Z2ggYXRdJzsKK+WXtz4nW2xvdWQgY2xhbW9yXSc7Civll7k+J1tjaGF0dGVyXSc7Civll70+J1tjb3VnaF0nOwor5Ze+PidbdG8gc2V0IGEgZG9nIG9uXSc7CivlmIY+J1tzaWdoXSc7CivlmIk+J1tleGNlbGxlbnRdJzsKK+WYlD4nW3ZvbWl0XSc7CivlmJY+J1tpbnRlcmplY3Rpb24gb2YgYXBwcm92YWwgb3IgYWRtaV0nOwor5ZiXPidbdGFzdGVdJzsKK+WYmD4nW2V4aGFsZV0nOwor5ZibPidbZmluYWwgZXhjbGFtYXRvcnkgcGFydGljbGVdJzsKK+WYqT4nW3J1c2hpbmcgc291bmRdJzsKK+WYrz4nW3JvYXJdJzsKK+WYsT4nW29yZGVyXSc7CivlmLI+J1tyaWRpY3VsZV0nOwor5Zi0PidbbW91dGhdJzsKK+WYtj4nW25laWdoaW5nIG9mIGEgaG9yc2VdJzsKK+WYuD4nW3VuY2xlYXJdJzsKK+WZgj4nW21lZXRdJzsKK+WZjD4nW3Njb2xkXSc7CivlmY4+J1tjaG9rZV0nOwor5ZmQPidbcmVjZXB0YWNsZV0nOwor5ZmbPidbYml0ZV0nOwor5ZmkPidbY2xvc2VdJzsKK+WZqD4nW3JlY2VwdGFjbGVdJzsKK+WZqj4nW2JlIG5vaXN5XSc7Civlmas+J1tiZWxjaF0nOwor5ZmsPidbYml0ZV0nOwor5Zm0Pidbc3B1cnRdJzsKK+WZuD4nW21ldHJpYyB0b25dJzsKK+WZuj4nW3N0b3J5XSc7CivlmoA+J1tlbmpvaW5dJzsKK+Wahj4nW2dpdmUgZm9ydGggc291bmRdJzsKK+Wahz4nW3NjYXJlXSc7Civlmoo+J1t0byBwYW50XSc7Civlmo8+J1tzbmVlemVdJzsKK+WalD4nW3NuZWV6ZV0nOworIyLlmpw+J1tiZSBzaWxlbnRdJyIsCivlmqI+J1tiYWddJzsKK+WapT4nW3N3YWxsb3ddJzsKK+Warj4nW2d1aWRlXSc7CivlmrQ+J1tzdHJpY3RdJzsKK+Watj4nW3NlZWsgZnJpZW5kc10nOwor5Zq8PidbcHJhdHRsZV0nOwor5ZuAPidbc2luZ10nOwor5ZuBPidbbW92ZSBsaXAgd2hlbiBzcGVha2luZ10nOwor5ZuCPidbYmUgbm9pc3ldJzsKKyMi5ZuCPidbYmUgbm9pc3ldJyIsCivlm4g+J1t0YWxrIGluIG9uZScncyBzbGVlcF0nOworIyLlm40+J1tkb3VibGUgaGFwcGluZXNzXSciLAor5ZuRPidbb3JkZXJdJzsKK+Wbkz4nW2duYXddJzsKK+Wblz4nW2VyZWN0XSc7Civlm5g+J1tyZXR1cm5dJzsKK+Wbmj4nW3ByaXNvbmVyXSc7Civlm5s+J1tmb3VyXSc7Civlm54+J1tyZXR1cm5dJzsKK+WboD4nW2NhdXNlXSc7Civlm6M+J1tzcGhlcmVdJzsKK+Wbrj4nW2ludmVpZ2xlXSc7Civlm7A+J1tzdXJyb3VuZF0nOwor5ZuyPidbc3Vycm91bmRdJzsKK+Wbsz4nW2RpYWdyYW1dJzsKK+WbuT4nW3ByaXNvbl0nOwor5Zu6PidbYmVjb21lIHNvbGlkXSc7Civlm70+J1tuYXRpb25dJzsKK+Wbvz4nW3BlbiB1cF0nOwor5ZyAPidbbmF0aW9uXSc7CivlnIM+J1tnYXJkZW5dJzsKK+WchD4nW3ByaXNvbl0nOwor5ZyIPidbdG8gY2lyY2xlXSc7CivlnIk+J1tzdGFibGVdJzsKK+Wciz4nW25hdGlvbl0nOwor5ZyNPidbc3Vycm91bmRdJzsKK+Wcjz4nW3RvIGNpcmNsZV0nOwor5ZySPidbZ2FyZGVuXSc7CivlnJM+J1tjaXJjbGVdJzsKK+Wclj4nW2RpYWdyYW1dJzsKK+WcmD4nW3NwaGVyZV0nOwor5ZycPidbY2lyY2xlXSc7CivlnJ8+J1tzb2lsXSc7CivlnKY+J1soa29rdWppKSB3YXRlciBnYXRlXSc7CisjIuWcpj4nWyhrb2t1amkpIHdhdGVyIGdhdGVdJyIsCivlnKg+J1tiZSBhdF0nOwor5ZytPidbamFkZSBwb2ludGVkIGF0IHRvcF0nOwor5ZywPidbZWFydGhdJzsKKyMi5ZyzPidbZnVycm93IGluIGZpZWxkXSciLAorIyLlnLM+J1tmdXJyb3cgaW4gZmllbGRdJyIsCivlnLs+J1tib3JkZXJdJzsKK+WdgD4nW3NpdGVdJzsKK+Wdgj4nW2hpbGxzaWRlXSc7CivlnYc+J1tlcXVhbF0nOwor5Z2KPidbbmVpZ2hib3Job29kXSc7CivlnY4+J1twaXRdJzsKK+Wdjz4nW3JvdHRlbl0nOwor5Z2QPidbc2l0XSc7CivlnZE+J1twaXRdJzsKK+WdoT4nW3Nsb3BlXSc7CivlnaQ+J1tlYXJ0aF0nOwor5Z2mPidbZmxhdF0nOwor5Z2pPidbZWFydGhlbndhcmVdJzsKK+Wdqj4nW2xldmVsIGdyb3VuZF0nOwor5Z2/PidbbW91bmRdJzsKK+Wegj4nW2xldCBkb3duXSc7CisjIuWehj4nW2JsYWNrIGNsb2RzIG9mIGVhcnRoXSciLAorIyLlnok+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+Weiz4nW3BhdHRlcm5dJzsKK+Wekz4nW2JvcmRlcl0nOwor5Z6gPidbYm91bmRhcnldJzsKK+Weoj4nW2RpcnRdJzsKK+Weoz4nW2xvdyB3YWxsXSc7CivlnqQ+J1thbnQtaGlsbF0nOworIyLlnqk+J1tob2x5XSciLAorIyLlnq4+J1tiZSBkZWZlYXRlZF0nIiwKKyMi5Z6yPidbaGlnaCBhbmQgZHJ5IHBsYWNlXSciLAor5Z+APidbbGV0IGRvd25dJzsKK+Wfgz4nW2ZpbmUgZHVzdF0nOwor5Z+GPidbc3RvbnldJzsKK+Wfiz4nW2J1cnldJzsKK+Wfjj4nW2Nhc3RsZV0nOwor5Z+SPidbZW5jbG9zdXJlXSc7Civln5M+J1tlbmNsb3N1cmVdJzsKK+WflD4nW3BsYWluXSc7CisjIuWflD4nW3BsYWluXSciLAor5Z+cPidbb3BlbiBjb3VudHJ5XSc7Civln58+J1tkaXN0cmljdF0nOwor5Z+gPidbcG9ydCBjaXR5XSc7CisjIuWfoz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5Z+0Pidbc29pbCB3aXRoIGxhcmdlIGNsYXkgY29udGVudF0nOwor5Z+3PidbaG9sZCBpbiBoYW5kXSc7Civln7k+J1tiYW5rIHVwIHdpdGggZGlydF0nOwor5Z+6PidbZm91bmRhdGlvbl0nOwor5Z+8PidbaGVhZGxhbmRdJzsKK+WggD4nW2NhdmVdJzsKK+Wggj4nW2hhbGxdJzsKK+WghT4nW2hhcmRdJzsKK+Wghj4nW2hlYXBdJzsKK+Wgij4nW3doaXRlIGVhcnRoXSc7CivloIs+J1tidXJ5XSc7CivloJU+J1tmYWxsXSc7CivloJk+J1tidXJ5XSc7CivloJ0+J1tjcnVjaWJsZV0nOwor5aChPidbZm9ydF0nOwor5aCkPidbZGlrZV0nOwor5aCqPidbYWRlcXVhdGVseSBjYXBhYmxlIG9mXSc7CivloK8+J1thIGxlZ2VuZGFyeSBhbmNpZW50IGVtcGVyb3Itc2FnZV0nOwor5aCwPidbZGFtXSc7CivloLE+J1tyZXBvcnRdJzsKK+WgtD4nW29wZW4gc3BhY2VdJzsKK+WgtT4nW3dhbGxdJzsKK+Wguj4nW3BlcnNvbicncyBuYW1lXSc7CivloL0+J1ttb3VuZF0nOwor5aGAPidbd2FsbF0nOwor5aGBPidbcmFtcGFydF0nOwor5aGKPidbcGllY2VdJzsKK+Whiz4nW2dyYXZlXSc7CivloZE+J1ttb2RlbCBpbiBjbGF5XSc7CivloZI+J1tyb29zdF0nOwor5aGUPidbdG93ZXJdJzsKK+Whlz4nW3NtZWFyXSc7CivloZg+J1twb25kXSc7CivloZk+J1t0cnVseV0nOwor5aGaPidbY2VtZXRlcnldJzsKK+Whnj4nW3N0b3AgdXBdJzsKK+Whoj4nW2VudHJlbmNobWVudF0nOwor5aGpPidbc2FsdF0nOwor5aGrPidbZmlsbCBpbl0nOworIyLloa0+J1tbbm90IGZvdW5kIGluIGFueSBkaWN0aW9uYXJ5XV0nIiwKK+Whsj4nW29wZW4gc3BhY2VdJzsKK+WhtT4nW2R1c3RdJzsKK+WhuT4nW21vYXRdJzsKK+Whvj4nW3ZpbGxhZ2Ugc2Nob29sXSc7CivlooM+J1tib3VuZGVyeV0nOwor5aKFPidbdmlsbGFdJzsKK+Wikz4nW2dyYXZlXSc7Civlopc+J1tpbmNyZWFzZV0nOwor5aKcPidbZmFsbCBkb3duXSc7Civlop8+J1toaWdoIG1vdW5kXSc7Civloqg+J1tpbmtdJzsKK+Wiqz4nW2N1cF0nOwor5aKuPidbZmFsbF0nOwor5aKzPidbZ3JhdmVdJzsKKyMi5aKzPidbZ3JhdmVdJyIsCisjIuWisz4nW2dyYXZlXSciLAor5aK6PidbNCB3YWxsc10nOwor5aK7Pidbd2FsbF0nOwor5aK+PidbY3VsdGl2YXRlXSc7Civlo4E+J1twYXJ0aXRpb24gd2FsbF0nOwor5aOFPidbdG8gb2JzdHJ1Y3RdJzsKK+Wjhz4nW2FsdGFyXSc7Civlo4o+J1tiYWRdJzsKK+WjjD4nW3NvaWxdJzsKK+WjkT4nW2JlZCBvZiB0b3JyZW50XSc7Civlo5M+J1twcmVzc10nOwor5aOVPidbdHJlbmNoXSc7CisjIuWjlj4nW29wZW4gc3BhY2UgYWxvbmcgd2F0ZXJdJyIsCivlo5g+J1tyYW1wYXJ0XSc7Civlo5k+J1t0b21iXSc7Civlo5w+J1tlYXJ0aGVuIGphciBvciBqdWddJzsKK+Wjnj4nW2JhZF0nOwor5aOfPidbZ3JhdmVdJzsKK+WjpD4nW3NvaWxdJzsKKyMi5aOlPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivlo6s+J1tzY2hvbGFyXSc7Civlo6w+J1tuaW50aCBvZiB0ZW4gY2VsZXN0aWFsIHN0ZW1zXSc7Civlo64+J1tiaWddJzsKK+Wjrz4nW2JpZ10nOwor5aOwPidbc291bmRdJzsKK+WjsT4nW251bWJlciBvbmVdJzsKK+Wjsj4nW3NlbGxdJzsKK+Wjtz4nW2phcl0nOwor5aO5PidbbnVtYmVyIG9uZV0nOwor5aO6PidbamFyXSc7Civlo7s+J1tzb24taW4tbGF3XSc7Civlo7w+J1twYWxhY2UgY29ycmlkb3Igb3IgcGFzc2FnZXdheV0nOwor5aO9Pidbb2xkIGFnZV0nOwor5aSCPidbZ29dJzsKK+WkiT4nW2NoYW5nZV0nOwor5aSKPidbUmFkaWNhbCBOby4gMzVdJzsKK+Wkjz4nW3N1bW1lcl0nOwor5aSQPidbbG9uZ10nOwor5aSVPidbZXZlbmluZ10nOwor5aSWPidbb3V0XSc7CivlpJg+J1s0dGggb2YgRWFydGggQnJhbmNoZXNdJzsKK+WkmT4nW2Vhcmx5IGluIG1vcm5pbmddJzsKK+Wkmj4nW211Y2hdJzsKK+Wkmz4nW211Y2hdJzsKK+WknD4nW25pZ2h0XSc7CivlpKI+J1tkcmVhbV0nOwor5aSlPidbY29tcGFuaW9uXSc7CivlpKc+J1tiaWddJzsKK+WkqT4nW3NreV0nOwor5aSqPidbdmVyeV0nOwor5aSrPidbbWFuXSc7CivlpKw+J1twYXJ0ZWRdJzsKK+WkrT4nW3lvdW5nXSc7CivlpK4+J1tjZW50ZXJdJzsKK+WksT4nW2xvc2VdJzsKK+Wksj4nW2FkdmFuY2UgcXVpY2tseV0nOwor5aS3PidbYW5jaWVudCBiYXJiYXJpYW4gdHJpYmVzXSc7CivlpLg+J1tleHRyYXZhZ2FudF0nOwor5aS+PidbYmUgd2VkZ2VkIG9yIGluc2VydGVkIGJldHdlZW5dJzsKK+WlhD4nW2VyZSBsb25nXSc7CivlpYc+J1tzdHJhbmdlXSc7CivlpYg+J1tidXRdJzsKK+WliT4nW29mZmVyXSc7CivlpY4+J1tzdHJpZGUgb2YgbWFuXSc7CivlpY8+J1ttZW1vcmlhbGl6ZSBlbXBlcm9yXSc7CivlpZA+J1tiZSBudW1lcm91c10nOwor5aWRPidbZGVlZF0nOwor5aWUPidbcnVuIGZhc3RdJzsKK+WllT4nW2luIHNlcXVlbmNlXSc7CivlpZc+J1tjYXNlXSc7CivlpZg+J1tsYXJnZV0nOwor5aWaPidbd2hlcmU/IHdoYXQ/IGhvdz8gd2h5P10nOwor5aWgPidbcGF5IHJlc3BlY3RdJzsKK+Wloj4nW2V4dHJhdmFnYW50XSc7CivlpaU+J1tteXN0ZXJpb3VzXSc7Civlpac+J1tteXN0ZXJpb3VzXSc7Civlpag+J1twcml6ZV0nOwor5aWpPidbbGFkeScncyB2YW5pdHkgY2FzZV0nOwor5aWqPidbdGFrZSBieSBmb3JjZV0nOwor5aWsPidbcHJpemVdJzsKK+Wlrj4nW3N0cml2ZV0nOwor5aWzPidbd29tYW5dJzsKK+WltD4nW3NsYXZlXSc7Civlpbg+J1tjcmFmdHldJzsKK+WlvT4nW2dvb2RdJzsKK+WmgT4nW2FjdCBhcyBnby1iZXR3ZWVuXSc7CivlpoI+J1tpZl0nOwor5aaDPidbd2lmZV0nOwor5aaEPidbYWJzdXJkXSc7Civlpoo+J1tjb25jZWl2ZV0nOwor5aaNPidbYmVhdXRpZnVsXSc7CivlppM+J1twcm9zdGl0dXRlXSc7CivlppY+J1tzdHJhbmdlXSc7Civlppk+J1tteXN0ZXJpb3VzXSc7CisjIuWmmT4nW215c3RlcmlvdXNdJyIsCivlpp0+J1thZG9ybiBvbmVzZWxmXSc7CivlpqM+J1tvbmUnJ3MgZGVjZWFzZWQgbW90aGVyXSc7CivlpqU+J1tzYXRpc2ZhY3RvcnldJzsKK+WmqD4nW2ludGVyZmVyZSB3aXRoXSc7Civlpqw+J1tqZWFsb3VzXSc7CivlprI+J1tjb25jdWJpbmUgb2YgbGFzdCBydWxlciBvZiBzaGFuZ10nOwor5aa5PidbeW91bmdlciBzaXN0ZXJdJzsKK+Wmuz4nW3dpZmVdJzsKK+Wmvj4nW2NvbmN1YmluZV0nOwor5aeGPidbY2hpbGQnJ3MgZ292ZXJuZXNzXSc7Civlp4k+J1tlbGRlciBzaXN0ZXJdJzsKK+Wniz4nW2JlZ2luXSc7Civlp5A+J1tlbGRlciBzaXN0ZXJdJzsKK+WnkT4nW2ZhdGhlcicncyBzaXN0ZXJdJzsKK+Wnkz4nW29uZScncyBmYW1pbHkgbmFtZV0nOwor5aeUPidbYXBwb2ludF0nOwor5aeZPidbY29uY2VpdmVdJzsKK+Wnmj4nW2hhbmRzb21lXSc7Civlp5w+J1tzdXJuYW1lXSc7Civlp6U+J1ttYXRlcm5hbCBncmFuZG1vdGhlcl0nOwor5aemPidbYWR1bHRlcnldJzsKK+WnqD4nW21vdGhlci93aWZlJydzIHNpc3Rlcl0nOwor5aeqPidbbmllY2VdJzsKK+Wnqz4nW2JlYXV0eV0nOworIyLlp7E+J1tiZWF1dGlmdWxdJyIsCivlp7s+J1tyZWxhdGl2ZXMgYnkgbWFycmlhZ2VdJzsKK+Wnvz4nW29uZScncyBtYW5uZXJdJzsKK+WogT4nW3BvbXBdJzsKK+Wogz4nW2JhYnldJzsKK+WoiT4nW2JlYXV0aWZ1bF0nOwor5aiRPidbZGFuY2VdJzsKK+WomD4nW21vdGhlcl0nOworIyLlqJo+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+WonD4nW2VsZWdhbnRdJzsKK+Wonz4nW2JlYXV0aWZ1bF0nOwor5aigPidbcHJlZ25hbnRdJzsKK+WopT4nW2JlIGJlYXV0aWZ1bF0nOwor5aipPidbZ2l2ZSBiaXJ0aCBjaGlsZF0nOwor5aivPidbcGxlYXN1cmVdJzsKK+WotT4nW3N0YXJdJzsKK+Wotj4nW21hcnJ5XSc7CivlqLw+J1twcm9zdGl0dXRlXSc7CivlqYA+J1tiZSBiZWF1dGlmdWxdJzsKK+WpgT4nW3N1cm5hbWVdJzsKK+Wphj4nW29sZCB3b21hbl0nOwor5amJPidbYW1pYWJsZV0nOwor5amaPidbZ2V0IG1hcnJpZWRdJzsKK+Wpoj4nW3NlcnZhbnQgZ2lybF0nOwor5ammPidbbWFycmllZCB3b21lbl0nOwor5amqPidbY292ZXRdJzsKK+WprD4nW29ic2NlbmVdJzsKK+Wpvz4nW3Nvbi1pbi1sYXddJzsKK+Wqkj4nW2dvLWJldHdlZW5dJzsKK+Wqmj4nW2NoYXJtaW5nXSc7Civlqps+J1tiZWF1dHldJzsKK+WqvD4nW29sZCB3b21hbl0nOwor5aq9PidbbW90aGVyXSc7Civlqr4+J1ttYXJyeV0nOwor5auBPidbbWFycnldJzsKK+Wrgj4nW3Npc3Rlci1pbi1sYXddJzsKK+WriT4nW2plYWxvdXN5XSc7Civlq4s+J1tzbGVuZGVyIGFuZCBkZWxpY2F0ZV0nOwor5auMPidbaGF0ZV0nOwor5auQPidbZnJvbGljXSc7Civlq5Y+J1twYXRyb25pemUgcHJvc3RpdHV0ZXNdJzsKK+Wrlz4nW29sZCB3b21hbl0nOwor5auhPidbbGVnYWwgd2lmZV0nOwor5aujPidbY2hhcm1pbmddJzsKK+Wrpj4nW25hbWUgb2YgYSBtb29uIGdvZGRlc3NdJzsKK+WrqT4nW3NvZnRdJzsKK+Wruj4nW3JlZmluZWRdJzsKK+Wruz4nW2VsZWdhbnRdJzsKK+WsiT4nW2Vuam95XSc7CivlrIs+J1tiZWF1dGlmdWxdJzsKK+WsjD4nW3NlZHVjdGl2ZSBhbmQgbG92ZWFibGVdJzsKK+Wslj4nW2Zhdm9yaXRlXSc7CivlrKI+J1t0cm91YmxlZF0nOwor5ayqPidbY291cnQgbGFkeV0nOwor5aysPidbbWlzdHJlc3NdJzsKK+WssD4nW2JhYnldJzsKK+Wssj4nW2Zyb2xpY10nOworIyLlrLQ+J1t0byB3aW5dJyIsCivlrL4+J1tsYXp5XSc7CivlrYA+J1t3aWRvd10nOwor5a2DPidbdHJvdWJsZWRdJzsKK+WthT4nW3NsZW5kZXJdJzsKK+WtkD4nW29mZnNwcmluZ10nOwor5a2RPidbcmVtYWluaW5nXSc7CivlrZQ+J1tvcGVuaW5nXSc7CivlrZU+J1tiZSBwcmVnbmFudF0nOwor5a2XPidbbGV0dGVyXSc7CivlrZg+J1tleGlzdF0nOwor5a2aPidbYnJvb2Qgb3ZlciBlZ2dzXSc7CivlrZs+J1tjb21ldF0nOwor5a2cPidbYmUgYXMgZGlsaWdlbnQgYXMgcG9zc2libGVdJzsKK+WtnT4nW2ZpbGlhbCBwaWV0eV0nOwor5a2fPidbZmlyc3QgaW4gc2VyaWVzXSc7CivlraM+J1txdWFydGVyIG9mIHllYXJdJzsKK+WtpD4nW29ycGhhbl0nOwor5a2lPidbb25lJydzIGNoaWxkcmVuXSc7CivlraY+J1tsZWFybmluZ10nOwor5a2pPidbYmFieV0nOwor5a2rPidbZ3JhbmRjaGlsZF0nOwor5a2wPidbd2hvPyB3aGljaD8gd2hhdD8gd2hpY2ggb25lP10nOwor5a2xPidbd2Vha10nOwor5a2zPidbYnJlZWQgaW4gbGFyZ2UgbnVtYmVyc10nOwor5a21Pidbc2l0IG9uIGVnZ3NdJzsKK+WtuD4nW2xlYXJuaW5nXSc7Civlrbo+J1tjaGlsZF0nOwor5a6APidbcm9vZl0nOwor5a6DPidbaXRdJzsKK+WuhT4nW3Jlc2lkZW5jZV0nOwor5a6HPidbaG91c2VdJzsKK+WuiD4nW2RlZmVuZF0nOwor5a6JPidbcGVhY2VmdWxdJzsKK+Wuiz4nW1NvbmcgZHluYXN0eV0nOwor5a6MPidbY29tcGxldGVdJzsKK+WujT4nW2ZsZXNoXSc7Civlro8+J1t3aWRlXSc7CivlrpU+J1tzdG9uZSBxdWFycnldJzsKK+Wulz4nW2xpbmVhZ2VdJzsKK+WumD4nW29mZmljaWFsXSc7Civlrpk+J1t0aW1lIGFzIGNvbmNlcHRdJzsKK+Wumj4nW2RlY2lkZV0nOwor5a6bPidbc2VlbV0nOwor5a6cPidbc3VpdGFibGVdJzsKK+WunT4nW3RyZWFzdXJlXSc7Civlrp8+J1tyZWFsXSc7CivlrqI+J1tndWVzdF0nOwor5a6jPidbZGVjbGFyZV0nOwor5a6kPidbcm9vbV0nOwor5a6lPidbZm9yZ2l2ZV0nOwor5a6mPidbb2ZmaWNpYWxkb21dJzsKK+Wurj4nW3BhbGFjZV0nOwor5a6wPidbdG8gc2xhdWdodGVyXSc7CivlrrM+J1tpbmp1cmVdJzsKK+WutD4nW2VudGVydGFpbl0nOwor5a61PidbbmlnaHRdJzsKK+Wutj4nW2hvdXNlXSc7Civlrrg+J1tpbXBlcmlhbF0nOwor5a65PidbbG9va3NdJzsKK+Wuvz4nW3N0b3BdJzsKK+Wvgj4nW3N0aWxsXSc7Civlr4M+J1tncmlldmFuY2VdJzsKK+WvhD4nW3NlbmRdJzsKK+WvhT4nW3Jlc3BlY3RdJzsKK+Wvhj4nW2RlbnNlXSc7Civlr4c+J1tiYW5kaXRzXSc7CisjIuWviT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5a+MPidbYWJ1bmRhbnRdJzsKK+WvkD4nW3NsZWVwXSc7Civlr5I+J1tjb2xkXSc7Civlr5M+J1tyZXNpZGVuY2VdJzsKK+WvlD4nW3JlYWxdJzsKK+Wvmz4nW2Jyb2FkXSc7Civlr50+J1tzbGVlcF0nOwor5a+ePidbc2lsZW50XSc7Civlr58+J1tleGFtaW5lXSc7Civlr6E+J1t3aWRvd2VkXSc7Civlr6I+J1tzbGVlcF0nOwor5a+kPidbZmV3XSc7Civlr6U+J1tmZXddJzsKK+Wvpj4nW3JlYWxdJzsKK+Wvpz4nW3JlcG9zZV0nOwor5a+oPidbc3RvY2thZGVdJzsKK+WvqT4nW2V4YW1pbmVdJzsKK+Wvqz4nW3dyaXRlXSc7Civlr64+J1tzaGFudHldJzsKK+WvsD4nW2dyZWF0IGRvbWFpbl0nOwor5a+zPidbdHJlYXN1cmVdJzsKK+WvtT4nW2Zhdm9yaXRlXSc7Civlr7Y+J1t0cmVhc3VyZV0nOwor5a+4PidbaW5jaF0nOwor5a+6PidbY291cnRdJzsKK+Wvvj4nW2NvcnJlY3RdJzsKK+Wvvz4nW29sZCBhZ2VdJzsKK+WwgT4nW2xldHRlcl0nOwor5bCCPidbbW9ub3BvbGl6ZV0nOwor5bCEPidbc2hvb3RdJzsKK+WwhT4nW3N1YmR1ZV0nOwor5bCGPidbd2lsbF0nOwor5bCHPidbd2lsbF0nOwor5bCIPidbbW9ub3BvbGl6ZV0nOwor5bCJPidbb2ZmaWNlcl0nOwor5bCKPidbcmVzcGVjdF0nOwor5bCLPidbc2Vla10nOwor5bCNPidbY29ycmVjdF0nOwor5bCOPidbZGlyZWN0XSc7CivlsI8+J1tzbWFsbF0nOwor5bCRPidbZmV3XSc7CivlsJM+J1t5b3VdJzsKK+Wwlj4nW3NoYXJwXSc7CivlsJo+J1tzdGlsbF0nOwor5bCgPidbdmVyeSBmZXddJzsKK+Wwoj4nW3dlYWtdJzsKK+WwpD4nW2VzcGVjaWFsbHldJzsKK+WwqD4nW3NoYWdneSBoYWlyZWQgZG9nXSc7CivlsK0+J1thIGxlZ2VuZGFyeSBhbmNpZW50IGVtcGVyb3Itc2FnZV0nOwor5bCxPidbanVzdF0nOwor5bC4PidbY29ycHNlXSc7CivlsLk+J1tnb3Zlcm5dJzsKK+Wwuj4nW2NoaW5lc2UgbWVhc3VyZSBhcHByb3guIFwiZm9vdFwiXSc7CivlsLs+J1tlbmQgb2Ygc3BpbmVdJzsKK+WwvD4nW2J1ZGRoaXN0IG51bl0nOwor5bC9PidbZXhoYXVzdF0nOwor5bC+PidbdGFpbF0nOwor5bC/PidbdXJpbmVdJzsKK+WxgD4nW2J1cmVhdV0nOwor5bGBPidbYnJlYWsgd2luZF0nOwor5bGFPidbbGl2ZV0nOwor5bGGPidbbnVtZXJhcnkgYWRqdW5jdCBmb3IgdGltZV0nOwor5bGIPidbYmVuZF0nOwor5bGKPidbbnVtZXJhcnkgYWRqdW5jdCBmb3IgdGltZV0nOwor5bGLPidbaG91c2VdJzsKK+WxjT4nW2NvcnBzZV0nOwor5bGOPidbZXhjcmVtZW50XSc7CivlsY8+J1tmb2xkaW5nIHNjcmVlbl0nOwor5bGQPidbd29vZGVuIHNob2VzXSc7CivlsZE+J1tiaXRzXSc7CivlsZM+J1tnaWdhbnRpYyBzdHJlbmd0aF0nOwor5bGVPidbb3Blbl0nOwor5bGePidbY2xhc3NdJzsKK+WxoD4nW2J1dGNoZXJdJzsKK+WxoT4nW2ZyZXF1ZW50bHldJzsKK+WxpD4nW3N0b3JleV0nOwor5bGlPidbZm9vdHdlYXJdJzsKK+WxrD4nW2NsYXNzXSc7Civlsa4+J1tzcHJvdXRdJzsKK+Wxrz4nW3ZpbGxhZ2VdJzsKK+WxsT4nW21vdW50YWluXSc7CivlsbY+J1tsb2Z0eV0nOwor5bG5PidbdG8gcmlzZSBoaWdoXSc7Civlsow+J1twZXJpbG91c10nOwor5bKQPidbaGlnaF0nOwor5bKRPidbc3RlZXBdJzsKK+WylD4nW2RpdmVyZ2VdJzsKK+WyoT4nW3JpZGdlIG9yIGNyZXN0IG9mIGhpbGxdJzsKK+WyqD4nW3VuZXZlbl0nOwor5bKpPidbY2xpZmZdJzsKK+Wyqz4nW21vdW50YWluIHBlYWtdJzsKK+WyrD4nW2NhcGVdJzsKK+WysT4nW2RhaXNoYW4gb25lIG9mIGZpdmUgc2FjcmVkIG1vdW50XSc7CivlsrM+J1ttb3VudGFpbiBwZWFrXSc7CisjIuWytj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5bK3PidbbWluIG1vdW50YWluXSc7Civlsrg+J1tiYW5rXSc7CisjIuWyuj4nW21vdW50YWluIHJpZGdlXSciLAorIyLlsro+J1ttb3VudGFpbiByaWRnZV0nIiwKK+Wyvj4nW21vdW50YWluIHBhc3MgKGtvcmVhbildJzsKKyMi5bOEPidbcmFuZ2Ugb2YgcGVha3NdJyIsCivls4c+J1tjYXZlXSc7Civls5k+J1tzdGFuZCBlcmVjdF0nOwor5bOgPidbbW91bnRhaW4gcGFzc10nOwor5bOhPidbZ29yZ2VdJzsKK+WzqD4nW2xvZnR5XSc7Civls6k+J1tsb2Z0eV0nOwor5bOqPidbdmFsbGV5XSc7Civls60+J1tzdGVlcF0nOwor5bOvPidbcGVha10nOwor5bOwPidbcGVha10nOwor5bO2PidbaXNsYW5kXSc7CisjIuWzuj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5bO7PidbaGlnaF0nOwor5bO9PidbZ29yZ2VdJzsKK+W0hz4nW2VzdGVlbV0nOwor5bSLPidbZmxvd2VyeV0nOwor5bSOPidbcm91Z2hdJzsKK+W0kT4nW0t1bmx1biBtb3VudGFpbnMgaW4gSmlhbmcgU3UgcHJvdmluY2UuXSc7CivltJQ+J1toaWdoXSc7CivltJU+J1tjbGlmZl0nOwor5bSWPidbY2xpZmZdJzsKK+W0lz4nW3Bvc3RdJzsKK+W0mD4nW2t1bmx1biBtb3VudGFpbnMgaW4gamlhbmdzdV0nOwor5bSZPidba3VubHVuIG1vdW50YWlucyBpbiBqaWFuZ3N1XSc7CivltJo+J1toaWxseV0nOwor5bSbPidbdG93ZXJpbmddJzsKK+W0nz4nW2NsaWZmc10nOwor5bSiPidbaGlnaF0nOwor5bSpPidbcnVwdHVyZV0nOwor5bWLPidbb21laSBtb3VudGFpbiBpbiBzaWNodWFuXSc7CivltYw+J1tpbmxheV0nOwor5bWOPidbbW91bnRhaW4gcmVjZXNzXSc7CivltZA+J1ttb3VudGFpbiBtaXN0XSc7CivltZI+J1tjbGlmZl0nOwor5bWcPidbcm91Z2hdJzsKK+W1qT4nW2hpZ2hdJzsKK+W1rD4nW2hpZ2hdJzsKK+W1rz4nW2hpZ2hdJzsKK+W1sz4nW2hpZ2hdJzsKK+W1tj4nW2xvdyBwYXJ0IG9mIGEgbW91bnRhaW5dJzsKK+W2gj4nW2NsaWZmXSc7CivltoQ+J1toaWdoXSc7Civltoc+J1tzdGVlcF0nOwor5baLPidbaXNsYW5kXSc7Civltow+J1tpc2xhbmRdJzsKKyMi5baQPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivltp0+J1twYXRoIGxlYWRpbmcgdXAgYSBtb3VudGFpbl0nOwor5baiPidbaGlnaCBvciB0YWxsXSc7CisjIuW2rD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5bauPidbaGlnaF0nOwor5ba3PidbcmFuZ2Ugb2YgbW91bnRhaW5zIGluIGh1bmFuIHByb3ZdJzsKK+W2uj4nW21vdW50YWluIHJpZGdlXSc7Civltrw+J1tpc2xhbmRdJzsKK+W2vT4nW21vdW50YWluIHBlYWtdJzsKK+W3iT4nW3N0ZWVwXSc7Civlt4w+J1tjbGlmZl0nOwor5beNPidbaGlnaF0nOwor5beSPidbbW91bnRhaW4gcmFuZ2VdJzsKK+W3kz4nW3N1bW1pdCBvZiBtb3VudGFpbl0nOwor5beWPidbY2xpZmZdJzsKK+W3mz4nW3JpdmVyXSc7Civlt50+J1tzdHJlYW1dJzsKK+W3nj4nW2FkbWluaXN0cmF0aXZlIGRpdmlzaW9uXSc7Civlt6E+J1twYXRyb2xdJzsKK+W3oz4nW25lc3RdJzsKK+W3pT4nW2xhYm9yXSc7Civlt6Y+J1tsZWZ0XSc7Civlt6c+J1tza2lsbGZ1bF0nOwor5beoPidbbGFyZ2VdJzsKK+W3qz4nW3dpemFyZF0nOwor5beuPidbZGlmZmVyXSc7Civlt7E+J1tzZWxmXSc7Civlt7I+J1thbHJlYWR5XSc7Civlt7M+J1tzaXh0aCBvZiB0d2VsdmUgYnJhbmNoZXNdJzsKK+W3tD4nW2dyZWF0bHkgZGVzaXJlXSc7Civlt7U+J1ttZWFzdXJpbmcgY3VwXSc7Civlt7c+J1thbGxleV0nOwor5be7Pidbc2Nyb2xsXSc7Civlt70+J1s1dGggb2YgdGhlIDggdHJpZ3JhbXNdJzsKK+W3vj4nW2tlcmNoaWVmXSc7CivluII+J1ttYXJrZXRdJzsKK+W4gz4nW2NvdHRvbiBjbG90aF0nOwor5biGPidbc2FpbF0nOwor5biLPidbcGFwZXJdJzsKK+W4jD4nW3JhcmVdJzsKK+W4kT4nW2EgdHJlYXN1cnldJzsKK+W4lj4nW2ludml0YXRpb24gY2FyZF0nOwor5biZPidbYm9vayBjb3Zlcl0nOwor5biaPidbYnJvb21dJzsKK+W4mz4nW3NpbGtzXSc7CivluJ0+J1tzdXByZW1lIHJ1bGVyXSc7CivluKU+J1tjb21tYW5kZXJdJzsKK+W4qz4nW3RlYWNoZXJdJzsKK+W4rT4nW3NlYXRdJzsKK+W4rz4nW2JlbHRdJzsKK+W4sD4nW3JldHVybl0nOwor5bizPidbdGVudF0nOwor5bi2PidbYmVsdF0nOwor5bi3PidbdGVudF0nOwor5bi4PidbY29tbW9uXSc7CivluL0+J1toYXRdJzsKK+W5gD4nW3BpY3R1cmVdJzsKK+W5gz4nW2N1cnRhaW4gdGhhdCBmb3JtcyB3YWxsXSc7CivluYQ+J1t0ZW50XSc7CivluYU+J1twaWVjZV0nOwor5bmHPidbaGVscF0nOwor5bmMPidbY3VydGFpbl0nOwor5bmOPidbY292ZXItY2xvdGhdJzsKK+W5lD4nW2N1cnRhaW5dJzsKK+W5lT4nW2N1cnRhaW5dJzsKK+W5lz4nW3dvbWVuJydzIGhlYWRnZWFyXSc7CivluZ8+J1tmbGFnXSc7CivluaE+J1twZW5uYW50XSc7CivluaI+J1tjYXJyaWFnZSBjdXJ0YWluXSc7CivluaM+J1tjdXJyZW5jeV0nOwor5bmkPidbZXZpbF0nOwor5bmyPidbb3Bwb3NlXSc7CivlubM+J1tmbGF0XSc7CivlubQ+J1t5ZWFyXSc7CivlubU+J1tldmVuIGxldmVsLiB0byByYWlzZSBpbiBib3RoIGhhbmRzXSc7CivlubY+J1tjb21iaW5lXSc7Civlubg+J1tsdWNrKGlseSldJzsKK+W5uT4nW3RydW5rIG9mIHRyZWUgb3Igb2YgaHVtYW4gYm9keV0nOwor5bm6Pidbb25lXSc7Civlubs+J1tpbGx1c2lvbl0nOwor5bm8PidbaW5mYW50XSc7Civlub0+J1txdWlldF0nOwor5bm+PidbaG93IG1hbnk/IGhvdyBtdWNoPyAoYSlmZXddJzsKK+W5vz4nW3dpZGVdJzsKK+W6gT4nW2hhbGxdJzsKK+W6gz4nW2Jyb2FkXSc7CivluoQ+J1t2aWxsYWdlXSc7Civluoc+J1tjb3Zlcl0nOwor5bqKPidbYmVkXSc7Civluo8+J1tzZXJpZXNdJzsKK+W6lT4nW2JvdHRvbV0nOwor5bqWPidba2l0Y2hlbl0nOwor5bqXPidbc2hvcF0nOwor5bqaPidbc2V2ZW50aCBvZiB0ZW4gY3ljbGljYWwgc3RlbXNdJzsKK+W6nD4nW3ByZWZlY3R1cmVdJzsKK+W6oD4nW3ZpbGxhZ2Ugc2Nob29sXSc7CivluqY+J1tkZWdyZWVdJzsKK+W6pz4nW3NlYXRdJzsKK+W6qz4nW2FybW9yeV0nOwor5bqtPidbY291cnR5YXJkXSc7CivlurU+J1tidWRkaGlzdCBtb25hc3Rlcnkgb3IgbnVubmVyeV0nOwor5bq2PidbbnVtZXJvdXNdJzsKK+W6tz4nW3BlYWNlZnVsXSc7Civlurg+J1t1c3VhbF0nOwor5buBPidbdG9pbGV0XSc7Civlu4I+J1tzaWRlLXJvb21dJzsKK+W7gz4nW2Ficm9nYXRlXSc7Civlu4g+J1tiaWcgYnVpbGRpbmddJzsKK+W7iT4nW3VwcmlnaHRdJzsKK+W7ij4nW2NvcnJpZG9yXSc7Civlu48+J1tzdGFibGVdJzsKK+W7kD4nW3N0YWJsZV0nOwor5buTPidbYnJvYWRdJzsKK+W7lj4nW3N1cm5hbWVdJzsKK+W7mj4nW2tpdGNoZW5dJzsKK+W7mz4nW3N0b3JlXSc7Civlu50+J1tzZXJ2YW50XSc7Civlu58+J1t0ZW1wbGVdJzsKK+W7oD4nW2ZhY3RvcnldJzsKK+W7oT4nW2NvcnJpZG9yXSc7Civlu6I+J1thYnJvZ2F0ZV0nOwor5bujPidbYnJvYWRdJzsKK+W7qD4nW2dvdmVybm1lbnQgb2ZmaWNlXSc7Civlu6k+J1tncmFuYXJ5XSc7Civlu6w+J1todXRdJzsKK+W7sD4nW2hhbGxdJzsKK+W7sT4nW2hhcm1vbmlvdXNdJzsKK+W7sz4nW2hhbGxdJzsKK+W7tD4nW2dvXSc7Civlu7Y+J1tkZWxheV0nOwor5bu3PidbY291cnRdJzsKK+W7uD4nW2VubGlnaHRlbl0nOwor5bu6PidbYnVpbGRdJzsKK+W7uz4nW2NpcmNsZSBhcm91bmRdJzsKK+W7vD4nW3RoZW5dJzsKK+W7vj4nW3R3byBoYW5kc10nOwor5bu/PidbdHdlbnR5XSc7CivlvIE+J1tjb25pY2FsIGNhcCB3b3JuIHVuZGVyIHpob3UgZHluYV0nOwor5byDPidbcmVqZWN0XSc7CivlvIQ+J1tkb10nOwor5byJPidbbGFyZ2VdJzsKK+W8ij4nW2V2aWxdJzsKK+W8iz4nW2NhdGNoXSc7CivlvIw+J1tudW1iZXIgb25lXSc7CivlvI0+J1tudW1iZXIgdHdvXSc7CivlvI8+J1tzdHlsZV0nOwor5byQPidbbnVtYmVyIHR3b10nOwor5byRPidbdG8ga2lsbCBvbmUnJ3Mgc3VwZXJpb3JdJzsKK+W8kz4nW2Jvd10nOwor5byUPidbY29uZG9sZV0nOwor5byVPidbcHVsbF0nOwor5byWPidbcGhvbmV0aWMgZm9yIFwidGVcIiAoSmFwYW5lc2UpXSc7CivlvJc+J1tub3RdJzsKK+W8mD4nW2VubGFyZ2VdJzsKK+W8mz4nW2xvb3Nlbl0nOwor5byfPidbeW91bmcgYnJvdGhlcl0nOwor5bylPidbZXh0ZW5zaXZlXSc7CivlvKY+J1tzdHJpbmddJzsKK+W8pz4nW3dvb2RlbiBib3ddJzsKK+W8qT4nW2Nyb3NzLWJvd10nOwor5bytPidbc3RvcF0nOwor5byvPidbYmVuZF0nOwor5byxPidbd2Vha10nOwor5by1Pidbc3RyZXRjaF0nOwor5by3Pidbc3Ryb25nXSc7CivlvLg+J1tib3cgc3RyZXRjaGVkIGZ1bGxdJzsKK+W8vD4nW2FpZF0nOworIyLlvLw+J1thaWRdJyIsCisjIuW9gT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5b2IPidbcGVsbGV0XSc7CivlvYo+J1tzdHViYm9ybl0nOwor5b2MPidbZXh0ZW5zaXZlXSc7CivlvY4+J1tiZW5kXSc7CivlvZE+J1tzbm91dF0nOwor5b2TPidbYmVhcl0nOwor5b2WPidbYSBob2ddJzsKK+W9lz4nW2Jyb29tc3RpY2tdJzsKK+W9mT4nW2NvbGxlY3RdJzsKK+W9nD4nW3lpXSc7CivlvZ0+J1t5aV0nOwor5b2hPidbaGFpcl0nOwor5b2iPidbZm9ybV0nOwor5b2mPidbZWxlZ2FudF0nOwor5b2pPidbaHVlXSc7Civlvao+J1t0aWdlcl0nOwor5b2rPidbY2FydmVdJzsKK+W9rD4nW2N1bHRpdmF0ZWRdJzsKK+W9rT4nW25hbWUgb2YgYW5jaWVudCBjb3VudHJ5XSc7CivlvbA+J1tjbGVhcl0nOwor5b2xPidbc2hhZG93XSc7CivlvbM+J1tzdGVwIHdpdGggbGVmdCBmb290XSc7Civlvbc+J1tsaWtlXSc7Civlvbk+J1tzZXJ2aWNlXSc7Civlvbw+J1t0aGF0XSc7Civlvb8+J1tyZXNlbWJsaW5nXSc7CivlvoA+J1tnb10nOwor5b6BPidbaW52YWRlXSc7CivlvoI+J1tnb10nOwor5b6DPidbZ29dJzsKK+W+hD4nW25hcnJvdyBwYXRoXSc7CivlvoU+J1t0cmVhdF0nOwor5b6HPidbY29tcGx5IHdpdGhdJzsKK+W+iD4nW3ZlcnldJzsKK+W+ij4nW2xpbmdlcl0nOwor5b6LPidbc3RhdHV0ZV0nOwor5b6MPidbYmVoaW5kXSc7CivlvpA+J1tzbG93bHldJzsKK+W+kT4nW25hcnJvdyBwYXRoXSc7CivlvpI+J1tkaXNjaXBsZV0nOwor5b6TPidbZnJvbV0nOwor5b6XPidbb2J0YWluXSc7Civlvpg+J1t3YWxrIGJhY2sgYW5kIGZvcnRoXSc7Civlvpk+J1ttb3ZlIG9uZScncyBhYm9kZV0nOwor5b6ePidbZnJvbV0nOwor5b6gPidbaW5kdWNlXSc7CivlvqE+J1tkcml2ZV0nOwor5b6oPidbZG91YnRmdWxdJzsKK+W+qT4nW3JldHVybl0nOwor5b6qPidbb2JleV0nOwor5b6tPidbY29uc2NyaXB0IGxhYm9yXSc7Civlvq4+J1tzbWFsbF0nOwor5b6zPidbdmlydHVlXSc7CivlvrQ+J1tzdW1tb25dJzsKK+W+uT4nW3BlbmV0cmF0ZV0nOwor5b68PidbZnJvbnRpZXJdJzsKK+W+vT4nW2EgYmFkZ2VdJzsKK+W/gz4nW2hlYXJ0XSc7Civlv4U+J1tzdXJlbHldJzsKK+W/jD4nW2plYWxvdXNdJzsKK+W/jT4nW2VuZHVyZV0nOwor5b+WPidbZ3Vlc3NdJzsKK+W/lz4nW3B1cnBvc2VdJzsKK+W/mD4nW2ZvcmdldF0nOwor5b+ZPidbYnVzeV0nOwor5b+cPidbc2hvdWxkXSc7Civlv50+J1tkaXNncmFjZV0nOwor5b+gPidbbG95YWx0eV0nOwor5b+kPidbaW5zdWJvcmRpbmF0ZV0nOwor5b+rPidbcmFwaWRdJzsKK+W/sD4nW3N1ZmZlcl0nOwor5b+xPidbdHJ1dGhdJzsKK+W/tT4nW3RoaW5rIG9mXSc7Civlv7g+J1tibHVzaF0nOwor5b+7PidbZGVsaWdodGZ1bF0nOwor5b+9Pidbc3VkZGVubHldJzsKK+W/vz4nW2dldCBhbmdyeV0nOwor5oCOPidbd2hhdD8gd2h5PyBob3c/XSc7CivmgI8+J1tkaXNjb250ZW50ZWRdJzsKKyMi5oCQPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmgJI+J1thbmdlcl0nOwor5oCVPidbZmVhcl0nOwor5oCWPidbdGVycm9yXSc7CivmgJk+J1tyZWx5IG9uXSc7CivmgJs+J1tncmlldmVkXSc7CivmgJw+J1twaXR5XSc7CivmgJ0+J1t0aGlua10nOwor5oCgPidbaWRsZV0nOwor5oChPidbaGFybW9ueV0nOwor5oClPidbcXVpY2tdJzsKK+aApj4nW2VhZ2VyXSc7CivmgKc+J1tuYXR1cmVdJzsKK+aAqD4nW2hhdHJlZF0nOwor5oCpPidbc2h5XSc7CivmgKo+J1tzdHJhbmdlXSc7CivmgKs+J1tzb3JyeV0nOwor5oCvPidbbGFja2luZyBpbiBjb3VyYWdlXSc7CivmgLE+J1toYXN0aWx5XSc7CivmgLo+J1t0byBlbmR1cmVdJzsKK+aBgT4nW3RoYXRdJzsKK+aBgj4nW2NhcmVmdWxdJzsKK+aBgz4nW3JlbHkgb25dJzsKK+aBhj4nW2NvbnN0YW50XSc7CivmgYo+J1tiZSB1bml0ZWRdJzsKK+aBiz4nW2xvdmVdJzsKK+aBjT4nW3NlZW1pbmdseV0nOwor5oGQPidbZmVhcl0nOwor5oGSPidbY29uc3RhbnRdJzsKK+aBlT4nW2ZvcmdpdmVdJzsKK+aBmT4nW2lsbG5lc3NdJzsKK+aBmj4nW2FuZ2VyXSc7CivmgZ8+J1tzY2FyZWRdJzsKK+aBoD4nW3N0cmFuZ2VdJzsKK+aBoj4nW3Jlc3RvcmVdJzsKK+aBoz4nW2luZHVsZ2Ugb25lc2VsZl0nOwor5oGkPidbc2hvdyBwaXR5XSc7CivmgaU+J1tzaGFtZV0nOwor5oGoPidbaGF0cmVkXSc7Civmgak+J1traW5kbmVzc10nOwor5oGqPidbcmVzcGVjdGZ1bF0nOwor5oGrPidbaW4gcGFpbl0nOwor5oGsPidbcXVpZXRdJzsKK+aBrT4nW3Jlc3BlY3RmdWxdJzsKK+aBrz4nW3Jlc3RdJzsKK+aBsD4nW2p1c3RdJzsKK+aBtT4nW2Zhdm9yXSc7CisjIuaBtj4nW2V2aWxdJyIsCivmgoE+J1tpcnJpdGFibGVdJzsKK+aCgz4nW3NpbmNlcmVdJzsKK+aChD4nW3NpbGVudF0nOwor5oKJPidba25vd10nOwor5oKLPidbc3Rpbmd5XSc7Civmgow+J1ticm90aGVybHldJzsKK+aCjT4nW2NvdXJhZ2VvdXNdJzsKK+aCkj4nW3NvcnJvd2Z1bF0nOwor5oKUPidbcmVwZW50XSc7CivmgpY+J1tiZSBjb250cmFkaWN0b3J5IHRvXSc7CisjIuaClj4nW2JlIGNvbnRyYWRpY3RvcnkgdG9dJyIsCivmgpo+J1tiZSBhZnJhaWRdJzsKK+aCmz4nW3JlcGVudF0nOwor5oKfPidbYXBwcmVoZW5kXSc7CivmgqA+J1tsb25nXSc7CivmgqM+J1tzdWZmZXJdJzsKK+aCpj4nW3BsZWFzZWRdJzsKK+aCpz4nW3Ntb290aF0nOwor5oKpPidbYW5nZXJlZF0nOwor5oKqPidbZXZpbF0nOwor5oKyPidbc29ycm93XSc7CivmgrM+J1tldGhpY3NdJzsKK+aCtD4nW3N1ZmZlcl0nOwor5oK1PidbZGlzYXBwb2ludGVkXSc7CivmgrY+J1tnbG9vbXldJzsKK+aCuD4nW2ZlYXJmdWxdJzsKK+aCvD4nW2dyaWV2ZV0nOwor5oK9Pidbc29ycm93ZnVsXSc7Civmg4U+J1tmZWVsaW5nXSc7Civmg4Y+J1tkaXN0cmVzc2VkXSc7Civmg4c+J1tiZSBraW5kXSc7Civmg5E+J1tjb25mdXNlXSc7Civmg5M+J1tjYXJlZnVsXSc7Civmg5g+J1tkaXNjb25jZXJ0ZWRdJzsKK+aDmj4nW2Fic2VudC1taW5kZWRdJzsKK+aDnD4nW3BpdHldJzsKK+aDnz4nW2J1dF0nOwor5oOgPidbZmF2b3JdJzsKK+aDoT4nW2V2aWxdJzsKK+aDoz4nW292ZXJhbGwgW3F1ZXN0aW9uYWJsZSB2YXJpYW50XV0nOwor5oOnPidbZmVhcl0nOwor5oOoPidbc2FkXSc7Civmg7A+J1tpbmRvbGVudF0nOwor5oOxPidbYW5nZXJlZF0nOwor5oOzPidbdGhpbmtdJzsKK+aDtD4nW2FmcmFpZF0nOwor5oO2PidbZmVhcmZ1bF0nOwor5oO3Pidbd3JpZ2dsZV0nOwor5oO5PidbaXJyaXRhdGVdJzsKK+aDuj4nW2ludGVsbGlnZW50XSc7Civmg7s+J1tmZWVsIGFuZ3Vpc2hdJzsKK+aEgD4nW2NoYW5nZSBvbmUnJ3MgY291bnRlbmFuY2VdJzsKK+aEgT4nW2FueGlldHldJzsKK+aEgz4nW3JlbGF4XSc7CivmhIY+J1tmYXVsdF0nOwor5oSIPidbbW9yZSBhbmQgbW9yZV0nOwor5oSJPidbcGxlYXNhbnRdJzsKK+aEjT4nW3BpdHldJzsKK+aEjj4nW29ic3RpbmF0ZV0nOwor5oSPPidbdGhvdWdodF0nOwor5oSVPidbc3RhcnRsZWRdJzsKK+aEmj4nW3N0dXBpZF0nOwor5oSbPidbbG92ZV0nOwor5oSfPidbZmVlbF0nOwor5oShPidbYWJzZW50LW1pbmRlZF0nOwor5oSnPidbYXNoYW1lZF0nOwor5oSoPidbc2luY2VyaXR5XSc7CivmhKw+J1thY2N1c2VdJzsKK+aEtD4nW3NhZF0nOwor5oS8PidbYWN0IHdpdGggY2FyZV0nOwor5oS9PidbZ2FtYmxlXSc7CivmhL4+J1thbmdlcl0nOwor5oS/Pidbc2luY2VyZV0nOwor5oWCPidbdXJnZV0nOwor5oWEPidbc2hpdmVyXSc7CivmhYc+J1tjYXJlZnVsXSc7CivmhYg+J1traW5kXSc7CivmhYo+J1t0byByZXNlbnRdJzsKK+aFiz4nW21hbm5lcl0nOwor5oWMPidbbmVydm91c10nOwor5oWNPidbYW5ncnldJzsKK+aFjj4nW2FjdCB3aXRoIGNhcmVdJzsKKyMi5oWTPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmhZU+J1tsb25nIGZvcl0nOwor5oWYPidbc2FkXSc7CivmhZk+J1thc2hhbWVkXSc7CivmhZo+J1thc2hhbWVkXSc7CivmhZ0+J1tkbyBldmlsIGluIHNlY3JldF0nOwor5oWfPidbc2FkbmVzc10nOwor5oWiPidbc2xvdyhseSldJzsKK+aFoz4nW2hhYml0XSc7CivmhaU+J1tzaW5jZXJlXSc7Civmhac+J1ticmlnaHRdJzsKK+aFqD4nW3NpZ2hdJzsKK+aFqz4nW3RvIGFsYXJtXSc7Civmha4+J1tiZSBjb25jZXJuZWRdJzsKKyMi5oWvPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmhbA+J1tjb21mb3J0XSc7CivmhbE+J1tzYWRdJzsKK+aFsz4nW21pc2VybHldJzsKK+aFtD4nW2ZlYXJdJzsKK+aFtT4nW2luZG9sZW50XSc7CivmhbY+J1tjb25ncmF0dWxhdGVdJzsKK+aFtz4nW2FyZGVudF0nOwor5oW+PidbbHVzdF0nOwor5oaCPidbc2FkXSc7Civmhoc+J1tyZXN0XSc7Civmhoo+J1t0aXJlZF0nOwor5oaOPidbaGF0ZV0nOwor5oaQPidbcGl0eV0nOwor5oaRPidbbGVhbiBvbl0nOwor5oaUPidbYmUgd29ybi1vdXRdJzsKK+aGlj4nW2NhdXRpb3VzXSc7Civmhpk+J1tsaWtlXSc7Civmhpo+J1tkcmVhZF0nOwor5oakPidbcmVzZW50XSc7Civmhqc+J1tpcnJlc29sdXRlXSc7Civmhqk+J1tyZXN0XSc7Civmhqs+J1twaXR5XSc7Civmhqw+J1tyb3VzZV0nOwor5oauPidbcmVncmV0ZnVsXSc7CivmhrI+J1tjb25zdGl0dXRpb25dJzsKK+aGtj4nW3JlbWVtYmVyXSc7Civmhro+J1twZWFjZV0nOwor5oa+PidbcmVncmV0XSc7Civmh4M+J1tjb3VydGVvdXNdJzsKK+aHhj4nW2FueGlvdXNdJzsKK+aHhz4nW3NpbmNlcmVdJzsKK+aHiD4nW2lkbGVdJzsKK+aHiT4nW3Nob3VsZF0nOwor5oeKPidbdmV4ZWRdJzsKK+aHiz4nW3NwbGVuZGlkXSc7Civmh4w+J1tlbmpveV0nOwor5oeNPidbYmUgYWZyYWlkIG9mXSc7Civmh5A+J1tib3NvbV0nOwor5oejPidbYmUgc2ljayBhdCBoZWFydF0nOwor5oemPidbd2Vha10nOwor5oeyPidbcHVuaXNoXSc7Civmh7Q+J1tyZWdyZXRdJzsKK+aHtj4nW2xhenldJzsKK+aHtz4nW2Jvc29tXSc7Civmh7g+J1toYW5nXSc7Civmh7o+J1tyZWdyZXRdJzsKK+aHvD4nW2ZlYXJdJzsKK+aHvT4nW2hhcHB5XSc7Civmh74+J1thZnJhaWRdJzsKK+aHvz4nW3ZpcnR1b3VzXSc7CivmiIA+J1tsb3ZlXSc7CivmiIg+J1toYWxiZXJkXSc7CivmiIk+J1thIGJhdHRsZS1heGVdJzsKK+aIij4nW2ZpZnRoIG9mIHRlbiBjZWxlc3RpYWwgc3RlbXNdJzsKK+aIjD4nW2VsZXZlbnRoIG9mIHRlcnJlc3RyaWFsIGJyYW5jaGVzXSc7CivmiI0+J1tkZWZlbmQgYm9yZGVyc10nOwor5oiOPidbYXJtc10nOwor5oiQPidbY29tcGxldGVkXSc7CivmiJE+J1tvdXJdJzsKK+aIkj4nW3dhcm5dJzsKK+aIlD4nW3NtYWxsXSc7CivmiJY+J1tvcl0nOwor5oiaPidbcmVsYXRpdmVdJzsKK+aImz4nW2xhbmNlXSc7CivmiJ0+J1twaXJhdGVdJzsKK+aInj4nW2xhbmNlXSc7CivmiJ8+J1toYWxiZXJkIHdpdGggY3Jlc2NlbnQgYmxhZGVdJzsKK+aIoT4nW3N1Ymp1Z2F0ZV0nOwor5oimPidbd2FyXSc7CivmiKo+J1tjdXQgb2ZmXSc7CivmiK4+J1traWxsXSc7CivmiK8+J1t0aGVhdHJpY2FsIHBsYXldJzsKK+aIsD4nW3dhcl0nOwor5oiyPidbdGhlYXRyaWNhbCBwbGF5XSc7CivmiLM+J1twcmlja10nOwor5oi0Pidbd2VhciBvbiB0b3BdJzsKK+aIuD4nW2Rvb3JdJzsKK+aIuz4nW3BlcnZlcnNlXSc7CivmiL8+J1tob3VzZV0nOwor5omAPidbcGxhY2VdJzsKK+aJgT4nW2ZsYXRdJzsKK+aJhz4nW2Zhbl0nOwor5omIPidbZXNjb3J0XSc7CivmiYk+J1tkb29yIHBhbmVsXSc7CivmiYs+J1toYW5kXSc7CivmiY0+J1t0YWxlbnRdJzsKK+aJjj4nW3B1bGwgdXBdJzsKK+aJkz4nW3N0cmlrZV0nOwor5omVPidbc2hha2Ugb2ZmXSc7CivmiZg+J1tob2xkIHVwIHdpdGggcGFsbV0nOwor5ombPidbY2Fycnkgb24gc2hvdWxkZXJzXSc7CivmiZ4+J1t3YXJkIG9mZl0nOwor5omgPidbcGljayB1cCB3aXRoIGZvcmsgb3IgcGluY2Vyc10nOwor5omjPidba25vY2tdJzsKK+aJqD4nW3BpY2sgdXAgd2l0aCBmb3JrIG9yIHBpbmNlcnNdJzsKK+aJrj4nW2RyZXNzIHVwXSc7CivmibE+J1tjb2xsZWN0XSc7CivmibY+J1tzdXBwb3J0XSc7Civmibk+J1tjb21tZW50XSc7Civmibw+J1tncmFzcF0nOwor5om+Pidbc2VhcmNoXSc7Civmib8+J1tpbmhlcml0XSc7CivmioA+J1tza2lsbF0nOworIyLmioI+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+aKgz4nW3RvIGNsYXAgaGFuZHNdJzsKK+aKhD4nW2NvcHldJzsKK+aKiT4nW2Nob29zZV0nOwor5oqKPidbaG9sZF0nOwor5oqRPidbcHJlc3MgZG93bl0nOwor5oqSPidbZXhwcmVzc10nOwor5oqTPidbc2NyYXRjaF0nOwor5oqUPidbdGFrZSBvciBob2xkIHVwIGluIGJvdGggaGFuZHNdJzsKK+aKlT4nW3Rocm93XSc7CivmipY+J1t0cmVtYmxlXSc7Civmipc+J1tyZXNpc3RdJzsKK+aKmD4nW2JyZWFrIG9mZl0nOwor5oqbPidbdGhyb3cgKGF3YXkpXSc7Civmipw+J1t1cHJvb3RdJzsKK+aKnj4nW3NlbGVjdF0nOwor5oqrPidbd2Vhcl0nOwor5oqsPidbbGlmdF0nOwor5oqxPidbZW1icmFjZV0nOwor5oq1PidbcmVzaXN0XSc7Civmirk+J1tzbWVhcl0nOwor5oq7PidbcHVsbF0nOwor5oq8PidbbW9ydGdhZ2VdJzsKK+aKvT4nW2RyYXcgb3V0XSc7Civmi4I+J1tzaGFrZSBvZmZdJzsKK+aLhT4nW2NhcnJ5XSc7Civmi4Y+J1ticmVhayB1cF0nOwor5ouHPidbdGh1bWJdJzsKK+aLiD4nW3BpY2sgdXAgd2l0aCBmaW5nZXJzXSc7Civmi4k+J1twdWxsXSc7Civmi4o+J1tzbGFwXSc7Civmi4w+J1ttaXhdJzsKK+aLjT4nW2NsYXBdJzsKK+aLjz4nW3Rha2VdJzsKK+aLkD4nW2tpZG5hcF0nOwor5ouRPidbdG8gY2xhbXBdJzsKK+aLkj4nW3dhcmQgb2ZmIHdpdGggaGFuZF0nOwor5ouTPidbZXhwYW5kXSc7Civmi5Q+J1t1cHJvb3RdJzsKK+aLlz4nW29ic3RpbmF0ZV0nOwor5ouYPidbcmVzdHJhaW5dJzsKK+aLmT4nW3N0dXBpZF0nOwor5oubPidbYmVja29uXSc7Civmi5w+J1tkbyBvYmVpc2FuY2VdJzsKK+aLnT4nW2RvIG9iZWlzYW5jZV0nOwor5ougPidbb2NjdXB5XSc7Civmi6E+J1tleHBhbmRdJzsKK+aLrD4nW2luY2x1ZGVdJzsKK+aLrT4nW3dpcGUgYXdheSBzdGFpbnMgd2l0aCBjbG90aF0nOwor5ouuPidbbGFib3JpbmcgaGFyZF0nOwor5ouvPidbaGVscF0nOwor5ouxPidbZm9sZCBoYW5kcyBvbiBicmVhc3RdJzsKK+aLsz4nW2Zpc3RdJzsKKyMi5ou0PidbYmluZCB3aXRoIHJvcGVdJyIsCivmi7Y+J1twcmVzc10nOwor5ou3PidbdG9ydHVyZSBhbmQgaW50ZXJyb2dhdGVdJzsKK+aLvj4nW3BpY2sgdXBdJzsKK+aLvz4nW3Rha2VdJzsKK+aMgT4nW3N1c3RhaW5dJzsKK+aMgj4nW2hhbmddJzsKK+aMhz4nW2Zpbmdlcl0nOwor5oyIPidbYXNzaXN0XSc7CivmjIk+J1twdXQgaGFuZCBvbl0nOwor5oyMPidbZmlnaHRdJzsKK+aMkT4nW2xvYWQgY2FycmllZCBvbiBzaG91bGRlcnNdJzsKK+aMmT4nW3JhaXNlXSc7CivmjJ8+J1tjbGFzcCB1bmRlciBhcm1dJzsKKyMi5oylPidbZGlyZWN0XSciLAor5oyoPidbbmVhcl0nOwor5oyrPidbcHVzaCBkb3duXSc7CivmjK8+J1tyYWlzZV0nOwor5oy6Pidbc3RhbmQgdXByaWdodF0nOwor5oy9PidbcHVsbF0nOwor5oy+PidbY2xhc3AgdW5kZXIgYXJtXSc7CivmjL8+J1tpbnNlcnRdJzsKK+aNiT4nW2dyYXNwXSc7CivmjYw+J1ticmVhayBvcGVuXSc7CivmjY0+J1t3YXJkIG9mZl0nOwor5o2PPidbcGljayB3aXRoIGZpbmdlcnNdJzsKK+aNkD4nW2NvbnRyaWJ1dGVdJzsKK+aNlT4nW2FycmVzdF0nOwor5o2XPidbbWFrZSBwcm9ncmVzc10nOwor5o2cPidbc2VhcmNoXSc7Civmjac+J1tob2xkIHVwIGluIHR3byBoYW5kc10nOwor5o2oPidbZGlzY2FyZF0nOwor5o2pPidbdHdpc3Qgd2l0aCBoYW5kc10nOwor5o2rPidbc3Rva2VdJzsKK+aNrj4nW29jY3VweV0nOwor5o2yPidbY3VybF0nOwor5o22Pidbc3RyaWtlIHdpdGggc3RpY2tdJzsKK+aNtz4nW3dpbl0nOwor5o26PidbcHJlc3MgZG93biBoZWF2aWx5IHdpdGggZnJpbmdlcnNdJzsKK+aNuz4nW3R3aXN0IHdpdGggZmluZ2Vyc10nOwor5o6APidbbGlmdF0nOwor5o6DPidbc3dlZXBdJzsKK+aOiD4nW2dpdmUgdG9dJzsKK+aOiT4nW3R1cm5dJzsKK+aOjD4nW3BhbG0gb2YgaGFuZF0nOwor5o6OPidbZHJhZyBhc2lkZV0nOwor5o6PPidbdGFrZSBvdXRdJzsKK+aOkj4nW3Jvd10nOwor5o6WPidbc3RpY2sgaW5dJzsKK+aOmD4nW2RpZ10nOwor5o6bPidbaGFuZ10nOworIyLmjp8+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+aOoD4nW3JvYl0nOwor5o6hPidbZ2F0aGVyXSc7CivmjqI+J1tmaW5kXSc7CivmjqM+J1tkcmFnXSc7CivmjqU+J1tyZWNlaXZlXSc7Civmjqc+J1thY2N1c2VdJzsKK+aOqD4nW3B1c2hdJzsKK+aOqT4nW2NvdmVyXSc7Civmjqo+J1twbGFjZV0nOwor5o6rPidbYmUgb24gbmlnaHQgd2F0Y2hdJzsKK+aOrD4nW2dyYXNwIHdpdGggYm90aCBoYW5kc10nOworIyLmjrE+J1twaWNrcG9ja2V0XSciLAor5o60PidbYm94IG9uZScncyBlYXJzXSc7CisjIuaOtD4nW2JveCBvbmUnJ3MgZWFyc10nIiwKK+aOuz4nW3NjcmF0Y2ggbGlnaHRseV0nOwor5o6+PidbYSBnZW5lcmFsIGRlc2lnbmF0aW9uIG9mIG9mZmljaWFsc10nOwor5o+APidbY2hvb3NlXSc7Civmj4M+J1tzaGVhcl0nOwor5o+EPidbbGlmdF0nOwor5o+GPidbcHJpbWUgbWluaXN0ZXJdJzsKK+aPiT4nW3J1Yl0nOwor5o+PPidbY29weV0nOwor5o+QPidbaG9sZCBpbiBoYW5kXSc7Civmj5I+J1tpbnNlcnRdJzsKK+aPlj4nW3NhbHV0ZV0nOwor5o+aPidbc2NhdHRlcl0nOwor5o+bPidbY2hhbmdlXSc7Civmj6E+J1tncmFzcF0nOwor5o+jPidbcHV0IHRoaW5ncyB1bmRlciBjbG90aGVzXSc7Civmj6k+J1tydWIgYW5kIHdpcGVdJzsKK+aPrj4nW2RpcmVjdF0nOwor5o+0PidbYWlkXSc7Civmj7Y+J1ttYWtlIGZ1biBvZl0nOwor5o+6Pidbd2FnXSc7CivmkIY+J1twdWxsXSc7CivmkI0+J1tkaW1pbmlzaF0nOwor5pCPPidbc2VpemVdJzsKK+aQkz4nW3RyYW1wbGVdJzsKK+aQlj4nW3dhZ10nOwor5pCXPidbaHVsbF0nOwor5pCcPidbc2VhcmNoXSc7CivmkKY+J1tncmFzcF0nOwor5pCoPidbcnViXSc7CivmkKw+J1t0cmFuc2Zlcl0nOwor5pCtPidbam9pbiB0b2dldGhlcl0nOwor5pC0PidbZXh0cmFjdF0nOwor5pC2PidbcGx1bmRlcl0nOwor5pC6PidbbGVhZCBieSBoYW5kXSc7CivmkL4+J1twcmVzc10nOwor5pGCPidbdGFrZSBpbl0nOwor5pGOPidbdG8gc3RyYW5nbGVdJzsKK+aRmD4nW3BsdWNrXSc7Civmkac+J1tkZXN0cm95XSc7Civmkak+J1tydWJdJzsKK+aRrz4nW3NpbmNlcmVdJzsKK+aRtj4nW3JvbGwgYXJvdW5kIHdpdGggaGFuZF0nOwor5pG4PidbZ2VudGx5IHRvdWNoIHdpdGggaGFuZF0nOwor5pG6PidbZm9sZF0nOwor5pKDPidbc3RyaWtlXSc7Civmkog+J1tzY29vcCBvdXQgb2Ygd2F0ZXJdJzsKK+aSkj4nW3JlbGVhc2VdJzsKK+aSkz4nW3NjcmF0Y2hdJzsKK+aSlT4nW3JpcF0nOwor5pKaPidbdHdpcmwgaW4gZmluZ2Vyc10nOwor5pKePidba25vY2sgYWdhaW5zdF0nOwor5pKkPidbb21pdF0nOwor5pKlPidbbW92ZV0nOwor5pKpPidbbGlmdCB1cF0nOwor5pKrPidbcGF0XSc7Civmkq0+J1tzb3ddJzsKK+aSrj4nW2xpdHRsZSBiaXRdJzsKK+aSsD4nW2NvbXBvc2VdJzsKK+aSsj4nW3BvdW5kXSc7Civmkrk+J1tkaXN0dXJiXSc7Civmkrs+J1tmbG9nXSc7Civmkrw+J1ttb3ZlXSc7Civmk4E+J1tlbWJyYWNlXSc7Civmk4I+J1tydWJdJzsKK+aThT4nW21vbm9wb2xpemVdJzsKK+aThz4nW3NlbGVjdF0nOwor5pONPidbY29uZHVjdF0nOwor5pOSPidbY2F0Y2hdJzsKK+aTlD4nW2NhcnJ5XSc7Civmk5g+J1t0aHVtYl0nOwor5pOaPidbb2NjdXB5XSc7Civmk6A+J1tjcm93ZF0nOwor5pOhPidbY2FycnldJzsKK+aToj4nW3B1bGwgdXBdJzsKK+aToz4nW2h1bGxdJzsKK+aTpj4nW3dpcGVdJzsKK+aTpz4nW3JhaXNlXSc7Civmk6w+J1tkcmFmdF0nOwor5pOvPidbZXhjbHVkZV0nOwor5pOxPidbcGxhY2VdJzsKK+aTsj4nW3Rocm93XSc7Civmk7Q+J1tleHBhbmRdJzsKKyMi5pO2PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmk7o+J1twdXRdJzsKK+aTvT4nW3RpY2tsZV0nOwor5pO+PidbZGlzdHVyYl0nOwor5pSAPidbY2xpbWJdJzsKK+aUhT4nW3NhdmVdJzsKK+aUmD4nW3NlaXplXSc7CivmlJw+J1tsZWFkIGJ5IGhhbmRdJzsKK+aUnT4nW3Rha2UgaW5dJzsKK+aUoz4nW3RhbmdsZWRdJzsKK+aUpD4nW3NwcmVhZCBvdXRdJzsKK+aUqj4nW2Rpc3R1cmJdJzsKK+aUqz4nW3NuYXRjaCBhd2F5XSc7CivmlKw+J1tncmFzcF0nOwor5pSvPidbZGlzcGVyc2VdJzsKK+aUtD4nW3JhcF0nOwor5pS1PidbcmFwXSc7CivmlLY+J1tnYXRoZXIgdG9nZXRoZXJdJzsKK+aUtz4nW2V4YW1pbmVdJzsKK+aUuD4nW2Rpc3RhbnRdJzsKK+aUuT4nW2NoYW5nZV0nOwor5pS7PidbYXR0YWNrXSc7CivmlL4+J1twdXRdJzsKK+aUvz4nW2dvdmVybm1lbnRdJzsKK+aVhT4nW2FuY2llbnRdJzsKK+aViD4nW3Jlc3VsdF0nOwor5pWNPidbZXhwcmVzc10nOwor5pWPPidbZmFzdF0nOwor5pWRPidbc2F2ZV0nOwor5pWVPidbYW4gaW1wZXJpYWwgb3JkZXIgb3IgZGVjcmVlXSc7CivmlZY+J1tyYW1ibGVdJzsKK+aVlz4nW2JlIGRlZmVhdGVkXSc7CivmlZg+J1tleHByZXNzXSc7CivmlZk+J1t0ZWFjaF0nOwor5pWdPidbYnJlYWtdJzsKK+aVnj4nW3Jvb215XSc7CivmlaI+J1tkYXJlXSc7CivmlaM+J1tzY2F0dGVyXSc7CivmlaY+J1tlc3RlZW1dJzsKK+aVrD4nW3Jlc3BlY3RdJzsKK+aVsD4nW251bWJlcl0nOwor5pWyPidbc3RyaWtlXSc7CivmlbQ+J1tvcmRlcmx5XSc7CivmlbU+J1tlbmVteV0nOwor5pW3Pidbc3ByZWFkXSc7Civmlbg+J1tudW1iZXJdJzsKK+aWgj4nW2RyYXcgYmFja10nOwor5paDPidba2lsbF0nOwor5paHPidbbGl0ZXJhdHVyZV0nOwor5paIPidbbGVhcm5pbmddJzsKK+aWiT4nW2V2ZW5dJzsKK+aWjD4nW3JlZmluZWRdJzsKK+aWjj4nW3ZlZ2V0YXJpYW4gZGlldF0nOwor5paQPidbZ3JhY2VmdWxdJzsKK+aWkT4nW21vdHRsZWRdJzsKK+aWlz4nW2NoaW5lc2UgcGVja10nOwor5paZPidbY29uc2lkZXJdJzsKK+aWmz4nW2RyeSBtZWFzdXJlIDEwIG9yIDUgdGltZXMgb2YgZG91XSc7Civmlpw+J1tzbGFudGluZ10nOwor5pafPidbcG91ciB3aW5lIG9yIHRlYSBpbnRvIGN1cF0nOwor5pahPidbcmV2b2x2ZV0nOwor5pakPidbY2F0dHldJzsKK+aWpT4nW3Njb2xkXSc7Civmlqc+J1theGVdJzsKK+aWqz4nW2N1dF0nOwor5pasPidbY3V0XSc7Civmlq0+J1tzZXZlcl0nOwor5pavPidbdGhpc10nOwor5pawPidbbmV3XSc7Civmlrc+J1tzZXZlcl0nOwor5pa5Pidbc3F1YXJlXSc7Civmlrw+J1tpbl0nOwor5pa9PidbZ3JhbnRdJzsKK+aXgT4nW3NpZGVdJzsKK+aXgz4nW3NpbGsgYmFubmVyIHdpdGggYmVudCBwb2xlXSc7Civml4Q+J1thIGtpbmQgb2YgYW5jaWVudCBmbGFnXSc7Civml4U+J1t0cmlwXSc7Civml4Y+J1tmbGFnIG9ybmFtZW50XSc7Civml4s+J1tyZXZvbHZlXSc7Civml4w+J1tiYW5uZXIgb3IgZmxhZyBhZG9ybmVkIHdpdGggZmVhdF0nOwor5pePPidbZmFtaWx5IGNsYW5dJzsKK+aXkj4nW2ZyaW5nZXMgb2YgcGVhcmxzIG9uIGNyb3duc10nOwor5peXPidbYmFubmVyXSc7Civml5k+J1thIHBlbm5hbnRdJzsKK+aXmz4nW2EgcGVubmFudF0nOwor5pegPidbbmVnYXRpdmVdJzsKK+aXoT4nW2Nob2tlIG9uIHNvbWV0aGluZyBlYXRlbl0nOwor5peiPidbYWxyZWFkeV0nOwor5pelPidbc3VuXSc7Civml6Y+J1tkYXduXSc7Civml6c+J1tvbGRdJzsKK+aXqD4nW3B1cnBvc2VdJzsKK+aXqT4nW2Vhcmx5XSc7Civml6w+J1t0ZW4tZGF5IHBlcmlvZF0nOwor5petPidbcmlzaW5nIHN1bl0nOwor5pexPidbZHJvdWdodF0nOwor5pe6PidbcHJvc3Blcl0nOwor5pe7PidbaGVhdmVuXSc7CivmmII+J1tyaXNlXSc7CivmmIM+J1thZnRlcm5vb25dJzsKK+aYhj4nW2VsZGVyIGJyb3RoZXJdJzsKK+aYhz4nW3Jpc2VdJzsKK+aYij4nW3N1bW1lciB0aW1lXSc7CivmmIw+J1tsaWdodCBvZiBzdW5dJzsKK+aYjj4nW2JyaWdodF0nOwor5piPPidbZHVza10nOwor5piTPidbY2hhbmdlXSc7CivmmJQ+J1tmb3JtZXJseV0nOwor5picPidbdG8gb3BlbiBvdXRdJzsKK+aYnz4nW3N0YXJdJzsKK+aYoD4nW3Byb2plY3RdJzsKK+aYpT4nW3NwcmluZ10nOwor5pinPidbb2JzY3VyZV0nOwor5pioPidbeWVzdGVyZGF5XSc7CivmmK0+J1ticmlnaHRdJzsKK+aYrz4nW2luZGVlZF0nOwor5pi0Pidbb25lIG9mIHRoZSAyOCBjb25zdGVsbGF0aW9uc10nOwor5pi1PidbaW50aW1hdGVdJzsKK+aYtj4nW2EgbG9uZyBkYXkuIGJyaWdodC4gZXh0ZW5kZWQuIGNsZWFyXSc7CivmmLw+J1tkYXl0aW1lXSc7CivmmL8+J1tleHRlbnNpdmVdJzsKK+aZgT4nW21vcm5pbmddJzsKK+aZgj4nW3RpbWVdJzsKK+aZgz4nW2JyaWdodF0nOwor5pmEPidbYnJpZ2h0XSc7CivmmYk+J1thZHZhbmNlXSc7CivmmYs+J1thZHZhbmNlXSc7CivmmY8+J1twZWFjZWZ1bF0nOwor5pmSPidbZHJ5IGluIHN1bl0nOwor5pmdPidbZGF5dGltZV0nOwor5pmePidbZHJ5XSc7CivmmZ8+J1tjbGVhcl0nOwor5pmiPidbbGlnaHQgb2Ygc3RhcnNdJzsKK+aZpD4nW2hhdmUgaW50ZXJ2aWV3IHdpdGhdJzsKK+aZpj4nW2RhcmtdJzsKK+aZpz4nW2RheWJyZWFrXSc7Civmmag+J1tlYXJseSBtb3JuaW5nXSc7Civmmak+J1tuaWdodF0nOwor5pmuPidbdW5pdmVyc2FsXSc7Civmma8+J1tzY2VuZXJ5XSc7CivmmbA+J1tjbGVhcl0nOwor5pm0PidbY2xlYXIgd2VhdGhlcl0nOwor5pm2PidbY3J5c3RhbF0nOwor5pm6Pidbd2lzZG9tXSc7CivmmoE+J1tkYXduXSc7CisjIuaagj4nW3RlbXBvcmFyeV0nIiwKK+aahD4nW3dhcm1dJzsKK+aahz4nW2xlaXN1cmVdJzsKK+aaiD4nW2hhbG8gaW4gc2t5XSc7Civmmok+J1tzdW5zaGluZV0nOwor5pqOPidbc3VuIGJlZ2lubmluZyBkZWNsaW5lXSc7CivmmpE+J1tob3RdJzsKK+aalj4nW3dhcm1dJzsKK+aalz4nW2RhcmtdJzsKK+aamD4nW3Jpc2luZyBzdW5dJzsKK+aanT4nW2RhcmtdJzsKK+aaoj4nW3Ntb290aGx5XSc7CivmmqY+J1tjYWxlbmRhcl0nOwor5pqrPidbdGVtcG9yYXJ5XSc7Civmmq4+J1tldmVuaW5nXSc7CivmmrQ+J1t2aW9sZW50XSc7Civmmrg+J1ticmlnaHRdJzsKK+aauT4nW3Jpc2VdJzsKK+aavD4nW3Rha2UgZmxlZXRpbmcgZ2xhbmNlIGF0XSc7Civmmr4+J1ttb3JuaW5nIHN1bl0nOwor5puBPidbYW5kXSc7Civmm4Q+J1ticmlnaHRdJzsKK+abhz4nW2JlY29tZSBjbG91ZHldJzsKK+abiT4nW2Rhd25dJzsKK+ablj4nW29ic2N1cmVdJzsKK+abmT4nW2JyaWdodF0nOwor5puaPidbdHdpbGlnaHQganVzdCBiZWZvcmUgc3VuIHJpc2VzXSc7Civmm5w+J1tnbG9yaW91c10nOwor5pudPidbc3VuXSc7Civmm6A+J1tleHRlbnNpdmVdJzsKK+abpj4nW3N1bmxpZ2h0XSc7Civmm6k+J1tpbiBhbmNpZW50IHRpbWVzXSc7Civmm7A+J1tzYXldJzsKK+absj4nW2Nyb29rZWRdJzsKK+absz4nW3RyYWlsXSc7Civmm7Q+J1ttb3JlXSc7Civmm7U+J1t0cmFpbF0nOwor5pu3Pidbd2h5PyB3aGF0PyB3aGVyZT9dJzsKK+abuD4nW2Jvb2tdJzsKK+abuT4nW21pbmlzdHJ5IG9mZmljaWFsc10nOwor5pu8PidbbG9uZ10nOwor5pu9PidbYWxyZWFkeV0nOwor5pu+PidbYWxyZWFkeV0nOwor5pu/PidbY2hhbmdlXSc7CivmnIA+J1ttb3N0XSc7CivmnIM+J1thc3NlbWJsZV0nOwor5pyIPidbbW9vbl0nOwor5pyJPidbaGF2ZV0nOwor5pyLPidbZnJpZW5kXSc7CivmnI0+J1tjbG90aGVzXSc7CivmnI8+J1tsaWdodCBvZiBjcmVzY2VudCBtb29uXSc7CivmnJQ+J1tmaXJzdCBkYXkgb2YgbHVuYXIgbW9udGhdJzsKK+aclT4nW3Byb25vdW4gXCJpXCJdJzsKK+aclj4nW2NsZWFyXSc7CivmnJc+J1tjbGVhcl0nOwor5pybPidbbG9vayBhdCBvciBmb3J3YXJkXSc7CivmnJ0+J1tkeW5hc3R5XSc7CivmnJ4+J1tmdWxsIHllYXJdJzsKK+acnz4nW3BlcmlvZCBvZiB0aW1lXSc7CivmnKY+J1tjb25kaXRpb24gb3IgYXBwZWFyYW5jZSBvZiBtb29uXSc7CivmnKc+J1tjb25kaXRpb24gb3IgYXBwZWFyYW5jZSBvZiBtb29uXSc7CivmnKg+J1t0cmVlXSc7CivmnKo+J1tub3QgeWV0XSc7CivmnKs+J1tmaW5hbF0nOwor5pysPidbcm9vdF0nOwor5pytPidbbGV0dGVyXSc7CivmnK4+J1tza2lsbF0nOwor5pyxPidbY2lubmFiYXJdJzsKK+actD4nW3NpbXBsZV0nOwor5py2PidbY2x1c3RlciBvZiBmbG93ZXJzXSc7CisjIuactj4nW2NsdXN0ZXIgb2YgZmxvd2Vyc10nIiwKKyMi5py2PidbY2x1c3RlciBvZiBmbG93ZXJzXSciLAor5py6PidbZGVza10nOwor5py9PidbZGVjYXllZF0nOwor5py/Pidbc3RhYl0nOworIyLmnYA+J1traWxsXSciLAor5p2GPidbcG9sZV0nOwor5p2JPidbdmFyaW91cyBzcGVjaWVzIG9mIHBpbmUgYW5kIGZpcl0nOwor5p2OPidbcGx1bV0nOwor5p2PPidbYXByaWNvdF0nOwor5p2QPidbbWF0ZXJpYWxdJzsKK+adkT4nW3ZpbGxhZ2VdJzsKK+adkz4nW2hhbmRsZSBvZiBjdXBdJzsKK+adlj4nW2NhbmVdJzsKK+admT4nW2EgdGlueSB3b29kZW4gcG9zdF0nOwor5p2cPidbc3RvcF0nOwor5p2ePidbd2lsbG93XSc7CivmnZ8+J1tiaW5kXSc7CivmnaA+J1tsZXZlcl0nOwor5p2hPidbY2xhdXNlXSc7CivmnaI+J1t3b29kd29ya2VyXSc7CisjIuadoj4nW3dvb2R3b3JrZXJdJyIsCivmnaQ+J1t0eXBlIG9mIG9ha10nOwor5p2lPidbY29tZV0nOwor5p2qPidbdGlwIG9mIHR3aWddJzsKK+adrT4nW2Nyb3NzIHN0cmVhbV0nOwor5p2vPidbY3VwXSc7CivmnbA+J1toZXJvXSc7CivmnbE+J1tlYXN0XSc7CivmnbI+J1ticmlnaHQgc3VuXSc7CivmnbM+J1tvYnNjdXJlXSc7CivmnbU+J1twZXN0bGVdJzsKK+adtz4nW2xvcXVhdF0nOwor5p28Pidbc2h1dHRsZSBvZiBsb29tXSc7Civmnb4+J1twaW5lIHRyZWVdJzsKK+advz4nW3BsYW5rXSc7CisjIuaehT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5p6HPidbbG9xdWF0XSc7Civmnok+J1t1c2VsZXNzXSc7Civmnos+J1tzYW5kYWx3b29kXSc7Civmnow+J1t2YXJpZXR5IG9mIGVsbSB3aXRoIHNtYWxsIHNlZWRzXSc7CivmnpA+J1tzcGxpdCB3b29kXSc7CivmnpU+J1twaWxsb3ddJzsKK+aelz4nW2ZvcmVzdF0nOwor5p6aPidbc3RhbGsgb2Ygc2hydWJdJzsKK+aenD4nW2ZydWl0XSc7Civmnp0+J1ticmFuY2hlc10nOworIyLmnp8+J1t3b29kIHN0cmVha3NdJyIsCisjIuaenz4nW3dvb2Qgc3RyZWFrc10nIiwKK+aeoj4nW2Rvb3IgaGluZ2VdJzsKKyMi5p6mPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmnqk+J1twaW5lIHRyZWVdJzsKK+aerz4nW2RyaWVkIG91dF0nOwor5p6zPidbdHJpZm9saWF0ZSBvcmFuZ2VdJzsKK+aetD4nW2NhbmVdJzsKK+aetj4nW3JhY2tdJzsKK+aetz4nW2Nhbmd1ZSBzY2FmZm9sZF0nOwor5p64Pidba2luZCBvZiBhc3BlbiBmb3VuZCBpbiBzaWNodWFuXSc7Civmnrk+J1tkcnVtc3RpY2tdJzsKK+afgT4nW2xhcmdlIHRpZS1iZWFtc10nOwor5p+EPidbaGFuZGxlXSc7CisjIuafhj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLmn4g+J1tjb250YWluZXJdJyIsCivmn44+J1tjYWx5eCBvZiBmbG93ZXJdJzsKK+afjz4nW2N5cHJlc3NdJzsKK+afkD4nW2NlcnRhaW4gdGhpbmcgb3IgcGVyc29uXSc7Civmn5E+J1t0YW5nZXJpbmVdJzsKK+afkz4nW2R5ZV0nOwor5p+UPidbc29mdF0nOwor5p+YPidbYSB0aG9ybnkgdHJlZV0nOwor5p+aPidbcHVtZWxvXSc7Civmn50+J1t3YXRjaG1hbicncyByYXR0bGVdJzsKK+afnj4nW29ha10nOwor5p+iPidbcm9vdF0nOwor5p+kPidbaGF3dGhvcm5dJzsKKyMi5p+nPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmn6k+J1tjb2ZmaW4gd2hpY2ggY29udGFpbnMgY29ycHNlXSc7Civmn6w+J1tsZXR0ZXJdJzsKK+afrj4nW2ZsYXQgcGllY2VzIG9mIHdvb2RdJzsKK+afrz4nW2F4ZS1oYW5kbGVdJzsKK+afsT4nW3BpbGxhcl0nOwor5p+zPidbd2lsbG93IHRyZWVdJzsKK+aftD4nW2ZpcmV3b29kXSc7Civmn7U+J1tmZW5jZV0nOwor5p+7PidbaW52ZXN0aWdhdGVdJzsKK+afvj4nW3N0cmFpZ2h0IGdyYWluXSc7Civmn78+J1twZXJzaW1tb25dJzsKK+aggj4nW2Ega2luZCBvZiBldmVyZ3JlZW4gdHJlZV0nOwor5qCDPidbdHlwZSBvZiBvYWtdJzsKK+aghD4nW2dsb3J5XSc7CivmoJM+J1t3b29kZW4gcGVnXSc7CivmoJY+J1twZXJjaF0nOwor5qCXPidbY2hlc3RudXQgdHJlZV0nOwor5qCePidbcHVibGljYXRpb25dJzsKK+agoT4nW3NjaG9vbF0nOwor5qCiPidbY3lwcmVzc10nOwor5qCpPidbc3BlY2llcyBvZiBvYWtdJzsKK+agqj4nW251bWVyYXJ5IGFkanVuY3QgZm9yIHRyZWVzXSc7CivmoKs+J1tmZW5jZV0nOwor5qCyPidbbWFuZ3JvdmVdJzsKK+agtD4nW3NhbmRhbHdvb2RdJzsKK+aguD4nW3NlZWRdJzsKK+aguT4nW3Jvb3RdJzsKK+agvD4nW3BhdHRlcm5dJzsKK+agvT4nW2N1bHRpdmF0ZV0nOwor5qGAPidbY2hpY2tlbiByb29zdF0nOwor5qGBPidbY3Jvc3MtYmVhbXMgb2Ygcm9vZl0nOwor5qGCPidbY2Fzc2lhIG9yIGNpbm5hbW9uXSc7CivmoYM+J1twZWFjaF0nOwor5qGGPidbZnJhbWVdJzsKK+ahiD4nW3RhYmxlXSc7CisjIuahjT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qGOPidbZmV0dGVyc10nOwor5qGQPidbbmFtZSBhcHBsaWVkIHZhcmlvdXMgdHJlZXNdJzsKK+ahkT4nW211bGJlcnJ5IHRyZWVdJzsKK+ahkz4nW3ZhcmlldHkgb2YgdHJlZV0nOwor5qGUPidbY2hpbmVzZSBiZWxsZmxvd2VyXSc7CisjIuahmT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qGcPidbY2hlcnJ5XSc7CivmoZ0+J1suLi4uLi4uLi4uLi4uLi4uXSc7CisjIuahnT4nWy4uLi4uLi4uLi4uLi4uLi5dJyIsCivmoaM+J1tzaGVsZl0nOwor5qGnPidbY2hpbmVzZSBjeXByZXNzXSc7CivmobQ+J1tyYWZ0XSc7CivmobY+J1twYWlsXSc7Civmobc+J1tyYWZ0ZXJdJzsKKyMi5qG+PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmob8+J1twb2xlXSc7CivmooE+J1ticmlkZ2VdJzsKK+aigz4nW2EgY2x1Yl0nOwor5qKFPidbcGx1bXNdJzsKK+aijT4nW3RyZWUgbmFtZV0nOwor5qKPPidbaGFuZGN1ZmZzXSc7CivmopM+J1tjYXRhbHBhIG92YXRhXSc7CivmopQ+J1tnYXJkZW5pYV0nOwor5qKXPidbc3RlbSBvZiBmbG93ZXJdJzsKKyMi5qKYPidbYmFtYm9vIHR1YmVdJyIsCivmop0+J1tjbGF1c2VdJzsKK+ainz4nW293bCB0aHVzXSc7CivmoqA+J1tzbWFsbCBiZWFtIHN1cHBvcnRpbmcgcmFmdGVycyBhdF0nOwor5qKiPidbcG9pbnRlZCB0aXAgb2Ygc29tZXRoaW5nIGxvbmcgbGlrZSBhIGJyYW5jaF0nOwor5qKmPidbZHJlYW1dJzsKK+aipz4nW3N0ZXJjdWxpYSBwbGF0YW5pZm9saWFdJzsKK+aiqD4nW3BlYXJdJzsKK+airT4nW3dlYXZlcicncyBzaHV0dGxlXSc7Civmoq8+J1tsYWRkZXJdJzsKK+aisD4nW3dlYXBvbnNdJzsKK+aisT4nW2Rvb3JzaWxsXSc7CivmorM+J1tjb21iXSc7CivmorU+J1tidWRkaGlzdF0nOwor5qK2Pidbb2FyXSc7Civmork+J1t0aGUgYXJlY2EtbnV0XSc7CisjIuaiuT4nW3RoZSBhcmVjYS1udXRdJyIsCivmorw+J1tibG9jayBvZiB3b29kXSc7Civmo4Q+J1tyZWplY3RdJzsKKyMi5qOGPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmo4k+J1tjb3R0b25dJzsKK+ajij4nW2NoZXNzXSc7Civmo4s+J1tjaGVzc10nOwor5qONPidbc3RpY2tdJzsKK+ajkj4nW3N0aWNrXSc7CisjIuajlD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qOVPidbaGVtcCBwYWxtXSc7Civmo5c+J1tkYXRlIHRyZWVdJzsKK+ajmD4nW2p1anViZSB0cmVlXSc7Civmo5o+J1t0ZW50XSc7Civmo58+J1ttYWluIGJlYW1zIHN1cHBvcnRpbmcgaG91c2VdJzsKK+ajoD4nW2NyYWIgYXBwbGUgdHJlZV0nOworIyLmo6E+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ajoz4nW2tlcnJpYSBqYXBvbmljYSBwbGFudF0nOwor5qOnPidbd2FyZWhvdXNlXSc7Civmo64+J1tmb3Jlc3RdJzsKK+ajrz4nW2p1anViZSB0cmVlXSc7Civmo7I+J1twZXJjaF0nOwor5qO5Pidbb2FyXSc7Civmo7o+J1tjb2ZmaW5dJzsKK+akgD4nW2Jvd2xdJzsKK+akgT4nW291dGVyLWNvZmZpbl0nOwor5qSEPidbdG8gZ3JhZnRdJzsKK+akhT4nW2NoYWlyXSc7CivmpIg+J1tjZWRhcl0nOwor5qSLPidbZnJ1aXRdJzsKK+akjD4nW2luc3RydW1lbnRdJzsKK+akjT4nW3BsYW50XSc7CivmpI4+J1toYW1tZXJdJzsKK+akjz4nW3RoZSBmb3JraW5nIGJyYW5jaCBvZiBhIHRyZWVdJzsKK+akkj4nW3BlcHBlcl0nOworIyLmpJM+J1tzdHJpa2VdJyIsCisjIuakmj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qSbPidbdHlwZSBvZiBiaXJjaF0nOwor5qScPidbY2hlY2tdJzsKKyMi5qShPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIuakoj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLmpKM+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi5qSlPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIuakpj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLmpKg+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+akqj4nW21hY2hpbHVzIG5hbm11XSc7CivmpLA+J1twYWxtIHRyZWVdJzsKK+aktD4nW3BvcGxhcl0nOwor5qS2PidbcGFsbSB0cmVlXSc7CivmpLk+J1thIGNob3BwaW5nIGJvYXJkXSc7CivmpL0+J1tiZWFtc10nOwor5qS/PidbZmF0aGVyXSc7CivmpYo+J1t3aWxsb3ddJzsKK+alkz4nW21hcGxlIHRyZWVdJzsKK+allD4nW3dlZGdlXSc7CivmpZU+J1tvdmFsLXNoYXBlZF0nOwor5qWZPidbbmFtZSBvZiBwbGFudF0nOwor5qWaPidbbmFtZSBvZiBmZXVkYWwgc3RhdGVdJzsKKyMi5qWcPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmpZ0+J1ttZWxpYSBqYXBvbmljYV0nOwor5qWePidbdXNlZCBmb3IgY2V5bG9uIGluIGJ1ZGRoaXN0IHRleHRdJzsKK+aloD4nW25hbWUgb2YgdHJlZV0nOwor5qWhPidbZWxtIHRyZWVdJzsKK+aloj4nW3RpbmRlcl0nOwor5qWqPidbc21hbGwgZGlzaF0nOwor5qWrPidbb2FyXSc7Civmpa0+J1twcm9mZXNzaW9uXSc7Civmpa4+J1ttdWxiZXJyeV0nOwor5qWvPidbc2hpZWxkXSc7CivmpbM+J1twbHVtc10nOworIyLmpbQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+altT4nW2V4dHJlbWVdJzsKK+altz4nW21vZGVsIHN0eWxlIG9mIGNoaW5lc2Ugd3JpdGluZ10nOwor5qW4PidbbWFsbG90dXMgamFwb25pY3VzXSc7Civmpbk+J1tjb2x1bW5dJzsKK+alvD4nW2J1aWxkaW5nIG9mIHR3byBvciBtb3JlIHN0b3JpZXNdJzsKK+alvT4nW2hhcHB5XSc7CisjIualvT4nW2hhcHB5XSciLAorIyLmpoA+J1tbbm90IGZvdW5kIGluIGRpY3Rpb25hcnldXSciLAor5qaCPidbZ2VuZXJhbGx5XSc7CisjIuamiT4nW3R5cGUgb2YgZWxtXSciLAor5qaOPidbc21hbGwgZXZlcmdyZWVuIHNocnViXSc7CisjIuamkT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qaUPidbYmV0ZWwtbnV0IHRyZWVdJzsKK+amlT4nW2JhbnlhbiB0cmVlXSc7Civmpps+J1toYXplbG51dF0nOwor5qacPidbcGxhY2FyZF0nOworIyLmpqA+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ampz4nW3R5cGUgb2YgeWV3XSc7Civmpq4+J1tnbG9yeV0nOwor5qaxPidbcmFmdGVyXSc7CivmprI+J1twaWxsYXJdJzsKK+amtD4nW3BvbWVncmFuYXRlXSc7Civmprs+J1tjb3RdJzsKK+amvj4nW3BpZWNlcyBvZiB3b29kXSc7Civmpr8+J1thbGRlcl0nOwor5qeBPidbd2l0aGVyXSc7Civmp4M+J1t0cmF5XSc7Civmp4c+J1t0aXAgb2YgYSB0cmVlXSc7Civmp4o+J1tzcGVhcl0nOwor5qeLPidbZnJhbWVdJzsKK+anjD4nW2hhbW1lcl0nOwor5qeNPidbc3BlYXJdJzsKK+anjj4nW3JhZnRdJzsKK+ankD4nW2xvY3VzdCB0cmVlXSc7Civmp5M+J1tsZXZlcl0nOwor5qeYPidbc2hhcGVdJzsKKyMi5qeYPidbc2hhcGVdJyIsCisjIuanmz4nW3RocmVzaG9sZF0nIiwKKyMi5qebPidbdGhyZXNob2xkXSciLAor5qenPidbd29vZGVuIHRhYmxldF0nOwor5qeoPidbb3V0ZXItY29mZmluXSc7CisjIuanqz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qetPidbbWFwbGVdJzsKK+ansj4nW3R5cGUgb2Ygb2FrXSc7Civmp7k+J1tzcGFyXSc7Civmp7s+J1t6ZWxrb3ZhIHRyZWVdJzsKK+anvT4nW3Ryb3VnaF0nOwor5qe/PidbaGliaXNjdXNdJzsKK+aogj4nW2hhcHB5XSc7CivmqIU+J1tmaXIgdHJlZV0nOwor5qiKPidbYSByYWlsaW5nXSc7CivmqIs+J1t0cmVlIG5hbWVdJzsKKyMi5qiMPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIuaokj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5qiTPidbYnVpbGRpbmcgb2YgdHdvIG9yIG1vcmUgc3Rvcmllc10nOworIyLmqJM+J1tidWlsZGluZyBvZiB0d28gb3IgbW9yZSBzdG9yaWVzXSciLAor5qiXPidba2luZCBvZiB0cmVlIHdpdGggdXNlbGVzcyB0aW1iZXJdJzsKK+aomT4nW21hcmtdJzsKK+aomz4nW2JlbmRpbmcgYnJhbmNoZXNdJzsKK+aonj4nW2Rvb3IgaGluZ2VdJzsKK+aonz4nW2NhbXBob3IgdHJlZV0nOwor5qihPidbbW9kZWxdJzsKKyMi5qiiPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmqKM+J1tzaGFwZV0nOwor5qipPidbcG93ZXJdJzsKK+aoqj4nW2Fjcm9zc10nOworIyLmqKo+J1thY3Jvc3NdJyIsCisjIuaoqj4nW2Fjcm9zc10nIiwKK+aotT4nW3dvb2RjdXR0ZXJdJzsKK+aotj4nW2NdJzsKK+aouD4nW3NpbXBsZV0nOwor5qi5PidbdHJlZV0nOwor5qi6PidbdHlwZSBvZiBiaXJjaF0nOwor5qi9PidbZ29ibGV0XSc7CivmqYQ+J1tvbGl2ZV0nOwor5qmHPidbYSBzbGVkZ2UgZm9yIHRyYW5zcG9ydGF0aW9uXSc7CivmqYg+J1tiZW50IG9yIHR3aXN0ZWQgcGllY2Ugb2Ygd29vZF0nOwor5qmLPidbYnJpZGdlXSc7CivmqZg+J1tvcmFuZ2VdJzsKK+apmT4nW29yYW5nZV0nOwor5qmfPidbbWFjaGluZV0nOwor5qmhPidbY2hlc3RudXQgb2FrXSc7CivmqaI+J1tvdmFsLXNoYXBlZF0nOwor5qmmPidbdHJlZV0nOworIyLmqbE+J1tjYWJpbmV0XSciLAorIyLmqbU+J1t3b29kIHBsYWNlZCB1bmRlciByb29mIHRpbGVzXSciLAorIyLmqb8+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+aqgD4nW3NhbmRhbHdvb2RdJzsKK+aqhD4nW2NhbGwgYXJtc10nOwor5qqNPidbaWxleF0nOwor5qqOPidbc21hbGwgcmVkIGFwcGxlXSc7CivmqpA+J1tlYXZlcyBvZiBob3VzZV0nOwor5qqXPidbdHJlZV0nOwor5qqcPidbY2hpbmVzZSBjeXByZXNzXSc7CivmqqA+J1tzdGFuZCBmb3IgbGFtcF0nOwor5qqiPidbY2hlY2tdJzsKK+aqoz4nW21hc3RdJzsKK+aqqj4nW2NoZXN0bnV0LWxlYXZlZCBvYWtdJzsKK+aqrD4nW3R5cGUgb2YgbG9jdXN0IG9yYWNhY2lhXSc7Civmqq4+J1tibG9jayBvZiB3b29kXSc7CivmqrM+J1tiZXRlbG51dF0nOwor5qq4PidbbGVtb25dJzsKK+aquz4nW3RocmVzaG9sZF0nOworIyLmq4E+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+argj4nW29hcl0nOwor5quDPidbY3VwYm9hcmRdJzsKKyMi5quRPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivmq5M+J1tvYXJdJzsKK+armj4nW3BhbG1dJzsKK+armz4nW2NvbWIgb3V0XSc7Civmq54+J1tjaXRydXNdJzsKK+arnz4nW2NoZXN0bnV0LWxlYXZlZCBvYWtdJzsKK+arqD4nW3N1cHBvcnRpbmcgYmxvY2tdJzsKK+arqj4nW3R5cGUgb2Ygb2FrXSc7Civmq7o+J1tjYXJ2ZWQgb3IgcGF0dGVybmVkIHdpbmRvdyBzaWxsc10nOwor5qu7PidbY2hlcnJ5XSc7CivmrIQ+J1tyYWlsaW5nXSc7CivmrIU+J1t6ZWxrb3ZhXSc7CivmrIo+J1twb3dlcl0nOwor5qySPidbbmFtZSBvZiB0cmVlXSc7CivmrJY+J1tvbGl2ZV0nOwor5qydPidbbHV4dXJpYW50XSc7CisjIuasnj4nW3RoZSBsYXR0aWNlIG9mIGEgd2luZG93IGEgc2lsbF0nIiwKK+asoD4nW293ZV0nOwor5qyhPidbb3JkZXJdJzsKK+asoz4nW2hhcHB5XSc7CivmrKc+J1t0cmFuc2xpdC46IGV1cm9wZV0nOwor5qyyPidbZGVzaXJlXSc7CivmrLc+J1tzb2JdJzsKK+asuD4nW3NpZ2hzXSc7CivmrLk+J1tmaWVyY2UgZG9nXSc7CivmrLo+J1tjaGVhdF0nOwor5qy9PidbcmVzcGVjdF0nOwor5qy+PidbaXRlbV0nOwor5q2DPidbc21lYXIgb25lJydzIG1vdXRoIHdpdGggYmxvb2Qgb2YgYSB2aWN0aW0gd2hlbiB0YWtpbmcgYW4gb2F0aF0nOwor5q2HPidbcmVzdF0nOwor5q2JPidbZGVmaWNpZW50XSc7CivmrYw+J1tzb25nXSc7CivmrY4+J1tzaWdoXSc7CivmrZA+J1t0cmFuc2xpdC46IGV1cm9wZV0nOwor5q2TPidbaGFwcHldJzsKK+atlD4nW2Jsb3cgdGhyb3VnaCBub3NlXSc7CivmrZk+J1t0byBzdWNrXSc7CivmrZs+J1tkcmF3IGJhY2tdJzsKK+atnz4nW2ZpbmFsIHBhcnRpY2xlIHVzZWQgZXhwcmVzcyBxdWVzXSc7CivmraE+J1toYXBweV0nOwor5q2iPidbc3RvcF0nOwor5q2jPidbcmlnaHRdJzsKK+atpD4nW3RoaXNdJzsKK+atpj4nW21pbGl0YXJ5XSc7Civmrak+J1tzdGVwXSc7Civmrao+J1tzbGFudF0nOwor5q2vPidbdGVldGhdJzsKK+atsz4nW3llYXJdJzsKK+attD4nW3Rha2UgcGxhY2VdJzsKK+atuD4nW3JldHVybl0nOwor5q25PidbYmFkXSc7Civmrbs+J1tkaWVdJzsKK+atvz4nW2RpZV0nOwor5q6APidbZGllIHlvdW5nXSc7CivmroM+J1ttaXNmb3J0dW5lXSc7CivmroQ+J1t0byBlbmRdJzsKK+auhj4nW2Rhbmdlcm91c10nOwor5q6JPidbZGllIGZvciBjYXVzZV0nOwor5q6KPidbZGlmZmVyZW50XSc7Civmros+J1tpbmp1cmVdJzsKK+aujT4nW3RvIHN0YXJ2ZSB0byBkZWF0aF0nOwor5q6VPidbW25vdCBmb3VuZCBpbiBkaWN0aW9uYXJ5XV0nOwor5q6WPidbYnJlZWRdJzsKK+aumD4nW2luanVyZV0nOwor5q6ePidbZGllXSc7CivmrqQ+J1tkaWUgeW91bmddJzsKK+auqj4nW2RpZV0nOwor5q6rPidbdXRtb3N0XSc7Civmrq8+J1tlbmNvZmZpbl0nOwor5q6xPidbYW5uaWhpbGF0ZV0nOwor5q6yPidbYW5uaWhpbGF0ZV0nOwor5q6zPidbbmFtZSBvZiBvbGQgd2VhcG9uXSc7CivmrrQ+J1tiZWF0XSc7CivmrrU+J1tzZWN0aW9uXSc7Civmrrc+J1ttYW55XSc7Civmrro+J1traWxsXSc7Civmrrs+J1tjYXNpbmddJzsKK+auvD4nW2Nhc2luZ10nOwor5q6/PidbaGFsbF0nOwor5q+APidbZGVzdHJveV0nOwor5q+FPidbcmVzb2x1dGVdJzsKK+avhj4nW2JlYXRdJzsKK+aviz4nW2RvIG5vdF0nOwor5q+NPidbbW90aGVyXSc7Civmr44+J1tldmVyeV0nOwor5q+SPidbcG9pc29uXSc7Civmr5M+J1tnaXZlIGJpcnRoIHRvXSc7Civmr5Q+J1tjb21wYXJlXSc7Civmr5g+J1toZWxwXSc7Civmr5s+J1toYWlyXSc7CisjIuavnz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5q+rPidbZmluZSBoYWlyXSc7Civmr6w+J1tiYWxsXSc7Civmr68+J1tydWddJzsKK+avsz4nW2ZpbmUgaGFpciBvciBmdXIgb24gYW5pbWFsc10nOwor5rCIPidbZmVsdF0nOwor5rCPPidbY2xhbl0nOwor5rCRPidbcGVvcGxlXSc7CivmsJM+J1twZW9wbGVdJzsKK+awlD4nW3N0ZWFtXSc7CivmsJc+J1thaXJdJzsKK+awmz4nW2dhc10nOwor5rCjPidbYWlyXSc7CivmsKQ+J1toYW5naW5nIGZvZ10nOwor5rC0Pidbd2F0ZXJdJzsKK+awtz4nW2ljZV0nOwor5rC4PidbbG9uZ10nOwor5rC+Pidbb3ZlcmZsb3ddJzsKK+axgD4nW3NhbmRiYXJdJzsKK+axgT4nW2p1aWNlXSc7CivmsYI+J1tzZWVrXSc7CivmsY4+J1tmbG9hdF0nOwor5rGQPidbbmlnaHQgdGlkZXNdJzsKK+axlT4nW2Jhc2tldCBmb3IgY2F0Y2hpbmcgZmlzaF0nOwor5rGXPidbcGVyc3BpcmF0aW9uXSc7CivmsZo+J1tmaWx0aHldJzsKK+axnT4nW3lvdV0nOwor5rGePidbZWxlbWVudCBtZXJjdXJ5XSc7CivmsZ8+J1tsYXJnZSByaXZlcl0nOwor5rGgPidbcG9vbF0nOworIyLmsaI+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+axqD4nW01pKGx1bykgcml2ZXIgaW4gaHVuYW4gcHJvdmluY2Ugd2hlcmUgUXUgWXVhbiBkcm93bmVkIGhpbXNlbGZdJzsKK+axqj4nW3Zhc3RdJzsKK+axsD4nW2V4Y2Vzc2l2ZV0nOwor5rGyPidbZHJhdyB3YXRlciBmcm9tIHdlbGxdJzsKKyMi5rGyPidbZHJhdyB3YXRlciBmcm9tIHdlbGxdJyIsCivmsbo+J1tkZWNpZGVdJzsKK+axvT4nW3N0ZWFtXSc7Civmsb4+J1tyaXZlciBpbiBzaGFueGkgcHJvdmluY2VdJzsKK+aygT4nW3NvYWsgaW50b10nOwor5rKCPidbcml2ZXIgaW4gc291dGhlYXN0IHNoYW5kb25nIGZsb3ddJzsKK+aygz4nW3dhdGVyXSc7Civmsog+J1tzaW5rXSc7Civmsow+J1tjaGFvdGljXSc7Civmso0+J1tmcmVlemluZ10nOwor5rKQPidbYmF0aGVdJzsKK+aykj4nW25vdF0nOwor5rKTPidbY29ubmVjdGVkXSc7CivmspY+J1twb3VyXSc7Civmspk+J1tzYW5kXSc7Civmspo+J1tpc2xldCBpbiBzdHJlYW1dJzsKK+aymz4nW2FidW5kYW50XSc7CivmsqE+J1tub3RdJzsKK+ayoj4nW21hcnNoXSc7Civmsqs+J1tmcm90aF0nOwor5rKuPidbc3RvcF0nOwor5rKxPidbcml2ZXJzXSc7CivmsrM+J1tyaXZlcl0nOwor5rK4PidbYm9pbF0nOwor5rK5Pidbb2lsXSc7Civmsro+J1t0dXJidWxlbnRdJzsKK+ayuz4nW2dvdmVybl0nOwor5rK8PidbbGFrZV0nOwor5rK9PidbYnV5IGFuZCBzZWxsXSc7Civmsr4+J1ttb2lzdGVuXSc7Civmsr8+J1tmb2xsb3cgY291cnNlXSc7Civms4E+J1tjb25kaXRpb25dJzsKK+azhD4nW2xlYWtdJzsKK+azhT4nW3N3aW1dJzsKK+aziT4nW3NwcmluZ10nOwor5rOKPidbYW5jaG9yIHZlc3NlbF0nOwor5rOMPidbdG8gc2VlcCBvdXRdJzsKK+azkz4nW2NsZWFyXSc7Civms5U+J1tsYXddJzsKK+azlz4nW211Y291c10nOwor5rOZPidbcm9hcl0nOwor5rObPidbZHJpZnRdJzsKK+aznT4nW2dvIHVwc3RyZWFtXSc7Civms6E+J1tidWJibGVzXSc7Civms6I+J1t3YXZlc10nOwor5rOjPidbY3J5XSc7Civms6U+J1ttdWRdJzsKK+azqD4nW2NvbmNlbnRyYXRlXSc7Civms6o+J1t0ZWFyc10nOwor5rOvPidbZGVzdHJveV0nOwor5rOwPidbZ3JlYXRdJzsKK+azsT4nW2dyZWF0XSc7Civms7M+J1tkaXZlXSc7CivmtIs+J1tvY2Vhbl0nOwor5rSMPidbY2xlYXJdJzsKK+a0kj4nW3Nwcmlua2xlXSc7CivmtJc+J1t3YXNoXSc7CivmtJk+J1tuYW1lIG9mIGEgcml2ZXIgaW4gc2hhbmRvbmddJzsKK+a0mz4nW3JpdmVyIGluIHNoYWFueGkgcHJvdmluY2VdJzsKK+a0nj4nW2NhdmVdJzsKK+a0nz4nW3NuaXZlbF0nOwor5rSlPidbZmVycnldJzsKK+a0qT4nW2xlYWtdJzsKK+a0qj4nW3Zhc3RdJzsKK+a0qz4nW3RvIGRpdGNoXSc7CivmtLI+J1tjb250aW5lbnRdJzsKK+a0sz4nW2RhbXBdJzsKK+a0tT4nW3RydWVdJzsKK+a0tj4nW3RoZSBydXNoIG9mIHdhdGVyXSc7CivmtLg+J1tzcGFya2xlXSc7CivmtLs+J1tsaXZlXSc7CivmtL0+J1tzcHJlYWRdJzsKK+a0vj4nW3NjaG9vbCBvZiB0aG91Z2h0XSc7CivmtYE+J1tmbG93XSc7CivmtYQ+J1twdXJlXSc7CivmtYU+J1tzaGFsbG93XSc7CivmtZk+J1t6aGVqaWFuZyBwcm92aW5jZV0nOwor5rWaPidbZHJlZGdlXSc7CivmtZw+J1tjcmVla10nOwor5rWjPidbdG8gd2FzaF0nOwor5rWkPidbYmVhdGluZyBvZiBvY2Vhbl0nOwor5rWmPidbYmFuayBvZiByaXZlcl0nOwor5rWpPidbZ3JlYXRdJzsKK+a1qj4nW3dhdmVdJzsKK+a1rD4nW25hdXRpY2FsIG1pbGVdJzsKK+a1rj4nW2Zsb2F0XSc7CivmtbQ+J1tiYXRoZV0nOwor5rW3Pidbc2VhXSc7Civmtbg+J1tzb2FrXSc7Civmtbk+J1tzYXR1cmF0ZV0nOwor5raFPidbYmxhY2tlbl0nOwor5raIPidbdmFuaXNoXSc7Civmtow+J1tzdXJnZSB1cF0nOwor5raOPidbc2FsaXZhXSc7CivmtpM+J1ticm9va10nOwor5raVPidbdGVhcl0nOwor5raZPidbdGVhcnNdJzsKK+a2mz4nW2xhcmdlIHdhdmVzXSc7Civmtpw+J1tkaXRjaF0nOwor5ravPidbc2hvcmVdJzsKK+a2sj4nW3NhcF0nOwor5ra1Pidbc29ha10nOwor5ra4PidbZHJpZWQgdXBdJzsKK+a2vD4nW2Nvb2xdJzsKK+a3gD4nW3NoYWxsb3cgd2F0ZXJdJzsKK+a3hT4nW3dhdGVyIHVzZWQgd2FzaCByaWNlXSc7Civmt4Y+J1tjb25mdXNlZF0nOwor5reHPidbcml2ZXIgaW4gaGVuYW4gcHJvdmluY2VdJzsKK+a3iz4nW2RyaXBdJzsKK+a3jD4nW3RyaWNrbGVdJzsKK+a3kT4nW2dvb2RdJzsKK+a3kj4nW2JpdHRlciBjb2xkXSc7CisjIua3lT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor5reYPidbd2FzaCBpbiBzaWV2ZV0nOwor5reZPidbZ3VyZ2xpbmcgc291bmQgb2Ygd2F0ZXJdJzsKK+a3nj4nW25hbWUgb2YgYSByaXZlciBpbiBKaWFuZ3N1XSc7Civmt6E+J1t3ZWFrXSc7Civmt6Q+J1ttdWRdJzsKK+a3pj4nW3JpdmVyIGluIGppYW5neGkgcHJvdmluY2U6IHdhdGVyXSc7Civmt6g+J1twdXJlXSc7Civmt6o+J1tiZSBsb3N0XSc7Civmt6s+J1tvYnNjZW5lXSc7Civmt6w+J1t0ZW1wZXJdJzsKK+a3rj4nW3JpdmVyIGluIGFuaHVpIHByb3ZpbmNlXSc7Civmt7E+J1tkZWVwXSc7Civmt7M+J1tjeWFub2dlbl0nOwor5re1PidbZ3VsZl0nOwor5re3PidbbWl4XSc7Civmt7k+J1tkcm93bl0nOwor5re6Pidbc2hhbGxvd10nOwor5re7PidbYXBwZW5kXSc7CivmuIU+J1tjbGVhcl0nOwor5riHPidbdGhpcnN0eV0nOwor5riIPidbaGVscF0nOwor5riJPidbZm9yZCBzdHJlYW1dJzsKK+a4ij4nW3N1cmdlIHVwXSc7CivmuIs+J1thc3RyaW5nZW50XSc7CivmuJM+J1ttb3VudGFpbiBzdHJlYW1dJzsKK+a4lT4nW3N1cmdlIHVwXSc7CivmuJk+J1tzY2F0dGVyXSc7CivmuJo+J1tzbWFsbCBzYW5kIGJhbmtdJzsKK+a4mz4nW2RlY3JlYXNlXSc7CivmuJ0+J1tjaGFuZ2VdJzsKK+a4nz4nWyhvZiB3YXRlcikgbm90IGZsb3dpbmddJzsKK+a4oD4nW2RpdGNoXSc7CivmuKE+J1tjcm9zc10nOwor5rijPidbcmVmdXNlXSc7CivmuKQ+J1tzd2VsbGluZ10nOwor5rilPidbbW9pc3Rlbl0nOwor5rimPidbc3dpcmxdJzsKK+a4qT4nW2x1a2V3YXJtXSc7CivmuKs+J1tiZWF0aW5nIG9mIG9jZWFuXSc7CivmuKw+J1ttZWFzdXJlXSc7CivmuK0+J1tuYW1lIG9mIGEgcml2ZXIgaW4gc2hhYW54aV0nOwor5riuPidbcml2ZXIgaW4gc2hhbmRvbmcgcHJvdmluY2VdJzsKK+a4rz4nW3BvcnRdJzsKK+a4uD4nW3N3aW1dJzsKK+a4uj4nW2VuZGxlc3NseSBsb25nXSc7CivmuL4+J1ttdWRkeV0nOwor5rmDPidbc291bmQgb2Ygd2F2ZXNdJzsKK+a5ij4nW3BpZWNlIHRvZ2V0aGVyXSc7CivmuY0+J1tyYXBpZCB3YXRlciBjdXJyZW50XSc7CivmuY4+J1tmbHVzaGVkIHdpdGggZHJpbmtdJzsKK+a5lj4nW2xha2VdJzsKK+a5mD4nW2h1bmFuIHByb3ZpbmNlXSc7CivmuZs+J1tkZWVwXSc7CivmuZ8+J1tyaXZlciBpbiBxaW5naGFpIHByb3ZpbmNlXSc7Civmuac+J1t3ZWxsIHVwXSc7Civmuas+J1thIHNtYWxsIHBvbmRdJzsKK+a5rj4nW2J1cnldJzsKK+a5rz4nW2hvdCB3YXRlcl0nOwor5rmyPidbZmxvd10nOworIyLmubM+J1tbbm90IGZvdW5kIGluIGRpY3Rpb25hcnldXSciLAor5rm+PidbYmF5XSc7Civmub8+J1t3ZXRdJzsKKyMi5rm/Pidbd2V0XSciLAorIyLmub8+J1t3ZXRdJyIsCivmuow+J1twb3VyXSc7Civmuo8+J1twb29sXSc7CivmupA+J1tzcHJpbmddJzsKK+a6lj4nW3J1bGVdJzsKK+a6mD4nW2FicnVwdGx5XSc7Civmupw+J1tzbGlkZV0nOwor5rqdPidbZGl0Y2hdJzsKK+a6nz4nW2RyaXp6bGluZyByYWluXSc7CivmuqI+J1tvdmVyZmxvd10nOwor5rqlPidbYmlnXSc7Civmuqo+J1ttb3VudGFpbiBzdHJlYW1dJzsKK+a6rz4nW2dvIHVwc3RyZWFtXSc7CivmurI+J1t1cmluYXRlXSc7CivmurY+J1ttZWx0XSc7Civmurc+J1twcml2eV0nOwor5rq6PidbZHJvd25dJzsKK+a6vT4nW21vaXN0XSc7Civmu4I+J1t0b3JyZW50aWFsXSc7Civmu4Q+J1tibHVlXSc7Civmu4U+J1tleHRpbmd1aXNoXSc7Civmu4k+J1tkZWVwXSc7Civmu4s+J1tncm93XSc7Civmu4w+J1t3YXNoXSc7Civmu5E+J1tzbGlwXSc7Civmu5M+J1tzZWRpbWVudF0nOwor5ruUPidbb3ZlcmZsb3ddJzsKK+a7lT4nWzxhcmNoPiBjb3VudHkgaW4gc2hhbmRvbmcgcHJvdmluY2VdJzsKK+a7nT4nW3JhaW5pbmddJzsKK+a7nj4nW2Jsb2NrIHVwXSc7Civmu6w+J1tzaGFuZ2hhaV0nOwor5ruvPidbYmxvY2sgdXBdJzsKK+a7sj4nW3NvYWsgdGhyb3VnaF0nOwor5ru0PidbZHJpcF0nOwor5ru3PidbdGhpY2sgZ3JhdnldJzsKK+a7uD4nW3JpdmVyYmFua10nOwor5ru+PidbdHVybl0nOwor5ru/PidbZmlsbF0nOwor5ryBPidbdG8gZmlzaF0nOwor5ryCPidbZmxvYXRdJzsKK+a8hj4nW3Zhcm5pc2hdJzsKK+a8iT4nW2ZpbHRlcl0nOwor5ryPPidbbGVha10nOwor5ryRPidbd2F0ZXJdJzsKK+a8kz4nW3JpdmVyIGluIGd1YW5neGkgcHJvdmluY2VdJzsKK+a8lD4nW3BlcmZvcm1dJzsKK+a8lT4nW3RyYW5zcG9ydCBieSB3YXRlcl0nOwor5rygPidbZGVzZXJ0XSc7CivmvKI+J1tjaGluZXNlIHBlb3BsZV0nOwor5ryjPidbZmxvd2luZyB3YXRlcl0nOwor5ryrPidbb3ZlcmZsb3cgb2Ygd2F0ZXJdJzsKK+a8rD4nW3NvYWtdJzsKK+a8sT4nW2dhcmdsZV0nOwor5ryyPidbcmlzZSBpbiBwcmljZV0nOwor5ry4PidbZ3JhZHVhbGx5XSc7CivmvL4+J1tvdmVyZmxvd10nOwor5ry/PidbYW55IHRoaWNrIGZsdWlkXSc7CivmvYE+J1tyaXZlciBpbiBhbmh1aV0nOwor5r2FPidbcG91cl0nOwor5r2UPidbY2xlYW5dJzsKK+a9mD4nW3N1cm5hbWVdJzsKK+a9mz4nW2hpZGVdJzsKK+a9nD4nW2hpZGVdJzsKK+a9nz4nW2xhbmQgaW51bmRhdGVkIHdpdGggc2FsdCBmcm9tIHRpXSc7CivmvaQ+J1tzb2Z0XSc7CivmvaY+J1t0byBmbG9vZF0nOwor5r2tPidbZGVlcCBwb29sXSc7Civmva4+J1t0aWRlXSc7Civmva8+J1tzdGVlcCBiYW5rIGJ5IHN0cmVhbV0nOwor5r2wPidbZmxvb2Rpbmcgcml2ZXJdJzsKK+a9tD4nW3BvbmRdJzsKK+a9uD4nW3dlZXBdJzsKK+a9uj4nW3NvdW5kIG9mIGZsb3dpbmcgd2F0ZXJdJzsKK+a9vD4nW2hpZ2hdJzsKK+a+gD4nW2FzdHJpbmdlbnRdJzsKK+a+gT4nW2FzdHJpbmdlbnRdJzsKK+a+gj4nW2NsZWFyIGFuZCBzdGlsbCB3YXRlcl0nOwor5r6EPidbcHVyaWZ5IHdhdGVyIGJ5IGFsbG93aW5nIHNlZGltZW5dJzsKK+a+hj4nW3NwcmF5XSc7Civmvo4+J1tzcGxhdHRlcl0nOwor5r6RPidbc2xpZGVdJzsKK+a+lz4nW2Jyb29rXSc7CivmvqE+J1t3YXNoXSc7CivmvqM+J1tjbGVhbnNlXSc7CivmvqQ+J1ttYXJzaF0nOworIyLmvqo+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+a+sT4nW3NlZGltZW50XSc7CivmvrM+J1tpbmxldF0nOwor5r65PidbY2FsbV0nOwor5r+APidbYXJvdXNlXSc7Civmv4E+J1ttdWRkeV0nOwor5r+CPidbd2F0ZXJmYWxsXSc7Civmv4M+J1t0aGlja10nOwor5r+GPidbcml2ZXIgYmFua10nOwor5r+UPidbbWFueV0nOwor5r+VPidbd2V0XSc7Civmv5g+J1ttdWRdJzsKK+a/mz4nW2RyaXp6bGluZ10nOwor5r+fPidbaGVscF0nOwor5r+gPidbbW9hdF0nOwor5r+hPidbaW1tZXJzZV0nOwor5r+kPidbbGFyZ2Ugd2F2ZXNdJzsKK+a/qz4nW2Zsb29kXSc7Civmv6w+J1tkcmVkZ2VdJzsKK+a/rj4nW2NvdW50eSBpbiBIZW5hbiBwcm92aW5jZV0nOwor5r+vPidbd2FzaCBvdXRdJzsKK+a/sT4nW2JlYWNoXSc7Civmv7M+J1toaWRlXSc7Civmv7Y+J1ticm9hZF0nOwor5r+6Pidbc3ByaW5rbGVdJzsKK+a/vj4nW3N0cmFpbiBvdXRdJzsKK+eAgT4nW3dhdmVzXSc7CivngIk+J1tkcmFpbiBvZmZdJzsKK+eAiz4nW2p1aWNlXSc7CivngI8+J1tjbGVhcl0nOwor54CRPidbd2F0ZXJmYWxsXSc7CivngJU+J1thcHByb2FjaF0nOwor54CYPidbcml2ZXIgaW4gamlhbmd4aSBwcm92aW5jZV0nOwor54CaPidbdmFzdF0nOwor54CbPidbc2VhXSc7CivngJ0+J1t0cmlja2xlXSc7CivngJ4+J1twb29sIGluIGEgcml2ZXJdJzsKK+eAnz4nW3NvdW5kIG9mIGJlYXRpbmcgd2luZCBhbmQgcmFpbl0nOwor54CmPidbcG9uZF0nOwor54CnPidbcmFpbmluZ10nOwor54CsPidbc3dpZnQgY3VycmVudF0nOwor54CwPidbb3ZlcmZsb3ddJzsKK+eAsj4nW3dhdmVzXSc7CivngL4+J1tvdmVyZmxvd2luZ10nOwor54GMPidbcG91cl0nOwor54GRPidbc3ByaW5rbGVdJzsKK+eBmD4nW2JhbmtdJzsKK+eBoz4nW2JheV0nOwor54GrPidbZmlyZV0nOwor54GvPidbbGFudGVybl0nOwor54GwPidbYXNoZXNdJzsKK+eBuD4nW2NhdXRlcml6ZSB3aXRoIG1veGFdJzsKK+eBvD4nW2J1cm5dJzsKK+eBvT4nW2NhbGFtaXR5XSc7Civngok+J1tmaXJlcGxhY2VdJzsKK+eCij4nW2Nvb2tdJzsKK+eCjj4nW2ZsYW1lXSc7CivngpI+J1tmcnldJzsKK+eCmT4nW3JvYXN0XSc7Civngqw+J1t0b3JjaF0nOwor54KtPidbY2hhcmNvYWxdJzsKK+eCrj4nW2xhcmdlIGd1bl0nOwor54KvPidbYnJpZ2h0XSc7CivngrM+J1ticmlnaHRdJzsKK+eCuD4nW2ZyeSBpbiBvaWxdJzsKK+eCuT4nW2RvdF0nOwor54K6PidbZG9dJzsKK+eDiD4nW2ZpZXJ5XSc7Civng4s+J1tib2FzdF0nOwor54OPPidbY3Jvd10nOwor54OZPidbYnJhbmRdJzsKK+eDnT4nW3Jpc2VdJzsKK+eDnz4nW3Ntb2tlXSc7Civng7E+J1ticmlnaHRdJzsKK+eDuT4nW2JvaWxdJzsKK+eDvT4nW3NpZ25hbCBmaXJlXSc7CivnhIk+J1t0aGVyZXVwb25dJzsKK+eElD4nW2ZsYW1lXSc7CivnhJk+J1tkcnkgb3ZlciBzbG93IGZpcmVdJzsKK+eEmj4nW2J1cm5dJzsKK+eEnD4nW2ZpcmVdJzsKK+eEoT4nW25lZ2F0aXZlXSc7CivnhKY+J1tidXJuZWRdJzsKK+eEtj4nW3llc10nOwor54S8PidbYnVybl0nOwor54WJPidbc21lbHRdJzsKK+eFjD4nW2JyaWdodF0nOwor54WOPidbZnJ5IGluIGZhdCBvciBvaWxdJzsKK+eFlT4nW2JyaWdodF0nOwor54WWPidbd2FybV0nOwor54WZPidbc21va2VdJzsKK+eFoj4nW2Fsb25lXSc7CivnhaQ+J1tjb2FsXSc7CivnhaU+J1tzaGluaW5nXSc7CivnhaY+J1traW5kXSc7Civnhac+J1tzaGluZV0nOwor54WpPidbYm90aGVyXSc7Civnhaw+J1tyb2FzdF0nOwor54WuPidbY29va10nOwor54W9Pidbc3RpciB1cF0nOwor54aEPidbcHV0IG91dF0nOwor54aIPidbYnJpZ2h0XSc7Civnhoo+J1tiZWFyXSc7Civnho8+J1tzbW9rZV0nOwor54aUPidbbWVsdF0nOworIyLnhpU+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eGmT4nW2JyaWdodF0nOwor54afPidbd2VsbCBjb29rZWRdJzsKK+eGqD4nW2lyb25dJzsKK+eGrD4nW2Nvb2sgZG93bl0nOwor54axPidbaG90XSc7Civnhrk+J1tkaW0gbGlnaHRdJzsKK+eGvj4nW2J1cm5pbmcgaG90XSc7Civnh4M+J1tidXJuXSc7Civnh4g+J1tsYW50ZXJuXSc7Civnh4k+J1toZWF0IHdpdGggZmlyZV0nOwor54eOPidbYnVybl0nOwor54eQPidbcGhvc3Bob3J1c10nOwor54eSPidbYnVybl0nOwor54eUPidbdG8gcm9hc3RdJzsKK+eHlT4nW3N3YWxsb3cgKGJpcmQpXSc7CisjIueHlz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor54efPidbZW5jYW1wbWVudF0nOwor54egPidbd2FybV0nOwor54elPidbZHJ5XSc7Civnh6Y+J1t2aXZpZF0nOwor54enPidbZmxpbnRzdG9uZV0nOwor54esPidbYnVybiBkb3duXSc7Civnh60+J1tjYW5kbGVdJzsKK+eHrj4nW2hhcm1vbml6ZV0nOworIyLnh7U+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eHuT4nW2ZpcmVdJzsKK+eHuz4nW3Ntb2tlXSc7Civnh7w+J1tjaW5kZXJzXSc7Civnh78+J1tzaGluZV0nOwor54iGPidbY3JhY2tsZV0nOwor54iNPidbc2hpbmVdJzsKK+eIkD4nW2ZpcmVwbGFjZV0nOwor54ibPidbcm90dGVuXSc7CivniKg+J1tvdmVuXSc7CivniKo+J1tjbGF3XSc7CivniKw+J1tjcmF3bF0nOwor54itPidbZGlzcHV0ZV0nOwor54iwPidbbGVhZCBvbiB0b10nOwor54iyPidbZG9dJzsKK+eItT4nW2ZldWRhbCB0aXRsZSBvciByYW5rXSc7CivniLY+J1tmYXRoZXJdJzsKK+eIuj4nW2ZhdGhlcl0nOwor54i7PidbZGlhZ3JhbXMgZm9yIGRpdmluYXRpb25dJzsKK+eIvD4nW2Nob3BwaW5nIGJvYXJkIG9yIGJsb2NrXSc7CivniL0+J1toYXBweV0nOwor54i+PidbeW91XSc7CivniL8+J1toYWxmIG9mIHRyZWUgdHJ1bmtdJzsKK+eJgD4nW2JlZF0nOwor54mGPidbd2FsbF0nOwor54mHPidbc2xpY2VdJzsKK+eJiD4nW3ByaW50aW5nIGJsb2Nrc10nOwor54mLPidbbWVtb3JhbmR1bV0nOwor54mMPidbc2lnbmJvYXJkXSc7CivniZI+J1tkb2N1bWVudHNdJzsKK+eJmD4nW3dyaXRpbmcgdGFibGV0XSc7CivniZk+J1t0b290aF0nOwor54mbPidbY293XSc7CivniZ0+J1tmZW1hbGUgb2Ygc3BlY2llc10nOwor54mfPidbbWFrZV0nOwor54mhPidbbWFsZSBvZiBhbmltYWxzXSc7CivniaI+J1twcmlzb25dJzsKK+eJpz4nW3RlbmQgY2F0dGxlXSc7Civniak+J1t0aGluZ10nOwor54myPidbc2FjcmlmaWNpYWwgYW5pbWFsXSc7CivnibQ+J1tnb3JlXSc7Civnibk+J1tzcGVjaWFsXSc7Civnib0+J1tkcmFnXSc7Civnib4+J1t0byBvcHBvc2VdJzsKK+eKgD4nW3JoaW5vY2Vyb3NdJzsKK+eKgT4nW3Bsb3ddJzsKK+eKgj4nW3Bsb3ddJzsKK+eKhz4nW3J1biBmYXN0XSc7CivnipI+J1tlbnRlcnRhaW4gdmljdG9yaW91cyBzb2xkaWVyc10nOwor54qWPidbYnJpbmRsZWQgb3hdJzsKK+eKoD4nW3NhY3JpZmljZV0nOwor54qiPidbY2FsZl0nOwor54qnPidbc2FjcmlmaWNlXSc7Civniqw+J1tkb2ddJzsKK+eKrz4nW2NvbW1pdCBjcmltZV0nOwor54qyPidbd29sZl0nOwor54q2PidbZm9ybV0nOwor54q5PidbbGlrZV0nOwor54uCPidbaW5zYW5lXSc7Civni4M+J1t0byBjb3ZldF0nOwor54uEPidbdHJpYmUgZnJvbSBub3J0aGVybiBjaGluYV0nOwor54uGPidbcGVraW5lc2UgZG9nXSc7Civni44+J1tiZSBmYW1pbGlhciB3aXRoXSc7Civni5A+J1tzcGVjaWVzIG9mIGZveF0nOwor54uSPidbYmFib29uXSc7Civni5c+J1tkb2ddJzsKK+eLmT4nW2FwZV0nOworIyLni5s+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eLoD4nW3ZpY2lvdXNdJzsKK+eLoT4nW2N1bm5pbmddJzsKK+eLoj4nW2FuaW1hbCBuYW1lXSc7Civni6k+J1t3aW50ZXIgaHVudGluZ10nOwor54usPidbYWxvbmVdJzsKK+eLrT4nW25hcnJvd10nOwor54u3PidbcmFzaF0nOwor54u4PidbZm94XSc7Civni7k+J1tuYXJyb3ddJzsKK+eLvD4nW3dvbGZdJzsKK+eLvT4nW2xlZ2VuZGFyeSBhbmltYWwgd2l0aCBzaG9ydCBmb3JlXSc7CivnjIo+J1tsaW9uXSc7CivnjJY+J1ttYWRdJzsKK+eMlz4nW2V4Y2xhbWF0aW9uIG9mIGFkbWlyYXRpb25dJzsKK+eMmz4nW3Zpb2xlbnRdJzsKK+eMnD4nW2d1ZXNzXSc7CivnjJ0+J1thYnJ1cHRseV0nOwor54yfPidbaHVudF0nOwor54ylPidbdnVsZ2FyXSc7CivnjKk+J1tzcGVjaWVzIG9mIG9yYW5ndXRhbl0nOwor54yqPidbcGlnXSc7CivnjKs+J1tjYXRdJzsKK+eMrj4nW29mZmVyXSc7CisjIueMrz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor54y0PidbbW9ua2V5XSc7CivnjLY+J1tsaWtlXSc7CivnjLc+J1twbGFuXSc7CivnjL4+J1tjcmFmdHldJzsKK+eMvz4nW2FwZV0nOwor542EPidbcHJpc29uXSc7CivnjYU+J1tsaW9uXSc7CivnjY4+J1twcml6ZV0nOwor542PPidbdGhlIHBhbnRoZXJdJzsKK+eNlz4nW3VucnVseV0nOwor542jPidbYmVhc3RdJzsKK+eNqD4nW2Fsb25lXSc7Civnjao+J1tzbHldJzsKK+eNsD4nW2Zlcm9jaW91cyBhcHBlYXJhbmNlXSc7CivnjbI+J1tvYnRhaW5dJzsKK+eNtT4nW2h1bnRdJzsKK+eNuD4nW2JlYXN0XSc7Civnjbo+J1tvdHRlcl0nOwor5427Pidbb2ZmZXJdJzsKK+eOhD4nW2RlZXBdJzsKK+eOhz4nW3RvIGxlYWRdJzsKK+eOiT4nW2phZGVdJzsKK+eOiz4nW2tpbmddJzsKK+eOlj4nW2JsYWNrLWNvbG9yZWQgamFkZV0nOwor546pPidbcGxheSB3aXRoXSc7CivnjrI+J1t0aW5rbGluZyBvZiBqYWRlXSc7CivnjrM+J1t0b3J0b2lzZSBzaGVsbF0nOwor5467PidbZ2xhc3NdJzsKK+ePgD4nW2FtYmVyXSc7Civnj4I+J1tpbmZlcmlvciBraW5kIG9mIGphZGVdJzsKK+ePiD4nW29ybmFtZW50IGF0dGFjaGVkIHdvbWFuJydzIGhhaXJwaV0nOwor54+KPidbY29yYWxdJzsKK+ePjT4nW3ByZWNpb3VzXSc7Civnj44+J1twcmVjaW91c10nOwor54+ePidba2luZCBvZiBuZWNrbGFjZV0nOwor54+gPidbcHJlY2lvdXMgc3RvbmVdJzsKK+ePpT4nW2VhciBvcm5hbWVudF0nOwor54+qPidbamFkZSB0YWJsZSBjb25mZXJyZWQgdXBvbiBmZXVkYWxdJzsKK+ePrT4nW2NsYXNzXSc7Civnj64+J1tqYWRlIG9ybmFtZW50XSc7Civnj7E+J1tuZWNrbGFjZSBtYWRlIG9mIHByZWNpb3VzIHN0b25lc10nOworIyLnj7g+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ePvj4nW2FwcGVhcl0nOwor55CDPidbYmFsbF0nOwor55CFPidbdmFyaWV0eSBvZiB3aGl0ZSBjYXJuZWxpYW5dJzsKK+eQhj4nW3JlYXNvbl0nOwor55CJPidbc3BhcmtsaW5nIHN0b25lXSc7CivnkKI+J1twb2xpc2ggamFkZV0nOwor55ClPidbamV3ZWwgaW4gc2hhcGUgb2YgdGlnZXJdJzsKK+eQsj4nW25lY2tsYWNlXSc7CivnkLM+J1tiZWF1dGlmdWwgamFkZV0nOwor55C0PidbY2hpbmVzZSBsdXRlIG9yIGd1aXRhcl0nOwor55C1PidbZ3VpdGFyLWxpa2UgaW5zdHJ1bWVudF0nOwor55C2PidbZ3VpdGFyLWxpa2UgaW5zdHJ1bWVudF0nOwor55C6PidbZW5hbWVsXSc7CivnkL8+J1ticmlnaHRdJzsKK+eRgT4nW2ZpbmUgcGllY2Ugb2YgamFkZV0nOwor55GVPidbZmxhdyBpbiBnZW1dJzsKK+eRmT4nW2FnYXRlXSc7CivnkZo+J1tjb3JhbF0nOwor55GbPidbbHVzdGVyIG9mIGdlbV0nOwor55GcPidbZmxhd2xlc3MgZ2VtIG9yIGpld2VsXSc7CivnkZ4+J1tmZWxpY2l0b3VzIG9tZW5dJzsKK+eRnz4nW2xhcmdlIHN0cmluZ2VkIG11c2ljYWwgaW5zdHJ1bWVudF0nOwor55GgPidbcHJlY2lvdXMgc3RvbmVdJzsKK+eRoz4nW2ZyYWdtZW50c10nOwor55GkPidbcHJlY2lvdXMgamFkZV0nOwor55GpPidbbHVzdHJlIG9mIGdlbXNdJzsKK+eRqj4nW2FnYXRlXSc7Civnka8+J1traW5kIG9mIHdoaXRlIGNvcm5lbGlhbl0nOwor55GwPidbZXh0cmFvcmRpbmFyeV0nOwor55GzPidbbHVzdGVyIG9mIGdlbV0nOwor55G2PidbcHJlY2lvdXMgamFkZV0nOwor55G+PidbYnJpbGxpYW5jZSBvZiBnZW1zXSc7CivnkoM+J1tnbGFzc10nOwor55KLPidbamFkZSBwbGF5dGhpbmddJzsKK+eSnj4nW3VucG9saXNoZWQgZ2VtXSc7CivnkqI+J1twcmVjaW91cyBzdG9uZV0nOwor55KnPidbcGllY2Ugb2YgamFkZSB3aXRoIGhvbGUgaW4gaXRdJzsKK+eSsD4nW2phZGUgcmluZyBvciBicmFjZWxldF0nOwor55K9PidbaW1wZXJpYWwgc2lnbmV0XSc7Civnk4o+J1tqYWRlXSc7Civnk48+J1tnZW0gY3V0IGxpa2UgZHJhZ29uXSc7Civnk5Q+J1tuZWNrbGFjZSBtYWRlIG9mIHByZWNpb3VzIHN0b25lc10nOwor55OcPidbbWVsb25dJzsKK+eToD4nW2JvdHRsZSBnb3VyZF0nOwor55OiPidbbGFkbGUgbWFkZSBmcm9tIGRyaWVkIGdvdXJkXSc7Civnk6M+J1twZXRhbF0nOwor55OmPidbdGlsZV0nOwor55OnPidbZGVjYWdyYW1dJzsKK+eTqT4nW2tpbG93YXR0XSc7Civnk64+J1tlYXJ0aGVuIGphcl0nOwor55OwPidbW25vdCBmb3VuZCBpbiBkaWN0aW9uYXJ5XV0nOwor55OxPidbbWlsbGlncmFtXSc7CisjIueTsj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor55O2PidbanVnXSc7Civnk7c+J1tjcm9ja2VyeV0nOwor55O4PidbaGVjdG9ncmFtXSc7CivnlIM+J1ticmljayB3YWxsIG9mIGEgd2VsbF0nOwor55SEPidbZXhhbWluZV0nOwor55SFPidbY2VudGlncmFtXSc7CivnlIw+J1tib3dsXSc7CivnlI0+J1tyYWZ0ZXJzIHN1cHBvcnRpbmcgcm9vZiB0aWxlc10nOwor55SOPidbYnJpY2tdJzsKK+eUkT4nW2JvaWxlciBmb3Igc3RlYW1pbmcgcmljZV0nOwor55STPidbZ2xhemVkIHRpbGVzXSc7CivnlJU+J1tlYXJ0aGVuIGphcl0nOwor55SYPidbc3dlZXRuZXNzXSc7CivnlJo+J1tncmVhdCBleHRlbnRdJzsKK+eUnD4nW3N3ZWV0XSc7CivnlJ4+J1t0YXN0ZV0nOwor55SfPidbbGlmZV0nOwor55SjPidbZ2l2ZSBiaXJ0aF0nOwor55SlPidbc2lzdGVyJydzIGNoaWxkXSc7CivnlKY+J1tiZSByZWJvcm5dJzsKK+eUqD4nW3VzZV0nOwor55SrPidbYmVnaW5dJzsKK+eUrD4nW3BhdGhdJzsKK+eUsD4nW2ZpZWxkXSc7CivnlLE+J1tjYXVzZV0nOwor55SyPidbYXJtb3JdJzsKK+eUsz4nW3RvIHN0YXRlIHRvIGEgc3VwZXJpb3JdJzsKK+eUtz4nW21hbGVdJzsKK+eUuD4nW3N1YnVyYnMgb2YgY2FwaXRhbF0nOwor55S6PidbcmFpc2VkIHBhdGggYmV0d2VlbiBmaWVsZHNdJzsKK+eUuz4nW3BhaW50aW5nXSc7CivnlLw+J1tyYWlzZWQgcGF0aCBiZXR3ZWVuIGZpZWxkc10nOwor55WEPidbc3RvcF0nOwor55WGPidbY2hpbmVzZSBsYW5kIG1lYXN1cmVdJzsKKyMi55WJPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnlYo+J1twbG93XSc7CivnlYs+J1t0aWxsIGxhbmRdJzsKK+eVjD4nW2JvdW5kYXJ5XSc7CisjIueVjT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor55WPPidbZmVhcl0nOwor55WRPidbZHJ5IChhcyBvcHBvc2VkIHRvIHJpY2UpIGZpZWxkXSc7CivnlZQ+J1tib3VuZGFyeSBwYXRoIGRpdmlkaW5nIGZpZWxkc10nOwor55WZPidbc3RvcF0nOwor55WaPidbc3RyYXcgYmFza2V0XSc7CivnlZs+J1tib3JkZXJdJzsKK+eVnD4nW2xpdmVzdG9ja10nOwor55WdPidbY2hpbmVzZSBsYW5kIG1lYXN1cmVdJzsKK+eVoD4nW2dhcmRlbl0nOwor55WiPidbZW5kXSc7CivnlaQ+J1twbGFjZSBmb3Igd29yc2hpcHBpbmcgdGhlIGhhdmVuXSc7CivnlaU+J1thcHByb3hpbWF0ZWx5XSc7CivnlaY+J1tzZWN0aW9ucyBpbiB2ZWdldGFibGUgZmFybV0nOwor55WnPidbYXBwcm94aW1hdGVseV0nOworIyLnlak+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eVqj4nW3Rha2UgdHVybnNdJzsKK+eVqz4nW2RlbGluZWF0ZV0nOworIyLnla0+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eVsD4nW2RpZmZlcmVudF0nOwor55WzPidbcmVwZWF0XSc7CivnlbQ+J1tmYXJtbGFuZF0nOwor55W2PidbYmVhcl0nOwor55W3PidbcmFpc2VkIHBhdGggYmV0d2VlbiBmaWVsZHNdJzsKK+eVuD4nW29kZF0nOwor55W/PidbaW1wZXJpYWwgZG9tYWluXSc7CivnloI+J1tyZXBlYXRdJzsKK+eWhj4nW2JvdW5kYXJ5XSc7Civnloc+J1tmYXJtbGFuZF0nOwor55aJPidbcmVwZWF0XSc7Civnloo+J1tyZXBlYXRdJzsKK+eWiz4nW3JvbGxdJzsKK+eWjj4nW25lZ2xlY3RdJzsKK+eWjz4nW25lZ2xlY3RdJzsKK+eWkT4nW2RvdWJ0XSc7CivnlpQ+J1tjYXJidW5jbGVdJzsKK+eWmj4nW2Nocm9uaWMgZGlzZWFzZV0nOwor55adPidbaGVybmlhXSc7CivnlqM+J1t3YXJ0XSc7CivnlqU+J1tzY2FiaWVzXSc7Civnlqs+J1tlcGlkZW1pY10nOwor55axPidbYWNuZV0nOwor55ayPidbZmVlbCB0aXJlZF0nOwor55azPidbY2hpbGRob29kIGRpc2Vhc2VzXSc7CivnlrU+J1tmbGF3XSc7Civnlrg+J1tqYXVuZGljZV0nOwor55a5PidbbWVhc2xlc10nOwor55a8PidbYWNoZXNdJzsKK+eWvT4nW3VsY2VyXSc7Civnlr4+J1tpbGxuZXNzXSc7Civnl4I+J1tzY2FiXSc7Civnl4M+J1tpbmRpZ2VzdGlvbl0nOwor55eFPidbaWxsbmVzc10nOwor55eHPidbZGlzZWFzZV0nOwor55eKPidbYmUgaGVhbGVkXSc7Civnl40+J1t3b3VuZF0nOwor55eSPidbaXRjaF0nOwor55eUPidbaGVtb3JyaG9pZHNdJzsKK+eXlT4nW3NjYXJdJzsKK+eXmD4nW3NtYWxscG94XSc7Civnl5k+J1tjb252dWxzaW9uc10nOwor55ebPidbcGFpbl0nOwor55eePidbZHlzcGVwc2lhXSc7Civnl6I+J1tkeXNlbnRyeV0nOwor55ejPidbc3BvdHNdJzsKK+eXqT4nW3RoaW5dJzsKK+eXsD4nW3BobGVnbV0nOwor55eyPidbcG9jay1tYXJrZWRdJzsKK+eXsz4nW3BvY2stbWFya2VkXSc7Civnl7Q+J1tmb29saXNoXSc7Civnl7o+J1twYXJhbHlzaXNdJzsKK+eXvD4nW2Nocm9uaWMgZGlzZWFzZV0nOwor55e+PidbY2hyb25pYyBpbGxuZXNzXSc7Civnl78+J1twYXJhbHlzaXNdJzsKK+eYgT4nW2ZlZWwgdGlyZWRdJzsKK+eYiT4nW2dldCB3ZWxsXSc7CivnmIs+J1tjcmF6eV0nOwor55iNPidbdWxjZXJzXSc7CivnmJ8+J1tlcGlkZW1pY10nOwor55igPidbdGhpbl0nOwor55ihPidbdHVtb3JdJzsKK+eYoj4nW3NjYXJdJzsKK+eYpD4nW3R1bW9yXSc7CivnmKc+J1tpbnRlcm1pdHRlbnQgZmV2ZXJdJzsKK+eYsD4nW3Njcm9mdWxhXSc7CivnmLQ+J1ttYWxhcmlhIHBlc3RpbGVudGlhbCB2YXBvcnNdJzsKK+eYuz4nW2Zpc3R1bGFdJzsKK+eZgj4nW2JlIGhlYWxlZF0nOwor55mGPidbY29uc3VtcHRpb25dJzsKK+eZhz4nW2VwaWxlcHN5XSc7CivnmYg+J1thYnJvZ2F0ZV0nOwor55mMPidbY2FuY2VyXSc7CivnmZI+J1tnZXQgd2VsbF0nOwor55mWPidbY3JhdmluZ10nOwor55mYPidbc29yZV0nOwor55mcPidbZXJ5dGhlbWFdJzsKK+eZoT4nW3NpbGx5XSc7CivnmaI+J1tpdGNoXSc7Civnmac+J1tzY3JvZnVsb3VzIGx1bXBzIG9yIHN3ZWxsaW5nc10nOwor55moPidbcXVpY2tseV0nOwor55mpPidbbGVwcm9zeV0nOwor55mqPidbc3Bhc21zXSc7Civnmaw+J1tyaW5nd29ybXNdJzsKK+eZsD4nW2NhcmJ1bmNsZV0nOwor55myPidbY3JhenldJzsKK+eZtj4nW2xlZ3NdJzsKK+eZuD4nW2xhc3Qgb2YgdGVuIGNlbGVzdGlhbCBzdGVtc10nOwor55m6PidbaXNzdWVdJzsKK+eZuz4nW3Jpc2VdJzsKK+eZvD4nW2lzc3VlXSc7Civnmb0+J1t3aGl0ZV0nOwor55m+Pidbb25lIGh1bmRyZWRdJzsKK+eagD4nW2tlcm5lbF0nOwor55qDPidbY291bnRlbmFuY2VdJzsKK+eahD4nW3Bvc3Nlc3NpdmVdJzsKK+eahj4nW2FsbF0nOwor55qHPidbcm95YWxdJzsKK+eaiD4nW2ZvbGxvd10nOwor55qLPidbdGhlIGhpZ2ggbGFuZCBhbG9uZyBhIHJpdmVyXSc7Civnmo4+J1t3aGl0ZV0nOwor55qQPidbdGhlIGhpZ2ggbGFuZCBhbG9uZyBhIHJpdmVyXSc7CivnmpM+J1ticmlnaHRdJzsKK+ealj4nW2FuaHVpIHByb3ZpbmNlXSc7Civnmpk+J1t3aGl0ZV0nOwor55qaPidbYnJpbGxpYW50IHdoaXRlXSc7Civnmq4+J1tza2luXSc7CivnmrA+J1twaW1wbGVzXSc7CivnmrQ+J1tjaGFwcGVkXSc7Civnmrc+J1tkcnVtXSc7Civnmrg+J1tjcmFja10nOwor55q5PidbY3JhY2tdJzsKK+eauj4nW3dyaW5rbGVzXSc7Civnmr8+J1tzaGFsbG93IGNvbnRhaW5lcl0nOwor55uCPidbYmFzaW5dJzsKK+ebgz4nW2dsYXNzXSc7Civnm4Y+J1tiYXNpbl0nOwor55uIPidbZmlsbF0nOwor55uKPidbcHJvZml0XSc7Civnm40+J1t3aGF0PyB3aHkgbm90PyBjb3JyZXNwb25kXSc7Civnm5I+J1tzbWFsbCBib3ggb3IgY2FzZV0nOwor55uWPidbY292ZXJdJzsKK+eblz4nW3JvYl0nOwor55ubPidbYWJ1bmRhbnRdJzsKK+ebnD4nW3JvYl0nOwor55uePidbc21hbGwgY3VwIG9yIGNvbnRhaW5lcl0nOwor55ufPidbc3dlYXJdJzsKK+eboT4nW2V4aGF1c3RdJzsKK+eboz4nW3N1cGVydmlzZV0nOwor55ukPidbdHJheV0nOwor55ulPidbd2FzaF0nOwor55unPidbY290dGFnZV0nOwor55uqPidbdG8gdG9zcyBhYm91dF0nOwor55uuPidbZXllXSc7Civnm7I+J1tibGluZF0nOwor55u0Pidbc3RyYWlnaHRdJzsKK+ebuD4nW211dHVhbF0nOwor55u7PidbZ2xhcmVdJzsKK+ebvj4nW3NoaWVsZF0nOwor55yBPidbcHJvdmluY2VdJzsKK+echD4nW3RvIGxvb2sgYXNrYW5jZV0nOwor55yHPidbYmxpbmQgaW4gb25lIGV5ZV0nOwor55yIPidbZ2xvYXRdJzsKK+eciT4nW2V5ZWJyb3dzXSc7CivnnIs+J1tsb29rXSc7CivnnIw+J1tjb3VudHldJzsKK+ecmz4nW2RpbV0nOworIyLnnJ4+J1tyZWFsXSciLAor55yfPidbcmVhbF0nOwor55ygPidbY2xvc2UgZXllc10nOworIyLnnKQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ecpT4nW2V5ZSBzb2NrZXRzXSc7CivnnKY+J1tjb3JuZXIgb2YgdGhlIGV5ZXNdJzsKK+ecqT4nW2NvbmZ1c2VdJzsKK+ectz4nW3Rha2UgaW50ZXJlc3QgaW5dJzsKK+ecuD4nW3B1cGlsIG9mIGV5ZV0nOwor55y6PidbbG9vayBhdF0nOwor55y8PidbZXllXSc7CivnnYA+J1ttYWtlIG1vdmVdJzsKK+edhz4nW2xvb2sgYXRdJzsKK+edmj4nW2Nvcm5lciBvZiBleWVdJzsKK+edmz4nW2V5ZWJhbGxdJzsKK+edoT4nW3NsZWVwXSc7CivnnaM+J1tzdXBlcnZpc2VdJzsKK+edpT4nW2xvb2sgYXNrYW5jZSBhdF0nOwor552mPidbZnJpZW5kbHldJzsKK+edqD4nW2xvb2sgYXNrYW5jZSBhdF0nOwor552rPidbZXllbGFzaGVzXSc7Civnnbk+J1tsb29rIGF0XSc7Civnnb4+J1t0ZXN0aWNsZV0nOwor552/Pidbc2hyZXdkXSc7Civnnos+J1tnbGFyZSB3aXRoIGFuZ2VyXSc7Civnno4+J1tibGluZF0nOwor556RPidbY2xvc2UgZXllc10nOwor556ePidbZGVjZWl2ZV0nOwor556gPidbbG9vayBhdF0nOwor556lPidbdGFrZSBmbGVldGluZyBnbGFuY2UgYXRdJzsKK+eerD4nW3dpbmtdJzsKK+eerT4nW2JyaWdodF0nOwor556wPidbd2F0Y2hdJzsKK+eesz4nW3B1cGlsIG9mIGV5ZV0nOwor5562PidbZGltXSc7CisjIueetj4nW2RpbV0nIiwKK+eeuz4nW2xvb2tdJzsKK+eevD4nW2V5ZWxpZF0nOwor5569PidbYmxpbmRdJzsKK+eevz4nW3N1cm5hbWVdJzsKK+efhz4nW3N0dXBpZF0nOwor55+NPidbbG9vayBhYm91dCBpbiBmaXJnaHQgb3IgYWxhcm1dJzsKK+eflz4nW3N0cmFpZ2h0XSc7Civnn5o+J1t3YXRjaCBjYXJlZnVsbHldJzsKK+efmz4nW3NwZWFyXSc7Civnn5w+J1twaXR5XSc7Civnn6I+J1thcnJvd10nOwor55+jPidbcGFydGljbGUgb2YgY29tcGxldGVkIGFjdGlvbl0nOwor55+lPidba25vd10nOwor55+nPidbbXVjaCBtb3JlXSc7Civnn6k+J1tjYXJwZW50ZXInJ3Mgc3F1YXJlXSc7Civnn60+J1tzaG9ydF0nOwor55+uPidbc2hvcnRdJzsKK+efrz4nW2NvcnJlY3RdJzsKK+efsz4nW3N0b25lXSc7Civnn7w+J1tzdG9uZSBicmlkZ2VdJzsKK+eggj4nW3NhbmRdJzsKK+egjD4nW3N0b25lIHN0ZXBzXSc7CivnoJI+J1thcnNlbmljXSc7CivnoJQ+J1tncmluZF0nOwor56CVPidbYnJlYWtdJzsKK+egoD4nW3JvY2t5XSc7CivnoKU+J1t3aGV0c3RvbmVdJzsKK+egpj4nW3N0b2NrYWRlXSc7CivnoKc+J1thbnZpbF0nOwor56CyPidbZ3VuXSc7CivnoLQ+J1ticmVha10nOwor56C6Pidbd2hldHN0b25lXSc7CivnoL8+J1ttaW5lXSc7CivnoYU+J1tzaWxpY29uXSc7CivnoZ0+J1tzYWx0cGV0ZXJdJzsKK+ehqz4nW3N1bGZ1cl0nOwor56GsPidbaGFyZF0nOwor56GvPidbaW5rc3RvbmVdJzsKKyMi56GyPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIuehtD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56G8PidbYm9yYXhdJzsKK+eigT4nW2NoZXNzXSc7CivnooY+J1thcnJvdy10aXBdJzsKK+eihz4nW2FuY2hvcl0nOwor56KMPidbcm91Z2hdJzsKK+eijT4nW29ic3RydWN0XSc7Civnoo4+J1ticmVha10nOwor56KRPidbc3RvbmUgdGFibGV0XSc7CivnopM+J1twZXN0bGVdJzsKKyMi56KVPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnopc+J1tib3dsXSc7Civnopo+J1tzdWJ1cmJdJzsKK+eioz4nW3N0b25lIHRhYmxldF0nOwor56KnPidbamFkZV0nOwor56KpPidbZ3JlYXRdJzsKK+eiqj4nW3N0b25lIHNsYWIgdXNlZCBmb3Igd2FzaGluZyBjbG90XSc7Civnoq8+J1thZ2F0ZV0nOworIyLnorU+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eiuj4nW3N1cmVdJzsKK+eivD4nW251bWJlcl0nOwor56K+Pidbcm9sbGVyXSc7Civno4E+J1ttYWduZXRpY10nOwor56OFPidbcG91bmRdJzsKKyMi56OGPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivno4o+J1twaWxlIG9mIHJvY2tzIG9yIHN0b25lc10nOwor56OLPidbcG9saXNoXSc7Civno5A+J1tsYXJnZSByb2NrXSc7Civno5E+J1tzdG9uZSBtaWxsXSc7Civno5Q+J1tkb3dud2FyZCBzdHJva2Ugc2xhbnRpbmcgcmlnaF0nOwor56OaPidbdGlsZV0nOwor56OnPidbc2FuZCBhbmQgZ3JhdmVsXSc7Civno6g+J1tncmluZF0nOwor56OsPidbbXVzaWNhbCBpbnN0cnVtZW50XSc7Civno68+J1tqZXR0eV0nOwor56O0Pidbc3RlcHMgb24gbGVkZ2VdJzsKK+ejvT4nW2JhcnJlbiBsYW5kXSc7CivnpIE+J1tyZWVmXSc7CisjIuekhz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56SOPidbZm91bmRhdGlvbiBzdG9uZV0nOworIyLnpI4+J1tmb3VuZGF0aW9uIHN0b25lXSciLAorIyLnpJI+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ekmT4nW29ic3RydWN0XSc7CivnpKY+J1ttaW5lXSc7CivnpKo+J1t3aGV0c3RvbmVdJzsKK+ekqz4nW2dyYXZlbF0nOwor56SsPidbYWx1bV0nOwor56S6Pidbc2hvd10nOwor56S8Pidbc29jaWFsIGN1c3RvbV0nOwor56S+PidbZ29kIG9mIHRoZSBzb2lsIGFuZCBhbHRhcnMgdG8gaGltXSc7CivnpYA+J1t0byBzYWNyaWZpY2VdJzsKK+elgT4nW3ByYXldJzsKK+elhz4nW29ubHldJzsKK+eliD4nW3ByYXldJzsKK+eliT4nW2hhcHBpbmVzc10nOwor56WQPidbZGl2aW5lIGludGVydmVudGlvbl0nOwor56WTPidbZXhvcmNpc2VdJzsKK+ellT4nW215c3RlcmlvdXNdJzsKK+ellj4nW2FuY2VzdG9yXSc7CivnpZc+J1tyZXNwZWN0XSc7CivnpZo+J1t0aHJvbmVdJzsKK+elnT4nW3ByYXkgZm9yIGhhcHBpbmVzcyBvciBibGVzc2luZ3NdJzsKK+elnj4nW3NwaXJpdF0nOwor56WfPidbZXZpbCBzcGlyaXRdJzsKK+eloD4nW2FuY2VzdHJhbCB0ZW1wbGVdJzsKK+eloj4nW29uZScncyBkZWNlYXNlZCBmYXRoZXJdJzsKK+elpT4nW2dvb2QgbHVja10nOwor56WoPidbc2xpcCBvZiBwYXBlciBvciBiYW1ib29dJzsKK+elrT4nW3NhY3JpZmljZSB0b10nOwor56W3PidbcHJheV0nOwor56W6PidbZ29vZCBsdWNrXSc7Civnpb8+J1tibGVzc2luZ10nOwor56aAPidbcmVwb3J0IHRvXSc7CivnpoE+J1tyZXN0cmljdF0nOwor56aEPidbYmxlc3NpbmddJzsKK+emhT4nW21lZGl0YXRpb25dJzsKK+emij4nW3NlbWktYW5udWFsIGNlcmVtb255IG9mIHB1cmlmaWNhXSc7Civnpo0+J1ttaXNmb3J0dW5lXSc7Civnpo4+J1tsdWNreV0nOwor56aPPidbaGFwcGluZXNzXSc7Civnpp0+J1tbbm90IGZvdW5kIGluIGRpY3Rpb25hcnldXSc7CivnpqY+J1tkZWZlbmRdJzsKK+empz4nW2hhcHBpbmVzc10nOwor56aqPidbbWVkaXRhdGlvbl0nOwor56auPidbc29jaWFsIGN1c3RvbV0nOwor56awPidbb25lJydzIGRlY2Vhc2VkIGZhdGhlcl0nOwor56azPidbcHJheSBvciBzYWNyaWZpY2VdJzsKK+emuT4nW2xlZ2VuZGFyeSBoc2lhIGR5bmFzdHkgZm91bmRlcl0nOwor56a6PidbZGlzdHJpY3RdJzsKK+emvT4nW2JpcmRzXSc7Civnpr4+J1tncmFpbiBzdGlsbCBvbiBzdGFsa10nOwor56a/PidbYmFsZF0nOwor56eAPidbZWFyIG9mIGdyYWluXSc7Civnp4E+J1twcml2YXRlXSc7Civnp4k+J1tncmFzcF0nOwor56eLPidbYXV0dW1uXSc7Civnp5E+J1tzZWN0aW9uXSc7Civnp5I+J1tiZWFyZCBvZiBncmFpbiBvciBjb3JuXSc7Civnp5U+J1tlbXB0eSBncmFpbiBvciByaWNlIGh1c2tdJzsKK+enmD4nW3NlY3JldF0nOwor56efPidbcmVudF0nOworIyLnp6E+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+enoz4nW2ZvZGRlcl0nOwor56ekPidbYmFsYW5jZV0nOwor56emPidbZmV1ZGFsIHN0YXRlIG9mIHFpbl0nOwor56enPidbcmljZSBzZWVkbGluZ3NdJzsKK+enqT4nW29yZGVyXSc7Civnp6w+J1tibGFjayBtaWxsZXRdJzsKK+ensD4nW2NhbGxdJzsKK+enuz4nW2NoYW5nZSBwbGFjZV0nOwor56iAPidbcmFyZV0nOwor56iIPidbc3RhbGsgb2YgZ3JhaW5dJzsKK+eoiz4nW2pvdXJuZXldJzsKK+eojT4nW2xpdHRsZV0nOwor56iOPidbdGF4ZXNdJzsKK+eolD4nW3JpcGUgZ3JhaW5dJzsKK+eolz4nW2Rhcm5lbHNdJzsKKyMi56iYPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnqJk+J1tncmFpbiByZWFkeSBmb3IgZ3JpbmRpbmddJzsKK+eomj4nW3lvdW5nXSc7CivnqJw+J1tjb3JuZXJdJzsKK+eonz4nW3JlcG9ydCB0b10nOwor56igPidbZGVuc2VdJzsKK+eorj4nW3NlZWRdJzsKK+eosT4nW2NhbGxdJzsKK+eosj4nW3JpY2UgZ3Jvd2luZyBpbiBmaWVsZF0nOwor56i3PidbZ29kIG9mIGNlcmVhbHNdJzsKK+eouz4nW3JpY2UgZ3Jvd2luZyBpbiBmaWVsZF0nOwor56i8Pidbc293IGdyYWluXSc7CivnqL0+J1tleGFtaW5lXSc7CivnqL4+J1tkcmFmdF0nOwor56i/PidbZHJhZnRdJzsKK+epgD4nW2Nvcm5dJzsKK+epgj4nW2VhciBvZiBncmFpbl0nOworIyLnqYM+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ephj4nW21hamVzdGljXSc7CivnqYk+J1t5b3VuZyBncmFpbl0nOwor56mNPidbYWNjdW11bGF0ZV0nOwor56mOPidbcmljZSB0YXNzZWxdJzsKKyMi56mOPidbcmljZSB0YXNzZWxdJyIsCivnqZA+J1tmYWxsXSc7CivnqZc+J1tlYXIgb2YgZ3JhaW5dJzsKK+epoT4nW2Zhcm1dJzsKK+epoj4nW2RpcnR5XSc7CivnqaM+J1tzdGFsa3Mgb2YgZ3JhaW5dJzsKK+epqT4nW3N0YWJsZV0nOwor56mrPidbaGFydmVzdF0nOwor56mwPidbc3RhbGtzIG9mIGdyYWluXSc7CivnqbQ+J1tjYXZlXSc7CivnqbY+J1tleGFtaW5lXSc7Civnqbk+J1toaWdoIGFuZCB2YXN0XSc7Civnqbo+J1tlbXB0eV0nOwor56m9PidbaG9sZV0nOwor56m/PidbcGVuZXRyYXRlXSc7CivnqoE+J1tzdWRkZW5seV0nOwor56qDPidbc2VjcmV0bHldJzsKK+eqhD4nW25hcnJvd10nOwor56qIPidbb2JzY3VyZV0nOwor56qSPidbc3RvcCB1cF0nOwor56qTPidbd2luZG93XSc7CivnqpU+J1tzbGVuZGVyXSc7CivnqpY+J1twaXRdJzsKK+eqlz4nW3dpbmRvd10nOwor56qYPidbZW1icmFzc2Fzc2VkXSc7Civnqp8+J1tob2xlXSc7Civnqqk+J1tuZXN0XSc7Civnqqo+J1tob2xsb3ddJzsKK+eqrj4nW3Bvb3JdJzsKK+eqrz4nW2tpbG5dJzsKK+eqsD4nW2tpbG5dJzsKK+eqtj4nW3Bvb3JdJzsKK+equj4nW3BlZXBdJzsKK+eqvz4nW21pbmUgc2hhZnRdJzsKK+ergz4nW2Z1cm5hY2VdJzsKK+erhD4nW3J1biBhd2F5XSc7Civnq4U+J1tob2xlXSc7Civnq4c+J1tzdXJuYW1lXSc7Civnq4g+J1tmdXJuYWNlXSc7Civnq4o+J1tzZWNyZXRseV0nOwor56uLPidbc3RhbmRdJzsKK+erjT4nW2RlY2FsaXRlcl0nOwor56uPPidba2lsb2xpdGVyXSc7Civnq5I+J1tzdHJhbmdlXSc7Civnq5M+J1ttaWxsaWxpdGVyXSc7Civnq5U+J1tkZWNpbGl0ZXJdJzsKK+ermT4nW3N0YW5kIHVwXSc7Civnq5o+J1tzdGFuZCBhbmQgd2FpdCBmb3IgbG9uZyB0aW1lXSc7Civnq5w+J1tkcmFnb25dJzsKK+ernT4nW2NvbWJpbmVdJzsKK+ernz4nW2ZpbmFsbHldJzsKK+eroD4nW2NvbXBvc2l0aW9uXSc7Civnq6E+J1toZWN0b2xpdGVyXSc7Civnq6I+J1t3YWl0IGZvcl0nOwor56ujPidbdGVybWluYXRlXSc7Civnq6U+J1tjaGlsZF0nOwor56umPidbcmV2ZXJlXSc7Civnq6o+J1twZXJwZW5kaWN1bGFyXSc7Civnq60+J1twdXQgZm9ydGggZ3JlYXQgZWZmb3J0XSc7Civnq68+J1tlbmRdJzsKK+ersD4nW2NlbnRpbGl0ZXJdJzsKK+ertj4nW2NvbnRlbmRdJzsKK+eruD4nW2NvbnRlbmRdJzsKK+eruT4nW2JhbWJvb10nOwor56u6PidbaW5kaWFdJzsKK+ervz4nW2JhbWJvbyBwb2xlXSc7CisjIuesgj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56yEPidbaGFpcnBpbl0nOwor56yGPidbYmFtYm9vIGZlbmNlXSc7CivnrIg+J1tiYW1ib28gYm94IHVzZWQgY2FycnkgYm9va3NdJzsKK+esij4nW2xhZGxlXSc7CivnrIs+J1tiYW1ib28gc2hvb3RzXSc7CivnrI8+J1t0YWJsZXQgaGVsZCBieSBzb21lb25lIGhhdmluZyBhdV0nOwor56yRPidbc21pbGVdJzsKKyMi56yYPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnrJk+J1tzbWFsbCBnb3VyZC1zaGFwZWQgbXVzaWNhbCBpbnN0cnVtZW50XSc7CivnrJs+J1tiYW1ib28gZmx1dGVdJzsKK+esnj4nW2JhbWJvbyByb2QgdXNlZCBmb3IgYmVhdGluZ3NdJzsKK+esoD4nW2JhbWJvbyBoYXRdJzsKK+espT4nW2EgaGFtcGVyXSc7CivnrKY+J1tpLmQuIHRhZ10nOwor56yoPidbZm9vbGlzaF0nOwor56ysPidbc2VxdWVuY2VdJzsKK+essz4nW2EgcmVlZCBsZWFmIHdoaXN0bGVdJzsKK+estT4nW2EgYmFtYm9vIGZvcm1dJzsKKyMi56y2PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnrLk+J1tzbWFsbCBiYW1ib29dJzsKK+ethT4nW2JhbWJvbyBicnVzaF0nOwor562GPidbd3JpdGluZyBicnVzaF0nOwor562IPidbYXJyb3cgZW5kXSc7CivnrYk+J1tyYW5rXSc7CivnrYs+J1ttdXNjbGVzXSc7CivnrYw+J1tiYW1ib28gZmlzaCB0cmFwXSc7CivnrY0+J1tiYW1ib28gc2hvb3RdJzsKK+etjz4nW3JhZnRdJzsKK+etkD4nW2JhbWJvbyBiYXNrZXQgb3IgY2hlc3RdJzsKK+etkT4nW2FuY2llbnQgbHV0ZV0nOwor562SPidbdGhpY2sgcGllY2Ugb2YgYmFtYm9vXSc7CivnrZQ+J1thbnN3ZXJdJzsKK+etlj4nW3NjaGVtZV0nOwor562dPidbc3RyaW5nZWQgbXVzaWNhbCBpbnN0cnVtZW50XSc7CivnraU+J1tyb3VuZC1zaGFwZWQgYmFtYm9vIGJhc2tldCBmb3JdJzsKK+etpz4nW2JhbWJvbyB3YXRlciBwaXBlXSc7Civnraw+J1tyZWVkIG9mIGEgbG9vbV0nOwor562uPidbZGl2aW5hdGlvbiB3aXRoIHN0YWxrcyBvZiBwbGFudHNdJzsKK+etsD4nW2NhYmxlXSc7CivnrbE+J1tkd2FyZiBiYW1ib29dJzsKK+ettD4nW3R5cGUgb2YgZ3Jhc3MgdXNlZCBpbiBkaXZpbmF0aW9uXSc7CivnrbU+J1tiYW1ib28gbWF0XSc7Civnrbo+J1tiYW1ib28gYmFza2V0IG9yIGNoZXN0XSc7CivnroY+J1tmaW5lLXRvb3RoZWQgY29tYl0nOwor566HPidbbnVtZXJhcnkgYWRqdW5jdF0nOwor566LPidbbm90ZV0nOwor566NPidbaG9vcF0nOwor566PPidbc3RyaW5nZWQgbXVzaWNhbCBpbnN0cnVtZW50XSc7CivnrpI+J1ticm9vbV0nOwor566UPidbcmVlZCBzY3JlZW5dJzsKK+eulT4nW3NpZXZlXSc7Civnrpc+J1tjb3VudF0nOwor566YPidbZmluZSBiYW1ib29dJzsKK+eumT4nW3F1aXZlcl0nOwor566aPidbYnJpZWYgbm90ZV0nOwor566cPidbYW5jaWVudCBzdHJpbmcgbXVzaWMgaW5zdHJ1bWVudF0nOwor566dPidbdHdlZXplcnNdJzsKKyMi566fPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnrqE+J1twaXBlXSc7Civnrqo+J1tzbWFsbCBiYW1ib28gYmFza2V0IGZvciBob2xkaW5nXSc7Civnrq0+J1thcnJvd10nOwor566xPidbY2FzZV0nOwor5660PidbbmVlZGxlXSc7Civnrrg+J1tjaG9wc3RpY2tzXSc7Civnr4A+J1trbm90XSc7Civnr4E+J1tiYW1ib28gZ3JvdmVdJzsKK+evhD4nW3BhdHRlcm5dJzsKK+evhj4nW3NlYWwgc2NyaXB0XSc7Civnr4c+J1tjaGFwdGVyXSc7Civnr4k+J1tidWlsZF0nOwor56+LPidbcmF0dG9uIGJveF0nOwor56+MPidbYW5jaWVudCBtdXNpYyBpbnN0cnVtZW50XSc7Civnr48+J1tpbmxheV0nOwor56+dPidbYmFtYm9vIGJhc2tldF0nOwor56+gPidbZHdhcmYgYmFtYm9vXSc7Civnr6Q+J1tkZWVwXSc7Civnr6U+J1tidWxnbGVdJzsKK+evpj4nW2ZpbmUtdG9vdGhlZCBjb21iXSc7Civnr6k+J1tzaWV2ZV0nOwor56+tPidbY2FnZV0nOwor56+zPidbd2lja2VyXSc7CisjIuevtj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor56+3PidbYXduaW5nXSc7CivnsIA+J1tiZWQgbWF0XSc7CivnsIc+J1tzd2FybV0nOwor57CNPidbYmFtYm9vIGJhc2tldF0nOwor57CRPidbYSBjb2lyIHJhaW5jb2F0XSc7CivnsJI+J1t1c3VycF0nOworIyLnsJM+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ewlD4nW2EgY29pciByYWluY29hdF0nOworIyLnsJc+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+ewnz4nW2JhbWJvbyBtYXRdJzsKK+ewoT4nW3NpbXBsZV0nOwor57CjPidbYmFtYm9vIGJhc2tldCBmb3IgY2FycnlpbmcgZWFydGhdJzsKK+ewpz4nW3JlZWQgb2Ygd29vZHdpbmQgaW5zdHJ1bWVudF0nOwor57CqPidbaGFpcnBpbl0nOwor57CrPidbbXVzaWNhbCBpbnN0cnVtZW50IGxpa2UgcGFuLXBpcGVzXSc7CivnsLc+J1tlYXZlcyBvZiBob3VzZV0nOwor57C4Pidbd2lubm93ZXJdJzsKK+ewvT4nW3NpZ25dJzsKK+ewvj4nW2EgYmxpbmRdJzsKK+ewvz4nW3JlZ2lzdGVyXSc7CivnsYA+J1tyZWNpdGVdJzsKK+exgz4nW2Jhc2tldF0nOwor57GMPidbY2hpcF0nOwor57GNPidbcmVjb3JkXSc7CivnsY8+J1tmbGFnXSc7CivnsZA+J1tjbGltYmluZyBwbGFudHNdJzsKK+exlD4nW2JhbWJvbyBiYXNrZXRdJzsKK+exlj4nW3RhbGx5XSc7CivnsZg+J1tjbGltYmluZyBwbGFudHNdJzsKK+exnz4nW2JhbWJvbyBmbHV0ZV0nOwor57GgPidbY2FnZV0nOwor57GkPidbdGFsbHldJzsKK+expT4nW2tleV0nOwor57GsPidbYmFtYm9vIG9yIHdvb2RlbiBmZW5jZV0nOwor57GzPidbaHVsbGVkIG9yIGh1c2tlZCB1bmNvb2tlZCByaWNlXSc7CivnsbU+J1tkbV0nOwor57G+PidbdW5odWxsZWQgcmljZV0nOwor57KBPidba21dJzsKK+eygj4nW3N1cm5hbWVdJzsKK+eygz4nW2VtcHR5IGh1c2tzIG9mIGdyYWluXSc7Civnsok+J1twb3dkZXJdJzsKK+eyiz4nW3B1cmVdJzsKK+eyjT4nW21tXSc7CisjIueykD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57KSPidbZ3JhaW5dJzsKK+eylT4nW2xlZXNdJzsKK+eylz4nW3JvdWdoXSc7Civnspg+J1t2aXNjb3VzXSc7Civnsps+J1twYXkgcmVzcGVjdHNdJzsKK+eynz4nW3VuaHVza2VkIG1pbGxldF0nOworIyLnsqE+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eyoj4nW2dyYWluIG9mZmVyZWQgaW4gcml0dWFsIHNhY3JpZmljXSc7CivnsqQ+J1tHdWFuZ2RvbmcgYW5kIEd1YW5neGkgcHJvdmluY2VzXSc7CivnsqU+J1tyaWNlIGdydWVsXSc7Civnsqc+J1t0b2lsZXRdJzsKK+eyqD4nW2htXSc7CisjIueyqz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLnsq0+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+eyrj4nW2Zvb2RdJzsKK+eysT4nW2JldHRlciB2YXJpZXRpZXMgb2YgbWlsbGV0XSc7CivnsrI+J1twb2xpc2hdJzsKK+eysz4nW25vbi1nbHV0aW5vdXMgcmljZV0nOwor57K5PidbcHVyZV0nOwor57K9PidbZHVtcGxpbmcgbWFkZSBvZiBnbHV0aW5vdXMgcmljZV0nOwor57K+PidbZXNzZW5jZV0nOworIyLns4A+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi57OCPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivns4U+J1tibGVuZF0nOwor57OKPidbcGFzdGVdJzsKK+ezjj4nW21tXSc7Civns5I+J1tmb29kIGZvciBhIGpvdXJuZXldJzsKK+ezlj4nW3N1Z2FyXSc7CisjIuezmD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57OcPidbcmljZSBncnVlbF0nOwor57OePidbbWFudXJlXSc7Civns58+J1tzZWRpbWVudF0nOwor57OgPidbY2hhZmZdJzsKK+ezoj4nW3JpY2Ugc25hY2tzXSc7Civns6c+J1tmb29kXSc7Civns68+J1tnbHV0aW5vdXMgcmljZV0nOwor57OyPidbdW5wb2xpc2hlZCByaWNlXSc7Civns7Q+J1twdXJjaGFzZSBncmFpbnNdJzsKK+eztj4nW3NlbGwgZ3JhaW5zXSc7Civns7g+J1tzaWxrXSc7Civns7o+J1t0byBjb2xsYWJvcmF0ZV0nOwor57O7Pidbc3lzdGVtXSc7Civns74+J1tpbnZlc3RpZ2F0ZV0nOwor57SAPidbcmVjb3JkXSc7CivntII+J1tuYW1lIG9mIGFuIGVtcGVyb3JdJzsKK+e0hD4nW3RyZWF0eV0nOwor57SFPidbcmVkXSc7CivntIY+J1tiZW5kXSc7CivntIo+J1tjb25mdXNlZF0nOwor57SLPidbbGluZV0nOwor57SNPidbYWRtaXRdJzsKK+e0kD4nW2tub3RdJzsKK+e0lD4nW3B1cmVdJzsKK+e0lT4nW3Nwb2lsZWQgc2lsa10nOwor57SXPidbZ2F1emVdJzsKK+e0mD4nW3N0cmluZ10nOwor57SZPidbcGFwZXJdJzsKK+e0mj4nW2xldmVsXSc7CivntJs+J1tpbiBkaXNvcmRlcl0nOwor57ScPidbY29uZnVzZWRdJzsKK+e0oD4nW3doaXRlIChzaWxrKV0nOwor57ShPidbc3Bpbl0nOwor57SiPidbbGFyZ2Ugcm9wZV0nOwor57SrPidbcHVycGxlXSc7CivntKw+J1traW5kIG9mIHRoaW4gc2lsa10nOwor57SuPidbdGllXSc7CivntK8+J1t0aXJlZF0nOwor57SwPidbZmluZV0nOwor57SyPidbYnJpZGxlXSc7CivntLM+J1tnaXJkbGVdJzsKK+e0tT4nW3JhbWllXSc7CivntLk+J1tjb250aW51ZV0nOwor57S6PidbZGFyayBibHVlIGNvbG9yXSc7CivntL8+J1tjaGVhdF0nOwor57WCPidbZW5kXSc7CivntYM+J1tzdHJpbmcgb24gbXVzaWNhbCBpbnN0cnVtZW50XSc7CivntYQ+J1tjbGFzc10nOwor57WFPidbdW5saW5lZCBnYXJtZW50XSc7CivntYY+J1tsb29wXSc7CisjIue1iz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57WMPidbY2xhc3NpYyB3b3Jrc10nOwor57WOPidbYmFzdGVdJzsKK+e1jz4nW3JvcGVdJzsKK+e1kD4nW2tub3RdJzsKK+e1lj4nW2ZpbmUgc2lsa3NdJzsKK+e1mz4nW3NpbGsgYnJhaWRdJzsKK+e1nj4nW3R3aXN0XSc7CivntaE+J1tlbm1lc2hdJzsKK+e1oj4nW3ZhcmllZ2F0ZWRdJzsKK+e1oz4nW3RvIGJhc3RlIGZvciBzZXdpbmddJzsKK+e1pj4nW2dpdmVdJzsKK+e1qD4nW3NpbGtdJzsKK+e1rj4nW3dhc3RlIGNvdHRvbl0nOwor57WxPidbZ292ZXJuXSc7CivntbI+J1tzaWxrXSc7CivntbM+J1tkZWVwIHJlZF0nOwor57W1PidbZHJhd10nOwor57W2PidbY3V0XSc7Civntbk+J1traW5kIG9mIHRoaWNrIHN0aWZmIHNpbGtdJzsKKyMi57W9PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivntok+J1tlbWJyb2lkZXJdJzsKK+e2jz4nW3Nvb3RoZV0nOwor57aTPidbY2xhc3NpYyB3b3Jrc10nOwor57aZPidbY29udGludWVdJzsKK+e2mj4nW2NvbnRpbnVlXSc7CisjIue2mz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57acPidbYXJyYW5nZSB0aHJlYWRzIGZvciB3ZWF2aW5nXSc7CisjIue2nz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57aiPidbc2lsayBjbG90aF0nOwor57ajPidbYWZmZWN0aW9uYXRlXSc7Civntqs+J1tsaW5lXSc7Civntqw+J1tzaWxrIHJpYmJvbiBhdHRhY2hlZCBhcyBhIHNlYWxdJzsKK+e2rT4nW21haW50YWluXSc7Civntq4+J1tlbWJyb2lkZXJlZCBiYW5uZXJdJzsKK+e2rz4nW2JyYWlkXSc7CivntrA+J1t0byBzdHJpbmcgdG9nZXRoZXJdJzsKK+e2sT4nW2hlYXZ5IHJvcGVdJzsKK+e2sj4nW25ldF0nOwor57a0PidbcGF0Y2ggdG9nZXRoZXJdJzsKK+e2tT4nW3Zhcmljb2xvcmVkIHNpbGtdJzsKK+e2uD4nW2dyZWVuIHNpbGsgdGhyZWFkIG9yIHRhc3NlbF0nOwor57a6PidbZmluZSB0aGluIHNpbGtdJzsKK+e2uz4nW3JpcHBlZCBzZWFtXSc7Civntr0+J1tncmFjZWZ1bF0nOwor57a+PidbdGhpbiBzaWxrXSc7Civntr8+J1tjb3R0b24gd2FkXSc7Civnt4c+J1tibGFjayBzaWxrXSc7Civnt4o+J1t0ZW5zZV0nOwor57eLPidbc2NhcmxldF0nOwor57ePPidbY29sbGVjdF0nOwor57eRPidbZ3JlZW5dJzsKK+e3kj4nW2VuZCBvZiB0aHJlYWRdJzsKKyMi57eVPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnt5g+J1tzZWFsXSc7Civnt5o+J1t0aHJlYWRdJzsKK+e3nD4nW2NvdHRvbiB3YWRdJzsKK+e3nT4nW3RvIHNldyBpbiBjbG9zZSBzdGl0Y2hlc10nOwor57eePidbc2F0aW5dJzsKK+e3oD4nW3RpZV0nOwor57ehPidbZmlzaGluZy1saW5lXSc7Civnt6Q+J1tjb3JkXSc7Civnt6g+J1trbml0XSc7Civnt6k+J1tzbG93XSc7Civnt6w+J1tkaXN0YW50XSc7Civnt68+J1t3b29mXSc7Civnt7I+J1tpbmRpc3RpbmN0XSc7Civnt7Q+J1twcmFjdGljZV0nOwor57e7PidbZGVsaWNhdGVdJzsKK+e4gT4nW2hlbV0nOwor57iEPidbcm9wZV0nOworIyLnuIQ+J1tyb3BlXSciLAor57iJPidbcmVkIHNpbGtdJzsKK+e4ij4nW2hhbmddJzsKK+e4iz4nW2NsaW1kIGRvd24gcm9wZV0nOworIyLnuJE+J1tmaW5lIHNpbGtdJyIsCivnuJs+J1t0byB0aWVdJzsKK+e4nj4nW3doaXRlIHJhdyBzaWxrXSc7CivnuJ8+J1tkZWNvcmF0aXZlXSc7CivnuKE+J1ttYXR0ZXJdJzsKK+e4oj4nW2JpbmRdJzsKK+e4oz4nW2NvdW50eV0nOwor57imPidbaW5kdWxnZSBpbl0nOwor57irPidbc2V3XSc7CivnuK4+J1tjb250cmFjdF0nOwor57ixPidbaW5kdWxnZSBpbl0nOwor57iyPidbY2hhaW4gb3Igcm9wZSB1c2VkIGJpbmQgY3JpbWluYWxdJzsKK+e4tT4nW3BsYWluIHNpbGtdJzsKK+e4tz4nW3RocmVhZF0nOwor57i5PidbbGlnaHQgYmx1ZSBzaWxrXSc7CisjIue4uj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57i7PidbaGFsdGVyIGZvciBveF0nOwor57i9PidbY29sbGVjdF0nOwor57i+Pidbc3Bpbl0nOwor57mBPidbY29tcGxpY2F0ZWRdJzsKK+e5gz4nW2JpbmRdJzsKK+e5hj4nW3dpbmQgYXJvdW5kXSc7CivnuYo+J1tmaW5lXSc7CivnuYs+J1thdHRhY2hdJzsKK+e5jT4nW2VtYnJvaWRlcl0nOwor57mUPidbd2VhdmVdJzsKK+e5lT4nW3JlcGFpcl0nOwor57mWPidbdW1icmVsbGFdJzsKK+e5mT4nW2ludGVycHJldF0nOwor57maPidbd2luZCByb3VuZF0nOworIyLnuZ0+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e5nj4nW2VudHdpbmVdJzsKK+e5pj4nW3N0cmluZyBvZiBjb3BwZXIgY29pbnNdJzsKKyMi57mnPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnuak+J1tyb3BlXSc7Civnuao+J1tkcmF3XSc7Civnua0+J1tjb2Nvb25dJzsKK+e5sD4nW3RvIHJlZWwgc2lsayBmcm9tIGNvY29vbnNdJzsKK+e5uT4nW3VucmF2ZWwgb3IgdW5yZWVsIHNpbGtdJzsKK+e5uz4nW2ZpbmUgc2lsayBndWF6ZV0nOwor57m8PidbY29udGludWVdJzsKK+e5vT4nW2Zsb3VyaXNoaW5nXSc7CisjIue5vz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57qCPidbZWRpdF0nOworIyLnuoM+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+e6iD4nW3BhdHRlcm5lZCBzaWxrXSc7CisjIue6iT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor57qMPidbY29udGludWVdJzsKK+e6jj4nW2ZpbmVdJzsKK+e6jz4nW3dyYXBdJzsKKyMi57qQPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivnupI+J1t3cmFwXSc7CivnupM+J1tjaGluIHN0cmFwXSc7CivnupQ+J1t0YWxlbnRdJzsKK+e6lj4nW2ZpbmVdJzsKK+e6mz4nW2EgYmFubmVyXSc7Civnupw+J1toYXdzZXJdJzsKK+e8tj4nW2VhcnRoZW4gY3JvY2sgb3IgamFyXSc7CivnvLg+J1tlYXJ0aGVuIGp1Z10nOwor57y6PidbYmUgc2hvcnQgb2ZdJzsKK+e9hT4nW2NyYWNrXSc7CivnvYw+J1tsb25nIG5lY2tlZCBqYXIgb3IgYm90dGxlXSc7CivnvY0+J1tsYXJnZSBlYXJ0aGVud2FyZSB3aW5lIGphcl0nOwor572OPidbYW4gZWFydGhlbndhcmUgamFyXSc7CivnvZA+J1tqYXJdJzsKK+e9kT4nW25ldF0nOwor572UPidbbmV0XSc7CivnvZU+J1tyYXJlXSc7CivnvZg+J1tzY3JlZW4gdXNlZCBpbiBhbmNpZW50IHRpbWVzXSc7CivnvZ8+J1tuZXRdJzsKK+e9oD4nW2FuaW1hbCB0cmFwXSc7CisjIue9pz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor572oPidbbWVkaWNhbCBjb21wcmVzc10nOwor572pPidbYmFza2V0IGZvciBjYXRjaGluZyBmaXNoXSc7Civnvao+J1tjcmltZV0nOwor572rPidbaGluZGVyXSc7Civnva4+J1twbGFjZV0nOwor572wPidbcGVuYWx0eV0nOwor572yPidbcHVibGljIG9mZmljZV0nOwor5721PidbYWNjdXNlXSc7Civnvbc+J1tjZWFzZV0nOwor5724PidbcGVuYWx0eV0nOwor5725Pidbc29ycm93XSc7CisjIue+gj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor576DPidbY292ZXItY2xvdGhdJzsKK+e+hT4nW25ldCBmb3IgY2F0Y2hpbmcgYmlyZHNdJzsKK+e+hj4nW2Jyb3duIGJlYXJdJzsKK+e+hz4nW2lubl0nOwor576IPidbaGFsdGVyXSc7Civnvoo+J1tzaGVlcF0nOwor576MPidbcWlhbmcgbmF0aW9uYWxpdHldJzsKK+e+jj4nW2JlYXV0aWZ1bF0nOwor576UPidbbGFtYl0nOwor576aPidbc3BlY2llcyBvZiBhbnRlbG9wZV0nOwor576dPidbcmFtXSc7Civnvp4+J1tkaXNncmFjZV0nOwor576jPidbZ3JvdXBdJzsKK+e+pD4nW2dyb3VwXSc7Civnvqg+J1tlbnZ5XSc7Civnvqk+J1tyaWdodCBjb25kdWN0XSc7Civnvq4+J1tzb3VwXSc7Civnvq8+J1t3ZXRoZXJdJzsKK+e+sj4nW2FuY2llbnQgZW1wZXJvcl0nOwor5762PidbcmFuayBvZG9yXSc7Civnvrg+J1t3ZWFrXSc7Civnvrk+J1tzb3VwXSc7Civnvr0+J1tmZWF0aGVyXSc7Civnv4E+J1tvbGQgbWFuXSc7Civnv4U+J1t3aW5nc10nOwor57+GPidbY29sb3IgZ3JlZW5dJzsKK+e/ij4nW2ZseWluZ10nOwor57+MPidbYnJpZ2h0XSc7Civnv5I+J1twcmFjdGljZV0nOwor57+UPidbc29hcl0nOwor57+VPidbYWdyZWVdJzsKK+e/oD4nW2NvbG9yIGdyZWVuXSc7Civnv6E+J1traW5nZmlzaGVyXSc7Civnv6Y+J1tzY2lzc29yc10nOwor57+pPidbZmx5XSc7Civnv6s+J1tjYXJlbGVzc10nOwor57+wPidbd3JpdGluZyBicnVzaF0nOwor57+zPidbc2hhZGVdJzsKK+e/uT4nW3R1cm4gdXBdJzsKK+e/uz4nW2ZsaXAgb3Zlcl0nOwor57+8Pidbd2luZ3NdJzsKK+iAgD4nW3NoaW5lXSc7CivogIE+J1tvbGRdJzsKK+iAgz4nW2V4YW1pbmVdJzsKK+iAhD4nW2VsZGVybHkgcGVyc29uXSc7CivogIU+J1t0aGF0IHdoaWNoXSc7CivogIY+J1ttYW4gb2Ygc2l4dHldJzsKK+iAiz4nW2FnZWRdJzsKK+iAjD4nW2FuZF0nOwor6ICQPidbZW5kdXJlXSc7CivogJI+J1toYW5kbGUgb2YgcGxvd10nOwor6ICVPidbcGxvd10nOwor6ICXPidbY29uc3VtZV0nOwor6ICYPidbd2VlZF0nOwor6ICZPidbcmFrZV0nOwor6ICcPidbc3BhZGUtc2hhcGVkIHRvb2xdJzsKK+iAoT4nW2hvZV0nOwor6ICoPidbaG9lXSc7CivogLM+J1tlYXJdJzsKK+iAtj4nW3VzZWQgaW4gdHJhbnNsaXRlcmF0aW9uXSc7CivogLs+J1tzaGFtZV0nOwor6IC9PidbaW5kdWxnZSBpbl0nOwor6IC/PidbYnJpZ2h0XSc7CivogYY+J1tsaXN0ZW5dJzsKK+iBij4nW3NvbWV3aGF0XSc7CivogZI+J1tjbGFtb3JdJzsKK+iBlj4nW2hvbHldJzsKK+iBmD4nW2VuZ2FnZV0nOwor6IGaPidbYXNzZW1ibGVdJzsKK+iBnj4nW2hlYXJdJzsKK+iBnz4nW3Nvbi1pbi1sYXddJzsKK+iBoT4nW2ludGVsbGlnZW50XSc7CisjIuiBoj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6IGoPidbY29ubmVjdF0nOwor6IGvPidbY29ubmVjdF0nOwor6IGwPidbaW50ZWxsaWdlbnRdJzsKK+iBsj4nW3NvdW5kXSc7CivogbM+J1t1cmdlIG9uXSc7CivogbQ+J1toZWFyXSc7CivogbY+J1t3aGlzcGVyXSc7Civogbc+J1tkdXR5XSc7Civogbk+J1tlYXJ3YXhdJzsKK+iBvT4nW2hlYXJdJzsKK+iBvj4nW2RlYWZdJzsKK+iBvz4nW3dyaXRpbmcgYnJ1c2hdJzsKK+iChD4nW2xlYXJuXSc7CivogoU+J1twYXkgcmVzcGVjdHNdJzsKK+iChj4nW2luZHVsZ2VdJzsKK+iChz4nW2JlZ2luXSc7Civogok+J1tmbGVzaF0nOwor6IKLPidbcmlic10nOwor6IKMPidbbXVzY2xlIHRpc3N1ZV0nOwor6IKTPidbcmVnaW9uIGJldHdlZW4gaGVhcnQgYW5kIGRpYXBocmFnbV0nOwor6IKWPidbbG9vayBsaWtlXSc7Civogpg+J1tlbGJvd10nOwor6IKaPidbYmVsbHldJzsKK+iCmz4nW2FudXNdJzsKK+iCnT4nW2xpdmVyXSc7CivogqE+J1t0aGlnaHNdJzsKK+iCoj4nW2h1bWFuIGxpbWJzXSc7CivogqU+J1tmYXRdJzsKK+iCqT4nW3Nob3VsZGVyc10nOwor6IKqPidbYW5pbWFsIGZhdF0nOwor6IKsPidbd2FydF0nOwor6IKtPidbZmF0XSc7Civogq8+J1t3aWxsaW5nXSc7CivogrE+J1tmb3JlYXJtXSc7CivogrI+J1twcm9kdWNlXSc7CivogrQ+J1tjb29rZWQgb3IgcHJlcGFyZWQgbWVhdF0nOwor6IK6PidbbHVuZ3NdJzsKK+iDgz4nW3N0b21hY2hdJzsKK+iDhD4nW2hlbG1ldF0nOwor6IOGPidbZ2FsbCBibGFkZGVyXSc7Civog4w+J1tiYWNrXSc7Civog44+J1t1bmJvcm4gY2hpbGRdJzsKK+iDlj4nW2ZhdF0nOwor6IOZPidbZm9vZCBvZmZlcmVkIGluIHNhY3JpZmljaWFsIHNlcnZdJzsKK+iDmj4nW2VtYnJ5b10nOwor6IObPidbdGhlIHNob3VsZGVyXSc7Civog50+J1tjYWxsb3VzXSc7Civog54+J1t3b21iXSc7Civog6E+J1tyZWNrbGVzc2x5XSc7Civog6Q+J1toZWlyXSc7Civog6U+J1thbGxdJzsKK+iDrz4nW3BlbHZpc10nOwor6IOxPidbYmxhZGRlcl0nOwor6IO0PidbdGhlIGxhcmdlIGludGVzdGluZV0nOwor6IO4PidbYnJlYXN0XSc7Civog7w+J1tjYWxsdXNdJzsKK+iDvT4nW2JlIGFibGVdJzsKK+iEgj4nW2ZhdF0nOwor6ISFPidbcmlic10nOwor6ISGPidbY3Jpc3BdJzsKK+iEhz4nW3JpYnNdJzsKK+iEiD4nW2Jsb29kIHZlc3NlbHNdJzsKK+iEiT4nW2Jsb29kIHZlc3NlbHNdJzsKK+iEij4nW3NwaW5lXSc7CivohJo+J1tsZWddJzsKK+iEmz4nW3NoaW5ib25lXSc7CivohKM+J1tsaXBzXSc7CivohKk+J1tkcmllZCBtZWF0ICh1c2VkIGFzIHRlYWNoZXJzIHBheW1lbnQgaW4gYW5jaWVudCB0aW1lcyldJzsKK+iErz4nW2RyaWVkIG1lYXRdJzsKK+iEsT4nW3Rha2Ugb2ZmXSc7CivohLM+J1ticmFpbl0nOwor6IS5Pidbc3dlbGxdJzsKK+iEvj4nW3NwbGVlbl0nOwor6IWGPidbcHJvc3Blcm91c10nOwor6IWLPidbYXJtcGl0XSc7CivohY4+J1traWRuZXlzXSc7CivohZA+J1tyb3RdJzsKK+iFkT4nW2Jvd2Vsc10nOwor6IWTPidbY2FsZl0nOwor6IWUPidbY2hlc3QgY2F2aXR5XSc7CivohZU+J1t3cmlzdF0nOwor6IWfPidbdmFnaW5hXSc7CivohaU+J1tyYXcgbWVhdF0nOwor6IWmPidbYnJhaW5dJzsKK+iFqz4nW3N3ZWxsXSc7Civoha4+J1tsb3dlciBwYXJ0IG9mIGZhY2VdJzsKK+iFsD4nW3dhaXN0XSc7CivohbE+J1t0ZW5kb25zXSc7CivohbQ+J1tmYXRdJzsKK+iFuD4nW2ludGVzdGluZXNdJzsKK+iFuT4nW3N0b21hY2hdJzsKK+iFuj4nW2dsYW5kXSc7Civohb8+J1tsZWdzXSc7CivohoA+J1t1cHBlciBhcm1dJzsKK+iGgj4nW2JhY2tib25lXSc7CivohoM+J1tmYXRdJzsKK+iGiD4nW2RpYXBocmFnbV0nOwor6IaKPidbc2hvdWxkZXJzXSc7Civoho8+J1tncmVhc2VdJzsKK+iGkz4nW2ludGVzdGluZXNdJzsKK+iGlT4nW2hvbGxvd10nOwor6IaaPidbc2tpbl0nOwor6IacPidbbWVtYnJhbmVdJzsKK+iGnT4nW2tuZWVdJzsKK+iGoD4nW2dsdWVdJzsKK+iGoz4nW3ZhZ2luYV0nOworIyLohqQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iGqD4nW3N3ZWxsXSc7Civohqk+J1tncmVhc3ldJzsKK+iGsD4nW2Nvb2sgbWVhdCBmb3Igc2FjcmlmaWNlIG9yIG9mZmVyXSc7CivohrM+J1ttZWFsc10nOwor6Ia1PidbcGFuY3JlYXNdJzsKKyMi6Ia4PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivohro+J1ticmVhc3RdJzsKK+iGvT4nW2dhbGwgYmxhZGRlcl0nOwor6Ia+PidbbWluY2VkIG1lYXQgb3IgZmlzaF0nOwor6Ia/PidbcHVzXSc7Civoh4A+J1tidXR0b2Nrc10nOwor6IeCPidbYXJtXSc7Civoh4Y+J1tjaGVzdF0nOwor6IeIPidbeWVhciBlbmQgc2FjcmlmaWNlXSc7Civoh4k+J1tmYWNlXSc7Civoh40+J1thYmRvbWluYWwgYXJlYSBvZiBjcmFiXSc7Civoh5E+J1tzb2Z0XSc7Civoh5M+J1tpbnRlcm5hbCBvcmdhbnNdJzsKK+iHmD4nW3llYXIgZW5kIHNhY3JpZmljZV0nOwor6IeZPidbcm91Z2VdJzsKK+iHmj4nW2FycmFuZ2UgaW4gb3JkZXJdJzsKK+iHnz4nW2ludGVybmFsIG9yZ2Fuc10nOwor6IegPidbc21hbGwgbHVtcCBvZiBtZWF0XSc7Civoh6M+J1ttaW5pc3Rlcl0nOwor6IelPidbbGllIGRvd25dJzsKK+iHpz4nW2dvb2RdJzsKK+iHqD4nW2RyYXcgbmVhcl0nOwor6IeqPidbc2VsZl0nOwor6IetPidbc21lbGxdJzsKK+iHsz4nW3JlYWNoXSc7Civoh7Q+J1tzZW5kXSc7Civoh7o+J1t0b3dlcl0nOwor6Ie7PidbcmVhY2hdJzsKK+iHvD4nW21vcnRhcl0nOwor6Ie+PidbbW9tZW50XSc7CivoiIE+J1tjYXJyeSBvbiBvbmUnJ3Mgc2hvdWxkZXJdJzsKK+iIgj4nW2dyaW5kIGluIG1vcnRhcl0nOwor6IiFPidbbW90aGVyJydzIGJyb3RoZXJdJzsKK+iIhz4nW2FuZF0nOwor6IiIPidbdGhyaXZlXSc7CivoiIk+J1tyYWlzZV0nOwor6IiKPidbb2xkXSc7CivoiIw+J1t0b25ndWVdJzsKK+iIjT4nW2hvdXNlXSc7CivoiI4+J1tob3VzZV0nOwor6IiQPidbbGljayB3aXRoIHRvbmd1ZV0nOwor6IiSPidbb3BlbiB1cF0nOwor6IiWPidbc3RvcmVdJzsKK+iIlz4nW3N0b3JlXSc7CivoiJg+J1thIG1hbnNpb25dJzsKK+iImz4nW29wcG9zZV0nOwor6IicPidbbGVnZW5kYXJ5IHJ1bGVyXSc7CivoiJ4+J1tkYW5jZV0nOwor6IifPidbYm9hdF0nOwor6IipPidbYm9hdF0nOwor6IiqPidbc2FpbF0nOwor6IirPidbZmFuY3kgYm9hdF0nOwor6IisPidbc29ydF0nOwor6IiuPidbYm93IG9yIHByb3cgb2YgYm9hdF0nOwor6IizPidbc3Rlcm4gb2Ygc2hpcF0nOwor6Ii1PidbcnVkZGVyXSc7CivoiLY+J1tsYXJnZV0nOwor6Ii3Pidbc2lkZXMgb2YgYm9hdF0nOwor6Ii4PidbbGFyZ2UgYm9hdF0nOwor6Ii5Pidbc2hpcF0nOwor6ImAPidbW25vdCBmb3VuZCBpbiBkaWN0aW9uYXJ5XV0nOwor6ImHPidbc21hbGwgYm9hdF0nOwor6ImYPidbY291bnRlciBmb3Igc2hpcHNdJzsKK+iJmT4nW2hvbGQgb2Ygc2hpcF0nOwor6ImaPidbc2hpcF0nOworIyLoiZ0+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iJnz4nW2FuY2llbnQgd2Fyc2hpcF0nOwor6ImiPidbYSBtYXN0XSc7CivoiaQ+J1t0byBtb29yIGEgYm9hdCB0byB0aGUgYmFua10nOwor6ImmPidbd2Fyc2hpcF0nOwor6ImoPidbbG9uZyBhbmQgbmFycm93IHdhci1ib2F0XSc7Civoiao+J1tvYXJdJzsKK+iJqz4nW2JvdyBvciBwcm93IG9mIGJvYXRdJzsKK+iJrj4nW3NldmVudGggb2YgZWlnaHQgZGlhZ3JhbXNdJzsKK+iJrz4nW2dvb2RdJzsKK+iJsT4nW2RpZmZpY3VsdF0nOwor6ImyPidbY29sb3JdJzsKK+iJtj4nW2JlYXV0aWZ1bF0nOwor6Im3PidbYmVhdXRpZnVsXSc7Civoibg+J1tncmFzc10nOwor6Im+PidbYXJ0ZW1pc2lhXSc7Civoios+J1t0YXJvXSc7Civoio0+J1twZW9ueV0nOwor6IqSPidbbWlzY2FudGh1cyBzaW5lbnNpc10nOwor6IqZPidbaGliaXNjdXNdJzsKK+iKnT4nW3B1cnBsaXNoIG11c2hyb29tIHRob3VnaHQgcHJvbW90XSc7Civoip8+J1ttb3ddJzsKK+iKpT4nW211c3RhcmQgcGxhbnRdJzsKK+iKpj4nW3J1c2hlc10nOwor6IqrPidbZGFwaG5lIGdlbmt3YV0nOwor6IqsPidbZnJhZ3JhbmNlXSc7Civoiq0+J1twbGFudGFpbiBvciBiYW5hbmEgcGFsbV0nOwor6IqvPidbcGl0aCBmcm9tIHJ1c2ggKGp1bmN1cyBlZmZ1c3VzKV0nOwor6IqxPidbZmxvd2VyXSc7CivoirM+J1tmcmFncmFudF0nOwor6Iq4PidbcnVlXSc7Civoirk+J1tjZWxlcnldJzsKK+iKuz4nW21vd10nOwor6Iq9PidbYnVkXSc7Civoi4U+J1tjdXQgb2ZmXSc7Civoi5E+J1twYXN0dXJlXSc7Civoi5I+J1tsdXNoXSc7Civoi5M+J1tmdW5ndXNdJzsKK+iLlD4nW21vc3NdJzsKK+iLlz4nW3Nwcm91dHNdJzsKK+iLmT4nW3BpZ3N0eV0nOwor6IubPidbc21hbGxdJzsKK+iLnD4nW2Nsb3Zlcl0nOwor6IuePidbdmFyaWV0eSBvZiBydXNoXSc7Civoi58+J1tjYXJlbGVzc10nOwor6IuhPidbYmFybGV5XSc7Civoi6M+J1traW5kIG9mIGxldHR1Y2VdJzsKK+iLpT4nW2lmXSc7Civoi6Y+J1tiaXR0ZXJdJzsKK+iLpz4nW2NoaW5hIGdyYXNzXSc7Civoi6s+J1tydXNoIG9yIHN0cmF3IG1hdHRpbmddJzsKK+iLsT4nW3BldGFsXSc7CisjIuiLsz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Iu0Pidbc2Fja2Nsb3RoXSc7Civoi7k+J1thcnRlbWlzaWFdJzsKK+iLuj4nW2JlcnJpZXNdJzsKK+iLuz4nW2tpbmQgb2YgaGVyYl0nOwor6IyCPidbdGhpY2tdJzsKK+iMgz4nW3N1cm5hbWVdJzsKK+iMhD4nW2VnZ3BsYW50XSc7CivojIU+J1tyZWVkc10nOwor6IyGPidbc3BlY2llcyBvZiBncmFzc10nOwor6IyJPidbd2hpdGUgamFzbWluZV0nOwor6IyOPidbc3RlbV0nOwor6IyWPidbYWxsaXVtIHZpY3RvcmlhbGlzXSc7CivojJc+J1t0ZWFdJzsKKyMi6IyXPidbdGVhXSciLAor6IycPidbbWFkZGVyXSc7CisjIuiMoz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6IyoPidbY2FsdHJvcF0nOwor6IyrPidbdmFzdF0nOwor6IyvPidbY2hpbmEgcm9vdF0nOwor6IyxPidbZG9nd29vZF0nOwor6IyyPidbbm93XSc7CivojLQ+J1tmZW5uZWxdJzsKK+iMtT4nW2N1c2hpb25dJzsKK+iMtj4nW3RlYV0nOwor6Iy4Pidbc29mdF0nOwor6Iy5Pidbcm9vdHNdJzsKK+iNgD4nW3N1cm5hbWVdJzsKK+iNhT4nW2Fuc3dlcjogc21hbGwgYmVhbl0nOwor6I2JPidbZ3Jhc3NdJzsKK+iNij4nW3Rob3Juc10nOwor6I2PPidbYmVhbnNdJzsKK+iNkD4nW3JlcGVhdF0nOwor6I2SPidbd2FzdGVsYW5kXSc7CivojZg+J1t2aWxsYWdlXSc7CivojbM+J1tiZWFuc10nOworIyLojbU+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iNtz4nW2xvdHVzXSc7Civojbs+J1tyZWVkXSc7Civojbw+J1tiaXR0ZXIgdmVnZXRhYmxlXSc7CivojoU+J1thdHRlbmRdJzsKKyMi6I6HPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivojok+J1t3aGl0ZSBqYXNtaW5lXSc7Civojoo+J1t2aWxsYWdlXSc7Civojo4+J1traW5kIG9mIHNlZGdlIGdyYXNzXSc7CivojpM+J1ttb3NzXSc7CivojpY+J1tzdGVtXSc7Civojpo+J1tiYW1ib28gbWF0XSc7Civojp4+J1tzbWlsaW5nXSc7CisjIuiOnz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6I6gPidbd2VlZHNdJzsKK+iOoj4nW3BvZHMgb2YgbGVndW1pbm91cyBwbGFudHNdJzsKK+iOqD4nW2hlcmJdJzsKK+iOqj4nW2FydGVtaXNpYV0nOwor6I6rPidbZG8gbm90XSc7CivojrE+J1tnb29zZWZvb3RdJzsKK+iOtT4nW2RvZGRlcl0nOwor6I69PidbdGhpY2tldF0nOwor6I+BPidbZmxvd2VyIG9mIGxlZWsgZmFtaWx5XSc7Civoj4U+J1tjb2Fyc2UgZ3Jhc3NdJzsKK+iPij4nW2NocnlzYW50aGVtdW1dJzsKK+iPjD4nW211c2hyb29tXSc7Civoj44+J1tiZWF1dGlmdWwgamFkZV0nOwor6I+TPidbZnJ1aXRzXSc7Civoj5Y+J1tpcmlzXSc7Civoj5g+J1tjZWxlcnldJzsKK+iPnD4nW3ZlZ2V0YWJsZXNdJzsKK+iPnz4nW2RvZGRlcl0nOwor6I+gPidbc3BpbmFjaCBhbmQgc2ltaWxhciBncmVlbnNdJzsKK+iPqT4nW2hlcmJdJzsKK+iPqz4nW2NlbGVyeV0nOwor6I+vPidbZmxvd2VyeV0nOwor6I+wPidbd2lsZCByaWNlXSc7Civoj7E+J1t3YXRlci1jaGVzdG51dF0nOwor6I+yPidbZnJhZ3JhbnRdJzsKK+iPtD4nW3NtYWxsIGJ1ZGRoaXN0IG1vbmFzdGVyeV0nOworIyLoj7c+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iPuz4nW2FydGVtaXNpYV0nOwor6I+9PidbYmVhbnMgYW5kIHBlYXNdJzsKK+iQgz4nW2RlbnNlXSc7CivokIQ+J1tncmFwZXNdJzsKK+iQhz4nW2F2ZXJyaG9yYSBjYXJhbWJvbGFdJzsKK+iQiz4nW2x1eHVyaWFudCBmb2xpYWdlXSc7CivokIw+J1tidWRdJzsKK+iQjT4nW2R1Y2t3ZWVkXSc7CivokI4+J1t3aXRoZXJdJzsKKyMi6JCTPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivokKA+J1tidWRdJzsKKyMi6JCiPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivokKk+J1tzY2FuZGVudCBob3BdJzsKKyMi6JCqPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivokKw+J1t0ZW4gdGhvdXNhbmRdJzsKK+iQsT4nW2RheS1saWx5XSc7CivokLU+J1tsZXR0dWNlXSc7CivokLg+J1tkb2d3b29kXSc7CivokLw+J1tjYWx5eCBvZiBmbG93ZXJdJzsKK+iQvT4nW2ZhbGxdJzsKK+iRhj4nW3Jlc2VydmVdJzsKK+iRiT4nW2xlYWZdJzsKKyMi6JGOPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivokZc+J1ttYW5pZmVzdF0nOwor6JGbPidbZWRpYmxlIGJlYW5dJzsKK+iRoT4nW2dyYXBlc10nOwor6JGiPidbY292ZXJdJzsKK+iRoz4nW2RpcmVjdF0nOwor6JGmPidbcmVlZF0nOwor6JGpPidbZmxvd2Vyc10nOwor6JGrPidbYm90dGxlLWdvdXJkXSc7Civokaw+J1tidXJ5XSc7Civoka0+J1tidWxydXNoXSc7CisjIuiRrT4nW2J1bHJ1c2hdJyIsCivoka8+J1tsZWFmIG9mIGFuZ2VsaWNhIHBsYW50XSc7CivokbE+J1tzY2FsbGlvbnNdJzsKK+iRtT4nW3N1bmZsb3dlcl0nOwor6JG3PidbbWVhdCBkaWV0XSc7Civokbk+J1traW5kIG9mIGNocnlzYW50aGVtdW1dJzsKK+iRuj4nW3RoYXRjaF0nOwor6JKCPidbcGVkdW5jbGUgb3Igc3RlbSBvZiBwbGFudHNdJzsKKyMi6JKEPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivokos+J1tzdXJuYW1lXSc7CivokpA+J1tjb2xsZWN0XSc7CivokpQ+J1t0cmFuc3BsYW50XSc7Civokpk+J1tjb3Zlcl0nOwor6JKcPidbZ2FybGljXSc7Civokp8+J1tiZXRlbCBwZXBwZXJdJzsKK+iSoT4nW2J1cmRvY2tdJzsKK+iSrT4nW3RvIGN1dGdyYXNzXSc7CivokrI+J1t0eXBlIG9mIHJ1c2hdJzsKK+iSuD4nW3N0ZWFtXSc7Civokrk+J1tyZWVkXSc7Civokrs+J1tydXNoZXNdJzsKK+iSvD4nW2JsdWVdJzsKK+iSvz4nW211Z3dvcnRdJzsKK+iTgT4nW2FidW5kYW50XSc7Civok4Q+J1tzdG9yZV0nOwor6JOGPidbc3RyYXcgbWF0XSc7Civok4k+J1toaWJpc2N1c10nOwor6JOKPidbbHV4dXJpYW50IHZlZ2V0YXRpb25dJzsKK+iTiz4nW2NvdmVyXSc7Civok40+J1ttaWxmb2lsXSc7Civok5A+J1tzdHJhdyBiZWQgbWF0XSc7Civok5E+J1tyYWluIGNvYXQgbWFkZSBvZiBzdHJhd10nOwor6JOWPidbY2FzdG9yLW9pbCBwbGFudF0nOworIyLok5k+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iTmj4nW294YWxpYyAodXNlZCBpbiBjb21wb3VuZHMpXSc7Civok6w+J1t0eXBlIG9mIHJhc3BiZXJyeV0nOwor6JOuPidbbG90dXNdJzsKK+iTtD4nW2VkaWJsZSB3YXRlciBwbGFudF0nOwor6JO8Pidbc21hcnR3ZWVkXSc7Civok78+J1tjbG92ZXJdJzsKK+iUgD4nW3NjcmVlbl0nOwor6JSGPidbd2F0ZXItY2hlc3RudXRdJzsKK+iUkT4nW2Rpc2RhaW5dJzsKK+iUkz4nW2NyZWVwaW5nIHBsYW50c10nOwor6JSUPidbcmFkaXNoXSc7CivolJU+J1twZWR1bmNsZSBvciBzdGVtIG9mIHBsYW50c10nOwor6JSXPidbc3VnYXIgY2FuZV0nOwor6JSYPidbZ2luc2VuXSc7CivolJo+J1tsdXh1cmlhbnRdJzsKK+iUnz4nW2ZyYW1lIG9uIHdoaWNoIHNpbGt3b3JtcyBzcGluXSc7CivolKE+J1tzdXJuYW1lXSc7CivolKY+J1twYXJhc2l0aWMgcGxhbnRzXSc7CivolKw+J1t2ZWdldGFibGVzXSc7CivolK0+J1tzaGFkZV0nOwor6JS1PidbaGlkZV0nOwor6JS9PidbY292ZXJdJzsKKyMi6JWAPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivolYE+J1tuZXR0bGVdJzsKK+iVgz4nW2ZvcmVpZ24gdGhpbmdzXSc7CivolYg+J1ttdXNocm9vbXNdJzsKK+iViT4nW2JhbmFuYV0nOwor6JWKPidbdW5vcGVuZWQgZmxvd2Vyc10nOwor6JWLPidbdW5vcGVuZWQgZmxvd2Vyc10nOwor6JWOPidbYnVja3doZWF0XSc7CivolZU+J1tjYXJ5b3B0ZXJpcyBkaXZhcmljYXRhXSc7CisjIuiVlz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6JWYPidbZnVlbF0nOwor6JWaPidbY2FseXggb2YgZmxvd2VyXSc7CivolaM+J1toaWJpc2N1c10nOwor6JWoPidbcHRlcmlzIGFxdWlsaW5hXSc7Civolak+J1twb25kXSc7Civolao+J1tsdXh1cmlvdXMgZ3Jvd3RoIG9mIHdlZWRzXSc7Civola0+J1tjb21tb24gYXJ0ZW1pc2lhXSc7Civolbc+J1t5YW1dJzsKK+iVvj4nW2J1ZHNdJzsKK+iWgD4nW3RoZSBoaXBwdXJpcyBvciBtYXJlJydzIHRhaWwgcGxhbnRdJzsKK+iWhD4nW3RoaW5dJzsKK+iWhz4nW29zbXVuZGEgcmVnYWxpc10nOwor6JaIPidbbHV4dXJpYW50XSc7Civoloo+J1tjaXJjaXVtXSc7CivolpA+J1tzcGluYWNoXSc7CivolpE+J1tnaW5nZXJdJzsKK+iWlD4nW3Jvc2VdJzsKK+iWlz4nW2dhcmRlbl0nOwor6JaZPidbd2VlZF0nOwor6JabPidba2luZCBvZiBtYXJzaCBncmFzc10nOwor6JacPidbZXZlcmdyZWVuIHNocnVic10nOwor6JakPidbYWxsaXVtIGJha2VyaV0nOwor6JamPidbb2ZmZXJdJzsKK+iWqD4nW2RlYXRoIG9mIHByaW5jZV0nOwor6JapPidbdHJhbnNsaXRlcmF0aW9uIG9mIFwic2F0XCIgb2YgYm9kZGhpc2F0dHZhIGV0Yy5dJzsKK+iWqj4nW2Z1ZWxdJzsKK+iWqz4nW2EgbWVkaWNpbmFsIGhlcmJdJzsKK+iWrD4nW2RydWdzXSc7Civolq4+J1ttYXJzaF0nOwor6JavPidbeWFtXSc7Civolrk+J1tjeXBlcnVzIHJvdHVuZHVzXSc7Civolro+J1t3YXRlci1jaGVzdG51dHNdJzsKK+iXgT4nW3N0cmF3XSc7Civol4k+J1ttYXRdJzsKK+iXjT4nW2JsdWVdJzsKK+iXjz4nW2hpZGVdJzsKK+iXkD4nW2Rpc3JlZ2FyZF0nOwor6JeVPidbbG90dXMgcm9vdF0nOwor6JecPidbY2hlbm9wb2RpdW0gYWxidW1dJzsKK+iXnT4nW2FydF0nOwor6JekPidbcmF0dGFuXSc7Civol6U+J1tkcnVnc10nOwor6JepPidbZmVuY2VdJzsKK+iXqj4nW21hcnNoXSc7Civol7c+J1t5YW1dJzsKK+iXuT4nW2x1c2hdJzsKK+iXuj4nW3J1c2ggdXNlZCBpbiBtYWtpbmcgbWF0c10nOwor6Je7Pidbc3BsZW5kaWRdJzsKK+iXvj4nW3NoYWRlXSc7CivomII+J1tzdGFtZW4gb3IgcGlzdGlsXSc7CivomIY+J1tydXNoZXNdJzsKK+iYhz4nW3RoeW1lXSc7CivomIo+J1tjb2xsZWN0XSc7CivomIs+J1thcHBsZV0nOwor6JiTPidbdGh5bWVdJzsKK+iYlj4nW3N0dW1wXSc7CivomJc+J1tzdHVtcF0nOwor6JiaPidbbW9zc10nOwor6JiiPidbdGFsbCBncmFzc10nOwor6JitPidbb3JjaGlkXSc7CivomK8+J1t0byB0b3NzIGFib3V0XSc7CisjIuiYrz4nW3RvIHRvc3MgYWJvdXRdJyIsCivomL8+J1t0eXBlIG9mIGNyZWVwaW5nIHBsYW50XSc7CivomY0+J1t0aWdlcl0nOwor6JmOPidbdGlnZXJdJzsKK+iZkD4nW2NydWVsXSc7CivomZQ+J1thY3Qgd2l0aCByZXZlcmVuY2VdJzsKK+iZlT4nW3BsYWNlXSc7CivomZo+J1tmYWxzZV0nOwor6JmcPidbY2FwdHVyZV0nOwor6JmePidbY29uY2VybmVkIGFib3V0XSc7CivomZ8+J1ttYXJrXSc7Civomac+J1tsb3NlXSc7Civomas+J1tpbnNlY3RzXSc7CivombE+J1tsb3VzZV0nOwor6Jm5PidbcmFpbmJvd10nOwor6Jm7PidbaG9yc2VmbHldJzsKK+iaij4nW21vc3F1aXRvXSc7Civomos+J1tnbmF0XSc7Civomow+J1tveXN0ZXJzXSc7CivompM+J1tlYXJ0aHdvcm1dJzsKK+ialT4nW3NpbGt3b3Jtc10nOwor6JqjPidbY2VudGlwZWRlXSc7CivomqQ+J1tmbGVhXSc7Civomqk+J1t3b3JtXSc7Civomqo+J1t0YWRwb2xlXSc7Civomqs+J1thYmFsb25lXSc7Civomq8+J1tlYXJ0aHdvcm1dJzsKK+iasD4nW21pbGxpcGVkZV0nOwor6Jq2Pidba2luZCBvZiBjbGFtXSc7Civom4Q+J1ttb2xlIGNyaWNrZXRdJzsKK+ibhj4nW21hZ2dvdHNdJzsKK+ibhz4nW3NuYWtlXSc7Civom4k+J1tkcmFnb25mbHldJzsKK+ibiz4nW2VnZ3NdJzsKK+ibjT4nW2dsb3ctd29ybV0nOwor6JuOPidbb3lzdGVyXSc7Civom5Q+J1t0YXBld29ybV0nOwor6JuZPidbZnJvZ10nOwor6JubPidbc3BpZGVyXSc7Civom54+J1tzbmFpbF0nOwor6JufPidbc2NhbHkgZHJhZ29uIHdpdGggZm91ciBsZWdzXSc7Civom6Q+J1tjbGFtXSc7Civom6k+J1tjcmlja2V0XSc7CisjIuibqT4nW2NyaWNrZXRdJyIsCivom60+J1tsZWVjaF0nOwor6JuuPidbYmFyYmFyaWFuc10nOwor6JuvPidbc2hyaW1wXSc7Civom7g+J1tsb25nIGxlZ2dlZCBzcGlkZXJdJzsKK+ibuT4nW2NocnlzYWxpc10nOwor6Ju7PidbbW9sdF0nOwor6Ju+PidbbW90aF0nOwor6JyAPidbbmFtZSBvZiBhbiBhbmNpZW50IHN0YXRlXSc7CivonII+J1tiZWVdJzsKK+icgz4nW21hcmluZSBtb25zdGVyIHdoaWNoIGNhbiBjaGFuZ2UgaXRzIHNoYXBlXSc7CivonIY+J1thIHZhcmlldHkgb2YgYml2YWx2ZXNdJzsKK+iciD4nW2NlbnRpcGVkZV0nOwor6JyJPidbbWF5Zmx5XSc7CivonIo+J1tjbGFtXSc7CivonI0+J1t0b2FkXSc7CivonJE+J1tlZ2ddJzsKK+ickj4nW21pbGxpcGVkZV0nOwor6JyYPidbc3BpZGVyXSc7CivonJo+J1tjb2Nrcm9hY2hdJzsKK+icnD4nW2hvbmV5XSc7CivonKU+J1tsaXphcmRdJzsKK+icqT4nW2NpY2FkYV0nOwor6Jy0PidbbGl6YXJkXSc7CivonLc+J1tjcmVlcCBsaWtlIHdvcm1dJzsKK+icuz4nW2RyYWdvbmZseV0nOwor6Jy/PidbY3JlZXBdJzsKK+idiT4nW2NpY2FkYV0nOwor6J2LPidbd2F4XSc7CivonYw+J1t0YWRwb2xlXSc7CivonY4+J1tzY29ycGlvbl0nOwor6J2TPidbc25haWxdJzsKK+idlT4nW25pYmJsZSBhd2F5XSc7CivonZc+J1traW5kIG9mIGxvY3VzdF0nOwor6J2ZPidbYmF0XSc7CivonZ8+J1toZWRnZWhvZ10nOwor6J2gPidba2luZCBvZiBiYXRdJzsKK+idoz4nW21heWZseV0nOwor6J2mPidbc2hyaW1wXSc7Civonag+J1tsb3VzZV0nOworIyLonag+J1tsb3VzZV0nIiwKK+idrj4nW3Zlbm9tb3VzIHNuYWtlXSc7CivonbQ+J1tidXR0ZXJmbHldJzsKK+idtj4nW2J1dHRlcmZseV0nOwor6J24Pidbc25haWxdJzsKK+idvz4nW2ZsaWVzXSc7CivonoI+J1ttYW50aXNdJzsKK+iejT4nW21lbHRdJzsKK+ienz4nW2tpbmQgb2YgY2F0ZXJwaWxsYXJdJzsKK+ieoj4nW2dsb3ctd29ybV0nOwor6J6rPidbcG9pc29uXSc7Civonq8+J1tuaXBwZXJzXSc7CivonrM+J1ttYW50aXNdJzsKK+ieuj4nW3NwaXJhbCBzaGVsbF0nOwor6J67PidbZ3J5bGxvdGFscGEgYWZyaWNhbmFdJzsKK+ievT4nW2thdHlkaWRdJzsKK+ifgD4nW2NyaWNrZXRdJzsKK+ifhD4nW3RvIGhpYmVybmF0ZV0nOwor6J+GPidbZnJvZ10nOwor6J+HPidbZnJvZ10nOwor6J+LPidbY3JpY2tldF0nOworIyLon4s+J1tjcmlja2V0XSciLAor6J+SPidbcHl0aG9uXSc7Civon6A+J1tjb2lsXSc7Civon68+J1t3b3Jtc10nOwor6J+yPidbd29ybXNdJzsKK+iftj4nW3Jhem9yIGNsYW1dJzsKK+iftz4nW21hbnRpc10nOwor6J+5PidbY3JhYl0nOwor6J+7PidbYW50c10nOwor6J++PidbdG9hZF0nOwor6KCFPidbZmxpZXNdJzsKK+igjT4nW3Njb3JwaW9uXSc7CivooI4+J1tweXRob25dJzsKK+igjz4nW2NyYWJdJzsKK+igkT4nW2xpemFyZF0nOwor6KCVPidbZXVtZW5lcyBwb2xpZm9taXNdJzsKK+iglj4nW21lYXN1cmluZyB3b3JtXSc7CivooKE+J1t3b29kLWJvcmluZyBpbnNlY3RdJzsKK+igoj4nW3dyaWdnbGVdJzsKK+igoz4nW295c3Rlcl0nOwor6KCnPidbbW90aF0nOwor6KCxPidbcG9zaW9uXSc7CivooLY+J1tzaWxrd29ybXNdJzsKK+iguT4nW21vdGhdJzsKK+iguz4nW2JhcmJhcmlhbnNdJzsKK+ihgD4nW2Jsb29kXSc7CivooYI+J1t0byBiZSBkZWZlYXRlZF0nOwor6KGEPidbZXBpc3RheGlzXSc7CivooYY+J1ttdWx0aXR1ZGVdJzsKK+ihjD4nW2dvXSc7CivooY0+J1tvdmVyZmxvd10nOwor6KGSPidbYnJhZ10nOwor6KGTPidbYXJ0XSc7CivooZc+J1tzdHJlZXRdJzsKK+ihmT4nW3B1YmxpYyBvZmZpY2VdJzsKK+ihmz4nW2d1YXJkXSc7CivooZ0+J1tydXNoIGFnYWluc3RdJzsKK+ihnj4nW2d1YXJkXSc7CivooaE+J1ttZWFzdXJlXSc7CivooaI+J1toaWdod2F5XSc7CivooaM+J1tjbG90aGVzXSc7Civooag+J1tzaG93XSc7Civooas+J1tzaGlydF0nOwor6KGwPidbZGVjbGluZV0nOwor6KGyPidbbWVuZF0nOwor6KG1PidbY2hlbWlzZV0nOwor6KG3PidbaGVhcnRdJzsKK+ihvT4nW2xhcGVsXSc7Civoob4+J1tjb3ZlcmxldF0nOwor6KG/PidbY29sbGFyIG9yIGxhcGVsIG9mIGdhcm1lbnRdJzsKK+iigT4nW3JvYmVdJzsKK+iigj4nW3NsZWV2ZXNdJzsKK+iiiD4nW2J1ZGRoaXN0IGNhc3NvY2tdJzsKK+iiiz4nW3BvY2tldF0nOwor6KKNPidbbG9uZyBnb3duXSc7CivoopI+J1tzdHJpcF0nOwor6KKWPidbc2xlZXZlXSc7Civoopc+J1t1bmxpbmVkIGdhcm1lbnRzXSc7CisjIuiimT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6KKePidbY2VyZW1vbmlhbCBkcmVzcyB3b3JuIGJ5IGVtcGVyb3JdJzsKK+iioj4nW3JvYmVdJzsKK+iipD4nW2xvbmdpdHVkZV0nOwor6KKrPidbcGFzc2l2ZSBpbmRpY2F0b3IgXCJieVwiXSc7CisjIuiirj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLoorA+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+iisT4nW3BpZWNlIG9mIGNsb3RoIHVzZWQgd3JhcCBidW5kbGVzXSc7CivoorQ+J1twYW50c10nOwor6KK1PidbbGFwZWxdJzsKK+iitz4nW2xpbmVkIGdhcm1lbnRdJzsKK+iivz4nW2dvd25dJzsKK+ijgT4nW2N1dCBvdXRdJzsKK+ijgj4nW3NwbGl0XSc7CisjIuijgj4nW3NwbGl0XSciLAorIyLoo4I+J1tzcGxpdF0nIiwKK+ijhT4nW2RyZXNzXSc7Civoo48+J1tpbnNpZGVdJzsKK+ijlD4nW3Byb2dlbnldJzsKK+ijlT4nW2FidW5kYW50XSc7Civoo5g+J1tmdXIgZ2FybWVudHNdJzsKK+ijmT4nW3NraXJ0XSc7Civoo5w+J1ttZW5kXSc7Civoo50+J1tkcmVzc10nOwor6KOfPidbYSBjYXNzb2NrIG9yIHJvYmUgb2YgYSBtb25rXSc7Civoo6E+J1tpbnNpZGVdJzsKK+ijqD4nW2FpZF0nOwor6KOyPidbd2Fpc3Rjb2F0XSc7Civoo7M+J1tjbG90aGVzXSc7Civoo7Q+J1tzdXJuYW1lXSc7Civoo7g+J1tiYXJlXSc7Civoo7k+J1t3cmFwXSc7Civoo7w+J1t0byB0YWtlIG9mZiBvbmUnJ3MgdG9wXSc7Civoo70+J1ttYWtlXSc7Civoo74+J1tsYXBlbF0nOwor6KSCPidbamFja2V0XSc7CisjIuikgz4nW2Egc2VhbSBpbiBhIGdhcm1lbnRdJyIsCivopIc+J1tyZXBlYXRdJzsKK+ikij4nW2NyYW1wZWRdJzsKK+ikjD4nW3Ryb3VzZXJzXSc7CivopJA+J1tjb2Fyc2Ugd29vbGVuIGNsb3RoXSc7CivopJI+J1twcmFpc2VdJzsKK+ikkz4nW3N3YWRkbGluZyBjbG90aF0nOwor6KSdPidbdW5saW5lZCBnYXJtZW50XSc7CisjIuiknj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6KSlPidbbWF0dHJlc3NdJzsKK+ikqj4nW3N0cmlwXSc7CivopKs+J1tzdHJpcF0nOwor6KS2PidbcGxlYXRdJzsKK+ikuD4nW2xhcGVsXSc7CivopLs+J1tkaXJ0eV0nOwor6KWBPidbc3dhZGRsaW5nIGNsb3RoZXNdJzsKK+ilgz4nW2NvbW1lbmRdJzsKK+ilhD4nW2FpZF0nOwor6KWMPidbdW5saW5lZCBnYXJtZW50XSc7CivopY0+J1ttaXhlZF0nOwor6KWWPidbb3V0ZXIgZ2FybWVudHNdJzsKK+ilnj4nW2ZvbGRdJzsKK+ilnz4nW2xhcGVsXSc7CivopaA+J1tjcm90Y2ggb3Igc2VhdCBvZiBwYW50c10nOwor6KWkPidbcmFnZ2VkXSc7CivopaY+J1tzaG9ydCBjb2F0XSc7Civopao+J1tzb2Nrc10nOwor6KWtPidbdHVjayB1cCBoZW0gb2YgZ2FybWVudCBhbmQgd3JhcF0nOwor6KWvPidbdW5kZXJ3ZWFyXSc7CivopbI+J1tyYWlkXSc7CivopbQ+J1thIG9uZSBwaWVjZSBnYXJtZW50XSc7CisjIuiltj4nW2lnbm9yYW50XSciLAor6KW+PidbY292ZXJdJzsKK+ilvz4nW3dlc3QoZXJuKV0nOwor6KaBPidbbmVjZXNzYXJ5XSc7CivopoM+J1tyZWFjaCB0b10nOwor6KaGPidbY292ZXJdJzsKK+imhz4nW3J1bGUgYnkgbWlnaHQgcmF0aGVyIHRoYW4gcmlnaHRdJzsKK+imiD4nW2ludmVzdGlnYXRlXSc7Civopoo+J1toYWx0ZXJdJzsKK+imiz4nW3NlZV0nOwor6KaPPidbcnVsZXNdJzsKK+imkz4nW3NlZWtdJzsKK+imlj4nW2xvb2sgYXRdJzsKK+imlz4nW3BlZWtdJzsKK+immD4nW3BlZWtdJzsKK+immj4nW3dha2UgdXAgZnJvbSBzbGVlcF0nOwor6KahPidbd2l6YXJkXSc7CivopqY+J1tkZXNpcmUgc3Ryb25nbHldJzsKK+impz4nW2xvb2sgYXRdJzsKK+imqT4nW3NlZV0nOwor6KaqPidbcmVsYXRpdmVzXSc7Civopqw+J1tjb3ZldF0nOwor6KavPidbbWVldCBvciBzZWUgdW5leHBlY3RlZGx5XSc7CivoprI+J1toYXZlIGltcGVyaWFsIGF1ZGllbmNlXSc7CivoprM+J1tzZWVdJzsKK+imuj4nW3dha2UgdXAgZnJvbSBzbGVlcF0nOwor6Ka9PidbbG9vayBhdF0nOwor6Ka/Pidbc2VlXSc7Civop4A+J1tzZWVdJzsKK+inkj4nW2hvcm5dJzsKK+inmj4nW2p1Z10nOwor6KecPidbYmVha10nOwor6KedPidbZ29yZV0nOwor6KejPidbbG9vc2VuXSc7Civop6Y+J1tidXR0XSc7Civop6c+J1tsb29zZW5dJzsKK+intD4nW3dpbmUgdmVzc2VsXSc7Civop7g+J1t0b3VjaF0nOwor6KiAPidbd29yZHNdJzsKK+iogj4nW2RyYXcgdXAgYWdyZWVtZW50XSc7CivoqIM+J1tvYml0dWFyeV0nOwor6KiIPidbcGxhbl0nOwor6KiKPidbaW5xdWlyZV0nOwor6KiMPidbY29uZnVzaW9uXSc7CivoqI4+J1thc2sgZm9yXSc7CivoqJA+J1tleHBvc2Ugb3RoZXInJ3Mgc2VjcmV0c10nOwor6KiTPidbdGVhY2hdJzsKK+iolj4nW2ZpbmlzaF0nOwor6KiXPidbZW50cnVzdF0nOwor6KiYPidbcmVjb3JkXSc7CivoqJs+J1tzd2luZGxlXSc7CivoqJ0+J1tleHByZXNzIHN1cnByaXNlXSc7CivoqJ8+J1thY2N1c2VdJzsKK+iooz4nW3Rha2UgbGVhdmUgb2ZdJzsKK+iopT4nW3Nsb3cgb2Ygc3BlZWNoXSc7CivoqKo+J1t2aXNpdF0nOwor6KitPidbYnVpbGRdJzsKK+iosT4nW2FsbG93XSc7CivoqLM+J1t0cmFuc2xhdGVdJzsKK+iotD4nW2FjY3VzZV0nOwor6Ki2Pidbc2NvbGQgbG91ZGx5XSc7CivoqLo+J1tleGFtaW5lIHBhdGllbnRdJzsKK+iouz4nW2V4cGxhaW5dJzsKK+iovD4nW3Byb3ZlXSc7CivoqYE+J1tleGVnZXNpc10nOwor6KmGPidbc2xhbmRlcl0nOwor6KmIPidbc2NvbGRdJzsKK+ipkD4nW2NoZWF0XSc7CivoqZE+J1tjaGVhdF0nOwor6KmSPidbYmVxdWVhdGhdJzsKK+iplD4nW2RlY3JlZV0nOwor6KmVPidbYXBwcmFpc2VdJzsKK+ipmz4nW2N1cnNlXSc7CivoqZ4+J1t3b3Jkc10nOwor6KmgPidbc2luZ10nOwor6KmiPidbaW5xdWlyZSBpbnRvXSc7CivoqaM+J1tyZWFjaF0nOwor6KmmPidbdGVzdF0nOwor6KmpPidbcG9ldHJ5XSc7Civoqas+J1tiZSBzdXJwcmlzZWRdJzsKK+iprD4nW2FidXNlXSc7Civoqa0+J1tkZWNlaXZlXSc7Civoqa4+J1tleHBsYWluXSc7CivoqbA+J1txdWVzdGlvbl0nOwor6KmxPidbc3BlZWNoXSc7CivoqbI+J1tzaG91bGRdJzsKK+ipsz4nW2RldGFpbGVkXSc7Civoqbw+J1t0ZWFzZV0nOwor6KqCPidbdGVtcHRdJzsKK+iqhD4nW2V1bG9naXplXSc7CivoqoU+J1tleGVjdXRlXSc7Civoqoc+J1tleGFnZ2VyYXRlXSc7Civoqok+J1tmYW1lXSc7Civoqow+J1t3cml0ZSBkb3duXSc7Civoqo0+J1tyZWNvZ25pemVdJzsKK+iqkT4nW2RlY2VpdmVdJzsKK+iqkz4nW3N3ZWFyXSc7CivoqpU+J1tiZWFyIGNoaWxkcmVuXSc7Civoqpg+J1twZXJzdWFkZV0nOwor6KqaPidbY3JpdGljaXplXSc7Civoqp4+J1tsYW5ndWFnZV0nOwor6KqgPidbc2luY2VyZV0nOwor6KqhPidbd2Fybl0nOwor6KqjPidbbWFrZSBmYWxzZSBhY2N1c2F0aW9uXSc7CivoqqQ+J1tlcnJdJzsKK+iqpT4nW2luZm9ybV0nOwor6KqmPidbcmVjaXRlXSc7Civoqqg+J1t0ZWFjaF0nOwor6KqsPidbc3BlYWtdJzsKK+iqrT4nW3JlYWRdJzsKK+iqsD4nW3dobz8gd2hvbT8gd2hvc2U/IGFueW9uZT9dJzsKK+iqsj4nW2xlc3Nvbl0nOwor6Kq5Pidbc2xhbmRlcl0nOwor6Kq8PidbZnJpZW5kc2hpcF0nOwor6Kq/PidbdHJhbnNmZXJdJzsKK+irgj4nW2ZsYXR0ZXJdJzsKK+irhD4nW3BhdGllbnRdJzsKK+irhz4nW3RhbGtdJzsKK+iriz4nW2Fza10nOwor6KuMPidbcmVtb25zdHJhdGVdJzsKK+irjT4nW3RvIGV4cG9zdHVsYXRlXSc7Civoq48+J1tjb25zdWx0XSc7Civoq5I+J1tleGN1c2VdJzsKK+irlj4nW2RlYmF0ZV0nOwor6KuaPidbKGtva3VqaSkgY29tbWFuZF0nOwor6KubPidbZmxhdHRlcl0nOwor6KucPidbaW50ZWxsaWdlbmNlIHJlcG9ydF0nOwor6KuePidbYnJhZ10nOwor6KugPidbbm9pc3ldJzsKK+iroT4nW3Bvc3RodW1vdXMgbmFtZV0nOwor6KuiPidbam9rZXNdJzsKK+irpD4nW2hvbmVzdCBzcGVlY2hdJzsKK+irpj4nW2NhcmVmdWxdJzsKK+irpz4nW2hhcm1vbml6ZV0nOwor6KurPidbcmVtb25zdHJhdGVdJzsKK+irrT4nW3Byb2NsYWltXSc7Civoq64+J1tjb25zdWx0XSc7Civoq7E+J1tjb25jZWFsXSc7Civoq7M+J1t2ZXJzZWQgaW5dJzsKK+irtz4nW3JlY2l0ZV0nOwor6Ku4Pidbc2V2ZXJhbF0nOwor6Ku6PidbcHJvdmVyYl0nOwor6Ku+PidbcHJvbWlzZV0nOwor6KyAPidbcGxhbl0nOwor6KyBPidbdmlzaXRdJzsKK+isgj4nW3NheV0nOwor6KyEPidbY29weV0nOwor6KyHPidbc3R1dHRlcl0nOwor6KyMPidbc2xhbmRlcl0nOwor6KyOPidbcmlkZGxlXSc7CivorJA+J1tjYWxtXSc7CivorJQ+J1tqZWVyXSc7CivorJY+J1tyaXNlIHVwXSc7CivorJc+J1tzbGFuZGVyXSc7CivorJk+J1todW1ibGVdJzsKK+ismj4nW3RvIGNvbmZlciBwb3N0aHVtb3VzIHRpdGxlc10nOwor6KybPidbZXhwbGFpbl0nOwor6KydPidbdGhhbmtdJzsKK+isoD4nW3NpbmddJzsKK+isoT4nW3NpbmddJzsKK+ispj4nW3Qgc3BlYWsgc29mdGx5XSc7CivorKg+J1tzY2hlbWVdJzsKK+isqz4nW2NoYXJnZV0nOwor6KysPidbZXJyb3JdJzsKK+issz4nW3NpbmddJzsKK+isuT4nW3BydWRlbnRdJzsKK+isvj4nW2RlY2VpdmVdJzsKK+itgT4nW25vaXNlXSc7CivorYk+J1twcm9vZl0nOwor6K2MPidbZmFsc2VdJzsKK+itjj4nW2N1bm5pbmddJzsKK+itjz4nW3JpZGljdWxlXSc7CivorZY+J1t0byBzbGFuZGVyXSc7CivorZg+J1tyZWNvZ25pemVdJzsKK+itmj4nW3N1cm5hbWVdJzsKK+itmz4nW3RvIHNsYW5kZXJdJzsKK+itnD4nW3JlZ2lzdGVyXSc7CivorZ8+J1tjbGFtb3JdJzsKK+itpj4nW2d1YXJkXSc7Civoras+J1t0YWxrYXRpdmVdJzsKK+itrD4nW21ldGFwaG9yXSc7Civora8+J1t0cmFuc2xhdGVdJzsKK+itsD4nW2NvbnN1bHRdJzsKKyMi6K2xPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivorbI+J1thbGxvd10nOwor6K20PidbcmVwcmltYW5kXSc7Civorbc+J1twcm90ZWN0XSc7Civorb0+J1tmYW1lXSc7CivoroA+J1tyZWFkXSc7CivoroM+J1twcmFpc2VdJzsKK+iuij4nW2NoYW5nZV0nOwor6K6MPidbZmVhc3RdJzsKK+iujj4nW2VuZW15XSc7CivorpA+J1tlbmVteV0nOwor6K6SPidbc2xhbmRlcl0nOwor6K6TPidbYWxsb3ddJzsKK+iulj4nW3Byb3BoZWN5XSc7Civorpk+J1tjaGVlcl0nOwor6K6aPidbcHJhaXNlXSc7CivosLc+J1t2YWxsZXldJzsKK+iwuj4nW3RoZSBtb3V0aCBvZiBhIHZhbGxleV0nOwor6LC/PidbdmFsbGV5XSc7CivosYE+J1tvcGVuIHVwXSc7CivosYY+J1tiZWFuc10nOwor6LGIPidbaG93PyB3aGF0P10nOwor6LGKPidbYWJ1bmRhbnRdJzsKK+ixjD4nW3BlYXNdJzsKK+ixjj4nW3ZlcnRpY2FsXSc7CivosZA+J1thYnVuZGFudF0nOwor6LGVPidbcGlnc10nOwor6LGaPidbc21hbGwgcGlnXSc7CivosaE+J1tlbGVwaGFudF0nOwor6LGiPidbZG9tZXN0aWMgYW5pbWFsc10nOwor6LGqPidbYnJhdmVdJzsKK+ixqz4nW3JlbGF4ZWRdJzsKK+ixrD4nW3BpZ10nOwor6LG4PidbcmFkaWNhbCAxNTNdJzsKK+ixuT4nW2xlb3BhcmRdJzsKK+ixuj4nW3dvbGZdJzsKK+ixvD4nW2ZveF0nOwor6LKCPidbbWFydGVuXSc7CivosoU+J1ticmF2ZV0nOwor6LKJPidbYmFkZ2VyXSc7Civosoo+J1tsZW9wYXJkXSc7Civosow+J1tjb3VudGVuYW5jZV0nOwor6LKNPidbYSBmb3gtbGlrZSBhbmltYWxdJzsKK+iyjj4nW2xpb25dJzsKK+iylD4nW2ZveF0nOwor6LKYPidbdGhlIHBhbnRoZXJdJzsKK+iynT4nW3NlYSBzaGVsbF0nOwor6LKePidbdmlydHVvdXNdJzsKK+iyoD4nW2xvYWRdJzsKK+iyoT4nW3dlYWx0aF0nOwor6LKiPidbb2ZmZXIgdHJpYnV0ZV0nOwor6LKnPidbcG9vcl0nOwor6LKoPidbZ29vZHNdJzsKK+iyqT4nW3BlZGRsZXJdJzsKK+iyqj4nW2dyZWVkeV0nOwor6LKrPidbc3RyaW5nIG9mIDEwMDAgY29pbnNdJzsKK+iyrD4nW29uZScncyByZXNwb25zaWJpbGl0eV0nOwor6LKtPidbbWF0dGVyXSc7Civosq4+J1tudW1iZXIgdHdvXSc7Civosq8+J1tzdG9yZV0nOwor6LKwPidbYm9ycm93XSc7CivosrI+J1twcm9wZXJ0eV0nOwor6LKzPidbbnVtYmVyIHR3b10nOwor6LK0PidbZXhwZW5zaXZlXSc7CivosrY+J1tkZWNyZWFzZV0nOwor6LK3PidbYnV5XSc7Civosrg+J1tsZW5kXSc7Civosrs+J1tleHBlbnNlc10nOwor6LK8PidbcGFzdGUgdG9dJzsKK+iyvT4nW2dpdmUgdG9dJzsKK+iyvz4nW3RyYWRlXSc7Civos4A+J1tjb25ncmF0dWxhdGVdJzsKK+izgT4nW2ZvcmdlIGFoZWFkXSc7Civos4I+J1ticmliZV0nOwor6LODPidbcmVudF0nOwor6LOEPidbYnJpYmVdJzsKK+izhz4nW3Byb3BlcnR5XSc7Civos4g+J1tzdXJuYW1lXSc7Civos4o+J1t0aGllZl0nOwor6LONPidbYm9vdHldJzsKK+izjj4nW21lYW5dJzsKK+izkT4nW3JlbGlldmVdJzsKK+izkz4nW2d1ZXN0XSc7Civos5o+J1tnaXZlXSc7Civos5s+J1toZWxwXSc7Civos5w+J1tnaXZlXSc7Civos54+J1tyZXdhcmRdJzsKK+izoD4nW2luZGVtbmlmeV0nOwor6LOiPidbdmlydHVvdXNdJzsKK+izoz4nW3NlbGxdJzsKK+izpD4nW21lYW5dJzsKK+izpj4nW3RheF0nOwor6LOqPidbbWF0dGVyXSc7Civos60+J1tiZXRdJzsKK+izuj4nW21ha2UgbW9uZXldJzsKK+izuz4nW2dpZnQgb2YgbW9uZXkgaGVscCBwYXkgZnVuZXJhbF0nOwor6LO8PidbYnV5XSc7Civos70+J1tjb21wZXRlXSc7CivotIQ+J1tnaWZ0IHN1cGVyaW9yXSc7CivotIU+J1t1bm5lY2Vzc2FyeV0nOwor6LSHPidbYWZmYWJsZV0nOwor6LSIPidbZ2l2ZSBwcmVzZW50XSc7CivotIo+J1toZWxwXSc7CivotIs+J1tmYWxzZV0nOwor6LSNPidbc3VwcG9ydF0nOwor6LSPPidbd2luXSc7CivotJA+J1tmYXJld2VsbCBwcmVzZW50XSc7CivotJM+J1tib290eV0nOwor6LSUPidbc3Ryb25nXSc7CivotJY+J1tidXldJzsKK+i1pD4nW3JlZF0nOwor6LWmPidbZm9yZ2l2ZV0nOwor6LWnPidbYmx1c2hdJzsKK+i1qz4nW2JyaWdodF0nOwor6LWtPidbcmVkZGlzaCBicm93bl0nOwor6LWwPidbd2Fsa10nOwor6LWxPidbd2Fsa10nOwor6LWzPidbZ3JhbmRdJzsKK+i1tD4nW2dvIHRvXSc7Civotbc+J1tyaXNlXSc7CivotoE+J1t0YWtlIGFkdmFudGFnZSBvZl0nOwor6LaFPidbanVtcCBvdmVyXSc7Civotoo+J1tleGNlZWRdJzsKK+i2mT4nW3N1cm5hbWVdJzsKK+i2oz4nW3doYXQgYXR0cmFjdHMgb25lJydzIGF0dGVudGlvbl0nOwor6LaoPidbaGFzdGVuXSc7CivotrM+J1tmb290XSc7Civotro+J1tzaXQgY3Jvc3MtbGVnZ2VkXSc7Civotr4+J1t0b2VdJzsKK+i3gj4nW2NyZWVwaW5nXSc7Civot4s+J1tnbyBieSBmb290XSc7Civot4w+J1tzdHVtYmxlXSc7Civot48+J1tzaXQgY3Jvc3MtbGVnZ2VkXSc7Civot5Y+J1tzb2xlIChvZiB0aGUgZm9vdCldJzsKK+i3mj4nW3N0YWdnZXJdJzsKK+i3mz4nW2xhbWVdJzsKK+i3nT4nW2Rpc3RhbmNlXSc7Civot58+J1toZWVsXSc7Civot6E+J1tzZWFyY2hdJzsKK+i3oz4nW2JhcmUgZm9vdGVkXSc7Civot6g+J1tzdHJhZGRsZV0nOwor6LeqPidba25lZWxdJzsKK+i3qz4nW3NvdW5kIG9mIGZvb3RzdGVwc10nOwor6LevPidbcm9hZF0nOwor6LezPidbanVtcF0nOwor6Le1PidbdHJhbXBsZV0nOwor6Le8PidbYmVudF0nOworIyLot78+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+i4iD4nW25lZ2xlY3RdJzsKK+i4iT4nW2hvcF0nOwor6LiKPidbbGVhcF0nOwor6LiPPidbc3RlcCBvbl0nOwor6LiQPidbdHJhbXBsZV0nOwor6LidPidbYW5rbGVdJzsKK+i4nj4nW2Nyb3VjaF0nOwor6LifPidbaGVzaXRhdGVdJzsKK+i4qj4nW2Zvb3RwcmludHNdJzsKK+i4sD4nW2V4Y2VlZF0nOwor6Li0PidbbGVhcF0nOwor6Li1PidbaGVlbF0nOwor6LmCPidbdHJhbXBsZSB1bmRlciBmb290XSc7CivouYQ+J1tob29mXSc7CivouYc+J1tsYW1lXSc7CivouYg+J1tzdGFtcCBmZWV0XSc7CivouYk+J1tlcnJvcl0nOwor6LmKPidbZm9vdHBhdGhdJzsKK+i5jD4nW3dhbGsgcmFwaWRseV0nOwor6LmQPidbdGFrZSBzaG9ydCBzdGVwc10nOwor6LmVPidbY2xlYXIgd2F5XSc7CivouZk+J1t1cmdlbnRdJzsKK+i5nz4nW3RyYWNlXSc7CivouaA+J1tzdGVwIG9uXSc7CivouaM+J1t0byBqdW1wIG92ZXJdJzsKK+i5pD4nW2Zvb3RwcmludHNdJzsKK+i5sj4nW3NxdWF0XSc7CivoubQ+J1traWNrXSc7CivoubY+J1tzdHVtYmxlXSc7Civoubw+J1t3ZWJiZWQgZmVldCBvZiB3YXRlcmZvd2xdJzsKK+i6gT4nW3RlbnNlXSc7CivouoQ+J1tjcmlwcGxlXSc7CivouoU+J1t3YWxrIGNhcmVmdWxseV0nOwor6LqHPidbaGVzaXRhdGVdJzsKK+i6ij4nW2hlc2l0YXRlXSc7Civouos+J1thc2NlbmRdJzsKK+i6jT4nW3NraXBdJzsKK+i6kT4nW3dhdmVyXSc7CivoupM+J1tzdHVtYmxlXSc7CivoupQ+J1tmb2xsb3cgaW5dJzsKK+i6mT4nW3RyYW1wbGUgZG93bl0nOwor6LqhPidbdHJlYWRdJzsKK+i6qj4nW3RyYW1wbGUgZG93bl0nOwor6LqrPidbYm9keV0nOwor6LqsPidbYm9keV0nOwor6LqvPidbYm9keV0nOwor6LqwPidbYm9keV0nOwor6LqxPidbaGlkZV0nOworIyLouro+J1tsaWUgZG93bl0nIiwKKyMi6LuEPidbdG8gZ292ZXJuXSciLAor6LuGPidbYm9keV0nOworIyLou4Y+J1tib2R5XSciLAor6LuKPidbY2FydF0nOwor6LuLPidbY3J1c2ggYnkgd2VpZ2h0XSc7Civou4w+J1t0cmFja10nOwor6LuNPidbYXJteV0nOwor6LuSPidbY2FycmlhZ2VdJzsKK+i7mz4nW3lva2VdJzsKK+i7nz4nW3NvZnRdJzsKK+i7oj4nW3NoaWZ0XSc7Civou6M+J1tydW1ibGVdJzsKK+i7qz4nW2Nyb3NzIGJvYXJkIGF0IHJlYXIgb2YgY2FycmlhZ2VdJzsKK+i7uD4nW2F4bGVdJzsKK+i7uz4nW2F4bGVdJzsKK+i7vD4nW3J1c2ggZm9ydGhdJzsKK+i7vT4nW2xpZ2h0XSc7Civou74+J1tob3Jpem9udGFsIHdvb2RlbiBiYXIgaW4gZnJvbnQgb2YgYSBzZWRhbiBjaGFpcl0nOwor6LyDPidbY29tcGFyZV0nOwor6LyFPidbY2hhcmlvdF0nOwor6LyJPidbbG9hZF0nOwor6LyKPidbbG93IHJlYXIgcG9ydGlvbiBvZiBjYXJ0XSc7CivovIw+J1tudW1lcmFyeSBhZGp1bmN0IGZvciB2ZWhpY2xlc10nOwor6LySPidbc2lkZXMgb2YgY2hhcmlvdCB3aGVyZSB3ZWFwb25zXSc7CivovJM+J1ttb3Vybl0nOwor6LyUPidbY2hlZWsgYm9uZV0nOwor6LyVPidbbGlnaHRdJzsKK+i8mT4nW3NpZGVzIG9mIGNoYXJpb3Qgd2VyZSB3ZWFwb25zXSc7CivovJs+J1tudW1lcmFyeSBhZGp1bmN0IGZvciB2ZWhpY2xlc10nOwor6LycPidbc3VwcGx5IGNhcnRdJzsKK+i8nT4nW2JyaWdodG5lc3NdJzsKK+i8nz4nW3N0b3BdJzsKK+i8pj4nW2hhbmQtY2FydF0nOwor6LypPidbZ2VuZXJhdGlvbl0nOwor6LyqPidbd2hlZWxdJzsKK+i8rz4nW2dhdGhlciB1cF0nOwor6LyzPidbaHVicyBvZiB3aGVlbF0nOwor6Ly4PidbdHJhbnNwb3J0XSc7CivovLk+J1t0d28gcGllY2VzIG9mIHdvb2QgdW5kZXJuZWF0aCBjYV0nOwor6Ly7Pidbc3Bva2VzIG9mIHdoZWVsXSc7CivovL4+J1t0dXJuIG92ZXJdJzsKK+i8vz4nW2NhcnRdJzsKK+i9gj4nW2h1YiBvZiB3aGVlbF0nOwor6L2EPidbbGluY2hwaW4gb2Ygd2hlZWxdJzsKK+i9hT4nW2F4bGVdJzsKK+i9hj4nW3dpbmRsYXNzXSc7CivovYk+J1tzaGlmdF0nOwor6L2MPidbc2xlZF0nOwor6L2NPidbd2Fnb24gcnV0c10nOwor6L2OPidbc2VkYW4tY2hhaXJdJzsKK+i9lz4nW2ZhaWxdJzsKK+i9nD4nW2hlYXJzZV0nOwor6L2fPidbcnVtYmxlXSc7CivovaE+J1ticmlkbGUgb2YgaG9yc2VdJzsKK+i9oj4nW3J1biBvdmVyIHNvbWV0aGluZyB3aXRoIHZlaGljbGVdJzsKKyMi6L2jPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivovaQ+J1twdWxsZXldJzsKK+i+mz4nW2JpdHRlcl0nOwor6L6cPidbY3JpbWVdJzsKK+i+nj4nW3dvcmRzXSc7Civovp8+J1tsYXddJzsKK+i+oz4nW3BlcHBlcnldJzsKK+i+pz4nW21hbmFnZV0nOwor6L6oPidbZGlzdGluZ3Vpc2hdJzsKK+i+rT4nW3dvcmRzXSc7Civovq4+J1ticmFpZF0nOwor6L6vPidbZGlzcHV0ZV0nOwor6L6wPidbZWFybHkgbW9ybmluZ10nOwor6L6xPidbaHVtaWxpYXRlXSc7CivovrI+J1thZ3JpY3VsdHVyZV0nOwor6L63Pidbc21vb3RoXSc7Civovro+J1tlZGdlXSc7Civovrs+J1tjcm9zc3JvYWRzXSc7Civovrw+J1tjcm93ZCBpbnRvXSc7Civovr8+J1tmb2xsb3ddJzsKK+i/gj4nW2RvY3RyaW5haXJlXSc7Civov4Q+J1tleHRlbmRdJzsKK+i/hT4nW3F1aWNrXSc7Civov44+J1tyZWNlaXZlXSc7Civov5E+J1tuZWFyXSc7Civov5Q+J1tyZXR1cm5dJzsKK+i/mj4nW3ZlcnldJzsKK+i/oj4nW2Zhcl0nOwor6L+lPidbZGlzdGFudF0nOwor6L+mPidbY2hhcmFjdGVyIGZvciB0cmFuc2xpdGVyYXRpb25dJzsKK+i/qT4nW2JlIG5lYXJdJzsKK+i/qj4nW2VubGlnaHRlbl0nOwor6L+rPidbY29lcmNlXSc7Civov60+J1tyZXBlYXRlZGx5XSc7Civov68+J1tlc2NhcGVdJzsKK+i/sD4nW25hcnJhdGVdJzsKK+i/tD4nW3Jldm9sdmVdJzsKK+i/tz4nW2Jld2l0Y2hdJzsKK+i/uD4nW2d1c2ggb3V0XSc7Civov7k+J1t0cmFjZXNdJzsKK+i/uj4nW3RoZW5dJzsKK+i/vT4nW3B1cnN1ZV0nOwor6YCAPidbc3RlcCBiYWNrXSc7CivpgIE+J1tzZWUgb2ZmXSc7CivpgIM+J1tlc2NhcGVdJzsKK+mAhT4nW21lZXQgdW5leHBlY3RlZGx5XSc7CivpgIY+J1tkaXNvYmV5XSc7CivpgIs+J1tmbGVlXSc7CivpgI0+J1tyYW1ibGVdJzsKK+mAjj4nW3N0cm9uZ10nOwor6YCPPidbcGVuZXRyYXRlXSc7CivpgJA+J1tjaGFzZV0nOwor6YCRPidbY29sbGVjdF0nOwor6YCTPidbaGFuZCBvdmVyXSc7CivpgJQ+J1t3YXldJzsKK+mAlT4nW3Bhc3MgYnldJzsKK+mAlj4nW2Zhcl0nOwor6YCXPidbdGVtcHRdJzsKK+mAmT4nW3RoaXNdJzsKK+mAmj4nW3Bhc3MgdGhyb3VnaF0nOwor6YCdPidbcGFzcyBhd2F5XSc7CivpgJ4+J1tpbmR1bGdlIG9uZXNlbGZdJzsKK+mAnz4nW3F1aWNrXSc7CivpgKA+J1tjb25zdHJ1Y3RdJzsKK+mAoT4nW3JldHJlYXRdJzsKK+mAoj4nW2NvbWUgdXBvbl0nOwor6YCjPidbam9pbl0nOworIyLpgKY+J1ttZWFuZGVyaW5nXSciLAor6YCuPidbc2VpemVdJzsKK+mAsT4nW3dlZWtdJzsKK+mAsj4nW2FkdmFuY2VdJzsKK+mAtT4nW3Rob3JvdWdoZmFyZV0nOwor6YC2Pidbd2luZGluZ10nOwor6YC4PidbZmxlZV0nOwor6YC5PidbYXJyaXZlIGF0XSc7CivpgLw+J1tjb21wZWxdJzsKK+mAvj4nW2dvIG92ZXJdJzsKK+mBgT4nW2hpZGVdJzsKK+mBgj4nW2NvbXBseSB3aXRoXSc7CivpgYU+J1tsYXRlXSc7CivpgYc+J1ttZWV0XSc7CivpgYk+J1tzcHldJzsKK+mBij4nW3dhbmRlcl0nOwor6YGLPidbbHVja10nOwor6YGNPidbZXZlcnl3aGVyZV0nOwor6YGOPidbcGFzc10nOwor6YGPPidbc3RvcF0nOwor6YGQPidbYWZhcl0nOwor6YGRPidbbGVpc3VyZV0nOwor6YGSPidbc3Ryb25nXSc7CivpgZM+J1twYXRoXSc7CivpgZQ+J1thcnJpdmUgYXRdJzsKK+mBlT4nW2Rpc29iZXldJzsKKyMi6YGVPidbZGlzb2JleV0nIiwKK+mBmD4nW3RvIG1lZXRdJzsKK+mBmT4nW2ZhciBhd2F5XSc7CivpgZw+J1todW1ibGVdJzsKK+mBnj4nW2hhbmQgb3Zlcl0nOwor6YGgPidbZGlzdGFudF0nOwor6YGhPidbZ28gdXBzdHJlYW1dJzsKK+mBoz4nW3NlbmRdJzsKK+mBpT4nW2ZhciBhd2F5XSc7Civpgag+J1tyYW1ibGVdJzsKK+mBqT4nW21hdGNoXSc7Civpga0+J1tjb21lIGFjcm9zc10nOwor6YGuPidbY292ZXJdJzsKK+mBrz4nW2RlY2VpdmVdJzsKK+mBsj4nW2xhdGVdJzsKK+mBtT4nW29iZXldJzsKK+mBtj4nW2VudHdpbmVdJzsKK+mBtz4nW21vdmVdJzsKK+mBuD4nW2Nob29zZV0nOwor6YG6PidbbG9zZV0nOwor6YG8PidbZGlzdGFudF0nOwor6YG9Pidbc3VkZGVubHldJzsKK+mBvz4nW2F2b2lkXSc7CivpgoA+J1tpbnZpdGVdJzsKK+mCgT4nW3Rha2UgYSBiaWcgc3RyaWRlXSc7CivpgoI+J1t1bmV4cGVjdGVkIG1lZXRpbmddJzsKK+mCgz4nW3Byb2ZvdW5kXSc7CivpgoQ+J1tzdGlsbF0nOwor6YKHPidbYmUgbmVhcl0nOwor6YKJPidbZWRnZV0nOwor6YKKPidbZWRnZV0nOwor6YKPPidbcGF0cm9sXSc7CivpgpE+J1thcmVhXSc7CivpgqM+J1t0aGF0XSc7CivpgqY+J1tuYXRpb25dJzsKK+mCqD4nW3ZpbGxhZ2VdJzsKK+mCqj4nW3dyb25nXSc7Civpgq8+J1tjaXR5IGluIGhlYmVpIHByb3ZpbmNlXSc7CivpgrE+J1tzdXJuYW1lXSc7CivpgrU+J1tzdXJuYW1lXSc7Civpgrg+J1tvZmZpY2lhbCByZXNpZGVuY2VdJzsKK+mDgT4nW3N3ZWV0IHNtZWxsaW5nXSc7Civpg4o+J1tzdWJ1cmJzXSc7Civpg44+J1tnZW50bGVtYW5dJzsKK+mDmz4nW291dGVyIHdhbGxzIG9mIGNpdHldJzsKK+mDoT4nW2FkbWluaXN0cmF0aXZlIGRpdmlzaW9uXSc7Civpg6I+J1tzdGF0ZSBpbiB0b2RheScncyBodWJlaSBwcm92aW5jZV0nOwor6YOkPidbY3JhY2tdJzsKK+mDqD4nW3BhcnRdJzsKK+mDrT4nW291dGVyIHBhcnQgKG9mIGEgY2l0eSldJzsKK+mDtT4nW3Bvc3RhbF0nOwor6YO3PidbY291bnRyeV0nOwor6YO9PidbbWV0cm9wb2xpc10nOwor6YSCPidbaHViZWkgcHJvdmluY2VdJzsKK+mEkj4nW25hbWUgb2YgYW4gYW5jaWVudCBzdGF0ZV0nOwor6YSZPidbbWVhbl0nOwor6YStPidbc3RhdGUgaW4gdG9kYXknJ3MgaGVuYW5dJzsKK+mEsD4nW25laWdoYm9yXSc7CivphLI+J1tjb3VudHkgaW4gaGViZWkgcHJvaW5jZXZdJzsKK+mFiT4nW3RlbnRoIGluIHNlcmllcyBvZiB0d2VsdmUgY3ljbGljXSc7CivphYo+J1tkcnVua10nOwor6YWLPidbY2hpZWYgb2YgdHJpYmVdJzsKK+mFjD4nW3NlcnZlIHdpbmVdJzsKK+mFjT4nW21hdGNoXSc7CivphY4+J1tkb3VibGUtZmVybWVudGVkIHdpbmVdJzsKK+mFkj4nW3dpbmVdJzsKK+mFlD4nW2ludG94aWNhdGVkXSc7CivphZY+J1t3aW5lIHdpdGggYmlyZCBwb2lzb24gYWRkZWRdJzsKKyMi6YWYPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivphaI+J1t0b2FzdCBvbmUnJ3MgaG9zdCB3aXRoIHdpbmVdJzsKK+mFoz4nW2Vuam95IGludG94aWNhbnRzXSc7CivphaU+J1tidXR0ZXJdJzsKK+mFqT4nW2RydW5rXSc7Civphao+J1tjcmVhbV0nOwor6YWsPidbdG9hc3RdJzsKK+mFsj4nW2hhbmdvdmVyXSc7CisjIumFsj4nW2hhbmdvdmVyXSciLAor6YW1PidbeWVhc3RdJzsKK+mFtz4nW3N0cm9uZ10nOwor6YW4PidbdGFydF0nOworIyLphoE+J1thIGtpbmQgb2YgZ3JlZW4tY29sb3JlZCB3aW5lXSciLAor6YaHPidbcmljaF0nOwor6YaJPidbaW50b3hpY2F0ZWRdJzsKK+mGiz4nW3ZpbmVnYXJdJzsKK+mGjT4nW2Vzc2VudGlhbCBvaWwgb2YgYnV0dGVyXSc7CivphpA+J1twdXJlc3QgY3JlYW1dJzsKK+mGkj4nW3dha2UgdXBdJzsKK+mGlz4nW3RvIGJyZXcgZm9yIHRoZSBzZWNvbmQgdGltZV0nOwor6YacPidbdWdseSBsb29raW5nXSc7CivphqI+J1ttaW5jZWQgcGlja2xlZCBtZWF0XSc7CivphqQ+J1thbnkgamFtLWxpa2Ugb3IgcGFzdGUtbGlrZSBmb29kXSc7Civphqo+J1t1bmNsZWFyIHdpbmVdJzsKK+mGqz4nW2N1cmVdJzsKK+mGrz4nW3ZpbmVnYXJdJzsKK+mGtD4nW3N3ZWV0IHdpbmVdJzsKK+mGtT4nW2NvbnRyaWJ1dGUgZm9yIGRyaW5rc10nOwor6Ya4PidbYnJld10nOwor6Ya6PidbZ2V0IGRydW5rXSc7Civph4A+J1ticmV3XSc7Civph4E+J1tzbWVhciB3aXRoIGJsb29kIGluIHNhY3JpZmljZV0nOwor6YeGPidbZGlzdGluZ3Vpc2hdJzsKK+mHhz4nW2NvbGxlY3RdJzsKK+mHiD4nW2ludGVycHJldGVdJzsKK+mHiT4nW2dsYXplXSc7Civph4s+J1tpbnRlcnByZXRlXSc7Civph4w+J1t1bml0IG9mIGRpc3RhbmNlXSc7Civph40+J1toZWF2eV0nOwor6YeOPidbb3BlbiBjb3VudHJ5XSc7Civph48+J1ttZWFzdXJlXSc7Civph5A+J1ttYW5hZ2VdJzsKK+mHkT4nW2dvbGRdJzsKK+mHlj4nW2tuaWZlXSc7Civph5g+J1tuYWlsXSc7CisjIumHmz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6YecPidbY2F1bGRyb25dJzsKK+mHnT4nW25lZWRsZV0nOworIyLph58+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mHoT4nW2NhdWxkcm9uXSc7Civph6M+J1tmaXNoXSc7Civph6Y+J1tidXR0b25dJzsKK+mHpz4nW2JyYWNlbGV0XSc7Civph7U+J1tvcm5hbWVudGFsIGhhaXJwaW5dJzsKKyMi6Ye2PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivph7w+J1tzd29yZF0nOworIyLph78+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mIjT4nW2JsdW50XSc7CivpiI4+J1tob29rXSc7CivpiJE+J1twbGF0ZV0nOwor6YiUPidbcGFwZXIgbW9uZXldJzsKK+mIlT4nW2J1dHRvbl0nOwor6YiePidbdW5pdCBvZiBtZWFzdXJlIGVxdWl2YWxlbnQgdGhpcnRdJzsKK+mIqT4nW2ZpcmVwbGFjZV0nOwor6YisPidbYmVsbF0nOwor6Yi0PidbYmVsbF0nOwor6Yi3PidbY29iYWx0XSc7CivpiL8+J1toYWlycGluXSc7CivpiYQ+J1tpcm9uXSc7CivpiYU+J1tzdGVlbF0nOwor6YmIPidbdGhhbGxpdW1dJzsKK+mJiT4nW2RldmljZSBmb3IgY2FycnlpbmcgYSB0cmlwb2RdJzsKK+mJiz4nW2NhcnBlbnRlcicncyBwbGFuZV0nOworIyLpiZA+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mJlz4nW3BpbmNlcnNdJzsKK+mJmj4nW3JpdmV0XSc7CivpiZs+J1tsZWFkIHBsdW1idW1dJzsKK+mJnj4nW2Jyb2FkLWF4ZV0nOwor6YmiPidbZWFydGhlbndhcmUgYmFzaW5dJzsKK+mJpD4nW2hvb2tdJzsKK+mJpj4nW2tpbmQgb2YgZ29uZyB1c2VkIGluIGFuY2llbnQgdGltXSc7CivpibE+J1ttaW5lXSc7Civpib4+J1tzcGVhcl0nOwor6YqAPidbc2lsdmVyXSc7CivpioM+J1thbmNpZW50IHdlYXBvbl0nOwor6YqFPidbY29wcGVyXSc7CivpipE+J1ttaWxsXSc7CivpipM+J1t3ZWlnaF0nOwor6YqVPidbaXJvbl0nOwor6YqWPidbdW5pdCBvZiB3ZWlnaHRdJzsKK+mKmD4nW2luc2NyaWJlXSc7Civpipo+J1tsYXJnZSBob2VdJzsKK+mKmz4nW3NoYXJwXSc7Civpipw+J1tiaXRdJzsKK+mKrT4nW21vbmV5XSc7Civpirc+J1ttZWx0XSc7Civpirk+J1tydXN0XSc7Civpi48+J1t0b25nc10nOwor6YuSPidbcG9pbnQgb2Ygc3BlYXJdJzsKK+mLpD4nW2hvZV0nOwor6YupPidbcG9pbnQgb2Ygc3dvcmRdJzsKK+mLqj4nW3NwcmVhZCBvdXRdJzsKK+mLrT4nW3NoYXJwXSc7Civpi7I+J1tyaXZldF0nOwor6YuzPidbbWVsdF0nOwor6Yu4PidbYSBzYXddJzsKKyMi6Yu6PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpi7w+J1tzdGVlbF0nOwor6YyGPidbdGhlIGNvbG9yIG9mIGEgbWluZXJhbF0nOwor6YyPPidbc29mdCBzdGVlbF0nOwor6YyQPidbZ2ltbGV0XSc7CivpjJg+J1tiYWxhbmNlIHdlaWdodCBvbiBzY2FsZV0nOwor6YyZPidbOCBvel0nOwor6YyaPidbY2xhbmdpbmcgc291bmRdJzsKK+mMoD4nW3NwaW5kbGVdJzsKK+mMoj4nW21vbmV5XSc7CisjIumMoz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6YymPidbYnJvY2FkZV0nOwor6YyoPidbYW5jaG9yXSc7CivpjKs+J1t0aW5dJzsKK+mMrD4nW3NtZWx0IG1ldGFsc10nOwor6YyuPidbcnVuIG1ldGFsIGludG8gY3JhY2tzXSc7CivpjK8+J1tlcnJvcl0nOwor6YyyPidbY29weV0nOworIyLpjLU+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6Yy6PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIumMuz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLpjYQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mNiz4nW2Nvb2tpbmctcG90XSc7CivpjY0+J1twbGF0ZV0nOwor6Y2UPidbaGlnaF0nOworIyLpjZY+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mNmz4nW2ZvcmdlIG1ldGFsXSc7CisjIumNnD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Y2gPidbd2VhcG9uXSc7Civpjaw+J1tzaG92ZWxdJzsKK+mNrj4nW2JyYXNzXSc7CivpjbU+J1tkb29yIGJvbHRdJzsKK+mNvD4nW25lZWRsZV0nOwor6Y2+PidbY3VwXSc7Civpjow+J1tzaWNrbGVdJzsKK+mOlD4nW2Z1c2VdJzsKK+mOlj4nW2xvY2tdJzsKK+mOlz4nW3JpZmxlXSc7Civpjpo+J1toYW1tZXJdJzsKK+mOpz4nW2FybW9yXSc7Civpjqw+J1tzdG92ZV0nOwor6Y6tPidbdG93bl0nOwor6Y6uPidbdG93bl0nOwor6Y6wPidbbWVhc3VyZSBvZiB3ZWlnaHQgZm9yIGdvbGRdJzsKKyMi6Y65PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpj4M+J1thcnJvd2hlYWRdJzsKK+mPiD4nW2NoYWluXSc7Civpj5A+J1twdXJlIGdvbGRdJzsKK+mPkT4nW2R5c3Byb3NpdW0gdGhlIGJhcmIgb2YgYW4gYXJyb3ddJzsKK+mPlj4nW2ZpZ2h0IGVuZF0nOwor6Y+XPidbc3RyaWtlXSc7Civpj5g+J1t0aW5rbGVdJzsKK+mPnT4nW3Ryb3dlbF0nOwor6Y+hPidbbWlycm9yXSc7Civpj6Q+J1tjYXJ2ZV0nOwor6Y+lPidbcnVzdF0nOwor6Y+oPidbZW5ncmF2aW5nIHRvb2xdJzsKK+mQgz4nW2N5bWJhbHNdJzsKK+mQhz4nW3ZhbmFkaXVtXSc7CivpkJA+J1tmZXR0ZXJzXSc7CivpkJM+J1tmZXJydWxlXSc7CivpkJQ+J1tkYWdnZXJdJzsKK+mQmD4nW2Nsb2NrXSc7CivpkJk+J1tsYW1wXSc7CivpkJo+J1tzb2Z0IHN0ZWVsXSc7CivpkKE+J1tpcm9uXSc7CivpkKs+J1tlbmdyYXZpbmcgdG9vbF0nOwor6ZC1PidbaXJvbl0nOwor6ZC2PidbbWV0YWwgcmluZ10nOwor6ZC4PidbYmVsbF0nOwor6ZC6PidbZnJ5aW5nIHBhbl0nOworIyLpkYE+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mRhD4nW21lbHRdJzsKK+mRkT4nW21pcnJvcl0nOwor6ZGSPidbbWlycm9yXSc7CivpkZM+J1tzcGVhcl0nOwor6ZGaPidbZHJpbGxdJzsKK+mRmz4nW21pbmVdJzsKK+mRnj4nW3NvbGRlcl0nOwor6ZGgPidbbWVsdF0nOwor6ZGiPidbZmlsZV0nOwor6ZGqPidbZmlyZXBsYWNlXSc7CivpkbA+J1trZXldJzsKK+mRtT4nW2phcl0nOwor6ZG3PidbdHdlZXplcnNdJzsKK+mRvD4nW2dvbmddJzsKK+mRvT4nW2RyaWxsXSc7Civpkb4+J1tiZWxscyBodW5nIG9uIGhvcnNlXSc7Civpkb8+J1tjaGlzZWxdJzsKK+mSgT4nW2EgbWF0dG9ja10nOwor6ZW3PidbbG9uZ10nOwor6ZaAPidbZ2F0ZV0nOwor6ZaCPidbYm9sdF0nOwor6ZaDPidbZmxhc2hdJzsKK+mWhz4nW3NodXRdJzsKK+mWiT4nW3NodXRdJzsKKyMi6ZaJPidbc2h1dF0nIiwKK+mWiz4nW29wZW5dJzsKK+mWjz4nW2ludGVyY2FsYXJ5XSc7CivplpE+J1tmZW5jZV0nOwor6ZaTPidbaW50ZXJ2YWxdJzsKK+mWlD4nW21vdXJuXSc7CisjIumWlD4nW21vdXJuXSciLAor6ZaYPidbc2x1aWNlXSc7Civplpk+J1txdWFycmVsXSc7CivplqA+J1tpbnRlcmNhbGFyeV0nOwor6ZaiPidbZnJvbnRpZXIgcGFzc10nOwor6ZajPidbY2hhbWJlcl0nOwor6ZakPidbc21hbGwgc2lkZSBkb29yXSc7CivplqU+J1twb3dlcmZ1bCBhbmQgaW5mbHVlbnRpYWwgZ3JvdXBdJzsKK+mWpz4nW2JvaXN0ZXJvdXNdJzsKK+mWqD4nW3NtYWxsIGVudHJhbmNlXSc7Civplq0+J1t2aWxsYWdlIG9mIHR3ZW50eS1maXZlIGZhbWlsaWVzXSc7CivplrI+J1tleGFtaW5lXSc7Civplrk+J1tjYXN0cmF0ZV0nOwor6Za7PidbdmlsbGFnZSBnYXRlXSc7Civplrw+J1tibG9ja10nOwor6Za+PidbdGhyZXNob2xkXSc7Civpl4M+J1thbG9uZV0nOwor6ZeHPidbY2xvc2VdJzsKK+mXij4nW2Jyb2FkXSc7Civpl4w+J1tkb29yIHNjcmVlbl0nOwor6ZeNPidbdG93ZXIgb3ZlciBjaXR5IGdhdGVdJzsKK+mXlD4nW2Nsb3NlXSc7Civpl5U+J1t3YXRjaCB0b3dlcl0nOwor6ZeWPidbcnVzaCBpbl0nOwor6ZeYPidbc3RydWdnbGVdJzsKK+mXnD4nW2Zyb250aWVyIHBhc3NdJzsKK+mXoT4nW2V4cGxhaW5dJzsKK+mXoj4nW29wZW5dJzsKK+mXpT4nW2Rvb3JdJzsKK+mYnD4nW21vdW5kXSc7CivpmKE+J1tmb290cGF0aHMgYmV0d2VlbiBmaWVsZHNdJzsKK+mYqD4nW2luIGRpc3RyZXNzXSc7CivpmKo+J1toaWxsc2lkZSBmYXJtbGFuZF0nOwor6ZiuPidbYW5jaWVudCBtdXNpY2FsIGluc3RydW1lbnQ6IHN1cm5hbWVdJzsKK+mYrz4nW2ZvdW5kYXRpb25dJzsKK+mYsj4nW2RlZmVuZF0nOwor6Zi7PidbaW1wZWRlXSc7CivpmL8+J1twcmVmaXggdG8gbmFtZV0nOwor6ZmAPidbc3RlZXAgYmFua10nOwor6ZmCPidbZGFtXSc7CivpmYQ+J1thZGhlcmUgdG9dJzsKK+mZiz4nW25hcnJvd10nOwor6ZmMPidbZm9vdCBwYXRoIGJldHdlZW4gcmljZSBmaWVsZHNdJzsKK+mZjT4nW2Rlc2NlbmRdJzsKKyMi6ZmNPidbZGVzY2VuZF0nIiwKK+mZkD4nW2JvdW5kYXJ5XSc7CivpmZs+J1tzdGVwcyBsZWFkaW5nIHRocm9uZV0nOwor6ZmcPidbbmFycm93XSc7CivpmZ0+J1ttb3VudGFpbiBwYXNzXSc7CivpmZ4+J1twcm9tb3RlXSc7CivpmZ8+J1tjbGltYl0nOwor6ZmiPidbY291cnR5YXJkXSc7CivpmaM+J1tjb2x1bW5dJzsKK+mZpD4nW2VsaW1pbmF0ZV0nOwor6ZmlPidbc3VibWVyZ2VdJzsKKyMi6ZmlPidbc3VibWVyZ2VdJyIsCivpmao+J1thY2NvbXBhbnldJzsKK+mZrD4nW2Nvcm5lcl0nOwor6ZmwPidbXCJmZW1hbGVcIiBwcmluY2lwbGVdJzsKK+mZsj4nW2Zyb250aWVyXSc7CivpmbM+J1tleGhpYml0XSc7CivpmbU+J1toaWxsXSc7CivpmbY+J1twb3R0ZXJ5XSc7Civpmbc+J1tzdWJtZXJnZV0nOwor6Zm4PidbbGFuZF0nOwor6Zm6PidbbmFycm93IHBhc3NdJzsKK+mZvT4nW1wibWFsZVwiIHByaW5jaXBsZV0nOwor6ZqFPidbY29ybmVyXSc7CivpmoY+J1twcm9zcGVyb3VzXSc7Civpmog+J1tjb3ZlXSc7Civpmoo+J1t0ZWFtXSc7Civpmos+J1tTdWkgZHluYXN0eV0nOwor6ZqNPidbZHJ5IGRpdGNoXSc7Civpmo4+J1tzdGFpcnNdJzsKK+majz4nW2ZvbGxvd10nOwor6ZqUPidbc2VwYXJhdGVdJzsKK+malT4nW2ZhbGxdJzsKK+malz4nW2hpZ2hdJzsKK+mamD4nW25hcnJvd10nOwor6ZqZPidbY3JhY2tdJzsKK+mamz4nW2JvcmRlcl0nOwor6ZqcPidbc2VwYXJhdGVdJzsKKyMi6ZqcPidbc2VwYXJhdGVdJyIsCivpmqM+J1tuZWlnaGJvcl0nOwor6ZqnPidbdHVubmVsXSc7Civpmqg+J1tmb2xsb3ddJzsKK+maqj4nW25hcnJvdyBwYXNzXSc7CivpmrA+J1tsb3ddJzsKK+masT4nW2hpZGVdJzsKK+masj4nW3N0YWxsaW9uXSc7CivpmrQ+J1ttb3VudGFpbiBsb2NhdGVkIGJldHdlZW4gc2hhYW54aV0nOwor6Zq2Pidbc3Vic2VydmllbnRdJzsKK+matz4nW2JlIHN1YnNlcnZpZW50IHRvXSc7Civpmrg+J1tiZSBzdWJzZXJ2aWVudCB0b10nOwor6Zq5PidbYmlyZF0nOwor6Zq7Pidbc2luZ2xlXSc7Civpmrw+J1thcXVpbGluZSAobm9zZSldJzsKK+mbgD4nW3NwYXJyb3ddJzsKK+mbgT4nW3dpbGQgZ29vc2VdJzsKK+mbhD4nW21hbGUgb2Ygc3BlY2llc10nOwor6ZuFPidbZWxlZ2FudF0nOwor6ZuGPidbYXNzZW1ibGVdJzsKK+mbhz4nW2VtcGxveV0nOwor6ZuJPidbcGhlYXNhbnRdJzsKK+mbiz4nW3N1cGVyaW9yXSc7Civpm4w+J1tmZW1hbGVdJzsKK+mbjT4nW2hhcm1vbnldJzsKK+mbjj4nW29zcHJleV0nOwor6ZuRPidbbWl4ZWRdJzsKK+mblT4nW2VuZ3JhdmVdJzsKK+mblj4nW2FsdGhvdWdoXSc7Civpm5k+J1tzZXQgb2YgdHdvXSc7Civpm5s+J1tjaGlja10nOwor6ZucPidbbWl4ZWRdJzsKK+mboj4nW2xlYXZlXSc7Civpm6M+J1tkaWZmaWN1bHRdJzsKK+mbqD4nW3JhaW5dJzsKK+mbqj4nW3Nub3ddJzsKKyMi6ZurPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpm7A+J1thdG1vc3BoZXJlXSc7Civpm7I+J1tjbG91ZHNdJzsKK+mbtj4nW3plcm9dJzsKK+mbtz4nW3RodW5kZXJdJzsKK+mbuT4nW2hhaWxdJzsKK+mbuz4nW2VsZWN0cmljaXR5XSc7CivpnIA+J1tuZWVkXSc7CivpnIQ+J1tza3ldJzsKK+mchj4nW2Egc3VkZGVuIHBlYWwgb2YgdGh1bmRlcl0nOwor6ZyHPidbc2hha2VdJzsKK+mciD4nW3RvcnJlbnRpYWwgcmFpbnNdJzsKK+mcij4nW3NwaXJpdF0nOwor6ZyNPidbcXVpY2tseV0nOwor6ZyOPidbbGlnaHQgcmFpbl0nOwor6ZyPPidbZmFsbGluZyBvZiBzbm93IGFuZCByYWluXSc7CivpnJE+J1tiZSBtb2lzdGVuZWRdJzsKK+mckz4nW3JhaW5ib3ddJzsKK+mclj4nW2xvbmcgc3BlbGwgb2YgcmFpbl0nOwor6ZyZPidbc2xlZXRdJzsKK+mcnD4nW2Zyb3N0XSc7CivpnJ4+J1tyb3N5IGNsb3Vkc10nOwor6ZykPidbZHJpcF0nOwor6ZynPidbZm9nXSc7CivpnKo+J1tsb25nIGFuZCBoZWF2eSByYWluXSc7CivpnLA+J1toYWlsXSc7CivpnLI+J1tkZXddJzsKK+mcuD4nW3J1bGUgYnkgbWlnaHQgcmF0aGVyIHRoYW4gcmlnaHRdJzsKK+mcuT4nW3RodW5kZXJdJzsKK+mcvT4nW2NsZWFyIHVwIGFmdGVyIHJhaW4gY2Vhc2UgYmUgYW5nXSc7CivpnL4+J1ttaXN0eV0nOwor6Z2CPidbdGh1bmRlcmNsYXBdJzsKK+mdhD4nW2Nsb3VkeSBza3ldJzsKK+mdhj4nW2Nsb3VkeSBza3ldJzsKK+mdiD4nW3NwaXJpdF0nOwor6Z2JPidbY2xvdWR5IHNreV0nOwor6Z2SPidbYmx1ZV0nOwor6Z2WPidbcGFjaWZ5XSc7CivpnZk+J1txdWlldF0nOwor6Z2cPidbcXVpZXRdJzsKK+mdnj4nW25vdF0nOwor6Z2gPidbbGVhbiBvbl0nOwor6Z2hPidbZGl2aWRlXSc7CivpnaI+J1tmYWNlXSc7CisjIumdpD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Z2mPidbdGltaWRdJzsKK+mdqD4nW2RpbXBsZXNdJzsKK+mdqT4nW2xlYXRoZXJdJzsKK+mdqz4nW3N0cm9uZyBhbmQgcGxpYWJsZV0nOwor6Z2tPidbc3Ryb25nIGFuZCBwbGlhYmxlXSc7CivpnbE+J1tzdHJvbmcgYW5kIHBsaWFibGVdJzsKK+mdtD4nW2Jvb3RzXSc7CisjIumduT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Z26Pidbc3RvY2tpbmddJzsKK+mdvD4nW3RhcnRhcnNdJzsKKyMi6Z6BPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpnoQ+J1t0byB3b3JrIGhpZGVzXSc7CivpnoU+J1tsZWF0aGVyIHN0cmFwIG92ZXIgaG9yc2UnJ3MgbmVja10nOworIyLpnoU+J1tsZWF0aGVyIHN0cmFwIG92ZXIgaG9yc2UnJ3MgbmVja10nIiwKK+meiz4nW3Nob2VzXSc7Civpno0+J1tzYWRkbGVdJzsKK+mejz4nW2JpbmRdJzsKKyMi6Z6PPidbYmluZF0nIiwKK+memD4nW3NjYWJiYXJkXSc7CisjIumenD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Z6gPidbYm93XSc7CivpnqM+J1t0YW5dJzsKK+mepj4nW2xlYXRoZXIgc3RhcF0nOwor6Z6oPidbdHJpYmVdJzsKK+meqz4nW2ludGVycm9nYXRlXSc7Civpnq0+J1t3aGlwXSc7CisjIumesz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6Z60Pidbc2FkZGxlIHVwIGhvcnNlXSc7Civpn4M+J1t0YXRhcnNdJzsKK+mfhj4nW3N3aW5nXSc7Civpn4g+J1tzb2Nrc10nOwor6Z+LPidbdGFubmVkIGxlYXRoZXJdJzsKK+mfkz4nW2ZlbmNlXSc7Civpn5w+J1tzaGVhdGhdJzsKK+mfrT4nW3NjYWxsaW9uXSc7Civpn64+J1tzY2FsbGlvbl0nOwor6Z+yPidbYnJlYWsgb3Igc21hc2ggaW50byBwaWVjZXNdJzsKK+mfsz4nW3NvdW5kXSc7Civpn7U+J1tyaHltZV0nOwor6Z+2PidbbXVzaWMgb2YgZW1wZXJvciBTaHVuXSc7Civpn7s+J1tyaHltZV0nOwor6Z+/PidbbWFrZSBzb3VuZF0nOwor6aCBPidbcGFnZV0nOwor6aCCPidbdG9wXSc7CivpoIM+J1ttb21lbnRdJzsKK+mghT4nW25lY2tdJzsKK+mghj4nW29iZXldJzsKK+mgiD4nW211c3RdJzsKK+mgjD4nW2xhdWRdJzsKK+mgjz4nW2ZseSBkb3duIG9yIGRvd253YXJkXSc7CivpoJA+J1twcmVwYXJlXSc7CivpoJE+J1tvYnN0aW5hdGVdJzsKK+mgkj4nW2NvbmZlcl0nOwor6aCTPidbcGF1c2VdJzsKK+mglz4nW2xlYW4gb25lIHNpZGVdJzsKK+mgmD4nW25lY2tdJzsKK+mgmj4nW25lY2tdJzsKK+mgoT4nW2ZseSB1cHdhcmRdJzsKK+mgpD4nW2NoZWVrc10nOwor6aCsPidbY2hlZWtzXSc7CivpoK0+J1toZWFkXSc7CivpoLQ+J1tyaWNlIHRhc3NlbF0nOwor6aC3PidbY2hpbl0nOwor6aC4PidbbmVja10nOwor6aC7PidbZnJlcXVlbnRseV0nOwor6aC8PidbcmVseV0nOwor6aC9PidbcnVpbmVkXSc7CivpoYY+J1tncmFpbl0nOwor6aGLPidbbG93ZXIgcGFydCBvZiBmYWNlXSc7CivpoYw+J1tmb3JlaGVhZF0nOwor6aGNPidbZm9yZWhlYWRdJzsKK+mhjj4nW2phd10nOwor6aGPPidbZmFjZV0nOwor6aGUPidbZmFjZV0nOwor6aGVPidbbWFuaWZlc3RdJzsKK+mhmD4nW2Rlc2lyZV0nOwor6aGbPidbdG9wXSc7CivpoZ4+J1tjbGFzc10nOwor6aGnPidbbG9vayBiYWNrXSc7Civpoas+J1tzaGl2ZXJdJzsKK+mhrz4nW21hbmlmZXN0XSc7CivpobA+J1tmcm93bl0nOwor6aGxPidbc2t1bGxdJzsKK+mhsz4nW3RoZSB0ZW1wb3JhbCBib25lXSc7CivpobQ+J1tjaGVlayBib25lc10nOwor6aKoPidbd2luZF0nOworIyLpoqg+J1t3aW5kXSciLAor6aKvPidbc291bmQgb2Ygd2luZF0nOwor6aKxPidbdGFpcGhvb25dJzsKK+mitj4nW2N5Y2xvbmVdJzsKK+mjgz4nW3doaXJsd2luZF0nOwor6aOEPidbd2hpcmx3aW5kXSc7Civpo4Y+J1t3aGlybHdpbmRdJzsKK+mjmz4nW2ZseV0nOwor6aOcPidbZmxpcCBvdmVyXSc7Civpo58+J1tlYXRdJzsKK+mjoj4nW2h1bmdlcl0nOwor6aOpPidbc3R1ZmZlZCBkdW1wbGluZ3NdJzsKK+mjqz4nW3N1cmZlaXRlZF0nOwor6aOtPidbb3JkZXJdJzsKK+mjrj4nW2RyaW5rXSc7Civpo68+J1tjb29rZWQgcmljZV0nOwor6aOyPidbZHJpbmtdJzsKK+mjtD4nW3N3ZWV0LW1lYXRzXSc7Civpo7w+J1tyYWlzZSBhbmltYWxzXSc7Civpo70+J1tlYXQgaGVhcnRpbHldJzsKK+mjvj4nW2RlY29yYXRlXSc7CivppIM+J1tzdHVmZmVkIGR1bXBsaW5nc10nOwor6aSFPidbcmljZS1jYWtlc10nOwor6aSJPidbcmF0aW9ucyBhbmQgcGF5IGZvciBzb2xkaWVyc10nOwor6aSKPidbcmFpc2VdJzsKK+mkjD4nW2JhaXRdJzsKK+mkkD4nW2VhdF0nOwor6aSSPidbaHVuZ3J5XSc7CivppJM+J1tiZSBodW5ncnldJzsKK+mklD4nW2VhdF0nOwor6aSYPidbc3VycGx1c10nOworIyLppJ0+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mknj4nW2ZhcmV3ZWxsIHBhcnR5XSc7CivppKA+J1tyaWNlLWNha2VzXSc7CivppKE+J1twYXN0cnkgZmlsbGluZ10nOwor6aSkPidbaW5jaXRlXSc7CivppKg+J1twdWJsaWMgYnVpbGRpbmddJzsKK+mkrD4nW3BvcnJpZGdlXSc7CivppK4+J1thIGxlZ2VuZGFyeSBhbmltYWxdJzsKK+mkvT4nW21ha2UgcHJlc2VudCBvZiBmb29kXSc7CivppL4+J1tkaXN0aWxsXSc7CisjIumlgT4nW2NhcnJ5IG1lYWwgdG8gd29ya2VycyBpbiBmaWVsZF0nIiwKK+mlhT4nW3N0ZWFtZWQgYnJlYWRdJzsKK+mliT4nW3RpbWUgb2YgZmFtaW5lIG9yIGNyb3AgZmFpbHVyZV0nOwor6aWLPidbb2ZmZXIgZm9vZCBzdXBlcmlvcl0nOwor6aWMPidbZmVlZF0nOwor6aWQPidbc3BvaWxlZF0nOwor6aWRPidbc3RhcnZlXSc7CivppZI+J1tib3VudGlmdWxdJzsKK+mllT4nW2dsdXR0b25vdXNdJzsKK+mllz4nW2hvc3QgYmFucXVldF0nOwor6aaWPidbaGVhZF0nOwor6aaXPidbY2hlZWtib25lXSc7Civpppg+J1tjdXQgb2ZmIGxlZnQgZWFyXSc7Civpppk+J1tmcmFncmFudF0nOwor6aalPidbZnJhZ3JhbmNlXSc7Civppqg+J1tmcmFncmFudF0nOwor6aasPidbaG9yc2VdJzsKK+mmrT4nW2RyaXZlXSc7Civppq4+J1tzdXJuYW1lXSc7CivpprM+J1tnbyBxdWlja2x5IG9yIHN3aWZ0bHldJzsKK+mmtD4nW3RhbWVdJzsKKyMi6aa8PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpp4E+J1t2YXJpY29sb3JlZF0nOworIyLpp4M+J1tnYWxsb3BdJyIsCivpp4U+J1tyZWxheSBzdGF0aW9uXSc7Civpp4Y+J1tzcHVyIGhvcnNlIG9uXSc7Civpp4g+J1tzcHVyIGhvcnNlIG9uXSc7Civpp5A+J1t0byBiZSBzdGF0aW9uZWQgYXRdJzsKK+mnkT4nW3RpcmVkXSc7Civpp5I+J1tjb2x0XSc7Civpp5U+J1tkcml2ZV0nOwor6aeYPidbdGlyZWRdJzsKK+mnmz4nW3NhaWxdJzsKK+mnnT4nW2NhbWVsXSc7Civpp58+J1t0ZWFtIG9mIGZvdXIgaG9yc2VzXSc7Civpp6I+J1t0ZWFtIG9mIGhvcnNlc10nOwor6aetPidbdGVycmlmeV0nOwor6aeuPidbYSBraW5kIG9mIGZpZXJjZSBhbmltYWxdJzsKK+mnsT4nW3doaXRlIGhvcnNlIHcuIGJsYWNrIG1hbmVdJzsKKyMi6aexPidbd2hpdGUgaG9yc2Ugdy4gYmxhY2sgbWFuZV0nIiwKK+mnuD4nW2dhbGxvcGluZ10nOworIyLpp7s+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mnvz4nW2V4Y2VsbGVudCBob3JzZV0nOwor6aiBPidbZ2FsbG9wIGhvcnNlXSc7CivpqIU+J1twaWViYWxkIGhvcnNlXSc7CivpqI4+J1tyaWRlIGhvcnNlYmFja10nOwor6aiPPidbcGllYmFsZCBob3JzZV0nOwor6aiSPidbaGFyYXNzXSc7CivpqJM+J1t0ZXN0XSc7CivpqJk+J1tzd2luZGxlXSc7CivpqKg+J1tkYXBwbGVkXSc7CivpqKs+J1tyYWlzZV0nOwor6aiwPidbZmx5XSc7CivpqLc+J1toYXJhc3NdJzsKK+movj4nW211bGVdJzsKK+mpgD4nW3N1ZGRlbmx5XSc7CivpqYI+J1t0d28gb3V0c2lkZSBvbmVzIGluIHRocmVlIGhvcnNlXSc7CivpqYM+J1tjaGFyZ2VyXSc7CivpqYU+J1tzcHVyIGhvcnNlIG9uXSc7CivpqY0+J1tleGNlbGxlbnQgaG9yc2VdJzsKK+mplT4nW3NwaXJpdGVkIGhvcnNlXSc7CivpqZc+J1t0ZXN0XSc7CivpqZo+J1tmcmlnaHRlbl0nOwor6ambPidbcmVsYXkgc3RhdGlvbl0nOwor6amfPidbcHJvY2VkdXJlXSc7CivpqaI+J1tkb25rZXldJzsKK+mppD4nW2dhbGxvcCBhYm91dCB3aXRoIGhlYWQgdXBsaWZ0ZWRdJzsKK+mppT4nW3Rob3JvdWdoYnJlZCBob3JzZV0nOwor6ampPidbaGFwcHldJzsKK+mpqj4nW3B1cmUgYmxhY2sgaG9yc2VdJzsKK+mpqz4nW2hvcnNlc10nOwor6aqoPidbYm9uZV0nOwor6aqtPidbc2hpbiBib25lXSc7CivpqrA+J1tkaWVdJzsKK+mquD4nW3NrZWx0b25dJzsKK+mqvD4nW2JvbmVdJzsKK+mrgD4nW2J1dHRvY2tzXSc7Civpq4Q+J1tib25lIG1hcnJvd10nOwor6auPPidbc2t1bGxdJzsKK+mrkT4nW3NrdWxsXSc7Civpq5M+J1tib25lIG1hcnJvd10nOwor6auUPidbYm9keV0nOwor6auYPidbaGlnaF0nOwor6auePidbaGlnaF0nOwor6aufPidbaGFpcl0nOwor6auiPidbd2lnXSc7Civpq6M+J1tzaW1pbGFyIHRvXSc7Civpq6Y+J1tmbG93aW5nIGhhaXIgb2YgeW91bmcgY2hpbGRdJzsKK+mrqj4nW2hhaXJdJzsKK+mrqz4nW2NoaWxkcmVuJydzIGhhaXIgc3R5bGVdJzsKK+mrrT4nW211c3RhY2hlXSc7Civpq64+J1toYWlyXSc7Civpq68+J1tiZWFyZF0nOworIyLpq7E+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mrtD4nW2Rpc2hldmVsZWQgaGFpcl0nOworIyLpq7c+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mruz4nW2hhaXIgcm9sbGVkIHVwIGluIGEgYnVuXSc7CivprIY+J1tsYXhdJzsKK+msmD4nW2JlYXV0aWZ1bCBoYWlyXSc7CivprJo+J1tiZWFyZF0nOwor6ayfPidbZHJlc3MgaGFpciBpbiBjb2lsZWQga25vdF0nOwor6ayiPidbaGFpciBvbiB0ZW1wbGVzXSc7CivprKM+J1tob3JzZScncyBtYW5lXSc7CivprKU+J1tzdHJ1Z2dsZV0nOwor6aynPidbcXVhcnJlbF0nOwor6ayoPidbYm9pc3Rlcm91c10nOwor6aypPidbZmV1ZF0nOwor6ayqPidbc3RydWdnbGVdJzsKK+msrj4nW2xvdHMgKHRvIGJlIGRyYXduKV0nOwor6ayvPidbc2FjcmlmaWNpYWwgd2luZV0nOwor6ayxPidbbHV4dXJpYW50XSc7CivprLI+J1t0eXBlIG9mIGNhbGRyb25dJzsKK+msuz4nW3NlbGxdJzsKK+msvD4nW2dob3N0XSc7CivprYE+J1tjaGllZl0nOwor6a2CPidbc291bF0nOwor6a2DPidbZHJvdWdodCBkZW1vbl0nOwor6a2EPidbdmlnb3JdJzsKK+mthT4nW2tpbmQgb2YgZm9yZXN0IGRlbW9uXSc7CivprY0+J1tkZW1vbnNdJzsKK+mtjj4nW2Ega2luZCBvZiBtb25zdGVyXSc7CivprY8+J1traW5nZG9tIG9mIHdlaV0nOwor6a2RPidbYSBtb250YWluIGRlbW9uIHJlc2VtYmxpbmcgdGlnZXJdJzsKK+mtlD4nW2RlbW9uXSc7CivprZg+J1tuaWdodG1hcmVdJzsKK+mtmj4nW2Zpc2hdJzsKK+mtrz4nW2Zvb2xpc2hdJzsKK+mttD4nW2JyZWFtXSc7CisjIumugT4nW3RoZSBib25pdG9dJyIsCivpro4+J1tzaGVhdGZpc2hdJzsKK+mukT4nW2FiYWxvbmVdJzsKK+mukj4nW2NhcnBdJzsKK+mukz4nW21pbmNlZCBhbmQgc2FsdGVkIGZpc2hdJzsKKyMi6a6TPidbbWluY2VkIGFuZCBzYWx0ZWQgZmlzaF0nIiwKKyMi6a6TPidbbWluY2VkIGFuZCBzYWx0ZWQgZmlzaF0nIiwKK+munz4nW2FuZ2xlcmZpc2hdJzsKK+muoD4nW2Ega2luZCBvZiBzaGFkIHdpdGggYSBoZWFkIGxpa2UgYSBzdHVyZ2Vvbl0nOworIyLprqg+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+muqj4nW2tpbmQgb2Ygc3R1cmdlb25dJzsKK+muqz4nW3NoYXJrXSc7Civprq0+J1tzYWxtb25dJzsKK+murj4nW2ZyZXNoXSc7CisjIumutD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLprrk+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mvgD4nW2dpYW50IGZpc2hdJzsKK+mvhj4nW3RoZSBza2F0ZSBvciByYXldJzsKK+mviT4nW2NhcnBdJzsKK+mvij4nW3NoYXJrXSc7Civpr48+J1thIGRpYWxlY3QuLi4uLi4uLiBuYW1lIG9mIGZpc2hdJzsKKyMi6a+RPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIumvkj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6a+UPidbbXVsbGV0XSc7Civpr5Y+J1ttYWNrZXJlbF0nOwor6a+bPidbcGFncm9zb211cyBtYWpvcl0nOwor6a+hPidbaGVycmluZ10nOwor6a+iPidbY3J5cHRvYnJhbmNodXMgamFwb25pY3VzXSc7CisjIumvoz4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6a+kPidbc3Bhd25dJzsKK+mvqD4nW3doYWxlXSc7Civpr7A+J1tzaGVhdF0nOworIyLpr7E+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6a+xPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCisjIumvsT4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAorIyLpsIQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6bCGPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpsIg+J1tmbGF0ZmlzaF0nOwor6bCJPidbc3R1cmdlb25dJzsKKyMi6bCKPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpsIw+J1tsb2FjaF0nOwor6bCNPidbbG9hY2hdJzsKK+mwkD4nW2FsbGlnYXRvcl0nOwor6bCSPidbYWJhbG9uZV0nOwor6bCTPidbZmlzaCBnaWxsc10nOworIyLpsJQ+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mwlT4nW3NocmltcF0nOwor6bCbPidbc2FyZGluZV0nOworIyLpsKE+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6bCkPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpsKU+J1todWdlIGZpc2hdJzsKK+mwrT4nW2Zpbl0nOwor6bCuPidbc2FyZGluZV0nOworIyLpsK8+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKKyMi6bCvPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpsLI+J1todWdlIHNlYSB0dXJ0bGVdJzsKK+mwuT4nW3NraXBqYWNrXSc7CisjIumwuj4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bC7PidbZWVsXSc7CivpsL4+J1tzd2ltbWluZyBibGFkZGVyIG9mIGZpc2hdJzsKKyMi6bGGPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivpsYc+J1thbmdsZXJmaXNoXSc7CivpsYg+J1tjb2RmaXNoXSc7CivpsZI+J1tiYXJiZWxdJzsKK+mxlz4nW2Zpc2ggc2NhbGVzXSc7CisjIumxmD4nW3N0dXJnZW9uXSciLAor6bGgPidbbWluY2VkIGZpc2hdJzsKK+mxpz4nW3NuYWtlaGVhZF0nOworIyLpsbY+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mxuD4nW3NlYSBwZXJjaF0nOwor6bOlPidbYmlyZF0nOwor6bOnPidbd2lsZCBkdWNrXSc7Civps6k+J1twaWdlb25dJzsKK+mzqz4nW3dpbGQgZ29vc2VdJzsKK+mzrD4nW3dpbGQgZHVja10nOworIyLps7A+J1suLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLl0nIiwKK+mzsz4nW21hbGUgcGhvZW5peF0nOwor6bO0PidbY3J5IG9mIGJpcmQgb3IgYW5pbWFsXSc7Civps7Y+J1traXRlXSc7CivptIM+J1tzaHJpa2VdJzsKK+m0hj4nW2JpcmQgcmVzZW1ibGluZyBzZWNyZXRhcnkgZmFsY29uXSc7CivptIc+J1tidXN0YXJkXSc7CivptIg+J1t3aWxkIGdvb3NlXSc7CivptIk+J1tjcm93XSc7CivptI4+J1tzZWFndWxsXSc7CivptJI+J1tzcGVjaWVzIG9mIGxhcmtdJzsKK+m0lT4nW29zdHJpY2hdJzsKK+m0mz4nW21hbGUgbWFuZGFyaW4gZHVja10nOwor6bSfPidba2l0ZV0nOwor6bSjPidbc3BlY2llcyBvZiB0YWl3YW4gcGlnZW9uXSc7CivptKY+J1tmZW1hbGUgbWFuZGFyaW4gZHVja10nOwor6bSoPidbZHVja10nOwor6bSqPidbc3dvb3BdJzsKK+m0qz4nW2Egc25pcGVdJzsKK+m0rD4nW29yaW9sZV0nOwor6bS7Pidbc3BlY2llcyBvZiB3aWxkIHN3YW5dJzsKKyMi6bS+PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivptL8+J1twaWdlb25dJzsKKyMi6bWBPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivptYQ+J1traXRlXSc7CisjIum1hD4nW2tpdGVdJyIsCisjIum1hD4nW2tpdGVdJyIsCisjIum1kD4nWy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXSciLAor6bWRPidbY3Vja29vXSc7CivptZk+J1thIHNocmlrZV0nOwor6bWcPidbcGVsaWNhbl0nOwor6bWdPidbZ29vc2VdJzsKK+m1nj4nW2dvb3NlXSc7CivptaA+J1t0YXJnZXRdJzsKK+m1oT4nW3NwZWNpZXMgb2YgcGFycm90XSc7CisjIum1oT4nW3NwZWNpZXMgb2YgcGFycm90XSciLAor6bWsPidbZmFidWxvdXMgYmlyZCBvZiBlbm9ybW91cyBzaXplXSc7Civpta8+J1tiaXJkXSc7CivptbI+J1ttYWdwaWVdJzsKKyMi6bW6PidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivptoc+J1t0aHJ1c2hdJzsKK+m2iT4nW3F1YWlsXSc7Civpto8+J1tjaGlja2VuXSc7Civptpo+J1tvc3ByZXldJzsKKyMi6bakPidbLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5dJyIsCivptqk+J1tkdWNrXSc7Civptqs+J1t0aHJ1c2hdJzsKK+m2rz4nW29yaW9sZV0nOworIyLptrE+J1tzb2FyXSciLAor6ba0PidbY3JhbmVdJzsKK+m2uD4nW1tub3QgZm91bmQgaW4gYW55IGRpY3Rpb25hcnldXSc7Civptro+J1t3YWd0YWlsXSc7Civptrs+J1thIGtpbmQgb2YgcGlnZW9uXSc7Civpt4E+J1tmaXNoaGF3ayBib3cgb3IgcHJvd10nOwor6beCPidbc3BhcnJvdyBoYXdrXSc7Civpt4Q+J1tjaGlja2VuXSc7Civpt4Y+J1tiaXJkIG5hbWVdJzsKK+m3jz4nW2JpcmQgbmFtZV0nOwor6beTPidbcGFydHJpZGdlXSc7Civpt5k+J1toYXdrXSc7Civpt6Y+J1t3cmVuXSc7CisjIum3qz4nW3R1cnF1b2lzZSBraW5nZmlzaGVyXSciLAor6bevPidbd3Jlbl0nOwor6beyPidbY29uZG9yXSc7Civpt7g+J1tzbmlwZV0nOwor6be5PidbZWFnbGVdJzsKK+m3uj4nW2hlcm9uXSc7Civpt70+J1tvcmllbnRhbCBidWxsZmluY2hdJzsKK+m4mj4nW3NwZWNpZXMgb2YgcGFycm90XSc7CivpuJs+J1tjcmFuZV0nOwor6biePidbZmFidWxvdXMgYmlyZF0nOwor6bm1Pidbc2FsaW5lIHNvaWxdJzsKK+m5uD4nW2Fsa2FsaW5lXSc7Civpubk+J1tzYWx0eV0nOwor6bm9Pidbc2FsdF0nOwor6bm/PidbZGVlcl0nOwor6bqBPidbcm91Z2hdJzsKK+m6iD4nW3NwZWNpZXMgb2YgZGVlcl0nOwor6bqLPidbZWxrXSc7Civpuow+J1tzdGFnXSc7CivpupE+J1tmYXduXSc7CivpupI+J1tsZWdlbmRhcnkgYXVzcGljaW91cyBhbmltYWxdJzsKK+m6kz4nW2Zvb3Qgb2YgaGlsbF0nOwor6bqVPidbbXVudGphYyBkZWVyXSc7Civpupc+J1tiZWF1dGlmdWxdJzsKK+m6nT4nW211c2sgZGVlcl0nOwor6bqfPidbZmVtYWxlIG9mIGNoaW5lc2UgdW5pY29ybl0nOwor6bqlPidbd2hlYXRdJzsKK+m6pj4nW3doZWF0XSc7Civpuqk+J1ticmFuXSc7Civpuqo+J1tmbG91cl0nOworIyLpuqs+J1tmbG91cl0nIiwKK+m6uD4nW2JyYW5dJzsKK+m6uT4nW3llYXN0XSc7Civpuro+J1tmbG91cl0nOwor6bq7PidbaGVtcF0nOwor6bq8PidbaW50ZXJyb2dhdGl2ZSBmaW5hbCBwYXJ0aWNsZV0nOwor6bq+PidbcGVubmFudF0nOwor6bq/PidbSV0nOwor6buEPidbeWVsbG93XSc7Civpu4w+J1tzY2hvb2xdJzsKK+m7jT4nW2dsdXRpbm91cyBtaWxsZXRdJzsKK+m7jj4nW3N1cm5hbWVdJzsKK+m7jz4nW3N0aWNrIHRvXSc7Civpu5A+J1tzdGlja10nOwor6buSPidbYmxhY2tdJzsKK+m7lD4nW2JsYWNrXSc7Civpu5g+J1tzaWxlbnRdJzsKK+m7mT4nW3NpbGVudF0nOwor6bubPidbYmxhY2tlbiBleWVicm93c10nOwor6bucPidbZGlzbWlzc10nOwor6budPidbYmxhY2tdJzsKK+m7nj4nW2RvdF0nOwor6bugPidbc2x5XSc7Civpu6U+J1t0YXR0b29pbmcgZmFjZV0nOwor6buoPidbcG9saXRpY2FsIHBhcnR5XSc7Civpu68+J1tkYXJrXSc7Civpu7Q+J1ttb2xkXSc7Civpu7Y+J1ttb2xlXSc7Civpu7c+J1tkaXNob25vcl0nOwor6bu5PidbZW1icm9pZGVyeV0nOwor6bu7Pidbc3BlY2lhbCBwYXR0ZXJuIG9mIGVtYnJvaWRlcnldJzsKK+m7vD4nW2VtYnJvaWRlcmVkIG9mZmljaWFsIG9yIHNhY3JpZmljXSc7Civpu70+J1t0byBzdHJpdmVdJzsKK+m8hz4nW2h1Z2Ugc2VhIHR1cnRsZV0nOwor6byIPidbZnJlc2ggd2F0ZXIgdHVydGxlXSc7CivpvI4+J1tsYXJnZV0nOwor6byTPidbZHJ1bV0nOwor6byVPidbcmF0dGxlIG9mIGRydW1zXSc7CivpvKA+J1tyYXRdJzsKK+m8oT4nW3JhdF0nOwor6bysPidbd2Vhc2VsXSc7CivpvLs+J1tub3NlXSc7CivpvL4+J1tzbm9yZSBsb3VkbHldJzsKK+m9ij4nW2V2ZW5dJzsKK+m9iz4nW3ZlZ2V0YXJpYW4gZGlldF0nOwor6b2OPidbdGFrZSBpbiBib3RoIGhhbmRzIGFuZCBvZmZlciB0b10nOwor6b2PPidbYnJlYWsgb3Igc21hc2ggaW50byBwaWVjZXNdJzsKK+m9kj4nW3RlZXRoXSc7CivpvZQ+J1tsb3NlIGJhYnkgdGVldGggYW5kIGdldCBhZHVsdCB0ZV0nOwor6b2fPidbaXJyZWd1bGFyIHRlZXRoXSc7CivpvaA+J1tsb3NlIGJhYnkgdGVldGggYW5kIGdldCBhZHVsdCB0ZWV0aF0nOwor6b2hPidbYWdlXSc7CivpvaI+J1thZ2VdJzsKK+m9oz4nW2FjdF0nOwor6b2mPidbZ3Vtc10nOwor6b2nPidbYml0ZV0nOwor6b2qPidbbmFycm93XSc7Civpvaw+J1t1bmV2ZW4gdGVldGhdJzsKK+m9sj4nW3Rvb3RoIGRlY2F5XSc7CivpvbY+J1twYWxhdGVdJzsKK+m9tz4nW25hcnJvd10nOwor6b6NPidbZHJhZ29uXSc7CivpvpU+J1tuaWNoZV0nOwor6b6cPidbdHVydGxlIG9yIHRvcnRvaXNlXSc7Civpvp0+J1thdXR1bW5dJzsKK+m+oD4nW2ZsdXRlXSc7CisKKyMgZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcmVzb3VyY2VzL1RyYW5zbGl0ZXJhdG9yX0thbmppX09uUm9tYWppLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfS2FuamlfT25Sb21hamkudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc0MzU5MTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2RlbW8vdHJhbnNsaXQvcmVzb3VyY2VzL1RyYW5zbGl0ZXJhdG9yX0thbmppX09uUm9tYWppLnR4dApAQCAtMCwwICsxLDYyMTYgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBEYXRlOiBUdWUgSmFuIDIzIDEyOjQyOjAzIDIwMDEKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEthbmppLU9uUm9tYWppCisKK+S4gT5UZWk7CivkuIM+U2hpY2hpOwor5LiHPk1hbjsKK+S4iD5Kb3U7CivkuIk+U2FuOwor5LiKPkpvdTsKK+S4iz5LYTsKK+S4jT5GdTsKK+S4jj5ZbzsKK+S4kD5LYWk7CivkuJE+Q2h1dTsKK+S4lD5TaGE7CivkuJU+SGk7CivkuJY+U2U7CivkuJc+U2VpOwor5LiYPkt5dXU7CivkuJk+SGVpOwor5LiePlNob3U7CivkuKE+UnlvdTsKK+S4pj5IZWk7CivkuKo+S2E7CivkuK0+Q2h1dTsKK+S4sT5LYW47CivkuLI+U2VuOwor5Li2PkNodTsKK+S4uD5HYW47CivkuLk+VGFuOwor5Li7PlNodTsKK+S4vD5TZWk7CivkuL8+SGV0c3U7CivkuYI+R2FpOwor5LmDPkRhaTsKK+S5hT5LeXV1Owor5LmLPlNoaTsKK+S5jT5TYWt1Owor5LmOPktvOwor5LmPPkJvdTsKK+S5lT5LbzsKK+S5lj5LYWk7CivkuZc+Sm91Owor5LmYPkpvdTsKK+S5mT5PdHN1Owor5LmdPkt5dXU7CivkuZ4+S290c3U7CivkuZ8+WWE7CivkuaI+R2FpOwor5LmxPlJhbjsKK+S5sz5OeXV1Owor5Lm+PkthbjsKK+S6gD5LaTsKK+S6gj5SYW47CivkuoU+S2V0c3U7CivkuoY+UnlvdTsKK+S6iD5ZbzsKK+S6iT5Tb3U7Civkuoo+Smk7Civkuos+Smk7Civkuow+Tmk7Civkuo4+VTsKK+S6kT5VbjsKK+S6kj5HbzsKK+S6lD5HbzsKK+S6lT5TZWk7Civkupg+U2VuOwor5LqZPktvdTsKK+S6mz5TYTsKK+S6nD5BOwor5LqePkE7Civkup8+S3lva3U7CivkuqA+VG91Owor5LqhPkJvdTsKK+S6oj5Lb3U7CivkuqQ+S291Owor5LqlPkdhaTsKK+S6pj5Fa2k7Civkuqg+S3lvdTsKK+S6qz5LeW91Owor5LqsPkt5b3U7Civkuq0+VGVpOwor5LquPlJ5b3U7CivkurA+S2VpOwor5LqzPkhha3U7CivkurY+VGFuOwor5Lq6PkppbjsKK+S7gD5TaHV1Owor5LuBPkppbjsKK+S7gj5Sb2t1Owor5LuEPlNva3U7Civku4Y+RnU7Civku4c+S3l1dTsKK+S7ij5Lb247Civku4s+S2FpOwor5LuNPkpvdTsKK+S7jj5KdXU7Civku48+QnV0c3U7Civku5Q+U2hpOwor5LuVPlNoaTsKK+S7lj5UYTsKK+S7lz5Kb3U7Civku5g+RnU7Civku5k+U2VuOwor5LudPkRvdTsKK+S7nj5KaW47Civku58+U2VuOwor5LujPkRhaTsKK+S7pD5SZWk7Civku6U+STsKK+S7rT5KaW47Civku64+S2E7Civku7A+R3lvdTsKK+S7sj5DaHV1Owor5Lu2PktlbjsKK+S7tz5LYWk7Civku7s+TmluOwor5LyBPktpOwor5LyJPktvdTsKK+S8ij5JOwor5LyNPkdvOwor5LyOPktpOwor5LyPPkZ1a3U7CivkvJA+QmF0c3U7CivkvJE+S3l1dTsKK+S8mj5LYWk7CivkvJw+U2FpOwor5LydPkRlbjsKK+S8rz5IYWt1Owor5LywPktvOwor5Ly0PkhhbjsKK+S8tj5SZWk7CivkvLg+U2hpbjsKK+S8uj5TaGk7CivkvLw+Smk7CivkvL0+S3lhOwor5L2DPlRlbjsKK+S9hj5UYW47CivkvYc+Q2hvOwor5L2NPkk7CivkvY4+VGVpOwor5L2PPkp1dTsKK+S9kD5TYTsKK+S9kT5ZdXU7CivkvZM+VGVpOwor5L2VPkthOwor5L2XPlRhOwor5L2ZPllvOwor5L2aPkl0c3U7CivkvZs+QnV0c3U7CivkvZw+U2FrdTsKK+S9nT5Lb3U7CivkvZ4+TmVpOwor5L2pPkhhaTsKK+S9rz5Zb3U7CivkvbA+SGFrdTsKK+S9sz5LYTsKK+S9tT5IZWk7CivkvbY+S2l0c3U7Civkvbs+Q2hvdTsKK+S9vD5Lb3U7Civkvb8+U2hpOwor5L6DPkthbjsKK+S+hj5SYWk7Civkvog+U2hpOwor5L6LPlJlaTsKK+S+jT5KaTsKK+S+jz5TaHU7CivkvpE+WXV1Owor5L6WPlJvbjsKK+S+mD5UYTsKK+S+mz5LeW91Owor5L6dPkk7CivkvqA+S3lvdTsKK+S+oT5LYTsKK+S+qz5OZWk7Civkvq0+SmluOwor5L6uPkJ1Owor5L6vPktvdTsKK+S+tT5TaGluOwor5L62PlJ5bzsKK+S+vz5CZW47Civkv4I+S2VpOwor5L+DPlNva3U7Civkv4Q+R2E7Civkv4o+U2h1bjsKK+S/jj5TaG87Civkv5A+Umk7Civkv5E+WW91Owor5L+UPktlbjsKK+S/lz5ab2t1Owor5L+YPkZ1Owor5L+aPlJpOwor5L+bPkJlbjsKK+S/nT5IbzsKK+S/nz5TaGk7Civkv6E+U2hpbjsKK+S/rj5TaHV1Owor5L+vPkZ1Owor5L+zPkhhaTsKK+S/tT5IeW91Owor5L+2PlNodWt1Owor5L+4PkhvdTsKK+S/uj5FbjsKK+S/vj5IaTsKK+WAhT5TYWk7CivlgIY+UnlvdTsKK+WAiT5Tb3U7CivlgIs+S287CivlgI0+QmFpOwor5YCPPlNodWt1Owor5YCRPk1vbjsKK+WAkj5Ub3U7CivlgJQ+S3V0c3U7CivlgJY+S291Owor5YCZPktvdTsKK+WAmj5JOwor5YCfPlNoYWt1Owor5YChPlNob3U7CivlgKM+SG91Owor5YCkPkNoaTsKK+WApT5Lb3U7CivlgKY+S2VuOwor5YCoPkt5bzsKK+WAqT5TZW47CivlgKo+R2VpOwor5YCrPlJpbjsKK+WArD5UYWt1Owor5YCtPkk7CivlgLY+S3U7CivlgLk+S2VuOwor5YGDPkVuOwor5YGHPkthOwor5YGIPktldHN1Owor5YGJPkk7CivlgY8+SGVuOwor5YGQPkdhbjsKK+WBlT5LYWk7CivlgZY+U2hhOwor5YGaPlNha3U7CivlgZw+VGVpOwor5YGlPktlbjsKK+WBrD5Tb3U7CivlgbI+U2hpOwor5YG0PlNva3U7CivlgbU+VGVpOwor5YG2Pkd1dTsKK+WBuD5DaHV1Owor5YG9PkdpOwor5YKAPkthaTsKK+WChT5GdTsKK+WCjT5Cb3U7CivlgpE+S2V0c3U7Civlgpg+U2FuOwor5YKZPkJpOwor5YKaPktvdTsKK+WCrD5TYWk7Civlgq0+WW91Owor5YKyPkdvdTsKK+WCsz5EZW47CivlgrQ+VTsKK+WCtT5TYWk7Civlgrc+U2hvdTsKK+WCvj5LZWk7Civlg4I+Um91Owor5YOFPktpbjsKK+WDiT5TZW47Civlg4o+U2VuOwor5YONPkRvdTsKK+WDjz5ab3U7Civlg5E+S3lvdTsKK+WDlT5Cb2t1Owor5YOWPktpOwor5YOaPlJ5b3U7Civlg54+R2k7Civlg6M+U2VuOwor5YOlPkt5b3U7Civlg6c+U291Owor5YOtPlNlbjsKK+WDrj5Eb3U7Civlg7U+S3lvdTsKK+WDuT5LYTsKK+WDuz5IZWtpOwor5YSAPkdpOwor5YSBPlNodW47CivlhII+RG91Owor5YSEPk9rdTsKK+WEiT5LZW47CivlhJI+SnU7CivlhJQ+Q2h1dTsKK+WElT5TZWk7CivlhJY+UmFuOwor5YSYPkppbjsKK+WEmj5Cb3U7CivlhJ8+U2hvdTsKK+WEoT5SYWk7CivlhKo+WXV1Owor5YSyPkNobzsKK+WEtz5SZWk7CivlhLo+RGE7CivlhLs+VG91Owor5YS8PkdlbjsKK+WEvz5KaW47CivlhYA+S290c3U7CivlhYE+SW47CivlhYM+R2VuOwor5YWEPktlaTsKK+WFhT5KdXU7CivlhYY+Q2hvdTsKK+WFhz5LeW91Owor5YWIPlNlbjsKK+WFiT5Lb3U7CivlhYs+S29rdTsKK+WFjD5EYTsKK+WFjT5NZW47CivlhY4+VG87CivlhZA+Smk7CivlhZI+Smk7CivlhZQ+VG87CivlhZo+VG91Owor5YWcPlRvdTsKK+WFoj5LeW91Owor5YWlPk55dXU7Civlhag+WmVuOwor5YWpPlJ5b3U7Civlhao+WXU7Civlhas+SGFjaGk7Civlhaw+S291Owor5YWtPlJva3U7Civlha4+S2VpOwor5YWxPkt5b3U7CivlhbU+SGVpOwor5YW2PktpOwor5YW3Pkd1Owor5YW4PlRlbjsKK+WFvD5LZW47CivlhoA+S2k7CivlhoI+S2VpOwor5YaFPkRhaTsKK+WGhj5FbjsKK+WGiT5OZW47Civlhoo+U2F0c3U7Civlhow+U2F0c3U7Civlho0+U2FpOwor5YaPPktlaTsKK+WGkD5Cb3U7CivlhpE+Q2h1dTsKK+WGkj5Cb3U7CivlhpM+S291Owor5YaVPkJlbjsKK+WGlj5CZWtpOwor5YaXPkpvdTsKK+WGmT5TaGE7CivlhqA+S2FuOwor5YaiPkNob3U7CivlhqQ+RW47CivlhqU+TWVpOwor5YamPktvdTsKK+WGqD5GdTsKK+WGqT5TaGE7Civlhqo+QmVraTsKK+WGqz5IeW91Owor5YasPlRvdTsKK+WGsD5IeW91Owor5YaxPkdvOwor5YayPkNodXU7CivlhrM+S2V0c3U7CivlhrQ+R287CivlhrU+S3lvdTsKK+WGtj5ZYTsKK+WGtz5SZWk7Civlhr0+UmV0c3U7Civlh4Q+U2VpOwor5YeFPktvOwor5YeGPkp1bjsKK+WHiT5SeW91Owor5YeLPkNob3U7Civlh4w+UnlvdTsKK+WHjT5Ub3U7Civlh5Y+SnVuOwor5YebPlJpbjsKK+WHnD5SaW47Civlh50+R3lvdTsKK+WHoD5LaTsKK+WHoT5Cb247Civlh6Y+U2hvOwor5YetPkh5b3U7Civlh7A+S291Owor5YexPkdhaTsKK+WHtT5LYW47Civlh7Y+S3lvdTsKK+WHuD5Ub3RzdTsKK+WHuT5PdTsKK+WHuj5TaHV0c3U7Civlh70+S2FuOwor5Ye+PkthbjsKK+WIgD5Ub3U7CivliIM+SmluOwor5YiEPkppbjsKK+WIhj5CdW47CivliIc+U2V0c3U7CivliIg+R2FpOwor5YiKPkthbjsKK+WIiz5TZW47CivliI4+RnVuOwor5YiRPktlaTsKK+WIlD5LZXRzdTsKK+WIlz5SZXRzdTsKK+WInT5TaG87CivliKQ+SGFuOwor5YilPkJldHN1Owor5YinPkdvdTsKK+WIqT5SaTsKK+WIqj5TYW47CivliK4+S2F0c3U7CivliLA+VG91Owor5YizPktvOwor5Yi2PlNlaTsKK+WItz5TYXRzdTsKK+WIuD5LZW47CivliLk+U2F0c3U7CivliLo+U2hpOwor5Yi7Pktva3U7CivliYM+VGVpOwor5YmEPktlaTsKK+WJhz5Tb2t1Owor5YmKPlNha3U7CivliYs+S29rdTsKK+WJjD5SYXRzdTsKK+WJjT5aZW47CivliY8+U291Owor5YmUPlRla2k7CivliZY+Qm91Owor5YmbPkdvdTsKK+WJnj5LaTsKK+WJoz5LZW47CivliaQ+WmFpOwor5YmlPkhha3U7Civliak+Sm91Owor5YmqPlNlbjsKK+WJrz5GdWt1Owor5YmwPkpvdTsKK+WJsT5LZW47CivlibI+S2F0c3U7CivlibM+VG91Owor5Ym0PkdhaTsKK+WJtT5Tb3U7Civlib0+SHlvdTsKK+WJvz5TaG91Owor5YqDPktha3U7Civlioc+R2VraTsKK+WKiD5IZWtpOwor5YqJPlJ1Owor5YqNPktlbjsKK+WKkT5aYWk7CivlipI+S2VuOwor5YqUPktlbjsKK+WKmz5SeW9rdTsKK+WKnz5Lb3U7CivliqA+S2E7CivliqM+UmV0c3U7Civliqk+Sm87Civliqo+RG87Civliqs+R291Owor5YqsPkt1Owor5YqtPlNob3U7CivlirE+UmVpOwor5Yq0PlJvdTsKK+WKtT5LZW47Civlirk+S291Owor5Yq8PkthdHN1Owor5Yq+PkdhaTsKK+WLgT5LZWk7Civli4M+Qm90c3U7Civli4U+Q2hva3U7Civli4c+WXV1Owor5YuJPkJlbjsKK+WLjT5LZWk7Civli5I+Um9rdTsKK+WLlT5Eb3U7Civli5c+Qm91Owor5YuYPkthbjsKK+WLmT5NdTsKK+WLnT5TaG91Owor5YuePlJvdTsKK+WLnz5CbzsKK+WLoD5SaWt1Owor5YuiPlNlaTsKK+WLoz5TZWtpOwor5YukPktpbjsKK+WLpj5Tb3U7Civli6c+S2FuOwor5YuyPkt1bjsKK+WLsz5LdW47Civli7U+UmVpOwor5Yu4PkthbjsKK+WLuT5Ib3U7Civli7o+U2hha3U7Civli74+S291Owor5Yu/PkJ1dHN1Owor5YyFPkhvdTsKK+WMhj5Tb3U7CivljIg+S3lvdTsKK+WMjT5IbzsKK+WMjz5Ib3U7CivljJA+SG9rdTsKK+WMlT5IaTsKK+WMlj5LYTsKK+WMlz5Ib2t1Owor5YyZPlNoaTsKK+WMmj5Ib3U7CivljJ0+U291Owor5YygPlNob3U7CivljKE+S3lvdTsKK+WMoz5Lb3U7CivljKo+SGk7CivljK8+V2FpOwor5YyxPktpOwor5YyzPlJlbjsKK+WMuD5LZWk7CivljLk+SGl0c3U7CivljLo+S3U7CivljLs+STsKK+WMvz5Ub2t1Owor5Y2APkt1Owor5Y2BPkp1dTsKK+WNgz5TZW47CivljYU+U291Owor5Y2GPlNvdHN1Owor5Y2HPlNob3U7CivljYg+R287CivljYk+S2k7CivljYo+SGFuOwor5Y2NPkJhbjsKK+WNkT5IaTsKK+WNkj5Tb3RzdTsKK+WNkz5UYWt1Owor5Y2UPkt5b3U7CivljZc+TmFuOwor5Y2YPlRhbjsKK+WNmj5IYWt1Owor5Y2cPkJva3U7CivljZ4+SGVuOwor5Y2gPlNlbjsKK+WNpj5LYTsKK+WNqT5TZXRzdTsKK+WNrj5TaGk7Civlja8+Qm91Owor5Y2wPkluOwor5Y2xPktpOwor5Y2zPlNva3U7CivljbQ+S3lha3U7CivljbU+UmFuOwor5Y23PkthbjsKK+WNuD5TaGE7Civljbs+S3lha3U7Civljb8+S3lvdTsKK+WOgj5LYW47CivljoQ+WWFrdTsKK+WOlj5Cb3U7Civljpg+UmluOwor5Y6aPktvdTsKK+WOnz5HZW47CivljqA+U2hpOwor5Y6lPktldHN1Owor5Y6mPkthOwor5Y6oPlp1Owor5Y6pPkt5dXU7Civljq0+RW47Civljq4+U2hpOwor5Y6wPlNob3U7CivljrM+R2VuOwor5Y62PlNoaTsKK+WOuz5LeW87Civlj4I+U2FuOwor5Y+DPlNhbjsKK+WPiD5ZdXU7Civlj4k+U2hhOwor5Y+KPkt5dXU7Civlj4s+WXV1Owor5Y+MPlNvdTsKK+WPjT5IYW47Civlj44+U2h1dTsKK+WPlD5TaHVrdTsKK+WPlj5TaHU7Civlj5c+SnU7Civlj5k+Sm87Civlj5s+SGFuOwor5Y+fPlNvdTsKK+WPoT5FaTsKK+WPoj5Tb3U7Civlj6M+S291Owor5Y+kPktvOwor5Y+lPkt1Owor5Y+oPlRvdTsKK+WPqT5Lb3U7Civlj6o+U2hpOwor5Y+rPkt5b3U7Civlj6w+U2hvdTsKK+WPrT5IYXRzdTsKK+WPrj5UZWk7Civlj68+S2E7Civlj7A+RGFpOwor5Y+xPlNoaXRzdTsKK+WPsj5TaGk7Civlj7M+VTsKK+WPtj5LeW91Owor5Y+3PkdvdTsKK+WPuD5TaGk7CivlkIE+S3U7CivlkIM+S2l0c3U7CivlkIQ+S2FrdTsKK+WQiD5Hb3U7CivlkIk+S2ljaGk7CivlkIo+Q2hvdTsKK+WQiz5TdW47CivlkIw+RG91Owor5ZCNPk1laTsKK+WQjj5Lb3U7CivlkI8+Umk7CivlkJA+VG87CivlkJE+S291Owor5ZCbPkt1bjsKK+WQnT5SaW47CivlkJ8+R2luOwor5ZCgPkhhaTsKK+WQpj5IaTsKK+WQqT5GdW47CivlkKs+R2FuOwor5ZCsPktpbjsKK+WQrT5Lb3U7CivlkK4+U2VuOwor5ZC2PlRvdHN1Owor5ZC4Pkt5dXU7CivlkLk+U3VpOwor5ZC7PkZ1bjsKK+WQvD5Lb3U7CivlkL0+SW47CivlkL4+R287CivlkYA+R2E7CivlkYI+UnlvOwor5ZGGPkJvdTsKK+WRiD5UZWk7CivlkYk+R287CivlkYo+S29rdTsKK+WRjj5TZWtpOwor5ZGRPkRvbjsKK+WRnz5HZW47Civlkag+U2h1dTsKK+WRqj5KdTsKK+WRsD5TaGk7CivlkbE+S287CivlkbM+TWk7CivlkbU+S2E7CivlkbY+RG87Civlkbc+S291Owor5ZG7PlNoaW47Civlkbw+S287Civlkb0+TWVpOwor5ZKAPlNvOwor5ZKEPlRvdHN1Owor5ZKGPkhvdTsKK+WSiz5TYWt1Owor5ZKMPldhOwor5ZKOPkt5dXU7Civlko8+RWk7CivlkpA+SG87CivlkpI+U2h1Owor5ZKiPkdha3U7CivlkqQ+VGE7CivlkqU+S2k7Civlkqg+U2hpOwor5ZKrPlNoaTsKK+WSrD5Lb3U7Civlkq8+S2FrdTsKK+WSsj5TaG91Owor5ZKzPkdhaTsKK+WSuD5LYW47Civlkrw+S2E7Civlkr0+SW47Civlkr4+Um91Owor5ZOAPkFpOwor5ZOBPkhpbjsKK+WTgj5TaGluOwor5ZOEPktvdTsKK+WThz5BaTsKK+WTiD5Hb3U7Civlk4k+U2FpOwor5ZOhPkluOwor5ZOiPlJvdTsKK+WTpT5LYTsKK+WTpj5HYTsKK+WTqD5TaG91Owor5ZOpPlJpOwor5ZOtPktva3U7Civlk64+S291Owor5ZOyPlRldHN1Owor5ZO6PkhvOwor5ZO9PktvdTsKK+WUhD5CYWk7CivllIY+U2E7CivllIc+U2hpbjsKK+WUjz5LaTsKK+WUkD5Ub3U7CivllJQ+R287CivllJY+QTsKK+WUrj5TaHV1Owor5ZSvPll1aTsKK+WUsT5TaG91Owor5ZSzPlJlaTsKK+WUuD5UZW47CivllLk+WW87CivllL4+RGE7CivllYA+R2FpOwor5ZWEPlRha3U7CivllYU+VGFrdTsKK+WVhj5TaG91Owor5ZWMPktvdTsKK+WVjz5Nb247CivllZM+S2VpOwor5ZWWPlRhbjsKK+WVlz5UYW47CivllZw+U2V0c3U7CivllZ0+S2E7CivllaM+S2FuOwor5ZW7PlNoaTsKK+WVvD5UZWk7Civllb4+U2h1dTsKK+WWgD5LYWt1Owor5ZaDPk5hbjsKK+WWhD5aZW47Civlloc+UmF0c3U7Civllok+S291Owor5ZaKPkthbjsKK+WWiz5DaG91Owor5ZaYPlplbjsKK+WWmT5LYWk7Civllpo+S2FuOwor5ZacPktpOwor5ZadPkthdHN1Owor5ZaePlNva3U7Civllp8+S2k7Civllqc+S2VuOwor5ZaoPlJ5b3U7Civllqk+WXU7Civllqo+U291Owor5ZarPktpdHN1Owor5ZasPkt5b3U7Civllq4+VGFuOwor5Za2PkVpOwor5ZeEPlNhOwor5ZeFPkt5dXU7Civll4c+U2hva3U7Civll5Q+U2hpbjsKK+WXmj5POwor5ZecPlNoaTsKK+WXnz5TYTsKK+WXoz5TaGk7Civll6Q+U2hpOwor5Ze3PkdvdTsKK+WXuT5SZW47Civll70+U29rdTsKK+WXvj5Tb3U7CivlmIY+VGFuOwor5ZiJPkthOwor5ZiUPk91Owor5ZiWPlNha3U7CivlmJc+U2hvdTsKK+WYmD5LeW87CivlmJs+TWE7CivlmKk+S2E7CivlmK8+U2hvdTsKK+WYsT5TaG9rdTsKK+WYsj5Ub3U7CivlmLQ+U2hpOwor5Zi2PlNlaTsKK+WYuD5CdTsKK+WZgj5Tb247CivlmYw+U291Owor5ZmOPkl0c3U7CivlmZA+S2k7CivlmZs+R291Owor5ZmkPktpbjsKK+WZqD5LaTsKK+WZqj5Tb3U7Civlmas+STsKK+WZrD5aZWk7CivlmbQ+RnVuOwor5Zm4PlRvbjsKK+WagD5EZWk7CivlmoY+S291Owor5ZqHPktha3U7Civlmoo+SGk7Civlmo8+VGVpOwor5ZqUPlRlaTsKK+WaoD5SeXV1Owor5ZqiPk5vdTsKK+WapT5FbjsKK+Warj5Lb3U7CivlmrQ+R2VuOwor5Zq2Pk91Owor5Zq8PlNoYWt1Owor5ZuAPlRlbjsKK+WbgT5TaG91Owor5ZuCPkdvdTsKK+Wbgz5Tb3U7Civlm4g+R2VpOwor5ZuOPlNvOwor5ZuRPlNob2t1Owor5ZuTPktldHN1Owor5ZuXPkk7Civlm5g+S2FpOwor5ZuaPlNodXU7Civlm5s+U2hpOwor5ZuePkthaTsKK+WboD5JbjsKK+Wboz5EYW47Civlm64+S2E7Civlm7A+S29uOwor5ZuyPkk7Civlm7M+VG87Civlm7k+UmVpOwor5Zu6PktvOwor5Zu9Pktva3U7Civlm78+WXV1Owor5ZyAPktva3U7CivlnIM+SG87CivlnIQ+R3lvOwor5ZyIPktlbjsKK+WciT5HeW87CivlnIs+S29rdTsKK+WcjT5JOwor5ZyPPktlbjsKK+Wckj5FbjsKK+Wckz5FbjsKK+Wclj5UbzsKK+WcmD5EYW47CivlnJw+S2FuOwor5ZyfPkRvOwor5ZynPkF0c3U7CivlnKg+WmFpOwor5ZytPktlaTsKK+WcsD5DaGk7CivlnLs+S2k7CivlnYA+U2hpOwor5Z2CPkhhbjsKK+Wdhz5LaW47CivlnYo+Qm91Owor5Z2OPkthbjsKK+Wdjz5IYWk7CivlnZA+WmE7CivlnZE+S291Owor5Z2hPkhhOwor5Z2kPktvbjsKK+Wdpj5UYW47Civlnak+S2FuOwor5Z2qPkhlaTsKK+Wdvz5GdTsKK+Wegj5TdWk7Civlnog+VGFpOwor5Z6JPkhvdTsKK+Weiz5LZWk7CivlnpM+R2FpOwor5Z6gPkdpbjsKK+Weoj5Lb3U7CivlnqM+RW47CivlnqQ+VGV0c3U7Civln4A+U3VpOwor5Z+DPkFpOwor5Z+GPktha3U7Civln4s+TWFpOwor5Z+OPkpvdTsKK+Wfkj5SYWNoaTsKK+Wfkz5SYWNoaTsKK+WflD5IbzsKK+WfnD5TaG87Civln58+SWtpOwor5Z+gPkZ1Owor5Z+jPlNhaTsKK+WftD5TaG9rdTsKK+Wftz5TaGl0c3U7Civln7k+QmFpOwor5Z+6PktpOwor5Z+8PktpOwor5aCAPkt1dHN1Owor5aCCPkRvdTsKK+WghT5LZW47CivloIY+VGFpOwor5aCKPkE7CivloIs+SG91Owor5aCVPkRhOwor5aCZPkluOwor5aCdPkthOwor5aChPkhvdTsKK+WgpD5UZWk7CivloKo+S2FuOwor5aCvPkd5b3U7CivloLA+RW47CivloLE+SG91Owor5aC0PkpvdTsKK+WgtT5UbzsKK+Wguj5LYWk7CivloL0+S291Owor5aGBPlJ1aTsKK+Whij5LYWk7CivloYs+RWk7CivloZE+U287CivloZI+U2hpOwor5aGUPlRvdTsKK+Whlz5UbzsKK+WhmD5Ub3U7CivloZk+S2FrdTsKK+Whmj5DaG91Owor5aGePlNva3U7CivloaI+TzsKK+WhqT5FbjsKK+Whqz5UZW47CivlobI+Sm91Owor5aG1PkppbjsKK+WhuT5aYW47Civlob4+SnVrdTsKK+Wigz5LeW91Owor5aKFPlNobzsKK+Wikz5CbzsKK+Wilz5ab3U7Civlopw+VHN1aTsKK+Winz5LeW87Civloqg+Qm9rdTsKK+Wiqz5TaHVuOwor5aKuPkRhOwor5aKzPkZ1bjsKK+WiuD5TaG87Civloro+T3U7Civlors+U2hvdTsKK+Wivj5Lb247Civlo4E+SGVraTsKK+WjhT5Zb3U7Civlo4c+RGFuOwor5aOKPkthaTsKK+WjjD5Kb3U7Civlo5E+R2FrdTsKK+Wjkz5BdHN1Owor5aOVPkdvdTsKK+WjmD5SdWk7Civlo5k+S291Owor5aOcPlRhbjsKK+Wjnj5LYWk7Civlo58+UnlvdTsKK+WjpD5Kb3U7Civlo6U+VGVuOwor5aOrPlNoaTsKK+WjrD5KaW47Civlo64+U291Owor5aOvPlNvdTsKK+WjsD5TZWk7Civlo7E+SWNoaTsKK+Wjsj5CYWk7Civlo7c+S287Civlo7k+SWNoaTsKK+Wjuj5LbzsKK+Wjuz5TZWk7Civlo7w+S29uOwor5aO9Pkp1Owor5aSCPkNoaTsKK+WkiT5IZW47CivlpIo+U3VpOwor5aSPPkthOwor5aSQPktlaTsKK+WklT5TZWtpOwor5aSWPkdhaTsKK+WkmD5Cb3U7CivlpJk+U2h1a3U7CivlpJo+VGE7CivlpJs+VGE7CivlpJw+WWE7CivlpKI+TXU7CivlpKU+S2E7CivlpKc+VGFpOwor5aSpPlRlbjsKK+Wkqj5UYTsKK+Wkqz5GdTsKK+WkrD5LZXRzdTsKK+WkrT5Zb3U7CivlpK4+T3U7CivlpLE+U2hpdHN1Owor5aSyPlRvdTsKK+Wktz5JOwor5aS4PktvOwor5aS+PktvdTsKK+WlhD5FbjsKK+Wlhz5LaTsKK+WliD5OYTsKK+WliT5Ib3U7CivlpY4+S2VpOwor5aWPPlNvdTsKK+WlkD5LYW47CivlpZE+U2V0c3U7CivlpZQ+SG9uOwor5aWVPkVraTsKK+Wllz5Ub3U7CivlpZg+Sm91Owor5aWaPktlaTsKK+WloD5UZW47CivlpaI+U2hhOwor5aWlPk91Owor5aWnPk91Owor5aWoPlNob3U7Civlpak+UmVuOwor5aWqPkRhdHN1Owor5aWsPlNob3U7Civlpa4+RnVuOwor5aWzPkpvOwor5aW0PkRvOwor5aW4PkthbjsKK+WlvT5Lb3U7CivlpoE+U2hha3U7CivlpoI+Sm87CivlpoM+SGk7CivlpoQ+Qm91Owor5aaKPk5pbjsKK+WmjT5LZW47CivlppM+S2k7CivlppY+WW91Owor5aaZPk15b3U7Civlpps+U2hpOwor5aadPlNvdTsKK+Wmoz5IaTsKK+WmpT5EYTsKK+WmqD5Cb3U7Civlpqw+VG87CivlprI+RGF0c3U7Civlprk+TWFpOwor5aa7PlNhaTsKK+Wmvj5TaG91Owor5aeGPkJvOwor5aeJPlNoaTsKK+Wniz5TaGk7Civlp5A+U287Civlp5E+S287Civlp5M+U2VpOwor5aeUPkk7Civlp5k+TmluOwor5aeaPllvdTsKK+WnnD5LeW91Owor5aelPkJvOwor5aemPkthbjsKK+WnqD5JOwor5aeqPlRldHN1Owor5aerPktpOwor5ae2Pk91Owor5ae7PkluOwor5ae/PlNoaTsKK+WogT5JOwor5aiDPkE7CivlqIk+SGVpOwor5aiRPlNoYTsKK+WomD5Kb3U7CivlqJo+TmFuOwor5aicPkRhOwor5aifPktlbjsKK+WooD5TaGluOwor5ailPkdhOwor5aipPkJlbjsKK+Worz5HbzsKK+WotT5TaHU7CivlqLY+U2h1Owor5ai8PlNob3U7CivlqYA+QTsKK+WpgT5Sb3U7CivlqYY+QmE7CivlqYk+RW47CivlqZo+S29uOwor5amiPkhpOwor5ammPkZ1Owor5amqPlJhbjsKK+WprD5JbjsKK+Wpvz5TZWk7CivlqpI+QmFpOwor5aqaPkJpOwor5aqbPkVuOwor5aq8Pk91Owor5aq9PkJvOwor5aq+PktvdTsKK+WrgT5LYTsKK+Wrgj5Tb3U7Civlq4k+U2hpdHN1Owor5auLPkpvdTsKK+WrjD5LZW47Civlq5A+Sm91Owor5auWPkh5b3U7Civlq5c+T3U7Civlq6E+Q2hha3U7Civlq6M+RW47Civlq6Y+S291Owor5aupPkRvbjsKK+Wruj5LYW47Civlq7s+S2FuOwor5ayJPktpOwor5ayLPlNlbjsKK+WsjD5LeW91Owor5ayWPkhlaTsKK+Wsoj5Kb3U7CivlrKo+SGluOwor5aysPlNodTsKK+WssD5FaTsKK+Wssj5Kb3U7CivlrL4+UmFuOwor5a2APlNvdTsKK+Wtgz5Kb3U7CivlrYU+U2VuOwor5a2QPlNoaTsKK+WtkT5HZXRzdTsKK+WtlD5Lb3U7CivlrZU+WW91Owor5a2XPkppOwor5a2YPlNvbjsKK+Wtmj5GdTsKK+Wtmz5Cb3RzdTsKK+WtnD5TaGk7CivlrZ0+S291Owor5a2fPk1vdTsKK+Wtoz5LaTsKK+WtpD5LbzsKK+WtpT5EbzsKK+Wtpj5HYWt1Owor5a2pPkthaTsKK+Wtqz5Tb247CivlrbA+SnVrdTsKK+WtsT5TZW47CivlrbM+U2hpOwor5a21PkZ1Owor5a24Pkdha3U7Civlrbo+SnU7CivlroA+QmVuOwor5a6DPlRhOwor5a6FPlRha3U7Civlroc+VTsKK+WuiD5TaHU7Civlrok+QW47Civlros+U291Owor5a6MPkthbjsKK+WujT5OaWt1Owor5a6PPktvdTsKK+WulT5Ub3U7Civlrpc+U2h1dTsKK+WumD5LYW47Civlrpk+Q2h1dTsKK+Wumj5UZWk7Civlrps+RW47Civlrpw+R2k7Civlrp0+SG91Owor5a6fPkppdHN1Owor5a6iPkt5YWt1Owor5a6jPlNlbjsKK+WupD5TaGl0c3U7CivlrqU+WXV1Owor5a6mPkthbjsKK+Wurj5LeXV1Owor5a6wPlNhaTsKK+Wusz5HYWk7CivlrrQ+RW47CivlrrU+U2hvdTsKK+Wutj5LYTsKK+WuuD5TaGluOwor5a65PllvdTsKK+Wuvz5TaHVrdTsKK+Wvgj5KYWt1Owor5a+DPkVuOwor5a+EPktpOwor5a+FPkluOwor5a+GPk1pdHN1Owor5a+HPktvdTsKK+WviT5LYWt1Owor5a+MPkZ1Owor5a+QPkJpOwor5a+SPkthbjsKK+Wvkz5HdXU7Civlr5Q+U2hva3U7Civlr5s+S2FuOwor5a+dPlNoaW47Civlr54+QmFrdTsKK+Wvnz5TYXRzdTsKK+WvoT5LYTsKK+Wvoj5TaGluOwor5a+kPkdvOwor5a+lPlJ5b3U7Civlr6Y+Sml0c3U7Civlr6c+TmVpOwor5a+oPlNhaTsKK+WvqT5TaGluOwor5a+rPlNoYTsKK+Wvrj5SeW91Owor5a+wPkthbjsKK+Wvsz5Ib3U7Civlr7U+Q2hvdTsKK+Wvtj5Ib3U7Civlr7g+U3VuOwor5a+6PkppOwor5a++PlRhaTsKK+Wvvz5KdTsKK+WwgT5GdXU7CivlsII+U2VuOwor5bCEPlNoYTsKK+WwhT5Lb2t1Owor5bCGPlNob3U7CivlsIc+U2hvdTsKK+WwiD5TZW47CivlsIk+STsKK+Wwij5Tb247CivlsIs+SmluOwor5bCNPlRhaTsKK+Wwjj5Eb3U7CivlsI8+U2hvdTsKK+WwkT5TaG91Owor5bCTPkppOwor5bCWPlNlbjsKK+Wwmj5TaG91Owor5bCgPlNlbjsKK+Wwoj5PdTsKK+WwpD5ZdXU7CivlsKg+Qm91Owor5bCtPkd5b3U7CivlsLE+U2h1dTsKK+WwuD5TaGk7CivlsLk+SW47CivlsLo+U2hha3U7CivlsLs+S291Owor5bC8Pk5pOwor5bC9PkppbjsKK+Wwvj5CaTsKK+Wwvz5OeW91Owor5bGAPkt5b2t1Owor5bGBPkhpOwor5bGFPkt5bzsKK+Wxhj5LYWk7CivlsYg+S3V0c3U7CivlsYo+S2FpOwor5bGLPk9rdTsKK+WxjT5TaGk7CivlsY4+U2hpOwor5bGPPkhlaTsKK+WxkD5HZWtpOwor5bGRPlNldHN1Owor5bGTPktpOwor5bGVPlRlbjsKK+Wxnj5ab2t1Owor5bGgPlRvOwor5bGhPlJ1Owor5bGkPlNvdTsKK+WxpT5SaTsKK+WxrD5ab2t1Owor5bGuPlNhOwor5bGvPlRvbjsKK+WxsT5TYW47Civlsbk+S2l0c3U7Civlsow+S3l1dTsKK+WykD5LaTsKK+WykT5TaGluOwor5bKUPlNhOwor5bKhPktvdTsKK+WyqD5TbzsKK+WyqT5HYW47Civlsqs+U2h1dTsKK+WyrD5Lb3U7CivlsrE+VGFpOwor5bKzPkdha3U7CivlsrY+SGFrdTsKK+Wytz5CaW47Civlsrg+R2FuOwor5bK7PkppOwor5bK+PlNlbjsKK+Wzhz5Lb3U7Civls5k+Smk7Civls6E+S3lvdTsKK+WzqD5HYTsKK+WzqT5HYTsKK+Wzqj5Zb2t1Owor5bOtPlNob3U7Civls68+SG91Owor5bOwPkhvdTsKK+Wztj5Ub3U7Civls7o+S291Owor5bO7PlNodW47Civls70+S3lvdTsKK+W0hz5TdXU7CivltIs+S2E7CivltI4+S2k7CivltJE+S29uOwor5bSUPlNhaTsKK+W0lT5HYWk7CivltJY+R2FpOwor5bSXPktvdTsKK+W0mD5Sb247CivltJk+Um9uOwor5bSaPlJ5b3U7CivltJs+S3V0c3U7CivltJ8+R2luOwor5bSiPlNvdTsKK+W0qT5Ib3U7CivltYs+Qmk7CivltYw+S2FuOwor5bWOPkd1dTsKK+W1kD5SYW47CivltZI+R2FuOwor5bWcPktpOwor5bWpPlN1dTsKK+W1rD5LYWk7Civlta8+U2E7CivltbM+U2E7CivltoI+U2hvdTsKK+W2hD5TYW47Civltoc+S3U7Civltos+VG91Owor5baMPlRvdTsKK+W2kD5SeXV1Owor5badPlRvdTsKK+W2oj5HeW91Owor5basPkdpOwor5bauPktlbjsKK+W2tz5HaTsKK+W2uj5SZWk7Civltrw+U2hvOwor5ba9Pkdha3U7Civlt4k+U2FuOwor5beMPkdhbjsKK+W3jT5HaTsKK+W3kj5SYW47Civlt5M+VGVuOwor5beWPkdhbjsKK+W3mz5TZW47Civlt50+U2VuOwor5beePlNodXU7Civlt6E+SnVuOwor5bejPlNvdTsKK+W3pT5Lb3U7Civlt6Y+U2E7Civlt6c+S291Owor5beoPkt5bzsKK+W3qz5GdTsKK+W3rj5TaGk7Civlt7E+S2k7Civlt7I+STsKK+W3sz5TaGk7Civlt7Q+SGE7Civlt7U+U2hpOwor5be3PktvdTsKK+W3uz5LYW47Civlt70+U29uOwor5be+PktpbjsKK+W4gj5TaGk7CivluIM+RnU7CivluIY+SGFuOwor5biLPlNoaTsKK+W4jD5LaTsKK+W4kT5EbzsKK+W4lj5Kb3U7CivluJk+Q2hpdHN1Owor5biaPlNvdTsKK+W4mz5IYWt1Owor5bidPlRlaTsKK+W4pT5Tb3RzdTsKK+W4qz5TaGk7CivluK0+U2VraTsKK+W4rz5UYWk7CivluLA+S2k7CivluLM+Q2hvdTsKK+W4tj5UYWk7CivluLc+STsKK+W4uD5Kb3U7CivluL0+Qm91Owor5bmAPlRlaTsKK+W5gz5JOwor5bmEPkFrdTsKK+W5hT5GdWt1Owor5bmHPkhvdTsKK+W5jD5Lb3U7CivluY4+QmVraTsKK+W5lD5CYW47CivluZU+TWFrdTsKK+W5lz5LYWt1Owor5bmfPlNoaTsKK+W5oT5IYW47CivluaI+VG91Owor5bmjPkhlaTsKK+W5pD5IZWk7CivlubI+S2FuOwor5bmzPkhlaTsKK+W5tD5OZW47CivlubU+S2VuOwor5bm2PkhlaTsKK+W5uD5Lb3U7Civlubk+S2FuOwor5bm6PllvdTsKK+W5uz5HZW47Civlubw+WW91Owor5bm9Pll1dTsKK+W5vj5LaTsKK+W5vz5HZW47CivluoE+Q2hvdTsKK+W6gz5Lb3U7CivluoQ+U291Owor5bqHPkhpOwor5bqKPlNob3U7Civluo8+Sm87CivlupU+VGVpOwor5bqWPkhvdTsKK+W6lz5UZW47Civlupo+S291Owor5bqcPkZ1Owor5bqgPlNob3U7CivluqY+VGFrdTsKK+W6pz5aYTsKK+W6qz5LbzsKK+W6rT5UZWk7CivlurU+QW47CivlurY+U2hvOwor5bq3PktvdTsKK+W6uD5Zb3U7Civlu4E+U2hpOwor5buCPlNob3U7Civlu4M+SGFpOwor5buIPkthOwor5buJPlJlbjsKK+W7ij5Sb3U7Civlu5A+S3l1dTsKK+W7kz5LYWt1Owor5buWPlJ5b3U7Civlu5o+WnU7Civlu5s+VGVuOwor5budPlNoaTsKK+W7nz5CeW91Owor5bugPlNob3U7Civlu6E+QnU7Civlu6I+SGFpOwor5bujPktvdTsKK+W7qD5LYWk7Civlu6k+UmluOwor5busPlJ5bzsKK+W7sD5DaG91Owor5buxPllvdTsKK+W7sz5DaG91Owor5bu0PkluOwor5bu2PkVuOwor5bu3PlRlaTsKK+W7uD5UZWtpOwor5bu6PktlbjsKK+W7uz5LYWk7Civlu7w+RGFpOwor5bu+Pkt5b3U7Civlu78+SnV1Owor5byBPkJlbjsKK+W8gz5LaTsKK+W8hD5Sb3U7CivlvIk+Sm91Owor5byKPkhlaTsKK+W8iz5Zb2t1Owor5byMPkl0c3U7CivlvI0+Tmk7CivlvI8+U2hpa2k7CivlvJA+Tmk7CivlvJE+U2hpOwor5byTPkt5dXU7CivlvJQ+Q2hvdTsKK+W8lT5JbjsKK+W8lz5GdXRzdTsKK+W8mD5Lb3U7CivlvJs+U2hpOwor5byfPlRlaTsKK+W8pT5NaTsKK+W8pj5HZW47CivlvKc+S287CivlvKk+RG87CivlvK0+Qmk7CivlvK8+V2FuOwor5byxPkpha3U7CivlvLU+Q2hvdTsKK+W8tz5LeW91Owor5by4PkhvdTsKK+W8vD5IaXRzdTsKK+W8vj5EYW47CivlvYE+U2VpOwor5b2IPkRhbjsKK+W9ij5LeW91Owor5b2MPkJpOwor5b2OPldhbjsKK+W9kT5LZWk7CivlvZM+VG91Owor5b2WPlRhbjsKK+W9lz5TdWk7CivlvZk+STsKK+W9nD5JOwor5b2dPkk7CivlvaE+U2FuOwor5b2iPktlaTsKK+W9pj5HZW47Civlvak+U2FpOwor5b2qPkh5b3U7Civlvas+Q2hvdTsKK+W9rD5IaW47Civlva0+SG91Owor5b2wPlNob3U7CivlvbE+RWk7CivlvbM+VGVraTsKK+W9tz5Ib3U7Civlvbk+WWFrdTsKK+W9vD5IaTsKK+W9vz5GdXRzdTsKK+W+gD5PdTsKK+W+gT5TZWk7CivlvoI+U287CivlvoM+T3U7CivlvoQ+S2VpOwor5b6FPlRhaTsKK+W+hz5TaHVuOwor5b6IPktvbjsKK+W+ij5LYWk7Civlvos+Uml0c3U7Civlvow+R287CivlvpA+Sm87CivlvpE+S2VpOwor5b6SPlRvOwor5b6TPkp1dTsKK+W+lz5Ub2t1Owor5b6YPkhhaTsKK+W+mT5TaGk7Civlvp4+SnV1Owor5b6gPlJhaTsKK+W+oT5HeW87Civlvqg+S291Owor5b6pPkZ1a3U7Civlvqo+SnVuOwor5b6tPllvdTsKK+W+rj5CaTsKK+W+sz5Ub2t1Owor5b60PkNob3U7Civlvrk+VGV0c3U7Civlvrw+S3lvdTsKK+W+vT5LaTsKK+W/gz5TaGluOwor5b+FPkhpdHN1Owor5b+MPktpOwor5b+NPk5pbjsKK+W/lj5Tb247Civlv5c+U2hpOwor5b+YPkJvdTsKK+W/mT5Cb3U7Civlv5w+T3U7Civlv50+VGVuOwor5b+gPkNodXU7Civlv6Q+R287Civlv6s+S2FpOwor5b+wPlN1aTsKK+W/sT5TaGluOwor5b+1Pk5lbjsKK+W/uD5KaWt1Owor5b+7PktpbjsKK+W/vT5Lb3RzdTsKK+W/vz5GdW47CivmgI4+U2hpbjsKK+aAjz5Zb3U7CivmgJA+S291Owor5oCSPkRvOwor5oCVPkhhOwor5oCWPkZ1Owor5oCZPktvOwor5oCbPkRhdHN1Owor5oCcPlJlaTsKK+aAnT5TaGk7CivmgKA+VGFpOwor5oChPkk7CivmgKU+S3l1dTsKK+aApj5Ib3U7CivmgKc+U2VpOwor5oCoPkVuOwor5oCpPkppOwor5oCqPkthaTsKK+aAqz5GdXRzdTsKK+aArz5LeW91Owor5oCxPlNvdTsKK+aBgT5JbjsKK+aBgj5KdW47CivmgYM+Smk7CivmgYY+S291Owor5oGKPkt5b3U7CivmgYs+UmVuOwor5oGNPktvdTsKK+aBkD5LeW91Owor5oGSPktvdTsKK+aBlT5KbzsKK+aBmT5Zb3U7CivmgZo+STsKK+aBnz5LeW91Owor5oGgPkthaTsKK+aBoj5LYWk7CivmgaM+U2hpOwor5oGkPkp1dHN1Owor5oGlPkNoaTsKK+aBqD5Lb247Civmgak+T247Civmgao+S2FrdTsKK+aBqz5Eb3U7Civmgaw+VGVuOwor5oGtPkt5b3U7Civmga8+U29rdTsKK+aBsD5Lb3U7CivmgbU+S2VpOwor5oG3Pkt5dXU7CivmgoE+RW47CivmgoM+S29uOwor5oKEPlNob3U7Civmgok+U2hpdHN1Owor5oKLPlJpbjsKK+aCjD5UZWk7Civmgo0+S2FuOwor5oKSPll1dTsKK+aClD5LYWk7CivmgpY+SGFpOwor5oKXPkJhbjsKK+aCmj5TaG91Owor5oKbPlNlbjsKK+aCnz5HbzsKK+aCoD5ZdXU7CivmgqM+S2FuOwor5oKmPkV0c3U7Civmgqc+Umk7Civmgqk+Tm91Owor5oKqPkFrdTsKK+aCsj5IaTsKK+aCsz5Ub2t1Owor5oK0PlN1aTsKK+aCtT5DaG91Owor5oK2Pk1vbjsKK+aCuD5LaTsKK+aCvD5Ub3U7Civmgr0+U2VpOwor5oOFPkpvdTsKK+aDhj5DaHV1Owor5oOHPlRvbjsKK+aDkT5XYWt1Owor5oOTPktlbjsKK+aDmD5Cb3U7Civmg5o+S290c3U7Civmg5w+U2VraTsKK+aDnz5JOwor5oOgPktlaTsKK+aDoT5POwor5oOjPlNvdTsKK+aDpz5LdTsKK+aDqD5TYW47Civmg7A+RGE7Civmg7E+Tm91Owor5oOzPlNvdTsKK+aDtD5adWk7Civmg7Y+S291Owor5oO3PlNodW47Civmg7k+SmE7Civmg7o+U2VpOwor5oO7PlNva3U7CivmhIA+U2hvdTsKK+aEgT5TaHV1Owor5oSDPktlbjsKK+aEhj5LZW47CivmhIg+WXU7CivmhIk+WXU7CivmhI0+QmluOwor5oSOPkh5b2t1Owor5oSPPkk7CivmhJU+R2FrdTsKK+aEmj5HdTsKK+aEmz5BaTsKK+aEnz5LYW47CivmhKE+U291Owor5oSnPktpOwor5oSoPktha3U7CivmhKw+U287CivmhLQ+U291Owor5oS8PlNoaW47CivmhL0+SGFrdTsKK+aEvj5LaTsKK+aEvz5HZW47CivmhYI+WW91Owor5oWEPlJpdHN1Owor5oWHPkluOwor5oWIPkppOwor5oWKPktlbjsKK+aFiz5UYWk7CivmhYw+S291Owor5oWNPlVuOwor5oWOPlNoaW47CivmhZM+SHlvdTsKK+aFlT5CbzsKK+aFmD5TYW47CivmhZk+WmFuOwor5oWaPlphbjsKK+aFnT5Ub2t1Owor5oWfPkRvdTsKK+aFoj5NYW47CivmhaM+S2FuOwor5oWlPlpvdTsKK+aFpz5LZWk7Civmhag+R2FpOwor5oWrPlNob3U7Civmha4+UnlvOwor5oWvPlNob3U7CivmhbA+STsKK+aFsT5UYW47CivmhbM+S2FuOwor5oW0PlNob3U7CivmhbU+WW91Owor5oW2PktlaTsKK+aFtz5Lb3U7Civmhb4+WW9rdTsKK+aGgj5ZdXU7Civmhoc+S2VpOwor5oaKPkhhaTsKK+aGjj5ab3U7CivmhpA+UmVuOwor5oaRPkh5b3U7CivmhpQ+U2hvdTsKK+aGlj5HaW47Civmhpk+S2k7Civmhpo+VGFuOwor5oakPkZ1bjsKK+aGpz5Eb3U7Civmhqk+S2VpOwor5oarPkJpbjsKK+aGrD5LZWk7Civmhq4+QnU7CivmhrI+S2VuOwor5oa2Pk9rdTsKK+aGuj5UYW47Civmhr4+S2FuOwor5oeDPktpbjsKK+aHhj5Tb3U7Civmh4c+S29uOwor5oeIPkthaTsKK+aHiT5Zb3U7Civmh4o+T3U7Civmh4s+Qm91Owor5oeMPkVraTsKK+aHjT5SaW47Civmh5A+S2FpOwor5oejPk1vbjsKK+aHpj5EYTsKK+aHsj5DaG91Owor5oe0PlphbjsKK+aHtj5SYW47Civmh7c+S2FpOwor5oe4PktlbjsKK+aHuj5aYW47Civmh7w+S3U7Civmh70+S2FuOwor5oe+PlNob3U7Civmh78+STsKK+aIgD5SZW47CivmiIg+S2E7CivmiIk+RXRzdTsKK+aIij5CbzsKK+aIjD5KdXRzdTsKK+aIjT5KdTsKK+aIjj5KdXU7CivmiJA+U2VpOwor5oiRPkdhOwor5oiSPkthaTsKK+aIlD5TYW47CivmiJY+V2FrdTsKK+aImj5TZWtpOwor5oibPkthdHN1Owor5oidPlpva3U7CivmiJ4+S2F0c3U7CivmiJ8+R2VraTsKK+aIoT5LYW47CivmiKY+U2VuOwor5oiqPlNldHN1Owor5oiuPlJpa3U7CivmiK8+R2k7CivmiLA+U2VuOwor5oiyPkdpOwor5oizPlRha3U7CivmiLQ+VGFpOwor5oi4PktvOwor5oi7PlJlaTsKK+aIvz5Cb3U7CivmiYA+U2hvOwor5omBPkhlbjsKK+aJhz5TZW47CivmiYg+S287CivmiYk+SGk7CivmiYs+U2h1Owor5omNPlNhaTsKK+aJjj5TYXRzdTsKK+aJkz5EYTsKK+aJlT5GdXRzdTsKK+aJmD5UYWt1Owor5ombPktvdTsKK+aJnj5LYW47CivmiaA+U2E7CivmiaM+S291Owor5omuPkZ1bjsKK+aJsT5Tb3U7CivmibY+RnU7Civmibk+SGk7Civmibw+QWt1Owor5om+PkthOwor5om/PlNob3U7CivmioA+R2k7CivmioI+S3lvdTsKK+aKgz5CZW47CivmioQ+U2hvdTsKK+aKiT5LZXRzdTsKK+aKij5IYTsKK+aKkT5Zb2t1Owor5oqSPkpvOwor5oqTPlNvdTsKK+aKlD5Ib3U7CivmipU+VG91Owor5oqWPlRvdTsKK+aKlz5Lb3U7Civmipg+U2V0c3U7Civmips+SG91Owor5oqcPkJhdHN1Owor5oqePlRha3U7Civmiqs+SGk7Civmiqw+VGFpOwor5oqxPkhvdTsKK+aKtT5UZWk7Civmirk+TWF0c3U7Civmirs+U2hpbjsKK+aKvD5PdTsKK+aKvT5DaHV1Owor5ouCPkZ1dHN1Owor5ouFPlRhbjsKK+aLhj5UYWt1Owor5ouHPkJvOwor5ouIPkRlbjsKK+aLiT5SYXRzdTsKK+aLij5GdTsKK+aLjD5IYW47Civmi40+SGFrdTsKK+aLjz5EYTsKK+aLkD5LYWk7Civmi5E+S2FuOwor5ouSPkt5bzsKK+aLkz5UYWt1Owor5ouUPkJhdHN1Owor5ouXPk91Owor5ouYPktvdTsKK+aLmT5TZXRzdTsKK+aLmz5TaG91Owor5oucPkhhaTsKK+aLnT5IYWk7Civmi6A+S3lvOwor5ouhPktha3U7Civmi6w+S2F0c3U7Civmi60+U2hpa2k7Civmi64+S2l0c3U7Civmi68+Sm91Owor5ouxPkt5b3U7Civmi7M+S2VuOwor5ou1PlNvbjsKK+aLtj5TYXRzdTsKK+aLtz5Hb3U7Civmi74+U2h1dTsKK+aLvz5EYTsKK+aMgT5KaTsKK+aMgj5LZWk7CivmjIc+U2hpOwor5oyIPktldHN1Owor5oyJPkFuOwor5oyMPktha3U7CivmjJE+Q2hvdTsKK+aMmT5LeW87CivmjJ8+S3lvdTsKK+aMpz5LdTsKK+aMqD5BaTsKK+aMqz5aYTsKK+aMrz5TaGluOwor5oy6PlRlaTsKK+aMvT5CYW47CivmjL4+S3lvdTsKK+aMvz5Tb3U7CivmjYk+U29rdTsKK+aNjD5IYXRzdTsKK+aNjT5LYW47CivmjY8+RGV0c3U7CivmjZA+RW47CivmjZU+SG87CivmjZc+SG87CivmjZw+U291Owor5o2nPkhvdTsKK+aNqD5TaGE7Civmjak+UmV0c3U7Civmjas+TW9uOwor5o2uPkt5bzsKK+aNsj5LZW47CivmjbY+U3VpOwor5o23PlNob3U7Civmjbo+TmF0c3U7Civmjbs+TmVuOwor5o6APktpbjsKK+aOgz5Tb3U7Civmjog+SnU7Civmjok+VG91Owor5o6MPlNob3U7Civmjo4+S2k7Civmjo8+VG91Owor5o6SPkhhaTsKK+aOlj5Fa2k7Civmjpg+S3V0c3U7Civmjps+S2E7Civmjp8+VG91Owor5o6gPlJ5YWt1Owor5o6hPlNhaTsKK+aOoj5UYW47CivmjqM+U2VpOwor5o6lPlNldHN1Owor5o6nPktvdTsKK+aOqD5TdWk7Civmjqk+RW47Civmjqo+U287Civmjqs+U291Owor5o6sPktpa3U7CivmjrI+S2VpOwor5o60Pktha3U7Civmjrs+U291Owor5o6+PkVuOwor5o+APkthbjsKK+aPgz5TZW47Civmj4Q+WXU7Civmj4Y+S2k7Civmj4k+SnV1Owor5o+PPkJ5b3U7Civmj5A+VGVpOwor5o+SPlNvdTsKK+aPlj5ZdXU7Civmj5o+WW91Owor5o+bPkthbjsKK+aPoT5Ba3U7Civmj6M+U2hpOwor5o+pPkthaTsKK+aPrj5LaTsKK+aPtD5FbjsKK+aPtj5ZYTsKK+aPuj5Zb3U7CivmkIY+S291Owor5pCNPlNvbjsKK+aQjz5IYWt1Owor5pCTPlNhOwor5pCWPllvdTsKK+aQlz5Ub3U7CivmkJw+U291Owor5pCmPkpha3U7CivmkKg+VG91Owor5pCsPkhhbjsKK+aQrT5Ub3U7CivmkLQ+S2VuOwor5pC2PlNob3U7CivmkLo+S2VpOwor5pC+PlNha3U7CivmkYI+U2V0c3U7CivmkY4+S3l1dTsKK+aRmD5UZWtpOwor5pGnPlNhaTsKK+aRqT5NYTsKK+aRrz5TaGk7CivmkbY+VGFuOwor5pG4Pk1vOwor5pG6PlNob3U7CivmkoM+R2VraTsKK+aSiD5Sb3U7CivmkpI+U2FuOwor5pKTPkRvdTsKK+aSlT5TZWk7Civmkpo+TmVuOwor5pKePlNodTsKK+aSpD5UZXRzdTsKK+aSpT5IYXRzdTsKK+aSqT5SeW91Owor5pKrPkJ1Owor5pKtPkhhOwor5pKuPlNhdHN1Owor5pKwPlNhbjsKK+aSsj5Cb2t1Owor5pK5Pktha3U7Civmkrs+VGFjaGk7Civmkrw+S2FuOwor5pOBPllvdTsKK+aTgj5SYWk7Civmk4U+U2VuOwor5pOHPlRha3U7Civmk40+U291Owor5pOSPktpbjsKK+aTlD5UYW47Civmk5g+SGFrdTsKK+aTmj5LeW87Civmk6A+U2VpOwor5pOhPlRhaTsKK+aToj5UZWtpOwor5pOjPlRvdTsKK+aTpj5TYXRzdTsKK+aTpz5LeW87Civmk6w+R2k7Civmk68+SGluOwor5pOxPktha3U7Civmk7I+VGVraTsKK+aTtD5LYWt1Owor5pO2PlNlbjsKK+aTuj5IYWk7Civmk70+Unlha3U7Civmk74+Sm91Owor5pSAPkhhbjsKK+aUhT5TYW47CivmlJg+Sm91Owor5pScPktlaTsKK+aUnT5TZXRzdTsKK+aUoz5SZW47CivmlKQ+VGFuOwor5pSqPktha3U7CivmlKs+S2FrdTsKK+aUrD5SYW47CivmlK8+U2hpOwor5pS0Pkhva3U7CivmlLU+Qm9rdTsKK+aUtj5TaHV1Owor5pS3PktvdTsKK+aUuD5ZdXU7CivmlLk+S2FpOwor5pS7PktvdTsKK+aUvj5Ib3U7CivmlL8+U2VpOwor5pWFPktvOwor5pWIPktvdTsKK+aVjT5KbzsKK+aVjz5CaW47CivmlZE+S3l1dTsKK+aVlT5DaG9rdTsKK+aVlj5Hb3U7CivmlZc+SGFpOwor5pWYPkpvOwor5pWZPkt5b3U7CivmlZ0+SGVpOwor5pWePlNob3U7CivmlaI+S2FuOwor5pWjPlNhbjsKK+aVpj5Ub247Civmlaw+S2VpOwor5pWwPlN1dTsKK+aVsj5Lb3U7CivmlbQ+U2VpOwor5pW1PlRla2k7Civmlbc+RnU7Civmlbg+U3V1Owor5paCPlJlbjsKK+aWgz5IZWk7Civmloc+QnVuOwor5paIPkdha3U7Civmlok+U2VpOwor5paMPkhpbjsKK+aWjj5TYWk7CivmlpA+SGk7CivmlpE+SGFuOwor5paXPlRvOwor5paZPlJ5b3U7Civmlps+S29rdTsKK+aWnD5TaGE7Civmlp8+U2hpbjsKK+aWoT5BdHN1Owor5pakPktpbjsKK+aWpT5TZWtpOwor5panPkZ1Owor5parPlNoYWt1Owor5pasPlphbjsKK+aWrT5EYW47Civmlq8+U2hpOwor5pawPlNoaW47Civmlrc+RGFuOwor5pa5PkhvdTsKK+aWvD5POwor5pa9PlNoaTsKK+aXgT5Ib3U7Civml4M+U2VuOwor5peEPkJvdTsKK+aXhT5SeW87Civml4Y+SGFpOwor5peLPlNlbjsKK+aXjD5TZWk7Civml48+Wm9rdTsKK+aXkj5SeXV1Owor5peXPktpOwor5peZPkhhbjsKK+aXmz5IYW47Civml6A+QnU7Civml6E+S2k7Civml6I+S2k7Civml6U+TmljaGk7Civml6Y+VGFuOwor5penPkt5dXU7Civml6g+U2hpOwor5pepPlNvdTsKK+aXrD5KdW47Civml60+S3lva3U7Civml7E+S2FuOwor5pe6Pk91Owor5pe7PkJpbjsKK+aYgj5Lb3U7CivmmIM+U29rdTsKK+aYhj5Lb247CivmmIc+U2hvdTsKK+aYij5Lb3U7CivmmIw+U2hvdTsKK+aYjj5NZWk7CivmmI8+S29uOwor5piTPkVraTsKK+aYlD5TZWtpOwor5picPllvdTsKK+aYnz5TZWk7CivmmKA+RWk7CivmmKU+U2h1bjsKK+aYpz5NYWk7CivmmKg+U2FrdTsKK+aYrT5TaG91Owor5pivPlplOwor5pi0PkJvdTsKK+aYtT5KaXRzdTsKK+aYtj5DaG91Owor5pi8PkNodXU7CivmmL8+S291Owor5pmBPkNob3U7CivmmYI+Smk7CivmmYM+S291Owor5pmEPktvdTsKK+aZiT5TaGluOwor5pmLPlNoaW47CivmmY8+QW47CivmmZI+U2FpOwor5pmdPkNodXU7CivmmZ4+S2k7CivmmZ8+U2VpOwor5pmiPlNldHN1Owor5pmkPkdvOwor5pmmPkthaTsKK+aZpz5Lb3U7Civmmag+U2hpbjsKK+aZqT5CYW47Civmma4+RnU7Civmma8+S2VpOwor5pmwPlNla2k7CivmmbQ+U2VpOwor5pm2PlNob3U7Civmmbo+Q2hpOwor5pqBPkd5b3U7CivmmoM+SGk7CivmmoQ+S2VuOwor5pqHPkthOwor5pqIPlVuOwor5pqJPktpOwor5pqOPkVpOwor5pqRPlNobzsKK+aalj5EYW47Civmmpc+QW47Civmmpg+WW91Owor5pqdPk1laTsKK+aaoj5DaG91Owor5pqmPlJla2k7Civmmqs+WmFuOwor5pquPkJvOwor5pq0PkJvdTsKK+aauD5SeW91Owor5pq5PlNlbjsKK+aavD5IZXRzdTsKK+aavj5Ub247Civmm4E+S2k7Civmm4Q+WW91Owor5puHPkRvbjsKK+abiT5HeW91Owor5puWPkFpOwor5puZPlNobzsKK+abmj5Cb3U7Civmm5w+WW91Owor5pudPkJha3U7Civmm6A+S291Owor5pumPkdpOwor5pupPkRvdTsKK+absD5FdHN1Owor5puyPkt5b2t1Owor5puzPkVpOwor5pu0PktvdTsKK+abtT5FaTsKK+abtz5LYXRzdTsKK+abuD5TaG87Civmm7k+U291Owor5pu8PkJhbjsKK+abvT5abzsKK+abvj5TbzsKK+abvz5UYWk7CivmnIA+U2FpOwor5pyDPkthaTsKK+aciD5HZXRzdTsKK+aciT5ZdXU7CivmnIs+SG91Owor5pyNPkZ1a3U7CivmnI8+SGk7CivmnJQ+U2FrdTsKK+aclT5DaGluOwor5pyWPlJvdTsKK+aclz5Sb3U7CivmnJs+Qm91Owor5pydPkNob3U7CivmnJ4+S2k7CivmnJ8+S2k7CivmnKY+Qm91Owor5pynPlJvdTsKK+acqD5Cb2t1Owor5pyqPk1pOwor5pyrPk1hdHN1Owor5pysPkhvbjsKK+acrT5TYXRzdTsKK+acrj5KdXRzdTsKK+acsT5TaHU7CivmnLQ+Qm9rdTsKK+actj5EYTsKK+actz5Ub3U7CivmnLg+Unlva3U7CivmnLo+S2k7CivmnL0+S3l1dTsKK+acvz5TaGk7CivmnYY+S2FuOwor5p2JPlNhbjsKK+adjj5SaTsKK+adjz5LeW91Owor5p2QPlphaTsKK+adkT5Tb247CivmnZM+SHlvdTsKK+adlj5Kb3U7CivmnZk+WW9rdTsKK+adnD5EbzsKK+adnj5LbzsKK+adnz5Tb2t1Owor5p2gPktvdTsKK+adoT5Kb3U7CivmnaU+UmFpOwor5p2qPkJ5b3U7Civmna0+S291Owor5p2vPkhhaTsKK+adsD5LZXRzdTsKK+adsT5Ub3U7CivmnbI+S291Owor5p2zPllvdTsKK+adtT5TaG87Civmnbc+SGE7Civmnbw+Q2hvOwor5p2+PlNob3U7Civmnb8+SGFuOwor5p6FPktlaTsKK+aehz5IaTsKK+aeiT5PdTsKK+aeiz5Ib3U7Civmnow+RnVuOwor5p6QPlNla2k7CivmnpU+Q2hpbjsKK+aelz5SaW47Civmnpo+TWFpOwor5p6cPkthOwor5p6dPlNoaTsKK+aeoj5TdXU7CivmnqY+Um87Civmnqk+U2hvdTsKK+aerz5LbzsKK+aesz5LaTsKK+aetD5LYWk7CivmnrY+S2E7Civmnrc+S2E7Civmnrg+S3U7Civmnrk+SG91Owor5p+BPlRhOwor5p+EPkhlaTsKK+afhj5Sb3U7Civmn4o+U2h1dTsKK+afjj5GdTsKK+afjz5IYWt1Owor5p+QPkJvdTsKK+afkT5LYW47Civmn5M+U2VuOwor5p+UPk55dXU7Civmn5g+U2hhOwor5p+aPll1dTsKK+afnT5UYWt1Owor5p+ePlNha3U7Civmn6I+VGVpOwor5p+kPlNhOwor5p+nPktvOwor5p+pPkt5dXU7Civmn6w+S2FuOwor5p+uPlRvdHN1Owor5p+vPkthOwor5p+xPkNodXU7Civmn7M+Unl1dTsKK+aftD5TYWk7Civmn7U+U2FrdTsKK+afuz5TYTsKK+afvj5LeXV1Owor5p+/PlNoaTsKK+aghD5FaTsKK+agkz5TZW47CivmoJY+U2VpOwor5qCXPlJpdHN1Owor5qCePkthbjsKK+agoT5Lb3U7CivmoKI+SGFrdTsKK+agqT5LdTsKK+agqj5DaHU7CivmoKs+U29uOwor5qCyPkdvdTsKK+agtD5TZW47CivmoLg+S2FrdTsKK+aguT5Lb247CivmoLw+S291Owor5qC9PlNhaTsKK+ahgD5LZXRzdTsKK+ahgT5Lb3U7CivmoYI+S2VpOwor5qGDPlRvdTsKK+ahhj5LeW91Owor5qGIPkFuOwor5qGNPktvOwor5qGOPlNoaXRzdTsKK+ahkD5Eb3U7CivmoZE+U291Owor5qGTPkthbjsKK+ahlD5LaXRzdTsKK+ahmT5VOwor5qGcPk91Owor5qGfPlNhbjsKK+ahoz5Ub3U7Civmoac+S2FpOwor5qG0PkZ1Owor5qG2PlRvdTsKK+ahtz5LYWt1Owor5qG+Pkt1bjsKK+ahvz5LYW47CivmooE+UnlvdTsKK+aigz5UZWk7CivmooU+QmFpOwor5qKNPlNvdTsKK+aijz5Lb2t1Owor5qKTPlNoaTsKK+ailD5TaGk7Civmopc+S291Owor5qKbPkRhOwor5qKdPkpvdTsKK+ainz5LeW91Owor5qKgPlJ5bzsKK+aioj5TaG91Owor5qKmPk11Owor5qKnPkdvOwor5qKoPlJpOwor5qKtPlNhOwor5qKvPlRlaTsKK+aisD5LYWk7CivmorE+S29uOwor5qKzPlNvOwor5qK1PkZ1dTsKK+aitj5CaTsKK+aiuT5CaW47Civmorw+VG91Owor5qOEPktpOwor5qOGPlJpbjsKK+ajiT5NZW47Civmo4o+S2k7Civmo4s+S2k7Civmo40+S29uOwor5qOSPkJvdTsKK+ajlD5Lb247Civmo5U+U2h1Owor5qOXPlNvdTsKK+ajmD5LeW9rdTsKK+ajmj5Ib3U7Civmo58+VG91Owor5qOgPlRvdTsKK+ajoT5Lb3U7Civmo6M+VGVpOwor5qOnPlNhbjsKK+ajrj5TaGluOwor5qOvPkppbjsKK+ajsj5TZWk7Civmo7k+VG91Owor5qO6PkthbjsKK+akgD5XYW47CivmpIE+S2FrdTsKK+akhD5TZXRzdTsKK+akhT5JOwor5qSIPktpa3U7CivmpIs+UnlvdTsKK+akjD5Lb3U7CivmpI0+U2hva3U7CivmpI4+VHN1aTsKK+akjz5BOwor5qSSPlNob3U7CivmpJw+S2VuOwor5qSiPkthaTsKK+akpj5LZW47CivmpLA+WWE7CivmpLQ+VGFuOwor5qS2PlNodTsKK+akuT5DaGluOwor5qS9PlRlbjsKK+akvz5DaGluOwor5qWKPllvdTsKK+alkz5GdXU7CivmpZQ+U2V0c3U7CivmpZU+RGE7CivmpZk+Qm91Owor5qWaPlNvOwor5qWcPktvOwor5qWdPlJlbjsKK+alnj5Sb3U7CivmpaA+TmFuOwor5qWhPll1Owor5qWiPlNodXU7Civmpao+WW91Owor5qWrPlNodXU7Civmpa0+R3lvdTsKK+alrj5DaG87Civmpa8+SnVuOwor5qWzPkJhaTsKK+altD5UZWk7CivmpbU+R29rdTsKK+altz5LYWk7Civmpbg+U2h1dTsKK+aluT5FaTsKK+alvD5Sb3U7Civmpb0+R2FrdTsKK+amgj5HYWk7Civmpo4+S2E7CivmppE+RnU7CivmppQ+Um91Owor5qaVPllvdTsKK+ammz5TaGluOwor5qacPkJvdTsKK+amoD5CZWk7Civmpqc+SGk7Civmpq4+RWk7CivmprE+U3VpOwor5qayPk90c3U7CivmprQ+Unl1dTsKK+amuz5Ub3U7Civmpr4+S290c3U7Civmpr8+S2k7Civmp4E+S291Owor5qeDPkhhbjsKK+anhz5UZW47Civmp4o+U2FrdTsKK+aniz5Lb3U7Civmp4w+VHN1aTsKK+anjT5Tb3U7Civmp44+U2E7Civmp5A+S2FpOwor5qeTPktvdTsKK+anmD5Zb3U7Civmp5k+VGVuOwor5qedPlRvdTsKK+annj5Sb3U7Civmp6c+U2FuOwor5qeoPktha3U7Civmp6s+VGFuOwor5qetPlNodWt1Owor5qeyPktva3U7Civmp7k+S291Owor5qe7PktpOwor5qe9PlNvdTsKK+anvz5LaW47CivmqII+R2FrdTsKK+aohT5TaG91Owor5qiKPkhhbjsKK+aoiz5Ub3U7CivmqIw+S2FuOwor5qiSPk1pdHN1Owor5qiTPlJvdTsKK+aolD5Tb3U7CivmqJc+Q2hvOwor5qiZPkh5b3U7CivmqJs+S3l1dTsKK+aonj5TdXU7CivmqJ8+U2hvdTsKK+aooT5NbzsKK+aooj5Cb2t1Owor5qijPllvdTsKK+aoqT5LZW47CivmqKo+T3U7CivmqLU+U2hvdTsKK+aotj5TYWk7CivmqLg+Qm9rdTsKK+aouT5KdTsKK+aouj5LYTsKK+aovT5Tb247CivmqYQ+S2FuOwor5qmHPlplaTsKK+apiD5Eb3U7CivmqYs+S3lvdTsKK+apmD5LaXRzdTsKK+apmT5Ub3U7CivmqZ8+S2k7CivmqaE+U2hvdTsKK+apoj5EYTsKK+appj5Ub3U7Civmqbg+U2hvdTsKK+apvz5LeW91Owor5qqAPlRhbjsKK+aqhD5HZWtpOwor5qqNPllva3U7Civmqo4+R287CivmqpA+RW47Civmqpc+SGFrdTsKK+aqnD5LYWk7CivmqqA+S2VpOwor5qqiPktlbjsKK+aqoz5TaG91Owor5qqqPlJla2k7Civmqqw+Qm91Owor5qquPlRvdTsKK+aqsz5CaW47Civmqrg+TmVpOwor5qq7PkthbjsKK+argT5NaXRzdTsKK+argj5Ub3U7Civmq4M+S2k7Civmq5E+UmFpOwor5quTPlJvOwor5quaPlJ5bzsKK+armz5TaGl0c3U7Civmq54+RW47Civmq58+UmVraTsKK+arqD5SbzsKK+arqj5SZWtpOwor5qu6PlJlaTsKK+aruz5PdTsKK+ashD5SYW47CivmrIU+S3lvOwor5qyKPktlbjsKK+askj5SYW47CivmrJY+UmFuOwor5qydPlV0c3U7CivmrKA+S2V0c3U7CivmrKE+Smk7CivmrKM+R29uOwor5qynPk91Owor5qyyPllva3U7CivmrLc+S2k7CivmrLg+QWk7CivmrLk+STsKK+asuj5HaTsKK+asvT5LaW47CivmrL4+S2FuOwor5q2DPlNvdTsKK+athz5LZXRzdTsKK+atiT5LZW47CivmrYw+S2E7CivmrY4+VGFuOwor5q2QPk91Owor5q2TPkthbjsKK+atlD5LeW87CivmrZk+S3l1dTsKK+atmz5LYW47CivmrZ8+WW87CivmraE+S2FuOwor5q2iPlNoaTsKK+atoz5TZWk7CivmraQ+U2hpOwor5q2mPkJ1Owor5q2pPkhvOwor5q2qPldhaTsKK+atrz5TaGk7CivmrbM+U2VpOwor5q20PlJla2k7Civmrbg+S2k7Civmrbk+R2F0c3U7Civmrbs+U2hpOwor5q2/PkJvdHN1Owor5q6APllvdTsKK+augz5Zb3U7CivmroQ+VGVuOwor5q6GPlRhaTsKK+auiT5KdW47Civmroo+U2h1Owor5q6LPlphbjsKK+aujT5IeW91Owor5q6VPkZ1dTsKK+aulj5TaG9rdTsKK+aumD5aYW47Civmrp4+SW47CivmrqQ+U2hvdTsKK+auqj5FaTsKK+auqz5UYW47Civmrq8+SGluOwor5q6xPlNlbjsKK+ausj5TZW47CivmrrM+U2h1Owor5q60Pk91Owor5q61PkRhbjsKK+autz5JbjsKK+auuj5TYXRzdTsKK+auuz5LYWt1Owor5q68Pktha3U7Civmrr8+VGVuOwor5q+APktpOwor5q+FPktpOwor5q+GPk91Owor5q+LPkJ1Owor5q+NPkJvOwor5q+OPk1haTsKK+avkj5Eb2t1Owor5q+TPklrdTsKK+avlD5IaTsKK+avmD5IaTsKK+avmz5Nb3U7Civmr6s+S291Owor5q+sPkt5dXU7Civmr68+VGFuOwor5q+zPlplaTsKK+awiD5TZW47CivmsI8+U2hpOwor5rCRPk1pbjsKK+awkz5Cb3U7CivmsJQ+S2k7CivmsJc+S2k7CivmsJs+RnVuOwor5rCjPktpOwor5rCkPkluOwor5rC0PlN1aTsKK+awtz5IeW91Owor5rC4PkVpOwor5rC+PkhhbjsKK+axgD5UZWk7CivmsYE+SnV1Owor5rGCPkt5dXU7CivmsY4+SGFuOwor5rGQPlNla2k7CivmsZU+U2FuOwor5rGXPkthbjsKK+axmj5POwor5rGdPkpvOwor5rGePktvdTsKK+axnz5Lb3U7CivmsaA+Q2hpOwor5rGoPkJla2k7Civmsao+T3U7CivmsbA+VGE7CivmsbI+S3l1dTsKK+axsz5IZW47Civmsbo+S2V0c3U7Civmsb0+S2k7Civmsb4+RnVuOwor5rKBPlNoaW47CivmsoI+S2k7CivmsoM+WW9rdTsKK+ayiD5DaGluOwor5rKMPlRvbjsKK+ayjT5HbzsKK+aykD5Cb2t1Owor5rKSPkJvdHN1Owor5rKTPlRvdTsKK+aylj5DaHV1Owor5rKZPlNhOwor5rKaPlNoaTsKK+aymz5IYWk7CivmsqE+Qm90c3U7CivmsqI+VGFrdTsKK+ayqz5NYXRzdTsKK+ayrj5TaG87CivmsrE+VGE7CivmsrM+S2E7Civmsrg+RnV0c3U7Civmsrk+WXU7Civmsro+VGVuOwor5rK7PkppOwor5rK8PlNob3U7Civmsr0+S287Civmsr4+VGVuOwor5rK/PkVuOwor5rOBPkt5b3U7Civms4Q+RWk7Civms4U+U2h1dTsKK+aziT5TZW47Civms4o+SGFrdTsKK+azjD5IaXRzdTsKK+azkz5PdTsKK+azlT5Ib3U7Civms5c+U2hpOwor5rOZPkhvdTsKK+azmz5IYW47Civms50+U287Civms6E+SG91Owor5rOiPkhhOwor5rOjPkt5dXU7Civms6U+RGVpOwor5rOoPkNodXU7Civms6o+UnVpOwor5rOvPkJpbjsKK+azsD5UYWk7Civms7E+T3U7Civms7M+RWk7CivmtIs+WW91Owor5rSMPlJldHN1Owor5rSSPlNlaTsKK+a0lz5TZW47CivmtJk+U2h1Owor5rSbPlJha3U7CivmtJ4+RG91Owor5rSfPkk7CivmtKU+U2hpbjsKK+a0qT5FaTsKK+a0qj5Lb3U7CivmtKs+S3lva3U7CivmtLI+U2h1dTsKK+a0sz5KbzsKK+a0tT5TaHVuOwor5rS2Pkt5b3U7CivmtLg+S291Owor5rS7PkthdHN1Owor5rS9PktvdTsKK+a0vj5IYTsKK+a1gT5SeXV1Owor5rWEPkpvdTsKK+a1hT5TZW47CivmtZk+U2V0c3U7CivmtZo+U2h1bjsKK+a1nD5IaW47CivmtaM+S2FuOwor5rWkPktvdTsKK+a1pj5IbzsKK+a1qT5Lb3U7Civmtao+Um91Owor5rWsPlJpOwor5rWuPkZ1Owor5rW0Pllva3U7Civmtbc+S2FpOwor5rW4PlNoaW47Civmtbk+U2hvdTsKK+a2hT5OZXRzdTsKK+a2iD5TaG91Owor5raMPll1dTsKK+a2jj5TZW47CivmtpM+S2VuOwor5raVPlRlaTsKK+a2mT5SdWk7Civmtps+VG91Owor5racPlRva3U7Civmtq8+R2FpOwor5rayPkVraTsKK+a2tT5LYW47Civmtrg+S287Civmtrw+UnlvdTsKK+a3gD5UZW47Civmt4U+U2VraTsKK+a3hj5Lb3U7Civmt4c+S2k7Civmt4s+UmluOwor5reMPlNob3U7Civmt5E+U2h1a3U7Civmt5I+U2VpOwor5reVPlJpa3U7Civmt5g+VG91Owor5reZPlNvdTsKK+a3nj5TaG91Owor5rehPlRhbjsKK+a3pD5ZbzsKK+a3pj5LYW47Civmt6g+Sm91Owor5reqPlJpbjsKK+a3qz5JbjsKK+a3rD5TYWk7Civmt64+V2FpOwor5rexPlNoaW47Civmt7M+U2h1bjsKK+a3tT5FbjsKK+a3tz5Lb247Civmt7k+RW47Civmt7o+U2VuOwor5re7PlRlbjsKK+a4hT5TZWk7CivmuIc+S2F0c3U7CivmuIg+U2FpOwor5riJPlNob3U7CivmuIo+RW47CivmuIs+SnV1Owor5riTPktlaTsKK+a4lT5FbjsKK+a4mT5LYW47CivmuJo+U2hvOwor5ribPkdlbjsKK+a4nT5ZdTsKK+a4nz5UZWk7CivmuKA+S3lvOwor5rihPlRvOwor5rijPlNhOwor5rikPkJvdHN1Owor5rilPkFrdTsKK+a4pj5LYTsKK+a4qT5PbjsKK+a4qz5TZXRzdTsKK+a4rD5Tb2t1Owor5ritPkk7CivmuK4+S2E7CivmuK8+S291Owor5ri4Pll1dTsKK+a4uj5CeW91Owor5ri+PktvbjsKK+a5gz5IYWk7CivmuYo+U291Owor5rmNPlRhbjsKK+a5jj5CZW47CivmuZY+S287CivmuZg+U2hvdTsKK+a5mz5UYW47CivmuZ8+S291Owor5rmnPll1dTsKK+a5qz5TaG91Owor5rmuPkluOwor5rmvPlRvdTsKK+a5sj5LYW47CivmubY+U2VuOwor5rm+PldhbjsKK+a5vz5TaGl0c3U7CivmuoA+TWFuOwor5rqCPlJhdHN1Owor5rqMPkhhdHN1Owor5rqPPlRvdTsKK+a6kD5HZW47CivmupY+SnVuOwor5rqYPktvdTsKK+a6nD5SeXV1Owor5rqdPktvdTsKK+a6nz5NZWk7CivmuqI+SXRzdTsKK+a6pT5IbzsKK+a6qj5LZWk7Civmuq8+U287CivmurI+U291Owor5rq2PllvdTsKK+a6tz5Lb247Civmuro+RGVraTsKK+a6vT5Kb2t1Owor5ruCPkJvdTsKK+a7hD5Tb3U7Civmu4U+TWV0c3U7Civmu4k+S291Owor5ruLPkppOwor5ruMPkRla2k7Civmu5E+S2F0c3U7Civmu5M+U2FpOwor5ruUPlRvdTsKK+a7lT5Ub3U7Civmu50+U291Owor5ruePlRhaTsKK+a7rD5LbzsKK+a7rz5UYWk7Civmu7I+U2hpbjsKK+a7tD5UZWtpOwor5ru3PlJvOwor5ru4PktvOwor5ru+PktvbjsKK+a7vz5NYW47CivmvIE+UnlvdTsKK+a8gj5IeW91Owor5ryGPlNoaXRzdTsKK+a8iT5Sb2t1Owor5ryPPlJvdTsKK+a8kT5HYWk7CivmvJM+Umk7CivmvJQ+RW47CivmvJU+U291Owor5rygPkJha3U7CivmvKI+S2FuOwor5ryjPlJhbjsKK+a8qz5NYW47CivmvKw+U2hpOwor5ryxPlNvdTsKK+a8sj5DaG91Owor5ry4PlplbjsKK+a8vj5Zb3U7CivmvL8+U2hvdTsKK+a9gT5FaTsKK+a9hT5LYW47CivmvZQ+S2V0c3U7CivmvZg+SGFuOwor5r2bPlNlbjsKK+a9nD5TZW47CivmvZ8+U2VraTsKK+a9pD5KdW47CivmvaY+Um91Owor5r2tPlRhbjsKK+a9rj5DaG91Owor5r2vPkppbjsKK+a9sD5LYWk7CivmvbQ+Q2hvOwor5r24PlNhbjsKK+a9uj5TYW47Civmvbw+RG91Owor5r6APkp1dTsKK+a+gT5KdXU7CivmvoI+Q2hvdTsKK+a+hD5DaG91Owor5r6GPkd5b3U7Civmvo4+SG91Owor5r6RPlJ5dXU7Civmvpc+S2FuOwor5r6hPlNvdTsKK+a+oz5LYW47CivmvqQ+VGFrdTsKK+a+qj5SZWk7CivmvrE+VGVuOwor5r6zPklrdTsKK+a+uT5UYW47Civmv4A+R2VraTsKK+a/gT5EYWt1Owor5r+CPlJlbjsKK+a/gz5Ob3U7Civmv4Y+RnVuOwor5r+UPkRlaTsKK+a/lT5TaGl0c3U7Civmv5g+TmVpOwor5r+fPlNhaTsKK+a/oD5Hb3U7Civmv6E+SnU7Civmv6Q+VG91Owor5r+rPlJhbjsKK+a/rD5TaHVuOwor5r+uPkhva3U7Civmv68+VGFrdTsKK+a/sT5IaW47Civmv7M+U2VuOwor5r+2PkthdHN1Owor5r+6PlNlbjsKK+a/vj5SeW87CivngIE+WW91Owor54CJPlNoYTsKK+eAiz5TaGluOwor54CPPlJ5dXU7CivngJE+QmFrdTsKK+eAlT5IaW47CivngJg+Um87CivngJo+S2FuOwor54CbPkVpOwor54CdPlJla2k7CivngJ4+Sm91Owor54CfPlNob3U7CivngKY+Q2hvOwor54CnPlNvdTsKK+eArD5SYWk7CivngLA+Qmk7CivngLI+UmVuOwor54C+PlJhbjsKK+eBjD5LYW47CivngZE+U2FpOwor54GYPkRhbjsKK+eBoz5XYW47Civngas+S2E7Civnga8+VG91Owor54GwPkthaTsKK+eBuD5LeXV1Owor54G8PlNoYWt1Owor54G9PlNhaTsKK+eCiT5SbzsKK+eCij5TdWk7Civngo4+RW47CivngpI+U291Owor54KZPlNoYTsKK+eCrD5LbzsKK+eCrT5UYW47Civngq4+SG91Owor54KvPktlaTsKK+eCsz5IZWk7Civngrg+U2FrdTsKK+eCuT5UZW47Civngro+STsKK+eDiD5SZXRzdTsKK+eDiz5Lb3U7Civng48+VTsKK+eDmT5SYWt1Owor54OdPkpvdTsKK+eDnz5FbjsKK+eDsT5LZWk7Civng7k+SG91Owor54O9PkhvdTsKK+eEiT5FbjsKK+eElD5FbjsKK+eEmT5Ib3U7CivnhJo+RnVuOwor54ScPktvbjsKK+eEoT5NdTsKK+eEpj5TaG91Owor54S2PlplbjsKK+eEvD5TaG91Owor54WJPlJlbjsKK+eFjD5Lb3U7CivnhY4+U2VuOwor54WVPktpOwor54WWPkRhbjsKK+eFmT5FbjsKK+eFoj5LZWk7CivnhaQ+QmFpOwor54WlPkthbjsKK+eFpj5LdTsKK+eFpz5TaG91Owor54WpPkhhbjsKK+eFrD5Zb3U7Civnha4+U2hhOwor54W9PlNlbjsKK+eGhD5Tb2t1Owor54aIPktpOwor54aKPll1dTsKK+eGjz5LdW47CivnhpQ+WW91Owor54aVPktvdTsKK+eGmT5LaTsKK+eGnz5KdWt1Owor54aoPkk7Civnhqw+R291Owor54axPk5ldHN1Owor54a5PktpOwor54a+PlNoaTsKK+eHgz5OZW47Civnh4g+VG91Owor54eJPlRvbjsKK+eHjj5SeW91Owor54eQPlJpbjsKK+eHkj5TaG91Owor54eUPkhhbjsKK+eHlT5FbjsKK+eHlz5SYW47Civnh58+RWk7Civnh6A+SWt1Owor54elPlNvdTsKK+eHpj5TYW47Civnh6c+U3VpOwor54esPktpOwor54etPlNob2t1Owor54euPlNob3U7Civnh7U+VGF0c3U7Civnh7k+U2VuOwor54e7Pkt1bjsKK+eHvD5KaW47Civnh78+WW91Owor54iGPkJha3U7CivniI0+U2hha3U7CivniJA+Um87CivniJs+UmFuOwor54ioPlNhbjsKK+eIqj5Tb3U7CivniKw+SGE7CivniK0+U291Owor54iwPkVuOwor54iyPkk7CivniLU+U2hha3U7CivniLY+RnU7CivniLo+WWE7CivniLs+S291Owor54i8PlNobzsKK+eIvT5Tb3U7CivniL4+Smk7CivniL8+U2hvdTsKK+eJgD5Tb3U7CivniYY+U2hvdTsKK+eJhz5IZW47CivniYg+SGFuOwor54mLPlNlbjsKK+eJjD5IYWk7CivniZI+Q2hvdTsKK+eJmD5Ub2t1Owor54mZPkdhOwor54mbPkd5dXU7CivniZ0+SGluOwor54mfPkJvdTsKK+eJoT5CbzsKK+eJoj5Sb3U7Civniac+Qm9rdTsKK+eJqT5Nb3RzdTsKK+eJsj5TZWk7CivnibQ+VGVpOwor54m5PlRva3U7Civnib0+S2VuOwor54m+PkdvOwor54qAPlNlaTsKK+eKgT5SaTsKK+eKgj5SaTsKK+eKhz5Ib247CivnipI+S291Owor54qWPlJha3U7CivniqA+R2k7CivniqI+VG9rdTsKK+eKpz5HaTsKK+eKrD5LZW47Civniq8+SGFuOwor54qyPlNhaTsKK+eKtj5Kb3U7Civnirk+WXV1Owor54uCPkt5b3U7Civni4M+SnV1Owor54uEPlRla2k7Civni4Y+Q2h1dTsKK+eLjj5Lb3U7Civni5A+S287Civni5I+SGk7Civni5c+S291Owor54uZPlNobzsKK+eLmz5IYWt1Owor54ugPkdhbjsKK+eLoT5Lb3U7Civni6I+S2FrdTsKK+eLqT5TaHU7Civni6w+RG9rdTsKK+eLrT5LeW91Owor54u3PktlbjsKK+eLuD5SaTsKK+eLuT5LeW91Owor54u8PlJvdTsKK+eLvT5IYWk7CivnjIo+R2VpOwor54yWPlNob3U7CivnjJc+STsKK+eMmz5Nb3U7CivnjJw+U2FpOwor54ydPlNvdHN1Owor54yfPlJ5b3U7CivnjKU+V2FpOwor54ypPlNlaTsKK+eMqj5DaG87CivnjKs+QnlvdTsKK+eMrj5LZW47CivnjK8+VGFuOwor54y0PktvdTsKK+eMtj5ZdXU7CivnjLc+WXV1Owor54y+PkthdHN1Owor54y/PkVuOwor542EPkdva3U7CivnjYU+U2hpOwor542OPlNob3U7CivnjY8+QmFrdTsKK+eNlz5LZXRzdTsKK+eNoz5KdXU7Civnjag+RG9rdTsKK+eNqj5LYWk7CivnjbA+RG91Owor542yPktha3U7CivnjbU+UnlvdTsKK+eNuD5KdXU7Civnjbo+RGF0c3U7Civnjbs+S2VuOwor546EPkdlbjsKK+eOhz5SaXRzdTsKK+eOiT5HeW9rdTsKK+eOiz5PdTsKK+eOlj5LeXV1Owor546pPkdhbjsKK+eOsj5SZWk7CivnjrM+VGFpOwor5467PkhhOwor54+APkhha3U7Civnj4I+S2E7Civnj4g+S2E7Civnj4o+U2FuOwor54+NPkNoaW47Civnj44+Q2hpbjsKK+ePnj5SYWt1Owor54+gPlNodTsKK+ePpT5KaTsKK+ePqj5LZWk7Civnj60+SGFuOwor54+uPkhhaTsKK+ePsT5FaTsKK+ePuD5HbzsKK+ePvj5HZW47CivnkIM+S3l1dTsKK+eQhT5Sb3U7CivnkIY+Umk7CivnkIk+Unl1dTsKK+eQoj5UYWt1Owor55ClPktvOwor55CyPkhhaTsKK+eQsz5SaW47CivnkLQ+S2luOwor55C1PkJpOwor55C2PkhhOwor55C6PkhvdTsKK+eQvz5Lb247CivnkYE+Qm91Owor55GVPkthOwor55GZPkRvdTsKK+eRmj5LbzsKK+eRmz5FaTsKK+eRnD5ZdTsKK+eRnj5adWk7CivnkZ8+U2hpdHN1Owor55GgPlJ5dXU7CivnkaM+U2E7CivnkaQ+WW91Owor55GpPkVpOwor55GqPkJhOwor55GvPlJvdTsKK+eRsD5LYWk7CivnkbM+U2E7CivnkbY+WW91Owor55G+PktpbjsKK+eSgz5SaTsKK+eSiz5TaG91Owor55KePkhha3U7CivnkqI+Unl1dTsKK+eSpz5IZWtpOwor55KwPkthbjsKK+eSvT5KaTsKK+eTij5LZWk7Civnk48+Um91Owor55OUPkVpOwor55OcPkthOwor55OgPktvOwor55OiPkh5b3U7Civnk6M+QmVuOwor55OmPkdhOwor55OuPk91Owor55O2PkhlaTsKK+eTtz5TaGk7CivnlIM+U2h1dTsKK+eUhD5LZW47CivnlIw+T3U7CivnlI0+Qm91Owor55SOPlNlbjsKK+eUkT5Tb3U7CivnlJM+SGVraTsKK+eUlT5PdTsKK+eUmD5LYW47CivnlJo+U2hpbjsKK+eUnD5UZW47CivnlJ4+U2hvdTsKK+eUnz5TZWk7CivnlKM+U2FuOwor55SlPlNlaTsKK+eUpj5TbzsKK+eUqD5Zb3U7CivnlKs+SG87CivnlKw+WW91Owor55SwPkRlbjsKK+eUsT5ZdXU7CivnlLI+S291Owor55SzPlNoaW47CivnlLc+RGFuOwor55S4PlRlbjsKK+eUuj5DaG91Owor55S7PkdhOwor55S8PkNob3U7CivnlYQ+Unl1dTsKK+eVhj5IbzsKK+eViT5GdTsKK+eVij5Lb3U7CivnlYs+VGVuOwor55WMPkthaTsKK+eVjT5LYWk7CivnlY8+STsKK+eVlD5IYW47CivnlZk+Unl1dTsKK+eVmj5Ib247CivnlZs+U2hpbjsKK+eVnD5DaGlrdTsKK+eVnT5IbzsKK+eVoj5IaXRzdTsKK+eVpD5TaGk7CivnlaU+Unlha3U7CivnlaY+S2VpOwor55WnPlJ5YWt1Owor55WqPkJhbjsKK+eVqz5LYWt1Owor55WtPllvOwor55WwPkk7CivnlbM+Sm91Owor55W0PkNodXU7CivnlbY+VG91Owor55W3PlRldHN1Owor55W4PktpOwor55W/PktpOwor55aCPkpvdTsKK+eWhj5LeW91Owor55aHPkNodXU7Civnlok+Sm91Owor55aKPkpvdTsKK+eWiz5TbzsKK+eWjj5TbzsKK+eWjz5TbzsKK+eWkT5HaTsKK+eWlD5DaG91Owor55aaPkt5dXU7Civnlp0+U2FuOwor55ajPll1dTsKK+eWpT5LYWk7Civnlqs+RWtpOwor55axPkhvdTsKK+eWsj5IaTsKK+eWsz5LYW47CivnlrU+U2hpOwor55a4PlRhbjsKK+eWuT5TaGluOwor55a8PlRvdTsKK+eWvT5TaG87Civnlr4+U2hpdHN1Owor55eCPkthOwor55eDPktlbjsKK+eXhT5CeW91Owor55eHPlNob3U7Civnl4o+U2VuOwor55eNPkk7Civnl5I+WW91Owor55eUPkppOwor55eVPktvbjsKK+eXmD5Ub3U7Civnl5k+S2VpOwor55ebPlRzOwor55eePkhpOwor55eiPlJpOwor55ejPlNoaTsKK+eXqT5Tb3U7Civnl7A+VGFuOwor55eyPk1hOwor55ezPlJpbjsKK+eXtD5DaGk7Civnl7o+SGk7Civnl7w+S287Civnl74+QTsKK+eXvz5JOwor55iBPlN1aTsKK+eYiT5ZdTsKK+eYiz5GdXU7CivnmI0+WW91Owor55ifPk9uOwor55igPlNla2k7CivnmKE+U291Owor55iiPkhhbjsKK+eYpD5SeXV1Owor55inPkd5YWt1Owor55iwPlJ1aTsKK+eYtD5TaG91Owor55i7PlJvdTsKK+eZgj5SeW91Owor55mGPlJvdTsKK+eZhz5LYW47CivnmYg+SGFpOwor55mMPkdhbjsKK+eZkj5ZdTsKK+eZlj5IZWtpOwor55mYPlJlaTsKK+eZnD5EZW47CivnmaE+Q2hpOwor55miPllvdTsKK+eZpz5SZWtpOwor55moPktha3U7Civnmak+UmFpOwor55mqPlNoYWt1Owor55msPlNlbjsKK+eZsD5Zb3U7CivnmbI+VGVuOwor55m2PkhhdHN1Owor55m4PktpOwor55m6PkhvdHN1Owor55m7PlRvdTsKK+eZvD5Ib3RzdTsKK+eZvT5IYWt1Owor55m+Pkh5YWt1Owor55qAPkh5dXU7CivnmoM+Qm91Owor55qEPlRla2k7CivnmoY+S2FpOwor55qHPktvdTsKK+eaiD5LaTsKK+eaiz5Lb3U7Civnmo4+S291Owor55qQPktvdTsKK+eakz5Lb3U7CivnmpY+S2FuOwor55qZPlNla2k7Civnmpo+R2FpOwor55quPkhpOwor55qwPkhvdTsKK+eatD5TaHVuOwor55q3PktvOwor55q4Pkt1bjsKK+eauT5LdW47Civnmro+U3V1Owor55q/PkJhaTsKK+ebgj5VOwor55uDPkhhaTsKK+ebhj5Cb247Civnm4g+RWk7Civnm4o+RWtpOwor55uNPktvdTsKK+ebkj5Lb3U7Civnm5Y+R2FpOwor55uXPlRvdTsKK+ebmz5TZWk7Civnm5w+VG91Owor55uePlNhbjsKK+ebnz5NZWk7Civnm6E+SmluOwor55ujPkthbjsKK+ebpD5CYW47Civnm6U+S2FuOwor55unPlJvOwor55uqPlRvdTsKK+ebrj5Nb2t1Owor55uyPk1vdTsKK+ebtD5DaG9rdTsKK+ebuD5TaG91Owor55u7PktlaTsKK+ebvj5KdW47CivnnIE+U2VpOwor55yEPkJlbjsKK+echz5CeW91Owor55yIPlRhbjsKK+eciT5CaTsKK+eciz5LYW47CivnnIw+S2VuOwor55ybPk1haTsKK+ecnj5TaGluOwor55yfPlNoaW47CivnnKA+TWluOwor55ykPlRlaTsKK+ecpT5TZWk7CivnnKY+U2VpOwor55ypPkdlbjsKK+ectz5LZW47CivnnLg+Qm91Owor55y6PkNob3U7CivnnLw+R2FuOwor552APkNoYWt1Owor552HPlRlaTsKK+edmj5HYWk7CivnnZs+U2VpOwor552hPlN1aTsKK+edoz5Ub2t1Owor552lPkhlaTsKK+edpj5Cb2t1Owor552oPkdlaTsKK+edqz5TaG91Owor5525PlRvOwor552+PktvdTsKK+edvz5FaTsKK+eeiz5TaGluOwor556OPkthdHN1Owor556RPk1laTsKK+eenj5CYW47CivnnqA+RG91Owor556lPkJldHN1Owor556sPlNodW47Civnnq0+UnlvdTsKK+eesD5LYW47CivnnrM+RG91Owor5562PktpOwor5565PkFpOwor5567PlNlbjsKK+eevD5LZW47Civnnr0+S287Civnnr8+S3U7Civnn4c+TW91Owor55+NPktha3U7Civnn5c+Q2hpa3U7Civnn5o+U2hva3U7Civnn5s+TXU7Civnn5w+S2luOwor55+iPlNoaTsKK+efoz5JOwor55+lPkNoaTsKK+efpz5TaGluOwor55+pPkt1Owor55+tPlRhbjsKK+efrj5XYWk7Civnn68+S3lvdTsKK+efsz5TaGFrdTsKK+efvD5Lb3U7CivnoII+U2E7CivnoIw+U2VpOwor56CSPkhpOwor56CUPktlbjsKK+eglT5TYWk7CivnoKA+U2hvOwor56ClPlNoaTsKK+egpj5TYWk7CivnoKc+Q2hpbjsKK+egsj5Ib3U7CivnoLQ+SGE7CivnoLo+UmVpOwor56C/PktvdTsKK+ehhT5LZWk7CivnoZ0+U2hvdTsKK+ehqz5SeXV1Owor56GsPktvdTsKK+ehrz5LZW47Civnobw+SG91Owor56KBPkdvOwor56KGPkhhOwor56KHPlRlaTsKK+eijD5Sb2t1Owor56KNPkdhaTsKK+eijj5TYWk7CivnopE+SGk7CivnopM+VGFpOwor56KVPktpOwor56KXPldhbjsKK+eimj5IYWk7CivnoqM+S2V0c3U7Civnoqc+SGVraTsKK+eiqT5TZWtpOwor56KqPkNoaW47Civnoq8+RG91Owor56K1PlNla2k7Civnoro+S2FrdTsKK+eivD5CYTsKK+eivj5UZW47Civno4E+Smk7Civno4U+SG91Owor56OGPkthdHN1Owor56OKPlJhaTsKK+ejiz5TYTsKK+ejkD5IYW47Civno5E+R2FpOwor56OUPlRha3U7Civno5o+U2VuOwor56OnPlNla2k7Civno6g+TWE7Civno6w+S2VpOwor56OvPktpOwor56O0PlRvdTsKK+ejvT5Lb3U7CivnpIE+U2hvdTsKK+ekhz5Ja3U7CivnpI4+U287CivnpJE+VG91Owor56SSPkdpOwor56SZPkdhaTsKK+ekpj5Lb3U7CivnpKo+UmVpOwor56SrPlJla2k7CivnpKw+QmFuOwor56S6PlNoaTsKK+ekvD5SZWk7CivnpL4+U2hhOwor56WAPlNoaTsKK+elgT5LaTsKK+elhz5LaTsKK+eliD5LaTsKK+eliT5TaGk7CivnpZA+WXV1Owor56WTPkZ1dHN1Owor56WVPkhpOwor56WWPlNvOwor56WXPlNoaTsKK+elmj5TbzsKK+elnT5TaHVrdTsKK+elnj5TaGluOwor56WfPlN1aTsKK+eloD5TaGk7CivnpaI+RGVpOwor56WlPlNob3U7Civnpag+SHlvdTsKK+elrT5TYWk7Civnpbc+VG91Owor56W6PktpOwor56W/PlJva3U7CivnpoA+UmluOwor56aBPktpbjsKK+emhD5Sb2t1Owor56aFPlplbjsKK+emij5LZWk7Civnpo0+S2E7Civnpo4+VGVpOwor56aPPkZ1a3U7Civnpp0+U2hva3U7CivnpqY+R3lvOwor56anPktpOwor56aqPlplbjsKK+emrj5SZWk7CivnprA+RGVpOwor56azPkpvdTsKK+emuT5VOwor56a6Pkd1dTsKK+emvT5LaW47Civnpr4+S2E7Civnpr8+VG9rdTsKK+engD5TaHV1Owor56eBPlNoaTsKK+eniT5IZWk7Civnp4s+U2h1dTsKK+enkT5LYTsKK+enkj5CeW91Owor56eVPkhpOwor56eYPkhpOwor56efPlNvOwor56ehPkhhdHN1Owor56ejPk1hdHN1Owor56ekPlNob3U7Civnp6Y+U2hpbjsKK+enpz5PdTsKK+enqT5DaGl0c3U7Civnp6w+S3lvOwor56ewPlNob3U7Civnp7s+STsKK+eogD5LaTsKK+eoiD5LYW47CivnqIs+VGVpOwor56iNPlNvdTsKK+eojj5aZWk7CivnqJQ+SmluOwor56iXPkhhaTsKK+eomD5LaTsKK+eomT5DaG9rdTsKK+eomj5DaGk7CivnqJw+UnlvdTsKK+eonz5SaW47CivnqKA+Q2h1dTsKK+eorj5TaHU7CivnqLE+U2hvdTsKK+eosj5Ub3U7CivnqLc+U2hva3U7CivnqLs+VG91Owor56i8PkthOwor56i9PktlaTsKK+eovj5Lb3U7CivnqL8+S291Owor56mAPktva3U7CivnqYI+U3VpOwor56mDPllvdTsKK+ephj5Cb2t1Owor56mJPkNoaTsKK+epjT5TZWtpOwor56mOPkVpOwor56mPPk9uOwor56mQPlNodXU7CivnqZc+U3VpOwor56mhPlNob2t1Owor56miPkFpOwor56mjPkpvdTsKK+epqT5PbjsKK+epqz5LYWt1Owor56mwPkpvdTsKK+eptD5LZXRzdTsKK+eptj5LeXV1Owor56m5Pkt5dXU7Civnqbo+S3V1Owor56m9PlNlaTsKK+epvz5TZW47CivnqoE+VG90c3U7CivnqoM+U2V0c3U7CivnqoQ+U2FrdTsKK+eqiD5Zb3U7CivnqpI+Q2hpdHN1Owor56qTPlNvdTsKK+eqlT5DaG91Owor56qWPktvdTsKK+eqlz5Tb3U7Civnqpg+S2luOwor56qfPkt1dHN1Owor56qpPkthOwor56qqPldhOwor56quPkt5dXU7Civnqq8+WW91Owor56qwPllvdTsKK+eqtj5LdTsKK+equj5LaTsKK+eqvz5SeXV1Owor56uDPlNvdTsKK+erhD5aYW47Civnq4U+S3lvdTsKK+erhz5Ub3U7Civnq4g+U291Owor56uKPlNldHN1Owor56uLPlJpdHN1Owor56uSPktpOwor56uZPlRhbjsKK+ermj5DaG87Civnq5w+Unl1dTsKK+ernT5IZWk7Civnq58+S2VpOwor56ugPlNob3U7Civnq6I+U2hpOwor56ujPlNodW47Civnq6U+RG91Owor56umPlNob3U7Civnq6o+SnU7Civnq60+S2V0c3U7Civnq68+VGFuOwor56u2Pkt5b3U7Civnq7g+S2VpOwor56u5PkNoaWt1Owor56u6PlRva3U7Civnq78+S2FuOwor56yEPktlaTsKK+eshj5IYTsKK+esiD5LeXV1Owor56yKPlNvdTsKK+esiz5KdW47CivnrI8+S290c3U7CivnrJE+U2hvdTsKK+esmD5TZW47CivnrJk+U291Owor56ybPlRla2k7CivnrJ4+Q2hpOwor56ygPlJ5dXU7CivnrKU+U2hpOwor56ymPkZ1Owor56yoPkhvbjsKK+esrD5EYWk7CivnrLM+S2E7CivnrLU+SGFuOwor56y2PlNoaTsKK+ethT5TZW47CivnrYY+SGl0c3U7CivnrYg+S2F0c3U7CivnrYk+VG91Owor562LPktpbjsKK+etjD5TZW47CivnrY0+SnVuOwor562PPkJhdHN1Owor562QPkt5b3U7CivnrZE+Q2hpa3U7CivnrZI+VG91Owor562UPlRvdTsKK+etlj5TYWt1Owor562dPlNvdTsKK+etpT5LeW87Civnrac+S2VuOwor562sPlNlaTsKK+etrj5TZWk7CivnrbA+U2FrdTsKK+etsT5TaG91Owor5620Pkt5b3U7CivnrbU+RW47Civnrbo+S3lvdTsKK+euhj5IZWk7Civnroc+S2E7Civnros+U2VuOwor566NPktvOwor566PPlNvdTsKK+eukj5Tb3U7CivnrpQ+SGFrdTsKK+eulT5LaTsKK+eulz5TYW47Civnrpg+S2luOwor566ZPkZ1a3U7Civnrpo+U2F0c3U7Civnrpw+S291Owor566dPkthbjsKK+eunz5LaW47CivnrqE+S2FuOwor566qPlRhbjsKK+eurT5TZW47CivnrrE+U2hvdTsKK+eutD5TaGluOwor5664PkNobzsKK+evgD5TZXRzdTsKK+evgT5Lb3U7Civnr4Q+SGFuOwor56+GPlRlbjsKK+evhz5IZW47Civnr4k+Q2hpa3U7Civnr4s+S3lvdTsKK+evjD5Lb3U7Civnr48+S2FuOwor56+dPktvdTsKK+evoD5TaG91Owor56+kPlRva3U7Civnr6U+Uml0c3U7Civnr6Y+SGVpOwor56+pPlNoaTsKK+evrT5Sb3U7Civnr7M+SGl0c3U7Civnr7Y+RW47Civnr7c+SG91Owor57CAPlNha3U7CivnsIc+U291Owor57CNPlJvdTsKK+ewkT5TYTsKK+ewkj5TYW47CivnsJM+U2VuOwor57CUPlNhOwor57CfPlRlbjsKK+ewoT5LYW47CivnsKM+S2k7CivnsKc+S291Owor57CqPlNoaW47CivnsKs+U2hvdTsKK+ewtz5FbjsKK+ewuD5IYTsKK+ewvT5TZW47CivnsL4+UmVuOwor57C/PkJvOwor57GAPkNodXU7CivnsYM+UmFuOwor57GMPkNodXU7CivnsY0+U2VraTsKK+exkD5Ub3U7CivnsZQ+U3U7CivnsZY+U2VuOwor57GYPlRvdTsKK+exnz5SYWk7CivnsaA+Um91Owor57GkPlNlbjsKK+expT5ZYWt1Owor57GsPlJpOwor57GzPkJlaTsKK+eygz5IaTsKK+eyiT5GdW47Civnsos+U3VpOwor57KQPlJvOwor57KSPlJ5dXU7CivnspU+SGFrdTsKK+eylz5TbzsKK+eymD5OZW47Civnsps+U2h1a3U7Civnsp8+Wm9rdTsKK+eyoT5Ub3U7CivnsqI+U2hpOwor57KkPkV0c3U7CivnsqU+U2h1a3U7Civnsqc+U2hvdTsKK+eyqz5KaTsKK+eyrj5SeW91Owor57KxPlJ5b3U7CivnsrI+U2FuOwor57KzPktvdTsKK+eyuT5TdWk7Civnsr0+U291Owor57K+PlNlaTsKK+ezgj5TYW47Civns4U+SnV1Owor57OKPktvOwor57OSPkhpOwor57OWPlRvdTsKK+eznD5CaTsKK+eznj5GdW47Civns58+U291Owor57OgPktvdTsKK+ezoj5CbzsKK+ezpz5SeW91Owor57OvPkRhOwor57OyPlJlaTsKK+eztD5UZWtpOwor57O2PkNob3U7Civns7g+U2hpOwor57O6Pkt5dXU7Civns7s+S2VpOwor57O+Pkt5dXU7CivntIA+S2k7CivntII+Q2h1dTsKK+e0hD5ZYWt1Owor57SFPkt1Owor57SGPlU7CivntIo+QmluOwor57SLPk1vbjsKK+e0jT5Ub3U7CivntJA+Q2h1dTsKK+e0lD5TaHVuOwor57SVPkhpOwor57SXPlNhOwor57SYPktvdTsKK+e0mT5TaGk7CivntJo+S3l1dTsKK+e0mz5GdW47CivntJw+VW47CivntKA+U287CivntKE+Qm91Owor57SiPlNha3U7CivntKs+U2hpOwor57SsPkNodXU7CivntK4+U2F0c3U7CivntK8+UnVpOwor57SwPlNlaTsKK+e0sj5TZXRzdTsKK+e0sz5TaGluOwor57S1PkNobzsKK+e0uT5TaG91Owor57S6PktvbjsKK+e0vz5UYWk7CivntYI+U2h1dTsKK+e1gz5HZW47CivntYQ+U287CivntYU+S2VpOwor57WGPkJhbjsKK+e1iz5Lb3U7CivntYw+S2VpOwor57WOPktvdTsKK+e1jz5TZXRzdTsKK+e1kD5LZXRzdTsKK+e1lj5Lb3U7CivntZs+Sm91Owor57WePktvdTsKK+e1oT5SYWt1Owor57WiPktlbjsKK+e1oz5Ib3U7CivntaY+S3l1dTsKK+e1qD5KdXU7Civnta4+Sm87CivntbE+VG91Owor57WyPlNoaTsKK+e1sz5Lb3U7CivntbU+S2FpOwor57W2PlpldHN1Owor57W5PktlbjsKK+e1vT5SeW87Civntok+VG91Owor57aPPlN1aTsKK+e2kz5LZWk7Civntpk+S2VpOwor57aaPlpva3U7Civntpw+U291Owor57afPlJlaTsKK+e2oj5DaHV1Owor57ajPktlbjsKK+e2qz5TZW47Civntqw+SnU7Civntq0+STsKK+e2rj5LZWk7Civntq8+VG91Owor57awPldhbjsKK+e2sT5Lb3U7CivntrI+TW91Owor57a0PlRlaTsKK+e2tT5TYWk7Civntrg+UmluOwor57a6PktpOwor57a7PlRhbjsKK+e2vT5TaGFrdTsKK+e2vj5SeW91Owor57a/Pk1lbjsKK+e3hz5TaGk7Civnt4o+S2luOwor57eLPkhpOwor57ePPlNvdTsKK+e3kT5SeW9rdTsKK+e3kj5TaG87Civnt5g+S2FuOwor57eaPlNlbjsKK+e3nD5CZW47Civnt50+U2h1dTsKK+e3nj5UYW47Civnt6A+VGVpOwor57ehPkJpbjsKK+e3pD5TZXRzdTsKK+e3qD5IZW47Civnt6k+S2FuOwor57esPk1lbjsKK+e3rz5JOwor57eyPkJ5b3U7Civnt7Q+UmVuOwor57e7PkNoaTsKK+e4gT5FbjsKK+e4hD5Kb3U7CivnuIk+U2hpbjsKK+e4ij5FaTsKK+e4iz5Uc3VpOwor57iSPlNoaTsKK+e4mz5CYWt1Owor57iePktvdTsKK+e4nz5Kb2t1Owor57ihPlNhaTsKK+e4oj5Ub3U7CivnuKM+S2VuOwor57imPkp1dTsKK+e4qz5Ib3U7CivnuK4+U2h1a3U7CivnuLE+SnV1Owor57iyPlJ1aTsKK+e4tT5CYW47CivnuLc+UnU7CivnuLk+SHlvdTsKK+e4uj5SZW47CivnuLs+Qmk7CivnuL0+U291Owor57i+PlNla2k7CivnuYE+SGFuOwor57mDPkhvdTsKK+e5hj5LeXV1Owor57mKPlNlbjsKK+e5iz5LZWk7CivnuY0+U2h1dTsKK+e5lD5TaG9rdTsKK+e5lT5aZW47CivnuZY+U2FuOwor57mZPkhhbjsKK+e5mj5SeW91Owor57mdPkthbjsKK+e5nj5Kb3U7CivnuaY+S3lvdTsKK+e5pz5VbjsKK+e5qT5Kb3U7Civnuao+S2FpOwor57mtPktlbjsKK+e5sD5Tb3U7Civnubk+RWtpOwor57m7Pkp1Owor57m8PktlaTsKK+e5vT5IaW47Civnub8+UmFuOwor57qCPlNhbjsKK+e6iD5LZXRzdTsKK+e6iT5TYW47Civnuow+Wm9rdTsKK+e6jj5TZW47Civnuo8+VGVuOwor57qSPlRlbjsKK+e6kz5FaTsKK+e6lD5TYW47CivnupY+U2VuOwor57qbPlRvdTsKK+e6nD5SYW47CivnvLY+S2FuOwor57y4PktvdTsKK+e8uj5LZXRzdTsKK+e9hT5LYTsKK+e9jD5PdTsKK+e9jT5SYWk7CivnvY4+VGFuOwor572QPkthbjsKK+e9kT5Cb3U7CivnvZQ+Qm91Owor572VPkthbjsKK+e9mD5GdTsKK+e9nz5LbzsKK+e9oD5CaW47Civnvac+U2hpbjsKK+e9qD5BbjsKK+e9qT5Ub3U7Civnvao+WmFpOwor572rPktlaTsKK+e9rj5DaGk7CivnvbA+QmF0c3U7CivnvbI+U2hvOwor5721PkJhOwor5723PkhpOwor5724PkJhdHN1Owor5725PlJpOwor576CPktlbjsKK+e+gz5CZWtpOwor576FPlJhOwor576GPkhpOwor576HPktpOwor576IPktpOwor576KPllvdTsKK+e+jD5LeW91Owor576OPkJpOwor576UPktvdTsKK+e+mj5SZWk7Civnvp0+VGVpOwor576ePlNodXU7CivnvqM+R3VuOwor576kPkd1bjsKK+e+qD5TZW47Civnvqk+R2k7Civnvq4+S291Owor576vPkthdHN1Owor576yPkdpOwor5762PlNlbjsKK+e+uD5SdWk7Civnvrk+S291Owor5769PlU7Civnv4E+T3U7Civnv4U+U2hpOwor57+GPlN1aTsKK+e/ij5Zb2t1Owor57+MPllva3U7Civnv5I+U2h1dTsKK+e/lD5TaG91Owor57+VPkt5dXU7Civnv6A+U3VpOwor57+hPkhpOwor57+mPlNlbjsKK+e/qT5IZW47Civnv6s+R2FuOwor57+wPkthbjsKK+e/sz5FaTsKK+e/uT5HeW91Owor57+7PkhvbjsKK+e/vD5Zb2t1Owor6ICAPllvdTsKK+iAgT5Sb3U7CivogIM+S291Owor6ICEPk1vdTsKK+iAhT5TaGE7CivogIY+S2k7CivogIs+VGV0c3U7CivogIw+Smk7CivogJA+VGFpOwor6ICSPlJhaTsKK+iAlT5Lb3U7CivogJc+TW91Owor6ICYPlVuOwor6ICZPkhhOwor6ICcPlNoaTsKK+iAoT5KbzsKK+iAqD5Eb3U7CivogLM+Smk7CivogLY+WWE7CivogLs+Q2hpOwor6IC9PlRhbjsKK+iAvz5Lb3U7CivogYY+UmVpOwor6IGKPlJ5b3U7CivogZI+S2F0c3U7CivogZY+U2VpOwor6IGYPkhlaTsKK+iBmj5TaHV1Owor6IGePkJ1bjsKK+iBnz5TZWk7CivogaE+U291Owor6IGoPlJlbjsKK+iBrz5SZW47CivogbA+U291Owor6IGyPlNlaTsKK+iBsz5TaG91Owor6IG0PkNob3U7CivogbY+Sm91Owor6IG3PlNob2t1Owor6IG5PkRlaTsKK+iBvT5DaG91Owor6IG+PlJvdTsKK+iBvz5JdHN1Owor6IKEPkk7CivogoU+U2h1a3U7CivogoY+U2hpOwor6IKHPkNob3U7Civogok+TmlrdTsKK+iCiz5Sb2t1Owor6IKMPktpOwor6IKTPktvdTsKK+iClj5TaG91Owor6IKYPkNodXU7Civogpo+VG87Civogps+S291Owor6IKdPkthbjsKK+iCoT5LbzsKK+iCoj5TaGk7CivogqU+SGk7Civogqk+S2VuOwor6IKqPkJvdTsKK+iCrD5ZdXU7Civogq0+RG90c3U7Civogq8+S291Owor6IKxPktvdTsKK+iCsj5Ja3U7CivogrQ+S291Owor6IK6PkhhaTsKK+iDgz5JOwor6IOEPkNodXU7Civog4Y+VGFuOwor6IOMPkhhaTsKK+iDjj5UYWk7Civog5Y+SGFuOwor6IOZPlNvOwor6IOaPkhhaTsKK+iDmz5Lb3U7Civog50+Q2hpOwor6IOePkhvdTsKK+iDoT5LbzsKK+iDpD5JbjsKK+iDpT5TaG87Civog68+S287Civog7E+S291Owor6IO0PkRvdTsKK+iDuD5LeW91Owor6IO8PkhlbjsKK+iDvT5Ob3U7CivohII+U2hpOwor6ISFPkt5b3U7CivohIY+WmVpOwor6ISHPkt5b3U7CivohIg+TXlha3U7CivohIk+TXlha3U7CivohIo+U2VraTsKK+iEmj5LeWFrdTsKK+iEmz5LZWk7CivohKM+U2hpbjsKK+iEqT5TaHV1Owor6ISvPkhvOwor6ISxPkRhdHN1Owor6ISzPk5vdTsKK+iEuT5DaG91Owor6IS+PkhpOwor6IWGPlRlbjsKK+iFiz5Fa2k7CivohY4+SmluOwor6IWQPkZ1Owor6IWRPkZ1Owor6IWTPkhpOwor6IWUPktvdTsKK+iFlT5XYW47CivohZ8+Q2hpdHN1Owor6IWlPlNlaTsKK+iFpj5Ob3U7Civohas+U2hvdTsKK+iFrj5TYWk7CivohbA+WW91Owor6IWxPktlbjsKK+iFtD5ZdTsKK+iFuD5DaG91Owor6IW5PkZ1a3U7Civohbo+U2VuOwor6IW/PlRhaTsKK+iGgD5Ib3U7CivohoI+UnlvOwor6IaDPk90c3U7Civohog+S2FrdTsKK+iGij5IYWt1Owor6IaPPktvdTsKK+iGkz5DaG91Owor6IaVPktha3U7Civohpo+RnU7Civohpw+TWFrdTsKK+iGnT5TaGl0c3U7CivohqA+S291Owor6IajPkNoaXRzdTsKK+iGqD5Cb3U7Civohqk+Smk7CivohrA+SGFuOwor6IazPlNlbjsKK+iGtT5TdWk7Civohrg+WnVpOwor6Ia6PllvdTsKK+iGvT5UYW47Civohr4+S2FpOwor6Ia/PkRvdTsKK+iHgD5EZW47Civoh4I+SGk7Civoh4Y+T2t1Owor6IeIPlJvdTsKK+iHiT5SZW47Civoh40+U2VpOwor6IeRPkRhdTsKK+iHkz5ab3U7Civoh5g+Um91Owor6IeZPkVuOwor6IeaPlJ5bzsKK+iHnz5ab3U7Civoh6A+UmVuOwor6IejPlNoaW47Civoh6U+R2E7Civoh6c+Wm91Owor6IeoPlJpbjsKK+iHqj5TaGk7Civoh60+U2h1dTsKK+iHsz5TaGk7Civoh7Q+Q2hpOwor6Ie6PlRhaTsKK+iHuz5TaGluOwor6Ie8Pkt5dXU7Civoh74+WXU7CivoiIE+WW87CivoiII+U2hvdTsKK+iIhT5LeXV1Owor6IiHPllvOwor6IiIPkt5b3U7CivoiIk+S3lvOwor6IiKPkt5dXU7CivoiIw+WmV0c3U7CivoiI0+U2hhOwor6IiOPlNoYTsKK+iIkD5TaGk7CivoiJI+Sm87CivoiJY+SG87CivoiJc+SG87CivoiJg+S2FuOwor6IibPlNlbjsKK+iInD5TaHVuOwor6IiePkJ1Owor6IifPlNodXU7CivoiKk+U2VuOwor6IiqPktvdTsKK+iIqz5Ib3U7CivoiKw+SGFuOwor6IiuPlJvOwor6IizPkNoaWt1Owor6Ii1PlRhOwor6Ii2Pkhha3U7CivoiLc+S2VuOwor6Ii4PkthOwor6Ii5PlNlbjsKK+iJgD5GdTsKK+iJhz5UZWk7CivoiZg+U291Owor6ImZPlNvdTsKK+iJmj5Tb3U7CivoiZ8+RG91Owor6ImiPlNob3U7CivoiaQ+R2k7CivoiaY+S2FuOwor6ImoPk1vdTsKK+iJqj5SbzsKK+iJqz5SbzsKK+iJrj5Lb247Civoia8+UnlvdTsKK+iJsT5LYW47CivoibI+U2hva3U7CivoibY+RW47Civoibc+RW47Civoibg+U291Owor6Im+PkdhaTsKK+iKiz5VOwor6IqNPlNoYWt1Owor6IqSPkJvdTsKK+iKmT5GdTsKK+iKnT5TaGk7Civoip8+U2FuOwor6IqlPkthaTsKK+iKpj5SbzsKK+iKqz5HZW47Civoiqw+RnVuOwor6IqtPkJhOwor6IqvPlNoaW47CivoirE+S2E7CivoirM+SG91Owor6Iq4PkdlaTsKK+iKuT5LaW47Civoirs+U3V1Owor6Iq9PkdhOwor6IuFPkdhaTsKK+iLkT5FbjsKK+iLkj5aZW47Civoi5M+UmVpOwor6IuUPlRhaTsKK+iLlz5CeW91Owor6IuZPlJ5dXU7Civoi5s+S2E7Civoi5w+Qm9rdTsKK+iLnj5Ib3U7Civoi58+S291Owor6IuhPkk7Civoi6M+S3lvOwor6IulPkpha3U7Civoi6Y+S3U7Civoi6c+Q2hvOwor6IurPlNlbjsKK+iLsT5FaTsKK+iLsz5Ub3U7Civoi7Q+U287Civoi7k+SGVpOwor6Iu6Pk1haTsKK+iLuz5GdTsKK+iMgj5NbzsKK+iMgz5IYW47CivojIQ+S2E7CivojIU+Qm91Owor6IyGPkJvdTsKK+iMiT5NYXRzdTsKK+iMjj5LZWk7CivojJY+S2FrdTsKK+iMlz5NZWk7CivojJg+Umk7CivojJw+U2VuOwor6IyjPkdvOwor6IyoPlNoaTsKK+iMqz5Cb3U7CivojK8+RnVrdTsKK+iMsT5TaHU7CivojLI+Smk7CivojLQ+S2FpOwor6Iy1PkluOwor6Iy2PkNoYTsKK+iMuD5Kb3U7CivojLk+Sm87CivojYA+SnVuOwor6I2FPlRvdTsKK+iNiT5Tb3U7CivojYo+S2VpOwor6I2PPkppbjsKK+iNkD5TZW47CivojZI+S291Owor6I2YPlNvdTsKK+iNsz5Ub3U7CivojbU+SmluOwor6I23PkthOwor6I27PlRla2k7Civojbw+VG87CivojoU+Umk7Civojoc+Q2hvOwor6I6JPkNoaTsKK+iOij5Tb3U7Civojo4+U2E7CivojpM+TWFpOwor6I6WPktlaTsKK+iOmj5FbjsKK+iOnj5LYW47Civojp8+S2FuOwor6I6gPll1dTsKK+iOoj5LeW91Owor6I6oPlJvdTsKK+iOqj5HYTsKK+iOqz5CbzsKK+iOsT5SYWk7CivojrU+VG87Civojr0+Qm91Owor6I+BPlNlaTsKK+iPhT5LYW47Civoj4o+S2lrdTsKK+iPjD5LaW47Civoj44+S29uOwor6I+TPkthOwor6I+WPlNob3U7Civoj5g+U3V1Owor6I+cPlNhaTsKK+iPnz5UbzsKK+iPoD5IYTsKK+iPqT5IYWk7Civoj6s+S2luOwor6I+vPkthOwor6I+wPktvOwor6I+xPlJ5b3U7Civoj7I+SGk7Civoj7Q+QW47Civoj7c+U291Owor6I+7PlJpbjsKK+iPvT5TaHVrdTsKK+iQgz5TdWk7CivokIQ+VG91Owor6JCHPkNob3U7CivokIs+U2VpOwor6JCMPkhvdTsKK+iQjT5IZWk7CivokI4+STsKK+iQkz5HaTsKK+iQoD5Ib3U7CivokKk+U2h1dTsKK+iQqj5LdXdhOwor6JCsPk1hbjsKK+iQsT5LZW47CivokLU+V2E7CivokLg+WXU7CivokLw+R2FrdTsKK+iQvT5SYWt1Owor6JGGPkhvOwor6JGJPllvdTsKK+iRjj5SaXRzdTsKK+iRlz5DaG87CivokZs+S2F0c3U7CivokaE+SG87CivokaI+R2FpOwor6JGjPlRvdTsKK+iRpj5JOwor6JGpPkhhOwor6JGrPktvOwor6JGsPlNvdTsKK+iRrT5LYTsKK+iRrj5UYW47Civoka8+WWFrdTsKK+iRsT5Tb3U7CivokbU+S2k7Civokbc+R3VuOwor6JG5PlNoaTsKK+iRuj5TaHV1Owor6JKCPlRlaTsKK+iShD5LYW47Civokos+U2hvdTsKK+iSkD5TaHV1Owor6JKUPlNoaTsKK+iSmT5Cb3U7Civokpw+U2FuOwor6JKfPktvbjsKK+iSoT5Ib3U7Civokq0+U3V1Owor6JKyPkhvOwor6JK4PkpvdTsKK+iSuT5LZW47Civokrs+SmFrdTsKK+iSvD5Tb3U7Civokr8+S291Owor6JOBPlNoaW47Civok4Q+Q2hpa3U7Civok4Y+U2VraTsKK+iTiT5Zb3U7Civok4o+T3U7Civok4s+R2FpOwor6JONPlNoaTsKK+iTkD5Kb2t1Owor6JORPlNhOwor6JOWPkhpOwor6JOaPkNob3U7Civok6w+SG91Owor6JOuPlJlbjsKK+iTtD5TaHVuOwor6JO8PlJ5b3U7Civok78+U2h1a3U7CivolIA+SG91Owor6JSGPlJ5b3U7CivolJE+QmV0c3U7CivolJM+QmFuOwor6JSUPkZ1a3U7CivolJU+VGVpOwor6JSXPlNobzsKK+iUmD5TaGluOwor6JSaPlV0c3U7CivolJ8+Wm9rdTsKK+iUoT5TYWk7CivolKY+Q2hvdTsKK+iUrD5TbzsKK+iUrT5JbjsKK+iUtT5ab3U7CivolL0+SGVpOwor6JWAPkt5b2t1Owor6JWBPkppbjsKK+iVgz5CYW47CivolYg+U2hpbjsKK+iViT5TaG91Owor6JWKPlp1aTsKK+iViz5adWk7CivolY4+S3lvdTsKK+iVlT5ZdXU7CivolZc+Um87CivolZg+Sm91Owor6JWaPkdha3U7CivolaM+U2h1bjsKK+iVqD5LZXRzdTsKK+iVqT5Ub3U7Civolao+QnU7Civola0+U2hvdTsKK+iVtz5ZbzsKK+iVvj5SYWk7CivoloA+VW47CivoloQ+SGFrdTsKK+iWhz5CaTsKK+iWiD5LYWk7Civoloo+S2VpOwor6JaQPlJvdTsKK+iWkT5LeW91Owor6JaUPlNob2t1Owor6JaXPkVuOwor6JaZPlRlaTsKK+iWmz5TZXRzdTsKK+iWnD5IZWtpOwor6JakPkthaTsKK+iWpj5TZW47Civolqg+S291Owor6JapPlNhdHN1Owor6JaqPlNoaW47Civolqs+S3VuOwor6JasPllha3U7Civolq4+U291Owor6JavPlNobzsKK+iWuT5UYWk7Civolro+U2VpOwor6JeBPktvdTsKK+iXiT5TaGE7Civol40+UmFuOwor6JePPlpvdTsKK+iXkD5CYWt1Owor6JeVPkd1dTsKK+iXnD5SZWk7Civol50+R2VpOwor6JekPlRvdTsKK+iXpT5ZYWt1Owor6JepPkhhbjsKK+iXqj5Tb3U7Civol7c+U2hvOwor6Je5PkFpOwor6Je6PlJpbjsKK+iXuz5Tb3U7Civol74+UmFpOwor6JiCPlp1aTsKK+iYhj5SbzsKK+iYhz5TbzsKK+iYij5VbjsKK+iYiz5IaW47CivomJM+U287CivomJY+R2V0c3U7CivomJc+SGFrdTsKK+iYmj5TZW47CivomKI+Um91Owor6JitPlJhbjsKK+iYrz5Ub3U7CivomL8+UmE7CivomY0+S287CivomY4+S287CivomZA+R3lha3U7CivomZQ+S2VuOwor6JmVPlNobzsKK+iZmj5LeW87CivomZw+UnlvOwor6JmePkd1Owor6JmfPkdvdTsKK+iZpz5LaTsKK+iZqz5DaHV1Owor6JmxPlNoaXRzdTsKK+iZuT5Lb3U7Civombs+Qm91Owor6JqKPkJ1bjsKK+iaiz5aZWk7Civomow+SG91Owor6JqTPkluOwor6JqVPlNhbjsKK+iaoz5Lb3U7CivomqQ+U291Owor6JqpPlNoaTsKK+iaqj5Ub3U7Civomqs+SG91Owor6JqvPkt5dXU7CivomrA+WXV1Owor6Jq2PkthbjsKK+ibhD5LbzsKK+ibhj5TaG87Civom4c+SmE7Civom4k+UmVpOwor6JuLPlRhbjsKK+ibjT5LZWk7Civom44+UmVpOwor6JuUPkthaTsKK+ibmT5BOwor6JubPlNodTsKK+ibnj5LYXRzdTsKK+ibnz5Lb3U7Civom6Q+S291Owor6JupPkt5b3U7Civom6w+S3lvdTsKK+ibrT5TaGl0c3U7Civom64+QmFuOwor6Ju4PlNvdTsKK+ibuT5Zb3U7Civom7s+WmVpOwor6Ju+PkdhOwor6JyAPlNob2t1Owor6JyCPkhvdTsKK+icgz5TaGluOwor6JyGPktlbjsKK+iciD5HbzsKK+iciT5GdTsKK+icij5SaTsKK+icjT5TaG87CivonJE+VGFuOwor6JySPkVuOwor6JyYPkNoaTsKK+icmj5IaTsKK+icnD5NaXRzdTsKK+icpT5TZWtpOwor6JypPkNob3U7CivonLQ+RWtpOwor6Jy3PktlbjsKK+icuz5TZWk7CivonL8+RW47CivonYk+U2VuOwor6J2LPlJvdTsKK+idjD5LYTsKK+idjj5LYXRzdTsKK+idkz5ZdTsKK+idlT5TaG9rdTsKK+idlz5Lb3U7CivonZk+SGVuOwor6J2fPkk7CivonaA+RnVrdTsKK+idoz5ZdXU7CivonaY+S2E7Civonag+U2hpdHN1Owor6J2qPlRvdTsKK+idrj5GdWt1Owor6J20PktvOwor6J22PkNob3U7Civonbg+S2E7Civonb8+WW91Owor6J6CPlJvdTsKK+iejT5ZdXU7Civonp8+TWVpOwor6J6iPktlaTsKK+ieqz5TZWtpOwor6J6vPkdvdTsKK+iesz5Ub3U7Civonro+UmE7Civonrs+Um91Owor6J69PlNodXU7Civon4A+U2h1dHN1Owor6J+EPkNoaXRzdTsKK+ifhj5CYTsKK+ifhz5CYTsKK+ifiz5TaGl0c3U7Civon5A+VG91Owor6J+SPkJvdTsKK+ifoD5IYW47Civon68+R3lvdTsKK+ifsj5LaTsKK+iftj5UZWk7Civon7c+VG91Owor6J+5PkthaTsKK+ifuz5HaTsKK+ifvj5TZW47CivooIU+WW91Owor6KCNPkthdHN1Owor6KCOPkJvdTsKK+igjz5LYWk7CivooJE+RWk7CivooJU+RGE7CivooJY+S2FrdTsKK+igoT5SZWk7CivooKI+U2h1bjsKK+igoz5SZWk7CivooKc+VG87CivooLE+S287CivooLY+U2FuOwor6KC5PlRvOwor6KC7PkJhbjsKK+ihgD5LZXRzdTsKK+ihgj5KaWt1Owor6KGEPkppa3U7CivooYY+U2h1dTsKK+ihjD5Lb3U7CivooY0+RW47CivooZI+S2VuOwor6KGTPkp1dHN1Owor6KGXPkdhaTsKK+ihmT5HeW87CivooZs+RWk7CivooZ0+U2hvdTsKK+ihnj5FaTsKK+ihoT5Lb3U7CivooaI+S3U7CivooaM+STsKK+ihqD5IeW91Owor6KGrPlNhbjsKK+ihsD5TYTsKK+ihsj5Eb3U7CivoobU+Sml0c3U7Civoobc+Q2h1dTsKK+ihvT5KaW47Civoob4+S2luOwor6KG/PktpbjsKK+iigT5FbjsKK+iigj5CZWk7Civooog+S2E7Civooos+VGFpOwor6KKNPkhvdTsKK+iikj5UYW47CivoopY+U2h1dTsKK+iilz5TaGluOwor6KKZPkhhOwor6KKePktvbjsKK+iioj5IYW47CivooqQ+Qm91Owor6KKrPkhpOwor6KKuPk5lOwor6KKxPkZ1a3U7CivoorQ+S287CivoorU+SmluOwor6KK3PktvdTsKK+iivz5LZWk7Civoo4E+U2FpOwor6KOCPlJldHN1Owor6KOFPlNvdTsKK+ijjz5SaTsKK+ijlD5FaTsKK+ijlT5ZdXU7Civoo5g+S3l1dTsKK+ijmT5LdW47Civoo5w+SG87Civoo50+U291Owor6KOfPlNhOwor6KOhPlJpOwor6KOoPkhpOwor6KOyPlJ5b3U7Civoo7M+U2hvdTsKK+ijtD5IYWk7Civoo7g+UmE7Civoo7k+S2E7Civoo7w+U2VraTsKK+ijvT5TZWk7Civoo74+S3lvOwor6KSCPkthaTsKK+ikhz5GdWt1Owor6KSKPkhlbjsKK+ikjD5Lb247CivopJA+S2F0c3U7CivopJI+SG91Owor6KSTPkhvOwor6KSdPlRhbjsKK+iknj5PbjsKK+ikpT5Kb2t1Owor6KSqPlRhaTsKK+ikqz5DaGk7CivopLY+Q2hvdTsKK+ikuD5Sb3U7CivopLs+U2V0c3U7CivopYE+S3lvdTsKK+ilgz5Ib3U7CivopYQ+Sm91Owor6KWMPlRhbjsKK+iljT5aYXRzdTsKK+illj5PdTsKK+ilnj5IZWtpOwor6KWfPktpbjsKK+iloD5Ub3U7CivopaQ+UmFuOwor6KWmPkp1Owor6KWqPkJldHN1Owor6KWtPktldHN1Owor6KWvPlNoaW47CivopbI+U2h1dTsKK+iltD5SYW47Civopb4+QWthOwor6KW/PlNlaTsKK+imgT5Zb3U7CivopoM+VGFuOwor6KaGPkZ1a3U7Civopoc+SGE7Civopog+S2FrdTsKK+imij5LaTsKK+imiz5LZW47Civopo8+S2k7CivoppM+QmVraTsKK+imlj5TaGk7Civoppc+U2hpOwor6KaYPlRlbjsKK+immj5LYWt1Owor6KahPkdla2k7CivopqY+WXU7Civopqc+UmFuOwor6KapPlRvOwor6KaqPlNoaW47Civopqw+S2k7Civopq8+S291Owor6KayPktpbjsKK+imsz5LYW47Civopro+S2FrdTsKK+imvT5SYW47Civopr8+VGVraTsKK+ingD5LYW47Civop5I+S2FrdTsKK+inmj5LbzsKK+innD5TaGk7Civop50+VGVpOwor6KejPkthaTsKK+inpj5TaG9rdTsKK+inpz5LYWk7Civop7Q+U2hvdTsKK+inuD5TaG9rdTsKK+iogD5HZW47CivoqII+VGVpOwor6KiDPkZ1Owor6KiIPktlaTsKK+ioij5KaW47CivoqIw+S291Owor6KiOPlRvdTsKK+iokD5LZXRzdTsKK+iokz5LdW47CivoqJY+S2l0c3U7CivoqJc+VGFrdTsKK+iomD5LaTsKK+iomz5LYTsKK+ionT5HYTsKK+ionz5TaG91Owor6KijPktldHN1Owor6KilPlRvdHN1Owor6KiqPkhvdTsKK+iorT5TZXRzdTsKK+iosT5LeW87CivoqLM+WWFrdTsKK+iotD5TbzsKK+iotj5LYTsKK+iouj5TaGluOwor6Ki7PkNodXU7CivoqLw+U2hvdTsKK+ipgT5LbzsKK+iphj5UZWk7CivoqYg+Umk7CivoqZA+U2E7CivoqZE+VGE7CivoqZI+VGFpOwor6KmUPlNob3U7CivoqZU+SHlvdTsKK+ipmz5TbzsKK+ipnj5TaGk7CivoqaA+RWk7CivoqaI+SnVuOwor6KmjPktlaTsKK+ippj5TaGk7Civoqak+U2hpOwor6KmrPlRhOwor6KmsPktvdTsKK+iprT5LaTsKK+iprj5TZW47CivoqbA+S2l0c3U7CivoqbE+V2E7CivoqbI+R2FpOwor6KmzPlNob3U7Civoqbw+S2FpOwor6KqCPkNob3U7CivoqoQ+UnVpOwor6KqFPkNodXU7Civoqoc+S287Civoqok+WW87Civoqow+U2hpOwor6KqNPk5pbjsKK+iqkT5LeW91Owor6KqTPlNlaTsKK+iqlT5UYW47Civoqpg+WXV1Owor6KqaPlNob3U7Civoqp4+R287CivoqqA+U2VpOwor6KqhPkthaTsKK+iqoz5GdTsKK+iqpD5HbzsKK+iqpT5Lb3U7CivoqqY+U2hvdTsKK+iqqD5LYWk7Civoqqw+U2V0c3U7Civoqq0+VG9rdTsKK+iqsD5TdWk7CivoqrI+S2E7Civoqrk+SGk7Civoqrw+R2k7Civoqr8+Q2hvdTsKK+irgj5UZW47Civoq4Q+SnVuOwor6KuHPkRhbjsKK+iriz5TZWk7Civoq4w+S2FuOwor6KuNPlNvdTsKK+irjz5TaHU7Civoq5I+UnlvdTsKK+irlj5Sb247Civoq5o+Sm91Owor6KubPll1Owor6KucPkNob3U7Civoq54+SGVuOwor6KugPktlbjsKK+iroT5TaGk7Civoq6I+S29uOwor6KukPkdha3U7Civoq6Y+VGVpOwor6KunPkthaTsKK+irqz5LYW47Civoq60+WXU7Civoq64+U2hpOwor6KuxPktpOwor6KuzPkFuOwor6Ku3PkZ1dTsKK+iruD5TaG87Civoq7o+R2VuOwor6Ku+PkRha3U7CivorIA+Qm91Owor6KyBPkV0c3U7CivorII+STsKK+ishD5Ub3U7CivorIc+S2VuOwor6KyMPkthOwor6KyOPk1laTsKK+iskD5IaXRzdTsKK+islD5HeWFrdTsKK+islj5TaG9rdTsKK+islz5Cb3U7CivorJk+S2VuOwor6KyaPlNoaTsKK+ismz5Lb3U7CivorJ0+U2hhOwor6KygPllvdTsKK+isoT5Zb3U7CivorKY+S2VpOwor6KyoPkJvOwor6KyrPlRha3U7CivorKw+QnlvdTsKK+issz5PdTsKK+isuT5LaW47CivorL4+QmFuOwor6K2BPkthOwor6K2JPlNob3U7CivorYw+S2E7CivorY4+S2l0c3U7CivorY8+S2k7CivorZY+U2hpbjsKK+itmD5TaGlraTsKK+itmj5UYW47CivorZs+U2hpbjsKK+itnD5GdTsKK+itnz5Tb3U7CivoraY+S2VpOwor6K2rPlNlbjsKK+itrD5IaTsKK+itrz5ZYWt1Owor6K2wPkdpOwor6K2xPlplbjsKK+itsj5Kb3U7CivorbQ+S2VuOwor6K23PkdvOwor6K29PllvOwor6K6APlRva3U7CivoroM+U2FuOwor6K6KPkhlbjsKK+iujD5FbjsKK+iujj5TaHV1Owor6K6QPlNodXU7CivorpI+U2FuOwor6K6TPkpvdTsKK+iulj5TaGluOwor6K6ZPkthbjsKK+iumj5TYW47CivosLc+S29rdTsKK+iwuj5LYTsKK+iwvz5LZWk7CivosYE+S2F0c3U7CivosYY+VG91Owor6LGIPktpOwor6LGKPkhvdTsKK+ixjD5FbjsKK+ixjj5KdTsKK+ixkD5Ib3U7CivosZU+U2hpOwor6LGaPlRvbjsKK+ixoT5TaG91Owor6LGiPktlbjsKK+ixqj5Hb3U7Civosas+WW87Civosaw+Q2hvOwor6LG4PkNoaTsKK+ixuT5Ib3U7Civosbo+U2FpOwor6LG8PkhpOwor6LKCPkNob3U7CivosoU+S3l1dTsKK+iyiT5LYWt1Owor6LKKPkhha3U7Civosow+Qm91Owor6LKNPlJpOwor6LKOPkdlaTsKK+iylD5IaTsKK+iymD5CYWt1Owor6LKdPkJhaTsKK+iynj5UZWk7CivosqA+RnU7CivosqE+WmFpOwor6LKiPktvdTsKK+iypz5IaW47Civosqg+S2E7Civosqk+SGFuOwor6LKqPkRvbjsKK+iyqz5LYW47Civosqw+U2VraTsKK+iyrT5TaGl0c3U7Civosq4+Tmk7Civosq8+Q2hvOwor6LKwPlNlaTsKK+iysj5TaGk7CivosrM+Tmk7CivosrQ+S2k7CivosrY+SGVuOwor6LK3PkJhaTsKK+iyuD5UYWk7Civosrs+SGk7Civosrw+VGVuOwor6LK9Pkk7Civosr8+Qm91Owor6LOAPkdhOwor6LOBPkhpOwor6LOCPlJvOwor6LODPkNoaW47Civos4Q+V2FpOwor6LOHPlNoaTsKK+iziD5LbzsKK+izij5ab2t1Owor6LONPlNvdTsKK+izjj5TZW47Civos5E+U2hpbjsKK+izkz5IaW47Civos5o+UmFpOwor6LObPlNhbjsKK+iznD5TaGk7Civos54+U2hvdTsKK+izoD5CYWk7Civos6I+S2VuOwor6LOjPkJhaTsKK+izpD5TZW47Civos6Y+RnU7Civos6o+U2hpdHN1Owor6LOtPlRvOwor6LO6PlRhbjsKK+izuz5GdTsKK+izvD5Lb3U7Civos70+U2FpOwor6LSEPlNoaTsKK+i0hT5aZWk7CivotIc+SW47CivotIg+Wm91Owor6LSKPlNhbjsKK+i0iz5HYW47CivotI0+U2VuOwor6LSPPkVpOwor6LSQPlNoaW47CivotJM+Wm91Owor6LSUPkhpOwor6LSWPlNob2t1Owor6LWkPlNla2k7CivotaY+U2hhOwor6LWnPlRhbjsKK+i1qz5LYWt1Owor6LWtPlNoYTsKK+i1sD5Tb3U7CivotbE+U291Owor6LWzPkt5dXU7CivotbQ+RnU7Civotbc+S2k7CivotoE+Q2hpbjsKK+i2hT5DaG91Owor6LaKPkV0c3U7Civotpk+Q2hvdTsKK+i2oz5TaHU7Civotqg+U3V1Owor6LazPlNva3U7Civotro+RnU7Civotr4+U2hpOwor6LeCPktpOwor6LeLPkJhdHN1Owor6LeMPlRldHN1Owor6LePPkthOwor6LeWPlNla2k7Civot5o+U2FuOwor6LebPkhhOwor6LedPkt5bzsKK+i3nz5Lb247Civot6E+U2VraTsKK+i3oz5TZW47Civot6g+S287Civot6o+S2k7Civot6s+S3lvdTsKK+i3rz5SbzsKK+i3sz5DaG91Owor6Le1PlNlbjsKK+i3vD5LeW9rdTsKK+i3vz5UbzsKK+i4iD5TaG87CivouIk+UnlvdTsKK+i4ij5Zb3U7CivouI8+VG91Owor6LiQPlNlbjsKK+i4nT5LYTsKK+i4nj5LeW87CivouJ8+Q2hpOwor6LiqPlNob3U7CivouLA+WXU7CivouLQ+WW91Owor6Li1PlNob3U7CivouYI+SnV1Owor6LmEPlRlaTsKK+i5hz5LZW47CivouYg+VG91Owor6LmJPlNhOwor6LmKPktlaTsKK+i5jD5TaG91Owor6LmQPlNla2k7CivouZU+SGl0c3U7CivouZk+U2h1a3U7CivouZ8+U2VraTsKK+i5oD5TZWtpOwor6LmjPk1hbjsKK+i5pD5TaG91Owor6LmyPlNvbjsKK+i5tD5TaHV1Owor6Lm2PktldHN1Owor6Lm8PkJva3U7CivouoE+U291Owor6LqEPkhla2k7CivouoU+Q2hva3U7Civouoc+Q2hvOwor6LqKPkNodXU7Civouos+U2VpOwor6LqNPllha3U7CivoupE+VGVraTsKK+i6kz5DaGk7CivoupQ+VGVuOwor6LqZPlJpbjsKK+i6oT5Kb3U7Civouqo+UmluOwor6LqrPlNoaW47Civouqw+S3l1dTsKK+i6rz5LdTsKK+i6sD5UZWk7CivourE+VGE7Civou4Y+VGVpOwor6LuKPlNoYTsKK+i7iz5BdHN1Owor6LuMPktpOwor6LuNPkd1bjsKK+i7kj5LZW47Civou5s+QWt1Owor6LufPk5hbjsKK+i7oj5UZW47Civou6M+R291Owor6LurPlNoaW47Civou7g+SmlrdTsKK+i7uz5LYTsKK+i7vD5JdHN1Owor6Lu9PktlaTsKK+i7vj5TaG9rdTsKK+i8gz5LYWt1Owor6LyFPlJvOwor6LyJPlNhaTsKK+i8ij5DaGk7CivovIw+UnlvdTsKK+i8kj5DaG91Owor6LyTPkJhbjsKK+i8lD5GdTsKK+i8lT5LZWk7CivovJk+Q2hvdTsKK+i8mz5SeW91Owor6LycPlNoaTsKK+i8nT5LaTsKK+i8nz5UZXRzdTsKK+i8pj5SZW47CivovKk+SGFpOwor6LyqPlJpbjsKK+i8rz5TaHV1Owor6LyzPlNvdTsKK+i8uD5ZdTsKK+i8uT5GdWt1Owor6Ly7PkZ1a3U7CivovL4+VGVuOwor6Ly/PllvOwor6L2CPktva3U7CivovYQ+S2F0c3U7CivovYU+RW47CivovYY+Um9rdTsKK+i9iT5UZW47CivovY0+VGV0c3U7CivovY4+S3lvdTsKK+i9lz5LYW47CivovZw+Smk7CivovZ8+R291Owor6L2hPkhpOwor6L2iPlJla2k7CivovaM+UmVraTsKK+i9pD5SbzsKK+i+mz5TaGluOwor6L6cPktvOwor6L6ePkppOwor6L6fPkhla2k7CivovqM+UmF0c3U7Civovqc+QmVuOwor6L6oPkJlbjsKK+i+rT5KaTsKK+i+rj5IZW47Civovq8+QmVuOwor6L6wPlNoaW47CivovrE+Sm9rdTsKK+i+sj5Ob3U7Civovro+SGVuOwor6L6/PlRlbjsKK+i/gj5VOwor6L+EPktpdHN1Owor6L+FPkppbjsKK+i/jj5HZWk7Civov5E+S2luOwor6L+UPkhlbjsKK+i/oj5DaG91Owor6L+lPktlaTsKK+i/pj5LYTsKK+i/qT5KaTsKK+i/qj5UZWtpOwor6L+rPkhha3U7Civov60+VGV0c3U7Civov68+VG91Owor6L+wPkp1dHN1Owor6L+0PkthaTsKK+i/tz5NZWk7Civov7g+SG91Owor6L+5PlNla2k7Civov7o+RGFpOwor6L+9PlRzdWk7CivpgIA+VGFpOwor6YCBPlNvdTsKK+mAgz5Ub3U7CivpgIU+S291Owor6YCGPkd5YWt1Owor6YCLPkhvOwor6YCNPlNob3U7CivpgI4+U2h1dTsKK+mAjz5Ub3U7CivpgJA+Q2hpa3U7CivpgJE+S3l1dTsKK+mAkz5UZWk7CivpgJQ+VG87CivpgJU+S2VpOwor6YCWPlRla2k7CivpgJc+VG91Owor6YCZPkdlbjsKK+mAmj5UczsKK+mAnT5TZWk7CivpgJ4+VGVpOwor6YCfPlNva3U7CivpgKA+Wm91Owor6YChPlNodW47CivpgKI+SG91Owor6YCjPlJlbjsKK+mArj5UYWk7CivpgLE+U2h1dTsKK+mAsj5TaGluOwor6YC1PktpOwor6YC2Pkk7CivpgLg+SXRzdTsKK+mAuT5UYXRzdTsKK+mAvD5IaXRzdTsKK+mAvj5ZdTsKK+mBgT5Ub247CivpgYI+U3VpOwor6YGFPkNoaTsKK+mBhz5HdXU7CivpgYk+VGVpOwor6YGKPll1dTsKK+mBiz5VbjsKK+mBjT5IZW47CivpgY4+S2E7CivpgY8+QXRzdTsKK+mBkD5LYTsKK+mBkT5Lb3U7CivpgZI+U2h1dTsKK+mBkz5Eb3U7CivpgZQ+VGF0c3U7CivpgZU+STsKK+mBmD5Lb3U7CivpgZk+WW91Owor6YGcPlNvbjsKK+mBnj5UZWk7CivpgaA+RW47CivpgaE+U287CivpgaM+S2VuOwor6YGlPllvdTsKK+mBqD5Hb3U7Civpgak+VGVraTsKK+mBrT5Tb3U7Civpga4+U2hhOwor6YGvPlRvbjsKK+mBsj5DaGk7CivpgbU+SnVuOwor6YG2PkpvdTsKK+mBtz5TZW47Civpgbg+U2VuOwor6YG6Pkk7Civpgbw+UnlvdTsKK+mBvT5LeW87Civpgb8+SGk7CivpgoA+WW91Owor6YKBPkJhaTsKK+mCgj5LYWk7CivpgoM+U3VpOwor6YKEPkthbjsKK+mChz5KaTsKK+mCiT5IZW47Civpgoo+SGVuOwor6YKPPlJhOwor6YKRPll1dTsKK+mCoz5EYTsKK+mCpj5Ib3U7Civpgqg+U29uOwor6YKqPllhOwor6YKvPkthbjsKK+mCsT5LeXV1Owor6YK1PlNob3U7Civpgrg+VGVpOwor6YOBPklrdTsKK+mDij5Lb3U7Civpg44+Um91Owor6YObPkZ1Owor6YOhPkd1bjsKK+mDoj5FaTsKK+mDpD5HZWtpOwor6YOoPkJ1Owor6YOtPktha3U7Civpg7U+WXV1Owor6YO3Pkt5b3U7Civpg70+VG87CivphII+R2FrdTsKK+mEkj5TdXU7CivphJk+SGk7CivphK0+VGVpOwor6YSwPlJpbjsKK+mEsj5UYW47CivphYk+WXV1Owor6YWKPlRlaTsKK+mFiz5TaHV1Owor6YWMPlNoYWt1Owor6YWNPkhhaTsKK+mFjj5DaHV1Owor6YWSPlNodTsKK+mFlD5TdWk7CivphZY+VGFuOwor6YWYPlRvdTsKK+mFoj5TYWt1Owor6YWjPkthbjsKK+mFpT5TbzsKK+mFqT5NZWk7Civphao+UmFrdTsKK+mFrD5TaHV1Owor6YWyPlRlaTsKK+mFsz5JbjsKK+mFtT5Lb3U7Civphbc+S29rdTsKK+mFuD5TYW47CivphoI+UmluOwor6YaHPlNodW47Civphok+U3VpOwor6YaLPlNha3U7Civpho0+VGVpOwor6YaQPktvOwor6YaSPlNlaTsKK+mGlz5IYXRzdTsKK+mGnD5TaHV1Owor6YaiPkthaTsKK+mGpD5TaG91Owor6YaqPlJvdTsKK+mGqz5JOwor6YavPktlaTsKK+mGtD5SZWk7CivphrU+S3lvOwor6Ya4PkpvdTsKK+mGuj5LdW47Civph4A+Sm91Owor6YeBPktpbjsKK+mHhj5IYW47Civph4c+U2FpOwor6YeIPlNoYWt1Owor6YeJPll1dTsKK+mHiz5TaGFrdTsKK+mHjD5SaTsKK+mHjT5DaG91Owor6YeOPllhOwor6YePPlJ5b3U7Civph5A+Umk7Civph5E+S2luOwor6YeWPlRvdTsKK+mHmD5UZWk7Civph5s+S29rdTsKK+mHnD5GdTsKK+mHnT5TaGluOwor6YefPkhhdHN1Owor6YehPkZ1Owor6YejPkNob3U7Civph6Y+S291Owor6YenPlNlbjsKK+mHtT5TYTsKK+mHtj5TaGk7Civph7w+S2VuOwor6Ye/PktpbjsKK+mIjT5Eb247CivpiI4+S291Owor6YiRPkhhbjsKK+mIlD5TaG91Owor6YiVPkNodXU7CivpiJ4+S2luOwor6YipPlJvOwor6YisPlRha3U7CivpiLQ+UmVpOwor6Yi3PktvOwor6Yi/PlRlbjsKK+mJhD5UZXRzdTsKK+mJhT5LeW87CivpiYg+U2hhOwor6YmJPktlbjsKK+mJiz5Ib3U7CivpiZA+U2VraTsKK+mJlz5LYW47CivpiZo+Unl1dTsKK+mJmz5FbjsKK+mJnj5FdHN1Owor6YmiPkhhY2hpOwor6YmkPktvdTsKK+mJpj5TZWk7CivpibE+S291Owor6Ym+PkJvdTsKK+mKgD5HaW47CivpioM+SnV1Owor6YqFPkRvdTsKK+mKkT5TZW47CivpipM+U2VuOwor6YqVPlRldHN1Owor6YqWPlNodTsKK+mKmD5NZWk7Civpipo+WW91Owor6YqbPlNlbjsKK+mKnD5LYW47Civpiq0+U2VuOwor6Yq3PlNob3U7Civpirk+U2h1dTsKK+mLjz5LeW91Owor6YuSPkhvdTsKK+mLpD5KbzsKK+mLqT5Cb3U7Civpi6o+SG87Civpi60+RWk7Civpi7M+Q2h1dTsKK+mLuD5LeW87Civpi7o+RW47Civpi7w+S291Owor6YyGPlNlaTsKK+mMjz5BOwor6YyQPlN1aTsKK+mMmD5Uc3VpOwor6YyZPlNoaTsKK+mMmj5Tb3U7CivpjKA+Sm91Owor6YyiPlNlbjsKK+mMoz5UZWk7CivpjKY+S2luOwor6YyoPkJ5b3U7CivpjKs+U2VraTsKK+mMrD5SZW47CivpjK4+S287CivpjK8+U2FrdTsKK+mMsj5Sb2t1Owor6Yy7PkJ1Owor6Y2EPktlaTsKK+mNiz5LYTsKK+mNjT5UbzsKK+mNlD5HYWt1Owor6Y2WPkNoaW47CivpjZs+VGFuOwor6Y2cPkthOwor6Y2gPktvdTsKK+mNrD5TaHV1Owor6Y2uPkNodXU7CivpjbU+S2VuOwor6Y28PlNoaW47Civpjb4+U2hvdTsKK+mOjD5SZW47CivpjpQ+WW91Owor6Y6WPlNhOwor6Y6XPlNvdTsKK+mOmj5Uc3VpOwor6Y6nPkdhaTsKK+mOrD5Lb3U7Civpjq0+Q2hpbjsKK+mOrj5DaGluOwor6Y6wPkl0c3U7Civpj4M+Wm9rdTsKK+mPiD5SZW47Civpj5A+Unl1dTsKK+mPkT5UZWtpOwor6Y+WPk91Owor6Y+XPktvdTsKK+mPmD5TaG91Owor6Y+dPk1hbjsKK+mPoT5LeW91Owor6Y+kPlJvdTsKK+mPpT5TaHV1Owor6Y+oPlNhbjsKK+mQgz5Eb3U7CivpkIc+SGFuOwor6ZCQPlJ5b3U7CivpkJM+VGFpOwor6ZCUPlNoaW47CivpkJg+U2hvdTsKK+mQmT5Ub3U7CivpkJo+QTsKK+mQoT5UZXRzdTsKK+mQqz5TZW47CivpkLU+VGV0c3U7CivpkLY+S2FuOwor6ZC4PlRha3U7CivpkLo+VG91Owor6ZGBPkJhbjsKK+mRhD5DaHV1Owor6ZGRPkthbjsKK+mRkj5LYW47CivpkZo+U2FuOwor6ZGbPktvdTsKK+mRnj5Sb3U7CivpkaA+U2hha3U7CivpkaI+UnlvOwor6ZGqPlJvOwor6ZGwPllha3U7CivpkbU+S2FuOwor6ZG3PkpvdTsKK+mRvD5SYTsKK+mRvT5TYW47Civpkb4+UmFuOwor6ZG/PlNha3U7CivpkoE+S2FrdTsKK+mVtz5DaG91Owor6ZaAPk1vbjsKK+mWgj5TYW47CivploM+U2VuOwor6ZaHPkhlaTsKK+mWiT5IZWk7Civplos+S2FpOwor6ZaPPkp1bjsKK+mWkT5LYW47CivplpM+S2FuOwor6ZaUPkJpbjsKK+mWmD5Lb3U7Civplpk+VG91Owor6ZaiPkthbjsKK+mWoz5LYWt1Owor6ZakPktvdTsKK+mWpT5CYXRzdTsKK+mWpz5Lb3U7Civplqg+S2VpOwor6ZatPlJvOwor6ZayPkV0c3U7Civplrk+RW47Civplrs+RW47Civplrw+QTsKK+mWvj5Zb2t1Owor6ZeDPkdla2k7Civpl4c+QW47Civpl4o+S2F0c3U7Civpl4w+UmFuOwor6ZeNPlRvOwor6ZeUPktvdTsKK+mXlT5LZXRzdTsKK+mXlj5DaGluOwor6ZeYPlRvdTsKK+mXnD5LYW47Civpl6E+U2VuOwor6ZeiPkhla2k7Civpl6U+VGF0c3U7CivpmJw+RnU7CivpmKE+U2VuOwor6ZioPkFrdTsKK+mYqj5IYW47CivpmK4+R2VuOwor6ZivPlNoaTsKK+mYsj5Cb3U7CivpmLs+U287CivpmL8+QTsKK+mZgD5EYTsKK+mZgj5IYTsKK+mZhD5GdTsKK+mZiz5Sb3U7CivpmYw+SGFrdTsKK+mZjT5Lb3U7CivpmY8+VGE7CivpmZA+R2VuOwor6ZmbPkhlaTsKK+mZnD5Lb3U7CivpmZ0+U2VuOwor6ZmePlNob3U7CivpmZ8+Q2hva3U7CivpmaI+SW47CivpmaM+SmluOwor6ZmkPkpvOwor6ZmlPkthbjsKK+mZpj5Ub3U7Civpmao+QmFpOwor6ZmsPlN1dTsKK+mZsD5JbjsKK+mZsj5TdWk7CivpmbM+Q2hpbjsKK+mZtT5SeW91Owor6Zm2PlRvdTsKK+mZtz5LYW47Civpmbg+UmlrdTsKK+mZuj5LZW47Civpmb0+WW91Owor6ZqFPkd1dTsKK+mahj5SeXV1Owor6ZqIPldhaTsKK+maij5UYWk7Civpmos+VGE7Civpmo0+S291Owor6ZqOPkthaTsKK+majz5adWk7CivpmpQ+S2FrdTsKK+malT5JbjsKK+malz5LYWk7Civpmpg+QWk7Civpmpk+R2VraTsKK+mamz5TYWk7Civpmpw+U2hvdTsKK+maoD5JbjsKK+maoz5SaW47Civpmqc+U3VpOwor6ZqoPlp1aTsKK+maqj5LZW47CivpmrA+U2hpdHN1Owor6ZqxPkluOwor6ZqyPlNoaXRzdTsKK+matD5Sb3U7CivpmrY+VGFpOwor6Zq3PlJlaTsKK+mauD5SZWk7Civpmrk+U3VpOwor6Zq7PlNla2k7Civpmrw+SnVuOwor6ZuAPkpha3U7Civpm4E+R2FuOwor6ZuEPll1dTsKK+mbhT5HYTsKK+mbhj5TaHV1Owor6ZuHPktvOwor6ZuJPkNoaTsKK+mbiz5TZW47Civpm4w+U2hpOwor6ZuNPllvdTsKK+mbjj5TaG87Civpm5E+WmF0c3U7Civpm5U+Q2hvdTsKK+mblj5TdWk7Civpm5k+U291Owor6ZubPlN1dTsKK+mbnD5aYXRzdTsKK+mboj5SaTsKK+mboz5OYW47Civpm6g+VTsKK+mbqj5TZXRzdTsKK+mbqz5EYTsKK+mbsD5GdW47Civpm7I+VW47Civpm7Y+UmVpOwor6Zu3PlJhaTsKK+mbuT5IYWt1Owor6Zu7PkRlbjsKK+mcgD5KdTsKK+mchD5TaG91Owor6ZyGPlRlaTsKK+mchz5TaGluOwor6ZyIPkhhaTsKK+mcij5SZWk7CivpnI0+S2FrdTsKK+mcjj5Tb3U7CivpnI8+SGk7CivpnJE+VGVuOwor6ZyTPkdlaTsKK+mclj5SaW47CivpnJk+RWk7CivpnJw+U291Owor6ZyePkthOwor6ZykPlJ5dXU7CivpnKc+TXU7CivpnKo+SW47CivpnLA+U2FuOwor6ZyyPlJvOwor6Zy4Pkhha3U7CivpnLk+SGVraTsKK+mcvT5TZWk7CivpnL4+QmFpOwor6Z2CPlJla2k7CivpnYQ+QWk7CivpnYY+VGFpOwor6Z2IPlJlaTsKK+mdiT5BaTsKK+mdkj5TZWk7CivpnZY+U2VpOwor6Z2ZPlNlaTsKK+mdnD5TZWk7CivpnZ4+SGk7CivpnaA+S291Owor6Z2hPkhpOwor6Z2iPk1lbjsKK+mdpD5Ib3U7CivpnaY+VGVuOwor6Z2oPllvdTsKK+mdqT5LYWt1Owor6Z2rPlNhaTsKK+mdrT5KaW47CivpnbE+SmluOwor6Z20PkthOwor6Z25PktldHN1Owor6Z26Pk1hdHN1Owor6Z28PlRhbjsKK+megT5IaTsKK+mehD5Ib3U7CivpnoU+T3U7Civpnos+QWk7Civpno0+QW47Civpno8+S3lvdTsKK+memD5Tb3U7Civpnpw+VG91Owor6Z6gPktpa3U7CivpnqM+SnV1Owor6Z6mPlNodXU7Civpnqg+S2F0c3U7Civpnqs+S2lrdTsKK+merT5IZW47CivpnrM+VG91Owor6Z60PkZ1a3U7Civpn4M+RGF0c3U7Civpn4Y+U2VuOwor6Z+IPkJldHN1Owor6Z+LPkk7Civpn5M+S2FuOwor6Z+cPlRvdTsKK+mfrT5LeXV1Owor6Z+uPkt5b3U7Civpn7I+U2VpOwor6Z+zPk9uOwor6Z+1PkluOwor6Z+2PlNob3U7Civpn7s+SW47Civpn78+S3lvdTsKK+mggT5LZXRzdTsKK+mggj5DaG91Owor6aCDPktlaTsKK+mghT5Lb3U7CivpoIY+SnVuOwor6aCIPlNodTsKK+mgjD5TaG91Owor6aCPPktvdTsKK+mgkD5ZbzsKK+mgkT5HYW47CivpoJI+SGFuOwor6aCTPlRvbjsKK+mglz5IYTsKK+mgmD5SeW91Owor6aCaPktlaTsKK+mgoT5LaXRzdTsKK+mgpD5JOwor6aCsPkt5b3U7CivpoK0+VG91Owor6aC0PkVpOwor6aC3PkthbjsKK+mguD5LZWk7CivpoLs+SGluOwor6aC8PlJhaTsKK+mgvT5UYWk7CivpoYY+S2E7CivpoYs+U2FpOwor6aGMPkRhaTsKK+mhjT5HYWt1Owor6aGOPkdha3U7CivpoY8+R2FuOwor6aGUPkdhbjsKK+mhlT5LZW47CivpoZg+R2FuOwor6aGbPlRlbjsKK+mhnj5SdWk7Civpoac+S287Civpoas+U2VuOwor6aGvPktlbjsKK+mhsD5IaW47CivpobE+Um87CivpobM+U2hvdTsKK+mhtD5LYW47Civpoqg+RnV1Owor6aKvPlNhdHN1Owor6aKxPlRhaTsKK+mitj5LdTsKK+mjgz5IeW91Owor6aOEPkh5b3U7Civpo4Y+SHlvdTsKK+mjmz5IaTsKK+mjnD5Ib247Civpo58+U2hva3U7Civpo6I+S2k7Civpo6k+VG9uOwor6aOrPllvOwor6aOtPkNob2t1Owor6aOuPkluOwor6aOvPkhhbjsKK+mjsj5JbjsKK+mjtD5JOwor6aO8PlNoaTsKK+mjvT5Ib3U7Civpo74+U2hva3U7CivppIM+S291Owor6aSFPkhlaTsKK+mkiT5TaG91Owor6aSKPllvdTsKK+mkjD5KaTsKK+mkkD5TYW47CivppJI+RGFpOwor6aSTPkdhOwor6aSUPkhvOwor6aSYPllvOwor6aSdPlNob2t1Owor6aSePlNlbjsKK+mkoD5IZWk7CivppKE+S2FuOwor6aSkPlRhbjsKK+mkqD5LYW47CivppKw+S287CivppK4+VGV0c3U7CivppL0+S2k7CivppL4+Unl1dTsKK+mlgj5VbjsKK+mlhT5NYW47CivppYk+S2luOwor6aWLPktpOwor6aWMPlNlbjsKK+mlkD5JOwor6aWRPktpOwor6aWSPkpvdTsKK+mllT5Ub3U7CivppZc+S3lvdTsKK+mmlj5TaHU7Civpppc+S2k7Civpppg+S2FrdTsKK+mmmT5Lb3U7CivppqU+RnVrdTsKK+mmqD5LZWk7Civppqw+QmE7Civppq0+R3lvOwor6aauPkh5b3U7CivpprM+Q2hpOwor6aa0PlNodW47Civpprw+QnVuOwor6aeBPkJha3U7Civpp4Q+VGE7Civpp4U+RWtpOwor6aeGPkt1Owor6aeIPkt1Owor6aeQPkNodXU7Civpp5E+RG87Civpp5I+S3U7Civpp5U+R2E7Civpp5g+VGFpOwor6aebPlNoaTsKK+mnnT5UYTsKK+mnnz5TaGk7Civpp6I+SGVuOwor6aetPkthaTsKK+mnrj5IYWt1Owor6aexPlJha3U7Civpp7g+U2hpbjsKK+mnuz5LYW47Civpp78+U2h1bjsKK+mogT5UZWk7CivpqIU+U3VpOwor6aiOPktpOwor6aiPPktpOwor6aiSPlNvdTsKK+mokz5LZW47CivpqJk+SGVuOwor6aioPlRhbjsKK+moqz5LZW47CivpqLA+VG91Owor6ai3PlNvdTsKK+movj5SYTsKK+mpgD5CYWt1Owor6amCPlNhbjsKK+mpgz5IeW91Owor6amFPkt1Owor6amNPkd5b3U7CivpqZU+S3lvdTsKK+mplz5LZW47CivpqZo+S3lvdTsKK+mpmz5Fa2k7CivpqZ8+U2h1dTsKK+mpoj5SeW87CivpqaQ+Sm91Owor6amlPktpOwor6ampPkthbjsKK+mpqj5SaTsKK+mpqz5IeXV1Owor6aqoPktvdHN1Owor6aqtPkthbjsKK+mqsD5Ub3U7Civpqrg+S2FpOwor6aq8Pktha3U7Civpq4A+SGk7Civpq4Q+WnVpOwor6auPPlJvdTsKK+mrkT5Ub2t1Owor6auTPlp1aTsKK+mrlD5UZWk7Civpq5g+S291Owor6auePlNvdTsKK+mrnz5IeW91Owor6auiPlRlaTsKK+mroz5Ib3U7Civpq6Y+Qm91Owor6auqPkhhdHN1Owor6aurPkNob3U7Civpq60+U2hpOwor6auuPkhhdHN1Owor6auvPlplbjsKK+mrsT5Ib3U7Civpq7Q+RnV0c3U7Civpq7c+S3lva3U7Civpq7s+S2VpOwor6ayGPlNob3U7CivprJg+QmFuOwor6ayaPlNodTsKK+msnz5LYW47CivprKI+SGluOwor6ayjPlJ5b3U7CivprKU+VG91Owor6aynPlRvdTsKK+msqD5Lb3U7CivprKk+R2VraTsKK+msqj5Ub3U7CivprK4+S3l1dTsKK+msrz5DaG91Owor6ayxPlV0c3U7CivprLI+UmVraTsKK+msuz5TaHVrdTsKK+msvD5LaTsKK+mtgT5LYWk7CivprYI+S29uOwor6a2DPkJhdHN1Owor6a2EPkhha3U7CivprYU+TWk7CivprY0+Qm91Owor6a2OPlJ5b3U7CivprY8+R2k7CivprZE+Q2hpOwor6a2UPk1hOwor6a2YPkVuOwor6a2aPkd5bzsKK+mtrz5SbzsKK+mttD5Ib3U7CivproM+SHlvdTsKK+mujj5OZW47CivprpE+SG91Owor6a6SPkZ1Owor6a6TPlNhOwor6a6fPkFuOwor6a6gPkdhaTsKK+muqD5TaGk7Civprqo+STsKK+muqz5Lb3U7Civprq0+S2VpOwor6a6uPlNlbjsKK+muuT5Tb3U7Civpr4A+S29uOwor6a+GPkhvOwor6a+JPlJpOwor6a+KPlNhOwor6a+UPlNoaTsKK+mvlj5TZWk7Civpr5s+Q2hvdTsKK+mvoT5IaTsKK+mvoj5HZWk7Civpr6M+RWtpOwor6a+kPktvbjsKK+mvqD5HZWk7Civpr7A+TmVuOwor6a+1PlNvdTsKK+mwhD5JOwor6bCGPlNodW47CivpsIg+Q2hvdTsKK+mwiT5Lb3U7CivpsIo+UmVuOwor6bCMPlNodXU7CivpsI0+U2h1dTsKK+mwkD5HYWt1Owor6bCSPkZ1a3U7CivpsJM+U2FpOwor6bCUPkthbjsKK+mwlT5LYTsKK+mwmz5PbjsKK+mwoT5SeXV1Owor6bCkPlNoaTsKK+mwpT5LYW47CivpsK0+S2k7CivpsK4+T247CivpsLI+R291Owor6bC5PktlbjsKK+mwuj5Tb3U7CivpsLs+QmFuOwor6bC+Pkh5b3U7CivpsYY+U2hvdTsKK+mxhz5Lb3U7CivpsYg+U2V0c3U7CivpsZI+U29uOwor6bGXPlJpbjsKK+mxoD5LYWk7Civpsac+UmVpOwor6bG2PlNob3U7Civpsbg+Um87Civps6U+Q2hvdTsKK+mzpz5GdTsKK+mzqT5LeXV1Owor6bOrPkdhbjsKK+mzrD5GdTsKK+mzsz5Ib3U7Civps7Q+TWVpOwor6bO2PkVuOwor6bSDPktldHN1Owor6bSGPkNoaW47CivptIc+SG91Owor6bSIPkdhbjsKK+m0iT5BOwor6bSOPk91Owor6bSSPlJlaTsKK+m0lT5UYTsKK+m0mz5FbjsKK+m0nz5TaGk7CivptKM+S287CivptKY+WW91Owor6bSoPk91Owor6bSqPkl0c3U7CivptKw+T3U7CivptLs+S291Owor6bS+PkJvdTsKK+m0vz5Lb3U7CivptYE+S291Owor6bWEPlNoaTsKK+m1kD5CdTsKK+m1kT5LZW47CivptZk+R2VraTsKK+m1nD5UZWk7CivptZ0+R2E7CivptZ4+R2E7CivptaA+S29rdTsKK+m1oT5CdTsKK+m1rD5Ib3U7Civpta8+SGk7CivptbI+SmFrdTsKK+m1uj5ZYTsKK+m2hz5Ub3U7Civptok+U2h1bjsKK+m2jz5LZWk7Civptpo+R2FrdTsKK+m2pD5Lb247Civptqk+Qm9rdTsKK+m2rz5PdTsKK+m2sj5PdTsKK+m2tD5LYWt1Owor6ba4Pkpha3U7Civptro+U2VraTsKK+m2uz5Lb3RzdTsKK+m3gT5HZWtpOwor6beCPllvdTsKK+m3hD5LZWk7Civpt4Y+VGVuOwor6bePPlRlbjsKK+m3kz5TaGE7Civpt5k+U2hpOwor6bemPlNob3U7Civpt60+QmFuOwor6bevPlJ5b3U7Civpt7I+U2h1dTsKK+m3uD5JdHN1Owor6be5PllvdTsKK+m3uj5SbzsKK+m3vT5LYWt1Owor6biaPk91Owor6bibPkthbjsKK+m4nj5SYW47CivpubU+Um87Civpubg+S2VuOwor6bm5PkthbjsKK+m5vT5FbjsKK+m5vz5Sb2t1Owor6bqBPlNvOwor6bqIPlNodTsKK+m6iz5CaTsKK+m6jD5HdTsKK+m6kT5HZWk7CivpupI+S2k7CivpupM+Um9rdTsKK+m6lT5LaW47Civpupc+UmVpOwor6bqdPlNoYTsKK+m6nz5SaW47CivpuqU+QmFrdTsKK+m6pj5CYWt1Owor6bqpPkZ1Owor6bqqPk1lbjsKK+m6rT5Ib3U7Civpurg+RnU7Civpurk+S2lrdTsKK+m6uj5NZW47Civpurs+TWE7Civpurw+TWE7Civpur4+S2k7Civpur8+Um87Civpu4Q+S291Owor6buMPktvdTsKK+m7jT5TaG87Civpu44+UmVpOwor6buPPk5lbjsKK+m7kD5DaGk7Civpu5I+S29rdTsKK+m7lD5LZW47Civpu5g+TW9rdTsKK+m7mT5Nb2t1Owor6bubPlRhaTsKK+m7nD5DaHV0c3U7Civpu50+WXV1Owor6buePlRlbjsKK+m7oD5LYXRzdTsKK+m7pT5HZWk7Civpu6g+VG91Owor6buvPkFuOwor6bu0PkJhaTsKK+m7tj5FbjsKK+m7tz5Ub2t1Owor6bu5PkNoaTsKK+m7uz5GdXRzdTsKK+m7vD5IbzsKK+m7vT5Cb3U7CivpvIc+R291Owor6byIPkJldHN1Owor6byOPlRlaTsKK+m8kz5LbzsKK+m8lT5Ub3U7CivpvKA+U287CivpvKE+U2hvOwor6bysPll1dTsKK+m8uz5CaTsKK+m8vj5LYW47CivpvYo+U2VpOwor6b2LPlNhaTsKK+m9jj5TZWk7CivpvY8+U2VpOwor6b2SPlNoaTsKK+m9lD5TaGluOwor6b2fPlNvOwor6b2gPkNob3U7CivpvaE+UmVpOwor6b2iPlJlaTsKK+m9oz5TaHV0c3U7CivpvaY+R2luOwor6b2nPktldHN1Owor6b2qPlNva3U7Civpvaw+R3lvOwor6b2yPkt1Owor6b22Pkdha3U7Civpvbc+QWt1Owor6b6NPlJ5dXU7CivpvpU+R2FuOwor6b6cPktpOwor6b6dPlNodXU7CivpvqA+WWFrdTsKKworIyBlb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC90aGFpX3Rlc3QudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9kZW1vL3RyYW5zbGl0L3RoYWlfdGVzdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY1ZjkwYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZGVtby90cmFuc2xpdC90aGFpX3Rlc3QudHh0CkBAIC0wLDAgKzEsNTUgQEAKK++7vyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworIyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitAVVBQRVJGSUxURVJACitVbmljb2RlIOC4hOC4t+C4reC4reC4sOC5hOC4oz8KK1VuaWNvZGUg4LiB4Liz4Lir4LiZ4LiU4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmA4LiJ4Lie4Liy4Liw4Liq4Liz4Lir4Lij4Lix4Lia4LiX4Li44LiB4Lit4Lix4LiB4LiC4Lij4LiwCivguYLguJTguKLguYTguKHguYjguKrguJnguYPguIjguKfguYjguLLguYDguJvguYfguJnguYHguJ7guKXguYfguJXguJ/guK3guKPguYzguKHguYPguJQKK+C5hOC4oeC5iOC4guC4tuC5ieC4meC4geC4seC4muC4p+C5iOC4suC4iOC4sOC5gOC4m+C5h+C4meC5guC4m+C4o+C5geC4geC4o+C4oeC5g+C4lAor4LmB4Lil4Liw4LmE4Lih4LmI4Lin4LmI4Liy4LiI4Liw4LmA4Lib4LmH4LiZ4Lig4Liy4Lip4Liy4LmD4LiUCisKK+C5guC4lOC4ouC4nuC4t+C5ieC4meC4kOC4suC4meC5geC4peC5ieC4pywg4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmM4LiI4Liw4LmA4LiB4Li14LmI4Lii4Lin4LiC4LmJ4Lit4LiH4LiB4Lix4Lia4LmA4Lij4Li34LmI4Lit4LiH4LiC4Lit4LiH4LiV4Lix4Lin4LmA4Lil4LiCLiDguITguK3guKHguJ7guLTguKfguYDguJXguK3guKPguYzguIjguLHguJTguYDguIHguYfguJrguJXguLHguKfguK3guLHguIHguKnguKPguYHguKXguLDguK3guLHguIHguILguKPguLDguK3guLfguYjguJnguYYg4LmC4LiU4Lii4LiB4Liy4Lij4LiB4Liz4Lir4LiZ4LiU4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LmD4Lir4LmJ4Liq4Liz4Lir4Lij4Lix4Lia4LmB4LiV4LmI4Lil4Liw4LiV4Lix4LinLiDguIHguYjguK3guJnguKvguJnguYnguLLguJfguLXguYjguYogVW5pY29kZSDguIjguLDguJbguLnguIHguKrguKPguYnguLLguIfguILguLbguYnguJksIOC5hOC4lOC5ieC4oeC4teC4o+C4sOC4muC4miBlbmNvZGluZyDguK3guKLguLnguYjguKvguKXguLLguKLguKPguYnguK3guKLguKPguLDguJrguJrguKrguLPguKvguKPguLHguJrguIHguLLguKPguIHguLPguKvguJnguJTguKvguKHguLLguKLguYDguKXguILguYDguKvguKXguYjguLLguJnguLXguYkuIOC5hOC4oeC5iOC4oeC4tSBlbmNvZGluZyDguYPguJTguJfguLXguYjguKHguLXguIjguLPguJnguKfguJnguJXguLHguKfguK3guLHguIHguILguKPguLDguKHguLLguIHguYDguJ7guLXguKLguIfguJ7guK06IOC4ouC4geC4leC4seC4p+C4reC4ouC5iOC4suC4h+C5gOC4iuC5iOC4mSwg4LmA4LiJ4Lie4Liy4Liw4LmD4LiZ4LiB4Lil4Li44LmI4Lih4Liq4Lir4Lig4Liy4Lie4Lii4Li44LmC4Lij4Lib4LmA4Lie4Li14Lii4LiH4LmB4Lir4LmI4LiH4LmA4LiU4Li14Lii4LinIOC4geC5h+C4leC5ieC4reC4h+C4geC4suC4o+C4q+C4peC4suC4oiBlbmNvZGluZyDguYPguJnguIHguLLguKPguITguKPguK3guJrguITguKXguLjguKHguJfguLjguIHguKDguLLguKnguLLguYPguJnguIHguKXguLjguYjguKEuIOC4q+C4o+C4t+C4reC5geC4oeC5ieC5geC4leC5iOC5g+C4meC4oOC4suC4qeC4suC5gOC4lOC4teC5iOC4ouC4pyDguYDguIrguYjguJkg4Lig4Liy4Lip4Liy4Lit4Lix4LiH4LiB4Lik4LipIOC4geC5h+C5hOC4oeC5iOC4oeC4tSBlbmNvZGluZyDguYPguJTguJfguLXguYjguYDguJ7guLXguKLguIfguJ7guK3guKrguLPguKvguKPguLHguJrguJfguLjguIHguJXguLHguKfguK3guLHguIHguKnguKMsIOC5gOC4hOC4o+C4t+C5iOC4reC4h+C4q+C4oeC4suC4ouC4p+C4o+C4o+C4hOC4leC4reC4mSDguYHguKXguLDguKrguLHguI3guKXguLHguIHguKnguJPguYzguJfguLLguIfguYDguJfguITguJnguLTguITguJfguLXguYjguYPguIrguYnguIHguLHguJnguK3guKLguLnguYjguJfguLHguYjguKfguYTguJsuIAorCivguKPguLDguJrguJogZW5jb2Rpbmcg4LmA4Lir4Lil4LmI4Liy4LiZ4Li14LmJ4Lii4Lix4LiH4LiC4Lix4LiU4LmB4Lii4LmJ4LiH4LiL4Li24LmI4LiH4LiB4Lix4LiZ4LmB4Lil4Liw4LiB4Lix4LiZLiDguJnguLHguYjguJnguIHguYfguITguLfguK0sIOC5g+C4meC4quC4reC4hyBlbmNvZGluZyDguKrguLLguKHguLLguKPguJbguYPguIrguYnguKvguKHguLLguKLguYDguKXguILguYDguJTguLXguKLguKfguIHguLHguJnguKrguLPguKvguKPguLHguJrguJXguLHguKfguK3guLHguIHguILguKPguLDguKrguK3guIfguJXguLHguKfguJfguLXguYjguYHguJXguIHguJXguYjguLLguIfguIHguLHguJks4Lir4Lij4Li34Lit4LmD4LiK4LmJ4Lir4Lih4Liy4Lii4LmA4Lil4LiC4LiV4LmI4Liy4LiH4LiB4Lix4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4Lit4Lix4LiB4LiC4Lij4Liw4LiV4Lix4Lin4LmA4LiU4Li14Lii4Lin4LiB4Lix4LiZLiDguYPguJnguKPguLDguJrguJrguITguK3guKHguJ7guLTguKfguYDguJXguK3guKPguYwgKOC5guC4lOC4ouC5gOC4ieC4nuC4suC4sOC5gOC4i+C4tOC4o+C5jOC4n+C5gOC4p+C4reC4o+C5jCkg4LiV4LmJ4Lit4LiH4Lih4Li14LiB4Liy4Lij4Liq4LiZ4Lix4Lia4Liq4LiZ4Li44LiZ4Lir4Lil4Liy4LiiIGVuY29kaW5nOyDguYHguKXguLDguYDguKHguLfguYjguK3guILguYnguK3guKHguLnguKXguJfguLXguYjguJzguYjguLLguJnguYTguJvguKHguLLguKPguLDguKvguKfguYjguLLguIfguIHguLLguKPguYDguILguYnguLLguKPguKvguLHguKrguKvguKPguLfguK3guYHguJ7guKXguYfguJXguJ/guK3guKPguYzguKHguJfguLXguYjguJXguYjguLLguIfguIHguLHguJksIOC4guC5ieC4reC4oeC4ueC4peC4meC4seC5ieC4meC4iOC4sOC5gOC4quC4teC5iOC4ouC4h+C4leC5iOC4reC4geC4suC4o+C4nOC4tOC4lOC4nuC4peC4suC4lOC5gOC4quC4teC4ouC4q+C4suC4oi4KKworVW5pY29kZSDguIjguLDguYDguJvguKXguLXguYjguKLguJnguYHguJvguKXguIfguKrguLTguYjguIfguYDguKvguKXguYjguLLguJnguLHguYnguJnguJfguLHguYnguIfguKvguKHguJQhCitVbmljb2RlIOC4geC4s+C4q+C4meC4lOC4q+C4oeC4suC4ouC5gOC4peC4guC5gOC4ieC4nuC4suC4sOC4quC4s+C4q+C4o+C4seC4muC5geC4leC5iOC4peC4sOC4reC4seC4geC4guC4o+C4sCwg4LmC4LiU4Lii4LmE4Lih4LmI4Liq4LiZ4LmD4LiI4Lin4LmI4Liy4LmA4Lib4LmH4LiZ4LmB4Lie4Lil4LmH4LiV4Lif4Lit4Lij4LmM4Lih4LmD4LiULCDguYTguKHguYjguILguLbguYnguJnguIHguLHguJrguKfguYjguLLguIjguLDguYDguJvguYfguJnguYLguJvguKPguYHguIHguKPguKHguYPguJTguYHguKXguLDguYTguKHguYjguKfguYjguLLguIjguLDguYDguJvguYfguJnguKDguLLguKnguLLguYPguJQuIOC4oeC4suC4leC4o+C4kOC4suC4mSBVbmljb2RlIOC5hOC4lOC5ieC4luC4ueC4geC4meC4s+C5hOC4m+C5g+C4iuC5ieC5guC4lOC4ouC4nOC4ueC5ieC4meC4s+C5g+C4meC4reC4uOC4leC4quC4suC4q+C4geC4o+C4o+C4oSDguYDguIrguYjguJkgQXBwbGUsIEhQLCBJQk0sIEp1c3RTeXN0ZW0sIE1pY3Jvc29mdCwgT3JhY2xlLCBTQVAsIFN1biwgU3liYXNlLCBVbmlzeXMg4LmB4Lil4Liw4Lit4Li34LmI4LiZ4LmGIOC4reC4teC4geC4oeC4suC4gS4gVW5pY29kZSDguYDguJvguYfguJnguKrguLTguYjguIfguJfguLXguYjguIjguLPguYDguJvguYfguJnguKrguLPguKvguKPguLHguJrguKHguLLguJXguKPguJDguLLguJnguYPguKvguKHguYjguYYg4LmA4LiK4LmI4LiZIFhNTCwgSmF2YSwgRUNNQVNjcmlwdCAoSmF2YVNjcmlwdCksIExEQVAsIENPUkJBIDMuMCwgV01MIOC4r+C4peC4ry4sIOC5geC4peC4sOC5gOC4m+C5h+C4meC5geC4meC4p+C4l+C4suC4h+C4reC4ouC5iOC4suC4h+C5gOC4m+C5h+C4meC4l+C4suC4h+C4geC4suC4o+C5g+C4meC4geC4suC4o+C4l+C4syBJU08vSUVDIDEwNjQ2LiBVbmljb2RlIOC5hOC4lOC5ieC4o+C4seC4muC4geC4suC4o+C4quC4meC4seC4muC4quC4meC4uOC4meC5g+C4meC4o+C4sOC4muC4muC4m+C4j+C4tOC4muC4seC4leC4tOC4geC4suC4o+C4iOC4s+C4meC4p+C4meC4oeC4suC4gSwg4Lia4Lij4Liy4Lin4LmA4LiL4Lit4Lij4LmM4LmD4Lir4Lih4LmI4LmGIOC4l+C4geC4leC4seC4pywg4LmB4Lil4Liw4Lic4Lil4Li04LiV4Lig4Lix4LiT4LiR4LmM4Lit4Li34LmI4LiZ4LmGIOC4reC4teC4geC4oeC4suC4gS4g4LiB4Liy4Lij4LmA4LiB4Li04LiU4LiC4Li24LmJ4LiZ4LiC4Lit4LiHIFVuaWNvZGUgU3RhbmRhcmQg4LmB4Lil4Liw4LiX4Li54Lil4Liq4LmM4LiV4LmI4Liy4LiH4LmGIOC4l+C4teC5iOC4oeC4teC5g+C4meC4geC4suC4o+C4quC4meC4seC4muC4quC4meC4uOC4mSBVbmljb2RlLCDguYDguJvguYfguJnguKvguJnguLbguYjguIfguYPguJnguYHguJnguKfguYLguJnguYnguKHguJfguLLguIfguYDguJfguITguYLguJnguYLguKXguKLguLXguIvguK3guJ/guJXguYzguYHguKfguKPguYzguKPguLDguJTguLHguJrguYLguKXguIHguJfguLXguYjguKHguLXguITguKfguLLguKHguKrguLPguITguLHguI3guJfguLXguYjguKrguLjguJQuCisKK+C4geC4suC4o+C4o+C4p+C4oSBVbmljb2RlIOC5gOC4guC5ieC4suC5hOC4m+C5g+C4meC4o+C4sOC4muC4muC5hOC4hOC4peC5gOC4reC5h+C4meC4leC5jC3guYDguIvguLTguKPguYzguJ/guYDguKfguK3guKPguYwg4Lir4Lij4Li34Lit4LmB4Lit4LmH4Lie4Lie4Lil4Li04LmA4LiE4LiK4Lix4LiZ4LmB4Lia4LiaIG11bHRpLXRpZXJlZCDguYHguKXguLDguYDguKfguYfguJrguYTguIvguJXguYwg4LiI4Liw4LiX4Liz4LmD4Lir4LmJ4LmA4LiB4Li04LiU4LiB4Liy4Lij4Lib4Lij4Liw4Lir4Lii4Lix4LiU4LiE4LmI4Liy4LmD4LiK4LmJ4LiI4LmI4Liy4Lii4Lih4Liy4LiB4LiB4Lin4LmI4Liy4LiB4Liy4Lij4LmD4LiK4LmJ4LiK4Li44LiU4Lit4Lix4LiB4LiC4Lij4Liw4LmB4Lia4Lia4LmA4LiU4Li04LihLiBVbmljb2RlIOC4l+C4s+C5g+C4q+C5ieC4nOC4peC4tOC4leC4oOC4seC4k+C4keC5jOC4i+C4reC4n+C4leC5jOC5geC4p+C4o+C5jOC4q+C4meC4tuC5iOC4h+C5gOC4lOC4teC4ouC4pyDguKvguKPguLfguK3guYDguKfguYfguJrguYTguIvguJXguYzguYHguKvguYjguIfguYDguJTguLXguKLguKcg4Lij4Lit4LiH4Lij4Lix4Lia4LmE4LiU4LmJ4Lir4Lil4Liy4Lii4LmB4Lie4Lil4LmH4LiV4Lif4Lit4Lij4LmM4LihLCDguKvguKXguLLguKLguKDguLLguKnguLLguYHguKXguLDguKvguKXguLLguKLguJvguKPguLDguYDguJfguKjguYLguJTguKLguYTguKHguYjguJXguYnguK3guIfguJfguLPguIHguLLguKPguKPguLfguYnguK3guJvguKPguLHguJrguKPguLDguJrguJouIFVuaWNvZGUg4Lii4Lix4LiH4LiX4Liz4LmD4Lir4LmJ4LiC4LmJ4Lit4Lih4Li54Lil4Liq4Liy4Lih4Liy4Lij4LiW4LmA4LiE4Lil4Li34LmI4Lit4LiZ4Lii4LmJ4Liy4Lii4LmE4Lib4Lih4Liy4LmD4LiZ4Lir4Lil4Liy4Lii4LmGIOC4o+C4sOC4muC4muC5guC4lOC4ouC5hOC4oeC5iOC5gOC4geC4tOC4lOC4hOC4p+C4suC4oeC4nOC4tOC4lOC4nuC4peC4suC4lOC5gOC4quC4teC4ouC4q+C4suC4oi4KKwor4LmA4LiB4Li14LmI4Lii4Lin4LiB4Lix4LiaIFVuaWNvZGUgQ29uc29ydGl1bQorVW5pY29kZSBDb25zb3J0aXVtIOC5gOC4m+C5h+C4meC4reC4h+C4hOC5jOC4geC4o+C5hOC4oeC5iOC5geC4quC4p+C4h+C4q+C4suC4geC4s+C5hOC4o+C4l+C4teC5iOC4geC5iOC4reC4leC4seC5ieC4h+C4guC4tuC5ieC4meC5gOC4nuC4t+C5iOC4reC4nuC4seC4kuC4meC4siwg4LiC4Lii4Liy4Lii4LmB4Lil4Liw4Liq4LmI4LiH4LmA4Liq4Lij4Li04Lih4LiB4Liy4Lij4LmD4LiK4LmJIFVuaWNvZGUgU3RhbmRhcmQsIOC4i+C4tuC5iOC4h+C4geC4s+C4q+C4meC4lOC4o+C4ueC4m+C5geC4muC4muC4geC4suC4o+C5geC4l+C4meC4hOC5iOC4suC4guC4reC4h+C4guC5ieC4reC4hOC4p+C4suC4oeC5g+C4meC4nOC4peC4tOC4leC4oOC4seC4k+C4keC5jOC4i+C4reC4n+C4leC5jOC5geC4p+C4o+C5jOC5geC4peC4sOC4oeC4suC4leC4o+C4kOC4suC4meC5g+C4q+C4oeC5iOC5hi4g4Liq4Lih4Liy4LiK4Li04LiB4LiC4Lit4LiH4Liq4Lih4Liy4LiE4Lih4LmA4Lib4LmH4LiZ4LiV4Lix4Lin4LmB4LiX4LiZ4LiI4Liy4LiB4Lia4Lij4Li04Lip4Lix4LiX4LmB4Lil4Liw4Lit4LiH4LiE4LmM4LiB4Lij4LmD4LiZ4Lit4Li44LiV4Liq4Liy4Lir4LiB4Lij4Lij4Lih4LiE4Lit4Lih4Lie4Li04Lin4LmA4LiV4Lit4Lij4LmM4LmB4Lil4Liw4LiB4Liy4Lij4Lib4Lij4Liw4Lih4Lin4Lil4Lic4Lil4Liq4Liy4Lij4Liq4LiZ4LmA4LiX4LioLiDguKrguKHguLLguITguKHguYTguJTguYnguKPguLHguJrguIHguLLguKPguKrguJnguLHguJrguKrguJnguLjguJnguJfguLLguIfguIHguLLguKPguYDguIfguLTguJnguJzguYjguLLguJnguJfguLLguIfguITguYjguLLguJjguKPguKPguKHguYDguJnguLXguKLguKHguILguK3guIfguIHguLLguKPguYDguJvguYfguJnguKrguKHguLLguIrguLTguIHguYDguJfguYjguLLguJnguLHguYnguJkuIOC4quC4oeC4suC4iuC4tOC4geC4oOC4suC4nuC4guC4reC4hyBVbmljb2RlIENvbnNvcnRpdW0g4LmA4Lib4Li04LiU4LiB4Lin4LmJ4Liy4LiH4Liq4Liz4Lir4Lij4Lix4Lia4Lit4LiH4LiE4LmM4LiB4Lij4Lir4Lij4Li34Lit4Lia4Li44LiE4LiE4Lil4LmD4LiU4LmGIOC5g+C4meC5guC4peC4geC4l+C4teC5iOC4leC5ieC4reC4h+C4geC4suC4o+C4quC4meC4seC4muC4quC4meC4uOC4mSBVbmljb2RlIFN0YW5kYXJkIOC5geC4peC4sOC4iuC5iOC4p+C4ouC5gOC4q+C4peC4t+C4reC4geC4suC4o+C4guC4ouC4suC4ouC4leC4seC4p+C5geC4peC4sOC4geC4suC4o+C4meC4syBVbmljb2RlIOC5hOC4m+C5g+C4iuC5ieC4h+C4suC4mS4gCisKK+C4quC4s+C4q+C4o+C4seC4muC4guC5ieC4reC4oeC4ueC4peC5gOC4nuC4tOC5iOC4oeC5gOC4leC4tOC4oSwg4LmD4Lir4LmJ4LiU4Li54LiX4Li14LmIIEdsb3NzYXJ5LCBTYW1wbGUgVW5pY29kZS1FbmFibGVkIFByb2R1Y3RzLCBUZWNobmljYWwgSW50cm9kdWN0aW9uIOC5geC4peC4sCBVc2VmdWwgUmVzb3VyY2VzLgorQFRJVExFQ0FTRUAKK+C4geC5iuC4geC5gOC4ruC4hyDguYHguIvguYjguYHguJXguYkKK+C4geC4iuC4geC4oyDguKjguKPguLLguJfguJjguJfguLHguJUKK+C4geC4leC4tOC4geC4siDguK3guLHguIfguITguKrguLjguKDguJMKK+C4geC4meC4gSDguJjguKPguKPguKHguJvguKPguLDguJfguLXguJsKK+C4geC4meC4gSDguKfguIfguKjguYzguJfguK3guIfguKjguKPguLUKK+C4geC4meC4geC4geC4oyDguIrguYnguLLguIfguYDguKLguYfguJnguInguYjguLMKK+C4geC4meC4geC4ieC4seC4leC4o+C5jCDguJbguLLguKfguKPguJnguLHguJnguJfguYwKK+C4geC4meC4geC4meC4p+C4pSDguYLguJvguKnguKLguLDguJnguLHguJnguJfguJnguYwKK+C4geC4meC4geC4nuC4oyDguITguKHguITguLLguKIKK+C4geC4meC4geC4nuC4oyDguJXguLXguKPguYDguKXguLTguKjguJ7guLLguJnguLTguIoKK+C4geC4meC4geC4nuC4oyDguJ7guLHguJnguJfguKMKK+C4geC4meC4geC4nuC4oyDguKjguKPguLXguJrguLHguJPguJHguLTguJUKK+C4geC4meC4geC4nuC4oyDguK3guJXguLTguKfguKPguKPguJPguLLguJ7guLHguJLguJnguYwKK+C4geC4meC4geC4nuC4o+C4o+C4kyDguKjguKPguLXguKfguJnguLLguKDguLTguKPguKHguKLguYwKK+C4geC4meC4geC4o+C4seC4leC4meC5jCDguYDguIHguLXguKLguKPguJXguLTguKLguLTguYjguIfguK3guLHguIfguKjguLjguKXguLUKK+C4geC4meC4geC4o+C4seC4leC4meC5jCDguKrguLjguJjguKPguKPguKHguJ7guLTguJfguLHguIHguKnguYwKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguITguIfguITguLLguJvguKPguLDguYDguKrguKPguLTguJAKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguYHguIvguYjguYDguJXguLXguKLguKcKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguJrguLjguI3guJvguKPguLDguYDguKrguKPguLTguJAKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguKPguLHguIHguJfguKPguLHguJ7guKLguYwKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguKrguLHguIjguIjguJ7guIfguKnguYwKK+C4geC4meC4geC4p+C4o+C4o+C4kyDguK3guLjguYnguKLguKfguIfguKjguYzguYTguJ7guKjguLLguKUKK+C4geC4meC4geC4qOC4seC4geC4lOC4tOC5jCDguKLguLTguYjguIfguKLguIcKK+C4geC4meC4geC5geC4geC5ieC4pyDguIHguKPguKrguKHguLTguJUKK+C4geC4meC4tOC4qeC4kOC4siDguJfguJnguLjguJbguJnguK3guKHguKPguLLguKnguI7guKPguYwKK+C4geC4meC4tOC4qeC4kOC4siDguKvguKfguLHguIfguKfguLTguJrguLnguKXguKLguYzguIHguLTguIgKK+C4geC4oeC4pSDguIHguLLguI3guIjguJnguYLguKPguIjguJnguYwKK+C4geC4oeC4pSDguITguLHguKHguKDguLXguKPguYwKK+C4geC4oeC4pSDguYDguIjguJXguJnguYzguKHguIfguITguKXguKPguLHguJXguJnguYwKK+C4geC4oeC4pSDguIrguLnguJXguKPguLDguIHguLnguKXguJjguKPguKPguKEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS8ucHJvamVjdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MDdmYTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS8ucHJvamVjdApAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3REZXNjcmlwdGlvbj4KKwk8bmFtZT5jb20uaWJtLmljdS1mZWF0dXJlPC9uYW1lPgorCTxjb21tZW50PjwvY29tbWVudD4KKwk8cHJvamVjdHM+CisJPC9wcm9qZWN0cz4KKwk8YnVpbGRTcGVjPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLkZlYXR1cmVCdWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwk8L2J1aWxkU3BlYz4KKwk8bmF0dXJlcz4KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuRmVhdHVyZU5hdHVyZTwvbmF0dXJlPgorCTwvbmF0dXJlcz4KKzwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LWZlYXR1cmUvYnVpbGQucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZmYjY3NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKQEAgLTAsMCArMSwyMCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb3B5cmlnaHQgKGMpIDIwMDAsIDIwMDUgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIAorIyBDb250cmlidXRvcnM6CisjICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Jpbi5pbmNsdWRlcyA9XAorZXBsLXYxMC5odG1sLFwKK2VjbGlwc2VfdXBkYXRlXzEyMC5qcGcsXAorZmVhdHVyZS54bWwsXAorZmVhdHVyZS5wcm9wZXJ0aWVzLFwKK2xpY2Vuc2UuaHRtbAorb3V0cHV0VXBkYXRlSmFycyA9IHRydWUKKworZ2VuZXJhdGUucGx1Z2luQGNvbS5pYm0uaWN1LnNvdXJjZT1jb20uaWJtLmljdQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS9mZWF0dXJlLnhtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlL2ZlYXR1cmUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5NTJmYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS9mZWF0dXJlLnhtbApAQCAtMCwwICsxLDMyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGZlYXR1cmUKKyAgICAgIGlkPSJjb20uaWJtLmljdSIKKyAgICAgIGxhYmVsPSJjb20uaWJtLmljdSIKKyAgICAgIHZlcnNpb249IkBCVUlMRF9WRVJTSU9OQCI+CisKKyAgIDxkZXNjcmlwdGlvbiB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vZGVzY3JpcHRpb24iPgorICAgICAgW0VudGVyIEZlYXR1cmUgRGVzY3JpcHRpb24gaGVyZS5dCisgICA8L2Rlc2NyaXB0aW9uPgorCisgICA8Y29weXJpZ2h0IHVybD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9jb3B5cmlnaHQiPgorICAgICAgW0VudGVyIENvcHlyaWdodCBEZXNjcmlwdGlvbiBoZXJlLl0KKyAgIDwvY29weXJpZ2h0PgorCisgICA8bGljZW5zZSB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbGljZW5zZSI+CisgICAgICBbRW50ZXIgTGljZW5zZSBEZXNjcmlwdGlvbiBoZXJlLl0KKyAgIDwvbGljZW5zZT4KKworICAgPHBsdWdpbgorICAgICAgICAgaWQ9ImNvbS5pYm0uaWN1IgorICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKKyAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKKyAgICAgICAgIHZlcnNpb249IkBCVUlMRF9WRVJTSU9OQCIKKyAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KKworICAgPHBsdWdpbgorICAgICAgICAgaWQ9ImNvbS5pYm0uaWN1LnNvdXJjZSIKKyAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCisgICAgICAgICBpbnN0YWxsLXNpemU9IjAiCisgICAgICAgICB2ZXJzaW9uPSJAQlVJTERfVkVSU0lPTkAiLz4KKworPC9mZWF0dXJlPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vYnVpbGQucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL2J1aWxkLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzViNjIwOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL2J1aWxkLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxMiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb3B5cmlnaHQgKGMpIDIwMDAsIDIwMDYgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIAorIyBDb250cmlidXRvcnM6CisjICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Jpbi5pbmNsdWRlcyA9IGFib3V0Lmh0bWwsIHBsdWdpbi5wcm9wZXJ0aWVzLCBwbHVnaW4ueG1sLCBzcmMvKiosTUVUQS1JTkYvCitzb3VyY2VQbHVnaW4gPSB0cnVlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9wbHVnaW4ucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS1mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL3BsdWdpbi5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ZDE1MDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UtZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9wbHVnaW4ucHJvcGVydGllcwpAQCAtMCwwICsxLDEyIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENvcHlyaWdodCAoYykgMjAwMCwgMjAwNiBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgCisjIENvbnRyaWJ1dG9yczoKKyMgICAgIElCTSBDb3Jwb3JhdGlvbiAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworcGx1Z2luTmFtZSA9IEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBmb3IgSmF2YSAoSUNVNEopIHNvdXJjZSBwbHVnLWluCitwcm92aWRlck5hbWUgPSBJQk0gQ29ycG9yYXRpb24KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvLnByb2plY3QgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmMTIwOGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlLy5wcm9qZWN0CkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdERlc2NyaXB0aW9uPgorCTxuYW1lPmNvbS5pYm0uaWN1LmJhc2UtZmVhdHVyZTwvbmFtZT4KKwk8Y29tbWVudD48L2NvbW1lbnQ+CisJPHByb2plY3RzPgorCTwvcHJvamVjdHM+CisJPGJ1aWxkU3BlYz4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5GZWF0dXJlQnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJPC9idWlsZFNwZWM+CisJPG5hdHVyZXM+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLkZlYXR1cmVOYXR1cmU8L25hdHVyZT4KKwk8L25hdHVyZXM+Cis8L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvYnVpbGQucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDBlZjczCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UtZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsOSBAQAorYmluLmluY2x1ZGVzID1cCitlcGwtdjEwLmh0bWwsXAorZWNsaXBzZV91cGRhdGVfMTIwLmpwZyxcCitmZWF0dXJlLnhtbCxcCitmZWF0dXJlLnByb3BlcnRpZXMsXAorbGljZW5zZS5odG1sCitvdXRwdXRVcGRhdGVKYXJzID0gdHJ1ZQorCitnZW5lcmF0ZS5wbHVnaW5AY29tLmlibS5pY3UuYmFzZS5zb3VyY2U9Y29tLmlibS5pY3UuYmFzZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvZmVhdHVyZS54bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlL2ZlYXR1cmUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiM2U5NDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS1mZWF0dXJlL2ZlYXR1cmUueG1sCkBAIC0wLDAgKzEsMzMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8ZmVhdHVyZQorICAgICAgaWQ9ImNvbS5pYm0uaWN1LmJhc2UiCisgICAgICBsYWJlbD0iY29tLmlibS5pY3UuYmFzZSIKKyAgICAgIHZlcnNpb249IkBCVUlMRF9WRVJTSU9OQCIKKyAgICAgIHByb3ZpZGVyLW5hbWU9IklCTSI+CisKKyAgIDxkZXNjcmlwdGlvbiB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vZGVzY3JpcHRpb24iPgorICAgICAgW0VudGVyIEZlYXR1cmUgRGVzY3JpcHRpb24gaGVyZS5dCisgICA8L2Rlc2NyaXB0aW9uPgorCisgICA8Y29weXJpZ2h0IHVybD0iaHR0cDovL3d3dy5leGFtcGxlLmNvbS9jb3B5cmlnaHQiPgorICAgICAgW0VudGVyIENvcHlyaWdodCBEZXNjcmlwdGlvbiBoZXJlLl0KKyAgIDwvY29weXJpZ2h0PgorCisgICA8bGljZW5zZSB1cmw9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vbGljZW5zZSI+CisgICAgICBbRW50ZXIgTGljZW5zZSBEZXNjcmlwdGlvbiBoZXJlLl0KKyAgIDwvbGljZW5zZT4KKworICAgPHBsdWdpbgorICAgICAgICAgaWQ9ImNvbS5pYm0uaWN1LmJhc2UiCisgICAgICAgICBkb3dubG9hZC1zaXplPSIwIgorICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgorICAgICAgICAgdmVyc2lvbj0iQEJVSUxEX1ZFUlNJT05AIgorICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgorCisgICA8cGx1Z2luCisgICAgICAgICBpZD0iY29tLmlibS5pY3UuYmFzZS5zb3VyY2UiCisgICAgICAgICBkb3dubG9hZC1zaXplPSIwIgorICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgorICAgICAgICAgdmVyc2lvbj0iQEJVSUxEX1ZFUlNJT05AIi8+CisKKzwvZmVhdHVyZT4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vYnVpbGQucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNWI2MjA4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UtZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9idWlsZC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTIgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29weXJpZ2h0IChjKSAyMDAwLCAyMDA2IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyAKKyMgQ29udHJpYnV0b3JzOgorIyAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitiaW4uaW5jbHVkZXMgPSBhYm91dC5odG1sLCBwbHVnaW4ucHJvcGVydGllcywgcGx1Z2luLnhtbCwgc3JjLyoqLE1FVEEtSU5GLworc291cmNlUGx1Z2luID0gdHJ1ZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UtZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9wbHVnaW4ucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vcGx1Z2luLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM1NDAzYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLWZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vcGx1Z2luLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxMiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb3B5cmlnaHQgKGMpIDIwMDAsIDIwMDYgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIAorIyBDb250cmlidXRvcnM6CisjICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK3BsdWdpbk5hbWUgPSBJbnRlcm5hdGlvbmFsIENvbXBvbmVudHMgZm9yIFVuaWNvZGUgZm9yIEphdmEgKElDVTRKKSBSZXBsYWNlbWVudCBzb3VyY2UgcGx1Zy1pbgorcHJvdmlkZXJOYW1lID0gSUJNIENvcnBvcmF0aW9uCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy8uY2xhc3NwYXRoIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvLmNsYXNzcGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTFjOGYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvLmNsYXNzcGF0aApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Y2xhc3NwYXRoPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYyIvPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUiIvPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgorPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy8ucHJvamVjdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0ODU2N2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy8ucHJvamVjdApAQCAtMCwwICsxLDI4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHByb2plY3REZXNjcmlwdGlvbj4KKwk8bmFtZT5jb20uaWJtLmljdS5iYXNlLnRlc3RzPC9uYW1lPgorCTxjb21tZW50PjwvY29tbWVudD4KKwk8cHJvamVjdHM+CisJPC9wcm9qZWN0cz4KKwk8YnVpbGRTcGVjPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+CisJCQk8YXJndW1lbnRzPgorCQkJPC9hcmd1bWVudHM+CisJCTwvYnVpbGRDb21tYW5kPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJPC9idWlsZFNwZWM+CisJPG5hdHVyZXM+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPgorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4KKwk8L25hdHVyZXM+Cis8L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY3ZWRiMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0wLDAgKzEsMTQgQEAKK01hbmlmZXN0LVZlcnNpb246IDEuMAorQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgorQnVuZGxlLU5hbWU6IElDVTRKIEJhc2UgdGVzdCBmcmFnbWVudAorQnVuZGxlLVN5bWJvbGljTmFtZTogY29tLmlibS5pY3UuYmFzZS50ZXN0cworQnVuZGxlLVZlcnNpb246IDEuMC4wCitCdW5kbGUtVmVuZG9yOiBJQk0KK0J1bmRsZS1Db3B5cmlnaHQ6IExpY2Vuc2VkIE1hdGVyaWFscyAtIFByb3BlcnR5IG9mIElCTSAKKyAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDA2LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAKKyBJQk0gaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBJQk0gQ29ycC4KK0ZyYWdtZW50LUhvc3Q6IGNvbS5pYm0uaWN1LmJhc2U7YnVuZGxlLXZlcnNpb249IlszLjQuMywzLjUuMCkiCitCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4KK0J1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuMywKKyBDREMtMS4wL0ZvdW5kYXRpb24tMS4wCitSZXF1aXJlLUJ1bmRsZTogb3JnLmp1bml0CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9idWlsZC5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGQyZTRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvYnVpbGQucHJvcGVydGllcwpAQCAtMCwwICsxLDQgQEAKK3NvdXJjZS4uID0gc3JjLworb3V0cHV0Li4gPSBiaW4vCitiaW4uaW5jbHVkZXMgPSBNRVRBLUlORi8sXAorICAgICAgICAgICAgICAgLgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0JyZWFrSXRlcmF0b3JUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvQnJlYWtJdGVyYXRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYmJjOGIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0JyZWFrSXRlcmF0b3JUZXN0LmphdmEKQEAgLTAsMCArMSwzNTkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitwdWJsaWMgY2xhc3MgQnJlYWtJdGVyYXRvclRlc3QgZXh0ZW5kcyBJQ1VUZXN0Q2FzZSB7CisgICAgLy8gSUNVIGJlaGF2ZXMgYSBiaXQgZGlmZmVyZW50bHkgd2l0aCB0aGlzIHRleHQsIGJ1dCB0aGUgdGVzdGVkIHZhbHVlcyBhcmVuJ3QKKyAgICAvLyBhZmZlY3RlZC4gIElmIEphdmEgY2hhbmdlcyBiZWhhdmlvciB0aGV5IG1pZ2h0IG5lZWQgdG8gY2hhbmdlLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyB0ZXh0ID0gIk1yLiBhbmQgTXJzLiBNdW1ibGV0eS1QZWcgcGFpZCAkMzUuOTcgZm9yIGEgbmV3IDEyXCIgY29ja2F0b28uICIgKworICAgICAgICAiV2hlbiB0aGV5IGdvdCBob21lIHRoZXkgYm90aCBjb29lZCBcIklzbid0IGl0IGxvdmVseT9cIiBhbmQgc2lnaGVkIHNvZnRseS4gIiArCisgICAgICAgICJcIkxldCdzIG5hbWUgaXQgdVx1MDMwOFx1NTA5OCFcIiB0aGV5IHNhaWQgd2l0aCBnbGVlLiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHBvcyA9IHRleHQuaW5kZXhPZigic24ndCIpOworICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3IgY2JyOworICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3Igd2JyOworICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3IgbGJyOworICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3Igc2JyOworICAgICAgICAKKyAgICBzdGF0aWMgeworICAgICAgICBjYnIgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7CisgICAgICAgIGNici5zZXRUZXh0KHRleHQpOworICAgICAgICB3YnIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICB3YnIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgbGJyID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgbGJyLnNldFRleHQodGV4dCk7CisgICAgICAgIHNiciA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZSgpOworICAgICAgICBzYnIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLy8gZGlhZ25vc3RpYworICAgICAgICAvLyAgICAgICAgICAgICAgZHVtcChjYnIpOworICAgICAgICAvLyAgICAgICAgICAgICAgZHVtcCh3YnIpOworICAgICAgICAvLyAgICAgICAgICAgICAgZHVtcChsYnIpOworICAgICAgICAvLyAgICAgICAgICAgICAgZHVtcChzYnIpOworICAgIH0KKyAgICAgICAgCisgICAgLy8gICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGR1bXAoQnJlYWtJdGVyYXRvciBiaSkgeworICAgIC8vICAgICAgICAgICAgICBmb3IgKGludCBpeCA9IGJpLmZpcnN0KCksIGxpbSA9IHRleHQubGVuZ3RoKCk7IGl4ICE9IGxpbTspIHsKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICBpbnQgbnggPSBiaS5uZXh0KCk7CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgaWYgKG54IDwgMCkgbnggPSBsaW07CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKEludGVnZXIudG9TdHJpbmcoaXgpICsgIjogIiArIHRleHQuc3Vic3RyaW5nKGl4LCBueCkpOworICAgIC8vICAgICAgICAgICAgICAgICAgICAgIGl4ID0gbng7CisgICAgLy8gICAgICAgICAgICAgIH0KKyAgICAvLyAgICAgIH0KKyAgICAgICAgCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5oYXNoQ29kZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RIYXNoQ29kZSgpIHsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBiciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgIGJyLnNldFRleHQodGV4dCk7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYnJuZSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgIGJybmUuc2V0VGV4dCh0ZXh0ICsgIlgiKTsKKyAgICAgICAgd2JyLmZpcnN0KCk7CisgICAgICAgIHRlc3RFSENTKGJyLCB3YnIsIGJybmUpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuQnJlYWtJdGVyYXRvcihCcmVha0l0ZXJhdG9yKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QnJlYWtJdGVyYXRvcigpIHsKKyAgICAgICAgLy8gaW1wbGljaXRseSB0ZXN0ZWQgZXZlcnl3aGVyZQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZmlyc3QoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rmlyc3QoKSB7CisgICAgICAgIGFzc2VydEVxdWFscygwLCBjYnIuZmlyc3QoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygwLCB3YnIuZmlyc3QoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygwLCBsYnIuZmlyc3QoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygwLCBzYnIuZmlyc3QoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5sYXN0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdExhc3QoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyh0ZXh0Lmxlbmd0aCgpLCBjYnIubGFzdCgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHRleHQubGVuZ3RoKCksIHdici5sYXN0KCkpOworICAgICAgICBhc3NlcnRFcXVhbHModGV4dC5sZW5ndGgoKSwgbGJyLmxhc3QoKSk7CisgICAgICAgIGFzc2VydEVxdWFscyh0ZXh0Lmxlbmd0aCgpLCBzYnIubGFzdCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLm5leHQoaW50KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0TmV4dEludCgpIHsKKyAgICAgICAgY2JyLmZpcnN0KCk7CisgICAgICAgIHdici5maXJzdCgpOworICAgICAgICBsYnIuZmlyc3QoKTsKKyAgICAgICAgc2JyLmZpcnN0KCk7CisgICAgICAgIGFzc2VydEVxdWFscygyLCBjYnIubmV4dCgyKSk7CisgICAgICAgIGFzc2VydEVxdWFscygzLCB3YnIubmV4dCgyKSk7CisgICAgICAgIGFzc2VydEVxdWFscyg4LCBsYnIubmV4dCgyKSk7CisgICAgICAgIGFzc2VydEVxdWFscyg2Miwgc2JyLm5leHQoMikpOworICAgICAgICAgICAgICAgIAorICAgICAgICBjYnIubGFzdCgpOworICAgICAgICB3YnIubGFzdCgpOworICAgICAgICBsYnIubGFzdCgpOworICAgICAgICBzYnIubGFzdCgpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTc0LCBjYnIubmV4dCgtMikpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTcxLCB3YnIubmV4dCgtMikpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTY2LCBsYnIubmV4dCgtMikpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTM1LCBzYnIubmV4dCgtMikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IubmV4dCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3ROZXh0KCkgeworICAgICAgICBjYnIuZmlyc3QoKTsKKyAgICAgICAgd2JyLmZpcnN0KCk7CisgICAgICAgIGxici5maXJzdCgpOworICAgICAgICBzYnIuZmlyc3QoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEsIGNici5uZXh0KCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoMiwgd2JyLm5leHQoKSk7CisgICAgICAgIGFzc2VydEVxdWFscyg0LCBsYnIubmV4dCgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEzLCBzYnIubmV4dCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLnByZXZpb3VzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFByZXZpb3VzKCkgeworICAgICAgICBjYnIubGFzdCgpOworICAgICAgICB3YnIubGFzdCgpOworICAgICAgICBsYnIubGFzdCgpOworICAgICAgICBzYnIubGFzdCgpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTc1LCBjYnIucHJldmlvdXMoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygxNzUsIHdici5wcmV2aW91cygpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDE3MSwgbGJyLnByZXZpb3VzKCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTU2LCBzYnIucHJldmlvdXMoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5mb2xsb3dpbmcoaW50KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9sbG93aW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoMTAwLCBjYnIuZm9sbG93aW5nKHBvcykpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTAzLCB3YnIuZm9sbG93aW5nKHBvcykpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTA0LCBsYnIuZm9sbG93aW5nKHBvcykpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTE2LCBzYnIuZm9sbG93aW5nKHBvcykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IucHJlY2VkaW5nKGludCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFByZWNlZGluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDk4LCBjYnIucHJlY2VkaW5nKHBvcykpOworICAgICAgICBhc3NlcnRFcXVhbHMoOTgsIHdici5wcmVjZWRpbmcocG9zKSk7CisgICAgICAgIGFzc2VydEVxdWFscyg5NywgbGJyLnByZWNlZGluZyhwb3MpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDYyLCBzYnIucHJlY2VkaW5nKHBvcykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuaXNCb3VuZGFyeShpbnQpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RJc0JvdW5kYXJ5KCkgeworICAgICAgICBhc3NlcnRUcnVlKGNici5pc0JvdW5kYXJ5KHBvcykpOworICAgICAgICBhc3NlcnRGYWxzZSh3YnIuaXNCb3VuZGFyeShwb3MpKTsKKyAgICAgICAgYXNzZXJ0RmFsc2UobGJyLmlzQm91bmRhcnkocG9zKSk7CisgICAgICAgIGFzc2VydEZhbHNlKHNici5pc0JvdW5kYXJ5KHBvcykpOworCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5jdXJyZW50KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEN1cnJlbnQoKSB7CisgICAgICAgIGNici5mb2xsb3dpbmcocG9zKTsKKyAgICAgICAgd2JyLmZvbGxvd2luZyhwb3MpOworICAgICAgICBsYnIuZm9sbG93aW5nKHBvcyk7CisgICAgICAgIHNici5mb2xsb3dpbmcocG9zKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEwMCwgY2JyLmN1cnJlbnQoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygxMDMsIHdici5jdXJyZW50KCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTA0LCBsYnIuY3VycmVudCgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDExNiwgc2JyLmN1cnJlbnQoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRUZXh0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFRleHQoKSB7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNpID0gY2JyLmdldFRleHQoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoY2kuZ2V0RW5kSW5kZXgoKSAtIGNpLmdldEJlZ2luSW5kZXgoKSk7CisgICAgICAgIGZvciAoY2hhciBjID0gY2kuZmlyc3QoKTsgYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FOyBjID0gY2kubmV4dCgpKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKHRleHQsIHJlc3VsdCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5zZXRUZXh0KFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldFRleHRTdHJpbmcoKSB7CisgICAgICAgIC8vIGltcGxpY2l0bHkgdGVzdGVkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5zZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0VGV4dENoYXJhY3Rlckl0ZXJhdG9yKCkgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaSA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0LCBwb3MpOworICAgICAgICBCcmVha0l0ZXJhdG9yIGJpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgYmkuc2V0VGV4dChjaSk7CisgICAgICAgIGFzc2VydEVxdWFscygyLCBiaS5uZXh0KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFdvcmRJbnN0YW5jZSgpIHsKKyAgICAgICAgLy8gaW1wbGljaXRseSB0ZXN0ZWQKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRXb3JkSW5zdGFuY2VMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLkpBUEFOKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFdvcmRJbnN0YW5jZVVMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoVUxvY2FsZS5KQVBBTikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldExpbmVJbnN0YW5jZSgpIHsKKyAgICAgICAgLy8gaW1wbGljaXRseSB0ZXN0ZWQKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRMaW5lSW5zdGFuY2VMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoTG9jYWxlLkpBUEFOKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldExpbmVJbnN0YW5jZVVMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoVUxvY2FsZS5KQVBBTikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0Q2hhcmFjdGVySW5zdGFuY2UoKSB7CisgICAgICAgIC8vIGltcGxpY2l0bHkgdGVzdGVkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRDaGFyYWN0ZXJJbnN0YW5jZUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5KQVBBTikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldENoYXJhY3Rlckluc3RhbmNlVUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKFVMb2NhbGUuSkFQQU4pKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0U2VudGVuY2VJbnN0YW5jZSgpIHsKKyAgICAgICAgLy8gaW1wbGljaXRseSB0ZXN0ZWQKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0U2VudGVuY2VJbnN0YW5jZUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlLkpBUEFOKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRTZW50ZW5jZUluc3RhbmNlVUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoVUxvY2FsZS5KQVBBTikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0VGl0bGVJbnN0YW5jZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRUaXRsZUluc3RhbmNlKCkgeworICAgICAgICAvLyBub3QgaW1wbGVtZW50ZWQKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldFRpdGxlSW5zdGFuY2UoTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0VGl0bGVJbnN0YW5jZUxvY2FsZSgpIHsKKyAgICAgICAgLy8gbm90IGltcGxlbWVudGVkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRUaXRsZUluc3RhbmNlKFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRUaXRsZUluc3RhbmNlVUxvY2FsZSgpIHsKKyAgICAgICAgLy8gbm90IGltcGxlbWVudGVkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0QXZhaWxhYmxlVUxvY2FsZXMoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoQnJlYWtJdGVyYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLnRvU3RyaW5nKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFRvU3RyaW5nKCkgeworICAgICAgICBhc3NlcnROb3ROdWxsKGNici50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmNsb25lKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdENsb25lKCkgeworICAgICAgICAvLyBzZWUgdGVzdEhhc2hDb2RlCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvci5lcXVhbHMoT2JqZWN0KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0RXF1YWxzT2JqZWN0KCkgeworICAgICAgICAvLyBzZWUgdGVzdEhhc2hDb2RlCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0NhbGVuZGFyVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0NhbGVuZGFyVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3MmQyNTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvQ2FsZW5kYXJUZXN0LmphdmEKQEAgLTAsMCArMSw1NTkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBDYWxlbmRhclRlc3QgZXh0ZW5kcyBJQ1VUZXN0Q2FzZSB7CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5oYXNoQ29kZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RIYXNoQ29kZSgpIHsKKwkJQ2FsZW5kYXIgY2FsMSA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCUNhbGVuZGFyIGNhbDIgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlDYWxlbmRhciBjYWwzID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsMy5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKGNhbDMuZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpKzEpOworCQl0ZXN0RUhDUyhjYWwxLCBjYWwyLCBjYWwzKTsJCQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLkNhbGVuZGFyKENhbGVuZGFyKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q2FsZW5kYXIoKSB7CisJCS8vIHRlc3RlZCBpbXBsaWNpdGx5IGV2ZXJ5d2hlcmUKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRJbnN0YW5jZSgpIHsKKwkJLy8gdGVzdGVkIGJ5IHRlc3RFSENTCisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoVGltZVpvbmUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRJbnN0YW5jZVRpbWVab25lKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHR6KTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwpOworCQlhc3NlcnROb3ROdWxsKGNhbC5nZXRUaW1lKCkpOworCQlhc3NlcnRFcXVhbHModHosIGNhbC5nZXRUaW1lWm9uZSgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRJbnN0YW5jZUxvY2FsZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwpOworCQlhc3NlcnROb3ROdWxsKGNhbC5nZXRUaW1lKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKFVMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRJbnN0YW5jZVVMb2NhbGUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKFVMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGNhbCk7CisJCWFzc2VydE5vdE51bGwoY2FsLmdldFRpbWUoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoVGltZVpvbmUsIExvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEluc3RhbmNlVGltZVpvbmVMb2NhbGUoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTmV3X1lvcmsiKTsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UodHosIExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoY2FsKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwuZ2V0VGltZSgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZShUaW1lWm9uZSwgVUxvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEluc3RhbmNlVGltZVpvbmVVTG9jYWxlKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL05ld19Zb3JrIik7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHR6LCBVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwpOworCQlhc3NlcnROb3ROdWxsKGNhbC5nZXRUaW1lKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldEF2YWlsYWJsZUxvY2FsZXMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKwkJYXNzZXJ0Tm90TnVsbChDYWxlbmRhci5nZXRBdmFpbGFibGVMb2NhbGVzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldEF2YWlsYWJsZVVMb2NhbGVzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworCQlhc3NlcnROb3ROdWxsKENhbGVuZGFyLmdldEF2YWlsYWJsZVVMb2NhbGVzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldFRpbWUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0VGltZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwuZ2V0VGltZSgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5zZXRUaW1lKERhdGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRUaW1lKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuY2xlYXIoKTsKKwkJY2FsLnNldCgyMDA2LCAwLCAyMCwgOSwgMzAsIDApOworCQlEYXRlIGRhdGUgPSBjYWwuZ2V0VGltZSgpOworCQljYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0VGltZShkYXRlKTsKKwkJYXNzZXJ0RXF1YWxzKGRhdGUsIGNhbC5nZXRUaW1lKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldFRpbWVJbk1pbGxpcygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRUaW1lSW5NaWxsaXMoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWFzc2VydFRydWUoMCAhPSBjYWwuZ2V0VGltZUluTWlsbGlzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLnNldFRpbWVJbk1pbGxpcyhsb25nKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0VGltZUluTWlsbGlzKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuY2xlYXIoKTsKKwkJY2FsLnNldCgyMDA2LCAwLCAyMCwgOSwgMzAsIDApOworCQlsb25nIG1pbGxpcyA9IGNhbC5nZXRUaW1lSW5NaWxsaXMoKTsKKwkJRGF0ZSBkYXRlID0gY2FsLmdldFRpbWUoKTsKKwkJCisJCWNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbC5zZXRUaW1lSW5NaWxsaXMobWlsbGlzKTsKKwkJCisJCWFzc2VydEVxdWFscyhkYXRlLCBjYWwuZ2V0VGltZSgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXQoaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0KCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuY2xlYXIoKTsKKwkJY2FsLnNldCgyMDA2LCAwLCAyMCwgOSwgMzAsIDApOworCQlhc3NlcnRFcXVhbHMoMCwgY2FsLmdldChDYWxlbmRhci5NT05USCkpOworCQlhc3NlcnRFcXVhbHMoMjAsIGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisJCWFzc2VydEVxdWFscygzMCwgY2FsLmdldChDYWxlbmRhci5NSU5VVEUpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5zZXQoaW50LCBpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRJbnRJbnQoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk3Nyk7CisJCWFzc2VydEVxdWFscygxOTc3LCBjYWwuZ2V0KENhbGVuZGFyLllFQVIpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5zZXQoaW50LCBpbnQsIGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldEludEludEludCgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldCgxOTk3LCA5LCAxNSk7CisJCWFzc2VydEVxdWFscygxNSwgY2FsLmdldChDYWxlbmRhci5EQVRFKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuc2V0KGludCwgaW50LCBpbnQsIGludCwgaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0SW50SW50SW50SW50SW50KCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0KDE5OTcsIDksIDE1LCAxNCwgMjUpOworCQlhc3NlcnRFcXVhbHMoMjUsIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuc2V0KGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRJbnRJbnRJbnRJbnRJbnRJbnQoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbC5zZXQoMTk5NywgOSwgMTUsIDE0LCAyNSwgNTEpOworCQlhc3NlcnRFcXVhbHMoNTEsIGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuY2xlYXIoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q2xlYXIoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWNhbC5zZXQoMTk5NywgOSwgMTUsIDE0LCAyNSwgNTEpOworCQljYWwuY2xlYXIoKTsKKwkJYXNzZXJ0RXF1YWxzKDAsIGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5jbGVhcihpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDbGVhckludCgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldCgxOTk3LCA5LCAxNSwgMTQsIDI1LCA1MSk7CisJCWFzc2VydFRydWUoY2FsLmlzU2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworCQljYWwuY2xlYXIoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKwkJYXNzZXJ0RmFsc2UoY2FsLmlzU2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmlzU2V0KGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdElzU2V0KCkgeworCQkvLyBzZWUgdGVzdENsZWFySW50CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZXF1YWxzKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEVxdWFsc09iamVjdCgpIHsKKwkJLy8gdGVzdGVkIGJ5IHRlc3RIYXNoQ29kZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmlzRXF1aXZhbGVudFRvKENhbGVuZGFyKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SXNFcXVpdmFsZW50VG8oKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCUNhbGVuZGFyIGNhbDIgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwyLnNldCgxOTk0LCA2LCAyMSwgOCwgNyk7CisJCWFzc2VydFRydWUoY2FsLmlzRXF1aXZhbGVudFRvKGNhbDIpKTsKKwkJY2FsLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJDU1QiKSk7CisJCWNhbDIuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBEVCIpKTsKKwkJYXNzZXJ0RmFsc2UoY2FsLmlzRXF1aXZhbGVudFRvKGNhbDIpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5iZWZvcmUoT2JqZWN0KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0QmVmb3JlKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5OTApOworCQlhc3NlcnRUcnVlKGNhbC5iZWZvcmUobmV3IERhdGUoKSkpOworCQlhc3NlcnRUcnVlKGNhbC5iZWZvcmUoQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKSkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmFmdGVyKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEFmdGVyKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0KENhbGVuZGFyLllFQVIsIDMwNTgpOworCQlhc3NlcnRUcnVlKGNhbC5hZnRlcihuZXcgRGF0ZSgpKSk7CisJCWFzc2VydFRydWUoY2FsLmFmdGVyKENhbGVuZGFyLmdldEluc3RhbmNlKCkpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRBY3R1YWxNYXhpbXVtKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEFjdHVhbE1heGltdW0oKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygxMSwgY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuTU9OVEgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRBY3R1YWxNaW5pbXVtKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEFjdHVhbE1pbmltdW0oKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygwLCBjYWwuZ2V0QWN0dWFsTWluaW11bShDYWxlbmRhci5NT05USCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLnJvbGwoaW50LCBib29sZWFuKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Um9sbEludEJvb2xlYW4oKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCWNhbC5zZXQoMTk5NywgMSwgMjcpOworCQljYWwucm9sbChDYWxlbmRhci5EQVRFLCB0cnVlKTsKKwkJYXNzZXJ0RXF1YWxzKDI4LCBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5yb2xsKGludCwgaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Um9sbEludEludCgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKwkJY2FsLnNldCgxOTk3LCAxLCAyNyk7CisJCWNhbC5yb2xsKENhbGVuZGFyLkRBVEUsIDMpOworCQlhc3NlcnRFcXVhbHMoMiwgY2FsLmdldChDYWxlbmRhci5EQVRFKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuYWRkKGludCwgaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0QWRkKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworCQljYWwuc2V0KDE5OTcsIDEsIDI3KTsKKwkJY2FsLmFkZChDYWxlbmRhci5EQVRFLCAzKTsKKwkJYXNzZXJ0RXF1YWxzKDIsIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkpOworCQlhc3NlcnRFcXVhbHMoMiwgY2FsLmdldChDYWxlbmRhci5NT05USCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldERpc3BsYXlOYW1lKExvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlOYW1lTG9jYWxlKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlhc3NlcnRFcXVhbHMoIkNhbGVuZGFyIiwgY2FsLmdldERpc3BsYXlOYW1lKExvY2FsZS5VUykpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldERpc3BsYXlOYW1lKFVMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZVVMb2NhbGUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWFzc2VydEVxdWFscygiQ2FsZW5kYXIiLCBjYWwuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5VUykpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmNvbXBhcmVUbyhDYWxlbmRhciknCisJICovCisJcHVibGljIHZvaWQgdGVzdENvbXBhcmVUb0NhbGVuZGFyKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5OTApOworCQlhc3NlcnRUcnVlKDAgPiBjYWwuY29tcGFyZVRvKENhbGVuZGFyLmdldEluc3RhbmNlKCkpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5jb21wYXJlVG8oT2JqZWN0KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q29tcGFyZVRvT2JqZWN0KCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQljYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5OTApOworCQlhc3NlcnRUcnVlKDAgPiBjYWwuY29tcGFyZVRvKChPYmplY3QpQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKSkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldERhdGVUaW1lRm9ybWF0KGludCwgaW50LCBMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREYXRlVGltZUZvcm1hdEludEludExvY2FsZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldCgxOTkwLCA4LCAxNiwgMjAsIDMpOworCQlEYXRlRm9ybWF0IGRmID0gY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5TSE9SVCwgTG9jYWxlLlVTKTsKKwkJYXNzZXJ0RXF1YWxzKCJTZXB0ZW1iZXIgMTYsIDE5OTAgODowMyBQTSIsIGRmLmZvcm1hdChjYWwpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXREYXRlVGltZUZvcm1hdChpbnQsIGludCwgVUxvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERhdGVUaW1lRm9ybWF0SW50SW50VUxvY2FsZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldCgxOTkwLCA4LCAxNiwgMjAsIDMpOworCQlEYXRlRm9ybWF0IGRmID0gY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5TSE9SVCwgVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygiU2VwdGVtYmVyIDE2LCAxOTkwIDg6MDMgUE0iLCBkZi5mb3JtYXQoY2FsKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZmllbGREaWZmZXJlbmNlKERhdGUsIGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEZpZWxkRGlmZmVyZW5jZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDApOworCQlEYXRlIGRhdGUgPSBjYWwuZ2V0VGltZSgpOworCQljYWwuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgNSk7CisJCWFzc2VydEVxdWFscygtNSwgY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlLCBDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRUaW1lWm9uZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRUaW1lWm9uZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJYXNzZXJ0Tm90TnVsbChjYWwuZ2V0VGltZVpvbmUoKSk7CisJfQorCQorCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLnNldFRpbWVab25lKFRpbWVab25lKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0VGltZVpvbmUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCVRpbWVab25lIHZhbHVlMSA9IGNhbC5nZXRUaW1lWm9uZSgpOworCQlTdHJpbmcgdHpuID0gIlBEVCIuZXF1YWxzKHZhbHVlMS5nZXRJRCgpKSA/ICJDU1QiIDogIlBEVCI7CisJCVRpbWVab25lIHZhbHVlMiA9IFRpbWVab25lLmdldFRpbWVab25lKHR6bik7CisJCWNhbC5zZXRUaW1lWm9uZSh2YWx1ZTIpOworCQlUaW1lWm9uZSByZXN1bHQgPSBjYWwuZ2V0VGltZVpvbmUoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUxLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUyLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLnNldExlbmllbnQoYm9vbGVhbiknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldExlbmllbnQoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWJvb2xlYW4gbGVuaWVudCA9IGNhbC5pc0xlbmllbnQoKTsKKwkJY2FsLnNldExlbmllbnQoIWxlbmllbnQpOworCQlhc3NlcnRGYWxzZShsZW5pZW50ID09IGNhbC5pc0xlbmllbnQoKSk7CisJCQorCQkvLyBub3QgdGVzdGluZyBpZiBpdCBoYXMgdGhlIGV4cGVjdGVkIGVmZmVjdAorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmlzTGVuaWVudCgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RJc0xlbmllbnQoKSB7CisJCS8vIHRlc3RlZCBieSB0ZXN0U2V0TGVuaWVudAorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLnNldEZpcnN0RGF5T2ZXZWVrKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldEZpcnN0RGF5T2ZXZWVrKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlpbnQgZmlyc3REYXkgPSBjYWwuZ2V0Rmlyc3REYXlPZldlZWsoKTsKKwkJY2FsLnNldEZpcnN0RGF5T2ZXZWVrKGZpcnN0RGF5KzEpOworCQlhc3NlcnRFcXVhbHMoZmlyc3REYXkrMSwgY2FsLmdldEZpcnN0RGF5T2ZXZWVrKCkpOworCQkKKwkJLy8gZG9uJ3QgdGVzdCBmdW5jdGlvbmFsaXR5CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0Rmlyc3REYXlPZldlZWsoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0Rmlyc3REYXlPZldlZWsoKSB7CisJCS8vIHRlc3RlZCBieSB0ZXN0U2V0Rmlyc3REYXlPZldlZWsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisJCWludCBmaXJzdERheSA9IGNhbC5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk7CisJCWNhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKGZpcnN0RGF5KzEpOworCQlhc3NlcnRFcXVhbHMoZmlyc3REYXkrMSwgY2FsLmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSk7CisJCQorCQkvLyBkb24ndCB0ZXN0IGZ1bmN0aW9uYWxpdHkKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSB7CisJCS8vIHRlc3RlZCBieSB0ZXN0U2V0TWluaW1hbERheXNJbkZpcnN0V2VlaworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmdldE1pbmltdW0oaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0TWluaW11bSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJYXNzZXJ0RXF1YWxzKDEsIGNhbC5nZXRNaW5pbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0TWF4aW11bShpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRNYXhpbXVtKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlhc3NlcnRFcXVhbHMoNywgY2FsLmdldE1heGltdW0oQ2FsZW5kYXIuREFZX09GX1dFRUspKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRHcmVhdGVzdE1pbmltdW0oaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0R3JlYXRlc3RNaW5pbXVtKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlhc3NlcnRFcXVhbHMoMSwgY2FsLmdldEdyZWF0ZXN0TWluaW11bShDYWxlbmRhci5EQVRFKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0TGVhc3RNYXhpbXVtKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldExlYXN0TWF4aW11bSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJYXNzZXJ0RXF1YWxzKDI4LCBjYWwuZ2V0TGVhc3RNYXhpbXVtKENhbGVuZGFyLkRBVEUpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXREYXlPZldlZWtUeXBlKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERheU9mV2Vla1R5cGUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscyhDYWxlbmRhci5XRUVLREFZLCBjYWwuZ2V0RGF5T2ZXZWVrVHlwZShDYWxlbmRhci5GUklEQVkpKTsKKwkJYXNzZXJ0RXF1YWxzKENhbGVuZGFyLldFRUtFTkQsIGNhbC5nZXREYXlPZldlZWtUeXBlKENhbGVuZGFyLlNBVFVSREFZKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZ2V0V2Vla2VuZFRyYW5zaXRpb24oaW50KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0V2Vla2VuZFRyYW5zaXRpb24oKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCXRyeSB7CisJCQljYWwuZ2V0V2Vla2VuZFRyYW5zaXRpb24oQ2FsZW5kYXIuV0VFS0VORF9PTlNFVCk7CisJCQlmYWlsKCJleHBlY3RlZCBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZnJvbSBnZXRXZWVrZW5kVHJhbnNpdGlvbiIpOworCQl9CisJCWNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworCQkJLy8gb2sKKwkJfQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmlzV2Vla2VuZChEYXRlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SXNXZWVrZW5kRGF0ZSgpIHsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKwkJY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuU0FUVVJEQVkpOworCQlhc3NlcnRUcnVlKGNhbC5pc1dlZWtlbmQoY2FsLmdldFRpbWUoKSkpOworCQljYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5XRURORVNEQVkpOworCQlhc3NlcnRGYWxzZShjYWwuaXNXZWVrZW5kKGNhbC5nZXRUaW1lKCkpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5pc1dlZWtlbmQoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SXNXZWVrZW5kKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworCQljYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5TQVRVUkRBWSk7CisJCWFzc2VydFRydWUoY2FsLmlzV2Vla2VuZCgpKTsKKwkJY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuV0VETkVTREFZKTsKKwkJYXNzZXJ0RmFsc2UoY2FsLmlzV2Vla2VuZCgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5jbG9uZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDbG9uZSgpIHsKKwkJLy8gdGVzdGVkIGJ5IHRlc3RIYXNoQ29kZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLnRvU3RyaW5nKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFRvU3RyaW5nKCkgeworCQlDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworCQlhc3NlcnROb3ROdWxsKGNhbC50b1N0cmluZygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5DYWxlbmRhci5nZXRUeXBlKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldFR5cGUoKSB7CisJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygiZ3JlZ29yaWFuIiwgY2FsLmdldFR5cGUoKSk7CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0NvbGxhdGlvbktleVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9Db2xsYXRpb25LZXlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRhZTkyZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9Db2xsYXRpb25LZXlUZXN0LmphdmEKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uS2V5VGVzdCBleHRlbmRzIElDVVRlc3RDYXNlIHsKKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleS5oYXNoQ29kZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RIYXNoQ29kZSgpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCUNvbGxhdGlvbktleSBrMSA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJUaGlzIik7CisJCUNvbGxhdGlvbktleSBrMiA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJ0aGlzIik7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworCQlDb2xsYXRpb25LZXkga24gPSBjLmdldENvbGxhdGlvbktleSgidGhpcyIpOworCQl0ZXN0RUhDUyhrMSwgazIsIGtuKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXkuQ29sbGF0aW9uS2V5KENvbGxhdGlvbktleSknCisJICovCisJcHVibGljIHZvaWQgdGVzdENvbGxhdGlvbktleSgpIHsKKwkJLy8gaW1wbGljaXRseSB0ZXN0ZWQgZXZlcnl3aGVyZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleS5jb21wYXJlVG8oQ29sbGF0aW9uS2V5KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q29tcGFyZVRvQ29sbGF0aW9uS2V5KCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKwkJQ29sbGF0aW9uS2V5IGsxID0gYy5nZXRDb2xsYXRpb25LZXkoIlRoaXMiKTsKKwkJQ29sbGF0aW9uS2V5IGsyID0gYy5nZXRDb2xsYXRpb25LZXkoInRoaXMiKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisJCUNvbGxhdGlvbktleSBrMyA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJ0aGlzIik7CisJCWFzc2VydFRydWUoMCA9PSBrMS5jb21wYXJlVG8oazIpKTsKKwkJYXNzZXJ0RmFsc2UoMCA9PSBrMS5jb21wYXJlVG8oazMpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXkuY29tcGFyZVRvKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdENvbXBhcmVUb09iamVjdCgpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCUNvbGxhdGlvbktleSBrMSA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJUaGlzIik7CisJCUNvbGxhdGlvbktleSBrMiA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJ0aGlzIik7CisJCWFzc2VydFRydWUoMCA9PSBrMS5jb21wYXJlVG8oKE9iamVjdClrMikpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleS5lcXVhbHMoT2JqZWN0KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0RXF1YWxzT2JqZWN0KCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKwkJQ29sbGF0aW9uS2V5IGsxID0gYy5nZXRDb2xsYXRpb25LZXkoIlRoaXMiKTsKKwkJQ29sbGF0aW9uS2V5IGsyID0gYy5nZXRDb2xsYXRpb25LZXkoInRoaXMiKTsKKwkJYXNzZXJ0VHJ1ZShrMS5lcXVhbHMoKE9iamVjdClrMikpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdGlvbktleS50b1N0cmluZygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RUb1N0cmluZygpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCUNvbGxhdGlvbktleSBrMSA9IGMuZ2V0Q29sbGF0aW9uS2V5KCJUaGlzIik7CisJCWFzc2VydE5vdE51bGwoazEudG9TdHJpbmcoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5LmdldFNvdXJjZVN0cmluZygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRTb3VyY2VTdHJpbmcoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworCQlDb2xsYXRpb25LZXkgazEgPSBjLmdldENvbGxhdGlvbktleSgiVGhpcyIpOworCQlhc3NlcnRFcXVhbHMoIlRoaXMiLCBrMS5nZXRTb3VyY2VTdHJpbmcoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5LnRvQnl0ZUFycmF5KCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFRvQnl0ZUFycmF5KCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKwkJQ29sbGF0aW9uS2V5IGsxID0gYy5nZXRDb2xsYXRpb25LZXkoIlRoaXMiKTsKKwkJYnl0ZVtdIGtleSA9IGsxLnRvQnl0ZUFycmF5KCk7CisJCWFzc2VydE5vdE51bGwoa2V5KTsKKwkJYXNzZXJ0VHJ1ZSgwIDwga2V5Lmxlbmd0aCk7CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0NvbGxhdG9yVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0NvbGxhdG9yVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxYzcxNzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvQ29sbGF0b3JUZXN0LmphdmEKQEAgLTAsMCArMSwyMDUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRvclRlc3QgZXh0ZW5kcyBJQ1VUZXN0Q2FzZSB7CisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHMxID0gIkZ1XHUwMzA4bmYiOyAvLyBjYXBpdGFsIEYgKyB1ICsgZGlhcmVzaXMKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgczIgPSAiZnVcdTAzMDhuZiI7IC8vIHUgKyBkaWFyZXNpcworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBzMyA9ICJmXHUwMGZjbmYiOyAvLyB1LXVtbGF1dAorCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBzNCA9ICJmdVx1MDMwOFx1MDMxNm5mIjsgLy8gdSArIGRpYXJlc2lzIGFib3ZlICsgZ3JhdmUgYmVsb3cKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgczUgPSAiZnVcdTAzMTZcdTAzMDhuZiI7IC8vIHUgKyBncmF2ZSBiZWxvdyArIGRpYXJlc2lzIGFib3ZlCisJCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuaGFzaENvZGUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SGFzaENvZGUoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisJCUNvbGxhdG9yIGMyID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYzIuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKwkJQ29sbGF0b3IgY24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisJCXRlc3RFSENTKGMsIGMyLCBjbik7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuQ29sbGF0b3IoQ29sbGF0b3IpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDb2xsYXRvcigpIHsKKwkJLy8gaW1wbGljaXRseSB0ZXN0ZWQgZXZlcnl3aGVyZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLnNldFN0cmVuZ3RoKGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldFN0cmVuZ3RoKCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKwkJYXNzZXJ0VHJ1ZSgwID09IGMuY29tcGFyZShzMSwgczIpKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworCQlhc3NlcnRUcnVlKDAgPT0gYy5jb21wYXJlKHMxLCBzMikpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKwkJYXNzZXJ0VHJ1ZSgwIDwgYy5jb21wYXJlKHMxLCBzMikpOworCQlhc3NlcnRUcnVlKDAgPT0gYy5jb21wYXJlKHMyLCBzMykpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlFVQVRFUk5BUlkpOworCQlhc3NlcnRUcnVlKDAgPiBjLmNvbXBhcmUoczIsIHMzKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXREZWNvbXBvc2l0aW9uKCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisJCWFzc2VydFRydWUoMCAhPSBjLmNvbXBhcmUoczQsIHM1KSk7CisJCWMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5JREVOVElDQUwpOworCQlhc3NlcnRUcnVlKDAgPT0gYy5jb21wYXJlKHM0LCBzNSkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmdldEluc3RhbmNlKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEluc3RhbmNlKCkgeworCQkvLyBpbXBsaWNpdGx5IHRlc3RlZCBldmVyeXdoZXJlCisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0SW5zdGFuY2UoVUxvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEluc3RhbmNlVUxvY2FsZSgpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuR0VSTUFOWSk7CisJCWFzc2VydE5vdE51bGwoYyk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0SW5zdGFuY2VMb2NhbGUoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisJCWFzc2VydE5vdE51bGwoYyk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRBdmFpbGFibGVMb2NhbGVzKCkgeworCQlhc3NlcnROb3ROdWxsKENvbGxhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0QXZhaWxhYmxlVUxvY2FsZXMoKSB7CisJCWFzc2VydE5vdE51bGwoQ29sbGF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0S2V5d29yZHMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0S2V5d29yZHMoKSB7CisJCWFzc2VydEVxdWFscygwLCBDb2xsYXRvci5nZXRLZXl3b3JkcygpLmxlbmd0aCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0S2V5d29yZFZhbHVlcyhTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRLZXl3b3JkVmFsdWVzKCkgeworCQlhc3NlcnRFcXVhbHMoMCwgQ29sbGF0b3IuZ2V0S2V5d29yZFZhbHVlcygiIikubGVuZ3RoKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5nZXRTdHJlbmd0aCgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRTdHJlbmd0aCgpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCWFzc2VydEVxdWFscyhDb2xsYXRvci5QUklNQVJZLCBjLmdldFN0cmVuZ3RoKCkpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisJCWFzc2VydEVxdWFscyhDb2xsYXRvci5TRUNPTkRBUlksIGMuZ2V0U3RyZW5ndGgoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZ2V0RGVjb21wb3NpdGlvbigpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREZWNvbXBvc2l0aW9uKCkgeworCQlDb2xsYXRvciBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKwkJYy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKwkJYXNzZXJ0RXF1YWxzKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OLCBjLmdldERlY29tcG9zaXRpb24oKSk7CisJCWMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKTsKKwkJYXNzZXJ0RXF1YWxzKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04sIGMuZ2V0RGVjb21wb3NpdGlvbigpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5jb21wYXJlKE9iamVjdCwgT2JqZWN0KScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0Q29tcGFyZU9iamVjdE9iamVjdCgpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCWFzc2VydFRydWUoMCA9PSBjLmNvbXBhcmUoKE9iamVjdClzMSwgKE9iamVjdClzMikpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmVxdWFscyhTdHJpbmcsIFN0cmluZyknCisJICovCisJcHVibGljIHZvaWQgdGVzdEVxdWFsc1N0cmluZ1N0cmluZygpIHsKKwkJQ29sbGF0b3IgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisJCWMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisJCWFzc2VydFRydWUoYy5lcXVhbHMoczEsIHMyKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuY29tcGFyZShTdHJpbmcsIFN0cmluZyknCisJICovCisJcHVibGljIHZvaWQgdGVzdENvbXBhcmVTdHJpbmdTdHJpbmcoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworCQlhc3NlcnRUcnVlKDAgPT0gYy5jb21wYXJlKHMxLCBzMikpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLmdldENvbGxhdGlvbktleShTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRDb2xsYXRpb25LZXkoKSB7CisJCUNvbGxhdG9yIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCQljLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworCQlDb2xsYXRpb25LZXkgazEgPSBjLmdldENvbGxhdGlvbktleShzMSk7CisJCUNvbGxhdGlvbktleSBrMiA9IGMuZ2V0Q29sbGF0aW9uS2V5KHMyKTsKKwkJYXNzZXJ0VHJ1ZShrMS5lcXVhbHMoazIpKTsKKwkJYy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisJCWsxID0gYy5nZXRDb2xsYXRpb25LZXkoczEpOworCQlrMiA9IGMuZ2V0Q29sbGF0aW9uS2V5KHMyKTsKKwkJYXNzZXJ0RmFsc2UoazEuZXF1YWxzKGsyKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IudG9TdHJpbmcoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0VG9TdHJpbmcoKSB7CisJCWFzc2VydE5vdE51bGwoQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKS50b1N0cmluZygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5jbG9uZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDbG9uZSgpIHsKKwkJLy8gdGVzdGVkIGFib3ZlCisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuZXF1YWxzKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEVxdWFsc09iamVjdCgpIHsKKwkJLy8gdGVzdGVkIGFib3ZlCisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0RhdGVGb3JtYXRTeW1ib2xzVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0RhdGVGb3JtYXRTeW1ib2xzVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4MjM0ODgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvRGF0ZUZvcm1hdFN5bWJvbHNUZXN0LmphdmEKQEAgLTAsMCArMSwyNTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9sczsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBEYXRlRm9ybWF0U3ltYm9sc1Rlc3QgZXh0ZW5kcyBJQ1VUZXN0Q2FzZSB7CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5oYXNoQ29kZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RIYXNoQ29kZSgpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmczIgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmc24gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJZGZzbi5zZXRBbVBtU3RyaW5ncyhuZXcgU3RyaW5nW10geyAic3ciLCAieHciIH0pOworCQl0ZXN0RUhDUyhkZnMsIGRmczIsIGRmc24pOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLkRhdGVGb3JtYXRTeW1ib2xzKERhdGVGb3JtYXRTeW1ib2xzKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0RGF0ZUZvcm1hdFN5bWJvbHNEYXRlRm9ybWF0U3ltYm9scygpIHsKKwkJLy8gaW1wbGljaXRseSB0ZXN0ZWQgZXZlcnl3aGVyZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLkRhdGVGb3JtYXRTeW1ib2xzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdERhdGVGb3JtYXRTeW1ib2xzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoKTsKKwkJYXNzZXJ0Tm90TnVsbChkZnMuZ2V0V2Vla2RheXMoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0RGF0ZUZvcm1hdFN5bWJvbHNMb2NhbGUoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGRmcy5nZXRXZWVrZGF5cygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5EYXRlRm9ybWF0U3ltYm9scyhVTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0RGF0ZUZvcm1hdFN5bWJvbHNVTG9jYWxlKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoZGZzLmdldFdlZWtkYXlzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmdldEVyYXMoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0RXJhcygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoZGZzLmdldEVyYXMoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuc2V0RXJhcyhTdHJpbmdbXSknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldEVyYXMoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlTdHJpbmdbXSBvbGR2YWx1ZSA9IGRmcy5nZXRFcmFzKCk7CisJCVN0cmluZ1tdIG5ld3ZhbHVlID0gKFN0cmluZ1tdKW9sZHZhbHVlLmNsb25lKCk7CisJCW5ld3ZhbHVlWzBdID0gbmV3dmFsdWVbMF0gKyAiISI7CisJCWRmcy5zZXRFcmFzKG5ld3ZhbHVlKTsKKwkJU3RyaW5nW10gcmVzdWx0ID0gZGZzLmdldEVyYXMoKTsKKwkJYXNzZXJ0QXJyYXlzTm90RXF1YWwob2xkdmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEFycmF5c0VxdWFsKG5ld3ZhbHVlLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmdldE1vbnRocygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRNb250aHMoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGRmcy5nZXRNb250aHMoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuc2V0TW9udGhzKFN0cmluZ1tdKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0TW9udGhzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJU3RyaW5nW10gb2xkdmFsdWUgPSBkZnMuZ2V0TW9udGhzKCk7CisJCVN0cmluZ1tdIG5ld3ZhbHVlID0gKFN0cmluZ1tdKW9sZHZhbHVlLmNsb25lKCk7CisJCW5ld3ZhbHVlWzBdID0gbmV3dmFsdWVbMF0gKyAiISI7CisJCWRmcy5zZXRNb250aHMobmV3dmFsdWUpOworCQlTdHJpbmdbXSByZXN1bHQgPSBkZnMuZ2V0TW9udGhzKCk7CisJCWFzc2VydEFycmF5c05vdEVxdWFsKG9sZHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRBcnJheXNFcXVhbChuZXd2YWx1ZSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5nZXRTaG9ydE1vbnRocygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRTaG9ydE1vbnRocygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoZGZzLmdldFNob3J0TW9udGhzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLnNldFNob3J0TW9udGhzKFN0cmluZ1tdKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0U2hvcnRNb250aHMoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlTdHJpbmdbXSBvbGR2YWx1ZSA9IGRmcy5nZXRTaG9ydE1vbnRocygpOworCQlTdHJpbmdbXSBuZXd2YWx1ZSA9IChTdHJpbmdbXSlvbGR2YWx1ZS5jbG9uZSgpOworCQluZXd2YWx1ZVswXSA9IG5ld3ZhbHVlWzBdICsgIiEiOworCQlkZnMuc2V0U2hvcnRNb250aHMobmV3dmFsdWUpOworCQlTdHJpbmdbXSByZXN1bHQgPSBkZnMuZ2V0U2hvcnRNb250aHMoKTsKKwkJYXNzZXJ0QXJyYXlzTm90RXF1YWwob2xkdmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEFycmF5c0VxdWFsKG5ld3ZhbHVlLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmdldFdlZWtkYXlzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldFdlZWtkYXlzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJYXNzZXJ0Tm90TnVsbChkZnMuZ2V0U2hvcnRNb250aHMoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuc2V0V2Vla2RheXMoU3RyaW5nW10pJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRXZWVrZGF5cygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCVN0cmluZ1tdIG9sZHZhbHVlID0gZGZzLmdldFdlZWtkYXlzKCk7CisJCVN0cmluZ1tdIG5ld3ZhbHVlID0gKFN0cmluZ1tdKW9sZHZhbHVlLmNsb25lKCk7CisJCW5ld3ZhbHVlWzBdID0gbmV3dmFsdWVbMF0gKyAiISI7CisJCWRmcy5zZXRXZWVrZGF5cyhuZXd2YWx1ZSk7CisJCVN0cmluZ1tdIHJlc3VsdCA9IGRmcy5nZXRXZWVrZGF5cygpOworCQlhc3NlcnRBcnJheXNOb3RFcXVhbChvbGR2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0QXJyYXlzRXF1YWwobmV3dmFsdWUsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0U2hvcnRXZWVrZGF5cygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRTaG9ydFdlZWtkYXlzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJYXNzZXJ0Tm90TnVsbChkZnMuZ2V0U2hvcnRXZWVrZGF5cygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5zZXRTaG9ydFdlZWtkYXlzKFN0cmluZ1tdKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0U2hvcnRXZWVrZGF5cygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCVN0cmluZ1tdIG9sZHZhbHVlID0gZGZzLmdldFNob3J0V2Vla2RheXMoKTsKKwkJU3RyaW5nW10gbmV3dmFsdWUgPSAoU3RyaW5nW10pb2xkdmFsdWUuY2xvbmUoKTsKKwkJbmV3dmFsdWVbMF0gPSBuZXd2YWx1ZVswXSArICIhIjsKKwkJZGZzLnNldFNob3J0V2Vla2RheXMobmV3dmFsdWUpOworCQlTdHJpbmdbXSByZXN1bHQgPSBkZnMuZ2V0U2hvcnRXZWVrZGF5cygpOworCQlhc3NlcnRBcnJheXNOb3RFcXVhbChvbGR2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0QXJyYXlzRXF1YWwobmV3dmFsdWUsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0QW1QbVN0cmluZ3MoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0QW1QbVN0cmluZ3MoKSB7CisJCURhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGRmcy5nZXRBbVBtU3RyaW5ncygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5zZXRBbVBtU3RyaW5ncyhTdHJpbmdbXSknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldEFtUG1TdHJpbmdzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJU3RyaW5nW10gb2xkdmFsdWUgPSBkZnMuZ2V0QW1QbVN0cmluZ3MoKTsKKwkJU3RyaW5nW10gbmV3dmFsdWUgPSAoU3RyaW5nW10pb2xkdmFsdWUuY2xvbmUoKTsKKwkJbmV3dmFsdWVbMF0gPSBuZXd2YWx1ZVswXSArICIhIjsKKwkJZGZzLnNldEFtUG1TdHJpbmdzKG5ld3ZhbHVlKTsKKwkJU3RyaW5nW10gcmVzdWx0ID0gZGZzLmdldEFtUG1TdHJpbmdzKCk7CisJCWFzc2VydEFycmF5c05vdEVxdWFsKG9sZHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRBcnJheXNFcXVhbChuZXd2YWx1ZSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5nZXRab25lU3RyaW5ncygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRab25lU3RyaW5ncygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoZGZzLmdldFpvbmVTdHJpbmdzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLnNldFpvbmVTdHJpbmdzKFN0cmluZ1tdW10pJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRab25lU3RyaW5ncygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCVN0cmluZ1tdW10gb2xkdmFsdWUgPSBkZnMuZ2V0Wm9uZVN0cmluZ3MoKTsKKwkJU3RyaW5nW11bXSBuZXd2YWx1ZSA9IChTdHJpbmdbXVtdKWNsb25lQ29tcGxleChvbGR2YWx1ZSk7CisJCW5ld3ZhbHVlWzBdWzBdID0gbmV3dmFsdWVbMF1bMF0gKyAiISI7CisJCWRmcy5zZXRab25lU3RyaW5ncyhuZXd2YWx1ZSk7CisJCVN0cmluZ1tdW10gcmVzdWx0ID0gZGZzLmdldFpvbmVTdHJpbmdzKCk7CisJCWFzc2VydEFycmF5c05vdEVxdWFsKG9sZHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRBcnJheXNFcXVhbChuZXd2YWx1ZSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5nZXRMb2NhbFBhdHRlcm5DaGFycygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRMb2NhbFBhdHRlcm5DaGFycygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoZGZzLmdldExvY2FsUGF0dGVybkNoYXJzKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLnNldExvY2FsUGF0dGVybkNoYXJzKFN0cmluZyknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldExvY2FsUGF0dGVybkNoYXJzKCkgeworCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJU3RyaW5nIHBhdCA9IGRmcy5nZXRMb2NhbFBhdHRlcm5DaGFycygpOworCQlTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcihwYXQpOworCQlidWYuc2V0Q2hhckF0KDAsIChjaGFyKShwYXQuY2hhckF0KDApICsgMSkpOworCQlTdHJpbmcgcGF0MiA9IGJ1Zi50b1N0cmluZygpOworCQlkZnMuc2V0TG9jYWxQYXR0ZXJuQ2hhcnMocGF0Mik7CisJCVN0cmluZyBwYXQzID0gZGZzLmdldExvY2FsUGF0dGVybkNoYXJzKCk7CisJCWFzc2VydE5vdEVxdWFsKHBhdCwgcGF0Mik7CisJCWFzc2VydEVxdWFscyhwYXQyLCBwYXQzKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy50b1N0cmluZygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RUb1N0cmluZygpIHsKKwkJRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisJCWFzc2VydE5vdE51bGwoZGZzLnRvU3RyaW5nKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzLmNsb25lKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdENsb25lKCkgeworCQkvLyB0ZXN0ZWQgYnkgdGVzdEhhc2hDb2RlCisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuZXF1YWxzKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEVxdWFsc09iamVjdCgpIHsKKwkJLy8gdGVzdGVkIGJ5IHRlc3RIYXNoQ29kZQorCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9EYXRlRm9ybWF0VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL0RhdGVGb3JtYXRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGE0YzA0MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9EYXRlRm9ybWF0VGVzdC5qYXZhCkBAIC0wLDAgKzEsNDQzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRlc3RzOworCitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIERhdGVGb3JtYXRUZXN0IGV4dGVuZHMgSUNVVGVzdENhc2UgeworICAgIHByaXZhdGUgQ2FsZW5kYXIgYUNhbDsKKyAgICBwcml2YXRlIENhbGVuZGFyIGFuRVNUQ2FsOworICAgIHByaXZhdGUgRGF0ZSBhRGF0ZTsKKyAgICBwcml2YXRlIFN0cmluZyBhRGF0ZVN0cmluZzsKKyAgICBwcml2YXRlIFN0cmluZyBhVGltZVN0cmluZzsKKyAgICBwcml2YXRlIFN0cmluZyBhbkVTVFRpbWVTdHJpbmc7CisgICAgcHJpdmF0ZSBTdHJpbmcgYURhdGVUaW1lU3RyaW5nOworICAgIHByaXZhdGUgU3RyaW5nIGFTaG9ydERhdGVUaW1lU3RyaW5nOworICAgIHByaXZhdGUgU3RyaW5nIGFEZWZhdWx0RVNURGF0ZVRpbWVTdHJpbmc7CisgICAgcHJpdmF0ZSBEYXRlRm9ybWF0IGFERjsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBhQnVmOworICAgIHByaXZhdGUgRmllbGRQb3NpdGlvbiBhbkZQOworICAgICAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci5zZXRVcCgpOworICAgICAgICAgICAgICAgIAorICAgICAgICBqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIgZ2NhbCA9IG5ldyBqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgZ2NhbC5jbGVhcigpOworICAgICAgICBnY2FsLnNldChqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIuWUVBUiwgMTk5MCk7CisgICAgICAgIGdjYWwuc2V0KGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhci5NT05USCwgamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyLkRFQ0VNQkVSKTsKKyAgICAgICAgZ2NhbC5zZXQoamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyLkRBVEUsIDE3KTsKKyAgICAgICAgZ2NhbC5zZXQoamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyLkhPVVIsIDUpOworICAgICAgICBnY2FsLnNldChqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIuTUlOVVRFLCAxNyk7CisgICAgICAgIGFDYWwgPSBuZXcgQ2FsZW5kYXIoZ2NhbCk7CisgICAgICAgIGFuRVNUQ2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgYW5FU1RDYWwuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkVTVCIpKTsKKyAgICAgICAgYURhdGUgPSBnY2FsLmdldFRpbWUoKTsKKyAgICAgICAgYURhdGVTdHJpbmcgPSAiRGVjIDE3LCAxOTkwIjsgLy8gbWVkaXVtIC0tIHRoZSBkZWZhdWx0CisgICAgICAgIGFUaW1lU3RyaW5nID0gIjU6MTc6MDAgQU0iOyAvLyBtZWRpdW0KKyAgICAgICAgYW5FU1RUaW1lU3RyaW5nID0gIjg6MTc6MDAgQU0iOworICAgICAgICBhRGF0ZVRpbWVTdHJpbmcgPSAiRGVjIDE3LCAxOTkwIDU6MTc6MDAgQU0iOyAvLyBtZWRpdW0sIG1lZGl1bQorICAgICAgICBhRGVmYXVsdEVTVERhdGVUaW1lU3RyaW5nID0gIkRlYyAxNywgMTk5MCA4OjE3IEFNIjsgLy8gbWVkaXVtLCBzaG9ydCAtLSB0aGUgZGVmYXVsdAorICAgICAgICBhU2hvcnREYXRlVGltZVN0cmluZyA9ICIxMi8xNy85MCA1OjE3IEFNIjsgLy8gc2hvcnQsIHNob3J0CisgICAgICAgIGFERiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0Lk1FRElVTSwgRGF0ZUZvcm1hdC5NRURJVU0sIExvY2FsZS5VUyk7CisgICAgICAgIGFCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGFuRlAgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0Lmhhc2hDb2RlKCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEhhc2hDb2RlKCkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlRm9ybWF0IGVxID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuU0hPUlQpOworICAgICAgICB0ZXN0RUhDUyhkZiwgZXEsIGFERik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5EYXRlRm9ybWF0KERhdGVGb3JtYXQpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3REYXRlRm9ybWF0KCkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gbmV3IERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKSk7CisgICAgICAgIGFzc2VydEVxdWFscyhEYXRlRm9ybWF0LmdldEluc3RhbmNlKCksIGRmKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYXNzZXJ0RXF1YWxEYXRlU3RyaW5nKFN0cmluZ0J1ZmZlciBidWYpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlVGltZVN0cmluZywgYnVmLnRvU3RyaW5nKCkpOworICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSB2b2lkIGFzc2VydEVxdWFsRGF0ZVN0cmluZyhTdHJpbmcgc3RyKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZVRpbWVTdHJpbmcsIHN0cik7CisgICAgfQorICAgICAgICAKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmZvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEZvcm1hdE9iamVjdFN0cmluZ0J1ZmZlckZpZWxkUG9zaXRpb24oKSB7CisgICAgICAgIGFzc2VydEVxdWFsRGF0ZVN0cmluZyhhREYuZm9ybWF0KGFEYXRlLCBhQnVmLCBhbkZQKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5mb3JtYXQoQ2FsZW5kYXIsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEZvcm1hdENhbGVuZGFyU3RyaW5nQnVmZmVyRmllbGRQb3NpdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxEYXRlU3RyaW5nKGFERi5mb3JtYXQoYUNhbCwgYUJ1ZiwgYW5GUCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZm9ybWF0KERhdGUsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEZvcm1hdERhdGVTdHJpbmdCdWZmZXJGaWVsZFBvc2l0aW9uKCkgeworICAgICAgICBhc3NlcnRFcXVhbERhdGVTdHJpbmcoYURGLmZvcm1hdChhRGF0ZSwgYUJ1ZiwgYW5GUCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZm9ybWF0KERhdGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RGb3JtYXREYXRlKCkgeworICAgICAgICBhc3NlcnRFcXVhbERhdGVTdHJpbmcoYURGLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQucGFyc2UoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0UGFyc2VTdHJpbmcoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlLCBhREYucGFyc2UoYURhdGVUaW1lU3RyaW5nKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5wYXJzZShTdHJpbmcsIENhbGVuZGFyLCBQYXJzZVBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0UGFyc2VTdHJpbmdDYWxlbmRhclBhcnNlUG9zaXRpb24oKSB7CisgICAgICAgIGFERi5wYXJzZShhRGF0ZVRpbWVTdHJpbmcsIGFDYWwsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlLCBhQ2FsLmdldFRpbWUoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5wYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RQYXJzZVN0cmluZ1BhcnNlUG9zaXRpb24oKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZSwgYURGLnBhcnNlKGFEYXRlVGltZVN0cmluZywgbmV3IFBhcnNlUG9zaXRpb24oMCkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LnBhcnNlT2JqZWN0KFN0cmluZywgUGFyc2VQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdFBhcnNlT2JqZWN0U3RyaW5nUGFyc2VQb3NpdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlLCBhREYucGFyc2VPYmplY3QoYURhdGVUaW1lU3RyaW5nLCBuZXcgUGFyc2VQb3NpdGlvbigwKSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldFRpbWVJbnN0YW5jZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFUaW1lU3RyaW5nLCBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZSgpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGludCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldFRpbWVJbnN0YW5jZUludCgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFUaW1lU3RyaW5nLCBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0Lk1FRElVTSkuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoaW50LCBMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRUaW1lSW5zdGFuY2VJbnRMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhVGltZVN0cmluZywgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5NRURJVU0sIExvY2FsZS5VUykuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoaW50LCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0VGltZUluc3RhbmNlSW50VUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFUaW1lU3RyaW5nLCBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0Lk1FRElVTSwgVUxvY2FsZS5VUykuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZUluc3RhbmNlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURhdGVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCkuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoaW50KScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZUluc3RhbmNlSW50KCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURhdGVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuTUVESVVNKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShpbnQsIExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVJbnN0YW5jZUludExvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlU3RyaW5nLCBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0Lk1FRElVTSwgTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShpbnQsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXREYXRlSW5zdGFuY2VJbnRVTG9jYWxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURhdGVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuTUVESVVNLCBVTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZVRpbWVJbnN0YW5jZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlVGltZVN0cmluZywgRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKCkuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGludCwgaW50KScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZVRpbWVJbnN0YW5jZUludEludCgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlVGltZVN0cmluZywgCisgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuTUVESVVNKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoaW50LCBpbnQsIExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVUaW1lSW5zdGFuY2VJbnRJbnRMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGF0ZVRpbWVTdHJpbmcsIAorICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuTUVESVVNLCBEYXRlRm9ybWF0Lk1FRElVTSwgTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoaW50LCBpbnQsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXREYXRlVGltZUluc3RhbmNlSW50SW50VUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlVGltZVN0cmluZywgCisgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuTUVESVVNLCBVTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldEluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldEluc3RhbmNlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYVNob3J0RGF0ZVRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIElDVVRlc3RDYXNlLmFzc2VydEFycmF5c0VxdWFsKGphdmEudGV4dC5EYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKSwgbG9jYWxlcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhc3NlcnROb3ROdWxsKGxvY2FsZXMpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5zZXRDYWxlbmRhcihDYWxlbmRhciknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdFNldENhbGVuZGFyKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkVTVCIpKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjg6MTcgQU0iLCBkZi5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldENhbGVuZGFyKCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldENhbGVuZGFyKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkVTVCIpKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICBhc3NlcnRFcXVhbHMoY2FsLCBkZi5nZXRDYWxlbmRhcigpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LnNldE51bWJlckZvcm1hdChOdW1iZXJGb3JtYXQpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RTZXROdW1iZXJGb3JtYXQoKSB7CisgICAgICAgIC8vIG5vIGVhc3kgd2F5IHRvIHRlc3QgZWZmZWN0IG9mIHNldHRpbmcgdGhlIG51bWJlciBmb3JtYXQKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JUKTsKKyAgICAgICAgZGYuc2V0TnVtYmVyRm9ybWF0KG5mKTsKKyAgICAgICAgLy8gbm90ZSwgY2FuJ3QgYWN0dWFsbHkgVVNFIHRoZSBkYXRlZm9ybWF0IHNpbmNlIGl0IGNoYW5nZXMgdGhlIGNhbGVuZGFyCisgICAgICAgIGFzc2VydEVxdWFscyhuZiwgZGYuZ2V0TnVtYmVyRm9ybWF0KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0TnVtYmVyRm9ybWF0KCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldE51bWJlckZvcm1hdCgpIHsKKyAgICAgICAgLy8gc2VlIHRlc3RTZXROdW1iZXJGb3JtYXQKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LnNldFRpbWVab25lKFRpbWVab25lKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0U2V0VGltZVpvbmUoKSB7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JUKTsKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiRVNUIik7CisgICAgICAgIGRmLnNldFRpbWVab25lKHR6KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCI4OjE3IEFNIiwgZGYuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXRUaW1lWm9uZSgpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRUaW1lWm9uZSgpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQpOworICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJFU1QiKTsKKyAgICAgICAgZGYuc2V0VGltZVpvbmUodHopOworICAgICAgICBhc3NlcnRFcXVhbHModHosIGRmLmdldFRpbWVab25lKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuc2V0TGVuaWVudChib29sZWFuKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0U2V0TGVuaWVudCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCk7CisgICAgICAgIGRmLnBhcnNlKCIyLzMxLzkwIik7IC8vIHN1Y2NlZWRzLCBkZWZhdWx0IGlzIGxlbmllbnQKKyAgICAgICAgZGYuc2V0TGVuaWVudChmYWxzZSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkZi5wYXJzZSgiMi8zMS85MCIpOworICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigic3RyaWN0IHBhcnNlIHNob3VsZCBoYXZlIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBvaywgdGhpcyBpcyB3aGF0IHdlIGV4cGVjdAorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5pc0xlbmllbnQoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0SXNMZW5pZW50KCkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBhc3NlcnRUcnVlKGRmLmlzTGVuaWVudCgpKTsKKyAgICAgICAgZGYuc2V0TGVuaWVudChmYWxzZSk7CisgICAgICAgIGFzc2VydEZhbHNlKGRmLmlzTGVuaWVudCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShDYWxlbmRhciwgaW50LCBMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXREYXRlSW5zdGFuY2VDYWxlbmRhckludExvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEYXRlU3RyaW5nLCBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShhQ2FsLCBEYXRlRm9ybWF0Lk1FRElVTSwgTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShDYWxlbmRhciwgaW50LCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZUluc3RhbmNlQ2FsZW5kYXJJbnRVTG9jYWxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURhdGVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKGFDYWwsIERhdGVGb3JtYXQuTUVESVVNLCBVTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShDYWxlbmRhciwgaW50LCBMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRUaW1lSW5zdGFuY2VDYWxlbmRhckludExvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFuRVNUVGltZVN0cmluZywgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoYW5FU1RDYWwsIERhdGVGb3JtYXQuTUVESVVNLCBMb2NhbGUuVVMpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKENhbGVuZGFyLCBpbnQsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRUaW1lSW5zdGFuY2VDYWxlbmRhckludFVMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhbkVTVFRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGFuRVNUQ2FsLCBEYXRlRm9ybWF0Lk1FRElVTSwgVUxvY2FsZS5VUykuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKENhbGVuZGFyLCBpbnQsIGludCwgTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZVRpbWVJbnN0YW5jZUNhbGVuZGFySW50SW50TG9jYWxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURlZmF1bHRFU1REYXRlVGltZVN0cmluZywgRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGFuRVNUQ2FsLCBEYXRlRm9ybWF0Lk1FRElVTSwgRGF0ZUZvcm1hdC5TSE9SVCwgTG9jYWxlLlVTKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoQ2FsZW5kYXIsIGludCwgaW50LCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0RGF0ZVRpbWVJbnN0YW5jZUNhbGVuZGFySW50SW50VUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEZWZhdWx0RVNURGF0ZVRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShhbkVTVENhbCwgRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuU0hPUlQsIFVMb2NhbGUuVVMpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoQ2FsZW5kYXIsIExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldEluc3RhbmNlQ2FsZW5kYXJMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhRGVmYXVsdEVTVERhdGVUaW1lU3RyaW5nLCBEYXRlRm9ybWF0LmdldEluc3RhbmNlKGFuRVNUQ2FsLCBMb2NhbGUuVVMpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoQ2FsZW5kYXIsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRJbnN0YW5jZUNhbGVuZGFyVUxvY2FsZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEZWZhdWx0RVNURGF0ZVRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoYW5FU1RDYWwsIFVMb2NhbGUuVVMpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoQ2FsZW5kYXIpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RHZXRJbnN0YW5jZUNhbGVuZGFyKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURlZmF1bHRFU1REYXRlVGltZVN0cmluZywgRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShhbkVTVENhbCkuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoQ2FsZW5kYXIsIGludCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVJbnN0YW5jZUNhbGVuZGFySW50KCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoYURhdGVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKGFDYWwsIERhdGVGb3JtYXQuTUVESVVNKS5mb3JtYXQoYURhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShDYWxlbmRhciwgaW50KScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0R2V0VGltZUluc3RhbmNlQ2FsZW5kYXJJbnQoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhhbkVTVFRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGFuRVNUQ2FsLCBEYXRlRm9ybWF0Lk1FRElVTSkuZm9ybWF0KGFEYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKENhbGVuZGFyLCBpbnQsIGludCknCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGVzdEdldERhdGVUaW1lSW5zdGFuY2VDYWxlbmRhckludEludCgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGFEZWZhdWx0RVNURGF0ZVRpbWVTdHJpbmcsIERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShhbkVTVENhbCwgRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuU0hPUlQpLmZvcm1hdChhRGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQudG9TdHJpbmcoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0VG9TdHJpbmcoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoYURGLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuY2xvbmUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXN0Q2xvbmUoKSB7CisgICAgICAgIC8vIHNlZSB0ZXN0SGFzaENvZGUKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0LmVxdWFscyhPYmplY3QpJworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRlc3RFcXVhbHNPYmplY3QoKSB7CisgICAgICAgIC8vIHNlZSB0ZXN0SGFzaENvZGUKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvRGVjaW1hbEZvcm1hdFN5bWJvbHNUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvRGVjaW1hbEZvcm1hdFN5bWJvbHNUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThlZTQwNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9EZWNpbWFsRm9ybWF0U3ltYm9sc1Rlc3QuamF2YQpAQCAtMCwwICsxLDM0NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXN0czsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIERlY2ltYWxGb3JtYXRTeW1ib2xzVGVzdCBleHRlbmRzIElDVVRlc3RDYXNlIHsKKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmhhc2hDb2RlKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEhhc2hDb2RlKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzMiA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzbiA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRlJBTkNFKTsKKwkJdGVzdEVIQ1MoZGZzLCBkZnMyLCBkZnNuKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5EZWNpbWFsRm9ybWF0U3ltYm9scyhEZWNpbWFsRm9ybWF0U3ltYm9scyknCisJICovCisJcHVibGljIHZvaWQgdGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzRGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisJCS8vIGltcGxpY2l0bHkgdGVzdGVkIGV2ZXJ5d2hlcmUKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5EZWNpbWFsRm9ybWF0U3ltYm9scygpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3REZWNpbWFsRm9ybWF0U3ltYm9scygpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7CisJCWFzc2VydFRydWUoLTEgIT0gZGZzLmdldERlY2ltYWxTZXBhcmF0b3IoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHNMb2NhbGUoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworCQlhc3NlcnRUcnVlKC0xICE9IGRmcy5nZXREZWNpbWFsU2VwYXJhdG9yKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLkRlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3REZWNpbWFsRm9ybWF0U3ltYm9sc1VMb2NhbGUoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0VHJ1ZSgtMSAhPSBkZnMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5nZXRaZXJvRGlnaXQoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0WmVyb0RpZ2l0KCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygnMCcsIGRmcy5nZXRaZXJvRGlnaXQoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuc2V0WmVyb0RpZ2l0KGNoYXIpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRaZXJvRGlnaXQoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJY2hhciB2YWx1ZSA9IGRmcy5nZXRaZXJvRGlnaXQoKTsKKwkJY2hhciB2YWx1ZTEgPSAoY2hhcikodmFsdWUgKyAxKTsKKwkJZGZzLnNldFplcm9EaWdpdCh2YWx1ZTEpOworCQljaGFyIHJlc3VsdCA9IGRmcy5nZXRaZXJvRGlnaXQoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0R3JvdXBpbmdTZXBhcmF0b3IoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0RXF1YWxzKCcsJywgZGZzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLnNldEdyb3VwaW5nU2VwYXJhdG9yKGNoYXIpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRHcm91cGluZ1NlcGFyYXRvcigpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQljaGFyIHZhbHVlID0gZGZzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCk7CisJCWNoYXIgdmFsdWUxID0gKGNoYXIpKHZhbHVlICsgMSk7CisJCWRmcy5zZXRHcm91cGluZ1NlcGFyYXRvcih2YWx1ZTEpOworCQljaGFyIHJlc3VsdCA9IGRmcy5nZXRHcm91cGluZ1NlcGFyYXRvcigpOworCQlhc3NlcnROb3RFcXVhbCh2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5nZXREZWNpbWFsU2VwYXJhdG9yKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERlY2ltYWxTZXBhcmF0b3IoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0RXF1YWxzKCcuJywgZGZzLmdldERlY2ltYWxTZXBhcmF0b3IoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuc2V0RGVjaW1hbFNlcGFyYXRvcihjaGFyKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0RGVjaW1hbFNlcGFyYXRvcigpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQljaGFyIHZhbHVlID0gZGZzLmdldERlY2ltYWxTZXBhcmF0b3IoKTsKKwkJY2hhciB2YWx1ZTEgPSAoY2hhcikodmFsdWUgKyAxKTsKKwkJZGZzLnNldERlY2ltYWxTZXBhcmF0b3IodmFsdWUxKTsKKwkJY2hhciByZXN1bHQgPSBkZnMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworCQlhc3NlcnROb3RFcXVhbCh2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5nZXRQZXJNaWxsKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldFBlck1pbGwoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0RXF1YWxzKCdcdTIwMzAnLCBkZnMuZ2V0UGVyTWlsbCgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXRQZXJNaWxsKGNoYXIpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRQZXJNaWxsKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWNoYXIgdmFsdWUgPSBkZnMuZ2V0UGVyTWlsbCgpOworCQljaGFyIHZhbHVlMSA9IChjaGFyKSh2YWx1ZSArIDEpOworCQlkZnMuc2V0UGVyTWlsbCh2YWx1ZTEpOworCQljaGFyIHJlc3VsdCA9IGRmcy5nZXRQZXJNaWxsKCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUxLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmdldFBlcmNlbnQoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0UGVyY2VudCgpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlhc3NlcnRFcXVhbHMoJyUnLCBkZnMuZ2V0UGVyY2VudCgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXRQZXJjZW50KGNoYXIpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRQZXJjZW50KCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWNoYXIgdmFsdWUgPSBkZnMuZ2V0UGVyY2VudCgpOworCQljaGFyIHZhbHVlMSA9IChjaGFyKSh2YWx1ZSArIDEpOworCQlkZnMuc2V0UGVyY2VudCh2YWx1ZTEpOworCQljaGFyIHJlc3VsdCA9IGRmcy5nZXRQZXJjZW50KCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUxLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmdldERpZ2l0KCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERpZ2l0KCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygnIycsIGRmcy5nZXREaWdpdCgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXREaWdpdChjaGFyKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0RGlnaXQoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJY2hhciB2YWx1ZSA9IGRmcy5nZXREaWdpdCgpOworCQljaGFyIHZhbHVlMSA9IChjaGFyKSh2YWx1ZSArIDEpOworCQlkZnMuc2V0RGlnaXQodmFsdWUxKTsKKwkJY2hhciByZXN1bHQgPSBkZnMuZ2V0RGlnaXQoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZ2V0UGF0dGVyblNlcGFyYXRvcigpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRQYXR0ZXJuU2VwYXJhdG9yKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygnOycsIGRmcy5nZXRQYXR0ZXJuU2VwYXJhdG9yKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLnNldFBhdHRlcm5TZXBhcmF0b3IoY2hhciknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldFBhdHRlcm5TZXBhcmF0b3IoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJY2hhciB2YWx1ZSA9IGRmcy5nZXRQYXR0ZXJuU2VwYXJhdG9yKCk7CisJCWNoYXIgdmFsdWUxID0gKGNoYXIpKHZhbHVlICsgMSk7CisJCWRmcy5zZXRQYXR0ZXJuU2VwYXJhdG9yKHZhbHVlMSk7CisJCWNoYXIgcmVzdWx0ID0gZGZzLmdldFBhdHRlcm5TZXBhcmF0b3IoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZ2V0SW5maW5pdHkoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0SW5maW5pdHkoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0RXF1YWxzKCJcdTIyMWUiLCBkZnMuZ2V0SW5maW5pdHkoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuc2V0SW5maW5pdHkoU3RyaW5nKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0SW5maW5pdHkoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJU3RyaW5nIHZhbHVlID0gZGZzLmdldEluZmluaXR5KCk7CisJCVN0cmluZyB2YWx1ZTEgPSB2YWx1ZSArICIhIjsKKwkJZGZzLnNldEluZmluaXR5KHZhbHVlMSk7CisJCVN0cmluZyByZXN1bHQgPSBkZnMuZ2V0SW5maW5pdHkoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZ2V0TmFOKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldE5hTigpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlhc3NlcnROb3ROdWxsKGRmcy5nZXROYU4oKSk7IC8vIGphdmEgcmV0dXJucyBtaXNzaW5nIGNoYXJhY3Rlcj8/PworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLnNldE5hTihTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXROYU4oKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJU3RyaW5nIHZhbHVlID0gZGZzLmdldE5hTigpOworCQlTdHJpbmcgdmFsdWUxID0gdmFsdWUgKyAiISI7CisJCWRmcy5zZXROYU4odmFsdWUxKTsKKwkJU3RyaW5nIHJlc3VsdCA9IGRmcy5nZXROYU4oKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUsIHJlc3VsdCk7CisJCWFzc2VydEVxdWFscyh2YWx1ZTEsIHJlc3VsdCk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMuZ2V0TWludXNTaWduKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldE1pbnVzU2lnbigpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlhc3NlcnRFcXVhbHMoJy0nLCBkZnMuZ2V0TWludXNTaWduKCkpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLnNldE1pbnVzU2lnbihjaGFyKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0TWludXNTaWduKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWNoYXIgdmFsdWUgPSBkZnMuZ2V0TWludXNTaWduKCk7CisJCWNoYXIgdmFsdWUxID0gKGNoYXIpKHZhbHVlICsgMSk7CisJCWRmcy5zZXRNaW51c1NpZ24odmFsdWUxKTsKKwkJY2hhciByZXN1bHQgPSBkZnMuZ2V0TWludXNTaWduKCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUxLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmdldEN1cnJlbmN5U3ltYm9sKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEN1cnJlbmN5U3ltYm9sKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygiJCIsIGRmcy5nZXRDdXJyZW5jeVN5bWJvbCgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXRDdXJyZW5jeVN5bWJvbChTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRDdXJyZW5jeVN5bWJvbCgpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQlTdHJpbmcgdmFsdWUgPSBkZnMuZ2V0Q3VycmVuY3lTeW1ib2woKTsKKwkJU3RyaW5nIHZhbHVlMSA9IHZhbHVlICsgIiEiOworCQlkZnMuc2V0Q3VycmVuY3lTeW1ib2wodmFsdWUxKTsKKwkJU3RyaW5nIHJlc3VsdCA9IGRmcy5nZXRDdXJyZW5jeVN5bWJvbCgpOworCQlhc3NlcnROb3RFcXVhbCh2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCWFzc2VydEVxdWFscygiVVNEIiwgZGZzLmdldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woU3RyaW5nKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCkgeworCQlEZWNpbWFsRm9ybWF0U3ltYm9scyBkZnMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZS5VUyk7CisJCVN0cmluZyB2YWx1ZSA9IGRmcy5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKTsKKwkJU3RyaW5nIHZhbHVlMSA9IHZhbHVlICsgIiEiOworCQlkZnMuc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKHZhbHVlMSk7CisJCVN0cmluZyByZXN1bHQgPSBkZnMuZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCk7CisJCWFzc2VydE5vdEVxdWFsKHZhbHVlLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUxLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKSB7CisJCURlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhVTG9jYWxlLlVTKTsKKwkJYXNzZXJ0RXF1YWxzKCcuJywgZGZzLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5zZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoY2hhciknCisJICovCisJcHVibGljIHZvaWQgdGVzdFNldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpIHsKKwkJRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKFVMb2NhbGUuVVMpOworCQljaGFyIHZhbHVlID0gZGZzLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpOworCQljaGFyIHZhbHVlMSA9IChjaGFyKSh2YWx1ZSArIDEpOworCQlkZnMuc2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKHZhbHVlMSk7CisJCWNoYXIgcmVzdWx0ID0gZGZzLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpOworCQlhc3NlcnROb3RFcXVhbCh2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5jbG9uZSgpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RDbG9uZSgpIHsKKwkJLy8gdGVzdGVkIGluIHRlc3RIYXNoY29kZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmVxdWFscyhPYmplY3QpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RFcXVhbHNPYmplY3QoKSB7CisJCS8vIHRlc3RlZCBpbiB0ZXN0SGFzaGNvZGUKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvRGVjaW1hbEZvcm1hdFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9EZWNpbWFsRm9ybWF0VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExYTlmMWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvRGVjaW1hbEZvcm1hdFRlc3QuamF2YQpAQCAtMCwwICsxLDI0MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXN0czsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9sczsKKworcHVibGljIGNsYXNzIERlY2ltYWxGb3JtYXRUZXN0IGV4dGVuZHMgSUNVVGVzdENhc2UgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbG1heCA9IExvbmcuTUFYX1ZBTFVFOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGRvdWJsZSBkc21hbGwgPSAyMy4zMzsKKyAgICAgICAgCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5jbG9uZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RDbG9uZSgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMwLjAwIik7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYyID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIzAuMDAiKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZm4gPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjMC4wMCIpOworICAgICAgICBkZm4uc2V0TmVnYXRpdmVQcmVmaXgoZGZuLmdldE5lZ2F0aXZlUHJlZml4KCkgKyAnIScpOworICAgICAgICB0ZXN0RUhDUyhkZiwgZGYyLCBkZm4pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuRGVjaW1hbEZvcm1hdChEZWNpbWFsRm9ybWF0KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGVjaW1hbEZvcm1hdERlY2ltYWxGb3JtYXQoKSB7CisgICAgICAgIC8vIHRlc3RlZCBpbXBsaWNpdGx5CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5EZWNpbWFsRm9ybWF0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdERlY2ltYWxGb3JtYXQoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjksMjIzLDM3MiwwMzYsODU0LDc3NSw4MDciLCBkZi5mb3JtYXQobG1heCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuRGVjaW1hbEZvcm1hdChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3REZWNpbWFsRm9ybWF0U3RyaW5nKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLjAwMCIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjIzLjMzMCIsIGRmLmZvcm1hdChkc21hbGwpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LkRlY2ltYWxGb3JtYXQoU3RyaW5nLCBEZWNpbWFsRm9ybWF0U3ltYm9scyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdERlY2ltYWxGb3JtYXRTdHJpbmdEZWNpbWFsRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5GUkFOQ0UpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLjAwMCIsIHN5bSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMjMsMzMwIiwgZGYuZm9ybWF0KGRzbWFsbCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bSA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMC4wMDAiLCBzeW0pOworICAgICAgICBhc3NlcnRFcXVhbHMoc3ltLCBkZi5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LnNldERlY2ltYWxGb3JtYXRTeW1ib2xzKERlY2ltYWxGb3JtYXRTeW1ib2xzKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBkZi5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSQU5DRSkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjIzLDMzIiwgZGYuZm9ybWF0KGRzbWFsbCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZ2V0UG9zaXRpdmVQcmVmaXgoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0UG9zaXRpdmVQcmVmaXgoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiKyMsIyMwLiM7LSMsIyMwLiMiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIrIiwgZGYuZ2V0UG9zaXRpdmVQcmVmaXgoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5zZXRQb3NpdGl2ZVByZWZpeChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRQb3NpdGl2ZVByZWZpeCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIrIywjIzAuIzstIywjIzAuIyIpOworICAgICAgICBkZi5zZXRQb3NpdGl2ZVByZWZpeCgiPyIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIj8yMy4zIiwgZGYuZm9ybWF0KGRzbWFsbCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZ2V0TmVnYXRpdmVQcmVmaXgoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TmVnYXRpdmVQcmVmaXgoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiKyMsIyMwLiM7LSMsIyMwLiMiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCItIiwgZGYuZ2V0TmVnYXRpdmVQcmVmaXgoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5zZXROZWdhdGl2ZVByZWZpeChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXROZWdhdGl2ZVByZWZpeCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIrIywjIzAuIzstIywjIzAuIyIpOworICAgICAgICBkZi5zZXROZWdhdGl2ZVByZWZpeCgifiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIn4yMy4zIiwgZGYuZm9ybWF0KC1kc21hbGwpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LmdldFBvc2l0aXZlU3VmZml4KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFBvc2l0aXZlU3VmZml4KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIisjLCMjMC4jKio7LSMsIyMwLiN+fiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIioqIiwgZGYuZ2V0UG9zaXRpdmVTdWZmaXgoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5zZXRQb3NpdGl2ZVN1ZmZpeChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRQb3NpdGl2ZVN1ZmZpeCgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIrIywjIzAuIzstIywjIzAuIyIpOworICAgICAgICBkZi5zZXRQb3NpdGl2ZVN1ZmZpeCgiKioiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIrMjMuMyoqIiwgZGYuZm9ybWF0KGRzbWFsbCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZ2V0TmVnYXRpdmVTdWZmaXgoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TmVnYXRpdmVTdWZmaXgoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiKyMsIyMwLiMqKjstIywjIzAuI35+Iik7CisgICAgICAgIGFzc2VydEVxdWFscygifn4iLCBkZi5nZXROZWdhdGl2ZVN1ZmZpeCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LnNldE5lZ2F0aXZlU3VmZml4KFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldE5lZ2F0aXZlU3VmZml4KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIisjLCMjMC4jOy0jLCMjMC4jIik7CisgICAgICAgIGRmLnNldE5lZ2F0aXZlU3VmZml4KCJ+fiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIi0yMy4zfn4iLCBkZi5mb3JtYXQoLWRzbWFsbCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZ2V0TXVsdGlwbGllcigpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRNdWx0aXBsaWVyKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiUwMDAiKTsKKyAgICAgICAgZGYuc2V0TXVsdGlwbGllcigxMDAwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEwMDAsIGRmLmdldE11bHRpcGxpZXIoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5zZXRNdWx0aXBsaWVyKGludCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldE11bHRpcGxpZXIoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiJTAwMCIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIiUwMTIiLCBkZi5mb3JtYXQoLjEyMykpOworICAgICAgICBkZi5zZXRNdWx0aXBsaWVyKDEwMDApOworICAgICAgICBhc3NlcnRFcXVhbHMoIiUxMjMiLCBkZi5mb3JtYXQoLjEyMykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZ2V0R3JvdXBpbmdTaXplKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEdyb3VwaW5nU2l6ZSgpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMwLiMiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDIsIGRmLmdldEdyb3VwaW5nU2l6ZSgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LnNldEdyb3VwaW5nU2l6ZShpbnQpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRHcm91cGluZ1NpemUoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuIyMiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxLDIzNCw1NjcuODkiLCBkZi5mb3JtYXQoMTIzNDU2Ny44OSkpOworICAgICAgICBkZi5zZXRHcm91cGluZ1NpemUoMik7CisgICAgICAgIGFzc2VydEVxdWFscygiMSwyMyw0NSw2Ny44OSIsIGRmLmZvcm1hdCgxMjM0NTY3Ljg5KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5pc0RlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RJc0RlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLiMiKTsKKyAgICAgICAgZGYuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxIiwgZGYuZm9ybWF0KDEpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxLjIiLCBkZi5mb3JtYXQoMS4yKSk7CisgICAgICAgIGRmLnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bih0cnVlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxLiIsIGRmLmZvcm1hdCgxKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5zZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oYm9vbGVhbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLiMiKTsKKyAgICAgICAgZGYuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0RmFsc2UoZGYuaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKSk7CisgICAgICAgIGRmLnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bih0cnVlKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZShkZi5pc0RlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LnRvUGF0dGVybigpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RUb1BhdHRlcm4oKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuIyMiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIjLCMjMC4jIyIsIGRmLnRvUGF0dGVybigpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0LnRvTG9jYWxpemVkUGF0dGVybigpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RUb0xvY2FsaXplZFBhdHRlcm4oKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuIyMiLCBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSQU5DRSkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIiMsIyMwLiMjIiwgZGYudG9QYXR0ZXJuKCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIiNcdTAwYTAjIzAsIyMiLCBkZi50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5hcHBseVBhdHRlcm4oU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QXBwbHlQYXR0ZXJuKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLiMjIik7CisgICAgICAgIGRmLmFwcGx5UGF0dGVybigiIywwLiMiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxLDIsMy40IiwgZGYuZm9ybWF0KDEyMy40KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5hcHBseUxvY2FsaXplZFBhdHRlcm4oU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLiMjIiwgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5GUkFOQ0UpKTsKKyAgICAgICAgZGYuYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKCIjXHUwMGEwMCwjIik7CisgICAgICAgIGFzc2VydEVxdWFscygiMVx1MDBhMDJcdTAwYTAzLDQiLCBkZi5mb3JtYXQoMTIzLjQpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvSUNVVGVzdENhc2UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9JQ1VUZXN0Q2FzZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzZjIwMDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvSUNVVGVzdENhc2UuamF2YQpAQCAtMCwwICsxLDI4NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXN0czsKKworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5FeHRlcm5hbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuQXJyYXk7CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlOworCisvKioKKyAqIEltcGxlbWVudCBib2lsZXJwbGF0ZSB0ZXN0cy4KKyAqIEN1cnJlbnRseSB0aGVyZSBpcyBvbmx5IG9uZSBtZXRob2QsIHRlc3RFSENTLCB3aGljaCB0ZXN0cyBlcXVhbHMsIGhhc2hDb2RlLCAKKyAqIGNsb25lLCBhbmQgc2VyaWFsaXphdGlvbi4KKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIElDVVRlc3RDYXNlIGV4dGVuZHMgVGVzdENhc2UgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdFtdIEVNUFRZX0FSR1MgPSB7fTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBDbGFzc1tdIEVNUFRZX0NMQVNTRVMgPSB7fTsKKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9jYWxlIG9sZExvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVUxvY2FsZSBvbGRVTG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS51dGlsLlRpbWVab25lIG9sZEpUaW1lWm9uZSA9IGphdmEudXRpbC5UaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGltZVpvbmUgb2xkSVRpbWVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgICAgIAorICAgIC8vIFRPRE86IHdoYXQncyB0aGUgYmVzdCB3YXkgdG8gY2hlY2sgdGhpcz8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gdGVzdGluZ1dyYXBwZXIgPSB0cnVlOworCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgc3VwZXIuc2V0VXAoKTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLlVTKTsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KFVMb2NhbGUuVVMpOworICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUuc2V0RGVmYXVsdChqYXZhLnV0aWwuVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpKTsKKyAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIikpOworICAgIH0KKyAgICAgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgdGVhckRvd24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KG9sZFVMb2NhbGUpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChvbGRMb2NhbGUpOworICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KG9sZElUaW1lWm9uZSk7CisgICAgICAgIGphdmEudXRpbC5UaW1lWm9uZS5zZXREZWZhdWx0KG9sZEpUaW1lWm9uZSk7CisgICAgICAgIHN1cGVyLnRlYXJEb3duKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0IHRlc3QgPSBuZXcgT2JqZWN0KCk7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFzc2VydCB0aGF0IHR3byBvYmplY3RzIGFyZSBfbm90XyBlcXVhbC4gIEN1cmlvdXNseSBtaXNzaW5nIGZyb20gQXNzZXJ0LgorICAgICAqIEBwYXJhbSBsaHMgYW4gb2JqZWN0IHRvIHRlc3QsIG1heSBiZSBudWxsCisgICAgICogQHBhcmFtIHJocyBhbiBvYmplY3QgdG8gdGVzdCwgbWF5IGJlIG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXNzZXJ0Tm90RXF1YWwoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICBpZiAobGhzID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChyaHMgPT0gbnVsbCkgZmFpbCgibnVsbCBlcXVhbHMgbnVsbCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGxocy5lcXVhbHMocmhzKSkgeworICAgICAgICAgICAgICAgIGZhaWwobGhzLnRvU3RyaW5nKCkgKyAiIGVxdWFscyAiICsgcmhzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFzc2VydE5vdEVxdWFsKGxvbmcgbGhzLCBsb25nIHJocykgeworICAgICAgICBpZiAobGhzID09IHJocykgeworICAgICAgICAgICAgZmFpbCgidmFsdWVzIGFyZSBlcXVhbDogIiArIGxocyk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFRlc3Qgd2hldGhlciBlcXVhbGl0eSwgaGFzaENvZGUsIGNsb25lLCBhbmQgc2VyaWFsaXphdGlvbiB3b3JrIGFzIGV4cGVjdGVkLiAgCisgICAgICogRXF1YWxzKE9iamVjdCkgaXMgYXNzdW1lZCB0byByZXR1cm4gZmFsc2UgKG5vdCB0aHJvdyBhbiBleGNlcHRpb24pIGlmIHBhc3NlZCAKKyAgICAgKiBudWxsIG9yIGFuIG9iamVjdCBvZiBhbiBpbmNvbXBhdGlibGUgY2xhc3MuCisgICAgICogSGFzaGNvZGVzIG11c3QgYmUgZXF1YWwgaWZmIHRoZSB0d28gb2JqZWN0cyBjb21wYXJlIGVxdWFsLiAgTm8gYXR0ZW1wdCBpcyBtYWRlIHRvCisgICAgICogZXZhbHVhdGUgdGhlIHF1YWxpdHkgb2YgdGhlIGhhc2hjb2RlIGRpc3RyaWJ1dGlvbiwgc28gKGluIHBhcnRpY3VsYXIpIGRlZ2VuZXJhdGUgCisgICAgICogaGFzaGNvZGUgaW1wbGVtZW50YXRpb25zIHdpbGwgcGFzcyB0aGlzIHRlc3QuCisgICAgICogQ2xvbmUgd2lsbCBiZSB0ZXN0ZWQgaWYgdGhlIG1ldGhvZCAiY2xvbmUiIGlzIHB1YmxpYyBvbiB0aGUgY2xhc3Mgb2Ygb2JqLiAgCisgICAgICogSXQgaXMgYXNzdW1lZCB0byByZXR1cm4gYW4gb2JqZWN0IHRoYXQgY29tcGFyZXMgZXF1YWwgdG8gb2JqLgorICAgICAqIFNlcmlhbGl6YXRpb24gd2lsbCBiZSB0ZXN0ZWQgaWYgb2JqZWN0IGltcGxlbWVudHMgU2VyaWFsaXphYmxlIG9yIEV4dGVybmFsaXphYmxlLgorICAgICAqIEl0IGlzIGFzc3VtZWQgdGhlIHNlcmlhbGl6ZWQvZGVzZXJpYWxpemVkIG9iamVjdCBjb21wYXJlcyBlcXVhbCB0byBvYmouCisgICAgICogQHBhcmFtIG9iaiB0aGUgb2JqZWN0IHRvIHRlc3QKKyAgICAgKiBAcGFyYW0gZXEgYW4gb2JqZWN0IHRoYXQgc2hvdWxkIGNvbXBhcmUgZXF1YWwgdG8sIGJ1dCBpcyBub3QgdGhlIHNhbWUgYXMsIG9iai4gIAorICAgICAqICAgICBpdCBzaG91bGQgYmUgYXNzaWduYWJsZSB0byB0aGUgY2xhc3Mgb2Ygb2JqLgorICAgICAqIEBwYXJhbSBuZXEgYSBub24tbnVsbCBvYmplY3QgdGhhdCBzaG91bGQgbm90IGNvbXBhcmUgZXF1YWwgdG8gb2JqLiAgCisgICAgICogICAgIGl0IHNob3VsZCBiZSBhc3NpZ25hYmxlIHRvIHRoZSBjbGFzcyBvZiBvYmouCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHRlc3RFSENTKE9iamVjdCBvYmosIE9iamVjdCBlcSwgT2JqZWN0IG5lcSkgeworICAgICAgICBpZiAob2JqID09IG51bGwgfHwgZXEgPT0gbnVsbCB8fCBuZXEgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgQ2xhc3MgY2xzID0gb2JqLmdldENsYXNzKCk7CisgICAgICAgIGlmICghKGNscy5pc0Fzc2lnbmFibGVGcm9tKGVxLmdldENsYXNzKCkpICYmIGNscy5pc0Fzc2lnbmFibGVGcm9tKG5lcS5nZXRDbGFzcygpKSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInVuYXNzaWduYWJsZSBjbGFzc2VzIik7CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLy8gcmVmbGV4aXZlCisgICAgICAgIGFzc2VydEVxdWFscyhvYmosIG9iaik7CisgICAgICAgICAgICAgICAgCisgICAgICAgIC8vIHNob3VsZCByZXR1cm4gZmFsc2UsIG5vdCB0aHJvdyBleGNlcHRpb24KKyAgICAgICAgYXNzZXJ0Tm90RXF1YWwob2JqLCB0ZXN0KTsKKyAgICAgICAgYXNzZXJ0Tm90RXF1YWwob2JqLCBudWxsKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLy8gY29tbXV0YXRpdmUKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG9iaiwgZXEpOworICAgICAgICBhc3NlcnRFcXVhbHMoZXEsIG9iaik7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGFzc2VydE5vdEVxdWFsKG9iaiwgbmVxKTsKKyAgICAgICAgYXNzZXJ0Tm90RXF1YWwobmVxLCBvYmopOworICAgICAgICAgICAgICAgIAorICAgICAgICAvLyBlcXVhbCBvYmplY3RzIE1VU1QgaGF2ZSBlcXVhbCBoYXNoZXMsIHVuZXF1YWwgb2JqZWN0cyBNQVkgaGF2ZSBlcXVhbCBoYXNoZXMKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG9iai5oYXNoQ29kZSgpLCBlcS5oYXNoQ29kZSgpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgT2JqZWN0IGNsb25lID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIGxvb2sgZm9yIHB1YmxpYyBjbG9uZSBtZXRob2QgYW5kIGNhbGwgaXQgaWYgYXZhaWxhYmxlCisgICAgICAgICAgICBNZXRob2QgbWV0aG9kX2Nsb25lID0gY2xzLmdldE1ldGhvZCgiY2xvbmUiLCBFTVBUWV9DTEFTU0VTKTsKKyAgICAgICAgICAgIGNsb25lID0gbWV0aG9kX2Nsb25lLmludm9rZShvYmosIEVNUFRZX0FSR1MpOworICAgICAgICAgICAgYXNzZXJ0Tm90TnVsbChjbG9uZSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIG9rCisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBvaworICAgICAgICB9CisgICAgICAgIGNhdGNoKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gb2sKKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAoY2xvbmUgIT0gbnVsbCkgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKG9iaiwgY2xvbmUpOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKGNsb25lLCBvYmopOworICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBTZXJpYWxpemFibGUgfHwgb2JqIGluc3RhbmNlb2YgRXh0ZXJuYWxpemFibGUpIHsKKyAgICAgICAgICAgIE9iamVjdCBzZXIgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYm9zID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOworICAgICAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvb3MgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJvcyk7CisgICAgICAgICAgICAgICAgb29zLndyaXRlT2JqZWN0KGNsb25lKTsKKyAgICAgICAgICAgICAgICBvb3MuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0gYmlzID0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJvcy50b0J5dGVBcnJheSgpKTsKKyAgICAgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaXMgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oYmlzKTsKKyAgICAgICAgICAgICAgICBzZXIgPSBvaXMucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgIG9pcy5jbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMob2JqLCBzZXIpOworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscyhzZXIsIG9iaik7CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKG9iai5oYXNoQ29kZSgpLCBzZXIuaGFzaENvZGUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGYWlsIGlmIHRoZSBhcnJheXMgYXJlIG5vdCBlcXVhbC4gIFRvIGJlIGVxdWFsLCB0aGUgYXJyYXlzIG11c3QKKyAgICAgKiBiZSB0aGUgc2FtZSBsZW5ndGgsIGFuZCBlYWNoIGVsZW1lbnQgaW4gdGhlIGxlZnQgYXJyYXkgbXVzdCBjb21wYXJlCisgICAgICogZXF1YWwgdG8gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiB0aGUgcmlnaHQgYXJyYXkuCisgICAgICogQWxzbyBmYWlscyBpZiBvbmUgb2YgdGhlIG9iamVjdHMgaXMgbm90IGFuIGFycmF5LgorICAgICAqIEBwYXJhbSBsaHMgdGhlIGxlZnQgYXJyYXkKKyAgICAgKiBAcGFyYW0gcmhzIHRoZSByaWdodCBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhc3NlcnRBcnJheXNFcXVhbChPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgICAgIENsYXNzIGxjbHMgPSBsaHMuZ2V0Q2xhc3MoKTsKKyAgICAgICAgQ2xhc3MgcmNscyA9IHJocy5nZXRDbGFzcygpOworICAgICAgICBpZiAoIShsY2xzLmlzQXJyYXkoKSAmJiByY2xzLmlzQXJyYXkoKSkpIHsKKyAgICAgICAgICAgIGZhaWwoIm9iamVjdHMgYXJlIG5vdCBhcnJheXMiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcmVzdWx0ID0gYXJyYXlzQXJlRXF1YWwobGhzLCByaHMpOworICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZhaWwocmVzdWx0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEZhaWwgaWYgdGhlIGFycmF5cyBhcmUgZXF1YWwuICBBbHNvIGZhaWxzIGlmIG9uZSBvciB0aGUgb3RoZXIgCisgICAgICogYXJndW1lbnQgaXMgbm90IGFuIGFycmF5LgorICAgICAqIEBwYXJhbSBsaHMgdGhlIGxlZnQgYXJyYXkKKyAgICAgKiBAcGFyYW0gcmhzIHRoZSByaWdodCBhcnJheQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhc3NlcnRBcnJheXNOb3RFcXVhbChPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgICAgIENsYXNzIGxjbHMgPSBsaHMuZ2V0Q2xhc3MoKTsKKyAgICAgICAgQ2xhc3MgcmNscyA9IHJocy5nZXRDbGFzcygpOworICAgICAgICBpZiAoIShsY2xzLmlzQXJyYXkoKSAmJiByY2xzLmlzQXJyYXkoKSkpIHsKKyAgICAgICAgICAgIGZhaWwoIm9iamVjdHMgYXJlIG5vdCBhcnJheXMiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcmVzdWx0ID0gYXJyYXlzQXJlRXF1YWwobGhzLCByaHMpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGZhaWwoImFycmF5cyBhcmUgZXF1YWwiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLy8gc2xvdyBidXQgZ2VuZXJhbAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBhcnJheXNBcmVFcXVhbChPYmplY3QgbGhzYSwgT2JqZWN0IHJoc2EpIHsKKyAgICAgICAgaW50IGxoc2wgPSBBcnJheS5nZXRMZW5ndGgobGhzYSk7CisgICAgICAgIGludCByaHNsID0gQXJyYXkuZ2V0TGVuZ3RoKHJoc2EpOworICAgICAgICBpZiAobGhzbCAhPSByaHNsKSB7CisgICAgICAgICAgICByZXR1cm4gImxlbmd0aCAiICsgbGhzbCArICIgIT0gIiArIHJoc2w7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiBsaHNhQSA9IGxoc2EuZ2V0Q2xhc3MoKS5nZXRDb21wb25lbnRUeXBlKCkuaXNBcnJheSgpOworICAgICAgICBib29sZWFuIHJoc2FBID0gcmhzYS5nZXRDbGFzcygpLmdldENvbXBvbmVudFR5cGUoKS5pc0FycmF5KCk7CisgICAgICAgIGlmIChsaHNhQSAhPSByaHNhQSkgeworICAgICAgICAgICAgcmV0dXJuIChsaHNhQSA/ICIiIDogIm5vbi0iKSArICJhcnJheSAhPSAiICsgKHJoc2FBID8gIiIgOiAibm9uLSIpICsgImFycmF5IjsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxoc2w7ICsraSkgeworICAgICAgICAgICAgT2JqZWN0IGxoc2UgPSBBcnJheS5nZXQobGhzYSwgaSk7CisgICAgICAgICAgICBPYmplY3QgcmhzZSA9IEFycmF5LmdldChyaHNhLCBpKTsKKyAgICAgICAgICAgIGlmIChsaHNlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAocmhzZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAibnVsbCAhPSAiICsgcmhzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChsaHNhQSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gYXJyYXlzQXJlRXF1YWwobGhzZSwgcmhzZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5jaGFyQXQoMCkgIT0gJ1snKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gIiAiICsgcmVzdWx0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJbIiArIGkgKyAiXSIgKyByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWxoc2UuZXF1YWxzKHJoc2UpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGhzZS50b1N0cmluZygpICsgIiAhPSAiICsgcmhzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgICAgIAorICAgIC8vIG11Y2ggbW9yZSBwYWluZnVsIGFuZCBzbG93IHRoYW4gaXQgc2hvdWxkIGJlLi4uIHBhcnRseSBiZWNhdXNlIG9mIHRoZQorICAgIC8vIG9kZG5lc3Mgb2YgY2xvbmUsIHBhcnRseSBiZWNhdXNlIGFycmF5cyBkb24ndCBwcm92aWRlIGEgTWV0aG9kIGZvciAKKyAgICAvLyAnY2xvbmUnIGRlc3BpdGUgdGhlIGZhY3QgdGhhdCB0aGV5IGltcGxlbWVudCBpdCBhbmQgbWFrZSBpdCBwdWJsaWMuCisgICAgcHVibGljIHN0YXRpYyBPYmplY3QgY2xvbmVDb21wbGV4KE9iamVjdCBvYmopIHsKKyAgICAgICAgT2JqZWN0IHJlc3VsdCA9IG51bGw7CisgICAgICAgIGlmIChvYmogIT0gbnVsbCkgeworICAgICAgICAgICAgQ2xhc3MgY2xzID0gb2JqLmdldENsYXNzKCk7CisgICAgICAgICAgICBpZiAoY2xzLmlzQXJyYXkoKSkgeworICAgICAgICAgICAgICAgIGludCBsZW4gPSBBcnJheS5nZXRMZW5ndGgob2JqKTsKKyAgICAgICAgICAgICAgICBDbGFzcyB0eXAgPSBjbHMuZ2V0Q29tcG9uZW50VHlwZSgpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IEFycmF5Lm5ld0luc3RhbmNlKHR5cCwgbGVuKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIHByaW0gPSB0eXAuaXNQcmltaXRpdmUoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIE9iamVjdCBlbGVtID0gQXJyYXkuZ2V0KG9iaiwgaSk7CisgICAgICAgICAgICAgICAgICAgIEFycmF5LnNldChyZXN1bHQsIGksIHByaW0gPyBlbGVtIDogY2xvbmVDb21wbGV4KGVsZW0pKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG9iajsgLy8gZGVmYXVsdAorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIE1ldGhvZCBjbG9uZU0gPSBjbHMuZ2V0TWV0aG9kKCJjbG9uZSIsIG51bGwpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBjbG9uZU0uaW52b2tlKG9iaiwgbnVsbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChOb1N1Y2hNZXRob2RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvTWVzc2FnZUZvcm1hdFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9NZXNzYWdlRm9ybWF0VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4MzkwNTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvTWVzc2FnZUZvcm1hdFRlc3QuamF2YQpAQCAtMCwwICsxLDMwNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBNZXNzYWdlRm9ybWF0VGVzdCBleHRlbmRzIElDVVRlc3RDYXNlIHsKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gIkRlbGV0ZWQgezAsbnVtYmVyfSBmaWxlcyBhdCB7MSx0aW1lLHNob3J0fSBvbiB7MSxkYXRlfS4iOworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIGFsdFBhdHRlcm4gPSAiRGVsZXRlZCB7MCwgIG51bWJlciB9IGZpbGVzIGF0IHsxLCB0aW1lLCBzaG9ydH0gb24gezEsIGRhdGV9LiI7CisgICAgcHJpdmF0ZSBmaW5hbCBEYXRlIGRhdGUgPSBuZXcgRGF0ZSg3MTY2OTg4OTA4MzVMKTsKKyAgICBwcml2YXRlIGZpbmFsIE51bWJlciBudW0gPSBuZXcgTG9uZygzNDU2KTsKKyAgICBwcml2YXRlIGZpbmFsIE9iamVjdFtdIGFyZ3MgPSB7IG51bSwgZGF0ZSB9OworICAgIHByaXZhdGUgZmluYWwgRGF0ZSBkYXRlT25seSA9IG5ldyBEYXRlKDcxNjYyNjgwMDAwMEwpOworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIGVuZ2xpc2hUYXJnZXQgPSAiRGVsZXRlZCAzLDQ1NiBmaWxlcyBhdCA4OjAxIFBNIG9uIFNlcCAxNiwgMTk5Mi4iOworICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIGdlcm1hblRhcmdldCA9ICJEZWxldGVkIDMuNDU2IGZpbGVzIGF0IDIwOjAxIG9uIDE2LjA5LjE5OTIuIjsKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBtb2RpZmllZFRhcmdldCA9ICJEZWxldGVkIDMsNDU2IGZpbGVzIGF0IDg6MDE6MzAgUE0gUERUIG9uIFNlcCAxNiwgMTk5Mi4iOworICAgIAorICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuaGFzaENvZGUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SGFzaENvZGUoKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBlcSA9IG5ldyBNZXNzYWdlRm9ybWF0KGFsdFBhdHRlcm4pOworICAgICAgICBNZXNzYWdlRm9ybWF0IG5lID0gbmV3IE1lc3NhZ2VGb3JtYXQoIkRlbGV0ZWQgKDAsIG51bWJlciwgY3VycmVuY3l9IGZpbGVzIGF0IHsxLCB0aW1lfSBvbiB7MSwgZGF0ZX0uIik7CisgICAgICAgIHRlc3RFSENTKG1mLCBlcSwgbmUpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuTWVzc2FnZUZvcm1hdChNZXNzYWdlRm9ybWF0KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0TWVzc2FnZUZvcm1hdE1lc3NhZ2VGb3JtYXQoKSB7CisgICAgICAgIC8vIGltcGxpY2l0bHkgdGVzdGVkIGV2ZXJ5d2hlcmUKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0Lk1lc3NhZ2VGb3JtYXQoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0TWVzc2FnZUZvcm1hdFN0cmluZygpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4pOworICAgICAgICBhc3NlcnRFcXVhbHMoZW5nbGlzaFRhcmdldCwgbWYuZm9ybWF0KGFyZ3MpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0Lk1lc3NhZ2VGb3JtYXQoU3RyaW5nLCBMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RNZXNzYWdlRm9ybWF0U3RyaW5nTG9jYWxlKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGVuZ2xpc2hUYXJnZXQsIG1mLmZvcm1hdChhcmdzKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5NZXNzYWdlRm9ybWF0KFN0cmluZywgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdE1lc3NhZ2VGb3JtYXRTdHJpbmdVTG9jYWxlKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgVUxvY2FsZS5VUyk7CisgICAgICAgIGFzc2VydEVxdWFscyhlbmdsaXNoVGFyZ2V0LCBtZi5mb3JtYXQoYXJncykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuc2V0TG9jYWxlKExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldExvY2FsZUxvY2FsZSgpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIG1mLnNldExvY2FsZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIG1mLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGdlcm1hblRhcmdldCwgbWYuZm9ybWF0KGFyZ3MpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LnNldExvY2FsZShVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0TG9jYWxlVUxvY2FsZSgpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIG1mLnNldExvY2FsZShVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBtZi5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIGFzc2VydEVxdWFscyhnZXJtYW5UYXJnZXQsIG1mLmZvcm1hdChhcmdzKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5nZXRMb2NhbGUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TG9jYWxlKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgbWYuc2V0TG9jYWxlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKExvY2FsZS5HRVJNQU5ZLCBtZi5nZXRMb2NhbGUoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5nZXRVTG9jYWxlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFVMb2NhbGUoKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBtZi5zZXRMb2NhbGUoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKFVMb2NhbGUuR0VSTUFOWSwgbWYuZ2V0VUxvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LmFwcGx5UGF0dGVybihTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RBcHBseVBhdHRlcm4oKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdCgiZm9vIik7CisgICAgICAgIG1mLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGVuZ2xpc2hUYXJnZXQsIG1mLmZvcm1hdChhcmdzKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC50b1BhdHRlcm4oKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0VG9QYXR0ZXJuKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoYWx0UGF0dGVybik7CisgICAgICAgIGFzc2VydEVxdWFscyhwYXR0ZXJuLCBtZi50b1BhdHRlcm4oKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5zZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KEZvcm1hdFtdKScKKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleCgpIHsKKyAgICAgICAgLy8gdGhpcyBhcGkgaXMgYnJva2VuLiAgaWYgdGhlIHNhbWUgYXJndW1lbnQgaXMgdXNlZCB0d2ljZSB3aXRoIHR3byBkaWZmZXJlbnQKKyAgICAgICAgLy8gZm9ybWF0cywgdGhpcyBjYW4ndCBiZSB1c2VkLCBzaW5jZSBpdCBzZXRzIG9ubHkgb25lIGZvcm1hdCBwZXIgYXJndW1lbnQuCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBGb3JtYXRbXSBmb3JtYXRzID0geworICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSgpLAorICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCksCisgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpLAorICAgICAgICB9OworICAgICAgICBtZi5zZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KGZvcm1hdHMpOworICAgICAgICBhc3NlcnRFcXVhbHMoYnJva2VuQnV0Q29uZm9ybWFudFRhcmdldCwgbWYuZm9ybWF0KGFyZ3MpKTsKKyAgICB9CisgICAgICovCisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LnNldEZvcm1hdHMoRm9ybWF0W10pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRGb3JtYXRzKCkgeworICAgICAgICAvLyB0aGlzIGFwaSwgd2hpbGUgaXQgaGFzIHRoZSBwcm9ibGVtIHRoYXQgdGhlIG9yZGVyIG9mIGZvcm1hdHMgZGVwZW5kcworICAgICAgICAvLyBvbiB0aGUgb3JkZXIgaW4gdGhlIHN0cmluZywgYXQgbGVhc3QgbGV0cyB5b3Ugc2V0IGFsbCB0aGUgZm9ybWF0cy4KKyAgICAgICAgCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBGb3JtYXRbXSBmb3JtYXRzID0geworICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSgpLAorICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCksCisgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpLAorICAgICAgICB9OworICAgICAgICBtZi5zZXRGb3JtYXRzKGZvcm1hdHMpOworICAgICAgICBhc3NlcnRFcXVhbHMoZW5nbGlzaFRhcmdldCwgbWYuZm9ybWF0KGFyZ3MpKTsKKyAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuc2V0Rm9ybWF0QnlBcmd1bWVudEluZGV4KGludCwgRm9ybWF0KScKKyAgICAgcHVibGljIHZvaWQgdGVzdFNldEZvcm1hdEJ5QXJndW1lbnRJbmRleCgpIHsKKyAgICAgICAgLy8gc2FtZSBwcm9ibGVtLCBvbmNlIHlvdSBzZXQgYSBmb3JtYXQgZm9yIGFuIGFyZ3VtZW50LCB5b3UndmUgc2V0IGFsbCBvZiB0aGVtCisgICAgICAgIAorICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgbWYuc2V0Rm9ybWF0QnlBcmd1bWVudEluZGV4KDEsIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGJyb2tlbkJ1dENvbmZvcm1hbnRUYXJnZXQsIG1mLmZvcm1hdChhcmdzKSk7CisKKyAgICB9CisgICAgKi8KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuc2V0Rm9ybWF0KGludCwgRm9ybWF0KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0Rm9ybWF0KCkgeworICAgICAgICAvLyBhbmQgb2sgYWdhaW4gICAgICAgIAorICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgbWYuc2V0Rm9ybWF0KDEsIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORykpOworICAgICAgICBhc3NlcnRFcXVhbHMobW9kaWZpZWRUYXJnZXQsIG1mLmZvcm1hdChhcmdzKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5nZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KCknCisgICAgcHVibGljIHZvaWQgdGVzdEdldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXgoKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBGb3JtYXRbXSBmb3JtYXRzID0gbWYuZ2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleCgpOworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGZvcm1hdHNbMF0sIG5mKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgTG9jYWxlLlVTKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGZvcm1hdHNbMV0sIGRmKTsKKyAgICB9CisgICAgICovCisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LmdldEZvcm1hdHMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0Rm9ybWF0cygpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIEZvcm1hdFtdIGZvcm1hdHMgPSBtZi5nZXRGb3JtYXRzKCk7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBhc3NlcnRFcXVhbHMoZm9ybWF0c1swXSwgbmYpOworICAgICAgICBEYXRlRm9ybWF0IHRmID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgTG9jYWxlLlVTKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGZvcm1hdHNbMV0sIHRmKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgTG9jYWxlLlVTKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGZvcm1hdHNbMl0sIGRmKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LmZvcm1hdChPYmplY3RbXSwgU3RyaW5nQnVmZmVyLCBGaWVsZFBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0T2JqZWN0QXJyYXlTdHJpbmdCdWZmZXJGaWVsZFBvc2l0aW9uKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBtZi5mb3JtYXQoYXJncywgYnVmLCBmcCk7CisgICAgICAgIGFzc2VydEVxdWFscyhlbmdsaXNoVGFyZ2V0LCBidWYudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5mb3JtYXQoU3RyaW5nLCBPYmplY3RbXSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvcm1hdFN0cmluZ09iamVjdEFycmF5KCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoZW5nbGlzaFRhcmdldCwgTWVzc2FnZUZvcm1hdC5mb3JtYXQocGF0dGVybiwgYXJncykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuZm9ybWF0KE9iamVjdCwgU3RyaW5nQnVmZmVyLCBGaWVsZFBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0T2JqZWN0U3RyaW5nQnVmZmVyRmllbGRQb3NpdGlvbigpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4sIExvY2FsZS5VUyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnAgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgbWYuZm9ybWF0KChPYmplY3QpYXJncywgYnVmLCBmcCk7CisgICAgICAgIGFzc2VydEVxdWFscyhlbmdsaXNoVGFyZ2V0LCBidWYudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5wYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RQYXJzZVN0cmluZ1BhcnNlUG9zaXRpb24oKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMSk7CisgICAgICAgIE9iamVjdFtdIHJlc3VsdCA9IG1mLnBhcnNlKCIhIiArIGVuZ2xpc2hUYXJnZXQsIHBwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG51bSwgcmVzdWx0WzBdKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGRhdGVPbmx5LCByZXN1bHRbMV0pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQucGFyc2UoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0UGFyc2VTdHJpbmcoKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgT2JqZWN0W10gcmVzdWx0ID0gbWYucGFyc2UoZW5nbGlzaFRhcmdldCk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMobnVtLCByZXN1bHRbMF0pOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKGRhdGVPbmx5LCByZXN1bHRbMV0pOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBmYWlsKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQucGFyc2VPYmplY3QoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0UGFyc2VPYmplY3RTdHJpbmdQYXJzZVBvc2l0aW9uKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwcCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBPYmplY3QgcmVzdWx0ID0gbWYucGFyc2VPYmplY3QoZW5nbGlzaFRhcmdldCwgcHApOworICAgICAgICBhc3NlcnRFcXVhbHMobnVtLCAoKE9iamVjdFtdKXJlc3VsdClbMF0pOworICAgICAgICBhc3NlcnRFcXVhbHMoZGF0ZU9ubHksICgoT2JqZWN0W10pcmVzdWx0KVsxXSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC5hdXRvUXVvdGVBcG9zdHJvcGhlKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEF1dG9RdW90ZUFwb3N0cm9waGUoKSB7CisgICAgICAgIFN0cmluZyBzdHIgPSAiTGV0J3MgbWVldCBhdCB7MSx0aW1lLGggJ28nJyBjbG9jayd9IGF0IGwnT3JhbmdlIEJsZXVlIjsKKyAgICAgICAgU3RyaW5nIHBhdCA9IE1lc3NhZ2VGb3JtYXQuYXV0b1F1b3RlQXBvc3Ryb3BoZShzdHIpOworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0LCBMb2NhbGUuVVMpOworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbWYuZm9ybWF0KGFyZ3MpOworICAgICAgICBhc3NlcnRFcXVhbHMoIkxldCdzIG1lZXQgYXQgOCBvJyBjbG9jayBhdCBsJ09yYW5nZSBCbGV1ZSIsIHJlc3VsdCk7CisgICAgICAgIGFzc2VydEVxdWFscygiTGV0JydzIG1lZXQgYXQgezEsdGltZSxoICdvJycgY2xvY2snfSBhdCBsJydPcmFuZ2UgQmxldWUiLCBwYXQpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuY2xvbmUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q2xvbmUoKSB7CisgICAgICAgIC8vIHRlc3RlZCBhbHJlYWR5IGluIHRlc3RIYXNoY29kZQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuZXF1YWxzKE9iamVjdCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEVxdWFsc09iamVjdCgpIHsKKyAgICAgICAgLy8gdGVzdGVkIGFscmVhZHkgaW4gdGVzdEhhc2hjb2RlCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdC50b1N0cmluZygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RUb1N0cmluZygpIHsKKyAgICAgICAgLy8gbm8gbmVlZCB0byB0ZXN0CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL051bWJlckZvcm1hdFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9OdW1iZXJGb3JtYXRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ2YWIyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9OdW1iZXJGb3JtYXRUZXN0LmphdmEKQEAgLTAsMCArMSw0NDEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGVzdHM7CisKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIE51bWJlckZvcm1hdFRlc3QgZXh0ZW5kcyBJQ1VUZXN0Q2FzZSB7CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5OdW1iZXJGb3JtYXQoTnVtYmVyRm9ybWF0KScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0TnVtYmVyRm9ybWF0KCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBuZXcgTnVtYmVyRm9ybWF0KGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKSk7CisgICAgICAgIGFzc2VydEVxdWFscyhuZiwgTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmZvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvcm1hdE9iamVjdFN0cmluZ0J1ZmZlckZpZWxkUG9zaXRpb24oKSB7CisgICAgICAgIE51bWJlciBudW0gPSBuZXcgTG9uZygxMjM0TCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnAgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkuZm9ybWF0KG51bSwgYnVmLCBmcCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMSwyMzQiLCBidWYudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQucGFyc2VPYmplY3QoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0UGFyc2VPYmplY3RTdHJpbmdQYXJzZVBvc2l0aW9uKCkgeworICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIE9iamVjdCByZXN1bHQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5wYXJzZSgiMSwyMzQiLCBwcCk7CisgICAgICAgIGFzc2VydEVxdWFscyhyZXN1bHQsIG5ldyBMb25nKDEyMzQpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5mb3JtYXQoZG91YmxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0RG91YmxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoIjEsMjM0LjU2NyIsIE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLmZvcm1hdCgxMjM0LjU2NykpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmZvcm1hdChsb25nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0TG9uZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxLDIzNCIsIE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLmZvcm1hdCgxMjM0TCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmZvcm1hdChCaWdJbnRlZ2VyKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0QmlnSW50ZWdlcigpIHsKKyAgICAgICAgLy8gbm90ZSwgamF2YSBkb2Vzbid0IGhhbmRsZSBiaWdpbnRlZ2VyIHdpdGggZnVsbCBwcmVjaXNpb24uCisgICAgICAgIEJpZ0ludGVnZXIgYmkgPSBuZXcgQmlnSW50ZWdlcigiMTIzNDU2Iik7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1NiIsIGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5mb3JtYXQoYmkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5mb3JtYXQoZG91YmxlLCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RGb3JtYXREb3VibGVTdHJpbmdCdWZmZXJGaWVsZFBvc2l0aW9uKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1Ni43ODkiLCBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5mb3JtYXQoMTIzNDU2Ljc4OSwgYnVmLCBmcCkudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZm9ybWF0KGxvbmcsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvcm1hdExvbmdTdHJpbmdCdWZmZXJGaWVsZFBvc2l0aW9uKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1NiIsIE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLmZvcm1hdCgxMjM0NTZMLCBidWYsIGZwKS50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5mb3JtYXQoQmlnSW50ZWdlciwgU3RyaW5nQnVmZmVyLCBGaWVsZFBvc2l0aW9uKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Rm9ybWF0QmlnSW50ZWdlclN0cmluZ0J1ZmZlckZpZWxkUG9zaXRpb24oKSB7CisgICAgICAgIC8vIG5vdGUsIGphdmEgZG9lc24ndCBoYW5kbGUgYmlnaW50ZWdlciB3aXRoIGZ1bGwgcHJlY2lzaW9uLgorICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEJpZ0ludGVnZXIgYmkgPSBuZXcgQmlnSW50ZWdlcigiMTIzNDU2Iik7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1NiIsIGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5mb3JtYXQoYmksIGJ1ZiwgZnApLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LnBhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFBhcnNlU3RyaW5nUGFyc2VQb3NpdGlvbigpIHsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwcCA9IG5ldyBQYXJzZVBvc2l0aW9uKDMpOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IExvbmcoMTIzNDU2KSwgTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkucGFyc2UoInh4eDEyMyw0NTZ5eXkiLCBwcCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoMTAsIHBwLmdldEluZGV4KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LnBhcnNlKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFBhcnNlU3RyaW5nKCkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgTnVtYmVyIHJlc3VsdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLnBhcnNlKCIxMjMsNDU2LHl5eSIpOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IExvbmcoMTIzNDU2KSwgcmVzdWx0KTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5pc1BhcnNlSW50ZWdlck9ubHkoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SXNQYXJzZUludGVnZXJPbmx5KCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0UGFyc2VJbnRlZ2VyT25seSh0cnVlKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZShuZi5pc1BhcnNlSW50ZWdlck9ubHkoKSk7CisgICAgICAgIG5mLnNldFBhcnNlSW50ZWdlck9ubHkoZmFsc2UpOworICAgICAgICBhc3NlcnRGYWxzZShuZi5pc1BhcnNlSW50ZWdlck9ubHkoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuc2V0UGFyc2VJbnRlZ2VyT25seShib29sZWFuKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0UGFyc2VJbnRlZ2VyT25seSgpIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyBzdHIgPSAiMTIzLjQ1Nix5eXkiOworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG5ldyBEb3VibGUoMTIzLjQ1NiksIG5mLnBhcnNlKHN0cikpOworICAgICAgICBuZi5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IExvbmcoMTIzKSwgbmYucGFyc2Uoc3RyKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SW5zdGFuY2UoKSB7CisgICAgICAgIC8vIHVzZWQgZXZlcnl3aGVyZSwgbm8gbmVlZCB0byB0ZXN0CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SW5zdGFuY2VMb2NhbGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1NiIsIG5mLmZvcm1hdCgxMjMuNDU2KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEluc3RhbmNlVUxvY2FsZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1NiIsIG5mLmZvcm1hdCgxMjMuNDU2KSk7ICAgICAgICAgICAgCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TnVtYmVySW5zdGFuY2UoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMyw0NTYuNzg5IiwgbmYuZm9ybWF0KDEyMzQ1Ni43ODkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXROdW1iZXJJbnN0YW5jZUxvY2FsZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxMjMuNDU2LDc4OSIsIG5mLmZvcm1hdCgxMjM0NTYuNzg5KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldE51bWJlckluc3RhbmNlVUxvY2FsZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLjQ1Niw3ODkiLCBuZi5mb3JtYXQoMTIzNDU2Ljc4OSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRJbnRlZ2VySW5zdGFuY2UoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxMjMsNDU3IiwgbmYuZm9ybWF0KDEyMzQ1Ni43ODkpKTsgLy8gcm91bmRzCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEludGVnZXJJbnN0YW5jZUxvY2FsZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLjQ1NyIsIG5mLmZvcm1hdCgxMjM0NTYuNzg5KSk7IC8vIHJvdW5kcworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SW50ZWdlckluc3RhbmNlVUxvY2FsZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMy40NTciLCBuZi5mb3JtYXQoMTIzNDU2Ljc4OSkpOyAvLyByb3VuZHMKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEN1cnJlbmN5SW5zdGFuY2UoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKCk7CisgICAgICAgIGFzc2VydEVxdWFscygiJDEyMyw0NTYuOTkiLCBuZi5mb3JtYXQoMTIzNDU2Ljk5KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRDdXJyZW5jeUluc3RhbmNlTG9jYWxlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLjQ1Niw5OSCAIiwgbmYuZm9ybWF0KDEyMzQ1Ni45OSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEN1cnJlbmN5SW5zdGFuY2VVTG9jYWxlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMy40NTYsOTkggCIsIG5mLmZvcm1hdCgxMjM0NTYuOTkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0UGVyY2VudEluc3RhbmNlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMTIzLDQ1NiUiLCBuZi5mb3JtYXQoMTIzNC41NikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRQZXJjZW50SW5zdGFuY2VMb2NhbGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjEyMy40NTYlIiwgbmYuZm9ybWF0KDEyMzQuNTYpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFBlcmNlbnRJbnN0YW5jZVVMb2NhbGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxMjMuNDU2JSIsIG5mLmZvcm1hdCgxMjM0LjU2KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFNjaWVudGlmaWNJbnN0YW5jZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoIi4xMjM0NTZFNCIsIG5mLmZvcm1hdCgxMjM0LjU2KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFNjaWVudGlmaWNJbnN0YW5jZUxvY2FsZSgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscygiLDEyMzQ1NkU0IiwgbmYuZm9ybWF0KDEyMzQuNTYpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFNjaWVudGlmaWNJbnN0YW5jZVVMb2NhbGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIsMTIzNDU2RTQiLCBuZi5mb3JtYXQoMTIzNC41NikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgTG9jYWxlW10gaWxvY2FsZXMgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIExvY2FsZVtdIGpsb2NhbGVzID0gamF2YS50ZXh0Lk51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKGpsb2NhbGVzW2ldLCBpbG9jYWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVVTG9jYWxlcygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgVUxvY2FsZVtdIHVsb2NhbGVzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgIGlmIChJQ1VUZXN0Q2FzZS50ZXN0aW5nV3JhcHBlcikgeworICAgICAgICAgICAgTG9jYWxlW10gamxvY2FsZXMgPSBqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdWxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoamxvY2FsZXNbaV0sIHVsb2NhbGVzW2ldLnRvTG9jYWxlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuaXNHcm91cGluZ1VzZWQoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SXNHcm91cGluZ1VzZWQoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBuZi5zZXRHcm91cGluZ1VzZWQodHJ1ZSk7CisgICAgICAgIGFzc2VydFRydWUobmYuaXNHcm91cGluZ1VzZWQoKSk7CisgICAgICAgIG5mLnNldEdyb3VwaW5nVXNlZChmYWxzZSk7CisgICAgICAgIGFzc2VydEZhbHNlKG5mLmlzR3JvdXBpbmdVc2VkKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LnNldEdyb3VwaW5nVXNlZChib29sZWFuKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0R3JvdXBpbmdVc2VkKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxMjMsNDU2LDc4OSIsIG5mLmZvcm1hdCgxMjM0NTY3ODkpKTsKKyAgICAgICAgbmYuc2V0R3JvdXBpbmdVc2VkKGZhbHNlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxMjM0NTY3ODkiLCBuZi5mb3JtYXQoMTIzNDU2Nzg5KSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBuZi5zZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyg0KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDQsIG5mLmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkpOworICAgICAgICBuZi5zZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyg2KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDYsIG5mLmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKGludCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUludGVnZXJEaWdpdHMoNCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMyw0NTYiLCBuZi5mb3JtYXQoMTIzNDU2KSk7IC8vIGhpZ2ggZGlnaXRzIHRydW5jYXRlZAorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWluaW11bUludGVnZXJEaWdpdHMoNCk7CisgICAgICAgIGFzc2VydEVxdWFscyg0LCBuZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpKTsKKyAgICAgICAgbmYuc2V0TWluaW11bUludGVnZXJEaWdpdHMoNik7CisgICAgICAgIGFzc2VydEVxdWFscyg2LCBuZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhpbnQpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIG5mLnNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKDQpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjAsMDEyIiwgbmYuZm9ybWF0KDEyKSk7IC8vIHBhZCBvdXQgd2l0aCB6ZXJvLCBncm91cGluZyBzdGlsbCB1c2VkCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIG5mLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyg0KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDQsIG5mLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpKTsKKyAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDYpOworICAgICAgICBhc3NlcnRFcXVhbHMoNiwgbmYuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhpbnQpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBuZi5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoNCk7CisgICAgICAgIGFzc2VydEVxdWFscygiMS4yMzQ2IiwgbmYuZm9ybWF0KDEuMjM0NTY3OCkpOyAvLyBsb3cgZGlnaXRzIHJvdW5kZWQKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5nZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgbmYuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDQpOworICAgICAgICBhc3NlcnRFcXVhbHMoNCwgbmYuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkpOworICAgICAgICBuZi5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoNik7CisgICAgICAgIGFzc2VydEVxdWFscyg2LCBuZi5nZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKGludCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIG5mLnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cyg0KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIxLjIwMDAiLCBuZi5mb3JtYXQoMS4yKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQudG9TdHJpbmcoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0VG9TdHJpbmcoKSB7CisgICAgICAgIGFzc2VydE5vdE51bGwoTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudGV4dC5OdW1iZXJGb3JtYXQuaGFzaENvZGUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SGFzaENvZGUoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBOdW1iZXJGb3JtYXQgZXEgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5lcSA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIElDVVRlc3RDYXNlLnRlc3RFSENTKG5mLCBlcSwgbmVxKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC50ZXh0Lk51bWJlckZvcm1hdC5jbG9uZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RDbG9uZSgpIHsKKyAgICAgICAgLy8gc2VlIHRlc3RIYXNoQ29kZQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnRleHQuTnVtYmVyRm9ybWF0LmVxdWFscyhPYmplY3QpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RFcXVhbHNPYmplY3QoKSB7CisgICAgICAgIC8vIHNlZSB0ZXN0SGFzaENvZGUKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvU2ltcGxlRGF0ZUZvcm1hdFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9TaW1wbGVEYXRlRm9ybWF0VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMDkwMjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvU2ltcGxlRGF0ZUZvcm1hdFRlc3QuamF2YQpAQCAtMCwwICsxLDIwMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXN0czsKKworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9sczsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIFNpbXBsZURhdGVGb3JtYXRUZXN0IGV4dGVuZHMgSUNVVGVzdENhc2UgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBtZHkgPSAiTU1NIGRkIHl5eXkiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBtZDIgPSAiTU1NIGRkIHl5IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgaG16ID0gIidUaGUgdGltZSBpcycgSEg6bW06c3Mgenp6IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgaG16bWR5ID0gaG16ICsgIiAnb24nICIgKyBtZHk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGhtem1keVN0ciA9ICJUaGUgdGltZSBpcyAxNTowNToyMCBDU1Qgb24gSmFuIDEwIDIwMDYiOworICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBUaW1lWm9uZSB0emMgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQ1NUIik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGltZVpvbmUgdHpwID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHR6Yyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRGF0ZSBkYXRlOworICAgIHN0YXRpYyB7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDIwMDYsIDAsIDEwLCAxNSwgNSwgMjApOyAvLyBhcnJnaCwgZG9lc24ndCBjbGVhciBtaWxsaXMKKyAgICAgICAgZGF0ZSA9IGNhbC5nZXRUaW1lKCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5mb3JtYXQoQ2FsZW5kYXIsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEZvcm1hdENhbGVuZGFyU3RyaW5nQnVmZmVyRmllbGRQb3NpdGlvbigpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGhtem1keSk7CisgICAgICAgIHNkZi5mb3JtYXQoY2FsLCBidWYsIGZwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGhtem1keVN0ciwgYnVmLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQucGFyc2UoU3RyaW5nLCBDYWxlbmRhciwgUGFyc2VQb3NpdGlvbiknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFBhcnNlU3RyaW5nQ2FsZW5kYXJQYXJzZVBvc2l0aW9uKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSh0enApOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwcCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGhtem1keSk7CisgICAgICAgIHNkZi5wYXJzZShobXptZHlTdHIsIGNhbCwgcHApOworICAgICAgICBhc3NlcnRFcXVhbHMoZGF0ZSwgY2FsLmdldFRpbWUoKSk7CisgICAgICAgIC8vIG5vdGU6IGphdmEgZG9lc24ndCByZXR1cm4gdGhlIHBhcnNlZCB0aW1lIHpvbmUKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LmNsb25lKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdENsb25lKCkgeworCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5TaW1wbGVEYXRlRm9ybWF0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNpbXBsZURhdGVGb3JtYXQoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQganNkZiA9IG5ldyBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdCgpOworICAgICAgICBhc3NlcnRFcXVhbHMoanNkZi5mb3JtYXQoZGF0ZSksIHNkZi5mb3JtYXQoZGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuU2ltcGxlRGF0ZUZvcm1hdChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTaW1wbGVEYXRlRm9ybWF0U3RyaW5nKCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KG1keSk7CisgICAgICAgIGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0IGpzZGYgPSBuZXcgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQobWR5KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGpzZGYuZm9ybWF0KGRhdGUpLCBzZGYuZm9ybWF0KGRhdGUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LlNpbXBsZURhdGVGb3JtYXQoU3RyaW5nLCBMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTaW1wbGVEYXRlRm9ybWF0U3RyaW5nTG9jYWxlKCkgeworICAgICAgICBMb2NhbGUgbCA9IExvY2FsZS5KQVBBTjsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChtZHksIGwpOworICAgICAgICBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdCBqc2RmID0gbmV3IGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KG1keSwgbCk7CisgICAgICAgIGFzc2VydEVxdWFscyhqc2RmLmZvcm1hdChkYXRlKSwgc2RmLmZvcm1hdChkYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5TaW1wbGVEYXRlRm9ybWF0KFN0cmluZywgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNpbXBsZURhdGVGb3JtYXRTdHJpbmdVTG9jYWxlKCkgeworICAgICAgICBVTG9jYWxlIGwgPSBVTG9jYWxlLkpBUEFOOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KG1keSwgbCk7CisgICAgICAgIGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0IGpzZGYgPSBuZXcgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQobWR5LCBsLnRvTG9jYWxlKCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoanNkZi5mb3JtYXQoZGF0ZSksIHNkZi5mb3JtYXQoZGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuU2ltcGxlRGF0ZUZvcm1hdChTdHJpbmcsIERhdGVGb3JtYXRTeW1ib2xzKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2ltcGxlRGF0ZUZvcm1hdFN0cmluZ0RhdGVGb3JtYXRTeW1ib2xzKCkgeworICAgICAgICBMb2NhbGUgbCA9IExvY2FsZS5VUzsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKGwpOworICAgICAgICBqYXZhLnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMgamRmcyA9IG5ldyBqYXZhLnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMobCk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQobWR5LCBkZnMpOworICAgICAgICBqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdCBqc2RmID0gbmV3IGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KG1keSwgamRmcyk7CisgICAgICAgIGFzc2VydEVxdWFscyhqc2RmLmZvcm1hdChkYXRlKSwgc2RmLmZvcm1hdChkYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5zZXQyRGlnaXRZZWFyU3RhcnQoRGF0ZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldDJEaWdpdFllYXJTdGFydCgpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChtZDIpOworICAgICAgICBzZGYuc2V0MkRpZ2l0WWVhclN0YXJ0KGRhdGUpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZSBkID0gc2RmLnBhcnNlKCJKYW4gMTUgMDQiKTsKKyAgICAgICAgICAgIGFzc2VydE5vdEVxdWFsKC0xLCBkLnRvU3RyaW5nKCkuaW5kZXhPZigiMjEwNCIpKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gcGUpIHsKKyAgICAgICAgICAgIGZhaWwocGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuZ2V0MkRpZ2l0WWVhclN0YXJ0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldDJEaWdpdFllYXJTdGFydCgpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChtZDIpOworICAgICAgICBzZGYuc2V0MkRpZ2l0WWVhclN0YXJ0KGRhdGUpOworICAgICAgICBhc3NlcnRFcXVhbHMoZGF0ZSwgc2RmLmdldDJEaWdpdFllYXJTdGFydCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LnRvUGF0dGVybigpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RUb1BhdHRlcm4oKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQobWR5KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG1keSwgc2RmLnRvUGF0dGVybigpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LnRvTG9jYWxpemVkUGF0dGVybigpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RUb0xvY2FsaXplZFBhdHRlcm4oKSB7CisgICAgICAgIExvY2FsZSBsID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLlVTKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChtZHkpOworICAgICAgICBhc3NlcnRFcXVhbHMobWR5LCBzZGYudG9Mb2NhbGl6ZWRQYXR0ZXJuKCkpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChsKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LmFwcGx5UGF0dGVybihTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RBcHBseVBhdHRlcm4oKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgc2RmLnNldFRpbWVab25lKHR6Yyk7CisgICAgICAgIHNkZi5hcHBseVBhdHRlcm4oaG16bWR5KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGhtem1keVN0ciwgc2RmLmZvcm1hdChkYXRlKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdC5hcHBseUxvY2FsaXplZFBhdHRlcm4oU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisgICAgICAgIHNkZi5zZXRUaW1lWm9uZSh0emMpOworICAgICAgICBzZGYuYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKGhtem1keSk7CisgICAgICAgIGFzc2VydEVxdWFscyhobXptZHlTdHIsIHNkZi5mb3JtYXQoZGF0ZSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuZ2V0RGF0ZUZvcm1hdFN5bWJvbHMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGF0ZUZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KG1keSwgZGZzKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGRmcywgc2RmLmdldERhdGVGb3JtYXRTeW1ib2xzKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuc2V0RGF0ZUZvcm1hdFN5bWJvbHMoRGF0ZUZvcm1hdFN5bWJvbHMpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXREYXRlRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5KQVBBTik7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoaG16bWR5KTsKKyAgICAgICAgc2RmLnNldERhdGVGb3JtYXRTeW1ib2xzKGRmcyk7CisgICAgICAgIC8vIGFzc3VtZXMgSmFwYW5lc2Ugc3ltYm9scyBkbyBub3QgaGF2ZSBncmVnb3JpYW4gbW9udGggbmFtZXMKKyAgICAgICAgYXNzZXJ0RXF1YWxzKC0xLCBzZGYuZm9ybWF0KGRhdGUpLmluZGV4T2YoIkphbiIpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvVGltZVpvbmVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvVGltZVpvbmVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVkYWQ0YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9UaW1lWm9uZVRlc3QuamF2YQpAQCAtMCwwICsxLDIzNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXN0czsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitwdWJsaWMgY2xhc3MgVGltZVpvbmVUZXN0IGV4dGVuZHMgSUNVVGVzdENhc2UgeworCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuaGFzaENvZGUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0SGFzaENvZGUoKSB7CisJCVRpbWVab25lIHR6MSA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJVGltZVpvbmUgdHoyID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCQlUaW1lWm9uZSB0em4gPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQ1NUIik7CisJCXRlc3RFSENTKHR6MSwgdHoyLCB0em4pOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLlRpbWVab25lKFRpbWVab25lKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0VGltZVpvbmUoKSB7CisJCS8vIGltcGxpY2l0bHkgdGVzdGVkIGV2ZXJ5d2hlcmUKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXRPZmZzZXQoaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldE9mZnNldCgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCWludCBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoMSwgMjAwNCwgMCwgMDEsIDEsIDApOworCQlhc3NlcnRFcXVhbHMoLTI4ODAwMDAwLCBvZmZzZXQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLnNldFJhd09mZnNldChpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRSYXdPZmZzZXQoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCQlpbnQgdmFsdWUgPSB0ei5nZXRSYXdPZmZzZXQoKTsKKwkJaW50IHZhbHVlMSA9IHZhbHVlICsgMTAwMDAwOworCQl0ei5zZXRSYXdPZmZzZXQodmFsdWUxKTsKKwkJaW50IHJlc3VsdCA9IHR6LmdldFJhd09mZnNldCgpOworCQlhc3NlcnROb3RFcXVhbCh2YWx1ZSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHZhbHVlMSwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXRSYXdPZmZzZXQoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0UmF3T2Zmc2V0KCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJaW50IG9mZnNldCA9IHR6LmdldFJhd09mZnNldCgpOworCQlhc3NlcnRFcXVhbHMoLTI4ODAwMDAwLCBvZmZzZXQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmdldElEKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldElEKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJYXNzZXJ0RXF1YWxzKCJQU1QiLCB0ei5nZXRJRCgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5zZXRJRChTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RTZXRJRCgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCVN0cmluZyB2YWx1ZTEgPSB0ei5nZXRJRCgpOworCQlTdHJpbmcgdmFsdWUyID0gdmFsdWUxICsgIiEiOworCQl0ei5zZXRJRCh2YWx1ZTIpOworCQlTdHJpbmcgcmVzdWx0ID0gdHouZ2V0SUQoKTsKKwkJYXNzZXJ0Tm90RXF1YWwodmFsdWUxLCByZXN1bHQpOworCQlhc3NlcnRFcXVhbHModmFsdWUyLCByZXN1bHQpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmdldERpc3BsYXlOYW1lKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlOYW1lKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJYXNzZXJ0RXF1YWxzKCJQYWNpZmljIFN0YW5kYXJkIFRpbWUiLCB0ei5nZXREaXNwbGF5TmFtZSgpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXREaXNwbGF5TmFtZShMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZUxvY2FsZSgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCWFzc2VydEVxdWFscygiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwgdHouZ2V0RGlzcGxheU5hbWUoTG9jYWxlLlVTKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlOYW1lVUxvY2FsZSgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCWFzc2VydEVxdWFscygiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwgdHouZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5VUykpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmdldERpc3BsYXlOYW1lKGJvb2xlYW4sIGludCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlOYW1lQm9vbGVhbkludCgpIHsKKwkJVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisJCWFzc2VydEVxdWFscygiUERUIiwgdHouZ2V0RGlzcGxheU5hbWUodHJ1ZSwgVGltZVpvbmUuU0hPUlQpKTsKKwkJYXNzZXJ0RXF1YWxzKCJQYWNpZmljIERheWxpZ2h0IFRpbWUiLCB0ei5nZXREaXNwbGF5TmFtZSh0cnVlLCBUaW1lWm9uZS5MT05HKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0RGlzcGxheU5hbWUoYm9vbGVhbiwgaW50LCBMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZUJvb2xlYW5JbnRMb2NhbGUoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCQlhc3NlcnRFcXVhbHMoIlBEVCIsIHR6LmdldERpc3BsYXlOYW1lKHRydWUsIFRpbWVab25lLlNIT1JULCBMb2NhbGUuVVMpKTsKKwkJYXNzZXJ0RXF1YWxzKCJQYWNpZmljIERheWxpZ2h0IFRpbWUiLCB0ei5nZXREaXNwbGF5TmFtZSh0cnVlLCBUaW1lWm9uZS5MT05HLCBMb2NhbGUuVVMpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXREaXNwbGF5TmFtZShib29sZWFuLCBpbnQsIFVMb2NhbGUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZUJvb2xlYW5JbnRVTG9jYWxlKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJYXNzZXJ0RXF1YWxzKCJQRFQiLCB0ei5nZXREaXNwbGF5TmFtZSh0cnVlLCBUaW1lWm9uZS5TSE9SVCwgVUxvY2FsZS5VUykpOworCQlhc3NlcnRFcXVhbHMoIlBhY2lmaWMgRGF5bGlnaHQgVGltZSIsIHR6LmdldERpc3BsYXlOYW1lKHRydWUsIFRpbWVab25lLkxPTkcsIFVMb2NhbGUuVVMpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXREU1RTYXZpbmdzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERTVFNhdmluZ3MoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCQlhc3NlcnRFcXVhbHMoMzYwMDAwMCwgdHouZ2V0RFNUU2F2aW5ncygpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS51c2VEYXlsaWdodFRpbWUoKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0VXNlRGF5bGlnaHRUaW1lKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJYXNzZXJ0VHJ1ZSh0ei51c2VEYXlsaWdodFRpbWUoKSk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuaW5EYXlsaWdodFRpbWUoRGF0ZSknCisJICovCisJcHVibGljIHZvaWQgdGVzdEluRGF5bGlnaHRUaW1lKCkgeworCQlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKwkJY2FsLnNldCgyMDA1LCAwLCAxNyk7CisJCURhdGUgZGF0ZSA9IGNhbC5nZXRUaW1lKCk7CisJCWFzc2VydEZhbHNlKHR6LmluRGF5bGlnaHRUaW1lKGRhdGUpKTsKKwkJY2FsLnNldCgyMDA1LCA2LCAxNyk7CisJCWRhdGUgPSBjYWwuZ2V0VGltZSgpOworCQlhc3NlcnRUcnVlKHR6LmluRGF5bGlnaHRUaW1lKGRhdGUpKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZShTdHJpbmcpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRUaW1lWm9uZSgpIHsKKwkJLy8gaW1wbGljaXRseSB0ZXN0ZWQgZXZlcnl3aGVyZQorCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmdldEF2YWlsYWJsZUlEcyhpbnQpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RHZXRBdmFpbGFibGVJRHNJbnQoKSB7CisJCVN0cmluZ1tdIGlkcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygtMjg4MDAwMDApOworCQlhc3NlcnROb3ROdWxsKGlkcyk7CisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldEF2YWlsYWJsZUlEcygpIHsKKwkJU3RyaW5nW10gaWRzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCk7CisJCWFzc2VydE5vdE51bGwoaWRzKTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXREZWZhdWx0KCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEdldERlZmF1bHQoKSB7CisJCVRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworCQlhc3NlcnROb3ROdWxsKHR6KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lKScKKwkgKi8KKwlwdWJsaWMgdm9pZCB0ZXN0U2V0RGVmYXVsdCgpIHsKKwkJVGltZVpvbmUgdHoxID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworCQlTdHJpbmcgbmV3Q29kZSA9ICJQRFQiLmVxdWFscyh0ejEuZ2V0SUQoKSkgPyAiQ1NUIiA6ICJQRFQiOworCQlUaW1lWm9uZSB0ejIgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShuZXdDb2RlKTsKKwkJVGltZVpvbmUuc2V0RGVmYXVsdCh0ejIpOworCQlUaW1lWm9uZSByZXN1bHQgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisJCWFzc2VydE5vdEVxdWFsKHR6MSwgcmVzdWx0KTsKKwkJYXNzZXJ0RXF1YWxzKHR6MiwgcmVzdWx0KTsKKwl9CisKKwkvKgorCSAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5oYXNTYW1lUnVsZXMoVGltZVpvbmUpJworCSAqLworCXB1YmxpYyB2b2lkIHRlc3RIYXNTYW1lUnVsZXMoKSB7CisJCVRpbWVab25lIHR6MSA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKwkJVGltZVpvbmUgdHoyID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKTsKKwkJYXNzZXJ0VHJ1ZSh0ejEuaGFzU2FtZVJ1bGVzKHR6MikpOworCX0KKworCS8qCisJICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS51dGlsLlRpbWVab25lLmNsb25lKCknCisJICovCisJcHVibGljIHZvaWQgdGVzdENsb25lKCkgeworCQkvLyB0ZXN0ZWQgYnkgdGVzdEhhc2hDb2RlCisJfQorCisJLyoKKwkgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZXF1YWxzKE9iamVjdCknCisJICovCisJcHVibGljIHZvaWQgdGVzdEVxdWFsc09iamVjdCgpIHsKKwkJLy8gdGVzdGVkIGJ5IHRlc3RIYXNoQ29kZQorCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9VTG9jYWxlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL1VMb2NhbGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODczMGQ2NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLnRlc3RzL3NyYy9jb20vaWJtL2ljdS90ZXN0cy9VTG9jYWxlVGVzdC5qYXZhCkBAIC0wLDAgKzEsNzQ4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRlc3RzOworCitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBVTG9jYWxlVGVzdCBleHRlbmRzIElDVVRlc3RDYXNlIHsKKyAgICBwcml2YXRlIFN0cmluZyBzYW1wbGVOYW1lOworICAgIHByaXZhdGUgU3RyaW5nIGxvbmdVTG9jYWxlTmFtZTsKKyAgICBwcml2YXRlIFN0cmluZyBsb25nVUxvY2FsZUJhc2VuYW1lOworICAgIHByaXZhdGUgU3RyaW5nIG5vbk5vcm1hbGl6ZWROYW1lOworICAgIHByaXZhdGUgVUxvY2FsZSBsb25nVUxvY2FsZTsKKyAgICBwcml2YXRlIExvY2FsZSBzYW1wbGVMb2NhbGU7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEBPdmVycmlkZQorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyLnNldFVwKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIHNhbXBsZU5hbWUgPSAibGxfQ0NfVlZWViI7CisgICAgICAgIGxvbmdVTG9jYWxlTmFtZSA9ICJsbF9Tc3NzX0NDX1ZWVlZAY29sbGF0aW9uPXBob25lYm9vaztrZXk9dmFsdWUiOworICAgICAgICBsb25nVUxvY2FsZUJhc2VuYW1lID0gbG9uZ1VMb2NhbGVOYW1lLnN1YnN0cmluZygwLCBsb25nVUxvY2FsZU5hbWUuaW5kZXhPZignQCcpKTsKKyAgICAgICAgbm9uTm9ybWFsaXplZE5hbWUgPSAiTExfc3Nzc19jY19WVlZWQCBLZXkgPSB2YWx1ZSA7IENvbGxhdGlvbiA9IHBob25lYm9vayA7ICI7CisgICAgICAgIGxvbmdVTG9jYWxlID0gbmV3IFVMb2NhbGUobG9uZ1VMb2NhbGVOYW1lKTsKKyAgICAgICAgc2FtcGxlTG9jYWxlID0gbmV3IFVMb2NhbGUoc2FtcGxlTmFtZSkudG9Mb2NhbGUoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5oYXNoQ29kZSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RIYXNoQ29kZSgpIHsKKyAgICAgICAgVUxvY2FsZSBvYmogPSBVTG9jYWxlLkdFUk1BTlk7CisgICAgICAgIFVMb2NhbGUgZXEgPSBuZXcgVUxvY2FsZSgiZGVfREUiKTsKKyAgICAgICAgVUxvY2FsZSBuZXEgPSBuZXcgVUxvY2FsZSgiZGVfREVfRlJFTkNIIik7CisgICAgICAgICAgICAgICAgCisgICAgICAgIElDVVRlc3RDYXNlLnRlc3RFSENTKG9iaiwgZXEsIG5lcSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmZvckxvY2FsZShMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RGb3JMb2NhbGUoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhVTG9jYWxlLkdFUk1BTlksIFVMb2NhbGUuZm9yTG9jYWxlKExvY2FsZS5HRVJNQU5ZKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLlVMb2NhbGUoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0VUxvY2FsZVN0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKFVMb2NhbGUuR0VSTUFOLCBuZXcgVUxvY2FsZSgiZGUiKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLlVMb2NhbGUoU3RyaW5nLCBTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RVTG9jYWxlU3RyaW5nU3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoVUxvY2FsZS5HRVJNQU5ZLCBuZXcgVUxvY2FsZSgiZGUiLCAiREUiKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLlVMb2NhbGUoU3RyaW5nLCBTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFVMb2NhbGVTdHJpbmdTdHJpbmdTdHJpbmcoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhzYW1wbGVMb2NhbGUsIG5ldyBVTG9jYWxlKCJsbCIsICJjYyIsICJWVlZWIikudG9Mb2NhbGUoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmNyZWF0ZUNhbm9uaWNhbChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RDcmVhdGVDYW5vbmljYWwoKSB7CisgICAgICAgIFVMb2NhbGUgcmVzdWx0ID0gVUxvY2FsZS5jcmVhdGVDYW5vbmljYWwoImRlX19QSE9ORUJPT0siKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG5ldyBVTG9jYWxlKCJkZUBjb2xsYXRpb249cGhvbmVib29rIiksIHJlc3VsdCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLnRvTG9jYWxlKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFRvTG9jYWxlKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoc2FtcGxlTG9jYWxlLCBuZXcgVUxvY2FsZSgibGwiLCAiY2MiLCAiVlZWViIpLnRvTG9jYWxlKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREZWZhdWx0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERlZmF1bHQoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhMb2NhbGUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKS50b0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuc2V0RGVmYXVsdChVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2V0RGVmYXVsdCgpIHsKKyAgICAgICAgTG9jYWxlIG9sZExvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFVMb2NhbGUgb2xkVUxvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KGxvbmdVTG9jYWxlKTsKKyAgICAgICAgICAgIElDVVRlc3RDYXNlLmFzc2VydE5vdEVxdWFsKExvY2FsZS5nZXREZWZhdWx0KCksIG9sZExvY2FsZSk7CisgICAgICAgICAgICBJQ1VUZXN0Q2FzZS5hc3NlcnROb3RFcXVhbChVTG9jYWxlLmdldERlZmF1bHQoKSwgb2xkVUxvY2FsZSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMobG9uZ1VMb2NhbGUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscyhzYW1wbGVMb2NhbGUsIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KG9sZFVMb2NhbGUpOworICAgICAgICAgICAgTG9jYWxlLnNldERlZmF1bHQob2xkTG9jYWxlKTsgLy8gaW4gY2FzZSBvZiBzb21lIGVycm9yCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuY2xvbmUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q2xvbmUoKSB7CisgICAgICAgIC8vIHNlZSB0ZXN0SGFzaGNvZGUKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZXF1YWxzKE9iamVjdCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEVxdWFsc09iamVjdCgpIHsKKyAgICAgICAgLy8gc2VlIHRlc3RIYXNoY29kZQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIFVMb2NhbGVbXSB1bG9jYWxlcyA9IFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIExvY2FsZVtdIGxvY2FsZXMgPSBMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscyh1bG9jYWxlc1tpXS50b0xvY2FsZSgpLCBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBlbHNlIG5vdGhpbmcgdG8gdGVzdCBleGNlcHQgdGhhdCB0aGUgZnVuY3Rpb24gcmV0dXJuZWQuCisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldElTT0NvdW50cmllcygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRJU09Db3VudHJpZXMoKSB7CisgICAgICAgIFN0cmluZ1tdIHVjb3VudHJpZXMgPSBVTG9jYWxlLmdldElTT0NvdW50cmllcygpOworICAgICAgICBhc3NlcnROb3ROdWxsKHVjb3VudHJpZXMpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIC8vIGtlZXAgb3VyIG93biBkYXRhIGZvciBub3cKKyAgICAgICAgICAgIC8vIG91ciBkYXRhIGRvZXNuJ3QgbWF0Y2ggamF2YSdzIHNvIHRoaXMgdGVzdCB3b3VsZCBmYWlsCisgICAgICAgICAgICAvLyBUT0RPOiBlbmFibGUgaWYgd2UgZGVjaWRlIHRvIHVzZSBqYXZhJ3MgZGF0YQorICAgICAgICAgICAgLy8gU3RyaW5nW10gY291bnRyaWVzID0gTG9jYWxlLmdldElTT0NvdW50cmllcygpOworICAgICAgICAgICAgLy8gVGVzdEJvaWxlcnBsYXRlLmFzc2VydEFycmF5c0VxdWFsKHVjb3VudHJpZXMsIGNvdW50cmllcyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gZWxzZSBub3RoaW5nIHRvIHRlc3QgZXhjZXB0IHRoYXQgdGhlIGZ1bmN0aW9uIHJldHVybmVkLgorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRJU09MYW5ndWFnZXMoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SVNPTGFuZ3VhZ2VzKCkgeworICAgICAgICBTdHJpbmdbXSB1bGFuZ3VhZ2VzID0gVUxvY2FsZS5nZXRJU09MYW5ndWFnZXMoKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCh1bGFuZ3VhZ2VzKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICAvLyBrZWVwIG91ciBvd24gZGF0YSBmb3Igbm93CisgICAgICAgICAgICAvLyBvdXIgZGF0YSBkb2Vzbid0IG1hdGNoIGphdmEncyBzbyB0aGlzIHRlc3Qgd291bGQgZmFpbAorICAgICAgICAgICAgLy8gVE9ETzogZW5hYmxlIGlmIHdlIGRlY2lkZSB0byB1c2UgamF2YSdzIGRhdGEKKyAgICAgICAgICAgIC8vIFN0cmluZ1tdIGxhbmd1YWdlcyA9IExvY2FsZS5nZXRJU09MYW5ndWFnZXMoKTsKKyAgICAgICAgICAgIC8vIFRlc3RCb2lsZXJwbGF0ZS5hc3NlcnRBcnJheXNFcXVhbCh1bGFuZ3VhZ2VzLCBsYW5ndWFnZXMpOworICAgICAgICB9CisgICAgICAgIC8vIGVsc2Ugbm90aGluZyB0byB0ZXN0IGV4Y2VwdCB0aGF0IHRoZSBmdW5jdGlvbiByZXR1cm5lZC4KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0TGFuZ3VhZ2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TGFuZ3VhZ2UoKSB7CisgICAgICAgIGFzc2VydEVxdWFscygibGwiLCBsb25nVUxvY2FsZS5nZXRMYW5ndWFnZSgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJsbCIsIGxvbmdVTG9jYWxlLnRvTG9jYWxlKCkuZ2V0TGFuZ3VhZ2UoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldExhbmd1YWdlKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldExhbmd1YWdlU3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoImxsIiwgVUxvY2FsZS5nZXRMYW5ndWFnZShsb25nVUxvY2FsZS5nZXROYW1lKCkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0U2NyaXB0KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFNjcmlwdCgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJTc3NzIiwgbG9uZ1VMb2NhbGUuZ2V0U2NyaXB0KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRTY3JpcHQoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0U2NyaXB0U3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoIlNzc3MiLCBVTG9jYWxlLmdldFNjcmlwdChsb25nVUxvY2FsZS5nZXROYW1lKCkpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0Q291bnRyeSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRDb3VudHJ5KCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoIkNDIiwgbG9uZ1VMb2NhbGUuZ2V0Q291bnRyeSgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJDQyIsIGxvbmdVTG9jYWxlLnRvTG9jYWxlKCkuZ2V0Q291bnRyeSgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0Q291bnRyeShTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRDb3VudHJ5U3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoIkNDIiwgVUxvY2FsZS5nZXRDb3VudHJ5KGxvbmdVTG9jYWxlLmdldE5hbWUoKSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRWYXJpYW50KCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldFZhcmlhbnQoKSB7CisgICAgICAgIGFzc2VydEVxdWFscygiVlZWViIsIGxvbmdVTG9jYWxlLmdldFZhcmlhbnQoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygiVlZWViIsIGxvbmdVTG9jYWxlLnRvTG9jYWxlKCkuZ2V0VmFyaWFudCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0VmFyaWFudChTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRWYXJpYW50U3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoIlZWVlYiLCBVTG9jYWxlLmdldFZhcmlhbnQobG9uZ1VMb2NhbGUuZ2V0TmFtZSgpKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldEZhbGxiYWNrKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEZhbGxiYWNrU3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMoVUxvY2FsZS5HRVJNQU4sIFVMb2NhbGUuZ2V0RmFsbGJhY2soVUxvY2FsZS5HRVJNQU5ZLmdldE5hbWUoKSkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRGYWxsYmFjaygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRGYWxsYmFjaygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKFVMb2NhbGUuR0VSTUFOLCBVTG9jYWxlLkdFUk1BTlkuZ2V0RmFsbGJhY2soKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldEJhc2VOYW1lKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEJhc2VOYW1lKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMobG9uZ1VMb2NhbGVCYXNlbmFtZSwgbG9uZ1VMb2NhbGUuZ2V0QmFzZU5hbWUoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldEJhc2VOYW1lKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEJhc2VOYW1lU3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMobG9uZ1VMb2NhbGVCYXNlbmFtZSwgbG9uZ1VMb2NhbGUuZ2V0QmFzZU5hbWUoKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldE5hbWUoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TmFtZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGxvbmdVTG9jYWxlTmFtZSwgbG9uZ1VMb2NhbGUuZ2V0TmFtZSgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0TmFtZShTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXROYW1lU3RyaW5nKCkgeworICAgICAgICBhc3NlcnRFcXVhbHMobG9uZ1VMb2NhbGVOYW1lLCBVTG9jYWxlLmdldE5hbWUobm9uTm9ybWFsaXplZE5hbWUpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUudG9TdHJpbmcoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0VG9TdHJpbmcoKSB7CisgICAgICAgIGFzc2VydEVxdWFscyhsb25nVUxvY2FsZU5hbWUsIGxvbmdVTG9jYWxlLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRLZXl3b3JkcygpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRLZXl3b3JkcygpIHsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IGxvbmdVTG9jYWxlLmdldEtleXdvcmRzKCk7CisgICAgICAgIGFzc2VydEVxdWFscyhpdGVyLm5leHQoKSwgImNvbGxhdGlvbiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoaXRlci5uZXh0KCksICJrZXkiKTsKKyAgICAgICAgYXNzZXJ0RmFsc2UoaXRlci5oYXNOZXh0KCkpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRLZXl3b3JkcyhTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRLZXl3b3Jkc1N0cmluZygpIHsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IFVMb2NhbGUuZ2V0S2V5d29yZHMobm9uTm9ybWFsaXplZE5hbWUpOworICAgICAgICBhc3NlcnRFcXVhbHMoaXRlci5uZXh0KCksICJjb2xsYXRpb24iKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGl0ZXIubmV4dCgpLCAia2V5Iik7CisgICAgICAgIGFzc2VydEZhbHNlKGl0ZXIuaGFzTmV4dCgpKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0S2V5d29yZFZhbHVlKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEtleXdvcmRWYWx1ZVN0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJ2YWx1ZSIsIGxvbmdVTG9jYWxlLmdldEtleXdvcmRWYWx1ZSgia2V5IikpOworICAgICAgICBhc3NlcnRFcXVhbHMoInBob25lYm9vayIsIGxvbmdVTG9jYWxlLmdldEtleXdvcmRWYWx1ZSgiY29sbGF0aW9uIikpOworICAgICAgICBhc3NlcnROdWxsKGxvbmdVTG9jYWxlLmdldEtleXdvcmRWYWx1ZSgienp5engiKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldEtleXdvcmRWYWx1ZShTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldEtleXdvcmRWYWx1ZVN0cmluZ1N0cmluZygpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJ2YWx1ZSIsIFVMb2NhbGUuZ2V0S2V5d29yZFZhbHVlKGxvbmdVTG9jYWxlTmFtZSwgImtleSIpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJwaG9uZWJvb2siLCBVTG9jYWxlLmdldEtleXdvcmRWYWx1ZShsb25nVUxvY2FsZU5hbWUsICJjb2xsYXRpb24iKSk7CisgICAgICAgIGFzc2VydE51bGwoVUxvY2FsZS5nZXRLZXl3b3JkVmFsdWUobG9uZ1VMb2NhbGVOYW1lLCAienp5engiKSk7CisKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuY2Fub25pY2FsaXplKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdENhbm9uaWNhbGl6ZSgpIHsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJkZUBjb2xsYXRpb249cGhvbmVib29rIiwgVUxvY2FsZS5jYW5vbmljYWxpemUoImRlX19QSE9ORUJPT0siKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLnNldEtleXdvcmRWYWx1ZShTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldEtleXdvcmRWYWx1ZVN0cmluZ1N0cmluZygpIHsKKyAgICAgICAgVUxvY2FsZSBtdW5nZWQgPSBsb25nVUxvY2FsZS5zZXRLZXl3b3JkVmFsdWUoImtleSIsICJDIyIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIkMjIiwgbXVuZ2VkLmdldEtleXdvcmRWYWx1ZSgia2V5IikpOworICAgICAgICBtdW5nZWQgPSBtdW5nZWQuc2V0S2V5d29yZFZhbHVlKCJ6enl6eCIsICJncnVlIik7CisgICAgICAgIGFzc2VydEVxdWFscygiZ3J1ZSIsIG11bmdlZC5nZXRLZXl3b3JkVmFsdWUoInp6eXp4IikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5zZXRLZXl3b3JkVmFsdWUoU3RyaW5nLCBTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdFNldEtleXdvcmRWYWx1ZVN0cmluZ1N0cmluZ1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nIG11bmdlZCA9IFVMb2NhbGUuc2V0S2V5d29yZFZhbHVlKGxvbmdVTG9jYWxlTmFtZSwgImtleSIsICJDIyIpOworICAgICAgICBhc3NlcnRFcXVhbHMoIkMjIiwgVUxvY2FsZS5nZXRLZXl3b3JkVmFsdWUobXVuZ2VkLCAia2V5IikpOworICAgICAgICBtdW5nZWQgPSBVTG9jYWxlLnNldEtleXdvcmRWYWx1ZShtdW5nZWQsICJ6enl6eCIsICJncnVlIik7CisgICAgICAgIGFzc2VydEVxdWFscygiZ3J1ZSIsIFVMb2NhbGUuZ2V0S2V5d29yZFZhbHVlKG11bmdlZCwgInp6eXp4IikpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXRJU08zTGFuZ3VhZ2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SVNPM0xhbmd1YWdlKCkgeworICAgICAgICBTdHJpbmcgaWwgPSBVTG9jYWxlLkdFUk1BTlkuZ2V0SVNPM0xhbmd1YWdlKCk7CisgICAgICAgIFN0cmluZyBqbCA9IExvY2FsZS5HRVJNQU5ZLmdldElTTzNMYW5ndWFnZSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWwsIGpsKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0SVNPM0xhbmd1YWdlKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldElTTzNMYW5ndWFnZVN0cmluZygpIHsKKyAgICAgICAgU3RyaW5nIGlsID0gVUxvY2FsZS5nZXRJU08zTGFuZ3VhZ2UoVUxvY2FsZS5HRVJNQU5ZLmdldE5hbWUoKSk7CisgICAgICAgIFN0cmluZyBqbCA9IExvY2FsZS5HRVJNQU5ZLmdldElTTzNMYW5ndWFnZSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWwsIGpsKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0SVNPM0NvdW50cnkoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SVNPM0NvdW50cnkoKSB7CisgICAgICAgIFN0cmluZyBpYyA9IFVMb2NhbGUuR0VSTUFOWS5nZXRJU08zQ291bnRyeSgpOworICAgICAgICBTdHJpbmcgamMgPSBMb2NhbGUuR0VSTUFOWS5nZXRJU08zQ291bnRyeSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWMsIGpjKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0SVNPM0NvdW50cnkoU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0SVNPM0NvdW50cnlTdHJpbmcoKSB7CisgICAgICAgIFN0cmluZyBpYyA9IFVMb2NhbGUuZ2V0SVNPM0NvdW50cnkoVUxvY2FsZS5HRVJNQU5ZLmdldE5hbWUoKSk7CisgICAgICAgIFN0cmluZyBqYyA9IExvY2FsZS5HRVJNQU5ZLmdldElTTzNDb3VudHJ5KCk7CisgICAgICAgIGFzc2VydEVxdWFscyhpYywgamMpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5TGFuZ3VhZ2UoKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheUxhbmd1YWdlKCkgeworICAgICAgICBTdHJpbmcgaWRsID0gVUxvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlMYW5ndWFnZSgpOworICAgICAgICBTdHJpbmcgamRsID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUxhbmd1YWdlKCk7CisgICAgICAgIGFzc2VydEVxdWFscyhpZGwsIGpkbCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlMYW5ndWFnZShVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheUxhbmd1YWdlVUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkbCA9IFVMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5TGFuZ3VhZ2UoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgU3RyaW5nIGpkbCA9IExvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlMYW5ndWFnZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhpZGwsIGpkbCk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlMYW5ndWFnZShTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlMYW5ndWFnZVN0cmluZ1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nIGlkbCA9IFVMb2NhbGUuZ2V0RGlzcGxheUxhbmd1YWdlKFVMb2NhbGUuR0VSTUFOWS5nZXROYW1lKCksICJkZV9ERSIpOworICAgICAgICBTdHJpbmcgamRsID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUxhbmd1YWdlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGlkbCwgamRsKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheUxhbmd1YWdlKFN0cmluZywgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlMYW5ndWFnZVN0cmluZ1VMb2NhbGUoKSB7CisgICAgICAgIFN0cmluZyBpZGwgPSBVTG9jYWxlLmdldERpc3BsYXlMYW5ndWFnZShVTG9jYWxlLkdFUk1BTlkuZ2V0TmFtZSgpLCBVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBTdHJpbmcgamRsID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUxhbmd1YWdlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGlkbCwgamRsKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheVNjcmlwdCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5U2NyaXB0KCkgeworICAgICAgICBTdHJpbmcgaXMgPSBVTG9jYWxlLlRSQURJVElPTkFMX0NISU5FU0UuZ2V0RGlzcGxheVNjcmlwdCgpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiSGFudCIsIGlzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiVHJhZGl0aW9uYWwgQ2hpbmVzZSIsIGlzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5U2NyaXB0KFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5U2NyaXB0VUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlzID0gVUxvY2FsZS5UUkFESVRJT05BTF9DSElORVNFLmdldERpc3BsYXlTY3JpcHQoVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkhhbnQiLCBpcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUT0RPOiBsb29rIHVwIGV4cGVjdGVkIHZhbHVlCisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkhhbnQiLCBpcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheVNjcmlwdChTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlTY3JpcHRTdHJpbmdTdHJpbmcoKSB7CisgICAgICAgIFN0cmluZyBpcyA9IFVMb2NhbGUuZ2V0RGlzcGxheVNjcmlwdCgiemhfSGFudCIsICJkZV9ERSIpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiSGFudCIsIGlzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRPRE86IGxvb2sgdXAgZXhwZWN0ZWQgdmFsdWUKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiSGFudCIsIGlzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5U2NyaXB0KFN0cmluZywgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlTY3JpcHRTdHJpbmdVTG9jYWxlKCkgeworICAgICAgICBTdHJpbmcgaXMgPSBVTG9jYWxlLmdldERpc3BsYXlTY3JpcHQoInpoX0hhbnQiLCBVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiSGFudCIsIGlzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRPRE86IGxvb2sgdXAgZXhwZWN0ZWQgdmFsdWUKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiSGFudCIsIGlzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5Q291bnRyeSgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5Q291bnRyeSgpIHsKKyAgICAgICAgU3RyaW5nIGlkYyA9IFVMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5Q291bnRyeSgpOworICAgICAgICBTdHJpbmcgamRjID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUNvdW50cnkoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGlkYywgamRjKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlDb3VudHJ5VUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkYyA9IFVMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5Q291bnRyeShVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBTdHJpbmcgamRjID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUNvdW50cnkoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWRjLCBqZGMpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5Q291bnRyeShTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlDb3VudHJ5U3RyaW5nU3RyaW5nKCkgeworICAgICAgICBTdHJpbmcgaWRjID0gVUxvY2FsZS5nZXREaXNwbGF5Q291bnRyeSgiZGVfREUiLCAiZGVfREUiKTsKKyAgICAgICAgU3RyaW5nIGpkYyA9IExvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlDb3VudHJ5KExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGlkYywgamRjKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkoU3RyaW5nLCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheUNvdW50cnlTdHJpbmdVTG9jYWxlKCkgeworICAgICAgICBTdHJpbmcgaWRjID0gVUxvY2FsZS5nZXREaXNwbGF5Q291bnRyeSgiZGVfREUiLCBVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBTdHJpbmcgamRjID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheUNvdW50cnkoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWRjLCBqZGMpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5VmFyaWFudCgpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5VmFyaWFudCgpIHsKKyAgICAgICAgU3RyaW5nIGlkdiA9IG5ldyBVTG9jYWxlKCJkZV9ERV9QSE9ORUJPT0siKS5nZXREaXNwbGF5VmFyaWFudCgpOworICAgICAgICBTdHJpbmcgamR2ID0gbmV3IExvY2FsZSgiZGUiLCAiREUiLCAiUEhPTkVCT09LIikuZ2V0RGlzcGxheVZhcmlhbnQoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKGpkdiwgaWR2KTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheVZhcmlhbnQoVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlWYXJpYW50VUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkdiA9IG5ldyBVTG9jYWxlKCJkZV9ERV9QSE9ORUJPT0siKS5nZXREaXNwbGF5VmFyaWFudChVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBTdHJpbmcgamR2ID0gbmV3IExvY2FsZSgiZGUiLCAiREUiLCAiUEhPTkVCT09LIikuZ2V0RGlzcGxheVZhcmlhbnQoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoamR2LCBpZHYpOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5VmFyaWFudChTdHJpbmcsIFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlWYXJpYW50U3RyaW5nU3RyaW5nKCkgeworICAgICAgICBTdHJpbmcgaWR2ID0gVUxvY2FsZS5nZXREaXNwbGF5VmFyaWFudCgiZGVfREVfUEhPTkVCT09LIiwgImRlX0RFIik7CisgICAgICAgIFN0cmluZyBqZHYgPSBuZXcgTG9jYWxlKCJkZSIsICJERSIsICJQSE9ORUJPT0siKS5nZXREaXNwbGF5VmFyaWFudChMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhqZHYsIGlkdik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlWYXJpYW50KFN0cmluZywgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlWYXJpYW50U3RyaW5nVUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkdiA9IFVMb2NhbGUuZ2V0RGlzcGxheVZhcmlhbnQoImRlX0RFX1BIT05FQk9PSyIsIFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIFN0cmluZyBqZHYgPSBuZXcgTG9jYWxlKCJkZSIsICJERSIsICJQSE9ORUJPT0siKS5nZXREaXNwbGF5VmFyaWFudChMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhqZHYsIGlkdik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkKFN0cmluZyknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlLZXl3b3JkU3RyaW5nKCkgeworICAgICAgICBTdHJpbmcgaWRrID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZCgiY29sbGF0aW9uIik7CisgICAgICAgIGFzc2VydEVxdWFscygiY29sbGF0aW9uIiwgaWRrKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmQoU3RyaW5nLCBTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5S2V5d29yZFN0cmluZ1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nIGlkayA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmQoImNvbGxhdGlvbiIsICJkZV9ERSIpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiY29sbGF0aW9uIiwgaWRrKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgcmVhbCB2YWx1ZQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJjb2xsYXRpb24iLCBpZGspOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkKFN0cmluZywgVUxvY2FsZSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlLZXl3b3JkU3RyaW5nVUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkayA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmQoImNvbGxhdGlvbiIsIFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGlmIChJQ1VUZXN0Q2FzZS50ZXN0aW5nV3JhcHBlcikgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJjb2xsYXRpb24iLCBpZGspOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVE9ETzogZmluZCByZWFsIHZhbHVlCisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImNvbGxhdGlvbiIsIGlkayk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIFRlc3QgbWV0aG9kIGZvciAnY29tLmlibS5pY3UueC51dGlsLlVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5S2V5d29yZFZhbHVlU3RyaW5nKCkgeworICAgICAgICBVTG9jYWxlIHVsID0gbmV3IFVMb2NhbGUoImRlX0RFQGNvbGxhdGlvbj1waG9uZWJvb2siKTsKKyAgICAgICAgU3RyaW5nIGlkayA9IHVsLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoImNvbGxhdGlvbiIpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygicGhvbmVib29rIiwgaWRrKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgcmVhbCB2YWx1ZQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJwaG9uZWJvb2siLCBpZGspOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoU3RyaW5nLCBVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheUtleXdvcmRWYWx1ZVN0cmluZ1VMb2NhbGUoKSB7CisgICAgICAgIFVMb2NhbGUgdWwgPSBuZXcgVUxvY2FsZSgiZGVfREVAY29sbGF0aW9uPXBob25lYm9vayIpOworICAgICAgICBTdHJpbmcgaWRrID0gdWwuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZSgiY29sbGF0aW9uIiwgVUxvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgaWYgKElDVVRlc3RDYXNlLnRlc3RpbmdXcmFwcGVyKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBob25lYm9vayIsIGlkayk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUT0RPOiBmaW5kIHJlYWwgdmFsdWUKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygicGhvbmVib29rIiwgaWRrKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZFZhbHVlKFN0cmluZywgU3RyaW5nLCBTdHJpbmcpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5S2V5d29yZFZhbHVlU3RyaW5nU3RyaW5nU3RyaW5nKCkgeworICAgICAgICBTdHJpbmcgaWRrID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZFZhbHVlKCJkZV9ERUBjb2xsYXRpb249cGhvbmVib29rIiwgImNvbGxhdGlvbiIsICJkZV9ERSIpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygicGhvbmVib29rIiwgaWRrKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgcmVhbCB2YWx1ZQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJwaG9uZWJvb2siLCBpZGspOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoU3RyaW5nLCBTdHJpbmcsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5S2V5d29yZFZhbHVlU3RyaW5nU3RyaW5nVUxvY2FsZSgpIHsKKyAgICAgICAgU3RyaW5nIGlkayA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZSgiZGVfREVAY29sbGF0aW9uPXBob25lYm9vayIsICJjb2xsYXRpb24iLCBVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBpZiAoSUNVVGVzdENhc2UudGVzdGluZ1dyYXBwZXIpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygicGhvbmVib29rIiwgaWRrKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgcmVhbCB2YWx1ZQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJwaG9uZWJvb2siLCBpZGspOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlOYW1lKCknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEdldERpc3BsYXlOYW1lKCkgeworICAgICAgICBTdHJpbmcgaWRuID0gVUxvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlOYW1lKCk7CisgICAgICAgIFN0cmluZyBqZG4gPSBMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWRuLCBqZG4pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5TmFtZShVTG9jYWxlKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheU5hbWVVTG9jYWxlKCkgeworICAgICAgICBTdHJpbmcgaWRuID0gVUxvY2FsZS5HRVJNQU5ZLmdldERpc3BsYXlOYW1lKFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIFN0cmluZyBqZG4gPSBMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5TmFtZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhpZG4sIGpkbik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmdldERpc3BsYXlOYW1lKFN0cmluZywgU3RyaW5nKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0RGlzcGxheU5hbWVTdHJpbmdTdHJpbmcoKSB7CisgICAgICAgIFN0cmluZyBpZG4gPSBVTG9jYWxlLmdldERpc3BsYXlOYW1lKCJkZV9ERSIsICJkZV9ERSIpOworICAgICAgICBTdHJpbmcgamRuID0gTG9jYWxlLkdFUk1BTlkuZ2V0RGlzcGxheU5hbWUoTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBhc3NlcnRFcXVhbHMoaWRuLCBqZG4pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5nZXREaXNwbGF5TmFtZShTdHJpbmcsIFVMb2NhbGUpJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREaXNwbGF5TmFtZVN0cmluZ1VMb2NhbGUoKSB7CisgICAgICAgIFN0cmluZyBpZG4gPSBVTG9jYWxlLmdldERpc3BsYXlOYW1lKCJkZV9ERSIsIFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIFN0cmluZyBqZG4gPSBMb2NhbGUuR0VSTUFOWS5nZXREaXNwbGF5TmFtZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGFzc2VydEVxdWFscyhpZG4sIGpkbik7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmFjY2VwdExhbmd1YWdlKFN0cmluZywgVUxvY2FsZVtdLCBib29sZWFuW10pJworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RBY2NlcHRMYW5ndWFnZVN0cmluZ1VMb2NhbGVBcnJheUJvb2xlYW5BcnJheSgpIHsKKyAgICAgICAgYm9vbGVhbltdIGZhbGxiYWNrID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0geyAKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlbl9DQSIpLCAKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlc19VUyIpLCAKKyAgICAgICAgfTsKKyAgICAgICAgVUxvY2FsZSByZXN1bHQgPSBVTG9jYWxlLmFjY2VwdExhbmd1YWdlKCJlbi1VUywgZW4tR0IsIGVuLUNBLCBlcy1VUyIsIGxvY2FsZXMsIGZhbGxiYWNrKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG5ldyBVTG9jYWxlKCJlbl9DQSIpLCByZXN1bHQpOworICAgICAgICBhc3NlcnRGYWxzZShmYWxsYmFja1swXSk7CisgICAgICAgIHJlc3VsdCA9IFVMb2NhbGUuYWNjZXB0TGFuZ3VhZ2UoImVuLVVTLCBlbi1HQiwgZXMtVVMtTkVXTUVYSUNPIiwgbG9jYWxlcywgZmFsbGJhY2spOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IFVMb2NhbGUoImVzX1VTIiksIHJlc3VsdCk7CisgICAgICAgIGFzc2VydFRydWUoZmFsbGJhY2tbMF0pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShVTG9jYWxlW10sIFVMb2NhbGVbXSwgYm9vbGVhbltdKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QWNjZXB0TGFuZ3VhZ2VVTG9jYWxlQXJyYXlVTG9jYWxlQXJyYXlCb29sZWFuQXJyYXkoKSB7CisgICAgICAgIGJvb2xlYW5bXSBmYWxsYmFjayA9IG5ldyBib29sZWFuWzFdOworICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IHsgCisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZW5fQ0EiKSwgCisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZXNfVVMiKSwgCisgICAgICAgIH07CisgICAgICAgIFVMb2NhbGVbXSBhY2NlcHRfbG9jYWxlcyA9IHsKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlbl9VUyIpLAorICAgICAgICAgICAgbmV3IFVMb2NhbGUoImVuX0dCIiksCisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZW5fQ0EiKSwKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlc19VUyIpLAorICAgICAgICB9OworICAgICAgICBVTG9jYWxlW10gYWNjZXB0X2xvY2FsZXMyID0geworICAgICAgICAgICAgbmV3IFVMb2NhbGUoImVuX1VTIiksCisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZW5fR0IiKSwKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlc19VU19ORVdNRVhJQ08iKSwKKyAgICAgICAgfTsKKyAgICAgICAgVUxvY2FsZSByZXN1bHQgPSBVTG9jYWxlLmFjY2VwdExhbmd1YWdlKGFjY2VwdF9sb2NhbGVzLCBsb2NhbGVzLCBmYWxsYmFjayk7CisgICAgICAgIGFzc2VydEVxdWFscyhuZXcgVUxvY2FsZSgiZW5fQ0EiKSwgcmVzdWx0KTsKKyAgICAgICAgYXNzZXJ0RmFsc2UoZmFsbGJhY2tbMF0pOworICAgICAgICByZXN1bHQgPSBVTG9jYWxlLmFjY2VwdExhbmd1YWdlKGFjY2VwdF9sb2NhbGVzMiwgbG9jYWxlcywgZmFsbGJhY2spOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IFVMb2NhbGUoImVzX1VTIiksIHJlc3VsdCk7CisgICAgICAgIGFzc2VydFRydWUoZmFsbGJhY2tbMF0pOworICAgIH0KKworICAgIC8qCisgICAgICogVGVzdCBtZXRob2QgZm9yICdjb20uaWJtLmljdS54LnV0aWwuVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShTdHJpbmcsIGJvb2xlYW5bXSknCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEFjY2VwdExhbmd1YWdlU3RyaW5nQm9vbGVhbkFycmF5KCkgeworICAgICAgICBib29sZWFuW10gZmFsbGJhY2sgPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgVUxvY2FsZSByZXN1bHQgPSBVTG9jYWxlLmFjY2VwdExhbmd1YWdlKCJlbi1DQSwgZW4tR0IsIGVzLVVTIiwgZmFsbGJhY2spOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IFVMb2NhbGUoImVuX0NBIiksIHJlc3VsdCk7CisgICAgICAgIGFzc2VydEZhbHNlKGZhbGxiYWNrWzBdKTsKKyAgICAgICAgcmVzdWx0ID0gVUxvY2FsZS5hY2NlcHRMYW5ndWFnZSgiZXMtVVMtTkVXTUVYSUNPIiwgZmFsbGJhY2spOworICAgICAgICBhc3NlcnROb3ROdWxsKHJlc3VsdCk7IC8vIGFjdHVhbCByZXN1bHQgZGVwZW5kcyBvbiBqZGsKKyAgICAgICAgYXNzZXJ0VHJ1ZShmYWxsYmFja1swXSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBUZXN0IG1ldGhvZCBmb3IgJ2NvbS5pYm0uaWN1LngudXRpbC5VTG9jYWxlLmFjY2VwdExhbmd1YWdlKFVMb2NhbGVbXSwgYm9vbGVhbltdKScKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0QWNjZXB0TGFuZ3VhZ2VVTG9jYWxlQXJyYXlCb29sZWFuQXJyYXkoKSB7CisgICAgICAgIGJvb2xlYW5bXSBmYWxsYmFjayA9IG5ldyBib29sZWFuWzFdOworICAgICAgICBVTG9jYWxlW10gYWNjZXB0X2xvY2FsZXMgPSB7CisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZW5fQ0EiKSwKKyAgICAgICAgICAgIG5ldyBVTG9jYWxlKCJlbl9HQiIpLAorICAgICAgICAgICAgbmV3IFVMb2NhbGUoImVzX1VTIiksCisgICAgICAgIH07CisgICAgICAgIFVMb2NhbGVbXSBhY2NlcHRfbG9jYWxlczIgPSB7CisgICAgICAgICAgICBuZXcgVUxvY2FsZSgiZXNfVVNfTkVXTUVYSUNPIiksCisgICAgICAgIH07CisgICAgICAgIFVMb2NhbGUgcmVzdWx0ID0gVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShhY2NlcHRfbG9jYWxlcywgZmFsbGJhY2spOworICAgICAgICBhc3NlcnRFcXVhbHMobmV3IFVMb2NhbGUoImVuX0NBIiksIHJlc3VsdCk7CisgICAgICAgIGFzc2VydEZhbHNlKGZhbGxiYWNrWzBdKTsKKyAgICAgICAgcmVzdWx0ID0gVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShhY2NlcHRfbG9jYWxlczIsIGZhbGxiYWNrKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChyZXN1bHQpOyAvLyBhY3R1YWwgcmVzdWx0IGRlcGVuZHMgb24gamRrCisgICAgICAgIGFzc2VydFRydWUoZmFsbGJhY2tbMF0pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLy5jbGFzc3BhdGggYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS8uY2xhc3NwYXRoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MWM4ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS8uY2xhc3NwYXRoCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxjbGFzc3BhdGg+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ic3JjIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UucGRlLmNvcmUucmVxdWlyZWRQbHVnaW5zIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+Cis8L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLy5wcm9qZWN0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRkNzNiMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlLy5wcm9qZWN0CkBAIC0wLDAgKzEsMjggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdERlc2NyaXB0aW9uPgorCTxuYW1lPmNvbS5pYm0uaWN1LmJhc2U8L25hbWU+CisJPGNvbW1lbnQ+PC9jb21tZW50PgorCTxwcm9qZWN0cz4KKwk8L3Byb2plY3RzPgorCTxidWlsZFNwZWM+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuTWFuaWZlc3RCdWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwk8L2J1aWxkU3BlYz4KKwk8bmF0dXJlcz4KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgorCTwvbmF0dXJlcz4KKzwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9NRVRBLUlORi9NQU5JRkVTVC5NRgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2IyOTk1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTAsMCArMSwxMyBAQAorTWFuaWZlc3QtVmVyc2lvbjogMS4wCitCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCitCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUKK0J1bmRsZS1TeW1ib2xpY05hbWU6IGNvbS5pYm0uaWN1LmJhc2UKK0J1bmRsZS1WZXJzaW9uOiBAQlVJTERfVkVSU0lPTkAKK0J1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUKK0J1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbgorQnVuZGxlLUNvcHlyaWdodDogQENPUFlSSUdIVEAKK0V4cG9ydC1QYWNrYWdlOiBjb20uaWJtLmljdS50ZXh0O3ZlcnNpb249IkBTUEVDX1ZFUlNJT05AIiwKKyBjb20uaWJtLmljdS51dGlsO3ZlcnNpb249IkBTUEVDX1ZFUlNJT05AIgorRWNsaXBzZS1MYXp5U3RhcnQ6IHRydWUKK0J1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBDREMtMS4wL0ZvdW5kYXRpb24tMS4wLAorIEoyU0UtMS4zCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9idWlsZC5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTI0MGUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvYnVpbGQucHJvcGVydGllcwpAQCAtMCwwICsxLDkgQEAKK3NvdXJjZS4uID0gc3JjLworb3V0cHV0Li4gPSBiaW4vCitzcmMuaW5jbHVkZXMgPSBhYm91dC5odG1sLFwKKyAgICAgICAgICAgICAgIGFib3V0X2ZpbGVzLworYmluLmluY2x1ZGVzID0gYWJvdXRfZmlsZXMvLFwKKyAgICAgICAgICAgICAgIC4sXAorICAgICAgICAgICAgICAgYWJvdXQuaHRtbCxcCisgICAgICAgICAgICAgICBwbHVnaW4ucHJvcGVydGllcyxcCisgICAgICAgICAgICAgICBNRVRBLUlORi8KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3BsdWdpbi5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2UvcGx1Z2luLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U0YTdmMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3BsdWdpbi5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTIgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29weXJpZ2h0IChjKSAyMDAwLCAyMDA2IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIAorIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgCisjIENvbnRyaWJ1dG9yczoKKyMgICAgIElCTSBDb3Jwb3JhdGlvbiAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworcGx1Z2luTmFtZSA9IEludGVybmF0aW9uYWwgQ29tcG9uZW50cyBmb3IgVW5pY29kZSBmb3IgSmF2YSAoSUNVNEopIFJlcGxhY2VtZW50IHBsdWctaW4KK3Byb3ZpZGVyTmFtZSA9IElCTSBDb3Jwb3JhdGlvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDJlMzFkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNjYxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogQSBjbGFzcyB0aGF0IGxvY2F0ZXMgYm91bmRhcmllcyBpbiB0ZXh0LiAgVGhpcyBjbGFzcyBkZWZpbmVzIGEgcHJvdG9jb2wgZm9yCisgKiBvYmplY3RzIHRoYXQgYnJlYWsgdXAgYSBwaWVjZSBvZiBuYXR1cmFsLWxhbmd1YWdlIHRleHQgYWNjb3JkaW5nIHRvIGEgc2V0CisgKiBvZiBjcml0ZXJpYS4gIEluc3RhbmNlcyBvciBzdWJjbGFzc2VzIG9mIEJyZWFrSXRlcmF0b3IgY2FuIGJlIHByb3ZpZGVkLCBmb3IKKyAqIGV4YW1wbGUsIHRvIGJyZWFrIGEgcGllY2Ugb2YgdGV4dCBpbnRvIHdvcmRzLCBzZW50ZW5jZXMsIG9yIGxvZ2ljYWwgY2hhcmFjdGVycworICogYWNjb3JkaW5nIHRvIHRoZSBjb252ZW50aW9ucyBvZiBzb21lIGxhbmd1YWdlIG9yIGdyb3VwIG9mIGxhbmd1YWdlcy4KKyAqCisgKiBXZSBwcm92aWRlIGZpdmUgYnVpbHQtaW4gdHlwZXMgb2YgQnJlYWtJdGVyYXRvcjoKKyAqIDx1bD48bGk+Z2V0VGl0bGVJbnN0YW5jZSgpIHJldHVybnMgYSBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBib3VuZGFyaWVzCisgKiBiZXR3ZWVuIHRpdGxlIGJyZWFrcy4KKyAqIDxsaT5nZXRTZW50ZW5jZUluc3RhbmNlKCkgcmV0dXJucyBhIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGJvdW5kYXJpZXMKKyAqIGJldHdlZW4gc2VudGVuY2VzLiAgVGhpcyBpcyB1c2VmdWwgZm9yIHRyaXBsZS1jbGljayBzZWxlY3Rpb24sIGZvciBleGFtcGxlLgorICogPGxpPmdldFdvcmRJbnN0YW5jZSgpIHJldHVybnMgYSBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBib3VuZGFyaWVzIGJldHdlZW4KKyAqIHdvcmRzLiAgVGhpcyBpcyB1c2VmdWwgZm9yIGRvdWJsZS1jbGljayBzZWxlY3Rpb24gb3IgImZpbmQgd2hvbGUgd29yZHMiIHNlYXJjaGVzLgorICogVGhpcyB0eXBlIG9mIEJyZWFrSXRlcmF0b3IgbWFrZXMgc3VyZSB0aGVyZSBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uIGF0IHRoZQorICogYmVnaW5uaW5nIGFuZCBlbmQgb2YgZWFjaCBsZWdhbCB3b3JkLiAgKE51bWJlcnMgY291bnQgYXMgd29yZHMsIHRvby4pICBXaGl0ZXNwYWNlCisgKiBhbmQgcHVuY3R1YXRpb24gYXJlIGtlcHQgc2VwYXJhdGUgZnJvbSByZWFsIHdvcmRzLgorICogPGxpPmdldExpbmVJbnN0YW5jZSgpIHJldHVybnMgYSBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBwb3NpdGlvbnMgd2hlcmUgaXQgaXMKKyAqIGxlZ2FsIGZvciBhIHRleHQgZWRpdG9yIHRvIHdyYXAgbGluZXMuICBUaGlzIGlzIHNpbWlsYXIgdG8gd29yZCBicmVha2luZywgYnV0CisgKiBub3QgdGhlIHNhbWU6IHB1bmN0dWF0aW9uIGFuZCB3aGl0ZXNwYWNlIGFyZSBnZW5lcmFsbHkga2VwdCB3aXRoIHdvcmRzICh5b3UgZG9uJ3QKKyAqIHdhbnQgYSBsaW5lIHRvIHN0YXJ0IHdpdGggd2hpdGVzcGFjZSwgZm9yIGV4YW1wbGUpLCBhbmQgc29tZSBzcGVjaWFsIGNoYXJhY3RlcnMKKyAqIGNhbiBmb3JjZSBhIHBvc2l0aW9uIHRvIGJlIGNvbnNpZGVyZWQgYSBsaW5lLWJyZWFrIHBvc2l0aW9uIG9yIHByZXZlbnQgYSBwb3NpdGlvbgorICogZnJvbSBiZWluZyBhIGxpbmUtYnJlYWsgcG9zaXRpb24uCisgKiA8bGk+Z2V0Q2hhcmFjdGVySW5zdGFuY2UoKSByZXR1cm5zIGEgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgYm91bmRhcmllcyBiZXR3ZWVuCisgKiBsb2dpY2FsIGNoYXJhY3RlcnMuICBCZWNhdXNlIG9mIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIFVuaWNvZGUgZW5jb2RpbmcsIGEgbG9naWNhbAorICogY2hhcmFjdGVyIG1heSBiZSBzdG9yZWQgaW50ZXJuYWxseSBhcyBtb3JlIHRoYW4gb25lIFVuaWNvZGUgY29kZSBwb2ludC4gIChBIHdpdGggYW4KKyAqIHVtbGF1dCBtYXkgYmUgc3RvcmVkIGFzIGFuIGEgZm9sbG93ZWQgYnkgYSBzZXBhcmF0ZSBjb21iaW5pbmcgdW1sYXV0IGNoYXJhY3RlciwKKyAqIGZvciBleGFtcGxlLCBidXQgdGhlIHVzZXIgc3RpbGwgdGhpbmtzIG9mIGl0IGFzIG9uZSBjaGFyYWN0ZXIuKSAgVGhpcyBpdGVyYXRvciBhbGxvd3MKKyAqIHZhcmlvdXMgcHJvY2Vzc2VzIChlc3BlY2lhbGx5IHRleHQgZWRpdG9ycykgdG8gdHJlYXQgYXMgY2hhcmFjdGVycyB0aGUgdW5pdHMgb2YgdGV4dAorICogdGhhdCBhIHVzZXIgd291bGQgdGhpbmsgb2YgYXMgY2hhcmFjdGVycywgcmF0aGVyIHRoYW4gdGhlIHVuaXRzIG9mIHRleHQgdGhhdCB0aGUKKyAqIGNvbXB1dGVyIHNlZXMgYXMgImNoYXJhY3RlcnMiLjwvdWw+CisgKgorICogQnJlYWtJdGVyYXRvcidzIGludGVyZmFjZSBmb2xsb3dzIGFuICJpdGVyYXRvciIgbW9kZWwgKGhlbmNlIHRoZSBuYW1lKSwgbWVhbmluZyBpdAorICogaGFzIGEgY29uY2VwdCBvZiBhICJjdXJyZW50IHBvc2l0aW9uIiBhbmQgbWV0aG9kcyBsaWtlIGZpcnN0KCksIGxhc3QoKSwgbmV4dCgpLAorICogYW5kIHByZXZpb3VzKCkgdGhhdCB1cGRhdGUgdGhlIGN1cnJlbnQgcG9zaXRpb24uICBBbGwgQnJlYWtJdGVyYXRvcnMgdXBob2xkIHRoZQorICogZm9sbG93aW5nIGludmFyaWFudHM6CisgKiA8dWw+PGxpPlRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgdGV4dCBhcmUgYWx3YXlzIHRyZWF0ZWQgYXMgYm91bmRhcnkgcG9zaXRpb25zLgorICogPGxpPlRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRvciBpcyBhbHdheXMgYSBib3VuZGFyeSBwb3NpdGlvbiAocmFuZG9tLQorICogYWNjZXNzIG1ldGhvZHMgbW92ZSB0aGUgaXRlcmF0b3IgdG8gdGhlIG5lYXJlc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlIG9yCisgKiBhZnRlciB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLCBub3QgX3RvXyB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uKS4KKyAqIDxsaT5ET05FIGlzIHVzZWQgYXMgYSBmbGFnIHRvIGluZGljYXRlIHdoZW4gaXRlcmF0aW9uIGhhcyBzdG9wcGVkLiAgRE9ORSBpcyBvbmx5CisgKiByZXR1cm5lZCB3aGVuIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIHRoZSBlbmQgb2YgdGhlIHRleHQgYW5kIHRoZSB1c2VyIGNhbGxzIG5leHQoKSwKKyAqIG9yIHdoZW4gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCBhbmQgdGhlIHVzZXIgY2FsbHMKKyAqIHByZXZpb3VzKCkuCisgKiA8bGk+QnJlYWsgcG9zaXRpb25zIGFyZSBudW1iZXJlZCBieSB0aGUgcG9zaXRpb25zIG9mIHRoZSBjaGFyYWN0ZXJzIHRoYXQgZm9sbG93CisgKiB0aGVtLiAgVGh1cywgdW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMsIHRoZSBwb3NpdGlvbiBiZWZvcmUgdGhlIGZpcnN0IGNoYXJhY3RlcgorICogaXMgMCwgdGhlIHBvc2l0aW9uIGFmdGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaXMgMSwgYW5kIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUKKyAqIGxhc3QgY2hhcmFjdGVyIGlzIDEgcGx1cyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcuCisgKiA8bGk+VGhlIGNsaWVudCBjYW4gY2hhbmdlIHRoZSBwb3NpdGlvbiBvZiBhbiBpdGVyYXRvciwgb3IgdGhlIHRleHQgaXQgYW5hbHl6ZXMsCisgKiBhdCB3aWxsLCBidXQgY2Fubm90IGNoYW5nZSB0aGUgYmVoYXZpb3IuICBJZiB0aGUgdXNlciB3YW50cyBkaWZmZXJlbnQgYmVoYXZpb3IsIGhlCisgKiBtdXN0IGluc3RhbnRpYXRlIGEgbmV3IGl0ZXJhdG9yLjwvdWw+CisgKgorICogQnJlYWtJdGVyYXRvciBhY2Nlc3NlcyB0aGUgdGV4dCBpdCBhbmFseXplcyB0aHJvdWdoIGEgQ2hhcmFjdGVySXRlcmF0b3IsIHdoaWNoIG1ha2VzCisgKiBpdCBwb3NzaWJsZSB0byB1c2UgQnJlYWtJdGVyYXRvciB0byBhbmFseXplIHRleHQgaW4gYW55IHRleHQtc3RvcmFnZSB2ZWhpY2xlIHRoYXQKKyAqIHByb3ZpZGVzIGEgQ2hhcmFjdGVySXRlcmF0b3IgaW50ZXJmYWNlLgorICoKKyAqIDxiPk5PVEU6PC9iPiAgU29tZSB0eXBlcyBvZiBCcmVha0l0ZXJhdG9yIGNhbiB0YWtlIGEgbG9uZyB0aW1lIHRvIGNyZWF0ZSwgYW5kCisgKiBpbnN0YW5jZXMgb2YgQnJlYWtJdGVyYXRvciBhcmUgbm90IGN1cnJlbnRseSBjYWNoZWQgYnkgdGhlIHN5c3RlbS4gIEZvcgorICogb3B0aW1hbCBwZXJmb3JtYW5jZSwga2VlcCBpbnN0YW5jZXMgb2YgQnJlYWtJdGVyYXRvciBhcm91bmQgYXMgbG9uZyBhcyBtYWtlcworICogc2Vuc2UuICBGb3IgZXhhbXBsZSwgd2hlbiB3b3JkLXdyYXBwaW5nIGEgZG9jdW1lbnQsIGRvbid0IGNyZWF0ZSBhbmQgZGVzdHJveSBhCisgKiBuZXcgQnJlYWtJdGVyYXRvciBmb3IgZWFjaCBsaW5lLiAgQ3JlYXRlIG9uZSBicmVhayBpdGVyYXRvciBmb3IgdGhlIHdob2xlIGRvY3VtZW50CisgKiAob3Igd2hhdGV2ZXIgc3RyZXRjaCBvZiB0ZXh0IHlvdSdyZSB3cmFwcGluZykgYW5kIHVzZSBpdCB0byBkbyB0aGUgd2hvbGUgam9iIG9mCisgKiB3cmFwcGluZyB0aGUgdGV4dC4KKyAqCisgKiA8UD4KKyAqIDxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz46PFA+CisgKiBDcmVhdGluZyBhbmQgdXNpbmcgdGV4dCBib3VuZGFyaWVzCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgKiAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSAxKSB7CisgKiAgICAgICAgICBTdHJpbmcgc3RyaW5nVG9FeGFtaW5lID0gYXJnc1swXTsKKyAqICAgICAgICAgIC8vcHJpbnQgZWFjaCB3b3JkIGluIG9yZGVyCisgKiAgICAgICAgICBCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5ID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAqICAgICAgICAgIGJvdW5kYXJ5LnNldFRleHQoc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgICAgIHByaW50RWFjaEZvcndhcmQoYm91bmRhcnksIHN0cmluZ1RvRXhhbWluZSk7CisgKiAgICAgICAgICAvL3ByaW50IGVhY2ggc2VudGVuY2UgaW4gcmV2ZXJzZSBvcmRlcgorICogICAgICAgICAgYm91bmRhcnkgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAqICAgICAgICAgIGJvdW5kYXJ5LnNldFRleHQoc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgICAgIHByaW50RWFjaEJhY2t3YXJkKGJvdW5kYXJ5LCBzdHJpbmdUb0V4YW1pbmUpOworICogICAgICAgICAgcHJpbnRGaXJzdChib3VuZGFyeSwgc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgICAgIHByaW50TGFzdChib3VuZGFyeSwgc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgfQorICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogUHJpbnQgZWFjaCBlbGVtZW50IGluIG9yZGVyCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRFYWNoRm9yd2FyZChCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5LCBTdHJpbmcgc291cmNlKSB7CisgKiAgICAgaW50IHN0YXJ0ID0gYm91bmRhcnkuZmlyc3QoKTsKKyAqICAgICBmb3IgKGludCBlbmQgPSBib3VuZGFyeS5uZXh0KCk7CisgKiAgICAgICAgICBlbmQgIT0gQnJlYWtJdGVyYXRvci5ET05FOworICogICAgICAgICAgc3RhcnQgPSBlbmQsIGVuZCA9IGJvdW5kYXJ5Lm5leHQoKSkgeworICogICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgKiAgICAgfQorICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogUHJpbnQgZWFjaCBlbGVtZW50IGluIHJldmVyc2Ugb3JkZXIKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludEVhY2hCYWNrd2FyZChCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5LCBTdHJpbmcgc291cmNlKSB7CisgKiAgICAgaW50IGVuZCA9IGJvdW5kYXJ5Lmxhc3QoKTsKKyAqICAgICBmb3IgKGludCBzdGFydCA9IGJvdW5kYXJ5LnByZXZpb3VzKCk7CisgKiAgICAgICAgICBzdGFydCAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7CisgKiAgICAgICAgICBlbmQgPSBzdGFydCwgc3RhcnQgPSBib3VuZGFyeS5wcmV2aW91cygpKSB7CisgKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LGVuZCkpOworICogICAgIH0KKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIFByaW50IGZpcnN0IGVsZW1lbnQKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludEZpcnN0KEJyZWFrSXRlcmF0b3IgYm91bmRhcnksIFN0cmluZyBzb3VyY2UpIHsKKyAqICAgICBpbnQgc3RhcnQgPSBib3VuZGFyeS5maXJzdCgpOworICogICAgIGludCBlbmQgPSBib3VuZGFyeS5uZXh0KCk7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBQcmludCBsYXN0IGVsZW1lbnQKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludExhc3QoQnJlYWtJdGVyYXRvciBib3VuZGFyeSwgU3RyaW5nIHNvdXJjZSkgeworICogICAgIGludCBlbmQgPSBib3VuZGFyeS5sYXN0KCk7CisgKiAgICAgaW50IHN0YXJ0ID0gYm91bmRhcnkucHJldmlvdXMoKTsKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlLnN1YnN0cmluZyhzdGFydCxlbmQpKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIFByaW50IHRoZSBlbGVtZW50IGF0IGEgc3BlY2lmaWVkIHBvc2l0aW9uCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnRBdChCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5LCBpbnQgcG9zLCBTdHJpbmcgc291cmNlKSB7CisgKiAgICAgaW50IGVuZCA9IGJvdW5kYXJ5LmZvbGxvd2luZyhwb3MpOworICogICAgIGludCBzdGFydCA9IGJvdW5kYXJ5LnByZXZpb3VzKCk7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBGaW5kIHRoZSBuZXh0IHdvcmQKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgaW50IG5leHRXb3JkU3RhcnRBZnRlcihpbnQgcG9zLCBTdHJpbmcgdGV4dCkgeworICogICAgIEJyZWFrSXRlcmF0b3Igd2IgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICogICAgIHdiLnNldFRleHQodGV4dCk7CisgKiAgICAgaW50IGxhc3QgPSB3Yi5mb2xsb3dpbmcocG9zKTsKKyAqICAgICBpbnQgY3VycmVudCA9IHdiLm5leHQoKTsKKyAqICAgICB3aGlsZSAoY3VycmVudCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAqICAgICAgICAgZm9yIChpbnQgcCA9IGxhc3Q7IHAgPCBjdXJyZW50OyBwKyspIHsKKyAqICAgICAgICAgICAgIGlmIChDaGFyYWN0ZXIuaXNMZXR0ZXIodGV4dC5jaGFyQXQocCkpCisgKiAgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3Q7CisgKiAgICAgICAgIH0KKyAqICAgICAgICAgbGFzdCA9IGN1cnJlbnQ7CisgKiAgICAgICAgIGN1cnJlbnQgPSB3Yi5uZXh0KCk7CisgKiAgICAgfQorICogICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgKiB9CisgKiA8L3ByZT4KKyAqIChUaGUgaXRlcmF0b3IgcmV0dXJuZWQgYnkgQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKSBpcyB1bmlxdWUgaW4gdGhhdAorICogdGhlIGJyZWFrIHBvc2l0aW9ucyBpdCByZXR1cm5zIGRvbid0IHJlcHJlc2VudCBib3RoIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZQorICogdGhpbmcgYmVpbmcgaXRlcmF0ZWQgb3Zlci4gIFRoYXQgaXMsIGEgc2VudGVuY2UtYnJlYWsgaXRlcmF0b3IgcmV0dXJucyBicmVha3MKKyAqIHRoYXQgZWFjaCByZXByZXNlbnQgdGhlIGVuZCBvZiBvbmUgc2VudGVuY2UgYW5kIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQuCisgKiBXaXRoIHRoZSB3b3JkLWJyZWFrIGl0ZXJhdG9yLCB0aGUgY2hhcmFjdGVycyBiZXR3ZWVuIHR3byBib3VuZGFyaWVzIG1pZ2h0IGJlIGEKKyAqIHdvcmQsIG9yIHRoZXkgbWlnaHQgYmUgdGhlIHB1bmN0dWF0aW9uIG9yIHdoaXRlc3BhY2UgYmV0d2VlbiB0d28gd29yZHMuICBUaGUKKyAqIGFib3ZlIGNvZGUgdXNlcyBhIHNpbXBsZSBoZXVyaXN0aWMgdG8gZGV0ZXJtaW5lIHdoaWNoIGJvdW5kYXJ5IGlzIHRoZSBiZWdpbm5pbmcKKyAqIG9mIGEgd29yZDogSWYgdGhlIGNoYXJhY3RlcnMgYmV0d2VlbiB0aGlzIGJvdW5kYXJ5IGFuZCB0aGUgbmV4dCBib3VuZGFyeQorICogaW5jbHVkZSBhdCBsZWFzdCBvbmUgbGV0dGVyICh0aGlzIGNhbiBiZSBhbiBhbHBoYWJldGljYWwgbGV0dGVyLCBhIENKSyBpZGVvZ3JhcGgsCisgKiBhIEhhbmd1bCBzeWxsYWJsZSwgYSBLYW5hIGNoYXJhY3RlciwgZXRjLiksIHRoZW4gdGhlIHRleHQgYmV0d2VlbiB0aGlzIGJvdW5kYXJ5CisgKiBhbmQgdGhlIG5leHQgaXMgYSB3b3JkOyBvdGhlcndpc2UsIGl0J3MgdGhlIG1hdGVyaWFsIGJldHdlZW4gd29yZHMuKQorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDIuMAorICoKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50cyBDbG9uZWFibGUgeworCQorICAgIHByb3RlY3RlZCBCcmVha0l0ZXJhdG9yKCkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIGNvcHkgb2YgdGhpcyBpdGVyYXRvcgorICAgICAqIEByZXR1cm4gQSBjb3B5IG9mIHRoaXMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgIAkvLyB0aGlzIGlzIGhlcmUgZm9yIHN1YmNsYXNzIHVzZS4gIHdlIG11c3Qgb3ZlcnJpZGUgaXQgb3Vyc2VsdmVzLCB0aG91Z2guCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERPTkUgaXMgcmV0dXJuZWQgYnkgcHJldmlvdXMoKSBhbmQgbmV4dCgpIGFmdGVyIGFsbCB2YWxpZAorICAgICAqIGJvdW5kYXJpZXMgaGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERPTkUgPSAtMTsKKyAgICAgICAgCisJLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbi4gIFRoaXMgaXMgYWx3YXlzIHRoZSBiZWdpbm5pbmcKKyAgICAgKiBpbmRleCBvZiB0aGUgdGV4dCB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIuICBGb3IgZXhhbXBsZSwgaWYKKyAgICAgKiB0aGUgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciBhIHdob2xlIHN0cmluZywgdGhpcyBmdW5jdGlvbiB3aWxsCisgICAgICogYWx3YXlzIHJldHVybiAwLiAgVGhpcyBmdW5jdGlvbiBhbHNvIHVwZGF0ZXMgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbgorICAgICAqIHRvIHBvaW50IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJldGNoIG9mIHRleHQKKyAgICAgKiBiZWluZyBicm9rZW4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBmaXJzdCgpOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24uICBUaGlzIGlzIGFsd2F5cyB0aGUgInBhc3QtdGhlLWVuZCIKKyAgICAgKiBpbmRleCBvZiB0aGUgdGV4dCB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIuICBGb3IgZXhhbXBsZSwgaWYgdGhlCisgICAgICogaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciBhIHdob2xlIHN0cmluZyAoY2FsbCBpdCAidGV4dCIpLCB0aGlzIGZ1bmN0aW9uCisgICAgICogd2lsbCBhbHdheXMgcmV0dXJuIHRleHQubGVuZ3RoKCkuICBUaGlzIGZ1bmN0aW9uIGFsc28gdXBkYXRlZCB0aGUKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24gdG8gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgb2Zmc2V0IG9mIHRoZSBlbmQgb2YgdGhlIHN0cmV0Y2ggb2YgdGV4dAorICAgICAqIGJlaW5nIGJyb2tlbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGxhc3QoKTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc3RlcHMgZm9yd2FyZCBpbiB0aGUgdGV4dCAoYSBuZWdhdGl2ZQorICAgICAqIG51bWJlciwgdGhlcmVmb3JlLCBhZHZhbmNlcyBiYWNrd2FyZHMpLiAgSWYgdGhpcyBjYXVzZXMgdGhlIGl0ZXJhdG9yCisgICAgICogdG8gYWR2YW5jZSBvZmYgZWl0aGVyIGVuZCBvZiB0aGUgdGV4dCwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIERPTkU7CisgICAgICogb3RoZXJ3aXNlLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSBhcHByb3ByaWF0ZQorICAgICAqIGJvdW5kYXJ5LiAgQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyBuZXh0KCkgb3IKKyAgICAgKiBwcmV2aW91cygpIG4gdGltZXMuCisgICAgICogQHBhcmFtIG4gVGhlIG51bWJlciBvZiBib3VuZGFyaWVzIHRvIGFkdmFuY2Ugb3ZlciAoaWYgcG9zaXRpdmUsIG1vdmVzCisgICAgICogZm9yd2FyZDsgaWYgbmVnYXRpdmUsIG1vdmVzIGJhY2t3YXJkcykuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGJvdW5kYXJ5IG4gYm91bmRhcmllcyBmcm9tIHRoZSBjdXJyZW50CisgICAgICogaXRlcmF0aW9uIHBvc2l0aW9uLCBvciBET05FIGlmIG1vdmluZyBuIGJvdW5kYXJpZXMgY2F1c2VzIHRoZSBpdGVyYXRvcgorICAgICAqIHRvIGFkdmFuY2Ugb2ZmIGVpdGhlciBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBuZXh0KGludCBuKTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGZvcndhcmQgb25lIGJvdW5kYXJ5LiAgVGhlIGN1cnJlbnQgaXRlcmF0aW9uCisgICAgICogcG9zaXRpb24gaXMgdXBkYXRlZCB0byBwb2ludCB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbiBhZnRlciB0aGUKKyAgICAgKiBjdXJyZW50IHBvc2l0aW9uLCBhbmQgdGhpcyBpcyBhbHNvIHRoZSB2YWx1ZSB0aGF0IGlzIHJldHVybmVkLiAgSWYKKyAgICAgKiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyBlcXVhbCB0byB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgbGFzdCgpLCBvciB0bworICAgICAqIERPTkUsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBET05FIGFuZCBzZXRzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHRvCisgICAgICogRE9ORS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nIHRoZQorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IG5leHQoKTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGJhY2t3YXJkIG9uZSBib3VuZGFyeS4gIFRoZSBjdXJyZW50IGl0ZXJhdGlvbgorICAgICAqIHBvc2l0aW9uIGlzIHVwZGF0ZWQgdG8gcG9pbnQgdG8gdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlCisgICAgICogdGhlIGN1cnJlbnQgcG9zaXRpb24sIGFuZCB0aGlzIGlzIGFsc28gdGhlIHZhbHVlIHRoYXQgaXMgcmV0dXJuZWQuICBJZgorICAgICAqIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIGVxdWFsIHRvIHRoZSB2YWx1ZSByZXR1cm5lZCBieSBmaXJzdCgpLCBvciB0bworICAgICAqIERPTkUsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBET05FIGFuZCBzZXRzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHRvCisgICAgICogRE9ORS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcgdGhlCisgICAgICogaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgcHJldmlvdXMoKTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IncyBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byBiZSB0aGUgZmlyc3QKKyAgICAgKiBib3VuZGFyeSBwb3NpdGlvbiBmb2xsb3dpbmcgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4gIChXaGV0aGVyIHRoZQorICAgICAqIHNwZWNpZmllZCBwb3NpdGlvbiBpcyBpdHNlbGYgYSBib3VuZGFyeSBwb3NpdGlvbiBvciBub3QgZG9lc24ndAorICAgICAqIG1hdHRlci0tIHRoaXMgZnVuY3Rpb24gYWx3YXlzIG1vdmVzIHRoZSBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlCisgICAgICogZmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4pICBJZiB0aGUgc3BlY2lmaWVkCisgICAgICogcG9zaXRpb24gaXMgdGhlIHBhc3QtdGhlLWVuZCBwb3NpdGlvbiwgcmV0dXJucyBET05FLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIGNoYXJhY3RlciBwb3NpdGlvbiB0byBzdGFydCBzZWFyY2hpbmcgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nCisgICAgICogIm9mZnNldCIgKHdoZXRoZXIgb3Igbm90ICJvZmZzZXQiIGl0c2VsZiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uKSwKKyAgICAgKiBvciBET05FIGlmICJvZmZzZXQiIGlzIHRoZSBwYXN0LXRoZS1lbmQgb2Zmc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZm9sbG93aW5nKGludCBvZmZzZXQpOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvcidzIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIGJlIHRoZSBsYXN0CisgICAgICogYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uICAoV2hldGhlciB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24gaXMgaXRzZWxmIGEgYm91bmRhcnkgcG9zaXRpb24gb3Igbm90IGRvZXNuJ3QKKyAgICAgKiBtYXR0ZXItLSB0aGlzIGZ1bmN0aW9uIGFsd2F5cyBtb3ZlcyB0aGUgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZQorICAgICAqIGxhc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uKSAgSWYgdGhlIHNwZWNpZmllZAorICAgICAqIHBvc2l0aW9uIGlzIHRoZSBzdGFydGluZyBwb3NpdGlvbiwgcmV0dXJucyBET05FLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIGNoYXJhY3RlciBwb3NpdGlvbiB0byBzdGFydCBzZWFyY2hpbmcgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcKKyAgICAgKiAib2Zmc2V0IiAod2hldGhlciBvZiBub3QgIm9mZnNldCIgaXRzZWxmIGlzIGEgYm91bmRhcnkgcG9zaXRpb24pLAorICAgICAqIG9yIERPTkUgaWYgIm9mZnNldCIgaXMgdGhlIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgaXRlcmF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmVjZWRpbmcoaW50IG9mZnNldCkgeworICAgICAgICBpbnQgcG9zID0gZm9sbG93aW5nKG9mZnNldCk7CisgICAgICAgIHdoaWxlIChwb3MgPj0gb2Zmc2V0ICYmIHBvcyAhPSBET05FKSB7CisgICAgICAgICAgICBwb3MgPSBwcmV2aW91cygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc3BlY2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4gIElmIHRoZQorICAgICAqIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSwgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIGlzIHNldCB0byB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb247IGlmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGZhbHNlLCB0aGUgY3VycmVudAorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbiBpcyBzZXQgYXMgdGhvdWdoIGZvbGxvd2luZygpIGhhZCBiZWVuIGNhbGxlZC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBUcnVlIGlmICJvZmZzZXQiIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNCb3VuZGFyeShpbnQgb2Zmc2V0KSB7CisgICAgCXJldHVybiBvZmZzZXQgPT0gMCB8fCBmb2xsb3dpbmcob2Zmc2V0IC0gMSkgPT0gb2Zmc2V0OyAgICAJCisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGl0ZXJhdG9yJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBpdGVyYXRvcidzIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBjdXJyZW50KCk7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEZvciBhdCBsZWFzdCBzb21lIHN1YmNsYXNzZXMgb2YgQnJlYWtJdGVyYXRvciwgdGhpcyBpcyBhIHJlZmVyZW5jZQorICAgICAqIHRvIHRoZSA8Yj5hY3R1YWwgaXRlcmF0b3IgYmVpbmcgdXNlZDwvYj4gYnkgdGhlIEJyZWFrSXRlcmF0b3IsCisgICAgICogYW5kIHRoZXJlZm9yZSwgdGhpcyBmdW5jdGlvbidzIHJldHVybiB2YWx1ZSBzaG91bGQgYmUgdHJlYXRlZCBhcworICAgICAqIDx0dD5jb25zdDwvdHQ+LiAgTm8gZ3VhcmFudGVlcyBhcmUgbWFkZSBhYm91dCB0aGUgY3VycmVudCBwb3NpdGlvbgorICAgICAqIG9mIHRoaXMgaXRlcmF0b3Igd2hlbiBpdCBpcyByZXR1cm5lZC4gIElmIHlvdSBuZWVkIHRvIG1vdmUgdGhhdAorICAgICAqIHBvc2l0aW9uIHRvIGV4YW1pbmUgdGhlIHRleHQsIGNsb25lIHRoaXMgZnVuY3Rpb24ncyByZXR1cm4gdmFsdWUgZmlyc3QuCisgICAgICogQHJldHVybiBBIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IENoYXJhY3Rlckl0ZXJhdG9yIGdldFRleHQoKTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhlIG5ldworICAgICAqIHBpZWNlIG9mIHRleHQgaXMgcGFzc2VkIGluIGFzIGEgU3RyaW5nLCBhbmQgdGhlIGN1cnJlbnQKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24gaXMgcmVzZXQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nLgorICAgICAqIChUaGUgb2xkIHRleHQgaXMgZHJvcHBlZC4pCisgICAgICogQHBhcmFtIG5ld1RleHQgQSBTdHJpbmcgY29udGFpbmluZyB0aGUgdGV4dCB0byBhbmFseXplIHdpdGgKKyAgICAgKiB0aGlzIEJyZWFrSXRlcmF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgbmV3VGV4dCkgeworICAgICAgICBzZXRUZXh0KG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihuZXdUZXh0KSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGUKKyAgICAgKiBCcmVha0l0ZXJhdG9yIGlzIHBhc3NlZCBhIENoYXJhY3Rlckl0ZXJhdG9yIHRocm91Z2ggd2hpY2gKKyAgICAgKiBpdCB3aWxsIGFjY2VzcyB0aGUgdGV4dCBpdHNlbGYuICBUaGUgY3VycmVudCBpdGVyYXRpb24KKyAgICAgKiBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBzdGFydCBpbmRleC4KKyAgICAgKiAoVGhlIG9sZCBpdGVyYXRvciBpcyBkcm9wcGVkLikKKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBBIENoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgdGV4dAorICAgICAqIHRvIGFuYWx5emUgd2l0aCB0aGlzIEJyZWFrSXRlcmF0b3IgKHRoZSBpdGVyYXRvcidzIGN1cnJlbnQKKyAgICAgKiBwb3NpdGlvbiBpcyBpZ25vcmVkLCBidXQgaXRzIG90aGVyIHN0YXRlIGlzIHNpZ25pZmljYW50KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpOworICAgICAgICAKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9DSEFSQUNURVIgPSAwOworICAgIC8qKiBAc3RhYmxlIElDVSAyLjQgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSU5EX1dPUkQgPSAxOworICAgIC8qKiBAc3RhYmxlIElDVSAyLjQgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSU5EX0xJTkUgPSAyOworICAgIC8qKiBAc3RhYmxlIElDVSAyLjQgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSU5EX1NFTlRFTkNFID0gMzsKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9USVRMRSA9IDQ7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGF0IHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkIGlzIGluIHRoZSBkZWZhdWx0CisgICAgICogbG9jYWxlJ3MgbGFuZ3VhZ2UuCisgICAgICogQHJldHVybiBBbiBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB3b3JkIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFdvcmRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldFdvcmRJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIGxvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCB0byBiZQorICAgICAqIGFuYWx5emVkLgorICAgICAqIEByZXR1cm4gQW4gaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRXb3JkSW5zdGFuY2UoTG9jYWxlIHdoZXJlKSB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLCBLSU5EX1dPUkQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB3b3JkIGJvdW5kYXJpZXMuCisgICAgICogQHBhcmFtIHdoZXJlIEEgbG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIHRoZSB0ZXh0IHRvIGJlCisgICAgICogYW5hbHl6ZWQuCisgICAgICogQHJldHVybiBBbiBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB3b3JkIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0V29yZEluc3RhbmNlKFVMb2NhbGUgd2hlcmUpIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2Uod2hlcmUudG9Mb2NhbGUoKSwgS0lORF9XT1JEKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbGVnYWwgbGluZS0KKyAgICAgKiB3cmFwcGluZyBwb3NpdGlvbnMuICBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhlIHRleHQgYmVpbmcgYnJva2VuCisgICAgICogaXMgaW4gdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbAorICAgICAqIGxpbmUtd3JhcHBpbmcgcG9zaXRpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRMaW5lSW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRMaW5lSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxlZ2FsIGxpbmUtCisgICAgICogd3JhcHBpbmcgcG9zaXRpb25zLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBicm9rZW4uCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbAorICAgICAqIGxpbmUtd3JhcHBpbmcgcG9zaXRpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRMaW5lSW5zdGFuY2UoTG9jYWxlIHdoZXJlKSB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLCBLSU5EX0xJTkUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbCBsaW5lLQorICAgICAqIHdyYXBwaW5nIHBvc2l0aW9ucy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYnJva2VuLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbGVnYWwKKyAgICAgKiBsaW5lLXdyYXBwaW5nIHBvc2l0aW9ucy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRMaW5lSW5zdGFuY2UoVUxvY2FsZSB3aGVyZSkgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZSh3aGVyZS50b0xvY2FsZSgpLCBLSU5EX0xJTkUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsb2dpY2FsLWNoYXJhY3RlcgorICAgICAqIGJvdW5kYXJpZXMuICBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCB0aGUgdGV4dCBiZWluZyBhbmFseXplZCBpcworICAgICAqIGluIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRDaGFyYWN0ZXJJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsb2dpY2FsLWNoYXJhY3RlcgorICAgICAqIGJvdW5kYXJpZXMuCisgICAgICogQHBhcmFtIHdoZXJlIEEgTG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUgd2hlcmUpIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2Uod2hlcmUsIEtJTkRfQ0hBUkFDVEVSKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxvZ2ljYWwtY2hhcmFjdGVyCisgICAgICogYm91bmRhcmllcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRDaGFyYWN0ZXJJbnN0YW5jZShVTG9jYWxlIHdoZXJlKSB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLnRvTG9jYWxlKCksIEtJTkRfQ0hBUkFDVEVSKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQgaXMgaW4gdGhlIGRlZmF1bHQgbG9jYWxlJ3MKKyAgICAgKiBsYW5ndWFnZS4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHNlbnRlbmNlIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFNlbnRlbmNlSW5zdGFuY2UoKSB7CisgICAgICAgIHJldHVybiBnZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHNlbnRlbmNlIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlIHdoZXJlKSB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLCBLSU5EX1NFTlRFTkNFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFNlbnRlbmNlSW5zdGFuY2UoVUxvY2FsZSB3aGVyZSkgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZSh3aGVyZS50b0xvY2FsZSgpLCBLSU5EX1NFTlRFTkNFKTsKKyAgICB9CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0QnJlYWtJbnN0YW5jZShMb2NhbGUgd2hlcmUsIGludCBraW5kKSB7CisgICAgICAgIGphdmEudGV4dC5CcmVha0l0ZXJhdG9yIGJyID0gbnVsbDsKKyAgICAgICAgc3dpdGNoKGtpbmQpIHsKKyAgICAgICAgY2FzZSBLSU5EX0NIQVJBQ1RFUjogYnIgPSBqYXZhLnRleHQuQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSh3aGVyZSk7IGJyZWFrOworICAgICAgICBjYXNlIEtJTkRfV09SRDogYnIgPSBqYXZhLnRleHQuQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2Uod2hlcmUpOyBicmVhazsKKyAgICAgICAgY2FzZSBLSU5EX0xJTkU6IGJyID0gamF2YS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKHdoZXJlKTsgYnJlYWs7CisgICAgICAgIGNhc2UgS0lORF9TRU5URU5DRTogYnIgPSBqYXZhLnRleHQuQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKHdoZXJlKTsgYnJlYWs7ICAgICAgICAgICAgIAorICAgICAgICBjYXNlIEtJTkRfVElUTEU6IHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgQnJlYWtJdGVyYXRvckhhbmRsZShicik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBsb2NhbGVzIGZvciB3aGljaCBCcmVha0l0ZXJhdG9ycyBjYW4gYmUgdXNlZC4KKyAgICAgKiBAcmV0dXJuIEFuIGFycmF5IG9mIExvY2FsZXMuICBBbGwgb2YgdGhlIGxvY2FsZXMgaW4gdGhlIGFycmF5IGNhbgorICAgICAqIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhIEJyZWFrSXRlcmF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICByZXR1cm4gamF2YS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQnJlYWtJdGVyYXRvcnMgY2FuIGJlIHVzZWQuCisgICAgICogQHJldHVybiBBbiBhcnJheSBvZiBVTG9jYWxlcy4gIEFsbCBvZiB0aGUgbG9jYWxlcyBpbiB0aGUgYXJyYXkgY2FuCisgICAgICogYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGEgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IGphdmEudGV4dC5CcmVha0l0ZXJhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgVUxvY2FsZVtdIHVsb2NhbGVzID0gbmV3IFVMb2NhbGVbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHVsb2NhbGVzW2ldID0gVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHVsb2NhbGVzOworICAgIH0KKyAgICAKKyAgICAvLyBmb3J3YXJkaW5nIGltcGxlbWVudGF0aW9uIGNsYXNzCisJc3RhdGljIGZpbmFsIGNsYXNzIEJyZWFrSXRlcmF0b3JIYW5kbGUgZXh0ZW5kcyBCcmVha0l0ZXJhdG9yIHsKKwkgICAgLyoqCisJICAgICAqIEBpbnRlcm5hbAorCSAgICAgKi8KKwkgICAgcHVibGljIGZpbmFsIGphdmEudGV4dC5CcmVha0l0ZXJhdG9yIGJyZWFrSXRlcmF0b3I7CisJICAgICAgICAKKwkgICAgLyoqCisJICAgICAqIEBpbnRlcm5hbAorCSAgICAgKiBAcGFyYW0gZGVsZWdhdGUgdGhlIEJyZWFrSXRlcmF0b3IgdG8gd2hpY2ggdG8gZGVsZWdhdGUKKwkgICAgICovCisJICAgIHB1YmxpYyBCcmVha0l0ZXJhdG9ySGFuZGxlKGphdmEudGV4dC5CcmVha0l0ZXJhdG9yIGRlbGVnYXRlKSB7CisJICAgICAgICB0aGlzLmJyZWFrSXRlcmF0b3IgPSBkZWxlZ2F0ZTsKKwkgICAgfQorCSAgICAgICAgCisJICAgIHB1YmxpYyBpbnQgZmlyc3QoKSB7CisJICAgICAgICByZXR1cm4gYnJlYWtJdGVyYXRvci5maXJzdCgpOworCSAgICB9CisJICAgIHB1YmxpYyBpbnQgbGFzdCgpIHsKKwkgICAgICAgIHJldHVybiBicmVha0l0ZXJhdG9yLmxhc3QoKTsKKwkgICAgfQorCSAgICBwdWJsaWMgaW50IG5leHQoaW50IG4pIHsKKwkgICAgICAgIHJldHVybiBicmVha0l0ZXJhdG9yLm5leHQobik7CisJICAgIH0KKwkgICAgcHVibGljIGludCBuZXh0KCkgeworCSAgICAgICAgcmV0dXJuIGJyZWFrSXRlcmF0b3IubmV4dCgpOworCSAgICB9CisJICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKSB7CisJICAgICAgICByZXR1cm4gYnJlYWtJdGVyYXRvci5wcmV2aW91cygpOworCSAgICB9CisJICAgIHB1YmxpYyBpbnQgZm9sbG93aW5nKGludCBvZmZzZXQpIHsKKwkgICAgICAgIHJldHVybiBicmVha0l0ZXJhdG9yLmZvbGxvd2luZyhvZmZzZXQpOworCSAgICB9CisJICAgIHB1YmxpYyBpbnQgcHJlY2VkaW5nKGludCBvZmZzZXQpIHsKKwkgICAgICAgIHJldHVybiBicmVha0l0ZXJhdG9yLnByZWNlZGluZyhvZmZzZXQpOworCSAgICB9CisJICAgIHB1YmxpYyBib29sZWFuIGlzQm91bmRhcnkoaW50IG9mZnNldCkgeworCSAgICAgICAgcmV0dXJuIGJyZWFrSXRlcmF0b3IuaXNCb3VuZGFyeShvZmZzZXQpOworCSAgICB9CisJICAgIHB1YmxpYyBpbnQgY3VycmVudCgpIHsKKwkgICAgICAgIHJldHVybiBicmVha0l0ZXJhdG9yLmN1cnJlbnQoKTsKKwkgICAgfQorCSAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0VGV4dCgpIHsKKwkgICAgICAgIHJldHVybiBicmVha0l0ZXJhdG9yLmdldFRleHQoKTsKKwkgICAgfQorCSAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpIHsKKwkgICAgICAgIGJyZWFrSXRlcmF0b3Iuc2V0VGV4dChuZXdUZXh0KTsKKwkgICAgfQorCQorCSAgICAvKioKKwkgICAgICogUmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcuCisJICAgICAqIEByZXR1cm4gYSBzdHJpbmcgc3VpdGFibGUgZm9yIGRlYnVnZ2luZworCSAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworCSAgICAgKi8KKwkgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKwkgICAgCXJldHVybiBicmVha0l0ZXJhdG9yLnRvU3RyaW5nKCk7CisJICAgIH0KKworCSAgICAvKioKKwkgICAgICogUmV0dXJuIGEgY2xvbmUgb2YgdGhpcyBCcmVha0l0ZXJhdG9yLgorCSAgICAgKiBAcmV0dXJuIGEgY2xvbmUgb2YgdGhpcyBCcmVha0l0ZXJhdG9yCisJICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisJICAgICAqLworCSAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworCSAgICAJcmV0dXJuIG5ldyBCcmVha0l0ZXJhdG9ySGFuZGxlKChqYXZhLnRleHQuQnJlYWtJdGVyYXRvcilicmVha0l0ZXJhdG9yLmNsb25lKCkpOworCSAgICB9CisKKwkgICAgLyoqCisJICAgICAqIFJldHVybiB0cnVlIGlmIHJocyBpcyBhIEJyZWFrSXRlcmF0b3Igd2l0aCB0aGUgc2FtZSBicmVhayBiZWhhdmlvciBhcyB0aGlzLgorCSAgICAgKiBAcmV0dXJuIHRydWUgaWYgcmhzIGVxdWFscyB0aGlzCisJICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisJICAgICAqLworCSAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykgeworCSAgICAJdHJ5IHsKKwkgICAgCQlyZXR1cm4gYnJlYWtJdGVyYXRvci5lcXVhbHMoKChCcmVha0l0ZXJhdG9ySGFuZGxlKXJocykuYnJlYWtJdGVyYXRvcik7CisJICAgIAl9CisJICAgIAljYXRjaCAoRXhjZXB0aW9uIGUpIHsKKwkgICAgCQlyZXR1cm4gZmFsc2U7CisJICAgIAl9CisJICAgIH0KKworCSAgICAvKioKKwkgICAgICogUmV0dXJuIGEgaGFzaENvZGUuCisJICAgICAqIEByZXR1cm4gYSBoYXNoQ29kZQorCSAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworCSAgICAgKi8KKwkgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKwkgICAgCXJldHVybiBicmVha0l0ZXJhdG9yLmhhc2hDb2RlKCk7CisJICAgIH0KKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25LZXkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvbktleS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNzRiNGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25LZXkuamF2YQpAQCAtMCwwICsxLDI1MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIDxwPkEgPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPiByZXByZXNlbnRzIGEgPGNvZGU+U3RyaW5nPC9jb2RlPgorICogdW5kZXIgdGhlIHJ1bGVzIG9mIGEgc3BlY2lmaWMgPGNvZGU+Q29sbGF0b3I8L2NvZGU+CisgKiBvYmplY3QuIENvbXBhcmluZyB0d28gPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPnMgcmV0dXJucyB0aGUKKyAqIHJlbGF0aXZlIG9yZGVyIG9mIHRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+cyB0aGV5IHJlcHJlc2VudC48L3A+CisgKgorICogPHA+U2luY2UgdGhlIHJ1bGUgc2V0IG9mIDxjb2RlPkNvbGxhdG9yPC9jb2RlPnMgY2FuIGRpZmZlciwgdGhlCisgKiBzb3J0IG9yZGVycyBvZiB0aGUgc2FtZSBzdHJpbmcgdW5kZXIgdHdvIGRpZmZlcmVudAorICogPGNvZGU+Q29sbGF0b3I8L2NvZGU+cyBtaWdodCBkaWZmZXIuICBIZW5jZSBjb21wYXJpbmcKKyAqIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT5zIGdlbmVyYXRlZCBmcm9tIGRpZmZlcmVudAorICogPGNvZGU+Q29sbGF0b3I8L2NvZGU+cyBjYW4gZ2l2ZSBpbmNvcnJlY3QgcmVzdWx0cy48L3A+CisgCisgKiA8cD5Cb3RoIHRoZSBtZXRob2QKKyAqIDxjb2RlPkNvbGxhdGlvbktleS5jb21wYXJlVG8oQ29sbGF0aW9uS2V5KTwvY29kZT4gYW5kIHRoZSBtZXRob2QKKyAqIDxjb2RlPkNvbGxhdG9yLmNvbXBhcmUoU3RyaW5nLCBTdHJpbmcpPC9jb2RlPiBjb21wYXJlIHR3byBzdHJpbmdzCisgKiBhbmQgcmV0dXJucyB0aGVpciByZWxhdGl2ZSBvcmRlci4gIFRoZSBwZXJmb3JtYW5jZSBjaGFyYWN0ZXJpY3RpY3MKKyAqIG9mIHRoZXNlIHR3byBhcHByb2FjaGVzIGNhbiBkaWZmZXIuPC9wPgorICoKKyAqIDxwPkR1cmluZyB0aGUgY29uc3RydWN0aW9uIG9mIGEgPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPiwgdGhlCisgKiBlbnRpcmUgc291cmNlIHN0cmluZyBpcyBleGFtaW5lZCBhbmQgcHJvY2Vzc2VkIGludG8gYSBzZXJpZXMgb2YKKyAqIGJpdHMgdGVybWluYXRlZCBieSBhIG51bGwsIHRoYXQgYXJlIHN0b3JlZCBpbiB0aGUgPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPi4gCisgKiBXaGVuIDxjb2RlPkNvbGxhdGlvbktleS5jb21wYXJlVG8oQ29sbGF0aW9uS2V5KTwvY29kZT4gZXhlY3V0ZXMsIGl0CisgKiBwZXJmb3JtcyBiaXR3aXNlIGNvbXBhcmlzb24gb24gdGhlIGJpdCBzZXF1ZW5jZXMuICBUaGlzIGNhbiBpbmN1cnMKKyAqIHN0YXJ0dXAgY29zdCB3aGVuIGNyZWF0aW5nIHRoZSA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+LCBidXQgb25jZQorICogdGhlIGtleSBpcyBjcmVhdGVkLCBiaW5hcnkgY29tcGFyaXNvbnMgYXJlIGZhc3QuICBUaGlzIGFwcHJvYWNoIGlzCisgKiByZWNvbW1lbmRlZCB3aGVuIHRoZSBzYW1lIHN0cmluZ3MgYXJlIHRvIGJlIGNvbXBhcmVkIG92ZXIgYW5kIG92ZXIKKyAqIGFnYWluLjwvcD4KKyAqCisgKiA8cD5PbiB0aGUgb3RoZXIgaGFuZCwgaW1wbGVtZW50YXRpb25zIG9mCisgKiA8Y29kZT5Db2xsYXRvci5jb21wYXJlKFN0cmluZywgU3RyaW5nKTwvY29kZT4gY2FuIGV4YW1pbmUgYW5kCisgKiBwcm9jZXNzIHRoZSBzdHJpbmdzIG9ubHkgdW50aWwgdGhlIGZpcnN0IGNoYXJhY3RlcnMgZGlmZmVyaW5nIGluCisgKiBvcmRlci4gIFRoaXMgYXBwcm9hY2ggaXMgcmVjb21tZW5kZWQgaWYgdGhlIHN0cmluZ3MgYXJlIHRvIGJlCisgKiBjb21wYXJlZCBvbmx5IG9uY2UuPC9wPgorICogCisgKiA8cD5Nb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21wb3NpdGlvbiBvZiB0aGUgYml0IHNlcXVlbmNlIGNhbgorICogYmUgZm91bmQgaW4gdGhlIAorICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfU2VydmljZUFyY2hpdGVjdHVyZS5odG1sIj4KKyAqIHVzZXIgZ3VpZGU8L2E+LjwvcD4KKyAqCisgKiA8cD5UaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgaG93IDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT5zIGNhbiBiZSB1c2VkCisgKiB0byBzb3J0IGEgbGlzdCBvZiA8Y29kZT5TdHJpbmc8L2NvZGU+cy48L3A+CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAvLyBDcmVhdGUgYW4gYXJyYXkgb2YgQ29sbGF0aW9uS2V5cyBmb3IgdGhlIFN0cmluZ3MgdG8gYmUgc29ydGVkLgorICogQ29sbGF0b3IgbXlDb2xsYXRvciA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisgKiBDb2xsYXRpb25LZXlbXSBrZXlzID0gbmV3IENvbGxhdGlvbktleVszXTsKKyAqIGtleXNbMF0gPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleSgiVG9tIik7CisgKiBrZXlzWzFdID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoIkRpY2siKTsKKyAqIGtleXNbMl0gPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleSgiSGFycnkiKTsKKyAqIHNvcnQoIGtleXMgKTsKKyAqIDxicj4KKyAqIC8vLi4uCisgKiA8YnI+CisgKiAvLyBJbnNpZGUgYm9keSBvZiBzb3J0IHJvdXRpbmUsIGNvbXBhcmUga2V5cyB0aGlzIHdheQorICogaWYoIGtleXNbaV0uY29tcGFyZVRvKCBrZXlzW2pdICkgPiAwICkKKyAqICAgIC8vIHN3YXAga2V5c1tpXSBhbmQga2V5c1tqXQorICogPGJyPgorICogLy8uLi4KKyAqIDxicj4KKyAqIC8vIEZpbmFsbHksIHdoZW4gd2UndmUgcmV0dXJuZWQgZnJvbSBzb3J0LgorICogU3lzdGVtLm91dC5wcmludGxuKCBrZXlzWzBdLmdldFNvdXJjZVN0cmluZygpICk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIGtleXNbMV0uZ2V0U291cmNlU3RyaW5nKCkgKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigga2V5c1syXS5nZXRTb3VyY2VTdHJpbmcoKSApOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8L3A+CisgKiA8cD4KKyAqIFRoaXMgY2xhc3MgaXMgbm90IHN1YmNsYXNzYWJsZQorICogPC9wPgorICogQHNlZSBDb2xsYXRvcgorICogQHNlZSBSdWxlQmFzZWRDb2xsYXRvcgorICogQHN0YWJsZSBJQ1UgMi44IAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQ29sbGF0aW9uS2V5IGltcGxlbWVudHMgQ29tcGFyYWJsZSB7CisJLyoqCisJICogQGludGVybmFsCisJICovCisJZmluYWwgamF2YS50ZXh0LkNvbGxhdGlvbktleSBrZXk7CisJCisJLyoqCisJICogQGludGVybmFsCisJICovCisJQ29sbGF0aW9uS2V5KGphdmEudGV4dC5Db2xsYXRpb25LZXkgZGVsZWdhdGUpIHsKKwkJdGhpcy5rZXkgPSBkZWxlZ2F0ZTsKKwl9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNvdXJjZSBzdHJpbmcgdGhhdCB0aGlzIENvbGxhdGlvbktleSByZXByZXNlbnRzLgorICAgICAqIEByZXR1cm4gc291cmNlIHN0cmluZyB0aGF0IHRoaXMgQ29sbGF0aW9uS2V5IHJlcHJlc2VudHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFNvdXJjZVN0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGtleS5nZXRTb3VyY2VTdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+RHVwbGljYXRlcyBhbmQgcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhpcyBDb2xsYXRpb25LZXkgYXMgYSBzZXF1ZW5jZSAKKyAgICAgKiBvZiBiaWctZW5kaWFuIGJ5dGVzIHRlcm1pbmF0ZWQgYnkgYSBudWxsLjwvcD4gCisgICAgICoKKyAgICAgKiA8cD5JZiB0d28gQ29sbGF0aW9uS2V5cyBjYW4gYmUgbGVnaXRpbWF0ZWx5IGNvbXBhcmVkLCB0aGVuIG9uZSBjYW4KKyAgICAgKiBjb21wYXJlIHRoZSBieXRlIGFycmF5cyBvZiBlYWNoIHRvIG9idGFpbiB0aGUgc2FtZSByZXN1bHQsIGUuZy4KKyAgICAgKiA8cHJlPgorICAgICAqIGJ5dGUga2V5MVtdID0gY29sbGF0aW9ua2V5MS50b0J5dGVBcnJheSgpOworICAgICAqIGJ5dGUga2V5MltdID0gY29sbGF0aW9ua2V5Mi50b0J5dGVBcnJheSgpOworICAgICAqIGludCBrZXksIHRhcmdldGtleTsKKyAgICAgKiBpbnQgaSA9IDA7CisgICAgICogZG8geworICAgICAqICAgICAgIGtleSA9IGtleTFbaV0gJiAweEZGOworICAgICAqICAgICB0YXJnZXRrZXkgPSBrZXkyW2ldICYgMHhGRjsKKyAgICAgKiAgICAgaWYgKGtleSAmbHQ7IHRhcmdldGtleSkgeworICAgICAqICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdHJpbmcgMSBpcyBsZXNzIHRoYW4gc3RyaW5nIDIiKTsKKyAgICAgKiAgICAgICAgIHJldHVybjsKKyAgICAgKiAgICAgfQorICAgICAqICAgICBpZiAodGFyZ2V0a2V5ICZsdDsga2V5KSB7CisgICAgICogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0cmluZyAxIGlzIG1vcmUgdGhhbiBzdHJpbmcgMiIpOworICAgICAqICAgICB9CisgICAgICogICAgIGkgKys7CisgICAgICogfSB3aGlsZSAoa2V5ICE9IDAgJiYgdGFyZ2V0S2V5ICE9IDApOworICAgICAqCisgICAgICogU3lzdGVtLm91dC5wcmludGxuKCJTdHJpbmdzIGFyZSBlcXVhbC4iKTsKKyAgICAgKiA8L3ByZT4KKyAgICAgKiA8L3A+ICAKKyAgICAgKiBAcmV0dXJuIENvbGxhdGlvbktleSB2YWx1ZSBpbiBhIHNlcXVlbmNlIG9mIGJpZy1lbmRpYW4gYnl0ZSBieXRlcyAKKyAgICAgKiAgICAgICAgIHRlcm1pbmF0ZWQgYnkgYSBudWxsLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBieXRlW10gdG9CeXRlQXJyYXkoKSB7CisgICAgICAgIHJldHVybiBrZXkudG9CeXRlQXJyYXkoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Db21wYXJlIHRoaXMgQ29sbGF0aW9uS2V5IHRvIGFub3RoZXIgQ29sbGF0aW9uS2V5LiAgVGhlCisgICAgICogY29sbGF0aW9uIHJ1bGVzIG9mIHRoZSBDb2xsYXRvciB0aGF0IGNyZWF0ZWQgdGhpcyBrZXkgYXJlCisgICAgICogYXBwbGllZC48L3A+CisgICAgICoKKyAgICAgKiA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IENvbXBhcmlzb24gYmV0d2VlbiBDb2xsYXRpb25LZXlzCisgICAgICogY3JlYXRlZCBieSBkaWZmZXJlbnQgQ29sbGF0b3JzIG1pZ2h0IHJldHVybiBpbmNvcnJlY3QKKyAgICAgKiByZXN1bHRzLiAgU2VlIGNsYXNzIGRvY3VtZW50YXRpb24uPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCB0YXJnZXQgQ29sbGF0aW9uS2V5CisgICAgICogQHJldHVybiBhbiBpbnRlZ2VyIHZhbHVlLiAgSWYgdGhlIHZhbHVlIGlzIGxlc3MgdGhhbiB6ZXJvIHRoaXMgQ29sbGF0aW9uS2V5CisgICAgICogICAgICAgICBpcyBsZXNzIHRoYW4gdGhhbiB0YXJnZXQsIGlmIHRoZSB2YWx1ZSBpcyB6ZXJvIHRoZXkgYXJlIGVxdWFsLCBhbmQKKyAgICAgKiAgICAgICAgIGlmIHRoZSB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gemVybyB0aGlzIENvbGxhdGlvbktleSBpcyBncmVhdGVyIAorICAgICAqICAgICAgICAgdGhhbiB0YXJnZXQuCisgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYXJndW1lbnQgaXMgbnVsbC4KKyAgICAgKiBAc2VlIENvbGxhdG9yI2NvbXBhcmUoU3RyaW5nLCBTdHJpbmcpCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorCSAqLworCXB1YmxpYyBpbnQgY29tcGFyZVRvKENvbGxhdGlvbktleSB0YXJnZXQpIHsKKwkJcmV0dXJuIGtleS5jb21wYXJlVG8odGFyZ2V0LmtleSk7CisJfQorCQorCS8qKgorICAgICAqIDxwPkNvbXBhcmUgdGhpcyBDb2xsYXRpb25LZXkgd2l0aCB0aGUgc3BlY2lmaWVkIE9iamVjdC4gIFRoZQorICAgICAqIGNvbGxhdGlvbiBydWxlcyBvZiB0aGUgQ29sbGF0b3IgdGhhdCBjcmVhdGVkIHRoaXMga2V5IGFyZQorICAgICAqIGFwcGxpZWQuPC9wPgorICAgICAqIAorICAgICAqIDxwPlNlZSBub3RlIGluIGNvbXBhcmVUbyhDb2xsYXRpb25LZXkpIGZvciB3YXJuaW5ncyBhYm91dCBwb3NzaWJsZQorICAgICAqIGluY29ycmVjdCByZXN1bHRzLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvYmogdGhlIE9iamVjdCB0byBiZSBjb21wYXJlZCB0by4KKyAgICAgKiBAcmV0dXJuIFJldHVybnMgYSBuZWdhdGl2ZSBpbnRlZ2VyLCB6ZXJvLCBvciBhIHBvc2l0aXZlIGludGVnZXIgCisgICAgICogICAgICAgICByZXNwZWN0aXZlbHkgaWYgdGhpcyBDb2xsYXRpb25LZXkgaXMgbGVzcyB0aGFuLCBlcXVhbCB0bywgb3IgCisgICAgICogICAgICAgICBncmVhdGVyIHRoYW4gdGhlIGdpdmVuIE9iamVjdC4KKyAgICAgKiBAZXhjZXB0aW9uIENsYXNzQ2FzdEV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgaXMgbm90IAorICAgICAqICAgICAgICAgICAgYSBDb2xsYXRpb25LZXkuICBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgCisgICAgICogICAgICAgICAgICBpcyBudWxsLgorICAgICAqIEBzZWUgI2NvbXBhcmVUbyhDb2xsYXRpb25LZXkpCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorCSAqLworCXB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCBvKSB7CisJCXJldHVybiBjb21wYXJlVG8oKENvbGxhdGlvbktleSlvKTsKKwl9CisJCisJLyoqCisgICAgICogPHA+Q29tcGFyZSB0aGlzIENvbGxhdGlvbktleSBhbmQgdGhlIHNwZWNpZmllZCBPYmplY3QgZm9yCisgICAgICogZXF1YWxpdHkuICBUaGUgY29sbGF0aW9uIHJ1bGVzIG9mIHRoZSBDb2xsYXRvciB0aGF0IGNyZWF0ZWQKKyAgICAgKiB0aGlzIGtleSBhcmUgYXBwbGllZC48L3A+CisgICAgICoKKyAgICAgKiA8cD5TZWUgbm90ZSBpbiBjb21wYXJlVG8oQ29sbGF0aW9uS2V5KSBmb3Igd2FybmluZ3MgYWJvdXQKKyAgICAgKiBwb3NzaWJsZSBpbmNvcnJlY3QgcmVzdWx0cy48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSBvYmplY3QgdG8gY29tcGFyZSB0by4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHR3byBrZXlzIGNvbXBhcmUgYXMgZXF1YWwsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc2VlICNjb21wYXJlVG8oQ29sbGF0aW9uS2V5KQorICAgICAqIEBleGNlcHRpb24gQ2xhc3NDYXN0RXhjZXB0aW9uIGlzIHRocm93biB3aGVuIHRoZSBhcmd1bWVudCBpcyBub3QgCisgICAgICogICAgICAgICAgICBhIENvbGxhdGlvbktleS4gIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biB3aGVuIHRoZSBhcmd1bWVudCAKKyAgICAgKiAgICAgICAgICAgIGlzIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorCSAqLworCXB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGFyZ2V0KSB7CisJCXRyeSB7CisJCQlyZXR1cm4ga2V5LmVxdWFscygoKENvbGxhdGlvbktleSl0YXJnZXQpLmtleSk7CisJCX0KKwkJY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwl9CisJCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogQ29tcGFyZSB0aGlzIENvbGxhdGlvbktleSBhbmQgdGhlIGFyZ3VtZW50IHRhcmdldCBDb2xsYXRpb25LZXkgZm9yIAorICAgICAqIGVxdWFsaXR5LgorICAgICAqIFRoZSBjb2xsYXRpb24gCisgICAgICogcnVsZXMgb2YgdGhlIENvbGxhdG9yIG9iamVjdCB3aGljaCBjcmVhdGVkIHRoZXNlIG9iamVjdHMgYXJlIGFwcGxpZWQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlZSBub3RlIGluIGNvbXBhcmVUbyhDb2xsYXRpb25LZXkpIGZvciB3YXJuaW5ncyBvZiBpbmNvcnJlY3QgcmVzdWx0cworICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSBDb2xsYXRpb25LZXkgdG8gY29tcGFyZSB0by4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdHdvIG9iamVjdHMgYXJlIGVxdWFsLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgaXMgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoQ29sbGF0aW9uS2V5IHRhcmdldCkgeworICAgICAgICAgICAgcmV0dXJuIGtleS5lcXVhbHModGFyZ2V0LmtleSk7CisgICAgfQorICAgIAorCS8qKgorICAgICAqIDxwPlJldHVybnMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgQ29sbGF0aW9uS2V5LiBUaGUgaGFzaCB2YWx1ZSBpcyBjYWxjdWxhdGVkIAorICAgICAqIG9uIHRoZSBrZXkgaXRzZWxmLCBub3QgdGhlIFN0cmluZyBmcm9tIHdoaWNoIHRoZSBrZXkgd2FzIGNyZWF0ZWQuIFRodXMgCisgICAgICogaWYgeCBhbmQgeSBhcmUgQ29sbGF0aW9uS2V5cywgdGhlbiB4Lmhhc2hDb2RlKHgpID09IHkuaGFzaENvZGUoKSAKKyAgICAgKiBpZiB4LmVxdWFscyh5KSBpcyB0cnVlLiBUaGlzIGFsbG93cyBsYW5ndWFnZS1zZW5zaXRpdmUgY29tcGFyaXNvbiBpbiBhIAorICAgICAqIGhhc2ggdGFibGUuCisgICAgICogPC9wPgorICAgICAqIEByZXR1cm4gdGhlIGhhc2ggdmFsdWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisJICovCisJcHVibGljIGludCBoYXNoQ29kZSgpIHsKKwkJcmV0dXJuIGtleS5oYXNoQ29kZSgpOworCX0KKwkKKwkvKioKKwkgKiBSZXR1cm4gYSBkZXNjcmlwdGlvbiBvZiB0aGUgQ29sbGF0aW9uS2V5LgorICAgICAqIEByZXR1cm4gYSBkZXNjcmlwdGlvbiBvZiB0aGUgQ29sbGF0aW9uS2V5LCB1c2VkIGZvciBkZWJ1Z2dpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMgorCSAqLworCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisJCXJldHVybiBrZXkudG9TdHJpbmcoKTsKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjYwMzIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3IuamF2YQpAQCAtMCwwICsxLDU2NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisqIDxwPkNvbGxhdG9yIHBlcmZvcm1zIGxvY2FsZS1zZW5zaXRpdmUgc3RyaW5nIGNvbXBhcmlzb24uPC9wPgorKgorKiA8cD5Gb2xsb3dpbmcgdGhlIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZz5Vbmljb2RlCisqIENvbnNvcnRpdW08L2E+J3Mgc3BlY2lmaWNhdGlvbnMgZm9yIHRoZQorKiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjEwLyI+IFVuaWNvZGUgQ29sbGF0aW9uCisqIEFsZ29yaXRobSAoVUNBKTwvYT4sIHRoZXJlIGFyZSA1IGRpZmZlcmVudCBsZXZlbHMgb2Ygc3RyZW5ndGggdXNlZAorKiBpbiBjb21wYXJpc29uczoKKyoKKyogPHVsPgorKiA8bGk+UFJJTUFSWSBzdHJlbmd0aDogVHlwaWNhbGx5LCB0aGlzIGlzIHVzZWQgdG8gZGVub3RlIGRpZmZlcmVuY2VzIGJldHdlZW4KKyogICAgIGJhc2UgY2hhcmFjdGVycyAoZm9yIGV4YW1wbGUsICJhIiAmbHQ7ICJiIikuCisqICAgICBJdCBpcyB0aGUgc3Ryb25nZXN0IGRpZmZlcmVuY2UuIEZvciBleGFtcGxlLCBkaWN0aW9uYXJpZXMgYXJlIGRpdmlkZWQKKyogICAgIGludG8gZGlmZmVyZW50IHNlY3Rpb25zIGJ5IGJhc2UgY2hhcmFjdGVyLgorKiA8bGk+U0VDT05EQVJZIHN0cmVuZ3RoOiBBY2NlbnRzIGluIHRoZSBjaGFyYWN0ZXJzIGFyZSBjb25zaWRlcmVkIHNlY29uZGFyeQorKiAgICAgZGlmZmVyZW5jZXMgKGZvciBleGFtcGxlLCAiYXMiICZsdDsgIiZhZ3JhdmU7cyIgJmx0OyAiYXQiKS4gT3RoZXIKKyogICAgIGRpZmZlcmVuY2VzCisqICAgICBiZXR3ZWVuIGxldHRlcnMgY2FuIGFsc28gYmUgY29uc2lkZXJlZCBzZWNvbmRhcnkgZGlmZmVyZW5jZXMsIGRlcGVuZGluZworKiAgICAgb24gdGhlIGxhbmd1YWdlLiBBIHNlY29uZGFyeSBkaWZmZXJlbmNlIGlzIGlnbm9yZWQgd2hlbiB0aGVyZSBpcyBhCisqICAgICBwcmltYXJ5IGRpZmZlcmVuY2UgYW55d2hlcmUgaW4gdGhlIHN0cmluZ3MuCisqIDxsaT5URVJUSUFSWSBzdHJlbmd0aDogVXBwZXIgYW5kIGxvd2VyIGNhc2UgZGlmZmVyZW5jZXMgaW4gY2hhcmFjdGVycyBhcmUKKyogICAgIGRpc3Rpbmd1aXNoZWQgYXQgdGVydGlhcnkgc3RyZW5ndGggKGZvciBleGFtcGxlLCAiYW8iICZsdDsgIkFvIiAmbHQ7CisqICAgICAiYSZvZ3JhdmU7IikuIEluIGFkZGl0aW9uLCBhIHZhcmlhbnQgb2YgYSBsZXR0ZXIgZGlmZmVycyBmcm9tIHRoZSBiYXNlCisqICAgICBmb3JtIG9uIHRoZSB0ZXJ0aWFyeSBzdHJlbmd0aCAoc3VjaCBhcyAiQSIgYW5kICImIzkzOTg7IikuIEFub3RoZXIKKyogICAgIGV4YW1wbGUgaXMgdGhlCisqICAgICBkaWZmZXJlbmNlIGJldHdlZW4gbGFyZ2UgYW5kIHNtYWxsIEthbmEuIEEgdGVydGlhcnkgZGlmZmVyZW5jZSBpcyBpZ25vcmVkCisqICAgICB3aGVuIHRoZXJlIGlzIGEgcHJpbWFyeSBvciBzZWNvbmRhcnkgZGlmZmVyZW5jZSBhbnl3aGVyZSBpbiB0aGUgc3RyaW5ncy4KKyogPGxpPlFVQVRFUk5BUlkgc3RyZW5ndGg6IFdoZW4gcHVuY3R1YXRpb24gaXMgaWdub3JlZAorKiAgICAgPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfQ29uY2VwdHMuaHRtbCNJZ25vcmluZ19QdW5jdHVhdGlvbiI+CisqICAgICAoc2VlIElnbm9yaW5nIFB1bmN0dWF0aW9ucyBpbiB0aGUgdXNlciBndWlkZSk8L2E+IGF0IFBSSU1BUlkgdG8gVEVSVElBUlkKKyogICAgIHN0cmVuZ3RoLCBhbiBhZGRpdGlvbmFsIHN0cmVuZ3RoIGxldmVsIGNhbgorKiAgICAgYmUgdXNlZCB0byBkaXN0aW5ndWlzaCB3b3JkcyB3aXRoIGFuZCB3aXRob3V0IHB1bmN0dWF0aW9uIChmb3IgZXhhbXBsZSwKKyogICAgICJhYiIgJmx0OyAiYS1iIiAmbHQ7ICJhQiIpLgorKiAgICAgVGhpcyBkaWZmZXJlbmNlIGlzIGlnbm9yZWQgd2hlbiB0aGVyZSBpcyBhIFBSSU1BUlksIFNFQ09OREFSWSBvciBURVJUSUFSWQorKiAgICAgZGlmZmVyZW5jZS4gVGhlIFFVQVRFUk5BUlkgc3RyZW5ndGggc2hvdWxkIG9ubHkgYmUgdXNlZCBpZiBpZ25vcmluZworKiAgICAgcHVuY3R1YXRpb24gaXMgcmVxdWlyZWQuCisqIDxsaT5JREVOVElDQUwgc3RyZW5ndGg6CisqICAgICBXaGVuIGFsbCBvdGhlciBzdHJlbmd0aHMgYXJlIGVxdWFsLCB0aGUgSURFTlRJQ0FMIHN0cmVuZ3RoIGlzIHVzZWQgYXMgYQorKiAgICAgdGllYnJlYWtlci4gVGhlIFVuaWNvZGUgY29kZSBwb2ludCB2YWx1ZXMgb2YgdGhlIE5GRCBmb3JtIG9mIGVhY2ggc3RyaW5nCisqICAgICBhcmUgY29tcGFyZWQsIGp1c3QgaW4gY2FzZSB0aGVyZSBpcyBubyBkaWZmZXJlbmNlLgorKiAgICAgRm9yIGV4YW1wbGUsIEhlYnJldyBjYW50ZWxsYXRpb24gbWFya3MgYXJlIG9ubHkgZGlzdGluZ3Vpc2hlZCBhdCB0aGlzCisqICAgICBzdHJlbmd0aC4gVGhpcyBzdHJlbmd0aCBzaG91bGQgYmUgdXNlZCBzcGFyaW5nbHksIGFzIG9ubHkgY29kZSBwb2ludAorKiAgICAgdmFsdWUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0d28gc3RyaW5ncyBpcyBhbiBleHRyZW1lbHkgcmFyZSBvY2N1cnJlbmNlLgorKiAgICAgVXNpbmcgdGhpcyBzdHJlbmd0aCBzdWJzdGFudGlhbGx5IGRlY3JlYXNlcyB0aGUgcGVyZm9ybWFuY2UgZm9yIGJvdGgKKyogICAgIGNvbXBhcmlzb24gYW5kIGNvbGxhdGlvbiBrZXkgZ2VuZXJhdGlvbiBBUElzLiBUaGlzIHN0cmVuZ3RoIGFsc28KKyogICAgIGluY3JlYXNlcyB0aGUgc2l6ZSBvZiB0aGUgY29sbGF0aW9uIGtleS4KKyogPC91bD4KKyoKKyogVW5saWtlIHRoZSBKREssIElDVTRKJ3MgQ29sbGF0b3IgZGVhbHMgb25seSB3aXRoIDIgZGVjb21wb3NpdGlvbiBtb2RlcywKKyogdGhlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIG1vZGUgYW5kIG9uZSB0aGF0IGRvZXMgbm90IHVzZSBhbnkgZGVjb21wb3NpdGlvbi4KKyogVGhlIGNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbiBtb2RlLCBqYXZhLnRleHQuQ29sbGF0b3IuRlVMTF9ERUNPTVBPU0lUSU9OCisqIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZS4gSWYgdGhlIGNhbm9uaWNhbAorKiBkZWNvbXBvc2l0aW9uIG1vZGUgaXMgc2V0LCB0aGUgQ29sbGF0b3IgaGFuZGxlcyB1bi1ub3JtYWxpemVkIHRleHQgcHJvcGVybHksCisqIHByb2R1Y2luZyB0aGUgc2FtZSByZXN1bHRzIGFzIGlmIHRoZSB0ZXh0IHdlcmUgbm9ybWFsaXplZCBpbiBORkQuIElmCisqIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIGlzIHR1cm5lZCBvZmYsIGl0IGlzIHRoZSB1c2VyJ3MgcmVzcG9uc2liaWxpdHkgdG8KKyogZW5zdXJlIHRoYXQgYWxsIHRleHQgaXMgYWxyZWFkeSBpbiB0aGUgYXBwcm9wcmlhdGUgZm9ybSBiZWZvcmUgcGVyZm9ybWluZworKiBhIGNvbXBhcmlzb24gb3IgYmVmb3JlIGdldHRpbmcgYSBDb2xsYXRpb25LZXkuPC9wPgorKgorKiA8cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29sbGF0aW9uIHNlcnZpY2Ugc2VlIHRoZQorKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9JbnRyby5odG1sIj51c2VycworKiBndWlkZTwvYT4uPC9wPgorKgorKiA8cD5FeGFtcGxlcyBvZiB1c2UKKyogPHByZT4KKyogLy8gR2V0IHRoZSBDb2xsYXRvciBmb3IgVVMgRW5nbGlzaCBhbmQgc2V0IGl0cyBzdHJlbmd0aCB0byBQUklNQVJZCisqIENvbGxhdG9yIHVzQ29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworKiB1c0NvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworKiBpZiAodXNDb2xsYXRvci5jb21wYXJlKCJhYmMiLCAiQUJDIikgPT0gMCkgeworKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdHJpbmdzIGFyZSBlcXVpdmFsZW50Iik7CisqIH0KKyoKKyogVGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyB0byBjb21wYXJlIHR3byBzdHJpbmdzIHVzaW5nIHRoZQorKiBDb2xsYXRvciBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorKgorKiAvLyBDb21wYXJlIHR3byBzdHJpbmdzIGluIHRoZSBkZWZhdWx0IGxvY2FsZQorKiBDb2xsYXRvciBteUNvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyogbXlDb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKE5PX0RFQ09NUE9TSVRJT04pOworKiBpZiAobXlDb2xsYXRvci5jb21wYXJlKCImYWdyYXZlOyYjOTI7dTAzMjUiLCAiYSYjOTI7dTAzMjUmIzc2ODsiKSAhPSAwKSB7CisqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiZhZ3JhdmU7JiM5Mjt1MDMyNSBpcyBub3QgZXF1YWxzIHRvIGEmIzkyO3UwMzI1JiM3Njg7IHdpdGhvdXQgZGVjb21wb3NpdGlvbiIpOworKiAgICAgbXlDb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyogICAgIGlmIChteUNvbGxhdG9yLmNvbXBhcmUoIiZhZ3JhdmU7JiM5Mjt1MDMyNSIsICJhJiM5Mjt1MDMyNSYjNzY4OyIpICE9IDApIHsKKyogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yOiAmYWdyYXZlOyYjOTI7dTAzMjUgc2hvdWxkIGJlIGVxdWFscyB0byBhJiM5Mjt1MDMyNSYjNzY4OyB3aXRoIGRlY29tcG9zaXRpb24iKTsKKyogICAgIH0KKyogICAgIGVsc2UgeworKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiJmFncmF2ZTsmIzkyO3UwMzI1IGlzIGVxdWFscyB0byBhJiM5Mjt1MDMyNSYjNzY4OyB3aXRoIGRlY29tcG9zaXRpb24iKTsKKyogICAgIH0KKyogfQorKiBlbHNlIHsKKyogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXJyb3I6ICZhZ3JhdmU7JiM5Mjt1MDMyNSBzaG91bGQgYmUgbm90IGVxdWFscyB0byBhJiM5Mjt1MDMyNSYjNzY4OyB3aXRob3V0IGRlY29tcG9zaXRpb24iKTsKKyogfQorKiA8L3ByZT4KKyogPC9wPgorKiBAc2VlIENvbGxhdGlvbktleQorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc3RhYmxlIElDVSAyLjgKKyovCitwdWJsaWMgY2xhc3MgQ29sbGF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yLCBDbG9uZWFibGUKK3sKKwkvKioKKwkgKiBAaW50ZXJuYWwKKwkgKi8KKwlwcml2YXRlIGZpbmFsIGphdmEudGV4dC5Db2xsYXRvciBjb2xsYXRvcjsKKwkKKwkvKioKKwkgKiBAaW50ZXJuYWwKKwkgKi8KKwlwcml2YXRlIENvbGxhdG9yKGphdmEudGV4dC5Db2xsYXRvciBkZWxlZ2F0ZSkgeworCQl0aGlzLmNvbGxhdG9yID0gZGVsZWdhdGU7CisJfQorCQorCS8qKgorCSAqIENyZWF0ZSBhIGNvbGxhdG9yIHdpdGggYSBudWxsIGRlbGVnYXRlLgorCSAqIEZvciB1c2UgYnkgcG9zc2libGUgc3ViY2xhc3NlcnMuICBUaGlzIGlzIHByZXNlbnQgc2luY2UKKwkgKiB0aGUgb3JpZ2luYWwgQ29sbGF0b3IgaXMgYWJzdHJhY3QsIGFuZCBzbywgaW4gdGhlb3J5CisJICogc3ViY2xhc3NhYmxlLiAgQWxsIG1lbWJlciBBUElzIG11c3QgYmUgb3ZlcnJpZGRlbi4KKwkgKi8KKwlwcm90ZWN0ZWQgQ29sbGF0b3IoKSB7CisJCXRoaXMuY29sbGF0b3IgPSBudWxsOworCX0KKwkKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogU3Ryb25nZXN0IGNvbGxhdG9yIHN0cmVuZ3RoIHZhbHVlLiBUeXBpY2FsbHkgdXNlZCB0byBkZW5vdGUgZGlmZmVyZW5jZXMKKyAgICAgKiBiZXR3ZWVuIGJhc2UgY2hhcmFjdGVycy4gU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZXhwbGFuYXRpb24uCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNnZXRTdHJlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFBSSU1BUlkgPSBqYXZhLnRleHQuQ29sbGF0b3IuUFJJTUFSWTsKKworICAgIC8qKgorICAgICAqIFNlY29uZCBsZXZlbCBjb2xsYXRvciBzdHJlbmd0aCB2YWx1ZS4KKyAgICAgKiBBY2NlbnRzIGluIHRoZSBjaGFyYWN0ZXJzIGFyZSBjb25zaWRlcmVkIHNlY29uZGFyeSBkaWZmZXJlbmNlcy4KKyAgICAgKiBPdGhlciBkaWZmZXJlbmNlcyBiZXR3ZWVuIGxldHRlcnMgY2FuIGFsc28gYmUgY29uc2lkZXJlZCBzZWNvbmRhcnkKKyAgICAgKiBkaWZmZXJlbmNlcywgZGVwZW5kaW5nIG9uIHRoZSBsYW5ndWFnZS4KKyAgICAgKiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBleHBsYW5hdGlvbi4KKyAgICAgKiBAc2VlICNzZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0VDT05EQVJZID0gamF2YS50ZXh0LkNvbGxhdG9yLlNFQ09OREFSWTsKKworICAgIC8qKgorICAgICAqIFRoaXJkIGxldmVsIGNvbGxhdG9yIHN0cmVuZ3RoIHZhbHVlLgorICAgICAqIFVwcGVyIGFuZCBsb3dlciBjYXNlIGRpZmZlcmVuY2VzIGluIGNoYXJhY3RlcnMgYXJlIGRpc3Rpbmd1aXNoZWQgYXQgdGhpcworICAgICAqIHN0cmVuZ3RoIGxldmVsLiBJbiBhZGRpdGlvbiwgYSB2YXJpYW50IG9mIGEgbGV0dGVyIGRpZmZlcnMgZnJvbSB0aGUgYmFzZQorICAgICAqIGZvcm0gb24gdGhlIHRlcnRpYXJ5IGxldmVsLgorICAgICAqIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGV4cGxhbmF0aW9uLgorICAgICAqIEBzZWUgI3NldFN0cmVuZ3RoCisgICAgICogQHNlZSAjZ2V0U3RyZW5ndGgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBURVJUSUFSWSA9IGphdmEudGV4dC5Db2xsYXRvci5URVJUSUFSWTsKKworICAgIC8qKgorICAgICAqIEZvdXJ0aCBsZXZlbCBjb2xsYXRvciBzdHJlbmd0aCB2YWx1ZS4KKyAgICAgKiBXaGVuIHB1bmN0dWF0aW9uIGlzIGlnbm9yZWQKKyAgICAgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9Db25jZXB0cy5odG1sI0lnbm9yaW5nX1B1bmN0dWF0aW9uIj4KKyAgICAgKiAoc2VlIElnbm9yaW5nIFB1bmN0dWF0aW9ucyBpbiB0aGUgdXNlciBndWlkZSk8L2E+IGF0IFBSSU1BUlkgdG8gVEVSVElBUlkKKyAgICAgKiBzdHJlbmd0aCwgYW4gYWRkaXRpb25hbCBzdHJlbmd0aCBsZXZlbCBjYW4KKyAgICAgKiBiZSB1c2VkIHRvIGRpc3Rpbmd1aXNoIHdvcmRzIHdpdGggYW5kIHdpdGhvdXQgcHVuY3R1YXRpb24uCisgICAgICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZXhwbGFuYXRpb24uCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNnZXRTdHJlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFFVQVRFUk5BUlkgPSBqYXZhLnRleHQuQ29sbGF0b3IuSURFTlRJQ0FMOworCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogU21hbGxlc3QgQ29sbGF0b3Igc3RyZW5ndGggdmFsdWUuIFdoZW4gYWxsIG90aGVyIHN0cmVuZ3RocyBhcmUgZXF1YWwsCisgICAgICogdGhlIElERU5USUNBTCBzdHJlbmd0aCBpcyB1c2VkIGFzIGEgdGllYnJlYWtlci4gVGhlIFVuaWNvZGUgY29kZSBwb2ludAorICAgICAqIHZhbHVlcyBvZiB0aGUgTkZEIGZvcm0gb2YgZWFjaCBzdHJpbmcgYXJlIGNvbXBhcmVkLCBqdXN0IGluIGNhc2UgdGhlcmUKKyAgICAgKiBpcyBubyBkaWZmZXJlbmNlLgorICAgICAqIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGV4cGxhbmF0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoaXMgdmFsdWUgaXMgZGlmZmVyZW50IGZyb20gSkRLJ3MKKyAgICAgKiA8L3A+CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSURFTlRJQ0FMID0gamF2YS50ZXh0LkNvbGxhdG9yLkZVTExfREVDT01QT1NJVElPTjsKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggSmF2YSBBUElzIG9ubHkuICBJdAorICAgICAqIHNob3VsZCBub3QgYmUgdXNlZCwgSURFTlRJQ0FMIHNob3VsZCBiZSB1c2VkIGluc3RlYWQuICBJQ1UncworICAgICAqIGNvbGxhdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEphdmEncyBGVUxMX0RFQ09NUE9TSVRJT04gbW9kZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBkZXByZWNhdGVkIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggSmF2YSBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZVTExfREVDT01QT1NJVElPTiA9IGphdmEudGV4dC5Db2xsYXRvci5GVUxMX0RFQ09NUE9TSVRJT047CisKKyAgICAvKioKKyAgICAgKiA8cD5EZWNvbXBvc2l0aW9uIG1vZGUgdmFsdWUuIFdpdGggTk9fREVDT01QT1NJVElPTiBzZXQsIFN0cmluZ3MKKyAgICAgKiB3aWxsIG5vdCBiZSBkZWNvbXBvc2VkIGZvciBjb2xsYXRpb24uIFRoaXMgaXMgdGhlIGRlZmF1bHQKKyAgICAgKiBkZWNvbXBvc2l0aW9uIHNldHRpbmcgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQgYnkgdGhlIGxvY2FsZQorICAgICAqIHVzZWQgdG8gY3JlYXRlIHRoZSBDb2xsYXRvci48L3A+CisgICAgICoKKyAgICAgKiA8cD48c3Ryb25nPk5vdGU8L3N0cm9uZz4gdGhpcyB2YWx1ZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgSkRLJ3MuPC9wPgorICAgICAqIEBzZWUgI0NBTk9OSUNBTF9ERUNPTVBPU0lUSU9OCisgICAgICogQHNlZSAjZ2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBzZWUgI3NldERlY29tcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBOT19ERUNPTVBPU0lUSU9OID0gamF2YS50ZXh0LkNvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT047CisKKyAgICAvKioKKyAgICAgKiA8cD5EZWNvbXBvc2l0aW9uIG1vZGUgdmFsdWUuIFdpdGggQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04gc2V0LAorICAgICAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgY2Fub25pY2FsIHZhcmlhbnRzIGFjY29yZGluZyB0byB0aGUgVW5pY29kZSBzdGFuZGFyZAorICAgICAqIHdpbGwgYmUgZGVjb21wb3NlZCBmb3IgY29sbGF0aW9uLjwvcD4KKyAgICAgKgorICAgICAqIDxwPkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OIGNvcnJlc3BvbmRzIHRvIE5vcm1hbGl6YXRpb24gRm9ybSBEIGFzCisgICAgICogZGVzY3JpYmVkIGluIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvIj4KKyAgICAgKiBVbmljb2RlIFRlY2huaWNhbCBSZXBvcnQgIzE1PC9hPi4KKyAgICAgKiA8L3A+CisgICAgICogQHNlZSAjTk9fREVDT01QT1NJVElPTgorICAgICAqIEBzZWUgI2dldERlY29tcG9zaXRpb24KKyAgICAgKiBAc2VlICNzZXREZWNvbXBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04gPSBqYXZhLnRleHQuQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT047CisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gcHVibGljIHNldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIDxwPlNldHMgdGhpcyBDb2xsYXRvcidzIHN0cmVuZ3RoIHByb3BlcnR5LiBUaGUgc3RyZW5ndGggcHJvcGVydHkKKyAgICAgKiBkZXRlcm1pbmVzIHRoZSBtaW5pbXVtIGxldmVsIG9mIGRpZmZlcmVuY2UgY29uc2lkZXJlZCBzaWduaWZpY2FudAorICAgICAqIGR1cmluZyBjb21wYXJpc29uLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlRoZSBkZWZhdWx0IHN0cmVuZ3RoIGZvciB0aGUgQ29sbGF0b3IgaXMgVEVSVElBUlksIHVubGVzcyBzcGVjaWZpZWQKKyAgICAgKiBvdGhlcndpc2UgYnkgdGhlIGxvY2FsZSB1c2VkIHRvIGNyZWF0ZSB0aGUgQ29sbGF0b3IuPC9wPgorICAgICAqCisgICAgICogPHA+U2VlIHRoZSBDb2xsYXRvciBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuPC9wPgorICAgICAqIEBwYXJhbSBuZXdTdHJlbmd0aCB0aGUgbmV3IHN0cmVuZ3RoIHZhbHVlLgorICAgICAqIEBzZWUgI2dldFN0cmVuZ3RoCisgICAgICogQHNlZSAjUFJJTUFSWQorICAgICAqIEBzZWUgI1NFQ09OREFSWQorICAgICAqIEBzZWUgI1RFUlRJQVJZCisgICAgICogQHNlZSAjUVVBVEVSTkFSWQorICAgICAqIEBzZWUgI0lERU5USUNBTAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBuZXcgc3RyZW5ndGggdmFsdWUgaXMgbm90IG9uZQorICAgICAqICAgICAgICAgICAgICAgIG9mIFBSSU1BUlksIFNFQ09OREFSWSwgVEVSVElBUlksIFFVQVRFUk5BUlkgb3IgSURFTlRJQ0FMLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFN0cmVuZ3RoKGludCBuZXdTdHJlbmd0aCkgeworICAgIAljb2xsYXRvci5zZXRTdHJlbmd0aChuZXdTdHJlbmd0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0IHRoZSBkZWNvbXBvc2l0aW9uIG1vZGUgb2YgdGhpcyBDb2xsYXRvci4gIFNldHRpbmcgdGhpcworICAgICAqIGRlY29tcG9zaXRpb24gcHJvcGVydHkgd2l0aCBDQU5PTklDQUxfREVDT01QT1NJVElPTiBhbGxvd3MgdGhlCisgICAgICogQ29sbGF0b3IgdG8gaGFuZGxlIHVuLW5vcm1hbGl6ZWQgdGV4dCBwcm9wZXJseSwgcHJvZHVjaW5nIHRoZQorICAgICAqIHNhbWUgcmVzdWx0cyBhcyBpZiB0aGUgdGV4dCB3ZXJlIG5vcm1hbGl6ZWQuIElmCisgICAgICogTk9fREVDT01QT1NJVElPTiBpcyBzZXQsIGl0IGlzIHRoZSB1c2VyJ3MgcmVzcG9uc2liaWxpdHkgdG8KKyAgICAgKiBpbnN1cmUgdGhhdCBhbGwgdGV4dCBpcyBhbHJlYWR5IGluIHRoZSBhcHByb3ByaWF0ZSBmb3JtIGJlZm9yZQorICAgICAqIGEgY29tcGFyaXNvbiBvciBiZWZvcmUgZ2V0dGluZyBhIENvbGxhdGlvbktleS4gQWRqdXN0aW5nCisgICAgICogZGVjb21wb3NpdGlvbiBtb2RlIGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3QgYmV0d2VlbiBmYXN0ZXIgYW5kCisgICAgICogbW9yZSBjb21wbGV0ZSBjb2xsYXRpb24gYmVoYXZpb3IuPC9wPgorICAgICAqCisgICAgICogPHA+U2luY2UgYSBncmVhdCBtYW55IG9mIHRoZSB3b3JsZCdzIGxhbmd1YWdlcyBkbyBub3QgcmVxdWlyZQorICAgICAqIHRleHQgbm9ybWFsaXphdGlvbiwgbW9zdCBsb2NhbGVzIHNldCBOT19ERUNPTVBPU0lUSU9OIGFzIHRoZQorICAgICAqIGRlZmF1bHQgZGVjb21wb3NpdGlvbiBtb2RlLjwvcD4KKyAgICAgKgorICAgICAqIFRoZSBkZWZhdWx0IGRlY29tcG9zaXRvbiBtb2RlIGZvciB0aGUgQ29sbGF0b3IgaXMKKyAgICAgKiBOT19ERUNPTVBPU0lUT04sIHVubGVzcyBzcGVjaWZpZWQgb3RoZXJ3aXNlIGJ5IHRoZSBsb2NhbGUgdXNlZAorICAgICAqIHRvIGNyZWF0ZSB0aGUgQ29sbGF0b3IuPC9wPgorICAgICAqCisgICAgICogPHA+U2VlIGdldERlY29tcG9zaXRpb24gZm9yIGEgZGVzY3JpcHRpb24gb2YgZGVjb21wb3NpdGlvbgorICAgICAqIG1vZGUuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGRlY29tcG9zaXRpb24gdGhlIG5ldyBkZWNvbXBvc2l0aW9uIG1vZGUKKyAgICAgKiBAc2VlICNnZXREZWNvbXBvc2l0aW9uCisgICAgICogQHNlZSAjTk9fREVDT01QT1NJVElPTgorICAgICAqIEBzZWUgI0NBTk9OSUNBTF9ERUNPTVBPU0lUSU9OCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gSWYgdGhlIGdpdmVuIHZhbHVlIGlzIG5vdCBhIHZhbGlkCisgICAgICogICAgICAgICAgICBkZWNvbXBvc2l0aW9uIG1vZGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGVjb21wb3NpdGlvbihpbnQgZGVjb21wb3NpdGlvbikgeworICAgIAljb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKGRlY29tcG9zaXRpb24pOworICAgIH0KKworICAgIC8vIHB1YmxpYyBnZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBDb2xsYXRvciBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogVGhlIGRlZmF1bHQgbG9jYWxlIGlzIGRldGVybWluZWQgYnkgamF2YS51dGlsLkxvY2FsZS5nZXREZWZhdWx0KCkuCisgICAgICogQHJldHVybiB0aGUgQ29sbGF0b3IgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSAoZm9yIGV4YW1wbGUsIGVuX1VTKSBpZiBpdAorICAgICAqICAgICAgICAgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkuIE90aGVyd2lzZSBpZiB0aGVyZSBpcyBubyBDb2xsYXRvcgorICAgICAqICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGxvY2FsZSwgdGhlIGRlZmF1bHQgVUNBIGNvbGxhdG9yCisgICAgICogICAgICAgICB3aWxsIGJlIHJldHVybmVkLgorICAgICAqIEBzZWUgamF2YS51dGlsLkxvY2FsZSNnZXREZWZhdWx0KCkKKyAgICAgKiBAc2VlICNnZXRJbnN0YW5jZShMb2NhbGUpCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDb2xsYXRvciBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDb2xsYXRvcihqYXZhLnRleHQuQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKSk7CisgICAgfQorCisgICAgIC8qKgorICAgICAqIEdldHMgdGhlIENvbGxhdG9yIGZvciB0aGUgZGVzaXJlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgZGVzaXJlZCBsb2NhbGUuCisgICAgICogQHJldHVybiBDb2xsYXRvciBmb3IgdGhlIGRlc2lyZWQgbG9jYWxlIGlmIGl0IGlzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAqICAgICAgICAgT3RoZXJ3aXNlIGlmIHRoZXJlIGlzIG5vIENvbGxhdG9yCisgICAgICogICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgbG9jYWxlLCBhIGRlZmF1bHQgVUNBIGNvbGxhdG9yIHdpbGwKKyAgICAgKiAgICAgICAgIGJlIHJldHVybmVkLgorICAgICAqIEBzZWUgamF2YS51dGlsLkxvY2FsZQorICAgICAqIEBzZWUgamF2YS51dGlsLlJlc291cmNlQnVuZGxlCisgICAgICogQHNlZSAjZ2V0SW5zdGFuY2UoTG9jYWxlKQorICAgICAqIEBzZWUgI2dldEluc3RhbmNlKCkKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29sbGF0b3IgZ2V0SW5zdGFuY2UoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAJcmV0dXJuIGdldEluc3RhbmNlKGxvY2FsZS50b0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBDb2xsYXRvciBmb3IgdGhlIGRlc2lyZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGRlc2lyZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gQ29sbGF0b3IgZm9yIHRoZSBkZXNpcmVkIGxvY2FsZSBpZiBpdCBpcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAgKiAgICAgICAgIE90aGVyd2lzZSBpZiB0aGVyZSBpcyBubyBDb2xsYXRvcgorICAgICAqICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGxvY2FsZSwgYSBkZWZhdWx0IFVDQSBjb2xsYXRvciB3aWxsCisgICAgICogICAgICAgICBiZSByZXR1cm5lZC4KKyAgICAgKiBAc2VlIGphdmEudXRpbC5Mb2NhbGUKKyAgICAgKiBAc2VlIGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZQorICAgICAqIEBzZWUgI2dldEluc3RhbmNlKFVMb2NhbGUpCisgICAgICogQHNlZSAjZ2V0SW5zdGFuY2UoKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29sbGF0b3IgZ2V0SW5zdGFuY2UoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IENvbGxhdG9yKGphdmEudGV4dC5Db2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAgLyoqCisgICAgICogR2V0IHRoZSBzZXQgb2YgbG9jYWxlcywgYXMgTG9jYWxlIG9iamVjdHMsIGZvciB3aGljaCBjb2xsYXRvcnMKKyAgICAgKiBhcmUgaW5zdGFsbGVkLiAgTm90ZSB0aGF0IExvY2FsZSBvYmplY3RzIGRvIG5vdCBzdXBwb3J0IFJGQyAzMDY2LgorICAgICAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgbG9jYWxlcyBpbiB3aGljaCBjb2xsYXRvcnMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBUaGlzIGxpc3QgaW5jbHVkZXMgYW55IHRoYXQgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQsIGluIGFkZGl0aW9uIHRvCisgICAgICogdGhvc2UgdGhhdCBhcmUgaW5zdGFsbGVkIHdpdGggSUNVNEouCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgIAlyZXR1cm4gamF2YS50ZXh0LkNvbGxhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBsb2NhbGVzLCBhcyBVTG9jYWxlIG9iamVjdHMsIGZvciB3aGljaCBjb2xsYXRvcnMKKyAgICAgKiBhcmUgaW5zdGFsbGVkLiAgVUxvY2FsZSBvYmplY3RzIHN1cHBvcnQgUkZDIDMwNjYuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBsb2NhbGVzIGluIHdoaWNoIGNvbGxhdG9ycyBhcmUgaW5zdGFsbGVkLgorICAgICAqIFRoaXMgbGlzdCBpbmNsdWRlcyBhbnkgdGhhdCBoYXZlIGJlZW4gcmVnaXN0ZXJlZCwgaW4gYWRkaXRpb24gdG8KKyAgICAgKiB0aG9zZSB0aGF0IGFyZSBpbnN0YWxsZWQgd2l0aCBJQ1U0Si4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgIAlMb2NhbGVbXSBsb2NhbGVzID0gamF2YS50ZXh0LkNvbGxhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAJVUxvY2FsZVtdIHVsb2NhbGVzID0gbmV3IFVMb2NhbGVbbG9jYWxlcy5sZW5ndGhdOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAJCXVsb2NhbGVzW2ldID0gVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlc1tpXSk7CisgICAgCX0KKyAgICAJcmV0dXJuIHVsb2NhbGVzOworICAgIH0KKyAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgYWxsIHBvc3NpYmxlIGtleXdvcmRzIHRoYXQgYXJlIHJlbGV2YW50IHRvCisgICAgICogY29sbGF0aW9uLiBBdCB0aGlzIHBvaW50LCB0aGUgb25seSByZWNvZ25pemVkIGtleXdvcmQgZm9yIHRoaXMKKyAgICAgKiBzZXJ2aWNlIGlzICJjb2xsYXRpb24iLgorICAgICAqIEByZXR1cm4gYW4gYXJyYXkgb2YgdmFsaWQgY29sbGF0aW9uIGtleXdvcmRzLgorICAgICAqIEBzZWUgI2dldEtleXdvcmRWYWx1ZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gZ2V0S2V5d29yZHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nWzBdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIGtleXdvcmQsIHJldHVybiBhbiBhcnJheSBvZiBhbGwgdmFsdWVzIGZvcgorICAgICAqIHRoYXQga2V5d29yZCB0aGF0IGFyZSBjdXJyZW50bHkgaW4gdXNlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIG9uZSBvZiB0aGUga2V5d29yZHMgcmV0dXJuZWQgYnkgZ2V0S2V5d29yZHMuCisgICAgICogQHNlZSAjZ2V0S2V5d29yZHMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gZ2V0S2V5d29yZFZhbHVlcyhTdHJpbmcga2V5d29yZCkgeworICAgIAlyZXR1cm4gbmV3IFN0cmluZ1swXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5SZXR1cm5zIHRoaXMgQ29sbGF0b3IncyBzdHJlbmd0aCBwcm9wZXJ0eS4gVGhlIHN0cmVuZ3RoIHByb3BlcnR5CisgICAgICogZGV0ZXJtaW5lcyB0aGUgbWluaW11bSBsZXZlbCBvZiBkaWZmZXJlbmNlIGNvbnNpZGVyZWQgc2lnbmlmaWNhbnQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlZSB0aGUgQ29sbGF0b3IgY2xhc3MgZGVzY3JpcHRpb24gZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKiA8L3A+CisgICAgICogQHJldHVybiB0aGlzIENvbGxhdG9yJ3MgY3VycmVudCBzdHJlbmd0aCBwcm9wZXJ0eS4KKyAgICAgKiBAc2VlICNzZXRTdHJlbmd0aAorICAgICAqIEBzZWUgI1BSSU1BUlkKKyAgICAgKiBAc2VlICNTRUNPTkRBUlkKKyAgICAgKiBAc2VlICNURVJUSUFSWQorICAgICAqIEBzZWUgI1FVQVRFUk5BUlkKKyAgICAgKiBAc2VlICNJREVOVElDQUwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFN0cmVuZ3RoKCkgeworICAgICAgICByZXR1cm4gY29sbGF0b3IuZ2V0U3RyZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBHZXQgdGhlIGRlY29tcG9zaXRpb24gbW9kZSBvZiB0aGlzIENvbGxhdG9yLiBEZWNvbXBvc2l0aW9uIG1vZGUKKyAgICAgKiBkZXRlcm1pbmVzIGhvdyBVbmljb2RlIGNvbXBvc2VkIGNoYXJhY3RlcnMgYXJlIGhhbmRsZWQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlZSB0aGUgQ29sbGF0b3IgY2xhc3MgZGVzY3JpcHRpb24gZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKiA8L3A+CisgICAgICogQHJldHVybiB0aGUgZGVjb21wb3NpdGlvbiBtb2RlCisgICAgICogQHNlZSAjc2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBzZWUgI05PX0RFQ09NUE9TSVRJT04KKyAgICAgKiBAc2VlICNDQU5PTklDQUxfREVDT01QT1NJVElPTgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RGVjb21wb3NpdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGNvbGxhdG9yLmdldERlY29tcG9zaXRpb24oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBDb21wYXJlcyB0aGUgc291cmNlIHRleHQgU3RyaW5nIHRvIHRoZSB0YXJnZXQgdGV4dCBTdHJpbmcgYWNjb3JkaW5nIHRvCisgICAgICogdGhpcyBDb2xsYXRvcidzIHJ1bGVzLCBzdHJlbmd0aCBhbmQgZGVjb21wb3NpdGlvbiBtb2RlLgorICAgICAqIFJldHVybnMgYW4gaW50ZWdlciBsZXNzIHRoYW4sCisgICAgICogZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHplcm8gZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHNvdXJjZSBTdHJpbmcgaXMKKyAgICAgKiBsZXNzIHRoYW4sIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiB0aGUgdGFyZ2V0IFN0cmluZy4gU2VlIHRoZSBDb2xsYXRvcgorICAgICAqIGNsYXNzIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlIG9mIHVzZS4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIFN0cmluZy4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSB0YXJnZXQgU3RyaW5nLgorICAgICAqIEByZXR1cm4gUmV0dXJucyBhbiBpbnRlZ2VyIHZhbHVlLiBWYWx1ZSBpcyBsZXNzIHRoYW4gemVybyBpZiBzb3VyY2UgaXMKKyAgICAgKiAgICAgICAgIGxlc3MgdGhhbiB0YXJnZXQsIHZhbHVlIGlzIHplcm8gaWYgc291cmNlIGFuZCB0YXJnZXQgYXJlIGVxdWFsLAorICAgICAqICAgICAgICAgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHplcm8gaWYgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQuCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlICNnZXRDb2xsYXRpb25LZXkKKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIHRocm93biBpZiBlaXRoZXIgYXJndW1lbnRzIGlzIG51bGwuCisgICAgICogICAgICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIGlmIGVpdGhlciBzb3VyY2Ugb3IgdGFyZ2V0IGlzCisgICAgICogICAgICAgICAgICBub3Qgb2YgdGhlIGNsYXNzIFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IHNvdXJjZSwgT2JqZWN0IHRhcmdldCkgeworICAgIAlyZXR1cm4gY29sbGF0b3IuY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgfQorCisgICAgLy8gcHVibGljIG90aGVyIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjb21wYXJpbmcgdGhlIGVxdWFsaXR5IG9mIHR3byB0ZXh0IFN0cmluZ3MgdXNpbmcKKyAgICAgKiB0aGlzIENvbGxhdG9yJ3MgcnVsZXMsIHN0cmVuZ3RoIGFuZCBkZWNvbXBvc2l0aW9uIG1vZGUuCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIHN0cmluZyB0byBiZSBjb21wYXJlZC4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSB0YXJnZXQgc3RyaW5nIHRvIGJlIGNvbXBhcmVkLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc3RyaW5ncyBhcmUgZXF1YWwgYWNjb3JkaW5nIHRvIHRoZSBjb2xsYXRpb24KKyAgICAgKiAgICAgICAgIHJ1bGVzLCBvdGhlcndpc2UgZmFsc2UuCisgICAgICogQHNlZSAjY29tcGFyZQorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gdGhyb3duIGlmIGVpdGhlciBhcmd1bWVudHMgaXMgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCkgeworICAgICAgICByZXR1cm4gKGNvbXBhcmUoc291cmNlLCB0YXJnZXQpID09IDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIENvbXBhcmVzIHRoZSBzb3VyY2UgdGV4dCBTdHJpbmcgdG8gdGhlIHRhcmdldCB0ZXh0IFN0cmluZyBhY2NvcmRpbmcgdG8KKyAgICAgKiB0aGlzIENvbGxhdG9yJ3MgcnVsZXMsIHN0cmVuZ3RoIGFuZCBkZWNvbXBvc2l0aW9uIG1vZGUuCisgICAgICogUmV0dXJucyBhbiBpbnRlZ2VyIGxlc3MgdGhhbiwKKyAgICAgKiBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gemVybyBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgc291cmNlIFN0cmluZyBpcworICAgICAqIGxlc3MgdGhhbiwgZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHRoZSB0YXJnZXQgU3RyaW5nLiBTZWUgdGhlIENvbGxhdG9yCisgICAgICogY2xhc3MgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUgb2YgdXNlLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2UgU3RyaW5nLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGhlIHRhcmdldCBTdHJpbmcuCisgICAgICogQHJldHVybiBSZXR1cm5zIGFuIGludGVnZXIgdmFsdWUuIFZhbHVlIGlzIGxlc3MgdGhhbiB6ZXJvIGlmIHNvdXJjZSBpcworICAgICAqICAgICAgICAgbGVzcyB0aGFuIHRhcmdldCwgdmFsdWUgaXMgemVybyBpZiBzb3VyY2UgYW5kIHRhcmdldCBhcmUgZXF1YWwsCisgICAgICogICAgICAgICB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gemVybyBpZiBzb3VyY2UgaXMgZ3JlYXRlciB0aGFuIHRhcmdldC4KKyAgICAgKiBAc2VlIENvbGxhdGlvbktleQorICAgICAqIEBzZWUgI2dldENvbGxhdGlvbktleQorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gdGhyb3duIGlmIGVpdGhlciBhcmd1bWVudHMgaXMgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmUoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCkgeworICAgIAlyZXR1cm4gY29sbGF0b3IuY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVHJhbnNmb3JtcyB0aGUgU3RyaW5nIGludG8gYSBDb2xsYXRpb25LZXkgc3VpdGFibGUgZm9yIGVmZmljaWVudAorICAgICAqIHJlcGVhdGVkIGNvbXBhcmlzb24uICBUaGUgcmVzdWx0aW5nIGtleSBkZXBlbmRzIG9uIHRoZSBjb2xsYXRvcidzCisgICAgICogcnVsZXMsIHN0cmVuZ3RoIGFuZCBkZWNvbXBvc2l0aW9uIG1vZGUuCisgICAgICogPC9wPgorICAgICAqIDxwPlNlZSB0aGUgQ29sbGF0aW9uS2V5IGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHN0cmluZyB0byBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgQ29sbGF0aW9uS2V5LgorICAgICAqIEByZXR1cm4gdGhlIENvbGxhdGlvbktleSBmb3IgdGhlIGdpdmVuIFN0cmluZyBiYXNlZCBvbiB0aGlzIENvbGxhdG9yJ3MKKyAgICAgKiAgICAgICAgIGNvbGxhdGlvbiBydWxlcy4gSWYgdGhlIHNvdXJjZSBTdHJpbmcgaXMgbnVsbCwgYSBudWxsCisgICAgICogICAgICAgICBDb2xsYXRpb25LZXkgaXMgcmV0dXJuZWQuCisgICAgICogQHNlZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAc2VlICNjb21wYXJlKFN0cmluZywgU3RyaW5nKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBDb2xsYXRpb25LZXkgZ2V0Q29sbGF0aW9uS2V5KFN0cmluZyBzb3VyY2UpIHsKKyAgICAJcmV0dXJuIG5ldyBDb2xsYXRpb25LZXkoY29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZSkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdHJpbmcgc3VpdGFibGUgZm9yIGRlYnVnZ2luZy4KKyAgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBjb2xsYXRvci50b1N0cmluZygpOworICAgIH0KKwkKKyAgIC8qKgorICAgICAqIENsb25lIHRoZSBjb2xsYXRvci4KKyAgICAgKiBAcmV0dXJuIGEgY2xvbmUgb2YgdGhpcyBjb2xsYXRvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgdGhyb3dzIENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDb2xsYXRvcigoamF2YS50ZXh0LkNvbGxhdG9yKWNvbGxhdG9yLmNsb25lKCkpOworICAgIH0KKwkKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiByaHMgaXMgYSBDb2xsYXRvciBhbmQgY29tcGFyZXMgdGhlIHNhbWUgYXMgdGhpcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgcmhzIGVxdWFscyB0aGlzCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGNvbGxhdG9yLmVxdWFscygoKENvbGxhdG9yKXJocykuY29sbGF0b3IpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCQorICAgIC8qKgorICAgICAqIFJldHVybiBhIGhhc2hDb2RlLgorICAgICAqIEByZXR1cm4gYSBoYXNoQ29kZQorICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIGNvbGxhdG9yLmhhc2hDb2RlKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3Yzc4ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9EYXRlRm9ybWF0LmphdmEKQEAgLTAsMCArMSw5ODggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIERhdGVGb3JtYXQgaXMgYW4gYWJzdHJhY3QgY2xhc3MgZm9yIGRhdGUvdGltZSBmb3JtYXR0aW5nIHN1YmNsYXNzZXMgd2hpY2gKKyAqIGZvcm1hdHMgYW5kIHBhcnNlcyBkYXRlcyBvciB0aW1lIGluIGEgbGFuZ3VhZ2UtaW5kZXBlbmRlbnQgbWFubmVyLgorICogVGhlIGRhdGUvdGltZSBmb3JtYXR0aW5nIHN1YmNsYXNzLCBzdWNoIGFzIFNpbXBsZURhdGVGb3JtYXQsIGFsbG93cyBmb3IKKyAqIGZvcm1hdHRpbmcgKGkuZS4sIGRhdGUgLT4gdGV4dCksIHBhcnNpbmcgKHRleHQgLT4gZGF0ZSksIGFuZAorICogbm9ybWFsaXphdGlvbi4gIFRoZSBkYXRlIGlzIHJlcHJlc2VudGVkIGFzIGEgPGNvZGU+RGF0ZTwvY29kZT4gb2JqZWN0IG9yCisgKiBhcyB0aGUgbWlsbGlzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MCwgMDA6MDA6MDAgR01ULgorICoKKyAqIDxwPkRhdGVGb3JtYXQgcHJvdmlkZXMgbWFueSBjbGFzcyBtZXRob2RzIGZvciBvYnRhaW5pbmcgZGVmYXVsdCBkYXRlL3RpbWUKKyAqIGZvcm1hdHRlcnMgYmFzZWQgb24gdGhlIGRlZmF1bHQgb3IgYSBnaXZlbiBsb2FjbGUgYW5kIGEgbnVtYmVyIG9mIGZvcm1hdHRpbmcKKyAqIHN0eWxlcy4gVGhlIGZvcm1hdHRpbmcgc3R5bGVzIGluY2x1ZGUgRlVMTCwgTE9ORywgTUVESVVNLCBhbmQgU0hPUlQuIE1vcmUKKyAqIGRldGFpbCBhbmQgZXhhbXBsZXMgb2YgdXNpbmcgdGhlc2Ugc3R5bGVzIGFyZSBwcm92aWRlZCBpbiB0aGUgbWV0aG9kCisgKiBkZXNjcmlwdGlvbnMuCisgKgorICogPHA+RGF0ZUZvcm1hdCBoZWxwcyB5b3UgdG8gZm9ybWF0IGFuZCBwYXJzZSBkYXRlcyBmb3IgYW55IGxvY2FsZS4KKyAqIFlvdXIgY29kZSBjYW4gYmUgY29tcGxldGVseSBpbmRlcGVuZGVudCBvZiB0aGUgbG9jYWxlIGNvbnZlbnRpb25zIGZvcgorICogbW9udGhzLCBkYXlzIG9mIHRoZSB3ZWVrLCBvciBldmVuIHRoZSBjYWxlbmRhciBmb3JtYXQ6IGx1bmFyIHZzLiBzb2xhci4KKyAqCisgKiA8cD5UbyBmb3JtYXQgYSBkYXRlIGZvciB0aGUgY3VycmVudCBMb2NhbGUsIHVzZSBvbmUgb2YgdGhlCisgKiBzdGF0aWMgZmFjdG9yeSBtZXRob2RzOgorICogPHByZT4KKyAqICBteVN0cmluZyA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCkuZm9ybWF0KG15RGF0ZSk7CisgKiA8L3ByZT4KKyAqIDxwPklmIHlvdSBhcmUgZm9ybWF0dGluZyBtdWx0aXBsZSBudW1iZXJzLCBpdCBpcworICogbW9yZSBlZmZpY2llbnQgdG8gZ2V0IHRoZSBmb3JtYXQgYW5kIHVzZSBpdCBtdWx0aXBsZSB0aW1lcyBzbyB0aGF0CisgKiB0aGUgc3lzdGVtIGRvZXNuJ3QgaGF2ZSB0byBmZXRjaCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2FsCisgKiBsYW5ndWFnZSBhbmQgY291bnRyeSBjb252ZW50aW9ucyBtdWx0aXBsZSB0aW1lcy4KKyAqIDxwcmU+CisgKiAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCk7CisgKiAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKSB7CisgKiAgICBvdXRwdXQucHJpbnRsbihkZi5mb3JtYXQobXlEYXRlW2ldKSArICI7ICIpOworICogIH0KKyAqIDwvcHJlPgorICogPHA+VG8gZm9ybWF0IGEgbnVtYmVyIGZvciBhIGRpZmZlcmVudCBMb2NhbGUsIHNwZWNpZnkgaXQgaW4gdGhlCisgKiBjYWxsIHRvIGdldERhdGVJbnN0YW5jZSgpLgorICogPHByZT4KKyAqICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBMb2NhbGUuRlJBTkNFKTsKKyAqIDwvcHJlPgorICogPHA+WW91IGNhbiB1c2UgYSBEYXRlRm9ybWF0IHRvIHBhcnNlIGFsc28uCisgKiA8cHJlPgorICogIG15RGF0ZSA9IGRmLnBhcnNlKG15U3RyaW5nKTsKKyAqIDwvcHJlPgorICogPHA+VXNlIGdldERhdGVJbnN0YW5jZSB0byBnZXQgdGhlIG5vcm1hbCBkYXRlIGZvcm1hdCBmb3IgdGhhdCBjb3VudHJ5LgorICogVGhlcmUgYXJlIG90aGVyIHN0YXRpYyBmYWN0b3J5IG1ldGhvZHMgYXZhaWxhYmxlLgorICogVXNlIGdldFRpbWVJbnN0YW5jZSB0byBnZXQgdGhlIHRpbWUgZm9ybWF0IGZvciB0aGF0IGNvdW50cnkuCisgKiBVc2UgZ2V0RGF0ZVRpbWVJbnN0YW5jZSB0byBnZXQgYSBkYXRlIGFuZCB0aW1lIGZvcm1hdC4gWW91IGNhbiBwYXNzIGluIAorICogZGlmZmVyZW50IG9wdGlvbnMgdG8gdGhlc2UgZmFjdG9yeSBtZXRob2RzIHRvIGNvbnRyb2wgdGhlIGxlbmd0aCBvZiB0aGUKKyAqIHJlc3VsdDsgZnJvbSBTSE9SVCB0byBNRURJVU0gdG8gTE9ORyB0byBGVUxMLiBUaGUgZXhhY3QgcmVzdWx0IGRlcGVuZHMKKyAqIG9uIHRoZSBsb2NhbGUsIGJ1dCBnZW5lcmFsbHk6CisgKiA8dWw+PGxpPlNIT1JUIGlzIGNvbXBsZXRlbHkgbnVtZXJpYywgc3VjaCBhcyAxMi4xMy41MiBvciAzOjMwcG0KKyAqIDxsaT5NRURJVU0gaXMgbG9uZ2VyLCBzdWNoIGFzIEphbiAxMiwgMTk1MgorICogPGxpPkxPTkcgaXMgbG9uZ2VyLCBzdWNoIGFzIEphbnVhcnkgMTIsIDE5NTIgb3IgMzozMDozMnBtCisgKiA8bGk+RlVMTCBpcyBwcmV0dHkgY29tcGxldGVseSBzcGVjaWZpZWQsIHN1Y2ggYXMKKyAqIFR1ZXNkYXksIEFwcmlsIDEyLCAxOTUyIEFEIG9yIDM6MzA6NDJwbSBQU1QuCisgKiA8L3VsPgorICoKKyAqIDxwPllvdSBjYW4gYWxzbyBzZXQgdGhlIHRpbWUgem9uZSBvbiB0aGUgZm9ybWF0IGlmIHlvdSB3aXNoLgorICogSWYgeW91IHdhbnQgZXZlbiBtb3JlIGNvbnRyb2wgb3ZlciB0aGUgZm9ybWF0IG9yIHBhcnNpbmcsCisgKiAob3Igd2FudCB0byBnaXZlIHlvdXIgdXNlcnMgbW9yZSBjb250cm9sKSwKKyAqIHlvdSBjYW4gdHJ5IGNhc3RpbmcgdGhlIERhdGVGb3JtYXQgeW91IGdldCBmcm9tIHRoZSBmYWN0b3J5IG1ldGhvZHMKKyAqIHRvIGEgU2ltcGxlRGF0ZUZvcm1hdC4gVGhpcyB3aWxsIHdvcmsgZm9yIHRoZSBtYWpvcml0eQorICogb2YgY291bnRyaWVzOyBqdXN0IHJlbWVtYmVyIHRvIHB1dCBpdCBpbiBhIHRyeSBibG9jayBpbiBjYXNlIHlvdQorICogZW5jb3VudGVyIGFuIHVudXN1YWwgb25lLgorICoKKyAqIDxwPllvdSBjYW4gYWxzbyB1c2UgZm9ybXMgb2YgdGhlIHBhcnNlIGFuZCBmb3JtYXQgbWV0aG9kcyB3aXRoCisgKiBQYXJzZVBvc2l0aW9uIGFuZCBGaWVsZFBvc2l0aW9uIHRvCisgKiBhbGxvdyB5b3UgdG8KKyAqIDx1bD48bGk+cHJvZ3Jlc3NpdmVseSBwYXJzZSB0aHJvdWdoIHBpZWNlcyBvZiBhIHN0cmluZy4KKyAqIDxsaT5hbGlnbiBhbnkgcGFydGljdWxhciBmaWVsZCwgb3IgZmluZCBvdXQgd2hlcmUgaXQgaXMgZm9yIHNlbGVjdGlvbgorICogb24gdGhlIHNjcmVlbi4KKyAqIDwvdWw+CisgKgorICogPGg0PlN5bmNocm9uaXphdGlvbjwvaDQ+CisgKgorICogRGF0ZSBmb3JtYXRzIGFyZSBub3Qgc3luY2hyb25pemVkLiBJdCBpcyByZWNvbW1lbmRlZCB0byBjcmVhdGUgc2VwYXJhdGUgCisgKiBmb3JtYXQgaW5zdGFuY2VzIGZvciBlYWNoIHRocmVhZC4gSWYgbXVsdGlwbGUgdGhyZWFkcyBhY2Nlc3MgYSBmb3JtYXQgCisgKiBjb25jdXJyZW50bHksIGl0IG11c3QgYmUgc3luY2hyb25pemVkIGV4dGVybmFsbHkuIAorICoKKyAqIEBzZWUgICAgICAgICAgVUZvcm1hdAorICogQHNlZSAgICAgICAgICBOdW1iZXJGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdAorICogQHNlZSAgICAgICAgICBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZQorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzLCBDaGVuLUxpZWggSHVhbmcsIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIERhdGVGb3JtYXQgZXh0ZW5kcyBGb3JtYXQgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDE7CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgamF2YS50ZXh0LkRhdGVGb3JtYXQgZGF0ZUZvcm1hdDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQHBhcmFtIGRlbGVnYXRlIHRoZSBEYXRlRm9ybWF0IHRvIHdoaWNoIHRvIGRlbGVnYXRlCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQgZGVsZWdhdGUpIHsKKyAgICAgICAgdGhpcy5kYXRlRm9ybWF0ID0gZGVsZWdhdGU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZvciBzdWJjbGFzcyB1c2UuICBTdWJjbGFzc2VzIHdpbGwgZ2VuZXJhbGx5IG5vdAorICAgICAqIHdvcmsgY29ycmVjdGx5IHVubGVzcyB0aGV5IG1hbmlwdWxhdGUgdGhlIGRlbGVnYXRlLgorICAgICAqLworICAgIHByb3RlY3RlZCBEYXRlRm9ybWF0KCkgeworICAgIAl0aGlzLmRhdGVGb3JtYXQgPSBqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdHJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0VSQX0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRVJBX0ZJRUxEID0gMDsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICd5JyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1lFQVJ9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFlFQVJfRklFTEQgPSAxOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ00nIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjTU9OVEh9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1PTlRIX0ZJRUxEID0gMjsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdkJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0RBVEV9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBVEVfRklFTEQgPSAzOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ2snIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjSE9VUl9PRl9EQVl9IGZpZWxkLgorICAgICAqIEhPVVJfT0ZfREFZMV9GSUVMRCBpcyB1c2VkIGZvciB0aGUgb25lLWJhc2VkIDI0LWhvdXIgY2xvY2suCisgICAgICogRm9yIGV4YW1wbGUsIDIzOjU5ICsgMDE6MDAgcmVzdWx0cyBpbiAyNDo1OS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSX09GX0RBWTFfRklFTEQgPSA0OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0gnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjSE9VUl9PRl9EQVl9IGZpZWxkLgorICAgICAqIEhPVVJfT0ZfREFZMF9GSUVMRCBpcyB1c2VkIGZvciB0aGUgemVyby1iYXNlZCAyNC1ob3VyIGNsb2NrLgorICAgICAqIEZvciBleGFtcGxlLCAyMzo1OSArIDAxOjAwIHJlc3VsdHMgaW4gMDA6NTkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUl9PRl9EQVkwX0ZJRUxEID0gNTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdtJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI01JTlVURX0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUlOVVRFX0ZJRUxEID0gNjsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdzJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1NFQ09ORH0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0VDT05EX0ZJRUxEID0gNzsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdTJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI01JTExJU0VDT05EfSBmaWVsZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZSQUNUSU9OQUxfU0VDT05EX0ZJRUxEID0gODsKKworICAgIC8qKgorICAgICAqIEFsaWFzIGZvciBGUkFDVElPTkFMX1NFQ09ORF9GSUVMRC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTExJU0VDT05EX0ZJRUxEID0gRlJBQ1RJT05BTF9TRUNPTkRfRklFTEQ7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnRScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNEQVlfT0ZfV0VFS30gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1dFRUtfRklFTEQgPSA5OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0QnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjREFZX09GX1lFQVJ9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9ZRUFSX0ZJRUxEID0gMTA7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnRicgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNEQVlfT0ZfV0VFS19JTl9NT05USH0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1dFRUtfSU5fTU9OVEhfRklFTEQgPSAxMTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICd3JyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1dFRUtfT0ZfWUVBUn0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VFS19PRl9ZRUFSX0ZJRUxEID0gMTI7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnVycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNXRUVLX09GX01PTlRIfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXRUVLX09GX01PTlRIX0ZJRUxEID0gMTM7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnYScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNBTV9QTX0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQU1fUE1fRklFTEQgPSAxNDsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdoJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0hPVVJ9IGZpZWxkLgorICAgICAqIEhPVVIxX0ZJRUxEIGlzIHVzZWQgZm9yIHRoZSBvbmUtYmFzZWQgMTItaG91ciBjbG9jay4KKyAgICAgKiBGb3IgZXhhbXBsZSwgMTE6MzAgUE0gKyAxIGhvdXIgcmVzdWx0cyBpbiAxMjozMCBBTS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSMV9GSUVMRCA9IDE1OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0snIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjSE9VUn0gZmllbGQuCisgICAgICogSE9VUjBfRklFTEQgaXMgdXNlZCBmb3IgdGhlIHplcm8tYmFzZWQgMTItaG91ciBjbG9jay4KKyAgICAgKiBGb3IgZXhhbXBsZSwgMTE6MzAgUE0gKyAxIGhvdXIgcmVzdWx0cyBpbiAwMDozMCBBTS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSMF9GSUVMRCA9IDE2OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ3onIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjWk9ORV9PRkZTRVR9IGFuZAorICAgICAqIHtAbGluayBDYWxlbmRhciNEU1RfT0ZGU0VUfSBmaWVsZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVElNRVpPTkVfRklFTEQgPSAxNzsKKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBGb3JtYXQuCisgICAgICogRm9ybWF0cyBhIHRpbWUgb2JqZWN0IGludG8gYSB0aW1lIHN0cmluZy4gRXhhbXBsZXMgb2YgdGltZSBvYmplY3RzCisgICAgICogYXJlIGEgdGltZSB2YWx1ZSBleHByZXNzZWQgaW4gbWlsbGlzZWNvbmRzIGFuZCBhIERhdGUgb2JqZWN0LgorICAgICAqIEBwYXJhbSBvYmogbXVzdCBiZSBhIE51bWJlciBvciBhIERhdGUgb3IgYSBDYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyB0aGUgc3RyaW5nIGJ1ZmZlciBmb3IgdGhlIHJldHVybmluZyB0aW1lIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXR0ZWQgdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGZpZWxkUG9zaXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZAorICAgICAqIHdpdGhpbiB0aGUgcmV0dXJuZWQgc3RyaW5nLgorICAgICAqIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsCisgICAgICogaWYgZGVzaXJlZC4gT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLiBGb3IKKyAgICAgKiBleGFtcGxlLCBnaXZlbiBhIHRpbWUgdGV4dCAiMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQRFQiLAorICAgICAqIGlmIHRoZSBnaXZlbiBmaWVsZFBvc2l0aW9uIGlzIERhdGVGb3JtYXQuWUVBUl9GSUVMRCwgdGhlCisgICAgICogYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogMCBhbmQgNCwgcmVzcGVjdGl2ZWx5LgorICAgICAqIE5vdGljZSB0aGF0IGlmIHRoZSBzYW1lIHRpbWUgZmllbGQgYXBwZWFycworICAgICAqIG1vcmUgdGhhbiBvbmNlIGluIGEgcGF0dGVybiwgdGhlIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgZm9yIHRoZSBmaXJzdAorICAgICAqIG9jY3VyZW5jZSBvZiB0aGF0IHRpbWUgZmllbGQuIEZvciBpbnN0YW5jZSwgZm9ybWF0dGluZyBhIERhdGUgdG8KKyAgICAgKiB0aGUgdGltZSBzdHJpbmcgIjEgUE0gUERUIChQYWNpZmljIERheWxpZ2h0IFRpbWUpIiB1c2luZyB0aGUgcGF0dGVybgorICAgICAqICJoIGEgeiAoenp6eikiIGFuZCB0aGUgYWxpZ25tZW50IGZpZWxkIERhdGVGb3JtYXQuVElNRVpPTkVfRklFTEQsCisgICAgICogdGhlIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDUgYW5kIDgsIHJlc3BlY3RpdmVseSwgZm9yIHRoZSBmaXJzdCBvY2N1cmVuY2Ugb2YgdGhlIHRpbWV6b25lCisgICAgICogcGF0dGVybiBjaGFyYWN0ZXIgJ3onLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdCBvYmosIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24pIHsKKyAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIENhbGVuZGFyKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KChDYWxlbmRhcilvYmosIHRvQXBwZW5kVG8sIGZpZWxkUG9zaXRpb24pOworICAgICAgICB9IGVsc2UgaWYgKG9iaiBpbnN0YW5jZW9mIERhdGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQoKERhdGUpb2JqLCB0b0FwcGVuZFRvLCBmaWVsZFBvc2l0aW9uKTsKKyAgICAgICAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBOdW1iZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQobmV3IERhdGUoKChOdW1iZXIpb2JqKS5sb25nVmFsdWUoKSksIHRvQXBwZW5kVG8sIGZpZWxkUG9zaXRpb24gKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbm5vdCBmb3JtYXQgZ2l2ZW4gT2JqZWN0IGFzIGEgRGF0ZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyBhIGRhdGUgaW50byBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGNhbCBhIENhbGVuZGFyIHNldCB0byB0aGUgZGF0ZSBhbmQgdGltZSB0byBiZSBmb3JtYXR0ZWQKKyAgICAgKiBpbnRvIGEgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyB0aGUgc3RyaW5nIGJ1ZmZlciBmb3IgdGhlIHJldHVybmluZyBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSBmaWVsZFBvc2l0aW9uIGtlZXBzIHRyYWNrIG9mIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmllbGQKKyAgICAgKiB3aXRoaW4gdGhlIHJldHVybmVkIHN0cmluZy4KKyAgICAgKiBPbiBpbnB1dDogYW4gYWxpZ25tZW50IGZpZWxkLAorICAgICAqIGlmIGRlc2lyZWQuIE9uIG91dHB1dDogdGhlIG9mZnNldHMgb2YgdGhlIGFsaWdubWVudCBmaWVsZC4gRm9yCisgICAgICogZXhhbXBsZSwgZ2l2ZW4gYSB0aW1lIHRleHQgIjE5OTYuMDcuMTAgQUQgYXQgMTU6MDg6NTYgUERUIiwKKyAgICAgKiBpZiB0aGUgZ2l2ZW4gZmllbGRQb3NpdGlvbiBpcyBEYXRlRm9ybWF0LllFQVJfRklFTEQsIHRoZQorICAgICAqIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDAgYW5kIDQsIHJlc3BlY3RpdmVseS4KKyAgICAgKiBOb3RpY2UgdGhhdCBpZiB0aGUgc2FtZSB0aW1lIGZpZWxkIGFwcGVhcnMKKyAgICAgKiBtb3JlIHRoYW4gb25jZSBpbiBhIHBhdHRlcm4sIHRoZSBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IGZvciB0aGUgZmlyc3QKKyAgICAgKiBvY2N1cmVuY2Ugb2YgdGhhdCB0aW1lIGZpZWxkLiBGb3IgaW5zdGFuY2UsIGZvcm1hdHRpbmcgYSBEYXRlIHRvCisgICAgICogdGhlIHRpbWUgc3RyaW5nICIxIFBNIFBEVCAoUGFjaWZpYyBEYXlsaWdodCBUaW1lKSIgdXNpbmcgdGhlIHBhdHRlcm4KKyAgICAgKiAiaCBhIHogKHp6enopIiBhbmQgdGhlIGFsaWdubWVudCBmaWVsZCBEYXRlRm9ybWF0LlRJTUVaT05FX0ZJRUxELAorICAgICAqIHRoZSBiZWdpbiBpbmRleCBhbmQgZW5kIGluZGV4IG9mIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgdG8KKyAgICAgKiA1IGFuZCA4LCByZXNwZWN0aXZlbHksIGZvciB0aGUgZmlyc3Qgb2NjdXJlbmNlIG9mIHRoZSB0aW1lem9uZQorICAgICAqIHBhdHRlcm4gY2hhcmFjdGVyICd6Jy4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXR0ZWQgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChDYWxlbmRhciBjYWwsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24pIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChjYWwuZ2V0VGltZSgpLCB0b0FwcGVuZFRvLCBmaWVsZFBvc2l0aW9uKTsKKyAgICB9CisgICAgCisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIGEgRGF0ZSBpbnRvIGEgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gZGF0ZSBhIERhdGUgdG8gYmUgZm9ybWF0dGVkIGludG8gYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSB0b0FwcGVuZFRvIHRoZSBzdHJpbmcgYnVmZmVyIGZvciB0aGUgcmV0dXJuaW5nIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGZpZWxkUG9zaXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZAorICAgICAqIHdpdGhpbiB0aGUgcmV0dXJuZWQgc3RyaW5nLgorICAgICAqIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsCisgICAgICogaWYgZGVzaXJlZC4gT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLiBGb3IKKyAgICAgKiBleGFtcGxlLCBnaXZlbiBhIHRpbWUgdGV4dCAiMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQRFQiLAorICAgICAqIGlmIHRoZSBnaXZlbiBmaWVsZFBvc2l0aW9uIGlzIERhdGVGb3JtYXQuWUVBUl9GSUVMRCwgdGhlCisgICAgICogYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogMCBhbmQgNCwgcmVzcGVjdGl2ZWx5LgorICAgICAqIE5vdGljZSB0aGF0IGlmIHRoZSBzYW1lIHRpbWUgZmllbGQgYXBwZWFycworICAgICAqIG1vcmUgdGhhbiBvbmNlIGluIGEgcGF0dGVybiwgdGhlIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgZm9yIHRoZSBmaXJzdAorICAgICAqIG9jY3VyZW5jZSBvZiB0aGF0IHRpbWUgZmllbGQuIEZvciBpbnN0YW5jZSwgZm9ybWF0dGluZyBhIERhdGUgdG8KKyAgICAgKiB0aGUgdGltZSBzdHJpbmcgIjEgUE0gUERUIChQYWNpZmljIERheWxpZ2h0IFRpbWUpIiB1c2luZyB0aGUgcGF0dGVybgorICAgICAqICJoIGEgeiAoenp6eikiIGFuZCB0aGUgYWxpZ25tZW50IGZpZWxkIERhdGVGb3JtYXQuVElNRVpPTkVfRklFTEQsCisgICAgICogdGhlIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDUgYW5kIDgsIHJlc3BlY3RpdmVseSwgZm9yIHRoZSBmaXJzdCBvY2N1cmVuY2Ugb2YgdGhlIHRpbWV6b25lCisgICAgICogcGF0dGVybiBjaGFyYWN0ZXIgJ3onLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdHRlZCBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KERhdGUgZGF0ZSwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbikgeworICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdC5mb3JtYXQoZGF0ZSwgdG9BcHBlbmRUbywgZmllbGRQb3NpdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyBhIERhdGUgaW50byBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIHRpbWUgdmFsdWUgdG8gYmUgZm9ybWF0dGVkIGludG8gYSB0aW1lIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXR0ZWQgdGltZSBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoRGF0ZSBkYXRlKSB7CisgICAgICAgIHJldHVybiBkYXRlRm9ybWF0LmZvcm1hdChkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCAgVGhlIGRhdGUvdGltZSBzdHJpbmcgdG8gYmUgcGFyc2VkCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgQSBEYXRlLCBvciBudWxsIGlmIHRoZSBpbnB1dCBjb3VsZCBub3QgYmUgcGFyc2VkCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uICBQYXJzZUV4Y2VwdGlvbiAgSWYgdGhlIGdpdmVuIHN0cmluZyBjYW5ub3QgYmUgcGFyc2VkIGFzIGEgZGF0ZS4KKyAgICAgKgorICAgICAqIEBzZWUgI3BhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBwYXJzZShTdHJpbmcgdGV4dCkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXQucGFyc2UodGV4dCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBkYXRlL3RpbWUgc3RyaW5nIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gcGFyc2UgcG9zaXRpb24uCisgICAgICogRm9yIGV4YW1wbGUsIGEgdGltZSB0ZXh0ICIwNy8xMC85NiA0OjUgUE0sIFBEVCIgd2lsbCBiZSBwYXJzZWQKKyAgICAgKiBpbnRvIGEgQ2FsZW5kYXIgdGhhdCBpcyBlcXVpdmFsZW50IHRvIERhdGUoODM3MDM5OTI4MDQ2KS4gIFRoZQorICAgICAqIGNhbGxlciBzaG91bGQgY2xlYXIgdGhlIGNhbGVuZGFyIGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kLAorICAgICAqIHVubGVzcyBleGlzdGluZyBmaWVsZCBpbmZvcm1hdGlvbiBpcyB0byBiZSBrZXB0LgorICAgICAqCisgICAgICogPHA+IEJ5IGRlZmF1bHQsIHBhcnNpbmcgaXMgbGVuaWVudDogSWYgdGhlIGlucHV0IGlzIG5vdCBpbiB0aGUgZm9ybSB1c2VkCisgICAgICogYnkgdGhpcyBvYmplY3QncyBmb3JtYXQgbWV0aG9kIGJ1dCBjYW4gc3RpbGwgYmUgcGFyc2VkIGFzIGEgZGF0ZSwgdGhlbgorICAgICAqIHRoZSBwYXJzZSBzdWNjZWVkcy4gIENsaWVudHMgbWF5IGluc2lzdCBvbiBzdHJpY3QgYWRoZXJlbmNlIHRvIHRoZQorICAgICAqIGZvcm1hdCBieSBjYWxsaW5nIHNldExlbmllbnQoZmFsc2UpLgorICAgICAqCisgICAgICogQHNlZSAjc2V0TGVuaWVudChib29sZWFuKQorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgIFRoZSBkYXRlL3RpbWUgc3RyaW5nIHRvIGJlIHBhcnNlZAorICAgICAqCisgICAgICogQHBhcmFtIGNhbCAgIFRoZSBjYWxlbmRhciBpbnRvIHdoaWNoIHBhcnNlZCBkYXRhIHdpbGwgYmUgc3RvcmVkLgorICAgICAqICAgICAgICAgICAgICBJbiBnZW5lcmFsLCB0aGlzIHNob3VsZCBiZSBjbGVhcmVkIGJlZm9yZSBjYWxsaW5nIHRoaXMKKyAgICAgKiAgICAgICAgICAgICAgbWV0aG9kLiAgSWYgdGhpcyBwYXJzZSBmYWlscywgdGhlIGNhbGVuZGFyIG1heSBzdGlsbAorICAgICAqICAgICAgICAgICAgICBoYXZlIGJlZW4gbW9kaWZpZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9zICAgT24gaW5wdXQsIHRoZSBwb3NpdGlvbiBhdCB3aGljaCB0byBzdGFydCBwYXJzaW5nOyBvbgorICAgICAqICAgICAgICAgICAgICBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhdCB3aGljaCBwYXJzaW5nIHRlcm1pbmF0ZWQsIG9yIHRoZQorICAgICAqICAgICAgICAgICAgICBzdGFydCBwb3NpdGlvbiBpZiB0aGUgcGFyc2UgZmFpbGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHBhcnNlKFN0cmluZyB0ZXh0LCBDYWxlbmRhciBjYWwsIFBhcnNlUG9zaXRpb24gcG9zKSB7CisgICAgICAgIERhdGUgcmVzdWx0ID0gZGF0ZUZvcm1hdC5wYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICBjYWwuc2V0VGltZShyZXN1bHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgZGF0ZS90aW1lIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIHBhcnNlIHBvc2l0aW9uLiAgRm9yCisgICAgICogZXhhbXBsZSwgYSB0aW1lIHRleHQgIjA3LzEwLzk2IDQ6NSBQTSwgUERUIiB3aWxsIGJlIHBhcnNlZCBpbnRvIGEgRGF0ZQorICAgICAqIHRoYXQgaXMgZXF1aXZhbGVudCB0byBEYXRlKDgzNzAzOTkyODA0NikuCisgICAgICoKKyAgICAgKiA8cD4gQnkgZGVmYXVsdCwgcGFyc2luZyBpcyBsZW5pZW50OiBJZiB0aGUgaW5wdXQgaXMgbm90IGluIHRoZSBmb3JtIHVzZWQKKyAgICAgKiBieSB0aGlzIG9iamVjdCdzIGZvcm1hdCBtZXRob2QgYnV0IGNhbiBzdGlsbCBiZSBwYXJzZWQgYXMgYSBkYXRlLCB0aGVuCisgICAgICogdGhlIHBhcnNlIHN1Y2NlZWRzLiAgQ2xpZW50cyBtYXkgaW5zaXN0IG9uIHN0cmljdCBhZGhlcmVuY2UgdG8gdGhlCisgICAgICogZm9ybWF0IGJ5IGNhbGxpbmcgc2V0TGVuaWVudChmYWxzZSkuCisgICAgICoKKyAgICAgKiBAc2VlICNzZXRMZW5pZW50KGJvb2xlYW4pCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCAgVGhlIGRhdGUvdGltZSBzdHJpbmcgdG8gYmUgcGFyc2VkCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9zICAgT24gaW5wdXQsIHRoZSBwb3NpdGlvbiBhdCB3aGljaCB0byBzdGFydCBwYXJzaW5nOyBvbgorICAgICAqICAgICAgICAgICAgICBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhdCB3aGljaCBwYXJzaW5nIHRlcm1pbmF0ZWQsIG9yIHRoZQorICAgICAqICAgICAgICAgICAgICBzdGFydCBwb3NpdGlvbiBpZiB0aGUgcGFyc2UgZmFpbGVkLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIEEgRGF0ZSwgb3IgbnVsbCBpZiB0aGUgaW5wdXQgY291bGQgbm90IGJlIHBhcnNlZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlIHBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdC5wYXJzZSh0ZXh0LCBwb3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgZGF0ZS90aW1lIHN0cmluZyBpbnRvIGFuIE9iamVjdC4gIFRoaXMgY29udmVuaWVuY2UgbWV0aG9kIHNpbXBseQorICAgICAqIGNhbGxzIHBhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbikuCisgICAgICoKKyAgICAgKiBAc2VlICNwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBwYXJzZU9iamVjdChTdHJpbmcgc291cmNlLCBQYXJzZVBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gcGFyc2Uoc291cmNlLCBwb3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBmdWxsIHN0eWxlIHBhdHRlcm4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlVMTCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgbG9uZyBzdHlsZSBwYXR0ZXJuLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPTkcgPSAxOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIG1lZGl1bSBzdHlsZSBwYXR0ZXJuLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1FRElVTSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3Igc2hvcnQgc3R5bGUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSE9SVCA9IDM7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgZGVmYXVsdCBzdHlsZSBwYXR0ZXJuLiAgSXRzIHZhbHVlIGlzIE1FRElVTS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERUZBVUxUID0gTUVESVVNOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZGVmYXVsdCBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUuIEZvciBleGFtcGxlLAorICAgICAqIFNIT1JUIGZvciAiaDptbSBhIiBpbiB0aGUgVVMgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSB0aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKGludCBzdHlsZSkgeworICAgICAgICByZXR1cm4gbmV3IERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKHN0eWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJoOm1tIGEiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZShpbnQgc3R5bGUsIExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdChqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2Uoc3R5bGUsIGFMb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgImg6bW0gYSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSB0aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoaW50IHN0eWxlLCBVTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShzdHlsZSwgYUxvY2FsZS50b0xvY2FsZSgpKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZGVmYXVsdCBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUuIEZvciBleGFtcGxlLAorICAgICAqIFNIT1JUIGZvciAiTS9kL3l5IiBpbiB0aGUgVVMgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZUluc3RhbmNlKGludCBzdHlsZSkgeworICAgICAgICByZXR1cm4gbmV3IERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKHN0eWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJNL2QveXkiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShpbnQgc3R5bGUsIExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdChqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2Uoc3R5bGUsIGFMb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgIk0vZC95eSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoaW50IHN0eWxlLCBVTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShzdHlsZSwgYUxvY2FsZS50b0xvY2FsZSgpKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZS90aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBkZWZhdWx0IGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlL3RpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gbmV3IERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlL3RpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGRhdGUgYW5kIHRpbWUKKyAgICAgKiBmb3JtYXR0aW5nIHN0eWxlcyBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgdGhlIGdpdmVuIGRhdGUgZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJNL2QveXkiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSB0aGUgZ2l2ZW4gdGltZSBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgImg6bW0gYSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZUZvcm1hdChqYXZhLnRleHQuRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGRhdGVTdHlsZSwgdGltZVN0eWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZS90aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlcworICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgdGhlIGdpdmVuIGRhdGUgZm9ybWF0dGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIHRoZSBnaXZlbiB0aW1lIGZvcm1hdHRpbmcgc3R5bGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlLCBMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IERhdGVGb3JtYXQoamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShkYXRlU3R5bGUsIHRpbWVTdHlsZSwgYUxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUvdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZXMKKyAgICAgKiBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIHRoZSBnaXZlbiBkYXRlIGZvcm1hdHRpbmcgc3R5bGUuCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSB0aGUgZ2l2ZW4gdGltZSBmb3JtYXR0aW5nIHN0eWxlLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGRhdGUvdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlLCBVTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGFMb2NhbGUudG9Mb2NhbGUoKSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIGRlZmF1bHQgZGF0ZS90aW1lIGZvcm1hdHRlciB0aGF0IHVzZXMgdGhlIFNIT1JUIHN0eWxlIGZvciBib3RoIHRoZQorICAgICAqIGRhdGUgYW5kIHRoZSB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KGphdmEudGV4dC5EYXRlRm9ybWF0LmdldEluc3RhbmNlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHNldCBvZiBsb2NhbGVzIGZvciB3aGljaCBEYXRlRm9ybWF0cyBhcmUgaW5zdGFsbGVkLgorICAgICAqIEByZXR1cm4gdGhlIHNldCBvZiBsb2NhbGVzIGZvciB3aGljaCBEYXRlRm9ybWF0cyBhcmUgaW5zdGFsbGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgcmV0dXJuIGphdmEudGV4dC5EYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBzZXQgb2YgbG9jYWxlcyBmb3Igd2hpY2ggRGF0ZUZvcm1hdHMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBzZXQgb2YgbG9jYWxlcyBmb3Igd2hpY2ggRGF0ZUZvcm1hdHMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0gamF2YS50ZXh0LkRhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBVTG9jYWxlW10gdWxvY2FsZXMgPSBuZXcgVUxvY2FsZVtsb2NhbGVzLmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdWxvY2FsZXNbaV0gPSBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGVzW2ldKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdWxvY2FsZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjYWxlbmRhciB0byBiZSB1c2VkIGJ5IHRoaXMgZGF0ZSBmb3JtYXQuICBJbml0aWFsbHksIHRoZSBkZWZhdWx0CisgICAgICogY2FsZW5kYXIgZm9yIHRoZSBzcGVjaWZpZWQgb3IgZGVmYXVsdCBsb2NhbGUgaXMgdXNlZC4KKyAgICAgKiBAcGFyYW0gbmV3Q2FsZW5kYXIgdGhlIG5ldyBDYWxlbmRhciB0byBiZSB1c2VkIGJ5IHRoZSBkYXRlIGZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENhbGVuZGFyKENhbGVuZGFyIG5ld0NhbGVuZGFyKSB7CisgICAgICAgIGRhdGVGb3JtYXQuc2V0Q2FsZW5kYXIobmV3Q2FsZW5kYXIuY2FsZW5kYXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNhbGVuZGFyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRhdGUvdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHJldHVybiB0aGUgY2FsZW5kYXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FsZW5kYXIgZ2V0Q2FsZW5kYXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2FsZW5kYXIoZGF0ZUZvcm1hdC5nZXRDYWxlbmRhcigpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbGxvd3MgeW91IHRvIHNldCB0aGUgbnVtYmVyIGZvcm1hdHRlci4KKyAgICAgKiBAcGFyYW0gbmV3TnVtYmVyRm9ybWF0IHRoZSBnaXZlbiBuZXcgTnVtYmVyRm9ybWF0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE51bWJlckZvcm1hdChOdW1iZXJGb3JtYXQgbmV3TnVtYmVyRm9ybWF0KSB7CisgICAgICAgIGRhdGVGb3JtYXQuc2V0TnVtYmVyRm9ybWF0KG5ld051bWJlckZvcm1hdC5udW1iZXJGb3JtYXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG51bWJlciBmb3JtYXR0ZXIgd2hpY2ggdGhpcyBkYXRlL3RpbWUgZm9ybWF0dGVyIHVzZXMgdG8KKyAgICAgKiBmb3JtYXQgYW5kIHBhcnNlIGEgdGltZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgZm9ybWF0dGVyIHdoaWNoIHRoaXMgZGF0ZS90aW1lIGZvcm1hdHRlciB1c2VzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQgZ2V0TnVtYmVyRm9ybWF0KCkgeworICAgICAgICByZXR1cm4gbmV3IE51bWJlckZvcm1hdChkYXRlRm9ybWF0LmdldE51bWJlckZvcm1hdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0aW1lIHpvbmUgZm9yIHRoZSBjYWxlbmRhciBvZiB0aGlzIERhdGVGb3JtYXQgb2JqZWN0LgorICAgICAqIEBwYXJhbSB6b25lIHRoZSBnaXZlbiBuZXcgdGltZSB6b25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRpbWVab25lKFRpbWVab25lIHpvbmUpIHsKKyAgICAgICAgZGF0ZUZvcm1hdC5zZXRUaW1lWm9uZSh6b25lLnRpbWVab25lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIHpvbmUuCisgICAgICogQHJldHVybiB0aGUgdGltZSB6b25lIGFzc29jaWF0ZWQgd2l0aCB0aGUgY2FsZW5kYXIgb2YgRGF0ZUZvcm1hdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVGltZVpvbmUgZ2V0VGltZVpvbmUoKSB7CisgICAgICAgIHJldHVybiBuZXcgVGltZVpvbmUoZGF0ZUZvcm1hdC5nZXRUaW1lWm9uZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWZ5IHdoZXRoZXIgb3Igbm90IGRhdGUvdGltZSBwYXJzaW5nIGlzIHRvIGJlIGxlbmllbnQuICBXaXRoCisgICAgICogbGVuaWVudCBwYXJzaW5nLCB0aGUgcGFyc2VyIG1heSB1c2UgaGV1cmlzdGljcyB0byBpbnRlcnByZXQgaW5wdXRzIHRoYXQKKyAgICAgKiBkbyBub3QgcHJlY2lzZWx5IG1hdGNoIHRoaXMgb2JqZWN0J3MgZm9ybWF0LiAgV2l0aCBzdHJpY3QgcGFyc2luZywKKyAgICAgKiBpbnB1dHMgbXVzdCBtYXRjaCB0aGlzIG9iamVjdCdzIGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gbGVuaWVudCB3aGVuIHRydWUsIHBhcnNpbmcgaXMgbGVuaWVudAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciNzZXRMZW5pZW50CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TGVuaWVudChib29sZWFuIGxlbmllbnQpIHsKKyAgICAgICAgZGF0ZUZvcm1hdC5zZXRMZW5pZW50KGxlbmllbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlbGwgd2hldGhlciBkYXRlL3RpbWUgcGFyc2luZyBpcyB0byBiZSBsZW5pZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTGVuaWVudCgpIHsKKyAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXQuaXNMZW5pZW50KCk7CisgICAgfQorICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEge0BsaW5rIERhdGVGb3JtYXR9IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBkYXRlcyBpbgorICAgICAqIHRoZSBjYWxlbmRhciBzeXN0ZW0gc3BlY2lmaWVkIGJ5IDxjb2RlPmNhbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGNhbCAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gZm9yIHdoaWNoIGEgZGF0ZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgVGhlIHR5cGUgb2YgZGF0ZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB3aGljaCB0aGUgZGF0ZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IGRhdGVTdHlsZSwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gZ2V0RGF0ZUluc3RhbmNlKGRhdGVTdHlsZSwgbG9jYWxlKTsKKyAgICAgICAgZGYuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgcmV0dXJuIGRmOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB7QGxpbmsgRGF0ZUZvcm1hdH0gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IGRhdGVzIGluCisgICAgICogdGhlIGNhbGVuZGFyIHN5c3RlbSBzcGVjaWZpZWQgYnkgPGNvZGU+Y2FsPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSBkYXRlIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSBUaGUgdHlwZSBvZiBkYXRlIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBkYXRlIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBnZXREYXRlSW5zdGFuY2UoZGF0ZVN0eWxlLCBsb2NhbGUpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICByZXR1cm4gZGY7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEge0BsaW5rIERhdGVGb3JtYXR9IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCB0aW1lcyBpbgorICAgICAqIHRoZSBjYWxlbmRhciBzeXN0ZW0gc3BlY2lmaWVkIGJ5IDxjb2RlPmNhbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFdoZW4gdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG1vdmVkIGludG8gdGhlIGNvcmUgSkRLLCB0aGlzIG1ldGhvZAorICAgICAqIHdpbGwgcHJvYmFibHkgYmUgcmVwbGFjZWQgYnkgYSBuZXcgb3ZlcmxvYWQgb2Yge0BsaW5rIERhdGVGb3JtYXQjZ2V0SW5zdGFuY2V9LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgc3lzdGVtIGZvciB3aGljaCBhIHRpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIFRoZSB0eXBlIG9mIHRpbWUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIHRpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQjZ2V0VGltZUluc3RhbmNlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCB0aW1lU3R5bGUsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IGdldFRpbWVJbnN0YW5jZSh0aW1lU3R5bGUsIGxvY2FsZSk7CisgICAgICAgIGRmLnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIHJldHVybiBkZjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEge0BsaW5rIERhdGVGb3JtYXR9IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCB0aW1lcyBpbgorICAgICAqIHRoZSBjYWxlbmRhciBzeXN0ZW0gc3BlY2lmaWVkIGJ5IDxjb2RlPmNhbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFdoZW4gdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG1vdmVkIGludG8gdGhlIGNvcmUgSkRLLCB0aGlzIG1ldGhvZAorICAgICAqIHdpbGwgcHJvYmFibHkgYmUgcmVwbGFjZWQgYnkgYSBuZXcgb3ZlcmxvYWQgb2Yge0BsaW5rIERhdGVGb3JtYXQjZ2V0SW5zdGFuY2V9LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgc3lzdGVtIGZvciB3aGljaCBhIHRpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIFRoZSB0eXBlIG9mIHRpbWUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIHRpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQjZ2V0VGltZUluc3RhbmNlCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IHRpbWVTdHlsZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IGdldFRpbWVJbnN0YW5jZSh0aW1lU3R5bGUsIGxvY2FsZSk7CisgICAgICAgIGRmLnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIHJldHVybiBkZjsKKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEge0BsaW5rIERhdGVGb3JtYXR9IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBkYXRlcyBhbmQgdGltZXMgaW4KKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtIHNwZWNpZmllZCBieSA8Y29kZT5jYWw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBXaGVuIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBtb3ZlZCBpbnRvIHRoZSBjb3JlIEpESywgdGhpcyBtZXRob2QKKyAgICAgKiB3aWxsIHByb2JhYmx5IGJlIHJlcGxhY2VkIGJ5IGEgbmV3IG92ZXJsb2FkIG9mIHtAbGluayBEYXRlRm9ybWF0I2dldEluc3RhbmNlfS4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSBkYXRlL3RpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIFRoZSB0eXBlIG9mIGRhdGUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgVGhlIHR5cGUgb2YgdGltZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB3aGljaCB0aGUgZGF0ZS90aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHNlZSBEYXRlRm9ybWF0I2dldERhdGVUaW1lSW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRpbWVTdHlsZSwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gZ2V0RGF0ZVRpbWVJbnN0YW5jZShkYXRlU3R5bGUsIHRpbWVTdHlsZSwgbG9jYWxlKTsKKyAgICAgICAgZGYuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgcmV0dXJuIGRmOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHtAbGluayBEYXRlRm9ybWF0fSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgZGF0ZXMgYW5kIHRpbWVzIGluCisgICAgICogdGhlIGNhbGVuZGFyIHN5c3RlbSBzcGVjaWZpZWQgYnkgPGNvZGU+Y2FsPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gV2hlbiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbW92ZWQgaW50byB0aGUgY29yZSBKREssIHRoaXMgbWV0aG9kCisgICAgICogd2lsbCBwcm9iYWJseSBiZSByZXBsYWNlZCBieSBhIG5ldyBvdmVybG9hZCBvZiB7QGxpbmsgRGF0ZUZvcm1hdCNnZXRJbnN0YW5jZX0uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGNhbCAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gZm9yIHdoaWNoIGEgZGF0ZS90aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSBUaGUgdHlwZSBvZiBkYXRlIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIFRoZSB0eXBlIG9mIHRpbWUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIGRhdGUvdGltZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdCNnZXREYXRlVGltZUluc3RhbmNlCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRpbWVTdHlsZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IGdldERhdGVUaW1lSW5zdGFuY2UoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGxvY2FsZSk7CisgICAgICAgIGRmLnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIHJldHVybiBkZjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXRJbnN0YW5jZShDYWxlbmRhciBjYWwsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBNRURJVU0sIFNIT1JULCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIERhdGVGb3JtYXQgZ2V0SW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIE1FRElVTSwgU0hPUlQsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcmxvYWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIERhdGVGb3JtYXQgZ2V0SW5zdGFuY2UoQ2FsZW5kYXIgY2FsKSB7CisgICAgICAgIHJldHVybiBnZXREYXRlVGltZUluc3RhbmNlKGNhbCwgTUVESVVNLCBTSE9SVCwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IGdldERhdGVJbnN0YW5jZShkYXRlU3R5bGUpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICByZXR1cm4gZGY7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcmxvYWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IHRpbWVTdHlsZSkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gZ2V0VGltZUluc3RhbmNlKHRpbWVTdHlsZSk7CisgICAgICAgIGRmLnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIHJldHVybiBkZjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSkgeworICAgICAgICBEYXRlRm9ybWF0IGRmID0gZ2V0RGF0ZVRpbWVJbnN0YW5jZShkYXRlU3R5bGUsIHRpbWVTdHlsZSk7CisgICAgICAgIGRmLnNldENhbGVuZGFyKGNhbCk7CisgICAgICAgIHJldHVybiBkZjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdHJpbmcgc3VpdGFibGUgZm9yIGRlYnVnZ2luZy4KKyAgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBkYXRlRm9ybWF0LnRvU3RyaW5nKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBjbG9uZSBvZiB0aGlzIERhdGVGb3JtYXQuCisgICAgICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgRGF0ZUZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDMuNC4zCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KChqYXZhLnRleHQuRGF0ZUZvcm1hdClkYXRlRm9ybWF0LmNsb25lKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHJocyBpcyBhIERhdGVGb3JtYXRTeW1ib2xzIGFuZCBoYXMgdGhlIHNhbWUgc3ltYm9scyBhcyB0aGlzLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiByaHMgZXF1YWxzIHRoaXMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQuMworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgYXJnMCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXQuZXF1YWxzKCgoRGF0ZUZvcm1hdClhcmcwKS5kYXRlRm9ybWF0KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgaGFzaENvZGUuCisgICAgICogQHJldHVybiBhIGhhc2hDb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMy40LjMKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gZGF0ZUZvcm1hdC5oYXNoQ29kZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXRTeW1ib2xzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9EYXRlRm9ybWF0U3ltYm9scy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyMzEwN2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9EYXRlRm9ybWF0U3ltYm9scy5qYXZhCkBAIC0wLDAgKzEsMzAyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBpcyBhIHB1YmxpYyBjbGFzcyBmb3IgZW5jYXBzdWxhdGluZworICogbG9jYWxpemFibGUgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZGF0YSwgc3VjaCBhcyB0aGUgbmFtZXMgb2YgdGhlCisgKiBtb250aHMsIHRoZSBuYW1lcyBvZiB0aGUgZGF5cyBvZiB0aGUgd2VlaywgYW5kIHRoZSB0aW1lIHpvbmUgZGF0YS4KKyAqIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFuZCA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBib3RoIHVzZQorICogPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IHRvIGVuY2Fwc3VsYXRlIHRoaXMgaW5mb3JtYXRpb24uCisgKgorICogPHA+CisgKiBUeXBpY2FsbHkgeW91IHNob3VsZG4ndCB1c2UgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGRpcmVjdGx5LgorICogUmF0aGVyLCB5b3UgYXJlIGVuY291cmFnZWQgdG8gY3JlYXRlIGEgZGF0ZS10aW1lIGZvcm1hdHRlciB3aXRoIHRoZQorICogPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gY2xhc3MncyBmYWN0b3J5IG1ldGhvZHM6IDxjb2RlPmdldFRpbWVJbnN0YW5jZTwvY29kZT4sCisgKiA8Y29kZT5nZXREYXRlSW5zdGFuY2U8L2NvZGU+LCBvciA8Y29kZT5nZXREYXRlVGltZUluc3RhbmNlPC9jb2RlPi4KKyAqIFRoZXNlIG1ldGhvZHMgYXV0b21hdGljYWxseSBjcmVhdGUgYSA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gZm9yCisgKiB0aGUgZm9ybWF0dGVyIHNvIHRoYXQgeW91IGRvbid0IGhhdmUgdG8uIEFmdGVyIHRoZQorICogZm9ybWF0dGVyIGlzIGNyZWF0ZWQsIHlvdSBtYXkgbW9kaWZ5IGl0cyBmb3JtYXQgcGF0dGVybiB1c2luZyB0aGUKKyAqIDxjb2RlPnNldFBhdHRlcm48L2NvZGU+IG1ldGhvZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQKKyAqIGNyZWF0aW5nIGZvcm1hdHRlcnMgdXNpbmcgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4ncyBmYWN0b3J5IG1ldGhvZHMsCisgKiBzZWUge0BsaW5rIERhdGVGb3JtYXR9LgorICoKKyAqIDxwPgorICogSWYgeW91IGRlY2lkZSB0byBjcmVhdGUgYSBkYXRlLXRpbWUgZm9ybWF0dGVyIHdpdGggYSBzcGVjaWZpYworICogZm9ybWF0IHBhdHRlcm4gZm9yIGEgc3BlY2lmaWMgbG9jYWxlLCB5b3UgY2FuIGRvIHNvIHdpdGg6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBuZXcgU2ltcGxlRGF0ZUZvcm1hdChhUGF0dGVybiwgbmV3IERhdGVGb3JtYXRTeW1ib2xzKGFMb2NhbGUpKS4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPgorICogPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdHMgYXJlIGNsb25hYmxlLiBXaGVuIHlvdSBvYnRhaW4KKyAqIGEgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdCwgZmVlbCBmcmVlIHRvIG1vZGlmeSB0aGUKKyAqIGRhdGUtdGltZSBmb3JtYXR0aW5nIGRhdGEuIEZvciBpbnN0YW5jZSwgeW91IGNhbiByZXBsYWNlIHRoZSBsb2NhbGl6ZWQKKyAqIGRhdGUtdGltZSBmb3JtYXQgcGF0dGVybiBjaGFyYWN0ZXJzIHdpdGggdGhlIG9uZXMgdGhhdCB5b3UgZmVlbCBlYXN5CisgKiB0byByZW1lbWJlci4gT3IgeW91IGNhbiBjaGFuZ2UgdGhlIHJlcHJlc2VudGF0aXZlIGNpdGllcworICogdG8geW91ciBmYXZvcml0ZSBvbmVzLgorICoKKyAqIDxwPgorICogTmV3IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBzdWJjbGFzc2VzIG1heSBiZSBhZGRlZCB0byBzdXBwb3J0CisgKiA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBmb3IgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZm9yIGFkZGl0aW9uYWwgbG9jYWxlcy4KKworICogQHNlZSAgICAgICAgICBEYXRlRm9ybWF0CisgKiBAc2VlICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZQorICogQGF1dGhvciAgICAgICBDaGVuLUxpZWggSHVhbmcKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdFN5bWJvbHMgaW1wbGVtZW50cyBTZXJpYWxpemFibGUsIENsb25lYWJsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMTsKKyAgICAgICAgCisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIHB1YmxpYyBqYXZhLnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMgZGZzOworICAgICAgICAKKyAgICAvKiogQGludGVybmFsICovCisgICAgcHVibGljIERhdGVGb3JtYXRTeW1ib2xzKGphdmEudGV4dC5EYXRlRm9ybWF0U3ltYm9scyBkZWxlZ2F0ZSkgeworICAgICAgICB0aGlzLmRmcyA9IGRlbGVnYXRlOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgRGF0ZUZvcm1hdFN5bWJvbHMgb2JqZWN0IGJ5IGxvYWRpbmcgZm9ybWF0IGRhdGEgZnJvbQorICAgICAqIHJlc291cmNlcyBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHRocm93cyAgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqICAgICAgICAgIGlmIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBjYW5ub3QgYmUKKyAgICAgKiAgICAgICAgICBmb3VuZCBvciBjYW5ub3QgYmUgbG9hZGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgdGhpcyhuZXcgamF2YS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIERhdGVGb3JtYXRTeW1ib2xzIG9iamVjdCBieSBsb2FkaW5nIGZvcm1hdCBkYXRhIGZyb20KKyAgICAgKiByZXNvdXJjZXMgZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAdGhyb3dzICBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogICAgICAgICAgaWYgdGhlIHJlc291cmNlcyBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUgY2Fubm90IGJlCisgICAgICogICAgICAgICAgZm91bmQgb3IgY2Fubm90IGJlIGxvYWRlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzKG5ldyBqYXZhLnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMobG9jYWxlKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3QgYnkgbG9hZGluZyBmb3JtYXQgZGF0YSBmcm9tCisgICAgICogcmVzb3VyY2VzIGZvciB0aGUgZ2l2ZW4gdWxvY2FsZS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgIGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiAgICAgICAgICBpZiB0aGUgcmVzb3VyY2VzIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBjYW5ub3QgYmUKKyAgICAgKiAgICAgICAgICBmb3VuZCBvciBjYW5ub3QgYmUgbG9hZGVkLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXRTeW1ib2xzKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMobmV3IGphdmEudGV4dC5EYXRlRm9ybWF0U3ltYm9scyhsb2NhbGUudG9Mb2NhbGUoKSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgZXJhIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiQUQiIGFuZCAiQkMiLgorICAgICAqIEByZXR1cm4gdGhlIGVyYSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRFcmFzKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldEVyYXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGVyYSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFEIiBhbmQgIkJDIi4KKyAgICAgKiBAcGFyYW0gbmV3RXJhcyB0aGUgbmV3IGVyYSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVyYXMoU3RyaW5nW10gbmV3RXJhcykgeworICAgICAgICBkZnMuc2V0RXJhcyhuZXdFcmFzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFudWFyeSIsICJGZWJydWFyeSIsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBtb250aCBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRNb250aHMoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0TW9udGhzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbnVhcnkiLCAiRmVicnVhcnkiLCBldGMuCisgICAgICogQHBhcmFtIG5ld01vbnRocyB0aGUgbmV3IG1vbnRoIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9udGhzKFN0cmluZ1tdIG5ld01vbnRocykgeworICAgICAgICBkZnMuc2V0TW9udGhzKG5ld01vbnRocyk7CisgICAgfQorICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyBzaG9ydCBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbiIsICJGZWIiLCBldGMuCisgICAgICogQHJldHVybiB0aGUgc2hvcnQgbW9udGggc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0U2hvcnRNb250aHMoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0U2hvcnRNb250aHMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHNob3J0IG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFuIiwgIkZlYiIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3U2hvcnRNb250aHMgdGhlIG5ldyBzaG9ydCBtb250aCBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNob3J0TW9udGhzKFN0cmluZ1tdIG5ld1Nob3J0TW9udGhzKSB7CisgICAgICAgIGRmcy5zZXRTaG9ydE1vbnRocyhuZXdTaG9ydE1vbnRocyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuZGF5IiwgIk1vbmRheSIsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSB3ZWVrZGF5IHN0cmluZ3MuIFVzZSA8Y29kZT5DYWxlbmRhci5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPkNhbGVuZGFyLk1PTkRBWTwvY29kZT4sIGV0Yy4gdG8gaW5kZXggdGhlIHJlc3VsdCBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0V2Vla2RheXMoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0V2Vla2RheXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW5kYXkiLCAiTW9uZGF5IiwgZXRjLgorICAgICAqIEBwYXJhbSBuZXdXZWVrZGF5cyB0aGUgbmV3IHdlZWtkYXkgc3RyaW5ncy4gVGhlIGFycmF5IHNob3VsZAorICAgICAqIGJlIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0V2Vla2RheXMoU3RyaW5nW10gbmV3V2Vla2RheXMpIHsKKyAgICAgICAgZGZzLnNldFdlZWtkYXlzKG5ld1dlZWtkYXlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHNob3J0IHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW4iLCAiTW9uIiwgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIHNob3J0IHdlZWtkYXkgc3RyaW5ncy4gVXNlIDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLiB0byBpbmRleCB0aGUgcmVzdWx0IGFycmF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTaG9ydFdlZWtkYXlzKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldFNob3J0V2Vla2RheXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHNob3J0IHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW4iLCAiTW9uIiwgZXRjLgorICAgICAqIEBwYXJhbSBuZXdTaG9ydFdlZWtkYXlzIHRoZSBuZXcgc2hvcnQgd2Vla2RheSBzdHJpbmdzLiBUaGUgYXJyYXkgc2hvdWxkCisgICAgICogYmUgaW5kZXhlZCBieSA8Y29kZT5DYWxlbmRhci5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPkNhbGVuZGFyLk1PTkRBWTwvY29kZT4sIGV0Yy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTaG9ydFdlZWtkYXlzKFN0cmluZ1tdIG5ld1Nob3J0V2Vla2RheXMpIHsKKyAgICAgICAgZGZzLnNldFNob3J0V2Vla2RheXMobmV3U2hvcnRXZWVrZGF5cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhbXBtIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiQU0iIGFuZCAiUE0iLgorICAgICAqIEByZXR1cm4gdGhlIHdlZWtkYXkgc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0QW1QbVN0cmluZ3MoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0QW1QbVN0cmluZ3MoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGFtcG0gc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJBTSIgYW5kICJQTSIuCisgICAgICogQHBhcmFtIG5ld0FtcG1zIHRoZSBuZXcgYW1wbSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEFtUG1TdHJpbmdzKFN0cmluZ1tdIG5ld0FtcG1zKSB7CisgICAgICAgIGRmcy5zZXRBbVBtU3RyaW5ncyhuZXdBbXBtcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aW1lem9uZSBzdHJpbmdzLgorICAgICAqIEByZXR1cm4gdGhlIHRpbWV6b25lIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdW10gZ2V0Wm9uZVN0cmluZ3MoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0Wm9uZVN0cmluZ3MoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRpbWV6b25lIHN0cmluZ3MuCisgICAgICogQHBhcmFtIG5ld1pvbmVTdHJpbmdzIHRoZSBuZXcgdGltZXpvbmUgc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRab25lU3RyaW5ncyhTdHJpbmdbXVtdIG5ld1pvbmVTdHJpbmdzKSB7CisgICAgICAgIGRmcy5zZXRab25lU3RyaW5ncyhuZXdab25lU3RyaW5ncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBsb2NhbGl6ZWQgZGF0ZS10aW1lIHBhdHRlcm4gY2hhcmFjdGVycy4gRm9yIGV4YW1wbGU6ICd1JywgJ3QnLCBldGMuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlcnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRMb2NhbFBhdHRlcm5DaGFycygpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRMb2NhbFBhdHRlcm5DaGFycygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgbG9jYWxpemVkIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlcnMuIEZvciBleGFtcGxlOiAndScsICd0JywgZXRjLgorICAgICAqIEBwYXJhbSBuZXdMb2NhbFBhdHRlcm5DaGFycyB0aGUgbmV3IGxvY2FsaXplZCBkYXRlLXRpbWUKKyAgICAgKiBwYXR0ZXJuIGNoYXJhY3RlcnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TG9jYWxQYXR0ZXJuQ2hhcnMoU3RyaW5nIG5ld0xvY2FsUGF0dGVybkNoYXJzKSB7CisgICAgICAgIGRmcy5zZXRMb2NhbFBhdHRlcm5DaGFycyhuZXdMb2NhbFBhdHRlcm5DaGFycyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcuCisgICAgICogQHJldHVybiBhIHN0cmluZyBzdWl0YWJsZSBmb3IgZGVidWdnaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBkZnMudG9TdHJpbmcoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIGNsb25lIG9mIHRoaXMgRGF0ZUZvcm1hdFN5bWJvbHMuCisgICAgICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgRGF0ZUZvcm1hdFN5bWJvbHMKKyAgICAgKiBAZHJhZnQgSUNVIDMuNC4yCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0U3ltYm9scygoamF2YS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzKWRmcy5jbG9uZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiByaHMgaXMgYSBEYXRlRm9ybWF0U3ltYm9scyBhbmQgaGFzIHRoZSBzYW1lIHN5bWJvbHMgYXMgdGhpcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgcmhzIGVxdWFscyB0aGlzCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gZGZzLmVxdWFscygoKERhdGVGb3JtYXRTeW1ib2xzKXJocykuZGZzKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgaGFzaENvZGUuCisgICAgICogQHJldHVybiBhIGhhc2hDb2RlCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBkZnMuaGFzaENvZGUoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNpbWFsRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE0NDk0ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXQuamF2YQpAQCAtMCwwICsxLDkwMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGlzIGEgY29uY3JldGUgc3ViY2xhc3Mgb2YKKyAqIHtAbGluayBOdW1iZXJGb3JtYXR9IHRoYXQgZm9ybWF0cyBkZWNpbWFsIG51bWJlcnMuCisgKgorICogPHA+VG8gb2J0YWluIGEge0BsaW5rIE51bWJlckZvcm1hdH0gZm9yIGEgc3BlY2lmaWMgbG9jYWxlIChpbmNsdWRpbmcgdGhlCisgKiBkZWZhdWx0IGxvY2FsZSkgY2FsbCBvbmUgb2YgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPidzIGZhY3RvcnkgbWV0aG9kcyBzdWNoCisgKiBhcyB7QGxpbmsgTnVtYmVyRm9ybWF0I2dldEluc3RhbmNlfS4gRG8gbm90IGNhbGwgdGhlIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+CisgKiBjb25zdHJ1Y3RvcnMgZGlyZWN0bHksIHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcsIHNpbmNlIHRoZQorICoge0BsaW5rIE51bWJlckZvcm1hdH0gZmFjdG9yeSBtZXRob2RzIG1heSByZXR1cm4gc3ViY2xhc3NlcyBvdGhlciB0aGFuCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPi4gSWYgeW91IG5lZWQgdG8gY3VzdG9taXplIHRoZSBmb3JtYXQgb2JqZWN0LCBkbworICogc29tZXRoaW5nIGxpa2UgdGhpczoKKyAqCisgKiA8YmxvY2txdW90ZT48cHJlPgorICogTnVtYmVyRm9ybWF0IGYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobG9jKTsKKyAqIGlmIChmIGluc3RhbmNlb2YgRGVjaW1hbEZvcm1hdCkgeworICogICAgICgoRGVjaW1hbEZvcm1hdCkgZikuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKHRydWUpOworICogfTwvcHJlPjwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD48c3Ryb25nPkV4YW1wbGUgVXNhZ2U8L3N0cm9uZz4KKyAqCisgKiA8YmxvY2txdW90ZT48cHJlPgorICogPHN0cm9uZz4vLyBQcmludCBvdXQgYSBudW1iZXIgdXNpbmcgdGhlIGxvY2FsaXplZCBudW1iZXIsIGN1cnJlbmN5LAorICogLy8gYW5kIHBlcmNlbnQgZm9ybWF0IGZvciBlYWNoIGxvY2FsZTwvc3Ryb25nPgorICogTG9jYWxlW10gbG9jYWxlcyA9IE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgKiBkb3VibGUgbXlOdW1iZXIgPSAtMTIzNC41NjsKKyAqIE51bWJlckZvcm1hdCBmb3JtYXQ7CisgKiBmb3IgKGludCBqPTA7IGo8MzsgKytqKSB7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGT1JNQVQiKTsKKyAqICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAqICAgICAgICAgaWYgKGxvY2FsZXNbaV0uZ2V0Q291bnRyeSgpLmxlbmd0aCgpID09IDApIHsKKyAqICAgICAgICAgICAgLy8gU2tpcCBsYW5ndWFnZS1vbmx5IGxvY2FsZXMKKyAqICAgICAgICAgICAgY29udGludWU7CisgKiAgICAgICAgIH0KKyAqICAgICAgICAgU3lzdGVtLm91dC5wcmludChsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkpOworICogICAgICAgICBzd2l0Y2ggKGopIHsKKyAqICAgICAgICAgY2FzZSAwOgorICogICAgICAgICAgICAgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZXNbaV0pOyBicmVhazsKKyAqICAgICAgICAgY2FzZSAxOgorICogICAgICAgICAgICAgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jYWxlc1tpXSk7IGJyZWFrOworICogICAgICAgICBkZWZhdWx0OgorICogICAgICAgICAgICAgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShsb2NhbGVzW2ldKTsgYnJlYWs7CisgKiAgICAgICAgIH0KKyAqICAgICAgICAgdHJ5IHsKKyAqICAgICAgICAgICAgIC8vIEFzc3VtZSBmb3JtYXQgaXMgYSBEZWNpbWFsRm9ybWF0CisgKiAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCI6ICIgKyAoKERlY2ltYWxGb3JtYXQpIGZvcm1hdCkudG9QYXR0ZXJuKCkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIC0+ICIgKyBmb3JtLmZvcm1hdChteU51bWJlcikpOworICogICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30KKyAqICAgICAgICAgdHJ5IHsKKyAqICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIC0+ICIgKyBmb3JtYXQucGFyc2UoZm9ybS5mb3JtYXQobXlOdW1iZXIpKSk7CisgKiAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHt9CisgKiAgICAgfQorICogfTwvcHJlPjwvYmxvY2txdW90ZT4KKyAqCisgKiA8aDQ+UGF0dGVybnM8L2g0PgorICoKKyAqIDxwPkEgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gY29uc2lzdHMgb2YgYSA8ZW0+cGF0dGVybjwvZW0+IGFuZCBhIHNldCBvZgorICogPGVtPnN5bWJvbHM8L2VtPi4gIFRoZSBwYXR0ZXJuIG1heSBiZSBzZXQgZGlyZWN0bHkgdXNpbmcKKyAqIHtAbGluayAjYXBwbHlQYXR0ZXJufSwgb3IgaW5kaXJlY3RseSB1c2luZyBvdGhlciBBUEkgbWV0aG9kcyB3aGljaAorICogbWFuaXB1bGF0ZSBhc3BlY3RzIG9mIHRoZSBwYXR0ZXJuLCBzdWNoIGFzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlZ2VyCisgKiBkaWdpdHMuICBUaGUgc3ltYm9scyBhcmUgc3RvcmVkIGluIGEge0BsaW5rIERlY2ltYWxGb3JtYXRTeW1ib2xzfQorICogb2JqZWN0LiAgV2hlbiB1c2luZyB0aGUge0BsaW5rIE51bWJlckZvcm1hdH0gZmFjdG9yeSBtZXRob2RzLCB0aGUKKyAqIHBhdHRlcm4gYW5kIHN5bWJvbHMgYXJlIHJlYWQgZnJvbSBJQ1UncyBsb2NhbGUgZGF0YS4KKyAqIAorICogPGg0PlNwZWNpYWwgUGF0dGVybiBDaGFyYWN0ZXJzPC9oND4KKyAqCisgKiA8cD5NYW55IGNoYXJhY3RlcnMgaW4gYSBwYXR0ZXJuIGFyZSB0YWtlbiBsaXRlcmFsbHk7IHRoZXkgYXJlIG1hdGNoZWQgZHVyaW5nCisgKiBwYXJzaW5nIGFuZCBvdXRwdXQgdW5jaGFuZ2VkIGR1cmluZyBmb3JtYXR0aW5nLiAgU3BlY2lhbCBjaGFyYWN0ZXJzLCBvbiB0aGUKKyAqIG90aGVyIGhhbmQsIHN0YW5kIGZvciBvdGhlciBjaGFyYWN0ZXJzLCBzdHJpbmdzLCBvciBjbGFzc2VzIG9mIGNoYXJhY3RlcnMuCisgKiBGb3IgZXhhbXBsZSwgdGhlICcjJyBjaGFyYWN0ZXIgaXMgcmVwbGFjZWQgYnkgYSBsb2NhbGl6ZWQgZGlnaXQuICBPZnRlbiB0aGUKKyAqIHJlcGxhY2VtZW50IGNoYXJhY3RlciBpcyB0aGUgc2FtZSBhcyB0aGUgcGF0dGVybiBjaGFyYWN0ZXI7IGluIHRoZSBVLlMuIGxvY2FsZSwKKyAqIHRoZSAnLCcgZ3JvdXBpbmcgY2hhcmFjdGVyIGlzIHJlcGxhY2VkIGJ5ICcsJy4gIEhvd2V2ZXIsIHRoZSByZXBsYWNlbWVudCBpcworICogc3RpbGwgaGFwcGVuaW5nLCBhbmQgaWYgdGhlIHN5bWJvbHMgYXJlIG1vZGlmaWVkLCB0aGUgZ3JvdXBpbmcgY2hhcmFjdGVyCisgKiBjaGFuZ2VzLiAgU29tZSBzcGVjaWFsIGNoYXJhY3RlcnMgYWZmZWN0IHRoZSBiZWhhdmlvciBvZiB0aGUgZm9ybWF0dGVyIGJ5CisgKiB0aGVpciBwcmVzZW5jZTsgZm9yIGV4YW1wbGUsIGlmIHRoZSBwZXJjZW50IGNoYXJhY3RlciBpcyBzZWVuLCB0aGVuIHRoZQorICogdmFsdWUgaXMgbXVsdGlwbGllZCBieSAxMDAgYmVmb3JlIGJlaW5nIGRpc3BsYXllZC4KKyAqCisgKiA8cD5UbyBpbnNlcnQgYSBzcGVjaWFsIGNoYXJhY3RlciBpbiBhIHBhdHRlcm4gYXMgYSBsaXRlcmFsLCB0aGF0IGlzLCB3aXRob3V0CisgKiBhbnkgc3BlY2lhbCBtZWFuaW5nLCB0aGUgY2hhcmFjdGVyIG11c3QgYmUgcXVvdGVkLiAgVGhlcmUgYXJlIHNvbWUgZXhjZXB0aW9ucyB0bworICogdGhpcyB3aGljaCBhcmUgbm90ZWQgYmVsb3cuCisgKgorICogPHA+VGhlIGNoYXJhY3RlcnMgbGlzdGVkIGhlcmUgYXJlIHVzZWQgaW4gbm9uLWxvY2FsaXplZCBwYXR0ZXJucy4gIExvY2FsaXplZAorICogcGF0dGVybnMgdXNlIHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgdGFrZW4gZnJvbSB0aGlzIGZvcm1hdHRlcidzCisgKiB7QGxpbmsgRGVjaW1hbEZvcm1hdFN5bWJvbHN9IG9iamVjdCBpbnN0ZWFkLCBhbmQgdGhlc2UgY2hhcmFjdGVycyBsb3NlCisgKiB0aGVpciBzcGVjaWFsIHN0YXR1cy4gIFR3byBleGNlcHRpb25zIGFyZSB0aGUgY3VycmVuY3kgc2lnbiBhbmQgcXVvdGUsIHdoaWNoCisgKiBhcmUgbm90IGxvY2FsaXplZC4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqIDx0YWJsZSBib3JkZXI9MCBjZWxsc3BhY2luZz0zIGNlbGxwYWRkaW5nPTAgc3VtbWFyeT0iQ2hhcnQgc2hvd2luZyBzeW1ib2wsCisgKiAgbG9jYXRpb24sIGxvY2FsaXplZCwgYW5kIG1lYW5pbmcuIj4KKyAqICAgPHRyIGJnY29sb3I9IiNjY2NjZmYiPgorICogICAgIDx0aCBhbGlnbj1sZWZ0PlN5bWJvbAorICogICAgIDx0aCBhbGlnbj1sZWZ0PkxvY2F0aW9uCisgKiAgICAgPHRoIGFsaWduPWxlZnQ+TG9jYWxpemVkPworICogICAgIDx0aCBhbGlnbj1sZWZ0Pk1lYW5pbmcKKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPjA8L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+RGlnaXQKKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPjEtOTwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD48c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiAgICAgICAgICcxJyB0aHJvdWdoICc5JyBpbmRpY2F0ZSByb3VuZGluZy4KKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPkA8L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ObworICogICAgIDx0ZD48c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiAgICAgICAgIFNpZ25pZmljYW50IGRpZ2l0CisgKiAgIDx0ciB2YWxpZ249dG9wIGJnY29sb3I9IiNlZWVlZmYiPgorICogICAgIDx0ZD48Y29kZT4jPC9jb2RlPgorICogICAgIDx0ZD5OdW1iZXIKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPkRpZ2l0LCB6ZXJvIHNob3dzIGFzIGFic2VudAorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+LjwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5EZWNpbWFsIHNlcGFyYXRvciBvciBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvcgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+LTwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5NaW51cyBzaWduCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT4sPC9jb2RlPgorICogICAgIDx0ZD5OdW1iZXIKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPkdyb3VwaW5nIHNlcGFyYXRvcgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+RTwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5TZXBhcmF0ZXMgbWFudGlzc2EgYW5kIGV4cG9uZW50IGluIHNjaWVudGlmaWMgbm90YXRpb24uCisgKiAgICAgICAgIDxlbT5OZWVkIG5vdCBiZSBxdW90ZWQgaW4gcHJlZml4IG9yIHN1ZmZpeC48L2VtPgorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+KzwvY29kZT4KKyAqICAgICA8dGQ+RXhwb25lbnQKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPjxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqICAgICAgICAgUHJlZml4IHBvc2l0aXZlIGV4cG9uZW50cyB3aXRoIGxvY2FsaXplZCBwbHVzIHNpZ24uCisgKiAgICAgICAgIDxlbT5OZWVkIG5vdCBiZSBxdW90ZWQgaW4gcHJlZml4IG9yIHN1ZmZpeC48L2VtPgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+OzwvY29kZT4KKyAqICAgICA8dGQ+U3VicGF0dGVybiBib3VuZGFyeQorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+U2VwYXJhdGVzIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBzdWJwYXR0ZXJucworICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+JTwvY29kZT4KKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeAorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+TXVsdGlwbHkgYnkgMTAwIGFuZCBzaG93IGFzIHBlcmNlbnRhZ2UKKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPiYjOTI7dTIwMzA8L2NvZGU+CisgKiAgICAgPHRkPlByZWZpeCBvciBzdWZmaXgKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPk11bHRpcGx5IGJ5IDEwMDAgYW5kIHNob3cgYXMgcGVyIG1pbGxlCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT4mIzE2NDs8L2NvZGU+ICg8Y29kZT4mIzkyO3UwMEE0PC9jb2RlPikKKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeAorICogICAgIDx0ZD5ObworICogICAgIDx0ZD5DdXJyZW5jeSBzaWduLCByZXBsYWNlZCBieSBjdXJyZW5jeSBzeW1ib2wuICBJZgorICogICAgICAgICBkb3VibGVkLCByZXBsYWNlZCBieSBpbnRlcm5hdGlvbmFsIGN1cnJlbmN5IHN5bWJvbC4KKyAqICAgICAgICAgSWYgcHJlc2VudCBpbiBhIHBhdHRlcm4sIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvcgorICogICAgICAgICBpcyB1c2VkIGluc3RlYWQgb2YgdGhlIGRlY2ltYWwgc2VwYXJhdG9yLgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+JzwvY29kZT4KKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeAorICogICAgIDx0ZD5ObworICogICAgIDx0ZD5Vc2VkIHRvIHF1b3RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBhIHByZWZpeCBvciBzdWZmaXgsCisgKiAgICAgICAgIGZvciBleGFtcGxlLCA8Y29kZT4iJyMnIyI8L2NvZGU+IGZvcm1hdHMgMTIzIHRvCisgKiAgICAgICAgIDxjb2RlPiIjMTIzIjwvY29kZT4uICBUbyBjcmVhdGUgYSBzaW5nbGUgcXVvdGUKKyAqICAgICAgICAgaXRzZWxmLCB1c2UgdHdvIGluIGEgcm93OiA8Y29kZT4iIyBvJydjbG9jayI8L2NvZGU+LgorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+KjwvY29kZT4KKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeCBib3VuZGFyeQorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+PHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogICAgICAgICBQYWQgZXNjYXBlLCBwcmVjZWRlcyBwYWQgY2hhcmFjdGVyCisgKiA8L3RhYmxlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPkEgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gcGF0dGVybiBjb250YWlucyBhIHBvc3RpdmUgYW5kIG5lZ2F0aXZlCisgKiBzdWJwYXR0ZXJuLCBmb3IgZXhhbXBsZSwgIiMsIyMwLjAwOygjLCMjMC4wMCkiLiAgRWFjaCBzdWJwYXR0ZXJuIGhhcyBhCisgKiBwcmVmaXgsIGEgbnVtZXJpYyBwYXJ0LCBhbmQgYSBzdWZmaXguICBJZiB0aGVyZSBpcyBubyBleHBsaWNpdCBuZWdhdGl2ZQorICogc3VicGF0dGVybiwgdGhlIG5lZ2F0aXZlIHN1YnBhdHRlcm4gaXMgdGhlIGxvY2FsaXplZCBtaW51cyBzaWduIHByZWZpeGVkIHRvIHRoZQorICogcG9zaXRpdmUgc3VicGF0dGVybi4gVGhhdCBpcywgIjAuMDAiIGFsb25lIGlzIGVxdWl2YWxlbnQgdG8gIjAuMDA7LTAuMDAiLiAgSWYgdGhlcmUKKyAqIGlzIGFuIGV4cGxpY2l0IG5lZ2F0aXZlIHN1YnBhdHRlcm4sIGl0IHNlcnZlcyBvbmx5IHRvIHNwZWNpZnkgdGhlIG5lZ2F0aXZlCisgKiBwcmVmaXggYW5kIHN1ZmZpeDsgdGhlIG51bWJlciBvZiBkaWdpdHMsIG1pbmltYWwgZGlnaXRzLCBhbmQgb3RoZXIKKyAqIGNoYXJhY3RlcmlzdGljcyBhcmUgaWdub3JlZCBpbiB0aGUgbmVnYXRpdmUgc3VicGF0dGVybi4gVGhhdCBtZWFucyB0aGF0CisgKiAiIywjIzAuMCM7KCMpIiBoYXMgcHJlY2lzZWx5IHRoZSBzYW1lIHJlc3VsdCBhcyAiIywjIzAuMCM7KCMsIyMwLjAjKSIuCisgKgorICogPHA+VGhlIHByZWZpeGVzLCBzdWZmaXhlcywgYW5kIHZhcmlvdXMgc3ltYm9scyB1c2VkIGZvciBpbmZpbml0eSwgZGlnaXRzLAorICogdGhvdXNhbmRzIHNlcGFyYXRvcnMsIGRlY2ltYWwgc2VwYXJhdG9ycywgZXRjLiBtYXkgYmUgc2V0IHRvIGFyYml0cmFyeQorICogdmFsdWVzLCBhbmQgdGhleSB3aWxsIGFwcGVhciBwcm9wZXJseSBkdXJpbmcgZm9ybWF0dGluZy4gIEhvd2V2ZXIsIGNhcmUgbXVzdAorICogYmUgdGFrZW4gdGhhdCB0aGUgc3ltYm9scyBhbmQgc3RyaW5ncyBkbyBub3QgY29uZmxpY3QsIG9yIHBhcnNpbmcgd2lsbCBiZQorICogdW5yZWxpYWJsZS4gIEZvciBleGFtcGxlLCBlaXRoZXIgdGhlIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBwcmVmaXhlcyBvciB0aGUKKyAqIHN1ZmZpeGVzIG11c3QgYmUgZGlzdGluY3QgZm9yIHtAbGluayAjcGFyc2V9IHRvIGJlIGFibGUKKyAqIHRvIGRpc3Rpbmd1aXNoIHBvc2l0aXZlIGZyb20gbmVnYXRpdmUgdmFsdWVzLiAgQW5vdGhlciBleGFtcGxlIGlzIHRoYXQgdGhlCisgKiBkZWNpbWFsIHNlcGFyYXRvciBhbmQgdGhvdXNhbmRzIHNlcGFyYXRvciBzaG91bGQgYmUgZGlzdGluY3QgY2hhcmFjdGVycywgb3IKKyAqIHBhcnNpbmcgd2lsbCBiZSBpbXBvc3NpYmxlLgorICoKKyAqIDxwPlRoZSA8ZW0+Z3JvdXBpbmcgc2VwYXJhdG9yPC9lbT4gaXMgYSBjaGFyYWN0ZXIgdGhhdCBzZXBhcmF0ZXMgY2x1c3RlcnMgb2YKKyAqIGludGVnZXIgZGlnaXRzIHRvIG1ha2UgbGFyZ2UgbnVtYmVycyBtb3JlIGxlZ2libGUuICBJdCBjb21tb25seSB1c2VkIGZvcgorICogdGhvdXNhbmRzLCBidXQgaW4gc29tZSBsb2NhbGVzIGl0IHNlcGFyYXRlcyB0ZW4tdGhvdXNhbmRzLiAgVGhlIDxlbT5ncm91cGluZworICogc2l6ZTwvZW0+IGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4gdGhlIGdyb3VwaW5nIHNlcGFyYXRvcnMsIHN1Y2ggYXMgMworICogZm9yICIxMDAsMDAwLDAwMCIgb3IgNCBmb3IgIjEgMDAwMCAwMDAwIi4gVGhlcmUgYXJlIGFjdHVhbGx5IHR3byBkaWZmZXJlbnQKKyAqIGdyb3VwaW5nIHNpemVzOiBPbmUgdXNlZCBmb3IgdGhlIGxlYXN0IHNpZ25pZmljYW50IGludGVnZXIgZGlnaXRzLCB0aGUKKyAqIDxlbT5wcmltYXJ5IGdyb3VwaW5nIHNpemU8L2VtPiwgYW5kIG9uZSB1c2VkIGZvciBhbGwgb3RoZXJzLCB0aGUKKyAqIDxlbT5zZWNvbmRhcnkgZ3JvdXBpbmcgc2l6ZTwvZW0+LiAgSW4gbW9zdCBsb2NhbGVzIHRoZXNlIGFyZSB0aGUgc2FtZSwgYnV0CisgKiBzb21ldGltZXMgdGhleSBhcmUgZGlmZmVyZW50LiBGb3IgZXhhbXBsZSwgaWYgdGhlIHByaW1hcnkgZ3JvdXBpbmcgaW50ZXJ2YWwKKyAqIGlzIDMsIGFuZCB0aGUgc2Vjb25kYXJ5IGlzIDIsIHRoZW4gdGhpcyBjb3JyZXNwb25kcyB0byB0aGUgcGF0dGVybgorICogIiMsIyMsIyMwIiwgYW5kIHRoZSBudW1iZXIgMTIzNDU2Nzg5IGlzIGZvcm1hdHRlZCBhcyAiMTIsMzQsNTYsNzg5Ii4gIElmIGEKKyAqIHBhdHRlcm4gY29udGFpbnMgbXVsdGlwbGUgZ3JvdXBpbmcgc2VwYXJhdG9ycywgdGhlIGludGVydmFsIGJldHdlZW4gdGhlIGxhc3QKKyAqIG9uZSBhbmQgdGhlIGVuZCBvZiB0aGUgaW50ZWdlciBkZWZpbmVzIHRoZSBwcmltYXJ5IGdyb3VwaW5nIHNpemUsIGFuZCB0aGUKKyAqIGludGVydmFsIGJldHdlZW4gdGhlIGxhc3QgdHdvIGRlZmluZXMgdGhlIHNlY29uZGFyeSBncm91cGluZyBzaXplLiBBbGwgb3RoZXJzCisgKiBhcmUgaWdub3JlZCwgc28gIiMsIyMsIyMjLCMjIyMiID09ICIjIyMsIyMjLCMjIyMiID09ICIjIywjLCMjIywjIyMjIi4KKyAqCisgKiA8cD5JbGxlZ2FsIHBhdHRlcm5zLCBzdWNoIGFzICIjLiMuIyIgb3IgIiMuIyMjLCMjIyIsIHdpbGwgY2F1c2UKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHRvIHRocm93IGFuIHtAbGluayBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb259CisgKiB3aXRoIGEgbWVzc2FnZSB0aGF0IGRlc2NyaWJlcyB0aGUgcHJvYmxlbS4KKyAqCisgKiA8aDQ+UGF0dGVybiBCTkY8L2g0PgorICoKKyAqIDxwcmU+CisgKiBwYXR0ZXJuICAgIDo9IHN1YnBhdHRlcm4gKCc7JyBzdWJwYXR0ZXJuKT8KKyAqIHN1YnBhdHRlcm4gOj0gcHJlZml4PyBudW1iZXIgZXhwb25lbnQ/IHN1ZmZpeD8KKyAqIG51bWJlciAgICAgOj0gKGludGVnZXIgKCcuJyBmcmFjdGlvbik/KSB8IHNpZ0RpZ2l0cworICogcHJlZml4ICAgICA6PSAnJiM5Mjt1MDAwMCcuLicmIzkyO3VGRkZEJyAtIHNwZWNpYWxDaGFyYWN0ZXJzCisgKiBzdWZmaXggICAgIDo9ICcmIzkyO3UwMDAwJy4uJyYjOTI7dUZGRkQnIC0gc3BlY2lhbENoYXJhY3RlcnMKKyAqIGludGVnZXIgICAgOj0gJyMnKiAnMCcqICcwJworICogZnJhY3Rpb24gICA6PSAnMCcqICcjJyoKKyAqIHNpZ0RpZ2l0cyAgOj0gJyMnKiAnQCcgJ0AnKiAnIycqCisgKiBleHBvbmVudCAgIDo9ICdFJyAnKyc/ICcwJyogJzAnCisgKiBwYWRTcGVjICAgIDo9ICcqJyBwYWRDaGFyCisgKiBwYWRDaGFyICAgIDo9ICcmIzkyO3UwMDAwJy4uJyYjOTI7dUZGRkQnIC0gcXVvdGUKKyAqICYjMzI7CisgKiBOb3RhdGlvbjoKKyAqICAgWCogICAgICAgMCBvciBtb3JlIGluc3RhbmNlcyBvZiBYCisgKiAgIFg/ICAgICAgIDAgb3IgMSBpbnN0YW5jZXMgb2YgWAorICogICBYfFkgICAgICBlaXRoZXIgWCBvciBZCisgKiAgIEMuLkQgICAgIGFueSBjaGFyYWN0ZXIgZnJvbSBDIHVwIHRvIEQsIGluY2x1c2l2ZQorICogICBTLVQgICAgICBjaGFyYWN0ZXJzIGluIFMsIGV4Y2VwdCB0aG9zZSBpbiBUCisgKiA8L3ByZT4KKyAqIFRoZSBmaXJzdCBzdWJwYXR0ZXJuIGlzIGZvciBwb3NpdGl2ZSBudW1iZXJzLiBUaGUgc2Vjb25kIChvcHRpb25hbCkKKyAqIHN1YnBhdHRlcm4gaXMgZm9yIG5lZ2F0aXZlIG51bWJlcnMuCisgKiAKKyAqIDxwPk5vdCBpbmRpY2F0ZWQgaW4gdGhlIEJORiBzeW50YXggYWJvdmU6CisgKgorICogPHVsPjxsaT5UaGUgZ3JvdXBpbmcgc2VwYXJhdG9yICcsJyBjYW4gb2NjdXIgaW5zaWRlIHRoZSBpbnRlZ2VyIGFuZAorICogc2lnRGlnaXRzIGVsZW1lbnRzLCBiZXR3ZWVuIGFueSB0d28gcGF0dGVybiBjaGFyYWN0ZXJzIG9mIHRoYXQKKyAqIGVsZW1lbnQsIGFzIGxvbmcgYXMgdGhlIGludGVnZXIgb3Igc2lnRGlnaXRzIGVsZW1lbnQgaXMgbm90CisgKiBmb2xsb3dlZCBieSB0aGUgZXhwb25lbnQgZWxlbWVudC4KKyAqCisgKiA8bGk+PGZvbnQgY29sb3I9cmVkIGZhY2U9aGVsdmV0aWNhPjxzdHJvbmc+TkVXPC9zdHJvbmc+PC9mb250PgorICogICAgIFR3byBncm91cGluZyBpbnRlcnZhbHMgYXJlIHJlY29nbml6ZWQ6IFRoYXQgYmV0d2VlbiB0aGUKKyAqICAgICBkZWNpbWFsIHBvaW50IGFuZCB0aGUgZmlyc3QgZ3JvdXBpbmcgc3ltYm9sLCBhbmQgdGhhdAorICogICAgIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBzZWNvbmQgZ3JvdXBpbmcgc3ltYm9scy4gVGhlc2UKKyAqICAgICBpbnRlcnZhbHMgYXJlIGlkZW50aWNhbCBpbiBtb3N0IGxvY2FsZXMsIGJ1dCBpbiBzb21lCisgKiAgICAgbG9jYWxlcyB0aGV5IGRpZmZlci4gRm9yIGV4YW1wbGUsIHRoZSBwYXR0ZXJuCisgKiAgICAgJnF1b3Q7IywjIywjIyMmcXVvdDsgZm9ybWF0cyB0aGUgbnVtYmVyIDEyMzQ1Njc4OSBhcworICogICAgICZxdW90OzEyLDM0LDU2LDc4OSZxdW90Oy48L2xpPgorICogCisgKiA8bGk+CisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiBUaGUgcGFkIHNwZWNpZmllciA8Y29kZT5wYWRTcGVjPC9jb2RlPiBtYXkgYXBwZWFyIGJlZm9yZSB0aGUgcHJlZml4LAorICogYWZ0ZXIgdGhlIHByZWZpeCwgYmVmb3JlIHRoZSBzdWZmaXgsIGFmdGVyIHRoZSBzdWZmaXgsIG9yIG5vdCBhdCBhbGwuCisgKgorICogPGxpPgorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogSW4gcGxhY2Ugb2YgJzAnLCB0aGUgZGlnaXRzICcxJyB0aHJvdWdoICc5JyBtYXkgYmUgdXNlZCB0bworICogaW5kaWNhdGUgYSByb3VuZGluZyBpbmNyZW1lbnQuCisgKiA8L3VsPgorICoKKyAqIDxoND5QYXJzaW5nPC9oND4KKyAqCisgKiA8cD48Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBwYXJzZXMgYWxsIFVuaWNvZGUgY2hhcmFjdGVycyB0aGF0IHJlcHJlc2VudAorICogZGVjaW1hbCBkaWdpdHMsIGFzIGRlZmluZWQgYnkge0BsaW5rIFVDaGFyYWN0ZXIjZGlnaXR9LiAgSW4gYWRkaXRpb24sCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBhbHNvIHJlY29nbml6ZXMgYXMgZGlnaXRzIHRoZSB0ZW4gY29uc2VjdXRpdmUKKyAqIGNoYXJhY3RlcnMgc3RhcnRpbmcgd2l0aCB0aGUgbG9jYWxpemVkIHplcm8gZGlnaXQgZGVmaW5lZCBpbiB0aGUKKyAqIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9sc30gb2JqZWN0LiAgRHVyaW5nIGZvcm1hdHRpbmcsIHRoZQorICoge0BsaW5rIERlY2ltYWxGb3JtYXRTeW1ib2xzfS1iYXNlZCBkaWdpdHMgYXJlIG91dHB1dC4KKyAqCisgKiA8cD5EdXJpbmcgcGFyc2luZywgZ3JvdXBpbmcgc2VwYXJhdG9ycyBhcmUgaWdub3JlZC4KKyAqCisgKiA8cD5JZiB7QGxpbmsgI3BhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbil9IGZhaWxzIHRvIHBhcnNlCisgKiBhIHN0cmluZywgaXQgcmV0dXJucyA8Y29kZT5udWxsPC9jb2RlPiBhbmQgbGVhdmVzIHRoZSBwYXJzZSBwb3NpdGlvbgorICogdW5jaGFuZ2VkLiAgVGhlIGNvbnZlbmllbmNlIG1ldGhvZCB7QGxpbmsgI3BhcnNlKFN0cmluZyl9CisgKiBpbmRpY2F0ZXMgcGFyc2UgZmFpbHVyZSBieSB0aHJvd2luZyBhIHtAbGluayBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb259LgorICoKKyAqIDxoND5Gb3JtYXR0aW5nPC9oND4KKyAqCisgKiA8cD5Gb3JtYXR0aW5nIGlzIGd1aWRlZCBieSBzZXZlcmFsIHBhcmFtZXRlcnMsIGFsbCBvZiB3aGljaCBjYW4gYmUKKyAqIHNwZWNpZmllZCBlaXRoZXIgdXNpbmcgYSBwYXR0ZXJuIG9yIHVzaW5nIHRoZSBBUEkuICBUaGUgZm9sbG93aW5nCisgKiBkZXNjcmlwdGlvbiBhcHBsaWVzIHRvIGZvcm1hdHMgdGhhdCBkbyBub3QgdXNlIDxhIGhyZWY9IiNzY2kiPnNjaWVudGlmaWMKKyAqIG5vdGF0aW9uPC9hPiBvciA8YSBocmVmPSIjc2lnZGlnIj5zaWduaWZpY2FudCBkaWdpdHM8L2E+LgorICoKKyAqIDx1bD48bGk+SWYgdGhlIG51bWJlciBvZiBhY3R1YWwgaW50ZWdlciBkaWdpdHMgZXhjZWVkcyB0aGUKKyAqIDxlbT5tYXhpbXVtIGludGVnZXIgZGlnaXRzPC9lbT4sIHRoZW4gb25seSB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQKKyAqIGRpZ2l0cyBhcmUgc2hvd24uICBGb3IgZXhhbXBsZSwgMTk5NyBpcyBmb3JtYXR0ZWQgYXMgIjk3IiBpZiB0aGUKKyAqIG1heGltdW0gaW50ZWdlciBkaWdpdHMgaXMgc2V0IHRvIDIuCisgKgorICogPGxpPklmIHRoZSBudW1iZXIgb2YgYWN0dWFsIGludGVnZXIgZGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUKKyAqIDxlbT5taW5pbXVtIGludGVnZXIgZGlnaXRzPC9lbT4sIHRoZW4gbGVhZGluZyB6ZXJvcyBhcmUgYWRkZWQuICBGb3IKKyAqIGV4YW1wbGUsIDE5OTcgaXMgZm9ybWF0dGVkIGFzICIwMTk5NyIgaWYgdGhlIG1pbmltdW0gaW50ZWdlciBkaWdpdHMKKyAqIGlzIHNldCB0byA1LgorICoKKyAqIDxsaT5JZiB0aGUgbnVtYmVyIG9mIGFjdHVhbCBmcmFjdGlvbiBkaWdpdHMgZXhjZWVkcyB0aGUgPGVtPm1heGltdW0KKyAqIGZyYWN0aW9uIGRpZ2l0czwvZW0+LCB0aGVuIGhhbGYtZXZlbiByb3VuZGluZyBpdCBwZXJmb3JtZWQgdG8gdGhlCisgKiBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cy4gIEZvciBleGFtcGxlLCAwLjEyNSBpcyBmb3JtYXR0ZWQgYXMgIjAuMTIiCisgKiBpZiB0aGUgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMgaXMgMi4gIFRoaXMgYmVoYXZpb3IgY2FuIGJlIGNoYW5nZWQKKyAqIGJ5IHNwZWNpZnlpbmcgYSByb3VuZGluZyBpbmNyZW1lbnQgYW5kIGEgcm91bmRpbmcgbW9kZS4KKyAqCisgKiA8bGk+SWYgdGhlIG51bWJlciBvZiBhY3R1YWwgZnJhY3Rpb24gZGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUKKyAqIDxlbT5taW5pbXVtIGZyYWN0aW9uIGRpZ2l0czwvZW0+LCB0aGVuIHRyYWlsaW5nIHplcm9zIGFyZSBhZGRlZC4KKyAqIEZvciBleGFtcGxlLCAwLjEyNSBpcyBmb3JtYXR0ZWQgYXMgIjAuMTI1MCIgaWYgdGhlIG1pbWltdW0gZnJhY3Rpb24KKyAqIGRpZ2l0cyBpcyBzZXQgdG8gNC4KKyAqCisgKiA8bGk+VHJhaWxpbmcgZnJhY3Rpb25hbCB6ZXJvcyBhcmUgbm90IGRpc3BsYXllZCBpZiB0aGV5IG9jY3VyCisgKiA8ZW0+ajwvZW0+IHBvc2l0aW9ucyBhZnRlciB0aGUgZGVjaW1hbCwgd2hlcmUgPGVtPmo8L2VtPiBpcyBsZXNzCisgKiB0aGFuIHRoZSBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cy4gRm9yIGV4YW1wbGUsIDAuMTAwMDQgaXMKKyAqIGZvcm1hdHRlZCBhcyAiMC4xIiBpZiB0aGUgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMgaXMgZm91ciBvciBsZXNzLgorICogPC91bD4KKyAqIAorICogPHA+PHN0cm9uZz5TcGVjaWFsIFZhbHVlczwvc3Ryb25nPgorICoKKyAqIDxwPjxjb2RlPk5hTjwvY29kZT4gaXMgcmVwcmVzZW50ZWQgYXMgYSBzaW5nbGUgY2hhcmFjdGVyLCB0eXBpY2FsbHkKKyAqIDxjb2RlPiYjOTI7dUZGRkQ8L2NvZGU+LiAgVGhpcyBjaGFyYWN0ZXIgaXMgZGV0ZXJtaW5lZCBieSB0aGUKKyAqIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9sc30gb2JqZWN0LiAgVGhpcyBpcyB0aGUgb25seSB2YWx1ZSBmb3Igd2hpY2gKKyAqIHRoZSBwcmVmaXhlcyBhbmQgc3VmZml4ZXMgYXJlIG5vdCB1c2VkLgorICoKKyAqIDxwPkluZmluaXR5IGlzIHJlcHJlc2VudGVkIGFzIGEgc2luZ2xlIGNoYXJhY3RlciwgdHlwaWNhbGx5CisgKiA8Y29kZT4mIzkyO3UyMjFFPC9jb2RlPiwgd2l0aCB0aGUgcG9zaXRpdmUgb3IgbmVnYXRpdmUgcHJlZml4ZXMgYW5kIHN1ZmZpeGVzCisgKiBhcHBsaWVkLiAgVGhlIGluZmluaXR5IGNoYXJhY3RlciBpcyBkZXRlcm1pbmVkIGJ5IHRoZQorICoge0BsaW5rIERlY2ltYWxGb3JtYXRTeW1ib2xzfSBvYmplY3QuCisgKgorICogPGEgbmFtZT0ic2NpIj48aDQ+U2NpZW50aWZpYyBOb3RhdGlvbjwvaDQ+PC9hPgorICoKKyAqIDxwPk51bWJlcnMgaW4gc2NpZW50aWZpYyBub3RhdGlvbiBhcmUgZXhwcmVzc2VkIGFzIHRoZSBwcm9kdWN0IG9mIGEgbWFudGlzc2EKKyAqIGFuZCBhIHBvd2VyIG9mIHRlbiwgZm9yIGV4YW1wbGUsIDEyMzQgY2FuIGJlIGV4cHJlc3NlZCBhcyAxLjIzNCB4IDEwPHN1cD4zPC9zdXA+LiBUaGUKKyAqIG1hbnRpc3NhIGlzIHR5cGljYWxseSBpbiB0aGUgaGFsZi1vcGVuIGludGVydmFsIFsxLjAsIDEwLjApIG9yIHNvbWV0aW1lcyBbMC4wLCAxLjApLAorICogYnV0IGl0IG5lZWQgbm90IGJlLiAgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gc3VwcG9ydHMgYXJiaXRyYXJ5IG1hbnRpc3Nhcy4KKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGNhbiBiZSBpbnN0cnVjdGVkIHRvIHVzZSBzY2llbnRpZmljCisgKiBub3RhdGlvbiB0aHJvdWdoIHRoZSBBUEkgb3IgdGhyb3VnaCB0aGUgcGF0dGVybi4gIEluIGEgcGF0dGVybiwgdGhlIGV4cG9uZW50CisgKiBjaGFyYWN0ZXIgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgZGlnaXQgY2hhcmFjdGVycyBpbmRpY2F0ZXMKKyAqIHNjaWVudGlmaWMgbm90YXRpb24uICBFeGFtcGxlOiAiMC4jIyNFMCIgZm9ybWF0cyB0aGUgbnVtYmVyIDEyMzQgYXMKKyAqICIxLjIzNEUzIi4KKyAqCisgKiA8dWw+CisgKiA8bGk+VGhlIG51bWJlciBvZiBkaWdpdCBjaGFyYWN0ZXJzIGFmdGVyIHRoZSBleHBvbmVudCBjaGFyYWN0ZXIgZ2l2ZXMgdGhlCisgKiBtaW5pbXVtIGV4cG9uZW50IGRpZ2l0IGNvdW50LiAgVGhlcmUgaXMgbm8gbWF4aW11bS4gIE5lZ2F0aXZlIGV4cG9uZW50cyBhcmUKKyAqIGZvcm1hdHRlZCB1c2luZyB0aGUgbG9jYWxpemVkIG1pbnVzIHNpZ24sIDxlbT5ub3Q8L2VtPiB0aGUgcHJlZml4IGFuZCBzdWZmaXgKKyAqIGZyb20gdGhlIHBhdHRlcm4uICBUaGlzIGFsbG93cyBwYXR0ZXJucyBzdWNoIGFzICIwLiMjI0UwIG0vcyIuICBUbyBwcmVmaXgKKyAqIHBvc2l0aXZlIGV4cG9uZW50cyB3aXRoIGEgbG9jYWxpemVkIHBsdXMgc2lnbiwgc3BlY2lmeSAnKycgYmV0d2VlbiB0aGUKKyAqIGV4cG9uZW50IGFuZCB0aGUgZGlnaXRzOiAiMC4jIyNFKzAiIHdpbGwgcHJvZHVjZSBmb3JtYXRzICIxRSsxIiwgIjFFKzAiLAorICogIjFFLTEiLCBldGMuICAoSW4gbG9jYWxpemVkIHBhdHRlcm5zLCB1c2UgdGhlIGxvY2FsaXplZCBwbHVzIHNpZ24gcmF0aGVyIHRoYW4KKyAqICcrJy4pCisgKgorICogPGxpPlRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyBpcyBhY2hpZXZlZCBieSBhZGp1c3RpbmcgdGhlCisgKiBleHBvbmVudC4gIEV4YW1wbGU6IDAuMDAxMjMgZm9ybWF0dGVkIHdpdGggIjAwLiMjI0UwIiB5aWVsZHMgIjEyLjNFLTQiLiAgVGhpcworICogb25seSBoYXBwZW5zIGlmIHRoZXJlIGlzIG5vIG1heGltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzLiAgSWYgdGhlcmUgaXMgYQorICogbWF4aW11bSwgdGhlbiB0aGUgbWluaW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgaXMgZml4ZWQgYXQgb25lLgorICoKKyAqIDxsaT5UaGUgbWF4aW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMsIGlmIHByZXNlbnQsIHNwZWNpZmllcyB0aGUgZXhwb25lbnQKKyAqIGdyb3VwaW5nLiAgVGhlIG1vc3QgY29tbW9uIHVzZSBvZiB0aGlzIGlzIHRvIGdlbmVyYXRlIDxlbT5lbmdpbmVlcmluZworICogbm90YXRpb248L2VtPiwgaW4gd2hpY2ggdGhlIGV4cG9uZW50IGlzIGEgbXVsdGlwbGUgb2YgdGhyZWUsIGUuZy4sCisgKiAiIyMwLiMjI0UwIi4gIFRoZSBudW1iZXIgMTIzNDUgaXMgZm9ybWF0dGVkIHVzaW5nICIjIzAuIyMjI0UwIiBhcyAiMTIuMzQ1RTMiLgorICoKKyAqIDxsaT5XaGVuIHVzaW5nIHNjaWVudGlmaWMgbm90YXRpb24sIHRoZSBmb3JtYXR0ZXIgY29udHJvbHMgdGhlCisgKiBkaWdpdCBjb3VudHMgdXNpbmcgc2lnbmlmaWNhbnQgZGlnaXRzIGxvZ2ljLiAgVGhlIG1heGltdW0gbnVtYmVyIG9mCisgKiBzaWduaWZpY2FudCBkaWdpdHMgbGltaXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgaW50ZWdlciBhbmQgZnJhY3Rpb24KKyAqIGRpZ2l0cyB0aGF0IHdpbGwgYmUgc2hvd24gaW4gdGhlIG1hbnRpc3NhOyBpdCBkb2VzIG5vdCBhZmZlY3QKKyAqIHBhcnNpbmcuICBGb3IgZXhhbXBsZSwgMTIzNDUgZm9ybWF0dGVkIHdpdGggIiMjMC4jI0UwIiBpcyAiMTIuM0UzIi4KKyAqIFNlZSB0aGUgc2VjdGlvbiBvbiBzaWduaWZpY2FudCBkaWdpdHMgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiA8bGk+VGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgc2hvd24gaXMgZGV0ZXJtaW5lZCBhcworICogZm9sbG93czogSWYgYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkgcmV0dXJucyBmYWxzZSwgdGhlbiB0aGUKKyAqIG1pbmltdW0gbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBzaG93biBpcyBvbmUsIGFuZCB0aGUgbWF4aW11bQorICogbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBzaG93biBpcyB0aGUgc3VtIG9mIHRoZSA8ZW0+bWluaW11bQorICogaW50ZWdlcjwvZW0+IGFuZCA8ZW0+bWF4aW11bSBmcmFjdGlvbjwvZW0+IGRpZ2l0cywgYW5kIGlzCisgKiB1bmFmZmVjdGVkIGJ5IHRoZSBtYXhpbXVtIGludGVnZXIgZGlnaXRzLiAgSWYgdGhpcyBzdW0gaXMgemVybywKKyAqIHRoZW4gYWxsIHNpZ25pZmljYW50IGRpZ2l0cyBhcmUgc2hvd24uICBJZgorICogYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkgcmV0dXJucyB0cnVlLCB0aGVuIHRoZSBzaWduaWZpY2FudCBkaWdpdAorICogY291bnRzIGFyZSBzcGVjaWZpZWQgYnkgZ2V0TWluaW11bVNpZ25pZmljYW50RGlnaXRzKCkgYW5kCisgKiBnZXRNYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMoKS4gIEluIHRoaXMgY2FzZSwgdGhlIG51bWJlciBvZgorICogaW50ZWdlciBkaWdpdHMgaXMgZml4ZWQgYXQgb25lLCBhbmQgdGhlcmUgaXMgbm8gZXhwb25lbnQgZ3JvdXBpbmcuCisgKgorICogPGxpPkV4cG9uZW50aWFsIHBhdHRlcm5zIG1heSBub3QgY29udGFpbiBncm91cGluZyBzZXBhcmF0b3JzLgorICogPC91bD4KKyAqCisgKiA8YSBuYW1lPSJzaWdkaWciPjxoND4KKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqIFNpZ25pZmljYW50IERpZ2l0czwvaDQ+PC9hPgorICoKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGhhcyB0d28gd2F5cyBvZiBjb250cm9sbGluZyBob3cgbWFueQorICogZGlnaXRzIGFyZSBzaG93czogKGEpIHNpZ25pZmljYW50IGRpZ2l0cyBjb3VudHMsIG9yIChiKSBpbnRlZ2VyIGFuZAorICogZnJhY3Rpb24gZGlnaXQgY291bnRzLiAgSW50ZWdlciBhbmQgZnJhY3Rpb24gZGlnaXQgY291bnRzIGFyZQorICogZGVzY3JpYmVkIGFib3ZlLiAgV2hlbiBhIGZvcm1hdHRlciBpcyB1c2luZyBzaWduaWZpY2FudCBkaWdpdHMKKyAqIGNvdW50cywgdGhlIG51bWJlciBvZiBpbnRlZ2VyIGFuZCBmcmFjdGlvbiBkaWdpdHMgaXMgbm90IHNwZWNpZmllZAorICogZGlyZWN0bHksIGFuZCB0aGUgZm9ybWF0dGVyIHNldHRpbmdzIGZvciB0aGVzZSBjb3VudHMgYXJlIGlnbm9yZWQuCisgKiBJbnN0ZWFkLCB0aGUgZm9ybWF0dGVyIHVzZXMgaG93ZXZlciBtYW55IGludGVnZXIgYW5kIGZyYWN0aW9uCisgKiBkaWdpdHMgYXJlIHJlcXVpcmVkIHRvIGRpc3BsYXkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc2lnbmlmaWNhbnQKKyAqIGRpZ2l0cy4gIEV4YW1wbGVzOgorICoKKyAqIDxibG9ja3F1b3RlPgorICogPHRhYmxlIGJvcmRlcj0wIGNlbGxzcGFjaW5nPTMgY2VsbHBhZGRpbmc9MD4KKyAqICAgPHRyIGJnY29sb3I9IiNjY2NjZmYiPgorICogICAgIDx0aCBhbGlnbj1sZWZ0PlBhdHRlcm4KKyAqICAgICA8dGggYWxpZ249bGVmdD5NaW5pbXVtIHNpZ25pZmljYW50IGRpZ2l0cworICogICAgIDx0aCBhbGlnbj1sZWZ0Pk1heGltdW0gc2lnbmlmaWNhbnQgZGlnaXRzCisgKiAgICAgPHRoIGFsaWduPWxlZnQ+TnVtYmVyCisgKiAgICAgPHRoIGFsaWduPWxlZnQ+T3V0cHV0IG9mIGZvcm1hdCgpCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT5AQEA8L2NvZGU+CisgKiAgICAgPHRkPjMKKyAqICAgICA8dGQ+MworICogICAgIDx0ZD4xMjM0NQorICogICAgIDx0ZD48Y29kZT4xMjMwMDwvY29kZT4KKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPkBAQDwvY29kZT4KKyAqICAgICA8dGQ+MworICogICAgIDx0ZD4zCisgKiAgICAgPHRkPjAuMTIzNDUKKyAqICAgICA8dGQ+PGNvZGU+MC4xMjM8L2NvZGU+CisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT5AQCMjPC9jb2RlPgorICogICAgIDx0ZD4yCisgKiAgICAgPHRkPjQKKyAqICAgICA8dGQ+My4xNDE1OQorICogICAgIDx0ZD48Y29kZT4zLjE0MjwvY29kZT4KKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPkBAIyM8L2NvZGU+CisgKiAgICAgPHRkPjIKKyAqICAgICA8dGQ+NAorICogICAgIDx0ZD4xLjIzMDA0CisgKiAgICAgPHRkPjxjb2RlPjEuMjM8L2NvZGU+CisgKiA8L3RhYmxlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDx1bD4KKyAqIDxsaT5TaWduaWZpY2FudCBkaWdpdCBjb3VudHMgbWF5IGJlIGV4cHJlc3NlZCB1c2luZyBwYXR0ZXJucyB0aGF0CisgKiBzcGVjaWZ5IGEgbWluaW11bSBhbmQgbWF4aW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzLiAgVGhlc2UKKyAqIGFyZSBpbmRpY2F0ZWQgYnkgdGhlIDxjb2RlPidAJzwvY29kZT4gYW5kIDxjb2RlPicjJzwvY29kZT4KKyAqIGNoYXJhY3RlcnMuICBUaGUgbWluaW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIGlzIHRoZSBudW1iZXIKKyAqIG9mIDxjb2RlPidAJzwvY29kZT4gY2hhcmFjdGVycy4gIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzaWduaWZpY2FudAorICogZGlnaXRzIGlzIHRoZSBudW1iZXIgb2YgPGNvZGU+J0AnPC9jb2RlPiBjaGFyYWN0ZXJzIHBsdXMgdGhlIG51bWJlcgorICogb2YgPGNvZGU+JyMnPC9jb2RlPiBjaGFyYWN0ZXJzIGZvbGxvd2luZyBvbiB0aGUgcmlnaHQuICBGb3IKKyAqIGV4YW1wbGUsIHRoZSBwYXR0ZXJuIDxjb2RlPiJAQEAiPC9jb2RlPiBpbmRpY2F0ZXMgZXhhY3RseSAzCisgKiBzaWduaWZpY2FudCBkaWdpdHMuICBUaGUgcGF0dGVybiA8Y29kZT4iQCMjIjwvY29kZT4gaW5kaWNhdGVzIGZyb20KKyAqIDEgdG8gMyBzaWduaWZpY2FudCBkaWdpdHMuICBUcmFpbGluZyB6ZXJvIGRpZ2l0cyB0byB0aGUgcmlnaHQgb2YKKyAqIHRoZSBkZWNpbWFsIHNlcGFyYXRvciBhcmUgc3VwcHJlc3NlZCBhZnRlciB0aGUgbWluaW11bSBudW1iZXIgb2YKKyAqIHNpZ25pZmljYW50IGRpZ2l0cyBoYXZlIGJlZW4gc2hvd24uICBGb3IgZXhhbXBsZSwgdGhlIHBhdHRlcm4KKyAqIDxjb2RlPiJAIyMiPC9jb2RlPiBmb3JtYXRzIHRoZSBudW1iZXIgMC4xMjAzIGFzCisgKiA8Y29kZT4iMC4xMiI8L2NvZGU+LgorICoKKyAqIDxsaT5JZiBhIHBhdHRlcm4gdXNlcyBzaWduaWZpY2FudCBkaWdpdHMsIGl0IG1heSBub3QgY29udGFpbiBhCisgKiBkZWNpbWFsIHNlcGFyYXRvciwgbm9yIHRoZSA8Y29kZT4nMCc8L2NvZGU+IHBhdHRlcm4gY2hhcmFjdGVyLgorICogUGF0dGVybnMgc3VjaCBhcyA8Y29kZT4iQDAwIjwvY29kZT4gb3IgPGNvZGU+IkAuIyMjIjwvY29kZT4gYXJlCisgKiBkaXNhbGxvd2VkLgorICoKKyAqIDxsaT5BbnkgbnVtYmVyIG9mIDxjb2RlPicjJzwvY29kZT4gY2hhcmFjdGVycyBtYXkgYmUgcHJlcGVuZGVkIHRvCisgKiB0aGUgbGVmdCBvZiB0aGUgbGVmdG1vc3QgPGNvZGU+J0AnPC9jb2RlPiBjaGFyYWN0ZXIuICBUaGVzZSBoYXZlIG5vCisgKiBlZmZlY3Qgb24gdGhlIG1pbmltdW0gYW5kIG1heGltdW0gc2lnbmlmaWNhbnQgZGlnaXRzIGNvdW50cywgYnV0CisgKiBtYXkgYmUgdXNlZCB0byBwb3NpdGlvbiBncm91cGluZyBzZXBhcmF0b3JzLiAgRm9yIGV4YW1wbGUsCisgKiA8Y29kZT4iIywjQCMiPC9jb2RlPiBpbmRpY2F0ZXMgYSBtaW5pbXVtIG9mIG9uZSBzaWduaWZpY2FudCBkaWdpdHMsCisgKiBhIG1heGltdW0gb2YgdHdvIHNpZ25pZmljYW50IGRpZ2l0cywgYW5kIGEgZ3JvdXBpbmcgc2l6ZSBvZiB0aHJlZS4KKyAqCisgKiA8bGk+SW4gb3JkZXIgdG8gZW5hYmxlIHNpZ25pZmljYW50IGRpZ2l0cyBmb3JtYXR0aW5nLCB1c2UgYSBwYXR0ZXJuCisgKiBjb250YWluaW5nIHRoZSA8Y29kZT4nQCc8L2NvZGU+IHBhdHRlcm4gY2hhcmFjdGVyLiAgQWx0ZXJuYXRpdmVseSwKKyAqIGNhbGwge0BsaW5rICNzZXRTaWduaWZpY2FudERpZ2l0c1VzZWQgc2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkKHRydWUpfS4KKyAqCisgKiA8bGk+SW4gb3JkZXIgdG8gZGlzYWJsZSBzaWduaWZpY2FudCBkaWdpdHMgZm9ybWF0dGluZywgdXNlIGEKKyAqIHBhdHRlcm4gdGhhdCBkb2VzIG5vdCBjb250YWluIHRoZSA8Y29kZT4nQCc8L2NvZGU+IHBhdHRlcm4KKyAqIGNoYXJhY3Rlci4gQWx0ZXJuYXRpdmVseSwgY2FsbCB7QGxpbmsgI3NldFNpZ25pZmljYW50RGlnaXRzVXNlZAorICogc2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkKGZhbHNlKX0uCisgKgorICogPGxpPlRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIGhhcyBubyBlZmZlY3Qgb24gcGFyc2luZy4KKyAqCisgKiA8bGk+U2lnbmlmaWNhbnQgZGlnaXRzIG1heSBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggZXhwb25lbnRpYWwgbm90YXRpb24uIFN1Y2gKKyAqIHBhdHRlcm5zIGFyZSBlcXVpdmFsZW50IHRvIGEgbm9ybWFsIGV4cG9uZW50aWFsIHBhdHRlcm4gd2l0aCBhIG1pbmltdW0gYW5kCisgKiBtYXhpbXVtIGludGVnZXIgZGlnaXQgY291bnQgb2Ygb25lLCBhIG1pbmltdW0gZnJhY3Rpb24gZGlnaXQgY291bnQgb2YKKyAqIDxjb2RlPmdldE1pbmltdW1TaWduaWZpY2FudERpZ2l0cygpIC0gMTwvY29kZT4sIGFuZCBhIG1heGltdW0gZnJhY3Rpb24gZGlnaXQKKyAqIGNvdW50IG9mIDxjb2RlPmdldE1heGltdW1TaWduaWZpY2FudERpZ2l0cygpIC0gMTwvY29kZT4uIEZvciBleGFtcGxlLCB0aGUKKyAqIHBhdHRlcm4gPGNvZGU+IkBAIyMjRTAiPC9jb2RlPiBpcyBlcXVpdmFsZW50IHRvIDxjb2RlPiIwLjAjIyNFMCI8L2NvZGU+LgorICoKKyAqIDxsaT5JZiBzaWduZmljYW50IGRpZ2l0cyBhcmUgaW4gdXNlLCB0aGVuIHRoZSBpbnRlZ2VyIGFuZCBmcmFjdGlvbgorICogZGlnaXQgY291bnRzLCBhcyBzZXQgdmlhIHRoZSBBUEksIGFyZSBpZ25vcmVkLiAgSWYgc2lnbmlmaWNhbnQKKyAqIGRpZ2l0cyBhcmUgbm90IGluIHVzZSwgdGhlbiB0aGUgc2lnbmZpY2FudCBkaWdpdCBjb3VudHMsIGFzIHNldCB2aWEKKyAqIHRoZSBBUEksIGFyZSBpZ25vcmVkLgorICoKKyAqIDwvdWw+CisgKiAKKyAqIDxoND4KKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqIFBhZGRpbmc8L2g0PgorICoKKyAqIDxwPjxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHN1cHBvcnRzIHBhZGRpbmcgdGhlIHJlc3VsdCBvZgorICoge0BsaW5rICNmb3JtYXR9IHRvIGEgc3BlY2lmaWMgd2lkdGguICBQYWRkaW5nIG1heSBiZSBzcGVjaWZpZWQgZWl0aGVyCisgKiB0aHJvdWdoIHRoZSBBUEkgb3IgdGhyb3VnaCB0aGUgcGF0dGVybiBzeW50YXguICBJbiBhIHBhdHRlcm4gdGhlIHBhZCBlc2NhcGUKKyAqIGNoYXJhY3RlciwgZm9sbG93ZWQgYnkgYSBzaW5nbGUgcGFkIGNoYXJhY3RlciwgY2F1c2VzIHBhZGRpbmcgdG8gYmUgcGFyc2VkCisgKiBhbmQgZm9ybWF0dGVkLiAgVGhlIHBhZCBlc2NhcGUgY2hhcmFjdGVyIGlzICcqJyBpbiB1bmxvY2FsaXplZCBwYXR0ZXJucywgYW5kCisgKiBjYW4gYmUgbG9jYWxpemVkIHVzaW5nIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9scyNzZXRQYWRFc2NhcGV9LiAgRm9yCisgKiBleGFtcGxlLCA8Y29kZT4iJCp4IywjIzAuMDAiPC9jb2RlPiBmb3JtYXRzIDEyMyB0byA8Y29kZT4iJHh4MTIzLjAwIjwvY29kZT4sCisgKiBhbmQgMTIzNCB0byA8Y29kZT4iJDEsMjM0LjAwIjwvY29kZT4uCisgKgorICogPHVsPgorICogPGxpPldoZW4gcGFkZGluZyBpcyBpbiBlZmZlY3QsIHRoZSB3aWR0aCBvZiB0aGUgcG9zaXRpdmUgc3VicGF0dGVybiwKKyAqIGluY2x1ZGluZyBwcmVmaXggYW5kIHN1ZmZpeCwgZGV0ZXJtaW5lcyB0aGUgZm9ybWF0IHdpZHRoLiAgRm9yIGV4YW1wbGUsIGluCisgKiB0aGUgcGF0dGVybiA8Y29kZT4iKiAjMCBvJydjbG9jayI8L2NvZGU+LCB0aGUgZm9ybWF0IHdpZHRoIGlzIDEwLgorICoKKyAqIDxsaT5UaGUgd2lkdGggaXMgY291bnRlZCBpbiAxNi1iaXQgY29kZSB1bml0cyAoSmF2YSA8Y29kZT5jaGFyPC9jb2RlPnMpLgorICoKKyAqIDxsaT5Tb21lIHBhcmFtZXRlcnMgd2hpY2ggdXN1YWxseSBkbyBub3QgbWF0dGVyIGhhdmUgbWVhbmluZyB3aGVuIHBhZGRpbmcgaXMKKyAqIHVzZWQsIGJlY2F1c2UgdGhlIHBhdHRlcm4gd2lkdGggaXMgc2lnbmlmaWNhbnQgd2l0aCBwYWRkaW5nLiAgSW4gdGhlIHBhdHRlcm4KKyAqICIqICMjLCMjLCMsIyMwLiMjIiwgdGhlIGZvcm1hdCB3aWR0aCBpcyAxNC4gIFRoZSBpbml0aWFsIGNoYXJhY3RlcnMgIiMjLCMjLCIKKyAqIGRvIG5vdCBhZmZlY3QgdGhlIGdyb3VwaW5nIHNpemUgb3IgbWF4aW11bSBpbnRlZ2VyIGRpZ2l0cywgYnV0IHRoZXkgZG8gYWZmZWN0CisgKiB0aGUgZm9ybWF0IHdpZHRoLgorICoKKyAqIDxsaT5QYWRkaW5nIG1heSBiZSBpbnNlcnRlZCBhdCBvbmUgb2YgZm91ciBsb2NhdGlvbnM6IGJlZm9yZSB0aGUgcHJlZml4LAorICogYWZ0ZXIgdGhlIHByZWZpeCwgYmVmb3JlIHRoZSBzdWZmaXgsIG9yIGFmdGVyIHRoZSBzdWZmaXguICBJZiBwYWRkaW5nIGlzCisgKiBzcGVjaWZpZWQgaW4gYW55IG90aGVyIGxvY2F0aW9uLCB7QGxpbmsgI2FwcGx5UGF0dGVybn0gdGhyb3dzIGFuIHtAbGluaworICogSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9ufS4gIElmIHRoZXJlIGlzIG5vIHByZWZpeCwgYmVmb3JlIHRoZQorICogcHJlZml4IGFuZCBhZnRlciB0aGUgcHJlZml4IGFyZSBlcXVpdmFsZW50LCBsaWtld2lzZSBmb3IgdGhlIHN1ZmZpeC4KKyAqCisgKiA8bGk+V2hlbiBzcGVjaWZpZWQgaW4gYSBwYXR0ZXJuLCB0aGUgMTYtYml0IDxjb2RlPmNoYXI8L2NvZGU+IGltbWVkaWF0ZWx5CisgKiBmb2xsb3dpbmcgdGhlIHBhZCBlc2NhcGUgaXMgdGhlIHBhZCBjaGFyYWN0ZXIuIFRoaXMgbWF5IGJlIGFueSBjaGFyYWN0ZXIsCisgKiBpbmNsdWRpbmcgYSBzcGVjaWFsIHBhdHRlcm4gY2hhcmFjdGVyLiBUaGF0IGlzLCB0aGUgcGFkIGVzY2FwZQorICogPGVtPmVzY2FwZXM8L2VtPiB0aGUgZm9sbG93aW5nIGNoYXJhY3Rlci4gSWYgdGhlcmUgaXMgbm8gY2hhcmFjdGVyIGFmdGVyCisgKiB0aGUgcGFkIGVzY2FwZSwgdGhlbiB0aGUgcGF0dGVybiBpcyBpbGxlZ2FsLgorICoKKyAqIDwvdWw+CisgKgorICogPHA+CisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiA8c3Ryb25nPlJvdW5kaW5nPC9zdHJvbmc+CisgKgorICogPHA+PGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gc3VwcG9ydHMgcm91bmRpbmcgdG8gYSBzcGVjaWZpYyBpbmNyZW1lbnQuICBGb3IKKyAqIGV4YW1wbGUsIDEyMzAgcm91bmRlZCB0byB0aGUgbmVhcmVzdCA1MCBpcyAxMjUwLiAgMS4yMzQgcm91bmRlZCB0byB0aGUKKyAqIG5lYXJlc3QgMC42NSBpcyAxLjMuICBUaGUgcm91bmRpbmcgaW5jcmVtZW50IG1heSBiZSBzcGVjaWZpZWQgdGhyb3VnaCB0aGUgQVBJCisgKiBvciBpbiBhIHBhdHRlcm4uICBUbyBzcGVjaWZ5IGEgcm91bmRpbmcgaW5jcmVtZW50IGluIGEgcGF0dGVybiwgaW5jbHVkZSB0aGUKKyAqIGluY3JlbWVudCBpbiB0aGUgcGF0dGVybiBpdHNlbGYuICAiIywjNTAiIHNwZWNpZmllcyBhIHJvdW5kaW5nIGluY3JlbWVudCBvZgorICogNTAuICAiIywjIzAuMDUiIHNwZWNpZmllcyBhIHJvdW5kaW5nIGluY3JlbWVudCBvZiAwLjA1LgorICoKKyAqIDx1bD4KKyAqIDxsaT5Sb3VuZGluZyBvbmx5IGFmZmVjdHMgdGhlIHN0cmluZyBwcm9kdWNlZCBieSBmb3JtYXR0aW5nLiAgSXQgZG9lcworICogbm90IGFmZmVjdCBwYXJzaW5nIG9yIGNoYW5nZSBhbnkgbnVtZXJpY2FsIHZhbHVlcy4KKyAqCisgKiA8bGk+QSA8ZW0+cm91bmRpbmcgbW9kZTwvZW0+IGRldGVybWluZXMgaG93IHZhbHVlcyBhcmUgcm91bmRlZDsgc2VlIHRoZQorICoge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbH0gZG9jdW1lbnRhdGlvbiBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUKKyAqIG1vZGVzLiAgUm91bmRpbmcgaW5jcmVtZW50cyBzcGVjaWZpZWQgaW4gcGF0dGVybnMgdXNlIHRoZSBkZWZhdWx0IG1vZGUsCisgKiB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI1JPVU5EX0hBTEZfRVZFTn0uCisgKgorICogPGxpPlNvbWUgbG9jYWxlcyB1c2Ugcm91bmRpbmcgaW4gdGhlaXIgY3VycmVuY3kgZm9ybWF0cyB0byByZWZsZWN0IHRoZQorICogc21hbGxlc3QgY3VycmVuY3kgZGVub21pbmF0aW9uLgorICoKKyAqIDxsaT5JbiBhIHBhdHRlcm4sIGRpZ2l0cyAnMScgdGhyb3VnaCAnOScgc3BlY2lmeSByb3VuZGluZywgYnV0IG90aGVyd2lzZQorICogYmVoYXZlIGlkZW50aWNhbGx5IHRvIGRpZ2l0ICcwJy4KKyAqIDwvdWw+CisgKgorICogPGg0PlN5bmNocm9uaXphdGlvbjwvaDQ+CisgKgorICogPHA+PGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gb2JqZWN0cyBhcmUgbm90IHN5bmNocm9uaXplZC4gIE11bHRpcGxlCisgKiB0aHJlYWRzIHNob3VsZCBub3QgYWNjZXNzIG9uZSBmb3JtYXR0ZXIgY29uY3VycmVudGx5LgorICoKKyAqIEBzZWUgICAgICAgICAgamF2YS50ZXh0LkZvcm1hdAorICogQHNlZSAgICAgICAgICBOdW1iZXJGb3JtYXQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQGF1dGhvciAgICAgICBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBEZWNpbWFsRm9ybWF0IGV4dGVuZHMgTnVtYmVyRm9ybWF0IHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDFMOworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBwYXJhbSBkZWxlZ2F0ZSB0aGUgTnVtYmVyRm9ybWF0IHRvIHdoaWNoIHRvIGRlbGVnYXRlCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXQoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQgZGVsZWdhdGUpIHsKKyAgICAgICAgc3VwZXIoZGVsZWdhdGUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgRGVjaW1hbEZvcm1hdCB1c2luZyB0aGUgZGVmYXVsdCBwYXR0ZXJuIGFuZCBzeW1ib2xzCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4gVGhpcyBpcyBhIGNvbnZlbmllbnQgd2F5IHRvIG9idGFpbiBhCisgICAgICogRGVjaW1hbEZvcm1hdCB3aGVuIGludGVybmF0aW9uYWxpemF0aW9uIGlzIG5vdCB0aGUgbWFpbiBjb25jZXJuLgorICAgICAqIDxwPgorICAgICAqIFRvIG9idGFpbiBzdGFuZGFyZCBmb3JtYXRzIGZvciBhIGdpdmVuIGxvY2FsZSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMKKyAgICAgKiBvbiBOdW1iZXJGb3JtYXQgc3VjaCBhcyBnZXROdW1iZXJJbnN0YW5jZS4gVGhlc2UgZmFjdG9yaWVzIHdpbGwKKyAgICAgKiByZXR1cm4gdGhlIG1vc3QgYXBwcm9wcmlhdGUgc3ViLWNsYXNzIG9mIE51bWJlckZvcm1hdCBmb3IgYSBnaXZlbgorICAgICAqIGxvY2FsZS4KKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldE51bWJlckluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0Q3VycmVuY3lJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldFBlcmNlbnRJbnN0YW5jZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0KCkgeworICAgICAgICB0aGlzKG5ldyBqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQgdGhlIHN5bWJvbHMKKyAgICAgKiBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLiBUaGlzIGlzIGEgY29udmVuaWVudCB3YXkgdG8gb2J0YWluIGEKKyAgICAgKiBEZWNpbWFsRm9ybWF0IHdoZW4gaW50ZXJuYXRpb25hbGl6YXRpb24gaXMgbm90IHRoZSBtYWluIGNvbmNlcm4uCisgICAgICogPHA+CisgICAgICogVG8gb2J0YWluIHN0YW5kYXJkIGZvcm1hdHMgZm9yIGEgZ2l2ZW4gbG9jYWxlLCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcworICAgICAqIG9uIE51bWJlckZvcm1hdCBzdWNoIGFzIGdldE51bWJlckluc3RhbmNlLiBUaGVzZSBmYWN0b3JpZXMgd2lsbAorICAgICAqIHJldHVybiB0aGUgbW9zdCBhcHByb3ByaWF0ZSBzdWItY2xhc3Mgb2YgTnVtYmVyRm9ybWF0IGZvciBhIGdpdmVuCisgICAgICogbG9jYWxlLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIEEgbm9uLWxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gcGF0dGVybiBpcyBpbnZhbGlkLgorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0TnVtYmVySW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRDdXJyZW5jeUluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0UGVyY2VudEluc3RhbmNlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXQoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgdGhpcyhuZXcgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQocGF0dGVybikpOworICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQgc3ltYm9scy4KKyAgICAgKiBVc2UgdGhpcyBjb25zdHJ1Y3RvciB3aGVuIHlvdSBuZWVkIHRvIGNvbXBsZXRlbHkgY3VzdG9taXplIHRoZQorICAgICAqIGJlaGF2aW9yIG9mIHRoZSBmb3JtYXQuCisgICAgICogPHA+CisgICAgICogVG8gb2J0YWluIHN0YW5kYXJkIGZvcm1hdHMgZm9yIGEgZ2l2ZW4KKyAgICAgKiBsb2NhbGUsIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzIG9uIE51bWJlckZvcm1hdCBzdWNoIGFzCisgICAgICogZ2V0SW5zdGFuY2Ugb3IgZ2V0Q3VycmVuY3lJbnN0YW5jZS4gSWYgeW91IG5lZWQgb25seSBtaW5vciBhZGp1c3RtZW50cworICAgICAqIHRvIGEgc3RhbmRhcmQgZm9ybWF0LCB5b3UgY2FuIG1vZGlmeSB0aGUgZm9ybWF0IHJldHVybmVkIGJ5CisgICAgICogYSBOdW1iZXJGb3JtYXQgZmFjdG9yeSBtZXRob2QuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBub24tbG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nCisgICAgICogQHBhcmFtIHN5bWJvbHMgdGhlIHNldCBvZiBzeW1ib2xzIHRvIGJlIHVzZWQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gcGF0dGVybiBpcyBpbnZhbGlkCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXROdW1iZXJJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEN1cnJlbmN5SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRQZXJjZW50SW5zdGFuY2UKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMpIHsKKyAgICAgICAgdGhpcyhuZXcgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQocGF0dGVybiwgc3ltYm9scy5kZnMpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSBkZWNpbWFsIGZvcm1hdCBzeW1ib2xzIHVzZWQgYnkgdGhpcyBmb3JtYXQuCisgICAgICogQHJldHVybiBkZXNpcmVkIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0U3ltYm9scyBnZXREZWNpbWFsRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scygoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWNpbWFsIGZvcm1hdCBzeW1ib2xzIHVzZWQgYnkgdGhpcyBmb3JtYXQuICBUaGUKKyAgICAgKiBmb3JtYXQgdXNlcyBhIGNvcHkgb2YgdGhlIHByb3ZpZGVkIHN5bWJvbHMuCisgICAgICogQHBhcmFtIG5ld1N5bWJvbHMgZGVzaXJlZCBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWNpbWFsRm9ybWF0U3ltYm9scyhEZWNpbWFsRm9ybWF0U3ltYm9scyBuZXdTeW1ib2xzKSB7CisgICAgICAgICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhuZXdTeW1ib2xzLmRmcyk7CisgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBwb3NpdGl2ZSBwcmVmaXguCisgICAgICogPFA+RXhhbXBsZXM6ICsxMjMsICQxMjMsIHNGcjEyMworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UG9zaXRpdmVQcmVmaXgoKSB7CisgICAgICAgIHJldHVybiAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuZ2V0UG9zaXRpdmVQcmVmaXgoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgcG9zaXRpdmUgcHJlZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiArMTIzLCAkMTIzLCBzRnIxMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQb3NpdGl2ZVByZWZpeChTdHJpbmcgbmV3VmFsdWUpIHsKKyAgICAgICAgKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLnNldFBvc2l0aXZlUHJlZml4KG5ld1ZhbHVlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgbmVnYXRpdmUgcHJlZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiAtMTIzLCAoJDEyMykgKHdpdGggbmVnYXRpdmUgc3VmZml4KSwgc0ZyLTEyMworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmVnYXRpdmVQcmVmaXggKCkgeworICAgICAgICByZXR1cm4gKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLmdldE5lZ2F0aXZlUHJlZml4KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG5lZ2F0aXZlIHByZWZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogLTEyMywgKCQxMjMpICh3aXRoIG5lZ2F0aXZlIHN1ZmZpeCksIHNGci0xMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROZWdhdGl2ZVByZWZpeCAoU3RyaW5nIG5ld1ZhbHVlKSB7CisgICAgICAgICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5zZXROZWdhdGl2ZVByZWZpeChuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHBvc2l0aXZlIHN1ZmZpeC4KKyAgICAgKiA8UD5FeGFtcGxlOiAxMjMlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRQb3NpdGl2ZVN1ZmZpeCAoKSB7CisgICAgICAgIHJldHVybiAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuZ2V0UG9zaXRpdmVTdWZmaXgoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgcG9zaXRpdmUgc3VmZml4LgorICAgICAqIDxQPkV4YW1wbGU6IDEyMyUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQb3NpdGl2ZVN1ZmZpeCAoU3RyaW5nIG5ld1ZhbHVlKSB7CisgICAgICAgICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5zZXRQb3NpdGl2ZVN1ZmZpeChuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5lZ2F0aXZlIHN1ZmZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogLTEyMyUsICgkMTIzKSAod2l0aCBwb3NpdGl2ZSBzdWZmaXhlcykKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5lZ2F0aXZlU3VmZml4ICgpIHsKKyAgICAgICAgcmV0dXJuICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5nZXROZWdhdGl2ZVN1ZmZpeCgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBwb3NpdGl2ZSBzdWZmaXguCisgICAgICogPFA+RXhhbXBsZXM6IDEyMyUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROZWdhdGl2ZVN1ZmZpeCAoU3RyaW5nIG5ld1ZhbHVlKSB7CisgICAgICAgICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5zZXROZWdhdGl2ZVN1ZmZpeChuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG11bHRpcGxpZXIgZm9yIHVzZSBpbiBwZXJjZW50LCBwZXJtaWxsLCBldGMuCisgICAgICogRm9yIGEgcGVyY2VudGFnZSwgc2V0IHRoZSBzdWZmaXhlcyB0byBoYXZlICIlIiBhbmQgdGhlIG11bHRpcGxpZXIgdG8gYmUgMTAwLgorICAgICAqIChGb3IgQXJhYmljLCB1c2UgYXJhYmljIHBlcmNlbnQgc3ltYm9sKS4KKyAgICAgKiBGb3IgYSBwZXJtaWxsLCBzZXQgdGhlIHN1ZmZpeGVzIHRvIGhhdmUgIlx1MjAzMSIgYW5kIHRoZSBtdWx0aXBsaWVyIHRvIGJlIDEwMDAuCisgICAgICogPFA+RXhhbXBsZXM6IHdpdGggMTAwLCAxLjIzIC0+ICIxMjMiLCBhbmQgIjEyMyIgLT4gMS4yMworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TXVsdGlwbGllciAoKSB7CisgICAgICAgIHJldHVybiAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuZ2V0TXVsdGlwbGllcigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBtdWx0aXBsaWVyIGZvciB1c2UgaW4gcGVyY2VudCwgcGVybWlsbCwgZXRjLgorICAgICAqIEZvciBhIHBlcmNlbnRhZ2UsIHNldCB0aGUgc3VmZml4ZXMgdG8gaGF2ZSAiJSIgYW5kIHRoZSBtdWx0aXBsaWVyIHRvIGJlIDEwMC4KKyAgICAgKiAoRm9yIEFyYWJpYywgdXNlIGFyYWJpYyBwZXJjZW50IHN5bWJvbCkuCisgICAgICogRm9yIGEgcGVybWlsbCwgc2V0IHRoZSBzdWZmaXhlcyB0byBoYXZlICJcdTIwMzEiIGFuZCB0aGUgbXVsdGlwbGllciB0byBiZSAxMDAwLgorICAgICAqIDxQPkV4YW1wbGVzOiB3aXRoIDEwMCwgMS4yMyAtPiAiMTIzIiwgYW5kICIxMjMiIC0+IDEuMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNdWx0aXBsaWVyIChpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLnNldE11bHRpcGxpZXIobmV3VmFsdWUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBncm91cGluZyBzaXplLiBHcm91cGluZyBzaXplIGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4KKyAgICAgKiBncm91cGluZyBzZXBhcmF0b3JzIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYSBudW1iZXIuICBGb3IgZXhhbXBsZSwKKyAgICAgKiBpbiB0aGUgbnVtYmVyICIxMjMsNDU2Ljc4IiwgdGhlIGdyb3VwaW5nIHNpemUgaXMgMy4KKyAgICAgKiBAc2VlICNzZXRHcm91cGluZ1NpemUKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNpc0dyb3VwaW5nVXNlZAorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMjZ2V0R3JvdXBpbmdTZXBhcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEdyb3VwaW5nU2l6ZSAoKSB7CisgICAgICAgIHJldHVybiAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuZ2V0R3JvdXBpbmdTaXplKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGdyb3VwaW5nIHNpemUuIEdyb3VwaW5nIHNpemUgaXMgdGhlIG51bWJlciBvZiBkaWdpdHMgYmV0d2VlbgorICAgICAqIGdyb3VwaW5nIHNlcGFyYXRvcnMgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhIG51bWJlci4gIEZvciBleGFtcGxlLAorICAgICAqIGluIHRoZSBudW1iZXIgIjEyMyw0NTYuNzgiLCB0aGUgZ3JvdXBpbmcgc2l6ZSBpcyAzLgorICAgICAqIEBzZWUgI2dldEdyb3VwaW5nU2l6ZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I3NldEdyb3VwaW5nVXNlZAorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMjc2V0R3JvdXBpbmdTZXBhcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRHcm91cGluZ1NpemUgKGludCBuZXdWYWx1ZSkgeworICAgICAgICAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuc2V0R3JvdXBpbmdTaXplKG5ld1ZhbHVlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFsbG93cyB5b3UgdG8gZ2V0IHRoZSBiZWhhdmlvciBvZiB0aGUgZGVjaW1hbCBzZXBhcmF0b3Igd2l0aCBpbnRlZ2Vycy4KKyAgICAgKiAoVGhlIGRlY2ltYWwgc2VwYXJhdG9yIHdpbGwgYWx3YXlzIGFwcGVhciB3aXRoIGRlY2ltYWxzLikKKyAgICAgKiA8UD5FeGFtcGxlOiBEZWNpbWFsIE9OOiAxMjM0NSAtPiAxMjM0NS47IE9GRjogMTIzNDUgLT4gMTIzNDUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpIHsKKyAgICAgICAgcmV0dXJuICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5pc0RlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWxsb3dzIHlvdSB0byBzZXQgdGhlIGJlaGF2aW9yIG9mIHRoZSBkZWNpbWFsIHNlcGFyYXRvciB3aXRoIGludGVnZXJzLgorICAgICAqIChUaGUgZGVjaW1hbCBzZXBhcmF0b3Igd2lsbCBhbHdheXMgYXBwZWFyIHdpdGggZGVjaW1hbHMuKQorICAgICAqCisgICAgICogPHA+VGhpcyBvbmx5IGFmZmVjdHMgZm9ybWF0dGluZywgYW5kIG9ubHkgd2hlcmUKKyAgICAgKiB0aGVyZSBtaWdodCBiZSBubyBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQsIGUuZy4sCisgICAgICogaWYgdHJ1ZSwgIDM0NTYuMDAgLT4gIjMsNDU2LiIKKyAgICAgKiBpZiBmYWxzZSwgMzQ1Ni4wMCAtPiAiMzQ1NiIKKyAgICAgKiBUaGlzIGlzIGluZGVwZW5kZW50IG9mIHBhcnNpbmcuICBJZiB5b3Ugd2FudCBwYXJzaW5nIHRvIHN0b3AgYXQgdGhlIGRlY2ltYWwKKyAgICAgKiBwb2ludCwgdXNlIHNldFBhcnNlSW50ZWdlck9ubHkuCisgICAgICoKKyAgICAgKiA8UD5FeGFtcGxlOiBEZWNpbWFsIE9OOiAxMjM0NSAtPiAxMjM0NS47IE9GRjogMTIzNDUgLT4gMTIzNDUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oYm9vbGVhbiBuZXdWYWx1ZSkgeworICAgICAgICAoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKG5ld1ZhbHVlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFN0YW5kYXJkIG92ZXJyaWRlOyBubyBjaGFuZ2UgaW4gc2VtYW50aWNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHJldHVybiBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scyludW1iZXJGb3JtYXQuY2xvbmUoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTeW50aGVzaXplcyBhIHBhdHRlcm4gc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGUgY3VycmVudCBzdGF0ZQorICAgICAqIG9mIHRoaXMgRm9ybWF0IG9iamVjdC4KKyAgICAgKiBAc2VlICNhcHBseVBhdHRlcm4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUGF0dGVybigpIHsKKyAgICAgICAgcmV0dXJuICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS50b1BhdHRlcm4oKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFN5bnRoZXNpemVzIGEgbG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGUgY3VycmVudAorICAgICAqIHN0YXRlIG9mIHRoaXMgRm9ybWF0IG9iamVjdC4KKyAgICAgKiBAc2VlICNhcHBseVBhdHRlcm4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvTG9jYWxpemVkUGF0dGVybigpIHsKKyAgICAgICAgcmV0dXJuICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBcHBseSB0aGUgZ2l2ZW4gcGF0dGVybiB0byB0aGlzIEZvcm1hdCBvYmplY3QuICBBIHBhdHRlcm4gaXMgYQorICAgICAqIHNob3J0LWhhbmQgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIHZhcmlvdXMgZm9ybWF0dGluZyBwcm9wZXJ0aWVzLgorICAgICAqIFRoZXNlIHByb3BlcnRpZXMgY2FuIGFsc28gYmUgY2hhbmdlZCBpbmRpdmlkdWFsbHkgdGhyb3VnaCB0aGUKKyAgICAgKiB2YXJpb3VzIHNldHRlciBtZXRob2RzLgorICAgICAqIDxwPgorICAgICAqIFRoZXJlIGlzIG5vIGxpbWl0IHRvIGludGVnZXIgZGlnaXRzIGFyZSBzZXQKKyAgICAgKiBieSB0aGlzIHJvdXRpbmUsIHNpbmNlIHRoYXQgaXMgdGhlIHR5cGljYWwgZW5kLXVzZXIgZGVzaXJlOworICAgICAqIHVzZSBzZXRNYXhpbXVtSW50ZWdlciBpZiB5b3Ugd2FudCB0byBzZXQgYSByZWFsIHZhbHVlLgorICAgICAqIEZvciBuZWdhdGl2ZSBudW1iZXJzLCB1c2UgYSBzZWNvbmQgcGF0dGVybiwgc2VwYXJhdGVkIGJ5IGEgc2VtaWNvbG9uCisgICAgICogPFA+RXhhbXBsZSAiIywjMDAuMCMiIC0+IDEsMjM0LjU2CisgICAgICogPFA+VGhpcyBtZWFucyBhIG1pbmltdW0gb2YgMiBpbnRlZ2VyIGRpZ2l0cywgMSBmcmFjdGlvbiBkaWdpdCwgYW5kCisgICAgICogYSBtYXhpbXVtIG9mIDIgZnJhY3Rpb24gZGlnaXRzLgorICAgICAqIDxwPkV4YW1wbGU6ICIjLCMwMC4wIzsoIywjMDAuMCMpIiBmb3IgbmVnYXRpdmVzIGluIHBhcmVudGhlc2VzLgorICAgICAqIDxwPkluIG5lZ2F0aXZlIHBhdHRlcm5zLCB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBjb3VudHMgYXJlIGlnbm9yZWQ7CisgICAgICogdGhlc2UgYXJlIHByZXN1bWVkIHRvIGJlIHNldCBpbiB0aGUgcG9zaXRpdmUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBseVBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgKChqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCludW1iZXJGb3JtYXQpLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFwcGx5IHRoZSBnaXZlbiBwYXR0ZXJuIHRvIHRoaXMgRm9ybWF0IG9iamVjdC4gIFRoZSBwYXR0ZXJuCisgICAgICogaXMgYXNzdW1lZCB0byBiZSBpbiBhIGxvY2FsaXplZCBub3RhdGlvbi4gQSBwYXR0ZXJuIGlzIGEKKyAgICAgKiBzaG9ydC1oYW5kIHNwZWNpZmljYXRpb24gZm9yIHRoZSB2YXJpb3VzIGZvcm1hdHRpbmcgcHJvcGVydGllcy4KKyAgICAgKiBUaGVzZSBwcm9wZXJ0aWVzIGNhbiBhbHNvIGJlIGNoYW5nZWQgaW5kaXZpZHVhbGx5IHRocm91Z2ggdGhlCisgICAgICogdmFyaW91cyBzZXR0ZXIgbWV0aG9kcy4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGVyZSBpcyBubyBsaW1pdCB0byBpbnRlZ2VyIGRpZ2l0cyBhcmUgc2V0CisgICAgICogYnkgdGhpcyByb3V0aW5lLCBzaW5jZSB0aGF0IGlzIHRoZSB0eXBpY2FsIGVuZC11c2VyIGRlc2lyZTsKKyAgICAgKiB1c2Ugc2V0TWF4aW11bUludGVnZXIgaWYgeW91IHdhbnQgdG8gc2V0IGEgcmVhbCB2YWx1ZS4KKyAgICAgKiBGb3IgbmVnYXRpdmUgbnVtYmVycywgdXNlIGEgc2Vjb25kIHBhdHRlcm4sIHNlcGFyYXRlZCBieSBhIHNlbWljb2xvbgorICAgICAqIDxQPkV4YW1wbGUgIiMsIzAwLjAjIiAtPiAxLDIzNC41NgorICAgICAqIDxQPlRoaXMgbWVhbnMgYSBtaW5pbXVtIG9mIDIgaW50ZWdlciBkaWdpdHMsIDEgZnJhY3Rpb24gZGlnaXQsIGFuZAorICAgICAqIGEgbWF4aW11bSBvZiAyIGZyYWN0aW9uIGRpZ2l0cy4KKyAgICAgKiA8cD5FeGFtcGxlOiAiIywjMDAuMCM7KCMsIzAwLjAjKSIgZm9yIG5lZ2F0aXZlcyBpbiBwYXJlbnRoZXNlcy4KKyAgICAgKiA8cD5JbiBuZWdhdGl2ZSBwYXR0ZXJucywgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gY291bnRzIGFyZSBpZ25vcmVkOworICAgICAqIHRoZXNlIGFyZSBwcmVzdW1lZCB0byBiZSBzZXQgaW4gdGhlIHBvc2l0aXZlIHBhdHRlcm4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgICgoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5hcHBseUxvY2FsaXplZFBhdHRlcm4ocGF0dGVybik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjaW1hbEZvcm1hdFN5bWJvbHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXRTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc0YjRhNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXRTeW1ib2xzLmphdmEKQEAgLTAsMCArMSwzNDkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgdGhlIHNldCBvZiBzeW1ib2xzIChzdWNoIGFzIHRoZSBkZWNpbWFsIHNlcGFyYXRvciwgdGhlCisgKiBncm91cGluZyBzZXBhcmF0b3IsIGFuZCBzbyBvbikgbmVlZGVkIGJ5IDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHRvIGZvcm1hdAorICogbnVtYmVycy4gPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gY3JlYXRlcyBmb3IgaXRzZWxmIGFuIGluc3RhbmNlIG9mCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0U3ltYm9sczwvY29kZT4gZnJvbSBpdHMgbG9jYWxlIGRhdGEuICBJZiB5b3UgbmVlZCB0bworICogY2hhbmdlIGFueSBvZiB0aGVzZSBzeW1ib2xzLCB5b3UgY2FuIGdldCB0aGUKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9jb2RlPiBvYmplY3QgZnJvbSB5b3VyIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+CisgKiBhbmQgbW9kaWZ5IGl0LgorICoKKyAqIDxwPjxzdHJvbmc+VGhpcyBpcyBhbiBlbmhhbmNlZCB2ZXJzaW9uIG9mIDxjb2RlPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9jb2RlPiB0aGF0CisgKiBpcyBiYXNlZCBvbiB0aGUgc3RhbmRhcmQgdmVyc2lvbiBpbiB0aGUgSkRLLiAgTmV3IG9yIGNoYW5nZWQgZnVuY3Rpb25hbGl0eQorICogaXMgbGFiZWxlZAorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPi48L3N0cm9uZz4KKyAqCisgKiBAc2VlICAgICAgICAgIGphdmEudXRpbC5Mb2NhbGUKKyAqIEBzZWUgICAgICAgICAgRGVjaW1hbEZvcm1hdAorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzCisgKiBAYXV0aG9yICAgICAgIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworZmluYWwgcHVibGljIGNsYXNzIERlY2ltYWxGb3JtYXRTeW1ib2xzIGltcGxlbWVudHMgQ2xvbmVhYmxlLCBTZXJpYWxpemFibGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9MUw7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBqYXZhLnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzIGRlbGVnYXRlKSB7CisgICAgICAgIHRoaXMuZGZzID0gZGVsZWdhdGU7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKSB7CisgICAgICAgIHRoaXMobmV3IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scygpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdCBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzKG5ldyBqYXZhLnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMobG9jYWxlKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdFN5bWJvbHMoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcyhuZXcgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzKGxvY2FsZS50b0xvY2FsZSgpKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIGZvciB6ZXJvLiBEaWZmZXJlbnQgZm9yIEFyYWJpYywgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFplcm9EaWdpdCgpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRaZXJvRGlnaXQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIHplcm8uCisgICAgICogQHBhcmFtIHplcm9EaWdpdCB0aGUgemVybyBjaGFyYWN0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0WmVyb0RpZ2l0KGNoYXIgemVyb0RpZ2l0KSB7CisgICAgICAgIGRmcy5zZXRaZXJvRGlnaXQoemVyb0RpZ2l0KTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIHRob3VzYW5kcyBzZXBhcmF0b3IuIERpZmZlcmVudCBmb3IgRnJlbmNoLCBldGMuCisgICAgICogQHJldHVybiB0aGUgdGhvdXNhbmRzIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldEdyb3VwaW5nU2VwYXJhdG9yKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciB0aG91c2FuZHMgc2VwYXJhdG9yLiBEaWZmZXJlbnQgZm9yIEZyZW5jaCwgZXRjLgorICAgICAqIEBwYXJhbSBncm91cGluZ1NlcGFyYXRvciB0aGUgdGhvdXNhbmRzIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEdyb3VwaW5nU2VwYXJhdG9yKGNoYXIgZ3JvdXBpbmdTZXBhcmF0b3IpIHsKKyAgICAgICAgZGZzLnNldEdyb3VwaW5nU2VwYXJhdG9yKGdyb3VwaW5nU2VwYXJhdG9yKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIGRlY2ltYWwgc2lnbi4gRGlmZmVyZW50IGZvciBGcmVuY2gsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBkZWNpbWFsIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldERlY2ltYWxTZXBhcmF0b3IoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgZGVjaW1hbCBzaWduLiBEaWZmZXJlbnQgZm9yIEZyZW5jaCwgZXRjLgorICAgICAqIEBwYXJhbSBkZWNpbWFsU2VwYXJhdG9yIHRoZSBkZWNpbWFsIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERlY2ltYWxTZXBhcmF0b3IoY2hhciBkZWNpbWFsU2VwYXJhdG9yKSB7CisgICAgICAgIGRmcy5zZXREZWNpbWFsU2VwYXJhdG9yKGRlY2ltYWxTZXBhcmF0b3IpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgbWlsbGUgcGVyY2VudCBzaWduLiBEaWZmZXJlbnQgZm9yIEFyYWJpYywgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIG1pbGxlIHBlcmNlbnQgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0UGVyTWlsbCgpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRQZXJNaWxsKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciBtaWxsZSBwZXJjZW50IHNpZ24uIERpZmZlcmVudCBmb3IgQXJhYmljLCBldGMuCisgICAgICogQHBhcmFtIHBlck1pbGwgdGhlIG1pbGxlIHBlcmNlbnQgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGVyTWlsbChjaGFyIHBlck1pbGwpIHsKKyAgICAgICAgZGZzLnNldFBlck1pbGwocGVyTWlsbCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIGZvciBwZXJjZW50IHNpZ24uIERpZmZlcmVudCBmb3IgQXJhYmljLCBldGMuCisgICAgICogQHJldHVybiB0aGUgcGVyY2VudCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRQZXJjZW50KCkgeworICAgICAgICByZXR1cm4gZGZzLmdldFBlcmNlbnQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIHBlcmNlbnQgc2lnbi4gRGlmZmVyZW50IGZvciBBcmFiaWMsIGV0Yy4KKyAgICAgKiBAcGFyYW0gcGVyY2VudCB0aGUgcGVyY2VudCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQZXJjZW50KGNoYXIgcGVyY2VudCkgeworICAgICAgICBkZnMuc2V0UGVyY2VudChwZXJjZW50KTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIGEgZGlnaXQgaW4gYSBwYXR0ZXJuLgorICAgICAqIEByZXR1cm4gdGhlIGRpZ2l0IHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0RGlnaXQoKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0RGlnaXQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIGEgZGlnaXQgaW4gYSBwYXR0ZXJuLgorICAgICAqIEBwYXJhbSBkaWdpdCB0aGUgZGlnaXQgcGF0dGVybiBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREaWdpdChjaGFyIGRpZ2l0KSB7CisgICAgICAgIGRmcy5zZXREaWdpdChkaWdpdCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBzdWJwYXR0ZXJucworICAgICAqIGluIGEgcGF0dGVybi4KKyAgICAgKiBAcmV0dXJuIHRoZSBwYXR0ZXJuIHNlcGFyYXRvciBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRQYXR0ZXJuU2VwYXJhdG9yKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldFBhdHRlcm5TZXBhcmF0b3IoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHN1YnBhdHRlcm5zCisgICAgICogaW4gYSBwYXR0ZXJuLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuU2VwYXJhdG9yIHRoZSBwYXR0ZXJuIHNlcGFyYXRvciBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYXR0ZXJuU2VwYXJhdG9yKGNoYXIgcGF0dGVyblNlcGFyYXRvcikgeworICAgICAgICBkZnMuc2V0UGF0dGVyblNlcGFyYXRvcihwYXR0ZXJuU2VwYXJhdG9yKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgU3RyaW5nIHVzZWQgdG8gcmVwcmVzZW50IGluZmluaXR5LiBBbG1vc3QgYWx3YXlzIGxlZnQKKyAgICAgKiB1bmNoYW5nZWQuCisgICAgICogQHJldHVybiB0aGUgSW5maW5pdHkgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRJbmZpbml0eSgpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRJbmZpbml0eSgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgaW5maW5pdHkuIEFsbW9zdCBhbHdheXMgbGVmdAorICAgICAqIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gaW5maW5pdHkgdGhlIEluZmluaXR5IFN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZmluaXR5KFN0cmluZyBpbmZpbml0eSkgeworICAgICAgICBkZnMuc2V0SW5maW5pdHkoaW5maW5pdHkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgTmFOLiBBbG1vc3QgYWx3YXlzIGxlZnQKKyAgICAgKiB1bmNoYW5nZWQuCisgICAgICogQHJldHVybiB0aGUgTmFOIFN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFOKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldE5hTigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgTmFOLiBBbG1vc3QgYWx3YXlzIGxlZnQKKyAgICAgKiB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIE5hTiB0aGUgTmFOIFN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE5hTihTdHJpbmcgTmFOKSB7CisgICAgICAgIGRmcy5zZXROYU4oTmFOKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcmVwcmVzZW50IG1pbnVzIHNpZ24uIElmIG5vIGV4cGxpY2l0CisgICAgICogbmVnYXRpdmUgZm9ybWF0IGlzIHNwZWNpZmllZCwgb25lIGlzIGZvcm1lZCBieSBwcmVmaXhpbmcKKyAgICAgKiBtaW51c1NpZ24gdG8gdGhlIHBvc2l0aXZlIGZvcm1hdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaW51cyBzaWduIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldE1pbnVzU2lnbigpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5nZXRNaW51c1NpZ24oKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcmVwcmVzZW50IG1pbnVzIHNpZ24uIElmIG5vIGV4cGxpY2l0CisgICAgICogbmVnYXRpdmUgZm9ybWF0IGlzIHNwZWNpZmllZCwgb25lIGlzIGZvcm1lZCBieSBwcmVmaXhpbmcKKyAgICAgKiBtaW51c1NpZ24gdG8gdGhlIHBvc2l0aXZlIGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gbWludXNTaWduIHRoZSBtaW51cyBzaWduIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbnVzU2lnbihjaGFyIG1pbnVzU2lnbikgeworICAgICAgICBkZnMuc2V0TWludXNTaWduKG1pbnVzU2lnbik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICogQHJldHVybiB0aGUgbG9jYWwgY3VycmVuY3kgU3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0Q3VycmVuY3lTeW1ib2woKSB7CisgICAgICAgIHJldHVybiBkZnMuZ2V0Q3VycmVuY3lTeW1ib2woKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgc3RyaW5nIGRlbm90aW5nIHRoZSBsb2NhbCBjdXJyZW5jeS4KKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgdGhlIGxvY2FsIGN1cnJlbmN5IFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW5jeVN5bWJvbChTdHJpbmcgY3VycmVuY3kpIHsKKyAgICAgICAgZGZzLnNldEN1cnJlbmN5U3ltYm9sKGN1cnJlbmN5KTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW50ZXJuYXRpb25hbCBzdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LgorICAgICAqIEByZXR1cm4gdGhlIGludGVybmF0aW9uYWwgc3RyaW5nIGRlbm90aW5nIHRoZSBsb2NhbCBjdXJyZW5jeQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnRlcm5hdGlvbmFsIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICogQHBhcmFtIGN1cnJlbmN5IHRoZSBpbnRlcm5hdGlvbmFsIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKFN0cmluZyBjdXJyZW5jeSkgeworICAgICAgICBkZnMuc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKGN1cnJlbmN5KTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IuCisgICAgICogQHJldHVybiB0aGUgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCkgeworICAgICAgICByZXR1cm4gZGZzLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvci4KKyAgICAgKiBAcGFyYW0gc2VwIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvciBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoY2hhciBzZXApIHsKKyAgICAgICAgZGZzLnNldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcihzZXApOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU3RhbmRhcmQgb3ZlcnJpZGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scygoamF2YS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzKWRmcy5jbG9uZSgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIE92ZXJyaWRlIGVxdWFscy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGRmcy5lcXVhbHMoKChEZWNpbWFsRm9ybWF0U3ltYm9scylvYmopLmRmcyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIE92ZXJyaWRlIGhhc2hDb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIGRmcy5oYXNoQ29kZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L01lc3NhZ2VGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS90ZXh0L01lc3NhZ2VGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDlhMTAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvTWVzc2FnZUZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsMTA0MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gcHJvdmlkZXMgYSBtZWFucyB0byBwcm9kdWNlIGNvbmNhdGVuYXRlZAorICogbWVzc2FnZXMgaW4gbGFuZ3VhZ2UtbmV1dHJhbCB3YXkuIFVzZSB0aGlzIHRvIGNvbnN0cnVjdCBtZXNzYWdlcworICogZGlzcGxheWVkIGZvciBlbmQgdXNlcnMuCisgKgorICogPHA+CisgKiA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiB0YWtlcyBhIHNldCBvZiBvYmplY3RzLCBmb3JtYXRzIHRoZW0sIHRoZW4KKyAqIGluc2VydHMgdGhlIGZvcm1hdHRlZCBzdHJpbmdzIGludG8gdGhlIHBhdHRlcm4gYXQgdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4KKyAqIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IGRpZmZlcnMgZnJvbSB0aGUgb3RoZXIgPGNvZGU+Rm9ybWF0PC9jb2RlPgorICogY2xhc3NlcyBpbiB0aGF0IHlvdSBjcmVhdGUgYSA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiBvYmplY3Qgd2l0aCBvbmUKKyAqIG9mIGl0cyBjb25zdHJ1Y3RvcnMgKG5vdCB3aXRoIGEgPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+IHN0eWxlIGZhY3RvcnkKKyAqIG1ldGhvZCkuIFRoZSBmYWN0b3J5IG1ldGhvZHMgYXJlbid0IG5lY2Vzc2FyeSBiZWNhdXNlIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+CisgKiBpdHNlbGYgZG9lc24ndCBpbXBsZW1lbnQgbG9jYWxlIHNwZWNpZmljIGJlaGF2aW9yLiBBbnkgbG9jYWxlIHNwZWNpZmljCisgKiBiZWhhdmlvciBpcyBkZWZpbmVkIGJ5IHRoZSBwYXR0ZXJuIHRoYXQgeW91IHByb3ZpZGUgYXMgd2VsbCBhcyB0aGUKKyAqIHN1YmZvcm1hdHMgdXNlZCBmb3IgaW5zZXJ0ZWQgYXJndW1lbnRzLgorICoKKyAqIDxoND48YSBuYW1lPSJwYXR0ZXJucyI+UGF0dGVybnMgYW5kIFRoZWlyIEludGVycHJldGF0aW9uPC9hPjwvaDQ+CisgKgorICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gdXNlcyBwYXR0ZXJucyBvZiB0aGUgZm9sbG93aW5nIGZvcm06CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogPGk+TWVzc2FnZUZvcm1hdFBhdHRlcm46PC9pPgorICogICAgICAgICA8aT5TdHJpbmc8L2k+CisgKiAgICAgICAgIDxpPk1lc3NhZ2VGb3JtYXRQYXR0ZXJuPC9pPiA8aT5Gb3JtYXRFbGVtZW50PC9pPiA8aT5TdHJpbmc8L2k+CisgKgorICogPGk+Rm9ybWF0RWxlbWVudDo8L2k+CisgKiAgICAgICAgIHsgPGk+QXJndW1lbnRJbmRleDwvaT4gfQorICogICAgICAgICB7IDxpPkFyZ3VtZW50SW5kZXg8L2k+ICwgPGk+Rm9ybWF0VHlwZTwvaT4gfQorICogICAgICAgICB7IDxpPkFyZ3VtZW50SW5kZXg8L2k+ICwgPGk+Rm9ybWF0VHlwZTwvaT4gLCA8aT5Gb3JtYXRTdHlsZTwvaT4gfQorICoKKyAqIDxpPkZvcm1hdFR5cGU6IG9uZSBvZiA8L2k+CisgKiAgICAgICAgIG51bWJlciBkYXRlIHRpbWUgY2hvaWNlCisgKgorICogPGk+Rm9ybWF0U3R5bGU6PC9pPgorICogICAgICAgICBzaG9ydAorICogICAgICAgICBtZWRpdW0KKyAqICAgICAgICAgbG9uZworICogICAgICAgICBmdWxsCisgKiAgICAgICAgIGludGVnZXIKKyAqICAgICAgICAgY3VycmVuY3kKKyAqICAgICAgICAgcGVyY2VudAorICogICAgICAgICA8aT5TdWJmb3JtYXRQYXR0ZXJuPC9pPgorICoKKyAqIDxpPlN0cmluZzo8L2k+CisgKiAgICAgICAgIDxpPlN0cmluZ1BhcnQ8c3ViPm9wdDwvc3ViPjwvaT4KKyAqICAgICAgICAgPGk+U3RyaW5nPC9pPiA8aT5TdHJpbmdQYXJ0PC9pPgorICoKKyAqIDxpPlN0cmluZ1BhcnQ6PC9pPgorICogICAgICAgICAnJworICogICAgICAgICAnIDxpPlF1b3RlZFN0cmluZzwvaT4gJworICogICAgICAgICA8aT5VbnF1b3RlZFN0cmluZzwvaT4KKyAqCisgKiA8aT5TdWJmb3JtYXRQYXR0ZXJuOjwvaT4KKyAqICAgICAgICAgPGk+U3ViZm9ybWF0UGF0dGVyblBhcnQ8c3ViPm9wdDwvc3ViPjwvaT4KKyAqICAgICAgICAgPGk+U3ViZm9ybWF0UGF0dGVybjwvaT4gPGk+U3ViZm9ybWF0UGF0dGVyblBhcnQ8L2k+CisgKgorICogPGk+U3ViRm9ybWF0UGF0dGVyblBhcnQ6PC9pPgorICogICAgICAgICAnIDxpPlF1b3RlZFBhdHRlcm48L2k+ICcKKyAqICAgICAgICAgPGk+VW5xdW90ZWRQYXR0ZXJuPC9pPgorICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPgorICogV2l0aGluIGEgPGk+U3RyaW5nPC9pPiwgPGNvZGU+IicnIjwvY29kZT4gcmVwcmVzZW50cyBhIHNpbmdsZQorICogcXVvdGUuIEEgPGk+UXVvdGVkU3RyaW5nPC9pPiBjYW4gY29udGFpbiBhcmJpdHJhcnkgY2hhcmFjdGVycworICogZXhjZXB0IHNpbmdsZSBxdW90ZXM7IHRoZSBzdXJyb3VuZGluZyBzaW5nbGUgcXVvdGVzIGFyZSByZW1vdmVkLgorICogQW4gPGk+VW5xdW90ZWRTdHJpbmc8L2k+IGNhbiBjb250YWluIGFyYml0cmFyeSBjaGFyYWN0ZXJzCisgKiBleGNlcHQgc2luZ2xlIHF1b3RlcyBhbmQgbGVmdCBjdXJseSBicmFja2V0cy4gVGh1cywgYSBzdHJpbmcgdGhhdAorICogc2hvdWxkIHJlc3VsdCBpbiB0aGUgZm9ybWF0dGVkIG1lc3NhZ2UgIid7MH0nIiBjYW4gYmUgd3JpdHRlbiBhcworICogPGNvZGU+IicnJ3snMH0nJyI8L2NvZGU+IG9yIDxjb2RlPiInJyd7MH0nJyciPC9jb2RlPi4KKyAqIDxwPgorICogV2l0aGluIGEgPGk+U3ViZm9ybWF0UGF0dGVybjwvaT4sIGRpZmZlcmVudCBydWxlcyBhcHBseS4KKyAqIEEgPGk+UXVvdGVkUGF0dGVybjwvaT4gY2FuIGNvbnRhaW4gYXJiaXRyYXJ5IGNoYXJhY3RlcnMKKyAqIGV4Y2VwdCBzaW5nbGUgcXVvdGVzOyBidXQgdGhlIHN1cnJvdW5kaW5nIHNpbmdsZSBxdW90ZXMgYXJlCisgKiA8c3Ryb25nPm5vdDwvc3Ryb25nPiByZW1vdmVkLCBzbyB0aGV5IG1heSBiZSBpbnRlcnByZXRlZCBieSB0aGUKKyAqIHN1YmZvcm1hdC4gRm9yIGV4YW1wbGUsIDxjb2RlPiJ7MSxudW1iZXIsJCcjJywjI30iPC9jb2RlPiB3aWxsCisgKiBwcm9kdWNlIGEgbnVtYmVyIGZvcm1hdCB3aXRoIHRoZSBwb3VuZC1zaWduIHF1b3RlZCwgd2l0aCBhIHJlc3VsdAorICogc3VjaCBhczogIiQjMzEsNDUiLgorICogQW4gPGk+VW5xdW90ZWRQYXR0ZXJuPC9pPiBjYW4gY29udGFpbiBhcmJpdHJhcnkgY2hhcmFjdGVycworICogZXhjZXB0IHNpbmdsZSBxdW90ZXMsIGJ1dCBjdXJseSBicmFjZXMgd2l0aGluIGl0IG11c3QgYmUgYmFsYW5jZWQuCisgKiBGb3IgZXhhbXBsZSwgPGNvZGU+ImFiIHswfSBkZSI8L2NvZGU+IGFuZCA8Y29kZT4iYWIgJ30nIGRlIjwvY29kZT4KKyAqIGFyZSB2YWxpZCBzdWJmb3JtYXQgcGF0dGVybnMsIGJ1dCA8Y29kZT4iYWIgezAnfScgZGUiPC9jb2RlPiBhbmQKKyAqIDxjb2RlPiJhYiB9IGRlIjwvY29kZT4gYXJlIG5vdC4KKyAqIDxwPgorICogPGRsPjxkdD48Yj5XYXJuaW5nOjwvYj48ZGQ+VGhlIHJ1bGVzIGZvciB1c2luZyBxdW90ZXMgd2l0aGluIG1lc3NhZ2UKKyAqIGZvcm1hdCBwYXR0ZXJucyB1bmZvcnR1bmF0ZWx5IGhhdmUgc2hvd24gdG8gYmUgc29tZXdoYXQgY29uZnVzaW5nLgorICogSW4gcGFydGljdWxhciwgaXQgaXNuJ3QgYWx3YXlzIG9idmlvdXMgdG8gbG9jYWxpemVycyB3aGV0aGVyIHNpbmdsZQorICogcXVvdGVzIG5lZWQgdG8gYmUgZG91YmxlZCBvciBub3QuIE1ha2Ugc3VyZSB0byBpbmZvcm0gbG9jYWxpemVycyBhYm91dAorICogdGhlIHJ1bGVzLCBhbmQgdGVsbCB0aGVtIChmb3IgZXhhbXBsZSwgYnkgdXNpbmcgY29tbWVudHMgaW4gcmVzb3VyY2UKKyAqIGJ1bmRsZSBzb3VyY2UgZmlsZXMpIHdoaWNoIHN0cmluZ3Mgd2lsbCBiZSBwcm9jZXNzZWQgYnkgTWVzc2FnZUZvcm1hdC4KKyAqIE5vdGUgdGhhdCBsb2NhbGl6ZXJzIG1heSBuZWVkIHRvIHVzZSBzaW5nbGUgcXVvdGVzIGluIHRyYW5zbGF0ZWQKKyAqIHN0cmluZ3Mgd2hlcmUgdGhlIG9yaWdpbmFsIHZlcnNpb24gZG9lc24ndCBoYXZlIHRoZW0uCisgKiA8YnI+Tm90ZSBhbHNvIHRoYXQgdGhlIHNpbXBsZXN0IHdheSB0byBhdm9pZCB0aGUgcHJvYmxlbSBpcyB0bworICogdXNlIHRoZSByZWFsIGFwb3N0cm9waGUgKHNpbmdsZSBxdW90ZSkgY2hhcmFjdGVyIFx1MjAxOSAoJykgZm9yCisgKiBodW1hbi1yZWFkYWJsZSB0ZXh0LCBhbmQgdG8gdXNlIHRoZSBBU0NJSSBhcG9zdHJvcGhlIChcdTAwMjcgJyApCisgKiBvbmx5IGluIHByb2dyYW0gc3ludGF4LCBsaWtlIHF1b3RpbmcgaW4gTWVzc2FnZUZvcm1hdC4KKyAqIFNlZSB0aGUgYW5ub3RhdGlvbnMgZm9yIFUrMDAyNyBBcG9zdHJvcGhlIGluIFRoZSBVbmljb2RlIFN0YW5kYXJkLjwvcD4KKyAqIDwvZGw+CisgKiA8cD4KKyAqIFRoZSA8aT5Bcmd1bWVudEluZGV4PC9pPiB2YWx1ZSBpcyBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdyaXR0ZW4KKyAqIHVzaW5nIHRoZSBkaWdpdHMgJzAnIHRocm91Z2ggJzknLCBhbmQgcmVwcmVzZW50cyBhbiBpbmRleCBpbnRvIHRoZQorICogPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQgdG8gdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcworICogb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZCBieSB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgKiA8cD4KKyAqIFRoZSA8aT5Gb3JtYXRUeXBlPC9pPiBhbmQgPGk+Rm9ybWF0U3R5bGU8L2k+IHZhbHVlcyBhcmUgdXNlZCB0byBjcmVhdGUKKyAqIGEgPGNvZGU+Rm9ybWF0PC9jb2RlPiBpbnN0YW5jZSBmb3IgdGhlIGZvcm1hdCBlbGVtZW50LiBUaGUgZm9sbG93aW5nCisgKiB0YWJsZSBzaG93cyBob3cgdGhlIHZhbHVlcyBtYXAgdG8gRm9ybWF0IGluc3RhbmNlcy4gQ29tYmluYXRpb25zIG5vdAorICogc2hvd24gaW4gdGhlIHRhYmxlIGFyZSBpbGxlZ2FsLiBBIDxpPlN1YmZvcm1hdFBhdHRlcm48L2k+IG11c3QKKyAqIGJlIGEgdmFsaWQgcGF0dGVybiBzdHJpbmcgZm9yIHRoZSBGb3JtYXQgc3ViY2xhc3MgdXNlZC4KKyAqIDxwPgorICogPHRhYmxlIGJvcmRlcj0xPgorICogICAgPHRyPgorICogICAgICAgPHRoPkZvcm1hdCBUeXBlCisgKiAgICAgICA8dGg+Rm9ybWF0IFN0eWxlCisgKiAgICAgICA8dGg+U3ViZm9ybWF0IENyZWF0ZWQKKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZCBjb2xzcGFuPTI+PGk+KG5vbmUpPC9pPgorICogICAgICAgPHRkPjxjb2RlPm51bGw8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQgcm93c3Bhbj01Pjxjb2RlPm51bWJlcjwvY29kZT4KKyAqICAgICAgIDx0ZD48aT4obm9uZSk8L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+TnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5pbnRlZ2VyPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPmN1cnJlbmN5PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5wZXJjZW50PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IERlY2ltYWxGb3JtYXQoc3ViZm9ybWF0UGF0dGVybiwgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGdldExvY2FsZSgpKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQgcm93c3Bhbj02Pjxjb2RlPmRhdGU8L2NvZGU+CisgKiAgICAgICA8dGQ+PGk+KG5vbmUpPC9pPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPnNob3J0PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5tZWRpdW08L2NvZGU+CisgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+bG9uZzwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5mdWxsPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IFNpbXBsZURhdGVGb3JtYXQoc3ViZm9ybWF0UGF0dGVybiwgZ2V0TG9jYWxlKCkpCisgKiAgICA8dHI+CisgKiAgICAgICA8dGQgcm93c3Bhbj02Pjxjb2RlPnRpbWU8L2NvZGU+CisgKiAgICAgICA8dGQ+PGk+KG5vbmUpPC9pPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPnNob3J0PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5tZWRpdW08L2NvZGU+CisgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+bG9uZzwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5mdWxsPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IFNpbXBsZURhdGVGb3JtYXQoc3ViZm9ybWF0UGF0dGVybiwgZ2V0TG9jYWxlKCkpCisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+Y2hvaWNlPC9jb2RlPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IENob2ljZUZvcm1hdChzdWJmb3JtYXRQYXR0ZXJuKTwvY29kZT4KKyAqIDwvdGFibGU+CisgKiA8cD4KKyAqCisgKiA8aDQ+VXNhZ2UgSW5mb3JtYXRpb248L2g0PgorICoKKyAqIDxwPgorICogSGVyZSBhcmUgc29tZSBleGFtcGxlcyBvZiB1c2FnZToKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE9iamVjdFtdIGFyZ3VtZW50cyA9IHsKKyAqICAgICBuZXcgSW50ZWdlcig3KSwKKyAqICAgICBuZXcgRGF0ZShTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSksCisgKiAgICAgImEgZGlzdHVyYmFuY2UgaW4gdGhlIEZvcmNlIgorICogfTsKKyAqCisgKiBTdHJpbmcgcmVzdWx0ID0gTWVzc2FnZUZvcm1hdC5mb3JtYXQoCisgKiAgICAgIkF0IHsxLHRpbWV9IG9uIHsxLGRhdGV9LCB0aGVyZSB3YXMgezJ9IG9uIHBsYW5ldCB7MCxudW1iZXIsaW50ZWdlcn0uIiwKKyAqICAgICBhcmd1bWVudHMpOworICoKKyAqIDxlbT5vdXRwdXQ8L2VtPjogQXQgMTI6MzAgUE0gb24gSnVsIDMsIDIwNTMsIHRoZXJlIHdhcyBhIGRpc3R1cmJhbmNlCisgKiAgICAgICAgICAgaW4gdGhlIEZvcmNlIG9uIHBsYW5ldCA3LgorICoKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogVHlwaWNhbGx5LCB0aGUgbWVzc2FnZSBmb3JtYXQgd2lsbCBjb21lIGZyb20gcmVzb3VyY2VzLCBhbmQgdGhlCisgKiBhcmd1bWVudHMgd2lsbCBiZSBkeW5hbWljYWxseSBzZXQgYXQgcnVudGltZS4KKyAqCisgKiA8cD4KKyAqIEV4YW1wbGUgMjoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE9iamVjdFtdIHRlc3RBcmdzID0ge25ldyBMb25nKDMpLCAiTXlEaXNrIn07CisgKgorICogTWVzc2FnZUZvcm1hdCBmb3JtID0gbmV3IE1lc3NhZ2VGb3JtYXQoCisgKiAgICAgIlRoZSBkaXNrIFwiezF9XCIgY29udGFpbnMgezB9IGZpbGUocykuIik7CisgKgorICogU3lzdGVtLm91dC5wcmludGxuKGZvcm0uZm9ybWF0KHRlc3RBcmdzKSk7CisgKgorICogLy8gb3V0cHV0LCB3aXRoIGRpZmZlcmVudCB0ZXN0QXJncworICogPGVtPm91dHB1dDwvZW0+OiBUaGUgZGlzayAiTXlEaXNrIiBjb250YWlucyAwIGZpbGUocykuCisgKiA8ZW0+b3V0cHV0PC9lbT46IFRoZSBkaXNrICJNeURpc2siIGNvbnRhaW5zIDEgZmlsZShzKS4KKyAqIDxlbT5vdXRwdXQ8L2VtPjogVGhlIGRpc2sgIk15RGlzayIgY29udGFpbnMgMSwyNzMgZmlsZShzKS4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPgorICogRm9yIG1vcmUgc29waGlzdGljYXRlZCBwYXR0ZXJucywgeW91IGNhbiB1c2UgYSA8Y29kZT5DaG9pY2VGb3JtYXQ8L2NvZGU+IHRvIGdldAorICogb3V0cHV0IHN1Y2ggYXM6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBNZXNzYWdlRm9ybWF0IGZvcm0gPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlIGRpc2sgXCJ7MX1cIiBjb250YWlucyB7MH0uIik7CisgKiBkb3VibGVbXSBmaWxlbGltaXRzID0gezAsMSwyfTsKKyAqIFN0cmluZ1tdIGZpbGVwYXJ0ID0geyJubyBmaWxlcyIsIm9uZSBmaWxlIiwiezAsbnVtYmVyfSBmaWxlcyJ9OworICogQ2hvaWNlRm9ybWF0IGZpbGVmb3JtID0gbmV3IENob2ljZUZvcm1hdChmaWxlbGltaXRzLCBmaWxlcGFydCk7CisgKiBmb3JtLnNldEZvcm1hdEJ5QXJndW1lbnRJbmRleCgwLCBmaWxlZm9ybSk7CisgKgorICogT2JqZWN0W10gdGVzdEFyZ3MgPSB7bmV3IExvbmcoMTIzNzMpLCAiTXlEaXNrIn07CisgKgorICogU3lzdGVtLm91dC5wcmludGxuKGZvcm0uZm9ybWF0KHRlc3RBcmdzKSk7CisgKgorICogLy8gb3V0cHV0LCB3aXRoIGRpZmZlcmVudCB0ZXN0QXJncworICogb3V0cHV0OiBUaGUgZGlzayAiTXlEaXNrIiBjb250YWlucyBubyBmaWxlcy4KKyAqIG91dHB1dDogVGhlIGRpc2sgIk15RGlzayIgY29udGFpbnMgb25lIGZpbGUuCisgKiBvdXRwdXQ6IFRoZSBkaXNrICJNeURpc2siIGNvbnRhaW5zIDEsMjczIGZpbGVzLgorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBZb3UgY2FuIGVpdGhlciBkbyB0aGlzIHByb2dyYW1tYXRpY2FsbHksIGFzIGluIHRoZSBhYm92ZSBleGFtcGxlLAorICogb3IgYnkgdXNpbmcgYSBwYXR0ZXJuIChzZWUKKyAqIHtAbGluayBDaG9pY2VGb3JtYXR9CisgKiBmb3IgbW9yZSBpbmZvcm1hdGlvbikgYXMgaW46CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBmb3JtLmFwcGx5UGF0dGVybigKKyAqICAgICJUaGVyZSB7MCxjaG9pY2UsMCNhcmUgbm8gZmlsZXN8MSNpcyBvbmUgZmlsZXwxJmx0O2FyZSB7MCxudW1iZXIsaW50ZWdlcn0gZmlsZXN9LiIpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8cD4KKyAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gQXMgd2Ugc2VlIGFib3ZlLCB0aGUgc3RyaW5nIHByb2R1Y2VkCisgKiBieSBhIDxjb2RlPkNob2ljZUZvcm1hdDwvY29kZT4gaW4gPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gaXMgdHJlYXRlZCBzcGVjaWFsbHk7CisgKiBvY2N1cmFuY2VzIG9mICd7JyBhcmUgdXNlZCB0byBpbmRpY2F0ZWQgc3ViZm9ybWF0cywgYW5kIGNhdXNlIHJlY3Vyc2lvbi4KKyAqIElmIHlvdSBjcmVhdGUgYm90aCBhIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IGFuZCA8Y29kZT5DaG9pY2VGb3JtYXQ8L2NvZGU+CisgKiBwcm9ncmFtbWF0aWNhbGx5IChpbnN0ZWFkIG9mIHVzaW5nIHRoZSBzdHJpbmcgcGF0dGVybnMpLCB0aGVuIGJlIGNhcmVmdWwgbm90IHRvCisgKiBwcm9kdWNlIGEgZm9ybWF0IHRoYXQgcmVjdXJzZXMgb24gaXRzZWxmLCB3aGljaCB3aWxsIGNhdXNlIGFuIGluZmluaXRlIGxvb3AuCisgKiA8cD4KKyAqIFdoZW4gYSBzaW5nbGUgYXJndW1lbnQgaXMgcGFyc2VkIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzdHJpbmcsIHRoZSBsYXN0IG1hdGNoCisgKiB3aWxsIGJlIHRoZSBmaW5hbCByZXN1bHQgb2YgdGhlIHBhcnNpbmcuICBGb3IgZXhhbXBsZSwKKyAqIDxwcmU+CisgKiBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoInswLG51bWJlciwjLiMjfSwgezAsbnVtYmVyLCMuI30iKTsKKyAqIE9iamVjdFtdIG9ianMgPSB7bmV3IERvdWJsZSgzLjE0MTUpfTsKKyAqIFN0cmluZyByZXN1bHQgPSBtZi5mb3JtYXQoIG9ianMgKTsKKyAqIC8vIHJlc3VsdCBub3cgZXF1YWxzICIzLjE0LCAzLjEiCisgKiBvYmpzID0gbnVsbDsKKyAqIG9ianMgPSBtZi5wYXJzZShyZXN1bHQsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAqIC8vIG9ianMgbm93IGVxdWFscyB7bmV3IERvdWJsZSgzLjEpfQorICogPC9wcmU+CisgKiA8cD4KKyAqIExpa2V3aXNlLCBwYXJzaW5nIHdpdGggYSBNZXNzYWdlRm9ybWF0IG9iamVjdCB1c2luZyBwYXR0ZXJucyBjb250YWluaW5nCisgKiBtdWx0aXBsZSBvY2N1cmFuY2VzIG9mIHRoZSBzYW1lIGFyZ3VtZW50IHdvdWxkIHJldHVybiB0aGUgbGFzdCBtYXRjaC4gIEZvcgorICogZXhhbXBsZSwKKyAqIDxwcmU+CisgKiBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoInswfSwgezB9LCB7MH0iKTsKKyAqIFN0cmluZyBmb3JQYXJzaW5nID0gIngsIHksIHoiOworICogT2JqZWN0W10gb2JqcyA9IG1mLnBhcnNlKGZvclBhcnNpbmcsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAqIC8vIHJlc3VsdCBub3cgZXF1YWxzIHtuZXcgU3RyaW5nKCJ6Iil9CisgKiA8L3ByZT4KKyAqCisgKiA8aDQ+PGEgbmFtZT0ic3luY2hyb25pemF0aW9uIj5TeW5jaHJvbml6YXRpb248L2E+PC9oND4KKyAqCisgKiA8cD4KKyAqIE1lc3NhZ2UgZm9ybWF0cyBhcmUgbm90IHN5bmNocm9uaXplZC4KKyAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSBzZXBhcmF0ZSBmb3JtYXQgaW5zdGFuY2VzIGZvciBlYWNoIHRocmVhZC4KKyAqIElmIG11bHRpcGxlIHRocmVhZHMgYWNjZXNzIGEgZm9ybWF0IGNvbmN1cnJlbnRseSwgaXQgbXVzdCBiZSBzeW5jaHJvbml6ZWQKKyAqIGV4dGVybmFsbHkuCisgKgorICogQHNlZSAgICAgICAgICBqYXZhLnV0aWwuTG9jYWxlCisgKiBAc2VlICAgICAgICAgIEZvcm1hdAorICogQHNlZSAgICAgICAgICBOdW1iZXJGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgRGVjaW1hbEZvcm1hdAorICogQHNlZSAgICAgICAgICBDaG9pY2VGb3JtYXQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQHN0YWJsZSBJQ1UgMy4wCisgKi8KK3B1YmxpYyBjbGFzcyBNZXNzYWdlRm9ybWF0IGV4dGVuZHMgRm9ybWF0IHsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMUw7CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQgbWVzc2FnZUZvcm1hdDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQHBhcmFtIGRlbGVnYXRlIHRoZSBEYXRlRm9ybWF0IHRvIHdoaWNoIHRvIGRlbGVnYXRlCisgICAgICovCisgICAgcHVibGljIE1lc3NhZ2VGb3JtYXQoamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQgZGVsZWdhdGUpIHsKKyAgICAgICAgdGhpcy5tZXNzYWdlRm9ybWF0ID0gZGVsZWdhdGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIE1lc3NhZ2VGb3JtYXQgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBhbmQgdGhlCisgICAgICogc3BlY2lmaWVkIHBhdHRlcm4uCisgICAgICogVGhlIGNvbnN0cnVjdG9yIGZpcnN0IHNldHMgdGhlIGxvY2FsZSwgdGhlbiBwYXJzZXMgdGhlIHBhdHRlcm4gYW5kCisgICAgICogY3JlYXRlcyBhIGxpc3Qgb2Ygc3ViZm9ybWF0cyBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBjb250YWluZWQgaW4gaXQuCisgICAgICogUGF0dGVybnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9uIGFyZSBzcGVjaWZpZWQgaW4gdGhlCisgICAgICogPGEgaHJlZj0iI3BhdHRlcm5zIj5jbGFzcyBkZXNjcmlwdGlvbjwvYT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGlzIGludmFsaWQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTWVzc2FnZUZvcm1hdChTdHJpbmcgcGF0dGVybikgeworICAgICAgICB0aGlzKG5ldyBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdChwYXR0ZXJuKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIE1lc3NhZ2VGb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlIGFuZAorICAgICAqIHBhdHRlcm4uCisgICAgICogVGhlIGNvbnN0cnVjdG9yIGZpcnN0IHNldHMgdGhlIGxvY2FsZSwgdGhlbiBwYXJzZXMgdGhlIHBhdHRlcm4gYW5kCisgICAgICogY3JlYXRlcyBhIGxpc3Qgb2Ygc3ViZm9ybWF0cyBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBjb250YWluZWQgaW4gaXQuCisgICAgICogUGF0dGVybnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9uIGFyZSBzcGVjaWZpZWQgaW4gdGhlCisgICAgICogPGEgaHJlZj0iI3BhdHRlcm5zIj5jbGFzcyBkZXNjcmlwdGlvbjwvYT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGlzIGludmFsaWQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTWVzc2FnZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAvLyBsb2NhbGUgaXMgaWdub3JlZAorICAgICAgICB0aGlzKG5ldyBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdChwYXR0ZXJuKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIE1lc3NhZ2VGb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlIGFuZAorICAgICAqIHBhdHRlcm4uCisgICAgICogVGhlIGNvbnN0cnVjdG9yIGZpcnN0IHNldHMgdGhlIGxvY2FsZSwgdGhlbiBwYXJzZXMgdGhlIHBhdHRlcm4gYW5kCisgICAgICogY3JlYXRlcyBhIGxpc3Qgb2Ygc3ViZm9ybWF0cyBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBjb250YWluZWQgaW4gaXQuCisgICAgICogUGF0dGVybnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9uIGFyZSBzcGVjaWZpZWQgaW4gdGhlCisgICAgICogPGEgaHJlZj0iI3BhdHRlcm5zIj5jbGFzcyBkZXNjcmlwdGlvbjwvYT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGlzIGludmFsaWQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgTWVzc2FnZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgLy8gbG9jYWxlIGlzIGlnbm9yZWQKKyAgICAgICAgdGhpcyhwYXR0ZXJuKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzLgorICAgICAqIFRoaXMgYWZmZWN0cyBzdWJzZXF1ZW50IGNhbGxzIHRvIHRoZSB7QGxpbmsgI2FwcGx5UGF0dGVybiBhcHBseVBhdHRlcm59CisgICAgICogYW5kIHtAbGluayAjdG9QYXR0ZXJuIHRvUGF0dGVybn0gbWV0aG9kcyBhcyB3ZWxsIGFzIHRvIHRoZQorICAgICAqIDxjb2RlPmZvcm1hdDwvY29kZT4gYW5kCisgICAgICoge0BsaW5rICNmb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yIGZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3J9IG1ldGhvZHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgbWVzc2FnZUZvcm1hdC5zZXRMb2NhbGUobG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzLgorICAgICAqIFRoaXMgYWZmZWN0cyBzdWJzZXF1ZW50IGNhbGxzIHRvIHRoZSB7QGxpbmsgI2FwcGx5UGF0dGVybiBhcHBseVBhdHRlcm59CisgICAgICogYW5kIHtAbGluayAjdG9QYXR0ZXJuIHRvUGF0dGVybn0gbWV0aG9kcyBhcyB3ZWxsIGFzIHRvIHRoZQorICAgICAqIDxjb2RlPmZvcm1hdDwvY29kZT4gYW5kCisgICAgICoge0BsaW5rICNmb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yIGZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3J9IG1ldGhvZHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TG9jYWxlKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIG1lc3NhZ2VGb3JtYXQuc2V0TG9jYWxlKGxvY2FsZS50b0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsb2NhbGUgdGhhdCdzIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsZSB1c2VkIHdoZW4gY3JlYXRpbmcgb3IgY29tcGFyaW5nIHN1YmZvcm1hdHMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTG9jYWxlIGdldExvY2FsZSgpIHsKKyAgICAgICAgcmV0dXJuIG1lc3NhZ2VGb3JtYXQuZ2V0TG9jYWxlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbG9jYWxlIHRoYXQncyB1c2VkIHdoZW4gY3JlYXRpbmcgb3IgY29tcGFyaW5nIHN1YmZvcm1hdHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIFVMb2NhbGUgZ2V0VUxvY2FsZSgpIHsKKyAgICAgICAgcmV0dXJuIFVMb2NhbGUuZm9yTG9jYWxlKG1lc3NhZ2VGb3JtYXQuZ2V0TG9jYWxlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBhdHRlcm4gdXNlZCBieSB0aGlzIG1lc3NhZ2UgZm9ybWF0LgorICAgICAqIFRoZSBtZXRob2QgcGFyc2VzIHRoZSBwYXR0ZXJuIGFuZCBjcmVhdGVzIGEgbGlzdCBvZiBzdWJmb3JtYXRzCisgICAgICogZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgY29udGFpbmVkIGluIGl0LgorICAgICAqIFBhdHRlcm5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbiBhcmUgc3BlY2lmaWVkIGluIHRoZQorICAgICAqIDxhIGhyZWY9IiNwYXR0ZXJucyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+LgorICAgICAqIAorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuIGZvciB0aGlzIG1lc3NhZ2UgZm9ybWF0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4gaXMgaW52YWxpZAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgcHVibGljIHZvaWQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgbWVzc2FnZUZvcm1hdC5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICB9CisKKyAgIC8qKgorICAgICogUmV0dXJucyBhIHBhdHRlcm4gcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBtZXNzYWdlIGZvcm1hdC4KKyAgICAqIFRoZSBzdHJpbmcgaXMgY29uc3RydWN0ZWQgZnJvbSBpbnRlcm5hbCBpbmZvcm1hdGlvbiBhbmQgdGhlcmVmb3JlCisgICAgKiBkb2VzIG5vdCBuZWNlc3NhcmlseSBlcXVhbCB0aGUgcHJldmlvdXNseSBhcHBsaWVkIHBhdHRlcm4uIAorICAgICoKKyAgICAqIEByZXR1cm4gYSBwYXR0ZXJuIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgbWVzc2FnZSBmb3JtYXQKKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICBwdWJsaWMgU3RyaW5nIHRvUGF0dGVybigpIHsKKyAgICAgICByZXR1cm4gbWVzc2FnZUZvcm1hdC50b1BhdHRlcm4oKTsKKyAgIH0KKyAKKyAgIC8qKgorICAgICogU2V0cyB0aGUgZm9ybWF0cyB0byB1c2UgZm9yIHRoZSB2YWx1ZXMgcGFzc2VkIGludG8KKyAgICAqIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcyBvciByZXR1cm5lZCBmcm9tIDxjb2RlPnBhcnNlPC9jb2RlPgorICAgICogbWV0aG9kcy4gVGhlIGluZGljZXMgb2YgZWxlbWVudHMgaW4gPGNvZGU+bmV3Rm9ybWF0czwvY29kZT4KKyAgICAqIGNvcnJlc3BvbmQgdG8gdGhlIGFyZ3VtZW50IGluZGljZXMgdXNlZCBpbiB0aGUgcHJldmlvdXNseSBzZXQKKyAgICAqIHBhdHRlcm4gc3RyaW5nLgorICAgICogVGhlIG9yZGVyIG9mIGZvcm1hdHMgaW4gPGNvZGU+bmV3Rm9ybWF0czwvY29kZT4gdGh1cyBjb3JyZXNwb25kcyB0bworICAgICogdGhlIG9yZGVyIG9mIGVsZW1lbnRzIGluIHRoZSA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IHBhc3NlZAorICAgICogdG8gdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcyBvciB0aGUgcmVzdWx0IGFycmF5IHJldHVybmVkCisgICAgKiBieSB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgICAgKiA8cD4KKyAgICAqIElmIGFuIGFyZ3VtZW50IGluZGV4IGlzIHVzZWQgZm9yIG1vcmUgdGhhbiBvbmUgZm9ybWF0IGVsZW1lbnQKKyAgICAqIGluIHRoZSBwYXR0ZXJuIHN0cmluZywgdGhlbiB0aGUgY29ycmVzcG9uZGluZyBuZXcgZm9ybWF0IGlzIHVzZWQKKyAgICAqIGZvciBhbGwgc3VjaCBmb3JtYXQgZWxlbWVudHMuIElmIGFuIGFyZ3VtZW50IGluZGV4IGlzIG5vdCB1c2VkCisgICAgKiBmb3IgYW55IGZvcm1hdCBlbGVtZW50IGluIHRoZSBwYXR0ZXJuIHN0cmluZywgdGhlbiB0aGUKKyAgICAqIGNvcnJlc3BvbmRpbmcgbmV3IGZvcm1hdCBpcyBpZ25vcmVkLiBJZiBmZXdlciBmb3JtYXRzIGFyZSBwcm92aWRlZAorICAgICogdGhhbiBuZWVkZWQsIHRoZW4gb25seSB0aGUgZm9ybWF0cyBmb3IgYXJndW1lbnQgaW5kaWNlcyBsZXNzCisgICAgKiB0aGFuIDxjb2RlPm5ld0Zvcm1hdHMubGVuZ3RoPC9jb2RlPiBhcmUgcmVwbGFjZWQuCisgICAgKgorICAgICogQHBhcmFtIG5ld0Zvcm1hdHMgdGhlIG5ldyBmb3JtYXRzIHRvIHVzZQorICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiA8Y29kZT5uZXdGb3JtYXRzPC9jb2RlPiBpcyBudWxsCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gaWYgdGhlIHVuZGVybHlpbmcgSlZNIGRvZXMgbm90CisgICAgKiBzdXBwb3J0IHRoaXMgbWV0aG9kLgorICAgICovCisgICBwdWJsaWMgdm9pZCBzZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4KEZvcm1hdFtdIG5ld0Zvcm1hdHMpIHsKKwkgICBpZiAoc2ZzYmFpID09IG51bGwpIHsKKwkJICAgc3luY2hyb25pemVkIChtaXNzaW5nKSB7CisJCQkgICB0cnkgeworCQkJCSAgIENsYXNzW10gcGFyYW1zID0geyBGb3JtYXRbXS5jbGFzcyB9OworCQkJCSAgIHNmc2JhaSA9IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0LmNsYXNzLmdldE1ldGhvZCgic2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleCIsIHBhcmFtcyk7CisJCQkgICB9CisJCQkgICBjYXRjaCAoTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUpIHsKKwkJCQkgICBzZnNiYWkgPSBtaXNzaW5nOworCQkJICAgfQorCQkgICB9CisJICAgfQorCSAgIGlmIChzZnNiYWkgIT0gbWlzc2luZykgeworCQkgICB0cnkgeworCQkJICAgRm9ybWF0W10gdW53cmFwcGVkID0gbmV3IEZvcm1hdFtuZXdGb3JtYXRzLmxlbmd0aF07CisJCQkgICBmb3IgKGludCBpID0gMDsgaSA8IG5ld0Zvcm1hdHMubGVuZ3RoOyArK2kpIHsKKwkJCQkgICB1bndyYXBwZWRbaV0gPSB1bndyYXAobmV3Rm9ybWF0c1tpXSk7CisJCQkgICB9CisJCQkgICBPYmplY3RbXSBhcmdzID0geyB1bndyYXBwZWQgfTsKKwkJCSAgICgoTWV0aG9kKXNmc2JhaSkuaW52b2tlKG1lc3NhZ2VGb3JtYXQsIGFyZ3MpOworCQkJICAgcmV0dXJuOworCQkgICB9CisJCSAgIGNhdGNoIChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKKwkJCSAgIC8vIGNhbid0IGhhcHBlbgorCQkgICB9CisJCSAgIGNhdGNoIChJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUpIHsKKwkJCSAgIC8vIGNhbid0IGhhcHBlbgorCQkgICB9CisJICAgfQorCSAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOworICAgIH0KKyAgIHByaXZhdGUgc3RhdGljIE9iamVjdCBzZnNiYWk7CisgICAKKyAgIC8qKgorICAgICogU2V0cyB0aGUgZm9ybWF0cyB0byB1c2UgZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgaW4gdGhlCisgICAgKiBwcmV2aW91c2x5IHNldCBwYXR0ZXJuIHN0cmluZy4KKyAgICAqIFRoZSBvcmRlciBvZiBmb3JtYXRzIGluIDxjb2RlPm5ld0Zvcm1hdHM8L2NvZGU+IGNvcnJlc3BvbmRzIHRvCisgICAgKiB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIHRoZSBwYXR0ZXJuIHN0cmluZy4KKyAgICAqIDxwPgorICAgICogSWYgbW9yZSBmb3JtYXRzIGFyZSBwcm92aWRlZCB0aGFuIG5lZWRlZCBieSB0aGUgcGF0dGVybiBzdHJpbmcsCisgICAgKiB0aGUgcmVtYWluaW5nIG9uZXMgYXJlIGlnbm9yZWQuIElmIGZld2VyIGZvcm1hdHMgYXJlIHByb3ZpZGVkCisgICAgKiB0aGFuIG5lZWRlZCwgdGhlbiBvbmx5IHRoZSBmaXJzdCA8Y29kZT5uZXdGb3JtYXRzLmxlbmd0aDwvY29kZT4KKyAgICAqIGZvcm1hdHMgYXJlIHJlcGxhY2VkLgorICAgICogPHA+CisgICAgKiBTaW5jZSB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIGEgcGF0dGVybiBzdHJpbmcgb2Z0ZW4KKyAgICAqIGNoYW5nZXMgZHVyaW5nIGxvY2FsaXphdGlvbiwgaXQgaXMgZ2VuZXJhbGx5IGJldHRlciB0byB1c2UgdGhlCisgICAgKiB7QGxpbmsgI3NldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXggc2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleH0KKyAgICAqIG1ldGhvZCwgd2hpY2ggYXNzdW1lcyBhbiBvcmRlciBvZiBmb3JtYXRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisgICAgKiBvcmRlciBvZiBlbGVtZW50cyBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQgdG8KKyAgICAqIHRoZSA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZCBieQorICAgICogdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICAgICoKKyAgICAqIEBwYXJhbSBuZXdGb3JtYXRzIHRoZSBuZXcgZm9ybWF0cyB0byB1c2UKKyAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgPGNvZGU+bmV3Rm9ybWF0czwvY29kZT4gaXMgbnVsbAorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdHMoRm9ybWF0W10gbmV3Rm9ybWF0cykgeworICAgICAgIG1lc3NhZ2VGb3JtYXQuc2V0Rm9ybWF0cyhuZXdGb3JtYXRzKTsKKyAgIH0KKworICAgLyoqCisgICAgKiBTZXRzIHRoZSBmb3JtYXQgdG8gdXNlIGZvciB0aGUgZm9ybWF0IGVsZW1lbnRzIHdpdGhpbiB0aGUKKyAgICAqIHByZXZpb3VzbHkgc2V0IHBhdHRlcm4gc3RyaW5nIHRoYXQgdXNlIHRoZSBnaXZlbiBhcmd1bWVudAorICAgICogaW5kZXguCisgICAgKiBUaGUgYXJndW1lbnQgaW5kZXggaXMgcGFydCBvZiB0aGUgZm9ybWF0IGVsZW1lbnQgZGVmaW5pdGlvbiBhbmQKKyAgICAqIHJlcHJlc2VudHMgYW4gaW5kZXggaW50byB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQKKyAgICAqIHRvIHRoZSA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZAorICAgICogYnkgdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICAgICogPHA+CisgICAgKiBJZiB0aGUgYXJndW1lbnQgaW5kZXggaXMgdXNlZCBmb3IgbW9yZSB0aGFuIG9uZSBmb3JtYXQgZWxlbWVudAorICAgICogaW4gdGhlIHBhdHRlcm4gc3RyaW5nLCB0aGVuIHRoZSBuZXcgZm9ybWF0IGlzIHVzZWQgZm9yIGFsbCBzdWNoCisgICAgKiBmb3JtYXQgZWxlbWVudHMuIElmIHRoZSBhcmd1bWVudCBpbmRleCBpcyBub3QgdXNlZCBmb3IgYW55IGZvcm1hdAorICAgICogZWxlbWVudCBpbiB0aGUgcGF0dGVybiBzdHJpbmcsIHRoZW4gdGhlIG5ldyBmb3JtYXQgaXMgaWdub3JlZC4KKyAgICAqCisgICAgKiBAcGFyYW0gYXJndW1lbnRJbmRleCB0aGUgYXJndW1lbnQgaW5kZXggZm9yIHdoaWNoIHRvIHVzZSB0aGUgbmV3IGZvcm1hdAorICAgICogQHBhcmFtIG5ld0Zvcm1hdCB0aGUgbmV3IGZvcm1hdCB0byB1c2UKKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICogQHRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiBpZiB0aGUgdW5kZXJseWluZyBKVk0gZG9lcyBub3QKKyAgICAqIHN1cHBvcnQgdGhpcyBtZXRob2QuCisgICAgKi8KKyAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdEJ5QXJndW1lbnRJbmRleChpbnQgYXJndW1lbnRJbmRleCwgRm9ybWF0IG5ld0Zvcm1hdCkgeworCSAgIGlmIChzZmJhaSA9PSBudWxsKSB7CisJCSAgIHN5bmNocm9uaXplZCAobWlzc2luZykgeworCQkJICAgdHJ5IHsKKwkJCQkgICBDbGFzc1tdIHBhcmFtcyA9IHsgSW50ZWdlci5UWVBFLCBGb3JtYXQuY2xhc3MgfTsKKwkJCQkgICBzZmJhaSA9IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0LmNsYXNzLmdldE1ldGhvZCgic2V0Rm9ybWF0QnlBcmd1bWVudEluZGV4IiwgcGFyYW1zKTsKKwkJCSAgIH0KKwkJCSAgIGNhdGNoIChOb1N1Y2hNZXRob2RFeGNlcHRpb24gZSkgeworCQkJCSAgIHNmYmFpID0gbWlzc2luZzsKKwkJCSAgIH0KKwkJICAgfQorCSAgIH0KKwkgICBpZiAoc2ZiYWkgIT0gbWlzc2luZykgeworCQkgICB0cnkgeworCQkJICAgT2JqZWN0W10gYXJncyA9IHsgbmV3IEludGVnZXIoYXJndW1lbnRJbmRleCksIG5ld0Zvcm1hdCB9OworCQkJICAgKChNZXRob2Qpc2ZiYWkpLmludm9rZShtZXNzYWdlRm9ybWF0LCBhcmdzKTsKKwkJCSAgIHJldHVybjsKKwkJICAgfQorCQkgICBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisJCQkgICAvLyBjYW4ndCBoYXBwZW4KKwkJICAgfQorCQkgICBjYXRjaCAoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisJCQkgICAvLyBjYW4ndCBoYXBwZW4KKwkJICAgfQorCSAgIH0KKwkgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKKyAgIH0KKyAgIHByaXZhdGUgc3RhdGljIE9iamVjdCBzZmJhaTsKKworICAgLyoqCisgICAgKiBTZXRzIHRoZSBmb3JtYXQgdG8gdXNlIGZvciB0aGUgZm9ybWF0IGVsZW1lbnQgd2l0aCB0aGUgZ2l2ZW4KKyAgICAqIGZvcm1hdCBlbGVtZW50IGluZGV4IHdpdGhpbiB0aGUgcHJldmlvdXNseSBzZXQgcGF0dGVybiBzdHJpbmcuCisgICAgKiBUaGUgZm9ybWF0IGVsZW1lbnQgaW5kZXggaXMgdGhlIHplcm8tYmFzZWQgbnVtYmVyIG9mIHRoZSBmb3JtYXQKKyAgICAqIGVsZW1lbnQgY291bnRpbmcgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHBhdHRlcm4gc3RyaW5nLgorICAgICogPHA+CisgICAgKiBTaW5jZSB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIGEgcGF0dGVybiBzdHJpbmcgb2Z0ZW4KKyAgICAqIGNoYW5nZXMgZHVyaW5nIGxvY2FsaXphdGlvbiwgaXQgaXMgZ2VuZXJhbGx5IGJldHRlciB0byB1c2UgdGhlCisgICAgKiB7QGxpbmsgI3NldEZvcm1hdEJ5QXJndW1lbnRJbmRleCBzZXRGb3JtYXRCeUFyZ3VtZW50SW5kZXh9CisgICAgKiBtZXRob2QsIHdoaWNoIGFjY2Vzc2VzIGZvcm1hdCBlbGVtZW50cyBiYXNlZCBvbiB0aGUgYXJndW1lbnQKKyAgICAqIGluZGV4IHRoZXkgc3BlY2lmeS4KKyAgICAqCisgICAgKiBAcGFyYW0gZm9ybWF0RWxlbWVudEluZGV4IHRoZSBpbmRleCBvZiBhIGZvcm1hdCBlbGVtZW50IHdpdGhpbiB0aGUgcGF0dGVybgorICAgICogQHBhcmFtIG5ld0Zvcm1hdCB0aGUgZm9ybWF0IHRvIHVzZSBmb3IgdGhlIHNwZWNpZmllZCBmb3JtYXQgZWxlbWVudAorICAgICogQGV4Y2VwdGlvbiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgZm9ybWF0RWxlbWVudEluZGV4IGlzIGVxdWFsIHRvIG9yCisgICAgKiAgICAgICAgICAgIGxhcmdlciB0aGFuIHRoZSBudW1iZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIHRoZSBwYXR0ZXJuIHN0cmluZworICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdChpbnQgZm9ybWF0RWxlbWVudEluZGV4LCBGb3JtYXQgbmV3Rm9ybWF0KSB7CisgICAgICAgbWVzc2FnZUZvcm1hdC5zZXRGb3JtYXQoZm9ybWF0RWxlbWVudEluZGV4LCB1bndyYXAobmV3Rm9ybWF0KSk7CisgICB9CisKKyAgIC8qKgorICAgICogR2V0cyB0aGUgZm9ybWF0cyB1c2VkIGZvciB0aGUgdmFsdWVzIHBhc3NlZCBpbnRvCisgICAgKiA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgcmV0dXJuZWQgZnJvbSA8Y29kZT5wYXJzZTwvY29kZT4KKyAgICAqIG1ldGhvZHMuIFRoZSBpbmRpY2VzIG9mIGVsZW1lbnRzIGluIHRoZSByZXR1cm5lZCBhcnJheQorICAgICogY29ycmVzcG9uZCB0byB0aGUgYXJndW1lbnQgaW5kaWNlcyB1c2VkIGluIHRoZSBwcmV2aW91c2x5IHNldAorICAgICogcGF0dGVybiBzdHJpbmcuCisgICAgKiBUaGUgb3JkZXIgb2YgZm9ybWF0cyBpbiB0aGUgcmV0dXJuZWQgYXJyYXkgdGh1cyBjb3JyZXNwb25kcyB0bworICAgICogdGhlIG9yZGVyIG9mIGVsZW1lbnRzIGluIHRoZSA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IHBhc3NlZAorICAgICogdG8gdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcyBvciB0aGUgcmVzdWx0IGFycmF5IHJldHVybmVkCisgICAgKiBieSB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgICAgKiA8cD4KKyAgICAqIElmIGFuIGFyZ3VtZW50IGluZGV4IGlzIHVzZWQgZm9yIG1vcmUgdGhhbiBvbmUgZm9ybWF0IGVsZW1lbnQKKyAgICAqIGluIHRoZSBwYXR0ZXJuIHN0cmluZywgdGhlbiB0aGUgZm9ybWF0IHVzZWQgZm9yIHRoZSBsYXN0IHN1Y2gKKyAgICAqIGZvcm1hdCBlbGVtZW50IGlzIHJldHVybmVkIGluIHRoZSBhcnJheS4gSWYgYW4gYXJndW1lbnQgaW5kZXgKKyAgICAqIGlzIG5vdCB1c2VkIGZvciBhbnkgZm9ybWF0IGVsZW1lbnQgaW4gdGhlIHBhdHRlcm4gc3RyaW5nLCB0aGVuCisgICAgKiBudWxsIGlzIHJldHVybmVkIGluIHRoZSBhcnJheS4KKyAgICAqCisgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXRzIHVzZWQgZm9yIHRoZSBhcmd1bWVudHMgd2l0aGluIHRoZSBwYXR0ZXJuCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gaWYgdGhlIHVuZGVybHlpbmcgSlZNIGRvZXMgbm90IAorICAgICogc3VwcG9ydCB0aGlzIG1ldGhvZC4KKyAgICAqLworICAgcHVibGljIEZvcm1hdFtdIGdldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXgoKSB7CisJICAgaWYgKGdmYmFpID09IG51bGwpIHsKKwkJICAgc3luY2hyb25pemVkIChtaXNzaW5nKSB7CisJCQkgICB0cnkgeworCQkJCSAgIGdmYmFpID0gamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQuY2xhc3MuZ2V0TWV0aG9kKCJnZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4IiwgbnVsbCk7CisJCQkgICB9CisJCQkgICBjYXRjaCAoTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUpIHsKKwkJCQkgICBnZmJhaSA9IG1pc3Npbmc7CisJCQkgICB9CisJCSAgIH0KKwkgICB9CisJICAgaWYgKGdmYmFpICE9IG1pc3NpbmcpIHsKKwkJICAgdHJ5IHsKKwkJCSAgIEZvcm1hdFtdIHJlc3VsdCA9IChGb3JtYXRbXSkoKE1ldGhvZClnZmJhaSkuaW52b2tlKG1lc3NhZ2VGb3JtYXQsIG51bGwpOworCQkJICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyArK2kpIHsKKwkJCQkgICByZXN1bHRbaV0gPSB3cmFwKHJlc3VsdFtpXSk7CisJCQkgICB9CisJCQkgICByZXR1cm4gcmVzdWx0OworCQkgICB9CisJCSAgIGNhdGNoIChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKKwkJCSAgIC8vIGNhbid0IGhhcHBlbgorCQkgICB9CisJCSAgIGNhdGNoIChJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUpIHsKKwkJCSAgIC8vIGNhbid0IGhhcHBlbgorCQkgICB9CisJICAgfQorCSAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOworICAgfQorICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0IGdmYmFpOworICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0IG1pc3NpbmcgPSBuZXcgT2JqZWN0KCk7CisKKyAgIC8qKgorICAgICogR2V0cyB0aGUgZm9ybWF0cyB1c2VkIGZvciB0aGUgZm9ybWF0IGVsZW1lbnRzIGluIHRoZQorICAgICogcHJldmlvdXNseSBzZXQgcGF0dGVybiBzdHJpbmcuCisgICAgKiBUaGUgb3JkZXIgb2YgZm9ybWF0cyBpbiB0aGUgcmV0dXJuZWQgYXJyYXkgY29ycmVzcG9uZHMgdG8KKyAgICAqIHRoZSBvcmRlciBvZiBmb3JtYXQgZWxlbWVudHMgaW4gdGhlIHBhdHRlcm4gc3RyaW5nLgorICAgICogPHA+CisgICAgKiBTaW5jZSB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIGEgcGF0dGVybiBzdHJpbmcgb2Z0ZW4KKyAgICAqIGNoYW5nZXMgZHVyaW5nIGxvY2FsaXphdGlvbiwgaXQncyBnZW5lcmFsbHkgYmV0dGVyIHRvIHVzZSB0aGUKKyAgICAqIHtAbGluayAjZ2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleCBnZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4fQorICAgICogbWV0aG9kLCB3aGljaCBhc3N1bWVzIGFuIG9yZGVyIG9mIGZvcm1hdHMgY29ycmVzcG9uZGluZyB0byB0aGUKKyAgICAqIG9yZGVyIG9mIGVsZW1lbnRzIGluIHRoZSA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IHBhc3NlZCB0bworICAgICogdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcyBvciB0aGUgcmVzdWx0IGFycmF5IHJldHVybmVkIGJ5CisgICAgKiB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgICAgKgorICAgICogQHJldHVybiB0aGUgZm9ybWF0cyB1c2VkIGZvciB0aGUgZm9ybWF0IGVsZW1lbnRzIGluIHRoZSBwYXR0ZXJuCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgcHVibGljIEZvcm1hdFtdIGdldEZvcm1hdHMoKSB7CisgICAgICAgRm9ybWF0W10gcmVzdWx0ID0gbWVzc2FnZUZvcm1hdC5nZXRGb3JtYXRzKCk7CisgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgcmVzdWx0W2ldID0gd3JhcChyZXN1bHRbaV0pOworICAgICAgIH0KKyAgICAgICByZXR1cm4gcmVzdWx0OworICAgfQorCisgICAvKioKKyAgICAqIEZvcm1hdHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBhbmQgYXBwZW5kcyB0aGUgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4ncworICAgICogcGF0dGVybiwgd2l0aCBmb3JtYXQgZWxlbWVudHMgcmVwbGFjZWQgYnkgdGhlIGZvcm1hdHRlZCBvYmplY3RzLCB0byB0aGUKKyAgICAqIHByb3ZpZGVkIDxjb2RlPlN0cmluZ0J1ZmZlcjwvY29kZT4uCisgICAgKiA8cD4KKyAgICAqIFRoZSB0ZXh0IHN1YnN0aXR1dGVkIGZvciB0aGUgaW5kaXZpZHVhbCBmb3JtYXQgZWxlbWVudHMgaXMgZGVyaXZlZCBmcm9tCisgICAgKiB0aGUgY3VycmVudCBzdWJmb3JtYXQgb2YgdGhlIGZvcm1hdCBlbGVtZW50IGFuZCB0aGUKKyAgICAqIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gZWxlbWVudCBhdCB0aGUgZm9ybWF0IGVsZW1lbnQncyBhcmd1bWVudCBpbmRleAorICAgICogYXMgaW5kaWNhdGVkIGJ5IHRoZSBmaXJzdCBtYXRjaGluZyBsaW5lIG9mIHRoZSBmb2xsb3dpbmcgdGFibGUuIEFuCisgICAgKiBhcmd1bWVudCBpcyA8aT51bmF2YWlsYWJsZTwvaT4gaWYgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBpcworICAgICogPGNvZGU+bnVsbDwvY29kZT4gb3IgaGFzIGZld2VyIHRoYW4gYXJndW1lbnRJbmRleCsxIGVsZW1lbnRzLgorICAgICogPHA+CisgICAgKiA8dGFibGUgYm9yZGVyPTE+CisgICAgKiAgICA8dHI+CisgICAgKiAgICAgICA8dGg+U3ViZm9ybWF0CisgICAgKiAgICAgICA8dGg+QXJndW1lbnQKKyAgICAqICAgICAgIDx0aD5Gb3JtYXR0ZWQgVGV4dAorICAgICogICAgPHRyPgorICAgICogICAgICAgPHRkPjxpPmFueTwvaT4KKyAgICAqICAgICAgIDx0ZD48aT51bmF2YWlsYWJsZTwvaT4KKyAgICAqICAgICAgIDx0ZD48Y29kZT4ieyIgKyBhcmd1bWVudEluZGV4ICsgIn0iPC9jb2RlPgorICAgICogICAgPHRyPgorICAgICogICAgICAgPHRkPjxpPmFueTwvaT4KKyAgICAqICAgICAgIDx0ZD48Y29kZT5udWxsPC9jb2RlPgorICAgICogICAgICAgPHRkPjxjb2RlPiJudWxsIjwvY29kZT4KKyAgICAqICAgIDx0cj4KKyAgICAqICAgICAgIDx0ZD48Y29kZT5pbnN0YW5jZW9mIENob2ljZUZvcm1hdDwvY29kZT4KKyAgICAqICAgICAgIDx0ZD48aT5hbnk8L2k+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+c3ViZm9ybWF0LmZvcm1hdChhcmd1bWVudCkuaW5kZXhPZigneycpID49IDAgPzxicj4KKyAgICAqICAgICAgICAgICAobmV3IE1lc3NhZ2VGb3JtYXQoc3ViZm9ybWF0LmZvcm1hdChhcmd1bWVudCksIGdldExvY2FsZSgpKSkuZm9ybWF0KGFyZ3VtZW50KSA6CisgICAgKiAgICAgICAgICAgc3ViZm9ybWF0LmZvcm1hdChhcmd1bWVudCk8L2NvZGU+CisgICAgKiAgICA8dHI+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+IT0gbnVsbDwvY29kZT4KKyAgICAqICAgICAgIDx0ZD48aT5hbnk8L2k+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+c3ViZm9ybWF0LmZvcm1hdChhcmd1bWVudCk8L2NvZGU+CisgICAgKiAgICA8dHI+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+bnVsbDwvY29kZT4KKyAgICAqICAgICAgIDx0ZD48Y29kZT5pbnN0YW5jZW9mIE51bWJlcjwvY29kZT4KKyAgICAqICAgICAgIDx0ZD48Y29kZT5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoZ2V0TG9jYWxlKCkpLmZvcm1hdChhcmd1bWVudCk8L2NvZGU+CisgICAgKiAgICA8dHI+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+bnVsbDwvY29kZT4KKyAgICAqICAgICAgIDx0ZD48Y29kZT5pbnN0YW5jZW9mIERhdGU8L2NvZGU+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuU0hPUlQsIGdldExvY2FsZSgpKS5mb3JtYXQoYXJndW1lbnQpPC9jb2RlPgorICAgICogICAgPHRyPgorICAgICogICAgICAgPHRkPjxjb2RlPm51bGw8L2NvZGU+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+aW5zdGFuY2VvZiBTdHJpbmc8L2NvZGU+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+YXJndW1lbnQ8L2NvZGU+CisgICAgKiAgICA8dHI+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+bnVsbDwvY29kZT4KKyAgICAqICAgICAgIDx0ZD48aT5hbnk8L2k+CisgICAgKiAgICAgICA8dGQ+PGNvZGU+YXJndW1lbnQudG9TdHJpbmcoKTwvY29kZT4KKyAgICAqIDwvdGFibGU+CisgICAgKiA8cD4KKyAgICAqIElmIDxjb2RlPnBvczwvY29kZT4gaXMgbm9uLW51bGwsIGFuZCByZWZlcnMgdG8KKyAgICAqIDxjb2RlPkZpZWxkLkFSR1VNRU5UPC9jb2RlPiwgdGhlIGxvY2F0aW9uIG9mIHRoZSBmaXJzdCBmb3JtYXR0ZWQKKyAgICAqIHN0cmluZyB3aWxsIGJlIHJldHVybmVkLgorICAgICoKKyAgICAqIEBwYXJhbSBhcmd1bWVudHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB0byBiZSBmb3JtYXR0ZWQgYW5kIHN1YnN0aXR1dGVkLgorICAgICogQHBhcmFtIHJlc3VsdCB3aGVyZSB0ZXh0IGlzIGFwcGVuZGVkLgorICAgICogQHBhcmFtIHBvcyBPbiBpbnB1dDogYW4gYWxpZ25tZW50IGZpZWxkLCBpZiBkZXNpcmVkLgorICAgICogICAgICAgICAgICBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuCisgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbiBhcmd1bWVudCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBpcyBub3Qgb2YgdGhlIHR5cGUKKyAgICAqICAgICAgICAgICAgZXhwZWN0ZWQgYnkgdGhlIGZvcm1hdCBlbGVtZW50KHMpIHRoYXQgdXNlIGl0LgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBmaW5hbCBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdFtdIGFyZ3VtZW50cywgU3RyaW5nQnVmZmVyIHJlc3VsdCwKKyAgICAgICBGaWVsZFBvc2l0aW9uIHBvcykKKyAgIHsKKyAgICAgICByZXR1cm4gbWVzc2FnZUZvcm1hdC5mb3JtYXQoYXJndW1lbnRzLCByZXN1bHQsIHBvcyk7CisgICB9CisKKyAgIC8qKgorICAgICogQ3JlYXRlcyBhIE1lc3NhZ2VGb3JtYXQgd2l0aCB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQgdXNlcyBpdAorICAgICogdG8gZm9ybWF0IHRoZSBnaXZlbiBhcmd1bWVudHMuIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgICogPGJsb2NrcXVvdGU+CisgICAgKiAgICAgPGNvZGU+KG5ldyB7QGxpbmsgI01lc3NhZ2VGb3JtYXQoU3RyaW5nKSBNZXNzYWdlRm9ybWF0fShwYXR0ZXJuKSkue0BsaW5rICNmb3JtYXQoamF2YS5sYW5nLk9iamVjdFtdLCBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbikgZm9ybWF0fShhcmd1bWVudHMsIG5ldyBTdHJpbmdCdWZmZXIoKSwgbnVsbCkudG9TdHJpbmcoKTwvY29kZT4KKyAgICAqIDwvYmxvY2txdW90ZT4KKyAgICAqCisgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybiBpcyBpbnZhbGlkLAorICAgICogICAgICAgICAgICBvciBpZiBhbiBhcmd1bWVudCBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheQorICAgICogICAgICAgICAgICBpcyBub3Qgb2YgdGhlIHR5cGUgZXhwZWN0ZWQgYnkgdGhlIGZvcm1hdCBlbGVtZW50KHMpCisgICAgKiAgICAgICAgICAgIHRoYXQgdXNlIGl0LgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGZvcm1hdChTdHJpbmcgcGF0dGVybiwgT2JqZWN0W10gYXJndW1lbnRzKSB7CisgICAgICAgcmV0dXJuIGphdmEudGV4dC5NZXNzYWdlRm9ybWF0LmZvcm1hdChwYXR0ZXJuLCBhcmd1bWVudHMpOworICAgfQorCisgICAvLyBPdmVycmlkZXMKKyAgIC8qKgorICAgICogRm9ybWF0cyBhbiBhcnJheSBvZiBvYmplY3RzIGFuZCBhcHBlbmRzIHRoZSA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPidzCisgICAgKiBwYXR0ZXJuLCB3aXRoIGZvcm1hdCBlbGVtZW50cyByZXBsYWNlZCBieSB0aGUgZm9ybWF0dGVkIG9iamVjdHMsIHRvIHRoZQorICAgICogcHJvdmlkZWQgPGNvZGU+U3RyaW5nQnVmZmVyPC9jb2RlPi4KKyAgICAqIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgICogPGJsb2NrcXVvdGU+CisgICAgKiAgICAgPGNvZGU+e0BsaW5rICNmb3JtYXQoamF2YS5sYW5nLk9iamVjdFtdLCBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbikgZm9ybWF0fSgoT2JqZWN0W10pIGFyZ3VtZW50cywgcmVzdWx0LCBwb3MpPC9jb2RlPgorICAgICogPC9ibG9ja3F1b3RlPgorICAgICoKKyAgICAqIEBwYXJhbSBhcmd1bWVudHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB0byBiZSBmb3JtYXR0ZWQgYW5kIHN1YnN0aXR1dGVkLgorICAgICogQHBhcmFtIHJlc3VsdCB3aGVyZSB0ZXh0IGlzIGFwcGVuZGVkLgorICAgICogQHBhcmFtIHBvcyBPbiBpbnB1dDogYW4gYWxpZ25tZW50IGZpZWxkLCBpZiBkZXNpcmVkLgorICAgICogICAgICAgICAgICBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuCisgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbiBhcmd1bWVudCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBpcyBub3Qgb2YgdGhlIHR5cGUKKyAgICAqICAgICAgICAgICAgZXhwZWN0ZWQgYnkgdGhlIGZvcm1hdCBlbGVtZW50KHMpIHRoYXQgdXNlIGl0LgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBmaW5hbCBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdCBhcmd1bWVudHMsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpCisgICB7CisgICAgICAgcmV0dXJuIG1lc3NhZ2VGb3JtYXQuZm9ybWF0KGFyZ3VtZW50cywgcmVzdWx0LCBwb3MpOworICAgfQorCisKKyAgIC8qKgorICAgICogUGFyc2VzIHRoZSBzdHJpbmcuCisgICAgKgorICAgICogPHA+Q2F2ZWF0czogVGhlIHBhcnNlIG1heSBmYWlsIGluIGEgbnVtYmVyIG9mIGNpcmN1bXN0YW5jZXMuCisgICAgKiBGb3IgZXhhbXBsZToKKyAgICAqIDx1bD4KKyAgICAqIDxsaT5JZiBvbmUgb2YgdGhlIGFyZ3VtZW50cyBkb2VzIG5vdCBvY2N1ciBpbiB0aGUgcGF0dGVybi4KKyAgICAqIDxsaT5JZiB0aGUgZm9ybWF0IG9mIGFuIGFyZ3VtZW50IGxvc2VzIGluZm9ybWF0aW9uLCBzdWNoIGFzCisgICAgKiAgICAgd2l0aCBhIGNob2ljZSBmb3JtYXQgd2hlcmUgYSBsYXJnZSBudW1iZXIgZm9ybWF0cyB0byAibWFueSIuCisgICAgKiA8bGk+RG9lcyBub3QgeWV0IGhhbmRsZSByZWN1cnNpb24gKHdoZXJlCisgICAgKiAgICAgdGhlIHN1YnN0aXR1dGVkIHN0cmluZ3MgY29udGFpbiB7bn0gcmVmZXJlbmNlcy4pCisgICAgKiA8bGk+V2lsbCBub3QgYWx3YXlzIGZpbmQgYSBtYXRjaCAob3IgdGhlIGNvcnJlY3QgbWF0Y2gpCisgICAgKiAgICAgaWYgc29tZSBwYXJ0IG9mIHRoZSBwYXJzZSBpcyBhbWJpZ3VvdXMuCisgICAgKiAgICAgRm9yIGV4YW1wbGUsIGlmIHRoZSBwYXR0ZXJuICJ7MX0sezJ9IiBpcyB1c2VkIHdpdGggdGhlCisgICAgKiAgICAgc3RyaW5nIGFyZ3VtZW50cyB7ImEsYiIsICJjIn0sIGl0IHdpbGwgZm9ybWF0IGFzICJhLGIsYyIuCisgICAgKiAgICAgV2hlbiB0aGUgcmVzdWx0IGlzIHBhcnNlZCwgaXQgd2lsbCByZXR1cm4geyJhIiwgImIsYyJ9LgorICAgICogPGxpPklmIGEgc2luZ2xlIGFyZ3VtZW50IGlzIHBhcnNlZCBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc3RyaW5nLAorICAgICogICAgIHRoZW4gdGhlIGxhdGVyIHBhcnNlIHdpbnMuCisgICAgKiA8L3VsPgorICAgICogV2hlbiB0aGUgcGFyc2UgZmFpbHMsIHVzZSBQYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSB0byBmaW5kIG91dAorICAgICogd2hlcmUgaW4gdGhlIHN0cmluZyBkaWQgdGhlIHBhcnNpbmcgZmFpbGVkLiAgVGhlIHJldHVybmVkIGVycm9yCisgICAgKiBpbmRleCBpcyB0aGUgc3RhcnRpbmcgb2Zmc2V0IG9mIHRoZSBzdWItcGF0dGVybnMgdGhhdCB0aGUgc3RyaW5nCisgICAgKiBpcyBjb21wYXJpbmcgd2l0aC4gIEZvciBleGFtcGxlLCBpZiB0aGUgcGFyc2luZyBzdHJpbmcgIkFBQSB7MH0gQkJCIgorICAgICogaXMgY29tcGFyaW5nIGFnYWluc3QgdGhlIHBhdHRlcm4gIkFBRCB7MH0gQkJCIiwgdGhlIGVycm9yIGluZGV4IGlzCisgICAgKiAwLiBXaGVuIGFuIGVycm9yIG9jY3VycywgdGhlIGNhbGwgdG8gdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gbnVsbC4KKyAgICAqIElmIHRoZSBzb3VyY2UgaXMgbnVsbCwgcmV0dXJuIGFuIGVtcHR5IGFycmF5LgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBPYmplY3RbXSBwYXJzZShTdHJpbmcgc291cmNlLCBQYXJzZVBvc2l0aW9uIHBvcykgeworICAgICAgIHJldHVybiBtZXNzYWdlRm9ybWF0LnBhcnNlKHNvdXJjZSwgcG9zKTsKKyAgIH0KKworICAgLyoqCisgICAgKiBQYXJzZXMgdGV4dCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGdpdmVuIHN0cmluZyB0byBwcm9kdWNlIGFuIG9iamVjdAorICAgICogYXJyYXkuCisgICAgKiBUaGUgbWV0aG9kIG1heSBub3QgdXNlIHRoZSBlbnRpcmUgdGV4dCBvZiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICogPHA+CisgICAgKiBTZWUgdGhlIHtAbGluayAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKX0gbWV0aG9kIGZvciBtb3JlIGluZm9ybWF0aW9uCisgICAgKiBvbiBtZXNzYWdlIHBhcnNpbmcuCisgICAgKgorICAgICogQHBhcmFtIHNvdXJjZSBBIDxjb2RlPlN0cmluZzwvY29kZT4gd2hvc2UgYmVnaW5uaW5nIHNob3VsZCBiZSBwYXJzZWQuCisgICAgKiBAcmV0dXJuIEFuIDxjb2RlPk9iamVjdDwvY29kZT4gYXJyYXkgcGFyc2VkIGZyb20gdGhlIHN0cmluZy4KKyAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gaWYgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3BlY2lmaWVkIHN0cmluZworICAgICogICAgICAgICAgICBjYW5ub3QgYmUgcGFyc2VkLgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBPYmplY3RbXSBwYXJzZShTdHJpbmcgc291cmNlKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24geworICAgICAgIHJldHVybiBtZXNzYWdlRm9ybWF0LnBhcnNlKHNvdXJjZSk7CisgICB9CisKKyAgIC8qKgorICAgICogUGFyc2VzIHRleHQgZnJvbSBhIHN0cmluZyB0byBwcm9kdWNlIGFuIG9iamVjdCBhcnJheS4KKyAgICAqIDxwPgorICAgICogVGhlIG1ldGhvZCBhdHRlbXB0cyB0byBwYXJzZSB0ZXh0IHN0YXJ0aW5nIGF0IHRoZSBpbmRleCBnaXZlbiBieQorICAgICogPGNvZGU+cG9zPC9jb2RlPi4KKyAgICAqIElmIHBhcnNpbmcgc3VjY2VlZHMsIHRoZW4gdGhlIGluZGV4IG9mIDxjb2RlPnBvczwvY29kZT4gaXMgdXBkYXRlZAorICAgICogdG8gdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciB1c2VkIChwYXJzaW5nIGRvZXMgbm90IG5lY2Vzc2FyaWx5CisgICAgKiB1c2UgYWxsIGNoYXJhY3RlcnMgdXAgdG8gdGhlIGVuZCBvZiB0aGUgc3RyaW5nKSwgYW5kIHRoZSBwYXJzZWQKKyAgICAqIG9iamVjdCBhcnJheSBpcyByZXR1cm5lZC4gVGhlIHVwZGF0ZWQgPGNvZGU+cG9zPC9jb2RlPiBjYW4gYmUgdXNlZCB0bworICAgICogaW5kaWNhdGUgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB0aGUgbmV4dCBjYWxsIHRvIHRoaXMgbWV0aG9kLgorICAgICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVuIHRoZSBpbmRleCBvZiA8Y29kZT5wb3M8L2NvZGU+IGlzIG5vdAorICAgICogY2hhbmdlZCwgdGhlIGVycm9yIGluZGV4IG9mIDxjb2RlPnBvczwvY29kZT4gaXMgc2V0IHRvIHRoZSBpbmRleCBvZgorICAgICogdGhlIGNoYXJhY3RlciB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQsIGFuZCBudWxsIGlzIHJldHVybmVkLgorICAgICogPHA+CisgICAgKiBTZWUgdGhlIHtAbGluayAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKX0gbWV0aG9kIGZvciBtb3JlIGluZm9ybWF0aW9uCisgICAgKiBvbiBtZXNzYWdlIHBhcnNpbmcuCisgICAgKgorICAgICogQHBhcmFtIHNvdXJjZSBBIDxjb2RlPlN0cmluZzwvY29kZT4sIHBhcnQgb2Ygd2hpY2ggc2hvdWxkIGJlIHBhcnNlZC4KKyAgICAqIEBwYXJhbSBwb3MgQSA8Y29kZT5QYXJzZVBvc2l0aW9uPC9jb2RlPiBvYmplY3Qgd2l0aCBpbmRleCBhbmQgZXJyb3IKKyAgICAqICAgICAgICAgICAgaW5kZXggaW5mb3JtYXRpb24gYXMgZGVzY3JpYmVkIGFib3ZlLgorICAgICogQHJldHVybiBBbiA8Y29kZT5PYmplY3Q8L2NvZGU+IGFycmF5IHBhcnNlZCBmcm9tIHRoZSBzdHJpbmcuIEluIGNhc2Ugb2YKKyAgICAqICAgICAgICAgZXJyb3IsIHJldHVybnMgbnVsbC4KKyAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgPGNvZGU+cG9zPC9jb2RlPiBpcyBudWxsLgorICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgIHB1YmxpYyBPYmplY3QgcGFyc2VPYmplY3QoU3RyaW5nIHNvdXJjZSwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICByZXR1cm4gbWVzc2FnZUZvcm1hdC5wYXJzZShzb3VyY2UsIHBvcyk7CisgICB9CisKKyAgIC8qKgorICAgICogQ29udmVydCBhbiAnYXBvc3Ryb3BoZS1mcmllbmRseScgcGF0dGVybiBpbnRvIGEgc3RhbmRhcmQKKyAgICAqIHBhdHRlcm4uICBTdGFuZGFyZCBwYXR0ZXJucyB0cmVhdCBhbGwgYXBvc3Ryb3BoZXMgYXMKKyAgICAqIHF1b3Rlcywgd2hpY2ggaXMgcHJvYmxlbWF0aWMgaW4gc29tZSBsYW5ndWFnZXMsIGUuZy4gCisgICAgKiBGcmVuY2gsIHdoZXJlIGFwb3N0cm9waGUgaXMgY29tbW9ubHkgdXNlZC4gIFRoaXMgdXRpbGl0eQorICAgICogYXNzdW1lcyB0aGF0IG9ubHkgYW4gdW5wYWlyZWQgYXBvc3Ryb3BoZSBpbW1lZGlhdGVseSBiZWZvcmUKKyAgICAqIGEgYnJhY2UgaXMgYSB0cnVlIHF1b3RlLiAgT3RoZXIgdW5wYWlyZWQgYXBvc3Ryb3BoZXMgYXJlIHBhaXJlZCwKKyAgICAqIGFuZCB0aGUgcmVzdWx0aW5nIHN0YW5kYXJkIHBhdHRlcm4gc3RyaW5nIGlzIHJldHVybmVkLgorICAgICoKKyAgICAqIDxwPjxiPk5vdGU8L2I+IGl0IGlzIG5vdCBndWFyYW50ZWVkIHRoYXQgdGhlIHJldHVybmVkIHBhdHRlcm4KKyAgICAqIGlzIGluZGVlZCBhIHZhbGlkIHBhdHRlcm4uICBUaGUgb25seSBlZmZlY3QgaXMgdG8gY29udmVydAorICAgICogYmV0d2VlbiBwYXR0ZXJucyBoYXZpbmcgZGlmZmVyZW50IHF1b3Rpbmcgc2VtYW50aWNzLgorICAgICoKKyAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSAnYXBvc3Ryb3BoZS1mcmllbmRseScgcGF0dHRlcm4gdG8gY29udmVydAorICAgICogQHJldHVybiB0aGUgc3RhbmRhcmQgZXF1aXZhbGVudCBvZiB0aGUgb3JpZ2luYWwgcGF0dGVybgorICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAqIEBwcm92aXNpb25hbAorICAgICovCisgICBwdWJsaWMgc3RhdGljIFN0cmluZyBhdXRvUXVvdGVBcG9zdHJvcGhlKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIocGF0dGVybi5sZW5ndGgoKSoyKTsKKyAgICAgICBpbnQgc3RhdGUgPSBTVEFURV9JTklUSUFMOworICAgICAgIGludCBicmFjZUNvdW50ID0gMDsKKyAgICAgICBmb3IgKGludCBpID0gMCwgaiA9IHBhdHRlcm4ubGVuZ3RoKCk7IGkgPCBqOyArK2kpIHsKKyAgICAgICAgICAgY2hhciBjID0gcGF0dGVybi5jaGFyQXQoaSk7CisgICAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICAgICAgICAgY2FzZSBTVEFURV9JTklUSUFMOgorICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICBjYXNlIFNJTkdMRV9RVU9URToKKyAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX1NJTkdMRV9RVU9URTsKKyAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIGNhc2UgQ1VSTFlfQlJBQ0VfTEVGVDoKKyAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX01TR19FTEVNRU5UOworICAgICAgICAgICAgICAgICAgICsrYnJhY2VDb3VudDsKKyAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICBjYXNlIFNUQVRFX1NJTkdMRV9RVU9URToKKyAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgY2FzZSBTSU5HTEVfUVVPVEU6CisgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBTVEFURV9JTklUSUFMOworICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgY2FzZSBDVVJMWV9CUkFDRV9MRUZUOgorICAgICAgICAgICAgICAgY2FzZSBDVVJMWV9CUkFDRV9SSUdIVDoKKyAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX0lOX1FVT1RFOworICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX0lOSVRJQUw7CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICBjYXNlIFNUQVRFX0lOX1FVT1RFOgorICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICBjYXNlIFNJTkdMRV9RVU9URToKKyAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX0lOSVRJQUw7CisgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgY2FzZSBTVEFURV9NU0dfRUxFTUVOVDoKKyAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgY2FzZSBDVVJMWV9CUkFDRV9MRUZUOgorICAgICAgICAgICAgICAgICAgICsrYnJhY2VDb3VudDsKKyAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIGNhc2UgQ1VSTFlfQlJBQ0VfUklHSFQ6CisgICAgICAgICAgICAgICAgICAgaWYgKC0tYnJhY2VDb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gU1RBVEVfSU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgZGVmYXVsdDogLy8gTmV2ZXIgaGFwcGVucy4KKyAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICB9CisgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgfQorICAgICAgIC8vIEVuZCBvZiBzY2FuCisgICAgICAgaWYgKHN0YXRlID09IFNUQVRFX1NJTkdMRV9RVU9URSB8fCBzdGF0ZSA9PSBTVEFURV9JTl9RVU9URSkgeworICAgICAgICAgICBidWYuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgfQorICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1Zik7CisgICB9CisgICAKKyAgIC8qKgorICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIGNvcHkgb2YgdGhpcyBvYmplY3QuCisgICAgKgorICAgICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgaW5zdGFuY2UuCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICByZXR1cm4gbmV3IE1lc3NhZ2VGb3JtYXQoKGphdmEudGV4dC5NZXNzYWdlRm9ybWF0KW1lc3NhZ2VGb3JtYXQuY2xvbmUoKSk7CisgICB9CisKKyAgIC8qKgorICAgICogRXF1YWxpdHkgY29tcGFyaXNvbiBiZXR3ZWVuIHR3byBtZXNzYWdlIGZvcm1hdCBvYmplY3RzCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICB0cnkgeworICAgICAgICAgICByZXR1cm4gbWVzc2FnZUZvcm1hdC5lcXVhbHMoKChNZXNzYWdlRm9ybWF0KW9iaikubWVzc2FnZUZvcm1hdCk7CisgICAgICAgfQorICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQorICAgfQorCisgICAvKioKKyAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhlIG1lc3NhZ2UgZm9ybWF0IG9iamVjdC4KKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgIHJldHVybiBtZXNzYWdlRm9ybWF0Lmhhc2hDb2RlKCk7CisgICB9CisKKyAgIC8qKgorICAgICogUmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcuCisgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcKKyAgICAqIEBkcmFmdCBJQ1UgMy40LjIKKyAgICAqLworICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICByZXR1cm4gbWVzc2FnZUZvcm1hdC50b1BhdHRlcm4oKTsKKyAgIH0KKworICAgcHJpdmF0ZSBzdGF0aWMgRm9ybWF0IHVud3JhcChGb3JtYXQgZikgeworICAgICAgIGlmIChmIGluc3RhbmNlb2YgRGF0ZUZvcm1hdCkgeworICAgICAgICAgICByZXR1cm4gKChEYXRlRm9ybWF0KWYpLmRhdGVGb3JtYXQ7CisgICAgICAgfSBlbHNlIGlmIChmIGluc3RhbmNlb2YgTnVtYmVyRm9ybWF0KSB7CisgICAgICAgICAgIHJldHVybiAoKE51bWJlckZvcm1hdClmKS5udW1iZXJGb3JtYXQ7CisgICAgICAgfSBlbHNlIGlmIChmIGluc3RhbmNlb2YgTWVzc2FnZUZvcm1hdCkgeworICAgICAgICAgICByZXR1cm4gKChNZXNzYWdlRm9ybWF0KWYpLm1lc3NhZ2VGb3JtYXQ7CisgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgcmV0dXJuIGY7CisgICAgICAgfQorICAgfQorCisgICBwcml2YXRlIHN0YXRpYyBGb3JtYXQgd3JhcChGb3JtYXQgZikgeworICAgICAgIGlmIChmIGluc3RhbmNlb2YgamF2YS50ZXh0LkRhdGVGb3JtYXQpIHsKKyAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0KChqYXZhLnRleHQuRGF0ZUZvcm1hdClmKTsKKyAgICAgICB9IGVsc2UgaWYgKGYgaW5zdGFuY2VvZiBqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCkgeworICAgICAgICAgICByZXR1cm4gbmV3IERlY2ltYWxGb3JtYXQoKGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KWYpOworICAgICAgIH0gZWxzZSBpZiAoZiBpbnN0YW5jZW9mIGphdmEudGV4dC5NZXNzYWdlRm9ybWF0KSB7CisgICAgICAgICAgIHJldHVybiBuZXcgTWVzc2FnZUZvcm1hdCgoamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQpZik7CisgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgcmV0dXJuIGY7CisgICAgICAgfQorICAgfQorCisgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFNJTkdMRV9RVU9URSA9ICdcJyc7CisgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENVUkxZX0JSQUNFX0xFRlQgPSAneyc7CisgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENVUkxZX0JSQUNFX1JJR0hUID0gJ30nOworCisgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVEVfSU5JVElBTCA9IDA7CisgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVEVfU0lOR0xFX1FVT1RFID0gMTsKKyAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFURV9JTl9RVU9URSA9IDI7CisgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVEVfTVNHX0VMRU1FTlQgPSAzOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVtYmVyRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTQ3MmViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVtYmVyRm9ybWF0LmphdmEKQEAgLTAsMCArMSw3NzggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q7CitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CitpbXBvcnQgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBpcyB0aGUgYWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgYWxsIG51bWJlcgorICogZm9ybWF0cy4gVGhpcyBjbGFzcyBwcm92aWRlcyB0aGUgaW50ZXJmYWNlIGZvciBmb3JtYXR0aW5nIGFuZCBwYXJzaW5nCisgKiBudW1iZXJzLiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGFsc28gcHJvdmlkZXMgbWV0aG9kcyBmb3IgZGV0ZXJtaW5pbmcKKyAqIHdoaWNoIGxvY2FsZXMgaGF2ZSBudW1iZXIgZm9ybWF0cywgYW5kIHdoYXQgdGhlaXIgbmFtZXMgYXJlLgorICoKKyAqIDxwPjxzdHJvbmc+VGhpcyBpcyBhbiBlbmhhbmNlZCB2ZXJzaW9uIG9mIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gdGhhdAorICogaXMgYmFzZWQgb24gdGhlIHN0YW5kYXJkIHZlcnNpb24gaW4gdGhlIEpESy4gIE5ldyBvciBjaGFuZ2VkIGZ1bmN0aW9uYWxpdHkKKyAqIGlzIGxhYmVsZWQKKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4gb3IKKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPkNIQU5HRUQ8L2ZvbnQ+PC9zdHJvbmc+Ljwvc3Ryb25nPgorICoKKyAqIDxwPgorICogPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBoZWxwcyB5b3UgdG8gZm9ybWF0IGFuZCBwYXJzZSBudW1iZXJzIGZvciBhbnkgbG9jYWxlLgorICogWW91ciBjb2RlIGNhbiBiZSBjb21wbGV0ZWx5IGluZGVwZW5kZW50IG9mIHRoZSBsb2NhbGUgY29udmVudGlvbnMgZm9yCisgKiBkZWNpbWFsIHBvaW50cywgdGhvdXNhbmRzLXNlcGFyYXRvcnMsIG9yIGV2ZW4gdGhlIHBhcnRpY3VsYXIgZGVjaW1hbAorICogZGlnaXRzIHVzZWQsIG9yIHdoZXRoZXIgdGhlIG51bWJlciBmb3JtYXQgaXMgZXZlbiBkZWNpbWFsLgorICoKKyAqIDxwPgorICogVG8gZm9ybWF0IGEgbnVtYmVyIGZvciB0aGUgY3VycmVudCBMb2NhbGUsIHVzZSBvbmUgb2YgdGhlIGZhY3RvcnkKKyAqIGNsYXNzIG1ldGhvZHM6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAgbXlTdHJpbmcgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5mb3JtYXQobXlOdW1iZXIpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBJZiB5b3UgYXJlIGZvcm1hdHRpbmcgbXVsdGlwbGUgbnVtYmVycywgaXQgaXMKKyAqIG1vcmUgZWZmaWNpZW50IHRvIGdldCB0aGUgZm9ybWF0IGFuZCB1c2UgaXQgbXVsdGlwbGUgdGltZXMgc28gdGhhdAorICogdGhlIHN5c3RlbSBkb2Vzbid0IGhhdmUgdG8gZmV0Y2ggdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NhbAorICogbGFuZ3VhZ2UgYW5kIGNvdW50cnkgY29udmVudGlvbnMgbXVsdGlwbGUgdGltZXMuCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAqIGZvciAoaW50IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgeworICogICAgIG91dHB1dC5wcmludGxuKG5mLmZvcm1hdChteU51bWJlcltpXSkgKyAiOyAiKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogVG8gZm9ybWF0IGEgbnVtYmVyIGZvciBhIGRpZmZlcmVudCBMb2NhbGUsIHNwZWNpZnkgaXQgaW4gdGhlCisgKiBjYWxsIHRvIDxjb2RlPmdldEluc3RhbmNlPC9jb2RlPi4KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuRlJFTkNIKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogWW91IGNhbiBhbHNvIHVzZSBhIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gdG8gcGFyc2UgbnVtYmVyczoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIG15TnVtYmVyID0gbmYucGFyc2UobXlTdHJpbmcpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBVc2UgPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+IG9yIDxjb2RlPmdldE51bWJlckluc3RhbmNlPC9jb2RlPiB0byBnZXQgdGhlCisgKiBub3JtYWwgbnVtYmVyIGZvcm1hdC4gVXNlIDxjb2RlPmdldEludGVnZXJJbnN0YW5jZTwvY29kZT4gdG8gZ2V0IGFuCisgKiBpbnRlZ2VyIG51bWJlciBmb3JtYXQuIFVzZSA8Y29kZT5nZXRDdXJyZW5jeUluc3RhbmNlPC9jb2RlPiB0byBnZXQgdGhlCisgKiBjdXJyZW5jeSBudW1iZXIgZm9ybWF0LiBBbmQgdXNlIDxjb2RlPmdldFBlcmNlbnRJbnN0YW5jZTwvY29kZT4gdG8gZ2V0IGEKKyAqIGZvcm1hdCBmb3IgZGlzcGxheWluZyBwZXJjZW50YWdlcy4gV2l0aCB0aGlzIGZvcm1hdCwgYSBmcmFjdGlvbiBsaWtlCisgKiAwLjUzIGlzIGRpc3BsYXllZCBhcyA1MyUuCisgKgorICogPHA+CisgKiBZb3UgY2FuIGFsc28gY29udHJvbCB0aGUgZGlzcGxheSBvZiBudW1iZXJzIHdpdGggc3VjaCBtZXRob2RzIGFzCisgKiA8Y29kZT5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+LgorICogSWYgeW91IHdhbnQgZXZlbiBtb3JlIGNvbnRyb2wgb3ZlciB0aGUgZm9ybWF0IG9yIHBhcnNpbmcsCisgKiBvciB3YW50IHRvIGdpdmUgeW91ciB1c2VycyBtb3JlIGNvbnRyb2wsCisgKiB5b3UgY2FuIHRyeSBjYXN0aW5nIHRoZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IHlvdSBnZXQgZnJvbSB0aGUgZmFjdG9yeSBtZXRob2RzCisgKiB0byBhIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+LiBUaGlzIHdpbGwgd29yayBmb3IgdGhlIHZhc3QgbWFqb3JpdHkKKyAqIG9mIGxvY2FsZXM7IGp1c3QgcmVtZW1iZXIgdG8gcHV0IGl0IGluIGEgPGNvZGU+dHJ5PC9jb2RlPiBibG9jayBpbiBjYXNlIHlvdQorICogZW5jb3VudGVyIGFuIHVudXN1YWwgb25lLgorICoKKyAqIDxwPgorICogTnVtYmVyRm9ybWF0IGlzIGRlc2lnbmVkIHN1Y2ggdGhhdCBzb21lIGNvbnRyb2xzCisgKiB3b3JrIGZvciBmb3JtYXR0aW5nIGFuZCBvdGhlcnMgd29yayBmb3IgcGFyc2luZy4gIFRoZSBmb2xsb3dpbmcgaXMKKyAqIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgZWFjaCB0aGVzZSBjb250cm9sIG1ldGhvZHMsCisgKiA8cD4KKyAqIHNldFBhcnNlSW50ZWdlck9ubHkgOiBvbmx5IGFmZmVjdHMgcGFyc2luZywgZS5nLgorICogaWYgdHJ1ZSwgICIzNDU2Ljc4IiAtPiAzNDU2IChhbmQgbGVhdmVzIHRoZSBwYXJzZSBwb3NpdGlvbiBqdXN0IGFmdGVyICc2JykKKyAqIGlmIGZhbHNlLCAiMzQ1Ni43OCIgLT4gMzQ1Ni43OCAoYW5kIGxlYXZlcyB0aGUgcGFyc2UgcG9zaXRpb24ganVzdCBhZnRlciAnOCcpCisgKiBUaGlzIGlzIGluZGVwZW5kZW50IG9mIGZvcm1hdHRpbmcuICBJZiB5b3Ugd2FudCB0byBub3Qgc2hvdyBhIGRlY2ltYWwgcG9pbnQKKyAqIHdoZXJlIHRoZXJlIG1pZ2h0IGJlIG5vIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCwgdXNlCisgKiBzZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24gb24gRGVjaW1hbEZvcm1hdC4KKyAqIDxwPgorICogWW91IGNhbiBhbHNvIHVzZSBmb3JtcyBvZiB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IGFuZCA8Y29kZT5mb3JtYXQ8L2NvZGU+CisgKiBtZXRob2RzIHdpdGggPGNvZGU+UGFyc2VQb3NpdGlvbjwvY29kZT4gYW5kIDxjb2RlPkZpZWxkUG9zaXRpb248L2NvZGU+IHRvCisgKiBhbGxvdyB5b3UgdG86CisgKiA8dWw+CisgKiA8bGk+IHByb2dyZXNzaXZlbHkgcGFyc2UgdGhyb3VnaCBwaWVjZXMgb2YgYSBzdHJpbmcKKyAqIDxsaT4gYWxpZ24gdGhlIGRlY2ltYWwgcG9pbnQgYW5kIG90aGVyIGFyZWFzCisgKiA8L3VsPgorICogRm9yIGV4YW1wbGUsIHlvdSBjYW4gYWxpZ24gbnVtYmVycyBpbiB0d28gd2F5czoKKyAqIDxvbD4KKyAqIDxsaT4gSWYgeW91IGFyZSB1c2luZyBhIG1vbm9zcGFjZWQgZm9udCB3aXRoIHNwYWNpbmcgZm9yIGFsaWdubWVudCwKKyAqICAgICAgeW91IGNhbiBwYXNzIHRoZSA8Y29kZT5GaWVsZFBvc2l0aW9uPC9jb2RlPiBpbiB5b3VyIGZvcm1hdCBjYWxsLCB3aXRoCisgKiAgICAgIDxjb2RlPmZpZWxkPC9jb2RlPiA9IDxjb2RlPklOVEVHRVJfRklFTEQ8L2NvZGU+LiBPbiBvdXRwdXQsCisgKiAgICAgIDxjb2RlPmdldEVuZEluZGV4PC9jb2RlPiB3aWxsIGJlIHNldCB0byB0aGUgb2Zmc2V0IGJldHdlZW4gdGhlCisgKiAgICAgIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBpbnRlZ2VyIGFuZCB0aGUgZGVjaW1hbC4gQWRkCisgKiAgICAgIChkZXNpcmVkU3BhY2VDb3VudCAtIGdldEVuZEluZGV4KSBzcGFjZXMgYXQgdGhlIGZyb250IG9mIHRoZSBzdHJpbmcuCisgKgorICogPGxpPiBJZiB5b3UgYXJlIHVzaW5nIHByb3BvcnRpb25hbCBmb250cywKKyAqICAgICAgaW5zdGVhZCBvZiBwYWRkaW5nIHdpdGggc3BhY2VzLCBtZWFzdXJlIHRoZSB3aWR0aAorICogICAgICBvZiB0aGUgc3RyaW5nIGluIHBpeGVscyBmcm9tIHRoZSBzdGFydCB0byA8Y29kZT5nZXRFbmRJbmRleDwvY29kZT4uCisgKiAgICAgIFRoZW4gbW92ZSB0aGUgcGVuIGJ5CisgKiAgICAgIChkZXNpcmVkUGl4ZWxXaWR0aCAtIHdpZHRoVG9BbGlnbm1lbnRQb2ludCkgYmVmb3JlIGRyYXdpbmcgdGhlIHRleHQuCisgKiAgICAgIEl0IGFsc28gd29ya3Mgd2hlcmUgdGhlcmUgaXMgbm8gZGVjaW1hbCwgYnV0IHBvc3NpYmx5IGFkZGl0aW9uYWwKKyAqICAgICAgY2hhcmFjdGVycyBhdCB0aGUgZW5kLCBlLmcuLCB3aXRoIHBhcmVudGhlc2VzIGluIG5lZ2F0aXZlCisgKiAgICAgIG51bWJlcnM6ICIoMTIpIiBmb3IgLTEyLgorICogPC9vbD4KKyAqCisgKiA8aDQ+U3luY2hyb25pemF0aW9uPC9oND4KKyAqIDxwPgorICogTnVtYmVyIGZvcm1hdHMgYXJlIGdlbmVyYWxseSBub3Qgc3luY2hyb25pemVkLiBJdCBpcyByZWNvbW1lbmRlZCB0byBjcmVhdGUgCisgKiBzZXBhcmF0ZSBmb3JtYXQgaW5zdGFuY2VzIGZvciBlYWNoIHRocmVhZC4gSWYgbXVsdGlwbGUgdGhyZWFkcyBhY2Nlc3MgYSBmb3JtYXQKKyAqIGNvbmN1cnJlbnRseSwgaXQgbXVzdCBiZSBzeW5jaHJvbml6ZWQgZXh0ZXJuYWxseS4gCisgKiA8cD4KKyAqCisgKiA8aDQ+RGVjaW1hbEZvcm1hdDwvaDQ+CisgKiA8cD5EZWNpbWFsRm9ybWF0IGlzIHRoZSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBOdW1iZXJGb3JtYXQsIGFuZCB0aGUKKyAqIE51bWJlckZvcm1hdCBBUEkgaXMgZXNzZW50aWFsbHkgYW4gYWJzdHJhY3Rpb24gZnJvbSBEZWNpbWFsRm9ybWF0J3MgQVBJLgorICogUmVmZXIgdG8gRGVjaW1hbEZvcm1hdCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIEFQSS48L3A+CisgKgorICogc2VlICAgICAgICAgIERlY2ltYWxGb3JtYXQKKyAqIHNlZSAgICAgICAgICBqYXZhLnRleHQuQ2hvaWNlRm9ybWF0CisgKiBAYXV0aG9yICAgICAgIE1hcmsgRGF2aXMKKyAqIEBhdXRob3IgICAgICAgSGVsZW5hIFNoaWgKKyAqIEBhdXRob3IgICAgICAgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgTnVtYmVyRm9ybWF0IGV4dGVuZHMgRm9ybWF0IHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAxOworCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGphdmEudGV4dC5OdW1iZXJGb3JtYXQgbnVtYmVyRm9ybWF0OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAcGFyYW0gZGVsZWdhdGUgdGhlIE51bWJlckZvcm1hdCB0byB3aGljaCB0byBkZWxlZ2F0ZQorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQoamF2YS50ZXh0Lk51bWJlckZvcm1hdCBkZWxlZ2F0ZSkgeworICAgICAgICB0aGlzLm51bWJlckZvcm1hdCA9IGRlbGVnYXRlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yIHRvIG1pcnJvciBKYXZhJ3MgZGVmYXVsdCBwdWJsaWMKKyAgICAgKiBjb25zdHJ1Y3Rvci4gIEphdmEncyBpcyBub3QgY2FsbGFibGUgYXMgYSBwdWJsaWMgQVBJLCBzaW5jZQorICAgICAqIHRoZWlyIE51bWJlckZvcm1hdCBpcyBhYnN0cmFjdCwgc28gdGhpcyBpcyBvbmx5IHVzZWZ1bCB0bworICAgICAqIHN1YmNsYXNzZXMuICBJbiBnZW5lcmFsLCBzdWJjbGFzc2VzIHdpbGwgbm90IHdvcmsgdW5sZXNzCisgICAgICogdGhleSBtYW5pcHVsYXRlIHRoZSBkZWxlZ2F0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyRm9ybWF0KCkgeworICAgIAl0aGlzLm51bWJlckZvcm1hdCA9IGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBjb25zdGFudCB1c2VkIHRvIGNvbnN0cnVjdCBhIEZpZWxkUG9zaXRpb24gb2JqZWN0LiBTaWduaWZpZXMgdGhhdAorICAgICAqIHRoZSBwb3NpdGlvbiBvZiB0aGUgaW50ZWdlciBwYXJ0IG9mIGEgZm9ybWF0dGVkIG51bWJlciBzaG91bGQgYmUgcmV0dXJuZWQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRmllbGRQb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOVEVHRVJfRklFTEQgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBjb25zdGFudCB1c2VkIHRvIGNvbnN0cnVjdCBhIEZpZWxkUG9zaXRpb24gb2JqZWN0LiBTaWduaWZpZXMgdGhhdAorICAgICAqIHRoZSBwb3NpdGlvbiBvZiB0aGUgZnJhY3Rpb24gcGFydCBvZiBhIGZvcm1hdHRlZCBudW1iZXIgc2hvdWxkIGJlIHJldHVybmVkLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZpZWxkUG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGUkFDVElPTl9GSUVMRCA9IDE7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPkNIQU5HRUQ8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRm9ybWF0IGFuIG9iamVjdC4gIENoYW5nZTogcmVjb2duaXplcyA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPgorICAgICAqIGFuZCA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3RzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdCBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmZvcm1hdChudW1iZXIsIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgT2JqZWN0IHBhcnNlT2JqZWN0KFN0cmluZyBzb3VyY2UsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbikgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LnBhcnNlKHNvdXJjZSwgcGFyc2VQb3NpdGlvbik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsaXphdGlvbiBvZiBmb3JtYXQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoZG91YmxlIG51bWJlcikgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmZvcm1hdChudW1iZXIpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU3BlY2lhbGl6YXRpb24gb2YgZm9ybWF0LgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0KQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0KGxvbmcgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuZm9ybWF0KG51bWJlcik7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRvIGZvcm1hdCBhIEJpZ0ludGVnZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoQmlnSW50ZWdlciBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5mb3JtYXQobnVtYmVyKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNwZWNpYWxpemF0aW9uIG9mIGZvcm1hdC4KKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQjZm9ybWF0KE9iamVjdCwgU3RyaW5nQnVmZmVyLCBGaWVsZFBvc2l0aW9uKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmZvcm1hdChudW1iZXIsIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsaXphdGlvbiBvZiBmb3JtYXQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuZm9ybWF0KG51bWJlciwgdG9BcHBlbmRUbywgcG9zKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBGb3JtYXQgYSBCaWdJbnRlZ2VyLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0LCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoQmlnSW50ZWdlciBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmZvcm1hdChudW1iZXIsIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBMb25nIGlmIHBvc3NpYmxlIChlLmcuLCB3aXRoaW4gdGhlIHJhbmdlIFtMb25nLk1JTl9WQUxVRSwKKyAgICAgKiBMb25nLk1BWF9WQUxVRV0gYW5kIHdpdGggbm8gZGVjaW1hbHMpLCBvdGhlcndpc2UgYSBEb3VibGUuCisgICAgICogSWYgSW50ZWdlck9ubHkgaXMgc2V0LCB3aWxsIHN0b3AgYXQgYSBkZWNpbWFsCisgICAgICogcG9pbnQgKG9yIGVxdWl2YWxlbnQ7IGUuZy4sIGZvciByYXRpb25hbCBudW1iZXJzICIxIDIvMyIsIHdpbGwgc3RvcAorICAgICAqIGFmdGVyIHRoZSAxKS4KKyAgICAgKiBEb2VzIG5vdCB0aHJvdyBhbiBleGNlcHRpb247IGlmIG5vIG9iamVjdCBjYW4gYmUgcGFyc2VkLCBpbmRleCBpcworICAgICAqIHVuY2hhbmdlZCEKKyAgICAgKiBAc2VlICNpc1BhcnNlSW50ZWdlck9ubHkKKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQjcGFyc2VPYmplY3QoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgcGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbikgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LnBhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24pOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUGFyc2VzIHRleHQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBnaXZlbiBzdHJpbmcgdG8gcHJvZHVjZSBhIG51bWJlci4KKyAgICAgKiBUaGUgbWV0aG9kIG1pZ2h0IG5vdCB1c2UgdGhlIGVudGlyZSB0ZXh0IG9mIHRoZSBnaXZlbiBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCBBIFN0cmluZyB3aG9zZSBiZWdpbm5pbmcgc2hvdWxkIGJlIHBhcnNlZC4KKyAgICAgKiBAcmV0dXJuIEEgTnVtYmVyIHBhcnNlZCBmcm9tIHRoZSBzdHJpbmcuCisgICAgICogQGV4Y2VwdGlvbiBQYXJzZUV4Y2VwdGlvbiBpZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzcGVjaWZpZWQgc3RyaW5nIAorICAgICAqIGNhbm5vdCBiZSBwYXJzZWQuCisgICAgICogQHNlZSAjZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE51bWJlciBwYXJzZShTdHJpbmcgdGV4dCkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0KTsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgZm9ybWF0IHdpbGwgcGFyc2UgbnVtYmVycyBhcyBpbnRlZ2VycyBvbmx5LgorICAgICAqIEZvciBleGFtcGxlIGluIHRoZSBFbmdsaXNoIGxvY2FsZSwgd2l0aCBQYXJzZUludGVnZXJPbmx5IHRydWUsIHRoZQorICAgICAqIHN0cmluZyAiMTIzNC4iIHdvdWxkIGJlIHBhcnNlZCBhcyB0aGUgaW50ZWdlciB2YWx1ZSAxMjM0IGFuZCBwYXJzaW5nCisgICAgICogd291bGQgc3RvcCBhdCB0aGUgIi4iIGNoYXJhY3Rlci4gIFRoZSBkZWNpbWFsIHNlcGFyYXRvciBhY2NlcHRlZAorICAgICAqIGJ5IHRoZSBwYXJzZSBvcGVyYXRpb24gaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgZGV0ZXJtaW5lZCBieSB0aGUKKyAgICAgKiBzdWJjbGFzcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyB3aWxsIHBhcnNlIGludGVnZXJzIG9ubHkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1BhcnNlSW50ZWdlck9ubHkoKSB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuaXNQYXJzZUludGVnZXJPbmx5KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHdoZXRoZXIgb3Igbm90IG51bWJlcnMgc2hvdWxkIGJlIHBhcnNlZCBhcyBpbnRlZ2VycyBvbmx5LgorICAgICAqIEBwYXJhbSB2YWx1ZSB0cnVlIGlmIHRoaXMgc2hvdWxkIHBhcnNlIGludGVnZXJzIG9ubHkKKyAgICAgKiBAc2VlICNpc1BhcnNlSW50ZWdlck9ubHkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYXJzZUludGVnZXJPbmx5KGJvb2xlYW4gdmFsdWUpIHsKKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldFBhcnNlSW50ZWdlck9ubHkodmFsdWUpOworICAgIH0KKyAgICAgICAgCisgICAgLy89PT09PT09PT09PT09PSBMb2NhbGUgU3R1ZmYgPT09PT09PT09PT09PT09PT09PT09CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlZmF1bHQgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogVGhlIGRlZmF1bHQgZm9ybWF0IGlzIG9uZSBvZiB0aGUgc3R5bGVzIHByb3ZpZGVkIGJ5IHRoZSBvdGhlcgorICAgICAqIGZhY3RvcnkgbWV0aG9kczogZ2V0TnVtYmVySW5zdGFuY2UsIGdldEludGVnZXJJbnN0YW5jZSwKKyAgICAgKiBnZXRDdXJyZW5jeUluc3RhbmNlIG9yIGdldFBlcmNlbnRJbnN0YW5jZS4KKyAgICAgKiBFeGFjdGx5IHdoaWNoIG9uZSBpcyBsb2NhbGUtZGVwZW5kZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIE5VTUJFUlNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlZmF1bHQgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogVGhlIGRlZmF1bHQgZm9ybWF0IGlzIG9uZSBvZiB0aGUgc3R5bGVzIHByb3ZpZGVkIGJ5IHRoZSBvdGhlcgorICAgICAqIGZhY3RvcnkgbWV0aG9kczogZ2V0TnVtYmVySW5zdGFuY2UsIGdldEN1cnJlbmN5SW5zdGFuY2Ugb3IgZ2V0UGVyY2VudEluc3RhbmNlLgorICAgICAqIEV4YWN0bHkgd2hpY2ggb25lIGlzIGxvY2FsZS1kZXBlbmRlbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW5zdGFuY2UoTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZShpbkxvY2FsZSksIE5VTUJFUlNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlZmF1bHQgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogVGhlIGRlZmF1bHQgZm9ybWF0IGlzIG9uZSBvZiB0aGUgc3R5bGVzIHByb3ZpZGVkIGJ5IHRoZSBvdGhlcgorICAgICAqIGZhY3RvcnkgbWV0aG9kczogZ2V0TnVtYmVySW5zdGFuY2UsIGdldEN1cnJlbmN5SW5zdGFuY2Ugb3IgZ2V0UGVyY2VudEluc3RhbmNlLgorICAgICAqIEV4YWN0bHkgd2hpY2ggb25lIGlzIGxvY2FsZS1kZXBlbmRlbnQuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXRJbnN0YW5jZShVTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgTlVNQkVSU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGdlbmVyYWwtcHVycG9zZSBudW1iZXIgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIE51bWJlckZvcm1hdCBnZXROdW1iZXJJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBOVU1CRVJTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgZ2VuZXJhbC1wdXJwb3NlIG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldE51bWJlckluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBOVU1CRVJTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgZ2VuZXJhbC1wdXJwb3NlIG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0TnVtYmVySW5zdGFuY2UoVUxvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoaW5Mb2NhbGUsIE5VTUJFUlNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaW50ZWdlciBudW1iZXIgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4gVGhlCisgICAgICogcmV0dXJuZWQgbnVtYmVyIGZvcm1hdCBpcyBjb25maWd1cmVkIHRvIHJvdW5kIGZsb2F0aW5nIHBvaW50IG51bWJlcnMKKyAgICAgKiB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIHVzaW5nIElFRUUgaGFsZi1ldmVuIHJvdW5kaW5nIChzZWUge0BsaW5rIAorICAgICAqIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNST1VORF9IQUxGX0VWRU4gUk9VTkRfSEFMRl9FVkVOfSkgZm9yIGZvcm1hdHRpbmcsCisgICAgICogYW5kIHRvIHBhcnNlIG9ubHkgdGhlIGludGVnZXIgcGFydCBvZiBhbiBpbnB1dCBzdHJpbmcgKHNlZSB7QGxpbmsKKyAgICAgKiAjaXNQYXJzZUludGVnZXJPbmx5IGlzUGFyc2VJbnRlZ2VyT25seX0pLgorICAgICAqCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGludGVnZXIgdmFsdWVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW50ZWdlckluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIElOVEVHRVJTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGludGVnZXIgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuIFRoZQorICAgICAqIHJldHVybmVkIG51bWJlciBmb3JtYXQgaXMgY29uZmlndXJlZCB0byByb3VuZCBmbG9hdGluZyBwb2ludCBudW1iZXJzCisgICAgICogdG8gdGhlIG5lYXJlc3QgaW50ZWdlciB1c2luZyBJRUVFIGhhbGYtZXZlbiByb3VuZGluZyAoc2VlIHtAbGluayAKKyAgICAgKiBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjUk9VTkRfSEFMRl9FVkVOIFJPVU5EX0hBTEZfRVZFTn0pIGZvciBmb3JtYXR0aW5nLAorICAgICAqIGFuZCB0byBwYXJzZSBvbmx5IHRoZSBpbnRlZ2VyIHBhcnQgb2YgYW4gaW5wdXQgc3RyaW5nIChzZWUge0BsaW5rCisgICAgICogI2lzUGFyc2VJbnRlZ2VyT25seSBpc1BhcnNlSW50ZWdlck9ubHl9KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbkxvY2FsZSB0aGUgbG9jYWxlIGZvciB3aGljaCBhIG51bWJlciBmb3JtYXQgaXMgbmVlZGVkCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGludGVnZXIgdmFsdWVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW50ZWdlckluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBJTlRFR0VSU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpbnRlZ2VyIG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLiBUaGUKKyAgICAgKiByZXR1cm5lZCBudW1iZXIgZm9ybWF0IGlzIGNvbmZpZ3VyZWQgdG8gcm91bmQgZmxvYXRpbmcgcG9pbnQgbnVtYmVycworICAgICAqIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgdXNpbmcgSUVFRSBoYWxmLWV2ZW4gcm91bmRpbmcgKHNlZSB7QGxpbmsgCisgICAgICogY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI1JPVU5EX0hBTEZfRVZFTiBST1VORF9IQUxGX0VWRU59KSBmb3IgZm9ybWF0dGluZywKKyAgICAgKiBhbmQgdG8gcGFyc2Ugb25seSB0aGUgaW50ZWdlciBwYXJ0IG9mIGFuIGlucHV0IHN0cmluZyAoc2VlIHtAbGluaworICAgICAqICNpc1BhcnNlSW50ZWdlck9ubHkgaXNQYXJzZUludGVnZXJPbmx5fSkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5Mb2NhbGUgdGhlIGxvY2FsZSBmb3Igd2hpY2ggYSBudW1iZXIgZm9ybWF0IGlzIG5lZWRlZAorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBpbnRlZ2VyIHZhbHVlcworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW50ZWdlckluc3RhbmNlKFVMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGluTG9jYWxlLCBJTlRFR0VSU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGN1cnJlbmN5IGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGN1cnJlbmN5CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0Q3VycmVuY3lJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBDVVJSRU5DWVNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjdXJyZW5jeSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBjdXJyZW5jeQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZShpbkxvY2FsZSksIENVUlJFTkNZU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGN1cnJlbmN5IGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGN1cnJlbmN5CisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXRDdXJyZW5jeUluc3RhbmNlKFVMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGluTG9jYWxlLCBDVVJSRU5DWVNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBwZXJjZW50YWdlIGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIHBlcmNlbnRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0UGVyY2VudEluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIFBFUkNFTlRTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcGVyY2VudGFnZSBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBwZXJjZW50cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKGluTG9jYWxlKSwgUEVSQ0VOVFNUWUxFKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBwZXJjZW50YWdlIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIHBlcmNlbnRzCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXRQZXJjZW50SW5zdGFuY2UoVUxvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoaW5Mb2NhbGUsIFBFUkNFTlRTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJucyBhIHNjaWVudGlmaWMgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgc2NpZW50aWZpYyBudW1iZXIgZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0U2NpZW50aWZpY0luc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIFNDSUVOVElGSUNTVFlMRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJucyBhIHNjaWVudGlmaWMgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgc2NpZW50aWZpYyBudW1iZXIgZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBTQ0lFTlRJRklDU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybnMgYSBzY2llbnRpZmljIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIHNjaWVudGlmaWMgbnVtYmVyIGZvcm1hdAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0U2NpZW50aWZpY0luc3RhbmNlKFVMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGluTG9jYWxlLCBTQ0lFTlRJRklDU1RZTEUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBsaXN0IG9mIExvY2FsZXMgZm9yIHdoaWNoIE51bWJlckZvcm1hdHMgYXJlIGF2YWlsYWJsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgcmV0dXJuIGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBsaXN0IG9mIExvY2FsZXMgZm9yIHdoaWNoIE51bWJlckZvcm1hdHMgYXJlIGF2YWlsYWJsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSB7CisgICAgICAgIGlmIChhdmFpbGFibGVVTG9jYWxlcyA9PSBudWxsKSB7CisgICAgICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0gamF2YS50ZXh0Lk51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgICAgICBVTG9jYWxlW10gdWxvY2FsZXMgPSBuZXcgVUxvY2FsZVtsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB1bG9jYWxlc1tpXSA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXZhaWxhYmxlVUxvY2FsZXMgPSB1bG9jYWxlczsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKFVMb2NhbGVbXSlhdmFpbGFibGVVTG9jYWxlcy5jbG9uZSgpOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBVTG9jYWxlW10gYXZhaWxhYmxlVUxvY2FsZXM7CisgICAgICAgIAorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgZ3JvdXBpbmcgaXMgdXNlZCBpbiB0aGlzIGZvcm1hdC4gRm9yIGV4YW1wbGUsIGluIHRoZQorICAgICAqIGVuX1VTIGxvY2FsZSwgd2l0aCBncm91cGluZyBvbiwgdGhlIG51bWJlciAxMjM0NTY3IHdpbGwgYmUgZm9ybWF0dGVkCisgICAgICogYXMgIjEsMjM0LDU2NyIuIFRoZSBncm91cGluZyBzZXBhcmF0b3IgYXMgd2VsbCBhcyB0aGUgc2l6ZSBvZiBlYWNoIGdyb3VwCisgICAgICogaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgaXMgZGV0ZXJtaW5lZCBieSBzdWJjbGFzc2VzIG9mIE51bWJlckZvcm1hdC4KKyAgICAgKiBHcm91cGluZyBhZmZlY3RzIGJvdGggcGFyc2luZyBhbmQgZm9ybWF0dGluZy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgZ3JvdXBpbmcgaXMgdXNlZAorICAgICAqIEBzZWUgI3NldEdyb3VwaW5nVXNlZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzR3JvdXBpbmdVc2VkKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmlzR3JvdXBpbmdVc2VkKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHdoZXRoZXIgb3Igbm90IGdyb3VwaW5nIHdpbGwgYmUgdXNlZCBpbiB0aGlzIGZvcm1hdC4gIEdyb3VwaW5nCisgICAgICogYWZmZWN0cyBib3RoIHBhcnNpbmcgYW5kIGZvcm1hdHRpbmcuCisgICAgICogQHNlZSAjaXNHcm91cGluZ1VzZWQKKyAgICAgKiBAcGFyYW0gbmV3VmFsdWUgdHJ1ZSB0byB1c2UgZ3JvdXBpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0R3JvdXBpbmdVc2VkKGJvb2xlYW4gbmV3VmFsdWUpIHsKKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldEdyb3VwaW5nVXNlZChuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgaW50ZWdlciBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyA0MCwgd2hpY2ggc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUuCisgICAgICogV2hlbiBmb3JtYXR0aW5nLCB0aGUgZXhhY3QgYmVoYXZpb3Igd2hlbiB0aGlzIHZhbHVlIGlzIGV4Y2VlZGVkIGlzCisgICAgICogc3ViY2xhc3Mtc3BlY2lmaWMuICBXaGVuIHBhcnNpbmcsIHRoaXMgaGFzIG5vIGVmZmVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cworICAgICAqIEBzZWUgI3NldE1heGltdW1JbnRlZ2VyRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiBUaGlzIG11c3QgYmUgPj0gbWluaW11bUludGVnZXJEaWdpdHMuICBJZiB0aGUKKyAgICAgKiBuZXcgdmFsdWUgZm9yIG1heGltdW1JbnRlZ2VyRGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUgY3VycmVudCB2YWx1ZQorICAgICAqIG9mIG1pbmltdW1JbnRlZ2VyRGlnaXRzLCB0aGVuIG1pbmltdW1JbnRlZ2VyRGlnaXRzIHdpbGwgYWxzbyBiZSBzZXQgdG8KKyAgICAgKiB0aGUgbmV3IHZhbHVlLgorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgdG8gYmUgc2hvd247IGlmCisgICAgICogbGVzcyB0aGFuIHplcm8sIHRoZW4gemVybyBpcyB1c2VkLiAgU3ViY2xhc3NlcyBtaWdodCBlbmZvcmNlIGFuCisgICAgICogdXBwZXIgbGltaXQgdG8gdGhpcyB2YWx1ZSBhcHByb3ByaWF0ZSB0byB0aGUgbnVtZXJpYyB0eXBlIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1heGltdW1JbnRlZ2VyRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBudW1iZXJGb3JtYXQuc2V0TWF4aW11bUludGVnZXJEaWdpdHMobmV3VmFsdWUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMSwgd2hpY2ggc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUuCisgICAgICogV2hlbiBmb3JtYXR0aW5nLCBpZiB0aGlzIHZhbHVlIGlzIG5vdCByZWFjaGVkLCBudW1iZXJzIGFyZSBwYWRkZWQgb24gdGhlCisgICAgICogbGVmdCB3aXRoIHRoZSBsb2NhbGUtc3BlY2lmaWMgJzAnIGNoYXJhY3RlciB0byBlbnN1cmUgYXQgbGVhc3QgdGhpcworICAgICAqIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cy4gIFdoZW4gcGFyc2luZywgdGhpcyBoYXMgbm8gZWZmZWN0LgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzCisgICAgICogQHNlZSAjc2V0TWluaW11bUludGVnZXJEaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgaW50ZWdlciBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICBUaGlzIG11c3QgYmUgPD0gbWF4aW11bUludGVnZXJEaWdpdHMuICBJZiB0aGUKKyAgICAgKiBuZXcgdmFsdWUgZm9yIG1pbmltdW1JbnRlZ2VyRGlnaXRzIGlzIG1vcmUgdGhhbiB0aGUgY3VycmVudCB2YWx1ZQorICAgICAqIG9mIG1heGltdW1JbnRlZ2VyRGlnaXRzLCB0aGVuIG1heGltdW1JbnRlZ2VyRGlnaXRzIHdpbGwgYWxzbyBiZSBzZXQgdG8KKyAgICAgKiB0aGUgbmV3IHZhbHVlLgorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSB0aGUgbWluaW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgdG8gYmUgc2hvd247IGlmCisgICAgICogbGVzcyB0aGFuIHplcm8sIHRoZW4gemVybyBpcyB1c2VkLiBTdWJjbGFzc2VzIG1pZ2h0IGVuZm9yY2UgYW4KKyAgICAgKiB1cHBlciBsaW1pdCB0byB0aGlzIHZhbHVlIGFwcHJvcHJpYXRlIHRvIHRoZSBudW1lcmljIHR5cGUgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEBzZWUgI2dldE1pbmltdW1JbnRlZ2VyRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWluaW11bUludGVnZXJEaWdpdHMoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIG51bWJlckZvcm1hdC5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb24KKyAgICAgKiBwb3J0aW9uIG9mIGEgbnVtYmVyLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMywgd2hpY2ggc3ViY2xhc3NlcworICAgICAqIGNhbiBvdmVycmlkZS4gIFdoZW4gZm9ybWF0dGluZywgdGhlIGV4YWN0IGJlaGF2aW9yIHdoZW4gdGhpcworICAgICAqIHZhbHVlIGlzIGV4Y2VlZGVkIGlzIHN1YmNsYXNzLXNwZWNpZmljLiAgV2hlbiBwYXJzaW5nLCB0aGlzIGhhcyAKKyAgICAgKiBubyBlZmZlY3QuCisgICAgICogQHJldHVybiB0aGUgbWF4aW11bSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzCisgICAgICogQHNlZSAjc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wIAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0LmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gVGhpcyBtdXN0IGJlID49IG1pbmltdW1GcmFjdGlvbkRpZ2l0cy4gIElmIHRoZQorICAgICAqIG5ldyB2YWx1ZSBmb3IgbWF4aW11bUZyYWN0aW9uRGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUgY3VycmVudCB2YWx1ZQorICAgICAqIG9mIG1pbmltdW1GcmFjdGlvbkRpZ2l0cywgdGhlbiBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgd2lsbCBhbHNvIGJlIHNldCB0bworICAgICAqIHRoZSBuZXcgdmFsdWUuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIHRoZSBtYXhpbXVtIG51bWJlciBvZiBmcmFjdGlvbiBkaWdpdHMgdG8gYmUgc2hvd247IGlmCisgICAgICogbGVzcyB0aGFuIHplcm8sIHRoZW4gemVybyBpcyB1c2VkLiBUaGUgY29uY3JldGUgc3ViY2xhc3MgbWF5IGVuZm9yY2UgYW4KKyAgICAgKiB1cHBlciBsaW1pdCB0byB0aGlzIHZhbHVlIGFwcHJvcHJpYXRlIHRvIHRoZSBudW1lcmljIHR5cGUgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEBzZWUgI2dldE1heGltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhuZXdWYWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb24gcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMCwgd2hpY2ggc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUuCisgICAgICogV2hlbiBmb3JtYXR0aW5nLCBpZiB0aGlzIHZhbHVlIGlzIG5vdCByZWFjaGVkLCBudW1iZXJzIGFyZSBwYWRkZWQgb24KKyAgICAgKiB0aGUgcmlnaHQgd2l0aCB0aGUgbG9jYWxlLXNwZWNpZmljICcwJyBjaGFyYWN0ZXIgdG8gZW5zdXJlIGF0IGxlYXN0CisgICAgICogdGhpcyBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzLiAgV2hlbiBwYXJzaW5nLCB0aGlzIGhhcyBubyBlZmZlY3QuCisgICAgICogQHJldHVybiB0aGUgbWluaW11bSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzCisgICAgICogQHNlZSAjc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb24gcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgVGhpcyBtdXN0IGJlIDw9IG1heGltdW1GcmFjdGlvbkRpZ2l0cy4gIElmIHRoZQorICAgICAqIG5ldyB2YWx1ZSBmb3IgbWluaW11bUZyYWN0aW9uRGlnaXRzIGV4Y2VlZHMgdGhlIGN1cnJlbnQgdmFsdWUKKyAgICAgKiBvZiBtYXhpbXVtRnJhY3Rpb25EaWdpdHMsIHRoZW4gbWF4aW11bUZyYWN0aW9uRGlnaXRzIHdpbGwgYWxzbyBiZSBzZXQgdG8KKyAgICAgKiB0aGUgbmV3IHZhbHVlLgorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSB0aGUgbWluaW11bSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzIHRvIGJlIHNob3duOyBpZgorICAgICAqIGxlc3MgdGhhbiB6ZXJvLCB0aGVuIHplcm8gaXMgdXNlZC4gIFN1YmNsYXNzZXMgbWlnaHQgZW5mb3JjZSBhbgorICAgICAqIHVwcGVyIGxpbWl0IHRvIHRoaXMgdmFsdWUgYXBwcm9wcmlhdGUgdG8gdGhlIG51bWVyaWMgdHlwZSBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHNlZSAjZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBudW1iZXJGb3JtYXQuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKG5ld1ZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdHJpbmcgc3VpdGFibGUgZm9yIGRlYnVnZ2luZy4KKyAgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBkZWJ1Z2dpbmcKKyAgICAgKiBAZHJhZnQgSUNVIDMuNC4yCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC50b1N0cmluZygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IE51bWJlckZvcm1hdCgoamF2YS50ZXh0Lk51bWJlckZvcm1hdCludW1iZXJGb3JtYXQuY2xvbmUoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgZXF1YWxzLiAgVHdvIE51bWJlckZvcm1hdHMgYXJlIGVxdWFsIGlmIHRoZXkgYXJlIG9mIHRoZSBzYW1lIGNsYXNzCisgICAgICogYW5kIHRoZSBzZXR0aW5ncyAoZ3JvdXBpbmdVc2VkLCBwYXJzZUludGVnZXJPbmx5LCBtYXhpbXVtSW50ZWdlckRpZ2l0cywgZXRjLgorICAgICAqIGFyZSBlcXVhbC4KKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBvYmplY3QgdG8gY29tcGFyZSBhZ2FpbnN0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaXMgZXF1YWwgdG8gdGhpcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5lcXVhbHMoKChOdW1iZXJGb3JtYXQpb2JqKS5udW1iZXJGb3JtYXQpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgaGFzaENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0Lmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT1wcml2YXRlcz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEluc3RhbmNlKFVMb2NhbGUgZGVzaXJlZExvY2FsZSwgaW50IGNob2ljZSkgeworICAgICAgICBMb2NhbGUgbG9jYWxlID0gZGVzaXJlZExvY2FsZS50b0xvY2FsZSgpOworICAgICAgICBqYXZhLnRleHQuTnVtYmVyRm9ybWF0IG5mID0gbnVsbDsKKyAgICAgICAgc3dpdGNoIChjaG9pY2UpIHsKKyAgICAgICAgY2FzZSBOVU1CRVJTVFlMRTogbmYgPSBqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZSk7IGJyZWFrOworICAgICAgICBjYXNlIENVUlJFTkNZU1RZTEU6IG5mID0gamF2YS50ZXh0Lk51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZSk7IGJyZWFrOworICAgICAgICBjYXNlIFBFUkNFTlRTVFlMRTogbmYgPSBqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShsb2NhbGUpOyBicmVhazsKKyAgICAgICAgY2FzZSBTQ0lFTlRJRklDU1RZTEU6IG5mID0gbmV3IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KCIjRTAiLCBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMobG9jYWxlKSk7IAorICAgICAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDEwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIElOVEVHRVJTVFlMRTogCisgICAgICAgICAgICBpZiAodW5jaGVja2VkKSB7CisgICAgICAgICAgICAgICAgdW5jaGVja2VkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgQ2xhc3NbXSBhcmdzID0geyBqYXZhLnV0aWwuTG9jYWxlLmNsYXNzIH07CisgICAgICAgICAgICAgICAgICAgIGludGVnZXIxNEFQSSA9IGphdmEudGV4dC5OdW1iZXJGb3JtYXQuY2xhc3MuZ2V0TWV0aG9kKCJnZXRJbnRlZ2VySW5zdGFuY2UiLCBhcmdzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGludGVnZXIxNEFQSSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0W10gYXJncyA9IHsgbG9jYWxlIH07CisgICAgICAgICAgICAgICAgICAgIG5mID0gKGphdmEudGV4dC5OdW1iZXJGb3JtYXQpaW50ZWdlcjE0QVBJLmludm9rZShudWxsLCBhcmdzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBpbnRlZ2VyMTRBUEkgPSBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGludGVnZXIxNEFQSSA9IG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAvLyBzaG91bGRuJ3QgaGFwcGVuLCBidXQgbG9jYWxlIG1pZ2h0IGJlIG51bGwsIGZvciBleGFtcGxlCisgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB3ZSBkb24ndCB3YW50IHRvIHRocm93IGF3YXkgb3VyIG1ldGhvZCBiZWNhdXNlIHNvbWVvbmUKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FsbGVkIHVzIHdpdGggYSBiYWQgcGFyYW1ldGVyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG5mID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBuZiA9IGphdmEudGV4dC5OdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UobG9jYWxlKTsgCisgICAgICAgICAgICAgICAgbmYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDApOworICAgICAgICAgICAgICAgIG5mLnNldFBhcnNlSW50ZWdlck9ubHkodHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IE51bWJlckZvcm1hdChuZik7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gdW5jaGVja2VkID0gdHJ1ZTsKKyAgICBwcml2YXRlIHN0YXRpYyBNZXRob2QgaW50ZWdlcjE0QVBJOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOVU1CRVJTVFlMRSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTkNZU1RZTEUgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBQRVJDRU5UU1RZTEUgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTQ0lFTlRJRklDU1RZTEUgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTlRFR0VSU1RZTEUgPSA0OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvU2ltcGxlRGF0ZUZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3RleHQvU2ltcGxlRGF0ZUZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwYmFkMGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdGV4dC9TaW1wbGVEYXRlRm9ybWF0LmphdmEKQEAgLTAsMCArMSwzODIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBpcyBhIGNvbmNyZXRlIGNsYXNzIGZvciBmb3JtYXR0aW5nIGFuZAorICogcGFyc2luZyBkYXRlcyBpbiBhIGxvY2FsZS1zZW5zaXRpdmUgbWFubmVyLiBJdCBhbGxvd3MgZm9yIGZvcm1hdHRpbmcKKyAqIChkYXRlIC0+IHRleHQpLCBwYXJzaW5nICh0ZXh0IC0+IGRhdGUpLCBhbmQgbm9ybWFsaXphdGlvbi4KKyAqCisgKiA8cD4KKyAqIDxjb2RlPlNpbXBsZURhdGVGb3JtYXQ8L2NvZGU+IGFsbG93cyB5b3UgdG8gc3RhcnQgYnkgY2hvb3NpbmcKKyAqIGFueSB1c2VyLWRlZmluZWQgcGF0dGVybnMgZm9yIGRhdGUtdGltZSBmb3JtYXR0aW5nLiBIb3dldmVyLCB5b3UKKyAqIGFyZSBlbmNvdXJhZ2VkIHRvIGNyZWF0ZSBhIGRhdGUtdGltZSBmb3JtYXR0ZXIgd2l0aCBlaXRoZXIKKyAqIDxjb2RlPmdldFRpbWVJbnN0YW5jZTwvY29kZT4sIDxjb2RlPmdldERhdGVJbnN0YW5jZTwvY29kZT4sIG9yCisgKiA8Y29kZT5nZXREYXRlVGltZUluc3RhbmNlPC9jb2RlPiBpbiA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPi4gRWFjaAorICogb2YgdGhlc2UgY2xhc3MgbWV0aG9kcyBjYW4gcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlciBpbml0aWFsaXplZAorICogd2l0aCBhIGRlZmF1bHQgZm9ybWF0IHBhdHRlcm4uIFlvdSBtYXkgbW9kaWZ5IHRoZSBmb3JtYXQgcGF0dGVybgorICogdXNpbmcgdGhlIDxjb2RlPmFwcGx5UGF0dGVybjwvY29kZT4gbWV0aG9kcyBhcyBkZXNpcmVkLgorICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdXNpbmcgdGhlc2UgbWV0aG9kcywgc2VlCisgKiB7QGxpbmsgRGF0ZUZvcm1hdH0uCisgKgorICogPHA+CisgKiA8c3Ryb25nPlRpbWUgRm9ybWF0IFN5bnRheDo8L3N0cm9uZz4KKyAqIDxwPgorICogVG8gc3BlY2lmeSB0aGUgdGltZSBmb3JtYXQgdXNlIGEgPGVtPnRpbWUgcGF0dGVybjwvZW0+IHN0cmluZy4KKyAqIEluIHRoaXMgcGF0dGVybiwgYWxsIEFTQ0lJIGxldHRlcnMgYXJlIHJlc2VydmVkIGFzIHBhdHRlcm4gbGV0dGVycywKKyAqIHdoaWNoIGFyZSBkZWZpbmVkIGFzIHRoZSBmb2xsb3dpbmc6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBTeW1ib2wgICBNZWFuaW5nICAgICAgICAgICAgICAgICBQcmVzZW50YXRpb24gICAgICAgIEV4YW1wbGUKKyAqIC0tLS0tLSAgIC0tLS0tLS0gICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLSAgICAgICAgLS0tLS0tLQorICogRyAgICAgICAgZXJhIGRlc2lnbmF0b3IgICAgICAgICAgKFRleHQpICAgICAgICAgICAgICBBRAorICogeSYjeDIwMjA7ICAgICAgIHllYXIgICAgICAgICAgICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMTk5NgorICogWSogICAgICAgeWVhciAod2VlayBvZiB5ZWFyKSAgICAgKE51bWJlcikgICAgICAgICAgICAxOTk3CisgKiB1KiAgICAgICBleHRlbmRlZCB5ZWFyICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDQ2MDEKKyAqIE0gICAgICAgIG1vbnRoIGluIHllYXIgICAgICAgICAgIChUZXh0ICYgTnVtYmVyKSAgICAgSnVseSAmIDA3CisgKiBkICAgICAgICBkYXkgaW4gbW9udGggICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDEwCisgKiBoICAgICAgICBob3VyIGluIGFtL3BtICgxfjEyKSAgICAoTnVtYmVyKSAgICAgICAgICAgIDEyCisgKiBIICAgICAgICBob3VyIGluIGRheSAoMH4yMykgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDAKKyAqIG0gICAgICAgIG1pbnV0ZSBpbiBob3VyICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMzAKKyAqIHMgICAgICAgIHNlY29uZCBpbiBtaW51dGUgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgNTUKKyAqIFMgICAgICAgIGZyYWN0aW9uYWwgc2Vjb25kICAgICAgIChOdW1iZXIpICAgICAgICAgICAgOTc4CisgKiBFICAgICAgICBkYXkgb2Ygd2VlayAgICAgICAgICAgICAoVGV4dCkgICAgICAgICAgICAgIFR1ZXNkYXkKKyAqIGUqICAgICAgIGRheSBvZiB3ZWVrIChsb2NhbCAxfjcpIChOdW1iZXIpICAgICAgICAgICAgMgorICogRCAgICAgICAgZGF5IGluIHllYXIgICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAxODkKKyAqIEYgICAgICAgIGRheSBvZiB3ZWVrIGluIG1vbnRoICAgIChOdW1iZXIpICAgICAgICAgICAgMiAoMm5kIFdlZCBpbiBKdWx5KQorICogdyAgICAgICAgd2VlayBpbiB5ZWFyICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAyNworICogVyAgICAgICAgd2VlayBpbiBtb250aCAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAyCisgKiBhICAgICAgICBhbS9wbSBtYXJrZXIgICAgICAgICAgICAoVGV4dCkgICAgICAgICAgICAgIFBNCisgKiBrICAgICAgICBob3VyIGluIGRheSAoMX4yNCkgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDI0CisgKiBLICAgICAgICBob3VyIGluIGFtL3BtICgwfjExKSAgICAoTnVtYmVyKSAgICAgICAgICAgIDAKKyAqIHogICAgICAgIHRpbWUgem9uZSAgICAgICAgICAgICAgIChUZXh0KSAgICAgICAgICAgICAgUGFjaWZpYyBTdGFuZGFyZCBUaW1lCisgKiBaICAgICAgICB0aW1lIHpvbmUgKFJGQyA4MjIpICAgICAoTnVtYmVyKSAgICAgICAgICAgIC0wODAwCisgKiB2ICAgICAgICB0aW1lIHpvbmUgKGdlbmVyaWMpICAgICAoVGV4dCkgICAgICAgICAgICAgIFBhY2lmaWMgVGltZQorICogZyogICAgICAgSnVsaWFuIGRheSAgICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAyNDUxMzM0CisgKiBBKiAgICAgICBtaWxsaXNlY29uZHMgaW4gZGF5ICAgICAoTnVtYmVyKSAgICAgICAgICAgIDY5NTQwMDAwCisgKiAnICAgICAgICBlc2NhcGUgZm9yIHRleHQgICAgICAgICAoRGVsaW1pdGVyKSAgICAgICAgICdEYXRlPScKKyAqICcnICAgICAgIHNpbmdsZSBxdW90ZSAgICAgICAgICAgIChMaXRlcmFsKSAgICAgICAgICAgJ28nJ2Nsb2NrJworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8dHQ+PGI+KjwvYj48L3R0PiBUaGVzZSBpdGVtcyBhcmUgbm90IHN1cHBvcnRlZCBieSBKYXZhJ3MgU2ltcGxlRGF0ZUZvcm1hdC48YnI+CisgKiA8dHQ+PGI+JiN4MjAyMDs8L2I+PC90dD4gSUNVIGludGVycHJldHMgYSBzaW5nbGUgJ3knIGRpZmZlcmVudGx5IHRoYW4gSmF2YS48L3A+CisgKiA8cD4KKyAqIFRoZSBjb3VudCBvZiBwYXR0ZXJuIGxldHRlcnMgZGV0ZXJtaW5lIHRoZSBmb3JtYXQuCisgKiA8cD4KKyAqIDxzdHJvbmc+KFRleHQpPC9zdHJvbmc+OiA0IG9yIG1vcmUgcGF0dGVybiBsZXR0ZXJzLS11c2UgZnVsbCBmb3JtLAorICogJmx0OyA0LS11c2Ugc2hvcnQgb3IgYWJicmV2aWF0ZWQgZm9ybSBpZiBvbmUgZXhpc3RzLgorICogPHA+CisgKiA8c3Ryb25nPihOdW1iZXIpPC9zdHJvbmc+OiB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzLiBTaG9ydGVyCisgKiBudW1iZXJzIGFyZSB6ZXJvLXBhZGRlZCB0byB0aGlzIGFtb3VudC4gWWVhciBpcyBoYW5kbGVkIHNwZWNpYWxseTsKKyAqIHRoYXQgaXMsIGlmIHRoZSBjb3VudCBvZiAneScgaXMgMiwgdGhlIFllYXIgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gMiBkaWdpdHMuCisgKiAoZS5nLiwgaWYgInl5eXkiIHByb2R1Y2VzICIxOTk3IiwgInl5IiBwcm9kdWNlcyAiOTciLikKKyAqIFVubGlrZSBvdGhlciBmaWVsZHMsIGZyYWN0aW9uYWwgc2Vjb25kcyBhcmUgcGFkZGVkIG9uIHRoZSByaWdodCB3aXRoIHplcm8uCisgKiA8cD4KKyAqIDxzdHJvbmc+KFRleHQgJiBOdW1iZXIpPC9zdHJvbmc+OiAzIG9yIG92ZXIsIHVzZSB0ZXh0LCBvdGhlcndpc2UgdXNlIG51bWJlci4KKyAqIDxwPgorICogQW55IGNoYXJhY3RlcnMgaW4gdGhlIHBhdHRlcm4gdGhhdCBhcmUgbm90IGluIHRoZSByYW5nZXMgb2YgWydhJy4uJ3onXQorICogYW5kIFsnQScuLidaJ10gd2lsbCBiZSB0cmVhdGVkIGFzIHF1b3RlZCB0ZXh0LiBGb3IgaW5zdGFuY2UsIGNoYXJhY3RlcnMKKyAqIGxpa2UgJzonLCAnLicsICcgJywgJyMnIGFuZCAnQCcgd2lsbCBhcHBlYXIgaW4gdGhlIHJlc3VsdGluZyB0aW1lIHRleHQKKyAqIGV2ZW4gdGhleSBhcmUgbm90IGVtYnJhY2VkIHdpdGhpbiBzaW5nbGUgcXVvdGVzLgorICogPHA+CisgKiBBIHBhdHRlcm4gY29udGFpbmluZyBhbnkgaW52YWxpZCBwYXR0ZXJuIGxldHRlciB3aWxsIHJlc3VsdCBpbiBhIHRocm93bgorICogZXhjZXB0aW9uIGR1cmluZyBmb3JtYXR0aW5nIG9yIHBhcnNpbmcuCisgKgorICogPHA+CisgKiA8c3Ryb25nPkV4YW1wbGVzIFVzaW5nIHRoZSBVUyBMb2NhbGU6PC9zdHJvbmc+CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBGb3JtYXQgUGF0dGVybiAgICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHQKKyAqIC0tLS0tLS0tLS0tLS0tICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0KKyAqICJ5eXl5Lk1NLmRkIEcgJ2F0JyBISDptbTpzcyB2dnZ2IiAtPj4gIDE5OTYuMDcuMTAgQUQgYXQgMTU6MDg6NTYgUGFjaWZpYyBUaW1lCisgKiAiRUVFLCBNTU0gZCwgJyd5eSIgICAgICAgICAgICAgICAgLT4+ICBXZWQsIEp1bHkgMTAsICc5NgorICogImg6bW0gYSIgICAgICAgICAgICAgICAgICAgICAgICAgIC0+PiAgMTI6MDggUE0KKyAqICJoaCAnbycnY2xvY2snIGEsIHp6enoiICAgICAgICAgICAtPj4gIDEyIG8nY2xvY2sgUE0sIFBhY2lmaWMgRGF5bGlnaHQgVGltZQorICogIks6bW0gYSwgdnZ2IiAgICAgICAgICAgICAgICAgICAgIC0+PiAgMDowMCBQTSwgUFQKKyAqICJ5eXl5eS5NTU1NTS5kZCBHR0cgaGg6bW0gYWFhIiAgICAtPj4gIDAxOTk2Lkp1bHkuMTAgQUQgMTI6MDggUE0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPHN0cm9uZz5Db2RlIFNhbXBsZTo8L3N0cm9uZz4KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIFNpbXBsZVRpbWVab25lIHBkdCA9IG5ldyBTaW1wbGVUaW1lWm9uZSgtOCAqIDYwICogNjAgKiAxMDAwLCAiUFNUIik7CisgKiBwZHQuc2V0U3RhcnRSdWxlKENhbGVuZGFyLkFQUklMLCAxLCBDYWxlbmRhci5TVU5EQVksIDIqNjAqNjAqMTAwMCk7CisgKiBwZHQuc2V0RW5kUnVsZShDYWxlbmRhci5PQ1RPQkVSLCAtMSwgQ2FsZW5kYXIuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICogPGJyPgorICogLy8gRm9ybWF0IHRoZSBjdXJyZW50IHRpbWUuCisgKiBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdHRlcgorICogICAgID0gbmV3IFNpbXBsZURhdGVGb3JtYXQgKCJ5eXl5Lk1NLmRkIEcgJ2F0JyBoaDptbTpzcyBhIHp6eiIpOworICogRGF0ZSBjdXJyZW50VGltZV8xID0gbmV3IERhdGUoKTsKKyAqIFN0cmluZyBkYXRlU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdChjdXJyZW50VGltZV8xKTsKKyAqIDxicj4KKyAqIC8vIFBhcnNlIHRoZSBwcmV2aW91cyBzdHJpbmcgYmFjayBpbnRvIGEgRGF0ZS4KKyAqIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgKiBEYXRlIGN1cnJlbnRUaW1lXzIgPSBmb3JtYXR0ZXIucGFyc2UoZGF0ZVN0cmluZywgcG9zKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogSW4gdGhlIGV4YW1wbGUsIHRoZSB0aW1lIHZhbHVlIDxjb2RlPmN1cnJlbnRUaW1lXzI8L2NvZGU+IG9idGFpbmVkIGZyb20KKyAqIHBhcnNpbmcgd2lsbCBiZSBlcXVhbCB0byA8Y29kZT5jdXJyZW50VGltZV8xPC9jb2RlPi4gSG93ZXZlciwgdGhleSBtYXkgbm90IGJlCisgKiBlcXVhbCBpZiB0aGUgYW0vcG0gbWFya2VyICdhJyBpcyBsZWZ0IG91dCBmcm9tIHRoZSBmb3JtYXQgcGF0dGVybiB3aGlsZQorICogdGhlICJob3VyIGluIGFtL3BtIiBwYXR0ZXJuIHN5bWJvbCBpcyB1c2VkLiBUaGlzIGluZm9ybWF0aW9uIGxvc3MgY2FuCisgKiBoYXBwZW4gd2hlbiBmb3JtYXR0aW5nIHRoZSB0aW1lIGluIFBNLgorICoKKyAqIDxwPgorICogV2hlbiBwYXJzaW5nIGEgZGF0ZSBzdHJpbmcgdXNpbmcgdGhlIGFiYnJldmlhdGVkIHllYXIgcGF0dGVybiAoInl5IiksCisgKiBTaW1wbGVEYXRlRm9ybWF0IG11c3QgaW50ZXJwcmV0IHRoZSBhYmJyZXZpYXRlZCB5ZWFyCisgKiByZWxhdGl2ZSB0byBzb21lIGNlbnR1cnkuICBJdCBkb2VzIHRoaXMgYnkgYWRqdXN0aW5nIGRhdGVzIHRvIGJlCisgKiB3aXRoaW4gODAgeWVhcnMgYmVmb3JlIGFuZCAyMCB5ZWFycyBhZnRlciB0aGUgdGltZSB0aGUgU2ltcGxlRGF0ZUZvcm1hdAorICogaW5zdGFuY2UgaXMgY3JlYXRlZC4gRm9yIGV4YW1wbGUsIHVzaW5nIGEgcGF0dGVybiBvZiAiTU0vZGQveXkiIGFuZCBhCisgKiBTaW1wbGVEYXRlRm9ybWF0IGluc3RhbmNlIGNyZWF0ZWQgb24gSmFuIDEsIDE5OTcsICB0aGUgc3RyaW5nCisgKiAiMDEvMTEvMTIiIHdvdWxkIGJlIGludGVycHJldGVkIGFzIEphbiAxMSwgMjAxMiB3aGlsZSB0aGUgc3RyaW5nICIwNS8wNC82NCIKKyAqIHdvdWxkIGJlIGludGVycHJldGVkIGFzIE1heSA0LCAxOTY0LgorICogRHVyaW5nIHBhcnNpbmcsIG9ubHkgc3RyaW5ncyBjb25zaXN0aW5nIG9mIGV4YWN0bHkgdHdvIGRpZ2l0cywgYXMgZGVmaW5lZCBieQorICoge0BsaW5rIGphdmEubGFuZy5DaGFyYWN0ZXIjaXNEaWdpdChjaGFyKX0sIHdpbGwgYmUgcGFyc2VkIGludG8gdGhlIGRlZmF1bHQKKyAqIGNlbnR1cnkuCisgKiBBbnkgb3RoZXIgbnVtZXJpYyBzdHJpbmcsIHN1Y2ggYXMgYSBvbmUgZGlnaXQgc3RyaW5nLCBhIHRocmVlIG9yIG1vcmUgZGlnaXQKKyAqIHN0cmluZywgb3IgYSB0d28gZGlnaXQgc3RyaW5nIHRoYXQgaXNuJ3QgYWxsIGRpZ2l0cyAoZm9yIGV4YW1wbGUsICItMSIpLCBpcworICogaW50ZXJwcmV0ZWQgbGl0ZXJhbGx5LiAgU28gIjAxLzAyLzMiIG9yICIwMS8wMi8wMDMiIGFyZSBwYXJzZWQsIHVzaW5nIHRoZQorICogc2FtZSBwYXR0ZXJuLCBhcyBKYW4gMiwgMyBBRC4gIExpa2V3aXNlLCAiMDEvMDIvLTMiIGlzIHBhcnNlZCBhcyBKYW4gMiwgNCBCQy4KKyAqCisgKiA8cD4KKyAqIElmIHRoZSB5ZWFyIHBhdHRlcm4gZG9lcyBub3QgaGF2ZSBleGFjdGx5IHR3byAneScgY2hhcmFjdGVycywgdGhlIHllYXIgaXMKKyAqIGludGVycHJldGVkIGxpdGVyYWxseSwgcmVnYXJkbGVzcyBvZiB0aGUgbnVtYmVyIG9mIGRpZ2l0cy4gIFNvIHVzaW5nIHRoZQorICogcGF0dGVybiAiTU0vZGQveXl5eSIsICIwMS8xMS8xMiIgcGFyc2VzIHRvIEphbiAxMSwgMTIgQS5ELgorICoKKyAqIDxwPgorICogV2hlbiBudW1lcmljIGZpZWxkcyBhYnV0IG9uZSBhbm90aGVyIGRpcmVjdGx5LCB3aXRoIG5vIGludGVydmVuaW5nIGRlbGltaXRlcgorICogY2hhcmFjdGVycywgdGhleSBjb25zdGl0dXRlIGEgcnVuIG9mIGFidXR0aW5nIG51bWVyaWMgZmllbGRzLiAgU3VjaCBydW5zIGFyZQorICogcGFyc2VkIHNwZWNpYWxseS4gIEZvciBleGFtcGxlLCB0aGUgZm9ybWF0ICJISG1tc3MiIHBhcnNlcyB0aGUgaW5wdXQgdGV4dAorICogIjEyMzQ1NiIgdG8gMTI6MzQ6NTYsIHBhcnNlcyB0aGUgaW5wdXQgdGV4dCAiMTIzNDUiIHRvIDE6MjM6NDUsIGFuZCBmYWlscyB0bworICogcGFyc2UgIjEyMzQiLiAgSW4gb3RoZXIgd29yZHMsIHRoZSBsZWZ0bW9zdCBmaWVsZCBvZiB0aGUgcnVuIGlzIGZsZXhpYmxlLAorICogd2hpbGUgdGhlIG90aGVycyBrZWVwIGEgZml4ZWQgd2lkdGguICBJZiB0aGUgcGFyc2UgZmFpbHMgYW55d2hlcmUgaW4gdGhlIHJ1biwKKyAqIHRoZW4gdGhlIGxlZnRtb3N0IGZpZWxkIGlzIHNob3J0ZW5lZCBieSBvbmUgY2hhcmFjdGVyLCBhbmQgdGhlIGVudGlyZSBydW4gaXMKKyAqIHBhcnNlZCBhZ2Fpbi4gVGhpcyBpcyByZXBlYXRlZCB1bnRpbCBlaXRoZXIgdGhlIHBhcnNlIHN1Y2NlZWRzIG9yIHRoZQorICogbGVmdG1vc3QgZmllbGQgaXMgb25lIGNoYXJhY3RlciBpbiBsZW5ndGguICBJZiB0aGUgcGFyc2Ugc3RpbGwgZmFpbHMgYXQgdGhhdAorICogcG9pbnQsIHRoZSBwYXJzZSBvZiB0aGUgcnVuIGZhaWxzLgorICoKKyAqIDxwPgorICogRm9yIHRpbWUgem9uZXMgdGhhdCBoYXZlIG5vIG5hbWVzLCB1c2Ugc3RyaW5ncyBHTVQraG91cnM6bWludXRlcyBvcgorICogR01ULWhvdXJzOm1pbnV0ZXMuCisgKgorICogPHA+CisgKiBUaGUgY2FsZW5kYXIgZGVmaW5lcyB3aGF0IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWssIHRoZSBmaXJzdCB3ZWVrCisgKiBvZiB0aGUgeWVhciwgd2hldGhlciBob3VycyBhcmUgemVybyBiYXNlZCBvciBub3QgKDAgdnMgMTIgb3IgMjQpLCBhbmQgdGhlCisgKiB0aW1lIHpvbmUuIFRoZXJlIGlzIG9uZSBjb21tb24gZGVjaW1hbCBmb3JtYXQgdG8gaGFuZGxlIGFsbCB0aGUgbnVtYmVyczsKKyAqIHRoZSBkaWdpdCBjb3VudCBpcyBoYW5kbGVkIHByb2dyYW1tYXRpY2FsbHkgYWNjb3JkaW5nIHRvIHRoZSBwYXR0ZXJuLgorICoKKyAqIDxoND5TeW5jaHJvbml6YXRpb248L2g0PgorICoKKyAqIERhdGUgZm9ybWF0cyBhcmUgbm90IHN5bmNocm9uaXplZC4gSXQgaXMgcmVjb21tZW5kZWQgdG8gY3JlYXRlIHNlcGFyYXRlCisgKiBmb3JtYXQgaW5zdGFuY2VzIGZvciBlYWNoIHRocmVhZC4gSWYgbXVsdGlwbGUgdGhyZWFkcyBhY2Nlc3MgYSBmb3JtYXQKKyAqIGNvbmN1cnJlbnRseSwgaXQgbXVzdCBiZSBzeW5jaHJvbml6ZWQgZXh0ZXJuYWxseS4KKyAqCisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSAgICAgICAgICBjb20uaWJtLmljdS51dGlsLlRpbWVab25lCisgKiBAc2VlICAgICAgICAgIERhdGVGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMKKyAqIEBzZWUgICAgICAgICAgRGVjaW1hbEZvcm1hdAorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzLCBDaGVuLUxpZWggSHVhbmcsIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIFNpbXBsZURhdGVGb3JtYXQgZXh0ZW5kcyBEYXRlRm9ybWF0IHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAxOworICAgICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNpbXBsZURhdGVGb3JtYXQgdXNpbmcgdGhlIGRlZmF1bHQgcGF0dGVybiBmb3IgdGhlIGRlZmF1bHQKKyAgICAgKiBsb2NhbGUuICA8Yj5Ob3RlOjwvYj4gTm90IGFsbCBsb2NhbGVzIHN1cHBvcnQgU2ltcGxlRGF0ZUZvcm1hdDsgZm9yIGZ1bGwKKyAgICAgKiBnZW5lcmFsaXR5LCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcyBpbiB0aGUgRGF0ZUZvcm1hdCBjbGFzcy4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlRm9ybWF0KCkgeworICAgICAgICBzdXBlcihuZXcgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTaW1wbGVEYXRlRm9ybWF0IHVzaW5nIHRoZSBnaXZlbiBwYXR0ZXJuIGluIHRoZSBkZWZhdWx0CisgICAgICogbG9jYWxlLiAgPGI+Tm90ZTo8L2I+IE5vdCBhbGwgbG9jYWxlcyBzdXBwb3J0IFNpbXBsZURhdGVGb3JtYXQ7IGZvciBmdWxsCisgICAgICogZ2VuZXJhbGl0eSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMgaW4gdGhlIERhdGVGb3JtYXQgY2xhc3MuCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4gdG8gdXNlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgc3VwZXIobmV3IGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4pKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNpbXBsZURhdGVGb3JtYXQgdXNpbmcgdGhlIGdpdmVuIHBhdHRlcm4gYW5kIGxvY2FsZS4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gTm90IGFsbCBsb2NhbGVzIHN1cHBvcnQgU2ltcGxlRGF0ZUZvcm1hdDsgZm9yIGZ1bGwKKyAgICAgKiBnZW5lcmFsaXR5LCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcyBpbiB0aGUgRGF0ZUZvcm1hdCBjbGFzcy4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiB0byB1c2UKKyAgICAgKiBAcGFyYW0gbG9jIHRoZSBsb2NhbGUgdG8gdXNlIGZvciBsb2NhbGl6YXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlRGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgTG9jYWxlIGxvYykgeworICAgICAgICBzdXBlcihuZXcgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQocGF0dGVybiwgbG9jKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTaW1wbGVEYXRlRm9ybWF0IHVzaW5nIHRoZSBnaXZlbiBwYXR0ZXJuIGFuZCBsb2NhbGUuCisgICAgICogPGI+Tm90ZTo8L2I+IE5vdCBhbGwgbG9jYWxlcyBzdXBwb3J0IFNpbXBsZURhdGVGb3JtYXQ7IGZvciBmdWxsCisgICAgICogZ2VuZXJhbGl0eSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMgaW4gdGhlIERhdGVGb3JtYXQgY2xhc3MuCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4gdG8gdXNlCisgICAgICogQHBhcmFtIGxvYyB0aGUgdWxvY2FsZSB0byB1c2UgZm9yIGxvY2FsaXphdGlvbgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIFVMb2NhbGUgbG9jKSB7CisgICAgICAgIHRoaXMocGF0dGVybiwgbG9jLnRvTG9jYWxlKCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU2ltcGxlRGF0ZUZvcm1hdCB1c2luZyB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQKKyAgICAgKiBsb2NhbGUtc3BlY2lmaWMgc3ltYm9sIGRhdGEuCisgICAgICogV2FybmluZzogdXNlcyBkZWZhdWx0IGxvY2FsZSBmb3IgZGlnaXRzIQorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuIHRvIHVzZQorICAgICAqIEBwYXJhbSBmb3JtYXREYXRhIHRoZSBzeW1ib2xzIHRvIHVzZSBmb3IgbG9jYWxpemF0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIERhdGVGb3JtYXRTeW1ib2xzIGZvcm1hdERhdGEpIHsKKyAgICAgICAgc3VwZXIobmV3IGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4sIGZvcm1hdERhdGEuZGZzKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSAxMDAteWVhciBwZXJpb2QgMi1kaWdpdCB5ZWFycyB3aWxsIGJlIGludGVycHJldGVkIGFzIGJlaW5nIGluCisgICAgICogdG8gYmVnaW4gb24gdGhlIGRhdGUgdGhlIHVzZXIgc3BlY2lmaWVzLgorICAgICAqIEBwYXJhbSBzdGFydERhdGUgRHVyaW5nIHBhcnNpbmcsIHR3byBkaWdpdCB5ZWFycyB3aWxsIGJlIHBsYWNlZCBpbiB0aGUgcmFuZ2UKKyAgICAgKiA8Y29kZT5zdGFydERhdGU8L2NvZGU+IHRvIDxjb2RlPnN0YXJ0RGF0ZSArIDEwMCB5ZWFyczwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0MkRpZ2l0WWVhclN0YXJ0KERhdGUgc3RhcnREYXRlKSB7CisgICAgICAgICgoamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQpZGF0ZUZvcm1hdCkuc2V0MkRpZ2l0WWVhclN0YXJ0KHN0YXJ0RGF0ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBiZWdpbm5pbmcgZGF0ZSBvZiB0aGUgMTAwLXllYXIgcGVyaW9kIDItZGlnaXQgeWVhcnMgYXJlIGludGVycHJldGVkCisgICAgICogYXMgYmVpbmcgd2l0aGluLgorICAgICAqIEByZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSAxMDAteWVhciBwZXJpb2QgaW50byB3aGljaCB0d28gZGlnaXQgeWVhcnMgYXJlCisgICAgICogcGFyc2VkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERhdGUgZ2V0MkRpZ2l0WWVhclN0YXJ0KCkgeworICAgICAgICByZXR1cm4gKChqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdClkYXRlRm9ybWF0KS5nZXQyRGlnaXRZZWFyU3RhcnQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBEYXRlRm9ybWF0LgorICAgICAqIDxwPkZvcm1hdHMgYSBkYXRlIG9yIHRpbWUsIHdoaWNoIGlzIHRoZSBzdGFuZGFyZCBtaWxsaXMKKyAgICAgKiBzaW5jZSBKYW51YXJ5IDEsIDE5NzAsIDAwOjAwOjAwIEdNVC4KKyAgICAgKiA8cD5FeGFtcGxlOiB1c2luZyB0aGUgVVMgbG9jYWxlOgorICAgICAqICJ5eXl5Lk1NLmRkIEcgJ2F0JyBISDptbTpzcyB6enoiIC0+PiAxOTk2LjA3LjEwIEFEIGF0IDE1OjA4OjU2IFBEVAorICAgICAqIEBwYXJhbSBjYWwgdGhlIGNhbGVuZGFyIHdob3NlIGRhdGUtdGltZSB2YWx1ZSBpcyB0byBiZSBmb3JtYXR0ZWQgaW50byBhIGRhdGUtdGltZSBzdHJpbmcKKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyB3aGVyZSB0aGUgbmV3IGRhdGUtdGltZSB0ZXh0IGlzIHRvIGJlIGFwcGVuZGVkCisgICAgICogQHBhcmFtIHBvcyB0aGUgZm9ybWF0dGluZyBwb3NpdGlvbi4gT24gaW5wdXQ6IGFuIGFsaWdubWVudCBmaWVsZCwKKyAgICAgKiBpZiBkZXNpcmVkLiBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0dGVkIGRhdGUtdGltZSBzdHJpbmcuCisgICAgICogQHNlZSBEYXRlRm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoQ2FsZW5kYXIgY2FsLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdDsKKyAgICAgICAgc3luY2hyb25pemVkKGRhdGVGb3JtYXQpIHsKKyAgICAgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciBvbGRDYWwgPSBkYXRlRm9ybWF0LmdldENhbGVuZGFyKCk7CisgICAgICAgICAgICBkYXRlRm9ybWF0LnNldENhbGVuZGFyKGNhbC5jYWxlbmRhcik7CisgICAgICAgICAgICByZXN1bHQgPSBkYXRlRm9ybWF0LmZvcm1hdChjYWwuZ2V0VGltZSgpLCB0b0FwcGVuZFRvLCBwb3MpOworICAgICAgICAgICAgZGF0ZUZvcm1hdC5zZXRDYWxlbmRhcihvbGRDYWwpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgRGF0ZUZvcm1hdAorICAgICAqIEBzZWUgRGF0ZUZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHBhcnNlKFN0cmluZyB0ZXh0LCBDYWxlbmRhciBjYWwsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3MpIHsKKyAgICAgICAgLy8gVE9ETzogY2Fubm90IHNldCB0aGUgcGFyc2VkIHRpbWV6b25lLCBkb2N1bWVudD8KKyAgICAgICAgY2FsLnNldFRpbWUoZGF0ZUZvcm1hdC5wYXJzZSh0ZXh0LCBwYXJzZVBvcykpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcGF0dGVybiBzdHJpbmcgZGVzY3JpYmluZyB0aGlzIGRhdGUgZm9ybWF0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9QYXR0ZXJuKCkgeworICAgICAgICByZXR1cm4gKChqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdClkYXRlRm9ybWF0KS50b1BhdHRlcm4oKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIGxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZyBkZXNjcmliaW5nIHRoaXMgZGF0ZSBmb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b0xvY2FsaXplZFBhdHRlcm4oKSB7CisgICAgICAgIHJldHVybiAoKGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KWRhdGVGb3JtYXQpLnRvTG9jYWxpemVkUGF0dGVybigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQXBwbHkgdGhlIGdpdmVuIHVubG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nIHRvIHRoaXMgZGF0ZSBmb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgICgoamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQpZGF0ZUZvcm1hdCkuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQXBwbHkgdGhlIGdpdmVuIGxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZyB0byB0aGlzIGRhdGUgZm9ybWF0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5TG9jYWxpemVkUGF0dGVybihTdHJpbmcgcGF0dGVybikgeworICAgICAgICAoKGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KWRhdGVGb3JtYXQpLmFwcGx5TG9jYWxpemVkUGF0dGVybihwYXR0ZXJuKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUvdGltZSBmb3JtYXR0aW5nIGRhdGEuCisgICAgICogQHJldHVybiBhIGNvcHkgb2YgdGhlIGRhdGUtdGltZSBmb3JtYXR0aW5nIGRhdGEgYXNzb2NpYXRlZAorICAgICAqIHdpdGggdGhpcyBkYXRlLXRpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyBnZXREYXRlRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm9ybWF0U3ltYm9scygoKGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KWRhdGVGb3JtYXQpLmdldERhdGVGb3JtYXRTeW1ib2xzKCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWxsb3dzIHlvdSB0byBzZXQgdGhlIGRhdGUvdGltZSBmb3JtYXR0aW5nIGRhdGEuCisgICAgICogQHBhcmFtIG5ld0Zvcm1hdFN5bWJvbHMgdGhlIG5ldyBzeW1ib2xzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGF0ZUZvcm1hdFN5bWJvbHMoRGF0ZUZvcm1hdFN5bWJvbHMgbmV3Rm9ybWF0U3ltYm9scykgeworICAgICAgICAoKGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KWRhdGVGb3JtYXQpLnNldERhdGVGb3JtYXRTeW1ib2xzKG5ld0Zvcm1hdFN5bWJvbHMuZGZzKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBDbG9uZWFibGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IFNpbXBsZURhdGVGb3JtYXQoKGphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0KWRhdGVGb3JtYXQuY2xvbmUoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGb3IgY2xvbmUgdG8gdXNlCisgICAgICogQHBhcmFtIHNkZgorICAgICAqLworICAgIHByaXZhdGUgU2ltcGxlRGF0ZUZvcm1hdChqYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdCBzZGYpIHsKKyAgICAgICAgc3VwZXIoc2RmKTsKKyAgICB9CisgICAgICAgIAorICAgIC8vIGhhc2hDb2RlLCBlcXVhbHMsIGNsb25lIHVzZSBEYXRlRm9ybWF0IGltcGxlbWVudGF0aW9uLgorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FsZW5kYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTg4MDk2ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS5iYXNlL3NyYy9jb20vaWJtL2ljdS91dGlsL0NhbGVuZGFyLmphdmEKQEAgLTAsMCArMSwyMTE4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CisKKy8qKgorICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGlzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGNvbnZlcnRpbmcgYmV0d2VlbgorICogYSA8Y29kZT5EYXRlPC9jb2RlPiBvYmplY3QgYW5kIGEgc2V0IG9mIGludGVnZXIgZmllbGRzIHN1Y2ggYXMKKyAqIDxjb2RlPllFQVI8L2NvZGU+LCA8Y29kZT5NT05USDwvY29kZT4sIDxjb2RlPkRBWTwvY29kZT4sIDxjb2RlPkhPVVI8L2NvZGU+LAorICogYW5kIHNvIG9uLiAoQSA8Y29kZT5EYXRlPC9jb2RlPiBvYmplY3QgcmVwcmVzZW50cyBhIHNwZWNpZmljIGluc3RhbnQgaW4KKyAqIHRpbWUgd2l0aCBtaWxsaXNlY29uZCBwcmVjaXNpb24uIFNlZQorICoge0BsaW5rIERhdGV9CisgKiBmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIDxjb2RlPkRhdGU8L2NvZGU+IGNsYXNzLikKKyAqCisgKiA8cD48Yj5Ob3RlOjwvYj4gIFRoaXMgY2xhc3MgaXMgc2ltaWxhciwgYnV0IG5vdCBpZGVudGljYWwsIHRvIHRoZSBjbGFzcworICogPGNvZGU+amF2YS51dGlsLkNhbGVuZGFyPC9jb2RlPi4gIENoYW5nZXMgYXJlIGRldGFpbGVkIGJlbG93LgorICoKKyAqIDxwPgorICogU3ViY2xhc3NlcyBvZiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaW50ZXJwcmV0IGEgPGNvZGU+RGF0ZTwvY29kZT4KKyAqIGFjY29yZGluZyB0byB0aGUgcnVsZXMgb2YgYSBzcGVjaWZpYyBjYWxlbmRhciBzeXN0ZW0uICBJQ1U0SiBjb250YWlucworICogc2V2ZXJhbCBzdWJjbGFzc2VzIGltcGxlbWVudGluZyBkaWZmZXJlbnQgaW50ZXJuYXRpb25hbCBjYWxlbmRhciBzeXN0ZW1zLgorICoKKyAqIDxwPgorICogTGlrZSBvdGhlciBsb2NhbGUtc2Vuc2l0aXZlIGNsYXNzZXMsIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBwcm92aWRlcyBhCisgKiBjbGFzcyBtZXRob2QsIDxjb2RlPmdldEluc3RhbmNlPC9jb2RlPiwgZm9yIGdldHRpbmcgYSBnZW5lcmFsbHkgdXNlZnVsCisgKiBvYmplY3Qgb2YgdGhpcyB0eXBlLiA8Y29kZT5DYWxlbmRhcjwvY29kZT4ncyA8Y29kZT5nZXRJbnN0YW5jZTwvY29kZT4gbWV0aG9kCisgKiByZXR1cm5zIGEgY2FsZW5kYXIgb2YgYSB0eXBlIGFwcHJvcHJpYXRlIHRvIHRoZSBsb2NhbGUsIHdob3NlCisgKiB0aW1lIGZpZWxkcyBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgd2l0aCB0aGUgY3VycmVudCBkYXRlIGFuZCB0aW1lOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPkNhbGVuZGFyIHJpZ2h0Tm93ID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPldoZW4gYSA8Y29kZT5VTG9jYWxlPC9jb2RlPiBpcyB1c2VkIGJ5IDxjb2RlPmdldEluc3RhbmNlPC9jb2RlPiwgaXRzCisgKiAnPGNvZGU+Y2FsZW5kYXI8L2NvZGU+JyB0YWcgYW5kIHZhbHVlIGFyZSByZXRyaWV2ZWQgaWYgcHJlc2VudC4gIElmIGEgcmVjb2duaXplZAorICogdmFsdWUgaXMgc3VwcGxpZWQsIGEgY2FsZW5kYXIgaXMgcHJvdmlkZWQgYW5kIGNvbmZpZ3VyZWQgYXMgYXBwcm9wcmlhdGUuCisgKiBDdXJyZW50bHkgcmVjb2duaXplZCB0YWdzIGFyZSAiYnVkZGhpc3QiLCAiY2hpbmVzZSIsICJjb3B0aWMiLCAiZXRoaW9waWMiLCAKKyAqICJncmVnb3JpYW4iLCAiaGVicmV3IiwgImlzbGFtaWMiLCAiaXNsYW1pYy1jaXZpbCIsIGFuZCAiamFwYW5lc2UiLiAgRm9yCisgKiBleGFtcGxlOiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+Q2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobmV3IFVMb2NhbGUoImVuX1VTQGNhbGVuZGFyPWphcGFuZXNlIikpOzwvcHJlPgorICogPC9ibG9ja3F1b3RlPiB3aWxsIHJldHVybiBhbiBpbnN0YW5jZSBvZiBKYXBhbmVzZUNhbGVuZGFyICh1c2luZyBlbl9VUyBjb252ZW50aW9ucyBmb3IKKyAqIG1pbmltdW0gZGF5cyBpbiBmaXJzdCB3ZWVrLCBzdGFydCBkYXkgb2Ygd2VlaywgZXQgY2V0ZXJhKS4KKyAqCisgKiA8cD5BIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBvYmplY3QgY2FuIHByb2R1Y2UgYWxsIHRoZSB0aW1lIGZpZWxkIHZhbHVlcworICogbmVlZGVkIHRvIGltcGxlbWVudCB0aGUgZGF0ZS10aW1lIGZvcm1hdHRpbmcgZm9yIGEgcGFydGljdWxhciBsYW5ndWFnZSBhbmQKKyAqIGNhbGVuZGFyIHN0eWxlIChmb3IgZXhhbXBsZSwgSmFwYW5lc2UtR3JlZ29yaWFuLCBKYXBhbmVzZS1UcmFkaXRpb25hbCkuCisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gZGVmaW5lcyB0aGUgcmFuZ2Ugb2YgdmFsdWVzIHJldHVybmVkIGJ5IGNlcnRhaW4gZmllbGRzLAorICogYXMgd2VsbCBhcyB0aGVpciBtZWFuaW5nLiAgRm9yIGV4YW1wbGUsIHRoZSBmaXJzdCBtb250aCBvZiB0aGUgeWVhciBoYXMgdmFsdWUKKyAqIDxjb2RlPk1PTlRIPC9jb2RlPiA9PSA8Y29kZT5KQU5VQVJZPC9jb2RlPiBmb3IgYWxsIGNhbGVuZGFycy4gIE90aGVyIHZhbHVlcworICogYXJlIGRlZmluZWQgYnkgdGhlIGNvbmNyZXRlIHN1YmNsYXNzLCBzdWNoIGFzIDxjb2RlPkVSQTwvY29kZT4gYW5kCisgKiA8Y29kZT5ZRUFSPC9jb2RlPi4gIFNlZSBpbmRpdmlkdWFsIGZpZWxkIGRvY3VtZW50YXRpb24gYW5kIHN1YmNsYXNzCisgKiBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLgorICoKKyAqIDxwPldoZW4gYSA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaXMgPGVtPmxlbmllbnQ8L2VtPiwgaXQgYWNjZXB0cyBhIHdpZGVyIHJhbmdlCisgKiBvZiBmaWVsZCB2YWx1ZXMgdGhhbiBpdCBwcm9kdWNlcy4gIEZvciBleGFtcGxlLCBhIGxlbmllbnQKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBpbnRlcnByZXRzIDxjb2RlPk1PTlRIPC9jb2RlPiA9PQorICogPGNvZGU+SkFOVUFSWTwvY29kZT4sIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gPT0gMzIgYXMgRmVicnVhcnkgMS4gIEEKKyAqIG5vbi1sZW5pZW50IDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW4gZ2l2ZW4KKyAqIG91dC1vZi1yYW5nZSBmaWVsZCBzZXR0aW5ncy4gIFdoZW4gY2FsZW5kYXJzIHJlY29tcHV0ZSBmaWVsZCB2YWx1ZXMgZm9yCisgKiByZXR1cm4gYnkgPGNvZGU+Z2V0KCk8L2NvZGU+LCB0aGV5IG5vcm1hbGl6ZSB0aGVtLiAgRm9yIGV4YW1wbGUsIGEKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBhbHdheXMgcHJvZHVjZXMgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPgorICogdmFsdWVzIGJldHdlZW4gMSBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgbW9udGguCisgKgorICogPHA+PGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGRlZmluZXMgYSBsb2NhbGUtc3BlY2lmaWMgc2V2ZW4gZGF5IHdlZWsgdXNpbmcgdHdvCisgKiBwYXJhbWV0ZXJzOiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIGFuZCB0aGUgbWluaW1hbCBkYXlzIGluIGZpcnN0IHdlZWsKKyAqIChmcm9tIDEgdG8gNykuICBUaGVzZSBudW1iZXJzIGFyZSB0YWtlbiBmcm9tIHRoZSBsb2NhbGUgcmVzb3VyY2UgZGF0YSB3aGVuIGEKKyAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpcyBjb25zdHJ1Y3RlZC4gIFRoZXkgbWF5IGFsc28gYmUgc3BlY2lmaWVkIGV4cGxpY2l0bHkKKyAqIHRocm91Z2ggdGhlIEFQSS4KKyAqCisgKiA8cD5XaGVuIHNldHRpbmcgb3IgZ2V0dGluZyB0aGUgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gb3IKKyAqIDxjb2RlPldFRUtfT0ZfWUVBUjwvY29kZT4gZmllbGRzLCA8Y29kZT5DYWxlbmRhcjwvY29kZT4gbXVzdCBkZXRlcm1pbmUgdGhlCisgKiBmaXJzdCB3ZWVrIG9mIHRoZSBtb250aCBvciB5ZWFyIGFzIGEgcmVmZXJlbmNlIHBvaW50LiAgVGhlIGZpcnN0IHdlZWsgb2YgYQorICogbW9udGggb3IgeWVhciBpcyBkZWZpbmVkIGFzIHRoZSBlYXJsaWVzdCBzZXZlbiBkYXkgcGVyaW9kIGJlZ2lubmluZyBvbgorICogPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gYW5kIGNvbnRhaW5pbmcgYXQgbGVhc3QKKyAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4gZGF5cyBvZiB0aGF0IG1vbnRoIG9yIHllYXIuICBXZWVrcworICogbnVtYmVyZWQgLi4uLCAtMSwgMCBwcmVjZWRlIHRoZSBmaXJzdCB3ZWVrOyB3ZWVrcyBudW1iZXJlZCAyLCAzLC4uLiBmb2xsb3cKKyAqIGl0LiAgTm90ZSB0aGF0IHRoZSBub3JtYWxpemVkIG51bWJlcmluZyByZXR1cm5lZCBieSA8Y29kZT5nZXQoKTwvY29kZT4gbWF5IGJlCisgKiBkaWZmZXJlbnQuICBGb3IgZXhhbXBsZSwgYSBzcGVjaWZpYyA8Y29kZT5DYWxlbmRhcjwvY29kZT4gc3ViY2xhc3MgbWF5CisgKiBkZXNpZ25hdGUgdGhlIHdlZWsgYmVmb3JlIHdlZWsgMSBvZiBhIHllYXIgYXMgd2VlayA8ZW0+bjwvZW0+IG9mIHRoZSBwcmV2aW91cworICogeWVhci4KKyAqCisgKiA8cD4gV2hlbiBjb21wdXRpbmcgYSA8Y29kZT5EYXRlPC9jb2RlPiBmcm9tIHRpbWUgZmllbGRzLCB0d28gc3BlY2lhbAorICogY2lyY3Vtc3RhbmNlcyBtYXkgYXJpc2U6IHRoZXJlIG1heSBiZSBpbnN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gY29tcHV0ZSB0aGUKKyAqIDxjb2RlPkRhdGU8L2NvZGU+IChzdWNoIGFzIG9ubHkgeWVhciBhbmQgbW9udGggYnV0IG5vIGRheSBpbiB0aGUgbW9udGgpLCBvcgorICogdGhlcmUgbWF5IGJlIGluY29uc2lzdGVudCBpbmZvcm1hdGlvbiAoc3VjaCBhcyAiVHVlc2RheSwgSnVseSAxNSwgMTk5NiIgLS0KKyAqIEp1bHkgMTUsIDE5OTYgaXMgYWN0dWFsbHkgYSBNb25kYXkpLgorICoKKyAqIDxwPgorICogPHN0cm9uZz5JbnN1ZmZpY2llbnQgaW5mb3JtYXRpb24uPC9zdHJvbmc+IFRoZSBjYWxlbmRhciB3aWxsIHVzZSBkZWZhdWx0CisgKiBpbmZvcm1hdGlvbiB0byBzcGVjaWZ5IHRoZSBtaXNzaW5nIGZpZWxkcy4gVGhpcyBtYXkgdmFyeSBieSBjYWxlbmRhcjsgZm9yCisgKiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLCB0aGUgZGVmYXVsdCBmb3IgYSBmaWVsZCBpcyB0aGUgc2FtZSBhcyB0aGF0IG9mIHRoZQorICogc3RhcnQgb2YgdGhlIGVwb2NoOiBpLmUuLCBZRUFSID0gMTk3MCwgTU9OVEggPSBKQU5VQVJZLCBEQVRFID0gMSwgZXRjLgorICoKKyAqIDxwPgorICogPHN0cm9uZz5JbmNvbnNpc3RlbnQgaW5mb3JtYXRpb24uPC9zdHJvbmc+IElmIGZpZWxkcyBjb25mbGljdCwgdGhlIGNhbGVuZGFyCisgKiB3aWxsIGdpdmUgcHJlZmVyZW5jZSB0byBmaWVsZHMgc2V0IG1vcmUgcmVjZW50bHkuIEZvciBleGFtcGxlLCB3aGVuCisgKiBkZXRlcm1pbmluZyB0aGUgZGF5LCB0aGUgY2FsZW5kYXIgd2lsbCBsb29rIGZvciBvbmUgb2YgdGhlIGZvbGxvd2luZworICogY29tYmluYXRpb25zIG9mIGZpZWxkcy4gIFRoZSBtb3N0IHJlY2VudCBjb21iaW5hdGlvbiwgYXMgZGV0ZXJtaW5lZCBieSB0aGUKKyAqIG1vc3QgcmVjZW50bHkgc2V0IHNpbmdsZSBmaWVsZCwgd2lsbCBiZSB1c2VkLgorICoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE1PTlRIICsgREFZX09GX01PTlRICisgKiBNT05USCArIFdFRUtfT0ZfTU9OVEggKyBEQVlfT0ZfV0VFSworICogTU9OVEggKyBEQVlfT0ZfV0VFS19JTl9NT05USCArIERBWV9PRl9XRUVLCisgKiBEQVlfT0ZfWUVBUgorICogREFZX09GX1dFRUsgKyBXRUVLX09GX1lFQVI8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBGb3IgdGhlIHRpbWUgb2YgZGF5OgorICoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIEhPVVJfT0ZfREFZCisgKiBBTV9QTSArIEhPVVI8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gZm9yIHNvbWUgbm9uLUdyZWdvcmlhbiBjYWxlbmRhcnMsIGRpZmZlcmVudAorICogZmllbGRzIG1heSBiZSBuZWNlc3NhcnkgZm9yIGNvbXBsZXRlIGRpc2FtYmlndWF0aW9uLiBGb3IgZXhhbXBsZSwgYSBmdWxsCisgKiBzcGVjaWZpY2F0aW9uIG9mIHRoZSBoaXN0b3JpYWwgQXJhYmljIGFzdHJvbm9taWNhbCBjYWxlbmRhciByZXF1aXJlcyB5ZWFyLAorICogbW9udGgsIGRheS1vZi1tb250aCA8ZW0+YW5kPC9lbT4gZGF5LW9mLXdlZWsgaW4gc29tZSBjYXNlcy4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlcmUgYXJlIGNlcnRhaW4gcG9zc2libGUgYW1iaWd1aXRpZXMgaW4KKyAqIGludGVycHJldGF0aW9uIG9mIGNlcnRhaW4gc2luZ3VsYXIgdGltZXMsIHdoaWNoIGFyZSByZXNvbHZlZCBpbiB0aGUKKyAqIGZvbGxvd2luZyB3YXlzOgorICogPG9sPgorICogICAgIDxsaT4gMjQ6MDA6MDAgImJlbG9uZ3MiIHRvIHRoZSBmb2xsb3dpbmcgZGF5LiBUaGF0IGlzLAorICogICAgICAgICAgMjM6NTkgb24gRGVjIDMxLCAxOTY5ICZsdDsgMjQ6MDAgb24gSmFuIDEsIDE5NzAgJmx0OyAyNDowMTowMCBvbiBKYW4gMSwgMTk3MAorICoKKyAqICAgICA8bGk+IEFsdGhvdWdoIGhpc3RvcmljYWxseSBub3QgcHJlY2lzZSwgbWlkbmlnaHQgYWxzbyBiZWxvbmdzIHRvICJhbSIsCisgKiAgICAgICAgICBhbmQgbm9vbiBiZWxvbmdzIHRvICJwbSIsIHNvIG9uIHRoZSBzYW1lIGRheSwKKyAqICAgICAgICAgIDEyOjAwIGFtIChtaWRuaWdodCkgJmx0OyAxMjowMSBhbSwgYW5kIDEyOjAwIHBtIChub29uKSAmbHQ7IDEyOjAxIHBtCisgKiA8L29sPgorICoKKyAqIDxwPgorICogVGhlIGRhdGUgb3IgdGltZSBmb3JtYXQgc3RyaW5ncyBhcmUgbm90IHBhcnQgb2YgdGhlIGRlZmluaXRpb24gb2YgYQorICogY2FsZW5kYXIsIGFzIHRob3NlIG11c3QgYmUgbW9kaWZpYWJsZSBvciBvdmVycmlkYWJsZSBieSB0aGUgdXNlciBhdAorICogcnVudGltZS4gVXNlIHtAbGluayBEYXRlRm9ybWF0fQorICogdG8gZm9ybWF0IGRhdGVzLgorICoKKyAqIDxwPjxzdHJvbmc+RmllbGQgbWFuaXB1bGF0aW9uIG1ldGhvZHM8L3N0cm9uZz48L3A+CisgKgorICogPHA+PGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGZpZWxkcyBjYW4gYmUgY2hhbmdlZCB1c2luZyB0aHJlZSBtZXRob2RzOgorICogPGNvZGU+c2V0KCk8L2NvZGU+LCA8Y29kZT5hZGQoKTwvY29kZT4sIGFuZCA8Y29kZT5yb2xsKCk8L2NvZGU+LjwvcD4KKyAqCisgKiA8cD48c3Ryb25nPjxjb2RlPnNldChmLCB2YWx1ZSk8L2NvZGU+PC9zdHJvbmc+IGNoYW5nZXMgZmllbGQKKyAqIDxjb2RlPmY8L2NvZGU+IHRvIDxjb2RlPnZhbHVlPC9jb2RlPi4gIEluIGFkZGl0aW9uLCBpdCBzZXRzIGFuCisgKiBpbnRlcm5hbCBtZW1iZXIgdmFyaWFibGUgdG8gaW5kaWNhdGUgdGhhdCBmaWVsZCA8Y29kZT5mPC9jb2RlPiBoYXMKKyAqIGJlZW4gY2hhbmdlZC4gQWx0aG91Z2ggZmllbGQgPGNvZGU+ZjwvY29kZT4gaXMgY2hhbmdlZCBpbW1lZGlhdGVseSwKKyAqIHRoZSBjYWxlbmRhcidzIG1pbGxpc2Vjb25kcyBpcyBub3QgcmVjb21wdXRlZCB1bnRpbCB0aGUgbmV4dCBjYWxsIHRvCisgKiA8Y29kZT5nZXQoKTwvY29kZT4sIDxjb2RlPmdldFRpbWUoKTwvY29kZT4sIG9yCisgKiA8Y29kZT5nZXRUaW1lSW5NaWxsaXMoKTwvY29kZT4gaXMgbWFkZS4gVGh1cywgbXVsdGlwbGUgY2FsbHMgdG8KKyAqIDxjb2RlPnNldCgpPC9jb2RlPiBkbyBub3QgdHJpZ2dlciBtdWx0aXBsZSwgdW5uZWNlc3NhcnkKKyAqIGNvbXB1dGF0aW9ucy4gQXMgYSByZXN1bHQgb2YgY2hhbmdpbmcgYSBmaWVsZCB1c2luZworICogPGNvZGU+c2V0KCk8L2NvZGU+LCBvdGhlciBmaWVsZHMgbWF5IGFsc28gY2hhbmdlLCBkZXBlbmRpbmcgb24gdGhlCisgKiBmaWVsZCwgdGhlIGZpZWxkIHZhbHVlLCBhbmQgdGhlIGNhbGVuZGFyIHN5c3RlbS4gSW4gYWRkaXRpb24sCisgKiA8Y29kZT5nZXQoZik8L2NvZGU+IHdpbGwgbm90IG5lY2Vzc2FyaWx5IHJldHVybiA8Y29kZT52YWx1ZTwvY29kZT4KKyAqIGFmdGVyIHRoZSBmaWVsZHMgaGF2ZSBiZWVuIHJlY29tcHV0ZWQuIFRoZSBzcGVjaWZpY3MgYXJlIGRldGVybWluZWQgYnkKKyAqIHRoZSBjb25jcmV0ZSBjYWxlbmRhciBjbGFzcy48L3A+CisgKgorICogPHA+PGVtPkV4YW1wbGU8L2VtPjogQ29uc2lkZXIgYSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIG9yaWdpbmFsbHkgc2V0IHRvIEF1Z3VzdCAzMSwgMTk5OS4gQ2FsbGluZyA8Y29kZT5zZXQoQ2FsZW5kYXIuTU9OVEgsCisgKiBDYWxlbmRhci5TRVBURU1CRVIpPC9jb2RlPiBzZXRzIHRoZSBjYWxlbmRhciB0byBTZXB0ZW1iZXIgMzEsCisgKiAxOTk5LiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGludGVybmFsIHJlcHJlc2VudGF0aW9uIHRoYXQgcmVzb2x2ZXMgdG8KKyAqIE9jdG9iZXIgMSwgMTk5OSBpZiA8Y29kZT5nZXRUaW1lKCk8L2NvZGU+aXMgdGhlbiBjYWxsZWQuIEhvd2V2ZXIsIGEKKyAqIGNhbGwgdG8gPGNvZGU+c2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgMzApPC9jb2RlPiBiZWZvcmUgdGhlIGNhbGwgdG8KKyAqIDxjb2RlPmdldFRpbWUoKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8gU2VwdGVtYmVyIDMwLCAxOTk5LCBzaW5jZQorICogbm8gcmVjb21wdXRhdGlvbiBvY2N1cnMgYWZ0ZXIgPGNvZGU+c2V0KCk8L2NvZGU+IGl0c2VsZi48L3A+CisgKgorICogPHA+PHN0cm9uZz48Y29kZT5hZGQoZiwgZGVsdGEpPC9jb2RlPjwvc3Ryb25nPiBhZGRzIDxjb2RlPmRlbHRhPC9jb2RlPgorICogdG8gZmllbGQgPGNvZGU+ZjwvY29kZT4uICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyA8Y29kZT5zZXQoZiwKKyAqIGdldChmKSArIGRlbHRhKTwvY29kZT4gd2l0aCB0d28gYWRqdXN0bWVudHM6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICA8cD48c3Ryb25nPkFkZCBydWxlIDE8L3N0cm9uZz4uIFRoZSB2YWx1ZSBvZiBmaWVsZCA8Y29kZT5mPC9jb2RlPgorICogICBhZnRlciB0aGUgY2FsbCBtaW51cyB0aGUgdmFsdWUgb2YgZmllbGQgPGNvZGU+ZjwvY29kZT4gYmVmb3JlIHRoZQorICogICBjYWxsIGlzIDxjb2RlPmRlbHRhPC9jb2RlPiwgbW9kdWxvIGFueSBvdmVyZmxvdyB0aGF0IGhhcyBvY2N1cnJlZCBpbgorICogICBmaWVsZCA8Y29kZT5mPC9jb2RlPi4gT3ZlcmZsb3cgb2NjdXJzIHdoZW4gYSBmaWVsZCB2YWx1ZSBleGNlZWRzIGl0cworICogICByYW5nZSBhbmQsIGFzIGEgcmVzdWx0LCB0aGUgbmV4dCBsYXJnZXIgZmllbGQgaXMgaW5jcmVtZW50ZWQgb3IKKyAqICAgZGVjcmVtZW50ZWQgYW5kIHRoZSBmaWVsZCB2YWx1ZSBpcyBhZGp1c3RlZCBiYWNrIGludG8gaXRzIHJhbmdlLjwvcD4KKyAqCisgKiAgIDxwPjxzdHJvbmc+QWRkIHJ1bGUgMjwvc3Ryb25nPi4gSWYgYSBzbWFsbGVyIGZpZWxkIGlzIGV4cGVjdGVkIHRvIGJlCisgKiAgIGludmFyaWFudCwgYnV0ICZuYnNwOyBpdCBpcyBpbXBvc3NpYmxlIGZvciBpdCB0byBiZSBlcXVhbCB0byBpdHMKKyAqICAgcHJpb3IgdmFsdWUgYmVjYXVzZSBvZiBjaGFuZ2VzIGluIGl0cyBtaW5pbXVtIG9yIG1heGltdW0gYWZ0ZXIgZmllbGQKKyAqICAgPGNvZGU+ZjwvY29kZT4gaXMgY2hhbmdlZCwgdGhlbiBpdHMgdmFsdWUgaXMgYWRqdXN0ZWQgdG8gYmUgYXMgY2xvc2UKKyAqICAgYXMgcG9zc2libGUgdG8gaXRzIGV4cGVjdGVkIHZhbHVlLiBBIHNtYWxsZXIgZmllbGQgcmVwcmVzZW50cyBhCisgKiAgIHNtYWxsZXIgdW5pdCBvZiB0aW1lLiA8Y29kZT5IT1VSPC9jb2RlPiBpcyBhIHNtYWxsZXIgZmllbGQgdGhhbgorICogICA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+LiBObyBhZGp1c3RtZW50IGlzIG1hZGUgdG8gc21hbGxlciBmaWVsZHMKKyAqICAgdGhhdCBhcmUgbm90IGV4cGVjdGVkIHRvIGJlIGludmFyaWFudC4gVGhlIGNhbGVuZGFyIHN5c3RlbQorICogICBkZXRlcm1pbmVzIHdoYXQgZmllbGRzIGFyZSBleHBlY3RlZCB0byBiZSBpbnZhcmlhbnQuPC9wPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPkluIGFkZGl0aW9uLCB1bmxpa2UgPGNvZGU+c2V0KCk8L2NvZGU+LCA8Y29kZT5hZGQoKTwvY29kZT4gZm9yY2VzCisgKiBhbiBpbW1lZGlhdGUgcmVjb21wdXRhdGlvbiBvZiB0aGUgY2FsZW5kYXIncyBtaWxsaXNlY29uZHMgYW5kIGFsbAorICogZmllbGRzLjwvcD4KKyAqCisgKiA8cD48ZW0+RXhhbXBsZTwvZW0+OiBDb25zaWRlciBhIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPgorICogb3JpZ2luYWxseSBzZXQgdG8gQXVndXN0IDMxLCAxOTk5LiBDYWxsaW5nIDxjb2RlPmFkZChDYWxlbmRhci5NT05USCwKKyAqIDEzKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8gU2VwdGVtYmVyIDMwLCAyMDAwLiA8c3Ryb25nPkFkZCBydWxlCisgKiAxPC9zdHJvbmc+IHNldHMgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCB0byBTZXB0ZW1iZXIsIHNpbmNlCisgKiBhZGRpbmcgMTMgbW9udGhzIHRvIEF1Z3VzdCBnaXZlcyBTZXB0ZW1iZXIgb2YgdGhlIG5leHQgeWVhci4gU2luY2UKKyAqIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gY2Fubm90IGJlIDMxIGluIFNlcHRlbWJlciBpbiBhCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4sIDxzdHJvbmc+YWRkIHJ1bGUgMjwvc3Ryb25nPiBzZXRzIHRoZQorICogPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPiB0byAzMCwgdGhlIGNsb3Nlc3QgcG9zc2libGUgdmFsdWUuIEFsdGhvdWdoCisgKiBpdCBpcyBhIHNtYWxsZXIgZmllbGQsIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBpcyBub3QgYWRqdXN0ZWQgYnkKKyAqIHJ1bGUgMiwgc2luY2UgaXQgaXMgZXhwZWN0ZWQgdG8gY2hhbmdlIHdoZW4gdGhlIG1vbnRoIGNoYW5nZXMgaW4gYQorICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+LjwvcD4KKyAqCisgKiA8cD48c3Ryb25nPjxjb2RlPnJvbGwoZiwgZGVsdGEpPC9jb2RlPjwvc3Ryb25nPiBhZGRzCisgKiA8Y29kZT5kZWx0YTwvY29kZT4gdG8gZmllbGQgPGNvZGU+ZjwvY29kZT4gd2l0aG91dCBjaGFuZ2luZyBsYXJnZXIKKyAqIGZpZWxkcy4gVGhpcyBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgPGNvZGU+YWRkKGYsIGRlbHRhKTwvY29kZT4gd2l0aAorICogdGhlIGZvbGxvd2luZyBhZGp1c3RtZW50OjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgPHA+PHN0cm9uZz5Sb2xsIHJ1bGU8L3N0cm9uZz4uIExhcmdlciBmaWVsZHMgYXJlIHVuY2hhbmdlZCBhZnRlciB0aGUKKyAqICAgY2FsbC4gQSBsYXJnZXIgZmllbGQgcmVwcmVzZW50cyBhIGxhcmdlciB1bml0IG9mCisgKiAgIHRpbWUuIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gaXMgYSBsYXJnZXIgZmllbGQgdGhhbgorICogICA8Y29kZT5IT1VSPC9jb2RlPi48L3A+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+PGVtPkV4YW1wbGU8L2VtPjogQ29uc2lkZXIgYSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIG9yaWdpbmFsbHkgc2V0IHRvIEF1Z3VzdCAzMSwgMTk5OS4gQ2FsbGluZyA8Y29kZT5yb2xsKENhbGVuZGFyLk1PTlRILAorICogOCk8L2NvZGU+IHNldHMgdGhlIGNhbGVuZGFyIHRvIEFwcmlsIDMwLCA8c3Ryb25nPjE5OTk8L3N0cm9uZz4uICBBZGQKKyAqIHJ1bGUgMSBzZXRzIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgdG8gQXByaWwuIFVzaW5nIGEKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiwgdGhlIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gY2Fubm90CisgKiBiZSAzMSBpbiB0aGUgbW9udGggQXByaWwuIEFkZCBydWxlIDIgc2V0cyBpdCB0byB0aGUgY2xvc2VzdCBwb3NzaWJsZQorICogdmFsdWUsIDMwLiBGaW5hbGx5LCB0aGUgPHN0cm9uZz5yb2xsIHJ1bGU8L3N0cm9uZz4gbWFpbnRhaW5zIHRoZQorICogPGNvZGU+WUVBUjwvY29kZT4gZmllbGQgdmFsdWUgb2YgMTk5OS48L3A+CisgKgorICogPHA+PGVtPkV4YW1wbGU8L2VtPjogQ29uc2lkZXIgYSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIG9yaWdpbmFsbHkgc2V0IHRvIFN1bmRheSBKdW5lIDYsIDE5OTkuIENhbGxpbmcKKyAqIDxjb2RlPnJvbGwoQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgLTEpPC9jb2RlPiBzZXRzIHRoZSBjYWxlbmRhciB0bworICogVHVlc2RheSBKdW5lIDEsIDE5OTksIHdoZXJlYXMgY2FsbGluZworICogPGNvZGU+YWRkKENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIC0xKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8KKyAqIFN1bmRheSBNYXkgMzAsIDE5OTkuIFRoaXMgaXMgYmVjYXVzZSB0aGUgcm9sbCBydWxlIGltcG9zZXMgYW4KKyAqIGFkZGl0aW9uYWwgY29uc3RyYWludDogVGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBtdXN0IG5vdCBjaGFuZ2Ugd2hlbiB0aGUKKyAqIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+IGlzIHJvbGxlZC4gVGFrZW4gdG9nZXRoZXIgd2l0aCBhZGQgcnVsZSAxLAorICogdGhlIHJlc3VsdGFudCBkYXRlIG11c3QgYmUgYmV0d2VlbiBUdWVzZGF5IEp1bmUgMSBhbmQgU2F0dXJkYXkgSnVuZQorICogNS4gQWNjb3JkaW5nIHRvIGFkZCBydWxlIDIsIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4sIGFuIGludmFyaWFudAorICogd2hlbiBjaGFuZ2luZyB0aGUgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4sIGlzIHNldCB0byBUdWVzZGF5LCB0aGUKKyAqIGNsb3Nlc3QgcG9zc2libGUgdmFsdWUgdG8gU3VuZGF5ICh3aGVyZSBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUKKyAqIHdlZWspLjwvcD4KKyAqCisgKiA8cD48c3Ryb25nPlVzYWdlIG1vZGVsPC9zdHJvbmc+LiBUbyBtb3RpdmF0ZSB0aGUgYmVoYXZpb3Igb2YKKyAqIDxjb2RlPmFkZCgpPC9jb2RlPiBhbmQgPGNvZGU+cm9sbCgpPC9jb2RlPiwgY29uc2lkZXIgYSB1c2VyIGludGVyZmFjZQorICogY29tcG9uZW50IHdpdGggaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBmb3IgdGhlIG1vbnRoLCBkYXksIGFuZAorICogeWVhciwgYW5kIGFuIHVuZGVybHlpbmcgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+LiBJZiB0aGUKKyAqIGludGVyZmFjZSByZWFkcyBKYW51YXJ5IDMxLCAxOTk5IGFuZCB0aGUgdXNlciBwcmVzc2VzIHRoZSBtb250aAorICogaW5jcmVtZW50IGJ1dHRvbiwgd2hhdCBzaG91bGQgaXQgcmVhZD8gSWYgdGhlIHVuZGVybHlpbmcKKyAqIGltcGxlbWVudGF0aW9uIHVzZXMgPGNvZGU+c2V0KCk8L2NvZGU+LCBpdCBtaWdodCByZWFkIE1hcmNoIDMsIDE5OTkuIEEKKyAqIGJldHRlciByZXN1bHQgd291bGQgYmUgRmVicnVhcnkgMjgsIDE5OTkuIEZ1cnRoZXJtb3JlLCBpZiB0aGUgdXNlcgorICogcHJlc3NlcyB0aGUgbW9udGggaW5jcmVtZW50IGJ1dHRvbiBhZ2FpbiwgaXQgc2hvdWxkIHJlYWQgTWFyY2ggMzEsCisgKiAxOTk5LCBub3QgTWFyY2ggMjgsIDE5OTkuIEJ5IHNhdmluZyB0aGUgb3JpZ2luYWwgZGF0ZSBhbmQgdXNpbmcgZWl0aGVyCisgKiA8Y29kZT5hZGQoKTwvY29kZT4gb3IgPGNvZGU+cm9sbCgpPC9jb2RlPiwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgbGFyZ2VyCisgKiBmaWVsZHMgc2hvdWxkIGJlIGFmZmVjdGVkLCB0aGUgdXNlciBpbnRlcmZhY2UgY2FuIGJlaGF2ZSBhcyBtb3N0IHVzZXJzCisgKiB3aWxsIGludHVpdGl2ZWx5IGV4cGVjdC48L3A+CisgKgorICogPHA+PGI+Tm90ZTo8L2I+IFlvdSBzaG91bGQgYWx3YXlzIHVzZSB7QGxpbmsgI3JvbGwgcm9sbH0gYW5kIHtAbGluayAjYWRkIGFkZH0gcmF0aGVyCisgKiB0aGFuIGF0dGVtcHRpbmcgdG8gcGVyZm9ybSBhcml0aG1ldGljIG9wZXJhdGlvbnMgZGlyZWN0bHkgb24gdGhlIGZpZWxkcworICogb2YgYSA8dHQ+Q2FsZW5kYXI8L3R0Pi4gIEl0IGlzIHF1aXRlIHBvc3NpYmxlIGZvciA8dHQ+Q2FsZW5kYXI8L3R0PiBzdWJjbGFzc2VzCisgKiB0byBoYXZlIGZpZWxkcyB3aXRoIG5vbi1saW5lYXIgYmVoYXZpb3IsIGZvciBleGFtcGxlIG1pc3NpbmcgbW9udGhzCisgKiBvciBkYXlzIGR1cmluZyBub24tbGVhcCB5ZWFycy4gIFRoZSBzdWJjbGFzc2VzJyA8dHQ+YWRkPC90dD4gYW5kIDx0dD5yb2xsPC90dD4KKyAqIG1ldGhvZHMgd2lsbCB0YWtlIHRoaXMgaW50byBhY2NvdW50LCB3aGlsZSBzaW1wbGUgYXJpdGhtZXRpYyBtYW5pcHVsYXRpb25zCisgKiBtYXkgZ2l2ZSBpbnZhbGlkIHJlc3VsdHMuCisgKgorICogPHA+PGJpZz48YmlnPjxiPkNhbGVuZGFyIEFyY2hpdGVjdHVyZSBpbiBJQ1U0SjwvYj48L2JpZz48L2JpZz48L3A+CisgKgorICogPHA+UmVjZW50bHkgdGhlIGltcGxlbWVudGF0aW9uIG9mIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBoYXMgY2hhbmdlZAorICogc2lnbmlmaWNhbnRseSBpbiBvcmRlciB0byBiZXR0ZXIgc3VwcG9ydCBzdWJjbGFzc2luZy4gVGhlIG9yaWdpbmFsCisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gY2xhc3Mgd2FzIGRlc2lnbmVkIHRvIHN1cHBvcnQgc3ViY2xhc3NpbmcsIGJ1dAorICogaXQgaGFkIG9ubHkgb25lIGltcGxlbWVudGVkIHN1YmNsYXNzLCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4uCisgKiBXaXRoIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBzZXZlcmFsIG5ldyBjYWxlbmRhciBzdWJjbGFzc2VzLCBpbmNsdWRpbmcKKyAqIHRoZSA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiwgPGNvZGU+Q2hpbmVzZUNhbGVuZGFyPC9jb2RlPiwKKyAqIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiwgPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiwgYW5kCisgKiA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiwgdGhlIHN1YmNsYXNzaW5nIEFQSSBoYXMgYmVlbiByZXdvcmtlZAorICogdGhvcm91Z2hseS4gVGhpcyBzZWN0aW9uIGRldGFpbHMgdGhlIG5ldyBzdWJjbGFzc2luZyBBUEkgYW5kIG90aGVyCisgKiB3YXlzIGluIHdoaWNoIDxjb2RlPmNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI8L2NvZGU+IGRpZmZlcnMgZnJvbQorICogPGNvZGU+amF2YS51dGlsLkNhbGVuZGFyPC9jb2RlPi4KKyAqIDwvcD4KKyAqCisgKiA8cD48YmlnPjxiPkNoYW5nZXM8L2I+PC9iaWc+PC9wPgorICoKKyAqIDxwPk92ZXJ2aWV3IG9mIGNoYW5nZXMgYmV0d2VlbiB0aGUgY2xhc3NpYyA8Y29kZT5DYWxlbmRhcjwvY29kZT4KKyAqIGFyY2hpdGVjdHVyZSBhbmQgdGhlIG5ldyBhcmNoaXRlY3R1cmUuCisgKgorICogPHVsPgorICoKKyAqICAgPGxpPlRoZSA8Y29kZT5maWVsZHNbXTwvY29kZT4gYXJyYXkgaXMgPGNvZGU+cHJpdmF0ZTwvY29kZT4gbm93CisgKiAgICAgaW5zdGVhZCBvZiA8Y29kZT5wcm90ZWN0ZWQ8L2NvZGU+LiAgU3ViY2xhc3NlcyBtdXN0IGFjY2VzcyBpdAorICogICAgIHVzaW5nIHRoZSBtZXRob2RzIHtAbGluayAjaW50ZXJuYWxTZXR9IGFuZAorICogICAgIHtAbGluayAjaW50ZXJuYWxHZXR9LiAgPGI+TW90aXZhdGlvbjo8L2I+IFN1YmNsYXNzZXMgc2hvdWxkCisgKiAgICAgbm90IGRpcmVjdGx5IGFjY2VzcyBkYXRhIG1lbWJlcnMuPC9saT4KKyAqCisgKiAgIDxsaT5UaGUgPGNvZGU+dGltZTwvY29kZT4gbG9uZyB3b3JkIGlzIDxjb2RlPnByaXZhdGU8L2NvZGU+IG5vdworICogICAgIGluc3RlYWQgb2YgPGNvZGU+cHJvdGVjdGVkPC9jb2RlPi4gIFN1YmNsYXNzZXMgbWF5IGFjY2VzcyBpdCB1c2luZworICogICAgIHRoZSBtZXRob2Qge0BsaW5rICNpbnRlcm5hbEdldFRpbWVJbk1pbGxpc30sIHdoaWNoIGRvZXMgbm90CisgKiAgICAgcHJvdm9rZSBhbiB1cGRhdGUuIDxiPk1vdGl2YXRpb246PC9iPiBTdWJjbGFzc2VzIHNob3VsZCBub3QKKyAqICAgICBkaXJlY3RseSBhY2Nlc3MgZGF0YSBtZW1iZXJzLjwvbGk+CisgKgorICogICA8bGk+VGhlIHNjb3BlIG9mIHJlc3BvbnNpYmlsaXR5IG9mIHN1YmNsYXNzZXMgaGFzIGJlZW4gZHJhc3RpY2FsbHkKKyAqICAgICByZWR1Y2VkLiBBcyBtdWNoIGZ1bmN0aW9uYWxpdHkgYXMgcG9zc2libGUgaXMgaW1wbGVtZW50ZWQgaW4gdGhlCisgKiAgICAgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGJhc2UgY2xhc3MuIEFzIGEgcmVzdWx0LCBpdCBpcyBtdWNoIGVhc2llcgorICogICAgIHRvIHN1YmNsYXNzIDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4gPGI+TW90aXZhdGlvbjo8L2I+IFN1YmNsYXNzZXMKKyAqICAgICBzaG91bGQgbm90IGhhdmUgdG8gcmVpbXBsZW1lbnQgY29tbW9uIGNvZGUuIENlcnRhaW4gYmVoYXZpb3JzIGFyZQorICogICAgIGNvbW1vbiBhY3Jvc3MgY2FsZW5kYXIgc3lzdGVtczogVGhlIGRlZmluaXRpb24gYW5kIGJlaGF2aW9yIG9mCisgKiAgICAgd2Vlay1yZWxhdGVkIGZpZWxkcyBhbmQgdGltZSBmaWVsZHMsIHRoZSBhcml0aG1ldGljCisgKiAgICAgKHtAbGluayAjYWRkKGludCwgaW50KSBhZGR9IGFuZCB7QGxpbmsgI3JvbGwoaW50LCBpbnQpIHJvbGx9KSBiZWhhdmlvciBvZiBtYW55CisgKiAgICAgZmllbGRzLCBhbmQgdGhlIGZpZWxkIHZhbGlkYXRpb24gc3lzdGVtLjwvbGk+CisgKgorICogICA8bGk+VGhlIHN1YmNsYXNzaW5nIEFQSSBoYXMgYmVlbiBjb21wbGV0ZWx5IHJlZGVzaWduZWQuPC9saT4KKyAqCisgKiAgIDxsaT5UaGUgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGJhc2UgY2xhc3MgY29udGFpbnMgc29tZSBHcmVnb3JpYW4KKyAqICAgICBjYWxlbmRhciBhbGdvcml0aG1pYyBzdXBwb3J0IHRoYXQgc3ViY2xhc3NlcyBjYW4gdXNlIChzcGVjaWZpY2FsbHkKKyAqICAgICBpbiB7QGxpbmsgI2hhbmRsZUNvbXB1dGVGaWVsZHN9KS4gIFN1YmNsYXNzZXMgY2FuIHVzZSB0aGUKKyAqICAgICBtZXRob2RzIDxjb2RlPmdldEdyZWdvcmlhblh4eCgpPC9jb2RlPiB0byBvYnRhaW4gcHJlY29tcHV0ZWQKKyAqICAgICB2YWx1ZXMuIDxiPk1vdGl2YXRpb246PC9iPiBUaGlzIGlzIHJlcXVpcmVkIGJ5IGFsbAorICogICAgIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBzdWJjbGFzc2VzIGluIG9yZGVyIHRvIGltcGxlbWVudCBjb25zaXN0ZW50CisgKiAgICAgdGltZSB6b25lIGJlaGF2aW9yLCBhbmQgR3JlZ29yaWFuLWRlcml2ZWQgc3lzdGVtcyBjYW4gdXNlIHRoZQorICogICAgIGFscmVhZHkgY29tcHV0ZWQgZGF0YS48L2xpPgorICoKKyAqICAgPGxpPlRoZSA8Y29kZT5GSUVMRF9DT1VOVDwvY29kZT4gY29uc3RhbnQgaGFzIGJlZW4gcmVtb3ZlZC4gVXNlCisgKiAgICAge0BsaW5rICNnZXRGaWVsZENvdW50fS4gIEluIGFkZGl0aW9uLCBmcmFtZXdvcmsgQVBJIGhhcyBiZWVuCisgKiAgICAgYWRkZWQgdG8gYWxsb3cgc3ViY2xhc3NlcyB0byBkZWZpbmUgYWRkaXRpb25hbCBmaWVsZHMuCisgKiAgICAgPGI+TW90aXZhdGlvbjogPC9iPlRoZSBudW1iZXIgb2YgZmllbGRzIGlzIG5vdCBjb25zdGFudCBhY3Jvc3MKKyAqICAgICBjYWxlbmRhciBzeXN0ZW1zLjwvbGk+CisgKgorICogICA8bGk+VGhlIHJhbmdlIG9mIGhhbmRsZWQgZGF0ZXMgaGFzIGJlZW4gbmFycm93ZWQgZnJvbSArLy0KKyAqICAgICB+MzAwLDAwMCwwMDAgeWVhcnMgdG8gKy8tIH41LDAwMCwwMDAgeWVhcnMuIEluIHByYWN0aWNhbCB0ZXJtcworICogICAgIHRoaXMgc2hvdWxkIG5vdCBhZmZlY3QgY2xpZW50cy4gSG93ZXZlciwgaXQgZG9lcyBtZWFuIHRoYXQgY2xpZW50CisgKiAgICAgY29kZSBjYW5ub3QgYmUgZ3VhcmFudGVlZCB3ZWxsLWJlaGF2ZWQgcmVzdWx0cyB3aXRoIGRhdGVzIHN1Y2ggYXMKKyAqICAgICA8Y29kZT5EYXRlKExvbmcuTUlOX1ZBTFVFKTwvY29kZT4gb3IKKyAqICAgICA8Y29kZT5EYXRlKExvbmcuTUFYX1ZBTFVFKTwvY29kZT4uIEluc3RlYWQsIHRoZQorICogICAgIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBjb25zdGFudHMge0BsaW5rICNNSU5fREFURX0sCisgKiAgICAge0BsaW5rICNNQVhfREFURX0sIHtAbGluayAjTUlOX01JTExJU30sCisgKiAgICAge0BsaW5rICNNQVhfTUlMTElTfSwge0BsaW5rICNNSU5fSlVMSUFOfSwgYW5kCisgKiAgICAge0BsaW5rICNNQVhfSlVMSUFOfSBzaG91bGQgYmUgdXNlZC4gPGI+TW90aXZhdGlvbjo8L2I+IFdpdGgKKyAqICAgICB0aGUgYWRkaXRpb24gb2YgdGhlIHtAbGluayAjSlVMSUFOX0RBWX0gZmllbGQsIEp1bGlhbiBkYXkKKyAqICAgICBudW1iZXJzIG11c3QgYmUgcmVzdHJpY3RlZCB0byBhIDMyLWJpdCA8Y29kZT5pbnQ8L2NvZGU+LiAgVGhpcworICogICAgIHJlc3RyaWN0cyB0aGUgb3ZlcmFsbCBzdXBwb3J0ZWQgcmFuZ2UuIEZ1cnRoZXJtb3JlLCByZXN0cmljdGluZworICogICAgIHRoZSBzdXBwb3J0ZWQgcmFuZ2Ugc2ltcGxpZmllcyB0aGUgY29tcHV0YXRpb25zIGJ5IHJlbW92aW5nCisgKiAgICAgc3BlY2lhbCBjYXNlIGNvZGUgdGhhdCB3YXMgdXNlZCB0byBhY2NvbW9kYXRlIGFyaXRobWV0aWMgb3ZlcmZsb3cKKyAqICAgICBhdCBtaWxsaXMgbmVhciA8Y29kZT5Mb25nLk1JTl9WQUxVRTwvY29kZT4gYW5kCisgKiAgICAgPGNvZGU+TG9uZy5NQVhfVkFMVUU8L2NvZGU+LjwvbGk+CisgKgorICogICA8bGk+TmV3IGZpZWxkcyBhcmUgaW1wbGVtZW50ZWQ6IHtAbGluayAjSlVMSUFOX0RBWX0gZGVmaW5lcworICogICAgIHNpbmdsZS1maWVsZCBzcGVjaWZpY2F0aW9uIG9mIHRoZQorICogICAgIGRhdGUuIHtAbGluayAjTUlMTElTRUNPTkRTX0lOX0RBWX0gZGVmaW5lcyBhIHNpbmdsZS1maWVsZAorICogICAgIHNwZWNpZmljYXRpb24gb2YgdGhlIHdhbGwgdGltZS4ge0BsaW5rICNET1dfTE9DQUx9IGFuZAorICogICAgIHtAbGluayAjWUVBUl9XT1l9IGltcGxlbWVudCBsb2NhbGl6ZWQgZGF5LW9mLXdlZWsgYW5kCisgKiAgICAgd2Vlay1vZi15ZWFyIGJlaGF2aW9yLjwvbGk+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBjYW4gYWNjZXNzIG1pbGxpc2Vjb25kIGNvbnN0YW50cworICogICAgIHtAbGluayAjT05FX1NFQ09ORH0sIHtAbGluayAjT05FX01JTlVURX0sCisgKiAgICAge0BsaW5rICNPTkVfSE9VUn0sIHtAbGluayAjT05FX0RBWX0sIGFuZAorICogICAgIHtAbGluayAjT05FX1dFRUt9IGRlZmluZWQgaW4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LjwvbGk+CisgKgorICogICA8bGk+TmV3IEFQSSBoYXMgYmVlbiBhZGRlZCB0byBzdXBvcnQgY2FsZW5kYXItc3BlY2lmaWMgc3ViY2xhc3NlcworICogICAgIG9mIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+LjwvbGk+CisgKgorICogICA8bGk+U2V2ZXJhbCBzdWJjbGFzc2VzIGhhdmUgYmVlbiBpbXBsZW1lbnRlZCwgcmVwcmVzZW50aW5nCisgKiAgICAgdmFyaW91cyBpbnRlcm5hdGlvbmFsIGNhbGVuZGFyIHN5c3RlbXMuPC9saT4KKyAqCisgKiA8L3VsPgorICoKKyAqIDxwPjxiaWc+PGI+U3ViY2xhc3MgQVBJPC9iPjwvYmlnPjwvcD4KKyAqCisgKiA8cD5UaGUgb3JpZ2luYWwgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IEFQSSB3YXMgYmFzZWQgb24gdGhlIGV4cGVyaWVuY2UKKyAqIG9mIGltcGxlbWVudGluZyBhIG9ubHkgYSBzaW5nbGUgc3ViY2xhc3MsCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4uIEFzIGEgcmVzdWx0LCBhbGwgb2YgdGhlIHN1YmNsYXNzaW5nCisgKiBraW5rcyBoYWQgbm90IGJlZW4gd29ya2VkIG91dC4gVGhlIG5ldyBzdWJjbGFzc2luZyBBUEkgaGFzIGJlZW4KKyAqIHJlZmluZWQgYmFzZWQgb24gc2V2ZXJhbCBpbXBsZW1lbnRlZCBzdWJjbGFzc2VzLiBUaGlzIGluY2x1ZGVzIG1ldGhvZHMKKyAqIHRoYXQgbXVzdCBiZSBvdmVycmlkZGVuIGFuZCBtZXRob2RzIGZvciBzdWJjbGFzc2VzIHRvIGNhbGwuIFN1YmNsYXNzZXMKKyAqIG5vIGxvbmdlciBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gPGNvZGU+ZmllbGRzPC9jb2RlPiBhbmQKKyAqIDxjb2RlPnN0YW1wPC9jb2RlPi4gSW5zdGVhZCwgdGhleSBoYXZlIG5ldyBBUEkgdG8gYWNjZXNzCisgKiB0aGVzZS4gU3ViY2xhc3NlcyBhcmUgYWJsZSB0byBhbGxvY2F0ZSB0aGUgPGNvZGU+ZmllbGRzPC9jb2RlPiBhcnJheQorICogdGhyb3VnaCBhIHByb3RlY3RlZCBmcmFtZXdvcmsgbWV0aG9kOyB0aGlzIGFsbG93cyBzdWJjbGFzc2VzIHRvCisgKiBzcGVjaWZ5IGFkZGl0aW9uYWwgZmllbGRzLiA8L3A+CisgKgorICogPHA+TW9yZSBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIG1vdmVkIGludG8gdGhlIGJhc2UgY2xhc3MuIFRoZSBiYXNlCisgKiBjbGFzcyBub3cgY29udGFpbnMgbXVjaCBvZiB0aGUgY29tcHV0YXRpb25hbCBtYWNoaW5lcnkgdG8gc3VwcG9ydCB0aGUKKyAqIEdyZWdvcmlhbiBjYWxlbmRhci4gVGhpcyBpcyBiYXNlZCBvbiB0d28gdGhpbmdzOiAoMSkgTWFueSBjYWxlbmRhcnMKKyAqIGFyZSBiYXNlZCBvbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIChzdWNoIGFzIHRoZSBCdWRkaGlzdCBhbmQgSmFwYW5lc2UKKyAqIGltcGVyaWFsIGNhbGVuZGFycykuICgyKSA8ZW0+QWxsPC9lbT4gY2FsZW5kYXJzIHJlcXVpcmUgYmFzaWMKKyAqIEdyZWdvcmlhbiBzdXBwb3J0IGluIG9yZGVyIHRvIGhhbmRsZSB0aW1lem9uZSBjb21wdXRhdGlvbnMuIDwvcD4KKyAqCisgKiA8cD5Db21tb24gY29tcHV0YXRpb25zIGhhdmUgYmVlbiBtb3ZlZCBpbnRvCisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4uIFN1YmNsYXNzZXMgbm8gbG9uZ2VyIGNvbXB1dGUgdGhlIHdlZWsgcmVsYXRlZAorICogZmllbGRzIGFuZCB0aGUgdGltZSByZWxhdGVkIGZpZWxkcy4gVGhlc2UgYXJlIGNvbW1vbmx5IGhhbmRsZWQgZm9yIGFsbAorICogY2FsZW5kYXJzIGJ5IHRoZSBiYXNlIGNsYXNzLiA8L3A+CisgKgorICogPHA+PGI+U3ViY2xhc3MgY29tcHV0YXRpb24gb2YgdGltZSA8dHQ+PSZndDs8L3R0PiBmaWVsZHM8L2I+CisgKgorICogPHA+VGhlIHtAbGluayAjRVJBfSwge0BsaW5rICNZRUFSfSwKKyAqIHtAbGluayAjRVhURU5ERURfWUVBUn0sIHtAbGluayAjTU9OVEh9LAorICoge0BsaW5rICNEQVlfT0ZfTU9OVEh9LCBhbmQge0BsaW5rICNEQVlfT0ZfWUVBUn0gZmllbGRzIGFyZQorICogY29tcHV0ZWQgYnkgdGhlIHN1YmNsYXNzLCBiYXNlZCBvbiB0aGUgSnVsaWFuIGRheS4gQWxsIG90aGVyIGZpZWxkcworICogYXJlIGNvbXB1dGVkIGJ5IDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4KKyAqCisgKiA8dWw+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjaGFuZGxlQ29tcHV0ZUZpZWxkc30KKyAqICAgICB0byBjb21wdXRlIHRoZSB7QGxpbmsgI0VSQX0sIHtAbGluayAjWUVBUn0sCisgKiAgICAge0BsaW5rICNFWFRFTkRFRF9ZRUFSfSwge0BsaW5rICNNT05USH0sCisgKiAgICAge0BsaW5rICNEQVlfT0ZfTU9OVEh9LCBhbmQge0BsaW5rICNEQVlfT0ZfWUVBUn0gZmllbGRzLAorICogICAgIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiB0aGUge0BsaW5rICNKVUxJQU5fREFZfSBmaWVsZC4gSWYgdGhlcmUKKyAqICAgICBhcmUgY2FsZW5kYXItc3BlY2lmaWMgZmllbGRzIG5vdCBkZWZpbmVkIGJ5IDxjb2RlPkNhbGVuZGFyPC9jb2RlPiwKKyAqICAgICB0aGV5IG11c3QgYWxzbyBiZSBjb21wdXRlZC4gVGhlc2UgYXJlIHRoZSBvbmx5IGZpZWxkcyB0aGF0IHRoZQorICogICAgIHN1YmNsYXNzIHNob3VsZCBjb21wdXRlLiBBbGwgb3RoZXIgZmllbGRzIGFyZSBjb21wdXRlZCBieSB0aGUgYmFzZQorICogICAgIGNsYXNzLCBzbyB0aW1lIGFuZCB3ZWVrIGZpZWxkcyBiZWhhdmUgaW4gYSBjb25zaXN0ZW50IHdheSBhY3Jvc3MKKyAqICAgICBhbGwgY2FsZW5kYXJzLiBUaGUgZGVmYXVsdCB2ZXJzaW9uIG9mIHRoaXMgbWV0aG9kIGluCisgKiAgICAgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGltcGxlbWVudHMgYSBwcm9sZXB0aWMgR3JlZ29yaWFuCisgKiAgICAgY2FsZW5kYXIuIFdpdGhpbiB0aGlzIG1ldGhvZCwgc3ViY2xhc3NlcyBtYXkgY2FsbAorICogICAgIDxjb2RlPmdldEdyZWdvcmlhblh4eCgpPC9jb2RlPiB0byBvYnRhaW4gdGhlIEdyZWdvcmlhbiBjYWxlbmRhcgorICogICAgIG1vbnRoLCBkYXkgb2YgbW9udGgsIGFuZCBleHRlbmRlZCB5ZWFyIGZvciB0aGUgZ2l2ZW4gZGF0ZS48L2xpPgorICoKKyAqIDwvdWw+CisgKgorICogPHA+PGI+U3ViY2xhc3MgY29tcHV0YXRpb24gb2YgZmllbGRzIDx0dD49Jmd0OzwvdHQ+IHRpbWU8L2I+CisgKgorICogPHA+VGhlIGludGVycHJldGF0aW9uIG9mIG1vc3QgZmllbGQgdmFsdWVzIGlzIGhhbmRsZWQgZW50aXJlbHkgYnkKKyAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGRldGVybWluZXMgd2hpY2ggZmllbGRzCisgKiBhcmUgc2V0LCB3aGljaCBhcmUgbm90LCB3aGljaCBhcmUgc2V0IG1vcmUgcmVjZW50bHksIGFuZCBzbyBvbi4gSW4KKyAqIGFkZGl0aW9uLCA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaGFuZGxlcyB0aGUgY29tcHV0YXRpb24gb2YgdGhlIHRpbWUKKyAqIGZyb20gdGhlIHRpbWUgZmllbGRzIGFuZCBoYW5kbGVzIHRoZSB3ZWVrLXJlbGF0ZWQgZmllbGRzLiBUaGUgb25seQorICogdGhpbmcgdGhlIHN1YmNsYXNzIG11c3QgZG8gaXMgZGV0ZXJtaW5lIHRoZSBleHRlbmRlZCB5ZWFyLCBiYXNlZCBvbgorICogdGhlIHllYXIgZmllbGRzLCBhbmQgdGhlbiwgZ2l2ZW4gYW4gZXh0ZW5kZWQgeWVhciBhbmQgYSBtb250aCwgaXQgbXVzdAorICogcmV0dXJuIGEgSnVsaWFuIGRheSBudW1iZXIuCisgKgorICogPHVsPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB7QGxpbmsgI2hhbmRsZUdldEV4dGVuZGVkWWVhcn0KKyAqICAgICB0byByZXR1cm4gdGhlIGV4dGVuZGVkIHllYXIgZm9yIHRoaXMgY2FsZW5kYXIgc3lzdGVtLCBiYXNlZCBvbiB0aGUKKyAqICAgICB7QGxpbmsgI1lFQVJ9LCB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9LCBhbmQgYW55IGZpZWxkcyB0aGF0CisgKiAgICAgdGhlIGNhbGVuZGFyIHN5c3RlbSB1c2VzIHRoYXQgYXJlIGxhcmdlciB0aGFuIGEgeWVhciwgc3VjaCBhcworICogICAgIHtAbGluayAjRVJBfS48L2xpPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB7QGxpbmsgI2hhbmRsZUNvbXB1dGVNb250aFN0YXJ0fQorICogICAgIHRvIHJldHVybiB0aGUgSnVsaWFuIGRheSBudW1iZXIKKyAqICAgICBhc3NvY2lhdGVkIHdpdGggYSBtb250aCBhbmQgZXh0ZW5kZWQgeWVhci4gVGhpcyBpcyB0aGUgSnVsaWFuIGRheQorICogICAgIG51bWJlciBvZiB0aGUgZGF5IGJlZm9yZSB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aC4gVGhlIG1vbnRoCisgKiAgICAgbnVtYmVyIGlzIHplcm8tYmFzZWQuIFRoaXMgY29tcHV0YXRpb24gc2hvdWxkIG5vdCBkZXBlbmQgb24gYW55CisgKiAgICAgZmllbGQgdmFsdWVzLjwvbGk+CisgKgorICogPC91bD4KKyAqCisgKiA8cD48Yj5PdGhlciBtZXRob2RzPC9iPgorICoKKyAqIDx1bD4KKyAqCisgKiAgIDxsaT5TdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQge0BsaW5rICNoYW5kbGVHZXRNb250aExlbmd0aH0KKyAqICAgICB0byByZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIGEKKyAqICAgICBnaXZlbiBtb250aCBvZiBhIGdpdmVuIGV4dGVuZGVkIHllYXIuIFRoZSBtb250aCBudW1iZXIsIGFzIGFsd2F5cywKKyAqICAgICBpcyB6ZXJvLWJhc2VkLjwvbGk+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjaGFuZGxlR2V0WWVhckxlbmd0aH0KKyAqICAgICB0byByZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbgorICogICAgIGV4dGVuZGVkIHllYXIuIFRoaXMgbWV0aG9kIGlzIHVzZWQgYnkKKyAqICAgICA8dHQ+Y29tcHV0ZVdlZWtGaWVsZHM8L3R0PiB0byBjb21wdXRlIHRoZQorICogICAgIHtAbGluayAjV0VFS19PRl9ZRUFSfSBhbmQge0BsaW5rICNZRUFSX1dPWX0gZmllbGRzLjwvbGk+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjaGFuZGxlR2V0TGltaXR9CisgKiAgICAgdG8gcmV0dXJuIHRoZSB7QGxpbmsgI01JTklNVU19LAorICogICAgIHtAbGluayAjR1JFQVRFU1RfTUlOSU1VTX0sIHtAbGluayAjTEVBU1RfTUFYSU1VTX0sIG9yCisgKiAgICAge0BsaW5rICNNQVhJTVVNfSBvZiBhIGZpZWxkLCBkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mCisgKiAgICAgPGNvZGU+bGltaXRUeXBlPC9jb2RlPi4gVGhpcyBtZXRob2Qgb25seSBuZWVkcyB0byBoYW5kbGUgdGhlCisgKiAgICAgZmllbGRzIHtAbGluayAjRVJBfSwge0BsaW5rICNZRUFSfSwge0BsaW5rICNNT05USH0sCisgKiAgICAge0BsaW5rICNXRUVLX09GX1lFQVJ9LCB7QGxpbmsgI1dFRUtfT0ZfTU9OVEh9LAorICogICAgIHtAbGluayAjREFZX09GX01PTlRIfSwge0BsaW5rICNEQVlfT0ZfWUVBUn0sCisgKiAgICAge0BsaW5rICNEQVlfT0ZfV0VFS19JTl9NT05USH0sIHtAbGluayAjWUVBUl9XT1l9LCBhbmQKKyAqICAgICB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9LiAgT3RoZXIgZmllbGRzIGFyZSBpbnZhcmlhbnQgKHdpdGgKKyAqICAgICByZXNwZWN0IHRvIGNhbGVuZGFyIHN5c3RlbSkgYW5kIGFyZSBoYW5kbGVkIGJ5IHRoZSBiYXNlCisgKiAgICAgY2xhc3MuPC9saT4KKyAqCisgKiAgIDxsaT5PcHRpb25hbGx5LCBzdWJjbGFzc2VzIG1heSBvdmVycmlkZSB7QGxpbmsgI3ZhbGlkYXRlRmllbGR9CisgKiAgICAgdG8gY2hlY2sgYW55IHN1YmNsYXNzLXNwZWNpZmljIGZpZWxkcy4gSWYgdGhlCisgKiAgICAgZmllbGQncyB2YWx1ZSBpcyBvdXQgb2YgcmFuZ2UsIHRoZSBtZXRob2Qgc2hvdWxkIHRocm93IGFuCisgKiAgICAgPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPi4gVGhlIG1ldGhvZCBtYXkgY2FsbAorICogICAgIDxjb2RlPnN1cGVyLnZhbGlkYXRlRmllbGQoZmllbGQpPC9jb2RlPiB0byBoYW5kbGUgZmllbGRzIGluIGEKKyAqICAgICBnZW5lcmljIHdheSwgdGhhdCBpcywgdG8gY29tcGFyZSB0aGVtIHRvIHRoZSByYW5nZQorICogICAgIDxjb2RlPmdldE1pbmltdW0oZmllbGQpPC9jb2RlPi4uPGNvZGU+Z2V0TWF4aW11bShmaWVsZCk8L2NvZGU+LjwvbGk+CisgKgorICogICA8bGk+T3B0aW9uYWxseSwgc3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUKKyAqICAgICB7QGxpbmsgI2hhbmRsZUNyZWF0ZUZpZWxkc30gdG8gY3JlYXRlIGFuIDxjb2RlPmludFtdPC9jb2RlPgorICogICAgIGFycmF5IGxhcmdlIGVub3VnaCB0byBob2xkIHRoZSBjYWxlbmRhcidzIGZpZWxkcy4gVGhpcyBpcyBvbmx5CisgKiAgICAgbmVjZXNzYXJ5IGlmIHRoZSBjYWxlbmRhciBkZWZpbmVzIGFkZGl0aW9uYWwgZmllbGRzIGJleW9uZCB0aG9zZQorICogICAgIGRlZmluZWQgYnkgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgbXVzdCBiZQorICogICAgIGF0IGxlYXN0IHtAbGluayAjQkFTRV9GSUVMRF9DT1VOVH0gYW5kIG5vIG1vcmUgdGhhbgorICogICAgIHtAbGluayAjTUFYX0ZJRUxEX0NPVU5UfS48L2xpPgorICoKKyAqICAgPGxpPk9wdGlvbmFsbHksIHN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlCisgKiAgICAge0BsaW5rICNoYW5kbGVHZXREYXRlRm9ybWF0fSB0byBjcmVhdGUgYQorICogICAgIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFwcHJvcHJpYXRlIHRvIHRoaXMgY2FsZW5kYXIuIFRoaXMgaXMgb25seQorICogICAgIHJlcXVpcmVkIGlmIGEgY2FsZW5kYXIgc3ViY2xhc3MgcmVkZWZpbmVzIHRoZSB1c2Ugb2YgYSBmaWVsZCAoZm9yCisgKiAgICAgZXhhbXBsZSwgY2hhbmdlcyB0aGUge0BsaW5rICNFUkF9IGZpZWxkIGZyb20gYSBzeW1ib2xpYyBmaWVsZAorICogICAgIHRvIGEgbnVtZXJpYyBvbmUpIG9yIGRlZmluZXMgYW4gYWRkaXRpb25hbCBmaWVsZC48L2xpPgorICoKKyAqICAgPGxpPk9wdGlvbmFsbHksIHN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlIHtAbGluayAjcm9sbCByb2xsfSBhbmQKKyAqICAgICB7QGxpbmsgI2FkZCBhZGR9IHRvIGhhbmRsZSBmaWVsZHMgdGhhdCBhcmUgZGlzY29udGludW91cy4gRm9yCisgKiAgICAgZXhhbXBsZSwgaW4gdGhlIEhlYnJldyBjYWxlbmRhciB0aGUgbW9udGggJnF1b3Q7QWRhciBJJnF1b3Q7IG9ubHkKKyAqICAgICBvY2N1cnMgaW4gbGVhcCB5ZWFyczsgaW4gb3RoZXIgeWVhcnMgdGhlIGNhbGVuZGFyIGp1bXBzIGZyb20KKyAqICAgICBTaGV2YXQgKG1vbnRoICM0KSB0byBBZGFyIChtb250aCAjNikuIFRoZSB7QGxpbmsKKyAqICAgICBIZWJyZXdDYWxlbmRhciNhZGQgSGVicmV3Q2FsZW5kYXIuYWRkfSBhbmQge0BsaW5rCisgKiAgICAgSGVicmV3Q2FsZW5kYXIjcm9sbCBIZWJyZXdDYWxlbmRhci5yb2xsfSBtZXRob2RzIHRha2UgdGhpcyBpbnRvCisgKiAgICAgYWNjb3VudCwgc28gdGhhdCBhZGRpbmcgMSBtb250aCB0byBTaGV2YXQgZ2l2ZXMgdGhlIHByb3BlciByZXN1bHQKKyAqICAgICAoQWRhcikgaW4gYSBub24tbGVhcCB5ZWFyLiBUaGUgcHJvdGVjdGVkIHV0aWxpdHkgbWV0aG9kIHtAbGluaworICogICAgICNwaW5GaWVsZCBwaW5GaWVsZH0gaXMgb2Z0ZW4gdXNlZnVsIHdoZW4gaW1wbGVtZW50aW5nIHRoZXNlIHR3bworICogICAgIG1ldGhvZHMuIDwvbGk+CisgKgorICogPC91bD4KKyAqCisgKiA8cD48YmlnPjxiPk5vcm1hbGl6ZWQgYmVoYXZpb3I8L2I+PC9iaWc+CisgKgorICogPHA+VGhlIGJlaGF2aW9yIG9mIGNlcnRhaW4gZmllbGRzIGhhcyBiZWVuIG1hZGUgY29uc2lzdGVudCBhY3Jvc3MgYWxsCisgKiBjYWxlbmRhciBzeXN0ZW1zIGFuZCBpbXBsZW1lbnRlZCBpbiA8Y29kZT5DYWxlbmRhcjwvY29kZT4uCisgKgorICogPHVsPgorICoKKyAqICAgPGxpPlRpbWUgaXMgbm9ybWFsaXplZC4gRXZlbiB0aG91Z2ggc29tZSBjYWxlbmRhciBzeXN0ZW1zIHRyYW5zaXRpb24KKyAqICAgICBiZXR3ZWVuIGRheXMgYXQgc3Vuc2V0IG9yIGF0IG90aGVyIHRpbWVzLCBhbGwgSUNVNEogY2FsZW5kYXJzCisgKiAgICAgdHJhbnNpdGlvbiBiZXR3ZWVuIGRheXMgYXQgPGVtPmxvY2FsIHpvbmUgbWlkbmlnaHQ8L2VtPi4gIFRoaXMKKyAqICAgICBhbGxvd3MgSUNVNEogdG8gY2VudHJhbGl6ZSB0aGUgdGltZSBjb21wdXRhdGlvbnMgaW4KKyAqICAgICA8Y29kZT5DYWxlbmRhcjwvY29kZT4gYW5kIHRvIG1haW50YWluIGJhc2ljIGNvcnJlcHNvbmRlbmNlcworICogICAgIGJldHdlZW4gY2FsZW5kYXIgc3lzdGVtcy4gQWZmZWN0ZWQgZmllbGRzOiB7QGxpbmsgI0FNX1BNfSwKKyAqICAgICB7QGxpbmsgI0hPVVJ9LCB7QGxpbmsgI0hPVVJfT0ZfREFZfSwge0BsaW5rICNNSU5VVEV9LAorICogICAgIHtAbGluayAjU0VDT05EfSwge0BsaW5rICNNSUxMSVNFQ09ORH0sCisgKiAgICAge0BsaW5rICNaT05FX09GRlNFVH0sIGFuZCB7QGxpbmsgI0RTVF9PRkZTRVR9LjwvbGk+CisgKgorICogICA8bGk+RFNUIGJlaGF2aW9yIGlzIG5vcm1hbGl6ZWQuIERheWxpZ2h0IHNhdmluZ3MgdGltZSBiZWhhdmlvciBpcworICogICAgIGNvbXB1dGVkIHRoZSBzYW1lIGZvciBhbGwgY2FsZW5kYXIgc3lzdGVtcywgYW5kIGRlcGVuZHMgb24gdGhlCisgKiAgICAgdmFsdWUgb2Ygc2V2ZXJhbCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gZmllbGRzOiB0aGUKKyAqICAgICB7QGxpbmsgI1lFQVJ9LCB7QGxpbmsgI01PTlRIfSwgYW5kCisgKiAgICAge0BsaW5rICNEQVlfT0ZfTU9OVEh9LiBBcyBhIHJlc3VsdCwgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+CisgKiAgICAgYWx3YXlzIGNvbXB1dGVzIHRoZXNlIGZpZWxkcywgZXZlbiBmb3Igbm9uLUdyZWdvcmlhbiBjYWxlbmRhcgorICogICAgIHN5c3RlbXMuIFRoZXNlIGZpZWxkcyBhcmUgYXZhaWxhYmxlIHRvIHN1YmNsYXNzZXMuPC9saT4KKyAqCisgKiAgIDxsaT5XZWVrcyBhcmUgbm9ybWFsaXplZC4gQWx0aG91Z2ggbG9jYWxlcyBkZWZpbmUgdGhlIHdlZWsKKyAqICAgICBkaWZmZXJlbnRseSwgaW4gdGVybXMgb2YgdGhlIGRheSBvbiB3aGljaCBpdCBzdGFydHMsIGFuZCB0aGUKKyAqICAgICBkZXNpZ25hdGlvbiBvZiB3ZWVrIG51bWJlciBvbmUgb2YgYSBtb250aCBvciB5ZWFyLCB0aGV5IGFsbCB1c2UgYQorICogICAgIGNvbW1vbiBtZWNoYW5pc20uIEZ1cnRoZXJtb3JlLCB0aGUgZGF5IG9mIHRoZSB3ZWVrIGhhcyBhIHNpbXBsZQorICogICAgIGFuZCBjb25zaXN0ZW50IGRlZmluaXRpb24gdGhyb3VnaG91dCBoaXN0b3J5LiBGb3IgZXhhbXBsZSwKKyAqICAgICBhbHRob3VnaCB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIGludHJvZHVjZWQgYSBkaXNjb250aW51aXR5IHdoZW4KKyAqICAgICBmaXJzdCBpbnN0aXR1dGVkLCB0aGUgZGF5IG9mIHdlZWsgd2FzIG5vdCBkaXNydXB0ZWQuIEZvciB0aGlzCisgKiAgICAgcmVhc29uLCB0aGUgZmllbGRzIHtAbGluayAjREFZX09GX1dFRUt9LCA8Y29kZT5XRUVLX09GX1lFQVIsCisgKiAgICAgV0VFS19PRl9NT05USDwvY29kZT4sIHtAbGluayAjREFZX09GX1dFRUtfSU5fTU9OVEh9LAorICogICAgIHtAbGluayAjRE9XX0xPQ0FMfSwge0BsaW5rICNZRUFSX1dPWX0gYXJlIGFsbCBjb21wdXRlZCBpbgorICogICAgIGEgY29uc2lzdGVudCB3YXkgaW4gdGhlIGJhc2UgY2xhc3MsIGJhc2VkIG9uIHRoZQorICogICAgIHtAbGluayAjRVhURU5ERURfWUVBUn0sIHtAbGluayAjREFZX09GX1lFQVJ9LAorICogICAgIHtAbGluayAjTU9OVEh9LCBhbmQge0BsaW5rICNEQVlfT0ZfTU9OVEh9LCB3aGljaCBhcmUKKyAqICAgICBjb21wdXRlZCBieSB0aGUgc3ViY2xhc3MuPC9saT4KKyAqCisgKiA8L3VsPgorICoKKyAqIDxwPjxiaWc+PGI+U3VwcG9ydGVkIHJhbmdlPC9iPjwvYmlnPgorICoKKyAqIDxwPlRoZSBhbGxvd2FibGUgcmFuZ2Ugb2YgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGhhcyBiZWVuCisgKiBuYXJyb3dlZC4gPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IHVzZWQgdG8gYXR0ZW1wdCB0byBzdXBwb3J0CisgKiB0aGUgcmFuZ2Ugb2YgZGF0ZXMgd2l0aCBtaWxsaXNlY29uZCB2YWx1ZXMgZnJvbQorICogPGNvZGU+TG9uZy5NSU5fVkFMVUU8L2NvZGU+IHRvIDxjb2RlPkxvbmcuTUFYX1ZBTFVFPC9jb2RlPi4gVGhpcworICogaW50cm9kdWNlZCBhd2t3YXJkIGNvbnN0cnVjdGlvbnMgKGhhY2tzKSB3aGljaCBzbG93ZWQgZG93bgorICogcGVyZm9ybWFuY2UuIEl0IGFsc28gaW50cm9kdWNlZCBub24tdW5pZm9ybSBiZWhhdmlvciBhdCB0aGUKKyAqIGJvdW5kYXJpZXMuIFRoZSBuZXcgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHByb3RvY29sIHNwZWNpZmllcyB0aGUKKyAqIG1heGltdW0gcmFuZ2Ugb2Ygc3VwcG9ydGFibGUgZGF0ZXMgYXMgdGhvc2UgaGF2aW5nIEp1bGlhbiBkYXkgbnVtYmVycworICogb2YgPGNvZGU+LTB4N0YwMDAwMDA8L2NvZGU+IHRvIDxjb2RlPisweDdGMDAwMDAwPC9jb2RlPi4gVGhpcworICogY29ycmVzcG9uZHMgdG8geWVhcnMgZnJvbSB+NSwwMDAsMDAwIEJDRSB0byB+NSwwMDAsMDAwIENFLiBQcm9ncmFtbWVycworICogc2hvdWxkIHVzZSB0aGUgY29uc3RhbnRzIHtAbGluayAjTUlOX0RBVEV9IChvcgorICoge0BsaW5rICNNSU5fTUlMTElTfSBvciB7QGxpbmsgI01JTl9KVUxJQU59KSBhbmQKKyAqIHtAbGluayAjTUFYX0RBVEV9IChvciB7QGxpbmsgI01BWF9NSUxMSVN9IG9yCisgKiB7QGxpbmsgI01BWF9KVUxJQU59KSBpbiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gdG8gc3BlY2lmeSBhbgorICogZXh0cmVtZWx5IGVhcmx5IG9yIGV4dHJlbWVseSBsYXRlIGRhdGUuPC9wPgorICoKKyAqIDxwPjxiaWc+PGI+R2VuZXJhbCBub3RlczwvYj48L2JpZz4KKyAqCisgKiA8dWw+CisgKgorICogICA8bGk+Q2FsZW5kYXJzIGltcGxlbWVudGF0aW9ucyBhcmUgPGVtPnByb2xlcHRpYzwvZW0+LiBGb3IgZXhhbXBsZSwKKyAqICAgICBldmVuIHRob3VnaCB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIHdhcyBub3QgaW5zdGl0dXRlZCB1bnRpbCB0aGUKKyAqICAgICAxNnRoIGNlbnR1cnksIHRoZSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gY2xhc3Mgc3VwcG9ydHMKKyAqICAgICBkYXRlcyBiZWZvcmUgdGhlIGhpc3RvcmljYWwgb25zZXQgb2YgdGhlIGNhbGVuZGFyIGJ5IGV4dGVuZGluZyB0aGUKKyAqICAgICBjYWxlbmRhciBzeXN0ZW0gYmFja3dhcmQgaW4gdGltZS4gU2ltaWxhcmx5LCB0aGUKKyAqICAgICA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gZXh0ZW5kcyBiYWNrd2FyZCBiZWZvcmUgdGhlIHN0YXJ0IG9mCisgKiAgICAgaXRzIGVwb2NoIGludG8gemVybyBhbmQgbmVnYXRpdmUgeWVhcnMuIFN1YmNsYXNzZXMgZG8gbm90IHRocm93CisgKiAgICAgZXhjZXB0aW9ucyBiZWNhdXNlIGEgZGF0ZSBwcmVjZWRlcyB0aGUgaGlzdG9yaWNhbCBzdGFydCBvZiBhCisgKiAgICAgY2FsZW5kYXIgc3lzdGVtLiBJbnN0ZWFkLCB0aGV5IGltcGxlbWVudAorICogICAgIHtAbGluayAjaGFuZGxlR2V0TGltaXR9IHRvIHJldHVybiBhcHByb3ByaWF0ZSBsaW1pdHMgb24KKyAqICAgICB7QGxpbmsgI1lFQVJ9LCB7QGxpbmsgI0VSQX0sIGV0Yy4gZmllbGRzLiBUaGVuLCBpZiB0aGUKKyAqICAgICBjYWxlbmRhciBpcyBzZXQgdG8gbm90IGJlIGxlbmllbnQsIG91dC1vZi1yYW5nZSBmaWVsZCB2YWx1ZXMgd2lsbAorICogICAgIHRyaWdnZXIgYW4gZXhjZXB0aW9uLjwvbGk+CisgKgorICogICA8bGk+Q2FsZW5kYXIgc3lzdGVtIHN1YmNsYXNzZXMgY29tcHV0ZSBhIDxlbT5leHRlbmRlZAorICogICAgIHllYXI8L2VtPi4gVGhpcyBkaWZmZXJzIGZyb20gdGhlIHtAbGluayAjWUVBUn0gZmllbGQgaW4gdGhhdAorICogICAgIGl0IHJhbmdlcyBvdmVyIGFsbCBpbnRlZ2VyIHZhbHVlcywgaW5jbHVkaW5nIHplcm8gYW5kIG5lZ2F0aXZlCisgKiAgICAgdmFsdWVzLCBhbmQgaXQgZW5jYXBzdWxhdGVzIHRoZSBpbmZvcm1hdGlvbiBvZiB0aGUKKyAqICAgICB7QGxpbmsgI1lFQVJ9IGZpZWxkIGFuZCBhbGwgbGFyZ2VyIGZpZWxkcy4gIFRodXMsIGZvciB0aGUKKyAqICAgICBHcmVnb3JpYW4gY2FsZW5kYXIsIHRoZSB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9IGlzIGNvbXB1dGVkIGFzCisgKiAgICAgPGNvZGU+RVJBPT1BRCA/IFlFQVIgOiAxLVlFQVI8L2NvZGU+LiBBbm90aGVyIGV4YW1wbGUgaXMgdGhlIE1heWFuCisgKiAgICAgbG9uZyBjb3VudCwgd2hpY2ggaGFzIHllYXJzICg8Y29kZT5LVU48L2NvZGU+KSBhbmQgbmVzdGVkIGN5Y2xlcworICogICAgIG9mIHllYXJzICg8Y29kZT5LQVRVTjwvY29kZT4gYW5kIDxjb2RlPkJBS1RVTjwvY29kZT4pLiBUaGUgTWF5YW4KKyAqICAgICB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9IGlzIGNvbXB1dGVkIGFzIDxjb2RlPlRVTiArIDIwICogKEtBVFVOCisgKiAgICAgKyAyMCAqIEJBS1RVTik8L2NvZGU+LiBUaGUgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGJhc2UgY2xhc3MgdXNlcworICogICAgIHRoZSB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9IGZpZWxkIHRvIGNvbXB1dGUgdGhlIHdlZWstcmVsYXRlZAorICogICAgIGZpZWxkcy48L2xpPgorICoKKyAqIDwvdWw+CisgKgorICogQHNlZSAgICAgICAgICBEYXRlCisgKiBAc2VlICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIFRpbWVab25lCisgKiBAc2VlICAgICAgICAgIERhdGVGb3JtYXQKKyAqIEBhdXRob3IgTWFyayBEYXZpcywgRGF2aWQgR29sZHNtaXRoLCBDaGVuLUxpZWggSHVhbmcsIEFsYW4gTGl1LCBMYXVyYSBXZXJuZXIKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgQ2FsZW5kYXIgaW1wbGVtZW50cyBTZXJpYWxpemFibGUsIENsb25lYWJsZSwgQ29tcGFyYWJsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGphdmEudXRpbC5DYWxlbmRhciBjYWxlbmRhcjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQHBhcmFtIGRlbGVnYXRlIHRoZSBDYWxlbmRhciB0byB3aGljaCB0byBkZWxlZ2F0ZQorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhcihqYXZhLnV0aWwuQ2FsZW5kYXIgZGVsZWdhdGUpIHsKKyAgICAgICAgdGhpcy5jYWxlbmRhciA9IGRlbGVnYXRlOworICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGVyYSwgZS5nLiwgQUQgb3IgQkMgaW4gdGhlIEp1bGlhbiBjYWxlbmRhci4gVGhpcyBpcyBhIGNhbGVuZGFyLXNwZWNpZmljCisgICAgICogdmFsdWU7IHNlZSBzdWJjbGFzcyBkb2N1bWVudGF0aW9uLgorICAgICAqIEBzZWUgR3JlZ29yaWFuQ2FsZW5kYXIjQUQKKyAgICAgKiBAc2VlIEdyZWdvcmlhbkNhbGVuZGFyI0JDCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRVJBID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogeWVhci4gVGhpcyBpcyBhIGNhbGVuZGFyLXNwZWNpZmljIHZhbHVlOyBzZWUgc3ViY2xhc3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBZRUFSID0gMTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogbW9udGguIFRoaXMgaXMgYSBjYWxlbmRhci1zcGVjaWZpYyB2YWx1ZS4gVGhlIGZpcnN0IG1vbnRoIG9mIHRoZSB5ZWFyIGlzCisgICAgICogPGNvZGU+SkFOVUFSWTwvY29kZT47IHRoZSBsYXN0IGRlcGVuZHMgb24gdGhlIG51bWJlciBvZiBtb250aHMgaW4gYSB5ZWFyLgorICAgICAqIEBzZWUgI0pBTlVBUlkKKyAgICAgKiBAc2VlICNGRUJSVUFSWQorICAgICAqIEBzZWUgI01BUkNICisgICAgICogQHNlZSAjQVBSSUwKKyAgICAgKiBAc2VlICNNQVkKKyAgICAgKiBAc2VlICNKVU5FCisgICAgICogQHNlZSAjSlVMWQorICAgICAqIEBzZWUgI0FVR1VTVAorICAgICAqIEBzZWUgI1NFUFRFTUJFUgorICAgICAqIEBzZWUgI09DVE9CRVIKKyAgICAgKiBAc2VlICNOT1ZFTUJFUgorICAgICAqIEBzZWUgI0RFQ0VNQkVSCisgICAgICogQHNlZSAjVU5ERUNJTUJFUgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1PTlRIID0gMjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogd2VlayBudW1iZXIgd2l0aGluIHRoZSBjdXJyZW50IHllYXIuICBUaGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhciwgYXMKKyAgICAgKiBkZWZpbmVkIGJ5IDxjb2RlPmdldEZpcnN0RGF5T2ZXZWVrKCk8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4sIGhhcyB2YWx1ZSAxLiAgU3ViY2xhc3NlcyBkZWZpbmUKKyAgICAgKiB0aGUgdmFsdWUgb2YgPGNvZGU+V0VFS19PRl9ZRUFSPC9jb2RlPiBmb3IgZGF5cyBiZWZvcmUgdGhlIGZpcnN0IHdlZWsgb2YKKyAgICAgKiB0aGUgeWVhci4KKyAgICAgKiBAc2VlICNnZXRGaXJzdERheU9mV2VlaworICAgICAqIEBzZWUgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXRUVLX09GX1lFQVIgPSAzOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiB3ZWVrIG51bWJlciB3aXRoaW4gdGhlIGN1cnJlbnQgbW9udGguICBUaGUgZmlyc3Qgd2VlayBvZiB0aGUgbW9udGgsIGFzCisgICAgICogZGVmaW5lZCBieSA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+LCBoYXMgdmFsdWUgMS4gIFN1YmNsYXNzZXMgZGVmaW5lCisgICAgICogdGhlIHZhbHVlIG9mIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+IGZvciBkYXlzIGJlZm9yZSB0aGUgZmlyc3Qgd2VlayBvZgorICAgICAqIHRoZSBtb250aC4KKyAgICAgKiBAc2VlICNnZXRGaXJzdERheU9mV2VlaworICAgICAqIEBzZWUgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXRUVLX09GX01PTlRIID0gNDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogZGF5IG9mIHRoZSBtb250aC4gVGhpcyBpcyBhIHN5bm9ueW0gZm9yIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4uCisgICAgICogVGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGggaGFzIHZhbHVlIDEuCisgICAgICogQHNlZSAjREFZX09GX01PTlRICisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFURSA9IDU7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGRheSBvZiB0aGUgbW9udGguIFRoaXMgaXMgYSBzeW5vbnltIGZvciA8Y29kZT5EQVRFPC9jb2RlPi4KKyAgICAgKiBUaGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCBoYXMgdmFsdWUgMS4KKyAgICAgKiBAc2VlICNEQVRFCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX01PTlRIID0gNTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlIGRheQorICAgICAqIG51bWJlciB3aXRoaW4gdGhlIGN1cnJlbnQgeWVhci4gIFRoZSBmaXJzdCBkYXkgb2YgdGhlIHllYXIgaGFzIHZhbHVlIDEuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1lFQVIgPSA2OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUgZGF5CisgICAgICogb2YgdGhlIHdlZWsuICBUaGlzIGZpZWxkIHRha2VzIHZhbHVlcyA8Y29kZT5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPk1PTkRBWTwvY29kZT4sIDxjb2RlPlRVRVNEQVk8L2NvZGU+LCA8Y29kZT5XRURORVNEQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPlRIVVJTREFZPC9jb2RlPiwgPGNvZGU+RlJJREFZPC9jb2RlPiwgYW5kIDxjb2RlPlNBVFVSREFZPC9jb2RlPi4KKyAgICAgKiBAc2VlICNTVU5EQVkKKyAgICAgKiBAc2VlICNNT05EQVkKKyAgICAgKiBAc2VlICNUVUVTREFZCisgICAgICogQHNlZSAjV0VETkVTREFZCisgICAgICogQHNlZSAjVEhVUlNEQVkKKyAgICAgKiBAc2VlICNGUklEQVkKKyAgICAgKiBAc2VlICNTQVRVUkRBWQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9XRUVLID0gNzsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogb3JkaW5hbCBudW1iZXIgb2YgdGhlIGRheSBvZiB0aGUgd2VlayB3aXRoaW4gdGhlIGN1cnJlbnQgbW9udGguIFRvZ2V0aGVyCisgICAgICogd2l0aCB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkLCB0aGlzIHVuaXF1ZWx5IHNwZWNpZmllcyBhIGRheQorICAgICAqIHdpdGhpbiBhIG1vbnRoLiAgVW5saWtlIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPldFRUtfT0ZfWUVBUjwvY29kZT4sIHRoaXMgZmllbGQncyB2YWx1ZSBkb2VzIDxlbT5ub3Q8L2VtPiBkZXBlbmQgb24KKyAgICAgKiA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBvcgorICAgICAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4uICA8Y29kZT5EQVlfT0ZfTU9OVEggMTwvY29kZT4KKyAgICAgKiB0aHJvdWdoIDxjb2RlPjc8L2NvZGU+IGFsd2F5cyBjb3JyZXNwb25kIHRvIDxjb2RlPkRBWV9PRl9XRUVLX0lOX01PTlRICisgICAgICogMTwvY29kZT47IDxjb2RlPjg8L2NvZGU+IHRocm91Z2ggPGNvZGU+MTU8L2NvZGU+IGNvcnJlc3BvbmQgdG8KKyAgICAgKiA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCAyPC9jb2RlPiwgYW5kIHNvIG9uLgorICAgICAqIDxjb2RlPkRBWV9PRl9XRUVLX0lOX01PTlRIIDA8L2NvZGU+IGluZGljYXRlcyB0aGUgd2VlayBiZWZvcmUKKyAgICAgKiA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCAxPC9jb2RlPi4gIE5lZ2F0aXZlIHZhbHVlcyBjb3VudCBiYWNrIGZyb20gdGhlCisgICAgICogZW5kIG9mIHRoZSBtb250aCwgc28gdGhlIGxhc3QgU3VuZGF5IG9mIGEgbW9udGggaXMgc3BlY2lmaWVkIGFzCisgICAgICogPGNvZGU+REFZX09GX1dFRUsgPSBTVU5EQVksIERBWV9PRl9XRUVLX0lOX01PTlRIID0gLTE8L2NvZGU+LiAgQmVjYXVzZQorICAgICAqIG5lZ2F0aXZlIHZhbHVlcyBjb3VudCBiYWNrd2FyZCB0aGV5IHdpbGwgdXN1YWxseSBiZSBhbGlnbmVkIGRpZmZlcmVudGx5CisgICAgICogd2l0aGluIHRoZSBtb250aCB0aGFuIHBvc2l0aXZlIHZhbHVlcy4gIEZvciBleGFtcGxlLCBpZiBhIG1vbnRoIGhhcyAzMQorICAgICAqIGRheXMsIDxjb2RlPkRBWV9PRl9XRUVLX0lOX01PTlRIIC0xPC9jb2RlPiB3aWxsIG92ZXJsYXAKKyAgICAgKiA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCA1PC9jb2RlPiBhbmQgdGhlIGVuZCBvZiA8Y29kZT40PC9jb2RlPi4KKyAgICAgKiBAc2VlICNEQVlfT0ZfV0VFSworICAgICAqIEBzZWUgI1dFRUtfT0ZfTU9OVEgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVlfT0ZfV0VFS19JTl9NT05USCA9IDg7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nCisgICAgICogd2hldGhlciB0aGUgPGNvZGU+SE9VUjwvY29kZT4gaXMgYmVmb3JlIG9yIGFmdGVyIG5vb24uCisgICAgICogRS5nLiwgYXQgMTA6MDQ6MTUuMjUwIFBNIHRoZSA8Y29kZT5BTV9QTTwvY29kZT4gaXMgPGNvZGU+UE08L2NvZGU+LgorICAgICAqIEBzZWUgI0FNCisgICAgICogQHNlZSAjUE0KKyAgICAgKiBAc2VlICNIT1VSCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQU1fUE0gPSA5OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBob3VyIG9mIHRoZSBtb3JuaW5nIG9yIGFmdGVybm9vbi4gPGNvZGU+SE9VUjwvY29kZT4gaXMgdXNlZCBmb3IgdGhlIDEyLWhvdXIKKyAgICAgKiBjbG9jay4KKyAgICAgKiBFLmcuLCBhdCAxMDowNDoxNS4yNTAgUE0gdGhlIDxjb2RlPkhPVVI8L2NvZGU+IGlzIDEwLgorICAgICAqIEBzZWUgI0FNX1BNCisgICAgICogQHNlZSAjSE9VUl9PRl9EQVkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSID0gMTA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIGhvdXIgb2YgdGhlIGRheS4gPGNvZGU+SE9VUl9PRl9EQVk8L2NvZGU+IGlzIHVzZWQgZm9yIHRoZSAyNC1ob3VyIGNsb2NrLgorICAgICAqIEUuZy4sIGF0IDEwOjA0OjE1LjI1MCBQTSB0aGUgPGNvZGU+SE9VUl9PRl9EQVk8L2NvZGU+IGlzIDIyLgorICAgICAqIEBzZWUgI0hPVVIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSX09GX0RBWSA9IDExOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBtaW51dGUgd2l0aGluIHRoZSBob3VyLgorICAgICAqIEUuZy4sIGF0IDEwOjA0OjE1LjI1MCBQTSB0aGUgPGNvZGU+TUlOVVRFPC9jb2RlPiBpcyA0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTlVURSA9IDEyOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBzZWNvbmQgd2l0aGluIHRoZSBtaW51dGUuCisgICAgICogRS5nLiwgYXQgMTA6MDQ6MTUuMjUwIFBNIHRoZSA8Y29kZT5TRUNPTkQ8L2NvZGU+IGlzIDE1LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNFQ09ORCA9IDEzOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBtaWxsaXNlY29uZCB3aXRoaW4gdGhlIHNlY29uZC4KKyAgICAgKiBFLmcuLCBhdCAxMDowNDoxNS4yNTAgUE0gdGhlIDxjb2RlPk1JTExJU0VDT05EPC9jb2RlPiBpcyAyNTAuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUlMTElTRUNPTkQgPSAxNDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogcmF3IG9mZnNldCBmcm9tIEdNVCBpbiBtaWxsaXNlY29uZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgWk9ORV9PRkZTRVQgPSAxNTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogZGF5bGlnaHQgc2F2aW5ncyBvZmZzZXQgaW4gbWlsbGlzZWNvbmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERTVF9PRkZTRVQgPSAxNjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQoKTwvY29kZT4gYW5kIDxjb2RlPnNldCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIGV4dGVuZGVkIHllYXIgY29ycmVzcG9uZGluZyB0byB0aGUKKyAgICAgKiA8Y29kZT5XRUVLX09GX1lFQVI8L2NvZGU+IGZpZWxkLiAgVGhpcyBtYXkgYmUgb25lIGdyZWF0ZXIgb3IgbGVzcworICAgICAqIHRoYW4gdGhlIHZhbHVlIG9mIDxjb2RlPkVYVEVOREVEX1lFQVI8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlFQVJfV09ZID0gMTc7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0KCk8L2NvZGU+IGFuZCA8Y29kZT5zZXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBsb2NhbGl6ZWQgZGF5IG9mIHdlZWsuICBUaGlzIHdpbGwgYmUgYSB2YWx1ZSBmcm9tIDEKKyAgICAgKiB0byA3IGluY2x1c2l2ZSwgd2l0aCAxIGJlaW5nIHRoZSBsb2NhbGl6ZWQgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERPV19MT0NBTCA9IDE4OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldCgpPC9jb2RlPiBhbmQgPGNvZGU+c2V0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgZXh0ZW5kZWQgeWVhci4gIFRoaXMgaXMgYSBzaW5nbGUgbnVtYmVyIGRlc2lnbmF0aW5nCisgICAgICogdGhlIHllYXIgb2YgdGhpcyBjYWxlbmRhciBzeXN0ZW0sIGVuY29tcGFzc2luZyBhbGwgc3VwcmEteWVhcgorICAgICAqIGZpZWxkcy4gIEZvciBleGFtcGxlLCBmb3IgdGhlIEp1bGlhbiBjYWxlbmRhciBzeXN0ZW0sIHllYXIgbnVtYmVycworICAgICAqIGFyZSBwb3NpdGl2ZSwgd2l0aCBhbiBlcmEgb2YgQkNFIG9yIENFLiAgQW4gZXh0ZW5kZWQgeWVhciB2YWx1ZSBmb3IKKyAgICAgKiB0aGUgSnVsaWFuIGNhbGVuZGFyIHN5c3RlbSBhc3NpZ25zIHBvc2l0aXZlIHZhbHVlcyB0byBDRSB5ZWFycyBhbmQKKyAgICAgKiBuZWdhdGl2ZSB2YWx1ZXMgdG8gQkNFIHllYXJzLCB3aXRoIDEgQkNFIGJlaW5nIHllYXIgMC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFWFRFTkRFRF9ZRUFSID0gMTk7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0KCk8L2NvZGU+IGFuZCA8Y29kZT5zZXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBtb2RpZmllZCBKdWxpYW4gZGF5IG51bWJlci4gIFRoaXMgaXMgZGlmZmVyZW50IGZyb20KKyAgICAgKiB0aGUgY29udmVudGlvbmFsIEp1bGlhbiBkYXkgbnVtYmVyIGluIHR3byByZWdhcmRzLiAgRmlyc3QsIGl0CisgICAgICogZGVtYXJjYXRlcyBkYXlzIGF0IGxvY2FsIHpvbmUgbWlkbmlnaHQsIHJhdGhlciB0aGFuIG5vb24gR01ULgorICAgICAqIFNlY29uZCwgaXQgaXMgYSBsb2NhbCBudW1iZXI7IHRoYXQgaXMsIGl0IGRlcGVuZHMgb24gdGhlIGxvY2FsIHRpbWUKKyAgICAgKiB6b25lLiAgSXQgY2FuIGJlIHRob3VnaHQgb2YgYXMgYSBzaW5nbGUgbnVtYmVyIHRoYXQgZW5jb21wYXNzZXMgYWxsCisgICAgICogdGhlIGRhdGUtcmVsYXRlZCBmaWVsZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSlVMSUFOX0RBWSA9IDIwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldCgpPC9jb2RlPiBhbmQgPGNvZGU+c2V0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgbWlsbGlzZWNvbmRzIGluIHRoZSBkYXkuICBUaGlzIHJhbmdlcyBmcm9tIDAgdG8KKyAgICAgKiAyMzo1OTo1OS45OTkgKHJlZ2FyZGxlc3Mgb2YgRFNUKS4gIFRoaXMgZmllbGQgYmVoYXZlcworICAgICAqIDxlbT5leGFjdGx5PC9lbT4gbGlrZSBhIGNvbXBvc2l0ZSBvZiBhbGwgdGltZS1yZWxhdGVkIGZpZWxkcywgbm90CisgICAgICogaW5jbHVkaW5nIHRoZSB6b25lIGZpZWxkcy4gIEFzIHN1Y2gsIGl0IGFsc28gcmVmbGVjdHMKKyAgICAgKiBkaXNjb250aW51aXRpZXMgb2YgdGhvc2UgZmllbGRzIG9uIERTVCB0cmFuc2l0aW9uIGRheXMuICBPbiBhIGRheSBvZgorICAgICAqIERTVCBvbnNldCwgaXQgd2lsbCBqdW1wIGZvcndhcmQuICBPbiBhIGRheSBvZiBEU1QgY2Vzc2F0aW9uLCBpdCB3aWxsCisgICAgICoganVtcCBiYWNrd2FyZC4gIFRoaXMgcmVmbGVjdHMgdGhlIGZhY3QgdGhhdCBpcyBtdXN0IGJlIGNvbWJpbmVkIHdpdGgKKyAgICAgKiB0aGUgRFNUX09GRlNFVCBmaWVsZCB0byBvYnRhaW4gYSB1bmlxdWUgbG9jYWwgdGltZSB2YWx1ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSUxMSVNFQ09ORFNfSU5fREFZID0gMjE7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgZmllbGRzIGRlZmluZWQgYnkgdGhpcyBjbGFzcy4gIFN1YmNsYXNzZXMgbWF5IGRlZmluZQorICAgICAqIGFkZGl0aW9uIGZpZWxkcyBzdGFydGluZyB3aXRoIHRoaXMgbnVtYmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEJBU0VfRklFTERfQ09VTlQgPSAyMjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGZpZWxkcyBwb3NzaWJsZS4gIFN1YmNsYXNzZXMgbXVzdCBub3QgZGVmaW5lCisgICAgICogbW9yZSB0b3RhbCBmaWVsZHMgdGhhbiB0aGlzIG51bWJlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVhfRklFTERfQ09VTlQgPSAzMjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogU3VuZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNVTkRBWSA9IDE7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIE1vbmRheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNT05EQVkgPSAyOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBUdWVzZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRVRVNEQVkgPSAzOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBXZWRuZXNkYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VETkVTREFZID0gNDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogVGh1cnNkYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVEhVUlNEQVkgPSA1OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBGcmlkYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRlJJREFZID0gNjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogU2F0dXJkYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0FUVVJEQVkgPSA3OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogZmlyc3QgbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSkFOVUFSWSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBzZWNvbmQgbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRkVCUlVBUlkgPSAxOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogdGhpcmQgbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUFSQ0ggPSAyOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogZm91cnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEFQUklMID0gMzsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIGZpZnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1BWSA9IDQ7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBzaXh0aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBKVU5FID0gNTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHNldmVudGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSlVMWSA9IDY7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBlaWdodGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQVVHVVNUID0gNzsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIG5pbnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNFUFRFTUJFUiA9IDg7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiB0ZW50aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBPQ1RPQkVSID0gOTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIGVsZXZlbnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE5PVkVNQkVSID0gMTA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiB0d2VsZnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERFQ0VNQkVSID0gMTE7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiB0aGlydGVlbnRoIG1vbnRoIG9mIHRoZSB5ZWFyLiBBbHRob3VnaCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAgICAgKiBkb2VzIG5vdCB1c2UgdGhpcyB2YWx1ZSwgbHVuYXIgY2FsZW5kYXJzIGRvLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFVOREVDSU1CRVIgPSAxMjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkFNX1BNPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHBlcmlvZCBvZiB0aGUgZGF5IGZyb20gbWlkbmlnaHQgdG8ganVzdCBiZWZvcmUgbm9vbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBBTSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5BTV9QTTwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBwZXJpb2Qgb2YgdGhlIGRheSBmcm9tIG5vb24gdG8ganVzdCBiZWZvcmUgbWlkbmlnaHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgUE0gPSAxOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBnZXREYXlPZldlZWtUeXBlKGludCBkYXlPZldlZWspIHRvIGluZGljYXRlIGEKKyAgICAgKiB3ZWVrZGF5LgorICAgICAqIEBzZWUgI1dFRUtFTkQKKyAgICAgKiBAc2VlICNXRUVLRU5EX09OU0VUCisgICAgICogQHNlZSAjV0VFS0VORF9DRUFTRQorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXRUVLREFZID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgZ2V0RGF5T2ZXZWVrVHlwZShpbnQgZGF5T2ZXZWVrKSB0byBpbmRpY2F0ZSBhCisgICAgICogd2Vla2VuZCBkYXkuCisgICAgICogQHNlZSAjV0VFS0RBWQorICAgICAqIEBzZWUgI1dFRUtFTkRfT05TRVQKKyAgICAgKiBAc2VlICNXRUVLRU5EX0NFQVNFCisgICAgICogQHNlZSAjZ2V0RGF5T2ZXZWVrVHlwZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdFRUtFTkQgPSAxOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBnZXREYXlPZldlZWtUeXBlKGludCBkYXlPZldlZWspIHRvIGluZGljYXRlIGEKKyAgICAgKiBkYXkgdGhhdCBzdGFydHMgYXMgYSB3ZWVrZGF5IGFuZCB0cmFuc2l0aW9ucyB0byB0aGUgd2Vla2VuZC4KKyAgICAgKiBDYWxsIGdldFdlZWtlbmRUcmFuc2l0aW9uKCkgdG8gZ2V0IHRoZSBwb2ludCBvZiB0cmFuc2l0aW9uLgorICAgICAqIEBzZWUgI1dFRUtEQVkKKyAgICAgKiBAc2VlICNXRUVLRU5ECisgICAgICogQHNlZSAjV0VFS0VORF9DRUFTRQorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXRUVLRU5EX09OU0VUID0gMjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgZ2V0RGF5T2ZXZWVrVHlwZShpbnQgZGF5T2ZXZWVrKSB0byBpbmRpY2F0ZSBhCisgICAgICogZGF5IHRoYXQgc3RhcnRzIGFzIHRoZSB3ZWVrZW5kIGFuZCB0cmFuc2l0aW9ucyB0byBhIHdlZWtkYXkuCisgICAgICogQ2FsbCBnZXRXZWVrZW5kVHJhbnNpdGlvbigpIHRvIGdldCB0aGUgcG9pbnQgb2YgdHJhbnNpdGlvbi4KKyAgICAgKiBAc2VlICNXRUVLREFZCisgICAgICogQHNlZSAjV0VFS0VORAorICAgICAqIEBzZWUgI1dFRUtFTkRfT05TRVQKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0VFS0VORF9DRUFTRSA9IDM7CisgICAgLyoqCisgICAgICogR2V0cyBhIGNhbGVuZGFyIHVzaW5nIHRoZSBkZWZhdWx0IHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBDYWxlbmRhciBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxlbmRhcihqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgY2FsZW5kYXIgdXNpbmcgdGhlIHNwZWNpZmllZCB0aW1lIHpvbmUgYW5kIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRoZSB0aW1lIHpvbmUgdG8gdXNlCisgICAgICogQHJldHVybiBhIENhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKFRpbWVab25lIHpvbmUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxlbmRhcihqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2Uoem9uZS50aW1lWm9uZSkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyBhIGNhbGVuZGFyIHVzaW5nIHRoZSBkZWZhdWx0IHRpbWUgem9uZSBhbmQgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgbG9jYWxlIGZvciB0aGUgd2VlayBkYXRhCisgICAgICogQHJldHVybiBhIENhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2FsZW5kYXIoamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKGFMb2NhbGUpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgYSBjYWxlbmRhciB1c2luZyB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgYW5kIHNwZWNpZmllZCBsb2NhbGUuICAKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSB1bG9jYWxlIGZvciB0aGUgd2VlayBkYXRhCisgICAgICogQHJldHVybiBhIENhbGVuZGFyLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgQ2FsZW5kYXIgZ2V0SW5zdGFuY2UoVUxvY2FsZSBsb2NhbGUpICAgICB7CisgICAgICAgIHJldHVybiBuZXcgQ2FsZW5kYXIoamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKGxvY2FsZS50b0xvY2FsZSgpKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgY2FsZW5kYXIgd2l0aCB0aGUgc3BlY2lmaWVkIHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRoZSB0aW1lIHpvbmUgdG8gdXNlCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGxvY2FsZSBmb3IgdGhlIHdlZWsgZGF0YQorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBDYWxlbmRhciBnZXRJbnN0YW5jZShUaW1lWm9uZSB6b25lLCBMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IENhbGVuZGFyKGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSh6b25lLnRpbWVab25lLCBhTG9jYWxlKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgY2FsZW5kYXIgd2l0aCB0aGUgc3BlY2lmaWVkIHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRoZSB0aW1lIHpvbmUgdG8gdXNlCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgdWxvY2FsZSBmb3IgdGhlIHdlZWsgZGF0YQorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKFRpbWVab25lIHpvbmUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgQ2FsZW5kYXIoamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKHpvbmUudGltZVpvbmUsIGxvY2FsZS50b0xvY2FsZSgpKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIENhbGVuZGFycyBhcmUgaW5zdGFsbGVkLgorICAgICAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQ2FsZW5kYXJzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICByZXR1cm4gamF2YS51dGlsLkNhbGVuZGFyLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQ2FsZW5kYXJzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBsb2NhbGVzIGZvciB3aGljaCBDYWxlbmRhcnMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBpZiAoYXZhaWxhYmxlVUxvY2FsZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgICAgICBVTG9jYWxlW10gdWxvY2FsZXMgPSBuZXcgVUxvY2FsZVtsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB1bG9jYWxlc1tpXSA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXZhaWxhYmxlVUxvY2FsZXMgPSB1bG9jYWxlczsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKFVMb2NhbGVbXSlhdmFpbGFibGVVTG9jYWxlcy5jbG9uZSgpOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBVTG9jYWxlW10gYXZhaWxhYmxlVUxvY2FsZXM7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhpcyBDYWxlbmRhcidzIGN1cnJlbnQgdGltZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHRpbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIERhdGUgZ2V0VGltZSgpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhpcyBDYWxlbmRhcidzIGN1cnJlbnQgdGltZSB3aXRoIHRoZSBnaXZlbiBEYXRlLgorICAgICAqIDxwPgorICAgICAqIE5vdGU6IENhbGxpbmcgPGNvZGU+c2V0VGltZSgpPC9jb2RlPiB3aXRoCisgICAgICogPGNvZGU+RGF0ZShMb25nLk1BWF9WQUxVRSk8L2NvZGU+IG9yIDxjb2RlPkRhdGUoTG9uZy5NSU5fVkFMVUUpPC9jb2RlPgorICAgICAqIG1heSB5aWVsZCBpbmNvcnJlY3QgZmllbGQgdmFsdWVzIGZyb20gPGNvZGU+Z2V0KCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSBnaXZlbiBEYXRlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldFRpbWUoRGF0ZSBkYXRlKSB7CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoZGF0ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IHRpbWUgYXMgYSBsb25nLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgdGltZSBhcyBVVEMgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGVwb2NoLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBsb25nIGdldFRpbWVJbk1pbGxpcygpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldFRpbWUoKS5nZXRUaW1lKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IHRpbWUgZnJvbSB0aGUgZ2l2ZW4gbG9uZyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gbWlsbGlzIHRoZSBuZXcgdGltZSBpbiBVVEMgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGVwb2NoLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRpbWVJbk1pbGxpcyhsb25nIG1pbGxpcykgeworICAgICAgICBjYWxlbmRhci5zZXRUaW1lKG5ldyBEYXRlKG1pbGxpcykpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdmFsdWUgZm9yIGEgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0KGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0KGZpZWxkKTsKKyAgICB9CisgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZSBmaWVsZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBiZSBzZXQgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChpbnQgZmllbGQsIGludCB2YWx1ZSkgeworICAgICAgICBjYWxlbmRhci5zZXQoZmllbGQsIHZhbHVlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIHZhbHVlcyBmb3IgdGhlIGZpZWxkcyB5ZWFyLCBtb250aCwgYW5kIGRhdGUuCisgICAgICogUHJldmlvdXMgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBhcmUgcmV0YWluZWQuICBJZiB0aGlzIGlzIG5vdCBkZXNpcmVkLAorICAgICAqIGNhbGwgPGNvZGU+Y2xlYXI8L2NvZGU+IGZpcnN0LgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgWUVBUiB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1PTlRIIHRpbWUgZmllbGQuCisgICAgICogTW9udGggdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIERBVEUgdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0KHllYXIsIG1vbnRoLCBkYXRlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIHZhbHVlcyBmb3IgdGhlIGZpZWxkcyB5ZWFyLCBtb250aCwgZGF0ZSwgaG91ciwgYW5kIG1pbnV0ZS4KKyAgICAgKiBQcmV2aW91cyB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIGFyZSByZXRhaW5lZC4gIElmIHRoaXMgaXMgbm90IGRlc2lyZWQsCisgICAgICogY2FsbCA8Y29kZT5jbGVhcjwvY29kZT4gZmlyc3QuCisgICAgICogQHBhcmFtIHllYXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBZRUFSIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTU9OVEggdGltZSBmaWVsZC4KKyAgICAgKiBNb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgREFURSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBob3VyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgSE9VUl9PRl9EQVkgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbWludXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTUlOVVRFIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwgaW50IG1pbnV0ZSkgeworICAgICAgICBjYWxlbmRhci5zZXQoeWVhciwgbW9udGgsIGRhdGUsIGhvdXIsIG1pbnV0ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZXMgZm9yIHRoZSBmaWVsZHMgeWVhciwgbW9udGgsIGRhdGUsIGhvdXIsIG1pbnV0ZSwgYW5kIHNlY29uZC4KKyAgICAgKiBQcmV2aW91cyB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIGFyZSByZXRhaW5lZC4gIElmIHRoaXMgaXMgbm90IGRlc2lyZWQsCisgICAgICogY2FsbCA8Y29kZT5jbGVhcjwvY29kZT4gZmlyc3QuCisgICAgICogQHBhcmFtIHllYXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBZRUFSIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTU9OVEggdGltZSBmaWVsZC4KKyAgICAgKiBNb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgREFURSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBob3VyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgSE9VUl9PRl9EQVkgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbWludXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTUlOVVRFIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIHNlY29uZCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFNFQ09ORCB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsIGludCBtaW51dGUsIGludCBzZWNvbmQpIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0KHllYXIsIG1vbnRoLCBkYXRlLCBob3VyLCBtaW51dGUsIHNlY29uZCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDbGVhcnMgdGhlIHZhbHVlcyBvZiBhbGwgdGhlIHRpbWUgZmllbGRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGNsZWFyKCkgeworICAgICAgICBjYWxlbmRhci5jbGVhcigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ2xlYXJzIHRoZSB2YWx1ZSBpbiB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIHRpbWUgZmllbGQgdG8gYmUgY2xlYXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBjbGVhcihpbnQgZmllbGQpIHsKKyAgICAgICAgY2FsZW5kYXIuY2xlYXIoZmllbGQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gdGltZSBmaWVsZCBoYXMgYSB2YWx1ZSBzZXQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiB0aW1lIGZpZWxkIGhhcyBhIHZhbHVlIHNldDsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGlzU2V0KGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuaXNTZXQoZmllbGQpOworICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGlzIGNhbGVuZGFyIHRvIHRoZSBzcGVjaWZpZWQgb2JqZWN0LgorICAgICAqIFRoZSByZXN1bHQgaXMgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgYW5kIG9ubHkgaWYgdGhlIGFyZ3VtZW50IGlzCisgICAgICogbm90IDxjb2RlPm51bGw8L2NvZGU+IGFuZCBpcyBhIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBvYmplY3QgdGhhdAorICAgICAqIHJlcHJlc2VudHMgdGhlIHNhbWUgY2FsZW5kYXIgYXMgdGhpcyBvYmplY3QuCisgICAgICogQHBhcmFtIG9iaiB0aGUgb2JqZWN0IHRvIGNvbXBhcmUgd2l0aC4KKyAgICAgKiBAcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBvYmplY3RzIGFyZSB0aGUgc2FtZTsKKyAgICAgKiA8Y29kZT5mYWxzZTwvY29kZT4gb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gY2FsZW5kYXIuZXF1YWxzKCgoQ2FsZW5kYXIpb2JqKS5jYWxlbmRhcik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gQ2FsZW5kYXIgb2JqZWN0IGlzIGVxdWl2YWxlbnQgdG8gdGhpcworICAgICAqIG9uZS4gIEFuIGVxdWl2YWxlbnQgQ2FsZW5kYXIgd2lsbCBiZWhhdmUgZXhhY3RseSBhcyB0aGlzIG9uZQorICAgICAqIGRvZXMsIGJ1dCBpdCBtYXkgYmUgc2V0IHRvIGEgZGlmZmVyZW50IHRpbWUuICBCeSBjb250cmFzdCwgZm9yCisgICAgICogdGhlIGVxdWFscygpIG1ldGhvZCB0byByZXR1cm4gdHJ1ZSwgdGhlIG90aGVyIENhbGVuZGFyIG11c3QKKyAgICAgKiBiZSBzZXQgdG8gdGhlIHNhbWUgdGltZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciB0aGUgQ2FsZW5kYXIgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzIENhbGVuZGFyCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFcXVpdmFsZW50VG8oQ2FsZW5kYXIgb3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3MoKSA9PSBvdGhlci5nZXRDbGFzcygpICYmCisgICAgICAgICAgICBpc0xlbmllbnQoKSA9PSBvdGhlci5pc0xlbmllbnQoKSAmJgorICAgICAgICAgICAgZ2V0Rmlyc3REYXlPZldlZWsoKSA9PSBvdGhlci5nZXRGaXJzdERheU9mV2VlaygpICYmCisgICAgICAgICAgICBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkgPT0gb3RoZXIuZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpICYmCisgICAgICAgICAgICBnZXRUaW1lWm9uZSgpLmVxdWFscyhvdGhlci5nZXRUaW1lWm9uZSgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgY2FsZW5kYXIuCisgICAgICogQHJldHVybiBhIGhhc2ggY29kZSB2YWx1ZSBmb3IgdGhpcyBvYmplY3QuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmhhc2hDb2RlKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4gdGhlIG1vbWVudCB0aGlzCisgICAgICogY2FsZW5kYXIgaXMgc2V0IHRvIGFuZCB0aGUgbW9tZW50IHRoZSBnaXZlbiBjYWxlbmRhciBvciBEYXRlIG9iamVjdAorICAgICAqIGlzIHNldCB0by4KKyAgICAgKi8KKyAgICBwcml2YXRlIGxvbmcgY29tcGFyZShPYmplY3QgdGhhdCkgeworICAgICAgICBsb25nIHRoYXRNczsKKyAgICAgICAgaWYgKHRoYXQgaW5zdGFuY2VvZiBDYWxlbmRhcikgeworICAgICAgICAgICAgdGhhdE1zID0gKChDYWxlbmRhcil0aGF0KS5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgfSBlbHNlIGlmICh0aGF0IGluc3RhbmNlb2YgRGF0ZSkgeworICAgICAgICAgICAgdGhhdE1zID0gKChEYXRlKXRoYXQpLmdldFRpbWUoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24odGhhdCArICJpcyBub3QgYSBDYWxlbmRhciBvciBEYXRlIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldFRpbWVJbk1pbGxpcygpIC0gdGhhdE1zOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIHRpbWUgZmllbGQgcmVjb3Jkcy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGNvbXBhcmluZyByZXN1bHQgb2YgY29udmVyc2lvbiB0byBVVEMuCisgICAgICogQHBhcmFtIHdoZW4gdGhlIENhbGVuZGFyIHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcyBDYWxlbmRhci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIENhbGVuZGFyIGlzIGJlZm9yZQorICAgICAqIHRoZSB0aW1lIG9mIENhbGVuZGFyIHdoZW47IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBiZWZvcmUoT2JqZWN0IHdoZW4pIHsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmUod2hlbikgPCAwOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIHRpbWUgZmllbGQgcmVjb3Jkcy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGNvbXBhcmluZyByZXN1bHQgb2YgY29udmVyc2lvbiB0byBVVEMuCisgICAgICogQHBhcmFtIHdoZW4gdGhlIENhbGVuZGFyIHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcyBDYWxlbmRhci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIENhbGVuZGFyIGlzIGFmdGVyCisgICAgICogdGhlIHRpbWUgb2YgQ2FsZW5kYXIgd2hlbjsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGFmdGVyKE9iamVjdCB3aGVuKSB7CisgICAgICAgIHJldHVybiBjb21wYXJlKHdoZW4pID4gMDsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWF4aW11bSB2YWx1ZSB0aGF0IHRoaXMgZmllbGQgY291bGQgaGF2ZSwgZ2l2ZW4gdGhlCisgICAgICogY3VycmVudCBkYXRlLiAgRm9yIGV4YW1wbGUsIHdpdGggdGhlIEdyZWdvcmlhbiBkYXRlIEZlYnJ1YXJ5IDMsIDE5OTcKKyAgICAgKiBhbmQgdGhlIHtAbGluayAjREFZX09GX01PTlRIIERBWV9PRl9NT05USH0gZmllbGQsIHRoZSBhY3R1YWwgbWF4aW11bQorICAgICAqIGlzIDI4OyBmb3IgRmVicnVhcnkgMywgMTk5NiBpdCBpcyAyOS4KKyAgICAgKgorICAgICAqIDxwPlRoZSBhY3R1YWwgbWF4aW11bSBjb21wdXRhdGlvbiBpZ25vcmVzIHNtYWxsZXIgZmllbGRzIGFuZCB0aGUKKyAgICAgKiBjdXJyZW50IHZhbHVlIG9mIGxpa2Utc2l6ZWQgZmllbGRzLiAgRm9yIGV4YW1wbGUsIHRoZSBhY3R1YWwgbWF4aW11bQorICAgICAqIG9mIHRoZSBEQVlfT0ZfWUVBUiBvciBNT05USCBkZXBlbmRzIG9ubHkgb24gdGhlIHllYXIgYW5kIHN1cHJhLXllYXIKKyAgICAgKiBmaWVsZHMuICBUaGUgYWN0dWFsIG1heGltdW0gb2YgdGhlIERBWV9PRl9NT05USCBkZXBlbmRzLCBpbgorICAgICAqIGFkZGl0aW9uLCBvbiB0aGUgTU9OVEggZmllbGQgYW5kIGFueSBvdGhlciBmaWVsZHMgYXQgdGhhdAorICAgICAqIGdyYW51bGFyaXR5IChzdWNoIGFzIENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIKS4gIFRoZQorICAgICAqIERBWV9PRl9XRUVLX0lOX01PTlRIIGZpZWxkIGRvZXMgbm90IGRlcGVuZCBvbiB0aGUgY3VycmVudAorICAgICAqIERBWV9PRl9XRUVLOyBpdCByZXR1cm5zIHRoZSBtYXhpbXVtIGZvciBhbnkgZGF5IG9mIHdlZWsgaW4gdGhlCisgICAgICogY3VycmVudCBtb250aC4gIExpa2V3aXNlIGZvciB0aGUgV0VFS19PRl9NT05USCBhbmQgV0VFS19PRl9ZRUFSCisgICAgICogZmllbGRzLgorICAgICAqCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBmaWVsZCB3aG9zZSBtYXhpbXVtIGlzIGRlc2lyZWQKKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIG9mIHRoZSBnaXZlbiBmaWVsZCBmb3IgdGhlIGN1cnJlbnQgZGF0ZSBvZiB0aGlzIGNhbGVuZGFyCisgICAgICogQHNlZSAjZ2V0TWF4aW11bQorICAgICAqIEBzZWUgI2dldExlYXN0TWF4aW11bQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWN0dWFsTWF4aW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldEFjdHVhbE1heGltdW0oZmllbGQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtaW5pbXVtIHZhbHVlIHRoYXQgdGhpcyBmaWVsZCBjb3VsZCBoYXZlLCBnaXZlbiB0aGUgY3VycmVudCBkYXRlLgorICAgICAqIEZvciBtb3N0IGZpZWxkcywgdGhpcyBpcyB0aGUgc2FtZSBhcyB7QGxpbmsgI2dldE1pbmltdW0gZ2V0TWluaW11bX0KKyAgICAgKiBhbmQge0BsaW5rICNnZXRHcmVhdGVzdE1pbmltdW0gZ2V0R3JlYXRlc3RNaW5pbXVtfS4gIEhvd2V2ZXIsIHNvbWUgZmllbGRzLAorICAgICAqIGVzcGVjaWFsbHkgdGhvc2UgcmVsYXRlZCB0byB3ZWVrIG51bWJlciwgYXJlIG1vcmUgY29tcGxpY2F0ZWQuCisgICAgICogPHA+CisgICAgICogRm9yIGV4YW1wbGUsIGFzc3VtZSB7QGxpbmsgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgZ2V0TWluaW1hbERheXNJbkZpcnN0V2Vla30KKyAgICAgKiByZXR1cm5zIDQgYW5kIHtAbGluayAjZ2V0Rmlyc3REYXlPZldlZWsgZ2V0Rmlyc3REYXlPZldlZWt9IHJldHVybnMgU1VOREFZLgorICAgICAqIElmIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG1vbnRoIGlzIFN1bmRheSwgTW9uZGF5LCBUdWVzZGF5LCBvciBXZWRuZXNkYXkKKyAgICAgKiB0aGVyZSB3aWxsIGJlIGZvdXIgb3IgbW9yZSBkYXlzIGluIHRoZSBmaXJzdCB3ZWVrLCBzbyBpdCB3aWxsIGJlIHdlZWsgbnVtYmVyIDEsCisgICAgICogYW5kIDxjb2RlPmdldEFjdHVhbE1pbmltdW0oV0VFS19PRl9NT05USCk8L2NvZGU+IHdpbGwgcmV0dXJuIDEuICBIb3dldmVyLAorICAgICAqIGlmIHRoZSBmaXJzdCBvZiB0aGUgbW9udGggaXMgYSBUaHVyc2RheSwgRnJpZGF5LCBvciBTYXR1cmRheSwgdGhlcmUgYXJlCisgICAgICogPGVtPm5vdDwvZW0+IGZvdXIgZGF5cyBpbiB0aGF0IHdlZWssIHNvIGl0IGlzIHdlZWsgbnVtYmVyIDAsIGFuZAorICAgICAqIDxjb2RlPmdldEFjdHVhbE1pbmltdW0oV0VFS19PRl9NT05USCk8L2NvZGU+IHdpbGwgcmV0dXJuIDAuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBmaWVsZCB3aG9zZSBhY3R1YWwgbWluaW11bSB2YWx1ZSBpcyBkZXNpcmVkLgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gb2YgdGhlIGdpdmVuIGZpZWxkIGZvciB0aGUgY3VycmVudCBkYXRlIG9mIHRoaXMgY2FsZW5kYXIKKyAgICAgKgorICAgICAqIEBzZWUgI2dldE1pbmltdW0KKyAgICAgKiBAc2VlICNnZXRHcmVhdGVzdE1pbmltdW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEFjdHVhbE1pbmltdW0oaW50IGZpZWxkKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXRBY3R1YWxNaW5pbXVtKGZpZWxkKTsKKyAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSb2xscyAodXAvZG93bikgYSBzaW5nbGUgdW5pdCBvZiB0aW1lIG9uIHRoZSBnaXZlbiBmaWVsZC4gIElmIHRoZQorICAgICAqIGZpZWxkIGlzIHJvbGxlZCBwYXN0IGl0cyBtYXhpbXVtIGFsbG93YWJsZSB2YWx1ZSwgaXQgd2lsbCAid3JhcCIgYmFjaworICAgICAqIHRvIGl0cyBtaW5pbXVtIGFuZCBjb250aW51ZSByb2xsaW5nLiBGb3IKKyAgICAgKiBleGFtcGxlLCB0byByb2xsIHRoZSBjdXJyZW50IGRhdGUgdXAgYnkgb25lIGRheSwgeW91IGNhbiBjYWxsOgorICAgICAqIDxwPgorICAgICAqIDxjb2RlPnJvbGwoe0BsaW5rICNEQVRFfSwgdHJ1ZSk8L2NvZGU+CisgICAgICogPHA+CisgICAgICogV2hlbiByb2xsaW5nIG9uIHRoZSB7QGxpbmsgI1lFQVJ9IGZpZWxkLCBpdCB3aWxsIHJvbGwgdGhlIHllYXIKKyAgICAgKiB2YWx1ZSBpbiB0aGUgcmFuZ2UgYmV0d2VlbiAxIGFuZCB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgY2FsbGluZworICAgICAqIHtAbGluayAjZ2V0TWF4aW11bSBnZXRNYXhpbXVtfSh7QGxpbmsgI1lFQVJ9KS4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIHJvbGxpbmcgb24gY2VydGFpbiBmaWVsZHMsIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIG1heSBjb25mbGljdCBhbmQKKyAgICAgKiBuZWVkIHRvIGJlIGNoYW5nZWQuICBGb3IgZXhhbXBsZSwgd2hlbiByb2xsaW5nIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQKKyAgICAgKiBmb3IgdGhlIEdyZWdvcmlhbiBkYXRlIDEvMzEvOTYgdXB3YXJkLCB0aGUgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPiBmaWVsZAorICAgICAqIG11c3QgYmUgYWRqdXN0ZWQgc28gdGhhdCB0aGUgcmVzdWx0IGlzIDIvMjkvOTYgcmF0aGVyIHRoYW4gdGhlIGludmFsaWQKKyAgICAgKiAyLzMxLzk2LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBDYWxsaW5nIDx0dD5yb2xsKGZpZWxkLCB0cnVlKTwvdHQ+IE4gdGltZXMgaXMgPGVtPm5vdDwvZW0+CisgICAgICogbmVjZXNzYXJpbHkgZXF1aXZhbGVudCB0byBjYWxsaW5nIDx0dD5yb2xsKGZpZWxkLCBOKTwvdHQ+LiAgRm9yIGV4YW1wbGUsCisgICAgICogaW1hZ2luZSB0aGF0IHlvdSBzdGFydCB3aXRoIHRoZSBkYXRlIEdyZWdvcmlhbiBkYXRlIEphbnVhcnkgMzEsIDE5OTUuICBJZiB5b3UgY2FsbAorICAgICAqIDx0dD5yb2xsKENhbGVuZGFyLk1PTlRILCAyKTwvdHQ+LCB0aGUgcmVzdWx0IHdpbGwgYmUgTWFyY2ggMzEsIDE5OTUuCisgICAgICogQnV0IGlmIHlvdSBjYWxsIDx0dD5yb2xsKENhbGVuZGFyLk1PTlRILCB0cnVlKTwvdHQ+LCB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgICAgKiBGZWJydWFyeSAyOCwgMTk5NS4gIENhbGxpbmcgaXQgb25lIG1vcmUgdGltZSB3aWxsIGdpdmUgTWFyY2ggMjgsIDE5OTUsIHdoaWNoCisgICAgICogaXMgdXN1YWxseSBub3QgdGhlIGRlc2lyZWQgcmVzdWx0LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2UgPHR0PnJvbGw8L3R0PiBhbmQgPHR0PmFkZDwvdHQ+IHJhdGhlcgorICAgICAqIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGUgZmllbGRzCisgICAgICogb2YgYSA8dHQ+Q2FsZW5kYXI8L3R0Pi4gIEl0IGlzIHF1aXRlIHBvc3NpYmxlIGZvciA8dHQ+Q2FsZW5kYXI8L3R0PiBzdWJjbGFzc2VzCisgICAgICogdG8gaGF2ZSBmaWVsZHMgd2l0aCBub24tbGluZWFyIGJlaGF2aW9yLCBmb3IgZXhhbXBsZSBtaXNzaW5nIG1vbnRocworICAgICAqIG9yIGRheXMgZHVyaW5nIG5vbi1sZWFwIHllYXJzLiAgVGhlIHN1YmNsYXNzZXMnIDx0dD5hZGQ8L3R0PiBhbmQgPHR0PnJvbGw8L3R0PgorICAgICAqIG1ldGhvZHMgd2lsbCB0YWtlIHRoaXMgaW50byBhY2NvdW50LCB3aGlsZSBzaW1wbGUgYXJpdGhtZXRpYyBtYW5pcHVsYXRpb25zCisgICAgICogbWF5IGdpdmUgaW52YWxpZCByZXN1bHRzLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgY2FsZW5kYXIgZmllbGQgdG8gcm9sbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1cCAgICBpbmRpY2F0ZXMgaWYgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgdGltZSBmaWVsZCBpcyB0byBiZQorICAgICAqICAgICAgICAgICAgICByb2xsZWQgdXAgb3Igcm9sbGVkIGRvd24uIFVzZSA8Y29kZT50cnVlPC9jb2RlPiBpZiByb2xsaW5nIHVwLAorICAgICAqICAgICAgICAgICAgICA8Y29kZT5mYWxzZTwvY29kZT4gb3RoZXJ3aXNlLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZmllbGQgaXMgaW52YWxpZCBvciByZWZlcnMKKyAgICAgKiAgICAgICAgICAgICAgdG8gYSBmaWVsZCB0aGF0IGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgbWV0aG9kLgorICAgICAqIEBzZWUgI3JvbGwoaW50LCBpbnQpCisgICAgICogQHNlZSAjYWRkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcm9sbChpbnQgZmllbGQsIGJvb2xlYW4gdXApIHsKKyAgICAgICAgY2FsZW5kYXIucm9sbChmaWVsZCwgdXApOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUm9sbHMgKHVwL2Rvd24pIGEgc3BlY2lmaWVkIGFtb3VudCB0aW1lIG9uIHRoZSBnaXZlbiBmaWVsZC4gIEZvcgorICAgICAqIGV4YW1wbGUsIHRvIHJvbGwgdGhlIGN1cnJlbnQgZGF0ZSB1cCBieSB0aHJlZSBkYXlzLCB5b3UgY2FuIGNhbGwKKyAgICAgKiA8Y29kZT5yb2xsKENhbGVuZGFyLkRBVEUsIDMpPC9jb2RlPi4gIElmIHRoZQorICAgICAqIGZpZWxkIGlzIHJvbGxlZCBwYXN0IGl0cyBtYXhpbXVtIGFsbG93YWJsZSB2YWx1ZSwgaXQgd2lsbCAid3JhcCIgYmFjaworICAgICAqIHRvIGl0cyBtaW5pbXVtIGFuZCBjb250aW51ZSByb2xsaW5nLgorICAgICAqIEZvciBleGFtcGxlLCBjYWxsaW5nIDxjb2RlPnJvbGwoQ2FsZW5kYXIuREFURSwgMTApPC9jb2RlPgorICAgICAqIG9uIGEgR3JlZ29yaWFuIGNhbGVuZGFyIHNldCB0byA0LzI1Lzk2IHdpbGwgcmVzdWx0IGluIHRoZSBkYXRlIDQvNS85Ni4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIHJvbGxpbmcgb24gY2VydGFpbiBmaWVsZHMsIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIG1heSBjb25mbGljdCBhbmQKKyAgICAgKiBuZWVkIHRvIGJlIGNoYW5nZWQuICBGb3IgZXhhbXBsZSwgd2hlbiByb2xsaW5nIHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZAorICAgICAqIGZvciB0aGUgR3JlZ29yaWFuIGRhdGUgMS8zMS85NiBieSArMSwgdGhlIHtAbGluayAjREFZX09GX01PTlRIIERBWV9PRl9NT05USH0gZmllbGQKKyAgICAgKiBtdXN0IGJlIGFkanVzdGVkIHNvIHRoYXQgdGhlIHJlc3VsdCBpcyAyLzI5Lzk2IHJhdGhlciB0aGFuIHRoZSBpbnZhbGlkCisgICAgICogMi8zMS85Ni4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgPGNvZGU+Y29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjwvY29kZT4gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBtZXRob2QgaXMgYWJsZSB0byByb2xsCisgICAgICogYWxsIGZpZWxkcyBleGNlcHQgZm9yIHtAbGluayAjRVJBIEVSQX0sIHtAbGluayAjRFNUX09GRlNFVCBEU1RfT0ZGU0VUfSwKKyAgICAgKiBhbmQge0BsaW5rICNaT05FX09GRlNFVCBaT05FX09GRlNFVH0uICBTdWJjbGFzc2VzIG1heSwgb2YgY291cnNlLCBhZGQgc3VwcG9ydCBmb3IKKyAgICAgKiBhZGRpdGlvbmFsIGZpZWxkcyBpbiB0aGVpciBvdmVycmlkZXMgb2YgPGNvZGU+cm9sbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFlvdSBzaG91bGQgYWx3YXlzIHVzZSA8dHQ+cm9sbDwvdHQ+IGFuZCA8dHQ+YWRkPC90dD4gcmF0aGVyCisgICAgICogdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25zIGRpcmVjdGx5IG9uIHRoZSBmaWVsZHMKKyAgICAgKiBvZiBhIDx0dD5DYWxlbmRhcjwvdHQ+LiAgSXQgaXMgcXVpdGUgcG9zc2libGUgZm9yIDx0dD5DYWxlbmRhcjwvdHQ+IHN1YmNsYXNzZXMKKyAgICAgKiB0byBoYXZlIGZpZWxkcyB3aXRoIG5vbi1saW5lYXIgYmVoYXZpb3IsIGZvciBleGFtcGxlIG1pc3NpbmcgbW9udGhzCisgICAgICogb3IgZGF5cyBkdXJpbmcgbm9uLWxlYXAgeWVhcnMuICBUaGUgc3ViY2xhc3NlcycgPHR0PmFkZDwvdHQ+IGFuZCA8dHQ+cm9sbDwvdHQ+CisgICAgICogbWV0aG9kcyB3aWxsIHRha2UgdGhpcyBpbnRvIGFjY291bnQsIHdoaWxlIHNpbXBsZSBhcml0aG1ldGljIG1hbmlwdWxhdGlvbnMKKyAgICAgKiBtYXkgZ2l2ZSBpbnZhbGlkIHJlc3VsdHMuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPjxicj4KKyAgICAgKiBUaGlzIGltcGxlbWVudGF0aW9uIG9mIDxjb2RlPnJvbGw8L2NvZGU+IGFzc3VtZXMgdGhhdCB0aGUgYmVoYXZpb3Igb2YgdGhlCisgICAgICogZmllbGQgaXMgY29udGludW91cyBiZXR3ZWVuIGl0cyBtaW5pbXVtIGFuZCBtYXhpbXVtLCB3aGljaCBhcmUgZm91bmQgYnkKKyAgICAgKiBjYWxsaW5nIHtAbGluayAjZ2V0QWN0dWFsTWluaW11bSBnZXRBY3R1YWxNaW5pbXVtfSBhbmQge0BsaW5rICNnZXRBY3R1YWxNYXhpbXVtIGdldEFjdHVhbE1heGltdW19LgorICAgICAqIEZvciBtb3N0IHN1Y2ggZmllbGRzLCBzaW1wbGUgYWRkaXRpb24sIHN1YnRyYWN0aW9uLCBhbmQgbW9kdWx1cyBvcGVyYXRpb25zCisgICAgICogYXJlIHN1ZmZpY2llbnQgdG8gcGVyZm9ybSB0aGUgcm9sbC4gIEZvciB3ZWVrLXJlbGF0ZWQgZmllbGRzLAorICAgICAqIHRoZSByZXN1bHRzIG9mIHtAbGluayAjZ2V0Rmlyc3REYXlPZldlZWsgZ2V0Rmlyc3REYXlPZldlZWt9IGFuZAorICAgICAqIHtAbGluayAjZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlayBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrfSBhcmUgYWxzbyBuZWNlc3NhcnkuCisgICAgICogU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdGhlc2UgdHdvIG1ldGhvZHMgaWYgdGhlaXIgdmFsdWVzIGRpZmZlciBmcm9tIHRoZSBkZWZhdWx0cy4KKyAgICAgKiA8cD4KKyAgICAgKiBTdWJjbGFzc2VzIHRoYXQgaGF2ZSBmaWVsZHMgZm9yIHdoaWNoIHRoZSBhc3N1bXB0aW9uIG9mIGNvbnRpbnVpdHkgYnJlYWtzCisgICAgICogZG93biBtdXN0IG92ZXJpZGUgPGNvZGU+cm9sbDwvY29kZT4gdG8gaGFuZGxlIHRob3NlIGZpZWxkcyBzcGVjaWFsbHkuCisgICAgICogRm9yIGV4YW1wbGUsIGluIHRoZSBIZWJyZXcgY2FsZW5kYXIgdGhlIG1vbnRoICJBZGFyIEkiCisgICAgICogb25seSBvY2N1cnMgaW4gbGVhcCB5ZWFyczsgaW4gb3RoZXIgeWVhcnMgdGhlIGNhbGVuZGFyIGp1bXBzIGZyb20KKyAgICAgKiBTaGV2YXQgKG1vbnRoICM0KSB0byBBZGFyIChtb250aCAjNikuICBUaGUKKyAgICAgKiB7QGxpbmsgSGVicmV3Q2FsZW5kYXIjcm9sbCBIZWJyZXdDYWxlbmRhci5yb2xsfSBtZXRob2QgdGFrZXMgdGhpcyBpbnRvIGFjY291bnQsCisgICAgICogc28gdGhhdCByb2xsaW5nIHRoZSBtb250aCBvZiBTaGV2YXQgYnkgb25lIGdpdmVzIHRoZSBwcm9wZXIgcmVzdWx0IChBZGFyKSBpbiBhCisgICAgICogbm9uLWxlYXAgeWVhci4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgICAgIHRoZSBjYWxlbmRhciBmaWVsZCB0byByb2xsLgorICAgICAqIEBwYXJhbSBhbW91bnQgICAgdGhlIGFtb3VudCBieSB3aGljaCB0aGUgZmllbGQgc2hvdWxkIGJlIHJvbGxlZC4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGZpZWxkIGlzIGludmFsaWQgb3IgcmVmZXJzCisgICAgICogICAgICAgICAgICAgIHRvIGEgZmllbGQgdGhhdCBjYW5ub3QgYmUgaGFuZGxlZCBieSB0aGlzIG1ldGhvZC4KKyAgICAgKiBAc2VlICNyb2xsKGludCwgYm9vbGVhbikKKyAgICAgKiBAc2VlICNhZGQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByb2xsKGludCBmaWVsZCwgaW50IGFtb3VudCkgeworICAgICAgICBjYWxlbmRhci5yb2xsKGZpZWxkLCBhbW91bnQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWRkIGEgc2lnbmVkIGFtb3VudCB0byBhIHNwZWNpZmllZCBmaWVsZCwgdXNpbmcgdGhpcyBjYWxlbmRhcidzIHJ1bGVzLgorICAgICAqIEZvciBleGFtcGxlLCB0byBhZGQgdGhyZWUgZGF5cyB0byB0aGUgY3VycmVudCBkYXRlLCB5b3UgY2FuIGNhbGwKKyAgICAgKiA8Y29kZT5hZGQoQ2FsZW5kYXIuREFURSwgMyk8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIFdoZW4gYWRkaW5nIHRvIGNlcnRhaW4gZmllbGRzLCB0aGUgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBtYXkgY29uZmxpY3QgYW5kCisgICAgICogbmVlZCB0byBiZSBjaGFuZ2VkLiAgRm9yIGV4YW1wbGUsIHdoZW4gYWRkaW5nIG9uZSB0byB0aGUge0BsaW5rICNNT05USCBNT05USH0gZmllbGQKKyAgICAgKiBmb3IgdGhlIEdyZWdvcmlhbiBkYXRlIDEvMzEvOTYsIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZpZWxkCisgICAgICogbXVzdCBiZSBhZGp1c3RlZCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgMi8yOS85NiByYXRoZXIgdGhhbiB0aGUgaW52YWxpZAorICAgICAqIDIvMzEvOTYuCisgICAgICogPHA+CisgICAgICogVGhlIDxjb2RlPmNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI8L2NvZGU+IGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbWV0aG9kIGlzIGFibGUgdG8gYWRkIHRvCisgICAgICogYWxsIGZpZWxkcyBleGNlcHQgZm9yIHtAbGluayAjRVJBIEVSQX0sIHtAbGluayAjRFNUX09GRlNFVCBEU1RfT0ZGU0VUfSwKKyAgICAgKiBhbmQge0BsaW5rICNaT05FX09GRlNFVCBaT05FX09GRlNFVH0uICBTdWJjbGFzc2VzIG1heSwgb2YgY291cnNlLCBhZGQgc3VwcG9ydCBmb3IKKyAgICAgKiBhZGRpdGlvbmFsIGZpZWxkcyBpbiB0aGVpciBvdmVycmlkZXMgb2YgPGNvZGU+YWRkPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gWW91IHNob3VsZCBhbHdheXMgdXNlIDx0dD5yb2xsPC90dD4gYW5kIDx0dD5hZGQ8L3R0PiByYXRoZXIKKyAgICAgKiB0aGFuIGF0dGVtcHRpbmcgdG8gcGVyZm9ybSBhcml0aG1ldGljIG9wZXJhdGlvbnMgZGlyZWN0bHkgb24gdGhlIGZpZWxkcworICAgICAqIG9mIGEgPHR0PkNhbGVuZGFyPC90dD4uICBJdCBpcyBxdWl0ZSBwb3NzaWJsZSBmb3IgPHR0PkNhbGVuZGFyPC90dD4gc3ViY2xhc3NlcworICAgICAqIHRvIGhhdmUgZmllbGRzIHdpdGggbm9uLWxpbmVhciBiZWhhdmlvciwgZm9yIGV4YW1wbGUgbWlzc2luZyBtb250aHMKKyAgICAgKiBvciBkYXlzIGR1cmluZyBub24tbGVhcCB5ZWFycy4gIFRoZSBzdWJjbGFzc2VzJyA8dHQ+YWRkPC90dD4gYW5kIDx0dD5yb2xsPC90dD4KKyAgICAgKiBtZXRob2RzIHdpbGwgdGFrZSB0aGlzIGludG8gYWNjb3VudCwgd2hpbGUgc2ltcGxlIGFyaXRobWV0aWMgbWFuaXB1bGF0aW9ucworICAgICAqIG1heSBnaXZlIGludmFsaWQgcmVzdWx0cy4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5TdWJjbGFzc2luZzo8L2I+PGJyPgorICAgICAqIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgPGNvZGU+YWRkPC9jb2RlPiBhc3N1bWVzIHRoYXQgdGhlIGJlaGF2aW9yIG9mIHRoZQorICAgICAqIGZpZWxkIGlzIGNvbnRpbnVvdXMgYmV0d2VlbiBpdHMgbWluaW11bSBhbmQgbWF4aW11bSwgd2hpY2ggYXJlIGZvdW5kIGJ5CisgICAgICogY2FsbGluZyB7QGxpbmsgI2dldEFjdHVhbE1pbmltdW0gZ2V0QWN0dWFsTWluaW11bX0gYW5kCisgICAgICoge0BsaW5rICNnZXRBY3R1YWxNYXhpbXVtIGdldEFjdHVhbE1heGltdW19LgorICAgICAqIEZvciBzdWNoIGZpZWxkcywgc2ltcGxlIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBhcmUgc3VmZmljaWVudCB0bworICAgICAqIHBlcmZvcm0gdGhlIGFkZC4KKyAgICAgKiA8cD4KKyAgICAgKiBTdWJjbGFzc2VzIHRoYXQgaGF2ZSBmaWVsZHMgZm9yIHdoaWNoIHRoaXMgYXNzdW1wdGlvbiBvZiBjb250aW51aXR5IGJyZWFrcworICAgICAqIGRvd24gbXVzdCBvdmVyaWRlIDxjb2RlPmFkZDwvY29kZT4gdG8gaGFuZGxlIHRob3NlIGZpZWxkcyBzcGVjaWFsbHkuCisgICAgICogRm9yIGV4YW1wbGUsIGluIHRoZSBIZWJyZXcgY2FsZW5kYXIgdGhlIG1vbnRoICJBZGFyIEkiCisgICAgICogb25seSBvY2N1cnMgaW4gbGVhcCB5ZWFyczsgaW4gb3RoZXIgeWVhcnMgdGhlIGNhbGVuZGFyIGp1bXBzIGZyb20KKyAgICAgKiBTaGV2YXQgKG1vbnRoICM0KSB0byBBZGFyIChtb250aCAjNikuICBUaGUKKyAgICAgKiB7QGxpbmsgSGVicmV3Q2FsZW5kYXIjYWRkIEhlYnJld0NhbGVuZGFyLmFkZH0gbWV0aG9kIHRha2VzIHRoaXMgaW50byBhY2NvdW50LAorICAgICAqIHNvIHRoYXQgYWRkaW5nIG9uZSBtb250aAorICAgICAqIHRvIGEgZGF0ZSBpbiBTaGV2YXQgZ2l2ZXMgdGhlIHByb3BlciByZXN1bHQgKEFkYXIpIGluIGEgbm9uLWxlYXAgeWVhci4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgICAgIHRoZSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBhbW91bnQgICAgdGhlIGFtb3VudCB0byBhZGQgdG8gdGhlIGZpZWxkLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZmllbGQgaXMgaW52YWxpZCBvciByZWZlcnMKKyAgICAgKiAgICAgICAgICAgICAgdG8gYSBmaWVsZCB0aGF0IGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgbWV0aG9kLgorICAgICAqIEBzZWUgI3JvbGwoaW50LCBpbnQpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkKGludCBmaWVsZCwgaW50IGFtb3VudCkgeworICAgICAgICBjYWxlbmRhci5hZGQoZmllbGQsIGFtb3VudCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhpcyBjYWxlbmRhciBpbiB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKExvY2FsZSBsb2MpIHsKKyAgICAgICAgcmV0dXJuICJDYWxlbmRhciI7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhpcyBjYWxlbmRhciBpbiB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgcmV0dXJuICJDYWxlbmRhciI7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgdGltZXMgKGluIG1pbGxpcykgcmVwcmVzZW50ZWQgYnkgdHdvCisgICAgICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IG9iamVjdHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGhhdCB0aGUgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHRvIGNvbXBhcmUgdG8gdGhpcy4KKyAgICAgKiBAcmV0dXJuIDxjb2RlPjA8L2NvZGU+IGlmIHRoZSB0aW1lIHJlcHJlc2VudGVkIGJ5IAorICAgICAqIHRoaXMgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGlzIGVxdWFsIHRvIHRoZSB0aW1lIHJlcHJlc2VudGVkIAorICAgICAqIGJ5IHRoYXQgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LCBhIHZhbHVlIGxlc3MgdGhhbiAKKyAgICAgKiA8Y29kZT4wPC9jb2RlPiBpZiB0aGUgdGltZSByZXByZXNlbnRlZCBieSB0aGlzIGlzIGJlZm9yZQorICAgICAqIHRoZSB0aW1lIHJlcHJlc2VudGVkIGJ5IHRoYXQsIGFuZCBhIHZhbHVlIGdyZWF0ZXIgdGhhbgorICAgICAqIDxjb2RlPjA8L2NvZGU+IGlmIHRoZSB0aW1lIHJlcHJlc2VudGVkIGJ5IHRoaXMKKyAgICAgKiBpcyBhZnRlciB0aGUgdGltZSByZXByZXNlbnRlZCBieSB0aGF0LgorICAgICAqIEB0aHJvd3MgTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgdGhhdCAKKyAgICAgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaXMgbnVsbC4KKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgdGltZSBvZiB0aGF0IAorICAgICAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBjYW4ndCBiZSBvYnRhaW5lZCBiZWNhdXNlIG9mIGludmFsaWQKKyAgICAgKiBjYWxlbmRhciB2YWx1ZXMuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhDYWxlbmRhciB0aGF0KSB7CisgICAgICAgIGxvbmcgdiA9IGdldFRpbWVJbk1pbGxpcygpIC0gdGhhdC5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgcmV0dXJuIHYgPCAwID8gLTEgOiAodiA+IDAgPyAxIDogMCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnQgY29tcGFyYWJsZSBBUEkgYXMgYSBjb252ZW5pZW5jZSBvdmVycmlkZSBvZgorICAgICAqIHtAbGluayAjY29tcGFyZVRvKENhbGVuZGFyKX0uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3QgdGhhdCkgeworICAgICAgICByZXR1cm4gY29tcGFyZVRvKChDYWxlbmRhcil0aGF0KTsKKyAgICB9CisgICAgICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEludGVyZmFjZSBmb3IgY3JlYXRpbmcgY3VzdG9uIERhdGVGb3JtYXRzIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgQ2FsZW5kYXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFwcHJvcHJpYXRlIHRvIHRoaXMgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVGb3JtYXQoaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSwgTG9jYWxlIGxvYykgeworICAgICAgICByZXR1cm4gZm9ybWF0SGVscGVyKHRoaXMsIGxvYywgZGF0ZVN0eWxlLCB0aW1lU3R5bGUpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gYXBwcm9wcmlhdGUgdG8gdGhpcyBjYWxlbmRhci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVUaW1lRm9ybWF0KGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUsIFVMb2NhbGUgbG9jKSB7CisgICAgICAgIHJldHVybiBmb3JtYXRIZWxwZXIodGhpcywgbG9jLnRvTG9jYWxlKCksIGRhdGVTdHlsZSwgdGltZVN0eWxlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qCisgICAgICogVXRpbGl0eSBmb3IgZm9ybWF0dGluZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBEYXRlRm9ybWF0IGZvcm1hdEhlbHBlcihDYWxlbmRhciBjYWwsIExvY2FsZSBsb2MsIGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUpIHsKKyAgICAgICAgLy8gQXNzdW1lIHRoZXJlIGlzIG9ubHkgb25lIGtpbmQgb2YgY2FsZW5kYXIuICBJbiBKYXZhIDYgdGhlcmUgd2lsbCBhbHNvIGJlIEphcGFuZXNlCisgICAgICAgIC8vIGNhbGVuZGFycywgYnV0IHdlJ2xsIHdvcnJ5IGFib3V0IHRoYXQgd2hlbiBpdCBoYXBwZW5zLgorICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGRhdGVTdHlsZSwgdGltZVN0eWxlLCBsb2MpOworICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICByZXR1cm4gZGY7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFtORVddCisgICAgICogUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGdpdmVuIHRpbWUgYW5kIHRoZSB0aW1lIHRoaXMKKyAgICAgKiBjYWxlbmRhciBvYmplY3QgaXMgc2V0IHRvLiAgSWYgdGhpcyBjYWxlbmRhciBpcyBzZXQKKyAgICAgKiA8ZW0+YmVmb3JlPC9lbT4gdGhlIGdpdmVuIHRpbWUsIHRoZSByZXR1cm5lZCB2YWx1ZSB3aWxsIGJlCisgICAgICogcG9zaXRpdmUuICBJZiB0aGlzIGNhbGVuZGFyIGlzIHNldCA8ZW0+YWZ0ZXI8L2VtPiB0aGUgZ2l2ZW4KKyAgICAgKiB0aW1lLCB0aGUgcmV0dXJuZWQgdmFsdWUgd2lsbCBiZSBuZWdhdGl2ZS4gIFRoZQorICAgICAqIDxjb2RlPmZpZWxkPC9jb2RlPiBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB1bml0cyBvZiB0aGUgcmV0dXJuCisgICAgICogdmFsdWUuICBGb3IgZXhhbXBsZSwgaWYgPGNvZGU+ZmllbGREaWZmZXJlbmNlKHdoZW4sCisgICAgICogQ2FsZW5kYXIuTU9OVEgpPC9jb2RlPiByZXR1cm5zIDMsIHRoZW4gdGhpcyBjYWxlbmRhciBpcyBzZXQgdG8KKyAgICAgKiAzIG1vbnRocyBiZWZvcmUgPGNvZGU+d2hlbjwvY29kZT4sIGFuZCBwb3NzaWJseSBzb21lIGFkZGl0aW9uYWwKKyAgICAgKiB0aW1lIGxlc3MgdGhhbiBvbmUgbW9udGguCisgICAgICoKKyAgICAgKiA8cD5BcyBhIHNpZGUgZWZmZWN0IG9mIHRoaXMgY2FsbCwgdGhpcyBjYWxlbmRhciBpcyBhZHZhbmNlZAorICAgICAqIHRvd2FyZCA8Y29kZT53aGVuPC9jb2RlPiBieSB0aGUgZ2l2ZW4gYW1vdW50LiAgVGhhdCBpcywgY2FsbGluZworICAgICAqIHRoaXMgbWV0aG9kIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgY2FsbGluZyA8Y29kZT5hZGQoZmllbGQsCisgICAgICogbik8L2NvZGU+LCB3aGVyZSA8Y29kZT5uPC9jb2RlPiBpcyB0aGUgcmV0dXJuIHZhbHVlLgorICAgICAqCisgICAgICogPHA+VXNhZ2U6IFRvIHVzZSB0aGlzIG1ldGhvZCwgY2FsbCBpdCBmaXJzdCB3aXRoIHRoZSBsYXJnZXN0CisgICAgICogZmllbGQgb2YgaW50ZXJlc3QsIHRoZW4gd2l0aCBwcm9ncmVzc2l2ZWx5IHNtYWxsZXIgZmllbGRzLiAgRm9yCisgICAgICogZXhhbXBsZToKKyAgICAgKgorICAgICAqIDxwcmU+CisgICAgICogaW50IHkgPSBjYWwuZmllbGREaWZmZXJlbmNlKHdoZW4sIENhbGVuZGFyLllFQVIpOworICAgICAqIGludCBtID0gY2FsLmZpZWxkRGlmZmVyZW5jZSh3aGVuLCBDYWxlbmRhci5NT05USCk7CisgICAgICogaW50IGQgPSBjYWwuZmllbGREaWZmZXJlbmNlKHdoZW4sIENhbGVuZGFyLkRBVEUpOzwvcHJlPgorICAgICAqCisgICAgICogY29tcHV0ZXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiA8Y29kZT5jYWw8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPndoZW48L2NvZGU+IGluIHllYXJzLCBtb250aHMsIGFuZCBkYXlzLgorICAgICAqCisgICAgICogPHA+Tm90ZTogPGNvZGU+ZmllbGREaWZmZXJlbmNlKCk8L2NvZGU+IGlzCisgICAgICogPGVtPmFzeW1tZXRyaWNhbDwvZW0+LiAgVGhhdCBpcywgaW4gdGhlIGZvbGxvd2luZyBjb2RlOgorICAgICAqCisgICAgICogPHByZT4KKyAgICAgKiBjYWwuc2V0VGltZShkYXRlMSk7CisgICAgICogaW50IG0xID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMiwgQ2FsZW5kYXIuTU9OVEgpOworICAgICAqIGludCBkMSA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIsIENhbGVuZGFyLkRBVEUpOworICAgICAqIGNhbC5zZXRUaW1lKGRhdGUyKTsKKyAgICAgKiBpbnQgbTIgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUxLCBDYWxlbmRhci5NT05USCk7CisgICAgICogaW50IGQyID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMSwgQ2FsZW5kYXIuREFURSk7PC9wcmU+CisgICAgICoKKyAgICAgKiBvbmUgbWlnaHQgZXhwZWN0IHRoYXQgPGNvZGU+bTEgPT0gLW0yICYmIGQxID09IC1kMjwvY29kZT4uCisgICAgICogSG93ZXZlciwgdGhpcyBpcyBub3QgZ2VuZXJhbGx5IHRoZSBjYXNlLCBiZWNhdXNlIG9mCisgICAgICogaXJyZWd1bGFyaXRpZXMgaW4gdGhlIHVuZGVybHlpbmcgY2FsZW5kYXIgc3lzdGVtIChlLmcuLCB0aGUKKyAgICAgKiBHcmVnb3JpYW4gY2FsZW5kYXIgaGFzIGEgdmFyeWluZyBudW1iZXIgb2YgZGF5cyBwZXIgbW9udGgpLgorICAgICAqCisgICAgICogQHBhcmFtIHdoZW4gdGhlIGRhdGUgdG8gY29tcGFyZSB0aGlzIGNhbGVuZGFyJ3MgdGltZSB0bworICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZmllbGQgaW4gd2hpY2ggdG8gY29tcHV0ZSB0aGUgcmVzdWx0CisgICAgICogQHJldHVybiB0aGUgZGlmZmVyZW5jZSwgZWl0aGVyIHBvc2l0aXZlIG9yIG5lZ2F0aXZlLCBiZXR3ZWVuCisgICAgICogdGhpcyBjYWxlbmRhcidzIHRpbWUgYW5kIDxjb2RlPndoZW48L2NvZGU+LCBpbiB0ZXJtcyBvZgorICAgICAqIDxjb2RlPmZpZWxkPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGZpZWxkRGlmZmVyZW5jZShEYXRlIHdoZW4sIGludCBmaWVsZCkgeworICAgICAgICBpbnQgbWluID0gMDsKKyAgICAgICAgbG9uZyBzdGFydE1zID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgIGxvbmcgdGFyZ2V0TXMgPSB3aGVuLmdldFRpbWUoKTsKKyAgICAgICAgLy8gQWx3YXlzIGFkZCBmcm9tIHRoZSBzdGFydCBtaWxsaXMuICBUaGlzIGFjY29tb2RhdGVzCisgICAgICAgIC8vIG9wZXJhdGlvbnMgbGlrZSBhZGRpbmcgeWVhcnMgZnJvbSBGZWJydWFyeSAyOSwgMjAwMCB1cCB0bworICAgICAgICAvLyBGZWJydWFyeSAyOSwgMjAwNC4gIElmIDEsIDEsIDEsIDEgaXMgYWRkZWQgdG8gdGhlIHllYXIKKyAgICAgICAgLy8gZmllbGQsIHRoZSBET00gZ2V0cyBwaW5uZWQgdG8gMjggYW5kIHN0YXlzIHRoZXJlLCBnaXZpbmcgYW4KKyAgICAgICAgLy8gaW5jb3JyZWN0IERPTSBkaWZmZXJlbmNlIG9mIDEuICBXZSBoYXZlIHRvIGFkZCAxLCByZXNldCwgMiwKKyAgICAgICAgLy8gcmVzZXQsIDMsIHJlc2V0LCA0LgorICAgICAgICBpZiAoc3RhcnRNcyA8IHRhcmdldE1zKSB7CisgICAgICAgICAgICBpbnQgbWF4ID0gMTsKKyAgICAgICAgICAgIC8vIEZpbmQgYSB2YWx1ZSB0aGF0IGlzIHRvbyBsYXJnZQorICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyhzdGFydE1zKTsKKyAgICAgICAgICAgICAgICBhZGQoZmllbGQsIG1heCk7CisgICAgICAgICAgICAgICAgbG9uZyBtcyA9IGdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgICAgIGlmIChtcyA9PSB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF4OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobXMgPiB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtYXggPDw9IDE7CisgICAgICAgICAgICAgICAgICAgIGlmIChtYXggPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGaWVsZCBkaWZmZXJlbmNlIHRvbyBsYXJnZSB0byBmaXQgaW50byBpbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBEbyBhIGJpbmFyeSBzZWFyY2gKKyAgICAgICAgICAgIHdoaWxlICgobWF4IC0gbWluKSA+IDEpIHsKKyAgICAgICAgICAgICAgICBpbnQgdCA9IChtaW4gKyBtYXgpIC8gMjsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXMoc3RhcnRNcyk7CisgICAgICAgICAgICAgICAgYWRkKGZpZWxkLCB0KTsKKyAgICAgICAgICAgICAgICBsb25nIG1zID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgaWYgKG1zID09IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobXMgPiB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICBtYXggPSB0OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1pbiA9IHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0TXMgPiB0YXJnZXRNcykgeworICAgICAgICAgICAgaWYgKGZhbHNlKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyB3b3JrcywgYW5kIG1ha2VzIHRoZSBjb2RlIHNtYWxsZXIsIGJ1dCBjb3N0cworICAgICAgICAgICAgICAgIC8vIGFuIGV4dHJhIG9iamVjdCBjcmVhdGlvbiBhbmQgYW4gZXh0cmEgY291cGxlIGN5Y2xlcworICAgICAgICAgICAgICAgIC8vIG9mIGNhbGVuZGFyIGNvbXB1dGF0aW9uLgorICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyh0YXJnZXRNcyk7CisgICAgICAgICAgICAgICAgbWluID0gLWZpZWxkRGlmZmVyZW5jZShuZXcgRGF0ZShzdGFydE1zKSwgZmllbGQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IG1heCA9IC0xOworICAgICAgICAgICAgLy8gRmluZCBhIHZhbHVlIHRoYXQgaXMgdG9vIHNtYWxsCisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHN0YXJ0TXMpOworICAgICAgICAgICAgICAgIGFkZChmaWVsZCwgbWF4KTsKKyAgICAgICAgICAgICAgICBsb25nIG1zID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgaWYgKG1zID09IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXg7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtcyA8IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1heCA8PD0gMTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1heCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGaWVsZCBkaWZmZXJlbmNlIHRvbyBsYXJnZSB0byBmaXQgaW50byBpbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBEbyBhIGJpbmFyeSBzZWFyY2gKKyAgICAgICAgICAgIHdoaWxlICgobWluIC0gbWF4KSA+IDEpIHsKKyAgICAgICAgICAgICAgICBpbnQgdCA9IChtaW4gKyBtYXgpIC8gMjsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXMoc3RhcnRNcyk7CisgICAgICAgICAgICAgICAgYWRkKGZpZWxkLCB0KTsKKyAgICAgICAgICAgICAgICBsb25nIG1zID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgaWYgKG1zID09IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobXMgPCB0YXJnZXRNcykgeworICAgICAgICAgICAgICAgICAgICBtYXggPSB0OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1pbiA9IHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIFNldCBjYWxlbmRhciB0byBlbmQgcG9pbnQKKyAgICAgICAgc2V0VGltZUluTWlsbGlzKHN0YXJ0TXMpOworICAgICAgICBhZGQoZmllbGQsIG1pbik7CisgICAgICAgIHJldHVybiBtaW47CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gdGltZSB6b25lIHZhbHVlLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRpbWVab25lKFRpbWVab25lIHZhbHVlKSB7CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWVab25lKHZhbHVlLnRpbWVab25lKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgem9uZS4KKyAgICAgKiBAcmV0dXJuIHRoZSB0aW1lIHpvbmUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBUaW1lWm9uZSBnZXRUaW1lWm9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBUaW1lWm9uZShjYWxlbmRhci5nZXRUaW1lWm9uZSgpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNwZWNpZnkgd2hldGhlciBvciBub3QgZGF0ZS90aW1lIGludGVycHJldGF0aW9uIGlzIHRvIGJlIGxlbmllbnQuICBXaXRoCisgICAgICogbGVuaWVudCBpbnRlcnByZXRhdGlvbiwgYSBkYXRlIHN1Y2ggYXMgIkZlYnJ1YXJ5IDk0MiwgMTk5NiIgd2lsbCBiZQorICAgICAqIHRyZWF0ZWQgYXMgYmVpbmcgZXF1aXZhbGVudCB0byB0aGUgOTQxc3QgZGF5IGFmdGVyIEZlYnJ1YXJ5IDEsIDE5OTYuCisgICAgICogV2l0aCBzdHJpY3QgaW50ZXJwcmV0YXRpb24sIHN1Y2ggZGF0ZXMgd2lsbCBjYXVzZSBhbiBleGNlcHRpb24gdG8gYmUKKyAgICAgKiB0aHJvd24uCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQjc2V0TGVuaWVudAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldExlbmllbnQoYm9vbGVhbiBsZW5pZW50KSAgICAgeworICAgICAgICBjYWxlbmRhci5zZXRMZW5pZW50KGxlbmllbnQpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogVGVsbCB3aGV0aGVyIGRhdGUvdGltZSBpbnRlcnByZXRhdGlvbiBpcyB0byBiZSBsZW5pZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTGVuaWVudCgpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmlzTGVuaWVudCgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB3aGF0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgaXM7IGUuZy4sIFN1bmRheSBpbiBVUywKKyAgICAgKiBNb25kYXkgaW4gRnJhbmNlLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgZ2l2ZW4gZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZpcnN0RGF5T2ZXZWVrKGludCB2YWx1ZSkgeworICAgICAgICBjYWxlbmRhci5zZXRGaXJzdERheU9mV2Vlayh2YWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoYXQgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayBpczsgZS5nLiwgU3VuZGF5IGluIFVTLAorICAgICAqIE1vbmRheSBpbiBGcmFuY2UuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rmlyc3REYXlPZldlZWsoKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXRGaXJzdERheU9mV2VlaygpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB3aGF0IHRoZSBtaW5pbWFsIGRheXMgcmVxdWlyZWQgaW4gdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIgYXJlLgorICAgICAqIEZvciBleGFtcGxlLCBpZiB0aGUgZmlyc3Qgd2VlayBpcyBkZWZpbmVkIGFzIG9uZSB0aGF0IGNvbnRhaW5zIHRoZSBmaXJzdAorICAgICAqIGRheSBvZiB0aGUgZmlyc3QgbW9udGggb2YgYSB5ZWFyLCBjYWxsIHRoZSBtZXRob2Qgd2l0aCB2YWx1ZSAxLiBJZiBpdAorICAgICAqIG11c3QgYmUgYSBmdWxsIHdlZWssIHVzZSB2YWx1ZSA3LgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgZ2l2ZW4gbWluaW1hbCBkYXlzIHJlcXVpcmVkIGluIHRoZSBmaXJzdCB3ZWVrCisgICAgICogb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhpbnQgdmFsdWUpIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0TWluaW1hbERheXNJbkZpcnN0V2Vlayh2YWx1ZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoYXQgdGhlIG1pbmltYWwgZGF5cyByZXF1aXJlZCBpbiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhciBhcmU7CisgICAgICogZS5nLiwgaWYgdGhlIGZpcnN0IHdlZWsgaXMgZGVmaW5lZCBhcyBvbmUgdGhhdCBjb250YWlucyB0aGUgZmlyc3QgZGF5CisgICAgICogb2YgdGhlIGZpcnN0IG1vbnRoIG9mIGEgeWVhciwgZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlayByZXR1cm5zIDEuIElmCisgICAgICogdGhlIG1pbmltYWwgZGF5cyByZXF1aXJlZCBtdXN0IGJlIGEgZnVsbCB3ZWVrLCBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrCisgICAgICogcmV0dXJucyA3LgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltYWwgZGF5cyByZXF1aXJlZCBpbiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBtaW5pbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBlLmcuLCBmb3IgR3JlZ29yaWFuIERBWV9PRl9NT05USCwgMS4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgbWluaW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRNaW5pbXVtKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0TWluaW11bShmaWVsZCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBtYXhpbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBlLmcuIGZvciBHcmVnb3JpYW4gREFZX09GX01PTlRILCAzMS4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRNYXhpbXVtKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0TWF4aW11bShmaWVsZCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBoaWdoZXN0IG1pbmltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiBmaWVsZCBpZiB2YXJpZXMuCisgICAgICogT3RoZXJ3aXNlIHNhbWUgYXMgZ2V0TWluaW11bSgpLiBGb3IgR3JlZ29yaWFuLCBubyBkaWZmZXJlbmNlLgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBoaWdoZXN0IG1pbmltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0R3JlYXRlc3RNaW5pbXVtKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0R3JlYXRlc3RNaW5pbXVtKGZpZWxkKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxvd2VzdCBtYXhpbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gZmllbGQgaWYgdmFyaWVzLgorICAgICAqIE90aGVyd2lzZSBzYW1lIGFzIGdldE1heGltdW0oKS4gZS5nLiwgZm9yIEdyZWdvcmlhbiBEQVlfT0ZfTU9OVEgsIDI4LgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb3dlc3QgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRMZWFzdE1heGltdW0oaW50IGZpZWxkKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXRMZWFzdE1heGltdW0oZmllbGQpOworICAgIH0KKyAgICAgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gV2Vla2VuZCBzdXBwb3J0IC0tIGRldGVybWluaW5nIHdoaWNoIGRheXMgb2YgdGhlIHdlZWsgYXJlIHRoZSB3ZWVrZW5kCisgICAgLy8gaW4gYSBnaXZlbiBsb2NhbGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIGRheSBvZiB0aGUgd2VlayBpcyBhIHdlZWtkYXksIGEKKyAgICAgKiB3ZWVrZW5kIGRheSwgb3IgYSBkYXkgdGhhdCB0cmFuc2l0aW9ucyBmcm9tIG9uZSB0byB0aGUgb3RoZXIsCisgICAgICogaW4gdGhpcyBjYWxlbmRhciBzeXN0ZW0uICBJZiBhIHRyYW5zaXRpb24gb2NjdXJzIGF0IG1pZG5pZ2h0LAorICAgICAqIHRoZW4gdGhlIGRheXMgYmVmb3JlIGFuZCBhZnRlciB0aGUgdHJhbnNpdGlvbiB3aWxsIGhhdmUgdGhlCisgICAgICogdHlwZSBXRUVLREFZIG9yIFdFRUtFTkQuICBJZiBhIHRyYW5zaXRpb24gb2NjdXJzIGF0IGEgdGltZQorICAgICAqIG90aGVyIHRoYW4gbWlkbmlnaHQsIHRoZW4gdGhlIGRheSBvZiB0aGUgdHJhbnNpdGlvbiB3aWxsIGhhdmUKKyAgICAgKiB0aGUgdHlwZSBXRUVLRU5EX09OU0VUIG9yIFdFRUtFTkRfQ0VBU0UuICBJbiB0aGlzIGNhc2UsIHRoZQorICAgICAqIG1ldGhvZCBnZXRXZWVrZW5kVHJhbnNpdGlvbigpIHdpbGwgcmV0dXJuIHRoZSBwb2ludCBvZgorICAgICAqIHRyYW5zaXRpb24uCisgICAgICogQHBhcmFtIGRheU9mV2VlayBlaXRoZXIgU1VOREFZLCBNT05EQVksIFRVRVNEQVksIFdFRE5FU0RBWSwKKyAgICAgKiBUSFVSU0RBWSwgRlJJREFZLCBvciBTQVRVUkRBWQorICAgICAqIEByZXR1cm4gZWl0aGVyIFdFRUtEQVksIFdFRUtFTkQsIFdFRUtFTkRfT05TRVQsIG9yCisgICAgICogV0VFS0VORF9DRUFTRQorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGRheU9mV2VlayBpcyBub3QKKyAgICAgKiBiZXR3ZWVuIFNVTkRBWSBhbmQgU0FUVVJEQVksIGluY2x1c2l2ZQorICAgICAqIEBzZWUgI1dFRUtEQVkKKyAgICAgKiBAc2VlICNXRUVLRU5ECisgICAgICogQHNlZSAjV0VFS0VORF9PTlNFVAorICAgICAqIEBzZWUgI1dFRUtFTkRfQ0VBU0UKKyAgICAgKiBAc2VlICNnZXRXZWVrZW5kVHJhbnNpdGlvbgorICAgICAqIEBzZWUgI2lzV2Vla2VuZChEYXRlKQorICAgICAqIEBzZWUgI2lzV2Vla2VuZCgpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXREYXlPZldlZWtUeXBlKGludCBkYXlPZldlZWspIHsKKyAgICAgICAgLy8gd2Vla2VuZCBhbHdheXMgZnVsbCBzYXR1cmRheSBhbmQgc3VuZGF5CisgICAgICAgIGlmIChkYXlPZldlZWsgPCAxIHx8IGRheU9mV2VlayA+IDcpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImlsbGVnYWwgZGF5IG9mIHdlZWs6ICIgKyBkYXlPZldlZWspOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkYXlPZldlZWsgPj0gU0FUVVJEQVkgPyBXRUVLRU5EIDogV0VFS0RBWTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdGltZSBkdXJpbmcgdGhlIGRheSBhdCB3aGljaCB0aGUgd2Vla2VuZCBiZWdpbnMgb3IgZW5kIGluCisgICAgICogdGhpcyBjYWxlbmRhciBzeXN0ZW0uICBJZiBnZXREYXlPZldlZWtUeXBlKGRheU9mV2VlaykgPT0KKyAgICAgKiBXRUVLRU5EX09OU0VUIHJldHVybiB0aGUgdGltZSBhdCB3aGljaCB0aGUgd2Vla2VuZCBiZWdpbnMuICBJZgorICAgICAqIGdldERheU9mV2Vla1R5cGUoZGF5T2ZXZWVrKSA9PSBXRUVLRU5EX0NFQVNFIHJldHVybiB0aGUgdGltZSBhdAorICAgICAqIHdoaWNoIHRoZSB3ZWVrZW5kIGVuZHMuICBJZiBnZXREYXlPZldlZWtUeXBlKGRheU9mV2VlaykgaGFzIHNvbWUKKyAgICAgKiBvdGhlciB2YWx1ZSwgdGhlbiB0aHJvdyBhbiBleGNlcHRpb24uCisgICAgICogQHBhcmFtIGRheU9mV2VlayBlaXRoZXIgU1VOREFZLCBNT05EQVksIFRVRVNEQVksIFdFRE5FU0RBWSwKKyAgICAgKiBUSFVSU0RBWSwgRlJJREFZLCBvciBTQVRVUkRBWQorICAgICAqIEByZXR1cm4gdGhlIG1pbGxpc2Vjb25kcyBhZnRlciBtaWRuaWdodCBhdCB3aGljaCB0aGUKKyAgICAgKiB3ZWVrZW5kIGJlZ2lucyBvciBlbmRzCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgZGF5T2ZXZWVrIGlzIG5vdAorICAgICAqIFdFRUtFTkRfT05TRVQgb3IgV0VFS0VORF9DRUFTRQorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoRGF0ZSkKKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0V2Vla2VuZFRyYW5zaXRpb24oaW50IGRheU9mV2VlaykgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJOb3Qgd2Vla2VuZCB0cmFuc2l0aW9uIGRheSIpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGRhdGUgYW5kIHRpbWUgaXMgaW4gdGhlIHdlZWtlbmQgaW4KKyAgICAgKiB0aGlzIGNhbGVuZGFyIHN5c3RlbS4gIEVxdWl2YWxlbnQgdG8gY2FsbGluZyBzZXRUaW1lKCkgZm9sbG93ZWQKKyAgICAgKiBieSBpc1dlZWtlbmQoKS4gIE5vdGU6IFRoaXMgbWV0aG9kIGNoYW5nZXMgdGhlIHRpbWUgdGhpcworICAgICAqIGNhbGVuZGFyIGlzIHNldCB0by4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgZGF0ZSBhbmQgdGltZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gZGF0ZSBhbmQgdGltZSBpcyBwYXJ0IG9mIHRoZQorICAgICAqIHdlZWtlbmQKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHNlZSAjZ2V0V2Vla2VuZFRyYW5zaXRpb24KKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzV2Vla2VuZChEYXRlIGRhdGUpIHsKKyAgICAgICAgY2FsZW5kYXIuc2V0VGltZShkYXRlKTsKKyAgICAgICAgcmV0dXJuIGlzV2Vla2VuZCgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBDYWxlbmRhcidzIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBpcyBpbiB0aGUKKyAgICAgKiB3ZWVrZW5kIGluIHRoaXMgY2FsZW5kYXIgc3lzdGVtLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gZGF0ZSBhbmQgdGltZSBpcyBwYXJ0IG9mIHRoZQorICAgICAqIHdlZWtlbmQKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHNlZSAjZ2V0V2Vla2VuZFRyYW5zaXRpb24KKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoRGF0ZSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1dlZWtlbmQoKSB7CisgICAgICAgIHJldHVybiBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspID49IFNBVFVSREFZOworICAgIH0KKyAgICAgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRW5kIG9mIHdlZWtlbmQgc3VwcG9ydAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgQ2xvbmVhYmxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxlbmRhcigoamF2YS51dGlsLkNhbGVuZGFyKWNhbGVuZGFyLmNsb25lKCkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgY2FsZW5kYXIuIFRoaXMgbWV0aG9kCisgICAgICogaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbmx5IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMsIGFuZCB0aGUKKyAgICAgKiBmb3JtYXQgb2YgdGhlIHJldHVybmVkIHN0cmluZyBtYXkgdmFyeSBiZXR3ZWVuIGltcGxlbWVudGF0aW9ucy4KKyAgICAgKiBUaGUgcmV0dXJuZWQgc3RyaW5nIG1heSBiZSBlbXB0eSBidXQgbWF5IG5vdCBiZSA8Y29kZT5udWxsPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IENhbGVuZGFyIHR5cGUuCisgICAgICogTm90ZSwgaW4gMy4wIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gJ2dyZWdvcmlhbicgaW4gQ2FsZW5kYXIgdG8gZW11bGF0ZSBsZWdhY3kgYmVoYXZpb3IKKyAgICAgKiBAcmV0dXJuIHR5cGUgb2YgY2FsZW5kYXIgKGdyZWdvcmlhbiwgZXRjKQorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gImdyZWdvcmlhbiI7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdXRpbC9UaW1lWm9uZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVGltZVpvbmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTVjZTJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVGltZVpvbmUuamF2YQpAQCAtMCwwICsxLDQzMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiA8Y29kZT5UaW1lWm9uZTwvY29kZT4gcmVwcmVzZW50cyBhIHRpbWUgem9uZSBvZmZzZXQsIGFuZCBhbHNvIGZpZ3VyZXMgb3V0IGRheWxpZ2h0CisgKiBzYXZpbmdzLgorICoKKyAqIDxwPgorICogVHlwaWNhbGx5LCB5b3UgZ2V0IGEgPGNvZGU+VGltZVpvbmU8L2NvZGU+IHVzaW5nIDxjb2RlPmdldERlZmF1bHQ8L2NvZGU+CisgKiB3aGljaCBjcmVhdGVzIGEgPGNvZGU+VGltZVpvbmU8L2NvZGU+IGJhc2VkIG9uIHRoZSB0aW1lIHpvbmUgd2hlcmUgdGhlIHByb2dyYW0KKyAqIGlzIHJ1bm5pbmcuIEZvciBleGFtcGxlLCBmb3IgYSBwcm9ncmFtIHJ1bm5pbmcgaW4gSmFwYW4sIDxjb2RlPmdldERlZmF1bHQ8L2NvZGU+CisgKiBjcmVhdGVzIGEgPGNvZGU+VGltZVpvbmU8L2NvZGU+IG9iamVjdCBiYXNlZCBvbiBKYXBhbmVzZSBTdGFuZGFyZCBUaW1lLgorICoKKyAqIDxwPgorICogWW91IGNhbiBhbHNvIGdldCBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiB1c2luZyA8Y29kZT5nZXRUaW1lWm9uZTwvY29kZT4KKyAqIGFsb25nIHdpdGggYSB0aW1lIHpvbmUgSUQuIEZvciBpbnN0YW5jZSwgdGhlIHRpbWUgem9uZSBJRCBmb3IgdGhlCisgKiBVLlMuIFBhY2lmaWMgVGltZSB6b25lIGlzICJBbWVyaWNhL0xvc19BbmdlbGVzIi4gU28sIHlvdSBjYW4gZ2V0IGEKKyAqIFUuUy4gUGFjaWZpYyBUaW1lIDxjb2RlPlRpbWVab25lPC9jb2RlPiBvYmplY3Qgd2l0aDoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogWW91IGNhbiB1c2UgPGNvZGU+Z2V0QXZhaWxhYmxlSURzPC9jb2RlPiBtZXRob2QgdG8gaXRlcmF0ZSB0aHJvdWdoCisgKiBhbGwgdGhlIHN1cHBvcnRlZCB0aW1lIHpvbmUgSURzLiBZb3UgY2FuIHRoZW4gY2hvb3NlIGEKKyAqIHN1cHBvcnRlZCBJRCB0byBnZXQgYSA8Y29kZT5UaW1lWm9uZTwvY29kZT4uCisgKiBJZiB0aGUgdGltZSB6b25lIHlvdSB3YW50IGlzIG5vdCByZXByZXNlbnRlZCBieSBvbmUgb2YgdGhlCisgKiBzdXBwb3J0ZWQgSURzLCB0aGVuIHlvdSBjYW4gY3JlYXRlIGEgY3VzdG9tIHRpbWUgem9uZSBJRCB3aXRoCisgKiB0aGUgZm9sbG93aW5nIHN5bnRheDoKKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBHTVRbK3wtXWhoW1s6XW1tXQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBzcGVjaWZ5IEdNVCsxNDowMCBhcyBhIGN1c3RvbQorICogdGltZSB6b25lIElELiAgVGhlIDxjb2RlPlRpbWVab25lPC9jb2RlPiB0aGF0IGlzIHJldHVybmVkCisgKiB3aGVuIHlvdSBzcGVjaWZ5IGEgY3VzdG9tIHRpbWUgem9uZSBJRCBkb2VzIG5vdCBpbmNsdWRlCisgKiBkYXlsaWdodCBzYXZpbmdzIHRpbWUuCisgKiA8cD4KKyAqIEZvciBjb21wYXRpYmlsaXR5IHdpdGggSkRLIDEuMS54LCBzb21lIG90aGVyIHRocmVlLWxldHRlciB0aW1lIHpvbmUgSURzCisgKiAoc3VjaCBhcyAiUFNUIiwgIkNUVCIsICJBU1QiKSBhcmUgYWxzbyBzdXBwb3J0ZWQuIEhvd2V2ZXIsIDxzdHJvbmc+dGhlaXIKKyAqIHVzZSBpcyBkZXByZWNhdGVkPC9zdHJvbmc+IGJlY2F1c2UgdGhlIHNhbWUgYWJicmV2aWF0aW9uIGlzIG9mdGVuIHVzZWQKKyAqIGZvciBtdWx0aXBsZSB0aW1lIHpvbmVzIChmb3IgZXhhbXBsZSwgIkNTVCIgY291bGQgYmUgVS5TLiAiQ2VudHJhbCBTdGFuZGFyZAorICogVGltZSIgYW5kICJDaGluYSBTdGFuZGFyZCBUaW1lIiksIGFuZCB0aGUgSmF2YSBwbGF0Zm9ybSBjYW4gdGhlbiBvbmx5CisgKiByZWNvZ25pemUgb25lIG9mIHRoZW0uCisgKgorICogQHNlZSAgICAgICAgICBDYWxlbmRhcgorICogQHNlZSAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSAgICAgICAgICBTaW1wbGVUaW1lWm9uZQorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzLCBEYXZpZCBHb2xkc21pdGgsIENoZW4tTGllaCBIdWFuZywgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgVGltZVpvbmUgaW1wbGVtZW50cyBTZXJpYWxpemFibGUsIENsb25lYWJsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGphdmEudXRpbC5UaW1lWm9uZSB0aW1lWm9uZTsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQHBhcmFtIGRlbGVnYXRlIHRoZSBUaW1lWm9uZSB0byB3aGljaCB0byBkZWxlZ2F0ZQorICAgICAqLworICAgIHB1YmxpYyBUaW1lWm9uZShqYXZhLnV0aWwuVGltZVpvbmUgZGVsZWdhdGUpIHsKKyAgICAgICAgdGhpcy50aW1lWm9uZSA9IGRlbGVnYXRlOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IgdG8gbWlycm9yIEphdmEncyBwdWJsaWMKKyAgICAgKiBjb25zdHJ1Y3Rvci4gIEphdmEncyBpcyBub3QgY2FsbGFibGUgYXMgYSBwdWJsaWMgQVBJLCBzaW5jZQorICAgICAqIHRoZWlyIFRpbWVab25lIGlzIGFic3RyYWN0LCBzbyB0aGlzIGlzIG9ubHkgdXNlZnVsIHRvCisgICAgICogc3ViY2xhc3Nlcy4gIEluIGdlbmVyYWwsIHN1YmNsYXNzZXMgd2lsbCBub3Qgd29yayB1bmxlc3MKKyAgICAgKiB0aGV5IG1hbmlwdWxhdGUgdGhlIGRlbGVnYXRlLgorICAgICAqLworICAgIHB1YmxpYyBUaW1lWm9uZSgpIHsKKyAgICAJdGhpcy50aW1lWm9uZSA9IGphdmEudXRpbC5UaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEEgc3R5bGUgc3BlY2lmaWVyIGZvciA8Y29kZT5nZXREaXNwbGF5TmFtZSgpPC9jb2RlPiBpbmRpY2F0aW5nCisgICAgICogYSBzaG9ydCBuYW1lLCBzdWNoIGFzICJQU1QuIgorICAgICAqIEBzZWUgI0xPTkcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSE9SVCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBBIHN0eWxlIHNwZWNpZmllciBmb3IgPGNvZGU+Z2V0RGlzcGxheU5hbWUoKTwvY29kZT4gaW5kaWNhdGluZworICAgICAqIGEgbG9uZyBuYW1lLCBzdWNoIGFzICJQYWNpZmljIFN0YW5kYXJkIFRpbWUuIgorICAgICAqIEBzZWUgI1NIT1JUCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTE9ORyAgPSAxOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSB6b25lIG9mZnNldCwgZm9yIGN1cnJlbnQgZGF0ZSwgbW9kaWZpZWQgaW4gY2FzZSBvZgorICAgICAqIGRheWxpZ2h0IHNhdmluZ3MuIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHBhcmFtIGVyYSB0aGUgZXJhIG9mIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB5ZWFyIGluIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgbW9udGggaW4gdGhlIGdpdmVuIGRhdGUuCisgICAgICogTW9udGggaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF5IHRoZSBkYXktaW4tbW9udGggb2YgdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIGRheU9mV2VlayB0aGUgZGF5LW9mLXdlZWsgb2YgdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIG1pbGxpc2Vjb25kcyB0aGUgbWlsbGlzIGluIGRheSBpbiA8ZW0+c3RhbmRhcmQ8L2VtPiBsb2NhbCB0aW1lLgorICAgICAqIEByZXR1cm4gdGhlIG9mZnNldCB0byBhZGQgKnRvKiBHTVQgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLCBpbnQgbWlsbGlzZWNvbmRzKSB7CisgICAgICAgIHJldHVybiB0aW1lWm9uZS5nZXRPZmZzZXQoZXJhLCB5ZWFyLCBtb250aCwgZGF5LCBkYXlPZldlZWssIG1pbGxpc2Vjb25kcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgb2Zmc2V0IG9mIHRoaXMgdGltZSB6b25lIGZyb20gVVRDIGF0IHRoZSBzcGVjaWZpZWQKKyAgICAgKiBkYXRlLiBJZiBEYXlsaWdodCBTYXZpbmcgVGltZSBpcyBpbiBlZmZlY3QgYXQgdGhlIHNwZWNpZmllZAorICAgICAqIGRhdGUsIHRoZSBvZmZzZXQgdmFsdWUgaXMgYWRqdXN0ZWQgd2l0aCB0aGUgYW1vdW50IG9mIGRheWxpZ2h0CisgICAgICogc2F2aW5nLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgcmVwcmVzZW50ZWQgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MCAwMDowMDowMCBHTVQKKyAgICAgKiBAcmV0dXJuIHRoZSBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gYWRkIHRvIFVUQyB0byBnZXQgbG9jYWwgdGltZS4KKyAgICAgKgorICAgICAqIEBzZWUgQ2FsZW5kYXIjWk9ORV9PRkZTRVQKKyAgICAgKiBAc2VlIENhbGVuZGFyI0RTVF9PRkZTRVQKKyAgICAgKiBAc2VlICNnZXRPZmZzZXQobG9uZywgYm9vbGVhbiwgaW50W10pCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQobG9uZyBkYXRlKSB7CisgICAgCWlmIChpbkRheWxpZ2h0VGltZShuZXcgRGF0ZShkYXRlKSkpIHsKKyAgICAJICAgIHJldHVybiBnZXRSYXdPZmZzZXQoKSArIGdldERTVFNhdmluZ3MoKTsKKyAgICAJfQorICAgIAlyZXR1cm4gZ2V0UmF3T2Zmc2V0KCk7CisgICAgfQorCisgICAvKioKKyAgICAgKiBTZXRzIHRoZSBiYXNlIHRpbWUgem9uZSBvZmZzZXQgdG8gR01ULgorICAgICAqIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHBhcmFtIG9mZnNldE1pbGxpcyB0aGUgZ2l2ZW4gYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IHRvIEdNVC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSYXdPZmZzZXQoaW50IG9mZnNldE1pbGxpcykgeworICAgICAgICB0aW1lWm9uZS5zZXRSYXdPZmZzZXQob2Zmc2V0TWlsbGlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHVubW9kaWZpZWQgb2Zmc2V0LCBOT1QgbW9kaWZpZWQgaW4gY2FzZSBvZiBkYXlsaWdodCBzYXZpbmdzLgorICAgICAqIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHJldHVybiB0aGUgdW5tb2RpZmllZCBvZmZzZXQgdG8gYWRkICp0byogVVRDIHRvIGdldCBsb2NhbCB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UmF3T2Zmc2V0KCkgeworICAgICAgICByZXR1cm4gdGltZVpvbmUuZ2V0UmF3T2Zmc2V0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgSUQgb2YgdGhpcyB0aW1lIHpvbmUuCisgICAgICogQHJldHVybiB0aGUgSUQgb2YgdGhpcyB0aW1lIHpvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRJRCgpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmdldElEKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZSB6b25lIElELiBUaGlzIGRvZXMgbm90IGNoYW5nZSBhbnkgb3RoZXIgZGF0YSBpbgorICAgICAqIHRoZSB0aW1lIHpvbmUgb2JqZWN0LgorICAgICAqIEBwYXJhbSBJRCB0aGUgbmV3IHRpbWUgem9uZSBJRC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJRChTdHJpbmcgSUQpIHsKKyAgICAgICAgdGltZVpvbmUuc2V0SUQoSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIHN1aXRhYmxlIGZvciBwcmVzZW50YXRpb24gdG8gdGhlIHVzZXIKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgbG9uZyBnZW5lcmljIG5hbWUuCisgICAgICogSWYgdGhlIGRpc3BsYXkgbmFtZSBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGUgbG9jYWxlLAorICAgICAqIGEgZmFsbGJhY2sgYmFzZWQgb24gdGhlIGNvdW50cnksIGNpdHksIG9yIHRpbWUgem9uZSBpZCB3aWxsIGJlIHVzZWQuCisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBnZXREaXNwbGF5TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmdldERpc3BsYXlOYW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGxvbmcgZ2VuZXJpYyBuYW1lLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiBhIGZhbGxiYWNrIGJhc2VkIG9uIHRoZSBjb3VudHJ5LCBjaXR5LCBvciB0aW1lIHpvbmUgaWQgd2lsbCBiZSB1c2VkLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBzdXBwbHkgdGhlIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIGluIHRoZSBnaXZlbiBsb2NhbGUKKyAgICAgKiBvciBpbiB0aGUgZGVmYXVsdCBsb2NhbGUgaWYgdGhlIGdpdmVuIGxvY2FsZSBpcyBub3QgcmVjb2duaXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGdldERpc3BsYXlOYW1lKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmdldERpc3BsYXlOYW1lKGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGxvbmcgbmFtZSwgbm90IGluY2x1ZGluZyBkYXlsaWdodCBzYXZpbmdzLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiBhIGZhbGxiYWNrIGJhc2VkIG9uIHRoZSBjb3VudHJ5LCBjaXR5LCBvciB0aW1lIHpvbmUgaWQgd2lsbCBiZSB1c2VkLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIHVsb2NhbGUgaW4gd2hpY2ggdG8gc3VwcGx5IHRoZSBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogb3IgaW4gdGhlIGRlZmF1bHQgdWxvY2FsZSBpZiB0aGUgZ2l2ZW4gdWxvY2FsZSBpcyBub3QgcmVjb2duaXplZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmdldERpc3BsYXlOYW1lKGxvY2FsZS50b0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBzdWl0YWJsZSBmb3IgcHJlc2VudGF0aW9uIHRvIHRoZSB1c2VyCisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiB0aGVuIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgaW4gdGhlIGZvcm1hdAorICAgICAqIDxjb2RlPkdNVFsrLV1oaDptbTwvY29kZT4uCisgICAgICogQHBhcmFtIGRheWxpZ2h0IGlmIHRydWUsIHJldHVybiB0aGUgZGF5bGlnaHQgc2F2aW5ncyBuYW1lLgorICAgICAqIEBwYXJhbSBzdHlsZSBlaXRoZXIgPGNvZGU+TE9ORzwvY29kZT4gb3IgPGNvZGU+U0hPUlQ8L2NvZGU+CisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBnZXREaXNwbGF5TmFtZShib29sZWFuIGRheWxpZ2h0LCBpbnQgc3R5bGUpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmdldERpc3BsYXlOYW1lKGRheWxpZ2h0LCBzdHlsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiB0aGVuIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgaW4gdGhlIGZvcm1hdAorICAgICAqIDxjb2RlPkdNVFsrLV1oaDptbTwvY29kZT4uCisgICAgICogQHBhcmFtIGRheWxpZ2h0IGlmIHRydWUsIHJldHVybiB0aGUgZGF5bGlnaHQgc2F2aW5ncyBuYW1lLgorICAgICAqIEBwYXJhbSBzdHlsZSBlaXRoZXIgPGNvZGU+TE9ORzwvY29kZT4gb3IgPGNvZGU+U0hPUlQ8L2NvZGU+CisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIHN1cHBseSB0aGUgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGdpdmVuIGxvY2FsZQorICAgICAqIG9yIGluIHRoZSBkZWZhdWx0IGxvY2FsZSBpZiB0aGUgZ2l2ZW4gbG9jYWxlIGlzIG5vdCByZWNvZ25pemVkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHN0eWxlIGlzIGludmFsaWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShib29sZWFuIGRheWxpZ2h0LCBpbnQgc3R5bGUsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmdldERpc3BsYXlOYW1lKGRheWxpZ2h0LCBzdHlsZSwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBzdWl0YWJsZSBmb3IgcHJlc2VudGF0aW9uIHRvIHRoZSB1c2VyCisgICAgICogaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogSWYgdGhlIGRpc3BsYXkgbmFtZSBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGUgbG9jYWxlLAorICAgICAqIHRoZW4gdGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyBpbiB0aGUgZm9ybWF0CisgICAgICogPGNvZGU+R01UWystXWhoOm1tPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gZGF5bGlnaHQgaWYgdHJ1ZSwgcmV0dXJuIHRoZSBkYXlsaWdodCBzYXZpbmdzIG5hbWUuCisgICAgICogQHBhcmFtIHN0eWxlIGVpdGhlciA8Y29kZT5MT05HPC9jb2RlPiBvciA8Y29kZT5TSE9SVDwvY29kZT4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gc3VwcGx5IHRoZSBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogb3IgaW4gdGhlIGRlZmF1bHQgbG9jYWxlIGlmIHRoZSBnaXZlbiBsb2NhbGUgaXMgbm90IHJlY29nbml6ZWQuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gc3R5bGUgaXMgaW52YWxpZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoYm9vbGVhbiBkYXlsaWdodCwgaW50IHN0eWxlLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gdGltZVpvbmUuZ2V0RGlzcGxheU5hbWUoZGF5bGlnaHQsIHN0eWxlLCBsb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYW1vdW50IG9mIHRpbWUgdG8gYmUgYWRkZWQgdG8gbG9jYWwgc3RhbmRhcmQgdGltZQorICAgICAqIHRvIGdldCBsb2NhbCB3YWxsIGNsb2NrIHRpbWUuCisgICAgICogPHA+CisgICAgICogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gYWx3YXlzIHJldHVybnMgMzYwMDAwMCBtaWxsaXNlY29uZHMKKyAgICAgKiAoaS5lLiwgb25lIGhvdXIpIGlmIHRoaXMgdGltZSB6b25lIG9ic2VydmVzIERheWxpZ2h0IFNhdmluZworICAgICAqIFRpbWUuIE90aGVyd2lzZSwgMCAoemVybykgaXMgcmV0dXJuZWQuCisgICAgICogPHA+CisgICAgICogSWYgYW4gdW5kZXJseWluZyBUaW1lWm9uZSBpbXBsZW1lbnRhdGlvbiBzdWJjbGFzcyBzdXBwb3J0cworICAgICAqIGhpc3RvcmljYWwgRGF5bGlnaHQgU2F2aW5nIFRpbWUgY2hhbmdlcywgdGhpcyBtZXRob2QgcmV0dXJucworICAgICAqIHRoZSBrbm93biBsYXRlc3QgZGF5bGlnaHQgc2F2aW5nIHZhbHVlLgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgYW1vdW50IG9mIHNhdmluZyB0aW1lIGluIG1pbGxpc2Vjb25kcworICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RFNUU2F2aW5ncygpIHsKKyAgICAgICAgaWYgKHVzZURheWxpZ2h0VGltZSgpKSB7CisgICAgICAgICAgICByZXR1cm4gMzYwMDAwMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBRdWVyaWVzIGlmIHRoaXMgdGltZSB6b25lIHVzZXMgZGF5bGlnaHQgc2F2aW5ncyB0aW1lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIHRpbWUgem9uZSB1c2VzIGRheWxpZ2h0IHNhdmluZ3MgdGltZSwKKyAgICAgKiBmYWxzZSwgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHVzZURheWxpZ2h0VGltZSgpIHsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLnVzZURheWxpZ2h0VGltZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFF1ZXJpZXMgaWYgdGhlIGdpdmVuIGRhdGUgaXMgaW4gZGF5bGlnaHQgc2F2aW5ncyB0aW1lIGluCisgICAgICogdGhpcyB0aW1lIHpvbmUuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGdpdmVuIERhdGUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBkYXRlIGlzIGluIGRheWxpZ2h0IHNhdmluZ3MgdGltZSwKKyAgICAgKiBmYWxzZSwgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGluRGF5bGlnaHRUaW1lKERhdGUgZGF0ZSkgeworICAgICAgICByZXR1cm4gdGltZVpvbmUuaW5EYXlsaWdodFRpbWUoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IGZvciB0aGUgZ2l2ZW4gSUQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gSUQgdGhlIElEIGZvciBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiwgZWl0aGVyIGFuIGFiYnJldmlhdGlvbgorICAgICAqIHN1Y2ggYXMgIlBTVCIsIGEgZnVsbCBuYW1lIHN1Y2ggYXMgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCBvciBhIGN1c3RvbQorICAgICAqIElEIHN1Y2ggYXMgIkdNVC04OjAwIi4gTm90ZSB0aGF0IHRoZSBzdXBwb3J0IG9mIGFiYnJldmlhdGlvbnMgaXMKKyAgICAgKiBmb3IgSkRLIDEuMS54IGNvbXBhdGliaWxpdHkgb25seSBhbmQgZnVsbCBuYW1lcyBzaG91bGQgYmUgdXNlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIHNwZWNpZmllZCA8Y29kZT5UaW1lWm9uZTwvY29kZT4sIG9yIHRoZSBHTVQgem9uZSBpZiB0aGUgZ2l2ZW4gSUQKKyAgICAgKiBjYW5ub3QgYmUgdW5kZXJzdG9vZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFRpbWVab25lIGdldFRpbWVab25lKFN0cmluZyBJRCkgeworICAgICAgICByZXR1cm4gbmV3IFRpbWVab25lKGphdmEudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZShJRCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIG5ldyBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqIHdpdGggdGhlIGdpdmVuIHJhdyBvZmZzZXQgZnJvbSBHTVQuICBUaGVzZSBJRHMgbWF5IGJlIHBhc3NlZCB0bworICAgICAqIDxjb2RlPmdldCgpPC9jb2RlPiB0byBjb25zdHJ1Y3QgdGhlIGNvcnJlc3BvbmRpbmcgVGltZVpvbmUKKyAgICAgKiBvYmplY3QuCisgICAgICogQHBhcmFtIHJhd09mZnNldCB0aGUgb2Zmc2V0IGluIG1pbGxpc2Vjb25kcyBmcm9tIEdNVAorICAgICAqIEByZXR1cm4gYW4gYXJyYXkgb2YgSURzIGZvciBzeXN0ZW0gVGltZVpvbmVzIHdpdGggdGhlIGdpdmVuCisgICAgICogcmF3IG9mZnNldC4gIElmIHRoZXJlIGFyZSBub25lLCByZXR1cm4gYSB6ZXJvLWxlbmd0aCBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIGdldEF2YWlsYWJsZUlEcyhpbnQgcmF3T2Zmc2V0KSB7CisgICAgICAgIHJldHVybiBqYXZhLnV0aWwuVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKHJhd09mZnNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbmV3IFN0cmluZyBhcnJheSBjb250YWluaW5nIGFsbCBzeXN0ZW0gVGltZVpvbmUgSURzLgorICAgICAqIFRoZXNlIElEcyAoYW5kIG9ubHkgdGhlc2UgSURzKSBtYXkgYmUgcGFzc2VkIHRvCisgICAgICogPGNvZGU+Z2V0KCk8L2NvZGU+IHRvIGNvbnN0cnVjdCB0aGUgY29ycmVzcG9uZGluZyBUaW1lWm9uZQorICAgICAqIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIGFsbCBzeXN0ZW0gVGltZVpvbmUgSURzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRBdmFpbGFibGVJRHMoKSB7CisgICAgICAgIHJldHVybiBqYXZhLnV0aWwuVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgfQorICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkZWZhdWx0IDxjb2RlPlRpbWVab25lPC9jb2RlPiBmb3IgdGhpcyBob3N0LgorICAgICAqIFRoZSBzb3VyY2Ugb2YgdGhlIGRlZmF1bHQgPGNvZGU+VGltZVpvbmU8L2NvZGU+IAorICAgICAqIG1heSB2YXJ5IHdpdGggaW1wbGVtZW50YXRpb24uCisgICAgICogQHJldHVybiBhIGRlZmF1bHQgPGNvZGU+VGltZVpvbmU8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVGltZVpvbmUgZ2V0RGVmYXVsdCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBUaW1lWm9uZShqYXZhLnV0aWwuVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gdGhhdCBpcworICAgICAqIHJldHVybmVkIGJ5IHRoZSA8Y29kZT5nZXREZWZhdWx0PC9jb2RlPiBtZXRob2QuICBJZiA8Y29kZT56b25lPC9jb2RlPgorICAgICAqIGlzIG51bGwsIHJlc2V0IHRoZSBkZWZhdWx0IHRvIHRoZSB2YWx1ZSBpdCBoYWQgb3JpZ2luYWxseSB3aGVuIHRoZQorICAgICAqIFZNIGZpcnN0IHN0YXJ0ZWQuCisgICAgICogQHBhcmFtIHR6IHRoZSBuZXcgZGVmYXVsdCB0aW1lIHpvbmUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0RGVmYXVsdChUaW1lWm9uZSB0eikgeworICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUuc2V0RGVmYXVsdCh0ei50aW1lWm9uZSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyB6b25lIGhhcyB0aGUgc2FtZSBydWxlIGFuZCBvZmZzZXQgYXMgYW5vdGhlciB6b25lLgorICAgICAqIFRoYXQgaXMsIGlmIHRoaXMgem9uZSBkaWZmZXJzIG9ubHkgaW4gSUQsIGlmIGF0IGFsbC4gIFJldHVybnMgZmFsc2UKKyAgICAgKiBpZiB0aGUgb3RoZXIgem9uZSBpcyBudWxsLgorICAgICAqIEBwYXJhbSBvdGhlciB0aGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvdGhlciB6b25lIGlzIG5vdCBudWxsIGFuZCBpcyB0aGUgc2FtZSBhcyB0aGlzIG9uZSwKKyAgICAgKiB3aXRoIHRoZSBwb3NzaWJsZSBleGNlcHRpb24gb2YgdGhlIElECisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZVJ1bGVzKFRpbWVab25lIG90aGVyKSB7CisgICAgICAgIHJldHVybiB0aW1lWm9uZS5oYXNTYW1lUnVsZXMob3RoZXIudGltZVpvbmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBDbG9uZWFibGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IFRpbWVab25lKChqYXZhLnV0aWwuVGltZVpvbmUpdGltZVpvbmUuY2xvbmUoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHJocyBpcyBhIFRpbWVab25lIGFuZCBoYXMgdGhlIHNhbWUgdGltZSBydWxlcyBhcyB0aGlzLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiByaHMgZXF1YWxzIHRoaXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuNC4yCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCByaHMpeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHRpbWVab25lLmVxdWFscygoKFRpbWVab25lKXJocykudGltZVpvbmUpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgaGFzaENvZGUuCisgICAgICogQHJldHVybiBhIGhhc2hDb2RlCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKXsKKyAgICAgICAgcmV0dXJuIHRpbWVab25lLmhhc2hDb2RlKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVUxvY2FsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LmJhc2Uvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVUxvY2FsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmZDNiMjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UuYmFzZS9zcmMvY29tL2libS9pY3UvdXRpbC9VTG9jYWxlLmphdmEKQEAgLTAsMCArMSwyNjI5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKKworCisvKioKKyAqIEEgY2xhc3MgYW5hbG9nb3VzIHRvIHtAbGluayBqYXZhLnV0aWwuTG9jYWxlfSB0aGF0IHByb3ZpZGVzIGFkZGl0aW9uYWwKKyAqIHN1cHBvcnQgZm9yIElDVSBwcm90b2NvbC4gIEluIElDVSAzLjAgdGhpcyBjbGFzcyBpcyBlbmhhbmNlZCB0byBzdXBwb3J0CisgKiBSRkMgMzA2NiBsYW5ndWFnZSBpZGVudGlmaWVycy4KKyAqCisgKiA8cD5NYW55IGNsYXNzZXMgYW5kIHNlcnZpY2VzIGluIElDVSBmb2xsb3cgYSBmYWN0b3J5IGlkaW9tLCBpbgorICogd2hpY2ggYSBmYWN0b3J5IG1ldGhvZCBvciBvYmplY3QgcmVzcG9uZHMgdG8gYSBjbGllbnQgcmVxdWVzdCB3aXRoCisgKiBhbiBvYmplY3QuICBUaGUgcmVxdWVzdCBpbmNsdWRlcyBhIGxvY2FsZSAodGhlIDxpPnJlcXVlc3RlZDwvaT4KKyAqIGxvY2FsZSksIGFuZCB0aGUgcmV0dXJuZWQgb2JqZWN0IGlzIGNvbnN0cnVjdGVkIHVzaW5nIGRhdGEgZm9yIHRoYXQKKyAqIGxvY2FsZS4gIFRoZSBzeXN0ZW0gbWF5IGxhY2sgZGF0YSBmb3IgdGhlIHJlcXVlc3RlZCBsb2NhbGUsIGluCisgKiB3aGljaCBjYXNlIHRoZSBsb2NhbGUgZmFsbGJhY2sgbWVjaGFuaXNtIHdpbGwgYmUgaW52b2tlZCB1bnRpbCBhCisgKiBwb3B1bGF0ZWQgbG9jYWxlIGlzIGZvdW5kICh0aGUgPGk+dmFsaWQ8L2k+IGxvY2FsZSkuICBGdXJ0aGVybW9yZSwKKyAqIGV2ZW4gd2hlbiBhIHBvcHVsYXRlZCBsb2NhbGUgaXMgZm91bmQgKHRoZSA8aT52YWxpZDwvaT4gbG9jYWxlKSwKKyAqIGZ1cnRoZXIgZmFsbGJhY2sgbWF5IGJlIHJlcXVpcmVkIHRvIHJlYWNoIGEgbG9jYWxlIGNvbnRhaW5pbmcgdGhlCisgKiBzcGVjaWZpYyBkYXRhIHJlcXVpcmVkIGJ5IHRoZSBzZXJ2aWNlICh0aGUgPGk+YWN0dWFsPC9pPiBsb2NhbGUpLgorICoKKyAqIDxwPlVMb2NhbGUgcGVyZm9ybXMgPGI+J25vcm1hbGl6YXRpb24nPC9iPiBhbmQgPGI+J2Nhbm9uaWNhbGl6YXRpb24nPC9iPiBvZiBsb2NhbGUgaWRzLgorICogTm9ybWFsaXphdGlvbiAnY2xlYW5zIHVwJyBJQ1UgbG9jYWxlIGlkcyBhcyBmb2xsb3dzOgorICogPHVsPgorICogPGxpPmxhbmd1YWdlLCBzY3JpcHQsIGNvdW50cnksIHZhcmlhbnQsIGFuZCBrZXl3b3JkcyBhcmUgcHJvcGVybHkgY2FzZWQ8YnI+CisgKiAobG93ZXIsIHRpdGxlLCB1cHBlciwgdXBwZXIsIGFuZCBsb3dlciBjYXNlIHJlc3BlY3RpdmVseSk8L2xpPgorICogPGxpPmh5cGhlbnMgdXNlZCBhcyBzZXBhcmF0b3JzIGFyZSBjb252ZXJ0ZWQgdG8gdW5kZXJzY29yZXM8L2xpPgorICogPGxpPnRocmVlLWxldHRlciBsYW5ndWFnZSBhbmQgY291bnRyeSBpZHMgYXJlIGNvbnZlcnRlZCB0byB0d28tbGV0dGVyCisgKiBlcXVpdmFsZW50cyB3aGVyZSBhdmFpbGFibGU8L2xpPgorICogPGxpPnN1cnJvdW5kaW5nIHNwYWNlcyBhcmUgcmVtb3ZlZCBmcm9tIGtleXdvcmRzIGFuZCB2YWx1ZXM8L2xpPgorICogPGxpPmlmIHRoZXJlIGFyZSBtdWx0aXBsZSBrZXl3b3JkcywgdGhleSBhcmUgcHV0IGluIHNvcnRlZCBvcmRlcjwvbGk+CisgKiA8L3VsPgorICogQ2Fub25pY2FsaXphdGlvbiBhZGRpdGlvbmFsbHkgcGVyZm9ybXMgdGhlIGZvbGxvd2luZzoKKyAqIDx1bD4KKyAqIDxsaT5QT1NJWCBpZHMgYXJlIGNvbnZlcnRlZCB0byBJQ1UgZm9ybWF0IElEczwvbGk+CisgKiA8bGk+J2dyYW5kZmF0aGVyZWQnIDMwNjYgaWRzIGFyZSBjb252ZXJ0ZWQgdG8gSUNVIHN0YW5kYXJkIGZvcm08L2xpPgorICogPGxpPidQUkVFVVJPJyBhbmQgJ0VVUk8nIHZhcmlhbnRzIGFyZSBjb252ZXJ0ZWQgdG8gY3VycmVuY3kga2V5d29yZCBmb3JtLCB3aXRoIHRoZSBjdXJyZW5jeQorICogaWQgYXBwcm9wcmlhdGUgdG8gdGhlIGNvdW50cnkgb2YgdGhlIGxvY2FsZSAoZm9yIFBSRUVVUk8pIG9yIEVVUiAoZm9yIEVVUk8pLgorICogPC91bD4KKyAqIEFsbCBVTG9jYWxlIGNvbnN0cnVjdG9ycyBhdXRvbWF0aWNhbGx5IG5vcm1hbGl6ZSB0aGUgbG9jYWxlIGlkLiAgVG8gaGFuZGxlCisgKiBQT1NJWCBpZHMsIDxjb2RlPmNhbm9uaWNhbGl6ZTwvY29kZT4gY2FuIGJlIGNhbGxlZCB0byBjb252ZXJ0IHRoZSBpZAorICogdG8gY2Fub25pY2FsIGZvcm0sIG9yIHRoZSA8Y29kZT5jYW5vbmljYWxJbnN0YW5jZTwvY29kZT4gZmFjdG9yeSBtZXRob2QKKyAqIGNhbiBiZSBjYWxsZWQuPC9wPgorICoKKyAqIDxwPlRoaXMgY2xhc3MgcHJvdmlkZXMgc2VsZWN0b3JzIHtAbGluayAjVkFMSURfTE9DQUxFfSBhbmQge0BsaW5rCisgKiAjQUNUVUFMX0xPQ0FMRX0gaW50ZW5kZWQgZm9yIHVzZSBpbiBtZXRob2RzIG5hbWVkCisgKiA8dHQ+Z2V0TG9jYWxlKCk8L3R0Pi4gIFRoZXNlIG1ldGhvZHMgZXhpc3QgaW4gc2V2ZXJhbCBJQ1UgY2xhc3NlcywKKyAqIGluY2x1ZGluZyB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcn0sIHtAbGluaworICogY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeX0sIHtAbGluayBjb20uaWJtLmljdS50ZXh0LlVGb3JtYXR9LAorICoge0BsaW5rIGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcn0sIHtAbGluaworICogY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcn0sIHtAbGluaworICogY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9sc30sIGFuZCB7QGxpbmsKKyAqIGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHN9IGFuZCB0aGVpciBzdWJjbGFzc2VzLCBpZgorICogYW55LiAgT25jZSBhbiBvYmplY3Qgb2Ygb25lIG9mIHRoZXNlIGNsYXNzZXMgaGFzIGJlZW4gY3JlYXRlZCwKKyAqIDx0dD5nZXRMb2NhbGUoKTwvdHQ+IG1heSBiZSBjYWxsZWQgb24gaXQgdG8gZGV0ZXJtaW5lIHRoZSB2YWxpZCBhbmQKKyAqIGFjdHVhbCBsb2NhbGUgYXJyaXZlZCBhdCBkdXJpbmcgdGhlIG9iamVjdCdzIGNvbnN0cnVjdGlvbi4KKyAqCisgKiA8cD5Ob3RlOiBUaGUgPHR0PmdldExvY2FsZSgpPC90dD4gbWV0aG9kIHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gSUNVCisgKiAzLjA7IElDVSAyLjggY29udGFpbnMgYSBwYXJ0aWFsIHByZXZpZXcgaW1wbGVtZW50YXRpb24uICBUaGUKKyAqIDxpPmFjdHVhbDwvaT4gbG9jYWxlIGlzIHJldHVybmVkIGNvcnJlY3RseSwgYnV0IHRoZSA8aT52YWxpZDwvaT4KKyAqIGxvY2FsZSBpcyBub3QsIGluIG1vc3QgY2FzZXMuCisgKgorICogQHNlZSBqYXZhLnV0aWwuTG9jYWxlCisgKiBAYXV0aG9yIHdlaXYKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBhdXRob3IgUmFtIFZpc3dhbmFkaGEKKyAqIEBzdGFibGUgSUNVIDIuOCAKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVMb2NhbGUgaW1wbGVtZW50cyBTZXJpYWxpemFibGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDFMOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEVOR0xJU0ggPSBuZXcgVUxvY2FsZSgiZW4iLCBMb2NhbGUuRU5HTElTSCk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgRlJFTkNIID0gbmV3IFVMb2NhbGUoImZyIiwgTG9jYWxlLkZSRU5DSCk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgR0VSTUFOID0gbmV3IFVMb2NhbGUoImRlIiwgTG9jYWxlLkdFUk1BTik7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgSVRBTElBTiA9IG5ldyBVTG9jYWxlKCJpdCIsIExvY2FsZS5JVEFMSUFOKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBKQVBBTkVTRSA9IG5ldyBVTG9jYWxlKCJqYSIsIExvY2FsZS5KQVBBTkVTRSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgS09SRUFOID0gbmV3IFVMb2NhbGUoImtvIiwgTG9jYWxlLktPUkVBTik7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgQ0hJTkVTRSA9IG5ldyBVTG9jYWxlKCJ6aCIsIExvY2FsZS5DSElORVNFKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBTSU1QTElGSUVEX0NISU5FU0UgPSBuZXcgVUxvY2FsZSgiemhfSGFucyIsIExvY2FsZS5DSElORVNFKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBUUkFESVRJT05BTF9DSElORVNFID0gbmV3IFVMb2NhbGUoInpoX0hhbnQiLCBMb2NhbGUuQ0hJTkVTRSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgRlJBTkNFID0gbmV3IFVMb2NhbGUoImZyX0ZSIiwgTG9jYWxlLkZSQU5DRSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgR0VSTUFOWSA9IG5ldyBVTG9jYWxlKCJkZV9ERSIsIExvY2FsZS5HRVJNQU5ZKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBJVEFMWSA9IG5ldyBVTG9jYWxlKCJpdF9JVCIsIExvY2FsZS5JVEFMWSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgSkFQQU4gPSBuZXcgVUxvY2FsZSgiamFfSlAiLCBMb2NhbGUuSkFQQU4pOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEtPUkVBID0gbmV3IFVMb2NhbGUoImtvX0tSIiwgTG9jYWxlLktPUkVBKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBDSElOQSA9IG5ldyBVTG9jYWxlKCJ6aF9IYW5zX0NOIiwgTG9jYWxlLkNISU5BKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBQUkMgPSBDSElOQTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBUQUlXQU4gPSBuZXcgVUxvY2FsZSgiemhfSGFudF9UVyIsIExvY2FsZS5UQUlXQU4pOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFVLID0gbmV3IFVMb2NhbGUoImVuX0dCIiwgTG9jYWxlLlVLKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBVUyA9IG5ldyBVTG9jYWxlKCJlbl9VUyIsIExvY2FsZS5VUyk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgQ0FOQURBID0gbmV3IFVMb2NhbGUoImVuX0NBIiwgTG9jYWxlLkNBTkFEQSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgQ0FOQURBX0ZSRU5DSCA9IG5ldyBVTG9jYWxlKCJmcl9DQSIsIExvY2FsZS5DQU5BREFfRlJFTkNIKTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhhc2hNYXAgQ0FDSEUgPSBuZXcgSGFzaE1hcCgyMCk7CisgICAgc3RhdGljIHsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5FTkdMSVNILCBFTkdMSVNIKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5GUkVOQ0gsIEZSRU5DSCk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuR0VSTUFOLCBHRVJNQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLklUQUxJQU4sIElUQUxJQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkpBUEFORVNFLCBKQVBBTkVTRSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuS09SRUFOLCBLT1JFQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkNISU5FU0UsIENISU5FU0UpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLlNJTVBMSUZJRURfQ0hJTkVTRSwgU0lNUExJRklFRF9DSElORVNFKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5UUkFESVRJT05BTF9DSElORVNFLCBUUkFESVRJT05BTF9DSElORVNFKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5GUkFOQ0UsIEZSQU5DRSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuR0VSTUFOWSwgR0VSTUFOWSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuSVRBTFksIElUQUxZKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5KQVBBTiwgSkFQQU4pOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLktPUkVBLCBLT1JFQSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuQ0hJTkEsIENISU5BKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5UQUlXQU4sIFRBSVdBTik7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuVUssIFVLKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5VUywgVVMpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkNBTkFEQSwgQ0FOQURBKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5DQU5BREFfRlJFTkNILCBDQU5BREFfRlJFTkNIKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBIYW5keSBjb25zdGFudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRU1QVFlfU1RSSU5HID0gIiI7CisKKyAgICAvLyBVc2VkIGluIGJvdGggVUxvY2FsZSBhbmQgSURQYXJzZXIsIHNvIG1vdmVkIHVwIGhlcmUuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBVTkRFUlNDT1JFID0gJ18nOworCisgICAgLyoqCisgICAgICogVGhlIHJvb3QgVUxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIFJPT1QgPSBuZXcgVUxvY2FsZShFTVBUWV9TVFJJTkcsIChMb2NhbGUpbnVsbCk7CisgICAgCisgICAgLyoqCisgICAgICogQ2FjaGUgdGhlIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBMb2NhbGUgbG9jYWxlOworCisgICAgLyoqCisgICAgICogVGhlIHJhdyBsb2NhbGVJRCB0aGF0IHdlIHdlcmUgcGFzc2VkIGluLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGxvY2FsZUlEOworCisgICAgLyoqCisgICAgICogVGFibGVzIHVzZWQgaW4gbm9ybWFsaXppbmcgcG9ydGlvbnMgb2YgdGhlIGlkLgorICAgICAqLworICAgIC8qIHRhYmxlcyB1cGRhdGVkIHBlciBodHRwOi8vbGN3ZWIubG9jLmdvdi9zdGFuZGFyZHMvaXNvNjM5LTIvIAorICAgICAgIHRvIGluY2x1ZGUgdGhlIHJldmlzaW9ucyB1cCB0byAyMDAxLzcvMjcgKkNXQiovCisgICAgLyogVGhlIDMgY2hhcmFjdGVyIGNvZGVzIGFyZSB0aGUgdGVybWlub2xvZ3kgY29kZXMgbGlrZSBSRkMgMzA2Ni4gIAorICAgICAgIFRoaXMgaXMgY29tcGF0aWJsZSB3aXRoIHByaW9yIElDVSBjb2RlcyAqLworICAgIC8qICJpbiIgIml3IiAiamkiICJqdyIgJiAic2giIGhhdmUgYmVlbiB3aXRoZHJhd24gYnV0IGFyZSBzdGlsbCBpbiAKKyAgICAgICB0aGUgdGFibGUgYnV0IG5vdyBhdCB0aGUgZW5kIG9mIHRoZSB0YWJsZSBiZWNhdXNlIAorICAgICAgIDMgY2hhcmFjdGVyIGNvZGVzIGFyZSBkdXBsaWNhdGVzLiAgVGhpcyBhdm9pZHMgYmFkIHNlYXJjaGVzCisgICAgICAgZ29pbmcgZnJvbSAzIHRvIDIgY2hhcmFjdGVyIGNvZGVzLiovCisgICAgLyogVGhlIHJhbmdlIHFhYS1xdHogaXMgcmVzZXJ2ZWQgZm9yIGxvY2FsIHVzZS4gKi8KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9sYW5ndWFnZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX3JlcGxhY2VtZW50TGFuZ3VhZ2VzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9vYnNvbGV0ZUxhbmd1YWdlczsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfbGFuZ3VhZ2VzMzsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfb2Jzb2xldGVMYW5ndWFnZXMzOworCisgICAgLy8gQXZvaWQgaW5pdGlhbGl6aW5nIGxhbmd1YWdlcyB0YWJsZXMgdW5sZXNzIHdlIGhhdmUgdG8uCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBpbml0TGFuZ3VhZ2VUYWJsZXMoKSB7CisgICAgICAgIGlmIChfbGFuZ3VhZ2VzID09IG51bGwpIHsKKworICAgICAgICAgICAgLyogVGhpcyBsaXN0IE1VU1QgYmUgaW4gc29ydGVkIG9yZGVyLCBhbmQgTVVTVCBjb250YWluIHRoZSB0d28tbGV0dGVyIGNvZGVzCisgICAgICAgICAgICAgICBpZiBvbmUgZXhpc3RzIG90aGVyd2lzZSB1c2UgdGhlIHRocmVlIGxldHRlciBjb2RlICovCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wTGFuZ3VhZ2VzID0geworICAgICAgICAgICAgICAgICJhYSIsICAiYWIiLCAgImFjZSIsICJhY2giLCAiYWRhIiwgImFkeSIsICJhZSIsICAiYWYiLCAgImFmYSIsCisgICAgICAgICAgICAgICAgImFmaCIsICJhayIsICAiYWtrIiwgImFsZSIsICJhbGciLCAiYW0iLCAgImFuIiwgICJhbmciLCAiYXBhIiwKKyAgICAgICAgICAgICAgICAiYXIiLCAgImFyYyIsICJhcm4iLCAiYXJwIiwgImFydCIsICJhcnciLCAiYXMiLCAgImFzdCIsCisgICAgICAgICAgICAgICAgImF0aCIsICJhdXMiLCAiYXYiLCAgImF3YSIsICJheSIsICAiYXoiLCAgImJhIiwgICJiYWQiLAorICAgICAgICAgICAgICAgICJiYWkiLCAiYmFsIiwgImJhbiIsICJiYXMiLCAiYmF0IiwgImJlIiwgICJiZWoiLAorICAgICAgICAgICAgICAgICJiZW0iLCAiYmVyIiwgImJnIiwgICJiaCIsICAiYmhvIiwgImJpIiwgICJiaWsiLCAiYmluIiwKKyAgICAgICAgICAgICAgICAiYmxhIiwgImJtIiwgICJibiIsICAiYm50IiwgImJvIiwgICJiciIsICAiYnJhIiwgImJzIiwKKyAgICAgICAgICAgICAgICAiYnRrIiwgImJ1YSIsICJidWciLCAiYnluIiwgImNhIiwgICJjYWQiLCAiY2FpIiwgImNhciIsICJjYXUiLAorICAgICAgICAgICAgICAgICJjZSIsICAiY2ViIiwgImNlbCIsICJjaCIsICAiY2hiIiwgImNoZyIsICJjaGsiLCAiY2htIiwKKyAgICAgICAgICAgICAgICAiY2huIiwgImNobyIsICJjaHAiLCAiY2hyIiwgImNoeSIsICJjbWMiLCAiY28iLCAgImNvcCIsCisgICAgICAgICAgICAgICAgImNwZSIsICJjcGYiLCAiY3BwIiwgImNyIiwgICJjcmgiLCAiY3JwIiwgImNzIiwgICJjc2IiLCAiY3UiLCAgImN1cyIsCisgICAgICAgICAgICAgICAgImN2IiwgICJjeSIsICAiZGEiLCAgImRhayIsICJkYXIiLCAiZGF5IiwgImRlIiwgICJkZWwiLCAiZGVuIiwKKyAgICAgICAgICAgICAgICAiZGdyIiwgImRpbiIsICJkb2kiLCAiZHJhIiwgImRzYiIsICJkdWEiLCAiZHVtIiwgImR2IiwgICJkeXUiLAorICAgICAgICAgICAgICAgICJkeiIsICAiZWUiLCAgImVmaSIsICJlZ3kiLCAiZWthIiwgImVsIiwgICJlbHgiLCAiZW4iLAorICAgICAgICAgICAgICAgICJlbm0iLCAiZW8iLCAgImVzIiwgICJldCIsICAiZXUiLCAgImV3byIsICJmYSIsCisgICAgICAgICAgICAgICAgImZhbiIsICJmYXQiLCAiZmYiLCAgImZpIiwgICJmaXUiLCAiZmoiLCAgImZvIiwgICJmb24iLAorICAgICAgICAgICAgICAgICJmciIsICAiZnJtIiwgImZybyIsICJmdXIiLCAiZnkiLCAgImdhIiwgICJnYWEiLCAiZ2F5IiwKKyAgICAgICAgICAgICAgICAiZ2JhIiwgImdkIiwgICJnZW0iLCAiZ2V6IiwgImdpbCIsICJnbCIsICAiZ21oIiwgImduIiwKKyAgICAgICAgICAgICAgICAiZ29oIiwgImdvbiIsICJnb3IiLCAiZ290IiwgImdyYiIsICJncmMiLCAiZ3UiLCAgImd2IiwKKyAgICAgICAgICAgICAgICAiZ3dpIiwgImhhIiwgICJoYWkiLCAiaGF3IiwgImhlIiwgICJoaSIsICAiaGlsIiwgImhpbSIsCisgICAgICAgICAgICAgICAgImhpdCIsICJobW4iLCAiaG8iLCAgImhyIiwgICJoc2IiLCAiaHQiLCAgImh1IiwgICJodXAiLCAiaHkiLCAgImh6IiwKKyAgICAgICAgICAgICAgICAiaWEiLCAgImliYSIsICJpZCIsICAiaWUiLCAgImlnIiwgICJpaSIsICAiaWpvIiwgImlrIiwKKyAgICAgICAgICAgICAgICAiaWxvIiwgImluYyIsICJpbmUiLCAiaW5oIiwgImlvIiwgICJpcmEiLCAiaXJvIiwgImlzIiwgICJpdCIsCisgICAgICAgICAgICAgICAgIml1IiwgICJqYSIsICAiamJvIiwgImpwciIsICJqcmIiLCAianYiLCAgImthIiwgICJrYWEiLCAia2FiIiwKKyAgICAgICAgICAgICAgICAia2FjIiwgImthbSIsICJrYXIiLCAia2F3IiwgImtiZCIsICJrZyIsICAia2hhIiwgImtoaSIsCisgICAgICAgICAgICAgICAgImtobyIsICJraSIsICAia2oiLCAgImtrIiwgICJrbCIsICAia20iLCAgImttYiIsICJrbiIsCisgICAgICAgICAgICAgICAgImtvIiwgICJrb2siLCAia29zIiwgImtwZSIsICJrciIsICAia3JjIiwgImtybyIsICJrcnUiLCAia3MiLAorICAgICAgICAgICAgICAgICJrdSIsICAia3VtIiwgImt1dCIsICJrdiIsICAia3ciLCAgImt5IiwgICJsYSIsICAibGFkIiwKKyAgICAgICAgICAgICAgICAibGFoIiwgImxhbSIsICJsYiIsICAibGV6IiwgImxnIiwgICJsaSIsICAibG4iLCAgImxvIiwgICJsb2wiLAorICAgICAgICAgICAgICAgICJsb3oiLCAibHQiLCAgImx1IiwgICJsdWEiLCAibHVpIiwgImx1biIsICJsdW8iLCAibHVzIiwKKyAgICAgICAgICAgICAgICAibHYiLCAgIm1hZCIsICJtYWciLCAibWFpIiwgIm1hayIsICJtYW4iLCAibWFwIiwgIm1hcyIsCisgICAgICAgICAgICAgICAgIm1kZiIsICJtZHIiLCAibWVuIiwgIm1nIiwgICJtZ2EiLCAibWgiLCAgIm1pIiwgICJtaWMiLCAibWluIiwKKyAgICAgICAgICAgICAgICAibWlzIiwgIm1rIiwgICJta2giLCAibWwiLCAgIm1uIiwgICJtbmMiLCAibW5pIiwgIm1ubyIsCisgICAgICAgICAgICAgICAgIm1vIiwgICJtb2giLCAibW9zIiwgIm1yIiwgICJtcyIsICAibXQiLCAgIm11bCIsICJtdW4iLAorICAgICAgICAgICAgICAgICJtdXMiLCAibXdyIiwgIm15IiwgICJteW4iLCAibXl2IiwgIm5hIiwgICJuYWgiLCAibmFpIiwgIm5hcCIsCisgICAgICAgICAgICAgICAgIm5iIiwgICJuZCIsICAibmRzIiwgIm5lIiwgICJuZXciLCAibmciLCAgIm5pYSIsICJuaWMiLAorICAgICAgICAgICAgICAgICJuaXUiLCAibmwiLCAgIm5uIiwgICJubyIsICAibm9nIiwgIm5vbiIsICJuciIsICAibnNvIiwgIm51YiIsCisgICAgICAgICAgICAgICAgIm52IiwgICJud2MiLCAibnkiLCAgIm55bSIsICJueW4iLCAibnlvIiwgIm56aSIsICJvYyIsICAib2oiLAorICAgICAgICAgICAgICAgICJvbSIsICAib3IiLCAgIm9zIiwgICJvc2EiLCAib3RhIiwgIm90byIsICJwYSIsICAicGFhIiwKKyAgICAgICAgICAgICAgICAicGFnIiwgInBhbCIsICJwYW0iLCAicGFwIiwgInBhdSIsICJwZW8iLCAicGhpIiwgInBobiIsCisgICAgICAgICAgICAgICAgInBpIiwgICJwbCIsICAicG9uIiwgInByYSIsICJwcm8iLCAicHMiLCAgInB0IiwgICJxdSIsCisgICAgICAgICAgICAgICAgInJhaiIsICJyYXAiLCAicmFyIiwgInJtIiwgICJybiIsICAicm8iLCAgInJvYSIsICJyb20iLAorICAgICAgICAgICAgICAgICJydSIsICAicnVwIiwgInJ3IiwgICJzYSIsICAic2FkIiwgInNhaCIsICJzYWkiLCAic2FsIiwgInNhbSIsCisgICAgICAgICAgICAgICAgInNhcyIsICJzYXQiLCAic2MiLCAgInNjbyIsICJzZCIsICAic2UiLCAgInNlbCIsICJzZW0iLAorICAgICAgICAgICAgICAgICJzZyIsICAic2dhIiwgInNnbiIsICJzaG4iLCAic2kiLCAgInNpZCIsICJzaW8iLCAic2l0IiwKKyAgICAgICAgICAgICAgICAic2siLCAgInNsIiwgICJzbGEiLCAic20iLCAgInNtYSIsICJzbWkiLCAic21qIiwgInNtbiIsCisgICAgICAgICAgICAgICAgInNtcyIsICJzbiIsICAic25rIiwgInNvIiwgICJzb2ciLCAic29uIiwgInNxIiwgICJzciIsCisgICAgICAgICAgICAgICAgInNyciIsICJzcyIsICAic3NhIiwgInN0IiwgICJzdSIsICAic3VrIiwgInN1cyIsICJzdXgiLAorICAgICAgICAgICAgICAgICJzdiIsICAic3ciLCAgInN5ciIsICJ0YSIsICAidGFpIiwgInRlIiwgICJ0ZW0iLCAidGVyIiwKKyAgICAgICAgICAgICAgICAidGV0IiwgInRnIiwgICJ0aCIsICAidGkiLCAgInRpZyIsICJ0aXYiLCAidGsiLCAgInRrbCIsCisgICAgICAgICAgICAgICAgInRsIiwgICJ0bGgiLCAidGxpIiwgInRtaCIsICJ0biIsICAidG8iLCAgInRvZyIsICJ0cGkiLCAidHIiLAorICAgICAgICAgICAgICAgICJ0cyIsICAidHNpIiwgInR0IiwgICJ0dW0iLCAidHVwIiwgInR1dCIsICJ0dmwiLCAidHciLAorICAgICAgICAgICAgICAgICJ0eSIsICAidHl2IiwgInVkbSIsICJ1ZyIsICAidWdhIiwgInVrIiwgICJ1bWIiLCAidW5kIiwgInVyIiwKKyAgICAgICAgICAgICAgICAidXoiLCAgInZhaSIsICJ2ZSIsICAidmkiLCAgInZvIiwgICJ2b3QiLCAid2EiLCAgIndhayIsCisgICAgICAgICAgICAgICAgIndhbCIsICJ3YXIiLCAid2FzIiwgIndlbiIsICJ3byIsICAieGFsIiwgInhoIiwgICJ5YW8iLCAieWFwIiwKKyAgICAgICAgICAgICAgICAieWkiLCAgInlvIiwgICJ5cGsiLCAiemEiLCAgInphcCIsICJ6ZW4iLCAiemgiLCAgInpuZCIsCisgICAgICAgICAgICAgICAgInp1IiwgICJ6dW4iLCAKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBSZXBsYWNlbWVudExhbmd1YWdlcyA9IHsKKyAgICAgICAgICAgICAgICAiaWQiLCAiaGUiLCAieWkiLCAianYiLCAic3IiLCAibmIiLC8qIHJlcGxhY2VtZW50IGxhbmd1YWdlIGNvZGVzICovCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wT2Jzb2xldGVMYW5ndWFnZXMgPSB7CisgICAgICAgICAgICAgICAgImluIiwgIml3IiwgImppIiwgImp3IiwgInNoIiwgIm5vIiwgICAgLyogb2Jzb2xldGUgbGFuZ3VhZ2UgY29kZXMgKi8gICAgICAgICAKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIC8qIFRoaXMgbGlzdCBNVVNUIGNvbnRhaW4gYSB0aHJlZS1sZXR0ZXIgY29kZSBmb3IgZXZlcnkgdHdvLWxldHRlciBjb2RlIGluIHRoZQorICAgICAgICAgICAgICAgbGlzdCBhYm92ZSwgYW5kIHRoZXkgTVVTVCBuZSBpbiB0aGUgc2FtZSBvcmRlciAoaS5lLiwgdGhlIHNhbWUgbGFuZ3VhZ2UgbXVzdAorICAgICAgICAgICAgICAgYmUgaW4gdGhlIHNhbWUgcGxhY2UgaW4gYm90aCBsaXN0cykhICovCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wTGFuZ3VhZ2VzMyA9IHsKKyAgICAgICAgICAgICAgICAvKiJhYSIsICAiYWIiLCAgImFjZSIsICJhY2giLCAiYWRhIiwgImFkeSIsICJhZSIsICAiYWYiLCAgImFmYSIsICAgICovCisgICAgICAgICAgICAgICAgImFhciIsICJhYmsiLCAiYWNlIiwgImFjaCIsICJhZGEiLCAiYWR5IiwgImF2ZSIsICJhZnIiLCAiYWZhIiwKKyAgICAgICAgICAgICAgICAvKiJhZmgiLCAiYWsiLCAgImFrayIsICJhbGUiLCAiYWxnIiwgImFtIiwgICJhbiIsICAiYW5nIiwgImFwYSIsICAgICovCisgICAgICAgICAgICAgICAgImFmaCIsICJha2EiLCAiYWtrIiwgImFsZSIsICJhbGciLCAiYW1oIiwgImFyZyIsICJhbmciLCAiYXBhIiwKKyAgICAgICAgICAgICAgICAvKiJhciIsICAiYXJjIiwgImFybiIsICJhcnAiLCAiYXJ0IiwgImFydyIsICJhcyIsICAiYXN0IiwgICAgKi8KKyAgICAgICAgICAgICAgICAiYXJhIiwgImFyYyIsICJhcm4iLCAiYXJwIiwgImFydCIsICJhcnciLCAiYXNtIiwgImFzdCIsCisgICAgICAgICAgICAgICAgLyoiYXRoIiwgImF1cyIsICJhdiIsICAiYXdhIiwgImF5IiwgICJheiIsICAiYmEiLCAgImJhZCIsICAgICovCisgICAgICAgICAgICAgICAgImF0aCIsICJhdXMiLCAiYXZhIiwgImF3YSIsICJheW0iLCAiYXplIiwgImJhayIsICJiYWQiLAorICAgICAgICAgICAgICAgIC8qImJhaSIsICJiYWwiLCAiYmFuIiwgImJhcyIsICJiYXQiLCAiYmUiLCAgImJlaiIsICAgICovCisgICAgICAgICAgICAgICAgImJhaSIsICJiYWwiLCAiYmFuIiwgImJhcyIsICJiYXQiLCAiYmVsIiwgImJlaiIsCisgICAgICAgICAgICAgICAgLyoiYmVtIiwgImJlciIsICJiZyIsICAiYmgiLCAgImJobyIsICJiaSIsICAiYmlrIiwgImJpbiIsICAgICovCisgICAgICAgICAgICAgICAgImJlbSIsICJiZXIiLCAiYnVsIiwgImJpaCIsICJiaG8iLCAiYmlzIiwgImJpayIsICJiaW4iLAorICAgICAgICAgICAgICAgIC8qImJsYSIsICJibSIsICAiYm4iLCAgImJudCIsICJibyIsICAiYnIiLCAgImJyYSIsICJicyIsICAgICAqLworICAgICAgICAgICAgICAgICJibGEiLCAiYmFtIiwgICJiZW4iLCAiYm50IiwgImJvZCIsICJicmUiLCAiYnJhIiwgImJvcyIsCisgICAgICAgICAgICAgICAgLyoiYnRrIiwgImJ1YSIsICJidWciLCAiYnluIiwgImNhIiwgICJjYWQiLCAiY2FpIiwgImNhciIsICJjYXUiLCAgICAqLworICAgICAgICAgICAgICAgICJidGsiLCAiYnVhIiwgImJ1ZyIsICJieW4iLCAiY2F0IiwgImNhZCIsICJjYWkiLCAiY2FyIiwgImNhdSIsCisgICAgICAgICAgICAgICAgLyoiY2UiLCAgImNlYiIsICJjZWwiLCAiY2giLCAgImNoYiIsICJjaGciLCAiY2hrIiwgImNobSIsICAgICovCisgICAgICAgICAgICAgICAgImNoZSIsICJjZWIiLCAiY2VsIiwgImNoYSIsICJjaGIiLCAiY2hnIiwgImNoayIsICJjaG0iLAorICAgICAgICAgICAgICAgIC8qImNobiIsICJjaG8iLCAiY2hwIiwgImNociIsICJjaHkiLCAiY21jIiwgImNvIiwgICJjb3AiLCAgICAqLworICAgICAgICAgICAgICAgICJjaG4iLCAiY2hvIiwgImNocCIsICJjaHIiLCAiY2h5IiwgImNtYyIsICJjb3MiLCAiY29wIiwKKyAgICAgICAgICAgICAgICAvKiJjcGUiLCAiY3BmIiwgImNwcCIsICJjciIsICAiY3JoIiwgImNycCIsICJjcyIsICAiY3NiIiwgImN1IiwgICJjdXMiLCAgICAqLworICAgICAgICAgICAgICAgICJjcGUiLCAiY3BmIiwgImNwcCIsICJjcmUiLCAiY3JoIiwgImNycCIsICJjZXMiLCAiY3NiIiwgImNodSIsICJjdXMiLAorICAgICAgICAgICAgICAgIC8qImN2IiwgICJjeSIsICAiZGEiLCAgImRhayIsICJkYXIiLCAiZGF5IiwgImRlIiwgICJkZWwiLCAiZGVuIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiY2h2IiwgImN5bSIsICJkYW4iLCAiZGFrIiwgImRhciIsICJkYXkiLCAiZGV1IiwgImRlbCIsICJkZW4iLAorICAgICAgICAgICAgICAgIC8qImRnciIsICJkaW4iLCAiZG9pIiwgImRyYSIsICJkc2IiLCAiZHVhIiwgImR1bSIsICJkdiIsICAiZHl1IiwgICAgKi8KKyAgICAgICAgICAgICAgICAiZGdyIiwgImRpbiIsICJkb2kiLCAiZHJhIiwgImRzYiIsICJkdWEiLCAiZHVtIiwgImRpdiIsICJkeXUiLAorICAgICAgICAgICAgICAgIC8qImR6IiwgICJlZSIsICAiZWZpIiwgImVneSIsICJla2EiLCAiZWwiLCAgImVseCIsICJlbiIsICAgICAqLworICAgICAgICAgICAgICAgICJkem8iLCAiZXdlIiwgImVmaSIsICJlZ3kiLCAiZWthIiwgImVsbCIsICJlbHgiLCAiZW5nIiwKKyAgICAgICAgICAgICAgICAvKiJlbm0iLCAiZW8iLCAgImVzIiwgICJldCIsICAiZXUiLCAgImV3byIsICJmYSIsICAgICAqLworICAgICAgICAgICAgICAgICJlbm0iLCAiZXBvIiwgInNwYSIsICJlc3QiLCAiZXVzIiwgImV3byIsICJmYXMiLAorICAgICAgICAgICAgICAgIC8qImZhbiIsICJmYXQiLCAiZmYiLCAgImZpIiwgICJmaXUiLCAiZmoiLCAgImZvIiwgICJmb24iLCAgICAqLworICAgICAgICAgICAgICAgICJmYW4iLCAiZmF0IiwgImZ1bCIsICJmaW4iLCAiZml1IiwgImZpaiIsICJmYW8iLCAiZm9uIiwKKyAgICAgICAgICAgICAgICAvKiJmciIsICAiZnJtIiwgImZybyIsICJmdXIiLCAiZnkiLCAgImdhIiwgICJnYWEiLCAiZ2F5IiwgICAgKi8KKyAgICAgICAgICAgICAgICAiZnJhIiwgImZybSIsICJmcm8iLCAiZnVyIiwgImZyeSIsICJnbGUiLCAiZ2FhIiwgImdheSIsCisgICAgICAgICAgICAgICAgLyoiZ2JhIiwgImdkIiwgICJnZW0iLCAiZ2V6IiwgImdpbCIsICJnbCIsICAiZ21oIiwgImduIiwgICAgICovCisgICAgICAgICAgICAgICAgImdiYSIsICJnbGEiLCAiZ2VtIiwgImdleiIsICJnaWwiLCAiZ2xnIiwgImdtaCIsICJncm4iLAorICAgICAgICAgICAgICAgIC8qImdvaCIsICJnb24iLCAiZ29yIiwgImdvdCIsICJncmIiLCAiZ3JjIiwgImd1IiwgICJndiIsICAgICAqLworICAgICAgICAgICAgICAgICJnb2giLCAiZ29uIiwgImdvciIsICJnb3QiLCAiZ3JiIiwgImdyYyIsICJndWoiLCAiZ2x2IiwKKyAgICAgICAgICAgICAgICAvKiJnd2kiLCAiaGEiLCAgImhhaSIsICJoYXciLCAiaGUiLCAgImhpIiwgICJoaWwiLCAiaGltIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiZ3dpIiwgImhhdSIsICJoYWkiLCAiaGF3IiwgImhlYiIsICJoaW4iLCAiaGlsIiwgImhpbSIsCisgICAgICAgICAgICAgICAgLyoiaGl0IiwgImhtbiIsICJobyIsICAiaHIiLCAgImhzYiIsICJodCIsICAiaHUiLCAgImh1cCIsICJoeSIsICAiaHoiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiaGl0IiwgImhtbiIsICJobW8iLCAiaHJ2IiwgImhzYiIsICJoYXQiLCAiaHVuIiwgImh1cCIsICJoeWUiLCAiaGVyIiwKKyAgICAgICAgICAgICAgICAvKiJpYSIsICAiaWJhIiwgImlkIiwgICJpZSIsICAiaWciLCAgImlpIiwgICJpam8iLCAiaWsiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiaW5hIiwgImliYSIsICJpbmQiLCAiaWxlIiwgImlibyIsICJpaWkiLCAiaWpvIiwgImlwayIsCisgICAgICAgICAgICAgICAgLyoiaWxvIiwgImluYyIsICJpbmUiLCAiaW5oIiwgImlvIiwgICJpcmEiLCAiaXJvIiwgImlzIiwgICJpdCIsICAgICAgKi8KKyAgICAgICAgICAgICAgICAiaWxvIiwgImluYyIsICJpbmUiLCAiaW5oIiwgImlkbyIsICJpcmEiLCAiaXJvIiwgImlzbCIsICJpdGEiLAorICAgICAgICAgICAgICAgIC8qIml1IiwgICJqYSIsICAiamJvIiwgImpwciIsICJqcmIiLCAianYiLCAgImthIiwgICJrYWEiLCAia2FiIiwgICAqLworICAgICAgICAgICAgICAgICJpa3UiLCAianBuIiwgImpibyIsICJqcHIiLCAianJiIiwgImphdyIsICJrYXQiLCAia2FhIiwgImthYiIsCisgICAgICAgICAgICAgICAgLyoia2FjIiwgImthbSIsICJrYXIiLCAia2F3IiwgImtiZCIsICJrZyIsICAia2hhIiwgImtoaSIsICAgICovCisgICAgICAgICAgICAgICAgImthYyIsICJrYW0iLCAia2FyIiwgImthdyIsICJrYmQiLCAia29uIiwgImtoYSIsICJraGkiLAorICAgICAgICAgICAgICAgIC8qImtobyIsICJraSIsICAia2oiLCAgImtrIiwgICJrbCIsICAia20iLCAgImttYiIsICJrbiIsICAgICAqLworICAgICAgICAgICAgICAgICJraG8iLCAia2lrIiwgImt1YSIsICJrYXoiLCAia2FsIiwgImtobSIsICJrbWIiLCAia2FuIiwKKyAgICAgICAgICAgICAgICAvKiJrbyIsICAia29rIiwgImtvcyIsICJrcGUiLCAia3IiLCAgImtyYyIsICJrcm8iLCAia3J1IiwgImtzIiwgICAgICovCisgICAgICAgICAgICAgICAgImtvciIsICJrb2siLCAia29zIiwgImtwZSIsICJrYXUiLCAia3JjIiwgImtybyIsICJrcnUiLCAia2FzIiwKKyAgICAgICAgICAgICAgICAvKiJrdSIsICAia3VtIiwgImt1dCIsICJrdiIsICAia3ciLCAgImt5IiwgICJsYSIsICAibGFkIiwgICAgKi8KKyAgICAgICAgICAgICAgICAia3VyIiwgImt1bSIsICJrdXQiLCAia29tIiwgImNvciIsICJraXIiLCAibGF0IiwgImxhZCIsCisgICAgICAgICAgICAgICAgLyoibGFoIiwgImxhbSIsICJsYiIsICAibGV6IiwgImxnIiwgICJsaSIsICAibG4iLCAgImxvIiwgICJsb2wiLCAgICAqLworICAgICAgICAgICAgICAgICJsYWgiLCAibGFtIiwgImx0eiIsICJsZXoiLCAibHVnIiwgImxpbSIsICJsaW4iLCAibGFvIiwgImxvbCIsCisgICAgICAgICAgICAgICAgLyoibG96IiwgImx0IiwgICJsdSIsICAibHVhIiwgImx1aSIsICJsdW4iLCAibHVvIiwgImx1cyIsICAgICovCisgICAgICAgICAgICAgICAgImxveiIsICJsaXQiLCAibHViIiwgImx1YSIsICJsdWkiLCAibHVuIiwgImx1byIsICJsdXMiLAorICAgICAgICAgICAgICAgIC8qImx2IiwgICJtYWQiLCAibWFnIiwgIm1haSIsICJtYWsiLCAibWFuIiwgIm1hcCIsICJtYXMiLCAgICAqLworICAgICAgICAgICAgICAgICJsYXYiLCAibWFkIiwgIm1hZyIsICJtYWkiLCAibWFrIiwgIm1hbiIsICJtYXAiLCAibWFzIiwKKyAgICAgICAgICAgICAgICAvKiJtZGYiLCAibWRyIiwgIm1lbiIsICJtZyIsICAibWdhIiwgIm1oIiwgICJtaSIsICAibWljIiwgIm1pbiIsICAgICovCisgICAgICAgICAgICAgICAgIm1kZiIsICJtZHIiLCAibWVuIiwgIm1sZyIsICJtZ2EiLCAibWFoIiwgIm1yaSIsICJtaWMiLCAibWluIiwKKyAgICAgICAgICAgICAgICAvKiJtaXMiLCAibWsiLCAgIm1raCIsICJtbCIsICAibW4iLCAgIm1uYyIsICJtbmkiLCAibW5vIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibWlzIiwgIm1rZCIsICJta2giLCAibWFsIiwgIm1vbiIsICJtbmMiLCAibW5pIiwgIm1ubyIsCisgICAgICAgICAgICAgICAgLyoibW8iLCAgIm1vaCIsICJtb3MiLCAibXIiLCAgIm1zIiwgICJtdCIsICAibXVsIiwgIm11biIsICAgICovCisgICAgICAgICAgICAgICAgIm1vbCIsICJtb2giLCAibW9zIiwgIm1hciIsICJtc2EiLCAibWx0IiwgIm11bCIsICJtdW4iLAorICAgICAgICAgICAgICAgIC8qIm11cyIsICJtd3IiLCAibXkiLCAgIm15biIsICJteXYiLCAibmEiLCAgIm5haCIsICJuYWkiLCAibmFwIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibXVzIiwgIm13ciIsICJteWEiLCAibXluIiwgIm15diIsICJuYXUiLCAibmFoIiwgIm5haSIsICJuYXAiLAorICAgICAgICAgICAgICAgIC8qIm5iIiwgICJuZCIsICAibmRzIiwgIm5lIiwgICJuZXciLCAibmciLCAgIm5pYSIsICJuaWMiLCAgICAqLworICAgICAgICAgICAgICAgICJub2IiLCAibmRlIiwgIm5kcyIsICJuZXAiLCAibmV3IiwgIm5kbyIsICJuaWEiLCAibmljIiwKKyAgICAgICAgICAgICAgICAvKiJuaXUiLCAibmwiLCAgIm5uIiwgICJubyIsICAibm9nIiwgIm5vbiIsICJuciIsICAibnNvIiwgIm51YiIsICAgICovCisgICAgICAgICAgICAgICAgIm5pdSIsICJubGQiLCAibm5vIiwgIm5vciIsICJub2ciLCAibm9uIiwgIm5ibCIsICJuc28iLCAibnViIiwKKyAgICAgICAgICAgICAgICAvKiJudiIsICAibndjIiwgIm55IiwgICJueW0iLCAibnluIiwgIm55byIsICJuemkiLCAib2MiLCAgIm9qIiwgICAgICovCisgICAgICAgICAgICAgICAgIm5hdiIsICJud2MiLCAibnlhIiwgIm55bSIsICJueW4iLCAibnlvIiwgIm56aSIsICJvY2kiLCAib2ppIiwKKyAgICAgICAgICAgICAgICAvKiJvbSIsICAib3IiLCAgIm9zIiwgICJvc2EiLCAib3RhIiwgIm90byIsICJwYSIsICAicGFhIiwgICAgKi8KKyAgICAgICAgICAgICAgICAib3JtIiwgIm9yaSIsICJvc3MiLCAib3NhIiwgIm90YSIsICJvdG8iLCAicGFuIiwgInBhYSIsCisgICAgICAgICAgICAgICAgLyoicGFnIiwgInBhbCIsICJwYW0iLCAicGFwIiwgInBhdSIsICJwZW8iLCAicGhpIiwgInBobiIsICAgICovCisgICAgICAgICAgICAgICAgInBhZyIsICJwYWwiLCAicGFtIiwgInBhcCIsICJwYXUiLCAicGVvIiwgInBoaSIsICJwaG4iLAorICAgICAgICAgICAgICAgIC8qInBpIiwgICJwbCIsICAicG9uIiwgInByYSIsICJwcm8iLCAicHMiLCAgInB0IiwgICJxdSIsICAgICAqLworICAgICAgICAgICAgICAgICJwbGkiLCAicG9sIiwgInBvbiIsICJwcmEiLCAicHJvIiwgInB1cyIsICJwb3IiLCAicXVlIiwKKyAgICAgICAgICAgICAgICAvKiJyYWoiLCAicmFwIiwgInJhciIsICJybSIsICAicm4iLCAgInJvIiwgICJyb2EiLCAicm9tIiwgICAgKi8KKyAgICAgICAgICAgICAgICAicmFqIiwgInJhcCIsICJyYXIiLCAicm9oIiwgInJ1biIsICJyb24iLCAicm9hIiwgInJvbSIsCisgICAgICAgICAgICAgICAgLyoicnUiLCAgInJ1cCIsICJydyIsICAic2EiLCAgInNhZCIsICJzYWgiLCAic2FpIiwgInNhbCIsICJzYW0iLCAgICAqLworICAgICAgICAgICAgICAgICJydXMiLCAicnVwIiwgImtpbiIsICJzYW4iLCAic2FkIiwgInNhaCIsICJzYWkiLCAic2FsIiwgInNhbSIsCisgICAgICAgICAgICAgICAgLyoic2FzIiwgInNhdCIsICJzYyIsICAic2NvIiwgInNkIiwgICJzZSIsICAic2VsIiwgInNlbSIsICAgICovCisgICAgICAgICAgICAgICAgInNhcyIsICJzYXQiLCAic3JkIiwgInNjbyIsICJzbmQiLCAic21lIiwgInNlbCIsICJzZW0iLAorICAgICAgICAgICAgICAgIC8qInNnIiwgICJzZ2EiLCAic2duIiwgInNobiIsICJzaSIsICAic2lkIiwgInNpbyIsICJzaXQiLCAgICAqLworICAgICAgICAgICAgICAgICJzYWciLCAic2dhIiwgInNnbiIsICJzaG4iLCAic2luIiwgInNpZCIsICJzaW8iLCAic2l0IiwKKyAgICAgICAgICAgICAgICAvKiJzayIsICAic2wiLCAgInNsYSIsICJzbSIsICAic21hIiwgInNtaSIsICJzbWoiLCAic21uIiwgICAgKi8KKyAgICAgICAgICAgICAgICAic2xrIiwgInNsdiIsICJzbGEiLCAic21vIiwgInNtYSIsICJzbWkiLCAic21qIiwgInNtbiIsCisgICAgICAgICAgICAgICAgLyoic21zIiwgInNuIiwgICJzbmsiLCAic28iLCAgInNvZyIsICJzb24iLCAic3EiLCAgInNyIiwgICAgICovCisgICAgICAgICAgICAgICAgInNtcyIsICJzbmEiLCAic25rIiwgInNvbSIsICJzb2ciLCAic29uIiwgInNxaSIsICJzcnAiLAorICAgICAgICAgICAgICAgIC8qInNyciIsICJzcyIsICAic3NhIiwgInN0IiwgICJzdSIsICAic3VrIiwgInN1cyIsICJzdXgiLCAgICAqLworICAgICAgICAgICAgICAgICJzcnIiLCAic3N3IiwgInNzYSIsICJzb3QiLCAic3VuIiwgInN1ayIsICJzdXMiLCAic3V4IiwKKyAgICAgICAgICAgICAgICAvKiJzdiIsICAic3ciLCAgInN5ciIsICJ0YSIsICAidGFpIiwgInRlIiwgICJ0ZW0iLCAidGVyIiwgICAgKi8KKyAgICAgICAgICAgICAgICAic3dlIiwgInN3YSIsICJzeXIiLCAidGFtIiwgInRhaSIsICJ0ZWwiLCAidGVtIiwgInRlciIsCisgICAgICAgICAgICAgICAgLyoidGV0IiwgInRnIiwgICJ0aCIsICAidGkiLCAgInRpZyIsICJ0aXYiLCAidGsiLCAgInRrbCIsICAgICovCisgICAgICAgICAgICAgICAgInRldCIsICJ0Z2siLCAidGhhIiwgInRpciIsICJ0aWciLCAidGl2IiwgInR1ayIsICJ0a2wiLAorICAgICAgICAgICAgICAgIC8qInRsIiwgICJ0bGgiLCAidGxpIiwgInRtaCIsICJ0biIsICAidG8iLCAgInRvZyIsICJ0cGkiLCAidHIiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAidGdsIiwgInRsaCIsICJ0bGkiLCAidG1oIiwgInRzbiIsICJ0b24iLCAidG9nIiwgInRwaSIsICJ0dXIiLAorICAgICAgICAgICAgICAgIC8qInRzIiwgICJ0c2kiLCAidHQiLCAgInR1bSIsICJ0dXAiLCAidHV0IiwgInR2bCIsICJ0dyIsICAgICAqLworICAgICAgICAgICAgICAgICJ0c28iLCAidHNpIiwgInRhdCIsICJ0dW0iLCAidHVwIiwgInR1dCIsICJ0dmwiLCAidHdpIiwKKyAgICAgICAgICAgICAgICAvKiJ0eSIsICAidHl2IiwgInVkbSIsICJ1ZyIsICAidWdhIiwgInVrIiwgICJ1bWIiLCAidW5kIiwgInVyIiwgICAgICovCisgICAgICAgICAgICAgICAgInRhaCIsICJ0eXYiLCAidWRtIiwgInVpZyIsICJ1Z2EiLCAidWtyIiwgInVtYiIsICJ1bmQiLCAidXJkIiwKKyAgICAgICAgICAgICAgICAvKiJ1eiIsICAidmFpIiwgInZlIiwgICJ2aSIsICAidm8iLCAgInZvdCIsICJ3YSIsICAid2FrIiwgICAgKi8KKyAgICAgICAgICAgICAgICAidXpiIiwgInZhaSIsICJ2ZW4iLCAidmllIiwgInZvbCIsICJ2b3QiLCAid2xuIiwgIndhayIsCisgICAgICAgICAgICAgICAgLyoid2FsIiwgIndhciIsICJ3YXMiLCAid2VuIiwgIndvIiwgICJ4YWwiLCAieGgiLCAgInlhbyIsICJ5YXAiLCAgICAqLworICAgICAgICAgICAgICAgICJ3YWwiLCAid2FyIiwgIndhcyIsICJ3ZW4iLCAid29sIiwgInhhbCIsICJ4aG8iLCAieWFvIiwgInlhcCIsCisgICAgICAgICAgICAgICAgLyoieWkiLCAgInlvIiwgICJ5cGsiLCAiemEiLCAgInphcCIsICJ6ZW4iLCAiemgiLCAgInpuZCIsICAgICovCisgICAgICAgICAgICAgICAgInlpZCIsICJ5b3IiLCAieXBrIiwgInpoYSIsICJ6YXAiLCAiemVuIiwgInpobyIsICJ6bmQiLAorICAgICAgICAgICAgICAgIC8qInp1IiwgICJ6dW4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICJ6dWwiLCAienVuIiwgIAorICAgICAgICAgICAgfTsKKyAgICAKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBPYnNvbGV0ZUxhbmd1YWdlczMgPSB7CisgICAgICAgICAgICAgICAgLyogImluIiwgICJpdyIsICAiamkiLCAgImp3IiwgICJzaCIsICovCisgICAgICAgICAgICAgICAgImluZCIsICJoZWIiLCAieWlkIiwgImphdyIsICJzcnAiLCAKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAoVUxvY2FsZS5jbGFzcykgeworICAgICAgICAgICAgICAgIGlmIChfbGFuZ3VhZ2VzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgX2xhbmd1YWdlcyA9IHRlbXBMYW5ndWFnZXM7CisgICAgICAgICAgICAgICAgICAgIF9yZXBsYWNlbWVudExhbmd1YWdlcyA9IHRlbXBSZXBsYWNlbWVudExhbmd1YWdlczsKKyAgICAgICAgICAgICAgICAgICAgX29ic29sZXRlTGFuZ3VhZ2VzID0gdGVtcE9ic29sZXRlTGFuZ3VhZ2VzOworICAgICAgICAgICAgICAgICAgICBfbGFuZ3VhZ2VzMyA9IHRlbXBMYW5ndWFnZXMzOworICAgICAgICAgICAgICAgICAgICBfb2Jzb2xldGVMYW5ndWFnZXMzID0gdGVtcE9ic29sZXRlTGFuZ3VhZ2VzMzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfY291bnRyaWVzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9kZXByZWNhdGVkQ291bnRyaWVzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9yZXBsYWNlbWVudENvdW50cmllczsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfb2Jzb2xldGVDb3VudHJpZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX2NvdW50cmllczM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX29ic29sZXRlQ291bnRyaWVzMzsgIAorCisgICAgLy8gQXZvaWQgaW5pdGlhbGl6aW5nIGNvdW50cnkgdGFibGVzIHVubGVzcyB3ZSBoYXZlIHRvLgorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgaW5pdENvdW50cnlUYWJsZXMoKSB7ICAgIAorICAgICAgICBpZiAoX2NvdW50cmllcyA9PSBudWxsKSB7CisgICAgICAgICAgICAvKiBaUihaQVIpIGlzIG5vdyBDRChDT0QpIGFuZCBGWChGWFgpIGlzIFBTKFBTRSkgYXMgcGVyCisgICAgICAgICAgICAgICBodHRwOi8vd3d3LmV2ZXJ0eXBlLmNvbS9zdGFuZGFyZHMvaXNvMzE2Ni9pc28zMTY2LTEtZW4uaHRtbCAKKyAgICAgICAgICAgICAgIGFkZGVkIG5ldyBjb2RlcyBrZWVwaW5nIHRoZSBvbGQgb25lcyBmb3IgY29tcGF0aWJpbGl0eQorICAgICAgICAgICAgICAgdXBkYXRlZCB0byBpbmNsdWRlIDE5OTkvMTIvMDMgcmV2aXNpb25zICpDV0IqLworICAgIAorICAgICAgICAgICAgLyogUk8oUk9NKSBpcyBub3cgUk8oUk9VKSBhY2NvcmRpbmcgdG8gCisgICAgICAgICAgICAgICBodHRwOi8vd3d3Lmlzby5vcmcvaXNvL2VuL3Byb2RzLXNlcnZpY2VzL2lzbzMxNjZtYS8wM3VwZGF0ZXMtb24taXNvLTMxNjYvbmx2M2Utcm91Lmh0bWwKKyAgICAgICAgICAgICovCisgICAgCisgICAgICAgICAgICAvKiBUaGlzIGxpc3QgTVVTVCBiZSBpbiBzb3J0ZWQgb3JkZXIsIGFuZCBNVVNUIGNvbnRhaW4gb25seSB0d28tbGV0dGVyIGNvZGVzISAqLworICAgICAgICAgICAgU3RyaW5nW10gdGVtcENvdW50cmllcyA9IHsKKyAgICAgICAgICAgICAgICAiQUQiLCAgIkFFIiwgICJBRiIsICAiQUciLCAgIkFJIiwgICJBTCIsICAiQU0iLCAgIkFOIiwKKyAgICAgICAgICAgICAgICAiQU8iLCAgIkFRIiwgICJBUiIsICAiQVMiLCAgIkFUIiwgICJBVSIsICAiQVciLCAgIkFaIiwKKyAgICAgICAgICAgICAgICAiQkEiLCAgIkJCIiwgICJCRCIsICAiQkUiLCAgIkJGIiwgICJCRyIsICAiQkgiLCAgIkJJIiwKKyAgICAgICAgICAgICAgICAiQkoiLCAgIkJNIiwgICJCTiIsICAiQk8iLCAgIkJSIiwgICJCUyIsICAiQlQiLCAgIkJWIiwKKyAgICAgICAgICAgICAgICAiQlciLCAgIkJZIiwgICJCWiIsICAiQ0EiLCAgIkNDIiwgICJDRCIsICAiQ0YiLCAgIkNHIiwKKyAgICAgICAgICAgICAgICAiQ0giLCAgIkNJIiwgICJDSyIsICAiQ0wiLCAgIkNNIiwgICJDTiIsICAiQ08iLCAgIkNSIiwKKyAgICAgICAgICAgICAgICAiQ1UiLCAgIkNWIiwgICJDWCIsICAiQ1kiLCAgIkNaIiwgICJERSIsICAiREoiLCAgIkRLIiwKKyAgICAgICAgICAgICAgICAiRE0iLCAgIkRPIiwgICJEWiIsICAiRUMiLCAgIkVFIiwgICJFRyIsICAiRUgiLCAgIkVSIiwKKyAgICAgICAgICAgICAgICAiRVMiLCAgIkVUIiwgICJGSSIsICAiRkoiLCAgIkZLIiwgICJGTSIsICAiRk8iLCAgIkZSIiwKKyAgICAgICAgICAgICAgICAiR0EiLCAgIkdCIiwgICJHRCIsICAiR0UiLCAgIkdGIiwgICJHSCIsICAiR0kiLCAgIkdMIiwKKyAgICAgICAgICAgICAgICAiR00iLCAgIkdOIiwgICJHUCIsICAiR1EiLCAgIkdSIiwgICJHUyIsICAiR1QiLCAgIkdVIiwKKyAgICAgICAgICAgICAgICAiR1ciLCAgIkdZIiwgICJISyIsICAiSE0iLCAgIkhOIiwgICJIUiIsICAiSFQiLCAgIkhVIiwKKyAgICAgICAgICAgICAgICAiSUQiLCAgIklFIiwgICJJTCIsICAiSU4iLCAgIklPIiwgICJJUSIsICAiSVIiLCAgIklTIiwKKyAgICAgICAgICAgICAgICAiSVQiLCAgIkpNIiwgICJKTyIsICAiSlAiLCAgIktFIiwgICJLRyIsICAiS0giLCAgIktJIiwKKyAgICAgICAgICAgICAgICAiS00iLCAgIktOIiwgICJLUCIsICAiS1IiLCAgIktXIiwgICJLWSIsICAiS1oiLCAgIkxBIiwKKyAgICAgICAgICAgICAgICAiTEIiLCAgIkxDIiwgICJMSSIsICAiTEsiLCAgIkxSIiwgICJMUyIsICAiTFQiLCAgIkxVIiwKKyAgICAgICAgICAgICAgICAiTFYiLCAgIkxZIiwgICJNQSIsICAiTUMiLCAgIk1EIiwgICJNRyIsICAiTUgiLCAgIk1LIiwKKyAgICAgICAgICAgICAgICAiTUwiLCAgIk1NIiwgICJNTiIsICAiTU8iLCAgIk1QIiwgICJNUSIsICAiTVIiLCAgIk1TIiwKKyAgICAgICAgICAgICAgICAiTVQiLCAgIk1VIiwgICJNViIsICAiTVciLCAgIk1YIiwgICJNWSIsICAiTVoiLCAgIk5BIiwKKyAgICAgICAgICAgICAgICAiTkMiLCAgIk5FIiwgICJORiIsICAiTkciLCAgIk5JIiwgICJOTCIsICAiTk8iLCAgIk5QIiwKKyAgICAgICAgICAgICAgICAiTlIiLCAgIk5VIiwgICJOWiIsICAiT00iLCAgIlBBIiwgICJQRSIsICAiUEYiLCAgIlBHIiwKKyAgICAgICAgICAgICAgICAiUEgiLCAgIlBLIiwgICJQTCIsICAiUE0iLCAgIlBOIiwgICJQUiIsICAiUFMiLCAgIlBUIiwKKyAgICAgICAgICAgICAgICAiUFciLCAgIlBZIiwgICJRQSIsICAiUkUiLCAgIlJPIiwgICJSVSIsICAiUlciLCAgIlNBIiwKKyAgICAgICAgICAgICAgICAiU0IiLCAgIlNDIiwgICJTRCIsICAiU0UiLCAgIlNHIiwgICJTSCIsICAiU0kiLCAgIlNKIiwKKyAgICAgICAgICAgICAgICAiU0siLCAgIlNMIiwgICJTTSIsICAiU04iLCAgIlNPIiwgICJTUiIsICAiU1QiLCAgIlNWIiwKKyAgICAgICAgICAgICAgICAiU1kiLCAgIlNaIiwgICJUQyIsICAiVEQiLCAgIlRGIiwgICJURyIsICAiVEgiLCAgIlRKIiwKKyAgICAgICAgICAgICAgICAiVEsiLCAgIlRMIiwgICJUTSIsICAiVE4iLCAgIlRPIiwgICJUUiIsICAiVFQiLCAgIlRWIiwKKyAgICAgICAgICAgICAgICAiVFciLCAgIlRaIiwgICJVQSIsICAiVUciLCAgIlVNIiwgICJVUyIsICAiVVkiLCAgIlVaIiwKKyAgICAgICAgICAgICAgICAiVkEiLCAgIlZDIiwgICJWRSIsICAiVkciLCAgIlZJIiwgICJWTiIsICAiVlUiLCAgIldGIiwKKyAgICAgICAgICAgICAgICAiV1MiLCAgIllFIiwgICJZVCIsICAiWVUiLCAgIlpBIiwgICJaTSIsICAiWlciLCAgCisgICAgICAgICAgICB9OyAgCisKKyAgICAgICAgICAgIC8qIHRoaXMgdGFibGUgaXMgdXNlZCBmb3IgMyBsZXR0ZXIgY29kZXMgKi8KKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBPYnNvbGV0ZUNvdW50cmllcyA9IHsKKyAgICAgICAgICAgICAgICAiRlgiLCAgIlJPIiwgICJUUCIsICAiWlIiLCAgLyogb2Jzb2xldGUgY291bnRyeSBjb2RlcyAqLyAgICAgIAorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nW10gdGVtcERlcHJlY2F0ZWRDb3VudHJpZXMgPSB7CisgICAgICAgICAgICAgICAiQlUiLCAiRFkiLCAiRlgiLCAiSFYiLCAiTkgiLCAiUkgiLCAiVFAiLCAiWVUiLCAiWlIiIC8qIGRlcHJlY2F0ZWQgY291bnRyeSBsaXN0ICovCisgICAgICAgICAgICB9OworICAgICAgICAgICAgU3RyaW5nW10gdGVtcFJlcGxhY2VtZW50Q291bnRyaWVzID0geworICAgICAgICAgICAvKiAgIkJVIiwgIkRZIiwgIkZYIiwgIkhWIiwgIk5IIiwgIlJIIiwgIlRQIiwgIllVIiwgIlpSIiAqLworICAgICAgICAgICAgICAgIk1NIiwgIkJKIiwgIkZSIiwgIkJGIiwgIlZVIiwgIlpXIiwgIlRMIiwgIkNTIiwgIkNEIiwgICAvKiByZXBsYWNlbWVudCBjb3VudHJ5IGNvZGVzICovICAgICAgCisgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgLyogVGhpcyBsaXN0IE1VU1QgY29udGFpbiBhIHRocmVlLWxldHRlciBjb2RlIGZvciBldmVyeSB0d28tbGV0dGVyIGNvZGUgaW4KKyAgICAgICAgICAgICAgIHRoZSBhYm92ZSBsaXN0LCBhbmQgdGhleSBNVVNUIGJlIGxpc3RlZCBpbiB0aGUgc2FtZSBvcmRlciEgKi8KKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBDb3VudHJpZXMzID0geworICAgICAgICAgICAgICAgIC8qIkFEIiwgICJBRSIsICAiQUYiLCAgIkFHIiwgICJBSSIsICAiQUwiLCAgIkFNIiwgICJBTiIsICAgICAqLworICAgICAgICAgICAgICAgICJBTkQiLCAiQVJFIiwgIkFGRyIsICJBVEciLCAiQUlBIiwgIkFMQiIsICJBUk0iLCAiQU5UIiwKKyAgICAgICAgICAgICAgICAvKiJBTyIsICAiQVEiLCAgIkFSIiwgICJBUyIsICAiQVQiLCAgIkFVIiwgICJBVyIsICAiQVoiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQUdPIiwgIkFUQSIsICJBUkciLCAiQVNNIiwgIkFVVCIsICJBVVMiLCAiQUJXIiwgIkFaRSIsCisgICAgICAgICAgICAgICAgLyoiQkEiLCAgIkJCIiwgICJCRCIsICAiQkUiLCAgIkJGIiwgICJCRyIsICAiQkgiLCAgIkJJIiwgICAgICovCisgICAgICAgICAgICAgICAgIkJJSCIsICJCUkIiLCAiQkdEIiwgIkJFTCIsICJCRkEiLCAiQkdSIiwgIkJIUiIsICJCREkiLAorICAgICAgICAgICAgICAgIC8qIkJKIiwgICJCTSIsICAiQk4iLCAgIkJPIiwgICJCUiIsICAiQlMiLCAgIkJUIiwgICJCViIsICAgICAqLworICAgICAgICAgICAgICAgICJCRU4iLCAiQk1VIiwgIkJSTiIsICJCT0wiLCAiQlJBIiwgIkJIUyIsICJCVE4iLCAiQlZUIiwKKyAgICAgICAgICAgICAgICAvKiJCVyIsICAiQlkiLCAgIkJaIiwgICJDQSIsICAiQ0MiLCAgIkNEIiwgICJDRiIsICAiQ0ciLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQldBIiwgIkJMUiIsICJCTFoiLCAiQ0FOIiwgIkNDSyIsICJDT0QiLCAiQ0FGIiwgIkNPRyIsCisgICAgICAgICAgICAgICAgLyoiQ0giLCAgIkNJIiwgICJDSyIsICAiQ0wiLCAgIkNNIiwgICJDTiIsICAiQ08iLCAgIkNSIiwgICAgICovCisgICAgICAgICAgICAgICAgIkNIRSIsICJDSVYiLCAiQ09LIiwgIkNITCIsICJDTVIiLCAiQ0hOIiwgIkNPTCIsICJDUkkiLAorICAgICAgICAgICAgICAgIC8qIkNVIiwgICJDViIsICAiQ1giLCAgIkNZIiwgICJDWiIsICAiREUiLCAgIkRKIiwgICJESyIsICAgICAqLworICAgICAgICAgICAgICAgICJDVUIiLCAiQ1BWIiwgIkNYUiIsICJDWVAiLCAiQ1pFIiwgIkRFVSIsICJESkkiLCAiRE5LIiwKKyAgICAgICAgICAgICAgICAvKiJETSIsICAiRE8iLCAgIkRaIiwgICJFQyIsICAiRUUiLCAgIkVHIiwgICJFSCIsICAiRVIiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiRE1BIiwgIkRPTSIsICJEWkEiLCAiRUNVIiwgIkVTVCIsICJFR1kiLCAiRVNIIiwgIkVSSSIsCisgICAgICAgICAgICAgICAgLyoiRVMiLCAgIkVUIiwgICJGSSIsICAiRkoiLCAgIkZLIiwgICJGTSIsICAiRk8iLCAgIkZSIiwgICAgICovCisgICAgICAgICAgICAgICAgIkVTUCIsICJFVEgiLCAiRklOIiwgIkZKSSIsICJGTEsiLCAiRlNNIiwgIkZSTyIsICJGUkEiLAorICAgICAgICAgICAgICAgIC8qIkdBIiwgICJHQiIsICAiR0QiLCAgIkdFIiwgICJHRiIsICAiR0giLCAgIkdJIiwgICJHTCIsICAgICAqLworICAgICAgICAgICAgICAgICJHQUIiLCAiR0JSIiwgIkdSRCIsICJHRU8iLCAiR1VGIiwgIkdIQSIsICJHSUIiLCAiR1JMIiwKKyAgICAgICAgICAgICAgICAvKiJHTSIsICAiR04iLCAgIkdQIiwgICJHUSIsICAiR1IiLCAgIkdTIiwgICJHVCIsICAiR1UiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiR01CIiwgIkdJTiIsICJHTFAiLCAiR05RIiwgIkdSQyIsICJTR1MiLCAiR1RNIiwgIkdVTSIsCisgICAgICAgICAgICAgICAgLyoiR1ciLCAgIkdZIiwgICJISyIsICAiSE0iLCAgIkhOIiwgICJIUiIsICAiSFQiLCAgIkhVIiwgICAgICovCisgICAgICAgICAgICAgICAgIkdOQiIsICJHVVkiLCAiSEtHIiwgIkhNRCIsICJITkQiLCAiSFJWIiwgIkhUSSIsICJIVU4iLAorICAgICAgICAgICAgICAgIC8qIklEIiwgICJJRSIsICAiSUwiLCAgIklOIiwgICJJTyIsICAiSVEiLCAgIklSIiwgICJJUyIsICAgICAqLworICAgICAgICAgICAgICAgICJJRE4iLCAiSVJMIiwgIklTUiIsICJJTkQiLCAiSU9UIiwgIklSUSIsICJJUk4iLCAiSVNMIiwKKyAgICAgICAgICAgICAgICAvKiJJVCIsICAiSk0iLCAgIkpPIiwgICJKUCIsICAiS0UiLCAgIktHIiwgICJLSCIsICAiS0kiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiSVRBIiwgIkpBTSIsICJKT1IiLCAiSlBOIiwgIktFTiIsICJLR1oiLCAiS0hNIiwgIktJUiIsCisgICAgICAgICAgICAgICAgLyoiS00iLCAgIktOIiwgICJLUCIsICAiS1IiLCAgIktXIiwgICJLWSIsICAiS1oiLCAgIkxBIiwgICAgICovCisgICAgICAgICAgICAgICAgIkNPTSIsICJLTkEiLCAiUFJLIiwgIktPUiIsICJLV1QiLCAiQ1lNIiwgIktBWiIsICJMQU8iLAorICAgICAgICAgICAgICAgIC8qIkxCIiwgICJMQyIsICAiTEkiLCAgIkxLIiwgICJMUiIsICAiTFMiLCAgIkxUIiwgICJMVSIsICAgICAqLworICAgICAgICAgICAgICAgICJMQk4iLCAiTENBIiwgIkxJRSIsICJMS0EiLCAiTEJSIiwgIkxTTyIsICJMVFUiLCAiTFVYIiwKKyAgICAgICAgICAgICAgICAvKiJMViIsICAiTFkiLCAgIk1BIiwgICJNQyIsICAiTUQiLCAgIk1HIiwgICJNSCIsICAiTUsiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiTFZBIiwgIkxCWSIsICJNQVIiLCAiTUNPIiwgIk1EQSIsICJNREciLCAiTUhMIiwgIk1LRCIsCisgICAgICAgICAgICAgICAgLyoiTUwiLCAgIk1NIiwgICJNTiIsICAiTU8iLCAgIk1QIiwgICJNUSIsICAiTVIiLCAgIk1TIiwgICAgICovCisgICAgICAgICAgICAgICAgIk1MSSIsICJNTVIiLCAiTU5HIiwgIk1BQyIsICJNTlAiLCAiTVRRIiwgIk1SVCIsICJNU1IiLAorICAgICAgICAgICAgICAgIC8qIk1UIiwgICJNVSIsICAiTVYiLCAgIk1XIiwgICJNWCIsICAiTVkiLCAgIk1aIiwgICJOQSIsICAgICAqLworICAgICAgICAgICAgICAgICJNTFQiLCAiTVVTIiwgIk1EViIsICJNV0kiLCAiTUVYIiwgIk1ZUyIsICJNT1oiLCAiTkFNIiwKKyAgICAgICAgICAgICAgICAvKiJOQyIsICAiTkUiLCAgIk5GIiwgICJORyIsICAiTkkiLCAgIk5MIiwgICJOTyIsICAiTlAiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiTkNMIiwgIk5FUiIsICJORksiLCAiTkdBIiwgIk5JQyIsICJOTEQiLCAiTk9SIiwgIk5QTCIsCisgICAgICAgICAgICAgICAgLyoiTlIiLCAgIk5VIiwgICJOWiIsICAiT00iLCAgIlBBIiwgICJQRSIsICAiUEYiLCAgIlBHIiwgICAgICovCisgICAgICAgICAgICAgICAgIk5SVSIsICJOSVUiLCAiTlpMIiwgIk9NTiIsICJQQU4iLCAiUEVSIiwgIlBZRiIsICJQTkciLAorICAgICAgICAgICAgICAgIC8qIlBIIiwgICJQSyIsICAiUEwiLCAgIlBNIiwgICJQTiIsICAiUFIiLCAgIlBTIiwgICJQVCIsICAgICAqLworICAgICAgICAgICAgICAgICJQSEwiLCAiUEFLIiwgIlBPTCIsICJTUE0iLCAiUENOIiwgIlBSSSIsICJQU0UiLCAiUFJUIiwKKyAgICAgICAgICAgICAgICAvKiJQVyIsICAiUFkiLCAgIlFBIiwgICJSRSIsICAiUk8iLCAgIlJVIiwgICJSVyIsICAiU0EiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiUExXIiwgIlBSWSIsICJRQVQiLCAiUkVVIiwgIlJPVSIsICJSVVMiLCAiUldBIiwgIlNBVSIsCisgICAgICAgICAgICAgICAgLyoiU0IiLCAgIlNDIiwgICJTRCIsICAiU0UiLCAgIlNHIiwgICJTSCIsICAiU0kiLCAgIlNKIiwgICAgICovCisgICAgICAgICAgICAgICAgIlNMQiIsICJTWUMiLCAiU0ROIiwgIlNXRSIsICJTR1AiLCAiU0hOIiwgIlNWTiIsICJTSk0iLAorICAgICAgICAgICAgICAgIC8qIlNLIiwgICJTTCIsICAiU00iLCAgIlNOIiwgICJTTyIsICAiU1IiLCAgIlNUIiwgICJTViIsICAgICAqLworICAgICAgICAgICAgICAgICJTVksiLCAiU0xFIiwgIlNNUiIsICJTRU4iLCAiU09NIiwgIlNVUiIsICJTVFAiLCAiU0xWIiwKKyAgICAgICAgICAgICAgICAvKiJTWSIsICAiU1oiLCAgIlRDIiwgICJURCIsICAiVEYiLCAgIlRHIiwgICJUSCIsICAiVEoiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiU1lSIiwgIlNXWiIsICJUQ0EiLCAiVENEIiwgIkFURiIsICJUR08iLCAiVEhBIiwgIlRKSyIsCisgICAgICAgICAgICAgICAgLyoiVEsiLCAgIlRMIiwgICJUTSIsICAiVE4iLCAgIlRPIiwgICJUUiIsICAiVFQiLCAgIlRWIiwgICAgICovCisgICAgICAgICAgICAgICAgIlRLTCIsICJUTFMiLCAiVEtNIiwgIlRVTiIsICJUT04iLCAiVFVSIiwgIlRUTyIsICJUVVYiLAorICAgICAgICAgICAgICAgIC8qIlRXIiwgICJUWiIsICAiVUEiLCAgIlVHIiwgICJVTSIsICAiVVMiLCAgIlVZIiwgICJVWiIsICAgICAqLworICAgICAgICAgICAgICAgICJUV04iLCAiVFpBIiwgIlVLUiIsICJVR0EiLCAiVU1JIiwgIlVTQSIsICJVUlkiLCAiVVpCIiwKKyAgICAgICAgICAgICAgICAvKiJWQSIsICAiVkMiLCAgIlZFIiwgICJWRyIsICAiVkkiLCAgIlZOIiwgICJWVSIsICAiV0YiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiVkFUIiwgIlZDVCIsICJWRU4iLCAiVkdCIiwgIlZJUiIsICJWTk0iLCAiVlVUIiwgIldMRiIsCisgICAgICAgICAgICAgICAgLyoiV1MiLCAgIllFIiwgICJZVCIsICAiWVUiLCAgIlpBIiwgICJaTSIsICAiWlciLCAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgIldTTSIsICJZRU0iLCAiTVlUIiwgIllVRyIsICJaQUYiLCAiWk1CIiwgIlpXRSIsCisgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgU3RyaW5nW10gdGVtcE9ic29sZXRlQ291bnRyaWVzMyA9IHsKKyAgICAgICAgICAgICAgICAvKiJGWCIsICAiUk8iLCAgIlRQIiwgICJaUiIsICAgKi8KKyAgICAgICAgICAgICAgICAiRlhYIiwgIlJPTSIsICJUTVAiLCAiWkFSIiwgICAgCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKFVMb2NhbGUuY2xhc3MpIHsKKyAgICAgICAgICAgICAgICBpZiAoX2NvdW50cmllcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIF9jb3VudHJpZXMgPSB0ZW1wQ291bnRyaWVzOworICAgICAgICAgICAgICAgICAgICBfZGVwcmVjYXRlZENvdW50cmllcyA9IHRlbXBEZXByZWNhdGVkQ291bnRyaWVzOworICAgICAgICAgICAgICAgICAgICBfcmVwbGFjZW1lbnRDb3VudHJpZXMgPSB0ZW1wUmVwbGFjZW1lbnRDb3VudHJpZXM7CisgICAgICAgICAgICAgICAgICAgIF9vYnNvbGV0ZUNvdW50cmllcyA9IHRlbXBPYnNvbGV0ZUNvdW50cmllczsKKyAgICAgICAgICAgICAgICAgICAgX2NvdW50cmllczMgPSB0ZW1wQ291bnRyaWVzMzsKKyAgICAgICAgICAgICAgICAgICAgX29ic29sZXRlQ291bnRyaWVzMyA9IHRlbXBPYnNvbGV0ZUNvdW50cmllczM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW11bXSBfdmFyaWFudHNUb0tleXdvcmRzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBpbml0VmFyaWFudHNUYWJsZSgpIHsKKyAgICAgICAgaWYgKF92YXJpYW50c1RvS2V5d29yZHMgPT0gbnVsbCkgeworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBUaGlzIHRhYmxlIGxpc3RzIHBhaXJzIG9mIGxvY2FsZSBpZHMgZm9yIGNhbm9uaWNhbGl6YXRpb24uICBUaGUKKyAgICAgICAgICAgICAqIFRoZSBmaXJzdCBpdGVtIGlzIHRoZSBub3JtYWxpemVkIGlkLCB0aGUgc2Vjb25kIGl0ZW0gaXMgdGhlCisgICAgICAgICAgICAgKiBjYW5vbmljYWxpemVkIGlkLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBTdHJpbmdbXVtdIHRlbXBWYXJpYW50c1RvS2V5d29yZHMgPSB7CisvLyAgICAgICAgICAgICAgeyBFTVBUWV9TVFJJTkcsICAgICAiZW5fVVNfUE9TSVgiLCBudWxsLCBudWxsIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgIkMiLCAgICAgICAgICAgICAgImVuX1VTX1BPU0lYIiwgbnVsbCwgbnVsbCB9LCAvKiBQT1NJWCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiYXJ0X0xPSkJBTiIsICAgICAiamJvIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJhel9BWl9DWVJMIiwgICAgICJhel9DeXJsX0FaIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJhel9BWl9MQVROIiwgICAgICJhel9MYXRuX0FaIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJjYV9FU19QUkVFVVJPIiwgICJjYV9FUyIsICJjdXJyZW5jeSIsICJFU1AiIH0sCisgICAgICAgICAgICAgICAgeyAiY2VsX0dBVUxJU0giLCAgICAiY2VsX19HQVVMSVNIIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJkZV8xOTAxIiwgICAgICAgICJkZV9fMTkwMSIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiZGVfMTkwNiIsICAgICAgICAiZGVfXzE5MDYiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImRlX19QSE9ORUJPT0siLCAgImRlIiwgImNvbGxhdGlvbiIsICJwaG9uZWJvb2siIH0sCisgICAgICAgICAgICAgICAgeyAiZGVfQVRfUFJFRVVSTyIsICAiZGVfQVQiLCAiY3VycmVuY3kiLCAiQVRTIiB9LAorICAgICAgICAgICAgICAgIHsgImRlX0RFX1BSRUVVUk8iLCAgImRlX0RFIiwgImN1cnJlbmN5IiwgIkRFTSIgfSwKKyAgICAgICAgICAgICAgICB7ICJkZV9MVV9QUkVFVVJPIiwgICJkZV9MVSIsICJjdXJyZW5jeSIsICJFVVIiIH0sCisgICAgICAgICAgICAgICAgeyAiZWxfR1JfUFJFRVVSTyIsICAiZWxfR1IiLCAiY3VycmVuY3kiLCAiR1JEIiB9LAorICAgICAgICAgICAgICAgIHsgImVuX0JPT05UIiwgICAgICAgImVuX19CT09OVCIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiZW5fU0NPVVNFIiwgICAgICAiZW5fX1NDT1VTRSIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiZW5fQkVfUFJFRVVSTyIsICAiZW5fQkUiLCAiY3VycmVuY3kiLCAiQkVGIiB9LAorICAgICAgICAgICAgICAgIHsgImVuX0lFX1BSRUVVUk8iLCAgImVuX0lFIiwgImN1cnJlbmN5IiwgIklFUCIgfSwKKyAgICAgICAgICAgICAgICB7ICJlc19fVFJBRElUSU9OQUwiLCAiZXMiLCAiY29sbGF0aW9uIiwgInRyYWRpdGlvbmFsIiB9LAorICAgICAgICAgICAgICAgIHsgImVzX0VTX1BSRUVVUk8iLCAgImVzX0VTIiwgImN1cnJlbmN5IiwgIkVTUCIgfSwKKyAgICAgICAgICAgICAgICB7ICJldV9FU19QUkVFVVJPIiwgICJldV9FUyIsICJjdXJyZW5jeSIsICJFU1AiIH0sCisgICAgICAgICAgICAgICAgeyAiZmlfRklfUFJFRVVSTyIsICAiZmlfRkkiLCAiY3VycmVuY3kiLCAiRklNIiB9LAorICAgICAgICAgICAgICAgIHsgImZyX0JFX1BSRUVVUk8iLCAgImZyX0JFIiwgImN1cnJlbmN5IiwgIkJFRiIgfSwKKyAgICAgICAgICAgICAgICB7ICJmcl9GUl9QUkVFVVJPIiwgICJmcl9GUiIsICJjdXJyZW5jeSIsICJGUkYiIH0sCisgICAgICAgICAgICAgICAgeyAiZnJfTFVfUFJFRVVSTyIsICAiZnJfTFUiLCAiY3VycmVuY3kiLCAiTFVGIiB9LAorICAgICAgICAgICAgICAgIHsgImdhX0lFX1BSRUVVUk8iLCAgImdhX0lFIiwgImN1cnJlbmN5IiwgIklFUCIgfSwKKyAgICAgICAgICAgICAgICB7ICJnbF9FU19QUkVFVVJPIiwgICJnbF9FUyIsICJjdXJyZW5jeSIsICJFU1AiIH0sCisgICAgICAgICAgICAgICAgeyAiaGlfX0RJUkVDVCIsICAgICAiaGkiLCAiY29sbGF0aW9uIiwgImRpcmVjdCIgfSwKKyAgICAgICAgICAgICAgICB7ICJpdF9JVF9QUkVFVVJPIiwgICJpdF9JVCIsICJjdXJyZW5jeSIsICJJVEwiIH0sCisgICAgICAgICAgICAgICAgeyAiamFfSlBfVFJBRElUSU9OQUwiLCAiamFfSlAiLCAiY2FsZW5kYXIiLCAiamFwYW5lc2UiIH0sCisvLyAgICAgICAgICAgICAgeyAibmJfTk9fTlkiLCAgICAgICAibm5fTk8iLCBudWxsLCBudWxsIH0sCisgICAgICAgICAgICAgICAgeyAibmxfQkVfUFJFRVVSTyIsICAibmxfQkUiLCAiY3VycmVuY3kiLCAiQkVGIiB9LAorICAgICAgICAgICAgICAgIHsgIm5sX05MX1BSRUVVUk8iLCAgIm5sX05MIiwgImN1cnJlbmN5IiwgIk5MRyIgfSwKKyAgICAgICAgICAgICAgICB7ICJwdF9QVF9QUkVFVVJPIiwgICJwdF9QVCIsICJjdXJyZW5jeSIsICJQVEUiIH0sCisgICAgICAgICAgICAgICAgeyAic2xfUk9aQUoiLCAgICAgICAic2xfX1JPWkFKIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJzcl9TUF9DWVJMIiwgICAgICJzcl9DeXJsX0NTIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJzcl9TUF9MQVROIiwgICAgICJzcl9MYXRuX0NTIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJzcl9ZVV9DWVJJTExJQyIsICJzcl9DeXJsX0NTIiwgbnVsbCwgbnVsbCB9LCAvKiBMaW51eCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAidXpfVVpfQ1lSTCIsICAgICAidXpfQ3lybF9VWiIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAidXpfVVpfTEFUTiIsICAgICAidXpfTGF0bl9VWiIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfQ0hTIiwgICAgICAgICAiemhfSGFucyIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfQ0hUIiwgICAgICAgICAiemhfSGFudCIsIG51bGwsIG51bGwgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfR0FOIiwgICAgICAgICAiemhfX0dBTiIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfR1VPWVUiLCAgICAgICAiemgiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX0hBS0tBIiwgICAgICAgInpoX19IQUtLQSIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfTUlOIiwgICAgICAgICAiemhfX01JTiIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfTUlOX05BTiIsICAgICAiemhfX01JTk5BTiIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfV1VVIiwgICAgICAgICAiemhfX1dVVSIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfWElBTkciLCAgICAgICAiemhfX1hJQU5HIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9ZVUUiLCAgICAgICAgICJ6aF9fWVVFIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ0aF9USF9UUkFESVRJT05BTCIsICJ0aF9USCIsICJjYWxlbmRhciIsICJidWRkaGlzdCIgfSwKKyAgICAgICAgICAgICAgICB7ICJ6aF9UV19TVFJPS0UiLCAgICJ6aF9UVyIsICJjb2xsYXRpb24iLCAic3Ryb2tlIiB9LAorICAgICAgICAgICAgICAgIHsgInpoX19QSU5ZSU4iLCAgICAgInpoIiwgImNvbGxhdGlvbiIsICJwaW55aW4iIH0KKyAgICAgICAgICAgIH07CisgICAgCisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKFVMb2NhbGUuY2xhc3MpIHsKKyAgICAgICAgICAgICAgICBpZiAoX3ZhcmlhbnRzVG9LZXl3b3JkcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIF92YXJpYW50c1RvS2V5d29yZHMgPSB0ZW1wVmFyaWFudHNUb0tleXdvcmRzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFByaXZhdGUgY29uc3RydWN0b3IgdXNlZCBieSBzdGF0aWMgaW5pdGlhbGl6ZXJzLgorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZShTdHJpbmcgbG9jYWxlSUQsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcy5sb2NhbGVJRCA9IGxvY2FsZUlEOworICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBVTG9jYWxlIG9iamVjdCBmcm9tIGEge0BsaW5rIGphdmEudXRpbC5Mb2NhbGV9LgorICAgICAqIEBwYXJhbSBsb2MgYSBKREsgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlKExvY2FsZSBsb2MpIHsKKyAgICAgICAgdGhpcy5sb2NhbGVJRCA9IGdldE5hbWUobG9jLnRvU3RyaW5nKCkpOworICAgICAgICB0aGlzLmxvY2FsZSA9IGxvYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBVTG9jYWxlIG9iamVjdCBmb3IgYSB7QGxpbmsgamF2YS51dGlsLkxvY2FsZX0uCisgICAgICogVGhlIFVMb2NhbGUgaXMgY2Fub25pY2FsaXplZC4KKyAgICAgKiBAcGFyYW0gbG9jIGEgSkRLIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBmb3JMb2NhbGUoTG9jYWxlIGxvYykgeworICAgICAgICBpZiAobG9jID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIFVMb2NhbGUgcmVzdWx0ID0gKFVMb2NhbGUpQ0FDSEUuZ2V0KGxvYyk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCAmJiBkZWZhdWx0VUxvY2FsZSAhPSBudWxsICYmIGxvYyA9PSBkZWZhdWx0VUxvY2FsZS5sb2NhbGUpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGRlZmF1bHRVTG9jYWxlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFVMb2NhbGUobG9jLnRvU3RyaW5nKCksIGxvYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBVTG9jYWxlIGZyb20gYSBSRkMgMzA2NiBsb2NhbGUgSUQuIFRoZSBsb2NhbGUgSUQgY29uc2lzdHMKKyAgICAgKiBvZiBvcHRpb25hbCBsYW5ndWFnZSwgc2NyaXB0LCBjb3VudHJ5LCBhbmQgdmFyaWFudCBmaWVsZHMgaW4gdGhhdCBvcmRlciwgCisgICAgICogc2VwYXJhdGVkIGJ5IHVuZGVyc2NvcmVzLCBmb2xsb3dlZCBieSBhbiBvcHRpb25hbCBrZXl3b3JkIGxpc3QuICBUaGUKKyAgICAgKiBzY3JpcHQsIGlmIHByZXNlbnQsIGlzIGZvdXIgY2hhcmFjdGVycyBsb25nLS0gdGhpcyBkaXN0aW5ndWlzaGVzIGl0CisgICAgICogZnJvbSBhIGNvdW50cnkgY29kZSwgd2hpY2ggaXMgdHdvIGNoYXJhY3RlcnMgbG9uZy4gIE90aGVyIGZpZWxkcworICAgICAqIGFyZSBkaXN0aW5ndWlzaGVkIGJ5IHBvc2l0aW9uIGFzIGluZGljYXRlZCBieSB0aGUgdW5kZXJzY29yZXMuICBUaGUKKyAgICAgKiBzdGFydCBvZiB0aGUga2V5d29yZCBsaXN0IGlzIGluZGljYXRlZCBieSAnQCcsIGFuZCBjb25zaXN0cyBvZiBvbmUKKyAgICAgKiBvciBtb3JlIGtleXdvcmQvdmFsdWUgcGFpcnMgc2VwYXJhdGVkIGJ5IGNvbW1hcy4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIGNvbnN0cnVjdG9yIGRvZXMgbm90IGNhbm9uaWNhbGl6ZSB0aGUgbG9jYWxlSUQuCisgICAgICogCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbG9jYWxlLCBlLmc6CisgICAgICogImVuX1VTIiwgInN5X0N5cmxfWVUiLCAiemhfX3BpbnlpbiIsICJlc19FU0BjdXJyZW5jeT1FVVIsY29sbGF0aW9uPXRyYWRpdGlvbmFsIgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLyAKKyAgICBwdWJsaWMgVUxvY2FsZShTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgdGhpcy5sb2NhbGVJRCA9IGdldE5hbWUobG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJsb2FkIG9mIFVMb2NhbGUoU3RyaW5nLCBTdHJpbmcsIFN0cmluZykgZm9yIAorICAgICAqIGNvbXBhdGliaWxpdHkgd2l0aCBqYXZhLnV0aWwuTG9jYWxlLgorICAgICAqIEBzZWUgI1VMb2NhbGUoU3RyaW5nLCBTdHJpbmcsIFN0cmluZykKKyAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZShTdHJpbmcgYSwgU3RyaW5nIGIpIHsKKyAgICAgICAgdGhpcyhhLCBiLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBVTG9jYWxlIGZyb20gYSBsb2NhbGVJRCBjb25zdHJ1Y3RlZCBmcm9tIHRoZSB0aHJlZSAnZmllbGRzJyBhLCBiLCBhbmQgYy4gIFRoZXNlCisgICAgICogZmllbGRzIGFyZSBjb25jYXRlbmF0ZWQgdXNpbmcgdW5kZXJzY29yZXMgdG8gZm9ybSBhIGxvY2FsZUlEIG9mCisgICAgICogdGhlIGZvcm0gYV9iX2MsIHdoaWNoIGlzIHRoZW4gaGFuZGxlZCBsaWtlIHRoZSBsb2NhbGVJRCBwYXNzZWQKKyAgICAgKiB0byA8Y29kZT5VTG9jYWxlKFN0cmluZyBsb2NhbGVJRCk8L2NvZGU+LiAgCisgICAgICoKKyAgICAgKiA8cD5KYXZhIGxvY2FsZSBzdHJpbmdzIGNvbnNpc3Rpbmcgb2YgbGFuZ3VhZ2UsIGNvdW50cnksIGFuZAorICAgICAqIHZhcmlhbnQgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoaXMgZm9ybSwgc2luY2UgdGhlIGNvdW50cnkgY29kZQorICAgICAqIChiZWluZyBzaG9ydGVyIHRoYW4gZm91ciBsZXR0ZXJzIGxvbmcpIHdpbGwgbm90IGJlIGludGVycHJldGVkCisgICAgICogYXMgYSBzY3JpcHQgY29kZS4gIElmIGEgc2NyaXB0IGNvZGUgaXMgcHJlc2VudCwgdGhlIGZpbmFsCisgICAgICogYXJndW1lbnQgKCdjJykgd2lsbCBiZSBpbnRlcnByZXRlZCBhcyB0aGUgY291bnRyeSBjb2RlLiAgSXQgaXMKKyAgICAgKiByZWNvbW1lbmRlZCB0aGF0IHRoaXMgY29uc3RydWN0b3Igb25seSBiZSB1c2VkIHRvIGVhc2UgcG9ydGluZywKKyAgICAgKiBhbmQgdGhhdCBjbGllbnRzIGluc3RlYWQgdXNlIHRoZSBzaW5nbGUtYXJndW1lbnQgY29uc3RydWN0b3IKKyAgICAgKiB3aGVuIGNvbnN0cnVjdGluZyBhIFVMb2NhbGUgZnJvbSBhIGxvY2FsZUlELgorICAgICAqIEBwYXJhbSBhIGZpcnN0IGNvbXBvbmVudCBvZiB0aGUgbG9jYWxlIGlkCisgICAgICogQHBhcmFtIGIgc2Vjb25kIGNvbXBvbmVudCBvZiB0aGUgbG9jYWxlIGlkCisgICAgICogQHBhcmFtIGMgdGhpcmQgY29tcG9uZW50IG9mIHRoZSBsb2NhbGUgaWQKKyAgICAgKiBAc2VlICNVTG9jYWxlKFN0cmluZykKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAgCisgICAgICovCisgICAgcHVibGljIFVMb2NhbGUoU3RyaW5nIGEsIFN0cmluZyBiLCBTdHJpbmcgYykgeworICAgICAgICBsb2NhbGVJRCA9IGdldE5hbWUobHNjdlRvSUQoYSwgYiwgYywgRU1QVFlfU1RSSU5HKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVUxvY2FsZSBmcm9tIHRoZSBpZCBieSBmaXJzdCBjYW5vbmljYWxpemluZyB0aGUgaWQuCisgICAgICogQHBhcmFtIG5vbkNhbm9uaWNhbElEIHRoZSBsb2NhbGUgaWQgdG8gY2Fub25pY2FsaXplCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlIGNyZWF0ZWQgZnJvbSB0aGUgY2Fub25pY2FsIHZlcnNpb24gb2YgdGhlIElELgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBjcmVhdGVDYW5vbmljYWwoU3RyaW5nIG5vbkNhbm9uaWNhbElEKSB7CisgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShjYW5vbmljYWxpemUobm9uQ2Fub25pY2FsSUQpLCAoTG9jYWxlKW51bGwpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBsc2N2VG9JRChTdHJpbmcgbGFuZywgU3RyaW5nIHNjcmlwdCwgU3RyaW5nIGNvdW50cnksIFN0cmluZyB2YXJpYW50KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgIAorICAgICAgICBpZiAobGFuZyAhPSBudWxsICYmIGxhbmcubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKGxhbmcpOworICAgICAgICB9CisgICAgICAgIGlmIChzY3JpcHQgIT0gbnVsbCAmJiBzY3JpcHQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKFVOREVSU0NPUkUpOworICAgICAgICAgICAgYnVmLmFwcGVuZChzY3JpcHQpOworICAgICAgICB9CisgICAgICAgIGlmIChjb3VudHJ5ICE9IG51bGwgJiYgY291bnRyeS5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoVU5ERVJTQ09SRSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGNvdW50cnkpOworICAgICAgICB9CisgICAgICAgIGlmICh2YXJpYW50ICE9IG51bGwgJiYgdmFyaWFudC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGlmIChjb3VudHJ5ID09IG51bGwgfHwgY291bnRyeS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChVTkRFUlNDT1JFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoVU5ERVJTQ09SRSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKHZhcmlhbnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IHRoaXMgVUxvY2FsZSBvYmplY3QgdG8gYSB7QGxpbmsgamF2YS51dGlsLkxvY2FsZX0uCisgICAgICogQHJldHVybiBhIEpESyBsb2NhbGUgdGhhdCBlaXRoZXIgZXhhY3RseSByZXByZXNlbnRzIHRoaXMgb2JqZWN0CisgICAgICogb3IgaXMgdGhlIGNsb3Nlc3QgYXBwcm94aW1hdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgTG9jYWxlIHRvTG9jYWxlKCkgeworICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsb2NhbGUgPSB0b0xvY2FsZShsb2NhbGVJRCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxvY2FsZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgTG9jYWxlIHRvTG9jYWxlKFN0cmluZyBsb2NhbGVJRCkgeworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0TGFuZ3VhZ2VTY3JpcHRDb3VudHJ5VmFyaWFudCgpOworICAgICAgICByZXR1cm4gbmV3IExvY2FsZShuYW1lc1swXSwgbmFtZXNbMl0sIG5hbWVzWzNdKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogS2VlcCBvdXIgb3duIGRlZmF1bHQgVUxvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBVTG9jYWxlIGRlZmF1bHRVTG9jYWxlOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBkZWZhdWx0IFVMb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBnZXREZWZhdWx0KCkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKFVMb2NhbGUuY2xhc3MpIHsKKyAgICAgICAgICAgIExvY2FsZSBkZWZhdWx0TG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgICAgIGlmIChkZWZhdWx0VUxvY2FsZSA9PSBudWxsIHx8IGRlZmF1bHRVTG9jYWxlLnRvTG9jYWxlKCkgIT0gZGVmYXVsdExvY2FsZSkgeworICAgICAgICAgICAgICAgIGRlZmF1bHRVTG9jYWxlID0gbmV3IFVMb2NhbGUoZGVmYXVsdExvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdFVMb2NhbGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWZhdWx0IFVMb2NhbGUuICBUaGlzIGFsc28gc2V0cyB0aGUgZGVmYXVsdCBMb2NhbGUuCisgICAgICogSWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlIHdyaXRlIHBlcm1pc3Npb24gdG8gdGhlCisgICAgICogdXNlci5sYW5ndWFnZSBwcm9wZXJ0eSwgYSBzZWN1cml0eSBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24sCisgICAgICogYW5kIHRoZSBkZWZhdWx0IFVMb2NhbGUgd2lsbCByZW1haW4gdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSBuZXdMb2NhbGUgdGhlIG5ldyBkZWZhdWx0IGxvY2FsZQorICAgICAqIEB0aHJvd3MgU2VjdXJpdHlFeGNlcHRpb24KKyAgICAgKiAgICAgICAgaWYgYSBzZWN1cml0eSBtYW5hZ2VyIGV4aXN0cyBhbmQgaXRzCisgICAgICogICAgICAgIDxjb2RlPmNoZWNrUGVybWlzc2lvbjwvY29kZT4gbWV0aG9kIGRvZXNuJ3QgYWxsb3cgdGhlIG9wZXJhdGlvbi4KKyAgICAgKiBAdGhyb3dzIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIDxjb2RlPm5ld0xvY2FsZTwvY29kZT4gaXMgbnVsbAorICAgICAqIEBzZWUgU2VjdXJpdHlNYW5hZ2VyI2NoZWNrUGVybWlzc2lvbgorICAgICAqIEBzZWUgamF2YS51dGlsLlByb3BlcnR5UGVybWlzc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDMuMCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCB2b2lkIHNldERlZmF1bHQoVUxvY2FsZSBuZXdMb2NhbGUpeworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChuZXdMb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgICAgIGRlZmF1bHRVTG9jYWxlID0gbmV3TG9jYWxlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGZvciBjb21wYXRpYmlsaXR5IHdpdGggTG9jYWxlLS0gaW4gYWN0dWFsaXR5LCBzaW5jZSBVTG9jYWxlIGlzCisgICAgICogaW1tdXRhYmxlLCB0aGVyZSBpcyBubyByZWFzb24gdG8gY2xvbmUgaXQsIHNvIHRoaXMgQVBJIHJldHVybnMgJ3RoaXMnLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGhhc2hDb2RlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBsb2NhbGVJRC5oYXNoQ29kZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIG90aGVyIG9iamVjdCBpcyBhbm90aGVyIFVMb2NhbGUgd2l0aCB0aGUKKyAgICAgKiBzYW1lIGZ1bGwgbmFtZSwgb3IgaXMgYSBTdHJpbmcgbG9jYWxlSUQgdGhhdCBtYXRjaGVzIHRoZSBmdWxsIG5hbWUuCisgICAgICogTm90ZSB0aGF0IHNpbmNlIG5hbWVzIGFyZSBub3QgY2Fub25pY2FsaXplZCwgdHdvIFVMb2NhbGVzIHRoYXQKKyAgICAgKiBmdW5jdGlvbiBpZGVudGljYWxseSBtaWdodCBub3QgY29tcGFyZSBlcXVhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIExvY2FsZSBpcyBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIG9iamVjdC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAgCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgU3RyaW5nKSB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlSUQuZXF1YWxzKChTdHJpbmcpb2JqKTsgICAKKyAgICAgICAgfQorICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgVUxvY2FsZSkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZUlELmVxdWFscygoKFVMb2NhbGUpb2JqKS5sb2NhbGVJRCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgaW5zdGFsbGVkIGxvY2FsZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHVsb2NhbGVzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0gTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgICAgICAgICBVTG9jYWxlW10gdWwgPSBuZXcgVUxvY2FsZVtsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB1bFtpXSA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1bG9jYWxlcyA9IHVsOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoVUxvY2FsZVtdKXVsb2NhbGVzLmNsb25lKCk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIFVMb2NhbGVbXSB1bG9jYWxlczsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCAyLWxldHRlciBjb3VudHJ5IGNvZGVzIGRlZmluZWQgaW4gSVNPIDMxNjYuCisgICAgICogQ2FuIGJlIHVzZWQgdG8gY3JlYXRlIExvY2FsZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRJU09Db3VudHJpZXMoKSB7CisgICAgICAgIGluaXRDb3VudHJ5VGFibGVzKCk7CisgICAgICAgIHJldHVybiAoU3RyaW5nW10pX2NvdW50cmllcy5jbG9uZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCAyLWxldHRlciBsYW5ndWFnZSBjb2RlcyBkZWZpbmVkIGluIElTTyA2MzkuCisgICAgICogQ2FuIGJlIHVzZWQgdG8gY3JlYXRlIExvY2FsZXMuCisgICAgICogW05PVEU6ICBJU08gNjM5IGlzIG5vdCBhIHN0YWJsZSBzdGFuZGFyZC0tIHNvbWUgbGFuZ3VhZ2VzJyBjb2RlcyBoYXZlIGNoYW5nZWQuCisgICAgICogVGhlIGxpc3QgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGluY2x1ZGVzIGJvdGggdGhlIG5ldyBhbmQgdGhlIG9sZCBjb2RlcyBmb3IgdGhlCisgICAgICogbGFuZ3VhZ2VzIHdob3NlIGNvZGVzIGhhdmUgY2hhbmdlZC5dCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRJU09MYW5ndWFnZXMoKSB7CisgICAgICAgIGluaXRMYW5ndWFnZVRhYmxlcygpOworICAgICAgICByZXR1cm4gKFN0cmluZ1tdKV9sYW5ndWFnZXMuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsYW5ndWFnZSBjb2RlIGZvciB0aGlzIGxvY2FsZSwgd2hpY2ggd2lsbCBlaXRoZXIgYmUgdGhlIGVtcHR5IHN0cmluZworICAgICAqIG9yIGEgbG93ZXJjYXNlIElTTyA2MzkgY29kZS4KKyAgICAgKiBAc2VlICNnZXREaXNwbGF5TGFuZ3VhZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkgeworICAgICAgICByZXR1cm4gZ2V0TGFuZ3VhZ2UobG9jYWxlSUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsYW5ndWFnZSBjb2RlIGZvciB0aGUgbG9jYWxlIElELAorICAgICAqIHdoaWNoIHdpbGwgZWl0aGVyIGJlIHRoZSBlbXB0eSBzdHJpbmcKKyAgICAgKiBvciBhIGxvd2VyY2FzZSBJU08gNjM5IGNvZGUuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheUxhbmd1YWdlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoU3RyaW5nIGxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldExhbmd1YWdlKCk7CisgICAgfQorICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzY3JpcHQgY29kZSBmb3IgdGhpcyBsb2NhbGUsIHdoaWNoIG1pZ2h0IGJlIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheVNjcmlwdAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U2NyaXB0KCkgeworICAgICAgICByZXR1cm4gZ2V0U2NyaXB0KGxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzY3JpcHQgY29kZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUsIHdoaWNoIG1pZ2h0IGJlIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheVNjcmlwdAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFNjcmlwdChTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0U2NyaXB0KCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvdW50cnkvcmVnaW9uIGNvZGUgZm9yIHRoaXMgbG9jYWxlLCB3aGljaCB3aWxsIGVpdGhlciBiZSB0aGUgZW1wdHkgc3RyaW5nCisgICAgICogb3IgYW4gdXBwZXJjYXNlIElTTyAzMTY2IDItbGV0dGVyIGNvZGUuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheUNvdW50cnkKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldENvdW50cnkoKSB7CisgICAgICAgIHJldHVybiBnZXRDb3VudHJ5KGxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb3VudHJ5L3JlZ2lvbiBjb2RlIGZvciB0aGlzIGxvY2FsZSwgd2hpY2ggd2lsbCBlaXRoZXIgYmUgdGhlIGVtcHR5IHN0cmluZworICAgICAqIG9yIGFuIHVwcGVyY2FzZSBJU08gMzE2NiAyLWxldHRlciBjb2RlLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRAorICAgICAqIEBzZWUgI2dldERpc3BsYXlDb3VudHJ5CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0Q291bnRyeShTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0Q291bnRyeSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB2YXJpYW50IGNvZGUgZm9yIHRoaXMgbG9jYWxlLCB3aGljaCBtaWdodCBiZSB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAqIEBzZWUgI2dldERpc3BsYXlWYXJpYW50CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRWYXJpYW50KCkgeworICAgICAgICByZXR1cm4gZ2V0VmFyaWFudChsb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFyaWFudCBjb2RlIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSwgd2hpY2ggbWlnaHQgYmUgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgKiBAc2VlICNnZXREaXNwbGF5VmFyaWFudAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFZhcmlhbnQoU3RyaW5nIGxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldFZhcmlhbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBmYWxsYmFjayBsb2NhbGUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLCB3aGljaCBtaWdodCBiZSB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldEZhbGxiYWNrKFN0cmluZyBsb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gZ2V0RmFsbGJhY2tTdHJpbmcoZ2V0TmFtZShsb2NhbGVJRCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGZhbGxiYWNrIGxvY2FsZSBmb3IgdGhpcyBsb2NhbGUuICBJZiB0aGlzIGxvY2FsZSBpcyByb290LCByZXR1cm5zIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIFVMb2NhbGUgZ2V0RmFsbGJhY2soKSB7CisgICAgICAgIGlmIChsb2NhbGVJRC5sZW5ndGgoKSA9PSAwIHx8IGxvY2FsZUlELmNoYXJBdCgwKSA9PSAnQCcpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShnZXRGYWxsYmFja1N0cmluZyhsb2NhbGVJRCksIChMb2NhbGUpbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBnaXZlbiAoY2Fub25pY2FsKSBsb2NhbGUgaWQgbWludXMgdGhlIGxhc3QgcGFydCBiZWZvcmUgdGhlIHRhZ3MuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldEZhbGxiYWNrU3RyaW5nKFN0cmluZyBmYWxsYmFjaykgeworICAgICAgICBpbnQgbGltaXQgPSBmYWxsYmFjay5pbmRleE9mKCdAJyk7CisgICAgICAgIGlmIChsaW1pdCA9PSAtMSkgeworICAgICAgICAgICAgbGltaXQgPSBmYWxsYmFjay5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgc3RhcnQgPSBmYWxsYmFjay5sYXN0SW5kZXhPZignXycsIGxpbWl0KTsKKyAgICAgICAgaWYgKHN0YXJ0ID09IC0xKSB7CisgICAgICAgICAgICBzdGFydCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbGxiYWNrLnN1YnN0cmluZygwLCBzdGFydCkgKyBmYWxsYmFjay5zdWJzdHJpbmcobGltaXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIChub3JtYWxpemVkKSBiYXNlIG5hbWUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGJhc2UgbmFtZSBhcyBhIFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEJhc2VOYW1lKCkgeworICAgICAgICByZXR1cm4gZ2V0QmFzZU5hbWUobG9jYWxlSUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSAobm9ybWFsaXplZCkgYmFzZSBuYW1lIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGxvY2FsZSBJRCBhcyBhIHN0cmluZworICAgICAqIEByZXR1cm4gdGhlIGJhc2UgbmFtZSBhcyBhIFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRCYXNlTmFtZShTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRCYXNlTmFtZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIChub3JtYWxpemVkKSBmdWxsIG5hbWUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqCisgICAgICogQHJldHVybiBTdHJpbmcgdGhlIGZ1bGwgbmFtZSBvZiB0aGUgbG9jYWxlSUQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8gCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICByZXR1cm4gbG9jYWxlSUQ7IC8vIGFsd2F5cyBub3JtYWxpemVkCisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgKG5vcm1hbGl6ZWQpIGZ1bGwgbmFtZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGxvY2FsZUlEIGFzIGEgc3RyaW5nCisgICAgICogQHJldHVybiBTdHJpbmcgdGhlIGZ1bGwgbmFtZSBvZiB0aGUgbG9jYWxlSUQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXROYW1lKFN0cmluZyBsb2NhbGVJRCl7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldE5hbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBsb2NhbGVJRDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhdG9yIG92ZXIga2V5d29yZHMgZm9yIHRoaXMgbG9jYWxlLiAgSWYgdGhlcmUgCisgICAgICogYXJlIG5vIGtleXdvcmRzLCByZXR1cm5zIG51bGwuCisgICAgICogQHJldHVybiBpdGVyYXRvciBvdmVyIGtleXdvcmRzLCBvciBudWxsIGlmIHRoZXJlIGFyZSBubyBrZXl3b3Jkcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0S2V5d29yZHMoKSB7CisgICAgICAgIHJldHVybiBnZXRLZXl3b3Jkcyhsb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpdGVyYXRvciBvdmVyIGtleXdvcmRzIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4gIElmIHRoZXJlIAorICAgICAqIGFyZSBubyBrZXl3b3JkcywgcmV0dXJucyBudWxsLgorICAgICAqIEByZXR1cm4gYW4gaXRlcmF0b3Igb3ZlciB0aGUga2V5d29yZHMgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUsIG9yIG51bGwKKyAgICAgKiBpZiB0aGVyZSBhcmUgbm8ga2V5d29yZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBJdGVyYXRvciBnZXRLZXl3b3JkcyhTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRLZXl3b3JkcygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhbHVlIGZvciBhIGtleXdvcmQgaW4gdGhpcyBsb2NhbGUuIElmIHRoZSBrZXl3b3JkIGlzIG5vdCBkZWZpbmVkLCByZXR1cm5zIG51bGwuCisgICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgd2hvc2UgdmFsdWUgaXMgZGVzaXJlZC4gQ2FzZSBpbnNlbnNpdGl2ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUga2V5d29yZCwgb3IgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEtleXdvcmRWYWx1ZShTdHJpbmcga2V5d29yZE5hbWUpeworICAgICAgICByZXR1cm4gZ2V0S2V5d29yZFZhbHVlKGxvY2FsZUlELCBrZXl3b3JkTmFtZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhbHVlIGZvciBhIGtleXdvcmQgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuIElmIHRoZSBrZXl3b3JkIGlzIG5vdCBkZWZpbmVkLCByZXR1cm5zIG51bGwuIAorICAgICAqIFRoZSBsb2NhbGUgbmFtZSBkb2VzIG5vdCBuZWVkIHRvIGJlIG5vcm1hbGl6ZWQuCisgICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgd2hvc2UgdmFsdWUgaXMgZGVzaXJlZC4gQ2FzZSBpbnNlbnNpdGl2ZS4KKyAgICAgKiBAcmV0dXJuIFN0cmluZyB0aGUgdmFsdWUgb2YgdGhlIGtleXdvcmQgYXMgYSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcga2V5d29yZE5hbWUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0S2V5d29yZFZhbHVlKGtleXdvcmROYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGNsYXNzIHRvIHBhcnNlIGFuZCBub3JtYWxpemUgbG9jYWxlIGlkcyAoaW5jbHVkaW5nIFBPU0lYIHN0eWxlKQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIElEUGFyc2VyIHsKKyAgICAgICAgcHJpdmF0ZSBjaGFyW10gaWQ7CisgICAgICAgIHByaXZhdGUgaW50IGluZGV4OworICAgICAgICBwcml2YXRlIGNoYXJbXSBidWZmZXI7CisgICAgICAgIHByaXZhdGUgaW50IGJsZW47CisgICAgICAgIC8vIHVtLCBkb24ndCBoYW5kbGUgUE9TSVggaWRzIHVubGVzcyB3ZSByZXF1ZXN0IGl0LiAgd2h5IG5vdD8gIHdlbGwuLi4gYmVjYXVzZS4KKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGNhbm9uaWNhbGl6ZTsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGhhZENvdW50cnk7CisKKyAgICAgICAgLy8gdXNlZCB3aGVuIGNhbm9uaWNhbGl6aW5nCisgICAgICAgIE1hcCBrZXl3b3JkczsKKyAgICAgICAgU3RyaW5nIGJhc2VOYW1lOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBQYXJzaW5nIGNvbnN0YW50cy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgS0VZV09SRF9TRVBBUkFUT1IgICAgID0gJ0AnOworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEhZUEhFTiAgICAgICAgICAgICAgICA9ICctJzsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBLRVlXT1JEX0FTU0lHTiAgICAgICAgPSAnPSc7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ09NTUEgICAgICAgICAgICAgICAgID0gJywnOworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIElURU1fU0VQQVJBVE9SICAgICAgICA9ICc7JzsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBET1QgICAgICAgICAgICAgICAgICAgPSAnLic7CisKKyAgICAgICAgcHJpdmF0ZSBJRFBhcnNlcihTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgICAgIHRoaXMobG9jYWxlSUQsIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgSURQYXJzZXIoU3RyaW5nIGxvY2FsZUlELCBib29sZWFuIGNhbm9uaWNhbGl6ZSkgeworICAgICAgICAgICAgaWQgPSBsb2NhbGVJRC50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgaW5kZXggPSAwOworICAgICAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbaWQubGVuZ3RoICsgNV07CisgICAgICAgICAgICBibGVuID0gMDsKKyAgICAgICAgICAgIHRoaXMuY2Fub25pY2FsaXplID0gY2Fub25pY2FsaXplOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHJlc2V0KCkgeworICAgICAgICAgICAgaW5kZXggPSBibGVuID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHV0aWxpdGllcyBmb3Igd29ya2luZyBvbiB0ZXh0IGluIHRoZSBidWZmZXIKKworICAgICAgICAvKioKKyAgICAgICAgICogQXBwZW5kIGMgdG8gdGhlIGJ1ZmZlci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBhcHBlbmQoY2hhciBjKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGJ1ZmZlcltibGVuXSA9IGM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGggPiA1MTIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc29tZXRoaW5nIGlzIHNlcmlvdXNseSB3cm9uZywgbGV0IHRoaXMgZ28KKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2hhcltdIG5idWZmZXIgPSBuZXcgY2hhcltidWZmZXIubGVuZ3RoICogMl07CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsIDAsIG5idWZmZXIsIDAsIGJ1ZmZlci5sZW5ndGgpOworICAgICAgICAgICAgICAgIG5idWZmZXJbYmxlbl0gPSBjOworICAgICAgICAgICAgICAgIGJ1ZmZlciA9IG5idWZmZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK2JsZW47CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgYWRkU2VwYXJhdG9yKCkgeworICAgICAgICAgICAgYXBwZW5kKFVOREVSU0NPUkUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIHRleHQgaW4gdGhlIGJ1ZmZlciBmcm9tIHN0YXJ0IHRvIGJsZW4gYXMgYSBTdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIFN0cmluZyBnZXRTdHJpbmcoaW50IHN0YXJ0KSB7CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gYmxlbikgeworICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWV9TVFJJTkc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhidWZmZXIsIHN0YXJ0LCBibGVuLXN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXQgdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIHRvIHBvcywgdGhlbiBhcHBlbmQgdGhlIHN0cmluZy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBzZXQoaW50IHBvcywgU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIHRoaXMuYmxlbiA9IHBvczsgLy8gbm8gc2FmZXR5CisgICAgICAgICAgICBhcHBlbmQocyk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQXBwZW5kIHRoZSBzdHJpbmcgdG8gdGhlIGJ1ZmZlci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBhcHBlbmQoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKHMuY2hhckF0KGkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHV0aWxpdGllcyBmb3IgcGFyc2luZyB0ZXh0IG91dCBvZiB0aGUgaWQKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHRvIGluZGljYXRlIG5vIG1vcmUgdGV4dCBpcyBhdmFpbGFibGUgaW4gdGhlIGlkLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBET05FID0gJ1x1ZmZmZic7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIGNoYXJhY3RlciBhdCBpbmRleCBpbiB0aGUgaWQsIGFuZCBhZHZhbmNlIGluZGV4LiAgVGhlIHJldHVybmVkIGNoYXJhY3RlcgorICAgICAgICAgKiBpcyBET05FIGlmIGluZGV4IHdhcyBhdCB0aGUgbGltaXQgb2YgdGhlIGJ1ZmZlci4gIFRoZSBpbmRleCBpcyBhZHZhbmNlZCByZWdhcmRsZXNzCisgICAgICAgICAqIHNvIHRoYXQgZGVjcmVtZW50aW5nIHRoZSBpbmRleCB3aWxsIGFsd2F5cyAndW5nZXQnIHRoZSBsYXN0IGNoYXJhY3RlciByZXR1cm5lZC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgY2hhciBuZXh0KCkgeworICAgICAgICAgICAgaWYgKGluZGV4ID09IGlkLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGluZGV4Kys7CisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7IAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gaWRbaW5kZXgrK107CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCB1bnRpbCB0aGUgbmV4dCB0ZXJtaW5hdG9yIG9yIGlkIHNlcGFyYXRvciwgYW5kIGxlYXZlIGl0IHRoZXJlLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNraXBVbnRpbFRlcm1pbmF0b3JPcklEU2VwYXJhdG9yKCkgeworICAgICAgICAgICAgd2hpbGUgKCFpc1Rlcm1pbmF0b3JPcklEU2VwYXJhdG9yKG5leHQoKSkpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0taW5kZXg7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBjaGFyYWN0ZXIgYXQgaW5kZXggaW4gdGhlIGlkIGlzIGEgdGVybWluYXRvci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBhdFRlcm1pbmF0b3IoKSB7CisgICAgICAgICAgICByZXR1cm4gaW5kZXggPj0gaWQubGVuZ3RoIHx8IGlzVGVybWluYXRvcihpZFtpbmRleF0pOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGlzIGEgdGVybWluYXRvciAoa2V5d29yZCBzZXBhcmF0b3IsIGRvdCwgb3IgRE9ORSkuCisgICAgICAgICAqIERvdCBpcyBhIHRlcm1pbmF0b3IgYmVjYXVzZSBvZiB0aGUgUE9TSVggZm9ybSwgd2hlcmUgZG90IHByZWNlZGVzIHRoZSBjb2RlcGFnZS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc1Rlcm1pbmF0b3IoY2hhciBjKSB7CisgICAgICAgICAgICAvLyBhbHdheXMgdGVybWluYXRlIGF0IERPVCwgZXZlbiBpZiBub3QgaGFuZGxpbmcgUE9TSVguICBJdCdzIGFuIGVycm9yLi4uCisgICAgICAgICAgICByZXR1cm4gYyA9PSBLRVlXT1JEX1NFUEFSQVRPUiB8fCBjID09IERPTkUgfHwgYyA9PSBET1Q7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYSB0ZXJtaW5hdG9yIG9yIGlkIHNlcGFyYXRvci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc1Rlcm1pbmF0b3JPcklEU2VwYXJhdG9yKGNoYXIgYykgeworICAgICAgICAgICAgcmV0dXJuIGMgPT0gS0VZV09SRF9TRVBBUkFUT1IgfHwgYyA9PSBVTkRFUlNDT1JFIHx8IGMgPT0gSFlQSEVOIHx8IAorICAgICAgICAgICAgICAgIGMgPT0gRE9ORSB8fCBjID09IERPVDsgICAKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHN0YXJ0IG9mIHRoZSBidWZmZXIgaGFzIGFuIGV4cGVyaW1lbnRhbCBvciBwcml2YXRlIGxhbmd1YWdlIAorICAgICAgICAgKiBwcmVmaXgsIHRoZSBwYXR0ZXJuICdbaXhJWF1bLV9dLicgc2hvd3MgdGhlIHN5bnRheCBjaGVja2VkLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGhhdmVFeHBlcmltZW50YWxMYW5ndWFnZVByZWZpeCgpIHsKKyAgICAgICAgICAgIGlmIChpZC5sZW5ndGggPiAyKSB7CisgICAgICAgICAgICAgICAgY2hhciBjID0gaWRbMV07CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gSFlQSEVOIHx8IGMgPT0gVU5ERVJTQ09SRSkgeworICAgICAgICAgICAgICAgICAgICBjID0gaWRbMF07CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjID09ICd4JyB8fCBjID09ICdYJyB8fCBjID09ICdpJyB8fCBjID09ICdJJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIGEgdmFsdWUgc2VwYXJhdG9yIG9jY3VycyBhdCBvciBhZnRlciBpbmRleC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBoYXZlS2V5d29yZEFzc2lnbigpIHsKKyAgICAgICAgICAgIC8vIGFzc3VtZSBpdCBpcyBzYWZlIHRvIHN0YXJ0IGZyb20gaW5kZXgKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBpbmRleDsgaSA8IGlkLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlkW2ldID09IEtFWVdPUkRfQVNTSUdOKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3QgbGFuZ3VhZ2UsIGFuZCBhY2N1bXVsYXRlIG5vcm1hbGl6ZWQgbGFuZ3VhZ2UgY29kZSBpbiBidWZmZXIuCisgICAgICAgICAqIEluZGV4IG11c3QgYmUgYXQgMCB3aGVuIHRoaXMgaXMgY2FsbGVkLiAgSW5kZXggaXMgbGVmdCBhdCBhIHRlcm1pbmF0b3Igb3IgaWQgCisgICAgICAgICAqIHNlcGFyYXRvci4gIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBsYW5ndWFnZSBjb2RlIGluIHRoZSBidWZmZXIuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBwYXJzZUxhbmd1YWdlKCkgeworICAgICAgICAgICAgaWYgKGhhdmVFeHBlcmltZW50YWxMYW5ndWFnZVByZWZpeCgpKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKENoYXJhY3Rlci50b0xvd2VyQ2FzZShpZFswXSkpOworICAgICAgICAgICAgICAgIGFwcGVuZChIWVBIRU4pOworICAgICAgICAgICAgICAgIGluZGV4ID0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBjaGFyIGM7CisgICAgICAgICAgICB3aGlsZSghaXNUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcihjID0gbmV4dCgpKSkgeworICAgICAgICAgICAgICAgIGFwcGVuZChDaGFyYWN0ZXIudG9Mb3dlckNhc2UoYykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1pbmRleDsgLy8gdW5nZXQKKworICAgICAgICAgICAgaWYgKGJsZW4gPT0gMykgeworICAgICAgICAgICAgICAgIGluaXRMYW5ndWFnZVRhYmxlcygpOworCisgICAgICAgICAgICAgICAgLyogY29udmVydCAzIGNoYXJhY3RlciBjb2RlIHRvIDIgY2hhcmFjdGVyIGNvZGUgaWYgcG9zc2libGUgKkNXQiovCisgICAgICAgICAgICAgICAgU3RyaW5nIGxhbmcgPSBnZXRTdHJpbmcoMCk7CisgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfbGFuZ3VhZ2VzMywgbGFuZyk7CisgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHNldCgwLCBfbGFuZ3VhZ2VzW29mZnNldF0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IGZpbmRJbmRleChfb2Jzb2xldGVMYW5ndWFnZXMzLCBsYW5nKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXQoMCwgX29ic29sZXRlTGFuZ3VhZ2VzW29mZnNldF0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3QgbGFuZ3VhZ2UuICBJbmRleCBtdXN0IGJlIGF0IDAgd2hlbiB0aGlzIGlzIGNhbGxlZC4gIEluZGV4CisgICAgICAgICAqIGlzIGxlZnQgYXQgYSB0ZXJtaW5hdG9yIG9yIGlkIHNlcGFyYXRvci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBza2lwTGFuZ3VhZ2UoKSB7CisgICAgICAgICAgICBpZiAoaGF2ZUV4cGVyaW1lbnRhbExhbmd1YWdlUHJlZml4KCkpIHsKKyAgICAgICAgICAgICAgICBpbmRleCA9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBza2lwVW50aWxUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcigpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkdmFuY2UgaW5kZXggcGFzdCBzY3JpcHQsIGFuZCBhY2N1bXVsYXRlIG5vcm1hbGl6ZWQgc2NyaXB0IGluIGJ1ZmZlci4KKyAgICAgICAgICogSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGFuZ3VhZ2UuCisgICAgICAgICAqIElmIHRoZSBpdGVtIGF0IHRoaXMgcG9zaXRpb24gaXMgbm90IGEgc2NyaXB0IChpcyBub3QgZm91ciBjaGFyYWN0ZXJzCisgICAgICAgICAqIGxvbmcpIGxlYXZlIGluZGV4IGFuZCBidWZmZXIgdW5jaGFuZ2VkLiAgT3RoZXJ3aXNlIGluZGV4IGlzIGxlZnQgYXQKKyAgICAgICAgICogYSB0ZXJtaW5hdG9yIG9yIGlkIHNlcGFyYXRvci4gIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBzY3JpcHQgY29kZQorICAgICAgICAgKiBpbiB0aGUgYnVmZmVyICh0aGlzIG1heSBiZSBlcXVhbCB0byB0aGUgYnVmZmVyIGxlbmd0aCwgaWYgdGhlcmUgaXMgbm8KKyAgICAgICAgICogc2NyaXB0KS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IHBhcnNlU2NyaXB0KCkgeworICAgICAgICAgICAgaWYgKCFhdFRlcm1pbmF0b3IoKSkgeworICAgICAgICAgICAgICAgIGludCBvbGRJbmRleCA9IGluZGV4OyAvLyBzYXZlIG9yaWdpbmFsIGluZGV4CisgICAgICAgICAgICAgICAgKytpbmRleDsKKworICAgICAgICAgICAgICAgIGludCBvbGRCbGVuID0gYmxlbjsgLy8gZ2V0IGJlZm9yZSBhcHBlbmQgaHlwaGVuLCBpZiB3ZSB0cnVuY2F0ZSBldmVyeXRoaW5nIGlzIHVuZG9uZQorICAgICAgICAgICAgICAgIGNoYXIgYzsKKyAgICAgICAgICAgICAgICB3aGlsZSghaXNUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcihjID0gbmV4dCgpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYmxlbiA9PSBvbGRCbGVuKSB7IC8vIGZpcnN0IHBhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKENoYXJhY3Rlci50b1VwcGVyQ2FzZShjKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQoQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGMpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAtLWluZGV4OyAvLyB1bmdldAorCisgICAgICAgICAgICAgICAgLyogSWYgaXQncyBub3QgZXhhY3RseSA0IGNoYXJhY3RlcnMgbG9uZywgdGhlbiBpdCdzIG5vdCBhIHNjcmlwdC4gKi8KKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggLSBvbGRJbmRleCAhPSA1KSB7IC8vICsxIHRvIGFjY291bnQgZm9yIHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICBpbmRleCA9IG9sZEluZGV4OworICAgICAgICAgICAgICAgICAgICBibGVuID0gb2xkQmxlbjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBvbGRCbGVuKys7IC8vIGluZGV4IHBhc3QgaHlwaGVuLCBmb3IgY2xpZW50cyB3aG8gd2FudCB0byBleHRyYWN0IGp1c3QgdGhlIHNjcmlwdAorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiBvbGRCbGVuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGJsZW47CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IHNjcmlwdC4KKyAgICAgICAgICogSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGFuZ3VhZ2UgYW5kIElEU2VwYXJhdG9yLgorICAgICAgICAgKiBJZiB0aGUgaXRlbSBhdCB0aGlzIHBvc2l0aW9uIGlzIG5vdCBhIHNjcmlwdCAoaXMgbm90IGZvdXIgY2hhcmFjdGVycworICAgICAgICAgKiBsb25nKSBsZWF2ZSBpbmRleC4gIE90aGVyd2lzZSBpbmRleCBpcyBsZWZ0IGF0IGEgdGVybWluYXRvciBvcgorICAgICAgICAgKiBpZCBzZXBhcmF0b3IuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgc2tpcFNjcmlwdCgpIHsKKyAgICAgICAgICAgIGlmICghYXRUZXJtaW5hdG9yKCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgb2xkSW5kZXggPSBpbmRleDsKKyAgICAgICAgICAgICAgICArK2luZGV4OworCisgICAgICAgICAgICAgICAgc2tpcFVudGlsVGVybWluYXRvck9ySURTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggLSBvbGRJbmRleCAhPSA1KSB7IC8vICsxIHRvIGFjY291bnQgZm9yIHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICBpbmRleCA9IG9sZEluZGV4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3QgY291bnRyeSwgYW5kIGFjY3VtdWxhdGUgbm9ybWFsaXplZCBjb3VudHJ5IGluIGJ1ZmZlci4KKyAgICAgICAgICogSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgc2NyaXB0IChpZiB0aGVyZSBpcyBvbmUsIGVsc2UgbGFuZ3VhZ2UpCisgICAgICAgICAqIGFuZCBJRFNlcGFyYXRvci4gIFJldHVybiB0aGUgc3RhcnQgb2YgdGhlIGNvdW50cnkgY29kZSBpbiB0aGUgYnVmZmVyLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgcGFyc2VDb3VudHJ5KCkgeworICAgICAgICAgICAgaWYgKCFhdFRlcm1pbmF0b3IoKSkgeworICAgICAgICAgICAgICAgICsraW5kZXg7CisKKyAgICAgICAgICAgICAgICBpbnQgb2xkQmxlbiA9IGJsZW47CisgICAgICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgICAgIHdoaWxlICghaXNUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcihjID0gbmV4dCgpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAob2xkQmxlbiA9PSBibGVuKSB7IC8vIGZpcnN0LCBhZGQgaHlwaGVuCisgICAgICAgICAgICAgICAgICAgICAgICBoYWRDb3VudHJ5ID0gdHJ1ZTsgLy8gd2UgaGF2ZSBhIGNvdW50cnksIGxldCB2YXJpYW50IHBhcnNpbmcga25vdworICAgICAgICAgICAgICAgICAgICAgICAgYWRkU2VwYXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgICAgICArK29sZEJsZW47IC8vIGluY3JlbWVudCBwYXN0IGh5cGhlbgorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZChDaGFyYWN0ZXIudG9VcHBlckNhc2UoYykpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAtLWluZGV4OyAvLyB1bmdldAorCisgICAgICAgICAgICAgICAgaWYgKGJsZW4gLSBvbGRCbGVuID09IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5pdENvdW50cnlUYWJsZXMoKTsKKworICAgICAgICAgICAgICAgICAgICAvKiBjb252ZXJ0IDMgY2hhcmFjdGVyIGNvZGUgdG8gMiBjaGFyYWN0ZXIgY29kZSBpZiBwb3NzaWJsZSAqQ1dCKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfY291bnRyaWVzMywgZ2V0U3RyaW5nKG9sZEJsZW4pKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXQob2xkQmxlbiwgX2NvdW50cmllc1tvZmZzZXRdKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IGZpbmRJbmRleChfb2Jzb2xldGVDb3VudHJpZXMzLCBnZXRTdHJpbmcob2xkQmxlbikpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KG9sZEJsZW4sIF9vYnNvbGV0ZUNvdW50cmllc1tvZmZzZXRdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiBvbGRCbGVuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gYmxlbjsKKyAgICAgICAgfSAgICAgICAgIAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3QgY291bnRyeS4KKyAgICAgICAgICogSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgc2NyaXB0IChpZiB0aGVyZSBpcyBvbmUsIGVsc2UgbGFuZ3VhZ2UpCisgICAgICAgICAqIGFuZCBJRFNlcGFyYXRvci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBza2lwQ291bnRyeSgpIHsKKyAgICAgICAgICAgIGlmICghYXRUZXJtaW5hdG9yKCkpIHsKKyAgICAgICAgICAgICAgICArK2luZGV4OworICAgICAgICAgICAgICAgIHNraXBVbnRpbFRlcm1pbmF0b3JPcklEU2VwYXJhdG9yKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IHZhcmlhbnQsIGFuZCBhY2N1bXVsYXRlIG5vcm1hbGl6ZWQgdmFyaWFudCBpbiBidWZmZXIuICBUaGlzIGlnbm9yZXMKKyAgICAgICAgICogdGhlIGNvZGVwYWdlIGluZm9ybWF0aW9uIGZyb20gUE9TSVggaWRzLiAgSW5kZXggbXVzdCBiZSBpbW1lZGlhdGVseSBhZnRlciB0aGUgY291bnRyeQorICAgICAgICAgKiBvciBzY3JpcHQuICBJbmRleCBpcyBsZWZ0IGF0IHRoZSBrZXl3b3JkIHNlcGFyYXRvciBvciBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LiAgUmV0dXJuCisgICAgICAgICAqIHRoZSBzdGFydCBvZiB0aGUgdmFyaWFudCBjb2RlIGluIHRoZSBidWZmZXIuCisgICAgICAgICAqCisgICAgICAgICAqIEluIHN0YW5kYXJkIGZvcm0sIHdlIGNhbiBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybXM6CisgICAgICAgICAqIGxsX19WVlZWCisgICAgICAgICAqIGxsX0NDX1ZWVlYKKyAgICAgICAgICogbGxfU3Nzc19WVlZWCisgICAgICAgICAqIGxsX1Nzc3NfQ0NfVlZWVgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIGFsc28gaGFuZGxlcyBQT1NJWCBpZHMsIHdoaWNoIGNhbiBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybXMgKHBwcHAgaXMgY29kZSBwYWdlIGlkKToKKyAgICAgICAgICogbGxfQ0MucHBwcCAgICAgICAgICAtLT4gbGxfQ0MKKyAgICAgICAgICogbGxfQ0MucHBwcEBWVlZWICAgICAtLT4gbGxfQ0NfVlZWVgorICAgICAgICAgKiBsbF9DQ0BWVlZWICAgICAgICAgIC0tPiBsbF9DQ19WVlZWCisgICAgICAgICAqCisgICAgICAgICAqIFdlIGlkZW50aWZ5IHRoaXMgdXNlIG9mICdAJyBpbiBQT1NJWCBpZHMgYnkgbG9va2luZyBmb3IgYW4gJz0nIGZvbGxvd2luZworICAgICAgICAgKiB0aGUgJ0AnLiAgSWYgdGhlcmUgaXMgb25lLCB3ZSBjb25zaWRlciAnQCcgdG8gc3RhcnQgYSBrZXl3b3JkIGxpc3QsIGluc3RlYWQgb2YKKyAgICAgICAgICogYmVpbmcgcGFydCBvZiBhIFBPU0lYIGlkLgorICAgICAgICAgKgorICAgICAgICAgKiBOb3RlOiAgc2luY2UgaXQgd2FzIGRlY2lkZWQgdGhhdCB3ZSB3YW50IGFuIG9wdGlvbiB0byBub3QgaGFuZGxlIFBPU0lYIGlkcywgdGhpcworICAgICAgICAgKiBiZWNvbWVzIGEgYml0IG1vcmUgY29tcGxleC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IHBhcnNlVmFyaWFudCgpIHsKKyAgICAgICAgICAgIGludCBvbGRCbGVuID0gYmxlbjsKKworICAgICAgICAgICAgYm9vbGVhbiBzdGFydCA9IHRydWU7CisgICAgICAgICAgICBib29sZWFuIG5lZWRTZXBhcmF0b3IgPSB0cnVlOworICAgICAgICAgICAgYm9vbGVhbiBza2lwcGluZyA9IGZhbHNlOworICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgd2hpbGUgKChjID0gbmV4dCgpKSAhPSBET05FKSB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gRE9UKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHNraXBwaW5nID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gS0VZV09SRF9TRVBBUkFUT1IpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVLZXl3b3JkQXNzaWduKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHNraXBwaW5nID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIG5lZWRTZXBhcmF0b3IgPSB0cnVlOyAvLyBhZGQgYW5vdGhlciB1bmRlcnNjb3JlIGlmIHdlIGhhdmUgbW9yZSB0ZXh0CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGFydCkgeworICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXNraXBwaW5nKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZWVkU2VwYXJhdG9yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGluY09sZEJsZW4gPSBibGVuID09IG9sZEJsZW47IC8vIG5lZWQgdG8gc2tpcCBzZXBhcmF0b3JzCisgICAgICAgICAgICAgICAgICAgICAgICBuZWVkU2VwYXJhdG9yID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5jT2xkQmxlbiAmJiAhaGFkQ291bnRyeSkgeyAvLyBubyBjb3VudHJ5LCB3ZSdsbCBuZWVkIHR3bworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrb2xkQmxlbjsgLy8gZm9yIHN1cmUKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluY09sZEJsZW4pIHsgLy8gb25seSBmb3IgdGhlIGZpcnN0IHNlcGFyYXRvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrb2xkQmxlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjID0gQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGMpOworICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSBIWVBIRU4gfHwgYyA9PSBDT01NQSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IFVOREVSU0NPUkU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0taW5kZXg7IC8vIHVuZ2V0CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBvbGRCbGVuOworICAgICAgICB9CisKKyAgICAgICAgLy8gbm8gbmVlZCBmb3Igc2tpcHZhcmlhbnQsIHRvIGdldCB0aGUga2V5d29yZHMgd2UnbGwganVzdCBzY2FuIGRpcmVjdGx5IGZvciAKKyAgICAgICAgLy8gdGhlIGtleXdvcmQgc2VwYXJhdG9yCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIG5vcm1hbGl6ZWQgbGFuZ3VhZ2UgaWQsIG9yIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkgeworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmcocGFyc2VMYW5ndWFnZSgpKTsKKyAgICAgICAgfQorICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBub3JtYWxpemVkIHNjcmlwdCBpZCwgb3IgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0U2NyaXB0KCkgeworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIHNraXBMYW5ndWFnZSgpOworICAgICAgICAgICAgcmV0dXJuIGdldFN0cmluZyhwYXJzZVNjcmlwdCgpKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogcmV0dXJuIHRoZSBub3JtYWxpemVkIGNvdW50cnkgaWQsIG9yIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldENvdW50cnkoKSB7CisgICAgICAgICAgICByZXNldCgpOworICAgICAgICAgICAgc2tpcExhbmd1YWdlKCk7CisgICAgICAgICAgICBza2lwU2NyaXB0KCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKHBhcnNlQ291bnRyeSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBub3JtYWxpemVkIHZhcmlhbnQgaWQsIG9yIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFZhcmlhbnQoKSB7CisgICAgICAgICAgICByZXNldCgpOworICAgICAgICAgICAgc2tpcExhbmd1YWdlKCk7CisgICAgICAgICAgICBza2lwU2NyaXB0KCk7CisgICAgICAgICAgICBza2lwQ291bnRyeSgpOworICAgICAgICAgICAgcmV0dXJuIGdldFN0cmluZyhwYXJzZVZhcmlhbnQoKSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgbGFuZ3VhZ2UsIHNjcmlwdCwgY291bnRyeSwgYW5kIHZhcmlhbnQgYXMgc2VwYXJhdGUgc3RyaW5ncy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRMYW5ndWFnZVNjcmlwdENvdW50cnlWYXJpYW50KCkgeworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgIGdldFN0cmluZyhwYXJzZUxhbmd1YWdlKCkpLAorICAgICAgICAgICAgICAgIGdldFN0cmluZyhwYXJzZVNjcmlwdCgpKSwKKyAgICAgICAgICAgICAgICBnZXRTdHJpbmcocGFyc2VDb3VudHJ5KCkpLAorICAgICAgICAgICAgICAgIGdldFN0cmluZyhwYXJzZVZhcmlhbnQoKSkKKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXRCYXNlTmFtZShTdHJpbmcgYmFzZU5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMuYmFzZU5hbWUgPSBiYXNlTmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHBhcnNlQmFzZU5hbWUoKSB7CisgICAgICAgICAgICBpZiAoYmFzZU5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHNldCgwLCBiYXNlTmFtZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc2V0KCk7CisgICAgICAgICAgICAgICAgcGFyc2VMYW5ndWFnZSgpOworICAgICAgICAgICAgICAgIHBhcnNlU2NyaXB0KCk7CisgICAgICAgICAgICAgICAgcGFyc2VDb3VudHJ5KCk7CisgICAgICAgICAgICAgICAgcGFyc2VWYXJpYW50KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBjYXRjaCB1bndhbnRlZCB0cmFpbGluZyB1bmRlcnNjb3JlIGFmdGVyIGNvdW50cnkgaWYgdGhlcmUgd2FzIG5vIHZhcmlhbnQKKyAgICAgICAgICAgICAgICBpZiAoYmxlbiA+IDEgJiYgYnVmZmVyW2JsZW4tMV0gPT0gVU5ERVJTQ09SRSkgeworICAgICAgICAgICAgICAgICAgICAtLWJsZW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIG5vcm1hbGl6ZWQgYmFzZSBmb3JtIG9mIHRoZSBsb2NhbGUgaWQuICBUaGUgYmFzZQorICAgICAgICAgKiBmb3JtIGRvZXMgbm90IGluY2x1ZGUga2V5d29yZHMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEJhc2VOYW1lKCkgeworICAgICAgICAgICAgaWYgKGJhc2VOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJzZUJhc2VOYW1lKCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKDApOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIG5vcm1hbGl6ZWQgZnVsbCBmb3JtIG9mIHRoZSBsb2NhbGUgaWQuICBUaGUgZnVsbAorICAgICAgICAgKiBmb3JtIGluY2x1ZGVzIGtleXdvcmRzIGlmIHRoZXkgYXJlIHByZXNlbnQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgICAgICBwYXJzZUJhc2VOYW1lKCk7CisgICAgICAgICAgICBwYXJzZUtleXdvcmRzKCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKDApOworICAgICAgICB9CisKKyAgICAgICAgLy8ga2V5d29yZCB1dGlsaXRpZXMKKworICAgICAgICAvKioKKyAgICAgICAgICogSWYgd2UgaGF2ZSBrZXl3b3JkcywgYWR2YW5jZSBpbmRleCB0byB0aGUgc3RhcnQgb2YgdGhlIGtleXdvcmRzIGFuZCByZXR1cm4gdHJ1ZSwgCisgICAgICAgICAqIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gc2V0VG9LZXl3b3JkU3RhcnQoKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gaW5kZXg7IGkgPCBpZC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpZFtpXSA9PSBLRVlXT1JEX1NFUEFSQVRPUikgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2Fub25pY2FsaXplKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gKytpOyBqIDwgaWQubGVuZ3RoOyArK2opIHsgLy8gaW5jcmVtZW50IGkgcGFzdCBzZXBhcmF0b3IgZm9yIHJldHVybgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZFtqXSA9PSBLRVlXT1JEX0FTU0lHTikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2kgPCBpZC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzRG9uZU9yS2V5d29yZEFzc2lnbihjaGFyIGMpIHsKKyAgICAgICAgICAgIHJldHVybiBjID09IERPTkUgfHwgYyA9PSBLRVlXT1JEX0FTU0lHTjsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNEb25lT3JJdGVtU2VwYXJhdG9yKGNoYXIgYykgeworICAgICAgICAgICAgcmV0dXJuIGMgPT0gRE9ORSB8fCBjID09IElURU1fU0VQQVJBVE9SOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0S2V5d29yZCgpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IGluZGV4OworICAgICAgICAgICAgd2hpbGUgKCFpc0RvbmVPcktleXdvcmRBc3NpZ24obmV4dCgpKSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgLS1pbmRleDsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGlkLCBzdGFydCwgaW5kZXgtc3RhcnQpLnRyaW0oKS50b0xvd2VyQ2FzZSgpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0VmFsdWUoKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBpbmRleDsKKyAgICAgICAgICAgIHdoaWxlICghaXNEb25lT3JJdGVtU2VwYXJhdG9yKG5leHQoKSkpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0taW5kZXg7CisgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhpZCwgc3RhcnQsIGluZGV4LXN0YXJ0KS50cmltKCk7IC8vIGxlYXZlIGNhc2UgYWxvbmUKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgQ29tcGFyYXRvciBnZXRLZXlDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgZmluYWwgQ29tcGFyYXRvciBjb21wID0gbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKChTdHJpbmcpbGhzKS5jb21wYXJlVG8oKFN0cmluZylyaHMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJldHVybiBjb21wOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgYSBtYXAgb2YgdGhlIGtleXdvcmRzIGFuZCB2YWx1ZXMsIG9yIG51bGwgaWYgdGhlcmUgYXJlIG5vbmUuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIE1hcCBnZXRLZXl3b3JkTWFwKCkgeworICAgICAgICAgICAgaWYgKGtleXdvcmRzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBUcmVlTWFwIG0gPSBudWxsOworICAgICAgICAgICAgICAgIGlmIChzZXRUb0tleXdvcmRTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRyaW0gc3BhY2VzIGFuZCBjb252ZXJ0IHRvIGxvd2VyIGNhc2UsIGJvdGgga2V5d29yZHMgYW5kIHZhbHVlcy4KKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IGdldEtleXdvcmQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjID0gbmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gS0VZV09SRF9BU1NJR04pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJrZXkgJyIgKyBrZXkgKyAiJyBtaXNzaW5nIGEgdmFsdWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJrZXkgJyIgKyBrZXkgKyAiJyBtaXNzaW5nIGEgdmFsdWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSA9IG5ldyBUcmVlTWFwKGdldEtleUNvbXBhcmF0b3IoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG0uY29udGFpbnNLZXkoa2V5KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImtleSAnIiArIGtleSArICInIGFscmVhZHkgaGFzIGEgdmFsdWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtLnB1dChrZXksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAobmV4dCgpID09IElURU1fU0VQQVJBVE9SKTsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAga2V5d29yZHMgPSBtICE9IG51bGwgPyBtIDogQ29sbGVjdGlvbnMuRU1QVFlfTUFQOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4ga2V5d29yZHM7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUGFyc2UgdGhlIGtleXdvcmRzIGFuZCByZXR1cm4gc3RhcnQgb2YgdGhlIHN0cmluZyBpbiB0aGUgYnVmZmVyLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgcGFyc2VLZXl3b3JkcygpIHsKKyAgICAgICAgICAgIGludCBvbGRCbGVuID0gYmxlbjsKKyAgICAgICAgICAgIE1hcCBtID0gZ2V0S2V5d29yZE1hcCgpOworICAgICAgICAgICAgaWYgKCFtLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBtLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKGZpcnN0ID8gS0VZV09SRF9TRVBBUkFUT1IgOiBJVEVNX1NFUEFSQVRPUik7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIE1hcC5FbnRyeSBlID0gKE1hcC5FbnRyeSlpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKChTdHJpbmcpZS5nZXRLZXkoKSk7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZChLRVlXT1JEX0FTU0lHTik7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZCgoU3RyaW5nKWUuZ2V0VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChibGVuICE9IG9sZEJsZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgKytvbGRCbGVuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBvbGRCbGVuOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgYW4gaXRlcmF0b3Igb3ZlciB0aGUga2V5d29yZHMsIG9yIG51bGwgaWYgd2UgaGF2ZSBhbiBlbXB0eSBtYXAuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0S2V5d29yZHMoKSB7CisgICAgICAgICAgICBNYXAgbSA9IGdldEtleXdvcmRNYXAoKTsKKyAgICAgICAgICAgIHJldHVybiBtLmlzRW1wdHkoKSA/IG51bGwgOiBtLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgdmFsdWUgZm9yIHRoZSBuYW1lZCBrZXl3b3JkLCBvciBudWxsIGlmIHRoZSBrZXl3b3JkIGlzIG5vdAorICAgICAgICAgKiBwcmVzZW50LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmROYW1lKSB7CisgICAgICAgICAgICBNYXAgbSA9IGdldEtleXdvcmRNYXAoKTsKKyAgICAgICAgICAgIHJldHVybiBtLmlzRW1wdHkoKSA/IG51bGwgOiAoU3RyaW5nKW0uZ2V0KGtleXdvcmROYW1lLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXQgdGhlIGtleXdvcmQgdmFsdWUgb25seSBpZiBpdCBpcyBub3QgYWxyZWFkeSBzZXQgdG8gc29tZXRoaW5nIGVsc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBkZWZhdWx0S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkTmFtZSwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgICAgICBzZXRLZXl3b3JkVmFsdWUoa2V5d29yZE5hbWUsIHZhbHVlLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogU2V0IHRoZSB2YWx1ZSBmb3IgdGhlIG5hbWVkIGtleXdvcmQsIG9yIHVuc2V0IGl0IGlmIHZhbHVlIGlzIG51bGwuICBJZgorICAgICAgICAgKiBrZXl3b3JkTmFtZSBpdHNlbGYgaXMgbnVsbCwgdW5zZXQgYWxsIGtleXdvcmRzLiAgSWYga2V5d29yZE5hbWUgaXMgbm90IG51bGwsCisgICAgICAgICAqIHZhbHVlIG11c3Qgbm90IGJlIG51bGwuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmROYW1lLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgICAgIHNldEtleXdvcmRWYWx1ZShrZXl3b3JkTmFtZSwgdmFsdWUsIHRydWUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldCB0aGUgdmFsdWUgZm9yIHRoZSBuYW1lZCBrZXl3b3JkLCBvciB1bnNldCBpdCBpZiB2YWx1ZSBpcyBudWxsLiAgSWYKKyAgICAgICAgICoga2V5d29yZE5hbWUgaXRzZWxmIGlzIG51bGwsIHVuc2V0IGFsbCBrZXl3b3Jkcy4gIElmIGtleXdvcmROYW1lIGlzIG5vdCBudWxsLAorICAgICAgICAgKiB2YWx1ZSBtdXN0IG5vdCBiZSBudWxsLiAgSWYgcmVzZXQgaXMgdHJ1ZSwgaWdub3JlIGFueSBwcmV2aW91cyB2YWx1ZSBmb3IgCisgICAgICAgICAqIHRoZSBrZXl3b3JkLCBvdGhlcndpc2UgZG8gbm90IGNoYW5nZSB0aGUga2V5d29yZCAoaW5jbHVkaW5nIHJlbW92YWwgb2YKKyAgICAgICAgICogb25lIG9yIGFsbCBrZXl3b3JkcykuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgc2V0S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkTmFtZSwgU3RyaW5nIHZhbHVlLCBib29sZWFuIHJlc2V0KSB7CisgICAgICAgICAgICBpZiAoa2V5d29yZE5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChyZXNldCkgeworICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSBuZXcgbWFwLCBpZ25vcmUgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAga2V5d29yZHMgPSBDb2xsZWN0aW9ucy5FTVBUWV9NQVA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBrZXl3b3JkTmFtZSA9IGtleXdvcmROYW1lLnRyaW0oKS50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgICAgIGlmIChrZXl3b3JkTmFtZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImtleXdvcmQgbXVzdCBub3QgYmUgZW1wdHkiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJ2YWx1ZSBtdXN0IG5vdCBiZSBlbXB0eSIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIE1hcCBtID0gZ2V0S2V5d29yZE1hcCgpOworICAgICAgICAgICAgICAgIGlmIChtLmlzRW1wdHkoKSkgeyAvLyBpdCBpcyBFTVBUWV9NQVAKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvcmNlIG5ldyBtYXAKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzID0gbmV3IFRyZWVNYXAoZ2V0S2V5Q29tcGFyYXRvcigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzLnB1dChrZXl3b3JkTmFtZSwgdmFsdWUudHJpbSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXNldCB8fCAhbS5jb250YWluc0tleShrZXl3b3JkTmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5wdXQoa2V5d29yZE5hbWUsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5yZW1vdmUoa2V5d29yZE5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSBuZXcgbWFwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzID0gQ29sbGVjdGlvbnMuRU1QVFlfTUFQOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIGxpbmVhciBzZWFyY2ggb2YgdGhlIHN0cmluZyBhcnJheS4gdGhlIGFycmF5cyBhcmUgdW5mb3J0dW5hdGVseSBvcmRlcmVkIGJ5IHRoZQorICAgICAqIHR3by1sZXR0ZXIgdGFyZ2V0IGNvZGUsIG5vdCB0aGUgdGhyZWUtbGV0dGVyIHNlYXJjaCBjb2RlLCB3aGljaCBzZWVtcyBiYWNrd2FyZHMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRJbmRleChTdHJpbmdbXSBhcnJheSwgU3RyaW5nIHRhcmdldCl7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmICh0YXJnZXQuZXF1YWxzKGFycmF5W2ldKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9ICAgIAorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY2Fub25pY2FsIG5hbWUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlIElELiAgVGhpcyBpcyB1c2VkIHRvIGNvbnZlcnQgUE9TSVgKKyAgICAgKiBhbmQgb3RoZXIgZ3JhbmRmYXRoZXJlZCBJRHMgdG8gc3RhbmRhcmQgSUNVIGZvcm0uCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGUgaWQKKyAgICAgKiBAcmV0dXJuIHRoZSBjYW5vbmljYWxpemVkIGlkCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsaXplKFN0cmluZyBsb2NhbGVJRCl7CisgICAgICAgIElEUGFyc2VyIHBhcnNlciA9IG5ldyBJRFBhcnNlcihsb2NhbGVJRCwgdHJ1ZSk7CisgICAgICAgIFN0cmluZyBiYXNlTmFtZSA9IHBhcnNlci5nZXRCYXNlTmFtZSgpOworICAgICAgICBib29sZWFuIGZvdW5kVmFyaWFudCA9IGZhbHNlOworICAgICAgCisgICAgICAgIC8vIGZvcm1lcmx5LCB3ZSBhbHdheXMgc2V0IHRvIGVuX1VTX1BPU0lYIGlmIHRoZSBiYXNlbmFtZSB3YXMgZW1wdHksIGJ1dAorICAgICAgICAvLyBub3cgd2UgcmVxdWlyZSB0aGF0IHRoZSBlbnRpcmUgaWQgYmUgZW1wdHksIHNvIHRoYXQgIkBmb289YmFyIgorICAgICAgICAvLyB3aWxsIHBhc3MgdGhyb3VnaCB1bmNoYW5nZWQuCisgICAgICAgIC8vIHtkbGZ9IEknZCByYXRoZXIga2VlcCAiIiB1bmNoYW5nZWQuCisgICAgICAgIGlmIChsb2NhbGVJRC5lcXVhbHMoIiIpKSB7CisgICAgICAgICAgICByZXR1cm4gIiI7CisvLyAgICAgICAgICAgICAgcmV0dXJuICJlbl9VU19QT1NJWCI7CisgICAgICAgIH0KKworICAgICAgICAvLyB3ZSBoYXZlIGFuIElEIGluIHRoZSBmb3JtIHh4X1l5eXlfWlpfS0tLS0sKKworICAgICAgICBpbml0VmFyaWFudHNUYWJsZSgpOworCisgICAgICAgIC8qIFNlZSBpZiB0aGlzIGlzIGFuIGFscmVhZHkga25vd24gbG9jYWxlICovCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgX3ZhcmlhbnRzVG9LZXl3b3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKF92YXJpYW50c1RvS2V5d29yZHNbaV1bMF0uZXF1YWxzKGJhc2VOYW1lKSkgeworICAgICAgICAgICAgICAgIGZvdW5kVmFyaWFudCA9IHRydWU7CisKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSB2YWxzID0gX3ZhcmlhbnRzVG9LZXl3b3Jkc1tpXTsKKyAgICAgICAgICAgICAgICBwYXJzZXIuc2V0QmFzZU5hbWUodmFsc1sxXSk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHNbMl0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBwYXJzZXIuZGVmYXVsdEtleXdvcmRWYWx1ZSh2YWxzWzJdLCB2YWxzWzNdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiBjb252ZXJ0IHRoZSBFdXJvIHZhcmlhbnQgdG8gYXBwcm9wcmlhdGUgSUQgKi8KKyAgICAgICAgaWYgKCFmb3VuZFZhcmlhbnQpIHsKKyAgICAgICAgICAgIGludCBpZHggPSBiYXNlTmFtZS5pbmRleE9mKCJfRVVSTyIpOworICAgICAgICAgICAgaWYgKGlkeCA+IC0xKSB7CisgICAgICAgICAgICAgICAgcGFyc2VyLnNldEJhc2VOYW1lKGJhc2VOYW1lLnN1YnN0cmluZygwLCBpZHgpKTsKKyAgICAgICAgICAgICAgICBwYXJzZXIuZGVmYXVsdEtleXdvcmRWYWx1ZSgiY3VycmVuY3kiLCAiRVVSIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiB0b3RhbCBtb25kbyBoYWNrIGZvciBOb3J3ZWdpYW4sIGZvcnR1bmF0ZWx5IHRoZSBtYWluIE5ZIGNhc2UgaXMgaGFuZGxlZCBlYXJsaWVyICovCisgICAgICAgIGlmICghZm91bmRWYXJpYW50KSB7CisgICAgICAgICAgICBpZiAocGFyc2VyLmdldExhbmd1YWdlKCkuZXF1YWxzKCJuYiIpICYmIHBhcnNlci5nZXRWYXJpYW50KCkuZXF1YWxzKCJOWSIpKSB7CisgICAgICAgICAgICAgICAgcGFyc2VyLnNldEJhc2VOYW1lKGxzY3ZUb0lEKCJubiIsIHBhcnNlci5nZXRTY3JpcHQoKSwgcGFyc2VyLmdldENvdW50cnkoKSwgbnVsbCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHBhcnNlci5nZXROYW1lKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdpdmVuIGEga2V5d29yZCBhbmQgYSB2YWx1ZSwgcmV0dXJuIGEgbmV3IGxvY2FsZSB3aXRoIGFuIHVwZGF0ZWQKKyAgICAgKiBrZXl3b3JkIGFuZCB2YWx1ZS4gIElmIGtleXdvcmQgaXMgbnVsbCwgdGhpcyByZW1vdmVzIGFsbCBrZXl3b3JkcyBmcm9tIHRoZSBsb2NhbGUgaWQuCisgICAgICogT3RoZXJ3aXNlLCBpZiB0aGUgdmFsdWUgaXMgbnVsbCwgdGhpcyByZW1vdmVzIHRoZSB2YWx1ZSBmb3IgdGhpcyBrZXl3b3JkIGZyb20gdGhlCisgICAgICogbG9jYWxlIGlkLiAgT3RoZXJ3aXNlLCB0aGlzIGFkZHMvcmVwbGFjZXMgdGhlIHZhbHVlIGZvciB0aGlzIGtleXdvcmQgaW4gdGhlIGxvY2FsZSBpZC4KKyAgICAgKiBUaGUga2V5d29yZCBhbmQgdmFsdWUgbXVzdCBub3QgYmUgZW1wdHkuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgdG8gYWRkL3JlbW92ZSwgb3IgbnVsbCB0byByZW1vdmUgYWxsIGtleXdvcmRzLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYWRkL3NldCwgb3IgbnVsbCB0byByZW1vdmUgdGhpcyBwYXJ0aWN1bGFyIGtleXdvcmQuCisgICAgICogQHJldHVybiB0aGUgdXBkYXRlZCBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZSBzZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmQsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICByZXR1cm4gbmV3IFVMb2NhbGUoc2V0S2V5d29yZFZhbHVlKGxvY2FsZUlELCBrZXl3b3JkLCB2YWx1ZSksIChMb2NhbGUpbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBsb2NhbGUgaWQsIGEga2V5d29yZCwgYW5kIGEgdmFsdWUsIHJldHVybiBhIG5ldyBsb2NhbGUgaWQgd2l0aCBhbiB1cGRhdGVkCisgICAgICoga2V5d29yZCBhbmQgdmFsdWUuICBJZiBrZXl3b3JkIGlzIG51bGwsIHRoaXMgcmVtb3ZlcyBhbGwga2V5d29yZHMgZnJvbSB0aGUgbG9jYWxlIGlkLgorICAgICAqIE90aGVyd2lzZSwgaWYgdGhlIHZhbHVlIGlzIG51bGwsIHRoaXMgcmVtb3ZlcyB0aGUgdmFsdWUgZm9yIHRoaXMga2V5d29yZCBmcm9tIHRoZQorICAgICAqIGxvY2FsZSBpZC4gIE90aGVyd2lzZSwgdGhpcyBhZGRzL3JlcGxhY2VzIHRoZSB2YWx1ZSBmb3IgdGhpcyBrZXl3b3JkIGluIHRoZSBsb2NhbGUgaWQuCisgICAgICogVGhlIGtleXdvcmQgYW5kIHZhbHVlIG11c3Qgbm90IGJlIGVtcHR5LgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgbG9jYWxlIGlkIHRvIG1vZGlmeQorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHRvIGFkZC9yZW1vdmUsIG9yIG51bGwgdG8gcmVtb3ZlIGFsbCBrZXl3b3Jkcy4KKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRvIGFkZC9zZXQsIG9yIG51bGwgdG8gcmVtb3ZlIHRoaXMgcGFydGljdWxhciBrZXl3b3JkLgorICAgICAqIEByZXR1cm4gdGhlIHVwZGF0ZWQgbG9jYWxlIGlkCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgc2V0S2V5d29yZFZhbHVlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGtleXdvcmQsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBJRFBhcnNlciBwYXJzZXIgPSBuZXcgSURQYXJzZXIobG9jYWxlSUQpOworICAgICAgICBwYXJzZXIuc2V0S2V5d29yZFZhbHVlKGtleXdvcmQsIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlci5nZXROYW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRocmVlLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UuICBJZiB0aGUgbG9jYWxlCisgICAgICogZG9lc24ndCBzcGVjaWZ5IGEgbGFuZ3VhZ2UsIHJldHVybnMgdGhlIGVtcHR5IHN0cmluZy4gIE90aGVyd2lzZSwgcmV0dXJucworICAgICAqIGEgbG93ZXJjYXNlIElTTyA2MzktMi9UIGxhbmd1YWdlIGNvZGUuCisgICAgICogVGhlIElTTyA2MzktMiBsYW5ndWFnZSBjb2RlcyBjYW4gYmUgZm91bmQgb24tbGluZSBhdAorICAgICAqICAgPGEgaHJlZj0iZnRwOi8vZGt1dWcuZGsvaTE4bi9pc28tNjM5LTIudHh0Ij48Y29kZT5mdHA6Ly9ka3V1Zy5kay9pMThuL2lzby02MzktMi50eHQ8L2NvZGU+PC9hPgorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIFRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gaWYgdGhlCisgICAgICogdGhyZWUtbGV0dGVyIGxhbmd1YWdlIGFiYnJldmlhdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldElTTzNMYW5ndWFnZSgpeworICAgICAgICByZXR1cm4gZ2V0SVNPM0xhbmd1YWdlKGxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdGhyZWUtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgdGhpcyBsb2NhbGUncyBsYW5ndWFnZS4gIElmIHRoZSBsb2NhbGUKKyAgICAgKiBkb2Vzbid0IHNwZWNpZnkgYSBsYW5ndWFnZSwgcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nLiAgT3RoZXJ3aXNlLCByZXR1cm5zCisgICAgICogYSBsb3dlcmNhc2UgSVNPIDYzOS0yL1QgbGFuZ3VhZ2UgY29kZS4KKyAgICAgKiBUaGUgSVNPIDYzOS0yIGxhbmd1YWdlIGNvZGVzIGNhbiBiZSBmb3VuZCBvbi1saW5lIGF0CisgICAgICogICA8YSBocmVmPSJmdHA6Ly9ka3V1Zy5kay9pMThuL2lzby02MzktMi50eHQiPjxjb2RlPmZ0cDovL2RrdXVnLmRrL2kxOG4vaXNvLTYzOS0yLnR4dDwvY29kZT48L2E+CisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gVGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBpZiB0aGUKKyAgICAgKiB0aHJlZS1sZXR0ZXIgbGFuZ3VhZ2UgYWJicmV2aWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldElTTzNMYW5ndWFnZShTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICBpbml0TGFuZ3VhZ2VUYWJsZXMoKTsKKworICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZShsb2NhbGVJRCk7CisgICAgICAgIGludCBvZmZzZXQgPSBmaW5kSW5kZXgoX2xhbmd1YWdlcywgbGFuZ3VhZ2UpOworICAgICAgICBpZihvZmZzZXQ+PTApeworICAgICAgICAgICAgcmV0dXJuIF9sYW5ndWFnZXMzW29mZnNldF07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvZmZzZXQgPSBmaW5kSW5kZXgoX29ic29sZXRlTGFuZ3VhZ2VzLCBsYW5ndWFnZSk7CisgICAgICAgICAgICBpZiAob2Zmc2V0ID49IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gX29ic29sZXRlTGFuZ3VhZ2VzM1tvZmZzZXRdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBFTVBUWV9TVFJJTkc7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0aHJlZS1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciB0aGlzIGxvY2FsZSdzIGNvdW50cnkvcmVnaW9uLiAgSWYgdGhlIGxvY2FsZQorICAgICAqIGRvZXNuJ3Qgc3BlY2lmeSBhIGNvdW50cnksIHJldHVybnMgdGhlIGVtcHR5IHN0cmluZy4gIE90aGVyd2lzZSwgcmV0dXJucworICAgICAqIGFuIHVwcGVyY2FzZSBJU08gMzE2NiAzLWxldHRlciBjb3VudHJ5IGNvZGUuCisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gVGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBpZiB0aGUKKyAgICAgKiB0aHJlZS1sZXR0ZXIgY291bnRyeSBhYmJyZXZpYXRpb24gaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRJU08zQ291bnRyeSgpeworICAgICAgICByZXR1cm4gZ2V0SVNPM0NvdW50cnkobG9jYWxlSUQpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdGhyZWUtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgdGhpcyBsb2NhbGUncyBjb3VudHJ5L3JlZ2lvbi4gIElmIHRoZSBsb2NhbGUKKyAgICAgKiBkb2Vzbid0IHNwZWNpZnkgYSBjb3VudHJ5LCByZXR1cm5zIHRoZSBlbXB0eSBzdHJpbmcuICBPdGhlcndpc2UsIHJldHVybnMKKyAgICAgKiBhbiB1cHBlcmNhc2UgSVNPIDMxNjYgMy1sZXR0ZXIgY291bnRyeSBjb2RlLgorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIFRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gaWYgdGhlCisgICAgICogdGhyZWUtbGV0dGVyIGNvdW50cnkgYWJicmV2aWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldElTTzNDb3VudHJ5KFN0cmluZyBsb2NhbGVJRCl7CisgICAgICAgIGluaXRDb3VudHJ5VGFibGVzKCk7CisKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSBnZXRDb3VudHJ5KGxvY2FsZUlEKTsKKyAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfY291bnRyaWVzLCBjb3VudHJ5KTsKKyAgICAgICAgaWYob2Zmc2V0Pj0wKXsKKyAgICAgICAgICAgIHJldHVybiBfY291bnRyaWVzM1tvZmZzZXRdOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIG9mZnNldCA9IGZpbmRJbmRleChfb2Jzb2xldGVDb3VudHJpZXMsIGNvdW50cnkpOworICAgICAgICAgICAgaWYob2Zmc2V0Pj0wKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gX29ic29sZXRlQ291bnRyaWVzM1tvZmZzZXRdOyAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBFTVBUWV9TVFJJTkc7CisgICAgfQorICAgIAorICAgIC8vIGRpc3BsYXkgbmFtZXMKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsYW5ndWFnZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheUxhbmd1YWdlKCkgeworICAgICAgICByZXR1cm4gdG9Mb2NhbGUoKS5nZXREaXNwbGF5TGFuZ3VhZ2UoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsYW5ndWFnZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheUxhbmd1YWdlKFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gdG9Mb2NhbGUoKS5nZXREaXNwbGF5TGFuZ3VhZ2UoZGlzcGxheUxvY2FsZS50b0xvY2FsZSgpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIGxhbmd1YWdlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2UgbGFuZ3VhZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQKKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxhbmd1YWdlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUxhbmd1YWdlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gdG9Mb2NhbGUobG9jYWxlSUQpLmdldERpc3BsYXlMYW5ndWFnZSh0b0xvY2FsZShkaXNwbGF5TG9jYWxlSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbG9jYWxlJ3MgbGFuZ3VhZ2UgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBsYW5ndWFnZSB3aWxsIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxhbmd1YWdlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUxhbmd1YWdlKFN0cmluZyBsb2NhbGVJRCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiB0b0xvY2FsZShsb2NhbGVJRCkuZ2V0RGlzcGxheUxhbmd1YWdlKGRpc3BsYXlMb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgfSAgICAKKworICAgIHN0YXRpYyBTdHJpbmcgZ2V0Q3VycmVudENvdW50cnlJRChTdHJpbmcgb2xkSUQpeworICAgICAgICBpbml0Q291bnRyeVRhYmxlcygpOworICAgICAgICBpbnQgb2Zmc2V0ID0gZmluZEluZGV4KF9kZXByZWNhdGVkQ291bnRyaWVzLCBvbGRJRCk7CisgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgcmV0dXJuIF9yZXBsYWNlbWVudENvdW50cmllc1tvZmZzZXRdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvbGRJRDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFN0cmluZyBnZXRDdXJyZW50TGFuZ3VhZ2VJRChTdHJpbmcgb2xkSUQpeworICAgICAgICBpbml0TGFuZ3VhZ2VUYWJsZXMoKTsKKyAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfb2Jzb2xldGVMYW5ndWFnZXMsIG9sZElEKTsKKyAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gX3JlcGxhY2VtZW50TGFuZ3VhZ2VzW29mZnNldF07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9sZElEOyAgICAgICAgCisgICAgfQorICAgICAgICAKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUncyBzY3JpcHQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgc2NyaXB0IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5U2NyaXB0KCkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRTY3JpcHQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgc2NyaXB0IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5U2NyaXB0KFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRTY3JpcHQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIHNjcmlwdCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIHNjcmlwdCB3aWxsIGJlIGRpc3BsYXllZAorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgc2NyaXB0IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheVNjcmlwdChTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0U2NyaXB0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIHNjcmlwdCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2Ugc2NyaXB0IHdpbGwgYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgc2NyaXB0IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheVNjcmlwdChTdHJpbmcgbG9jYWxlSUQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRTY3JpcHQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBjb3VudHJ5IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5Q291bnRyeSgpIHsKKyAgICAgICAgcmV0dXJuIHRvTG9jYWxlKGxvY2FsZUlEKS5nZXREaXNwbGF5Q291bnRyeSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGNvdW50cnkgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlDb3VudHJ5KFVMb2NhbGUgZGlzcGxheUxvY2FsZSl7CisgICAgICAgIHJldHVybiB0b0xvY2FsZShsb2NhbGVJRCkuZ2V0RGlzcGxheUNvdW50cnkoZGlzcGxheUxvY2FsZS50b0xvY2FsZSgpKTsgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIGNvdW50cnkgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBjb3VudHJ5IHdpbGwgYmUgZGlzcGxheWVkCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBjb3VudHJ5IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUNvdW50cnkoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiB0b0xvY2FsZShsb2NhbGVJRCkuZ2V0RGlzcGxheUNvdW50cnkodG9Mb2NhbGUoZGlzcGxheUxvY2FsZUlEKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIGNvdW50cnkgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBjb3VudHJ5IHdpbGwgYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgY291bnRyeSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlDb3VudHJ5KFN0cmluZyBsb2NhbGVJRCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiB0b0xvY2FsZShsb2NhbGVJRCkuZ2V0RGlzcGxheUNvdW50cnkoZGlzcGxheUxvY2FsZS50b0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgdmFyaWFudCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YXJpYW50IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5VmFyaWFudCgpIHsKKyAgICAgICAgcmV0dXJuIHRvTG9jYWxlKCkuZ2V0RGlzcGxheVZhcmlhbnQoKTsgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgdmFyaWFudCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhcmlhbnQgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlWYXJpYW50KFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gdG9Mb2NhbGUoKS5nZXREaXNwbGF5VmFyaWFudChkaXNwbGF5TG9jYWxlLnRvTG9jYWxlKCkpOyAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbG9jYWxlJ3MgdmFyaWFudCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIHZhcmlhbnQgd2lsbCBiZSBkaXNwbGF5ZWQKKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhcmlhbnQgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5VmFyaWFudChTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpeworICAgICAgICByZXR1cm4gdG9Mb2NhbGUobG9jYWxlSUQpLmdldERpc3BsYXlWYXJpYW50KHRvTG9jYWxlKGRpc3BsYXlMb2NhbGVJRCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbG9jYWxlJ3MgdmFyaWFudCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIHZhcmlhbnQgd2lsbCBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YXJpYW50IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheVZhcmlhbnQoU3RyaW5nIGxvY2FsZUlELCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHRvTG9jYWxlKGxvY2FsZUlEKS5nZXREaXNwbGF5VmFyaWFudChkaXNwbGF5TG9jYWxlLnRvTG9jYWxlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBrZXl3b3JkIG5hbWUuCisgICAgICogQHNlZSAjZ2V0S2V5d29yZHMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZChTdHJpbmcga2V5d29yZCkgeworICAgICAgICByZXR1cm4ga2V5d29yZC50cmltKCkudG9Mb3dlckNhc2UoKTsgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGtleXdvcmQgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIGtleXdvcmQuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGtleXdvcmQgbmFtZS4KKyAgICAgKiBAc2VlICNnZXRLZXl3b3JkcworICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlLZXl3b3JkKFN0cmluZyBrZXl3b3JkLCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBrZXl3b3JkLnRyaW0oKS50b0xvd2VyQ2FzZSgpOyAgIAorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBrZXl3b3JkLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBrZXl3b3JkIG5hbWUuCisgICAgICogQHNlZSAjZ2V0S2V5d29yZHMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZChTdHJpbmcga2V5d29yZCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBrZXl3b3JkLnRyaW0oKS50b0xvd2VyQ2FzZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIHZhbHVlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YWx1ZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShTdHJpbmcga2V5d29yZCkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRLZXl3b3JkVmFsdWUoa2V5d29yZC50cmltKCkudG9Mb3dlckNhc2UoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIHZhbHVlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB3aG9zZSB2YWx1ZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSB2YWx1ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFsdWUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRLZXl3b3JkVmFsdWUoa2V5d29yZC50cmltKCkudG9Mb3dlckNhc2UoKSk7CisgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCB2YWx1ZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBrZXl3b3JkIHZhbHVlIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB3aG9zZSB2YWx1ZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSB2YWx1ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFsdWUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZFZhbHVlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGtleXdvcmQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0S2V5d29yZFZhbHVlKGtleXdvcmQudHJpbSgpLnRvTG93ZXJDYXNlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIHZhbHVlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIGtleXdvcmQgdmFsdWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHdob3NlIHZhbHVlIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSB2YWx1ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFsdWUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZFZhbHVlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGtleXdvcmQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRLZXl3b3JkVmFsdWUoa2V5d29yZC50cmltKCkudG9Mb3dlckNhc2UoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSBuYW1lIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxvY2FsZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZUludGVybmFsKGxvY2FsZUlELCBnZXREZWZhdWx0KCkudG9Mb2NhbGUoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUgbmFtZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIGxvY2FsZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsb2NhbGUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWVJbnRlcm5hbChsb2NhbGVJRCwgZGlzcGxheUxvY2FsZS50b0xvY2FsZSgpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlIElEIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGxvY2FsZSB3aG9zZSBuYW1lIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIGxvY2FsZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsb2NhbGUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lSW50ZXJuYWwobG9jYWxlSUQsIHRvTG9jYWxlKGRpc3BsYXlMb2NhbGVJRCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSBJRCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGUgd2hvc2UgbmFtZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBsb2NhbGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbG9jYWxlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGxvY2FsZUlELCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lSW50ZXJuYWwobG9jYWxlSUQsIGRpc3BsYXlMb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgfQorCisgICAgLy8gZGlzcGxheUxvY2FsZUlEIGlzIGNhbm9uaWNhbCwgbG9jYWxlSUQgbmVlZCBub3QgYmUgc2luY2UgcGFyc2luZyB3aWxsIGZpeCB0aGlzLgorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5TmFtZUludGVybmFsKFN0cmluZyBsb2NhbGVJRCwgTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgLy8gbGFuZworICAgICAgICAvLyBsYW5nIChzY3JpcHQsIGNvdW50cnksIHZhcmlhbnQsIGtleXdvcmQ9dmFsdWUsIC4uLikKKyAgICAgICAgLy8gc2NyaXB0LCBjb3VudHJ5LCB2YXJpYW50LCBrZXl3b3JkPXZhbHVlLCAuLi4KKworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIElEUGFyc2VyIHBhcnNlciA9IG5ldyBJRFBhcnNlcihsb2NhbGVJRCk7CisgICAgICAgIFN0cmluZ1tdIG5hbWVzID0gcGFyc2VyLmdldExhbmd1YWdlU2NyaXB0Q291bnRyeVZhcmlhbnQoKTsKKyAgICAgICAgCisgICAgICAgIExvY2FsZSBsb2NhbGUgPSB0b0xvY2FsZShsb2NhbGVJRCk7CisKKyAgICAgICAgYm9vbGVhbiBoYXZlTGFuZ3VhZ2UgPSBuYW1lc1swXS5sZW5ndGgoKSA+IDA7CisgICAgICAgIGJvb2xlYW4gb3BlblBhcmVuID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbmFtZXNbaV07CisgICAgICAgICAgICBpZiAobmFtZS5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6IG5hbWUgPSBsb2NhbGUuZ2V0RGlzcGxheUxhbmd1YWdlKGRpc3BsYXlMb2NhbGUpOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDE6IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMjogbmFtZSA9IGxvY2FsZS5nZXREaXNwbGF5Q291bnRyeShkaXNwbGF5TG9jYWxlKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAzOiBuYW1lID0gbG9jYWxlLmdldERpc3BsYXlWYXJpYW50KGRpc3BsYXlMb2NhbGUpOyBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVMYW5ndWFnZSAmICFvcGVuUGFyZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiAoIik7CisgICAgICAgICAgICAgICAgICAgICAgICBvcGVuUGFyZW4gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKG5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgTWFwIG0gPSBwYXJzZXIuZ2V0S2V5d29yZE1hcCgpOworICAgICAgICBpZiAoIW0uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBJdGVyYXRvciBrZXlzID0gbS5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoa2V5cy5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaGF2ZUxhbmd1YWdlICYgIW9wZW5QYXJlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiICgiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5QYXJlbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIE1hcC5FbnRyeSBlID0gKE1hcC5FbnRyeSlrZXlzLm5leHQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZyllLmdldEtleSgpOworICAgICAgICAgICAgICAgIFN0cmluZyB2YWwgPSAoU3RyaW5nKWUuZ2V0VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGtleSk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiPSIpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQodmFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChvcGVuUGFyZW4pIHsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIikiKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgIC8qKgorICAgICogQmFzZWQgb24gYSBIVFRQIGZvcm1hdHRlZCBsaXN0IG9mIGFjY2VwdGFibGUgbG9jYWxlcywgZGV0ZXJtaW5lIGFuIGF2YWlsYWJsZSBsb2NhbGUgZm9yIHRoZSB1c2VyLgorICAgICogTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFjY2VwdExhbmd1YWdlTGlzdCBvciBhdmFpbGFibGVMb2NhbGVzIGlzCisgICAgKiBudWxsLiAgSWYgZmFsbGJhY2sgaXMgbm9uLW51bGwsIGl0IHdpbGwgY29udGFpbiB0cnVlIGlmIGEgZmFsbGJhY2sgbG9jYWxlIChvbmUKKyAgICAqIG5vdCBpbiB0aGUgYWNjZXB0TGFuZ3VhZ2VMaXN0KSB3YXMgcmV0dXJuZWQuICBUaGUgdmFsdWUgb24gZW50cnkgaXMgaWdub3JlZC4gCisgICAgKiBVTG9jYWxlIHdpbGwgYmUgb25lIG9mIHRoZSBsb2NhbGVzIGluIGF2YWlsYWJsZUxvY2FsZXMsIG9yIHRoZSBST09UIFVMb2NhbGUgaWYKKyAgICAqIGlmIGEgUk9PVCBsb2NhbGUgd2FzIHVzZWQgYXMgYSBmYWxsYmFjayAoYmVjYXVzZSBub3RoaW5nIGVsc2UgaW4KKyAgICAqIGF2YWlsYWJsZUxvY2FsZXMgbWF0Y2hlZCkuICBObyBVTG9jYWxlIGFycmF5IGVsZW1lbnQgc2hvdWxkIGJlIG51bGw7IGJlaGF2aW9yCisgICAgKiBpcyB1bmRlZmluZWQgaWYgdGhpcyBpcyB0aGUgY2FzZS4KKyAgICAqIEBwYXJhbSBhY2NlcHRMYW5ndWFnZUxpc3QgbGlzdCBpbiBIVFRQICJBY2NlcHQtTGFuZ3VhZ2U6IiBmb3JtYXQgb2YgYWNjZXB0YWJsZSBsb2NhbGVzCisgICAgKiBAcGFyYW0gYXZhaWxhYmxlTG9jYWxlcyBsaXN0IG9mIGF2YWlsYWJsZSBsb2NhbGVzLiBPbmUgb2YgdGhlc2Ugd2lsbCBiZSByZXR1cm5lZC4KKyAgICAqIEBwYXJhbSBmYWxsYmFjayBpZiBub24tbnVsbCwgYSAxLWVsZW1lbnQgYXJyYXkgY29udGFpbmluZyBhIGJvb2xlYW4gdG8gYmUgc2V0IHdpdGggdGhlIGZhbGxiYWNrIHN0YXR1cworICAgICogQHJldHVybiBvbmUgb2YgdGhlIGxvY2FsZXMgZnJvbSB0aGUgYXZhaWxhYmxlTG9jYWxlcyBsaXN0LCBvciBudWxsIGlmIG5vbmUgbWF0Y2gKKyAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgKiBAcHJvdmlzaW9uYWwKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBhY2NlcHRMYW5ndWFnZShTdHJpbmcgYWNjZXB0TGFuZ3VhZ2VMaXN0LCAKKyAgICAgICAgICAgICAgICBVTG9jYWxlW10gYXZhaWxhYmxlTG9jYWxlcywgYm9vbGVhbltdIGZhbGxiYWNrKSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNAorICAgICAgICAgKi8KKyAgICAgICAgY2xhc3MgVUxvY2FsZUFjY2VwdExhbmd1YWdlUSBpbXBsZW1lbnRzIENvbXBhcmFibGUgeworICAgICAgICAgICAgcHJpdmF0ZSBkb3VibGUgcTsKKyAgICAgICAgICAgIHByaXZhdGUgZG91YmxlIHNlcmlhbDsKKyAgICAgICAgICAgIHB1YmxpYyBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRKGRvdWJsZSB0aGVxLCBpbnQgdGhlc2VyaWFsKSB7CisgICAgICAgICAgICAgICAgcSA9IHRoZXE7CisgICAgICAgICAgICAgICAgc2VyaWFsID0gdGhlc2VyaWFsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IG8pIHsKKyAgICAgICAgICAgICAgICBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRIG90aGVyID0gKFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEpIG87CisgICAgICAgICAgICAgICAgaWYocSA+IG90aGVyLnEpIHsgLy8gcmV2ZXJzZSAtIHRvIHNvcnQgaW4gZGVzY2VuZGluZyBvcmRlcgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHEgPCBvdGhlci5xKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihzZXJpYWwgPCBvdGhlci5zZXJpYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihzZXJpYWwgPiBvdGhlci5zZXJpYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8vIHNhbWUgb2JqZWN0CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gMXN0OiBwYXJzZSBvdXQgdGhlIGFjY2VwdExhbmd1YWdlTGlzdCBpbnRvIGFuIGFycmF5CisgICAgICAgIAorICAgICAgICBUcmVlTWFwIG1hcCA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIAorICAgICAgICBmaW5hbCBpbnQgbCA9IGFjY2VwdExhbmd1YWdlTGlzdC5sZW5ndGgoKTsKKyAgICAgICAgaW50IG47CisgICAgICAgIGZvcihuPTA7bjxsO24rKykgeworICAgICAgICAgICAgaW50IGl0ZW1FbmQgPSBhY2NlcHRMYW5ndWFnZUxpc3QuaW5kZXhPZignLCcsbik7CisgICAgICAgICAgICBpZihpdGVtRW5kID09IC0xKSB7CisgICAgICAgICAgICAgICAgaXRlbUVuZCA9IGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgcGFyYW1FbmQgPSBhY2NlcHRMYW5ndWFnZUxpc3QuaW5kZXhPZignOycsbik7CisgICAgICAgICAgICBkb3VibGUgcSA9IDEuMDsKKyAKKyAgICAgICAgICAgIGlmKChwYXJhbUVuZCAhPSAtMSkgJiYgKHBhcmFtRW5kIDwgaXRlbUVuZCkpIHsKKyAgICAgICAgICAgICAgICAvKiBzZW1pY29sb24gKDspIGlzIGNsb3NlciB0aGFuIGVuZCAoLCkgKi8KKyAgICAgICAgICAgICAgICBpbnQgdCA9IHBhcmFtRW5kICsgMTsKKyAgICAgICAgICAgICAgICB3aGlsZShDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KT09J3EnKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUoQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShhY2NlcHRMYW5ndWFnZUxpc3QuY2hhckF0KHQpKSkgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCk9PSc9JykgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlKENoYXJhY3Rlci5pc1doaXRlc3BhY2UoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsID0gYWNjZXB0TGFuZ3VhZ2VMaXN0LnN1YnN0cmluZyh0LGl0ZW1FbmQpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgcSA9IERvdWJsZS5wYXJzZURvdWJsZSh2YWwpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBuZmUpIHsKKyAgICAgICAgICAgICAgICAgICAgcSA9IDEuMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHEgPSAxLjA7IC8vZGVmYXVsdAorICAgICAgICAgICAgICAgIHBhcmFtRW5kID0gaXRlbUVuZDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIGxvYyA9IGFjY2VwdExhbmd1YWdlTGlzdC5zdWJzdHJpbmcobixwYXJhbUVuZCkudHJpbSgpOworICAgICAgICAgICAgaW50IHNlcmlhbCA9IG1hcC5zaXplKCk7CisgICAgICAgICAgICBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRIGVudHJ5ID0gbmV3IFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEocSxzZXJpYWwpOworICAgICAgICAgICAgbWFwLnB1dChlbnRyeSwgbmV3IFVMb2NhbGUoY2Fub25pY2FsaXplKGxvYykpKTsgLy8gc29ydCBpbiByZXZlcnNlIG9yZGVyLi4gICAxLjAsIDAuOSwgMC44IC4uIGV0YworICAgICAgICAgICAgbiA9IGl0ZW1FbmQ7IC8vIGdldCBuZXh0IGl0ZW0uIChuKysgd2lsbCBza2lwIG92ZXIgZGVsaW1pdGVyKQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyAyLiBwdWxsIG91dCB0aGUgbWFwIAorICAgICAgICBVTG9jYWxlIGFjY2VwdExpc3RbXSA9IChVTG9jYWxlW10pbWFwLnZhbHVlcygpLnRvQXJyYXkobmV3IFVMb2NhbGVbbWFwLnNpemUoKV0pOworICAgICAgICAKKyAgICAgICAgLy8gMy4gY2FsbCB0aGUgcmVhbCBmdW5jdGlvbgorICAgICAgICByZXR1cm4gYWNjZXB0TGFuZ3VhZ2UoYWNjZXB0TGlzdCwgYXZhaWxhYmxlTG9jYWxlcywgZmFsbGJhY2spOworICAgIH0KKyAgICAKKyAgIC8qKgorICAgICogQmFzZWQgb24gYSBsaXN0IG9mIGFjY2VwdGFibGUgbG9jYWxlcywgZGV0ZXJtaW5lIGFuIGF2YWlsYWJsZSBsb2NhbGUgZm9yIHRoZSB1c2VyLgorICAgICogTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFjY2VwdExhbmd1YWdlTGlzdCBvciBhdmFpbGFibGVMb2NhbGVzIGlzCisgICAgKiBudWxsLiAgSWYgZmFsbGJhY2sgaXMgbm9uLW51bGwsIGl0IHdpbGwgY29udGFpbiB0cnVlIGlmIGEgZmFsbGJhY2sgbG9jYWxlIChvbmUKKyAgICAqIG5vdCBpbiB0aGUgYWNjZXB0TGFuZ3VhZ2VMaXN0KSB3YXMgcmV0dXJuZWQuICBUaGUgdmFsdWUgb24gZW50cnkgaXMgaWdub3JlZC4gCisgICAgKiBVTG9jYWxlIHdpbGwgYmUgb25lIG9mIHRoZSBsb2NhbGVzIGluIGF2YWlsYWJsZUxvY2FsZXMsIG9yIHRoZSBST09UIFVMb2NhbGUgaWYKKyAgICAqIGlmIGEgUk9PVCBsb2NhbGUgd2FzIHVzZWQgYXMgYSBmYWxsYmFjayAoYmVjYXVzZSBub3RoaW5nIGVsc2UgaW4KKyAgICAqIGF2YWlsYWJsZUxvY2FsZXMgbWF0Y2hlZCkuICBObyBVTG9jYWxlIGFycmF5IGVsZW1lbnQgc2hvdWxkIGJlIG51bGw7IGJlaGF2aW9yCisgICAgKiBpcyB1bmRlZmluZWQgaWYgdGhpcyBpcyB0aGUgY2FzZS4KKyAgICAqIEBwYXJhbSBhY2NlcHRMYW5ndWFnZUxpc3QgbGlzdCBvZiBhY2NlcHRhYmxlIGxvY2FsZXMKKyAgICAqIEBwYXJhbSBhdmFpbGFibGVMb2NhbGVzIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMuIE9uZSBvZiB0aGVzZSB3aWxsIGJlIHJldHVybmVkLgorICAgICogQHBhcmFtIGZhbGxiYWNrIGlmIG5vbi1udWxsLCBhIDEtZWxlbWVudCBhcnJheSBjb250YWluaW5nIGEgYm9vbGVhbiB0byBiZSBzZXQgd2l0aCB0aGUgZmFsbGJhY2sgc3RhdHVzCisgICAgKiBAcmV0dXJuIG9uZSBvZiB0aGUgbG9jYWxlcyBmcm9tIHRoZSBhdmFpbGFibGVMb2NhbGVzIGxpc3QsIG9yIG51bGwgaWYgbm9uZSBtYXRjaAorICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAqIEBwcm92aXNpb25hbAorICAgICovCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlIGFjY2VwdExhbmd1YWdlKFVMb2NhbGVbXSBhY2NlcHRMYW5ndWFnZUxpc3QsIAorICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZVtdIGF2YWlsYWJsZUxvY2FsZXMsIGJvb2xlYW5bXSBmYWxsYmFjaykgeworICAgICAgICAvLyBmYWxsYmFja2xpc3QKKyAgICAgICAgaW50IGksajsKKyAgICAgICAgaWYoZmFsbGJhY2sgIT0gbnVsbCkgeworICAgICAgICAgICAgZmFsbGJhY2tbMF09dHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBmb3IoaT0wO2k8YWNjZXB0TGFuZ3VhZ2VMaXN0Lmxlbmd0aDtpKyspIHsKKyAgICAgICAgICAgIFVMb2NhbGUgYUxvY2FsZSA9IGFjY2VwdExhbmd1YWdlTGlzdFtpXTsKKyAgICAgICAgICAgIGJvb2xlYW5bXSBzZXRGYWxsYmFjayA9IGZhbGxiYWNrOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGZvcihqPTA7ajxhdmFpbGFibGVMb2NhbGVzLmxlbmd0aDtqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoYXZhaWxhYmxlTG9jYWxlc1tqXS5lcXVhbHMoYUxvY2FsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNldEZhbGxiYWNrICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRGYWxsYmFja1swXT1mYWxzZTsgLy8gZmlyc3QgdGltZSB3aXRoIHRoaXMgbG9jYWxlIC0gbm90IGEgZmFsbGJhY2suCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXZhaWxhYmxlTG9jYWxlc1tqXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhTG9jYWxlID0gYUxvY2FsZS5nZXRGYWxsYmFjaygpOworICAgICAgICAgICAgICAgIHNldEZhbGxiYWNrID0gbnVsbDsgLy8gRG8gbm90IHNldCBmYWxsYmFjayBpbiBsYXRlciBpdGVyYXRpb25zCisgICAgICAgICAgICB9IHdoaWxlIChhTG9jYWxlICE9IG51bGwpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgLyoqCisgICAgKiBCYXNlZCBvbiBhIEhUVFAgZm9ybWF0dGVkIGxpc3Qgb2YgYWNjZXB0YWJsZSBsb2NhbGVzLCBkZXRlcm1pbmUgYW4gYXZhaWxhYmxlIGxvY2FsZSBmb3IgdGhlIHVzZXIuCisgICAgKiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYWNjZXB0TGFuZ3VhZ2VMaXN0IG9yIGF2YWlsYWJsZUxvY2FsZXMgaXMKKyAgICAqIG51bGwuICBJZiBmYWxsYmFjayBpcyBub24tbnVsbCwgaXQgd2lsbCBjb250YWluIHRydWUgaWYgYSBmYWxsYmFjayBsb2NhbGUgKG9uZQorICAgICogbm90IGluIHRoZSBhY2NlcHRMYW5ndWFnZUxpc3QpIHdhcyByZXR1cm5lZC4gIFRoZSB2YWx1ZSBvbiBlbnRyeSBpcyBpZ25vcmVkLiAKKyAgICAqIFVMb2NhbGUgd2lsbCBiZSBvbmUgb2YgdGhlIGxvY2FsZXMgaW4gYXZhaWxhYmxlTG9jYWxlcywgb3IgdGhlIFJPT1QgVUxvY2FsZSBpZgorICAgICogYSBST09UIGxvY2FsZSB3YXMgdXNlZCBhcyBhIGZhbGxiYWNrIChiZWNhdXNlIG5vdGhpbmcgZWxzZSBpbgorICAgICogYXZhaWxhYmxlTG9jYWxlcyBtYXRjaGVkKS4gIE5vIFVMb2NhbGUgYXJyYXkgZWxlbWVudCBzaG91bGQgYmUgbnVsbDsgYmVoYXZpb3IKKyAgICAqIGlzIHVuZGVmaW5lZCBpZiB0aGlzIGlzIHRoZSBjYXNlLgorICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGNob29zZSBhIGxvY2FsZSBmcm9tIHRoZSBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKSBsaXN0IGFzIGF2YWlsYWJsZS4KKyAgICAqIEBwYXJhbSBhY2NlcHRMYW5ndWFnZUxpc3QgbGlzdCBpbiBIVFRQICJBY2NlcHQtTGFuZ3VhZ2U6IiBmb3JtYXQgb2YgYWNjZXB0YWJsZSBsb2NhbGVzCisgICAgKiBAcGFyYW0gZmFsbGJhY2sgaWYgbm9uLW51bGwsIGEgMS1lbGVtZW50IGFycmF5IGNvbnRhaW5pbmcgYSBib29sZWFuIHRvIGJlIHNldCB3aXRoIHRoZSBmYWxsYmFjayBzdGF0dXMKKyAgICAqIEByZXR1cm4gb25lIG9mIHRoZSBsb2NhbGVzIGZyb20gdGhlIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpIGxpc3QsIG9yIG51bGwgaWYgbm9uZSBtYXRjaAorICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAqIEBwcm92aW9uYWwKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBhY2NlcHRMYW5ndWFnZShTdHJpbmcgYWNjZXB0TGFuZ3VhZ2VMaXN0LCBib29sZWFuW10gZmFsbGJhY2spIHsKKyAgICAgICAgcmV0dXJuIGFjY2VwdExhbmd1YWdlKGFjY2VwdExhbmd1YWdlTGlzdCwgVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCksIGZhbGxiYWNrKTsKKyAgICB9CisKKyAgIC8qKgorICAgICogQmFzZWQgb24gYW4gb3JkZXJlZCBhcnJheSBvZiBhY2NlcHRhYmxlIGxvY2FsZXMsIGRldGVybWluZSBhbiBhdmFpbGFibGUgbG9jYWxlIGZvciB0aGUgdXNlci4KKyAgICAqIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biBpZiBhY2NlcHRMYW5ndWFnZUxpc3Qgb3IgYXZhaWxhYmxlTG9jYWxlcyBpcworICAgICogbnVsbC4gIElmIGZhbGxiYWNrIGlzIG5vbi1udWxsLCBpdCB3aWxsIGNvbnRhaW4gdHJ1ZSBpZiBhIGZhbGxiYWNrIGxvY2FsZSAob25lCisgICAgKiBub3QgaW4gdGhlIGFjY2VwdExhbmd1YWdlTGlzdCkgd2FzIHJldHVybmVkLiAgVGhlIHZhbHVlIG9uIGVudHJ5IGlzIGlnbm9yZWQuIAorICAgICogVUxvY2FsZSB3aWxsIGJlIG9uZSBvZiB0aGUgbG9jYWxlcyBpbiBhdmFpbGFibGVMb2NhbGVzLCBvciB0aGUgUk9PVCBVTG9jYWxlIGlmCisgICAgKiBpZiBhIFJPT1QgbG9jYWxlIHdhcyB1c2VkIGFzIGEgZmFsbGJhY2sgKGJlY2F1c2Ugbm90aGluZyBlbHNlIGluCisgICAgKiBhdmFpbGFibGVMb2NhbGVzIG1hdGNoZWQpLiAgTm8gVUxvY2FsZSBhcnJheSBlbGVtZW50IHNob3VsZCBiZSBudWxsOyBiZWhhdmlvcgorICAgICogaXMgdW5kZWZpbmVkIGlmIHRoaXMgaXMgdGhlIGNhc2UuCisgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgY2hvb3NlIGEgbG9jYWxlIGZyb20gdGhlIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpIGxpc3QgYXMgYXZhaWxhYmxlLgorICAgICogQHBhcmFtIGFjY2VwdExhbmd1YWdlTGlzdCBvcmRlcmVkIGFycmF5IG9mIGFjY2VwdGFibGUgbG9jYWxlcyAocHJlZmVycmVkIGFyZSBsaXN0ZWQgZmlyc3QpCisgICAgKiBAcGFyYW0gZmFsbGJhY2sgaWYgbm9uLW51bGwsIGEgMS1lbGVtZW50IGFycmF5IGNvbnRhaW5pbmcgYSBib29sZWFuIHRvIGJlIHNldCB3aXRoIHRoZSBmYWxsYmFjayBzdGF0dXMKKyAgICAqIEByZXR1cm4gb25lIG9mIHRoZSBsb2NhbGVzIGZyb20gdGhlIFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpIGxpc3QsIG9yIG51bGwgaWYgbm9uZSBtYXRjaAorICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAqIEBwcm92aXNpb25hbAorICAgICovCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlIGFjY2VwdExhbmd1YWdlKFVMb2NhbGVbXSBhY2NlcHRMYW5ndWFnZUxpc3QsIGJvb2xlYW5bXSBmYWxsYmFjaykgeworICAgICAgICByZXR1cm4gYWNjZXB0TGFuZ3VhZ2UoYWNjZXB0TGFuZ3VhZ2VMaXN0LCBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKSwgZmFsbGJhY2spOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy8uY2xhc3NwYXRoIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LnRlc3RzLy5jbGFzc3BhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmI2OWQ4MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy8uY2xhc3NwYXRoCkBAIC0wLDAgKzEsOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxjbGFzc3BhdGg+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0ic3JjIi8+CisJPGNsYXNzcGF0aGVudHJ5IGV4cG9ydGVkPSJ0cnVlIiBzb3VyY2VwYXRoPSJpY3U0anRzcmMuemlwIiBraW5kPSJsaWIiIHBhdGg9ImljdTRqdGVzdHMuamFyIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UucGRlLmNvcmUucmVxdWlyZWRQbHVnaW5zIi8+CisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+Cis8L2NsYXNzcGF0aD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy8ucHJvamVjdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy8ucHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDA2ZjI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LnRlc3RzLy5wcm9qZWN0CkBAIC0wLDAgKzEsMjggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdERlc2NyaXB0aW9uPgorCTxuYW1lPmNvbS5pYm0uaWN1LnRlc3RzPC9uYW1lPgorCTxjb21tZW50PjwvY29tbWVudD4KKwk8cHJvamVjdHM+CisJPC9wcm9qZWN0cz4KKwk8YnVpbGRTcGVjPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+CisJCQk8YXJndW1lbnRzPgorCQkJPC9hcmd1bWVudHM+CisJCTwvYnVpbGRDb21tYW5kPgorCQk8YnVpbGRDb21tYW5kPgorCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KKwkJCTxhcmd1bWVudHM+CisJCQk8L2FyZ3VtZW50cz4KKwkJPC9idWlsZENvbW1hbmQ+CisJPC9idWlsZFNwZWM+CisJPG5hdHVyZXM+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPgorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4KKwk8L25hdHVyZXM+Cis8L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjFlMDgyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1LnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0wLDAgKzEsMTMgQEAKK01hbmlmZXN0LVZlcnNpb246IDEuMAorQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgorQnVuZGxlLU5hbWU6IElDVSBUZXN0IEZyYWdtZW50CitCdW5kbGUtU3ltYm9saWNOYW1lOiBjb20uaWJtLmljdS50ZXN0cworQnVuZGxlLVZlcnNpb246IDEuMC4wCitCdW5kbGUtVmVuZG9yOiBJQk0KK0ZyYWdtZW50LUhvc3Q6IGNvbS5pYm0uaWN1O2J1bmRsZS12ZXJzaW9uPSJbMy40LjIsMy41LjApIgorQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luCitCdW5kbGUtQ29weXJpZ2h0OiBMaWNlbnNlZCBNYXRlcmlhbHMgLSBQcm9wZXJ0eSBvZiBJQk0gCisgKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwMC0yMDA2LiBBbGwgUmlnaHRzIFJlc2VydmVkLiAKKyBJQk0gaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBJQk0gQ29ycC4KK1JlcXVpcmUtQnVuZGxlOiBvcmcuanVuaXQKK0J1bmRsZS1DbGFzc1BhdGg6IGljdTRqdGVzdHMuamFyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvYnVpbGQucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy9idWlsZC5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkMGQ0MDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvYnVpbGQucHJvcGVydGllcwpAQCAtMCwwICsxLDE0IEBACitzb3VyY2UuLiA9IHNyYy8KK291dHB1dC4uID0gYmluLworYmluLmluY2x1ZGVzID0gTUVUQS1JTkYvLFwKKyAgICAgICAgICAgICAgIC4sXAorICAgICAgICAgICAgICAgLi9pY3U0anRlc3RzLmphcixcCisgICAgICAgICAgICAgICAuY2xhc3NwYXRoLFwKKyAgICAgICAgICAgICAgIGJpbi8sXAorICAgICAgICAgICAgICAgYnVpbGQucHJvcGVydGllcyxcCisgICAgICAgICAgICAgICAucHJvamVjdAorc3JjLmluY2x1ZGVzID0gc3JjLyxcCisgICAgICAgICAgICAgICBidWlsZC5wcm9wZXJ0aWVzLFwKKyAgICAgICAgICAgICAgIC5jbGFzc3BhdGgsXAorICAgICAgICAgICAgICAgLnByb2plY3QsXAorICAgICAgICAgICAgICAgTUVUQS1JTkYvCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL1VuaXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UudGVzdHMvc3JjL2NvbS9pYm0vaWN1L3Rlc3RzL1VuaXRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWFiNmUwOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS50ZXN0cy9zcmMvY29tL2libS9pY3UvdGVzdHMvVW5pdFRlc3QuamF2YQpAQCAtMCwwICsxLDE1MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXN0czsKKworaW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RQYXJhbXM7CisKKy8vaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKKy8vaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CisvL2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworLy9pbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKKy8vaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworcHVibGljIGNsYXNzIFVuaXRUZXN0IGV4dGVuZHMgVGVzdENhc2UgeworICAgIAorICAgIHB1YmxpYyB2b2lkIHRlc3RDYWxlbmRhcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJDYWxlbmRhciIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RDb2xsYXRvcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJDb2xsYXRvciIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RDb21wcmVzc2lvbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJDb21wcmVzc2lvbiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3REaWFnQmlnRGVjaW1hbCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJEaWFnQmlnRGVjaW1hbCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RGb3JtYXQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiRm9ybWF0Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEltcGwoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiSW1wbCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3ROb3JtYWxpemVyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIk5vcm1hbGl6ZXIiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0UHJvcGVydHkoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiUHJvcGVydHkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0UkJCSSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJSQkJJIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFNlYXJjaFRlc3QoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiU2VhcmNoVGVzdCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RTdHJpbmdQcmVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIlN0cmluZ1ByZXAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0VGVzdENoYXJzZXREZXRlY3RvcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBydW5VdGlsaXR5KCJUZXN0Q2hhcnNldERldGVjdG9yIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFRlc3RVQ2hhcmFjdGVySXRlcmF0b3IoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiVGVzdFVDaGFyYWN0ZXJJdGVyYXRvciIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RUaW1lU2NhbGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiVGltZVNjYWxlIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFRpbWVab25lKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIlRpbWVab25lIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFRyYW5zbGl0KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJ1blV0aWxpdHkoIlRyYW5zbGl0Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFV0aWwoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcnVuVXRpbGl0eSgiVXRpbCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJ1blV0aWxpdHkoU3RyaW5nIHRlc3RuYW1lKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVGVzdFBhcmFtcyBwYXJhbXMgPSBUZXN0UGFyYW1zLmNyZWF0ZSgiLW4iLCBudWxsKTsKKyAgICAgICAgVGVzdEZtd2sgdGVzdCA9IG5ldyBUZXN0QWxsKCk7CisgICAgICAgIHRlc3QucmVzb2x2ZVRhcmdldChwYXJhbXMsIHRlc3RuYW1lKS5ydW4oKTsKKyAgICAgICAgaWYgKHBhcmFtcy5lcnJvckNvdW50ID4gMCkgeworICAgICAgICAgICAgZmFpbChwYXJhbXMuZXJyb3JTdW1tYXJ5LnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCQorICAgIC8vIHNhbXBsZSB0ZXN0cyBmcm9tIElDVTRKIHRlc3Qgc3VpdGUKKworICAgIC8vIENhbGVuZGFyCisvLyAgICBwdWJsaWMgdm9pZCB0ZXN0Q2FsZW5kYXJTaW1wbGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKy8vICAgIAlUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisvLyAgICAJR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIodHopOworLy8gICAgCWdjLnNldCgyMDA1LDksMTcsMTQsMTUsMzMpOworLy8gICAgCURhdGUgdGltZSA9IGdjLmdldFRpbWUoKTsKKy8vICAgIAkKKy8vICAgIAlmaW5hbCBTdHJpbmdbXSBjYWxlbmRhcnMgPSB7CisvLyAgICAJCSJidWRkaGlzdCIsICJjaGluZXNlIiwgImNvcHRpYyIsICJldGhpb3BpYyIsICJncmVnb3JpYW4iLCAKKy8vICAgIAkJImhlYnJldyIsICJpc2xhbWljIiwgImlzbGFtaWMtY2l2aWwiLCAiamFwYW5lc2UiCisvLyAgICAJfTsKKy8vICAgIAlmaW5hbCBTdHJpbmdbXSB1c3RpbWVzID0geworLy8gICAgCQkiTW9uZGF5LCBPY3RvYmVyIDE3LCAyNTQ4IEJFIDI6MTU6MzMgUE0gUERUIiwKKy8vICAgIAkJIk1vbmRheSAyMng3OC05LTE1IDI6MTU6MzMgUE0gUERUIiwKKy8vICAgIAkJIk1vbmRheSwgQmFiYSA3LCAxNzIyIDI6MTU6MzMgUE0gUERUIiwKKy8vICAgIAkJIk1vbmRheSwgVGVrZW10IDcsIDE5OTggMjoxNTozMyBQTSBQRFQiLAorLy8gICAgCQkiTW9uZGF5LCBPY3RvYmVyIDE3LCAyMDA1IDI6MTU6MzMgUE0gUERUIiwKKy8vICAgIAkJIk1vbmRheSwgVGlzaHJpIDE0LCA1NzY2IDI6MTU6MzMgUE0gUERUIiwKKy8vICAgIAkJIk1vbmRheSwgUmFtYWRhbiAxNCwgMTQyNiAyOjE1OjMzIFBNIFBEVCIsCisvLyAgICAJCSJNb25kYXksIFJhbWFkYW4gMTQsIDE0MjYgMjoxNTozMyBQTSBQRFQiLAorLy8gICAgCQkiTW9uZGF5LCBPY3RvYmVyIDE3LCAxNyBIZWlzZWkgMjoxNTozMyBQTSBQRFQiLAorLy8gICAgCX07CisvLyAgICAJZmluYWwgU3RyaW5nW10gZGV0aW1lcyA9IHsKKy8vICAgIAkJIk1vbnRhZywgT2t0b2JlciAxNywgMjU0OCBCRSAyOjE1OjMzIG5hY2htLiBHTVQtMDc6MDAiLAorLy8gICAgCQkiTW9udGFnIDIyeDc4LTktMTUgMjoxNTozMyBuYWNobS4gR01ULTA3OjAwIiwKKy8vICAgIAkJIk1vbnRhZywgNy4gQmFiYSAxNzIyIDE0OjE1IFVociBHTVQtMDc6MDAiLAorLy8gICAgCQkiTW9udGFnLCA3LiBUZWtlbXQgMTk5OCAxNDoxNSBVaHIgR01ULTA3OjAwIiwKKy8vICAgIAkJIk1vbnRhZywgMTcuIE9rdG9iZXIgMjAwNSAxNDoxNSBVaHIgR01ULTA3OjAwIiwKKy8vICAgIAkJIk1vbnRhZywgMTQuIFRpc2hyaSA1NzY2IDE0OjE1IFVociBHTVQtMDc6MDAiLAorLy8gICAgCQkiTW9udGFnLCAxNC4gUmFtYWRhbiAxNDI2IDE0OjE1IFVociBHTVQtMDc6MDAiLAorLy8gICAgCQkiTW9udGFnLCAxNC4gUmFtYWRhbiAxNDI2IDE0OjE1IFVociBHTVQtMDc6MDAiLAorLy8gICAgCQkiTW9udGFnLCBPa3RvYmVyIDE3LCAxNyBIZWlzZWkgMjoxNTozMyBuYWNobS4gR01ULTA3OjAwIiwKKy8vICAgIAl9OworLy8gICAgCQorLy8gICAgCVVMb2NhbGVbXSBsb2NhbGVzID0ge1VMb2NhbGUuVVMsIFVMb2NhbGUuR0VSTUFOWSB9OworLy8gICAgCVN0cmluZ1tdW10gdGltZXMgPSB7IHVzdGltZXMsIGRldGltZXMgfTsKKy8vICAgIAlmb3IgKGludCBqID0gMDsgaiA8IGxvY2FsZXMubGVuZ3RoOyArK2opIHsKKy8vICAgIAkJVUxvY2FsZSB1bCA9IG5ldyBVTG9jYWxlKCJlbl9VUyIpOworLy8gICAgCQlmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFycy5sZW5ndGg7ICsraSkgeworLy8gICAgCQkJdWwgPSB1bC5zZXRLZXl3b3JkVmFsdWUoImNhbGVuZGFyIiwgY2FsZW5kYXJzW2ldKTsKKy8vICAgIAkJCUNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHVsKTsKKy8vICAgIAkJCURhdGVGb3JtYXQgZm10ID0gY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBsb2NhbGVzW2pdKTsKKy8vICAgIAkJCVN0cmluZyByZXN1bHQgPSBmbXQuZm9ybWF0KHRpbWUpOworLy8gIAkJCSAgICBTeXN0ZW0ub3V0LnByaW50bG4oY2FsZW5kYXJzW2ldICsgIjogIiArIHJlc3VsdCk7CisvLyAgICAJCQlpZiAoIXJlc3VsdC5lcXVhbHModGltZXNbal1baV0pKSB7CisvLyAgICAJCQkJZmFpbCgiY2FsZW5kYXI6ICIgKyBjYWxlbmRhcnNbaV0pOworLy8gICAgCQkJfQorLy8gICAgCQl9CisvLyAgICAJfQorLy8gICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1Ly5jbGFzc3BhdGggYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UvLmNsYXNzcGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTFjOGYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1Ly5jbGFzc3BhdGgKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGNsYXNzcGF0aD4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIiLz4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5wZGUuY29yZS5yZXF1aXJlZFBsdWdpbnMiLz4KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4KKzwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1Ly5wcm9qZWN0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1Ly5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3MzcxNGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UvLnByb2plY3QKQEAgLTAsMCArMSwyOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0RGVzY3JpcHRpb24+CisJPG5hbWU+Y29tLmlibS5pY3U8L25hbWU+CisJPGNvbW1lbnQ+PC9jb21tZW50PgorCTxwcm9qZWN0cz4KKwk8L3Byb2plY3RzPgorCTxidWlsZFNwZWM+CisJCTxidWlsZENvbW1hbmQ+CisJCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuTWFuaWZlc3RCdWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwk8L2J1aWxkU3BlYz4KKwk8bmF0dXJlcz4KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+CisJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPgorCTwvbmF0dXJlcz4KKzwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1L01FVEEtSU5GL01BTklGRVNULk1GIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1L01FVEEtSU5GL01BTklGRVNULk1GCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MWMzNTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTAsMCArMSwyMiBAQAorTWFuaWZlc3QtVmVyc2lvbjogMS4wCitCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCitCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUKK0J1bmRsZS1TeW1ib2xpY05hbWU6IGNvbS5pYm0uaWN1OyBzaW5nbGV0b246PXRydWUKK0J1bmRsZS1WZXJzaW9uOiBAQlVJTERfVkVSU0lPTkAKK0J1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUKK0J1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbgorQnVuZGxlLUNvcHlyaWdodDogQENPUFlSSUdIVEAKK0V4cG9ydC1QYWNrYWdlOiBjb20uaWJtLmljdS5sYW5nO3ZlcnNpb249IkBTUEVDX1ZFUlNJT05AIiwKKyBjb20uaWJtLmljdS5tYXRoO3ZlcnNpb249IkBTUEVDX1ZFUlNJT05AIiwKKyBjb20uaWJtLmljdS50ZXh0O3ZlcnNpb249IkBTUEVDX1ZFUlNJT05AIiwKKyBjb20uaWJtLmljdS51dGlsO3ZlcnNpb249IkBTUEVDX1ZFUlNJT05AIiwKKyBjb20uaWJtLmljdS5pbXBsO3gtaW50ZXJuYWw6PXRydWUsCisgY29tLmlibS5pY3UuaW1wbC5kYXRhO3gtaW50ZXJuYWw6PXRydWUsCisgY29tLmlibS5pY3UuaW1wbC5kYXRhLmljdWR0QFZFUlNJT05fTlVNQkVSQGI7eC1pbnRlcm5hbDo9dHJ1ZSwKKyBjb20uaWJtLmljdS5pbXBsLmRhdGEuaWN1ZHRAVkVSU0lPTl9OVU1CRVJAYi5jb2xsO3gtaW50ZXJuYWw6PXRydWUsCisgY29tLmlibS5pY3UuaW1wbC5kYXRhLmljdWR0QFZFUlNJT05fTlVNQkVSQGIucmJuZjt4LWludGVybmFsOj10cnVlLAorIGNvbS5pYm0uaWN1LmltcGwuZGF0YS5pY3VkdEBWRVJTSU9OX05VTUJFUkBiLnRyYW5zbGl0O3gtaW50ZXJuYWw6PXRydWUKK0VjbGlwc2UtTGF6eVN0YXJ0OiB0cnVlCitCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogQ0RDLTEuMC9Gb3VuZGF0aW9uLTEuMCwKKyBKMlNFLTEuMworQnVuZGxlLUNsYXNzUGF0aDogaWN1LWRhdGEuamFyLC4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS9idWlsZC5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1L2J1aWxkLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEyNDBlMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9jb20uaWJtLmljdS9idWlsZC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsOSBAQAorc291cmNlLi4gPSBzcmMvCitvdXRwdXQuLiA9IGJpbi8KK3NyYy5pbmNsdWRlcyA9IGFib3V0Lmh0bWwsXAorICAgICAgICAgICAgICAgYWJvdXRfZmlsZXMvCitiaW4uaW5jbHVkZXMgPSBhYm91dF9maWxlcy8sXAorICAgICAgICAgICAgICAgLixcCisgICAgICAgICAgICAgICBhYm91dC5odG1sLFwKKyAgICAgICAgICAgICAgIHBsdWdpbi5wcm9wZXJ0aWVzLFwKKyAgICAgICAgICAgICAgIE1FVEEtSU5GLwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1L3BsdWdpbi5wcm9wZXJ0aWVzIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL2NvbS5pYm0uaWN1L3BsdWdpbi5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhZDBhMzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvY29tLmlibS5pY3UvcGx1Z2luLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxMiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb3B5cmlnaHQgKGMpIDIwMDAsIDIwMDYgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyAKKyMgQ29udHJpYnV0b3JzOgorIyAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitwbHVnaW5OYW1lID0gSW50ZXJuYXRpb25hbCBDb21wb25lbnRzIGZvciBVbmljb2RlIGZvciBKYXZhIChJQ1U0SikKK3Byb3ZpZGVyTmFtZSA9IElCTSBDb3Jwb3JhdGlvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvZWNsaXBzZS9taXNjL2Fib3V0Lmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvbWlzYy9hYm91dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyMDdkMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvbWlzYy9hYm91dC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iCisgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIi8+Cis8dGl0bGU+QWJvdXQ8L3RpdGxlPgorPC9oZWFkPgorPGJvZHkgbGFuZz0iRU4tVVMiPgorPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CisgCis8cD5NYXkgMTAsIDIwMDY8L3A+CQorPGgzPkxpY2Vuc2U8L2gzPgorCis8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKK2luZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KKworPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKK2JlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eSAoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkKK2FwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gIENoZWNrIHRoZSBSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSB0aGF0IHdhcyAKK3Byb3ZpZGVkIHdpdGggdGhlIENvbnRlbnQuICBJZiBubyBzdWNoIGxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiAgVW5sZXNzIG90aGVyd2lzZQoraW5kaWNhdGVkIGJlbG93LCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlIGNvZGUgaW4gdGhlIENvbnRlbnQKK2FuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnPC9hPi48L3A+CisKKzxoMz5Tb3VyY2UgQ29kZTwvaDM+Cis8cD5UaGlzIHBsdWctaW4gY29udGFpbnMgc291cmNlIGNvZGUgemlwIGZpbGVzICgmcXVvdDtTb3VyY2UgWmlwcyZxdW90OykgdGhhdCBjb3JyZXNwb25kIHRvIGJpbmFyeSBjb250ZW50IGluIG90aGVyIHBsdWctaW5zLiBUaGVzZSBTb3VyY2UgWmlwcyBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgZGlmZmVyZW50IGxpY2Vuc2UKK2FncmVlbWVudHMgYW5kL29yIG5vdGljZXMuIERldGFpbHMgYWJvdXQgdGhlc2UgbGljZW5zZSBhZ3JlZW1lbnRzIGFuZCBub3RpY2VzIGFyZSBjb250YWluZWQgaW4gJnF1b3Q7YWJvdXQuaHRtbCZxdW90OyBmaWxlcyAoJnF1b3Q7QWJvdXRzJnF1b3Q7KSBsb2NhdGVkIGluIHN1Yi1kaXJlY3RvcmllcyBpbiB0aGUKK3NyYy8gZGlyZWN0b3J5IG9mIHRoaXMgcGx1Zy1pbi4gU3VjaCBBYm91dHMgZ292ZXJuIHlvdXIgdXNlIG9mIHRoZSBTb3VyY2UgWmlwcyBpbiB0aGF0IGRpcmVjdG9yeSwgbm90IHRoZSBFUEwuPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL21pc2MvYWJvdXRfaWN1Lmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L2VjbGlwc2UvbWlzYy9hYm91dF9pY3UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTMxMjhmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi9lY2xpcHNlL21pc2MvYWJvdXRfaWN1Lmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIKKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiLz4KKzx0aXRsZT5BYm91dDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBsYW5nPSJFTi1VUyI+Cis8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KKyAKKzxwPlNlcHRlbWJlciAxLCAyMDA2PC9wPgkKKzxoMz5MaWNlbnNlPC9oMz4KKworPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCitpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0ZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CisKKzxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCitiZWluZyByZWRpc3RyaWJ1dGVkIGJ5IGFub3RoZXIgcGFydHkgKCZxdW90O1JlZGlzdHJpYnV0b3ImcXVvdDspIGFuZCBkaWZmZXJlbnQgdGVybXMgYW5kIGNvbmRpdGlvbnMgbWF5CithcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUgaW4gdGhlIENvbnRlbnQuICBDaGVjayB0aGUgUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgCitwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiAgSWYgbm8gc3VjaCBsaWNlbnNlIGV4aXN0cywgY29udGFjdCB0aGUgUmVkaXN0cmlidXRvci4gIFVubGVzcyBvdGhlcndpc2UKK2luZGljYXRlZCBiZWxvdywgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFUEwgc3RpbGwgYXBwbHkgdG8gYW55IHNvdXJjZSBjb2RlIGluIHRoZSBDb250ZW50CithbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LjwvcD4KKworCQkKKwkJPGgzPlRoaXJkIFBhcnR5IENvbnRlbnQ8L2gzPgorCQk8cD5UaGUgQ29udGVudCBpbmNsdWRlcyBpdGVtcyB0aGF0IGhhdmUgYmVlbiBzb3VyY2VkIGZyb20gdGhpcmQgcGFydGllcyBhcyBzZXQgb3V0IGJlbG93LiBJZiB5b3UgCisJCWRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgZm9sbG93aW5nIGlzIHByb3ZpZGVkIAorCQlmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5LCBhbmQgeW91IHNob3VsZCBsb29rIHRvIHRoZSBSZWRpc3RyaWJ1dG9yJ3MgbGljZW5zZSBmb3IgCisJCXRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZS48L3A+CisKKwkJPHA+PHN0cm9uZz5JQ1U0SiAzLjQuNTwvc3Ryb25nPiA8YnIvPjxici8+CisJCVRoZSBwbHVnLWluIGluY2x1ZGVzIHNvZnR3YXJlICgmcXVvdDtJQ1U0SiZxdW90OykgZGV2ZWxvcGVkIGJ5IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKwkJQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKwkJPGJyLz48YnIvPgorCQlJQ1U0SiBpczoKKwkJPGJsb2NrcXVvdGU+CisJCUNvcHlyaWdodCAoYykgMTk5NS0yMDA2IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVyczxici8+CisJCUFsbCByaWdodHMgcmVzZXJ2ZWQuIAorCQk8L2Jsb2NrcXVvdGU+CisJCVlvdXIgdXNlIG9mIElDVTRKIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBJQ1U0SiBsaWNlbnNlLiAgQSBjb3B5IG9mIHRoZQorCQlsaWNlbnNlIGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZSA8YSBocmVmPSJhYm91dF9maWxlcy9saWNlbnNlLmh0bWwiIHRhcmdldD0iX2JsYW5rIj5hYm91dF9maWxlcy9saWNlbnNlLmh0bWw8L2E+LgorCQk8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9BYnN0cmFjdFRlc3RMb2cuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9BYnN0cmFjdFRlc3RMb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWI5NWQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L0Fic3RyYWN0VGVzdExvZy5qYXZhCkBAIC0wLDAgKzEsOTMgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VGVzdExvZyBpbXBsZW1lbnRzIFRlc3RMb2cgeworCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGRvbnRTa2lwRm9yVmVyc2lvbiA9IGZhbHNlOworICAgIHB1YmxpYyBib29sZWFuIHNraXBJZkJlZm9yZUlDVShpbnQgbWFqb3IsIGludCBtaW5vcikgeworICAgICAgICBpZiAoZG9udFNraXBGb3JWZXJzaW9uIHx8IFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmNvbXBhcmVUbyhWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShtYWpvciwgbWlub3IpKSA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSAKKyAgICAgICAgbG9nbG4oIlRlc3Qgc2tpcHBlZCBiZWZvcmUgSUNVIHJlbGVhc2UgIiArIG1ham9yICsgIi4iICsgbWlub3IpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQWRkIGEgbWVzc2FnZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBsb2coU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgbXNnKG1lc3NhZ2UsIExPRywgdHJ1ZSwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBhIG1lc3NhZ2UgYW5kIG5ld2xpbmUuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgbG9nbG4oU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgbXNnKG1lc3NhZ2UsIExPRywgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwb3J0IGFuIGVycm9yLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGVycihTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBtc2cobWVzc2FnZSwgRVJSLCB0cnVlLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwb3J0IGFuIGVycm9yIGFuZCBuZXdsaW5lLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGVycmxuKFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIG1zZyhtZXNzYWdlLCBFUlIsIHRydWUsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcG9ydCBhIHdhcm5pbmcgKGdlbmVyYWxseSBtaXNzaW5nIHRlc3RzIG9yIGRhdGEpLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHdhcm4oU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgbXNnKG1lc3NhZ2UsIFdBUk4sIHRydWUsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBvcnQgYSB3YXJuaW5nIChnZW5lcmFsbHkgbWlzc2luZyB0ZXN0cyBvciBkYXRhKSBhbmQgbmV3bGluZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB3YXJubG4oU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgbXNnKG1lc3NhZ2UsIFdBUk4sIHRydWUsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFZlY3RvciBmb3IgbG9nZ2luZy4gIENhbGxlcnMgY2FuIGZvcmNlIHRoZSBsb2dnaW5nIHN5c3RlbSB0bworICAgICAqIG5vdCBpbmNyZW1lbnQgdGhlIGVycm9yIG9yIHdhcm5pbmcgbGV2ZWwgYnkgcGFzc2luZyBmYWxzZSBmb3IgaW5jQ291bnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgbWVzc2FnZSB0byBvdXRwdXQuCisgICAgICogQHBhcmFtIGxldmVsIHRoZSBtZXNzYWdlIGxldmVsLCBlaXRoZXIgTE9HLCBXQVJOLCBvciBFUlIuCisgICAgICogQHBhcmFtIGluY0NvdW50IGlmIHRydWUsIGluY3JlbWVudHMgdGhlIHdhcm5pbmcgb3IgZXJyb3IgY291bnQKKyAgICAgKiBAcGFyYW0gbmV3bG4gaWYgdHJ1ZSwgZm9yY2VzIGEgbmV3bGluZSBhZnRlciB0aGUgbWVzc2FnZQorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIG1zZyhTdHJpbmcgbWVzc2FnZSwgaW50IGxldmVsLCBib29sZWFuIGluY0NvdW50LCBib29sZWFuIG5ld2xuKTsKKworICAgIC8qKgorICAgICAqIE5vdCBzdXJlIGlmIHRoaXMgY2xhc3MgaXMgdXNlZnVsLiAgVGhpcyBsZXRzIHlvdSBsb2cgd2l0aG91dCBmaXJzdCB0ZXN0aW5nCisgICAgICogaWYgbG9nZ2luZyBpcyBlbmFibGVkLiAgVGhlIERlbGVnYXRpbmcgbG9nIHdpbGwgZWl0aGVyIHNpbGVudGx5IGlnbm9yZSB0aGUKKyAgICAgKiBtZXNzYWdlLCBpZiB0aGUgZGVsZWdhdGUgaXMgbnVsbCwgb3IgZm9yd2FyZCBpdCB0byB0aGUgZGVsZWdhdGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBEZWxlZ2F0aW5nTG9nIGV4dGVuZHMgQWJzdHJhY3RUZXN0TG9nIHsKKyAgICAgICAgcHJpdmF0ZSBUZXN0TG9nIGRlbGVnYXRlOworCisgICAgICAgIHB1YmxpYyBEZWxlZ2F0aW5nTG9nKFRlc3RMb2cgZGVsZWdhdGUpIHsKKyAgICAgICAgICAgIHRoaXMuZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIG1zZyhTdHJpbmcgbWVzc2FnZSwgaW50IGxldmVsLCBib29sZWFuIGluY0NvdW50LCBib29sZWFuIG5ld2xuKSB7CisgICAgICAgICAgICBpZiAoZGVsZWdhdGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGRlbGVnYXRlLm1zZyhtZXNzYWdlLCBsZXZlbCwgaW5jQ291bnQsIG5ld2xuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9Nb2R1bGVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvTW9kdWxlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3MDg1NjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvTW9kdWxlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjY4IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdERhdGFNb2R1bGUuVGVzdERhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdERhdGFNb2R1bGUuRGF0YU1hcDsKKworLyoqCisgKiBBIGNvbnZlbmllbmNlIGV4dGVuc2lvbiBvZiBUZXN0Rm13ayBmb3IgdXNlIGJ5IGRhdGEgbW9kdWxlLWRyaXZlbgorICogdGVzdHMuICBUZXN0cyBjYW4gaW1wbGVtZW50IHRoaXMgaWYgdGhleSBtYWtlIGV4dGVuc2l2ZSB1c2Ugb2YKKyAqIGluZm9ybWF0aW9uIGluIGEgVGVzdERhdGFNb2R1bGUuICBUaGUgbW9kdWxlIHNob3VsZCBiZSBvcGVuYWJsZQorICogdXNpbmcgVGVzdERhdGFNb2R1bGUub3BlbigpIHBhc3NpbmcgaW4gdGhlIGNsYXNzIG5hbWUgb2YgdGhpcyB0ZXN0CisgKiArICJEYXRhIi4gIEZvciBleGFtcGxlLCBhIHRlc3QgbmFtZWQgTXlUZXN0IHdvdWxkIGhhdmUgYSBtb2R1bGUKKyAqIG5hbWVkIE15VGVzdERhdGEuICBFYWNoIHRlc3QgbWV0aG9kIHNob3VsZCBhbHNvIGhhdmUgYQorICogY29ycmVzcG9uZGluZyB0ZXN0IGRhdGEgaW4gdGhlIG1vZHVsZSB3aG9zZSBuYW1lIG1hdGNoZXMgdGhlIHRlc3QKKyAqIG1ldGhvZCBuYW1lLgorICoKKyAqIFN1YmNsYXNzZXMgY2FuIGFsbG93IGZvciB0ZXN0IG1ldGhvZHMgdGhhdCBkb24ndCB1c2UgZGF0YSBmcm9tIHRoZQorICogbW9kZXVsIGJ5IG92ZXJyaWRpbmcgdmFsaWRhdGVNZXRob2QgdG8gcmV0dXJuIHRydWUgZm9yIHRoZXNlCisgKiBtZXRob2RzLiAgVGVzdHMgYXJlIGFsc28gZnJlZSB0byBpbnN0YW50aWF0ZSB0aGVpciBvd24gbW9kdWxlcyBhbmQKKyAqIHJ1biBmcm9tIHRoZW0sIHRob3VnaCBjYXJlIHNob3VsZCBiZSB0YWtlbiBub3QgdG8gaW50ZXJmZXJlIHdpdGgKKyAqIHRoZSBtZXRob2RzIGluIHRoaXMgY2xhc3MuCisgKgorICogU2VlIE1vZHVsZVRlc3RTYW1wbGUgZm9yIGFuIGV4YW1wbGUuICAqLworcHVibGljIGNsYXNzIE1vZHVsZVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHJpdmF0ZSBUZXN0RGF0YU1vZHVsZSBtOworICAgIHByaXZhdGUgVGVzdERhdGEgdDsKKyAgICBwcml2YXRlIFN0cmluZyBtZXRob2ROYW1lOworCisgICAgcHJvdGVjdGVkIE1vZHVsZVRlc3QoKSB7CisgICAgICAgIHRoaXMobnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFzcyB0aGUgbmFtZSBvZiBhIHB1YmxpYyBuby1hcmcgbWV0aG9kIGluIHRoaXMgY2xhc3MgaWYgCisgICAgICogeW91IHdhbnQgdXNlIHRoYXQgbWV0aG9kIHRvIHJ1biBhbGwgdGhlIHRlc3RzIG9mZiB0aGUKKyAgICAgKiBkYXRhLCBvdGhlcndpc2UgcGFzcyBudWxsIGZvciB0aGUgdHlwaWNhbCB0ZXN0IGJlaGF2aW9yLgorICAgICAqLworICAgIHByb3RlY3RlZCBNb2R1bGVUZXN0KFN0cmluZyBtZXRob2ROYW1lKSB7CisgICAgICAgIHRoaXMubWV0aG9kTmFtZSA9IG1ldGhvZE5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBhY2Nlc3MgdGhpcyBhZnRlciBjYWxsaW5nIG5leHRTZXR0aW5ncyBhbmQgZ2V0dGluZworICAgICAqIGEgdHJ1ZSByZXN1bHQuCisgICAgICovCisgICAgcHJvdGVjdGVkIERhdGFNYXAgc2V0dGluZ3M7CisKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIGFjY2VzcyB0aGlzIGFmdGVyIGNhbGxpbmcgbmV4dENhc2UgYW5kIGdldHRpbmcgYQorICAgICAqIHRydWUgcmVzdWx0LgorICAgICAqLworICAgIHByb3RlY3RlZCBEYXRhTWFwIHRlc3RjYXNlOworCisKKyAgICBwcm90ZWN0ZWQgVGFyZ2V0IGdldFRhcmdldHMoU3RyaW5nIHRhcmdldE5hbWUpIHsKKyAgICAgICAgaWYgKG1ldGhvZE5hbWUgIT0gbnVsbCAmJiBwYXJhbXMuZG9NZXRob2RzKCkpIHsKKyAgICAgICAgICAgIFRhcmdldCB0YXJnZXQgPSBudWxsOworICAgICAgICAgICAgTGlzdCBsaXN0ID0gZ2V0TW9kdWxlTmFtZXMoKTsKKyAgICAgICAgICAgIGlmIChsaXN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBNZXRob2QgbWV0aG9kID0gZ2V0Q2xhc3MoKS5nZXRNZXRob2QobWV0aG9kTmFtZSwgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGkgPSBsaXN0Lml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3IE1ldGhvZFRhcmdldCgoU3RyaW5nKWkubmV4dCgpLCBtZXRob2QpLnNldE5leHQodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzdXBlci5nZXRUYXJnZXRzKHRhcmdldE5hbWUpOworICAgIH0KKworICAgIC8qCisgICAgICogSWYgd2Ugd2VyZSBpbml0aWFsaXplZCB3aXRoIHRoZSBuYW1lIG9mIGEgbWV0aG9kIHRvIHJ1biB0aGUKKyAgICAgKiBkYXRhIGRyaXZlbiB0ZXN0cywgZHJpdmUgdGVzdHMgb2ZmIHRoZSBkYXRhIHVzaW5nIHRoYXQgbWV0aG9kLgorICAgIHByb3RlY3RlZCBNYXAgZ2V0QXZhaWxhYmxlVGVzdHMoKSB7CisgICAgICAgIGlmIChtZXRob2ROYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIExpc3QgbGlzdCA9IGdldE1vZHVsZU5hbWVzKCk7CisKKyAgICAgICAgICAgIGlmIChsaXN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBNYXAgbWFwID0gbmV3IEhhc2hNYXAobGlzdC5zaXplKCkpOworICAgICAgICAgICAgICAgIGFkZE5hbWVkTWV0aG9kVG9NYXAobGlzdCwgbWV0aG9kTmFtZSwgbWFwKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zLkVNUFRZX01BUDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5nZXRBdmFpbGFibGVUZXN0cygpOworICAgICAgICB9CisgICAgfQorICAgICAqLworCisgICAgLyoqCisgICAgICogVGVzdEZtd2sgY2FsbHMgdGhpcyBiZWZvcmUgdHJ5aW5nIHRvIHJ1biBhIHN1aXRlIG9mIHRlc3RzLgorICAgICAqIFRoZSB0ZXN0IHN1aXRlIGlmIHZhbGlkIGlmIGEgbW9kdWxlIHdob3NlIG5hbWUgaXMgdGhlIG5hbWUgb2YKKyAgICAgKiB0aGlzIGNsYXNzICsgIkRhdGEiIGNhbiBiZSBvcGVuZWQuICBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZQorICAgICAqIHRoaXMgaWYgdGhlcmUgYXJlIGRpZmZlcmVudCBvciBhZGRpdGlvbmFsIGRhdGEgcmVxdWlyZWQuICAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiB2YWxpZGF0ZSgpIHsKKyAgICAgICAgcmV0dXJuIG9wZW5Nb2R1bGUoZ2V0Q2xhc3MoKS5nZXROYW1lKCkrIkRhdGEiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0Rm13ayBjYWxscyB0aGlzIGJlZm9yZSB0cnlpbmcgdG8gaW52b2tlIGEgdGVzdCBtZXRob2QuCisgICAgICogVGhlIG1ldGhvZCBpcyB2YWxpZCBpZiB0aGVyZSBpcyB0ZXN0IGRhdGEgd2l0aCB0aGUgbmFtZSBvZiB0aGlzCisgICAgICogbWV0aG9kIGluIHRoZSBtb2R1bGUuICBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0aGlzIHRvIGFsbG93CisgICAgICogZm9yIHRlc3RzIHRoYXQgZG8gbm90IHJlcXVpcmUgdGVzdCBkYXRhIGZyb20gdGhlIG1vZHVsZSwgb3IKKyAgICAgKiBpZiB0aGVyZSBhcmUgZGlmZmVyZW50IG9yIGFkZGl0aW9uYWwgZGF0YSByZXF1aXJlZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiB2YWxpZGF0ZU1ldGhvZChTdHJpbmcgbWV0aG9kTmFtZSkgeworICAgIHJldHVybiBvcGVuVGVzdERhdGEobWV0aG9kTmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgb2YgVGVzdEZtd2sgbWV0aG9kIHRvIGdldCB0aGUgdGVzdCBzdWl0ZSBkZXNjcmlwdGlvbgorICAgICAqIGZyb20gdGhlIERFU0NSSVBUSU9OIGZpZWxkIG9mIHRoZSBtb2R1bGUgaW5mby4gIAorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0RGVzY3JpcHRpb24oKSB7CisgICAgRGF0YU1hcCBpbmZvID0gbW9kdWxlSW5mbygpOworICAgIGlmIChpbmZvICE9IG51bGwpIHsKKyAgICAgICAgcmV0dXJuIGluZm8uZ2V0U3RyaW5nKFRlc3REYXRhTW9kdWxlLkRFU0NSSVBUSU9OKTsKKyAgICB9CisgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgb2YgVGVzdEZtd2sgbWV0aG9kIHRvIGdldCB0aGUgdGVzdCBtZXRob2QgZGVzY3JpcHRpb24KKyAgICAgKiBmcm9tIHRoZSBERVNDUklQVElPTiBmaWVsZCBvZiB0aGUgdGVzdCBpbmZvLiAgCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRNZXRob2REZXNjcmlwdGlvbihTdHJpbmcgbWV0aG9kTmFtZSkgeworICAgIGlmIChvcGVuVGVzdERhdGEobWV0aG9kTmFtZSkpIHsKKyAgICAgICAgRGF0YU1hcCBpbmZvID0gdGVzdEluZm8oKTsKKyAgICAgICAgaWYgKGluZm8gIT0gbnVsbCkgeworICAgICAgICByZXR1cm4gaW5mby5nZXRTdHJpbmcoVGVzdERhdGFNb2R1bGUuREVTQ1JJUFRJT04pOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBtb2R1bGUgd2l0aCB0aGUgZ2l2ZW4gbmFtZSwgYW5kIHJldHVybiB0cnVlIGlmIHN1Y2Nlc3MuCisgICAgICogQWxsIGNvbnRlbnRzIGFyZSByZXNldC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBvcGVuTW9kdWxlKFN0cmluZyBuYW1lKSB7CisgICAgdCA9IG51bGw7CisgICAgbSA9IFRlc3REYXRhTW9kdWxlLm9wZW4obmFtZSwgdGhpcyk7CisgICAgcmV0dXJuIG0gIT0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPcGVuIHRoZSB0ZXN0IGRhdGEgaW4gdGhlIG1vZHVsZSB3aXRoIHRoZSBnaXZlbiBuYW1lLCBhbmQgcmV0dXJuCisgICAgICogdHJ1ZSBpZiBzdWNjZXNzLiAgVGhlIGN1cnJlbnQgdGVzdCBpcyByZXNldC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBvcGVuVGVzdERhdGEoU3RyaW5nIG5hbWUpIHsKKyAgICB0ID0gbSA9PSBudWxsID8gbnVsbCA6IG0uY3JlYXRlVGVzdERhdGEobmFtZSk7CisgICAgcmV0dXJuIHQgIT0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gdW5tb2RpZmlhYmxlIExpc3Qgb2YgdGhlIG5hbWVzIG9mIGFsbCB0aGUgdGVzdHMgaW4gdGhlIG1vZHVsZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgTGlzdCBnZXRNb2R1bGVOYW1lcygpIHsKKyAgICAgICAgaWYgKHZhbGlkYXRlKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBtLmdldFRlc3REYXRhTmFtZXMoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IHRoYXQgYXNzb2NpYXRlcyBhIHB1YmxpYyBuYW1lZCBmdW5jdGlvbiBpbiB0aGlzIGNsYXNzCisgICAgICogd2l0aCBhbGwgdGhlIG5hbWVzIGluIHRoZSBwcm92aWRlZCBTZXQuICBUaGUgZnVuY3Rpb24gc2hvdWxkIGJlCisgICAgICogcHVibGljIGFuZCB0YWtlIG5vIHBhcmFtZXRlcnMgKGxpa2UgYSBUZXN0WFhYIG1ldGhvZCkuIFlvdSBjYW4KKyAgICAgKiB1c2UgdGhpcyB0byBvdmVycmlkZSBnZXRBdmFpbGFibGVUZXN0cyBmcm9tIFRlc3RGbXdrLCB3aGljaCBieQorICAgICAqIGRlZmF1bHQgYXNzb2NpYXRlcyB0aGUgbmFtZXMgIFRlc3RYWFggb3IgdGVzdFhYWCB3aXRoCisgICAgICogdGhlIGNvcnJlc3BvbmRpbmcgbWV0aG9kcyBpbiB0aGUgY2xhc3MuICBNb2R1bGVUZXN0cyBtYXkgd2lzaAorICAgICAqIHRvIHVzZSBhIHNpbmdsZSBtZXRob2QgdG8gZHJpdmUgYWxsIHRoZSB0ZXN0cyBpbiB0aGUgbW9kdWxlLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWVzIHRoZSBuYW1lcyB0byBhc3NvY2lhdGVkIHdpdGggdGhlIG5hbWVkIG1ldGhvZC4KKyAgICAgKiBAcGFyYW0gbWV0aG9kTmFtZSB0aGUgbmFtZSBvZiB0aGUgbWV0aG9kIGluIHRoaXMgY2xhc3MgdG8gYXNzb2NpYXRlIHdpdGggbmFtZXMKKyAgICAgKiBAcGFyYW0gZGVzdCB0aGUgbWFwIHRvIGhvbGQgdGhlIG5hbWUtPm1ldGhvZCBtYXBwaW5nIAorICAgIHByb3RlY3RlZCB2b2lkIGFkZE5hbWVkTWV0aG9kVG9NYXAoTGlzdCBuYW1lcywgU3RyaW5nIG1ldGhvZE5hbWUsIE1hcCBkZXN0KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBNZXRob2QgbWV0aG9kID0gZ2V0Q2xhc3MoKS5nZXRNZXRob2QobWV0aG9kTmFtZSwgbnVsbCk7CisgICAgICAgICAgICBJdGVyYXRvciBpID0gbmFtZXMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIGRlc3QucHV0KGkubmV4dCgpLCBtZXRob2QpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgICovCisgICAgCisgICAgLyoqCisgICAgICogR2V0IGluZm9ybWF0aW9uIG9uIHRoaXMgbW9kdWxlLiAgUmV0dXJucyBudWxsIGlmIG5vIG1vZHVsZQorICAgICAqIG9wZW4gb3Igbm8gaW5mbyBmb3IgdGhlIG1vZHVsZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgRGF0YU1hcCBtb2R1bGVJbmZvKCkgeworICAgIHJldHVybiBtID09IG51bGwgPyBudWxsIDogbS5nZXRJbmZvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGluZm9ybWF0aW9uIG9uIHRoaXMgdGVzdC4gIFJldHVybnMgbnVsbCBpZiBubyBtb2R1bGUKKyAgICAgKiBvcGVuIG9yIG5vIHRlc3Qgb3BlbiBvciBub3QgaW5mbyBmb3IgdGhpcyB0ZXN0LgorICAgICAqLworICAgIHByb3RlY3RlZCBEYXRhTWFwIHRlc3RJbmZvKCkgeworICAgIHJldHVybiB0ID09IG51bGwgPyBudWxsIDogdC5nZXRJbmZvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWR2YW5jZSB0ZXN0IHRvIHRoZSBuZXh0IHNldHRpbmdzLCBhbmQgcmV0dXJuIHRydWUgaWYgCisgICAgICogdGhlcmUgYXJlIG1vcmUgc2V0dGluZ3MuICBUaGUgcHJvdGVjdGVkIG1lbWJlciB2YXJpYWJsZQorICAgICAqICdzZXR0aW5ncycgaG9sZHMgdGhlIG5ldyBzZXR0aW5ncyBkYXRhLgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIG5leHRTZXR0aW5ncygpIHsKKyAgICBzZXR0aW5ncyA9IHQgPT0gbnVsbCA/IG51bGwgOiB0Lm5leHRTZXR0aW5ncygpOworICAgIHJldHVybiBzZXR0aW5ncyAhPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkdmFuY2UgdGVzdCB0byB0aGUgbmV4dCBjYXNlLCBhbmQgcmV0dXJuIHRydWUgaWYgdGhlcmUKKyAgICAgKiBpcyBhbm90aGVyIGNhc2UuICBUaGUgcHJvdGVjdGVkIG1lbWJlciB2YXJpYWJsZQorICAgICAqICd0ZXN0Y2FzZScgaG9sZHMgdGhlIG5ldyBjYXNlIGRhdGEuCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gbmV4dENhc2UoKSB7CisgICAgdGVzdGNhc2UgPSB0ID09IG51bGwgPyBudWxsIDogdC5uZXh0Q2FzZSgpOworICAgIHJldHVybiB0ZXN0Y2FzZSAhPSBudWxsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG1zZyhTdHJpbmcgbWVzc2FnZSwgaW50IGxldmVsLCBib29sZWFuIGluY0NvdW50LCBib29sZWFuIG5ld2xuKSB7CisgICAgICAgIGlmIChsZXZlbCA9PSBFUlIgJiYgdCAhPSBudWxsKSB7CisgICAgICAgICAgICB0LnN0b3BJdGVyYXRpb24oKTsKKyAgICAgICAgfQorICAgICAgICBzdXBlci5tc2cobWVzc2FnZSwgbGV2ZWwsIGluY0NvdW50LCBuZXdsbik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlcG9ydCBhbiBlcnJvciwgYW5kIHN0b3AgaXRlcmF0aW9uIG9mIHRoZSBjdXJyZW50IHRlc3QuCisgICAgcHVibGljIHZvaWQgZXJyKFN0cmluZyBtZXNzYWdlKSB7CisgICAgaWYgKHQgIT0gbnVsbCkgeworICAgICAgICB0LnN0b3BJdGVyYXRpb24oKTsKKyAgICB9CisgICAgc3VwZXIuZXJyKG1lc3NhZ2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcG9ydCBhbiBlcnJvciwgYW5kIHN0b3AgaXRlcmF0aW9uIG9mIHRoZSBjdXJyZW50IHRlc3QuCisgICAgcHVibGljIHZvaWQgZXJybG4oU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICBpZiAodCAhPSBudWxsKSB7CisgICAgICAgIHQuc3RvcEl0ZXJhdGlvbigpOworICAgIH0KKyAgICBzdXBlci5lcnJsbihtZXNzYWdlKTsKKyAgICB9CisgICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvUmVzb3VyY2VNb2R1bGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9SZXNvdXJjZU1vZHVsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1OGEyZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvUmVzb3VyY2VNb2R1bGUuamF2YQpAQCAtMCwwICsxLDYwNSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0OworCitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCisvKioKKyAqIFJlc291cmNlLWJhc2VkIG1vZHVsZS4KKyAqLworcHVibGljIGNsYXNzIFJlc291cmNlTW9kdWxlIGV4dGVuZHMgVGVzdERhdGFNb2R1bGUgeworICAgIHByaXZhdGUgTmFtZWRBcnJheSB0ZXN0czsKKyAgICBwcml2YXRlIFJCRGF0YU1hcCBpbmZvOworICAgIHByaXZhdGUgU3RyaW5nW10gZGVmYXVsdEhlYWRlcnM7CisKKyAgICAvKioKKyAgICAgKiBGb3IgaW50ZXJuYWwgdXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEVTVFMgPSAiVGVzdERhdGEiOworCisgICAgLyoqCisgICAgICogRm9yIGludGVybmFsIHVzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIElORk8gPSAiSW5mbyI7CisKKyAgICAvKioKKyAgICAgKiBGb3IgaW50ZXJuYWwgdXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUVElOR1MgPSAiU2V0dGluZ3MiOworCisgICAgLyoqCisgICAgICogRm9yIGludGVybmFsIHVzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENBU0VTID0gIkNhc2VzIjsKKworICAgIHB1YmxpYyBSZXNvdXJjZU1vZHVsZShTdHJpbmcgbmFtZSwgVGVzdExvZyBsb2csIFJlc291cmNlQnVuZGxlIGIpIHsKKyAgICBzdXBlcihuYW1lLCBsb2cpOworCisgICAgaWYgKGIgPT0gbnVsbCkgeworICAgICAgICBsb2cuZXJybG4oIlJlc291cmNlTW9kdWxlIG11c3QgaGF2ZSBub24tbnVsbCBidW5kbGUiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE9iamVjdFtdW10gZGF0YSA9IChPYmplY3RbXVtdKWIuZ2V0T2JqZWN0KFRFU1RTKTsKKyAgICBpZiAoZGF0YSA9PSBudWxsKSB7CisgICAgICAgIGxvZy5lcnJsbigiUmVzb3VyY2VNb2R1bGUgZG9lcyBub3QgY29udGFpbiB0ZXN0cyEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0aGlzLnRlc3RzID0gTmFtZWRBcnJheS5jcmVhdGUoZGF0YSk7CisKKyAgICBPYmplY3RbXVtdIHRlbXAgPSAoT2JqZWN0W11bXSliLmdldE9iamVjdChJTkZPKTsKKyAgICBpZiAodGVtcCAhPSBudWxsKSB7CisgICAgICAgIE5hbWVkQXJyYXkgbmEgPSBOYW1lZEFycmF5LmNyZWF0ZSh0ZW1wKTsKKyAgICAgICAgaWYgKG5hLmNvdW50KCkgPCAwKSB7CisgICAgICAgIGxvZy5lcnJsbigiQmFkIGRhdGEgZm9yICIgKyBJTkZPKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhpcy5pbmZvID0gbmV3IFJCRGF0YU1hcChsb2csIG5hLCBmYWxzZSk7ICAgIAorICAgICAgICB0aGlzLmRlZmF1bHRIZWFkZXJzID0gaW5mby5nZXRTdHJpbmdBcnJheShIRUFERVJTKTsgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGFkZGl0aW9uYWwgZGF0YSByZWxhdGVkIHRvIHRoZSBtb2R1bGUuCisgICAgICogUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWxseSBnb3QgaW5mby4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0YU1hcCBnZXRJbmZvKCkgeworICAgIHJldHVybiBpbmZvOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFRlc3Qgb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gbmFtZSwgCisgICAgICogb3IgbnVsbCBpZiBuYW1lIG5vdCBmb3VuZCBpbiB0aGlzIG1vZHVsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGVzdERhdGEgY3JlYXRlVGVzdERhdGEoU3RyaW5nIG5hbWUpIHsKKyAgICBpZiAodGVzdHMgIT0gbnVsbCkgeworICAgICAgICBPYmplY3RbXSB0ZCA9IHRlc3RzLmdldEVudHJ5KG5hbWUpOworICAgICAgICBpZiAodGQgIT0gbnVsbCkgeworICAgICAgICByZXR1cm4gY3JlYXRlVGVzdERhdGEodGQpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgVGVzdCBvYmplY3QgY29ycmVzcG9uZGluZyB0byBpbmRleCwKKyAgICAgKiBvciBudWxsIGlmIGluZGV4IGlzIG91dCBvZiByYW5nZSBmb3IgdGhpcyBtb2R1bGUuCisgICAgICogTm8gZXJyb3IgbG9nZ2VkIGlmIGluZGV4IGlzIG91dCBvZiBib3VuZHMsIHRoZSBhc3N1bXB0aW9uIGlzIHRoYXQKKyAgICAgKiBpdGVyYXRpb24gaXMgYmVpbmcgdXNlZCBhbmQgcHJvY2VlZHMgdW50aWwgYSBudWxsIHJldHVybi4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGVzdERhdGEgY3JlYXRlVGVzdERhdGEoaW50IGluZGV4KSB7CisgICAgaWYgKHRlc3RzICE9IG51bGwpIHsKKyAgICAgICAgT2JqZWN0W10gdGQgPSB0ZXN0cy5nZXRFbnRyeShpbmRleCk7CisgICAgICAgIGlmICh0ZCAhPSBudWxsKSB7CisgICAgICAgIHJldHVybiBjcmVhdGVUZXN0RGF0YSh0ZCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIHVubW9kaWZpYWJsZSBsaXN0IG9mIHRoZSB0ZXN0IGRhdGEgbmFtZXMsIGluIGluZGV4IG9yZGVyLgorICAgICAqLworICAgIHB1YmxpYyBMaXN0IGdldFRlc3REYXRhTmFtZXMoKSB7CisgICAgICAgIGlmICh0ZXN0cyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlTGlzdChBcnJheXMuYXNMaXN0KHRlc3RzLm5hbWVzKCkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwcml2YXRlIFRlc3REYXRhIGNyZWF0ZVRlc3REYXRhKE9iamVjdFtdIGQpIHsKKyAgICByZXR1cm4gbmV3IFJCVGVzdERhdGEodGhpcywgKFN0cmluZylkWzBdLCAoT2JqZWN0W11bXSlkWzFdLCBkZWZhdWx0SGVhZGVycyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvdmlkZXMgYWNjZXNzIHRvIHZhbHVlcyBlaXRoZXIgYnkgaW5kZXggb3IgYnkgY2FzZS1pbnNlbnNpdGl2ZSBzZWFyY2ggb24gCisgICAgICogdGhlIG5hbWUuICBQb29yIG1hbidzIE1hcCB3aXRoIGluZGV4LgorICAgICAqLworICAgIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBOYW1lZEFycmF5IHsKKyAgICBpbnQgdHhjYWNoZTsKKyAgICBpbnQgY291bnQ7CisKKyAgICBzdGF0aWMgTmFtZWRBcnJheSBjcmVhdGUoT2JqZWN0W11bXSBwYWlycykgeworICAgICAgICByZXR1cm4gbmV3IE5hbWVkQXJyYXlPZlBhaXJzKHBhaXJzKTsKKyAgICB9CisKKyAgICBzdGF0aWMgTmFtZWRBcnJheSBjcmVhdGUoU3RyaW5nW10gbmFtZXMsIE9iamVjdFtdIHZhbHVlcykgeworICAgICAgICByZXR1cm4gbmV3IE5hbWVkQXJyYXlUd29MaXN0cyhuYW1lcywgdmFsdWVzKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgTmFtZWRBcnJheShpbnQgY291bnQpIHsKKyAgICAgICAgdGhpcy5jb3VudCA9IGNvdW50OworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgY291bnQoKSB7CisgICAgICAgIHJldHVybiBjb3VudDsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc0RlZmluZWQoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgaW50IGl4ID0gbmFtZVRvSW5kZXgobmFtZSk7CisgICAgICAgIGlmIChpeCAhPSAtMSkgeworICAgICAgICB0eGNhY2hlID0gKGl4ID09IDAgPyBjb3VudCA6IGl4KSAtIDE7CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgT2JqZWN0W10gZ2V0RW50cnkoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGdldEVudHJ5KG5hbWVUb0luZGV4KG5hbWUpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgT2JqZWN0IGdldFZhbHVlKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHJldHVybiBnZXRWYWx1ZShuYW1lVG9JbmRleChuYW1lKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmaW5hbCBPYmplY3RbXSBnZXRFbnRyeShpbnQgaW5kZXgpIHsKKyAgICAgICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCBjb3VudCkgeworICAgICAgICByZXR1cm4gZW50cnlBdEluZGV4KGluZGV4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgT2JqZWN0IGdldFZhbHVlKGludCBpbmRleCkgeworICAgICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IGNvdW50KSB7CisgICAgICAgIHJldHVybiB2YWx1ZUF0SW5kZXgoaW5kZXgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmdbXSBuYW1lcygpIHsKKyAgICAgICAgaWYgKGNvdW50ID4gMCkgeworICAgICAgICBTdHJpbmdbXSByZXN1bHQgPSBuZXcgU3RyaW5nW2NvdW50XTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICByZXN1bHRbaV0gPSBuYW1lQXRJbmRleChpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBPYmplY3RbXSB2YWx1ZXMoKSB7CisgICAgICAgIGlmIChjb3VudCA+IDApIHsKKyAgICAgICAgT2JqZWN0W10gcmVzdWx0ID0gbmV3IE9iamVjdFtjb3VudF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgcmVzdWx0W2ldID0gdmFsdWVBdEluZGV4KGkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGJ1Zi5hcHBlbmQoImNvdW50OiAiICsgY291bnQgKyAieyIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgYnVmLmFwcGVuZCgiXG4gIHsgIiArIG5hbWVBdEluZGV4KGkpICsgIiwgIiArIHZhbHVlQXRJbmRleChpKSArICIgfSIpOworICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoIn0iKTsKKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIHByb3RlY3RlZCBpbnQgbmFtZVRvSW5kZXgoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgaWYgKG5hbWUgIT0gbnVsbCAmJiBjb3VudCA+IDApIHsKKyAgICAgICAgaW50IGkgPSB0eGNhY2hlOworICAgICAgICBkbyB7CisgICAgICAgICAgICBpZiAoKytpID09IGNvdW50KSB7CisgICAgICAgICAgICBpID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChuYW1lLmVxdWFsc0lnbm9yZUNhc2UobmFtZUF0SW5kZXgoaSkpKSB7CisgICAgICAgICAgICB0eGNhY2hlID0gaTsKKyAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlIChpICE9IHR4Y2FjaGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgT2JqZWN0W10gZW50cnlBdEluZGV4KGludCBpbmRleCkgeworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgbmFtZUF0SW5kZXgoaW5kZXgpLCB2YWx1ZUF0SW5kZXgoaW5kZXgpIH07CisgICAgfQorCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IFN0cmluZyBuYW1lQXRJbmRleChpbnQgaW5kZXgpOworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBPYmplY3QgdmFsdWVBdEluZGV4KGludCBpbmRleCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTmFtZWRBcnJheSBpbXBsZW1lbnRlZCB1c2luZyBhbiBhcnJheSBvZiBuYW1lL3ZhbHVlCisgICAgICogcGFpcnMsIHJlcHJlc2VudGVkIGJ5IGFuIE9iamVjdFtdW10uCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIE5hbWVkQXJyYXlPZlBhaXJzIGV4dGVuZHMgTmFtZWRBcnJheSB7CisgICAgcHJpdmF0ZSBPYmplY3RbXVtdIGRhdGE7CisKKyAgICBwdWJsaWMgTmFtZWRBcnJheU9mUGFpcnMoT2JqZWN0W11bXSBkYXRhKSB7CisgICAgICAgIHN1cGVyKGRhdGEgPT0gbnVsbCA/IC0xIDogZGF0YS5sZW5ndGgpOworICAgICAgICB0aGlzLmRhdGEgPSBkYXRhOworICAgIH0KKworICAgIHByb3RlY3RlZCBPYmplY3RbXSBlbnRyeUF0SW5kZXgoaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiBkYXRhW2luZGV4XTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIG5hbWVBdEluZGV4KGludCBpbmRleCkgeworICAgICAgICByZXR1cm4gKFN0cmluZylkYXRhW2luZGV4XVswXTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IHZhbHVlQXRJbmRleChpbnQgaW5kZXgpIHsKKyAgICAgICAgcmV0dXJuIGRhdGFbaW5kZXhdWzFdOworICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOYW1lZEFycmF5IGltcGxlbWVudGVkIHVzaW5nIHR3byBhcnJheXMsIG9uZSBvZiBTdHJpbmcgYW5kIG9uZSBvZiBPYmplY3QuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIE5hbWVkQXJyYXlUd29MaXN0cyBleHRlbmRzIE5hbWVkQXJyYXkgeworICAgIFN0cmluZ1tdIG5hbWVzOworICAgIE9iamVjdFtdIHZhbHVlczsKKworICAgIHB1YmxpYyBOYW1lZEFycmF5VHdvTGlzdHMoU3RyaW5nW10gbmFtZXMsIE9iamVjdFtdIHZhbHVlcykgeworICAgICAgICBzdXBlciAodmFsdWVzICE9IG51bGwgJiYgbmFtZXMgIT0gbnVsbCAmJiBuYW1lcy5sZW5ndGggPT0gdmFsdWVzLmxlbmd0aCA/CisgICAgICAgICAgIG5hbWVzLmxlbmd0aCA6CisgICAgICAgICAgIC0xKTsKKyAgICAgICAgdGhpcy5uYW1lcyA9IG5hbWVzOworICAgICAgICB0aGlzLnZhbHVlcyA9IHZhbHVlczsKKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyBTdHJpbmdbXSBuYW1lcygpIHsKKyAgICAgICAgcmV0dXJuIG5hbWVzOworICAgIH0KKworICAgIHB1YmxpYyBPYmplY3RbXSB2YWx1ZXMoKSB7CisgICAgICAgIHJldHVybiB2YWx1ZXM7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFN0cmluZyBuYW1lQXRJbmRleChpbnQgaW5kZXgpIHsKKyAgICAgICAgcmV0dXJuIG5hbWVzW2luZGV4XTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IHZhbHVlQXRJbmRleChpbnQgaW5kZXgpIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlc1tpbmRleF07CisgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBSQlRlc3REYXRhIGV4dGVuZHMgVGVzdERhdGEgeworICAgIFJlc291cmNlTW9kdWxlIG07CisgICAgUkJEYXRhTWFwIGluZm87CisgICAgT2JqZWN0W10gc2V0dGluZ3M7CisgICAgLyoqIAorICAgICAqIGNoYW5nZWQgdG8gZml0IHRoZSBjIGdlbnJiIGZvcm1hdC4gdGhpcyBpcyBhY3R1YWxseSBPYmplY3RbXSB7T2JqZWN0W119CisgICAgICovCisgICAgT2JqZWN0W10gY2FzZXM7IAorICAgIFN0cmluZ1tdIGhlYWRlcnM7CisgICAgaW50IHN4OworICAgIGludCBjeDsKKworICAgIFJCVGVzdERhdGEoUmVzb3VyY2VNb2R1bGUgbSwgU3RyaW5nIG5hbWUsIE9iamVjdFtdW10gZGF0YSwgU3RyaW5nW10gZGVmYXVsdEhlYWRlcnMpIHsKKyAgICAgICAgc3VwZXIobmFtZSk7CisgICAgICAgIHRoaXMubSA9IG07CisKKyAgICAgICAgTmFtZWRBcnJheSBuYW1lZERhdGEgPSBOYW1lZEFycmF5LmNyZWF0ZShkYXRhKTsKKworICAgICAgICB0cnkgeworICAgICAgICBPYmplY3RbXVtdIHRlbXAgPSAoT2JqZWN0W11bXSluYW1lZERhdGEuZ2V0VmFsdWUoSU5GTyk7CisgICAgICAgIGlmICh0ZW1wICE9IG51bGwpIHsKKyAgICAgICAgICAgIE5hbWVkQXJyYXkgbmEgPSBOYW1lZEFycmF5LmNyZWF0ZSh0ZW1wKTsKKyAgICAgICAgICAgIGlmIChuYS5jb3VudCgpIDwgMSkgeworICAgICAgICAgICAgbS5sb2cuZXJybG4oIkJhZCBkYXRhIGZvciAiICsgSU5GTyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5pbmZvID0gbmV3IFJCRGF0YU1hcChtLmxvZywgbmEsIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgbS5sb2cuZXJybG4oIlRlc3QgIiArIG5hbWUgKyAiIGluIG1vZHVsZSAiICsgbS5nZXROYW1lKCkgKyAiIGhhcyBiYWQgdHlwZSBmb3IgIiArIElORk8pOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgdGhpcy5zZXR0aW5ncyA9IChPYmplY3RbXSluYW1lZERhdGEuZ2V0VmFsdWUoU0VUVElOR1MpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICBtLmxvZy5lcnJsbigiVGVzdCAiICsgbmFtZSArICIgaW4gbW9kdWxlICIgKyBtLmdldE5hbWUoKSArICIgaGFzIGJhZCB0eXBlIGZvciAiICsgU0VUVElOR1MpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgdGhpcy5jYXNlcyA9IChPYmplY3RbXSluYW1lZERhdGEuZ2V0VmFsdWUoQ0FTRVMpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICBtLmxvZy5lcnJsbigiVGVzdCAiICsgbmFtZSArICIgaW4gbW9kdWxlICIgKyBtLmdldE5hbWUoKSArICIgaGFzIGJhZCB0eXBlIGZvciAiICsgQ0FTRVMpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGluZm8gIT0gbnVsbCkgeworICAgICAgICB0aGlzLmhlYWRlcnMgPSBpbmZvLmdldFN0cmluZ0FycmF5KEhFQURFUlMpOworICAgICAgICB9CisgICAgICAgIGlmICh0aGlzLmhlYWRlcnMgPT0gbnVsbCkgeworICAgICAgICB0aGlzLmhlYWRlcnMgPSBkZWZhdWx0SGVhZGVyczsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhZGRpdGlvbmFsIGRhdGEgcmVsYXRlZCB0byB0aGUgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0YU1hcCBnZXRJbmZvKCkgeworICAgICAgICByZXR1cm4gaW5mbzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIERhdGFNYXAgd2l0aCBuZXh0IHNldHRpbmdzIGFuZCByZXNldHMgY2FzZSBpdGVyYXRpb24uCisgICAgICogSWYgbm8gbW9yZSBzZXR0aW5ncywgdGVybWluYXRlcyBpdGVyYXRpb24gYW5kIHJldHVybnMgbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0YU1hcCBuZXh0U2V0dGluZ3MoKSB7CisgICAgICAgIGlmIChzZXR0aW5ncyAhPSBudWxsICYmIHN4IDwgc2V0dGluZ3MubGVuZ3RoKSB7CisgICAgICAgIGN4ID0gMDsKKyAgICAgICAgTmFtZWRBcnJheSBuYSA9IE5hbWVkQXJyYXkuY3JlYXRlKChPYmplY3RbXVtdKXNldHRpbmdzW3N4KytdKTsKKyAgICAgICAgaWYgKG5hLmNvdW50KCkgPCAwKSB7CisgICAgICAgICAgICBtLmxvZy5lcnJsbigiQmFkIHNldHRpbmdzIGRhdGEgZm9yIHNldHRpbmdzICIgKyAoc3gtMSkpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFJCRGF0YU1hcChtLmxvZywgbmEsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHN0b3BJdGVyYXRpb24oKTsKKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIERhdGFNYXAgd2l0aCBuZXh0IGNhc2UuICBJZiBubyBuZXh0IGNhc2UsIHJldHVybnMgbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0YU1hcCBuZXh0Q2FzZSgpIHsKKyAgICAgICAgaWYgKGNhc2VzICE9IG51bGwgJiYgY3ggPCBjYXNlcy5sZW5ndGgpIHsKKyAgICAgICAgTmFtZWRBcnJheSBuYSA9IE5hbWVkQXJyYXkuY3JlYXRlKGhlYWRlcnMsIChPYmplY3RbXSljYXNlc1tjeCsrXSk7CisgICAgICAgIGlmIChuYS5jb3VudCgpIDwgMCkgeworICAgICAgICAgICAgbS5sb2cuZXJybG4oIkJhZCBjYXNlcyBkYXRhIGZvciBjYXNlICIgKyAoY3gtMSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBSQkRhdGFNYXAobS5sb2csIG5hLCB0cnVlKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFN0b3BzIGl0ZXJhdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzdG9wSXRlcmF0aW9uKCkgeworICAgICAgICBzeCA9IGN4ID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgUkJEYXRhTWFwIGV4dGVuZHMgRGF0YU1hcCB7CisgICAgVGVzdExvZyBsb2c7CisgICAgTmFtZWRBcnJheSBuYTsKKyAgICBib29sZWFuIHJlcXVpcmVkOworCisgICAgUkJEYXRhTWFwKFRlc3RMb2cgbG9nLCBOYW1lZEFycmF5IG5hLCBib29sZWFuIHJlcXVpcmVkKSB7CisgICAgICAgIHRoaXMubG9nID0gbG9nOworICAgICAgICB0aGlzLm5hID0gbmE7CisgICAgICAgIHRoaXMucmVxdWlyZWQgPSByZXF1aXJlZDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RlZmluZWQoU3RyaW5nIGtleSkgeworICAgICAgICByZXR1cm4gbmEuaXNEZWZpbmVkKGtleSk7CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBnZXRPYmplY3QoU3RyaW5nIGtleSkgeyAKKyAgICAgICAgT2JqZWN0IHJlc3VsdCA9IG5hLmdldFZhbHVlKGtleSk7CisgICAgICAgIGlmIChyZXF1aXJlZCAmJiByZXN1bHQgPT0gbnVsbCkgeworICAgICAgICByZXBvcnROdWxsRXJyb3Ioa2V5KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKFN0cmluZyBrZXkpIHsgCisgICAgICAgIFN0cmluZyByZXN1bHQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICByZXN1bHQgPSAoU3RyaW5nKWdldE9iamVjdChrZXkpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICByZXBvcnRUeXBlRXJyb3IoIlN0cmluZyIsIGtleSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgY2hhciBnZXRDaGFyKFN0cmluZyBrZXkpIHsgCisgICAgICAgIHRyeSB7CisgICAgICAgIFN0cmluZyBzID0gZ2V0U3RyaW5nKGtleSk7CisgICAgICAgIGlmIChzICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBzLmNoYXJBdCgwKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgcmVwb3J0VHlwZUVycm9yKCJjaGFyIiwga2V5KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMHhmZmZmOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0SW50KFN0cmluZyBrZXkpIHsgCisgICAgICAgIHRyeSB7CisgICAgICAgIFN0cmluZyBzID0gZ2V0U3RyaW5nKGtleSk7CisgICAgICAgIGlmIChzICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBJbnRlZ2VyLnBhcnNlSW50KHMpOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIHJlcG9ydFR5cGVFcnJvcigiaW50Iiwga2V5KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcHVibGljIGJ5dGUgZ2V0Qnl0ZShTdHJpbmcga2V5KSB7IAorICAgICAgICB0cnkgeworICAgICAgICBTdHJpbmcgcyA9IGdldFN0cmluZyhrZXkpOworICAgICAgICBpZiAocyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gQnl0ZS5wYXJzZUJ5dGUocyk7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgcmVwb3J0VHlwZUVycm9yKCJieXRlIiwga2V5KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKGJ5dGUpLTE7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZ2V0Qm9vbGVhbihTdHJpbmcga2V5KSB7IAorICAgICAgICBTdHJpbmcgcyA9IGdldFN0cmluZyhrZXkpOworICAgICAgICBpZiAocyAhPSBudWxsKSB7CisgICAgICAgIGlmIChzLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0gZWxzZSBpZiAoIXMuZXF1YWxzSWdub3JlQ2FzZSgiZmFsc2UiKSkgeworICAgICAgICAgICAgcmVwb3J0VHlwZUVycm9yKCJib29sZWFuIiwga2V5KTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0W10gZ2V0T2JqZWN0QXJyYXkoU3RyaW5nIGtleSkgeworICAgICAgICB0cnkgeworICAgICAgICBPYmplY3RbXSByZXN1bHQgPSAoT2JqZWN0W10pbmEuZ2V0VmFsdWUoa2V5KTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsICYmIHJlcXVpcmVkKSB7CisgICAgICAgICAgICByZXBvcnROdWxsRXJyb3Ioa2V5KTsKKyAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICByZXBvcnRUeXBlRXJyb3IoIk9iamVjdFtdIiwga2V5KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0U3RyaW5nQXJyYXkoU3RyaW5nIGtleSkgeyAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgU3RyaW5nW10gcmVzdWx0ID0gKFN0cmluZ1tdKW5hLmdldFZhbHVlKGtleSk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCAmJiByZXF1aXJlZCkgeworICAgICAgICAgICAgcmVwb3J0TnVsbEVycm9yKGtleSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgcmVwb3J0VHlwZUVycm9yKCJTdHJpbmdbXSIsIGtleSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHVibGljIGNoYXJbXSBnZXRDaGFyQXJyYXkoU3RyaW5nIGtleSkgeyAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGNoYXJbXSluYS5nZXRWYWx1ZShrZXkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnl7IAorICAgICAgICBTdHJpbmcgdGVtcCA9IChTdHJpbmcpbmEuZ2V0VmFsdWUoa2V5KTsKKyAgICAgICAgaWYgKHRlbXAgPT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHJlcXVpcmVkKSB7CisgICAgICAgICAgICByZXBvcnROdWxsRXJyb3Ioa2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0ZW1wLnRvQ2hhckFycmF5KCk7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgcmVwb3J0VHlwZUVycm9yKCJjaGFyW10iLCBrZXkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBpbnRbXSBnZXRJbnRBcnJheShTdHJpbmcga2V5KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChpbnRbXSluYS5nZXRWYWx1ZShrZXkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIFN0cmluZ1tdIGRhdGEgPSBnZXRTdHJpbmdBcnJheShrZXkpOworICAgICAgICBpZiAoZGF0YSAhPSBudWxsKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnRbXSByZXN1bHQgPSBuZXcgaW50W2RhdGEubGVuZ3RoXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgcmVzdWx0W2ldID0gSW50ZWdlci5wYXJzZUludChkYXRhW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXBvcnRUeXBlRXJyb3IoImludFtdIiwga2V5KTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBieXRlW10gZ2V0Qnl0ZUFycmF5KFN0cmluZyBrZXkpIHsgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChieXRlW10pbmEuZ2V0VmFsdWUoa2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICBTdHJpbmdbXSBkYXRhID0gZ2V0U3RyaW5nQXJyYXkoa2V5KTsKKyAgICAgICAgaWYgKGRhdGEgIT0gbnVsbCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgYnl0ZVtdIHJlc3VsdCA9IG5ldyBieXRlW2RhdGEubGVuZ3RoXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICByZXN1bHRbaV0gPSBCeXRlLnBhcnNlQnl0ZShkYXRhW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXBvcnRUeXBlRXJyb3IoImJ5dGVbXSIsIGtleSk7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbltdIGdldEJvb2xlYW5BcnJheShTdHJpbmcga2V5KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChib29sZWFuW10pbmEuZ2V0VmFsdWUoa2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICBTdHJpbmdbXSBkYXRhID0gZ2V0U3RyaW5nQXJyYXkoa2V5KTsKKyAgICAgICAgaWYgKGRhdGEgIT0gbnVsbCkgeworICAgICAgICBib29sZWFuW10gcmVzdWx0ID0gbmV3IGJvb2xlYW5bZGF0YS5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBkYXRhW2ldOworICAgICAgICAgICAgaWYgKHMuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICByZXN1bHRbaV0gPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChzLmVxdWFsc0lnbm9yZUNhc2UoImZhbHNlIikpIHsKKyAgICAgICAgICAgIHJlc3VsdFtpXSA9IGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlcG9ydFR5cGVFcnJvcigiYm9vbGVhbltdIiwga2V5KTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHJlcG9ydE51bGxFcnJvcihTdHJpbmcga2V5KSB7CisgICAgICAgIGxvZy5lcnJsbigiTWlzc2luZyByZXF1aXJlZCB2YWx1ZSBmb3IgJyIgKyBrZXkgKyAiJyIpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZXBvcnRUeXBlRXJyb3IoU3RyaW5nIHR5cGVOYW1lLCBTdHJpbmcga2V5KSB7CisgICAgICAgIGxvZy5lcnJsbigiQ291bGQgbm90IHJldHVybiB2YWx1ZSBvZiAnIiArIGtleSArICInICgiICsgZ2V0T2JqZWN0KGtleSkgKyAiKSBhcyB0eXBlICciICsgdHlwZU5hbWUgKyAiJyIpOworICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YmZmMzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDUwIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgb3RoZXIgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIoCisgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0LlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbXByZXNzaW9uLlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LnJiYmkuVGVzdEFsbCIsCisgICAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQuVGVzdEFsbCIsCisgICAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuZGV2LnRlc3Quc2VhcmNoLlNlYXJjaFRlc3QiLCAvLyBub3QgYSBncm91cAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yLlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LnNoYXBpbmcuQXJhYmljU2hhcGluZ1JlZ1Rlc3QiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyLlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LnRpbWV6b25lLlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmxhbmcuVGVzdEFsbCIsCisgICAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplci5UZXN0QWxsIiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0Lml0ZXJhdG9yLlRlc3RVQ2hhcmFjdGVySXRlcmF0b3IiLCAvLyBub3QgYSBncm91cAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmJpZ2RlYy5EaWFnQmlnRGVjaW1hbCIsIC8vIG5vdCBhIGdyb3VwCisgICAgICAgICAgICAgICAgICAiY29tLmlibS5pY3UuZGV2LnRlc3QuaW1wbC5UZXN0QWxsIiwKKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5zdHJpbmdwcmVwLlRlc3RBbGwiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LnRpbWVzY2FsZS5UZXN0QWxsIiwKKwkJCQkgICJjb20uaWJtLmljdS5kZXYudGVzdC5jaGFyc2V0ZGV0LlRlc3RDaGFyc2V0RGV0ZWN0b3IiLAorLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGUuU2VyaWFsaXphYmxlVGVzdCIgLy8gKmlzKiBhIGdyb3VwCisvLyNlbmRpZgorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAiQWxsIHRlc3RzIGluIElDVSIpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FICA9ICJJQ1UiOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RCb2lsZXJwbGF0ZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RCb2lsZXJwbGF0ZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YTcxNDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEJvaWxlcnBsYXRlLmphdmEKQEAgLTAsMCArMSwxOTIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5Db25zdHJ1Y3RvcjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaW5rZWRMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworLyoqCisgKiBUbyB1c2UsIG92ZXJyaWRlIHRoZSBhYnN0cmFjdCBhbmQgdGhlIHByb3RlY3RlZCBtZXRob2RzIGFzIG5lY2Vzc2FyeS4KKyAqIFRlc3RzIGJvaWxlcnBsYXRlIGludmFyaWFudHM6CisgKiA8YnI+YS5lcXVhbHMoYSkKKyAqIDxicj4hYS5lcXVhbHMobnVsbCkKKyAqIDxicj5pZiBhLmVxdWFscyhiKSB0aGVuIAorICogPGJyPigxKSBhLmhhc2hDb2RlKCkgPT0gYi5oYXNoQ29kZSAgLy8gbm90ZTogdGhlIHJldmVyc2UgaXMgbm90IG5lY2Vzc2FyaWx5IHRydWUuCisgKiA8YnI+KDIpIGEgZnVuY3Rpb25zIGluIGFsbCBhc3BlY3RzIGFzIGVxdWl2YWxlbnQgdG8gYgorICogPGJyPigzKSBiLmVxdWFscyhhKQorICogPGJyPmlmIGIgPSBjbG9uZShhKQorICogPGJyPigxKSBiLmVxdWFscyhhKSwgYW5kIHRoZSBhYm92ZSBjaGVja3MKKyAqIDxicj4oMikgaWYgbXV0YWJsZShhKSwgdGhlbiBhLmNsb25lKCkgIT0gYSAvLyBub3RlOiB0aGUgcmV2ZXJzZSBpcyBub3QgbmVjZXNzYXJpbHkgdHJ1ZS4KKyAqIEBhdXRob3IgRGF2aXMKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIFRlc3RCb2lsZXJwbGF0ZSBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIFRlc3RNYWluKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIExpc3QgbGlzdCA9IG5ldyBMaW5rZWRMaXN0KCk7CisgICAgICAgIHdoaWxlIChfYWRkVGVzdE9iamVjdChsaXN0KSkgeworICAgICAgICB9CisgICAgICAgIE9iamVjdFtdIHRlc3RBcnJheSA9IGxpc3QudG9BcnJheSgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RBcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgLy9sb2dsbigiVGVzdGluZyAiICsgaSk7CisgICAgICAgICAgICBPYmplY3QgYSA9IHRlc3RBcnJheVtpXTsKKyAgICAgICAgICAgIGludCBhSGFzaCA9IGEuaGFzaENvZGUoKTsKKyAgICAgICAgICAgIGlmIChhLmVxdWFscyhudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcXVhbGl0eS9OdWxsIGludmFyaWFudCBmYWlsczogIiArIGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFhLmVxdWFscyhhKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJTZWxmLUVxdWFsaXR5IGludmFyaWFudCBmYWlsczogIiArIGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgT2JqZWN0IGI7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKF9jYW5DbG9uZShhKSkgeworICAgICAgICAgICAgICAgIGIgPSBfY2xvbmUoYSk7CisgICAgICAgICAgICAgICAgaWYgKGIgPT0gYSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoX2lzTXV0YWJsZShhKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNsb25lL011dGFiaWxpdHkgaW52YXJpYW50IGZhaWxzOiAiICsgaSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWEuZXF1YWxzKGIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ2xvbmUvRXF1YWxpdHkgaW52YXJpYW50IGZhaWxzOiAiICsgaSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgX2NoZWNrRXF1YWxzKGksIC0xLCBhLCBhSGFzaCwgYik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBqID0gaTsgaiA8IHRlc3RBcnJheS5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGIgPSB0ZXN0QXJyYXlbal07CisgICAgICAgICAgICAgICAgaWYgKGEuZXF1YWxzKGIpKSBfY2hlY2tFcXVhbHMoaSwgaiwgYSwgYUhhc2gsIGIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIF9jaGVja0VxdWFscyhpbnQgaSwgaW50IGosIE9iamVjdCBhLCBpbnQgYUhhc2gsIE9iamVjdCBiKSB7CisgICAgICAgIGludCBiSGFzaCA9IGIuaGFzaENvZGUoKTsKKyAgICAgICAgaWYgKCFiLmVxdWFscyhhKSkgZXJybG4oIkVxdWFsaXR5L1N5bW1ldHJ5IixpLCBqKTsKKyAgICAgICAgaWYgKGFIYXNoICE9IGJIYXNoKSBlcnJsbigiRXF1YWxpdHkvSGFzaCIsaSwgaik7CisgICAgICAgIGlmIChhICE9IGIgJiYgIV9oYXNTYW1lQmVoYXZpb3IoYSxiKSkgeworICAgICAgICAgICAgZXJybG4oIkVxdWFsaXR5L0VxdWl2YWxlbmNlIixpLCBqKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBlcnJsbihTdHJpbmcgdGl0bGUsIGludCBpLCBpbnQgaikgeworICAgICAgICBpZiAoaiA8IDApIGVycmxuKCJDbG9uZS8iICsgdGl0bGUgKyAiaW52YXJpYW50IGZhaWxzOiAiICsgaSk7CisgICAgICAgIGVsc2UgZXJybG4odGl0bGUgKyAiaW52YXJpYW50IGZhaWxzOiAiICsgaSArICIsIiArIGopOworICAgIH0KKworICAgIC8qKgorICAgICAqIE11c3QgYmUgb3ZlcnJpZGRlbiB0byBjaGVjayB3aGV0aGVyIGEgYW5kIGJlIGJlaGF2ZSB0aGUgc2FtZQorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBib29sZWFuIF9oYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHVudGlsIGZhbHNlIGlzIHJldHVybmVkLgorICAgICAqIFRoZSByZXN1bHRzIHNob3VsZCBiZSBhIG1peHR1cmUgb2YgZGlmZmVyZW50IG9iamVjdHMgb2YgdGhlIHNhbWUKKyAgICAgKiB0eXBlOiBzb21lIGVxdWFsIGFuZCBtb3N0IG5vdCBlcXVhbC4KKyAgICAgKiBUaGUgc3ViY2xhc3NlciBjb250cm9scyBob3cgbWFueSBhcmUgcHJvZHVjZWQgKHJlY29tbWVuZCBhYm91dCAKKyAgICAgKiAxMDAsIGJhc2VkIG9uIHRoZSBzaXplIG9mIHRoZSBvYmplY3RzIGFuZCBob3cgY29zdGx5IHRoZXkgYXJlCisgICAgICogdG8gcnVuIHRoaXMgdGVzdCBvbi4gVGhlIHJ1bm5pbmcgdGltZSBncm93cyB3aXRoIHRoZSBzcXVhcmUgb2YgdGhlCisgICAgICogY291bnQuCisgICAgICogTk9URTogdGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGNhbGxlZCBpZiB0aGUgb2JqZWN0cyB0ZXN0IGFzIGVxdWFsLgorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBib29sZWFuIF9hZGRUZXN0T2JqZWN0KExpc3QgYyk7CisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgaWYgdGhlIHRlc3RlZCBvYmplY3RzIGFyZSBtdXRhYmxlLgorICAgICAqIDxicj5TaW5jZSBKYXZhIGRvZXNuJ3QgdGVsbCB1cywgd2UgbmVlZCBhIGZ1bmN0aW9uIHRvIHRlbGwgaWYgc28uCisgICAgICogVGhlIGRlZmF1bHQgaXMgdHJ1ZSwgc28gbXVzdCBiZSBvdmVycmlkZGVuIGlmIG5vdC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBfaXNNdXRhYmxlKE9iamVjdCBhKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBpZiB0aGUgdGVzdGVkIG9iamVjdHMgY2FuIGJlIGNsb25lZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBfY2FuQ2xvbmUoT2JqZWN0IGEpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIC8qKgorICAgICAqIFByb2R1Y2UgYSBjbG9uZSBvZiB0aGUgb2JqZWN0LiBUcmllcyB0d28gbWV0aG9kcworICAgICAqIChhKSBjbG9uZQorICAgICAqIChiKSBjb25zdHJ1Y3RvcgorICAgICAqIE11c3QgYmUgb3ZlcnJpZGRlbiBpZiBfY2FuQ2xvbmUgcmV0dXJucyB0cnVlIGFuZAorICAgICAqIHRoZSBhYm92ZSBtZXRob2RzIGRvbid0IHdvcmsuCisgICAgICogQHBhcmFtIGEKKyAgICAgKiBAcmV0dXJuIGNsb25lCisgICAgICovCisgICAgcHJvdGVjdGVkIE9iamVjdCBfY2xvbmUoT2JqZWN0IGEpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBDbGFzcyBhQ2xhc3MgPSBhLmdldENsYXNzKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBNZXRob2QgY2xvbmVyID0gYUNsYXNzLmdldE1ldGhvZCgiY2xvbmUiLCBudWxsKTsKKyAgICAgICAgICAgIHJldHVybiBjbG9uZXIuaW52b2tlKGEsbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBDb25zdHJ1Y3RvciBjb25zdHJ1Y3RvciA9IGFDbGFzcy5nZXRDb25zdHJ1Y3RvcihuZXcgQ2xhc3NbXSB7YUNsYXNzfSk7CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0b3IubmV3SW5zdGFuY2UobmV3IE9iamVjdFtde2F9KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiBVdGlsaXRpZXMgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gdmVyaWZ5U2V0c0lkZW50aWNhbChBYnN0cmFjdFRlc3RMb2cgaGVyZSwgVW5pY29kZVNldCBzZXQxLCBVbmljb2RlU2V0IHNldDIpIHsKKyAgICAgICAgaWYgKHNldDEuZXF1YWxzKHNldDIpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaGVyZS5lcnJsbigiU2V0cyBkaWZmZXI6Iik7CisgICAgICAgIGhlcmUuZXJybG4oIlVuaWNvZGVNYXAgLSBIYXNoTWFwIik7CisgICAgICAgIGhlcmUuZXJybG4obmV3IFVuaWNvZGVTZXQoc2V0MSkucmVtb3ZlQWxsKHNldDIpLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIGhlcmUuZXJybG4oIkhhc2hNYXAgLSBVbmljb2RlTWFwIik7CisgICAgICAgIGhlcmUuZXJybG4obmV3IFVuaWNvZGVTZXQoc2V0MikucmVtb3ZlQWxsKHNldDEpLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gdmVyaWZ5U2V0c0lkZW50aWNhbChBYnN0cmFjdFRlc3RMb2cgaGVyZSwgU2V0IHZhbHVlczEsIFNldCB2YWx1ZXMyKSB7CisgICAgICAgIGlmICh2YWx1ZXMxLmVxdWFscyh2YWx1ZXMyKSkgcmV0dXJuIHRydWU7CisgICAgICAgIFNldCB0ZW1wOworICAgICAgICBoZXJlLmVycmxuKCJWYWx1ZXMgZGlmZmVyOiIpOworICAgICAgICBoZXJlLmVycmxuKCJVbmljb2RlTWFwIC0gSGFzaE1hcCIpOworICAgICAgICB0ZW1wID0gbmV3IFRyZWVTZXQodmFsdWVzMSk7CisgICAgICAgIHRlbXAucmVtb3ZlQWxsKHZhbHVlczIpOworICAgICAgICBoZXJlLmVycmxuKHNob3codGVtcCkpOworICAgICAgICBoZXJlLmVycmxuKCJIYXNoTWFwIC0gVW5pY29kZU1hcCIpOworICAgICAgICB0ZW1wID0gbmV3IFRyZWVTZXQodmFsdWVzMik7CisgICAgICAgIHRlbXAucmVtb3ZlQWxsKHZhbHVlczEpOworICAgICAgICBoZXJlLmVycmxuKHNob3codGVtcCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHNob3coTWFwIG0pIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IG0ua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoa2V5ICsgIj0+IiArIG0uZ2V0KGtleSkgKyAiXHJcbiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IGdldFNldChNYXAgbSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIFVuaWNvZGVTZXQgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IG0ua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIE9iamVjdCB2YWwgPSBtLmdldChrZXkpOworICAgICAgICAgICAgaWYgKCF2YWwuZXF1YWxzKHZhbHVlKSkgY29udGludWU7CisgICAgICAgICAgICByZXN1bHQuYWRkKCgoSW50ZWdlcilrZXkpLmludFZhbHVlKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHNob3coQ29sbGVjdGlvbiBjKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoaXQubmV4dCgpICsgIlxyXG4iKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdERhdGFNb2R1bGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0RGF0YU1vZHVsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkOTI3OTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdERhdGFNb2R1bGUuamF2YQpAQCAtMCwwICsxLDE2NiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0OworCitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCisvKioKKyAqIFJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIHRlc3QgZGF0YSBkZXNjcmliZWQgaW4gYSBmaWxlLgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVGVzdERhdGFNb2R1bGUgeworICAgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgbmFtZTsKKyAgICBwcm90ZWN0ZWQgZmluYWwgVGVzdExvZyBsb2c7CisKKyAgICAvKioKKyAgICAgKiBMb29rcyBmb3IgZmlsZSB3aXRoIGNvcnJlc3BvbmRpbmcgbmFtZSwgZWl0aGVyIHhtbCBvciByZXNvdXJjZQorICAgICAqIGJ1bmRsZS4gIFJldHVybnMgbW9kdWxlIG9yIG51bGwgaWYgbm90IHByZXNlbnQuICAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgVGVzdERhdGFNb2R1bGUgb3BlbihTdHJpbmcgbmFtZSwgVGVzdExvZyBsb2cpIHsKKyAgICBSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUobmFtZSk7CisgICAgaWYgKGJ1bmRsZSAhPSBudWxsKSB7CisgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VNb2R1bGUobmFtZSwgbG9nLCBidW5kbGUpOworICAgIH0KKyAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzcyBjb25zdHJ1Y3RvcnMgY2FsbCB0aGlzLgorICAgICAqLworICAgIHByb3RlY3RlZCBUZXN0RGF0YU1vZHVsZShTdHJpbmcgbmFtZSwgVGVzdExvZyBsb2cpIHsKKyAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgIHRoaXMubG9nID0gbG9nOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhpcyB0ZXN0IG1vZHVsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgcmV0dXJuIG5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsb2cgdXNlZCBieSB0aGlzIG1vZHVsZS4gIEVycm9ycyBsb2dnZWQgdG8gdGhpcworICAgICAqIGxvZyB3aWxsIHRlcm1pbmF0ZSBzZXR0aW5ncyBhbmQgY2FzZXMgaXRlcmF0aW9uIGZvciB0aGUKKyAgICAgKiBjdXJyZW50IHRlc3QuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFRlc3RMb2cgZ2V0TG9nKCkgeworICAgIHJldHVybiBsb2c7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGFkZGl0aW9uYWwgZGF0YSByZWxhdGVkIHRvIHRoZSBtb2R1bGUsIGUuZy4gREVTQ1JJUFRJT04sCisgICAgICogZ2xvYmFsIHNldHRpbmdzLiAgTWlnaHQgYmUgbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgRGF0YU1hcCBnZXRJbmZvKCk7CisKKyAgICAvKioKKyAgICAgKiBBIHN0YW5kYXJkIGRhdHVtIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBEYXRhTWFwIHJldHVybmVkIGJ5IGdldEluZm8uCisgICAgICogREVTQ1JJUFRJT04gcHJvdmlkZXMgYSBvbmUtbGluZSBkZXNjcmlwdGlvbi4gIFRoZSBjb3JyZXNwb25kaW5nIHR5cGUKKyAgICAgKiBpcyBhIFN0cmluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBERVNDUklQVElPTiA9ICJEZXNjcmlwdGlvbiI7CisKKyAgICAvKioKKyAgICAgKiBBIHN0YW5kYXJkIGRhdHVtIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBEYXRhTWFwIHJldHVybmVkIGJ5CisgICAgICogZ2V0SW5mby4gIExPTkdfREVTQ1JJUFRJT04gcHJvdmlkZXMgYW4gZXh0ZW5kZWQgZGVzY3JpcHRpb24uCisgICAgICogVGhlIGNvcnJlc3BvbmRpbmcgdHlwZSBpcyBhIFN0cmluZy4gIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIExPTkdfREVTQ1JJUFRJT04gPSAiTG9uZ19EZXNjcmlwdGlvbiI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbmFtZXMgb2YgdGhlIGNvbHVtbnMgb2YgdGVzdCBkYXRhLiAgVGhpcyBjYW4gYmUgZm91bmQgaW4KKyAgICAgKiBlaXRoZXIgdGhlIG1vZHVsZSBJTkZPIG9yIHRoZSB0ZXN0IElORk8uICBJZiB0aGUgdGVzdCBJTkZPCisgICAgICogZG9lcyBub3QgZGVmaW5lIHRoZSBoZWFkZXJzIHRoZW4gdGhleSBhcmUgdGFrZW4gZnJvbSB0aGUKKyAgICAgKiBtb2R1bGUuICBJZiB0ZXN0IGNhc2VzIGFyZSB1c2VkIGJ5IHRoZSB0ZXN0LCB0aGVuIHRoZSBoZWFkZXJzCisgICAgICogbXVzdCBiZSBkZWZpbmVkLiAgTW9zdCBjbGllbnRzIHdpbGwgbm90IG5lZWQgdGhpcyBpbmZvcm1hdGlvbiwKKyAgICAgKiBzaW5jZSBpdCBpcyBoYW5kbGVkIGJ5IHRoZSBmcmFtZXdvcmsuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEVBREVSUyA9ICJIZWFkZXJzIjsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFRlc3Qgb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gaW5kZXgsIG9yIG51bGwgaWYKKyAgICAgKiBpbmRleCBpcyBvdXQgb2YgcmFuZ2UgZm9yIHRoaXMgbW9kdWxlLiAgTm8gZXJyb3IgbG9nZ2VkIGlmCisgICAgICogaW5kZXggaXMgb3V0IG9mIGJvdW5kcywgdGhlIGFzc3VtcHRpb24gaXMgdGhhdCBpdGVyYXRpb24gaXMKKyAgICAgKiBiZWluZyB1c2VkLiAgCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFRlc3REYXRhIGNyZWF0ZVRlc3REYXRhKGludCBpbmRleCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBUZXN0RGF0YSBjb3JyZXNwb25kaW5nIHRvIG5hbWUsIG9yIG51bGwgaWYgbmFtZSBub3QKKyAgICAgKiBmb3VuZCBpbiB0aGlzIG1vZHVsZS4gIExvZ3MgZXJyb3IgaWYgbmFtZSBpcyBub3QgZm91bmQuICAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgVGVzdERhdGEgY3JlYXRlVGVzdERhdGEoU3RyaW5nIG5hbWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIHVubW9kaWZpYWJsZSBsaXN0IG9mIHRoZSB0ZXN0IGRhdGEgbmFtZXMsIGluIGluZGV4IG9yZGVyLgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBMaXN0IGdldFRlc3REYXRhTmFtZXMoKTsKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgYSBzaW5nbGUgdGVzdCBpbiB0aGUgbW9kdWxlLgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgVGVzdERhdGEgeworICAgIFN0cmluZyBuYW1lOworCisgICAgcHJvdGVjdGVkIFRlc3REYXRhKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBuYW1lKCkgeworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYWRkaXRpb25hbCBkYXRhIHJlbGF0ZWQgdG8gdGhlIHRlc3QsIGUuZy4gREVTQ1JJUFRJT04sCisgICAgICogTE9OR19ERVNDUklQVElPTiwgSEVBREVSUywgb3Igb3RoZXIgdGVzdC1zcGVjaWZpYworICAgICAqIGluZm9ybWF0aW9uLiAgCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IERhdGFNYXAgZ2V0SW5mbygpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBuZXcgRGF0YU1hcCBmb3IgbmV4dCBzZXR0aW5ncywgYW5kIHJlc2V0cyB0ZXN0IGNhc2UKKyAgICAgKiBpdGVyYXRpb24uICBSZXR1cm5zIG51bGwgaWYgbm8gbW9yZSBzZXR0aW5ncy4gIAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBEYXRhTWFwIG5leHRTZXR0aW5ncygpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBuZXcgRGF0YU1hcCBmb3IgbmV4dCBjYXNlcy4gIAorICAgICAqIFJldHVybnMgbnVsbCBpZiBubyBtb3JlIGNhc2VzLgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBEYXRhTWFwIG5leHRDYXNlKCk7CisKKyAgICAvKioKKyAgICAgKiBTdG9wcyBpdGVyYXRpb24gb2YgdGhlIHRlc3QuICBVc3VhbGx5IGNhbGxlZCBpZiBzb21lCisgICAgICogY29uZGl0aW9uIGRldGVjdHMgYW4gZXJyb3IuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc3RvcEl0ZXJhdGlvbigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERhdGFNYXAgcHJvdmlkZXMgbmFtZWQgYWNjZXNzIHRvIHR5cGVkIGRhdGEuICBMb29rdXAgZGF0YSBieQorICAgICAqIGtleSBhbmQgYXR0ZW1wdCB0byBjYXN0IHRvIGluZGljYXRlZCB0eXBlLiAgSWYgZGF0YSBub3QgZm91bmQKKyAgICAgKiBvciBjYXN0IGZhaWxzLCBsb2cgZXJyb3IgYW5kIHJldHVybiBudWxsLiAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIERhdGFNYXAgeworICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuICAgIGlzRGVmaW5lZChTdHJpbmcga2V5KTsKKworICAgIHB1YmxpYyBhYnN0cmFjdCBPYmplY3QgICAgIGdldE9iamVjdChTdHJpbmcga2V5KTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nICAgICBnZXRTdHJpbmcoU3RyaW5nIGtleSk7CisgICAgcHVibGljIGFic3RyYWN0IGNoYXIgICAgICAgZ2V0Q2hhcihTdHJpbmcga2V5KTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50ICAgICAgICBnZXRJbnQoU3RyaW5nIGtleSk7CisgICAgcHVibGljIGFic3RyYWN0IGJ5dGUgICAgICAgZ2V0Qnl0ZShTdHJpbmcga2V5KTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiAgICBnZXRCb29sZWFuKFN0cmluZyBrZXkpOworCisgICAgcHVibGljIGFic3RyYWN0IE9iamVjdFtdICAgZ2V0T2JqZWN0QXJyYXkoU3RyaW5nIGtleSk7CisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZ1tdICAgZ2V0U3RyaW5nQXJyYXkoU3RyaW5nIGtleSk7CisgICAgcHVibGljIGFic3RyYWN0IGNoYXJbXSAgICAgZ2V0Q2hhckFycmF5KFN0cmluZyBrZXkpOworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnRbXSAgICAgIGdldEludEFycmF5KFN0cmluZyBrZXkpOworICAgIHB1YmxpYyBhYnN0cmFjdCBieXRlW10gICAgIGdldEJ5dGVBcnJheShTdHJpbmcga2V5KTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbltdICBnZXRCb29sZWFuQXJyYXkoU3RyaW5nIGtleSk7CisgICAgfQorfQorICAgIApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdEZtd2suamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZTEyNjc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RGbXdrLmphdmEKQEAgLTAsMCArMSwxNzYxIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5QcmludFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuaW8uV3JpdGVyOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0LkZpZWxkOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKKy8vI2lmZGVmIEZPVU5EQVRJT04KKy8vIyMgaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKy8vI2VuZGlmCisvKioKKyAqIFRlc3RGbXdrIGlzIGEgYmFzZSBjbGFzcyBmb3IgdGVzdHMgdGhhdCBjYW4gYmUgcnVuIGNvbnZlbmllbnRseSBmcm9tIHRoZQorICogY29tbWFuZCBsaW5lIGFzIHdlbGwgYXMgdW5kZXIgdGhlIEphdmEgdGVzdCBoYXJuZXNzLgorICogPHA+CisgKiBTdWItY2xhc3NlcyBpbXBsZW1lbnQgYSBzZXQgb2YgbWV0aG9kcyBuYW1lZCBUZXN0IDxzb21ldGhpbmc+LiBFYWNoIG9mIHRoZXNlCisgKiBtZXRob2RzIHBlcmZvcm1zIHNvbWUgdGVzdC4gVGVzdCBtZXRob2RzIHNob3VsZCBpbmRpY2F0ZSBlcnJvcnMgYnkgY2FsbGluZworICogZWl0aGVyIGVyciBvciBlcnJsbi4gVGhpcyB3aWxsIGluY3JlbWVudCB0aGUgZXJyb3JDb3VudCBmaWVsZCBhbmQgbWF5CisgKiBvcHRpb25hbGx5IHByaW50IGEgbWVzc2FnZSB0byB0aGUgbG9nLiBEZWJ1Z2dpbmcgaW5mb3JtYXRpb24gbWF5IGFsc28gYmUKKyAqIGFkZGVkIHRvIHRoZSBsb2cgdmlhIHRoZSBsb2cgYW5kIGxvZ2xuIG1ldGhvZHMuIFRoZXNlIG1ldGhvZHMgd2lsbCBhZGQgdGhlaXIKKyAqIGFyZ3VtZW50cyB0byB0aGUgbG9nIG9ubHkgaWYgdGhlIHRlc3QgaXMgYmVpbmcgcnVuIGluIHZlcmJvc2UgbW9kZS4KKyAqLworcHVibGljIGNsYXNzIFRlc3RGbXdrIGV4dGVuZHMgQWJzdHJhY3RUZXN0TG9nIHsKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMjAwMyBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8qKgorICAgICAqIFRoZSBkZWZhdWx0IHRpbWUgem9uZSBmb3IgYWxsIG9mIG91ciB0ZXN0cy4gVXNlZCBpbiBUYXJnZXQucnVuKCk7CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgVGltZVpvbmUgZGVmYXVsdFRpbWVab25lID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgbG9jYWxlIHVzZWQgZm9yIGFsbCBvZiBvdXIgdGVzdHMuIFVzZWQgaW4gVGFyZ2V0LnJ1bigpOworICAgICAqLworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIExvY2FsZSBkZWZhdWx0TG9jYWxlID0gTG9jYWxlLlVTOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBUZXN0Rm13a0V4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7CisgICAgICAgIFRlc3RGbXdrRXhjZXB0aW9uKFN0cmluZyBtc2cpIHsKKyAgICAgICAgICAgIHN1cGVyKG1zZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlRXhjZXB0aW9uKFRocm93YWJsZSBlKXsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIFRocm93YWJsZSBleCA9IGUuZ2V0Q2F1c2UoKTsKKy8vI2Vsc2UKKy8vIyMgICAgVGhyb3dhYmxlIGV4ID0gbnVsbDsKKy8vI2VuZGlmCisgICAgICAgIGlmKGV4PT1udWxsKXsKKyAgICAgICAgICAgIGV4ID0gZTsKKyAgICAgICAgfQorICAgICAgICBpZihleCBpbnN0YW5jZW9mIEV4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvcil7CisgICAgICAgICAgICBleCA9ICgoRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yKWV4KS5nZXRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nIG1zZyA9IGV4LmdldE1lc3NhZ2UoKTsKKyAgICAgICAgLy9TeXN0ZW0uZXJyLnByaW50bG4oIlRGIGhhbmRsZUV4Y2VwdGlvbiBtc2c6ICIgKyBtc2cpOworICAgICAgICBpZiAoZXggaW5zdGFuY2VvZiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gfHwgZXggaW5zdGFuY2VvZiBOb0NsYXNzRGVmRm91bmRFcnJvciB8fAorICAgICAgICAgICAgICAgIC8vSUJNIEpESyAxLjUuMCBTUjIgZGV2aWF0ZXMgZnJvbSBKYXZhIHNwZWMgYW5kIHRocm93cyBhIFRocm93YWJsZSBvYmplY3QgICAgCisgICAgICAgICAgICAgICAgKChleCBpbnN0YW5jZW9mIFRocm93YWJsZSkgJiYgKG1zZyAhPSBudWxsKSAmJiAobXNnLmluZGV4T2YoIk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiIpID4gMCkpKSB7CisgICAgICAgIAorICAgICAgICAgICAgaWYgKHBhcmFtcy53YXJuaW5ncyB8fCBwYXJhbXMubm9kYXRhKSB7CisgICAgICAgICAgICAgICAgd2FybmxuKG1zZyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtcy5ub3Rocm93KSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnKTsKKyAgICAgICAgICAgICAgICBleC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24obXNnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChwYXJhbXMubm90aHJvdykgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24obXNnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAvLyB1c2UgdGhpcyBpbnN0ZWFkIG9mIG5ldyByYW5kb20gc28gd2UgZ2V0IGEgY29uc2lzdGVudCBzZWVkCisgICAgLy8gZm9yIG91ciB0ZXN0cworICAgIHByb3RlY3RlZCBSYW5kb20gY3JlYXRlUmFuZG9tKCkgeworICAgICAgICByZXR1cm4gbmV3IFJhbmRvbShwYXJhbXMuc2VlZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQSB0ZXN0IHRoYXQgaGFzIG5vIHRlc3QgbWV0aG9kcyBpdHNlbGYsIGJ1dCBpbnN0ZWFkIHJ1bnMgb3RoZXIgdGVzdHMuCisgICAgICogCisgICAgICogVGhpcyBvdmVycmlkZXMgbWV0aG9kcyBhcmUgZ2V0VGFyZ2V0cyBhbmQgZ2V0U3VidGVzdCBmcm9tIFRlc3RGbXdrLgorICAgICAqIAorICAgICAqIElmIHlvdSB3YW50IHRoZSBkZWZhdWx0IGJlaGF2aW9yLCBwYXNzIGFuIGFycmF5IG9mIGNsYXNzIG5hbWVzIGFuZCBhbgorICAgICAqIG9wdGlvbmFsIGRlc2NyaXB0aW9uIHRvIHRoZSBjb25zdHJ1Y3Rvci4gVGhlIG5hbWVkIGNsYXNzZXMgbXVzdCBleHRlbmQKKyAgICAgKiBUZXN0Rm13ay4gSWYgYSBwcm92aWRlZCBuYW1lIGRvZXNuJ3QgaW5jbHVkZSBhICIuIiwgcGFja2FnZSBuYW1lIGlzCisgICAgICogcHJlZml4ZWQgdG8gaXQgKHRoZSBwYWNrYWdlIG9mIHRoZSBjdXJyZW50IHRlc3QgaXMgdXNlZCBpZiBub25lIHdhcworICAgICAqIHByb3ZpZGVkIGluIHRoZSBjb25zdHJ1Y3RvcikuIFRoZSByZXN1bHRpbmcgZnVsbCBuYW1lIGlzIHVzZWQgdG8KKyAgICAgKiBpbnN0YW50aWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgdXNpbmcgdGhlIGRlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICogCisgICAgICogQ2xhc3MgbmFtZXMgYXJlIHJlc29sdmVkIHRvIGNsYXNzZXMgd2hlbiBnZXRUYXJnZXRzIG9yIGdldFN1YnRlc3QgaXMKKyAgICAgKiBjYWxsZWQuIFRoaXMgYWxsb3dzIGluc3RhbmNlcyBvZiBUZXN0R3JvdXAgdG8gYmUgY29tcGlsZWQgYW5kIHJ1biB3aXRob3V0CisgICAgICogYWxsIHRoZSB0YXJnZXRzIHRoZXkgd291bGQgbm9ybWFsbHkgaW52b2tlIGJlaW5nIGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGFic3RyYWN0IGNsYXNzIFRlc3RHcm91cCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZGVmYXVsdFBhY2thZ2U7CisgICAgICAgIHByaXZhdGUgU3RyaW5nW10gbmFtZXM7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGRlc2NyaXB0aW9uOworCisgICAgICAgIHByaXZhdGUgQ2xhc3NbXSB0ZXN0czsgLy8gZGVmZXJyZWQgaW5pdAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RvciB0aGF0IHRha2VzIGEgZGVmYXVsdCBwYWNrYWdlIG5hbWUgYW5kIGEgbGlzdCBvZiBjbGFzcworICAgICAgICAgKiBuYW1lcy4gQWRvcHRzIGFuZCBtb2RpZmllcyB0aGUgY2xhc3NuYW1lIGxpc3QKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBUZXN0R3JvdXAoU3RyaW5nIGRlZmF1bHRQYWNrYWdlLCBTdHJpbmdbXSBjbGFzc25hbWVzLAorICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgaWYgKGNsYXNzbmFtZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oImNsYXNzbmFtZXMgbXVzdCBub3QgYmUgbnVsbCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZGVmYXVsdFBhY2thZ2UgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGRlZmF1bHRQYWNrYWdlID0gZ2V0Q2xhc3MoKS5nZXRQYWNrYWdlKCkuZ2V0TmFtZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVmYXVsdFBhY2thZ2UgPSBkZWZhdWx0UGFja2FnZSArICIuIjsKKworICAgICAgICAgICAgdGhpcy5kZWZhdWx0UGFja2FnZSA9IGRlZmF1bHRQYWNrYWdlOworICAgICAgICAgICAgdGhpcy5uYW1lcyA9IGNsYXNzbmFtZXM7CisgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0b3IgdGhhdCB0YWtlcyBhIGxpc3Qgb2YgY2xhc3MgbmFtZXMgYW5kIGEgZGVzY3JpcHRpb24sIGFuZAorICAgICAgICAgKiB1c2VzIHRoZSBwYWNrYWdlIGZvciB0aGlzIGNsYXNzIGFzIHRoZSBkZWZhdWx0IHBhY2thZ2UuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgVGVzdEdyb3VwKFN0cmluZ1tdIGNsYXNzbmFtZXMsIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgdGhpcyhudWxsLCBjbGFzc25hbWVzLCBkZXNjcmlwdGlvbik7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0b3IgdGhhdCB0YWtlcyBhIGxpc3Qgb2YgY2xhc3MgbmFtZXMsIGFuZCB1c2VzIHRoZSBwYWNrYWdlCisgICAgICAgICAqIGZvciB0aGlzIGNsYXNzIGFzIHRoZSBkZWZhdWx0IHBhY2thZ2UuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgVGVzdEdyb3VwKFN0cmluZ1tdIGNsYXNzbmFtZXMpIHsKKyAgICAgICAgICAgIHRoaXMobnVsbCwgY2xhc3NuYW1lcywgbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldERlc2NyaXB0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIFRhcmdldCBnZXRUYXJnZXRzKFN0cmluZyB0YXJnZXROYW1lKSB7CisgICAgICAgICAgICBUYXJnZXQgdGFyZ2V0ID0gbnVsbDsKKyAgICAgICAgICAgIGlmICh0YXJnZXROYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hJbml0KCk7IC8vIGhtbW0sIHdhbnQgdG8gZ2V0IHN1YnRlc3Qgd2l0aG91dCBpbml0aWFsaXppbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbCB0ZXN0cworCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgVGVzdEZtd2sgdGVzdCA9IGdldFN1YnRlc3QodGFyZ2V0TmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IHRlc3QubmV3IENsYXNzVGFyZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQgPSB0aGlzLm5ldyBUYXJnZXQodGFyZ2V0TmFtZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChUZXN0Rm13a0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IHRoaXMubmV3IFRhcmdldCh0YXJnZXROYW1lKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtcy5kb1JlY3Vyc2UoKSkgeworICAgICAgICAgICAgICAgIGZpbmlzaEluaXQoKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGdyb3VwT25seSA9IHBhcmFtcy5kb1JlY3Vyc2VHcm91cHNPbmx5KCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IG5hbWVzLmxlbmd0aDsgLS1pID49IDA7KSB7CisgICAgICAgICAgICAgICAgICAgIFRhcmdldCBuZXdUYXJnZXQgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBDbGFzcyBjbHMgPSB0ZXN0c1tpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNscyA9PSBudWxsKSB7IC8vIGhhY2sgbm8gd2FybmluZyBmb3IgbWlzc2luZyB0ZXN0cworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtcy53YXJuaW5ncykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdUYXJnZXQgPSB0aGlzLm5ldyBUYXJnZXQobmFtZXNbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgVGVzdEZtd2sgdGVzdCA9IGdldFN1YnRlc3QoaSwgZ3JvdXBPbmx5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdUYXJnZXQgPSB0ZXN0Lm5ldyBDbGFzc1RhcmdldCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBPbmx5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1RhcmdldCA9IHRoaXMubmV3IEVtcHR5VGFyZ2V0KG5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdUYXJnZXQgPSB0aGlzLm5ldyBUYXJnZXQobmFtZXNbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAobmV3VGFyZ2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld1RhcmdldC5zZXROZXh0KHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQgPSBuZXdUYXJnZXQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFRlc3RGbXdrIGdldFN1YnRlc3QoU3RyaW5nIHRlc3ROYW1lKSB0aHJvd3MgVGVzdEZtd2tFeGNlcHRpb24geworICAgICAgICAgICAgZmluaXNoSW5pdCgpOworCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKG5hbWVzW2ldLmVxdWFsc0lnbm9yZUNhc2UodGVzdE5hbWUpKSB7IC8vIGFsbG93CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhc2UtaW5zZW5zaXRpdmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWF0Y2hpbmcKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldFN1YnRlc3QoaSwgZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93IG5ldyBUZXN0Rm13a0V4Y2VwdGlvbih0ZXN0TmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIFRlc3RGbXdrIGdldFN1YnRlc3QoaW50IGksIGJvb2xlYW4gZ3JvdXBPbmx5KSB7CisgICAgICAgICAgICBDbGFzcyBjbHMgPSB0ZXN0c1tpXTsKKyAgICAgICAgICAgIGlmIChjbHMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChncm91cE9ubHkgJiYgIVRlc3RHcm91cC5jbGFzcy5pc0Fzc2lnbmFibGVGcm9tKGNscykpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgVGVzdEZtd2sgc3VidGVzdCA9IChUZXN0Rm13aykgY2xzLm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgICAgIHN1YnRlc3QucGFyYW1zID0gcGFyYW1zOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3VidGVzdDsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbnN0YW50aWF0aW9uRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGZpbmlzaEluaXQoKSB7CisgICAgICAgICAgICBpZiAodGVzdHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRlc3RzID0gbmV3IENsYXNzW25hbWVzLmxlbmd0aF07CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbmFtZXNbaV07CisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmluZGV4T2YoJy4nKSA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGRlZmF1bHRQYWNrYWdlICsgbmFtZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3MgY2xzID0gQ2xhc3MuZm9yTmFtZShuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVGVzdEZtd2suY2xhc3MuaXNBc3NpZ25hYmxlRnJvbShjbHMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiY2xhc3MgIiArIG5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBkb2VzIG5vdCBleHRlbmQgVGVzdEZtd2siKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHNbaV0gPSBjbHM7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc1tpXSA9IGdldENsYXNzVGFyZ2V0TmFtZShjbHMpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxlYXZlIHRlc3RzW2ldIG51bGwgYW5kIG5hbWUgYXMgY2xhc3NuYW1lCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCB0YXJnZXQgaXMgaW52YWxpZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2xhc3MgVGFyZ2V0IHsKKyAgICAgICAgcHJpdmF0ZSBUYXJnZXQgbmV4dDsKKyAgICAgICAgcHVibGljIGZpbmFsIFN0cmluZyBuYW1lOworCisgICAgICAgIHB1YmxpYyBUYXJnZXQoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVGFyZ2V0IHNldE5leHQoVGFyZ2V0IG5leHQpIHsKKyAgICAgICAgICAgIHRoaXMubmV4dCA9IG5leHQ7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBUYXJnZXQgZ2V0TmV4dCgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXh0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgICAgICBpbnQgZiA9IGZpbHRlcigpOworICAgICAgICAgICAgaWYgKGYgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICArK3BhcmFtcy5pbnZhbGlkQ291bnQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KGRlZmF1bHRMb2NhbGUpOworICAgICAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoZGVmYXVsdFRpbWVab25lKTsKKworICAgICAgICAgICAgICAgIGlmICghdmFsaWRhdGUoKSkgeworICAgICAgICAgICAgICAgICAgICBwYXJhbXMud3JpdGVUZXN0SW52YWxpZChuYW1lLCBwYXJhbXMubm9kYXRhKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwYXJhbXMucHVzaChuYW1lLCBnZXREZXNjcmlwdGlvbigpLCBmID09IDEpOworICAgICAgICAgICAgICAgICAgICBleGVjdXRlKCk7CisgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5wb3AoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgaW50IGZpbHRlcigpIHsKKyAgICAgICAgICAgIHJldHVybiBwYXJhbXMuZmlsdGVyKG5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gdmFsaWRhdGUoKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldERlc2NyaXB0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBjbGFzcyBFbXB0eVRhcmdldCBleHRlbmRzIFRhcmdldCB7CisgICAgICAgIHB1YmxpYyBFbXB0eVRhcmdldChTdHJpbmcgbmFtZSkgeworICAgICAgICAgICAgc3VwZXIobmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiB2YWxpZGF0ZSgpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGNsYXNzIE1ldGhvZFRhcmdldCBleHRlbmRzIFRhcmdldCB7CisgICAgICAgIHByaXZhdGUgTWV0aG9kIHRlc3RNZXRob2Q7CisKKyAgICAgICAgcHVibGljIE1ldGhvZFRhcmdldChTdHJpbmcgbmFtZSwgTWV0aG9kIG1ldGhvZCkgeworICAgICAgICAgICAgc3VwZXIobmFtZSk7CisgICAgICAgICAgICB0ZXN0TWV0aG9kID0gbWV0aG9kOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gdmFsaWRhdGUoKSB7CisgICAgICAgICAgICByZXR1cm4gdGVzdE1ldGhvZCAhPSBudWxsICYmIHZhbGlkYXRlTWV0aG9kKG5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXREZXNjcmlwdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRNZXRob2REZXNjcmlwdGlvbihuYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICAgICAgaWYgKHBhcmFtcy5pbkRvY01vZGUoKSkgeworICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZXhlY3V0ZQorICAgICAgICAgICAgfSBlbHNlIGlmICghcGFyYW1zLnN0YWNrLmluY2x1ZGVkKSB7CisgICAgICAgICAgICAgICAgKytwYXJhbXMuaW52YWxpZENvdW50OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmaW5hbCBPYmplY3RbXSBOT19BUkdTID0gbmV3IE9iamVjdFswXTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICArK3BhcmFtcy50ZXN0Q291bnQ7CisgICAgICAgICAgICAgICAgICAgIGluaXQoKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdE1ldGhvZC5pbnZva2UoVGVzdEZtd2sudGhpcywgTk9fQVJHUyk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDYW4ndCBhY2Nlc3MgdGVzdCBtZXRob2QgIiArIHRlc3RNZXRob2QuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgICAgICB9Y2F0Y2ggKEV4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvciBlKXsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlRXhjZXB0aW9uKGUpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVFeGNlcHRpb24oZSk7CisgICAgICAgICAgICAgICAgfWNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVFeGNlcHRpb24oZSk7CisgICAgICAgICAgICAgICAgfWNhdGNoIChOb0NsYXNzRGVmRm91bmRFcnJvciBlKSB7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZUV4Y2VwdGlvbihlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIFN0cmluZyBnZXRTdGFja1RyYWNlKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJzID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOworICAgICAgICAgICAgUHJpbnRTdHJlYW0gcHMgPSBuZXcgUHJpbnRTdHJlYW0oYnMpOworICAgICAgICAgICAgZS5nZXRUYXJnZXRFeGNlcHRpb24oKS5wcmludFN0YWNrVHJhY2UocHMpOworICAgICAgICAgICAgcmV0dXJuIGJzLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgY2xhc3MgQ2xhc3NUYXJnZXQgZXh0ZW5kcyBUYXJnZXQgeworICAgICAgICBTdHJpbmcgdGFyZ2V0TmFtZTsKKworICAgICAgICBwdWJsaWMgQ2xhc3NUYXJnZXQoKSB7CisgICAgICAgICAgICB0aGlzKG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIENsYXNzVGFyZ2V0KFN0cmluZyB0YXJnZXROYW1lKSB7CisgICAgICAgICAgICBzdXBlcihnZXRDbGFzc1RhcmdldE5hbWUoVGVzdEZtd2sudGhpcy5nZXRDbGFzcygpKSk7CisgICAgICAgICAgICB0aGlzLnRhcmdldE5hbWUgPSB0YXJnZXROYW1lOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gdmFsaWRhdGUoKSB7CisgICAgICAgICAgICByZXR1cm4gVGVzdEZtd2sudGhpcy52YWxpZGF0ZSgpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXREZXNjcmlwdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBUZXN0Rm13ay50aGlzLmdldERlc2NyaXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgICAgICBwYXJhbXMuaW5kZW50TGV2ZWwrKzsKKyAgICAgICAgICAgIFRhcmdldCB0YXJnZXQgPSByYW5kb21pemUoZ2V0VGFyZ2V0cyh0YXJnZXROYW1lKSk7CisgICAgICAgICAgICB3aGlsZSAodGFyZ2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQucnVuKCk7CisgICAgICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0Lm5leHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJhbXMuaW5kZW50TGV2ZWwtLTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgVGFyZ2V0IHJhbmRvbWl6ZShUYXJnZXQgdCkgeworICAgICAgICAgICAgaWYgKHQgIT0gbnVsbCAmJiB0LmdldE5leHQoKSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgQXJyYXlMaXN0IGxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBsaXN0LmFkZCh0KTsKKyAgICAgICAgICAgICAgICAgICAgdCA9IHQuZ2V0TmV4dCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIFRhcmdldFtdIGFyciA9IChUYXJnZXRbXSkgbGlzdC50b0FycmF5KG5ldyBUYXJnZXRbbGlzdC5zaXplKCldKTsKKworICAgICAgICAgICAgICAgIGlmICh0cnVlKSB7IC8vIHRvZG8gLSBhZGQgdG8gcGFyYW1zPworICAgICAgICAgICAgICAgICAgICAvLyBkaWZmZXJlbnQganZtcyByZXR1cm4gY2xhc3MgbWV0aG9kcyBpbiBkaWZmZXJlbnQgb3JkZXJzLAorICAgICAgICAgICAgICAgICAgICAvLyBzbyB3ZSBzb3J0IHRoZW0gKGFsd2F5cywgYW5kIHRoZW4gcmFuZG9taXplIHRoZW0sIHNvIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9yY2luZyBhIHNlZWQgd2lsbCBhbHNvIHdvcmsgYWNyb3NzIGp2bXMpLgorICAgICAgICAgICAgICAgICAgICBBcnJheXMuc29ydChhcnIsIG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzb3J0IGluIHJldmVyc2Ugb3JkZXIsIGxhdGVyIHdlIGxpbmsgdXAgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3J3YXJkIG9yZGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoVGFyZ2V0KSByaHMpLm5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb21wYXJlVG8oKChUYXJnZXQpIGxocykubmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgICAgIC8vIHQgaXMgbnVsbCB0byBzdGFydCwgZW5kcyB1cCBhcyBmaXJzdCBlbGVtZW50CisgICAgICAgICAgICAgICAgICAgIC8vIChhcnJbYXJyLmxlbmd0aC0xXSkKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHQgPSBhcnJbaV0uc2V0TmV4dCh0KTsgLy8gcmVsaW5rIGluIGZvcndhcmQgb3JkZXIKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChwYXJhbXMucmFuZG9tICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdCA9IG51bGw7IC8vIHJlc2V0IHQgdG8gbnVsbAorICAgICAgICAgICAgICAgICAgICBSYW5kb20gciA9IHBhcmFtcy5yYW5kb207CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBhcnIubGVuZ3RoOyAtLWkgPj0gMTspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCB4ID0gci5uZXh0SW50KGkgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHQgPSBhcnJbeF0uc2V0TmV4dCh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFyclt4XSA9IGFycltpXTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHQgPSBhcnJbMF0uc2V0TmV4dCh0KTsgLy8gbmV3IGZpcnN0IGVsZW1lbnQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiB0OworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBFdmVyeXRoaW5nIGJlbG93IGhlcmUgaXMgYm9pbGVycGxhdGUgY29kZSB0aGF0IG1ha2VzIGl0IHBvc3NpYmxlCisgICAgLy8gdG8gYWRkIGEgbmV3IHRlc3QgYnkgc2ltcGx5IGFkZGluZyBhIGZ1bmN0aW9uIHRvIGFuIGV4aXN0aW5nIGNsYXNzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByb3RlY3RlZCBUZXN0Rm13aygpIHsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpIHRocm93cyBFeGNlcHRpb257CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFBhcnNlIGFyZ3VtZW50cyBpbnRvIGEgVGVzdFBhcmFtcyBvYmplY3QgYW5kIGEgY29sbGVjdGlvbiBvZiB0YXJnZXQKKyAgICAgKiBwYXRocy4gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHBhcnNpbmcgdGhlIFRlc3RQYXJhbXMsIHByaW50IHVzYWdlIGFuZCBleGl0CisgICAgICogd2l0aCAtMS4gT3RoZXJ3aXNlLCBjYWxsIHJlc29sdmVUYXJnZXQoVGVzdFBhcmFtcywgU3RyaW5nKSBmb3IgZWFjaCBwYXRoLAorICAgICAqIGFuZCBydW4gdGhlIHJldHVybmVkIHRhcmdldC4gQWZ0ZXIgdGhlIGxhc3QgdGVzdCByZXR1cm5zLCBpZiBwcm9tcHQgaXMKKyAgICAgKiBzZXQsIHByb21wdCBhbmQgd2FpdCBmb3IgaW5wdXQgZnJvbSBzdGRpbi4gRmluYWxseSwgZXhpdCB3aXRoIG51bWJlciBvZgorICAgICAqIGVycm9ycy4KKyAgICAgKiAKKyAgICAgKiBUaGlzIG1ldGhvZCBuZXZlciByZXR1cm5zLCBzaW5jZSBpdCBhbHdheXMgZXhpdHMgd2l0aCBTeXN0ZW0uZXhpdCgpOworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJ1bihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIFN5c3RlbS5leGl0KHJ1bihhcmdzLCBuZXcgUHJpbnRXcml0ZXIoU3lzdGVtLm91dCkpKTsKKyAgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIExpa2UgcnVuKFN0cmluZ1tdKSBleGNlcHQgdGhpcyBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlIGVycm9yIGxvZy4KKyAgICAgKiBVbmxpa2UgcnVuKFN0cmluZ1tdKSB0aGlzIHJldHVybnMgdGhlIGVycm9yIGNvZGUgYXMgYSByZXN1bHQgaW5zdGVhZCBvZgorICAgICAqIGNhbGxpbmcgU3lzdGVtLmV4aXQoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHJ1bihTdHJpbmdbXSBhcmdzLCBQcmludFdyaXRlciBsb2cpIHsKKyAgICAgICAgYm9vbGVhbiBwcm9tcHQgPSBmYWxzZTsKKyAgICAgICAgaW50IHd4ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgYXJnID0gYXJnc1tpXTsKKyAgICAgICAgICAgIGlmIChhcmcuZXF1YWxzKCItcCIpIHx8IGFyZy5lcXVhbHMoIi1wcm9tcHQiKSkgeworICAgICAgICAgICAgICAgIHByb21wdCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmICh3eCA8IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXJnc1t3eF0gPSBhcmc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHd4Kys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKHd4IDwgYXJncy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGFyZ3Nbd3grK10gPSBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBUZXN0UGFyYW1zIHBhcmFtcyA9IFRlc3RQYXJhbXMuY3JlYXRlKGFyZ3MsIGxvZyk7CisgICAgICAgIGlmIChwYXJhbXMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgZXJyb3JDb3VudCA9IHJ1blRlc3RzKHBhcmFtcywgYXJncyk7CisgICAgICAgIAorICAgICAgICBpZiAocGFyYW1zLnNlZWQgIT0gMCkgeworICAgICAgICAgICAgcGFyYW1zLmxvZy5wcmludGxuKCItcmFuZG9tOiIgKyBwYXJhbXMuc2VlZCk7CisgICAgICAgICAgICBwYXJhbXMubG9nLmZsdXNoKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocGFyYW1zLmVycm9yU3VtbWFyeSAhPSBudWxsICYmIHBhcmFtcy5lcnJvclN1bW1hcnkubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBwYXJhbXMubG9nLnByaW50bG4oIlxuRXJyb3Igc3VtbWFyeToiKTsKKyAgICAgICAgICAgIHBhcmFtcy5sb2cucHJpbnRsbihwYXJhbXMuZXJyb3JTdW1tYXJ5LnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHByb21wdCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJIaXQgUkVUVVJOIHRvIGV4aXQuLi4iKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQuZmx1c2goKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmluLnJlYWQoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBwYXJhbXMubG9nLnByaW50bG4oIkV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBlcnJvckNvdW50OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgcnVuVGVzdHMoVGVzdFBhcmFtcyBwYXJhbXMsIFN0cmluZ1tdIHRlc3RzKSB7CisgICAgICAgIGludCBlYyA9IDA7CisgICAgICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgc3VtbWFyeSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAodGVzdHMubGVuZ3RoID09IDAgfHwgdGVzdHNbMF0gPT0gbnVsbCkgeyAvLyBubyBhcmdzCisgICAgICAgICAgICAgICAgcGFyYW1zLmluaXQoKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlVGFyZ2V0KHBhcmFtcykucnVuKCk7CisgICAgICAgICAgICAgICAgZWMgPSBwYXJhbXMuZXJyb3JDb3VudDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGggOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RzW2ldID09IG51bGwpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMubG9nLnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5pbml0KCk7CisgICAgICAgICAgICAgICAgICAgIHJlc29sdmVUYXJnZXQocGFyYW1zLCB0ZXN0c1tpXSkucnVuKCk7CisgICAgICAgICAgICAgICAgICAgIGVjICs9IHBhcmFtcy5lcnJvckNvdW50OworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtcy5lcnJvclN1bW1hcnkgIT0gbnVsbCAmJiBwYXJhbXMuZXJyb3JTdW1tYXJ5Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1bW1hcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnkgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5LmFwcGVuZCgiXG5UZXN0IFJvb3Q6ICIgKyB0ZXN0c1tpXSArICJcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyeS5hcHBlbmQocGFyYW1zLmVycm9yU3VtbWFyeSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwYXJhbXMuZXJyb3JTdW1tYXJ5ID0gc3VtbWFyeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKHBhcmFtcy5sb2cpOworICAgICAgICAgICAgcGFyYW1zLmxvZy5wcmludGxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHBhcmFtcy5sb2cucHJpbnRsbigiZW5jb3VudGVyZWQgZXhjZXB0aW9uLCBleGl0aW5nIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBlYzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgQ2xhc3NUYXJnZXQgZm9yIHRoaXMgdGVzdC4gUGFyYW1zIGlzIHNldCBvbiB0aGlzIHRlc3QuCisgICAgICovCisgICAgcHVibGljIFRhcmdldCByZXNvbHZlVGFyZ2V0KFRlc3RQYXJhbXMgcGFyYW1zKSB7CisgICAgICAgIHRoaXMucGFyYW1zID0gcGFyYW1zOworICAgICAgICByZXR1cm4gbmV3IENsYXNzVGFyZ2V0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzb2x2ZSBhIHBhdGggZnJvbSB0aGlzIHRlc3QgdG8gYSB0YXJnZXQuIElmIHRoaXMgdGVzdCBoYXMgc3VidGVzdHMsIGFuZAorICAgICAqIHRoZSBwYXRoIGNvbnRhaW5zICcvJywgdGhlIHBvcnRpb24gYmVmb3JlIHRoZSAnLycgaXMgcmVzb2x2ZWQgdG8gYQorICAgICAqIHN1YnRlc3QsIHVudGlsIHRoZSBwYXRoIGlzIGNvbnN1bWVkIG9yIHRoZSB0ZXN0IGhhcyBubyBzdWJ0ZXN0cy4gUmV0dXJucworICAgICAqIGEgQ2xhc3NUYXJnZXQgY3JlYXRlZCB1c2luZyB0aGUgcmVzb2x2ZWQgdGVzdCBhbmQgcmVtYWluaW5nIHBhdGggKHdoaWNoCisgICAgICogb3VnaHQgdG8gYmUgbnVsbCBvciBhIG1ldGhvZCBuYW1lKS4gUGFyYW1zIGlzIHNldCBvbiB0aGUgdGFyZ2V0J3MgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGFyZ2V0IHJlc29sdmVUYXJnZXQoVGVzdFBhcmFtcyBwYXJhbXMsIFN0cmluZyB0YXJnZXRQYXRoKSB7CisgICAgICAgIFRlc3RGbXdrIHRlc3QgPSB0aGlzOworICAgICAgICB0ZXN0LnBhcmFtcyA9IHBhcmFtczsKKworICAgICAgICBpZiAodGFyZ2V0UGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAodGFyZ2V0UGF0aC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0UGF0aCA9IG51bGw7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGludCBwID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgZSA9IHRhcmdldFBhdGgubGVuZ3RoKCk7CisKKyAgICAgICAgICAgICAgICAvLyB0cmltIGFsbCBsZWFkaW5nIGFuZCB0cmFpbGluZyAnLycKKyAgICAgICAgICAgICAgICB3aGlsZSAodGFyZ2V0UGF0aC5jaGFyQXQocCkgPT0gJy8nKSB7CisgICAgICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUgKGUgPiBwICYmIHRhcmdldFBhdGguY2hhckF0KGUgLSAxKSA9PSAnLycpIHsKKyAgICAgICAgICAgICAgICAgICAgLS1lOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocCA+IDAgfHwgZSA8IHRhcmdldFBhdGgubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0UGF0aCA9IHRhcmdldFBhdGguc3Vic3RyaW5nKHAsIGUgLSBwKTsKKyAgICAgICAgICAgICAgICAgICAgcCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGUgPSB0YXJnZXRQYXRoLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBuID0gdGFyZ2V0UGF0aC5pbmRleE9mKCcvJyk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcHJlZml4ID0gbiA9PSAtMSA/IHRhcmdldFBhdGggOiB0YXJnZXRQYXRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzdHJpbmcoMCwgbik7CisgICAgICAgICAgICAgICAgICAgICAgICBUZXN0Rm13ayBzdWJ0ZXN0ID0gdGVzdC5nZXRTdWJ0ZXN0KHByZWZpeCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdWJ0ZXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdCA9IHN1YnRlc3Q7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0UGF0aCA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFBhdGggPSB0YXJnZXRQYXRoLnN1YnN0cmluZyhuICsgMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChUZXN0Rm13a0V4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGVzdC5uZXcgVGFyZ2V0KHRhcmdldFBhdGgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0ZXN0Lm5ldyBDbGFzc1RhcmdldCh0YXJnZXRQYXRoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB3ZSBjYW4gcnVuIHRoaXMgdGVzdCAoYWxsb3dzIHRlc3QgdG8gaW5zcGVjdCBqdm0sCisgICAgICogZW52aXJvbm1lbnQsIHBhcmFtcyBiZWZvcmUgcnVubmluZykKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiB2YWxpZGF0ZSgpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0YXJnZXRzIGZvciB0aGlzIHRlc3QuIElmIHRhcmdldE5hbWUgaXMgbnVsbCwgcmV0dXJuIGFsbAorICAgICAqIHRhcmdldHMsIG90aGVyd2lzZSByZXR1cm4gYSB0YXJnZXQgZm9yIGp1c3QgdGhhdCBuYW1lLiBUaGUgcmV0dXJuZWQKKyAgICAgKiB0YXJnZXQgY2FuIGJlIG51bGwuCisgICAgICogCisgICAgICogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyBhIE1ldGhvZFRhcmdldCBmb3IgZWFjaCBwdWJsaWMgbWV0aG9kCisgICAgICogb2YgdGhlIG9iamVjdCdzIGNsYXNzIHdob3NlIG5hbWUgc3RhcnRzIHdpdGggIlRlc3QiIG9yICJ0ZXN0Ii4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVGFyZ2V0IGdldFRhcmdldHMoU3RyaW5nIHRhcmdldE5hbWUpIHsKKyAgICAgICAgQ2xhc3MgY2xzID0gZ2V0Q2xhc3MoKTsKKyAgICAgICAgaWYgKHRhcmdldE5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBNZXRob2QgbWV0aG9kID0gY2xzLmdldE1ldGhvZCh0YXJnZXROYW1lLCBudWxsKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE1ldGhvZFRhcmdldCh0YXJnZXROYW1lLCBtZXRob2QpOworICAgICAgICAgICAgfSBjYXRjaCAoTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFRhcmdldCh0YXJnZXROYW1lKTsgLy8gaW52YWxpZCB0YXJnZXQKKyAgICAgICAgICAgIH0gY2F0Y2ggKFNlY3VyaXR5RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFRhcmdldCB0YXJnZXQgPSBudWxsOworICAgICAgICAgICAgaWYgKHBhcmFtcy5kb01ldGhvZHMoKSkgeworICAgICAgICAgICAgICAgIE1ldGhvZFtdIG1ldGhvZHMgPSBjbHMuZ2V0RGVjbGFyZWRNZXRob2RzKCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IG1ldGhvZHMubGVuZ3RoOyAtLWkgPj0gMDspIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBtZXRob2RzW2ldLmdldE5hbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aCgiVGVzdCIpIHx8IG5hbWUuc3RhcnRzV2l0aCgidGVzdCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQgPSBuZXcgTWV0aG9kVGFyZ2V0KG5hbWUsIG1ldGhvZHNbaV0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXROZXh0KHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgICAgICB9CisgICAgfQorCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXREZXNjcmlwdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gdmFsaWRhdGVNZXRob2QoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRNZXRob2REZXNjcmlwdGlvbihTdHJpbmcgbmFtZSkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvLyBtZXRob2QgdGVzdHMgaGF2ZSBubyBzdWJ0ZXN0cywgZ3JvdXAgdGVzdHMgb3ZlcnJpZGUKKyAgICBwcm90ZWN0ZWQgVGVzdEZtd2sgZ2V0U3VidGVzdChTdHJpbmcgcHJlZml4KSB0aHJvd3MgVGVzdEZtd2tFeGNlcHRpb24geworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc1ZlcmJvc2UoKSB7CisgICAgICAgIHJldHVybiBwYXJhbXMudmVyYm9zZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBub0RhdGEoKSB7CisgICAgICAgIHJldHVybiBwYXJhbXMubm9kYXRhOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzVGltaW5nKCkgeworICAgICAgICByZXR1cm4gcGFyYW1zLnRpbWluZyA8IExvbmcuTUFYX1ZBTFVFOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzTWVtVHJhY2tpbmcoKSB7CisgICAgICAgIHJldHVybiBwYXJhbXMubWVtdXNhZ2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogMCA9IGZld2VzdCB0ZXN0cywgNSBpcyBub3JtYWwgYnVpbGQsIDEwIGlzIG1vc3QgdGVzdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEluY2x1c2lvbigpIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtcy5pbmNsdXNpb247CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2R1bGFyQnVpbGQoKSB7CisgICAgICAgIHJldHVybiBwYXJhbXMud2FybmluZ3M7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNRdWljaygpIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtcy5pbmNsdXNpb24gPT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtc2coU3RyaW5nIG1lc3NhZ2UsIGludCBsZXZlbCwgYm9vbGVhbiBpbmNDb3VudCwgYm9vbGVhbiBuZXdsbikgeworICAgICAgICBwYXJhbXMubXNnKG1lc3NhZ2UsIGxldmVsLCBpbmNDb3VudCwgbmV3bG4pOworICAgIH0KKworICAgIHByb3RlY3RlZCBpbnQgZ2V0RXJyb3JDb3VudCgpIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtcy5lcnJvckNvdW50OworICAgIH0KKworICAgIHByb3RlY3RlZCBUaW1lWm9uZSBzYWZlR2V0VGltZVpvbmUoU3RyaW5nIGlkKSB7CisgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoaWQpOworICAgICAgICBpZiAodHogPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbgorICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRpbWVab25lLmdldFRpbWVab25lKCIgKyBpZCArICIpID0+IG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXR6LmdldElEKCkuZXF1YWxzKGlkKSkgeworICAgICAgICAgICAgd2FybmxuKCJGQUlMOiBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiICsgaWQgKyAiKSA9PiAiICsgdHouZ2V0SUQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHR6OworICAgIH0KKworICAgIC8qKgorICAgICAqIFByaW50IGEgdXNhZ2UgbWVzc2FnZSBmb3IgdGhpcyB0ZXN0IGNsYXNzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHVzYWdlKCkgeworICAgICAgICB1c2FnZShuZXcgUHJpbnRXcml0ZXIoU3lzdGVtLm91dCksIGdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHVzYWdlKFByaW50V3JpdGVyIHB3LCBTdHJpbmcgY2xhc3NOYW1lKSB7CisgICAgICAgIHB3LnByaW50bG4oIlVzYWdlOiAiICsgY2xhc3NOYW1lICsgIiBvcHRpb24qIHRhcmdldCoiKTsKKyAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICBwdy5wcmludGxuKCJPcHRpb25zOiIpOworICAgICAgICBwdy5wcmludGxuKCIgLWRlc2NyaWJlIFByaW50IGEgc2hvcnQgZGVzY3JpcHRpdmUgc3RyaW5nIGZvciB0aGlzIHRlc3QgYW5kIGFsbCIpOworICAgICAgICBwdy5wcmludGxuKCIgICAgICAgbGlzdGVkIHRhcmdldHMuIik7CisgICAgICAgIHB3LnByaW50bG4oIiAtZTxuPiBTZXQgZXhoYXVzdGl2ZW5lc3MgZnJvbSAwLi4xMC4gIERlZmF1bHQgaXMgMCwgZmV3ZXN0IHRlc3RzLlxuIgorICAgICAgICAgICAgICAgICArICIgICAgICAgVG8gcnVuIGFsbCB0ZXN0cywgc3BlY2lmeSAtZTEwLiAgR2l2aW5nIC1lIHdpdGggbm8gPG4+IGlzXG4iCisgICAgICAgICAgICAgICAgICsgIiAgICAgICB0aGUgc2FtZSBhcyAtZTUuIik7CisgICAgICAgIHB3LnByaW50bG4oIiAtZmlsdGVyOjxzdHI+IE9ubHkgdGVzdHMgbWF0Y2hpbmcgZmlsdGVyIHdpbGwgYmUgcnVuIG9yIGxpc3RlZC5cbiIKKyAgICAgICAgICAgICAgICAgKyAiICAgICAgIDxzdHI+IGlzIG9mIHRoZSBmb3JtIFsnXidddGV4dFsnLCdbJ14nXXRleHRdLlxuIgorICAgICAgICAgICAgICAgICArICIgICAgICAgRWFjaCBzdHJpbmcgZGVsaW1pdGVkIGJ5ICcsJyBpcyBhIHNlcGFyYXRlIGZpbHRlciBhcmd1bWVudC5cbiIKKyAgICAgICAgICAgICAgICAgKyAiICAgICAgIElmICdeJyBpcyBwcmVwZW5kZWQgdG8gYW4gYXJndW1lbnQsIGl0cyBtYXRjaGVzIGFyZSBleGNsdWRlZC5cbiIKKyAgICAgICAgICAgICAgICAgKyAiICAgICAgIEZpbHRlcmluZyBvcGVyYXRlcyBvbiB0ZXN0IGdyb3VwcyBhcyB3ZWxsIGFzIHRlc3RzLCBpZiBhIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgKyAiICAgICAgIGdyb3VwIGlzIGluY2x1ZGVkLCBhbGwgaXRzIHN1YnRlc3RzIHRoYXQgYXJlIG5vdCBleGNsdWRlZCB3aWxsXG4iCisgICAgICAgICAgICAgICAgICsgIiAgICAgICBiZSBydW4uICBFeGFtcGxlczpcbiIKKyAgICAgICAgICAgICAgICAgKyAiICAgIC1maWx0ZXI6QSAtLSBvbmx5IHRlc3RzIG1hdGNoaW5nIEEgYXJlIHJ1bi4gIElmIEEgbWF0Y2hlcyBhIGdyb3VwLFxuIgorICAgICAgICAgICAgICAgICArICIgICAgICAgYWxsIHN1YnRlc3RzIG9mIHRoaXMgZ3JvdXAgYXJlIHJ1bi5cbiIKKyAgICAgICAgICAgICAgICAgKyAiICAgIC1maWx0ZXI6XkEgLS0gYWxsIHRlc3RzIGV4Y2VwdCB0aG9zZSBtYXRjaGluZyBBIGFyZSBydW4uICBJZiBBIG1hdGNoZXNcbiIKKyAgICAgICAgICAgICAgICAgKyAiICAgICAgICBhIGdyb3VwLCBubyBzdWJ0ZXN0IG9mIHRoYXQgZ3JvdXAgd2lsbCBiZSBydW4uXG4iCisgICAgICAgICAgICAgICAgICsgIiAgICAtZmlsdGVyOkEsQixeQyxeRCAtLSB0ZXN0cyBtYXRjaGluZyBBIG9yIEIgYW5kIG5vdCBDIGFuZCBub3QgRCBhcmUgcnVuXG4iCisgICAgICAgICAgICAgICAgICsgIiAgICAgICBOb3RlOiBGaWx0ZXJzIGFyZSBjYXNlIGluc2Vuc2l0aXZlLiIpOworICAgICAgICBwdy5wcmludGxuKCIgLWhbZWxwXSBQcmludCB0aGlzIGhlbHAgdGV4dCBhbmQgZXhpdC4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC1sW2lzdF0gTGlzdCBpbW1lZGlhdGUgdGFyZ2V0cyBvZiB0aGlzIHRlc3QiKTsKKyAgICAgICAgcHcucHJpbnRsbigiICAgLWxhLCAtbGlzdEFsbCBMaXN0IGltbWVkaWF0ZSB0YXJnZXRzIG9mIHRoaXMgdGVzdCwgYW5kIGFsbCBzdWJ0ZXN0cyIpOworICAgICAgICBwdy5wcmludGxuKCIgICAtbGUsIC1saXN0RXhhdXN0aXZlIExpc3QgYWxsIHN1YnRlc3RzIGFuZCB0YXJnZXRzIik7CisgICAgICAgIC8vIGRvbid0IGtub3cgaG93IHRvIGdldCB1c2VmdWwgbnVtYmVycyBmb3IgbWVtb3J5IHVzYWdlIHVzaW5nIGphdmEgQVBJCisgICAgICAgIC8vIGNhbGxzCisgICAgICAgIC8vICAgICAgcHcucHJpbnRsbigiIC1tW2Vtb3J5XSBwcmludCBtZW1vcnkgdXNhZ2UgYW5kIGZvcmNlIGdjIGZvcgorICAgICAgICAvLyBlYWNoIHRlc3QiKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC1uW290aHJvd10gTWVzc2FnZSBvbiB0ZXN0IGZhaWx1cmUgcmF0aGVyIHRoYW4gZXhjZXB0aW9uIik7CisgICAgICAgIHB3LnByaW50bG4oIiAtcHJvbXB0IFByb21wdCBiZWZvcmUgZXhpdGluZyIpOworICAgICAgICBwdy5wcmludGxuKCIgLXFbdWlldF0gRG8gbm90IHNob3cgd2FybmluZ3MiKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC1yW2FuZG9tXVs6PG4+XSBJZiBwcmVzZW50LCByYW5kb21pemUgdGFyZ2V0cy4gIElmIG4gaXMgcHJlc2VudCxcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiAgICAgICB1c2UgaXQgYXMgdGhlIHNlZWQuICBJZiByYW5kb20gaXMgbm90IHNldCwgdGFyZ2V0cyB3aWxsXG4iCisgICAgICAgICAgICAgICAgICAgICAgICArICIgICAgICAgYmUgaW4gYWxwaGFiZXRpY2FsIG9yZGVyIHRvIGVuc3VyZSBjcm9zcy1wbGF0Zm9ybSBjb25zaXN0ZW5jeS4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC1zW2lsZW50XSBObyBvdXRwdXQgZXhjZXB0IGVycm9yIHN1bW1hcnkgb3IgZXhjZXB0aW9ucy4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC10ZmlsdGVyOjxzdHI+IFRyYW5zbGl0ZXJhdG9yIFRlc3QgZmlsdGVyIG9mIGlkcy4iKTsKKyAgICAgICAgcHcucHJpbnRsbigiIC10W2ltZV1bOjxuPl0gUHJpbnQgZWxhcHNlZCB0aW1lIGZvciBlYWNoIHRlc3QuICBpZiBuIGlzIHByZXNlbnRcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiAgICAgICBvbmx5IHByaW50IHRpbWVzID49IG4gbWlsbGlzZWNvbmRzLiIpOworICAgICAgICBwdy5wcmludGxuKCIgLXZbZXJib3NlXSBTaG93IGxvZyBtZXNzYWdlcyIpOworICAgICAgICBwdy5wcmludGxuKCIgLXdbYXJuaW5nXSBDb250aW51ZSBpbiBwcmVzZW5jZSBvZiB3YXJuaW5ncywgYW5kIGRpc2FibGUgbWlzc2luZyB0ZXN0IHdhcm5pbmdzLiIpOworICAgICAgICBwdy5wcmludGxuKCIgLW5vZGF0YSB8IC1uZCBEbyBub3Qgd2FybiBpZiByZXNvdXJjZSBkYXRhIGlzIG5vdCBwcmVzZW50LiIpOworICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgIHB3LnByaW50bG4oIiBJZiBhIGxpc3Qgb3IgZGVzY3JpYmUgb3B0aW9uIGlzIHByb3ZpZGVkLCBubyB0ZXN0cyBhcmUgcnVuLiIpOworICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgIHB3LnByaW50bG4oIlRhcmdldHM6Iik7CisgICAgICAgIHB3LnByaW50bG4oIiBJZiBubyB0YXJnZXQgaXMgc3BlY2lmaWVkLCBhbGwgdGFyZ2V0cyBmb3IgdGhpcyB0ZXN0IGFyZSBydW4uIik7CisgICAgICAgIHB3LnByaW50bG4oIiBJZiBhIHRhcmdldCBjb250YWlucyBubyAnLycgY2hhcmFjdGVycywgYW5kIG1hdGNoZXMgYSB0YXJnZXQiKTsKKyAgICAgICAgcHcucHJpbnRsbigiIG9mIHRoaXMgdGVzdCwgdGhlIHRhcmdldCBpcyBydW4uICBPdGhlcndpc2UsIHRoZSBwYXJ0IGJlZm9yZSB0aGUiKTsKKyAgICAgICAgcHcucHJpbnRsbigiICcvJyBpcyB1c2VkIHRvIG1hdGNoIGEgc3VidGVzdCwgd2hpY2ggdGhlbiBldmFsdWF0ZXMgdGhlIik7CisgICAgICAgIHB3LnByaW50bG4oIiByZW1haW5kZXIgb2YgdGhlIHRhcmdldCBhcyBhYm92ZS4gIFRhcmdldCBtYXRjaGluZyBpcyBjYXNlLWluc2Vuc2l0aXZlLiIpOworICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgIHB3LnByaW50bG4oIiBJZiBtdWx0aXBsZSB0YXJnZXRzIGFyZSBwcm92aWRlZCwgZWFjaCBpcyBleGVjdXRlZCBpbiBvcmRlci4iKTsKKyAgICAgICAgcHcuZmx1c2goKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoY2hhciBjaCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmcgZm9vID0gSW50ZWdlci50b1N0cmluZyhjaCwgMTYpLnRvVXBwZXJDYXNlKCk7CisgICAgICAgIGZvciAoaW50IGkgPSBmb28ubGVuZ3RoKCk7IGkgPCA0OyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJzAnKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0ICsgZm9vOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChpbnQgY2gpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nIGZvbyA9IEludGVnZXIudG9TdHJpbmcoY2gsIDE2KS50b1VwcGVyQ2FzZSgpOworICAgICAgICBmb3IgKGludCBpID0gZm9vLmxlbmd0aCgpOyBpIDwgNDsgKytpKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcwJyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdCArIGZvbzsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLCcpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChoZXgocy5jaGFyQXQoaSkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KFN0cmluZ0J1ZmZlciBzKSB7CisgICAgICAgIHJldHVybiBoZXgocy50b1N0cmluZygpKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcHJldHRpZnkoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IGNoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNoKSkgeworICAgICAgICAgICAgY2ggPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgICAgICBpZiAoY2ggPiAweGZmZmZmKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiXFxVMDAiKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGhleChjaCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA+IDB4ZmZmZikgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIlxcVTAwMCIpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaGV4KGNoKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID4gMHg3ZikgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIlxcdSIpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaGV4KGNoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpIGNoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcHJldHRpZnkoU3RyaW5nQnVmZmVyIHMpIHsKKyAgICAgICAgcmV0dXJuIHByZXR0aWZ5KHMudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyIGNhbDsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIERhdGUgZ2l2ZW4gYSB5ZWFyLCBtb250aCwgYW5kIGRheSBvZiBtb250aC4gVGhpcyBpcyBzaW1pbGFyIHRvCisgICAgICogbmV3IERhdGUoeS0xOTAwLCBtLCBkKS4gSXQgdXNlcyB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgYXQgdGhlIHRpbWUgdGhpcworICAgICAqIG1ldGhvZCBpcyBmaXJzdCBjYWxsZWQuCisgICAgICogCisgICAgICogQHBhcmFtIHllYXIKKyAgICAgKiAgICAgICAgICAgIHVzZSAyMDAwIGZvciAyMDAwLCB1bmxpa2UgbmV3IERhdGUoKQorICAgICAqIEBwYXJhbSBtb250aAorICAgICAqICAgICAgICAgICAgdXNlIENhbGVuZGFyLkpBTlVBUlkgZXRjLgorICAgICAqIEBwYXJhbSBkb20KKyAgICAgKiAgICAgICAgICAgIGRheSBvZiBtb250aCwgMS1iYXNlZAorICAgICAqIEByZXR1cm4gYSBEYXRlIG9iamVjdCBmb3IgdGhlIGdpdmVuIHkvbS9kCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBzeW5jaHJvbml6ZWQgamF2YS51dGlsLkRhdGUgZ2V0RGF0ZShpbnQgeWVhciwgaW50IG1vbnRoLAorICAgICAgICAgICAgaW50IGRvbSkgeworICAgICAgICBpZiAoY2FsID09IG51bGwpIHsKKyAgICAgICAgICAgIGNhbCA9IG5ldyBqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgfQorICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCh5ZWFyLCBtb250aCwgZG9tKTsKKyAgICAgICAgcmV0dXJuIGNhbC5nZXRUaW1lKCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBOdWxsV3JpdGVyIGV4dGVuZHMgUHJpbnRXcml0ZXIgeworICAgICAgICBwdWJsaWMgTnVsbFdyaXRlcigpIHsKKyAgICAgICAgICAgIHN1cGVyKFN5c3RlbS5vdXQsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShpbnQgYykgeworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKGNoYXJbXSBidWYsIGludCBvZmYsIGludCBsZW4pIHsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgcywgaW50IG9mZiwgaW50IGxlbikgeworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHByaW50bG4oKSB7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIEFTQ0lJV3JpdGVyIGV4dGVuZHMgUHJpbnRXcml0ZXIgeworICAgICAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy8gQ2hhcmFjdGVycyB0aGF0IHdlIHRoaW5rIGFyZSBwcmludGFibGUgYnV0IHRoYXQgZXNjYXBlVW5wcmludGFibGUKKyAgICAgICAgLy8gZG9lc24ndAorICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUFJJTlRBQkxFUyA9ICJcdFxuXHIiOworCisgICAgICAgIHB1YmxpYyBBU0NJSVdyaXRlcihXcml0ZXIgdywgYm9vbGVhbiBhdXRvRmx1c2gpIHsKKyAgICAgICAgICAgIHN1cGVyKHcsIGF1dG9GbHVzaCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQVNDSUlXcml0ZXIoT3V0cHV0U3RyZWFtIG9zLCBib29sZWFuIGF1dG9GbHVzaCkgeworICAgICAgICAgICAgc3VwZXIob3MsIGF1dG9GbHVzaCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShpbnQgYykgeworICAgICAgICAgICAgc3luY2hyb25pemVkIChsb2NrKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBpZiAoUFJJTlRBQkxFUy5pbmRleE9mKGMpIDwgMAorICAgICAgICAgICAgICAgICAgICAgICAgJiYgVGVzdFV0aWwuZXNjYXBlVW5wcmludGFibGUoYnVmZmVyLCBjKSkgeworICAgICAgICAgICAgICAgICAgICBzdXBlci53cml0ZShidWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc3VwZXIud3JpdGUoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoY2hhcltdIGJ1ZiwgaW50IG9mZiwgaW50IGxlbikgeworICAgICAgICAgICAgc3luY2hyb25pemVkIChsb2NrKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSBvZmYgKyBsZW47CisgICAgICAgICAgICAgICAgd2hpbGUgKG9mZiA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTZVdGlsLmNoYXJBdChidWYsIDAsIGJ1Zi5sZW5ndGgsIG9mZik7CisgICAgICAgICAgICAgICAgICAgIG9mZiArPSBVVEYxNlV0aWwuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgICAgICBpZiAoUFJJTlRBQkxFUy5pbmRleE9mKGMpIDwgMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIFRlc3RVdGlsLmVzY2FwZVVucHJpbnRhYmxlKGJ1ZmZlciwgYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyLndyaXRlKGJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdXBlci53cml0ZShjKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKFN0cmluZyBzLCBpbnQgb2ZmLCBpbnQgbGVuKSB7CisgICAgICAgICAgICB3cml0ZShzLnN1YnN0cmluZyhvZmYsIG9mZiArIGxlbikudG9DaGFyQXJyYXkoKSwgMCwgbGVuKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGZpbHRlcnMKKyAgICAvLyBtYXRjaCBhZ2FpbnN0IHRoZSBlbnRpcmUgaGllcmFyY2h5CisgICAgLy8gQTtCOyFDOyFEIC0tPiAoQSB8fEIpICYmICghQyAmJiAhRCkKKyAgICAvLyBwb3NpdGl2ZSwgbmVnYXRpdmUsIHVua25vd24gbWF0Y2hlcworICAgIC8vIHBvc2l0aXZlIC0tIGtub3duIHRvIGJlIGluY2x1ZGVkLCBuZWdhdGl2ZS0ga25vd24gdG8gYmUgZXhjbHVkZWQKKyAgICAvLyBwb3NpdGl2ZSBvbmx5IGlmIG5vIGV4Y2x1ZGVzLCBhbmQgbWF0Y2hlcyBhdCBsZWFzdCBvbmUgaW5jbHVkZSwgaWYgYW55CisgICAgLy8gbmVnYXRpdmUgb25seSBpZiBtYXRjaGVzIGF0IGxlYXN0IG9uZSBleGNsdWRlCisgICAgLy8gb3RoZXJ3aXNlLCB3ZSB3YWl0CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFRlc3RQYXJhbXMgeworICAgICAgICBwdWJsaWMgYm9vbGVhbiBwcm9tcHQ7CisgICAgICAgIHB1YmxpYyBib29sZWFuIG5vdGhyb3c7CisgICAgICAgIHB1YmxpYyBib29sZWFuIHZlcmJvc2U7CisgICAgICAgIHB1YmxpYyBib29sZWFuIHF1aWV0OworICAgICAgICBwdWJsaWMgaW50IGxpc3RsZXZlbDsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gZGVzY3JpYmU7CisgICAgICAgIHB1YmxpYyBib29sZWFuIHdhcm5pbmdzOworICAgICAgICBwdWJsaWMgYm9vbGVhbiBub2RhdGE7CisgICAgICAgIHB1YmxpYyBsb25nIHRpbWluZyA9IExvbmcuTUFYX1ZBTFVFOworICAgICAgICBwdWJsaWMgYm9vbGVhbiBtZW11c2FnZTsKKyAgICAgICAgcHVibGljIGludCBpbmNsdXNpb247CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZmlsdGVyOworICAgICAgICBwdWJsaWMgbG9uZyBzZWVkOworICAgICAgICBwdWJsaWMgU3RyaW5nIHRmaWx0ZXI7IC8vIGZvciB0cmFuc2xpdGVyYXRvciB0ZXN0cworCisgICAgICAgIHB1YmxpYyBTdGF0ZSBzdGFjazsKKworICAgICAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGVycm9yU3VtbWFyeTsKKworICAgICAgICBwdWJsaWMgUHJpbnRXcml0ZXIgbG9nOworICAgICAgICBwdWJsaWMgaW50IGluZGVudExldmVsOworICAgICAgICBwcml2YXRlIGJvb2xlYW4gbmVlZExpbmVGZWVkOworICAgICAgICBwcml2YXRlIGJvb2xlYW4gc3VwcHJlc3NJbmRlbnQ7CisgICAgICAgIHB1YmxpYyBpbnQgZXJyb3JDb3VudDsKKyAgICAgICAgcHVibGljIGludCB3YXJuQ291bnQ7CisgICAgICAgIHB1YmxpYyBpbnQgaW52YWxpZENvdW50OworICAgICAgICBwdWJsaWMgaW50IHRlc3RDb3VudDsKKyAgICAgICAgcHJpdmF0ZSBOdW1iZXJGb3JtYXQgdGZvcm1hdDsKKyAgICAgICAgcHVibGljIFJhbmRvbSByYW5kb207CisKKyAgICAgICAgcHJpdmF0ZSBUZXN0UGFyYW1zKCkgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIFRlc3RQYXJhbXMgY3JlYXRlKFN0cmluZyBhcmdsaXN0LCBQcmludFdyaXRlciBsb2cpIHsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgICAgICByZXR1cm4gY3JlYXRlKGFyZ2xpc3Quc3BsaXQoIlxccyIpLCBsb2cpOworLy8jZWxzZQorLy8jIyAgICAgICAgcmV0dXJuIGNyZWF0ZShVdGlsaXR5LnNwbGl0KGFyZ2xpc3QsICdcdTAwMjAnKSwgbG9nKTsKKy8vI2VuZGlmCisKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENyZWF0ZSBhIFRlc3RQYXJhbXMgZnJvbSBhIGxpc3Qgb2YgYXJndW1lbnRzLiAgSWYgc3VjY2Vzc2Z1bCwgcmV0dXJuIHRoZSBwYXJhbXMgb2JqZWN0LAorICAgICAgICAgKiBlbHNlIHJldHVybiBudWxsLiAgRXJyb3IgbWVzc2FnZXMgd2lsbCBiZSByZXBvcnRlZCBvbiBlcnJsb2cgaWYgaXQgaXMgbm90IG51bGwuCisgICAgICAgICAqIEFyZ3VtZW50cyBhbmQgdmFsdWVzIHVuZGVyc3Rvb2QgYnkgdGhpcyBtZXRob2Qgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIGFyZ3MgYXJyYXkKKyAgICAgICAgICogYW5kIGV4aXN0aW5nIGFyZ3Mgd2lsbCBiZSBzaGlmdGVkIGRvd24sIHRvIGJlIGZpbGxlZCBieSBudWxscyBhdCB0aGUgZW5kLgorICAgICAgICAgKiBAcGFyYW0gYXJncyB0aGUgbGlzdCBvZiBhcmd1bWVudHMKKyAgICAgICAgICogQHBhcmFtIGVycmxvZyB0aGUgZXJyb3IgbG9nLCBvciBudWxsIGlmIG5vIGVycm9yIGxvZyBpcyBkZXNpcmVkCisgICAgICAgICAqIEByZXR1cm4gdGhlIG5ldyBUZXN0UGFyYW1zIG9iamVjdCwgb3IgbnVsbCBpZiBlcnJvcgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBUZXN0UGFyYW1zIGNyZWF0ZShTdHJpbmdbXSBhcmdzLCBQcmludFdyaXRlciBsb2cpIHsKKyAgICAgICAgICAgIFRlc3RQYXJhbXMgcGFyYW1zID0gbmV3IFRlc3RQYXJhbXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYobG9nID09IG51bGwpeworICAgICAgICAgICAgICAgIHBhcmFtcy5sb2cgPSBuZXcgTnVsbFdyaXRlcigpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgcGFyYW1zLmxvZyA9ICBuZXcgQVNDSUlXcml0ZXIobG9nLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm9vbGVhbiB1c2FnZUVycm9yID0gZmFsc2U7CisgICAgICAgICAgICBTdHJpbmcgZmlsdGVyID0gbnVsbDsKKyAgICAgICAgICAgIGludCB3eCA9IDA7IC8vIHdyaXRlIGFyZ2V0cy4KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIFN0cmluZyBhcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgICAgIGlmIChhcmcgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGFyZy5jaGFyQXQoMCkgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZy50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAoYXJnLmVxdWFscygiLXZlcmJvc2UiKSB8fCBhcmcuZXF1YWxzKCItdiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMudmVyYm9zZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMucXVpZXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItcXVpZXQiKSB8fCBhcmcuZXF1YWxzKCItcSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMucXVpZXQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnZlcmJvc2UgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItaGVscCIpIHx8IGFyZy5lcXVhbHMoIi1oIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVzYWdlRXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi13YXJuaW5nIikgfHwgYXJnLmVxdWFscygiLXciKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLndhcm5pbmdzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItbm9kYXRhIikgfHwgYXJnLmVxdWFscygiLW5kIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5ub2RhdGEgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1saXN0IikgfHwgYXJnLmVxdWFscygiLWwiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmxpc3RsZXZlbCA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWxpc3RhbGwiKSB8fCBhcmcuZXF1YWxzKCItbGEiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmxpc3RsZXZlbCA9IDI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWxpc3RleGF1c3RpdmUiKSB8fCBhcmcuZXF1YWxzKCItbGUiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmxpc3RsZXZlbCA9IDM7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLW1lbW9yeSIpIHx8IGFyZy5lcXVhbHMoIi1tIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5tZW11c2FnZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLW5vdGhyb3ciKSB8fCBhcmcuZXF1YWxzKCItbiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMubm90aHJvdyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuZXJyb3JTdW1tYXJ5ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1kZXNjcmliZSIpIHx8IGFyZy5lcXVhbHMoIi1kIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5kZXNjcmliZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1yIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBuID0gYXJnLmluZGV4T2YoJzonKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcyA9IGFyZy5zdWJzdHJpbmcobiArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZy5zdWJzdHJpbmcoMCwgbik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmcuZXF1YWxzKCItciIpIHx8IGFyZy5lcXVhbHMoIi1yYW5kb20iKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnNlZWQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuc2VlZCA9IExvbmcucGFyc2VMb25nKHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oIioqKiBFcnJvcjogdW5yZWNvZ25pemVkIGFyZ3VtZW50OiAiICsgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2FnZUVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLWUiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2VlIGFib3ZlCisgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuaW5jbHVzaW9uID0gKGFyZy5sZW5ndGgoKSA9PSAyKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBJbnRlZ2VyLnBhcnNlSW50KGFyZy5zdWJzdHJpbmcoMikpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtcy5pbmNsdXNpb24gPCAwIHx8IHBhcmFtcy5pbmNsdXNpb24gPiAxMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzYWdlRXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItdGZpbHRlcjoiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnRmaWx0ZXIgPSBhcmcuc3Vic3RyaW5nKDgpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItdGltZSIpIHx8IGFyZy5zdGFydHNXaXRoKCItdCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHZhbCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW54ID0gYXJnLmluZGV4T2YoJzonKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnggPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG51bSA9IGFyZy5zdWJzdHJpbmcoaW54ICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsID0gTG9uZy5wYXJzZUxvbmcobnVtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigiKioqIEVycm9yOiBjb3VsZCBub3QgcGFyc2UgdGltZSB0aHJlc2hvbGQgJyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbnVtICsgIiciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNhZ2VFcnJvciA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy50aW1pbmcgPSB2YWw7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZm10ID0gIiMsMDBzIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWwgPD0gMTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbXQgPSAiIywjIzAuMDAwcyI7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbCA8PSAxMDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbXQgPSAiIywjIzAuMDBzIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsIDw9IDEwMDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbXQgPSAiIywjIzAuMHMiOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnRmb3JtYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChmbXQpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItZmlsdGVyOiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IGFyZy5zdWJzdHJpbmcoOCkudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9IGZpbHRlciA9PSBudWxsID8gdGVtcCA6IGZpbHRlciArICIsIiArIHRlbXA7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1mOiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IGFyZy5zdWJzdHJpbmcoMykudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9IGZpbHRlciA9PSBudWxsID8gdGVtcCA6IGZpbHRlciArICIsIiArIHRlbXA7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1zIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5sb2cgPSBuZXcgTnVsbFdyaXRlcigpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oIioqKiBFcnJvcjogdW5yZWNvZ25pemVkIGFyZ3VtZW50OiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgYXJnc1tpXSk7CisgICAgICAgICAgICAgICAgICAgICAgICB1c2FnZUVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYXJnc1t3eCsrXSA9IGFyZzsgLy8gc2hpZnQgZG93bgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgd2hpbGUgKHd4IDwgYXJncy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBhcmdzW3d4KytdID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHVzYWdlRXJyb3IpIHsKKyAgICAgICAgICAgICAgICB1c2FnZShsb2csICJUZXN0QWxsIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChmaWx0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHBhcmFtcy5maWx0ZXIgPSBmaWx0ZXIudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcGFyYW1zLmluaXQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHBhcmFtczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBlcnJvclN1bW1hcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gZXJyb3JTdW1tYXJ5ID09IG51bGwgPyAiIiA6IGVycm9yU3VtbWFyeS50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCBpbml0KCkgeworICAgICAgICAgICAgaW5kZW50TGV2ZWwgPSAwOworICAgICAgICAgICAgbmVlZExpbmVGZWVkID0gZmFsc2U7CisgICAgICAgICAgICBzdXBwcmVzc0luZGVudCA9IGZhbHNlOworICAgICAgICAgICAgZXJyb3JDb3VudCA9IDA7CisgICAgICAgICAgICB3YXJuQ291bnQgPSAwOworICAgICAgICAgICAgaW52YWxpZENvdW50ID0gMDsKKyAgICAgICAgICAgIHRlc3RDb3VudCA9IDA7CisgICAgICAgICAgICByYW5kb20gPSBzZWVkID09IDAgPyBudWxsIDogbmV3IFJhbmRvbShzZWVkKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjbGFzcyBTdGF0ZSB7CisgICAgICAgICAgICBTdGF0ZSBsaW5rOworICAgICAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyOworICAgICAgICAgICAgaW50IGxldmVsOworICAgICAgICAgICAgaW50IGVjOworICAgICAgICAgICAgaW50IHdjOworICAgICAgICAgICAgaW50IGljOworICAgICAgICAgICAgaW50IHRjOworICAgICAgICAgICAgYm9vbGVhbiBmbHVzaGVkOworICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gaW5jbHVkZWQ7CisgICAgICAgICAgICBsb25nIG1lbTsKKyAgICAgICAgICAgIGxvbmcgbWlsbGlzOworCisgICAgICAgICAgICBwdWJsaWMgU3RhdGUoU3RhdGUgbGluaywgU3RyaW5nIG5hbWUsIGJvb2xlYW4gaW5jbHVkZWQpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmxpbmsgPSBsaW5rOworICAgICAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgICAgICAgICAgaWYgKGxpbmsgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLmxldmVsID0gMDsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmNsdWRlZCA9IGluY2x1ZGVkOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMubGV2ZWwgPSBsaW5rLmxldmVsICsgMTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmNsdWRlZCA9IGluY2x1ZGVkIHx8IGxpbmsuaW5jbHVkZWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRoaXMuZWMgPSBlcnJvckNvdW50OworICAgICAgICAgICAgICAgIHRoaXMud2MgPSB3YXJuQ291bnQ7CisgICAgICAgICAgICAgICAgdGhpcy5pYyA9IGludmFsaWRDb3VudDsKKyAgICAgICAgICAgICAgICB0aGlzLnRjID0gdGVzdENvdW50OworCisgICAgICAgICAgICAgICAgaWYgKGxpbmsgPT0gbnVsbCB8fCB0aGlzLmluY2x1ZGVkKSB7CisgICAgICAgICAgICAgICAgICAgIGZsdXNoKCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbWVtID0gZ2V0bWVtKCk7CisgICAgICAgICAgICAgICAgbWlsbGlzID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZvaWQgZmx1c2goKSB7CisgICAgICAgICAgICAgICAgaWYgKCFmbHVzaGVkKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChsaW5rICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsuZmx1c2goKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGluZGVudChsZXZlbCk7CisgICAgICAgICAgICAgICAgICAgIGxvZy5wcmludChuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nLmZsdXNoKCk7CisKKyAgICAgICAgICAgICAgICAgICAgZmx1c2hlZCA9IHRydWU7CisKKyAgICAgICAgICAgICAgICAgICAgbmVlZExpbmVGZWVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZvaWQgYXBwZW5kUGF0aChTdHJpbmdCdWZmZXIgYnVmKSB7CisgICAgICAgICAgICAgICAgaWYgKHRoaXMubGluayAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMubGluay5hcHBlbmRQYXRoKGJ1Zik7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJy8nKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHB1c2goU3RyaW5nIG5hbWUsIFN0cmluZyBkZXNjcmlwdGlvbiwgYm9vbGVhbiBpbmNsdWRlZCkgeworICAgICAgICAgICAgaWYgKGluRG9jTW9kZSgpICYmIGRlc2NyaWJlICYmIGRlc2NyaXB0aW9uICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBuYW1lICs9ICI6ICIgKyBkZXNjcmlwdGlvbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YWNrID0gbmV3IFN0YXRlKHN0YWNrLCBuYW1lLCBpbmNsdWRlZCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBwb3AoKSB7CisgICAgICAgICAgICBpZiAoc3RhY2sgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHdyaXRlVGVzdFJlc3VsdCgpOworICAgICAgICAgICAgICAgIHN0YWNrID0gc3RhY2subGluazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGluRG9jTW9kZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBkZXNjcmliZSB8fCBsaXN0bGV2ZWwgIT0gMDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGRvTWV0aG9kcygpIHsKKyAgICAgICAgICAgIHJldHVybiAhaW5Eb2NNb2RlKCkgfHwgbGlzdGxldmVsID09IDMKKyAgICAgICAgICAgICAgICAgICAgfHwgKGluZGVudExldmVsID09IDEgJiYgbGlzdGxldmVsID4gMCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBkb1JlY3Vyc2UoKSB7CisgICAgICAgICAgICByZXR1cm4gIWluRG9jTW9kZSgpIHx8IGxpc3RsZXZlbCA+IDEKKyAgICAgICAgICAgICAgICAgICAgfHwgKGluZGVudExldmVsID09IDEgJiYgbGlzdGxldmVsID4gMCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBkb1JlY3Vyc2VHcm91cHNPbmx5KCkgeworICAgICAgICAgICAgcmV0dXJuIGluRG9jTW9kZSgpCisgICAgICAgICAgICAgICAgICAgICYmIChsaXN0bGV2ZWwgPT0gMiB8fCAoaW5kZW50TGV2ZWwgPT0gMSAmJiBsaXN0bGV2ZWwgPiAwKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyByZXR1cm4gMCwgLTEsIG9yIDEKKyAgICAgICAgLy8gMTogcnVuIHRoaXMgdGVzdAorICAgICAgICAvLyAwOiBtaWdodCBydW4gdGhpcyB0ZXN0LCBubyBwb3NpdGl2ZSBpbmNsdWRlIG9yIGV4Y2x1ZGUgb24gdGhpcyBncm91cAorICAgICAgICAvLyAtMTogZXhjbHVkZSB0aGlzIHRlc3QKKyAgICAgICAgcHVibGljIGludCBmaWx0ZXIoU3RyaW5nIHRlc3ROYW1lKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgIGlmIChmaWx0ZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IDE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJvb2xlYW4gbm9JbmNsdWRlcyA9IHRydWU7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBub0V4Y2x1ZGVzID0gZmlsdGVyLmluZGV4T2YoJ14nKSA9PSAtMTsKKyAgICAgICAgICAgICAgICB0ZXN0TmFtZSA9IHRlc3ROYW1lLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICAgICAgaW50IGl4ID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXggPCBmaWx0ZXIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IG5peCA9IGZpbHRlci5pbmRleE9mKCcsJywgaXgpOworICAgICAgICAgICAgICAgICAgICBpZiAobml4ID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuaXggPSBmaWx0ZXIubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlci5jaGFyQXQoaXgpID09ICdeJykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3ROYW1lLmluZGV4T2YoZmlsdGVyLnN1YnN0cmluZyhpeCArIDEsIG5peCkpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBub0luY2x1ZGVzID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVzdE5hbWUuaW5kZXhPZihmaWx0ZXIuc3Vic3RyaW5nKGl4LCBuaXgpKSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vRXhjbHVkZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaXggPSBuaXggKyAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDAgJiYgbm9JbmNsdWRlcykgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImZpbHRlcjogIiArIHRlc3ROYW1lICsgIiByZXR1cm5zOiAiICsKKyAgICAgICAgICAgIC8vIHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIExvZyBhY2Nlc3MuCisgICAgICAgICAqIEBwYXJhbSBtZXNzYWdlCisgICAgICAgICAqIEBwYXJhbSBsZXZlbAorICAgICAgICAgKiBAcGFyYW0gaW5jQ291bnQKKyAgICAgICAgICogQHBhcmFtIG5ld2xuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgbXNnKSB7CisgICAgICAgICAgICB3cml0ZShtc2csIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGVsbihTdHJpbmcgbXNnKSB7CisgICAgICAgICAgICB3cml0ZShtc2csIHRydWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHZvaWQgd3JpdGUoU3RyaW5nIG1zZywgYm9vbGVhbiBuZXdsbikgeworICAgICAgICAgICAgaWYgKCFzdXBwcmVzc0luZGVudCkgeworICAgICAgICAgICAgICAgIGlmIChuZWVkTGluZUZlZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICAgICAgbmVlZExpbmVGZWVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvZy5wcmludChzcGFjZXMuc3Vic3RyaW5nKDAsIGluZGVudExldmVsICogMikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nLnByaW50KG1zZyk7CisgICAgICAgICAgICBpZiAobmV3bG4pIHsKKyAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigpOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZy5mbHVzaCgpOworICAgICAgICAgICAgc3VwcHJlc3NJbmRlbnQgPSAhbmV3bG47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgdm9pZCBtc2coU3RyaW5nIG1lc3NhZ2UsIGludCBsZXZlbCwgYm9vbGVhbiBpbmNDb3VudCwKKyAgICAgICAgICAgICAgICBib29sZWFuIG5ld2xuKSB7CisgICAgICAgICAgICBpZiAobGV2ZWwgPT0gV0FSTiAmJiAoIXdhcm5pbmdzICYmICFub2RhdGEpKXsKKyAgICAgICAgICAgICAgICBsZXZlbCA9IEVSUjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGluY0NvdW50KSB7CisgICAgICAgICAgICAgICAgaWYgKGxldmVsID09IFdBUk4pIHsKKyAgICAgICAgICAgICAgICAgICAgd2FybkNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgIGludmFsaWRDb3VudCsrOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGV2ZWwgPT0gRVJSKSB7CisgICAgICAgICAgICAgICAgICAgIGVycm9yQ291bnQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHNob3VsZCByb2xsIGluZGVudGF0aW9uIHN0dWZmIGludG8gbG9nID8/PworICAgICAgICAgICAgaWYgKHZlcmJvc2UgfHwgbGV2ZWwgPiAocXVpZXQgPyBXQVJOIDogTE9HKSkgeworICAgICAgICAgICAgICAgIGlmICghc3VwcHJlc3NJbmRlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZW50KGluZGVudExldmVsICsgMSk7CisgICAgICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZ1tdIE1TR05BTUVTID0geyIiLCAiV2FybmluZzogIiwgIkVycm9yOiAifTsKKyAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50KE1TR05BTUVTW2xldmVsXSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbG9nLnByaW50KG1lc3NhZ2UpOworICAgICAgICAgICAgICAgIGlmIChuZXdsbikgeworICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2cuZmx1c2goKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGxldmVsID09IEVSUikgeworICAgICAgICAgICAgICAgIGlmICghbm90aHJvdykgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihtZXNzYWdlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFzdXBwcmVzc0luZGVudCAmJiBlcnJvclN1bW1hcnkgIT0gbnVsbCAmJiBzdGFjayAhPW51bGwgCisgICAgICAgICAgICAgICAgICAgICAgICAmJiAoZXJyb3JDb3VudCA9PSBzdGFjay5lYyArIDEpKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrLmFwcGVuZFBhdGgoZXJyb3JTdW1tYXJ5KTsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JTdW1tYXJ5LmFwcGVuZCgiXG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN1cHByZXNzSW5kZW50ID0gIW5ld2xuOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHdyaXRlVGVzdEludmFsaWQoU3RyaW5nIG5hbWUsIGJvb2xlYW4gbm9kYXRhKSB7CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgbXNnKCIqKioiICsgbmFtZSArICIqKiogbm90IGZvdW5kIG9yIG5vdCB2YWxpZC4iLCBXQVJOLCB0cnVlLAorICAgICAgICAgICAgLy8gdHJ1ZSk7CisgICAgICAgICAgICBpZiAoaW5Eb2NNb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXdhcm5pbmdzKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjayAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFjay5mbHVzaCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGxvZy5wcmludGxuKCIgKioqIFRhcmdldCBub3QgZm91bmQgb3Igbm90IHZhbGlkLiIpOworICAgICAgICAgICAgICAgICAgICBsb2cuZmx1c2goKTsKKyAgICAgICAgICAgICAgICAgICAgbmVlZExpbmVGZWVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZighbm9kYXRhKXsKKyAgICAgICAgICAgICAgICAgICAgbXNnKCJUZXN0ICIgKyBuYW1lICsgIiBub3QgZm91bmQgb3Igbm90IHZhbGlkLiIsIFdBUk4sIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb25nIGdldG1lbSgpIHsKKyAgICAgICAgICAgIGxvbmcgbmV3bWVtID0gMDsKKyAgICAgICAgICAgIGlmIChtZW11c2FnZSkgeworICAgICAgICAgICAgICAgIFJ1bnRpbWUgcnQgPSBSdW50aW1lLmdldFJ1bnRpbWUoKTsKKyAgICAgICAgICAgICAgICBsb25nIGxhc3RtZW0gPSBMb25nLk1BWF9WQUxVRTsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIHJ0LmdjKCk7CisgICAgICAgICAgICAgICAgICAgIHJ0LmdjKCk7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoNTApOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbGFzdG1lbSA9IG5ld21lbTsKKyAgICAgICAgICAgICAgICAgICAgbmV3bWVtID0gcnQudG90YWxNZW1vcnkoKSAtIHJ0LmZyZWVNZW1vcnkoKTsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChuZXdtZW0gPCBsYXN0bWVtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuZXdtZW07CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgd3JpdGVUZXN0UmVzdWx0KCkgeworICAgICAgICAgICAgaWYgKGluRG9jTW9kZSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKG5lZWRMaW5lRmVlZCkgeworICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigpOworICAgICAgICAgICAgICAgICAgICBsb2cuZmx1c2goKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmVlZExpbmVGZWVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsb25nIGRtZW0gPSBnZXRtZW0oKSAtIHN0YWNrLm1lbTsKKyAgICAgICAgICAgIGxvbmcgZHRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YWNrLm1pbGxpczsKKworICAgICAgICAgICAgaW50IHRlc3REZWx0YSA9IHRlc3RDb3VudCAtIHN0YWNrLnRjOworICAgICAgICAgICAgaWYgKHRlc3REZWx0YSA9PSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgZXJyb3JEZWx0YSA9IGVycm9yQ291bnQgLSBzdGFjay5lYzsKKyAgICAgICAgICAgIGludCBpbnZhbGlkRGVsdGEgPSBpbnZhbGlkQ291bnQgLSBzdGFjay5pYzsKKworICAgICAgICAgICAgc3RhY2suZmx1c2goKTsKKworICAgICAgICAgICAgaWYgKCFuZWVkTGluZUZlZWQpIHsKKyAgICAgICAgICAgICAgICBpbmRlbnQoaW5kZW50TGV2ZWwpOworICAgICAgICAgICAgICAgIGxvZy5wcmludCgifSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbmVlZExpbmVGZWVkID0gZmFsc2U7CisKKyAgICAgICAgICAgIGlmIChtZW11c2FnZSB8fCBkdGltZSA+PSB0aW1pbmcpIHsKKyAgICAgICAgICAgICAgICBsb2cucHJpbnQoIiAoIik7CisgICAgICAgICAgICAgICAgaWYgKG1lbXVzYWdlKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZy5wcmludCgiZG1lbTogIiArIGRtZW0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZHRpbWUgPj0gdGltaW5nKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtZW11c2FnZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50KCIsICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGxvZy5wcmludCh0Zm9ybWF0LmZvcm1hdChkdGltZSAvIDEwMDBmKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvZy5wcmludCgiKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGVycm9yRGVsdGEgIT0gMCkgeworICAgICAgICAgICAgICAgIGxvZy5wcmludGxuKCIgRkFJTEVEICgiCisgICAgICAgICAgICAgICAgICAgICAgICArIGVycm9yRGVsdGEKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBmYWlsdXJlcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgKChpbnZhbGlkRGVsdGEgIT0gMCkgPyAiLCAiICsgaW52YWxpZERlbHRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiB0ZXN0cyBza2lwcGVkKSIgOiAiKSIpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaW52YWxpZERlbHRhICE9IDApIHsKKyAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigiIFF1YWxpZmllZCAoIiArIGludmFsaWREZWx0YSArICIgdGVzdHMgc2tpcHBlZCkiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oIiBQYXNzZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgZmluYWwgdm9pZCBpbmRlbnQoaW50IGRpc3RhbmNlKSB7CisgICAgICAgICAgICBib29sZWFuIGlkbSA9IGluRG9jTW9kZSgpOworICAgICAgICAgICAgaWYgKG5lZWRMaW5lRmVlZCkgeworICAgICAgICAgICAgICAgIGlmIChpZG0pIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2cucHJpbnRsbigiIHsiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmVlZExpbmVGZWVkID0gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvZy5wcmludChzcGFjZXMuc3Vic3RyaW5nKDAsIGRpc3RhbmNlICogKGlkbSA/IDMgOiAyKSkpOworCisgICAgICAgICAgICBpZiAoaWRtKSB7CisgICAgICAgICAgICAgICAgbG9nLnByaW50KCItLSAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VHJhbnNsaXRUZXN0RmlsdGVyKCkgeworICAgICAgICByZXR1cm4gcGFyYW1zLnRmaWx0ZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0YXJnZXQgbmFtZSBmb3IgYSB0ZXN0IGNsYXNzLiBUaGlzIGlzIGVpdGhlciB0aGUgZW5kIG9mIHRoZQorICAgICAqIGNsYXNzIG5hbWUsIG9yIGlmIHRoZSBjbGFzcyBkZWNsYXJlcyBhIHB1YmxpYyBzdGF0aWMgZmllbGQKKyAgICAgKiBDTEFTU19UQVJHRVRfTkFNRSwgdGhlIHZhbHVlIG9mIHRoYXQgZmllbGQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldENsYXNzVGFyZ2V0TmFtZShDbGFzcyB0ZXN0Q2xhc3MpIHsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSB0ZXN0Q2xhc3MuZ2V0TmFtZSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgRmllbGQgZiA9IHRlc3RDbGFzcy5nZXRGaWVsZCgiQ0xBU1NfVEFSR0VUX05BTUUiKTsKKyAgICAgICAgICAgIG5hbWUgPSAoU3RyaW5nKSBmLmdldChudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAic3RhdGljIGZpZWxkIENMQVNTX1RBUkdFVF9OQU1FIG11c3QgYmUgYWNjZXNzaWJsZSIpOworICAgICAgICB9IGNhdGNoIChOb1N1Y2hGaWVsZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpbnQgbiA9IE1hdGgubWF4KG5hbWUubGFzdEluZGV4T2YoJy4nKSwgbmFtZS5sYXN0SW5kZXhPZignJCcpKTsKKyAgICAgICAgICAgIGlmIChuICE9IC0xKSB7CisgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuc3Vic3RyaW5nKG4gKyAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayB0aGUgZ2l2ZW4gYXJyYXkgdG8gc2VlIHRoYXQgYWxsIHRoZSBzdHJpbmdzIGluIHRoZSBleHBlY3RlZCBhcnJheQorICAgICAqIGFyZSBwcmVzZW50LgorICAgICAqIAorICAgICAqIEBwYXJhbSBtc2cKKyAgICAgKiAgICAgICAgICAgIHN0cmluZyBtZXNzYWdlLCBmb3IgbG9nIG91dHB1dAorICAgICAqIEBwYXJhbSBhcnJheQorICAgICAqICAgICAgICAgICAgYXJyYXkgb2Ygc3RyaW5ncyB0byBjaGVjaworICAgICAqIEBwYXJhbSBleHBlY3RlZAorICAgICAqICAgICAgICAgICAgYXJyYXkgb2Ygc3RyaW5ncyB3ZSBleHBlY3QgdG8gc2VlLCBvciBudWxsCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mICdhcnJheScsIG9yIC0xIG9uIGVycm9yCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBjaGVja0FycmF5KFN0cmluZyBtc2csIFN0cmluZyBhcnJheVtdLCBTdHJpbmcgZXhwZWN0ZWRbXSkgeworICAgICAgICBpbnQgZXhwbGVuID0gKGV4cGVjdGVkICE9IG51bGwpID8gZXhwZWN0ZWQubGVuZ3RoIDogMDsKKyAgICAgICAgaWYgKCEoZXhwbGVuID49IDAgJiYgZXhwbGVuIDwgMzEpKSB7IC8vIFtzaWNdIDMxIG5vdCAzMgorICAgICAgICAgICAgZXJybG4oIkludGVybmFsIGVycm9yIik7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgc2Vlbk1hc2sgPSAwOworICAgICAgICBmb3IgKDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGFycmF5W2ldOworICAgICAgICAgICAgaWYgKGkgIT0gMCkKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgYnVmLmFwcGVuZChzKTsKKyAgICAgICAgICAgIC8vIGNoZWNrIGV4cGVjdGVkIGxpc3QKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwLCBiaXQgPSAxOyBqIDwgZXhwbGVuOyArK2osIGJpdCA8PD0gMSkgeworICAgICAgICAgICAgICAgIGlmICgoc2Vlbk1hc2sgJiBiaXQpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHMuZXF1YWxzKGV4cGVjdGVkW2pdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2Vlbk1hc2sgfD0gYml0OworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiBcIiIgKyBzICsgIlwiIHNlZW4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbihtc2cgKyAiID0gWyIgKyBidWYgKyAiXSAoIiArIGkgKyAiKSIpOworICAgICAgICAvLyBkaWQgd2Ugc2VlIGFsbCBleHBlY3RlZCBzdHJpbmdzPworICAgICAgICBpZiAoKCgxIDw8IGV4cGxlbikgLSAxKSAhPSBzZWVuTWFzaykgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDAsIGJpdCA9IDE7IGogPCBleHBlY3RlZC5sZW5ndGg7ICsraiwgYml0IDw8PSAxKSB7CisgICAgICAgICAgICAgICAgaWYgKChzZWVuTWFzayAmIGJpdCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiXCIiICsgZXhwZWN0ZWRbal0gKyAiXCIgbm90IHNlZW4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFycmF5Lmxlbmd0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayB0aGUgZ2l2ZW4gYXJyYXkgdG8gc2VlIHRoYXQgYWxsIHRoZSBsb2NhbGVzIGluIHRoZSBleHBlY3RlZCBhcnJheQorICAgICAqIGFyZSBwcmVzZW50LgorICAgICAqIAorICAgICAqIEBwYXJhbSBtc2cKKyAgICAgKiAgICAgICAgICAgIHN0cmluZyBtZXNzYWdlLCBmb3IgbG9nIG91dHB1dAorICAgICAqIEBwYXJhbSBhcnJheQorICAgICAqICAgICAgICAgICAgYXJyYXkgb2YgbG9jYWxlcyB0byBjaGVjaworICAgICAqIEBwYXJhbSBleHBlY3RlZAorICAgICAqICAgICAgICAgICAgYXJyYXkgb2YgbG9jYWxlcyBuYW1lcyB3ZSBleHBlY3QgdG8gc2VlLCBvciBudWxsCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mICdhcnJheScKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGNoZWNrQXJyYXkoU3RyaW5nIG1zZywgTG9jYWxlIGFycmF5W10sIFN0cmluZyBleHBlY3RlZFtdKSB7CisgICAgICAgIFN0cmluZyBzdHJzW10gPSBuZXcgU3RyaW5nW2FycmF5Lmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBzdHJzW2ldID0gYXJyYXlbaV0udG9TdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIGNoZWNrQXJyYXkobXNnLCBzdHJzLCBleHBlY3RlZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgdGhlIGdpdmVuIGFycmF5IHRvIHNlZSB0aGF0IGFsbCB0aGUgbG9jYWxlcyBpbiB0aGUgZXhwZWN0ZWQgYXJyYXkKKyAgICAgKiBhcmUgcHJlc2VudC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gbXNnCisgICAgICogICAgICAgICAgICBzdHJpbmcgbWVzc2FnZSwgZm9yIGxvZyBvdXRwdXQKKyAgICAgKiBAcGFyYW0gYXJyYXkKKyAgICAgKiAgICAgICAgICAgIGFycmF5IG9mIGxvY2FsZXMgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gZXhwZWN0ZWQKKyAgICAgKiAgICAgICAgICAgIGFycmF5IG9mIGxvY2FsZXMgbmFtZXMgd2UgZXhwZWN0IHRvIHNlZSwgb3IgbnVsbAorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiAnYXJyYXknCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBjaGVja0FycmF5KFN0cmluZyBtc2csIFVMb2NhbGUgYXJyYXlbXSwgU3RyaW5nIGV4cGVjdGVkW10pIHsKKyAgICAgICAgU3RyaW5nIHN0cnNbXSA9IG5ldyBTdHJpbmdbYXJyYXkubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHN0cnNbaV0gPSBhcnJheVtpXS50b1N0cmluZygpOworICAgICAgICByZXR1cm4gY2hlY2tBcnJheShtc2csIHN0cnMsIGV4cGVjdGVkKTsKKyAgICB9CisKKyAgICAvLyBKVW5pdC1saWtlIGFzc2VydGlvbnMuCisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhc3NlcnRUcnVlKFN0cmluZyBtZXNzYWdlLCBib29sZWFuIGNvbmRpdGlvbikgeworICAgICAgICByZXR1cm4gaGFuZGxlQXNzZXJ0KGNvbmRpdGlvbiwgbWVzc2FnZSwgInRydWUiLCBudWxsKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhc3NlcnRGYWxzZShTdHJpbmcgbWVzc2FnZSwgYm9vbGVhbiBjb25kaXRpb24pIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUFzc2VydCghY29uZGl0aW9uLCBtZXNzYWdlLCAiZmFsc2UiLCBudWxsKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhc3NlcnRFcXVhbHMoU3RyaW5nIG1lc3NhZ2UsIGJvb2xlYW4gZXhwZWN0ZWQsCisgICAgICAgICAgICBib29sZWFuIGFjdHVhbCkgeworICAgICAgICByZXR1cm4gaGFuZGxlQXNzZXJ0KGV4cGVjdGVkID09IGFjdHVhbCwgbWVzc2FnZSwgU3RyaW5nCisgICAgICAgICAgICAgICAgLnZhbHVlT2YoZXhwZWN0ZWQpLCBTdHJpbmcudmFsdWVPZihhY3R1YWwpKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhc3NlcnRFcXVhbHMoU3RyaW5nIG1lc3NhZ2UsIGxvbmcgZXhwZWN0ZWQsIGxvbmcgYWN0dWFsKSB7CisgICAgICAgIHJldHVybiBoYW5kbGVBc3NlcnQoZXhwZWN0ZWQgPT0gYWN0dWFsLCBtZXNzYWdlLCBTdHJpbmcKKyAgICAgICAgICAgICAgICAudmFsdWVPZihleHBlY3RlZCksIFN0cmluZy52YWx1ZU9mKGFjdHVhbCkpOworICAgIH0KKworICAgIC8vIGRvIE5hTiBhbmQgcmFuZ2UgY2FsY3VsYXRpb25zIHRvIHByZWNpc2lvbiBvZiBmbG9hdCwgZG9uJ3QgcmVseSBvbgorICAgIC8vIHByb21vdGlvbiB0byBkb3VibGUKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhc3NlcnRFcXVhbHMoU3RyaW5nIG1lc3NhZ2UsIGZsb2F0IGV4cGVjdGVkLAorICAgICAgICAgICAgZmxvYXQgYWN0dWFsLCBkb3VibGUgZXJyb3IpIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBGbG9hdC5pc0luZmluaXRlKGV4cGVjdGVkKQorICAgICAgICAgICAgICAgID8gZXhwZWN0ZWQgPT0gYWN0dWFsCisgICAgICAgICAgICAgICAgOiAhKE1hdGguYWJzKGV4cGVjdGVkIC0gYWN0dWFsKSA+IGVycm9yKTsgLy8gaGFuZGxlcyBOYU4KKyAgICAgICAgcmV0dXJuIGhhbmRsZUFzc2VydChyZXN1bHQsIG1lc3NhZ2UsIFN0cmluZy52YWx1ZU9mKGV4cGVjdGVkKQorICAgICAgICAgICAgICAgICsgKGVycm9yID09IDAgPyAiIiA6ICIgKHdpdGhpbiAiICsgZXJyb3IgKyAiKSIpLCBTdHJpbmcKKyAgICAgICAgICAgICAgICAudmFsdWVPZihhY3R1YWwpKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhc3NlcnRFcXVhbHMoU3RyaW5nIG1lc3NhZ2UsIGRvdWJsZSBleHBlY3RlZCwKKyAgICAgICAgICAgIGRvdWJsZSBhY3R1YWwsIGRvdWJsZSBlcnJvcikgeworICAgICAgICBib29sZWFuIHJlc3VsdCA9IERvdWJsZS5pc0luZmluaXRlKGV4cGVjdGVkKQorICAgICAgICAgICAgICAgID8gZXhwZWN0ZWQgPT0gYWN0dWFsCisgICAgICAgICAgICAgICAgOiAhKE1hdGguYWJzKGV4cGVjdGVkIC0gYWN0dWFsKSA+IGVycm9yKTsgLy8gaGFuZGxlcyBOYU4KKyAgICAgICAgcmV0dXJuIGhhbmRsZUFzc2VydChyZXN1bHQsIG1lc3NhZ2UsIFN0cmluZy52YWx1ZU9mKGV4cGVjdGVkKQorICAgICAgICAgICAgICAgICsgKGVycm9yID09IDAgPyAiIiA6ICIgKHdpdGhpbiAiICsgZXJyb3IgKyAiKSIpLCBTdHJpbmcKKyAgICAgICAgICAgICAgICAudmFsdWVPZihhY3R1YWwpKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhc3NlcnRFcXVhbHMoU3RyaW5nIG1lc3NhZ2UsIE9iamVjdCBleHBlY3RlZCwKKyAgICAgICAgICAgIE9iamVjdCBhY3R1YWwpIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBleHBlY3RlZCA9PSBudWxsID8gYWN0dWFsID09IG51bGwgOiBleHBlY3RlZAorICAgICAgICAgICAgICAgIC5lcXVhbHMoYWN0dWFsKTsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUFzc2VydChyZXN1bHQsIG1lc3NhZ2UsIHN0cmluZ0ZvcihleHBlY3RlZCksCisgICAgICAgICAgICAgICAgc3RyaW5nRm9yKGFjdHVhbCkpOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIGFzc2VydE5vdEVxdWFscyhTdHJpbmcgbWVzc2FnZSwgT2JqZWN0IGV4cGVjdGVkLAorICAgICAgICAgICAgT2JqZWN0IGFjdHVhbCkgeworICAgICAgICBib29sZWFuIHJlc3VsdCA9ICEoZXhwZWN0ZWQgPT0gbnVsbCA/IGFjdHVhbCA9PSBudWxsIDogZXhwZWN0ZWQKKyAgICAgICAgICAgICAgICAuZXF1YWxzKGFjdHVhbCkpOworICAgICAgICByZXR1cm4gaGFuZGxlQXNzZXJ0KHJlc3VsdCwgbWVzc2FnZSwgc3RyaW5nRm9yKGV4cGVjdGVkKSwKKyAgICAgICAgICAgICAgICBzdHJpbmdGb3IoYWN0dWFsKSwgIm5vdCBlcXVhbCB0byIsIHRydWUpOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIGFzc2VydFNhbWUoU3RyaW5nIG1lc3NhZ2UsIE9iamVjdCBleHBlY3RlZCwgT2JqZWN0IGFjdHVhbCkgeworICAgICAgICByZXR1cm4gaGFuZGxlQXNzZXJ0KGV4cGVjdGVkID09IGFjdHVhbCwgbWVzc2FnZSwgc3RyaW5nRm9yKGV4cGVjdGVkKSwKKyAgICAgICAgICAgICAgICBzdHJpbmdGb3IoYWN0dWFsKSwgIj09IiwgZmFsc2UpOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIGFzc2VydE5vdFNhbWUoU3RyaW5nIG1lc3NhZ2UsIE9iamVjdCBleHBlY3RlZCwKKyAgICAgICAgICAgIE9iamVjdCBhY3R1YWwpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUFzc2VydChleHBlY3RlZCAhPSBhY3R1YWwsIG1lc3NhZ2UsIHN0cmluZ0ZvcihleHBlY3RlZCksCisgICAgICAgICAgICAgICAgc3RyaW5nRm9yKGFjdHVhbCksICIhPSIsIHRydWUpOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIGFzc2VydE51bGwoU3RyaW5nIG1lc3NhZ2UsIE9iamVjdCBhY3R1YWwpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUFzc2VydChhY3R1YWwgPT0gbnVsbCwgbWVzc2FnZSwgbnVsbCwgc3RyaW5nRm9yKGFjdHVhbCkpOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIGFzc2VydE5vdE51bGwoU3RyaW5nIG1lc3NhZ2UsIE9iamVjdCBhY3R1YWwpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUFzc2VydChhY3R1YWwgIT0gbnVsbCwgbWVzc2FnZSwgbnVsbCwgc3RyaW5nRm9yKGFjdHVhbCksCisgICAgICAgICAgICAgICAgIiE9IiwgdHJ1ZSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgZmFpbChTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBlcnJsbihtZXNzYWdlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gaGFuZGxlQXNzZXJ0KGJvb2xlYW4gcmVzdWx0LCBTdHJpbmcgbWVzc2FnZSwKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZCwgU3RyaW5nIGFjdHVhbCkgeworICAgICAgICByZXR1cm4gaGFuZGxlQXNzZXJ0KHJlc3VsdCwgbWVzc2FnZSwgZXhwZWN0ZWQsIGFjdHVhbCwgbnVsbCwgZmFsc2UpOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBoYW5kbGVBc3NlcnQoYm9vbGVhbiByZXN1bHQsIFN0cmluZyBtZXNzYWdlLAorICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkLCBTdHJpbmcgYWN0dWFsLCBTdHJpbmcgcmVsYXRpb24sIGJvb2xlYW4gZmxpcCkgeworICAgICAgICBpZiAoIXJlc3VsdCB8fCBpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UgPT0gbnVsbCA/ICIiIDogIiAiICsgbWVzc2FnZTsKKyAgICAgICAgICAgIHJlbGF0aW9uID0gcmVsYXRpb24gPT0gbnVsbCA/ICIsIGdvdCAiIDogIiAiICsgcmVsYXRpb24gKyAiICI7CisgICAgICAgICAgICBpZiAocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LIiArIG1lc3NhZ2UgKyAiOiAiCisgICAgICAgICAgICAgICAgICAgICAgICArIChmbGlwID8gZXhwZWN0ZWQgKyByZWxhdGlvbiArIGFjdHVhbCA6IGV4cGVjdGVkKSk7CisgICAgICAgICAgICB9IGVsc2UgeworCQkvLyBhc3NlcnQgbXVzdCBhc3N1bWUgZXJyb3JzIGFyZSB0cnVlIGVycm9ycyBhbmQgbm90IGp1c3Qgd2FybmluZ3MKKwkJLy8gc28gY2Fubm90IHdhcm5sbiBoZXJlCisgICAgICAgICAgICAgICAgZXJybG4obWVzc2FnZQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiOiBleHBlY3RlZCIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgKGZsaXAgPyByZWxhdGlvbiArIGV4cGVjdGVkIDogIiAiICsgZXhwZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoYWN0dWFsICE9IG51bGwgPyByZWxhdGlvbiArIGFjdHVhbCA6ICIiKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmcgc3RyaW5nRm9yKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKQorICAgICAgICAgICAgcmV0dXJuICJudWxsIjsKKyAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIFN0cmluZykKKyAgICAgICAgICAgIHJldHVybiAiXCIiICsgb2JqICsgJyInOworICAgICAgICByZXR1cm4gb2JqLmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIjwiICsgb2JqICsgIj4iOworICAgIH0KKworICAgIC8vIEVuZCBKVW5pdC1saWtlIGFzc2VydGlvbnMKKworICAgIC8vIFByaW50V3JpdGVyIHN1cHBvcnQKKworICAgIHB1YmxpYyBQcmludFdyaXRlciBnZXRFcnJvckxvZ1ByaW50V3JpdGVyKCkgeworICAgICAgICByZXR1cm4gbmV3IFByaW50V3JpdGVyKG5ldyBUZXN0TG9nV3JpdGVyKHRoaXMsIFRlc3RMb2cuRVJSKSk7CisgICAgfQorCisgICAgcHVibGljIFByaW50V3JpdGVyIGdldExvZ1ByaW50V3JpdGVyKCkgeworICAgICAgICByZXR1cm4gbmV3IFByaW50V3JpdGVyKG5ldyBUZXN0TG9nV3JpdGVyKHRoaXMsIFRlc3RMb2cuTE9HKSk7CisgICAgfQorCisgICAgLy8gZW5kIFByaW50V3JpdGVyIHN1cHBvcnQKKworICAgIHByb3RlY3RlZCBUZXN0UGFyYW1zIHBhcmFtcyA9IG51bGw7CisKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBTdHJpbmcgc3BhY2VzID0gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMTUyYzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RMb2cuamF2YQpAQCAtMCwwICsxLDM4IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Q7CisKK3B1YmxpYyBpbnRlcmZhY2UgVGVzdExvZyB7CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGdpdmVuIHN0cmluZyB0byB0aGUgbG9nIGlmIHdlIGFyZSBpbiB2ZXJib3NlIG1vZGUuCisgICAgICovCisgICAgdm9pZCBsb2coU3RyaW5nIG1lc3NhZ2UpOworCisgICAgdm9pZCBsb2dsbihTdHJpbmcgbWVzc2FnZSk7CisKKyAgICAvKioKKyAgICAgKiBSZXBvcnQgYW4gZXJyb3IKKyAgICAgKi8KKyAgICB2b2lkIGVycihTdHJpbmcgbWVzc2FnZSk7CisKKyAgICB2b2lkIGVycmxuKFN0cmluZyBtZXNzYWdlKTsKKworICAgIC8qKgorICAgICAqIFdhcm4gYWJvdXQgbWlzc2luZyB0ZXN0cyBvciBkYXRhLgorICAgICAqLworICAgIHZvaWQgd2FybihTdHJpbmcgbWVzc2FnZSk7CisgICAgCisgICAgdm9pZCB3YXJubG4oU3RyaW5nIG1lc3NhZ2UpOworCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT0cgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdBUk4gPSAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVSUiA9IDI7CisKKyAgICB2b2lkIG1zZyhTdHJpbmcgbWVzc2FnZSwgaW50IGxldmVsLCBib29sZWFuIGluY0NvdW50LCBib29sZWFuIG5ld2xuKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9UZXN0TG9nV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZ1dyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwZDZhYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdExvZ1dyaXRlci5qYXZhCkBAIC0wLDAgKzEsNDMgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5Xcml0ZXI7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXN0TG9nV3JpdGVyIGV4dGVuZHMgV3JpdGVyIHsKKyAgICBwcml2YXRlIFRlc3RMb2cgbG9nOworICAgIHByaXZhdGUgaW50IGxldmVsOworICAgIHByaXZhdGUgYm9vbGVhbiBjbG9zZWQ7CisKKyAgICBwdWJsaWMgVGVzdExvZ1dyaXRlcihUZXN0TG9nIGxvZywgaW50IGxldmVsKSB7CisJdGhpcy5sb2cgPSBsb2c7CisJdGhpcy5sZXZlbCA9IGxldmVsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlKGNoYXIgY2J1ZltdLCBpbnQgb2ZmLCBpbnQgbGVuKSB0aHJvd3MgSU9FeGNlcHRpb24geworCXdyaXRlKG5ldyBTdHJpbmcoY2J1Ziwgb2ZmLCBsZW4pKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShTdHJpbmcgc3RyKSB0aHJvd3MgSU9FeGNlcHRpb24geworCWlmIChjbG9zZWQpIHsKKwkgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJzdHJlYW0gY2xvc2VkIik7CisJfQorCWlmICgiXHJcbiIuaW5kZXhPZihzdHIpICE9IC0xKSB7CisJICAgIGxvZy5tc2coIiIsIGxldmVsLCBsZXZlbCA9PSBUZXN0TG9nLkVSUiwgdHJ1ZSk7CisJfSBlbHNlIHsKKwkgICAgbG9nLm1zZyhzdHIsIGxldmVsLCBsZXZlbCA9PSBUZXN0TG9nLkVSUiwgZmFsc2UpOworCX0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBmbHVzaCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgSU9FeGNlcHRpb24geworCWNsb3NlZCA9IHRydWU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVGVzdFV0aWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOGVkYjc3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L1Rlc3RVdGlsLmphdmEKQEAgLTAsMCArMSwyNTIgQEAKKy8vIyNoZWFkZXIKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5pby5GaWxlOworCitwdWJsaWMgZmluYWwgY2xhc3MgVGVzdFV0aWwgeworICAgIC8qKgorICAgICAqIFBhdGggdG8gdGVzdCBkYXRhIGluIGljdTRqdGVzdC5qYXIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMT0NBTF9EQVRBX1BBVEggPSAiL2NvbS9pYm0vaWN1L2Rldi9kYXRhLyI7CisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCBwYXRoIHRvIHRoZSB0ZXN0IGRhdGEgaW4gdGhlIGZpbGUgc3lzdGVtLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfUEFUSCA9ICIvc3JjIiArIExPQ0FMX0RBVEFfUEFUSDsKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IGZvciB1c2VyLWRlZmluZWQgZGF0YSBwYXRoLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfUEFUSF9QUk9QRVJUWSA9ICJJQ1VEYXRhUGF0aCI7CisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSBmb3IgbW9kdWxhciBidWlsZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX01PRFVMQVJfQlVJTERfUFJPUEVSVFkgPSAiSUNVTW9kdWxhckJ1aWxkIjsKKworICAgIC8qKgorICAgICAqIENvbXB1dGUgYSBmdWxsIGRhdGEgcGF0aCB1c2luZyB0aGUgSUNVRGF0YVBhdGgsIGlmIGRlZmluZWQsIG9yIHRoZSB1c2VyLmRpciwgaWYgd2UKKyAgICAgKiBhcmUgYWxsb3dlZCBhY2Nlc3MgdG8gaXQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGRhdGFQYXRoKFN0cmluZyBmaWxlTmFtZSkgeworICAgICAgICBTdHJpbmcgcyA9IFN5c3RlbS5nZXRQcm9wZXJ0eShEQVRBX1BBVEhfUFJPUEVSVFkpOworICAgICAgICBpZiAocyA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBhc3N1bWUgdXNlci5kaXIgaXMgZGlyZWN0bHkgYWJvdmUgc3JjIGRpcmVjdG9yeQorICAgICAgICAgICAgLy8gZGF0YSBwYXRoIG11c3QgZW5kIGluICcvJyBvciAnXCcsIGZpbGVOYW1lIHNob3VsZCBub3Qgc3RhcnQgd2l0aCBvbmUKKyAgICAgICAgICAgIHMgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoInVzZXIuZGlyIik7IC8vIHByb3RlY3RlZCBwcm9wZXJ0eQorICAgICAgICAgICAgcyA9IHMgKyBEQVRBX1BBVEg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHMgKyBmaWxlTmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gaW5wdXQgc3RyZWFtIG9uIHRoZSBkYXRhIGZpbGUgYXQgcGF0aCAnbmFtZScgcm9vdGVkIGF0IHRoZSBkYXRhIHBhdGgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIElucHV0U3RyZWFtIGdldERhdGFTdHJlYW0oU3RyaW5nIG5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIElucHV0U3RyZWFtIGlzID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShkYXRhUGF0aChuYW1lKSk7CisgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSBlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlzID0gVGVzdFV0aWwuY2xhc3MuZ2V0UmVzb3VyY2VBc1N0cmVhbShMT0NBTF9EQVRBX1BBVEggKyBuYW1lKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICAgICAgSU9FeGNlcHRpb24gZXggPQorICAgICAgICAgICAgICAgICAgICBuZXcgSU9FeGNlcHRpb24oImRhdGEgcmVzb3VyY2UgJyIgKyBuYW1lICsgIicgbm90IGZvdW5kIik7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICAgICAgICAgIC8vaW5pdENhdXNlIEFQSSB3YXMgaW50cm9kdWNlZCBpbiBKREsgMS40CisgICAgICAgICAgICAgICAgZXguaW5pdENhdXNlKHQpOworLy8jZWxzZQorLy8jIyAgICAgICAgICAgIHQucHJpbnRTdGFja1RyYWNlKCk7CisvLyNlbmRpZgorICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdGhyb3cgZXg7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIGJ1ZmZlcmVkIHJlYWRlciBvbiB0aGUgZGF0YSBmaWxlIGF0IHBhdGggJ25hbWUnIHJvb3RlZCBhdCB0aGUgZGF0YSBwYXRoLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQnVmZmVyZWRSZWFkZXIgZ2V0RGF0YVJlYWRlcihTdHJpbmcgbmFtZSwgU3RyaW5nIGNoYXJzZXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIElucHV0U3RyZWFtIGlzID0gZ2V0RGF0YVN0cmVhbShuYW1lKTsKKyAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0KKyAgICAgICAgICAgIGNoYXJzZXQgPT0gbnVsbAorICAgICAgICAgICAgICAgID8gbmV3IElucHV0U3RyZWFtUmVhZGVyKGlzKQorICAgICAgICAgICAgICAgIDogbmV3IElucHV0U3RyZWFtUmVhZGVyKGlzLCBjaGFyc2V0KTsKKyAgICAgICAgcmV0dXJuIG5ldyBCdWZmZXJlZFJlYWRlcihpc3IpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIGJ1ZmZlcmVkIHJlYWRlciBvbiB0aGUgZGF0YSBmaWxlIGF0IHBhdGggJ25hbWUnIHJvb3RlZCBhdCB0aGUgZGF0YSBwYXRoLAorICAgICAqIHVzaW5nIHRoZSBwcm92aWRlZCBlbmNvZGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEJ1ZmZlcmVkUmVhZGVyIGdldERhdGFSZWFkZXIoU3RyaW5nIG5hbWUpCisgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBnZXREYXRhUmVhZGVyKG5hbWUsIG51bGwpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBjaGFyIERJR0lUU1tdID0KKyAgICAgICAgeworICAgICAgICAgICAgJzAnLAorICAgICAgICAgICAgJzEnLAorICAgICAgICAgICAgJzInLAorICAgICAgICAgICAgJzMnLAorICAgICAgICAgICAgJzQnLAorICAgICAgICAgICAgJzUnLAorICAgICAgICAgICAgJzYnLAorICAgICAgICAgICAgJzcnLAorICAgICAgICAgICAgJzgnLAorICAgICAgICAgICAgJzknLAorICAgICAgICAgICAgJ0EnLAorICAgICAgICAgICAgJ0InLAorICAgICAgICAgICAgJ0MnLAorICAgICAgICAgICAgJ0QnLAorICAgICAgICAgICAgJ0UnLAorICAgICAgICAgICAgJ0YnLAorICAgICAgICAgICAgJ0cnLAorICAgICAgICAgICAgJ0gnLAorICAgICAgICAgICAgJ0knLAorICAgICAgICAgICAgJ0onLAorICAgICAgICAgICAgJ0snLAorICAgICAgICAgICAgJ0wnLAorICAgICAgICAgICAgJ00nLAorICAgICAgICAgICAgJ04nLAorICAgICAgICAgICAgJ08nLAorICAgICAgICAgICAgJ1AnLAorICAgICAgICAgICAgJ1EnLAorICAgICAgICAgICAgJ1InLAorICAgICAgICAgICAgJ1MnLAorICAgICAgICAgICAgJ1QnLAorICAgICAgICAgICAgJ1UnLAorICAgICAgICAgICAgJ1YnLAorICAgICAgICAgICAgJ1cnLAorICAgICAgICAgICAgJ1gnLAorICAgICAgICAgICAgJ1knLAorICAgICAgICAgICAgJ1onIH07CisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNoYXJhY3RlciBpcyBOT1QgcHJpbnRhYmxlIEFTQ0lJLiAgVGhlIHRhYiwKKyAgICAgKiBuZXdsaW5lIGFuZCBsaW5lZmVlZCBjaGFyYWN0ZXJzIGFyZSBjb25zaWRlcmVkIHVucHJpbnRhYmxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VucHJpbnRhYmxlKGludCBjKSB7CisgICAgICAgIHJldHVybiAhKGMgPj0gMHgyMCAmJiBjIDw9IDB4N0UpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBFc2NhcGUgdW5wcmludGFibGUgY2hhcmFjdGVycyB1c2luZyA8YmFja3NsYXNoPnV4eHh4IG5vdGF0aW9uCisgICAgICogZm9yIFUrMDAwMCB0byBVK0ZGRkYgYW5kIDxiYWNrc2xhc2g+VXh4eHh4eHh4IGZvciBVKzEwMDAwIGFuZAorICAgICAqIGFib3ZlLiAgSWYgdGhlIGNoYXJhY3RlciBpcyBwcmludGFibGUgQVNDSUksIHRoZW4gZG8gbm90aGluZworICAgICAqIGFuZCByZXR1cm4gRkFMU0UuICBPdGhlcndpc2UsIGFwcGVuZCB0aGUgZXNjYXBlZCBub3RhdGlvbiBhbmQKKyAgICAgKiByZXR1cm4gVFJVRS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUoU3RyaW5nQnVmZmVyIHJlc3VsdCwgaW50IGMpIHsKKyAgICAgICAgaWYgKGlzVW5wcmludGFibGUoYykpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICBpZiAoKGMgJiB+MHhGRkZGKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnVScpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiAmIChjID4+IDI4KV0pOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiAmIChjID4+IDI0KV0pOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiAmIChjID4+IDIwKV0pOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiAmIChjID4+IDE2KV0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd1Jyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYgJiAoYyA+PiAxMildKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiAmIChjID4+IDgpXSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYgJiAoYyA+PiA0KV0pOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChESUdJVFNbMHhGICYgY10pOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBMb2NrIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgY291bnQ7CisKKyAgICAgICAgc3luY2hyb25pemVkIHZvaWQgaW5jKCkgeworICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgfQorCisgICAgICAgIHN5bmNocm9uaXplZCB2b2lkIGRlYygpIHsKKyAgICAgICAgICAgIC0tY291bnQ7CisgICAgICAgIH0KKworICAgICAgICBzeW5jaHJvbml6ZWQgaW50IGNvdW50KCkgeworICAgICAgICAgICAgcmV0dXJuIGNvdW50OworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBnbygpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgd2hpbGUgKGNvdW50KCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeworICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5QWxsKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDUwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgVGVzdFRocmVhZCBleHRlbmRzIFRocmVhZCB7CisgICAgICAgIExvY2sgbG9jazsKKyAgICAgICAgUnVubmFibGUgdGFyZ2V0OworCisgICAgICAgIFRlc3RUaHJlYWQoTG9jayBsb2NrLCBSdW5uYWJsZSB0YXJnZXQpIHsKKyAgICAgICAgICAgIHRoaXMubG9jayA9IGxvY2s7CisgICAgICAgICAgICB0aGlzLnRhcmdldCA9IHRhcmdldDsKKworICAgICAgICAgICAgbG9jay5pbmMoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc3luY2hyb25pemVkIChsb2NrKSB7CisgICAgICAgICAgICAgICAgICAgIGxvY2sud2FpdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0YXJnZXQucnVuKCk7CisgICAgICAgICAgICB9IGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvY2suZGVjKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcnVuVW50aWxEb25lKFJ1bm5hYmxlW10gdGFyZ2V0cykgeworICAgICAgICBpZiAodGFyZ2V0cyA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJ0YXJnZXRzIGlzIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGFyZ2V0cy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgTG9jayBsb2NrID0gbmV3IExvY2soKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YXJnZXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBuZXcgVGVzdFRocmVhZChsb2NrLCB0YXJnZXRzW2ldKS5zdGFydCgpOworICAgICAgICB9CisKKyAgICAgICAgbG9jay5nbygpOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIEJ1ZmZlcmVkUmVhZGVyIG9wZW5VVEY4UmVhZGVyKFN0cmluZyBkaXIsIFN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIG9wZW5SZWFkZXIoZGlyLGZpbGVuYW1lLCJVVEYtOCIpOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIEJ1ZmZlcmVkUmVhZGVyIG9wZW5SZWFkZXIoU3RyaW5nIGRpciwgU3RyaW5nIGZpbGVuYW1lLCBTdHJpbmcgZW5jb2RpbmcpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKGRpciArIGZpbGVuYW1lKTsKKyAgICAgICAgcmV0dXJuIG5ldyBCdWZmZXJlZFJlYWRlcigKKyAgICAgICAgICAgIG5ldyBJbnB1dFN0cmVhbVJlYWRlcigKKyAgICAgICAgICAgICAgICBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpLAorICAgICAgICAgICAgICAgIGVuY29kaW5nKSwKKyAgICAgICAgICAgIDQqMTAyNCk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvVVRGMTZVdGlsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWRhNTEyYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9VVEYxNlV0aWwuamF2YQpAQCAtMCwwICsxLDM3NyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdDsKKworLyoqCisgKiBVdGlsaXR5IGNsYXNzIGZvciBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgCisgKiBzdXBwb3J0LiBUaGlzIG9uZSBpcyB3cml0dGVuIHB1cmVseSBmb3IgdXBkYXRpbmcKKyAqIE5vcm1hbGl6YXRpb24gc2FtcGxlIGZyb20gdGhlIHVuaWNvZGUub3JnIHNpdGUuCisgKiBJZiB5b3Ugd2FudCB0aGUgcmVhbCB0aGluZywgdXNlIFVURjE2IGNsYXNzCisgKiBmcm9tIElDVTRKCisgKiBAYXV0aG9yIFZsYWRpbWlyIFdlaW5zdGVpbiwgTWFya3VzIFNjaGVyZXIKKyAqLworcHVibGljIGNsYXNzIFVURjE2VXRpbCB7CisgICAgc3RhdGljIGZpbmFsIGludCBzdXBwT2Zmc2V0ID0gKDB4ZDgwMCA8PCAxMCkgKyAweGRjMDAgLSAweDEwMDAwOworCisgICAgLyoqCisgICAgICogTWV0aG9kIG5leHRDb2RlUG9pbnQuIFJldHVybnMgdGhlIG5leHQgY29kZSBwb2ludAorICAgICAqIGluIGEgc3RyaW5nLiAKKyAgICAgKiBAcGFyYW0gcyBTdHJpbmcgaW4gcXVlc3Rpb24KKyAgICAgKiBAcGFyYW0gaSBpbmRleCBmcm9tIHdoaWNoIHdlIHdhbnQgYSBjb2RlIHBvaW50CisgICAgICogQHJldHVybiBpbnQgY29kZXBvaW50IGF0IGluZGV4IGkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBuZXh0Q29kZVBvaW50KFN0cmluZyBzLCBpbnQgaSkgeworICAgICAgICBpbnQgY2ggPSBzLmNoYXJBdChpKTsKKyAgICAgICAgaWYgKDB4ZDgwMCA8PSBjaCAmJiBjaCA8PSAweGRiZmYgJiYgKytpIDwgcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgaW50IGNoMiA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKDB4ZGMwMCA8PSBjaDIgJiYgY2gyIDw9IDB4ZGZmZikgeworICAgICAgICAgICAgICAgIGNoID0gKGNoIDw8IDEwKSArIGNoMiAtIHN1cHBPZmZzZXQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBwcmV2Q29kZVBvaW50LiBHZXRzIHRoZSBjb2RlIHBvaW50IHByZWNlZGluZworICAgICAqIGluZGV4IGkgKHByZWRlY3JlbWVudCkuIAorICAgICAqIEBwYXJhbSBzIFN0cmluZyBpbiBxdWVzdGlvbgorICAgICAqIEBwYXJhbSBpIGluZGV4IGluIHN0cmluZworICAgICAqIEByZXR1cm4gaW50IGNvZGVwb2ludCBhdCBpbmRleCAtLWkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBwcmV2Q29kZVBvaW50KFN0cmluZyBzLCBpbnQgaSkgeworICAgICAgICBpbnQgY2ggPSBzLmNoYXJBdCgtLWkpOworICAgICAgICBpZiAoMHhkYzAwIDw9IGNoICYmIGNoIDw9IDB4ZGZmZiAmJiAtLWkgPj0gMCkgeworICAgICAgICAgICAgaW50IGNoMiA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKDB4ZDgwMCA8PSBjaDIgJiYgY2gyIDw9IDB4ZGJmZikgeworICAgICAgICAgICAgICAgIGNoID0gKGNoMiA8PCAxMCkgKyBjaCAtIHN1cHBPZmZzZXQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBuZXh0Q29kZVBvaW50LiBSZXR1cm5zIHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICAgKiBpbiBhIHN0cmluZy4gCisgICAgICogQHBhcmFtIHMgU3RyaW5nQnVmZmVyIGluIHF1ZXN0aW9uCisgICAgICogQHBhcmFtIGkgaW5kZXggZnJvbSB3aGljaCB3ZSB3YW50IGEgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gaW50IGNvZGVwb2ludCBhdCBpbmRleCBpCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgbmV4dENvZGVQb2ludChTdHJpbmdCdWZmZXIgcywgaW50IGkpIHsKKyAgICAgICAgaW50IGNoID0gcy5jaGFyQXQoaSk7CisgICAgICAgIGlmICgweGQ4MDAgPD0gY2ggJiYgY2ggPD0gMHhkYmZmICYmICsraSA8IHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGludCBjaDIgPSBzLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmICgweGRjMDAgPD0gY2gyICYmIGNoMiA8PSAweGRmZmYpIHsKKyAgICAgICAgICAgICAgICBjaCA9IChjaCA8PCAxMCkgKyBjaDIgLSBzdXBwT2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgcHJldkNvZGVQb2ludC4gR2V0cyB0aGUgY29kZSBwb2ludCBwcmVjZWRpbmcKKyAgICAgKiBpbmRleCBpIChwcmVkZWNyZW1lbnQpLiAKKyAgICAgKiBAcGFyYW0gcyBTdHJpbmdCdWZmZXIgaW4gcXVlc3Rpb24KKyAgICAgKiBAcGFyYW0gaSBpbmRleCBpbiBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIGludCBjb2RlcG9pbnQgYXQgaW5kZXggLS1pCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgcHJldkNvZGVQb2ludChTdHJpbmdCdWZmZXIgcywgaW50IGkpIHsKKyAgICAgICAgaW50IGNoID0gcy5jaGFyQXQoLS1pKTsKKyAgICAgICAgaWYgKDB4ZGMwMCA8PSBjaCAmJiBjaCA8PSAweGRmZmYgJiYgLS1pID49IDApIHsKKyAgICAgICAgICAgIGludCBjaDIgPSBzLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmICgweGQ4MDAgPD0gY2gyICYmIGNoMiA8PSAweGRiZmYpIHsKKyAgICAgICAgICAgICAgICBjaCA9IChjaDIgPDwgMTApICsgY2ggLSBzdXBwT2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY29kZVBvaW50TGVuZ3RoLiBSZXR1cm5zIHRoZSBsZW5ndGggCisgICAgICogaW4gVVRGLTE2IGNvZGUgdW5pdHMgb2YgYSBnaXZlbiBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIGMgY29kZSBwb2ludCBpbiBxdWVzdGlvbgorICAgICAqIEByZXR1cm4gaW50IGxlbmd0aCBpbiBVVEYtMTYgY29kZSB1bml0cy4gQ2FuIGJlIDEgb3IgMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvZGVQb2ludExlbmd0aChpbnQgYykgeworICAgICAgICByZXR1cm4gYyA8PSAweGZmZmYgPyAxIDogMjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgYXBwZW5kQ29kZVBvaW50LiBBcHBlbmRzIGEgY29kZSBwb2ludAorICAgICAqIHRvIGEgU3RyaW5nQnVmZmVyCisgICAgICogQHBhcmFtIGJ1ZmZlciBTdHJpbmdCdWZmZXIgaW4gcXVlc3Rpb24KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBhcHBlbmQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIHZvaWQgYXBwZW5kQ29kZVBvaW50KFN0cmluZ0J1ZmZlciBidWZmZXIsIGludCBjaCkgeworICAgICAgICBpZiAoY2ggPD0gMHhmZmZmKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKWNoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpKDB4ZDdjMCArIChjaCA+PiAxMCkpKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpKDB4ZGMwMCArIChjaCAmIDB4M2ZmKSkpOyAKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBpbnNlcnRDb2RlUG9pbnQuIEluc2VydHMgYSBjb2RlIHBvaW50IGluCisgICAgICogYSBTdHJpbmdCdWZmZXIKKyAgICAgKiBAcGFyYW0gYnVmZmVyIFN0cmluZ0J1ZmZlciBpbiBxdWVzdGlvbgorICAgICAqIEBwYXJhbSBpIGluZGV4IGF0IHdoaWNoIHdlIHdhbnQgY29kZSBwb2ludCB0byBiZSBpbnNlcnRlZAorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGJlIGluc2VydGVkCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCB2b2lkIGluc2VydENvZGVQb2ludChTdHJpbmdCdWZmZXIgYnVmZmVyLCBpbnQgaSwgaW50IGNoKSB7CisgICAgICAgIGlmIChjaCA8PSAweGZmZmYpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5pbnNlcnQoaSwgKGNoYXIpY2gpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYnVmZmVyLmluc2VydChpLCAoY2hhcikoMHhkN2MwICsgKGNoID4+IDEwKSkpLmluc2VydChpICsgMSwgKGNoYXIpKDB4ZGMwMCArIChjaCAmIDB4M2ZmKSkpOyAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBNZXRob2Qgc2V0Q29kZVBvaW50QXQuIENoYW5nZXMgYSBjb2RlIHBvaW50IGF0IGEKKyAgICAgKiBnaXZlbiBpbmRleC4gQ2FuIGNoYW5nZSB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGJ1ZmZlciBTdHJpbmdCdWZmZXIgaW4gcXVlc3Rpb24KKyAgICAgKiBAcGFyYW0gaSBpbmRleCBhdCB3aGljaCB3ZSB3YW50IHRvIGNoYW5nZSB0aGUgY29udGVudHMKKyAgICAgKiBAcGFyYW0gY2ggcmVwbGFjZW1lbnQgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gaW50IGRpZmZlcmVuY2UgaW4gcmVzdWx0aW5nIFN0cmluZ0J1ZmZlciBsZW5ndGgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBzZXRDb2RlUG9pbnRBdChTdHJpbmdCdWZmZXIgYnVmZmVyLCBpbnQgaSwgaW50IGNoKSB7CisgICAgICAgIGludCBjcCA9IG5leHRDb2RlUG9pbnQoYnVmZmVyLCBpKTsKKyAgICAgICAgCisgICAgICAgIGlmIChjaCA8PSAweGZmZmYgJiYgY3AgPD0gMHhmZmZmKSB7IC8vIEJvdGggQk1QCisgICAgICAgICAgICBidWZmZXIuc2V0Q2hhckF0KGksIChjaGFyKWNoKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgaWYgKGNoID4gMHhmZmZmICYmIGNwID4gMHhmZmZmKSB7IC8vIEJvdGggc3VwcGxlbWVudGFyeQorICAgICAgICAgICAgYnVmZmVyLnNldENoYXJBdChpLCAoY2hhcikoMHhkN2MwICsgKGNoID4+IDEwKSkpOworICAgICAgICAgICAgYnVmZmVyLnNldENoYXJBdChpKzEsIChjaGFyKSgweGRjMDAgKyAoY2ggJiAweDNmZikpKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgaWYgKGNoIDw9IDB4ZmZmZiAmJiBjcCA+IDB4ZmZmZikgeyAvLyBwdXR0aW5nIEJNUCBpbnN0ZWFkIG9mIHN1cHBsZW1lbnRhcnksIGJ1ZmZlciBzaHJpbmtzCisgICAgICAgICAgICBidWZmZXIuc2V0Q2hhckF0KGksIChjaGFyKWNoKTsKKyAgICAgICAgICAgIGJ1ZmZlci5kZWxldGVDaGFyQXQoaSsxKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfSBlbHNlIHsgLy9pZiAoY2ggPiAweGZmZmYgJiYgY3AgPD0gMHhmZmZmKSB7IC8vIHB1dHRpbmcgc3VwcGxlbWVudGFyeSBpbnN0ZWFkIG9mIEJNUCwgYnVmZmVyIGdyb3dzCisgICAgICAgICAgICBidWZmZXIuc2V0Q2hhckF0KGksIChjaGFyKSgweGQ3YzAgKyAoY2ggPj4gMTApKSk7CisgICAgICAgICAgICBidWZmZXIuaW5zZXJ0KGkrMSwgKGNoYXIpKDB4ZGMwMCArIChjaCAmIDB4M2ZmKSkpOyAKKyAgICAgICAgICAgIHJldHVybiAxOyAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY291bnRDb2RlUG9pbnQuIENvdW50cyB0aGUgVVRGLTMyIGNvZGUgcG9pbnRzCisgICAgICogaW4gYSBVVEYtMTYgZW5jb2RlZCBzdHJpbmcuCisgICAgICogQHBhcmFtIHNvdXJjZSBTdHJpbmcgaW4gcXVlc3Rpb24uCisgICAgICogQHJldHVybiBpbnQgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIHRoaXMgc3RyaW5nCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY291bnRDb2RlUG9pbnQoU3RyaW5nIHNvdXJjZSkgCisgICAgeyAgICAgICAgIAorICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgYm9vbGVhbiBoYWRMZWFkU3Vycm9nYXRlID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgKysgaSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChoYWRMZWFkU3Vycm9nYXRlICYmIDB4ZGMwMCA8PSBjaCAmJiBjaCA8PSAweGRmZmYpIHsKKyAgICAgICAgICAgICAgICBoYWRMZWFkU3Vycm9nYXRlID0gZmFsc2U7ICAgICAgICAgICAvLyBjb3VudCB2YWxpZCB0cmFpbCBhcyB6ZXJvCisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaGFkTGVhZFN1cnJvZ2F0ZSA9ICgweGQ4MDAgPD0gY2ggJiYgY2ggPD0gMHhkYmZmKTsKKyAgICAgICAgICAgICAgICArKyByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb3VudCBvdGhlcnMgYXMgMQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY291bnRDb2RlUG9pbnQuIENvdW50cyB0aGUgVVRGLTMyIGNvZGUgcG9pbnRzCisgICAgICogaW4gYSBVVEYtMTYgZW5jb2RlZCBzdHJpbmcuCisgICAgICogQHBhcmFtIHNvdXJjZSBTdHJpbmdCdWZmZXIgaW4gcXVlc3Rpb24uCisgICAgICogQHJldHVybiBpbnQgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIHRoaXMgc3RyaW5nCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY291bnRDb2RlUG9pbnQoU3RyaW5nQnVmZmVyIHNvdXJjZSkgCisgICAgeyAgICAgICAgIAorICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgYm9vbGVhbiBoYWRMZWFkU3Vycm9nYXRlID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgKysgaSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChoYWRMZWFkU3Vycm9nYXRlICYmIDB4ZGMwMCA8PSBjaCAmJiBjaCA8PSAweGRmZmYpIHsKKyAgICAgICAgICAgICAgICBoYWRMZWFkU3Vycm9nYXRlID0gZmFsc2U7ICAgICAgICAgICAvLyBjb3VudCB2YWxpZCB0cmFpbCBhcyB6ZXJvCisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaGFkTGVhZFN1cnJvZ2F0ZSA9ICgweGQ4MDAgPD0gY2ggJiYgY2ggPD0gMHhkYmZmKTsKKyAgICAgICAgICAgICAgICArKyByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb3VudCBvdGhlcnMgYXMgMQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSB2YWx1ZSBmb3IgU3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFICA9IDB4MTAwMDA7ICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGhvdyBtYW55IGNoYXJzIHRoaXMgY2hhcjMyIHJlcXVpcmVzLgorICAgICAqIElmIGEgdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZSA8Y29kZT4KKyAgICAgKiA8YSBocmVmPSIuLi9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4gb24gCisgICAgICogY2hhcjMyIGJlZm9yZSBjYWxsaW5nLgorICAgICAqIEBwYXJhbSBjaGFyMzIgdGhlIGlucHV0IGNvZGVwb2ludC4KKyAgICAgKiBAcmV0dXJuIDIgaWYgaXMgaW4gc3VwcGxlbWVudGFyeSBzcGFjZSwgb3RoZXJ3aXNlIDEuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENoYXJDb3VudChpbnQgY2hhcjMyKSAKKyAgICB7CisgICAgICAgIGlmIChjaGFyMzIgPCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDI7CisgICAgfQorICAgIC8qKgorICAgICAqIExlYWQgc3Vycm9nYXRlIG1heGltdW0gdmFsdWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUgPSAweERCRkY7CisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgbWluaW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA9IDB4RDgwMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUcmFpbCBzdXJyb2dhdGUgbWluaW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUgPSAweERDMDA7IAorICAgIC8qKgorICAgICAqIFRyYWlsIHN1cnJvZ2F0ZSBtYXhpbXVtIHZhbHVlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSA9IDB4REZGRjsKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvZGUgdmFsdWUgaXMgYSBzdXJyb2dhdGUuCisgICAgICogQHBhcmFtIGNoYXIxNiB0aGUgaW5wdXQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZmYgdGhlIGlucHV0IGNoYXJhY3RlciBpcyBhIHN1cnJvZ2F0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNTdXJyb2dhdGUoY2hhciBjaGFyMTYpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA8PSBjaGFyMTYgJiYgCisgICAgICAgICAgICBjaGFyMTYgPD0gVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgY2hhcmFjdGVyIGlzIGEgdHJhaWwgc3Vycm9nYXRlLgorICAgICAqIEBwYXJhbSBjaGFyMTYgdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWZmIHRoZSBpbnB1dCBjaGFyYWN0ZXIgaXMgYSB0cmFpbCBzdXJyb2dhdGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVHJhaWxTdXJyb2dhdGUoY2hhciBjaGFyMTYpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIChUUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFIDw9IGNoYXIxNiAmJiAKKyAgICAgICAgICAgICAgICBjaGFyMTYgPD0gVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNoYXJhY3RlciBpcyBhIGxlYWQgc3Vycm9nYXRlLgorICAgICAqIEBwYXJhbSBjaGFyMTYgdGhlIGlucHV0IGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWZmIHRoZSBpbnB1dCBjaGFyYWN0ZXIgaXMgYSBsZWFkIHN1cnJvZ2F0ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xlYWRTdXJyb2dhdGUoY2hhciBjaGFyMTYpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA8PSBjaGFyMTYgJiYgCisgICAgICAgICAgICBjaGFyMTYgPD0gTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFOworICAgIH0KKyAgICAvKioKKyAgICAgKiBFeHRyYWN0IGEgc2luZ2xlIFVURi0zMiB2YWx1ZSBmcm9tIGEgc3Vic3RyaW5nLgorICAgICAqIFVzZWQgd2hlbiBpdGVyYXRpbmcgZm9yd2FyZHMgb3IgYmFja3dhcmRzICh3aXRoCisgICAgICogPGNvZGU+VVRGMTYuZ2V0Q2hhckNvdW50KCk8L2NvZGU+LCBhcyB3ZWxsIGFzIHJhbmRvbSBhY2Nlc3MuIElmIGEKKyAgICAgKiB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlIAorICAgICAqIDxjb2RlPjxhIGhyZWY9Ii4uL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5VQ2hhcmFjdGVyLmlzTGVnYWwoKQorICAgICAqIDwvYT48L2NvZGU+IG9uIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICogSWYgdGhlIGNoYXIgcmV0cmlldmVkIGlzIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgaXRzIHN1cHBsZW1lbnRhcnkKKyAgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcyAKKyAgICAgKiBub3QgZm91bmQgdGhlIGluY29tcGxldGUgY2hhcmFjdGVyIHdpbGwgYmUgcmV0dXJuZWQKKyAgICAgKiBAcGFyYW0gc291cmNlIGFycmF5IG9mIFVURi0xNiBjaGFycworICAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgdG8gc3Vic3RyaW5nIGluIHRoZSBzb3VyY2UgYXJyYXkgZm9yIGFuYWx5emluZworICAgICAqIEBwYXJhbSBsaW1pdCBvZmZzZXQgdG8gc3Vic3RyaW5nIGluIHRoZSBzb3VyY2UgYXJyYXkgZm9yIGFuYWx5emluZworICAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYtMTYgb2Zmc2V0IHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgICogQHJldHVybiBVVEYtMzIgdmFsdWUgZm9yIHRoZSBVVEYtMzIgdmFsdWUgdGhhdCBjb250YWlucyB0aGUgY2hhciBhdAorICAgICAqICAgICAgICAgb2Zmc2V0MTYuIFRoZSBib3VuZGFyaWVzIG9mIHRoYXQgY29kZXBvaW50IGFyZSB0aGUgc2FtZSBhcyBpbgorICAgICAqICAgICAgICAgPGNvZGU+Ym91bmRzMzIoKTwvY29kZT4uCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBub3Qgd2l0aGluIAorICAgICAqICAgICAgICAgICAgdGhlIHJhbmdlIG9mIHN0YXJ0IGFuZCBsaW1pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjaGFyQXQoY2hhciBzb3VyY2VbXSwgaW50IHN0YXJ0LCBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBvZmZzZXQxNiArPSBzdGFydDsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgc3RhcnQgfHwgb2Zmc2V0MTYgPj0gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2hhciBzaW5nbGUgPSBzb3VyY2Vbb2Zmc2V0MTZdOworICAgICAgICBpZiAoIWlzU3Vycm9nYXRlKHNpbmdsZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzaW5nbGU7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb252ZXJ0IHRoZSBVVEYtMTYgc3Vycm9nYXRlIHBhaXIgaWYgbmVjZXNzYXJ5LgorICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSBpbiB1c2FnZSwgYW5kIGJlY2F1c2UgdGhlIGZyZXF1ZW5jeSBvZiBwYWlycyBpcyAKKyAgICAgICAgLy8gbG93LCBsb29rIGJvdGggZGlyZWN0aW9ucy4gICAgICAKKyAgICAgICAgaWYgKHNpbmdsZSA8PSBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIG9mZnNldDE2ICsrOworICAgICAgICAgICAgaWYgKG9mZnNldDE2ID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBzb3VyY2Vbb2Zmc2V0MTZdOworICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUodHJhaWwpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldFJhd1N1cHBsZW1lbnRhcnkoc2luZ2xlLCB0cmFpbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeyAvLyBpc1RyYWlsU3Vycm9nYXRlKHNpbmdsZSksIHNvCisgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPT0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2luZ2xlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb2Zmc2V0MTYgLS07CisgICAgICAgICAgICBjaGFyIGxlYWQgPSBzb3VyY2Vbb2Zmc2V0MTZdOworICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShsZWFkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0UmF3U3VwcGxlbWVudGFyeShsZWFkLCBzaW5nbGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzaW5nbGU7IC8vIHJldHVybiB1bm1hdGNoZWQgc3Vycm9nYXRlCisgICAgfQorICAgIC8qKgorICAgICAqIFNoaWZ0IHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSB0byBmb3JtIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX1NISUZUXyA9IDEwOworICAgIAorICAgIC8qKiAKKyAgICAgKiBPZmZzZXQgdG8gYWRkIHRvIGNvbWJpbmVkIHN1cnJvZ2F0ZSBwYWlyIHRvIGF2b2lkIG1za2luZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX09GRlNFVF8gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFIC0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFIDw8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVBRF9TVVJST0dBVEVfU0hJRlRfKSAtIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRTsgICAKKworICAgIAorICAgLyoqCisgICAgKiBGb3JtcyBhIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCBmcm9tIHRoZSBhcmd1bWVudCBjaGFyYWN0ZXI8YnI+CisgICAgKiBOb3RlIHRoaXMgaXMgZm9yIGludGVybmFsIHVzZSBoZW5jZSBubyBjaGVja3MgZm9yIHRoZSB2YWxpZGl0eSBvZiB0aGUKKyAgICAqIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIGFyZSBkb25lCisgICAgKiBAcGFyYW0gbGVhZCBsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAqIEBwYXJhbSB0cmFpbCB0cmFpbGluZyBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgKiBAcmV0dXJuIGNvZGUgcG9pbnQgb2YgdGhlIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRSYXdTdXBwbGVtZW50YXJ5KGNoYXIgbGVhZCwgY2hhciB0cmFpbCkKKyAgICB7CisgICAgICAgIHJldHVybiAobGVhZCA8PCBMRUFEX1NVUlJPR0FURV9TSElGVF8pICsgdHJhaWwgKyBTVVJST0dBVEVfT0ZGU0VUXzsKKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvYmlnZGVjL0RpYWdCaWdEZWNpbWFsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvYmlnZGVjL0RpYWdCaWdEZWNpbWFsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjNiNzFmMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9iaWdkZWMvRGlhZ0JpZ0RlY2ltYWwuamF2YQpAQCAtMCwwICsxLDUzNTkgQEAKKy8vIyNoZWFkZXIKKy8qIEdlbmVyYXRlZCBmcm9tICdEaWFnQmlnRGVjaW1hbC5ucngnIDI3IE1hciAyMDAwIDIyOjM4OjQ0IFt2MS4xNjJdICovCisvKiBPcHRpb25zOiBCaW5hcnkgQ29tbWVudHMgQ3Jvc3NyZWYgRm9ybWF0IEphdmEgTG9nbyBUcmFjZTEgVmVyYm9zZTMgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuYmlnZGVjOworaW1wb3J0IGphdmEubWF0aC5CaWdJbnRlZ2VyOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogRGVjaW1hbCBkaWFnbm9zdGljIHRlc3RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZjICovCisvKiBDb3B5cmlnaHQgKGMpIElCTSBDb3Jwb3JhdGlvbiAxOTk2LTIwMDUuICBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogRGlhZ0JpZ0RlY2ltYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgQSBjbGFzcyB0aGF0IHRlc3RzIHRoZSBCaWdEZWNpbWFsIGFuZCBNYXRoQ29udGV4dCBjbGFzc2VzLiAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgIFRoZSB0ZXN0cyBoZXJlIGFyZSBkZXJpdmVkIGZyb20gb3IgY292ZXIgdGhlIHNhbWUgcGF0aHMgYXM6ICAgICAgKi8KKy8qICAgICAgLS0gQU5TSSBYMy0yNzQgdGVzdGNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAtLSBKYXZhIEpDSyB0ZXN0Y2FzZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgIC0tIE5ldFJleHggdGVzdGNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgLS0gVk0vQ01TIFMvMzcwIFJFWFggaW1wbGVtZW50YXRpb24gdGVzdGNhc2VzIFsxOTgxK10gICAgICAgICAqLworLyogICAgICAtLSBJQk0gVmllbm5hIExhYm9yYXRvcnkgUmV4eCBjb21waWxlciB0ZXN0Y2FzZXMgWzE5ODgrXSAgICAgICovCisvKiAgICAgIC0tIE5ldyB0ZXN0Y2FzZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICBUaGUgYXV0aG9yaXRhdGl2ZSBzb3VyY2VzIGZvciBob3cgdGhlIHVuZGVybHlpbmcgdGVjaG5vbG9neSAgICAgICovCisvKiAgIChhcml0aG1ldGljKSBzaG91bGQgd29yayBhcmU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgLS0gZm9yIGRpZ2l0cz0wIChmaXhlZCBwb2ludCk6IGphdmEubWF0aC5CaWdEZWNpbWFsICAgICAgICAgICAqLworLyogICAgICAtLSBmb3IgZGlnaXRzPjAgKGZsb2F0aW5nIHBvaW50KTogQU5TSSBYMy4yNzQtMTk5NiArIGVycmF0YSAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogQ2hhbmdlIGxpc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk3LjA5LjA1IEluaXRpYWwgaW1wbGVtZW50YXRpb24sIGZyb20gRGlhZ1JleHggW05ldFJleHggdGVzdHNdICAgKi8KKy8qIDE5OTguMDUuMDIgMC4wNyBjaGFuZ2VzIChlLmcuLCBjb21wYXJlVG8pICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNi4wNiBSb3VuZGluZyBtb2RlcyBhbmQgZm9ybWF0IGFkZGl0aW9ucyAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjA2LjI1IFJlbmFtZSBmcm9tIERpYWdEZWNpbWFsOyBtYWtlIHN0YW5kLWFsb25lIFthZGQgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgRGlhZ0V4Y2VwdGlvbiBhcyBhIE1pbm9yIGNsYXNzXSAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNi4yNyBTdGFydCBhZGRpbmcgdGVzdGNhc2VzIGZvciBESUdJVFM9MC9GT1JNPVBMQUlOIGNhc2VzICAgICovCisvKiAgICAgICAgICAgIFJlb3JnYW5pemUgZm9yIGZhc3RlciB0cmFjZSBjb21waWxhdGlvbiAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMDYuMjggbmV3OiB2YWx1ZW9mLCBzY2FsZSwgbW92ZVBvaW50WCwgdW5zY2FsZWRWYWx1ZSwgZXRjLiAgICAqLworLyogMTk5OC4wNy4wNyBTY2FsZWQgZGl2aWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjA3LjA4IHNldFNjYWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMDcuMTUgbmV3IHNjYWZmb2xkaW5nIChNaW5vciBUZXN0IGNsYXNzKSAtLSBzZWUgZGlhZ2FicyAgICAgICAqLworLyogMTk5OC4xMi4xNCBhZGQgdG9CaWdEZWNpbWFsIGFuZCBCaWdEZWNpbWFsKGphdmEubWF0aC5CaWdEZWNpbWFsKSAgICovCisvKiAxOTk5LjAyLjA0IG51bWJlciBwcmVwYXJhdGlvbiByb3VuZHMgaW5zdGVhZCBvZiBkaWdpdHMrMSB0cnVuYyAgICAgKi8KKy8qIDE5OTkuMDIuMDkgZm9ybWF0IG1ldGhvZCBub3cgb25seSBoYXMgdHdvIHNpZ25hdHVyZXMgICAgICAgICAgICAgICAqLworLyogMTk5OS4wMi4yNyBubyBsb25nZXIgdXNlIFJleHggY2xhc3Mgb3IgUmV4eElPIGNsYXNzICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjAzLjA1IGFkZCBNYXRoQ29udGV4dCB0ZXN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDMuMDUgdXBkYXRlIGZvciAwLjk2IFtubyBudWxsIHNldHRpbmdzLCBldGMuXSAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICBkcm9wIHN1bmRyeSBjb25zdHJ1Y3RvcnM7IG5vIGJsYW5rczsgY2hhcltdIGdldHMgaW50cyAgICovCisvKiAgICAgICAgICAgIGRyb3Agc3VuZHJ5IGNvbnZlcnRlcnMsIGFkZCBFeGFjdCBjb252ZXJ0ZXJzICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDUuMjcgYWRkaXRpb25hbCB0ZXN0cyBmb3Igc2NhbGVkIGFyaXRobWV0aWMgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wNi4yOSBhZGRpdGlvbmFsIHRlc3RzIGZvciBleHBvbmVudCBvdmVyZmxvd3MgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjA3LjAzIGFkZCAnY29udGludWUnIG9wdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDcuMTAgYWRkaXRpb25hbCB0ZXN0cyBmb3Igc2NhbGVkIGFyaXRobWV0aWMgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wNy4xOCByYW5kb21seS1nZW5lcmF0ZWQgdGVzdHMgYWRkZWQgZm9yIGJhc2Ugb3BlcmF0b3JzICAgICAgICovCisvKiAxOTk5LjEwLjI4IHdlaXJkIGludFZhbHVlRXhhY3QgYmFkIGNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMTIuMjEgbXVsdGlwbGljYXRpb24gZmFzdCBwYXRoIGZhaWx1cmUgYW5kIGVkZ2UgY2FzZXMgICAgICAgICAqLworLyogMjAwMC4wMS4wMSBjb3B5cmlnaHQgdXBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAyMDAwLjAzLjI2IGNvc21ldGljIHVwZGF0ZXM7IGFkZCBleHRyYSBmb3JtYXQoKSB0ZXN0Y2FzZXMgICAgICAgICAgKi8KKy8qIDIwMDAuMDMuMjcgMS4wMCBtb3ZlIHRvIGNvbS5pYm0uaWN1Lm1hdGggcGFja2FnZTsgb3BlbiBzb3VyY2UgcmVsZWFzZTsgKi8KKy8qICAgICAgICAgICAgICAgICBjaGFuZ2UgdG8gamF2YWRvYyBjb21tZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8vIG5vdGUgQklOQVJZIGZvciBjb252ZXJzaW9ucyBjaGVja2luZworCisKKworCisvKioKKyAqIFRoZSA8Y29kZT5EaWFnQmlnRGVjaW1hbDwvY29kZT4gY2xhc3MgZm9ybXMgYSBzdGFuZGFsb25lIHRlc3Qgc3VpdGUKKyAqIGZvciB0aGUgPGNvZGU+Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsPC9jb2RlPiBhbmQKKyAqIDxjb2RlPmNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQ8L2NvZGU+IGNsYXNzZXMgKG9yLCBieSBjaGFuZ2luZyB0aGUKKyAqIDxjb2RlPnBhY2thZ2U8L2NvZGU+IHN0YXRlbWVudCwgb3RoZXIgY2xhc3NlcyBvZiB0aGUgc2FtZSBuYW1lcyBhbmQKKyAqIGRlZmluaXRpb24gaW4gb3RoZXIgcGFja2FnZXMpLiAgSXQgbWF5IGFsc28gYmUgdXNlZCBhcyBhIGNvbnN0cnVjdGVkCisgKiBvYmplY3QgdG8gZW1iZWQgdGhlIHRlc3RzIGluIGFuIGV4dGVybmFsIHRlc3QgaGFybmVzcy4KKyAqIDxwPgorICogVGhlIHRlc3RzIGFyZSBjb2xsZWN0ZWQgaW50byA8aT5ncm91cHM8L2k+LCBlYWNoIGNvcnJlc3BvbmRpbmcgdG8gYQorICogdGVzdGVkIG1ldGhvZCBvciBhIG1vcmUgZ2VuZXJhbCBncm91cGluZy4gIEJ5IGRlZmF1bHQsIHdoZW4gcnVuIGZyb20KKyAqIHRoZSBzdGF0aWMge0BsaW5rICNtYWluKGphdmEubGFuZy5TdHJpbmdbXSl9IG1ldGhvZCwgdGhlIHJ1biB3aWxsIGVuZAorICogaWYgYW55IHRlc3QgZmFpbHMgaW4gYSBncm91cC4gIFRoZSA8Y29kZT5jb250aW51ZTwvY29kZT4gYXJndW1lbnQgbWF5CisgKiBiZSBzcGVjaWZpZWQgdG8gZm9yY2UgdGhlIHRlc3RzIHRvIHJ1biB0byBjb21wbGV0aW9uLgorICogPHA+CisgKiBUd28gbWlub3IgKGlubmVyKSBjbGFzc2VzIGFyZSB1c2VkOyB7QGxpbmsKKyAqIERpYWdCaWdEZWNpbWFsLkRpYWdFeGNlcHRpb259IGlzIHVzZWQgdG8gc2lnbmFsIHRoZSBmYWlsdXJlIG9mIGEgdGVzdAorICogZ3JvdXAsIGFuZCB7QGxpbmsgRGlhZ0JpZ0RlY2ltYWwuVGVzdH0sIGEgZGVwZW5kZW50IG1pbm9yIGNsYXNzLCBpcworICogdXNlZCB0byByZWdpc3RlciB0ZXN0cyBzbyB0aGF0IGEgc3VtbWFyeSBvZiBmYWlsdXJlcyAob3Igc3VjY2VzcykgY2FuIGJlCisgKiBwcmVzZW50ZWQgYXMgZWFjaCBncm91cCBpcyBjb21wbGV0ZWQuCisgKgorICogQHNlZSAgICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsCisgKiBAc2VlICAgICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0CisgKiBAdmVyc2lvbiAxLjAwIDIwMDAuMDMuMjcKKyAqIEBhdXRob3IgIE1pa2UgQ293bGlzaGF3CisgKi8KKworcHVibGljIGNsYXNzIERpYWdCaWdEZWNpbWFsIGV4dGVuZHMgVGVzdEZtd2t7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyAkMD0iRGlhZ0JpZ0RlY2ltYWwubnJ4IjsKKyAKKyAvKiBwcm9wZXJ0aWVzIHNoYXJlZCAqLworIGphdmEudXRpbC5WZWN0b3IgVGVzdHM9bmV3IGphdmEudXRpbC5WZWN0b3IoMTAwKTsgLy8gc2NhZmZvbGRpbmcKKyAKKyAvKiBwcm9wZXJ0aWVzIHByaXZhdGUgKi8KKyBwcml2YXRlIGludCB0b3RhbGNvdW50PTA7IC8vIGNvdW50cyB0ZXN0cyBydW4KKyAKKyAvKiBwcm9wZXJ0aWVzIGNvbnN0YW50IHByaXZhdGUgKi8KKyAKKyAvKiBDb3VudCBvZiB0ZXN0IGdyb3VwcyAqLworIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCB0ZXN0Y291bnQ9Mzg7CisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHplcm89Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlpFUk87CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG9uZT1jb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB0d289bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgdGVuPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5URU47CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHRlbmxvbmc9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgobG9uZykxMjM0NTU0MzIxKTsgLy8gMTAtZGlnaXRlcgorIAorIC8qIFNvbWUgY29udGV4dCBvYmplY3RzIC0tIFtzb21lIG9mIHRoZXNlIGFyZSBjaGVja2VkIGxhdGVyXSAqLworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNkZWY9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxUOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWMzPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDMpOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWM2PW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDYpOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWM5PW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDkpOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWM1MD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCg1MCk7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY3M9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoOSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMpOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNlPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDksY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5FTkdJTkVFUklORyk7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY2xkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDksY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLHRydWUpOyAvLyBsb3N0IGRpZ2l0cworIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNsZDA9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsdHJ1ZSk7IC8vIGxvc3QgZGlnaXRzLCBkaWdpdHM9MAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNmZD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pOyAvLyBmaXhlZCBkZWNpbWFsIHN0eWxlCisgCisgLyogYm91bmRhcnkgcHJpbWl0aXZlIHZhbHVlcyAqLworIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgYm1pbj0tMTI4OworIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgYm1heD0xMjc7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBiemVyPTA7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBibmVnPS0xOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgYnBvcz0xOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBpbWluPS0yMTQ3NDgzNjQ4OworIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBpbWF4PTIxNDc0ODM2NDc7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGl6ZXI9MDsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW5lZz0tMTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaXBvcz0xOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbG1pbj0tOTIyMzM3MjAzNjg1NDc3NTgwOEw7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBsbWF4PTkyMjMzNzIwMzY4NTQ3NzU4MDdMOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbHplcj0obG9uZykwOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbG5lZz0obG9uZyktMTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGxwb3M9KGxvbmcpMTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBzbWluPS0zMjc2ODsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBzbWF4PTMyNzY3OworIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IHN6ZXI9KHNob3J0KTA7CisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgc25lZz0oc2hvcnQpKC0xKTsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBzcG9zPShzaG9ydCkxOworIAorIAorIC8qIHByb3BlcnRpZXMgY29uc3RhbnQgcHJpdmF0ZSB1bnVzZWQgKi8gLy8gcHJlc2VudCBidXQgbm90IHJlZmVyZW5jZWQKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIGNvcHlyaWdodD0iIENvcHlyaWdodCAoYykgSUJNIENvcnBvcmF0aW9uIDE5OTYsIDIwMDAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiAiOworCisgCisgLyoqIENvbnN0cnVjdHMgYSA8Y29kZT5EaWFnQmlnRGVjaW1hbDwvY29kZT4gdGVzdCBzdWl0ZS4KKyAgICogPHA+CisgICAqIEludm9rZSBpdHMge0BsaW5rICNkaWFncnVufSBtZXRob2QgdG8gcnVuIHRoZSB0ZXN0cy4KKyAgICovCisgCisgcHVibGljIERpYWdCaWdEZWNpbWFsKCl7c3VwZXIoKTsKKyB9CisKKyBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0pESzE1T3JMYXRlciA9IFZlcnNpb25JbmZvLmphdmFWZXJzaW9uKCkuY29tcGFyZVRvKFZlcnNpb25JbmZvLmdldEluc3RhbmNlKDEsNSkpID49IDA7CisKKyAvKiogUnVuIHRoZSB0ZXN0cyBpbiB0aGUgdGVzdCBzdWl0ZS4KKyAgKgorICAqIEBwYXJhbSBpc0NvbnRpbnVlIFRoZSA8Y29kZT5ib29sZWFuPC9jb2RlPiB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIKKyAgKiAgICAgICAgICAgICAgICAgICB0byBzdG9wIHJ1bm5pbmcgYWZ0ZXIgYSBncm91cCBmYWlscy4gIElmIDEgKHRydWUpCisgICogICAgICAgICAgICAgICAgICAgdGhlbiB0aGUgdGVzdHMgc2hvdWxkIGJlIHJ1biB0byBjb21wbGV0aW9uIGlmCisgICogICAgICAgICAgICAgICAgICAgcG9zc2libGU7IGlmIDAgKGZhbHNlKSB0aGVuIHRoZSBydW4gd2lsbCBlbmQgaWYgYQorICAqICAgICAgICAgICAgICAgICAgIGdyb3VwIGZhaWxzLgorICAqIEByZXR1cm4gYW4gPGNvZGU+aW50PC9jb2RlPiB3aGljaCBpcyAwIGlmIGFsbCB0ZXN0cyB3ZXJlCisgICogc3VjY2Vzc2Z1bCwgPjAgKHRoZSBjb3VudCBvZiBmYWlsdXJlcykgaWYgc29tZSBmYWlsdXJlcyB3ZXJlCisgICogZGV0ZWN0ZWQsIG9yIDwwIGlmIGFuIHVuZXhwZWN0ZWQgRXhjZXB0aW9uIHdhcyBzaWduYWxsZWQuCisgICovCisKKyBwdWJsaWMgaW50IGRpYWdydW4oYm9vbGVhbiBpc0NvbnRpbnVlKXsKKyAgaW50IGZhaWxzOworICBpbnQgbnVtPTA7CisgIERpYWdFeGNlcHRpb24gZGU9bnVsbDsKKyAgamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gZT1udWxsOworICBqYXZhLmxhbmcuU3RyaW5nIHJlc3Q9bnVsbDsKKyAgCisgIGZhaWxzPTA7IC8vIGNvdW50IG9mIGZhaWx1cmVzCisgIHRyeXtudW09MTtudW06Zm9yKDtudW08PXRlc3Rjb3VudDtudW0rKyl7IC8vIFt0ZXN0Y291bnQgaXMgY29uc3RhbnQgc2V0IGFib3ZlXQorICAgdHJ5eworICAgIGRvdGVzdChudW0pOworICAgfQorICAgY2F0Y2ggKERpYWdFeGNlcHRpb24gJDEpe2RlPSQxOworICAgIHNheSgpOworICAgIGVycmxuKCIqKioqIEZhaWxlZDoiKyIgIitkZS5nZXRNZXNzYWdlKCkrIiAiKyIqKioqIik7CisgICAgc2F5KCk7CisgICAgZmFpbHM9ZmFpbHMrZGUuZmFpbGNvdW50OworICAgIGlmICgoIWlzQ29udGludWUpKSAKKyAgICAgYnJlYWsgbnVtOworICAgfQorICAgfQorICB9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkMil7ZT0kMjsgLy8gYW55IG90aGVyIGV4Y2VwdGlvbiBpcyB0b3RhbCBmYWlsdXJlOyBqdXN0IHNob3cgdHJhY2UgYW5kIHF1aXQKKyAgIHNheSgpOworICAgZXJybG4oIioqKiogRmFpbGVkOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAqKioqIik7CisgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgcmV0dXJuIC0xOworICB9LypudW0qLworICAKKyAgaWYgKGZhaWxzPT0wKSAKKyAgIHNheSgiLS0tIEFsbCBPSyAtLS0iKyIgIityaWdodCgiWyIrdG90YWxjb3VudCsiICIrInRlc3RzXSIsMTUpKTsKKyAgZWxzZSAKKyAgIHsKKyAgICBpZiAoaXNDb250aW51ZSkgCisgICAgIHsKKyAgICAgIGlmIChmYWlscz4xKSAKKyAgICAgICByZXN0PSJ0ZXN0cyI7CisgICAgICBlbHNlIAorICAgICAgIHJlc3Q9InRlc3QiOworICAgICAgc2F5KCItLS0gQWxsIHJ1biAtLS0iKyIgIityaWdodCgiWyIrdG90YWxjb3VudCsiICIrInRlc3RzLCIsMTQpKyIgIisiZmFpbGVkIisiICIrZmFpbHMrIiAiK3Jlc3QrIl0iKTsKKyAgICAgCisgICAgIH0KKyAgIH0KKyAgCisgIHJldHVybiBmYWlsczsKKyAgfQorCisgLyogUnVuIHRlc3QgYnkgbnVtYmVyIC0tIG1ldGhvZCBmb3IgZGV2ZWxvcG1lbnQvcHJpdmF0ZSBzd2l0Y2hpbmcgKi8KKyAKKyBwcml2YXRlIHZvaWQgZG90ZXN0KGludCBudW0peworICB7LypzZWxlY3QqL3N3aXRjaChudW0peworICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgIC8qIE1hdGhDb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICBjYXNlIDE6CisgICBkaWFnbWF0aGNvbnRleHQoKTticmVhazsKKyAgIAorICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgIC8qIENvbnN0cnVjdG9ycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICBjYXNlIDI6CisgICBkaWFnY29uc3RydWN0b3JzKCk7YnJlYWs7CisgICAKKyAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAvKiBPcGVyYXRvciBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgY2FzZSAzOgorICAgZGlhZ2FicygpO2JyZWFrOworICBjYXNlIDQ6CisgICBkaWFnYWRkKCk7YnJlYWs7CisgIGNhc2UgNToKKyAgIGRpYWdjb21wYXJldG8oKTticmVhazsKKyAgY2FzZSA2OgorICAgZGlhZ2RpdmlkZSgpO2JyZWFrOworICBjYXNlIDc6CisgICBkaWFnZGl2aWRlSW50ZWdlcigpO2JyZWFrOworICBjYXNlIDg6CisgICBkaWFnbWF4KCk7YnJlYWs7CisgIGNhc2UgOToKKyAgIGRpYWdtaW4oKTticmVhazsKKyAgY2FzZSAxMDoKKyAgIGRpYWdtdWx0aXBseSgpO2JyZWFrOworICBjYXNlIDExOgorICAgZGlhZ25lZ2F0ZSgpO2JyZWFrOworICBjYXNlIDEyOgorICAgZGlhZ3BsdXMoKTticmVhazsKKyAgY2FzZSAxMzoKKyAgIGRpYWdwb3coKTticmVhazsKKyAgY2FzZSAxNDoKKyAgIGRpYWdyZW1haW5kZXIoKTticmVhazsKKyAgY2FzZSAxNToKKyAgIGRpYWdzdWJ0cmFjdCgpO2JyZWFrOworICBjYXNlIDE2OgorICAgZGlhZ21hdGgoKTticmVhazsgLy8gZ2VuZXJhbCBtYXRoCisgICAKKyAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAvKiBPdGhlciBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgY2FzZSAxNzoKKyAgIGRpYWdieXRlVmFsdWUoKTticmVhazsKKyAgY2FzZSAxODoKKyAgIGRpYWdjb21wYXJldG9PYmooKTticmVhazsKKyAgY2FzZSAxOToKKyAgIGRpYWdkb3VibGV2YWx1ZSgpO2JyZWFrOworICBjYXNlIDIwOgorICAgZGlhZ2VxdWFscygpO2JyZWFrOworICBjYXNlIDIxOgorICAgZGlhZ2Zsb2F0dmFsdWUoKTticmVhazsKKyAgY2FzZSAyMjoKKyAgIGRpYWdmb3JtYXQoKTticmVhazsKKyAgY2FzZSAyMzoKKyAgIGRpYWdoYXNoY29kZSgpO2JyZWFrOworICBjYXNlIDI0OgorICAgZGlhZ2ludHZhbHVlKCk7YnJlYWs7CisgIGNhc2UgMjU6CisgICBkaWFnbG9uZ3ZhbHVlKCk7YnJlYWs7CisgIGNhc2UgMjY6CisgICBkaWFnbW92ZXBvaW50bGVmdCgpO2JyZWFrOworICBjYXNlIDI3OgorICAgZGlhZ21vdmVwb2ludHJpZ2h0KCk7YnJlYWs7CisgIGNhc2UgMjg6CisgICBkaWFnc2NhbGUoKTticmVhazsKKyAgY2FzZSAyOToKKyAgIGRpYWdzZXRzY2FsZSgpO2JyZWFrOworICBjYXNlIDMwOgorICAgZGlhZ3Nob3J0dmFsdWUoKTticmVhazsKKyAgY2FzZSAzMToKKyAgIGRpYWdzaWdudW0oKTticmVhazsKKyAgY2FzZSAzMjoKKyAgIGRpYWd0b2JpZ2RlY2ltYWwoKTticmVhazsKKyAgY2FzZSAzMzoKKyAgIGRpYWd0b2JpZ2ludGVnZXIoKTticmVhazsKKyAgY2FzZSAzNDoKKyAgIGRpYWd0b2NoYXJhcnJheSgpO2JyZWFrOworICBjYXNlIDM1OgorICAgZGlhZ3Rvc3RyaW5nKCk7YnJlYWs7CisgIGNhc2UgMzY6CisgICBkaWFndW5zY2FsZWR2YWx1ZSgpO2JyZWFrOworICBjYXNlIDM3OgorICAgZGlhZ3ZhbHVlb2YoKTticmVhazsKKyAgIAorICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgIC8qIE11dGF0aW9uIHRlc3QgW211c3QgYmUgdGhlIGxhc3QgdGVzdF0gICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICBjYXNlIDM4OgorICAgZGlhZ211dGF0aW9uKCk7YnJlYWs7CisgICAvLyBpZiBhbnkgbW9yZSwgaW5jcmVhc2UgdGVzdGNvdW50IGFib3ZlCisgIGRlZmF1bHQ6eworICAgc2F5KCIqKiogZG90ZXN0IGNhc2Ugbm90IGZvdW5kOiIrIiAiK251bSsiICIrIioqKiIpOworICB9fQorICB9CisgIHJldHVybjsKKyAgfQorCisgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgLyogRGlhZ25vc3RpYyBncm91cCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgCisgLyoqIFRlc3QgY29uc3RydWN0b3JzIChhbmQge0BsaW5rICN0b1N0cmluZygpfSBmb3IgZXF1YWxpdGllcykuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2NvbnN0cnVjdG9ycygpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5TdHJpbmcgbnVtOworICBqYXZhLm1hdGguQmlnSW50ZWdlciBiaXA7CisgIGphdmEubWF0aC5CaWdJbnRlZ2VyIGJpejsKKyAgamF2YS5tYXRoLkJpZ0ludGVnZXIgYmluOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYmRhOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYmRiOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYm1jOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYm1kOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYm1lOworICBqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiBlPW51bGw7CisgIGNoYXIgY2FbXTsKKyAgZG91YmxlIGR6ZXI7CisgIGRvdWJsZSBkcG9zOworICBkb3VibGUgZG5lZzsKKyAgZG91YmxlIGRwb3M1OworICBkb3VibGUgZG5lZzU7CisgIGRvdWJsZSBkbWluOworICBkb3VibGUgZG1heDsKKyAgZG91YmxlIGQ7CisgIGphdmEubGFuZy5TdHJpbmcgYmFkc3RyaW5nc1tdOworICBpbnQgaT0wOworICAKKyAgLy8gY29uc3RhbnRzIFtzdGF0aWNhbGx5LWNhbGxlZCBjb25zdHJ1Y3RvcnNdCisgIChuZXcgVGVzdCgiY29uMDAxIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuWkVSTy50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjb24wMDIiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiY29uMDAzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJjb24wMDQiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5aRVJPLmludFZhbHVlRXhhY3QoKSk9PTA7CisgIChuZXcgVGVzdCgiY29uMDA1IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmludFZhbHVlRXhhY3QoKSk9PTE7CisgIChuZXcgVGVzdCgiY29uMDA2IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOLmludFZhbHVlRXhhY3QoKSk9PTEwOworICAKKyAgLy8gW2phdmEubWF0aC5dIEJpZ0RlY2ltYWwKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgIChuZXcgVGVzdCgiY2JkMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNiZDAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIxIikpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJjYmQwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMTAiKSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJjYmQwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwIik7CisgIChuZXcgVGVzdCgiY2JkMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjAiKSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAuMCIpOworICAobmV3IFRlc3QoImNiZDAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIxMC4xIikpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwLjEiKTsKKyAgKG5ldyBUZXN0KCJjYmQwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiLTEuMSIpKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMS4xIik7CisgIChuZXcgVGVzdCgiY2JkMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIi05LjAiKSkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTkuMCIpOworICAobmV3IFRlc3QoImNiZDAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIwLjkiKSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Iik7CisgIAorICBudW09IjEyMzQ1Njc4OS4xMjM0NTY3ODkiOworICAobmV3IFRlc3QoImNiZDAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKG51bSkpKS50b1N0cmluZygpKS5lcXVhbHMobnVtKTsKKyAgbnVtPSIxMjM0NTY3ODkuMDAwMDAwMDAwIjsKKyAgKG5ldyBUZXN0KCJjYmQwMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbChudW0pKSkudG9TdHJpbmcoKSkuZXF1YWxzKG51bSk7CisgIG51bT0iMTIzNDU2Nzg5MDAwMDAwMDAwIjsKKyAgKG5ldyBUZXN0KCJjYmQwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbChudW0pKSkudG9TdHJpbmcoKSkuZXF1YWxzKG51bSk7CisgIG51bT0iMC4wMDAwMDEyMzQ1Njc4OSI7CisgIChuZXcgVGVzdCgiY2JkMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwobnVtKSkpLnRvU3RyaW5nKCkpLmVxdWFscyhudW0pOworICBudW09IjAuMDAwMDAwMTIzNDU2Nzg5IjsKKworICAvLyBpZ25vcmUgZm9ybWF0IGNoYW5nZSBpc3N1ZXMgd2l0aCAxLjUKKyAgaWYgKCFpc0pESzE1T3JMYXRlcikKKyAgICAgIChuZXcgVGVzdCgiY2JkMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwobnVtKSkpLnRvU3RyaW5nKCkpLmVxdWFscyhudW0pOworICAKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGphdmEubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDMpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImNiaTAxNSIpKS5vaz1mbGFnOworLy8jZW5kaWYKKyAgCisgIC8vIEJpZ0ludGVnZXIKKyAgYmlwPW5ldyBCaWdJbnRlZ2VyKCI5ODc2NTQzMjE5ODc2NTQzMjE5ODc2NTQzMjEiKTsgLy8gYmlnZ2llICt2ZQorICBiaXo9bmV3IEJpZ0ludGVnZXIoIjAiKTsgLy8gYmlnZ2llIDAKKyAgYmluPW5ldyBCaWdJbnRlZ2VyKCItMTIzNDU2Nzg5OTg3NjU0MzIxMTIzNDU2NzgiKTsgLy8gYmlnZ2llIC12ZQorICAobmV3IFRlc3QoImNiaTAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmlwKSkudG9TdHJpbmcoKSkuZXF1YWxzKGJpcC50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJjYmkwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpeikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNiaTAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmluKSkudG9TdHJpbmcoKSkuZXF1YWxzKGJpbi50b1N0cmluZygpKTsKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGphdmEubWF0aC5CaWdJbnRlZ2VyKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDQpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImNiaTAwNCIpKS5vaz1mbGFnOworICAKKyAgLy8gQmlnSW50ZWdlciB3aXRoIHNjYWxlCisgIGJpcD1uZXcgQmlnSW50ZWdlcigiMTIzNDU2Nzg5Iik7IC8vIGJpZ2lzaAorICBiZGE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXApOworICBiZGI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXAsNSk7CisgIGJtYz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpcCwxNSk7CisgIChuZXcgVGVzdCgiY2JzMDAxIikpLm9rPShiZGEudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkiKTsKKyAgKG5ldyBUZXN0KCJjYnMwMDIiKSkub2s9KGJkYi50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQuNTY3ODkiKTsKKyAgKG5ldyBUZXN0KCJjYnMwMDMiKSkub2s9KGJtYy50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMTIzNDU2Nzg5Iik7CisgIGJpcD1uZXcgQmlnSW50ZWdlcigiMTIzNDU2Nzg5MTIzNDU2Nzg5MTIzNDU2Nzg5Iik7IC8vIGJpZ2dpZQorICBiZGE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXApOworICBiZGI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXAsNyk7CisgIGJtYz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpcCwxMyk7CisgIGJtZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpcCwxOSk7CisgIGJtZT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJpcCwyOSk7CisgIChuZXcgVGVzdCgiY2JzMDExIikpLm9rPShiZGEudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkxMjM0NTY3ODkxMjM0NTY3ODkiKTsKKyAgKG5ldyBUZXN0KCJjYnMwMTIiKSkub2s9KGJkYi50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4OTEyMzQ1Njc4OTEyLjM0NTY3ODkiKTsKKyAgKG5ldyBUZXN0KCJjYnMwMTMiKSkub2s9KGJtYy50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4OTEyMzQ1LjY3ODkxMjM0NTY3ODkiKTsKKyAgKG5ldyBUZXN0KCJjYnMwMTQiKSkub2s9KGJtZC50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4LjkxMjM0NTY3ODkxMjM0NTY3ODkiKTsKKyAgKG5ldyBUZXN0KCJjYnMwMTUiKSkub2s9KGJtZS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAxMjM0NTY3ODkxMjM0NTY3ODkxMjM0NTY3ODkiKTsKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGphdmEubWF0aC5CaWdJbnRlZ2VyKW51bGwsMSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkNSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgiY2JzMDA0IikpLm9rPWZsYWc7CisgIHRyeXtjaGVja3NjYWxlOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChiaXAsLTgpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkNil7ZT0kNjsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIk5lZ2F0aXZlIHNjYWxlOiAtOCIpOworICB9LypjaGVja3NjYWxlKi8KKyAgKG5ldyBUZXN0KCJjYnMwMDUiKSkub2s9ZmxhZzsKKyAgCisgIC8vIGNoYXJbXQorICAvLyBXZSBqdXN0IHRlc3QgaXQncyB0aGVyZQorICAvLyBGdW5jdGlvbmFsaXR5IGlzIHRlc3RlZCBieSBCaWdEZWNpbWFsKFN0cmluZykuCisgIGNhPSgiMTIzLjQ1IikudG9DaGFyQXJyYXkoKTsKKyAgKG5ldyBUZXN0KCJjY2EwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjMuNDUiKTsKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGNoYXJbXSludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ3KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJjY2EwMTAiKSkub2s9ZmxhZzsKKyAgCisgIC8vIGNoYXJbXSxpbnQsaW50CisgIC8vIFdlIGp1c3QgdGVzdCBpdCdzIHRoZXJlLCBhbmQgdGhhdCBvZmZzZXRzIHdvcmsuCisgIC8vIEZ1bmN0aW9uYWxpdHkgaXMgdGVzdGVkIGJ5IEJpZ0RlY2ltYWwoU3RyaW5nKS4KKyAgY2E9KCIxMjMuNDUiKS50b0NoYXJBcnJheSgpOworICAobmV3IFRlc3QoImNjYTEwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMCw2KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjMuNDUiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDEsNSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMjMuNDUiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDIsNCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMy40NSIpOworICAobmV3IFRlc3QoImNjYTEwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMywzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ1Iik7CisgIChuZXcgVGVzdCgiY2NhMTA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSw0LDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjQ1Iik7CisgIChuZXcgVGVzdCgiY2NhMTA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSw1LDEpKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgCisgIChuZXcgVGVzdCgiY2NhMTEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwwLDEpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDEsMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImNjYTExMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMiwxKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgiY2NhMTEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSw0LDEpKS50b1N0cmluZygpKS5lcXVhbHMoIjQiKTsKKyAgCisgIChuZXcgVGVzdCgiY2NhMTIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwwLDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyIik7CisgIChuZXcgVGVzdCgiY2NhMTIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwxLDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzIik7CisgIChuZXcgVGVzdCgiY2NhMTIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwyLDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDMsMikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIAorICAobmV3IFRlc3QoImNjYTEzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMCwzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjMiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDEsMykpLnRvU3RyaW5nKCkpLmVxdWFscygiMjMiKTsKKyAgKG5ldyBUZXN0KCJjY2ExMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDIsMykpLnRvU3RyaW5nKCkpLmVxdWFscygiMy40Iik7CisgIAorICAobmV3IFRlc3QoImNjYTE0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMCw0KSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjMiKTsKKyAgKG5ldyBUZXN0KCJjY2ExNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDEsNCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMjMuNCIpOworICAKKyAgKG5ldyBUZXN0KCJjY2ExNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDAsNSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzLjQiKTsKKyAgCisgIC8vIGEgY291cGxlIG9mIG9kZGllcworICBjYT0oIngyMy40eCIpLnRvQ2hhckFycmF5KCk7CisgIChuZXcgVGVzdCgiY2NhMTYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwxLDQpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzLjQiKTsKKyAgKG5ldyBUZXN0KCJjY2ExNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDEsMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImNjYTE2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsNCwxKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI0Iik7CisgIAorICBjYT0oIjAxMjM0NTY3ODkuOTg3NjU0MzIxMCIpLnRvQ2hhckFycmF5KCk7CisgIChuZXcgVGVzdCgiY2NhMTYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChjYSwwLDIxKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkuOTg3NjU0MzIxMCIpOworICAobmV3IFRlc3QoImNjYTE2NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMSwyMCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2Nzg5Ljk4NzY1NDMyMTAiKTsKKyAgKG5ldyBUZXN0KCJjY2ExNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDIsMTkpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzNDU2Nzg5Ljk4NzY1NDMyMTAiKTsKKyAgKG5ldyBUZXN0KCJjY2ExNjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDIsMTgpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzNDU2Nzg5Ljk4NzY1NDMyMSIpOworICAobmV3IFRlc3QoImNjYTE2NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoY2EsMiwxNykpLnRvU3RyaW5nKCkpLmVxdWFscygiMjM0NTY3ODkuOTg3NjU0MzIiKTsKKyAgKG5ldyBUZXN0KCJjY2ExNjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhLDIsMTYpKS50b1N0cmluZygpKS5lcXVhbHMoIjIzNDU2Nzg5Ljk4NzY1NDMiKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKChjaGFyW10pbnVsbCwwLDEpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDgpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImNjYTIwMCIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrbGVuOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzIi50b0NoYXJBcnJheSgpLDAsMCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gJDkpeworICAgZmxhZz10cnVlOworICB9LypjaGVja2xlbiovCisgIChuZXcgVGVzdCgiY2NhMjAxIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tib3VuZDpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMyIudG9DaGFyQXJyYXkoKSwyLDQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkMTApeyAvLyBhbnl0aGluZyBPSworICAgZmxhZz10cnVlOworICB9LypjaGVja2JvdW5kKi8KKyAgKG5ldyBUZXN0KCJjY2EyMDIiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrYm91bmQyOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzIi50b0NoYXJBcnJheSgpLC0xLDIpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkMTEpeyAvLyBhbnl0aGluZyBPSworICAgZmxhZz10cnVlOworICB9LypjaGVja2JvdW5kMiovCisgIChuZXcgVGVzdCgiY2NhMjAzIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2JvdW5kMzpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMyIudG9DaGFyQXJyYXkoKSwxLC0yKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gJDEyKXsgLy8gYW55dGhpbmcgT0sKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tib3VuZDMqLworICAobmV3IFRlc3QoImNjYTIwNCIpKS5vaz1mbGFnOworICAKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgIC8vIGRvdWJsZSBbZGVwcmVjYXRlZF0KKyAgLy8gTm90ZSB0aGF0IG1hbnkgb2YgdGhlc2UgZGlmZmVyIGZyb20gdGhlIHZhbHVlT2YoZG91YmxlKSByZXN1bHRzLgorICBkemVyPShkb3VibGUpMDsKKyAgZHBvcz0oZG91YmxlKTE7CisgIGRwb3M9ZHBvcy8oKGRvdWJsZSkxMCk7CisgIGRuZWc9KGRvdWJsZSktZHBvczsKKyAgKG5ldyBUZXN0KCJjZG8wMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGRuZWcpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjEwMDAwMDAwMDAwMDAwMDAwNTU1MTExNTEyMzEyNTc4MjcwMjExODE1ODM0MDQ1NDEwMTU2MjUiKTsKKyAgCisgIChuZXcgVGVzdCgiY2RvMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkemVyKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7IC8vIE5CLCBub3QgJzAuMCcKKyAgKG5ldyBUZXN0KCJjZG8wMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGRwb3MpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAwMDAwMDAwMDAwMDAwMDA1NTUxMTE1MTIzMTI1NzgyNzAyMTE4MTU4MzQwNDU0MTAxNTYyNSIpOworICAKKyAgZHBvczU9KGRvdWJsZSkwLjVEOworICBkbmVnNT0oZG91YmxlKS1kcG9zNTsKKyAgKG5ldyBUZXN0KCJjZG8wMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGRuZWc1KSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC41Iik7CisgIChuZXcgVGVzdCgiY2RvMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkcG9zNSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIGRtaW49amF2YS5sYW5nLkRvdWJsZS5NSU5fVkFMVUU7CisgIGRtYXg9amF2YS5sYW5nLkRvdWJsZS5NQVhfVkFMVUU7CisgIGlmICghaXNKREsxNU9yTGF0ZXIpIC8vIGZvciBzb21lIHJlYXNvbiB3ZSBmb3JtYXQgdXNpbmcgc2NpZW50aWZpYyBub3RhdGlvbiBvbiAxLjUgYWZ0ZXIgMzAgZGVjaW1hbHMgb3Igc28KKyAgICAgIChuZXcgVGVzdCgiY2RvMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkbWluKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDk0MDY1NjQ1ODQxMjQ2NTQ0MTc2NTY4NzkyODY4MjIxMzcyMzY1MDU5ODAyNjE0MzI0NzY0NDI1NTg1NjgyNTAwNjc1NTA3MjcwMjA4NzUxODY1Mjk5ODM2MzYxNjM1OTkyMzc5Nzk2NTY0Njk1NDQ1NzE3NzMwOTI2NjU2NzEwMzU1OTM5Nzk2Mzk4Nzc0Nzk2MDEwNzgxODc4MTI2MzAwNzEzMTkwMzExNDA0NTI3ODQ1ODE3MTY3ODQ4OTgyMTAzNjg4NzE4NjM2MDU2OTk4NzMwNzIzMDUwMDA2Mzg3NDA5MTUzNTY0OTg0Mzg3MzEyNDczMzk3MjczMTY5NjE1MTQwMDMxNzE1Mzg1Mzk4MDc0MTI2MjM4NTY1NTkxMTcxMDI2NjU4NTU2Njg2NzY4MTg3MDM5NTYwMzEwNjI0OTMxOTQ1MjcxNTkxNDkyNDU1MzI5MzA1NDU2NTQ0NDAxMTI3NDgwMTI5NzA5OTk5NTQxOTMxOTg5NDA5MDgwNDE2NTYzMzI0NTI0NzU3MTQ3ODY5MDE0NzI2NzgwMTU5MzU1MjM4NjExNTUwMTM0ODAzNTI2NDkzNDcyMDE5Mzc5MDI2ODEwNzEwNzQ5MTcwMzMzMjIyNjg0NDc1MzMzNTcyMDgzMjQzMTkzNjA5MjM4Mjg5MzQ1ODM2ODA2MDEwNjAxMTUwNjE2OTgwOTc1MzA3ODM0MjI3NzMxODMyOTI0NzkwNDk4MjUyNDczMDc3NjM3NTkyNzI0Nzg3NDY1NjA4NDc3ODIwMzczNDQ2OTY5OTUzMzY0NzAxNzk3MjY3NzcxNzU4NTEyNTY2MDU1MTE5OTEzMTUwNDg5MTEwMTQ1MTAzNzg2MjczODE2NzI1MDk1NTgzNzM4OTczMzU5ODk5MzY2NDgwOTk0MTE2NDIwNTcwMjYzNzA5MDI3OTI0Mjc2NzU0NDU2NTIyOTA4NzUzODY4MjUwNjQxOTcxODI2NTUzMzQ0NzI2NTYyNSIpOworICAKKyAgKG5ldyBUZXN0KCJjZG8wMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGRtYXgpKS50b1N0cmluZygpKS5lcXVhbHMoIjE3OTc2OTMxMzQ4NjIzMTU3MDgxNDUyNzQyMzczMTcwNDM1Njc5ODA3MDU2NzUyNTg0NDk5NjU5ODkxNzQ3NjgwMzE1NzI2MDc4MDAyODUzODc2MDU4OTU1ODYzMjc2Njg3ODE3MTU0MDQ1ODk1MzUxNDM4MjQ2NDIzNDMyMTMyNjg4OTQ2NDE4Mjc2ODQ2NzU0NjcwMzUzNzUxNjk4NjA0OTkxMDU3NjU1MTI4MjA3NjI0NTQ5MDA5MDM4OTMyODk0NDA3NTg2ODUwODQ1NTEzMzk0MjMwNDU4MzIzNjkwMzIyMjk0ODE2NTgwODU1OTMzMjEyMzM0ODI3NDc5NzgyNjIwNDE0NDcyMzE2ODczODE3NzE4MDkxOTI5OTg4MTI1MDQwNDAyNjE4NDEyNDg1ODM2OCIpOworICAKKyAgCisgIC8vIG5hc3RpZXMKKyAgZD0oZG91YmxlKTk7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgiY2RvMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjkwMDAwMDAwMDAwMDAwMDAyMjIwNDQ2MDQ5MjUwMzEzMDgwODQ3MjYzMzM2MTgxNjQwNjI1Iik7CisgIAorICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoImNkbzAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wODk5OTk5OTk5OTk5OTk5OTY2NjkzMzA5MjYxMjQ1MzAzNzg3MjkxMDQ5OTU3Mjc1MzkwNjI1Iik7CisgIAorICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoImNkbzAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDg5OTk5OTk5OTk5OTk5OTkzMTk5ODgzOTc0MTcwOTE2MTg5OTA1MjU2MDMyOTQzNzI1NTg1OTM3NSIpOworICAKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJjZG8wMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGQpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwODk5OTk5OTk5OTk5OTk5OTc1MzY2OTI2NjQxMTI5MzM5MjU5MzUwNjcyMzY0MjM0OTI0MzE2NDA2MjUiKTsKKyAgCisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgiY2RvMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDA4OTk5OTk5OTk5OTk5OTk5MjExNTY4MTgwMTY4NTQxMTc1NTg5NzgwMzIzMjA3Mzc4Mzg3NDUxMTcxODc1Iik7CisgIAorICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoImNkbzAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDg5OTk5OTk5OTk5OTk5OTg1MzM5NDE4MjIzNjUxMDA5MDQzMzUxMjIzMjI2NjM2NjQ4MTc4MTAwNTg1OTM3NSIpOworICAKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgaWYgKCFpc0pESzE1T3JMYXRlcikKKyAgICAgIChuZXcgVGVzdCgiY2RvMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDg5OTk5OTk5OTk5OTk5OTg1MzM5NDE4MjIzNjUxMDA5MDQzMzUxMjIzMjI2NjM2NjQ4MTc4MTAwNTg1OTM3NSIpOworICAKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgaWYgKCFpc0pESzE1T3JMYXRlcikKKyAgICAgIChuZXcgVGVzdCgiY2RvMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChkKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDA4OTk5OTk5OTk5OTk5OTk4NTMzOTQxODIyMzY1MTAwOTA0MzM1MTIyMzIyNjYzNjY0ODE3ODEwMDU4NTkzNzUiKTsKKyAgCisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIGlmICghaXNKREsxNU9yTGF0ZXIpCisgICAgICAobmV3IFRlc3QoImNkbzAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoZCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDg5OTk5OTk5OTk5OTk5OTc4NzIxOTczMzIzMjI2Nzg3NjQ0Mzc5OTUzNjkwMDc2OTQ1MzQ5NTc0MDg5MDUwMjkyOTY4NzUiKTsKKy8vI2VuZGlmCisgIAorICB0cnl7Y2hlY2twaW46ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGphdmEubGFuZy5Eb3VibGUuUE9TSVRJVkVfSU5GSU5JVFkpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uICQxMyl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrcGluKi8KKyAgKG5ldyBUZXN0KCJjZG8xMDEiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbmluOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChqYXZhLmxhbmcuRG91YmxlLk5FR0FUSVZFX0lORklOSVRZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkMTQpeworICAgZmxhZz10cnVlOworICB9LypjaGVja25pbiovCisgIChuZXcgVGVzdCgiY2RvMTAyIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja25hbjpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoamF2YS5sYW5nLkRvdWJsZS5OYU4pOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uICQxNSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbmFuKi8KKyAgKG5ldyBUZXN0KCJjZG8xMDMiKSkub2s9ZmxhZzsKKyAgCisgIC8vIGludAorICAobmV3IFRlc3QoImNpbjAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1pbikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIxNDc0ODM2NDgiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpKS50b1N0cmluZygpKS5lcXVhbHMoIjIxNDc0ODM2NDciKTsKKyAgKG5ldyBUZXN0KCJjaW4wMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGluZWcpKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgiY2luMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpemVyKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY2luMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpcG9zKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiY2luMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxMCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDkpKS50b1N0cmluZygpKS5lcXVhbHMoIjkiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDUpKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKC0yKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMiIpOworICAobmV3IFRlc3QoImNpbjAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoLTUpKS50b1N0cmluZygpKS5lcXVhbHMoIi01Iik7CisgIChuZXcgVGVzdCgiY2luMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgtOSkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTkiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKC0xMCkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwIik7CisgIChuZXcgVGVzdCgiY2luMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgtMTEpKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMSIpOworICAobmV3IFRlc3QoImNpbjAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoLTk5KSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTkiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKC0xMDApKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMDAiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKC05OTkpKS50b1N0cmluZygpKS5lcXVhbHMoIi05OTkiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKC0xMDAwKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJjaW4wMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDExKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMSIpOworICAobmV3IFRlc3QoImNpbjAyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoOTkpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5Iik7CisgIChuZXcgVGVzdCgiY2luMDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxMDApKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMCIpOworICAobmV3IFRlc3QoImNpbjAyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoOTk5KSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTkiKTsKKyAgKG5ldyBUZXN0KCJjaW4wMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDEwMDApKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgCisgIC8vIGxvbmcKKyAgKG5ldyBUZXN0KCJjbG8wMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxtaW4pKS50b1N0cmluZygpKS5lcXVhbHMoIi05MjIzMzcyMDM2ODU0Nzc1ODA4Iik7CisgIChuZXcgVGVzdCgiY2xvMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWF4KSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MjIzMzcyMDM2ODU0Nzc1ODA3Iik7CisgIChuZXcgVGVzdCgiY2xvMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbmVnKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoImNsbzAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobHplcikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNsbzAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobHBvcykpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgLy8gU3RyaW5nIFttYW55IG1vcmUgZXhhbXBsZXMgYXJlIGVsc2V3aGVyZV0KKyAgLy8gc3RyaW5ncyB3aXRob3V0IEUgY2Fubm90IGdlbmVyYXRlIEUgaW4gcmVzdWx0CisgIChuZXcgVGVzdCgiY3N0MDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMiIpOworICAobmV3IFRlc3QoImNzdDAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi03NiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi03NiIpOworICAobmV3IFRlc3QoImNzdDAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjc2IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIuNzYiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMTIuNzYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMi43NiIpOworICAobmV3IFRlc3QoImNzdDAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAxMi43NiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyLjc2Iik7CisgIChuZXcgVGVzdCgiY3N0MDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzAuMDAzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDMiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxNy4iKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxNyIpOworICAobmV3IFRlc3QoImNzdDAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi41IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgiY3N0MDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDQ0IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNDQiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMDQ0IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNDQiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDUiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wMDAwNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDA1Iik7CisgIChuZXcgVGVzdCgiY3N0MDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwMDA1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDA1Iik7IC8vIFxOUgorICAobmV3IFRlc3QoImNzdDAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwMDUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDA1Iik7IC8vIFxOUgorICAobmV3IFRlc3QoImNzdDAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4Ljg3NjU0MzIxMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4Ljg3NjU0MzIxMCIpOworICAobmV3IFRlc3QoImNzdDAxNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIzNDU2NzguODc2NTQzMjEwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMjM0NTY3OC44NzY1NDMyMTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDU2NzguODc2NTQzMjEwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMzQ1Njc4Ljg3NjU0MzIxMCIpOworICAobmV3IFRlc3QoImNzdDAxOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAzNDU2NzguODc2NTQzMjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzNDU2NzguODc2NTQzMjEiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDU2NzguODc2NTQzMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM0NTY3OC44NzY1NDMyIik7CisgIChuZXcgVGVzdCgiY3N0MDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzM0NTY3OC44NzY1NDMyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMzQ1Njc4Ljg3NjU0MzIiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMDM0NTY3OC44NzY1NDMyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMzQ1Njc4Ljg3NjU0MzIiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMDAzNDU2NzguODc2NTQzMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM0NTY3OC44NzY1NDMyIik7CisgIChuZXcgVGVzdCgiY3N0MDI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTM0NTY3OC44NzY1NDMyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTM0NTY3OC44NzY1NDMyIik7CisgIChuZXcgVGVzdCgiY3N0MDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAzNDU2NzguODc2NTQzMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0zNDU2NzguODc2NTQzMiIpOworICAobmV3IFRlc3QoImNzdDAyNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wMDM0NTY3OC44NzY1NDMyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTM0NTY3OC44NzY1NDMyIik7CisgIAorICAvLyBleG90aWNzIC0tCisgIChuZXcgVGVzdCgiY3N0MDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiXHUwZTU3Llx1MGU1MCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjcuMCIpOworICAobmV3IFRlc3QoImNzdDAzNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIlx1MGI2Ni5cdTBiNjciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJjc3QwMzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCJcdTBiNjZcdTBiNjYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiY3N0MDM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiXHUwYjZhXHUwYjY2IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNDAiKTsKKyAgCisgIC8vIHN0cmluZ3Mgd2l0aCBFCisgIChuZXcgVGVzdCgiY3N0MDQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZSswOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRSs5MCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkwIik7CisgIChuZXcgVGVzdCgiY3N0MDQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzFFKzAwOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwRSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNzdDA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MDQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUrMDkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5Iik7CisgIChuZXcgVGVzdCgiY3N0MDQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUrOTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5MCIpOworICAobmV3IFRlc3QoImNzdDA0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzAwOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwRSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImNzdDA1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZTA5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOSIpOworICAobmV3IFRlc3QoImNzdDA1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFOTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5MCIpOworICAobmV3IFRlc3QoImNzdDA1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFMDA5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOSIpOworICAobmV3IFRlc3QoImNzdDA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjBFOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMGUrMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMEUtMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0RSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNEUrOSIpOworICAobmV3IFRlc3QoImNzdDA1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQ0RSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNC40RSsxMCIpOworICAobmV3IFRlc3QoImNzdDA1OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNzNlLTciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI3LjNFLTgiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMEUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMEUtOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMEUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMEUrMTAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMEUrMDkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjBFKzEwIik7CisgIChuZXcgVGVzdCgiY3N0MDY0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTBlKzkwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wRSs5MSIpOworICAobmV3IFRlc3QoImNzdDA2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwRSswMDkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjBFKzEwIik7CisgIChuZXcgVGVzdCgiY3N0MDY2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMEUrMTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDBlKzA5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMEUrMTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDBFKzkwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMEUrOTIiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDBlKzAwOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDBFKzExIik7CisgIAorICAobmV3IFRlc3QoImNzdDA3MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUtMjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMjAiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUtOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS04Iik7CisgIChuZXcgVGVzdCgiY3N0MDczIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFLTQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtNCIpOworICAobmV3IFRlc3QoImNzdDA3NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RS0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTMiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUtMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0yIik7CisgIChuZXcgVGVzdCgiY3N0MDc2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMSIpOworICAobmV3IFRlc3QoImNzdDA3NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RS0wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QwNzgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUrMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxIik7CisgIChuZXcgVGVzdCgiY3N0MDc5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFKzIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMiIpOworICAobmV3IFRlc3QoImNzdDA4MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RSszIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzMiKTsKKyAgKG5ldyBUZXN0KCJjc3QwODEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjI2NUUrNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs0Iik7CisgIChuZXcgVGVzdCgiY3N0MDgyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNjVFKzgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrOCIpOworICAobmV3IFRlc3QoImNzdDA4MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjY1RSsyMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsyMCIpOworICAKKyAgKG5ldyBUZXN0KCJjc3QwOTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEyLjY1Iik7CisgIChuZXcgVGVzdCgiY3N0MDkxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFLTIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTE5Iik7CisgIChuZXcgVGVzdCgiY3N0MDkyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFLTgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtNyIpOworICAobmV3IFRlc3QoImNzdDA5MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RS00IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTMiKTsKKyAgKG5ldyBUZXN0KCJjc3QwOTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUtMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0yIik7CisgIChuZXcgVGVzdCgiY3N0MDk1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFLTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMSIpOworICAobmV3IFRlc3QoImNzdDA5NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RS0xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QwOTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUtMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxIik7CisgIChuZXcgVGVzdCgiY3N0MDk4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFKzEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMiIpOworICAobmV3IFRlc3QoImNzdDA5OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RSsyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzMiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUrMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs0Iik7CisgIChuZXcgVGVzdCgiY3N0MTAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuNjVFKzQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNSIpOworICAobmV3IFRlc3QoImNzdDEwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjY1RSs4IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzkiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi42NUUrMjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMjEiKTsKKyAgCisgIChuZXcgVGVzdCgiY3N0MTEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjYuNSIpOworICAobmV3IFRlc3QoImNzdDExMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RS0yMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0xOCIpOworICAobmV3IFRlc3QoImNzdDExMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RS04IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTYiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUtNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0yIik7CisgIChuZXcgVGVzdCgiY3N0MTE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjVFLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMSIpOworICAobmV3IFRlc3QoImNzdDExNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RS0yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjUiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUtMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxIik7CisgIChuZXcgVGVzdCgiY3N0MTE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjVFLTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMiIpOworICAobmV3IFRlc3QoImNzdDExOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RSsxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzMiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUrMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs0Iik7CisgIChuZXcgVGVzdCgiY3N0MTIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2LjVFKzMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrNSIpOworICAobmV3IFRlc3QoImNzdDEyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RSs0IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzYiKTsKKyAgKG5ldyBUZXN0KCJjc3QxMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjYuNUUrOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxMCIpOworICAobmV3IFRlc3QoImNzdDEyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNi41RSsyMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsyMiIpOworICAKKyAgKG5ldyBUZXN0KCJjc3QxMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjY1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTI2NSIpOworICAobmV3IFRlc3QoImNzdDEzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFLTIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTE3Iik7CisgIChuZXcgVGVzdCgiY3N0MTMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUtOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS01Iik7CisgIChuZXcgVGVzdCgiY3N0MTMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUtNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0xIik7CisgIChuZXcgVGVzdCgiY3N0MTM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUtMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1Iik7CisgIChuZXcgVGVzdCgiY3N0MTM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUtMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxIik7CisgIChuZXcgVGVzdCgiY3N0MTM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUtMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsyIik7CisgIChuZXcgVGVzdCgiY3N0MTM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUtMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSszIik7CisgIChuZXcgVGVzdCgiY3N0MTM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUrMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs0Iik7CisgIChuZXcgVGVzdCgiY3N0MTM5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUrMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs1Iik7CisgIChuZXcgVGVzdCgiY3N0MTQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUrMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs2Iik7CisgIChuZXcgVGVzdCgiY3N0MTQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUrNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs3Iik7CisgIChuZXcgVGVzdCgiY3N0MTQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI2NUUrOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxMSIpOworICAobmV3IFRlc3QoImNzdDE0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyNjVFKzIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzIzIik7CisgIAorICAobmV3IFRlc3QoImNzdDE1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTI2NSIpOworICAobmV3IFRlc3QoImNzdDE1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUtMjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMjEiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFLTgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtOSIpOworICAobmV3IFRlc3QoImNzdDE1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUtNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS01Iik7CisgIChuZXcgVGVzdCgiY3N0MTU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RS0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTQiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFLTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUtMyIpOworICAobmV3IFRlc3QoImNzdDE1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUtMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RS0yIik7CisgIChuZXcgVGVzdCgiY3N0MTU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RS0wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFLTEiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFKzEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NSIpOworICAobmV3IFRlc3QoImNzdDE1OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUrMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxIik7CisgIChuZXcgVGVzdCgiY3N0MTYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RSszIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yNjVFKzIiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyNjVFKzQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjI2NUUrMyIpOworICAobmV3IFRlc3QoImNzdDE2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTI2NUUrOCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSs3Iik7CisgIChuZXcgVGVzdCgiY3N0MTYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMjY1RSsyMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjY1RSsxOSIpOworICAKKyAgKG5ldyBUZXN0KCJjc3QxNzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA5ZTk5OTk5OTk5OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjlFKzk5OTk5OTk5NyIpOworICAobmV3IFRlc3QoImNzdDE3MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOWU5OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5RSs5OTk5OTk5OTgiKTsKKyAgKG5ldyBUZXN0KCJjc3QxNzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5ZTk5OTk5OTk5OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjlFKzk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImNzdDE3MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOWU5OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5LjlFKzk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImNzdDE3NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTllOTk5OTk5OTk5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45OUUrOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgiY3N0MTc1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OWUtOTk5OTk5OTk5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45OUUtOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgiY3N0MTc2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45ZS05OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5LjlFLTk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImNzdDE3NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjllLTk5OTk5OTk5OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjlFLTk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImNzdDE3OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5ZS05OTk5OTk5OTkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5LjlFLTk5OTk5OTk5OCIpOworICAobmV3IFRlc3QoImNzdDE4MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OWUtOTk5OTk5OTk5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45OUUtOTk5OTk5OTk3Iik7CisgIAorICAvLyBiYWRkaWVzIC0tCisgIGJhZHN0cmluZ3M9bmV3IGphdmEubGFuZy5TdHJpbmdbXXsiMS4uMiIsIi4iLCIuLiIsIisrMSIsIi0tMSIsIi0rMSIsIistMSIsIjEyZSIsIjEyZSsrIiwiMTJmNCIsIiArMSIsIisgMSIsIjEyICIsIiArIDEiLCIgLSAxICIsIngiLCItMS0iLCIxMi0iLCIzKyIsIiIsIjFlLSIsIjdlMTAwMDAwMDAwMCIsIiIsImUxMDAiLCJcdTBlNWEiLCJcdTBiNjUiLCI5OWU5OTk5OTk5OTkiLCI5OTllOTk5OTk5OTk5IiwiMC45ZS05OTk5OTk5OTkiLCIwLjA5ZS05OTk5OTk5OTkiLCIwLjFlMTAwMDAwMDAwMCIsIjEwZS0xMDAwMDAwMDAwIiwiMC45ZTk5OTk5OTk5OTkiLCI5OWUtOTk5OTk5OTk5OSIsIjExMWU5OTk5OTk5OTk5IiwiMTExMWUtOTk5OTk5OTk5OSIrIiAiKyIxMTFlKjEyMyIsIjExMWUxMjMtIiwiMTExZSsxMisiLCIxMTFlMS0zLSIsIjExMWUxKjIzIiwiMTExZTFlKzMiLCIxZTEuMCIsIjFlMTIzZSIsInRlbiIsIk9ORSIsIjFlLjEiLCIxZTEuIiwiMWVlIiwiZSsxIn07IC8vIDIwMC0yMDMKKyAgLy8gMjA0LTIwNworICAvLyAyMDgtMjExCisgIC8vIDIxMS0yMTQKKyAgLy8gMjE1LTIxOQorICAvLyAyMjAtMjIyCisgIC8vIDIyMy0yMjQKKyAgLy8gMjI1LTIyNgorICAvLyAyMjctMjI4CisgIC8vIDIyOS0yMzAKKyAgLy8gMjMxLTIzMgorICAvLyAyMzMtMjM0CisgIC8vIDIzNS0yMzcKKyAgLy8gMjM4LTI0MAorICAvLyAyNDEtMjQ0CisgIC8vIDI0NS0yNDgKKyAgCisgIC8vIHdhdGNoIG91dCBmb3IgY29tbWFzIG9uIGNvbnRpbnVhdGlvbiBsaW5lcworICAKKyAge2ludCAkMTY9YmFkc3RyaW5ncy5sZW5ndGg7aT0wO2k6Zm9yKDskMTY+MDskMTYtLSxpKyspeworICAgdHJ5eworICAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmFkc3RyaW5nc1tpXSk7CisgICAgc2F5KCI+Pj4gY3N0IisoMjAwK2kpKyI6IisiICIrYmFkc3RyaW5nc1tpXSsiICIrKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYmFkc3RyaW5nc1tpXSkpLnRvU3RyaW5nKCkpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkMTcpeworICAgIGZsYWc9dHJ1ZTsKKyAgIH0KKyAgIChuZXcgVGVzdCgiY3N0IisoMjAwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgoamF2YS5sYW5nLlN0cmluZyludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQxOCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgiY3N0MzAxIikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJDb25zdHJ1Y3RvcnMiKTsKKyAgcmV0dXJuOworICB9CisKKyAvKiogTXV0YXRpb24gdGVzdHMgKGNoZWNrcyB0aGF0IGNvbnRlbnRzIG9mIGNvbnN0YW50IG9iamVjdHMgYXJlIHVuY2hhbmdlZCkuICovCisgCisgcHVibGljIHZvaWQgZGlhZ211dGF0aW9uKCl7CisgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgLyogRmluYWwgdGVzdHMgLS0gY2hlY2sgY29uc3RhbnRzIGhhdmVuJ3QgbXV0YXRlZCAgICAgICAgICAgICAgICAgICAqLworICAvKiAgICAgICAgICAgICAtLSBhbHNvIHRoYXQgTUMgb2JqZWN0cyBoYXZlbid0IG11dGF0ZWQgICAgICAgICAgICAgICovCisgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgKG5ldyBUZXN0KCJjdWMwMDEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5aRVJPLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImN1YzAwMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJjdWMwMDMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5URU4udG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAKKyAgKG5ldyBUZXN0KCJjdWMwMTAiKSkub2s9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlJPVU5EX0NFSUxJTkc9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORzsKKyAgKG5ldyBUZXN0KCJjdWMwMTEiKSkub2s9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlJPVU5EX0RPV049PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTjsKKyAgKG5ldyBUZXN0KCJjdWMwMTIiKSkub2s9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlJPVU5EX0ZMT09SPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SOworICAobmV3IFRlc3QoImN1YzAxMyIpKS5vaz1jb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9ET1dOPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTjsKKyAgKG5ldyBUZXN0KCJjdWMwMTQiKSkub2s9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlJPVU5EX0hBTEZfRVZFTj09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU47CisgIChuZXcgVGVzdCgiY3VjMDE1IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5ST1VORF9IQUxGX1VQPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIChuZXcgVGVzdCgiY3VjMDE2IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5ST1VORF9VTk5FQ0VTU0FSWT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWTsKKyAgKG5ldyBUZXN0KCJjdWMwMTciKSkub2s9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlJPVU5EX1VQPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQOworICAKKyAgKG5ldyBUZXN0KCJjdWMwMjAiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVC5nZXREaWdpdHMoKSk9PTk7CisgIChuZXcgVGVzdCgiY3VjMDIxIikpLm9rPShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQuZ2V0Rm9ybSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDOworICAobmV3IFRlc3QoImN1YzAyMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldExvc3REaWdpdHMoKT8xOjApPT0wOworICAobmV3IFRlc3QoImN1YzAyMyIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldFJvdW5kaW5nTW9kZSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQOworICAKKyAgLy8gbWM5ICA9TWF0aENvbnRleHQoOSkKKyAgLy8gbWNsZCA9TWF0aENvbnRleHQoOSwgU0NJRU5USUZJQywgMSkKKyAgLy8gbWNmZCA9TWF0aENvbnRleHQoMCwgUExBSU4pCisgIChuZXcgVGVzdCgiY3VjMDMwIikpLm9rPShtYzkuZ2V0RGlnaXRzKCkpPT05OworICAobmV3IFRlc3QoImN1YzAzMSIpKS5vaz0obWM5LmdldEZvcm0oKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQzsKKyAgKG5ldyBUZXN0KCJjdWMwMzIiKSkub2s9KG1jOS5nZXRMb3N0RGlnaXRzKCk/MTowKT09MDsKKyAgKG5ldyBUZXN0KCJjdWMwMzMiKSkub2s9KG1jOS5nZXRSb3VuZGluZ01vZGUoKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDsKKyAgKG5ldyBUZXN0KCJjdWMwMzQiKSkub2s9KG1jbGQuZ2V0RGlnaXRzKCkpPT05OworICAobmV3IFRlc3QoImN1YzAzNSIpKS5vaz0obWNsZC5nZXRGb3JtKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUM7CisgIChuZXcgVGVzdCgiY3VjMDM2IikpLm9rPShtY2xkLmdldExvc3REaWdpdHMoKT8xOjApPT0xOworICAobmV3IFRlc3QoImN1YzAzNyIpKS5vaz0obWNsZC5nZXRSb3VuZGluZ01vZGUoKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDsKKyAgKG5ldyBUZXN0KCJjdWMwMzgiKSkub2s9KG1jZmQuZ2V0RGlnaXRzKCkpPT0wOworICAobmV3IFRlc3QoImN1YzAzOSIpKS5vaz0obWNmZC5nZXRGb3JtKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOOworICAobmV3IFRlc3QoImN1YzA0MCIpKS5vaz0obWNmZC5nZXRMb3N0RGlnaXRzKCk/MTowKT09MDsKKyAgKG5ldyBUZXN0KCJjdWMwNDEiKSkub2s9KG1jZmQuZ2V0Um91bmRpbmdNb2RlKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIAorICBzdW1tYXJ5KCJObyBtdXRhdGlvbiIpOworIH0KKworIAorIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogT3BlcmF0b3IgdGVzdCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8vIFRoZSB1c2Ugb2YgY29udGV4dCBpbiB0aGVzZSB0ZXN0cyBhcmUgcHJpbWFyaWx5IHRvIHNob3cgdGhhdCB0aGV5CisgLy8gYXJlIGNvcnJlY3RseSBwYXNzZWQgdG8gdGhlIG1ldGhvZHMsIGV4Y2VwdCB0aGF0IHdlIGNoZWNrIHRoYXQKKyAvLyBlYWNoIG1ldGhvZCBjaGVja3MgZm9yIGxvc3REaWdpdHMuCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjYWJzfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2FicygpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIAorICAvLyBtb3N0IG9mIHRoZSBmdW5jdGlvbiBvZiB0aGlzIGlzIHRlc3RlZCBieSBhZGQKKyAgKG5ldyBUZXN0KCJhYnMwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmFicygpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImFiczAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIikpLmFicygpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImFiczAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiswLjAwMCIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwIik7CisgIChuZXcgVGVzdCgiYWJzMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDAwIikpLmFicygpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMDAiKSkuYWJzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMCIpOworICAobmV3IFRlc3QoImFiczAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiswLjAwMCIpKS5hYnMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImFiczAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAwMCIpKS5hYnMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImFiczAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjAwMCIpKS5hYnMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImFiczAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yMDAwMDAwIikpLmFicygpLnRvU3RyaW5nKCkpLmVxdWFscygiMjAwMDAwMCIpOworICAobmV3IFRlc3QoImFiczAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yMDAwMDAwIikpLmFicyhtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyMDAwMDAwIik7CisgIChuZXcgVGVzdCgiYWJzMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIwMDAwMDAiKSkuYWJzKG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAwMDAwRSs2Iik7CisgIChuZXcgVGVzdCgiYWJzMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjAwMDAwMCIpKS5hYnMobWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjIuMDAwMDBFKzYiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjIiKSkuYWJzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4yIikpLmFicygpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgiYWJzMDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMSIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDEiKTsKKyAgKG5ldyBUZXN0KCJhYnMwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMSIpKS5hYnMoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDEiKTsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5hYnMobWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxOSl7YWU9JDE5OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiYWJzMDIwIikpLm9rPWZsYWc7CisgIC8vIGNoZWNrIGxvc3RkaWdpdHMgbm90IHJhaXNlZCBpZiBkaWdpdHM9MCBbbW9uYWRpYyBtZXRob2RdCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcuYWJzKG1jbGQwKTsKKyAgIGZsYWc9dHJ1ZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMjApe2FlPSQyMDsKKyAgIGZsYWc9ZmFsc2U7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJhYnMwMjEiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5URU4uYWJzKChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDIxKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJhYnMwMjIiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoImFicyIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjYWRkfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2FkZCgpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBhbGhzOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYXJoczsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIC8vIFtmaXJzdCBncm91cCBhcmUgJ3F1aWNrIGNvbmZpZGVuY2UgY2hlY2snXQorICAobmV3IFRlc3QoImFkZDAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDMpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1Ljc1IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI5LjA1Iik7CisgIChuZXcgVGVzdCgiYWRkMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgiYWRkMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTgiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi41IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTQuNSIpOworICAobmV3IFRlc3QoImFkZDAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wIik7CisgIChuZXcgVGVzdCgiYWRkMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNTAiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU2Nzg5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4yMzQ1Njc4OSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU2Nzg5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDExIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4yMzQ1NjgwMCIpOworICAKKyAgCisgIChuZXcgVGVzdCgiYWRkMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ0IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjU1NTU1NTU1NTUiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwIik7CisgIAorICAobmV3IFRlc3QoImFkZDAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0MCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41NTU1NTU1NTU1IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1MCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTk5OTk5OTk5Iik7CisgIAorICAobmV3IFRlc3QoImFkZDAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NDk5OSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDQ0NDQ0NDQ0Iik7CisgIAorICAobmV3IFRlc3QoImFkZDAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NTAwMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDQ0NDQ0NDQ1Iik7CisgIAorICAKKyAgKG5ldyBUZXN0KCJhZGQwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAxRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwN0UrMTMiKTsKKyAgCisgIAorICAvLyBbTm93IHRoZSBzYW1lIGdyb3VwIHdpdGggZml4ZWQgYXJpdGhtZXRpY10KKyAgKG5ldyBUZXN0KCJhZGQwMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI1Iik7CisgIChuZXcgVGVzdCgiYWRkMDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS43NSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOS4wNSIpOworICAobmV3IFRlc3QoImFkZDAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImFkZDAzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIi04Iik7CisgIChuZXcgVGVzdCgiYWRkMDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTciKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi00LjUiKTsKKyAgKG5ldyBUZXN0KCJhZGQwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjciKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMCIpOworICAobmV3IFRlc3QoImFkZDAzNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjUwIik7CisgIChuZXcgVGVzdCgiYWRkMDM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1Njc4OSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMjM0NTY3ODkiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1Njc4OSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAxMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMjM0NTY4MDAiKTsKKyAgCisgIAorICAobmV3IFRlc3QoImFkZDAzOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41NTU1NTU1NTU1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45OTk5OTk5OTk5Iik7CisgIAorICAobmV3IFRlc3QoImFkZDA0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0MCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41NTU1NTU1NTU1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45OTk5OTk5OTk1Iik7CisgIAorICAobmV3IFRlc3QoImFkZDA0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41NTU1NTU1NTUwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45OTk5OTk5OTk0Iik7CisgIAorICAobmV3IFRlc3QoImFkZDA0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NDk5OSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDQ0NDQ0NDQ0NDk5OSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDUwMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ0NDQ0NDQ0NDUwMDAiKTsKKyAgCisgIAorICAobmV3IFRlc3QoImFkZDA0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDAwMDcwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDAwMDcwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDA3MDAwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDcwMDAwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDcwMDAwMCIpOworICAKKyAgCisgIC8vIHN5bW1ldHJ5OgorICAobmV3IFRlc3QoImFkZDA0OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAwMDBFKzEzIik7CisgIAorICAobmV3IFRlc3QoImFkZDA1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAwMDBFKzEzIik7CisgIAorICAobmV3IFRlc3QoImFkZDA1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAwMDFFKzEzIik7CisgIAorICAobmV3IFRlc3QoImFkZDA1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDA3RSsxMyIpOworICAKKyAgCisgIChuZXcgVGVzdCgiYWRkMDU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDAwNzAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDU1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDAwNzAwIik7CisgIAorICAobmV3IFRlc3QoImFkZDA1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDcwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwNzAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDU4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwNzAwMDAwIik7CisgIAorICAvLyBzb21lIHJvdW5kaW5nIGVmZmVjdHMKKyAgKG5ldyBUZXN0KCJhZGQwNTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjk5OTgiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTk5OCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjk5OTgiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTk5OSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjk5OTgiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjk5OTgiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMSIpOworICAKKyAgCisgIC8vIE1DCisgIChuZXcgVGVzdCgiYWRkMDcwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIiksbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDA3MDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAxRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwNzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMEUrMTMiKTsKKyAgCisgIAorICAvLyB6ZXJvIHByZXNlcnZhdGlvbgorICAobmV3IFRlc3QoImFkZDA4MCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwODEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDEiKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMSIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwODIiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMDgzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDEiKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQwODQiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwMDEiKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMCIpOworICAKKyAgCisgIC8vIG1vcmUgZml4ZWQsIExIUyBzd2FwcworICAobmV3IFRlc3QoImFkZDA5MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMTAiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDA1NjI2NyIpOworICAobmV3IFRlc3QoImFkZDA5MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtNiIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wNTYyNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTUiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNTYyNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTQiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTUuNjI2NyIpOworICAobmV3IFRlc3QoImFkZDA5NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMyIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYuMjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMDk1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0yIikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi01NjIuNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTEiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2MjYuNyIpOworICAobmV3IFRlc3QoImFkZDA5NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMCIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQwOTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUtMTAiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDAwMDAwNSIpOworICAobmV3IFRlc3QoImFkZDA5OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS01IikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDA1Iik7CisgIChuZXcgVGVzdCgiYWRkMTAwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFLTEiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNSIpOworICAobmV3IFRlc3QoImFkZDEwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS0xMCIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwMDAwMDA1Iik7CisgIChuZXcgVGVzdCgiYWRkMTAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFLTUiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUtMSIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItMC41Iik7CisgIChuZXcgVGVzdCgiYWRkMTA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFMTAiKSkuYWRkKHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTUwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgiYWRkMTA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFNSIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNTAwMDAwIik7CisgIChuZXcgVGVzdCgiYWRkMTA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFMSIpKS5hZGQoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNTAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUwIikpLmFkZCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi01Iik7CisgIAorICAvLyBtb3JlIGZpeGVkLCBSSFMgc3dhcHMKKyAgKG5ldyBUZXN0KCJhZGQxMDgiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwMDU2MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMTA5IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wNTYyNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQxMTAiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjU2MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMTExIikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNS42MjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMTEyIikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYuMjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMTEzIikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyLjY3Iik7CisgIChuZXcgVGVzdCgiYWRkMTE0IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyNi43Iik7CisgIChuZXcgVGVzdCgiYWRkMTE1IikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyNjciKTsKKyAgKG5ldyBUZXN0KCJhZGQxMTYiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS0xMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAwMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMTciKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS01IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDUiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMTgiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RS0xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNSIpOworICAobmV3IFRlc3QoImFkZDEyOSIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFLTEwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDAwMDAwNSIpOworICAobmV3IFRlc3QoImFkZDEzMCIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFLTUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwNSIpOworICAobmV3IFRlc3QoImFkZDEzMSIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC41Iik7CisgIChuZXcgVGVzdCgiYWRkMTMyIikpLm9rPSh6ZXJvLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNUUxMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi01MDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoImFkZDEzMyIpKS5vaz0oemVyby5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTVFNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi01MDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMzQiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxMzUiKSkub2s9KHplcm8uYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01RTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItNSIpOworICAKKyAgLy8gW3NvbWUgb2YgdGhlIG5leHQgZ3JvdXAgYXJlIHJlYWxseSBjb25zdHJ1Y3RvciB0ZXN0c10KKyAgKG5ldyBUZXN0KCJhZGQxNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImFkZDE0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiYWRkMTQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIzLjMiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLiIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIzLjMiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMy4zIik7CisgIChuZXcgVGVzdCgiYWRkMTQ1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4wMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIzLjMwIik7CisgIChuZXcgVGVzdCgiYWRkMTQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjYiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjYiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAzIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgiYWRkMTUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoImFkZDE1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMy4zIik7CisgIChuZXcgVGVzdCgiYWRkMTUzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4iKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMy4zIik7CisgIChuZXcgVGVzdCgiYWRkMTU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4wIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMuMyIpOworICAobmV3IFRlc3QoImFkZDE1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDAiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMy4zMCIpOworICAobmV3IFRlc3QoImFkZDE1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI2Iik7CisgIChuZXcgVGVzdCgiYWRkMTU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI2Iik7CisgIChuZXcgVGVzdCgiYWRkMTU4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiYWRkMTU5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiYWRkMTYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgiYWRkMTYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiN0UrMTIiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIiksbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCI2OTk5OTk5OTk5OTk5Iik7CisgIAorICAobmV3IFRlc3QoImFkZDE2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjdFKzEyIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjExIiksbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCI3MDAwMDAwMDAwMDAxLjExIik7CisgIAorICAobmV3IFRlc3QoImFkZDE2MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMTEiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjdFKzEyIiksbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCI3MDAwMDAwMDAwMDAxLjExIik7CisgIAorICAKKyAgLy8gaW5wdXQgcHJlcGFyYXRpb24gdGVzdHMKKyAgYWxocz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkwMDAwMCIpOworICBhcmhzPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNzAiKSkub2s9KGFsaHMuYWRkKGFyaHMsbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMjNFKzEzIik7CisgIChuZXcgVGVzdCgiYWRkMTcxIikpLm9rPShhcmhzLmFkZChhbGhzLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjIzRSsxMyIpOworICAobmV3IFRlc3QoImFkZDE3MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyRSszIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDU2IiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNTVFKzQiKTsKKyAgLy8gbmV4dCB3YXMgMS41NEUrNCB1bmRlciBvbGQgW3RydW5jYXRlIHRvIGRpZ2l0cysxXSBydWxlcworICAobmV3IFRlc3QoImFkZDE3MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyRSszIikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDQ2IiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNTVFKzQiKTsKKyAgKG5ldyBUZXN0KCJhZGQxNzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMkUrMyIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ1NCIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjU1RSs0Iik7CisgIChuZXcgVGVzdCgiYWRkMTc1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTJFKzMiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjM0NDQiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41NEUrNCIpOworICAKKyAgKG5ldyBUZXN0KCJhZGQxNzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDU2IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMkUrMyIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjU1RSs0Iik7CisgIC8vIG5leHQgd2FzIDEuNTRFKzQgdW5kZXIgb2xkIFt0cnVuY2F0ZSB0byBkaWdpdHMrMV0gcnVsZXMKKyAgKG5ldyBUZXN0KCJhZGQxNzciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDQ2IikpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMkUrMyIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjU1RSs0Iik7CisgIChuZXcgVGVzdCgiYWRkMTc4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzQ1NCIpKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTJFKzMiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41NUUrNCIpOworICAobmV3IFRlc3QoImFkZDE3OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjM0NDQiKSkuYWRkKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyRSszIiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNTRFKzQiKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4uYWRkKChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkMjIpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImFkZDIwMCIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tudWxsMjpkb3sKKyAgIHRlbi5hZGQodGVuLChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDIzKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsMiovCisgIChuZXcgVGVzdCgiYWRkMjAxIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLmFkZChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuWkVSTyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDI0KXthZT0kMjQ7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJhZGQyMDIiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlpFUk8uYWRkKHRlbmxvbmcsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQyNSl7YWU9JDI1OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiYWRkMjAzIikpLm9rPWZsYWc7CisgIAorICAvLyBjaGVjayBsb3N0ZGlnaXRzIG5vdCByYWlzZWQgaWYgZGlnaXRzPTAgW2R5YWRpYyBtZXRob2RdCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcuYWRkKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5aRVJPLG1jbGQwKTsKKyAgIGZsYWc9dHJ1ZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMjYpe2FlPSQyNjsKKyAgIGZsYWc9ZmFsc2U7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJhZGQyMDQiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlpFUk8uYWRkKHRlbmxvbmcsbWNsZDApOworICAgZmxhZz10cnVlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQyNyl7YWU9JDI3OworICAgZmxhZz1mYWxzZTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoImFkZDIwNSIpKS5vaz1mbGFnOworICAKKyAgc3VtbWFyeSgiYWRkIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNjb21wYXJlVG8oQmlnRGVjaW1hbCl9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnY29tcGFyZXRvKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgLy8gd2UgYXNzdW1lIGFkZC9zdWJ0cmFjdCB0ZXN0IGZ1bmN0aW9uOyB0aGlzIGp1c3QKKyAgLy8gdGVzdHMgZXhpc3RlbmNlLCBleGNlcHRpb25zLCBhbmQgcG9zc2libGUgcmVzdWx0cworICAKKyAgKG5ldyBUZXN0KCJjcHQwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmNvbXBhcmVUbyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpKT09MTsKKyAgKG5ldyBUZXN0KCJjcHQwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmNvbXBhcmVUbyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpKT09MDsKKyAgKG5ldyBUZXN0KCJjcHQwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmNvbXBhcmVUbyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAwIikpKT09MDsKKyAgKG5ldyBUZXN0KCJjcHQwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkuY29tcGFyZVRvKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKSk9PTA7CisgIChuZXcgVGVzdCgiY3B0MDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5jb21wYXJlVG8obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKSk9PSgtMSk7CisgIChuZXcgVGVzdCgiY3B0MDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5jb21wYXJlVG8obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpLG1jZGVmKSk9PSgtMSk7CisgIChuZXcgVGVzdCgiY3B0MDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5jb21wYXJlVG8obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpLG1jNikpPT0oLTEpOworICAobmV3IFRlc3QoImNwdDAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuY29tcGFyZVRvKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSxtY2ZkKSk9PSgtMSk7CisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4uY29tcGFyZVRvKChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkMjgpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImNwdDEwMCIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tudWxsMjpkb3sKKyAgIHRlbi5jb21wYXJlVG8odGVuLChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDI5KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsMiovCisgIChuZXcgVGVzdCgiY3B0MTAxIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLmNvbXBhcmVUbyhjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMzApe2FlPSQzMDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoImNwdDEwMiIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmNvbXBhcmVUbyh0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMzEpe2FlPSQzMTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoImNwdDEwMyIpKS5vaz1mbGFnOworICAKKyAgc3VtbWFyeSgiY29tcGFyZVRvIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNkaXZpZGV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnZGl2aWRlKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBybWNkOworICBpbnQgcmh1OworICBpbnQgcmQ7CisgIGludCBydTsKKyAgamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gZT1udWxsOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAKKyAgKG5ldyBUZXN0KCJkaXYzMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zMzMzMzMzMzMiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC42NjY2NjY2NjciKTsKKyAgKG5ldyBUZXN0KCJkaXYzMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNCIpOworICAobmV3IFRlc3QoImRpdjMwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIuNCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMiIpOworICAobmV3IFRlc3QoImRpdjMxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImRpdjMxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxODciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjE4NyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi41Iik7CisgIChuZXcgVGVzdCgiZGl2MzE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi41Iik7CisgIChuZXcgVGVzdCgiZGl2MzE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjIwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjI1Iik7CisgIChuZXcgVGVzdCgiZGl2MzE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgiZGl2MzE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5LjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkuNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkuOSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkuOTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOSIpOworICAobmV3IFRlc3QoImRpdjMyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMEUtNTAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIC8vIE1DCisgIChuZXcgVGVzdCgiZGl2MzI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgiZGl2MzI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzkiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzciKTsKKyAgKG5ldyBUZXN0KCJkaXYzMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5Iik7CisgIAorICAvLyBjaGVjayByb3VuZGluZyBleHBsaWNpdGx5IFtub3RlOiBkaWdpdHMrMSB0cnVuY2F0aW9uXQorICBybWNkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORyk7CisgIChuZXcgVGVzdCgiZGl2MzMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41MCIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIChuZXcgVGVzdCgiZGl2MzMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41MSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS42Iik7CisgIChuZXcgVGVzdCgiZGl2MzMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS42Iik7CisgIHJtY2Q9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKTsKKyAgKG5ldyBUZXN0KCJkaXYzMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjU1IikpLmRpdmlkZShvbmUscm1jZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjU5IikpLmRpdmlkZShvbmUscm1jZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjUiKTsKKyAgcm1jZD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyxmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKTsKKyAgKG5ldyBUZXN0KCJkaXYzMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjU1IikpLmRpdmlkZShvbmUscm1jZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjU5IikpLmRpdmlkZShvbmUscm1jZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjUiKTsKKyAgcm1jZD1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyxmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTik7CisgIChuZXcgVGVzdCgiZGl2MzM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS40NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS40Iik7CisgIChuZXcgVGVzdCgiZGl2MzM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41MCIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIChuZXcgVGVzdCgiZGl2MzM5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIHJtY2Q9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pOworICAobmV3IFRlc3QoImRpdjM0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNDUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNCIpOworICAobmV3IFRlc3QoImRpdjM0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTAiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNSIpOworICAobmV3IFRlc3QoImRpdjM0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNTUiKSkuZGl2aWRlKG9uZSxybWNkKS50b1N0cmluZygpKS5lcXVhbHMoIjEuNiIpOworICBybWNkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCk7CisgIChuZXcgVGVzdCgiZGl2MzQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS40NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIChuZXcgVGVzdCgiZGl2MzQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41MCIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIChuZXcgVGVzdCgiZGl2MzQ1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS42Iik7CisgIHJtY2Q9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCk7CisgIChuZXcgVGVzdCgiZGl2MzQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41MCIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS41Iik7CisgIChuZXcgVGVzdCgiZGl2MzQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41MSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS42Iik7CisgIChuZXcgVGVzdCgiZGl2MzQ4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS41NSIpKS5kaXZpZGUob25lLHJtY2QpLnRvU3RyaW5nKCkpLmVxdWFscygiMS42Iik7CisgIAorICAvLyBmaXhlZCBwb2ludC4uLgorICAobmV3IFRlc3QoImRpdjM1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MzUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNCIpOworICAobmV3IFRlc3QoImRpdjM1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMi40Iik7CisgIChuZXcgVGVzdCgiZGl2MzU1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIuNCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40MCIpOworICAobmV3IFRlc3QoImRpdjM1NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40MDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjAwIik7CisgIChuZXcgVGVzdCgiZGl2MzYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4iKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZGl2MzYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImRpdjM2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjE4NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTg3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImRpdjM2MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzIik7CisgIChuZXcgVGVzdCgiZGl2MzY0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMyIpOworICAobmV3IFRlc3QoImRpdjM2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMyIpOworICAobmV3IFRlc3QoImRpdjM2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMjAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNSIpOworICAobmV3IFRlc3QoImRpdjM2OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMjAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMjUuMCIpOworICAobmV3IFRlc3QoImRpdjM3MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoImRpdjM3MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OS40IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5OTk5OTk5LjQiKTsKKyAgKG5ldyBUZXN0KCJkaXYzNzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTkuNSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTk5OS41Iik7CisgIChuZXcgVGVzdCgiZGl2Mzc0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5LjkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTkuOSIpOworICAobmV3IFRlc3QoImRpdjM3NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OS45OTkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTkuOTk5Iik7CisgIChuZXcgVGVzdCgiZGl2Mzc2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwRS01IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjM3NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDAiKTsKKyAgCisgIC8vLSBGaXhlZCBwb2ludDsgZXhwbGljaXQgc2NhbGVzICYgcm91bmRzIFtvbGQgQmlnRGVjaW1hbCBkaXZpZGVzXQorICByaHU9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQOworICByZD1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV047CisgIChuZXcgVGVzdCgiZGl2MDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwxLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMixyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoImRpdjAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwzLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMCIpOworICAobmV3IFRlc3QoImRpdjAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwwLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDEscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMyIpOworICAobmV3IFRlc3QoImRpdjAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwyLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzIik7CisgIChuZXcgVGVzdCgiZGl2MDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDMscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzMzIik7CisgIChuZXcgVGVzdCgiZGl2MDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzMzMyIpOworICAobmV3IFRlc3QoImRpdjAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZGl2MDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZGl2MDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDAscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC43Iik7CisgIChuZXcgVGVzdCgiZGl2MDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDIscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuNjciKTsKKyAgKG5ldyBUZXN0KCJkaXYwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMyxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC42NjciKTsKKyAgKG5ldyBUZXN0KCJkaXYwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksNCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC42NjY3Iik7CisgIAorICAobmV3IFRlc3QoImRpdjAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIwMDAiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUwMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMDAwIiksMyxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41MDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMDAwIiksMixyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41MCIpOworICAobmV3IFRlc3QoImRpdjAzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIwMDAiKSwxLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMDAwIiksMCxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgKG5ldyBUZXN0KCJkaXYwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwMDAiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAyMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwMDAiKSwzLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAyMCIpOworICAobmV3IFRlc3QoImRpdjAzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAwMCIpLDIscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDIiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwMDAiKSwxLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwMzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwMDAiKSwwLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoImRpdjA0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OTkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3Nzc3NzciKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAyMjciKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3Nzc3NyIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDIyNyIpOworICAobmV3IFRlc3QoImRpdjA0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3NyIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDIyNyIpOworICAobmV3IFRlc3QoImRpdjA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3Nzc3NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OTkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OSIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc3OCIpOworICAobmV3IFRlc3QoImRpdjA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OSIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc3OCIpOworICAobmV3IFRlc3QoImRpdjA0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OSIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc3OCIpOworICAobmV3IFRlc3QoImRpdjA0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OSIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc3OCIpOworICAobmV3IFRlc3QoImRpdjA0OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTkiKSw0LHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3ODAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LjciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOSIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc5OCIpOworICAobmV3IFRlc3QoImRpdjA1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LiIpLDQscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJkaXYwNjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3Nzc3Iikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDIyNzI3MjciKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTkiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuNzc3Nzc3NyIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAyMjcyNzMiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS43Nzc3NzciKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMjI3MjciKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5Iikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc3Nzc3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OSIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3Nzc3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTk5OTkiKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Nzc3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3Nzc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5Iikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3NzciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OSIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk3NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3NyIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45OTkiKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45NzgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljc3IikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5Iikscmh1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTgiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LjciKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOSIpLHJodSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5LiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS4iKSxyaHUpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgcmQ9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOOyAvLyB0ZXN0IHRoaXMgaXMgYWN0dWFsbHkgYmVpbmcgdXNlZAorICAobmV3IFRlc3QoImRpdjA4MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSwwLHJkKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwODEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMSxyZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjYiKTsKKyAgKG5ldyBUZXN0KCJkaXYwODIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksMixyZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjY2Iik7CisgIChuZXcgVGVzdCgiZGl2MDgzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLDMscmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMC42NjYiKTsKKyAgKG5ldyBUZXN0KCJkaXYwODQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksNCxyZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjY2NjYiKTsKKyAgCisgIHJ1PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlk7IC8vIGNoZWNrIGZvciBzb21lIDAgcmVzaWR1ZXMKKyAgKG5ldyBUZXN0KCJkaXYwOTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IiksNCxydSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMDAuMDAwMCIpOworICAobmV3IFRlc3QoImRpdjA5MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwIiksNCxydSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMC4wMDAwIik7CisgIChuZXcgVGVzdCgiZGl2MDkyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAwIiksNCxydSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAwMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwOTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksNCxydSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIwMDAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwOTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksMyxydSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIwMCIpOworICAobmV3IFRlc3QoImRpdjA5NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUwMDAiKSwyLHJ1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYwOTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksMSxydSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgCisgIC8vIGNoZWNrIHJvdW5kaW5nIGV4cGxpY2l0bHkKKyAgKG5ldyBUZXN0KCJkaXYxMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDYiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImRpdjEwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImRpdjEwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImRpdjEwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZGl2MTA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MTA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRkxPT1IpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImRpdjEwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImRpdjEwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgiZGl2MTEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNDUiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDQiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA0NSIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZGl2MTEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNDUiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1MCIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImRpdjExNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDUwIikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1MCIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjExNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA1Iik7CisgIChuZXcgVGVzdCgiZGl2MTE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImRpdjExOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoImRpdjEyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA0Iik7CisgIChuZXcgVGVzdCgiZGl2MTIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNDUiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImRpdjEyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MTIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDUiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1MCIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZGl2MTI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1MCIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xNSIpOworICAobmV3IFRlc3QoImRpdjEyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTUwIikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgKG5ldyBUZXN0KCJkaXYxMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1MCIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImRpdjEyOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA2Iik7CisgIChuZXcgVGVzdCgiZGl2MTMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImRpdjEzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAobmV3IFRlc3QoImRpdjE0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImRpdjE0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQ1IikpLmRpdmlkZShvbmUsMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZGl2MTQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNDUiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZGl2MTQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA1Iik7CisgIChuZXcgVGVzdCgiZGl2MTQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTAiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJkaXYxNDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1MCIpKS5kaXZpZGUob25lLDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkaXYxNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDYiKTsKKyAgKG5ldyBUZXN0KCJkaXYxNDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImRpdjE0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDU1IikpLmRpdmlkZShvbmUsMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAKKyAgKG5ldyBUZXN0KCJkaXYxNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1NSIpKS5kaXZpZGUob25lLDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA2Iik7CisgIChuZXcgVGVzdCgiZGl2MTUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiZGl2NTIuIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTUiKSkuZGl2aWRlKG9uZSwwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgLy8tIGVycm9yIGNvbmRpdGlvbnMgLS0tCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4uZGl2aWRlKChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkMzIpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoImRpdjIwMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tudWxsMjpkb3sKKyAgIHRlbi5kaXZpZGUodGVuLChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDMzKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsMiovCisgIChuZXcgVGVzdCgiZGl2MjAyIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tzY2FsZTpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksLTgsMCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uICQzNCl7ZT0kMzQ7CisgICBmbGFnPWZsYWcmKGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIk5lZ2F0aXZlIHNjYWxlOiAtOCIpOworICB9LypjaGVja3NjYWxlKi8KKyAgKG5ldyBUZXN0KCJkaXYyMDMiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtyb3Vubjpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1MDAwIiksMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDM1KXthZT0kMzU7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiUm91bmRpbmcgbmVjZXNzYXJ5Iik7CisgIH0vKnJvdW5uKi8KKyAgKG5ldyBUZXN0KCJkaXYyMDQiKSkub2s9ZmxhZzsKKyAgdHJ5e3JvdW5uOmRveworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIiksMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDM2KXthZT0kMzY7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiUm91bmRpbmcgbmVjZXNzYXJ5Iik7CisgIH0vKnJvdW5uKi8KKyAgKG5ldyBUZXN0KCJkaXYyMDUiKSkub2s9ZmxhZzsKKyAgdHJ5e3JvdW5uOmRveworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDEiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMCIpLDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQzNyl7YWU9JDM3OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICB9Lypyb3VubiovCisgIChuZXcgVGVzdCgiZGl2MjA2IikpLm9rPWZsYWc7CisgIHRyeXtyb3Vubjpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMSIpKS5kaXZpZGUobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDAiKSwxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMzgpe2FlPSQzODsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJSb3VuZGluZyBuZWNlc3NhcnkiKTsKKyAgfS8qcm91bm4qLworICAobmV3IFRlc3QoImRpdjIwNyIpKS5vaz1mbGFnOworICB0cnl7cm91bm46ZG97CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAxIikpLmRpdmlkZShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDM5KXthZT0kMzk7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiUm91bmRpbmcgbmVjZXNzYXJ5Iik7CisgIH0vKnJvdW5uKi8KKyAgKG5ldyBUZXN0KCJkaXYyMDgiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtkaXYwOmRveworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ0MCl7YWU9JDQwOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkRpdmlkZSBieSAwIik7CisgIH0vKmRpdjAqLworICAobmV3IFRlc3QoImRpdjIwOSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5kaXZpZGUoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORSxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDQxKXthZT0kNDE7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJkaXYyMTAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5kaXZpZGUodGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDQyKXthZT0kNDI7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJkaXYyMTEiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoImRpdmlkZSIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjZGl2aWRlSW50ZWdlcn0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdkaXZpZGVJbnRlZ2VyKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIChuZXcgVGVzdCgiZHZJMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAxLjMiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAxIik7CisgIChuZXcgVGVzdCgiZHZJMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAxLjAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAxIik7CisgIChuZXcgVGVzdCgiZHZJMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAxLjMiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMzMiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDEuMCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIzMyIpOworICAobmV3IFRlc3QoImR2STAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgiZHZJMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImR2STAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjE4IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTgiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZHZJMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTEyMCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZHZJMDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwMCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZHZJMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgiZHZJMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOC4wMDUiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImR2STAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImR2STAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAvLyBNQworICAobmV3IFRlc3QoImR2STAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIAorICAvLyBGaXhlZCAtLQorICAobmV3IFRlc3QoImR2STAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4zIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMSIpOworICAobmV3IFRlc3QoImR2STAyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4wIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMSIpOworICAobmV3IFRlc3QoImR2STAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4zIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMzIik7CisgIChuZXcgVGVzdCgiZHZJMDI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAxLjAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMzMiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoImR2STAyNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxOCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjE4IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAyOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjExMjAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAyOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNCIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgiZHZJMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkuZGl2aWRlSW50ZWdlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoImR2STAzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5kaXZpZGVJbnRlZ2VyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImR2STAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjguMDA1IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJkdkkwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLmRpdmlkZUludGVnZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4uZGl2aWRlSW50ZWdlcigoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDQzKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJkdkkxMDEiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4uZGl2aWRlSW50ZWdlcih0ZW4sKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkNDQpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwyKi8KKyAgKG5ldyBUZXN0KCJkdkkxMDIiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUuZGl2aWRlSW50ZWdlcih0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNDUpe2FlPSQ0NTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoImR2STEwMyIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5kaXZpZGVJbnRlZ2VyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ0Nil7YWU9JDQ2OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgiZHZJMTA0IikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJkaXZpZGVJbnRlZ2VyIik7CisgfQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNtYXh9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbWF4KCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIC8vIHdlIGFzc3VtZSBhZGQvc3VidHJhY3QgdGVzdCBmdW5jdGlvbjsgdGhpcyBhbmQgbWluIGp1c3QKKyAgLy8gdGVzdCBleGlzdGVuY2UgYW5kIHRlc3QgdGhlIHRydXRoIHRhYmxlCisgIChuZXcgVGVzdCgibWF4MDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5tYXgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgKG5ldyBUZXN0KCJtYXgwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLm1heChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiNSIpOworICAobmV3IFRlc3QoIm1heDAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkubWF4KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI3Iik7CisgIChuZXcgVGVzdCgibWF4MDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5tYXgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjciKTsKKyAgKG5ldyBUZXN0KCJtYXgwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLm1heChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjciKTsKKyAgKG5ldyBUZXN0KCJtYXgwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyRSszIikpLm1heChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMjAwMCIpOworICAobmV3IFRlc3QoIm1heDAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjJFKzMiKSkubWF4KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiMkUrMyIpOworICAobmV3IFRlc3QoIm1heDAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSkubWF4KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjJFKzMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMDAwIik7CisgIChuZXcgVGVzdCgibWF4MDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpKS5tYXgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMkUrMyIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIyRSszIik7CisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4ubWF4KChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkNDcpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoIm1heDAxMCIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tudWxsMjpkb3sKKyAgIHRlbi5tYXgodGVuLChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDQ4KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsMiovCisgIChuZXcgVGVzdCgibWF4MDExIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcubWF4KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ0OSl7YWU9JDQ5OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgibWF4MDEyIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUubWF4KHRlbmxvbmcsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ1MCl7YWU9JDUwOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgibWF4MDEzIikpLm9rPWZsYWc7CisgIHN1bW1hcnkoIm1heCIpOworIH0KKworIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI21pbn0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdtaW4oKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbWlueD1udWxsOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAvLyB3ZSBhc3N1bWUgYWRkL3N1YnRyYWN0IHRlc3QgZnVuY3Rpb247IHRoaXMgYW5kIG1heCBqdXN0CisgIC8vIHRlc3QgZXhpc3RlbmNlIGFuZCB0ZXN0IHRoZSB0cnV0aCB0YWJsZQorICAKKyAgKG5ldyBUZXN0KCJtaW4wMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLm1pbihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoIm1pbjAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkubWluKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI1Iik7CisgIChuZXcgVGVzdCgibWluMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5taW4obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJtaW4wMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLm1pbihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMiIpOworICAobmV3IFRlc3QoIm1pbjAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkubWluKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSxtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoIm1pbjAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yRSszIikpLm1pbihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIwMDAiKTsKKyAgKG5ldyBUZXN0KCJtaW4wMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMkUrMyIpKS5taW4obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCItMkUrMyIpOworICAobmV3IFRlc3QoIm1pbjAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSkubWluKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yRSszIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIwMDAiKTsKKyAgKG5ldyBUZXN0KCJtaW4wMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLm1pbihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMkUrMyIpLG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCItMkUrMyIpOworICB0cnl7Y2hlY2tudWxsOmRveworICAgbWlueD10ZW47CisgICBtaW54Lm1pbigoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDUxKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJtaW4wMTAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICBtaW54PXRlbjsKKyAgIG1pbngubWluKHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ1Mil7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoIm1pbjAxMSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgdGVubG9uZy5taW4oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORSxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDUzKXthZT0kNTM7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJtaW4wMTIiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoOSkpLm1pbih0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNTQpe2FlPSQ1NDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoIm1pbjAxMyIpKS5vaz1mbGFnOworICBzdW1tYXJ5KCJtaW4iKTsKKyB9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI211bHRpcGx5fSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ211bHRpcGx5KCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGw5OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbDc3ZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGwxMjM0NTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGVkZ2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB0ZW5lZGdlOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgaHVuZWRnZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG9wbzsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQxPW51bGw7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkMj1udWxsOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBvZT1udWxsOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAKKyAgKG5ldyBUZXN0KCJtdWwwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI2Iik7CisgIChuZXcgVGVzdCgibXVsMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiNSIpOworICAobmV3IFRlc3QoIm11bDAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgibXVsMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40MCIpOworICAobmV3IFRlc3QoIm11bDAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuNDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoIm11bDAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40MCIpOworICAobmV3IFRlc3QoIm11bDAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuMDkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNy4xIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMzYuMTM5Iik7CisgIChuZXcgVGVzdCgibXVsMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi41IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4wIik7CisgIChuZXcgVGVzdCgibXVsMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi41MCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAuMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU2Nzg5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIzNDU2Nzg5Iik7CisgIAorICAobmV3IFRlc3QoIm11bDAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OTk5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OTk5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwLjAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjUwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4wMCIpOworICAobmV3IFRlc3QoIm11bDAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNTAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNCIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4wMCIpOworICAobmV3IFRlc3QoIm11bDAxNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OTk5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOTk5OTk5OTk5IiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEwMC4wMDAiKTsKKyAgCisgIAorICAobmV3IFRlc3QoIm11bDAyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjYiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI1Iik7CisgIChuZXcgVGVzdCgibXVsMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjQwIik7CisgIChuZXcgVGVzdCgibXVsMDI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMCIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoIm11bDAyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMi40MCIpOworICAobmV3IFRlc3QoIm11bDAyNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMi40MCIpOworICAobmV3IFRlc3QoIm11bDAyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjIwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgibXVsMDI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMjAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjQwIik7CisgIChuZXcgVGVzdCgibXVsMDI5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3LjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzNi4xMzkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjUiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEwLjAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjUwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4wMCIpOworICAobmV3IFRlc3QoIm11bDAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjM0NTY3ODkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjM0NTY3ODkwMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0LjU2Nzg5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xMDAwLjAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEyMzQ1NjcuODkwMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTIzNC41Njc4OSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwLjAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEyMzQ1NjcuODkwMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5OSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OTk5OTk5OSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5Ljk5OTk5OTk4MDAwMDAwMDAwMSIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAwIikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwNTAwIik7CisgIChuZXcgVGVzdCgibXVsMDM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMDM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDAiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMEUtMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsgLy8gcmhzIGlzICcwJworICAvLyAxOTk5LjEyLjIxOiBuZXh0IG9uZSBpcyBhIGVkZ2UgY2FzZSBpZiBpbnRlcm1lZGlhdGUgbG9uZ3MgYXJlIHVzZWQKKyAgKG5ldyBUZXN0KCJtdWwwMzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTk5OTkiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTc2NTYyNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk3NjU2MjQ5OTk5OTAyMzQzNzUiKTsKKyAgCisgIGw5PW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OUUrMTAiKTsKKyAgbDc3ZT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3N0UtMjAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNDAiKSkub2s9KGw5Lm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjM0NTY3NTciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI0MjY3NjAxMTk1NzMyNzMwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMDQxIikpLm9rPShsOS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzNDU2NzU3IiksbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjQuMjZFKzI0Iik7CisgIChuZXcgVGVzdCgibXVsMDQyIikpLm9rPShsOS5tdWx0aXBseShsNzdlKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTUwNjE3Mjc1MzAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNDMiKSkub2s9KGw5Lm11bHRpcGx5KGw3N2UsbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTQ3Iik7CisgIChuZXcgVGVzdCgibXVsMDQ0IikpLm9rPShsNzdlLm11bHRpcGx5KGw5LG1jMykudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk0NyIpOworICAKKyAgbDEyMzQ1PW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMy40NSIpOworICAobmV3IFRlc3QoIm11bDA1MCIpKS5vaz0obDEyMzQ1Lm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFlMTEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIzNDVFKzEzIik7CisgIChuZXcgVGVzdCgibXVsMDUxIikpLm9rPShsMTIzNDUubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUxMSIpLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjIzNDVFKzEzIik7CisgIChuZXcgVGVzdCgibXVsMDUyIikpLm9rPShsMTIzNDUubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMWUrOSIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjMuNDVFKzkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNTMiKSkub2s9KGwxMjM0NS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZTEwIiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjM0NUUrMTIiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNTQiKSkub2s9KGwxMjM0NS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZTExIiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjEyLjM0NUUrMTIiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNTUiKSkub2s9KGwxMjM0NS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZTEyIiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMy40NUUrMTIiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNTYiKSkub2s9KGwxMjM0NS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxZTEzIiksbWNlKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjM0NUUrMTUiKTsKKyAgCisgIC8vIHRlc3Qgc29tZSBjYXNlcyB0aGF0IGFyZSBjbG9zZSB0byBleHBvbmVudCBvdmVyZmxvdworICAobmV3IFRlc3QoIm11bDA2MCIpKS5vaz0ob25lLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjllOTk5OTk5OTk5IiksbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjlFKzk5OTk5OTk5OSIpOworICAobmV3IFRlc3QoIm11bDA2MSIpKS5vaz0ob25lLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkuOWU5OTk5OTk5OTkiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiOS45RSs5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNjIiKSkub2s9KG9uZS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5ZTk5OTk5OTk5OSIpLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCI5Ljk5RSs5OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNjMiKSkub2s9KHRlbi5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5ZTk5OTk5OTk5OSIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MEUrOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgibXVsMDY0IikpLm9rPSh0ZW4ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOS45ZTk5OTk5OTk5OSIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OS4wRSs5OTk5OTk5OTkiKTsKKyAgZWRnZT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5Ljk5OWU5OTk5OTk5OTkiKTsKKyAgdGVuZWRnZT10ZW4ubXVsdGlwbHkoZWRnZSxtY2UpOworICAobmV3IFRlc3QoIm11bDA2NSIpKS5vaz0odGVuZWRnZS50b1N0cmluZygpKS5lcXVhbHMoIjk5Ljk5MEUrOTk5OTk5OTk5Iik7CisgIGh1bmVkZ2U9dGVuLm11bHRpcGx5KHRlbmVkZ2UsbWNlKTsKKyAgKG5ldyBUZXN0KCJtdWwwNjYiKSkub2s9KGh1bmVkZ2UudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTkuOTAwRSs5OTk5OTk5OTkiKTsKKyAgb3BvPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMSIpOyAvLyBvbmUgdGVudGgKKyAgKG5ldyBUZXN0KCJtdWwwNjciKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5ZS05OTk5OTk5OTgiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiOUUtOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgibXVsMDY4IikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTllLTk5OTk5OTk5OCIpLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCI5LjlFLTk5OTk5OTk5OCIpOworICAobmV3IFRlc3QoIm11bDA2OSIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OWUtOTk5OTk5OTk4IiksbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjkuOTlFLTk5OTk5OTk5NyIpOworICAKKyAgKG5ldyBUZXN0KCJtdWwwNzAiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5ZS05OTk5OTk5OTgiKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOUUtOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgibXVsMDcxIikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTllLTk5OTk5OTk5OCIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OUUtOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgibXVsMDcyIikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5ZS05OTk5OTk5OTgiKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5RS05OTk5OTk5OTkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNzMiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTllLTk5OTk5OTk5NyIpLG1jZSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5Ljk5RS05OTk5OTk5OTYiKTsKKyAgKG5ldyBUZXN0KCJtdWwwNzQiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5ZS05OTk5OTk5OTciKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOTkuOTlFLTk5OTk5OTk5NiIpOworICAobmV3IFRlc3QoIm11bDA3NCIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5ZS05OTk5OTk5OTciKSxtY2UpLnRvU3RyaW5nKCkpLmVxdWFscygiOTk5Ljk5RS05OTk5OTk5OTYiKTsKKyAgCisgIC8vIHRlc3Qgc29tZSBpbnRlcm1lZGlhdGUgbGVuZ3RocworICAobmV3IFRlc3QoIm11bDA4MCIpKS5vaz0ob3BvLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OSIpLG1jcykudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3OC45Iik7CisgIChuZXcgVGVzdCgibXVsMDgxIikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDEyMzQiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yMzQ1Njc4OUUrMTIiKTsKKyAgKG5ldyBUZXN0KCJtdWwwODIiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkxMjM0NTY3ODkiKSxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yMzQ1Njc4OUUrMTYiKTsKKyAgKG5ldyBUZXN0KCJtdWwwODMiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkiKSxtY2ZkKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4LjkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwODQiKSkub2s9KG9wby5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkwMTIzNCIpLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2Nzg5MDEyMy40Iik7CisgIChuZXcgVGVzdCgibXVsMDg1IikpLm9rPShvcG8ubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MTIzNDU2Nzg5IiksbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkxMjM0NTY3OC45Iik7CisgIAorICAobmV3IFRlc3QoIm11bDA5MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OSIpKS5tdWx0aXBseShvcG8sbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4LjkiKTsKKyAgKG5ldyBUZXN0KCJtdWwwOTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkwMTIzNCIpKS5tdWx0aXBseShvcG8sbWNzKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMjM0NTY3ODlFKzEyIik7CisgIChuZXcgVGVzdCgibXVsMDkyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MTIzNDU2Nzg5IikpLm11bHRpcGx5KG9wbyxtY3MpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4yMzQ1Njc4OUUrMTYiKTsKKyAgKG5ldyBUZXN0KCJtdWwwOTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODkiKSkubXVsdGlwbHkob3BvLG1jZmQpLnRvU3RyaW5nKCkpLmVxdWFscygiMTIzNDU2NzguOSIpOworICAobmV3IFRlc3QoIm11bDA5NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTAxMjM0IikpLm11bHRpcGx5KG9wbyxtY2ZkKS50b1N0cmluZygpKS5lcXVhbHMoIjEyMzQ1Njc4OTAxMjMuNCIpOworICAobmV3IFRlc3QoIm11bDA5NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTEyMzQ1Njc4OSIpKS5tdWx0aXBseShvcG8sbWNmZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMjM0NTY3ODkxMjM0NTY3OC45Iik7CisgIAorICAvLyB0ZXN0IHNvbWUgbW9yZSBlZGdlIGNhc2VzIGFuZCBjYXJyaWVzCisgIChuZXcgVGVzdCgibXVsMTAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwIik7CisgIChuZXcgVGVzdCgibXVsMTAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4MTAwIik7CisgIChuZXcgVGVzdCgibXVsMTA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4MTAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4MTAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4MTAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4MTAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4MTAwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4MTAwMDAwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtdWwxMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLm11bHRpcGx5KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIik7CisgIC8vIHRlc3Qgc29tZSBtb3JlIGVkZ2UgY2FzZXMgd2l0aG91dCBjYXJyaWVzCisgIChuZXcgVGVzdCgibXVsMTMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOSIpOworICAobmV3IFRlc3QoIm11bDEzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MCIpOworICAobmV3IFRlc3QoIm11bDEzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwIik7CisgIChuZXcgVGVzdCgibXVsMTM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMCIpOworICAobmV3IFRlc3QoIm11bDEzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MDAwMCIpOworICAobmV3IFRlc3QoIm11bDEzNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDEzOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MDAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXVsMTUyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5tdWx0aXBseShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOTAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm11bDE1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkubXVsdGlwbHkobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpOworICAKKyAgdHJ5e2NoZWNrbnVsbDpkb3sKKyAgIHRlbi5tdWx0aXBseSgoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDU1KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJtdWwyMDAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4ubXVsdGlwbHkodGVuLChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDU2KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsMiovCisgIChuZXcgVGVzdCgibXVsMjAxIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tvdmVyOmRveworICAgZDE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMjM0NTY3ODkwMTIzNDVFLTAiKTsKKyAgIGQyPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjlFKzk5OTk5OTk5OSIpOworICAgZDEubXVsdGlwbHkoZDIsbWNkZWYpOyAvLyBtYXJnaW5hbCBvdmVyZmxvdworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNTcpe29lPSQ1NzsKKyAgIGZsYWc9KG9lLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJFeHBvbmVudCBPdmVyZmxvdzogMTAwMDAwMDAwMCIpOworICB9LypjaGVja292ZXIqLworICAobmV3IFRlc3QoIm11bDIwMiIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tvdmVyOmRveworICAgZDE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTEyIik7CisgICBkMj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5RSs5OTk5OTk5OTkiKTsKKyAgIGQxLm11bHRpcGx5KGQyLG1jZSk7IC8vIG1hcmdpbmFsIG92ZXJmbG93LCBlbmdpbmVlcmluZworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNTgpe29lPSQ1ODsKKyAgIGZsYWc9KG9lLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJFeHBvbmVudCBPdmVyZmxvdzogMTAwMDAwMDAwMiIpOworICB9LypjaGVja292ZXIqLworICAobmV3IFRlc3QoIm11bDIwMyIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrb3Zlcjpkb3sKKyAgIGQxPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOSIpOworICAgZDI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUtOTk5OTk5OTk5Iik7CisgICBkMS5tdWx0aXBseShkMixtY2RlZik7IC8vIG1hcmdpbmFsIG5lZ2F0aXZlIG92ZXJmbG93CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ1OSl7b2U9JDU5OworICAgZmxhZz0ob2UuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkV4cG9uZW50IE92ZXJmbG93OiAtMTAwMDAwMDAwMCIpOworICB9LypjaGVja292ZXIqLworICAobmV3IFRlc3QoIm11bDIwNCIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tvdmVyOmRveworICAgZDE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45Iik7CisgICBkMj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRS05OTk5OTk5OTkiKTsKKyAgIGQxLm11bHRpcGx5KGQyLG1jZSk7IC8vIG1hcmdpbmFsIG5lZ2F0aXZlIG92ZXJmbG93LCBlbmdpbmVlcmluZworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNjApe29lPSQ2MDsKKyAgIGZsYWc9KG9lLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJFeHBvbmVudCBPdmVyZmxvdzogLTEwMDAwMDAwMDIiKTsKKyAgfS8qY2hlY2tvdmVyKi8KKyAgKG5ldyBUZXN0KCJtdWwyMDUiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcubXVsdGlwbHkoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORSxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDYxKXthZT0kNjE7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJtdWwyMDYiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTi5tdWx0aXBseSh0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNjIpe2FlPSQ2MjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoIm11bDIwNyIpKS5vaz1mbGFnOworICAKKyAgc3VtbWFyeSgibXVsdGlwbHkiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI25lZ2F0ZX0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWduZWdhdGUoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAKKyAgKG5ldyBUZXN0KCJuZWcwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLm5lZ2F0ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMiIpKS5uZWdhdGUoKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAwIikpLm5lZ2F0ZShtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMi4wMCIpOworICAobmV3IFRlc3QoIm5lZzAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjAwIikpLm5lZ2F0ZShtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAwIik7CisgIChuZXcgVGVzdCgibmVnMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5uZWdhdGUobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoIm5lZzAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkubmVnYXRlKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLm5lZ2F0ZShtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibmVnMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAiKSkubmVnYXRlKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgibmVnMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMCIpKS5uZWdhdGUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjAwIik7CisgIChuZXcgVGVzdCgibmVnMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIuMDAiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAwIik7CisgIChuZXcgVGVzdCgibmVnMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5uZWdhdGUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLm5lZ2F0ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoIm5lZzAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wMCIpKS5uZWdhdGUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMCIpKS5uZWdhdGUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgibmVnMDIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIwMDAwMDAiKSkubmVnYXRlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIyMDAwMDAwIik7CisgIChuZXcgVGVzdCgibmVnMDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIwMDAwMDAiKSkubmVnYXRlKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMjAwMDAwMCIpKS5uZWdhdGUobWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjIuMDAwMDBFKzYiKTsKKyAgKG5ldyBUZXN0KCJuZWcwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyMDAwMDAwIikpLm5lZ2F0ZShtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuMDAwMDBFKzYiKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4ubmVnYXRlKChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDYzKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJuZWcxMDAiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcubmVnYXRlKG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNjQpe2FlPSQ2NDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoIm5lZzEwMSIpKS5vaz1mbGFnOworICBzdW1tYXJ5KCJuZWdhdGUiKTsKKyB9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3BsdXN9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFncGx1cygpeworICBib29sZWFuIGZsYWc9ZmFsc2U7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNoZTE7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIAorICAobmV3IFRlc3QoInBsdTAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucGx1cyhtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyIik7CisgIChuZXcgVGVzdCgicGx1MDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIiKSkucGx1cyhtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMiIpOworICAobmV3IFRlc3QoInBsdTAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAiKSkucGx1cyhtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjAwIik7CisgIChuZXcgVGVzdCgicGx1MDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIuMDAiKSkucGx1cyhtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMi4wMCIpOworICAobmV3IFRlc3QoInBsdTAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkucGx1cyhtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicGx1MDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5wbHVzKG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInBsdTAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAKKyAgKG5ldyBUZXN0KCJwbHUwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBsdXMoKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMiIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMiIpOworICAobmV3IFRlc3QoInBsdTAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4wMCIpOworICAobmV3IFRlc3QoInBsdTAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yLjAwIikpLnBsdXMoKS50b1N0cmluZygpKS5lcXVhbHMoIi0yLjAwIik7CisgIChuZXcgVGVzdCgicGx1MDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicGx1MDE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgicGx1MDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgicGx1MDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAKKyAgKG5ldyBUZXN0KCJwbHUwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMjAwMDAwMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMjAwMDAwMCIpOworICAobmV3IFRlc3QoInBsdTAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yMDAwMDAwIikpLnBsdXMobWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMjAwMDAwMCIpKS5wbHVzKG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCItMi4wMDAwMEUrNiIpOworICAobmV3IFRlc3QoInBsdTAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIwMDAwMDAiKSkucGx1cyhtYzYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi4wMDAwMEUrNiIpOworICAKKyAgLy8gdHJ5IHNvbWUgZXhvdGljIGJ1dCBzaWxseSByb3VuZGluZyBbZm9ybWF0IGNoZWNrcyBtb3JlIHZhcmlldGllc10KKyAgLy8gW3RoaXMgbW9zdGx5IGVuc3VyZXMgd2UgY2FuIHNldCB1cCBhbmQgcGFzcyB0aGUgc2V0dGluZ10KKyAgbWNoZTE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUMsZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pOworICAobmV3IFRlc3QoInBsdTAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMjQiKSkucGx1cyhtY2hlMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjI1IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgicGx1MDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4yNiIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMyIpOworICAobmV3IFRlc3QoInBsdTAzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTQiKSkucGx1cyhtY2hlMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJwbHUwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIChuZXcgVGVzdCgicGx1MDM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xNiIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMiIpOworICAKKyAgKG5ldyBUZXN0KCJwbHUwNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjI1MSIpKS5wbHVzKG1jaGUxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMyIpOworICAobmV3IFRlc3QoInBsdTA0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTUxIikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yIik7CisgIAorICAobmV3IFRlc3QoInBsdTA1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjI0IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMiIpOworICAobmV3IFRlc3QoInBsdTA1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjI1IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMiIpOworICAobmV3IFRlc3QoInBsdTA1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjI2IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMyIpOworICAobmV3IFRlc3QoInBsdTA1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjE0IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoInBsdTA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjE1IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMiIpOworICAobmV3IFRlc3QoInBsdTA1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjE2IikpLnBsdXMobWNoZTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMiIpOworICAKKyAgLy8gbW9yZSBmaXhlZCwgcG90ZW50aWFsIExIUyBzd2FwcyBpZiBkb25lIGJ5IGFkZCAwCisgIChuZXcgVGVzdCgicGx1MDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0xMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwMDU2MjY3Iik7CisgIChuZXcgVGVzdCgicGx1MDYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS01IikpLnBsdXMoKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjU2MjY3Iik7CisgIChuZXcgVGVzdCgicGx1MDYyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0yIikpLnBsdXMoKS50b1N0cmluZygpKS5lcXVhbHMoIi01NjIuNjciKTsKKyAgKG5ldyBUZXN0KCJwbHUwNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTEiKSkucGx1cygpLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2MjYuNyIpOworICAobmV3IFRlc3QoInBsdTA2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMCIpKS5wbHVzKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyNjciKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4ucGx1cygoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ2NSl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgicGx1MTAwIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLnBsdXMobWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ2Nil7YWU9JDY2OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgicGx1MTAxIikpLm9rPWZsYWc7CisgIHN1bW1hcnkoInBsdXMiKTsKKyB9CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3Bvd30gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdwb3coKXsKKyAgYm9vbGVhbiBmbGFnOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgeDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHRlbXA7CisgIGludCBuPTA7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB2eDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHZuOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICBmbGFnPXRydWU7CisgIChuZXcgVGVzdCgicG93MDAxIikpLm9rPSIxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMDIiKSkub2s9IjAuMyIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDAzIikpLm9rPSIwLjMiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAwNCIpKS5vaz0iMC4wOSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuMDAiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDA1IikpLm9rPSIwLjA5Ii5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMDAwMDAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDA2IikpLm9rPSgiMUUtOCIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi04IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAwNyIpKS5vaz0oIjFFLTciKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNyIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMDgiKSkub2s9IjAuMDAwMDAxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMDkiKSkub2s9IjAuMDAwMDEiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAxMCIpKS5vaz0iMC4wMDAxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNCIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTEiKSkub2s9IjAuMDAxIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTIiKSkub2s9IjAuMDEiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0yIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAxMyIpKS5vaz0iMC4xIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTQiKSkub2s9IjEiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDE1IikpLm9rPSIxMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTYiKSkub2s9IjEwMDAwMDAwMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOCIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTciKSkub2s9KCIxRSs5IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMTgiKSkub2s9KCIxRSs5OSIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAxOSIpKS5vaz0oIjFFKzk5OTk5OTk5OSIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMjAiKSkub2s9KCIxRSs5OTk5OTk5OTgiKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTgiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDIxIikpLm9rPSgiMUUrOTk5OTk5OTk3IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk3IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAyMiIpKS5vaz0oIjFFKzMzMzMzMzMzMyIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMzMzMzMzMzMyIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMjMiKSkub2s9KCIxRS0zMzMzMzMzMzMiKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMzMzMzMzMzMzIiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzAyNCIpKS5vaz0oIjFFLTk5OTk5OTk5OCIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi05OTk5OTk5OTgiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDI1IikpLm9rPSgiMUUtOTk5OTk5OTk5IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTk5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMjYiKSkub2s9IjAuNSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cwMjciKSkub2s9IjAuMjUiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MDI4IikpLm9rPSIwLjA2MjUiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTQiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIAorICAobmV3IFRlc3QoInBvdzA1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicG93MDUxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInBvdzA1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicG93MDU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInBvdzA1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTk5OTk5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrOTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgicG93MDU4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5OTk5OCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFKzk5OTk5OTk5OCIpOworICAobmV3IFRlc3QoInBvdzA1OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTciKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSs5OTk5OTk5OTciKTsKKyAgKG5ldyBUZXN0KCJwb3cwNjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMzMzMzMzMzMzIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrMzMzMzMzMzMzIik7CisgIChuZXcgVGVzdCgicG93MDYxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjc3IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUrNzciKTsKKyAgKG5ldyBUZXN0KCJwb3cwNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRSsyMiIpOworICAobmV3IFRlc3QoInBvdzA2MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNzciKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRS03NyIpOworICAobmV3IFRlc3QoInBvdzA2NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxRS0yMiIpOworICAobmV3IFRlc3QoInBvdzA2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgicG93MDY2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjI1Iik7CisgIChuZXcgVGVzdCgicG93MDY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTQiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjA2MjUiKTsKKyAgKG5ldyBUZXN0KCJwb3cwNjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI2LjAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIzNiIpOworICAobmV3IFRlc3QoInBvdzA2OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiOSIpOy8qIGZyb20gYm9vayAqLworICAobmV3IFRlc3QoInBvdzA3MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI2NCIpOy8qIGZyb20gYm9vayAqLworICAKKyAgLy8gMTk5OC4xMi4xNCBOZXh0IHRlc3QgcmVtb3ZlZCBhcyBwb3coKSBubyBsb25nZXIgcm91bmRzIFJIUyBbYXMgcGVyIEFOU0ldCisgIC8vIFRlc3QoJ3BvdzA3MScpLm9rPUJpZ0RlY2ltYWwoJzInKS5wb3coQmlnRGVjaW1hbCgnMi4wMDAwMDAwMDEnKSxtY2RlZikudG9TdHJpbmcgPT0gJzQnLyogY2hlY2sgaW5wdXQgcm91bmRpbmcgKi8KKyAgCisgIC8qIEdlbmVyYWwgdGVzdHMgZnJvbSBvcmlnaW5hbCBSZXh4IGRpYWdub3N0aWNzICovCisgIHg9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41Iik7CisgIHRlbXA9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORTsKKyAgZmxhZz10cnVlOworICB7bj0xO246Zm9yKDtuPD0xMDtuKyspeworICAgdGVtcD10ZW1wLm11bHRpcGx5KHgpLmRpdmlkZShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FKTsKKyAgIGZsYWc9ZmxhZyYoeC5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKHRlbXAudG9TdHJpbmcoKSk7CisgICB9CisgIH0vKm4qLworICAobmV3IFRlc3QoInBvdzA4MCIpKS5vaz1mbGFnOworICAKKyAgeD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIik7CisgIHRlbXA9Y29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORTsKKyAgZmxhZz10cnVlOworICB7bj0xO246Zm9yKDtuPD0yOTtuKyspeworICAgdGVtcD10ZW1wLm11bHRpcGx5KHgpLmRpdmlkZShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FKTsKKyAgIGZsYWc9ZmxhZyYoeC5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChuKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKHRlbXAudG9TdHJpbmcoKSk7CisgICBmbGFnPWZsYWcmKHgucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGludCktbiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscyhjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLmRpdmlkZSh0ZW1wLG1jZGVmKS50b1N0cmluZygpKTsKKyAgIC8qIE5vdGUgdGhhdCByb3VuZGluZyBlcnJvcnMgYXJlIHBvc3NpYmxlIGZvciBsYXJnZXIgIm4iICovCisgICAvKiBkdWUgdG8gdGhlIGluZm9ybWF0aW9uIGNvbnRlbnQgb2YgdGhlIGV4cG9uZW50ICAgICAgICAqLworICAgfQorICB9LypuKi8KKyAgKG5ldyBUZXN0KCJwb3cwODEiKSkub2s9ZmxhZzsKKyAgCisgIC8qIFRoZSBWaWVubmEgY2FzZS4gIENoZWNrcyBib3RoIHNldHVwIGFuZCAxL2FjYyB3b3JraW5nIHByZWNpc2lvbiAqLworICAvLyBNb2RpZmllZCAxOTk4LjEyLjE0IGFzIFJIUyBubyBsb25nZXIgcm91bmRlZCBiZWZvcmUgdXNlIChtdXN0IGZpdCkKKyAgLy8gTW9kaWZpZWQgMTk5MC4wMi4wNCBhcyBMSFMgaXMgbm93IHJvdW5kZWQgKGluc3RlYWQgb2YgdHJ1bmNhdGVkIHRvIGd1YXJkKQorICB2eD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NTY3ODlFKzEwIik7IC8vIGxocyAuLiByb3VuZGVkIHRvIDEuMjNFKzE4CisgIHZuPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjIzMDAwZSsyIik7IC8vIHJocyAuLiBbd2FzOiAtMS4yMzQ1NWUrMiwgcm91bmRzIHRvIC0xMjNdCisgIChuZXcgVGVzdCgicG93MDkwIikpLm9rPSh2eC5wb3codm4sbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjguNzRFLTIyMjYiKTsKKyAgCisgIC8vLSBmaXhlZCBwb2ludCB2ZXJzaW9ucyAtLS0KKyAgKG5ldyBUZXN0KCJwb3cxMDEiKSkub2s9IjEiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzEwMiIpKS5vaz0iMC4zIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMDMiKSkub2s9IjAuMyIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAiKSkudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MTA0IikpLm9rPSIwLjA5Ii5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMDUiKSkub2s9IjAuMDkiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjAwIikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzEwNiIpKS5vaz0iMTAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MTA3IikpLm9rPSIxMDAwMDAwMDAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjgiKSkudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgicG93MTA4IikpLm9rPSIxMDAwMDAwMDAwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5IikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzEwOSIpKS5vaz0iMTAwMDAwMDAwMDAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwIikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzExMCIpKS5vaz0iMSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzExMSIpKS5vaz0iMTYiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNCIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMTIiKSkub2s9IjI1NiIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI4IikpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInBvdzExMyIpKS5vaz0iMTAyNCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJwb3cxMTQiKSkub2s9IjEuMDUxMDEwMDUwMSIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAxIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnRvU3RyaW5nKCkpOworICAKKyAgKG5ldyBUZXN0KCJwb3cxMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInBvdzEyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicG93MTIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJwb3cxMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInBvdzE0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicG93MTI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJwb3cxMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicG93MTI3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMCIpOworICAobmV3IFRlc3QoInBvdzEyOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjYuMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM2LjAwIik7CisgIChuZXcgVGVzdCgicG93MTI5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNi4wMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM2LjAwMDAiKTsKKyAgKG5ldyBUZXN0KCJwb3cxMzAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI2LjAwMCIpKS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjM2LjAwMDAwMCIpOworICAobmV3IFRlc3QoInBvdzEzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIikpLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiOSIpOworICAobmV3IFRlc3QoInBvdzEzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI2NCIpOworICAKKyAgLyogZXJyb3JzICovCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4ucG93KChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiAkNjcpeworICAgZmxhZz10cnVlOworICB9LypjaGVja251bGwqLworICAobmV3IFRlc3QoInBvdzE1MCIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tudWxsMjpkb3sKKyAgIHRlbi5wb3codGVuLChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDY4KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsMiovCisgIChuZXcgVGVzdCgicG93MTUxIikpLm9rPWZsYWc7CisgIAorICBmbGFnPXRydWU7CisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcucG93KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ2OSl7YWU9JDY5OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgicG93MTUyIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnBvdyh0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNzApe2FlPSQ3MDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoInBvdzE1MyIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrcG9zOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTcxIikpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNzEpe2FlPSQ3MTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJOZWdhdGl2ZSBwb3dlcjogLTcxIik7CisgIH0vKmNoZWNrcG9zKi8KKyAgKG5ldyBUZXN0KCJwb3cxNTQiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja3dob2xlOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNCIpLG1jMyk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ3Mil7YWU9JDcyOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czogMTIzNCIpOworICB9LypjaGVja3dob2xlKi8KKyAgKG5ldyBUZXN0KCJwb3cxNTUiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja3dob2xlMTpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyLjM0ZSsyIiksbWMzKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDczKXthZT0kNzM7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiAxLjIzNEUrMyIpOworICB9LypjaGVja3dob2xlMSovCisgIChuZXcgVGVzdCgicG93MTU2IikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2t3aG9sZTI6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMi40IiksbWNkZWYpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNzQpe2FlPSQ3NDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IDEyLjQiKTsKKyAgfS8qY2hlY2t3aG9sZTIqLworICAobmV3IFRlc3QoInBvdzE1NyIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrd2hvbGUzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMSIpLG1jZGVmKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDc1KXthZT0kNzU7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiAxLjAxIik7CisgIH0vKmNoZWNrd2hvbGUzKi8KKyAgKG5ldyBUZXN0KCJwb3cxNTgiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja3dob2xlNDpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAxIiksbWNkZWYpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNzYpe2FlPSQ3NjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IDEuMDAwMDAwMDAxIik7CisgIH0vKmNoZWNrd2hvbGU0Ki8KKyAgKG5ldyBUZXN0KCJwb3cxNTkiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja3dob2xlNTpkb3sKKyAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAxIiksbWMzKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDc3KXthZT0kNzc7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiAxLjAwMDAwMDAwMSIpOworICB9LypjaGVja3dob2xlNSovCisgIChuZXcgVGVzdCgicG93MTYwIikpLm9rPWZsYWc7CisgIAorICB0cnl7Y2hlY2t3aG9sZTY6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnBvdyhuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjY3RS05ODc2NTQzMjEiKSxtYzMpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkNzgpe2FlPSQ3ODsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IDUuNjdFLTk4NzY1NDMyMSIpOworICB9LypjaGVja3dob2xlNiovCisgIChuZXcgVGVzdCgicG93MTYxIikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJwb3ciKTsKKyB9CisKKyAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNyZW1haW5kZXJ9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFncmVtYWluZGVyKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgCisgIChuZXcgVGVzdCgicmVtMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInJlbTAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxMyIpOworICAobmV3IFRlc3QoInJlbTAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxMyIpOworICAobmV3IFRlc3QoInJlbTAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMTMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMTMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEzIik7CisgIChuZXcgVGVzdCgicmVtMDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMzMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEzMyIpOworICAobmV3IFRlc3QoInJlbTAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTAzMyIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAzMyIpOworICAobmV3IFRlc3QoInJlbTAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDMzIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4zMyIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4zMyIpKS5yZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzIik7CisgIChuZXcgVGVzdCgicmVtMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzLjMiKSkucmVtYWluZGVyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zIik7CisgIChuZXcgVGVzdCgicmVtMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTMzIikpLnJlbWFpbmRlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDMzIikpLnJlbWFpbmRlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDMzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDUwKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIzMyIpOworICAobmV3IFRlc3QoInJlbTAxNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4wIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDMpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMCIpOworICAobmV3IFRlc3QoInJlbTAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMi4wIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDMpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDMuMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MCIpOworICAobmV3IFRlc3QoInJlbTAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIChuZXcgVGVzdCgicmVtMDI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMCIpOworICAobmV3IFRlc3QoInJlbTAyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMzAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInJlbTAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0wMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAwMCIpOworICAobmV3IFRlc3QoInJlbTAzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMDEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgCisgIChuZXcgVGVzdCgicmVtMDQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMDAwMDEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTAwMDAwMDEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTAwMDAwMDAxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgicmVtMDQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMDAwMDAwMDEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicmVtMDQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMDAwMDAwMDAxIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInJlbTA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40OTk5OTk5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUtNyIpOworICAobmV3IFRlc3QoInJlbTA0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFLTgiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDk5OTk5OTk5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMUUtOSIpOworICAobmV3IFRlc3QoInJlbTA0OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40OTk5OTk5OTk5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInJlbTA0OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40OTk5OTk5OTk5OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgCisgIChuZXcgVGVzdCgicmVtMDUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDMiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInJlbTA1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInJlbTA1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAxIik7CisgIChuZXcgVGVzdCgicmVtMDU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMSIpOworICAobmV3IFRlc3QoInJlbTA1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAwMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMSIpOworICAobmV3IFRlc3QoInJlbTA1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAwMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAxIik7CisgIChuZXcgVGVzdCgicmVtMDU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMDAwMDEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMSIpOworICAobmV3IFRlc3QoInJlbTA1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjQuMDAwMDAwMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjFFLTciKTsKKyAgCisgIChuZXcgVGVzdCgicmVtMDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjczNDUiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ2NTUiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjgiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC44Iik7CisgIChuZXcgVGVzdCgicmVtMDYyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicmVtMDYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgKG5ldyBUZXN0KCJyZW0wNjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjgwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjgwMCIpOworICAobmV3IFRlc3QoInJlbTA2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuODAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjciKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjgwMCIpOworICAobmV3IFRlc3QoInJlbTA2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAwIik7CisgIAorICAvLyBNQyAtLQorICAobmV3IFRlc3QoInJlbTA3MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpLG1jNikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQwMCIpOworICAobmV3IFRlc3QoInJlbTA3MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1Njc4OTAwMDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMmUrMTIiKSxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiM0UrMTEiKTsKKyAgCisgIC8vIEZpeGVkIC0tCisgIChuZXcgVGVzdCgicmVtMTAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInJlbTEwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMyIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNTAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMyIpOworICAobmV3IFRlc3QoInJlbTEwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMyIpOworICAobmV3IFRlc3QoInJlbTEwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMTMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMTMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEzIik7CisgIChuZXcgVGVzdCgicmVtMTA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMzMiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEzMyIpOworICAobmV3IFRlc3QoInJlbTEwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTAzMyIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAzMyIpOworICAobmV3IFRlc3QoInJlbTExMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDMzIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4zMyIpKS5yZW1haW5kZXIob25lKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4zMyIpKS5yZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLlRFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjMzIik7CisgIChuZXcgVGVzdCgicmVtMTEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAzLjMiKSkucmVtYWluZGVyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zIik7CisgIChuZXcgVGVzdCgicmVtMTE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTMzIikpLnJlbWFpbmRlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDMzIikpLnJlbWFpbmRlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuVEVOKS50b1N0cmluZygpKS5lcXVhbHMoIjMiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDMzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDUwKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIzMyIpOworICAobmV3IFRlc3QoInJlbTExNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMS4wIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDMpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuMCIpOworICAobmV3IFRlc3QoInJlbTExOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMi4wIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDMpKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDMuMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQwIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MCIpOworICAobmV3IFRlc3QoInJlbTEyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLnJlbWFpbmRlcihvbmUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkucmVtYWluZGVyKG9uZSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyLjQiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIChuZXcgVGVzdCgicmVtMTI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi40MDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMCIpOworICAobmV3IFRlc3QoInJlbTEyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMzAwIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInJlbTEzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xMDAiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMzIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAwMCIpOworICAobmV3IFRlc3QoInJlbTEzMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMi4wMDEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTAwMDAwMDAxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgicmVtMTM1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMDAwMDAwMDEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJyZW0xMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAzIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMyIpOworICAobmV3IFRlc3QoInJlbTEzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgicmVtMTM4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4xIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgicmVtMTM5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDEiKTsKKyAgKG5ldyBUZXN0KCJyZW0xNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0LjAwMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAxIik7CisgIChuZXcgVGVzdCgicmVtMTQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMDAxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAxIik7CisgIChuZXcgVGVzdCgicmVtMTQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMDAwMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJyZW0xNDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI0LjAwMDAwMSIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAxIik7CisgIChuZXcgVGVzdCgicmVtMTQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNC4wMDAwMDAxIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAxIik7IC8vIDFFLTcsIHBsYWluCisgIChuZXcgVGVzdCgicmVtMTQ1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjczNDUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ2NTUiKTsKKyAgKG5ldyBUZXN0KCJyZW0xNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjgiKSkucmVtYWluZGVyKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC44Iik7CisgIChuZXcgVGVzdCgicmVtMTQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgicmVtMTQ4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC44IikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgKG5ldyBUZXN0KCJyZW0xNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjgwMCIpKS5yZW1haW5kZXIobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjgwMCIpOworICAobmV3IFRlc3QoInJlbTE1MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuODAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjgwMCIpOworICAobmV3IFRlc3QoInJlbTE1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNDAwIikpLnJlbWFpbmRlcihuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDAwIik7CisgIAorICB0cnl7Y2hlY2tudWxsOmRveworICAgdGVuLnJlbWFpbmRlcigoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW51bGwpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDc5KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tudWxsKi8KKyAgKG5ldyBUZXN0KCJyZW0yMDAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrbnVsbDI6ZG97CisgICB0ZW4ucmVtYWluZGVyKHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ4MCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoInJlbTIwMSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5yZW1haW5kZXIodGVubG9uZyxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDgxKXthZT0kODE7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJyZW0yMDIiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2RpZ2l0czpkb3sKKyAgIHRlbmxvbmcucmVtYWluZGVyKG9uZSxtY2xkKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDgyKXthZT0kODI7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiVG9vIG1hbnkgZGlnaXRzOiIrIiAiK3RlbmxvbmcudG9TdHJpbmcoKSk7CisgIH0vKmNoZWNrZGlnaXRzKi8KKyAgKG5ldyBUZXN0KCJyZW0yMDMiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoInJlbWFpbmRlciIpOworIH0KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3N1YnRyYWN0fSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3N1YnRyYWN0KCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGFsaHM7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBhcmhzOworICBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiBhZT1udWxsOworICAKKyAgLy8gW2ZpcnN0IGdyb3VwIGFyZSAncXVpY2sgY29uZmlkZW5jZSBjaGVjayddCisgIChuZXcgVGVzdCgic3ViMzAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInN1YjMwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuNzUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40NSIpOworICAobmV3IFRlc3QoInN1YjMwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI4Iik7CisgIChuZXcgVGVzdCgic3ViMzA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMiIpOworICAobmV3IFRlc3QoInN1YjMwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi03IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIi05LjUiKTsKKyAgKG5ldyBUZXN0KCJzdWIzMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjciKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIChuZXcgVGVzdCgic3ViMzA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4zIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMCIpOworICAobmV3IFRlc3QoInN1YjMwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzdWIzMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU2Nzg5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIzNDU2Nzg5Iik7CisgIAorICAobmV3IFRlc3QoInN1YjMxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjM0NTY3ODkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDA4OSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjM0NTY3MDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41NTU1NTU1NTU5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwMDAwMSIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNTU1NTU1NTU2Iik7CisgIAorICAobmV3IFRlc3QoInN1YjMxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1OSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDAwMDUiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjU1NTU1NTU1NiIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMTExMTExMTExIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zMzMzMzMzMzMiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAwMDAwMDEiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjk5OTk5OTk5Iik7CisgIAorICAobmV3IFRlc3QoInN1YjMxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNDQ0NDQ0NDQ0NDk5OSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40NDQ0NDQ0NDQiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ1MDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQ0NDQ0NDQ0NSIpOworICAKKyAgCisgIChuZXcgVGVzdCgic3ViMzE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEuMDAwMDAwMDBFKzEzIik7CisgIAorICAobmV3IFRlc3QoInN1YjMxOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzIwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItOS45OTk5OTk5RSsxMiIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCItOS45OTk5OTkzRSsxMiIpOworICAKKyAgLy8gc3ltbWV0cnk6CisgIChuZXcgVGVzdCgic3ViMzIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAwMDAwMDAwRSsxMyIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIzMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwMGUrOSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMDAwMDAwMEUrMTMiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMzI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI5Ljk5OTk5OTlFKzEyIik7CisgIAorICAobmV3IFRlc3QoInN1YjMyNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjkuOTk5OTk5M0UrMTIiKTsKKyAgCisgIAorICAvLyBbc2FtZSB3aXRoIGZpeGVkIHBvaW50IGFyaXRobWV0aWNdCisgIChuZXcgVGVzdCgic3ViMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgyKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgzKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInN1YjAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuNzUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMi40NSIpOworICAobmV3IFRlc3QoInN1YjAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI4Iik7CisgIChuZXcgVGVzdCgic3ViMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMiIpOworICAobmV3IFRlc3QoInN1YjAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi03IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjIuNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi05LjUiKTsKKyAgKG5ldyBUZXN0KCJzdWIwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjciKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4zIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIChuZXcgVGVzdCgic3ViMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4zIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMCIpOworICAobmV3IFRlc3QoInN1YjAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yNSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAyIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIAorICAobmV3IFRlc3QoInN1YjAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMjM0NTY3ODkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjM0NTY3ODkiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1Njc4OSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDg5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yMzQ1NjcwMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjU1NTU1NTU1NTkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwMDAwMDAxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41NTU1NTU1NTU4Iik7CisgIAorICAobmV3IFRlc3QoInN1YjAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNTU1NTU1NTU1OSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMDAwMDAwMDUiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjU1NTU1NTU1NTQiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC40NDQ0NDQ0NDQ0IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTExMTExMTExMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzMzMzMzMzMzMyIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAwMDAwMDAwMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAwMDAwMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTk5OTk5OTkwMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDQ5OTkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDQ0NDQ0NDQ0NDk5OSIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NDQ0NDQ0NDUwMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNDQ0NDQ0NDQ0NTAwMCIpOworICAKKyAgCisgIChuZXcgVGVzdCgic3ViMDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTk5OTk5OTk5OTkzMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTk5OTk5OTk5OTMwMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTk5OTk5OTk5OTMwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTk5OTk5OTkzMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJzdWIwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI3MDAwMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTk5OTk5OTMwMDAwMCIpOworICAKKyAgLy8gc3ltbWV0cnk6CisgIChuZXcgVGVzdCgic3ViMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTk5OTMwIik7CisgIAorICAobmV3IFRlc3QoInN1YjAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTk5OTkzMDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTk5OTMwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgic3ViMDI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCI5OTk5OTk5OTMwMDAwIik7CisgIAorICAobmV3IFRlc3QoInN1YjAyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwMCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjk5OTk5OTkzMDAwMDAiKTsKKyAgCisgIC8vIE1DCisgIChuZXcgVGVzdCgic3ViMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMDBlKzkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNzAwMDAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCI5Ljk5OTk5OTlFKzEyIik7CisgIAorICAobmV3IFRlc3QoInN1YjAzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwMDAwZSs5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjcwMDAwIiksbWM2KS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDAwMDBFKzEzIik7CisgIAorICAKKyAgLy8gc29tZSBvZiB0aGUgbmV4dCBncm91cCBhcmUgcmVhbGx5IGNvbnN0cnVjdG9yIHRlc3RzCisgIChuZXcgVGVzdCgic3ViMDQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3ViMDQyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoInN1YjA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMCIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwNDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3ViMDQ1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNyIpOworICAobmV3IFRlc3QoInN1YjA0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi43Iik7CisgIChuZXcgVGVzdCgic3ViMDQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiMi43Iik7CisgIChuZXcgVGVzdCgic3ViMDQ4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4wMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNzAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSxtY2RlZikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3ViMDUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMyIpLG1jZGVmKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzdWIwNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0zIiksbWNkZWYpLnRvU3RyaW5nKCkpLmVxdWFscygiNiIpOworICAobmV3IFRlc3QoInN1YjA1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjciKTsKKyAgKG5ldyBUZXN0KCJzdWIwNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLiIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNyIpOworICAobmV3IFRlc3QoInN1YjA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIuNyIpOworICAobmV3IFRlc3QoInN1YjA1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIyLjcwIik7CisgIChuZXcgVGVzdCgic3ViMDU2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInN1YjA1NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzMiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3ViMDU4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjYiKTsKKyAgCisgIC8vIHRoZSBhYm92ZSBhbGwgZnJvbSBhZGQ7IG1hc3NhZ2VkIGFuZCBleHRlbmRlZC4gIE5vdyBzb21lIG5ldyBvbmVzLi4uCisgIC8vIFtwYXJ0aWN1bGFybHkgaW1wb3J0YW50IGZvciBjb21wYXJpc29uc10KKyAgLy8gTkI6IC0xRS03IGJlbG93IHdlcmUgbm9uLWV4cG9uZW50cyBwcmUtQU5TSQorICAobmV3IFRlc3QoInN1YjA4MCIpKS5vaz0oIi0xRS03IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwODEiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODUiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDgyIikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA4MyIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwODQiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODgiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDg1IikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA4NiIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc5MCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwODciKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3OTEiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDg4IikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2NzkyIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA4OSIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc5MyIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OSIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwOTAiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3OTQiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDkxIikpLm9rPSgiLTFFLTciKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2NzgxIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA5MiIpKS5vaz0oIi0xRS03IikuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4MiIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwOTMiKSkub2s9KCItMUUtNyIpLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODMiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDk0IikpLm9rPSgiLTFFLTciKS5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg0IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA5NSIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwOTYiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMDk3IikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg3IikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjA5OCIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4OCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIwOTkiKSkub2s9IjAiLmVxdWFscygobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODkiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAuMjM0NTY3ODYiKSxtY2RlZikudG9TdHJpbmcoKSk7CisgIChuZXcgVGVzdCgic3ViMTAwIikpLm9rPSIwIi5lcXVhbHMoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2NzkwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwLjIzNDU2Nzg2IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjEwMSIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc5MSIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMC4yMzQ1Njc4NiIpLG1jZGVmKS50b1N0cmluZygpKTsKKyAgKG5ldyBUZXN0KCJzdWIxMDIiKSkub2s9IjAiLmVxdWFscyhjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuOTk5OTk5OTk5IiksbWNkZWYpLnRvU3RyaW5nKCkpOworICAobmV3IFRlc3QoInN1YjEwMyIpKS5vaz0iMCIuZXF1YWxzKChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjk5OTk5OTk5OSIpKS5zdWJ0cmFjdChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuT05FLG1jZGVmKS50b1N0cmluZygpKTsKKyAgCisgIGFsaHM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDAwMDAiKTsKKyAgYXJocz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OTk5OTk5OTk5Iik7CisgIChuZXcgVGVzdCgic3ViMTEwIikpLm9rPShhbGhzLnN1YnRyYWN0KGFyaHMsbWMzKS50b1N0cmluZygpKS5lcXVhbHMoIjIuM0UrMTIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMTEiKSkub2s9KGFyaHMuc3VidHJhY3QoYWxocyxtYzMpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIuM0UrMTIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMTIiKSkub2s9KGFsaHMuc3VidHJhY3QoYXJocykudG9TdHJpbmcoKSkuZXF1YWxzKCIyMzQ1Njc4OTAwMDAxIik7CisgIChuZXcgVGVzdCgic3ViMTEzIikpLm9rPShhcmhzLnN1YnRyYWN0KGFsaHMpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIzNDU2Nzg5MDAwMDEiKTsKKyAgCisgIC8vIGFkZGl0aW9uYWwgc2NhbGVkIGFyaXRobWV0aWMgdGVzdHMgWzAuOTcgcHJvYmxlbV0KKyAgKG5ldyBUZXN0KCJzdWIxMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4xIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoInN1YjEyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi45Nzk4MyIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjk3OTgzIik7CisgIChuZXcgVGVzdCgic3ViMTIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuOSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjkiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTAyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMTAyIik7CisgIChuZXcgVGVzdCgic3ViMTI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjQiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4zMDciKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4zMDciKTsKKyAgKG5ldyBUZXN0KCJzdWIxMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi40MzgyMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjQzODIyIik7CisgIChuZXcgVGVzdCgic3ViMTI3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuOTExIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuOTExIik7CisgIChuZXcgVGVzdCgic3ViMTI4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLjAyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMzkyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMzkyIik7CisgIChuZXcgVGVzdCgic3ViMTMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMjYiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4yNiIpOworICAobmV3IFRlc3QoInN1YjEzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41MSIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjUxIik7CisgIChuZXcgVGVzdCgic3ViMTMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMjIzNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjIyMzQiKTsKKyAgKG5ldyBUZXN0KCJzdWIxMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4yIikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMiIpOworICAobmV3IFRlc3QoInN1YjEzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4wMDA4IikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwOCIpOworICAvLyAwLiBvbiBsZWZ0CisgIChuZXcgVGVzdCgic3ViMTQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMSIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInN1YjE0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS45Nzk4MyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuOTc5ODMiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS45IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Iik7CisgIChuZXcgVGVzdCgic3ViMTQzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjEwMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMTAyIik7CisgIChuZXcgVGVzdCgic3ViMTQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuNCIpOworICAobmV3IFRlc3QoInN1YjE0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjMwNyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzA3Iik7CisgIChuZXcgVGVzdCgic3ViMTQ2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uNDM4MjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjQzODIyIik7CisgIChuZXcgVGVzdCgic3ViMTQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uOTExIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45MTEiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4wMiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMzkyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4zOTIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4yNiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjYiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuNTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUxIik7CisgIChuZXcgVGVzdCgic3ViMTUyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMjIzNCIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjIzNCIpOworICAobmV3IFRlc3QoInN1YjE1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4wMDA4IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDA4Iik7CisgIC8vIG5lZ2F0aXZlcyBvZiBzYW1lCisgIChuZXcgVGVzdCgic3ViMTYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjk3OTgzIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Nzk4MyIpOworICAobmV3IFRlc3QoInN1YjE2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS45IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC45Iik7CisgIChuZXcgVGVzdCgic3ViMTYzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xMDIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwMiIpOworICAobmV3IFRlc3QoInN1YjE2NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS40IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40Iik7CisgIChuZXcgVGVzdCgic3ViMTY1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjMwNyIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMzA3Iik7CisgIChuZXcgVGVzdCgic3ViMTY2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjQzODIyIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC40MzgyMiIpOworICAobmV3IFRlc3QoInN1YjE2NyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS45MTEiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjkxMSIpOworICAobmV3IFRlc3QoInN1YjE2OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi4wIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0uMDIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAyIik7CisgIChuZXcgVGVzdCgic3ViMTY5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4zOTIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjM5MiIpOworICAobmV3IFRlc3QoInN1YjE3MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4yNiIpKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMjYiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnN1YnRyYWN0KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjUxIikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41MSIpOworICAobmV3IFRlc3QoInN1YjE3MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc3VidHJhY3QobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS4yMjM0IikpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4yMjM0Iik7CisgIChuZXcgVGVzdCgic3ViMTczIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjIiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjIiKTsKKyAgKG5ldyBUZXN0KCJzdWIxNzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIuMCIpKS5zdWJ0cmFjdChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItLjAwMDgiKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDgiKTsKKyAgCisgIC8vIG1vcmUgZml4ZWQsIExIUyBzd2FwcyBbcmVhbGx5IHNhbWUgYXMgdGVzdGNhc2VzIHVuZGVyIGFkZF0KKyAgKG5ldyBUZXN0KCJzdWIxODAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTEwIikpLnN1YnRyYWN0KHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDA1NjI2NyIpOworICAobmV3IFRlc3QoInN1YjE4MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtNSIpKS5zdWJ0cmFjdCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjU2MjY3Iik7CisgIChuZXcgVGVzdCgic3ViMTgyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTU2MjY3RS0yIikpLnN1YnRyYWN0KHplcm8pLnRvU3RyaW5nKCkpLmVxdWFscygiLTU2Mi42NyIpOworICAobmV3IFRlc3QoInN1YjE4MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01NjI2N0UtMSIpKS5zdWJ0cmFjdCh6ZXJvKS50b1N0cmluZygpKS5lcXVhbHMoIi01NjI2LjciKTsKKyAgKG5ldyBUZXN0KCJzdWIxODUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNTYyNjdFLTAiKSkuc3VidHJhY3QoemVybykudG9TdHJpbmcoKSkuZXF1YWxzKCItNTYyNjciKTsKKyAgCisgIHRyeXtjaGVja251bGw6ZG97CisgICB0ZW4uc3VidHJhY3QoKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ4Myl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbCovCisgIChuZXcgVGVzdCgic3ViMjAwIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja251bGwyOmRveworICAgdGVuLnN1YnRyYWN0KHRlbiwoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCludWxsKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uICQ4NCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbnVsbDIqLworICAobmV3IFRlc3QoInN1YjIwMSIpKS5vaz1mbGFnOworICAKKyAgdHJ5e2NoZWNrZGlnaXRzOmRveworICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLk9ORS5zdWJ0cmFjdCh0ZW5sb25nLG1jbGQpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkODUpe2FlPSQ4NTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGVubG9uZy50b1N0cmluZygpKTsKKyAgfS8qY2hlY2tkaWdpdHMqLworICAobmV3IFRlc3QoInN1YjIwMiIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tkaWdpdHM6ZG97CisgICB0ZW5sb25nLnN1YnRyYWN0KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC5PTkUsbWNsZCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ4Nil7YWU9JDg2OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlRvbyBtYW55IGRpZ2l0czoiKyIgIit0ZW5sb25nLnRvU3RyaW5nKCkpOworICB9LypjaGVja2RpZ2l0cyovCisgIChuZXcgVGVzdCgic3ViMjAzIikpLm9rPWZsYWc7CisgIHN1bW1hcnkoInN1YnRyYWN0Iik7CisgfQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIE90aGVyIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUgPGNvZGU+QmlnRGVjaW1hbC5ieXRlVmFsdWUoKTwvY29kZT4gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdieXRlVmFsdWUoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuU3RyaW5nIHY9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgamF2YS5sYW5nLlN0cmluZyBiYWRzdHJpbmdzW107CisgIGludCBpPTA7CisgIGphdmEubGFuZy5TdHJpbmcgbm9ybT1udWxsOworICAKKyAgCisgIChuZXcgVGVzdCgiYnl2MDAxIikpLm9rPSgoKChieXRlKS0xMjgpKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEyOCIpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDAyIikpLm9rPSgoMCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwMyIpKS5vaz0oKDEpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMDQiKSkub2s9KCg5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMDUiKSkub2s9KCgxMjcpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjciKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwNiIpKS5vaz0oKC0xMjgpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjgiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwNyIpKS5vaz0oKC0xMjcpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjkiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwOCIpKS5vaz0oKDEyNykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xMjkiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAwOSIpKS5vaz0oKDEyNikpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xMzAiKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAxMCIpKS5vaz0oKGJtYXgpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtYXgpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDExIikpLm9rPSgoYm1pbikpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1pbikpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMTIiKSkub2s9KChibmVnKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibmVnKSkuYnl0ZVZhbHVlKCkpOworICAobmV3IFRlc3QoImJ5djAxMyIpKS5vaz0oKGJ6ZXIpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJ6ZXIpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDE0IikpLm9rPSgoYnBvcykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYnBvcykpLmJ5dGVWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMTUiKSkub2s9KChibWluKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibWF4KzEpKS5ieXRlVmFsdWUoKSk7CisgIChuZXcgVGVzdCgiYnl2MDE2IikpLm9rPSgoYm1heCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1pbi0xKSkuYnl0ZVZhbHVlKCkpOworICAKKyAgKG5ldyBUZXN0KCJieXYwMjEiKSkub2s9KCgoKGJ5dGUpLTEyOCkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTI4IikpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyMiIpKS5vaz0oKDApKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyMyIpKS5vaz0oKDEpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyNCIpKS5vaz0oKDk5KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTkiKSkuYnl0ZVZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgiYnl2MDI1IikpLm9rPSgoMTI3KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTI3IikpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyNiIpKS5vaz0oKGJtYXgpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtYXgpKS5ieXRlVmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMjciKSkub2s9KChibWluKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibWluKSkuYnl0ZVZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgiYnl2MDI4IikpLm9rPSgoYm5lZykpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm5lZykpLmJ5dGVWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoImJ5djAyOSIpKS5vaz0oKGJ6ZXIpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJ6ZXIpKS5ieXRlVmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJieXYwMzAiKSkub2s9KChicG9zKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChicG9zKSkuYnl0ZVZhbHVlRXhhY3QoKSk7CisgIHRyeXsKKyAgIHY9Ii0xMjkiOworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLmJ5dGVWYWx1ZUV4YWN0KCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkODcpe2FlPSQ4NzsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgiYnl2MTAwIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIHY9IjEyOCI7CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuYnl0ZVZhbHVlRXhhY3QoKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ4OCl7YWU9JDg4OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdik7CisgIH0KKyAgKG5ldyBUZXN0KCJieXYxMDEiKSkub2s9ZmxhZzsKKyAgdHJ5eworICAgdj0iMS41IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5ieXRlVmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDg5KXthZT0kODk7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgiYnl2MTAyIikpLm9rPWZsYWc7CisgIAorICBiYWRzdHJpbmdzPW5ldyBqYXZhLmxhbmcuU3RyaW5nW117IjEyMzQiLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtYXgpKS5hZGQob25lKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtaW4pKS5zdWJ0cmFjdChvbmUpLnRvU3RyaW5nKCksIjE3MCIsIjI3MCIsIjM3MCIsIjQ3MCIsIjU3MCIsIjY3MCIsIjc3MCIsIjg3MCIsIjk3MCIsIi0xNzAiLCItMjcwIiwiLTM3MCIsIi00NzAiLCItNTcwIiwiLTY3MCIsIi03NzAiLCItODcwIiwiLTk3MCIsKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1pbikpLm11bHRpcGx5KHR3bykudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChibWF4KSkubXVsdGlwbHkodHdvKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJtaW4pKS5tdWx0aXBseSh0ZW4pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoYm1heCkpLm11bHRpcGx5KHRlbikudG9TdHJpbmcoKSwiLTEyMzQifTsgLy8gMjIwCisgIC8vIDIyMQorICAvLyAyMjIKKyAgLy8gMjIzCisgIC8vIDIyNAorICAvLyAyMjUKKyAgLy8gMjI2CisgIC8vIDIyNworICAvLyAyMjgKKyAgLy8gMjI5CisgIC8vIDIzMAorICAvLyAyMzEKKyAgLy8gMjMyCisgIC8vIDIzMworICAvLyAyMzQKKyAgLy8gMjM1CisgIC8vIDIzNgorICAvLyAyMzcKKyAgLy8gMjM4CisgIC8vIDIzOQorICAvLyAyNDAKKyAgLy8gMjQxCisgIC8vIDI0MgorICAvLyAyNDMKKyAgLy8gMjQ0CisgIC8vIDI0NQorICB7aW50ICQ5MD1iYWRzdHJpbmdzLmxlbmd0aDtpPTA7aTpmb3IoOyQ5MD4wOyQ5MC0tLGkrKyl7CisgICB0cnl7CisgICAgdj1iYWRzdHJpbmdzW2ldOworICAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5ieXRlVmFsdWVFeGFjdCgpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDkxKXthZT0kOTE7CisgICAgbm9ybT0obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgiYnl2IisoMjIwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIAorICBzdW1tYXJ5KCJieXRlVmFsdWUrIik7CisgfQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNjb21wYXJlVG8oamF2YS5sYW5nLk9iamVjdCl9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnY29tcGFyZXRvT2JqKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQ7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsb25nMTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGxvbmcyOworICAKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDE3KTsKKyAgKG5ldyBUZXN0KCJjdG8wMDEiKSkub2s9KGQuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDY2KSkpKT09KC0xKTsKKyAgKG5ldyBUZXN0KCJjdG8wMDIiKSkub2s9KGQuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxMCkpLmFkZChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDcpKSkpKT09MDsKKyAgKG5ldyBUZXN0KCJjdG8wMDMiKSkub2s9KGQuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDEwKSkpKT09MTsKKyAgbG9uZzE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDMiKTsKKyAgbG9uZzI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDU2Nzg5MDAiKTsKKyAgKG5ldyBUZXN0KCJjdG8wMDQiKSkub2s9KGxvbmcxLmNvbXBhcmVUbygoamF2YS5sYW5nLk9iamVjdClsb25nMikpPT0xOworICAobmV3IFRlc3QoImN0bzAwNSIpKS5vaz0obG9uZzIuY29tcGFyZVRvKChqYXZhLmxhbmcuT2JqZWN0KWxvbmcxKSk9PSgtMSk7CisgIChuZXcgVGVzdCgiY3RvMDA2IikpLm9rPShsb25nMi5jb21wYXJlVG8oKGphdmEubGFuZy5PYmplY3QpbG9uZzIpKT09MDsKKyAgdHJ5eworICAgZC5jb21wYXJlVG8oKGphdmEubGFuZy5PYmplY3QpbnVsbCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gJDkyKXsKKyAgIGZsYWc9dHJ1ZTsgLy8gc2hvdWxkIGdldCBoZXJlCisgIH0KKyAgKG5ldyBUZXN0KCJjdG8xMDEiKSkub2s9ZmxhZzsKKyAgdHJ5eworICAgZC5jb21wYXJlVG8oKGphdmEubGFuZy5PYmplY3QpImZvbyIpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkNsYXNzQ2FzdEV4Y2VwdGlvbiAkOTMpeworICAgZmxhZz10cnVlOyAvLyBzaG91bGQgZ2V0IGhlcmUKKyAgfQorICAobmV3IFRlc3QoImN0bzEwMiIpKS5vaz1mbGFnOworICBzdW1tYXJ5KCJjb21wYXJlVG8oT2JqKSIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjZG91YmxlVmFsdWV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnZG91YmxldmFsdWUoKXsKKyAgamF2YS5sYW5nLlN0cmluZyB2YWw7CisgIC8vIDE5OTkuMDMuMDcgSW5maW5pdGllcyBubyBsb25nZXIgZXJyb3JzCisgIHZhbD0iLTEiOworICAobmV3IFRlc3QoImRvdjAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZG91YmxlVmFsdWUoKSk9PSgobmV3IGphdmEubGFuZy5Eb3VibGUodmFsKSkuZG91YmxlVmFsdWUoKSk7CisgIHZhbD0iLTAuMSI7CisgIChuZXcgVGVzdCgiZG92MDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5kb3VibGVWYWx1ZSgpKT09KChuZXcgamF2YS5sYW5nLkRvdWJsZSh2YWwpKS5kb3VibGVWYWx1ZSgpKTsKKyAgdmFsPSIwIjsKKyAgKG5ldyBUZXN0KCJkb3YwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmRvdWJsZVZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRG91YmxlKHZhbCkpLmRvdWJsZVZhbHVlKCkpOworICB2YWw9IjAuMSI7CisgIChuZXcgVGVzdCgiZG92MDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5kb3VibGVWYWx1ZSgpKT09KChuZXcgamF2YS5sYW5nLkRvdWJsZSh2YWwpKS5kb3VibGVWYWx1ZSgpKTsKKyAgdmFsPSIxIjsKKyAgKG5ldyBUZXN0KCJkb3YwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmRvdWJsZVZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRG91YmxlKHZhbCkpLmRvdWJsZVZhbHVlKCkpOworICB2YWw9IjFlMTAwMCI7CisgIChuZXcgVGVzdCgiZG92MDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5kb3VibGVWYWx1ZSgpKT09amF2YS5sYW5nLkRvdWJsZS5QT1NJVElWRV9JTkZJTklUWTsKKyAgdmFsPSItMWUxMDAwIjsKKyAgKG5ldyBUZXN0KCJkb3YwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmRvdWJsZVZhbHVlKCkpPT1qYXZhLmxhbmcuRG91YmxlLk5FR0FUSVZFX0lORklOSVRZOworICBzdW1tYXJ5KCJkb3VibGVWYWx1ZSIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjZXF1YWxzfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2VxdWFscygpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDsKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDE3KTsKKyAgKG5ldyBUZXN0KCJlcXUwMDEiKSkub2s9KCEoZC5lcXVhbHMoKGphdmEubGFuZy5PYmplY3QpbnVsbCkpKTsKKyAgKG5ldyBUZXN0KCJlcXUwMDIiKSkub2s9KCEoZC5lcXVhbHMoKGphdmEubGFuZy5PYmplY3QpImZvbyIpKSk7CisgIChuZXcgVGVzdCgiZXF1MDAzIikpLm9rPSghKGQuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDY2KSkpKSk7CisgIChuZXcgVGVzdCgiZXF1MDA0IikpLm9rPWQuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KWQpOworICAobmV3IFRlc3QoImVxdTAwNSIpKS5vaz1kLmVxdWFscygoamF2YS5sYW5nLk9iamVjdCkoKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoMTApKS5hZGQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCg3KSkpKTsKKyAgc3VtbWFyeSgiZXF1YWxzIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNmbG9hdFZhbHVlfSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ2Zsb2F0dmFsdWUoKXsKKyAgamF2YS5sYW5nLlN0cmluZyB2YWw7CisgIC8vIDE5OTkuMDMuMDcgSW5maW5pdGllcyBubyBsb25nZXIgZXJyb3JzCisgIHZhbD0iLTEiOworICAobmV3IFRlc3QoImZsdjAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZmxvYXRWYWx1ZSgpKT09KChuZXcgamF2YS5sYW5nLkZsb2F0KHZhbCkpLmZsb2F0VmFsdWUoKSk7CisgIHZhbD0iLTAuMSI7CisgIChuZXcgVGVzdCgiZmx2MDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRmxvYXQodmFsKSkuZmxvYXRWYWx1ZSgpKTsKKyAgdmFsPSIwIjsKKyAgKG5ldyBUZXN0KCJmbHYwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmZsb2F0VmFsdWUoKSk9PSgobmV3IGphdmEubGFuZy5GbG9hdCh2YWwpKS5mbG9hdFZhbHVlKCkpOworICB2YWw9IjAuMSI7CisgIChuZXcgVGVzdCgiZmx2MDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT0oKG5ldyBqYXZhLmxhbmcuRmxvYXQodmFsKSkuZmxvYXRWYWx1ZSgpKTsKKyAgdmFsPSIxIjsKKyAgKG5ldyBUZXN0KCJmbHYwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmZsb2F0VmFsdWUoKSk9PSgobmV3IGphdmEubGFuZy5GbG9hdCh2YWwpKS5mbG9hdFZhbHVlKCkpOworICB2YWw9IjFlMjAwIjsKKyAgKG5ldyBUZXN0KCJmbHYwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHZhbCkpLmZsb2F0VmFsdWUoKSk9PWphdmEubGFuZy5GbG9hdC5QT1NJVElWRV9JTkZJTklUWTsKKyAgdmFsPSItMWUyMDAiOworICAobmV3IFRlc3QoImZsdjAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodmFsKSkuZmxvYXRWYWx1ZSgpKT09amF2YS5sYW5nLkZsb2F0Lk5FR0FUSVZFX0lORklOSVRZOworICB2YWw9IjFlMTAwMCI7CisgIChuZXcgVGVzdCgiZmx2MDA4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT1qYXZhLmxhbmcuRmxvYXQuUE9TSVRJVkVfSU5GSU5JVFk7CisgIHZhbD0iLTFlMTAwMCI7CisgIChuZXcgVGVzdCgiZmx2MDA5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2YWwpKS5mbG9hdFZhbHVlKCkpPT1qYXZhLmxhbmcuRmxvYXQuTkVHQVRJVkVfSU5GSU5JVFk7CisgIHN1bW1hcnkoImZsb2F0VmFsdWUiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI2Zvcm1hdH0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdmb3JtYXQoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBpbnQgZW5nOworICBpbnQgc2NpOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDA0OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDA1OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDA2OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDE1OworICBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZT1udWxsOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDA1MDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQxNTA7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBtMDUwOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbTE1MDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQwNTE7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkMTUxOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDAwMDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQ1MDA7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIC8vIDE5OTkuMDIuMDkgbm93IG9ubHkgdHdvIHNpZ25hdHVyZXMgZm9yIGZvcm1hdCgpLCBzbyBzb21lIHRlc3RzIGJlbG93CisgIC8vICAgICAgICAgICAgbWF5IG5vdyBiZSByZWR1bmRhbnQKKyAgCisgIChuZXcgVGVzdCgiZm9yMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIuMyIpKS5mb3JtYXQoLTEsLTEpKS5lcXVhbHMoIjEyLjMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTIuNzMiKSkuZm9ybWF0KC0xLC0xKSkuZXF1YWxzKCItMTIuNzMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMCIpKS5mb3JtYXQoLTEsLTEpKS5lcXVhbHMoIjAuMDAwIik7CisgIChuZXcgVGVzdCgiZm9yMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiM0UrMyIpKS5mb3JtYXQoLTEsLTEpKS5lcXVhbHMoIjMwMDAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzIikpLmZvcm1hdCg0LC0xKSkuZXF1YWxzKCIgICAzIik7CisgIChuZXcgVGVzdCgiZm9yMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS43MyIpKS5mb3JtYXQoNCwwKSkuZXF1YWxzKCIgICAyIik7CisgIChuZXcgVGVzdCgiZm9yMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS43MyIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgICAxLjciKTsKKyAgKG5ldyBUZXN0KCJmb3IwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjc1IikpLmZvcm1hdCg0LDEpKS5lcXVhbHMoIiAgIDEuOCIpOworICAobmV3IFRlc3QoImZvcjAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNSIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgICAwLjUiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1IikpLmZvcm1hdCg0LDEpKS5lcXVhbHMoIiAgIDAuMSIpOworICAobmV3IFRlc3QoImZvcjAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDQiKSkuZm9ybWF0KDQsMSkpLmVxdWFscygiICAgMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5mb3JtYXQoNCwwKSkuZXF1YWxzKCIgICAwIik7CisgIChuZXcgVGVzdCgiZm9yMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgICAwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmZvcm1hdCg0LDIpKS5lcXVhbHMoIiAgIDAuMDAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmZvcm1hdCg0LDMpKS5lcXVhbHMoIiAgIDAuMDAwIik7CisgIChuZXcgVGVzdCgiZm9yMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5mb3JtYXQoNCw0KSkuZXF1YWxzKCIgICAwLjAwMDAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5mb3JtYXQoNCwwKSkuZXF1YWxzKCIgICAwIik7CisgIChuZXcgVGVzdCgiZm9yMDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuZm9ybWF0KDQsMSkpLmVxdWFscygiICAgMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuZm9ybWF0KDQsMikpLmVxdWFscygiICAgMC4wMSIpOworICAobmV3IFRlc3QoImZvcjAyMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA0IikpLmZvcm1hdCg0LDIpKS5lcXVhbHMoIiAgIDAuMDAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5mb3JtYXQoNCwzKSkuZXF1YWxzKCIgICAwLjAwNSIpOworICAobmV3IFRlc3QoImZvcjAyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLmZvcm1hdCg0LDQpKS5lcXVhbHMoIiAgIDAuMDA1MCIpOworICAKKyAgKG5ldyBUZXN0KCJmb3IwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjczIikpLmZvcm1hdCg0LDIpKS5lcXVhbHMoIiAgIDEuNzMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjczIikpLmZvcm1hdCg0LDMpKS5lcXVhbHMoIiAgIDEuNzMwIik7CisgIChuZXcgVGVzdCgiZm9yMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLS43NiIpKS5mb3JtYXQoNCwxKSkuZXF1YWxzKCIgIC0wLjgiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTIuNzMiKSkuZm9ybWF0KC0xLDQpKS5lcXVhbHMoIi0xMi43MzAwIik7CisgIAorICAobmV3IFRlc3QoImZvcjAyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDMiKSkuZm9ybWF0KDQsLTEpKS5lcXVhbHMoIiAgIDMuMDMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIzLjAzIikpLmZvcm1hdCg0LDEpKS5lcXVhbHMoIiAgIDMuMCIpOworICAobmV3IFRlc3QoImZvcjAyOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjMuMDMiKSkuZm9ybWF0KDQsLTEsMywtMSwtMSwtMSkpLmVxdWFscygiICAgMy4wMyAgICAgIik7CisgIChuZXcgVGVzdCgiZm9yMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMy4wMyIpKS5mb3JtYXQoLTEsLTEsMywtMSwtMSwtMSkpLmVxdWFscygiMy4wMyAgICAgIik7CisgIChuZXcgVGVzdCgiZm9yMDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLC0xLDQsLTEsLTEpKS5lcXVhbHMoIjEuMjM0NTczRSs0Iik7CisgIChuZXcgVGVzdCgiZm9yMDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLC0xLDUsLTEsLTEpKS5lcXVhbHMoIjEyMzQ1LjczIik7CisgIChuZXcgVGVzdCgiZm9yMDMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLC0xLDYsLTEsLTEpKS5lcXVhbHMoIjEyMzQ1LjczIik7CisgIAorICAobmV3IFRlc3QoImZvcjAzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSw4LC0xLDMsLTEsLTEpKS5lcXVhbHMoIjEuMjM0NTczMDBFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsNywtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzNDU3MzBFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsNiwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzNDU3M0UrNCIpOworICAobmV3IFRlc3QoImZvcjAzNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSw1LC0xLDMsLTEsLTEpKS5lcXVhbHMoIjEuMjM0NTdFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMzgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsNCwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzNDZFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwMzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsMywtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjIzNUUrNCIpOworICAobmV3IFRlc3QoImZvcjA0MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjczIikpLmZvcm1hdCgtMSwyLC0xLDMsLTEsLTEpKS5lcXVhbHMoIjEuMjNFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsMSwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxLjJFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS43MyIpKS5mb3JtYXQoLTEsMCwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxRSs0Iik7CisgIAorICAobmV3IFRlc3QoImZvcjA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5Ljk5IikpLmZvcm1hdCgtMSw2LC0xLDMsLTEsLTEpKS5lcXVhbHMoIjkuOTk5OTk5RSs0Iik7CisgIChuZXcgVGVzdCgiZm9yMDQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTkuOTkiKSkuZm9ybWF0KC0xLDUsLTEsMywtMSwtMSkpLmVxdWFscygiMS4wMDAwMEUrNSIpOworICAobmV3IFRlc3QoImZvcjA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5OTk5Ljk5IikpLmZvcm1hdCgtMSwyLC0xLDMsLTEsLTEpKS5lcXVhbHMoIjEuMDBFKzUiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OTk5OS45OSIpKS5mb3JtYXQoLTEsMCwtMSwzLC0xLC0xKSkuZXF1YWxzKCIxRSs1Iik7CisgIChuZXcgVGVzdCgiZm9yMDQ3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTk5OTkuOTkiKSkuZm9ybWF0KDMsMCwtMSwzLC0xLC0xKSkuZXF1YWxzKCIgIDFFKzUiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMDQ4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLDIsMiwtMSwtMSkpLmVxdWFscygiMS4yMzQ1NzNFKzA0Iik7CisgIChuZXcgVGVzdCgiZm9yMDQ5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLDMsLTEsMCwtMSwtMSkpLmVxdWFscygiMS4yMzVFKzQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjIzNDU3MyIpKS5mb3JtYXQoLTEsMywtMSwwLC0xLC0xKSkuZXF1YWxzKCIxLjIzNSIpOworICAobmV3IFRlc3QoImZvcjA1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMy40NSIpKS5mb3JtYXQoLTEsMywyLDAsLTEsLTEpKS5lcXVhbHMoIjEuMjM1RSswMiIpOworICAKKyAgKG5ldyBUZXN0KCJmb3IwNTIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjQ0NCIpKS5mb3JtYXQoLTEsMCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImZvcjA1MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjQ0NCIpKS5mb3JtYXQoLTEsMCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImZvcjA1NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNCIpKS5mb3JtYXQoLTEsMCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoImZvcjA1NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjQiKSkuZm9ybWF0KC0xLDApKS5lcXVhbHMoIjAiKTsKKyAgCisgIGVuZz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkVOR0lORUVSSU5HOworICBzY2k9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDOworICAobmV3IFRlc3QoImZvcjA2MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQuNSIpKS5mb3JtYXQoLTEsMywyLDAsZW5nLC0xKSkuZXF1YWxzKCIxLjIzNUUrMDMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NSIpKS5mb3JtYXQoLTEsMywzLDAsZW5nLC0xKSkuZXF1YWxzKCIxMi4zNDVFKzAwMyIpOworICAobmV3IFRlc3QoImZvcjA2MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1IikpLmZvcm1hdCgtMSwzLDMsMCxzY2ksLTEpKS5lcXVhbHMoIjEuMjM1RSswMDQiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0LjUiKSkuZm9ybWF0KDQsMywyLDAsZW5nLC0xKSkuZXF1YWxzKCIgICAxLjIzNUUrMDMiKTsKKyAgKG5ldyBUZXN0KCJmb3IwNjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMjM0NSIpKS5mb3JtYXQoNSwzLDMsMCxlbmcsLTEpKS5lcXVhbHMoIiAgIDEyLjM0NUUrMDAzIik7CisgIChuZXcgVGVzdCgiZm9yMDY1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUiKSkuZm9ybWF0KDYsMywzLDAsc2NpLC0xKSkuZXF1YWxzKCIgICAgIDEuMjM1RSswMDQiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMDY2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4yMzQ1IikpLmZvcm1hdCgtMSwzLDIsMCwtMSwtMSkpLmVxdWFscygiMS4yMzUgICAgIik7CisgIChuZXcgVGVzdCgiZm9yMDY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNzMiKSkuZm9ybWF0KC0xLC0xLDMsNiwtMSwtMSkpLmVxdWFscygiMTIzNDUuNzMgICAgICIpOworICAobmV3IFRlc3QoImZvcjA2OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1ZSs1IikpLmZvcm1hdCgtMSwwKSkuZXF1YWxzKCIxMjM0NTAwMDAwIik7CisgIChuZXcgVGVzdCgiZm9yMDY5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDVlKzUiKSkuZm9ybWF0KC0xLDEpKS5lcXVhbHMoIjEyMzQ1MDAwMDAuMCIpOworICAobmV3IFRlc3QoImZvcjA3MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1ZSs1IikpLmZvcm1hdCgtMSwyKSkuZXF1YWxzKCIxMjM0NTAwMDAwLjAwIik7CisgIChuZXcgVGVzdCgiZm9yMDcxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDVlKzUiKSkuZm9ybWF0KC0xLDMpKS5lcXVhbHMoIjEyMzQ1MDAwMDAuMDAwIik7CisgIChuZXcgVGVzdCgiZm9yMDcyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDVlKzUiKSkuZm9ybWF0KC0xLDQpKS5lcXVhbHMoIjEyMzQ1MDAwMDAuMDAwMCIpOworICAKKyAgLy8gc29tZSBmcm9tIEFOU0kgRGFsbGFzIFtOb3YgMTk5OF0KKyAgKG5ldyBUZXN0KCJmb3IwNzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OS45OTkiKSkuZm9ybWF0KC0xLDIsLTEsMiwtMSwtMSkpLmVxdWFscygiMTAwLjAwIik7CisgIChuZXcgVGVzdCgiZm9yMDc0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45OTk5OSIpKS5mb3JtYXQoLTEsNCwyLDIsLTEsLTEpKS5lcXVhbHMoIjEuMDAwMCAgICAiKTsKKyAgCisgIC8vIHRyeSBzb21lIHJvdW5kaW5nIG1vZGVzIFtkZWZhdWx0IFJPVU5EX0hBTEZfVVAgd2lkZWx5IHRlc3RlZCBhYm92ZV0KKyAgLy8gdGhlIGZpcnN0IGZldyBhbHNvIHRlc3RzIHRoYXQgZGVmYXVsdHMgYXJlIGFjY2VwdGVkIGZvciB0aGUgb3RoZXJzCisgIGQwND1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA0Iik7CisgIGQwNT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1Iik7CisgIGQwNj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA2Iik7CisgIGQxNT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1Iik7CisgIChuZXcgVGVzdCgiZm9yMDgwIikpLm9rPShkMDUuZm9ybWF0KC0xLDEpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjA4MSIpKS5vaz0oZDA1LmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiZm9yMDgyIikpLm9rPShkMDUuZm9ybWF0KC0xLDEsLTEsLTEsLTEsLTEpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjA4MyIpKS5vaz0oZDA1LmZvcm1hdCgtMSwtMSwtMSwtMSwtMSwtMSkpLmVxdWFscygiMC4wNSIpOworICAobmV3IFRlc3QoImZvcjA4NCIpKS5vaz0oZDA1LmZvcm1hdCgtMSwtMSkpLmVxdWFscygiMC4wNSIpOworICB0cnl7CisgICBkMDUuZm9ybWF0KC0xLC0xLC0xLC0xLC0xLDMwKTsgLy8gYmFkIG1vZGUKKyAgIGZsYWc9ZmFsc2U7IC8vIHNob3VsZG4ndCBnZXQgaGVyZQorICB9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQ5NCl7aWFlPSQ5NDsKKyAgIGZsYWc9KGlhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQmFkIGFyZ3VtZW50IDYgdG8gZm9ybWF0OiAzMCIpOworICB9CisgIChuZXcgVGVzdCgiZm9yMDg1IikpLm9rPWZsYWc7CisgIAorICAobmV3IFRlc3QoImZvcjA5MCIpKS5vaz0oZDA0LmZvcm1hdCgtMSwxKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwOTEiKSkub2s9KGQwNi5mb3JtYXQoLTEsMSkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiZm9yMDkyIikpLm9rPShkMDQuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImZvcjA5MyIpKS5vaz0oZDA1LmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwOTQiKSkub2s9KGQwNi5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikpLmVxdWFscygiMC4xIik7CisgIAorICAobmV3IFRlc3QoImZvcjA5NSIpKS5vaz0oZDA0LmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IwOTYiKSkub2s9KGQwNS5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMDk3IikpLm9rPShkMDYuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjA5OCIpKS5vaz0oZDE1LmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCIwLjIiKTsKKyAgZDA1MD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA1MCIpOworICBkMTUwPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMTUwIik7CisgIChuZXcgVGVzdCgiZm9yMDk5IikpLm9rPShkMDUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMDAiKSkub2s9KGQxNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pKS5lcXVhbHMoIjAuMiIpOworICBtMDUwPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjA1MCIpOworICBtMTUwPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjE1MCIpOworICAobmV3IFRlc3QoImZvcjEwMSIpKS5vaz0obTA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMTAyIikpLm9rPShtMTUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCItMC4yIik7CisgIGQwNTE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wNTEiKTsKKyAgZDE1MT1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjE1MSIpOworICAobmV3IFRlc3QoImZvcjEwMyIpKS5vaz0oZDA1MS5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgiZm9yMTA0IikpLm9rPShkMTUxLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKSkuZXF1YWxzKCIwLjIiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMTA1IikpLm9rPShtMDUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORykpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgiZm9yMTA2IikpLm9rPShtMTUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORykpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoImZvcjEwNyIpKS5vaz0oZDA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoImZvcjEwOCIpKS5vaz0oZDE1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpKS5lcXVhbHMoIjAuMiIpOworICAKKyAgKG5ldyBUZXN0KCJmb3IxMDkiKSkub2s9KG0wNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoImZvcjExMCIpKS5vaz0obTE1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKSkuZXF1YWxzKCItMC4yIik7CisgIChuZXcgVGVzdCgiZm9yMTExIikpLm9rPShkMDUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRkxPT1IpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImZvcjExMiIpKS5vaz0oZDE1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKSkuZXF1YWxzKCIwLjEiKTsKKyAgCisgIChuZXcgVGVzdCgiZm9yMTEzIikpLm9rPShtMDUwLmZvcm1hdCgtMSwxLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVApKS5lcXVhbHMoIi0wLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMTQiKSkub2s9KG0xNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkpLmVxdWFscygiLTAuMiIpOworICAobmV3IFRlc3QoImZvcjExNSIpKS5vaz0oZDA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMTYiKSkub2s9KGQxNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkpLmVxdWFscygiMC4yIik7CisgIAorICAobmV3IFRlc3QoImZvcjExNyIpKS5vaz0obTA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoImZvcjExOCIpKS5vaz0obTE1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pKS5lcXVhbHMoIi0wLjEiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMTkiKSkub2s9KGQwNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjAiKSkub2s9KGQxNTAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOKSkuZXF1YWxzKCIwLjEiKTsKKyAgCisgIGQwMDA9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDAiKTsKKyAgZDUwMD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjUwMCIpOworICAobmV3IFRlc3QoImZvcjEyMSIpKS5vaz0oZDAwMC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjIiKSkub2s9KGQwMDAuZm9ybWF0KC0xLDIsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoImZvcjEyMyIpKS5vaz0oZDAwMC5mb3JtYXQoLTEsMywtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKSkuZXF1YWxzKCIwLjAwMCIpOworICB0cnl7IC8vIHRoaXMgc2hvdWxkIHRyYXAuLgorICAgZDA1MC5mb3JtYXQoLTEsMSwtMSwtMSwtMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQ5NSl7YWU9JDk1OworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIlJvdW5kaW5nIG5lY2Vzc2FyeSIpOworICB9CisgIChuZXcgVGVzdCgiZm9yMTI0IikpLm9rPWZsYWc7CisgIChuZXcgVGVzdCgiZm9yMTI1IikpLm9rPShkMDUwLmZvcm1hdCgtMSwyLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpKS5lcXVhbHMoIjAuMDUiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjYiKSkub2s9KGQwNTAuZm9ybWF0KC0xLDMsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSkpLmVxdWFscygiMC4wNTAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjciKSkub2s9KGQ1MDAuZm9ybWF0KC0xLDEsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSkpLmVxdWFscygiMC41Iik7CisgIChuZXcgVGVzdCgiZm9yMTI4IikpLm9rPShkNTAwLmZvcm1hdCgtMSwyLC0xLC0xLC0xLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlkpKS5lcXVhbHMoIjAuNTAiKTsKKyAgKG5ldyBUZXN0KCJmb3IxMjkiKSkub2s9KGQ1MDAuZm9ybWF0KC0xLDMsLTEsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSkpLmVxdWFscygiMC41MDAiKTsKKyAgCisgIC8vIGJhZCBuZWdzIC0tCisgIHRyeXsKKyAgIGQwNTAuZm9ybWF0KC0yLC0xLC0xLC0xLC0xLC0xKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDk2KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfQorICAobmV3IFRlc3QoImZvcjEzMSIpKS5vaz1mbGFnOworICB0cnl7CisgICBkMDUwLmZvcm1hdCgtMSwtMiwtMSwtMSwtMSwtMSk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQ5Nyl7CisgICBmbGFnPXRydWU7CisgIH0KKyAgKG5ldyBUZXN0KCJmb3IxMzIiKSkub2s9ZmxhZzsKKyAgdHJ5eworICAgZDA1MC5mb3JtYXQoLTEsLTEsLTIsLTEsLTEsLTEpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkOTgpeworICAgZmxhZz10cnVlOworICB9CisgIChuZXcgVGVzdCgiZm9yMTMzIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIGQwNTAuZm9ybWF0KC0xLC0xLC0xLC0yLC0xLC0xKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDk5KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfQorICAobmV3IFRlc3QoImZvcjEzNCIpKS5vaz1mbGFnOworICB0cnl7CisgICBkMDUwLmZvcm1hdCgtMSwtMSwtMSwtMSwtMiwtMSk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQxMDApeworICAgZmxhZz10cnVlOworICB9CisgIChuZXcgVGVzdCgiZm9yMTM1IikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIGQwNTAuZm9ybWF0KC0xLC0xLC0xLC0xLC0xLC0yKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDEwMSl7CisgICBmbGFnPXRydWU7CisgIH0KKyAgKG5ldyBUZXN0KCJmb3IxMzYiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoImZvcm1hdCIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjaGFzaENvZGV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnaGFzaGNvZGUoKXsKKyAgamF2YS5sYW5nLlN0cmluZyBoczsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQ7CisgIGhzPSIyNzgyNzgxNyI7CisgIGQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChocyk7CisgIChuZXcgVGVzdCgiaGFzMDAxIikpLm9rPShkLmhhc2hDb2RlKCkpPT0oaHMuaGFzaENvZGUoKSk7CisgIGhzPSIxLjI2NUUrMjAwIjsKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGhzKTsKKyAgKG5ldyBUZXN0KCJoYXMwMDIiKSkub2s9KGQuaGFzaENvZGUoKSk9PShocy5oYXNoQ29kZSgpKTsKKyAgaHM9IjEyNi41RSsyMDAiOworICBkPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaHMpOworICAobmV3IFRlc3QoImhhczAwMyIpKS5vaz0oZC5oYXNoQ29kZSgpKSE9KGhzLmhhc2hDb2RlKCkpOworICBzdW1tYXJ5KCJoYXNoQ29kZSIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjaW50VmFsdWV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnaW50dmFsdWUoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuU3RyaW5nIHY9bnVsbDsKKyAgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gYWU9bnVsbDsKKyAgamF2YS5sYW5nLlN0cmluZyBiYWRzdHJpbmdzW107CisgIGludCBpPTA7CisgIGphdmEubGFuZy5TdHJpbmcgbm9ybT1udWxsOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGltYXg7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBudW09bnVsbDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGR2PW51bGw7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkaW1pbjsKKyAgCisgIAorICAvLyBpbnRWYWx1ZSAtLQorICAKKyAgKG5ldyBUZXN0KCJpbnYwMDEiKSkub2s9aW1pbj09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltaW4pKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMDIiKSkub2s9KCg5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwMyIpKS5vaz0oKDEpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwNCIpKS5vaz0oKDApKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwNSIpKS5vaz0oKC0xKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDA2IikpLm9rPSgoLTk5KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTk5IikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwNyIpKS5vaz1pbWF4PT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1heCkpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAwOCIpKS5vaz0oKDUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDA5IikpLm9rPSgoNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuMyIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMTAiKSkub2s9KCg1KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS41IikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAxMSIpKS5vaz0oKDUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjciKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDEyIikpLm9rPSgoNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjUuOSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMTMiKSkub2s9KCgtNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01LjAiKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDE0IikpLm9rPSgoLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS4zIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAxNSIpKS5vaz0oKC01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuNSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMTYiKSkub2s9KCgtNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01LjciKSkuaW50VmFsdWUoKSk7CisgIChuZXcgVGVzdCgiaW52MDE3IikpLm9rPSgoLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS45IikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjg4ODg4ODg4ODg4IikpLmludFZhbHVlKCkpPT0oLTEzMDU0MjQzMjgpOyAvLyB1Z2gKKyAgKG5ldyBUZXN0KCJpbnYwMTkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItODg4ODg4ODg4ODgiKSkuaW50VmFsdWUoKSk9PTEzMDU0MjQzMjg7IC8vIHVnaAorICAobmV3IFRlc3QoImludjAyMCIpKS5vaz0oKGltaW4pKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCgoKGxvbmcpaW1heCkpKzEpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYwMjEiKSkub2s9KChpbWF4KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgoKChsb25nKWltaW4pKS0xKSkuaW50VmFsdWUoKSk7CisgIAorICAvLyBpbnRWYWx1ZUV4YWN0IC0tCisgIAorICAobmV3IFRlc3QoImludjEwMSIpKS5vaz1pbWluPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1pbikpLmludFZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgiaW52MTAyIikpLm9rPSgoOTkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDMiKSkub2s9KCgxKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDQiKSkub2s9KCgwKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDUiKSkub2s9KCgtMSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjEwNiIpKS5vaz0oKC05OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi05OSIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDciKSkub2s9aW1heD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMDgiKSkub2s9KCg1KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiNS4wIikpLmludFZhbHVlKCkpOworICAobmV3IFRlc3QoImludjEwOSIpKS5vaz0oKC01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuMCIpKS5pbnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJpbnYxMTAiKSkub2s9aW1heD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpKS5pbnRWYWx1ZUV4YWN0KCkpOworICAKKyAgdHJ5eworICAgdj0iLTg4NTg4Njg4ODg4IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5pbnRWYWx1ZUV4YWN0KCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTAyKXthZT0kMTAyOworICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdik7CisgIH0KKyAgKG5ldyBUZXN0KCJpbnYyMDAiKSkub2s9ZmxhZzsKKyAgCisgIC8vIHRoaXMgb25lIGNvdWxkIHJhaXNlIGVpdGhlciBvdmVyZmxvdyBvciBiYWQgZGVjaW1hbCBwYXJ0CisgIHRyeXsKKyAgIHY9Ijg4MDg4ODE4ODg4LjAwMDAxIjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5pbnRWYWx1ZUV4YWN0KCk7CisgICBmbGFnPWZhbHNlOworICB9CisgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTAzKXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfQorICAobmV3IFRlc3QoImludjIwMSIpKS5vaz1mbGFnOworICAKKyAgLy8gMTk5OS4xMC4yODogdGhlIHRlc3RjYXNlcyBtYXJrZWQgJyonIGZhaWxlZAorICBiYWRzdHJpbmdzPW5ldyBqYXZhLmxhbmcuU3RyaW5nW117IjEyMzQ1Njc4OTAxIiwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWF4KSkuYWRkKG9uZSkudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWluKSkuc3VidHJhY3Qob25lKS50b1N0cmluZygpLCIzNzMxMzY3MjkzIiwiNDczMTM2NzI5MyIsIjU3MzEzNjcyOTMiLCI2NzMxMzY3MjkzIiwiNzczMTM2NzI5MyIsIjg3MzEzNjcyOTMiLCI5NzMxMzY3MjkzIiwiLTM3MzEzNjcyOTMiLCItNDczMTM2NzI5MyIsIi01NzMxMzY3MjkzIiwiLTY3MzEzNjcyOTMiLCItNzczMTM2NzI5MyIsIi04NzMxMzY3MjkzIiwiLTk3MzEzNjcyOTMiLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltaW4pKS5tdWx0aXBseSh0d28pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1heCkpLm11bHRpcGx5KHR3bykudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpbWluKSkubXVsdGlwbHkodGVuKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpKS5tdWx0aXBseSh0ZW4pLnRvU3RyaW5nKCksIjQ3MzEzNjcyOTMiLCI0ODMxMzY3MjkzIiwiNDkzMTM2NzI5MyIsIjUwMzEzNjcyOTMiLCI1MTMxMzY3MjkzIiwiNTIzMTM2NzI5MyIsIjUzMzEzNjcyOTMiLCI1NDMxMzY3MjkzIiwiNTUzMTM2NzI5MyIsIjU2MzEzNjcyOTMiLCI1NzMxMzY3MjkzIiwiNTgzMTM2NzI5MyIsIjU5MzEzNjcyOTMiLCI2MDMxMzY3MjkzIiwiNjEzMTM2NzI5MyIsIjYyMzEzNjcyOTMiLCI2MzMxMzY3MjkzIiwiNjQzMTM2NzI5MyIsIjY1MzEzNjcyOTMiLCI2NjMxMzY3MjkzIiwiNjczMTM2NzI5MyIsIjIyMDAwMDAwMDAiLCIyMzAwMDAwMDAwIiwiMjQwMDAwMDAwMCIsIjI1MDAwMDAwMDAiLCIyNjAwMDAwMDAwIiwiMjcwMDAwMDAwMCIsIjI4MDAwMDAwMDAiLCIyOTAwMDAwMDAwIiwiLTIyMDAwMDAwMDAiLCItMjMwMDAwMDAwMCIsIi0yNDAwMDAwMDAwIiwiLTI1MDAwMDAwMDAiLCItMjYwMDAwMDAwMCIsIi0yNzAwMDAwMDAwIiwiLTI4MDAwMDAwMDAiLCItMjkwMDAwMDAwMCIsIjI1RSs4IiwiLTI1RSs4IiwiLTEyMzQ1Njc4OTAxIn07IC8vIDIyMAorICAvLyAyMjEKKyAgLy8gMjIyCisgIC8vIDIyMworICAvLyAyMjQKKyAgLy8gMjI1ICAqCisgIC8vIDIyNgorICAvLyAyMjcKKyAgLy8gMjI4CisgIC8vIDIyOSAgKgorICAvLyAyMzAKKyAgLy8gMjMxCisgIC8vIDIzMiAgKgorICAvLyAyMzMKKyAgLy8gMjM0CisgIC8vIDIzNQorICAvLyAyMzYgICoKKyAgLy8gMjM3CisgIC8vIDIzOAorICAvLyAyMzkKKyAgLy8gMjQwCisgIC8vIDI0MQorICAvLyAyNDIgICoKKyAgLy8gMjQzICAqCisgIC8vIDI0NCAgKgorICAvLyAyNDUgICoKKyAgLy8gMjQ2ICAqCisgIC8vIDI0NyAgKgorICAvLyAyNDggICoKKyAgLy8gMjQ5ICAqCisgIC8vIDI1MCAgKgorICAvLyAyNTEgICoKKyAgLy8gMjUyICAqCisgIC8vIDI1MyAgKgorICAvLyAyNTQgICoKKyAgLy8gMjU1ICAqCisgIC8vIDI1NiAgKgorICAvLyAyNTcgICoKKyAgLy8gMjU4ICAqCisgIC8vIDI1OQorICAvLyAyNjAKKyAgLy8gMjYxCisgIC8vIDI2MgorICAvLyAyNjMKKyAgLy8gMjY0CisgIC8vIDI2NQorICAvLyAyNjYKKyAgLy8gMjY3CisgIC8vIDI2OAorICAvLyAyNjkKKyAgLy8gMjcwCisgIC8vIDI3MQorICAvLyAyNzIKKyAgLy8gMjczCisgIC8vIDI3NAorICAvLyAyNzUKKyAgLy8gMjc2CisgIC8vIDI3NworICAvLyAyNzgKKyAgLy8gMjc5CisgIC8vIDI4MAorICB7aW50ICQxMDQ9YmFkc3RyaW5ncy5sZW5ndGg7aT0wO2k6Zm9yKDskMTA0PjA7JDEwNC0tLGkrKyl7CisgICB0cnl7CisgICAgdj1iYWRzdHJpbmdzW2ldOworICAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5pbnRWYWx1ZUV4YWN0KCk7CisgICAgZmxhZz1mYWxzZTsKKyAgIH0KKyAgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTA1KXthZT0kMTA1OworICAgIG5vcm09KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLnRvU3RyaW5nKCk7CisgICAgZmxhZz0oYWUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrbm9ybSk7CisgICB9CisgICAobmV3IFRlc3QoImludiIrKDIyMCtpKSkpLm9rPWZsYWc7CisgICB9CisgIH0vKmkqLworICAKKyAgLy8gbm93IHNsaXAgaW4gc29tZSBzaW5nbGUgYml0cy4uLgorICBkaW1heD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGltYXgpOworICB7aT0wO2k6Zm9yKDtpPD00OTtpKyspeworICAgdHJ5eworICAgIG51bT10d28ucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaSksbWM1MCk7CisgICAgZHY9ZGltYXguYWRkKG51bSxtYzUwKTsKKyAgICBkdi5pbnRWYWx1ZUV4YWN0KCk7CisgICAgZmxhZz1mYWxzZTsKKyAgIH0KKyAgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTA2KXthZT0kMTA2OworICAgIG5vcm09ZHYudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgiaW52IisoMzAwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIGRpbWluPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW1pbik7CisgIHtpPTUwO2k6Zm9yKDtpPD05OTtpKyspeworICAgdHJ5eworICAgIG51bT10d28ucG93KG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaSksbWM1MCk7CisgICAgZHY9ZGltaW4uc3VidHJhY3QobnVtLG1jNTApOworICAgIGR2LmludFZhbHVlRXhhY3QoKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMDcpe2FlPSQxMDc7CisgICAgbm9ybT1kdi50b1N0cmluZygpOworICAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK25vcm0pOworICAgfQorICAgKG5ldyBUZXN0KCJpbnYiKygzMDAraSkpKS5vaz1mbGFnOworICAgfQorICB9LyppKi8KKyAgCisgIC8vIHRoZSBmb2xsb3dpbmcgc2hvdWxkIGFsbCByYWlzZSBiYWQtZGVjaW1hbC1wYXJ0IGV4Y2VwdGlvbnMKKyAgYmFkc3RyaW5ncz1uZXcgamF2YS5sYW5nLlN0cmluZ1tdeyIwLjA5IiwiMC45IiwiMC4wMSIsIjAuMSIsIi0wLjAxIiwiLTAuMSIsIjEuMDEiLCItMS4wMSIsIi0xLjEiLCItMTExLjExMSIsIisxMTEuMTExIiwiMS4wOSIsIjEuMDUiLCIxLjA0IiwiMS45OSIsIjEuOSIsIjEuNSIsIjEuNCIsIi0xLjA5IiwiLTEuMDUiLCItMS4wNCIsIi0xLjk5IiwiLTEuOSIsIi0xLjUiLCItMS40IiwiMUUtMTAwMCIsIi0xRS0xMDAwIiwiMTFFLTEiLCIxLjUifTsgLy8gNDAwLTQwMworICAvLyA0MDQtNDA3CisgIC8vIDQwOC00MTEKKyAgLy8gNDEyLTQxNgorICAvLyA0MTctNDIwCisgIC8vIDQyMS00MjQKKyAgLy8gNDI1LTQyOAorICAKKyAge2ludCAkMTA4PWJhZHN0cmluZ3MubGVuZ3RoO2k9MDtpOmZvcig7JDEwOD4wOyQxMDgtLSxpKyspeworICAgdHJ5eworICAgIHY9YmFkc3RyaW5nc1tpXTsKKyAgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkuaW50VmFsdWVFeGFjdCgpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEwOSl7YWU9JDEwOTsKKyAgICBub3JtPShuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS50b1N0cmluZygpOworICAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IisiICIrbm9ybSk7CisgICB9CisgICAobmV3IFRlc3QoImludiIrKDQwMCtpKSkpLm9rPWZsYWc7CisgICB9CisgIH0vKmkqLworICAKKyAgc3VtbWFyeSgiaW50VmFsdWUrIik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNsb25nVmFsdWV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbG9uZ3ZhbHVlKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLlN0cmluZyB2PW51bGw7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIGphdmEubGFuZy5TdHJpbmcgYmFkc3RyaW5nc1tdOworICBpbnQgaT0wOworICBqYXZhLmxhbmcuU3RyaW5nIG5vcm09bnVsbDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRsbWF4OworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbnVtPW51bGw7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkdj1udWxsOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGxtaW47CisgIAorICAKKyAgLy8gbG9uZ1ZhbHVlIC0tCisgIAorICAobmV3IFRlc3QoImxvdjAwMSIpKS5vaz1sbWluPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMDIiKSkub2s9KCgobG9uZyk5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMDMiKSkub2s9KCgobG9uZykxKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDA0IikpLm9rPSgoKGxvbmcpMCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAwNSIpKS5vaz0oKChsb25nKS0xKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAwNiIpKS5vaz0oKChsb25nKS05OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi05OSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDA3IikpLm9rPWxtYXg9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWF4KSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAwOCIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAwOSIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjMiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxMCIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjUiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxMSIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjciKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxMiIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjkiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxMyIpKS5vaz0oKChsb25nKS01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuMCIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDE0IikpLm9rPSgoKGxvbmcpLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS4zIikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMTUiKSkub2s9KCgobG9uZyktNSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi01LjUiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjAxNiIpKS5vaz0oKChsb25nKS01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuNyIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MDE3IikpLm9rPSgoKGxvbmcpLTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItNS45IikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YwMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI4ODg4ODg4ODg4OTk5OTk5OTk5OTgiKSkubG9uZ1ZhbHVlKCkpPT0zNDQ1MTczMzYxOTQxNTIyNDMwTDsgLy8gdWdoCisgIChuZXcgVGVzdCgibG92MDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTg4ODg4ODg4ODg5OTk5OTk5OTk5OCIpKS5sb25nVmFsdWUoKSk9PSgtMzQ0NTE3MzM2MTk0MTUyMjQzMEwpOyAvLyB1Z2gKKyAgCisgIC8vIGxvbmdWYWx1ZUV4YWN0IC0tCisgIAorICAobmV3IFRlc3QoImxvdjEwMSIpKS5vaz1sbWluPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YxMDIiKSkub2s9KCgobG9uZyk5OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjk5IikpLmxvbmdWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJsb3YxMDMiKSkub2s9KCgobG9uZykxKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MTA0IikpLm9rPSgoKGxvbmcpMCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjEwNSIpKS5vaz0oKChsb25nKS0xKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjEwNiIpKS5vaz0oKChsb25nKS05OSkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi05OSIpKS5sb25nVmFsdWUoKSk7CisgIChuZXcgVGVzdCgibG92MTA3IikpLm9rPWxtYXg9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWF4KSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjEwOCIpKS5vaz0oKChsb25nKTUpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI1LjAiKSkubG9uZ1ZhbHVlKCkpOworICAobmV3IFRlc3QoImxvdjEwOSIpKS5vaz0oKChsb25nKS01KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTUuMCIpKS5sb25nVmFsdWUoKSk7CisgIAorICB0cnl7CisgICB2PSItODg4ODg4ODg4ODk5OTk5OTk5OTk4IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5sb25nVmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDExMCl7YWU9JDExMDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgibG92MjAwIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIHY9Ijg4ODg4ODg3NDg3NDg3NDc5NDg4ODg4IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5sb25nVmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDExMSl7YWU9JDExMTsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgibG92MjAxIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIHY9IjEuNSI7CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkubG9uZ1ZhbHVlRXhhY3QoKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMTIpe2FlPSQxMTI7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgibG92MjAyIikpLm9rPWZsYWc7CisgIAorICBiYWRzdHJpbmdzPW5ldyBqYXZhLmxhbmcuU3RyaW5nW117IjEyMzQ1Njc4OTAxMTA5ODc2NTQzMjEiLCItMTIzNDU2Nzg5MDExMDk4NzY1NDMyMSIsKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1heCkpLmFkZChvbmUpLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbikpLnN1YnRyYWN0KG9uZSkudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWluKSkubXVsdGlwbHkodHdvKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGxtYXgpKS5tdWx0aXBseSh0d28pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbikpLm11bHRpcGx5KHRlbikudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsbWF4KSkubXVsdGlwbHkodGVuKS50b1N0cmluZygpLCI5MjIzMzcyMDM2ODU0Nzc1ODE4IiwiOTMyMzM3MjAzNjg1NDc3NTgxOCIsIjk0MjMzNzIwMzY4NTQ3NzU4MTgiLCI5NTIzMzcyMDM2ODU0Nzc1ODE4IiwiOTYyMzM3MjAzNjg1NDc3NTgxOCIsIjk3MjMzNzIwMzY4NTQ3NzU4MTgiLCI5ODIzMzcyMDM2ODU0Nzc1ODE4IiwiOTkyMzM3MjAzNjg1NDc3NTgxOCIsIi05MjIzMzcyMDM2ODU0Nzc1ODE4IiwiLTkzMjMzNzIwMzY4NTQ3NzU4MTgiLCItOTQyMzM3MjAzNjg1NDc3NTgxOCIsIi05NTIzMzcyMDM2ODU0Nzc1ODE4IiwiLTk2MjMzNzIwMzY4NTQ3NzU4MTgiLCItOTcyMzM3MjAzNjg1NDc3NTgxOCIsIi05ODIzMzcyMDM2ODU0Nzc1ODE4IiwiLTk5MjMzNzIwMzY4NTQ3NzU4MTgiLCIxMjM0NTY3ODkwMTIzNDU2Nzg5MCJ9OyAvLyAyMjAKKyAgLy8gMjIxCisgIC8vIDIyMgorICAvLyAyMjMKKyAgLy8gMjI0CisgIC8vIDIyNQorICAvLyAyMjYKKyAgLy8gMjI3CisgIC8vIDIyOAorICAvLyAyMjkKKyAgLy8gMjMwCisgIC8vIDIzMQorICAvLyAyMzIKKyAgLy8gMjMzCisgIC8vIDIzNAorICAvLyAyMzUKKyAgLy8gMjM2CisgIC8vIDIzNworICAvLyAyMzgKKyAgLy8gMjM5CisgIC8vIDI0MAorICAvLyAyNDEKKyAgLy8gMjQyCisgIC8vIDI0MworICAvLyAyNDQKKyAge2ludCAkMTEzPWJhZHN0cmluZ3MubGVuZ3RoO2k9MDtpOmZvcig7JDExMz4wOyQxMTMtLSxpKyspeworICAgdHJ5eworICAgIHY9YmFkc3RyaW5nc1tpXTsKKyAgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkubG9uZ1ZhbHVlRXhhY3QoKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMTQpe2FlPSQxMTQ7CisgICAgbm9ybT0obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgibG92IisoMjIwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIAorICAvLyBub3cgc2xpcCBpbiBzb21lIHNpbmdsZSBiaXRzLi4uCisgIGRsbWF4PW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1heCk7CisgIHtpPTA7aTpmb3IoO2k8PTk5O2krKyl7CisgICB0cnl7CisgICAgbnVtPXR3by5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpKSxtYzUwKTsKKyAgICBkdj1kbG1heC5hZGQobnVtLG1jNTApOworICAgIGR2LmxvbmdWYWx1ZUV4YWN0KCk7CisgICAgZmxhZz1mYWxzZTsKKyAgIH0KKyAgIGNhdGNoIChqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbiAkMTE1KXthZT0kMTE1OworICAgIG5vcm09ZHYudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgibG92IisoMzAwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIGRsbWluPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwobG1pbik7CisgIHtpPTA7aTpmb3IoO2k8PTk5O2krKyl7CisgICB0cnl7CisgICAgbnVtPXR3by5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChpKSxtYzUwKTsKKyAgICBkdj1kbG1pbi5zdWJ0cmFjdChudW0sbWM1MCk7CisgICAgZHYubG9uZ1ZhbHVlRXhhY3QoKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMTYpe2FlPSQxMTY7CisgICAgbm9ybT1kdi50b1N0cmluZygpOworICAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK25vcm0pOworICAgfQorICAgKG5ldyBUZXN0KCJsb3YiKyg0MDAraSkpKS5vaz1mbGFnOworICAgfQorICB9LyppKi8KKyAgCisgIHN1bW1hcnkoImxvbmdWYWx1ZSsiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI21vdmVQb2ludExlZnR9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbW92ZXBvaW50bGVmdCgpeworICAobmV3IFRlc3QoIm1wbDAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoLTEwKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm1wbDAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwMDAwMCIpOworICAobmV3IFRlc3QoIm1wbDAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoLTEpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwIik7CisgIChuZXcgVGVzdCgibXBsMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50TGVmdCgwKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgibXBsMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50TGVmdCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4xIik7CisgIChuZXcgVGVzdCgibXBsMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50TGVmdCgrNSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4wMDAwMSIpOworICAobmV3IFRlc3QoIm1wbDAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludExlZnQoKzEwKS50b1N0cmluZygpKS5lcXVhbHMoIi0wLjAwMDAwMDAwMDEiKTsKKyAgCisgIChuZXcgVGVzdCgibXBsMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRMZWZ0KC0xMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXBsMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRMZWZ0KC01KS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludExlZnQoLTEpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoIm1wbDAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50TGVmdCgwKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludExlZnQoKzEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgibXBsMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRMZWZ0KCs1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludExlZnQoKzEwKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJtcGwwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRMZWZ0KC0xMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAwMDAwMCIpOworICAobmV3IFRlc3QoIm1wbDAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludExlZnQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwIik7CisgIChuZXcgVGVzdCgibXBsMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkubW92ZVBvaW50TGVmdCgtMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoIm1wbDAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludExlZnQoMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgibXBsMDI0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkubW92ZVBvaW50TGVmdCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRMZWZ0KCs1KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRMZWZ0KCsxMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDAwMDEiKTsKKyAgCisgIChuZXcgVGVzdCgibXBsMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoLTEwKS50b1N0cmluZygpKS5lcXVhbHMoIjUwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXBsMDMxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiNTAwMDAwIik7CisgIChuZXcgVGVzdCgibXBsMDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoLTEpLnRvU3RyaW5nKCkpLmVxdWFscygiNTAiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50TGVmdCgwKS50b1N0cmluZygpKS5lcXVhbHMoIjUiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50TGVmdCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJtcGwwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50TGVmdCgrNSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDA1Iik7CisgIChuZXcgVGVzdCgibXBsMDM2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludExlZnQoKzEwKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDAwNSIpOworICAKKyAgc3VtbWFyeSgibW92ZVBvaW50TGVmdCIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjbW92ZVBvaW50UmlnaHR9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbW92ZXBvaW50cmlnaHQoKXsKKyAgKG5ldyBUZXN0KCJtcHIwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRSaWdodCgrMTApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwMDAwMDAwMDAwIik7CisgIChuZXcgVGVzdCgibXByMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50UmlnaHQoKzUpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwMDAwMCIpOworICAobmV3IFRlc3QoIm1wcjAwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludFJpZ2h0KCsxKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMCIpOworICAobmV3IFRlc3QoIm1wcjAwNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLm1vdmVQb2ludFJpZ2h0KDApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRSaWdodCgtMSkudG9TdHJpbmcoKSkuZXF1YWxzKCItMC4xIik7CisgIChuZXcgVGVzdCgibXByMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkubW92ZVBvaW50UmlnaHQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5tb3ZlUG9pbnRSaWdodCgtMTApLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMDAwMDAwMDAwMSIpOworICAKKyAgKG5ldyBUZXN0KCJtcHIwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludFJpZ2h0KCsxMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXByMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRSaWdodCgrNSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXByMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRSaWdodCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgibXByMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5tb3ZlUG9pbnRSaWdodCgwKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLm1vdmVQb2ludFJpZ2h0KC0xKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoIm1wcjAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50UmlnaHQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMCIpOworICAobmV3IFRlc3QoIm1wcjAxNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkubW92ZVBvaW50UmlnaHQoLTEwKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDAwMDAwMCIpOworICAKKyAgKG5ldyBUZXN0KCJtcHIwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgrMTApLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgrNSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgrMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoIm1wcjAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludFJpZ2h0KDApLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoIm1wcjAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludFJpZ2h0KC0xKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoIm1wcjAyNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLm1vdmVQb2ludFJpZ2h0KC01KS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5tb3ZlUG9pbnRSaWdodCgtMTApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDAxIik7CisgIAorICAobmV3IFRlc3QoIm1wcjAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRSaWdodCgrMTApLnRvU3RyaW5nKCkpLmVxdWFscygiNTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50UmlnaHQoKzUpLnRvU3RyaW5nKCkpLmVxdWFscygiNTAwMDAwIik7CisgIChuZXcgVGVzdCgibXByMDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludFJpZ2h0KCsxKS50b1N0cmluZygpKS5lcXVhbHMoIjUwIik7CisgIChuZXcgVGVzdCgibXByMDMzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC41RSsxIikpLm1vdmVQb2ludFJpZ2h0KDApLnRvU3RyaW5nKCkpLmVxdWFscygiNSIpOworICAobmV3IFRlc3QoIm1wcjAzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRSaWdodCgtMSkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjUiKTsKKyAgKG5ldyBUZXN0KCJtcHIwMzUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjVFKzEiKSkubW92ZVBvaW50UmlnaHQoLTUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwNSIpOworICAobmV3IFRlc3QoIm1wcjAzNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuNUUrMSIpKS5tb3ZlUG9pbnRSaWdodCgtMTApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDA1Iik7CisgIAorICBzdW1tYXJ5KCJtb3ZlUG9pbnRSaWdodCIpOworIH0KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjc2NhbGV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnc2NhbGUoKXsKKyAgKG5ldyBUZXN0KCJzY2EwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5zY2FsZSgpKT09MDsKKyAgKG5ldyBUZXN0KCJzY2EwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTAiKSkuc2NhbGUoKSk9PTA7CisgIChuZXcgVGVzdCgic2NhMDAzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2NhbGUoKSk9PTA7CisgIChuZXcgVGVzdCgic2NhMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEwIikpLnNjYWxlKCkpPT0wOworICAobmV3IFRlc3QoInNjYTAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzEwIikpLnNjYWxlKCkpPT0wOworICAobmV3IFRlc3QoInNjYTAwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTEwIikpLnNjYWxlKCkpPT0xMDsKKyAgKG5ldyBUZXN0KCJzY2EwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwRS0xMCIpKS5zY2FsZSgpKT09MDsKKyAgKG5ldyBUZXN0KCJzY2EwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwMCIpKS5zY2FsZSgpKT09MzsKKyAgKG5ldyBUZXN0KCJzY2EwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnNjYWxlKCkpPT0yOworICAobmV3IFRlc3QoInNjYTAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS5zY2FsZSgpKT09MTsKKyAgKG5ldyBUZXN0KCJzY2EwMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEiKSkuc2NhbGUoKSk9PTE7CisgIChuZXcgVGVzdCgic2NhMDEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xMiIpKS5zY2FsZSgpKT09MjsKKyAgKG5ldyBUZXN0KCJzY2EwMTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjEyMyIpKS5zY2FsZSgpKT09MzsKKyAgKG5ldyBUZXN0KCJzY2EwMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wIikpLnNjYWxlKCkpPT0xOworICAobmV3IFRlc3QoInNjYTAxNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjEiKSkuc2NhbGUoKSk9PTE7CisgIChuZXcgVGVzdCgic2NhMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMTIiKSkuc2NhbGUoKSk9PTI7CisgIChuZXcgVGVzdCgic2NhMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMTIzIikpLnNjYWxlKCkpPT0zOworICBzdW1tYXJ5KCJzY2FsZSIpOworIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjc2V0U2NhbGV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnc2V0c2NhbGUoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiBlPW51bGw7CisgIAorICAobmV3IFRlc3QoInNzYzAwMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnNldFNjYWxlKDApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5zZXRTY2FsZSgxKS50b1N0cmluZygpKS5lcXVhbHMoIi0xLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5zZXRTY2FsZSgyKS50b1N0cmluZygpKS5lcXVhbHMoIi0xLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zZXRTY2FsZSgwKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnNldFNjYWxlKDEpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgic3NjMDA2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zZXRTY2FsZSgyKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5zZXRTY2FsZSgwKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5zZXRTY2FsZSgxKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMCIpOworICAobmV3IFRlc3QoInNzYzAwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLnNldFNjYWxlKDIpLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMCIpOworICAobmV3IFRlc3QoInNzYzAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgic3NjMDExIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEuMCIpOworICAobmV3IFRlc3QoInNzYzAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIi0xLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3NjMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgic3NjMDE3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wIik7CisgIChuZXcgVGVzdCgic3NjMDE4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMCIpOworICAKKyAgKG5ldyBUZXN0KCJzc2MwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA0IikpLnNldFNjYWxlKDMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDQwIik7CisgIChuZXcgVGVzdCgic3NjMDIxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNCIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjA0Iik7CisgIChuZXcgVGVzdCgic3NjMDIyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNCIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA0IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDUwIik7CisgIChuZXcgVGVzdCgic3NjMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjA1Iik7CisgIChuZXcgVGVzdCgic3NjMDI2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNSIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wNTAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMjkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wNSIpOworICAobmV3IFRlc3QoInNzYzAzMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIxLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInNzYzAzMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDYiKSkuc2V0U2NhbGUoMyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wNjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA2IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMDYiKTsKKyAgKG5ldyBUZXN0KCJzc2MwMzQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA2IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEuMSIpOworICAobmV3IFRlc3QoInNzYzAzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDYiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgKG5ldyBUZXN0KCJzc2MwNDAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTAiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiLTEwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDQxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiKzEiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMS4wMCIpOworICAobmV3IFRlc3QoInNzYzA0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxMCIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMC4wMCIpOworICAobmV3IFRlc3QoInNzYzA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzEwIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAwMDAwMDAwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDQ0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUtMTAiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMCIpOworICAobmV3IFRlc3QoInNzYzA0NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTIiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMSIpOworICAobmV3IFRlc3QoInNzYzA0NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjBFLTEwIikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgCisgIC8vIGNoZWNrIHJvdW5kaW5nCisgIChuZXcgVGVzdCgic3NjMDUwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkcpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMSIpOworICAobmV3IFRlc3QoInNzYzA1MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInNzYzA1MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNTMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDU0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgic3NjMDU1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0RPV04pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInNzYzA1NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDU3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInNzYzA1OCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3NjMDU5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwIik7CisgIChuZXcgVGVzdCgic3NjMDYwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNjEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNjMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwNSIpKS5zZXRTY2FsZSgxLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInNzYzA2NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInNzYzA2NSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDE1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMiIpOworICAobmV3IFRlc3QoInNzYzA2NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDE1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wIik7CisgIChuZXcgVGVzdCgic3NjMDY3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMTUiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgic3NjMDY4IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMixjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMSIpOworICAobmV3IFRlc3QoInNzYzA2OSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInNzYzA3MCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJzc2MwNzEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjA5NSIpKS5zZXRTY2FsZSgyLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjEwIik7CisgIChuZXcgVGVzdCgic3NjMDcyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wOTUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMC4xIik7CisgIChuZXcgVGVzdCgic3NjMDczIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wOTUiKSkuc2V0U2NhbGUoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVApLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInNzYzA3NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDIsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAxIik7CisgIChuZXcgVGVzdCgic3NjMDc1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wMDUiKSkuc2V0U2NhbGUoMSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICAobmV3IFRlc3QoInNzYzA3NiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDA1IikpLnNldFNjYWxlKDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIAorICB0cnl7Y2hlY2tzY2FsZTpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDEpKS5zZXRTY2FsZSgtOCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uICQxMTcpe2U9JDExNzsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIk5lZ2F0aXZlIHNjYWxlOiAtOCIpOworICB9LypjaGVja3NjYWxlKi8KKyAgKG5ldyBUZXN0KCJzc2MxMDAiKSkub2s9ZmxhZzsKKyAgdHJ5e2NoZWNrcnVubjpkb3sKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDEuMDAwMUQpKS5zZXRTY2FsZSgzKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLlJ1bnRpbWVFeGNlcHRpb24gJDExOCl7ZT0kMTE4OworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiUm91bmRpbmcgbmVjZXNzYXJ5Iik7CisgIH0vKmNoZWNrcnVubiovCisgIChuZXcgVGVzdCgic3NjMTAxIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja3J1bm46ZG97CisgICAobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgxRS04RCkpLnNldFNjYWxlKDMpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbiAkMTE5KXtlPSQxMTk7CisgICBmbGFnPShlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJSb3VuZGluZyBuZWNlc3NhcnkiKTsKKyAgfS8qY2hlY2tydW5uKi8KKyAgKG5ldyBUZXN0KCJzc2MxMDIiKSkub2s9ZmxhZzsKKyAgc3VtbWFyeSgic2V0U2NhbGUiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSA8Y29kZT5CaWdEZWNpbWFsLnNob3J0VmFsdWUoKTwvY29kZT4gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdzaG9ydHZhbHVlKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLlN0cmluZyB2PW51bGw7CisgIGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uIGFlPW51bGw7CisgIGphdmEubGFuZy5TdHJpbmcgYmFkc3RyaW5nc1tdOworICBpbnQgaT0wOworICBqYXZhLmxhbmcuU3RyaW5nIG5vcm09bnVsbDsKKyAgCisgIChuZXcgVGVzdCgic2h2MDAyIikpLm9rPSgoKHNob3J0KTApKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnNob3J0VmFsdWUoKSk7CisgIChuZXcgVGVzdCgic2h2MDAzIikpLm9rPSgoKHNob3J0KTEpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnNob3J0VmFsdWUoKSk7CisgIChuZXcgVGVzdCgic2h2MDA0IikpLm9rPSgoKHNob3J0KTk5KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiOTkiKSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMDYiKSkub2s9KChzbWF4KSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWF4KSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMDciKSkub2s9KChzbWluKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWluKSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMDgiKSkub2s9KChzbmVnKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbmVnKSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMDkiKSkub2s9KChzemVyKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzemVyKSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMTAiKSkub2s9KChzcG9zKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzcG9zKSkuc2hvcnRWYWx1ZSgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMTEiKSkub2s9KChzbWluKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWF4KzEpKS5zaG9ydFZhbHVlKCkpOworICAobmV3IFRlc3QoInNodjAxMiIpKS5vaz0oKHNtYXgpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtaW4tMSkpLnNob3J0VmFsdWUoKSk7CisgIAorICAobmV3IFRlc3QoInNodjAyMiIpKS5vaz0oKChzaG9ydCkwKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS5zaG9ydFZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgic2h2MDIzIikpLm9rPSgoKHNob3J0KTEpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnNob3J0VmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMjQiKSkub2s9KCgoc2hvcnQpOTkpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCI5OSIpKS5zaG9ydFZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgic2h2MDI2IikpLm9rPSgoc21heCkpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc21heCkpLnNob3J0VmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMjciKSkub2s9KChzbWluKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWluKSkuc2hvcnRWYWx1ZUV4YWN0KCkpOworICAobmV3IFRlc3QoInNodjAyOCIpKS5vaz0oKHNuZWcpKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNuZWcpKS5zaG9ydFZhbHVlRXhhY3QoKSk7CisgIChuZXcgVGVzdCgic2h2MDI5IikpLm9rPSgoc3plcikpPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc3plcikpLnNob3J0VmFsdWVFeGFjdCgpKTsKKyAgKG5ldyBUZXN0KCJzaHYwMzAiKSkub2s9KChzcG9zKSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzcG9zKSkuc2hvcnRWYWx1ZUV4YWN0KCkpOworICB0cnl7CisgICB2PSItODg4ODg4ODg4ODgiOworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLnNob3J0VmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEyMCl7YWU9JDEyMDsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3YpOworICB9CisgIChuZXcgVGVzdCgic2h2MTAwIikpLm9rPWZsYWc7CisgIHRyeXsKKyAgIHY9Ijg4ODg4ODg4ODg4IjsKKyAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5zaG9ydFZhbHVlRXhhY3QoKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMjEpe2FlPSQxMjE7CisgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit2KTsKKyAgfQorICAobmV3IFRlc3QoInNodjEwMSIpKS5vaz1mbGFnOworICB0cnl7CisgICB2PSIxLjUiOworICAgKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwodikpLnNob3J0VmFsdWVFeGFjdCgpOworICAgZmxhZz1mYWxzZTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEyMil7YWU9JDEyMjsKKyAgIGZsYWc9KGFlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEZWNpbWFsIHBhcnQgbm9uLXplcm86IisiICIrdik7CisgIH0KKyAgKG5ldyBUZXN0KCJzaHYxMDIiKSkub2s9ZmxhZzsKKyAgCisgIGJhZHN0cmluZ3M9bmV3IGphdmEubGFuZy5TdHJpbmdbXXsiMTIzNDU2IiwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWF4KSkuYWRkKG9uZSkudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWluKSkuc3VidHJhY3Qob25lKS50b1N0cmluZygpLCI3MTExMSIsIjgxMTExIiwiOTExMTEiLCItNzExMTEiLCItODExMTEiLCItOTExMTEiLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtaW4pKS5tdWx0aXBseSh0d28pLnRvU3RyaW5nKCksKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoc21heCkpLm11bHRpcGx5KHR3bykudG9TdHJpbmcoKSwobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbWluKSkubXVsdGlwbHkodGVuKS50b1N0cmluZygpLChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNtYXgpKS5tdWx0aXBseSh0ZW4pLnRvU3RyaW5nKCksIi0xMjM0NTYifTsgLy8gMjIwCisgIC8vIDIyMQorICAvLyAyMjIKKyAgLy8gMjIzCisgIC8vIDIyNAorICAvLyAyMjUKKyAgLy8gMjI2CisgIC8vIDIyNworICAvLyAyMjgKKyAgLy8gMjI5CisgIC8vIDIzMAorICAvLyAyMzEKKyAgLy8gMjMyCisgIC8vIDIzMworICB7aW50ICQxMjM9YmFkc3RyaW5ncy5sZW5ndGg7aT0wO2k6Zm9yKDskMTIzPjA7JDEyMy0tLGkrKyl7CisgICB0cnl7CisgICAgdj1iYWRzdHJpbmdzW2ldOworICAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHYpKS5zaG9ydFZhbHVlRXhhY3QoKTsKKyAgICBmbGFnPWZhbHNlOworICAgfQorICAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxMjQpe2FlPSQxMjQ7CisgICAgbm9ybT0obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCh2KSkudG9TdHJpbmcoKTsKKyAgICBmbGFnPShhZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitub3JtKTsKKyAgIH0KKyAgIChuZXcgVGVzdCgic2h2IisoMjIwK2kpKSkub2s9ZmxhZzsKKyAgIH0KKyAgfS8qaSovCisgIAorICAKKyAgc3VtbWFyeSgic2hvcnRWYWx1ZSsiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3NpZ251bX0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWdzaWdudW0oKXsKKyAgLy8gbmVjZXNzYXJpbHkgY2hlY2tzIHNvbWUgb2JzY3VyZSBjb25zdHJ1Y3Rpb25zLCB0b28KKyAgKG5ldyBUZXN0KCJzaWcwMDEiKSkub2s9KC0xKT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDAyIikpLm9rPSgtMSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDAxMCIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDAzIikpLm9rPSgtMSk9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDAxIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMDQiKSkub2s9MD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMCIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDA1IikpLm9rPTA9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAwNiIpKS5vaz0wPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAwNyIpKS5vaz0wPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMDgiKSkub2s9MD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMDkiKSkub2s9MT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMC4wMSIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDEwIikpLm9rPTE9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDAuMDEiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAxMSIpKS5vaz0xPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAwLjAxMCIpKS5zaWdudW0oKSk7CisgIChuZXcgVGVzdCgic2lnMDEyIikpLm9rPTE9PSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMDEuMDEiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAxMyIpKS5vaz0xPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIiswLjAxIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMTQiKSkub2s9MT09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMC4wMDEiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAxNSIpKS5vaz0xPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEiKSkuc2lnbnVtKCkpOworICAobmV3IFRlc3QoInNpZzAxNiIpKS5vaz0xPT0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFlKzEyIikpLnNpZ251bSgpKTsKKyAgKG5ldyBUZXN0KCJzaWcwMTciKSkub2s9MD09KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwMGUrMTIiKSkuc2lnbnVtKCkpOworICBzdW1tYXJ5KCJzaWdudW0iKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3RvQmlnRGVjaW1hbH0gbWV0aG9kLiAqLworCisgcHVibGljIHZvaWQgZGlhZ3RvYmlnZGVjaW1hbCgpeworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgKG5ldyBUZXN0KCJ0YmQwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiZDAwMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS50b0JpZ0RlY2ltYWwoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiZDAwNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzIiKSkudG9CaWdEZWNpbWFsKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRS0yIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMSIpOworICBpZiAoIWlzSkRLMTVPckxhdGVyKQorICAgICAgKG5ldyBUZXN0KCJ0YmQwMDciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRS04IikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMSIpOworICBpZiAoIWlzSkRLMTVPckxhdGVyKQorICAgICAgKG5ldyBUZXN0KCJ0YmQwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRS05IikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wMDAwMDAwMDEiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRTEwIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmQwMTAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxRTEyIikpLnRvQmlnRGVjaW1hbCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMDAwMDAwMDAwMCIpOworICBzdW1tYXJ5KCJ0b0JpZ0RlY2ltYWwiKTsKKy8vI2VuZGlmCisgfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3RvQmlnSW50ZWdlcn0gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWd0b2JpZ2ludGVnZXIoKXsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuU3RyaW5nIGJhZHN0cmluZ3NbXTsKKyAgaW50IGk9MDsKKyAgKG5ldyBUZXN0KCJ0YmkwMDEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMDAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgidGJpMDA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMUUrMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMDA3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMEUrMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMUUrMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMEUrMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgidGJpMDEwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMUUrMyIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAxNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAxOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0wLjEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAxIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjEiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDIzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMDAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTAyNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjAxIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4wIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4xIikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMTExLjExMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMTExLjExMSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjExMSIpOworICAobmV3IFRlc3QoInRiaTAyOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDMwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC45IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTAzMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMDkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDMyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wNSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMzMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjA0IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTAzNCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuOTkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDM0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS45IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTAzNSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuNSIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMzYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjQiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMDM3IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMDkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTAzOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjA1IikpLnRvQmlnSW50ZWdlcigpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ0YmkwMzkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4wNCIpKS50b0JpZ0ludGVnZXIoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMDQwIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuOTkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTA0MSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjkiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTA0MiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjUiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTA0MyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjQiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTA0NCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFLTEwMDAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMDQ1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTFFLTEwMDAiKSkudG9CaWdJbnRlZ2VyKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIAorICAvLyBFeGFjdCB2YXJpZXR5IC0tCisgIChuZXcgVGVzdCgidGJpMTAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMTAyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInRiaTEwMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidGJpMTA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwIik7CisgIChuZXcgVGVzdCgidGJpMTA1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAwMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMCIpOworICAobmV3IFRlc3QoInRiaTEwNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xRSswIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTEwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjBFKzAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMDgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMUUrMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTEwOSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEwRSswIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoInRiaTExMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzMiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMTEiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwLjAwIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMTEyIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4wIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMTEzIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ0YmkxMTQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidGJpMTE1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTExNiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInRiaTExNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjAwIikpLnRvQmlnSW50ZWdlckV4YWN0KCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInRiaTExOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjAiKSkudG9CaWdJbnRlZ2VyRXhhY3QoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidGJpMTE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIpKS50b0JpZ0ludGVnZXJFeGFjdCgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAKKyAgLy8gdGhlIGZvbGxvd2luZyBzaG91bGQgYWxsIHJhaXNlIGV4Y2VwdGlvbnMKKyAgCisgIGJhZHN0cmluZ3M9bmV3IGphdmEubGFuZy5TdHJpbmdbXXsiMC4wOSIsIjAuOSIsIjAuMDEiLCIwLjEiLCItMC4wMSIsIi0wLjEiLCIxLjAxIiwiLTEuMDEiLCItMS4xIiwiLTExMS4xMTEiLCIrMTExLjExMSIsIjEuMDkiLCIxLjA1IiwiMS4wNCIsIjEuOTkiLCIxLjkiLCIxLjUiLCIxLjQiLCItMS4wOSIsIi0xLjA1IiwiLTEuMDQiLCItMS45OSIsIi0xLjkiLCItMS41IiwiLTEuNCIsIjFFLTEwMDAiLCItMUUtMTAwMCIsIjExRS0xIiwiMS4xIiwiMTI3NjIzMTU2MTIzNjU2NTYxMzU2MTIzNTEyMzE1NjMxMjMxNTUxMzEyMzU2LjAwMDAwMSIsIjAuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxIn07IC8vIDMwMC0zMDMKKyAgLy8gMzA0LTMwNworICAvLyAzMDgtMzExCisgIC8vIDMxMi0zMTYKKyAgLy8gMzE3LTMyMAorICAvLyAzMjEtMzI0CisgIC8vIDMyNS0zMjgKKyAgLy8gMzI5CisgIC8vIDMzMAorICAKKyAge2ludCAkMTI1PWJhZHN0cmluZ3MubGVuZ3RoO2k9MDtpOmZvcig7JDEyNT4wOyQxMjUtLSxpKyspeworICAgdHJ5eworICAgIChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGJhZHN0cmluZ3NbaV0pKS50b0JpZ0ludGVnZXJFeGFjdCgpOworICAgIGZsYWc9ZmFsc2U7CisgICB9CisgICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEyNil7CisgICAgZmxhZz10cnVlOworICAgfQorICAgKG5ldyBUZXN0KCJ0YmkiKygzMDAraSkpKS5vaz1mbGFnOworICAgfQorICB9LyppKi8KKyAgCisgIHN1bW1hcnkoInRvQmlnSW50ZWdlcisiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3RvQ2hhckFycmF5fSBtZXRob2QuICovCisgCisgcHVibGljIHZvaWQgZGlhZ3RvY2hhcmFycmF5KCl7CisgIGphdmEubGFuZy5TdHJpbmcgc3RyOworICBjaGFyIGNhcltdOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZDsKKyAgY2hhciBjYVtdOworICAvLyB0aGUgZnVuY3Rpb24gb2YgdGhpcyBoYXMgYmVlbiB0ZXN0ZWQgYWJvdmUsIHRoaXMgaXMgc2ltcGx5IGFuCisgIC8vIGV4aXN0ZW5jZSBwcm9vZiBhbmQgdHlwZS1jaGVjaworICBzdHI9Ii0xMjMuNDUiOworICBjYXI9KHN0cikudG9DaGFyQXJyYXkoKTsKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHN0cik7CisgIGNhPWQudG9DaGFyQXJyYXkoKTsKKyAgKG5ldyBUZXN0KCJ0Y2EwMDEiKSkub2s9Y2EubGVuZ3RoPT1jYXIubGVuZ3RoOworICAobmV3IFRlc3QoInRjYTAwMiIpKS5vaz0obmV3IGphdmEubGFuZy5TdHJpbmcoY2EpKS5lcXVhbHMoKGphdmEubGFuZy5PYmplY3QpKG5ldyBqYXZhLmxhbmcuU3RyaW5nKGNhcikpKTsKKyAgKG5ldyBUZXN0KCJ0Y2EwMDMiKSkub2s9KGQudG9DaGFyQXJyYXkoKSBpbnN0YW5jZW9mIGNoYXJbXSk7CisgIChuZXcgVGVzdCgidGNhMDA0IikpLm9rPShjYSBpbnN0YW5jZW9mIGNoYXJbXSk7CisgIHN1bW1hcnkoInRvQ2hhckFycmF5Iik7CisgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKyAvKiogVGVzdCB0aGUge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCN0b1N0cmluZ30gbWV0aG9kLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWd0b3N0cmluZygpeworICBqYXZhLmxhbmcuU3RyaW5nIHN0cjsKKyAgY2hhciBjYXJbXTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGQ7CisgIGNoYXIgY2FbXTsKKyAgamF2YS5sYW5nLlN0cmluZyBjczsKKyAgLy8gdGhlIGZ1bmN0aW9uIG9mIHRoaXMgaGFzIGJlZW4gdGVzdGVkIGFib3ZlLCB0aGlzIGlzIHNpbXBseSBhbgorICAvLyBleGlzdGVuY2UgcHJvb2YgYW5kIHR5cGUtY2hlY2sKKyAgc3RyPSIxMjMuNDUiOworICBjYXI9KHN0cikudG9DaGFyQXJyYXkoKTsKKyAgZD1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGNhciwwLGNhci5sZW5ndGgpOworICBjYT1kLnRvQ2hhckFycmF5KCk7CisgIGNzPWQudG9TdHJpbmcoKTsKKyAgKG5ldyBUZXN0KCJ0b3MwMDEiKSkub2s9KHN0ci50b0NoYXJBcnJheSgpLmxlbmd0aCk9PWNhLmxlbmd0aDsKKyAgKG5ldyBUZXN0KCJ0b3MwMDIiKSkub2s9KHN0ci5sZW5ndGgoKSk9PShjcy5sZW5ndGgoKSk7CisgIChuZXcgVGVzdCgidG9zMDAzIikpLm9rPXN0ci5lcXVhbHMoKGphdmEubGFuZy5PYmplY3QpKG5ldyBqYXZhLmxhbmcuU3RyaW5nKGNhKSkpOworICAobmV3IFRlc3QoInRvczAwNCIpKS5vaz1zdHIuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KWNzKTsKKyAgKG5ldyBUZXN0KCJ0b3MwMDUiKSkub2s9KGNzIGluc3RhbmNlb2YgamF2YS5sYW5nLlN0cmluZyk7CisgIChuZXcgVGVzdCgidG9zMDA2IikpLm9rPShkLnRvU3RyaW5nKCkgaW5zdGFuY2VvZiBqYXZhLmxhbmcuU3RyaW5nKTsKKyAgc3VtbWFyeSgidG9TdHJpbmciKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI3Vuc2NhbGVkVmFsdWV9IG1ldGhvZC4gKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFndW5zY2FsZWR2YWx1ZSgpeworICAvLyBqdXN0IGxpa2UgdG9CaWdJbnRlZ2VyLCBidXQgc2NhbHkgYml0cyBhcmUgcHJlc2VydmVkIFt3aXRob3V0IGRvdHNdCisgIChuZXcgVGVzdCgidW5zMDAxIikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDIiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIwIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDMiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidW5zMDA0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMDAwIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMDAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMUUrMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInVuczAwNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjBFKzAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInVuczAwOCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIisxRSswIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMDkiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxMEUrMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoInVuczAxMCIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjFFKzMiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAwMCIpOworICAobmV3IFRlc3QoInVuczAxMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDAiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInVuczAxMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMDEiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiMSIpOworICAobmV3IFRlc3QoInVuczAxMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjAuMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidW5zMDE0IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMC4xIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMTUiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidW5zMDE2IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTAuMDEiKSkudW5zY2FsZWRWYWx1ZSgpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMTciKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4wIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMTgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMC4xIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xIik7CisgIChuZXcgVGVzdCgidW5zMDE5IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMS4wMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMDAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjAiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIxLjAxIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIjEwMSIpOworICAobmV3IFRlc3QoInVuczAyMSIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMCIpOworICAobmV3IFRlc3QoInVuczAyMiIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEuMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMSIpOworICAobmV3IFRlc3QoInVuczAyMyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xLjAwIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMDAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjQiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4wMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTAxIik7CisgIChuZXcgVGVzdCgidW5zMDI1IikpLm9rPSgobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiLTEuMCIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMTAiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjYiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCItMS4xIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMSIpOworICAobmV3IFRlc3QoInVuczAyNyIpKS5vaz0oKG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIi0xMTEuMTExIikpLnVuc2NhbGVkVmFsdWUoKS50b1N0cmluZygpKS5lcXVhbHMoIi0xMTExMTEiKTsKKyAgKG5ldyBUZXN0KCJ1bnMwMjgiKSkub2s9KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKCIrMTExLjExMSIpKS51bnNjYWxlZFZhbHVlKCkudG9TdHJpbmcoKSkuZXF1YWxzKCIxMTExMTEiKTsKKyAgc3VtbWFyeSgidW5zY2FsZWRWYWx1ZSIpOworIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgdGhlIHtAbGluayBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjdmFsdWVPZn0gbWV0aG9kIFtsb25nIGFuZCBkb3VibGVdLiAqLworIAorIHB1YmxpYyB2b2lkIGRpYWd2YWx1ZW9mKCl7CisgIGJvb2xlYW4gZmxhZz1mYWxzZTsKKyAgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiBlPW51bGw7CisgIGRvdWJsZSBkemVyOworICBkb3VibGUgZHBvczsKKyAgZG91YmxlIGRuZWc7CisgIGRvdWJsZSBkcG9zNTsKKyAgZG91YmxlIGRuZWc1OworICBkb3VibGUgZG1pbjsKKyAgZG91YmxlIGRtYXg7CisgIGRvdWJsZSBkOworICAKKyAgLy8gdmFsdWVPZihsb25nIFssc2NhbGVdKSAtLQorICAKKyAgKG5ldyBUZXN0KCJ2YWwwMDEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSktMikpLnRvU3RyaW5nKCkpLmVxdWFscygiLTIiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDIiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSktMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiLTEiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSktMCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInZhbDAwNCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoKGxvbmcpKChieXRlKSsxKSkudG9TdHJpbmcoKSkuZXF1YWxzKCIxIik7CisgIChuZXcgVGVzdCgidmFsMDA1IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZigobG9uZykoKGJ5dGUpKzIpKS50b1N0cmluZygpKS5lcXVhbHMoIjIiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDYiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSkxMCkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTAiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDciKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKChsb25nKSgoYnl0ZSkxMSkpLnRvU3RyaW5nKCkpLmVxdWFscygiMTEiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDgiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxtaW4pLnRvU3RyaW5nKCkpLmVxdWFscygiLTkyMjMzNzIwMzY4NTQ3NzU4MDgiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMDkiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxtYXgpLnRvU3RyaW5nKCkpLmVxdWFscygiOTIyMzM3MjAzNjg1NDc3NTgwNyIpOworICAobmV3IFRlc3QoInZhbDAxMCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobG5lZykudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInZhbDAxMSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHplcikudG9TdHJpbmcoKSkuZXF1YWxzKCIwIik7CisgIChuZXcgVGVzdCgidmFsMDEyIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihscG9zKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMTMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxtaW4sMCkudG9TdHJpbmcoKSkuZXF1YWxzKCItOTIyMzM3MjAzNjg1NDc3NTgwOCIpOworICAobmV3IFRlc3QoInZhbDAxNCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobG1heCwwKS50b1N0cmluZygpKS5lcXVhbHMoIjkyMjMzNzIwMzY4NTQ3NzU4MDciKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMTUiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGxuZWcsMCkudG9TdHJpbmcoKSkuZXF1YWxzKCItMSIpOworICAobmV3IFRlc3QoInZhbDAxNiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHBvcywwKS50b1N0cmluZygpKS5lcXVhbHMoIjEiKTsKKyAgCisgIChuZXcgVGVzdCgidmFsMDE3IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihsemVyLDApLnRvU3RyaW5nKCkpLmVxdWFscygiMCIpOworICAobmV3IFRlc3QoInZhbDAxOCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHplciwxKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMCIpOworICAobmV3IFRlc3QoInZhbDAxOSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHplciwyKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMDAiKTsKKyAgKG5ldyBUZXN0KCJ2YWwwMjAiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGx6ZXIsMykudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMCIpOworICAobmV3IFRlc3QoInZhbDAyMSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YobHplciwxMCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwMDAwMDAwMDAiKTsKKyAgCisgIChuZXcgVGVzdCgidmFsMDIyIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihsbWluLDcpLnRvU3RyaW5nKCkpLmVxdWFscygiLTkyMjMzNzIwMzY4NS40Nzc1ODA4Iik7CisgIChuZXcgVGVzdCgidmFsMDIzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihsbWF4LDExKS50b1N0cmluZygpKS5lcXVhbHMoIjkyMjMzNzIwLjM2ODU0Nzc1ODA3Iik7CisgIAorICAKKyAgdHJ5e2NoZWNrc2NhbGU6ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZigobG9uZykyMywtOCk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gJDEyNyl7ZT0kMTI3OworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiTmVnYXRpdmUgc2NhbGU6IC04Iik7CisgIH0vKmNoZWNrc2NhbGUqLworICAobmV3IFRlc3QoInZhbDEwMCIpKS5vaz1mbGFnOworICAKKyAgLy8gdmFsdWVPZihkb3VibGUpIC0tCisgIAorICBkemVyPShkb3VibGUpMDsKKyAgZHBvcz0oZG91YmxlKTE7CisgIGRwb3M9ZHBvcy8oKGRvdWJsZSkxMCk7CisgIGRuZWc9KGRvdWJsZSktZHBvczsKKyAgKG5ldyBUZXN0KCJ2YWwyMDEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGRuZWcpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuMSIpOworICAobmV3IFRlc3QoInZhbDIwMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZHplcikudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAiKTsgLy8gY2YuIGNvbnN0cnVjdG9yCisgIChuZXcgVGVzdCgidmFsMjAzIikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkcG9zKS50b1N0cmluZygpKS5lcXVhbHMoIjAuMSIpOworICBkcG9zNT0oZG91YmxlKTAuNUQ7CisgIGRuZWc1PShkb3VibGUpLWRwb3M1OworICAobmV3IFRlc3QoInZhbDIwNCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZG5lZzUpLnRvU3RyaW5nKCkpLmVxdWFscygiLTAuNSIpOworICAobmV3IFRlc3QoInZhbDIwNSIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZHBvczUpLnRvU3RyaW5nKCkpLmVxdWFscygiMC41Iik7CisgIGRtaW49amF2YS5sYW5nLkRvdWJsZS5NSU5fVkFMVUU7CisgIGRtYXg9amF2YS5sYW5nLkRvdWJsZS5NQVhfVkFMVUU7CisgIChuZXcgVGVzdCgidmFsMjA2IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkbWluKS50b1N0cmluZygpKS5lcXVhbHMoIjQuOUUtMzI0Iik7CisgIChuZXcgVGVzdCgidmFsMjA3IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkbWF4KS50b1N0cmluZygpKS5lcXVhbHMoIjEuNzk3NjkzMTM0ODYyMzE1N0UrMzA4Iik7CisgIAorICAvLyBuYXN0aWVzCisgIGQ9KGRvdWJsZSk5OworICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoInZhbDIxMCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjkiKTsKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJ2YWwyMTEiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGQpLnRvU3RyaW5nKCkpLmVxdWFscygiMC4wOSIpOworICBkPWQvKChkb3VibGUpMTApOworICAobmV3IFRlc3QoInZhbDIxMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLnZhbHVlT2YoZCkudG9TdHJpbmcoKSkuZXF1YWxzKCIwLjAwOTAiKTsKKyAgZD1kLygoZG91YmxlKTEwKTsKKyAgKG5ldyBUZXN0KCJ2YWwyMTMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKGQpLnRvU3RyaW5nKCkpLmVxdWFscygiOS4wRS00Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE0IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk5RS01Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE1IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk5RS02Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE2IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk5RS03Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE3IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk5RS04Iik7CisgIGQ9ZC8oKGRvdWJsZSkxMCk7CisgIChuZXcgVGVzdCgidmFsMjE4IikpLm9rPShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihkKS50b1N0cmluZygpKS5lcXVhbHMoIjguOTk5OTk5OTk5OTk5OTk4RS05Iik7CisgIAorICB0cnl7Y2hlY2twaW46ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihqYXZhLmxhbmcuRG91YmxlLlBPU0lUSVZFX0lORklOSVRZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkMTI4KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2twaW4qLworICAobmV3IFRlc3QoInZhbDMwMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tuaW46ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihqYXZhLmxhbmcuRG91YmxlLk5FR0FUSVZFX0lORklOSVRZKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiAkMTI5KXsKKyAgIGZsYWc9dHJ1ZTsKKyAgfS8qY2hlY2tuaW4qLworICAobmV3IFRlc3QoInZhbDMwMiIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tuYW46ZG97CisgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihqYXZhLmxhbmcuRG91YmxlLk5hTik7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24gJDEzMCl7CisgICBmbGFnPXRydWU7CisgIH0vKmNoZWNrbmFuKi8KKyAgKG5ldyBUZXN0KCJ2YWwzMDMiKSkub2s9ZmxhZzsKKyAgCisgIHN1bW1hcnkoInZhbHVlT2YiKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKiBUZXN0IHRoZSB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dH0gY2xhc3MuICovCisgCisgcHVibGljIHZvaWQgZGlhZ21hdGhjb250ZXh0KCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNjb24xOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jY29uMjsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY2NvbjM7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNjb240OworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm1jOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm1kOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm1mOworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm1oZDsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY3JtaGU7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgbWNybWh1OworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jcm11bjsKKyAgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBtY3JtdTsKKyAgYm9vbGVhbiBmbGFnPWZhbHNlOworICBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGU9bnVsbDsKKyAgLy8gdGhlc2UgdGVzdHMgYXJlIG1vc3RseSBleGlzdGVuY2UgY2hlY2tzCisgIChuZXcgVGVzdCgibWNuMDAxIikpLm9rPShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQuZ2V0RGlnaXRzKCkpPT05OworICAobmV3IFRlc3QoIm1jbjAwMiIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldEZvcm0oKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQzsKKyAgKG5ldyBUZXN0KCJtY24wMDMiKSkub2s9KGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVC5nZXRGb3JtKCkpIT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkVOR0lORUVSSU5HOworICAobmV3IFRlc3QoIm1jbjAwNCIpKS5vaz0oY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ERUZBVUxULmdldEZvcm0oKSkhPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47CisgIChuZXcgVGVzdCgibWNuMDA1IikpLm9rPShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQuZ2V0TG9zdERpZ2l0cygpPzE6MCk9PTA7CisgIChuZXcgVGVzdCgibWNuMDA2IikpLm9rPShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkRFRkFVTFQuZ2V0Um91bmRpbmdNb2RlKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIAorICAobmV3IFRlc3QoIm1jbjAxMCIpKS5vaz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0NFSUxJTkc+PTA7CisgIChuZXcgVGVzdCgibWNuMDExIikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTj49MDsKKyAgKG5ldyBUZXN0KCJtY24wMTIiKSkub2s9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUj49MDsKKyAgKG5ldyBUZXN0KCJtY24wMTMiKSkub2s9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04+PTA7CisgIChuZXcgVGVzdCgibWNuMDE0IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9FVkVOPj0wOworICAobmV3IFRlc3QoIm1jbjAxNSIpKS5vaz1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA+PTA7CisgIChuZXcgVGVzdCgibWNuMDE2IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlk+PTA7CisgIChuZXcgVGVzdCgibWNuMDE3IikpLm9rPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVVA+PTA7CisgIAorICBtY2NvbjE9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMTExKTsKKyAgKG5ldyBUZXN0KCJtY24wMjEiKSkub2s9KG1jY29uMS5nZXREaWdpdHMoKSk9PTExMTsKKyAgKG5ldyBUZXN0KCJtY24wMjIiKSkub2s9KG1jY29uMS5nZXRGb3JtKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUM7CisgIChuZXcgVGVzdCgibWNuMDIzIikpLm9rPShtY2NvbjEuZ2V0TG9zdERpZ2l0cygpPzE6MCk9PTA7CisgIChuZXcgVGVzdCgibWNuMDI0IikpLm9rPShtY2NvbjEuZ2V0Um91bmRpbmdNb2RlKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgIAorICBtY2NvbjI9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoNzgsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5FTkdJTkVFUklORyk7CisgIChuZXcgVGVzdCgibWNuMDMxIikpLm9rPShtY2NvbjIuZ2V0RGlnaXRzKCkpPT03ODsKKyAgKG5ldyBUZXN0KCJtY24wMzIiKSkub2s9KG1jY29uMi5nZXRGb3JtKCkpPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkVOR0lORUVSSU5HOworICAobmV3IFRlc3QoIm1jbjAzMyIpKS5vaz0obWNjb24yLmdldExvc3REaWdpdHMoKT8xOjApPT0wOworICAobmV3IFRlc3QoIm1jbjAzNCIpKS5vaz0obWNjb24yLmdldFJvdW5kaW5nTW9kZSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQOworICAKKyAgbWNjb24zPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDUsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTix0cnVlKTsKKyAgKG5ldyBUZXN0KCJtY24wNDEiKSkub2s9KG1jY29uMy5nZXREaWdpdHMoKSk9PTU7CisgIChuZXcgVGVzdCgibWNuMDQyIikpLm9rPShtY2NvbjMuZ2V0Rm9ybSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsKKyAgKG5ldyBUZXN0KCJtY24wNDMiKSkub2s9KG1jY29uMy5nZXRMb3N0RGlnaXRzKCk/MTowKT09MTsKKyAgKG5ldyBUZXN0KCJtY24wNDQiKSkub2s9KG1jY29uMy5nZXRSb3VuZGluZ01vZGUoKSk9PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUDsKKyAgCisgIG1jY29uND1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyxmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKTsKKyAgKG5ldyBUZXN0KCJtY24wNTEiKSkub2s9KG1jY29uNC5nZXREaWdpdHMoKSk9PTA7CisgIChuZXcgVGVzdCgibWNuMDUyIikpLm9rPShtY2NvbjQuZ2V0Rm9ybSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDOworICAobmV3IFRlc3QoIm1jbjA1MyIpKS5vaz0obWNjb240LmdldExvc3REaWdpdHMoKT8xOjApPT0wOworICAobmV3IFRlc3QoIm1jbjA1NCIpKS5vaz0obWNjb240LmdldFJvdW5kaW5nTW9kZSgpKT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUjsKKyAgCisgIChuZXcgVGVzdCgibWNuMDYxIikpLm9rPShtY2NvbjEudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9MTExIGZvcm09U0NJRU5USUZJQyBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfVVAiKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDYyIikpLm9rPShtY2NvbjIudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9NzggZm9ybT1FTkdJTkVFUklORyBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfVVAiKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDYzIikpLm9rPShtY2NvbjMudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9NSBmb3JtPVBMQUlOIGxvc3REaWdpdHM9MSByb3VuZGluZ01vZGU9Uk9VTkRfSEFMRl9VUCIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNjQiKSkub2s9KG1jY29uNC50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09U0NJRU5USUZJQyBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0ZMT09SIik7CisgIAorICAKKyAgLy8gY29tcGxldGUgdGVzdGluZyByb3VuZGluZyBtb2RlcyByb3VuZCB0cmlwcworICBtY3JtYz1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HKTsKKyAgbWNybWQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfRE9XTik7CisgIG1jcm1mPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0ZMT09SKTsKKyAgbWNybWhkPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRE9XTik7CisgIG1jcm1oZT1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU4pOworICBtY3JtaHU9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOLGZhbHNlLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCk7CisgIG1jcm11bj1uZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWSk7CisgIG1jcm11PW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX1VQKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDcxIikpLm9rPShtY3JtYy50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09UExBSU4gbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9DRUlMSU5HIik7CisgIAorICAobmV3IFRlc3QoIm1jbjA3MiIpKS5vaz0obWNybWQudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9MCBmb3JtPVBMQUlOIGxvc3REaWdpdHM9MCByb3VuZGluZ01vZGU9Uk9VTkRfRE9XTiIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNzMiKSkub2s9KG1jcm1mLnRvU3RyaW5nKCkpLmVxdWFscygiZGlnaXRzPTAgZm9ybT1QTEFJTiBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0ZMT09SIik7CisgIAorICAobmV3IFRlc3QoIm1jbjA3NCIpKS5vaz0obWNybWhkLnRvU3RyaW5nKCkpLmVxdWFscygiZGlnaXRzPTAgZm9ybT1QTEFJTiBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfRE9XTiIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNzUiKSkub2s9KG1jcm1oZS50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09UExBSU4gbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9IQUxGX0VWRU4iKTsKKyAgCisgIChuZXcgVGVzdCgibWNuMDc2IikpLm9rPShtY3JtaHUudG9TdHJpbmcoKSkuZXF1YWxzKCJkaWdpdHM9MCBmb3JtPVBMQUlOIGxvc3REaWdpdHM9MCByb3VuZGluZ01vZGU9Uk9VTkRfSEFMRl9VUCIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNzciKSkub2s9KG1jcm11bi50b1N0cmluZygpKS5lcXVhbHMoImRpZ2l0cz0wIGZvcm09UExBSU4gbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9VTk5FQ0VTU0FSWSIpOworICAKKyAgKG5ldyBUZXN0KCJtY24wNzgiKSkub2s9KG1jcm11LnRvU3RyaW5nKCkpLmVxdWFscygiZGlnaXRzPTAgZm9ybT1QTEFJTiBsb3N0RGlnaXRzPTAgcm91bmRpbmdNb2RlPVJPVU5EX1VQIik7CisgIAorICAKKyAgLy8gW2dldCBtZXRob2RzIHRlc3RlZCBhbHJlYWR5XQorICAKKyAgLy8gZXJyb3JzLi4uCisgIAorICB0cnl7Y2hlY2tkaWc6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgtMSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDEzMSl7ZT0kMTMxOworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiRGlnaXRzIHRvbyBzbWFsbDogLTEiKTsKKyAgfS8qY2hlY2tkaWcqLworICAobmV3IFRlc3QoIm1jbjEwMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tkaWdiaWc6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgxMDAwMDAwMDAwKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkMTMyKXtlPSQxMzI7CisgICBmbGFnPShlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJEaWdpdHMgdG9vIGxhcmdlOiAxMDAwMDAwMDAwIik7CisgIH0vKmNoZWNrZGlnYmlnKi8KKyAgKG5ldyBUZXN0KCJtY24xMDIiKSkub2s9ZmxhZzsKKyAgCisgIHRyeXtjaGVja2Zvcm06ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLDUpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQxMzMpe2U9JDEzMzsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkJhZCBmb3JtIHZhbHVlOiA1Iik7CisgIH0vKmNoZWNrZm9ybSovCisgIChuZXcgVGVzdCgibWNuMTExIikpLm9rPWZsYWc7CisgIHRyeXtjaGVja2Zvcm1uZWc6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLC0xKTsKKyAgIGZsYWc9ZmFsc2U7CisgIH13aGlsZShmYWxzZSk7fQorICBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiAkMTM0KXtlPSQxMzQ7CisgICBmbGFnPShlLmdldE1lc3NhZ2UoKSkuZXF1YWxzKCJCYWQgZm9ybSB2YWx1ZTogLTEiKTsKKyAgfS8qY2hlY2tmb3JtbmVnKi8KKyAgKG5ldyBUZXN0KCJtY24xMTIiKSkub2s9ZmxhZzsKKyAgCisgIC8vIFtsb3N0RGlnaXRzIGNhbm5vdCBiZSBpbnZhbGlkXQorICAKKyAgdHJ5e2NoZWNrcm91bmQ6ZG97CisgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCgwLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4sZmFsc2UsMTIpOworICAgZmxhZz1mYWxzZTsKKyAgfXdoaWxlKGZhbHNlKTt9CisgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQxMzUpe2U9JDEzNTsKKyAgIGZsYWc9KGUuZ2V0TWVzc2FnZSgpKS5lcXVhbHMoIkJhZCByb3VuZGluZ01vZGUgdmFsdWU6IDEyIik7CisgIH0vKmNoZWNrcm91bmQqLworICAobmV3IFRlc3QoIm1jbjEyMSIpKS5vaz1mbGFnOworICB0cnl7Y2hlY2tyb3VuZG5lZzpkb3sKKyAgIG5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSwtMSk7CisgICBmbGFnPWZhbHNlOworICB9d2hpbGUoZmFsc2UpO30KKyAgY2F0Y2ggKGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gJDEzNil7ZT0kMTM2OworICAgZmxhZz0oZS5nZXRNZXNzYWdlKCkpLmVxdWFscygiQmFkIHJvdW5kaW5nTW9kZSB2YWx1ZTogLTEiKTsKKyAgfS8qY2hlY2tyb3VuZG5lZyovCisgIChuZXcgVGVzdCgibWNuMTIyIikpLm9rPWZsYWc7CisgIAorICBzdW1tYXJ5KCJNYXRoQ29udGV4dCIpOworIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqIFRlc3QgZ2VuZXJhbCBhcml0aG1ldGljIChiYXNlIG9wZXJhdG9ycykuCisgICogPHA+VW5saWtlIHRoZSBzcGVjaWZpYyBtZXRob2QgdGVzdHMsIHRoZXNlIHRlc3RzIHdlcmUgcmFuZG9tbHkKKyAgKiBnZW5lcmF0ZWQgYnkgYW4gSUJNIE9iamVjdCBSZXh4IHByb2NlZHVyZSwgdGhlbiBtYW51YWxseSBjb3JyZWN0ZWQKKyAgKiBmb3Iga25vd24gZGlmZmVyZW5jZXMgZnJvbSBBTlNJIFgzLTI3NC4gIFRoZXNlIGRpZmZlcmVuY2VzIGFyZToKKyAgKiA8b2w+CisgICogPGxpPnRoZSB0cmlnZ2VyIHBvaW50IGluIGV4cG9uZW50aWFsIG5vdGF0aW9uIGlzIGZpeGVkIGluIEFOU0kKKyAgKiAgICAgWDMtMjc0IGJ1dCB2YXJpZXMgd2l0aCBESUdJVFMgaW4gQ2xhc3NpYyBhbmQgT2JqZWN0IFJleHgKKyAgKiA8bGk+c29tZSB0cmFpbGluZyB6ZXJvcyB3ZXJlIG1pc3NpbmcgKGUuZy4sIDEuMyArIDFFLTYwIHNob3VsZCBzaG93CisgICogICAgIHNldmVuIHRyYWlsaW5nIHplcm9zKQorICAqIDxsaT50aGUgcG93ZXIgb3BlcmF0b3IgaXMgbGVzcyBhY2N1cmF0ZSBpbiBPYmplY3QgUmV4eAorICAqIDxsaT5BTlNJIFgzLTI3NCBbZXJyYXRhIDE5OTldIHJvdW5kcyBpbnB1dCBudW1iZXJzIHRvIERJR0lUUyAocmF0aGVyCisgICogICAgIHRoYW4gdHJ1bmNhdGluZyB0byBESUdJVFMrMSkuCisgICogPC9vbD4KKyAgKi8KKyAKKyBwdWJsaWMgdm9pZCBkaWFnbWF0aCgpeworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IGRlZjsKKyAgZGVmPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuREVGQVVMVDsKKyAgbWF0aHRlc3QoMSxkZWYsIi05Mzc1Mjg0LjQyIiwiNTUxNi45OTgzMkUrMjcyNzY5ODQiLCI1LjUxNjk5ODMyRSsyNzI3Njk4NyIsIi01LjUxNjk5ODMyRSsyNzI3Njk4NyIsIi01LjE3MjM0Mjg0RSsyNzI3Njk5NCIsIi0xLjY5OTM0NTE2RS0yNzI3Njk4MSIsIjAiLCItOTM3NTI4NC40MiIsIjYuNzkwNTc3NTJFKzQxIik7CisgIG1hdGh0ZXN0KDIsZGVmLCItNDEwLjgzMjcxMCIsIjk5LjM1ODgyNDNFLTUwMjc0MDg2MiIsIi00MTAuODMyNzEwIiwiLTQxMC44MzI3MTAiLCItNC4wODE5ODU1MEUtNTAyNzQwODU4IiwiLTQuMTM0ODM4NjhFKzUwMjc0MDg2MiIsIiIsIiIsIjEuMzY5Nzc3ODZFKzI2Iik7CisgIG1hdGh0ZXN0KDMsZGVmLCI4MDAyNS4yMzQwIiwiLTguMDMwOTc1ODEiLCI4MDAxNy4yMDMwIiwiODAwMzMuMjY1MCIsIi02NDI2ODAuNzE4IiwiLTk5NjQuNTcxNjciLCItOTk2NCIsIjQuNTkxMDI5MTYiLCI1Ljk0NTQ0NTE3RS00MCIpOworICBtYXRodGVzdCg0LGRlZiwiODEwNTIwMjAuMiIsIi00NjQ1MjU0OTUiLCItMzgzNDczNDc1IiwiNTQ1NTc3NTE1IiwiLTMuNzY1MDcyOThFKzE2IiwiLTAuMTc0NDgzNDciLCIwIiwiODEwNTIwMjAuMiIsIiIpOworICBtYXRodGVzdCg1LGRlZiwiNzE1LjA2OTI5NEUtMjY5MjMxNTEiLCI4NS40NDA0MTI4RSs3OTYzODg1NTciLCI4LjU0NDA0MTI4RSs3OTYzODg1NTgiLCItOC41NDQwNDEyOEUrNzk2Mzg4NTU4IiwiNi4xMDk1ODE1N0UrNzY5NDY1NDEwIiwiOC4zNjkyMTYyOEUtODIzMzExNzA4IiwiMCIsIjcuMTUwNjkyOTRFLTI2OTIzMTQ5IiwiNC44ODgwMjIxM0UtMjQyMzA4MzM0Iik7CisgIG1hdGh0ZXN0KDYsZGVmLCItMjE5NzE1NzUuMEUrMzE0NTQ0NDEiLCItNzA5NDQ5NjAuM0UrMTExMjM4MjIxIiwiLTcuMDk0NDk2MDNFKzExMTIzODIyOCIsIjcuMDk0NDk2MDNFKzExMTIzODIyOCIsIjEuNTU4NzcyNTJFKzE0MjY5MjY3NyIsIjMuMDk2OTg4ODRFLTc5NzgzNzgxIiwiMCIsIi0yLjE5NzE1NzUwRSszMTQ1NDQ0OCIsIi00LjA0NTQ5NTAyRS0yMjAxODExMzkiKTsKKyAgbWF0aHRlc3QoNyxkZWYsIjY4Mi4yNTMxNiIsIjU0NDcwMTg1LjYiLCI1NDQ3MDg2Ny45IiwiLTU0NDY5NTAzLjQiLCIzLjcxNjI0NTYzRSsxMCIsIjAuMDAwMDEyNTI1MjU4NiIsIjAiLCI2ODIuMjUzMTYiLCIzLjQ4NTc4Njk5RSsxNTQzNjU1NDEiKTsKKyAgbWF0aHRlc3QoOCxkZWYsIi0yNTc1ODY3NTcuIiwiMjA4Mjg4OC43MSIsIi0yNTU1MDM4NjgiLCItMjU5NjY5NjQ2IiwiLTUuMzY1MjQ1NDhFKzE0IiwiLTEyMy42NjgwMzYiLCItMTIzIiwiLTEzOTE0NDUuNjciLCItMS4yNjg3OTUxNUUrMTc1MTkwMjAiKTsKKyAgbWF0aHRlc3QoOSxkZWYsIjMxOTU3NzU0MC5FKzI0MjU5OTc2MSIsIjYwLjcxMjQ1NjEiLCIzLjE5NTc3NTQwRSsyNDI1OTk3NjkiLCIzLjE5NTc3NTQwRSsyNDI1OTk3NjkiLCIxLjk0MDIzMzc0RSsyNDI1OTk3NzEiLCI1LjI2Mzc4ODY5RSsyNDI1OTk3NjciLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTAsZGVmLCItMTM3Njk5NzcuMCIsIjI0MzcxLjMzODEiLCItMTM3NDU2MDUuNyIsIi0xMzc5NDM0OC4zIiwiLTMuMzU1OTI3NjVFKzExIiwiLTU2NS4wMDcwMTUiLCItNTY1IiwiLTE3MC45NzM1IiwiLTguNzM3MzQwMDFFKzE3Mzk4MiIpOworICBtYXRodGVzdCgxMSxkZWYsIi00NzUuNDM0OTcyRS03MjU0NjQzMTEiLCItMy4yMjIxNDA2NkUtODY1NDc2ODM2IiwiLTQuNzU0MzQ5NzJFLTcyNTQ2NDMwOSIsIi00Ljc1NDM0OTcyRS03MjU0NjQzMDkiLCIiLCIxLjQ3NTUyNTE5RSsxNDAwMTI1MjciLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTIsZGVmLCI4NDIuMDEyNTAiLCIxOTcxOTk4OTMiLCIxOTcyMDA3MzUiLCItMTk3MTk5MDUxIiwiMS42NjA0NDc3NUUrMTEiLCIwLjAwMDAwNDI2OTg0MjU4IiwiMCIsIjg0Mi4wMTI1MCIsIjcuMDA2NzQxNjRFKzU3Njg3MjUwMiIpOworICBtYXRodGVzdCgxMyxkZWYsIjU3Mi4xNzMxMDNFKzI4MDEyODQyOCIsIi03MTQwLjE5NDI4IiwiNS43MjE3MzEwM0UrMjgwMTI4NDMwIiwiNS43MjE3MzEwM0UrMjgwMTI4NDMwIiwiLTQuMDg1NDI3MTJFKzI4MDEyODQzNCIsIi04LjAxMzQxMDg1RSsyODAxMjg0MjYiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTQsZGVmLCI2NzQyMzUuOTU0RSs0NzYxMzUyOTEiLCI5Njg0LjgyMjQ1IiwiNi43NDIzNTk1NEUrNDc2MTM1Mjk2IiwiNi43NDIzNTk1NEUrNDc2MTM1Mjk2IiwiNi41Mjk4NTU1MEUrNDc2MTM1MzAwIiwiNi45NjE3NzkxOUUrNDc2MTM1MjkyIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE1LGRlZiwiLTM2MDU1Ny45MjFFKzQzNzExNjUxNCIsIjkzMDQyODg1MCIsIi0zLjYwNTU3OTIxRSs0MzcxMTY1MTkiLCItMy42MDU1NzkyMUUrNDM3MTE2NTE5IiwiLTMuMzU0NzM0OTJFKzQzNzExNjUyOCIsIi0zLjg3NTE3OTkzRSs0MzcxMTY1MTAiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTYsZGVmLCI5NTcxNjU5MThFLTM5NDU5NTcwNSIsIjE2NzYuNTkwNzNFLTgyOTYxODk0NCIsIjkuNTcxNjU5MThFLTM5NDU5NTY5NyIsIjkuNTcxNjU5MThFLTM5NDU5NTY5NyIsIiIsIjUuNzA5MDAxNjFFKzQzNTAyMzI0NCIsIiIsIiIsIjkuMTYxNjY1OTVFLTc4OTE5MTM5MyIpOworICBtYXRodGVzdCgxNyxkZWYsIi0yNjEwODY0LjQwIiwiMzEyNDU5MTIuNyIsIjI4NjM1MDQ4LjMiLCItMzM4NTY3NzcuMSIsIi04LjE1Nzg4NDExRSsxMyIsIi0wLjA4MzU1ODU4OTciLCIwIiwiLTI2MTA4NjQuNDAiLCItMy4xMjAwODkwNUUrMjAwNDk4Mjg0Iik7CisgIG1hdGh0ZXN0KDE4LGRlZiwiOTU5LjU0ODQ2MSIsIjk4Ljk5NDU3N0UrNzc2Nzc1NDI2IiwiOS44OTk0NTc3MEUrNzc2Nzc1NDI3IiwiLTkuODk5NDU3NzBFKzc3Njc3NTQyNyIsIjkuNDk5MDA5NDBFKzc3Njc3NTQzMCIsIjkuNjkyOTM5NjVFLTc3Njc3NTQyNiIsIjAiLCI5NTkuNTQ4NDYxIiwiNi42MTcxMjE4NUUrMjkiKTsKKyAgbWF0aHRlc3QoMTksZGVmLCItNDEwODUuMDI2OCIsIjMxMTU0NzcuNjEiLCIzMDc0MzkyLjU4IiwiLTMxNTY1NjIuNjQiLCItMS4yNzk5OTQ4MUUrMTEiLCItMC4wMTMxODczOTI3IiwiMCIsIi00MTA4NS4wMjY4IiwiNC43Mzg0NDE3M0UrMTQzNzM4MjkiKTsKKyAgbWF0aHRlc3QoMjAsZGVmLCItNzIzNDIwMjg1LiIsIjI2ODE2NjAuMzUiLCItNzIwNzM4NjI1IiwiLTcyNjEwMTk0NSIsIi0xLjkzOTk2NzQ5RSsxNSIsIi0yNjkuNzY1ODEzIiwiLTI2OSIsIi0yMDUzNjUwLjg1IiwiNC4xNDMyNDExM0UrMjM3NTc4NzMiKTsKKyAgbWF0aHRlc3QoMjEsZGVmLCI2MzU0MjAxOC4wRS04MTc3MzIyMzAiLCItODgzNjI0My4yMiIsIi04ODM2MjQzLjIyIiwiODgzNjI0My4yMiIsIi01LjYxNDcyNzI2RS04MTc3MzIyMTYiLCItNy4xOTEwNjcxMUUtODE3NzMyMjMwIiwiMCIsIjYuMzU0MjAxODBFLTgxNzczMjIyMyIsIiIpOworICBtYXRodGVzdCgyMixkZWYsIi05NjA1MS43MTA4IiwiLTI5MTIwMS45NTUiLCItMzg3MjUzLjY2NiIsIjE5NTE1MC4yNDQiLCIyLjc5NzA0NDYwRSsxMCIsIjAuMzI5ODQ1Njk0IiwiMCIsIi05NjA1MS43MTA4IiwiMy41MzYxNzE1M0UtMTQ1MDkxNiIpOworICBtYXRodGVzdCgyMyxkZWYsIjEwODQ5MC44NTMiLCI5MTY4NTk5Ni41IiwiOTE3OTQ0ODcuNCIsIi05MTU3NzUwNS43IiwiOS45NDcwOTE5N0UrMTIiLCIwLjAwMTE4MzI4NzA2IiwiMCIsIjEwODQ5MC44NTMiLCI2Ljk4MTI0MjY1RSs0NjE2NzUwMzgiKTsKKyAgbWF0aHRlc3QoMjQsZGVmLCItMjc0ODkuMTczNSIsIi05ODM1ODM1LjRFLTUwNjQxMTY0OSIsIi0yNzQ4OS4xNzM1IiwiLTI3NDg5LjE3MzUiLCIyLjcwMzc4OTg2RS01MDY0MTE2MzgiLCIyLjc5NDc5ODA0RSs1MDY0MTE2NDYiLCIiLCIiLCI0LjA1ODY2NDcyRS00NSIpOworICBtYXRodGVzdCgyNSxkZWYsIi04OTIyMDQwNi42IiwiOTkzMzkxLjAwOEUtNjExMDQxMTc1IiwiLTg5MjIwNDA2LjYiLCItODkyMjA0MDYuNiIsIi04Ljg2MzA3NDk2RS02MTEwNDExNjIiLCItOC45ODEzOTg2NUUrNjExMDQxMTc2IiwiIiwiIiwiMy4xOTYyNTkxM0UrNzkiKTsKKyAgbWF0aHRlc3QoMjYsZGVmLCI0Ljc1NTAyMDIwIiwiLTE3MDg5MTQ0LjkiLCItMTcwODkxNDAuMiIsIjE3MDg5MTQ5LjciLCItODEyNTkyMjkuMiIsIi0yLjc4MjQ3OTg5RS03IiwiMCIsIjQuNzU1MDIwMjAiLCIxLjA2MzAxOTFFLTExNTcxOTU1Iik7CisgIG1hdGh0ZXN0KDI3LGRlZiwiNjgwMjc5MTYuMiIsIi03OTY4ODMuODM5IiwiNjcyMzEwMzIuNCIsIjY4ODI0ODAwLjAiLCItNS40MjEwMzQ3MEUrMTMiLCItODUuMzY3NDE4NSIsIi04NSIsIjI5Mjc4OS44ODUiLCI4LjI5NDE1Mzc0RS02MjQxNzQ0Iik7CisgIG1hdGh0ZXN0KDI4LGRlZiwiLTguMDE5Njk0MzlFKzc4ODYwNTQ3OCIsIjkyMTU0MTU2LjAiLCItOC4wMTk2OTQzOUUrNzg4NjA1NDc4IiwiLTguMDE5Njk0MzlFKzc4ODYwNTQ3OCIsIi03LjM5MDQ4MTY4RSs3ODg2MDU0ODYiLCItOC43MDI0NzcxN0UrNzg4NjA1NDcwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI5LGRlZiwiLTgwMTIuOTgzNDEiLCI5NjE4OC44NjUxIiwiODgxNzUuODgxNyIsIi0xMDQyMDEuODQ5IiwiLTc3MDc1OTc4MCIsIi0wLjA4MzMwNDY4ODEiLCIwIiwiLTgwMTIuOTgzNDEiLCItMS4xNjAxMDE1NkUrMzc1NTAyIik7CisgIG1hdGh0ZXN0KDMwLGRlZiwiMjE3NjE0NzZFKzU5MjMzMDY3NyIsIi05LjcwNzQ0NTA2IiwiMi4xNzYxNDc2MEUrNTkyMzMwNjg0IiwiMi4xNzYxNDc2MEUrNTkyMzMwNjg0IiwiLTIuMTEyNDgzMzNFKzU5MjMzMDY4NSIsIi0yLjI0MTczMDUzRSs1OTIzMzA2ODMiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzEsZGVmLCItOTg0MDc3OC41MSIsIi0xNzkwNy4yMTkiLCItOTg1ODY4NS43MyIsIi05ODIyODcxLjI5IiwiMS43NjIyMDk3NkUrMTEiLCI1NDkuNTQyNTM0IiwiNTQ5IiwiLTk3MTUuMjc5IiwiLTYuNjI5OTc0MzdFLTEyNTIyNSIpOworICBtYXRodGVzdCgzMixkZWYsIi00LjEwOTc2MTQiLCItODE5LjIyNTc3NkUtMTQ1MjE0NzUxIiwiLTQuMTA5NzYxNDAiLCItNC4xMDk3NjE0MCIsIjMuMzY2ODIyNDdFLTE0NTIxNDc0OCIsIjUuMDE2NjQwNzRFKzE0NTIxNDc0OCIsIiIsIiIsIjAuMDAwMDEyMjg3NjAxOCIpOworICBtYXRodGVzdCgzMyxkZWYsIi00NDguODgwOTg1IiwiLTM5NC4wODczNzRFLTQ0MjUxMTQzNSIsIi00NDguODgwOTg1IiwiLTQ0OC44ODA5ODUiLCIxLjc2ODk4MzI5RS00NDI1MTE0MzAiLCIxLjEzOTAzOTI1RSs0NDI1MTE0MzUiLCIiLCIiLCIyLjQ2MzA2MDk5RS0xMSIpOworICBtYXRodGVzdCgzNCxkZWYsIjc3OS40NDUzMDRFKzg4MjY4ODU0NCIsIi03OTc4Njg1MTkiLCI3Ljc5NDQ1MzA0RSs4ODI2ODg1NDYiLCI3Ljc5NDQ1MzA0RSs4ODI2ODg1NDYiLCItNi4yMTg5NDg3MEUrODgyNjg4NTU1IiwiLTkuNzY5MDk0NkUrODgyNjg4NTM3IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM1LGRlZiwiNzk5OTk1NDc3IiwiLTYuMjM2NzUyMDhFKzE1NjMwOTQ0MCIsIi02LjIzNjc1MjA4RSsxNTYzMDk0NDAiLCI2LjIzNjc1MjA4RSsxNTYzMDk0NDAiLCItNC45ODkzNzM0NkUrMTU2MzA5NDQ5IiwiLTEuMjgyNzExNjlFLTE1NjMwOTQzMiIsIjAiLCI3OTk5OTU0NzciLCIzLjgxNDgyNjY3RS01NCIpOworICBtYXRodGVzdCgzNixkZWYsIi01MTkzMi44MTcwIiwiNTkxODQwMjc1RS0yNzg0ODAyODkiLCItNTE5MzIuODE3MCIsIi01MTkzMi44MTcwIiwiLTMuMDczNTkzMjdFLTI3ODQ4MDI3NiIsIi04Ljc3NDgwMjhFKzI3ODQ4MDI4NCIsIiIsIiIsIjEuOTYxNzg0NDNFKzI4Iik7CisgIG1hdGh0ZXN0KDM3LGRlZiwiNzAuMzU1MjM5MiIsIi00MjI4NjU2LjczIiwiLTQyMjg1ODYuMzgiLCI0MjI4NzI3LjA5IiwiLTI5NzUwODE1NiIsIi0wLjAwMDAxNjYzNzcyNzciLCIwIiwiNzAuMzU1MjM5MiIsIjkuMTQ3NDIzODJFLTc4MTE1ODQiKTsKKyAgbWF0aHRlc3QoMzgsZGVmLCIxNTg4MzU5LjM0IiwiLTEyMjMyNzk5LjIiLCItMTA2NDQ0MzkuOSIsIjEzODIxMTU4LjUiLCItMS45NDMwMDgwOUUrMTMiLCItMC4xMjk4NDQzMDciLCIwIiwiMTU4ODM1OS4zNCIsIjEuNTY5MTAwODZFLTc1ODU0OTYwIik7CisgIG1hdGh0ZXN0KDM5LGRlZiwiMjg0Mi4xNjIwNiIsIi0zLjIzMjM0MzQ1IiwiMjgzOC45Mjk3MiIsIjI4NDUuMzk0NDAiLCItOTE4Ni44NDM5MiIsIi04NzkuMjg4Mzg4IiwiLTg3OSIsIjAuOTMyMTY3NDUiLCI0LjM1NTY1NTE0RS0xMSIpOworICBtYXRodGVzdCg0MCxkZWYsIjI5OTYwLjIzMDUiLCI0NS4yNzM1NzQ3RS05NTIwNTQ3NSIsIjI5OTYwLjIzMDUiLCIyOTk2MC4yMzA1IiwiMS4zNTY0MDY3M0UtOTUyMDU0NjkiLCI2LjYxNzU5NzczRSs5NTIwNTQ3NyIsIiIsIiIsIjIuNDEzOTM2RSsyMiIpOworICBtYXRodGVzdCg0MSxkZWYsIjI5MTY1NjUuNzciLCIxMTUxOTM1LjQzRS03ODcxMTg3MjQiLCIyOTE2NTY1Ljc3IiwiMjkxNjU2NS43NyIsIjMuMzU5Njk1NDRFLTc4NzExODcxMiIsIjIuNTMxODgzMDNFKzc4NzExODcyNCIsIiIsIiIsIjI5MTY1NjUuNzciKTsKKyAgbWF0aHRlc3QoNDIsZGVmLCItNTI3MjMwMTIuOUUtOTY3MTQzNzg3IiwiNzkuNDA4ODIzNyIsIjc5LjQwODgyMzciLCItNzkuNDA4ODIzNyIsIi00LjE4NjY3MjQ0RS05NjcxNDM3NzgiLCItNi42Mzk0NDAxMUUtOTY3MTQzNzgyIiwiMCIsIi01LjI3MjMwMTI5RS05NjcxNDM3ODAiLCIiKTsKKyAgbWF0aHRlc3QoNDMsZGVmLCItMTY3NDczNDY1IiwiNzkzNjQ2LjU5NyIsIi0xNjY2Nzk4MTkiLCItMTY4MjY3MTEyIiwiLTEuMzI5MTQ3NDZFKzE0IiwiLTIxMS4wMTc2ODIiLCItMjExIiwiLTE0MDMzLjAzMyIsIi0xLjE5MDUzNzg5RSs2NTI2OTEwIik7CisgIG1hdGh0ZXN0KDQ0LGRlZiwiLTMxNzY5MDcxLjAiLCIxMzMuNDM2MCIsIi0zMTc2ODkzNy42IiwiLTMxNzY5MjA0LjQiLCItNC4yMzkxMzc3NkUrOSIsIi0yMzgwODQuNzA3IiwiLTIzODA4NCIsIi05NC4zNzYwIiwiLTUuODQyNTI0MzJFKzk5NyIpOworICBtYXRodGVzdCg0NSxkZWYsIjQ1OTYwLjYzODMiLCItOTMzNTIuNzQ2OCIsIi00NzM5Mi4xMDg1IiwiMTM5MzEzLjM4NSIsIi00LjI5MDU1MTgzRSs5IiwiLTAuNDkyMzMzMDA0IiwiMCIsIjQ1OTYwLjYzODMiLCIxLjg4MzM1MzIzRS00MzUyNDgiKTsKKyAgbWF0aHRlc3QoNDYsZGVmLCI2MDYuMTc1NjQ4IiwiNS4yODUyODQ1OEUtOTgxOTgzNjIwIiwiNjA2LjE3NTY0OCIsIjYwNi4xNzU2NDgiLCIzLjIwMzgxMDgxRS05ODE5ODM2MTciLCIxLjE0NjkxMjAzRSs5ODE5ODM2MjIiLCIiLCIiLCI4LjE4NDUwNTE2RSsxMyIpOworICBtYXRodGVzdCg0NyxkZWYsIjE3MTU3OC42MTdFKzY0MzAwNjExMCIsIi00MDc3NzQuMjkzIiwiMS43MTU3ODYxN0UrNjQzMDA2MTE1IiwiMS43MTU3ODYxN0UrNjQzMDA2MTE1IiwiLTYuOTk2NTM0OTJFKzY0MzAwNjEyMCIsIi00LjIwNzY4NTk3RSs2NDMwMDYxMDkiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDgsZGVmLCItNjgyMjg2MzMyLiIsIi00NjQuODcxNjk5IiwiLTY4MjI4Njc5NyIsIi02ODIyODU4NjciLCIzLjE3MTc1NjA2RSsxMSIsIjE0Njc2ODcuMzkiLCIxNDY3Njg3IiwiLTE4Mi43MDk3ODciLCItMS42MDUwODQzRS00MTA4Iik7CisgIG1hdGh0ZXN0KDQ5LGRlZiwiNDkyMDg4LjQyOCIsIjY1My43MjE3MCIsIjQ5Mjc0Mi4xNTAiLCI0OTE0MzQuNzA2IiwiMzIxNjg4ODg0IiwiNzUyLjc0OTExIiwiNzUyIiwiNDg5LjcwOTYwIiwiMy45NDY1ODU5NkUrMzcyMiIpOworICBtYXRodGVzdCg1MCxkZWYsIjc0MzAzNzgyLjUiLCIxMTQxLjY4MDU4IiwiNzQzMDQ5MjQuMiIsIjc0MzAyNjQwLjgiLCI4LjQ4MzExODU1RSsxMCIsIjY1MDgyLjgxMiIsIjY1MDgyIiwiOTI2Ljk5MjQ0IiwiNC45NDg0OTg2OUUrODk4OCIpOworICBtYXRodGVzdCg1MSxkZWYsIjc0Ljc3OTQwODRFKzExOTM3NTMyOSIsIi0zNDc5OTM1NS42IiwiNy40Nzc5NDA4NEUrMTE5Mzc1MzMwIiwiNy40Nzc5NDA4NEUrMTE5Mzc1MzMwIiwiLTIuNjAyMjc1MjJFKzExOTM3NTMzOCIsIi0yLjE0ODg3MzM3RSsxMTkzNzUzMjMiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNTIsZGVmLCItOTQzMi4wODM2OSIsIjMzNzM1LjUwNTgiLCIyNDMwMy40MjIxIiwiLTQzMTY3LjU4OTUiLCItMzE4MTk2MTE0IiwiLTAuMjc5NTg5MjE4IiwiMCIsIi05NDMyLjA4MzY5IiwiMi4zMDk1NjdFKzEzNDA4NyIpOworICBtYXRodGVzdCg1MyxkZWYsIjQyNDkxOTguNzhFLTExMjQzMzE1NSIsIjQxODY3MzA1MS4iLCI0MTg2NzMwNTEiLCItNDE4NjczMDUxIiwiMS43NzkwMjUwMkUtMTEyNDMzMTQwIiwiMS4wMTQ5MjA1NEUtMTEyNDMzMTU3IiwiMCIsIjQuMjQ5MTk4NzhFLTExMjQzMzE0OSIsIiIpOworICBtYXRodGVzdCg1NCxkZWYsIi0yOTYwOTMzLjAyIiwiLTIwNzkzMy4zOCIsIi0zMTY4ODY2LjQwIiwiLTI3NTI5OTkuNjQiLCI2LjE1Njc2ODExRSsxMSIsIjE0LjIzOTgxNTgiLCIxNCIsIi00OTg2NS43MCIsIi0yLjc1NjgwMzk3RS0xMzQ1NjI0Iik7CisgIG1hdGh0ZXN0KDU1LGRlZiwiMjkzMTcuNzUxOUUrOTQ1NjAwMDM1IiwiMS40MzU1NTc1MCIsIjIuOTMxNzc1MTlFKzk0NTYwMDAzOSIsIjIuOTMxNzc1MTlFKzk0NTYwMDAzOSIsIjQuMjA4NzMxODZFKzk0NTYwMDAzOSIsIjIuMDQyMjU1NDlFKzk0NTYwMDAzOSIsIiIsIiIsIjIuOTMxNzc1MTlFKzk0NTYwMDAzOSIpOworICBtYXRodGVzdCg1NixkZWYsIi01MS4xNjkzNzcwIiwiLTYzODA1NS40MTQiLCItNjM4MTA2LjU4MyIsIjYzODAwNC4yNDUiLCIzMjY0ODg5OC4wIiwiMC4wMDAwODAxOTU4MTk4IiwiMCIsIi01MS4xNjkzNzcwIiwiLTMuNDgyNjYwNzVFLTEwOTA0NDMiKTsKKyAgbWF0aHRlc3QoNTcsZGVmLCItNzU2MzQzMDU1LiIsIi02OC45MjQ4MzQ0RSsyMTcxMDA5NzUiLCItNi44OTI0ODM0NEUrMjE3MTAwOTc2IiwiNi44OTI0ODM0NEUrMjE3MTAwOTc2IiwiNS4yMTMwODE5OEUrMjE3MTAwOTg1IiwiMS4wOTczNDQ3NUUtMjE3MTAwOTY4IiwiMCIsIi03NTYzNDMwNTUiLCItNy4wNjI2NTg5N0UtNjMiKTsKKyAgbWF0aHRlc3QoNTgsZGVmLCIyNTM4LjgwNDA2RSs2OTQxODUxOTciLCItMzM4NjQ5OS42NSIsIjIuNTM4ODA0MDZFKzY5NDE4NTIwMCIsIjIuNTM4ODA0MDZFKzY5NDE4NTIwMCIsIi04LjU5NzY1OTA2RSs2OTQxODUyMDYiLCItNy40OTY4MzgzOUUrNjk0MTg1MTkzIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDU5LGRlZiwiLTU0MzQ0LjA2NzIiLCItODA4Ni40NTIzNSIsIi02MjQzMC41MTk2IiwiLTQ2MjU3LjYxNDkiLCI0Mzk0NTA3MTAiLCI2LjcyMDM4NDI3IiwiNiIsIi01ODI1LjM1MzEwIiwiMy42MjkxNjg2MUUtMzgyODkiKTsKKyAgbWF0aHRlc3QoNjAsZGVmLCIzLjMxNjAwMDU0IiwiMjE3NDgxNjQ4IiwiMjE3NDgxNjUxIiwiLTIxNzQ4MTY0NSIsIjcyMTE2OTI2MiIsIjEuNTI0NzI2NkUtOCIsIjAiLCIzLjMxNjAwMDU0IiwiMy43MzEzNDk2OUUrMTEzMjI0MTE5Iik7CisgIG1hdGh0ZXN0KDYxLGRlZiwiNjgxODMyLjY3MSIsIjMyMDM0MS4xNjFFKzYyOTQ2NzU2MCIsIjMuMjAzNDExNjFFKzYyOTQ2NzU2NSIsIi0zLjIwMzQxMTYxRSs2Mjk0Njc1NjUiLCIyLjE4NDE5MDY5RSs2Mjk0Njc1NzEiLCIyLjEyODQ1Nzg5RS02Mjk0Njc1NjAiLCIwIiwiNjgxODMyLjY3MSIsIjMuMTY5ODExMzlFKzE3Iik7CisgIG1hdGh0ZXN0KDYyLGRlZiwiODMyNjg5NDgxIiwiMzQ4MDQwMDI0RS04ODIxMjI1MDEiLCI4MzI2ODk0ODEiLCI4MzI2ODk0ODEiLCIyLjg5ODA5MjY3RS04ODIxMjI0ODQiLCIyLjM5MjUxMDdFKzg4MjEyMjUwMSIsIiIsIiIsIjUuNzczNjMzODFFKzI2Iik7CisgIG1hdGh0ZXN0KDYzLGRlZiwiMTQuNTUxMjMyNkUrMjU3NTAwODExIiwiNjAuOTk3OTU3N0UtNjQ3MzE0NzI0IiwiMS40NTUxMjMyNkUrMjU3NTAwODEyIiwiMS40NTUxMjMyNkUrMjU3NTAwODEyIiwiOC44NzU5NTQ3MUUtMzg5ODEzOTExIiwiMi4zODU1Mjc4NEUrOTA0ODE1NTM0IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDY0LGRlZiwiLTkwMS4yNzg4NDQiLCI0NDk0NjE2NjcuIiwiNDQ5NDYwNzY2IiwiLTQ0OTQ2MjU2OCIsIi00LjA1MDkwMjkyRSsxMSIsIi0wLjAwMDAwMjAwNTI0MDc0IiwiMCIsIi05MDEuMjc4ODQ0IiwiIik7CisgIG1hdGh0ZXN0KDY1LGRlZiwiLTUuMzI2Mjc2NzUiLCItNzM4ODYwMjE2RS0yMzgyNzMyMjQiLCItNS4zMjYyNzY3NSIsIi01LjMyNjI3Njc1IiwiMy45MzUzNzM5OUUtMjM4MjczMjE1IiwiNy4yMDg3NzQ1OUUrMjM4MjczMjE1IiwiIiwiIiwiLTAuMDAwMDA4MjIzMDY4MzgiKTsKKyAgbWF0aHRlc3QoNjYsZGVmLCItNTA1MzgzNDYzLiIsIjMuMTg3NTYzMjgiLCItNTA1MzgzNDYwIiwiLTUwNTM4MzQ2NiIsIi0xLjYxMDk0MTc3RSs5IiwiLTE1ODU0ODUyNyIsIi0xNTg1NDg1MjciLCItMC4yMzY3MTE0NCIsIi0xLjI5MDgxMjI2RSsyNiIpOworICBtYXRodGVzdCg2NyxkZWYsIjc2OTI0MS40NEUtNzIwOTI3MzIwIiwiLTE0NTM4MjYzMS4iLCItMTQ1MzgyNjMxIiwiMTQ1MzgyNjMxIiwiLTEuMTE4MzQzNDRFLTcyMDkyNzMwNiIsIi01LjI5MTE1MDkxRS03MjA5MjczMjMiLCIwIiwiNy42OTI0MTQ0RS03MjA5MjczMTUiLCIiKTsKKyAgbWF0aHRlc3QoNjgsZGVmLCItNi40NTAzODkxMCIsIjU2NzM2LjQ0MTFFKzQ0MDkzNzE2NyIsIjUuNjczNjQ0MTFFKzQ0MDkzNzE3MSIsIi01LjY3MzY0NDExRSs0NDA5MzcxNzEiLCItMy42NTk3MjEyMUUrNDQwOTM3MTcyIiwiLTEuMTM2OTA0MDdFLTQ0MDkzNzE3MSIsIjAiLCItNi40NTAzODkxMCIsIjcyMDMwLjM0MjEiKTsKKyAgbWF0aHRlc3QoNjksZGVmLCI1OC40NzIxMDc1IiwiLTcxMjE4NjgyOSIsIi03MTIxODY3NzEiLCI3MTIxODY4ODciLCItNC4xNjQzMDY0OEUrMTAiLCItOC4yMTAyMjAyOEUtOCIsIjAiLCI1OC40NzIxMDc1IiwiIik7CisgIG1hdGh0ZXN0KDcwLGRlZiwiODI0NC4wODM1NyIsIjI0NS4zMDI4MjhFKzY1MjAwNzk1OSIsIjIuNDUzMDI4MjhFKzY1MjAwNzk2MSIsIi0yLjQ1MzAyODI4RSs2NTIwMDc5NjEiLCIyLjAyMjI5NzAxRSs2NTIwMDc5NjUiLCIzLjM2MDc3ODA0RS02NTIwMDc5NTgiLCIwIiwiODI0NC4wODM1NyIsIjY3OTY0OTEzLjkiKTsKKyAgbWF0aHRlc3QoNzEsZGVmLCI0NS41MzYxMzk3IiwiLTc2NTc5MDYzLjkiLCItNzY1NzkwMTguNCIsIjc2NTc5MTA5LjQiLCItMy40ODcxMTQ5NUUrOSIsIi01Ljk0NjI5MDk4RS03IiwiMCIsIjQ1LjUzNjEzOTciLCIzLjk4MzM1Mzc0RS0xMjY5OTUzNjciKTsKKyAgbWF0aHRlc3QoNzIsZGVmLCI1OTQ0MjAuNTRFKzY4NTI2MzAzOSIsIi05NTI0MjAuMTc5IiwiNS45NDQyMDU0MEUrNjg1MjYzMDQ0IiwiNS45NDQyMDU0MEUrNjg1MjYzMDQ0IiwiLTUuNjYxMzgxMTdFKzY4NTI2MzA1MCIsIi02LjI0MTE1ODYxRSs2ODUyNjMwMzgiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNzMsZGVmLCItODQxMzEwNzAxLiIsIjkzOTgxMTAuNCIsIi04MzE5MTI1OTEiLCItODUwNzA4ODExIiwiLTcuOTA2NzMwODVFKzE1IiwiLTg5LjUxOTEzMzciLCItODkiLCItNDg3ODg3NS40IiwiMS4zMDAwMTQ2NkUrODM4Nzc3MjIiKTsKKyAgbWF0aHRlc3QoNzQsZGVmLCI5MDQzOTIxNDZFLTE0MDEwMDI3NiIsIjE2ODExNjA5My4iLCIxNjgxMTYwOTMiLCItMTY4MTE2MDkzIiwiMS41MjA0Mjg3NEUtMTQwMTAwMjU5IiwiNS4zNzk1NjkxNEUtMTQwMTAwMjc2IiwiMCIsIjkuMDQzOTIxNDZFLTE0MDEwMDI2OCIsIiIpOworICBtYXRodGVzdCg3NSxkZWYsIi05MDczMjQ3OTJFKzY4NTUzOTY3MCIsIi0xNS42OTAyMTcxIiwiLTkuMDczMjQ3OTJFKzY4NTUzOTY3OCIsIi05LjA3MzI0NzkyRSs2ODU1Mzk2NzgiLCIxLjQyMzYxMjMwRSs2ODU1Mzk2ODAiLCI1Ljc4Mjc0MjExRSs2ODU1Mzk2NzciLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNzYsZGVmLCI5ODcwMTM2MDYuIiwiLTI2ODE4LjM1NzJFKzU2MDkwNzQ0MiIsIi0yLjY4MTgzNTcyRSs1NjA5MDc0NDYiLCIyLjY4MTgzNTcyRSs1NjA5MDc0NDYiLCItMi42NDcwMDgzNEUrNTYwOTA3NDU1IiwiLTMuNjgwMzY1NjVFLTU2MDkwNzQzOCIsIjAiLCI5ODcwMTM2MDYiLCIxLjAzOTk5MzRFLTI3Iik7CisgIG1hdGh0ZXN0KDc3LGRlZiwiLTc0MTMxNzU2NCIsIjYzMC4yNDE1MzBFLTIxMjc4Mjk0NiIsIi03NDEzMTc1NjQiLCItNzQxMzE3NTY0IiwiLTQuNjcyMDkxMTZFLTIxMjc4MjkzNSIsIi0xLjE3NjI0MzZFKzIxMjc4Mjk1MiIsIiIsIiIsIjEuNjU5Njg1MjdFKzUzIik7CisgIG1hdGh0ZXN0KDc4LGRlZiwiNjE4Njc5MDcuMiIsIi0xMzkyMDQ2NzAiLCItNzczMzY3NjMiLCIyMDEwNzI1NzciLCItOC42MTIzMDE2MUUrMTUiLCItMC40NDQ0Mzg0NDYiLCIwIiwiNjE4Njc5MDcuMiIsIiIpOworICBtYXRodGVzdCg3OSxkZWYsIi0yNzMuNjIyNzQzRSs1MzEyODI3MTciLCItNDU0My42ODY4NCIsIi0yLjczNjIyNzQzRSs1MzEyODI3MTkiLCItMi43MzYyMjc0M0UrNTMxMjgyNzE5IiwiMS4yNDMyNTYwNkUrNTMxMjgyNzIzIiwiNi4wMjIwNDIyOUUrNTMxMjgyNzE1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDgwLGRlZiwiLTM4MzU4ODk0OS4iLCItNDI4NjQwNTgzLiIsIi04MTIyMjk1MzIiLCI0NTA1MTYzNCIsIjEuNjQ0MjE3OTFFKzE3IiwiMC44OTQ4OTY0OCIsIjAiLCItMzgzNTg4OTQ5IiwiIik7CisgIG1hdGh0ZXN0KDgxLGRlZiwiLTU2MTgyLjI2ODYiLCIzMi43NzQxNjQ5IiwiLTU2MTQ5LjQ5NDQiLCItNTYyMTUuMDQyOCIsIi0xODQxMzI2Ljk0IiwiLTE3MTQuMjI0MjYiLCItMTcxNCIsIi03LjM0OTk2MTQiLCItNS40NTQ3NjQwMkUrMTU2Iik7CisgIG1hdGh0ZXN0KDgyLGRlZiwiLTYzNjYzODQuMzAiLCIzMzIwMTQuOTgwIiwiLTYwMzQzNjkuMzIiLCItNjY5ODM5OS4yOCIsIi0yLjExMzczNDk2RSsxMiIsIi0xOS4xNzQ5OTExIiwiLTE5IiwiLTU4MDk5LjY4MCIsIi0zLjA1MzkyMzk5RSsyMjU4OTk0Iik7CisgIG1hdGh0ZXN0KDgzLGRlZiwiLTEuMjc4OTc3MDIiLCItODIxMzc3Ni4wM0UtNjg2NTE5MTIzIiwiLTEuMjc4OTc3MDIiLCItMS4yNzg5NzcwMiIsIjEuMDUwNTIzMDhFLTY4NjUxOTExNiIsIjEuNTU3MTEyMTJFKzY4NjUxOTExNiIsIiIsIiIsIjAuMTM5NjY4MzcxIik7CisgIG1hdGh0ZXN0KDg0LGRlZiwiNjUuNDA1OTAzNiIsIjQwMTE2MjE0NUUrODg0MTU1NTA2IiwiNC4wMTE2MjE0NUUrODg0MTU1NTE0IiwiLTQuMDExNjIxNDVFKzg4NDE1NTUxNCIsIjIuNjIzODM3MjZFKzg4NDE1NTUxNiIsIjEuNjMwNDEwNjZFLTg4NDE1NTUxMyIsIjAiLCI2NS40MDU5MDM2IiwiMTgzMDA3MDQuMSIpOworICBtYXRodGVzdCg4NSxkZWYsIi0yMDYzMDkxNi44IiwiMTU4OTg3NDExLkUtNDgwNTAwNjEyIiwiLTIwNjMwOTE2LjgiLCItMjA2MzA5MTYuOCIsIi0zLjI4MDA1NjA1RS00ODA1MDA1OTciLCItMS4yOTc2NDQ2OEUrNDgwNTAwNjExIiwiIiwiIiwiNC4yNTYzNDcyOEUrMTQiKTsKKyAgbWF0aHRlc3QoODYsZGVmLCItNC43MjcwNTg1MyIsIi05NzYyNjc0Mi40IiwiLTk3NjI2NzQ3LjEiLCI5NzYyNjczNy43IiwiNDYxNDg3MzI1IiwiNC44NDE5NzA5N0UtOCIsIjAiLCItNC43MjcwNTg1MyIsIjIuOTI2NTQ0NDlFLTY1ODU4MTIwIik7CisgIG1hdGh0ZXN0KDg3LGRlZiwiOC40MzUyODE2OSIsIi00NTczLjQ1NzUyIiwiLTQ1NjUuMDIyMjQiLCI0NTgxLjg5MjgwIiwiLTM4NTc4LjQwMjUiLCItMC4wMDE4NDQzOTkyNyIsIjAiLCI4LjQzNTI4MTY5IiwiOC44NDI0ODY4OEUtNDIzNiIpOworICBtYXRodGVzdCg4OCxkZWYsIjEuOTEwNzUxODkiLCItNzA0MjQ3MDg5LiIsIi03MDQyNDcwODciLCI3MDQyNDcwOTEiLCItMS4zNDU2NDE0NkUrOSIsIi0yLjcxMzE4Mzk0RS05IiwiMCIsIjEuOTEwNzUxODkiLCI2Ljg0NTQ3NDk0RS0xOTgwMzczMDkiKTsKKyAgbWF0aHRlc3QoODksZGVmLCIzMTk5NzE5OEUtNTUxNzQ2MzA4IiwiMzI2Ljg5MjU4NCIsIjMyNi44OTI1ODQiLCItMzI2Ljg5MjU4NCIsIjEuMDQ1OTY0NjdFLTU1MTc0NjI5OCIsIjkuNzg4MjkxMTlFLTU1MTc0NjMwNCIsIjAiLCIzLjE5OTcxOThFLTU1MTc0NjMwMSIsIiIpOworICBtYXRodGVzdCg5MCxkZWYsIjEyNzU4OS4yMTMiLCI4NDE4NDMwNC4iLCI4NDMxMTg5My4yIiwiLTg0MDU2NzE0LjgiLCIxLjA3NDEwMDkxRSsxMyIsIjAuMDAxNTE1NTkzODUiLCIwIiwiMTI3NTg5LjIxMyIsIjIuODc5MTcwNDJFKzQyOTgyOTM5NCIpOworICBtYXRodGVzdCg5MSxkZWYsIjcxNDQ5NDI0OCIsIi03MDI1MDYzLjU5IiwiNzA3NDY5MTg1IiwiNzIxNTE5MzEyIiwiLTUuMDE5MzY3NTNFKzE1IiwiLTEwMS43MDY0NDYiLCItMTAxIiwiNDk2MjgyNS40MSIsIjEuNjUwMTg1MTZFLTYyMTk5OTA4Iik7CisgIG1hdGh0ZXN0KDkyLGRlZiwiLTUyOTg3NjgwLjJFKzI3OTUzMzUwMyIsIi00MjAxNDExNC44IiwiLTUuMjk4NzY4MDJFKzI3OTUzMzUxMCIsIi01LjI5ODc2ODAyRSsyNzk1MzM1MTAiLCIyLjIyNjIzMDQ4RSsyNzk1MzM1MTgiLCIxLjI2MTE4NzU5RSsyNzk1MzM1MDMiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoOTMsZGVmLCItODc5NS4wNTEzIiwiLTIyNTI5NC4zOTRFLTg4NDQxNDIzOCIsIi04Nzk1LjA1MTMwIiwiLTg3OTUuMDUxMzAiLCIxLjk4MTQ3NTc1RS04ODQ0MTQyMjkiLCIzLjkwMzgwMzg4RSs4ODQ0MTQyMzYiLCIiLCIiLCIxLjI5Mjc3NTlFLTgiKTsKKyAgbWF0aHRlc3QoOTQsZGVmLCI4MzI4MC4xMzk0IiwiMTYxNTY2MzU0LiIsIjE2MTY0OTYzNCIsIi0xNjE0ODMwNzQiLCIxLjM0NTUyNjg1RSsxMyIsIjAuMDAwNTE1NDU0NzE4IiwiMCIsIjgzMjgwLjEzOTQiLCI1LjMwNzc0ODA5RSs3OTQ5OTM5NDAiKTsKKyAgbWF0aHRlc3QoOTUsZGVmLCIxMTIuODc3ODk3IiwiLTkuOTY0ODE2NjYiLCIxMDIuOTEzMDgwIiwiMTIyLjg0MjcxNCIsIi0xMTI0LjgwNzU1IiwiLTExLjMyNzY0NDEiLCItMTEiLCIzLjI2NDkxMzc0IiwiMi45Nzc5MDU0NUUtMjEiKTsKKyAgbWF0aHRlc3QoOTYsZGVmLCItNTcyNTQyLjEyMUUrODQ3NDg3Mzk3IiwiNDMzLjg0MzQyMCIsIi01LjcyNTQyMTIxRSs4NDc0ODc0MDIiLCItNS43MjU0MjEyMUUrODQ3NDg3NDAyIiwiLTIuNDgzOTM2MzJFKzg0NzQ4NzQwNSIsIi0xLjMxOTY5NzZFKzg0NzQ4NzQwMCIsIiIsIiIsIiIpOworICBtYXRodGVzdCg5NyxkZWYsIjQ3MDk2NDkuODkiLCIyMDk0OTI2Ni40IiwiMjU2NTg5MTYuMyIsIi0xNjIzOTYxNi41IiwiOS44NjYzNzEwMkUrMTMiLCIwLjIyNDgxMjE2MyIsIjAiLCI0NzA5NjQ5Ljg5IiwiNC44NTI5MzY0NEUrMTM5Nzk0MjEzIik7CisgIG1hdGh0ZXN0KDk4LGRlZiwiLTk0NzUuMTkzMjIiLCItMzA4ODUuMjQ3NUUrNTg0NDg3MzQxIiwiLTMuMDg4NTI0NzVFKzU4NDQ4NzM0NSIsIjMuMDg4NTI0NzVFKzU4NDQ4NzM0NSIsIjIuOTI2NDM2ODhFKzU4NDQ4NzM0OSIsIjMuMDY3ODcwMjZFLTU4NDQ4NzM0MiIsIjAiLCItOTQ3NS4xOTMyMiIsIi0xLjE3NTUzNTU3RS0xMiIpOworICBtYXRodGVzdCg5OSxkZWYsIi0yMTMyMzA0NDcuIiwiODY0LjgxNTgyMkUrMTI3NzgzMDQ2IiwiOC42NDgxNTgyMkUrMTI3NzgzMDQ4IiwiLTguNjQ4MTU4MjJFKzEyNzc4MzA0OCIsIi0xLjg0NDA1MDY0RSsxMjc3ODMwNTciLCItMi40NjU2MTY4NkUtMTI3NzgzMDQxIiwiMCIsIi0yMTMyMzA0NDciLCItOS4xMTI2MTM2MUUrNzQiKTsKKyAgbWF0aHRlc3QoMTAwLGRlZiwiLTg5LjExNjg3ODZFKzQwMzM3NTg3MyIsIjY0NjQuMDU3NDQiLCItOC45MTE2ODc4NkUrNDAzMzc1ODc0IiwiLTguOTExNjg3ODZFKzQwMzM3NTg3NCIsIi01Ljc2MDU2NjIyRSs0MDMzNzU4NzgiLCItMS4zNzg2NTIzM0UrNDAzMzc1ODcxIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDEwMSxkZWYsIjYxNzc0LjQ5NTgiLCItMTQwMDAuNzcwNiIsIjQ3NzczLjcyNTIiLCI3NTc3NS4yNjY0IiwiLTg2NDg5MDU0NSIsIi00LjQxMjIyMTEyIiwiLTQiLCI1NzcxLjQxMzQiLCI3LjU5MDMwNDA3RS02NzA3NyIpOworICBtYXRodGVzdCgxMDIsZGVmLCIxLjYwNzMxNDE0IiwiNy4wNDMzMDI5M0UtNDI3MDMzNDE5IiwiMS42MDczMTQxNCIsIjEuNjA3MzE0MTQiLCIxLjEzMjA4MDA0RS00MjcwMzM0MTgiLCIyLjI4MjA0NjAyRSs0MjcwMzM0MTgiLCIiLCIiLCIyNy43MTQzOTIxIik7CisgIG1hdGh0ZXN0KDEwMyxkZWYsIjc5NTUwMTIuNTEiLCItMjMwMTE3NjYyLiIsIi0yMjIxNjI2NTAiLCIyMzgwNzI2NzUiLCItMS44MzA1ODg4OEUrMTUiLCItMC4wMzQ1NjkzMjYxIiwiMCIsIjc5NTUwMTIuNTEiLCIiKTsKKyAgbWF0aHRlc3QoMTA0LGRlZiwiNDA4NjY2MS4wOCIsIjEuNzc2MjE5OTQiLCI0MDg2NjYyLjg2IiwiNDA4NjY1OS4zMCIsIjcyNTg4MDguOTAiLCIyMzAwNzYyLjk4IiwiMjMwMDc2MiIsIjEuNzM4NDA1NzIiLCIxLjY3MDA3OTg4RSsxMyIpOworICBtYXRodGVzdCgxMDUsZGVmLCItNjEwLjA3NjkzMSIsIi0yMDcuNjU4MzA2IiwiLTgxNy43MzUyMzciLCItNDAyLjQxODYyNSIsIjEyNjY4Ny41NDIiLCIyLjkzNzg4ODQxIiwiMiIsIi0xOTQuNzYwMzE5IiwiNC4zNjUxODM3N0UtNTgwIik7CisgIG1hdGh0ZXN0KDEwNixkZWYsIi05OC42MzUzNjk3IiwiLTk5MjUzLjM4OTlFLTcxNjMwOTY1MyIsIi05OC42MzUzNjk3IiwiLTk4LjYzNTM2OTciLCI5Ljc4OTg5NDgxRS03MTYzMDk2NDciLCI5LjkzNzczMzA5RSs3MTYzMDk2NDkiLCIiLCIiLCIxLjE0NzI5MDA3RS0yMCIpOworICBtYXRodGVzdCgxMDcsZGVmLCItOTU5OTIzNzMwIiwiNDA5LjEyNTU0MkUtOTAwMjk1NTI4IiwiLTk1OTkyMzczMCIsIi05NTk5MjM3MzAiLCItMy45MjcyOTMxNkUtOTAwMjk1NTE3IiwiLTIuMzQ2MjgxNkUrOTAwMjk1NTM0IiwiIiwiIiwiOC40OTA3NjY3N0UrMzUiKTsKKyAgbWF0aHRlc3QoMTA4LGRlZiwiMzc5OTY1MTMzIiwiLTguMTU4Njk2NTciLCIzNzk5NjUxMjUiLCIzNzk5NjUxNDEiLCItMy4xMDAwMjAyM0UrOSIsIi00NjU3MTc5My42IiwiLTQ2NTcxNzkzIiwiNS4xOTIxNDk5OSIsIjIuMzAxNzA2OTdFLTY5Iik7CisgIG1hdGh0ZXN0KDEwOSxkZWYsIjgzMy42NDY3OTciLCIxMzg5NDk5LjQ2RS00NDM0MDcyNTEiLCI4MzMuNjQ2Nzk3IiwiODMzLjY0Njc5NyIsIjEuMTU4MzUxNzdFLTQ0MzQwNzI0MiIsIjUuOTk5NjE5NDRFKzQ0MzQwNzI0NyIsIiIsIiIsIjgzMy42NDY3OTciKTsKKyAgbWF0aHRlc3QoMTEwLGRlZiwiMjMxNDkzMy40RS02NDY0ODkxOTQiLCItNzQwMTUzOC4xNyIsIi03NDAxNTM4LjE3IiwiNzQwMTUzOC4xNyIsIi0xLjcxMzQwNjc5RS02NDY0ODkxODEiLCItMy4xMjc2MzgyNkUtNjQ2NDg5MTk1IiwiMCIsIjIuMzE0OTMzNEUtNjQ2NDg5MTg4IiwiIik7CisgIG1hdGh0ZXN0KDExMSxkZWYsIjgwODUyNTM0NyIsIi01OTU5Ljc0NjY3RSs1ODIzMjE2OCIsIi01Ljk1OTc0NjY3RSs1ODIzMjE3MSIsIjUuOTU5NzQ2NjdFKzU4MjMyMTcxIiwiLTQuODE4NjA2MjRFKzU4MjMyMTgwIiwiLTEuMzU2NjQzODJFLTU4MjMyMTYzIiwiMCIsIjgwODUyNTM0NyIsIjMuNTc5NjMwMkUtNTQiKTsKKyAgbWF0aHRlc3QoMTEyLGRlZiwiLTE3MjIwNDkwLjZFKzcyNjQyODcwNCIsIjE5Ljk4NTU2ODgiLCItMS43MjIwNDkwNkUrNzI2NDI4NzExIiwiLTEuNzIyMDQ5MDZFKzcyNjQyODcxMSIsIi0zLjQ0MTYxMzAwRSs3MjY0Mjg3MTIiLCItOC42MTY0NjI1OUUrNzI2NDI4NzA5IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDExMyxkZWYsIjU5MDE1Ljk3MDUiLCItNzIwNzA0MDUuNEUrMzIyOTU3Mjc5IiwiLTcuMjA3MDQwNTRFKzMyMjk1NzI4NiIsIjcuMjA3MDQwNTRFKzMyMjk1NzI4NiIsIi00LjI1MzMwNDkyRSszMjI5NTcyOTEiLCItOC4xODg2NTUyN0UtMzIyOTU3MjgzIiwiMCIsIjU5MDE1Ljk3MDUiLCI0LjAxMDYzNDg4RS0zNCIpOworICBtYXRodGVzdCgxMTQsZGVmLCIxNjQxMTQ3MEUrNTc4MTkyMDA4IiwiNDk3NDcwLjAwNUUtMzc3NDczNjIxIiwiMS42NDExNDcwMEUrNTc4MTkyMDE1IiwiMS42NDExNDcwMEUrNTc4MTkyMDE1IiwiOC4xNjQyMTQwNkUrMjAwNzE4Mzk5IiwiMy4yOTg5ODY4NEUrOTU1NjY1NjMwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDExNSxkZWYsIi0xMDcuMzUzNTQ0RSs2MDk2ODk4MDgiLCItNjU5LjUwMTM2RS00NTY3MTE3NDMiLCItMS4wNzM1MzU0NEUrNjA5Njg5ODEwIiwiLTEuMDczNTM1NDRFKzYwOTY4OTgxMCIsIjcuMDc5OTgwODNFKzE1Mjk3ODA2OSIsIiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxMTYsZGVmLCI3ODYuMTM0MTYzIiwiLTUzLjAyOTIyNzVFLTY2NDQxOTc2OCIsIjc4Ni4xMzQxNjMiLCI3ODYuMTM0MTYzIiwiLTQuMTY4ODA4NzRFLTY2NDQxOTc2NCIsIi0xLjQ4MjQ1NDQ5RSs2NjQ0MTk3NjkiLCIiLCIiLCIzLjMzMDU1NTMyRS0xNSIpOworICBtYXRodGVzdCgxMTcsZGVmLCIyMy41NDE0NzE0IiwiNTAwMDc4Ni45MSIsIjUwMDA4MTAuNDUiLCItNTAwMDc2My4zNyIsIjExNzcyNTg4MiIsIjAuMDAwMDA0NzA3NTUzNCIsIjAiLCIyMy41NDE0NzE0IiwiNC40ODk1NjE4RSs2ODYwMjQ3Iik7CisgIG1hdGh0ZXN0KDExOCxkZWYsIi02OTc3NS42MTEzIiwiNTYxMjkyMTIwLiIsIjU2MTIyMjM0NCIsIi01NjEzNjE4OTYiLCItMy45MTY0NTAwOEUrMTMiLCItMC4wMDAxMjQzMTI0NzMiLCIwIiwiLTY5Nzc1LjYxMTMiLCIiKTsKKyAgbWF0aHRlc3QoMTE5LGRlZiwiOTE5MDQzLjg3MSIsIi03MTYwNjYxMy43IiwiLTcwNjg3NTY5LjgiLCI3MjUyNTY1Ny42IiwiLTYuNTgwOTYxOTRFKzEzIiwiLTAuMDEyODM0NjIyNyIsIjAiLCI5MTkwNDMuODcxIiwiMy4wNTg2MjQyOUUtNDI3MDE0MzE3Iik7CisgIG1hdGh0ZXN0KDEyMCxkZWYsIi0yNzY2Ny4xOTE1IiwiLTI5MzQ1NS4xMDdFLTc4OTE4MTkyNCIsIi0yNzY2Ny4xOTE1IiwiLTI3NjY3LjE5MTUiLCI4LjExOTA3ODY0RS03ODkxODE5MTUiLCI5LjQyODA4MzE1RSs3ODkxODE5MjIiLCIiLCIiLCItNC43MjE3NjkzOEUtMTQiKTsKKyAgbWF0aHRlc3QoMTIxLGRlZiwiLTkwODYwMzYyNS4iLCItOTgyLjQwOTI3M0UrNDQ5NDQxMTM0IiwiLTkuODI0MDkyNzNFKzQ0OTQ0MTEzNiIsIjkuODI0MDkyNzNFKzQ0OTQ0MTEzNiIsIjguOTI2MjA2MjdFKzQ0OTQ0MTE0NSIsIjkuMjQ4NzI4MUUtNDQ5NDQxMTI5IiwiMCIsIi05MDg2MDM2MjUiLCIyLjYwNzY4NjMyRS05MCIpOworICBtYXRodGVzdCgxMjIsZGVmLCI4NDcuMTEzMzUxIiwiNS43MTUxMTI2OCIsIjg1Mi44Mjg0NjQiLCI4NDEuMzk4MjM4IiwiNDg0MS4zNDgyNSIsIjE0OC4yMjMzODYiLCIxNDgiLCIxLjI3NjY3NDM2IiwiMy42OTUyOTUzOEUrMTciKTsKKyAgbWF0aHRlc3QoMTIzLGRlZiwiLTk5MjE0MDQ3NSIsIjMuODI5MTgyMTgiLCItOTkyMTQwNDcxIiwiLTk5MjE0MDQ3OSIsIi0zLjc5OTA4NjYzRSs5IiwiLTI1OTA5OTgzNiIsIi0yNTkwOTk4MzYiLCItMC4xNDc4Nzc1MiIsIjkuNjg5MzA1OTVFKzM1Iik7CisgIG1hdGh0ZXN0KDEyNCxkZWYsIi0xMjYwNjQzNy41IiwiMjY4MTIzMTQ1RSszNjI3OTg4NTgiLCIyLjY4MTIzMTQ1RSszNjI3OTg4NjYiLCItMi42ODEyMzE0NUUrMzYyNzk4ODY2IiwiLTMuMzgwMDc3NjdFKzM2Mjc5ODg3MyIsIi00LjcwMTczNDE2RS0zNjI3OTg4NjAiLCIwIiwiLTEyNjA2NDM3LjUiLCItMi4wMDM0NDM2MkUrMjEiKTsKKyAgbWF0aHRlc3QoMTI1LGRlZiwiMzc5OTQ3MC42NCIsIi0yNjQuNzAzOTkyIiwiMzc5OTIwNS45NCIsIjM3OTk3MzUuMzQiLCItMS4wMDU3MzUwNUUrOSIsIi0xNDM1My42NTgzIiwiLTE0MzUzIiwiMTc0LjI0MjgyNCIsIjIuMzYyNTQ2NkUtMTc0NCIpOworICBtYXRodGVzdCgxMjYsZGVmLCItOC4xMTA3MDI0NyIsIi05MzEyODQwNTYuRS02NTQyODg5NzQiLCItOC4xMTA3MDI0NyIsIi04LjExMDcwMjQ3IiwiNy41NTMzNjc4OUUtNjU0Mjg4OTY1IiwiOC43MDkxNjA2N0UrNjU0Mjg4OTY1IiwiIiwiIiwiLTYuNTgzNzU2NjJFLTkiKTsKKyAgbWF0aHRlc3QoMTI3LGRlZiwiLTI0MjY2MDE3Ny4iLCItNi4wOTgzMjcxNUUtOTQzNzQyNDE1IiwiLTI0MjY2MDE3NyIsIi0yNDI2NjAxNzciLCIxLjQ3OTgyMTE1RS05NDM3NDI0MDYiLCIzLjk3OTEyNjkyRSs5NDM3NDI0MjIiLCIiLCIiLCI0Ljg5Nzg4OTAxRS01MSIpOworICBtYXRodGVzdCgxMjgsZGVmLCI3Ni4xNDYzODAzIiwiLTQ1LjY3NTgwMDZFLTYzNjkwNzk5NiIsIjc2LjE0NjM4MDMiLCI3Ni4xNDYzODAzIiwiLTMuNDc4MDQ2ODhFLTYzNjkwNzk5MyIsIi0xLjY2NzEwNTU0RSs2MzY5MDc5OTYiLCIiLCIiLCIzLjkwNjE5Mjg3RS0xMCIpOworICBtYXRodGVzdCgxMjksZGVmLCI3NjExODUuODYyIiwiLTcwODc4NDcwLjlFKzIyMTIxNDcxMiIsIi03LjA4Nzg0NzA5RSsyMjEyMTQ3MTkiLCI3LjA4Nzg0NzA5RSsyMjEyMTQ3MTkiLCItNS4zOTUxNjkwMEUrMjIxMjE0NzI1IiwiLTEuMDczOTMwOTlFLTIyMTIxNDcxNCIsIjAiLCI3NjExODUuODYyIiwiNi43NTQwNjE0NEUtNDIiKTsKKyAgbWF0aHRlc3QoMTMwLGRlZiwiNjIwMzYwNi41NCIsIi0xOTUuOTI3NDhFLTgzMzUxMjA2MSIsIjYyMDM2MDYuNTQiLCI2MjAzNjA2LjU0IiwiLTEuMjE1NDU3MDBFLTgzMzUxMjA1MiIsIi0zLjE2NjI3NjlFKzgzMzUxMjA2NSIsIiIsIiIsIjIuNTk4NDMyOTJFLTE0Iik7CisgIG1hdGh0ZXN0KDEzMSxkZWYsIi0xNjMyNzQ4MzcuIiwiOTUuMDQ0ODU1MEUrODg3ODc2NTMzIiwiOS41MDQ0ODU1MEUrODg3ODc2NTM0IiwiLTkuNTA0NDg1NTBFKzg4Nzg3NjUzNCIsIi0xLjU1MTg0MzMyRSs4ODc4NzY1NDMiLCItMS43MTc4NzEzOUUtODg3ODc2NTI3IiwiMCIsIi0xNjMyNzQ4MzciLCIxLjM0NjQ1NzMxRSs4MiIpOworICBtYXRodGVzdCgxMzIsZGVmLCIyLjM4NjM4MTkwIiwiLTgwNzk4NjE3OS4iLCItODA3OTg2MTc3IiwiODA3OTg2MTgxIiwiLTEuOTI4MTYzNTlFKzkiLCItMi45NTM0OTM0N0UtOSIsIjAiLCIyLjM4NjM4MTkwIiwiMS4xOTAyOTMwNUUtMzA1MjA4NjU2Iik7CisgIG1hdGh0ZXN0KDEzMyxkZWYsIi0xMDkwMjIyOTZFLTgxMTk4MTE1OCIsIjcuMTk2ODU2ODAiLCI3LjE5Njg1NjgwIiwiLTcuMTk2ODU2ODAiLCItNy44NDYxNzg1MkUtODExOTgxMTUwIiwiLTEuNTE0ODU5ODhFLTgxMTk4MTE1MSIsIjAiLCItMS4wOTAyMjI5NkUtODExOTgxMTUwIiwiIik7CisgIG1hdGh0ZXN0KDEzNCxkZWYsIi01NTkyNTAuNzgwRS0yNzM3MTA0MjEiLCItMzkzNzgwODExLiIsIi0zOTM3ODA4MTEiLCIzOTM3ODA4MTEiLCIyLjIwMjIyMjI2RS0yNzM3MTA0MDciLCIxLjQyMDIwODMxRS0yNzM3MTA0MjQiLCIwIiwiLTUuNTkyNTA3ODBFLTI3MzcxMDQxNiIsIiIpOworICBtYXRodGVzdCgxMzUsZGVmLCItODgwMjEuOTk2NkUrNTU1MzM0NjQyIiwiNzU5OTY4Ni42NEUrODE4ODg0MDUzIiwiNy41OTk2ODY2NEUrODE4ODg0MDU5IiwiLTcuNTk5Njg2NjRFKzgxODg4NDA1OSIsIiIsIi0xLjE1ODIzMTkyRS0yNjM1NDk0MTMiLCIwIiwiLTguODAyMTk5NjZFKzU1NTMzNDY0NiIsIiIpOworICBtYXRodGVzdCgxMzYsZGVmLCIxOTQuMzE3NjQ4RS0xOTc0NTAwMDkiLCItOTMwLjk3OTA2NCIsIi05MzAuOTc5MDY0IiwiOTMwLjk3OTA2NCIsIi0xLjgwOTA1NjYyRS0xOTc0NTAwMDQiLCItMi4wODcyMzk3MkUtMTk3NDUwMDEwIiwiMCIsIjEuOTQzMTc2NDhFLTE5NzQ1MDAwNyIsIiIpOworICBtYXRodGVzdCgxMzcsZGVmLCI5NDk1NDc5LjY1IiwiNzQwNTY5Ny45NiIsIjE2OTAxMTc3LjYiLCIyMDg5NzgxLjY5IiwiNy4wMzIwNjU0M0UrMTMiLCIxLjI4MjE4NTY1IiwiMSIsIjIwODk3ODEuNjkiLCIxLjAxMzU0NDZFKzUxNjczMzgzIik7CisgIG1hdGh0ZXN0KDEzOCxkZWYsIi0xNjU2LjI4OTI1IiwiLTE2MzA1MDUxMUUtNjgyODgyMzgwIiwiLTE2NTYuMjg5MjUiLCItMTY1Ni4yODkyNSIsIjIuNzAwNTg4MDlFLTY4Mjg4MjM2OSIsIjEuMDE1ODEzNTlFKzY4Mjg4MjM3NSIsIiIsIiIsIjMuNjQ1MjUyNjVFLTciKTsKKyAgbWF0aHRlc3QoMTM5LGRlZiwiOTU1ODEuMzc4NEUrNjQyNjIxNDkiLCItOTkuMjg3OTM2NSIsIjkuNTU4MTM3ODRFKzY0MjYyMTUzIiwiOS41NTgxMzc4NEUrNjQyNjIxNTMiLCItOS40OTAwNzc4M0UrNjQyNjIxNTUiLCItOS42MjY2ODU5NkUrNjQyNjIxNTEiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTQwLGRlZiwiNjQzNzYxLjQ1MiIsIjMuNzM0NDY5MzkiLCI2NDM3NjUuMTg2IiwiNjQzNzU3LjcxOCIsIjI0MDQxMDcuNDQiLCIxNzIzODMuNjQ3IiwiMTcyMzgzIiwiMi40MTUxNDM2MyIsIjEuNzE3NTEyMzZFKzIzIik7CisgIG1hdGh0ZXN0KDE0MSxkZWYsIjc5NjAuNDk4NjZFLTEyOTgyNzQyMyIsIjMyMjAuMjI4NTAiLCIzMjIwLjIyODUwIiwiLTMyMjAuMjI4NTAiLCIyLjU2MzQ2MjQ3RS0xMjk4Mjc0MTYiLCIyLjQ3MjAyOTEzRS0xMjk4Mjc0MjMiLCIwIiwiNy45NjA0OTg2NkUtMTI5ODI3NDIwIiwiIik7CisgIG1hdGh0ZXN0KDE0MixkZWYsIi02MzU2LjY0MTEyRS03MDcyMDM4MTgiLCIxODA1MDU0Ljk4IiwiMTgwNTA1NC45OCIsIi0xODA1MDU0Ljk4IiwiLTEuMTQ3NDA4NjdFLTcwNzIwMzgwOCIsIi0zLjUyMTU3NzU2RS03MDcyMDM4MjEiLCIwIiwiLTYuMzU2NjQxMTJFLTcwNzIwMzgxNSIsIiIpOworICBtYXRodGVzdCgxNDMsZGVmLCIyLjM5MDQwNDIiLCI4NDc2LjUyMDA2IiwiODQ3OC45MTA0NiIsIi04NDc0LjEyOTY2IiwiMjAyNjIuMzA5MiIsIjAuMDAwMjgyMDAzMDEzIiwiMCIsIjIuMzkwNDA0MiIsIjIuMDAyNTE3NTJFKzMyMDgiKTsKKyAgbWF0aHRlc3QoMTQ0LGRlZiwiLTcxMzI5OC42NTgiLCItOTU3Ljc4MjcyOSIsIi03MTQyNTYuNDQxIiwiLTcxMjM0MC44NzUiLCI2ODMxODUxMzUiLCI3NDQuNzM5NTI4IiwiNzQ0IiwiLTcwOC4zMDc2MjQiLCIzLjY4MTIyMzIxRS01NjA4Iik7CisgIG1hdGh0ZXN0KDE0NSxkZWYsIjYwNzc3OTIzMy5FLTgyMDQ5NzM2NSIsIi0yMC4xMTg4NzQyRS04NTczMTgzMjMiLCI2LjA3Nzc5MjMzRS04MjA0OTczNTciLCI2LjA3Nzc5MjMzRS04MjA0OTczNTciLCIiLCItMy4wMjA5NDA1N0UrMzY4MjA5NjUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTQ2LGRlZiwiLTIwNTg4ODI1MSIsIi05MDguNzkyOTIyRSsyNTA2ODA2MTMiLCItOS4wODc5MjkyMkUrMjUwNjgwNjE1IiwiOS4wODc5MjkyMkUrMjUwNjgwNjE1IiwiMS44NzEwOTc4NUUrMjUwNjgwNjI0IiwiMi4yNjU1MTMzNkUtMjUwNjgwNjA4IiwiMCIsIi0yMDU4ODgyNTEiLCItMS41MDQyMzU4RS03NSIpOworICBtYXRodGVzdCgxNDcsZGVmLCI1MTU0MjM5OS4xIiwiLTIzMjEyLjI0MTQiLCI1MTUxOTE4Ni45IiwiNTE1NjU2MTEuMyIsIi0xLjE5NjQxNDYxRSsxMiIsIi0yMjIwLjQ4MzUiLCItMjIyMCIsIjExMjIzLjE5MjAiLCIxLjcxNjQxMzQ4RS0xNzkwMTUiKTsKKyAgbWF0aHRlc3QoMTQ4LGRlZiwiNC40NDI4NzIzMCIsIjE1ODkyMzAyMyIsIjE1ODkyMzAyNyIsIi0xNTg5MjMwMTkiLCI3MDYwNzQ2OTciLCIyLjc5NTYxMjc1RS04IiwiMCIsIjQuNDQyODcyMzAiLCI3LjEyNTczNDE2RSsxMDI5Mjg2OTMiKTsKKyAgbWF0aHRlc3QoMTQ5LGRlZiwiLTc5MTIzNjgyLjYiLCItMy44NTcxNzcwIiwiLTc5MTIzNjg2LjUiLCItNzkxMjM2NzguOCIsIjMwNTE5NDA0OSIsIjIwNTEzMzY1LjgiLCIyMDUxMzM2NSIsIi0yLjkyOTM5NTAiLCIyLjU1MTM3MzQ1RS0zMiIpOworICBtYXRodGVzdCgxNTAsZGVmLCItODAuMzMyNDM0N0UtNTY5NzE1MDMwIiwiODgzMTQyLjM1MSIsIjg4MzE0Mi4zNTEiLCItODgzMTQyLjM1MSIsIi03LjA5NDQ5NzUyRS01Njk3MTUwMjMiLCItOS4wOTYyMDQ1NUUtNTY5NzE1MDM1IiwiMCIsIi04LjAzMzI0MzQ3RS01Njk3MTUwMjkiLCIiKTsKKyAgbWF0aHRlc3QoMTUxLGRlZiwiMTM2MzcuNDgzIiwiLTUyNzk4LjU2MzEiLCItMzkxNjEuMDgwMSIsIjY2NDM2LjA0NjEiLCItNzIwMDM5NTA3IiwiLTAuMjU4MjkyNjkyIiwiMCIsIjEzNjM3LjQ4MyIsIjEuNDcxNjM3OTFFLTIxODMxMCIpOworICBtYXRodGVzdCgxNTIsZGVmLCI2LjQyOTM0ODQzRS0yNzY0NzY0NTgiLCI4NDA1NzQ0MC4wRS0zODgwMzk3ODIiLCI2LjQyOTM0ODQzRS0yNzY0NzY0NTgiLCI2LjQyOTM0ODQzRS0yNzY0NzY0NTgiLCI1LjQwNDM0NTcwRS02NjQ1MTYyMzIiLCI3LjY0ODc1NTkzRSsxMTE1NjMzMTYiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTUzLGRlZiwiLTUuNjQxMzMwODciLCItMTc0MDEyOTcuIiwiLTE3NDAxMzAyLjYiLCIxNzQwMTI5MS40IiwiOTgxNjY0NzMuOSIsIjMuMjQxOTAyNTNFLTciLCIwIiwiLTUuNjQxMzMwODciLCItMS4yNTkwODkxNkUtMTMwNzUwMTQiKTsKKyAgbWF0aHRlc3QoMTU0LGRlZiwiOTU0NjkuNzA1N0UrODY1NzMzODI0IiwiMTk4LjgyOTc0OSIsIjkuNTQ2OTcwNTdFKzg2NTczMzgyOCIsIjkuNTQ2OTcwNTdFKzg2NTczMzgyOCIsIjEuODk4MjIxNzZFKzg2NTczMzgzMSIsIjQuODAxNTgwNTZFKzg2NTczMzgyNiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxNTUsZGVmLCItNDE2NDY2LjIwOSIsIi05MzAxNTM0MjciLCItOTMwNTY5ODkzIiwiOTI5NzM2OTYxIiwiMy44NzM3NzQ3MkUrMTQiLCIwLjAwMDQ0NzczOTI2MiIsIjAiLCItNDE2NDY2LjIwOSIsIiIpOworICBtYXRodGVzdCgxNTYsZGVmLCItMTU0MTczMy44NSIsIi0xLjk5MjA4NzA4IiwiLTE1NDE3MzUuODQiLCItMTU0MTczMS44NiIsIjMwNzEyNjguMDgiLCI3NzM5MjguOTQ0IiwiNzczOTI4IiwiLTEuODgwMzQ5NzYiLCI0LjIwNzA4NDAxRS0xMyIpOworICBtYXRodGVzdCgxNTcsZGVmLCItMzkxNTI2OTEuOCIsIi02NDUxMzE3NDguIiwiLTY4NDI4NDQ0MCIsIjYwNTk3OTA1NiIsIjIuNTI1ODY0NDVFKzE2IiwiMC4wNjA2ODk0NTEzIiwiMCIsIi0zOTE1MjY5MS44IiwiIik7CisgIG1hdGh0ZXN0KDE1OCxkZWYsIjExMy45Mzk5NzkiLCItNTgyODI1NTAuNCIsIi01ODI4MjQzNi41IiwiNTgyODI2NjQuMyIsIi02LjY0MDcxMjU3RSs5IiwiLTAuMDAwMDAxOTU0OTU4NyIsIjAiLCIxMTMuOTM5OTc5IiwiMi4xMDY1NTdFLTExOTg2ODMzMCIpOworICBtYXRodGVzdCgxNTksZGVmLCItMzI0OTcxLjczNiIsIi05NTE3LjE1MTU0IiwiLTMzNDQ4OC44ODgiLCItMzE1NDU0LjU4NSIsIjMuMDkyODA1MjZFKzkiLCIzNC4xNDU5MDMzIiwiMzQiLCItMTM4OC41ODM2NCIsIi01LjgyNzk1MjYzRS01MjQ1NyIpOworICBtYXRodGVzdCgxNjAsZGVmLCItNzYuOTQzNjc0NCIsIi05NTQ4MTIyLjc1RS0yNzM1OTk3MjgiLCItNzYuOTQzNjc0NCIsIi03Ni45NDM2NzQ0IiwiNy4zNDY2NzY0OEUtMjczNTk5NzIwIiwiOC4wNTg1MTMzMkUrMjczNTk5NzIyIiwiIiwiIiwiMS4zNzQ4OTg5NUUtMTkiKTsKKyAgbWF0aHRlc3QoMTYxLGRlZiwiLTQzMDM5My4yODIiLCItNzAuMjU1MTUwNSIsIi00MzA0NjMuNTM3IiwiLTQzMDMyMy4wMjciLCIzMDIzNzM0NC44IiwiNjEyNi4xNDU2MSIsIjYxMjYiLCItMTAuMjMwMDM3MCIsIjQuMjYwMDY0MDlFLTM5NSIpOworICBtYXRodGVzdCgxNjIsZGVmLCItMzMwODA1MS45MCIsIi0zNDk0MzM3OTkuRSszOTc4MTMxODgiLCItMy40OTQzMzc5OUUrMzk3ODEzMTk2IiwiMy40OTQzMzc5OUUrMzk3ODEzMTk2IiwiMS4xNTU5NDUxNEUrMzk3ODEzMjAzIiwiOS40NjY4OTE2MUUtMzk3ODEzMTkxIiwiMCIsIi0zMzA4MDUxLjkwIiwiLTIuNzYyMzc3NjhFLTIwIik7CisgIG1hdGh0ZXN0KDE2MyxkZWYsIjIzLjE1NDMyMTJFLTY1NTgyMjcxMiIsIjU4NDguMjA4NTMiLCI1ODQ4LjIwODUzIiwiLTU4NDguMjA4NTMiLCIxLjM1NDExMjk5RS02NTU4MjI3MDciLCIzLjk1OTIxNjA3RS02NTU4MjI3MTUiLCIwIiwiMi4zMTU0MzIxMkUtNjU1ODIyNzExIiwiIik7CisgIG1hdGh0ZXN0KDE2NCxkZWYsIi0xNzQuMjYxMzA4RS04MjkwMjA3NyIsIi0yMDAwOTYyMDQuIiwiLTIwMDA5NjIwNCIsIjIwMDA5NjIwNCIsIjMuNDg2OTAyNjJFLTgyOTAyMDY3IiwiOC43MDg4NzYyNkUtODI5MDIwODQiLCIwIiwiLTEuNzQyNjEzMDhFLTgyOTAyMDc1IiwiIik7CisgIG1hdGh0ZXN0KDE2NSxkZWYsIi01MDY2OTEwNS4yIiwiOTEwNTc4OS4wMUUrNjA5ODg5NzAwIiwiOS4xMDU3ODkwMUUrNjA5ODg5NzA2IiwiLTkuMTA1Nzg5MDFFKzYwOTg4OTcwNiIsIi00LjYxMzgyMTgxRSs2MDk4ODk3MTQiLCItNS41NjQ0OTM2NkUtNjA5ODg5NzAwIiwiMCIsIi01MDY2OTEwNS4yIiwiLTIuMjAxMzUwMDhFKzY5Iik7CisgIG1hdGh0ZXN0KDE2NixkZWYsIjQyNDc2ODg1Ni4iLCItOTcxLjcxNzU3IiwiNDI0NzY3ODg0IiwiNDI0NzY5ODI4IiwiLTQuMTI3NTUzNjFFKzExIiwiLTQzNzEzMi4wMTIiLCItNDM3MTMyIiwiMTEuMTkwNzYiLCIyLjcyNjUxNDczRS04Mzg3Iik7CisgIG1hdGh0ZXN0KDE2NyxkZWYsIjcxODEuMjc2NyIsIjk5OTExNy45MTgiLCIxMDA2Mjk5LjE5IiwiLTk5MTkzNi42NDEiLCI3LjE3NDk0MjIzRSs5IiwiMC4wMDcxODc2MTY3NyIsIjAiLCI3MTgxLjI3NjciLCIzLjA5NjU1MTI0RSszODUyODAwIik7CisgIG1hdGh0ZXN0KDE2OCxkZWYsIjgwOTY0MTcuMDdFLTQzMzY5NDUyOCIsIi02OC40ODYzMzYzIiwiLTY4LjQ4NjMzNjMiLCI2OC40ODYzMzYzIiwiLTUuNTQ0OTM5NDJFLTQzMzY5NDUyMCIsIi0xLjE4MjE5NDUxRS00MzM2OTQ1MjMiLCIwIiwiOC4wOTY0MTcwN0UtNDMzNjk0NTIyIiwiIik7CisgIG1hdGh0ZXN0KDE2OSxkZWYsIjEyMzYyODcuNSIsIi03MTE5Ljk3Mjk5RS0xNzYyMDA0OTgiLCIxMjM2Mjg3LjUwIiwiMTIzNjI4Ny41MCIsIi04LjgwMjMzMzYxRS0xNzYyMDA0ODkiLCItMS43MzYzNjU0NEUrMTc2MjAwNTAwIiwiIiwiIiwiMi4yNjU0OTc4NEUtNDMiKTsKKyAgbWF0aHRlc3QoMTcwLGRlZiwiLTc1Mjk5NTgzM0UtNjU0NDAxMDY3IiwiLTE1LjI3MzY5MzBFKzgwMzkzOTk4MyIsIi0xLjUyNzM2OTMwRSs4MDM5Mzk5ODQiLCIxLjUyNzM2OTMwRSs4MDM5Mzk5ODQiLCIxLjE1MDEwMjcyRSsxNDk1Mzg5MjYiLCIiLCIwIiwiLTcuNTI5OTU4MzNFLTY1NDQwMTA1OSIsIiIpOworICBtYXRodGVzdCgxNzEsZGVmLCI3MDI5OTIuNDU5IiwiLTMxMi42ODk0NzQiLCI3MDI2NzkuNzcwIiwiNzAzMzA1LjE0OCIsIi0yMTk4MTgzNDIiLCItMjI0OC4yMTI3NCIsIi0yMjQ4IiwiNjYuNTIxNDQ4IiwiOC4wMjQ5MzMyMkUtMTgzMSIpOworICBtYXRodGVzdCgxNzIsZGVmLCItNDQxNC4zODgwNSIsIi0xNzY4MC40NjMwRS01ODQzNjQ1MzYiLCItNDQxNC4zODgwNSIsIi00NDE0LjM4ODA1IiwiNy44MDQ4NDI0NkUtNTg0MzY0NTI5IiwiMi40OTY3NjA0NEUrNTg0MzY0NTM1IiwiIiwiIiwiNS4xMzE2NzMxMkUtOCIpOworICBtYXRodGVzdCgxNzMsZGVmLCI5LjQ2MzUwODA3IiwiNzgyNi42NTQyNCIsIjc4MzYuMTE3NzUiLCItNzgxNy4xOTA3MyIsIjc0MDY3LjYwNTYiLCIwLjAwMTIwOTEzODM5IiwiMCIsIjkuNDYzNTA4MDciLCIzLjYzMjcxNDk1RSs3NjM5Iik7CisgIG1hdGh0ZXN0KDE3NCxkZWYsIjIwNzgxNTMuNyIsIi0xNjkzNDYwNy4zRSsyMzM1OTQ0MzkiLCItMS42OTM0NjA3M0UrMjMzNTk0NDQ2IiwiMS42OTM0NjA3M0UrMjMzNTk0NDQ2IiwiLTMuNTE5MjcxNjhFKzIzMzU5NDQ1MiIsIi0xLjIyNzE2MzhFLTIzMzU5NDQ0MCIsIjAiLCIyMDc4MTUzLjciLCIyLjMxNTQ5OTM5RS0xMyIpOworICBtYXRodGVzdCgxNzUsZGVmLCItOTM1OS43NDYyOSIsIjcuMDc3NjE3ODhFKzI1MjQ1NzY5NiIsIjcuMDc3NjE3ODhFKzI1MjQ1NzY5NiIsIi03LjA3NzYxNzg4RSsyNTI0NTc2OTYiLCItNi42MjQ0NzA3N0UrMjUyNDU3NzAwIiwiLTEuMzIyNDQzMDFFLTI1MjQ1NzY5MyIsIjAiLCItOTM1OS43NDYyOSIsIi02LjI5Mjg2Njc3RSsyNyIpOworICBtYXRodGVzdCgxNzYsZGVmLCI2Ni4yMzE5Mjg0RSs3MzA0Njg0NzkiLCIyNS45MzkxNjg1RSsyMjExNDcwNDQiLCI2LjYyMzE5Mjg0RSs3MzA0Njg0ODAiLCI2LjYyMzE5Mjg0RSs3MzA0Njg0ODAiLCIxLjcxODAwMTE1RSs5NTE2MTU1MjYiLCIyLjU1MzM1NTg4RSs1MDkzMjE0MzUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTc3LGRlZiwiMzE3OTk3MDg4LkUtOTA5Njg3NDIiLCItOTc3NDI2LjQ2MSIsIi05Nzc0MjYuNDYxIiwiOTc3NDI2LjQ2MSIsIi0zLjEwODE4NzY4RS05MDk2ODcyOCIsIi0zLjI1MzQxMTlFLTkwOTY4NzQwIiwiMCIsIjMuMTc5OTcwODhFLTkwOTY4NzM0IiwiIik7CisgIG1hdGh0ZXN0KDE3OCxkZWYsIjIyNzQ3MzM4NiIsIi02NzU5LjYxMzkwIiwiMjI3NDY2NjI2IiwiMjI3NDgwMTQ2IiwiLTEuNTM3NjMyMjZFKzEyIiwiLTMzNjUxLjgzMTIiLCItMzM2NTEiLCI1NjE4LjY1MTEwIiwiMS40MDk5MjYyN0UtNTY0OTMiKTsKKyAgbWF0aHRlc3QoMTc5LGRlZiwiLTM5MjAxOS40NjIiLCItMjQ1NDU2LjUwMyIsIi02Mzc0NzUuOTY1IiwiLTE0NjU2Mi45NTkiLCI5LjYyMjM3MjYzRSsxMCIsIjEuNTk3MTAzNTkiLCIxIiwiLTE0NjU2Mi45NTkiLCItMy4wODY1NjUzM0UtMTM3MjkxNyIpOworICBtYXRodGVzdCgxODAsZGVmLCItMzYxOTU1Ni4yOEUrNTg3NjczNTgzIiwiLTMuNDUyMzY5NzIiLCItMy42MTk1NTYyOEUrNTg3NjczNTg5IiwiLTMuNjE5NTU2MjhFKzU4NzY3MzU4OSIsIjEuMjQ5NjA0NjVFKzU4NzY3MzU5MCIsIjEuMDQ4NDI2NjFFKzU4NzY3MzU4OSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxODEsZGVmLCItMjQ5LjQwMDcwNEUtOTIzOTMwODQ4IiwiODMxMTAyLjkxOSIsIjgzMTEwMi45MTkiLCItODMxMTAyLjkxOSIsIi0yLjA3Mjc3NjUzRS05MjM5MzA4NDAiLCItMy4wMDA4NDAxOUUtOTIzOTMwODUyIiwiMCIsIi0yLjQ5NDAwNzA0RS05MjM5MzA4NDYiLCIiKTsKKyAgbWF0aHRlc3QoMTgyLGRlZiwiNjUyMzQuMjczOUUrMTU0OTQ5OTE0IiwiLTY5NDU4MTg5NSIsIjYuNTIzNDI3MzlFKzE1NDk0OTkxOCIsIjYuNTIzNDI3MzlFKzE1NDk0OTkxOCIsIi00LjUzMTA1NDU2RSsxNTQ5NDk5MjciLCItOS4zOTE4NzY1MkUrMTU0OTQ5OTA5IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE4MyxkZWYsIjQ1LjIzMTYyMTMiLCItODg3NzUwODMuNCIsIi04ODc3NTAzOC4yIiwiODg3NzUxMjguNiIsIi00LjAxNTQ0MDk1RSs5IiwiLTUuMDk1MDgwNjlFLTciLCIwIiwiNDUuMjMxNjIxMyIsIjEuOTIzMTQyNTRFLTE0Njk2MjAxNSIpOworICBtYXRodGVzdCgxODQsZGVmLCIzMzExMDAzNzUuIiwiNDQyLjM0MzM3OCIsIjMzMTEwMDgxNyIsIjMzMTA5OTkzMyIsIjEuNDY0NjAwNThFKzExIiwiNzQ4NTE0LjM3IiwiNzQ4NTE0IiwiMTYzLjc1OTcwOCIsIjYuNjQwMTEwNDNFKzM3NjUiKTsKKyAgbWF0aHRlc3QoMTg1LGRlZiwiODEuODE2Mjc2NSIsIjUuNjEyMzk1MTVFKzQ2NzM3MjE2MyIsIjUuNjEyMzk1MTVFKzQ2NzM3MjE2MyIsIi01LjYxMjM5NTE1RSs0NjczNzIxNjMiLCI0LjU5MTg1MjczRSs0NjczNzIxNjUiLCIxLjQ1Nzc3ODI2RS00NjczNzIxNjIiLCIwIiwiODEuODE2Mjc2NSIsIjIuOTk5NDI2NzdFKzExIik7CisgIG1hdGh0ZXN0KDE4NixkZWYsIi01NzM4LjEzMDY5RSs3ODk0NjQwNzgiLCIzMzk2OTcxNS4wIiwiLTUuNzM4MTMwNjlFKzc4OTQ2NDA4MSIsIi01LjczODEzMDY5RSs3ODk0NjQwODEiLCItMS45NDkyMjY2NEUrNzg5NDY0MDg5IiwiLTEuNjg5MTkwMTJFKzc4OTQ2NDA3NCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgxODcsZGVmLCItNzQxMy4wMzkxMSIsIjIuNzA2MzAzMjBFLTI1NDg1ODI2NCIsIi03NDEzLjAzOTExIiwiLTc0MTMuMDM5MTEiLCItMi4wMDYxOTMxNUUtMjU0ODU4MjYwIiwiLTIuNzM5MTc1MzlFKzI1NDg1ODI2NyIsIiIsIiIsIi00LjA3MzY5ODQyRSsxMSIpOworICBtYXRodGVzdCgxODgsZGVmLCItNDE3Njk2LjE4MiIsIjI3NDAwLjYwMDIiLCItMzkwMjk1LjU4MiIsIi00NDUwOTYuNzgyIiwiLTEuMTQ0NTEyNjFFKzEwIiwiLTE1LjI0NDA1MjMiLCItMTUiLCItNjY4Ny4xNzkwIiwiLTEuNTgwMjAzMzRFKzE1NDAxNyIpOworICBtYXRodGVzdCgxODksZGVmLCI2OC44NTM4NzM1RSs2NTU2NDcyODciLCIzMTk4LjE3OTMzRS0xMzI0NTQ4MjYiLCI2Ljg4NTM4NzM1RSs2NTU2NDcyODgiLCI2Ljg4NTM4NzM1RSs2NTU2NDcyODgiLCIyLjIwMjA3MDM1RSs1MjMxOTI0NjYiLCIyLjE1MjkwODQ2RSs3ODgxMDIxMTEiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTkwLGRlZiwiLTY4MTcuMDQyNDYiLCI0MzQ0MjAuNDM5IiwiNDI3NjAzLjM5NyIsIi00NDEyMzcuNDgxIiwiLTIuOTYxNDYyNThFKzkiLCItMC4wMTU2OTIyNjkyIiwiMCIsIi02ODE3LjA0MjQ2IiwiNS45NDE0MzUxOEUrMTY2NTM5MCIpOworICBtYXRodGVzdCgxOTEsZGVmLCI4NTc4LjI3NTExIiwiNjQ3MDQyLjM0MUUtNDkwOTI0MzM0IiwiODU3OC4yNzUxMSIsIjg1NzguMjc1MTEiLCI1LjU1MDUwNzIxRS00OTA5MjQzMjUiLCIxLjMyNTc2NzJFKzQ5MDkyNDMzMiIsIiIsIiIsIjMuOTg0NzM4NDZFKzIzIik7CisgIG1hdGh0ZXN0KDE5MixkZWYsIjQxMjQuMTE2MTVFKzczMzEwOTQyNCIsIjU5NzM4NTgyOEUrMzc1OTI4NzQ1IiwiNC4xMjQxMTYxNUUrNzMzMTA5NDI3IiwiNC4xMjQxMTYxNUUrNzMzMTA5NDI3IiwiIiwiNi45MDM2MDU2RSszNTcxODA2NzMiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMTkzLGRlZiwiMTAyLjcxNDQwMCIsIi05MTkwMTcuNDY4IiwiLTkxODkxNC43NTQiLCI5MTkxMjAuMTgyIiwiLTk0Mzk2MzI3LjgiLCItMC4wMDAxMTE3NjU0NDkiLCIwIiwiMTAyLjcxNDQwMCIsIjQuMDQyOTU2ODlFLTE4NDg3MjQiKTsKKyAgbWF0aHRlc3QoMTk0LGRlZiwiLTQ2MTQuMzMwMTVFKzk5Njc3ODczMyIsIi00MzMuNTYwODEyRSsyMjg2MDU5OSIsIi00LjYxNDMzMDE1RSs5OTY3Nzg3MzYiLCItNC42MTQzMzAxNUUrOTk2Nzc4NzM2IiwiIiwiMS4wNjQyODY3MkUrOTczOTE4MTM1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDE5NSxkZWYsIjQ1NzQ1NTE3MC4iLCIzNzA5MjMwLjQ4RSs2NzcwMTA4NzkiLCIzLjcwOTIzMDQ4RSs2NzcwMTA4ODUiLCItMy43MDkyMzA0OEUrNjc3MDEwODg1IiwiMS42OTY4MDY2NkUrNjc3MDEwODk0IiwiMS4yMzMyODg2MUUtNjc3MDEwODc3IiwiMCIsIjQ1NzQ1NTE3MCIsIjQuMzc5MTkzNzZFKzM0Iik7CisgIG1hdGh0ZXN0KDE5NixkZWYsIi0yNTIyNDY4LjE1IiwiLTQ4NDgyMDQzLjUiLCItNTEwMDQ1MTEuNyIsIjQ1OTU5NTc1LjQiLCIxLjIyMjk0NDExRSsxNCIsIjAuMDUyMDI4OTE1NiIsIjAiLCItMjUyMjQ2OC4xNSIsIjEuNDIzNDgxNzhFLTMxMDM3MzU5NSIpOworICBtYXRodGVzdCgxOTcsZGVmLCItNjU5ODExMzg0IiwiNjI3NzcuNjExOCIsIi02NTk3NDg2MDYiLCItNjU5ODc0MTYyIiwiLTQuMTQyMTM4MjlFKzEzIiwiLTEwNTEwLjI5NzYiLCItMTA1MTAiLCItMTg2ODMuOTgyMCIsIjMuNDM5MzUyNEUrNTUzNjY1Iik7CisgIG1hdGh0ZXN0KDE5OCxkZWYsIjQ0MjQuOTQxNzYiLCItODI1ODQ4LjIwIiwiLTgyMTQyMy4yNTgiLCI4MzAyNzMuMTQyIiwiLTMuNjU0MzMwMTlFKzkiLCItMC4wMDUzNTgwNTcwNCIsIjAiLCI0NDI0Ljk0MTc2IiwiMy40MjE1Mjc3NUUtMzAxMDk2NiIpOworICBtYXRodGVzdCgxOTksZGVmLCI0My42NDQxODg0IiwiLTY1MDkuODk2NjNFLTYxNDE2OTM3NyIsIjQzLjY0NDE4ODQiLCI0My42NDQxODg0IiwiLTIuODQxMTkxNTVFLTYxNDE2OTM3MiIsIi02LjcwNDI4Mjg2RSs2MTQxNjkzNzQiLCIiLCIiLCIzLjMxNTI0MDU2RS0xMiIpOworICBtYXRodGVzdCgyMDAsZGVmLCI4OTcuMzg4MzgxRS04NDM4NjQ4NzYiLCI4NDE5NS4xMzY5IiwiODQxOTUuMTM2OSIsIi04NDE5NS4xMzY5IiwiNy41NTU1NzM3NkUtODQzODY0ODY5IiwiMS4wNjU4NDM0OEUtODQzODY0ODc4IiwiMCIsIjguOTczODgzODFFLTg0Mzg2NDg3NCIsIiIpOworICBtYXRodGVzdCgyMDEsZGVmLCI3OTYxOTk4MjUiLCI0OTYuNzY4MzQiLCI3OTYyMDAzMjIiLCI3OTYxOTkzMjgiLCIzLjk1NTI2ODY1RSsxMSIsIjE2MDI3NTguNzkiLCIxNjAyNzU4IiwiMzkzLjkxODI4IiwiNi40MjY0NzI2NEUrNDQyMyIpOworICBtYXRodGVzdCgyMDIsZGVmLCI1NzM1ODM1ODIiLCIxNTk4LjY5NTIxIiwiNTczNTg1MTgxIiwiNTczNTgxOTgzIiwiOS4xNjk4NTMyNUUrMTEiLCIzNTg3ODIuMzIzIiwiMzU4NzgyIiwiNTE3LjE2NTc4IiwiOS45MTE1NjMwMkUrMTQwMDQiKTsKKyAgbWF0aHRlc3QoMjAzLGRlZiwiLTc4MzE0NDI3MC4iLCI2MzQ3LjcxNDk2IiwiLTc4MzEzNzkyMiIsIi03ODMxNTA2MTgiLCItNC45NzExNzY2MEUrMTIiLCItMTIzMzc0LjIwMiIsIi0xMjMzNzQiLCItMTI4NC41MjQ5NiIsIjEuMjgxMTA4MDNFKzU2NDU4Iik7CisgIG1hdGh0ZXN0KDIwNCxkZWYsIjI2OTA5MjM0LjciLCI1MjQxMS41MDgxIiwiMjY5NjE2NDYuMiIsIjI2ODU2ODIzLjIiLCIxLjQxMDM1MzU3RSsxMiIsIjUxMy40MjIyNTUiLCI1MTMiLCIyMjEzMS4wNDQ3IiwiOS43NTgzNjUyOEUrMzg5NDE1Iik7CisgIG1hdGh0ZXN0KDIwNSxkZWYsIjguMjE5MTUyODIiLCIyNDg1OS43ODQxRS04NDMyODI5NTkiLCI4LjIxOTE1MjgyIiwiOC4yMTkxNTI4MiIsIjIuMDQzMjYzNjVFLTg0MzI4Mjk1NCIsIjMuMzA2MjA0NDNFKzg0MzI4Mjk1NSIsIiIsIiIsIjY3LjU1NDQ3MzEiKTsKKyAgbWF0aHRlc3QoMjA2LGRlZiwiLTY4OC4zODc3MTAiLCI4Mjc4My41MjA3RS04MzE4NzA4NTgiLCItNjg4LjM4NzcxMCIsIi02ODguMzg3NzEwIiwiLTUuNjk4NzE1ODJFLTgzMTg3MDg1MSIsIi04LjMxNTUxNjIzRSs4MzE4NzA4NTUiLCIiLCIiLCI1LjA0MjcyMDEyRSsyMiIpOworICBtYXRodGVzdCgyMDcsZGVmLCItOTc5MjIzMi4iLCItMTc0OS4wMTE2NiIsIi05NzkzOTgxLjAxIiwiLTk3OTA0ODIuOTkiLCIxLjcxMjY3Mjc5RSsxMCIsIjU1OTguNzIzMTEiLCI1NTk4IiwiLTEyNjQuNzI3MzIiLCItOC44Njk4NTY3NEUtMTIyMjgiKTsKKyAgbWF0aHRlc3QoMjA4LGRlZiwiLTEzMC43NjU2MDAiLCI4LjY3NDM3NDI3IiwiLTEyMi4wOTEyMjYiLCItMTM5LjQzOTk3NCIsIi0xMTM0LjMwOTc2IiwiLTE1LjA3NDkzMTciLCItMTUiLCItMC42NDk5ODU5NSIsIi0xLjExNzk5OTQ3RSsxOSIpOworICBtYXRodGVzdCgyMDksZGVmLCI5MTcuMjU5MTAyIiwiLTM2ODY0MC40MjYiLCItMzY3NzIzLjE2NyIsIjM2OTU1Ny42ODUiLCItMzM4MTM4Nzg2IiwiLTAuMDAyNDg4MjIxNjkiLCIwIiwiOTE3LjI1OTEwMiIsIjguNjcxMDQyNTVFLTEwOTIwOTQiKTsKKyAgbWF0aHRlc3QoMjEwLGRlZiwiLTQuOTcyNTYzMSIsIi0yOTQ1NjM3MTcuIiwiLTI5NDU2MzcyMiIsIjI5NDU2MzcxMiIsIjEuNDY0NzM2NjdFKzkiLCIxLjY4ODExMTJFLTgiLCIwIiwiLTQuOTcyNTYzMSIsIi02LjI3OTYyNTg0RS0yMDUxODcyODQiKTsKKyAgbWF0aHRlc3QoMjExLGRlZiwiLTYwOTYyODg3LjJFLTUxNDI0OTY2MSIsIi0yNDMwMjEuNDA3IiwiLTI0MzAyMS40MDciLCIyNDMwMjEuNDA3IiwiMS40ODE1Mjg2NkUtNTE0MjQ5NjQ4IiwiMi41MDg1Mzk4RS01MTQyNDk2NTkiLCIwIiwiLTYuMDk2Mjg4NzJFLTUxNDI0OTY1NCIsIiIpOworICBtYXRodGVzdCgyMTIsZGVmLCItNTUzODkyMTkuOCIsIi0zNzcyMjAwRSs5ODE4NjYzOTMiLCItMy43NzIyMDAwMEUrOTgxODY2Mzk5IiwiMy43NzIyMDAwMEUrOTgxODY2Mzk5IiwiMi4wODkzOTIxNUUrOTgxODY2NDA3IiwiMS40NjgzNTMyMUUtOTgxODY2MzkyIiwiMCIsIi01NTM4OTIxOS44IiwiMS4wNjI0MjY3OEUtMzEiKTsKKyAgbWF0aHRlc3QoMjEzLGRlZiwiNjgxLjY2NjAxMCIsIjYyNjg4NjcwMCIsIjYyNjg4NzM4MiIsIi02MjY4ODYwMTgiLCI0LjI3MzI3MzU2RSsxMSIsIjAuMDAwMDAxMDg3MzgzMTEiLCIwIiwiNjgxLjY2NjAxMCIsIiIpOworICBtYXRodGVzdCgyMTQsZGVmLCI2LjQyNjUyMTM4IiwiNTM0NjU4OTQuNSIsIjUzNDY1OTAwLjkiLCItNTM0NjU4ODguMSIsIjM0MzU5OTcxNCIsIjEuMjAxOTg1MkUtNyIsIjAiLCI2LjQyNjUyMTM4IiwiNC42MTE1NTUzMkUrNDMxOTkxNTciKTsKKyAgbWF0aHRlc3QoMjE1LGRlZiwiNTYxNTQ2NjU2IiwiNjUxNDA4LjQ3NiIsIjU2MjE5ODA2NCIsIjU2MDg5NTI0OCIsIjMuNjU3OTYyNTFFKzE0IiwiODYyLjA0OTk2OCIsIjg2MiIsIjMyNTQ5LjY4OCIsIjguNjA1MjM3N0UrNTY5OTQxOSIpOworICBtYXRodGVzdCgyMTYsZGVmLCI3ODQ1Nzc4LjM2RS03OTk1MTEzOSIsIjkuNDU4NTkwNDciLCI5LjQ1ODU5MDQ3IiwiLTkuNDU4NTkwNDciLCI3LjQyMTAwMDQ0RS03OTk1MTEzMiIsIjguMjk0ODcwNTZFLTc5OTUxMTM0IiwiMCIsIjcuODQ1Nzc4MzZFLTc5OTUxMTMzIiwiMS4xMjY0ODIxNkUtNzE5NTYwMTg5Iik7CisgIG1hdGh0ZXN0KDIxNyxkZWYsIjU0NDg2LjIxMTIiLCIxMC43NTY1MDc4IiwiNTQ0OTYuOTY3NyIsIjU0NDc1LjQ1NDciLCI1ODYwODEuMzU2IiwiNTA2NS40MTgyOCIsIjUwNjUiLCI0LjQ5OTE5MzAiLCIxLjI1NjQ3MTY4RSs1MiIpOworICBtYXRodGVzdCgyMTgsZGVmLCIxNjU3NjQ4Mi41IiwiLTIyMTc3MjAuODMiLCIxNDM1ODc2MS43IiwiMTg3OTQyMDMuMyIsIi0zLjY3NjIwMTA1RSsxMyIsIi03LjQ3NDU1Nzc5IiwiLTciLCIxMDUyNDM2LjY5IiwiMS4zODI1OTM3NEUtMTYwMTA4MjAiKTsKKyAgbWF0aHRlc3QoMjE5LGRlZiwiNjEuMjc5Mzc4N0UtMzkyMDcwMTExIiwiNi4yMjU3NTY1MSIsIjYuMjI1NzU2NTEiLCItNi4yMjU3NTY1MSIsIjMuODE1MTA0OTFFLTM5MjA3MDEwOSIsIjkuODQyODgwNzJFLTM5MjA3MDExMSIsIjAiLCI2LjEyNzkzNzg3RS0zOTIwNzAxMTAiLCIiKTsKKyAgbWF0aHRlc3QoMjIwLGRlZiwiNTExNTEzNi4zOSIsIi02NTM2NzQzNzIuIiwiLTY0ODU1OTIzNiIsIjY1ODc4OTUwOCIsIi0zLjM0MzYzMzU3RSsxNSIsIi0wLjAwNzgyNTIwNTY1IiwiMCIsIjUxMTUxMzYuMzkiLCIiKTsKKyAgbWF0aHRlc3QoMjIxLGRlZiwiLTcuODQyMzgzNjZFLTQxNjQ3NzMzOSIsIi0zNzQzMjc1OC45RSs5NzM2OTM5MyIsIi0zLjc0MzI3NTg5RSs5NzM2OTQwMCIsIjMuNzQzMjc1ODlFKzk3MzY5NDAwIiwiMi45MzU2MjA1N0UtMzE5MTA3OTM4IiwiMi4wOTUwNTg5NUUtNTEzODQ2NzM5IiwiMCIsIi03Ljg0MjM4MzY2RS00MTY0NzczMzkiLCIiKTsKKyAgbWF0aHRlc3QoMjIyLGRlZiwiLTM4Nzc4MS4zRSsyODQxMDgzODAiLCItMjE4MDg1LjU5MiIsIi0zLjg3NzgxMzAwRSsyODQxMDgzODUiLCItMy44Nzc4MTMwMEUrMjg0MTA4Mzg1IiwiOC40NTY5NTE0NEUrMjg0MTA4MzkwIiwiMS43NzgxMTUxN0UrMjg0MTA4MzgwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDIyMyxkZWYsIi01MzUzLjE3NzM2IiwiMy4zOTMzMjM0NkUrNTQ2Njg1MzU5IiwiMy4zOTMzMjM0NkUrNTQ2Njg1MzU5IiwiLTMuMzkzMzIzNDZFKzU0NjY4NTM1OSIsIi0xLjgxNjUwNjIzRSs1NDY2ODUzNjMiLCItMS41Nzc1NjE3N0UtNTQ2Njg1MzU2IiwiMCIsIi01MzUzLjE3NzM2IiwiLTEuNTM0MDMzNjlFKzExIik7CisgIG1hdGh0ZXN0KDIyNCxkZWYsIi0yMDgzNy4yOTAwRS0xNjg2NTI3NzIiLCItODIzNi43ODMwNUUtNzEyODE5MTczIiwiLTIuMDgzNzI5MDBFLTE2ODY1Mjc2OCIsIi0yLjA4MzcyOTAwRS0xNjg2NTI3NjgiLCIxLjcxNjMyMjM3RS04ODE0NzE5MzciLCIyLjUyOTc4NDk3RSs1NDQxNjY0MDEiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjI1LGRlZiwiLTk4NTczLjg3MjJFKzgyOTAyMjM2NiIsIjMwOTAxMS4wMDciLCItOS44NTczODcyMkUrODI5MDIyMzcwIiwiLTkuODU3Mzg3MjJFKzgyOTAyMjM3MCIsIi0zLjA0NjA0MTE1RSs4MjkwMjIzNzYiLCItMy4xODk5NzkzMkUrODI5MDIyMzY1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDIyNixkZWYsIjQ5NzMwNzUwLjciLCItNTMxNS4xMDYzNkUtMjk5NTg2OTkxIiwiNDk3MzA3NTAuNyIsIjQ5NzMwNzUwLjciLCItMi42NDMyNDIyOUUtMjk5NTg2OTgwIiwiLTkuMzU2NDkyMTFFKzI5OTU4Njk5NCIsIiIsIiIsIjMuMjg3NTY5MzZFLTM5Iik7CisgIG1hdGh0ZXN0KDIyNyxkZWYsIjE1Mzk1MjMuNDAiLCItOTYyMzg4LjU4MSIsIjU3NzEzNC44MiIsIjI1MDE5MTEuOTgiLCItMS40ODE2MTk3NEUrMTIiLCItMS41OTk2OTAwMSIsIi0xIiwiNTc3MTM0LjgxOSIsIjMuMTAxNDQ4MzRFLTU5NTQ2NzMiKTsKKyAgbWF0aHRlc3QoMjI4LGRlZiwiODE1OTYuMjEyMSIsIi0zNzYwMC45NjUzIiwiNDM5OTUuMjQ2OCIsIjExOTE5Ny4xNzciLCItMy4wNjgwOTYzNEUrOSIsIi0yLjE3MDA1NjMxIiwiLTIiLCI2Mzk0LjI4MTUiLCIxLjk3ODc4Mjk5RS0xODQ2ODQiKTsKKyAgbWF0aHRlc3QoMjI5LGRlZiwiNTkwMTQ2MTk5IiwiLTE0MjU0MDQuNjEiLCI1ODg3MjA3OTQiLCI1OTE1NzE2MDQiLCItOC40MTE5NzExM0UrMTQiLCItNDE0LjAyMDEyOCIsIi00MTQiLCIyODY5MC40NiIsIjIuMDQ2NTA5OTRFLTEyNTAyMTcwIik7CisgIG1hdGh0ZXN0KDIzMCxkZWYsIjE5Ni4wNTU0MyIsIjUwNS45MzYzMDUiLCI3MDEuOTkxNzM1IiwiLTMwOS44ODA4NzUiLCI5OTE5MS41NTk4IiwiMC4zODc1MTAxMDQiLCIwIiwiMTk2LjA1NTQzIiwiOC43ODQzNzM5N0UrMTE1OSIpOworICBtYXRodGVzdCgyMzEsZGVmLCI3Ny44MDU4NDQ5IiwiLTY0Mi4yNzUyNzQiLCItNTY0LjQ2OTQyOSIsIjcyMC4wODExMTkiLCItNDk5NzIuNzcwNCIsIi0wLjEyMTE0MDk2MyIsIjAiLCI3Ny44MDU4NDQ5IiwiOS4zMzU4MjYyNkUtMTIxNSIpOworICBtYXRodGVzdCgyMzIsZGVmLCIxNDY4LjYwNjg0IiwiMTAwNjguMTM4IiwiMTE1MzYuNzQ0OCIsIi04NTk5LjUzMTIiLCIxNDc4NjEzNi4zIiwiMC4xNDU4NjY3NzciLCIwIiwiMTQ2OC42MDY4NCIsIjIuNTQxMjI0ODRFKzMxODg0Iik7CisgIG1hdGh0ZXN0KDIzMyxkZWYsIjQuOTg3NzQ3NjdFLTM4Nzk2ODYzMiIsIjQuNDE3MzE0MzlFLTU3ODgxMjM3NiIsIjQuOTg3NzQ3NjdFLTM4Nzk2ODYzMiIsIjQuOTg3NzQ3NjdFLTM4Nzk2ODYzMiIsIjIuMjAzMjQ0OTZFLTk2Njc4MTAwNyIsIjEuMTI5MTM1NzdFKzE5MDg0Mzc0NCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyMzQsZGVmLCI5ODEuMDkxMDU5IiwiLTkyMjM4Ljk5MzAiLCItOTEyNTcuOTAyMCIsIjkzMjIwLjA4NDEiLCItOTA0OTQ4NTEuMyIsIi0wLjAxMDYzNjQwMjUiLCIwIiwiOTgxLjA5MTA1OSIsIjUuMjk5NDMzNDJFLTI3NTk1MyIpOworICBtYXRodGVzdCgyMzUsZGVmLCItMzYwNi4yNDk5MiIsIjgyOTAyMjQuNzAiLCI4Mjg2NjE4LjQ1IiwiLTgyOTM4MzAuOTUiLCItMi45ODk2NjIyMkUrMTAiLCItMC4wMDA0MzUwMDAyNjIiLCIwIiwiLTM2MDYuMjQ5OTIiLCItMS4yMzc0NzEwN0UrMjk0ODg3OTMiKTsKKyAgbWF0aHRlc3QoMjM2LGRlZiwiLTg5Nzg1NzEuMzUiLCI5MjI0My40Nzk2IiwiLTg4ODYzMjcuODciLCItOTA3MDgxNC44MyIsIi04LjI4MjE0NjYzRSsxMSIsIi05Ny4zMzU1NjY2IiwiLTk3IiwiLTMwOTUzLjgyODgiLCItNC45NTc2MjgxM0UrNjQxMzg0Iik7CisgIG1hdGh0ZXN0KDIzNyxkZWYsIi02MTk2OC4xOTkyRSs4MTAwNjA0NzgiLCI0NzQyOTQ2NzEuRSsxNzkyNjM0MTQiLCItNi4xOTY4MTk5MkUrODEwMDYwNDgyIiwiLTYuMTk2ODE5OTJFKzgxMDA2MDQ4MiIsIi0yLjkzOTExODY3RSs5ODkzMjM5MDUiLCItMS4zMDY1MzM3NEUrNjMwNzk3MDYwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDIzOCxkZWYsIjYxMjk4NDMxLjZFLTc1NDQyOTA0MSIsIi0yNTg0ODYyLjc5IiwiLTI1ODQ4NjIuNzkiLCIyNTg0ODYyLjc5IiwiLTEuNTg0NDgwMzVFLTc1NDQyOTAyNyIsIi0yLjM3MTQzODUxRS03NTQ0MjkwNDAiLCIwIiwiNi4xMjk4NDMxNkUtNzU0NDI5MDM0IiwiIik7CisgIG1hdGh0ZXN0KDIzOSxkZWYsIjYyMTAzOS4wNjQiLCItNTM1MTUzOS42MiIsIi00NzMwNTAwLjU2IiwiNTk3MjU3OC42OCIsIi0zLjMyMzUxNTE2RSsxMiIsIi0wLjExNjA0ODY3MiIsIjAiLCI2MjEwMzkuMDY0IiwiMi40MTE2MzMxMkUtMzEwMDIxMDgiKTsKKyAgbWF0aHRlc3QoMjQwLGRlZiwiLTE5LjYwMDc2MDUiLCItNTc5MDU2OTYuIiwiLTU3OTA1NzE1LjYiLCI1NzkwNTY3Ni40IiwiMS4xMzQ5OTU2OEUrOSIsIjMuMzg0OTQ1MTVFLTciLCIwIiwiLTE5LjYwMDc2MDUiLCIxLjA1NjYzNjQ2RS03NDgyOTk2MyIpOworICBtYXRodGVzdCgyNDEsZGVmLCIzNjI2LjEzMTA5RSs2ODcwMzAzNDYiLCIxODkuODk2MDA0IiwiMy42MjYxMzEwOUUrNjg3MDMwMzQ5IiwiMy42MjYxMzEwOUUrNjg3MDMwMzQ5IiwiNi44ODU4NzgwNEUrNjg3MDMwMzUxIiwiMS45MDk1MzUyM0UrNjg3MDMwMzQ3IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI0MixkZWYsIi0yNDkzMzQuMDI2IiwiLTcuNTQ3MzU4MzRFLTE0MTM3MTg4IiwiLTI0OTMzNC4wMjYiLCItMjQ5MzM0LjAyNiIsIjEuODgxODEzMjRFLTE0MTM3MTgyIiwiMy4zMDM1OTMzMkUrMTQxMzcxOTIiLCIiLCIiLCI2LjY5NDk1NDA4RS00NCIpOworICBtYXRodGVzdCgyNDMsZGVmLCI0MTc2MTM5MjguIiwiLTkyNTIxMy4yMTYiLCI0MTY2ODg3MTUiLCI0MTg1MzkxNDEiLCItMy44NjM4MTkyNUUrMTQiLCItNDUxLjM3MDQ3NCIsIi00NTEiLCIzNDI3NjcuNTg0IiwiOC4zODQzMDA4NUUtNzk3NjA1NCIpOworICBtYXRodGVzdCgyNDQsZGVmLCIyMy44MzIwMzA5IiwiLTUwMDc0OTk2LjEiLCItNTAwNzQ5NzIuMyIsIjUwMDc1MDE5LjkiLCItMS4xOTMzODg4NUUrOSIsIi00Ljc1OTI2NzY1RS03IiwiMCIsIjIzLjgzMjAzMDkiLCI1LjgxNDY2Mzg3RS02ODk2MTMzNSIpOworICBtYXRodGVzdCgyNDUsZGVmLCI0OTc4OTY3Ny43IiwiLTEzMTgyNzgxMkUrMTU2NDEyNTM0IiwiLTEuMzE4Mjc4MTJFKzE1NjQxMjU0MiIsIjEuMzE4Mjc4MTJFKzE1NjQxMjU0MiIsIi02LjU2MzY2NDI3RSsxNTY0MTI1NDkiLCItMy43NzY4NzIwNEUtMTU2NDEyNTM1IiwiMCIsIjQ5Nzg5Njc3LjciLCIyLjAwODQ0ODQzRS04Iik7CisgIG1hdGh0ZXN0KDI0NixkZWYsIi04OTA3MTYzLjYxRS03NDE4NjcyNDYiLCI3NzM2NTEuMjg4RS00NzIwMzMyODIiLCI3LjczNjUxMjg4RS00NzIwMzMyNzciLCItNy43MzY1MTI4OEUtNDcyMDMzMjc3IiwiIiwiLTEuMTUxMzE1MDRFLTI2OTgzMzk2MyIsIjAiLCItOC45MDcxNjM2MUUtNzQxODY3MjQwIiwiIik7CisgIG1hdGh0ZXN0KDI0NyxkZWYsIjUxNDAyMTcxMS5FKzQ2MzUzNjY0NiIsIjYxNzQ0MTY1OS4iLCI1LjE0MDIxNzExRSs0NjM1MzY2NTQiLCI1LjE0MDIxNzExRSs0NjM1MzY2NTQiLCIzLjE3Mzc4NDE4RSs0NjM1MzY2NjMiLCI4LjMyNTAyNDc4RSs0NjM1MzY2NDUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjQ4LGRlZiwiOTk4MTc1NzUwIiwiMi4zOTI4NTQ3OCIsIjk5ODE3NTc1MiIsIjk5ODE3NTc0OCIsIjIuMzg4NDg5NjFFKzkiLCI0MTcxNDg0ODciLCI0MTcxNDg0ODYiLCIxLjMwNTEzNjkyIiwiOS45NjM1NDgyOEUrMTciKTsKKyAgbWF0aHRlc3QoMjQ5LGRlZiwiODczNTc1NDI2LiIsIjY0Nzg1My4xNTJFKzQ5NzQ1MDc4MSIsIjYuNDc4NTMxNTJFKzQ5NzQ1MDc4NiIsIi02LjQ3ODUzMTUyRSs0OTc0NTA3ODYiLCI1LjY1OTQ4NTkzRSs0OTc0NTA3OTUiLCIxLjM0ODQxNThFLTQ5NzQ1MDc3OCIsIjAiLCI4NzM1NzU0MjYiLCI0LjQ0NDI5MDY0RSs1MyIpOworICBtYXRodGVzdCgyNTAsZGVmLCI0MzUyNjI2LjgiLCItMTMwMzM4MDQ4LkUtNzQ0NTYwOTExIiwiNDM1MjYyNi44MCIsIjQzNTI2MjYuODAiLCItNS42NzMxMjg4MUUtNzQ0NTYwODk3IiwiLTMuMzM5NDkwNTVFKzc0NDU2MDkwOSIsIiIsIiIsIjIuMjk3NDYzMjJFLTciKTsKKyAgbWF0aHRlc3QoMjUxLGRlZiwiNDM3LjI4Njk2MCIsIjcuMzc1NjA4MzUiLCI0NDQuNjYyNTY4IiwiNDI5LjkxMTM1MiIsIjMyMjUuMjU3MzUiLCI1OS4yODgyNTY1IiwiNTkiLCIyLjEyNjA2NzM1IiwiMy4wNTc0OTQ1MkUrMTgiKTsKKyAgbWF0aHRlc3QoMjUyLGRlZiwiODQ5ODI4MC40NUUrMjIwNTExNTIyIiwiNTg4NjE3NjEyIiwiOC40OTgyODA0NUUrMjIwNTExNTI4IiwiOC40OTgyODA0NUUrMjIwNTExNTI4IiwiNS4wMDIyMzc1NEUrMjIwNTExNTM3IiwiMS40NDM3NjkzMUUrMjIwNTExNTIwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI1MyxkZWYsIi01MzIwMzg3Ljc3IiwiLTc2NzMyMzcuNDYiLCItMTI5OTM2MjUuMiIsIjIzNTI4NDkuNjkiLCI0LjA4MjQ1OTg3RSsxMyIsIjAuNjkzMzY5MzYzIiwiMCIsIi01MzIwMzg3Ljc3IiwiLTEuMzAxMTM3NDVFLTUxNjA5NzU3Iik7CisgIG1hdGh0ZXN0KDI1NCxkZWYsIjU4NzY1NTM3NSIsIi00Ljk3NDgzNjYiLCI1ODc2NTUzNzAiLCI1ODc2NTUzODAiLCItMi45MjM0ODk0N0UrOSIsIi0xMTgxMjU1NjMiLCItMTE4MTI1NTYzIiwiMC43OTE5OTQyIiwiMS40MjY4NzY2N0UtNDQiKTsKKyAgbWF0aHRlc3QoMjU1LGRlZiwiMTI2NjA5OC40NCIsIi0yNjYxLjY0OTA0RS02NDI2MDExNDIiLCIxMjY2MDk4LjQ0IiwiMTI2NjA5OC40NCIsIi0zLjM2OTkwOTcwRS02NDI2MDExMzMiLCItNC43NTY4MTk2M0UrNjQyNjAxMTQ0IiwiIiwiIiwiNC45MjcxNzAzNkUtMTkiKTsKKyAgbWF0aHRlc3QoMjU2LGRlZiwiMy45MjczNzQ2M0UrNDgyODczNDgzIiwiLTY4NS41MjI3NDciLCIzLjkyNzM3NDYzRSs0ODI4NzM0ODMiLCIzLjkyNzM3NDYzRSs0ODI4NzM0ODMiLCItMi42OTIzMDQ2NEUrNDgyODczNDg2IiwiLTUuNzI5MDIxNjFFKzQ4Mjg3MzQ4MCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyNTcsZGVmLCIyMjgyNjQ5NC4xIiwiOTg2MTg5NDc0LiIsIjEuMDA5MDE1OTdFKzkiLCItOTYzMzYyOTgwIiwiMi4yNTExMjQ4MkUrMTYiLCIwLjAyMzE0NjE1NDciLCIwIiwiMjI4MjY0OTQuMSIsIiIpOworICBtYXRodGVzdCgyNTgsZGVmLCItNjQ3MzQyLjM4MCIsIi00OTg4MTYzODYiLCItNDk5NDYzNzI4IiwiNDk4MTY5MDQ0IiwiMy4yMjkwNDk4NkUrMTQiLCIwLjAwMTI5Nzc1Njg1IiwiMCIsIi02NDczNDIuMzgwIiwiIik7CisgIG1hdGh0ZXN0KDI1OSxkZWYsIjM5MzA5MjM3My4iLCItMjUuNzIyNjgyMiIsIjM5MzA5MjM0NyIsIjM5MzA5MjM5OSIsIi0xLjAxMTEzOTAyRSsxMCIsIi0xNTI4MTkzNS42IiwiLTE1MjgxOTM1IiwiMTUuNTkzOTQzMCIsIjMuNDkyNTI4MzlFLTIyNCIpOworICBtYXRodGVzdCgyNjAsZGVmLCIyLjk2MjUzNDkyIiwiMjAuNzQ0NDg4OCIsIjIzLjcwNzAyMzciLCItMTcuNzgxOTUzOSIsIjYxLjQ1NjI3MjUiLCIwLjE0MjgxMDY5OCIsIjAiLCIyLjk2MjUzNDkyIiwiOC4wMzQwMjI0NkUrOSIpOworICBtYXRodGVzdCgyNjEsZGVmLCI1MzU1My4zNzUwRSszODY5NTU0MjMiLCItNzMyNDcwODc2IiwiNS4zNTUzMzc1MEUrMzg2OTU1NDI3IiwiNS4zNTUzMzc1MEUrMzg2OTU1NDI3IiwiLTMuOTIyNjI4NzVFKzM4Njk1NTQzNiIsIi03LjMxMTMzMTY1RSszODY5NTU0MTgiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjYyLGRlZiwiLTY5NjQ1MS40MDZFLTI4NjUzNTkxNyIsIi03MzA4NjA5MC44IiwiLTczMDg2MDkwLjgiLCI3MzA4NjA5MC44IiwiNS4wOTAwOTEwN0UtMjg2NTM1OTA0IiwiOS41MjkxOTIxOUUtMjg2NTM1OTIwIiwiMCIsIi02Ljk2NDUxNDA2RS0yODY1MzU5MTIiLCIiKTsKKyAgbWF0aHRlc3QoMjYzLGRlZiwiMTU1MS4yOTk1NyIsIi01ODAzNTg2MjIuRSsxMTcwMTcyNjUiLCItNS44MDM1ODYyMkUrMTE3MDE3MjczIiwiNS44MDM1ODYyMkUrMTE3MDE3MjczIiwiLTkuMDAzMTAwODFFKzExNzAxNzI3NiIsIi0yLjY3MzAwMTY4RS0xMTcwMTcyNzEiLCIwIiwiMTU1MS4yOTk1NyIsIjcuMTc1MDY3MTFFLTIwIik7CisgIG1hdGh0ZXN0KDI2NCxkZWYsIi0yMDUxMjMwMDYuRS0yMTM3NTI3OTkiLCItNzg2Mzg0NjguNiIsIi03ODYzODQ2OC42IiwiNzg2Mzg0NjguNiIsIjEuNjEzMDU1OTFFLTIxMzc1Mjc4MyIsIjIuNjA4NDMwODNFLTIxMzc1Mjc5OSIsIjAiLCItMi4wNTEyMzAwNkUtMjEzNzUyNzkxIiwiIik7CisgIG1hdGh0ZXN0KDI2NSxkZWYsIjc3NjMyLjgwNzMiLCItMzM3ODU0Mi44OEUrNjc3NDQxMzE5IiwiLTMuMzc4NTQyODhFKzY3NzQ0MTMyNSIsIjMuMzc4NTQyODhFKzY3NzQ0MTMyNSIsIi0yLjYyMjg1NzY4RSs2Nzc0NDEzMzAiLCItMi4yOTc4MTkyMUUtNjc3NDQxMzIxIiwiMCIsIjc3NjMyLjgwNzMiLCIyLjEzNzI5MzMxRS0xNSIpOworICBtYXRodGVzdCgyNjYsZGVmLCIzMDY4OTk5LjM3IiwiMi4yMTAwNjIxMiIsIjMwNjkwMDEuNTgiLCIzMDY4OTk3LjE2IiwiNjc4MjY3OS4yNSIsIjEzODg2NDguNDYiLCIxMzg4NjQ4IiwiMS4wMjcxODYyNCIsIjkuNDE4NzU3MTNFKzEyIik7CisgIG1hdGh0ZXN0KDI2NyxkZWYsIjYyNTUyNDI3NC4iLCI1NS4yNDY4NjI0IiwiNjI1NTI0MzI5IiwiNjI1NTI0MjE5IiwiMy40NTU4MjUzNUUrMTAiLCIxMTMyMjM0OS4zIiwiMTEzMjIzNDkiLCIxNi43NTIyMjI0IiwiNi4yMTQ4Mjk0M0UrNDgzIik7CisgIG1hdGh0ZXN0KDI2OCxkZWYsIjYxMjY5MTM0LjkiLCItODQ1NzYxMzAzLiIsIi03ODQ0OTIxNjgiLCI5MDcwMzA0MzgiLCItNS4xODE5MDYzNEUrMTYiLCItMC4wNzI0NDI1ODQ4IiwiMCIsIjYxMjY5MTM0LjkiLCIiKTsKKyAgbWF0aHRlc3QoMjY5LGRlZiwiLTI4NDAuMTIwOTkiLCItMjg1Ni43NjczMUUtODI3NDM2NTAiLCItMjg0MC4xMjA5OSIsIi0yODQwLjEyMDk5IiwiOC4xMTM1NjQ4MEUtODI3NDM2NDQiLCI5Ljk0MTczMDIyRSs4Mjc0MzY0OSIsIiIsIiIsIi00LjM2NTA1MjU0RS0xMSIpOworICBtYXRodGVzdCgyNzAsZGVmLCI4Ljk1Mzg3ODEiLCItNy41NjYwMzM5MSIsIjEuMzg3ODQ0MTkiLCIxNi41MTk5MTIwIiwiLTY3Ljc0NTM0NTMiLCItMS4xODM0MzA4NyIsIi0xIiwiMS4zODc4NDQxOSIsIjIuNDIwNTMwNjFFLTgiKTsKKyAgbWF0aHRlc3QoMjcxLGRlZiwiLTU2MjMzNTQ3LjIiLCI1MDk3NTI1MzAiLCI0NTM1MTg5ODMiLCItNTY1OTg2MDc3IiwiLTIuODY2NTE5MzBFKzE2IiwiLTAuMTEwMzE1Mzg2IiwiMCIsIi01NjIzMzU0Ny4yIiwiIik7CisgIG1hdGh0ZXN0KDI3MixkZWYsIi0zMTY3LjQ3ODUzRS04NTQ4NTk0OTciLCItMTEwODUyMTE1IiwiLTExMDg1MjExNSIsIjExMDg1MjExNSIsIjMuNTExMjE2OTRFLTg1NDg1OTQ4NiIsIjIuODU3MzkxMTZFLTg1NDg1OTUwMiIsIjAiLCItMy4xNjc0Nzg1M0UtODU0ODU5NDk0IiwiIik7CisgIG1hdGh0ZXN0KDI3MyxkZWYsIi01NjUyLjUyMDkyIiwiLTYzMjI0MzI0NC4iLCItNjMyMjQ4ODk3IiwiNjMyMjM3NTkyIiwiMy41NzM3NjgxNkUrMTIiLCIwLjAwMDAwODk0MDQyMTIzIiwiMCIsIi01NjUyLjUyMDkyIiwiIik7CisgIG1hdGh0ZXN0KDI3NCxkZWYsIi05NDYuMDA5OTI4IiwiODIwMDkwLjY2RS01ODkyNzgwMTUiLCItOTQ2LjAwOTkyOCIsIi05NDYuMDA5OTI4IiwiLTcuNzU4MTM5MDZFLTU4OTI3ODAwNyIsIi0xLjE1MzU0MzExRSs1ODkyNzgwMTIiLCIiLCIiLCI2LjQxNDU0MDUzRSsyMyIpOworICBtYXRodGVzdCgyNzUsZGVmLCItMzY3Ljc1Nzc1OCIsIi05NTkuNjI2MDE2IiwiLTEzMjcuMzgzNzciLCI1OTEuODY4MjU4IiwiMzUyOTA5LjkxMiIsIjAuMzgzMjMwMjkyIiwiMCIsIi0zNjcuNzU3NzU4IiwiMS4xNDk4MjE5OUUtMjQ2MyIpOworICBtYXRodGVzdCgyNzYsZGVmLCI4MDk5MjY3MjEuRS03NDQ2MTE1NTQiLCItNjcuNjU2MDU0OSIsIi02Ny42NTYwNTQ5IiwiNjcuNjU2MDU0OSIsIi01LjQ3OTY0NDY3RS03NDQ2MTE1NDQiLCItMS4xOTcxMjM3OEUtNzQ0NjExNTQ3IiwiMCIsIjguMDk5MjY3MjFFLTc0NDYxMTU0NiIsIiIpOworICBtYXRodGVzdCgyNzcsZGVmLCItMTcyNS4wODU1NSIsIjc1NTg2LjMwMzEiLCI3Mzg2MS4yMTc2IiwiLTc3MzExLjM4ODciLCItMTMwMzkyODM5IiwiLTAuMDIyODIyNzI2OSIsIjAiLCItMTcyNS4wODU1NSIsIjMuNzA1NDA1ODdFKzI0NDY1NyIpOworICBtYXRodGVzdCgyNzgsZGVmLCIyNjU5Ljg0MTkxRSsyOTMxNDQ5MiIsIi03NDM3Mi40NTUxRSs1MTgxOTY2ODAiLCItNy40MzcyNDU1MUUrNTE4MTk2Njg0IiwiNy40MzcyNDU1MUUrNTE4MTk2Njg0IiwiLTEuOTc4MTg5NzNFKzU0NzUxMTE4MCIsIi0zLjU3NjM4MDRFLTQ4ODg4MjE5MCIsIjAiLCIyLjY1OTg0MTkxRSsyOTMxNDQ5NSIsIjEuMDYxNzE4MTFFLTIwNTIwMTQ2OCIpOworICBtYXRodGVzdCgyNzksZGVmLCItOTEuMTQzMTExMyIsIjEyMTQ3NTA3LjAiLCIxMjE0NzQxNS45IiwiLTEyMTQ3NTk4LjEiLCItMS4xMDcxNjE1OEUrOSIsIi0wLjAwMDAwNzUwMzAzMDE1IiwiMCIsIi05MS4xNDMxMTEzIiwiLTEuNTI0MTcwMDZFKzIzODA1NzU5Iik7CisgIG1hdGh0ZXN0KDI4MCxkZWYsIi0xMTM2Nzc4LjkxRSs2OTc3ODM4NzgiLCItODAxNTUyNTY5LiIsIi0xLjEzNjc3ODkxRSs2OTc3ODM4ODQiLCItMS4xMzY3Nzg5MUUrNjk3NzgzODg0IiwiOS4xMTE4ODA1NkUrNjk3NzgzODkyIiwiMS40MTgyMjEyOEUrNjk3NzgzODc1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI4MSxkZWYsIjczMTIzNzczLjBFKzQzMzMzNDE0OSIsIjYzLjM1NDg5MzAiLCI3LjMxMjM3NzMwRSs0MzMzMzQxNTYiLCI3LjMxMjM3NzMwRSs0MzMzMzQxNTYiLCI0LjYzMjc0ODgxRSs0MzMzMzQxNTgiLCIxLjE1NDE5Mjk4RSs0MzMzMzQxNTUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjgyLGRlZiwiLTk3NjU0ODQuOCIsIjc5NzkuOTA4MDJFLTIzNDAyOTcxNSIsIi05NzY1NDg0LjgwIiwiLTk3NjU0ODQuODAiLCItNy43OTI3NjcwNUUtMjM0MDI5NzA1IiwiLTEuMjIzNzU5MDdFKzIzNDAyOTcxOCIsIiIsIiIsIjguMjcwODU2MTRFKzU1Iik7CisgIG1hdGh0ZXN0KDI4MyxkZWYsIi02OTUwMTAyODgiLCItOC4yNjU4MjgyMCIsIi02OTUwMTAyOTYiLCItNjk1MDEwMjgwIiwiNS43NDQ4MzU2NEUrOSIsIjg0MDgyMzUzLjQiLCI4NDA4MjM1MyIsIi0zLjQ1MDI0NTQwIiwiMS44MzY4MzQ5NUUtNzEiKTsKKyAgbWF0aHRlc3QoMjg0LGRlZiwiMjM5NzU2NDMuM0UtMTU1OTU1MjY0IiwiLTUwNTU0Ny42OTJFKzEzNzI1ODk0OCIsIi01LjA1NTQ3NjkyRSsxMzcyNTg5NTMiLCI1LjA1NTQ3NjkyRSsxMzcyNTg5NTMiLCItMS4yMTIwODMxMUUtMTg2OTYzMDMiLCItNC43NDI1MDg3RS0yOTMyMTQyMTEiLCIwIiwiMi4zOTc1NjQzM0UtMTU1OTU1MjU3IiwiMS4yNjIyNTk1MkUrNzc5Nzc2MjgzIik7CisgIG1hdGh0ZXN0KDI4NSxkZWYsIjI4NjIuOTU5MjEiLCItMzI2MDEyNDguNkUtNjA1ODYxMzMzIiwiMjg2Mi45NTkyMSIsIjI4NjIuOTU5MjEiLCItOS4zMzM2MDQ0OUUtNjA1ODYxMzIzIiwiLTguNzgxNzQ3MTJFKzYwNTg2MTMyOCIsIiIsIiIsIjQuMjYxNDIxNzVFLTExIik7CisgIG1hdGh0ZXN0KDI4NixkZWYsIi0xMy4xMzM1MThFKzI0NjA5MDUxNiIsIi04LjcxMjY5OTI1RS05NDUwOTIxMDgiLCItMS4zMTMzNTE4MEUrMjQ2MDkwNTE3IiwiLTEuMzEzMzUxODBFKzI0NjA5MDUxNyIsIjEuMTQ0MjgzOTJFLTY5OTAwMTU5MCIsIiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgyODcsZGVmLCItMzQ2NzEuMjIzMiIsIjgxNzcxMC43NjIiLCI3ODMwMzkuNTM5IiwiLTg1MjM4MS45ODUiLCItMi44MzUxMDMyM0UrMTAiLCItMC4wNDI0MDAzNTA4IiwiMCIsIi0zNDY3MS4yMjMyIiwiLTUuMzA3ODg4MjhFKzM3MTIzODIiKTsKKyAgbWF0aHRlc3QoMjg4LGRlZiwiLTIyNDY0NzY5IiwiNjIuNDM2NjA2MCIsIi0yMjQ2NDcwNi42IiwiLTIyNDY0ODMxLjQiLCItMS40MDI2MjM5M0UrOSIsIi0zNTk4MDEuMjUyIiwiLTM1OTgwMSIsIi0xNS43MjQ1OTQwIiwiNi4yMTA0MjUzNkUrNDU1Iik7CisgIG1hdGh0ZXN0KDI4OSxkZWYsIi05NDU4LjYwODg3RS01NjMwNTE5NjMiLCI1Njc2MDU2LjAxIiwiNTY3NjA1Ni4wMSIsIi01Njc2MDU2LjAxIiwiLTUuMzY4NzU5MzdFLTU2MzA1MTk1MyIsIi0xLjY2NjQwNTEzRS01NjMwNTE5NjYiLCIwIiwiLTkuNDU4NjA4ODdFLTU2MzA1MTk2MCIsIiIpOworICBtYXRodGVzdCgyOTAsZGVmLCItNTkxLjkyNDEyM0UtOTUzMzE4NzQiLCItMTM0LjU5NjE4OCIsIi0xMzQuNTk2MTg4IiwiMTM0LjU5NjE4OCIsIjcuOTY3MDczMDVFLTk1MzMxODcwIiwiNC4zOTc3Nzc3N0UtOTUzMzE4NzQiLCIwIiwiLTUuOTE5MjQxMjNFLTk1MzMxODcyIiwiIik7CisgIG1hdGh0ZXN0KDI5MSxkZWYsIi0xODI1NjYwODUuRSs2ODg3MDY0NiIsIi05NjAzNDU5OTMuIiwiLTEuODI1NjYwODVFKzY4ODcwNjU0IiwiLTEuODI1NjYwODVFKzY4ODcwNjU0IiwiMS43NTMyNjYwOEUrNjg4NzA2NjMiLCIxLjkwMTA0NDlFKzY4ODcwNjQ1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDI5MixkZWYsIjgyMzIuNTQ4OTMiLCItOTk4MjIwMDRFKzg5MTk3OTg0NSIsIi05Ljk4MjIwMDQwRSs4OTE5Nzk4NTIiLCI5Ljk4MjIwMDQwRSs4OTE5Nzk4NTIiLCItOC4yMTc4OTUzMkUrODkxOTc5ODU2IiwiLTguMjQ3MjI4NjdFLTg5MTk3OTg1MCIsIjAiLCI4MjMyLjU0ODkzIiwiNi45OTI4OTE1NkUtNDAiKTsKKyAgbWF0aHRlc3QoMjkzLGRlZiwiLTQzMzYuOTQzMTciLCItODE5MzczLjYwMUUrNTYzMjMzNDMwIiwiLTguMTkzNzM2MDFFKzU2MzIzMzQzNSIsIjguMTkzNzM2MDFFKzU2MzIzMzQzNSIsIjMuNTUzNTc2NzRFKzU2MzIzMzQzOSIsIjUuMjkyOTk4NDFFLTU2MzIzMzQzMyIsIjAiLCItNDMzNi45NDMxNyIsIjcuOTg5Njk0MDVFLTMwIik7CisgIG1hdGh0ZXN0KDI5NCxkZWYsIi0yLjA5MDQ0MzYyRS04NzY1Mjc5MDgiLCItNjUxNTQ2My4zMyIsIi02NTE1NDYzLjMzIiwiNjUxNTQ2My4zMyIsIjEuMzYyMDIwODdFLTg3NjUyNzkwMSIsIjMuMjA4NDM0MzNFLTg3NjUyNzkxNSIsIjAiLCItMi4wOTA0NDM2MkUtODc2NTI3OTA4IiwiIik7CisgIG1hdGh0ZXN0KDI5NSxkZWYsIi0xOTQzNDMuMzQ0IiwiMS45NTkyOTk3NyIsIi0xOTQzNDEuMzg1IiwiLTE5NDM0NS4zMDMiLCItMzgwNzc2Ljg2OSIsIi05OTE5MC4yMDQxIiwiLTk5MTkwIiwiLTAuMzk5ODEzNzAiLCIzLjc3NjkzMzU0RSsxMCIpOworICBtYXRodGVzdCgyOTYsZGVmLCItMzI2MDAyLjkyNyIsIjQyMTUuOTkwMzAiLCItMzIxNzg2LjkzNyIsIi0zMzAyMTguOTE3IiwiLTEuMzc0NDI1MThFKzkiLCItNzcuMzI1MzUwMyIsIi03NyIsIi0xMzcxLjY3MzkwIiwiNS41MTg3NTgyMUUrMjMyNDMiKTsKKyAgbWF0aHRlc3QoMjk3LGRlZiwiLTEyMDM3Ljg1OTBFKzg3NjQyOTA0NCIsIjMxNC44MTgyNyIsIi0xLjIwMzc4NTkwRSs4NzY0MjkwNDgiLCItMS4yMDM3ODU5MEUrODc2NDI5MDQ4IiwiLTMuNzg5NzM3OTRFKzg3NjQyOTA1MCIsIi0zLjgyMzc0ODU0RSs4NzY0MjkwNDUiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMjk4LGRlZiwiMjEwMzYwNDUuNEUtMTYyODA0ODA5IiwiLTkxLjcxNDkyMTkiLCItOTEuNzE0OTIxOSIsIjkxLjcxNDkyMTkiLCItMS45MjkzMTkyNkUtMTYyODA0ODAwIiwiLTIuMjkzNjMzOUUtMTYyODA0ODA0IiwiMCIsIjIuMTAzNjA0NTRFLTE2MjgwNDgwMiIsIiIpOworICBtYXRodGVzdCgyOTksZGVmLCItOTQ3MDE5LjUzNCIsIjk5MTYuMjkyODAiLCItOTM3MTAzLjI0MSIsIi05NTY5MzUuODI3IiwiLTkuMzkwOTIyOTlFKzkiLCItOTUuNTAxMzY4NiIsIi05NSIsIi00OTcxLjcxODAwIiwiMy43NjAyOTAyMkUrNTkyNjEiKTsKKyAgbWF0aHRlc3QoMzAwLGRlZiwiLTU5ODUuODQxMzYiLCItMTIuNDA5MDE4NEUtMTIzNjQyMDQiLCItNTk4NS44NDEzNiIsIi01OTg1Ljg0MTM2IiwiNy40Mjc4NDE1NkUtMTIzNjQyMDAiLCI0LjgyMzc4MzEzRSsxMjM2NDIwNiIsIiIsIiIsIi0wLjAwMDE2NzA2MDg5MyIpOworICBtYXRodGVzdCgzMDEsZGVmLCItODUzNDQzNzkuNCIsIi02NzgzLjA4NjY5RSsyMTg4NDAyMTUiLCItNi43ODMwODY2OUUrMjE4ODQwMjE4IiwiNi43ODMwODY2OUUrMjE4ODQwMjE4IiwiNS43ODg5ODMyNEUrMjE4ODQwMjI2IiwiMS4yNTgxOTM4NUUtMjE4ODQwMjExIiwiMCIsIi04NTM0NDM3OS40IiwiLTMuMDMyMzIzNDdFLTU2Iik7CisgIG1hdGh0ZXN0KDMwMixkZWYsIi05NC4xOTQ3MDcwRS05MzgyNTcxMDMiLCIxNTAwMy4yNDAiLCIxNTAwMy4yNDAwIiwiLTE1MDAzLjI0MDAiLCItMS40MTMyMjU4MEUtOTM4MjU3MDk3IiwiLTYuMjc4MjkxMDJFLTkzODI1NzEwNiIsIjAiLCItOS40MTk0NzA3MEUtOTM4MjU3MTAyIiwiIik7CisgIG1hdGh0ZXN0KDMwMyxkZWYsIi00ODQ2MjMzLjYiLCItODI4OTc2OS43NiIsIi0xMzEzNjAwMy40IiwiMzQ0MzUzNi4xNiIsIjQuMDE3NDE2MDdFKzEzIiwiMC41ODQ2MDQxMjUiLCIwIiwiLTQ4NDYyMzMuNiIsIjQuMjUwNzc1MjRFLTU1NDIwNDY1Iik7CisgIG1hdGh0ZXN0KDMwNCxkZWYsIjY3LjkxNDcxOTgiLCItMTA4MzczNjQ1LkUrMjkxNzE1NDE1IiwiLTEuMDgzNzM2NDVFKzI5MTcxNTQyMyIsIjEuMDgzNzM2NDVFKzI5MTcxNTQyMyIsIi03LjM2MDE2NTczRSsyOTE3MTU0MjQiLCItNi4yNjY3MTkxNkUtMjkxNzE1NDIyIiwiMCIsIjY3LjkxNDcxOTgiLCIwLjAxNDcyNDM0ODUiKTsKKyAgbWF0aHRlc3QoMzA1LGRlZiwiMTk1OC43Nzk5NCIsIjUuNTcyODUxMzdFKzY5MDEzNzgyNiIsIjUuNTcyODUxMzdFKzY5MDEzNzgyNiIsIi01LjU3Mjg1MTM3RSs2OTAxMzc4MjYiLCIxLjA5MTU5ODk1RSs2OTAxMzc4MzAiLCIzLjUxNDg2MTI2RS02OTAxMzc4MjQiLCIwIiwiMTk1OC43Nzk5NCIsIjUuNjQ4MjQ5NjhFKzE5Iik7CisgIG1hdGh0ZXN0KDMwNixkZWYsIjIyNzgwMzE0LjMiLCI4ODA1Mjc5LjgzIiwiMzE1ODU1OTQuMSIsIjEzOTc1MDM0LjUiLCIyLjAwNTg3MDQyRSsxNCIsIjIuNTg3MTE5ODYiLCIyIiwiNTE2OTc1NC42NCIsIjIuMzkxMzIxNjlFKzY0Nzg1MzczIik7CisgIG1hdGh0ZXN0KDMwNyxkZWYsIjU5Njc0NS4xODQiLCIxOTc2MDI0MjMuIiwiMTk4MTk5MTY4IiwiLTE5NzAwNTY3OCIsIjEuMTc5MTgyOTRFKzE0IiwiMC4wMDMwMTk5Mjg0OCIsIjAiLCI1OTY3NDUuMTg0IiwiIik7CisgIG1hdGh0ZXN0KDMwOCxkZWYsIjE3MS4zNDA0OTciLCItNDgwMzQ5LjkyNCIsIi00ODAxNzguNTg0IiwiNDgwNTIxLjI2NCIsIi04MjMwMzM5NC43IiwiLTAuMDAwMzU2Njk5MzMyIiwiMCIsIjE3MS4zNDA0OTciLCIyLjE3OTE0MTAyRS0xMDczMDM1Iik7CisgIG1hdGh0ZXN0KDMwOSxkZWYsIjgyNC42NTU1NSIsIi0zNzkyODcuNTMwIiwiLTM3ODQ2Mi44NzUiLCIzODAxMTIuMTg2IiwiLTMxMjc4MTU2NyIsIi0wLjAwMjE3NDIyMjY4IiwiMCIsIjgyNC42NTU1NSIsIjYuMzU4MjkyNTZFLTExMDYxMDgiKTsKKyAgbWF0aHRlc3QoMzEwLGRlZiwiMTkuMzE2NDAzMSIsIi05MjA3NjQ0LjI0RSs5ODgxMTUwNjkiLCItOS4yMDc2NDQyNEUrOTg4MTE1MDc1IiwiOS4yMDc2NDQyNEUrOTg4MTE1MDc1IiwiLTEuNzc4NTg1NjhFKzk4ODExNTA3NyIsIi0yLjA5Nzg2NTkyRS05ODgxMTUwNzUiLCIwIiwiMTkuMzE2NDAzMSIsIjIuNjcwOTM3MTFFLTEyIik7CisgIG1hdGh0ZXN0KDMxMSxkZWYsIi0zMTIzLjc3NjQ2RSsxNzc4MTQyNjUiLCI5NzMyODQ0MzUuRSszODMyNTYxMTIiLCI5LjczMjg0NDM1RSszODMyNTYxMjAiLCItOS43MzI4NDQzNUUrMzgzMjU2MTIwIiwiLTMuMDQwMzIzMDFFKzU2MTA3MDM4OSIsIi0zLjIwOTUyMDYyRS0yMDU0NDE4NTMiLCIwIiwiLTMuMTIzNzc2NDZFKzE3NzgxNDI2OCIsIiIpOworICBtYXRodGVzdCgzMTIsZGVmLCItODUwLjEyMzkxNUUrNjYyOTU1MzA5IiwiNjc3NDg0OS44MUUtODQ2NTc2ODY1IiwiLTguNTAxMjM5MTVFKzY2Mjk1NTMxMSIsIi04LjUwMTIzOTE1RSs2NjI5NTUzMTEiLCItNS43NTk0NjE4NEUtMTgzNjIxNTQ3IiwiIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDMxMyxkZWYsIi0yMzM0OS43NzI0IiwiMjkyMS4zNTM1NSIsIi0yMDQyOC40MTg5IiwiLTI2MjcxLjEyNjAiLCItNjgyMTI5NDAuNSIsIi03Ljk5Mjc5MjM4IiwiLTciLCItMjkwMC4yOTc1NSIsIi01LjY3MDU1NDZFKzEyNzU5Iik7CisgIG1hdGh0ZXN0KDMxNCxkZWYsIjE4ODg2NjUzLjMiLCI1Njg3MDc0NzYuIiwiNTg3NTk0MTI5IiwiLTU0OTgyMDgyMyIsIjEuMDc0MDk4MDlFKzE2IiwiMC4wMzMyMDk3ODU1IiwiMCIsIjE4ODg2NjUzLjMiLCIiKTsKKyAgbWF0aHRlc3QoMzE1LGRlZiwiLTkwNTUyODE4LjAiLCItNTQyLjAzNTYzRS05ODY2MDY4NzgiLCItOTA1NTI4MTguMCIsIi05MDU1MjgxOC4wIiwiNC45MDgyODUzOEUtOTg2NjA2ODY4IiwiMS42NzA2MDYzOEUrOTg2NjA2ODgzIiwiIiwiIiwiLTEuNjQyNDQyNDFFLTQwIik7CisgIG1hdGh0ZXN0KDMxNixkZWYsIjQxNTAxMTI2LjFFKzc5MTgzODc2NSIsIi02OS42NjUxNjc1RSsyMDQyNjgzNDgiLCI0LjE1MDExMjYxRSs3OTE4Mzg3NzIiLCI0LjE1MDExMjYxRSs3OTE4Mzg3NzIiLCItMi44OTExODI5MEUrOTk2MTA3MTIyIiwiLTUuOTU3MjI3NjNFKzU4NzU3MDQyMiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzMTcsZGVmLCI3Njc4MzE5My4zRS0yNzE0ODgxNTQiLCIzNzY1LjAxODI5RS01MjAzNDYwMDMiLCI3LjY3ODMxOTMzRS0yNzE0ODgxNDciLCI3LjY3ODMxOTMzRS0yNzE0ODgxNDciLCIyLjg5MDkwMTI3RS03OTE4MzQxNDYiLCIyLjAzOTM4NDM0RSsyNDg4NTc4NTMiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzE4LGRlZiwiNDE5Mi45OTI4IiwiOTg3ODIyMDA3RS0xNDY1NjA5ODkiLCI0MTkyLjk5MjgwIiwiNDE5Mi45OTI4MCIsIjQuMTQxOTMwNTZFLTE0NjU2MDk3NyIsIjQuMjQ0Njg0NTRFKzE0NjU2MDk4MyIsIiIsIiIsIjEuNjc5NzM2NTNFKzM2Iik7CisgIG1hdGh0ZXN0KDMxOSxkZWYsIi04OTE4NDUuNjI5IiwiNDgyNzc5NTUuIiwiNDczODYxMDkuNCIsIi00OTE2OTgwMC42IiwiLTQuMzA1NjQ4MzFFKzEzIiwiLTAuMDE4NDczMTQ0MyIsIjAiLCItODkxODQ1LjYyOSIsIi02LjMyOTY0MTQ3RSsyODcyNjc4MTciKTsKKyAgbWF0aHRlc3QoMzIwLGRlZiwiMzM0LjkwMTE3NiIsIi03NjA5Mjk2LjU1RSs0NDczNDAyMjgiLCItNy42MDkyOTY1NUUrNDQ3MzQwMjM0IiwiNy42MDkyOTY1NUUrNDQ3MzQwMjM0IiwiLTIuNTQ4MzYyMzZFKzQ0NzM0MDIzNyIsIi00LjQwMTIxMDczRS00NDczNDAyMzMiLCIwIiwiMzM0LjkwMTE3NiIsIjYuMzE5MjY1NzVFLTIxIik7CisgIG1hdGh0ZXN0KDMyMSxkZWYsIjQuNDk4Njg2MzYiLCItMzQxODgwODk2RS00NDcyNTE4NzMiLCI0LjQ5ODY4NjM2IiwiNC40OTg2ODYzNiIsIi0xLjUzODAxNDkyRS00NDcyNTE4NjQiLCItMS4zMTU4NjM2M0UrNDQ3MjUxODY1IiwiIiwiIiwiMC4wMTA5ODM1NTMiKTsKKyAgbWF0aHRlc3QoMzIyLGRlZiwiODA3NjE1LjU4IiwiLTMxNDI4NjQ4MCIsIi0zMTM0Nzg4NjUiLCIzMTUwOTQwOTYiLCItMi41MzgyMjY1OEUrMTQiLCItMC4wMDI1Njk2Nzk2OCIsIjAiLCI4MDc2MTUuNTgiLCIiKTsKKyAgbWF0aHRlc3QoMzIzLGRlZiwiLTM3Ljc0NTc5NTQiLCI1MzI3Ny44MTI5RS04NTkyMjU1MzgiLCItMzcuNzQ1Nzk1NCIsIi0zNy43NDU3OTU0IiwiLTIuMDExMDEzNDNFLTg1OTIyNTUzMiIsIi03LjA4NDcxMTg4RSs4NTkyMjU1MzQiLCIiLCIiLCItNzY2MjAxMzQuMSIpOworICBtYXRodGVzdCgzMjQsZGVmLCItMjg2NzEwODEuIiwiOTguODgxOTYyMyIsIi0yODY3MDk4Mi4xIiwiLTI4NjcxMTc5LjkiLCItMi44MzUwNTI3NUUrOSIsIi0yODk5NTIuNTg5IiwiLTI4OTk1MiIsIi01OC4yNjcxOTA0IiwiLTEuOTM2MjU1NjZFKzczOCIpOworICBtYXRodGVzdCgzMjUsZGVmLCItODk3NTIuMjEwNkUtNDY5NDk2ODk2IiwiOTkuOTg3OTk2MSIsIjk5Ljk4Nzk5NjEiLCItOTkuOTg3OTk2MSIsIi04Ljk3NDE0MzY4RS00Njk0OTY4OTAiLCItOC45NzYyOTg1N0UtNDY5NDk2ODk0IiwiMCIsIi04Ljk3NTIyMTA2RS00Njk0OTY4OTIiLCIiKTsKKyAgbWF0aHRlc3QoMzI2LGRlZiwiLTQ5Nzk4MzU2N0UtMTM1MzgwNTIiLCIzOS40NTc4NzQyIiwiMzkuNDU3ODc0MiIsIi0zOS40NTc4NzQyIiwiLTEuOTY0OTM3MjlFLTEzNTM4MDQyIiwiLTEuMjYyMDYzODVFLTEzNTM4MDQ1IiwiMCIsIi00Ljk3OTgzNTY3RS0xMzUzODA0NCIsIi0xLjU1Mzc2NTQzRS01Mjc5ODM2ODkiKTsKKyAgbWF0aHRlc3QoMzI3LGRlZiwiODQ1NzM5MjIxRS02NTQyMDI1NjUiLCItMzMzMTMuMTU1MSIsIi0zMzMxMy4xNTUxIiwiMzMzMTMuMTU1MSIsIi0yLjgxNzQyNDE4RS02NTQyMDI1NTIiLCItMi41Mzg3NTQ0OUUtNjU0MjAyNTYxIiwiMCIsIjguNDU3MzkyMjFFLTY1NDIwMjU1NyIsIiIpOworICBtYXRodGVzdCgzMjgsZGVmLCI3NDIuMzMyMDY3RSs1Mzc4Mjc4NDMiLCItNDUzMi43MDAyM0UtODU1Mzg3NDE0IiwiNy40MjMzMjA2N0UrNTM3ODI3ODQ1IiwiNy40MjMzMjA2N0UrNTM3ODI3ODQ1IiwiLTMuMzY0NzY4NzNFLTMxNzU1OTU2NSIsIiIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzMjksZGVmLCItODkzLjQ4NjU0IiwiNjcwMzg5OTYwIiwiNjcwMzg5MDY3IiwiLTY3MDM5MDg1MyIsIi01Ljk4OTg0NDA2RSsxMSIsIi0wLjAwMDAwMTMzMjc4NjI4IiwiMCIsIi04OTMuNDg2NTQiLCIiKTsKKyAgbWF0aHRlc3QoMzMwLGRlZiwiMS4zNzY5NzE2MiIsIi05MTUuNzM3NDc0RS0zNTE1Nzg3MjQiLCIxLjM3Njk3MTYyIiwiMS4zNzY5NzE2MiIsIi0xLjI2MDk0NDUxRS0zNTE1Nzg3MjEiLCItMS41MDM2NzUwOEUrMzUxNTc4NzIxIiwiIiwiIiwiMC4wNTYxOTIwNzg0Iik7CisgIG1hdGh0ZXN0KDMzMSxkZWYsIi02NS4yODM5ODA4RSs1NTAyODg0MDMiLCItMTIxMzg5LjMwNiIsIi02LjUyODM5ODA4RSs1NTAyODg0MDQiLCItNi41MjgzOTgwOEUrNTUwMjg4NDA0IiwiNy45MjQ3NzcxMkUrNTUwMjg4NDA5IiwiNS4zNzgwNjY4OUUrNTUwMjg4Mzk5IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDMzMixkZWYsIi0zMDM0NjYwMy5FKzM0NjA2NzM5MCIsIjc5MjY2MS41NDQiLCItMy4wMzQ2NjAzMEUrMzQ2MDY3Mzk3IiwiLTMuMDM0NjYwMzBFKzM0NjA2NzM5NyIsIi0yLjQwNTQ1ODUyRSszNDYwNjc0MDMiLCItMy44Mjg0NDM5NkUrMzQ2MDY3MzkxIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDMzMyxkZWYsIi02MTE3MC43MDY1IiwiLTQ1MzczMTEzMS4iLCItNDUzNzkyMzAyIiwiNDUzNjY5OTYwIiwiMi43NzU1MDUzOEUrMTMiLCIwLjAwMDEzNDgxNzA4MSIsIjAiLCItNjExNzAuNzA2NSIsIiIpOworICBtYXRodGVzdCgzMzQsZGVmLCI2NTY5LjUxMTMzIiwiMTMuODcwNjM1MUUrMzk5NDM0OTE0IiwiMS4zODcwNjM1MUUrMzk5NDM0OTE1IiwiLTEuMzg3MDYzNTFFKzM5OTQzNDkxNSIsIjkuMTEyMzI5NDRFKzM5OTQzNDkxOCIsIjQuNzM2MjcyOTFFLTM5OTQzNDkxMiIsIjAiLCI2NTY5LjUxMTMzIiwiNjU2OS41MTEzMyIpOworICBtYXRodGVzdCgzMzUsZGVmLCIzMDA3MDM5MjUuIiwiLTMxNTY3MzYuOCIsIjI5NzU0NzE4OCIsIjMwMzg2MDY2MiIsIi05LjQ5MjQzMTQ2RSsxNCIsIi05NS4yNTc4Mzg3IiwiLTk1IiwiODEzOTI5LjAiLCI0LjE4NjA5MTE0RS0yNjc2MzI1NiIpOworICBtYXRodGVzdCgzMzYsZGVmLCIxOTIxMzgyMTZFKzM1MzAxMTU5MiIsIi00NzMuMDgwNjMzIiwiMS45MjEzODIxNkUrMzUzMDExNjAwIiwiMS45MjEzODIxNkUrMzUzMDExNjAwIiwiLTkuMDg5Njg2ODhFKzM1MzAxMTYwMiIsIi00LjA2MTQyNjM3RSszNTMwMTE1OTciLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzM3LGRlZiwiODYwNy42NDc5NCIsIi0zNDc0MC4zMzY3IiwiLTI2MTMyLjY4ODgiLCI0MzM0Ny45ODQ2IiwiLTI5OTAzMjU4OCIsIi0wLjI0Nzc3MDk5OSIsIjAiLCI4NjA3LjY0Nzk0IiwiMS4yOTYwNDUxOUUtMTM2Njk4Iik7CisgIG1hdGh0ZXN0KDMzOCxkZWYsIi02NzkxMy44MjQxIiwiLTkzODE1LjQyMjkiLCItMTYxNzI5LjI0NyIsIjI1OTAxLjU5ODgiLCI2LjM3MTM2NDEzRSs5IiwiMC43MjM5MDg5NDgiLCIwIiwiLTY3OTEzLjgyNDEiLCItNi45NjM1NTIwM0UtNDUzMzExIik7CisgIG1hdGh0ZXN0KDMzOSxkZWYsIjM0LjU1NTk0NTUiLCItOTk4Nzk5Mzk4LiIsIi05OTg3OTkzNjQiLCI5OTg3OTk0MzMiLCItMy40NTE0NDU3NkUrMTAiLCItMy40NTk3NDgzM0UtOCIsIjAiLCIzNC41NTU5NDU1IiwiIik7CisgIG1hdGh0ZXN0KDM0MCxkZWYsIjM4Nzk5NS4zMjgiLCI5OTAxOTk1NDMuRS0xMjQ2MjM2MDciLCIzODc5OTUuMzI4IiwiMzg3OTk1LjMyOCIsIjMuODQxOTI3OTZFLTEyNDYyMzU5MyIsIjMuOTE4MzU0OTVFKzEyNDYyMzYwMyIsIiIsIiIsIjcuNzMxNTIxMzhFKzU1Iik7CisgIG1hdGh0ZXN0KDM0MSxkZWYsIi00NzEuMDkxNjZFLTgzNTIxOTE5IiwiLTQ0MTIyMjM2OCIsIi00NDEyMjIzNjgiLCI0NDEyMjIzNjgiLCIyLjA3ODU2MTc4RS04MzUyMTkwOCIsIjEuMDY3Njk2NjlFLTgzNTIxOTI1IiwiMCIsIi00LjcxMDkxNjZFLTgzNTIxOTE3IiwiIik7CisgIG1hdGh0ZXN0KDM0MixkZWYsIi05NzgzNC4zODU4IiwiNzA3Nzk3ODkuOEUrNTAyMTY2MDY1IiwiNy4wNzc5Nzg5OEUrNTAyMTY2MDcyIiwiLTcuMDc3OTc4OThFKzUwMjE2NjA3MiIsIi02LjkyNDY5NzI2RSs1MDIxNjYwNzciLCItMS4zODIyMzYxN0UtNTAyMTY2MDY4IiwiMCIsIi05NzgzNC4zODU4IiwiLTguNTc5MDc4ODZFKzM0Iik7CisgIG1hdGh0ZXN0KDM0MyxkZWYsIjc3MzIzMzEuMDYiLCItOTUyNzE5LjQ4MkUrMTE1MzI1NTA1IiwiLTkuNTI3MTk0ODJFKzExNTMyNTUxMCIsIjkuNTI3MTk0ODJFKzExNTMyNTUxMCIsIi03LjM2Njc0MjQ0RSsxMTUzMjU1MTciLCItOC4xMTYwNjI3MUUtMTE1MzI1NTA1IiwiMCIsIjc3MzIzMzEuMDYiLCIxLjMwODg2NzI0RS02OSIpOworICBtYXRodGVzdCgzNDQsZGVmLCIyMy4yNzQ1NTQ3IiwiMi4yMzE5NDI0NUUtMjIxMDYyNTkyIiwiMjMuMjc0NTU0NyIsIjIzLjI3NDU1NDciLCI1LjE5NDc0NjY2RS0yMjEwNjI1OTEiLCIxLjA0Mjc5MzY4RSsyMjEwNjI1OTMiLCIiLCIiLCI1NDEuNzA0ODk2Iik7CisgIG1hdGh0ZXN0KDM0NSxkZWYsIjY3MS4wODMzNjNFLTIxODMyNDIwNSIsIi03ODcxNTAwMzEiLCItNzg3MTUwMDMxIiwiNzg3MTUwMDMxIiwiLTUuMjgyNDMyOTBFLTIxODMyNDE5NCIsIi04LjUyNTQ4MjI3RS0yMTgzMjQyMTIiLCIwIiwiNi43MTA4MzM2M0UtMjE4MzI0MjAzIiwiIik7CisgIG1hdGh0ZXN0KDM0NixkZWYsIjM2NTE2Ny44MCIsIi04MDI2My42NTE2IiwiMjg0OTA0LjE0OCIsIjQ0NTQzMS40NTIiLCItMi45MzA5NzAxMUUrMTAiLCItNC41NDk2MDM2MiIsIi00IiwiNDQxMTMuMTkzNiIsIjEuMjcwNTIyMjdFLTQ0NjQ2OCIpOworICBtYXRodGVzdCgzNDcsZGVmLCItMS40MzI5NzYwNEUtNjUxMjk3ODAiLCI1Ni41OTg3MzNFLTEzNTU4MTk0MiIsIi0xLjQzMjk3NjA0RS02NTEyOTc4MCIsIi0xLjQzMjk3NjA0RS02NTEyOTc4MCIsIi04LjExMDQ2MjgzRS0yMDA3MTE3MjEiLCItMi41MzE4MTY0NkUrNzA0NTIxNjAiLCIiLCIiLCI4LjY1ODMxODgxRS0zOTA3Nzg2ODAiKTsKKyAgbWF0aHRlc3QoMzQ4LGRlZiwiNDE2OTk4ODU5LiIsIjI2MC4yMjAzMjNFLTM0OTI4NTU5MyIsIjQxNjk5ODg1OSIsIjQxNjk5ODg1OSIsIjEuMDg1MTE1NzhFLTM0OTI4NTU4MiIsIjEuNjAyNDgzODNFKzM0OTI4NTU5OSIsIiIsIiIsIjcuMjUxMTExNzhFKzI1Iik7CisgIG1hdGh0ZXN0KDM0OSxkZWYsIjcyNjcuMTc2MTFFKzg2MjYzMDYwNyIsIjQwMjEuNTY4NjEiLCI3LjI2NzE3NjExRSs4NjI2MzA2MTAiLCI3LjI2NzE3NjExRSs4NjI2MzA2MTAiLCIyLjkyMjU0NDczRSs4NjI2MzA2MTQiLCIxLjgwNzA1MDE0RSs4NjI2MzA2MDciLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzUwLGRlZiwiMTIuMjE0MjQzNEUrNTkzOTA4NzQwIiwiNS4yNzIzNjU3MUUtMzk2MDUwNzQ4IiwiMS4yMjE0MjQzNEUrNTkzOTA4NzQxIiwiMS4yMjE0MjQzNEUrNTkzOTA4NzQxIiwiNi40Mzk3OTU4MUUrMTk3ODU3OTkzIiwiMi4zMTY2NTMzRSs5ODk5NTk0ODgiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzUxLGRlZiwiLTI4LjU5MTkzMiIsIi0xLjc5MTUzMjM4RS04MTcwNjQ1NzYiLCItMjguNTkxOTMyMCIsIi0yOC41OTE5MzIwIiwiNS4xMjIzMzcyMEUtODE3MDY0NTc1IiwiMS41OTU5NDgzOEUrODE3MDY0NTc3IiwiIiwiIiwiMC4wMDEyMjMyNDM3MiIpOworICBtYXRodGVzdCgzNTIsZGVmLCI1OTAuODQ5NjY2IiwiNzUzNDI0LjMwNkUrMjc3MjMyNzQ0IiwiNy41MzQyNDMwNkUrMjc3MjMyNzQ5IiwiLTcuNTM0MjQzMDZFKzI3NzIzMjc0OSIsIjQuNDUxNjA1MDBFKzI3NzIzMjc1MiIsIjcuODQyMTkwMTRFLTI3NzIzMjc0OCIsIjAiLCI1OTAuODQ5NjY2IiwiMS40ODUzMDYwN0UrMjIiKTsKKyAgbWF0aHRlc3QoMzUzLGRlZiwiMS43MjcwNjI4IiwiLTEzMjUwMjYuNjciLCItMTMyNTAyNC45NCIsIjEzMjUwMjguNDAiLCItMjI4ODQwNC4yNyIsIi0wLjAwMDAwMTMwMzQxNzM5IiwiMCIsIjEuNzI3MDYyOCIsIjIuMDkyNjAwMzZFLTMxNDQ0MCIpOworICBtYXRodGVzdCgzNTQsZGVmLCIzMzQwMjExOC4iLCItNTUzNC44Mzc0NSIsIjMzMzk2NTgzLjIiLCIzMzQwNzY1Mi44IiwiLTEuODQ4NzUyOTRFKzExIiwiLTYwMzQuODg2OSIsIi02MDM0IiwiNDkwOC44MjY3MCIsIjguMTQ0NzM5MTNFLTQxNjQ1Iik7CisgIG1hdGh0ZXN0KDM1NSxkZWYsIi00Mzk4NDIuNTA2IiwiLTc3NTExMC44MDciLCItMTIxNDk1My4zMSIsIjMzNTI2OC4zMDEiLCIzLjQwOTI2NjgwRSsxMSIsIjAuNTY3NDU3NTg0IiwiMCIsIi00Mzk4NDIuNTA2IiwiLTEuODQ2Nzg0NzJFLTQzNzQxODIiKTsKKyAgbWF0aHRlc3QoMzU2LGRlZiwiLTI0ODY2NC43NzkiLCItNDQwODkwLjQ0RSs2NjY0MzM5NDQiLCItNC40MDg5MDQ0MEUrNjY2NDMzOTQ5IiwiNC40MDg5MDQ0MEUrNjY2NDMzOTQ5IiwiMS4wOTYzMzkyNEUrNjY2NDMzOTU1IiwiNS42NDAwNTgzMUUtNjY2NDMzOTQ1IiwiMCIsIi0yNDg2NjQuNzc5IiwiMi42MTU0Mjg3N0UtMjIiKTsKKyAgbWF0aHRlc3QoMzU3LGRlZiwiLTE0MTYxLjkxNDIiLCI4MzA2LjQ5NDkzIiwiLTU4NTUuNDE5MyIsIi0yMjQ2OC40MDkxIiwiLTExNzYzNTg2OSIsIi0xLjcwNDkyMDU5IiwiLTEiLCItNTg1NS40MTkyNyIsIjEuNjU1NzMzNzJFKzM0NDc5Iik7CisgIG1hdGh0ZXN0KDM1OCxkZWYsIi02NDE3MjI3LjEzIiwiMTY2NzkuODg0MiIsIi02NDAwNTQ3LjI1IiwiLTY0MzM5MDcuMDEiLCItMS4wNzAzODYwNUUrMTEiLCItMzg0LjcyODUxOCIsIi0zODQiLCItMTIxNTEuNTk3MiIsIjMuNTg3Njc5NzhFKzExMzU0NiIpOworICBtYXRodGVzdCgzNTksZGVmLCI1MTQ4MjUwMjQuIiwiLTI1LjA0NDYzNDVFLTEwMzgwOTQ1NyIsIjUxNDgyNTAyNCIsIjUxNDgyNTAyNCIsIi0xLjI4OTM2MDQ2RS0xMDM4MDk0NDciLCItMi4wNTU2MzAwMkUrMTAzODA5NDY0IiwiIiwiIiwiNy4zMjg2MDA2MkUtMjciKTsKKyAgbWF0aHRlc3QoMzYwLGRlZiwiNTI1OTQ4MTk2IiwiMjE5NDUwMzkwIiwiNzQ1Mzk4NTg2IiwiMzA2NDk3ODA2IiwiMS4xNTQxOTUzN0UrMTciLCIyLjM5NjY2MTAyIiwiMiIsIjg3MDQ3NDE2IiwiIik7CisgIG1hdGh0ZXN0KDM2MSxkZWYsIi02Mzg1MDkuMTgxIiwiNDU1ODAxODkuMEUrMjY5MjEyNTU5IiwiNC41NTgwMTg5MEUrMjY5MjEyNTY2IiwiLTQuNTU4MDE4OTBFKzI2OTIxMjU2NiIsIi0yLjkxMDMzNjkxRSsyNjkyMTI1NzIiLCItMS40MDA4NDgwM0UtMjY5MjEyNTYxIiwiMCIsIi02Mzg1MDkuMTgxIiwiLTEuMDYxMjk0MDVFKzI5Iik7CisgIG1hdGh0ZXN0KDM2MixkZWYsIjMzMDU5MDQyMiIsIjc0LjM1OTkyOEUrNTM1Mzc3OTY1IiwiNy40MzU5OTI4MEUrNTM1Mzc3OTY2IiwiLTcuNDM1OTkyODBFKzUzNTM3Nzk2NiIsIjIuNDU4MjY4MDBFKzUzNTM3Nzk3NSIsIjQuNDQ1ODE0MThFLTUzNTM3Nzk1OSIsIjAiLCIzMzA1OTA0MjIiLCI0LjMxNTUwNzQyRSs1OSIpOworICBtYXRodGVzdCgzNjMsZGVmLCItMy40ODU5Mzg3MUUtOTQwNTc5OTA0IiwiLTIwMjY1Ljk2NDBFLTMyMjk4ODk4NyIsIi0yLjAyNjU5NjQwRS0zMjI5ODg5ODMiLCIyLjAyNjU5NjQwRS0zMjI5ODg5ODMiLCIiLCIxLjcyMDA5NTE5RS02MTc1OTA5MjEiLCIwIiwiLTMuNDg1OTM4NzFFLTk0MDU3OTkwNCIsIiIpOworICBtYXRodGVzdCgzNjQsZGVmLCItMzI4MTAzNDgwLiIsIi03MjEuOTQ5MzcxRS05MjM5Mzg2NjUiLCItMzI4MTAzNDgwIiwiLTMyODEwMzQ4MCIsIjIuMzY4NzQxMDFFLTkyMzkzODY1NCIsIjQuNTQ0Njg4MjJFKzkyMzkzODY3MCIsIiIsIiIsIi0yLjQ0MzAwMzhFLTYwIik7CisgIG1hdGh0ZXN0KDM2NSxkZWYsIi0xODU3LjAxNDQ4IiwiMTkwODE1NzguMSIsIjE5MDc5NzIxLjEiLCItMTkwODM0MzUuMSIsIi0zLjU0MzQ3NjY4RSsxMCIsIi0wLjAwMDA5NzMxOTc1MzciLCIwIiwiLTE4NTcuMDE0NDgiLCI4LjQ0Mzk3MDg3RSs2MjM3NDE1MyIpOworICBtYXRodGVzdCgzNjYsZGVmLCIzNDcuMjg3MjBFKzE0NTkzMDc3MSIsIi02MjgyMS45OTA2RS02NzY1NjQxMDYiLCIzLjQ3Mjg3MjAwRSsxNDU5MzA3NzMiLCIzLjQ3Mjg3MjAwRSsxNDU5MzA3NzMiLCItMi4xODE3MjczMkUtNTMwNjMzMzI4IiwiLTUuNTI4MTE1MThFKzgyMjQ5NDg3NCIsIiIsIiIsIjUuNjk5OTAxMzVFLTg3NTU4NDY0MiIpOworICBtYXRodGVzdCgzNjcsZGVmLCItNjQzLjIxMTM5OUUrNDQxODA3MDAzIiwiLTUwNzMzNDE5LjIiLCItNi40MzIxMTM5OUUrNDQxODA3MDA1IiwiLTYuNDMyMTEzOTlFKzQ0MTgwNzAwNSIsIjMuMjYzMjMxMzVFKzQ0MTgwNzAxMyIsIjEuMjY3ODI1ODRFKzQ0MTgwNjk5OCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzNjgsZGVmLCItNTM5OTE2NjEuNEUtODQzMzM5NTU0IiwiMjA3MTguNzM0NiIsIjIwNzE4LjczNDYiLCItMjA3MTguNzM0NiIsIi0xLjExODYzODkwRS04NDMzMzk1NDIiLCItMi42MDU5MzQzMUUtODQzMzM5NTUxIiwiMCIsIi01LjM5OTE2NjE0RS04NDMzMzk1NDciLCIiKTsKKyAgbWF0aHRlc3QoMzY5LGRlZiwiLTkwMDE4MTQyNCIsIi0xMDU3NjM5ODIuIiwiLTEuMDA1OTQ1NDFFKzkiLCItNzk0NDE3NDQyIiwiOS41MjA2NzcxOUUrMTYiLCI4LjUxMTIyODU2IiwiOCIsIi01NDA2OTU2OCIsIjEuMzI2MjcwNjFFLTk0NzA0NTYwMiIpOworICBtYXRodGVzdCgzNzAsZGVmLCI5NDIxOC43NDYyRSs1NjMyMzM5NTEiLCIxOTI2Mi42MzgyRSs3NjUyNjM4OTAiLCIxLjkyNjI2MzgyRSs3NjUyNjM4OTQiLCItMS45MjYyNjM4MkUrNzY1MjYzODk0IiwiIiwiNC44OTEyNjkwNkUtMjAyMDI5OTM5IiwiMCIsIjkuNDIxODc0NjJFKzU2MzIzMzk1NSIsIiIpOworICBtYXRodGVzdCgzNzEsZGVmLCIyODU0OS4yNzFFKzkyMTMzMTgyOCIsIi0yMTUwNTkwLjQwIiwiMi44NTQ5MjcxMEUrOTIxMzMxODMyIiwiMi44NTQ5MjcxMEUrOTIxMzMxODMyIiwiLTYuMTM5Nzc4ODFFKzkyMTMzMTgzOCIsIi0xLjMyNzUwODUzRSs5MjEzMzE4MjYiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzcyLGRlZiwiODEwLjcwODBFKzc3OTYyNTc2MyIsIjU5NTcuOTQwNDQiLCI4LjEwNzA4MDAwRSs3Nzk2MjU3NjUiLCI4LjEwNzA4MDAwRSs3Nzk2MjU3NjUiLCI0LjgzMDE0OTk4RSs3Nzk2MjU3NjkiLCIxLjM2MDcxODU0RSs3Nzk2MjU3NjIiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzczLGRlZiwiLTIzLjczNTc1NDlFKzc3MTE2OTA4IiwiMzUxLjEwMDY0OUUrODY0MzQ4MDIyIiwiMy41MTEwMDY0OUUrODY0MzQ4MDI0IiwiLTMuNTExMDA2NDlFKzg2NDM0ODAyNCIsIi04LjMzMzYzODk1RSs5NDE0NjQ5MzMiLCItNi43NjAzODQ4RS03ODcyMzExMTYiLCIwIiwiLTIuMzczNTc1NDlFKzc3MTE2OTA5IiwiMy4xNzQwMzg1M0UrMzA4NDY3NjM3Iik7CisgIG1hdGh0ZXN0KDM3NCxkZWYsIjQwMjE2MTAyLjJFKzI5MjcyNDU0NCIsIjY2MS4wMjU5NjIiLCI0LjAyMTYxMDIyRSsyOTI3MjQ1NTEiLCI0LjAyMTYxMDIyRSsyOTI3MjQ1NTEiLCIyLjY1ODM4ODc2RSsyOTI3MjQ1NTQiLCI2LjA4Mzg5MTQ4RSsyOTI3MjQ1NDgiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoMzc1LGRlZiwiMjI3ODUwMjQuM0UrNzgzNzE5MTY4IiwiMzk5LjUwNTk4OUUrMTM3NDc4NjY2IiwiMi4yNzg1MDI0M0UrNzgzNzE5MTc1IiwiMi4yNzg1MDI0M0UrNzgzNzE5MTc1IiwiOS4xMDI3NTM2N0UrOTIxMTk3ODQzIiwiNS43MDMyOTk4MUUrNjQ2MjQwNTA2IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM3NixkZWYsIjUxNS41OTE4MTlFKzgyMTM3MTM2NCIsIi02OTIxMzc5MTQuRS0xNDk0OTg2OTAiLCI1LjE1NTkxODE5RSs4MjEzNzEzNjYiLCI1LjE1NTkxODE5RSs4MjEzNzEzNjYiLCItMy41Njg2MDY0NkUrNjcxODcyNjg1IiwiLTcuNDQ5MjY0MjFFKzk3MDg3MDA0NyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzNzcsZGVmLCItNTM2ODgzMDcyRSs0Nzc5MTEyNTEiLCI2MjQ5OTYuMzAxIiwiLTUuMzY4ODMwNzJFKzQ3NzkxMTI1OSIsIi01LjM2ODgzMDcyRSs0Nzc5MTEyNTkiLCItMy4zNTU0OTkzNEUrNDc3OTExMjY1IiwiLTguNTkwMTc5OTlFKzQ3NzkxMTI1MyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzNzgsZGVmLCItMzk5NDkyLjkxNEUtMzM0MzY5MTkyIiwiNTIwMjExOS44N0UrNDQyNDQyMjU4IiwiNS4yMDIxMTk4N0UrNDQyNDQyMjY0IiwiLTUuMjAyMTE5ODdFKzQ0MjQ0MjI2NCIsIi0yLjA3ODIxMDAzRSsxMDgwNzMwNzgiLCItNy42Nzk0MjUzOUUtNzc2ODExNDUyIiwiMCIsIi0zLjk5NDkyOTE0RS0zMzQzNjkxODciLCIiKTsKKyAgbWF0aHRlc3QoMzc5LGRlZiwiNzYyLjA3MTE4NCIsIjk4NTE2MzEuMzciLCI5ODUyMzkzLjQ0IiwiLTk4NTA4NjkuMzAiLCI3LjUwNzY0NDM4RSs5IiwiMC4wMDAwNzczNTQ4MjEzIiwiMCIsIjc2Mi4wNzExODQiLCI0LjAyMTk4NDM2RSsyODM5MjM1NiIpOworICBtYXRodGVzdCgzODAsZGVmLCI1NjI2LjEyNDcxIiwiNzI5ODk4MTguMyIsIjcyOTk1NDQ0LjQiLCItNzI5ODQxOTIuMiIsIjQuMTA2NDk4MjBFKzExIiwiMC4wMDAwNzcwODA5NTI0IiwiMCIsIjU2MjYuMTI0NzEiLCIxLjc5ODE0NzU3RSsyNzM3MjcwOTgiKTsKKyAgbWF0aHRlc3QoMzgxLGRlZiwiLTQ3MjA3MjYwLjEiLCItMjA3My4zMTUyIiwiLTQ3MjA5MzMzLjQiLCItNDcyMDUxODYuOCIsIjkuNzg3NTUyOTlFKzEwIiwiMjI3NjguOTc0MSIsIjIyNzY4IiwiLTIwMTkuNjI2NCIsIi02LjAyMjM4MzE5RS0xNTkwOSIpOworICBtYXRodGVzdCgzODIsZGVmLCIyMDcuNzQwODYwIiwiLTUxLjAzOTAwOTAiLCIxNTYuNzAxODUxIiwiMjU4Ljc3OTg2OSIsIi0xMDYwMi44ODc2IiwiLTQuMDcwMjM2OTQiLCItNCIsIjMuNTg0ODI0MCIsIjYuNDAyOTc1MTVFLTExOSIpOworICBtYXRodGVzdCgzODMsZGVmLCItNTcyLjgxMjQ2NEUtNzQ1OTM0MDIxIiwiLTE4MjgwNTg3Mi5FKzYwNDUwODY4MSIsIi0xLjgyODA1ODcyRSs2MDQ1MDg2ODkiLCIxLjgyODA1ODcyRSs2MDQ1MDg2ODkiLCIxLjA0NzEzNDgyRS0xNDE0MjUzMjkiLCIiLCIwIiwiLTUuNzI4MTI0NjRFLTc0NTkzNDAxOSIsIiIpOworICBtYXRodGVzdCgzODQsZGVmLCItNjQxODUwNEUrMzUzMTQwNyIsIjg0NTk0MTYuMSIsIi02LjQxODUwNDAwRSszNTMxNDEzIiwiLTYuNDE4NTA0MDBFKzM1MzE0MTMiLCItNS40Mjk2Nzk2MUUrMzUzMTQyMCIsIi03LjU4NzQwNzg0RSszNTMxNDA2IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDM4NSxkZWYsIjI4MDY4OS41MzEiLCItMTI4MjEyNTQzIiwiLTEyNzkzMTg1NCIsIjEyODQ5MzIzMyIsIi0zLjU5ODc5MTg2RSsxMyIsIi0wLjAwMjE4OTI1MTczIiwiMCIsIjI4MDY4OS41MzEiLCIxLjQyMTczODA5RS02OTg1MzA5MzgiKTsKKyAgbWF0aHRlc3QoMzg2LGRlZiwiMTUuODAzNTUxRS03ODM0MjI3OTMiLCIyMzkxMDgwMzhFLTQ4OTE4NjMwOCIsIjIuMzkxMDgwMzhFLTQ4OTE4NjMwMCIsIi0yLjM5MTA4MDM4RS00ODkxODYzMDAiLCIiLCI2LjYwOTM3NjcyRS0yOTQyMzY0OTMiLCIwIiwiMS41ODAzNTUxRS03ODM0MjI3OTIiLCIiKTsKKyAgbWF0aHRlc3QoMzg3LGRlZiwiMjYuNTE1OTIyIiwiLTk0MTgyNDIuOTZFLTEwNTQ4MTYyOCIsIjI2LjUxNTkyMjAiLCIyNi41MTU5MjIwIiwiLTIuNDk3MzMzOTZFLTEwNTQ4MTYyMCIsIi0yLjgxNTM3ODg1RSsxMDU0ODE2MjIiLCIiLCIiLCIxLjU0MzI2MTA4RS0xMyIpOworICBtYXRodGVzdCgzODgsZGVmLCItODguMTA5NDU1NyIsIi01NDAyOTkzNC4xIiwiLTU0MDMwMDIyLjIiLCI1NDAyOTg0Ni4wIiwiNC43NjA1NDgwOUUrOSIsIjAuMDAwMDAxNjMwNzUyNiIsIjAiLCItODguMTA5NDU1NyIsIjUuMDUyODk4MjZFLTEwNTA4OTQzOSIpOworICBtYXRodGVzdCgzODksZGVmLCI2NzcwLjY4NjAyRS00OTg0MjAzOTciLCItNi4xMTI0ODkwOEUtNzI5NjE2OTA4IiwiNi43NzA2ODYwMkUtNDk4NDIwMzk0IiwiNi43NzA2ODYwMkUtNDk4NDIwMzk0IiwiIiwiLTEuMTA3NjgwNjdFKzIzMTE5NjUxNCIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzOTAsZGVmLCItODkyOTczODE4LkUtNzgxOTA0NDQxIiwiNTU1MjAxMjk5LiIsIjU1NTIwMTI5OSIsIi01NTUyMDEyOTkiLCItNC45NTc4MDIyNEUtNzgxOTA0NDI0IiwiLTEuNjA4Mzc4NDdFLTc4MTkwNDQ0MSIsIjAiLCItOC45Mjk3MzgxOEUtNzgxOTA0NDMzIiwiIik7CisgIG1hdGh0ZXN0KDM5MSxkZWYsIjY3MDE3NTgwMkUrMTM1NDMwNjgwIiwiMjczNTUxOTUuNCIsIjYuNzAxNzU4MDJFKzEzNTQzMDY4OCIsIjYuNzAxNzU4MDJFKzEzNTQzMDY4OCIsIjEuODMzMjc5MDBFKzEzNTQzMDY5NiIsIjIuNDQ5OTAzMThFKzEzNTQzMDY4MSIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzOTIsZGVmLCItNDQwOTUwLjI2IiwiMjA1LjQ3NzQ2OUUtNjc3MzQ1NTYxIiwiLTQ0MDk1MC4yNjAiLCItNDQwOTUwLjI2MCIsIi05LjA2MDUzNDM0RS02NzczNDU1NTQiLCItMi4xNDU5Nzg2NEUrNjc3MzQ1NTY0IiwiIiwiIiwiMS45NDQzNzEzMkUrMTEiKTsKKyAgbWF0aHRlc3QoMzkzLGRlZiwiLTguMjMzNTc3OSIsIjU3MzY2NTAxMEUrNzQyNzIyMDc1IiwiNS43MzY2NTAxMEUrNzQyNzIyMDgzIiwiLTUuNzM2NjUwMTBFKzc0MjcyMjA4MyIsIi00LjcyMzMxNTU1RSs3NDI3MjIwODQiLCItMS40MzUyNTg4NkUtNzQyNzIyMDgzIiwiMCIsIi04LjIzMzU3NzkiLCIzMTE1NTIuNzUzIik7CisgIG1hdGh0ZXN0KDM5NCxkZWYsIjQ1Mjk0My44NjMiLCI3MDIyLjIzNjI5IiwiNDU5OTY2LjA5OSIsIjQ0NTkyMS42MjciLCIzLjE4MDY3ODgzRSs5IiwiNjQuNTAxMzcwMyIsIjY0IiwiMzUyMC43NDA0NCIsIjUuNTQxNTg5NzZFKzM5NzE2Iik7CisgIG1hdGh0ZXN0KDM5NSxkZWYsIjYyODc0LjEwNzkiLCItNTI3MTk2NTQuMSIsIi01MjY1Njc4MC4wIiwiNTI3ODI1MjguMiIsIi0zLjMxNDcwMTIyRSsxMiIsIi0wLjAwMTE5MjYxMjMiLCIwIiwiNjI4NzQuMTA3OSIsIjEuMTg4MTk5MzZFLTI1Mjk3Mzc3NSIpOworICBtYXRodGVzdCgzOTYsZGVmLCItNzQyOC40MTc0MUUrNjA5NzcyMDM3IiwiLTQ2MDI0ODE5LjMiLCItNy40Mjg0MTc0MUUrNjA5NzcyMDQwIiwiLTcuNDI4NDE3NDFFKzYwOTc3MjA0MCIsIjMuNDE4OTE1NjlFKzYwOTc3MjA0OCIsIjEuNjE0MDAyNTFFKzYwOTc3MjAzMyIsIiIsIiIsIiIpOworICBtYXRodGVzdCgzOTcsZGVmLCIyLjI3OTU5Mjk3IiwiNDE5MzcuMDE5IiwiNDE5MzkuMjk4NiIsIi00MTkzNC43Mzk0IiwiOTU1OTkuMzMzNyIsIjAuMDAwMDU0MzU3NTM0OCIsIjAiLCIyLjI3OTU5Mjk3IiwiMi44OTcxMjQyM0UrMTUwMDciKTsKKyAgbWF0aHRlc3QoMzk4LGRlZiwiNTA4NjkyNDA4RS02NzE5Njc3ODIiLCI4NDkxOTg5LjIwIiwiODQ5MTk4OS4yMCIsIi04NDkxOTg5LjIwIiwiNC4zMTk4MTA0M0UtNjcxOTY3NzY3IiwiNS45OTAyNjIwN0UtNjcxOTY3NzgxIiwiMCIsIjUuMDg2OTI0MDhFLTY3MTk2Nzc3NCIsIiIpOworICBtYXRodGVzdCgzOTksZGVmLCI5NDAuNTMzNzA1RS0zNzkzMTA0MjEiLCItNC4wMTE3Njk2MUUrNDY0NjIwMDM3IiwiLTQuMDExNzY5NjFFKzQ2NDYyMDAzNyIsIjQuMDExNzY5NjFFKzQ2NDYyMDAzNyIsIi0zLjc3MzIwNDUzRSs4NTMwOTYxOSIsIi0yLjM0NDQzNTk5RS04NDM5MzA0NTYiLCIwIiwiOS40MDUzMzcwNUUtMzc5MzEwNDE5IiwiIik7CisgIG1hdGh0ZXN0KDQwMCxkZWYsIjk3LjA2NDk2NTIiLCItOTIuNDQ4NTY0OUUtMTUxOTg5MDk4IiwiOTcuMDY0OTY1MiIsIjk3LjA2NDk2NTIiLCItOC45NzM1MTY3M0UtMTUxOTg5MDk1IiwiLTEuMDQ5OTM0OEUrMTUxOTg5MDk4IiwiIiwiIiwiMS4zMDc0ODcyOEUtMTgiKTsKKyAgbWF0aHRlc3QoNDAxLGRlZiwiMjk3NTQ0LjUzNkUrMzYwMjc5NDczIiwiOC44MDI3NTAwNyIsIjIuOTc1NDQ1MzZFKzM2MDI3OTQ3OCIsIjIuOTc1NDQ1MzZFKzM2MDI3OTQ3OCIsIjIuNjE5MjEwMTlFKzM2MDI3OTQ3OSIsIjMuMzgwMTMxNTlFKzM2MDI3OTQ3NyIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0MDIsZGVmLCItMjg4NjEwMjguIiwiODI4MTguODIwRSsxMzgzNjg3NTgiLCI4LjI4MTg4MjAwRSsxMzgzNjg3NjIiLCItOC4yODE4ODIwMEUrMTM4MzY4NzYyIiwiLTIuMzkwMjM2MjhFKzEzODM2ODc3MCIsIi0zLjQ4NDgzOTMyRS0xMzgzNjg3NTYiLCIwIiwiLTI4ODYxMDI4IiwiNC44MTM4NzAxM0UrNTkiKTsKKyAgbWF0aHRlc3QoNDAzLGRlZiwiMzYuMjQ5NjIzOEUrNjg4MjgwMzkiLCI0OTI0My4wMCIsIjMuNjI0OTYyMzhFKzY4ODI4MDQwIiwiMy42MjQ5NjIzOEUrNjg4MjgwNDAiLCIxLjc4NTA0MDIyRSs2ODgyODA0NSIsIjcuMzYxMzc1OTlFKzY4ODI4MDM1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQwNCxkZWYsIjIyLjQ0NzgyOEUtNDc2MDE0NjgzIiwiLTU2MDY3LjU1MjAiLCItNTYwNjcuNTUyMCIsIjU2MDY3LjU1MjAiLCItMS4yNTg1OTQ3NkUtNDc2MDE0Njc3IiwiLTQuMDAzNzExMDlFLTQ3NjAxNDY4NyIsIjAiLCIyLjI0NDc4MjhFLTQ3NjAxNDY4MiIsIiIpOworICBtYXRodGVzdCg0MDUsZGVmLCIyODI2ODguNzkxRSs3NTAxMTk1MiIsIjUuOTk3ODkwNTEiLCIyLjgyNjg4NzkxRSs3NTAxMTk1NyIsIjIuODI2ODg3OTFFKzc1MDExOTU3IiwiMS42OTU1MzY0MkUrNzUwMTE5NTgiLCI0LjcxMzEzNjlFKzc1MDExOTU2IiwiIiwiIiwiNS4xMDMzMDUwN0UrNDUwMDcxNzQ0Iik7CisgIG1hdGh0ZXN0KDQwNixkZWYsIi05ODEuODYwMzEwRS03MzczODcwMDIiLCItOTk0MDQ2Mjg5IiwiLTk5NDA0NjI4OSIsIjk5NDA0NjI4OSIsIjkuNzYwMTQ1OTdFLTczNzM4Njk5MSIsIjkuODc3NDEwMzVFLTczNzM4NzAwOSIsIjAiLCItOS44MTg2MDMxMEUtNzM3Mzg3MDAwIiwiIik7CisgIG1hdGh0ZXN0KDQwNyxkZWYsIi03MDIuOTEyMTAiLCItNjQ0NDkwMy41NSIsIi02NDQ1NjA2LjQ2IiwiNjQ0NDIwMC42NCIsIjQuNTMwMjAwNjlFKzkiLCIwLjAwMDEwOTA2NDc5NyIsIjAiLCItNzAyLjkxMjEwIiwiMS43MDg2NjcwM0UtMTgzNDgwMDQiKTsKKyAgbWF0aHRlc3QoNDA4LGRlZiwiOTcyNDU2NzIwRS0xNzUzNjgyMyIsIjE2MzcxLjI1OTAiLCIxNjM3MS4yNTkwIiwiLTE2MzcxLjI1OTAiLCIxLjU5MjAzNDA4RS0xNzUzNjgxMCIsIjUuOTQwMDI0MDRFLTE3NTM2ODE5IiwiMCIsIjkuNzI0NTY3MjBFLTE3NTM2ODE1IiwiIik7CisgIG1hdGh0ZXN0KDQwOSxkZWYsIjcxNDcxLjIwNDUiLCItNzQzMDMyNzguNCIsIi03NDIzMTgwNy4yIiwiNzQzNzQ3NDkuNiIsIi01LjMxMDU0NDgxRSsxMiIsIi0wLjAwMDk2MTg4NDk0IiwiMCIsIjcxNDcxLjIwNDUiLCIyLjE0NTM1Mzc0RS0zNjA2Nzc4NTMiKTsKKyAgbWF0aHRlc3QoNDEwLGRlZiwiNjQzLjEwMzk1MUUrNDM5NzA4NDQxIiwiNzg4MjUxOTI1LiIsIjYuNDMxMDM5NTFFKzQzOTcwODQ0MyIsIjYuNDMxMDM5NTFFKzQzOTcwODQ0MyIsIjUuMDY5Mjc5MjdFKzQzOTcwODQ1MiIsIjguMTU4NjA5MzNFKzQzOTcwODQzNCIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0MTEsZGVmLCI0LjMwODM4NjYzIiwiLTcuNDMxMTA4MjciLCItMy4xMjI3MjE2NCIsIjExLjczOTQ5NDkiLCItMzIuMDE2MDg3NSIsIi0wLjU3OTc3NzEzMSIsIjAiLCI0LjMwODM4NjYzIiwiMC4wMDAwMzYyOTA4NjQ1Iik7CisgIG1hdGh0ZXN0KDQxMixkZWYsIjgyMy42NzgwMjUiLCItNTEzLjU4MTg0MEUtMzI0NDUzMTQxIiwiODIzLjY3ODAyNSIsIjgyMy42NzgwMjUiLCItNC4yMzAyNjA3NkUtMzI0NDUzMTM2IiwiLTEuNjAzNzkxMThFKzMyNDQ1MzE0MSIsIiIsIiIsIjIuNjM3NjIyMjhFLTE1Iik7CisgIG1hdGh0ZXN0KDQxMyxkZWYsIjQ0NjEuODExNjIiLCIzLjIyMDgxNjgwIiwiNDQ2NS4wMzI0NCIsIjQ0NTguNTkwODAiLCIxNDM3MC42Nzc4IiwiMTM4NS4zMDQzOCIsIjEzODUiLCIwLjk4MDM1MjAwIiwiOC44ODI0Njg4RSsxMCIpOworICBtYXRodGVzdCg0MTQsZGVmLCItNDQ1ODUyNy4xMCIsIi05OTA3MjYwNSIsIi0xMDM1MzExMzIiLCI5NDYxNDA3Ny45IiwiNC40MTcxNzg5NEUrMTQiLCIwLjA0NTAwMjYyMzEiLCIwIiwiLTQ0NTg1MjcuMTAiLCItNi4yMzkyODA5OUUtNjU4NzUyNzE1Iik7CisgIG1hdGh0ZXN0KDQxNSxkZWYsIi01Nzc5NjQ2MTgiLCI0ODc0MjQzNjguIiwiLTkwNTQwMjUwIiwiLTEuMDY1Mzg4OTlFKzkiLCItMi44MTcxNDAzOUUrMTciLCItMS4xODU3NTI0MSIsIi0xIiwiLTkwNTQwMjUwIiwiIik7CisgIG1hdGh0ZXN0KDQxNixkZWYsIi04NjcuMDM2MTg0IiwiLTU3LjE3Njg2MDgiLCItOTI0LjIxMzA0NSIsIi04MDkuODU5MzIzIiwiNDk1NzQuNDA3MiIsIjE1LjE2NDEwOTYiLCIxNSIsIi05LjM4MzI3MjAiLCItMy40MDMxMjgzN0UtMTY4Iik7CisgIG1hdGh0ZXN0KDQxNyxkZWYsIjc3MTg3MTkyMUUtMzMwNTA0NzcwIiwiNS4zNDI4NTIzNiIsIjUuMzQyODUyMzYiLCItNS4zNDI4NTIzNiIsIjQuMTIzOTk3NzFFLTMzMDUwNDc2MSIsIjEuNDQ0NjgxMzZFLTMzMDUwNDc2MiIsIjAiLCI3LjcxODcxOTIxRS0zMzA1MDQ3NjIiLCIiKTsKKyAgbWF0aHRlc3QoNDE4LGRlZiwiLTMzODY4My4wNjJFLTcyODc3NzUxOCIsIjE2NjQ0MTkzMSIsIjE2NjQ0MTkzMSIsIi0xNjY0NDE5MzEiLCItNS42MzcxMDYyOEUtNzI4Nzc3NTA1IiwiLTIuMDM0ODQyMThFLTcyODc3NzUyMSIsIjAiLCItMy4zODY4MzA2MkUtNzI4Nzc3NTEzIiwiIik7CisgIG1hdGh0ZXN0KDQxOSxkZWYsIi01MTI1Njg3NDMiLCItNDE2Mzc2ODg3LkUtOTY1OTQ1Mjk1IiwiLTUxMjU2ODc0MyIsIi01MTI1Njg3NDMiLCIyLjEzNDIxNzc4RS05NjU5NDUyNzgiLCIxLjIzMTAyMTEyRSs5NjU5NDUyOTUiLCIiLCIiLCIxLjQ0ODc0MzU4RS0zNSIpOworICBtYXRodGVzdCg0MjAsZGVmLCI3NDQ3MTgxLjk5IiwiNTMxODQzOC41MiIsIjEyNzY1NjIwLjUiLCIyMTI4NzQzLjQ3IiwiMy45NjA3Mzc5NkUrMTMiLCIxLjQwMDI1NzIzIiwiMSIsIjIxMjg3NDMuNDciLCIxLjIxNjM0NzgyRSszNjU0ODI3MCIpOworICBtYXRodGVzdCg0MjEsZGVmLCI1NDc4OS44MjA3IiwiOTMxNjU0MzUuMiIsIjkzMjIwMjI1LjAiLCItOTMxMTA2NDUuNCIsIjUuMTA0NTE3NDlFKzEyIiwiMC4wMDA1ODgwOTE3MTYiLCIwIiwiNTQ3ODkuODIwNyIsIjMuODA3Njk4MjVFKzQ0MTQ4MzAzNSIpOworICBtYXRodGVzdCg0MjIsZGVmLCI0MTQ4OC41OTYwIiwiMTQ2Ljc5NzA5NCIsIjQxNjM1LjM5MzEiLCI0MTM0MS43OTg5IiwiNjA5MDQwNS4zMyIsIjI4Mi42MjU0NTkiLCIyODIiLCI5MS44MTU0OTIiLCI2Ljg0NzM4MTUzRSs2NzgiKTsKKyAgbWF0aHRlc3QoNDIzLGRlZiwiNzg1NzQxLjY2M0UrNTY3NTQ1MjkiLCItNDYxLjUzMTczMiIsIjcuODU3NDE2NjNFKzU2NzU0NTM0IiwiNy44NTc0MTY2M0UrNTY3NTQ1MzQiLCItMy42MjY0NDcxMUUrNTY3NTQ1MzciLCItMS43MDI0NjUwOUUrNTY3NTQ1MzIiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDI0LGRlZiwiLTQuOTU0MzY3ODYiLCItMzEzMi40MjMzIiwiLTMxMzcuMzc3NjciLCIzMTI3LjQ2ODkzIiwiMTU1MTkuMTc3MyIsIjAuMDAxNTgxNjQwNiIsIjAiLCItNC45NTQzNjc4NiIsIjEuOTgwNjI0MjJFLTIxNzciKTsKKyAgbWF0aHRlc3QoNDI1LGRlZiwiNzczMjEuODQ3OEUrNDA0NjI2ODc0IiwiODIuNDc5NzY4OCIsIjcuNzMyMTg0NzhFKzQwNDYyNjg3OCIsIjcuNzMyMTg0NzhFKzQwNDYyNjg3OCIsIjYuMzc3NDg4MTNFKzQwNDYyNjg4MCIsIjkuMzc0NjQ0MUUrNDA0NjI2ODc2IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQyNixkZWYsIi03Ljk5MzA3NzI1IiwiLTI5MTUzLjcyNzMiLCItMjkxNjEuNzIwNCIsIjI5MTQ1LjczNDIiLCIyMzMwMjcuOTk0IiwiMC4wMDAyNzQxNjk5OTQiLCIwIiwiLTcuOTkzMDc3MjUiLCIxLjg4Njg4MDI4RS0yNjMxOCIpOworICBtYXRodGVzdCg0MjcsZGVmLCItNjEuNjMzNzQwMUUrNDc0OTk5NTE3IiwiNTI1NC44NzA5MiIsIi02LjE2MzM3NDAxRSs0NzQ5OTk1MTgiLCItNi4xNjMzNzQwMUUrNDc0OTk5NTE4IiwiLTMuMjM4NzczNDlFKzQ3NDk5OTUyMiIsIi0xLjE3Mjg4NzhFKzQ3NDk5OTUxNSIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0MjgsZGVmLCItMTYuNDA0MzA4OCIsIjM1LjAwNjQ4MTIiLCIxOC42MDIxNzI0IiwiLTUxLjQxMDc5MDAiLCItNTc0LjI1NzEyOCIsIi0wLjQ2ODYwNzc2MiIsIjAiLCItMTYuNDA0MzA4OCIsIi0zLjMzODMxODQzRSs0MiIpOworICBtYXRodGVzdCg0MjksZGVmLCItOC40MTE1NjUyMCIsIi01NjUwODk1OC45IiwiLTU2NTA4OTY3LjMiLCI1NjUwODk1MC41IiwiNDc1MzI4NzkyIiwiMS40ODg1MzY1N0UtNyIsIjAiLCItOC40MTE1NjUyMCIsIi04Ljg2MzY1NDU4RS01MjI2MzgyNyIpOworICBtYXRodGVzdCg0MzAsZGVmLCItMzYwMTY1Ljc5RSs1MDM1NTk4MzUiLCItMTk2Njg4LjUxNSIsIi0zLjYwMTY1NzkwRSs1MDM1NTk4NDAiLCItMy42MDE2NTc5MEUrNTAzNTU5ODQwIiwiNy4wODQwNDc0NEUrNTAzNTU5ODQ1IiwiMS44MzExNDgwNUUrNTAzNTU5ODM1IiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQzMSxkZWYsIi02NTMyMzY0ODAuRSs1NjU2NDg0OTUiLCItOTMwLjQ0NTI3NCIsIi02LjUzMjM2NDgwRSs1NjU2NDg1MDMiLCItNi41MzIzNjQ4MEUrNTY1NjQ4NTAzIiwiNi4wNzgwMDc5NkUrNTY1NjQ4NTA2IiwiNy4wMjA2ODY3NEUrNTY1NjQ4NTAwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQzMixkZWYsIi0zLjczMzQyOTAzIiwiODU1LjAyOTI4OSIsIjg1MS4yOTU4NjAiLCItODU4Ljc2MjcxOCIsIi0zMTkyLjE5MTE3IiwiLTAuMDA0MzY2NDM0MDgiLCIwIiwiLTMuNzMzNDI5MDMiLCItMS40MTk4ODk2MUUrNDg5Iik7CisgIG1hdGh0ZXN0KDQzMyxkZWYsIi01LjE0ODkwNTMyRSs1NjIwNDgwMTEiLCIxMDg0NzEyNy44RS0zOTA5MTg5MTAiLCItNS4xNDg5MDUzMkUrNTYyMDQ4MDExIiwiLTUuMTQ4OTA1MzJFKzU2MjA0ODAxMSIsIi01LjU4NTA4MzQwRSsxNzExMjkxMDgiLCItNC43NDY3OTE0MkUrOTUyOTY2OTE0IiwiIiwiIiwiLTUuMTQ4OTA1MzJFKzU2MjA0ODAxMSIpOworICBtYXRodGVzdCg0MzQsZGVmLCI2NTMzMTE5MDciLCItODEwLjAzNjk2NUUrNzQ0NTM3ODIzIiwiLTguMTAwMzY5NjVFKzc0NDUzNzgyNSIsIjguMTAwMzY5NjVFKzc0NDUzNzgyNSIsIi01LjI5MjA2Nzk0RSs3NDQ1Mzc4MzQiLCItOC4wNjUyMTEwNEUtNzQ0NTM3ODE4IiwiMCIsIjY1MzMxMTkwNyIsIjMuMDEzMjUxNzFFLTcxIik7CisgIG1hdGh0ZXN0KDQzNSxkZWYsIi0xLjMxNTU3OTA3IiwiOTguOTEzOTMwMEUtNTc5MjgxODAyIiwiLTEuMzE1NTc5MDciLCItMS4zMTU1NzkwNyIsIi0xLjMwMTI5MDk2RS01NzkyODE4MDAiLCItMS4zMzAwMjQwNkUrNTc5MjgxODAwIiwiIiwiIiwiMTUuNTI5OTMyIik7CisgIG1hdGh0ZXN0KDQzNixkZWYsIi04NzUxOTIzODkiLCItNzIwNzE1NjUuNiIsIi05NDcyNjM5NTUiLCItODAzMTIwODIzIiwiNi4zMDc2NDg1N0UrMTYiLCIxMi4xNDMzNzk3IiwiMTIiLCItMTAzMzM2MDEuOCIsIjEuMjU1NjQ0MDhFLTY0NDQ3MTQwNSIpOworICBtYXRodGVzdCg0MzcsZGVmLCItNzI4MzgwNzguOCIsIi0zOTEuMzk4NDIzIiwiLTcyODM4NDcwLjIiLCItNzI4Mzc2ODcuNCIsIjIuODUwODcwOTJFKzEwIiwiMTg2MDk3LjAxNyIsIjE4NjA5NyIsIi02LjQ3NDk2OSIsIi02LjU3NDA1N0UtMzA3NSIpOworICBtYXRodGVzdCg0MzgsZGVmLCIyOTE4NjU2MC45IiwiLTc5Ljc0MTk5ODgiLCIyOTE4NjQ4MS4yIiwiMjkxODY2NDAuNiIsIi0yLjMyNzM5NDcwRSs5IiwiLTM2NjAxMi40MDciLCItMzY2MDEyIiwiMzIuNDM1MjE0NCIsIjYuMTAwNTA4NjlFLTU5OCIpOworICBtYXRodGVzdCg0MzksZGVmLCItMzI5ODAxNjYwRS03MzAyNDk0NjUiLCItNjQ4OS45MjU2IiwiLTY0ODkuOTI1NjAiLCI2NDg5LjkyNTYwIiwiMi4xNDAzODgyNEUtNzMwMjQ5NDUzIiwiNS4wODE3NDc5M0UtNzMwMjQ5NDYxIiwiMCIsIi0zLjI5ODAxNjYwRS03MzAyNDk0NTciLCIiKTsKKyAgbWF0aHRlc3QoNDQwLGRlZiwiOTEuODQyOTExN0UrMTAzMTY0ODgzIiwiNzEzMTQ1NS4xNiIsIjkuMTg0MjkxMTdFKzEwMzE2NDg4NCIsIjkuMTg0MjkxMTdFKzEwMzE2NDg4NCIsIjYuNTQ5NzM2MDdFKzEwMzE2NDg5MSIsIjEuMjg3ODU2NTRFKzEwMzE2NDg3OCIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0NDEsZGVmLCIzOTQzODY2LjM4RSsxNTA4NTUxMTMiLCItMzE5MjcwMDcuMyIsIjMuOTQzODY2MzhFKzE1MDg1NTExOSIsIjMuOTQzODY2MzhFKzE1MDg1NTExOSIsIi0xLjI1OTE1ODUxRSsxNTA4NTUxMjciLCItMS4yMzUyNzU5NEUrMTUwODU1MTEyIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQ0MixkZWYsIi03MDAyLjA0NjhFLTc5NTk2MjE1NiIsIi01OTM3ODkxLjA1IiwiLTU5Mzc4OTEuMDUiLCI1OTM3ODkxLjA1IiwiNC4xNTc3MzkxMEUtNzk1OTYyMTQ2IiwiMS4xNzkyMTQ0M0UtNzk1OTYyMTU5IiwiMCIsIi03LjAwMjA0NjhFLTc5NTk2MjE1MyIsIiIpOworICBtYXRodGVzdCg0NDMsZGVmLCI2OTY1MDQ2MDUuIiwiNTQ1MDYuNDYxNyIsIjY5NjU1OTExMSIsIjY5NjQ1MDA5OSIsIjMuNzk2NDAwMTZFKzEzIiwiMTI3NzguMzg2IiwiMTI3NzgiLCIyMTAzNy4zOTc0IiwiMi42MDA4NTMyRSs0ODE5OTIiKTsKKyAgbWF0aHRlc3QoNDQ0LGRlZiwiLTUxMTUuNzY0NjciLCI2OTAuOTYwOTc5RSs4MTUxMjY3MDEiLCI2LjkwOTYwOTc5RSs4MTUxMjY3MDMiLCItNi45MDk2MDk3OUUrODE1MTI2NzAzIiwiLTMuNTM0NzkzNzZFKzgxNTEyNjcwNyIsIi03LjQwMzg0MDJFLTgxNTEyNjcwMSIsIjAiLCItNTExNS43NjQ2NyIsIi05LjE3MDA5NjU1RSsyNSIpOworICBtYXRodGVzdCg0NDUsZGVmLCItMjYxLjI3OTM5MiIsIi02MTMuMDc5MzU3IiwiLTg3NC4zNTg3NDkiLCIzNTEuNzk5OTY1IiwiMTYwMTg1LjAwMiIsIjAuNDI2MTc1NDg0IiwiMCIsIi0yNjEuMjc5MzkyIiwiLTIuMDYzMTg4NDFFLTE0ODIiKTsKKyAgbWF0aHRlc3QoNDQ2LGRlZiwiLTU5MTQwNzc2MyIsIi04MDE0NTgyMi44IiwiLTY3MTU1MzU4NiIsIi01MTEyNjE5NDAiLCI0LjczOTg4NjE4RSsxNiIsIjcuMzc5MTQ2NDQiLCI3IiwiLTMwMzg3MDAzLjQiLCItMi43OTMzNDUyMkUtNzAzMDMwMTA1Iik7CisgIG1hdGh0ZXN0KDQ0NyxkZWYsIjYxNTYzMDQwNyIsIi02OS40NjYxODY5IiwiNjE1NjMwMzM4IiwiNjE1NjMwNDc2IiwiLTQuMjc2NTQ5NjlFKzEwIiwiLTg4NjIzMDMuMTUiLCItODg2MjMwMyIsIjEwLjQzNzU2OTMiLCIzLjQ0MjgzMTAyRS02MDciKTsKKyAgbWF0aHRlc3QoNDQ4LGRlZiwiMTA3ODc1Ny41MCIsIjI3NDAyNTY5LjBFLTcxMzc0MjA4MiIsIjEwNzg3NTcuNTAiLCIxMDc4NzU3LjUwIiwiMi45NTYwNzI2OEUtNzEzNzQyMDY5IiwiMy45MzY3MDIwN0UrNzEzNzQyMDgwIiwiIiwiIiwiMS4yNTUzNjkyNEUrMTgiKTsKKyAgbWF0aHRlc3QoNDQ5LGRlZiwiLTQ4NjUuNjAzNThFLTQwMTExNjUxNSIsIjY2OTUyLjUzMTUiLCI2Njk1Mi41MzE1IiwiLTY2OTUyLjUzMTUiLCItMy4yNTc2NDQ3N0UtNDAxMTE2NTA3IiwiLTcuMjY3MjQzNjNFLTQwMTExNjUxNyIsIjAiLCItNC44NjU2MDM1OEUtNDAxMTE2NTEyIiwiIik7CisgIG1hdGh0ZXN0KDQ1MCxkZWYsIi04NzgwNS4zOTIxRS05MzQ4OTY2OTAiLCItMTg3NS4xNDc0NSIsIi0xODc1LjE0NzQ1IiwiMTg3NS4xNDc0NSIsIjEuNjQ2NDgwNTdFLTkzNDg5NjY4MiIsIjQuNjgyNTg2MDFFLTkzNDg5NjY4OSIsIjAiLCItOC43ODA1MzkyMUUtOTM0ODk2Njg2IiwiIik7CisgIG1hdGh0ZXN0KDQ1MSxkZWYsIi0yMzI1NDA2MDkuRSs2MDI3MDI1MjAiLCI2OC4wODM0MjIzIiwiLTIuMzI1NDA2MDlFKzYwMjcwMjUyOCIsIi0yLjMyNTQwNjA5RSs2MDI3MDI1MjgiLCItMS41ODMyMTYwNUUrNjAyNzAyNTMwIiwiLTMuNDE1NTI0NjhFKzYwMjcwMjUyNiIsIiIsIiIsIiIpOworICBtYXRodGVzdCg0NTIsZGVmLCItMzIwNjEwODAzLiIsIi04NjM4NzEyMzUuIiwiLTEuMTg0NDgyMDRFKzkiLCI1NDMyNjA0MzIiLCIyLjc2OTY2NDUwRSsxNyIsIjAuMzcxMTMyNjMiLCIwIiwiLTMyMDYxMDgwMyIsIiIpOworICBtYXRodGVzdCg0NTMsZGVmLCItMzAzOTU2MzY0RSsyNzgxMzk5NzkiLCIyMjk1MzcuOTIwRSs0Nzk2MDM3MjUiLCIyLjI5NTM3OTIwRSs0Nzk2MDM3MzAiLCItMi4yOTUzNzkyMEUrNDc5NjAzNzMwIiwiLTYuOTc2OTUxMTZFKzc1Nzc0MzcxNyIsIi0xLjMyNDIwOThFLTIwMTQ2Mzc0MyIsIjAiLCItMy4wMzk1NjM2NEUrMjc4MTM5OTg3IiwiOS4yMzg5NDcxMkUrNTU2Mjc5OTc0Iik7CisgIG1hdGh0ZXN0KDQ1NCxkZWYsIi00MzkuNzQ3MzQ4IiwiNzQuOTQ5NDQ1N0UtMzUzMTE3NTgyIiwiLTQzOS43NDczNDgiLCItNDM5Ljc0NzM0OCIsIi0zLjI5NTg4MjAwRS0zNTMxMTc1NzgiLCItNS44NjcyNTI4NEUrMzUzMTE3NTgyIiwiIiwiIiwiLTMuMTc5OTY2OTNFKzE4Iik7CisgIG1hdGh0ZXN0KDQ1NSxkZWYsIi04OTcwMjIzMS45IiwiMS4yODk5Mzk5MyIsIi04OTcwMjIzMC42IiwiLTg5NzAyMjMzLjIiLCItMTE1NzEwNDkxIiwiLTY5NTM5ODUyLjEiLCItNjk1Mzk4NTIiLCItMC4wNzg5MDk2NCIsIi04OTcwMjIzMS45Iik7CisgIG1hdGh0ZXN0KDQ1NixkZWYsIi01ODU2OTM5LjE0IiwiLTY3NDMzNzUuMzQiLCItMTI2MDAzMTQuNSIsIjg4NjQzNi4yMCIsIjMuOTQ5NTUzOTBFKzEzIiwiMC44Njg1NDcxMDciLCIwIiwiLTU4NTY5MzkuMTQiLCItMy4yOTIxMzI0OEUtNDU2MzY5NDIiKTsKKyAgbWF0aHRlc3QoNDU3LGRlZiwiNzMzMzE3LjY2OUUrMTAwMzgxMzQ5IiwiLTEzODMyLjY3OTJFKzE3NDA1NTYwNyIsIi0xLjM4MzI2NzkyRSsxNzQwNTU2MTEiLCIxLjM4MzI2NzkyRSsxNzQwNTU2MTEiLCItMS4wMTQzNzQ4MUUrMjc0NDM2OTY2IiwiLTUuMzAxMzQyMjdFLTczNjc0MjU3IiwiMCIsIjcuMzMzMTc2NjlFKzEwMDM4MTM1NCIsIjEuMzYzNjY1NDlFLTEwMDM4MTM1NSIpOworICBtYXRodGVzdCg0NTgsZGVmLCI4Ny40Nzk4Nzg3RS04MDEyNDcwNCIsIjEwODQ5Ny4zMiIsIjEwODQ5Ny4zMjAiLCItMTA4NDk3LjMyMCIsIjkuNDkxMzMyMzlFLTgwMTI0Njk4IiwiOC4wNjI4NjA3OUUtODAxMjQ3MDgiLCIwIiwiOC43NDc5ODc4N0UtODAxMjQ3MDMiLCIiKTsKKyAgbWF0aHRlc3QoNDU5LGRlZiwiLTY5NDU2MjA1MiIsIjMxMDY4MS4zMTlFKzU0OTQ0NTI2NCIsIjMuMTA2ODEzMTlFKzU0OTQ0NTI2OSIsIi0zLjEwNjgxMzE5RSs1NDk0NDUyNjkiLCItMi4xNTc4NzQ1NEUrNTQ5NDQ1Mjc4IiwiLTIuMjM1NjA5MzJFLTU0OTQ0NTI2MSIsIjAiLCItNjk0NTYyMDUyIiwiLTMuMzUwNjgxNTVFKzI2Iik7CisgIG1hdGh0ZXN0KDQ2MCxkZWYsIi05NzQ0MTM1Ljg1IiwiMTc5NzAxNi4wNCIsIi03OTQ3MTE5LjgxIiwiLTExNTQxMTUxLjkiLCItMS43NTEwMzY4NEUrMTMiLCItNS40MjIzOTc4MiIsIi01IiwiLTc1OTA1NS42NSIsIjMuODM4NDgwMDZFKzEyNTU4ODgzIik7CisgIG1hdGh0ZXN0KDQ2MSxkZWYsIjM2MjUuODczMDgiLCItNTAuMjIwODUzNkUrNjU4NjI3NDg3IiwiLTUuMDIyMDg1MzZFKzY1ODYyNzQ4OCIsIjUuMDIyMDg1MzZFKzY1ODYyNzQ4OCIsIi0xLjgyMDk0NDQxRSs2NTg2Mjc0OTIiLCItNy4yMTk4NTU1NEUtNjU4NjI3NDg2IiwiMCIsIjM2MjUuODczMDgiLCIxLjU5NTY0NzdFLTE4Iik7CisgIG1hdGh0ZXN0KDQ2MixkZWYsIjM2NTM0Ny41MiIsIi0zNjU1NDE0LjQ3IiwiLTMyOTAwNjYuOTUiLCI0MDIwNzYxLjk5IiwiLTEuMzM1NDk2NjFFKzEyIiwiLTAuMDk5OTQ2OTQ4IiwiMCIsIjM2NTM0Ny41MiIsIjEuMDI2NjMyNTdFLTIwMzMzOTk0Iik7CisgIG1hdGh0ZXN0KDQ2MyxkZWYsIi0xOTcwNjMzMy42RS04MTY5MjMwNTAiLCItMzgzODU4MDMyLiIsIi0zODM4NTgwMzIiLCIzODM4NTgwMzIiLCI3LjU2NDQzNDQzRS04MTY5MjMwMzUiLCI1LjEzMzc1NTdFLTgxNjkyMzA1MiIsIjAiLCItMS45NzA2MzMzNkUtODE2OTIzMDQzIiwiIik7CisgIG1hdGh0ZXN0KDQ2NCxkZWYsIi04NjM0Ni4yNjE2IiwiLTk4LjgwNjM3ODUiLCItODY0NDUuMDY4MCIsIi04NjI0Ny40NTUyIiwiODUzMTU2MS40MSIsIjg3My44OTM1OTgiLCI4NzMiLCItODguMjkzMTY5NSIsIi0yLjA1MDY0MDg2RS00ODkiKTsKKyAgbWF0aHRlc3QoNDY1LGRlZiwiLTQ0NTU4OC4xNjBFLTQ5NjU5MjIxNSIsIjMyOC44MjI5NzYiLCIzMjguODIyOTc2IiwiLTMyOC44MjI5NzYiLCItMS40NjUxOTYyNUUtNDk2NTkyMjA3IiwiLTEuMzU1MTAwNDRFLTQ5NjU5MjIxMiIsIjAiLCItNC40NTU4ODE2MEUtNDk2NTkyMjEwIiwiIik7CisgIG1hdGh0ZXN0KDQ2NixkZWYsIi05NzA5MjEzLjcxIiwiLTM0LjY2OTAxMzciLCItOTcwOTI0OC4zOCIsIi05NzA5MTc5LjA0IiwiMzM2NjA4ODYzIiwiMjgwMDU0LjUxMiIsIjI4MDA1NCIsIi0xNy43NDcyNjAyIiwiLTIuODA5MDM5NzRFLTI0NSIpOworICBtYXRodGVzdCg0NjcsZGVmLCI3NDIzOTU1MzYuIiwiLTQzNTMzLjY4ODkiLCI3NDIzNTIwMDIiLCI3NDI0MzkwNzAiLCItMy4yMzE5MjE2M0UrMTMiLCItMTcwNTMuMzU2OSIsIi0xNzA1MyIsIjE1NTM5LjE4ODMiLCI1Ljc2MjI3MzRFLTM4NjE3NSIpOworICBtYXRodGVzdCg0NjgsZGVmLCItODc4ODQ5MTkzLiIsIi01ODQyOTgyLjQ3RS05NzI1MzczNDIiLCItODc4ODQ5MTkzIiwiLTg3ODg0OTE5MyIsIjUuMTM1MTAwNDNFLTk3MjUzNzMyNyIsIjEuNTA0MTEwNjFFKzk3MjUzNzM0NCIsIiIsIiIsIjIuMTcwMjcwNDJFLTU0Iik7CisgIG1hdGh0ZXN0KDQ2OSxkZWYsIi03ODAxNDE0Mi4xIiwiLTYyNDY1OC41MjIiLCItNzg2Mzg4MDAuNiIsIi03NzM4OTQ4My42IiwiNC44NzMyMTk4N0UrMTMiLCIxMjQuODkwODYzIiwiMTI0IiwiLTU1NjQ4NS4zNzIiLCItNy44NjA2Mzg2NUUtNDkyOTkxOCIpOworICBtYXRodGVzdCg0NzAsZGVmLCI4NTcwMzkuMzcxIiwiNDU0LjM3OTY3MiIsIjg1NzQ5My43NTEiLCI4NTY1ODQuOTkxIiwiMzg5NDIxMjY4IiwiMTg4Ni4xNzQ1NCIsIjE4ODYiLCI3OS4zMDk2MDgiLCIzLjgyMjUzMTAxRSsyNjkzIik7CisgIG1hdGh0ZXN0KDQ3MSxkZWYsIjE2NjUzNDAxMC4iLCItMTczLjAxMjIzNiIsIjE2NjUzMzgzNyIsIjE2NjUzNDE4MyIsIi0yLjg4MTI0MjE0RSsxMCIsIi05NjI1NTYuMjU1IiwiLTk2MjU1NiIsIjQ0LjE2NDc4NCIsIjQuNzg2MjA2NjRFLTE0MjMiKTsKKyAgbWF0aHRlc3QoNDcyLGRlZiwiLTgxMC44NzkwNjMiLCI0Mzc3Ni42MTAiLCI0Mjk2NS43MzA5IiwiLTQ0NTg3LjQ4OTEiLCItMzU0OTc1MzYuNSIsIi0wLjAxODUyMzExMjMiLCIwIiwiLTgxMC44NzkwNjMiLCItMi4zNDc1ODY5MUUrMTI3MzQ1Iik7CisgIG1hdGh0ZXN0KDQ3MyxkZWYsIi0zMjcuMTI3OTM1IiwiOTM0NTg5NDQiLCI5MzQ1ODYxNi45IiwiLTkzNDU5MjcxLjEiLCItMy4wNTczMDMxNEUrMTAiLCItMC4wMDAwMDM1MDAyMzE0NSIsIjAiLCItMzI3LjEyNzkzNSIsIjIuMjkzMjMwMjFFKzIzNTAyMjg1NCIpOworICBtYXRodGVzdCg0NzQsZGVmLCI1MzkyOTUyMTguIiwiLTk1ODc5NDEuMTBFLTMwOTY0MzA5OCIsIjUzOTI5NTIxOCIsIjUzOTI5NTIxOCIsIi01LjE3MDczMDc5RS0zMDk2NDMwODMiLCItNS42MjQ3MjM5NEUrMzA5NjQzMDk5IiwiIiwiIiwiNC44MDU0NTI2OUUtODgiKTsKKyAgbWF0aHRlc3QoNDc1LGRlZiwiLTM4NjI3MDIuNjUiLCI4Nzk2MTYuNzMzIiwiLTI5ODMwODUuOTIiLCItNDc0MjMxOS4zOCIsIi0zLjM5NzY5Nzg5RSsxMiIsIi00LjM5MTM0NzQiLCItNCIsIi0zNDQyMzUuNzE4IiwiLTMuNTA2NTAxNjdFKzU3OTM5NDEiKTsKKyAgbWF0aHRlc3QoNDc2LGRlZiwiLTguMjUyOTA1MDAiLCI5OTIuMDkxNTg0RSsyNTYwNzAyNTciLCI5LjkyMDkxNTg0RSsyNTYwNzAyNTkiLCItOS45MjA5MTU4NEUrMjU2MDcwMjU5IiwiLTguMTg3NjM3NTlFKzI1NjA3MDI2MCIsIi04LjMxODY5MjY4RS0yNTYwNzAyNjAiLCIwIiwiLTguMjUyOTA1MDAiLCIxLjQ2NTc3ODg4RSs5Iik7CisgIG1hdGh0ZXN0KDQ3NyxkZWYsIjU0Njg3NTIwNS4iLCI0NDcuNTI4NTdFKzU1NzM1NzEwMSIsIjQuNDc1Mjg1NzBFKzU1NzM1NzEwMyIsIi00LjQ3NTI4NTcwRSs1NTczNTcxMDMiLCIyLjQ0NzQyMjc4RSs1NTczNTcxMTIiLCIxLjIyMTk4OTQ4RS01NTczNTcwOTUiLCIwIiwiNTQ2ODc1MjA1IiwiOC45NDQ0MzU0MkUrMzQiKTsKKyAgbWF0aHRlc3QoNDc4LGRlZiwiMTc3NjIzNDM3IiwiLTc3NzkxMTYuMTQiLCIxNjk4NDQzMjEiLCIxODU0MDI1NTMiLCItMS4zODE3NTMzNUUrMTUiLCItMjIuODMzMzciLCItMjIiLCI2NDgyODgxLjkyIiwiMi45MDA4NTMwOUUtNjQxNzM4MjAiKTsKKyAgbWF0aHRlc3QoNDc5LGRlZiwiMzc3MjA0NzM1LiIsIjEzNzY4LjE0MDEiLCIzNzcyMTg1MDMiLCIzNzcxOTA5NjciLCI1LjE5MzQwNzY0RSsxMiIsIjI3Mzk2LjkyNzQiLCIyNzM5NiIsIjEyNzY4LjgyMDQiLCIyLjA2MDY1Mjk3RSsxMTgwODIiKTsKKyAgbWF0aHRlc3QoNDgwLGRlZiwiLTI0MzUuNDkyMzkiLCItMTE3MzIuMDY0MEUtMjMzMzE1MDQiLCItMjQzNS40OTIzOSIsIi0yNDM1LjQ5MjM5IiwiMi44NTczMzUyNkUtMjMzMzE0OTciLCIyLjA3NTkyODMyRSsyMzMzMTUwMyIsIiIsIiIsIi0wLjAwMDQxMDU5NDU5Iik7CisgIG1hdGh0ZXN0KDQ4MSxkZWYsIi02MTI4NDY1LjE0RS0xMzcxMjMyOTQiLCItNTc0MjI2NC4yNyIsIi01NzQyMjY0LjI3IiwiNTc0MjI2NC4yNyIsIjMuNTE5MTI2NjRFLTEzNzEyMzI4MSIsIjEuMDY3MjU1ODVFLTEzNzEyMzI5NCIsIjAiLCItNi4xMjg0NjUxNEUtMTM3MTIzMjg4IiwiIik7CisgIG1hdGh0ZXN0KDQ4MixkZWYsIi0yODk4MDY1LjQ0IiwiLTUuMTE2MzgxMDUiLCItMjg5ODA3MC41NiIsIi0yODk4MDYwLjMyIiwiMTQ4Mjc2MDcuMSIsIjU2NjQyOC43NzMiLCI1NjY0MjgiLCItMy45NTQ2MTA2MCIsIi00Ljg5MTY5MTUxRS0zMyIpOworICBtYXRodGVzdCg0ODMsZGVmLCIxODUxMzk1LjMxRSs1OTQzODMxNjAiLCItNTUwMzAxLjQ3NSIsIjEuODUxMzk1MzFFKzU5NDM4MzE2NiIsIjEuODUxMzk1MzFFKzU5NDM4MzE2NiIsIi0xLjAxODgyNTU3RSs1OTQzODMxNzIiLCItMy4zNjQzMjkxOEUrNTk0MzgzMTYwIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQ4NCxkZWYsIjUzNjQxMjU4OS5FKzM3OTU4Mzk3NyIsIjg5OS42MDExNjEiLCI1LjM2NDEyNTg5RSszNzk1ODM5ODUiLCI1LjM2NDEyNTg5RSszNzk1ODM5ODUiLCI0LjgyNTU3Mzg4RSszNzk1ODM5ODgiLCI1Ljk2Mjc4MjMxRSszNzk1ODM5ODIiLCIiLCIiLCIiKTsKKyAgbWF0aHRlc3QoNDg1LGRlZiwiMTg1Ljg1Mjk3IiwiODY3NDE5NDgwLiIsIjg2NzQxOTY2NiIsIi04Njc0MTkyOTQiLCIxLjYxMjEyNDg3RSsxMSIsIjIuMTQyNTk2MjJFLTciLCIwIiwiMTg1Ljg1Mjk3IiwiIik7CisgIG1hdGh0ZXN0KDQ4NixkZWYsIi01LjI2NjMxMDUzIiwiLTM4MTU5NDEuMzVFKzE4MzI5MTc2MyIsIi0zLjgxNTk0MTM1RSsxODMyOTE3NjkiLCIzLjgxNTk0MTM1RSsxODMyOTE3NjkiLCIyLjAwOTU5MzIxRSsxODMyOTE3NzAiLCIxLjM4MDA4MTYyRS0xODMyOTE3NjkiLCIwIiwiLTUuMjY2MzEwNTMiLCIwLjAwMTMwMDA5MjE4Iik7CisgIG1hdGh0ZXN0KDQ4NyxkZWYsIi04LjExNTg3MDIxRS0yNDU5NDI4MDYiLCI0NTUzLjA2NzUzRSs5NDM0MTIwNDgiLCI0LjU1MzA2NzUzRSs5NDM0MTIwNTEiLCItNC41NTMwNjc1M0UrOTQzNDEyMDUxIiwiLTMuNjk1MjEwNTFFKzY5NzQ2OTI0NiIsIiIsIjAiLCItOC4xMTU4NzAyMUUtMjQ1OTQyODA2IiwiIik7CisgIG1hdGh0ZXN0KDQ4OCxkZWYsIi00MDU3NjUuMzUyIiwiODU0OTYzMjMxIiwiODU0NTU3NDY2IiwiLTg1NTM2ODk5NiIsIi0zLjQ2OTE0NDU2RSsxNCIsIi0wLjAwMDQ3NDU5OTc2OSIsIjAiLCItNDA1NzY1LjM1MiIsIiIpOworICBtYXRodGVzdCg0ODksZGVmLCItMTU5LjYwOTc1NyIsIi00MzM1Ni43NTY3IiwiLTQzNTE2LjM2NjUiLCI0MzE5Ny4xNDcwIiwiNjkyMDE2MS40MCIsIjAuMDAzNjgxMzEyMTkiLCIwIiwiLTE1OS42MDk3NTciLCItOC45NTM5Nzg0OUUtOTU1MTkiKTsKKyAgbWF0aHRlc3QoNDkwLGRlZiwiLTU2NDI0MC4yNDFFLTUwMTMxNjY3MiIsIi01NTcuNzgxOTc3IiwiLTU1Ny43ODE5NzciLCI1NTcuNzgxOTc3IiwiMy4xNDcyMzAzN0UtNTAxMzE2NjY0IiwiMS4wMTE1Nzg0N0UtNTAxMzE2NjY5IiwiMCIsIi01LjY0MjQwMjQxRS01MDEzMTY2NjciLCIiKTsKKyAgbWF0aHRlc3QoNDkxLGRlZiwiMzE4ODQ3LjI3MCIsIjU4MjEwNzg3OC5FKzM5OTYzMzQxMiIsIjUuODIxMDc4NzhFKzM5OTYzMzQyMCIsIi01LjgyMTA3ODc4RSszOTk2MzM0MjAiLCIxLjg1NjAzNTA4RSszOTk2MzM0MjYiLCI1LjQ3NzQ2MDE0RS0zOTk2MzM0MTYiLCIwIiwiMzE4ODQ3LjI3MCIsIjEuMDUwNzQyM0UrMzMiKTsKKyAgbWF0aHRlc3QoNDkyLGRlZiwiLTQ0MjYuNTk2NjMiLCI5NS4xMDk2NzY1IiwiLTQzMzEuNDg2OTUiLCItNDUyMS43MDYzMSIsIi00MjEwMTIuMTczIiwiLTQ2LjU0MjAyMTciLCItNDYiLCItNTEuNTUxNTExMCIsIi0yLjM4MDM3Mzc5RSszNDYiKTsKKyAgbWF0aHRlc3QoNDkzLGRlZiwiNjAzNy4yODMxMCIsIjU3ODI2NC4xMDUiLCI1ODQzMDEuMzg4IiwiLTU3MjIyNi44MjIiLCIzLjQ5MTE0NDExRSs5IiwiMC4wMTA0NDAzNTYiLCIwIiwiNjAzNy4yODMxMCIsIjMuNTcyNzk0ODNFKzIxODYzMjQiKTsKKyAgbWF0aHRlc3QoNDk0LGRlZiwiLTY2Ljk1NTY2OTIiLCItNTMuODUxOTQwNCIsIi0xMjAuODA3NjEwIiwiLTEzLjEwMzcyODgiLCIzNjA1LjY5MjcxIiwiMS4yNDMzMjg4MSIsIjEiLCItMTMuMTAzNzI4OCIsIjIuNTU1NTQwODZFLTk5Iik7CisgIG1hdGh0ZXN0KDQ5NSxkZWYsIi05MjQ4Ni4wMjIyIiwiLTU5OTM1Ljg1NDQiLCItMTUyNDIxLjg3NyIsIi0zMjU1MC4xNjc4IiwiNS41NDMyMjg3NkUrOSIsIjEuNTQzMDgzNCIsIjEiLCItMzI1NTAuMTY3OCIsIjEuODMxNTI2NTZFLTI5NzY0NyIpOworICBtYXRodGVzdCg0OTYsZGVmLCI4NTIxMzYyMTkuRSs5MTc3ODczNTEiLCI5MjQ2MjIxLjkxIiwiOC41MjEzNjIxOUUrOTE3Nzg3MzU5IiwiOC41MjEzNjIxOUUrOTE3Nzg3MzU5IiwiNy44NzkwNDA1OEUrOTE3Nzg3MzY2IiwiOS4yMTYwNDc2N0UrOTE3Nzg3MzUyIiwiIiwiIiwiIik7CisgIG1hdGh0ZXN0KDQ5NyxkZWYsIi0yMTIwMDk2LjE2RS0yNjkyNTM3MTgiLCI5NDM3LjAwNTE0IiwiOTQzNy4wMDUxNCIsIi05NDM3LjAwNTE0IiwiLTIuMDAwNzM1ODRFLTI2OTI1MzcwOCIsIi0yLjI0NjU3NzMxRS0yNjkyNTM3MTYiLCIwIiwiLTIuMTIwMDk2MTZFLTI2OTI1MzcxMiIsIiIpOworICBtYXRodGVzdCg0OTgsZGVmLCItNTI0NjUzLjE2OUUtODY1Nzg0MjI2IiwiMjI4MDU0LjY5OCIsIjIyODA1NC42OTgiLCItMjI4MDU0LjY5OCIsIi0xLjE5NjQ5NjIwRS04NjU3ODQyMTUiLCItMi4zMDA1NTg0OEUtODY1Nzg0MjI2IiwiMCIsIi01LjI0NjUzMTY5RS04NjU3ODQyMjEiLCIiKTsKKyAgbWF0aHRlc3QoNDk5LGRlZiwiLTI4ODE5MzEzMyIsIi0zMTIyNjg3MzcuIiwiLTYwMDQ2MTg3MCIsIjI0MDc1NjA0IiwiOC45OTkzNzA1N0UrMTYiLCIwLjkyMjkwMTAxMSIsIjAiLCItMjg4MTkzMTMzIiwiIik7CisgIG1hdGh0ZXN0KDUwMCxkZWYsIi0zNzM0ODQ3NTlFLTExMzU4OTk2NCIsIjg0NDEwMTk1OEUtODUyNTM4MjQwIiwiLTMuNzM0ODQ3NTlFLTExMzU4OTk1NiIsIi0zLjczNDg0NzU5RS0xMTM1ODk5NTYiLCItMy4xNTI1OTIxNkUtOTY2MTI4MTg3IiwiLTQuNDI0NjQwMzZFKzczODk0ODI3NSIsIiIsIiIsIjMuNzg2MDIxNDdFLTkwODcxOTY0NCIpOworICAKKyAgc3VtbWFyeSgiQXJpdGhtZXRpYyIpOworIH0KKworIC8qIG1hdGh0ZXN0IC0tIGdlbmVyYWwgYXJpdGhtZXRpYyB0ZXN0IHJvdXRpbmUKKyAgICBBcmcxICBpcyB0ZXN0IG51bWJlcgorICAgIEFyZzIgIGlzIE1hdGhDb250ZXh0CisgICAgQXJnMyAgaXMgbGVmdCBoYW5kIHNpZGUgKExIUykKKyAgICBBcmc0ICBpcyByaWdodCBoYW5kIHNpZGUgKFJIUykKKyAgICBBcmc1ICBpcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBhZGQKKyAgICBBcmc2ICBpcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzdWJ0cmFjdAorICAgIEFyZzcgIGlzIHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIG11bHRpcGx5CisgICAgQXJnOCAgaXMgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgZGl2aWRlCisgICAgQXJnOSAgaXMgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgaW50ZWdlckRpdmlkZQorICAgIEFyZzEwIGlzIHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHJlbWFpbmRlcgorICAgIEFyZzExIGlzIHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHBvd2VyCisgCisgIEZvciBwb3dlciBSSFMsIDAgaXMgYWRkZWQgdG8gdGhlIG51bWJlciwgYW55IGV4cG9uZW50IGlzIHJlbW92ZWQgYW5kCisgIHRoZSBudW1iZXIgaXMgdGhlbiByb3VuZGVkIHRvIGFuIGludGVnZXIsIHVzaW5nIGZvcm1hdChyaHMrMCwsMCkKKyAKKyAgSWYgYW4gZXJyb3Igc2hvdWxkIHJlc3VsdCBmb3IgYW4gb3BlcmF0aW9uLCB0aGUgJ2V4cGVjdGVkIHJlc3VsdCcgaXMKKyAgYW4gZW1wdHkgc3RyaW5nLgorICAqLworIAorIHByaXZhdGUgdm9pZCBtYXRodGVzdChpbnQgdGVzdCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IG1jLGphdmEubGFuZy5TdHJpbmcgc2xocyxqYXZhLmxhbmcuU3RyaW5nIHNyaHMsamF2YS5sYW5nLlN0cmluZyBhZGQsamF2YS5sYW5nLlN0cmluZyBzdWIsamF2YS5sYW5nLlN0cmluZyBtdWwsamF2YS5sYW5nLlN0cmluZyBkaXYsamF2YS5sYW5nLlN0cmluZyBpZHYsamF2YS5sYW5nLlN0cmluZyByZW0samF2YS5sYW5nLlN0cmluZyBwb3cpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbGhzOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzOworICBqYXZhLmxhbmcuU3RyaW5nIHJlcz1udWxsOworICBqYXZhLmxhbmcuU3RyaW5nIHNuPW51bGw7CisgIGludCBlPTA7CisgIAorICAKKyAgCisgIGxocz1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHNsaHMpOworICByaHM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzcmhzKTsKKyAgCisgIHRyeXsKKyAgIHJlcz1saHMuYWRkKHJocyxtYykudG9TdHJpbmcoKTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEzNyl7CisgICByZXM9IiI7CisgIH0KKyAgbWF0aHRlc3RjaGVjayh0ZXN0LGxocyxyaHMsImFkZCIscmVzLGFkZCk7CisgIAorICB0cnl7CisgICByZXM9bGhzLnN1YnRyYWN0KHJocyxtYykudG9TdHJpbmcoKTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEzOCl7CisgICByZXM9IiI7CisgIH0KKyAgbWF0aHRlc3RjaGVjayh0ZXN0LGxocyxyaHMsInN1YiIscmVzLHN1Yik7CisgIAorICB0cnl7CisgICByZXM9bGhzLm11bHRpcGx5KHJocyxtYykudG9TdHJpbmcoKTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDEzOSl7CisgICByZXM9IiI7CisgIH0KKyAgbWF0aHRlc3RjaGVjayh0ZXN0LGxocyxyaHMsIm11bCIscmVzLG11bCk7CisgIAorICB0cnl7CisgICByZXM9bGhzLmRpdmlkZShyaHMsbWMpLnRvU3RyaW5nKCk7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxNDApeworICAgcmVzPSIiOworICB9CisgIG1hdGh0ZXN0Y2hlY2sodGVzdCxsaHMscmhzLCJkaXYiLHJlcyxkaXYpOworICAKKyAgdHJ5eworICAgcmVzPWxocy5kaXZpZGVJbnRlZ2VyKHJocyxtYykudG9TdHJpbmcoKTsKKyAgfQorICBjYXRjaCAoamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24gJDE0MSl7CisgICByZXM9IiI7CisgIH0KKyAgbWF0aHRlc3RjaGVjayh0ZXN0LGxocyxyaHMsImlkdiIscmVzLGlkdik7CisgIAorICB0cnl7CisgICByZXM9bGhzLnJlbWFpbmRlcihyaHMsbWMpLnRvU3RyaW5nKCk7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxNDIpeworICAgcmVzPSIiOworICB9CisgIG1hdGh0ZXN0Y2hlY2sodGVzdCxsaHMscmhzLCJyZW0iLHJlcyxyZW0pOworICAKKyAgdHJ5eworICAgLy8gcHJlcGFyZSBhbiBpbnRlZ2VyIGZyb20gdGhlIHJocworICAgLy8gaW4gUmV4eDoKKyAgIC8vICAgbj1yaHMrMAorICAgLy8gICBlPXBvcygnRScsIG4pCisgICAvLyAgIGlmIGU+MCB0aGVuIG49bGVmdChuLGUtMSkKKyAgIC8vICAgbj1mb3JtYXQobiwsMCkKKyAgIAorICAgc249cmhzLnBsdXMobWMpLnRvU3RyaW5nKCk7CisgICBlPXNuLmluZGV4T2YoIkUiLDApOworICAgaWYgKGU+MCkgCisgICAgc249c24uc3Vic3RyaW5nKDAsZSk7CisgICBzbj0obmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbikpLmZvcm1hdCgtMSwwKTsKKyAgIAorICAgcmVzPWxocy5wb3cobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChzbiksbWMpLnRvU3RyaW5nKCk7CisgIH0KKyAgY2F0Y2ggKGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uICQxNDMpeworICAgcmVzPSIiOworICB9CisgIG1hdGh0ZXN0Y2hlY2sodGVzdCxsaHMscmhzLCJwb3ciLHJlcyxwb3cpOworICByZXR1cm47CisgIH0KKworIC8qIG1hdGh0ZXN0Y2hlY2sgLS0gY2hlY2sgZm9yIGdlbmVyYWwgbWF0aHRlc3QgZXJyb3IKKyAgICBBcmcxICBpcyB0ZXN0IG51bWJlcgorICAgIEFyZzIgIGlzIGxlZnQgaGFuZCBzaWRlIChMSFMpCisgICAgQXJnMyAgaXMgcmlnaHQgaGFuZCBzaWRlIChSSFMpCisgICAgQXJnNCAgaXMgdGhlIG9wZXJhdGlvbgorICAgIEFyZzUgIGlzIHRoZSBhY3R1YWwgcmVzdWx0CisgICAgQXJnNiAgaXMgdGhlIGV4cGVjdGVkIHJlc3VsdAorICAgIFNob3cgZXJyb3IgbWVzc2FnZSBpZiBhIHByb2JsZW0sIG90aGVyd2lzZSByZXR1cm4gcXVpZXRseQorICAgICovCisgCisgcHJpdmF0ZSB2b2lkIG1hdGh0ZXN0Y2hlY2soaW50IHRlc3QsY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGxocyxjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGphdmEubGFuZy5TdHJpbmcgb3AsamF2YS5sYW5nLlN0cmluZyBnb3QsamF2YS5sYW5nLlN0cmluZyB3YW50KXsKKyAgYm9vbGVhbiBmbGFnOworICBqYXZhLmxhbmcuU3RyaW5nIHRlc3RudW07CisgIAorICBmbGFnPXdhbnQuZXF1YWxzKChqYXZhLmxhbmcuT2JqZWN0KWdvdCk7CisgIAorICBpZiAoKCFmbGFnKSkgCisgICBzYXkoIj4iK3Rlc3QrIj4iKyIgIitsaHMudG9TdHJpbmcoKSsiICIrb3ArIiAiK3Jocy50b1N0cmluZygpKyIgIisiPSIrIiAiK3dhbnQrIiAiKyJbZ290IisiICIrZ290KyJdIik7CisgIAorICB0ZXN0bnVtPSJnZW4iK3JpZ2h0KChuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKHRlc3QrMTAwMCkpLnRvU3RyaW5nKCksMyk7CisgIAorICAobmV3IFRlc3QodGVzdG51bSkpLm9rPWZsYWc7CisgIHJldHVybjsKKyAgfQorCisgCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogU3VwcG9ydCByb3V0aW5lcyBhbmQgbWlub3IgY2xhc3NlcyBmb2xsb3cgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiBNZXRob2QgY2FsbGVkIHRvIHN1bW1hcmlzZSBwZW5kaW5nIHRlc3RzICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogQXJnMSBpcyBzZWN0aW9uIG5hbWUgKi8KKyAKKyBwcml2YXRlIHZvaWQgc3VtbWFyeShqYXZhLmxhbmcuU3RyaW5nIHNlY3Rpb24peworICBpbnQgYmFkOworICBpbnQgY291bnQ7CisgIGludCBpPTA7CisgIFRlc3QgaXRlbT1udWxsOworICBiYWQ9MDsKKyAgY291bnQ9VGVzdHMuc2l6ZSgpOworICB7aW50ICQxNDQ9Y291bnQ7aT0wO2k6Zm9yKDskMTQ0PjA7JDE0NC0tLGkrKyl7CisgICBpdGVtPShUZXN0KShUZXN0cy5lbGVtZW50QXQoaSkpOworICAgaWYgKCghaXRlbS5vaykpIAorICAgIHsKKyAgICAgYmFkKys7CisgICAgIGVycmxuKCJGYWlsZWQ6IisiICIraXRlbS5uYW1lKTsKKyAgICB9CisgICB9CisgIH0vKmkqLworICB0b3RhbGNvdW50PXRvdGFsY291bnQrY291bnQ7CisgIFRlc3RzPW5ldyBqYXZhLnV0aWwuVmVjdG9yKDEwMCk7IC8vIHJlaW5pdGlhbGl6ZQorICBpZiAoYmFkPT0wKSAKKyAgIHNheSgiT0siKyIgIitsZWZ0KHNlY3Rpb24sMTQpKyIgIityaWdodCgiWyIrY291bnQrIiAiKyJ0ZXN0c10iLDEyKSk7CisgIGVsc2UgCisgICB0aHJvdyBuZXcgRGlhZ0V4Y2VwdGlvbihzZWN0aW9uKyIgIisiW2ZhaWxlZCIrIiAiK2JhZCsiICIrIm9mIisiICIrY291bnQrIiAiKyJ0ZXN0c10iLGJhZCk7CisgfQorCisgCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiByaWdodCAtIFV0aWxpdHkgdG8gZG8gYSAncmlnaHQnIG9uIGEgSmF2YSBTdHJpbmcgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogQXJnMSBpcyBzdHJpbmcgdG8gcmlnaHQtanVzdGlmeSAqLworIC8qIEFyZzIgaXMgZGVzaXJlZCBsZW5ndGggKi8KKyAKKyBwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIHJpZ2h0KGphdmEubGFuZy5TdHJpbmcgcyxpbnQgbGVuKXsKKyAgaW50IHNsZW47CisgIHNsZW49cy5sZW5ndGgoKTsKKyAgaWYgKHNsZW49PWxlbikgCisgICByZXR1cm4gczsgLy8gbGVuZ3RoIGp1c3QgcmlnaHQKKyAgaWYgKHNsZW4+bGVuKSAKKyAgIHJldHVybiBzLnN1YnN0cmluZyhzbGVuLWxlbik7IC8vIHRydW5jYXRlIG9uIGxlZnQKKyAgLy8gdG9vIHNob3J0CisgIHJldHVybiAobmV3IGphdmEubGFuZy5TdHJpbmcobmV3IGNoYXJbbGVuLXNsZW5dKSkucmVwbGFjZSgnXDAwMCcsJyAnKS5jb25jYXQocyk7CisgIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogbGVmdCAtIFV0aWxpdHkgdG8gZG8gYSAnbGVmdCcgb24gYSBKYXZhIFN0cmluZyAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIEFyZzEgaXMgc3RyaW5nIHRvIGxlZnQtanVzdGlmeSAqLworIC8qIEFyZzIgaXMgZGVzaXJlZCBsZW5ndGggKi8KKyAKKyBwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIGxlZnQoamF2YS5sYW5nLlN0cmluZyBzLGludCBsZW4peworICBpbnQgc2xlbjsKKyAgc2xlbj1zLmxlbmd0aCgpOworICBpZiAoc2xlbj09bGVuKSAKKyAgIHJldHVybiBzOyAvLyBsZW5ndGgganVzdCByaWdodAorICBpZiAoc2xlbj5sZW4pIAorICAgcmV0dXJuIHMuc3Vic3RyaW5nKDAsbGVuKTsgLy8gdHJ1bmNhdGUgb24gcmlnaHQKKyAgLy8gdG9vIHNob3J0CisgIHJldHVybiBzLmNvbmNhdCgobmV3IGphdmEubGFuZy5TdHJpbmcobmV3IGNoYXJbbGVuLXNsZW5dKSkucmVwbGFjZSgnXDAwMCcsJyAnKSk7CisgIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgLyogc2F5IC0gVXRpbGl0eSB0byBkbyBhIGRpc3BsYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIEFyZzEgaXMgc3RyaW5nIHRvIGRpc3BsYXksIG9taXR0ZWQgaWYgbm9uZSAqLworIC8qICAgICAgICAgW251bGwgb3Igb21pdHRlZCBnaXZlcyBibGFuayBsaW5lXSAqLworIC8vIHRoaXMgdmVyc2lvbiBkb2Vzbid0IGhlZWQgY29udGludWF0aW9uIGZpbmFsIGNoYXJhY3RlcgorIAorIHByaXZhdGUgdm9pZCBzYXkoKXsKKyAgc2F5KChqYXZhLmxhbmcuU3RyaW5nKW51bGwpO3JldHVybjsKKyAgfQorIHByaXZhdGUgdm9pZCBzYXkoamF2YS5sYW5nLlN0cmluZyBzKXsKKyAgaWYgKHM9PW51bGwpIAorICAgcz0iICAiOworICBsb2dsbihzKTsKKyB9CisKKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIFNjYWZmb2xkaW5nIGZvciBzdGFuZC1hbG9uZSBydW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiogRW50cnkgcG9pbnQgZm9yIHN0YW5kLWFsb25lIHJ1bi4gIEl0IGNvbnN0cnVjdHMgYQorICAqICA8Y29kZT5EaWFnQmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGFuZCB0aGVuIGludm9rZXMgaXRzCisgICogIHtAbGluayAjZGlhZ3J1bihib29sZWFuKX0gbWV0aG9kIHRvIHJ1biB0aGUgdGVzdAorICAqICBzdWl0ZS4KKyAgKgorICAqIEBwYXJhbSBhcmdzIFRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnQgc3RyaW5nIGFycmF5LgorICAqICAgaWYgdGhlIGZpcnN0IHdvcmQgaXMgJzxjb2RlPmNvbnRpbnVlPC9jb2RlPicgdGhlbiB0cnkgYW5kIHJ1bgorICAqICAgYWxsIHRlc3RzLCBvdGhlcndpc2Ugc3RvcCBhZnRlciB0aGUgZmlyc3QgZmFpbGluZyB0ZXN0IGdyb3VwLgorICAqLworIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgbmV3IERpYWdCaWdEZWNpbWFsKCkucnVuKGFyZ3MpOworIH0KKyBwdWJsaWMgdm9pZCBUZXN0QmlnRGVjaW1hbCgpeworICAgICAgYm9vbGVhbiAkY29udGludWU7CisgICAgICBpbnQgZmFpbHM7CisgICAgICAkY29udGludWU9ZmFsc2U7CisgICAgICBmYWlscz1kaWFncnVuKCRjb250aW51ZSk7IC8vIGFuZCBydW4gdGhlIHRlc3RzCisgICAgICBpZihmYWlscyE9MCkgeworICAgICAgICAgZXJybG4oIkRpYWdub3N0aWMgVGVzdHMgZm9yIG1hdGggZmFpbGVkLiBOdW1iZXIgb2YgZXJyb3JzOiAiICtmYWlscyk7CisgICAgICB9CisgIH0KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBUZXN0IC0tIHJlcHJlc2VudHMgYSB0ZXN0IGFuZCBpdHMgc3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogQ29weXJpZ2h0IElCTSBDb3Jwb3JhdGlvbiAxOTk4LCAyMDAwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gICAgICAgICovCisvKiBBdXRob3I6IE1pa2UgQ293bGlzaGF3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogMTk5OC4wNy4xNSBJbml0aWFsIHZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAyMDAwLjAzLjI3IENoYW5nZSB0byBqYXZhZG9jIGNvbW1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKworLyoqCisgKiBUaGUgPGNvZGU+VGVzdDwvY29kZT4gY2xhc3MgaXMgdXNlZCB0byByZWNvcmQgYSBzcGVjaWZpYyB0ZXN0LgorICogV2hlbiBjb25zdHJ1Y3RlZCwgaXQgbm90ZXMgdGhlIG5hbWUgb2YgdGhlIHRlc3QgYW5kIGFkZHMgdGhlIHRlc3QKKyAqIHRvIHRoZSBsaXN0IG9mIHRlc3RzIGhlbGQgYnkgdGhlIHBhcmVudC4KKyAqCisgKiBJdHMgPGNvZGU+b2s8L2ZsYWc+IGlzIGFzc2lnbmVkIGRpcmVjdGx5IHRvIHJlY29yZCB3aGV0aGVyIHRoZQorICogdGVzdCBzdWNjZWVkZWQgKDEpIG9yIGZhaWxlZCAoMCkuCisgKgorICogQHNlZSAgICAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsCisgKiBAdmVyc2lvbiAxLjAwIDIwMDAuMDMuMjcKKyAqIEBhdXRob3IgIE1pa2UgQ293bGlzaGF3CisgKi8KKyAKKyBwdWJsaWMgY2xhc3MgVGVzdHsKKyAgcHJpdmF0ZSBmaW5hbCB0cmFuc2llbnQgamF2YS5sYW5nLlN0cmluZyAkMD0iRGlhZ0JpZ0RlY2ltYWwubnJ4IjsKKyAgLyogcHJvcGVydGllcyBzaGFyZWQgdHJhbnNpZW50ICovCisgLyoqIFRoZSBuYW1lIG9mIHRoZSB0ZXN0LiAqLworICB0cmFuc2llbnQgamF2YS5sYW5nLlN0cmluZyBuYW1lOworIC8qKiBTdWNjZXNzIGZsYWc7IHdpbGwgYmUgc2V0IHRvIDEgKHRydWUpIGlmIHRoZSB0ZXN0IHN1Y2NlZWRlZCwgb3IgMAorICAqIChmYWxzZSkgaWYgdGhlIHRlc3QgZmFpbGVkLgorICAqLworICB0cmFuc2llbnQgYm9vbGVhbiBvazsKKworIAorIC8qKgorICAqIENvbnN0cnVjdHMgYSBuZXcgPGNvZGU+VGVzdDwvY29kZT4gd2l0aCBhIHNwZWNpZmllZCBuYW1lLgorICAqCisgICogQHBhcmFtIHRlc3RuYW1lIFRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+IG5hbWluZyB0aGUgdGVzdC4KKyAgKi8KKyAgCisgIHB1YmxpYyBUZXN0KGphdmEubGFuZy5TdHJpbmcgdGVzdG5hbWUpe3N1cGVyKCk7CisgICBuYW1lPXRlc3RuYW1lOyAvLyBzYXZlIHRoZSBuYW1lCisgICBEaWFnQmlnRGVjaW1hbC50aGlzLlRlc3RzLmFkZEVsZW1lbnQoKGphdmEubGFuZy5PYmplY3QpdGhpcyk7IC8vIGFuZCBhZGQgdG8gcGFyZW50J3MgbGlzdAorICB9CisgIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIERpYWdFeGNlcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIENvcHlyaWdodCBJQk0gQ29ycG9yYXRpb24gMTk5NiwgMjAwMC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgICAgICAqLworIC8qIEF1dGhvcjogTWlrZSBDb3dsaXNoYXcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIDE5OTYuMDUuMjcgSW5pdGlhbCB2ZXJzaW9uIGluIE5ldFJleHggKGFzIERpYWdYKSAgICAgICAgICAgICAgICAgICAqLworIC8qIDE5OTguMDYuMjUgQ29waWVkIGZyb20gTmV0UmV4eCB0ZXN0IHN1aXRlICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIDE5OTkuMDcuMDMgQWRkIGZhaWwgY291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qIDIwMDAuMDMuMjcgQ2hhbmdlIHRvIGphdmFkb2MgY29tbWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIAorIC8qKgorICAqIFRoZSA8Y29kZT5EaWFnRXhjZXB0aW9uPC9jb2RlPiBjbGFzcyBpcyB1c2VkIHRvIHNpZ25hbCB0aGUgZmFpbHVyZQorICAqIG9mIGEgdGVzdCBncm91cC4gIEl0IHJlY29yZHMgdGhlIG51bWJlciBvZiBmYWlsdXJlcyBpbiB0aGUgZ3JvdXAuCisgICoKKyAgKiBAc2VlICAgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwKKyAgKiBAdmVyc2lvbiAxLjAwIDIwMDAuMDMuMjcKKyAgKiBAYXV0aG9yICBNaWtlIENvd2xpc2hhdworICAqLworIAorIHB1YmxpYyBzdGF0aWMgY2xhc3MgRGlhZ0V4Y2VwdGlvbiBleHRlbmRzIGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9ueworICBwcml2YXRlIGZpbmFsIHRyYW5zaWVudCBqYXZhLmxhbmcuU3RyaW5nICQwPSJEaWFnQmlnRGVjaW1hbC5ucngiOworIAorICAvKiBwcm9wZXJ0aWVzIHNoYXJlZCB0cmFuc2llbnQgKi8KKyAvKiogdGhlIGNvdW50IG9mIGZhaWxlZCB0ZXN0cyBpbiB0aGUgZ3JvdXAgd2hpY2ggc2lnbmFsbGVkIHRoaXMKKyAgICogZXhjZXB0aW9uLgorICAgKi8KKyAgdHJhbnNpZW50IGludCBmYWlsY291bnQ9MDsKKyAvLyBudW1iZXIgb2YgdGVzdHMgd2hpY2ggZmFpbGVkCisgCisgLyoqCisgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5EaWFnRXhjZXB0aW9uPC9jb2RlPiB3aXRoIGEgbWVzc2FnZSBhbmQKKyAgKiBmYWlsdXJlIGNvdW50LiAgVGhpcyBpcyB0aHJvd24gd2hlbiBhIGdyb3VwIG9mIHRlc3RzIGZhaWxzLgorICAqCisgICogQHBhcmFtIG1lc3NhZ2UgVGhlIDxjb2RlPlN0cmluZzwvY29kZT4gbWVzc2FnZSBkZXNjcmliaW5nIHRoZSBncm91cC4KKyAgKiBAcGFyYW0gZmFpbHMgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBudW1iZXIgb2YgZmFpbGVkIHRlc3RzIGluIHRoZSAgZ3JvdXAuCisgICovCisgIAorICBwdWJsaWMgRGlhZ0V4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nIG1lc3NhZ2UsaW50IGZhaWxzKXsKKyAgIHN1cGVyKG1lc3NhZ2UpOworICAgZmFpbGNvdW50PWZhaWxzOworICB9CisgfX0KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Bc3Ryb1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Bc3Ryb1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZDMyYTg5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0FzdHJvVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjkzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKKworLy8gQXN0cm9UZXN0CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckFzdHJvbm9tZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckFzdHJvbm9tZXIuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CisKKy8vIFRPRE86IHRyeSBmaW5kaW5nIG5leHQgbmV3IG1vb24gYWZ0ZXIgIDA3LzI4LzE5ODQgMTY6MDAgR01UCisKK3B1YmxpYyBjbGFzcyBBc3Ryb1Rlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBBc3Ryb1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBQSSA9IE1hdGguUEk7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U29sYXJMb25naXR1ZGUoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikpOworICAgICAgICBDYWxlbmRhckFzdHJvbm9tZXIgYXN0cm8gPSBuZXcgQ2FsZW5kYXJBc3Ryb25vbWVyKCk7CisgICAgICAgIGZpbmFsIGRvdWJsZSB0ZXN0c1tdW10gPSB7CisgICAgICAgICAgICB7IDE5ODAsIDcsIDI3LCAwMCwgMDAsIDEyNC4xMTQzNDcgfSwKKyAgICAgICAgICAgIHsgMTk4OCwgNywgMjcsIDAwLCAwMCwgMTI0LjE4NzczMiB9LAorICAgICAgICB9OworICAgICAgICBsb2dsbigiIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGdjLmNsZWFyKCk7CisgICAgICAgICAgICBnYy5zZXQoKGludCl0ZXN0c1tpXVswXSwgKGludCl0ZXN0c1tpXVsxXS0xLCAoaW50KXRlc3RzW2ldWzJdLCAoaW50KXRlc3RzW2ldWzNdLCAoaW50KSB0ZXN0c1tpXVs0XSk7CisKKyAgICAgICAgICAgIGFzdHJvLnNldERhdGUoZ2MuZ2V0VGltZSgpKTsKKworICAgICAgICAgICAgZG91YmxlIGxvbmdpdHVkZSA9IGFzdHJvLmdldFN1bkxvbmdpdHVkZSgpOworICAgICAgICAgICAgbG9uZ2l0dWRlID0gMDsKKyAgICAgICAgICAgIEVxdWF0b3JpYWwgcmVzdWx0ID0gYXN0cm8uZ2V0U3VuUG9zaXRpb24oKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0THVuYXJQb3NpdGlvbigpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIobmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKSk7CisgICAgICAgIENhbGVuZGFyQXN0cm9ub21lciBhc3RybyA9IG5ldyBDYWxlbmRhckFzdHJvbm9tZXIoKTsKKyAgICAgICAgZmluYWwgZG91YmxlIHRlc3RzW11bXSA9IHsKKyAgICAgICAgICAgIHsgMTk3OSwgMiwgMjYsIDE2LCAwMCwgIDAsIDAgfSwKKyAgICAgICAgfTsKKyAgICAgICAgbG9nbG4oIiIpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGdjLmNsZWFyKCk7CisgICAgICAgICAgICBnYy5zZXQoKGludCl0ZXN0c1tpXVswXSwgKGludCl0ZXN0c1tpXVsxXS0xLCAoaW50KXRlc3RzW2ldWzJdLCAoaW50KXRlc3RzW2ldWzNdLCAoaW50KSB0ZXN0c1tpXVs0XSk7CisgICAgICAgICAgICBhc3Ryby5zZXREYXRlKGdjLmdldFRpbWUoKSk7CisKKyAgICAgICAgICAgIEVxdWF0b3JpYWwgcmVzdWx0ID0gYXN0cm8uZ2V0TW9vblBvc2l0aW9uKCk7CisgICAgICAgICAgICByZXN1bHQgPSBudWxsOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29vcmRpbmF0ZXMoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikpOworICAgICAgICBDYWxlbmRhckFzdHJvbm9tZXIgYXN0cm8gPSBuZXcgQ2FsZW5kYXJBc3Ryb25vbWVyKCk7CisgICAgICAgIEVxdWF0b3JpYWwgcmVzdWx0ID0gYXN0cm8uZWNsaXB0aWNUb0VxdWF0b3JpYWwoMTM5LjY4NjExMSAqIFBJLyAxODAuMCwgNC44NzUyNzgqIFBJIC8gMTgwLjApOworICAgICAgICBsb2dsbigicmVzdWx0IGlzICIgKyByZXN1bHQgKyAiOyAgIiArIHJlc3VsdC50b0htc1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIikpOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk1OCwgQ2FsZW5kYXIuQVVHVVNULCAxNSk7CisgICAgICAgIERhdGUgdGhlbiA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIENhbGVuZGFyQXN0cm9ub21lciBteWFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcih0aGVuKTsKKworICAgICAgICAvL0xhdGl0dWRlOiAgMzQgZGVncmVlcyAwNScgTm9ydGgKKyAgICAgICAgLy9Mb25naXR1ZGU6ICAxMTggZGVncmVlcyAyMicgV2VzdAorICAgICAgICBkb3VibGUgbGFMYXQgPSAzNCArIDVkLzYwLCBsYUxvbmcgPSAzNjAgLSAoMTE4ICsgMjJkLzYwKTsKKyAgICAgICAgQ2FsZW5kYXJBc3Ryb25vbWVyIG15YXN0cm8yID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcihsYUxvbmcsIGxhTGF0KTsKKworICAgICAgICBkb3VibGUgZWNsTGF0ID0gbGFMYXQgKiBNYXRoLlBJIC8gMzYwOworICAgICAgICBkb3VibGUgZWNsTG9uZyA9IGxhTG9uZyAqIE1hdGguUEkgLyAzNjA7CisgICAgICAgIEVjbGlwdGljIGVjbCA9IG5ldyBFY2xpcHRpYyhlY2xMYXQsIGVjbExvbmcpOworICAgICAgICBsb2dsbigiZWNsaXB0aWM6ICIgKyBlY2wpOworCisgICAgICAgIENhbGVuZGFyQXN0cm9ub21lciBteWFzdHJvMyA9IG5ldyBDYWxlbmRhckFzdHJvbm9tZXIoKTsKKyAgICAgICAgbXlhc3RybzMuc2V0SnVsaWFuRGF5KCg0NzEzICsgMjAwMCkgKiAzNjUuMjUpOworCisgICAgICAgIENhbGVuZGFyQXN0cm9ub21lcltdIGFzdHJvbm9tZXJzID0geworICAgICAgICAgICAgbXlhc3RybywgbXlhc3RybzIsIG15YXN0cm8zLCBteWFzdHJvMiAvLyBjaGVjayBjYWNoZQorCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhc3Ryb25vbWVycy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gYXN0cm9ub21lcnNbaV07CisKKyAgICAgICAgICAgIGxvZ2xuKCJhc3RybzogIiArIGFzdHJvKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICB0aW1lOiAiICsgYXN0cm8uZ2V0VGltZSgpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBkYXRlOiAiICsgYXN0cm8uZ2V0RGF0ZSgpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBjZW50OiAiICsgYXN0cm8uZ2V0SnVsaWFuQ2VudHVyeSgpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBndyBzaWRlcmVhbDogIiArIGFzdHJvLmdldEdyZWVud2ljaFNpZGVyZWFsKCkpOworICAgICAgICAgICAgbG9nbG4oIiAgIGxvYyBzaWRlcmVhbDogIiArIGFzdHJvLmdldExvY2FsU2lkZXJlYWwoKSk7CisgICAgICAgICAgICBsb2dsbigiICAgZXF1IGVjbDogIiArIGFzdHJvLmVjbGlwdGljVG9FcXVhdG9yaWFsKGVjbCkpOworICAgICAgICAgICAgbG9nbG4oIiAgIGVxdSBsb25nOiAiICsgYXN0cm8uZWNsaXB0aWNUb0VxdWF0b3JpYWwoZWNsTG9uZykpOworICAgICAgICAgICAgbG9nbG4oIiAgIGhvcml6OiAiICsgYXN0cm8uZWNsaXB0aWNUb0hvcml6b24oZWNsTG9uZykpOworICAgICAgICAgICAgbG9nbG4oIiAgIHN1bnJpc2U6ICIgKyBuZXcgRGF0ZShhc3Ryby5nZXRTdW5SaXNlU2V0KHRydWUpKSk7CisgICAgICAgICAgICBsb2dsbigiICAgc3Vuc2V0OiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0U3VuUmlzZVNldChmYWxzZSkpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBtb29uIHBoYXNlOiAiICsgYXN0cm8uZ2V0TW9vblBoYXNlKCkpOworICAgICAgICAgICAgbG9nbG4oIiAgIG1vb25yaXNlOiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0TW9vblJpc2VTZXQodHJ1ZSkpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICBtb29uc2V0OiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0TW9vblJpc2VTZXQoZmFsc2UpKSk7CisgICAgICAgICAgICBsb2dsbigiICAgcHJldiBzdW1tZXIgc29sc3RpY2U6ICIgKyBuZXcgRGF0ZShhc3Ryby5nZXRTdW5UaW1lKENhbGVuZGFyQXN0cm9ub21lci5TVU1NRVJfU09MU1RJQ0UsIGZhbHNlKSkpOworICAgICAgICAgICAgbG9nbG4oIiAgIG5leHQgc3VtbWVyIHNvbHN0aWNlOiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0U3VuVGltZShDYWxlbmRhckFzdHJvbm9tZXIuU1VNTUVSX1NPTFNUSUNFLCB0cnVlKSkpOworICAgICAgICAgICAgbG9nbG4oIiAgIHByZXYgZnVsbCBtb29uOiAiICsgbmV3IERhdGUoYXN0cm8uZ2V0TW9vblRpbWUoQ2FsZW5kYXJBc3Ryb25vbWVyLkZVTExfTU9PTiwgZmFsc2UpKSk7CisgICAgICAgICAgICBsb2dsbigiICAgbmV4dCBmdWxsIG1vb246ICIgKyBuZXcgRGF0ZShhc3Ryby5nZXRNb29uVGltZShDYWxlbmRhckFzdHJvbm9tZXIuRlVMTF9NT09OLCB0cnVlKSkpOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBEQVlfTVMgPSAyNCo2MCo2MCoxMDAwTDsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RTdW5yaXNlVGltZXMoKSB7CisKKyAgICAgICAgLy8gICAgICAgIGxvZ2xuKCJTdW5yaXNlL1N1bnNldCB0aW1lcyBmb3IgU2FuIEpvc2UsIENhbGlmb3JuaWEsIFVTQSIpOworICAgICAgICAvLyAgICAgICAgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigtMTIxLjU1LCAzNy4yMCk7CisgICAgICAgIC8vICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisKKyAgICAgICAgLy8gV2UnbGwgdXNlIGEgdGFibGUgZ2VuZXJhdGVkIGJ5IHRoZSBVTlNPIHdlYnNpdGUgYXMgb3VyIHJlZmVyZW5jZQorICAgICAgICAvLyBGcm9tOiBodHRwOi8vYWEudXNuby5uYXZ5Lm1pbC8KKyAgICAgICAgLy8tTG9jYXRpb246IFcwNzkgMjUsIE40MyA0MAorICAgICAgICAvLy1SaXNlIGFuZCBTZXQgZm9yIHRoZSBTdW4gZm9yIDIwMDEKKyAgICAgICAgLy8tWm9uZTogIDRoIFdlc3Qgb2YgR3JlZW53aWNoCisgICAgICAgIGludFtdIFVTTk8gPSB7CisgICAgICAgICAgICAgNiw1OSwgMTksNDUsCisgICAgICAgICAgICAgNiw1NywgMTksNDYsCisgICAgICAgICAgICAgNiw1NiwgMTksNDcsCisgICAgICAgICAgICAgNiw1NCwgMTksNDgsCisgICAgICAgICAgICAgNiw1MiwgMTksNDksCisgICAgICAgICAgICAgNiw1MCwgMTksNTEsCisgICAgICAgICAgICAgNiw0OCwgMTksNTIsCisgICAgICAgICAgICAgNiw0NywgMTksNTMsCisgICAgICAgICAgICAgNiw0NSwgMTksNTQsCisgICAgICAgICAgICAgNiw0MywgMTksNTUsCisgICAgICAgICAgICAgNiw0MiwgMTksNTcsCisgICAgICAgICAgICAgNiw0MCwgMTksNTgsCisgICAgICAgICAgICAgNiwzOCwgMTksNTksCisgICAgICAgICAgICAgNiwzNiwgMjAsIDAsCisgICAgICAgICAgICAgNiwzNSwgMjAsIDEsCisgICAgICAgICAgICAgNiwzMywgMjAsIDMsCisgICAgICAgICAgICAgNiwzMSwgMjAsIDQsCisgICAgICAgICAgICAgNiwzMCwgMjAsIDUsCisgICAgICAgICAgICAgNiwyOCwgMjAsIDYsCisgICAgICAgICAgICAgNiwyNywgMjAsIDcsCisgICAgICAgICAgICAgNiwyNSwgMjAsIDgsCisgICAgICAgICAgICAgNiwyMywgMjAsMTAsCisgICAgICAgICAgICAgNiwyMiwgMjAsMTEsCisgICAgICAgICAgICAgNiwyMCwgMjAsMTIsCisgICAgICAgICAgICAgNiwxOSwgMjAsMTMsCisgICAgICAgICAgICAgNiwxNywgMjAsMTQsCisgICAgICAgICAgICAgNiwxNiwgMjAsMTYsCisgICAgICAgICAgICAgNiwxNCwgMjAsMTcsCisgICAgICAgICAgICAgNiwxMywgMjAsMTgsCisgICAgICAgICAgICAgNiwxMSwgMjAsMTksCisgICAgICAgIH07CisKKyAgICAgICAgbG9nbG4oIlN1bnJpc2UvU3Vuc2V0IHRpbWVzIGZvciBUb3JvbnRvLCBDYW5hZGEiKTsKKyAgICAgICAgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigtKDc5KzI1LzYwKSwgNDMrNDAvNjApOworCisgICAgICAgIC8vIEFzIG9mIElDVTRKIDIuOCB0aGUgSUNVNEogdGltZSB6b25lcyBpbXBsZW1lbnQgcGFzcy10aHJvdWdoCisgICAgICAgIC8vIHRvIHRoZSB1bmRlcmx5aW5nIEpESy4gIEJlY2F1c2Ugb2YgdmFyaWF0aW9uIGluIHRoZQorICAgICAgICAvLyB1bmRlcmx5aW5nIEpES3MsIHdlIGhhdmUgdG8gdXNlIGEgZml4ZWQtb2Zmc2V0CisgICAgICAgIC8vIFNpbXBsZVRpbWVab25lIHRvIGdldCBjb25zaXN0ZW50IGJlaGF2aW9yIGJldHdlZW4gSkRLcy4KKyAgICAgICAgLy8gVGhlIG9mZnNldCB3ZSB3YW50IGlzIFstMTgwMDAwMDAsIDM2MDAwMDBdIChyYXcsIGRzdCkuCisgICAgICAgIC8vIFthbGl1IDEwLzE1LzAzXQorCisgICAgICAgIC8vIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTW9udHJlYWwiKTsKKyAgICAgICAgVGltZVpvbmUgdHogPSBuZXcgU2ltcGxlVGltZVpvbmUoLTE4MDAwMDAwICsgMzYwMDAwMCwgIk1vbnRyZWFsKEZJWEVEKSIpOworCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih0eiwgTG9jYWxlLlVTKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsMiA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih0eiwgTG9jYWxlLlVTKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMjAwMSk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkFQUklMKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAxMik7IC8vIG11c3QgYmUgbmVhciBsb2NhbCBub29uIGZvciBnZXRTdW5SaXNlU2V0IHRvIHdvcmsKKworICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0Lk1FRElVTSwgTG9jYWxlLlVTKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZjIgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0Lk1FRElVTSwgRGF0ZUZvcm1hdC5NRURJVU0sIExvY2FsZS5VUyk7CisgICAgICAgIERhdGVGb3JtYXQgZGF5ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0Lk1FRElVTSwgTG9jYWxlLlVTKTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCAzMDsgaSsrKSB7CisgICAgICAgICAgICBhc3Ryby5zZXREYXRlKGNhbC5nZXRUaW1lKCkpOworCisgICAgICAgICAgICBEYXRlIHN1bnJpc2UgPSBuZXcgRGF0ZShhc3Ryby5nZXRTdW5SaXNlU2V0KHRydWUpKTsKKyAgICAgICAgICAgIERhdGUgc3Vuc2V0ID0gbmV3IERhdGUoYXN0cm8uZ2V0U3VuUmlzZVNldChmYWxzZSkpOworCisgICAgICAgICAgICBjYWwyLnNldFRpbWUoY2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICBjYWwyLnNldChDYWxlbmRhci5TRUNPTkQsICAgICAgMCk7CisgICAgICAgICAgICBjYWwyLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgMCk7CisKKyAgICAgICAgICAgIGNhbDIuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCBVU05PWzQqaSswXSk7CisgICAgICAgICAgICBjYWwyLnNldChDYWxlbmRhci5NSU5VVEUsICAgICAgVVNOT1s0KmkrMV0pOworICAgICAgICAgICAgRGF0ZSBleHByaXNlID0gY2FsMi5nZXRUaW1lKCk7CisgICAgICAgICAgICBjYWwyLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgVVNOT1s0KmkrMl0pOworICAgICAgICAgICAgY2FsMi5zZXQoQ2FsZW5kYXIuTUlOVVRFLCAgICAgIFVTTk9bNCppKzNdKTsKKyAgICAgICAgICAgIERhdGUgZXhwc2V0ID0gY2FsMi5nZXRUaW1lKCk7CisgICAgICAgICAgICAvLyBDb21wdXRlIGRlbHRhIG9mIHdoYXQgd2UgZ290IHRvIHRoZSBVU05PIGRhdGEsIGluIHNlY29uZHMKKyAgICAgICAgICAgIGludCBkZWx0YXJpc2UgPSBNYXRoLmFicygoaW50KShzdW5yaXNlLmdldFRpbWUoKSAtIGV4cHJpc2UuZ2V0VGltZSgpKSAvIDEwMDApOworICAgICAgICAgICAgaW50IGRlbHRhc2V0ID0gTWF0aC5hYnMoKGludCkoc3Vuc2V0LmdldFRpbWUoKSAtIGV4cHNldC5nZXRUaW1lKCkpIC8gMTAwMCk7CisKKyAgICAgICAgICAgIC8vIEFsbG93IGEgZGV2aWF0aW9uIG9mIDAuLk1BWF9ERVYgc2Vjb25kcworICAgICAgICAgICAgLy8gSXQgd291bGQgYmUgbmljZSB0byBnZXQgZG93biB0byA2MCBzZWNvbmRzLCBidXQgYXQgdGhpcworICAgICAgICAgICAgLy8gcG9pbnQgdGhhdCBhcHBlYXJzIHRvIGJlIGltcG9zc2libGUgd2l0aG91dCBhIHJlZG8gb2YgdGhlCisgICAgICAgICAgICAvLyBhbGdvcml0aG0gdXNpbmcgc29tZXRoaW5nIG1vcmUgYWR2YW5jZWQgdGhhbiBEdWZmZXR0LVNtaXRoLgorICAgICAgICAgICAgZmluYWwgaW50IE1BWF9ERVYgPSAxODA7CisgICAgICAgICAgICBpZiAoZGVsdGFyaXNlID4gTUFYX0RFViB8fCBkZWx0YXNldCA+IE1BWF9ERVYpIHsKKyAgICAgICAgICAgICAgICBpZiAoZGVsdGFyaXNlID4gTUFYX0RFVikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGRheS5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBTdW5yaXNlOiAiICsgZGYyLmZvcm1hdChzdW5yaXNlKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgKFVTTk8gIiArIGRmLmZvcm1hdChleHByaXNlKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgZD0iICsgZGVsdGFyaXNlICsgInMpIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oZGF5LmZvcm1hdChjYWwuZ2V0VGltZSgpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIFN1bnJpc2U6ICIgKyBkZi5mb3JtYXQoc3VucmlzZSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIChVU05PICIgKyBkZi5mb3JtYXQoZXhwcmlzZSkgKyAiKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZGVsdGFzZXQgPiBNQVhfREVWKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgZGF5LmZvcm1hdChjYWwuZ2V0VGltZSgpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIFN1bnNldDogIiArIGRmMi5mb3JtYXQoc3Vuc2V0KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgKFVTTk8gIiArIGRmLmZvcm1hdChleHBzZXQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBkPSIgKyBkZWx0YXNldCArICJzKSIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKGRheS5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBTdW5zZXQ6ICIgKyBkZi5mb3JtYXQoc3Vuc2V0KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgKFVTTk8gIiArIGRmLmZvcm1hdChleHBzZXQpICsgIikiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKGRheS5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIFN1bnJpc2U6ICIgKyBkZi5mb3JtYXQoc3VucmlzZSkgKworICAgICAgICAgICAgICAgICAgICAgICIgKFVTTk8gIiArIGRmLmZvcm1hdChleHByaXNlKSArICIpIiArCisgICAgICAgICAgICAgICAgICAgICAgIiwgU3Vuc2V0OiAiICsgZGYuZm9ybWF0KHN1bnNldCkgKworICAgICAgICAgICAgICAgICAgICAgICIgKFVTTk8gIiArIGRmLmZvcm1hdChleHBzZXQpICsgIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgIH0KKworLy8gICAgICAgIENhbGVuZGFyQXN0cm9ub21lciBhID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigtKDcxKzUvNjApLCA0MiszNy82MCk7CisvLyAgICAgICAgY2FsLmNsZWFyKCk7CisvLyAgICAgICAgY2FsLnNldChjYWwuWUVBUiwgMTk4Nik7CisvLyAgICAgICAgY2FsLnNldChjYWwuTU9OVEgsIGNhbC5NQVJDSCk7CisvLyAgICAgICAgY2FsLnNldChjYWwuREFURSwgMTApOworLy8gICAgICAgIGNhbC5zZXQoY2FsLllFQVIsIDE5ODgpOworLy8gICAgICAgIGNhbC5zZXQoY2FsLk1PTlRILCBjYWwuSlVMWSk7CisvLyAgICAgICAgY2FsLnNldChjYWwuREFURSwgMjcpOworLy8gICAgICAgIGEuc2V0RGF0ZShjYWwuZ2V0VGltZSgpKTsKKy8vICAgICAgICBsb25nIHIgPSBhLmdldFN1blJpc2VTZXQyKHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNpY3MoKSB7CisgICAgICAgIC8vIENoZWNrIHRoYXQgb3VyIEpEIGNvbXB1dGF0aW9uIGlzIHRoZSBzYW1lIGFzIHRoZSBib29rJ3MgKHAuIDg4KQorICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihuZXcgU2ltcGxlVGltZVpvbmUoMCwgIlVUQyIpKTsKKyAgICAgICAgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigpOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwzID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSwgTG9jYWxlLlVTKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkMyA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwzLCBEYXRlRm9ybWF0Lk1FRElVTSxEYXRlRm9ybWF0Lk1FRElVTSxMb2NhbGUuVVMpOworICAgICAgICBjYWwzLmNsZWFyKCk7CisgICAgICAgIGNhbDMuc2V0KENhbGVuZGFyLllFQVIsIDE5ODApOworICAgICAgICBjYWwzLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVMWSk7CisgICAgICAgIGNhbDMuc2V0KENhbGVuZGFyLkRBVEUsIDI3KTsKKyAgICAgICAgYXN0cm8uc2V0RGF0ZShjYWwzLmdldFRpbWUoKSk7CisgICAgICAgIGRvdWJsZSBqZCA9IGFzdHJvLmdldEp1bGlhbkRheSgpIC0gMjQ0Nzg5MS41OworICAgICAgICBkb3VibGUgZXhwID0gLTM0NDQ7CisgICAgICAgIGlmIChqZCA9PSBleHApIHsKKyAgICAgICAgICAgIGxvZ2xuKGQzLmZvcm1hdChjYWwzLmdldFRpbWUoKSkgKyAiID0+ICIgKyBqZCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGQzLmZvcm1hdChjYWwzLmdldFRpbWUoKSkgKyAiID0+ICIgKyBqZCArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgfQorCisKKy8vICAgICAgICBjYWwzLmNsZWFyKCk7CisvLyAgICAgICAgY2FsMy5zZXQoY2FsMy5ZRUFSLCAxOTkwKTsKKy8vICAgICAgICBjYWwzLnNldChjYWwzLk1PTlRILCBDYWxlbmRhci5KQU5VQVJZKTsKKy8vICAgICAgICBjYWwzLnNldChjYWwzLkRBVEUsIDEpOworLy8gICAgICAgIGNhbDMuYWRkKGNhbDMuREFURSwgLTEpOworLy8gICAgICAgIGFzdHJvLnNldERhdGUoY2FsMy5nZXRUaW1lKCkpOworLy8gICAgICAgIGFzdHJvLmZvbygpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DYWxlbmRhclJlZ3Jlc3Npb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DYWxlbmRhclJlZ3Jlc3Npb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MDY2MDEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NhbGVuZGFyUmVncmVzc2lvbi5qYXZhCkBAIC0wLDAgKzEsMTkyNCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJBc3Ryb25vbWVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworLyoqCisgKiBAdGVzdCAxLjMyIDk5LzExLzE0CisgKiBAYnVnIDQwMzE1MDIgNDAzNTMwMSA0MDQwOTk2IDQwNTE3NjUgNDA1OTY1NCA0MDYxNDc2IDQwNzA1MDIgNDA3MTE5NyA0MDcxMzg1CisgKiA0MDczOTI5IDQwODMxNjcgNDA4NjcyNCA0MDkyMzYyIDQwOTU0MDcgNDA5NjIzMSA0MDk2NTM5IDQxMDAzMTEgNDEwMzI3MQorICogNDEwNjEzNiA0MTA4NzY0IDQxMTQ1NzggNDExODM4NCA0MTI1ODgxIDQxMjU4OTIgNDEzNjM5OSA0MTQxNjY1IDQxNDI5MzMKKyAqIDQxNDUxNTggNDE0NTk4MyA0MTQ3MjY5IDQxNDk2NzcgNDE2MjU4NyA0MTY1MzQzIDQxNjYxMDkgNDE2NzA2MCA0MTczNTE2CisgKiA0MTc0MzYxIDQxNzc0ODQgNDE5NzY5OSA0MjA5MDcxIDQyODg3OTIKKyAqLworcHVibGljIGNsYXNzIENhbGVuZGFyUmVncmVzc2lvbiBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ2FsZW5kYXJSZWdyZXNzaW9uKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gRklFTERfTkFNRSA9IHsKKyAgICAgICAgICAgICJFUkEiLCAiWUVBUiIsICJNT05USCIsICJXRUVLX09GX1lFQVIiLCAiV0VFS19PRl9NT05USCIsCisgICAgICAgICAgICAiREFZX09GX01PTlRIIiwgIkRBWV9PRl9ZRUFSIiwgIkRBWV9PRl9XRUVLIiwKKyAgICAgICAgICAgICJEQVlfT0ZfV0VFS19JTl9NT05USCIsICJBTV9QTSIsICJIT1VSIiwgIkhPVVJfT0ZfREFZIiwKKyAgICAgICAgICAgICJNSU5VVEUiLCAiU0VDT05EIiwgIk1JTExJU0VDT05EIiwgIlpPTkVfT0ZGU0VUIiwKKyAgICAgICAgICAgICJEU1RfT0ZGU0VUIiwgIllFQVJfV09ZIiwgIkRPV19MT0NBTCIsICJFWFRFTkRFRF9ZRUFSIiwKKyAgICAgICAgICAgICJKVUxJQU5fREFZIiwgIk1JTExJU0VDT05EU19JTl9EQVkiCisgICAgICAgIH07CisKKworICAgIC8qCisgICAgICBTeW5vcHNpczogamF2YS5zcWwuVGltZXN0YW1wIGNvbnN0cnVjdG9yIHdvcmtzIHdyb25nIG9uIFdpbmRvd3MgOTUKKworICAgICAgPT09PSBIZXJlIGlzIHRoZSB0ZXN0ID09PT0gCisgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nIGFyZ3NbXSkgeyAKKyAgICAgICAgamF2YS5zcWwuVGltZXN0YW1wIHQ9IG5ldyBqYXZhLnNxbC5UaW1lc3RhbXAoMCwxNSw1LDUsOCwxMywxMjM0NTY3MDApOyAKKyAgICAgICAgbG9nbG4oImV4cGVjdGVkPTE5MDEtMDQtMDUgMDU6MDg6MTMuMTIzNDU2NyIpOyAKKyAgICAgICAgbG9nbG4oIiByZXN1bHQ9Iit0KTsgCisgICAgICB9IAorICAgICAgCisgICAgICA9PT09IEhlcmUgaXMgdGhlIG91dHB1dCBvZiB0aGUgdGVzdCBvbiBTb2xhcmlzIG9yIE5UID09PT0gCisgICAgICBleHBlY3RlZD0xOTAxLTA0LTA1IDA1OjA4OjEzLjEyMzQ1NjcgCisgICAgICByZXN1bHQ9MTkwMS0wNC0wNSAwNTowODoxMy4xMjM0NTY3IAorICAgICAgCisgICAgICA9PT09IEhlcmUgaXMgdGhlIG91dHB1dCBvZiB0aGUgdGVzdCBvbiBXaW5kb3dzOTUgPT09PSAKKyAgICAgIGV4cGVjdGVkPTE5MDEtMDQtMDUgMDU6MDg6MTMuMTIzNDU2NyAKKyAgICAgIHJlc3VsdD0xOTAxLTA0LTA1IDA2OjA4OjEzLjEyMzQ1NjcgCisgICAgICAqLworCisgICAgcHVibGljIHZvaWQgVGVzdDQwMzE1MDIoKSB7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIC8vIFRoaXMgYnVnIGFjdHVhbGx5IG9jY3VycyBvbiBXaW5kb3dzIE5UIGFzIHdlbGwsIGFuZCBkb2Vzbid0CisgICAgICAgICAgICAvLyByZXF1aXJlIHRoZSBob3N0IHpvbmUgdG8gYmUgc2V0OyBpdCBjYW4gYmUgc2V0IGluIEphdmEuCisgICAgICAgICAgICBTdHJpbmdbXSBpZHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gYmFkID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8aWRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgVGltZVpvbmUgem9uZSA9IFRpbWVab25lLmdldFRpbWVab25lKGlkc1tpXSk7CisgICAgICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmUpOworICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoMTkwMCwgMTUsIDUsIDUsIDgsIDEzKTsKKyAgICAgICAgICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5IT1VSKSAhPSA1KSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJGYWlsOiAiICsgem9uZS5nZXRJRCgpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgem9uZS51c2VEYXlsaWdodFRpbWUoKSArICI7IERTVF9PRkZTRVQgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSAvICg2MCo2MCoxMDAwLjApICsgIjsgWk9ORV9PRkZTRVQgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkgLyAoNjAqNjAqMTAwMC4wKSArICI7IGdldFJhd09mZnNldCgpID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIHpvbmUuZ2V0UmF3T2Zmc2V0KCkgLyAoNjAqNjAqMTAwMC4wKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICI7IEhPVVIgPSAiICsgY2FsLmdldChDYWxlbmRhci5IT1VSKSk7CisgICAgICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KDE5MDAsIDE1LCA1LCA1LCA4LCAxMyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjYWwuZ2V0KENhbGVuZGFyLkhPVVIpICE9IDUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJGYWlsOiAiICsgem9uZS5nZXRJRCgpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpvbmUudXNlRGF5bGlnaHRUaW1lKCkgKyAiOyBEU1RfT0ZGU0VUID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpIC8gKDYwKjYwKjEwMDAuMCkgKyAiOyBaT05FX09GRlNFVCA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkgLyAoNjAqNjAqMTAwMC4wKSArICI7IGdldFJhd09mZnNldCgpID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b25lLmdldFJhd09mZnNldCgpIC8gKDYwKjYwKjEwMDAuMCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjsgSE9VUiA9ICIgKyBjYWwuZ2V0KENhbGVuZGFyLkhPVVIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldCgxOTAwLCAxNSwgNSwgNSwgOCwgMTMpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIm1zID0gIiArIGNhbC5nZXRUaW1lKCkgKyAiICgiICsgY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgKyAiKSIpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5IT1VSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhciBjYWwyID0gbmV3IGphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhcihqYXZhLnV0aWwuVGltZVpvbmUuZ2V0VGltZVpvbmUoaWRzW2ldKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWwyLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWwyLnNldCgxOTAwLCAxNSwgNSwgNSwgOCwgMTMpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsMi5nZXQoQ2FsZW5kYXIuSE9VUik7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiamF2YS51dGlsLkdDOiAiICsgem9uZS5nZXRJRCgpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b25lLnVzZURheWxpZ2h0VGltZSgpICsgIjsgRFNUX09GRlNFVCA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbDIuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpIC8gKDYwKjYwKjEwMDAuMCkgKyAiOyBaT05FX09GRlNFVCA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbDIuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKSAvICg2MCo2MCoxMDAwLjApICsgIjsgZ2V0UmF3T2Zmc2V0KCkgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b25lLmdldFJhd09mZnNldCgpIC8gKDYwKjYwKjEwMDAuMCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7IEhPVVIgPSAiICsgY2FsLmdldChDYWxlbmRhci5IT1VSKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigibXMgPSAiICsgY2FsMi5nZXRUaW1lKCkgKyAiICgiICsgY2FsMi5nZXRUaW1lKCkuZ2V0VGltZSgpICsgIikiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmFsc2UpIHsgLy8gQ2hhbmdlIHRvIHRydWUgdG8gZGVidWcKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIHpvbmUuZ2V0SUQoKSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b25lLnVzZURheWxpZ2h0VGltZSgpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkgLyAoNjAqNjAqMTAwMCkgKyAiICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgem9uZS5nZXRSYXdPZmZzZXQoKSAvICg2MCo2MCoxMDAwKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiBIT1VSID0gIiArIGNhbC5nZXQoQ2FsZW5kYXIuSE9VUikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChiYWQpIGVycmxuKCJUaW1lWm9uZSBwcm9ibGVtcyB3aXRoIEdDIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIGRhdGEuICIrIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDM1MzAxKCkgeworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGMgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoOTgsIDgsIDcpOworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcig5OCwgOCwgNyk7CisgICAgICAgICAgICBpZiAoYy5hZnRlcihkKSB8fAorICAgICAgICAgICAgICAgIGMuYWZ0ZXIoYykgfHwKKyAgICAgICAgICAgICAgICBjLmJlZm9yZShkKSB8fAorICAgICAgICAgICAgICAgIGMuYmVmb3JlKGMpIHx8CisgICAgICAgICAgICAgICAgIWMuZXF1YWxzKGMpIHx8CisgICAgICAgICAgICAgICAgIWMuZXF1YWxzKGQpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrCisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIGRhdGEuICIrIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDQwOTk2KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nW10gaWRzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKC04ICogNjAgKiA2MCAqIDEwMDApOworICAgICAgICAgICAgU2ltcGxlVGltZVpvbmUgcGR0ID0gbmV3IFNpbXBsZVRpbWVab25lKC04ICogNjAgKiA2MCAqIDEwMDAsIGlkc1swXSk7CisgICAgICAgICAgICBwZHQuc2V0U3RhcnRSdWxlKENhbGVuZGFyLkFQUklMLCAxLCBDYWxlbmRhci5TVU5EQVksIDIgKiA2MCAqIDYwICogMTAwMCk7CisgICAgICAgICAgICBwZHQuc2V0RW5kUnVsZShDYWxlbmRhci5PQ1RPQkVSLCAtMSwgQ2FsZW5kYXIuU1VOREFZLCAyICogNjAgKiA2MCAqIDEwMDApOworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIocGR0KTsKKworICAgICAgICAgICAgY2FsZW5kYXIuc2V0KENhbGVuZGFyLk1PTlRILDMpOworICAgICAgICAgICAgY2FsZW5kYXIuc2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwxOCk7CisgICAgICAgICAgICBjYWxlbmRhci5zZXQoQ2FsZW5kYXIuU0VDT05ELCAzMCk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJNT05USDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NT05USCkpOworICAgICAgICAgICAgbG9nbG4oIkRBWV9PRl9NT05USDogIiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKTsKKyAgICAgICAgICAgIGxvZ2xuKCJNSU5VVEU6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTUlOVVRFKSk7CisgICAgICAgICAgICBsb2dsbigiU0VDT05EOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLlNFQ09ORCkpOworCisgICAgICAgICAgICBjYWxlbmRhci5hZGQoQ2FsZW5kYXIuU0VDT05ELDYpOworICAgICAgICAgICAgLy9UaGlzIHdpbGwgcHJpbnQgb3V0IHRvZGF5cyBkYXRlIGZvciBNT05USCBhbmQgREFZX09GX01PTlRICisgICAgICAgICAgICAvL2luc3RlYWQgb2YgdGhlIGRhdGUgaXQgd2FzIHNldCB0by4KKyAgICAgICAgICAgIC8vVGhpcyBoYXBwZW5zIHdoZW4gYWRkaW5nIE1JTExJU0VDT05EIG9yIE1JTlVURSBhbHNvCisgICAgICAgICAgICBsb2dsbigiTU9OVEg6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTU9OVEgpKTsKKyAgICAgICAgICAgIGxvZ2xuKCJEQVlfT0ZfTU9OVEg6ICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgICAgICBsb2dsbigiTUlOVVRFOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1JTlVURSkpOworICAgICAgICAgICAgbG9nbG4oIlNFQ09ORDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5TRUNPTkQpKTsKKyAgICAgICAgICAgIGlmIChjYWxlbmRhci5nZXQoQ2FsZW5kYXIuTU9OVEgpICE9IDMgfHwKKyAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSAhPSAxOCB8fAorICAgICAgICAgICAgICAgIGNhbGVuZGFyLmdldChDYWxlbmRhci5TRUNPTkQpICE9IDM2KQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBDYWxlbmRhci5hZGQgbWlzYmVoYXZlcyIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBkYXRhLiAiKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1MTc2NSgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBjYWwuc2V0TGVuaWVudChmYWxzZSk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCAwKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogREFZX09GX1dFRUsgMCBzaG91bGQgYmUgZGlzYWxsb3dlZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9jaworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBkYXRhLiAiKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBVc2VyIGVycm9yIC0gbm8gYnVnIGhlcmUgcHVibGljIHZvaWQgVGVzdDQwNTk1MjQoKSB7IC8vIENyZWF0ZSBjYWxlbmRhcgorICAgICAqIGZvciBBcHJpbCAxMCwgMTk5NyBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOyAvLworICAgICAqIHByaW50IG91dCBhIGJ1bmNoIG9mIGludGVyZXN0aW5nIHRoaW5ncyBsb2dsbigiRVJBOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuRVJBKSk7IGxvZ2xuKCJZRUFSOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuWUVBUikpOyBsb2dsbigiTU9OVEg6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5NT05USCkpOyBsb2dsbigiV0VFS19PRl9ZRUFSOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuV0VFS19PRl9ZRUFSKSk7IGxvZ2xuKCJXRUVLX09GX01PTlRIOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuV0VFS19PRl9NT05USCkpOyBsb2dsbigiREFURTogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRBVEUpKTsgbG9nbG4oIkRBWV9PRl9NT05USDogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRBWV9PRl9NT05USCkpOyBsb2dsbigiREFZX09GX1lFQVI6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVlfT0ZfWUVBUikpOyBsb2dsbigiREFZX09GX1dFRUs6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVlfT0ZfV0VFSykpOyBsb2dsbigiREFZX09GX1dFRUtfSU5fTU9OVEg6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCkpOyBsb2dsbigiQU1fUE06ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5BTV9QTSkpOyBsb2dsbigiSE9VUjogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkhPVVIpKTsgbG9nbG4oIkhPVVJfT0ZfREFZOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuSE9VUl9PRl9EQVkpKTsgbG9nbG4oIk1JTlVURTogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLk1JTlVURSkpOyBsb2dsbigiU0VDT05EOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuU0VDT05EKSk7IGxvZ2xuKCJNSUxMSVNFQ09ORDogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLk1JTExJU0VDT05EKSk7IGxvZ2xuKCJaT05FX09GRlNFVDogIiArCisgICAgICogKGNhbGVuZGFyLmdldChjYWxlbmRhci5aT05FX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7IGxvZ2xuKCJEU1RfT0ZGU0VUOiAiICsKKyAgICAgKiAoY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRTVF9PRkZTRVQpLyg2MCo2MCoxMDAwKSkpOyBjYWxlbmRhciA9IG5ldworICAgICAqIEdyZWdvcmlhbkNhbGVuZGFyKDE5OTcsMywxMCk7IGNhbGVuZGFyLmdldFRpbWUoKTsgbG9nbG4oIkFwcmlsIDEwLAorICAgICAqIDE5OTciKTsgbG9nbG4oIkVSQTogIiArIGNhbGVuZGFyLmdldChjYWxlbmRhci5FUkEpKTsgbG9nbG4oIllFQVI6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5ZRUFSKSk7IGxvZ2xuKCJNT05USDogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLk1PTlRIKSk7IGxvZ2xuKCJXRUVLX09GX1lFQVI6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5XRUVLX09GX1lFQVIpKTsgbG9nbG4oIldFRUtfT0ZfTU9OVEg6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5XRUVLX09GX01PTlRIKSk7IGxvZ2xuKCJEQVRFOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuREFURSkpOyBsb2dsbigiREFZX09GX01PTlRIOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuREFZX09GX01PTlRIKSk7IGxvZ2xuKCJEQVlfT0ZfWUVBUjogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRBWV9PRl9ZRUFSKSk7IGxvZ2xuKCJEQVlfT0ZfV0VFSzogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRBWV9PRl9XRUVLKSk7IGxvZ2xuKCJEQVlfT0ZfV0VFS19JTl9NT05USDogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRIKSk7IGxvZ2xuKCJBTV9QTTogIiArCisgICAgICogY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLkFNX1BNKSk7IGxvZ2xuKCJIT1VSOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuSE9VUikpOyBsb2dsbigiSE9VUl9PRl9EQVk6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5IT1VSX09GX0RBWSkpOyBsb2dsbigiTUlOVVRFOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuTUlOVVRFKSk7IGxvZ2xuKCJTRUNPTkQ6ICIgKworICAgICAqIGNhbGVuZGFyLmdldChjYWxlbmRhci5TRUNPTkQpKTsgbG9nbG4oIk1JTExJU0VDT05EOiAiICsKKyAgICAgKiBjYWxlbmRhci5nZXQoY2FsZW5kYXIuTUlMTElTRUNPTkQpKTsgbG9nbG4oIlpPTkVfT0ZGU0VUOiAiICsKKyAgICAgKiAoY2FsZW5kYXIuZ2V0KGNhbGVuZGFyLlpPTkVfT0ZGU0VUKS8oNjAqNjAqMTAwMCkpKTsgLy8gaW4gaG91cnMKKyAgICAgKiBsb2dsbigiRFNUX09GRlNFVDogIiArIChjYWxlbmRhci5nZXQoY2FsZW5kYXIuRFNUX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7IC8vCisgICAgICogaW4gaG91cnMgfQorICAgICAqLworCisgICAgcHVibGljIHZvaWQgVGVzdDQwNTk2NTQoKSB7CisgICAvLyAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIHdvcmsgYXJvdW5kIGJ1ZyBmb3IgamRrMS40IG9uIHNvbGFyaXMgMi42LCB3aGljaCB1c2VzIGZ1bmt5CisgICAgICAgICAgICAvLyB0aW1lem9uZSBuYW1lcworICAgICAgICAgICAgLy8gamRrMS40LjEgd2lsbCBkcm9wIHN1cHBvcnQgZm9yIDIuNiBzbyB3ZSBzaG91bGQgYmUgb2sgd2hlbiBpdAorICAgICAgICAgICAgLy8gY29tZXMgb3V0CisgICAgICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUgamF2YXpvbmUgPSBqYXZhLnV0aWwuVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpOworICAgICAgICAgICAgVGltZVpvbmUgaWN1em9uZSA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoaWN1em9uZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdjLnNldCgxOTk3LCAzLCAxLCAxNSwgMTYsIDE3KTsgLy8gQXByaWwgMSwgMTk5NworCisgICAgICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuSE9VUiwgMCk7CisgICAgICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuQU1fUE0sIENhbGVuZGFyLkFNKTsKKyAgICAgICAgICAgIGdjLnNldChDYWxlbmRhci5NSU5VVEUsIDApOworICAgICAgICAgICAgZ2Muc2V0KENhbGVuZGFyLlNFQ09ORCwgMCk7CisgICAgICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDApOworCisgICAgICAgICAgICBEYXRlIGNkID0gZ2MuZ2V0VGltZSgpOworICAgICAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZShqYXZhem9uZSk7CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoMTk5NywgMywgMSwgMCwgMCwgMCk7CisgICAgICAgICAgICBEYXRlIGV4cCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBpZiAoIWNkLmVxdWFscyhleHApKQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBDYWxlbmRhci5zZXQgYnJva2VuLiBHb3QgIiArIGNkICsgIiBXYW50ICIgKyBleHApOworICAgLy8gICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9jaworICAgLy8gICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAvLyAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2MTQ3NigpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiZGRNTU15eSIsIExvY2FsZS5VSyk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IEdyZWdvcmlhbkNhbGVuZGFyLmdldEluc3RhbmNlKFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5VSyk7CisgICAgICAgIGZtdC5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICB0cnkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBEYXRlIGRhdGUgPSBmbXQucGFyc2UoIjI5TUFZOTciKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0VGltZShkYXRlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAxMyk7CisgICAgICAgIGxvZ2xuKCJIb3VyOiAiK2NhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5IT1VSX09GX0RBWSwgNik7CisgICAgICAgIGxvZ2xuKCJIb3VyOiAiK2NhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKTsKKyAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICE9IDE5KQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IFdhbnQgMTkgR290ICIgKyBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzA1MDIoKSB7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgMCwgMzApOworICAgICAgICBEYXRlIGQgPSBnZXRBc3NvY2lhdGVkRGF0ZSh0ZW1wY2FsLmdldFRpbWUoKSk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBjYWwuc2V0VGltZShkKTsKKyAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspID09IENhbGVuZGFyLlNBVFVSREFZIHx8CisgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSA9PSBDYWxlbmRhci5TVU5EQVkpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogV2FudCB3ZWVrZGF5IEdvdCAiICsgZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBhc3NvY2lhdGVkIGRhdGUgc3RhcnRpbmcgZnJvbSBhIHNwZWNpZmllZCBkYXRlIE5PVEU6IHRoZQorICAgICAqIHVubmVjZXNzYXJ5ICJnZXRUaW1lKCkncyIgYmVsb3cgYXJlIGEgd29yay1hcm91bmQgZm9yIGEgYnVnIGluIGpkayAxLjEuMworICAgICAqIChhbmQgcHJvYmFibHkgZWFybGllciB2ZXJzaW9ucyBhbHNvKQorICAgICAqIDxwPgorICAgICAqIAorICAgICAqIEBwYXJhbSBkCisgICAgICogICAgICAgICAgICBUaGUgZGF0ZSB0byBzdGFydCBmcm9tCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBEYXRlIGdldEFzc29jaWF0ZWREYXRlKERhdGUgZCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldFRpbWUoZCk7CisgICAgICAgIC8vY2FsLmFkZChmaWVsZCwgYW1vdW50KTsgLy88LS0gUFJPQkxFTSBTRUVOIFdJVEggZmllbGQgPSBEQVRFLE1PTlRICisgICAgICAgIC8vIGNhbC5nZXRUaW1lKCk7IC8vIDwtLS0gUkVNT1ZFIFRISVMgVE8gU0VFIEJVRworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IHdkID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgICAgICBpZiAod2QgPT0gQ2FsZW5kYXIuU0FUVVJEQVkgfHwgd2QgPT0gQ2FsZW5kYXIuU1VOREFZKSB7CisgICAgICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVRFLCAxKTsKKyAgICAgICAgICAgICAgICAvLyBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjYWwuZ2V0VGltZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDcxMTk3KCkgeworICAgICAgICBkb3dUZXN0KGZhbHNlKTsKKyAgICAgICAgZG93VGVzdCh0cnVlKTsKKyAgICB9CisKKyAgICB2b2lkIGRvd1Rlc3QoYm9vbGVhbiBsZW5pZW50KSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkFVR1VTVCwgMTIpOyAvLyBXZWRuZXNkYXkKKyAgICAgICAgLy8gY2FsLmdldFRpbWUoKTsgLy8gRm9yY2UgdXBkYXRlCisgICAgICAgIGNhbC5zZXRMZW5pZW50KGxlbmllbnQpOworICAgICAgICBjYWwuc2V0KDE5OTYsIENhbGVuZGFyLkRFQ0VNQkVSLCAxKTsgLy8gU2V0IHRoZSBkYXRlIHRvIGJlIERlY2VtYmVyIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxOTk2CisgICAgICAgIGludCBkb3cgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaW50IG1pbiA9IGNhbC5nZXRNaW5pbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaW50IG1heCA9IGNhbC5nZXRNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgbG9nbG4oY2FsLmdldFRpbWUoKS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKG1pbiAhPSBDYWxlbmRhci5TVU5EQVkgfHwgbWF4ICE9IENhbGVuZGFyLlNBVFVSREFZKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1pbi9tYXggYmFkIik7CisgICAgICAgIGlmIChkb3cgPCBtaW4gfHwgZG93ID4gbWF4KSAKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEYXkgb2Ygd2VlayAiICsgZG93ICsgIiBvdXQgb2YgcmFuZ2UiKTsKKyAgICAgICAgaWYgKGRvdyAhPSBDYWxlbmRhci5TVU5EQVkpIAorICAgICAgICAgICAgZXJybG4oIkZBSUw6IERheSBvZiB3ZWVrIHNob3VsZCBiZSBTVU5EQVkgR290ICIgKyBkb3cpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDcxMzg1KCkgeworICAgIC8vIHdvcmsgYXJvdW5kIGJ1ZyBmb3IgamRrMS40IG9uIHNvbGFyaXMgMi42LCB3aGljaCB1c2VzIGZ1bmt5IHRpbWV6b25lCisgICAgLy8gbmFtZXMKKyAgICAvLyBqZGsxLjQuMSB3aWxsIGRyb3Agc3VwcG9ydCBmb3IgMi42IHNvIHdlIHNob3VsZCBiZSBvayB3aGVuIGl0IGNvbWVzIG91dAorICAgIGphdmEudXRpbC5UaW1lWm9uZSBqYXZhem9uZSA9IGphdmEudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIik7CisgICAgVGltZVpvbmUgaWN1em9uZSA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShpY3V6b25lKTsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoamF2YXpvbmUpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkpVTkUsIDI0KTsKKyAgICAgICAgY2FsLnNldFRpbWUodGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5OT1ZFTUJFUik7IC8vIGNoYW5nZSBhIGZpZWxkCisgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLk5PVkVNQkVSLCAyNCk7CisgICAgICAgIGlmICghY2FsLmdldFRpbWUoKS5lcXVhbHModGVtcGNhbC5nZXRUaW1lKCkpKQorICAgICAgICAgICAgZXJybG4oIkZhaWwiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MzkyOSgpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZm9vMSA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk3LCA4LCAyNyk7CisgICAgICAgIGZvbzEuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgKzEpOworICAgICAgICBpbnQgdGVzdHllYXIgPSBmb28xLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgaW50IHRlc3Rtb250aCA9IGZvbzEuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKyAgICAgICAgaW50IHRlc3RkYXkgPSBmb28xLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworICAgICAgICBpZiAodGVzdHllYXIgIT0gMTk5NyB8fAorICAgICAgICAgICAgdGVzdG1vbnRoICE9IDggfHwKKyAgICAgICAgICAgIHRlc3RkYXkgIT0gMjgpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogQ2FsZW5kYXIgbm90IGluaXRpYWxpemVkIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwODMxNjcoKSB7CisgICAgICAgIFRpbWVab25lIHNhdmVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChUaW1lWm9uZS5nZXRUaW1lWm9uZSgiVVRDIikpOworICAgICAgICAgICAgRGF0ZSBmaXJzdERhdGUgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShmaXJzdERhdGUpOworICAgICAgICAgICAgbG9uZyBmaXJzdE1pbGxpc0luRGF5ID0gY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgKiAzNjAwMDAwTCArCisgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSU5VVEUpICogNjAwMDBMICsKKyAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkgKiAxMDAwTCArCisgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvZ2xuKCJDdXJyZW50IHRpbWU6ICIgKyBmaXJzdERhdGUudG9TdHJpbmcoKSk7CisKKyAgICAgICAgICAgIGZvciAoaW50IHZhbGlkaXR5PTA7IHZhbGlkaXR5PDMwOyB2YWxpZGl0eSsrKSB7CisgICAgICAgICAgICAgICAgRGF0ZSBsYXN0RGF0ZSA9IG5ldyBEYXRlKGZpcnN0RGF0ZS5nZXRUaW1lKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyl2YWxpZGl0eSoxMDAwKjI0KjYwKjYwKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0VGltZShsYXN0RGF0ZSk7CisgICAgICAgICAgICAgICAgbG9uZyBtaWxsaXNJbkRheSA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICogMzYwMDAwMEwgKworICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkgKiA2MDAwMEwgKworICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkgKiAxMDAwTCArCisgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpOworICAgICAgICAgICAgICAgIGlmIChmaXJzdE1pbGxpc0luRGF5ICE9IG1pbGxpc0luRGF5KSAKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRheSBoYXMgc2hpZnRlZCAiICsgbGFzdERhdGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlWm9uZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4NjcyNCgpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkYXRlOworICAgICAgICBUaW1lWm9uZSBzYXZlWm9uZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgTG9jYWxlIHNhdmVMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLlVLKTsgCisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSk7CisgICAgICAgICAgICBkYXRlPW5ldyBTaW1wbGVEYXRlRm9ybWF0KCJkZCBNTU0geXl5ICh6enp6KSAnaXMgaW4gd2Vlaycgd3ciKTsgCisgICAgICAgICAgICBDYWxlbmRhciBjYWw9Q2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsgCisgICAgICAgICAgICBjYWwuc2V0KDE5OTcsQ2FsZW5kYXIuU0VQVEVNQkVSLDMwKTsgCisgICAgICAgICAgICBEYXRlIG5vdz1jYWwuZ2V0VGltZSgpOyAKKyAgICAgICAgICAgIGxvZ2xuKGRhdGUuZm9ybWF0KG5vdykpOyAKKyAgICAgICAgICAgIGNhbC5zZXQoMTk5NyxDYWxlbmRhci5KQU5VQVJZLDEpOyAKKyAgICAgICAgICAgIG5vdz1jYWwuZ2V0VGltZSgpOyAKKyAgICAgICAgICAgIGxvZ2xuKGRhdGUuZm9ybWF0KG5vdykpOyAKKyAgICAgICAgICAgIGNhbC5zZXQoMTk5NyxDYWxlbmRhci5KQU5VQVJZLDgpOyAKKyAgICAgICAgICAgIG5vdz1jYWwuZ2V0VGltZSgpOyAKKyAgICAgICAgICAgIGxvZ2xuKGRhdGUuZm9ybWF0KG5vdykpOyAKKyAgICAgICAgICAgIGNhbC5zZXQoMTk5NixDYWxlbmRhci5ERUNFTUJFUiwzMSk7IAorICAgICAgICAgICAgbm93PWNhbC5nZXRUaW1lKCk7IAorICAgICAgICAgICAgbG9nbG4oZGF0ZS5mb3JtYXQobm93KSk7IAorICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoc2F2ZUxvY2FsZSk7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmVab25lKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiKioqIFRIRSBSRVNVTFRTIE9GIFRISVMgVEVTVCBNVVNUIEJFIFZFUklGSUVEIE1BTlVBTExZICoqKiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDkyMzYyKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwxID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5OTcsIDEwLCAxMSwgMTAsIDIwLCA0MCk7IAorICAgICAgICAvKgorICAgICAgICAgKiBjYWwxLnNldCggQ2FsZW5kYXIuWUVBUiwgMTk5NyApOyBjYWwxLnNldCggQ2FsZW5kYXIuTU9OVEgsIDEwICk7CisgICAgICAgICAqIGNhbDEuc2V0KCBDYWxlbmRhci5EQVRFLCAxMSApOyBjYWwxLnNldCggQ2FsZW5kYXIuSE9VUiwgMTAgKTsKKyAgICAgICAgICogY2FsMS5zZXQoIENhbGVuZGFyLk1JTlVURSwgMjAgKTsgY2FsMS5zZXQoIENhbGVuZGFyLlNFQ09ORCwgNDAgKTsKKyAgICAgICAgICovCisKKyAgICAgICAgbG9nbG4oICIgQ2FsMSA9ICIgKyBjYWwxLmdldFRpbWUoKS5nZXRUaW1lKCkgKTsgCisgICAgICAgIGxvZ2xuKCAiIENhbDEgdGltZSBpbiBtcyA9ICIgKyBjYWwxLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkgKTsgCisgICAgICAgIGZvciggaW50IGsgPSAwOyBrIDwgMTAwIDsgaysrICkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7IAorICAgICAgICB9CisKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsMiA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk3LCAxMCwgMTEsIDEwLCAyMCwgNDApOyAKKyAgICAgICAgLyoKKyAgICAgICAgICogY2FsMi5zZXQoIENhbGVuZGFyLllFQVIsIDE5OTcgKTsgY2FsMi5zZXQoIENhbGVuZGFyLk1PTlRILCAxMCApOworICAgICAgICAgKiBjYWwyLnNldCggQ2FsZW5kYXIuREFURSwgMTEgKTsgY2FsMi5zZXQoIENhbGVuZGFyLkhPVVIsIDEwICk7CisgICAgICAgICAqIGNhbDIuc2V0KCBDYWxlbmRhci5NSU5VVEUsIDIwICk7IGNhbDIuc2V0KCBDYWxlbmRhci5TRUNPTkQsIDQwICk7CisgICAgICAgICAqLworCisgICAgICAgIGxvZ2xuKCAiIENhbDIgPSAiICsgY2FsMi5nZXRUaW1lKCkuZ2V0VGltZSgpICk7IAorICAgICAgICBsb2dsbiggIiBDYWwyIHRpbWUgaW4gbXMgPSAiICsgY2FsMi5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpICk7IAorICAgICAgICBpZiggIWNhbDEuZXF1YWxzKCBjYWwyICkgKSAKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBNaWxsaXNlY29uZHMgcmFuZG9taXplZCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk1NDA3KCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBhID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5OTcsQ2FsZW5kYXIuTk9WRU1CRVIsIDEzKTsKKyAgICAgICAgaW50IGRvdyA9IGEuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaWYgKGRvdyAhPSBDYWxlbmRhci5USFVSU0RBWSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBXYW50IFRIVVJTREFZIEdvdCAiICsgZG93KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5NjIzMSgpIHsKKyAgICAgICAgVGltZVpvbmUgR01UID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpOworICAgICAgICBUaW1lWm9uZSBQU1QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIGludCBzZWMgPSAwLCBtaW4gPSAwLCBociA9IDAsIGRheSA9IDEsIG1vbnRoID0gMTAsIHllYXIgPSAxOTk3OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBDYWxlbmRhciBjYWwxID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKFBTVCk7CisgICAgICAgIGNhbDEuc2V0VGltZShuZXcgRGF0ZSg4ODA2OTg2MzkwMDBMKSk7CisgICAgICAgIGludCBwOworICAgICAgICBsb2dsbigiUFNUIDEgaXM6ICIgKyAocD1jYWwxLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkpKTsKKyAgICAgICAgY2FsMS5zZXRUaW1lWm9uZShHTVQpOworICAgICAgICAvLyBJc3N1ZSAxOiBDaGFuZ2luZyB0aGUgdGltZXpvbmUgZG9lc24ndCBjaGFuZ2UgdGhlCisgICAgICAgIC8vICAgICAgICAgIHJlcHJlc2VudGVkIHRpbWUuCisgICAgICAgIGludCBoMSxoMjsKKyAgICAgICAgbG9nbG4oIkdNVCAxIGlzOiAiICsgKGgxPWNhbDEuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSkpOworICAgICAgICBjYWwxLnNldFRpbWUobmV3IERhdGUoODgwNjk4NjM5MDAwTCkpOworICAgICAgICBsb2dsbigiR01UIDIgaXM6ICIgKyAoaDI9Y2FsMS5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpKSk7CisgICAgICAgIC8vIE5vdGU6IFRoaXMgdGVzdCBoYWQgYSBidWcgaW4gaXQuIEl0IHdhbnRlZCBoMSE9aDIsIHdoZW4KKyAgICAgICAgLy8gd2hhdCB3YXMgbWVhbnQgd2FzIGgxIT1wLiBGaXhlZCB0aGlzIGNvbmN1cnJlbnQgd2l0aCBmaXgKKyAgICAgICAgLy8gdG8gNDE3NzQ4NC4KKyAgICAgICAgaWYgKHAgPT0gaDEgfHwgaDEgIT0gaDIpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogSG91ciBzYW1lIGluIGRpZmZlcmVudCB6b25lcyIpOworCisgICAgICAgIENhbGVuZGFyIGNhbDIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoR01UKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsMyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihQU1QpOworICAgICAgICBjYWwyLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgMCk7CisgICAgICAgIGNhbDMuc2V0KENhbGVuZGFyLk1JTExJU0VDT05ELCAwKTsKKworICAgICAgICBjYWwyLnNldChjYWwxLmdldChDYWxlbmRhci5ZRUFSKSwKKyAgICAgICAgICAgICAgICAgY2FsMS5nZXQoQ2FsZW5kYXIuTU9OVEgpLAorICAgICAgICAgICAgICAgICBjYWwxLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpLAorICAgICAgICAgICAgICAgICBjYWwxLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSksCisgICAgICAgICAgICAgICAgIGNhbDEuZ2V0KENhbGVuZGFyLk1JTlVURSksCisgICAgICAgICAgICAgICAgIGNhbDEuZ2V0KENhbGVuZGFyLlNFQ09ORCkpOworCisgICAgICAgIGxvbmcgdDEsdDIsdDMsdDQ7CisgICAgICAgIGxvZ2xuKCJSR01UIDEgaXM6ICIgKyAodDE9Y2FsMi5nZXRUaW1lKCkuZ2V0VGltZSgpKSk7CisgICAgICAgIGNhbDMuc2V0KHllYXIsIG1vbnRoLCBkYXksIGhyLCBtaW4sIHNlYyk7CisgICAgICAgIGxvZ2xuKCJSUFNUIDEgaXM6ICIgKyAodDI9Y2FsMy5nZXRUaW1lKCkuZ2V0VGltZSgpKSk7CisgICAgICAgIGNhbDMuc2V0VGltZVpvbmUoR01UKTsKKyAgICAgICAgbG9nbG4oIlJHTVQgMiBpczogIiArICh0Mz1jYWwzLmdldFRpbWUoKS5nZXRUaW1lKCkpKTsKKyAgICAgICAgY2FsMy5zZXQoY2FsMS5nZXQoQ2FsZW5kYXIuWUVBUiksCisgICAgICAgICAgICAgICAgIGNhbDEuZ2V0KENhbGVuZGFyLk1PTlRIKSwKKyAgICAgICAgICAgICAgICAgY2FsMS5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSwKKyAgICAgICAgICAgICAgICAgY2FsMS5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpLAorICAgICAgICAgICAgICAgICBjYWwxLmdldChDYWxlbmRhci5NSU5VVEUpLAorICAgICAgICAgICAgICAgICBjYWwxLmdldChDYWxlbmRhci5TRUNPTkQpKTsKKyAgICAgICAgLy8gSXNzdWUgMjogQ2FsZW5kYXIgY29udGludWVzIHRvIHVzZSB0aGUgdGltZXpvbmUgaW4gaXRzCisgICAgICAgIC8vICAgICAgICAgIGNvbnN0cnVjdG9yIGZvciBzZXQoKSBjb252ZXJzaW9ucywgcmVnYXJkbGVzcworICAgICAgICAvLyAgICAgICAgICBvZiBjYWxscyB0byBzZXRUaW1lWm9uZSgpCisgICAgICAgIGxvZ2xuKCJSR01UIDMgaXM6ICIgKyAodDQ9Y2FsMy5nZXRUaW1lKCkuZ2V0VGltZSgpKSk7CisgICAgICAgIGlmICh0MSA9PSB0MiB8fAorICAgICAgICAgICAgdDEgIT0gdDQgfHwKKyAgICAgICAgICAgIHQyICE9IHQzKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IENhbGVuZGFyIHpvbmUgYmVoYXZpb3IgZmF1bHR5Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTY1MzkoKSB7CisgICAgICAgIGludFtdIHkgPSB7MzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzF9OworCisgICAgICAgIGZvciAoaW50IHg9MDt4PDEyO3grKykgeworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgCisgICAgICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5Nyx4LHlbeF0pOworICAgICAgICAgICAgaW50IG0xLG0yOworICAgICAgICAgICAgbG9nKChtMT1nYy5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpKyIvIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2MuZ2V0KENhbGVuZGFyLkRBVEUpKyIvIitnYy5nZXQoQ2FsZW5kYXIuWUVBUikrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKyAxbW8gPSAiKTsKKworICAgICAgICAgICAgZ2MuYWRkKENhbGVuZGFyLk1PTlRILCAxKTsKKyAgICAgICAgICAgIGxvZ2xuKChtMj1nYy5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpKyIvIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYy5nZXQoQ2FsZW5kYXIuREFURSkrIi8iK2djLmdldChDYWxlbmRhci5ZRUFSKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICBpbnQgbSA9IChtMSAlIDEyKSArIDE7CisgICAgICAgICAgICBpZiAobTIgIT0gbSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogV2FudCAiICsgbSArICIgR290ICIgKyBtMik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDAzMTEoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IChHcmVnb3JpYW5DYWxlbmRhcilDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAxKTsKKyAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsgICAgICAgICAgICAgLy8gU2hvdWxkIGJlIEphbiAxCisgICAgICAgIGxvZ2xuKGQudG9TdHJpbmcoKSk7CisgICAgICAgIGlmIChjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSAhPSAxKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IERBWV9PRl9ZRUFSIG5vdCBzZXQiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwMzI3MSgpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgpOyAKKyAgICAgICAgaW50IG51bVllYXJzPTQwLCBzdGFydFllYXI9MTk5NywgbnVtRGF5cz0xNTsgCisgICAgICAgIFN0cmluZyBvdXRwdXQsIHRlc3REZXNjOyAKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgdGVzdENhbCA9IChHcmVnb3JpYW5DYWxlbmRhcilDYWxlbmRhci5nZXRJbnN0YW5jZSgpOyAKKyAgICAgICAgdGVzdENhbC5jbGVhcigpOworICAgICAgICBzZGYuc2V0Q2FsZW5kYXIodGVzdENhbCk7IAorICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKCJkIE1NTSB5eXl5Iik7IAorICAgICAgICBib29sZWFuIGZhaWwgPSBmYWxzZTsKKyAgICAgICAgZm9yIChpbnQgZmlyc3REYXk9MTsgZmlyc3REYXk8PTI7IGZpcnN0RGF5KyspIHsgCisgICAgICAgICAgICBmb3IgKGludCBtaW5EYXlzPTE7IG1pbkRheXM8PTc7IG1pbkRheXMrKykgeyAKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLnNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsobWluRGF5cyk7IAorICAgICAgICAgICAgICAgIHRlc3RDYWwuc2V0Rmlyc3REYXlPZldlZWsoZmlyc3REYXkpOyAKKyAgICAgICAgICAgICAgICB0ZXN0RGVzYyA9ICgiVGVzdCIgKyBTdHJpbmcudmFsdWVPZihmaXJzdERheSkgKyBTdHJpbmcudmFsdWVPZihtaW5EYXlzKSk7IAorICAgICAgICAgICAgICAgIGxvZ2xuKHRlc3REZXNjICsgIiA9PiAxc3QgZGF5IG9mIHdlZWs9IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZy52YWx1ZU9mKGZpcnN0RGF5KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIG1pbmltdW0gZGF5cyBpbiBmaXJzdCB3ZWVrPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcudmFsdWVPZihtaW5EYXlzKSk7IAorICAgICAgICAgICAgICAgIGZvciAoaW50IGo9c3RhcnRZZWFyOyBqPD1zdGFydFllYXIrbnVtWWVhcnM7IGorKykgeyAKKyAgICAgICAgICAgICAgICAgICAgdGVzdENhbC5zZXQoaiwxMSwyNSk7IAorICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxudW1EYXlzOyBpKyspIHsgCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FsLmFkZChDYWxlbmRhci5EQVRFLDEpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjYWxXT1k7IAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFjdFdPWSA9IHRlc3RDYWwuZ2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWN0V09ZIDwgMSB8fCBhY3RXT1kgPiA1MykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGUgZCA9IHRlc3RDYWwuZ2V0VGltZSgpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxXT1kgPSBTdHJpbmcudmFsdWVPZihhY3RXT1kpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSB0ZXN0RGVzYyArICIgLSAiICsgc2RmLmZvcm1hdChkKSArICJcdCI7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dCArICJcdCIgKyBjYWxXT1k7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKG91dHB1dCk7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICB9IAorICAgICAgICB9IAorCisgICAgICAgIGludFtdIERBVEEgPSB7CisgICAgICAgICAgICAzLCA1MiwgNTIsIDUyLCA1MiwgNTIsIDUyLCA1MiwKKyAgICAgICAgICAgICAgICAxLCAgMSwgIDEsICAxLCAgMSwgIDEsICAxLAorICAgICAgICAgICAgICAgIDIsICAyLCAgMiwgIDIsICAyLCAgMiwgIDIsCisgICAgICAgICAgICA0LCA1MiwgNTIsIDUyLCA1MiwgNTIsIDUyLCA1MiwKKyAgICAgICAgICAgICAgIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLAorICAgICAgICAgICAgICAgIDEsICAxLCAgMSwgIDEsICAxLCAgMSwgIDEsCisgICAgICAgIH07CisgICAgICAgIHRlc3RDYWwuc2V0Rmlyc3REYXlPZldlZWsoQ2FsZW5kYXIuU1VOREFZKTsKKyAgICAgICAgZm9yIChpbnQgaj0wOyBqPERBVEEubGVuZ3RoOyBqKz0yMikgeworICAgICAgICAgICAgbG9nbG4oIk1pbmltYWwgZGF5cyBpbiBmaXJzdCB3ZWVrID0gIiArIERBVEFbal0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIFdlZWsgc3RhcnRzIG9uIFN1bmRheSIpOworICAgICAgICAgICAgdGVzdENhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKERBVEFbal0pOworICAgICAgICAgICAgdGVzdENhbC5zZXQoMTk5NywgQ2FsZW5kYXIuREVDRU1CRVIsIDIxKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTwyMTsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IHdveSA9IHRlc3RDYWwuZ2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUik7CisgICAgICAgICAgICAgICAgbG9nKHRlc3RDYWwuZ2V0VGltZSgpICsgIiAiICsgd295KTsKKyAgICAgICAgICAgICAgICBpZiAod295ICE9IERBVEFbaiArIDEgKyBpXSkgeworICAgICAgICAgICAgICAgICAgICBsb2coIiBFUlJPUiIpOworICAgICAgICAgICAgICAgICAgICBmYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy9sb2dsbigpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIE5vdyBjb21wdXRlIHRoZSB0aW1lIGZyb20gdGhlIGZpZWxkcywgYW5kIG1ha2Ugc3VyZSB3ZQorICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgc2FtZSBhbnN3ZXIgYmFjay4gVGhpcyBpcyBhIHJvdW5kLXRyaXAgdGVzdC4KKyAgICAgICAgICAgICAgICBEYXRlIHNhdmUgPSB0ZXN0Q2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgdGVzdENhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgREFUQVtqKzEraV0gPCAyNSA/IDE5OTggOiAxOTk3KTsKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLnNldChDYWxlbmRhci5XRUVLX09GX1lFQVIsIERBVEFbaisxK2ldKTsKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgKGklNykgKyBDYWxlbmRhci5TVU5EQVkpOworICAgICAgICAgICAgICAgIGlmICghdGVzdENhbC5nZXRUaW1lKCkuZXF1YWxzKHNhdmUpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIgIFBhcnNlIGZhaWxlZDogIiArIHRlc3RDYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbD0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLnNldFRpbWUoc2F2ZSk7CisgICAgICAgICAgICAgICAgdGVzdENhbC5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIERhdGUgZFtdID0gbmV3IERhdGVbOF07CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuREVDRU1CRVIsIDI4KTsKKyAgICAgICAgZFswXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5KQU5VQVJZLCAxMCk7CisgICAgICAgIGRbMV0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuREVDRU1CRVIsIDMxKTsKKyAgICAgICAgZFsyXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk5LCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgZFszXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICAvLyBUZXN0IGZpZWxkIGRpc2FtYmlndWF0aW9uIHdpdGggYSBmZXcgc3BlY2lhbCBoYXJkLWNvZGVkIGNhc2VzLgorICAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBmYWlsIGlmIHRoZSBhYm92ZSBjYXNlcyBhcmVuJ3QgZmFpbGluZy4KKyAgICAgICAgT2JqZWN0W10gRElTQU0gPSB7CisgICAgICAgICAgICBuZXcgSW50ZWdlcigxOTk4KSwgbmV3IEludGVnZXIoMSksIG5ldyBJbnRlZ2VyKENhbGVuZGFyLlNVTkRBWSksCisgICAgICAgICAgICAgICAgZFswXSwKKyAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDE5OTgpLCBuZXcgSW50ZWdlcigyKSwgbmV3IEludGVnZXIoQ2FsZW5kYXIuU0FUVVJEQVkpLAorICAgICAgICAgICAgICAgIGRbMV0sCisgICAgICAgICAgICBuZXcgSW50ZWdlcigxOTk4KSwgbmV3IEludGVnZXIoNTMpLCBuZXcgSW50ZWdlcihDYWxlbmRhci5USFVSU0RBWSksCisgICAgICAgICAgICAgICAgZFsyXSwKKyAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDE5OTgpLCBuZXcgSW50ZWdlcig1MyksIG5ldyBJbnRlZ2VyKENhbGVuZGFyLkZSSURBWSksCisgICAgICAgICAgICAgICAgZFszXSwKKyAgICAgICAgfTsKKyAgICAgICAgdGVzdENhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDMpOworICAgICAgICB0ZXN0Q2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLlNVTkRBWSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxESVNBTS5sZW5ndGg7IGkrPTQpIHsKKyAgICAgICAgICAgIGludCB5ID0gKChJbnRlZ2VyKURJU0FNW2ldKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgaW50IHdveSA9ICgoSW50ZWdlcilESVNBTVtpKzFdKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgaW50IGRvdyA9ICgoSW50ZWdlcilESVNBTVtpKzJdKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgRGF0ZSBleHAgPSAoRGF0ZSlESVNBTVtpKzNdOworICAgICAgICAgICAgdGVzdENhbC5jbGVhcigpOworICAgICAgICAgICAgdGVzdENhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgeSk7CisgICAgICAgICAgICB0ZXN0Q2FsLnNldChDYWxlbmRhci5XRUVLX09GX1lFQVIsIHdveSk7CisgICAgICAgICAgICB0ZXN0Q2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgZG93KTsKKyAgICAgICAgICAgIGxvZyh5ICsgIi1XIiArIHdveSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRE9XIiArIGRvdyArICIgZXhwZWN0OiIgKyBleHAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGdvdDoiICsgdGVzdENhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgaWYgKCF0ZXN0Q2FsLmdldFRpbWUoKS5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgIGxvZygiICBGQUlMIik7CisgICAgICAgICAgICAgICAgZmFpbCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL2xvZ2xuKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgdHJ5IGFkZGluZyBhbmQgcm9sbGluZworICAgICAgICBPYmplY3QgQUREID0gbmV3IE9iamVjdCgpOworICAgICAgICBPYmplY3QgUk9MTCA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuREVDRU1CRVIsIDI1KTsKKyAgICAgICAgZFswXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk5LCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgZFsxXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5ERUNFTUJFUiwgMjgpOworICAgICAgICBkWzJdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkpBTlVBUlksIDQpOworICAgICAgICBkWzNdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkRFQ0VNQkVSLCAyNyk7CisgICAgICAgIGRbNF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuREVDRU1CRVIsIDI4KTsKKyAgICAgICAgZFs1XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk5LCBDYWxlbmRhci5KQU5VQVJZLCAyKTsKKyAgICAgICAgZFs2XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCBDYWxlbmRhci5KQU5VQVJZLCAzKTsKKyAgICAgICAgZFs3XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICAKKyAgICAgICAgT2JqZWN0W10gQUREUk9MTCA9IHsKKyAgICAgICAgICAgIEFERCwgbmV3IEludGVnZXIoMSksIGRbMF0sIGRbMV0sCisgICAgICAgICAgICBBREQsIG5ldyBJbnRlZ2VyKDEpLCBkWzJdLCBkWzNdLAorICAgICAgICAgICAgUk9MTCwgbmV3IEludGVnZXIoMSksIGRbNF0sIGRbNV0sCisgICAgICAgICAgICBST0xMLCBuZXcgSW50ZWdlcigxKSwgZFs2XSwgZFs3XSwKKyAgICAgICAgfTsKKyAgICAgICAgdGVzdENhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDMpOworICAgICAgICB0ZXN0Q2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLlNVTkRBWSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxBRERST0xMLmxlbmd0aDsgaSs9NCkgeworICAgICAgICAgICAgaW50IGFtb3VudCA9ICgoSW50ZWdlcilBRERST0xMW2krMV0pLmludFZhbHVlKCk7CisgICAgICAgICAgICBEYXRlIGJlZm9yZSA9IChEYXRlKUFERFJPTExbaSsyXTsKKyAgICAgICAgICAgIERhdGUgYWZ0ZXIgPSAoRGF0ZSlBRERST0xMW2krM107CisKKyAgICAgICAgICAgIHRlc3RDYWwuc2V0VGltZShiZWZvcmUpOworICAgICAgICAgICAgaWYgKEFERFJPTExbaV0gPT0gQUREKSB0ZXN0Q2FsLmFkZChDYWxlbmRhci5XRUVLX09GX1lFQVIsIGFtb3VudCk7CisgICAgICAgICAgICBlbHNlIHRlc3RDYWwucm9sbChDYWxlbmRhci5XRUVLX09GX1lFQVIsIGFtb3VudCk7CisgICAgICAgICAgICBsb2coKEFERFJPTExbaV09PUFERD8iYWRkKFdPWSwiOiJyb2xsKFdPWSwiKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCArICIpICIgKyBiZWZvcmUgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICBpZiAoIWFmdGVyLmVxdWFscyh0ZXN0Q2FsLmdldFRpbWUoKSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiICBleHA6IiArIGFmdGVyICsgIiAgRkFJTCIpOworICAgICAgICAgICAgICAgIGZhaWwgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBsb2dsbigiIG9rIik7CisKKyAgICAgICAgICAgIHRlc3RDYWwuc2V0VGltZShhZnRlcik7CisgICAgICAgICAgICBpZiAoQUREUk9MTFtpXSA9PSBBREQpIHRlc3RDYWwuYWRkKENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgLWFtb3VudCk7CisgICAgICAgICAgICBlbHNlIHRlc3RDYWwucm9sbChDYWxlbmRhci5XRUVLX09GX1lFQVIsIC1hbW91bnQpOworICAgICAgICAgICAgbG9nKChBRERST0xMW2ldPT1BREQ/ImFkZChXT1ksIjoicm9sbChXT1ksIikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoLWFtb3VudCkgKyAiKSAiICsgYWZ0ZXIgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICBpZiAoIWJlZm9yZS5lcXVhbHModGVzdENhbC5nZXRUaW1lKCkpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgZXhwOiIgKyBiZWZvcmUgKyAiICBGQUlMIik7CisgICAgICAgICAgICAgICAgZmFpbCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGxvZ2xuKCIgb2siKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmYWlsKSBlcnJsbigiRmFpbDogV2VlayBvZiB5ZWFyIG1pc2JlaGF2aW5nIik7CisgICAgfSAKKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA2MTM2KCkgeworICAgICAgICBMb2NhbGUgc2F2ZUxvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFN0cmluZ1tdIG5hbWVzID0geyAiQ2FsZW5kYXIiLCAiRGF0ZUZvcm1hdCIsICJOdW1iZXJGb3JtYXQiIH07CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0geyBMb2NhbGUuQ0hJTkVTRSwgTG9jYWxlLkNISU5BIH07CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8bG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KGxvY2FsZXNbaV0pOworICAgICAgICAgICAgICAgIGludFtdIG4gPSB7CisgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLmdldEF2YWlsYWJsZUxvY2FsZXMoKS5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKS5sZW5ndGgKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxuLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChuW2pdID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIG5hbWVzW2pdICsgIiBoYXMgbm8gbG9jYWxlcyBmb3IgIiArIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KHNhdmVMb2NhbGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDg3NjQoKSB7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuTUFSQ0gsIDE1LCAxMiwgMDAsIDAwKTsKKyAgICAgICAgRGF0ZSBkMDAgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuTUFSQ0gsIDE1LCAxMiwgMDAsIDU2KTsKKyAgICAgICAgRGF0ZSBkMDEgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuTUFSQ0gsIDE1LCAxMiwgMzQsIDAwKTsKKyAgICAgICAgRGF0ZSBkMTAgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuTUFSQ0gsIDE1LCAxMiwgMzQsIDU2KTsKKyAgICAgICAgRGF0ZSBkMTEgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgMTUsIDEyLCAzNCwgNTYpOworICAgICAgICBEYXRlIGRNICA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5NzAsIENhbGVuZGFyLkpBTlVBUlksIDEpOworICAgICAgICBEYXRlIGVwb2NoID0gdGVtcGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsgCisgICAgICAgIGNhbC5zZXRUaW1lKGQxMSk7CisKKyAgICAgICAgY2FsLmNsZWFyKCBDYWxlbmRhci5NSU5VVEUgKTsgCisgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7IAorICAgICAgICBpZiAoIWNhbC5nZXRUaW1lKCkuZXF1YWxzKGQwMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZDExICsgIiBjbGVhcihNSU5VVEUpID0+IGV4cGVjdCAiICsKKyAgICAgICAgICAgICAgICAgIGQwMSArICIsIGdvdCAiICsgY2FsLmdldFRpbWUoKSk7CisgICAgICAgIH0KKworICAgICAgICBjYWwuc2V0KCBDYWxlbmRhci5TRUNPTkQsIDAgKTsgCisgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7IAorICAgICAgICBpZiAoIWNhbC5nZXRUaW1lKCkuZXF1YWxzKGQwMCkpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogc2V0KFNFQ09ORCwgMCkgYnJva2VuIik7CisKKyAgICAgICAgY2FsLnNldFRpbWUoZDExKTsKKyAgICAgICAgY2FsLnNldCggQ2FsZW5kYXIuU0VDT05ELCAwICk7IAorICAgICAgICBsb2dsbihjYWwuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOyAKKyAgICAgICAgaWYgKCFjYWwuZ2V0VGltZSgpLmVxdWFscyhkMTApKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IHNldChTRUNPTkQsIDApIGJyb2tlbiAjMiIpOworCisgICAgICAgIGNhbC5jbGVhciggQ2FsZW5kYXIuTUlOVVRFICk7IAorICAgICAgICBsb2dsbihjYWwuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOyAKKyAgICAgICAgaWYgKCFjYWwuZ2V0VGltZSgpLmVxdWFscyhkMDApKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IGNsZWFyKE1JTlVURSkgYnJva2VuICMyIik7CisKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7CisgICAgICAgIGlmICghY2FsLmdldFRpbWUoKS5lcXVhbHMoZXBvY2gpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IGFmdGVyIGNsZWFyKCkgZXhwZWN0ICIgKyBlcG9jaCArICIsIGdvdCAiICsgY2FsLmdldFRpbWUoKSk7CisKKyAgICAgICAgY2FsLnNldFRpbWUoZDExKTsKKyAgICAgICAgY2FsLmNsZWFyKCBDYWxlbmRhci5NT05USCApOyAKKyAgICAgICAgbG9nbG4oY2FsLmdldFRpbWUoKS50b1N0cmluZygpKTsgCisgICAgICAgIGlmICghY2FsLmdldFRpbWUoKS5lcXVhbHMoZE0pKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGQxMSArICIgY2xlYXIoTU9OVEgpID0+IGV4cGVjdCAiICsKKyAgICAgICAgICAgICAgICAgIGRNICsgIiwgZ290ICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTE0NTc4KCkgeworICAgICAgICBpbnQgT05FX0hPVVIgPSA2MCo2MCoxMDAwOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpKTsKKyAgICAgICAgCisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuQVBSSUwsIDUsIDEsIDApOworICAgICAgICBsb25nIG9uc2V0ID0gdGVtcGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpICsgT05FX0hPVVI7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLk9DVE9CRVIsIDI1LCAwLCAwKTsKKyAgICAgICAgbG9uZyBjZWFzZSA9IHRlbXBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSArIDIqT05FX0hPVVI7CisKKyAgICAgICAgYm9vbGVhbiBmYWlsID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBmaW5hbCBpbnQgQUREID0gMTsKKyAgICAgICAgZmluYWwgaW50IFJPTEwgPSAyOworCisgICAgICAgIGxvbmdbXSBEQVRBID0geworICAgICAgICAgICAgLy8gU3RhcnQgQWN0aW9uIEFtdCBFeHBlY3RlZF9jaGFuZ2UKKyAgICAgICAgICAgIG9uc2V0IC0gT05FX0hPVVIsICAgQURELCAgICAgIDEsICAgICBPTkVfSE9VUiwKKyAgICAgICAgICAgIG9uc2V0LCAgICAgICAgICAgICAgQURELCAgICAgLTEsICAgIC1PTkVfSE9VUiwKKyAgICAgICAgICAgIG9uc2V0IC0gT05FX0hPVVIsICAgUk9MTCwgICAgIDEsICAgICBPTkVfSE9VUiwKKyAgICAgICAgICAgIG9uc2V0LCAgICAgICAgICAgICAgUk9MTCwgICAgLTEsICAgIC1PTkVfSE9VUiwKKyAgICAgICAgICAgIGNlYXNlIC0gT05FX0hPVVIsICAgQURELCAgICAgIDEsICAgICBPTkVfSE9VUiwKKyAgICAgICAgICAgIGNlYXNlLCAgICAgICAgICAgICAgQURELCAgICAgLTEsICAgIC1PTkVfSE9VUiwKKyAgICAgICAgICAgIGNlYXNlIC0gT05FX0hPVVIsICAgUk9MTCwgICAgIDEsICAgICBPTkVfSE9VUiwKKyAgICAgICAgICAgIGNlYXNlLCAgICAgICAgICAgICAgUk9MTCwgICAgLTEsICAgIC1PTkVfSE9VUiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTQpIHsKKyAgICAgICAgICAgIERhdGUgZGF0ZSA9IG5ldyBEYXRlKERBVEFbaV0pOworICAgICAgICAgICAgaW50IGFtdCA9IChpbnQpIERBVEFbaSsyXTsKKyAgICAgICAgICAgIGxvbmcgZXhwZWN0ZWRDaGFuZ2UgPSBEQVRBW2krM107CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvZyhkYXRlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgY2FsLnNldFRpbWUoZGF0ZSk7CisKKyAgICAgICAgICAgIHN3aXRjaCAoKGludCkgREFUQVtpKzFdKSB7CisgICAgICAgICAgICBjYXNlIEFERDoKKyAgICAgICAgICAgICAgICBsb2coIiBhZGQgKEhPVVIsIiArIChhbXQ8MD8iIjoiKyIpK2FtdCArICIpPSAiKTsKKyAgICAgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkhPVVIsIGFtdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJPTEw6CisgICAgICAgICAgICAgICAgbG9nKCIgcm9sbChIT1VSLCIgKyAoYW10PDA/IiI6IisiKSthbXQgKyAiKT0gIik7CisgICAgICAgICAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUiwgYW10KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nKGNhbC5nZXRUaW1lKCkudG9TdHJpbmcoKSk7CisKKyAgICAgICAgICAgIGxvbmcgY2hhbmdlID0gY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgLSBkYXRlLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGlmIChjaGFuZ2UgIT0gZXhwZWN0ZWRDaGFuZ2UpIHsKKyAgICAgICAgICAgICAgICBmYWlsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBsb2dsbigiIEZBSUwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgbG9nbG4oIiBPSyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZhaWwpIGVycmxuKCJGYWlsOiByb2xsL2FkZCBtaXNiZWhhdmVzIGFyb3VuZCBEU1Qgb25zZXQvY2Vhc2UiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIHN1cmUgbWF4aW11bSBmb3IgSE9VUiBmaWVsZCBpcyAxMSwgbm90IDEyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTE4Mzg0KCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBpZiAoY2FsLmdldE1heGltdW0oQ2FsZW5kYXIuSE9VUikgIT0gMTEgfHwKKyAgICAgICAgICAgIGNhbC5nZXRMZWFzdE1heGltdW0oQ2FsZW5kYXIuSE9VUikgIT0gMTEgfHwKKyAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkhPVVIpICE9IDExKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IG1heGltdW0gb2YgSE9VUiBmaWVsZCBzaG91bGQgYmUgMTEiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayBpc0xlYXBZZWFyIGZvciBCQyB5ZWFycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyNTg4MSgpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gKEdyZWdvcmlhbkNhbGVuZGFyKSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTU1NIGQsIHl5eXkgRyIpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgZm9yIChpbnQgeT0tMjA7IHk8PTEwOyArK3kpIHsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRVJBLCB5IDwgMSA/IEdyZWdvcmlhbkNhbGVuZGFyLkJDIDogR3JlZ29yaWFuQ2FsZW5kYXIuQUQpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCB5IDwgMSA/IDEgLSB5IDogeSk7CisgICAgICAgICAgICBsb2dsbih5ICsgIiA9ICIgKyBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuaXNMZWFwWWVhcih5KSk7CisgICAgICAgICAgICBpZiAoY2FsLmlzTGVhcFllYXIoeSkgIT0gKCh5KzQwKSU0ID09IDApKQorICAgICAgICAgICAgICAgIGVycmxuKCJMZWFwIHllYXJzIGJyb2tlbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gSSBhbSBkaXNhYmxpbmcgdGhpcyB0ZXN0IC0tIGl0IGlzIGN1cnJlbnRseSBmYWlsaW5nIGJlY2F1c2Ugb2YgYSBidWcKKyAgICAvLyBpbiBTdW4ncyBsYXRlc3QgY2hhbmdlIHRvIFNUWi5nZXRPZmZzZXQoKS4gSSBoYXZlIGZpbGVkIGEgU3VuIGJ1ZworICAgIC8vIGFnYWluc3QgdGhpcyBwcm9ibGVtLgorCisgICAgLy8gUmUtZW5hYmxlZCBhZnRlciAncG9ydGluZycgVFogYW5kIFNUWiBmcm9tIGphdmEudXRpbCB0byBjb20uaWJtLmljdS51dGlsLgorICAgIC8qKgorICAgICAqIFByb3ZlIHRoYXQgR3JlZ29yaWFuQ2FsZW5kYXIgaXMgcHJvbGVwdGljIChpdCB1c2VkIHRvIGN1dCBvZmYgYXQgNDUgQkMsCisgICAgICogYW5kIG5vdCBoYXZlIGxlYXAgeWVhcnMgYmVmb3JlIHRoZW4pLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTI1ODkyKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSAoR3JlZ29yaWFuQ2FsZW5kYXIpIENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIC8vRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU1NTSBkLCB5eXl5IEciKTsKKyAgICAgICAgLy9mbXQgPSBudWxsOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5FUkEsIEdyZWdvcmlhbkNhbGVuZGFyLkJDKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCA4MSk7IC8vIDgxIEJDIGlzIGEgbGVhcCB5ZWFyIChwcm9sZXB0aWNhbGx5KQorICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5GRUJSVUFSWSk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFURSwgMjgpOworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5EQVRFKSAhPSAyOSB8fAorICAgICAgICAgICAgIWNhbC5pc0xlYXBZZWFyKC04MCkpIC8vIC04MCA9PSA4MSBCQworICAgICAgICAgICAgZXJybG4oIkNhbGVuZGFyIG5vdCBwcm9sZXB0aWMiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxlbmRhciBhbmQgR3JlZ29yaWFuQ2FsZW5kYXIgaGFzaENvZGUoKSBtZXRob2RzIG5lZWQgaW1wcm92ZW1lbnQuCisgICAgICogQ2FsZW5kYXIgbmVlZHMgYSBnb29kIGltcGxlbWVudGF0aW9uIHRoYXQgc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUsIGFuZAorICAgICAqIEdyZWdvcmlhbkNhbGVuZGFyIHNob3VsZCB1c2UgdGhhdCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEzNjM5OSgpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogTm90ZTogVGhpcyB0ZXN0IGlzIGFjdHVhbGx5IG1vcmUgc3RyaWN0IHRoYW4gaXQgaGFzIHRvIGJlLgorICAgICAgICAgKiBUZWNobmljYWxseSwgdGhlcmUgaXMgbm8gcmVxdWlyZW1lbnQgdGhhdCB1bmVxdWFsIG9iamVjdHMgaGF2ZQorICAgICAgICAgKiB1bmVxdWFsIGhhc2hlcy4gV2Ugb25seSByZXF1aXJlIGVxdWFsIG9iamVjdHMgdG8gaGF2ZSBlcXVhbCBoYXNoZXMuCisgICAgICAgICAqIEl0IGlzIGRlc2lyYWJsZSBmb3IgdW5lcXVhbCBvYmplY3RzIHRvIGhhdmUgZGlzdHJpYnV0ZWQgaGFzaGVzLCBidXQKKyAgICAgICAgICogdGhlcmUgaXMgbm8gaGFyZCByZXF1aXJlbWVudCBoZXJlLgorICAgICAgICAgKiAKKyAgICAgICAgICogSW4gdGhpcyB0ZXN0IHdlIG1ha2UgYXNzdW1wdGlvbnMgYWJvdXQgY2VydGFpbiBhdHRyaWJ1dGVzIG9mIGNhbGVuZGFyCisgICAgICAgICAqIG9iamVjdHMgZ2V0dGluZyByZXByZXNlbnRlZCBpbiB0aGUgaGFzaCwgd2hpY2ggbmVlZCBub3QgYWx3YXlzIGJlIHRoZQorICAgICAgICAgKiBjYXNlIChhbHRob3VnaCBpdCBkb2VzIHdvcmsgY3VycmVudGx5IHdpdGggdGhlIGdpdmVuIHRlc3QpLgorICAgICAgICAgKi8KKyAgICAgICAgQ2FsZW5kYXIgYSA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIENhbGVuZGFyIGIgPSAoQ2FsZW5kYXIpYS5jbG9uZSgpOworICAgICAgICBpZiAoYS5oYXNoQ29kZSgpICE9IGIuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oIkNhbGVuZGFyIGhhc2ggY29kZSB1bmVxdWFsIGZvciBjbG9uZWQgb2JqZWN0cyIpOworICAgICAgICB9CisgICAgICAgIFRpbWVab25lIGF0ejEgPSBhLmdldFRpbWVab25lKCk7CisgICAgICAgIFRpbWVab25lIGF0ejIgPSAoVGltZVpvbmUpYXR6MS5jbG9uZSgpOworICAgICAgICBpZighYXR6MS5lcXVhbHMoYXR6MikpeworICAgICAgICAJZXJybG4oIlRoZSBjbG9uZSB0aW1lem9uZXMgYXJlIG5vdCBlcXVhbCIpOworICAgICAgICB9CisgICAgICAgIGlmKGF0ejEuaGFzaENvZGUoKSE9YXR6Mi5oYXNoQ29kZSgpKXsKKyAgICAgICAgCWVycmxuKCJUaW1lWm9uZSBoYXNoIGNvZGUgdW5lcXVhbCBmb3IgY2xvbmVkIG9iamVjdHMiKTsKKyAgICAgICAgfQorICAgICAgICBiLnNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoNyAtIGEuZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpKTsKKyAgICAgICAgaWYgKGEuaGFzaENvZGUoKSA9PSBiLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhciBoYXNoIGNvZGUgaWdub3JlcyBtaW5pbWFsIGRheXMgaW4gZmlyc3Qgd2VlayIpOworICAgICAgICB9CisgICAgICAgIGIuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhhLmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSk7CisKKyAgICAgICAgYi5zZXRGaXJzdERheU9mV2VlaygoYS5nZXRGaXJzdERheU9mV2VlaygpICUgNykgKyAxKTsgLy8gTmV4dCBkYXkKKyAgICAgICAgaWYgKGEuaGFzaENvZGUoKSA9PSBiLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhciBoYXNoIGNvZGUgaWdub3JlcyBmaXJzdCBkYXkgb2Ygd2VlayIpOworICAgICAgICB9CisgICAgICAgIGIuc2V0Rmlyc3REYXlPZldlZWsoYS5nZXRGaXJzdERheU9mV2VlaygpKTsKKworICAgICAgICBiLnNldExlbmllbnQoIWEuaXNMZW5pZW50KCkpOworICAgICAgICBpZiAoYS5oYXNoQ29kZSgpID09IGIuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oIkNhbGVuZGFyIGhhc2ggY29kZSBpZ25vcmVzIGxlbmllbnQgc2V0dGluZyIpOworICAgICAgICB9CisgICAgICAgIGIuc2V0TGVuaWVudChhLmlzTGVuaWVudCgpKTsKKyAgICAgICAgCisgICAgICAgIC8vIEFzc3VtZSBnZXRUaW1lWm9uZSgpIHJldHVybnMgYSByZWZlcmVuY2UsIG5vdCBhIGNsb25lCisgICAgICAgIC8vIG9mIGEgcmVmZXJlbmNlIC0tIHRoaXMgaXMgdHJ1ZSBhcyBvZiB0aGlzIHdyaXRpbmcKKyAgICAgICAgVGltZVpvbmUgYXR6ID0gYS5nZXRUaW1lWm9uZSgpOworICAgICAgICBUaW1lWm9uZSBidHogPSBiLmdldFRpbWVab25lKCk7CisKKyAgICAgICAgYnR6LnNldFJhd09mZnNldChhdHouZ2V0UmF3T2Zmc2V0KCkgKyA2MCo2MCoxMDAwKTsKKyAgICAgICAgaWYoYXR6Lmhhc2hDb2RlKCk9PSBidHouaGFzaENvZGUoKSl7CisgICAgICAgIAllcnJsbihhdHouaGFzaENvZGUoKSsiPT0iK2J0ei5oYXNoQ29kZSgpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYS5nZXRUaW1lWm9uZSgpIT0gYi5nZXRUaW1lWm9uZSgpICYmIGEuaGFzaENvZGUoKSA9PSBiLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhciBoYXNoIGNvZGUgaWdub3JlcyB6b25lIik7CisgICAgICAgIH0KKyAgICAgICAgYi5nZXRUaW1lWm9uZSgpLnNldFJhd09mZnNldChhLmdldFRpbWVab25lKCkuZ2V0UmF3T2Zmc2V0KCkpOworCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGMgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZCA9IChHcmVnb3JpYW5DYWxlbmRhciljLmNsb25lKCk7CisgICAgICAgIGlmIChjLmhhc2hDb2RlKCkgIT0gZC5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiR3JlZ29yaWFuQ2FsZW5kYXIgaGFzaCBjb2RlIHVuZXF1YWwgZm9yIGNsb25lcyBvYmplY3RzIik7CisgICAgICAgIH0KKyAgICAgICAgRGF0ZSBjdXRvdmVyID0gYy5nZXRHcmVnb3JpYW5DaGFuZ2UoKTsKKyAgICAgICAgZC5zZXRHcmVnb3JpYW5DaGFuZ2UobmV3IERhdGUoY3V0b3Zlci5nZXRUaW1lKCkgKyAyNCo2MCo2MCoxMDAwKSk7CisgICAgICAgIGlmIChjLmhhc2hDb2RlKCkgPT0gZC5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiR3JlZ29yaWFuQ2FsZW5kYXIgaGFzaCBjb2RlIGlnbm9yZXMgY3V0b3ZlciIpOworICAgICAgICB9ICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHcmVnb3JpYW5DYWxlbmRhci5lcXVhbHMoKSBpZ25vcmVzIGN1dG92ZXIgZGF0ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQxNjY1KCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsMiA9IChHcmVnb3JpYW5DYWxlbmRhciljYWwuY2xvbmUoKTsKKyAgICAgICAgRGF0ZSBjdXQgPSBjYWwuZ2V0R3JlZ29yaWFuQ2hhbmdlKCk7CisgICAgICAgIERhdGUgY3V0MiA9IG5ldyBEYXRlKGN1dC5nZXRUaW1lKCkgKyAxMDAqMjQqNjAqNjAqMTAwMEwpOyAvLyAxMDAgZGF5cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGF0ZXIKKyAgICAgICAgaWYgKCFjYWwuZXF1YWxzKGNhbDIpKSB7CisgICAgICAgICAgICBlcnJsbigiQ2xvbmVkIEdyZWdvcmlhbkNhbGVuZGFycyBub3QgZXF1YWwiKTsKKyAgICAgICAgfQorICAgICAgICBjYWwyLnNldEdyZWdvcmlhbkNoYW5nZShjdXQyKTsKKyAgICAgICAgaWYgKGNhbC5lcXVhbHMoY2FsMikpIHsKKyAgICAgICAgICAgIGVycmxuKCJHcmVnb3JpYW5DYWxlbmRhci5lcXVhbHMoKSBpZ25vcmVzIGN1dG92ZXIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBCdWcgc3RhdGVzIHRoYXQgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlzIHRocm93biBieQorICAgICAqIEdyZWdvcmlhbkNhbGVuZGFyLnJvbGwoKSB3aGVuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBzaG91bGQgYmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDI5MzMoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjYWxlbmRhci5yb2xsKC0xLCB0cnVlKTsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZhaWxlZCwgbm8gZXhjZXB0aW9uIHRyb3duIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBPSzogRG8gbm90aGluZworICAgICAgICAgICAgLy8gbG9nbG4oIlRlc3QgcGFzc2VkIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGZhaWxlZC4gVW5leHBlY3RlZCBleGNlcHRpb24gaXMgdGhyb3duOiAiICsgZSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9IAorICAgIH0KKworICAgIC8qKgorICAgICAqIEdyZWdvcmlhbkNhbGVuZGFyIGhhbmRsaW5nIG9mIERhdGVzIExvbmcuTUlOX1ZBTFVFIGFuZCBMb25nLk1BWF9WQUxVRSBpcworICAgICAqIGNvbmZ1c2luZzsgdW5sZXNzIHRoZSB0aW1lIHpvbmUgaGFzIGEgcmF3IG9mZnNldCBvZiB6ZXJvLCBvbmUgb3IgdGhlCisgICAgICogb3RoZXIgb2YgdGhlc2Ugd2lsbCB3cmFwLiBXZSd2ZSBtb2RpZmllZCB0aGUgdGVzdCBnaXZlbiBpbiB0aGUgYnVnIHJlcG9ydAorICAgICAqIHRvIHRoZXJlZm9yZSBvbmx5IGNoZWNrIHRoZSBiZWhhdmlvciBvZiBhIGNhbGVuZGFyIHdpdGggYSB6ZXJvIHJhdyBvZmZzZXQKKyAgICAgKiB6b25lLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQ1MTU4KCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworCisgICAgICAgIGNhbGVuZGFyLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSk7CisKKyAgICAgICAgY2FsZW5kYXIuc2V0VGltZShuZXcgRGF0ZShMb25nLk1JTl9WQUxVRSkpOworICAgICAgICBpbnQgeWVhcjEgPSBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgIGludCBlcmExID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkVSQSk7CisgICAgICAgIAorICAgICAgICBjYWxlbmRhci5zZXRUaW1lKG5ldyBEYXRlKExvbmcuTUFYX1ZBTFVFKSk7CisgICAgICAgIGludCB5ZWFyMiA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgaW50IGVyYTIgPSBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuRVJBKTsKKyAgICAgICAgCisgICAgICAgIGlmICh5ZWFyMSA9PSB5ZWFyMiAmJiBlcmExID09IGVyYTIpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBMb25nLk1JTl9WQUxVRSBvciBMb25nLk1BWF9WQUxVRSB3cmFwcGluZyBhcm91bmQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1heGltdW0gdmFsdWUgZm9yIFlFQVIgZmllbGQgd3JvbmcuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDU5ODMoKSB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSk7CisgICAgICAgIERhdGVbXSBEQVRFUyA9IHsgbmV3IERhdGUoTG9uZy5NQVhfVkFMVUUpLCBuZXcgRGF0ZShMb25nLk1JTl9WQUxVRSkgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEVTLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBjYWxlbmRhci5zZXRUaW1lKERBVEVTW2ldKTsKKyAgICAgICAgICAgIGludCB5ZWFyID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgaW50IG1heFllYXIgPSBjYWxlbmRhci5nZXRNYXhpbXVtKENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgaWYgKHllYXIgPiBtYXhZZWFyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCBmb3IgIitEQVRFU1tpXS5nZXRUaW1lKCkrIiBtczogeWVhcj0iICsKKyAgICAgICAgICAgICAgICAgICAgICB5ZWFyICsgIiwgbWF4WWVhcj0iICsgbWF4WWVhcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGEgYnVnIGluIHRoZSB2YWxpZGF0aW9uIGNvZGUgb2YgR3JlZ29yaWFuQ2FsZW5kYXIuIEFzIHJlcG9ydGVkLAorICAgICAqIHRoZSBidWcgc2VlbXMgd29yc2UgdGhhbiBpdCByZWFsbHkgaXMsIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgd2F5IHRoZSBidWcKKyAgICAgKiByZXBvcnQgdGVzdCB3YXMgd3JpdHRlbi4gSW4gcmVhbGl0eSB0aGUgYnVnIGlzIHJlc3RyaWN0ZWQgdG8gdGhlCisgICAgICogREFZX09GX1lFQVIgZmllbGQuIC0gbGl1IDYvMjkvOTgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0NzI2OSgpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsZW5kYXIuc2V0TGVuaWVudChmYWxzZSk7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NiwgQ2FsZW5kYXIuSkFOVUFSWSwgMyk7IC8vIEFyYml0cmFyeSBkYXRlCisgICAgICAgIERhdGUgZGF0ZSA9IHRlbXBjYWwuZ2V0VGltZSgpOyAKKyAgICAgICAgZm9yIChpbnQgZmllbGQgPSAwOyBmaWVsZCA8IGNhbGVuZGFyLmdldEZpZWxkQ291bnQoKTsgZmllbGQrKykgeworICAgICAgICAgICAgY2FsZW5kYXIuc2V0VGltZShkYXRlKTsKKyAgICAgICAgICAgIC8vIE5vdGU6IEluIHRoZSBidWcgcmVwb3J0LCBnZXRBY3R1YWxNYXhpbXVtKCkgd2FzIGNhbGxlZCBpbnN0ZWFkCisgICAgICAgICAgICAvLyBvZiBnZXRNYXhpbXVtKCkgLS0gdGhpcyB3YXMgYW4gZXJyb3IuIFRoZSB2YWxpZGF0aW9uIGNvZGUgZG9lc24ndAorICAgICAgICAgICAgLy8gdXNlIGdldEFjdHVhbE1heGltdW0oKSwgc2luY2UgdGhhdCdzIHRvbyBjb3N0bHkuCisgICAgICAgICAgICBpbnQgbWF4ID0gY2FsZW5kYXIuZ2V0TWF4aW11bShmaWVsZCk7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSBtYXgrMTsKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldChmaWVsZCwgdmFsdWUpOyAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXIuZ2V0VGltZSgpOyAvLyBGb3JjZSB0aW1lIGNvbXB1dGF0aW9uCisgICAgICAgICAgICAgICAgLy8gV2UgZXhwZWN0IGFuIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24uIElmIHdlIGZhbGwgdGhyb3VnaAorICAgICAgICAgICAgICAgIC8vIHRvIHRoZSBuZXh0IGxpbmUsIHRoZW4gd2UgaGF2ZSBhIGJ1Zy4KKyAgICAgICAgICAgICAgICBlcnJsbigiVGVzdCBmYWlsZWQgd2l0aCBmaWVsZCAiICsgRklFTERfTkFNRVtmaWVsZF0gKworICAgICAgICAgICAgICAgICAgICAgICIsIGRhdGUgYmVmb3JlOiAiICsgZGF0ZSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZGF0ZSBhZnRlcjogIiArIGNhbGVuZGFyLmdldFRpbWUoKSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgdmFsdWU6ICIgKyB2YWx1ZSArICIgKG1heCA9ICIgKyBtYXggKyIpIik7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlcG9ydGVkIGJ1ZyBpcyB0aGF0IGEgR3JlZ29yaWFuQ2FsZW5kYXIgd2l0aCBhIGN1dG92ZXIgb2YKKyAgICAgKiBEYXRlKExvbmcuTUFYX1ZBTFVFKSBkb2Vzbid0IGJlaGF2ZSBhcyBhIHB1cmUgSnVsaWFuIGNhbGVuZGFyLiBDQU5OT1QKKyAgICAgKiBSRVBST0RVQ0UgVEhJUyBCVUcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0OTY3NygpIHsKKyAgICAgICAgVGltZVpvbmVbXSB6b25lcyA9IHsgVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVab25lLmdldFRpbWVab25lKCJFQVQiKSB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8em9uZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmVzW2ldKTsKKworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGV4dHJlbWUgdmFsdWVzIGRvbid0IHdyYXAgYXJvdW5kCisgICAgICAgICAgICBjYWxlbmRhci5zZXRUaW1lKG5ldyBEYXRlKExvbmcuTUlOX1ZBTFVFKSk7CisgICAgICAgICAgICBpZiAoY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkVSQSkgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQkMpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogTG9uZy5NSU5fVkFMVUUgbXMgaGFzIGFuIEFEIHllYXIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhbGVuZGFyLnNldFRpbWUobmV3IERhdGUoTG9uZy5NQVhfVkFMVUUpKTsKKyAgICAgICAgICAgIGlmIChjYWxlbmRhci5nZXQoQ2FsZW5kYXIuRVJBKSAhPSBHcmVnb3JpYW5DYWxlbmRhci5BRCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBMb25nLk1BWF9WQUxVRSBtcyBoYXMgYSBCQyB5ZWFyIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldEdyZWdvcmlhbkNoYW5nZShuZXcgRGF0ZShMb25nLk1BWF9WQUxVRSkpOworICAgICAgICAgICAgLy8gdG8gb2J0YWluIGEgcHVyZSBKdWxpYW4gY2FsZW5kYXIKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm9vbGVhbiBpczEwMExlYXAgPSBjYWxlbmRhci5pc0xlYXBZZWFyKDEwMCk7CisgICAgICAgICAgICBpZiAoIWlzMTAwTGVhcCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ0ZXN0IGZhaWxlZCB3aXRoIHpvbmUgIiArIHpvbmVzW2ldLmdldElEKCkpOworICAgICAgICAgICAgICAgIGVycmxuKCIgY3V0b3ZlciBkYXRlIGlzIENhbGVuZGFyLk1BWF9EQVRFIik7CisgICAgICAgICAgICAgICAgZXJybG4oIiBpc0xlYXBZZWFyKDEwMCkgcmV0dXJuczogIiArIGlzMTAwTGVhcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxlbmRhciBhbmQgRGF0ZSBIT1VSIGJyb2tlbi4gSWYgSE9VUiBpcyBvdXQtb2YtcmFuZ2UsIENhbGVuZGFyIGFuZCBEYXRlCisgICAgICogY2xhc3NlcyB3aWxsIG1pc2JlaGF2ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2MjU4NygpIHsKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQodHopOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIodHopOworICAgICAgICBEYXRlIGQ7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGk8NTsgKytpKSB7CisgICAgICAgICAgICBpZiAoaT4wKSBsb2dsbigiLS0tIik7CisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCgxOTk4LCBDYWxlbmRhci5BUFJJTCwgNSwgaSwgMCk7CisgICAgICAgICAgICBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIFN0cmluZyBzMCA9IGQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGxvZ2xuKCIwICIgKyBpICsgIjogIiArIHMwKTsKKworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkFQUklMLCA0LCBpKzI0LCAwKTsKKyAgICAgICAgICAgIGQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgU3RyaW5nIHNQbHVzID0gZC50b1N0cmluZygpOworICAgICAgICAgICAgbG9nbG4oIisgIiArIGkgKyAiOiAiICsgc1BsdXMpOworCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoMTk5OCwgQ2FsZW5kYXIuQVBSSUwsIDYsIGktMjQsIDApOworICAgICAgICAgICAgZCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBTdHJpbmcgc01pbnVzID0gZC50b1N0cmluZygpOworICAgICAgICAgICAgbG9nbG4oIi0gIiArIGkgKyAiOiAiICsgc01pbnVzKTsKKworICAgICAgICAgICAgaWYgKCFzMC5lcXVhbHMoc1BsdXMpIHx8ICFzMC5lcXVhbHMoc01pbnVzKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBBbGwgdGhyZWUgbGluZXMgbXVzdCBtYXRjaCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkaW5nIDEyIG1vbnRocyBiZWhhdmVzIGRpZmZlcmVudGx5IGZyb20gYWRkaW5nIDEgeWVhcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTY1MzQzKCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk2LCBDYWxlbmRhci5GRUJSVUFSWSwgMjkpOworICAgICAgICBEYXRlIHN0YXJ0ID0gY2FsZW5kYXIuZ2V0VGltZSgpOworICAgICAgICBsb2dsbigiaW5pdCBkYXRlOiAiICsgc3RhcnQpOworICAgICAgICBjYWxlbmRhci5hZGQoQ2FsZW5kYXIuTU9OVEgsIDEyKTsgCisgICAgICAgIERhdGUgZGF0ZTEgPSBjYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgIGxvZ2xuKCJhZnRlciBhZGRpbmcgMTIgbW9udGhzOiAiICsgZGF0ZTEpOworICAgICAgICBjYWxlbmRhci5zZXRUaW1lKHN0YXJ0KTsKKyAgICAgICAgY2FsZW5kYXIuYWRkKENhbGVuZGFyLllFQVIsIDEpOworICAgICAgICBEYXRlIGRhdGUyID0gY2FsZW5kYXIuZ2V0VGltZSgpOworICAgICAgICBsb2dsbigiYWZ0ZXIgYWRkaW5nIG9uZSB5ZWFyIDogIiArIGRhdGUyKTsKKyAgICAgICAgaWYgKGRhdGUxLmVxdWFscyhkYXRlMikpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IHBhc3NlZCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHcmVnb3JpYW5DYWxlbmRhci5nZXRBY3R1YWxNYXhpbXVtKCkgZG9lcyBub3QgYWNjb3VudCBmb3IgZmlyc3QgZGF5IG9mCisgICAgICogd2Vlay4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2NjEwOSgpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogVGVzdCBtb250aDoKKyAgICAgICAgICogCisgICAgICAgICAqIE1hcmNoIDE5OTggU3UgTW8gVHUgV2UgVGggRnIgU2EgMSAyIDMgNCA1IDYgNyA4IDkgMTAgMTEgMTIgMTMgMTQgMTUKKyAgICAgICAgICogMTYgMTcgMTggMTkgMjAgMjEgMjIgMjMgMjQgMjUgMjYgMjcgMjggMjkgMzAgMzEKKyAgICAgICAgICovCisgICAgICAgIGJvb2xlYW4gcGFzc2VkID0gdHJ1ZTsKKyAgICAgICAgaW50IGZpZWxkID0gQ2FsZW5kYXIuV0VFS19PRl9NT05USDsKKworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihMb2NhbGUuVVMpOworICAgICAgICBjYWxlbmRhci5zZXQoMTk5OCwgQ2FsZW5kYXIuTUFSQ0gsIDEpOworICAgICAgICBjYWxlbmRhci5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDEpOworICAgICAgICBsb2dsbigiRGF0ZTogICIgKyBjYWxlbmRhci5nZXRUaW1lKCkpOworCisgICAgICAgIGludCBmaXJzdEluTW9udGggPSBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKworICAgICAgICBmb3IgKGludCBmaXJzdEluV2VlayA9IENhbGVuZGFyLlNVTkRBWTsgZmlyc3RJbldlZWsgPD0gQ2FsZW5kYXIuU0FUVVJEQVk7IGZpcnN0SW5XZWVrKyspIHsKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldEZpcnN0RGF5T2ZXZWVrKGZpcnN0SW5XZWVrKTsKKyAgICAgICAgICAgIGludCByZXR1cm5lZCA9IGNhbGVuZGFyLmdldEFjdHVhbE1heGltdW0oZmllbGQpOworICAgICAgICAgICAgaW50IGV4cGVjdGVkID0gKDMxICsgKChmaXJzdEluTW9udGggLSBmaXJzdEluV2VlayArIDcpJSA3KSArIDYpIC8gNzsKKworICAgICAgICAgICAgbG9nbG4oIkZpcnN0IGRheSBvZiB3ZWVrID0gIiArIGZpcnN0SW5XZWVrICsKKyAgICAgICAgICAgICAgICAgICIgIGdldEFjdHVhbE1heGltdW0oV0VFS19PRl9NT05USCkgPSAiICsgcmV0dXJuZWQgKworICAgICAgICAgICAgICAgICAgIiAgZXhwZWN0ZWQgPSAiICsgZXhwZWN0ZWQgKworICAgICAgICAgICAgICAgICAgKChyZXR1cm5lZCA9PSBleHBlY3RlZCkgPyAiICBvayIgOiAiICBGQUlMIikpOworCisgICAgICAgICAgICBpZiAocmV0dXJuZWQgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICBwYXNzZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIXBhc3NlZCkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxlbmRhci5nZXRBY3R1YWxNYXhpbXVtKFlFQVIpIHdvcmtzIHdyb25nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTY3MDYwKCkgeworICAgICAgICBpbnQgZmllbGQgPSBDYWxlbmRhci5ZRUFSOworICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFRUUgTU1NIGRkIEhIOm1tOnNzIHp6eiB5eXl5IEciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5VUyk7CisKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXJzW10gPSB7CisgICAgICAgICAgICBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTAwLCBDYWxlbmRhci5OT1ZFTUJFUiwgMSksCisgICAgICAgICAgICBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoLTk5IC8qIDEwMEJDICovLCBDYWxlbmRhci5KQU5VQVJZLCAxKSwKKyAgICAgICAgICAgIG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTk2LCBDYWxlbmRhci5GRUJSVUFSWSwgMjkpLAorICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdIGlkID0geyAiSHlicmlkIiwgIkdyZWdvcmlhbiIsICJKdWxpYW4iIH07CisKKyAgICAgICAgZm9yIChpbnQgaz0wOyBrPDM7ICsraykgeworICAgICAgICAgICAgbG9nbG4oIi0tLSAiICsgaWRba10gKyAiIC0tLSIpOworCisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8Y2FsZW5kYXJzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXIgPSBjYWxlbmRhcnNbal07CisgICAgICAgICAgICAgICAgaWYgKGsgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5zZXRHcmVnb3JpYW5DaGFuZ2UobmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGsgPT0gMikgeworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5zZXRHcmVnb3JpYW5DaGFuZ2UobmV3IERhdGUoTG9uZy5NQVhfVkFMVUUpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmb3JtYXQuc2V0Q2FsZW5kYXIoKENhbGVuZGFyKWNhbGVuZGFyLmNsb25lKCkpOworCisgICAgICAgICAgICAgICAgRGF0ZSBkYXRlQmVmb3JlID0gY2FsZW5kYXIuZ2V0VGltZSgpOworCisgICAgICAgICAgICAgICAgaW50IG1heFllYXIgPSBjYWxlbmRhci5nZXRBY3R1YWxNYXhpbXVtKGZpZWxkKTsKKyAgICAgICAgICAgICAgICBsb2dsbigibWF4WWVhcjogIiArIG1heFllYXIgKyAiIGZvciAiICsgZm9ybWF0LmZvcm1hdChjYWxlbmRhci5nZXRUaW1lKCkpKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiZGF0ZSBiZWZvcmU6ICIgKyBmb3JtYXQuZm9ybWF0KGRhdGVCZWZvcmUpKTsKKworICAgICAgICAgICAgICAgIGludCB5ZWFyc1tdID0gezIwMDAsIG1heFllYXItMSwgbWF4WWVhciwgbWF4WWVhcisxfTsKKworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgeWVhcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2YWxpZCA9IHllYXJzW2ldIDw9IG1heFllYXI7CisgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyLnNldChmaWVsZCwgeWVhcnNbaV0pOworICAgICAgICAgICAgICAgICAgICBEYXRlIGRhdGVBZnRlciA9IGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IG5ld1llYXIgPSBjYWxlbmRhci5nZXQoZmllbGQpOworICAgICAgICAgICAgICAgICAgICBjYWxlbmRhci5zZXRUaW1lKGRhdGVCZWZvcmUpOyAvLyByZXN0b3JlIGNhbGVuZGFyIGZvciBuZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzZQorCisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIgWWVhciAiICsgeWVhcnNbaV0gKyAodmFsaWQ/ICIgb2sgIiA6ICIgYmFkIikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBmb3JtYXQuZm9ybWF0KGRhdGVBZnRlcikpOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWQgJiYgbmV3WWVhciAhPSB5ZWFyc1tpXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIiAgRkFJTDogIiArIG5ld1llYXIgKyAiIHNob3VsZCBiZSB2YWxpZDsgZGF0ZSwgbW9udGggYW5kIHRpbWUgc2hvdWxkbid0IGNoYW5nZSIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF2YWxpZCAmJiBuZXdZZWFyID09IHllYXJzW2ldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBubyBsb25nZXIgcmVxdWlyZSBzdHJpY3QgeWVhciBtYXhpbWEuIFRoYXQgaXMsIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FsZW5kYXIKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsZ29yaXRobSBtYXkgd29yayBmb3IgdmFsdWVzID4gdGhlIHN0YXRlZCBtYXhpbXVtLgorICAgICAgICAgICAgICAgICAgICAgICAgLy9lcnJsbigiIEZBSUw6ICIgKyBuZXdZZWFyICsgIiBzaG91bGQgYmUgaW52YWxpZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIiAgTm90ZTogIiArIG5ld1llYXIgKyAiID4gbWF4aW11bSwgYnV0IHN0aWxsIHZhbGlkIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxlbmRhci5yb2xsIGJyb2tlbiBUaGlzIGJ1ZyByZWxpZXMgb24gdGhlIFRpbWVab25lIGJ1ZyA0MTczNjA0IHRvIGFsc28KKyAgICAgKiBiZSBmaXhlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3MzUxNigpIHsKKyAgICAgICAgaW50IGZpZWxkc0xpc3RbXVtdID0geworICAgICAgICAgICAgeyAxOTk3LCBDYWxlbmRhci5GRUJSVUFSWSwgIDEsIDEwLCA0NSwgMTUsIDkwMCB9LAorICAgICAgICAgICAgeyAxOTk5LCBDYWxlbmRhci5ERUNFTUJFUiwgMjIsIDIzLCA1OSwgNTksIDk5OSB9CisgICAgICAgIH07CisgICAgICAgIGludCBsaW1pdCA9IDQwOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKworICAgICAgICBjYWwuc2V0VGltZShuZXcgRGF0ZSgwKSk7CisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLkhPVVIsICAweDdGMDAwMDAwKTsKKyAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUiwgLTB4N0YwMDAwMDApOworICAgICAgICBpZiAoY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkhvdXIgcm9sbGluZyBicm9rZW4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IG9wPTA7IG9wPDI7ICsrb3ApIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIEdyZWdvcmlhbkNhbGVuZGFyICIgKworICAgICAgICAgICAgICAgICAgKG9wPT0wID8gImFkZCIgOiAicm9sbCIpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGZpZWxkPTA7IGZpZWxkIDwgY2FsLmdldEZpZWxkQ291bnQoKTsgKytmaWVsZCkgeworICAgICAgICAgICAgICAgIGlmIChmaWVsZCAhPSBDYWxlbmRhci5aT05FX09GRlNFVCAmJgorICAgICAgICAgICAgICAgICAgICBmaWVsZCAhPSBDYWxlbmRhci5EU1RfT0ZGU0VUKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxmaWVsZHNMaXN0Lmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmllbGRzW10gPSBmaWVsZHNMaXN0W2pdOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KGZpZWxkc1swXSwgZmllbGRzWzFdLCBmaWVsZHNbMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1szXSwgZmllbGRzWzRdLCBmaWVsZHNbNV0pOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgZmllbGRzWzZdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMipsaW1pdDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmFkZChmaWVsZCwgaSA8IGxpbWl0ID8gMSA6IC0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwucm9sbChmaWVsZCwgaSA8IGxpbWl0ID8gMSA6IC0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5ZRUFSKSAhPSBmaWVsZHNbMF0gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSAhPSBmaWVsZHNbMV0gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpICE9IGZpZWxkc1syXSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICE9IGZpZWxkc1szXSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSAhPSBmaWVsZHNbNF0gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkgIT0gZmllbGRzWzVdIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkgIT0gZmllbGRzWzZdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZpZWxkICIgKyBmaWVsZCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAoIiArIEZJRUxEX05BTUVbZmllbGRdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSBGQUlMLCBleHBlY3RlZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHNbMF0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiArIChmaWVsZHNbMV0gKyAxKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgZmllbGRzWzJdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgKyBmaWVsZHNbM10gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IiArIGZpZWxkc1s0XSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjoiICsgZmllbGRzWzVdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIgKyBmaWVsZHNbNl0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGdvdCAiICsgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpICsgMSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiArIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIiArIGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiIgKyBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IiArIGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iICsgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoZmllbGRzWzBdLCBmaWVsZHNbMV0sIGZpZWxkc1syXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1szXSwgZmllbGRzWzRdLCBmaWVsZHNbNV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIGZpZWxkc1s2XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlN0YXJ0IGRhdGU6ICIgKyBjYWwuZ2V0KENhbGVuZGFyLllFQVIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIgKyAoY2FsLmdldChDYWxlbmRhci5NT05USCkgKyAxKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgY2FsLmdldChDYWxlbmRhci5EQVRFKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiICsgY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IiArIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjoiICsgY2FsLmdldChDYWxlbmRhci5TRUNPTkQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIgKyBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwcmV2ID0gY2FsLmdldFRpbWUoKS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyKmxpbWl0OyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5hZGQoZmllbGQsIGkgPCBsaW1pdCA/IDEgOiAtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwucm9sbChmaWVsZCwgaSA8IGxpbWl0ID8gMSA6IC0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHQgPSBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZWx0YSA9IHQgLSBwcmV2OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2ID0gdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oKG9wID09IDAgPyAiYWRkKCIgOiAicm9sbCgiKSArIEZJRUxEX05BTUVbZmllbGRdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkgPCBsaW1pdCA/ICIsICsxKSA9PiAiIDogIiwgLTEpID0+ICIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiArIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDEpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgY2FsLmdldChDYWxlbmRhci5EQVRFKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIiArIGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjoiICsgY2FsLmdldChDYWxlbmRhci5NSU5VVEUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjoiICsgY2FsLmdldChDYWxlbmRhci5TRUNPTkQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iICsgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGRlbHRhPSIgKyBkZWx0YSArICIgbXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3NDM2MSgpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NiwgMSwgMjkpOworCisgICAgICAgIGNhbGVuZGFyLmFkZChDYWxlbmRhci5NT05USCwgMTApOyAKKyAgICAgICAgLy9EYXRlIGRhdGUxID0gY2FsZW5kYXIuZ2V0VGltZSgpOworICAgICAgICAvL2RhdGUxID0gbnVsbDsKKyAgICAgICAgaW50IGQxID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisKKyAgICAgICAgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NiwgMSwgMjkpOworICAgICAgICBjYWxlbmRhci5hZGQoQ2FsZW5kYXIuTU9OVEgsIDExKTsgCisgICAgICAgIC8vRGF0ZSBkYXRlMiA9IGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgLy9kYXRlMiA9IG51bGw7CisgICAgICAgIGludCBkMiA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworCisgICAgICAgIGlmIChkMSAhPSBkMikgeworICAgICAgICAgICAgZXJybG4oImFkZGluZyBtb250aHMgdG8gRmViIDI5IGJyb2tlbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsZW5kYXIgZG9lcyBub3QgdXBkYXRlIGZpZWxkIHZhbHVlcyB3aGVuIHNldFRpbWVab25lIGlzIGNhbGxlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3NzQ4NCgpIHsKKyAgICAgICAgVGltZVpvbmUgUFNUID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBUaW1lWm9uZSBFU1QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiRVNUIik7CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoUFNULCBMb2NhbGUuVVMpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk5LCAzLCAyMSwgMTUsIDUsIDApOyAvLyBBcmJpdHJhcnkKKyAgICAgICAgaW50IGgxID0gY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSk7CisgICAgICAgIGNhbC5zZXRUaW1lWm9uZShFU1QpOworICAgICAgICBpbnQgaDIgPSBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKTsKKyAgICAgICAgaWYgKGgxID09IGgyKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRmllbGRzIG5vdCB1cGRhdGVkIGFmdGVyIHNldFRpbWVab25lIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBnZXRUaW1lKCkgbXVzdCBOT1QgY2hhbmdlIHdoZW4gdGltZSB6b25lIGlzIGNoYW5nZWQuCisgICAgICAgIC8vIGdldFRpbWUoKSByZXR1cm5zIHpvbmUtaW5kZXBlbmRlbnQgdGltZSBpbiBtcy4KKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXRUaW1lWm9uZShQU1QpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAxMCk7CisgICAgICAgIERhdGUgcHN0MTAgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuc2V0VGltZVpvbmUoRVNUKTsKKyAgICAgICAgRGF0ZSBlc3QxMCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGlmICghcHN0MTAuZXF1YWxzKGVzdDEwKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldFRpbWVab25lIGNoYW5nZWQgdGltZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogV2VlayBvZiB5ZWFyIGlzIHdyb25nIGF0IHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSB5ZWFyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTk3Njk5KCkgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLk1PTkRBWSk7CisgICAgICAgIGNhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDQpOworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFIGRkIE1NTSB5eXl5ICAnRE9ZPSdEICdXT1k9J3ciKTsKKyAgICAgICAgZm10LnNldENhbGVuZGFyKGNhbCk7CisKKyAgICAgICAgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgIDIwMDAsICBDYWxlbmRhci5KQU5VQVJZLCAgIDEsICAgNTIsCisgICAgICAgICAgICAyMDAxLCAgQ2FsZW5kYXIuREVDRU1CRVIsICAzMSwgIDEsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyApIHsKKyAgICAgICAgICAgIGNhbC5zZXQoREFUQVtpKytdLCBEQVRBW2krK10sIERBVEFbaSsrXSk7CisgICAgICAgICAgICBpbnQgZXhwV09ZID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IGFjdFdPWSA9IGNhbC5nZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSKTsKKyAgICAgICAgICAgIGlmIChleHBXT1kgPT0gYWN0V09ZKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKQorICAgICAgICAgICAgICAgICAgICAgICsgIiwgZXhwZWN0ZWQgV09ZPSIgKyBleHBXT1kpOworICAgICAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgLTgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajwxNDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENhbGVuZGFyIERBWV9PRl9XRUVLX0lOX01PTlRIIGZpZWxkcy0+dGltZSBicm9rZW4uIFRoZSBwcm9ibGVtIGlzIGluIHRoZQorICAgICAqIGZpZWxkIGRpc2FtYmlndWF0aW9uIGNvZGUgaW4gR3JlZ29yaWFuQ2FsZW5kYXIuIFRoaXMgY29kZSBpcyBzdXBwb3NlZCB0bworICAgICAqIGNob29zZSB0aGUgbW9zdCByZWNlbnQgc2V0IG9mIGZpZWxkcyBhbW9uZyB0aGUgZm9sbG93aW5nOgorICAgICAqIAorICAgICAqIE1PTlRIICsgREFZX09GX01PTlRIIE1PTlRIICsgV0VFS19PRl9NT05USCArIERBWV9PRl9XRUVLIE1PTlRIICsKKyAgICAgKiBEQVlfT0ZfV0VFS19JTl9NT05USCArIERBWV9PRl9XRUVLIERBWV9PRl9ZRUFSIFdFRUtfT0ZfWUVBUiArIERBWV9PRl9XRUVLCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQyMDkwNzEoKSB7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisKKyAgICAgICAgLy8gR2VuZXJhbCBmaWVsZCBzZXR0aW5nIHRlc3QKKyAgICAgICAgaW50IFkgPSAxOTk1OworICAgICAgICAKKyAgICAgICAgRGF0ZSBkW10gPSBuZXcgRGF0ZVsxM107CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoWSwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgIGRbMF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoWSwgQ2FsZW5kYXIuTUFSQ0gsIDEpOworICAgICAgICBkWzFdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLkpBTlVBUlksIDQpOworICAgICAgICBkWzJdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLkpBTlVBUlksIDE4KTsKKyAgICAgICAgZFszXSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5KQU5VQVJZLCAxOCk7CisgICAgICAgIGRbNF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoWS0xLCBDYWxlbmRhci5ERUNFTUJFUiwgMjIpOworICAgICAgICBkWzVdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLkpBTlVBUlksIDI2KTsKKyAgICAgICAgZFs2XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldChZLCBDYWxlbmRhci5KQU5VQVJZLCAyNik7CisgICAgICAgIGRbN10gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoWSwgQ2FsZW5kYXIuTUFSQ0gsIDEpOworICAgICAgICBkWzhdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLk9DVE9CRVIsIDYpOworICAgICAgICBkWzldID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLk9DVE9CRVIsIDEzKTsKKyAgICAgICAgZFsxMF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoWSwgQ2FsZW5kYXIuQVVHVVNULCAxMCk7CisgICAgICAgIGRbMTFdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KFksIENhbGVuZGFyLkRFQ0VNQkVSLCA3KTsKKyAgICAgICAgZFsxMl0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKworICAgICAgICBPYmplY3RbXSBGSUVMRF9EQVRBID0geworICAgICAgICAgICAgLy8gQWRkIG5ldyB0ZXN0IGNhc2VzIGFzIG5lZWRlZC4KKworICAgICAgICAgICAgLy8gMAorICAgICAgICAgICAgbmV3IGludFtdIHt9LCBkWzBdLAorICAgICAgICAgICAgLy8gMQorICAgICAgICAgICAgbmV3IGludFtdIHsgQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLk1BUkNIIH0sIGRbMV0sCisgICAgICAgICAgICAvLyAyCisgICAgICAgICAgICBuZXcgaW50W10geyBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuV0VETkVTREFZIH0sIGRbMl0sCisgICAgICAgICAgICAvLyAzCisgICAgICAgICAgICBuZXcgaW50W10geyBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVEhVUlNEQVksCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDE4LCB9LCBkWzNdLAorICAgICAgICAgICAgLy8gNAorICAgICAgICAgICAgbmV3IGludFtdIHsgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxOCwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5USFVSU0RBWSwgfSwgZFs0XSwKKyAgICAgICAgICAgIC8vIDUgKFdPTSAtMSBpcyBpbiBwcmV2aW91cyBtb250aCkKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLkRBWV9PRl9NT05USCwgMTgsCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5XRUVLX09GX01PTlRILCAtMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5USFVSU0RBWSwgfSwgZFs1XSwKKyAgICAgICAgICAgIC8vIDYKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLkRBWV9PRl9NT05USCwgMTgsCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5XRUVLX09GX01PTlRILCA0LAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRIVVJTREFZLCB9LCBkWzZdLAorICAgICAgICAgICAgLy8gNyAoRElNIC0xIGlzIGluIHNhbWUgbW9udGgpCisgICAgICAgICAgICBuZXcgaW50W10geyBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDE4LAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRIVVJTREFZLCB9LCBkWzddLAorICAgICAgICAgICAgLy8gOAorICAgICAgICAgICAgbmV3IGludFtdIHsgQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCA5LAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLldFRE5FU0RBWSwgfSwgZFs4XSwKKyAgICAgICAgICAgIC8vIDkKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5PQ1RPQkVSLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuRlJJREFZLCB9LCBkWzldLAorICAgICAgICAgICAgLy8gMTAKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5PQ1RPQkVSLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgMiwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5GUklEQVksIH0sIGRbMTBdLAorICAgICAgICAgICAgLy8gMTEKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5PQ1RPQkVSLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxNSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAyMjIsIH0sIGRbMTFdLAorICAgICAgICAgICAgLy8gMTIKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7IENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5USFVSU0RBWSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5ERUNFTUJFUiwgfSwgZFsxMl0sCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPEZJRUxEX0RBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBpbnRbXSBmaWVsZHMgPSAoaW50W10pIEZJRUxEX0RBVEFbaV07CisgICAgICAgICAgICBEYXRlIGV4cCA9IChEYXRlKSBGSUVMRF9EQVRBW2krMV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCBZKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxmaWVsZHMubGVuZ3RoOyBqKz0yKSB7CisgICAgICAgICAgICAgICAgY2FsLnNldChmaWVsZHNbal0sIGZpZWxkc1tqKzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgRGF0ZSBhY3QgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgaWYgKCFhY3QuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGVzdCAiICsgKGkvMikgKyAiIGdvdCAiICsgYWN0ICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCB3YW50ICIgKyBleHAgKworICAgICAgICAgICAgICAgICAgICAgICIgKHNlZSB0ZXN0L2phdmEvdXRpbC9DYWxlbmRhci9DYWxlbmRhclJlZ3Jlc3Npb24uamF2YSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgNSk7CisgICAgICAgIGRbMF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgMjYpOworICAgICAgICBkWzFdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkZFQlJVQVJZLCAyMyk7CisgICAgICAgIGRbMl0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgMjYpOworICAgICAgICBkWzNdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkpBTlVBUlksIDUpOworICAgICAgICBkWzRdID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTYsIENhbGVuZGFyLkRFQ0VNQkVSLCA4KTsKKyAgICAgICAgZFs1XSA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICAvLyBUZXN0IHNwZWNpZmljIGZhaWx1cmUgcmVwb3J0ZWQgaW4gYnVnCisgICAgICAgIE9iamVjdFtdIERBVEEgPSB7IAorICAgICAgICAgICAgbmV3IEludGVnZXIoMSksIGRbMF0sIG5ldyBJbnRlZ2VyKDQpLCBkWzFdLAorICAgICAgICAgICAgbmV3IEludGVnZXIoOCksIGRbMl0sIG5ldyBJbnRlZ2VyKC0xKSwgZFszXSwKKyAgICAgICAgICAgIG5ldyBJbnRlZ2VyKC00KSwgZFs0XSwgbmV3IEludGVnZXIoLTgpLCBkWzVdLAorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCwKKyAgICAgICAgICAgICAgICAgICAgKChOdW1iZXIpIERBVEFbaV0pLmludFZhbHVlKCkpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuU1VOREFZKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpBTlVBUlkpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgICAgIERhdGUgYWN0dWFsID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGlmICghYWN0dWFsLmVxdWFscyhEQVRBW2krMV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFN1bmRheSAiICsgREFUQVtpXSArCisgICAgICAgICAgICAgICAgICAgICAgIiBvZiBKYW4gMTk5NyAtPiAiICsgYWN0dWFsICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCB3YW50ICIgKyBEQVRBW2krMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogV0VFS19PRl9ZRUFSIGNvbXB1dGVkIGluY29ycmVjdGx5LiBBIGZhaWx1cmUgb2YgdGhpcyB0ZXN0IGNhbiBpbmRpY2F0ZSBhCisgICAgICogcHJvYmxlbSBpbiBzZXZlcmFsIGRpZmZlcmVudCBwbGFjZXMgaW4gdGhlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQyODg3OTIoKSB0aHJvd3MgRXhjZXB0aW9uIAorICAgIHsKKyAgICBUaW1lWm9uZSBzYXZlZFRaID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgIFRpbWVab25lLnNldERlZmF1bHQoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpKTsKKyAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgCisgICAgZm9yIChpbnQgaSA9IDE5MDA7IGkgPCAyMTAwOyBpKyspIHsKKyAgICAgICAgZm9yIChpbnQgajEgPSAxOyBqMSA8PSA3OyBqMSsrKSB7CisgICAgICAgIC8vIExvb3AgZm9yIE1pbmltYWxEYXlzSW5GaXJzdFdlZWs6IDEuLjcKKyAgICAgICAgZm9yIChpbnQgaiA9IENhbGVuZGFyLlNVTkRBWTsgaiA8PSBDYWxlbmRhci5TQVRVUkRBWTsgaisrKSB7CisgICAgICAgICAgICAvLyBMb29wIGZvciBGaXJzdERheU9mV2VlazogU1VOREFZLi5TQVRVUkRBWQorICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhqMSk7CisgICAgICAgICAgICBjYWwuc2V0Rmlyc3REYXlPZldlZWsoaik7CisgICAgICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgY2FsZW5kYXIgdG8gdGhlIGZpcnN0IGRheSBvZiB0aGUgbGFzdCB3ZWVrCisgICAgICAgICAgICAgICAgICAgIC8vIG9mIHRoZSB5ZWFyLiBUaGlzIG1heSBvdmVybGFwIHNvbWUgb2YgdGhlIHN0YXJ0IG9mCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBuZXh0IHllYXI7IHRoYXQgaXMsIHRoZSBsYXN0IHdlZWsgb2YgMTk5OSBtYXkKKyAgICAgICAgICAgICAgICAgICAgLy8gaW5jbHVkZSBzb21lIG9mIEphbnVhcnkgMjAwMC4gVXNlIHRoZSBhZGQoKSBtZXRob2QKKyAgICAgICAgICAgICAgICAgICAgLy8gdG8gYWR2YW5jZSB0aHJvdWdoIHRoZSB3ZWVrLiBGb3IgZWFjaCBkYXksIGNhbGwKKyAgICAgICAgICAgICAgICAgICAgLy8gZ2V0KFdFRUtfT0ZfWUVBUikuIFRoZSByZXN1bHQgc2hvdWxkIGJlIHRoZSBzYW1lCisgICAgICAgICAgICAgICAgICAgIC8vIGZvciB0aGUgd2hvbGUgd2Vlay4gTm90ZSB0aGF0IGEgYnVnIGluCisgICAgICAgICAgICAgICAgICAgIC8vIGdldEFjdHVhbE1heGltdW0oKSB3aWxsIGJyZWFrIHRoaXMgdGVzdC4KKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgaSk7CisgICAgICAgICAgICBpbnQgbWF4V2VlayA9IGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLldFRUtfT0ZfWUVBUik7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgbWF4V2Vlayk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBqKTsKKyAgICAgICAgICAgIGZvciAoaW50IGsgPSAxOyBrIDwgNzsgaysrKSB7CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICAgICAgaW50IFdPWSA9IGNhbC5nZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSKTsKKyAgICAgICAgICAgIGlmIChXT1kgIT0gbWF4V2VlaykgeworICAgICAgICAgICAgICAgIGVycmxuKGNhbC5nZXRUaW1lKCkgKyAiLGdvdD0iICsgV09ZCisgICAgICAgICAgICAgICAgICArICIsZXhwZWN0ZWQ9IiArIG1heFdlZWsgCisgICAgICAgICAgICAgICAgICArICIsbWluPSIgKyBqMSArICIsZmlyc3Q9IiArIGopOworICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBOb3cgYWR2YW5jZSB0aGUgY2FsZW5kYXIgb25lIG1vcmUgZGF5LiBUaGlzIHNob3VsZAorICAgICAgICAgICAgICAgICAgICAvLyBwdXQgaXQgYXQgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIDEgb2YgdGhlIG5leHQgeWVhci4KKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgICAgICAgICAgICBpbnQgV09ZID0gY2FsLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpOworICAgICAgICAgICAgaWYgKFdPWSAhPSAxKSB7CisgICAgICAgICAgICBlcnJsbihjYWwuZ2V0VGltZSgpICsgIixnb3Q9IiArIFdPWSAKKyAgICAgICAgICAgICAgICAgICsgIixleHBlY3RlZD0xLG1pbj0iICsgajEgKyAiLGZpcnN0IiArIGopOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlZFRaKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGZpZWxkRGlmZmVyZW5jZSgpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKNDM4KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGludCBEQVRBW10gPSB7CisgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5KQU5VQVJZLCAyMCwgICAyMDEwLCBDYWxlbmRhci5KVU5FLCAxNSwKKyAgICAgICAgICAgIDIwMTAsIENhbGVuZGFyLkpVTkUsIDE1LCAgICAgIDIwMDAsIENhbGVuZGFyLkpBTlVBUlksIDIwLAorICAgICAgICAgICAgMTk2NCwgQ2FsZW5kYXIuU0VQVEVNQkVSLCA3LCAgMTk5OSwgQ2FsZW5kYXIuSlVORSwgNCwKKyAgICAgICAgICAgIDE5OTksIENhbGVuZGFyLkpVTkUsIDQsICAgICAgIDE5NjQsIENhbGVuZGFyLlNFUFRFTUJFUiwgNywKKyAgICAgICAgfTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz02KSB7CisgICAgICAgICAgICBpbnQgeTEgPSBEQVRBW2ldOworICAgICAgICAgICAgaW50IG0xID0gREFUQVtpKzFdOworICAgICAgICAgICAgaW50IGQxID0gREFUQVtpKzJdOworICAgICAgICAgICAgaW50IHkyID0gREFUQVtpKzNdOworICAgICAgICAgICAgaW50IG0yID0gREFUQVtpKzRdOworICAgICAgICAgICAgaW50IGQyID0gREFUQVtpKzVdOworCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoeTEsIG0xLCBkMSk7CisgICAgICAgICAgICBEYXRlIGRhdGUxID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoeTIsIG0yLCBkMik7CisgICAgICAgICAgICBEYXRlIGRhdGUyID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICAgICAgY2FsLnNldFRpbWUoZGF0ZTEpOworICAgICAgICAgICAgaW50IGR5ID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMiwgQ2FsZW5kYXIuWUVBUik7CisgICAgICAgICAgICBpbnQgZG0gPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUyLCBDYWxlbmRhci5NT05USCk7CisgICAgICAgICAgICBpbnQgZGQgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUyLCBDYWxlbmRhci5EQVRFKTsKKworICAgICAgICAgICAgbG9nbG4oIiIgKyBkYXRlMiArICIgLSAiICsgZGF0ZTEgKyAiID0gIiArCisgICAgICAgICAgICAgICAgICBkeSArICJ5ICIgKyBkbSArICJtICIgKyBkZCArICJkIik7CisKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lKGRhdGUxKTsKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuWUVBUiwgZHkpOworICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5NT05USCwgZG0pOworICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVRFLCBkZCk7CisgICAgICAgICAgICBEYXRlIGRhdGUyMiA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBpZiAoIWRhdGUyLmVxdWFscyhkYXRlMjIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBkYXRlMSArICIgKyAiICsKKyAgICAgICAgICAgICAgICAgICAgICBkeSArICJ5ICIgKyBkbSArICJtICIgKyBkZCArICJkID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgZGF0ZTIyICsgIiwgZXhwICIgKyBkYXRlMik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGRhdGUxICsgIiArICIgKworICAgICAgICAgICAgICAgICAgICAgIGR5ICsgInkgIiArIGRtICsgIm0gIiArIGRkICsgImQgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICBkYXRlMjIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGJlaGF2aW9yIG9mIERTVF9PRkZTRVQgZmllbGQuIElDVTRKIEppdHRlcmJ1ZyA5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKOSgpIHsKKyAgICAgICAgaW50IEhPVVJTID0gNjAqNjAqMTAwMDsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5VUyk7CisKKyAgICAgICAgZmluYWwgaW50IEVORF9GSUVMRFMgPSAweDEyMzQ7CisKKyAgICAgICAgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIFdpdGggbm8gZXhwbGljaXQgWk9ORS9EU1QgZXhwZWN0IDEyOjAwIGFtCisgICAgICAgICAgICBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVORSwKKyAgICAgICAgICAgIEVORF9GSUVMRFMsCisgICAgICAgICAgICAwLCAwLCAvLyBleHBlY3RlZCBob3VyLCBtaW4KKworICAgICAgICAgICAgLy8gTm9ybWFsIFpPTkUvRFNUIGZvciBKdW5lIDEgUGFjaWZpYyBpcyA4OjAwLzE6MDAKKyAgICAgICAgICAgIENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FLAorICAgICAgICAgICAgQ2FsZW5kYXIuWk9ORV9PRkZTRVQsIC04KkhPVVJTLAorICAgICAgICAgICAgQ2FsZW5kYXIuRFNUX09GRlNFVCwgSE9VUlMsCisgICAgICAgICAgICBFTkRfRklFTERTLAorICAgICAgICAgICAgMCwgMCwgLy8gZXhwZWN0ZWQgaG91ciwgbWluCisKKyAgICAgICAgICAgIC8vIFdpdGggWk9ORS9EU1Qgb2YgODowMC8wOjMwIGV4cGVjdCB0aW1lIG9mIDEyOjMwIGFtCisgICAgICAgICAgICBDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVORSwKKyAgICAgICAgICAgIENhbGVuZGFyLlpPTkVfT0ZGU0VULCAtOCpIT1VSUywKKyAgICAgICAgICAgIENhbGVuZGFyLkRTVF9PRkZTRVQsIEhPVVJTLzIsCisgICAgICAgICAgICBFTkRfRklFTERTLAorICAgICAgICAgICAgMCwgMzAsIC8vIGV4cGVjdGVkIGhvdXIsIG1pbgorCisgICAgICAgICAgICAvLyBXaXRoIFpPTkUvRFNUIG9mIDg6MDAvVU5TRVQgZXhwZWN0IHRpbWUgb2YgMTowMCBhbQorICAgICAgICAgICAgQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUsCisgICAgICAgICAgICBDYWxlbmRhci5aT05FX09GRlNFVCwgLTgqSE9VUlMsCisgICAgICAgICAgICBFTkRfRklFTERTLAorICAgICAgICAgICAgMSwgMCwgLy8gZXhwZWN0ZWQgaG91ciwgbWluCisKKyAgICAgICAgICAgIC8vIFdpdGggWk9ORS9EU1Qgb2YgVU5TRVQvMDozMCBleHBlY3QgNDozMCBwbSAoZGF5IGJlZm9yZSkKKyAgICAgICAgICAgIENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FLAorICAgICAgICAgICAgQ2FsZW5kYXIuRFNUX09GRlNFVCwgSE9VUlMvMiwKKyAgICAgICAgICAgIEVORF9GSUVMRFMsCisgICAgICAgICAgICAxNiwgMzAsIC8vIGV4cGVjdGVkIGhvdXIsIG1pbgorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisKKyAgICAgICAgICAgIC8vIFNldCBmaWVsZHMKKyAgICAgICAgICAgIHdoaWxlIChEQVRBW2ldICE9IEVORF9GSUVMRFMpIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KERBVEFbaSsrXSwgREFUQVtpKytdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsraTsgLy8gc2tpcCBvdmVyIEVORF9GSUVMRFMKKworICAgICAgICAgICAgLy8gR2V0IGhvdXIvbWludXRlCisgICAgICAgICAgICBpbnQgaCA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICAgICAgaW50IG0gPSBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSk7CisKKyAgICAgICAgICAgIC8vIENoZWNrCisgICAgICAgICAgICBpZiAoaCAhPSBEQVRBW2ldIHx8IG0gIT0gREFUQVtpKzFdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IGV4cGVjdGVkICIgKyBEQVRBW2ldICsgIjoiICsgREFUQVtpKzFdICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBnb3QgIiArIGggKyAiOiIgKyBtICsgIiBhZnRlcjoiKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoREFUQVtzdGFydF0gIT0gRU5EX0ZJRUxEUykgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigic2V0KCIgKyBGSUVMRF9OQU1FW0RBVEFbc3RhcnQrK11dICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgIiArIERBVEFbc3RhcnQrK10gKyAiKTsiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGkgKz0gMjsgLy8gc2tpcCBvdmVyIGV4cGVjdGVkIGhvdXIsIG1pbgorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGF0ZUZvcm1hdCBjbGFzcyBtaXN0YWtlcyBkYXRlIHN0eWxlIGFuZCB0aW1lIHN0eWxlIGFzIGZvbGxvd3M6IC0KKyAgICAgKiBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UgdGFrZXMgZGF0ZSBzdHlsZSBhcyB0aW1lIHN0eWxlLCBhbmQgdGltZQorICAgICAqIHN0eWxlIGFzIGRhdGUgc3R5bGUgLSBJZiBhIENhbGVuZGFyIGlzIHBhc3NlZCB0bworICAgICAqIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlLCBpdCByZXR1cm5zIHRpbWUgaW5zdGFuY2UgLSBJZiBhIENhbGVuZGFyIGlzCisgICAgICogcGFzc2VkIHRvIERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlLCBpdCByZXR1cm5zIGRhdGUgaW5zdGFuY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGF0ZUZvcm1hdEZhY3RvcnlKMjYoKSB7CisgICAgICAgIFRpbWVab25lIHpvbmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBMb2NhbGUgbG9jID0gTG9jYWxlLlVTOworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9Mb3NfQW5nZWxlcyIpKTsKKyAgICAgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgyMDAxLCBDYWxlbmRhci5BUFJJTCwgNSwgMTcsIDQzLCA1Myk7CisgICAgICAgICAgICBEYXRlIGRhdGUgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKGxvYyk7CisgICAgICAgICAgICBPYmplY3RbXSBEQVRBID0geworICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGxvYyksCisgICAgICAgICAgICAgICAgIkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGxvYykiLAorICAgICAgICAgICAgICAgICI0LzUvMDEiLAorCisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSwKKyAgICAgICAgICAgICAgICAiRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSIsCisgICAgICAgICAgICAgICAgIjU6NDMgUE0iLAorCisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSwKKyAgICAgICAgICAgICAgICAiRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSIsCisgICAgICAgICAgICAgICAgIlRodXJzZGF5LCBBcHJpbCA1LCAyMDAxIDU6NDMgUE0iLAorCisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpLAorICAgICAgICAgICAgICAgICJEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuU0hPUlQsIGxvYykiLAorICAgICAgICAgICAgICAgICI0LzUvMDEiLAorCisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpLAorICAgICAgICAgICAgICAgICJEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuU0hPUlQsIGxvYykiLAorICAgICAgICAgICAgICAgICI1OjQzIFBNIiwKKworICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5TSE9SVCwgbG9jKSwKKyAgICAgICAgICAgICAgICAiRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LlNIT1JULCBsb2MpIiwKKyAgICAgICAgICAgICAgICAiVGh1cnNkYXksIEFwcmlsIDUsIDIwMDEgNTo0MyBQTSIsCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5TSE9SVCwgRGF0ZUZvcm1hdC5GVUxMLCBsb2MpLAorICAgICAgICAgICAgICAgICJjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5TSE9SVCwgRGF0ZUZvcm1hdC5GVUxMLCBsb2MpIiwKKyAgICAgICAgICAgICAgICAiNC81LzAxIDU6NDM6NTMgUE0gUERUIiwKKworICAgICAgICAgICAgICAgIGNhbC5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuU0hPUlQsIGxvYyksCisgICAgICAgICAgICAgICAgImNhbC5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuU0hPUlQsIGxvYykiLAorICAgICAgICAgICAgICAgICJUaHVyc2RheSwgQXByaWwgNSwgMjAwMSA1OjQzIFBNIiwKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gKERhdGVGb3JtYXQpIERBVEFbaV07CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlc2MgPSAoU3RyaW5nKSBEQVRBW2krMV07CisgICAgICAgICAgICAgICAgU3RyaW5nIGV4cCA9IChTdHJpbmcpIERBVEFbaSsyXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZ290ID0gZGYuZm9ybWF0KGRhdGUpOworICAgICAgICAgICAgICAgIGlmIChnb3QuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgZGVzYyArICIgPT4gIiArIGdvdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBkZXNjICsgIiA9PiAiICsgZ290ICsgIiwgZXhwZWN0ZWQgIiArIGV4cCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdCh6b25lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZWdpc3RyYXRpb24oKSB7CisgICAgICAgIC8qCisgICAgICAgICAqIFNldCBuYW1lcyA9IENhbGVuZGFyLmdldENhbGVuZGFyRmFjdG9yeU5hbWVzKCk7CisgICAgICAgICAqIAorICAgICAgICAgKiBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsgTG9jYWxlIGxvYyA9CisgICAgICAgICAqIExvY2FsZS5nZXREZWZhdWx0KCk7IEl0ZXJhdG9yIGl0ZXIgPSBuYW1lcy5pdGVyYXRvcigpOyB3aGlsZQorICAgICAgICAgKiAoaXRlci5oYXNOZXh0KCkpIHsgU3RyaW5nIG5hbWUgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOyBsb2dsbigiVGVzdGluZworICAgICAgICAgKiBmYWN0b3J5OiAiICsgbmFtZSk7CisgICAgICAgICAqIAorICAgICAgICAgKiBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSh0eiwgbG9jLCBuYW1lKTsgbG9nbG4oIkNhbGVuZGFyCisgICAgICAgICAqIGNsYXNzOiAiICsgY2FsLmdldENsYXNzKCkpOworICAgICAgICAgKiAKKyAgICAgICAgICogRGF0ZUZvcm1hdCBmbXQgPSBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5MT05HLAorICAgICAgICAgKiBEYXRlRm9ybWF0LkxPTkcsIGxvYyk7CisgICAgICAgICAqIAorICAgICAgICAgKiBsb2dsbigiRGF0ZTogIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOyB9CisgICAgICAgICAqICAvLyByZWdpc3RlciBuZXcgZGVmYXVsdCBmb3Igb3VyIGxvY2FsZSBsb2dsbigiXG5UZXN0aW5nCisgICAgICAgICAqIHJlZ2lzdHJhdGlvbiIpOyBsb2MgPSBuZXcgTG9jYWxlKCJlbiIsICJVUyIpOyBPYmplY3Qga2V5ID0KKyAgICAgICAgICogQ2FsZW5kYXIucmVnaXN0ZXIoSmFwYW5lc2VDYWxlbmRhci5mYWN0b3J5KCksIGxvYywgdHJ1ZSk7CisgICAgICAgICAqIAorICAgICAgICAgKiBsb2MgPSBuZXcgTG9jYWxlKCJlbiIsICJVUyIsICJURVNUIik7IENhbGVuZGFyIGNhbCA9CisgICAgICAgICAqIENhbGVuZGFyLmdldEluc3RhbmNlKGxvYyk7IGxvZ2xuKCJDYWxlbmRhciBjbGFzczogIiArCisgICAgICAgICAqIGNhbC5nZXRDbGFzcygpKTsgRGF0ZUZvcm1hdCBmbXQgPQorICAgICAgICAgKiBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkxPTkcsIGxvYyk7CisgICAgICAgICAqIGxvZ2xuKCJEYXRlOiAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7CisgICAgICAgICAqICAvLyBmb3JjZSB0byB1c2Ugb3RoZXIgZGVmYXVsdCBhbnl3YXkgbG9nbG4oIlxuT3ZlcnJpZGUKKyAgICAgICAgICogcmVnaXN0cmF0aW9uIik7IGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHR6LCBsb2MsICJHcmVnb3JpYW4iKTsgZm10ID0KKyAgICAgICAgICogY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5MT05HLCBsb2MpOworICAgICAgICAgKiBsb2dsbigiRGF0ZTogIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworICAgICAgICAgKiAgLy8gdW5yZWdpc3RlciBkZWZhdWx0IGxvZ2xuKCJcblVucmVnaXN0cmF0aW9uIik7IGxvZ2xuKCJVbnJlZ2lzdGVyCisgICAgICAgICAqIHJldHVybmVkOiAiICsgQ2FsZW5kYXIudW5yZWdpc3RlcihrZXkpKTsgY2FsID0KKyAgICAgICAgICogQ2FsZW5kYXIuZ2V0SW5zdGFuY2UodHosIGxvYywgIkdyZWdvcmlhbiIpOyBmbXQgPQorICAgICAgICAgKiBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkxPTkcsIGxvYyk7CisgICAgICAgICAqIGxvZ2xuKCJEYXRlOiAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7CisgICAgICAgICAqLworICAgIH0KKworfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NhbGVuZGFyVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NhbGVuZGFyVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcwMzg1OWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2FsZW5kYXJUZXN0LmphdmEKQEAgLTAsMCArMSwzNjggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKKworLyoqCisgKiBBIGJhc2UgY2xhc3MgZm9yIGNsYXNzZXMgdGhhdCB0ZXN0IGluZGl2aWR1YWwgQ2FsZW5kYXIgc3ViY2xhc3Nlcy4KKyAqIERlZmluZXMgdmFyaW91cyB1c2VmdWwgdXRpbGl0eSBtZXRob2RzIGFuZCBjb25zdGFudHMKKyAqLworcHVibGljIGNsYXNzIENhbGVuZGFyVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAKKyAgICAvLyBDb25zdGFudHMgZm9yIHVzZSBieSBzdWJjbGFzc2VzLCBzb2xlbHkgdG8gc2F2ZSB0eXBpbmcKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTVU4gPSBDYWxlbmRhci5TVU5EQVk7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTU9OID0gQ2FsZW5kYXIuTU9OREFZOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRVRSA9IENhbGVuZGFyLlRVRVNEQVk7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VEID0gQ2FsZW5kYXIuV0VETkVTREFZOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRIVSA9IENhbGVuZGFyLlRIVVJTREFZOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZSSSA9IENhbGVuZGFyLkZSSURBWTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTQVQgPSBDYWxlbmRhci5TQVRVUkRBWTsKKworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVSQSAgICAgPSBDYWxlbmRhci5FUkE7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgWUVBUiAgICA9IENhbGVuZGFyLllFQVI7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTU9OVEggICA9IENhbGVuZGFyLk1PTlRIOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBVEUgICAgPSBDYWxlbmRhci5EQVRFOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEhPVVIgICAgPSBDYWxlbmRhci5IT1VSOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTlVURSAgPSBDYWxlbmRhci5NSU5VVEU7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0VDT05EICA9IENhbGVuZGFyLlNFQ09ORDsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBET1kgICAgID0gQ2FsZW5kYXIuREFZX09GX1lFQVI7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV09ZICAgICA9IENhbGVuZGFyLldFRUtfT0ZfWUVBUjsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXT00gICAgID0gQ2FsZW5kYXIuV0VFS19PRl9NT05USDsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBET1cgICAgID0gQ2FsZW5kYXIuREFZX09GX1dFRUs7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRE9XTSAgICA9IENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRIOworICAgIAorICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgU2ltcGxlVGltZVpvbmUgVVRDID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJHTVQiKTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEZJRUxEX05BTUUgPSB7CisgICAgICAgICJFUkEiLCAiWUVBUiIsICJNT05USCIsICJXRUVLX09GX1lFQVIiLCAiV0VFS19PRl9NT05USCIsCisgICAgICAgICJEQVlfT0ZfTU9OVEgiLCAiREFZX09GX1lFQVIiLCAiREFZX09GX1dFRUsiLAorICAgICAgICAiREFZX09GX1dFRUtfSU5fTU9OVEgiLCAiQU1fUE0iLCAiSE9VUiIsICJIT1VSX09GX0RBWSIsCisgICAgICAgICJNSU5VVEUiLCAiU0VDT05EIiwgIk1JTExJU0VDT05EIiwgIlpPTkVfT0ZGU0VUIiwKKyAgICAgICAgIkRTVF9PRkZTRVQiLCAiWUVBUl9XT1kiLCAiRE9XX0xPQ0FMIiwgIkVYVEVOREVEX1lFQVIiLAorICAgICAgICAiSlVMSUFOX0RBWSIsICJNSUxMSVNFQ09ORFNfSU5fREFZIiwKKyAgICAgICAgIklTX0xFQVBfTU9OVEgiIC8vIChDaGluZXNlQ2FsZW5kYXIgb25seSkKKyAgICB9OworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmllbGROYW1lKGludCBmKSB7CisgICAgICAgIHJldHVybiAoZj49MCAmJiBmPEZJRUxEX05BTUUubGVuZ3RoKSA/CisgICAgICAgICAgICBGSUVMRF9OQU1FW2ZdIDogKCI8RmllbGQgIiArIGYgKyAiPiIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEl0ZXJhdGVzIHRocm91Z2ggYSBsaXN0IG9mIGNhbGVuZGFyIDxjb2RlPlRlc3RDYXNlPC9jb2RlPiBvYmplY3RzIGFuZAorICAgICAqIG1ha2VzIHN1cmUgdGhhdCB0aGUgdGltZS10by1maWVsZHMgYW5kIGZpZWxkcy10by10aW1lIGNhbGN1bGF0aW9ucyB3b3JrCisgICAgICogY29ycmVuY3RseSBmb3IgdGhlIHZhbHVlcyBpbiBlYWNoIHRlc3QgY2FzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1Rlc3RDYXNlcyhUZXN0Q2FzZVtdIGNhc2VzLCBDYWxlbmRhciBjYWwpCisgICAgeworICAgICAgICBjYWwuc2V0VGltZVpvbmUoVVRDKTsKKyAgICAgICAgCisgICAgICAgIC8vIEdldCBhIGZvcm1hdCB0byB1c2UgZm9yIHByaW50aW5nIGRhdGVzIGluIHRoZSBjYWxlbmRhciBzeXN0ZW0gd2UncmUgdGVzdGluZworICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuU0hPUlQsIC0xLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKworICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVybiA9IChjYWwgaW5zdGFuY2VvZiBDaGluZXNlQ2FsZW5kYXIpID8KKyAgICAgICAgICAgICJFIE1NbC9kZC95IEcgSEg6bW06c3MuUyB6IiA6CisgICAgICAgICAgICAiRSwgTU0vZGQveXl5eSBHIEhIOm1tOnNzLlMgeiI7CisgICAgCisgICAgICAgICgoU2ltcGxlRGF0ZUZvcm1hdClmb3JtYXQpLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKworICAgICAgICAvLyBUaGlzIGZvcm1hdCBpcyB1c2VkIGZvciBwcmludGluZyBHcmVnb3JpYW4gZGF0ZXMuCisgICAgICAgIERhdGVGb3JtYXQgZ3JlZ0Zvcm1hdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4pOworICAgICAgICBncmVnRm9ybWF0LnNldFRpbWVab25lKFVUQyk7CisKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgcHVyZUdyZWcgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoVVRDKTsKKyAgICAgICAgcHVyZUdyZWcuc2V0R3JlZ29yaWFuQ2hhbmdlKG5ldyBEYXRlKExvbmcuTUlOX1ZBTFVFKSk7CisgICAgICAgIERhdGVGb3JtYXQgcHVyZUdyZWdGbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRSBNL2QveXl5eSBHIik7CisgICAgICAgIHB1cmVHcmVnRm10LnNldENhbGVuZGFyKHB1cmVHcmVnKTsKKyAgICAgICAgCisgICAgICAgIC8vIE5vdyBpdGVyYXRlIHRocm91Z2ggdGhlIHRlc3QgY2FzZXMgYW5kIHNlZSB3aGF0IGhhcHBlbnMKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYXNlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIlxudGVzdCBjYXNlOiAiICsgaSk7CisgICAgICAgICAgICBUZXN0Q2FzZSB0ZXN0ID0gY2FzZXNbaV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBGaXJzdCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBtaWxsaXMgLT4gZmllbGRzIGNhbGN1bGF0aW9uIHdvcmtzCisgICAgICAgICAgICAvLyB0ZXN0LmFwcGx5VGltZSB3aWxsIGNhbGwgc2V0VGltZSgpIG9uIHRoZSBjYWxlbmRhciBvYmplY3QsIGFuZAorICAgICAgICAgICAgLy8gdGVzdC5maWVsZHNFcXVhbCB3aWxsIHJldHJpZXZlIGFsbCBvZiB0aGUgZmllbGQgdmFsdWVzIGFuZCBtYWtlIHN1cmUKKyAgICAgICAgICAgIC8vIHRoYXQgdGhleSdyZSB0aGUgc2FtZSBhcyB0aGUgb25lcyBpbiB0aGUgdGVzdGNhc2UKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICB0ZXN0LmFwcGx5VGltZShjYWwpOworICAgICAgICAgICAgaWYgKCF0ZXN0LmZpZWxkc0VxdWFsKGNhbCwgdGhpcykpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogKG1pbGxpcz0+ZmllbGRzKSAiICsKKyAgICAgICAgICAgICAgICAgICAgICBncmVnRm9ybWF0LmZvcm1hdCh0ZXN0LmdldFRpbWUoKSkgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyB0ZXN0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIElmIHRoYXQgd2FzIE9LLCBjaGVjayB0aGUgZmllbGRzIC0+IG1pbGxpcyBjYWxjdWxhdGlvbgorICAgICAgICAgICAgLy8gdGVzdC5hcHBseUZpZWxkcyB3aWxsIHNldCBhbGwgb2YgdGhlIGNhbGVuZGFyJ3MgZmllbGRzIHRvIAorICAgICAgICAgICAgLy8gbWF0Y2ggdGhvc2UgaW4gdGhlIHRlc3QgY2FzZS4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIHRlc3QuYXBwbHlGaWVsZHMoY2FsKTsKKyAgICAgICAgICAgIGlmICghdGVzdC5lcXVhbHMoY2FsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAoZmllbGRzPT5taWxsaXMpICIgKyB0ZXN0ICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBwdXJlR3JlZ0ZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBwdXJlR3JlZ0ZtdC5mb3JtYXQodGVzdC5nZXRUaW1lKCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGJvb2xlYW4gUk9MTCA9IHRydWU7CisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBib29sZWFuIEFERCA9IGZhbHNlOworICAgIAorICAgIC8qKgorICAgICAqIFByb2Nlc3MgdGVzdCBjYXNlcyBmb3IgPGNvZGU+YWRkPC9jb2RlPiBhbmQgPGNvZGU+cm9sbDwvY29kZT4gbWV0aG9kcy4KKyAgICAgKiBFYWNoIHRlc3QgY2FzZSBpcyBhbiBhcnJheSBvZiBpbnRlZ2VycywgYXMgZm9sbG93czoKKyAgICAgKiA8dWw+CisgICAgICogIDxsaT4wOiBpbnB1dCB5ZWFyCisgICAgICogIDxsaT4xOiAgICAgICBtb250aCAgKHplcm8tYmFzZWQpCisgICAgICogIDxsaT4yOiAgICAgICBkYXkKKyAgICAgKiAgPGxpPjM6IGZpZWxkIHRvIHJvbGwgb3IgYWRkIHRvCisgICAgICogIDxsaT40OiBhbW91bnQgdG8gcm9sbCBvciBhZGQKKyAgICAgKiAgPGxpPjU6IHJlc3VsdCB5ZWFyCisgICAgICogIDxsaT42OiAgICAgICAgbW9udGggKHplcm8tYmFzZWQpCisgICAgICogIDxsaT43OiAgICAgICAgZGF5CisgICAgICogPC91bD4KKyAgICAgKiBGb3IgZXhhbXBsZToKKyAgICAgKiA8cHJlPgorICAgICAqICAgLy8gICAgICAgaW5wdXQgICAgICAgICAgICAgICAgYWRkIGJ5ICAgICAgICAgIG91dHB1dAorICAgICAqICAgLy8gIHllYXIgIG1vbnRoICAgICBkYXkgICAgIGZpZWxkIGFtb3VudCAgICB5ZWFyICBtb250aCAgICAgZGF5CisgICAgICogICB7ICAgNTc1OSwgSEVTSFZBTiwgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NTksIEtJU0xFViwgICAgMiB9LAorICAgICAqIDwvcHJlPgorICAgICAqCisgICAgICogQHBhcmFtIHJvbGwgIDxjb2RlPnRydWU8L2NvZGU+IG9yIDxjb2RlPlJPTEw8L2NvZGU+IHRvIHRlc3QgdGhlIDxjb2RlPnJvbGw8L2NvZGU+IG1ldGhvZDsKKyAgICAgKiAgICAgICAgICAgICAgPGNvZGU+ZmFsc2U8L2NvZGU+IG9yIDxjb2RlPkFERDwvY29kZT4gdG8gdGVzdCB0aGUgPGNvZGU+YWRkPC9jb2RlIG1ldGhvZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvUm9sbEFkZChib29sZWFuIHJvbGwsIENhbGVuZGFyIGNhbCwgaW50W11bXSB0ZXN0cykKKyAgICB7CisgICAgICAgIFN0cmluZyBuYW1lID0gcm9sbCA/ICJyb2xsaW5nIiA6ICJhZGRpbmciOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaW50W10gdGVzdCA9IHRlc3RzW2ldOworCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGlmIChjYWwgaW5zdGFuY2VvZiBDaGluZXNlQ2FsZW5kYXIpIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIsIHRlc3RbMF0pOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIHRlc3RbMV0pOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCB0ZXN0WzJdKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2FsLnNldCh0ZXN0WzBdLCB0ZXN0WzFdLCB0ZXN0WzJdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvdWJsZSBkYXkwID0gZ2V0SnVsaWFuRGF5KGNhbCk7CisgICAgICAgICAgICBpZiAocm9sbCkgeworICAgICAgICAgICAgICAgIGNhbC5yb2xsKHRlc3RbM10sIHRlc3RbNF0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjYWwuYWRkKHRlc3RbM10sIHRlc3RbNF0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHkgPSBjYWwuZ2V0KGNhbCBpbnN0YW5jZW9mIENoaW5lc2VDYWxlbmRhciA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuRVhURU5ERURfWUVBUiA6IFlFQVIpOworICAgICAgICAgICAgaWYgKHkgIT0gdGVzdFs1XSB8fCBjYWwuZ2V0KE1PTlRIKSAhPSB0ZXN0WzZdCisgICAgICAgICAgICAgICAgICAgIHx8IGNhbC5nZXQoREFURSkgIT0gdGVzdFs3XSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIG5hbWUgKyAiICIrIHltZFRvU3RyaW5nKHRlc3RbMF0sIHRlc3RbMV0sIHRlc3RbMl0pCisgICAgICAgICAgICAgICAgICAgICsgIiAoIiArIGRheTAgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiICIgKyBGSUVMRF9OQU1FW3Rlc3RbM11dICsgIiBieSAiICsgdGVzdFs0XQorICAgICAgICAgICAgICAgICAgICArICI6IGV4cGVjdGVkICIgKyB5bWRUb1N0cmluZyh0ZXN0WzVdLCB0ZXN0WzZdLCB0ZXN0WzddKQorICAgICAgICAgICAgICAgICAgICArICIsIGdvdCAiICsgeW1kVG9TdHJpbmcoY2FsKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgbmFtZSArICIgIisgeW1kVG9TdHJpbmcodGVzdFswXSwgdGVzdFsxXSwgdGVzdFsyXSkKKyAgICAgICAgICAgICAgICAgICAgKyAiICgiICsgZGF5MCArICIpIgorICAgICAgICAgICAgICAgICAgICArICIgIiArIEZJRUxEX05BTUVbdGVzdFszXV0gKyAiIGJ5ICIgKyB0ZXN0WzRdCisgICAgICAgICAgICAgICAgICAgICsgIjogZ290ICIgKyB5bWRUb1N0cmluZyhjYWwpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGZ1bmN0aW9ucyBnZXRYeHhNaW5pbXVtKCkgYW5kIGdldFh4eE1heGltdW0oKSBieSBtYXJjaGluZyBhCisgICAgICogdGVzdCBjYWxlbmRhciAnY2FsJyB0aHJvdWdoICdudW1iZXJPZkRheXMnIHNlcXVlbnRpYWwgZGF5cyBzdGFydGluZworICAgICAqIHdpdGggJ3N0YXJ0RGF0ZScuICBGb3IgZWFjaCBkYXRlLCByZWFkIGEgZmllbGQgdmFsdWUgYWxvbmcgd2l0aCBpdHMKKyAgICAgKiByZXBvcnRlZCBhY3R1YWwgbWluaW11bSBhbmQgYWN0dWFsIG1heGltdW0uICBUaGVzZSB2YWx1ZXMgYXJlCisgICAgICogY2hlY2tlZCBhZ2FpbnN0IG9uZSBhbm90aGVyIGFzIHdlbGwgYXMgYWdhaW5zdCBnZXRNaW5pbXVtKCksCisgICAgICogZ2V0R3JlYXRlc3RNaW5pbXVtKCksIGdldExlYXN0TWF4aW11bSgpLCBhbmQgZ2V0TWF4aW11bSgpLiAgV2UKKyAgICAgKiBleHBlY3QgdG8gc2VlOgorICAgICAqCisgICAgICogMS4gbWluaW11bSA8PSBhY3R1YWxNaW5pbXVtIDw9IGdyZWF0ZXN0TWluaW11bSA8PQorICAgICAqICAgIGxlYXN0TWF4aW11bSA8PSBhY3R1YWxNYXhpbXVtIDw9IG1heGltdW0KKyAgICAgKgorICAgICAqIDIuIGFjdHVhbE1pbmltdW0gPD0gdmFsdWUgPD0gYWN0dWFsTWF4aW11bQorICAgICAqCisgICAgICogTm90ZTogSW4gYWRkaXRpb24gdG8gb3V0cmlnaHQgZmFpbHVyZXMsIHRoaXMgdGVzdCByZXBvcnRzIHNvbWUKKyAgICAgKiByZXN1bHRzIGFzIHdhcm5pbmdzLiAgVGhlc2UgYXJlIG5vdCBnZW5lcmFsbHkgb2YgY29uY2VybiwgYnV0IHRoZXkKKyAgICAgKiBzaG91bGQgYmUgZXZhbHVhdGVkIGJ5IGEgaHVtYW4uICBUbyBzZWUgdGhlc2UsIHJ1biB0aGlzIHRlc3QgaW4KKyAgICAgKiB2ZXJib3NlIG1vZGUuCisgICAgICogQHBhcmFtIGNhbCB0aGUgY2FsZW5kYXIgdG8gYmUgdGVzdGVkCisgICAgICogQHBhcmFtIGZpZWxkc1RvVGVzdCBhbiBhcnJheSBvZiBmaWVsZCB2YWx1ZXMgdG8gYmUgdGVzdGVkLCBlLmcuLCBuZXcKKyAgICAgKiBpbnRbXSB7IENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5EQVlfT0ZfTU9OVEggfS4gIEl0IG9ubHkgbWFrZXMKKyAgICAgKiBzZW5zZSB0byB0ZXN0IHRoZSBkYXkgZmllbGRzOyB0aGUgdGltZSBmaWVsZHMgYXJlIG5vdCB0ZXN0ZWQgYnkgdGhpcworICAgICAqIG1ldGhvZC4gIElmIG51bGwsIHRoZW4gdGVzdCBhbGwgc3RhbmRhcmQgZmllbGRzLgorICAgICAqIEBwYXJhbSBzdGFydERhdGUgdGhlIGZpcnN0IGRhdGUgdG8gdGVzdAorICAgICAqIEBwYXJhbSB0ZXN0RHVyYXRpb24gaWYgcG9zaXRpdmUsIHRoZSBudW1iZXIgb2YgZGF5cyB0byBiZSB0ZXN0ZWQuCisgICAgICogSWYgbmVnYXRpdmUsIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0byBydW4gdGhlIHRlc3QuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgZG9MaW1pdHNUZXN0KENhbGVuZGFyIGNhbCwgaW50W10gZmllbGRzVG9UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlIHN0YXJ0RGF0ZSwgaW50IHRlc3REdXJhdGlvbikgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBncmVnID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGdyZWcuc2V0VGltZShzdGFydERhdGUpOworICAgICAgICBsb2dsbigiU3RhcnQ6ICIgKyBzdGFydERhdGUpOworCisgICAgICAgIGlmIChmaWVsZHNUb1Rlc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgZmllbGRzVG9UZXN0ID0gbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICBDYWxlbmRhci5FUkEsIENhbGVuZGFyLllFQVIsIENhbGVuZGFyLk1PTlRILAorICAgICAgICAgICAgICAgIENhbGVuZGFyLldFRUtfT0ZfWUVBUiwgQ2FsZW5kYXIuV0VFS19PRl9NT05USCwKKyAgICAgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIENhbGVuZGFyLkRBWV9PRl9ZRUFSLAorICAgICAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRILCBDYWxlbmRhci5ZRUFSX1dPWSwKKyAgICAgICAgICAgICAgICBDYWxlbmRhci5FWFRFTkRFRF9ZRUFSCisgICAgICAgICAgICB9OworICAgICAgICB9CisKKyAgICAgICAgLy8gS2VlcCBhIHJlY29yZCBvZiBtaW5pbWEgYW5kIG1heGltYSB0aGF0IHdlIGFjdHVhbGx5IHNlZS4KKyAgICAgICAgLy8gVGhlc2UgYXJlIGtlcHQgaW4gYW4gYXJyYXkgb2YgYXJyYXlzIG9mIGhhc2hlcy4KKyAgICAgICAgSGFzaHRhYmxlW11bXSBsaW1pdHMgPSBuZXcgSGFzaHRhYmxlW2ZpZWxkc1RvVGVzdC5sZW5ndGhdWzJdOworICAgICAgICBPYmplY3QgbnViID0gbmV3IE9iamVjdCgpOyAvLyBNZWFuaW5nbGVzcyBwbGFjZWhvbGRlcgorCisgICAgICAgIC8vIFRoaXMgdGVzdCBjYW4gcnVuIGZvciBhIGxvbmcgdGltZTsgc2hvdyBwcm9ncmVzcy4KKyAgICAgICAgbG9uZyBtaWxsaXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbG9uZyBtYXJrID0gbWlsbGlzICsgNTAwMDsgLy8gNSBzZWMKKyAgICAgICAgbWlsbGlzIC09IHRlc3REdXJhdGlvbiAqIDEwMDA7IC8vIHN0b3AgdGltZSBpZiB0ZXN0RHVyYXRpb248MAorCisgICAgICAgIGZvciAoaW50IGk9MDsKKyAgICAgICAgICAgICB0ZXN0RHVyYXRpb24+MCA/IGk8dGVzdER1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTxtaWxsaXM7CisgICAgICAgICAgICAgKytpKSB7CisgICAgICAgICAgICBpZiAoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgPj0gbWFyaykgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIoIiArIGkgKyAiIGRheXMpIik7CisgICAgICAgICAgICAgICAgbWFyayArPSA1MDAwOyAvLyA1IHNlYworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FsLnNldFRpbWVJbk1pbGxpcyhncmVnLmdldFRpbWVJbk1pbGxpcygpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxmaWVsZHNUb1Rlc3QubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBpbnQgZiA9IGZpZWxkc1RvVGVzdFtqXTsKKyAgICAgICAgICAgICAgICBpbnQgdiA9IGNhbC5nZXQoZik7CisgICAgICAgICAgICAgICAgaW50IG1pbkFjdHVhbCA9IGNhbC5nZXRBY3R1YWxNaW5pbXVtKGYpOworICAgICAgICAgICAgICAgIGludCBtYXhBY3R1YWwgPSBjYWwuZ2V0QWN0dWFsTWF4aW11bShmKTsKKyAgICAgICAgICAgICAgICBpbnQgbWluTG93ID0gY2FsLmdldE1pbmltdW0oZik7CisgICAgICAgICAgICAgICAgaW50IG1pbkhpZ2ggPSBjYWwuZ2V0R3JlYXRlc3RNaW5pbXVtKGYpOworICAgICAgICAgICAgICAgIGludCBtYXhMb3cgPSBjYWwuZ2V0TGVhc3RNYXhpbXVtKGYpOworICAgICAgICAgICAgICAgIGludCBtYXhIaWdoID0gY2FsLmdldE1heGltdW0oZik7CisKKyAgICAgICAgICAgICAgICAvLyBGZXRjaCB0aGUgaGFzaCBmb3IgdGhpcyBmaWVsZCBhbmQga2VlcCB0cmFjayBvZiB0aGUKKyAgICAgICAgICAgICAgICAvLyBtaW5pbWEgYW5kIG1heGltYS4KKyAgICAgICAgICAgICAgICBIYXNodGFibGVbXSBoID0gbGltaXRzW2pdOworICAgICAgICAgICAgICAgIGlmIChoWzBdID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaFswXSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgICAgICAgICAgICAgaFsxXSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaFswXS5wdXQobmV3IEludGVnZXIobWluQWN0dWFsKSwgbnViKTsKKyAgICAgICAgICAgICAgICBoWzFdLnB1dChuZXcgSW50ZWdlcihtYXhBY3R1YWwpLCBudWIpOworCisgICAgICAgICAgICAgICAgaWYgKG1pbkFjdHVhbCA8IG1pbkxvdyB8fCBtaW5BY3R1YWwgPiBtaW5IaWdoKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgeW1kVG9TdHJpbmcoY2FsKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgUmFuZ2UgZm9yIG1pbiBvZiAiICsgRklFTERfTkFNRVtmXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICI9IiArIG1pbkxvdyArICIuLiIgKyBtaW5IaWdoICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgYWN0dWFsX21pbj0iICsgbWluQWN0dWFsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG1heEFjdHVhbCA8IG1heExvdyB8fCBtYXhBY3R1YWwgPiBtYXhIaWdoKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgeW1kVG9TdHJpbmcoY2FsKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgUmFuZ2UgZm9yIG1heCBvZiAiICsgRklFTERfTkFNRVtmXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICI9IiArIG1heExvdyArICIuLiIgKyBtYXhIaWdoICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgYWN0dWFsX21heD0iICsgbWF4QWN0dWFsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHYgPCBtaW5BY3R1YWwgfHwgdiA+IG1heEFjdHVhbCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIHltZFRvU3RyaW5nKGNhbCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgKyBGSUVMRF9OQU1FW2ZdICsgIj0iICsgdiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGFjdHVhbCByYW5nZT0iICsgbWluQWN0dWFsICsgIi4uIiArIG1heEFjdHVhbCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGFsbG93ZWQ9KCIgKyBtaW5Mb3cgKyAiLi4iICsgbWluSGlnaCArICIpLi4oIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1heExvdyArICIuLiIgKyBtYXhIaWdoICsgIikiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBncmVnLmFkZChDYWxlbmRhci5EQVlfT0ZfWUVBUiwgMSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayBhY3R1YWwgbWF4aW1hIGFuZCBtaW5pbWEgc2VlbiBhZ2FpbnN0IHJhbmdlcyByZXR1cm5lZAorICAgICAgICAvLyBieSBBUEkuCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGo9MDsgajxmaWVsZHNUb1Rlc3QubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIGludCBmID0gZmllbGRzVG9UZXN0W2pdOworICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoRklFTERfTkFNRVtmXSk7CisgICAgICAgICAgICBIYXNodGFibGVbXSBoID0gbGltaXRzW2pdOworICAgICAgICAgICAgYm9vbGVhbiBmdWxsUmFuZ2VTZWVuID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAoaW50IGs9MDsgazwyOyArK2spIHsKKyAgICAgICAgICAgICAgICBpbnQgcmFuZ2VMb3cgPSAoaz09MCkgPworICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0TWluaW11bShmKSA6IGNhbC5nZXRMZWFzdE1heGltdW0oZik7CisgICAgICAgICAgICAgICAgaW50IHJhbmdlSGlnaCA9IChrPT0wKSA/CisgICAgICAgICAgICAgICAgICAgIGNhbC5nZXRHcmVhdGVzdE1pbmltdW0oZikgOiBjYWwuZ2V0TWF4aW11bShmKTsKKyAgICAgICAgICAgICAgICAvLyBJZiBlaXRoZXIgdGhlIHRvcCBvZiB0aGUgcmFuZ2Ugb3IgdGhlIGJvdHRvbSB3YXMgbmV2ZXIKKyAgICAgICAgICAgICAgICAvLyBzZWVuLCB0aGVuIHRoZXJlIG1heSBiZSBhIHByb2JsZW0uCisgICAgICAgICAgICAgICAgaWYgKGhba10uZ2V0KG5ldyBJbnRlZ2VyKHJhbmdlTG93KSkgPT0gbnVsbCB8fAorICAgICAgICAgICAgICAgICAgICBoW2tdLmdldChuZXcgSW50ZWdlcihyYW5nZUhpZ2gpKSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGZ1bGxSYW5nZVNlZW4gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChrPT0wID8gIiBtaW5pbWEgc2Vlbj0oIiA6ICI7IG1heGltYSBzZWVuPSgiKTsKKyAgICAgICAgICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGU9aFtrXS5rZXlzKCk7IGUuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgICAgICAgICBpbnQgdiA9ICgoSW50ZWdlcikgZS5uZXh0RWxlbWVudCgpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIgIiArIHYpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIpIHJhbmdlPSIgKyByYW5nZUxvdyArICIuLiIgKyByYW5nZUhpZ2gpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZ1bGxSYW5nZVNlZW4pIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgbWF5IG9yIG1heSBub3QgYmUgYW4gZXJyb3IgLS0gaWYgdGhlIHJhbmdlIG9mIGRhdGVzCisgICAgICAgICAgICAgICAgLy8gd2Ugc2NhbiBvdmVyIGRvZXNuJ3QgaGFwcGVuIHRvIGNvbnRhaW4gYSBtaW5pbXVtIG9yCisgICAgICAgICAgICAgICAgLy8gbWF4aW11bSwgaXQgZG9lc24ndCBtZWFuIHNvbWUgb3RoZXIgcmFuZ2Ugd29uJ3QuCisgICAgICAgICAgICAgICAgbG9nbG4oIldhcm5pbmc6ICIgKyBidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigiRW5kOiAiICsgZ3JlZy5nZXRUaW1lKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgeWVhcixtb250aCxkYXkgdmFsdWVzIHRvIHRoZSBmb3JtICJ5ZWFyL21vbnRoL2RheSIuCisgICAgICogT24gaW5wdXQgdGhlIG1vbnRoIHZhbHVlIGlzIHplcm8tYmFzZWQsIGJ1dCBpbiB0aGUgcmVzdWx0IHN0cmluZyBpdCBpcyBvbmUtYmFzZWQuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgeW1kVG9TdHJpbmcoaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSkgeworICAgICAgICByZXR1cm4gIiIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsgZGF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgeWVhcixtb250aCxkYXkgdmFsdWVzIHRvIHRoZSBmb3JtICJ5ZWFyL21vbnRoL2RheSIuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgeW1kVG9TdHJpbmcoQ2FsZW5kYXIgY2FsKSB7CisgICAgICAgIGRvdWJsZSBkYXkgPSBnZXRKdWxpYW5EYXkoY2FsKTsKKyAgICAgICAgaWYgKGNhbCBpbnN0YW5jZW9mIENoaW5lc2VDYWxlbmRhcikgeworICAgICAgICAgICAgcmV0dXJuICIiICsgY2FsLmdldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSKSArICIvIiArCisgICAgICAgICAgICAgICAgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsKKyAgICAgICAgICAgICAgICAoY2FsLmdldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCk9PTE/IihsZWFwKSI6IiIpICsgIi8iICsKKyAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpICsgIiAoIiArIGRheSArICIpIjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geW1kVG9TdHJpbmcoY2FsLmdldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KE1PTlRIKSwgY2FsLmdldChEQVRFKSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKCIgKyBkYXkgKyAiKSI7CisgICAgfQorCisgICAgc3RhdGljIGRvdWJsZSBnZXRKdWxpYW5EYXkoQ2FsZW5kYXIgY2FsKSB7CisgICAgICAgIHJldHVybiAoY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgLSBKVUxJQU5fRVBPQ0gpIC8gREFZX01TOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgREFZX01TID0gMjQqNjAqNjAqMTAwMC4wOworICAgIHN0YXRpYyBmaW5hbCBsb25nIEpVTElBTl9FUE9DSCA9IC0yMTA4NjY3NjAwMDAwMDBMOyAgIC8vIDEvMS80NzEzIEJDIDEyOjAwCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2hpbmVzZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DaGluZXNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM3Yjc2NzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2hpbmVzZVRlc3QuamF2YQpAQCAtMCwwICsxLDYwMiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogVGVzdCBvZiBDaGluZXNlQ2FsZW5kYXIuCisgKgorICogTGVhcCBtb250aHMgaW4gdGhpcyBjZW50dXJ5OgorICogV2VkIE1heSAyMyAyMDAxID0gNDYzOC0wNCotMDEsIFllYXIgMTgsIEN5Y2xlIDc4CisgKiBTdW4gTWFyIDIxIDIwMDQgPSA0NjQxLTAyKi0wMSwgWWVhciAyMSwgQ3ljbGUgNzgKKyAqIFRodSBBdWcgMjQgMjAwNiA9IDQ2NDMtMDcqLTAxLCBZZWFyIDIzLCBDeWNsZSA3OAorICogVHVlIEp1biAyMyAyMDA5ID0gNDY0Ni0wNSotMDEsIFllYXIgMjYsIEN5Y2xlIDc4CisgKiBNb24gTWF5IDIxIDIwMTIgPSA0NjQ5LTA0Ki0wMSwgWWVhciAyOSwgQ3ljbGUgNzgKKyAqIEZyaSBPY3QgMjQgMjAxNCA9IDQ2NTEtMDkqLTAxLCBZZWFyIDMxLCBDeWNsZSA3OAorICogU3VuIEp1bCAyMyAyMDE3ID0gNDY1NC0wNiotMDEsIFllYXIgMzQsIEN5Y2xlIDc4CisgKiBTYXQgTWF5IDIzIDIwMjAgPSA0NjU3LTA0Ki0wMSwgWWVhciAzNywgQ3ljbGUgNzgKKyAqIFdlZCBNYXIgMjIgMjAyMyA9IDQ2NjAtMDIqLTAxLCBZZWFyIDQwLCBDeWNsZSA3OAorICogRnJpIEp1bCAyNSAyMDI1ID0gNDY2Mi0wNiotMDEsIFllYXIgNDIsIEN5Y2xlIDc4CisgKiBGcmkgSnVuIDIzIDIwMjggPSA0NjY1LTA1Ki0wMSwgWWVhciA0NSwgQ3ljbGUgNzgKKyAqIFR1ZSBBcHIgMjIgMjAzMSA9IDQ2NjgtMDMqLTAxLCBZZWFyIDQ4LCBDeWNsZSA3OAorICogVGh1IERlYyAyMiAyMDMzID0gNDY3MC0xMSotMDEsIFllYXIgNTAsIEN5Y2xlIDc4CisgKiBXZWQgSnVsIDIzIDIwMzYgPSA0NjczLTA2Ki0wMSwgWWVhciA1MywgQ3ljbGUgNzgKKyAqIFdlZCBKdW4gMjIgMjAzOSA9IDQ2NzYtMDUqLTAxLCBZZWFyIDU2LCBDeWNsZSA3OAorICogU2F0IE1hciAyMiAyMDQyID0gNDY3OS0wMiotMDEsIFllYXIgNTksIEN5Y2xlIDc4CisgKiBUdWUgQXVnIDIzIDIwNDQgPSA0NjgxLTA3Ki0wMSwgWWVhciAwMSwgQ3ljbGUgNzkKKyAqIFN1biBKdW4gMjMgMjA0NyA9IDQ2ODQtMDUqLTAxLCBZZWFyIDA0LCBDeWNsZSA3OQorICogVGh1IEFwciAyMSAyMDUwID0gNDY4Ny0wMyotMDEsIFllYXIgMDcsIEN5Y2xlIDc5CisgKiBNb24gU2VwIDIzIDIwNTIgPSA0Njg5LTA4Ki0wMSwgWWVhciAwOSwgQ3ljbGUgNzkKKyAqIFNhdCBKdWwgMjQgMjA1NSA9IDQ2OTItMDYqLTAxLCBZZWFyIDEyLCBDeWNsZSA3OQorICogV2VkIE1heSAyMiAyMDU4ID0gNDY5NS0wNCotMDEsIFllYXIgMTUsIEN5Y2xlIDc5CisgKiBXZWQgQXByIDIwIDIwNjEgPSA0Njk4LTAzKi0wMSwgWWVhciAxOCwgQ3ljbGUgNzkKKyAqIEZyaSBBdWcgMjQgMjA2MyA9IDQ3MDAtMDcqLTAxLCBZZWFyIDIwLCBDeWNsZSA3OQorICogV2VkIEp1biAyMyAyMDY2ID0gNDcwMy0wNSotMDEsIFllYXIgMjMsIEN5Y2xlIDc5CisgKiBUdWUgTWF5IDIxIDIwNjkgPSA0NzA2LTA0Ki0wMSwgWWVhciAyNiwgQ3ljbGUgNzkKKyAqIFRodSBTZXAgMjQgMjA3MSA9IDQ3MDgtMDgqLTAxLCBZZWFyIDI4LCBDeWNsZSA3OQorICogVHVlIEp1bCAyNCAyMDc0ID0gNDcxMS0wNiotMDEsIFllYXIgMzEsIEN5Y2xlIDc5CisgKiBTYXQgTWF5IDIyIDIwNzcgPSA0NzE0LTA0Ki0wMSwgWWVhciAzNCwgQ3ljbGUgNzkKKyAqIFNhdCBBcHIgMjAgMjA4MCA9IDQ3MTctMDMqLTAxLCBZZWFyIDM3LCBDeWNsZSA3OQorICogTW9uIEF1ZyAyNCAyMDgyID0gNDcxOS0wNyotMDEsIFllYXIgMzksIEN5Y2xlIDc5CisgKiBGcmkgSnVuIDIyIDIwODUgPSA0NzIyLTA1Ki0wMSwgWWVhciA0MiwgQ3ljbGUgNzkKKyAqIEZyaSBNYXkgMjEgMjA4OCA9IDQ3MjUtMDQqLTAxLCBZZWFyIDQ1LCBDeWNsZSA3OQorICogU3VuIFNlcCAyNCAyMDkwID0gNDcyNy0wOCotMDEsIFllYXIgNDcsIEN5Y2xlIDc5CisgKiBUaHUgSnVsIDIzIDIwOTMgPSA0NzMwLTA2Ki0wMSwgWWVhciA1MCwgQ3ljbGUgNzkKKyAqIFR1ZSBNYXkgMjIgMjA5NiA9IDQ3MzMtMDQqLTAxLCBZZWFyIDUzLCBDeWNsZSA3OQorICogU3VuIE1hciAyMiAyMDk5ID0gNDczNi0wMiotMDEsIFllYXIgNTYsIEN5Y2xlIDc5CisgKi8KK3B1YmxpYyBjbGFzcyBDaGluZXNlVGVzdCBleHRlbmRzIENhbGVuZGFyVGVzdCB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENoaW5lc2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgYmFzaWMgbWFwcGluZyB0byBhbmQgZnJvbSBHcmVnb3JpYW4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE1hcHBpbmcoKSB7CisKKyAgICAgICAgZmluYWwgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIChOb3RlOiBtb250aHMgYXJlIDEtYmFzZWQpCisgICAgICAgICAgICAvLyBHcmVnb3JpYW4gICAgQ2hpbmVzZQorICAgICAgICAgICAgMTk2NCwgIDksICA0LCAgIDQ2MDEsICA3LDAsIDI4LAorICAgICAgICAgICAgMTk2NCwgIDksICA1LCAgIDQ2MDEsICA3LDAsIDI5LAorICAgICAgICAgICAgMTk2NCwgIDksICA2LCAgIDQ2MDEsICA4LDAsICAxLAorICAgICAgICAgICAgMTk2NCwgIDksICA3LCAgIDQ2MDEsICA4LDAsICAyLAorICAgICAgICAgICAgMTk2MSwgMTIsIDI1LCAgIDQ1OTgsIDExLDAsIDE4LAorICAgICAgICAgICAgMTk5OSwgIDYsICA0LCAgIDQ2MzYsICA0LDAsIDIxLAorICAgICAgICAgICAgCisgICAgICAgICAgICAxOTkwLCAgNSwgMjMsICAgNDYyNywgIDQsMCwgMjksCisgICAgICAgICAgICAxOTkwLCAgNSwgMjQsICAgNDYyNywgIDUsMCwgIDEsCisgICAgICAgICAgICAxOTkwLCAgNiwgMjIsICAgNDYyNywgIDUsMCwgMzAsCisgICAgICAgICAgICAxOTkwLCAgNiwgMjMsICAgNDYyNywgIDUsMSwgIDEsCisgICAgICAgICAgICAxOTkwLCAgNywgMjAsICAgNDYyNywgIDUsMSwgMjgsCisgICAgICAgICAgICAxOTkwLCAgNywgMjEsICAgNDYyNywgIDUsMSwgMjksCisgICAgICAgICAgICAxOTkwLCAgNywgMjIsICAgNDYyNywgIDYsMCwgIDEsCisgICAgICAgIH07CisKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBsb2dsbigiR3JlZ29yaWFuIC0+IENoaW5lc2UiKTsKKyAgICAgICAgLy9qYXZhLnV0aWwuQ2FsZW5kYXIgZ3JlZ28gPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgQ2FsZW5kYXIgZ3JlZ28gPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBncmVnby5jbGVhcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICkgeworICAgICAgICAgICAgZ3JlZ28uc2V0KERBVEFbaSsrXSwgREFUQVtpKytdLTEsIERBVEFbaSsrXSk7CisgICAgICAgICAgICBEYXRlIGRhdGUgPSBncmVnby5nZXRUaW1lKCk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShkYXRlKTsKKyAgICAgICAgICAgIGludCB5ID0gY2FsLmdldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSKTsKKyAgICAgICAgICAgIGludCBtID0gY2FsLmdldChDYWxlbmRhci5NT05USCkrMTsgLy8gMC1iYXNlZCAtPiAxLWJhc2VkCisgICAgICAgICAgICBpbnQgTCA9IGNhbC5nZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpOworICAgICAgICAgICAgaW50IGQgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisgICAgICAgICAgICBpbnQgeUUgPSBEQVRBW2krK107IC8vIEV4cGVjdGVkIHksIG0sIGlzTGVhcE1vbnRoLCBkCisgICAgICAgICAgICBpbnQgbUUgPSBEQVRBW2krK107IC8vIDEtYmFzZWQKKyAgICAgICAgICAgIGludCBMRSA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGludCBkRSA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGRhdGUgKyAiIC0+ICIpOworICAgICAgICAgICAgYnVmLmFwcGVuZCh5ICsgIi8iICsgbSArIChMPT0xPyIobGVhcCkiOiIiKSArICIvIiArIGQpOworICAgICAgICAgICAgaWYgKHkgPT0geUUgJiYgbSA9PSBtRSAmJiBMID09IExFICYmIGQgPT0gZEUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgYnVmLnRvU3RyaW5nKCkgKyAiLCBleHBlY3RlZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICB5RSArICIvIiArIG1FICsgKExFPT0xPyIobGVhcCkiOiIiKSArICIvIiArIGRFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJDaGluZXNlIC0+IEdyZWdvcmlhbiIpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICkgeworICAgICAgICAgICAgZ3JlZ28uc2V0KERBVEFbaSsrXSwgREFUQVtpKytdLTEsIERBVEFbaSsrXSk7CisgICAgICAgICAgICBEYXRlIGRleHAgPSBncmVnby5nZXRUaW1lKCk7CisgICAgICAgICAgICBpbnQgY3llYXIgPSBEQVRBW2krK107CisgICAgICAgICAgICBpbnQgY21vbnRoID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IGNpc2xlYXBtb250aCA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGludCBjZGF5b2Ztb250aCA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSLCBjeWVhcik7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBjbW9udGgtMSk7CisgICAgICAgICAgICBjYWwuc2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILCBjaXNsZWFwbW9udGgpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIGNkYXlvZm1vbnRoKTsKKyAgICAgICAgICAgIERhdGUgZGF0ZSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgYnVmLmFwcGVuZChjeWVhciArICIvIiArIGNtb250aCArCisgICAgICAgICAgICAgICAgICAgICAgIChjaXNsZWFwbW9udGg9PTE/IihsZWFwKSI6IiIpICsgIi8iICsgY2RheW9mbW9udGgpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiIC0+ICIgKyBkYXRlKTsKKyAgICAgICAgICAgIGlmIChkYXRlLmVxdWFscyhkZXhwKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBidWYudG9TdHJpbmcoKSArICIsIGV4cGVjdGVkICIgKyBkZXhwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2Ugc3VyZSBubyBHcmVnb3JpYW4gZGF0ZXMgbWFwIHRvIENoaW5lc2UgMS1iYXNlZCBkYXkgb2YKKyAgICAgKiBtb250aCB6ZXJvLiAgVGhpcyB3YXMgYSBwcm9ibGVtIHdpdGggc29tZSBvZiB0aGUgYXN0cm9ub21pY2FsCisgICAgICogbmV3IG1vb24gZGV0ZXJtaW5hdGlvbnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFplcm9ET00oKSB7CisgICAgICAgIENoaW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgQ2hpbmVzZUNhbGVuZGFyKCk7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdyZWcgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk4OSwgQ2FsZW5kYXIuU0VQVEVNQkVSLCAxKTsKKyAgICAgICAgbG9nbG4oIlN0YXJ0OiAiICsgZ3JlZy5nZXRUaW1lKCkpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8MTAwMDsgKytpKSB7CisgICAgICAgICAgICBjYWwuc2V0VGltZUluTWlsbGlzKGdyZWcuZ2V0VGltZUluTWlsbGlzKCkpOworICAgICAgICAgICAgaWYgKGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBncmVnLmdldFRpbWUoKSArICIgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSKSArICIvIiArCisgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NT05USCkgKworICAgICAgICAgICAgICAgICAgICAgIChjYWwuZ2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIKT09MT8iKGxlYXApIjoiIikgKworICAgICAgICAgICAgICAgICAgICAgICIvIiArIGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBncmVnLmFkZChDYWxlbmRhci5EQVlfT0ZfWUVBUiwgMSk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIkVuZDogIiArIGdyZWcuZ2V0VGltZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IG1pbmltdW0gYW5kIG1heGltdW0gZnVuY3Rpb25zLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RMaW1pdHMoKSB7CisgICAgICAgIC8vIFRoZSBudW1iZXIgb2YgZGF5cyBhbmQgdGhlIHN0YXJ0IGRhdGUgY2FuIGJlIGFkanVzdGVkCisgICAgICAgIC8vIGFyYml0cmFyaWx5IHRvIGVpdGhlciBzcGVlZCB1cCB0aGUgdGVzdCBvciBtYWtlIGl0IG1vcmUKKyAgICAgICAgLy8gdGhvcm91Z2gsIGJ1dCB0cnkgdG8gdGVzdCBhdCBsZWFzdCBhIGZ1bGwgeWVhciwgcHJlZmVyYWJseSBhCisgICAgICAgIC8vIGZ1bGwgbm9uLWxlYXAgYW5kIGEgZnVsbCBsZWFwIHllYXIuCisKKyAgICAgICAgLy8gRmluYWwgcGFyYW1ldGVyIGlzIGVpdGhlciBudW1iZXIgb2YgZGF5cywgaWYgPiAwLCBvciB0ZXN0CisgICAgICAgIC8vIGR1cmF0aW9uIGluIHNlY29uZHMsIGlmIDwgMC4KKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTg5LCBDYWxlbmRhci5OT1ZFTUJFUiwgMSk7CisgICAgICAgIGRvTGltaXRzVGVzdChuZXcgQ2hpbmVzZUNhbGVuZGFyKCksIG51bGwsIHRlbXBjYWwuZ2V0VGltZSgpLCAtMTApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJ1biB0aHJvdWdoIHNldmVyYWwgc3RhbmRhcmQgdGVzdHMgZnJvbSBEZXJzaG93aXR6ICYgUmVpbmdvbGQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEp1bGlhbkRheU1hcHBpbmcoKSB7CisKKyAgICAgICAgZmluYWwgVGVzdENhc2VbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBGcm9tIERlcnNob3dpdHogJiBSZWluZ29sZCwgIkNhbGVuZHJpY2FsIENhbGN1bGF0aW9ucyIuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gVGhlIG1vbnRocyBpbiB0aGlzIHRhYmxlIGFyZSAxLWJhc2VkIHJhdGhlciB0aGFuIDAtYmFzZWQuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gKiBGYWlsaW5nIGZpZWxkcy0+bWlsbGlzCisgICAgICAgICAgICAvLyAqKiBNaWxsaXMtPmZpZWxkcyBnaXZlcyAwLWJhc2VkIG1vbnRoIC0xCisgICAgICAgICAgICAvLyBUaGVzZSBmYWlsdXJlcyB3ZXJlIGZpeGVkIGJ5IGNoYW5naW5nIHRoZSBzdGFydCBzZWFyY2ggZGF0ZQorICAgICAgICAgICAgLy8gZm9yIHRoZSB3aW50ZXIgc29sc3RpY2UgZnJvbSBEZWMgMTUgdG8gRGVjIDEuCisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgSnVsaWFuIERheSAgIEVyYSAgWWVhciBNb250aCAgTGVhcCAgIERPTSBXa0RheQorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgxNTA3MjMxLjUsICAgMzUsICAgMTEsICAgIDYsIGZhbHNlLCAgIDEyLCAgU1VOKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMTY2MDAzNy41LCAgIDQyLCAgICA5LCAgIDEwLCBmYWxzZSwgICAyNywgIFdFRCksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDE3NDY4OTMuNSwgICA0NiwgICAgNywgICAgOCwgZmFsc2UsICAgIDQsICBXRUQpLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgxNzcwNjQxLjUsICAgNDcsICAgMTIsICAgIDgsIGZhbHNlLCAgICA5LCAgU1VOKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMTg5MjczMS41LCAgIDUyLCAgIDQ2LCAgIDExLCBmYWxzZSwgICAyMCwgIFdFRCksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDE5MzE1NzkuNSwgICA1NCwgICAzMywgICAgNCwgZmFsc2UsICAgIDUsICBNT04pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgxOTc0ODUxLjUsICAgNTYsICAgMzEsICAgMTAsIGZhbHNlLCAgIDE1LCAgU0FUKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjA5MTE2NC41LCAgIDYxLCAgIDUwLCAgICAzLCBmYWxzZSwgICAgNywgIFNVTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIxMjE1MDkuNSwgICA2MywgICAxMywgICAgNCwgZmFsc2UsICAgMjQsICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMTU1Nzc5LjUsICAgNjQsICAgNDcsICAgIDIsIGZhbHNlLCAgICA5LCAgRlJJKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjE3NDAyOS41LCAgIDY1LCAgIDM3LCAgICAyLCBmYWxzZSwgICAgOSwgIFNBVCksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIxOTE1ODQuNSwgICA2NiwgICAyNSwgICAgMiwgZmFsc2UsICAgMjMsICBGUkkpLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMTk1MjYxLjUsICAgNjYsICAgMzUsICAgIDMsIGZhbHNlLCAgICA5LCAgU1VOKSwgLy8qCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIyMjkyNzQuNSwgICA2OCwgICAgOCwgICAgNSwgZmFsc2UsICAgIDIsICBTVU4pLCAvLyoKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjI0NTU4MC41LCAgIDY4LCAgIDUzLCAgICAxLCBmYWxzZSwgICAgOCwgIFdFRCksIC8vKioKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjI2NjEwMC41LCAgIDY5LCAgIDQ5LCAgICAzLCBmYWxzZSwgICAgNCwgIFNBVCksIAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMjg4NTQyLjUsICAgNzAsICAgNTAsICAgIDgsIGZhbHNlLCAgICAyLCAgU0FUKSwgLy8qCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIyOTA5MDEuNSwgICA3MCwgICA1NywgICAgMSwgZmFsc2UsICAgMjksICBTQVQpLCAvLyoKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjMyMzE0MC41LCAgIDcyLCAgIDI1LCAgICA0LCAgdHJ1ZSwgICAyMCwgIFdFRCksIC8vKgorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMzM0ODQ4LjUsICAgNzIsICAgNTcsICAgIDYsIGZhbHNlLCAgICA1LCAgU1VOKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjM0ODAyMC41LCAgIDczLCAgIDMzLCAgICA2LCBmYWxzZSwgICAgNiwgIEZSSSksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDIzNjY5NzguNSwgICA3NCwgICAyNSwgICAgNSwgZmFsc2UsICAgIDUsICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyMzg1NjQ4LjUsICAgNzUsICAgMTYsICAgIDYsIGZhbHNlLCAgIDEyLCAgTU9OKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjM5MjgyNS41LCAgIDc1LCAgIDM2LCAgICAyLCBmYWxzZSwgICAxMywgIFdFRCksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDI0MTYyMjMuNSwgICA3NiwgICA0MCwgICAgMywgZmFsc2UsICAgMjIsICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyNDI1ODQ4LjUsICAgNzcsICAgIDYsICAgIDcsIGZhbHNlLCAgIDIxLCAgU1VOKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjQzMDI2Ni41LCAgIDc3LCAgIDE4LCAgICA4LCBmYWxzZSwgICAgOSwgIE1PTiksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDI0MzA4MzMuNSwgICA3NywgICAyMCwgICAgMywgZmFsc2UsICAgMTUsICBNT04pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyNDMxMDA0LjUsICAgNzcsICAgMjAsICAgIDksIGZhbHNlLCAgICA5LCAgVEhVKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjQ0ODY5OC41LCAgIDc4LCAgICA5LCAgICAyLCBmYWxzZSwgICAxNCwgIFRVRSksCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDI0NTAxMzguNSwgICA3OCwgICAxMywgICAgMSwgZmFsc2UsICAgIDcsICBTVU4pLAorICAgICAgICAgICAgbmV3IENoaW5lc2VUZXN0Q2FzZSgyNDY1NzM3LjUsICAgNzgsICAgNTUsICAgMTAsIGZhbHNlLCAgIDE0LCAgV0VEKSwKKyAgICAgICAgICAgIG5ldyBDaGluZXNlVGVzdENhc2UoMjQ4NjA3Ni41LCAgIDc5LCAgIDUxLCAgICA2LCBmYWxzZSwgICAgNywgIFNVTiksCisKKyAgICAgICAgICAgIC8vIEFkZGl0aW9uYWwgdGVzdHMgbm90IGZyb20gRCZSCisgICAgICAgICAgICBuZXcgQ2hpbmVzZVRlc3RDYXNlKDI0Njc0OTYuNSwgICA3OCwgICA2MCwgICAgOCwgZmFsc2UsICAgIDIsICBGUkkpLCAvLyB5ZWFyIDYwCisgICAgICAgIH07CisKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLnNldExlbmllbnQodHJ1ZSk7CisgICAgICAgIGRvVGVzdENhc2VzKHRlc3RzLCBjYWwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgZm9ybWF0dGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Rm9ybWF0KCkgeworICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlRm9ybWF0LkRFRkFVTFQsIERhdGVGb3JtYXQuREVGQVVMVCk7CisKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICAKKyAgICAgICAgRGF0ZVtdIERBVEEgPSBuZXcgRGF0ZVsyXTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMjAwMSwgQ2FsZW5kYXIuTUFZLCAyMik7CisgICAgICAgIERBVEFbMF0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMjAwMSwgQ2FsZW5kYXIuTUFZLCAyMyk7CisgICAgICAgIERBVEFbMV0gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgLy8gV2VkIE1heSAyMyAyMDAxID0gTW9udGggNChsZWFwKSwgRGF5IDEsIFllYXIgMTgsIEN5Y2xlIDc4CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBmbXQuZm9ybWF0KERBVEFbaV0pOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGUgPSBmbXQucGFyc2Uocyk7CisgICAgICAgICAgICAgICAgaWYgKGUuZXF1YWxzKERBVEFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIERBVEFbaV0gKyAiIC0+ICIgKyBzICsgIiAtPiAiICsgZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBEQVRBW2ldICsgIiAtPiAiICsgcyArICIgLT4gIiArIGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBzICsgIiAtPiBwYXJzZSBmYWlsdXJlIGF0ICIgKyBlLmdldEVycm9yT2Zmc2V0KCkpOworICAgICAgICAgICAgICAgIGVycmxuKGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIHN1cmUgSVNfTEVBUF9NT05USCBwYXJ0aWNpcGF0ZXMgaW4gZmllbGQgcmVzb2x1dGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVzb2x1dGlvbigpIHsKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShjYWwsIERhdGVGb3JtYXQuREVGQVVMVCk7CisKKyAgICAgICAgLy8gTWF5IDIyIDIwMDEgPSB5NDYzOCBtNCBkMzAgZG95MTE5CisgICAgICAgIC8vIE1heSAyMyAyMDAxID0geTQ2MzggbTQqIGQxIGRveTEyMAorCisgICAgICAgIGZpbmFsIGludCBUSEVfWUVBUiA9IDQ2Mzg7CisgICAgICAgIGZpbmFsIGludCBFTkQgPSAtMTsKKworICAgICAgICBpbnRbXSBEQVRBID0geworICAgICAgICAgICAgLy8gRm9ybWF0OgorICAgICAgICAgICAgLy8gKGZpZWxkLCB2YWx1ZSkrLCBFTkQsIGV4cC5tb250aCwgZXhwLmlzTGVhcE1vbnRoLCBleHAuRE9NCisgICAgICAgICAgICAvLyBOb3RlOiBleHAubW9udGggaXMgT05FLUJBU0VECisKKyAgICAgICAgICAgIC8vIElmIHdlIHNldCBEQVlfT0ZfWUVBUiBvbmx5LCB0aGF0IHNob3VsZCBiZSB1c2VkCisgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfWUVBUiwgMSwKKyAgICAgICAgICAgIEVORCwKKyAgICAgICAgICAgIDEsMCwxLCAvLyBFeHBlY3QgMS0xCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIElmIHdlIHNldCBNT05USCBvbmx5LCB0aGF0IHNob3VsZCBiZSB1c2VkCisgICAgICAgICAgICBDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCwgMSwKKyAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSwKKyAgICAgICAgICAgIENhbGVuZGFyLk1PTlRILCAzLAorICAgICAgICAgICAgRU5ELAorICAgICAgICAgICAgNCwxLDEsIC8vIEV4cGVjdCA0Ki0xCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIElmIHdlIHNldCB0aGUgRE9ZIGxhc3QsIHRoYXQgc2hvdWxkIHRha2UgcHJlY2VkZW5jZQorICAgICAgICAgICAgQ2FsZW5kYXIuTU9OVEgsIDEsIC8vIFNob3VsZCBpZ25vcmUKKyAgICAgICAgICAgIENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILCAxLCAvLyBTaG91bGQgaWdub3JlCisgICAgICAgICAgICBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEsIC8vIFNob3VsZCBpZ25vcmUKKyAgICAgICAgICAgIENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAxMjEsCisgICAgICAgICAgICBFTkQsCisgICAgICAgICAgICA0LDEsMiwgLy8gRXhwZWN0IDQqLTIKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gSSd2ZSBkaXNhYmxlZCB0aGlzIHRlc3QgYmVjYXVzZSBpdCBkb2Vzbid0IHdvcmsgdGhpcyB3YXksCisgICAgICAgICAgICAvLyBub3QgZXZlbiB3aXRoIGEgR3JlZ29yaWFuQ2FsZW5kYXIhICBNT05USCBhbG9uZSBpc24ndCBlbm91Z2gKKyAgICAgICAgICAgIC8vIHRvIHN1cGVyc2VkZSBEQVlfT0ZfWUVBUi4gIFNvbWUgb3RoZXIgbW9udGgtcmVsYXRlZCBmaWVsZCBpcworICAgICAgICAgICAgLy8gYWxzbyByZXF1aXJlZC4gLSBMaXUgMTEvMjgvMDAKKyAgICAgICAgICAgIC8vISAvLyBJZiB3ZSBzZXQgTU9OVEggbGFzdCwgdGhhdCBzaG91bGQgdGFrZSBwcmVjZWRlbmNlCisgICAgICAgICAgICAvLyEgQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgsIDEsCisgICAgICAgICAgICAvLyEgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxLAorICAgICAgICAgICAgLy8hIENhbGVuZGFyLkRBWV9PRl9ZRUFSLCA1LCAvLyBTaG91bGQgaWdub3JlCisgICAgICAgICAgICAvLyEgQ2FsZW5kYXIuTU9OVEgsIDMsCisgICAgICAgICAgICAvLyEgRU5ELAorICAgICAgICAgICAgLy8hIDQsMSwxLCAvLyBFeHBlY3QgNCotMQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBJZiB3ZSBzZXQgSVNfTEVBUF9NT05USCBsYXN0LCB0aGF0IHNob3VsZCB0YWtlIHByZWNlZGVuY2UKKyAgICAgICAgICAgIENhbGVuZGFyLk1PTlRILCAzLAorICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX01PTlRILCAxLAorICAgICAgICAgICAgQ2FsZW5kYXIuREFZX09GX1lFQVIsIDUsIC8vIFNob3VsZCBpZ25vcmUKKyAgICAgICAgICAgIENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILCAxLAorICAgICAgICAgICAgRU5ELAorICAgICAgICAgICAgNCwxLDEsIC8vIEV4cGVjdCA0Ki0xCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyApIHsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5FWFRFTkRFRF9ZRUFSLCBUSEVfWUVBUik7CisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiRVhURU5ERURfWUVBUj0iICsgVEhFX1lFQVIpOworICAgICAgICAgICAgd2hpbGUgKERBVEFbaV0gIT0gRU5EKSB7CisgICAgICAgICAgICAgICAgY2FsLnNldChEQVRBW2krK10sIERBVEFbaSsrXSk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiICIgKyBmaWVsZE5hbWUoREFUQVtpLTJdKSArICI9IiArIERBVEFbaS0xXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK2k7IC8vIFNraXAgb3ZlciBFTkQgbWFyaworICAgICAgICAgICAgaW50IGV4cE1vbnRoID0gREFUQVtpKytdLTE7CisgICAgICAgICAgICBpbnQgZXhwSXNMZWFwTW9udGggPSBEQVRBW2krK107CisgICAgICAgICAgICBpbnQgZXhwRE9NID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IG1vbnRoID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgICAgICBpbnQgaXNMZWFwTW9udGggPSBjYWwuZ2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIKTsKKyAgICAgICAgICAgIGludCBkb20gPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCk7CisgICAgICAgICAgICBpZiAoZXhwTW9udGggPT0gbW9udGggJiYgZXhwSXNMZWFwTW9udGggPT0gaXNMZWFwTW9udGggJiYKKyAgICAgICAgICAgICAgICBkb20gPT0gZXhwRE9NKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgYnVmICsgIiA9PiAiICsgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIsIFRIRV9ZRUFSKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBleHBNb250aCk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCwgZXhwSXNMZWFwTW9udGgpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCBleHBET00pOworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgYnVmICsgIiA9PiAiICsgcyArCisgICAgICAgICAgICAgICAgICAgICAgIj0iICsgKG1vbnRoKzEpICsgIiwiICsgaXNMZWFwTW9udGggKyAiLCIgKyBkb20gKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpICsKKyAgICAgICAgICAgICAgICAgICAgICAiPSIgKyAoZXhwTW9udGgrMSkgKyAiLCIgKyBleHBJc0xlYXBNb250aCArICIsIiArIGV4cERPTSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBiZWhhdmlvciBvZiBmaWVsZHMgdGhhdCBhcmUgb3V0IG9mIHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RPdXRPZlJhbmdlKCkgeworICAgICAgICBpbnRbXSBEQVRBID0gbmV3IGludFtdIHsKKyAgICAgICAgICAgIC8vIElucHV0ICAgICAgIE91dHB1dAorICAgICAgICAgICAgNDYzOCwgMTMsICAxLCAgIDQ2MzksICAxLCAgMSwKKyAgICAgICAgICAgIDQ2MzgsIDE4LCAgMSwgICA0NjM5LCAgNiwgIDEsCisgICAgICAgICAgICA0NjM5LCAgMCwgIDEsICAgNDYzOCwgMTIsICAxLAorICAgICAgICAgICAgNDYzOSwgLTYsICAxLCAgIDQ2MzgsICA2LCAgMSwKKyAgICAgICAgICAgIDQ2MzgsICAxLCAzMiwgICA0NjM4LCAgMiwgIDIsIC8vIDEtNDYzOCBoYXMgMzAgZGF5cworICAgICAgICAgICAgNDYzOCwgIDIsIC0xLCAgIDQ2MzgsICAxLCAyOSwKKyAgICAgICAgfTsKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyApIHsKKyAgICAgICAgICAgIGludCB5MSA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgIGludCBtMSA9IERBVEFbaSsrXS0xOworICAgICAgICAgICAgaW50IGQxID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IHkyID0gREFUQVtpKytdOworICAgICAgICAgICAgaW50IG0yID0gREFUQVtpKytdLTE7CisgICAgICAgICAgICBpbnQgZDIgPSBEQVRBW2krK107CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRVhURU5ERURfWUVBUiwgeTEpOworICAgICAgICAgICAgY2FsLnNldChNT05USCwgbTEpOworICAgICAgICAgICAgY2FsLnNldChEQVRFLCBkMSk7CisgICAgICAgICAgICBpbnQgeSA9IGNhbC5nZXQoQ2FsZW5kYXIuRVhURU5ERURfWUVBUik7CisgICAgICAgICAgICBpbnQgbSA9IGNhbC5nZXQoTU9OVEgpOworICAgICAgICAgICAgaW50IGQgPSBjYWwuZ2V0KERBVEUpOworICAgICAgICAgICAgaWYgKHkhPXkyIHx8IG0hPW0yIHx8IGQhPWQyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyB5MSArICIvIiArIChtMSsxKSArICIvIiArIGQxICsgIiByZXNvbHZlcyB0byAiICsKKyAgICAgICAgICAgICAgICAgICAgICB5ICsgIi8iICsgKG0rMSkgKyAiLyIgKyBkICsgIiwgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgeTIgKyAiLyIgKyAobTIrMSkgKyAiLyIgKyBkMik7CisgICAgICAgICAgICB9IGVsc2UgIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIHkxICsgIi8iICsgKG0xKzEpICsgIi8iICsgZDEgKyAiIHJlc29sdmVzIHRvICIgKworICAgICAgICAgICAgICAgICAgICAgIHkgKyAiLyIgKyAobSsxKSArICIvIiArIGQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgYmVoYXZpb3Igb2YgQ2hpbmVzZUNhbGVuZGFyLmFkZCgpLiAgVGhlIG9ubHkgcmVhbAorICAgICAqIG5hc3RpbmVzcyB3aXRoIHJvbGwgaXMgdGhlIE1PTlRIIGZpZWxkIGFyb3VuZCBsZWFwIG1vbnRocy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWRkKCkgeworICAgICAgICBpbnRbXVtdIHRlc3RzID0gbmV3IGludFtdW10geworICAgICAgICAgICAgLy8gTU9OVEhTIEFSRSAxLUJBU0VEIEhFUkUKKyAgICAgICAgICAgIC8vIGlucHV0ICAgICAgICAgICAgICAgYWRkICAgICAgICAgICBvdXRwdXQKKyAgICAgICAgICAgIC8vIHllYXIgIG1vbiAgICBkYXkgICAgZmllbGQgYW1vdW50ICB5ZWFyICBtb24gICAgZGF5CisgICAgICAgICAgICB7ICA0NjQyLCAgIDMsMCwgIDE1LCAgIE1PTlRILCAgIDMsICAgNDY0MiwgICA2LDAsICAxNSB9LCAvLyBub3JtYWwKKyAgICAgICAgICAgIHsgIDQ2MzksICAxMiwwLCAgMTUsICAgTU9OVEgsICAgMSwgICA0NjQwLCAgIDEsMCwgIDE1IH0sIC8vIGFjcm9zcyB5ZWFyCisgICAgICAgICAgICB7ICA0NjQwLCAgIDEsMCwgIDE1LCAgIE1PTlRILCAgLTEsICAgNDYzOSwgIDEyLDAsICAxNSB9LCAvLyBhY3Jvc3MgeWVhcgorICAgICAgICAgICAgeyAgNDYzOCwgICAzLDAsICAxNSwgICBNT05USCwgICAzLCAgIDQ2MzgsICAgNSwwLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDMsMCwgIDE1LCAgIE1PTlRILCAgIDIsICAgNDYzOCwgICA0LDEsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgNCwwLCAgMTUsICAgTU9OVEgsICAgMSwgICA0NjM4LCAgIDQsMSwgIDE1IH0sIC8vIDQ9bGVhcAorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDEsICAxNSwgICBNT05USCwgICAxLCAgIDQ2MzgsICAgNSwwLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMCwgIDMwLCAgIE1PTlRILCAgIDEsICAgNDYzOCwgICA0LDEsICAyOSB9LCAvLyBkb20gc2hvdWxkIHBpbgorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDAsICAzMCwgICBNT05USCwgICAyLCAgIDQ2MzgsICAgNSwwLCAgMzAgfSwgLy8gbm8gZG9tIHBpbgorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDAsICAzMCwgICBNT05USCwgICAzLCAgIDQ2MzgsICAgNiwwLCAgMjkgfSwgLy8gZG9tIHNob3VsZCBwaW4KKyAgICAgICAgfTsKKyAgICAgICAKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoKTsKKyAgICAgICAgZG9Sb2xsQWRkKEFERCwgY2FsLCB0ZXN0cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgYmVoYXZpb3Igb2YgQ2hpbmVzZUNhbGVuZGFyLnJvbGwoKS4gIFRoZSBvbmx5IHJlYWwKKyAgICAgKiBuYXN0aW5lc3Mgd2l0aCByb2xsIGlzIHRoZSBNT05USCBmaWVsZCBhcm91bmQgbGVhcCBtb250aHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFJvbGwoKSB7CisgICAgICAgIGludFtdW10gdGVzdHMgPSBuZXcgaW50W11bXSB7CisgICAgICAgICAgICAvLyBNT05USFMgQVJFIDEtQkFTRUQgSEVSRQorICAgICAgICAgICAgLy8gaW5wdXQgICAgICAgICAgICAgICBhZGQgICAgICAgICAgIG91dHB1dAorICAgICAgICAgICAgLy8geWVhciAgbW9uICAgIGRheSAgICBmaWVsZCBhbW91bnQgIHllYXIgIG1vbiAgICBkYXkKKyAgICAgICAgICAgIHsgIDQ2NDIsICAgMywwLCAgMTUsICAgTU9OVEgsICAgMywgICA0NjQyLCAgIDYsMCwgIDE1IH0sIC8vIG5vcm1hbAorICAgICAgICAgICAgeyAgNDY0MiwgICAzLDAsICAxNSwgICBNT05USCwgIDExLCAgIDQ2NDIsICAgMiwwLCAgMTUgfSwgLy8gbm9ybWFsCisgICAgICAgICAgICB7ICA0NjM5LCAgMTIsMCwgIDE1LCAgIE1PTlRILCAgIDEsICAgNDYzOSwgICAxLDAsICAxNSB9LCAvLyBhY3Jvc3MgeWVhcgorICAgICAgICAgICAgeyAgNDY0MCwgICAxLDAsICAxNSwgICBNT05USCwgIC0xLCAgIDQ2NDAsICAxMiwwLCAgMTUgfSwgLy8gYWNyb3NzIHllYXIKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgMywwLCAgMTUsICAgTU9OVEgsICAgMywgICA0NjM4LCAgIDUsMCwgIDE1IH0sIC8vIDQ9bGVhcAorICAgICAgICAgICAgeyAgNDYzOCwgICAzLDAsICAxNSwgICBNT05USCwgIDE2LCAgIDQ2MzgsICAgNSwwLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDMsMCwgIDE1LCAgIE1PTlRILCAgIDIsICAgNDYzOCwgICA0LDEsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgMywwLCAgMTUsICAgTU9OVEgsICAyOCwgICA0NjM4LCAgIDQsMSwgIDE1IH0sIC8vIDQ9bGVhcAorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDAsICAxNSwgICBNT05USCwgICAxLCAgIDQ2MzgsICAgNCwxLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMCwgIDE1LCAgIE1PTlRILCAtMTIsICAgNDYzOCwgICA0LDEsICAxNSB9LCAvLyA0PWxlYXAKKyAgICAgICAgICAgIHsgIDQ2MzgsICAgNCwxLCAgMTUsICAgTU9OVEgsICAgMSwgICA0NjM4LCAgIDUsMCwgIDE1IH0sIC8vIDQ9bGVhcAorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDEsICAxNSwgICBNT05USCwgLTI1LCAgIDQ2MzgsICAgNSwwLCAgMTUgfSwgLy8gND1sZWFwCisgICAgICAgICAgICB7ICA0NjM4LCAgIDQsMCwgIDMwLCAgIE1PTlRILCAgIDEsICAgNDYzOCwgICA0LDEsICAyOSB9LCAvLyBkb20gc2hvdWxkIHBpbgorICAgICAgICAgICAgeyAgNDYzOCwgICA0LDAsICAzMCwgICBNT05USCwgIDE0LCAgIDQ2MzgsICAgNCwxLCAgMjkgfSwgLy8gZG9tIHNob3VsZCBwaW4KKyAgICAgICAgICAgIHsgIDQ2MzgsICAgNCwwLCAgMzAsICAgTU9OVEgsICAxNSwgICA0NjM4LCAgIDUsMCwgIDMwIH0sIC8vIG5vIGRvbSBwaW4KKyAgICAgICAgICAgIHsgIDQ2MzgsICAgNCwwLCAgMzAsICAgTU9OVEgsIC0xMCwgICA0NjM4LCAgIDYsMCwgIDI5IH0sIC8vIGRvbSBzaG91bGQgcGluCisgICAgICAgIH07CisgICAgICAgCisgICAgICAgIENoaW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgQ2hpbmVzZUNhbGVuZGFyKCk7CisgICAgICAgIGRvUm9sbEFkZChST0xMLCBjYWwsIHRlc3RzKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBkb1JvbGxBZGQoYm9vbGVhbiByb2xsLCBDaGluZXNlQ2FsZW5kYXIgY2FsLCBpbnRbXVtdIHRlc3RzKSB7CisgICAgICAgIFN0cmluZyBuYW1lID0gcm9sbCA/ICJyb2xsaW5nIiA6ICJhZGRpbmciOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaW50W10gdGVzdCA9IHRlc3RzW2ldOworCisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIsIHRlc3RbMF0pOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIHRlc3RbMV0tMSk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCwgdGVzdFsyXSk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIHRlc3RbM10pOworICAgICAgICAgICAgaWYgKHJvbGwpIHsKKyAgICAgICAgICAgICAgICBjYWwucm9sbCh0ZXN0WzRdLCB0ZXN0WzVdKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2FsLmFkZCh0ZXN0WzRdLCB0ZXN0WzVdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjYWwuZ2V0KENhbGVuZGFyLkVYVEVOREVEX1lFQVIpICE9IHRlc3RbNl0gfHwKKyAgICAgICAgICAgICAgICBjYWwuZ2V0KE1PTlRIKSAhPSAodGVzdFs3XS0xKSB8fAorICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpICE9IHRlc3RbOF0gfHwKKyAgICAgICAgICAgICAgICBjYWwuZ2V0KERBVEUpICE9IHRlc3RbOV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIG5hbWUgKyAiICIgKworICAgICAgICAgICAgICAgICAgICAgIHltZFRvU3RyaW5nKHRlc3RbMF0sIHRlc3RbMV0tMSwgdGVzdFsyXSwgdGVzdFszXSkKKyAgICAgICAgICAgICAgICAgICAgICArICIgIiArIGZpZWxkTmFtZSh0ZXN0WzRdKSArICIgYnkgIiArIHRlc3RbNV0KKyAgICAgICAgICAgICAgICAgICAgICArICI6IGV4cGVjdGVkICIgKworICAgICAgICAgICAgICAgICAgICAgIHltZFRvU3RyaW5nKHRlc3RbNl0sIHRlc3RbN10tMSwgdGVzdFs4XSwgdGVzdFs5XSkKKyAgICAgICAgICAgICAgICAgICAgICArICIsIGdvdCAiICsgeW1kVG9TdHJpbmcoY2FsKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiAiICsgbmFtZSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgeW1kVG9TdHJpbmcodGVzdFswXSwgdGVzdFsxXS0xLCB0ZXN0WzJdLCB0ZXN0WzNdKQorICAgICAgICAgICAgICAgICAgICArICIgIiArIGZpZWxkTmFtZSh0ZXN0WzRdKSArICIgYnkgIiArIHRlc3RbNV0KKyAgICAgICAgICAgICAgICAgICAgKyAiOiBnb3QgIiArIHltZFRvU3RyaW5nKGNhbCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCB5ZWFyLG1vbnRoLGRheSB2YWx1ZXMgdG8gdGhlIGZvcm0gInllYXIvbW9udGgvZGF5Ii4KKyAgICAgKiBPbiBpbnB1dCB0aGUgbW9udGggdmFsdWUgaXMgemVyby1iYXNlZCwgYnV0IGluIHRoZSByZXN1bHQgc3RyaW5nIGl0IGlzIG9uZS1iYXNlZC4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyB5bWRUb1N0cmluZyhpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgaXNMZWFwTW9udGgsIGludCBkYXkpIHsKKyAgICAgICAgcmV0dXJuICIiICsgeWVhciArICIvIiArIChtb250aCsxKSArCisgICAgICAgICAgICAoKGlzTGVhcE1vbnRoIT0wKT8iKGxlYXApIjoiIikgKworICAgICAgICAgICAgIi8iICsgZGF5OworICAgIH0KKworLy8gICAgcHVibGljIHZvaWQgVGVzdEZpbmRMZWFwTW9udGhzKCkgeworLy8gICAgICAgIENoaW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgQ2hpbmVzZUNhbGVuZGFyKCk7CisvLyAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUoMjAwMC0xOTAwLCBDYWxlbmRhci5KQU5VQVJZLCAxKSk7CisvLyAgICAgICAgbG9uZyBlbmQgPSBuZXcgRGF0ZSgyMTAwLTE5MDAsIENhbGVuZGFyLkpBTlVBUlksIDEpLmdldFRpbWUoKTsKKy8vICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdCBmbXQgPSAoQ2hpbmVzZURhdGVGb3JtYXQpIERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoY2FsKTsKKy8vICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKCJ1LU1NbC1kZCwgJ1llYXInIHksICdDeWNsZScgRyIpOworLy8gICAgICAgIHdoaWxlIChjYWwuZ2V0VGltZUluTWlsbGlzKCkgPCBlbmQpIHsKKy8vICAgICAgICAgICAgaWYgKGNhbC5nZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpICE9IDApIHsKKy8vICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxKTsKKy8vICAgICAgICAgICAgICAgIGxvZ2xuKGNhbC5nZXRUaW1lKCkgKyAiID0gIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworLy8gICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDI5KTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBWV9PRl9ZRUFSLCAyNSk7CisvLyAgICAgICAgfQorLy8gICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoY2FsKTsKKyAgICAgICAgaWYoIShmb3JtYXQgaW5zdGFuY2VvZiBDaGluZXNlRGF0ZUZvcm1hdCkpeworICAgICAgICAgICAgZXJybG4oIkRhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoIitjYWwrIikgZGlkIG5vdCByZXR1cm4gYSBDaGluZXNlRGF0ZUZvcm1hdCIpOworICAgICAgICB9CisgICAgICAgIENoaW5lc2VEYXRlRm9ybWF0IGZtdCA9IChDaGluZXNlRGF0ZUZvcm1hdClmb3JtYXQ7CisgICAgICAgIGZtdC5hcHBseVBhdHRlcm4oImxseXlsbCIpOworICAgICAgICBEYXRlIHRpbWUgPSBnZXREYXRlKDIxMDAsIENhbGVuZGFyLkpBTlVBUlksIDEpOworICAgICAgICBTdHJpbmcgc3RyID0gZm10LmZvcm1hdCh0aW1lKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGUgZSA9IGZtdC5wYXJzZShzdHIpOworICAgICAgICAgICAgbG9nbG4oImNoaW5lc2UgY2FsZW5kYXIgdGltZTogIiArIHRpbWUgKyAiIHJlc3VsdDogIiArIHN0ciArICIgLS0+ICIgKyBlKTsKKyAgICAgICAgfSBjYXRjaCAoamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBsb2dsbihleC5nZXRNZXNzYWdlKCkpOyAvLyBjaGluZXNlIGNhbGVuZGFyIGNhbid0IHBhcnNlIHRoaXMsIG5vIGVycm9yIGZvciBub3cKKyAgICAgICAgfQorCisgICAgICAgIC8vbmV3IENoaW5lc2VDYWxlbmRhcihUaW1lWm9uZSxVTG9jYWxlKQorICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2NhbDIgPSBuZXcgQ2hpbmVzZUNhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUuQ0hJTkEpOworICAgICAgICBpZihjY2FsMj09bnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBDaGluZXNlQ2FsZW5kYXIgd2l0aCBUaW1lWm9uZSBVTG9jYWxlIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmbXQgPSAoQ2hpbmVzZURhdGVGb3JtYXQpRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoY2NhbDIsIERhdGVGb3JtYXQuREVGQVVMVCwgVUxvY2FsZS5DSElOQSk7CisgICAgICAgICAgICB0aW1lID0gZ2V0RGF0ZSgyMDAxLCBDYWxlbmRhci5NQVksIDIzKTsKKyAgICAgICAgICAgIHN0ciA9IGZtdC5mb3JtYXQodGltZSk7CisgICAgICAgICAgICBsb2dsbigiQ2hpbmVzZSBjYWxlbmRhciB0aW1lOiAiICsgdGltZSArICIgcmVzdWx0OiAiICsgc3RyKTsKKyAgICAgICAgfSAgICAgICAgCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RTY3JhdGNoKCl7CisgICAgICAgIFN0cmluZ1tdIHN0ck1vbnRocyA9IHsiSmFudWFyaSIsICJQZWJydWFyaSIsICJNYXJldCIsICJBcHJpbCIsICJNZWkiLCAiSnVuaSIsCisgICAgICAgICAgICAgICAgIkp1bGkiLCAiQWd1c3R1cyIsICJTZXB0ZW1iZXIiLCAiT2t0b2JlciIsICJOb3BlbWJlciIsICJEZXNlbWJlciJ9OworICAgICAgICBTdHJpbmdbXSBzdHJTaG9ydE1vbnRocyA9IHsiSmFuIiwgIlBlYiIsICJNYXIiLCAiQXByIiwgIk1laSIsICJKdW4iLAorICAgICAgICAgICAgICAgICAgICAgIkp1bCIsICJBZ3QiLCAiU2VwIiwgIk9rdCIsICJOb3AiLCAiRGVzIn07CisgICAgICAgIFN0cmluZ1tdIHN0cldlZWtzID0geyIiLCAiTWluZ2d1IiwgIlNlbmluIiwgIlNlbGFzYSIsICJSYWJ1IiwgIkthbWlzIiwgIkp1bWF0IiwgIlNhYnR1In07CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGRmc0RhdGUgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMobmV3IExvY2FsZSgiaWQiLCAiSUQiKSk7CisgICAgICAgIGRmc0RhdGUuc2V0TW9udGhzKHN0ck1vbnRocyk7CisgICAgICAgIGRmc0RhdGUuc2V0U2hvcnRNb250aHMoc3RyU2hvcnRNb250aHMpOworICAgICAgICBkZnNEYXRlLnNldFdlZWtkYXlzKHN0cldlZWtzKTsKKyAgICAgICAgVUxvY2FsZSB1bG9JbmQgPSBkZnNEYXRlLmdldExvY2FsZShVTG9jYWxlLkFDVFVBTF9MT0NBTEUpOworICAgICAgICBpZih1bG9JbmQ9PW51bGwpeworICAgICAgICAgICAgZXJybG4oImRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBVTG9jYWxlIik7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4odWxvSW5kLnRvU3RyaW5nKCkpOworICAgICAgICBMb2NhbGUgbG9jSW5kID0gdWxvSW5kLnRvTG9jYWxlKCk7CisgICAgICAgIGlmKGxvY0luZD09bnVsbCl7CisgICAgICAgICAgICBlcnJsbigiZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKGxvY0luZC50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5pdFdpdGhDdXJyZW50VGltZSgpIHsKKyAgICAgICAgLy8gamI0NTU1CisgICAgICAgIC8vIGlmIHRoZSBjaGluZXNlIGNhbGVuZGFyIGN1cnJlbnQgbWlsbGlzIGlzbid0IGNhbGxlZCwgdGhlIGRlZmF1bHQgeWVhciBpcyB3cm9uZy4KKyAgICAgICAgLy8gdGhpcyB0ZXN0IGlzIGFzc3VtaW5nIHRoZSAneWVhcicgaXMgdGhlIGN1cnJlbnQgY3ljbGUKKyAgICAgICAgLy8gc28gd2hlbiB3ZSBjcm9zcyBhIGN5Y2xlIGJvdW5kYXJ5LCB0aGUgdGFyZ2V0IHdpbGwgbmVlZCB0byBjaGFuZ2UKKyAgICAgICAgLy8gdGhhdCBzaG91bGRuJ3QgYmUgZm9yIGF3aGlsZSB5ZXQuLi4gCisKKyAgICAgICAgQ2hpbmVzZUNhbGVuZGFyIGNjID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBjYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMjIpOworICAgICAgICBjYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIDApOworICAgICAgICAgLy8gbmVlZCB0byBzZXQgbGVhcCBtb250aCBmbGFnIG9mZiwgb3RoZXJ3aXNlLCB0aGUgdGVzdCBjYXNlIGFsd2F5cyBmYWlscyB3aGVuCisgICAgICAgICAvLyBjdXJyZW50IHRpbWUgaXMgaW4gYSBsZWFwIG1vbnRoCisgICAgICAgIGNjLnNldChDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCwgMCk7CisgICAgICAgIGNjLnNldChDYWxlbmRhci5EQVRFLCAxOSk7CisgICAgICAgIGNjLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMCk7CisgICAgICAgIGNjLnNldChDYWxlbmRhci5NSU5VVEUsIDApOworICAgICAgICBjYy5zZXQoQ2FsZW5kYXIuU0VDT05ELCAwKTsKKyAgICAgICAgY2Muc2V0KENhbGVuZGFyLk1JTExJU0VDT05ELCAwKTsKKworICAgICAgICBjYy5hZGQoQ2FsZW5kYXIuREFURSwgMSk7CisgCisgICAgICAgIERhdGUgdGFyZ2V0ID0gbmV3IERhdGUoMTA1LCBDYWxlbmRhci5GRUJSVUFSWSwgMjgpOworICAgICAgICBEYXRlIHJlc3VsdCA9IGNjLmdldFRpbWUoKTsKKworICAgICAgICBhc3NlcnRFcXVhbHMoImNoaW5lc2UgYW5kIGdyZWdvcmlhbiBkYXRlIHNob3VsZCBtYXRjaCIsIHRhcmdldCwgcmVzdWx0KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2hpbmVzZVRlc3RDYXNlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ2hpbmVzZVRlc3RDYXNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTI0YjZhYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9DaGluZXNlVGVzdENhc2UuamF2YQpAQCAtMCwwICsxLDUzIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCitwdWJsaWMgY2xhc3MgQ2hpbmVzZVRlc3RDYXNlIGV4dGVuZHMgVGVzdENhc2UgeworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdXNpbmcgYSBKdWxpYW4gZGF5IG51bWJlciBhbmQKKyAgICAgKiB0aGUgY29ycmVzcG9uZGluZyBmaWVsZHMgZm9yIHRoZSBjYWxlbmRhciBiZWluZyB0ZXN0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXJhIHRoZSBFUkEgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBKdWxpYW4KKyAgICAgKiBkYXkKKyAgICAgKiBAcGFyYW0geWVhciB0aGUgWUVBUiBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuCisgICAgICogSnVsaWFuIGRheQorICAgICAqIEBwYXJhbSBtb250aCB0aGUgTU9OVEggKDEtYmFzZWQpIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbgorICAgICAqIHRoZSBnaXZlbiBKdWxpYW4gZGF5CisgICAgICogQHBhcmFtIGlzTGVhcE1vbnRoIGlmIHRydWUsIHRyZWF0IG1vbnRoIGFzIGEgbGVhcCBtb250aAorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoIHRoZSBEQVlfT0ZfTU9OVEggZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZQorICAgICAqIGdpdmVuIEp1bGlhbiBkYXkKKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIHRoZSBEQVlfT0ZfV0VFSyBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gZ2l2ZW4KKyAgICAgKiBKdWxpYW4gZGF5CisgICAgICovCisgICAgcHVibGljIENoaW5lc2VUZXN0Q2FzZShkb3VibGUganVsaWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNMZWFwTW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgZGF5T2ZXZWVrKSB7CisKKyAgICAgICAgc2V0VGltZShuZXcgRGF0ZShKVUxJQU5fRVBPQ0ggKyAobG9uZykoT05FX0RBWSAqIGp1bGlhbikpKTsKKyAgICAgICAgCisgICAgICAgIHNldChDYWxlbmRhci5FUkEsIGVyYSk7CisgICAgICAgIHNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLk1PTlRILCBtb250aCAtIDEpOworICAgICAgICBzZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgsIGlzTGVhcE1vbnRoPzE6MCk7CisgICAgICAgIHNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIGRheU9mTW9udGgpOworICAgICAgICBzZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIGRheU9mV2Vlayk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdGVzdCBjYXNlJ3MgdGltZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gZG93VG9TdHJpbmcoZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSkgKworICAgICAgICAgICAgZ2V0KENhbGVuZGFyLllFQVIpICsgIm9mIiArIGdldChDYWxlbmRhci5FUkEpICsKKyAgICAgICAgICAgICIvIiArIChnZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsKKyAgICAgICAgICAgIChnZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpPT0xPyIobGVhcCkiOiIiKSArICIvIiArCisgICAgICAgICAgICBnZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ29tcGF0aWJpbGl0eVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Db21wYXRpYmlsaXR5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJmYTE0NDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ29tcGF0aWJpbGl0eVRlc3QuamF2YQpAQCAtMCwwICsxLDExMTUgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLmlvLio7CisKK3B1YmxpYyBjbGFzcyBDb21wYXRpYmlsaXR5VGVzdCBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmd2W10pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29tcGF0aWJpbGl0eVRlc3QoKS5ydW4oYXJndik7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEZJRUxEX05BTUUgPSB7CisgICAgICAgICJFUkEiLCAiWUVBUiIsICJNT05USCIsICJXRUVLX09GX1lFQVIiLCAiV0VFS19PRl9NT05USCIsCisgICAgICAgICJEQVlfT0ZfTU9OVEgiLCAiREFZX09GX1lFQVIiLCAiREFZX09GX1dFRUsiLAorICAgICAgICAiREFZX09GX1dFRUtfSU5fTU9OVEgiLCAiQU1fUE0iLCAiSE9VUiIsICJIT1VSX09GX0RBWSIsCisgICAgICAgICJNSU5VVEUiLCAiU0VDT05EIiwgIk1JTExJU0VDT05EIiwgIlpPTkVfT0ZGU0VUIiwKKyAgICAgICAgIkRTVF9PRkZTRVQiLCAiWUVBUl9XT1kiLCAiRE9XX0xPQ0FMIiwgIkVYVEVOREVEX1lFQVIiLAorICAgICAgICAiSlVMSUFOX0RBWSIsICJNSUxMSVNFQ09ORFNfSU5fREFZIiwKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgYmVoYXZpb3Igb2YgdGhlIEdyZWdvcmlhbkNhbGVuZGFyIGFyb3VuZCB0aGUgY2hhbmdlb3Zlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0R3JlZ29yaWFuQ2hhbmdlb3ZlcigpIHsKKyAgICAKKyAgICAgICAgamF2YS51dGlsLlRpbWVab25lIGpka0dNVCA9IGphdmEudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIik7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciBqZGtDYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoamRrR01UKTsKKyAgICAgICAgamRrQ2FsLmNsZWFyKCk7CisgICAgICAgIGpka0NhbC5zZXQoMTU4MiwgQ2FsZW5kYXIuT0NUT0JFUiwgMTUpOworICAgICAgICAKKy8vICAgICAgICBpZihqZGtDYWwgaW5zdGFuY2VvZiBqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIpIHsKKy8vICAgICAgICAJCWxvZ2xuKCJqZGsgSVMgZ3JlZ28iKTsKKy8vICAgICAgICAJCWphdmEudXRpbC5HcmVnb3JpYW5DYWxlbmRhciBqZGtnYyA9IChqYXZhLnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIpCisvLwkJCQkJCWpka0NhbDsKKy8vICAgICAgICAJCWxvZ2xuKCJqZGsgY2hhbmdlIGF0OiAiICsgamRrZ2MuZ2V0R3JlZ29yaWFuQ2hhbmdlKCkgKyAiKCIgKyBqZGtnYy5nZXRHcmVnb3JpYW5DaGFuZ2UoKS5nZXRUaW1lKCkgKyIpIiApOworLy8gICAgICAgIH0gZWxzZSB7CisvLyAgICAgICAgCSAgICBsb2dsbigiamRrIE5PVCBncmVnbyIpOworLy8gICAgICAgIH0KKyAgICAgIAorICAgICAgICBsb25nIGEgPSBqZGtDYWwuZ2V0VGltZSgpLmdldFRpbWUoKTsKKyAgICAgICAgRGF0ZSBjID0gamRrQ2FsLmdldFRpbWUoKTsKKyAgICAgICAgYy50b1N0cmluZygpOworICAgICAgICBsb25nIGIgPSBjLmdldFRpbWUoKTsKKyAgICAgICAgaWYoYSE9YikgeworICAgICAgICAgICAgIGxvZ2xuKCIgIiArIGEgKyAiICE9ICIgKyBiKTsKKyAgICAgICAgICAgIAlsb2dsbigiSkRLIGhhcyBHcmVnb3JpYW4gY3V0b3ZlciBhbm9tYWx5ICgxLjU/KSAtIHNraXBwaW5nIHRoaXMgdGVzdC4iKTsKKyAgICAgICAgICAgIAlyZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIERhdGUgY28gPSBqZGtDYWwuZ2V0VGltZSgpOworICAgICAgICBsb2dsbigiQ2hhbmdlIG92ZXIgKE9jdCAxNSAxNTgyKSA9ICIgKyBjbyArICIgKCIgKyBjby5nZXRUaW1lKCkgKyAiKSIpOworICAgICAgICBmaW5hbCBpbnQgT05FX0RBWSA9IDI0KjYwKjYwKjEwMDA7CisgICAgICAgIFRpbWVab25lIGdtdCA9IFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKTsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKGdtdCk7CisgICAgICAgIC8qCisgICAgICAgICAgQ2hhbmdlb3ZlciAtNyBkYXlzOiAxNTgyLzkvMjggZG93PTYKKyAgICAgICAgICBDaGFuZ2VvdmVyIC02IGRheXM6IDE1ODIvOS8yOSBkb3c9NworICAgICAgICAgIENoYW5nZW92ZXIgLTUgZGF5czogMTU4Mi85LzMwIGRvdz0xCisgICAgICAgICAgQ2hhbmdlb3ZlciAtNCBkYXlzOiAxNTgyLzEwLzEgZG93PTIKKyAgICAgICAgICBDaGFuZ2VvdmVyIC0zIGRheXM6IDE1ODIvMTAvMiBkb3c9MworICAgICAgICAgIENoYW5nZW92ZXIgLTIgZGF5czogMTU4Mi8xMC8zIGRvdz00CisgICAgICAgICAgQ2hhbmdlb3ZlciAtMSBkYXlzOiAxNTgyLzEwLzQgZG93PTUKKyAgICAgICAgICBDaGFuZ2VvdmVyICswIGRheXM6IDE1ODIvMTAvMTUgZG93PTYKKyAgICAgICAgICBDaGFuZ2VvdmVyICsxIGRheXM6IDE1ODIvMTAvMTYgZG93PTcKKyAgICAgICAgICBDaGFuZ2VvdmVyICsyIGRheXM6IDE1ODIvMTAvMTcgZG93PTEKKyAgICAgICAgICBDaGFuZ2VvdmVyICszIGRheXM6IDE1ODIvMTAvMTggZG93PTIKKyAgICAgICAgICBDaGFuZ2VvdmVyICs0IGRheXM6IDE1ODIvMTAvMTkgZG93PTMKKyAgICAgICAgICBDaGFuZ2VvdmVyICs1IGRheXM6IDE1ODIvMTAvMjAgZG93PTQKKyAgICAgICAgICBDaGFuZ2VvdmVyICs2IGRheXM6IDE1ODIvMTAvMjEgZG93PTUKKyAgICAgICAgICBDaGFuZ2VvdmVyICs3IGRheXM6IDE1ODIvMTAvMjIgZG93PTYKKyAgICAgICAgICAqLworICAgICAgICBpbnQgTU9OW10gPSB7ICA5LCAgOSwgIDksMTAsMTAsMTAsMTAsIDEwLCAxMCwgMTAsIDEwLCAxMCwgMTAsIDEwLCAxMCB9OworICAgICAgICBpbnQgRE9NW10gPSB7IDI4LCAyOSwgMzAsIDEsIDIsIDMsIDQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiB9OworICAgICAgICBpbnQgRE9XW10gPSB7ICA2LCAgNywgIDEsIDIsIDMsIDQsIDUsICA2LCAgNywgIDEsICAyLCAgMywgIDQsICA1LCAgNiB9OworICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIDwtQ2hhbmdlb3ZlciBGcmkgT2N0IDE1IDE1ODIKKyAgICAgICAgaW50IGo9MDsKKyAgICAgICAgZm9yIChpbnQgaT0tNzsgaTw9NzsgKytpLCArK2opIHsKKyAgICAgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKGNvLmdldFRpbWUoKSArIGkqT05FX0RBWSk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShkKTsKKyAgICAgICAgICAgIGludCB5ID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKSwgbW9uID0gY2FsLmdldChDYWxlbmRhci5NT05USCkrMS1DYWxlbmRhci5KQU5VQVJZLAorICAgICAgICAgICAgICAgIGRvbSA9IGNhbC5nZXQoQ2FsZW5kYXIuREFURSksIGRvdyA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUspOworICAgICAgICAgICAgbG9nbG4oIkNoYW5nZW92ZXIgIiArIChpPj0wPyIrIjoiIikgKworICAgICAgICAgICAgICAgICAgaSArICIgZGF5czogIiArIHkgKyAiLyIgKyBtb24gKyAiLyIgKyBkb20gKyAiIGRvdz0iICsgZG93KTsKKyAgICAgICAgICAgIGlmICh5ICE9IDE1ODIgfHwgbW9uICE9IE1PTltqXSB8fCBkb20gIT0gRE9NW2pdIHx8IGRvdyAhPSBET1dbal0pCisgICAgICAgICAgICAgICAgZXJybG4oIiBGYWlsOiBBYm92ZSBsaW5lIGlzIHdyb25nIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBtYXBwaW5nIGJldHdlZW4gbWlsbGlzIGFuZCBmaWVsZHMuICBGb3IgdGhlIHB1cnBvc2VzCisgICAgICogb2YgdGhpcyB0ZXN0LCB3ZSBkb24ndCBjYXJlIGFib3V0IHRpbWV6b25lcyBhbmQgd2VlayBkYXRhCisgICAgICogKGZpcnN0IGRheSBvZiB3ZWVrLCBtaW5pbWFsIGRheXMgaW4gZmlyc3Qgd2VlaykuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE1hcHBpbmcoKSB7CisgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgRGF0ZSBQVVJFX0dSRUdPUklBTiA9IG5ldyBEYXRlKExvbmcuTUlOX1ZBTFVFKTsKKyAgICAgICAgICAgIERhdGUgUFVSRV9KVUxJQU4gPSBuZXcgRGF0ZShMb25nLk1BWF9WQUxVRSk7CisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPQorICAgICAgICAgICAgICAgIG5ldyBHcmVnb3JpYW5DYWxlbmRhcihUaW1lWm9uZS5nZXRUaW1lWm9uZSgiVVRDIikpOworICAgICAgICAgICAgZmluYWwgaW50IEVQT0NIX0pVTElBTiA9IDI0NDA1ODg7CisgICAgICAgICAgICBmaW5hbCBsb25nIE9ORV9EQVkgPSAyNCo2MCo2MCoxMDAwTDsKKyAgICAgICAgICAgIGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPQorICAgICAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQoIkVFRSBNTU0gZGQgeXl5eSBHIik7CisgICAgICAgICAgICAgICAgLypISDptbTpzcy5TU1MgeiovCisKKyAgICAgICAgICAgIGZvciAoaW50IHR5cGU9MDsgdHlwZTwyOyArK3R5cGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odHlwZT09MCA/ICJHcmVnb3JpYW4iIDogIkp1bGlhbiIpOworICAgICAgICAgICAgICAgIGNhbC5zZXRHcmVnb3JpYW5DaGFuZ2UodHlwZT09MCA/IFBVUkVfR1JFR09SSUFOIDogUFVSRV9KVUxJQU4pOworICAgICAgICAgICAgICAgIGZtdC5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICAgICAgICAgIGludFtdIEogPSB7CisgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRkYsCisgICAgICAgICAgICAgICAgICAgIDB4N0ZGRkZGRjAsCisgICAgICAgICAgICAgICAgICAgIDB4N0YwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4NzgwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4NzAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4NjAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4NTAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4MzAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwMDAsCisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Si5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBsaW0gPSBuZXcgU3RyaW5nWzJdOworICAgICAgICAgICAgICAgICAgICBsb25nW10gbXMgPSBuZXcgbG9uZ1syXTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGpkID0gSltpXTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgc2lnbj0wOyBzaWduPDI7ICsrc2lnbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGp1bGlhbiA9IGpkOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNpZ249PTApIGp1bGlhbiA9IC1qdWxpYW47CisgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1pbGxpcyA9ICgobG9uZylqdWxpYW4gLSBFUE9DSF9KVUxJQU4pICogT05FX0RBWTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1zW3NpZ25dID0gbWlsbGlzOworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUobWlsbGlzKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW1bc2lnbl0gPSBmbXQuZm9ybWF0KGNhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSkQgKy8tIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb25nLnRvU3RyaW5nKGpkLCAxNikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjogIiArIG1zWzBdICsgIi4uIiArIG1zWzFdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6ICIgKyBsaW1bMF0gKyAiLi4iICsgbGltWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBUaW1lWm9uZSBzYXZlWm9uZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoVGltZVpvbmUuZ2V0VGltZVpvbmUoIlVUQyIpKTsKKyAgICAgICAgICAgIC8vTkVXQ0FMCisgICAgICAgICAgICBEYXRlIFBVUkVfR1JFR09SSUFOID0gbmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpOworICAgICAgICAgICAgRGF0ZSBQVVJFX0pVTElBTiA9IG5ldyBEYXRlKExvbmcuTUFYX1ZBTFVFKTsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAgICAgZmluYWwgaW50IEVQT0NIX0pVTElBTiA9IDI0NDA1ODg7CisgICAgICAgICAgICBmaW5hbCBsb25nIE9ORV9EQVkgPSAyNCo2MCo2MCoxMDAwTDsKKyAgICAgICAgICAgIGludFtdIERBVEEgPSB7CisgICAgICAgICAgICAgICAgLy8gSnVsaWFuIyAgIFllYXIgIE1vbnRoICAgICAgICAgICAgICAgRE9NICAgSlVMSUFOOlllYXIsIE1vbnRoLCAgICAgICBET00KKyAgICAgICAgICAgICAgICAyNDQwNTg4LCAgICAgMTk3MCwgQ2FsZW5kYXIuSkFOVUFSWSwgICAxLCAgICAxOTY5LCBDYWxlbmRhci5ERUNFTUJFUiwgIDE5LCAKKyAgICAgICAgICAgICAgICAyNDE1MDgwLCAgICAgMTkwMCwgQ2FsZW5kYXIuTUFSQ0gsICAgICAxLCAgICAxOTAwLCBDYWxlbmRhci5GRUJSVUFSWSwgIDE3LAorICAgICAgICAgICAgICAgIDI0NTE2MDQsICAgICAyMDAwLCBDYWxlbmRhci5GRUJSVUFSWSwgIDI5LCAgIDIwMDAsIENhbGVuZGFyLkZFQlJVQVJZLCAgMTYsCisgICAgICAgICAgICAgICAgMjQ1MjI2OSwgICAgIDIwMDEsIENhbGVuZGFyLkRFQ0VNQkVSLCAgMjUsICAgMjAwMSwgQ2FsZW5kYXIuREVDRU1CRVIsICAxMiwKKyAgICAgICAgICAgICAgICAyNDE2NTI2LCAgICAgMTkwNCwgQ2FsZW5kYXIuRkVCUlVBUlksICAxNSwgICAxOTA0LCBDYWxlbmRhci5GRUJSVUFSWSwgIDIsCisgICAgICAgICAgICAgICAgMjQxNjY1NiwgICAgIDE5MDQsIENhbGVuZGFyLkpVTkUsICAgICAgMjQsICAgMTkwNCwgQ2FsZW5kYXIuSlVORSwgICAgICAxMSwKKyAgICAgICAgICAgICAgICAxNzIxNDI2LCAgICAgICAgMSwgQ2FsZW5kYXIuSkFOVUFSWSwgICAxLCAgICAgICAxLCBDYWxlbmRhci5KQU5VQVJZLCAgIDMsCisgICAgICAgICAgICAgICAgMjAwMDAwMCwgICAgICA3NjMsIENhbGVuZGFyLlNFUFRFTUJFUiwgMTgsICAgIDc2MywgQ2FsZW5kYXIuU0VQVEVNQkVSLCAxNCwKKyAgICAgICAgICAgICAgICA0MDAwMDAwLCAgICAgNjIzOSwgQ2FsZW5kYXIuSlVMWSwgICAgICAxMiwgICA2MjM5LCBDYWxlbmRhci5NQVksICAgICAgIDI4LAorICAgICAgICAgICAgICAgIDgwMDAwMDAsICAgIDE3MTkxLCBDYWxlbmRhci5GRUJSVUFSWSwgIDI2LCAgMTcxOTAsIENhbGVuZGFyLk9DVE9CRVIsICAgMjIsCisgICAgICAgICAgICAgICAgMTAwMDAwMDAsICAgMjI2NjYsIENhbGVuZGFyLkRFQ0VNQkVSLCAgMjAsICAyMjY2NiwgQ2FsZW5kYXIuSlVMWSwgICAgICA1LAorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9NykgeworICAgICAgICAgICAgICAgIGludCBqdWxpYW4gPSBEQVRBW2ldOworICAgICAgICAgICAgICAgIGludCB5ZWFyID0gREFUQVtpKzFdOworICAgICAgICAgICAgICAgIGludCBtb250aCA9IERBVEFbaSsyXTsKKyAgICAgICAgICAgICAgICBpbnQgZG9tID0gREFUQVtpKzNdOworICAgICAgICAgICAgICAgIGludCB5ZWFyMiwgbW9udGgyLCBkb20yOworICAgICAgICAgICAgICAgIGxvbmcgbWlsbGlzID0gKGp1bGlhbiAtIEVQT0NIX0pVTElBTikgKiBPTkVfREFZOworICAgICAgICAgICAgICAgIFN0cmluZyBzOworCisgICAgICAgICAgICAgICAgLy8gVGVzdCBHcmVnb3JpYW4gY29tcHV0YXRpb24KKyAgICAgICAgICAgICAgICBjYWwuc2V0R3JlZ29yaWFuQ2hhbmdlKFBVUkVfR1JFR09SSUFOKTsKKyAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KHllYXIsIG1vbnRoLCBkb20pOworICAgICAgICAgICAgICAgIGxvbmcgY2FsTWlsbGlzID0gY2FsLmdldFRpbWUoKS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgbG9uZyBkZWx0YSA9IGNhbE1pbGxpcyAtIG1pbGxpczsKKyAgICAgICAgICAgICAgICBjYWwuc2V0VGltZShuZXcgRGF0ZShtaWxsaXMpKTsKKyAgICAgICAgICAgICAgICB5ZWFyMiA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgICAgICAgICAgbW9udGgyID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgICAgICAgICAgZG9tMiA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgICAgICBzID0gIkcgIiArIHllYXIgKyAiLSIgKyAobW9udGgrMS1DYWxlbmRhci5KQU5VQVJZKSArICItIiArIGRvbSArCisgICAgICAgICAgICAgICAgICAgICIgPT4gIiArIGNhbE1pbGxpcyArCisgICAgICAgICAgICAgICAgICAgICIgKCIgKyAoKGZsb2F0KWRlbHRhL09ORV9EQVkpICsgIiBkYXkgZGVsdGEpID0+ICIgKworICAgICAgICAgICAgICAgICAgICB5ZWFyMiArICItIiArIChtb250aDIrMS1DYWxlbmRhci5KQU5VQVJZKSArICItIiArIGRvbTI7CisgICAgICAgICAgICAgICAgaWYgKGRlbHRhICE9IDAgfHwgeWVhciAhPSB5ZWFyMiB8fCBtb250aCAhPSBtb250aDIgfHwKKyAgICAgICAgICAgICAgICAgICAgZG9tICE9IGRvbTIpIGVycmxuKHMgKyAiIEZBSUwiKTsKKyAgICAgICAgICAgICAgICBlbHNlIGxvZ2xuKHMpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFRlc3QgSnVsaWFuIGNvbXB1dGF0aW9uCisgICAgICAgICAgICAgICAgeWVhciA9IERBVEFbaSs0XTsKKyAgICAgICAgICAgICAgICBtb250aCA9IERBVEFbaSs1XTsKKyAgICAgICAgICAgICAgICBkb20gPSBEQVRBW2krNl07CisgICAgICAgICAgICAgICAgY2FsLnNldEdyZWdvcmlhbkNoYW5nZShQVVJFX0pVTElBTik7CisgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgY2FsLnNldCh5ZWFyLCBtb250aCwgZG9tKTsKKyAgICAgICAgICAgICAgICBjYWxNaWxsaXMgPSBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICBkZWx0YSA9IGNhbE1pbGxpcyAtIG1pbGxpczsKKyAgICAgICAgICAgICAgICBjYWwuc2V0VGltZShuZXcgRGF0ZShtaWxsaXMpKTsKKyAgICAgICAgICAgICAgICB5ZWFyMiA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgICAgICAgICAgbW9udGgyID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgICAgICAgICAgZG9tMiA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgICAgICBzID0gIkogIiArIHllYXIgKyAiLSIgKyAobW9udGgrMS1DYWxlbmRhci5KQU5VQVJZKSArICItIiArIGRvbSArCisgICAgICAgICAgICAgICAgICAgICIgPT4gIiArIGNhbE1pbGxpcyArCisgICAgICAgICAgICAgICAgICAgICIgKCIgKyAoKGZsb2F0KWRlbHRhL09ORV9EQVkpICsgIiBkYXkgZGVsdGEpID0+ICIgKworICAgICAgICAgICAgICAgICAgICB5ZWFyMiArICItIiArIChtb250aDIrMS1DYWxlbmRhci5KQU5VQVJZKSArICItIiArIGRvbTI7CisgICAgICAgICAgICAgICAgaWYgKGRlbHRhICE9IDAgfHwgeWVhciAhPSB5ZWFyMiB8fCBtb250aCAhPSBtb250aDIgfHwKKyAgICAgICAgICAgICAgICAgICAgZG9tICE9IGRvbTIpIGVycmxuKHMgKyAiIEZBSUwiKTsKKyAgICAgICAgICAgICAgICBlbHNlIGxvZ2xuKHMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTU4MiwgQ2FsZW5kYXIuT0NUT0JFUiwgMTUpOworICAgICAgICAgICAgY2FsLnNldEdyZWdvcmlhbkNoYW5nZSh0ZW1wY2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICBhdXhNYXBwaW5nKGNhbCwgMTU4MiwgQ2FsZW5kYXIuT0NUT0JFUiwgNCk7CisgICAgICAgICAgICBhdXhNYXBwaW5nKGNhbCwgMTU4MiwgQ2FsZW5kYXIuT0NUT0JFUiwgMTUpOworICAgICAgICAgICAgYXV4TWFwcGluZyhjYWwsIDE1ODIsIENhbGVuZGFyLk9DVE9CRVIsIDE2KTsKKyAgICAgICAgICAgIGZvciAoaW50IHk9ODAwOyB5PDMwMDA7IHkrPTErKGludCkoMTAwKk1hdGgucmFuZG9tKCkpKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgbT1DYWxlbmRhci5KQU5VQVJZOyBtPD1DYWxlbmRhci5ERUNFTUJFUjsgKyttKSB7CisgICAgICAgICAgICAgICAgICAgIGF1eE1hcHBpbmcoY2FsLCB5LCBtLCAxNSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlWm9uZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGF1eE1hcHBpbmcoQ2FsZW5kYXIgY2FsLCBpbnQgeSwgaW50IG0sIGludCBkKSB7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KHksIG0sIGQpOworICAgICAgICBsb25nIG1pbGxpcyA9IGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpOworICAgICAgICBjYWwuc2V0VGltZShuZXcgRGF0ZShtaWxsaXMpKTsKKyAgICAgICAgaW50IHllYXIyID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgaW50IG1vbnRoMiA9IGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICBpbnQgZG9tMiA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgaWYgKHkgIT0geWVhcjIgfHwgbSAhPSBtb250aDIgfHwgZG9tMiAhPSBkKQorICAgICAgICAgICAgZXJybG4oIlJvdW5kLXRyaXAgZmFpbHVyZTogIiArIHkgKyAiLSIgKyAobSsxKSArICItIitkKyIgPT5tcz0+ICIgKworICAgICAgICAgICAgICAgICAgeWVhcjIgKyAiLSIgKyAobW9udGgyKzEpICsgIi0iICsgZG9tMik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdlbmVyaWNBUEkoKSB7CisgICAgICAgIC8vIG5vdCB1c2VkIFN0cmluZyBzdHI7CisKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIHRlbXBjYWwgPSBqYXZhLnV0aWwuQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTkwLCBDYWxlbmRhci5BUFJJTCwgMTUpOworICAgICAgICBEYXRlIHdoZW4gPSB0ZW1wY2FsLmdldFRpbWUoKTsKKworICAgICAgICBTdHJpbmcgdHppZCA9ICJUZXN0Wm9uZSI7CisgICAgICAgIGludCB0em9mZnNldCA9IDEyMzQwMDsKKworICAgICAgICBTaW1wbGVUaW1lWm9uZSB6b25lID0gbmV3IFNpbXBsZVRpbWVab25lKHR6b2Zmc2V0LCB0emlkKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gKENhbGVuZGFyKUNhbGVuZGFyLmdldEluc3RhbmNlKChTaW1wbGVUaW1lWm9uZSl6b25lLmNsb25lKCkpOworCisgICAgICAgIGlmICghem9uZS5lcXVhbHMoY2FsLmdldFRpbWVab25lKCkpKSBlcnJsbigiRkFJTDogQ2FsZW5kYXIuZ2V0VGltZVpvbmUgZmFpbGVkIik7CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsMiA9IENhbGVuZGFyLmdldEluc3RhbmNlKGNhbC5nZXRUaW1lWm9uZSgpKTsKKworICAgICAgICBjYWwuc2V0VGltZSh3aGVuKTsKKyAgICAgICAgY2FsMi5zZXRUaW1lKHdoZW4pOworCisgICAgICAgIGlmICghKGNhbC5lcXVhbHMoY2FsMikpKSBlcnJsbigiRkFJTDogQ2FsZW5kYXIub3BlcmF0b3I9PSBmYWlsZWQiKTsKKyAgICAgICAgLy8gaWYgKCgqY2FsICE9ICpjYWwyKSkgIGVycmxuKCJGQUlMOiBDYWxlbmRhci5vcGVyYXRvciE9IGZhaWxlZCIpOworICAgICAgICBpZiAoIWNhbC5lcXVhbHMoY2FsMikgfHwKKyAgICAgICAgICAgIGNhbC5iZWZvcmUoY2FsMikgfHwKKyAgICAgICAgICAgIGNhbC5hZnRlcihjYWwyKSkgZXJybG4oIkZBSUw6IGVxdWFscy9iZWZvcmUvYWZ0ZXIgZmFpbGVkIik7CisKKyAgICAgICAgY2FsMi5zZXRUaW1lKG5ldyBEYXRlKHdoZW4uZ2V0VGltZSgpICsgMTAwMCkpOworICAgICAgICBpZiAoY2FsLmVxdWFscyhjYWwyKSB8fAorICAgICAgICAgICAgY2FsMi5iZWZvcmUoY2FsKSB8fAorICAgICAgICAgICAgY2FsLmFmdGVyKGNhbDIpKSBlcnJsbigiRkFJTDogZXF1YWxzL2JlZm9yZS9hZnRlciBmYWlsZWQiKTsKKworICAgICAgICBjYWwucm9sbChDYWxlbmRhci5TRUNPTkQsIHRydWUpOworICAgICAgICBpZiAoIWNhbC5lcXVhbHMoY2FsMikgfHwKKyAgICAgICAgICAgIGNhbC5iZWZvcmUoY2FsMikgfHwKKyAgICAgICAgICAgIGNhbC5hZnRlcihjYWwyKSkgZXJybG4oIkZBSUw6IGVxdWFscy9iZWZvcmUvYWZ0ZXIgZmFpbGVkIik7CisKKyAgICAgICAgLy8gUm9sbCBiYWNrIHRvIEphbnVhcnkKKyAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuTU9OVEgsIChpbnQpKDEgKyBDYWxlbmRhci5ERUNFTUJFUiAtIGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKSk7CisgICAgICAgIGlmIChjYWwuZXF1YWxzKGNhbDIpIHx8CisgICAgICAgICAgICBjYWwyLmJlZm9yZShjYWwpIHx8CisgICAgICAgICAgICBjYWwuYWZ0ZXIoY2FsMikpIGVycmxuKCJGQUlMOiBlcXVhbHMvYmVmb3JlL2FmdGVyIGZhaWxlZCIpOworCisgICAgICAgIC8vIEMrKyBvbmx5CisgICAgICAgIC8qIFRpbWVab25lIHogPSBjYWwub3JwaGFuVGltZVpvbmUoKTsKKyAgICAgICAgICAgaWYgKHouZ2V0SUQoc3RyKSAhPSB0emlkIHx8CisgICAgICAgICAgIHouZ2V0UmF3T2Zmc2V0KCkgIT0gdHpvZmZzZXQpCisgICAgICAgICAgIGVycmxuKCJGQUlMOiBvcnBoYW5UaW1lWm9uZSBmYWlsZWQiKTsKKyAgICAgICAgICAgKi8KKworICAgICAgICBmb3IgKGludCBpPTA7IGk8MjsgKytpKSB7CisgICAgICAgICAgICBib29sZWFuIGxlbmllbnQgPSAoIGkgPiAwICk7CisgICAgICAgICAgICBjYWwuc2V0TGVuaWVudChsZW5pZW50KTsKKyAgICAgICAgICAgIGlmIChsZW5pZW50ICE9IGNhbC5pc0xlbmllbnQoKSkgZXJybG4oIkZBSUw6IHNldExlbmllbnQvaXNMZW5pZW50IGZhaWxlZCIpOworICAgICAgICAgICAgLy8gTGF0ZXI6IENoZWNrIGZvciBsZW5pZW50IGJlaGF2aW9yCisgICAgICAgIH0KKworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpPUNhbGVuZGFyLlNVTkRBWTsgaTw9Q2FsZW5kYXIuU0FUVVJEQVk7ICsraSkgeworICAgICAgICAgICAgY2FsLnNldEZpcnN0RGF5T2ZXZWVrKGkpOworICAgICAgICAgICAgaWYgKGNhbC5nZXRGaXJzdERheU9mV2VlaygpICE9IGkpIGVycmxuKCJGQUlMOiBzZXQvZ2V0Rmlyc3REYXlPZldlZWsgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGk9MTsgaTw9NzsgKytpKSB7CisgICAgICAgICAgICBjYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhpKTsKKyAgICAgICAgICAgIGlmIChjYWwuZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpICE9IGkpIGVycmxuKCJGQUlMOiBzZXQvZ2V0Rmlyc3REYXlPZldlZWsgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGk9MDsgaTxjYWwuZ2V0RmllbGRDb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChjYWwuZ2V0TWluaW11bShpKSAhPSBjYWwuZ2V0R3JlYXRlc3RNaW5pbXVtKGkpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRNaW5pbXVtIGRvZXNuJ3QgbWF0Y2ggZ2V0R3JlYXRlc3RNaW5pbXVtIGZvciBmaWVsZCAiICsgaSk7CisgICAgICAgICAgICBpZiAoY2FsLmdldExlYXN0TWF4aW11bShpKSA+IGNhbC5nZXRNYXhpbXVtKGkpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRMZWFzdE1heGltdW0gbGFyZ2VyIHRoYW4gZ2V0TWF4aW11bSBmb3IgZmllbGQgIiArIGkpOworICAgICAgICAgICAgaWYgKGNhbC5nZXRNaW5pbXVtKGkpID49IGNhbC5nZXRNYXhpbXVtKGkpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRNaW5pbXVtIG5vdCBsZXNzIHRoYW4gZ2V0TWF4aW11bSBmb3IgZmllbGQgIiArIGkpOworICAgICAgICB9CisKKyAgICAgICAgY2FsLnNldFRpbWVab25lKFRpbWVab25lLmdldERlZmF1bHQoKSk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5ODQsIDUsIDI0KTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTg0LCA1LCAyNCk7CisgICAgICAgIGlmIChjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSAhPSB0ZW1wY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDYWxlbmRhci5zZXQoMyBhcmdzKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgR290OiAiICsgY2FsLmdldFRpbWUoKSArICIgIEV4cGVjdGVkOiAiICsgdGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICB9CisKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk4NSwgMywgMiwgMTEsIDQ5KTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTg1LCAzLCAyLCAxMSwgNDkpOworICAgICAgICBpZiAoY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgIT0gdGVtcGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FsZW5kYXIuc2V0KDUgYXJncykgZmFpbGVkIik7CisgICAgICAgICAgICBsb2dsbigiIEdvdDogIiArIGNhbC5nZXRUaW1lKCkgKyAiICBFeHBlY3RlZDogIiArIHRlbXBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5OTUsIDksIDEyLCAxLCAzOSwgNTUpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTUsIDksIDEyLCAxLCAzOSwgNTUpOworICAgICAgICBpZiAoY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgIT0gdGVtcGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FsZW5kYXIuc2V0KDYgYXJncykgZmFpbGVkIik7CisgICAgICAgICAgICBsb2dsbigiIEdvdDogIiArIGNhbC5nZXRUaW1lKCkgKyAiICBFeHBlY3RlZDogIiArIHRlbXBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhbC5nZXRUaW1lKCk7CisgICAgICAgIC8vIFRoaXMgdGVzdCBpcyBzdHJhbmdlIC0tIHdoeSBkbyB3ZSBleHBlY3QgY2VydGFpbiBmaWVsZHMgdG8gYmUgc2V0LCBhbmQKKyAgICAgICAgLy8gb3RoZXJzIG5vdCB0byBiZT8gIFJldmlzaXQgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB0aGlzLiAgLSBBbGFuIE5FV0NBTAorICAgICAgICBmb3IgKGk9MDsgaTxjYWwuZ2V0RmllbGRDb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgIHN3aXRjaChpKSB7CisgICAgICAgICAgICBjYXNlIENhbGVuZGFyLllFQVI6IGNhc2UgQ2FsZW5kYXIuTU9OVEg6IGNhc2UgQ2FsZW5kYXIuREFURToKKyAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXIuSE9VUl9PRl9EQVk6IGNhc2UgQ2FsZW5kYXIuTUlOVVRFOiBjYXNlIENhbGVuZGFyLlNFQ09ORDoKKyAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXIuRVhURU5ERURfWUVBUjoKKyAgICAgICAgICAgICAgICBpZiAoIWNhbC5pc1NldChpKSkgZXJybG4oIkZBSUw6ICIgKyBGSUVMRF9OQU1FW2ldICsgIiBpcyBub3Qgc2V0Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGlmIChjYWwuaXNTZXQoaSkpIGVycmxuKCJGQUlMOiAiICsgRklFTERfTkFNRVtpXSArICIgaXMgc2V0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWwuY2xlYXIoaSk7CisgICAgICAgICAgICBpZiAoY2FsLmlzU2V0KGkpKSBlcnJsbigiRkFJTDogQ2FsZW5kYXIuY2xlYXIvaXNTZXQgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBkZWxldGUgY2FsOworICAgICAgICAvLyBkZWxldGUgY2FsMjsKKworICAgICAgICBMb2NhbGVbXSBsb2MgPSBDYWxlbmRhci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGxvbmcgY291bnQgPSBsb2MubGVuZ3RoOworICAgICAgICBpZiAoY291bnQgPCAxIHx8IGxvYyA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0QXZhaWxhYmxlTG9jYWxlcyBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShsb2NbaV0pOworICAgICAgICAgICAgICAgIC8vIGRlbGV0ZSBjYWw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShUaW1lWm9uZS5nZXREZWZhdWx0KCksIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgLy8gZGVsZXRlIGNhbDsKKworICAgICAgICBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSh6b25lLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIC8vIGRlbGV0ZSBjYWw7CisKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoem9uZSk7CisgICAgICAgIC8vIGRlbGV0ZSBnYzsKKworICAgICAgICBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIC8vIGRlbGV0ZSBnYzsKKworICAgICAgICBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIC8vIGRlbGV0ZSBnYzsKKworICAgICAgICBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih6b25lLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIC8vIGRlbGV0ZSBnYzsKKworICAgICAgICBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih6b25lKTsKKyAgICAgICAgLy8gZGVsZXRlIGdjOworCisgICAgICAgIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5OTgsIDEwLCAxNCwgMjEsIDQzKTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCAxMCwgMTQsIDIxLCA0Myk7CisgICAgICAgIGlmIChnYy5nZXRUaW1lKCkuZ2V0VGltZSgpICE9IHRlbXBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoeW1kaG0pIGZhaWxlZCIpOworICAgICAgICAvLyBkZWxldGUgZ2M7CisKKyAgICAgICAgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5OCwgMTAsIDE0LCAyMSwgNDMsIDU1KTsKKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LCAxMCwgMTQsIDIxLCA0MywgNTUpOworICAgICAgICBpZiAoZ2MuZ2V0VGltZSgpLmdldFRpbWUoKSAhPSB0ZW1wY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHltZGhtcykgZmFpbGVkIik7CisKKyAgICAgICAgLy8gQysrIG9ubHk6CisgICAgICAgIC8vIEdyZWdvcmlhbkNhbGVuZGFyIGdjMiA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIC8vIGdjMiA9IGdjOworICAgICAgICAvLyBpZiAoZ2MyICE9IGdjIHx8ICEoZ2MyID09IGdjKSkgZXJybG4oIkZBSUw6IEdyZWdvcmlhbkNhbGVuZGFyIGFzc2lnbm1lbnQvb3BlcmF0b3I9PS9vcGVyYXRvciE9IGZhaWxlZCIpOworICAgICAgICAvLyBkZWxldGUgZ2M7CisgICAgICAgIC8vIGRlbGV0ZSB6OworICAgIH0KKworICAgIC8vIFZlcmlmeSBSb2dlciBXZWJzdGVyJ3MgYnVnCisgICAgcHVibGljIHZvaWQgVGVzdFJvZygpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKworICAgICAgICBpbnQgeWVhciA9IDE5OTcsIG1vbnRoID0gQ2FsZW5kYXIuQVBSSUwsIGRhdGUgPSAxOworICAgICAgICBnYy5zZXQoeWVhciwgbW9udGgsIGRhdGUpOyAvLyBBcHJpbCAxLCAxOTk3CisKKyAgICAgICAgZ2Muc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAyMyk7CisgICAgICAgIGdjLnNldChDYWxlbmRhci5NSU5VVEUsIDApOworICAgICAgICBnYy5zZXQoQ2FsZW5kYXIuU0VDT05ELCAwKTsKKyAgICAgICAgZ2Muc2V0KENhbGVuZGFyLk1JTExJU0VDT05ELCAwKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDk7IGkrKywgZ2MuYWRkKENhbGVuZGFyLkRBVEUsIDEpKSB7CisgICAgICAgICAgICBpZiAoZ2MuZ2V0KENhbGVuZGFyLllFQVIpICE9IHllYXIgfHwKKyAgICAgICAgICAgICAgICBnYy5nZXQoQ2FsZW5kYXIuTU9OVEgpICE9IG1vbnRoIHx8CisgICAgICAgICAgICAgICAgZ2MuZ2V0KENhbGVuZGFyLkRBVEUpICE9IChkYXRlICsgaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IERhdGUgIiArIGdjLmdldFRpbWUoKSArICIgd3JvbmciKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFZlcmlmeSBEQVlfT0ZfV0VFSworICAgIHB1YmxpYyB2b2lkIFRlc3RET1c5NDMoKSB7CisgICAgICAgIGRvd1Rlc3QoZmFsc2UpOworICAgICAgICBkb3dUZXN0KHRydWUpOworICAgIH0KKworICAgIHZvaWQgZG93VGVzdChib29sZWFuIGxlbmllbnQpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuQVVHVVNULCAxMik7IC8vIFdlZG5lc2RheQorICAgICAgICBjYWwuZ2V0VGltZSgpOyAvLyBGb3JjZSB1cGRhdGUKKyAgICAgICAgY2FsLnNldExlbmllbnQobGVuaWVudCk7CisgICAgICAgIGNhbC5zZXQoMTk5NiwgQ2FsZW5kYXIuREVDRU1CRVIsIDEpOyAvLyBTZXQgdGhlIGRhdGUgdG8gYmUgRGVjZW1iZXIgMSwgMTk5NgorICAgICAgICBpbnQgZG93ID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBtaW4gPSBjYWwuZ2V0TWluaW11bShDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBtYXggPSBjYWwuZ2V0TWF4aW11bShDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGlmIChkb3cgPCBtaW4gfHwgZG93ID4gbWF4KSBlcnJsbigiRkFJTDogRGF5IG9mIHdlZWsgIiArIGRvdyArICIgb3V0IG9mIHJhbmdlIik7CisgICAgICAgIGlmIChkb3cgIT0gQ2FsZW5kYXIuU1VOREFZKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDI6IERheSBvZiB3ZWVrIHNob3VsZCBiZSBTVU5EQVk7IGlzICIgKyBkb3cgKyAiOiAiICsgY2FsLmdldFRpbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1pbiAhPSBDYWxlbmRhci5TVU5EQVkgfHwgbWF4ICE9IENhbGVuZGFyLlNBVFVSREFZKSBlcnJsbigiRkFJTDogTWluL21heCBiYWQiKTsKKyAgICB9CisKKyAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY2xvbmUgbWV0aG9kIHByb2R1Y2VzIGRpc3RpbmN0IG9iamVjdHMgd2l0aCBubworICAgIC8vIHVuaW50ZW50aW9uYWxseSBzaGFyZWQgZmllbGRzLgorICAgIHB1YmxpYyB2b2lkIFRlc3RDbG9uZXNVbmlxdWU5MDgoKSB7CisgICAgICAgIENhbGVuZGFyIGMgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBDYWxlbmRhciBkID0gKENhbGVuZGFyKWMuY2xvbmUoKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDEyMyk7CisgICAgICAgIGQuc2V0KENhbGVuZGFyLk1JTExJU0VDT05ELCA0NTYpOworICAgICAgICBpZiAoYy5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpICE9IDEyMyB8fAorICAgICAgICAgICAgZC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpICE9IDQ1NikgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENsb25lcyBzaGFyZSBmaWVsZHMiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFZlcmlmeSBlZmZlY3Qgb2YgR3JlZ29yaWFuIGN1dG9mZiB2YWx1ZQorICAgIHB1YmxpYyB2b2lkIFRlc3RHcmVnb3JpYW5DaGFuZ2U3NjgoKSB7CisgICAgICAgIGJvb2xlYW4gYjsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBsb2dsbigiV2l0aCBjdXRvZmYgIiArIGMuZ2V0R3JlZ29yaWFuQ2hhbmdlKCkpOworICAgICAgICBsb2dsbigiIGlzTGVhcFllYXIoMTgwMCkgPSAiICsgKGI9Yy5pc0xlYXBZZWFyKDE4MDApKSk7CisgICAgICAgIGxvZ2xuKCIgKHNob3VsZCBiZSBGQUxTRSkiKTsKKyAgICAgICAgaWYgKGIgIT0gZmFsc2UpIGVycmxuKCJGQUlMIik7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTkwMCwgMCwgMSk7CisgICAgICAgIGMuc2V0R3JlZ29yaWFuQ2hhbmdlKHRlbXBjYWwuZ2V0VGltZSgpKTsgLy8gSmFuIDEgMTkwMAorICAgICAgICBsb2dsbigiV2l0aCBjdXRvZmYgIiArIGMuZ2V0R3JlZ29yaWFuQ2hhbmdlKCkpOworICAgICAgICBsb2dsbigiIGlzTGVhcFllYXIoMTgwMCkgPSAiICsgKGI9Yy5pc0xlYXBZZWFyKDE4MDApKSk7CisgICAgICAgIGxvZ2xuKCIgKHNob3VsZCBiZSBUUlVFKSIpOworICAgICAgICBpZiAoYiAhPSB0cnVlKSBlcnJsbigiRkFJTCIpOworICAgIH0KKworICAgIC8vIFRlc3QgdGhlIGNvcnJlY3QgYmVoYXZpb3Igb2YgdGhlIGRpc2FtYmlndWF0aW9uIGFsZ29yaXRobS4KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGlzYW1iaWd1YXRpb243NjUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgQ2FsZW5kYXIgYyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGMuc2V0TGVuaWVudChmYWxzZSk7CisKKyAgICAgICAgYy5jbGVhcigpOworICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkpVTkUpOworICAgICAgICBjLnNldChDYWxlbmRhci5EQVRFLCAzKTsKKworICAgICAgICB2ZXJpZnk3NjUoIjE5OTcgdGhpcmQgZGF5IG9mIEp1bmUgPSAiLCBjLCAxOTk3LCBDYWxlbmRhci5KVU5FLCAzKTsKKworICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICBjLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVFVFU0RBWSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgsIDEpOworICAgICAgICB2ZXJpZnk3NjUoIjE5OTcgZmlyc3QgVHVlc2RheSBpbiBKdW5lID0gIiwgYywgMTk5NywgQ2FsZW5kYXIuSlVORSwgMyk7CisKKyAgICAgICAgYy5jbGVhcigpOworICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRVRVNEQVkpOworICAgICAgICBjLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVORSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRILCAtMSk7CisgICAgICAgIHZlcmlmeTc2NSgiMTk5NyBsYXN0IFR1ZXNkYXkgaW4gSnVuZSA9ICIsIGMsIDE5OTcsIENhbGVuZGFyLkpVTkUsIDI0KTsKKworICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5UVUVTREFZKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLX0lOX01PTlRILCAwKTsKKyAgICAgICAgICAgIGMuZ2V0VGltZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGUgPSBleDsKKyAgICAgICAgfQorICAgICAgICB2ZXJpZnk3NjUoIjE5OTcgemVyby10aCBUdWVzZGF5IGluIEp1bmUgPSAiLCBlLCBjKTsKKworICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLllFQVIsIDE5OTcpOworICAgICAgICBjLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVFVFU0RBWSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCwgMSk7CisgICAgICAgIHZlcmlmeTc2NSgiMTk5NyBUdWVzZGF5IGluIHdlZWsgMSBvZiBKdW5lID0gIiwgYywgMTk5NywgQ2FsZW5kYXIuSlVORSwgMyk7CisKKyAgICAgICAgYy5jbGVhcigpOworICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLlRVRVNEQVkpOworICAgICAgICBjLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuSlVORSk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIDUpOworICAgICAgICB2ZXJpZnk3NjUoIjE5OTcgVHVlc2RheSBpbiB3ZWVrIDUgb2YgSnVuZSA9ICIsIGMsIDE5OTcsIENhbGVuZGFyLkpVTFksIDEpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjLmNsZWFyKCk7CisgICAgICAgICAgICBjLnNldChDYWxlbmRhci5ZRUFSLCAxOTk3KTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5UVUVTREFZKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5KVU5FKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIDApOworICAgICAgICAgICAgdmVyaWZ5NzY1KCIxOTk3IFR1ZXNkYXkgaW4gd2VlayAwIG9mIEp1bmUgPSAiLCBjLCAxOTk3LCBDYWxlbmRhci5NQVksIDI3KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhjZXB0aW9uIHNlZW46Iik7CisgICAgICAgICAgICAvLyBleC5wcmludFN0YWNrVHJhY2UobG9nKTsKKyAgICAgICAgfQorCisgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk5Nyk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5UVUVTREFZKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCAxKTsKKyAgICAgICAgdmVyaWZ5NzY1KCIxOTk3IFR1ZXNkYXkgaW4gd2VlayAxIG9mIHllYXIgPSAiLCBjLCAxOTk2LCBDYWxlbmRhci5ERUNFTUJFUiwgMzEpOworCisgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk5Nyk7CisgICAgICAgIGMuc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBDYWxlbmRhci5UVUVTREFZKTsKKyAgICAgICAgYy5zZXQoQ2FsZW5kYXIuV0VFS19PRl9ZRUFSLCAxMCk7CisgICAgICAgIHZlcmlmeTc2NSgiMTk5NyBUdWVzZGF5IGluIHdlZWsgMTAgb2YgeWVhciA9ICIsIGMsIDE5OTcsIENhbGVuZGFyLk1BUkNILCA0KTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgYy5jbGVhcigpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk5Nyk7CisgICAgICAgICAgICBjLnNldChDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuVFVFU0RBWSk7CisgICAgICAgICAgICBjLnNldChDYWxlbmRhci5XRUVLX09GX1lFQVIsIDApOworICAgICAgICAgICAgdmVyaWZ5NzY1KCIxOTk3IFR1ZXNkYXkgaW4gd2VlayAwIG9mIHllYXIgPSAiLCBjLCAxOTk2LCBDYWxlbmRhci5ERUNFTUJFUiwgMjQpOworICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiRmFpbDogV0VFS19PRl9ZRUFSIDAgc2hvdWxkIGJlIGlsbGVnYWwiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB2b2lkIHZlcmlmeTc2NShTdHJpbmcgbXNnLCBDYWxlbmRhciBjLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5KSB7CisgICAgICAgIGludCBjeSA9IGMuZ2V0KENhbGVuZGFyLllFQVIpOyAvLyBORVdDQUwKKyAgICAgICAgaW50IGNtID0gYy5nZXQoQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICBpbnQgY2QgPSBjLmdldChDYWxlbmRhci5EQVRFKTsKKyAgICAgICAgaWYgKGN5ID09IHllYXIgJiYKKyAgICAgICAgICAgIGNtID09IG1vbnRoICYmCisgICAgICAgICAgICBjZCA9PSBkYXkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiAiICsgbXNnICsgYy5nZXRUaW1lKCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBtc2cgKyBjeSArICIvIiArIChjbSsxKSArICIvIiArIGNkICsKKyAgICAgICAgICAgICAgICAgICI9IiArIGMuZ2V0VGltZSgpICsKKyAgICAgICAgICAgICAgICAgICI7IGV4cGVjdGVkICIgKworICAgICAgICAgICAgICAgICAgeWVhciArICIvIiArIChtb250aCsxKSArICIvIiArIGRheSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gQ2FsbGVkIHdoZW4gZSBleHBlY3RlZCB0byBiZSBub24tbnVsbAorICAgIHZvaWQgdmVyaWZ5NzY1KFN0cmluZyBtc2csIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlLCBDYWxlbmRhciBjKSB7CisgICAgICAgIGlmIChlID09IG51bGwpIGVycmxuKCJGQUlMOiBObyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZm9yICIgKyBtc2cgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmdldFRpbWUoKSk7CisgICAgICAgIGVsc2UgbG9nbG4oIlBBU1M6ICIgKyBtc2cgKyAiSWxsZWdhbEFyZ3VtZW50IGFzIGV4cGVjdGVkIik7CisgICAgfQorCisgICAgLy8gVGVzdCB0aGUgYmVoYXZpb3Igb2YgR01UIHZzLiBsb2NhbCB0aW1lCisgICAgcHVibGljIHZvaWQgVGVzdEdNVHZzTG9jYWw0MDY0NjU0KCkgeworICAgICAgICAvLyBTYW1wbGUgb3V0cHV0IDE6CisgICAgICAgIC8vICUgL3Vzci9sb2NhbC9qYXZhL2pkazEuMS4zL3NvbGFyaXMvYmluL2phdmEgdGVzdCAxOTk3IDEgMSAxMiAwIDAKKyAgICAgICAgLy8gZGF0ZSA9IFdlZCBKYW4gMDEgMDQ6MDA6MDAgUFNUIDE5OTcKKyAgICAgICAgLy8gb2Zmc2V0IGZvciBXZWQgSmFuIDAxIDA0OjAwOjAwIFBTVCAxOTk3PSAtOGhyCisgICAgICAgIGF1eDQwNjQ2NTQoMTk5NywgMSwgMSwgMTIsIDAsIDApOworCisgICAgICAgIC8vIFNhbXBsZSBvdXRwdXQgMjoKKyAgICAgICAgLy8gJSAvdXNyL2xvY2FsL2phdmEvamRrMS4xLjMvc29sYXJpcy9iaW4vamF2YSB0ZXN0IDE5OTcgNCAxNiAxOCAzMCAwCisgICAgICAgIC8vIGRhdGUgPSBXZWQgQXByIDE2IDEwOjMwOjAwIFBEVCAxOTk3CisgICAgICAgIC8vIG9mZnNldCBmb3IgV2VkIEFwciAxNiAxMDozMDowMCBQRFQgMTk5Nz0gLTdocgorCisgICAgICAgIC8vIE5vdGUgdGhhdCBpbiBzYW1wbGUgb3V0cHV0IDIgYWNjb3JkaW5nIHRvIHRoZSBvZmZzZXQsIHRoZSBnbXQgdGltZQorICAgICAgICAvLyBvZiB0aGUgcmVzdWx0IHdvdWxkIGJlIDE5OTcgNCAxNiAxNyAzMCAwIHdoaWNoIGlzIGRpZmZlcmVudCBmcm9tIHRoZQorICAgICAgICAvLyBpbnB1dCBvZiAxOTk3IDQgMTYgMTggMzAgMC4KKyAgICAgICAgYXV4NDA2NDY1NCgxOTk3LCA0LCAxNiwgMTgsIDMwLCAwKTsKKyAgICB9CisgICAgdm9pZCBhdXg0MDY0NjU0KGludCB5ciwgaW50IG1vLCBpbnQgZHQsIGludCBociwgaW50IG1uLCBpbnQgc2MpIHsKKyAgICAgICAgRGF0ZSBkYXRlOworICAgICAgICBDYWxlbmRhciBnbXRjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBnbXRjYWwuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFmcmljYS9DYXNhYmxhbmNhIikpOworICAgICAgICBnbXRjYWwuc2V0KHlyLCBtby0xLCBkdCwgaHIsIG1uLCBzYyk7CisgICAgICAgIGdtdGNhbC5zZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQsIDApOworCisgICAgICAgIGRhdGUgPSBnbXRjYWwuZ2V0VGltZSgpOworICAgICAgICBsb2dsbigiZGF0ZSA9ICIrZGF0ZSk7CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbHMiKSk7CisgICAgICAgIGNhbC5zZXRUaW1lKGRhdGUpOworCisgICAgICAgIGludCBvZmZzZXQgPSBjYWwuZ2V0VGltZVpvbmUoKS5nZXRPZmZzZXQoY2FsLmdldChDYWxlbmRhci5FUkEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NT05USCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EQVRFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSk7CisKKyAgICAgICAgbG9nbG4oIm9mZnNldCBmb3IgIitkYXRlKyI9ICIrKG9mZnNldC8xMDAwLzYwLzYwLjApICsgImhyIik7CisKKyAgICAgICAgaW50IHV0YyA9ICgoY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgKiA2MCArCisgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSkgKiA2MCArCisgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5TRUNPTkQpKSAqIDEwMDAgKworICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkgLSBvZmZzZXQ7CisKKyAgICAgICAgaW50IGV4cGVjdGVkID0gKChociAqIDYwICsgbW4pICogNjAgKyBzYykgKiAxMDAwOworCisgICAgICAgIGlmICh1dGMgIT0gZXhwZWN0ZWQpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRGlzY3JlcGFuY3kgb2YgIiArCisgICAgICAgICAgICAgICAgICAodXRjIC0gZXhwZWN0ZWQpICsgIiBtaWxsaXMgPSAiICsKKyAgICAgICAgICAgICAgICAgICgodXRjLWV4cGVjdGVkKS8xMDAwLzYwLzYwLjApICsgIiBociIpOworICAgIH0KKworICAgIC8vIFZlcmlmeSB0aGF0IGFkZCBhbmQgc2V0IHdvcmsgcmVnYXJkbGVzcyBvZiB0aGUgb3JkZXIgaW4gd2hpY2gKKyAgICAvLyB0aGV5IGFyZSBjYWxsZWQuCisgICAgcHVibGljIHZvaWQgVGVzdEFkZFNldE9yZGVyNjIxKCkgeworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDQsIDE0LCAxMywgMjMsIDQ1KTsKKyAgICAgICAgRGF0ZSBkID0gdGVtcGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UgKCk7CisgICAgICAgIGNhbC5zZXRUaW1lIChkKTsKKyAgICAgICAgY2FsLmFkZCAoQ2FsZW5kYXIuREFURSwgLTUpOworICAgICAgICBjYWwuc2V0IChDYWxlbmRhci5IT1VSX09GX0RBWSwgMCk7CisgICAgICAgIGNhbC5zZXQgKENhbGVuZGFyLk1JTlVURSwgMCk7CisgICAgICAgIGNhbC5zZXQgKENhbGVuZGFyLlNFQ09ORCwgMCk7CisgICAgICAgIC8vIG1hIGZlYiAwMyAwMDowMDowMCBHTVQrMDA6MDAgMTk5NworICAgICAgICBTdHJpbmcgcyA9IGNhbC5nZXRUaW1lICgpLnRvU3RyaW5nICgpOworCisgICAgICAgIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlICgpOworICAgICAgICBjYWwuc2V0VGltZSAoZCk7CisgICAgICAgIGNhbC5zZXQgKENhbGVuZGFyLkhPVVJfT0ZfREFZLCAwKTsKKyAgICAgICAgY2FsLnNldCAoQ2FsZW5kYXIuTUlOVVRFLCAwKTsKKyAgICAgICAgY2FsLnNldCAoQ2FsZW5kYXIuU0VDT05ELCAwKTsKKyAgICAgICAgY2FsLmFkZCAoQ2FsZW5kYXIuREFURSwgLTUpOworICAgICAgICAvLyBtYSBmZWIgMDMgMTM6MTE6MDYgR01UKzAwOjAwIDE5OTcKKyAgICAgICAgU3RyaW5nIHMyID0gY2FsLmdldFRpbWUgKCkudG9TdHJpbmcgKCk7CisKKyAgICAgICAgaWYgKHMuZXF1YWxzKHMyKSkKKyAgICAgICAgICAgIGxvZ2xuKCJQYXNzOiAiICsgcyArICIgPT0gIiArIHMyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBzICsgIiAhPSAiICsgczIpOworICAgIH0KKworICAgIC8vIFZlcmlmeSB0aGF0IGFkZCB3b3Jrcy4KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWRkNTIwKCkgeworICAgICAgICBpbnQgeSA9IDE5OTcsIG0gPSBDYWxlbmRhci5GRUJSVUFSWSwgZCA9IDE7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIHRlbXAgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoIHksIG0sIGQgKTsKKyAgICAgICAgY2hlY2s1MjAodGVtcCwgeSwgbSwgZCk7CisKKyAgICAgICAgdGVtcC5hZGQoIENhbGVuZGFyLllFQVIsIDEgKTsKKyAgICAgICAgeSsrOworICAgICAgICBjaGVjazUyMCh0ZW1wLCB5LCBtLCBkKTsKKworICAgICAgICB0ZW1wLmFkZCggQ2FsZW5kYXIuTU9OVEgsIDEgKTsKKyAgICAgICAgbSsrOworICAgICAgICBjaGVjazUyMCh0ZW1wLCB5LCBtLCBkKTsKKworICAgICAgICB0ZW1wLmFkZCggQ2FsZW5kYXIuREFURSwgMSApOworICAgICAgICBkKys7CisgICAgICAgIGNoZWNrNTIwKHRlbXAsIHksIG0sIGQpOworCisgICAgICAgIHRlbXAuYWRkKCBDYWxlbmRhci5EQVRFLCAyICk7CisgICAgICAgIGQgKz0gMjsKKyAgICAgICAgY2hlY2s1MjAodGVtcCwgeSwgbSwgZCk7CisKKyAgICAgICAgdGVtcC5hZGQoIENhbGVuZGFyLkRBVEUsIDI4ICk7CisgICAgICAgIGQgPSAxOyArK207CisgICAgICAgIGNoZWNrNTIwKHRlbXAsIHksIG0sIGQpOworICAgIH0KKyAgICB2b2lkIGNoZWNrNTIwKENhbGVuZGFyIGMsIGludCB5LCBpbnQgbSwgaW50IGQpIHsKKyAgICAgICAgaWYgKGMuZ2V0KENhbGVuZGFyLllFQVIpICE9IHkgfHwKKyAgICAgICAgICAgIGMuZ2V0KENhbGVuZGFyLk1PTlRIKSAhPSBtIHx8CisgICAgICAgICAgICBjLmdldChDYWxlbmRhci5EQVRFKSAhPSBkKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTFVSRTogRXhwZWN0ZWQgWUVBUi9NT05USC9EQVRFIG9mICIgKworICAgICAgICAgICAgICAgICAgeSArICIvIiArIChtKzEpICsgIi8iICsgZCArCisgICAgICAgICAgICAgICAgICAiOyBnb3QgIiArCisgICAgICAgICAgICAgICAgICBjLmdldChDYWxlbmRhci5ZRUFSKSArICIvIiArCisgICAgICAgICAgICAgICAgICAoYy5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgIGMuZ2V0KENhbGVuZGFyLkRBVEUpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGxvZ2xuKCJDb25maXJtZWQ6ICIgKworICAgICAgICAgICAgICAgICAgIHkgKyAiLyIgKyAobSsxKSArICIvIiArIGQpOworICAgIH0KKworICAgIC8vIFZlcmlmeSB0aGF0IHNldHRpbmcgZmllbGRzIHdvcmtzLiAgVGhpcyB0ZXN0IGZhaWxzIHdoZW4gYW4gZXhjZXB0aW9uIGlzIHRocm93bi4KKyAgICBwdWJsaWMgdm9pZCBUZXN0RmllbGRTZXQ0NzgxKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZzIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgVVRDIHZhbHVlIGlzIHNldCwgdmFyaW91cyBmaWVsZHMgYXJlIG5vdC4KKyAgICAgICAgICAgIC8vIE5vdyBzZXQgdG8gbm9vbi4KKyAgICAgICAgICAgIGcyLnNldChDYWxlbmRhci5IT1VSLCAxMik7CisgICAgICAgICAgICBnMi5zZXQoQ2FsZW5kYXIuTUlOVVRFLCAwKTsKKyAgICAgICAgICAgIGcyLnNldChDYWxlbmRhci5TRUNPTkQsIDApOworICAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgb2JqZWN0IHRoaW5rcyBVVEMgaXMgTk9UIHNldCwgYnV0IGZpZWxkcyBhcmUgc2V0LgorICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBsaW5lIHdpbGwgcmVzdWx0IGluIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBiZWNhdXNlCisgICAgICAgICAgICAvLyBpdCB0aGlua3MgdGhlIFlFQVIgaXMgc2V0IGFuZCBpdCBpcyBOT1QuCisgICAgICAgICAgICBpZiAoZzIuZXF1YWxzKGcpKQorICAgICAgICAgICAgICAgIGxvZ2xuKCJTYW1lIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbG9nbG4oIkRpZmZlcmVudCIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIHNlZW46ICIgKyBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFRlc3Qgc2VyaWFsaXphdGlvbiBvZiBhIENhbGVuZGFyIG9iamVjdAorICAgIHB1YmxpYyB2b2lkIFRlc3RTZXJpYWxpemUzMzcoKSB7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisKKyAgICAgICAgYm9vbGVhbiBvayA9IGZhbHNlOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gZiA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgIE9iamVjdE91dHB1dCBzID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShmKTsKKyAgICAgICAgICAgIHMud3JpdGVPYmplY3QoUFJFRklYKTsKKyAgICAgICAgICAgIHMud3JpdGVPYmplY3QoY2FsKTsKKyAgICAgICAgICAgIHMud3JpdGVPYmplY3QoUE9TVEZJWCk7CisgICAgICAgICAgICBmLmNsb3NlKCk7CisKKyAgICAgICAgICAgIEJ5dGVBcnJheUlucHV0U3RyZWFtIGluID0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGYudG9CeXRlQXJyYXkoKSk7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSB0ID0gbmV3IE9iamVjdElucHV0U3RyZWFtKGluKTsKKyAgICAgICAgICAgIFN0cmluZyBwcmUgPSAoU3RyaW5nKXQucmVhZE9iamVjdCgpOworICAgICAgICAgICAgQ2FsZW5kYXIgYyA9IChDYWxlbmRhcil0LnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgIFN0cmluZyBwb3N0ID0gKFN0cmluZyl0LnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgIGluLmNsb3NlKCk7CisKKyAgICAgICAgICAgIG9rID0gcHJlLmVxdWFscyhQUkVGSVgpICYmCisgICAgICAgICAgICAgICAgcG9zdC5lcXVhbHMoUE9TVEZJWCkgJiYKKyAgICAgICAgICAgICAgICBjYWwuZXF1YWxzKGMpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhjZXB0aW9uIHJlY2VpdmVkOiIpOworICAgICAgICAgICAgLy8gZS5wcmludFN0YWNrVHJhY2UobG9nKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhjZXB0aW9uIHJlY2VpdmVkOiIpOworICAgICAgICAgICAgLy8gZS5wcmludFN0YWNrVHJhY2UobG9nKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghb2spIGVycmxuKCJTZXJpYWxpemF0aW9uIG9mIENhbGVuZGFyIG9iamVjdCBmYWlsZWQuIik7CisgICAgfQorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgUFJFRklYID0gImFiYyI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBQT1NURklYID0gImRlZiI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBGSUxFTkFNRSA9ICJ0bXAzMzcuYmluIjsKKworICAgIC8vIFRyeSB0byB6ZXJvIG91dCB0aGUgc2Vjb25kcyBmaWVsZAorICAgIHB1YmxpYyB2b2lkIFRlc3RTZWNvbmRzWmVybzEyMSgpIHsKKyAgICAgICAgQ2FsZW5kYXIgICAgICAgIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAvLyBJbml0aWFsaXplIHdpdGggY3VycmVudCBkYXRlL3RpbWUKKyAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUoKSk7CisgICAgICAgIC8vIFJvdW5kIGRvd24gdG8gbWludXRlCisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuU0VDT05ELCAwKTsKKyAgICAgICAgRGF0ZSAgICBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgU3RyaW5nIHMgPSBkLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChzLmluZGV4T2YoIjowMCAiKSA8IDApIGVycmxuKCJFeHBlY3RlZCB0byBzZWUgOjAwIGluICIgKyBzKTsKKyAgICB9CisKKyAgICAvLyBUcnkgdmFyaW91cyBzZXF1ZW5jZXMgb2YgYWRkLCBzZXQsIGFuZCBnZXQgbWV0aG9kIGNhbGxzLgorICAgIHB1YmxpYyB2b2lkIFRlc3RBZGRTZXRHZXQwNjEwKCkgeworICAgICAgICAvLworICAgICAgICAvLyBFcnJvciBjYXNlIDE6CisgICAgICAgIC8vIC0gVXBvbiBpbml0aWFsaXphdGlvbiBjYWxlbmRhciBmaWVsZHMsIG1pbGxpcyA9IFN5c3RlbS5jdXJyZW50VGltZQorICAgICAgICAvLyAtIEFmdGVyIHNldCBpcyBjYWxsZWQgZmllbGRzIGFyZSBpbml0aWFsaXplZCwgdGltZSBpcyBub3QKKyAgICAgICAgLy8gLSBBZGRpdGlvbiB1c2VzIG1pbGxpcyB3aGljaCBhcmUgc3RpbGwgKm5vdyoKKyAgICAgICAgLy8KKyAgICAgICAgeworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoICkgOworICAgICAgICAgICAgY2FsZW5kYXIuc2V0KCAxOTkzLCBDYWxlbmRhci5KQU5VQVJZLCA0ICkgOworICAgICAgICAgICAgbG9nbG4oICIxQSkgIiArIHZhbHVlKCBjYWxlbmRhciApICkgOworICAgICAgICAgICAgY2FsZW5kYXIuYWRkKCBDYWxlbmRhci5EQVRFLCAxICkgOworICAgICAgICAgICAgU3RyaW5nIHYgPSB2YWx1ZShjYWxlbmRhcik7CisgICAgICAgICAgICBsb2dsbiggIjFCKSAiICsgdiApOworICAgICAgICAgICAgbG9nbG4oICItLSkgMTk5My8wLzUiICkgOworICAgICAgICAgICAgaWYgKCF2LmVxdWFscyhFWFBFQ1RFRF8wNjEwKSkgZXJybG4oIkV4cGVjdGVkICIgKyBFWFBFQ1RFRF8wNjEwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7IHNhdyAiICsgdik7CisgICAgICAgIH0KKworICAgICAgICAvLworICAgICAgICAvLyBFcnJvciBjYXNlIDI6CisgICAgICAgIC8vIC0gVXBvbiBpbml0aWFsaXphdGlvbiBjYWxlbmRhciBmaWVsZHMgc2V0LCBtaWxsaXMgPSAwCisgICAgICAgIC8vIC0gQWRkaXRpb24gdXNlcyBtaWxsaXMgd2hpY2ggYXJlIHN0aWxsIDE5NzAsIDAsIDEKKyAgICAgICAgLy8KKworICAgICAgICB7CisgICAgICAgICAgICBDYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhciggMTk5MywgQ2FsZW5kYXIuSkFOVUFSWSwgNCApIDsKKyAgICAgICAgICAgIGxvZ2xuKCAiMkEpICIgKyB2YWx1ZSggY2FsZW5kYXIgKSApIDsKKyAgICAgICAgICAgIGNhbGVuZGFyLmFkZCggQ2FsZW5kYXIuREFURSwgMSApIDsKKyAgICAgICAgICAgIFN0cmluZyB2ID0gdmFsdWUoY2FsZW5kYXIpOworICAgICAgICAgICAgbG9nbG4oICIyQikgIiArIHYgKTsKKyAgICAgICAgICAgIGxvZ2xuKCAiLS0pIDE5OTMvMC81IiApIDsKKyAgICAgICAgICAgIGlmICghdi5lcXVhbHMoRVhQRUNURURfMDYxMCkpIGVycmxuKCJFeHBlY3RlZCAiICsgRVhQRUNURURfMDYxMCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyBzYXcgIiArIHYpOworICAgICAgICB9CisKKyAgICAgICAgLy8KKyAgICAgICAgLy8gRXJyb3IgY2FzZSAzOgorICAgICAgICAvLyAtIFVwb24gaW5pdGlhbGl6YXRpb24gY2FsZW5kYXIgZmllbGRzLCBtaWxsaXMgPSAwCisgICAgICAgIC8vIC0gZ2V0VGltZSggKSBpcyBjYWxsZWQgd2hpY2ggZm9yY2VzIHRoZSBtaWxsaXMgdG8gYmUgc2V0CisgICAgICAgIC8vIC0gQWRkaXRpb24gdXNlcyBtaWxsaXMgd2hpY2ggYXJlIGNvcnJlY3QKKyAgICAgICAgLy8KKworICAgICAgICB7CisgICAgICAgICAgICBDYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhciggMTk5MywgQ2FsZW5kYXIuSkFOVUFSWSwgNCApIDsKKyAgICAgICAgICAgIGxvZ2xuKCAiM0EpICIgKyB2YWx1ZSggY2FsZW5kYXIgKSApIDsKKyAgICAgICAgICAgIGNhbGVuZGFyLmdldFRpbWUoICkgOworICAgICAgICAgICAgY2FsZW5kYXIuYWRkKCBDYWxlbmRhci5EQVRFLCAxICkgOworICAgICAgICAgICAgU3RyaW5nIHYgPSB2YWx1ZShjYWxlbmRhcik7CisgICAgICAgICAgICBsb2dsbiggIjNCKSAiICsgdiApIDsKKyAgICAgICAgICAgIGxvZ2xuKCAiLS0pIDE5OTMvMC81IiApIDsKKyAgICAgICAgICAgIGlmICghdi5lcXVhbHMoRVhQRUNURURfMDYxMCkpIGVycmxuKCJFeHBlY3RlZCAiICsgRVhQRUNURURfMDYxMCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyBzYXcgIiArIHYpOworICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgdmFsdWUoIENhbGVuZGFyIGNhbGVuZGFyICkgeworICAgICAgICByZXR1cm4oIGNhbGVuZGFyLmdldCggQ2FsZW5kYXIuWUVBUiApICArICIvIiArCisgICAgICAgICAgICAgICAgY2FsZW5kYXIuZ2V0KCBDYWxlbmRhci5NT05USCApICsgIi8iICsKKyAgICAgICAgICAgICAgICBjYWxlbmRhci5nZXQoIENhbGVuZGFyLkRBVEUgKSApIDsKKyAgICB9CisgICAgc3RhdGljIFN0cmluZyBFWFBFQ1RFRF8wNjEwID0gIjE5OTMvMC81IjsKKworICAgIC8vIFRlc3QgdGhhdCBjZXJ0YWluIGZpZWxkcyBvbiBhIGNlcnRhaW4gZGF0ZSBhcmUgYXMgZXhwZWN0ZWQuCisgICAgcHVibGljIHZvaWQgVGVzdEZpZWxkczA2MCgpIHsKKyAgICAgICAgaW50IHllYXIgPSAxOTk3OworICAgICAgICBpbnQgbW9udGggPSBqYXZhLnV0aWwuQ2FsZW5kYXIuT0NUT0JFUjsgIC8vb2N0b2JlcgorICAgICAgICBpbnQgZERhdGUgPSAyMjsgICAvL0RBWU9GV0VFSyBzaG91bGQgcmV0dXJuIDMgZm9yIFdlZG5lc2RheQorICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG51bGw7CisKKyAgICAgICAgY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoIHllYXIsIG1vbnRoLCBkRGF0ZSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxFWFBFQ1RFRF9GSUVMRFMubGVuZ3RoOyApIHsKKyAgICAgICAgICAgIGludCBmaWVsZCA9IEVYUEVDVEVEX0ZJRUxEU1tpKytdOworICAgICAgICAgICAgaW50IGV4cGVjdGVkID0gRVhQRUNURURfRklFTERTW2krK107CisgICAgICAgICAgICBpZiAoY2FsZW5kYXIuZ2V0KGZpZWxkKSAhPSBleHBlY3RlZCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBmaWVsZCAiICsgZmllbGQgKyAiIHRvIGhhdmUgdmFsdWUgIiArIGV4cGVjdGVkICsKKyAgICAgICAgICAgICAgICAgICAgICAiOyByZWNlaXZlZCAiICsgY2FsZW5kYXIuZ2V0KGZpZWxkKSArICIgaW5zdGVhZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyBpbnQgRVhQRUNURURfRklFTERTW10gPSB7CisgICAgICAgIENhbGVuZGFyLllFQVIsIDE5OTcsCisgICAgICAgIENhbGVuZGFyLk1PTlRILCBDYWxlbmRhci5PQ1RPQkVSLAorICAgICAgICBDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDIyLAorICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFSywgQ2FsZW5kYXIuV0VETkVTREFZLAorICAgICAgICBDYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCwgNCwKKyAgICAgICAgQ2FsZW5kYXIuREFZX09GX1lFQVIsIDI5NQorICAgIH07CisKKyAgICAvLyBWZXJpZnkgdGhhdCB0aGUgZmllbGRzIGFyZSBhcyBleHBlY3RlZCAobW9zdGx5IHplcm8pIGF0IHRoZSBlcG9jaCBzdGFydC4KKyAgICAvLyBOb3RlIHRoYXQgd2UgYWRqdXN0IGZvciB0aGUgZGVmYXVsdCB0aW1lem9uZSB0byBnZXQgbW9zdCB0aGluZ3MgdG8gemVyby4KKyAgICBwdWJsaWMgdm9pZCBUZXN0RXBvY2hTdGFydEZpZWxkcygpIHsKKyAgICAgICAgVGltZVpvbmUgeiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgQ2FsZW5kYXIgYyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKC16LmdldFJhd09mZnNldCgpKTsKKyAgICAgICAgaWYgKHouaW5EYXlsaWdodFRpbWUoZCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJXYXJuaW5nOiBTa2lwcGluZyB0ZXN0IGJlY2F1c2UgIiArIGQgKworICAgICAgICAgICAgICAgICAgIiBpcyBpbiBEU1QuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBjLnNldFRpbWUoZCk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Q2FsZW5kYXIuWk9ORV9PRkZTRVQ7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChjLmdldChpKSAhPSBFUE9DSF9GSUVMRFNbaV0pCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBmaWVsZCAiICsgaSArICIgdG8gaGF2ZSB2YWx1ZSAiICsgRVBPQ0hfRklFTERTW2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIjsgc2F3ICIgKyBjLmdldChpKSArICIgaW5zdGVhZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGMuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKSAhPSB6LmdldFJhd09mZnNldCgpKQorICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBmaWVsZCBaT05FX09GRlNFVCB0byBoYXZlIHZhbHVlICIgKyB6LmdldFJhd09mZnNldCgpICsKKyAgICAgICAgICAgICAgICAgICAgICAiOyBzYXcgIiArIGMuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKSArICIgaW5zdGVhZCIpOworICAgICAgICAgICAgaWYgKGMuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpICE9IDApCisgICAgICAgICAgICAgICAgZXJybG4oIkV4cGVjdGVkIGZpZWxkIERTVF9PRkZTRVQgdG8gaGF2ZSB2YWx1ZSAwIiArCisgICAgICAgICAgICAgICAgICAgICAgIjsgc2F3ICIgKyBjLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSArICIgaW5zdGVhZCIpOworICAgICAgICB9CisgICAgfQorICAgIC8vIFRoZXNlIGFyZSB0aGUgZmllbGRzIGF0IHRoZSBlcG9jaCBzdGFydAorICAgIHN0YXRpYyBpbnQgRVBPQ0hfRklFTERTW10gPSB7IDEsIDE5NzAsIDAsIDEsIDEsIDEsIDEsIDUsIDEsIDAsIDAsIDAsIDAsIDAsIDAsIC0yODgwMDAwMCwgMCB9OworCisgICAgLy8gVmVyaWZ5IHRoYXQgYXMgeW91IGFkZCBkYXlzIHRvIHRoZSBjYWxlbmRhciAoZS5nLiwgMjQgZGF5IHBlcmlvZHMpLAorICAgIC8vIHRoZSBkYXkgb2YgdGhlIHdlZWsgc2hpZnRzIGluIHRoZSBleHBlY3RlZCBwYXR0ZXJuLgorICAgIHB1YmxpYyB2b2lkIFRlc3RET1dQcm9ncmVzc2lvbigpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0KKyAgICAgICAgICAgIG5ldyBHcmVnb3JpYW5DYWxlbmRhcigxOTcyLCBDYWxlbmRhci5PQ1RPQkVSLCAyNik7CisgICAgICAgIG1hcmNoQnlEZWx0YShjYWwsIDI0KTsgLy8gTGFzdCBwYXJhbWV0ZXIgbXVzdCBiZSAhPSAwIG1vZHVsbyA3CisgICAgfQorCisgICAgLy8gU3VwcGx5IGEgZGVsdGEgd2hpY2ggaXMgbm90IGEgbXVsdGlwbGUgb2YgNy4KKyAgICB2b2lkIG1hcmNoQnlEZWx0YShDYWxlbmRhciBjYWwsIGludCBkZWx0YSkgeworICAgICAgICBDYWxlbmRhciBjdXIgPSAoQ2FsZW5kYXIpY2FsLmNsb25lKCk7CisgICAgICAgIGludCBpbml0aWFsRE9XID0gY3VyLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgIGludCBET1csIG5ld0RPVyA9IGluaXRpYWxET1c7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIERPVyA9IG5ld0RPVzsKKyAgICAgICAgICAgIGxvZ2xuKCJET1cgPSAiICsgRE9XICsgIiAgIiArIGN1ci5nZXRUaW1lKCkpOworCisgICAgICAgICAgICBjdXIuYWRkKENhbGVuZGFyLkRBWV9PRl9XRUVLLCBkZWx0YSk7CisgICAgICAgICAgICBuZXdET1cgPSBjdXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgICAgIGludCBleHBlY3RlZERPVyA9IDEgKyAoRE9XICsgZGVsdGEgLSAxKSAlIDc7CisgICAgICAgICAgICBpZiAobmV3RE9XICE9IGV4cGVjdGVkRE9XKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkRheSBvZiB3ZWVrIHNob3VsZCBiZSAiICsgZXhwZWN0ZWRET1cgKworICAgICAgICAgICAgICAgICAgICAgICIgaW5zdGVhZCBvZiAiICsgbmV3RE9XICsgIiBvbiAiICsgY3VyLmdldFRpbWUoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHdoaWxlIChuZXdET1cgIT0gaW5pdGlhbERPVyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEFjdHVhbE1pbk1heCgpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKDE5NjcsIENhbGVuZGFyLk1BUkNILCAxMCk7CisgICAgICAgIGNhbC5zZXRGaXJzdERheU9mV2VlayhDYWxlbmRhci5TVU5EQVkpOworICAgICAgICBjYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygzKTsKKworICAgICAgICBpZiAoY2FsLmdldEFjdHVhbE1pbmltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSAhPSAxKQorICAgICAgICAgICAgZXJybG4oIkFjdHVhbCBtaW5pbXVtIGRhdGUgZm9yIDMvMTAvMTk2NyBzaG91bGQgaGF2ZSBiZWVuIDE7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNaW5pbXVtKENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICAgICAgICBpZiAoY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSAhPSAzMSkKKyAgICAgICAgICAgIGVycmxuKCJBY3R1YWwgbWF4aW11bSBkYXRlIGZvciAzLzEwLzE5Njcgc2hvdWxkIGhhdmUgYmVlbiAzMTsgZ290ICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgQ2FsZW5kYXIuRkVCUlVBUlkpOworICAgICAgICBpZiAoY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSAhPSAyOCkKKyAgICAgICAgICAgIGVycmxuKCJBY3R1YWwgbWF4aW11bSBkYXRlIGZvciAyLzEwLzE5Njcgc2hvdWxkIGhhdmUgYmVlbiAyODsgZ290ICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgICAgICAgIGlmIChjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5EQVlfT0ZfWUVBUikgIT0gMzY1KQorICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiBkYXlzIGluIDE5Njcgc2hvdWxkIGhhdmUgYmVlbiAzNjU7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9ZRUFSKSk7CisKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAxOTY4KTsKKyAgICAgICAgaWYgKGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9NT05USCkgIT0gMjkpCisgICAgICAgICAgICBlcnJsbigiQWN0dWFsIG1heGltdW0gZGF0ZSBmb3IgMi8xMC8xOTY4IHNob3VsZCBoYXZlIGJlZW4gMjk7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLkRBWV9PRl9NT05USCkpOworICAgICAgICBpZiAoY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuREFZX09GX1lFQVIpICE9IDM2NikKKyAgICAgICAgICAgIGVycmxuKCJOdW1iZXIgb2YgZGF5cyBpbiAxOTY4IHNob3VsZCBoYXZlIGJlZW4gMzY2OyBnb3QgIiArCisgICAgICAgICAgICAgICAgICBjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5EQVlfT0ZfWUVBUikpOworICAgICAgICAvLyBVc2luZyB3ZWVrIHNldHRpbmdzIG9mIFNVTkRBWS8zIChzZWUgYWJvdmUpCisgICAgICAgIGlmIChjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5XRUVLX09GX1lFQVIpICE9IDUyKQorICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiB3ZWVrcyBpbiAxOTY4IHNob3VsZCBoYXZlIGJlZW4gNTI7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLldFRUtfT0ZfWUVBUikpOworCisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk3Nik7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIGNhbC5nZXRGaXJzdERheU9mV2VlaygpKTsgLy8gQWRkZWQgLSBMaXUgMTEvNi8wMAorICAgICAgICAvLyBVc2luZyB3ZWVrIHNldHRpbmdzIG9mIFNVTkRBWS8zIChzZWUgYWJvdmUpCisgICAgICAgIGlmIChjYWwuZ2V0QWN0dWFsTWF4aW11bShDYWxlbmRhci5XRUVLX09GX1lFQVIpICE9IDUzKQorICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiB3ZWVrcyBpbiAxOTc2IHNob3VsZCBoYXZlIGJlZW4gNTM7IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXRBY3R1YWxNYXhpbXVtKENhbGVuZGFyLldFRUtfT0ZfWUVBUikpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSb2xsKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgMzEpOworCisgICAgICAgIGludFtdIGRheVZhbHVlcyA9IHsgMzEsIDI4LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEgfTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXlWYWx1ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbDIgPSAoQ2FsZW5kYXIpY2FsLmNsb25lKCk7CisgICAgICAgICAgICBjYWwyLnJvbGwoQ2FsZW5kYXIuTU9OVEgsIGkpOworICAgICAgICAgICAgaWYgKGNhbDIuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkgIT0gZGF5VmFsdWVzW2ldKQorICAgICAgICAgICAgICAgIGVycmxuKCJSb2xsaW5nIHRoZSBtb250aCBpbiAxLzMxLzE5OTcgdXAgYnkgIiArIGkgKyAiIHNob3VsZCBoYXZlIHlpZWxkZWQgIgorICAgICAgICAgICAgICAgICAgICAgICsgKChpICsgMSkgJSAxMikgKyAiLyIgKyBkYXlWYWx1ZXNbaV0gKyAiLzE5OTcsIGJ1dCBhY3R1YWxseSB5aWVsZGVkICIKKyAgICAgICAgICAgICAgICAgICAgICArICgoaSArIDEpICUgMTIpICsgIi8iICsgY2FsMi5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSArICIvMTk5Ny4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhbC5zZXQoMTk5NiwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5KTsKKworICAgICAgICAvL2ludFtdIG1vbnRoVmFsdWVzID0geyAxLCAyLCAyLCAyLCAxLCAyLCAyLCAyLCAxLCAyIH07CisgICAgICAgIC8vaW50W10gZGF5VmFsdWVzMiA9IHsgMjksIDEsIDEsIDEsIDI5LCAxLCAxLCAxLCAyOSwgMSB9OworCisgICAgICAgIC8vIEkndmUgcmV2aXNlZCB0aGUgZXhwZWN0ZWQgdmFsdWVzIHRvIG1ha2UgbW9yZSBzZW5zZSAtLSByb2xsaW5nCisgICAgICAgIC8vIHRoZSB5ZWFyIHNob3VsZCBwaW4gdGhlIERBWV9PRl9NT05USC4gLSBMaXUgMTEvNi8wMAorICAgICAgICBpbnRbXSBtb250aFZhbHVlcyA9IHsgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSB9OworICAgICAgICBpbnRbXSBkYXlWYWx1ZXMyID0geyAyOSwgMjgsIDI4LCAyOCwgMjksIDI4LCAyOCwgMjgsIDI5LCAyOCB9OworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF5VmFsdWVzMi5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsMiA9IChDYWxlbmRhciljYWwuY2xvbmUoKTsKKyAgICAgICAgICAgIGNhbDIucm9sbChDYWxlbmRhci5ZRUFSLCBpKTsKKyAgICAgICAgICAgIGlmIChjYWwyLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICE9IGRheVZhbHVlczJbaV0gfHwgY2FsMi5nZXQoQ2FsZW5kYXIuTU9OVEgpCisgICAgICAgICAgICAgICAgIT0gbW9udGhWYWx1ZXNbaV0pCisgICAgICAgICAgICAgICAgZXJybG4oIlJvbGwgMi8yOS8xOTk2IGJ5ICIgKyBpICsgIiB5ZWFyOiBleHBlY3RlZCAiCisgICAgICAgICAgICAgICAgICAgICAgKyAobW9udGhWYWx1ZXNbaV0gKyAxKSArICIvIiArIGRheVZhbHVlczJbaV0gKyAiLyIKKyAgICAgICAgICAgICAgICAgICAgICArICgxOTk2ICsgaSkgKyAiLCBnb3QgIgorICAgICAgICAgICAgICAgICAgICAgICsgKGNhbDIuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDEpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgICAgICBjYWwyLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpICsgIi8iICsgY2FsMi5nZXQoQ2FsZW5kYXIuWUVBUikpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCByb2xsaW5nIGhvdXIgb2YgZGF5CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDApOworICAgICAgICBjYWwucm9sbChDYWxlbmRhci5IT1VSX09GX0RBWSwgLTIpOworICAgICAgICBpbnQgZiA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICBpZiAoZiAhPSAyMikgZXJybG4oIlJvbGxpbmcgSE9VUl9PRl9EQVk9MCBkZWx0YT0tMiBnYXZlICIgKyBmICsgIiBXYW50ZWQgMjIiKTsKKyAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDUpOworICAgICAgICBmID0gY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSk7CisgICAgICAgIGlmIChmICE9IDMpIGVycmxuKCJSb2xsaW5nIEhPVVJfT0ZfREFZPTIyIGRlbHRhPTUgZ2F2ZSAiICsgZiArICIgV2FudGVkIDMiKTsKKyAgICAgICAgY2FsLnJvbGwoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIDIxKTsKKyAgICAgICAgZiA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICBpZiAoZiAhPSAwKSBlcnJsbigiUm9sbGluZyBIT1VSX09GX0RBWT0zIGRlbHRhPTIxIGdhdmUgIiArIGYgKyAiIFdhbnRlZCAwIik7CisKKyAgICAgICAgLy8gVGVzdCByb2xsaW5nIGhvdXIKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMCk7CisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLkhPVVIsIC0yKTsKKyAgICAgICAgZiA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUik7CisgICAgICAgIGlmIChmICE9IDEwKSBlcnJsbigiUm9sbGluZyBIT1VSPTAgZGVsdGE9LTIgZ2F2ZSAiICsgZiArICIgV2FudGVkIDEwIik7CisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLkhPVVIsIDUpOworICAgICAgICBmID0gY2FsLmdldChDYWxlbmRhci5IT1VSKTsKKyAgICAgICAgaWYgKGYgIT0gMykgZXJybG4oIlJvbGxpbmcgSE9VUj0xMCBkZWx0YT01IGdhdmUgIiArIGYgKyAiIFdhbnRlZCAzIik7CisgICAgICAgIGNhbC5yb2xsKENhbGVuZGFyLkhPVVIsIDkpOworICAgICAgICBmID0gY2FsLmdldChDYWxlbmRhci5IT1VSKTsKKyAgICAgICAgaWYgKGYgIT0gMCkgZXJybG4oIlJvbGxpbmcgSE9VUj0zIGRlbHRhPTkgZ2F2ZSAiICsgZiArICIgV2FudGVkIDAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcHV0ZUp1bGlhbkRheTQ0MDYoKSB7CisgICAgICAgIC8vIGpiNDQwNiBpcyBwcm9iYWJseSBub3QgYSBidWcsIHRoaXMgaXMgdG8gZG9jdW1lbnQgdGhlIGJlaGF2aW9yCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBmaW5hbCBpbnQgTUlMTElTX0lOX0RBWSA9IDEwMDAgKiA2MCAqIDYwICogMjQ7CisgICAgICAgIAorICAgICAgICBsb2dsbigianVsaWFuIGRheSB2YWx1ZSBqdW1wcyBhdCBjaGFuZ2VvdmVyIik7CisgICAgICAgIGZvciAoaW50IGRheSA9IDEyOyBkYXkgPCAxODsgKytkYXkpIHsKKyAgICAgICAgICAgIGNhbC5zZXQoMTU4MiwgOSwgZGF5KTsKKyAgICAgICAgICAgIGxvZ2xuKCJbIiArIGRheSArICJdICIgKyAoY2FsLmdldFRpbWVJbk1pbGxpcygpL01JTExJU19JTl9EQVkpKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJcbmp1bGlhbiBkYXlzIG5vdCBhY2N1cmF0ZSBiZWZvcmUgMSBNYXJjaCAwMDA0Iik7CisgICAgICAgIGZvciAoaW50IGRheSA9IDE7IGRheSA8IDM7ICsrZGF5KSB7CisgICAgICAgICAgICBjYWwuc2V0KDEsIDAsIGRheSk7CisgICAgICAgICAgICBsb2dsbigiWyIgKyBkYXkgKyAiXSAiICsgKGNhbC5nZXRUaW1lSW5NaWxsaXMoKS9NSUxMSVNfSU5fREFZKSk7CisgICAgICAgIH0KKworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IGNhbC5nZXREYXRlVGltZUZvcm1hdChEYXRlRm9ybWF0LkxPTkcsIDAsIExvY2FsZS5nZXREZWZhdWx0KCkpOworCisgICAgICAgIGxvZ2xuKCJcbnN3aXRjaG92ZXIgaW4gMTU4MiIpOworICAgICAgICBjYWwuc2V0KDE1ODIsIDksIDQpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkpVTElBTl9EQVksIDE3MjE0MjYpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworCisgICAgICAgIGxvZ2xuKCJcbmxhdGUgc3dpdGNob3ZlciAtIHByb2xlcHRpYyBKdWxpYW4iKTsKKyAgICAgICAgY2FsLnNldCgxNTgyLCA5LCA0KTsKKyAgICAgICAgY2FsLnNldEdyZWdvcmlhbkNoYW5nZShuZXcgRGF0ZShMb25nLk1BWF9WQUxVRSkpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkpVTElBTl9EQVksIDE3MjE0MjYpOworICAgICAgICBsb2dsbihmbXQuZm9ybWF0KGNhbCkpOworCisgICAgICAgIGxvZ2xuKCJcbmVhcmx5IHN3aXRjaG92ZXIgLSBwcm9sZXB0aWMgR3JlZ29yaWFuIik7CisgICAgICAgIGNhbC5zZXQoMTU4MiwgOSwgNCk7CisgICAgICAgIGNhbC5zZXRHcmVnb3JpYW5DaGFuZ2UobmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpKTsKKyAgICAgICAgbG9nbG4oZm10LmZvcm1hdChjYWwpKTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVRFLCAxKTsKKyAgICAgICAgbG9nbG4oZm10LmZvcm1hdChjYWwpKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5KVUxJQU5fREFZLCAxNzIxNDI2KTsKKyAgICAgICAgbG9nbG4oZm10LmZvcm1hdChjYWwpKTsKKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvQ29wdGljVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NvcHRpY1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMmRjODYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0NvcHRpY1Rlc3QuamF2YQpAQCAtMCwwICsxLDMxMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNvcHRpY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuRXRoaW9waWNDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIFRlc3RzIGZvciB0aGUgPGNvZGU+Q29wdGljQ2FsZW5kYXI8L2NvZGU+IGNsYXNzLgorICovCitwdWJsaWMgY2xhc3MgQ29wdGljVGVzdCBleHRlbmRzIENhbGVuZGFyVGVzdCAKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENvcHRpY1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyoqIENvbnN0YW50cyB0byBzYXZlIHR5cGluZy4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUT1VUICAgICAgPSBDb3B0aWNDYWxlbmRhci5UT1VUOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJBQkEgICAgICA9IENvcHRpY0NhbGVuZGFyLkJBQkE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFUT1IgICAgID0gQ29wdGljQ2FsZW5kYXIuSEFUT1I7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lBSEsgICAgID0gQ29wdGljQ2FsZW5kYXIuS0lBSEs7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVE9CQSAgICAgID0gQ29wdGljQ2FsZW5kYXIuVE9CQTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTVNISVIgICAgPSBDb3B0aWNDYWxlbmRhci5BTVNISVI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFSQU1IQVQgID0gQ29wdGljQ2FsZW5kYXIuQkFSQU1IQVQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFSQU1PVURBID0gQ29wdGljQ2FsZW5kYXIuQkFSQU1PVURBOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJBU0hBTlMgICA9IENvcHRpY0NhbGVuZGFyLkJBU0hBTlM7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFPTkEgICAgID0gQ29wdGljQ2FsZW5kYXIuUEFPTkE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVBFUCAgICAgID0gQ29wdGljQ2FsZW5kYXIuRVBFUDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRVNSQSAgICAgPSBDb3B0aWNDYWxlbmRhci5NRVNSQTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOQVNJRSAgICAgPSBDb3B0aWNDYWxlbmRhci5OQVNJRTsKKworICAgIC8qIFRlc3QgZGF0ZXMgZnJvbToKKyAgICAgKiAiVGhlIEFtaGFyaWMgTGV0dGVycyBvZiBFbXBlcm9yIFRoZW9kb3JlIG9mIEV0aGlvcGlhIHRvIFF1ZWVuIFZpY3RvcmlhIGFuZAorICAgICAqIEhlciBTcGVjaWFsIEVudm95IiwgRGF2aWQgQXBwbGV5YXJkLCBHaXJtYSBTZWxhc3NlIEFzZmF3LCBPeGZvcmQgVW5pdmVyc2l0eSBQcmVzcywgCisgICAgICogSnVuZSAxIDE5NzksIElTQk46IDA4NTY3MjY2MDUsIExvbmd3b29kIFByIEx0ZAorICAgICAqICAKKyAgICAgKiBDb3B0aWMgICAgICAgICBHcmVnb3JpYW4gICAgSkQKKyAgICAgKiAyMC8wMi8xNTc5ICAgICAyOS8xMC8xODYyICAyNDAxNDQzIAorICAgICAqIDI5LzEwLzE1ODEgICAgIDA1LzA3LzE4NjUgIDI0MDI0MjMKKyAgICAgKiAyMi8wNS8xNTgyICAgICAyOS8wMS8xODY2ICAyNDAyNjMxCisgICAgICogMTAvMDgvMTU4MiAgICAgMTcvMDQvMTg2NiAgMjQwMjcwOQorICAgICAqIDI4LzA0LzE1ODMgICAgIDA1LzAxLzE4NjcgIDI0MDI5NzIKKyAgICAgKiAwNS8wNS8xNTg0ICAgICAxMy8wMS8xODY4ICAyNDAzMzQ1CisgICAgICogCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKiAKKyAgICAgKiBGcm9tIHRoZSBDYWxlbmRyaWNhIGFwcGxldDogIGh0dHA6Ly9lbXIuY3MuaWl0LmVkdS9ob21lL3JlaW5nb2xkL2NhbGVuZGFyLWJvb2svQ2FsZW5kcmljYS5odG1sCisgICAgICogCisgICAgICogQ29wdGljICAgICAgICAgR3JlZ29yaWFuICAgIEpECisgICAgICogMDcvMDUvLTI4NCAgICAgMDEvMDEvMDAwMCAgMTcyMTA2MAorICAgICAqIDA4LzA1Ly0yODMgICAgIDAxLzAxLzAwMDEgIDE3MjE0MjYKKyAgICAgKiAwNi8xMy8tMSAgICAgICAyOS8wOC8wMjgzICAxODI0NjY0CisgICAgICogCisgICAgICogMDEvMDEvMDAwMCAgICAgMzAvMDgvMDI4MyAgMTgyNDY2NQorICAgICAqIDAxLzAxLzAwMDEgICAgIDI5LzA4LzAyODQgIDE4MjUwMzAKKyAgICAgKiAwMS8wMS8wMDAyICAgICAyOS8wOC8wMjg1ICAxODI1Mzk1CisgICAgICogMDEvMDEvMDAwMyAgICAgMjkvMDgvMDI4NiAgMTgyNTc2MAorICAgICAqIDAxLzAxLzAwMDQgICAgIDMwLzA4LzAyODcgIDE4MjYxMjYKKyAgICAgKiAwNS8xMy8wMDAwICAgICAyOC8wOC8wMjg0ICAxODI1MDI5IAorICAgICAqIDA1LzEzLzAwMDEgICAgIDI4LzA4LzAyODUgIDE4MjUzOTQKKyAgICAgKiAwNS8xMy8wMDAyICAgICAyOC8wOC8wMjg2ICAxODI1NzU5CisgICAgICogMDUvMTMvMDAwMyAgICAgMjgvMDgvMDI4NyAgMTgyNjEyNAorICAgICAqIDA2LzEzLzAwMDMgICAgIDI5LzA4LzAyODcgIDE4MjYxMjUgIGZpcnN0IGNvcHRpYyBsZWFwIHllYXIKKyAgICAgKiAwNS8xMy8wMDA0ICAgICAyOC8wOC8wMjg4ICAxODI2NDkwCisgICAgICogCisgICAgICogMDYvMDIvMTI5OSAgICAgMTMvMTAvMTU4MiAgMjI5OTE1OQorICAgICAqIDA3LzAyLzEyOTkgICAgIDE0LzEwLzE1ODIgIDIyOTkxNjAgIEp1bGlhbiAwNC8xMC8xNTgyCisgICAgICogMDgvMDIvMTI5OSAgICAgMTUvMTAvMTU4MiAgMjI5OTE2MQorICAgICAqIDA5LzAyLzEyOTkgICAgIDE2LzEwLzE1ODIgIDIyOTkxNjIKKyAgICAgKiAKKyAgICAgKiAyMy8wNC8xNjE2ICAgICAwMS8wMS8xOTAwICAyNDE1MDIxCisgICAgICogMjMvMDQvMTcyMSAgICAgMDEvMDEvMjAwNSAgMjQ1MzM3MiAKKyAgICAgKiAwNS8xMy8yMDAwICAgICAxMi8wOS8yMjg0ICAyNTU1NTI5CisgICAgICovCisKKyAgICAKKyAgICAvKiogQSBodWdlIGxpc3Qgb2YgdGVzdCBjYXNlcyB0byBtYWtlIHN1cmUgdGhhdCBjb21wdXRlVGltZSBhbmQgY29tcHV0ZUZpZWxkcworICAgICAqIHdvcmsgcHJvcGVybHkgZm9yIGEgd2lkZSByYW5nZSBvZiBkYXRhIGluIHRoZSBjaXZpbCBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZXMoKQorICAgIHsKKyAgICAgICAgZmluYWwgVGVzdENhc2VbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBUaGUgbW9udGhzIGluIHRoaXMgdGFibGUgYXJlIDEtYmFzZWQgcmF0aGVyIHRoYW4gMC1iYXNlZCwKKyAgICAgICAgICAgIC8vIGJlY2F1c2UgaXQncyBlYXNpZXIgdG8gZWRpdCB0aGF0IHdheS4KKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgIENvcHRpYworICAgICAgICAgICAgLy8gICAgICAgICAgSnVsaWFuIERheSAgRXJhICBZZWFyICBNb250aCBEYXkgIFdrRGF5IEhvdXIgTWluIFNlYworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIERhdGVzIGZyb20gIkVtcG9yZXIgVGhlb2RvcmUuLi4iCisKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAxNDQyLjUsICAxLCAgMTU3OSwgICAgMiwgIDIwLCAgV0VELCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDIwLzEwLzE4NjIKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAyNDIyLjUsICAxLCAgMTU4MSwgICAxMCwgIDI5LCAgV0VELCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDA1LzA3LzE4NjUKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAyNjMwLjUsICAxLCAgMTU4MiwgICAgNSwgIDIyLCAgTU9OLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI5LzAxLzE4NjYKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAyNzA4LjUsICAxLCAgMTU4MiwgICAgOCwgIDEwLCAgVFVFLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDE3LzA0LzE4NjYKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAyOTcxLjUsICAxLCAgMTU4MywgICAgNCwgIDI4LCAgU0FULCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDA1LzAxLzE4NjcKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAzMzQ0LjUsICAxLCAgMTU4NCwgICAgNSwgICA1LCAgTU9OLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDEzLzAxLzE4NjgKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzIxMDU5LjUsICAwLCAgLTI4NCwgICAgNSwgICA3LCAgU0FULCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDAxLzAxLzAwMDAKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzIxNDI1LjUsICAwLCAgLTI4MywgICAgNSwgICA4LCAgTU9OLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDAxLzAxLzAwMDEKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI0NjYzLjUsICAwLCAgICAtMSwgICAxMywgICA2LCAgV0VELCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI5LzA4LzAyODMKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI0NjY0LjUsICAxLCAgICAgMCwgICAgMSwgICAxLCAgVEhVLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDMwLzA4LzAyODMKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI1MDI5LjUsICAxLCAgICAgMSwgICAgMSwgICAxLCAgRlJJLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI5LzA4LzAyODQKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI1Mzk0LjUsICAxLCAgICAgMiwgICAgMSwgICAxLCAgU0FULCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI5LzA4LzAyODUKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI1NzU5LjUsICAxLCAgICAgMywgICAgMSwgICAxLCAgU1VOLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI5LzA4LzAyODYKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI2MTI1LjUsICAxLCAgICAgNCwgICAgMSwgICAxLCAgVFVFLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDMwLzA4LzAyODcKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI1MDI4LjUsICAxLCAgICAgMCwgICAxMywgICA1LCAgVEhVLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI4LzA4LzAyODQKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI1MzkzLjUsICAxLCAgICAgMSwgICAxMywgICA1LCAgRlJJLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI4LzA4LzAyODUKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI1NzU4LjUsICAxLCAgICAgMiwgICAxMywgICA1LCAgU0FULCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI4LzA4LzAyODYKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI2MTIzLjUsICAxLCAgICAgMywgICAxMywgICA1LCAgU1VOLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI4LzA4LzAyODcKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODI2MTI0LjUsICAxLCAgICAgMywgICAxMywgICA2LCAgTU9OLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI5LzA4LzAyODcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWJvdmUgaXMgZmlyc3QgY29wdGljIGxlYXAgeWVhcgorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE4MjY0ODkuNSwgIDEsICAgICA0LCAgIDEzLCAgIDUsICBUVUUsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjgvMDgvMDI4OAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyOTkxNTguNSwgIDEsICAxMjk5LCAgICAyLCAgIDYsICBXRUQsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMTMvMTAvMTU4MgorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyOTkxNTkuNSwgIDEsICAxMjk5LCAgICAyLCAgIDcsICBUSFUsICAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMTQvMTAvMTU4MgorCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI5OTE2MC41LCAgMSwgIDEyOTksICAgIDIsICAgOCwgIEZSSSwgICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxNS8xMC8xNTgyCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI5OTE2MS41LCAgMSwgIDEyOTksICAgIDIsICAgOSwgIFNBVCwgICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxNi8xMC8xNTgyCisKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDE1MDIwLjUsICAxLCAgMTYxNiwgICAgNCwgIDIzLCAgTU9OLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDAxLzAxLzE5MDAKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDUzMzcxLjUsICAxLCAgMTcyMSwgICAgNCwgIDIzLCAgU0FULCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDAxLzAxLzIwMDUKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNTU1NTI4LjUsICAxLCAgMjAwMCwgICAxMywgICA1LCAgRlJJLCAgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDEyLzA5LzIyODQKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIENvcHRpY0NhbGVuZGFyIHRlc3RDYWxlbmRhciA9IG5ldyBDb3B0aWNDYWxlbmRhcigpOworICAgICAgICB0ZXN0Q2FsZW5kYXIuc2V0TGVuaWVudCh0cnVlKTsKKyAgICAgICAgZG9UZXN0Q2FzZXModGVzdHMsIHRlc3RDYWxlbmRhcik7CisgICAgfQorCisgICAgLy8gYmFzaWMgc2FuaXR5IGNoZWNrIHRoYXQgdGhlIGNvbnZlcnNpb24gYWxnb3JpdGhtIHJvdW5kLXRyaXBzCisgICAgcHVibGljIHZvaWQgVGVzdENvcHRpY1RvSkQoKSB7CisgICAgICAgIGZvciAoaW50IHkgPSAtMjsgeSA8IDM7ICsreSkgeworICAgICAgICAgICAgZm9yIChpbnQgbSA9IDA7IG0gPCAxMjsgKyttKSB7IC8vIGRvbid0IHVuZGVyc3RhbmQgcnVsZXMgZm9yIDEzdGggbW9udGgKKyAgICAgICAgICAgICAgICBmb3IgKGludCBkID0gMTsgZCA8IDI1OyBkICs9IDMpIHsgLy8gcGxheSBpdCBzYWZlIG9uIGRheXMgcGVyIG1vbnRoCisgICAgICAgICAgICAgICAgICAgIGludCBqZCA9IENvcHRpY0NhbGVuZGFyLmNvcHRpY1RvSkQoeSwgbSwgZCk7CisgICAgICAgICAgICAgICAgICAgIEludGVnZXJbXSByZXMgPSBDb3B0aWNDYWxlbmRhci5nZXREYXRlRnJvbUpEKGpkKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCEoeSA9PSByZXNbMF0uaW50VmFsdWUoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICBtID09IHJlc1sxXS5pbnRWYWx1ZSgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgIGQgPT0gcmVzWzJdLmludFZhbHVlKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigieTogIiArIHkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBtOiAiICsgbSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBkOiAiICsgZCArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAtLT4gamQ6ICIgKyBqZCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0tPiB5OiAiICsgcmVzWzBdLmludFZhbHVlKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBtOiAiICsgcmVzWzFdLmludFZhbHVlKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBkOiAiICsgcmVzWzJdLmludFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLy8gYmFzaWMgY2hlY2sgdG8gc2VlIHRoYXQgd2UgcHJpbnQgb3V0IGVyYXMgb2sKKyAgICAvLyBldmVudHVhbGx5IHNob3VsZCBtb2RpZnkgdG8gdXNlIGxvY2FsZSBzdHJpbmdzIGFuZCBmb3JtYXR0ZXIgYXBwcm9wcmlhdGUgdG8gY29wdGljIGNhbGVuZGFyCisgICAgcHVibGljIHZvaWQgVGVzdEVyYVN0YXJ0KCkgeworICAgICAgICBDb3B0aWNDYWxlbmRhciBjYWwgPSBuZXcgQ29wdGljQ2FsZW5kYXIoMCwgMCwgMSk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkVFRSBNTU0gZGQsIHl5eXkgR0ciKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJDb3B0aWMgRGF0ZSIsICJUaHUgSmFuIDAxLCAwMDAwIEFEIiwgZm10LmZvcm1hdChjYWwpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJHcmVnb3JpYW4gRGF0ZSIsICJUaHUgQXVnIDMwLCAwMjgzIEFEIiwgZm10LmZvcm1hdChjYWwuZ2V0VGltZSgpKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJhc2ljKCkgeworICAgICAgICBDb3B0aWNDYWxlbmRhciBjYWwgPSBuZXcgQ29wdGljQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTAwMCwgMCwgMzApOworICAgICAgICBsb2dsbigiMTAwMC8wLzMwLT4gIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICBjYWwuZ2V0KE1PTlRIKSArICIvIiArIAorICAgICAgICAgICAgICBjYWwuZ2V0KERBVEUpKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMSwgMCwgMzApOworICAgICAgICBsb2dsbigiMS8wLzMwIC0+ICIgKworICAgICAgICAgICAgICBjYWwuZ2V0KFlFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgY2FsLmdldChNT05USCkgKyAiLyIgKyAKKyAgICAgICAgICAgICAgY2FsLmdldChEQVRFKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBDb3B0aWNDYWxlbmRhcihUaW1lWm9uZSkKKyAgICAgICAgICAgIENvcHRpY0NhbGVuZGFyIGNhbCA9IG5ldyBDb3B0aWNDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBDb3B0aWNDYWxlbmRhciB3aXRoIFRpbWVab25lIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgQ29wdGljQ2FsZW5kYXIoVUxvY2FsZSkKKyAgICAgICAgICAgIENvcHRpY0NhbGVuZGFyIGNhbCA9IG5ldyBDb3B0aWNDYWxlbmRhcihVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQ29wdGljQ2FsZW5kYXIgd2l0aCBVTG9jYWxlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBDb3B0aWNDYWxlbmRhcihMb2NhbGUpCisgICAgICAgICAgICBDb3B0aWNDYWxlbmRhciBjYWwgPSBuZXcgQ29wdGljQ2FsZW5kYXIoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQ29wdGljQ2FsZW5kYXIgd2l0aCBMb2NhbGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gbmV3IENvcHRpY0NhbGVuZGFyKFRpbWVab25lLCBMb2NhbGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBDb3B0aWNDYWxlbmRhciBjYWwgPSBuZXcgQ29wdGljQ2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIENvcHRpY0NhbGVuZGFyIHdpdGggVGltZVpvbmUsIExvY2FsZSIpOyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIG5ldyBDb3B0aWNDYWxlbmRhcihUaW1lWm9uZSwgVUxvY2FsZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgQ29wdGljQ2FsZW5kYXIgY2FsID0gbmV3IENvcHRpY0NhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSxVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBDb3B0aWNDYWxlbmRhciB3aXRoIFRpbWVab25lLCBVTG9jYWxlIik7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBDb3B0aWNDYWxlbmRhcihEYXRlKQorICAgICAgICAgICAgQ29wdGljQ2FsZW5kYXIgY2FsID0gbmV3IENvcHRpY0NhbGVuZGFyKG5ldyBEYXRlKCkpOworICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIENvcHRpY0NhbGVuZGFyIHdpdGggRGF0ZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgLy8gbmV3IENvcHRpY0NhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKQorICAgICAgICAgICAgQ29wdGljQ2FsZW5kYXIgY2FsID0gbmV3IENvcHRpY0NhbGVuZGFyKDE5OTcsIENvcHRpY0NhbGVuZGFyLlRPVVQsIDEpOworICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIENvcHRpY0NhbGVuZGFyIHdpdGggeWVhcixtb250aCxkYXRlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgQ29wdGljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kKQorICAgICAgICAgICAgQ29wdGljQ2FsZW5kYXIgY2FsID0gbmV3IENvcHRpY0NhbGVuZGFyKDE5OTcsIENvcHRpY0NhbGVuZGFyLlRPVVQsIDEsIDEsIDEsIDEpOworICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIENvcHRpY0NhbGVuZGFyIHdpdGggeWVhcixtb250aCxkYXRlLGhvdXIsbWludXRlLHNlY29uZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGRhdGEKKyAgICAgICAgICAgIENvcHRpY0NhbGVuZGFyIGNhbCA9IG5ldyBDb3B0aWNDYWxlbmRhcigxOTk3LCBDb3B0aWNDYWxlbmRhci5UT1VULCAxKTsKKyAgICAgICAgICAgIERhdGUgdGltZSA9IGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgICAgIFN0cmluZ1tdIGNhbGVuZGFyTG9jYWxlcyA9IHsKKyAgICAgICAgICAgICAgICAiYW1fRVQiLCAiZ2V6X0VUIiwgInRpX0VUIgorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgU3RyaW5nW10gZm9ybWF0TG9jYWxlcyA9IHsKKyAgICAgICAgICAgICAgICAiZW4iLCAiYW0iLCAiYW1fRVQiLCAiZ2V6IiwgInRpIgorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJMb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNhbExvY05hbWUgPSBjYWxlbmRhckxvY2FsZXNbaV07CisgICAgICAgICAgICAgICAgTG9jYWxlIGNhbExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoY2FsTG9jTmFtZSk7CisgICAgICAgICAgICAgICAgY2FsID0gbmV3IENvcHRpY0NhbGVuZGFyKGNhbExvY2FsZSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGZvcm1hdExvY2FsZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxvY05hbWUgPSBmb3JtYXRMb2NhbGVzW2pdOworICAgICAgICAgICAgICAgICAgICBMb2NhbGUgZm9ybWF0TG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgZm9ybWF0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oY2FsTG9jTmFtZSArICIvIiArIGxvY05hbWUgKyAiIC0tPiAiICsgZm9ybWF0LmZvcm1hdCh0aW1lKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFllYXIoKSB7CisgICAgICAgIC8vIEdyZWdvcmlhbiBDYWxlbmRhcgorICAgICAgICBDYWxlbmRhciBnQ2FsPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgRGF0ZSBnVG9kYXk9Z0NhbC5nZXRUaW1lKCk7CisgICAgICAgIGdDYWwuYWRkKEdyZWdvcmlhbkNhbGVuZGFyLk1PTlRILDIpOworICAgICAgICBEYXRlIGdGdXR1cmU9Z0NhbC5nZXRUaW1lKCk7CisgICAgICAgIERhdGVGb3JtYXQgZ0RGID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoZ0NhbCxEYXRlRm9ybWF0LkZVTEwpOworICAgICAgICBsb2dsbigiZ3JlZ29yaWFuIGNhbGVuZGFyOiAiICsgZ0RGLmZvcm1hdChnVG9kYXkpICsKKyAgICAgICAgICAgICAgIiArIDIgbW9udGhzID0gIiArIGdERi5mb3JtYXQoZ0Z1dHVyZSkpOworCisgICAgICAgIC8vIENvcHRpYyBDYWxlbmRhcgorICAgICAgICBDb3B0aWNDYWxlbmRhciBjQ2FsPSBuZXcgQ29wdGljQ2FsZW5kYXIoKTsKKyAgICAgICAgRGF0ZSBjVG9kYXk9Y0NhbC5nZXRUaW1lKCk7CisgICAgICAgIGNDYWwuYWRkKENvcHRpY0NhbGVuZGFyLk1PTlRILDIpOworICAgICAgICBEYXRlIGNGdXR1cmU9Y0NhbC5nZXRUaW1lKCk7CisgICAgICAgIERhdGVGb3JtYXQgY0RGID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoY0NhbCxEYXRlRm9ybWF0LkZVTEwpOworICAgICAgICBsb2dsbigiY29wdGljIGNhbGVuZGFyOiAiICsgY0RGLmZvcm1hdChjVG9kYXkpICsKKyAgICAgICAgICAgICAgIiArIDIgbW9udGhzID0gIiArIGNERi5mb3JtYXQoY0Z1dHVyZSkpOworCisgICAgICAgIC8vIEV0aGlvcGljQ2FsZW5kYXIKKyAgICAgICAgRXRoaW9waWNDYWxlbmRhciBlQ2FsPSBuZXcgRXRoaW9waWNDYWxlbmRhcigpOworICAgICAgICBEYXRlIGVUb2RheT1lQ2FsLmdldFRpbWUoKTsKKyAgICAgICAgZUNhbC5hZGQoRXRoaW9waWNDYWxlbmRhci5NT05USCwyKTsgLy8gYWRkIDIgbW9udGhzCisgICAgICAgIGVDYWwuc2V0QW1ldGVBbGVtRXJhKGZhbHNlKTsKKyAgICAgICAgRGF0ZSBlRnV0dXJlPWVDYWwuZ2V0VGltZSgpOworICAgICAgICBEYXRlRm9ybWF0IGVERiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKGVDYWwsRGF0ZUZvcm1hdC5GVUxMKTsKKyAgICAgICAgbG9nbG4oImV0aGlvcGljIGNhbGVuZGFyOiAiICsgZURGLmZvcm1hdChlVG9kYXkpICsKKyAgICAgICAgICAgICAgIiArIDIgbW9udGhzID0gIiArIGVERi5mb3JtYXQoZUZ1dHVyZSkpOwkJCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0V0aGlvcGljVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0V0aGlvcGljVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0ZTU2MzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvRXRoaW9waWNUZXN0LmphdmEKQEAgLTAsMCArMSwzNDUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkV0aGlvcGljQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogVGVzdHMgZm9yIHRoZSA8Y29kZT5FdGhpb3BpY0NhbGVuZGFyPC9jb2RlPiBjbGFzcy4KKyAqLworcHVibGljIGNsYXNzIEV0aGlvcGljVGVzdCBleHRlbmRzIENhbGVuZGFyVGVzdCAKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEV0aGlvcGljVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKiogQ29uc3RhbnRzIHRvIHNhdmUgdHlwaW5nLiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1FU0tFUkVNID0gRXRoaW9waWNDYWxlbmRhci5NRVNLRVJFTTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURUtFTVQgICA9IEV0aGlvcGljQ2FsZW5kYXIuVEVLRU1UOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhFREFSICAgID0gRXRoaW9waWNDYWxlbmRhci5IRURBUjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQUhTQVMgICA9IEV0aGlvcGljQ2FsZW5kYXIuVEFIU0FTOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFUiAgICAgID0gRXRoaW9waWNDYWxlbmRhci5URVI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWUVLQVRJVCAgPSBFdGhpb3BpY0NhbGVuZGFyLllFS0FUSVQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUVHQUJJVCAgPSBFdGhpb3BpY0NhbGVuZGFyLk1FR0FCSVQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlBWklBICAgPSBFdGhpb3BpY0NhbGVuZGFyLk1JQVpJQTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHRU5CT1QgICA9IEV0aGlvcGljQ2FsZW5kYXIuR0VOQk9UOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNFTkUgICAgID0gRXRoaW9waWNDYWxlbmRhci5TRU5FOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTUxFICAgID0gRXRoaW9waWNDYWxlbmRhci5IQU1MRTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORUhBU1NFICA9IEV0aGlvcGljQ2FsZW5kYXIuTkVIQVNTRTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQUdVTUVOICA9IEV0aGlvcGljQ2FsZW5kYXIuUEFHVU1FTjsKKworICAgIC8qIERZWzIwMDUwNTA3XSAgSSBkb24ndCBrbm93IHdoYXQgdGhpcyBpcyBmb3IgeWV0OiAKKyAgICAgICBwdWJsaWMgdm9pZCBUZXN0Um9sbCgpIHsKKyAgICAgICBpbnRbXVtdIHRlc3RzID0gbmV3IGludFtdW10geworICAgICAgIC8vICAgICAgIGlucHV0ICAgICAgICAgICAgICAgIHJvbGwgYnkgICAgICAgICAgb3V0cHV0CisgICAgICAgLy8gIHllYXIgIG1vbnRoICAgICBkYXkgICAgIGZpZWxkIGFtb3VudCAgICB5ZWFyICBtb250aCAgICAgZGF5CisgICAgCisgICAgICAgeyAgIDAwMDEsIFFJREFILCAgICAgMiwgICAgIE1PTlRILCAgIDEsICAgICAwMDAxLCBISUpKQUgsICAgIDIgfSwgICAvLyBub24tbGVhcCB5ZWFycworICAgICAgIHsgICAwMDAxLCBRSURBSCwgICAgIDIsICAgICBNT05USCwgICAyLCAgICAgMDAwMSwgTVVIQVJSQU0sICAyIH0sCisgICAgICAgeyAgIDAwMDEsIFFJREFILCAgICAgMiwgICAgIE1PTlRILCAgLTEsICAgICAwMDAxLCBTSEFXV0FMLCAgIDIgfSwKKyAgICAgICB7ICAgMDAwMSwgTVVIQVJSQU0sICAyLCAgICAgTU9OVEgsICAxMiwgICAgIDAwMDEsIE1VSEFSUkFNLCAgMiB9LAorICAgICAgIHsgICAwMDAxLCBNVUhBUlJBTSwgIDIsICAgICBNT05USCwgIDEzLCAgICAgMDAwMSwgU0FGQVIsICAgICAyIH0sCisKKyAgICAgICB7ICAgMDAwMSwgSElKSkFILCAgICAxLCAgICAgREFURSwgICAzMCwgICAgIDAwMDEsIEhJSkpBSCwgICAgMiB9LCAgIC8vIDI5LWRheSBtb250aAorICAgICAgIHsgICAwMDAyLCBISUpKQUgsICAgIDEsICAgICBEQVRFLCAgIDMxLCAgICAgMDAwMiwgSElKSkFILCAgICAyIH0sICAgLy8gMzAtZGF5IG1vbnRoCisKKyAgICAgICAvLyBUcnkgc29tZSByb2xscyB0aGF0IHJlcXVpcmUgb3RoZXIgZmllbGRzIHRvIGJlIGFkanVzdGVkCisgICAgICAgeyAgIDAwMDEsIE1VSEFSUkFNLCAzMCwgICAgIE1PTlRILCAgIDEsICAgICAwMDAxLCBTQUZBUiwgICAgMjkgfSwKKyAgICAgICB7ICAgMDAwMiwgSElKSkFILCAgIDMwLCAgICAgWUVBUiwgICAtMSwgICAgIDAwMDEsIEhJSkpBSCwgICAyOSB9LAorICAgICAgIH07CisgICAgICAgCisgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXdDaXZpbCgpOworCisgICAgICAgZG9Sb2xsQWRkKFJPTEwsIGNhbCwgdGVzdHMpOworICAgICAgIH0KKyAgICAqLworCisgICAgLyogVGVzdCBkYXRlcyBmcm9tOgorICAgICAqICJUaGUgQW1oYXJpYyBMZXR0ZXJzIG9mIEVtcGVyb3IgVGhlb2RvcmUgb2YgRXRoaW9waWEgdG8gUXVlZW4gVmljdG9yaWEgYW5kCisgICAgICogSGVyIFNwZWNpYWwgRW52b3kiLCBEYXZpZCBBcHBsZXlhcmQsIEdpcm1hIFNlbGFzc2UgQXNmYXcsIE94Zm9yZCBVbml2ZXJzaXR5IFByZXNzLCAKKyAgICAgKiBKdW5lIDEgMTk3OSwgSVNCTjogMDg1NjcyNjYwNSwgTG9uZ3dvb2QgUHIgTHRkCisgICAgICogIAorICAgICAqIEV0aGlvcGljICAgICAgIEdyZWdvcmlhbiAgICBKRAorICAgICAqIDIwLzAyLzE4NTUgICAgIDI5LzEwLzE4NjIgIDI0MDE0NDMKKyAgICAgKiAyOS8xMC8xODU3ICAgICAwNS8wNy8xODY1ICAyNDAyNDIzCisgICAgICogMjIvMDUvMTg1OCAgICAgMjkvMDEvMTg2NiAgMjQwMjYzMQorICAgICAqIDEwLzA4LzE4NTggICAgIDE3LzA0LzE4NjYgIDI0MDI3MDkKKyAgICAgKiAyOC8wNC8xODU5ICAgICAwNS8wMS8xODY3ICAyNDAyOTcyCisgICAgICogMDUvMDUvMTg2MCAgICAgMTMvMDEvMTg2OCAgMjQwMzM0NQorICAgICAqIAorICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICogCisgICAgICogRnJvbSB0aGUgQ2FsZW5kcmljYSBhcHBsZXQ6ICBodHRwOi8vZW1yLmNzLmlpdC5lZHUvaG9tZS9yZWluZ29sZC9jYWxlbmRhci1ib29rL0NhbGVuZHJpY2EuaHRtbAorICAgICAqIAorICAgICAqIEV0aGlvcGljICAgICAgIEdyZWdvcmlhbiAgICBKRAorICAgICAqIDA3LzA1Ly04ICAgICAgIDAxLzAxLzAwMDAgIDE3MjEwNjAKKyAgICAgKiAwOC8wNS8tNyAgICAgICAwMS8wMS8wMDAxICAxNzIxNDI2CisgICAgICogMDYvMTMvLTEgICAgICAgMjcvMDgvMDAwNyAgMTcyMzg1NQorICAgICAqIAorICAgICAqIDAxLzAxLzAwMDAgICAgIDI4LzA4LzAwMDcgIDE3MjM4NTYKKyAgICAgKiAwMS8wMS8wMDAxICAgICAyNy8wOC8wMDA4ICAxNzI0MjIxCisgICAgICogMDEvMDEvMDAwMiAgICAgMjcvMDgvMDAwOSAgMTcyNDU4NgorICAgICAqIDAxLzAxLzAwMDMgICAgIDI3LzA4LzAwMTAgIDE3MjQ5NTEKKyAgICAgKiAwMS8wMS8wMDA0ICAgICAyOC8wOC8wMDExICAxNzI0NTM3CisgICAgICogMDUvMTMvMDAwMCAgICAgMjYvMDgvMDAwOCAgMTcyNDIyMAorICAgICAqIDA1LzEzLzAwMDEgICAgIDI2LzA4LzAwMDkgIDE3MjQ1ODUKKyAgICAgKiAwNS8xMy8wMDAyICAgICAyNi8wOC8wMDEwICAxNzI0OTUwCisgICAgICogMDUvMTMvMDAwMyAgICAgMjYvMDgvMDAxMSAgMTcyNTMxNQorICAgICAqIDA2LzEzLzAwMDMgICAgIDI3LzA4LzAwMTEgIDE3MjUzMTYgIGZpcnN0IGV0aGlvcGlhbiBsZWFwIHllYXIKKyAgICAgKiAwNS8xMy8wMDA0ICAgICAyNi8wOC8wMDEyICAxNzI1NTYxCisgICAgICogCisgICAgICogMDYvMDIvMTU3NSAgICAgMTMvMTAvMTU4MiAgMjI5OTE1OQorICAgICAqIDA3LzAyLzE1NzUgICAgIDE0LzEwLzE1ODIgIDIyOTkxNjAgIEp1bGlhbiAwNC8xMC8xNTgyCisgICAgICogMDgvMDIvMTU3NSAgICAgMTUvMTAvMTU4MiAgMjI5OTE2MQorICAgICAqIDA5LzAyLzE1NzUgICAgIDE2LzEwLzE1ODIgIDIyOTkxNjIKKyAgICAgKiAKKyAgICAgKiAyMy8wNC8xODkyICAgICAwMS8wMS8xOTAwICAyNDE1MDIxCisgICAgICogMjMvMDQvMTk5NyAgICAgMDEvMDEvMjAwNSAgMjQ1MzM3MgorICAgICAqIDA1LzEzLzIwMDAgICAgIDEwLzA5LzIwMDggIDI0NTQ3MjAKKyAgICAgKi8KKyAgICAKKyAgICAvKiogQSBodWdlIGxpc3Qgb2YgdGVzdCBjYXNlcyB0byBtYWtlIHN1cmUgdGhhdCBjb21wdXRlVGltZSBhbmQgY29tcHV0ZUZpZWxkcworICAgICAqIHdvcmsgcHJvcGVybHkgZm9yIGEgd2lkZSByYW5nZSBvZiBkYXRhIGluIHRoZSBjaXZpbCBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZXMoKQorICAgIHsKKyAgICAgICAgZmluYWwgVGVzdENhc2VbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBUaGUgbW9udGhzIGluIHRoaXMgdGFibGUgYXJlIDEtYmFzZWQgcmF0aGVyIHRoYW4gMC1iYXNlZCwKKyAgICAgICAgICAgIC8vIGJlY2F1c2UgaXQncyBlYXNpZXIgdG8gZWRpdCB0aGF0IHdheS4KKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgIEV0aGlvcGljCisgICAgICAgICAgICAvLyAgICAgICAgICBKdWxpYW4gRGF5ICBFcmEgIFllYXIgIE1vbnRoIERheSAgV2tEYXkgSG91ciBNaW4gU2VjCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gRGF0ZXMgZnJvbSAiRW1wb3JlciBUaGVvZG9yZS4uLiIKKworICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MDE0NDIuNSwgIDEsICAxODU1LCAgICAyLCAgMjAsICBXRUQsICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAyOS8xMC8xODYyCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQwMjQyMi41LCAgMSwgIDE4NTcsICAgMTAsICAyOSwgIFdFRCwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDA1LzA3LzE4NjUKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAyNjMwLjUsICAxLCAgMTg1OCwgICAgNSwgIDIyLCAgTU9OLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjkvMDEvMTg2NgorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MDI3MDguNSwgIDEsICAxODU4LCAgICA4LCAgMTAsICBUVUUsICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxNy8wNC8xODY2CisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQwMjk3MS41LCAgMSwgIDE4NTksICAgIDQsICAyOCwgIFNBVCwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDA1LzAxLzE4NjcKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDAzMzQ0LjUsICAxLCAgMTg2MCwgICAgNSwgICA1LCAgTU9OLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMTMvMDEvMTg2OAorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBNaXNjZWxsYW5lb3VzOgorICAgICAgICAgICAgLyogU2tpcCB0aGVzZSB0ZXN0cyB1bnRpbCBKRCBidWcgZml4ZWQgaW4gdGhlIEdyZWdvcmlhbiBjYWxlbmRhcjoKKyAgICAgICAgICAgICAqIGh0dHA6Ly93d3cuanRjc3YuY29tL2NnaWJpbi9pY3UtYnVncy9pbmNvbWluZz9pZD00NDA2O3BhZ2U9Mjt1c2VyPWd1ZXN0CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyMTA1OS41LCAgMCwgICAgLTgsICAgIDUsICAgNywgIFNBVCwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDAxLzAxLzAwMDAKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyMTQyNS41LCAgMCwgICAgLTcsICAgIDUsICAgOCwgIE1PTiwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDAxLzAxLzAwMDEKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyMzg1NC41LCAgMCwgICAgLTEsICAgMTMsICAgNiwgIE1PTiwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI3LzA4LzAwMDcKKyAgICAgICAgICAgIAorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzIzODU1LjUsICAxLCAgICAgMCwgICAgMSwgICAxLCAgVFVFLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjgvMDgvMDAwNworICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzI0MjIwLjUsICAxLCAgICAgMSwgICAgMSwgICAxLCAgV0VELCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjcvMDgvMDAwOAorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzI0NTg1LjUsICAxLCAgICAgMiwgICAgMSwgICAxLCAgVEhVLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjcvMDgvMDAwOQorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzI0OTUwLjUsICAxLCAgICAgMywgICAgMSwgICAxLCAgRlJJLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjcvMDgvMDAxMAorCisgICAgICAgICAgICAvLyBuZXcgVGVzdENhc2UoMTcyNDUzNi41LCAgMSwgICAgIDQsICAgIDEsICAgMSwgIFNVTiwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI4LzA4LzAwMTEKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyNTMxNi41LCAgMSwgICAgIDQsICAgIDEsICAgMSwgIFNVTiwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI4LzA4LzAwMTEgLSBkbGYKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyNDIxOS41LCAgMSwgICAgIDAsICAgMTMsICAgNSwgIFRVRSwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI2LzA4LzAwMDgKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyNDU4NC41LCAgMSwgICAgIDEsICAgMTMsICAgNSwgIFdFRCwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI2LzA4LzAwMDkKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyNDk0OS41LCAgMSwgICAgIDIsICAgMTMsICAgNSwgIFRIVSwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI2LzA4LzAwMTAKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyNTMxNC41LCAgMSwgICAgIDMsICAgMTMsICAgNSwgIEZSSSwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI2LzA4LzAwMTEKKyAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTcyNTMxNS41LCAgMSwgICAgIDMsICAgMTMsICAgNiwgIFNBVCwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDI3LzA4LzAwMTEgLSBmaXJzdCBldGhpb3BpYyBsZWFwIHllYXIKKyAgICAgICAgICAgIC8vIG5ldyBUZXN0Q2FzZSgxNzI1NTYwLjUsICAxLCAgICAgNCwgICAxMywgICA1LCAgU1VOLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjYvMDgvMDAxMiAtIGRsZgorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNzI1NjgwLjUsICAxLCAgICAgNCwgICAxMywgICA1LCAgU1VOLCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMjYvMDgvMDAxMgorICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjk5MTU4LjUsICAxLCAgMTU3NSwgICAgMiwgICA2LCAgV0VELCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMTMvMTAvMTU4MiAgCisgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyOTkxNTkuNSwgIDEsICAxNTc1LCAgICAyLCAgIDcsICBUSFUsICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxNC8xMC8xNTgyICBKdWxpYW4gMDQvMTAvMTU4MgorCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI5OTE2MC41LCAgMSwgIDE1NzUsICAgIDIsICAgOCwgIEZSSSwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDE1LzEwLzE1ODIKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjk5MTYxLjUsICAxLCAgMTU3NSwgICAgMiwgICA5LCAgU0FULCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMTYvMTAvMTU4MgorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQxNTAyMC41LCAgMSwgIDE4OTIsICAgIDQsICAyMywgIE1PTiwgICAwLCAgMCwgIDApLCAvLyBHcmVnb3JpYW46IDAxLzAxLzE5MDAKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDUzMzcxLjUsICAxLCAgMTk5NywgICAgNCwgIDIzLCAgU0FULCAgIDAsICAwLCAgMCksIC8vIEdyZWdvcmlhbjogMDEvMDEvMjAwNQorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTQ3MTkuNSwgIDEsICAyMDAwLCAgIDEzLCAgIDUsICBXRUQsICAgMCwgIDAsICAwKSwgLy8gR3JlZ29yaWFuOiAxMC8wOS8yMDA4CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBFdGhpb3BpY0NhbGVuZGFyIHRlc3RDYWxlbmRhciA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKCk7CisgICAgICAgIHRlc3RDYWxlbmRhci5zZXRMZW5pZW50KHRydWUpOworICAgICAgICBkb1Rlc3RDYXNlcyh0ZXN0cywgdGVzdENhbGVuZGFyKTsKKyAgICB9CisKKyAgICAvLyBiYXNpYyBjaGVjayB0byBzZWUgdGhhdCB3ZSBwcmludCBvdXQgZXJhcyBvaworICAgIC8vIGV2ZW50dWFsbHkgc2hvdWxkIG1vZGlmeSB0byB1c2UgbG9jYWxlIHN0cmluZ3MgYW5kIGZvcm1hdHRlciBhcHByb3ByaWF0ZSB0byBjb3B0aWMgY2FsZW5kYXIKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXJhU3RhcnQoKSB7CisgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgY2FsID0gbmV3IEV0aGlvcGljQ2FsZW5kYXIoMCwgMCwgMSk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkVFRSBNTU0gZGQsIHl5eXkgR0ciKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJFdGhpb3BpYyBEYXRlIiwgIlR1ZSBKYW4gMDEsIDAwMDAgQUQiLCBmbXQuZm9ybWF0KGNhbCkpOworCisgICAgICAgIC8vIFRoZSBncmVnb3JpYW4gY2FsZW5kYXIgZ2V0cyBvZmYgYnkgdHdvIGRheXMgd2hlbgorICAgICAgICAvLyB0aGUgZGF0ZSBnZXRzIGxvdywgdW5sZXNzIHRoZSBncmVnb3JpYW4gY2hhbmdlb3ZlciBpcyBzZXQgdG8gCisgICAgICAgIC8vIHZlcnkgZWFybHkuICBUaGUgZnVubnkgdGhpbmcgaXMsIGl0J3Mgb2sgZm9yIGRhdGVzIGluIHRoZSB5ZWFyCisgICAgICAgIC8vIDI4MywgYnV0IG5vdCBpbiB0aGUgeWVhciA3LCBhbmQgaXQgY2xhaW1zIHRvIGJlIG9rIHVudGlsIHRoZSB5ZWFyIDQuCisgICAgICAgIC8vIHNob3VsZCB0cmFjayBkb3duIHdoZW4gdGhlIGRhdGVzIHN0YXJ0IHRvIGRpZmZlci4uLgorICAgICAgICAKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgZ2Muc2V0R3JlZ29yaWFuQ2hhbmdlKG5ldyBEYXRlKExvbmcuTUlOX1ZBTFVFKSk7IC8vIGFjdCBsaWtlIHByb2xlcHRpYyBHcmVnb3JpYW4KKyAgICAgICAgZ2Muc2V0VGltZShjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJHcmVnb3JpYW4gRGF0ZSIsICJUdWUgQXVnIDI4LCAwMDA3IEFEIiwgZm10LmZvcm1hdChnYykpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNpYygpIHsKKyAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcigpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxMDAwLCAwLCAzMCk7CisgICAgICAgIGxvZ2xuKCIxMDAwLzAvMzAtPiAiICsKKyAgICAgICAgICAgICAgY2FsLmdldChZRUFSKSArICIvIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoTU9OVEgpICsgIi8iICsgCisgICAgICAgICAgICAgIGNhbC5nZXQoREFURSkpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxLCAwLCAzMCk7CisgICAgICAgIGxvZ2xuKCIxLzAvMzAgLT4gIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICBjYWwuZ2V0KE1PTlRIKSArICIvIiArIAorICAgICAgICAgICAgICBjYWwuZ2V0KERBVEUpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEpEKCl7CisgICAgICAgIGludCBqZCA9IEV0aGlvcGljQ2FsZW5kYXIuRXRoaW9waWNUb0pEKDE1NjcsOCw5KTsKKyAgICAgICAgSW50ZWdlcltdIGwgPSBFdGhpb3BpY0NhbGVuZGFyLmdldERhdGVGcm9tSkQoamQpOworICAgICAgICBpZiAobFswXS5pbnRWYWx1ZSgpID09IDE1NjcgJiYKKyAgICAgICAgICAgIGxbMV0uaW50VmFsdWUoKSA9PSA4ICYmCisgICAgICAgICAgICBsWzJdLmludFZhbHVlKCkgPT0gOSl7CisgICAgICAgICAgICBsb2dsbigiRXRoaW9waWNDYWxlbmRhci5nZXREYXRlRnJvbUpEIHRlc3RlZCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkV0aGlvcGljQ2FsZW5kYXIuZ2V0RGF0ZUZyb21KRCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpIHsKKworICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgRXRoaW9waWNDYWxlbmRhcihUaW1lWm9uZSkKKyAgICAgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgY2FsID0gbmV3IEV0aGlvcGljQ2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsgCisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgRXRoaW9waWNDYWxlbmRhciB3aXRoIFRpbWVab25lIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgRXRoaW9waWNDYWxlbmRhcihVTG9jYWxlKQorICAgICAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcihVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgRXRoaW9waWNDYWxlbmRhciB3aXRoIFVMb2NhbGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgLy8gbmV3IEV0aGlvcGljQ2FsZW5kYXIoTG9jYWxlKQorICAgICAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcihMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBFdGhpb3BpY0NhbGVuZGFyIHdpdGggTG9jYWxlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgRXRoaW9waWNDYWxlbmRhcihUaW1lWm9uZSwgTG9jYWxlKQorICAgICAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEV0aGlvcGljQ2FsZW5kYXIgd2l0aCBUaW1lWm9uZSxMb2NhbGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBFdGhpb3BpY0NhbGVuZGFyKFRpbWVab25lLCBVTG9jYWxlKQorICAgICAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBFdGhpb3BpY0NhbGVuZGFyIHdpdGggVGltZVpvbmUsVUxvY2FsZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICAvLyBuZXcgRXRoaW9waWNDYWxlbmRhcihEYXRlKQorICAgICAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWwgPSBuZXcgRXRoaW9waWNDYWxlbmRhcihuZXcgRGF0ZSgpKTsKKyAgICAgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBFdGhpb3BpY0NhbGVuZGFyIHdpdGggRGF0ZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgLy8gbmV3IEV0aGlvcGljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpCisgICAgICAgICAgICBFdGhpb3BpY0NhbGVuZGFyIGNhbCA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKDE5OTcsIEV0aGlvcGljQ2FsZW5kYXIuTUVTS0VSRU0sIDEpOworICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEV0aGlvcGljQ2FsZW5kYXIgd2l0aCB5ZWFyLG1vbnRoLGRhdGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5ldyBFdGhpb3BpY0NhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwgaW50IG1pbnV0ZSwgaW50IHNlY29uZCkKKyAgICAgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgY2FsID0gbmV3IEV0aGlvcGljQ2FsZW5kYXIoMTk5NywgRXRoaW9waWNDYWxlbmRhci5NRVNLRVJFTSwgMSwgMSwgMSwgMSk7CisgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgRXRoaW9waWNDYWxlbmRhciB3aXRoIHllYXIsbW9udGgsZGF0ZSxob3VyLG1pbnV0ZSxzZWNvbmQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIHNldENpdmlsL2lzQ2l2aWwKKyAgICAgICAgICAgIC8vIG9wZXJhdGlvbnMgb24gbm9uLWNpdmlsIGNhbGVuZGFyCisgICAgICAgICAgICBFdGhpb3BpY0NhbGVuZGFyIGNhbCA9IG5ld0FtZXRlQWxlbUVyYUNhbGVuZGFyKCk7CisgICAgICAgICAgICBjYWwuc2V0QW1ldGVBbGVtRXJhKGZhbHNlKTsKKyAgICAgICAgICAgIGlmIChjYWwuaXNBbWV0ZUFsZW1FcmEoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFdGhpb3BpY0NhbGVuZGFyIGNhbGVuZGFyIGlzIG9sZCBzeXN0ZW0iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgRGF0ZSBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgY2FsLnNldFRpbWUobm93KTsKKworICAgICAgICAgICAgRGF0ZSB0aGVuID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGlmICghbm93LmVxdWFscyh0aGVuKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXQvc2V0IHRpbWUgZmFpbGVkIHdpdGggbm9uLWNpdmlsIEV0aGlvcGljQ2FsZW5kYXIgY2FsZW5kYXIiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nbG4odGhlbi50b1N0cmluZygpKTsKKworICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSk7CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLllFQVIsIDEpOworCisgICAgICAgICAgICBsb2dsbihjYWwuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGRhdGEKKyAgICAgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgY2FsID0gbmV3IEV0aGlvcGljQ2FsZW5kYXIoMTk5NywgRXRoaW9waWNDYWxlbmRhci5NRVNLRVJFTSwgMSk7CisgICAgICAgICAgICBEYXRlIHRpbWUgPSBjYWwuZ2V0VGltZSgpOworCisgICAgICAgICAgICBTdHJpbmdbXSBjYWxlbmRhckxvY2FsZXMgPSB7CisgICAgICAgICAgICAgICAgImFtX0VUIiwgImdlel9FVCIsICJ0aV9FVCIKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIFN0cmluZ1tdIGZvcm1hdExvY2FsZXMgPSB7CisgICAgICAgICAgICAgICAgImVuIiwgImFtIiwgImdleiIsICJ0aSIKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFyTG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBjYWxMb2NOYW1lID0gY2FsZW5kYXJMb2NhbGVzW2ldOworICAgICAgICAgICAgICAgIExvY2FsZSBjYWxMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGNhbExvY05hbWUpOworICAgICAgICAgICAgICAgIGNhbCA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyKGNhbExvY2FsZSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGZvcm1hdExvY2FsZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxvY05hbWUgPSBmb3JtYXRMb2NhbGVzW2pdOworICAgICAgICAgICAgICAgICAgICBMb2NhbGUgZm9ybWF0TG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgZm9ybWF0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oY2FsTG9jTmFtZSArICIvIiArIGxvY05hbWUgKyAiIC0tPiAiICsgZm9ybWF0LmZvcm1hdCh0aW1lKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIEV0aGlvcGljQ2FsZW5kYXIgbmV3QW1ldGVBbGVtRXJhQ2FsZW5kYXIoKSB7CisgICAgICAgIEV0aGlvcGljQ2FsZW5kYXIgYWxlbWF3aUNhbGVuZGFyID0gbmV3IEV0aGlvcGljQ2FsZW5kYXIoKTsKKyAgICAgICAgYWxlbWF3aUNhbGVuZGFyLnNldEFtZXRlQWxlbUVyYSh0cnVlKTsKKyAgICAgICAgcmV0dXJuIGFsZW1hd2lDYWxlbmRhcjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSGVicmV3VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0hlYnJld1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NTBlMzJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0hlYnJld1Rlc3QuamF2YQpAQCAtMCwwICsxLDQ1MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBUZXN0cyBmb3IgdGhlIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiBjbGFzcy4KKyAqLworcHVibGljIGNsYXNzIEhlYnJld1Rlc3QgZXh0ZW5kcyBDYWxlbmRhclRlc3QgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSGVicmV3VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvLyBDb25zdGFudHMgdG8gc2F2ZSB0eXBpbmcuCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVElTSFJJICA9IEhlYnJld0NhbGVuZGFyLlRJU0hSSTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIRVNIVkFOID0gSGVicmV3Q2FsZW5kYXIuSEVTSFZBTjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSVNMRVYgID0gSGVicmV3Q2FsZW5kYXIuS0lTTEVWOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFVkVUICAgPSBIZWJyZXdDYWxlbmRhci5URVZFVDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSEVWQVQgID0gSGVicmV3Q2FsZW5kYXIuU0hFVkFUOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFEQVJfMSAgPSBIZWJyZXdDYWxlbmRhci5BREFSXzE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQURBUiAgICA9IEhlYnJld0NhbGVuZGFyLkFEQVI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTklTQU4gICA9IEhlYnJld0NhbGVuZGFyLk5JU0FOOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElZQVIgICAgPSBIZWJyZXdDYWxlbmRhci5JWUFSOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJVkFOICAgPSBIZWJyZXdDYWxlbmRhci5TSVZBTjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQU1VWiAgID0gSGVicmV3Q2FsZW5kYXIuVEFNVVo7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVYgICAgICA9IEhlYnJld0NhbGVuZGFyLkFWOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVMVUwgICAgPSBIZWJyZXdDYWxlbmRhci5FTFVMOworCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgYmVoYXZpb3Igb2YgSGVicmV3Q2FsZW5kYXIucm9sbAorICAgICAqIFRoZSBvbmx5IHJlYWwgbmFzdGluZXNzIHdpdGggcm9sbCBpcyB0aGUgTU9OVEggZmllbGQsIHNpbmNlIGEgeWVhciBjYW4KKyAgICAgKiBoYXZlIGEgdmFyaWFibGUgbnVtYmVyIG9mIG1vbnRocy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Um9sbCgpIHsKKyAgICAgICAgaW50W11bXSB0ZXN0cyA9IG5ldyBpbnRbXVtdIHsKKyAgICAgICAgICAgIC8vICAgICAgIGlucHV0ICAgICAgICAgICAgICAgIHJvbGwgYnkgICAgICAgICAgb3V0cHV0CisgICAgICAgICAgICAvLyAgeWVhciAgbW9udGggICAgIGRheSAgICAgZmllbGQgYW1vdW50ICAgIHllYXIgIG1vbnRoICAgICBkYXkKKyAgICAKKyAgICAgICAgICAgIHsgICA1NzU5LCBIRVNIVkFOLCAgIDIsICAgICBNT05USCwgICAxLCAgICAgNTc1OSwgS0lTTEVWLCAgICAyIH0sICAgLy8gbm9uLWxlYXAgeWVhcnMKKyAgICAgICAgICAgIHsgICA1NzU5LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgICAxLCAgICAgNTc1OSwgQURBUiwgICAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1OSwgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAgMiwgICAgIDU3NTksIE5JU0FOLCAgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTksIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgMTIsICAgICA1NzU5LCBTSEVWQVQsICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU5LCBBViwgICAgICAgIDEsICAgICBNT05USCwgIDEyLCAgICAgNTc1OSwgQVYsICAgICAgICAxIH0sIC8vIEFsYW4KKworICAgICAgICAgICAgeyAgIDU3NTcsIEhFU0hWQU4sICAgMiwgICAgIE1PTlRILCAgIDEsICAgICA1NzU3LCBLSVNMRVYsICAgIDIgfSwgICAvLyBsZWFwIHllYXJzCisgICAgICAgICAgICB7ICAgNTc1NywgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NTcsIEFEQVJfMSwgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTcsIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgIDIsICAgICA1NzU3LCBBREFSLCAgICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU3LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgICAzLCAgICAgNTc1NywgTklTQU4sICAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1NywgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAxMiwgICAgIDU3NTcsIFRFVkVULCAgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTcsIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgMTMsICAgICA1NzU3LCBTSEVWQVQsICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU3LCBBViwgICAgICAgIDEsICAgICBNT05USCwgIDEyLCAgICAgNTc1NywgVEFNVVosICAgICAxIH0sIC8vIEFsYW4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgeyAgIDU3NTcsIEtJU0xFViwgICAgMSwgICAgIERBVEUsICAgMzAsICAgICA1NzU3LCBLSVNMRVYsICAgIDIgfSwgICAvLyAyOS1kYXkgbW9udGgKKyAgICAgICAgICAgIHsgICA1NzU4LCBLSVNMRVYsICAgIDEsICAgICBEQVRFLCAgIDMxLCAgICAgNTc1OCwgS0lTTEVWLCAgICAyIH0sICAgLy8gMzAtZGF5IG1vbnRoCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRyeSBzb21lIG90aGVyIGZpZWxkcyB0b28KKyAgICAgICAgICAgIHsgICA1NzU3LCBUSVNIUkksICAgIDEsICAgICBZRUFSLCAgICAxLCAgICAgNTc1OCwgVElTSFJJLCAgICAxIH0sCisgICAKKworICAgICAgICAgICAgLy8gVHJ5IHNvbWUgcm9sbHMgdGhhdCByZXF1aXJlIG90aGVyIGZpZWxkcyB0byBiZSBhZGp1c3RlZAorICAgICAgICAgICAgeyAgIDU3NTcsIFRJU0hSSSwgICAzMCwgICAgIE1PTlRILCAgIDEsICAgICA1NzU3LCBIRVNIVkFOLCAgMjkgfSwKKyAgICAgICAgICAgIHsgICA1NzU4LCBLSVNMRVYsICAgMzAsICAgICBZRUFSLCAgIC0xLCAgICAgNTc1NywgS0lTTEVWLCAgIDI5IH0sCisgICAgICAgIH07CisvLyAgICAgICAgdHJ5eworICAgICAgICAgICAgSGVicmV3Q2FsZW5kYXIgY2FsID0gbmV3IEhlYnJld0NhbGVuZGFyKFVUQywgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgCisgICAgICAgICAgICBkb1JvbGxBZGQoUk9MTCwgY2FsLCB0ZXN0cyk7CisgLy8gICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisvLyAgICAgICAgICAgIHdhcm5sbigiR290IEV4Y2VwdGlvbjogIisgZXguZ2V0TWVzc2FnZSgpKTsKKyAvLyAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGJlaGF2aW9yIG9mIEhlYnJld0NhbGVuZGFyLnJvbGwKKyAgICAgKiBUaGUgb25seSByZWFsIG5hc3RpbmVzcyB3aXRoIHJvbGwgaXMgdGhlIE1PTlRIIGZpZWxkLCBzaW5jZSBhIHllYXIgY2FuCisgICAgICogaGF2ZSBhIHZhcmlhYmxlIG51bWJlciBvZiBtb250aHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFkZCgpIHsKKyAgICAgICAgaW50W11bXSB0ZXN0cyA9IG5ldyBpbnRbXVtdIHsKKyAgICAgICAgICAgIC8vICAgICAgIGlucHV0ICAgICAgICAgICAgICAgIGFkZCBieSAgICAgICAgICBvdXRwdXQKKyAgICAgICAgICAgIC8vICB5ZWFyICBtb250aCAgICAgZGF5ICAgICBmaWVsZCBhbW91bnQgICAgeWVhciAgbW9udGggICAgIGRheQorICAgICAgICAgICAgeyAgIDU3NTksIEhFU0hWQU4sICAgMiwgICAgIE1PTlRILCAgIDEsICAgICA1NzU5LCBLSVNMRVYsICAgIDIgfSwgICAvLyBub24tbGVhcCB5ZWFycworICAgICAgICAgICAgeyAgIDU3NTksIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgIDEsICAgICA1NzU5LCBBREFSLCAgICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU5LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgICAyLCAgICAgNTc1OSwgTklTQU4sICAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1OSwgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAxMiwgICAgIDU3NjAsIFNIRVZBVCwgICAgMiB9LAorCisgICAgICAgICAgICB7ICAgNTc1NywgSEVTSFZBTiwgICAyLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NTcsIEtJU0xFViwgICAgMiB9LCAgIC8vIGxlYXAgeWVhcnMKKyAgICAgICAgICAgIHsgICA1NzU3LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgICAxLCAgICAgNTc1NywgQURBUl8xLCAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1NywgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAgMiwgICAgIDU3NTcsIEFEQVIsICAgICAgMiB9LAorICAgICAgICAgICAgeyAgIDU3NTcsIFNIRVZBVCwgICAgMiwgICAgIE1PTlRILCAgIDMsICAgICA1NzU3LCBOSVNBTiwgICAgIDIgfSwKKyAgICAgICAgICAgIHsgICA1NzU3LCBTSEVWQVQsICAgIDIsICAgICBNT05USCwgIDEyLCAgICAgNTc1OCwgVEVWRVQsICAgICAyIH0sCisgICAgICAgICAgICB7ICAgNTc1NywgU0hFVkFULCAgICAyLCAgICAgTU9OVEgsICAxMywgICAgIDU3NTgsIFNIRVZBVCwgICAgMiB9LAorICAgICAgICAgICAgCisgICAgICAgICAgICB7ICAgNTc2MiwgQVYsICAgICAgICAxLCAgICAgTU9OVEgsICAgMSwgICAgIDU3NjIsIEVMVUwsICAgICAgMSB9LCAgIC8vIEpCIzIzMjcKKyAgICAgICAgICAgIHsgICA1NzYyLCBBViwgICAgICAgMzAsICAgICBEQVRFLCAgICAxLCAgICAgNTc2MiwgRUxVTCwgICAgICAxIH0sICAgLy8gSkIjMjMyNworICAgICAgICAgICAgeyAgIDU3NjIsIEVMVUwsICAgICAgMSwgICAgIERBVEUsICAgLTEsICAgICA1NzYyLCBBViwgICAgICAgMzAgfSwgICAvLyBKQiMyMzI3CisgICAgICAgICAgICB7ICAgNTc2MiwgRUxVTCwgICAgICAxLCAgICAgTU9OVEgsICAtMSwgICAgIDU3NjIsIEFWLCAgICAgICAgMSB9LCAgIC8vIEpCIzIzMjcKKyAgICAgICAgICAgIAorICAgICAgICAgICAgeyAgIDU3NTcsIEtJU0xFViwgICAgMSwgICAgIERBVEUsICAgMzAsICAgICA1NzU3LCBURVZFVCwgICAgIDIgfSwgICAvLyAyOS1kYXkgbW9udGgKKyAgICAgICAgICAgIHsgICA1NzU4LCBLSVNMRVYsICAgIDEsICAgICBEQVRFLCAgIDMxLCAgICAgNTc1OCwgVEVWRVQsICAgICAyIH0sICAgLy8gMzAtZGF5IG1vbnRoCisgICAgICAgIH07CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcihVVEMsIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIAorICAgICAgICAgICAgZG9Sb2xsQWRkKEFERCwgY2FsLCB0ZXN0cyk7CisgICAgICAgIH1jYXRjaCggTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgdGhlIGxvY2FsZSBkYXRhIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGh1Z2UgbGlzdCBvZiB0ZXN0IGNhc2VzIHRvIG1ha2Ugc3VyZSB0aGF0IGNvbXB1dGVUaW1lIGFuZCBjb21wdXRlRmllbGRzCisgICAgICogd29yayBwcm9wZXJseSBmb3IgYSB3aWRlIHJhbmdlIG9mIGRhdGEuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENhc2VzKCkgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBmaW5hbCBUZXN0Q2FzZVtdIHRlc3RDYXNlcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgLy8gTW9zdCBvZiB0aGVzZSB0ZXN0IGNhc2VzIHdlcmUgdGFrZW4gZnJvbSB0aGUgYmFjayBvZgorICAgICAgICAgICAgICAgICAgICAvLyAiQ2FsZW5kcmljYWwgQ2FsY3VsYXRpb25zIiwgd2l0aCBzb21lIGV4dHJhcyBhZGRlZCB0byBoZWxwCisgICAgICAgICAgICAgICAgICAgIC8vIGRlYnVnIGEgZmV3IG9mIHRoZSBwcm9ibGVtcyB0aGF0IGNyb3BwZWQgdXAgaW4gZGV2ZWxvcG1lbnQuCisgICAgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBtb250aHMgaW4gdGhpcyB0YWJsZSBhcmUgMS1iYXNlZCByYXRoZXIgdGhhbiAwLWJhc2VkLAorICAgICAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIGl0J3MgZWFzaWVyIHRvIGVkaXQgdGhhdCB3YXkuCisgICAgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgSnVsaWFuIERheSAgRXJhICBZZWFyICBNb250aCBEYXkgIFdrRGF5IEhvdXIgTWluIFNlYworICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTUwNzIzMS41LCAgMCwgIDMxNzQsICAgMTIsICAxMCwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTY2MDAzNy41LCAgMCwgIDM1OTMsICAgIDMsICAyNSwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTc0Njg5My41LCAgMCwgIDM4MzEsICAgIDEsICAgMywgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTc3MDY0MS41LCAgMCwgIDM4OTYsICAgIDEsICAgOSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTg5MjczMS41LCAgMCwgIDQyMzAsICAgIDQsICAxOCwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTkzMTU3OS41LCAgMCwgIDQzMzYsICAgMTAsICAgNCwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTk3NDg1MS41LCAgMCwgIDQ0NTUsICAgIDIsICAxMywgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjA5MTE2NC41LCAgMCwgIDQ3NzMsICAgIDksICAgNiwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjEyMTUwOS41LCAgMCwgIDQ4NTYsICAgIDksICAyMywgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjE1NTc3OS41LCAgMCwgIDQ5NTAsICAgIDgsICAgNywgIEZSSSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjE3NDAyOS41LCAgMCwgIDUwMDAsICAgIDcsICAgOCwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjE5MTU4NC41LCAgMCwgIDUwNDgsICAgIDgsICAyMSwgIEZSSSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjE5NTI2MS41LCAgMCwgIDUwNTgsICAgIDksICAgNywgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjIyOTI3NC41LCAgMCwgIDUxNTEsICAgMTEsICAgMSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI0NTU4MC41LCAgMCwgIDUxOTYsICAgIDUsICAgNywgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI2NjEwMC41LCAgMCwgIDUyNTIsICAgIDgsICAgMywgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI4ODU0Mi41LCAgMCwgIDUzMTQsICAgIDEsICAgMSwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI5MDkwMS41LCAgMCwgIDUzMjAsICAgIDYsICAyNywgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMyMzE0MC41LCAgMCwgIDU0MDgsICAgMTAsICAyMCwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDU1MS41LCAgMCwgIDU0NDAsICAgIDEsICAgMSwgIFRIVSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDU4MS41LCAgMCwgIDU0NDAsICAgIDIsICAgMSwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDYxMC41LCAgMCwgIDU0NDAsICAgIDMsICAgMSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDYzOS41LCAgMCwgIDU0NDAsICAgIDQsICAgMSwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDY2OC41LCAgMCwgIDU0NDAsICAgIDUsICAgMSwgIFRVRSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDY5OC41LCAgMCwgIDU0NDAsICAgIDYsICAgMSwgIFRIVSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDcyOC41LCAgMCwgIDU0NDAsICAgIDcsICAgMSwgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDc1Ny41LCAgMCwgIDU0NDAsICAgIDgsICAgMSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDc4Ny41LCAgMCwgIDU0NDAsICAgIDksICAgMSwgIFRVRSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDgxNi41LCAgMCwgIDU0NDAsICAgMTAsICAgMSwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDg0Ni41LCAgMCwgIDU0NDAsICAgMTEsICAgMSwgIEZSSSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDg0OC41LCAgMCwgIDU0NDAsICAgMTEsICAgMywgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjMzNDkzNC41LCAgMCwgIDU0NDEsICAgIDEsICAgMSwgIFRVRSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjM0ODAyMC41LCAgMCwgIDU0NzYsICAgMTIsICAgNSwgIEZSSSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjM2Njk3OC41LCAgMCwgIDU1MjgsICAgMTEsICAgNCwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjM4NTY0OC41LCAgMCwgIDU1NzksICAgMTIsICAxMSwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjM5MjgyNS41LCAgMCwgIDU1OTksICAgIDgsICAxMiwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQxNjIyMy41LCAgMCwgIDU2NjMsICAgIDgsICAyMiwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQyNTg0OC41LCAgMCwgIDU2ODksICAgMTIsICAxOSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQzMDI2Ni41LCAgMCwgIDU3MDIsICAgIDEsICAgOCwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQzMDgzMy41LCAgMCwgIDU3MDMsICAgIDgsICAxNCwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQzMTAwNC41LCAgMCwgIDU3MDQsICAgIDEsICAgOCwgIFRIVSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ0ODY5OC41LCAgMCwgIDU3NTIsICAgIDcsICAxMiwgIFRVRSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1MDEzOC41LCAgMCwgIDU3NTYsICAgIDcsICAgNSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ2NTczNy41LCAgMCwgIDU3OTksICAgIDIsICAxMiwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ4NjA3Ni41LCAgMCwgIDU4NTQsICAgMTIsICAgNSwgIFNVTiwgICAwLCAgMCwgIDApLAorCisgICAgICAgICAgICAgICAgICAgIC8vIEFkZGl0aW9uYWwgdGVzdCBjYXNlcyBmb3IgYnVncyBmb3VuZCBkdXJpbmcgZGV2ZWxvcG1lbnQKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgIEcuWVkvTU0vREQgIEVyYSAgWWVhciAgTW9udGggRGF5ICBXa0RheSBIb3VyIE1pbiBTZWMKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDEwMTMsIDksIDgsIDAsICA0Nzc0LCAgICAxLCAgIDEsICBUVUUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDEyMzksIDksIDEsIDAsICA1MDAwLCAgICAxLCAgIDEsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDEyNDAsIDksMTgsIDAsICA1MDAxLCAgICAxLCAgIDEsICBUVUUsICAgMCwgIDAsICAwKSwKKworICAgICAgICAgICAgICAgICAgICAvLyBUZXN0IGNhc2VzIHRha2VuIGZyb20gYSB0YWJsZSBvZiAxNCAieWVhciB0eXBlcyIgaW4gdGhlIEhlbHAgZmlsZQorICAgICAgICAgICAgICAgICAgICAvLyBvZiB0aGUgYXBwbGljYXRpb24gIkhlYnJldyBDYWxlbmRhciIKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTYxODcuNSwgIDAsICA1NzczLCAgICAxLCAgIDEsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTkxMTEuNSwgIDAsICA1NzgxLCAgICAxLCAgIDEsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTM2NDcuNSwgIDAsICA1NzY2LCAgICAxLCAgIDEsICBUVUUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjIwMzUuNSwgIDAsICA1Nzg5LCAgICAxLCAgIDEsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTg3NTYuNSwgIDAsICA1NzgwLCAgICAxLCAgIDEsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjA1ODYuNSwgIDAsICA1Nzg1LCAgICAxLCAgIDEsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjM4NjQuNSwgIDAsICA1Nzk0LCAgICAxLCAgIDEsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjM0ODEuNSwgIDAsICA1NzkzLCAgICAxLCAgIDEsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NzA0MjEuNSwgIDAsICA1ODEyLCAgICAxLCAgIDEsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjAyMDMuNSwgIDAsICA1Nzg0LCAgICAxLCAgIDEsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTk0NjQuNSwgIDAsICA1NzgyLCAgICAxLCAgIDEsICBUVUUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NjcxNDIuNSwgIDAsICA1ODAzLCAgICAxLCAgIDEsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTU0NDguNSwgIDAsICA1NzcxLCAgICAxLCAgIDEsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gVGVzdCBjYXNlcyBmb3IgSkIjMjMyNyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGh0dHA6Ly93d3cuZm91cm1pbGFiLmNvbS9kb2N1bWVudHMvY2FsZW5kYXIvCisgICAgICAgICAgICAgICAgICAgIC8vIGh0dHA6Ly93d3cuY2FsZW5kYXJob21lLmNvbS9jb252ZXJ0ZXIvCisvLyAgICAgICAgICAgICAgICAyNDUyNDY1LjUsIDIwMDIsIEpVTFksIDEwLCA1NzYyLCBBViwgMSwKKy8vICAgICAgICAgICAgICAgIDI0NTI0OTQuNSwgMjAwMiwgQVVHVVNULCA4LCA1NzYyLCBBViwgMzAsCisvLyAgICAgICAgICAgICAgICAyNDUyNDk1LjUsIDIwMDIsIEFVR1VTVCwgOSwgNTc2MiwgRUxVTCwgMSwKKy8vICAgICAgICAgICAgICAgIDI0NTI1MjMuNSwgMjAwMiwgU0VQVEVNQkVSLCA2LCA1NzYyLCBFTFVMLCAyOSwKKy8vICAgICAgICAgICAgICAgIDI0NTI1MjQuNSwgMjAwMiwgU0VQVEVNQkVSLCA3LCA1NzYzLCBUSVNIUkksIDEsCisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgSnVsaWFuIERheSAgRXJhICBZZWFyICBNb250aCBEYXkgIFdrRGF5IEhvdXIgTWluIFNlYworICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1MjQ2NS41LCAgMCwgIDU3NjIsICAgIEFWKzEsICAxLCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDUyNDk0LjUsICAwLCAgNTc2MiwgICAgQVYrMSwgMzAsICBUSFUsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTI0OTUuNSwgIDAsICA1NzYyLCAgRUxVTCsxLCAgMSwgIEZSSSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ1MjUyMy41LCAgMCwgIDU3NjIsICBFTFVMKzEsIDI5LCAgRlJJLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDUyNTI0LjUsICAwLCAgNTc2MyxUSVNIUkkrMSwgIDEsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGRvVGVzdENhc2VzKHRlc3RDYXNlcywgbmV3IEhlYnJld0NhbGVuZGFyKCkpOworICAgCisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgd2FybmxuKCJHb3QgRXhjZXB0aW9uOiAiKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvYmxlbSByZXBvcnRlZCBieSBBcm1hbmQgQmVuZGFuYW4gaW4gd2hpY2ggc2V0dGluZyBvZiB0aGUgTU9OVEgKKyAgICAgKiBmaWVsZCBpbiBhIEhlYnJldyBjYWxlbmRhciBjYXVzZXMgdGhlIHRpbWUgZmllbGRzIHRvIGdvIG5lZ2F0aXZlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUaW1lRmllbGRzKCkgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWxlbmRhciA9IG5ldyBIZWJyZXdDYWxlbmRhcig1NzYxLCAwLCAxMSwgMTIsIDI4LCAxNSk7CisgICAgICAgICAgICBjYWxlbmRhci5zZXQoQ2FsZW5kYXIuWUVBUiwgNTcxNyk7CisgICAgICAgICAgICBjYWxlbmRhci5zZXQoQ2FsZW5kYXIuTU9OVEgsIDIpOworICAgICAgICAgICAgY2FsZW5kYXIuc2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgMjMpOworICAgICAgICAgICAgaWYgKGNhbGVuZGFyLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgIT0gMTIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogSGVicmV3Q2FsZW5kYXIgSE9VUl9PRl9EQVkgPSAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgd2FybmxuKCJHb3QgRXhjZXB0aW9uOiAiKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvYmxlbSByZXBvcnRlZCBieSBBcm1hbmQgQmVuZGFuYW4gKGFybWFuZC5iZW5kYW5hbkBmcmVlLmZyKQorICAgICAqIGluIHdoaWNoIHNldHRpbmcgb2YgdGhlIE1PTlRIIGZpZWxkIGluIGEgSGVicmV3IGNhbGVuZGFyIHRvCisgICAgICogRUxVTCBvbiBub24gbGVhcCB5ZWFycyBjYXVzZXMgdGhlIGRhdGUgdG8gYmUgc2V0IG9uIFRJU0hSSSBuZXh0IHllYXIuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEVsdWxNb250aCgpIHsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgSGVicmV3Q2FsZW5kYXIgY2FsID0gbmV3IEhlYnJld0NhbGVuZGFyKCk7CisgICAgICAgICAgICAvLyBMZWFwIHllYXJzIGFyZToKKyAgICAgICAgICAgIC8vIDMgNiA4IDExIDE0IDE3IDE5IChhbmQgc28gb24gLSAxOS15ZWFyIGN5Y2xlKQorICAgICAgICAgICAgZm9yIChpbnQgeWVhcj0xOyB5ZWFyPDUwOyB5ZWFyKyspIHsKKyAgICAgICAgICAgICAgICAvLyBJIGhvcGUgdGhhdCB5ZWFyID0gMCBkb2VzIG5vdCBleGlzdHMKKyAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoZSB0ZXN0IGZhaWxzIGZvciBpdCAhCisgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBFTFVMKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaW50IHlhY3QgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgICAgIGludCBtYWN0ID0gY2FsLmdldChDYWxlbmRhci5NT05USCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHllYXIgIT0geWFjdCB8fCBFTFVMICE9IG1hY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBFTFVMICsgIi8iICsgeWVhciArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1hY3QgKyAiLyIgKyB5YWN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgd2FybmxuKCJHb3QgRXhjZXB0aW9uOiAiKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9ICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3Qgb2YgdGhlIGJlaGF2aW9yIG9mIHRoZSBtb250aCBmaWVsZC4gIFRoaXMgcmVxdWlyZXMgc3BlY2lhbAorICAgICAqIGhhbmRsaW5nIGluIHRoZSBIZWJyZXcgY2FsZW5kYXIgYmVjYXVzZSBvZiB0aGUgcGF0dGVybiBvZiBsZWFwCisgICAgICogeWVhcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE1vbnRoTW92ZW1lbnQoKSB7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcigpOworICAgICAgICAgICAgLy8gTGVhcCB5ZWFycyBhcmU6CisgICAgICAgICAgICAvLyAzIDYgOCAxMSAxNCAxNyAxOSAoYW5kIHNvIG9uIC0gMTkteWVhciBjeWNsZSkKKyAgICAgICAgICAgIC8vIFdlIGNhbid0IHRlc3QgY29tcGxldGUoKSBvbiBzb21lIGxpbmVzIGJlbG93IGJlY2F1c2Ugb2YgQURBUl8xIC0tIGlmCisgICAgICAgICAgICAvLyB0aGUgY2FsZW5kYXIgaXMgc2V0IHRvIEFEQVJfMSBvbiBhIG5vbi1sZWFwIHllYXIsIHRoZSByZXN1bHQgaXMgdW5kZWZpbmVkLgorICAgICAgICAgICAgaW50W10gREFUQSA9IHsKKyAgICAgICAgICAgICAgICAvLyBtMS95MSAtIG1vbnRoL3llYXIgYmVmb3JlIChtb250aCBpcyAxLWJhc2VkKSAKKyAgICAgICAgICAgICAgICAvLyBkZWx0YSAtIGFtb3VudCB0byBhZGQgdG8gbW9udGggZmllbGQKKyAgICAgICAgICAgICAgICAvLyBtMi95MiAtIG1vbnRoL3llYXIgYWZ0ZXIgYWRkKE1PTlRILCBkZWx0YSkKKyAgICAgICAgICAgICAgICAvLyBtMy95MyAtIG1vbnRoL3llYXIgYWZ0ZXIgc2V0KE1PTlRILCBtMStkZWx0YSkKKyAgICAgICAgICAgICAgLy9tMSAgeTEgZGVsdGEgIG0yICB5MiAgbTMgIHkzCisgICAgICAgICAgICAgICAgMTAsICAyLCAgKzI0LCAgOSwgIDQsICA5LCAgNCwKKyAgICAgICAgICAgICAgICAxMCwgIDIsICArNjAsICA4LCAgNywgIDgsICA3LAorICAgICAgICAgICAgICAgIDEgLCAgMiwgICsxMiwgIDEsICAzLCAxMywgIDIsIC8vKnNldCAhPSBhZGQ7IGFsc28gc2VlICcqJyBiZWxvdworICAgICAgICAgICAgICAgIDMgLCAxOCwgIC0yNCwgIDQsIDE2LCAgNCwgMTYsCisgICAgICAgICAgICAgICAgMSAsICA2LCAgLTI0LCAgMSwgIDQsICAxLCAgNCwKKyAgICAgICAgICAgICAgICA0ICwgIDMsICAgKzIsICA2LCAgMywgIDYsICAzLCAvLyBMZWFwIHllYXIgLSBubyBza2lwIDQsNSw2LDcsOAorICAgICAgICAgICAgICAgIDggLCAgMywgICAtMiwgIDYsICAzLCAgNiwgIDMsIC8vIExlYXAgeWVhciAtIG5vIHNraXAKKyAgICAgICAgICAgICAgICA0ICwgIDIsICAgKzIsICA3LCAgMiwgIDcsICAyLCAvLyBTa2lwIGxlYXAgbW9udGggNCw1LCg2KSw3LDgKKyAgICAgICAgICAgICAgICA4ICwgIDIsICAgLTIsICA1LCAgMiwgIDcsICAyLCAvLypTa2lwIGxlYXAgbW9udGggZ29pbmcgYmFja3dhcmQKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICkgeworICAgICAgICAgICAgICAgIGludCBtID0gREFUQVtpKytdLCB5ID0gREFUQVtpKytdOworICAgICAgICAgICAgICAgIGludCBtb250aERlbHRhID0gREFUQVtpKytdOworICAgICAgICAgICAgICAgIGludCBtMiA9IERBVEFbaSsrXSwgeTIgPSBEQVRBW2krK107CisgICAgICAgICAgICAgICAgaW50IG0zID0gREFUQVtpKytdLCB5MyA9IERBVEFbaSsrXTsKKyAgICAgICAgICAgICAgICBpbnQgbWFjdCwgeWFjdDsKKyAgICAKKyAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIHkpOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIG0tMSk7CisgICAgICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5NT05USCwgbW9udGhEZWx0YSk7CisgICAgICAgICAgICAgICAgeWFjdCA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUik7IG1hY3QgPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDE7CisgICAgICAgICAgICAgICAgaWYgKHkyICE9IHlhY3QgfHwgbTIgIT0gbWFjdCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIG0gKyAiLyIgKyB5ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiAtPiBhZGQoTU9OVEgsICIgKyBtb250aERlbHRhICsgIikgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1hY3QgKyAiLyIgKyB5YWN0ICsgIiwgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG0yICsgIi8iICsgeTIpOworICAgICAgICAgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCB5KTsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NT05USCwgbS0xKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlN0YXJ0OiAiICsgbSArICIvIiArIHkpOworICAgICAgICAgICAgICAgICAgICBpbnQgZGVsdGEgPSBtb250aERlbHRhID4gMCA/IDEgOiAtMTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgYz0wOyBjIT1tb250aERlbHRhOyBjKz1kZWx0YSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5NT05USCwgZGVsdGEpOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIisgIiArIGRlbHRhICsgIiBNT05USCAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSArIDEpICsgIi8iICsgY2FsLmdldChDYWxlbmRhci5ZRUFSKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCB5KTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCBtICsgbW9udGhEZWx0YSAtIDEpOworICAgICAgICAgICAgICAgIHlhY3QgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOyBtYWN0ID0gY2FsLmdldChDYWxlbmRhci5NT05USCkgKyAxOworICAgICAgICAgICAgICAgIGlmICh5MyAhPSB5YWN0IHx8IG0zICE9IG1hY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyAobSttb250aERlbHRhKSArICIvIiArIHkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0+IGNvbXBsZXRlKCkgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1hY3QgKyAiLyIgKyB5YWN0ICsgIiwgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG0zICsgIi8iICsgeTMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkdvdCBFeGNlcHRpb246ICIrIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGhhbmRsaW5nIG9mIEFEQVJfMS4KKyAgICAgKi8KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIFRlc3RBZGFyMSgpIHsKKyAgICAgICAgSGVicmV3Q2FsZW5kYXIgY2FsID0gbmV3IEhlYnJld0NhbGVuZGFyKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5MDMpOyAvLyBsZWFwCisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIEhlYnJld0NhbGVuZGFyLkFEQVJfMSk7CisgICAgICAgIGxvZ2xuKCIxOTAzKGxlYXApL0FEQVJfMSA9PiAiICsKKyAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArICIvIiArIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSk7CisKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMTkwNCk7IC8vIG5vbi1sZWFwCisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIEhlYnJld0NhbGVuZGFyLkFEQVJfMSk7CisgICAgICAgIGxvZ2xuKCIxOTA0KG5vbi1sZWFwKS9BREFSXzEgPT4gIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKyAiLyIgKyAoY2FsLmdldChDYWxlbmRhci5NT05USCkrMSkpOworICAgIH0KKyAgICAqLworCisgICAgLyoqCisgICAgICogV2l0aCBubyBmaWVsZHMgc2V0LCB0aGUgY2FsZW5kYXIgc2hvdWxkIHVzZSBkZWZhdWx0IHZhbHVlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVmYXVsdEZpZWxkVmFsdWVzKCkgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIoKTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgbG9nbG4oImNhbC5jbGVhcigpIC0+ICIgKyBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBsb2FkIHRoZSBsb2NhbGUgZGF0YSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpIHsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIG5ldyBIZWJyZXdDYWxlbmRhcihUaW1lWm9uZSkKKyAgICAgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEhlYnJld0NhbGVuZGFyIHdpdGggVGltZVpvbmUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gbmV3IEhlYnJld0NhbGVuZGFyKFVMb2NhbGUpCisgICAgICAgICAgICAgICAgSGVicmV3Q2FsZW5kYXIgY2FsID0gbmV3IEhlYnJld0NhbGVuZGFyKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEhlYnJld0NhbGVuZGFyIHdpdGggVUxvY2FsZSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBuZXcgSGVicmV3Q2FsZW5kYXIoTG9jYWxlKQorICAgICAgICAgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbCA9IG5ldyBIZWJyZXdDYWxlbmRhcihMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEhlYnJld0NhbGVuZGFyIHdpdGggbG9jYWxlIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBuZXcgSGVicmV3Q2FsZW5kYXIoRGF0ZSkKKyAgICAgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIobmV3IERhdGUoKSk7CisgICAgICAgICAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBIZWJyZXdDYWxlbmRhciB3aXRoIGRhdGUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIGRhdGEKKyAgICAgICAgICAgICAgICBIZWJyZXdDYWxlbmRhciBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIoMjgwMCwgSGVicmV3Q2FsZW5kYXIuU0hFVkFULCAxKTsKKyAgICAgICAgICAgICAgICBEYXRlIHRpbWUgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBjYWxlbmRhckxvY2FsZXMgPSB7CisgICAgICAgICAgICAgICAgIml3X0lMIgorICAgICAgICAgICAgICAgIH07CisgICAgICAgIAorICAgICAgICAgICAgICAgIFN0cmluZ1tdIGZvcm1hdExvY2FsZXMgPSB7CisgICAgICAgICAgICAgICAgImVuIiwgImZpIiwgImZyIiwgImh1IiwgIml3IiwgIm5sIgorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhckxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNhbExvY05hbWUgPSBjYWxlbmRhckxvY2FsZXNbaV07CisgICAgICAgICAgICAgICAgICAgIExvY2FsZSBjYWxMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGNhbExvY05hbWUpOworICAgICAgICAgICAgICAgICAgICBjYWwgPSBuZXcgSGVicmV3Q2FsZW5kYXIoY2FsTG9jYWxlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGZvcm1hdExvY2FsZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsb2NOYW1lID0gZm9ybWF0TG9jYWxlc1tqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZSBmb3JtYXRMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGxvY05hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgZm9ybWF0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKGNhbExvY05hbWUgKyAiLyIgKyBsb2NOYW1lICsgIiAtLT4gIiArIGZvcm1hdC5mb3JtYXQodGltZSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIHRoZSBsb2NhbGUgZGF0YS4gIisgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Ib2xpZGF5VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0hvbGlkYXlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVkYzk5MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Ib2xpZGF5VGVzdC5qYXZhCkBAIC0wLDAgKzEsMjExIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuRWFzdGVySG9saWRheTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSG9saWRheTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlRGF0ZVJ1bGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVEYXRlUnVsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZUhvbGlkYXk7CisKKy8qKgorICogVGVzdHMgZm9yIHRoZSA8Y29kZT5Ib2xpZGF5PC9jb2RlPiBjbGFzcy4KKyAqLworcHVibGljIGNsYXNzIEhvbGlkYXlUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSG9saWRheVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIGlmKGNhbD09bnVsbCl7CisgICAgICAgICAgICBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMSwgMCwgMSk7CisgICAgICAgICAgICBsb25nVGltZUFnbyA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyAgQ2FsZW5kYXIgY2FsOworICAgIHN0YXRpYyAgRGF0ZSBsb25nVGltZUFnbzsKKyAgICBzdGF0aWMgIERhdGUgbm93OworICAgIHN0YXRpYyAgbG9uZyBhd2hpbGUgPSAzNjAwTCAqIDI0ICogMjg7IC8vIDI4IGRheXMKKworICAgIHB1YmxpYyB2b2lkIFRlc3RBUEkoKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGdldEhvbGlkYXlzCisgICAgICAgICAgICBIb2xpZGF5W10gaG9saWRheXMgPSBIb2xpZGF5LmdldEhvbGlkYXlzKCk7CisgICAgICAgICAgICBleGVyY2lzZUhvbGlkYXlzKGhvbGlkYXlzLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGdldEhvbGlkYXlzKExvY2FsZSkKKyAgICAgICAgICAgIFN0cmluZ1tdIGxvY2FsZU5hbWVzID0KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiZW5fVVMiLAorICAgICAgICAgICAgICAgICJkYSIsCisgICAgICAgICAgICAgICAgImRhX0RLIiwKKyAgICAgICAgICAgICAgICAiZGUiLAorICAgICAgICAgICAgICAgICJkZV9BVCIsCisgICAgICAgICAgICAgICAgImRlX0RFIiwKKyAgICAgICAgICAgICAgICAiZWwiLAorICAgICAgICAgICAgICAgICJlbF9HUiIsCisgICAgICAgICAgICAgICAgImVuIiwKKyAgICAgICAgICAgICAgICAiZW5fQ0EiLAorICAgICAgICAgICAgICAgICJlbl9HQiIsCisgICAgICAgICAgICAgICAgImVzIiwKKyAgICAgICAgICAgICAgICAiZXNfTVgiLAorICAgICAgICAgICAgICAgICJmciIsCisgICAgICAgICAgICAgICAgImZyX0NBIiwKKyAgICAgICAgICAgICAgICAiZnJfRlIiLAorICAgICAgICAgICAgICAgICJpdCIsCisgICAgICAgICAgICAgICAgIml0X0lUIiwKKyAgICAgICAgICAgICAgICAiaXciLAorICAgICAgICAgICAgICAgICJpd19JTCIsCisgICAgICAgICAgICAgICAgImphIiwKKyAgICAgICAgICAgICAgICAiamFfSlAiLAorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVOYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGxvY2FsZU5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICBIb2xpZGF5W10gaG9saWRheXMgPSBIb2xpZGF5LmdldEhvbGlkYXlzKGxvY2FsZSk7CisgICAgICAgICAgICAgICAgZXhlcmNpc2VIb2xpZGF5cyhob2xpZGF5cywgbG9jYWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgZXhlcmNpc2VIb2xpZGF5cyhIb2xpZGF5W10gaG9saWRheXMsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBob2xpZGF5cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgZXhlcmNpc2VIb2xpZGF5KGhvbGlkYXlzW2ldLCBsb2NhbGUpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBleGVyY2lzZUhvbGlkYXkoSG9saWRheSBoLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIGxvZ2xuKCJob2xpZGF5OiAiICsgaC5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgbG9nbG4oImhvbGlkYXkgaW4gIiArIGxvY2FsZSArICI6ICIgKyBoLmdldERpc3BsYXlOYW1lKGxvY2FsZSkpOworCisgICAgICAgIERhdGUgZmlyc3QgPSBoLmZpcnN0QWZ0ZXIobG9uZ1RpbWVBZ28pOworICAgICAgICBsb2dsbigiZmlyc3RBZnRlcjogIiArIGxvbmdUaW1lQWdvICsgIiBpcyAiICsgZmlyc3QpOworICAgICAgICBpZiAoZmlyc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgZmlyc3QgPSBsb25nVGltZUFnbzsKKyAgICAgICAgfQorICAgICAgICBmaXJzdC5zZXRUaW1lKGZpcnN0LmdldFRpbWUoKSArIGF3aGlsZSk7CisKKyAgICAgICAgRGF0ZSBzZWNvbmQgPSBoLmZpcnN0QmV0d2VlbihmaXJzdCwgbm93KTsKKyAgICAgICAgbG9nbG4oImZpcnN0QmV0d2VlbjogIiArIGZpcnN0ICsgIiBhbmQgIiArIG5vdyArICIgaXMgIiArIHNlY29uZCk7CisgICAgICAgIGlmIChzZWNvbmQgPT0gbnVsbCkgeworICAgICAgICAgICAgc2Vjb25kID0gbm93OworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oImlzIG9uICIgKyBmaXJzdCArICI6ICIgKyBoLmlzT24oZmlyc3QpKTsKKyAgICAgICAgbG9nbG4oImlzIG9uICIgKyBub3cgKyAiOiAiICsgaC5pc09uKG5vdykpOworICAgICAgICBsb2dsbigKKyAgICAgICAgICAgICAgImlzIGJldHdlZW4gIgorICAgICAgICAgICAgICArIGZpcnN0CisgICAgICAgICAgICAgICsgIiBhbmQgIgorICAgICAgICAgICAgICArIG5vdworICAgICAgICAgICAgICArICI6ICIKKyAgICAgICAgICAgICAgKyBoLmlzQmV0d2VlbihmaXJzdCwgbm93KSk7CisgICAgICAgIGxvZ2xuKAorICAgICAgICAgICAgICAiaXMgYmV0d2VlbiAiCisgICAgICAgICAgICAgICsgZmlyc3QKKyAgICAgICAgICAgICAgKyAiIGFuZCAiCisgICAgICAgICAgICAgICsgc2Vjb25kCisgICAgICAgICAgICAgICsgIjogIgorICAgICAgICAgICAgICArIGguaXNCZXR3ZWVuKGZpcnN0LCBzZWNvbmQpKTsKKworICAgICAgICAvLyAgICAgICAgbG9nbG4oInJ1bGU6ICIgKyBoLmdldFJ1bGUoKS50b1N0cmluZygpKTsKKworICAgICAgICAvLyAgICAgICAgaC5zZXRSdWxlKGguZ2V0UnVsZSgpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCl7CisgICAgICAgIEhvbGlkYXlbXSBoID0geyBuZXcgRWFzdGVySG9saWRheSgiUmFtJ3MgRWFzdGVyIiksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU2ltcGxlSG9saWRheSgyLCAyOSwgMCwgIkxlYXAgeWVhciIsIDE5MDAsIDIxMDApfTsKKyAgICAgICAgZXhlcmNpc2VIb2xpZGF5cyhoLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKworICAgICAgICBSYW5nZURhdGVSdWxlIHJkciA9IG5ldyBSYW5nZURhdGVSdWxlKCk7CisgICAgICAgIHJkci5hZGQobmV3IFNpbXBsZURhdGVSdWxlKDcsIDEwKSk7CisgICAgICAgIERhdGUgbWJkID0gZ2V0RGF0ZSgxOTUzLCBDYWxlbmRhci5KVUxZLCAxMCk7CisgICAgICAgIERhdGUgZGJkID0gZ2V0RGF0ZSgxOTU4LCBDYWxlbmRhci5BVUdVU1QsIDE1KTsKKyAgICAgICAgRGF0ZSBuYmQgPSBnZXREYXRlKDE5OTAsIENhbGVuZGFyLkRFQ0VNQkVSLCAxNyk7CisgICAgICAgIERhdGUgYWJkID0gZ2V0RGF0ZSgxOTkyLCBDYWxlbmRhci5TRVBURU1CRVIsIDE2KTsKKyAgICAgICAgRGF0ZSB4YmQgPSBnZXREYXRlKDE5NzYsIENhbGVuZGFyLkpVTFksIDQpOworICAgICAgICBEYXRlIHliZCA9IGdldERhdGUoMjAwMywgQ2FsZW5kYXIuREVDRU1CRVIsIDgpOworICAgICAgICByZHIuYWRkKG5ldyBTaW1wbGVEYXRlUnVsZShDYWxlbmRhci5KVUxZLCAxMCwgQ2FsZW5kYXIuTU9OREFZLCBmYWxzZSkpOworICAgICAgICByZHIuYWRkKGRiZCwgbmV3IFNpbXBsZURhdGVSdWxlKENhbGVuZGFyLkFVR1VTVCwgMTUsIENhbGVuZGFyLldFRE5FU0RBWSwgdHJ1ZSkpOworICAgICAgICByZHIuYWRkKHhiZCwgbnVsbCk7CisgICAgICAgIHJkci5hZGQobmJkLCBuZXcgU2ltcGxlRGF0ZVJ1bGUoQ2FsZW5kYXIuREVDRU1CRVIsIDE3LCBDYWxlbmRhci5NT05EQVksIGZhbHNlKSk7CisgICAgICAgIHJkci5hZGQoeWJkLCBudWxsKTsKKworICAgICAgICBsb2dsbigiZmlyc3QgYWZ0ZXIgIiArIG1iZCArICIgaXMgIiArIHJkci5maXJzdEFmdGVyKG1iZCkpOworICAgICAgICBsb2dsbigiZmlyc3QgYmV0d2VlbiAiICsgbWJkICsgIiBhbmQgIiArIGRiZCArICIgaXMgIiArIHJkci5maXJzdEJldHdlZW4obWJkLCBkYmQpKTsKKyAgICAgICAgbG9nbG4oImZpcnN0IGJldHdlZW4gIiArIGRiZCArICIgYW5kICIgKyBuYmQgKyAiIGlzICIgKyByZHIuZmlyc3RCZXR3ZWVuKGRiZCwgbmJkKSk7CisgICAgICAgIGxvZ2xuKCJmaXJzdCBiZXR3ZWVuICIgKyBuYmQgKyAiIGFuZCAiICsgYWJkICsgIiBpcyAiICsgcmRyLmZpcnN0QmV0d2VlbihuYmQsIGFiZCkpOworICAgICAgICBsb2dsbigiZmlyc3QgYmV0d2VlbiAiICsgYWJkICsgIiBhbmQgIiArIHhiZCArICIgaXMgIiArIHJkci5maXJzdEJldHdlZW4oYWJkLCB4YmQpKTsKKyAgICAgICAgbG9nbG4oImZpcnN0IGJldHdlZW4gIiArIGFiZCArICIgYW5kICIgKyBudWxsICsgIiBpcyAiICsgcmRyLmZpcnN0QmV0d2VlbihhYmQsIG51bGwpKTsKKyAgICAgICAgbG9nbG4oImZpcnN0IGJldHdlZW4gIiArIHhiZCArICIgYW5kICIgKyBudWxsICsgIiBpcyAiICsgcmRyLmZpcnN0QmV0d2Vlbih4YmQsIG51bGwpKTsKKyAgICAgICAgCisgICAgICAgIC8vZ2V0UnVsZSwgc2V0UnVsZQorICAgICAgICBsb2dsbigiVGhlIHJ1bGUgaW4gdGhlIGhvbGlkYXk6ICIgKyBoWzFdLmdldFJ1bGUoKSk7CisgICAgICAgIGV4ZXJjaXNlSG9saWRheShoWzFdLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaFsxXS5zZXRSdWxlKHJkcik7CisgICAgICAgIGxvZ2xuKCJTZXQgdGhlIG5ldyBydWxlIHRvIHRoZSBTaW1wbGVIb2xpZGF5IC4uLiIpOworICAgICAgICBpZiAoIXJkci5lcXVhbHMoaFsxXS5nZXRSdWxlKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0UnVsZSBhbmQgc2V0UnVsZSBub3QgbWF0Y2hlZC4iKTsKKyAgICAgICAgfQorICAgICAgICBleGVyY2lzZUhvbGlkYXkoaFsxXSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdElzT24oKSB7CisgICAgICAgIC8vIGpiIDE5MDEKKyAgICAgICAgU2ltcGxlSG9saWRheSBzaCA9IG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkFVR1VTVCwgMTUsICJEb3VnJ3MgRGF5IiwgMTk1OCwgMjA1OCk7CisgICAgICAgIAorICAgICAgICBDYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMjAwMCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkFVR1VTVCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxNSk7CisgICAgICAgIAorICAgICAgICBEYXRlIGQwID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5TRUNPTkQsIDEpOworICAgICAgICBEYXRlIGQxID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5TRUNPTkQsIC0yKTsKKyAgICAgICAgRGF0ZSBkMiA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxKTsKKyAgICAgICAgRGF0ZSBkMyA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuU0VDT05ELCAxKTsKKyAgICAgICAgRGF0ZSBkNCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuU0VDT05ELCAtMik7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMTk1Nyk7CisgICAgICAgIERhdGUgZDUgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIDE5NTgpOworICAgICAgICBEYXRlIGQ2ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAyMDU4KTsKKyAgICAgICAgRGF0ZSBkNyA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgMjA1OSk7CisgICAgICAgIERhdGUgZDggPSBjYWwuZ2V0VGltZSgpOworCisgICAgICAgIERhdGVbXSBkYXRlcyA9IHsgZDAsIGQxLCBkMiwgZDMsIGQ0LCBkNSwgZDYsIGQ3LCBkOCB9OworICAgICAgICBib29sZWFuW10gaXNPbnMgPSB7IHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIERhdGUgZCA9IGRhdGVzW2ldOworICAgICAgICAgICAgbG9nbG4oIlxuZGF0ZTogIiArIGQpOworICAgICAgICAgICAgYm9vbGVhbiBpc09uID0gc2guaXNPbihkKTsKKyAgICAgICAgICAgIGxvZ2xuKCJpc09uRGF0ZTogIiArIGlzT24pOworICAgICAgICAgICAgaWYgKGlzT24gIT0gaXNPbnNbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZGF0ZTogIiArIGQgKyAiIHNob3VsZCBiZSBvbiBEb3VnJ3MgRGF5ISIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgRGF0ZSBoID0gc2guZmlyc3RBZnRlcihkKTsKKyAgICAgICAgICAgIGxvZ2xuKCJmaXJzdEFmdGVyOiAiICsgaCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSUJNQ2FsZW5kYXJUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSUJNQ2FsZW5kYXJUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTFlNGViNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9JQk1DYWxlbmRhclRlc3QuamF2YQpAQCAtMCwwICsxLDg0OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlpvbmVNZXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJBc3Ryb25vbWVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IFRlc3RzIG9mIG5ldyBmdW5jdGlvbmFsaXR5IGluIElCTUNhbGVuZGFyCisgKi8KK3B1YmxpYyBjbGFzcyBJQk1DYWxlbmRhclRlc3QgZXh0ZW5kcyBDYWxlbmRhclRlc3QgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJQk1DYWxlbmRhclRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB3ZWVrZW5kIHN1cHBvcnQgaW4gSUJNQ2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBOT1RFOiBUaGlzIHRlc3Qgd2lsbCBoYXZlIHRvIGJlIHVwZGF0ZWQgd2hlbiB0aGUgaXNXZWVrZW5kKCkgZXRjLgorICAgICAqICAgICAgIEFQSSBpcyBmaW5hbGl6ZWQgbGF0ZXIuCisgICAgICoKKyAgICAgKiAgICAgICBJbiBwYXJ0aWN1bGFyLCB0aGUgdGVzdCB3aWxsIGhhdmUgdG8gYmUgcmV3cml0dGVuIHRvIGluc3RhbnRpYXRlCisgICAgICogICAgICAgYSBDYWxlbmRhciBpbiB0aGUgZ2l2ZW4gbG9jYWxlICh1c2luZyBnZXRJbnN0YW5jZSgpKSBhbmQgY2FsbAorICAgICAqICAgICAgIHRoYXQgQ2FsZW5kYXIncyBpc1dlZWtlbmQoKSBldGMuIG1ldGhvZHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFdlZWtlbmQoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkVFRSBNTU0gZGQgeXl5eSBHIEhIOm1tOnNzLlNTUyIpOworCisgICAgICAgIC8vIE5PVEUKKyAgICAgICAgLy8gVGhpcyB0ZXN0IHRlc3RzIGZvciBzcGVjaWZpYyBsb2NhbGUgZGF0YS4gIFRoaXMgaXMgcHJvYmFibHkgb2theQorICAgICAgICAvLyBhcyBmYXIgYXMgVVMgZGF0YSBpcyBjb25jZXJuZWQsIGJ1dCBpZiB0aGUgQXJhYmljL0JhaHJhaW4gZGF0YQorICAgICAgICAvLyBjaGFuZ2VzLCB0aGlzIHRlc3Qgd2lsbCBoYXZlIHRvIGJlIHVwZGF0ZWQuCisKKyAgICAgICAgLy8gVGVzdCBzcGVjaWZpYyBkYXlzCisgICAgICAgIE9iamVjdFtdIERBVEExID0geworICAgICAgICAgICAgTG9jYWxlLlVTLCBuZXcgaW50W10geyAvLyBTYXR1cmRheTpTdW5kYXkKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTcsIDIzLCAgMCwgMCwgLy8gRnJpIDIzOjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE4LCAgMCwgLTEsIDAsIC8vIEZyaSAyMzo1OTo1OS45OTkKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTgsICAwLCAgMCwgMSwgLy8gU2F0IDAwOjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE4LCAxNSwgIDAsIDEsIC8vIFNhdCAxNTowMAorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxOSwgMjMsICAwLCAxLCAvLyBTdW4gMjM6MDAKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMjAsICAwLCAtMSwgMSwgLy8gU3VuIDIzOjU5OjU5Ljk5OQorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAyMCwgIDAsICAwLCAwLCAvLyBNb24gMDA6MDAKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMjAsICA4LCAgMCwgMCwgLy8gTW9uIDA4OjAwCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbmV3IExvY2FsZSgiYXIiLCAiQkgiKSwgbmV3IGludFtdIHsgLy8gVGh1cnNkYXk6RnJpZGF5CisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE1LCAyMywgIDAsIDAsIC8vIFdlZCAyMzowMAorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxNiwgIDAsIC0xLCAwLCAvLyBXZWQgMjM6NTk6NTkuOTk5CisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE2LCAgMCwgIDAsIDEsIC8vIFRodSAwMDowMAorICAgICAgICAgICAgICAgIDIwMDAsIENhbGVuZGFyLk1BUkNILCAxNiwgMTUsICAwLCAxLCAvLyBUaHUgMTU6MDAKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTcsIDIzLCAgMCwgMSwgLy8gRnJpIDIzOjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE4LCAgMCwgLTEsIDEsIC8vIEZyaSAyMzo1OTo1OS45OTkKKyAgICAgICAgICAgICAgICAyMDAwLCBDYWxlbmRhci5NQVJDSCwgMTgsICAwLCAgMCwgMCwgLy8gU2F0IDAwOjAwCisgICAgICAgICAgICAgICAgMjAwMCwgQ2FsZW5kYXIuTUFSQ0gsIDE4LCAgOCwgIDAsIDAsIC8vIFNhdCAwODowMAorICAgICAgICAgICAgfSwKKyAgICAgICAgfTsKKworICAgICAgICAvLyBUZXN0IGRheXMgb2YgdGhlIHdlZWsKKyAgICAgICAgT2JqZWN0W10gREFUQTIgPSB7CisgICAgICAgICAgICBMb2NhbGUuVVMsIG5ldyBpbnRbXSB7CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuTU9OREFZLCAgIENhbGVuZGFyLldFRUtEQVksCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuRlJJREFZLCAgIENhbGVuZGFyLldFRUtEQVksCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU0FUVVJEQVksIENhbGVuZGFyLldFRUtFTkQsCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU1VOREFZLCAgIENhbGVuZGFyLldFRUtFTkRfQ0VBU0UsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbmV3IExvY2FsZSgiYXIiLCAiQkgiKSwgbmV3IGludFtdIHsgLy8gVGh1cnNkYXk6RnJpZGF5CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuV0VETkVTREFZLENhbGVuZGFyLldFRUtEQVksCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU0FUVVJEQVksIENhbGVuZGFyLldFRUtEQVksCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuVEhVUlNEQVksIENhbGVuZGFyLldFRUtFTkQsCisgICAgICAgICAgICAgICAgQ2FsZW5kYXIuRlJJREFZLCAgIENhbGVuZGFyLldFRUtFTkRfQ0VBU0UsCisgICAgICAgICAgICB9LAorICAgICAgICB9OworCisgICAgICAgIC8vIFdlIG9ubHkgdGVzdCB0aGUgZ2V0RGF5T2ZXZWVrVHlwZSgpIGFuZCBpc1dlZWtlbmQoKSBBUElzLgorICAgICAgICAvLyBUaGUgZ2V0V2Vla2VuZFRyYW5zaXRpb24oKSBBUEkgaXMgdGVzdGVkIGluZGlyZWN0bHkgdmlhIHRoZQorICAgICAgICAvLyBpc1dlZWtlbmQoKSBBUEksIHdoaWNoIGNhbGxzIGl0LgorCisgICAgICAgIGZvciAoaW50IGkxPTA7IGkxPERBVEExLmxlbmd0aDsgaTErPTIpIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2MgPSAoTG9jYWxlKURBVEExW2kxXTsKKyAgICAgICAgICAgIGludFtdIGRhdGEgPSAoaW50W10pIERBVEExW2kxKzFdOworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobG9jKTsKKyAgICAgICAgICAgIGxvZ2xuKCJMb2NhbGU6ICIgKyBsb2MpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGRhdGEubGVuZ3RoOyBpKz02KSB7CisgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgY2FsLnNldChkYXRhW2ldLCBkYXRhW2krMV0sIGRhdGFbaSsyXSwgZGF0YVtpKzNdLCAwLCAwKTsKKyAgICAgICAgICAgICAgICBpZiAoZGF0YVtpKzRdICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUoY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkgKyBkYXRhW2krNF0pKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYm9vbGVhbiBpc1dlZWtlbmQgPSBjYWwuaXNXZWVrZW5kKCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBvayA9IGlzV2Vla2VuZCA9PSAoZGF0YVtpKzVdICE9IDApOworICAgICAgICAgICAgICAgIGlmIChvaykgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICAgIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKyAiIGlzV2Vla2VuZD0iICsgaXNXZWVrZW5kKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkgKyAiIGlzV2Vla2VuZD0iICsgaXNXZWVrZW5kICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQ9IiArICghaXNXZWVrZW5kKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaTI9MDsgaTI8REFUQTIubGVuZ3RoOyBpMis9MikgeworICAgICAgICAgICAgTG9jYWxlIGxvYyA9IChMb2NhbGUpREFUQTJbaTJdOworICAgICAgICAgICAgaW50W10gZGF0YSA9IChpbnRbXSkgREFUQTJbaTIrMV07CisgICAgICAgICAgICBsb2dsbigiTG9jYWxlOiAiICsgbG9jKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKGxvYyk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8ZGF0YS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgICAgICBpbnQgdHlwZSA9IGNhbC5nZXREYXlPZldlZWtUeXBlKGRhdGFbaV0pOworICAgICAgICAgICAgICAgIGludCBleHAgID0gZGF0YVtpKzFdOworICAgICAgICAgICAgICAgIGlmICh0eXBlID09IGV4cCkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICAgRE9XICIgKyBkYXRhW2ldICsgIiB0eXBlPSIgKyB0eXBlKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRE9XICIgKyBkYXRhW2ldICsgIiB0eXBlPSIgKyB0eXBlICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQ9IiArIGV4cCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUnVuIGEgdGVzdCBvZiBhIHF1YXNpLUdyZWdvcmlhbiBjYWxlbmRhci4gIFRoaXMgaXMgYSBjYWxlbmRhcgorICAgICAqIHRoYXQgYmVoYXZlcyBsaWtlIGEgR3JlZ29yaWFuIGJ1dCBoYXMgZGlmZmVyZW50IHllYXIvZXJhIG1hcHBpbmdzLgorICAgICAqIFRoZSBpbnRbXSBkYXRhIGFycmF5IHNob3VsZCBoYXZlIHRoZSBmb3JtYXQ6CisgICAgICoKKyAgICAgKiB7IGVyYSwgeWVhciwgZ3JlZ29yaWFuWWVhciwgbW9udGgsIGRheU9mTW9udGgsIC4uLiB9CisgICAgICovCisgICAgdm9pZCBxdWFzaUdyZWdvcmlhblRlc3QoQ2FsZW5kYXIgY2FsLCBpbnRbXSBkYXRhKSB7CisgICAgICAgIC8vIEFzIG9mIEpESyAxLjQuMV8wMSwgdXNpbmcgdGhlIFN1biBKREsgR3JlZ29yaWFuQ2FsZW5kYXIgYXMKKyAgICAgICAgLy8gYSByZWZlcmVuY2UgdGhyb3dzIHVzIG9mZiBieSBvbmUgaG91ci4gIFRoaXMgaXMgbW9zdCBsaWtlbHkKKyAgICAgICAgLy8gZHVlIHRvIHRoZSBKREsgMS40IGluY29ycG9yYXRpb24gb2YgaGlzdG9yaWNhbCB0aW1lIHpvbmVzLgorICAgICAgICAvL2phdmEudXRpbC5DYWxlbmRhciBncmVnbyA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBDYWxlbmRhciBncmVnbyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxkYXRhLmxlbmd0aDsgKSB7CisgICAgICAgICAgICBpbnQgZXJhID0gZGF0YVtpKytdOworICAgICAgICAgICAgaW50IHllYXIgPSBkYXRhW2krK107CisgICAgICAgICAgICBpbnQgZ3JlZ29yaWFuWWVhciA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgIGludCBtb250aCA9IGRhdGFbaSsrXTsKKyAgICAgICAgICAgIGludCBkYXlPZk1vbnRoID0gZGF0YVtpKytdOworCisgICAgICAgICAgICBncmVnby5jbGVhcigpOworICAgICAgICAgICAgZ3JlZ28uc2V0KGdyZWdvcmlhblllYXIsIG1vbnRoLCBkYXlPZk1vbnRoKTsKKyAgICAgICAgICAgIERhdGUgRCA9IGdyZWdvLmdldFRpbWUoKTsKKworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVSQSwgZXJhKTsKKyAgICAgICAgICAgIGNhbC5zZXQoeWVhciwgbW9udGgsIGRheU9mTW9udGgpOworICAgICAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGlmIChkLmVxdWFscyhEKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIGVyYSArICI6IiArIHllYXIgKyAiLyIgKyAobW9udGgrMSkgKyAiLyIgKyBkYXlPZk1vbnRoICsKKyAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBkKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBlcmEgKyAiOiIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsgZGF5T2ZNb250aCArCisgICAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgZCArICIsIGV4cGVjdGVkICIgKyBEKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShEKTsKKyAgICAgICAgICAgIGludCBlID0gY2FsLmdldChDYWxlbmRhci5FUkEpOworICAgICAgICAgICAgaW50IHkgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgaWYgKHkgPT0geWVhciAmJiBlID09IGVyYSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIEQgKyAiID0+ICIgKyBjYWwuZ2V0KENhbGVuZGFyLkVSQSkgKyAiOiIgKworICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICAgICAgICAgIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSArICIvIiArIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiRmFpbDogIiArIEQgKyAiID0+ICIgKyBjYWwuZ2V0KENhbGVuZGFyLkVSQSkgKyAiOiIgKworICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICAgICAgICAgIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSArICIvIiArIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBlcmEgKyAiOiIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgICAgICBkYXlPZk1vbnRoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGF0IEJ1ZGRoaXN0Q2FsZW5kYXIgc2hpZnRzIHllYXJzIHRvIEJ1ZGRoaXN0IEVyYSBidXQgb3RoZXJ3aXNlCisgICAgICogYmVoYXZlcyBsaWtlIEdyZWdvcmlhbkNhbGVuZGFyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWRkaGlzdCgpIHsKKyAgICAgICAgcXVhc2lHcmVnb3JpYW5UZXN0KG5ldyBCdWRkaGlzdENhbGVuZGFyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJFIDI1NDIgPT0gMTk5OSBDRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDI1NDIsIDE5OTksIENhbGVuZGFyLkpVTkUsIDQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWRkaGlzdENvdmVyYWdlKCkgeworICAgIHsKKyAgICAgICAgLy8gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoVUxvY2FsZSkKKyAgICAgICAgQnVkZGhpc3RDYWxlbmRhciBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcihVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEJ1ZGRoaXN0Q2FsZW5kYXIgd2l0aCBVTG9jYWxlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKFRpbWVab25lLFVMb2NhbGUpCisgICAgICAgIEJ1ZGRoaXN0Q2FsZW5kYXIgY2FsID0gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQnVkZGhpc3RDYWxlbmRhciB3aXRoIFRpbWVab25lIFVMb2NhbGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoVGltZVpvbmUpCisgICAgICAgIEJ1ZGRoaXN0Q2FsZW5kYXIgY2FsID0gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQnVkZGhpc3RDYWxlbmRhciB3aXRoIFRpbWVab25lIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKExvY2FsZSkKKyAgICAgICAgQnVkZGhpc3RDYWxlbmRhciBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcihMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQnVkZGhpc3RDYWxlbmRhciB3aXRoIExvY2FsZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgQnVkZGhpc3RDYWxlbmRhcihUaW1lWm9uZSwgTG9jYWxlKQorICAgICAgICBCdWRkaGlzdENhbGVuZGFyIGNhbCA9IG5ldyBCdWRkaGlzdENhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEJ1ZGRoaXN0Q2FsZW5kYXIgd2l0aCBUaW1lWm9uZSBhbmQgTG9jYWxlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKERhdGUpCisgICAgICAgIEJ1ZGRoaXN0Q2FsZW5kYXIgY2FsID0gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIobmV3IERhdGUoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEJ1ZGRoaXN0Q2FsZW5kYXIgd2l0aCBEYXRlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKQorICAgICAgICBCdWRkaGlzdENhbGVuZGFyIGNhbCA9IG5ldyBCdWRkaGlzdENhbGVuZGFyKDI1NDMsIENhbGVuZGFyLk1BWSwgMjIpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBCdWRkaGlzdENhbGVuZGFyIHdpdGggeWVhcixtb250aCxkYXRhIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBCdWRkaGlzdENhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwgaW50IG1pbnV0ZSwgaW50IHNlY29uZCkKKyAgICAgICAgQnVkZGhpc3RDYWxlbmRhciBjYWwgPSBuZXcgQnVkZGhpc3RDYWxlbmRhcigyNTQzLCBDYWxlbmRhci5NQVksIDIyLCAxLCAxLCAxKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgQnVkZGhpc3RDYWxlbmRhciB3aXRoIHllYXIsbW9udGgsZGF0ZSxob3VyLG1pbnV0ZSxzZWNvbmQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gZGF0YQorICAgICAgICBCdWRkaGlzdENhbGVuZGFyIGNhbCA9IG5ldyBCdWRkaGlzdENhbGVuZGFyKDI1NDMsIENhbGVuZGFyLk1BWSwgMjIpOworICAgICAgICBEYXRlIHRpbWUgPSBjYWwuZ2V0VGltZSgpOworCisgICAgICAgIFN0cmluZ1tdIGNhbGVuZGFyTG9jYWxlcyA9IHsKKyAgICAgICAgInRoX1RIIgorICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdIGZvcm1hdExvY2FsZXMgPSB7CisgICAgICAgICJlbiIsICJhciIsICJodSIsICJ0aCIKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbGVuZGFyTG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICBTdHJpbmcgY2FsTG9jTmFtZSA9IGNhbGVuZGFyTG9jYWxlc1tpXTsKKyAgICAgICAgTG9jYWxlIGNhbExvY2FsZSA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUoY2FsTG9jTmFtZSk7CisgICAgICAgIGNhbCA9IG5ldyBCdWRkaGlzdENhbGVuZGFyKGNhbExvY2FsZSk7CisKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBmb3JtYXRMb2NhbGVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBTdHJpbmcgbG9jTmFtZSA9IGZvcm1hdExvY2FsZXNbal07CisgICAgICAgICAgICBMb2NhbGUgZm9ybWF0TG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NOYW1lKTsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIGZvcm1hdExvY2FsZSk7CisgICAgICAgICAgICBsb2dsbihjYWxMb2NOYW1lICsgIi8iICsgbG9jTmFtZSArICIgLS0+ICIgKyBmb3JtYXQuZm9ybWF0KHRpbWUpKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGF0IEphcGFuZXNlQ2FsZW5kYXIgc2hpZnRzIHllYXJzIHRvIEJ1ZGRoaXN0IEVyYSBidXQgb3RoZXJ3aXNlCisgICAgICogYmVoYXZlcyBsaWtlIEdyZWdvcmlhbkNhbGVuZGFyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKYXBhbmVzZSgpIHsKKyAgICAgICAgLy8gRmlyc3QgbWFrZSBzdXJlIHRoaXMgdGVzdCB3b3JrcyBmb3IgR3JlZ29yaWFuQ2FsZW5kYXIKKyAgICAgICAgaW50W10gY29udHJvbCA9IHsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxODY4LCAxODY4LCBDYWxlbmRhci5TRVBURU1CRVIsIDgsCisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTg2OCwgMTg2OCwgQ2FsZW5kYXIuU0VQVEVNQkVSLCA5LAorICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE4NjksIDE4NjksIENhbGVuZGFyLkpVTkUsIDQsCisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTkxMiwgMTkxMiwgQ2FsZW5kYXIuSlVMWSwgMjksCisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTkxMiwgMTkxMiwgQ2FsZW5kYXIuSlVMWSwgMzAsCisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTkxMiwgMTkxMiwgQ2FsZW5kYXIuQVVHVVNULCAxLAorICAgICAgICB9OworICAgICAgICBxdWFzaUdyZWdvcmlhblRlc3QobmV3IEdyZWdvcmlhbkNhbGVuZGFyKCksIGNvbnRyb2wpOworCisgICAgICAgIGludFtdIGRhdGEgPSB7CisgICAgICAgICAgICBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJLCAxLCAxODY4LCBDYWxlbmRhci5TRVBURU1CRVIsIDgsCisgICAgICAgICAgICBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJLCAxLCAxODY4LCBDYWxlbmRhci5TRVBURU1CRVIsIDksCisgICAgICAgICAgICBKYXBhbmVzZUNhbGVuZGFyLk1FSUpJLCAyLCAxODY5LCBDYWxlbmRhci5KVU5FLCA0LAorICAgICAgICAgICAgSmFwYW5lc2VDYWxlbmRhci5NRUlKSSwgNDUsIDE5MTIsIENhbGVuZGFyLkpVTFksIDI5LAorICAgICAgICAgICAgSmFwYW5lc2VDYWxlbmRhci5UQUlTSE8sIDEsIDE5MTIsIENhbGVuZGFyLkpVTFksIDMwLAorICAgICAgICAgICAgSmFwYW5lc2VDYWxlbmRhci5UQUlTSE8sIDEsIDE5MTIsIENhbGVuZGFyLkFVR1VTVCwgMSwKKyAgICAgICAgfTsKKyAgICAgICAgcXVhc2lHcmVnb3JpYW5UZXN0KG5ldyBKYXBhbmVzZUNhbGVuZGFyKCksIGRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgbGltaXRzIG9mIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEdyZWdvcmlhbkxpbWl0cygpIHsKKyAgICAgICAgLy8gRmluYWwgcGFyYW1ldGVyIGlzIGVpdGhlciBudW1iZXIgb2YgZGF5cywgaWYgPiAwLCBvciB0ZXN0CisgICAgICAgIC8vIGR1cmF0aW9uIGluIHNlY29uZHMsIGlmIDwgMC4KKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldCgyMDA0LCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgZG9MaW1pdHNUZXN0KG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpLCBudWxsLCBjYWwuZ2V0VGltZSgpLCAtMTApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgYmVoYXZpb3Igb2YgZmllbGREaWZmZXJlbmNlIGFyb3VuZCBsZWFwIHllYXJzLiAgQWxzbyB0ZXN0IGEgbGFyZ2UKKyAgICAgKiBmaWVsZCBkaWZmZXJlbmNlIHRvIGNoZWNrIGJpbmFyeSBzZWFyY2guCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExlYXBGaWVsZERpZmZlcmVuY2UoKSB7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5zZXQoMjAwNCwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5KTsKKyAgICAgICAgRGF0ZSBkYXRlMjAwNCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5zZXQoMjAwMCwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5KTsKKyAgICAgICAgRGF0ZSBkYXRlMjAwMCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGludCB5ID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMjAwNCwgQ2FsZW5kYXIuWUVBUik7CisgICAgICAgIGludCBkID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMjAwNCwgQ2FsZW5kYXIuREFZX09GX1lFQVIpOworICAgICAgICBpZiAoZCA9PSAwKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6IDIwMDQvRmViLzI5IC0gMjAwMC9GZWIvMjkgPSAiICsgeSArICIgeWVhcnMsICIgKyBkICsgIiBkYXlzIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogMjAwNC9GZWIvMjkgLSAyMDAwL0ZlYi8yOSA9ICIgKyB5ICsgIiB5ZWFycywgIiArIGQgKyAiIGRheXMiKTsKKyAgICAgICAgfQorICAgICAgICBjYWwuc2V0VGltZShkYXRlMjAwNCk7CisgICAgICAgIHkgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUyMDAwLCBDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgZCA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTIwMDAsIENhbGVuZGFyLkRBWV9PRl9ZRUFSKTsKKyAgICAgICAgaWYgKGQgPT0gMCkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAyMDAwL0ZlYi8yOSAtIDIwMDQvRmViLzI5ID0gIiArIHkgKyAiIHllYXJzLCAiICsgZCArICIgZGF5cyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IDIwMDAvRmViLzI5IC0gMjAwNC9GZWIvMjkgPSAiICsgeSArICIgeWVhcnMsICIgKyBkICsgIiBkYXlzIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gVGVzdCBsYXJnZSBkaWZmZXJlbmNlCisgICAgICAgIGNhbC5zZXQoMjAwMSwgQ2FsZW5kYXIuQVBSSUwsIDUpOyAvLyAyNDUyMDA1CisgICAgICAgIERhdGUgYXlsID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLnNldCgxOTY0LCBDYWxlbmRhci5TRVBURU1CRVIsIDcpOyAvLyAyNDM4NjQ2CisgICAgICAgIERhdGUgYXNsID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgZCA9IGNhbC5maWVsZERpZmZlcmVuY2UoYXlsLCBDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworICAgICAgICBjYWwuc2V0VGltZShheWwpOworICAgICAgICBpbnQgZDIgPSBjYWwuZmllbGREaWZmZXJlbmNlKGFzbCwgQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgaWYgKGQgPT0gLWQyICYmIGQgPT0gMTMzNTkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogbGFyZ2UgZmllbGQgZGlmZmVyZW5jZSBzeW1tZXRyaWNhbCAiICsgZCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiRkFJTDogbGFyZ2UgZmllbGQgZGlmZmVyZW5jZSBpbmNvcnJlY3QgIiArIGQgKyAiLCAiICsgZDIgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ICsvLSAxMzM1OSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBtc19NWSAiTWFsYXkgKE1hbGF5c2lhKSIgbG9jYWxlLiAgQnVnIDE1NDMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE1hbGF5c2lhbkluc3RhbmNlKCkgeworICAgICAgICBMb2NhbGUgbG9jID0gbmV3IExvY2FsZSgibXMiLCAiTVkiKTsgIC8vIE1hbGF5IChNYWxheXNpYSkKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobG9jKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgTWFsYXlzaWFuIGluc3RhbmNlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBzZXRGaXJzdERheU9mV2VlayBhbmQgc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayBtYXkgY2hhbmdlIHRoZQorICAgICAqIGZpZWxkIDw9PiB0aW1lIG1hcHBpbmcsIHNpbmNlIHRoZXkgYWZmZWN0IHRoZSBpbnRlcnByZXRhdGlvbiBvZgorICAgICAqIHRoZSBXRUVLX09GX01PTlRIIG9yIFdFRUtfT0ZfWUVBUiBmaWVsZHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFdlZWtTaGlmdCgpIHsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9Mb3NfQW5nZWxlcyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUoOTk3MjU3NjAwMDAwTCkpOyAvLyBXZWQgQXVnIDA4IDAxOjAwOjAwIFBEVCAyMDAxCisgICAgICAgIC8vIEluIHBhc3Mgb25lLCBjaGFuZ2UgdGhlIGZpcnN0IGRheSBvZiB3ZWVrIHNvIHRoYXQgdGhlIHdlZWtzCisgICAgICAgIC8vIHNoaWZ0IGluIEF1Z3VzdCAyMDAxLiAgSW4gcGFzcyB0d28sIGNoYW5nZSB0aGUgbWluaW1hbCBkYXlzCisgICAgICAgIC8vIGluIHRoZSBmaXJzdCB3ZWVrIHNvIHRoYXQgdGhlIHdlZWtzIHNoaWZ0IGluIEF1Z3VzdCAyMDAxLgorICAgICAgICAvLyAgICAgQXVndXN0IDIwMDEKKyAgICAgICAgLy8gU3UgTW8gVHUgV2UgVGggRnIgU2EKKyAgICAgICAgLy8gICAgICAgICAgIDEgIDIgIDMgIDQKKyAgICAgICAgLy8gIDUgIDYgIDcgIDggIDkgMTAgMTEKKyAgICAgICAgLy8gMTIgMTMgMTQgMTUgMTYgMTcgMTgKKyAgICAgICAgLy8gMTkgMjAgMjEgMjIgMjMgMjQgMjUKKyAgICAgICAgLy8gMjYgMjcgMjggMjkgMzAgMzEKKyAgICAgICAgZm9yIChpbnQgcGFzcz0wOyBwYXNzPDI7ICsrcGFzcykgeworICAgICAgICAgICAgaWYgKHBhc3M9PTApIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0Rmlyc3REYXlPZldlZWsoQ2FsZW5kYXIuV0VETkVTREFZKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2Vlayg0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLlNVTkRBWSk7CisgICAgICAgICAgICAgICAgY2FsLnNldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoNCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBVEUsIDEpOyAvLyBGb3JjZSByZWNhbGMKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgLTEpOworCisgICAgICAgICAgICBEYXRlIHRpbWUxID0gY2FsLmdldFRpbWUoKTsgLy8gR2V0IHRpbWUgLS0gc2hvdWxkIG5vdCBjaGFuZ2UKKworICAgICAgICAgICAgLy8gTm93IGNoYW5nZSBhIHdlZWsgcGFyYW1ldGVyIGFuZCB0aGVuIGZvcmNlIGEgcmVjYWxjLgorICAgICAgICAgICAgLy8gVGhlIGJ1ZyBpcyB0aGF0IHRoZSByZWNhbGMgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnkgLS0KKyAgICAgICAgICAgIC8vIGNhbGVuZGFyIHNob3VsZCBkbyBzbyBhdXRvbWF0aWNhbGx5LgorICAgICAgICAgICAgaWYgKHBhc3M9PTApIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0Rmlyc3REYXlPZldlZWsoQ2FsZW5kYXIuVEhVUlNEQVkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjYWwuc2V0TWluaW1hbERheXNJbkZpcnN0V2Vlayg1KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IHdveTEgPSBjYWwuZ2V0KENhbGVuZGFyLldFRUtfT0ZfWUVBUik7CisgICAgICAgICAgICBpbnQgd29tMSA9IGNhbC5nZXQoQ2FsZW5kYXIuV0VFS19PRl9NT05USCk7CisKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgMSk7IC8vIEZvcmNlIHJlY2FsYworICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5EQVRFLCAtMSk7CisKKyAgICAgICAgICAgIGludCB3b3kyID0gY2FsLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpOworICAgICAgICAgICAgaW50IHdvbTIgPSBjYWwuZ2V0KENhbGVuZGFyLldFRUtfT0ZfTU9OVEgpOworCisgICAgICAgICAgICBEYXRlIHRpbWUyID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICAgICAgaWYgKCF0aW1lMS5lcXVhbHModGltZTIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNoaWZ0aW5nIHdlZWsgc2hvdWxkIG5vdCBhbHRlciB0aW1lIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKHRpbWUxLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHdveTEgPT0gd295MiAmJiB3b20xID09IHdvbTIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6IFdFRUtfT0ZfWUVBUjogIiArIHdveTEgKworICAgICAgICAgICAgICAgICAgICAgICIsIFdFRUtfT0ZfTU9OVEg6ICIgKyB3b20xKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFdFRUtfT0ZfWUVBUjogIiArIHdveTEgKyAiID0+ICIgKyB3b3kyICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBXRUVLX09GX01PTlRIOiAiICsgd29tMSArICIgPT4gIiArIHdvbTIgKworICAgICAgICAgICAgICAgICAgICAgICIgYWZ0ZXIgd2VlayBzaGlmdCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIHRoYXQgd2hlbiBhZGRpbmcgYSBkYXksIHdlIGFjdHVhbGx5IHdpbmQgdXAgaW4gYQorICAgICAqIGRpZmZlcmVudCBkYXkuICBUaGUgRFNUIGFkanVzdG1lbnRzIHdlIHVzZSB0byBrZWVwIHRoZSBob3VyCisgICAgICogY29uc3RhbnQgYWNyb3NzIERTVCBjaGFuZ2VzIGNhbiBiYWNrZmlyZSBhbmQgY2hhbmdlIHRoZSBkYXkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFRpbWVab25lVHJhbnNpdGlvbkFkZCgpIHsKKyAgICAgICAgTG9jYWxlIGxvY2FsZSA9IExvY2FsZS5VUzsgLy8gY291bGQgYWxzbyBiZSBDSElOQQorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRhdGVGb3JtYXQgPQorICAgICAgICAgICAgbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NL2RkL3l5eXkgSEg6bW0geiIsIGxvY2FsZSk7CisKKyAgICAgICAgU3RyaW5nIHR6W10gPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoKTsKKworICAgICAgICBmb3IgKGludCB6PTA7IHo8dHoubGVuZ3RoOyArK3opIHsKKyAgICAgICAgICAgIFRpbWVab25lIHQgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSh0elt6XSk7CisgICAgICAgICAgICBkYXRlRm9ybWF0LnNldFRpbWVab25lKHQpOworCisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSh0LCBsb2NhbGUpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAvLyBTY2FuIHRoZSB5ZWFyIDIwMDMsIG92ZXJsYXBwaW5nIHRoZSBlZGdlcyBvZiB0aGUgeWVhcgorICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCAyMDAyKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIENhbGVuZGFyLkRFQ0VNQkVSKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAyNSk7CisKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTwzNjUrMTA7ICsraSkgeworICAgICAgICAgICAgICAgIERhdGUgeWVzdGVyZGF5ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgICAgICBpbnQgeWVzdGVyZGF5X2RheSA9IGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgICAgICBjYWwuYWRkKENhbGVuZGFyLkRBWV9PRl9NT05USCwgMSk7CisgICAgICAgICAgICAgICAgaWYgKHllc3RlcmRheV9kYXkgPT0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKHR6W3pdICsgIiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdC5mb3JtYXQoeWVzdGVyZGF5KSArICIgKzFkPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RKQjE2ODQoKSB7CisgICAgICAgIGNsYXNzIFRlc3REYXRhIHsKKyAgICAgICAgICAgIGludCB5ZWFyOworICAgICAgICAgICAgaW50IG1vbnRoOworICAgICAgICAgICAgaW50IGRhdGU7CisgICAgICAgICAgICBpbnQgd29teWVhcjsKKyAgICAgICAgICAgIGludCB3b21tb247CisgICAgICAgICAgICBpbnQgd29tOworICAgICAgICAgICAgaW50IGRvdzsKKyAgICAgICAgICAgIFN0cmluZyBkYXRhOworICAgICAgICAgICAgU3RyaW5nIG5vcm1hbGl6ZWQ7CisKKyAgICAgICAgICAgIHB1YmxpYyBUZXN0RGF0YShpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd29teWVhciwgaW50IHdvbW1vbiwgaW50IHdvbSwgaW50IGRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGF0YSwgU3RyaW5nIG5vcm1hbGl6ZWQpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnllYXIgPSB5ZWFyOworICAgICAgICAgICAgICAgIHRoaXMubW9udGggPSBtb250aC0xOworICAgICAgICAgICAgICAgIHRoaXMuZGF0ZSA9IGRhdGU7CisgICAgICAgICAgICAgICAgdGhpcy53b215ZWFyID0gd29teWVhcjsKKyAgICAgICAgICAgICAgICB0aGlzLndvbW1vbiA9IHdvbW1vbi0xOworICAgICAgICAgICAgICAgIHRoaXMud29tID0gd29tOworICAgICAgICAgICAgICAgIHRoaXMuZG93ID0gZG93OworICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7IC8vIHllYXIsIG1vbnRoLCB3ZWVrIG9mIG1vbnRoLCBkYXkKKyAgICAgICAgICAgICAgICB0aGlzLm5vcm1hbGl6ZWQgPSBkYXRhOworICAgICAgICAgICAgICAgIGlmIChub3JtYWxpemVkICE9IG51bGwpIHRoaXMubm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyAgICAgIEp1bHkgMjAwMSAgICAgICAgICAgIEF1Z3VzdCAyMDAxICAgICAgICAgICBKYW51YXJ5IDIwMDIKKyAgICAgICAgLy8gU3UgTW8gVHUgV2UgVGggRnIgU2EgIFN1IE1vIFR1IFdlIFRoIEZyIFNhICBTdSBNbyBUdSBXZSBUaCBGciBTYQorICAgICAgICAvLyAgMSAgMiAgMyAgNCAgNSAgNiAgNyAgICAgICAgICAgIDEgIDIgIDMgIDQgICAgICAgICAxICAyICAzICA0ICA1CisgICAgICAgIC8vICA4ICA5IDEwIDExIDEyIDEzIDE0ICAgNSAgNiAgNyAgOCAgOSAxMCAxMSAgIDYgIDcgIDggIDkgMTAgMTEgMTIKKyAgICAgICAgLy8gMTUgMTYgMTcgMTggMTkgMjAgMjEgIDEyIDEzIDE0IDE1IDE2IDE3IDE4ICAxMyAxNCAxNSAxNiAxNyAxOCAxOQorICAgICAgICAvLyAyMiAyMyAyNCAyNSAyNiAyNyAyOCAgMTkgMjAgMjEgMjIgMjMgMjQgMjUgIDIwIDIxIDIyIDIzIDI0IDI1IDI2CisgICAgICAgIC8vIDI5IDMwIDMxICAgICAgICAgICAgICAyNiAyNyAyOCAyOSAzMCAzMSAgICAgMjcgMjggMjkgMzAgMzEKKyAgICAgICAgVGVzdERhdGFbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAxLCA4LCAgNiwgIDIwMDEsOCwyLENhbGVuZGFyLk1PTkRBWSwgICAgIjIwMDEgMDggMDIgTW9uIiwgbnVsbCksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMSwgOCwgIDcsICAyMDAxLDgsMixDYWxlbmRhci5UVUVTREFZLCAgICIyMDAxIDA4IDAyIFR1ZSIsIG51bGwpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDEsIDgsICA1LC8qMTIsKi8gMjAwMSw4LDIsQ2FsZW5kYXIuU1VOREFZLCAgICAiMjAwMSAwOCAwMiBTdW4iLCBudWxsKSwKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAxLCA4LDYsIC8qNywgIDMwLCovIDIwMDEsNyw2LENhbGVuZGFyLk1PTkRBWSwgICAgIjIwMDEgMDcgMDYgTW9uIiwgIjIwMDEgMDggMDIgTW9uIiksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMSwgOCw3LCAvKjcsICAzMSwqLyAyMDAxLDcsNixDYWxlbmRhci5UVUVTREFZLCAgICIyMDAxIDA3IDA2IFR1ZSIsICIyMDAxIDA4IDAyIFR1ZSIpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDEsIDgsICA1LCAgMjAwMSw3LDYsQ2FsZW5kYXIuU1VOREFZLCAgICAiMjAwMSAwNyAwNiBTdW4iLCAiMjAwMSAwOCAwMiBTdW4iKSwKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAxLCA3LCAgMzAsIDIwMDEsOCwxLENhbGVuZGFyLk1PTkRBWSwgICAgIjIwMDEgMDggMDEgTW9uIiwgIjIwMDEgMDcgMDUgTW9uIiksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMSwgNywgIDMxLCAyMDAxLDgsMSxDYWxlbmRhci5UVUVTREFZLCAgICIyMDAxIDA4IDAxIFR1ZSIsICIyMDAxIDA3IDA1IFR1ZSIpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDEsIDcsMjksIC8qOCwgIDUsKi8gIDIwMDEsOCwxLENhbGVuZGFyLlNVTkRBWSwgICAgIjIwMDEgMDggMDEgU3VuIiwgIjIwMDEgMDcgMDUgU3VuIiksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMSwgMTIsIDMxLCAyMDAxLDEyLDYsQ2FsZW5kYXIuTU9OREFZLCAgICIyMDAxIDEyIDA2IE1vbiIsIG51bGwpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDIsIDEsICAxLCAgMjAwMiwxLDEsQ2FsZW5kYXIuVFVFU0RBWSwgICAiMjAwMiAwMSAwMSBUdWUiLCBudWxsKSwKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAyLCAxLCAgMiwgIDIwMDIsMSwxLENhbGVuZGFyLldFRE5FU0RBWSwgIjIwMDIgMDEgMDEgV2VkIiwgbnVsbCksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMiwgMSwgIDMsICAyMDAyLDEsMSxDYWxlbmRhci5USFVSU0RBWSwgICIyMDAyIDAxIDAxIFRodSIsIG51bGwpLAorICAgICAgICAgICAgbmV3IFRlc3REYXRhKDIwMDIsIDEsICA0LCAgMjAwMiwxLDEsQ2FsZW5kYXIuRlJJREFZLCAgICAiMjAwMiAwMSAwMSBGcmkiLCBudWxsKSwKKyAgICAgICAgICAgIG5ldyBUZXN0RGF0YSgyMDAyLCAxLCAgNSwgIDIwMDIsMSwxLENhbGVuZGFyLlNBVFVSREFZLCAgIjIwMDIgMDEgMDEgU2F0IiwgbnVsbCksCisgICAgICAgICAgICBuZXcgVGVzdERhdGEoMjAwMSwxMiwzMCwgLyoyMDAyLCAxLCAgNiwqLyAgMjAwMiwxLDEsQ2FsZW5kYXIuU1VOREFZLCAgICAiMjAwMiAwMSAwMSBTdW4iLCAiMjAwMSAxMiAwNiBTdW4iKSwKKyAgICAgICAgfTsKKworICAgICAgICBpbnQgcGFzcyA9IDAsIGVycm9yID0gMCwgd2FybmluZyA9IDA7CisKKyAgICAgICAgZmluYWwgU3RyaW5nIHBhdHRlcm4gPSAieXl5eSBNTSBXVyBFRUUiOworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuKTsKKyAgICAgICAgc2RmLnNldENhbGVuZGFyKGNhbCk7CisKKyAgICAgICAgY2FsLnNldEZpcnN0RGF5T2ZXZWVrKENhbGVuZGFyLlNVTkRBWSk7CisgICAgICAgIGNhbC5zZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKDEpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFRlc3REYXRhIHRlc3QgPSB0ZXN0c1tpXTsKKyAgICAgICAgICAgIGxvZygiXG4tLS0tLVxuVGVzdGluZyByb3VuZCB0cmlwIG9mICIgKyB0ZXN0LnllYXIgKworICAgICAgICAgICAgICAgICAgIiAiICsgKHRlc3QubW9udGggKyAxKSArCisgICAgICAgICAgICAgICAgICAiICIgKyB0ZXN0LmRhdGUgKworICAgICAgICAgICAgICAgICAgIiAod3JpdHRlbiBhcykgIiArIHRlc3QuZGF0YSk7CisKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCh0ZXN0LnllYXIsIHRlc3QubW9udGgsIHRlc3QuZGF0ZSk7CisgICAgICAgICAgICBEYXRlIG1zID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIHRlc3Qud29teWVhcik7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLk1PTlRILCB0ZXN0LndvbW1vbik7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIHRlc3Qud29tKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFZX09GX1dFRUssIHRlc3QuZG93KTsKKyAgICAgICAgICAgIERhdGUgbXMyID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICAgICAgaWYgKCFtczIuZXF1YWxzKG1zKSkgeworICAgICAgICAgICAgICAgIGxvZygiXG5FcnJvcjogR3JlZ29yaWFuQ2FsZW5kYXIuRE9NIGdhdmUgIiArIG1zICsKKyAgICAgICAgICAgICAgICAgICAgIlxuICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyLldPTSBnYXZlICIgKyBtczIpOworICAgICAgICAgICAgICAgIGVycm9yKys7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHBhc3MrKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbXMyID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbXMyID0gc2RmLnBhcnNlKHRlc3QuZGF0YSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJwYXJzZSBleGNlcHRpb246ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFtczIuZXF1YWxzKG1zKSkgeworICAgICAgICAgICAgICAgIGxvZygiXG5FcnJvcjogR3JlZ29yaWFuQ2FsZW5kYXIgZ2F2ZSAgICAgICIgKyBtcyArCisgICAgICAgICAgICAgICAgICAgICJcbiAgICAgICBTaW1wbGVEYXRlRm9ybWF0LnBhcnNlIGdhdmUgIiArIG1zMik7CisgICAgICAgICAgICAgICAgZXJyb3IrKzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcGFzcysrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gc2RmLmZvcm1hdChtcyk7CisgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHModGVzdC5ub3JtYWxpemVkKSkgeworICAgICAgICAgICAgICAgIGxvZygiXG5XYXJuaW5nOiBmb3JtYXQgb2YgJyIgKyB0ZXN0LmRhdGEgKyAiJyBnYXZlIiArCisgICAgICAgICAgICAgICAgICAgICJcbiAgICAgICAgICAgICAgICAgICAnIiArIHJlc3VsdCArICInIiArCisgICAgICAgICAgICAgICAgICAgICJcbiAgICAgICAgICBleHBlY3RlZCAnIiArIHRlc3Qubm9ybWFsaXplZCArICInIik7CisgICAgICAgICAgICAgICAgd2FybmluZysrOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwYXNzKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIERhdGUgbXMzID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbXMzID0gc2RmLnBhcnNlKHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJwYXJzZSBleGNlcHRpb24gMjogIiArIGUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIW1zMy5lcXVhbHMobXMpKSB7CisgICAgICAgICAgICAgICAgZXJyb3IrKzsKKyAgICAgICAgICAgICAgICBsb2coIlxuRXJyb3I6IFJlLXBhcnNlIG9mICciICsgcmVzdWx0ICsgIicgZ2F2ZSB0aW1lIG9mICIgKworICAgICAgICAgICAgICAgICAgICAiXG4gICAgICAgICIgKyBtczMgKworICAgICAgICAgICAgICAgICAgICAiXG4gICAgbm90ICIgKyBtcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHBhc3MrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgaW5mbyA9ICJcblBhc3NlZDogIiArIHBhc3MgKyAiLCBXYXJuaW5nczogIiArIHdhcm5pbmcgKyAiLCBFcnJvcnM6ICIgKyBlcnJvcjsKKyAgICAgICAgaWYgKGVycm9yID4gMCkgeworICAgICAgICAgICAgZXJybG4oaW5mbyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbihpbmZvKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIFpvbmVNZXRhIEFQSS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Wm9uZU1ldGEoKSB7CisgICAgICAgIC8vIFRlc3QgaW5kZXggYnkgY291bnRyeSBBUEkKKworICAgICAgICAvLyBGb3JtYXQ6IHtjb3VudHJ5LCB6b25lMSwgem9uZTIsIC4uLiwgem9uZU59CisgICAgICAgIFN0cmluZyBDT1VOVFJZW11bXSA9IHsgeyIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlVTIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiUFNUIn0gfTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPENPVU5UUlkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZ1tdIGEgPSBab25lTWV0YS5nZXRBdmFpbGFibGVJRHMoQ09VTlRSWVtpXVswXSk7CisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiQ291bnRyeSBcIiIgKyBDT1VOVFJZW2ldWzBdICsgIlwiOiBbIik7CisgICAgICAgICAgICAvLyBVc2UgYml0bWFzayB0byB0cmFjayB3aGljaCBvZiB0aGUgZXhwZWN0ZWQgem9uZXMgd2Ugc2VlCisgICAgICAgICAgICBpbnQgbWFzayA9IDA7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8YS5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGlmIChqIT0wKSBidWYuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYVtqXSk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaz0xOyBrPENPVU5UUllbaV0ubGVuZ3RoOyArK2spIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChtYXNrICYgKDE8PGspKSA9PSAwICYmCisgICAgICAgICAgICAgICAgICAgICAgICBhW2pdLmVxdWFscyhDT1VOVFJZW2ldW2tdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbWFzayB8PSAoMTw8ayk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKCJdIik7CisgICAgICAgICAgICBtYXNrID4+PSAxOworICAgICAgICAgICAgLy8gQ2hlY2sgYml0bWFzayB0byBzZWUgaWYgd2Ugc2F3IGFsbCBleHBlY3RlZCB6b25lcworICAgICAgICAgICAgaWYgKG1hc2sgPT0gKDEgPDwgKENPVU5UUllbaV0ubGVuZ3RoLTEpKS0xKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBUZXN0IGVxdWl2YWxlbnQgSURzIEFQSQorCisgICAgICAgIGludCBuID0gWm9uZU1ldGEuY291bnRFcXVpdmFsZW50SURzKCJQU1QiKTsKKyAgICAgICAgYm9vbGVhbiBvayA9IGZhbHNlOworICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICBidWYuYXBwZW5kKCJFcXVpdmFsZW50IHRvIFBTVDogIik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBpZCA9IFpvbmVNZXRhLmdldEVxdWl2YWxlbnRJRCgiUFNUIiwgaSk7CisgICAgICAgICAgICBpZiAoaWQuZXF1YWxzKCJBbWVyaWNhL0xvc19BbmdlbGVzIikpIHsKKyAgICAgICAgICAgICAgICBvayA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaSE9MCkgYnVmLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoaWQpOworICAgICAgICB9CisgICAgICAgIGlmIChvaykgeworICAgICAgICAgICAgbG9nbG4oYnVmLnRvU3RyaW5nKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oYnVmLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBhcmFibGUoKSB7CisgICAgR3JlZ29yaWFuQ2FsZW5kYXIgYzAgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICBHcmVnb3JpYW5DYWxlbmRhciBjMSA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgIGMxLmFkZChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDEpOworICAgIGlmIChjMC5jb21wYXJlVG8oYzEpID49IDApIHsKKyAgICAgICAgZXJybG4oImNhbGVuZGFyICIgKyBjMCArICIgbm90IDwgIiArIGMxKTsKKyAgICB9CisgICAgYzAuYWRkKENhbGVuZGFyLk1PTlRILCAxKTsKKyAgICBpZiAoYzAuY29tcGFyZVRvKGMxKSA8PSAwKSB7CisgICAgICAgIGVycmxuKCJjYWxlbmRhciAiICsgYzAgKyAiIG5vdCA+ICIgKyBjMSk7CisgICAgfQorCisgICAgYzAuc2V0VGltZUluTWlsbGlzKGMxLmdldFRpbWVJbk1pbGxpcygpKTsKKyAgICBpZiAoYzAuY29tcGFyZVRvKGMxKSAhPSAwKSB7CisgICAgICAgIGVycmxuKCJjYWxlbmRhciAiICsgYzAgKyAiIG5vdCA9PSAiICsgYzEpOworICAgIH0KKworICAgIC8vIGNvdmVyYWdlCisgICAgdHJ5IHsKKyAgICAgICAgYzAuY29tcGFyZVRvKChPYmplY3QpbnVsbCk7CisgICAgICAgIGVycmxuKCJjYWxlbmRhci5jb21wYXJlVG8gZGlkbid0IG9iamVjdCB0byBudWxsIGFyZyIpOworICAgIH0KKyAgICBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gbnBlKSB7CisgICAgICAgIGxvZ2xuKCJQQVNTOiBjYWxlbmRhci5jb21wYXJlVG8gb2JqZWN0ZWQgdG8gbnVsbCBhcmciKTsKKyAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWlzY2VsbGFuZW91cyB0ZXN0cyB0byBpbmNyZWFzZSBjb3ZlcmFnZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIC8vIEJ1ZGRoaXN0Q2FsZW5kYXIKKyAgICAgICAgQnVkZGhpc3RDYWxlbmRhciBiY2FsID0gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIoKTsKKyAgICAgICAgLyppbnQgaSA9Ki8gYmNhbC5nZXRNaW5pbXVtKENhbGVuZGFyLkVSQSk7CisgICAgICAgIGJjYWwuYWRkKENhbGVuZGFyLllFQVIsIDEpOworICAgICAgICBiY2FsLmFkZChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgIC8qRGF0ZSBkID0gKi9iY2FsLmdldFRpbWUoKTsKKworICAgICAgICAvLyBDYWxlbmRhckFzdHJvbm9tZXIKKyAgICAgICAgLy8gKFRoaXMgY2xhc3Mgc2hvdWxkIHByb2JhYmx5IGJlIG1hZGUgcGFja2FnZS1wcml2YXRlLikKKyAgICAgICAgQ2FsZW5kYXJBc3Ryb25vbWVyIGFzdHJvID0gbmV3IENhbGVuZGFyQXN0cm9ub21lcigpOworICAgICAgICBTdHJpbmcgcyA9IGFzdHJvLmxvY2FsKDApOworCisgICAgICAgIC8vIENoaW5lc2VDYWxlbmRhcgorICAgICAgICBDaGluZXNlQ2FsZW5kYXIgY2NhbCA9IG5ldyBDaGluZXNlQ2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGNjYWwuYWRkKENhbGVuZGFyLk1PTlRILCAxKTsKKyAgICAgICAgY2NhbC5hZGQoQ2FsZW5kYXIuWUVBUiwgMSk7CisgICAgICAgIGNjYWwucm9sbChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgIGNjYWwucm9sbChDYWxlbmRhci5ZRUFSLCAxKTsKKyAgICAgICAgY2NhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgLy8gSUNVIDIuNgorICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBsb2dsbihjYWwudG9TdHJpbmcoKSk7CisgICAgICAgIGxvZ2xuKGNhbC5nZXREaXNwbGF5TmFtZShMb2NhbGUuVVMpKTsKKyAgICAgICAgaW50IHdlZWtlbmRPbnNldD0tMTsKKyAgICAgICAgaW50IHdlZWtlbmRDZWFzZT0tMTsKKyAgICAgICAgZm9yIChpbnQgaT1DYWxlbmRhci5TVU5EQVk7IGk8PUNhbGVuZGFyLlNBVFVSREFZOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChjYWwuZ2V0RGF5T2ZXZWVrVHlwZShpKSA9PSBDYWxlbmRhci5XRUVLRU5EX09OU0VUKSB7CisgICAgICAgICAgICAgICAgd2Vla2VuZE9uc2V0ID0gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjYWwuZ2V0RGF5T2ZXZWVrVHlwZShpKSA9PSBDYWxlbmRhci5XRUVLRU5EX0NFQVNFKSB7CisgICAgICAgICAgICAgICAgd2Vla2VuZENlYXNlID0gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBjYW4ndCBjYWxsIHRoaXMgdW5sZXNzIHdlIGdldCBhIHRyYW5zaXRpb24gZGF5ICh1bnVzdWFsKSwKKyAgICAgICAgLy8gYnV0IG1ha2UgdGhlIGNhbGwgYW55d2F5IGZvciBjb3ZlcmFnZSByZWFzb25zCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvKmludCB4PSovIGNhbC5nZXRXZWVrZW5kVHJhbnNpdGlvbih3ZWVrZW5kT25zZXQpOworICAgICAgICAgICAgLyppbnQgeD0qLyBjYWwuZ2V0V2Vla2VuZFRyYW5zaXRpb24od2Vla2VuZENlYXNlKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHt9CisgICAgICAgIC8qaW50IHg9Ki8gY2FsLmlzV2Vla2VuZChuZXcgRGF0ZSgpKTsKKworICAgICAgICAvLyBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoVUxvY2FsZSkKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2NhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGdjYWw9PW51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgR3JlZ29yaWFuQ2FsZW5kYXIgd2l0aCBVTG9jYWxlIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiQ2FsZW5kYXIgZGlzcGxheSBuYW1lOiAiICsgZ2NhbC5nZXREaXNwbGF5TmFtZShVTG9jYWxlLmdldERlZmF1bHQoKSkpOworICAgICAgICB9CisKKyAgICAgICAgLy9jb3ZlciBnZXRBdmFpbGFibGVVTG9jYWxlcworICAgICAgICBmaW5hbCBVTG9jYWxlW10gbG9jYWxlcyA9IENhbGVuZGFyLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgIGxvbmcgY291bnQgPSBsb2NhbGVzLmxlbmd0aDsKKyAgICAgICAgaWYgKGNvdW50ID09IDApCisgICAgICAgICAgICBlcnJsbigiZ2V0QXZhaWxhYmxlVUxvY2FsZXMgcmV0dXJuIGVtcHR5IGxpc3QiKTsKKyAgICAgICAgbG9nbG4oIiIgKyBjb3VudCArICIgYXZhaWxhYmxlIHVsb2NhbGVzIGluIENhbGVuZGFyLiIpOworCisgICAgICAgIC8vIEppdHRlcmJ1ZyA0NDUxLCBmb3IgY292ZXJhZ2UKKyAgICAgICAgY2xhc3MgU3R1YkNhbGVuZGFyIGV4dGVuZHMgQ2FsZW5kYXJ7CisgICAgICAgICAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldExpbWl0KGludCBmaWVsZCwgaW50IGxpbWl0VHlwZSkge3JldHVybiAwO30KKyAgICAgICAgICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoaW50IGV5ZWFyLCBpbnQgbW9udGgsIGJvb2xlYW4gdXNlTW9udGgpIHtyZXR1cm4gMDt9CisgICAgICAgICAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldEV4dGVuZGVkWWVhcigpIHtyZXR1cm4gMDt9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKXsKKyAgICAgICAgICAgICAgICBpZiAoQ2FsZW5kYXIuZ3JlZ29yaWFuUHJldmlvdXNNb250aExlbmd0aCgyMDAwLDIpICE9IDI5KXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlllYXIgMjAwMCBGZWIgc2hvdWxkIGhhdmUgMjkgZGF5cy4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9uZyBtaWxsaXMgPSBDYWxlbmRhci5qdWxpYW5EYXlUb01pbGxpcyhDYWxlbmRhci5NQVhfSlVMSUFOKTsKKyAgICAgICAgICAgICAgICBpZihtaWxsaXMgIT0gQ2FsZW5kYXIuTUFYX01JTExJUyl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdmFsdWUgZnJvbSBqdWxpYW5EYXlUb01pbGxpcy4gR290OiIgKyBtaWxsaXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gaGFuZGxlR2V0RGF0ZUZvcm1hdCgiIixMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWRmLmVxdWFscyhoYW5kbGVHZXREYXRlRm9ybWF0KCIiLFVMb2NhbGUuZ2V0RGVmYXVsdCgpKSkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbiAoIkNhbGVuZGFyLmhhbmRsZUdldERhdGVGb3JtYXQoU3RyaW5nLCBMb2NhbGUpIHNob3VsZCBkZWxlZ2F0ZSB0byAoICxVTG9jYWxlKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIWdldFR5cGUoKS5lcXVhbHMoImdyZWdvcmlhbiIpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4gKCJDYWxlbmRhci5nZXRUeXBlKCkgc2hvdWxkIGJlICdncmVnb3JpYW4nIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0dWJDYWxlbmRhciBzdHViID0gbmV3IFN0dWJDYWxlbmRhcigpOworICAgICAgICBzdHViLnJ1bigpOworICAgIH0KKworICAgIC8vIFRlc3RzIGZvciBqYiA0NTQxCisgICAgcHVibGljIHZvaWQgVGVzdEpCNDU0MSgpIHsKKyAgICAgICAgVUxvY2FsZSBsb2MgPSBuZXcgVUxvY2FsZSgiZW5fVVMiKTsKKworICAgICAgICAvLyAhISEgU2hvdWxkbid0IHdlIGhhdmUgYW4gYXBpIGxpa2UgdGhpcz8KKyAgICAgICAgLy8gISEhIFF1ZXN0aW9uOiBzaG91bGQgdGhpcyByZWZsZWN0IHRob3NlIGFjdHVhbGx5IGF2YWlsYWJsZSBpbiB0aGlzIGNvcHkgb2YgSUNVLCBvciAKKyAgICAgICAgLy8gdGhlIGxpc3Qgb2YgdHlwZXMgd2UgYXNzdW1lIGlzIGF2YWlsYWJsZT8KKyAgICAgICAgLy8gU3RyaW5nW10gY2FsVHlwZXMgPSBDYWxlbmRhci5nZXRBdmFpbGFibGVUeXBlcygpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBjYWxUeXBlcyA9IHsKKyAgICAgICAgICAgICJidWRkaGlzdCIsICJjaGluZXNlIiwgImNvcHRpYyIsICJldGhpb3BpYyIsICJncmVnb3JpYW4iLCAiaGVicmV3IiwgCisgICAgICAgICAgICAiaXNsYW1pYyIsICJpc2xhbWljLWNpdmlsIiwgImphcGFuZXNlIiwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIC8vIGNvbnN0cnVjdGluZyBhIERhdGVGb3JtYXQgd2l0aCBhIGxvY2FsZSBpbmRpY2F0aW5nIGEgY2FsZW5kYXIgdHlwZSBzaG91bGQgY29uc3RydWN0IGEKKyAgICAgICAgLy8gZGF0ZSBmb3JtYXQgYXBwcm9wcmlhdGUgdG8gdGhhdCBjYWxlbmRhcgorICAgICAgICBmaW5hbCBEYXRlIHRpbWUgPSBuZXcgRGF0ZSgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbFR5cGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBVTG9jYWxlIGFMb2MgPSBsb2Muc2V0S2V5d29yZFZhbHVlKCJjYWxlbmRhciIsIGNhbFR5cGVzW2ldKTsKKyAgICAgICAgICAgIGxvZ2xuKCJsb2NhbGU6ICIgKyBhTG9jKTsKKworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuRlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYUxvYyk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJkZiB0eXBlOiAiICsgZGYuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiIGxvYzogIiArIGRmLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkpOworCisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBkZi5nZXRDYWxlbmRhcigpOworICAgICAgICAgICAgLy8gdG9kbywgd2hhdCBhYm91dCB2YXJpYW50cyBvZiBjYWxlbmRhcnMsIHdlIGhhdmUgYSB0eXBlIGZvciBpc2xhbWljLWNpdmlsLCBzaG91bGQgd2UgYWxzbyBoYXZlIGEgdHlwZQorICAgICAgICAgICAgLy8gZm9yIHZhcmlhbnRzIG9mIG90aGVyIGNhbGVuZGFycz8KKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiY2FsZW5kYXIgdHlwZXMiLCBjYWwuZ2V0VHlwZSgpLCBjYWxUeXBlc1tpXS5lcXVhbHMoImlzbGFtaWMtY2l2aWwiKSA/ICJpc2xhbWljIiA6IGNhbFR5cGVzW2ldKTsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYyID0gY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBVTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIGxvZ2xuKCJkZjIgdHlwZTogIiArIGRmMi5nZXRDbGFzcygpLmdldE5hbWUoKSArICIgbG9jOiAiICsgZGYyLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkpOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQgcmVzdWx0cyIsIGRmLmZvcm1hdCh0aW1lKSwgZGYyLmZvcm1hdCh0aW1lKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBkYXRlRm9ybWF0LnNldENhbGVuZGFyIHNob3VsZCB0aHJvdyBleGNlcHRpb24gaWYgd3JvbmcgZm9ybWF0IGZvciBjYWxlbmRhcgorICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5GVUxMLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVMb2NhbGUoImVuX1VTQGNhbGVuZGFyPWNoaW5lc2UiKSk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJkYXRlZm9ybWF0IHR5cGU6ICIgKyBkZi5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKG5ldyBVTG9jYWxlKCJlbl9VU0BjYWxlbmRhcj1jaGluZXNlIikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBsb2dsbigiY2FsZW5kYXIgdHlwZTogIiArIGNhbC5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSXNsYW1pY1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9Jc2xhbWljVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE1MTM2ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvSXNsYW1pY1Rlc3QuamF2YQpAQCAtMCwwICsxLDI0NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSXNsYW1pY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIFRlc3RzIGZvciB0aGUgPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiBjbGFzcy4KKyAqLworcHVibGljIGNsYXNzIElzbGFtaWNUZXN0IGV4dGVuZHMgQ2FsZW5kYXJUZXN0IHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IElzbGFtaWNUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKiBDb25zdGFudHMgdG8gc2F2ZSB0eXBpbmcuICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTVVIQVJSQU0gPSBJc2xhbWljQ2FsZW5kYXIuTVVIQVJSQU07CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0FGQVIgPSAgSXNsYW1pY0NhbGVuZGFyLlNBRkFSOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJBQklfMSA9ICBJc2xhbWljQ2FsZW5kYXIuUkFCSV8xOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJBQklfMiA9ICBJc2xhbWljQ2FsZW5kYXIuUkFCSV8yOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpVTUFEQV8xID0gIElzbGFtaWNDYWxlbmRhci5KVU1BREFfMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKVU1BREFfMiA9ICBJc2xhbWljQ2FsZW5kYXIuSlVNQURBXzI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFKQUIgPSAgSXNsYW1pY0NhbGVuZGFyLlJBSkFCOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNIQUJBTiA9ICBJc2xhbWljQ2FsZW5kYXIuU0hBQkFOOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJBTUFEQU4gPSAgSXNsYW1pY0NhbGVuZGFyLlJBTUFEQU47CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hBV1dBTCA9ICBJc2xhbWljQ2FsZW5kYXIuU0hBV1dBTDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRSURBSCA9ICBJc2xhbWljQ2FsZW5kYXIuREhVX0FMX1FJREFIOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhJSkpBSCA9ICBJc2xhbWljQ2FsZW5kYXIuREhVX0FMX0hJSkpBSDsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RSb2xsKCkgeworICAgICAgICBpbnRbXVtdIHRlc3RzID0gbmV3IGludFtdW10geworICAgICAgICAgICAgLy8gICAgICAgaW5wdXQgICAgICAgICAgICAgICAgcm9sbCBieSAgICAgICAgICBvdXRwdXQKKyAgICAgICAgICAgIC8vICB5ZWFyICBtb250aCAgICAgZGF5ICAgICBmaWVsZCBhbW91bnQgICAgeWVhciAgbW9udGggICAgIGRheQorICAgIAorICAgICAgICAgICAgeyAgIDAwMDEsIFFJREFILCAgICAgMiwgICAgIE1PTlRILCAgIDEsICAgICAwMDAxLCBISUpKQUgsICAgIDIgfSwgICAvLyBub24tbGVhcCB5ZWFycworICAgICAgICAgICAgeyAgIDAwMDEsIFFJREFILCAgICAgMiwgICAgIE1PTlRILCAgIDIsICAgICAwMDAxLCBNVUhBUlJBTSwgIDIgfSwKKyAgICAgICAgICAgIHsgICAwMDAxLCBRSURBSCwgICAgIDIsICAgICBNT05USCwgIC0xLCAgICAgMDAwMSwgU0hBV1dBTCwgICAyIH0sCisgICAgICAgICAgICB7ICAgMDAwMSwgTVVIQVJSQU0sICAyLCAgICAgTU9OVEgsICAxMiwgICAgIDAwMDEsIE1VSEFSUkFNLCAgMiB9LAorICAgICAgICAgICAgeyAgIDAwMDEsIE1VSEFSUkFNLCAgMiwgICAgIE1PTlRILCAgMTMsICAgICAwMDAxLCBTQUZBUiwgICAgIDIgfSwKKworICAgICAgICAgICAgeyAgIDAwMDEsIEhJSkpBSCwgICAgMSwgICAgIERBVEUsICAgMzAsICAgICAwMDAxLCBISUpKQUgsICAgIDIgfSwgICAvLyAyOS1kYXkgbW9udGgKKyAgICAgICAgICAgIHsgICAwMDAyLCBISUpKQUgsICAgIDEsICAgICBEQVRFLCAgIDMxLCAgICAgMDAwMiwgSElKSkFILCAgICAyIH0sICAgLy8gMzAtZGF5IG1vbnRoCisKKyAgICAgICAgICAgIC8vIFRyeSBzb21lIHJvbGxzIHRoYXQgcmVxdWlyZSBvdGhlciBmaWVsZHMgdG8gYmUgYWRqdXN0ZWQKKyAgICAgICAgICAgIHsgICAwMDAxLCBNVUhBUlJBTSwgMzAsICAgICBNT05USCwgICAxLCAgICAgMDAwMSwgU0FGQVIsICAgIDI5IH0sCisgICAgICAgICAgICB7ICAgMDAwMiwgSElKSkFILCAgIDMwLCAgICAgWUVBUiwgICAtMSwgICAgIDAwMDEsIEhJSkpBSCwgICAyOSB9LAorICAgICAgICB9OworICAgICAgIAorICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3Q2l2aWwoKTsKKworICAgICAgICBkb1JvbGxBZGQoUk9MTCwgY2FsLCB0ZXN0cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBodWdlIGxpc3Qgb2YgdGVzdCBjYXNlcyB0byBtYWtlIHN1cmUgdGhhdCBjb21wdXRlVGltZSBhbmQgY29tcHV0ZUZpZWxkcworICAgICAqIHdvcmsgcHJvcGVybHkgZm9yIGEgd2lkZSByYW5nZSBvZiBkYXRhIGluIHRoZSBjaXZpbCBjYWxlbmRhci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2l2aWxDYXNlcygpCisgICAgeworICAgICAgICBmaW5hbCBUZXN0Q2FzZVtdIHRlc3RzID0geworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE1vc3Qgb2YgdGhlc2UgdGVzdCBjYXNlcyB3ZXJlIHRha2VuIGZyb20gdGhlIGJhY2sgb2YKKyAgICAgICAgICAgIC8vICJDYWxlbmRyaWNhbCBDYWxjdWxhdGlvbnMiLCB3aXRoIHNvbWUgZXh0cmFzIGFkZGVkIHRvIGhlbHAKKyAgICAgICAgICAgIC8vIGRlYnVnIGEgZmV3IG9mIHRoZSBwcm9ibGVtcyB0aGF0IGNyb3BwZWQgdXAgaW4gZGV2ZWxvcG1lbnQuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gVGhlIG1vbnRocyBpbiB0aGlzIHRhYmxlIGFyZSAxLWJhc2VkIHJhdGhlciB0aGFuIDAtYmFzZWQsCisgICAgICAgICAgICAvLyBiZWNhdXNlIGl0J3MgZWFzaWVyIHRvIGVkaXQgdGhhdCB3YXkuCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgSXNsYW1pYworICAgICAgICAgICAgLy8gICAgICAgICAgSnVsaWFuIERheSAgRXJhICBZZWFyICBNb250aCBEYXkgIFdrRGF5IEhvdXIgTWluIFNlYworICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE1MDcyMzEuNSwgIDAsIC0xMjQ1LCAgIDEyLCAgIDksICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxNjYwMDM3LjUsICAwLCAgLTgxMywgICAgMiwgIDIzLCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTc0Njg5My41LCAgMCwgIC01NjgsICAgIDQsICAgMSwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE3NzA2NDEuNSwgIDAsICAtNTAxLCAgICA0LCAgIDYsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgxODkyNzMxLjUsICAwLCAgLTE1NywgICAxMCwgIDE3LCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMTkzMTU3OS41LCAgMCwgICAtNDcsICAgIDYsICAgMywgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDE5NzQ4NTEuNSwgIDAsICAgIDc1LCAgICA3LCAgMTMsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMDkxMTY0LjUsICAwLCAgIDQwMywgICAxMCwgICA1LCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjEyMTUwOS41LCAgMCwgICA0ODksICAgIDUsICAyMiwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIxNTU3NzkuNSwgIDAsICAgNTg2LCAgICAyLCAgIDcsICBGUkksICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMTc0MDI5LjUsICAwLCAgIDYzNywgICAgOCwgICA3LCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjE5MTU4NC41LCAgMCwgICA2ODcsICAgIDIsICAyMCwgIEZSSSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIxOTUyNjEuNSwgIDAsICAgNjk3LCAgICA3LCAgIDcsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjI5Mjc0LjUsICAwLCAgIDc5MywgICAgNywgICAxLCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI0NTU4MC41LCAgMCwgICA4MzksICAgIDcsICAgNiwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIyNjYxMDAuNSwgIDAsICAgODk3LCAgICA2LCAgIDEsICBTQVQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMjg4NTQyLjUsICAwLCAgIDk2MCwgICAgOSwgIDMwLCAgU0FULCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjI5MDkwMS41LCAgMCwgICA5NjcsICAgIDUsICAyNywgIFNBVCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIzMjMxNDAuNSwgIDAsICAxMDU4LCAgICA1LCAgMTgsICBXRUQsICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzM0ODQ4LjUsICAwLCAgMTA5MSwgICAgNiwgICAyLCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjM0ODAyMC41LCAgMCwgIDExMjgsICAgIDgsICAgNCwgIEZSSSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDIzNjY5NzguNSwgIDAsICAxMTgyLCAgICAyLCAgIDMsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyMzg1NjQ4LjUsICAwLCAgMTIzNCwgICAxMCwgIDEwLCAgTU9OLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjM5MjgyNS41LCAgMCwgIDEyNTUsICAgIDEsICAxMSwgIFdFRCwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MTYyMjMuNSwgIDAsICAxMzIxLCAgICAxLCAgMjEsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDI1ODQ4LjUsICAwLCAgMTM0OCwgICAgMywgIDE5LCAgU1VOLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQzMDI2Ni41LCAgMCwgIDEzNjAsICAgIDksICAgOCwgIE1PTiwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0MzA4MzMuNSwgIDAsICAxMzYyLCAgICA0LCAgMTMsICBNT04sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDMxMDA0LjUsICAwLCAgMTM2MiwgICAxMCwgICA3LCAgVEhVLCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ0ODY5OC41LCAgMCwgIDE0MTIsICAgIDksICAxMywgIFRVRSwgICAwLCAgMCwgIDApLAorICAgICAgICAgICAgbmV3IFRlc3RDYXNlKDI0NTAxMzguNSwgIDAsICAxNDE2LCAgIDEwLCAgIDUsICBTVU4sICAgMCwgIDAsICAwKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q2FzZSgyNDY1NzM3LjUsICAwLCAgMTQ2MCwgICAxMCwgIDEyLCAgV0VELCAgIDAsICAwLCAgMCksCisgICAgICAgICAgICBuZXcgVGVzdENhc2UoMjQ4NjA3Ni41LCAgMCwgIDE1MTgsICAgIDMsICAgNSwgIFNVTiwgICAwLCAgMCwgIDApLAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNpdmlsQ2FsZW5kYXIgPSBuZXdDaXZpbCgpOworICAgICAgICBjaXZpbENhbGVuZGFyLnNldExlbmllbnQodHJ1ZSk7CisgICAgICAgIGRvVGVzdENhc2VzKHRlc3RzLCBjaXZpbENhbGVuZGFyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFzaWMoKSB7CisgICAgICAgIElzbGFtaWNDYWxlbmRhciBjYWwgPSBuZXdDaXZpbCgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxMDAwLCAwLCAzMCk7CisgICAgICAgIGxvZ2xuKCIxMDAwLzAvMzAgLT4gIiArCisgICAgICAgICAgICAgIGNhbC5nZXQoWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICBjYWwuZ2V0KE1PTlRIKSArICIvIiArIAorICAgICAgICAgICAgICBjYWwuZ2V0KERBVEUpKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMSwgMCwgMzApOworICAgICAgICBsb2dsbigiMS8wLzMwIC0+ICIgKworICAgICAgICAgICAgICBjYWwuZ2V0KFlFQVIpICsgIi8iICsKKyAgICAgICAgICAgICAgY2FsLmdldChNT05USCkgKyAiLyIgKyAKKyAgICAgICAgICAgICAgY2FsLmdldChEQVRFKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgIHsKKyAgICAgICAgLy8gbmV3IElzbGFtaWNDYWxlbmRhcihUaW1lWm9uZSkKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSXNsYW1pY0NhbGVuZGFyIHdpdGggVGltZVpvbmUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IElzbGFtaWNDYWxlbmRhcihVTG9jYWxlKQorICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2FsID0gbmV3IElzbGFtaWNDYWxlbmRhcihVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIElzbGFtaWNDYWxlbmRhciB3aXRoIFVMb2NhbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgeworICAgICAgICAvLyBuZXcgSXNsYW1pY0NhbGVuZGFyKExvY2FsZSkKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIElzbGFtaWNDYWxlbmRhciB3aXRoIExvY2FsZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgSXNsYW1pY0NhbGVuZGFyKERhdGUpCisgICAgICAgIElzbGFtaWNDYWxlbmRhciBjYWwgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKG5ldyBEYXRlKCkpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBJc2xhbWljQ2FsZW5kYXIgd2l0aCBEYXRlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBJc2xhbWljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpCisgICAgICAgIElzbGFtaWNDYWxlbmRhciBjYWwgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKDgwMCwgSXNsYW1pY0NhbGVuZGFyLlJBTUFEQU4sIDEpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBJc2xhbWljQ2FsZW5kYXIgd2l0aCB5ZWFyLG1vbnRoLGRhdGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IElzbGFtaWNDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgICAgIElzbGFtaWNDYWxlbmRhciBjYWwgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKDgwMCwgSXNsYW1pY0NhbGVuZGFyLlJBTUFEQU4sIDEsIDEsIDEsIDEpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBJc2xhbWljQ2FsZW5kYXIgd2l0aCB5ZWFyLG1vbnRoLGRhdGUsaG91cixtaW51dGUsc2Vjb25kIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIHNldENpdmlsL2lzQ2l2aWwKKyAgICAgICAgLy8gb3BlcmF0aW9ucyBvbiBub24tY2l2aWwgY2FsZW5kYXIKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoODAwLCBJc2xhbWljQ2FsZW5kYXIuUkFNQURBTiwgMSwgMSwgMSwgMSk7CisgICAgICAgIGNhbC5zZXRDaXZpbChmYWxzZSk7CisgICAgICAgIGlmIChjYWwuaXNDaXZpbCgpKSB7CisgICAgICAgIGVycmxuKCJpc2xhbWljIGNhbGVuZGFyIGlzIGNpdmlsIik7CisgICAgICAgIH0KKworICAgICAgICBEYXRlIG5vdyA9IG5ldyBEYXRlKCk7CisgICAgICAgIGNhbC5zZXRUaW1lKG5vdyk7CisKKyAgICAgICAgRGF0ZSB0aGVuID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgaWYgKCFub3cuZXF1YWxzKHRoZW4pKSB7CisgICAgICAgIGVycmxuKCJnZXQvc2V0IHRpbWUgZmFpbGVkIHdpdGggbm9uLWNpdmlsIGlzbGFtaWMgY2FsZW5kYXIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKHRoZW4udG9TdHJpbmcoKSk7CisKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5NT05USCwgMSk7CisgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFZX09GX01PTlRILCAxKTsKKyAgICAgICAgY2FsLmFkZChDYWxlbmRhci5ZRUFSLCAxKTsKKworICAgICAgICBsb2dsbihjYWwuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOworICAgIH0KKyAgICAKKyAgICB7CisgICAgICAgIC8vIGRhdGEKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNhbCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoODAwLCBJc2xhbWljQ2FsZW5kYXIuUkFNQURBTiwgMSk7CisgICAgICAgIERhdGUgdGltZSA9IGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgU3RyaW5nW10gY2FsZW5kYXJMb2NhbGVzID0geworICAgICAgICAiYXJfQUUiLCAiYXJfQkgiLCAiYXJfRFoiLCAiYXJfRUciLCAiYXJfSk8iLCAiYXJfS1ciLCAiYXJfT00iLCAKKyAgICAgICAgImFyX1FBIiwgImFyX1NBIiwgImFyX1NZIiwgImFyX1lFIiwgIm1zX01ZIgorICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdIGZvcm1hdExvY2FsZXMgPSB7CisgICAgICAgICJlbiIsICJhciIsICJmaSIsICJmciIsICJodSIsICJpdyIsICJubCIKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxlbmRhckxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgU3RyaW5nIGNhbExvY05hbWUgPSBjYWxlbmRhckxvY2FsZXNbaV07CisgICAgICAgIExvY2FsZSBjYWxMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGNhbExvY05hbWUpOworICAgICAgICBjYWwgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKGNhbExvY2FsZSk7CisKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBmb3JtYXRMb2NhbGVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBTdHJpbmcgbG9jTmFtZSA9IGZvcm1hdExvY2FsZXNbal07CisgICAgICAgICAgICBMb2NhbGUgZm9ybWF0TG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShsb2NOYW1lKTsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIGZvcm1hdExvY2FsZSk7CisgICAgICAgICAgICBsb2dsbihjYWxMb2NOYW1lICsgIi8iICsgbG9jTmFtZSArICIgLS0+ICIgKyBmb3JtYXQuZm9ybWF0KHRpbWUpKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIElzbGFtaWNDYWxlbmRhciBuZXdDaXZpbCgpIHsKKyAgICAgICAgSXNsYW1pY0NhbGVuZGFyIGNpdmlsQ2FsZW5kYXIgPSBuZXcgSXNsYW1pY0NhbGVuZGFyKCk7CisgICAgICAgIGNpdmlsQ2FsZW5kYXIuc2V0Q2l2aWwodHJ1ZSk7CisgICAgICAgIHJldHVybiBjaXZpbENhbGVuZGFyOworICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9KYXBhbmVzZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9KYXBhbmVzZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjI3NTk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL0phcGFuZXNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTcwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNhbGVuZGFyOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIFRlc3RzIGZvciB0aGUgPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiBjbGFzcy4KKyAqLworcHVibGljIGNsYXNzIEphcGFuZXNlVGVzdCBleHRlbmRzIENhbGVuZGFyVGVzdCB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBKYXBhbmVzZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgIHsKKyAgICAgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoVGltZVpvbmUpCisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSmFwYW5lc2VDYWxlbmRhciB3aXRoIFRpbWVab25lIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIG5ldyBKYXBhbmVzZUNhbGVuZGFyKFVMb2NhbGUpCisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBKYXBhbmVzZUNhbGVuZGFyIHdpdGggVUxvY2FsZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZSwgVUxvY2FsZSkKKyAgICAgICAgSmFwYW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSmFwYW5lc2VDYWxlbmRhciB3aXRoIFRpbWVab25lIFVMb2NhbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB7CisgICAgICAgIC8vIG5ldyBKYXBhbmVzZUNhbGVuZGFyKExvY2FsZSkKKyAgICAgICAgSmFwYW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcihMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSmFwYW5lc2VDYWxlbmRhciB3aXRoIExvY2FsZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZSwgTG9jYWxlKQorICAgICAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKFRpbWVab25lLmdldERlZmF1bHQoKSwgTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEphcGFuZXNlQ2FsZW5kYXIgd2l0aCBUaW1lWm9uZSBMb2NhbGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoRGF0ZSkKKyAgICAgICAgSmFwYW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcihuZXcgRGF0ZSgpKTsKKyAgICAgICAgaWYoY2FsID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgSmFwYW5lc2VDYWxlbmRhciB3aXRoIERhdGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpCisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoMTg2OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEphcGFuZXNlQ2FsZW5kYXIgd2l0aCB5ZWFyLG1vbnRoLGRhdGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gbmV3IEphcGFuZXNlQ2FsZW5kYXIoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpCisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoSmFwYW5lc2VDYWxlbmRhci5NRUlKSSwgNDMsIENhbGVuZGFyLkpBTlVBUlksIDEpOworICAgICAgICBpZihjYWwgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBKYXBhbmVzZUNhbGVuZGFyIHdpdGggZXJhLHllYXIsbW9udGgsZGF0ZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICAvLyBuZXcgSmFwYW5lc2VDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoMTg2OCwgQ2FsZW5kYXIuSkFOVUFSWSwgMSwgMSwgMSwgMSk7CisgICAgICAgIGlmKGNhbCA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIEphcGFuZXNlQ2FsZW5kYXIgd2l0aCB5ZWFyLG1vbnRoLGRhdGUsaG91cixtaW4sc2Vjb25kIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIGxpbWl0cworICAgICAgICBKYXBhbmVzZUNhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKCk7CisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gY2FsLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBMb2NhbGUuRU5HTElTSCk7CisKKyAgICAgICAgY2FsLnNldChDYWxlbmRhci5FUkEsIEphcGFuZXNlQ2FsZW5kYXIuTUVJSkkpOworICAgICAgICBsb2dsbigiZGF0ZTogIiArIGNhbC5nZXRUaW1lKCkpOworICAgICAgICBsb2dsbigibWluIGVyYTogIiArIGNhbC5nZXRNaW5pbXVtKENhbGVuZGFyLkVSQSkpOworICAgICAgICBsb2dsbigibWluIHllYXI6ICIgKyBjYWwuZ2V0TWluaW11bShDYWxlbmRhci5ZRUFSKSk7CisgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgY2FsLmdldEFjdHVhbE1heGltdW0oQ2FsZW5kYXIuWUVBUikpOworICAgICAgICBsb2dsbigiZGF0ZTogIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworICAgICAgICBjYWwuYWRkKENhbGVuZGFyLllFQVIsIDEpOworICAgICAgICBsb2dsbigiZGF0ZTogIiArIGZtdC5mb3JtYXQoY2FsLmdldFRpbWUoKSkpOworICAgIH0KKyAgICAKKyAgICB7CisgICAgICAgIC8vIGRhdGEKKyAgICAgICAgSmFwYW5lc2VDYWxlbmRhciBjYWwgPSBuZXcgSmFwYW5lc2VDYWxlbmRhcigxODY4LCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgRGF0ZSB0aW1lID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICBTdHJpbmdbXSBjYWxlbmRhckxvY2FsZXMgPSB7CisgICAgICAgICJlbiIsICJqYV9KUCIKKyAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdbXSBmb3JtYXRMb2NhbGVzID0geworICAgICAgICAiZW4iLCAiamEiCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FsZW5kYXJMb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIFN0cmluZyBjYWxMb2NOYW1lID0gY2FsZW5kYXJMb2NhbGVzW2ldOworICAgICAgICBMb2NhbGUgY2FsTG9jYWxlID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShjYWxMb2NOYW1lKTsKKyAgICAgICAgY2FsID0gbmV3IEphcGFuZXNlQ2FsZW5kYXIoY2FsTG9jYWxlKTsKKworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGZvcm1hdExvY2FsZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIFN0cmluZyBsb2NOYW1lID0gZm9ybWF0TG9jYWxlc1tqXTsKKyAgICAgICAgICAgIExvY2FsZSBmb3JtYXRMb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGxvY05hbWUpOworICAgICAgICAgICAgRGF0ZUZvcm1hdCBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgZm9ybWF0TG9jYWxlKTsKKyAgICAgICAgICAgIGxvZ2xuKGNhbExvY05hbWUgKyAiLyIgKyBsb2NOYW1lICsgIiAtLT4gIiArIGZvcm1hdC5mb3JtYXQodGltZSkpOworICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3QzODYwKCkKKyAgICB7CisgICAgICAgIFVMb2NhbGUgbG9jID0gbmV3IFVMb2NhbGUoImphX0pQQGNhbGVuZGFyPWphcGFuZXNlIik7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKGxvYyk7CisgICAgICAgIERhdGVGb3JtYXQgZW5qZm9ybWF0ID0gY2FsLmdldERhdGVUaW1lRm9ybWF0KDAsMCxuZXcgVUxvY2FsZSgiZW5fSlBAY2FsZW5kYXI9amFwYW5lc2UiKSk7CisgICAgICAgIERhdGVGb3JtYXQgZm9ybWF0ID0gY2FsLmdldERhdGVUaW1lRm9ybWF0KDAsMCxsb2MpOworICAgICAgICAoKFNpbXBsZURhdGVGb3JtYXQpZm9ybWF0KS5hcHBseVBhdHRlcm4oInkuTS5kIik7ICAvLyBOb3RlOiBqdXN0ICd5JyBkb2Vzbid0IHdvcmsgaGVyZS4KKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgRGF0ZSBhRGF0ZSA9IGZvcm1hdC5wYXJzZSgiMS4xLjkiLCBwb3MpOyAvLyBhZnRlciB0aGUgc3RhcnQgb2YgaGVpc2VpIGFjY2Vzc2lvbi4gIEphbiAxLCAxSCB3b3VsZG4ndCB3b3JrICBiZWNhdXNlIGl0IGlzIGFjdHVhbGx5IHNob3dhIDY0CisgICAgICAgIFN0cmluZyBpbkVuID0gZW5qZm9ybWF0LmZvcm1hdChhRGF0ZSk7CisgICAgICAgIAorICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldFRpbWUoYURhdGUpOworICAgICAgICBpbnQgZ290WWVhciA9IGNhbC5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgIGludCBnb3RFcmEgPSBjYWwuZ2V0KENhbGVuZGFyLkVSQSk7CisgICAgICAgIAorICAgICAgICBpbnQgZXhwZWN0WWVhciA9IDE7CisgICAgICAgIGludCBleHBlY3RFcmEgPSBKYXBhbmVzZUNhbGVuZGFyLkNVUlJFTlRfRVJBOworICAgICAgICAKKyAgICAgICAgaWYoKGdvdFllYXIgIT0gZXhwZWN0WWVhcikgfHwgKGdvdEVyYSAhPSBleHBlY3RFcmEpKSB7CisgICAgICAgICAgICBlcnJsbigiRXhwZWN0ZWQgeWVhciAiICsgZXhwZWN0WWVhciArICIsIGVyYSAiICsgZXhwZWN0RXJhICsiLCBidXQgZ290IHllYXIgIiArIGdvdFllYXIgKyAiIGFuZCBlcmEgIiArIGdvdEVyYSArICIsID09ICIgKyBpbkVuKTsKKyAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvZ2xuKCJHb3QgeWVhciAiICsgZ290WWVhciArICIgYW5kIGVyYSAiICsgZ290RXJhICsgIiwgPT0gIiArIGluRW4pOworICAgICAgICB9CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDA3ODVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NhbGVuZGFyL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDM4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gYWxsIG90aGVyIGNhbGVuZGFyIHRlc3RzIGFzIGEgYmF0Y2guCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0QWxsKCkgeworICAgICAgICBzdXBlcigKKyAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAgICJBc3Ryb1Rlc3QiLAorICAgICAgICAgICAgICAgICAgIkNhbGVuZGFyUmVncmVzc2lvbiIsCisgICAgICAgICAgICAgICAgICAiQ29tcGF0aWJpbGl0eVRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvcHRpY1Rlc3QiLAorICAgICAgICAgICAgICAgICAgIkV0aGlvcGljVGVzdCIsCisgICAgICAgICAgICAgICAgICAiSGVicmV3VGVzdCIsCisgICAgICAgICAgICAgICAgICAiSUJNQ2FsZW5kYXJUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJJc2xhbWljVGVzdCIsCisgICAgICAgICAgICAgICAgICAiSmFwYW5lc2VUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDaGluZXNlVGVzdCIsCisgICAgICAgICAgICAgICAgICAiSG9saWRheVRlc3QiCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICJDYWxlbmRhcnMsIEhvbGlkYXksIGFuZCBBc3RybyB0ZXN0cyIKKyAgICAgICAgICAgICAgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJDYWxlbmRhciI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvVGVzdENhc2UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9UZXN0Q2FzZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZmMDYyZDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvVGVzdENhc2UuamF2YQpAQCAtMCwwICsxLDI0MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2FsZW5kYXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogQSBwc2V1ZG8gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHRoYXQgaXMgdXNlZnVsIGZvciB0ZXN0aW5nCisgKiBuZXcgY2FsZW5kYXJzLiAgQSA8Y29kZT5UZXN0Q2FzZTwvY29kZT4gb2JqZWN0IGlzIHVzZWQgdG8gaG9sZCB0aGUKKyAqIGZpZWxkIGFuZCBtaWxsaXNlY29uZCB2YWx1ZXMgdGhhdCB0aGUgY2FsZW5kYXIgc2hvdWxkIGhhdmUgYXQgb25lCisgKiBwYXJ0aWN1bGFyIGluc3RhbnQgaW4gdGltZS4gIFRoZSBhcHBseUZpZWxkcyBhbmQgYXBwbHlUaW1lCisgKiBtZXRob2RzIGFyZSB1c2VkIHRvIGFwcGx5IHRoZXNlIHNldHRpbmdzIHRvIHRoZSBjYWxlbmRhciBvYmplY3QgYmVpbmcKKyAqIHRlc3RlZCwgYW5kIHRoZSBlcXVhbHMgYW5kIGZpZWxkc0VxdWFsIG1ldGhvZHMgYXJlIHVzZWQgdG8gZW5zdXJlCisgKiB0aGF0IHRoZSBjYWxlbmRhciBoYXMgZW5kZWQgdXAgaW4gdGhlIHJpZ2h0IHN0YXRlLgorICovCitwdWJsaWMgY2xhc3MgVGVzdENhc2UgeworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQc2V1ZG8tQ2FsZW5kYXIgZmllbGRzIGFuZCBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByb3RlY3RlZCBpbnRbXSBmaWVsZHMgPSBuZXcgaW50WzMyXTsKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbltdIGlzU2V0ID0gbmV3IGJvb2xlYW5bMzJdOworICAgIHByb3RlY3RlZCBsb25nIHRpbWU7CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXQoaW50IGZpZWxkLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgZmllbGRzW2ZpZWxkXSA9IHZhbHVlOworICAgICAgICBpc1NldFtmaWVsZF0gPSB0cnVlOworICAgIH0KKworICAgIHByb3RlY3RlZCBpbnQgZ2V0KGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gZmllbGRzW2ZpZWxkXTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc1NldChpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGlzU2V0W2ZpZWxkXTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRUaW1lKERhdGUgZCkgeworICAgICAgICB0aW1lID0gZC5nZXRUaW1lKCk7CisgICAgfQorCisgICAgcHVibGljIERhdGUgZ2V0VGltZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRpbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHRlc3QgY2FzZSdzIHRpbWUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGRvd1RvU3RyaW5nKGdldChDYWxlbmRhci5EQVlfT0ZfV0VFSykpICsgIiAiICsKKyAgICAgICAgICAgIGdldChDYWxlbmRhci5ZRUFSKSArICIvIiArIChnZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsgIi8iICsKKyAgICAgICAgICAgIGdldChDYWxlbmRhci5EQVRFKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBET1dfTkFNRVMgPSB7CisgICAgICAgICJTdW4iLCAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiCisgICAgfTsKKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRvd1RvU3RyaW5nKGludCBkb3cpIHsKKyAgICAgICAgLS1kb3c7CisgICAgICAgIHJldHVybiAoZG93IDwgMCB8fCBkb3cgPiA2KSA/CisgICAgICAgICAgICAoIjxET1cgIiArIGRvdyArICI+IikgOiBET1dfTkFNRVNbZG93XTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIGEgVGVzdENhc2Ugb2JqZWN0IHVzaW5nIGEganVsaWFuIGRheSBudW1iZXIgYW5kCisgICAgICogdGhlIGNvcnJlc3BvbmRpbmcgZmllbGRzIGZvciB0aGUgY2FsZW5kYXIgYmVpbmcgdGVzdGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGVyYSAgICAgICBUaGUgRVJBIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4ganVsaWFuIGRheQorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIFlFQVIgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBqdWxpYW4gZGF5CisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgTU9OVEggKDEtYmFzZWQpIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4ganVsaWFuIGRheQorICAgICAqIEBwYXJhbSBkYXkgICAgICAgVGhlIERBWV9PRl9NT05USCBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGp1bGlhbiBkYXkKKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIFRoZSBEQVlfT0ZfV0VFSyBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGp1bGlhbiBkYXkKKyAgICAgKiBAcGFyYW0gaG91ciAgICAgIFRoZSBIT1VSIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4ganVsaWFuIGRheQorICAgICAqIEBwYXJhbSBtaW4gICAgICAgVGhlIE1JTlVURSBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGp1bGlhbiBkYXkKKyAgICAgKiBAcGFyYW0gc2VjICAgICAgIFRoZSBTRUNPTkQgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBqdWxpYW4gZGF5CisgICAgICovCisgICAgcHVibGljIFRlc3RDYXNlKGRvdWJsZSBqdWxpYW4sCisgICAgICAgICAgICAgICAgICAgIGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXksCisgICAgICAgICAgICAgICAgICAgIGludCBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgIGludCBob3VyLCBpbnQgbWluLCBpbnQgc2VjKQorICAgIHsKKyAgICAgICAgc2V0VGltZShuZXcgRGF0ZShKVUxJQU5fRVBPQ0ggKyAobG9uZykoT05FX0RBWSAqIGp1bGlhbikpKTsKKyAgICAgICAgCisgICAgICAgIHNldChDYWxlbmRhci5FUkEsIGVyYSk7CisgICAgICAgIHNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLk1PTlRILCBtb250aCAtIDEpOworICAgICAgICBzZXQoQ2FsZW5kYXIuREFURSwgZGF5KTsKKyAgICAgICAgc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBkYXlPZldlZWspOworICAgICAgICBzZXQoQ2FsZW5kYXIuSE9VUiwgaG91cik7CisgICAgICAgIHNldChDYWxlbmRhci5NSU5VVEUsIG1pbik7CisgICAgICAgIHNldChDYWxlbmRhci5TRUNPTkQsIHNlYyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSBhIFRlc3RDYXNlIG9iamVjdCB1c2luZyBhIEdyZWdvcmlhbiB5ZWFyL21vbnRoL2RheSBhbmQKKyAgICAgKiB0aGUgY29ycmVzcG9uZGluZyBmaWVsZHMgZm9yIHRoZSBjYWxlbmRhciBiZWluZyB0ZXN0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ3JlZ1llYXIgIFRoZSBHcmVnb3JpYW4geWVhciBvZiB0aGUgZGF0ZSB0byBiZSB0ZXN0ZWQKKyAgICAgKiBAcGFyYW0gZ3JlZ01vbnRoIFRoZSBHcmVnb3JpYW4gbW9udGggb2YgdGhlIGRhdGUgdG8gYmUgdGVzdGVkCisgICAgICogQHBhcmFtIGdyZWdEYXkgICBUaGUgR3JlZ29yaWFuIGRheSBvZiB0aGUgbW9udGggb2YgdGhlIGRhdGUgdG8gYmUgdGVzdGVkCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXJhICAgICAgIFRoZSBFUkEgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBncmVnb3JpYW4gZGF0ZQorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIFlFQVIgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBncmVnb3JpYW4gZGF0ZQorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIE1PTlRIICgwLWJhc2VkKSBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGdyZWdvcmlhbiBkYXRlCisgICAgICogQHBhcmFtIGRheSAgICAgICBUaGUgREFZX09GX01PTlRIIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4gZ3JlZ29yaWFuIGRhdGUKKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIFRoZSBEQVlfT0ZfV0VFSyBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGdyZWdvcmlhbiBkYXRlCisgICAgICogQHBhcmFtIGhvdXIgICAgICBUaGUgSE9VUiBmaWVsZCBvZiB0ZXN0ZWQgY2FsZW5kYXIgb24gdGhlIGdpdmVuIGdyZWdvcmlhbiBkYXRlCisgICAgICogQHBhcmFtIG1pbiAgICAgICBUaGUgTUlOVVRFIGZpZWxkIG9mIHRlc3RlZCBjYWxlbmRhciBvbiB0aGUgZ2l2ZW4gZ3JlZ29yaWFuIGRhdGUKKyAgICAgKiBAcGFyYW0gc2VjICAgICAgIFRoZSBTRUNPTkQgZmllbGQgb2YgdGVzdGVkIGNhbGVuZGFyIG9uIHRoZSBnaXZlbiBncmVnb3JpYW4gZGF0ZQorICAgICAqLworICAgIHB1YmxpYyBUZXN0Q2FzZShpbnQgZ3JlZ1llYXIsIGludCBncmVnTW9udGgsIGludCBncmVnRGF5LAorICAgICAgICAgICAgICAgICAgICBpbnQgZXJhLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5LAorICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICBpbnQgaG91ciwgaW50IG1pbiwgaW50IHNlYykKKyAgICB7CisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdyZWcgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoVVRDLCBMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgZ3JlZy5jbGVhcigpOworICAgICAgICBncmVnLnNldChncmVnWWVhciwgZ3JlZ01vbnRoLTEsIGdyZWdEYXkpOworICAgICAgICBzZXRUaW1lKGdyZWcuZ2V0VGltZSgpKTsKKyAgICAgICAgCisgICAgICAgIHNldChDYWxlbmRhci5FUkEsIGVyYSk7CisgICAgICAgIHNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgc2V0KENhbGVuZGFyLk1PTlRILCBtb250aCAtIDEpOworICAgICAgICBzZXQoQ2FsZW5kYXIuREFURSwgZGF5KTsKKyAgICAgICAgc2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLLCBkYXlPZldlZWspOworICAgICAgICBzZXQoQ2FsZW5kYXIuSE9VUiwgaG91cik7CisgICAgICAgIHNldChDYWxlbmRhci5NSU5VVEUsIG1pbik7CisgICAgICAgIHNldChDYWxlbmRhci5TRUNPTkQsIHNlYyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZvciBzdWJjbGFzc2VzLgorICAgICAqLworICAgIHByb3RlY3RlZCBUZXN0Q2FzZSgpIHt9CisKKyAgICAvKioKKyAgICAgKiBBcHBseSB0aGlzIHRlc3QgY2FzZSdzIGZpZWxkIHZhbHVlcyB0byBhbm90aGVyIGNhbGVuZGFyCisgICAgICogYnkgY2FsbGluZyBpdHMgc2V0IG1ldGhvZCBmb3IgZWFjaCBmaWVsZC4gIFRoaXMgaXMgdXNlZnVsIGluIGNvbWJpbmF0aW9uCisgICAgICogd2l0aCB0aGUgZXF1YWwgbWV0aG9kLgorICAgICAqCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyI2VxdWFscworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5RmllbGRzKENhbGVuZGFyIGMpIHsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgYy5nZXRGaWVsZENvdW50KCk7IGkrKykgeworICAgICAgICAgICAgaWYgKGlzU2V0KGkpKSB7CisgICAgICAgICAgICAgICAgYy5zZXQoaSwgZ2V0KGkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBcHBseSB0aGlzIHRlc3QgY2FzZSdzIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRvIGFub3RoZXIgY2FsZW5kYXIKKyAgICAgKiBieSBjYWxsaW5nIGl0cyBzZXRUaW1lIG1ldGhvZC4gIFRoaXMgaXMgdXNlZnVsIGluIGNvbWJpbmF0aW9uCisgICAgICogd2l0aCBmaWVsZHNFcXVhbAorICAgICAqCisgICAgICogQHNlZSAjZmllbGRzRXF1YWwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBseVRpbWUoQ2FsZW5kYXIgYykgeworICAgICAgICBjLnNldFRpbWUobmV3IERhdGUodGltZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZSB3aGV0aGVyIHRoZSBmaWVsZHMgb2YgdGhpcyBjYWxlbmRhcgorICAgICAqIGFyZSB0aGUgc2FtZSBhcyB0aGF0IG9mIHRoZSBvdGhlciBjYWxlbmRhci4gIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bAorICAgICAqIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIHRoZSBvdGhlciBjYWxlbmRhcidzIGNvbXB1dGVGaWVsZHMgbWV0aG9kCisgICAgICogd29ya3MgcHJvcGVybHkuICBGb3IgZXhhbXBsZToKKyAgICAgKiA8cHJlPgorICAgICAqICAgIENhbGVuZGFyIHRlc3RDYWxlbmRhciA9IC4uLgorICAgICAqICAgIFRlc3RDYXNlIGNhc2UgPSAuLi4KKyAgICAgKiAgICBjYXNlLmFwcGx5VGltZSh0ZXN0Q2FsZW5kYXIpOworICAgICAqICAgIGlmICghY2FzZS5maWVsZHNFcXVhbCh0ZXN0Q2FsZW5kYXIpKSB7CisgICAgICogICAgICAgIC8vIEVycm9yIQorICAgICAqICAgIH0KKyAgICAgKiA8L3ByZT4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNhcHBseVRpbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBmaWVsZHNFcXVhbChDYWxlbmRhciBjLCBUZXN0TG9nIGxvZykgeworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBjLmdldEZpZWxkQ291bnQoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaXNTZXQoaSkgJiYgZ2V0KGkpICE9IGMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJGYWlsOiAiICsgQ2FsZW5kYXJUZXN0LmZpZWxkTmFtZShpKSArICIgPSAiICsgYy5nZXQoaSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZ2V0KGkpKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8Yy5nZXRGaWVsZENvdW50KCk7ICsraikgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNTZXQoaikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnZXQoaikgPT0gYy5nZXQoaikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJcbiAgb2s6ICIgKyBDYWxlbmRhclRlc3QuZmllbGROYW1lKGopICsgIiA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmdldChqKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxuICBmYWlsOiAiICsgQ2FsZW5kYXJUZXN0LmZpZWxkTmFtZShqKSArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5nZXQoaikgKyAiLCBleHBlY3RlZCAiICsgZ2V0KGopKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2cuZXJybG4oYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZSB3aGV0aGVyIHRpbWUgaW4gbWlsbGlzZWNvbmRzIG9mIHRoaXMgY2FsZW5kYXIKKyAgICAgKiBpcyB0aGUgc2FtZSBhcyB0aGF0IG9mIHRoZSBvdGhlciBjYWxlbmRhci4gIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bAorICAgICAqIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIHRoZSBvdGhlciBjYWxlbmRhcidzIGNvbXB1dGVUaW1lIG1ldGhvZAorICAgICAqIHdvcmtzIHByb3Blcmx5LiAgRm9yIGV4YW1wbGU6CisgICAgICogPHByZT4KKyAgICAgKiAgICBDYWxlbmRhciB0ZXN0Q2FsZW5kYXIgPSAuLi4KKyAgICAgKiAgICBUZXN0Q2FzZSBjYXNlID0gLi4uCisgICAgICogICAgY2FzZS5hcHBseUZpZWxkcyh0ZXN0Q2FsZW5kYXIpOworICAgICAqICAgIGlmICghY2FzZS5lcXVhbHModGVzdENhbGVuZGFyKSkgeworICAgICAqICAgICAgICAvLyBFcnJvciEKKyAgICAgKiAgICB9CisgICAgICogPC9wcmU+CisgICAgICogCisgICAgICogQHNlZSAjYXBwbHlGaWVsZHMKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICByZXR1cm4gdGltZSA9PSAoKENhbGVuZGFyKW9iaikuZ2V0VGltZSgpLmdldFRpbWUoKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgIE9ORV9TRUNPTkQgPSAxMDAwOworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50ICBPTkVfTUlOVVRFID0gNjAqT05FX1NFQ09ORDsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCAgT05FX0hPVVIgICA9IDYwKk9ORV9NSU5VVEU7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIE9ORV9EQVkgICAgPSAyNCpPTkVfSE9VUjsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcgSlVMSUFOX0VQT0NIID0gLTIxMDg2Njc2MDAwMDAwMEw7ICAgLy8gMS8xLzQ3MTMgQkMgMTI6MDAKKworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgU2ltcGxlVGltZVpvbmUgVVRDID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJHTVQiKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jYWxlbmRhci9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNjYjg4NTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2FsZW5kYXIvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Rlc3RzIGZvciB0aGUgY2FsZW5kYXIgY2xhc3Nlcy4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldGRldC9DaGFyc2V0RGV0ZWN0aW9uVGVzdHMueG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXRkZXQvQ2hhcnNldERldGVjdGlvblRlc3RzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2MzZjgyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXRkZXQvQ2hhcnNldERldGVjdGlvblRlc3RzLnhtbApAQCAtMCwwICsxLDU1MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKworPCEtLSBDb3B5cmlnaHQgKGMpIDIwMDUgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQgLS0+Cis8IS0tIFNlZSBpbmRpdmlkdWFsIHRlc3QgY2FzZXMgZm9yIHRoZWlyIHNwZWNpZmljIGNvcHlyaWdodC4gLS0+CisKKzxjaGFyc2V0LWRldGVjdGlvbi10ZXN0cz4KKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1hciIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS02L2FyIHdpbmRvd3MtMTI1Ni9hciI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICDYo9mI2LHZiNio2KcsINio2LHZhdis2YrYp9iqINin2YTYrdin2LPZiNioICsg2KfZhtiq2LHZhtmK2KogOgorICAgINiq2LXYqNitINi52KfZhNmF2YrYpyDZhdi5INmK2YjZhtmK2YPZiNivCisgICAgSVVDMTAKKyAgICDYqtiz2KzZkdmEINin2YTYotmGINmE2K3YttmI2LEg2KfZhNmF2KTYqtmF2LEg2KfZhNiv2YjZhNmKINin2YTYudin2LTYsSDZhNmK2YjZhtmK2YPZiNivLCDYp9mE2LDZiiDYs9mK2LnZgtivINmB2YogMTAtMTIg2KLYsNin2LEgMTk5NyDYqNmF2K/ZitmG2Kkg2YXYp9mK2YbYqtizLAorICAgINij2YTZhdin2YbZitinLiDZiNiz2YrYrNmF2Lkg2KfZhNmF2KTYqtmF2LEg2KjZitmGINiu2KjYsdin2KEg2YXZhiDZg9in2YHYqSDZgti32KfYudin2Kog2KfZhNi12YbYp9i52Kkg2LnZhNmJINin2YTYtNio2YPYqSDYp9mE2LnYp9mE2YXZitipINin2YbYqtix2YbZitiqINmI2YrZiNmG2YrZg9mI2K8sINit2YrYqyDYs9iq2KrZhSwKKyAgICDYudmE2Ykg2KfZhNi12LnZitiv2YrZhiDYp9mE2K/ZiNmE2Yog2YjYp9mE2YXYrdmE2Yog2LnZhNmJINit2K8g2LPZiNin2KEg2YXZhtin2YLYtNipINiz2KjZhCDYp9iz2KrYrtiv2KfZhSDZitmI2YbZg9mI2K8g2YHZiiDYp9mE2YbYuNmFINin2YTZgtin2KbZhdipINmI2YHZitmF2Kcg2YrYrti1INin2YTYqti32KjZitmC2KfYqgorICAgINin2YTYrdin2LPZiNio2YrYqSwg2KfZhNiu2LfZiNi3LCDYqti12YXZitmFINin2YTZhti12YjYtSDZiNin2YTYrdmI2LPYqNipINmF2KrYudiv2K/YqSDYp9mE2YTYutin2KouIAorCisgICAgVW5pY29kZQorICAgINi52YbYr9mF2Kcg2YrYsdmK2K8g2KfZhNi52KfZhNmFINij2YYg2YrYqtmD2YTZkdmFLCDZgdmH2Ygg2YrYqtit2K/ZkdirINio2YTYutipINmK2YjZhtmK2YPZiNivCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWRhLVEiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgd2luZG93cy0xMjUyL2RhIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1cm9wYSwgU29mdHdhcmUgKyBJbnRlcm5ldDoKKyAgICBCbGl2IGdsb2JhbCBtZWQgVW5pY29kZQorICAgIElVQzEwCisgICAgSW5kc2tyaXYgZGlnIG51IHRpbCBkZW4gdGllbmRlIGludGVybmF0aW9uYWxlIFVuaWNvZGUta29uZmVyZW5jZSwgZGVyIGhvbGRlcyBkZW4gMTAtMTIKKyAgICBtYXJ0cyAxOTk3IGkgTWFpbnosIFR5c2tsYW5kLiBLb25mZXJlbmNlbiBzYW1sZXIgZWtzcGVydGVyIGZyYSBoZWxlIHZlcmRlbiBpbmRlbiBmb3IgZGV0CisgICAgZ2xvYmFsZSBJbnRlcm5ldCBvZyBVbmljb2RlLCBpbnRlcm5hdGlvbmFsaXNlcmluZyBvZyBsb2thbGlzZXJpbmcsIGltcGxlbWVudGVyaW5nIGFmCisgICAgVW5pY29kZSBpIHN0eXJlc3lzdGVtZXIgb2cgcHJvZ3JhbW1lciwgc2tyaWZ0dHlwZXIsIHRla3N0LWxheW91dCBvZyBmbGVyc3Byb2dldCBkYXRhYmVoYW5kbGluZy4KKworICAgIFVuaWNvZGUKKyAgICBOw6VyIHZlcmRlbiB2aWwgdGFsZSwgdGFsZXIgZGVuIOKAnFVuaWNvZGUu4oCdCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWRhIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTEvZGEiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyb3BhLCBTb2Z0d2FyZSArIEludGVybmV0OgorICAgIEJsaXYgZ2xvYmFsIG1lZCBVbmljb2RlCisgICAgSVVDMTAKKyAgICBJbmRza3JpdiBkaWcgbnUgdGlsIGRlbiB0aWVuZGUgaW50ZXJuYXRpb25hbGUgVW5pY29kZS1rb25mZXJlbmNlLCBkZXIgaG9sZGVzIGRlbiAxMC0xMgorICAgIG1hcnRzIDE5OTcgaSBNYWlueiwgVHlza2xhbmQuIEtvbmZlcmVuY2VuIHNhbWxlciBla3NwZXJ0ZXIgZnJhIGhlbGUgdmVyZGVuIGluZGVuIGZvciBkZXQKKyAgICBnbG9iYWxlIEludGVybmV0IG9nIFVuaWNvZGUsIGludGVybmF0aW9uYWxpc2VyaW5nIG9nIGxva2FsaXNlcmluZywgaW1wbGVtZW50ZXJpbmcgYWYKKyAgICBVbmljb2RlIGkgc3R5cmVzeXN0ZW1lciBvZyBwcm9ncmFtbWVyLCBza3JpZnR0eXBlciwgdGVrc3QtbGF5b3V0IG9nIGZsZXJzcHJvZ2V0IGRhdGFiZWhhbmRsaW5nLgorCisgICAgVW5pY29kZQorICAgIE7DpXIgdmVyZGVuIHZpbCB0YWxlLCB0YWxlciBkZW4gVW5pY29kZS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtZGUiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMS9kZSI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXJvcGEsIFNvZnR3YXJlICsgZGFzIEludGVybmV0OgorICAgIEludGVybmF0aW9uYWwgbWl0IFVuaWNvZGUKKyAgICBJVUMxMAorICAgIE1lbGRlbiBTaWUgc2ljaCBqZXR6dCBmw7xyIGRpZSAxMC4gSW50ZXJuYXRpb25hbGUgVW5pY29kZSBLb25mZXJlbnogYW4sIGRpZSBpbiBkZXIgWmVpdCB2b20gMTAuLTEyLiBNw6RyeiAxOTk3IGluCisgICAgTWFpbnogc3RhdHRmaW5kZW4gd2lyZC4gRGllIEtvbmZlcmVueiBpc3QgZWluIFRyZWZmcHVua3QgZsO8ciBCZXRyaWVic2V4cGVydGVuIGF1cyBkZW4gQmVyZWljaGVuIGdsb2JhbGVzCisgICAgSW50ZXJuZXQgdW5kIFVuaWNvZGUsIEludGVybmF0aW9uYWxpc2llcnVuZyB1bmQgTG9rYWxpc2llcnVuZywgZGllIEltcGxlbWVudGllcnVuZyB2b24gVW5pY29kZSBpbgorICAgIEJldHJpZWJzc3lzdGVtZW4gdW5kIFByb2dyYW1tZW4sIHNvd2llIGbDvHIgU2NocmlmdGFydGVuLCBUZXh0bGF5b3V0IHVuZCBtZWhyc3ByYWNoaWdlIENvbXB1dGVyYW53ZW5kdW5nZW4uCisKKyAgICBVbmljb2RlCisgICAgV2VubiBkaWUgV2VsdCBtaXRlaW5hbmRlciBzcHJpY2h0LCBzcHJpY2h0IHNpZSBVbmljb2RlLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8IS0tIE5vIFVURi04IGluIHRoaXMgdGVzdCBiZWNhdXNlIHRoZXJlIGFyZSBubyBub24tQVNDSUkgY2hhcmFjdGVycy4gLS0+CisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtZW4iIGVuY29kaW5ncz0iVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMS9lbiI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXJvcGUsIFNvZnR3YXJlICsgdGhlIEludGVybmV0OgorICAgIEdvaW5nIEdsb2JhbCB3aXRoIFVuaWNvZGUKKyAgICBJVUMxMAorICAgIFJlZ2lzdGVyIG5vdyBmb3IgdGhlIFRlbnRoIEludGVybmF0aW9uYWwgVW5pY29kZSBDb25mZXJlbmNlLCB0byBiZSBoZWxkIG9uIE1hcmNoIDEwLTEyLCAxOTk3LAorICAgIGluIE1haW56LCBHZXJtYW55LiBUaGUgQ29uZmVyZW5jZSB3aWxsIGJyaW5nIHRvZ2V0aGVyIGluZHVzdHJ5LXdpZGUgZXhwZXJ0cyBvbiB0aGUgZ2xvYmFsIEludGVybmV0IGFuZAorICAgIFVuaWNvZGUsIGludGVybmF0aW9uYWxpemF0aW9uIGFuZCBsb2NhbGl6YXRpb24sIGltcGxlbWVudGF0aW9uIG9mIFVuaWNvZGUgaW4gb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGFwcGxpY2F0aW9ucywKKyAgICBmb250cywgdGV4dCBsYXlvdXQsIGFuZCBtdWx0aWxpbmd1YWwgY29tcHV0aW5nLgorCisgICAgVW5pY29kZQorICAgIFdoZW4gdGhlIHdvcmxkIHdhbnRzIHRvIHRhbGssIGl0IHNwZWFrcyBVbmljb2RlLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1lcyIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS0xL2VzIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1cm9wYSwgU29mdHdhcmUgKyBlbCBJbnRlcm5ldDoKKyAgICBNdW5kaWFsaXphbmRvIGNvbiBVbmljb2RlCisgICAgSVVDMTAKKyAgICBJbnNjcsOtYmFzZSBhaG9yYSBwYXJhIGxhIETDqWNpbWEgQ29uZmVyZW5jaWEgSW50ZXJuYWNpb25hbCBVbmljb2RlLCBxdWUgdGVuZHLDoSBsdWdhciBkZWwgMTAgYWwgMTIgZGUgbWFyem8gZGUKKyAgICAxOTk3IGVuIE1hZ3VuY2lhLCBBbGVtYW5pYS4gTGEgQ29uZmVyZW5jaWEgcmV1bmlyw6EgZXhwZXJ0b3MgZGUgbG9zIHNlY3RvcmVzIGRlIGxhIG11bmRpYWxpemFjacOzbiBkZWwgSW50ZXJuZXQgeQorICAgIFVuaWNvZGUsIGxhIGludGVybmFjaW9uYWxpemFjacOzbiB5IGxvY2FsaXphY2nDs24sIGltcGxlbWVudGFjacOzbiBkZSBVbmljb2RlIGVuIHNpc3RlbWFzIG9wZXJhdGl2b3MgeSBhcGxpY2FjaW9uZXMsCisgICAgdGlwb3MsIGNvbXBvc2ljacOzbiBkZSB0ZXh0byBlIGluZm9ybcOhdGljYSBtdWx0aWxpbmfDvGUuCisKKyAgICBVbmljb2RlCisgICAgQ3VhbmRvIGVsIG11bmRvIHF1aWVyZSBjb252ZXJzYXIsIGhhYmxhIFVuaWNvZGUuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWZyIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTEvZnIiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgTCdFdXJvcGUsIGxlIGxvZ2ljaWVsIGV0IGwnSW50ZXJuZXQgOgorICAgIGxhIG1vbmRpYWxpc2F0aW9uIGF2ZWMgVW5pY29kZQorICAgIElVQzEwCisgICAgSW5zY3JpdmV6LXZvdXMgZMOocyBtYWludGVuYW50IMOgIGxhIGRpeGnDqG1lIENvbmbDqXJlbmNlIGludGVybmF0aW9uYWxlIHN1ciBVbmljb2RlLCBxdWkgc2UgdGllbmRyYSBkdSAxMCBhdSAxMgorICAgIG1hcnMgMTk5NyDDoCBNYXllbmNlLCBlbiBBbGxlbWFnbmUuIENldHRlIGNvbmbDqXJlbmNlIHJhc3NlbWJsZXJhIGRlcyBleHBlcnRzIGRlIHRvdXMgbGVzIGhvcml6b25zIGluZHVzdHJpZWxzCisgICAgc3VyIGxlcyBzdWpldHMgc3VpdmFudHMgOiBsJ0ludGVybmV0IG1vbmRpYWwgZXQgVW5pY29kZSwgbCdpbnRlcm5hdGlvbmFsaXNhdGlvbiBldCBsJ2FkYXB0YXRpb24gbG9jYWxlLAorICAgIGwnaW1wbMOpbWVudGF0aW9uIGQnVW5pY29kZSBkYW5zIGxlcyBzeXN0w6htZXMgZCdleHBsb2l0YXRpb24gZXQgbGVzIGFwcGxpY2F0aW9ucywgbGVzIHBvbGljZXMgZGUgY2FyYWN0w6hyZXMsCisgICAgbGEgZGlzcG9zaXRpb24gZGUgdGV4dGUsIGwnaW5mb3JtYXRpcXVlIHBsdXJpbGluZ3VlLgorCisgICAgVW5pY29kZQorICAgIFF1YW5kIGxlIG1vbmRlIHZldXQgY29tbXVuaXF1ZXIsIGlsIHBhcmxlIGVuIFVuaWNvZGUuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWhlIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTgvaGUiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAg15DXmdeo15XXpNeULCDXqteV15vXoNeUINeV15TXkNeZ16DXmNeo16DXmDoKKyAgICBVbmljb2RlINeZ15XXpteQINec16nXldenINeU16LXldec157XmQorICAgIElVQzEwCisgICAg15TXmdeo16nXnteVINeb16LXqiDXnNeb16DXoSBVbmljb2RlINeU15HXmdeg15zXkNeV157XmSDXlNei16nXmdeo15ksINep15nXmdei16jXmiDXkdeZ158g15TXqteQ16jXmdeb15nXnSAxMi0xMCDXkdee16jXpSAxOTk3LCDXkdee15nXmdeg16Ug16nXkdeS16jXnteg15nXlC4g15HXm9eg16EKKyAgICDXmdep16rXqtek15Ug157Xldee15fXmdedINee15vXnCDXoteg16TXmSDXlNeq16LXqdeZ15nXlCDXkdeg15XXqdeQINeU15DXmdeg15jXqNeg15gg15TXoteV15zXnteZINeV15QtVW5pY29kZSwg15HXlNeq15DXnteUINec16nXldenINeU15HXmdeg15zXkNeV157XmSDXldeU157Xp9eV157XmSwg15HXmdeZ16nXldedCisgICAgVW5pY29kZSDXkdee16LXqNeb15XXqiDXlNek16LXnNeUINeV15HXmdeZ16nXldee15nXnSwg15HXkteV16TXoNeZ150sINeR16TXqNeZ16HXqiDXmNen16HXmCDXldeR157Xl9ep15XXkSDXqNeRLdec16nXldeg15kuCisKKyAgICBVbmljb2RlCisgICAg15vXkNep16gg15TXoteV15zXnSDXqNeV16bXlCDXnNeT15HXqCwg15TXldeQINee15PXkdeoINeRLVVuaWNvZGUKKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtaGUtUSIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSB3aW5kb3dzLTEyNTUvaGUiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAg15DXmdeo15XXpNeULCDXqteV15vXoNeUINeV15TXkNeZ16DXmNeo16DXmDoKKyAgICBVbmljb2RlINeZ15XXpteQINec16nXldenINeU16LXldec157XmQorICAgIElVQzEwCisgICAg15TXmdeo16nXnteVINeb16LXqiDXnNeb16DXoSBVbmljb2RlINeU15HXmdeg15zXkNeV157XmSDXlNei16nXmdeo15ksINep15nXmdei16jXmiDXkdeZ158g15TXqteQ16jXmdeb15nXnSAxMi0xMCDXkdee16jXpSAxOTk3LCDXkdee15nXmdeg16Ug16nXkdeS16jXnteg15nXlC4g15HXm9eg16EKKyAgICDXmdep16rXqtek15Ug157Xldee15fXmdedINee15vXnCDXoteg16TXmSDXlNeq16LXqdeZ15nXlCDXkdeg15XXqdeQINeU15DXmdeg15jXqNeg15gg15TXoteV15zXnteZINeV15QtVW5pY29kZSwg15HXlNeq15DXnteUINec16nXldenINeU15HXmdeg15zXkNeV157XmSDXldeU157Xp9eV157XmSwg15HXmdeZ16nXldedCisgICAgVW5pY29kZSDXkdee16LXqNeb15XXqiDXlNek16LXnNeUINeV15HXmdeZ16nXldee15nXnSwg15HXkteV16TXoNeZ150sINeR16TXqNeZ16HXqiDXmNen16HXmCDXldeR157Xl9ep15XXkSDXqNeRLdec16nXldeg15kuCisKKyAgICBVbmljb2RlCisgICAg15vXkNep16gg15TXoteV15zXnSDXqNeV16bXlCDXnNeT15HXqCwg15TXldeQINee15PXkdeoIC3igJxVbmljb2RlLuKAnQorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1odSIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS0yL2h1Ij4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1csOzcGEsIGEgU3pvZnR2ZXIgcyBheiBJbnRlcm5ldCAtCisgICAgR2xvYsOhbGlzc8OhIFbDoWx0b3ppayBhIFVuaWNvZGUgw4FsdGFsCisgICAgSVVDMTAKKyAgICBJcmF0a296em9uIG3DoXIgbW9zdCBhIFRpemVkaWsgTmVtemV0a8O2emkgVW5pY29kZSBLb25mZXJlbmNpw6FyYSwgYW1lbHkgTcOhcmNpdXMgMTAtMTIgMTk5NworICAgIGxlc3ogbWVndGFydHZhLCBNZWluei1iZSwgTsOpbWV0b3JzesOhZ2JhLiBFYmJlbiBhIEtvbmZlcmVuY2nDoW4gYXogaXBhcsOhZyBzemVydGUgc29rIHN6YWvDqXJ0xZEKKyAgICBmb2cgcsOpc3p0IHZlbm5pOiBhIGdsb2LDoWxpcyBJbnRlcm5ldCBzIFVuaWNvZGUgbmVtemV0a8O2emlzw610w6lzZSBzIGxva2FsaXrDoWzDoXNhLCBhCisgICAgVW5pY29kZSBiZXRlbGplc8OtdMOpc2UgYSBtxbFrw7ZkxZEgcmVuZHN6ZXJla2JlbiBzIGFsa2FsbWF6w6Fzb2tiYW4sIGZvbnRva2JhLCBzesO2dmVnCisgICAgdMOpcmJlb3N6dMOhc2JhIHMgdMO2YmJueWVsdsWxIGNvbXB1dGVyZWtiZW4uCisKKyAgICBVbmljb2RlCisgICAgSGEgYSB2aWzDoWcgYmVzesOpbG5pIGFrYXIsIGF6dCBVbmljb2RlLXVsIG1vbmRqYS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtaHUtUSIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSB3aW5kb3dzLTEyNTAvaHUiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyw7NwYSwgYSBTem9mdHZlciBzIGF6IEludGVybmV0IC0KKyAgICBHbG9iw6FsaXNzw6EgVsOhbHRvemlrIGEgVW5pY29kZSDDgWx0YWwKKyAgICBJVUMxMAorICAgIElyYXRrb3p6b24gbcOhciBtb3N0IGEgVGl6ZWRpayBOZW16ZXRrw7Z6aSBVbmljb2RlIEtvbmZlcmVuY2nDoXJhLCBhbWVseSBNw6FyY2l1cyAxMC0xMiAxOTk3CisgICAgbGVzeiBtZWd0YXJ0dmEsIE1laW56LWJlLCBOw6ltZXRvcnN6w6FnYmEuIEViYmVuIGEgS29uZmVyZW5jacOhbiBheiBpcGFyw6FnIHN6ZXJ0ZSBzb2sgc3pha8OpcnTFkQorICAgIGZvZyByw6lzenQgdmVubmk6IGEgZ2xvYsOhbGlzIEludGVybmV0IHMgVW5pY29kZSBuZW16ZXRrw7Z6aXPDrXTDqXNlIHMgbG9rYWxpesOhbMOhc2EsIGEKKyAgICBVbmljb2RlIGJldGVsamVzw610w6lzZSBhIG3FsWvDtmTFkSByZW5kc3plcmVrYmVuIHMgYWxrYWxtYXrDoXNva2JhbiwgZm9udG9rYmEsIHN6w7Z2ZWcKKyAgICB0w6lyYmVvc3p0w6FzYmEgcyB0w7ZiYm55ZWx2xbEgY29tcHV0ZXJla2Jlbi4KKworICAgIFVuaWNvZGUKKyAgICBIYSBhIHZpbMOhZyBiZXN6w6lsbmkgYWthciwgYXp0IOKAnFVuaWNvZGXigJ0tdWwgbW9uZGphLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1pdCIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS0xL2l0Ij4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1cm9wYSwgc29mdHdhcmUgZSBJbnRlcm5ldDoKKyAgICBHbG9iYWxpenphemlvbmUgY29uIFVuaWNvZGUKKyAgICBJVUMxMAorICAgIElzY3JpdmV0ZXZpIHN1Yml0byBhbGxhIFggQ29uZmVyZW56YSBJbnRlcm5hemlvbmFsZSBzdSBVbmljb2RlLCBjaGUgc2kgdGVycsOgIGRhbCAxMCBhbCAxMiBtYXJ6byAxOTk3IGEKKyAgICBNYWlueiBpbiBHZXJtYW5pYS4gQWxsYSBDb25mZXJlbnphIHBhcnRlY2lwZXJhbm5vIGVzcGVydGkgZGkgdHV0dGkgaSBzZXR0b3JpIHBlciBkaXNjdXRlcmUgZGkgSW50ZXJuZXQgZ2xvYmFsZSBlCisgICAgVW5pY29kZSwgaW50ZXJuYXppb25hbGl6emF6aW9uZSBlIGxvY2FsaXp6YXppb25lLCBpbXBsZW1lbnRhemlvbmUgZGkgVW5pY29kZSBpbiBzaXN0ZW1pIG9wZXJhdGl2aSBlIGFwcGxpY2F6aW9uaSwKKyAgICBjYXJhdHRlcmksIGNvbXBvc2l6aW9uZSBkZWkgdGVzdGkgZWQgZWxhYm9yYXppb25lIG11bHRpbGluZ3VlLgorCisgICAgVW5pY29kZQorICAgIFF1YW5kbyBpbCBtb25kbyB2dW9sZSBjb211bmljYXJlLCBwYXJsYSBVbmljb2RlLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8IS0tIE5vIEVVQy1KUCBpbiB0aGlzIHRlc3QgYmVjYXVzZSBpdCBkZXRlY3RzIGFzIEdCMTgwMzAgLS0+CisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtanAiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgU2hpZnRfSklTIElTTy0yMDIyLUpQIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIOODqOODvOODreODg+ODkeOAgeOCveODleODiOOCpuOCp+OCouOAgeOBneOBl+OBpuOCpOODs+OCv+ODvOODjeODg+ODiDoKKyAgICBVbmljb2RlIOOBp+OCsOODreODvOODkOODq+WMluOCkueLmeOBo+OBpgorICAgIElVQzEwCisgICAg56ysIDEwIOWbnuOBriBVbmljb2RlIOS8muitsOOBryAxOTk3IOW5tCAzIOaciCAxMC0xMuaXpeOAgeODieOCpOODhOOBruODnuOCpOODs+ODhOOBp+mWi+OBi+OCjOOBvuOBmeOAguWPguWKoOW4jOacm+OBruaWueOBr+S7iuOBmeOBkOeZu+mMsuOBl+OBpuOBj+OBoOOBleOBhOOAggorICAgIOOBk+OBruS8muitsOOBp+OBr+OAgeOCsOODreODvOODkOODq+OBquOCpOODs+OCv+ODjeODg+ODiOOAgVVuaWNvZGXjgIHjgr3jg5Xjg4jjgqbjgqfjgqLjga7lm73pmpvljJbjgYrjgojjgbPjg63jg7zjgqvjg6rjgrzjg7zjgrfjg6fjg7PjgIFPUyDjgYrjgojjgbPjgqLjg5fjg6rjgrHjg7zjgrfjg6fjg7Pjgafjga4KKyAgICBVbmljb2RlIOOBruOCpOODs+ODl+ODquODoeODs+ODhuODvOOCt+ODp+ODs+OAgeODleOCqeODs+ODiOOAgeODhuOCreOCueODiOihqOekuuOAgeODnuODq+ODgeiogOiqnuOCs+ODs+ODlOODpeODvOODhuOCo+ODs+OCsOOBq+OBiuOBkeOCi+alreeVjOOBruWwgumWgOWutuOBjOmbhuOBvuOCiuOBvuOBmeOAggorCisgICAgVW5pY29kZQorICAgIOS4lueVjOeahOOBq+ipseOBmeOBquOCieOAgVVuaWNvZGUg44Gn44GZ44CCCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLWtvIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIEVVQy1LUiBJU08tMjAyMi1LUiI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICDsnKDrn70sIOyGjO2UhO2KuOybqOyWtCDqt7jrpqzqs6Ag7J247YSw64S3OgorICAgIOycoOuLiOy9lOuTnOyZgCDtlajqu5gg7IS46rOE66GcCisgICAgSVVDMTAKKyAgICDsoJwxMO2ajCDsnKDri4jsvZTrk5wg6rWt7KCcIO2ajOydmOqwgCAxOTk364WEIDPsm5QgMTDsnbzrtoDthLAgMTLsnbzquYzsp4Ag64+F7J287J2YIOuniOyduOymiOyXkOyEnCDsl7Trpr3ri4jri6QuIOyngOq4iCDrk7HroZ3tlZjsi63si5zsmKQuCisgICAg7J20IO2ajOydmOyXkOyEnOuKlCDsl4Xqs4Qg7KCE67CY7J2YIOyghOusuOqwgOuTpOydtCDtlajqu5gg66qo7JesIOuLpOydjOqzvCDqsJnsnYAg67aE7JW866W8IOuLpOujueuLiOuLpC4gLSDsnbjthLDrhLfqs7wg7Jyg64uI7L2U65OcLCDqta3soJztmZTsmYAg7KeA7Jet7ZmULAorICAgIOyatOyYgSDssrTsoJzsmYAg7J2R7JqpIO2UhOuhnOq3uOueqOyXkOyEnCDsnKDri4jsvZTrk5zsnZgg6rWs7ZiELCDquIDqvLQsIOusuOyekCDrsLDsl7QsIOuLpOq1reyWtCDsu7Ttk6jtjIUuCisKKyAgICBVbmljb2RlCisgICAg7IS46rOE66W8IO2Wpe2VnCDrjIDtmZQsIOycoOuLiOy9lOuTnOuhnCDtlZjsi63si5zsmKQKKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPCEtLSBObyBVVEYtOCBpbiB0aGlzIHRlc3QgYmVjYXVzZSB0aGVyZSBhcmUgbm8gbm9uLUFTQ0lJIGNoYXJhY3RlcnMuIC0tPgorICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLW5sIiBlbmNvZGluZ3M9IlVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTEvbmwiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyb3BhLCBTb2Z0d2FyZSArIGhldCBJbnRlcm5ldDoKKyAgICB3ZXJlbGR3aWpkIG1ldCBVbmljb2RlCisgICAgSVVDMTAKKyAgICBNZWxkIHUgbnUgYWFuIHZvb3IgZGUgVGllbmRlIEludGVybmF0aW9uYWxlIFVuaWNvZGUtY29uZmVyZW50aWUsIGRpZSB2YW4gMTAgdG90IDEyIG1hYXJ0IDE5OTcgaW4KKyAgICBNYWlueiAoRHVpdHNsYW5kKSB3b3JkdCBnZWhvdWRlbi4gRGUgQ29uZmVyZW50aWUgaXMgZWVuIG9udG1vZXRpbmdzcGxhYXRzIHZvb3IgZXhwZXJ0cyB1aXQgZGUgaW5kdXN0cmllIG9wIGhldAorICAgIGdlYmllZCB2YW4gaGV0IHdlcmVsZHdpamRlIEludGVybmV0IGVuIFVuaWNvZGUsIGludGVybmF0aW9uYWxpc2F0aWUgZW4gbG9jYWxpc2F0aWUsIGltcGxlbWVudGF0aWUgdmFuIFVuaWNvZGUgaW4KKyAgICBiZXN0dXJpbmdzc3lzdGVtZW4gZW4gYXBwbGljYXRpZXMsIGxldHRlcnR5cGVzLCB0ZWtzdG9wbWFhayBlbiBtZWVydGFsaWcgY29tcHV0ZXJnZWJydWlrLgorCisgICAgVW5pY29kZQorICAgIEFscyBkZSB3ZXJlbGQgd2lsIHByYXRlbiwgc3ByZWVrdCBoaWogVW5pY29kZS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPCEtLSBObyBsYW5ndWFnZSBmb3IgSVNPLTg4NTktMSBpbiB0aGlzIHRlc3QgYmVjYXVzZSBuby1CTyBpcyByZWNvZ29uaXplZCBhcyBEYW5pc2guLi4gLS0+CisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtbm8tQk8iIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMSI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXJvcGEsIFByb2dyYW12YXJlIG9nIEludGVybmV0OgorICAgIEdsb2JhbCBmb2t1cyBtZWQgVW5pY29kZQorICAgIElVQzEwCisgICAgUmVnaXN0cmVyIGRlZyBzb20gZGVsdGFnZXIgcMOlIGRlbiB0aWVuZGUgaW5lcm5hc2pvbmFsZSBVbmljb2RlIGtvbmZlcmFuc2VuIGkgTWFpbnosIFR5c2tsYW5kLCBmcmEgMTAuIHRpbCAxMi4gbWFycywKKyAgICAxOTk3LiBLb25mZXJhbnNlbiB2aWwgc2FtbGUgZWtzcGVydGVyIHDDpSBJbnRlcm5ldCwgVW5pY29kZSwgaW50ZXJuYXNqb25hbGlzZXJpbmcgb2cgaW50ZWdyYXNqb24gYXYgVW5pY29kZSBpCisgICAgb3BlcmF0aXZzeXN0ZW1lciBvZyBwcm9ncmFtbWVyLCBmb250ZXIsIHRla3N0IGxheW91dCBvZyBmbGVyc3Byw6VrbGlnIGRhdGFiZWhhbmRsaW5nLgorCisgICAgVW5pY29kZQorICAgIE7DpXIgdmVyZGVuIHZpbCBzbmFra2UsIHNuYWtrZXIgZGVuIFVuaWNvZGUKKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtbm8tTlkiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMS9ubyI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXJvcGEsIHByb2dyYW12YXJlIG9nIEludGVybmV0dDoKKyAgICBGZW1uIHZlcmRhIG1lZCBVbmljb2RlCisgICAgSVVDMTAKKyAgICBNZWxkIGRlZyBww6UgZGVuIDEwLiBpbnRlcm5hc2pvbmFsZSBVbmljb2RlLWtvbmZlcmFuc2VuLiBIYW4gZ8OlciBmw7hyZSBzZWcgaSBNYWlueiBpIFR5c2tsYW5kIGkgZGFnYW5lIDEwLi0tMTIuIG1hcnMKKyAgICAxOTk3LCBvZyBzYW1sYXIgZmFna3VubmlnZSBpbm5hbiBrb25mZXJhbnNldGVtYWV0IGZyw6UgaGVpbGUgZGF0YWJyYW5zamVuLiBUZW1hOiBEZXQgZ2xvYmFsZSBJbnRlcm5ldHRldCBvZworICAgIFVuaWNvZGUsIGludGVybmFzam9uYWxpc2VyaW5nIG9nIG5hc2pvbmFsIHRpbHBhc3NpbmcsIGltcGxlbWVudGVyaW5nIGF2IFVuaWNvZGUgaSBvcGVyYXRpdnN5c3RlbSBvZyBicnVrYXJwcm9ncmFtLAorICAgIHNrcmlmdHNuaXR0IChmb250YXIpLCB0ZWtzdHV0bGVnZywgb2cgZmxlaXJzcHLDpWtsZWcgZGF0YWJlaGFuZGxpbmcuCisKKyAgICBVbmljb2RlCisgICAgTsOlciB2ZXJkYSDDuG5za2plciDDpSBzbmFra2UsIHRhbGFyIGhvIFVuaWNvZGUKKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAtcHQtQlIiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMS9wdCI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBFdXJvcGEsIFNvZnR3YXJlIGUgYSBJbnRlcm5ldDoKKyAgICBHbG9iYWxpemHDp8OjbyBjb20gbyBVbmljb2RlCisgICAgSVVDMTAKKyAgICBJbnNjcmV2YS1zZSBhZ29yYSBwYXJhIGEgRMOpY2ltYSBDb25mZXLDqm5jaWEgSW50ZXJuYWNpb25hbCBTb2JyZSBPIFVuaWNvZGUsIHJlYWxpemFkYSBlbnRyZSBvcyBkaWFzIDEwIGUgMTIgZGUKKyAgICBtYXLDp28gZGUgMTk5NyBlbSBNYWlueiBuYSBBbGVtYW5oYS4gQSBDb25mZXLDqm5jaWEgcmV1bmlyw6EgcGVyaXRvcyBkZSB0b2RhcyBhcyDDoXJlYXMgZGEgaW5kw7pzdHJpYSBlc3BlY2lhbGl6YWRvcworICAgIGVtIGFzc3VudG9zIHJlbGFjaW9uYWRvcyBjb20gYSBJbnRlcm5ldCBnbG9iYWwgZSBvIFVuaWNvZGUsIGludGVybmFjaW9uYWxpemHDp8OjbyBlIGxvY2FsaXphw6fDo28gZGUgc29mdHdhcmUsCisgICAgaW1wbGVtZW50YcOnw6NvIGRvIFVuaWNvZGUgZW0gc2lzdGVtYXMgb3BlcmFjaW9uYWlzIGUgYXBsaWNhdGl2b3MsIGZvbnRlcywgbGF5b3V0IGRlIHRleHRvIGUgaW5mb3Jtw6F0aWNhIG11bHRpbMOtbmfDvGUuCisKKyAgICBVbmljb2RlCisgICAgUXVhbmRvIG8gbXVuZG8gcXVlciBmYWxhciwgZmFsYSBVbmljb2RlLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1wdC1QVCIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS0xL3B0Ij4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV1cm9wYSwgU29mdHdhcmUgZSBhIEludGVybmV0OgorICAgIEdsb2JhbGl6YcOnw6NvIGNvbSBvIFVuaWNvZGUKKyAgICBJVUMxMAorICAgIEluc2NyZXZhLXNlIGFnb3JhIHBhcmEgYSBEw6ljaW1hIENvbmZlcsOqbmNpYSBJbnRlcm5hY2lvbmFsIFNvYnJlIE8gVW5pY29kZSwgYSBzZXIgcmVhbGl6YWRhIGVudHJlIG9zIGRpYXMgMTAgZSAxMgorICAgIGRlIE1hcsOnbyBkZSAxOTk3IGVtIE1haW56IG5hIEFsZW1hbmhhLiBBIENvbmZlcsOqbmNpYSByZXVuaXLDoSBwZXJpdG9zIGRlIHRvZGFzIGFzIMOhcmVhcyBkYSBpbmTDunN0cmlhCisgICAgZXNwZWNpYWxpemFkb3MgZW0gYXNzdW50b3MgcmVsYWNpb25hZG9zIGNvbSBhIEludGVybmV0IGdsb2JhbCBlIG8gVW5pY29kZSwgaW50ZXJuYWNpb25hbGl6YcOnw6NvIGUgbG9jYWxpemHDp8OjbyBkZQorICAgIHNvZnR3YXJlLCBpbXBsZW1lbnRhw6fDo28gZG8gVW5pY29kZSBlbSBzaXN0ZW1hcyBvcGVyYXRpdm9zIGUgYXBsaWNhw6fDtWVzLCB0aXBvcyBkZSBsZXRyYSwgZXNxdWVtYXRpemHDp8OjbyBkZQorICAgIHRleHRvIGUgaW5mb3Jtw6F0aWNhIG11bHRpbMOtbmd1ZS4KKworICAgIFVuaWNvZGUKKyAgICBRdWFuZG8gbyBtdW5kbyBxdWVyIGZhbGFyLCBmYWxhIFVuaWNvZGUuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLXJvIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTIvcm8iPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyb3BhLCBTb2Z0d2FyZSDFn2kgSW50ZXJuZXQ6CisgICAgR2xvYmFsaXphcmVhIGN1IFVuaWNvZGUKKyAgICBJVUMxMAorICAgIEluc2NyaWXFo2ktdsSDIGFjdW0gbGEgYSBaZWNlYSBDb25mZXJpbsWjxIMgSW50ZXJuYcWjaW9uYWzEgyAiVW5pY29kZSIgY2UgdmEgYXZlYSBsb2MgaW4KKyAgICBwZXJpb2FkYSBkZSAxMC0xMiBtYXJ0aWUsIDE5OTcgw65uIE1haW56LCBHZXJtYW5pYS4gQ29uZmVyaW7Fo2EgdmEgw65udHJ1bmkgZXhwZXLFo2kgZGluCisgICAgdmFyaWF0ZSBkb21lbmlpOiBJbnRlcm5ldCBnbG9iYWwgxZ9pIFVuaWNvZGUsIGludGVybmHFo2lvbmFsaXphcmUgxZ9pIGxvY2FsaXphcmUsCisgICAgaW1wbGVtZW50YXJlZGUgVW5pY29kZSDDrm4gc2lzdGVtZSBkZSBvcGVyYXJlIMWfaSBhcGxpY2HFo2lpLCBmb250dXJpLCBhcmFuamFyZSBkZSB0ZXh0IMOubgorICAgIHBhZ2luxIMsIGNvbXB1dGVyaXphcmUgbXVsdGlsaW5ndWFsxIMuCisKKyAgICBVbmljb2RlCisgICAgQ8OibmQgbHVtZWEgdnJlYSBzxIMgY29tdW5pY2UsIHZvcmJlxZ90ZSBVbmljb2RlLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC1ydSIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS01L3J1IHdpbmRvd3MtMTI1MS9ydSBLT0k4LVIvcnUiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAg0JXQstGA0L7Qv9CwLCDQn9GA0L7Qs9GA0LDQvNC80L3QvtC1INC+0LHQtdGB0L/QtdGH0LXQvdC40LUgKyDQmNC90YLQtdGA0L3QtdGCOgorICAgIFVuaWNvZGUg0LIg0LPQu9C+0LHQsNC70YzQvdGL0YUg0LzQsNGB0YjRgtCw0LHQsNGFCisgICAgSVVDMTAKKyAgICDQl9Cw0YDQtdCz0LjRgdGC0YDQuNGA0YPQudGC0LXRgdGMINGB0LXQudGH0LDRgSDQvdCwINCU0LXRgdGP0YLRg9GOINCc0LXQttC00YPQvdCw0YDQvtC00L3Rg9GOINCa0L7QvdGE0LXRgNC10L3RhtC40Y4g0L/QviBVbmljb2RlLCDQutC+0YLQvtGA0LDRjyDRgdC+0YHRgtC+0LjRgtGB0Y8KKyAgICAxMC0xMiDQvNCw0YDRgtCwIDE5OTcg0LPQvtC00LAg0LIg0JzQsNC50L3RhtC1INCyINCT0LXRgNC80LDQvdC40LguINCa0L7QvdGE0LXRgNC10L3RhtC40Y8g0YHQvtCx0LXRgNC10YIg0YjQuNGA0L7QutC40Lkg0LrRgNGD0LMg0Y3QutGB0L/QtdGA0YLQvtCyINC/0L4g0LgKKyAgICDQstC+0L/RgNC+0YHQsNC8INCz0LvQvtCx0LDQu9GM0L3QvtCz0L4g0JjQvdGC0LXRgNC90LXRgtCwINC4IFVuaWNvZGUsINC70L7QutCw0LvQuNC30LDRhtC40Lgg0Lgg0LjQvdGC0LXRgNC90LDRhtC40L7QvdCw0LvQuNC30LDRhtC40LgsINCy0L7Qv9C70L7RidC10L3QuNGOCisgICAg0L/RgNC40LzQtdC90LXQvdC40Y4gVW5pY29kZSDQsiDRgNCw0LfQu9C40YfQvdGL0YUg0L7Qv9C10YDQsNGG0LjQvtC90L3Ri9GFINGB0LjRgdGC0LXQvNCw0YUg0Lgg0L/RgNC+0LPRgNCw0LzQvNC90YvRhSDQv9GA0LjQu9C+0LbQtdC90LjRj9GFLAorICAgINGI0YDQuNGE0YLQsNGFLCDQstC10YDRgdGC0LrQtSDQuCDQvNC90L7Qs9C+0Y/Qt9GL0YfQvdGL0YUg0LrQvtC80L/RjNGO0YLQtdGA0L3Ri9GFINGB0LjRgdGC0LXQvNCw0YUuCisKKyAgICBVbmljb2RlCisgICAg0JrQvtCz0LTQsCDQvNC40YAg0LbQtdC70LDQtdGCINC+0LHRidCw0YLRjNGB0Y8sINC+0L0g0L7QsdGJ0LDQtdGC0YHRjyDQvdCwIFVuaWNvZGUuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IklVQzEwLXN2IiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTEvc3YiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgRXVyb3BhLCBwcm9ncmFtdmFyYSBvY2ggSW50ZXJuZXQ6CisgICAgZ2xvYmFsaXNlcmEgbWVkIFVuaWNvZGUKKyAgICBJVUMxMAorICAgIEFubcOkbCBEaWcgdGlsbCBkZW4gdGlvbmRlIGludGVybmF0aW9uZWxsYSBVbmljb2RlLWtvbmZlcmVuc2VuLCBzb20gaMOlbGxzIGRlbiAxMC0xMiBtYXJzIDE5OTcgaSBNYWlueiwKKyAgICBUeXNrbGFuZC4gVmlkIGtvbmZlcmVuc2VuIGtvbW1lciBleHBlcnRlciBpbm9tIGbDtmxqYW5kZSBvbXLDpWRlbiBhdHQgZGVsdGE6IGRldCBnbG9iYWxhIEludGVybmV0IG9jaCBVbmljb2RlLAorICAgIGludGVybmF0aW9uYWxpc2VyaW5nIG9jaCBsb2thbGlzZXJpbmcsIGltcGxlbWVudGVyaW5nIGF2IFVuaWNvZGUgaSBvcGVyYXRpdnN5c3RlbSwgdGlsbMOkbXBuaW5nYXIsIHR5cHNuaXR0LAorICAgIHRleHRsYXlvdXQgb2NoIG3DpW5nc3Byw6VrbGlnIGRhdG9yYW52w6RuZG5pbmcuCisKKyAgICBVbmljb2RlCisgICAgTsOkciB2w6RybGRlbiB2aWxsIHRhbGEsIHPDpSB0YWxhciBkZW4gVW5pY29kZS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iSVVDMTAteWkiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAg15DXsteo15DWuNek1rzXojog16TWvNeo15DWuNeS16jXkNa3157XsNeQ1rfXqNeSINeQ15XXnyDXk9eZINew16LXnNeY16DXotelOgorICAgINeQ15XXoNeZ16fXkNa415Mg15DXmdeR16LXqCDXk9ei16gg15LXkNa416jXoteoINew16LXnNeYCisgICAgSVVDMTAKKyAgICDXpNa/15DWt9eo16nXqNey1rfXkdeYINeW15nXmiDXqdex158g15DXsdejINeT16LXqCDXptei16DXmNei16gg15DXmdeg15jXoteo16DXkNa316bXmdeQ1rjXoNeQ1rfXnNei16gg15DXldeg15nXp9eQ1rjXky3Xp9eQ1rjXoNek1r/Xoteo16LXoNelLCDXsNeQ1rjXoSDXsNei15gg16TWv9eQ1rjXqNen15XXntei158g15PXotedCisgICAgMTDXmNefINeR15nXltefIDEy15jXnyDXnteQ1rfXqNelLCAxOTk3LCDXkNeZ158g157Xsta316DXpSwg15PXsta315jXqdec15DWt9eg15MuINeT15kg16fXkNa416DXpNa/16LXqNei16DXpSDXsNei15gg16bXldeW15DWt9ee16LXoNeR16jXoteg15LXnyDXnteR1r/Xmdeg15nXnSDXpNa/15XXnyDXsNei15zXmNeg16LXpSwKKyAgICAg15DXldeg15nXp9eQ1rjXkywg15DXmSDXkNa315zXsNei15zXmNec16LXm9efINeQ15kg16HXkda/15nXkda/15TXk9eZ16fXnyDXpNa816jXkNa415LXqNeQ1rfXntew15DWt9eo15IsINeQ1rfXqNey1rfXoNep15jXotec158g15DXldeg15nXp9eQ1rjXkyDXkNeZ158g15DWuNek1rzXoteo15nXqC3XodeZ16HXmNei157XotefINeQ15XXnworICAgINeQ1rjXoNew16LXoNeT15XXoNeS16LXnywg16nXqNeZ16TWv9eY158sINeY16LXp9eh15gt15DXsdeh16nXmNei15wsINeQ15XXnyDXntei16jXqdek1rzXqNeQ1rfXm9eZ16fXoiDXp9eQ1rjXntek1rzXmdeV15jXoteo17LWty4KKworICAgIFVuaWNvZGUKKyAgICDXkNa315Yg15PXmSDXsNei15zXmCDXsNeZ15wg16jXoteT158sINeo16LXk9eYINeW15kg15DXldeg15nXp9eQ1rjXkworCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8IS0tIHRlc3QtY2FzZSBpZD0iSVVDMTAtemgtSGFudCIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tMjAyMi1DTiBHQjE4MDMwIiAtLT4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIDwhLS0KKyAgICDmrZDmtLLvvIzou5/pq5Tlj4rntrLpmpvntrLot6/vvJoKKyAgICDorpPntbHkuIDnorzvvIhVbmljb2Rl77yJ6aCY5L2g6YCy5YWl5YWo5LiW55WMCisgICAgSVVDMTAKKyAgICDkvaDnj77lnKjlsLHmh4nloLHlkI3lsIflnKjvvJHvvJnvvJnvvJflubTvvJPmnIjvvJHvvJDoh7PvvJHvvJLml6XmlrzlvrflnIvnvo7lp7/ln47vvIhNYWlueu+8ieWPrOmWi+eahOesrOWNgeWxhuWci+mam+e1seS4gOeivOeglOiojuacg+OAggorICAgIOacrOasoeeglOiojuacg+Wwh+mCgOiri+WkmuS9jealreeVjOWwiOWutueglOiojumXnOaWvOWFqOeQg+e2sumam+e2sui3r+WPiue1seS4gOeivOeZvOWxleOAgeWci+mam+WMluWPiuacrOWcn+WMluOAgQorICAgIOaUr+aPtOe1seS4gOeivOeahOS9nOalreezu+e1seWPiuaHieeUqOeoi+W8j+OAgeWtl+Wei+OAgeaWh+Wtl+aOkueJiOOAgembu+iFpuWkmuWci+iqnuaWh+WMluetieWkmumgheiqsumhjOOAggorCisgICAgVW5pY29kZQorICAgIOeVtuS4lueVjOmcgOimgea6nemAmuaZgu+8jOiri+eUqOe1seS4gOeivO+8iFVuaWNvZGXvvIkKKyAgICAtLT4KKworICAgIDwhLS0gL3Rlc3QtY2FzZSAtLT4KKworICAgIDwhLS0gTm8gSVNPLTIwMjItQ04gaW4gdGhpcyB0ZXN0IGJlY2F1c2UgSmF2YSBkb2Vzbid0IHN1cHBvcnQgaXQgaW4gYm90aCBkaXJlY3Rpb25zIDotKCAtLT4KKyAgICA8dGVzdC1jYXNlIGlkPSJJVUMxMC16aC1IYW5zIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy0yMDIyLUNOIEdCMTgwMzAiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAg5qyn5rSy77yM6L2v5Lu277yL5LqS6IGU572RCisgICAg55So57uf5LiA56CBIChVbmljb2RlKSDotbDpgY3kuJbnlYwKKyAgICBJVUMxMAorICAgIOWwhuS6jjE5OTflubQgMyDmnIgxMOaXpe+8jTEy5pel5Zyo5b635Zu9IE1haW56IOW4guS4vuihjOeahOesrOWNgeWxiue7n+S4gOeggeWbvemZheeglOiuqOS8mueOsOWcqOW8gOWni+azqOWGjOOAggorICAgIOacrOasoeS8muiuruWwhuaxh+mbhuWQhOaWuemdoueahOS4k+WutuOAgua2ieWPiueahOmihuWfn+WMheaLrO+8muWbvemZheS6kuiBlOe9keWSjOe7n+S4gOegge+8jOWbvemZheWMluWSjOacrOWcsOWMlu+8jAorICAgIOe7n+S4gOeggeWcqOaTjeS9nOezu+e7n+WSjOW6lOeUqOi9r+S7tuS4reeahOWunueOsO+8jOWtl+Wei++8jOaWh+acrOagvOW8j+S7peWPiuWkmuaWh+enjeiuoeeul+etieOAggorCisgICAgVW5pY29kZQorICAgIOW9k+S4lueVjOmcgOimgeayn+mAmuaXtu+8jOivt+eUqFVuaWNvZGXvvIEKKworQ29uZmVyZW5jZSBQcm9ncmFtCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJXSVUtY3oiIGVuY29kaW5ncz0iVVRGLTggVVRGLTMyQkUgVVRGLTMyTEUgSVNPLTg4NTktMi9jcyI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICBDbyBqZSBVbmljb2RlPworCisgICAgVW5pY29kZSBwxZlpxZlhenVqZSBrYcW+ZMOpbXUgem5ha3UgamVkaW5lxI1uw6kgxI3DrXNsbywKKyAgICBuZXrDoXZpc2xlIG5hIHBsYXRmb3JtxJssCisgICAgbmV6w6F2aXNsZSBuYSBwcm9ncmFtdSwKKyAgICBuZXrDoXZpc2xlIG5hIGphenljZS4KKworICAgIFBvxI3DrXRhxI1lLCB6ZSBzdsOpIHBvZHN0YXR5LCBwcmFjdWrDrSBwb3V6ZSBzIMSNw61zbHkuIFDDrXNtZW5hIGEgZGFsxaHDrSB6bmFreSB1a2zDoWRhasOtIHRhaywgxb5lIGthxb5kw6ltdSB6IG5pY2gKKyAgICBwxZlpxZlhZMOtIMSNw61zbG8uIFDFmWVkIHZ6bmlrZW0gVW5pY29kZSBleGlzdG92YWx5IHN0b3ZreSByb3pkw61sbsO9Y2gga8OzZG92YWPDrWNoIHN5c3TDqW3FryBwcm8gcMWZacWZYXpvdsOhbsOtIHTEm2NodG8KKyAgICDEjcOtc2VsLiDFvcOhZG7DqSB6IHTEm2NodG8ga8OzZG92w6Fuw60gbmVtb2hsbyBvYnNhaG92YXQgZG9zdGF0ZWsgem5ha8WvOiBuYXDFmcOta2xhZCBFdnJvcHNrw6EgdW5pZSBzYW1hIHBvdMWZZWJ1amUKKyAgICBuxJtrb2xpayByxa96bsO9Y2gga8OzZG92w6Fuw60sIGFieSBwb2tyeWxhIHbFoWVjaG55IHN2w6kgamF6eWt5LiBEb2tvbmNlIGkgcHJvIGplZGVuIGplZGluw70gamF6eWssIGpha28gamUgYW5nbGnEjXRpbmEsCisgICAgbmV2eWhvdm92YWxvIMW+w6FkbsOpIGvDs2RvdsOhbsOtIHBybyB2xaFlY2hueSBww61zbWVuYSwgaW50ZXJwdW5rY2kgYSBixJvFvm7EmyBwb3XFvsOtdmFuw6kgdGVjaG5pY2vDqSBzeW1ib2x5LgorCisgICAgVHl0byBrw7Nkb3ZhY8OtIHN5c3TDqW15IHRha8OpIGJ5bHkgdiBrb25mbGlrdHUgamVkZW4gcyBkcnVow71tLiBUbyB6bmFtZW7DoSwgxb5lIGR2xJsga8OzZG92w6Fuw60gbW9ob3UgcG91xb7DrXZhdAorICAgIHN0ZWpuw6kgxI3DrXNsbyBwcm8gZHZhIHLFr3puw6kgem5ha3ksIG5lYm8gcG91xb7DrXZhdCByxa96bsOhIMSNw61zbGEgcHJvIHN0ZWpuw70gem5hay4gSmFrw71rb2xpIHBvxI3DrXRhxI0gKHp2bMOhxaF0xJsgc2VydmVyeSkKKyAgICBtdXPDrSBwb2Rwb3JvdmF0IG1ub2hvIHLFr3puw71jaCBrw7Nkb3bDoW7DrTsgcMWZZXN0bywga2R5a29saSBqc291IGRhdGEgcMWZZWTDoXbDoW5hIG1lemkgcsWvem7DvW1pIGvDs2RvdsOhbsOtbWkgbmVibworICAgIHBsYXRmb3JtYW1pLCBocm96w60sIMW+ZSB0YXRvIGRhdGEgYnVkb3UgcG/FoWtvemVuYS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iV0lVLWVsIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTcvZWwiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgzqTOuSDOtc6vzr3Osc65IM+Ezr8gVW5pY29kZTsKKworICAgIM6XIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSBVbmljb2RlIM+Az4HOv8+EzrXOr869zrXOuSDOrc69zrHOvSDOus6xzrkgzrzOv869zrHOtM65zrrPjCDOsc+BzrnOuM68z4wgzrPOuc6xIM66zqzOuM61IM+HzrHPgc6xzrrPhM6uz4HOsSwKKyAgICDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOvyDOu861zrnPhM6/z4XPgc6zzrnOus+MIM+Dz43Pg8+EzrfOvM6xLAorICAgIM6xzr3Otc6+zqzPgc+EzrfPhM6xIM6xz4DPjCDPhM6/IM67zr/Os865z4POvM65zrrPjCwKKyAgICDOsc69zrXOvs6sz4HPhM63z4TOsSDOsc+Az4wgz4TOt869IM6zzrvPjs+Dz4POsS4KKworICAgIM6fzrkgzrfOu861zrrPhM+Bzr/Ovc65zrrOv86vIM+Fz4DOv867zr/Os865z4PPhM6tz4IsIM+DzrUgz4TOtc67zrnOus6uIM6xzr3OrM67z4XPg863LCDPh861zrnPgc6vzrbOv869z4TOsc65IM6xz4DOu8+Oz4IgzrHPgc65zrjOvM6/z43Pgi4gzpHPgM6/zrjOt866zrXPjc6/z4XOvSDOs8+BzqzOvM68zrHPhM6xIM66zrHOuQorICAgIM6szrvOu86/z4XPgiDPh86xz4HOsc66z4TOrs+BzrXPgiDOsc69z4TOuc+Dz4TOv865z4fPjs69z4TOsc+CIM+Dz4TOvyDOus6xzrjOrc69zrEgz4TOv8+Fz4IgzrHPgM+MIM6tzr3Osc69IM6xz4HOuc64zrzPjCAozr/Ovc6/zrzOrM62zr/Phc68zrUgzrzOr86xIM+Ezq3PhM6/zrnOsSDOsc69z4TOuc+Dz4TOv865z4fOr86xCisgICAgzrrPic60zrnOus6/z4POtc67zq/OtM6xKS4gzqDPgc65zr0gz4TOt869IM61z4bOtc+Nz4HOtc+Dzrcgz4TOv8+FIFVuaWNvZGUsIM+Fz4DOrs+Bz4fOsc69IM61zrrOsc+Ezr/Ovc+EzqzOtM61z4IgzrTOuc6xz4bOv8+BzrXPhM65zrrOrc+CIM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CLiDOm8+MzrPPiQorICAgIM+AzrXPgc65zr/Pgc65z4POvM+Ozr0gzrzOtc6zzq3OuM6/z4XPgiDPjM68z4nPgiwgz4POtSDOus6xzrzOr86xIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSDOtM61zr0gz4fPic+Bzr/Pjc+DzrHOvSDOsc+BzrrOtc+Ezr/OryDPh86xz4HOsc66z4TOrs+BzrXPgjogzrvPjM6zzr/PhSDPh86sz4HOuc69LAorICAgIM63IM6Vz4XPgc+Jz4DOsc+KzrrOriDOiM69z4nPg863IM+Hz4HOtc65zrHOts+Mz4TOsc69IM+AzrvOrs64zr/PgiDOtM65zrHPhs6/z4HOtc+EzrnOus+Ozr0gzrrPic60zrnOus6/z4POtc67zq/OtM+Jzr0gzrPOuc6xIM69zrEgzrrOsc67z43PiM61zrkgz4zOu861z4Igz4TOuc+CIM6zzrvPjs+Dz4POtc+CIM+Ez4nOvQorICAgIM+Hz4nPgc+Ozr0tzrzOtc67z47OvSDPhM63z4IuIM6RzrrPjM68zrEgzrrOsc65IM6zzrnOsSDOvM6vzrEgzrrOsc65IM68z4zOvc63IM6zzrvPjs+Dz4POsSwgz4zPgM+Jz4Igz4Auz4cuIM+EzrEgzpHOs86zzrvOuc66zqwsIM68zq/OsSDOus+JzrTOuc66zr/Pg861zrvOr860zrEgzrTOtc69CisgICAgzrXPgM6xz4HOus6/z43Pg861IM6zzrnOsSDOvc6xIM66zrHOu8+Nz4jOtc65IM+MzrvOsSDPhM6xIM6zz4HOrM68zrzOsc+EzrEsIM+DzrfOvM61zq/OsSDPg8+Ezq/Ovs63z4IgzrrOsc65IM+EzrXPh869zrnOus6sIM+Dz43OvM6yzr/Ou86xIM61z4XPgc61zq/Osc+CIM+Hz4HOrs+DzrfPgi4KKworICAgIM6VzrrPhM+Mz4IgzrHPhc+Ezr/PjSwgzr/OuSDOus+JzrTOuc66zr/Pg861zrvOr860zrXPgiDOsc+Fz4TOrc+CIM60zrnOsc+Gz4nOvc6/z43Pg86xzr0gzrzOtc+EzrHOvs+NIM+Ezr/Phc+CLiDOiM+Ez4POuSwgzrTPjc6/IM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CIM68z4DOv8+Bzr/Pjc+DzrHOvSDOus6szrvOu865z4PPhM6xIM69zrEKKyAgICDPh8+BzrfPg865zrzOv8+Azr/Ouc6/z43OvSDPhM6/zr0gzq/OtM65zr8gzrHPgc65zrjOvM+MIM6zzrnOsSDOtM+Nzr8gzrTOuc6xz4bOv8+BzrXPhM65zrrOv8+Nz4Igz4fOsc+BzrHOus+Ezq7Pgc61z4IsIM6uIM69zrEgz4fPgc63z4POuc68zr/PgM6/zrnOv8+Nzr0gzrTOuc6xz4bOv8+BzrXPhM65zrrOv8+Nz4IgzrHPgc65zrjOvM6/z43PgiDOs865zrEKKyAgICDPhM6/zr0gzq/OtM65zr8gz4fOsc+BzrHOus+Ezq7Pgc6xLiDOms6szrjOtSDPhc+Azr/Ou86/zrPOuc+Dz4TOrs+CICjOus6xzrkgzrnOtM6vz4nPgiDOtc6szr0gzq7PhM6xzr0gzrTOuc6xzrrOv868zrnPg8+Ezq7Pgikgzq3PgM+BzrXPgM61IM69zrEgz4XPgM6/z4PPhM63z4HOr862zrXOuSDPgM67zq7OuM6/z4IgzrTOuc6xz4bOv8+BzrXPhM65zrrPjs69CisgICAgzrrPic60zrnOus6/z4POtc67zq/OtM+Jzr3CtyDPhM6xz4XPhM+Mz4fPgc6/zr3OsSDOus6szrjOtSDPhs6/z4HOrCDPgM6/z4UgzrTOtc60zr/OvM6tzr3OsSDOvM61z4TOsc+Gzq3Pgc6/zr3PhM6xzr0gzrzOtc+EzrHOvs+NIM60zrnOsc+Gzr/Pgc61z4TOuc66z47OvSDOus+JzrTOuc66zr/Pg861zrvOr860z4nOvSDOrgorICAgIM67zrXOuc+Ezr/Phc+BzrPOuc66z47OvSDPg8+Fz4PPhM63zrzOrM+Ez4nOvSwgz4TOsSDOtM61zrTOv868zq3Ovc6xIM6xz4XPhM6sIM66zrnOvc60z43Ovc61z4XOsc69IM69zrEgzrHOu867zr/Ouc+JzrjOv8+Nzr0uCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IldJVS1lbC1RIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIHdpbmRvd3MtMTI1My9lbCI+CisgICAgPCEtLSBDb3B5cmlnaHQgwqkgMTk5MS0yMDA1IFVuaWNvZGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+CisKKyAgICDOpM65IM61zq/Ovc6xzrkgz4TOvyDigJxVbmljb2Rl4oCdOworCisgICAgzpcgzrrPic60zrnOus6/z4POtc67zq/OtM6xIFVuaWNvZGUgz4DPgc6/z4TOtc6vzr3Otc65IM6tzr3Osc69IM66zrHOuSDOvM6/zr3Osc60zrnOus+MIM6xz4HOuc64zrzPjCDOs865zrEgzrrOrM64zrUgz4fOsc+BzrHOus+Ezq7Pgc6xLAorICAgIM6xzr3Otc6+zqzPgc+EzrfPhM6xIM6xz4DPjCDPhM6/IM67zrXOuc+Ezr/Phc+BzrPOuc66z4wgz4PPjc+Dz4TOt868zrEsCisgICAgzrHOvc61zr7OrM+Bz4TOt8+EzrEgzrHPgM+MIM+Ezr8gzrvOv86zzrnPg868zrnOus+MLAorICAgIM6xzr3Otc6+zqzPgc+EzrfPhM6xIM6xz4DPjCDPhM63zr0gzrPOu8+Oz4PPg86xLgorCisgICAgzp/OuSDOt867zrXOus+Ez4HOv869zrnOus6/zq8gz4XPgM6/zrvOv86zzrnPg8+Ezq3Pgiwgz4POtSDPhM61zrvOuc66zq4gzrHOvc6szrvPhc+DzrcsIM+HzrXOuc+Bzq/Ots6/zr3PhM6xzrkgzrHPgM67z47PgiDOsc+BzrnOuM68zr/Pjc+CLiDOkc+Azr/OuM63zrrOtc+Nzr/Phc69IM6zz4HOrM68zrzOsc+EzrEgzrrOsc65CisgICAgzqzOu867zr/Phc+CIM+HzrHPgc6xzrrPhM6uz4HOtc+CIM6xzr3PhM65z4PPhM6/zrnPh8+Ozr3PhM6xz4Igz4PPhM6/IM66zrHOuM6tzr3OsSDPhM6/z4XPgiDOsc+Az4wgzq3Ovc6xzr0gzrHPgc65zrjOvM+MICjOv869zr/OvM6szrbOv8+FzrzOtSDOvM6vzrEgz4TOrc+Ezr/Ouc6xIM6xzr3PhM65z4PPhM6/zrnPh86vzrEKKyAgICDOus+JzrTOuc66zr/Pg861zrvOr860zrEpLiDOoM+BzrnOvSDPhM63zr0gzrXPhs61z43Pgc61z4POtyDPhM6/z4UgVW5pY29kZSwgz4XPgM6uz4HPh86xzr0gzrXOus6xz4TOv869z4TOrM60zrXPgiDOtM65zrHPhs6/z4HOtc+EzrnOus6tz4IgzrrPic60zrnOus6/z4POtc67zq/OtM61z4IuIM6bz4zOs8+JCisgICAgz4DOtc+BzrnOv8+BzrnPg868z47OvSDOvM61zrPOrc64zr/Phc+CIM+MzrzPic+CLCDPg861IM66zrHOvM6vzrEgzrrPic60zrnOus6/z4POtc67zq/OtM6xIM60zrXOvSDPh8+Jz4HOv8+Nz4POsc69IM6xz4HOus61z4TOv86vIM+HzrHPgc6xzrrPhM6uz4HOtc+COiDOu8+MzrPOv8+FIM+HzqzPgc65zr0sCisgICAgzrcgzpXPhc+Bz4nPgM6xz4rOus6uIM6Izr3Pic+Dzrcgz4fPgc61zrnOsc62z4zPhM6xzr0gz4DOu86uzrjOv8+CIM60zrnOsc+Gzr/Pgc61z4TOuc66z47OvSDOus+JzrTOuc66zr/Pg861zrvOr860z4nOvSDOs865zrEgzr3OsSDOus6xzrvPjc+IzrXOuSDPjM67zrXPgiDPhM65z4IgzrPOu8+Oz4PPg861z4Igz4TPic69CisgICAgz4fPic+Bz47OvS3OvM61zrvPjs69IM+EzrfPgi4gzpHOus+MzrzOsSDOus6xzrkgzrPOuc6xIM68zq/OsSDOus6xzrkgzrzPjM69zrcgzrPOu8+Oz4PPg86xLCDPjM+Az4nPgiDPgC7Phy4gz4TOsSDOkc6zzrPOu865zrrOrCwgzrzOr86xIM66z4nOtM65zrrOv8+DzrXOu86vzrTOsSDOtM61zr0KKyAgICDOtc+AzrHPgc66zr/Pjc+DzrUgzrPOuc6xIM69zrEgzrrOsc67z43PiM61zrkgz4zOu86xIM+EzrEgzrPPgc6szrzOvM6xz4TOsSwgz4POt868zrXOr86xIM+Dz4TOr86+zrfPgiDOus6xzrkgz4TOtc+Hzr3Ouc66zqwgz4PPjc68zrLOv867zrEgzrXPhc+BzrXOr86xz4Igz4fPgc6uz4POt8+CLgorCisgICAgzpXOus+Ez4zPgiDOsc+Fz4TOv8+NLCDOv865IM66z4nOtM65zrrOv8+DzrXOu86vzrTOtc+CIM6xz4XPhM6tz4IgzrTOuc6xz4bPic69zr/Pjc+DzrHOvSDOvM61z4TOsc6+z40gz4TOv8+Fz4IuIM6Iz4TPg865LCDOtM+Nzr8gzrrPic60zrnOus6/z4POtc67zq/OtM61z4IgzrzPgM6/z4HOv8+Nz4POsc69IM66zqzOu867zrnPg8+EzrEgzr3OsQorICAgIM+Hz4HOt8+DzrnOvM6/z4DOv865zr/Pjc69IM+Ezr/OvSDOr860zrnOvyDOsc+BzrnOuM68z4wgzrPOuc6xIM60z43OvyDOtM65zrHPhs6/z4HOtc+EzrnOus6/z43PgiDPh86xz4HOsc66z4TOrs+BzrXPgiwgzq4gzr3OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc6/z43OvSDOtM65zrHPhs6/z4HOtc+EzrnOus6/z43PgiDOsc+BzrnOuM68zr/Pjc+CIM6zzrnOsQorICAgIM+Ezr/OvSDOr860zrnOvyDPh86xz4HOsc66z4TOrs+BzrEuIM6azqzOuM61IM+Fz4DOv867zr/Os865z4PPhM6uz4IgKM66zrHOuSDOuc60zq/Pic+CIM61zqzOvSDOrs+EzrHOvSDOtM65zrHOus6/zrzOuc+Dz4TOrs+CKSDOrc+Az4HOtc+AzrUgzr3OsSDPhc+Azr/Pg8+EzrfPgc6vzrbOtc65IM+AzrvOrs64zr/PgiDOtM65zrHPhs6/z4HOtc+EzrnOus+Ozr0KKyAgICDOus+JzrTOuc66zr/Pg861zrvOr860z4nOvcK3IM+EzrHPhc+Ez4zPh8+Bzr/Ovc6xIM66zqzOuM61IM+Gzr/Pgc6sIM+Azr/PhSDOtM61zrTOv868zq3Ovc6xIM68zrXPhM6xz4bOrc+Bzr/Ovc+EzrHOvSDOvM61z4TOsc6+z40gzrTOuc6xz4bOv8+BzrXPhM65zrrPjs69IM66z4nOtM65zrrOv8+DzrXOu86vzrTPic69IM6uCisgICAgzrvOtc65z4TOv8+Fz4HOs865zrrPjs69IM+Dz4XPg8+EzrfOvM6sz4TPic69LCDPhM6xIM60zrXOtM6/zrzOrc69zrEgzrHPhc+EzqwgzrrOuc69zrTPjc69zrXPhc6xzr0gzr3OsSDOsc67zrvOv865z4nOuM6/z43OvS4KKworICAgIDwvdGVzdC1jYXNlPgorCisgICAgPHRlc3QtY2FzZSBpZD0iV0lVLXBsIiBlbmNvZGluZ3M9IlVURi04IFVURi0zMkJFIFVURi0zMkxFIElTTy04ODU5LTIvcGwiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAgQ3p5bSBqZXN0IFVuaWtvZCA/CisKKyAgICBVbmlrb2QgcHJ6eXBpc3VqZSB1bmlrYWxueSBudW1lciBrYcW8ZGVtdSB6bmFrb3dpLCBuaWV6YWxlxbxueSBvZCB1xbx5d2FuZWogcGxhdGZvcm15LCBwcm9ncmFtdSBjenkgasSZenlrYS4KKworICAgIFphc2Fkbmljem8sIGtvbXB1dGVyeSByb3p1bWllasSFIHR5bGtvIGxpY3pieS4gWmFwaXN1asSFIGxpdGVyeSBpIGlubmUgem5ha2kgcHJ6eXBpc3VqxIVjIGthxbxkZW11IHogbmljaCBsaWN6YsSZLgorICAgIE5pbSBwb3dzdGHFgiBVbmlrb2QsIGJ5xYJvIHdpZWxlIHLDs8W8bnljaCBzeXN0ZW3Ds3cga29kb3dhbmlhIHByenlwaXN1asSFY3ljaCB0ZSBsaWN6YnkuIEJyYWtvd2HFgm8gamVkbmVnbywKKyAgICBrdMOzcnkgbcOzZ8WCYnkgcG9taWXFm2NpxIcgd3lzdGFyY3phasSFY28gZHXFvMSFIGxpY3pixJkgem5ha8Ozdy4gUHJ6eWvFgmFkb3dvLCBzYW1hIFVuaWEgRXVyb3BlanNrYSBwb3RyemVib3dhxYJhCisgICAga2lsa3UgcsOzxbxueWNoIGtvZG93YcWELCBieSBtw7NjIHXFvHl3YcSHIHdzenlzdGtpY2ggdcW8eXdhbnljaCB3IG5pZWogasSZenlrw7N3LiBOYXdldCBkbGEgcG9qZWR5bmN6ZWdvIGrEmXp5a2EKKyAgICB0YWtpZWdvIGphayBucC4gYW5naWVsc2tpIGJyYWtvd2HFgm8gamVkbmVnbyBrb2Rvd2FuaWEsIGt0w7NyZSBiecWCb2J5IG9kcG93aWVkbmllIGRsYSB6YXByZXplbnRvd2FuaWEKKyAgICB3c3p5c3RraWNoIGxpdGVyLCB6bmFrw7N3IHByemVzdGFua293eWNoIGkgcG9wdWxhcm55Y2ggc3ltYm9saSB0ZWNobmljem55Y2guCisKKyAgICBJbm55bSBwcm9ibGVtZW0gYnnFgm8sIMW8ZSBrb2Rvd2FuaWEgdGUga29saWRvd2HFgnkgemUgc29ixIUuIER3YSwgcsOzxbxuZSBrb2Rvd2FuaWEgdcW8eXdhxYJ5IGplZG5laiBsaWN6YnkgZGxhIGR3dQorICAgIHLDs8W8bnljaCB6bmFrw7N3IGx1YiByw7PFvG55Y2ggbGljemIgZGxhIHRlZ28gc2FtZWdvIHpuYWt1LiBXc3p5c3RraWUga29tcHV0ZXJ5IChtacSZZHp5IGlubnltaSBzZXJ3ZXJ5KSBtdXN6xIUKKyAgICB3c3BpZXJhxIcgd3N6eXN0a2llIHRlIGtvZG93YW5pYSwgZ2R5xbwgZGFuZSBwcnplc3nFgmFuZSBtacSZZHp5IHLDs8W8bnltaSBzeXN0ZW1hbWkgb3BlcmFjeWpueW1pIHphd3N6ZQorICAgIG5hcmHFvG9uZSBzxIUgbmEgdXN6a29kemVuaWUuCisKKyAgICA8L3Rlc3QtY2FzZT4KKworICAgIDx0ZXN0LWNhc2UgaWQ9IldJVS10ciIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSBJU08tODg1OS05L3RyIj4KKyAgICA8IS0tIENvcHlyaWdodCDCqSAxOTkxLTIwMDUgVW5pY29kZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKworICAgIEV2cmVuc2VsIEtvZCBOZWRpcj8KKworICAgIEV2cmVuc2VsIEtvZCBoZXIgeWF6xLEga2FyYWt0ZXJpIGnDp2luIGJpciB2ZSB5YWxuxLF6IGJpciBzYXnEsSDFn2FydCBrb8WfYXIsCisgICAgaGFuZ2kgYWx0eWFwxLEsCisgICAgaGFuZ2kgeWF6xLFsxLFtLAorICAgIGhhbmdpIGRpbCBvbHVyc2Egb2xzdW4uCisKKyAgICDEsGxrZSBvbGFyYWssIGJpbGdpc2F5YXJsYXIgc2FkZWNlIHNhecSxbGFybGEgacWfbGVtIHlhcGFybGFyLiBLZWxpbWVsZXJpbiB2ZSB5YXrEsSBrYXJha3RlcmxlcmluaW4gaGVyIGJpcmkgacOnaW4KKyAgICBiaXJlciBzYXnEsSBhdGFybGFyIHZlIGLDtnlsZSBzYWtsYXJsYXIuIEV2cmVuc2VsIEtvZCBrZcWfZmVkaWxtZWRlbiDDtm5jZSwgYnUgc2F5xLFsYXLEsSBhdGFtYWsgacOnaW4gYmlyw6dvayDFn2lmcmVsZW1lCisgICAgecO2bnRlbWkgdmFyZMSxLiBBbmNhaywgdMO8bSBidSBkaWxsZXJpIGfDtnN0ZXJlYmlsZWNlaywgw7ZybmXEn2luOyBBdnJ1cGEgVG9wbHVsdcSfdSBiw7xueWVzaW5kZWtpIHTDvG0gw7xsa2VsZXJpbiBkaWxsZXJpbmkKKyAgICBrYXBzYXlhY2FrIGJpciB0ZWsgxZ9pZnJlbGVtZSB5w7ZudGVtaSB5b2t0dS4gQnVudW4geWFuxLFzxLFyYSwgc2FkZWNlIMSwbmdpbGl6Y2VkZWtpIGhhcmZsZXJpLCBub2t0YWxhbWEKKyAgICBpxZ9hcmV0bGVyaW5pIHZlIHRla25payBzZW1ib2xsZXJpIGthcHNheWFuIHRlayBiaXIgxZ9pZnJlbGVtZSB5w7ZudGVtaSBkZSBidWx1bm1hbWFrdGF5ZMSxLgorCisgICAgQnUgxZ9pZnJlbGVtZSB5w7ZudGVtbGVyaSBrZW5kaSBhcmFsYXLEsW5kYSDDp2VsacWfbWVrdGVkaXIuIMSwa2kgZmFya2zEsSDFn2lmcmVsZW1lLCBheW7EsSBzYXnEsXnEsSBpa2kgZmFya2zEsSBrYXJha3RlcmUKKyAgICB2ZXJtacWfIG9sYWJpbGlyIHlhIGRhIGZhcmtsxLEgc2F5xLFsYXIgYXluxLEga2FyZWt0ZXJpIGtvZGxheWFiaWxpci4gQmlsZ2lzYXlhcmxhciwgw7Z6ZWxsaWtsZSBzdW51Y3VsYXIsIGJpcsOnb2sKKyAgICDFn2lmcmVsZW1leWkgZGVzdGVrbGVtZWsgem9ydW5kYWTEsXJsYXI7IHZlcmlsZXIsIGZhcmtsxLEgxZ9pZnJlbGVtZSB2ZSBhbHR5YXDEsWxhcmRhbiBnZcOnZXJrZW4gYm96dWxtYSByaXNraSB0YcWfxLFybGFyLgorCisgICAgPC90ZXN0LWNhc2U+CisKKyAgICA8dGVzdC1jYXNlIGlkPSJXSVUtdHItUSIgZW5jb2RpbmdzPSJVVEYtOCBVVEYtMzJCRSBVVEYtMzJMRSB3aW5kb3dzLTEyNTQvdHIiPgorICAgIDwhLS0gQ29weXJpZ2h0IMKpIDE5OTEtMjAwNSBVbmljb2RlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorCisgICAg4oCcRXZyZW5zZWwgS29k4oCdIE5lZGlyPworCisgICAgRXZyZW5zZWwgS29kIGhlciB5YXrEsSBrYXJha3RlcmkgacOnaW4gYmlyIHZlIHlhbG7EsXogYmlyIHNhecSxIMWfYXJ0IGtvxZ9hciwKKyAgICBoYW5naSBhbHR5YXDEsSwKKyAgICBoYW5naSB5YXrEsWzEsW0sCisgICAgaGFuZ2kgZGlsIG9sdXJzYSBvbHN1bi4KKworICAgIMSwbGtlIG9sYXJhaywgYmlsZ2lzYXlhcmxhciBzYWRlY2Ugc2F5xLFsYXJsYSBpxZ9sZW0geWFwYXJsYXIuIEtlbGltZWxlcmluIHZlIHlhesSxIGthcmFrdGVybGVyaW5pbiBoZXIgYmlyaSBpw6dpbgorICAgIGJpcmVyIHNhecSxIGF0YXJsYXIgdmUgYsO2eWxlIHNha2xhcmxhci4gRXZyZW5zZWwgS29kIGtlxZ9mZWRpbG1lZGVuIMO2bmNlLCBidSBzYXnEsWxhcsSxIGF0YW1hayBpw6dpbiBiaXLDp29rIMWfaWZyZWxlbWUKKyAgICB5w7ZudGVtaSB2YXJkxLEuIEFuY2FrLCB0w7xtIGJ1IGRpbGxlcmkgZ8O2c3RlcmViaWxlY2VrLCDDtnJuZcSfaW47IEF2cnVwYSBUb3BsdWx1xJ91IGLDvG55ZXNpbmRla2kgdMO8bSDDvGxrZWxlcmluIGRpbGxlcmluaQorICAgIGthcHNheWFjYWsgYmlyIHRlayDFn2lmcmVsZW1lIHnDtm50ZW1pIHlva3R1LiBCdW51biB5YW7EsXPEsXJhLCBzYWRlY2UgxLBuZ2lsaXpjZWRla2kgaGFyZmxlcmksIG5va3RhbGFtYQorICAgIGnFn2FyZXRsZXJpbmkgdmUgdGVrbmlrIHNlbWJvbGxlcmkga2Fwc2F5YW4gdGVrIGJpciDFn2lmcmVsZW1lIHnDtm50ZW1pIGRlIGJ1bHVubWFtYWt0YXlkxLEuCisKKyAgICBCdSDFn2lmcmVsZW1lIHnDtm50ZW1sZXJpIGtlbmRpIGFyYWxhcsSxbmRhIMOnZWxpxZ9tZWt0ZWRpci4gxLBraSBmYXJrbMSxIMWfaWZyZWxlbWUsIGF5bsSxIHNhecSxecSxIGlraSBmYXJrbMSxIGthcmFrdGVyZQorICAgIHZlcm1pxZ8gb2xhYmlsaXIgeWEgZGEgZmFya2zEsSBzYXnEsWxhciBheW7EsSBrYXJla3Rlcmkga29kbGF5YWJpbGlyLiBCaWxnaXNheWFybGFyLCDDtnplbGxpa2xlIHN1bnVjdWxhciwgYmlyw6dvaworICAgIMWfaWZyZWxlbWV5aSBkZXN0ZWtsZW1layB6b3J1bmRhZMSxcmxhcjsgdmVyaWxlciwgZmFya2zEsSDFn2lmcmVsZW1lIHZlIGFsdHlhcMSxbGFyZGFuIGdlw6dlcmtlbiBib3p1bG1hIHJpc2tpIHRhxZ/EsXJsYXIuCisKKyAgICA8L3Rlc3QtY2FzZT4KKzwvY2hhcnNldC1kZXRlY3Rpb24tdGVzdHM+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXRkZXQvVGVzdENoYXJzZXREZXRlY3Rvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NoYXJzZXRkZXQvVGVzdENoYXJzZXREZXRlY3Rvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxY2U1YmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2hhcnNldGRldC9UZXN0Q2hhcnNldERldGVjdG9yLmphdmEKQEAgLTAsMCArMSwzNzMgQEAKKy8vIyNoZWFkZXIKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jaGFyc2V0ZGV0OworCitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5pby5SZWFkZXI7CitpbXBvcnQgamF2YS5pby5VbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VVEYzMjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKy8vI2lmZGVmIEZPVU5EQVRJT04KKy8vIyNpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworLy8jZW5kaWYKKworaW1wb3J0IGphdmF4LnhtbC5wYXJzZXJzLio7CitpbXBvcnQgb3JnLnczYy5kb20uKjsKKworCisvKioKKyAqIEBhdXRob3IgYW5keQorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIFRlc3RDaGFyc2V0RGV0ZWN0b3IgZXh0ZW5kcyBUZXN0Rm13aworeworICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yCisgICAgICovCisgICAgcHVibGljIFRlc3RDaGFyc2V0RGV0ZWN0b3IoKQorICAgIHsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBUZXN0Q2hhcnNldERldGVjdG9yIHRlc3QgPSBuZXcgVGVzdENoYXJzZXREZXRlY3RvcigpOworICAgICAgICAgICAgdGVzdC5ydW4oYXJncyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIENoZWNrQXNzZXJ0KGJvb2xlYW4gZXhwKSB7CisgICAgICAgIGlmIChleHAgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2c7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgICAgICAgICBTdGFja1RyYWNlRWxlbWVudCBmYWlsUG9pbnQgPSBlLmdldFN0YWNrVHJhY2UoKVsxXTsKKyAgICAgICAgICAgICAgICBtc2cgPSAiVGVzdCBmYWlsdXJlIGluIGZpbGUgIiArIGZhaWxQb2ludC5nZXRGaWxlTmFtZSgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBhdCBsaW5lICIgKyBmYWlsUG9pbnQuZ2V0TGluZU51bWJlcigpOworLy8jZWxzZQorLy8jIyAgICAgICAgICAgbXNnID0gIlRlc3QgZmFpbHVyZSAgIiArIGUuZ2V0TWVzc2FnZSgpIDsKKy8vI2VuZGlmCisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJsbihtc2cpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBzdHJpbmdGcm9tUmVhZGVyKFJlYWRlciByZWFkZXIpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGNoYXJbXSBidWZmZXIgICA9IG5ldyBjaGFyWzEwMjRdOworICAgICAgICBpbnQgYnl0ZXNSZWFkICAgPSAwOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHdoaWxlICgoYnl0ZXNSZWFkID0gcmVhZGVyLnJlYWQoYnVmZmVyLCAwLCAxMDI0KSkgPj0gMCkgeworICAgICAgICAgICAgICAgIHNiLmFwcGVuZChidWZmZXIsIDAsIGJ5dGVzUmVhZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBzYi50b1N0cmluZygpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oInN0cmluZ0Zyb21SZWFkZXIoKSBmYWlsZWQ6ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrTWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCwgU3RyaW5nIHRlc3RTdHJpbmcsIFN0cmluZyBlbmNvZGluZywgU3RyaW5nIGxhbmd1YWdlLCBTdHJpbmcgaWQpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIENoYXJzZXRNYXRjaCBtID0gZGV0LmRldGVjdCgpOworICAgICAgICBTdHJpbmcgZGVjb2RlZDsKKyAgICAgICAgCisgICAgICAgIGlmICghIG0uZ2V0TmFtZSgpLmVxdWFscyhlbmNvZGluZykpIHsKKyAgICAgICAgICAgIGVycmxuKGlkICsgIjogZW5jb2RpbmcgZGV0ZWN0aW9uIGZhaWx1cmUgLSBleHBlY3RlZCAiICsgZW5jb2RpbmcgKyAiLCBnb3QgIiArIG0uZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCEgKGxhbmd1YWdlID09IG51bGwgfHwgbS5nZXRMYW5ndWFnZSgpLmVxdWFscyhsYW5ndWFnZSkpKSB7CisgICAgICAgICAgICBlcnJsbihpZCArICIsICIgKyBlbmNvZGluZyArICI6IGxhbmd1YWdlIGRldGVjdGlvbiBmYWlsdXJlIC0gZXhwZWN0ZWQgIiArIGxhbmd1YWdlICsgIiwgZ290ICIgKyBtLmdldExhbmd1YWdlKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZW5jb2Rpbmcuc3RhcnRzV2l0aCgiVVRGLTMyIikpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZGVjb2RlZCA9IG0uZ2V0U3RyaW5nKCk7CisgICAgICAgIAorICAgICAgICBpZiAoISB0ZXN0U3RyaW5nLmVxdWFscyhkZWNvZGVkKSkgeworICAgICAgICAgICAgZXJybG4oaWQgKyAiLCAiICsgZW5jb2RpbmcgKyAiOiBnZXRTdHJpbmcoKSBkaWRuJ3QgcmV0dXJuIHRoZSBvcmlnaW5hbCBzdHJpbmchIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRlY29kZWQgPSBzdHJpbmdGcm9tUmVhZGVyKG0uZ2V0UmVhZGVyKCkpOworICAgICAgICAKKyAgICAgICAgaWYgKCEgdGVzdFN0cmluZy5lcXVhbHMoZGVjb2RlZCkpIHsKKyAgICAgICAgICAgIGVycmxuKGlkICsgIiwgIiArIGVuY29kaW5nICsgIjogZ2V0UmVhZGVyKCkgZGlkbid0IHlpZWxkIHRoZSBvcmlnaW5hbCBzdHJpbmchIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrRW5jb2RpbmcoU3RyaW5nIHRlc3RTdHJpbmcsIFN0cmluZyBlbmNvZGluZywgU3RyaW5nIGlkKQorICAgIHsKKyAgICAgICAgU3RyaW5nIGVuYyA9IG51bGwsIGxhbmcgPSBudWxsOworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgU3RyaW5nW10gc3BsaXQgPSBlbmNvZGluZy5zcGxpdCgiLyIpOworLy8jZWxzZQorLy8jIyAgICAgICAgU3RyaW5nW10gc3BsaXQgPSBVdGlsaXR5LnNwbGl0KGVuY29kaW5nLCcvJyk7CisvLyNlbmRpZgorICAgICAgICAKKyAgICAgICAgZW5jID0gc3BsaXRbMF07CisgICAgICAgIAorICAgICAgICBpZiAoc3BsaXQubGVuZ3RoID4gMSkgeworICAgICAgICAgICAgbGFuZyA9IHNwbGl0WzFdOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENoYXJzZXREZXRlY3RvciBkZXQgPSBuZXcgQ2hhcnNldERldGVjdG9yKCk7CisgICAgICAgICAgICBieXRlW10gYnl0ZXM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChlbmMuc3RhcnRzV2l0aCgiVVRGLTMyIikpIHsKKyAgICAgICAgICAgICAgICBVVEYzMiB1dGYzMiA9IFVURjMyLmdldEluc3RhbmNlKGVuYyk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYnl0ZXMgPSB1dGYzMi50b0J5dGVzKHRlc3RTdHJpbmcpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZnJvbSA9IGVuYzsKKworICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlcyA9IHRlc3RTdHJpbmcuZ2V0Qnl0ZXMoZnJvbSk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIHVvZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluIHNvbWUgcnVudGltZXMsIHRoZSBJU08tMjAyMi1DTiBjb252ZXJ0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IGNvbnZlcnRzICp0byogVW5pY29kZSAtIHdlIGhhdmUgdG8gdXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8geC1JU08tMjAyMi1DTi1HQiB0byBjb252ZXJ0ICpmcm9tKiBVbmljb2RlLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZyb20uZXF1YWxzKCJJU08tMjAyMi1DTiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSA9ICJ4LUlTTy0yMDIyLUNOLUdCIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIGFueSBvdGhlciBjb252ZXJ0ZXJzIHRoYXQgY2FuJ3QKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnZlcnQgZnJvbSBVbmljb2RlLgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIHVlZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIGFueSBlbmNvZGluZ3MgdGhhdCB0aGlzIHJ1bnRpbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvZXNuJ3Qgc3VwcG9ydC4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGRldC5zZXRUZXh0KGJ5dGVzKTsKKyAgICAgICAgICAgIGNoZWNrTWF0Y2goZGV0LCB0ZXN0U3RyaW5nLCBlbmMsIGxhbmcsIGlkKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGV0LnNldFRleHQobmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSk7CisgICAgICAgICAgICBjaGVja01hdGNoKGRldCwgdGVzdFN0cmluZywgZW5jLCBsYW5nLCBpZCk7CisgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oaWQgKyAiOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29uc3RydWN0aW9uKCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgQ2hhcnNldERldGVjdG9yICBkZXQgPSBuZXcgQ2hhcnNldERldGVjdG9yKCk7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgW10gY2hhcnNldE5hbWVzID0gQ2hhcnNldERldGVjdG9yLmdldEFsbERldGVjdGFibGVDaGFyc2V0cygpOworICAgICAgICBDaGVja0Fzc2VydChjaGFyc2V0TmFtZXMubGVuZ3RoICE9IDApOworICAgICAgICBmb3IgKGk9MDsgaTxjaGFyc2V0TmFtZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIENoZWNrQXNzZXJ0KGNoYXJzZXROYW1lc1tpXS5lcXVhbHMoIiIpID09IGZhbHNlKTsgCisgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oIlwiIiArIGNoYXJzZXROYW1lc1tpXSArICJcIiIpOworICAgICAgICB9CisgICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbnB1dEZpbHRlcigpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIFN0cmluZyBzID0gIjxhPiA8bG90PiA8b2Y+IDxFbmdsaXNoPiA8aW5zaWRlPiA8dGhlPiA8bWFya3VwPiBVbiB0clx1MDBFOHMgcGV0aXQgcGV1IGRlIEZyYW5cdTAwRTdhaXMuIDx0bz4gPGNvbmZ1c2U+IDx0aGU+IDxkZXRlY3Rvcj4iOworICAgICAgICBieXRlW10gYnl0ZXMgPSBzLmdldEJ5dGVzKCJJU08tODg1OS0xIik7CisgICAgICAgIENoYXJzZXREZXRlY3RvciBkZXQgPSBuZXcgQ2hhcnNldERldGVjdG9yKCk7CisgICAgICAgIENoYXJzZXRNYXRjaCBtOworICAgICAgICAKKyAgICAgICAgZGV0LmVuYWJsZUlucHV0RmlsdGVyKHRydWUpOworICAgICAgICBpZiAoIWRldC5pbnB1dEZpbHRlckVuYWJsZWQoKSl7CisgICAgICAgICAgICBlcnJsbigiaW5wdXQgZmlsdGVyIHNob3VsZCBiZSBlbmFibGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRldC5zZXRUZXh0KGJ5dGVzKTsKKyAgICAgICAgbSA9IGRldC5kZXRlY3QoKTsKKyAgICAgICAgCisgICAgICAgIGlmICghIG0uZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoImZyIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJpbnB1dCBmaWx0ZXIgZGlkIG5vdCBzdHJpcCBtYXJrdXAhIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRldC5lbmFibGVJbnB1dEZpbHRlcihmYWxzZSk7CisgICAgICAgIGRldC5zZXRUZXh0KGJ5dGVzKTsKKyAgICAgICAgbSA9IGRldC5kZXRlY3QoKTsKKyAgICAgICAgCisgICAgICAgIGlmICghIG0uZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoImVuIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJ1bmZpbHRlcmVkIGlucHV0IGRpZCBub3QgZGV0ZWN0IGFzIEVuZ2xpc2ghIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFVURjgoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyAgcyA9ICJUaGlzIGlzIGEgc3RyaW5nIHdpdGggc29tZSBub24tYXNjaWkgY2hhcmFjdGVycyB0aGF0IHdpbGwgIiArCisgICAgICAgICAgICAgICAgICAgICJiZSBjb252ZXJ0ZWQgdG8gVVRGLTgsIHRoZW4gc2hvdmVkIHRocm91Z2ggdGhlIGRldGVjdGlvbiBwcm9jZXNzLiAgIiArCisgICAgICAgICAgICAgICAgICAgICJcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTUiICsKKyAgICAgICAgICAgICAgICAgICAgIlN1cmUgd291bGQgYmUgbmljZSBpZiBvdXIgc291cmNlIGNvdWxkIGNvbnRhaW4gVW5pY29kZSBkaXJlY3RseSEiOworICAgICAgICBieXRlIFtdIGJ5dGVzID0gcy5nZXRCeXRlcygiVVRGLTgiKTsKKyAgICAgICAgQ2hhcnNldERldGVjdG9yIGRldCA9IG5ldyBDaGFyc2V0RGV0ZWN0b3IoKTsKKyAgICAgICAgU3RyaW5nIHJldHJpZXZlZFM7CisgICAgICAgIFJlYWRlciByZWFkZXI7CisgICAgICAgIAorICAgICAgICByZXRyaWV2ZWRTID0gZGV0LmdldFN0cmluZyhieXRlcywgIlVURi04Iik7CisgICAgICAgIENoZWNrQXNzZXJ0KHMuZXF1YWxzKHJldHJpZXZlZFMpKTsKKyAgICAgICAgCisgICAgICAgIHJlYWRlciA9IGRldC5nZXRSZWFkZXIobmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSwgIlVURi04Iik7CisgICAgICAgIENoZWNrQXNzZXJ0KHMuZXF1YWxzKHN0cmluZ0Zyb21SZWFkZXIocmVhZGVyKSkpOworICAgICAgICBkZXQuc2V0RGVjbGFyZWRFbmNvZGluZygiVVRGLTgiKTsJLy8gSml0dGVyYnVnIDQ0NTEsIGZvciBjb3ZlcmFnZQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VVRGMTYoKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICBTdHJpbmcgc291cmNlID0gCisgICAgICAgICAgICAgICAgInUwNjIzXHUwNjQ4XHUwNjMxXHUwNjQ4XHUwNjI4XHUwNjI3LCBcdTA2MjhcdTA2MzFcdTA2NDVcdTA2MmNcdTA2NGFcdTA2MjdcdTA2MmEgIiArCisgICAgICAgICAgICAgICAgIlx1MDYyN1x1MDY0NFx1MDYyZFx1MDYyN1x1MDYzM1x1MDY0OFx1MDYyOCBcdTAwMmJcdTAwMjBcdTA2MjdcdTA2NDZcdTA2MmFcdTA2MzFcdTA2NDZcdTA2NGFcdTA2MmEiOworICAgICAgICAKKyAgICAgICAgYnl0ZVtdIGJlQnl0ZXMgPSBzb3VyY2UuZ2V0Qnl0ZXMoIlVuaWNvZGVCaWciKTsKKyAgICAgICAgYnl0ZVtdIGxlQnl0ZXMgPSBzb3VyY2UuZ2V0Qnl0ZXMoIlVuaWNvZGVMaXR0bGUiKTsKKyAgICAgICAgQ2hhcnNldERldGVjdG9yIGRldCA9IG5ldyBDaGFyc2V0RGV0ZWN0b3IoKTsKKyAgICAgICAgQ2hhcnNldE1hdGNoIG07CisgICAgICAgIAorICAgICAgICBkZXQuc2V0VGV4dChiZUJ5dGVzKTsKKyAgICAgICAgbSA9IGRldC5kZXRlY3QoKTsKKyAgICAgICAgCisgICAgICAgIGlmICghIG0uZ2V0TmFtZSgpLmVxdWFscygiVVRGLTE2QkUiKSkgeworICAgICAgICAgICAgZXJybG4oIkVuY29kaW5nIGRldGVjdGlvbiBmYWlsdXJlOiBleHBlY3RlZCBVVEYtMTZCRSwgZ290ICIgKyBtLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRldC5zZXRUZXh0KGxlQnl0ZXMpOworICAgICAgICBtID0gZGV0LmRldGVjdCgpOworICAgICAgICAKKyAgICAgICAgaWYgKCEgbS5nZXROYW1lKCkuZXF1YWxzKCJVVEYtMTZMRSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRW5jb2RpbmcgZGV0ZWN0aW9uIGZhaWx1cmU6IGV4cGVjdGVkIFVURi0xNkxFLCBnb3QgIiArIG0uZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEppdHRlcmJ1ZyA0NDUxLCBmb3IgY292ZXJhZ2UKKyAgICAgICAgaW50IGNvbmZpZGVuY2UgPSBtLmdldENvbmZpZGVuY2UoKTsgCisgICAgICAgIGlmKGNvbmZpZGVuY2UgIT0gMTAwKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgY29uZmlkZW5jZSBsZXZlbCAiICsgY29uZmlkZW5jZSk7CisgICAgICAgIH0KKyAgICAgICAgaW50IG1hdGNoVHlwZSA9IG0uZ2V0TWF0Y2hUeXBlKCk7CisgICAgICAgIGlmKG1hdGNoVHlwZSAhPSAwKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgbWF0Y2hUeXBlIGxldmVsICIgKyBtYXRjaFR5cGUpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDMUJ5dGVzKCkgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgU3RyaW5nIHNJU08gPQorICAgICAgICAgICAgIlRoaXMgaXMgYSBzbWFsbCBzYW1wbGUgb2Ygc29tZSBFbmdsaXNoIHRleHQuIEp1c3QgZW5vdWdoIHRvIGJlIHN1cmUgdGhhdCBpdCBkZXRlY3RzIGNvcnJlY3RseS4iOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHNXaW5kb3dzID0KKyAgICAgICAgICAgICJUaGlzIGlzIGFub3RoZXIgc21hbGwgc2FtcGxlIG9mIHNvbWUgRW5nbGlzaCB0ZXh0LiBKdXN0IGVub3VnaCB0byBiZSBzdXJlIHRoYXQgaXQgZGV0ZWN0cyBjb3JyZWN0bHkuIEl0IGFsc28gaW5jbHVkZXMgc29tZSBcdTIwMUNDMVx1MjAxRCBieXRlcy4iOworCisgICAgICAgIGJ5dGVbXSBiSVNPICAgICA9IHNJU08uZ2V0Qnl0ZXMoIklTTy04ODU5LTEiKTsKKyAgICAgICAgYnl0ZVtdIGJXaW5kb3dzID0gc1dpbmRvd3MuZ2V0Qnl0ZXMoIndpbmRvd3MtMTI1MiIpOworICAgICAgICAKKyAgICAgICAgQ2hhcnNldERldGVjdG9yIGRldCA9IG5ldyBDaGFyc2V0RGV0ZWN0b3IoKTsKKyAgICAgICAgQ2hhcnNldE1hdGNoIG07CisgICAgICAgIAorICAgICAgICBkZXQuc2V0VGV4dChiV2luZG93cyk7CisgICAgICAgIG0gPSBkZXQuZGV0ZWN0KCk7CisgICAgICAgIAorICAgICAgICBpZiAobS5nZXROYW1lKCkgIT0gIndpbmRvd3MtMTI1MiIpIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXh0IHdpdGggQzEgYnl0ZXMgbm90IGNvcnJlY3RseSBkZXRlY3RlZCBhcyB3aW5kb3dzLTEyNTIuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRldC5zZXRUZXh0KGJJU08pOworICAgICAgICBtID0gZGV0LmRldGVjdCgpOworICAgICAgICAKKyAgICAgICAgaWYgKG0uZ2V0TmFtZSgpICE9ICJJU08tODg1OS0xIikgeworICAgICAgICAgICAgZXJybG4oIlRleHQgd2l0aG91dCBDMSBieXRlcyBub3QgY29ycmVjdGx5IGRldGVjdGVkIGFzIElTTy04ODU5LTEuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdERldGVjdGlvbigpCisgICAgeworICAgICAgICAvLworICAgICAgICAvLyAgT3BlbiBhbmQgcmVhZCB0aGUgdGVzdCBkYXRhIGZpbGUuCisgICAgICAgIC8vCisgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBUZXN0Q2hhcnNldERldGVjdG9yLmNsYXNzLmdldFJlc291cmNlQXNTdHJlYW0oIkNoYXJzZXREZXRlY3Rpb25UZXN0cy54bWwiKTsKKyAgICAgICAgICAgIGlmIChpcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvdWxkIG5vdCBvcGVuIHRlc3QgZGF0YSBmaWxlIENoYXJzZXREZXRlY3Rpb25UZXN0cy54bWwiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlzciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcywgIlVURi04Iik7IAorCisgICAgICAgICAgICAvLyBTZXQgdXAgYW4geG1sIHBhcnNlci4KKyAgICAgICAgICAgIERvY3VtZW50QnVpbGRlckZhY3RvcnkgZmFjdG9yeSA9IERvY3VtZW50QnVpbGRlckZhY3RvcnkubmV3SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZmFjdG9yeS5zZXRJZ25vcmluZ0NvbW1lbnRzKHRydWUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBEb2N1bWVudEJ1aWxkZXIgYnVpbGRlciA9IGZhY3RvcnkubmV3RG9jdW1lbnRCdWlsZGVyKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFBhcnNlIHRoZSB4bWwgY29udGVudCBmcm9tIHRoZSB0ZXN0IGNhc2UgZmlsZS4KKyAgICAgICAgICAgIERvY3VtZW50IGRvYyA9IGJ1aWxkZXIucGFyc2UoaXMsIG51bGwpOworICAgICAgICAgICAgRWxlbWVudCByb290ID0gZG9jLmdldERvY3VtZW50RWxlbWVudCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBOb2RlTGlzdCB0ZXN0Q2FzZXMgPSByb290LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZXN0LWNhc2UiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gUHJvY2VzcyBlYWNoIHRlc3QgY2FzZQorICAgICAgICAgICAgZm9yIChpbnQgbiA9IDA7IG4gPCB0ZXN0Q2FzZXMuZ2V0TGVuZ3RoKCk7IG4gKz0gMSkgeworICAgICAgICAgICAgICAgIE5vZGUgdGVzdENhc2UgPSB0ZXN0Q2FzZXMuaXRlbShuKTsKKyAgICAgICAgICAgICAgICBOYW1lZE5vZGVNYXAgYXR0cnMgPSB0ZXN0Q2FzZS5nZXRBdHRyaWJ1dGVzKCk7CisgICAgICAgICAgICAgICAgTm9kZUxpc3QgdGVzdERhdGEgID0gdGVzdENhc2UuZ2V0Q2hpbGROb2RlcygpOworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0ZXN0VGV4dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSBhdHRycy5nZXROYW1lZEl0ZW0oImlkIikuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGVuY29kaW5ncyA9IGF0dHJzLmdldE5hbWVkSXRlbSgiZW5jb2RpbmdzIikuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gQ29sbGVjdCB0aGUgdGVzdCBjYXNlIHRleHQuCisgICAgICAgICAgICAgICAgZm9yIChpbnQgdCA9IDA7IHQgPCB0ZXN0RGF0YS5nZXRMZW5ndGgoKTsgdCArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIE5vZGUgdGV4dE5vZGUgPSB0ZXN0RGF0YS5pdGVtKHQpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgdGVzdFRleHQuYXBwZW5kKHRleHROb2RlLmdldE5vZGVWYWx1ZSgpKTsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBQcm9jZXNzIHRlc3QgdGV4dCB3aXRoIGVhY2ggZW5jb2RpbmcgLyBsYW5ndWFnZSBwYWlyLgorICAgICAgICAgICAgICAgIFN0cmluZyB0ZXN0U3RyaW5nID0gdGVzdFRleHQudG9TdHJpbmcoKTsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgICAgICAgICAgU3RyaW5nW10gZW5jb2RpbmdMaXN0ID0gZW5jb2RpbmdzLnNwbGl0KCIgIik7CisvLyNlbHNlCisvLyMjICAgICAgICAgICAgICAgIFN0cmluZ1tdIGVuY29kaW5nTGlzdCA9IFV0aWxpdHkuc3BsaXQoZW5jb2RpbmdzLCAnICcpOworLy8jZW5kaWYKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IgKGludCBlID0gMDsgZSA8IGVuY29kaW5nTGlzdC5sZW5ndGg7IGUgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICBjaGVja0VuY29kaW5nKHRlc3RTdHJpbmcsIGVuY29kaW5nTGlzdFtlXSwgaWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oImV4Y2VwdGlvbiB3aGlsZSBwcm9jZXNzaW5nIHRlc3QgY2FzZXM6ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NsZHIvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NsZHIvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkYzJlZTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2xkci9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY2xkcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgY29sbGF0aW9uIGFuZCBzZWFyY2ggdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKAorICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICAgIlRlc3RDTERSVnNJQ1UiLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAiQWxsIENsZHIgVnMgSUNVIFRlc3RzIgorICAgICAgICAgICAgICApOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FID0gIkNsZHIiOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NsZHIvVGVzdENMRFJWc0lDVS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NsZHIvVGVzdENMRFJWc0lDVS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzYzYxMjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY2xkci9UZXN0Q0xEUlZzSUNVLmphdmEKQEAgLTAsMCArMSw1NjUgQEAKKy8vIyNoZWFkZXIKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IE1hcmsgRGF2aXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jbGRyOworCitpbXBvcnQgamF2YS5pby5GaWxlOworCisvL2ltcG9ydCBvcmcudW5pY29kZS5jbGRyLnV0aWwuTGFuZ3VhZ2VUYWdQYXJzZXI7CisvL2ltcG9ydCBvcmcudW5pY29kZS5jbGRyLnV0aWwuVXRpbGl0eTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CitpbXBvcnQgamF2YS5pby5TdHJpbmdXcml0ZXI7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKK2ltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKK2ltcG9ydCBqYXZhLnV0aWwucmVnZXguUGF0dGVybjsKKworaW1wb3J0IGphdmF4LnhtbC5wYXJzZXJzLlNBWFBhcnNlcjsKK2ltcG9ydCBqYXZheC54bWwucGFyc2Vycy5TQVhQYXJzZXJGYWN0b3J5OworCisvL2ltcG9ydCBvcmcudW5pY29kZS5jbGRyLnRlc3QuQ0xEUlRlc3Q7CisvL2ltcG9ydCBvcmcudW5pY29kZS5jbGRyLnRvb2wuR2VuZXJhdGVDbGRyVGVzdHM7CitpbXBvcnQgb3JnLnhtbC5zYXguQXR0cmlidXRlczsKK2ltcG9ydCBvcmcueG1sLnNheC5TQVhFeGNlcHRpb247CitpbXBvcnQgb3JnLnhtbC5zYXguaGVscGVycy5EZWZhdWx0SGFuZGxlcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3k7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbC5CYWdGb3JtYXR0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRvb2wuVU9wdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKKy8qKgorICogVGhpcyBpcyBhIGZpbGUgdGhhdCBydW5zIHRoZSBDTERSIHRlc3RzIGZvciBJQ1U0SiwgdG8gdmVyaWZ5IHRoYXQgSUNVNEogaW1wbGVtZW50cyB0aGVtCisgKiBjb3JyZWN0bHkuCisgKiBXQVJOSU5HOiAKKyAqIDEuIGZvciB0aGlzIHRvIHdvcmsgcmlnaHQsIHlvdSBoYXZlIHRvIGhhdmUgZG93bmxvYWRlZCB0aGUgQ0xEUiBkYXRhLCBhbmQKKyAqIHRoZW4gc2V0IHRoZSBDTERSIGRpcmVjdG9yeSBjb3JyZWN0bHksIHVzaW5nCisgKiAtRENMRFJfRElSRUNUT1JZPTx0b3AgbGV2ZWwgb2YgY2xkcj4KKyAqIDIuIFlvdSBwcm9iYWJseSBhbHNvIG5lZWQgdG8gaW5jcmVhc2UgbWVtb3J5LCBlZyB3aXRoIC1YbXg1MTJtCisgKiAzLiBGb3Igc3BlZWQsIHlvdSBzaG91bGQgYWxzbyB1c2UgLURDTERSX0RURF9DQUNIRT1DOlxjbGRyY2FjaGVcLCB3aGVyZQorICogQzpcY2xkcmNhY2hlXCBpcyBhIHRlbXAgZGlyZWN0b3J5IHRvIGtlZXAgdGhlIHByb2dyYW0gZnJvbSBoaXR0aW5nIHRoZSBuZXQgZm9yCisgKiBlYWNoIGZpbGUgYWNjZXNzLgorICogNC4gWW91IG1heSB1c2Ugb3RoZXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIG5hcnJvdyB3aGF0IHlvdSB0ZXN0LiBFZworICogLURYTUxfTUFUQ0g9Ii4qIiAtRFRFU1RfTUFUQ0g9InpvbmUuKiIgLURaT05FX01BVENIPSIoPyFBbWVyaWNhL0FyZ2VudGluYSkuKiIgCisgKiAgIGEuIC1EWE1MX01BVENIPSJkZS4qIiAob3Igd2hhdGV2ZXIgcmVnZXggeW91IHdhbnQpIHRvIGp1c3QKKyAqICAgdGVzdCBjZXJ0YWluIGxvY2FsZXMuCisgKiAgIGIuIC1EVEVTVF9NQVRDSD0iem9uZS4qIiAob3Igd2hhdGV2ZXIgcmVnZXggeW91IHdhbnQpIHRvIGp1c3QgdGVzdCBjb2xsYXRpb24sIG51bWJlcnMsIGV0Yy4KKyAqICAgYy4gLURaT05FX01BVENIPSIuKk1vc2Nvdy4qIiAodG8gb25seSB0ZXN0IGNlcnRhaW4gem9uZXMpCisgKiBAYXV0aG9yIG1lZGF2aXMKKyAqLworcHVibGljIGNsYXNzIFRlc3RDTERSVnNJQ1UgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgIC8vVUxvY2FsZSB1TG9jYWxlID0gVUxvY2FsZS5FTkdMSVNIOworICAgIC8vTG9jYWxlIG9Mb2NhbGUgPSBMb2NhbGUuRU5HTElTSDsgLy8gVE9ETyBEcm9wIG9uY2UgSUNVNEogaGFzIFVMb2NhbGUgZXZlcnl3aGVyZQorICAgIC8vc3RhdGljIFByaW50V3JpdGVyIGxvZzsKKyAgICBTQVhQYXJzZXIgU0FYOworICAgIHN0YXRpYyBNYXRjaGVyIExPQ0FMRV9NQVRDSCwgVEVTVF9NQVRDSCwgWk9ORV9NQVRDSDsKKyAgICBzdGF0aWMgU3RyaW5nIENMRFJfRElSRUNUT1JZOworICAgIHN0YXRpYyB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICBMT0NBTEVfTUFUQ0ggPSBnZXRFbnZpcm9ubWVudFJlZ2V4KCJYTUxfTUFUQ0giLCAiLioiKTsKKyAgICAgICAgVEVTVF9NQVRDSCA9IGdldEVudmlyb25tZW50UmVnZXgoIlRFU1RfTUFUQ0giLCAiLioiKTsKKyAgICAgICAgWk9ORV9NQVRDSCA9IGdldEVudmlyb25tZW50UmVnZXgoIlpPTkVfTUFUQ0giLCAiLioiKTsgLy8gZXhhbXBsZQorCisgICAgICAgIC8vIFdBUk5JTkc6IFRISVMgSVMgVEVNUE9SQVJZIFVOVElMIEkgR0VUIFRIRSBGSUxFUyBTVFJBSUdIVEVORUQgT1VUCisgICAgICAgIENMRFJfRElSRUNUT1JZID0gZ2V0RW52aXJvbm1lbnRTdHJpbmcoIkNMRFJfRElSRUNUT1JZIiwgIkM6XFxVbmljb2RlLUNWUzJcXGNsZHJcXCIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICB9CisgICAgCisgICAgLyoqCisJICogCisJICovCisJcHJpdmF0ZSBzdGF0aWMgTWF0Y2hlciBnZXRFbnZpcm9ubWVudFJlZ2V4KFN0cmluZyBrZXksIFN0cmluZyBkZWZhdWx0VmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIFBhdHRlcm4uY29tcGlsZShnZXRFbnZpcm9ubWVudFN0cmluZyhrZXksIGRlZmF1bHRWYWx1ZSkpLm1hdGNoZXIoIiIpOworCX0KKworCS8qKgorCSAqIAorCSAqLworCXByaXZhdGUgc3RhdGljIFN0cmluZyBnZXRFbnZpcm9ubWVudFN0cmluZyhTdHJpbmcga2V5LCBTdHJpbmcgZGVmYXVsdFZhbHVlKSB7CisJCVN0cmluZyB0ZW1wID0gU3lzdGVtLmdldFByb3BlcnR5KGtleSk7CisgICAgICAgIGlmICh0ZW1wID09IG51bGwpIHRlbXAgPSBkZWZhdWx0VmFsdWU7CisgICAgICAgIGVsc2UgU3lzdGVtLm91dC5wcmludCgiLUQiICsga2V5ICsgIj1cIiIgKyB0ZW1wICsgIlwiICIpOworCQlyZXR1cm4gdGVtcDsKKwl9CisKKwlwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgIAluZXcgVGVzdENMRFJWc0lDVSgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAgU2V0IGFsbExvY2FsZXMgPSBuZXcgVHJlZVNldCgpOworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RGaWxlcygpIHRocm93cyBTQVhFeGNlcHRpb24sIElPRXhjZXB0aW9uIHsKKyAgICAgCS8vIG9ubHkgZ2V0IElDVSdzIGxvY2FsZXMKKyAgICAgICAgU2V0IHMgPSBuZXcgVHJlZVNldCgpOworICAgICAgICBhZGRMb2NhbGVzKE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVVTG9jYWxlcygpLCBzKTsKKyAgICAgICAgYWRkTG9jYWxlcyhEYXRlRm9ybWF0LmdldEF2YWlsYWJsZVVMb2NhbGVzKCksIHMpOworICAgICAgICBhZGRMb2NhbGVzKENvbGxhdG9yLmdldEF2YWlsYWJsZVVMb2NhbGVzKCksIHMpOworICAgICAgICAKKyAgICAgICAgLy8gZmlsdGVyLCB0byBtYWtlIHRyYWNraW5nIGRvd24gYnVncyBlYXNpZXIKKyAgICAgICAgCisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBzLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgCVN0cmluZyBsb2NhbGUgPSAoU3RyaW5nKWl0Lm5leHQoKTsKKyAgICAgICAgCWlmICghTE9DQUxFX01BVENILnJlc2V0KGxvY2FsZSkubWF0Y2hlcygpKSBjb250aW51ZTsKKyAgICAgICAgICAgIF90ZXN0KGxvY2FsZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYWRkTG9jYWxlcyhVTG9jYWxlW10gbGlzdCwgQ29sbGVjdGlvbiBzKSB7CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkgeworICAgIAkJYWxsTG9jYWxlcy5hZGQobGlzdFtpXS50b1N0cmluZygpKTsKKyAgICAJCXMuYWRkKGxpc3RbaV0uZ2V0TGFuZ3VhZ2UoKSk7CisgICAgCX0KKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZShVTG9jYWxlIHVMb2NhbGUpIHsKKyAgICAJU3RyaW5nIHJlc3VsdCA9IHVMb2NhbGUuZ2V0TGFuZ3VhZ2UoKTsKKyAgICAJU3RyaW5nIHNjcmlwdCA9IHVMb2NhbGUuZ2V0U2NyaXB0KCk7CisgICAgCWlmIChzY3JpcHQubGVuZ3RoKCkgIT0gMCkgcmVzdWx0ICs9ICJfIiArIHNjcmlwdDsKKyAgICAJcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBfdGVzdChTdHJpbmcgbG9jYWxlTmFtZSkgdGhyb3dzIFNBWEV4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworICAgICAgICAvL3VMb2NhbGUgPSBuZXcgVUxvY2FsZShsb2NhbGVOYW1lKTsKKyAgICAgICAgLy9vTG9jYWxlID0gdUxvY2FsZS50b0xvY2FsZSgpOworCisJCQlGaWxlIGYgPSBuZXcgRmlsZShDTERSX0RJUkVDVE9SWSArICJjb21tb25cXHRlc3RcXCIrIGxvY2FsZU5hbWUgKyAiLnhtbCIpOworCQkJbG9nbG4oIlRlc3RpbmcgIiArIGYuZ2V0Q2Fub25pY2FsUGF0aCgpKTsKKwkJCVNBWC5wYXJzZShmLCBERUZBVUxUX0hBTkRMRVIpOworICAgIH0KKworICAgIHN0YXRpYyBUcmFuc2xpdGVyYXRvciB0b1VuaWNvZGUgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiYW55LWhleCIpOworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIHNob3dTdHJpbmcoU3RyaW5nIGluKSB7CisgICAgICAgIHJldHVybiAiXHUwMEFCIiArIGluICsgIlx1MDBCQiAoIiArIHRvVW5pY29kZS50cmFuc2xpdGVyYXRlKGluKSArICIpIjsKKyAgICB9CisgICAgLy8gPT09PT09PT09PT09IFNBWCBIYW5kbGVyIEluZnJhc3RydWN0dXJlID09PT09PT09PT09PQorCisgICAgYWJzdHJhY3QgcHVibGljIGNsYXNzIEhhbmRsZXIgeworICAgICAgICBNYXAgc2V0dGluZ3MgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgTGlzdCBjdXJyZW50TG9jYWxlcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgaW50IGZhaWx1cmVzID0gMDsKKworICAgICAgICB2b2lkIHNldE5hbWUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIH0KKyAgICAgICAgdm9pZCBzZXQoU3RyaW5nIGF0dHJpYnV0ZU5hbWUsIFN0cmluZyBhdHRyaWJ1dGVWYWx1ZSkgeworICAgICAgICAgICAgLy9pZiAoREVCVUcpIGxvZ2xuKGF0dHJpYnV0ZU5hbWUgKyAiID0+ICIgKyBhdHRyaWJ1dGVWYWx1ZSk7CisgICAgICAgICAgICBzZXR0aW5ncy5wdXQoYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlVmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZvaWQgY2hlY2tSZXN1bHQoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgICAgICBpZiAoInRydWUiLmVxdWFscyhzZXR0aW5ncy5nZXQoImRyYWZ0IikpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBza2lwIGRyYWZ0CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgCWludCB4ID0gMTsgLy8gZm9yIGRlYnVnIHN0b3BwaW5nCisgICAgICAgICAgICB9CisgICAgICAgIAlVTG9jYWxlIHVsID0gbmV3IFVMb2NhbGUoInh4Iik7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY3VycmVudExvY2FsZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgdWwgPSAoVUxvY2FsZSljdXJyZW50TG9jYWxlcy5nZXQoaSk7CisgICAgICAgICAgICAgICAgICAgIC8vbG9nbG5TQVgoIiAgQ2hlY2tpbmcgIiArIHVsICsgIigiICsgdWwuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5FTkdMSVNIKSArICIpIiArICIgZm9yICIgKyBuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlUmVzdWx0KHVsLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChmYWlsdXJlcyAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiXHRUb3RhbCBGYWlsdXJlczogIiArIGZhaWx1cmVzICsgIlx0IiArIHVsICsgIigiICsgdWwuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5FTkdMSVNIKSArICIpIik7CisgICAgICAgICAgICAgICAgICAgICAgICBmYWlsdXJlcyA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgCVN0cmluZ1dyaXRlciBzdyA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKKyAgICAgICAgICAgIAlQcmludFdyaXRlciBwdyA9IG5ldyBQcmludFdyaXRlcihzdyk7CisgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UocHcpOworICAgICAgICAgICAgICAgIHB3LmZsdXNoKCk7CisgICAgICAgICAgICAgICAgZXJybG4oIkV4Y2VwdGlvbjogTG9jYWxlOiAiICsgdWwgKyAiLFx0VmFsdWU6IDwiICsgdmFsdWUgKyAiPlxyXG4iICsgc3cudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgbG9nbG5TQVgoU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gbWVzc2FnZSArICJcdFsiICsgbmFtZTsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBzZXR0aW5ncy5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGF0dHJpYnV0ZU5hbWUgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGF0dHJpYnV0ZVZhbHVlID0gKFN0cmluZykgc2V0dGluZ3MuZ2V0KGF0dHJpYnV0ZU5hbWUpOworICAgICAgICAgICAgICAgIHRlbXAgKz0gIiAiICsgYXR0cmlidXRlTmFtZSArICI9PCIgKyBhdHRyaWJ1dGVWYWx1ZSArICI+IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKHRlbXAgKyAiXSIpOworICAgICAgICB9CisgICAgICAgIGludCBsb29rdXBWYWx1ZShPYmplY3QgeCwgT2JqZWN0W10gbGlzdCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHguZXF1YWxzKGxpc3RbaV0pKSByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuU0FYKCJVbmtub3duIFN0cmluZzogIiArIHgpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGFic3RyYWN0IHZvaWQgaGFuZGxlUmVzdWx0KFVMb2NhbGUgY3VycmVudExvY2FsZSwgU3RyaW5nIHZhbHVlKSB0aHJvd3MgRXhjZXB0aW9uOworICAgICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIGF0dHJpYnV0ZXMKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldEF0dHJpYnV0ZXMoQXR0cmlidXRlcyBhdHRyaWJ1dGVzKSB7CisgICAgICAgICAgICBTdHJpbmcgbG9jYWxlTGlzdCA9IGF0dHJpYnV0ZXMuZ2V0VmFsdWUoImxvY2FsZXMiKTsKKyAgICAgICAgICAgIFN0cmluZ1tdIGN1cnJlbnRMb2NhbGVTdHJpbmcgPSBuZXcgU3RyaW5nWzUwXTsKKyAgICAgICAgICAgIGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eS5zcGxpdChsb2NhbGVMaXN0LCAnICcsIGN1cnJlbnRMb2NhbGVTdHJpbmcpOworICAgICAgICAgICAgY3VycmVudExvY2FsZXMuY2xlYXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY3VycmVudExvY2FsZVN0cmluZy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50TG9jYWxlU3RyaW5nW2ldLmxlbmd0aCgpID09IDApIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChhbGxMb2NhbGVzLmNvbnRhaW5zKCIiKSkgeworICAgICAgICAgICAgICAgIAlsb2dsbigiU2tpcHBpbmcgbG9jYWxlLCBub3QgaW4gSUNVNEo6ICIgKyBjdXJyZW50TG9jYWxlU3RyaW5nW2ldKTsKKyAgICAgICAgICAgICAgICAJY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGN1cnJlbnRMb2NhbGVzLmFkZChuZXcgVUxvY2FsZShjdXJyZW50TG9jYWxlU3RyaW5nW2ldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoREVCVUcpIGxvZ2xuKCJTZXR0aW5nIGxvY2FsZXM6ICIgKyBjdXJyZW50TG9jYWxlcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgSGFuZGxlciBnZXRIYW5kbGVyKFN0cmluZyBuYW1lLCBBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpIHsKKyAgICAgICAgaWYgKERFQlVHKSBsb2dsbigiQ3JlYXRpbmcgSGFuZGxlcjogIiArIG5hbWUpOworICAgICAgICBIYW5kbGVyIHJlc3VsdCA9IChIYW5kbGVyKSBSZWdpc3RlcmVkSGFuZGxlcnMuZ2V0KG5hbWUpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIGxvZ2xuKCJVbmV4cGVjdGVkIHRlc3QgdHlwZTogIiArIG5hbWUpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdC5zZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkSGFuZGxlcihTdHJpbmcgbmFtZSwgSGFuZGxlciBoYW5kbGVyKSB7CisgICAgICAgIGlmICghVEVTVF9NQVRDSC5yZXNldChuYW1lKS5tYXRjaGVzKCkpIGhhbmRsZXIgPSBuZXcgTnVsbEhhbmRsZXIoKTsKKyAgICAgICAgaGFuZGxlci5zZXROYW1lKG5hbWUpOworICAgICAgICBSZWdpc3RlcmVkSGFuZGxlcnMucHV0KG5hbWUsIGhhbmRsZXIpOworICAgIH0KKyAgICBNYXAgUmVnaXN0ZXJlZEhhbmRsZXJzID0gbmV3IEhhc2hNYXAoKTsKKyAgICAKKyAgICBjbGFzcyBOdWxsSGFuZGxlciBleHRlbmRzIEhhbmRsZXIgeworCQl2b2lkIGhhbmRsZVJlc3VsdChVTG9jYWxlIGN1cnJlbnRMb2NhbGUsIFN0cmluZyB2YWx1ZSkgdGhyb3dzIEV4Y2VwdGlvbiB7fSAgICAgICAgCisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09IFN0YXRpY3MgZm9yIERhdGUvTnVtYmVyIFN1cHBvcnQgPT09PT09PT09PT09CisKKyAgICBzdGF0aWMgVGltZVpvbmUgdXRjID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpOworICAgIHN0YXRpYyBEYXRlRm9ybWF0IGlzbyA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5LU1NLWRkJ1QnSEg6bW06c3MnWiciKTsKKyAgICB7CisgICAgICAgIGlzby5zZXRUaW1lWm9uZSh1dGMpOworICAgIH0KKyAgICBzdGF0aWMgaW50W10gRGF0ZUZvcm1hdFZhbHVlcyA9IHstMSwgRGF0ZUZvcm1hdC5TSE9SVCwgRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5GVUxMfTsKKyAgICBzdGF0aWMgU3RyaW5nW10gRGF0ZUZvcm1hdE5hbWVzID0geyJub25lIiwgInNob3J0IiwgIm1lZGl1bSIsICJsb25nIiwgImZ1bGwifTsKKworICAgIHN0YXRpYyBTdHJpbmdbXSBOdW1iZXJOYW1lcyA9IHsic3RhbmRhcmQiLCAiaW50ZWdlciIsICJkZWNpbWFsIiwgInBlcmNlbnQiLCAic2NpZW50aWZpYyIsICJHQlAifTsKKworCisgICAgLy8gPT09PT09PT09PT09IEhhbmRsZXIgZm9yIENvbGxhdGlvbiA9PT09PT09PT09PT0gCisgICAgc3RhdGljIFVuaWNvZGVTZXQgY29udHJvbHNBbmRTcGFjZSA9IG5ldyBVbmljb2RlU2V0KCJbOmNjOl0iKTsKKyAgICAKKyAgICBzdGF0aWMgU3RyaW5nIHJlbW92ZShTdHJpbmcgaW4sIFVuaWNvZGVTZXQgdG9SZW1vdmUpIHsKKyAgICAJaW50IGNwOworICAgIAlTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgIAlmb3IgKGludCBpID0gMDsgaSA8IGluLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAJCWNwID0gVVRGMTYuY2hhckF0KGluLCBpKTsKKyAgICAJCWlmICghdG9SZW1vdmUuY29udGFpbnMoY3ApKSBVVEYxNi5hcHBlbmQocmVzdWx0LCBjcCk7CisgICAgCX0KKyAgICAJcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIHsKKwkJYWRkSGFuZGxlcigiY29sbGF0aW9uIiwgbmV3IEhhbmRsZXIoKSB7CisJCQlwdWJsaWMgdm9pZCBoYW5kbGVSZXN1bHQoVUxvY2FsZSBjdXJyZW50TG9jYWxlLCBTdHJpbmcgdmFsdWUpIHsKKwkJCQlDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShjdXJyZW50TG9jYWxlKTsKKwkJCQlTdHJpbmcgbGFzdExpbmUgPSAiIjsKKwkJCQlpbnQgY291bnQgPSAwOworCQkJCWZvciAoaW50IHBvcyA9IDA7IHBvcyA8IHZhbHVlLmxlbmd0aCgpOykgeworCQkJCQlpbnQgbmV4dFBvcyA9IHZhbHVlLmluZGV4T2YoJ1xuJywgcG9zKTsKKwkJCQkJaWYgKG5leHRQb3MgPCAwKQorCQkJCQkJbmV4dFBvcyA9IHZhbHVlLmxlbmd0aCgpOworCQkJCQlTdHJpbmcgbGluZSA9IHZhbHVlLnN1YnN0cmluZyhwb3MsIG5leHRQb3MpOworCQkJCQlsaW5lID0gcmVtb3ZlKGxpbmUsIGNvbnRyb2xzQW5kU3BhY2UpOyAvLyBIQUNLIGZvciBTQVgKKwkJCQkJaWYgKGxpbmUudHJpbSgpLmxlbmd0aCgpICE9IDApIHsgLy8gSEFDSyBmb3IgU0FYCisJCQkJCQlpbnQgY29tcCA9IGNvbC5jb21wYXJlKGxhc3RMaW5lLCBsaW5lKTsKKwkJCQkJCWlmIChjb21wID4gMCkgeworCQkJCQkJCWZhaWx1cmVzKys7CisJCQkJCQkJZXJybG4oIlx0TGluZSAiICsgKGNvdW50ICsgMSkgKyAiXHRGYWlsdXJlOiAiCisJCQkJCQkJCQkrIHNob3dTdHJpbmcobGFzdExpbmUpICsgIiBzaG91bGQgYmUgbGVxICIKKwkJCQkJCQkJCSsgc2hvd1N0cmluZyhsaW5lKSk7CisJCQkJCQl9IGVsc2UgaWYgKERFQlVHKSB7CisJCQkJCQkJbG9nbG4oIk9LOiAiICsgbGluZSk7CisJCQkJCQl9CisJCQkJCQlsYXN0TGluZSA9IGxpbmU7CisJCQkJCX0KKwkJCQkJcG9zID0gbmV4dFBvcyArIDE7CisJCQkJCWNvdW50Kys7CisJCQkJfQorCQkJfQorCQl9KTsKKyAgICAgICAgCisgICAgICAgIC8vID09PT09PT09PT09PSBIYW5kbGVyIGZvciBOdW1iZXJzID09PT09PT09PT09PSAKKwkJYWRkSGFuZGxlcigibnVtYmVyIiwgbmV3IEhhbmRsZXIoKSB7CisJCQlwdWJsaWMgdm9pZCBoYW5kbGVSZXN1bHQoVUxvY2FsZSBsb2NhbGUsIFN0cmluZyByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQgbmYgPSBudWxsOworICAgICAgICAgICAgICAgIGRvdWJsZSB2ID0gRG91YmxlLk5hTjsKKyAgICAgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gc2V0dGluZ3Mua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYXR0cmlidXRlTmFtZSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGF0dHJpYnV0ZVZhbHVlID0gKFN0cmluZykgc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KGF0dHJpYnV0ZU5hbWUpOworICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlTmFtZS5lcXVhbHMoImlucHV0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYgPSBEb3VibGUucGFyc2VEb3VibGUoYXR0cmlidXRlVmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gbXVzdCBiZSBlaXRoZXIgbnVtYmVyVHlwZSBhdCB0aGlzIHBvaW50CisgICAgICAgICAgICAgICAgICAgIGludCBpbmRleCA9IGxvb2t1cFZhbHVlKGF0dHJpYnV0ZVZhbHVlLCBOdW1iZXJOYW1lcyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgbG9nbG4oIkdldHRpbmcgbnVtYmVyIGZvcm1hdCBmb3IgIiArIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaChpbmRleCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZSk7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6IG5mID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShsb2NhbGUpOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAyOiBuZiA9IE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZShsb2NhbGUpOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAzOiBuZiA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UobG9jYWxlKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgNDogbmYgPSBOdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKGxvY2FsZSk7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBuZiA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZSk7IAorICAgICAgICAgICAgICAgICAgICAJbmYuc2V0Q3VycmVuY3koQ3VycmVuY3kuZ2V0SW5zdGFuY2UoYXR0cmlidXRlVmFsdWUpKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBuZi5mb3JtYXQodikudHJpbSgpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQudHJpbSgpOyAvLyBIQUNLIGJlY2F1c2Ugb2YgU0FYCisgICAgICAgICAgICAgICAgICAgIGlmICghdGVtcC5lcXVhbHMocmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIk51bWJlcjogTG9jYWxlOiAiICsgbG9jYWxlCisgICAgICAgICAgICAgICAgICAgICAgICAJCSsgIiwgXHRUeXBlOiAiICsgYXR0cmlidXRlVmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBcdERyYWZ0OiAiICsgc2V0dGluZ3MuZ2V0KCJkcmFmdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAJCSsgIiwgXHRDTERSOiA8IiArIHJlc3VsdCArICI+LCBJQ1U6IDwiICsgdGVtcCArICI+Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gPT09PT09PT09PT09IEhhbmRsZXIgZm9yIERhdGVzID09PT09PT09PT09PQorICAgICAgICBhZGRIYW5kbGVyKCJkYXRlIiwgbmV3IEhhbmRsZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBoYW5kbGVSZXN1bHQoVUxvY2FsZSBsb2NhbGUsIFN0cmluZyByZXN1bHQpIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgICAgICAgICAgaW50IGRhdGVGb3JtYXQgPSAwOworICAgICAgICAgICAgICAgIGludCB0aW1lRm9ybWF0ID0gMDsKKyAgICAgICAgICAgICAgICBEYXRlIGRhdGUgPSBuZXcgRGF0ZSgpOworICAgICAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBzZXR0aW5ncy5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhdHRyaWJ1dGVOYW1lID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYXR0cmlidXRlVmFsdWUgPSAoU3RyaW5nKSBzZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoYXR0cmlidXRlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVOYW1lLmVxdWFscygiaW5wdXQiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSA9IGlzby5wYXJzZShhdHRyaWJ1dGVWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBtdXN0IGJlIGVpdGhlciBkYXRlVHlwZSBvciB0aW1lVHlwZSBhdCB0aGlzIHBvaW50CisgICAgICAgICAgICAgICAgICAgIGludCBpbmRleCA9IGxvb2t1cFZhbHVlKGF0dHJpYnV0ZVZhbHVlLCBEYXRlRm9ybWF0TmFtZXMpOworICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlTmFtZS5lcXVhbHMoImRhdGVUeXBlIikpCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ID0gaW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVGb3JtYXQgPSBpbmRleDsKKworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGR0ID0gZ2V0RGF0ZUZvcm1hdChsb2NhbGUsIGRhdGVGb3JtYXQsIHRpbWVGb3JtYXQpOworICAgICAgICAgICAgICAgIGR0LnNldFRpbWVab25lKHV0Yyk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBkdC5mb3JtYXQoZGF0ZSkudHJpbSgpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC50cmltKCk7IC8vIEhBQ0sgYmVjYXVzZSBvZiBTQVgKKyAgICAgICAgICAgICAgICBpZiAoIXRlbXAuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRhdGVUaW1lOiBMb2NhbGU6ICIgKyBsb2NhbGUgCisgICAgICAgICAgICAgICAgICAgIAkJKyAiLCBcdERhdGU6ICIgKyBEYXRlRm9ybWF0TmFtZXNbZGF0ZUZvcm1hdF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIFx0VGltZTogIiArIERhdGVGb3JtYXROYW1lc1t0aW1lRm9ybWF0XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgXHREcmFmdDogIiArIHNldHRpbmdzLmdldCgiZHJhZnQiKQorICAgICAgICAgICAgICAgICAgICAJCSsgIiwgXHRDTERSOiA8IiArIHJlc3VsdCArICI+LCBJQ1U6IDwiICsgdGVtcCArICI+Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisJCQkvKioKKwkJCSAqIAorCQkJICovCisJCQlwcml2YXRlIFNpbXBsZURhdGVGb3JtYXQgZ2V0RGF0ZUZvcm1hdChVTG9jYWxlIGxvY2FsZSwgaW50IGRhdGVGb3JtYXQsIGludCB0aW1lRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBsb2dsbigiR2V0dGluZyBkYXRlL3RpbWUgZm9ybWF0IGZvciAiICsgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICBpZiAoREVCVUcgJiYgImFyX0VHIi5lcXVhbHMobG9jYWxlLnRvU3RyaW5nKCkpKSB7CisgICAgICAgICAgICAgICAgCVN5c3RlbS5vdXQucHJpbnRsbigiZGVidWcgaGVyZSIpOworICAgICAgICAgICAgICAgIH0KKwkJCQlEYXRlRm9ybWF0IGR0OworCQkJCWlmIChkYXRlRm9ybWF0ID09IDApIHsKKwkJCQkJZHQgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0VmFsdWVzW3RpbWVGb3JtYXRdLCBsb2NhbGUpOworCQkJCQlpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnQoImdldFRpbWVJbnN0YW5jZSIpOworCQkJCX0gZWxzZSBpZiAodGltZUZvcm1hdCA9PSAwKSB7CisJCQkJCWR0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdFZhbHVlc1tkYXRlRm9ybWF0XSwgbG9jYWxlKTsKKwkJCQkJaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50KCJnZXREYXRlSW5zdGFuY2UiKTsKKwkJCQl9IGVsc2UgeworICAgICAgICAgICAgICAgIAlkdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0VmFsdWVzW2RhdGVGb3JtYXRdLCBEYXRlRm9ybWF0VmFsdWVzW3RpbWVGb3JtYXRdLCBsb2NhbGUpOworICAgICAgICAgICAgICAgIAlpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnQoImdldERhdGVUaW1lSW5zdGFuY2UiKTsKKwkJCQl9CisJCQkJaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlx0aW5wdXQ6XHQiICsgZGF0ZUZvcm1hdCArICIsICIgKyB0aW1lRm9ybWF0ICsgIiA9PiAiICsgKChTaW1wbGVEYXRlRm9ybWF0KWR0KS50b1BhdHRlcm4oKSk7CisJCQkJcmV0dXJuIChTaW1wbGVEYXRlRm9ybWF0KWR0OworCQkJfQorICAgICAgICB9KTsKKworICAgICAgICAvLyA9PT09PT09PT09PT0gSGFuZGxlciBmb3IgWm9uZXMgPT09PT09PT09PT09CisgICAgICAgIGFkZEhhbmRsZXIoInpvbmVGaWVsZHMiLCBuZXcgSGFuZGxlcigpIHsKKyAgICAgICAgICAgIFN0cmluZyBkYXRlID0gIiI7CisgICAgICAgICAgICBTdHJpbmcgem9uZSA9ICIiOworICAgICAgICAgICAgU3RyaW5nIHBhcnNlID0gIiI7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICIiOworICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBoYW5kbGVSZXN1bHQoVUxvY2FsZSBsb2NhbGUsIFN0cmluZyByZXN1bHQpIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IHNldHRpbmdzLmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGF0dHJpYnV0ZU5hbWUgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhdHRyaWJ1dGVWYWx1ZSA9IChTdHJpbmcpIHNldHRpbmdzLmdldChhdHRyaWJ1dGVOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWUuZXF1YWxzKCJkYXRlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGUgPSBhdHRyaWJ1dGVWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lLmVxdWFscygiZmllbGQiKSkgeworICAgICAgICAgICAgICAgICAgICAJcGF0dGVybiA9IGF0dHJpYnV0ZVZhbHVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZU5hbWUuZXF1YWxzKCJ6b25lIikpIHsKKyAgICAgICAgICAgICAgICAgICAgCXpvbmUgPSBhdHRyaWJ1dGVWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lLmVxdWFscygicGFyc2UiKSkgeworICAgICAgICAgICAgICAgICAgICAJcGFyc2UgPSBhdHRyaWJ1dGVWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIVpPTkVfTUFUQ0gucmVzZXQoem9uZSkubWF0Y2hlcygpKSByZXR1cm47CisgICAgICAgICAgICAgICAgRGF0ZSBkYXRlVmFsdWUgPSBpc28ucGFyc2UoZGF0ZSk7CisgICAgICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmaWVsZCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4sIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgZmllbGQuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoem9uZSkpOworICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gZmllbGQuZm9ybWF0KGRhdGVWYWx1ZSkudHJpbSgpOworICAgICAgICAgICAgICAgIC8vIFNLSVAgUEFSU0UgRk9SIE5PVworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC50cmltKCk7IC8vIEhBQ0sgYmVjYXVzZSBvZiBTQVgKKyAgICAgICAgICAgICAgICBpZiAoIXRlbXAuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcCA9IGZpZWxkLmZvcm1hdChkYXRlVmFsdWUpLnRyaW0oKTsgLy8gY2FsbCBhZ2FpbiBmb3IgZGVidWdnaW5nCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJab25lIEZvcm1hdDogTG9jYWxlOiAiICsgbG9jYWxlIAorICAgICAgICAgICAgICAgICAgICAJCSsgIiwgXHRab25lOiAiICsgem9uZQorICAgICAgICAgICAgICAgICAgICAJCSsgIiwgXHREYXRlOiAiICsgZGF0ZQorCQkJCQkJCSsgIiwgXHRGaWVsZDogIiArIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIFx0RHJhZnQ6ICIgKyBzZXR0aW5ncy5nZXQoImRyYWZ0IikKKyAgICAgICAgICAgICAgICAgICAgCQkrICIsIFx0Q0xEUjogPCIgKyByZXN1bHQKKwkJCQkJCQkrICI+LCBcdElDVTogPCIgKyB0ZW1wICsgIj4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIC8vID09PT09PT09PT09PSBHb3JwIGZvciBTQVggPT09PT09PT09PT09CisKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTQVhQYXJzZXJGYWN0b3J5IGZhY3RvcnkgPSBTQVhQYXJzZXJGYWN0b3J5Lm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICBmYWN0b3J5LnNldFZhbGlkYXRpbmcodHJ1ZSk7CisgICAgICAgICAgICBTQVggPSBmYWN0b3J5Lm5ld1NBWFBhcnNlcigpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiY2FuJ3Qgc3RhcnQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIERlZmF1bHRIYW5kbGVyIERFRkFVTFRfSEFORExFUiA9IG5ldyBEZWZhdWx0SGFuZGxlcigpIHsKKyAgICAgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGxhc3RDaGFycyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYm9vbGVhbiBqdXN0UG9wcGVkID0gZmFsc2U7CisgICAgICAgIEhhbmRsZXIgaGFuZGxlcjsKKworICAgICAgICBwdWJsaWMgdm9pZCBzdGFydEVsZW1lbnQoCisgICAgICAgICAgICBTdHJpbmcgdXJpLAorICAgICAgICAgICAgU3RyaW5nIGxvY2FsTmFtZSwKKyAgICAgICAgICAgIFN0cmluZyBxTmFtZSwKKyAgICAgICAgICAgIEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKKyAgICAgICAgICAgIHRocm93cyBTQVhFeGNlcHRpb24geworICAgICAgICAgICAgICAgIC8vZGF0YS5wdXQobmV3IENvbnRleHRTdGFjayhjb250ZXh0U3RhY2spLCBsYXN0Q2hhcnMpOworICAgICAgICAgICAgICAgIC8vbGFzdENoYXJzID0gIiI7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHFOYW1lLmVxdWFscygiY2xkclRlc3QiKSkgeworICAgICAgICAgICAgICAgICAgICAgLy8gc2tpcAorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHFOYW1lLmVxdWFscygicmVzdWx0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXR0cmlidXRlcy5nZXRMZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlci5zZXQoYXR0cmlidXRlcy5nZXRRTmFtZShpKSwgYXR0cmlidXRlcy5nZXRWYWx1ZShpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyID0gZ2V0SGFuZGxlcihxTmFtZSwgYXR0cmlidXRlcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAvL2hhbmRsZXIuc2V0KCJsb2NhbGUiLCB1TG9jYWxlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vaWYgKERFQlVHKSBsb2dsbigic3RhcnRFbGVtZW50Olx0IiArIGNvbnRleHRTdGFjayk7CisgICAgICAgICAgICAgICAgICAgIGp1c3RQb3BwZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgZW5kRWxlbWVudChTdHJpbmcgdXJpLCBTdHJpbmcgbG9jYWxOYW1lLCBTdHJpbmcgcU5hbWUpCisgICAgICAgICAgICB0aHJvd3MgU0FYRXhjZXB0aW9uIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAvL2lmIChERUJVRykgbG9nbG4oImVuZEVsZW1lbnQ6XHQiICsgY29udGV4dFN0YWNrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHFOYW1lLmVxdWFscygicmVzdWx0IikpIGhhbmRsZXIuY2hlY2tSZXN1bHQobGFzdENoYXJzLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChxTmFtZS5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvL2xvZ2xuKCJVbmV4cGVjdGVkIGNvbnRlbnRzIG9mOiAiICsgcU5hbWUgKyAiLCA8IiArIGxhc3RDaGFycyArICI+Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbGFzdENoYXJzLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAganVzdFBvcHBlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAvLyBIYXZlIHRvIGhhY2sgYXJvdW5kIHRoZSBmYWN0IHRoYXQgdGhlIGNoYXJhY3RlciBkYXRhIG1pZ2h0IGJlIGluIHBpZWNlcworICAgICAgICBwdWJsaWMgdm9pZCBjaGFyYWN0ZXJzKGNoYXJbXSBjaCwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoKQorICAgICAgICAgICAgdGhyb3dzIFNBWEV4Y2VwdGlvbiB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gbmV3IFN0cmluZyhjaCxzdGFydCxsZW5ndGgpOworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIGxvZ2xuKCJjaGFyYWN0ZXJzOlx0IiArIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgbGFzdENoYXJzLmFwcGVuZCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGp1c3RQb3BwZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgLy8ganVzdCBmb3IgZGVidWdnaW5nCisKKyAgICAgICAgcHVibGljIHZvaWQgbm90YXRpb25EZWNsIChTdHJpbmcgbmFtZSwgU3RyaW5nIHB1YmxpY0lkLCBTdHJpbmcgc3lzdGVtSWQpCisgICAgICAgIHRocm93cyBTQVhFeGNlcHRpb24geworICAgICAgICAgICAgbG9nbG4oIm5vdGF0aW9uRGVjbDogIiArIG5hbWUKKyAgICAgICAgICAgICsgIiwgIiArIHB1YmxpY0lkCisgICAgICAgICAgICArICIsICIgKyBzeXN0ZW1JZAorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHByb2Nlc3NpbmdJbnN0cnVjdGlvbiAoU3RyaW5nIHRhcmdldCwgU3RyaW5nIGRhdGEpCisgICAgICAgIHRocm93cyBTQVhFeGNlcHRpb24geworICAgICAgICAgICAgbG9nbG4oInByb2Nlc3NpbmdJbnN0cnVjdGlvbjogIiArIHRhcmdldCArICIsICIgKyBkYXRhKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNraXBwZWRFbnRpdHkgKFN0cmluZyBuYW1lKQorICAgICAgICB0aHJvd3MgU0FYRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJza2lwcGVkRW50aXR5OiAiICsgbmFtZQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHVucGFyc2VkRW50aXR5RGVjbCAoU3RyaW5nIG5hbWUsIFN0cmluZyBwdWJsaWNJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzeXN0ZW1JZCwgU3RyaW5nIG5vdGF0aW9uTmFtZSkKKyAgICAgICAgdGhyb3dzIFNBWEV4Y2VwdGlvbiB7CisgICAgICAgICAgICBsb2dsbigidW5wYXJzZWRFbnRpdHlEZWNsOiAiICsgbmFtZQorICAgICAgICAgICAgKyAiLCAiICsgcHVibGljSWQKKyAgICAgICAgICAgICsgIiwgIiArIHN5c3RlbUlkCisgICAgICAgICAgICArICIsICIgKyBub3RhdGlvbk5hbWUKKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgIH07Cit9CisvLyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkFQSVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25BUElUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZjZjg4OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25BUElUZXN0LmphdmEKQEAgLTAsMCArMSwxMTQ1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogY29sbGF0ZS9Db2xsYXRpb25BUElUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9hcGljb2xsLmNwcAorICoqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25BUElUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uQVBJVGVzdCgpLnJ1bihhcmdzKTsKKyAgICAgICAgLy9uZXcgQ29sbGF0aW9uQVBJVGVzdCgpLlRlc3RHZXRUYWlsb3JlZFNldCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIHRlc3RzIHRoZSBjb2xsYXRpb24ga2V5IHJlbGF0ZWQgQVBJcy4KKyAgICAgKiAtIGNvbnN0cnVjdG9yL2Rlc3RydWN0b3IKKyAgICAgKiAtIENvbGxhdG9yLmdldENvbGxhdGlvbktleQorICAgICAqIC0gPT0gYW5kICE9IG9wZXJhdG9ycworICAgICAqIC0gY29tcGFyaXNvbiBiZXR3ZWVuIGNvbGxhdGlvbiBrZXlzCisgICAgICogLSBjcmVhdGluZyBjb2xsYXRpb24ga2V5IHdpdGggYSBieXRlIGFycmF5IGFuZCB2aWNlIHZlcnNhCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvbGxhdGlvbktleSgpIHsKKyAgICAgICAgbG9nbG4oInRlc3RpbmcgQ29sbGF0aW9uS2V5IGJlZ2lucy4uLiIpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgIAorICAgICAgICBTdHJpbmcgdGVzdDEgPSAiQWJjZGEiOworICAgICAgICBTdHJpbmcgdGVzdDIgPSAiYWJjZGEiOworICAgIAorICAgICAgICBsb2dsbigiVGVzdGluZyB3ZWlyZCBhcmd1bWVudHMiKTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRrMSA9IGNvbC5nZXRDb2xsYXRpb25LZXkoIiIpOworICAgICAgICAvLyBrZXkgZ2V0cyByZXNldCBoZXJlCisgICAgICAgIGJ5dGVbXSBieXRlcyA9IHNvcnRrMS50b0J5dGVBcnJheSgpOworICAgICAgICBkb0Fzc2VydChieXRlcy5sZW5ndGggPT0gMyAmJiBieXRlc1swXSA9PSAxICYmIGJ5dGVzWzFdID09IDEgCisgICAgICAgICAgICAgICAgICYmIGJ5dGVzWzJdID09IDAsIAorICAgICAgICAgICAgICAgICAiRW1wdHkgc3RyaW5nIHNob3VsZCByZXR1cm4gYW4gZW1wdHkgY29sbGF0aW9uIGtleSIpOworICAgICAgICAvLyBib2d1cyBrZXkgcmV0dXJuZWQgaGVyZQorICAgICAgICBzb3J0azEgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KG51bGwpOworICAgICAgICBkb0Fzc2VydChzb3J0azEgPT0gbnVsbCwgIkVycm9yIGNvZGUgc2hvdWxkIHJldHVybiBib2d1cyBjb2xsYXRpb24ga2V5Iik7CisKKyAgICAgICAgbG9nbG4oIlVzZSB0ZXJ0aWFyeSBjb21wYXJpc29uIGxldmVsIHRlc3RpbmcgLi4uLiIpOworICAgICAgICBzb3J0azEgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3QxKTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRrMiA9IGNvbC5nZXRDb2xsYXRpb25LZXkodGVzdDIpOworICAgICAgICBPYmplY3Qgc29ydGszID0gc29ydGsyOworICAgICAgICBkb0Fzc2VydCgoc29ydGsxLmNvbXBhcmVUbyhzb3J0azIpKSA+IDAgCisgICAgICAgICAgICAgICAgICYmIChzb3J0azEuY29tcGFyZVRvKHNvcnRrMykpID4gMCwgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiID4+PiBcImFiY2RhXCIiKTsKKyAgICAKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRrTmV3OworICAgICAgICBzb3J0a05ldyA9IHNvcnRrMTsKKyAgICAgICAgZG9Bc3NlcnQoIShzb3J0azEuZXF1YWxzKHNvcnRrMikpICYmICEoc29ydGsxLmVxdWFscyhzb3J0azMpKSwgCisgICAgICAgICAgICAgICAgICJUaGUgc29ydCBrZXlzIHNob3VsZCBiZSBkaWZmZXJlbnQiKTsKKyAgICAgICAgZG9Bc3NlcnQoKHNvcnRrMS5oYXNoQ29kZSgpICE9IHNvcnRrMi5oYXNoQ29kZSgpKSwgInNvcnQga2V5IGhhc2hDb2RlKCkgZmFpbGVkIik7CisgICAgICAgIGRvQXNzZXJ0KChzb3J0azEuZXF1YWxzKHNvcnRrTmV3KSksICJUaGUgc29ydCBrZXlzIGFzc2lnbm1lbnQgZmFpbGVkIik7CisgICAgICAgIGRvQXNzZXJ0KChzb3J0azEuaGFzaENvZGUoKSA9PSBzb3J0a05ldy5oYXNoQ29kZSgpKSwgInNvcnQga2V5IGhhc2hDb2RlKCkgZmFpbGVkIik7CisKKyAgICAgICAgLy8gY2hlY2sgaW52YWxpYWQgY29tcGFyaXNvbnMKKyAgICAgICAgT2JqZWN0IGZha2UgPSAiZmFrZSI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzb3J0azEuY29tcGFyZVRvKGZha2UpOworICAgICAgICAgICAgZXJybG4oIk5vbi1Db2xsYXRpb25LZXkgY29tcGFyaXNvbiIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBOb24tQ29sbGF0aW9uS2V5IGNvbXBhcmlzb24gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNvcnRrMS5lcXVhbHMoZmFrZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb24tQ29sbGF0aW9uS2V5IGNvbXBhcmlzb24iKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gcG9ydCBmcm9tIGFwaWNvbGwKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29sLmdldFN0cmVuZ3RoKCkgIT0gQ29sbGF0b3IuVEVSVElBUlkpeworICAgICAgICAgICAgZXJybG4oIkRlZmF1bHQgY29sbGF0aW9uIGRpZCBub3QgaGF2ZSB0ZXJ0aWFyeSBzdHJlbmd0aCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTmVlZCB0byB1c2UgaWRlbnRpY2FsIHN0cmVuZ3RoCisgICAgICAgIGNvbC5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworCisgICAgICAgIGJ5dGUga2V5MmNvbXBhdFtdID0geyAvLyAzLjQga2V5IFVDQSA0LjEKKyAgICAgICAgICAgIChieXRlKSAweDI4LCAoYnl0ZSkgMHgyYSwgKGJ5dGUpIDB4MmMsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MmUsIChieXRlKSAweDI4LCAoYnl0ZSkgMHgwMSwgCisgICAgICAgICAgICAoYnl0ZSkgMHgwOSwgKGJ5dGUpIDB4MDEsIChieXRlKSAweDA5LCAKKyAgICAgICAgICAgIChieXRlKSAweDAxLCAoYnl0ZSkgMHgyNywgKGJ5dGUpIDB4MDEsIAorICAgICAgICAgICAgKGJ5dGUpIDB4OTIsIChieXRlKSAweDkzLCAoYnl0ZSkgMHg5NCwgCisgICAgICAgICAgICAoYnl0ZSkgMHg5NSwgKGJ5dGUpIDB4OTIsIChieXRlKSAweDAwICAgICAgICAKKyAgICAgICAgICAgIC8vICAgICAgICAgIDIuNi4xIGtleQorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgIDB4MjYsIDB4MjgsIDB4MkEsIDB4MkMsIDB4MjYsIDB4MDEsIAorICAgICAgICAgICAgMHgwOSwgMHgwMSwgMHgwOSwgMHgwMSwgMHgyNSwgMHgwMSwgCisgICAgICAgICAgICAweDkyLCAweDkzLCAweDk0LCAweDk1LCAweDkyLCAweDAwIAorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIC8vIDIuMiBrZXkKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAweDFELCAweDFGLCAweDIxLCAweDIzLCAweDFELCAweDAxLAorICAgICAgICAgICAgMHgwOSwgMHgwMSwgMHgwOSwgMHgwMSwgMHgxQywgMHgwMSwKKyAgICAgICAgICAgIDB4OTIsIDB4OTMsIDB4OTQsIDB4OTUsIDB4OTIsIDB4MDAKKyAgICAgICAgICAgICovCisgICAgICAgICAgICAvLyAyLjAga2V5CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgMHgxOSwgMHgxQiwgMHgxRCwgMHgxRiwgMHgxOSwKKyAgICAgICAgICAgIDB4MDEsIDB4MDksIDB4MDEsIDB4MDksIDB4MDEsCisgICAgICAgICAgICAweDE4LCAweDAxLAorICAgICAgICAgICAgMHg5MiwgMHg5MywgMHg5NCwgMHg5NSwgMHg5MiwKKyAgICAgICAgICAgIDB4MDAKKyAgICAgICAgICAgICovCisgICAgICAgICAgICAvLyAxLjguMSBrZXkuCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgMHgxOSwgMHgxQiwgMHgxRCwgMHgxRiwgMHgxOSwKKyAgICAgICAgICAgIDB4MDEsIDB4MEEsIDB4MDEsIDB4MEEsIDB4MDEsCisgICAgICAgICAgICAweDkyLCAweDkzLCAweDk0LCAweDk1LCAweDkyLAorICAgICAgICAgICAgMHgwMCAKKyAgICAgICAgICAgICovCisgICAgICAgIH07CisKKyAgICAgICAgQ29sbGF0aW9uS2V5IGtleTEgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3QxKTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IGtleTIgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3QyKTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IGtleTMgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3QyKTsKKyAgICAKKyAgICAgICAgZG9Bc3NlcnQoa2V5MS5jb21wYXJlVG8oa2V5MikgPiAwLCAKKyAgICAgICAgICAgICAgICAgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiID4gXCJhYmNkYVwiIik7CisgICAgICAgIGRvQXNzZXJ0KGtleTIuY29tcGFyZVRvKGtleTEpIDwgMCwKKyAgICAgICAgICAgICAgICAiUmVzdWx0IHNob3VsZCBiZSBcImFiY2RhXCIgPCBcIkFiY2RhXCIiKTsKKyAgICAgICAgZG9Bc3NlcnQoa2V5Mi5jb21wYXJlVG8oa2V5MykgPT0gMCwKKyAgICAgICAgICAgICAgICAiUmVzdWx0IHNob3VsZCBiZSBcImFiY2RhXCIgPT0gIFwiYWJjZGFcIiIpOworICAgICAKKyAgICAgICAgZG9Bc3NlcnQoQXJyYXlzLmVxdWFscyhrZXkyLnRvQnl0ZUFycmF5KCksIGtleTJjb21wYXQpLAorICAgICAgICAgICAgICAgICAiQmluYXJ5IGZvcm1hdCBmb3IgJ2FiY2RhJyBzb3J0a2V5IGRpZmZlcmVudCBmb3IgaWRlbnRpY2FsIHN0cmVuZ3RoISIpOworICAgIAorICAgICAgICBsb2dsbigiVXNlIHNlY29uZGFyeSBjb21wYXJpc2lvbiBsZXZlbCB0ZXN0aW5nIC4uLiIpOworICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAKKyAgICAgICAga2V5MSA9IGNvbC5nZXRDb2xsYXRpb25LZXkodGVzdDEpOworICAgICAgICBrZXkyID0gY29sLmdldENvbGxhdGlvbktleSh0ZXN0Mik7CisgICAgICAgIGtleTMgPSBjb2wuZ2V0Q29sbGF0aW9uS2V5KHRlc3QyKTsKKyAgICAKKyAgICAgICAgZG9Bc3NlcnQoa2V5MS5jb21wYXJlVG8oa2V5MikgPT0gMCwgCisgICAgICAgICAgICAgICAgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiID09IFwiYWJjZGFcIiIpOworICAgICAgICBkb0Fzc2VydChrZXkyLmNvbXBhcmVUbyhrZXkzKSA9PSAwLAorICAgICAgICAgICAgICAgICJSZXN1bHQgc2hvdWxkIGJlIFwiYWJjZGFcIiA9PSAgXCJhYmNkYVwiIik7CisgICAgCisgICAgICAgIGJ5dGUgdGVtcGtleVtdID0ga2V5Mi50b0J5dGVBcnJheSgpOworICAgICAgICBieXRlIHN1YmtleTJjb21wYXRbXSA9IG5ldyBieXRlW3RlbXBrZXkubGVuZ3RoXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShrZXkyY29tcGF0LCAwLCBzdWJrZXkyY29tcGF0LCAwLCB0ZW1wa2V5Lmxlbmd0aCk7CisgICAgICAgIHN1YmtleTJjb21wYXRbc3Via2V5MmNvbXBhdC5sZW5ndGggLSAxXSA9IDA7CisgICAgICAgIGRvQXNzZXJ0KEFycmF5cy5lcXVhbHModGVtcGtleSwgc3Via2V5MmNvbXBhdCksCisgICAgICAgICAgICAgICAgICJCaW5hcnkgZm9ybWF0IGZvciAnYWJjZGEnIHNvcnRrZXkgZGlmZmVyZW50IGZvciBzZWNvbmRhcnkgc3RyZW5ndGghIik7CisgICAgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIHNvcnRrZXkgZW5kcy4uLiIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmF3Q29sbGF0aW9uS2V5KCkKKyAgICB7CisgICAgICAgIC8vIHRlc3RpbmcgY29uc3RydWN0b3JzCisgICAgICAgIFJhd0NvbGxhdGlvbktleSBrZXkgPSBuZXcgUmF3Q29sbGF0aW9uS2V5KCk7CisgICAgICAgIGlmIChrZXkuYnl0ZXMgIT0gbnVsbCB8fCBrZXkuc2l6ZSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiRW1wdHkgZGVmYXVsdCBjb25zdHJ1Y3RvciBleHBlY3RlZCB0byBsZWF2ZSB0aGUgYnl0ZXMgbnVsbCAiCisgICAgICAgICAgICAgICAgICArICJhbmQgc2l6ZSAwIik7IAorICAgICAgICB9CisgICAgICAgIGJ5dGUgYXJyYXlbXSA9IG5ldyBieXRlWzEyOF07CisgICAgICAgIGtleSA9IG5ldyBSYXdDb2xsYXRpb25LZXkoYXJyYXkpOworICAgICAgICBpZiAoa2V5LmJ5dGVzICE9IGFycmF5IHx8IGtleS5zaXplICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJDb25zdHJ1Y3RvciB0YWtpbmcgYW4gYXJyYXkgZXhwZWN0ZWQgdG8gYWRvcHQgaXQgYW5kICIKKyAgICAgICAgICAgICAgICAgICsgInJldGFpbmluZyBpdHMgc2l6ZSAwIik7IAorICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBrZXkgPSBuZXcgUmF3Q29sbGF0aW9uS2V5KGFycmF5LCAxMjkpOworICAgICAgICAgICAgZXJybG4oIkNvbnN0cnVjdG9yIHRha2luZyBhbiBhcnJheSBhbmQgYSBzaXplID4gYXJyYXkubGVuZ3RoICIKKyAgICAgICAgICAgICAgICAgICsgImV4cGVjdGVkIHRvIHRocm93IGFuIGV4Y2VwdGlvbiIpOyAKKyAgICAgICAgfSBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlBBU1M6IENvbnN0cnVjdG9yIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBrZXkgPSBuZXcgUmF3Q29sbGF0aW9uS2V5KGFycmF5LCAtMSk7CisgICAgICAgICAgICBlcnJsbigiQ29uc3RydWN0b3IgdGFraW5nIGFuIGFycmF5IGFuZCBhIHNpemUgPCAwICIKKyAgICAgICAgICAgICAgICAgICsgImV4cGVjdGVkIHRvIHRocm93IGFuIGV4Y2VwdGlvbiIpOyAKKyAgICAgICAgfSBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlBBU1M6IENvbnN0cnVjdG9yIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIGtleSA9IG5ldyBSYXdDb2xsYXRpb25LZXkoYXJyYXksIGFycmF5Lmxlbmd0aCA+PiAxKTsKKyAgICAgICAgaWYgKGtleS5ieXRlcyAhPSBhcnJheSB8fCBrZXkuc2l6ZSAhPSAoYXJyYXkubGVuZ3RoID4+IDEpKSB7CisgICAgICAgICAgICBlcnJsbigiQ29uc3RydWN0b3IgdGFraW5nIGFuIGFycmF5IGFuZCBhIHNpemUsICIKKyAgICAgICAgICAgICAgICAgICsgImV4cGVjdGVkIHRvIGFkb3B0IGl0IGFuZCB0YWtlIHRoZSBzaXplIHNwZWNpZmllZCIpOyAKKyAgICAgICAgfQorICAgICAgICBrZXkgPSBuZXcgUmF3Q29sbGF0aW9uS2V5KDEwKTsKKyAgICAgICAgaWYgKGtleS5ieXRlcyA9PSBudWxsIHx8IGtleS5ieXRlcy5sZW5ndGggIT0gMTAgfHwga2V5LnNpemUgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkNvbnN0cnVjdG9yIHRha2luZyBhIHNwZWNpZmllZCBjYXBhY2l0eSBleHBlY3RlZCB0byAiCisgICAgICAgICAgICAgICAgICArICJjcmVhdGUgYSBuZXcgaW50ZXJuYWwgYnl0ZSBhcnJheSB3aXRoIGxlbmd0aCAxMCBhbmQgIgorICAgICAgICAgICAgICAgICAgKyAicmV0YWluIHNpemUgMCIpOyAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIGRvQXNzZXJ0KGJvb2xlYW4gY29uZGl0aW9ucywgU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgaWYgKCFjb25kaXRpb25zKSB7CisgICAgICAgICAgICBlcnJsbihtZXNzYWdlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIHRlc3RzIHRoZSBjb21wYXJpc29uIGNvbnZlbmllbmNlIG1ldGhvZHMgb2YgYSBjb2xsYXRvciBvYmplY3QuCisgICAgICogLSBncmVhdGVyIHRoYW4KKyAgICAgKiAtIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0bworICAgICAqIC0gZXF1YWwgdG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGFyZSgpIHsKKyAgICAgICAgbG9nbG4oIlRoZSBjb21wYXJlIHRlc3RzIGJlZ2luIDogIik7CisgICAgICAgIENvbGxhdG9yIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0ZXN0MSA9ICJBYmNkYSI7CisgICAgICAgIFN0cmluZyB0ZXN0MiA9ICJhYmNkYSI7CisgICAgICAgIGxvZ2xuKCJVc2UgdGVydGlhcnkgY29tcGFyaXNvbiBsZXZlbCB0ZXN0aW5nIC4uLi4iKTsKKyAgICAgICAgCisgICAgICAgIE9iamVjdCBvYmoxID0gdGVzdDE7CisgICAgICAgIE9iamVjdCBvYmoyID0gdGVzdDI7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuY29tcGFyZShvYmoxLCBvYmoyKSA+IDApLCAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgIT0gXCJhYmNkYVwiIik7CisgICAgICAgIGRvQXNzZXJ0KCghY29sLmVxdWFscyh0ZXN0MSwgdGVzdDIpICksICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiAhPSBcImFiY2RhXCIiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5jb21wYXJlKHRlc3QxLCB0ZXN0MikgPiAwICksICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiA+Pj4gXCJhYmNkYVwiIik7CisgICAgCisgICAgICAgIGNvbC5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICBsb2dsbigiVXNlIHNlY29uZGFyeSBjb21wYXJpc29uIGxldmVsIHRlc3RpbmcgLi4uLiIpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5jb21wYXJlKG9iajEsIG9iajIpID09IDApLCAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgPT0gXCJhYmNkYVwiIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZXF1YWxzKHRlc3QxLCB0ZXN0MikgKSwgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiID09IFwiYWJjZGFcIiIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUodGVzdDEsIHRlc3QyKSA9PSAwKSwgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiID09IFwiYWJjZGFcIiIpOworICAgIAorICAgICAgICBjb2wuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGxvZ2xuKCJVc2UgcHJpbWFyeSBjb21wYXJpc29uIGxldmVsIHRlc3RpbmcgLi4uLiIpOworICAgICAgICAKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5jb21wYXJlKG9iajEsIG9iajIpID09IDAgKSwgIlJlc3VsdCBzaG91bGQgYmUgXCJBYmNkYVwiID09IFwiYWJjZGFcIiIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmVxdWFscyh0ZXN0MSwgdGVzdDIpICksICJSZXN1bHQgc2hvdWxkIGJlIFwiQWJjZGFcIiA9PSBcImFiY2RhXCIiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5jb21wYXJlKHRlc3QxLCB0ZXN0MikgPT0gMCApLCAiUmVzdWx0IHNob3VsZCBiZSBcIkFiY2RhXCIgPT0gXCJhYmNkYVwiIik7CisgICAgICAgIGxvZ2xuKCJUaGUgY29tcGFyZSB0ZXN0cyBlbmQuIik7CisgICAgICAgIAorICAgICAgICBJbnRlZ2VyIGRpZSA9IG5ldyBJbnRlZ2VyKDEpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sLmNvbXBhcmUoZGllLCB0ZXN0MSk7CisgICAgICAgICAgICBlcnJsbigiTm9uLVN0cmluZ3Mgc2hvdWxkIGZhaWwgY29sLmNvbXBhcmUoT2JqZWN0LCBPYmplY3QpIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlBBU1M6IE5vbi1TdHJpbmdzIGNvbXBhcmlzb24gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBUZXN0cyBkZWNvbXBvc2l0aW9uIHNldHRpbmcKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REZWNvbXBvc2l0aW9uKCkgeworICAgICAgICBDb2xsYXRvciBlbl9VUyA9IG51bGwsIGVsX0dSID0gbnVsbCwgdmlfVk4gPSBudWxsOworCisgICAgICAgIGVuX1VTID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgICAgIGVsX0dSID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZWwiLCAiR1IiKSk7CisgICAgICAgIHZpX1ZOID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgidmkiLCAiVk4iKSk7CisKKyAgICAgICAgCisgICAgICAgIC8vIHRoZXJlIGlzIG5vIHJlYXNvbiB0byBoYXZlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uIGluIGVuX1VTIE9SIGRlZmF1bHQgbG9jYWxlICovCisgICAgICAgIGlmICh2aV9WTi5nZXREZWNvbXBvc2l0aW9uKCkgIT0gQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJ2aV9WTiBjb2xsYXRpb24gZGlkIG5vdCBoYXZlIGNhbm5vbmljYWwgZGVjb21wb3NpdGlvbiBmb3Igbm9ybWFsaXphdGlvbiEiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlbF9HUi5nZXREZWNvbXBvc2l0aW9uKCkgIT0gQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJlbF9HUiBjb2xsYXRpb24gZGlkIG5vdCBoYXZlIGNhbm5vbmljYWwgZGVjb21wb3NpdGlvbiBmb3Igbm9ybWFsaXphdGlvbiEiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlbl9VUy5nZXREZWNvbXBvc2l0aW9uKCkgIT0gQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTikKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oImVuX1VTIGNvbGxhdGlvbiBoYWQgY2Fubm9uaWNhbCBkZWNvbXBvc2l0aW9uIGZvciBub3JtYWxpemF0aW9uISIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgdGVzdHMgdGhlIGR1cGxpY2F0aW9uIG9mIGEgY29sbGF0b3Igb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REdXBsaWNhdGUoKSB7CisgICAgICAgIC8vQ2xvbmUgZG9lcyBub3QgYmUgaW1wbGVtZW50ZWQgCisgICAgICAgIENvbGxhdG9yIGNvbDEgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIAorICAgICAgICAvLyBDb2xsYXRvciBjb2wyID0gKENvbGxhdG9yKWNvbDEuY2xvbmUoKTsKKyAgICAgICAgLy8gZG9Bc3NlcnQoY29sMS5lcXVhbHMoY29sMiksICJDbG9uZWQgb2JqZWN0IGlzIG5vdCBlcXVhbCB0byB0aGUgb3JnaW5hbCIpOworICAgICAgICBTdHJpbmcgcnVsZXNldCA9ICI8IGEsIEEgPCBiLCBCIDwgYywgQyA8IGQsIEQsIGUsIEUiOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2wzID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbDMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXNldCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbHVyZSBjcmVhdGluZyBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIHJ1bGU6IiArIHJ1bGVzZXQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGRvQXNzZXJ0KCFjb2wxLmVxdWFscyhjb2wzKSwgIkNsb25lZCBvYmplY3QgaXMgZXF1YWwgdG8gc29tZSBkdW1teSIpOworICAgICAgICBjb2wzID0gKFJ1bGVCYXNlZENvbGxhdG9yKWNvbDE7CisgICAgICAgIGRvQXNzZXJ0KGNvbDEuZXF1YWxzKGNvbDMpLCAiQ29waWVkIG9iamVjdCBpcyBub3QgZXF1YWwgdG8gdGhlIG9yZ2luYWwiKTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgdGVzdHMgdGhlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciByZWxhdGVkIEFQSXMuCisgICAgICogLSBjcmVhdGlvbiBvZiBhIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBvYmplY3QKKyAgICAgKiAtID09IGFuZCAhPSBvcGVyYXRvcnMKKyAgICAgKiAtIGl0ZXJhdGluZyBmb3J3YXJkCisgICAgICogLSByZXNldGluZyB0aGUgaXRlcmF0b3IgaW5kZXgKKyAgICAgKiAtIHJlcXVlc3RpbmcgdGhlIG9yZGVyIHByb3BlcnRpZXMocHJpbWFyeSwgc2Vjb25kYXJ5IG9yIHRlcnRpYXJ5KQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RFbGVtSXRlcigpIHsKKyAgICAgICAgLy8gbG9nbG4oInRlc3Rpbmcgc29ydGtleSBiZWdpbnMuLi4iKTsKKyAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworCisgICAgICAgICAgIAorICAgICAgICBTdHJpbmcgdGVzdFN0cmluZzEgPSAiWEZJTEUgV2hhdCBzdWJzZXQgb2YgYWxsIHBvc3NpYmxlIHRlc3QgY2FzZXMgaGFzIHRoZSBoaWdoZXN0IHByb2JhYmlsaXR5IG9mIGRldGVjdGluZyB0aGUgbW9zdCBlcnJvcnM/IjsKKyAgICAgICAgU3RyaW5nIHRlc3RTdHJpbmcyID0gIlhmX2lsZSBXaGF0IHN1YnNldCBvZiBhbGwgcG9zc2libGUgdGVzdCBjYXNlcyBoYXMgdGhlIGxvd2VzdCBwcm9iYWJpbGl0eSBvZiBkZXRlY3RpbmcgdGhlIGxlYXN0IGVycm9ycz8iOworICAgICAgICAvLyBsb2dsbigiQ29uc3RydWN0b3JzIGFuZCBjb21wYXJpc29uIHRlc3RpbmcuLi4uIik7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyYXRvcjEgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWNvbCkuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3RTdHJpbmcxKTsKKyAgICAgICAgCisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNoYXJpdGVyPW5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXN0U3RyaW5nMSk7CisgICAgICAgIC8vIGNvcHkgY3RvcgorICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcmF0b3IyID0gKChSdWxlQmFzZWRDb2xsYXRvciljb2wpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihjaGFyaXRlcik7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciB1Y2hhcml0ZXI9VUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHRlc3RTdHJpbmcyKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXJhdG9yMyA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sKS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodWNoYXJpdGVyKTsKKyAgICAKKyAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgICAgIG9mZnNldCA9IGl0ZXJhdG9yMS5nZXRPZmZzZXQoKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgaW4gZ2V0T2Zmc2V0IGZvciBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGl0ZXJhdG9yMS5zZXRPZmZzZXQoNik7CisgICAgICAgIGl0ZXJhdG9yMS5zZXRPZmZzZXQoMCk7CisgICAgICAgIGludCBvcmRlcjEsIG9yZGVyMiwgb3JkZXIzOworICAgICAgICAKKyAgICAgICAgb3JkZXIxID0gaXRlcmF0b3IxLm5leHQoKTsKKyAgICAgICAgZG9Bc3NlcnQoIShpdGVyYXRvcjEuZXF1YWxzKGl0ZXJhdG9yMikpLCAiVGhlIGZpcnN0IGl0ZXJhdG9yIGFkdmFuY2UgZmFpbGVkIik7CisgICAgICAgIG9yZGVyMiA9IGl0ZXJhdG9yMi5uZXh0KCk7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydCgoaXRlcmF0b3IxLmVxdWFscyhpdGVyYXRvcjIpKSwgIlRoZSBzZWNvbmQgaXRlcmF0b3IgYWR2YW5jZSBmYWlsZWQiKTsgCisgICAgICAgIGRvQXNzZXJ0KChvcmRlcjEgPT0gb3JkZXIyKSwgIlRoZSBvcmRlciByZXN1bHQgc2hvdWxkIGJlIHRoZSBzYW1lIik7CisgICAgICAgIG9yZGVyMyA9IGl0ZXJhdG9yMy5uZXh0KCk7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihvcmRlcjEpID09IAorICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihvcmRlcjMpKSwgIlRoZSBwcmltYXJ5IG9yZGVycyBzaG91bGQgYmUgdGhlIHNhbWUiKTsKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5zZWNvbmRhcnlPcmRlcihvcmRlcjEpID09IAorICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnNlY29uZGFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHNlY29uZGFyeSBvcmRlcnMgc2hvdWxkIGJlIHRoZSBzYW1lIik7CisgICAgICAgIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IudGVydGlhcnlPcmRlcihvcmRlcjEpID09IAorICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnRlcnRpYXJ5T3JkZXIob3JkZXIzKSksICJUaGUgdGVydGlhcnkgb3JkZXJzIHNob3VsZCBiZSB0aGUgc2FtZSIpOworICAgIAorICAgICAgICBvcmRlcjEgPSBpdGVyYXRvcjEubmV4dCgpOyAKKyAgICAgICAgb3JkZXIzID0gaXRlcmF0b3IzLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHByaW1hcnkgb3JkZXJzIHNob3VsZCBiZSBpZGVudGljYWwiKTsKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci50ZXJ0aWFyeU9yZGVyKG9yZGVyMSkgIT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IudGVydGlhcnlPcmRlcihvcmRlcjMpKSwgIlRoZSB0ZXJ0aWFyeSBvcmRlcnMgc2hvdWxkIGJlIGRpZmZlcmVudCIpOworICAgIAorICAgICAgICBvcmRlcjEgPSBpdGVyYXRvcjEubmV4dCgpOyAKKyAgICAgICAgb3JkZXIzID0gaXRlcmF0b3IzLm5leHQoKTsKKyAgICAgICAgLy8gaW52YWxpZCB0ZXN0IHdyb25nIGluIFVDQQorICAgICAgICAvLyBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnNlY29uZGFyeU9yZGVyKG9yZGVyMSkgIT0gCisgICAgICAgIC8vICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5zZWNvbmRhcnlPcmRlcihvcmRlcjMpKSwgIlRoZSBzZWNvbmRhcnkgb3JkZXJzIHNob3VsZCBub3QgYmUgdGhlIHNhbWUiKTsKKyAgICAgICAgICAgIAorICAgICAgICBkb0Fzc2VydCgob3JkZXIxICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpLCAiVW5leHBlY3RlZCBlbmQgb2YgaXRlcmF0b3IgcmVhY2hlZCIpOworICAgIAorICAgICAgICBpdGVyYXRvcjEucmVzZXQoKTsgCisgICAgICAgIGl0ZXJhdG9yMi5yZXNldCgpOyAKKyAgICAgICAgaXRlcmF0b3IzLnJlc2V0KCk7CisgICAgICAgIG9yZGVyMSA9IGl0ZXJhdG9yMS5uZXh0KCk7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydCghKGl0ZXJhdG9yMS5lcXVhbHMoaXRlcmF0b3IyKSksICJUaGUgZmlyc3QgaXRlcmF0b3IgYWR2YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgCisgICAgICAgIG9yZGVyMiA9IGl0ZXJhdG9yMi5uZXh0KCk7CisgICAgICAgIAorICAgICAgICBkb0Fzc2VydCgoaXRlcmF0b3IxLmVxdWFscyhpdGVyYXRvcjIpKSwgIlRoZSBzZWNvbmQgaXRlcmF0b3IgYWR2YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgZG9Bc3NlcnQoKG9yZGVyMSA9PSBvcmRlcjIpLCAiVGhlIG9yZGVyIHJlc3VsdCBzaG91bGQgYmUgdGhlIHNhbWUiKTsKKyAgICAKKyAgICAgICAgb3JkZXIzID0gaXRlcmF0b3IzLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHByaW1hcnkgb3JkZXJzIHNob3VsZCBiZSB0aGUgc2FtZSIpOworICAgICAgICBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnNlY29uZGFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Iuc2Vjb25kYXJ5T3JkZXIob3JkZXIzKSksICJUaGUgc2Vjb25kYXJ5IG9yZGVycyBzaG91bGQgYmUgdGhlIHNhbWUiKTsKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci50ZXJ0aWFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IudGVydGlhcnlPcmRlcihvcmRlcjMpKSwgIlRoZSB0ZXJ0aWFyeSBvcmRlcnMgc2hvdWxkIGJlIHRoZSBzYW1lIik7CisgICAgCisgICAgICAgIG9yZGVyMSA9IGl0ZXJhdG9yMS5uZXh0KCk7IAorICAgICAgICBvcmRlcjIgPSBpdGVyYXRvcjIubmV4dCgpOyAKKyAgICAgICAgb3JkZXIzID0gaXRlcmF0b3IzLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMSkgPT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyMykpLCAiVGhlIHByaW1hcnkgb3JkZXJzIHNob3VsZCBiZSBpZGVudGljYWwiKTsKKyAgICAgICAgZG9Bc3NlcnQoKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci50ZXJ0aWFyeU9yZGVyKG9yZGVyMSkgIT0gCisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IudGVydGlhcnlPcmRlcihvcmRlcjMpKSwgIlRoZSB0ZXJ0aWFyeSBvcmRlcnMgc2hvdWxkIGJlIGRpZmZlcmVudCIpOworICAgIAorICAgICAgICBvcmRlcjEgPSBpdGVyYXRvcjEubmV4dCgpOyAKKyAgICAgICAgb3JkZXIzID0gaXRlcmF0b3IzLm5leHQoKTsKKyAgICAgICAgCisgICAgICAgIC8vIG9ic29sZXRlIGludmFsaWQgdGVzdCwgcmVtb3ZlZAorICAgICAgICAvLyBkb0Fzc2VydCgoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnNlY29uZGFyeU9yZGVyKG9yZGVyMSkgIT0gCisgICAgICAgIC8vICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5zZWNvbmRhcnlPcmRlcihvcmRlcjMpKSwgIlRoZSBzZWNvbmRhcnkgb3JkZXJzIHNob3VsZCBub3QgYmUgdGhlIHNhbWUiKTsKKyAgICAgICAgZG9Bc3NlcnQoKG9yZGVyMSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSwgIlVuZXhwZWN0ZWQgZW5kIG9mIGl0ZXJhdG9yIHJlYWNoZWQiKTsKKyAgICAgICAgZG9Bc3NlcnQoIShpdGVyYXRvcjIuZXF1YWxzKGl0ZXJhdG9yMykpLCAiVGhlIGl0ZXJhdG9ycyBzaG91bGQgYmUgZGlmZmVyZW50Iik7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBlbmRzLi4uIik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgdGVzdHMgdGhlIGhhc2hDb2RlIG1ldGhvZCBvZiBhIGNvbGxhdG9yIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFzaENvZGUoKSB7CisgICAgICAgIGxvZ2xuKCJoYXNoQ29kZSB0ZXN0cyBiZWdpbi4iKTsKKyAgICAgICAgQ29sbGF0b3IgY29sMSA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAKKyAgICAgICAgQ29sbGF0b3IgY29sMiA9IG51bGw7CisgICAgICAgIExvY2FsZSBkayA9IG5ldyBMb2NhbGUoImRhIiwgIkRLIiwgIiIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sMiA9IENvbGxhdG9yLmdldEluc3RhbmNlKGRrKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJEYW5pc2ggY29sbGF0aW9uIGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBDb2xsYXRvciBjb2wzID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbDMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiMm5kIGRlZmF1bHQgY29sbGF0aW9uIGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBsb2dsbigiQ29sbGF0b3IuaGFzaENvZGUoKSB0ZXN0aW5nIC4uLiIpOworICAgICAgICAKKyAgICAgICAgZG9Bc3NlcnQoY29sMS5oYXNoQ29kZSgpICE9IGNvbDIuaGFzaENvZGUoKSwgIkhhc2ggdGVzdDEgcmVzdWx0IGluY29ycmVjdCIgKTsgICAgICAgICAgICAgICAgIAorICAgICAgICBkb0Fzc2VydCghKGNvbDEuaGFzaENvZGUoKSA9PSBjb2wyLmhhc2hDb2RlKCkpLCAiSGFzaCB0ZXN0MiByZXN1bHQgaW5jb3JyZWN0IiApOyAgICAgICAgICAgICAgCisgICAgICAgIGRvQXNzZXJ0KGNvbDEuaGFzaENvZGUoKSA9PSBjb2wzLmhhc2hDb2RlKCksICJIYXNoIHJlc3VsdCBub3QgZXF1YWwiICk7ICAgICAgICAgICAgICAgCisgICAgCisgICAgICAgIGxvZ2xuKCJoYXNoQ29kZSB0ZXN0cyBlbmQuIik7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdGVzdDEgPSAiQWJjZGEiOworICAgICAgICBTdHJpbmcgdGVzdDIgPSAiYWJjZGEiOworICAgICAgICAKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRrMSwgc29ydGsyLCBzb3J0azM7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBzb3J0azEgPSBjb2wzLmdldENvbGxhdGlvbktleSh0ZXN0MSk7CisgICAgICAgIHNvcnRrMiA9IGNvbDMuZ2V0Q29sbGF0aW9uS2V5KHRlc3QyKTsgCisgICAgICAgIHNvcnRrMyA9IGNvbDMuZ2V0Q29sbGF0aW9uS2V5KHRlc3QyKTsgCisgICAgICAgIAorICAgICAgICBkb0Fzc2VydChzb3J0azEuaGFzaENvZGUoKSAhPSBzb3J0azIuaGFzaENvZGUoKSwgIkhhc2ggdGVzdDEgcmVzdWx0IGluY29ycmVjdCIpOyAgICAgICAgICAgICAgIAorICAgICAgICBkb0Fzc2VydChzb3J0azIuaGFzaENvZGUoKSA9PSBzb3J0azMuaGFzaENvZGUoKSwgIkhhc2ggcmVzdWx0IG5vdCBlcXVhbCIgKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyB0ZXN0cyB0aGUgcHJvcGVydGllcyBvZiBhIGNvbGxhdG9yIG9iamVjdC4KKyAgICAgKiAtIGNvbnN0cnVjdG9yCisgICAgICogLSBmYWN0b3J5IG1ldGhvZCBnZXRJbnN0YW5jZQorICAgICAqIC0gY29tcGFyZSBhbmQgZ2V0Q29sbGF0aW9uS2V5CisgICAgICogLSBnZXQvc2V0IGRlY29tcG9zaXRpb24gbW9kZSBhbmQgY29tcGFyaXNvbiBsZXZlbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQcm9wZXJ0eSgpIHsKKyAgICAgICAgLyogCisgICAgICAgICAgQWxsIHRoZSBjb2xsYXRpb25zIGhhdmUgdGhlIHNhbWUgdmVyc2lvbiBpbiBhbiBJQ1UKKyAgICAgICAgICB2ZXJzaW9uLgorICAgICAgICAgIElDVSAyLjAgY3VyclZlcnNpb25BcnJheSA9IHsweDE4LCAweEMwLCAweDAyLCAweDAyfTsKKyAgICAgICAgICBJQ1UgMi4xIGN1cnJWZXJzaW9uQXJyYXkgPSB7MHgxOSwgMHgwMCwgMHgwMywgMHgwM307CisgICAgICAgICAgSUNVIDIuOCBjdXJyVmVyc2lvbkFycmF5ID0gezB4MjksIDB4ODAsIDB4MDAsIDB4MDR9OyAgICAgICAgICAKKyAgICAgICAgKi8gICAgCisgICAgICAgIGxvZ2xuKCJUaGUgcHJvcGVydHkgdGVzdHMgYmVnaW4gOiAiKTsKKyAgICAgICAgbG9nbG4oIlRlc3QgY3RvcnMgOiAiKTsKKyAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworCisgICAgCisgICAgICAgIGxvZ2xuKCJUZXN0IGdldFZlcnNpb24iKTsKKyAgICAgICAgVmVyc2lvbkluZm8gZXhwZWN0ZWRWZXJzaW9uID0gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoMHgzMSwgMHhDMCwgMHgwMCwgMHgwNCk7CisgICAgICAgIGRvQXNzZXJ0KGNvbC5nZXRWZXJzaW9uKCkuZXF1YWxzKGV4cGVjdGVkVmVyc2lvbiksICJFeHBlY3RlZCB2ZXJzaW9uICIrZXhwZWN0ZWRWZXJzaW9uLnRvU3RyaW5nKCkrIiBnb3QgIitjb2wuZ2V0VmVyc2lvbigpLnRvU3RyaW5nKCkpOworICAgICAgICAKKyAgICAgICAgbG9nbG4oIlRlc3QgZ2V0VUNBVmVyc2lvbiIpOworICAgICAgICBWZXJzaW9uSW5mbyBleHBlY3RlZFVDQVZlcnNpb24gPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgweDA0LCAweDAxLCAwLCAwKTsKKyAgICAgICAgZG9Bc3NlcnQoY29sLmdldFVDQVZlcnNpb24oKS5lcXVhbHMoZXhwZWN0ZWRVQ0FWZXJzaW9uKSwgIkV4cGVjdGVkIFVDQSB2ZXJzaW9uICIrZXhwZWN0ZWRVQ0FWZXJzaW9uLnRvU3RyaW5nKCkrIiBnb3QgIitjb2wuZ2V0VUNBVmVyc2lvbigpLnRvU3RyaW5nKCkpOworICAgICAgICAKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5jb21wYXJlKCJhYiIsICJhYmMiKSA8IDApLCAiYWIgPCBhYmMgY29tcGFyaXNvbiBmYWlsZWQiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5jb21wYXJlKCJhYiIsICJBQiIpIDwgMCksICJhYiA8IEFCIGNvbXBhcmlzb24gZmFpbGVkIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuY29tcGFyZSgiYmxhY2tiaXJkIiwgImJsYWNrLWJpcmQiKSA+IDApLCAiYmxhY2stYmlyZCA+IGJsYWNrYmlyZCBjb21wYXJpc29uIGZhaWxlZCIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUoImJsYWNrIGJpcmQiLCAiYmxhY2stYmlyZCIpIDwgMCksICJibGFjayBiaXJkID4gYmxhY2stYmlyZCBjb21wYXJpc29uIGZhaWxlZCIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmNvbXBhcmUoIkhlbGxvIiwgImhlbGxvIikgPiAwKSwgIkhlbGxvID4gaGVsbG8gY29tcGFyaXNvbiBmYWlsZWQiKTsKKyAgICAKKyAgICAgICAgbG9nbG4oIlRlc3QgY3RvcnMgZW5kcy4iKTsKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIENvbGxhdG9yLmdldFN0cmVuZ3RoKCkgbWV0aG9kIC4uLiIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldFN0cmVuZ3RoKCkgPT0gQ29sbGF0b3IuVEVSVElBUlkpLCAiY29sbGF0aW9uIG9iamVjdCBoYXMgdGhlIHdyb25nIHN0cmVuZ3RoIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZ2V0U3RyZW5ndGgoKSAhPSBDb2xsYXRvci5QUklNQVJZKSwgImNvbGxhdGlvbiBvYmplY3QncyBzdHJlbmd0aCBpcyBwcmltYXJ5IGRpZmZlcmVuY2UiKTsKKyAgICAgICAgICAgIAorICAgICAgICBsb2dsbigidGVzdGluZyBDb2xsYXRvci5zZXRTdHJlbmd0aCgpIG1ldGhvZCAuLi4iKTsKKyAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZ2V0U3RyZW5ndGgoKSAhPSBDb2xsYXRvci5URVJUSUFSWSksICJjb2xsYXRpb24gb2JqZWN0J3Mgc3RyZW5ndGggaXMgc2Vjb25kYXJ5IGRpZmZlcmVuY2UiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLlBSSU1BUlkpLCAiY29sbGF0aW9uIG9iamVjdCdzIHN0cmVuZ3RoIGlzIHByaW1hcnkgZGlmZmVyZW5jZSIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldFN0cmVuZ3RoKCkgPT0gQ29sbGF0b3IuU0VDT05EQVJZKSwgImNvbGxhdGlvbiBvYmplY3QgaGFzIHRoZSB3cm9uZyBzdHJlbmd0aCIpOworICAgIAorICAgICAgICBsb2dsbigidGVzdGluZyBDb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKCkgbWV0aG9kIC4uLiIpOworICAgICAgICBjb2wuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXREZWNvbXBvc2l0aW9uKCkgIT0gQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pLCAiRGVjb21wb3NpdGlvbiBtb2RlICE9IENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZ2V0RGVjb21wb3NpdGlvbigpID09IENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pLCAiRGVjb21wb3NpdGlvbiBtb2RlID0gQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTiIpOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHJjb2wgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZGEiLCAiREsiKSk7CisgICAgICAgIGRvQXNzZXJ0KHJjb2wuZ2V0UnVsZXMoKS5sZW5ndGgoKSAhPSAwLCAiZGFfREsgcnVsZXMgZG9lcyBub3QgaGF2ZSBsZW5ndGggMCIpOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5GUkVOQ0gpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNyZWF0aW5nIEZyZW5jaCBjb2xsYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIGNvbC5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgbG9nbG4oInRlc3RpbmcgQ29sbGF0b3IuZ2V0U3RyZW5ndGgoKSBtZXRob2QgYWdhaW4gLi4uIik7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZ2V0U3RyZW5ndGgoKSAhPSBDb2xsYXRvci5URVJUSUFSWSksICJjb2xsYXRpb24gb2JqZWN0IGhhcyB0aGUgd3Jvbmcgc3RyZW5ndGgiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpID09IENvbGxhdG9yLlBSSU1BUlkpLCAiY29sbGF0aW9uIG9iamVjdCdzIHN0cmVuZ3RoIGlzIG5vdCBwcmltYXJ5IGRpZmZlcmVuY2UiKTsKKyAgICAgICAgICAgIAorICAgICAgICBsb2dsbigidGVzdGluZyBGcmVuY2ggQ29sbGF0b3Iuc2V0U3RyZW5ndGgoKSBtZXRob2QgLi4uIik7CisgICAgICAgIGNvbC5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGRvQXNzZXJ0KChjb2wuZ2V0U3RyZW5ndGgoKSA9PSBDb2xsYXRvci5URVJUSUFSWSksICJjb2xsYXRpb24gb2JqZWN0J3Mgc3RyZW5ndGggaXMgbm90IHRlcnRpYXJ5IGRpZmZlcmVuY2UiKTsKKyAgICAgICAgZG9Bc3NlcnQoKGNvbC5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLlBSSU1BUlkpLCAiY29sbGF0aW9uIG9iamVjdCdzIHN0cmVuZ3RoIGlzIHByaW1hcnkgZGlmZmVyZW5jZSIpOworICAgICAgICBkb0Fzc2VydCgoY29sLmdldFN0cmVuZ3RoKCkgIT0gQ29sbGF0b3IuU0VDT05EQVJZKSwgImNvbGxhdGlvbiBvYmplY3QncyBzdHJlbmd0aCBpcyBzZWNvbmRhcnkgZGlmZmVyZW5jZSIpOworICAgIAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0SnVua0NvbGxhdG9yKCl7CisgICAgICAgIGxvZ2xuKCJDcmVhdGUganVuayBjb2xsYXRpb246ICIpOworICAgICAgICBMb2NhbGUgYWJjZCA9IG5ldyBMb2NhbGUoImFiIiwgIkNEIiwgIiIpOworICAgICAgICAKKyAgICAgICAgQ29sbGF0b3IganVuayA9IENvbGxhdG9yLmdldEluc3RhbmNlKGFiY2QpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworCisgICAgCisgICAgICAgIFN0cmluZyBjb2xydWxlcyA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sKS5nZXRSdWxlcygpOworICAgICAgICBTdHJpbmcganVua3J1bGVzID0gKChSdWxlQmFzZWRDb2xsYXRvcilqdW5rKS5nZXRSdWxlcygpOworICAgICAgICBkb0Fzc2VydChjb2xydWxlcyA9PSBqdW5rcnVsZXMgfHwgY29scnVsZXMuZXF1YWxzKGp1bmtydWxlcyksIAorICAgICAgICAgICAgICAgICAgICJUaGUgZGVmYXVsdCBjb2xsYXRpb24gc2hvdWxkIGJlIHJldHVybmVkLiIpOworICAgICAgICBDb2xsYXRvciBmckNvbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmckNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5GUkFOQ0UpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNyZWF0aW5nIEZyZW5jaCBjb2xsYXRvciBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZG9Bc3NlcnQoIShmckNvbC5lcXVhbHMoanVuaykpLCAiVGhlIGp1bmsgaXMgdGhlIHNhbWUgYXMgdGhlIEZyZW5jaCBjb2xsYXRvci4iKTsKKyAgICAgICAgbG9nbG4oIkNvbGxhdG9yIHByb3BlcnR5IHRlc3QgZW5kZWQuIik7CisgICAgCisgICAgfQorICAgIC8qKgorICAgICogVGhpcyB0ZXN0cyB0aGUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAqIC0gY29uc3RydWN0b3IvZGVzdHJ1Y3RvcgorICAgICogLSBnZXRSdWxlcworICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFJ1bGVCYXNlZENvbGwoKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbDEgPSBudWxsLCBjb2wyID0gbnVsbCwgY29sMyA9IG51bGwsIGNvbDQgPSBudWxsOworICAgIAorICAgICAgICBTdHJpbmcgcnVsZXNldDEgPSAiJjkgPCBhLCBBIDwgYiwgQiA8IGMsIEM7IGNoLCBjSCwgQ2gsIENIIDwgZCwgRCwgZSwgRSI7IAorICAgICAgICBTdHJpbmcgcnVsZXNldDIgPSAiJjkgPCBhLCBBIDwgYiwgQiA8IGMsIEMgPCBkLCBELCBlLCBFIjsKKyAgICAgICAgU3RyaW5nIHJ1bGVzZXQzID0gIiYiOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbDEgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXNldDEpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gb25seSBmaXJzdCBlcnJvciBuZWVkcyB0byBiZSBhIHdhcm5pbmcgc2luY2Ugd2UgZXhpdCBmdW5jdGlvbiAKKyAgICAgICAgICAgIHdhcm5sbigiUnVsZUJhc2VkIENvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sMiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlc2V0Mik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiUnVsZUJhc2VkIENvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gZW1wdHkgcnVsZXMgZmFpbAorICAgICAgICAgICAgY29sMyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlc2V0Myk7CisgICAgICAgICAgICBlcnJsbigiRmFpbHVyZTogRW1wdHkgcnVsZXMgZm9yIHRoZSBjb2xsYXRvciBzaG91bGQgZmFpbCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBFbXB0eSBydWxlcyBmb3IgdGhlIGNvbGxhdG9yIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBMb2NhbGUgbG9jYWxlID0gbmV3IExvY2FsZSgiYWEiLCAiQUEiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbDMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWxsYmFjayBDb2xsYXRvciBjcmVhdGlvbiBmYWlsZWQuOiAlcyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2wzID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRGVmYXVsdCBDb2xsYXRvciBjcmVhdGlvbiBmYWlsZWQuOiAlcyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyBydWxlMSA9IGNvbDEuZ2V0UnVsZXMoKTsgCisgICAgICAgIFN0cmluZyBydWxlMiA9IGNvbDIuZ2V0UnVsZXMoKTsKKyAgICAgICAgU3RyaW5nIHJ1bGUzID0gY29sMy5nZXRSdWxlcygpOworICAgIAorICAgICAgICBkb0Fzc2VydCghcnVsZTEuZXF1YWxzKHJ1bGUyKSwgIkRlZmF1bHQgY29sbGF0b3IgZ2V0UnVsZXMgZmFpbGVkIik7CisgICAgICAgIGRvQXNzZXJ0KCFydWxlMi5lcXVhbHMocnVsZTMpLCAiRGVmYXVsdCBjb2xsYXRvciBnZXRSdWxlcyBmYWlsZWQiKTsKKyAgICAgICAgZG9Bc3NlcnQoIXJ1bGUxLmVxdWFscyhydWxlMyksICJEZWZhdWx0IGNvbGxhdG9yIGdldFJ1bGVzIGZhaWxlZCIpOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbDQgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZTIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlJ1bGVCYXNlZCBDb2xsYXRvciBjcmVhdGlvbiBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHJ1bGU0ID0gY29sNC5nZXRSdWxlcygpOworICAgICAgICBkb0Fzc2VydChydWxlMi5lcXVhbHMocnVsZTQpLCAiRGVmYXVsdCBjb2xsYXRvciBnZXRSdWxlcyBmYWlsZWQiKTsKKyAgICAgICAgLy8gdGVzdHMgdGhhdCBtb2RpZmllciAhIGlzIGFsd2F5cyBpZ25vcmVkCisgICAgICAgIFN0cmluZyBleGNsYW1hdGlvbnJ1bGVzID0gIiEmYTxiIjsKKyAgICAgICAgLy8gamF2YSBkb2VzIG5vdCBhbGxvdyAhIHRvIGJlIHRoZSBzdGFydCBvZiB0aGUgcnVsZQorICAgICAgICBTdHJpbmcgdGhhaXN0ciA9ICJcdTBlNDBcdTBlMDFcdTBlMmQiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sNSA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihleGNsYW1hdGlvbnJ1bGVzKTsKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuY29sID0gKFJ1bGVCYXNlZENvbGxhdG9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjb2w1aXRlciAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBjb2w1LmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0aGFpc3RyKTsKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBlbmNvbGl0ZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZW5jb2wuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYWlzdHIpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAvLyB0ZXN0aW5nIHdpdGggZW4gc2luY2UgdGhhaSBoYXMgaXRzIG93biB0YWlsb3JpbmcKKyAgICAgICAgICAgICAgICBpbnQgY2UgPSBjb2w1aXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgaW50IGNlMiA9IGVuY29saXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGNlMiAhPSBjZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiISBtb2RpZmllciB0ZXN0IGZhaWxlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiUnVsZUJhc2VkIENvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZCBmb3IgISBtb2RpZmllci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFRoaXMgdGVzdHMgdGhlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgKiAtIGdldFJ1bGVzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVsZXMoKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiIiwiIiwiIikpOyAvL3Jvb3QKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJQQVNTOiBSdWxlQmFzZWQgQ29sbGF0b3IgY3JlYXRpb24gcGFzc2VkIik7CisKKyAgICAKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gY29sbC5nZXRSdWxlcygpOworICAgICAgICBpZiAocnVsZXMgIT0gbnVsbCAmJiBydWxlcy5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiUm9vdCB0YWlsb3JlZCBydWxlcyBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2FmZUNsb25lKCkgeworICAgICAgICBTdHJpbmcgdGVzdDEgPSAiYWJDZGEiOworICAgICAgICBTdHJpbmcgdGVzdDIgPSAiYWJjZGEiOworICAgICAgICAKKyAgICAgICAgLy8gb25lIGRlZmF1bHQgY29sbGF0b3IgJiB0d28gY29tcGxleCBvbmVzIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBzb21lQ29sbGF0b3JzW10gPSB7CisgICAgICAgICAgICAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpLAorICAgICAgICAgICAgKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5LT1JFQSksCisgICAgICAgICAgICAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkpBUEFOKQorICAgICAgICB9OworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBzb21lQ2xvbmVkQ29sbGF0b3JzW10gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3JbM107CisgICAgICAgIAorICAgICAgICAvLyBjaGFuZ2Ugb3JpZyAmIGNsb25lICYgbWFrZSBzdXJlIHRoZXkgYXJlIGluZGVwZW5kZW50IAorICAgIAorICAgICAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgc29tZUNvbGxhdG9ycy5sZW5ndGg7IGluZGV4ICsrKQorICAgICAgICB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNvbWVDbG9uZWRDb2xsYXRvcnNbaW5kZXhdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gKFJ1bGVCYXNlZENvbGxhdG9yKXNvbWVDb2xsYXRvcnNbaW5kZXhdLmNsb25lKCk7CisgICAgICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGNsb25pbmcgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHNvbWVDbG9uZWRDb2xsYXRvcnNbaW5kZXhdLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIHNvbWVDb2xsYXRvcnNbaW5kZXhdLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICAgICAgc29tZUNsb25lZENvbGxhdG9yc1tpbmRleF0uc2V0Q2FzZUxldmVsKGZhbHNlKTsKKyAgICAgICAgICAgIHNvbWVDb2xsYXRvcnNbaW5kZXhdLnNldENhc2VMZXZlbChmYWxzZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRvQXNzZXJ0KHNvbWVDbG9uZWRDb2xsYXRvcnNbaW5kZXhdLmNvbXBhcmUodGVzdDEsIHRlc3QyKSA+IDAsIAorICAgICAgICAgICAgICAgICAgICAgIlJlc3VsdCBzaG91bGQgYmUgXCJhYkNkYVwiID4+PiBcImFiY2RhXCIgIik7CisgICAgICAgICAgICBkb0Fzc2VydChzb21lQ29sbGF0b3JzW2luZGV4XS5jb21wYXJlKHRlc3QxLCB0ZXN0MikgPT0gMCwgCisgICAgICAgICAgICAgICAgICAgICAiUmVzdWx0IHNob3VsZCBiZSBcImFiQ2RhXCIgPT0gXCJhYmNkYVwiICIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldFRhaWxvcmVkU2V0KCkgCisgICAgeworICAgICAgICBsb2dsbigidGVzdGluZyBnZXRUYWlsb3JlZFNldC4uLiIpOworICAgICAgICBTdHJpbmcgcnVsZXNbXSA9IHsKKyAgICAgICAgICAgICImYSA8IFx1MjEyYiIsICAgICAgICAgICAgIAorICAgICAgICAgICAgIiYgUyA8IFx1MDE2MSA8PDwgXHUwMTYwIiwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nIGRhdGFbXVtdID0geworICAgICAgICAgICAgeyAiXHUyMTJiIiwgIkFcdTAzMGEiLCAiXHUwMGM1IiB9LCAgICAgICAgCisgICAgICAgICAgICB7ICJcdTAxNjEiLCAic1x1MDMwQyIsICJcdTAxNjAiLCAiU1x1MDMwQyIgfSAgICAgICAgICAgIAorICAgICAgICB9OworICAgIAorICAgICAgICBpbnQgaSA9IDAsIGogPSAwOworICAgICAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbDsKKyAgICAgICAgVW5pY29kZVNldCBzZXQ7CisgICAgICAgIAorICAgICAgICBmb3IoaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBsb2dsbigiSW5zdGFudGlhdGluZyBhIGNvbGxhdG9yIGZyb20gIitydWxlc1tpXSk7CisgICAgICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlc1tpXSk7CisgICAgICAgICAgICAgICAgc2V0ID0gY29sbC5nZXRUYWlsb3JlZFNldCgpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJHb3Qgc2V0OiAiK3NldC50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAgICAgICAgIGlmKHNldC5zaXplKCkgIT0gZGF0YVtpXS5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRhaWxvcmVkIHNldCBzaXplIGRpZmZlcmVudCAoIitzZXQuc2l6ZSgpKyIpIHRoYW4gZXhwZWN0ZWQgKCIrZGF0YVtpXS5sZW5ndGgrIikiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yKGogPSAwOyBqIDwgZGF0YVtpXS5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiQ2hlY2tpbmcgdG8gc2VlIHdoZXRoZXIgIitkYXRhW2ldW2pdKyIgaXMgaW4gc2V0Iik7CisgICAgICAgICAgICAgICAgICAgIGlmKCFzZXQuY29udGFpbnMoZGF0YVtpXVtqXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUYWlsb3JlZCBzZXQgZG9lc24ndCBjb250YWluICIrZGF0YVtpXVtqXSsiLi4uIEl0IHNob3VsZCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkNvdWxkbid0IG9wZW4gY29sbGF0b3Igd2l0aCBydWxlcyAiKyBydWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiogCisgICAgICogU2ltcGxlIHRlc3QgdG8gc2VlIGlmIENvbGxhdG9yIGlzIHN1YmNsYXNzYWJsZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTdWJDbGFzcygpIAorICAgIHsKKyAgICAgICAgY2xhc3MgVGVzdENvbGxhdG9yIGV4dGVuZHMgQ29sbGF0b3IKKyAgICAgICAgeworICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMgPT0gdGhhdDsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5jb21wYXJlVG8odGFyZ2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIENvbGxhdGlvbktleSBnZXRDb2xsYXRpb25LZXkoU3RyaW5nIHNvdXJjZSkKKyAgICAgICAgICAgIHsgICByZXR1cm4gbmV3IENvbGxhdGlvbktleShzb3VyY2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRSYXdDb2xsYXRpb25LZXkoc291cmNlLCBuZXcgUmF3Q29sbGF0aW9uS2V5KCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIFJhd0NvbGxhdGlvbktleSBnZXRSYXdDb2xsYXRpb25LZXkoU3RyaW5nIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSYXdDb2xsYXRpb25LZXkga2V5KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJ5dGUgdGVtcDFbXSA9IHNvdXJjZS5nZXRCeXRlcygpOworICAgICAgICAgICAgICAgIGJ5dGUgdGVtcDJbXSA9IG5ldyBieXRlW3RlbXAxLmxlbmd0aCArIDFdOworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGVtcDEsIDAsIHRlbXAyLCAwLCB0ZW1wMS5sZW5ndGgpOworICAgICAgICAgICAgICAgIHRlbXAyW3RlbXAxLmxlbmd0aF0gPSAwOworICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBrZXkgPSBuZXcgUmF3Q29sbGF0aW9uS2V5KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGtleS5ieXRlcyA9IHRlbXAyOyAKKyAgICAgICAgICAgICAgICBrZXkuc2l6ZSA9IHRlbXAyLmxlbmd0aDsKKyAgICAgICAgICAgICAgICByZXR1cm4ga2V5OworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBzZXRWYXJpYWJsZVRvcChpbnQgY2UpCisgICAgICAgICAgICB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBpbnQgc2V0VmFyaWFibGVUb3AoU3RyaW5nIHN0cikgCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBpbnQgZ2V0VmFyaWFibGVUb3AoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIFZlcnNpb25JbmZvIGdldFZlcnNpb24oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyBWZXJzaW9uSW5mbyBnZXRVQ0FWZXJzaW9uKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAKKyAgICAgICAgQ29sbGF0b3IgY29sMSA9IG5ldyBUZXN0Q29sbGF0b3IoKTsKKyAgICAgICAgQ29sbGF0b3IgY29sMiA9IG5ldyBUZXN0Q29sbGF0b3IoKTsKKyAgICAgICAgaWYgKGNvbDEuZXF1YWxzKGNvbDIpKSB7CisgICAgICAgICAgICBlcnJsbigiMiBkaWZmZXJlbnQgaW5zdGFuY2Ugb2YgVGVzdENvbGxhdG9yIHNob3VsZCBmYWlsIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbDEuaGFzaENvZGUoKSAhPSBjb2wyLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFdmVyeSBUZXN0Q29sbGF0b3IgaGFzIHRoZSBzYW1lIGhhc2hjb2RlIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGFiYyA9ICJhYmMiOworICAgICAgICBTdHJpbmcgYmNkID0gImJjZCI7CisgICAgICAgIGlmIChjb2wxLmNvbXBhcmUoYWJjLCBiY2QpICE9IGFiYy5jb21wYXJlVG8oYmNkKSkgeworICAgICAgICAgICAgZXJybG4oIlRlc3RDb2xsYXRvciBjb21wYXJlIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgZGVmYXVsdCAiICsKKyAgICAgICAgICAgICAgICAgICJzdHJpbmcgY29tcGFyaXNvbiIpOworICAgICAgICB9CisgICAgICAgIENvbGxhdGlvbktleSBrZXkgPSBjb2wxLmdldENvbGxhdGlvbktleShhYmMpOworICAgICAgICBieXRlIHRlbXAxW10gPSBhYmMuZ2V0Qnl0ZXMoKTsKKyAgICAgICAgYnl0ZSB0ZW1wMltdID0gbmV3IGJ5dGVbdGVtcDEubGVuZ3RoICsgMV07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGVtcDEsIDAsIHRlbXAyLCAwLCB0ZW1wMS5sZW5ndGgpOworICAgICAgICB0ZW1wMlt0ZW1wMS5sZW5ndGhdID0gMDsKKyAgICAgICAgaWYgKCFqYXZhLnV0aWwuQXJyYXlzLmVxdWFscyhrZXkudG9CeXRlQXJyYXkoKSwgdGVtcDIpIAorICAgICAgICAgICAgfHwgIWtleS5nZXRTb3VyY2VTdHJpbmcoKS5lcXVhbHMoYWJjKSkgeworICAgICAgICAgICAgZXJybG4oIlRlc3RDb2xsYXRvciBjb2xsYXRpb25rZXkgQVBJIGlzIHJldHVybmluZyB3cm9uZyB2YWx1ZXMiKTsKKyAgICAgICAgfQorICAgICAgICBVbmljb2RlU2V0IHNldCA9IGNvbDEuZ2V0VGFpbG9yZWRTZXQoKTsKKyAgICAgICAgaWYgKCFzZXQuZXF1YWxzKG5ldyBVbmljb2RlU2V0KDAsIDB4MTBGRkZGKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIGRlZmF1bHQgdGFpbG9yZWQgc2V0Iik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgIC8qKiAKKyAgICAgKiBTaW1wbGUgdGVzdCB0aGUgY29sbGF0b3Igc2V0dGVyIGFuZCBnZXR0ZXJzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNldEdldCgpIAorICAgIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgaW50IGRlY29tcCA9IGNvbGxhdG9yLmdldERlY29tcG9zaXRpb24oKTsKKyAgICAgICAgaW50IHN0cmVuZ3RoID0gY29sbGF0b3IuZ2V0U3RyZW5ndGgoKTsKKyAgICAgICAgYm9vbGVhbiBhbHQgPSBjb2xsYXRvci5pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCgpOworICAgICAgICBib29sZWFuIGNhc2VsZXZlbCA9IGNvbGxhdG9yLmlzQ2FzZUxldmVsKCk7CisgICAgICAgIGJvb2xlYW4gZnJlbmNoID0gY29sbGF0b3IuaXNGcmVuY2hDb2xsYXRpb24oKTsKKyAgICAgICAgYm9vbGVhbiBocXVhcnQgPSBjb2xsYXRvci5pc0hpcmFnYW5hUXVhdGVybmFyeSgpOworICAgICAgICBib29sZWFuIGxvd2VyY2FzZSA9IGNvbGxhdG9yLmlzTG93ZXJDYXNlRmlyc3QoKTsKKyAgICAgICAgYm9vbGVhbiB1cHBlcmNhc2UgPSBjb2xsYXRvci5pc1VwcGVyQ2FzZUZpcnN0KCk7CisgICAgICAgIAorICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmdldERlY29tcG9zaXRpb24oKSAhPSBDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTikgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgZGVjb21wb3NpdGlvbiBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5RVUFURVJOQVJZKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmdldFN0cmVuZ3RoKCkgIT0gQ29sbGF0b3IuUVVBVEVSTkFSWSkgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgc3RyZW5ndGggZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKCFhbHQpOworICAgICAgICBpZiAoY29sbGF0b3IuaXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoKSA9PSBhbHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIGFsdGVybmF0ZSBoYW5kbGluZyBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRDYXNlTGV2ZWwoIWNhc2VsZXZlbCk7CisgICAgICAgIGlmIChjb2xsYXRvci5pc0Nhc2VMZXZlbCgpID09IGNhc2VsZXZlbCkgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgY2FzZSBsZXZlbCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRGcmVuY2hDb2xsYXRpb24oIWZyZW5jaCk7CisgICAgICAgIGlmIChjb2xsYXRvci5pc0ZyZW5jaENvbGxhdGlvbigpID09IGZyZW5jaCkgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgZnJlbmNoIGNvbGxhdGlvbiBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRIaXJhZ2FuYVF1YXRlcm5hcnkoIWhxdWFydCk7CisgICAgICAgIGlmIChjb2xsYXRvci5pc0hpcmFnYW5hUXVhdGVybmFyeSgpID09IGhxdWFydCkgeworICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgaGlyYWdhbmEgcXVhcnRlbmFyeSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRMb3dlckNhc2VGaXJzdCghbG93ZXJjYXNlKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmlzTG93ZXJDYXNlRmlyc3QoKSA9PSBsb3dlcmNhc2UpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIGxvd2VyIGNhc2UgZmlyc3QgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0VXBwZXJDYXNlRmlyc3QoIXVwcGVyY2FzZSk7CisgICAgICAgIGlmIChjb2xsYXRvci5pc1VwcGVyQ2FzZUZpcnN0KCkgPT0gdXBwZXJjYXNlKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyB1cHBlciBjYXNlIGZpcnN0IGZhaWxlZCIpOworICAgICAgICB9ICAgCisgICAgICAgIGNvbGxhdG9yLnNldERlY29tcG9zaXRpb25EZWZhdWx0KCk7CisgICAgICAgIGlmIChjb2xsYXRvci5nZXREZWNvbXBvc2l0aW9uKCkgIT0gZGVjb21wKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyBkZWNvbXBvc2l0aW9uIGRlZmF1bHQgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGhEZWZhdWx0KCk7CisgICAgICAgIGlmIChjb2xsYXRvci5nZXRTdHJlbmd0aCgpICE9IHN0cmVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyBzdHJlbmd0aCBkZWZhdWx0IGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldEFsdGVybmF0ZUhhbmRsaW5nRGVmYXVsdCgpOworICAgICAgICBpZiAoY29sbGF0b3IuaXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoKSAhPSBhbHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIGFsdGVybmF0ZSBoYW5kbGluZyBkZWZhdWx0IGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldENhc2VMZXZlbERlZmF1bHQoKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmlzQ2FzZUxldmVsKCkgIT0gY2FzZWxldmVsKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyBjYXNlIGxldmVsIGRlZmF1bHQgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0RnJlbmNoQ29sbGF0aW9uRGVmYXVsdCgpOworICAgICAgICBpZiAoY29sbGF0b3IuaXNGcmVuY2hDb2xsYXRpb24oKSAhPSBmcmVuY2gpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIGZyZW5jaCBoYW5kbGluZyBkZWZhdWx0IGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldEhpcmFnYW5hUXVhdGVybmFyeURlZmF1bHQoKTsKKyAgICAgICAgaWYgKGNvbGxhdG9yLmlzSGlyYWdhbmFRdWF0ZXJuYXJ5KCkgIT0gaHF1YXJ0KSB7CisgICAgICAgICAgICBlcnJsbigiU2V0dGluZyBIaXJhZ2FuYSBRdWFydGVuYXJ5IGRlZmF1bHQgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0Q2FzZUZpcnN0RGVmYXVsdCgpOworICAgICAgICBpZiAoY29sbGF0b3IuaXNMb3dlckNhc2VGaXJzdCgpICE9IGxvd2VyY2FzZSAKKyAgICAgICAgICAgIHx8IGNvbGxhdG9yLmlzVXBwZXJDYXNlRmlyc3QoKSAhPSB1cHBlcmNhc2UpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXR0aW5nIGNhc2UgZmlyc3QgaGFuZGxpbmcgZGVmYXVsdCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Qm91bmRzKCkgCisgICAgeworICAgICAgICBDb2xsYXRvciBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgic2giLCAiIikpOworICAgICAgICAgIAorICAgICAgICBTdHJpbmcgdGVzdFtdID0geyAiSm9obiBTbWl0aCIsICJKT0hOIFNNSVRIIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJqb2huIFNNSVRIIiwgImpcdTAwRjZobiBzbVx1MDBFRnRoIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIkpcdTAwRjZobiBTbVx1MDBFRnRoIiwgIkpcdTAwRDZITiBTTVx1MDBDRlRIIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImpvaG4gc21pdGhzb25pYW4iLCAiSm9obiBTbWl0aHNvbmlhbiIsCisgICAgICAgIH07CisgICAgICAKKyAgICAgICAgU3RyaW5nIHRlc3RTdHJbXSA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLSSBNSUhBTEoiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLSSBNSUhBTEoiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtJIFBJUk9cdTAxNjBLQSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJBSSBBTkRSSUpBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCQUkgTEFKT1x1MDE2MCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJBSSBNQVJJSkEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJBSSBTVEVWQU4iLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCQUkgU1RFVkFOIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCQVJLQVBBIEJSQU5LTyIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJBUktBUEEgTUlMRU5LTyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkFSS0FQQSBNSVJPU0xBViIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJBUktBUEEgU0lNTyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkFSS0FQQSBTVEFOS08iLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCQVJLQVBBIFRBTUFSQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkFSS0FQQSBUT01BXHUwMTYwIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQkRBUklcdTAxMDYgTklLT0xBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCREFSSVx1MDEwNiBaT1JJQ0EiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJJIE5BTkRPUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQk9WSVx1MDEwNiBNSUxBTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQlJBREkgQUdORVpJSkEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJSQURJIElWQU4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJSQURJIEpFTEVOQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQlJBREkgTEpVQklDQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQlJBREkgU1RFVkFOIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCUkRBIE1BUlRJTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBQlJJTE8gQk9HREFOIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCUklMTyBCUkFOSVNMQVYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUJSSUxPIExBWkFSIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCUklMTyBMSlVCSUNBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FCUklMTyBTUEFTT0pBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FERVx1MDE2MCBaREVOS0EiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQURFU0tJIEJMQUdPSkUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQURPVlNLSSBWTEFESU1JUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBR0xKRVZJXHUwMTA2IFRPTUEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUdPUk9WSVx1MDEwNiBWTEFESU1JUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBSkEgVkFOS0EiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUpJXHUwMTA2IEJPR09MSlVCIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FKSVx1MDEwNiBCT1JJU0xBViIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBSklcdTAxMDYgUkFET1NMQVYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtcdTAxNjBJUkFOIE1JTEFESU4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtBTiBFVUdFTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0FOIEVWR0VOSUpFIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLQU4gSVZBTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0FOIEpVTElKQU4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtBTiBNSUhBSkxPIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLQU4gU1RFVkFOIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLQU4gVkxBRElNSVIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtBTiBWTEFESU1JUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0FOIFZMQURJTUlSIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLQVJBIEFOQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0FSRVZJXHUwMTA2IE1PTUlSIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLQVJFVklcdTAxMDYgTkVERUxKS08iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtJIFx1MDE2MEFORE9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLSSBBTUFMSUpBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDEwQ0FLSSBBTkRSQVx1MDE2MCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAxMENBS0kgTEFESVNMQVYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtJIExBSk9cdTAxNjAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTBDQUtJIExBU0xPIiB9OyAKKyAgICAgICAgCisgICAgICAgIENvbGxhdGlvbktleSB0ZXN0S2V5W10gPSBuZXcgQ29sbGF0aW9uS2V5W3Rlc3RTdHIubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0U3RyLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgdGVzdEtleVtpXSA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KHRlc3RTdHJbaV0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBBcnJheXMuc29ydCh0ZXN0S2V5KTsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IHRlc3RLZXkubGVuZ3RoIC0gMTsgaSArKykgeworICAgICAgICAgICAgQ29sbGF0aW9uS2V5IGxvd2VyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgPSB0ZXN0S2V5W2ldLmdldEJvdW5kKENvbGxhdGlvbktleS5Cb3VuZE1vZGUuTE9XRVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSBpICsgMTsgaiA8IHRlc3RLZXkubGVuZ3RoOyBqICsrKSB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5IHVwcGVyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgPSB0ZXN0S2V5W2pdLmdldEJvdW5kKENvbGxhdGlvbktleS5Cb3VuZE1vZGUuVVBQRVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gaTsgayA8PSBqOyBrICsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChsb3dlci5jb21wYXJlVG8odGVzdEtleVtrXSkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiUHJvYmxlbSB3aXRoIGxvd2VyIGJvdW5kIGF0IGkgPSAiICsgaSArICIgaiA9ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgaiArICIgayA9ICIgKyBrKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAodXBwZXIuY29tcGFyZVRvKHRlc3RLZXlba10pIDw9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQcm9ibGVtIHdpdGggdXBwZXIgYm91bmQgYXQgaSA9ICIgKyBpICsgIiBqID0gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBqICsgIiBrID0gIiArIGspOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3QubGVuZ3RoOyBpICsrKSAKKyAgICAgICAgeworICAgICAgICAgICAgQ29sbGF0aW9uS2V5IGtleSA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KHRlc3RbaV0pOworICAgICAgICAgICAgQ29sbGF0aW9uS2V5IGxvd2VyID0ga2V5LmdldEJvdW5kKENvbGxhdGlvbktleS5Cb3VuZE1vZGUuTE9XRVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgIENvbGxhdGlvbktleSB1cHBlciA9IGtleS5nZXRCb3VuZChDb2xsYXRpb25LZXkuQm91bmRNb2RlLlVQUEVSX0xPTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSBpICsgMTsgaiA8IHRlc3QubGVuZ3RoOyBqICsrKSB7CisgICAgICAgICAgICAgICAga2V5ID0gY29sbC5nZXRDb2xsYXRpb25LZXkodGVzdFtqXSk7CisgICAgICAgICAgICAgICAgaWYgKGxvd2VyLmNvbXBhcmVUbyhrZXkpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUHJvYmxlbSB3aXRoIGxvd2VyIGJvdW5kIGkgPSAiICsgaSArICIgaiA9ICIgKyBqKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHVwcGVyLmNvbXBhcmVUbyhrZXkpIDw9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlByb2JsZW0gd2l0aCB1cHBlciBib3VuZCBpID0gIiArIGkgKyAiIGogPSAiICsgaik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmaW5hbCB2b2lkIFRlc3RHZXRBbGwoKSB7CisgICAgICAgIExvY2FsZVtdIGxpc3QgPSBDb2xsYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGludCBlcnJvckNvdW50ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBsb2coIkxvY2FsZSBuYW1lOiAiKTsKKyAgICAgICAgICAgIGxvZyhsaXN0W2ldLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgbG9nKCIgLCB0aGUgZGlzcGxheSBuYW1lIGlzIDogIik7CisgICAgICAgICAgICBsb2dsbihsaXN0W2ldLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIGxvZ2xuKCIgICAgIC4uLi4uLiBPciBkaXNwbGF5IGFzOiAiICsgQ29sbGF0b3IuZ2V0RGlzcGxheU5hbWUobGlzdFtpXSkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgICAgIC4uLi4uLiBhbmQgZGlzcGxheSBpbiBDaGluZXNlOiAiICsgCisgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuZ2V0RGlzcGxheU5hbWUobGlzdFtpXSxMb2NhbGUuQ0hJTkEpKTsgCisgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICBlcnJvckNvdW50Kys7CisgICAgICAgICAgICAgICAgbG9nbG4oImNvdWxkIG5vdCBnZXQgZGlzcGxheU5hbWUgZm9yICIgKyBsaXN0W2ldKTsKKyAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIGlmKGVycm9yQ291bnQ+MCl7CisgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCB0aGUgbG9jYWxlIGRhdGEuIik7CisgICAgICAgIH0KKyAgICB9ICAgIAorCisgICAgcHJpdmF0ZSB2b2lkCisgICAgZG9TZXRzVGVzdChVbmljb2RlU2V0IHJlZiwgVW5pY29kZVNldCBzZXQsIFN0cmluZyBpblNldCwgU3RyaW5nIG91dFNldCkgeworICAgICAgICAKKyAgICAgICAgc2V0LmNsZWFyKCk7CisgICAgICAgIHNldC5hcHBseVBhdHRlcm4oaW5TZXQpOworICAgICAgICAKKyAgICAgICAgaWYoIXJlZi5jb250YWluc0FsbChzZXQpKSB7CisgICAgICAgICAgICBlcnIoIlNvbWUgc3R1ZmYgZnJvbSAiK2luU2V0KyIgaXMgbm90IHByZXNlbnQgaW4gdGhlIHNldFxuIik7ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNldC5jbGVhcigpOworICAgICAgICBzZXQuYXBwbHlQYXR0ZXJuKG91dFNldCk7CisgICAgICAgIGlmKCFyZWYuY29udGFpbnNOb25lKHNldCkpIHsKKyAgICAgICAgICAgIGVycigiU29tZSBzdHVmZiBmcm9tICIrb3V0U2V0KyIgaXMgcHJlc2VudCBpbiB0aGUgc2V0XG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0Q29udHJhY3Rpb25zKCl0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgLyogICAgICAgIHN0YXRpYyBzdHJ1Y3QgeworICAgICAgICAgY29uc3QgY2hhciogbG9jYWxlOworICAgICAgICAgY29uc3QgY2hhciogaW5Db250czsKKyAgICAgICAgIGNvbnN0IGNoYXIqIG91dENvbnRzOworICAgICAgICAgY29uc3QgY2hhciogaW5FeHA7CisgICAgICAgICBjb25zdCBjaGFyKiBvdXRFeHA7CisgICAgICAgICBjb25zdCBjaGFyKiB1bnNhZmVDb2RlVW5pdHM7CisgICAgICAgICBjb25zdCBjaGFyKiBzYWZlQ29kZVVuaXRzOworICAgICAgICAgfQorICAgICAgICAgKi8KKyAgICAgICAgU3RyaW5nIHRlc3RzW11bXSA9IHsKKyAgICAgICAgICAgICAgICB7ICJydSIsIAorICAgICAgICAgICAgICAgICAgICAiW3tcdTA0NzRcdTAzMEZ9e1x1MDQ3NVx1MDMwRn17XHUwNEQ4XHUwMzA4fXtcdTA0RDlcdTAzMDh9e1x1MDRFOFx1MDMwOH17XHUwNEU5XHUwMzA4fV0iLCAKKyAgICAgICAgICAgICAgICAgICAgIlt7XHUwNDMwXHUwMzA2fXtcdTA0MTBcdTAzMDZ9e1x1MDQzMFx1MDMwOH17XHUwNDEwXHUwMzA2fXtcdTA0MzNcdTAzMDF9e1x1MDQxM1x1MDMwMX1dIiwKKyAgICAgICAgICAgICAgICAgICAgIltcdTAwZTZdIiwKKyAgICAgICAgICAgICAgICAgICAgIlthXSIsCisgICAgICAgICAgICAgICAgICAgICJbXHUwNDc0XHUwNDc1XHUwNGQ4XHUwNGQ5XHUwNGU4XHUwNGU5XSIsCisgICAgICAgICAgICAgICAgICAgICJbYUFiQlx1MDQzMFx1MDQxMFx1MDQzM1x1MDQxM10iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7ICJ1ayIsCisgICAgICAgICAgICAgICAgICAgICJbe1x1MDQ3NFx1MDMwRn17XHUwNDc1XHUwMzBGfXtcdTA0RDhcdTAzMDh9e1x1MDREOVx1MDMwOH17XHUwNEU4XHUwMzA4fXtcdTA0RTlcdTAzMDh9IisgCisgICAgICAgICAgICAgICAgICAgICJ7XHUwNDMwXHUwMzA2fXtcdTA0MTBcdTAzMDZ9e1x1MDQzMFx1MDMwOH17XHUwNDEwXHUwMzA2fXtcdTA0MzNcdTAzMDF9e1x1MDQxM1x1MDMwMX1dIiwKKyAgICAgICAgICAgICAgICAgICAgIltdIiwKKyAgICAgICAgICAgICAgICAgICAgIltcdTAwZTZdIiwKKyAgICAgICAgICAgICAgICAgICAgIlthXSIsCisgICAgICAgICAgICAgICAgICAgICJbXHUwNDc0XHUwNDc1XHUwNEQ4XHUwNEQ5XHUwNEU4XHUwNEU5XHUwNDMwXHUwNDEwXHUwNDMzXHUwNDEzXSIsCisgICAgICAgICAgICAgICAgICAgICJbYUFiQnh2XSIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7ICJzaCIsCisgICAgICAgICAgICAgICAgICAgICJbe0NcdTAzMDF9e0NcdTAzMEN9e0NcdTAzNDF9e0RaXHUwMzBDfXtEelx1MDMwQ317RFx1MDE3RH17RFx1MDE3RX17bGp9e25qfV0iLAorICAgICAgICAgICAgICAgICAgICAiW3tcdTMwOWRcdTMwOTl9e1x1MzBmZFx1MzA5OX1dIiwKKyAgICAgICAgICAgICAgICAgICAgIltcdTAwZTZdIiwKKyAgICAgICAgICAgICAgICAgICAgIlthXSIsCisgICAgICAgICAgICAgICAgICAgICJbbmxjZHpOTENEWl0iLAorICAgICAgICAgICAgICAgICAgICAiW2phYnZdIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeyAiamEiLAorICAgICAgICAgICAgICAgICAgICAiW3tcdTMwNTNcdTMwOTlcdTMwOUR9e1x1MzA1M1x1MzA5OVx1MzA5RFx1MzA5OX17XHUzMDUzXHUzMDk5XHUzMDlFfXtcdTMwNTNcdTMwOTlcdTMwRkN9e1x1MzA1M1x1MzA5RH17XHUzMDUzXHUzMDlEXHUzMDk5fXtcdTMwNTNcdTMwOUV9e1x1MzA1M1x1MzBGQ317XHUzMEIzXHUzMDk5XHUzMEZDfXtcdTMwQjNcdTMwOTlcdTMwRkR9e1x1MzBCM1x1MzA5OVx1MzBGRFx1MzA5OX17XHUzMEIzXHUzMDk5XHUzMEZFfXtcdTMwQjNcdTMwRkN9e1x1MzBCM1x1MzBGRH17XHUzMEIzXHUzMEZEXHUzMDk5fXtcdTMwQjNcdTMwRkV9XSIsCisgICAgICAgICAgICAgICAgICAgICJbe1x1MzBGRFx1MzA5OX17XHUzMDlEXHUzMDk5fXtcdTMwNTNcdTMwOTl9e1x1MzBCM1x1MzA5OX17bGp9e25qfV0iLAorICAgICAgICAgICAgICAgICAgICAiW1x1MzBGRVx1MDBlNl0iLAorICAgICAgICAgICAgICAgICAgICAiW2FdIiwKKyAgICAgICAgICAgICAgICAgICAgIltcdTMwOTldIiwKKyAgICAgICAgICAgICAgICAgICAgIltdIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIFVuaWNvZGVTZXQgY29udHMgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBVbmljb2RlU2V0IGV4cCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgCisgICAgICAgIGZvcihpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBsb2NhbGU6ICIrIHRlc3RzW2ldWzBdKTsKKyAgICAgICAgICAgIGNvbGwgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IFVMb2NhbGUodGVzdHNbaV1bMF0pKTsKKyAgICAgICAgICAgIGNvbGwuZ2V0Q29udHJhY3Rpb25zQW5kRXhwYW5zaW9ucyhjb250cywgZXhwLCB0cnVlKTsKKyAgICAgICAgICAgIGxvZ2xuKCJDb250cmFjdGlvbnMgIitjb250cy5zaXplKCkrIjpcbiIrY29udHMudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgICAgIGRvU2V0c1Rlc3QoY29udHMsIHNldCwgdGVzdHNbaV1bMV0sIHRlc3RzW2ldWzJdKTsKKyAgICAgICAgICAgIGxvZ2xuKCJFeHBhbnNpb25zICIrZXhwLnNpemUoKSsiOlxuIitleHAudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgICAgIGRvU2V0c1Rlc3QoZXhwLCBzZXQsIHRlc3RzW2ldWzNdLCB0ZXN0c1tpXVs0XSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE5vIHVuc2FmZSBzZXQgaW4gSUNVNEoKKyAgICAgICAgICAgIC8vbm9Db250cyA9IHVjb2xfZ2V0VW5zYWZlU2V0KGNvbGwsIGNvbnRzLCAmc3RhdHVzKTsKKyAgICAgICAgICAgIC8vZG9TZXRzVGVzdChjb250cywgc2V0LCB0ZXN0c1tpXVs1XSwgdGVzdHNbaV1bNl0pOworICAgICAgICAgICAgLy9sb2dfdmVyYm9zZSgiVW5zYWZlcyAiK2NvbnRzLnNpemUoKSsiOlxuIitjb250cy50b1BhdHRlcm4odHJ1ZSkrIlxuIik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQ2hpbmVzZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25DaGluZXNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmN2JkMTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQ2hpbmVzZVRlc3QuamF2YQpAQCAtMCwwICsxLDQ1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9Db2xsYXRpb25UdXJraXNoVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvdHJjb2xsLmNwcAorICoqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKyAKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworIAorcHVibGljIGNsYXNzIENvbGxhdGlvbkNoaW5lc2VUZXN0IGV4dGVuZHMgVGVzdEZtd2t7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbmV3IENvbGxhdGlvbkNoaW5lc2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uQ2hpbmVzZVRlc3QoKSAKKyAgICB7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RQaW5ZaW4oKSAKKyAgICB7CisgICAgICAgIFN0cmluZyBzZXFbXSAKKyAgICAgICAgICAgID0geyJcdTk2M2YiLCAiXHU1NTRhIiwgIlx1NTRjZSIsICJcdTYzNzEiLCAiXHU3MjMxIiwgIlx1OWY5OCIsCisgICAgICAgICAgICAgICAiXHU0ZTVjIiwgIlx1OGJhYSIsICJcdTRlNDIiLCAiXHU1M2M4In07CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGxhdG9yID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTG9jYWxlKCJ6aCIsICIiLCAiUElOWUlOIikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3Igb2YgemhfX1BJTllJTiBsb2NhbGUiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNlcS5sZW5ndGggLSAxOyBpICsrKSB7CisgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCBjb2xsYXRvciwgc2VxW2ldLCBzZXFbaSArIDFdLCAtMSk7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkN1cnJlbmN5VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkN1cnJlbmN5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2NmEwMWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQ3VycmVuY3lUZXN0LmphdmEKQEAgLTAsMCArMSwxODcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9Db2xsYXRpb25DdXJyZW5jeVRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2N1cnJjb2xsLmNwcAorICoqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKyAKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworIAorcHVibGljIGNsYXNzIENvbGxhdGlvbkN1cnJlbmN5VGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENvbGxhdGlvbkN1cnJlbmN5VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEN1cnJlbmN5KCkgeworICAgICAgICAvLyBBbGwgdGhlIGN1cnJlbmN5IHN5bWJvbHMsIGluIGNvbGxhdGlvbiBvcmRlcgorICAgICAgICBjaGFyW11bXSBjdXJyZW5jeSA9IHsKKyAgICAgICAgICAgIHsgMHgwMEE0IH0sIC8qMDBBNDsgTDsgWzE0IDM2LCAwMywgMDNdICAgICMgWzA4MkIuMDAyMC4wMDAyXSAjIENVUlJFTkNZIFNJR04qLworICAgICAgICAgICAgeyAweDAwQTIgfSwgLyowMEEyOyBMOyBbMTQgMzgsIDAzLCAwM10gICAgIyBbMDgyQy4wMDIwLjAwMDJdICMgQ0VOVCBTSUdOKi8KKyAgICAgICAgICAgIHsgMHhGRkUwIH0sIC8qRkZFMDsgTDsgWzE0IDM4LCAwMywgMDVdICAgICMgWzA4MkMuMDAyMC4wMDAzXSAjIEZVTExXSURUSCBDRU5UIFNJR04qLworICAgICAgICAgICAgeyAweDAwMjQgfSwgLyowMDI0OyBMOyBbMTQgM0EsIDAzLCAwM10gICAgIyBbMDgyRC4wMDIwLjAwMDJdICMgRE9MTEFSIFNJR04qLworICAgICAgICAgICAgeyAweEZGMDQgfSwgLypGRjA0OyBMOyBbMTQgM0EsIDAzLCAwNV0gICAgIyBbMDgyRC4wMDIwLjAwMDNdICMgRlVMTFdJRFRIIERPTExBUiBTSUdOKi8KKyAgICAgICAgICAgIHsgMHhGRTY5IH0sIC8qRkU2OTsgTDsgWzE0IDNBLCAwMywgMURdICAgICMgWzA4MkQuMDAyMC4wMDBGXSAjIFNNQUxMIERPTExBUiBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgwMEEzIH0sIC8qMDBBMzsgTDsgWzE0IDNDLCAwMywgMDNdICAgICMgWzA4MkUuMDAyMC4wMDAyXSAjIFBPVU5EIFNJR04qLworICAgICAgICAgICAgeyAweEZGRTEgfSwgLypGRkUxOyBMOyBbMTQgM0MsIDAzLCAwNV0gICAgIyBbMDgyRS4wMDIwLjAwMDNdICMgRlVMTFdJRFRIIFBPVU5EIFNJR04qLworICAgICAgICAgICAgeyAweDAwQTUgfSwgLyowMEE1OyBMOyBbMTQgM0UsIDAzLCAwM10gICAgIyBbMDgyRi4wMDIwLjAwMDJdICMgWUVOIFNJR04qLworICAgICAgICAgICAgeyAweEZGRTUgfSwgLypGRkU1OyBMOyBbMTQgM0UsIDAzLCAwNV0gICAgIyBbMDgyRi4wMDIwLjAwMDNdICMgRlVMTFdJRFRIIFlFTiBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgwOUYyIH0sIC8qMDlGMjsgTDsgWzE0IDQwLCAwMywgMDNdICAgICMgWzA4MzAuMDAyMC4wMDAyXSAjIEJFTkdBTEkgUlVQRUUgTUFSSyovCisgICAgICAgICAgICB7IDB4MDlGMyB9LCAvKjA5RjM7IEw7IFsxNCA0MiwgMDMsIDAzXSAgICAjIFswODMxLjAwMjAuMDAwMl0gIyBCRU5HQUxJIFJVUEVFIFNJR04qLworICAgICAgICAgICAgeyAweDBFM0YgfSwgLyowRTNGOyBMOyBbMTQgNDQsIDAzLCAwM10gICAgIyBbMDgzMi4wMDIwLjAwMDJdICMgVEhBSSBDVVJSRU5DWSBTWU1CT0wgQkFIVCovCisgICAgICAgICAgICB7IDB4MTdEQiB9LCAvKjE3REI7IEw7IFsxNCA0NiwgMDMsIDAzXSAgICAjIFswODMzLjAwMjAuMDAwMl0gIyBLSE1FUiBDVVJSRU5DWSBTWU1CT0wgUklFTCovCisgICAgICAgICAgICB7IDB4MjBBMCB9LCAvKjIwQTA7IEw7IFsxNCA0OCwgMDMsIDAzXSAgICAjIFswODM0LjAwMjAuMDAwMl0gIyBFVVJPLUNVUlJFTkNZIFNJR04qLworICAgICAgICAgICAgeyAweDIwQTEgfSwgLyoyMEExOyBMOyBbMTQgNEEsIDAzLCAwM10gICAgIyBbMDgzNS4wMDIwLjAwMDJdICMgQ09MT04gU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBMiB9LCAvKjIwQTI7IEw7IFsxNCA0QywgMDMsIDAzXSAgICAjIFswODM2LjAwMjAuMDAwMl0gIyBDUlVaRUlSTyBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEEzIH0sIC8qMjBBMzsgTDsgWzE0IDRFLCAwMywgMDNdICAgICMgWzA4MzcuMDAyMC4wMDAyXSAjIEZSRU5DSCBGUkFOQyBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEE0IH0sIC8qMjBBNDsgTDsgWzE0IDUwLCAwMywgMDNdICAgICMgWzA4MzguMDAyMC4wMDAyXSAjIExJUkEgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBNSB9LCAvKjIwQTU7IEw7IFsxNCA1MiwgMDMsIDAzXSAgICAjIFswODM5LjAwMjAuMDAwMl0gIyBNSUxMIFNJR04qLworICAgICAgICAgICAgeyAweDIwQTYgfSwgLyoyMEE2OyBMOyBbMTQgNTQsIDAzLCAwM10gICAgIyBbMDgzQS4wMDIwLjAwMDJdICMgTkFJUkEgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBNyB9LCAvKjIwQTc7IEw7IFsxNCA1NiwgMDMsIDAzXSAgICAjIFswODNCLjAwMjAuMDAwMl0gIyBQRVNFVEEgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBOSB9LCAvKjIwQTk7IEw7IFsxNCA1OCwgMDMsIDAzXSAgICAjIFswODNDLjAwMjAuMDAwMl0gIyBXT04gU0lHTiovCisgICAgICAgICAgICB7IDB4RkZFNiB9LCAvKkZGRTY7IEw7IFsxNCA1OCwgMDMsIDA1XSAgICAjIFswODNDLjAwMjAuMDAwM10gIyBGVUxMV0lEVEggV09OIFNJR04qLworICAgICAgICAgICAgeyAweDIwQUEgfSwgLyoyMEFBOyBMOyBbMTQgNUEsIDAzLCAwM10gICAgIyBbMDgzRC4wMDIwLjAwMDJdICMgTkVXIFNIRVFFTCBTSUdOKi8KKyAgICAgICAgICAgIHsgMHgyMEFCIH0sIC8qMjBBQjsgTDsgWzE0IDVDLCAwMywgMDNdICAgICMgWzA4M0UuMDAyMC4wMDAyXSAjIERPTkcgU0lHTiovCisgICAgICAgICAgICB7IDB4MjBBQyB9LCAvKjIwQUM7IEw7IFsxNCA1RSwgMDMsIDAzXSAgICAjIFswODNGLjAwMjAuMDAwMl0gIyBFVVJPIFNJR04qLworICAgICAgICAgICAgeyAweDIwQUQgfSwgLyoyMEFEOyBMOyBbMTQgNjAsIDAzLCAwM10gICAgIyBbMDg0MC4wMDIwLjAwMDJdICMgS0lQIFNJR04qLworICAgICAgICAgICAgeyAweDIwQUUgfSwgLyoyMEFFOyBMOyBbMTQgNjIsIDAzLCAwM10gICAgIyBbMDg0MS4wMDIwLjAwMDJdICMgVFVHUklLIFNJR04qLworICAgICAgICAgICAgeyAweDIwQUYgfSAvKjIwQUY7IEw7IFsxNCA2NCwgMDMsIDAzXSAgICAjIFswODQyLjAwMjAuMDAwMl0gIyBEUkFDSE1BIFNJR04qLworICAgICAgICB9OworICAgIAorICAgICAgICBpbnQgaSwgajsKKyAgICAgICAgaW50IGV4cGVjdGVkUmVzdWx0ID0gMDsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIAorICAgICAgICAvLyBDb21wYXJlIGVhY2ggY3VycmVuY3kgc3ltYm9sIGFnYWluc3QgYWxsIHRoZQorICAgICAgICAvLyBjdXJyZW5jeSBzeW1ib2xzLCBpbmNsdWRpbmcgaXRzZWxmCisgICAgICAgIFN0cmluZyBzb3VyY2U7CisgICAgICAgIFN0cmluZyB0YXJnZXQ7CisgICAgICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY3VycmVuY3kubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBjdXJyZW5jeS5sZW5ndGg7IGogKz0gMSkgeworICAgICAgICAgICAgICAgIHNvdXJjZSA9IG5ldyBTdHJpbmcoY3VycmVuY3lbaV0pOworICAgICAgICAgICAgICAgIHRhcmdldCA9IG5ldyBTdHJpbmcoY3VycmVuY3lbal0pOworCisgICAgICAgICAgICAgICAgaWYgKGkgPCBqKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0ID0gLTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICggaSA9PSBqKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkUmVzdWx0ID0gMDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCA9IDE7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBjLmNvbXBhcmUoc291cmNlLCB0YXJnZXQpOworICAgICAgICAgICAgICAgIENvbGxhdGlvbktleSBzb3VyY2VLZXkgPSBudWxsOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc291cmNlS2V5ID0gYy5nZXRDb2xsYXRpb25LZXkoc291cmNlKTsKKworICAgICAgICAgICAgICAgIGlmIChzb3VyY2VLZXkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ291bGRuJ3QgZ2V0IGNvbGxhdGlvbktleSBmb3Igc291cmNlIik7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIENvbGxhdGlvbktleSB0YXJnZXRLZXkgPSBudWxsOworICAgICAgICAgICAgICAgIHRhcmdldEtleSA9IGMuZ2V0Q29sbGF0aW9uS2V5KHRhcmdldCk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldEtleSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZG4ndCBnZXQgY29sbGF0aW9uS2V5IGZvciBzb3VyY2UiKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvdXJjZUtleS5jb21wYXJlVG8odGFyZ2V0S2V5KTsKKworICAgICAgICAgICAgICAgIHJlcG9ydENSZXN1bHQoIHNvdXJjZSwgdGFyZ2V0LCBzb3VyY2VLZXksIHRhcmdldEtleSwgY29tcGFyZVJlc3VsdCwga2V5UmVzdWx0LCBjb21wYXJlUmVzdWx0LCBleHBlY3RlZFJlc3VsdCApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICkgeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KXsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25EdW1teVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25EdW1teVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2U2N2NkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkR1bW15VGVzdC5qYXZhCkBAIC0wLDAgKzEsNTEzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IENvbGxhdGUvQ29sbGF0aW9uRHVtbXlUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9hbGxjb2xsLmNwcAorICogICAgICAgICAgICAgICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvY2ludGx0c3QvY2FsbGNvbGwuYworICoqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKyAKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uRHVtbXlUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uRHVtbXlUZXN0KCkucnVuKGFyZ3MpOworICAgICAgICAvLyBuZXcgQ29sbGF0aW9uRHVtbXlUZXN0KCkuVGVzdFZhcmlhYmxlVG9wKCk7CisgICAgfQorICAgIAorICAgIC8vdGVzdFNvdXJjZUNhc2VzW11bXSBhbmQgdGVzdFRhcmdldENhc2VzW11bXSwgdGVzdENhc2VzW11bXSBhcmUgcG9ydGVkIGZyb20gdGhlIGZpbGUgY2FsbGNvbGwuYyBpbiBpY3U0YworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RTb3VyY2VDYXNlcyA9IHsKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4MjcsIDB4NjN9LAorICAgICAgICB7MHg2MywgMHg2ZiwgMHgyZCwgMHg2ZiwgMHg3MH0sCisgICAgICAgIHsweDYxLCAweDYyfSwKKyAgICAgICAgezB4NjEsIDB4NmQsIDB4NzAsIDB4NjUsIDB4NzIsIDB4NzMsIDB4NjEsIDB4NjR9LAorICAgICAgICB7MHg2MSwgMHg2YywgMHg2Y30sCisgICAgICAgIHsweDY2LCAweDZmLCAweDc1LCAweDcyfSwKKyAgICAgICAgezB4NjYsIDB4NjksIDB4NzYsIDB4NjV9LAorICAgICAgICB7MHgzMX0sCisgICAgICAgIHsweDMxfSwKKyAgICAgICAgezB4MzF9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDEwIAorICAgICAgICB7MHgzMn0sCisgICAgICAgIHsweDMyfSwKKyAgICAgICAgezB4NDgsIDB4NjUsIDB4NmMsIDB4NmMsIDB4NmZ9LAorICAgICAgICB7MHg2MSwgMHgzYywgMHg2Mn0sCisgICAgICAgIHsweDYxLCAweDNjLCAweDYyfSwKKyAgICAgICAgezB4NjEsIDB4NjMsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg2MywgMHg0OCwgMHg2M30sICAvLyAgc2ltcGxlIHRlc3QgCisgICAgICAgIHsweDcwLCAweDAwRUEsIDB4NjMsIDB4NjgsIDB4NjV9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDIwIAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHgwMEU2LCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NjMsIDB4NDgsIDB4NjN9LCAgLy8gIHByaW1hcnkgdGVzdCAKKyAgICAgICAgezB4NjIsIDB4NmMsIDB4NjEsIDB4NjMsIDB4NmJ9LAorICAgICAgICB7MHg2NiwgMHg2ZiwgMHg3NSwgMHg3Mn0sCisgICAgICAgIHsweDY2LCAweDY5LCAweDc2LCAweDY1fSwKKyAgICAgICAgezB4MzF9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAzMCAKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjMsIDB4NDh9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDYzLCAweDQ4LCAweDYzfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMzQgCisgICAgICAgIHsweDYxLCAweDYzLCAweDY1LCAweDMwfSwKKyAgICAgICAgezB4MzEsIDB4MzB9LAorICAgICAgICB7MHg3MCwgMHgwMEVBLDB4MzB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMzcgICAgIAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0VGFyZ2V0Q2FzZXMgPSB7CisgICAgICAgIHsweDYxLCAweDYyLCAweDYzLCAweDI3fSwKKyAgICAgICAgezB4NDMsIDB4NGYsIDB4NGYsIDB4NTB9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDI2fSwKKyAgICAgICAgezB4MjZ9LAorICAgICAgICB7MHgzNH0sCisgICAgICAgIHsweDM1fSwKKyAgICAgICAgezB4NmYsIDB4NmUsIDB4NjV9LAorICAgICAgICB7MHg2ZSwgMHg2ZSwgMHg2NX0sCisgICAgICAgIHsweDcwLCAweDZlLCAweDY1fSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDEwIAorICAgICAgICB7MHg3NCwgMHg3NywgMHg2Zn0sCisgICAgICAgIHsweDc1LCAweDc3LCAweDZmfSwKKyAgICAgICAgezB4NjgsIDB4NjUsIDB4NmMsIDB4NmMsIDB4NGZ9LAorICAgICAgICB7MHg2MSwgMHgzYywgMHgzZCwgMHg2Mn0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NDMsIDB4NDgsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg0MywgMHg0OCwgMHg2M30sICAvLyAgc2ltcGxlIHRlc3QgCisgICAgICAgIHsweDcwLCAweDAwRTksIDB4NjMsIDB4NjgsIDB4MDBFOX0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NDIsIDB4NDN9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgMjAgCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzLCAweDY4fSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjR9LAorICAgICAgICB7MHgwMEU0LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4MDBDNiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDQzLCAweDQ4LCAweDYzfSwgIC8vICBwcmltYXJ5IHRlc3QgCisgICAgICAgIHsweDYyLCAweDZjLCAweDYxLCAweDYzLCAweDZiLCAweDJkLCAweDYyLCAweDY5LCAweDcyLCAweDY0fSwKKyAgICAgICAgezB4MzR9LAorICAgICAgICB7MHgzNX0sCisgICAgICAgIHsweDZmLCAweDZlLCAweDY1fSwKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg0MiwgMHg2M30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAzMCAKKyAgICAgICAgezB4NjEsIDB4NjIsIDB4NjMsIDB4Njh9LAorICAgICAgICB7MHg2MSwgMHg2MiwgMHg2NH0sCisgICAgICAgIHsweDYxLCAweDQzLCAweDQ4LCAweDYzfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAzNCAKKyAgICAgICAgezB4NjEsIDB4NjMsIDB4NjUsIDB4MzB9LAorICAgICAgICB7MHgzMSwgMHgzMH0sCisgICAgICAgIHsweDcwLCAweDAwRUIsMHgzMH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAzNyAKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RDYXNlcyA9IHsKKyAgICAgICAgezB4NjF9LAorICAgICAgICB7MHg0MX0sCisgICAgICAgIHsweDAwZTR9LAorICAgICAgICB7MHgwMGM0fSwKKyAgICAgICAgezB4NjEsIDB4NjV9LAorICAgICAgICB7MHg2MSwgMHg0NX0sCisgICAgICAgIHsweDQxLCAweDY1fSwKKyAgICAgICAgezB4NDEsIDB4NDV9LAorICAgICAgICB7MHgwMGU2fSwKKyAgICAgICAgezB4MDBjNn0sCisgICAgICAgIHsweDYyfSwKKyAgICAgICAgezB4NjN9LAorICAgICAgICB7MHg3YX0KKyAgICB9OworICAgIAorICAgIGludFtdIHJlc3VsdHMgPSB7CisgICAgICAgIC0xLAorICAgICAgICAtMSwgLy9Db2xsYXRvcjo6R1JFQVRFUiwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgICAxLAorICAgICAgICAtMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDEwIAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAvLyAgdGVzdCBwcmltYXJ5ID4gMTcgCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIDIwIAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIC0xLAorICAgIC8vICB0ZXN0IHNlY29uZGFyeSA+IDI2IAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAwLAorICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAzMCAKKyAgICAgICAgMCwKKyAgICAgICAgLTEsCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAzNCAKKyAgICAgICAgMCwKKyAgICAgICAgMCwKKyAgICAgICAgLTEgCisgICAgfTsKKyAgICAKKyAgICBmaW5hbCBpbnQgTUFYX1RPS0VOX0xFTiA9IDE2OworICAgIAorICAgIHB1YmxpYyBSdWxlQmFzZWRDb2xsYXRvciBteUNvbGxhdGlvbjsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uRHVtbXlUZXN0KCkgeworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nIHJ1bGVzZXQgPSAiJiBDIDwgY2gsIGNILCBDaCwgQ0ggJiBGaXZlLCA1ICYgRm91ciwgNCAmIG9uZSwgMSAmIEFtcGVyc2FuZDsgJyYnICYgVHdvLCAyICI7CisgICAgICAgIC8vIFN0cmluZyBydWxlc2V0ID0gIiYgRm91ciwgNCI7CisgICAgICAgIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAgICAgbXlDb2xsYXRpb24gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXNldCk7CisgICAgfQorICAgIAorICAgIC8vIHBlcmZvcm0gdGVzdCB3aXRoIHN0cmVuZ3RoIHRlcnRpYXJ5CisgICAgcHVibGljIHZvaWQgVGVzdFRlcnRpYXJ5KCkgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDE3IDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHBlcmZvcm0gdGVzdCB3aXRoIHN0cmVuZ3RoIFBSSU1BUlkKKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJpbWFyeSgpIHsKKyAgICAgICAvLyBwcm9ibGVtIGluIHN0cmNvbGxpbmMgZm9yIHVuZmluc2hlZCBjb250cmFjdGlvbnMgCisgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGZvciAoaW50IGkgPSAxNzsgaSA8IDI2IDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vcGVyZm9ybSB0ZXN0IHdpdGggc3RyZW5ndGggU0VDT05EQVJZCisgICAgcHVibGljIHZvaWQgVGVzdFNlY29uZGFyeSgpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIGZvciAoaSA9IDI2OyBpIDwgMzQ7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KG15Q29sbGF0aW9uLCB0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBwZXJmb3JtIGV4dHJhIHRlc3RzCisgICAgcHVibGljIHZvaWQgVGVzdEV4dHJhKCkgeworICAgICAgICBpbnQgaSwgajsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGVzdENhc2VzLmxlbmd0aCAtIDE7IGkrKykgeworICAgICAgICAgICAgZm9yIChqID0gaSArIDE7IGogPCB0ZXN0Q2FzZXMubGVuZ3RoOyBqICs9IDEpIHsKKyAgICAgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RDYXNlc1tpXSwgdGVzdENhc2VzW2pdLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SWRlbnRpY2FsKCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuSURFTlRJQ0FMKTsKKyAgICAgICAgZm9yIChpPSAzNDsgaTwzNzsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RTb3VyY2VDYXNlc1tpXSwgdGVzdFRhcmdldENhc2VzW2ldLCByZXN1bHRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RKQjU4MSgpIHsKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9ICJUSElTSVNBVEVTVC4iOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlRoaXNpc2F0ZXN0LiI7CisgICAgICAgIENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogRmFpbGVkIHRvIGNyZWF0ZSB0aGUgY29sbGF0b3IgZm9yIDogZW5fVVNcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCA9IGNvbGwuY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgIC8vIHJlc3VsdCBpcyAxLCBzZWNvbmRhcnkgZGlmZmVyZW5jZXMgb25seSBmb3IgaWdub3JhYmxlIHNwYWNlIGNoYXJhY3RlcnMKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAxKSB7CisgICAgICAgICAgICBlcnJsbigiQ29tcGFyaW5nIHR3byBzdHJpbmdzIHdpdGggb25seSBzZWNvbmRhcnkgZGlmZmVyZW5jZXMgaW4gQyBmYWlsZWQuXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gVG8gY29tcGFyZSB0aGVtIHdpdGgganVzdCBwcmltYXJ5IGRpZmZlcmVuY2VzIAorICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICByZXN1bHQgPSBjb2xsLmNvbXBhcmUoc291cmNlLCB0YXJnZXQpOworICAgICAgICAvLyByZXN1bHQgaXMgMCAKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiQ29tcGFyaW5nIHR3byBzdHJpbmdzIHdpdGggbm8gZGlmZmVyZW5jZXMgaW4gQyBmYWlsZWQuXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAKKyAgICAgICAgICAKKyAgICAgICAgLy8gTm93LCBkbyB0aGUgc2FtZSBjb21wYXJpc29uIHdpdGgga2V5cyAKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvdXJjZUtleU91dCwgdGFyZ2V0S2V5T3V0OworICAgICAgICBzb3VyY2VLZXlPdXQgPSBjb2xsLmdldENvbGxhdGlvbktleShzb3VyY2UpOworICAgICAgICB0YXJnZXRLZXlPdXQgPSBjb2xsLmdldENvbGxhdGlvbktleSh0YXJnZXQpOworICAgICAgICByZXN1bHQgPSBzb3VyY2VLZXlPdXQuY29tcGFyZVRvKHRhcmdldEtleU91dCk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkNvbXBhcmluZyB0d28gc3RyaW5ncyB3aXRoIHNvcnQga2V5cyBpbiBDIGZhaWxlZC5cbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vVGVzdFN1cnJvZ2F0ZXMoKSBpcyBwb3J0ZWQgZnJvbSBjaW50bHRzdC9jYWxsY29sbC5jCisgICAgCisgICAgLyoqCisgICAgKiBUZXN0cyBzdXJyb2dhdGUgc3VwcG9ydC4KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTdXJyb2dhdGVzKCkgCisgICAgeworICAgICAgICBTdHJpbmcgcnVsZXMgPSAiJno8J1x1ZDgwMFx1ZGMwMCc8J1x1ZDgwMFx1ZGMwYVx1MDMwOCc8QSI7CisgICAgICAgIFN0cmluZyBzb3VyY2VbXSA9IHsieiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODAwXHVEQzAwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMGFcdTAzMDgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwMiIgICAgCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdGFyZ2V0W10gPSB7Ilx1RDgwMFx1REMwMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVkODAwXHVkYzBhXHUwMzA4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDMiICAgIAorICAgICAgICB9OworICAgIAorICAgICAgICAvLyB0aGlzIHRlc3QgaXMgdG8gdmVyaWZ5IHRoZSBzdXBwbGVtZW50YXJ5IHNvcnQga2V5IG9yZGVyIGluIHRoZSBlbmdsaXNoIAorICAgICAgICAvLyBjb2xsYXRvcgorICAgICAgICBDb2xsYXRvciBlbkNvbGxhdGlvbjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGVuQ29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBGYWlsZWQgdG8gY3JlYXRlIHRoZSBjb2xsYXRvciBmb3IgRU5HTElTSCIpOworICAgICAgICAgICAgcmV0dXJuOyAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAvLyBsb2dsbigic3RhcnQgb2YgZW5nbGlzaCBjb2xsYXRpb24gc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIHRlc3RcbiIpOworICAgICAgICB3aGlsZSAoY291bnQgPCAyKSB7CisgICAgICAgICAgICBkb1Rlc3QoZW5Db2xsYXRpb24sIHNvdXJjZVtjb3VudF0sIHRhcmdldFtjb3VudF0sIC0xKTsKKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIGRvVGVzdChlbkNvbGxhdGlvbiwgc291cmNlW2NvdW50XSwgdGFyZ2V0W2NvdW50XSwgMSk7CisgICAgICAgICAgICAKKyAgICAgICAgLy8gbG9nbG4oInN0YXJ0IG9mIHRhaWxvcmVkIGNvbGxhdGlvbiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdGVzdFxuIik7CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgQ29sbGF0b3IgbmV3Q29sbGF0aW9uOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbmV3Q29sbGF0aW9uID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogRmFpbGVkIHRvIGNyZWF0ZSB0aGUgY29sbGF0b3IgZm9yIHJ1bGVzIik7CisgICAgICAgICAgICByZXR1cm47ICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyB0ZXN0cyBnZXR0aW5nIGNvbGxhdGlvbiBlbGVtZW50cyBmb3Igc3Vycm9nYXRlcyBmb3IgdGFpbG9yZWQgcnVsZXMgCisgICAgICAgIHdoaWxlIChjb3VudCA8IDQpIHsKKyAgICAgICAgICAgIGRvVGVzdChuZXdDb2xsYXRpb24sIHNvdXJjZVtjb3VudF0sIHRhcmdldFtjb3VudF0sIC0xKTsKKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIHRlc3RzIHRoYXQgXHVEODAxXHVEQzAxIHN0aWxsIGhhcyB0aGUgc2FtZSB2YWx1ZSwgbm90IGNoYW5nZWQgCisgICAgICAgIENvbGxhdGlvbktleSBlbktleSA9IGVuQ29sbGF0aW9uLmdldENvbGxhdGlvbktleShzb3VyY2VbM10pOworICAgICAgICBDb2xsYXRpb25LZXkgbmV3S2V5ID0gbmV3Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzb3VyY2VbM10pOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gZW5LZXkuY29tcGFyZVRvKG5ld0tleSk7CisgICAgICAgIGlmKGtleVJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIDogbm9uLXRhaWxvcmVkIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyBzaG91bGQgaGF2ZSB0aGUgc2FtZSB2YWx1ZVxuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9UZXN0VmFyaWFibGVUb3AoKSBpcyBwb3J0ZWQgZnJvbSBjaW50bHRzdC9jYWxsY29sbC5jCisgICAgLyoqCisgICAgKiBUZXN0cyB0aGUgW3ZhcmlhYmxlIHRvcF0gdGFnIGluIHJ1bGUgc3ludGF4LiBTaW5jZSB0aGUgZGVmYXVsdCBbYWx0ZXJuYXRlXQorICAgICogdGFnIGhhcyB0aGUgdmFsdWUgc2hpZnRlZCwgYW55IGNvZGVwb2ludHMgYmVmb3JlIFt2YXJpYWJsZSB0b3BdIHNob3VsZCBnaXZlCisgICAgKiBhIHByaW1hcnkgY2Ugb2YgMC4KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RWYXJpYWJsZVRvcCgpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAiJnogPSBbdmFyaWFibGUgdG9wXSI7CisgICAgICAgIENvbGxhdG9yICBteUNvbGw7CisgICAgICAgIENvbGxhdG9yICBlbkNvbGw7CisgICAgICAgIGNoYXJbXSBzb3VyY2UgPSBuZXcgY2hhclsxXTsKKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgaW50IGV4cGVjdGVkW10gPSB7MH07CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBlbkNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IEZhaWxlZCB0byBjcmVhdGUgdGhlIGNvbGxhdG9yIGZvciBFTkdMSVNIIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIG15Q29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlcnJsbigiRmFpbCB0byBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3Igd2l0aCBydWxlczoiICsgcnVsZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gIAorICAgICAgICBlbkNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIG15Q29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgCisgICAgICAgICgoUnVsZUJhc2VkQ29sbGF0b3IpZW5Db2xsKS5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQodHJ1ZSk7CisgICAgICAgICgoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsKS5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQodHJ1ZSk7CisgICAgICAgIAorICAgICAgICBpZigoKFJ1bGVCYXNlZENvbGxhdG9yKWVuQ29sbCkuaXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoKSAhPSB0cnVlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IEFMVEVSTkFURV9IQU5ETElORyB2YWx1ZSBjYW4gbm90IGJlIHNldCB0byBTSElGVEVEXG4iKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gc3BhY2UgaXMgc3VwcG9zZWQgdG8gYmUgYSB2YXJpYWJsZSAKKyAgICAgICAgQ29sbGF0aW9uS2V5IGtleSA9IGVuQ29sbC5nZXRDb2xsYXRpb25LZXkoIiAiKTsgICAKKyAgICAgICAgYnl0ZVtdIHJlc3VsdCA9IGtleS50b0J5dGVBcnJheSgpOyAKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmKHJlc3VsdFtpXSE9IGV4cGVjdGVkW2ldKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBTSElGVEVEIGFsdGVybmF0ZSBkb2VzIG5vdCByZXR1cm4gMCBmb3IgcHJpbWFyeSBvZiBzcGFjZVxuIik7ICAKKyAgICAgICAgICAgICAgICBicmVhazsgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjaCA9ICdhJzsKKyAgICAgICAgd2hpbGUgKGNoIDwgJ3onKSB7CisgICAgICAgICAgICBzb3VyY2VbMF0gPSBjaDsKKyAgICAgICAgICAgIGtleSA9IG15Q29sbC5nZXRDb2xsYXRpb25LZXkobmV3IFN0cmluZyhzb3VyY2UpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGtleS50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYocmVzdWx0W2ldIT0gZXhwZWN0ZWRbaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBTSElGVEVEIGFsdGVybmF0ZSBkb2VzIG5vdCByZXR1cm4gMCBmb3IgcHJpbWFyeSBvZiBzcGFjZVxuIik7ICAKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaCArKzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SkIxNDAxKCkgeworICAgICAgICBDb2xsYXRvciAgICAgbXlDb2xsYXRvciA9IG51bGw7CisgICAgICAgIGNoYXJbXSBORkRfVW5zYWZlU3RhcnRDaGFycyA9IHsKKyAgICAgICAgICAgIDB4MGY3MywgICAgICAgICAgLy8gVGliZXRhbiBWb3dlbCBTaWduIElJIAorICAgICAgICAgICAgMHgwZjc1LCAgICAgICAgICAvLyBUaWJldGFuIFZvd2VsIFNpZ24gVVUgCisgICAgICAgICAgICAweDBmODEsICAgICAgICAgIC8vIFRpYmV0YW4gVm93ZWwgU2lnbiBSZXZlcnNlZCBJSSAKKyAgICAgICAgICAgIDAKKyAgICAgICAgfTsKKyAgICAgICAgaW50IGk7CisgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIG15Q29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogRmFpbGVkIHRvIGNyZWF0ZSB0aGUgY29sbGF0b3IgZm9yIEVOR0xJU0giKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBteUNvbGxhdG9yLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBmb3IgKGk9MDsgOyBpKyspIHsKKyAgICAgICAgICAgIC8vIEdldCB0aGUgbmV4dCBmdW5ueSBjaGFyYWN0ZXIgdG8gYmUgdGVzdGVkLCBhbmQgc2V0IHVwIHRoZQorICAgICAgICAgICAgLy8gdGhyZWUgdGVzdCBzdHJpbmdzIFgsIFksIFosIGNvbnNpc3Rpbmcgb2YgYW4gQS1ncmF2ZSArIHRlc3QgY2hhciwKKyAgICAgICAgICAgIC8vIGluIG9yaWdpbmFsIGZvcm0sIE5GRCwgYW5kIHRoZW4gTkZDIGZvcm0uCisgICAgICAgICAgICBjaGFyIGMgPSBORkRfVW5zYWZlU3RhcnRDaGFyc1tpXTsKKyAgICAgICAgICAgIGlmIChjPT0wKSB7YnJlYWs7fQorICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgeCA9ICJcdTAwQzAiICsgYzsgICAgICAgLy8gXHUwMEMwIGlzIEEgR3JhdmUKKyAgICAgICAgICAgIFN0cmluZyB5OworICAgICAgICAgICAgU3RyaW5nIHo7CisgICAgCisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgeSA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHgsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB6ID0gTm9ybWFsaXplci5kZWNvbXBvc2UoeSwgdHJ1ZSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogRmFpbGVkIHRvIG5vcm1hbGl6ZSB0ZXN0IG9mIGNoYXJhY3RlciIgKyBjKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgCisgICAgICAgICAgICAvLyBDb2xsYXRpb24gdGVzdC4gIEFsbCB0aHJlZSBzdHJpbmdzIHNob3VsZCBiZSBlcXVhbC4KKyAgICAgICAgICAgIC8vIGRvVGVzdCBkb2VzIGJvdGggc3RyY29sbCBhbmQgc29ydCBrZXlzLCB3aXRoIHBhcmFtcyBpbiBib3RoIG9yZGVycy4KKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdG9yLCB4LCB5LCAwKTsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdG9yLCB4LCB6LCAwKTsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdG9yLCB5LCB6LCAwKTsgCisgICAgCisgICAgICAgICAgICAvLyBSdW4gY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3JzIG92ZXIgdGhlIHRocmVlIHN0cmluZ3MuICBSZXN1bHRzIHNob3VsZCBiZSBzYW1lIGZvciBlYWNoLgorICAgICAgICAgICAgIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjZWlYLCBjZWlZLCBjZWlaOworICAgICAgICAgICAgICAgIGludCBjZVgsIGNlWSwgY2VaOworICAgICAgICAgICAgICAgIGludCBqOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGNlaVggPSAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0b3IpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih4KTsKKyAgICAgICAgICAgICAgICAgICAgY2VpWSA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRvcikuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHkpOworICAgICAgICAgICAgICAgICAgICBjZWlaID0gKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGxhdG9yKS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioeik7CisgICAgICAgICAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICBmb3IgKGo9MDs7IGorKykgeworICAgICAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgICAgICBjZVggPSBjZWlYLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlWSA9IGNlaVkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgY2VaID0gY2VpWi5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5uZXh0IGZhaWxlZCBmb3IgaXRlcmF0aW9uICIgKyBqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNlWCAhPSBjZVkgfHwgY2VZICE9IGNlWikgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiB1Y29sX25leHQgZmFpbGVkIGZvciBpdGVyYXRpb24gIiArIGopOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNlWCA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBtYWluIHRlc3QgbWV0aG9kIGNhbGxlZCB3aXRoIGRpZmZlcmVudCBzdHJlbmd0aHMsCisgICAgLy8gdGVzdHMgY29tcGFyaXNvbiBvZiBjdXN0dW0gY29sbGF0aW9uIHdpdGggZGlmZmVyZW50IHN0cmVuZ3RocworICAgIAorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoQ29sbGF0b3IgY29sbGF0aW9uLCBjaGFyW10gc291cmNlLCBjaGFyW10gdGFyZ2V0LCBpbnQgcmVzdWx0KSB7CisgICAgICAgIFN0cmluZyBzID0gbmV3IFN0cmluZyhzb3VyY2UpOworICAgICAgICBTdHJpbmcgdCA9IG5ldyBTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgZG9UZXN0VmFyaWFudChjb2xsYXRpb24sIHMsIHQsIHJlc3VsdCk7CisgICAgICAgIGlmKHJlc3VsdCA9PSAtMSkgeworICAgICAgICAgICAgZG9UZXN0VmFyaWFudChjb2xsYXRpb24sIHQsIHMsIDEpOworICAgICAgICB9IGVsc2UgaWYocmVzdWx0ID09IDEpIHsKKyAgICAgICAgICAgIGRvVGVzdFZhcmlhbnQoY29sbGF0aW9uLCB0LCBzLCAtMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KGNvbGxhdGlvbiwgdCwgcywgMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gbWFpbiB0ZXN0IG1ldGhvZCBjYWxsZWQgd2l0aCBkaWZmZXJlbnQgc3RyZW5ndGhzLAorICAgIC8vIHRlc3RzIGNvbXBhcmlzb24gb2YgY3VzdHVtIGNvbGxhdGlvbiB3aXRoIGRpZmZlcmVudCBzdHJlbmd0aHMKKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0KENvbGxhdG9yIGNvbGxhdGlvbixTdHJpbmcgcywgU3RyaW5nIHQsIGludCByZXN1bHQpIHsKKyAgICAgICAgZG9UZXN0VmFyaWFudChjb2xsYXRpb24sIHMsIHQsIHJlc3VsdCk7CisgICAgICAgIGlmKHJlc3VsdCA9PSAtMSkgeworICAgICAgICAgICAgZG9UZXN0VmFyaWFudChjb2xsYXRpb24sIHQsIHMsIDEpOworICAgICAgICB9IGVsc2UgaWYocmVzdWx0ID09IDEpIHsKKyAgICAgICAgICAgIGRvVGVzdFZhcmlhbnQoY29sbGF0aW9uLCB0LCBzLCAtMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KGNvbGxhdGlvbiwgdCwgcywgMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdFZhcmlhbnQoQ29sbGF0b3IgY29sbGF0aW9uLCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBpbnQgcmVzdWx0KSB7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gY29sbGF0aW9uLmNvbXBhcmUoc291cmNlLCB0YXJnZXQpOworICAgICAgICBDb2xsYXRpb25LZXkgc3Jja2V5ICwgdGd0a2V5OworICAgICAgICBzcmNrZXkgPSBjb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZSk7CisgICAgICAgIHRndGtleSA9IGNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkodGFyZ2V0KTsKKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNyY2tleS5jb21wYXJlVG8odGd0a2V5KTsKKyAgICAgICAgaWYgKGNvbXBhcmVSZXN1bHQgIT0gcmVzdWx0KSB7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nIGNvbXBhcmlzb24gZmFpbGVkIGluIHZhcmlhbnQgdGVzdFxuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGtleVJlc3VsdCAhPSByZXN1bHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb2xsYXRpb24ga2V5IGNvbXBhcmlzb24gZmFpbGVkIGluIHZhcmlhbnQgdGVzdFxuIik7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkVuZ2xpc2hUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRW5nbGlzaFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTczMmJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkVuZ2xpc2hUZXN0LmphdmEKQEAgLTAsMCArMSw0MjMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9Db2xsYXRpb25FbmdsaXNoVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvZW5jb2xsLmNwcAorICoqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKyAKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uRW5nbGlzaFRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgQ29sbGF0aW9uRW5nbGlzaFRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RTb3VyY2VDYXNlcyA9IHsKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDJEIC8qICctJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovLCAweDAwMjAgLyogJyAnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDAyRCAvKiAnLScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMDQ4IC8qICdIJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDZGIC8qICdvJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovLCAweDAwNDIgLyogJ0InICovLCAweDAwNDMgLyogJ0MnICovfSwgCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDJEIC8qICctJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovLCAweDAwMkQgLyogJy0nICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDA3MCAvKiAncCcgKi8sIDB4MDBFQSwgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY4IC8qICdoJyAqLywgMHgwMDY1IC8qICdlJyAqL30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA3MCAvKiAncCcgKi8sIDB4MDBFOSwgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY4IC8qICdoJyAqLywgMHgwMEU5fSwKKyAgICAgICAgezB4MDBDNCwgMHgwMDQyIC8qICdCJyAqLywgMHgwMzA4LCAweDAwNDMgLyogJ0MnICovLCAweDAzMDh9LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMzA4LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA3MCAvKiAncCcgKi8sIDB4MDBFOSwgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY4IC8qICdoJyAqLywgMHgwMDY1IC8qICdlJyAqLywgMHgwMDcyIC8qICdyJyAqL30sCisgICAgICAgIHsweDAwNzIgLyogJ3InICovLCAweDAwNkYgLyogJ28nICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjUgLyogJ2UnICovLCAweDAwNzMgLyogJ3MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDQxIC8qICdBJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi99LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA3NCAvKiAndCcgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2RiAvKiAnbycgKi8sIDB4MDA2RCAvKiAnbScgKi8sIDB4MDA3MCAvKiAncCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA3MCAvKiAncCcgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA2RSAvKiAnbicgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqL30sIAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDIzIC8qICcjJyAqLywgMHgwMDYyIC8qICdiJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwMjMgLyogJyMnICovLCAweDAwNjIgLyogJ2InICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDQxIC8qICdBJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDYxIC8qICdhJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMEU2LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDBFNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDYxIC8qICdhJyAqL30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNDggLyogJ0gnICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDMwOCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNzQgLyogJ3QnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjkgLyogJ2knICovLCAweDAzMDIsIDB4MDA3MyAvKiAncycgKi99LAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEVBLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjUgLyogJ2UnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDBFNiwgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMEU2LCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sICAgICAgICAgICAgICAgCisgICAgICAgIHsweDAwNzAgLyogJ3AnICovLCAweDAwRTksIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2OCAvKiAnaCcgKi8sIDB4MDBFOX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDQ5CisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0VGFyZ2V0Q2FzZXMgPSB7CisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDJEIC8qICctJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovfSwKKyAgICAgICAgezB4MDA2OCAvKiAnaCcgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2RiAvKiAnbycgKi99LAorICAgICAgICB7MHgwMDQxIC8qICdBJyAqLywgMHgwMDQyIC8qICdCJyAqLywgMHgwMDQzIC8qICdDJyAqL30sCisgICAgICAgIHsweDAwNDEgLyogJ0EnICovLCAweDAwNDIgLyogJ0InICovLCAweDAwNDMgLyogJ0MnICovfSwKKyAgICAgICAgezB4MDA2MiAvKiAnYicgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2QiAvKiAnaycgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA3MyAvKiAncycgKi99LAorICAgICAgICB7MHgwMDYyIC8qICdiJyAqLywgMHgwMDZDIC8qICdsJyAqLywgMHgwMDYxIC8qICdhJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDZCIC8qICdrJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY5IC8qICdpJyAqLywgMHgwMDcyIC8qICdyJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDczIC8qICdzJyAqL30sCisgICAgICAgIHsweDAwNjIgLyogJ2InICovLCAweDAwNkMgLyogJ2wnICovLCAweDAwNjEgLyogJ2EnICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNkIgLyogJ2snICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjkgLyogJ2knICovLCAweDAwNzIgLyogJ3InICovLCAweDAwNjQgLyogJ2QnICovfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEU5LCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwRTl9LAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEU5LCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjUgLyogJ2UnICovLCAweDAwNzIgLyogJ3InICovfSwKKyAgICAgICAgezB4MDBDNCwgMHgwMDQyIC8qICdCJyAqLywgMHgwMzA4LCAweDAwNDMgLyogJ0MnICovLCAweDAzMDh9LAorICAgICAgICB7MHgwMDQxIC8qICdBJyAqLywgMHgwMzA4LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA3MCAvKiAncCcgKi8sIDB4MDBFOSwgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY4IC8qICdoJyAqLywgMHgwMDY1IC8qICdlJyAqL30sCisgICAgICAgIHsweDAwNzIgLyogJ3InICovLCAweDAwNkYgLyogJ28nICovLCAweDAzMDIsIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2NSAvKiAnZScgKi99LAorICAgICAgICB7MHgwMDQxIC8qICdBJyAqLywgMHgwMEUxLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDA0MSAvKiAnQScgKi8sIDB4MDBFMSwgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgezB4MDA1NCAvKiAnVCcgKi8sIDB4MDA0MyAvKiAnQycgKi8sIDB4MDA2RiAvKiAnbycgKi8sIDB4MDA2RCAvKiAnbScgKi8sIDB4MDA3MCAvKiAncCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA3MiAvKiAncicgKi8sIDB4MDA2NSAvKiAnZScgKi8sIDB4MDA1MCAvKiAnUCcgKi8sIDB4MDA2QyAvKiAnbCcgKi8sIDB4MDA2MSAvKiAnYScgKi8sIDB4MDA2OSAvKiAnaScgKi8sIDB4MDA2RSAvKiAnbicgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDQyIC8qICdCJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwMjMgLyogJyMnICovLCAweDAwNDIgLyogJ0InICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDAyNiAvKiAnJicgKi8sIDB4MDA2MiAvKiAnYicgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDIzIC8qICcjJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDBDNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDYxIC8qICdhJyAqL30sCisgICAgICAgIHsweDAwRTQsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi8sIDB4MDA2NCAvKiAnZCcgKi8sIDB4MDA2MSAvKiAnYScgKi99LAorICAgICAgICB7MHgwMEM0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjQgLyogJ2QnICovLCAweDAwNjEgLyogJ2EnICovfSwKKyAgICAgICAgezB4MDBDNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqLywgMHgwMDY0IC8qICdkJyAqLywgMHgwMDYxIC8qICdhJyAqL30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwMjMgLyogJyMnICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDNEIC8qICc9JyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjIgLyogJ2InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDBFNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNDMgLyogJ0MnICovLCAweDAwNDggLyogJ0gnICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDBFNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNzQgLyogJ3QnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwRUUsIDB4MDA3MyAvKiAncycgKi99LAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEU5LCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwRTl9LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDQyIC8qICdCJyAqLywgMHgwMDQzIC8qICdDJyAqL30sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMDYyIC8qICdiJyAqLywgMHgwMDY0IC8qICdkJyAqL30sCisgICAgICAgIHsweDAwRTQsIDB4MDA2MiAvKiAnYicgKi8sIDB4MDA2MyAvKiAnYycgKi99LAorICAgICAgICB7MHgwMDYxIC8qICdhJyAqLywgMHgwMEM2LCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDA0MiAvKiAnQicgKi8sIDB4MDA2NCAvKiAnZCcgKi99LAorICAgICAgICB7MHgwMEU0LCAweDAwNjIgLyogJ2InICovLCAweDAwNjMgLyogJ2MnICovfSwKKyAgICAgICAgezB4MDA2MSAvKiAnYScgKi8sIDB4MDBDNiwgMHgwMDYzIC8qICdjJyAqL30sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNDIgLyogJ0InICovLCAweDAwNjQgLyogJ2QnICovfSwKKyAgICAgICAgezB4MDBFNCwgMHgwMDYyIC8qICdiJyAqLywgMHgwMDYzIC8qICdjJyAqL30sICAgICAgICAgIAorICAgICAgICB7MHgwMDcwIC8qICdwJyAqLywgMHgwMEVBLCAweDAwNjMgLyogJ2MnICovLCAweDAwNjggLyogJ2gnICovLCAweDAwNjUgLyogJ2UnICovfQorICAgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDQ5CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSByZXN1bHRzID0geworICAgIC8vLTE6TEVTUzsgMDpFUVVBTDsgMTpHUkVBVEVSCisgICAgICAgIC0xLCAKKyAgICAgICAgLTEsIC8qQ29sbGF0b3I6OkdSRUFURVIsKi8KKyAgICAgICAgLTEsCisgICAgICAgIDEsCisgICAgICAgIDEsCisgICAgICAgIDAsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLCAvKkNvbGxhdG9yOjpHUkVBVEVSLCovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwICovCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAwLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgMSwKKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMjAgKi8KKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgMSwKKyAgICAgICAgMSwKKyAgICAgICAgLyogVGVzdCBUZXJ0aWFyeSAgPiAyNiAqLworICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIDEsCisgICAgICAgIC0xLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMCAqLworICAgICAgICAxLAorICAgICAgICAwLAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAvKiB0ZXN0IGlkZW50aWNhbCA+IDM2ICovCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIC8qIHRlc3QgcHJpbWFyeSA+IDM4ICovCisgICAgICAgIDAsCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogNDAgKi8KKyAgICAgICAgLTEsCisgICAgICAgIDAsCisgICAgICAgIDAsCisgICAgICAgIC8qIHRlc3Qgc2Vjb25kYXJ5ID4gNDMgKi8KKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAwLAorICAgICAgICAtMSwKKyAgICAgICAgLTEsIAorICAgICAgICAtMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDQ5CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXIgW11bXSB0ZXN0QnVncyA9IHsKKyAgICAgICAgezB4NjF9LAorICAgICAgICB7MHg0MX0sCisgICAgICAgIHsweDY1fSwKKyAgICAgICAgezB4NDV9LAorICAgICAgICB7MHgwMGU5fSwKKyAgICAgICAgezB4MDBlOH0sCisgICAgICAgIHsweDAwZWF9LAorICAgICAgICB7MHgwMGVifSwKKyAgICAgICAgezB4NjUsIDB4NjF9LAorICAgICAgICB7MHg3OH0KKyAgICB9OworCisgICAgLy8gMHgwMzAwIGlzIGdyYXZlLCAweDAzMDEgaXMgYWN1dGUKKyAgICAvLyB0aGUgb3JkZXIgb2YgZWxlbWVudHMgaW4gdGhpcyBhcnJheSBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIHRoZSBvcmRlciBpbiBDb2xsYXRpb25GcmVuY2hUZXN0CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdEFjdXRlID0geworICAgICAgICB7MHg2NSwgMHg2NX0sCisgICAgICAgIHsweDY1LCAweDY1LCAweDAzMDF9LAorICAgICAgICB7MHg2NSwgMHg2NSwgMHgwMzAxLCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHg2NSwgMHgwMzAwfSwKKyAgICAgICAgezB4NjUsIDB4NjUsIDB4MDMwMCwgMHgwMzAxfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMSwgMHg2NX0sCisgICAgICAgIHsweDY1LCAweDAzMDEsIDB4NjUsIDB4MDMwMX0sCisgICAgICAgIHsweDY1LCAweDAzMDEsIDB4NjUsIDB4MDMwMSwgMHgwMzAwfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMSwgMHg2NSwgMHgwMzAwfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMSwgMHg2NSwgMHgwMzAwLCAweDAzMDF9LAorICAgICAgICB7MHg2NSwgMHgwMzAxLCAweDAzMDAsIDB4NjV9LAorICAgICAgICB7MHg2NSwgMHgwMzAxLCAweDAzMDAsIDB4NjUsIDB4MDMwMX0sCisgICAgICAgIHsweDY1LCAweDAzMDEsIDB4MDMwMCwgMHg2NSwgMHgwMzAxLCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHgwMzAxLCAweDAzMDAsIDB4NjUsIDB4MDMwMH0sCisgICAgICAgIHsweDY1LCAweDAzMDEsIDB4MDMwMCwgMHg2NSwgMHgwMzAwLCAweDAzMDF9LAorICAgICAgICB7MHg2NSwgMHgwMzAwLCAweDY1fSwKKyAgICAgICAgezB4NjUsIDB4MDMwMCwgMHg2NSwgMHgwMzAxfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMCwgMHg2NSwgMHgwMzAxLCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHgwMzAwLCAweDY1LCAweDAzMDB9LAorICAgICAgICB7MHg2NSwgMHgwMzAwLCAweDY1LCAweDAzMDAsIDB4MDMwMX0sCisgICAgICAgIHsweDY1LCAweDAzMDAsIDB4MDMwMSwgMHg2NX0sCisgICAgICAgIHsweDY1LCAweDAzMDAsIDB4MDMwMSwgMHg2NSwgMHgwMzAxfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMCwgMHgwMzAxLCAweDY1LCAweDAzMDEsIDB4MDMwMH0sCisgICAgICAgIHsweDY1LCAweDAzMDAsIDB4MDMwMSwgMHg2NSwgMHgwMzAwfSwKKyAgICAgICAgezB4NjUsIDB4MDMwMCwgMHgwMzAxLCAweDY1LCAweDAzMDAsIDB4MDMwMX0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdE1vcmUgPSB7CisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjUgLyogJ2UnICovfSwKKyAgICAgICAgeyAweDAwRTZ9LAorICAgICAgICB7IDB4MDBDNn0sCisgICAgICAgIHsweDAwNjEgLyogJ2EnICovLCAweDAwNjYgLyogJ2YnICovfSwKKyAgICAgICAgezB4MDA2RiAvKiAnbycgKi8sIDB4MDA2NSAvKiAnZScgKi99LAorICAgICAgICB7IDB4MDE1M30sCisgICAgICAgIHsgMHgwMTUyfSwKKyAgICAgICAgezB4MDA2RiAvKiAnbycgKi8sIDB4MDA2NiAvKiAnZicgKi99LAorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkVuZ2xpc2hUZXN0KCkgeworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBteUNvbGxhdGlvbiA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICB9CisgICAgCisgICAgLy9wZXJmb3JtcyB0ZXN0IHdpdGggc3RyZW5ndGggUFJJTUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmltYXJ5KCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGZvciAoaSA9IDM4OyBpIDwgNDMgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0gIAorICAgIH0KKyAgICAKKyAgICAvL3BlcmZvcm0gdGVzdCB3aXRoIHN0cmVuZ3RoIFNFQ09OREFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RTZWNvbmRhcnkoKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICBmb3IgKGkgPSA0MzsgaSA8IDQ5IDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisKKyAgICAgICAgLy90ZXN0IGFjdXRlIGFuZCBncmF2ZSBvcmRlcmluZyAoY29tcGFyZSB0byBmcmVuY2ggY29sbGF0aW9uKQorICAgICAgICBpbnQgajsKKyAgICAgICAgaW50IGV4cGVjdGVkOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGVzdEFjdXRlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgdGVzdEFjdXRlLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oImkgPSAiICsgaSArICI7IGogPSAiICsgaik7CisgICAgICAgICAgICAgICAgaWYgKGkgPCAgaikKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAtMTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChpID09IGopCisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gMDsKKyAgICAgICAgICAgICAgICBlbHNlIC8vIChpID4gIGopCisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gMTsKKyAgICAgICAgICAgICAgICBkb1Rlc3QodGVzdEFjdXRlW2ldLCB0ZXN0QWN1dGVbal0sIGV4cGVjdGVkICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9wZXJmb3JtIHRlc3Qgd2l0aCBzdHJlbmd0aCBURVJUSUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RUZXJ0aWFyeSgpIHsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIC8vZm9yIChpID0gMDsgaSA8IDM4IDsgaSsrKSAgLy9hdHRlbnRpb246IHRoZXJlIGlzIHNvbWV0aGluZyB3cm9uZyB3aXRoIDM2LCAzNy4KKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDM4IDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9IAorCisgICAgICAgIGludCBqID0gMDsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDEwOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoaiA9IGkrMTsgaiA8IDEwOyBqKyspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZG9UZXN0KHRlc3RCdWdzW2ldLCB0ZXN0QnVnc1tqXSwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy90ZXN0IG1vcmUgaW50ZXJlc3RpbmcgY2FzZXMKKyAgICAgICAgaW50IGV4cGVjdGVkOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGVzdE1vcmUubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCB0ZXN0TW9yZS5sZW5ndGg7IGorKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA8ICBqKQorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IC0xOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGkgPT0gaikKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAwOworICAgICAgICAgICAgICAgIGVsc2UgLy8gKGkgPiAgaikKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAxOworICAgICAgICAgICAgICAgIGRvVGVzdCh0ZXN0TW9yZVtpXSwgdGVzdE1vcmVbal0sIGV4cGVjdGVkICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAvLyBtYWluIHRlc3Qgcm91dGluZSwgdGVzdHMgcnVsZXMgZGVmaW5lZCBieSB0aGUgImVuIiBsb2NhbGUKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0KGNoYXJbXSBzb3VyY2UsIGNoYXJbXSB0YXJnZXQsIGludCByZXN1bHQpeworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IG15Q29sbGF0aW9uLmNvbXBhcmUocywgdCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIHNvcnRLZXkxID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHMpOworICAgICAgICBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0KTsKKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQocywgdCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCk7CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKXsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KXsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgICAvL0xFU1MKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChyZXN1bHQgPT0gMCkgICAvL0VRVUFMCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHJlc3VsdCA9PSAxKSAgIC8vR1JFQVRFUgorICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRmlubmlzaFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25GaW5uaXNoVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0OWVlMzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uRmlubmlzaFRlc3QuamF2YQpAQCAtMCwwICsxLDE3MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvbkZpbm5pc2hUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9maWNvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25GaW5uaXNoVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENvbGxhdGlvbkZpbm5pc2hUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0U291cmNlQ2FzZXMgPSB7CisgICAgICAgIHsweDc3LCAweDYxLCAweDc0fSwKKyAgICAgICAgezB4NzYsIDB4NjEsIDB4NzR9LAorICAgICAgICB7MHg2MSwgMHgwMEZDLCAweDYyLCAweDY1LCAweDYzLCAweDZifSwKKyAgICAgICAgezB4NGMsIDB4MDBFNSwgMHg3NiwgMHg2OX0sCisgICAgICAgIHsweDc3LCAweDYxLCAweDc0fQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0VGFyZ2V0Q2FzZXMgPSB7CisgICAgICAgIHsweDc2LCAweDYxLCAweDc0fSwKKyAgICAgICAgezB4NzcsIDB4NjEsIDB4Nzl9LAorICAgICAgICB7MHg2MSwgMHg3OCwgMHg2MiwgMHg2NSwgMHg2MywgMHg2Yn0sCisgICAgICAgIHsweDRjLCAweDAwRTQsIDB4NzcsIDB4NjV9LAorICAgICAgICB7MHg3NiwgMHg2MSwgMHg3NH0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gcmVzdWx0cyA9IHsKKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAvLyB0ZXN0IHByaW1hcnkgPiA0CisgICAgICAgIDAsIC8vY29sbGF0aW9uIHJ1bGVzIGZvciBmaW5uaXNoIGhhdmUgY2hhbmdlZCEKKyAgICB9OworCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkZpbm5pc2hUZXN0KCkgeworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBteUNvbGxhdGlvbiA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImZpIiwgIkZJIikpOworICAgIH0KKyAgICAgCisgICAgCisgICAgLy8gcGVyZm9ybSB0ZXN0cyB3aXRoIHN0cmVuZ3RoIFBSSU1BUlkKKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJpbWFyeSgpIHsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgZm9yKGkgPSA0OyBpIDwgNTsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOyAgICAKKyAgICAgICAgfSAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvLyBwZXJmb3JtIHRlc3Qgd2l0aCBzdHJlbmd0aCBURVJUSUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RUZXJ0aWFyeSgpIHsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGZvcihpID0gMDsgaSA8IDQ7IGkrKyApIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0gICAgCisgICAgfQorICAgIAorICAgIC8vIG1haW4gdGVzdCByb3V0aW5lLCB0ZXN0cyBydWxlcyBzcGVjaWZpYyB0byB0aGUgZmluaXNoIGxvY2FsZQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoY2hhcltdIHNvdXJjZSwgY2hhcltdIHRhcmdldCwgaW50IHJlc3VsdCkgeworICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc291cmNlKTsKKyAgICAgICAgU3RyaW5nIHQgPSBuZXcgU3RyaW5nKHRhcmdldCk7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzLCB0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkocyk7CisgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdChzLCB0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlcG9ydENSZXN1bHQoIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIENvbGxhdGlvbktleSBzb3VyY2VLZXksIENvbGxhdGlvbktleSB0YXJnZXRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKSB7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGFwcGVuZENvbXBhcmVSZXN1bHQoaW50IHJlc3VsdCwgU3RyaW5nIHRhcmdldCkgeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9CisgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbkZyZW5jaFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25GcmVuY2hUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFmM2FjYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25GcmVuY2hUZXN0LmphdmEKQEAgLTAsMCArMSwyNzggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9Db2xsYXRpb25GcmVuY2hUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9mcmNvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uRnJlbmNoVGVzdCBleHRlbmRzIFRlc3RGbXdreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uRnJlbmNoVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICB7MHgwMDYxLyonYScqLywgMHgwMDYyLyonYicqLywgMHgwMDYzLyonYycqL30sCisgICAgICAgIHsweDAwNDMvKidDJyovLCAweDAwNGYvKidPJyovLCAweDAwNTQvKidUJyovLCAweDAwNDUvKidFJyovfSwKKyAgICAgICAgezB4MDA2My8qJ2MnKi8sIDB4MDA2Zi8qJ28nKi8sIDB4MDAyZC8qJy0nKi8sIDB4MDA2Zi8qJ28nKi8sIDB4MDA3MC8qJ3AnKi99LAorICAgICAgICB7MHgwMDcwLyoncCcqLywgMHgwMEVBLCAweDAwNjMvKidjJyovLCAweDAwNjgvKidoJyovLCAweDAwNjUvKidlJyovfSwKKyAgICAgICAgezB4MDA3MC8qJ3AnKi8sIDB4MDBFQSwgMHgwMDYzLyonYycqLywgMHgwMDY4LyonaCcqLywgMHgwMDY1LyonZScqLywgMHgwMDcyLyoncicqL30sCisgICAgICAgIHsweDAwNzAvKidwJyovLCAweDAwRTksIDB4MDA2My8qJ2MnKi8sIDB4MDA2OC8qJ2gnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDA3Mi8qJ3InKi99LAorICAgICAgICB7MHgwMDcwLyoncCcqLywgMHgwMEU5LCAweDAwNjMvKidjJyovLCAweDAwNjgvKidoJyovLCAweDAwNjUvKidlJyovLCAweDAwNzIvKidyJyovfSwKKyAgICAgICAgezB4MDA0OC8qJ0gnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDA2Yy8qJ2wnKi8sIDB4MDA2Yy8qJ2wnKi8sIDB4MDA2Zi8qJ28nKi99LAorICAgICAgICB7MHgwMWYxfSwKKyAgICAgICAgezB4ZmIwMH0sCisgICAgICAgIHsweDAxZmF9LAorICAgICAgICB7MHgwMTAxfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0VGFyZ2V0Q2FzZXMgPSB7CisgICAgICAgIHsweDAwNDEvKidBJyovLCAweDAwNDIvKidCJyovLCAweDAwNDMvKidDJyovfSwKKyAgICAgICAgezB4MDA2My8qJ2MnKi8sIDB4MDBmNCwgMHgwMDc0LyondCcqLywgMHgwMDY1LyonZScqL30sCisgICAgICAgIHsweDAwNDMvKidDJyovLCAweDAwNGYvKidPJyovLCAweDAwNGYvKidPJyovLCAweDAwNTAvKidQJyovfSwKKyAgICAgICAgezB4MDA3MC8qJ3AnKi8sIDB4MDBFOSwgMHgwMDYzLyonYycqLywgMHgwMDY4LyonaCcqLywgMHgwMEU5fSwKKyAgICAgICAgezB4MDA3MC8qJ3AnKi8sICAweDAwRTksIDB4MDA2My8qJ2MnKi8sIDB4MDA2OC8qJ2gnKi8sIDB4MDBFOX0sCisgICAgICAgIHsweDAwNzAvKidwJyovLCAweDAwRUEsIDB4MDA2My8qJ2MnKi8sIDB4MDA2OC8qJ2gnKi8sIDB4MDA2NS8qJ2UnKi99LAorICAgICAgICB7MHgwMDcwLyoncCcqLywgMHgwMEVBLCAweDAwNjMvKidjJyovLCAweDAwNjgvKidoJyovLCAweDAwNjUvKidlJyovLCAweDAwNzIvKidyJyovfSwKKyAgICAgICAgezB4MDA2OC8qJ2gnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDA2Yy8qJ2wnKi8sIDB4MDA2Yy8qJ2wnKi8sIDB4MDA0Zi8qJ08nKi99LAorICAgICAgICB7MHgwMWVlfSwKKyAgICAgICAgezB4MjVjYX0sCisgICAgICAgIHsweDAwZTB9LAorICAgICAgICB7MHgwMWRmfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSByZXN1bHRzID0geworICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLCAvKkNvbGxhdG9yOjpHUkVBVEVSLCovCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAtMSwgLypDb2xsYXRvcjo6R1JFQVRFUiwqLworICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgLTEKKyAgICB9OworCisgICAgLy8gMHgwMzAwIGlzIGdyYXZlLCAweDAzMDEgaXMgYWN1dGUKKyAgICAvLyB0aGUgb3JkZXIgb2YgZWxlbWVudHMgaW4gdGhpcyBhcnJheSBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIHRoZSBvcmRlciBpbiBDb2xsYXRpb25FbmdsaXNoVGVzdAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RBY3V0ZSA9IHsKKyAgICAvKjAwKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDA2NS8qJ2UnKi99LAorICAgIC8qMDEqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAwNjUvKidlJyovfSwKKyAgICAvKjAyKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMzAxLCAweDAwNjUvKidlJyovfSwKKyAgICAvKjAzKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMDY1LyonZScqL30sCisgICAgLyowNCovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDMwMCwgMHgwMDY1LyonZScqL30sCisgICAgLyowNSovICAgIHsweDAwNjUvKidlJyovLCAweDAwNjUvKidlJyovLCAweDAzMDF9LCAKKyAgICAvKjA2Ki8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMDY1LyonZScqLywgMHgwMzAxfSwKKyAgICAvKjA3Ki8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMzAxLCAweDAwNjUvKidlJyovLCAweDAzMDF9LAorICAgIC8qMDgqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAwNjUvKidlJyovLCAweDAzMDF9LAorICAgIC8qMDkqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAzMDAsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMX0sCisgICAgLyowYSovICAgIHsweDAwNjUvKidlJyovLCAweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDMwMX0sCisgICAgLyowYiovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMzAxfSwKKyAgICAvKjBjKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMzAxLCAweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDMwMX0sCisgICAgLyowZCovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMzAxfSwKKyAgICAvKjBlKi8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMzAwLCAweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDMwMX0sCisgICAgLyowZiovICAgIHsweDAwNjUvKidlJyovLCAweDAwNjUvKidlJyovLCAweDAzMDB9LAorICAgIC8qMTAqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAwNjUvKidlJyovLCAweDAzMDB9LAorICAgIC8qMTEqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMH0sCisgICAgLyoxMiovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDAsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMH0sCisgICAgLyoxMyovICAgIHsweDAwNjUvKidlJyovLCAweDAzMDEsIDB4MDMwMCwgMHgwMDY1LyonZScqLywgMHgwMzAwfSwKKyAgICAvKjE0Ki8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMzAwfSwKKyAgICAvKjE1Ki8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAzMDB9LAorICAgIC8qMTYqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAwLCAweDAzMDEsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMzAwfSwKKyAgICAvKjE3Ki8gICAgezB4MDA2NS8qJ2UnKi8sIDB4MDMwMCwgMHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAzMDB9LAorICAgIC8qMTgqLyAgICB7MHgwMDY1LyonZScqLywgMHgwMzAxLCAweDAzMDAsIDB4MDA2NS8qJ2UnKi8sIDB4MDMwMSwgMHgwMzAwfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0QnVncyA9IHsKKyAgICAgICAgezB4MDA2MS8qJ2EnKi99LAorICAgICAgICB7MHgwMDQxLyonQScqL30sCisgICAgICAgIHsweDAwNjUvKidlJyovfSwKKyAgICAgICAgezB4MDA0NS8qJ0UnKi99LAorICAgICAgICB7MHgwMGU5fSwKKyAgICAgICAgezB4MDBlOH0sCisgICAgICAgIHsweDAwZWF9LAorICAgICAgICB7MHgwMGVifSwKKyAgICAgICAgezB4MDA2NS8qJ2UnKi8sIDB4MDA2MS8qJ2EnKi99LAorICAgICAgICB7MHgwMDc4LyoneCcqL30KKyAgICB9OworICAgIAorICAgIAorICAgIHByaXZhdGUgQ29sbGF0b3IgbXlDb2xsYXRpb24gPSBudWxsOworICAgIAorICAgIHB1YmxpYyBDb2xsYXRpb25GcmVuY2hUZXN0KCkgeworCisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSRU5DSCk7CisgICAgfQorICAgICAKKyAgICAvLyBwZXJmb3JtIHRlc3RzIHdpdGggc3RyZW5ndGggVEVSVElBUlkKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGVydGlhcnkoKSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyIDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHBlcmZvcm0gdGVzdHMgd2l0aCBzdHJlbmd0aCBTRUNPTkRBUlkKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2Vjb25kYXJ5KCkgeworICAgICAgICAvL3Rlc3QgYWN1dGUgYW5kIGdyYXZlIG9yZGVyaW5nCisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgaW50IGo7CisgICAgICAgIGludCBleHBlY3RlZDsKKworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHRlc3RBY3V0ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IHRlc3RBY3V0ZS5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgIGlmIChpIDwgIGopIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAtMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPT0gaikgeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IDA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkb1Rlc3QodGVzdEFjdXRlW2ldLCB0ZXN0QWN1dGVbal0sIGV4cGVjdGVkICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBwZXJmb3JtIGV4dHJhIHRlc3RzCisgICAgcHVibGljIHZvaWQgVGVzdEV4dHJhKCkgeworICAgICAgICBpbnQgaSwgajsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgOSA7IGkrKykgeworICAgICAgICAgICAgZm9yIChqID0gaSArIDE7IGogPCAxMDsgaiArPSAxKSB7CisgICAgICAgICAgICAgICAgZG9UZXN0KHRlc3RCdWdzW2ldLCB0ZXN0QnVnc1tqXSwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb250aW51YXRpb25SZW9yZGVyaW5nKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBydWxlID0gIiYweDJmMDAgPDwgMHgyZjAxIjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICAgICAgY29sbGF0b3Iuc2V0RnJlbmNoQ29sbGF0aW9uKHRydWUpOworICAgICAgICAgICAgQ29sbGF0aW9uS2V5IGtleTEgCisgICAgICAgICAgICAgICAgICAgICAgICA9IGNvbGxhdG9yLmdldENvbGxhdGlvbktleSgiYVx1MDMyNVx1MmYwMFx1MmYwMWJcdTAzMjUiKTsKKyAgICAgICAgICAgIENvbGxhdGlvbktleSBrZXkyCisgICAgICAgICAgICAgICAgICAgICAgICA9IGNvbGxhdG9yLmdldENvbGxhdGlvbktleSgiYVx1MDMyNVx1MmYwMVx1MmYwMWJcdTAzMjUiKTsKKyAgICAgICAgICAgIGlmIChrZXkxLmNvbXBhcmVUbyhrZXkyKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGNvbXBhcmluZyBjb250aW51YXRpb24gc3RyaW5ncyIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgCisgICAgLy8gbWFpbiB0ZXN0IHJvdXRpbmUsIHRlc3QgcnVsZXMgc3BlY2lmaWMgdG8gdGhlIGZyZW5jaCBsb2NhbGUKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0KGNoYXJbXSBzb3VyY2UsIGNoYXJbXSB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IG15Q29sbGF0aW9uLmNvbXBhcmUocywgdCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIHNvcnRLZXkxID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHMpOworICAgICAgICBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0KTsKKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQocywgdCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCk7ICAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlcG9ydENSZXN1bHQoIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIENvbGxhdGlvbktleSBzb3VyY2VLZXksIENvbGxhdGlvbktleSB0YXJnZXRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKSB7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gb2sxID0gKGNvbXBhcmVSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMiA9IChrZXlSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICBib29sZWFuIG9rMyA9IChpbmNSZXN1bHQgPT0gZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIGlmIChvazEgJiYgb2syICYmIG9rMyAmJiAhaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGFwcGVuZENvbXBhcmVSZXN1bHQoaW50IHJlc3VsdCwgU3RyaW5nIHRhcmdldCkgeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9IApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25HZXJtYW5UZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uR2VybWFuVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2MTY3MWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uR2VybWFuVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjIzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IENvbGxhdGUvQ29sbGF0aW9uR2VybWFuVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvZGVjb2xsLmNwcAorICoqLworIAorIHBhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisgCisgaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CisgaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKyBpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKKyBwdWJsaWMgY2xhc3MgQ29sbGF0aW9uR2VybWFuVGVzdCBleHRlbmRzIFRlc3RGbXdreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBDb2xsYXRpb25HZXJtYW5UZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0U291cmNlQ2FzZXMgPSB7CisgICAgICAgIHsweDQ3LCAweDcyLCAweDAwRjYsIDB4MDBERiwgMHg2NX0sCisgICAgICAgIHsweDYxLCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NTQsIDB4MDBGNiwgMHg2ZSwgMHg2NX0sCisgICAgICAgIHsweDU0LCAweDAwRjYsIDB4NmUsIDB4NjV9LAorICAgICAgICB7MHg1NCwgMHgwMEY2LCAweDZlLCAweDY1fSwKKyAgICAgICAgezB4NjEsIDB4MDMwOCwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDAwRTQsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHgwMEU0LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NTMsIDB4NzQsIDB4NzIsIDB4NjEsIDB4MDBERiwgMHg2NX0sCisgICAgICAgIHsweDY1LCAweDY2LCAweDY3fSwKKyAgICAgICAgezB4MDBFNCwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDUzLCAweDc0LCAweDcyLCAweDYxLCAweDAwREYsIDB4NjV9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgezB4NDcsIDB4NzIsIDB4NmYsIDB4NzMsIDB4NzMsIDB4NjksIDB4NzMsIDB4NzR9LAorICAgICAgICB7MHg2MSwgMHgwMzA4LCAweDYyLCAweDYzfSwKKyAgICAgICAgezB4NTQsIDB4NmYsIDB4NmV9LAorICAgICAgICB7MHg1NCwgMHg2ZiwgMHg2NH0sCisgICAgICAgIHsweDU0LCAweDZmLCAweDY2LCAweDc1fSwKKyAgICAgICAgezB4NDEsIDB4MDMwOCwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDAzMDgsIDB4NjIsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg2NSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDUzLCAweDc0LCAweDcyLCAweDYxLCAweDczLCAweDczLCAweDY1fSwKKyAgICAgICAgezB4NjUsIDB4NjYsIDB4Njd9LAorICAgICAgICB7MHg2MSwgMHg2NSwgMHg2MiwgMHg2M30sCisgICAgICAgIHsweDUzLCAweDc0LCAweDcyLCAweDYxLCAweDczLCAweDczLCAweDY1fQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgcmVzdWx0c1tdW10gPQorICAgIHsKKyAgICAgICAgLy8gIFByaW1hcnkgIFRlcnRpYXJ5CisgICAgICAgIHsgLTEsICAgICAgICAtMSB9LAorICAgICAgICB7IDAsICAgICAgICAgLTEgfSwKKyAgICAgICAgeyAxLCAgICAgICAgICAxIH0sCisgICAgICAgIHsgMSwgICAgICAgICAgMSB9LAorICAgICAgICB7IDEsICAgICAgICAgIDEgfSwKKyAgICAgICAgeyAwLCAgICAgICAgIC0xIH0sCisgICAgICAgIHsgMCwgICAgICAgICAgMCB9LAorICAgICAgICB7IC0xLCAgICAgICAgLTEgfSwKKyAgICAgICAgeyAwLCAgICAgICAgICAxIH0sCisgICAgICAgIHsgMCwgICAgICAgICAgMCB9LAorICAgICAgICB7IC0xLCAgICAgICAgLTEgfSwKKyAgICAgICAgeyAwLCAgICAgICAgICAxIH0KKyAgICB9OworICAgIAorICAgIHByaXZhdGUgQ29sbGF0b3IgbXlDb2xsYXRpb24gPSBudWxsOworICAgIAorICAgIHB1YmxpYyBDb2xsYXRpb25HZXJtYW5UZXN0KCkgeworCisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBteUNvbGxhdGlvbiA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5HRVJNQU4pOworICAgICAgICBpZihteUNvbGxhdGlvbiA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGluIGNyZWF0aW9uIG9mIGNvbGxhdG9yIG9mIEdFUk1BTiBsb2NhbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBwZXJmb3JtIHRlc3Qgd2l0aCBzdHJlbmd0aCBURVJUSUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RUZXJ0aWFyeSgpeworICAgICAgICBpZihteUNvbGxhdGlvbiA9PSBudWxsICkgeworICAgICAgICAgICAgZXJybG4oImRlY29sbDogY2Fubm90IHN0YXJ0IHRlc3QsIGNvbGxhdG9yIGlzIG51bGxcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTIgOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXVsxXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcGVyZm9ybSB0ZXN0IHdpdGggc3RyZW5ndGggU0VDT05EQVJZCisgICAgLy9UaGlzIG1ldGhvZCBpbiBpY3U0YyBoYXMgbm8gaW1wbGVtZW50YXRpb24uCisgICAgcHVibGljIHZvaWQgVGVzdFNlY29uZGFyeSgpeworICAgIH0KKyAgICAKKyAgICAgLy8gcGVyZm9ybSB0ZXN0IHdpdGggc3RyZW5ndGggUFJJTUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmltYXJ5KCl7CisgICAgICAgIGlmKG15Q29sbGF0aW9uID09IG51bGwgKSB7CisgICAgICAgICAgICBlcnJsbigiZGVjb2xsOiBjYW5ub3Qgc3RhcnQgdGVzdCwgY29sbGF0b3IgaXMgbnVsbFxuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaW50IGk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBteUNvbGxhdGlvbi5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyIDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV1bMF0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIAorICAgIC8vbWFpbiB0ZXN0IHJvdXRpbmUsIHRlc3RzIHJ1bGVzIHNwZWNpZmljIHRvIGdlcm1hIGxvY2FsZQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoY2hhcltdIHNvdXJjZSwgY2hhcltdIHRhcmdldCwgaW50IHJlc3VsdCl7CisgICAgICAgIFN0cmluZyBzID0gbmV3IFN0cmluZyhzb3VyY2UpOworICAgICAgICBTdHJpbmcgdCA9IG5ldyBTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBteUNvbGxhdGlvbi5jb21wYXJlKHMsIHQpOworICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleTEsIHNvcnRLZXkyOworICAgICAgICBzb3J0S2V5MSA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleShzKTsKKyAgICAgICAgc29ydEtleTIgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkodCk7CisgICAgICAgIGludCBrZXlSZXN1bHQgPSBzb3J0S2V5MS5jb21wYXJlVG8oc29ydEtleTIpOworICAgICAgICByZXBvcnRDUmVzdWx0KHMsIHQsIHNvcnRLZXkxLCBzb3J0S2V5MiwgY29tcGFyZVJlc3VsdCwga2V5UmVzdWx0LCBjb21wYXJlUmVzdWx0LCByZXN1bHQpOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlcG9ydENSZXN1bHQoIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIENvbGxhdGlvbktleSBzb3VyY2VLZXksIENvbGxhdGlvbktleSB0YXJnZXRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKXsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBvazEgPSAoY29tcGFyZVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2syID0gKGtleVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2szID0gKGluY1Jlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szICYmICFpc1ZlcmJvc2UoKSl7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworCisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworCisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGFwcGVuZENvbXBhcmVSZXN1bHQoaW50IHJlc3VsdCwgU3RyaW5nIHRhcmdldCl7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpICAgLy9MRVNTCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocmVzdWx0ID09IDApICAgLy9FUVVBTAorICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChyZXN1bHQgPT0gMSkgICAvL0dSRUFURVIKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uSXRlcmF0b3JUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uSXRlcmF0b3JUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFkNWNmNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25JdGVyYXRvclRlc3QuamF2YQpAQCAtMCwwICsxLDY0NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBjb2xsYXRlL0NvbGxhdGlvbkl0ZXJhdG9yVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvaXRlcmNvbGwuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25JdGVyYXRvclRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgCisgICAgU3RyaW5nIHRlc3QxID0gIldoYXQgc3Vic2V0IG9mIGFsbCBwb3NzaWJsZSB0ZXN0IGNhc2VzPyI7CisgICAgU3RyaW5nIHRlc3QyID0gImhhcyB0aGUgaGlnaGVzdCBwcm9iYWJpbGl0eSBvZiBkZXRlY3RpbmciOworICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb2xsYXRpb25JdGVyYXRvclRlc3QoKS5ydW4oYXJncyk7CisgICAgICAgIC8vIG5ldyBDb2xsYXRpb25JdGVyYXRvclRlc3QoKS5UZXN0Tm9ybWFsaXplZFVuaWNvZGVDaGFyKCk7CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogQGJ1ZyA0MTU3Mjk5CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENsZWFyQnVmZmVycygvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCImYSA8IGIgPCBjICYgYWIgPSBkIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkbid0IGNyZWF0ZSBhIFJ1bGVCYXNlZENvbGxhdG9yLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyBzb3VyY2UgPSAiYWJjZCI7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpID0gYy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc291cmNlKTsKKyAgICAgICAgaW50IGUwID0gMDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGUwID0gaS5uZXh0KCk7ICAgIC8vIHNhdmUgdGhlIGZpcnN0IGNvbGxhdGlvbiBlbGVtZW50CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiY2FsbCB0byBpLm5leHQoKSBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgaS5zZXRPZmZzZXQoMyk7ICAgICAgICAvLyBnbyB0byB0aGUgZXhwYW5kaW5nIGNoYXJhY3RlcgorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oImNhbGwgdG8gaS5zZXRPZmZzZXQoMykgZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgaS5uZXh0KCk7ICAgICAgICAgICAgICAgIC8vIGJ1dCBvbmx5IHVzZSB1cCBoYWxmIG9mIGl0CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiY2FsbCB0byBpLm5leHQoKSBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgaS5zZXRPZmZzZXQoMCk7ICAgICAgICAvLyBnbyBiYWNrIHRvIHRoZSBiZWdpbm5pbmcKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJjYWxsIHRvIGkuc2V0T2Zmc2V0KDApIGZhaWxlZC4gIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBlID0gMDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGUgPSBpLm5leHQoKTsgICAgLy8gYW5kIGdldCB0aGlzIG9uZSBhZ2FpbgorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJjYWxsIHRvIGkubmV4dCgpIGZhaWxlZC4gIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChlICE9IGUwKSB7CisgICAgICAgICAgICBlcnJsbigiZ290IDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoZSkgKyAiLCBleHBlY3RlZCAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGUwKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqIEBidWcgNDEwODc2MgorICAgICAqIFRlc3QgZm9yIGdldE1heEV4cGFuc2lvbigpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE1heEV4cGFuc2lvbigvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgaW50IHVuYXNzaWduZWQgPSAweEVGRkZEOworICAgICAgICBTdHJpbmcgcnVsZSA9ICImYSA8IGFiIDwgYy9hYmEgPCBkIDwgeiA8IGNoIjsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJGYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNoYXIgY2ggPSAwOworICAgICAgICBTdHJpbmcgc3RyID0gU3RyaW5nLnZhbHVlT2YoY2gpOworICAgIAorICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN0cik7CisgICAgCisgICAgICAgIHdoaWxlIChjaCA8IDB4RkZGRikgeworICAgICAgICAgICAgaW50IGNvdW50ID0gMTsKKyAgICAgICAgICAgIGNoICsrOworICAgICAgICAgICAgc3RyID0gU3RyaW5nLnZhbHVlT2YoY2gpOworICAgICAgICAgICAgaXRlci5zZXRUZXh0KHN0cik7CisgICAgICAgICAgICBpbnQgb3JkZXIgPSBpdGVyLnByZXZpb3VzKCk7CisgICAgCisgICAgICAgICAgICAvLyB0aGFpIG1hbmFnZW1lbnQgCisgICAgICAgICAgICBpZiAob3JkZXIgPT0gMCkgeworICAgICAgICAgICAgICAgIG9yZGVyID0gaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgd2hpbGUgKGl0ZXIucHJldmlvdXMoKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgY291bnQgKys7IAorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYgKGl0ZXIuZ2V0TWF4RXhwYW5zaW9uKG9yZGVyKSA8IGNvdW50KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgYXQgY29kZXBvaW50ICIgKyBjaCArICIsIG1heGltdW0gZXhwYW5zaW9uIGNvdW50IDwgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gdGVzdGluZyBmb3IgZXhhY3QgbWF4IGV4cGFuc2lvbiAKKyAgICAgICAgY2ggPSAwOworICAgICAgICB3aGlsZSAoY2ggPCAweDYxKSB7CisgICAgICAgICAgICBzdHIgPSBTdHJpbmcudmFsdWVPZihjaCk7CisgICAgICAgICAgICBpdGVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgICAgIGludCBvcmRlciA9IGl0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGl0ZXIuZ2V0TWF4RXhwYW5zaW9uKG9yZGVyKSAhPSAxKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWx1cmUgYXQgY29kZXBvaW50IDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoY2gpCisgICAgICAgICAgICAgICAgICAgICAgKyAiIG1heGltdW0gZXhwYW5zaW9uIGNvdW50ID09IDEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoICsrOworICAgICAgICB9CisKKyAgICAgICAgY2ggPSAweDYzOworICAgICAgICBzdHIgPSBTdHJpbmcudmFsdWVPZihjaCk7CisgICAgICAgIGl0ZXIuc2V0VGV4dChzdHIpOworICAgICAgICBpbnQgdGVtcG9yZGVyID0gaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChpdGVyLmdldE1heEV4cGFuc2lvbih0ZW1wb3JkZXIpICE9IDMpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGF0IGNvZGVwb2ludCAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBtYXhpbXVtIGV4cGFuc2lvbiBjb3VudCA9PSAzIik7CisgICAgICAgIH0KKworICAgICAgICBjaCA9IDB4NjQ7CisgICAgICAgIHN0ciA9IFN0cmluZy52YWx1ZU9mKGNoKTsKKyAgICAgICAgaXRlci5zZXRUZXh0KHN0cik7CisgICAgICAgIHRlbXBvcmRlciA9IGl0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICBpZiAoaXRlci5nZXRNYXhFeHBhbnNpb24odGVtcG9yZGVyKSAhPSAxKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbHVyZSBhdCBjb2RlcG9pbnQgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgbWF4aW11bSBleHBhbnNpb24gY291bnQgPT0gMSIpOworICAgICAgICB9CisKKyAgICAgICAgc3RyID0gVUNoYXJhY3Rlci50b1N0cmluZyh1bmFzc2lnbmVkKTsKKyAgICAgICAgaXRlci5zZXRUZXh0KHN0cik7CisgICAgICAgIHRlbXBvcmRlciA9IGl0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICBpZiAoaXRlci5nZXRNYXhFeHBhbnNpb24odGVtcG9yZGVyKSAhPSAyKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbHVyZSBhdCBjb2RlcG9pbnQgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgbWF4aW11bSBleHBhbnNpb24gY291bnQgPT0gMiIpOworICAgICAgICB9CisKKworICAgICAgICAvLyB0ZXN0aW5nIGphbW8KKyAgICAgICAgY2ggPSAweDExNjU7CisgICAgICAgIHN0ciA9IFN0cmluZy52YWx1ZU9mKGNoKTsKKyAgICAgICAgaXRlci5zZXRUZXh0KHN0cik7CisgICAgICAgIHRlbXBvcmRlciA9IGl0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICBpZiAoaXRlci5nZXRNYXhFeHBhbnNpb24odGVtcG9yZGVyKSA+IDMpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGF0IGNvZGVwb2ludCAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIG1heGltdW0gZXhwYW5zaW9uIGNvdW50IDwgMyIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGVzdGluZyBzcGVjaWFsIGphbW8gJmE8XHUxMTY1CisgICAgICAgIHJ1bGUgPSAiXHUwMDI2XHUwMDcxXHUwMDNjXHUxMTY1XHUwMDJmXHUwMDcxXHUwMDcxXHUwMDcxXHUwMDcxIjsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGl0ZXIgPSBjb2xsLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzdHIpOworICAgICAgICAKKyAgICAgICAgdGVtcG9yZGVyID0gaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChpdGVyLmdldE1heEV4cGFuc2lvbih0ZW1wb3JkZXIpICE9IDYpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGF0IGNvZGVwb2ludCAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgbWF4aW11bSBleHBhbnNpb24gY291bnQgPT0gNiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgZm9yIGdldE9mZnNldCgpIGFuZCBzZXRPZmZzZXQoKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RPZmZzZXQoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZW5fdXMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsgICAgCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBjb2xsYXRvciBvZiBFTkdMSVNIIGxvY2FsZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgPSBlbl91cy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdDEpOworICAgICAgICAvLyB0ZXN0aW5nIGJvdW5kYXJpZXMKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoMCk7CisgICAgICAgIGlmIChpdGVyLnByZXZpb3VzKCkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBBZnRlciBzZXR0aW5nIG9mZnNldCB0byAwLCB3ZSBzaG91bGQgYmUgYXQgdGhlIGVuZCAiCisgICAgICAgICAgICAgICAgICArICJvZiB0aGUgYmFja3dhcmRzIGl0ZXJhdGlvbiIpOworICAgICAgICB9CisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KHRlc3QxLmxlbmd0aCgpKTsKKyAgICAgICAgaWYgKGl0ZXIubmV4dCgpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogQWZ0ZXIgc2V0dGluZyBvZmZzZXQgdG8gdGhlIGVuZCBvZiB0aGUgc3RyaW5nLCB3ZSAiIAorICAgICAgICAgICAgICAgICAgKyAic2hvdWxkIGJlIGF0IHRoZSBlbmQgb2YgdGhlIGZvcndhcmRzIGl0ZXJhdGlvbiIpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIFJ1biBhbGwgdGhlIHdheSB0aHJvdWdoIHRoZSBpdGVyYXRvciwgdGhlbiBnZXQgdGhlIG9mZnNldAorICAgICAgICBpbnRbXSBvcmRlcnMgPSBDb2xsYXRpb25UZXN0LmdldE9yZGVycyhpdGVyKTsKKyAgICAgICAgbG9nbG4oIm9yZGVycy5sZW5ndGggPSAiICsgb3JkZXJzLmxlbmd0aCk7CisgICAgICAgIAorICAgICAgICBpbnQgb2Zmc2V0ID0gaXRlci5nZXRPZmZzZXQoKTsKKyAgICAKKyAgICAgICAgaWYgKG9mZnNldCAhPSB0ZXN0MS5sZW5ndGgoKSkgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSAib2Zmc2V0IGF0IGVuZCAhPSBsZW5ndGg6ICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICIgdnMgIjsKKyAgICAgICAgICAgIGVycmxuKG1zZzEgKyBvZmZzZXQgKyBtc2cyICsgdGVzdDEubGVuZ3RoKCkpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIE5vdyBzZXQgdGhlIG9mZnNldCBiYWNrIHRvIHRoZSBiZWdpbm5pbmcgYW5kIHNlZSBpZiBpdCB3b3JrcworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgcHJpc3RpbmUgPSBlbl91cy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdDEpOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDApOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigic2V0T2Zmc2V0IGZhaWxlZC4iKTsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnRFcXVhbChpdGVyLCBwcmlzdGluZSk7CisgICAgCisgICAgICAgIC8vIHNldHRpbmcgb2Zmc2V0IGluIHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbgorICAgICAgICBTdHJpbmcgY29udHJhY3Rpb24gPSAiY2hhbmdlIjsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgdGFpbG9yZWQgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdGFpbG9yZWQgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoIiYgYSA8IGNoIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IGluIGNyZWF0aW9uIG9mIFNwYW5pc2ggY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgICAgICBpdGVyID0gdGFpbG9yZWQuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKGNvbnRyYWN0aW9uKTsKKyAgICAgICAgaW50IG9yZGVyW10gPSBDb2xsYXRpb25UZXN0LmdldE9yZGVycyhpdGVyKTsKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoMSk7IC8vIHNldHMgb2Zmc2V0IGluIHRoZSBtaWRkbGUgb2YgY2gKKyAgICAgICAgaW50IG9yZGVyMltdID0gQ29sbGF0aW9uVGVzdC5nZXRPcmRlcnMoaXRlcik7CisgICAgICAgIGlmICghQXJyYXlzLmVxdWFscyhvcmRlciwgb3JkZXIyKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBzZXR0aW5nIG9mZnNldCBpbiB0aGUgbWlkZGxlIG9mIGEgY29udHJhY3Rpb24gc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHNldHRpbmcgaXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjb250cmFjdGlvbiIpOworICAgICAgICB9CisgICAgICAgIGNvbnRyYWN0aW9uID0gInBlYWNoZSI7CisgICAgICAgIGl0ZXIgPSB0YWlsb3JlZC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoY29udHJhY3Rpb24pOworICAgICAgICBpdGVyLnNldE9mZnNldCgzKTsKKyAgICAgICAgb3JkZXIgPSBDb2xsYXRpb25UZXN0LmdldE9yZGVycyhpdGVyKTsKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoNCk7IC8vIHNldHMgb2Zmc2V0IGluIHRoZSBtaWRkbGUgb2YgY2gKKyAgICAgICAgb3JkZXIyID0gQ29sbGF0aW9uVGVzdC5nZXRPcmRlcnMoaXRlcik7CisgICAgICAgIGlmICghQXJyYXlzLmVxdWFscyhvcmRlciwgb3JkZXIyKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBzZXR0aW5nIG9mZnNldCBpbiB0aGUgbWlkZGxlIG9mIGEgY29udHJhY3Rpb24gc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHNldHRpbmcgaXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjb250cmFjdGlvbiIpOworICAgICAgICB9CisgICAgICAgIC8vIHNldHRpbmcgb2Zmc2V0IGluIHRoZSBtaWRkbGUgb2YgYSBzdXJyb2dhdGUgcGFpcgorICAgICAgICBTdHJpbmcgc3Vycm9nYXRlID0gIlx1ZDgwMFx1ZGMwMHN0ciI7CisgICAgICAgIGl0ZXIgPSB0YWlsb3JlZC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc3Vycm9nYXRlKTsKKyAgICAgICAgb3JkZXIgPSBDb2xsYXRpb25UZXN0LmdldE9yZGVycyhpdGVyKTsKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoMSk7IC8vIHNldHMgb2Zmc2V0IGluIHRoZSBtaWRkbGUgb2Ygc3Vycm9nYXRlCisgICAgICAgIG9yZGVyMiA9IENvbGxhdGlvblRlc3QuZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBpZiAoIUFycmF5cy5lcXVhbHMob3JkZXIsIG9yZGVyMikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogc2V0dGluZyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyIHNob3VsZCBiZSB0aGUgc2FtZSBhcyBzZXR0aW5nIGl0IHRvIHRoZSBzdGFydCBvZiB0aGUgc3Vycm9nYXRlIHBhaXIiKTsKKyAgICAgICAgfQorICAgICAgICBzdXJyb2dhdGUgPSAic2ltcGxlXHVkODAwXHVkYzAwc3RyIjsKKyAgICAgICAgaXRlciA9IHRhaWxvcmVkLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzdXJyb2dhdGUpOworICAgICAgICBpdGVyLnNldE9mZnNldCg2KTsKKyAgICAgICAgb3JkZXIgPSBDb2xsYXRpb25UZXN0LmdldE9yZGVycyhpdGVyKTsKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoNyk7IC8vIHNldHMgb2Zmc2V0IGluIHRoZSBtaWRkbGUgb2Ygc3Vycm9nYXRlCisgICAgICAgIG9yZGVyMiA9IENvbGxhdGlvblRlc3QuZ2V0T3JkZXJzKGl0ZXIpOworICAgICAgICBpZiAoIUFycmF5cy5lcXVhbHMob3JkZXIsIG9yZGVyMikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogc2V0dGluZyBvZmZzZXQgaW4gdGhlIG1pZGRsZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyIHNob3VsZCBiZSB0aGUgc2FtZSBhcyBzZXR0aW5nIGl0IHRvIHRoZSBzdGFydCBvZiB0aGUgc3Vycm9nYXRlIHBhaXIiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUT0RPOiB0cnkgaXRlcmF0aW5nIGhhbGZ3YXkgdGhyb3VnaCBhIG1lc3N5IHN0cmluZy4KKyAgICB9CisgICAgCisgICAgCisKKyAgICB2b2lkIGFzc2VydEVxdWFsKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpMSwgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkyKSB7CisgICAgICAgIGludCBjMSwgYzIsIGNvdW50ID0gMDsKKyAgICAgICAgZG8geworICAgICAgICAgICAgYzEgPSBpMS5uZXh0KCk7CisgICAgICAgICAgICBjMiA9IGkyLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChjMSAhPSBjMikgeworICAgICAgICAgICAgICAgIGVycmxuKCIgICAgIiArIGNvdW50ICsgIjogc3RyZW5ndGgoMHgiICsgCisgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoYzEpICsgIikgIT0gc3RyZW5ndGgoMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjMikgKyAiKSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKz0gMTsKKyAgICAgICAgfSB3aGlsZSAoYzEgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUik7CisgICAgICAgIENvbGxhdGlvblRlc3QuYmFja0FuZEZvcnRoKHRoaXMsIGkxKTsKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaTIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IGZvciBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJldmlvdXMoKQorICAgICAqCisgICAgICogQGJ1ZyA0MTA4NzU4IC0gTWFrZSBzdXJlIGl0IHdvcmtzIHdpdGggY29udHJhY3RpbmcgY2hhcmFjdGVycworICAgICAqIAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQcmV2aW91cygvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZW5fdXMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgPSBlbl91cy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdDEpOworICAgIAorICAgICAgICAvLyBBIGJhc2ljIHRlc3QgdG8gc2VlIGlmIGl0J3Mgd29ya2luZyBhdCBhbGwKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaXRlcik7CisgICAgCisgICAgICAgIC8vIFRlc3Qgd2l0aCBhIGNvbnRyYWN0aW5nIGNoYXJhY3RlciBzZXF1ZW5jZQorICAgICAgICBTdHJpbmcgc291cmNlOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjMSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjMSA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcigiJmEsQSA8IGIsQiA8IGMsQywgZCxEIDwgeixaIDwgY2gsY0gsQ2gsQ0giKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb3VsZG4ndCBjcmVhdGUgYSBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIGEgY29udHJhY3Rpbmcgc2VxdWVuY2UuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgc291cmNlID0gImFiY2hkY2JhIjsKKyAgICAgICAgaXRlciA9IGMxLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UpOworICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAKKyAgICAgICAgLy8gVGVzdCB3aXRoIGFuIGV4cGFuZGluZyBjaGFyYWN0ZXIgc2VxdWVuY2UKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYzIgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYzIgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoIiZhIDwgYiA8IGMvYWJkIDwgZCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSApIHsKKyAgICAgICAgICAgIGVycmxuKCJDb3VsZG4ndCBjcmVhdGUgYSBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIGFuIGV4cGFuZGluZyBzZXF1ZW5jZS4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzb3VyY2UgPSAiYWJjZCI7CisgICAgICAgIGl0ZXIgPSBjMi5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc291cmNlKTsKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaXRlcik7CisgICAgCisgICAgICAgIC8vIE5vdyB0cnkgYm90aAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjMyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjMyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcigiJmEgPCBiIDwgYy9hYmEgPCBkIDwgeiA8IGNoIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bGRuJ3QgY3JlYXRlIGEgUnVsZUJhc2VkQ29sbGF0b3Igd2l0aCBib3RoIGFuIGV4cGFuZGluZyBhbmQgYSBjb250cmFjdGluZyBzZXF1ZW5jZS4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc291cmNlID0gImFiY2RiY2hkYyI7CisgICAgICAgIGl0ZXIgPSBjMy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc291cmNlKTsKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaXRlcik7CisgICAgCisgICAgICAgIHNvdXJjZT0gIlx1MGU0MVx1MGUwMlx1MGU0MVx1MGUwMlx1MGUyN2FiYyI7CisgICAgICAgIENvbGxhdG9yIGM0ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGM0ID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgidGgiLCAiVEgiLCAiIikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IGNyZWF0ZSBhIGNvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGl0ZXIgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWM0KS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc291cmNlKTsKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaXRlcik7CisgICAgICAgCisgICAgICAgIHNvdXJjZT0gIlx1MDA2MVx1MzBDRlx1MzA5OVx1MzBGQyI7CisgICAgICAgIENvbGxhdG9yIGM1ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGM1ID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiamEiLCAiSlAiLCAiIikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IGNyZWF0ZSBKYXBhbmVzZSBjb2xsYXRvclxuIik7CisgICAgICAgIH0KKyAgICAgICAgaXRlciA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpYzUpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UpOworICAgICAgICAKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaXRlcik7CisgICAgfQorICAgIAorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgZm9yIHNldFRleHQoKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTZXRUZXh0KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcjEgPSBlbl91cy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdDEpOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcjIgPSBlbl91cy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdDIpOworICAgIAorICAgICAgICAvLyBSdW4gdGhyb3VnaCB0aGUgc2Vjb25kIGl0ZXJhdG9yIGp1c3QgdG8gZXhlcmNpc2UgaXQKKyAgICAgICAgaW50IGMgPSBpdGVyMi5uZXh0KCk7CisgICAgICAgIGludCBpID0gMDsKKyAgICAKKyAgICAgICAgd2hpbGUgKCArK2kgPCAxMCAmJiBjICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYyA9IGl0ZXIyLm5leHQoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIml0ZXIyLm5leHQoKSByZXR1cm5lZCBhbiBlcnJvci4iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBOb3cgc2V0IGl0IHRvIHBvaW50IHRvIHRoZSBzYW1lIHN0cmluZyBhcyB0aGUgZmlyc3QgaXRlcmF0b3IKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGl0ZXIyLnNldFRleHQodGVzdDEpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oImNhbGwgdG8gaXRlcjItPnNldFRleHQodGVzdDEpIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnRFcXVhbChpdGVyMSwgaXRlcjIpOworICAgICAgICAKKyAgICAgICAgaXRlcjEucmVzZXQoKTsKKyAgICAgICAgLy9ub3cgdXNlIHRoZSBvdmVybG9hZGVkIHNldFRleHQoQ2hyYWN0ZXJJdGVyYXRvciYsIFVFcnJvckNvZGUpIGZ1bmN0aW9uIHRvIHNldCB0aGUgdGV4dAorICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBjaGFyaXRlciA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXN0MSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpdGVyMi5zZXRUZXh0KGNoYXJpdGVyKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUgKSB7CisgICAgICAgICAgICBlcnJsbigiY2FsbCB0byBpdGVyMi0+c2V0VGV4dChjaGFyaXRlcih0ZXN0MSkpIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnRFcXVhbChpdGVyMSwgaXRlcjIpOworICAgICAgICAKKyAgICAgICAgaXRlcjEucmVzZXQoKTsKKyAgICAgICAgLy9ub3cgdXNlIHRoZSBvdmVybG9hZGVkIHNldFRleHQoQ2hyYWN0ZXJJdGVyYXRvciYsIFVFcnJvckNvZGUpIGZ1bmN0aW9uIHRvIHNldCB0aGUgdGV4dAorICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgdWNoYXJpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHRlc3QxKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGl0ZXIyLnNldFRleHQodWNoYXJpdGVyKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUgKSB7CisgICAgICAgICAgICBlcnJsbigiY2FsbCB0byBpdGVyMi0+c2V0VGV4dCh1Y2hhcml0ZXIodGVzdDEpKSBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0RXF1YWwoaXRlcjEsIGl0ZXIyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGZvciBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgcHJldmlvdXMgYW5kIG5leHQgZm9yIHRoZSB3aG9sZSBzZXQgb2YKKyAgICAgKiB1bmljb2RlIGNoYXJhY3RlcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFVuaWNvZGVDaGFyKCkgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcjsKKyAgICAgICAgY2hhciBjb2RlcG9pbnQ7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHNvdXJjZS5hcHBlbmQoIlx1MGU0ZFx1MGU0ZVx1MGU0ZiIpOworICAgICAgICAvLyBzb3VyY2UuYXBwZW5kKCJcdTA0ZThcdTA0ZTkiKTsKKyAgICAgICAgaXRlciA9IGVuX3VzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UudG9TdHJpbmcoKSk7CisgICAgICAgIC8vIEEgYmFzaWMgdGVzdCB0byBzZWUgaWYgaXQncyB3b3JraW5nIGF0IGFsbCAKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaXRlcik7CisgICAgICAgIGZvciAoY29kZXBvaW50ID0gMTsgY29kZXBvaW50IDwgMHhGRkZFOykgeworICAgICAgICAgICAgc291cmNlLmRlbGV0ZSgwLCBzb3VyY2UubGVuZ3RoKCkpOworICAgICAgICAgICAgd2hpbGUgKGNvZGVwb2ludCAlIDB4RkYgIT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGVmaW5lZChjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29kZXBvaW50ICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RlZmluZWQoY29kZXBvaW50KSkgeworICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoY29kZXBvaW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGNvZGVwb2ludCAhPSAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICBjb2RlcG9pbnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKmlmIChjb2RlcG9pbnQgPj0gMHgwNGZjKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjb2RlcG9pbnQgIiArIEludGVnZXIudG9IZXhTdHJpbmcoY29kZXBvaW50KSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IHNvdXJjZS5zdWJzdHJpbmcoMjMwLCAyMzIpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuZXNjYXBlKHN0cikpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY29kZXBvaW50ICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNvZGVwb2ludCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgImxlbmd0aCAiICsgc3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpdGVyID0gZW5fdXMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN0cik7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaXRlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAqLworICAgICAgICAgICAgaXRlciA9IGVuX3VzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAvLyBBIGJhc2ljIHRlc3QgdG8gc2VlIGlmIGl0J3Mgd29ya2luZyBhdCBhbGwgCisgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IGZvciBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgcHJldmlvdXMgYW5kIG5leHQgZm9yIHRoZSB3aG9sZSBzZXQgb2YKKyAgICAgKiB1bmljb2RlIGNoYXJhY3RlcnMgd2l0aCBub3JtYWxpemF0aW9uIG9uLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROb3JtYWxpemVkVW5pY29kZUNoYXIoKQorICAgIHsKKyAgICAgICAgLy8gdGhhaSBzaG91bGQgaGF2ZSBub3JtYWxpemF0aW9uIG9uCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHRoX3RoID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRoX3RoID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMb2NhbGUoInRoIiwgIlRIIikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFcnJvciBjcmVhdGluZyBUaGFpIGNvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQnVmZmVyIHNvdXJjZSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgc291cmNlLmFwcGVuZCgnXHVGREZBJyk7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyIAorICAgICAgICAgICAgICAgICAgICAgICAgPSB0aF90aC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc291cmNlLnRvU3RyaW5nKCkpOworICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyKTsKKyAgICAgICAgZm9yIChjaGFyIGNvZGVwb2ludCA9IDB4MTsgY29kZXBvaW50IDwgMHhmZmZlOykgeworICAgICAgICAgICAgc291cmNlLmRlbGV0ZSgwLCBzb3VyY2UubGVuZ3RoKCkpOworICAgICAgICAgICAgd2hpbGUgKGNvZGVwb2ludCAlIDB4RkYgIT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGVmaW5lZChjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29kZXBvaW50ICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RlZmluZWQoY29kZXBvaW50KSkgeworICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoY29kZXBvaW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGNvZGVwb2ludCAhPSAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICBjb2RlcG9pbnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qaWYgKCgoaW50KWNvZGVwb2ludCkgPj0gMHhmZTAwKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IHNvdXJjZS5zdWJzdHJpbmcoMTg1LCAxOTApOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuZXNjYXBlKHN0cikpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY29kZXBvaW50ICIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhjb2RlcG9pbnQpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJsZW5ndGggIiArIHN0ci5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgaXRlciA9IHRoX3RoLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzdHIpOworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuYmFja0FuZEZvcnRoKHRoaXMsIGl0ZXIpOworICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGl0ZXIgPSB0aF90aC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc291cmNlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgLy8gQSBiYXNpYyB0ZXN0IHRvIHNlZSBpZiBpdCdzIHdvcmtpbmcgYXQgYWxsIAorICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaXRlcik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBUZXN0aW5nIHRoZSBkaXNjb250aWd1b3VzIGNvbnRyYWN0aW9ucworICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERpc2NvbnRpZ3VvdXMoKSAKKyAgICB7CisgICAgICAgIFN0cmluZyBydWxlc3RyID0iJnogPCBBQiA8IFhcdTAzMDAgPCBBQkMgPCBYXHUwMzAwXHUwMzE1IjsKKyAgICAgICAgU3RyaW5nIHNyY1tdID0geyJBREIiLCAiQURCQyIsICJBXHUwMzE1QiIsICJBXHUwMzE1QkMiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmFzZSBjaGFyYWN0ZXIgYmxvY2tlZAorICAgICAgICAgICAgICAgICAgICAgICAgIlhEXHUwMzAwIiwgIlhEXHUwMzAwXHUwMzE1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vbiBibG9ja2luZyBjb21iaW5pbmcgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMxOVx1MDMwMCIsICJYXHUwMzE5XHUwMzAwXHUwMzE1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJsb2NraW5nIGNvbWJpbmluZyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzE0XHUwMzAwIiwgIlhcdTAzMTRcdTAzMDBcdTAzMTUiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udHJhY3Rpb24gcHJlZml4CisgICAgICAgICAgICAgICAgICAgICAgICAiQUJEQyIsICJBQlx1MDMxNUMiLCJYXHUwMzAwRFx1MDMxNSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgIlhcdTAzMDBcdTAzMTlcdTAzMTUiLCAiWFx1MDMwMFx1MDMxQVx1MDMxNSIsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbmRzIG5vdCB3aXRoIGEgY29udHJhY3Rpb24gY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMxOVx1MDMwMEQiLCAiWFx1MDMxOVx1MDMwMFx1MDMxNUQiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzAwRFx1MDMxNUQiLCAiWFx1MDMwMFx1MDMxOVx1MDMxNUQiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICJYXHUwMzAwXHUwMzFBXHUwMzE1RCIKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nIHRndFtdID0gey8vIG5vbiBibG9ja2luZyBjb21iaW5pbmcgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAiQSBEIEIiLCAiQSBEIEJDIiwgIkEgXHUwMzE1IEIiLCAiQSBcdTAzMTUgQkMiLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmFzZSBjaGFyYWN0ZXIgYmxvY2tlZAorICAgICAgICAgICAgICAgICAgICAgICAgIlggRCBcdTAzMDAiLCAiWCBEIFx1MDMwMFx1MDMxNSIsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBub24gYmxvY2tpbmcgY29tYmluaW5nIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgIlhcdTAzMDAgXHUwMzE5IiwgIlhcdTAzMDBcdTAzMTUgXHUwMzE5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJsb2NraW5nIGNvbWJpbmluZyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICJYIFx1MDMxNCBcdTAzMDAiLCAiWCBcdTAzMTQgXHUwMzAwXHUwMzE1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRyYWN0aW9uIHByZWZpeAorICAgICAgICAgICAgICAgICAgICAgICAgIkFCIERDIiwgIkFCIFx1MDMxNSBDIiwiWFx1MDMwMCBEIFx1MDMxNSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgIlhcdTAzMDBcdTAzMTUgXHUwMzE5IiwgIlhcdTAzMDAgXHUwMzFBIFx1MDMxNSIsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbmRzIG5vdCB3aXRoIGEgY29udHJhY3Rpb24gY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMwMCBcdTAzMTlEIiwgIlhcdTAzMDBcdTAzMTUgXHUwMzE5RCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgIlhcdTAzMDAgRFx1MDMxNUQiLCAiWFx1MDMwMFx1MDMxNSBcdTAzMTlEIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAiWFx1MDMwMCBcdTAzMUFcdTAzMTVEIgorICAgICAgICB9OworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlc3RyKTsKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gY29sbC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoIiIpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHJlc3VsdGl0ZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBjb2xsLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7ICAgIAorICAgICAgICAgICAgd2hpbGUgKGNvdW50IDwgc3JjLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGl0ZXIuc2V0VGV4dChzcmNbY291bnRdKTsKKyAgICAgICAgICAgICAgICBpbnQgcyA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKHMgPCB0Z3RbY291bnRdLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBlID0gdGd0W2NvdW50XS5pbmRleE9mKCcgJywgcyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZSA9IHRndFtjb3VudF0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJlc3VsdHN0ciA9IHRndFtjb3VudF0uc3Vic3RyaW5nKHMsIGUpOworICAgICAgICAgICAgICAgICAgICByZXN1bHRpdGVyLnNldFRleHQocmVzdWx0c3RyKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGNlID0gcmVzdWx0aXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2UgIT0gaXRlci5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlzY29udGlndW9zIGNvbnRyYWN0aW9uIHRlc3QgbWlzbWF0Y2ggYXQiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgY291bnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNlID0gcmVzdWx0aXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcyA9IGUgKyAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpdGVyLnJlc2V0KCk7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaXRlcik7CisgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIHJ1bm5pbmcgZGlzY29udGlndW91cyB0ZXN0cyAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGVzdCB0aGUgaW5jcmVtZW50YWwgbm9ybWFsaXphdGlvbgorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE5vcm1hbGl6YXRpb24oKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gIiZhIDwgXHUwMzAwXHUwMzE1IDwgQVx1MDMwMFx1MDMxNSA8IFx1MDMxNlx1MDMxNUIgPCBcdTAzMTZcdTAzMDBcdTAzMTUiOworICAgICAgICBTdHJpbmcgdGVzdGRhdGFbXSA9IHsiXHUxRUQ5IiwgIm9cdTAzMjNcdTAzMDIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAzMDBcdTAzMTUiLCAiXHUwMzE1XHUwMzAwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQVx1MDMwMFx1MDMxNUIiLCAiQVx1MDMxNVx1MDMwMEIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBXHUwMzE2XHUwMzE1QiIsICJBXHUwMzE1XHUwMzE2QiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDMxNlx1MDMwMFx1MDMxNSIsICJcdTAzMTVcdTAzMDBcdTAzMTYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBXHUwMzE2XHUwMzAwXHUwMzE1QiIsICJBXHUwMzE1XHUwMzAwXHUwMzE2QiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDMxNlx1MDMxNVx1MDMwMCIsICJBXHUwMzE2XHUwMzE1XHUwMzAwQiJ9OworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgY29sbC5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRVJST1I6IGluIGNyZWF0aW9uIG9mIGNvbGxhdG9yIHVzaW5nIHJ1bGVzICIgKyBydWxlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyID0gY29sbC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoInRlc3RpbmciKTsKKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IHRlc3RkYXRhLmxlbmd0aDsgY291bnQgKyspIHsKKyAgICAgICAgICAgIGl0ZXIuc2V0VGV4dCh0ZXN0ZGF0YVtjb3VudF0pOworICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5iYWNrQW5kRm9ydGgodGhpcywgaXRlcik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uS2FuYVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25LYW5hVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMDg0N2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uS2FuYVRlc3QuamF2YQpAQCAtMCwwICsxLDI1NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvbkthbmFUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9qYWNvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uS2FuYVRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgQ29sbGF0aW9uS2FuYVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICB7MHhmZjlFfSwKKyAgICAgICAgezB4MzA0Mn0sCisgICAgICAgIHsweDMwQTJ9LAorICAgICAgICB7MHgzMDQyLCAweDMwNDJ9LAorICAgICAgICB7MHgzMEEyLCAweDMwRkN9LAorICAgICAgICB7MHgzMEEyLCAweDMwRkMsIDB4MzBDOH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIDYgKi8KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFRhcmdldENhc2VzID0geworICAgICAgICB7MHhGRjlGfSwKKyAgICAgICAgezB4MzBBMn0sCisgICAgICAgIHsweDMwNDIsIDB4MzA0Mn0sCisgICAgICAgIHsweDMwQTIsIDB4MzBGQ30sCisgICAgICAgIHsweDMwQTIsIDB4MzBGQywgMHgzMEM4fSwKKyAgICAgICAgezB4MzA0MiwgMHgzMDQyLCAweDMwNjh9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIDYgKi8KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gcmVzdWx0cyA9IHsKKyAgICAgICAgLTEsCisgICAgICAgIDAsICAgLy9Db2xsYXRvcjo6TEVTUywgLyogS2F0YWthbmFzIGFuZCBIaXJhZ2FuYXMgYXJlIGVxdWFsIG9uIHRlcnRpYXJ5IGxldmVsKElDVSAyLjApKi8KKyAgICAgICAgLTEsCisgICAgICAgIDEsIC8vIENvbGxhdG9yOjpMRVNTLCAvKiBQcm9sb25nZWQgc291bmQgbWFyayBzb3J0cyBCRUZPUkUgZXF1aXZhbGVudCB2b3dlbCAoSUNVIDIuMCkqLworICAgICAgICAtMSwKKyAgICAgICAgLTEsICAgIC8vQ29sbGF0b3I6OkdSRUFURVIgLyogUHJvbG9uZ2VkIHNvdW5kIG1hcmsgc29ydHMgQkVGT1JFIGVxdWl2YWxlbnQgdm93ZWwgKElDVSAyLjApKi8vKiAgNiAqLworICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0QmFzZUNhc2VzID0geworICAgICAgICB7MHgzMEFCfSwKKyAgICAgICAgezB4MzBBQiwgMHgzMEFEfSwKKyAgICAgICAgezB4MzBBRH0sCisgICAgICAgIHsweDMwQUQsIDB4MzBBRH0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFBsYWluRGFrdXRlbkhhbmRha3V0ZW5DYXNlcyA9IHsKKyAgICAgICAgezB4MzBDRiwgMHgzMEFCfSwKKyAgICAgICAgezB4MzBEMCwgMHgzMEFCfSwKKyAgICAgICAgezB4MzBDRiwgMHgzMEFEfSwKKyAgICAgICAgezB4MzBEMCwgMHgzMEFEfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0U21hbGxMYXJnZUNhc2VzID0geworICAgICAgICB7MHgzMEMzLCAweDMwQ0Z9LAorICAgICAgICB7MHgzMEM0LCAweDMwQ0Z9LAorICAgICAgICB7MHgzMEMzLCAweDMwRDB9LAorICAgICAgICB7MHgzMEM0LCAweDMwRDB9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RLYXRha2FuYUhpcmFnYW5hQ2FzZXMgPSB7CisgICAgICAgIHsweDMwNDIsIDB4MzBDM30sCisgICAgICAgIHsweDMwQTIsIDB4MzBDM30sCisgICAgICAgIHsweDMwNDIsIDB4MzBDNH0sCisgICAgICAgIHsweDMwQTIsIDB4MzBDNH0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdENob29vbktpZ29vQ2FzZXMgPSB7CisgICAgICAgIC8qMCovIHsweDMwQUIsIDB4MzBGQywgMHgzMDQyfSwKKyAgICAgICAgLyoxKi8gezB4MzBBQiwgMHgzMEZDLCAweDMwQTJ9LAorICAgICAgICAvKjIqLyB7MHgzMEFCLCAweDMwQTQsIDB4MzA0Mn0sCisgICAgICAgIC8qMyovIHsweDMwQUIsIDB4MzBBNCwgMHgzMEEyfSwKKyAgICAgICAgLyo2Ki8gezB4MzBBRCwgMHgzMEZDLCAweDMwNDJ9LCAvKiBQcm9sb25nZWQgc291bmQgbWFyayBzb3J0cyBCRUZPUkUgZXF1aXZhbGVudCB2b3dlbCAoSUNVIDIuMCkqLworICAgICAgICAvKjcqLyB7MHgzMEFELCAweDMwRkMsIDB4MzBBMn0sIC8qIFByb2xvbmdlZCBzb3VuZCBtYXJrIHNvcnRzIEJFRk9SRSBlcXVpdmFsZW50IHZvd2VsIChJQ1UgMi4wKSovCisgICAgICAgIC8qNCovIHsweDMwQUQsIDB4MzBBNCwgMHgzMDQyfSwKKyAgICAgICAgLyo1Ki8gezB4MzBBRCwgMHgzMEE0LCAweDMwQTJ9CisgICAgfTsKKyAgICAgICAgCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkthbmFUZXN0KCkgeworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl0aHJvd3MgRXhjZXB0aW9ueyAKKyAgICAgICAgaWYobXlDb2xsYXRpb249PW51bGwpeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuSkFQQU5FU0UpOyAKKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBwZXJmb3JtcyB0ZXN0IHdpdGggc3RyZW5ndGggVEVSSUFSWQorICAgIHB1YmxpYyB2b2lkIFRlc3RUZXJ0aWFyeSgpIHsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyogVGVzdGluZyBiYXNlIGxldHRlcnMgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFzZSgpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMyA7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RCYXNlQ2FzZXNbaV0sIHRlc3RCYXNlQ2FzZXNbaSArIDFdLCAtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBUZXN0aW5nIHBsYWluLCBEYWt1LXRlbiwgSGFuZGFrdS10ZW4gbGV0dGVycyAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQbGFpbkRha3V0ZW5IYW5kYWt1dGVuKCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDMgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0UGxhaW5EYWt1dGVuSGFuZGFrdXRlbkNhc2VzW2ldLCB0ZXN0UGxhaW5EYWt1dGVuSGFuZGFrdXRlbkNhc2VzW2kgKyAxXSwgLTEpOworICAgICAgICB9CisgICAgfQorCisgICAgLyogCisgICAgKiBUZXN0IFNtYWxsLCBMYXJnZSBsZXR0ZXJzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U21hbGxMYXJnZSgpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMyA7IGkrKykgeworICAgICAgICAgICAgZG9UZXN0KHRlc3RTbWFsbExhcmdlQ2FzZXNbaV0sIHRlc3RTbWFsbExhcmdlQ2FzZXNbaSArIDFdLCAtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICogVGVzdCBLYXRha2FuYSwgSGlyYWdhbmEgbGV0dGVycworICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEthdGFrYW5hSGlyYWdhbmEoKSB7CisgICAgICAgIGludCBpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5RVUFURVJOQVJZKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDMgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0S2F0YWthbmFIaXJhZ2FuYUNhc2VzW2ldLCB0ZXN0S2F0YWthbmFIaXJhZ2FuYUNhc2VzW2kgKyAxXSwgLTEpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAqIFRlc3QgQ2hvby1vbiBraWdvbworICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENob29vbktpZ29vKCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUVVBVEVSTkFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCA3IDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdENob29vbktpZ29vQ2FzZXNbaV0sIHRlc3RDaG9vb25LaWdvb0Nhc2VzW2kgKyAxXSwgLTEpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gbWFpbiB0ZXN0IHJvdXRpbmUsIHRlc3RzIHJ1bGVzIHNwZWNpZmljIHRvICJLYW5hIiBsb2NhbGUKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0KGNoYXJbXSBzb3VyY2UsIGNoYXJbXSB0YXJnZXQsIGludCByZXN1bHQpeworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IG15Q29sbGF0aW9uLmNvbXBhcmUocywgdCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIHNvcnRLZXkxID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHMpOworICAgICAgICBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0KTsKKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQocywgdCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCk7CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKXsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbk1pc2NUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uTWlzY1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTQ3Y2RjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbk1pc2NUZXN0LmphdmEKQEAgLTAsMCArMSwyMTIzIEBACisgLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBjaW50bHRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2NpbnRsdGVzdC9jbXNjY29sbC5jCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSW1wbGljaXRDRUdlbmVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25FbGVtZW50SXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25NaXNjVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQ29sbGF0aW9uTWlzY1Rlc3QoKS5ydW4oYXJncyk7CisgICAgICAgIC8vIG5ldyBDb2xsYXRpb25NaXNjVGVzdCgpLlRlc3RMb2NhbGVSdWxlQmFzZWRDb2xsYXRvcnMoKTsgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT1JNX0JVRkZFUl9URVNUX0xFTl8gPSAzMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBUZXN0ZXIgCisgICAgeworICAgICAgICBpbnQgdTsKKyAgICAgICAgU3RyaW5nIE5GQzsKKyAgICAgICAgU3RyaW5nIE5GRDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBoYXNDb2xsYXRpb25FbGVtZW50cyhMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FLGxvY2FsZSk7CisgICAgICAgIGlmIChyYiAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZyBjb2xsa2V5ID0gcmIuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKCJjb2xsYXRpb25zL2RlZmF1bHQiKTsgCisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgZWxlbWVudHMgPSByYi5nZXRXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvIiArIGNvbGxrZXkpOworICAgICAgICAgICAgICAgIGlmIChlbGVtZW50cyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG9zZURlY29tcG9zZSgpIAorICAgIHsKKyAgICAgICAgVGVzdGVyIHRbXSA9IG5ldyBUZXN0ZXJbMHgzMDAwMF07CisgICAgICAgIHRbMF0gPSBuZXcgVGVzdGVyKCk7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIFVDQSBleHRlbnNpdmVseVxuIik7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSAKKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIG9wZW5pbmcgY29sbGF0b3JcbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIGludCBub0Nhc2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgdSA9IDA7IHUgPCAweDMwMDAwOyB1ICsrKSB7CisgICAgICAgICAgICBTdHJpbmcgY29tcCA9IFVURjE2LnZhbHVlT2YodSk7CisgICAgICAgICAgICBpbnQgbGVuID0gY29tcC5sZW5ndGgoKTsKKyAgICAgICAgICAgIHRbbm9DYXNlc10uTkZDID0gTm9ybWFsaXplci5ub3JtYWxpemUodSwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgdFtub0Nhc2VzXS5ORkQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZSh1LCBOb3JtYWxpemVyLk5GRCk7CisgICAgCisgICAgICAgICAgICBpZiAodFtub0Nhc2VzXS5ORkMubGVuZ3RoKCkgIT0gdFtub0Nhc2VzXS5ORkQubGVuZ3RoKCkgCisgICAgICAgICAgICAgICAgfHwgKHRbbm9DYXNlc10uTkZDLmNvbXBhcmVUbyh0W25vQ2FzZXNdLk5GRCkgIT0gMCkgCisgICAgICAgICAgICAgICAgfHwgKGxlbiAhPSB0W25vQ2FzZXNdLk5GRC5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICB8fCAoY29tcC5jb21wYXJlVG8odFtub0Nhc2VzXS5ORkQpICE9IDApKSB7CisgICAgICAgICAgICAgICAgdFtub0Nhc2VzXS51ID0gdTsKKyAgICAgICAgICAgICAgICBpZiAobGVuICE9IHRbbm9DYXNlc10uTkZELmxlbmd0aCgpIAorICAgICAgICAgICAgICAgICAgICB8fCAoY29tcC5jb21wYXJlVG8odFtub0Nhc2VzXS5ORkQpICE9IDApKSB7CisgICAgICAgICAgICAgICAgICAgIHRbbm9DYXNlc10uTkZDID0gY29tcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbm9DYXNlcyArKzsKKyAgICAgICAgICAgICAgICB0W25vQ2FzZXNdID0gbmV3IFRlc3RlcigpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQorICAgIAorICAgICAgICBmb3IgKGludCB1ID0gMDsgdSA8IG5vQ2FzZXM7IHUgKyspIHsKKyAgICAgICAgICAgIGlmICghY29sbC5lcXVhbHModFt1XS5ORkMsIHRbdV0uTkZEKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlOiBjb2RlUG9pbnQgXFx1IiArIEludGVnZXIudG9IZXhTdHJpbmcodFt1XS51KSAKKyAgICAgICAgICAgICAgICAgICAgICArICIgZmFpbHMgVGVzdENvbXBvc2VEZWNvbXBvc2UgaW4gdGhlIFVDQSIpOworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIGNvbGwsIHRbdV0uTkZDLCB0W3VdLk5GRCwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgbG9jYWxlcywgbnVtYmVyIG9mIGNhc2VzID0gIiArIG5vQ2FzZXMpOworICAgICAgICBMb2NhbGUgbG9jW10gPSBDb2xsYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKGhhc0NvbGxhdGlvbkVsZW1lbnRzKGxvY1tpXSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiVGVzdGluZyBsb2NhbGUgIiArIGxvY1tpXS5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgICAgICAgICBjb2xsID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKGxvY1tpXSk7CisgICAgICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgIAorICAgICAgICAgICAgICAgIGZvciAoaW50IHUgPSAwOyB1IDwgbm9DYXNlczsgdSArKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbGwuZXF1YWxzKHRbdV0uTkZDLCB0W3VdLk5GRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlOiBjb2RlUG9pbnQgXFx1IiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyh0W3VdLnUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgZmFpbHMgVGVzdENvbXBvc2VEZWNvbXBvc2UgZm9yIGxvY2FsZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxvY1tpXS5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgdGVzdHMgZm9yIHRoZSBpdGVyYXRvcnMgdG9vCisgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCBjb2xsLCB0W3VdLk5GQywgdFt1XS5ORkQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFJ1bGVPcHRpb25zKCkgeworICAgICAgICAvLyB2YWx1ZXMgaGVyZSBhcmUgaGFyZGNvZGVkIGFuZCBhcmUgY29ycmVjdCBmb3IgdGhlIGN1cnJlbnQgVUNBIHdoZW4gCisgICAgICAgIC8vIHRoZSBVQ0EgY2hhbmdlcywgb25lIG1pZ2h0IGJlIGZvcmNlZCB0byBjaGFuZ2UgdGhlc2UgdmFsdWVzLiAKKyAgICAgICAgLy8gKFxcdTAyZDAsIFxcVTAwMDEwRkZGQyBldGMuLi4pIAorICAgICAgICBTdHJpbmdbXSBydWxlcyA9IHsKKyAgICAgICAgICAgIC8vIGNhbm5vdCB0ZXN0IHRoaXMgYW55bW9yZSwgYXMgW2xhc3QgcHJpbWFyeSBpZ25vcmFibGVdIGRvZXNuJ3QgCisgICAgICAgICAgICAvLyBoYXZlIGEgIGNvZGUgcG9pbnQgYXNzb2NpYXRlZCB0byBpdCBhbnltb3JlICAKKyAgICAgICAgICAgIC8vICImW2JlZm9yZSAzXVtsYXN0IHByaW1hcnkgaWdub3JhYmxlXTw8PGsiLAorICAgICAgICAgICAgLy8gLSBhbGwgYmVmb3JlcyBoZXJlIGFtb3VudCB0byB6ZXJvICAgICAgIAorICAgICAgICAgICAgIiZbYmVmb3JlIDNdW2ZpcnN0IHRlcnRpYXJ5IGlnbm9yYWJsZV08PDxhIiwKKyAgICAgICAgICAgICImW2JlZm9yZSAzXVtsYXN0IHRlcnRpYXJ5IGlnbm9yYWJsZV08PDxhIiwgIAorICAgICAgICAgICAgIiZbYmVmb3JlIDNdW2ZpcnN0IHNlY29uZGFyeSBpZ25vcmFibGVdPDw8YSIsCisgICAgICAgICAgICAiJltiZWZvcmUgM11bbGFzdCBzZWNvbmRhcnkgaWdub3JhYmxlXTw8PGEiLCAKKyAgICAgICAgICAgIC8vICdub3JtYWwnIGJlZm9yZXMgIAorICAgICAgICAgICAgIiZbYmVmb3JlIDNdW2ZpcnN0IHByaW1hcnkgaWdub3JhYmxlXTw8PGM8PDxiICZbZmlyc3QgcHJpbWFyeSBpZ25vcmFibGVdPGEiLAorICAgICAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSBhIGNvZGUgcG9pbnQgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgbGFzdCBwcmltYXJ5IAorICAgICAgICAgICAgLy8gaWdub3JhYmxlIAorICAgICAgICAgICAgIiZbYmVmb3JlIDNdW2xhc3QgcHJpbWFyeSBpZ25vcmFibGVdPDw8Yzw8PGIgJltsYXN0IHByaW1hcnkgaWdub3JhYmxlXTxhIiwKKyAgICAgICAgICAgICImW2JlZm9yZSAzXVtmaXJzdCB2YXJpYWJsZV08PDxjPDw8YiAmW2ZpcnN0IHZhcmlhYmxlXTxhIiwKKyAgICAgICAgICAgICImW2xhc3QgdmFyaWFibGVdPGEgJltiZWZvcmUgM11bbGFzdCB2YXJpYWJsZV08PDxjPDw8YiAiLAorICAgICAgICAgICAgIiZbZmlyc3QgcmVndWxhcl08YSAmW2JlZm9yZSAxXVtmaXJzdCByZWd1bGFyXTxiIiwgCisgICAgICAgICAgICAiJltiZWZvcmUgMV1bbGFzdCByZWd1bGFyXTxiICZbbGFzdCByZWd1bGFyXTxhIiwKKyAgICAgICAgICAgICImW2JlZm9yZSAxXVtmaXJzdCBpbXBsaWNpdF08YiAmW2ZpcnN0IGltcGxpY2l0XTxhIiwKKyAgICAgICAgICAgICImW2JlZm9yZSAxXVtsYXN0IGltcGxpY2l0XTxiICZbbGFzdCBpbXBsaWNpdF08YSIsIAorICAgICAgICAgICAgIiZbbGFzdCB2YXJpYWJsZV08eiZbbGFzdCBwcmltYXJ5IGlnbm9yYWJsZV08eCZbbGFzdCBzZWNvbmRhcnkgaWdub3JhYmxlXTw8eSZbbGFzdCB0ZXJ0aWFyeSBpZ25vcmFibGVdPDw8dyZbdG9wXTx1IiwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW11bXSBkYXRhID0geworICAgICAgICAgICAgLy8geyJrIiwgIlx1MjBlMyJ9LAorICAgICAgICAgICAgeyJcXHUwMDAwIiwgImEifSwgLy8geW91IGNhbm5vdCBnbyBiZWZvcmUgZmlyc3QgdGVydGlhcnkgaWdub3JhYmxlIAorICAgICAgICAgICAgeyJcXHUwMDAwIiwgImEifSwgLy8geW91IGNhbm5vdCBnbyBiZWZvcmUgbGFzdCB0ZXJ0aWFyeSBpZ25vcmFibGUgCisgICAgICAgICAgICB7IlxcdTAwMDAiLCAiYSJ9LCAvLyB5b3UgY2Fubm90IGdvIGJlZm9yZSBmaXJzdCBzZWNvbmRhcnkgaWdub3JhYmxlCisgICAgICAgICAgICB7IlxcdTAwMDAiLCAiYSJ9LCAvLyB5b3UgY2Fubm90IGdvIGJlZm9yZSBmaXJzdCBzZWNvbmRhcnkgaWdub3JhYmxlCisgICAgICAgICAgICB7ImMiLCAiYiIsICJcXHUwMzMyIiwgImEifSwKKyAgICAgICAgICAgIHsiXFx1MDMzMiIsICJcXHUyMGUzIiwgImMiLCAiYiIsICJhIn0sCisgICAgICAgICAgICB7ImMiLCAiYiIsICJcXHUwMDA5IiwgImEiLCAiXFx1MDAwYSJ9LAorICAgICAgICAgICAgeyJjIiwgImIiLCAiXFx1RDgwMlxcdURFNDciLCAiYSIsICJcXHUwMmQwIn0sCisgICAgICAgICAgICB7ImIiLCAiXFx1MDJkMCIsICJhIiwgIlxcdTAyZDEifSwKKyAgICAgICAgICAgIHsiYiIsICJcXHVkODAwXFx1ZGZjZiIsICJhIiwgIlxcdTRlMDAifSwKKyAgICAgICAgICAgIHsiYiIsICJcXHU0ZTAwIiwgImEiLCAiXFx1NGUwMSJ9LAorICAgICAgICAgICAgeyJiIiwgIlxcVTAwMTBGRkZEIiwgImEifSwKKyAgICAgICAgICAgIHsiXHVmZmZiIiwgICJ3IiwgInkiLCAiXHUyMGUzIiwgIngiLCAiXHUxMzdjIiwgInoiLCAidSJ9LAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGk8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzW2ldLCBkYXRhW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoU3RyaW5nIHJ1bGVzLCBTdHJpbmdbXSBzKSB7CisgICAgICAgIGdlbmVyaWNSdWxlc1Rlc3RXaXRoUmVzdWx0KHJ1bGVzLCBzLCAtMSk7CisgICAgfQorICAgIAorICAgIHZvaWQgZ2VuZXJpY1J1bGVzVGVzdFdpdGhSZXN1bHQoU3RyaW5nIHJ1bGVzLCBTdHJpbmdbXSBzLCBpbnQgcmVzdWx0KSB7CisgICAgICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgLy8gbG9nbG4oIlJ1bGVzIHN0YXJ0ZXIgZm9yICIgKyBydWxlcyk7CisgICAgICAgICAgICBnZW5lcmljT3JkZXJpbmdUZXN0V2l0aFJlc3VsdChjb2xsLCBzLCByZXN1bHQpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJVbmFibGUgdG8gb3BlbiBjb2xsYXRvciB3aXRoIHJ1bGVzICIgKyBydWxlcyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCBnZW5lcmljT3JkZXJpbmdUZXN0V2l0aFJlc3VsdChDb2xsYXRvciBjb2xsLCBTdHJpbmdbXSBzLCBpbnQgcmVzdWx0KSB7CisgICAgICAgIFN0cmluZyB0MSA9ICIiOworICAgICAgICBTdHJpbmcgdDIgPSAiIjsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCAtIDE7IGkrKykgeworICAgICAgICAgICAgZm9yKGludCBqID0gaSsxOyBqIDwgcy5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgIHQxID0gVXRpbGl0eS51bmVzY2FwZShzW2ldKTsKKyAgICAgICAgICAgICAgICB0MiA9IFV0aWxpdHkudW5lc2NhcGUoc1tqXSk7CisgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKGkgKyAiICIgKyBqKTsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCAoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCwgdDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCByZXBvcnRDUmVzdWx0KFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIENvbGxhdGlvbktleSBzb3VyY2VLZXksIENvbGxhdGlvbktleSB0YXJnZXRLZXksCisgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKSB7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szIC8qIHN5bndlZSB0byB1bmRvICYmICFpc1ZlcmJvc2UoKSovKSB7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIC8vIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgLy8gbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIC8vIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsgIC8vTEVTUworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeyAgLy9FUVVBTAorICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsgIC8vR1JFQVRFUgorICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEJlZm9yZVByZWZpeEZhaWx1cmUoKSB7CisgICAgICAgIFN0cmluZ1tdIHJ1bGVzID0geworICAgICAgICAgICAgIiZnIDw8PCBhJltiZWZvcmUgM11cdWZmNDEgPDw8IHgiLAorICAgICAgICAgICAgIiZcdTMwQTc9XHUzMEE3PVx1MzA0Nz1cdWZmNmEmXHUzMEE4PVx1MzBBOD1cdTMwNDg9XHVmZjc0JltiZWZvcmUgM11cdTMwYTc8PDxcdTMwYTkiLAorICAgICAgICAgICAgIiZbYmVmb3JlIDNdXHUzMGE3PDw8XHUzMGE5Jlx1MzBBNz1cdTMwQTc9XHUzMDQ3PVx1ZmY2YSZcdTMwQTg9XHUzMEE4PVx1MzA0OD1cdWZmNzQiLAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXVtdIGRhdGEgPSB7CisgICAgICAgICAgICB7IngiLCAiXHVmZjQxIn0sCisgICAgICAgICAgICB7Ilx1MzBhOSIsICJcdTMwYTcifSwKKyAgICAgICAgICAgIHsiXHUzMGE5IiwgIlx1MzBhNyJ9LAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaTwgcnVsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIocnVsZXNbaV0sIGRhdGFbaV0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb250cmFjdGlvbkNsb3N1cmUoKSB7CisgICAgICAgIFN0cmluZ1tdIHJ1bGVzID0geworICAgICAgICAgICAgIiZiPVx1MDBlNFx1MDBlNCIsCisgICAgICAgICAgICAiJmI9XHUwMEM1IiwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW11bXSBkYXRhID0geworICAgICAgICAgICAgeyAiYiIsICJcdTAwZTRcdTAwZTQiLCAiYVx1MDMwOGFcdTAzMDgiLCAiXHUwMGU0YVx1MDMwOCIsICJhXHUwMzA4XHUwMGU0IiB9LAorICAgICAgICAgICAgeyAiYiIsICJcdTAwQzUiLCAiQVx1MDMwQSIsICJcdTIxMkIiIH0sCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGkgPSAwOyBpPCBydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZ2VuZXJpY1J1bGVzVGVzdFdpdGhSZXN1bHQocnVsZXNbaV0sIGRhdGFbaV0sIDApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmVmaXhDb21wb3NlKCkgeworICAgICAgICBTdHJpbmcgcnVsZTEgPSAiJlx1MzBhNzw8PFx1MzBhYnxcdTMwZmM9XHUzMGFjfFx1MzBmYyI7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgc3RyaW5nID0gcnVsZTE7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHN0cmluZyk7CisgICAgICAgICAgICBsb2dsbigicnVsZToiICsgY29sbC5nZXRSdWxlcygpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRXJyb3Igb3BlbiBSdWxlQmFzZWRDb2xsYXRvciBydWxlID0gIiArIHN0cmluZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFN0ckNvbGxJZGVudGljYWxQcmVmaXgoKSB7CisgICAgICAgIFN0cmluZyBydWxlID0gIiZcdWQ5YjBcdWRjNzA9XHVkOWIwXHVkYzcxIjsKKyAgICAgICAgU3RyaW5nIHRlc3RbXSA9IHsKKyAgICAgICAgICAgICJhYlx1ZDliMFx1ZGM3MCIsCisgICAgICAgICAgICAiYWJcdWQ5YjBcdWRjNzEiCisgICAgICAgIH07CisgICAgICAgIGdlbmVyaWNSdWxlc1Rlc3RXaXRoUmVzdWx0KHJ1bGUsIHRlc3QsIDApOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJlZml4KCkgeworICAgICAgICBTdHJpbmdbXSBydWxlcyA9IHsKKyAgICAgICAgICAgICImeiA8PDwgenxhIiwKKyAgICAgICAgICAgICImeiA8PDwgenwgICBhIiwgCisgICAgICAgICAgICAiW3N0cmVuZ3RoIEldJmE9XHVkOTAwXHVkYzI1Jno8PDxcdWQ5MDBcdWRjMjV8YSIsIAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXVtdIGRhdGEgPSB7CisgICAgICAgICAgICB7Inp6IiwgInphIn0sCisgICAgICAgICAgICB7Inp6IiwgInphIn0sCisgICAgICAgICAgICB7ImFhIiwgImF6IiwgIlx1ZDkwMFx1ZGMyNXoiLCAiXHVkOTAwXHVkYzI1YSIsICJ6eiJ9LAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaTxydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcihydWxlc1tpXSwgZGF0YVtpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdE5ld0phcGFuZXNlKCkgeworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHRlc3QxW10gPSB7CisgICAgICAgICAgICAiXHUzMGI3XHUzMGUzXHUzMGZjXHUzMGVjIiwKKyAgICAgICAgICAgICJcdTMwYjdcdTMwZTNcdTMwYTQiLAorICAgICAgICAgICAgIlx1MzBiN1x1MzBlNFx1MzBhMyIsCisgICAgICAgICAgICAiXHUzMGI3XHUzMGUzXHUzMGVjIiwKKyAgICAgICAgICAgICJcdTMwNjFcdTMwODdcdTMwNTMiLAorICAgICAgICAgICAgIlx1MzA2MVx1MzA4OFx1MzA1MyIsCisgICAgICAgICAgICAiXHUzMGMxXHUzMGU3XHUzMGIzXHUzMGVjXHUzMGZjXHUzMGM4IiwKKyAgICAgICAgICAgICJcdTMwNjZcdTMwZmNcdTMwNWYiLAorICAgICAgICAgICAgIlx1MzBjNlx1MzBmY1x1MzBiZiIsIAorICAgICAgICAgICAgIlx1MzBjNlx1MzBhN1x1MzBiZiIsCisgICAgICAgICAgICAiXHUzMDY2XHUzMDQ4XHUzMDVmIiwKKyAgICAgICAgICAgICJcdTMwNjdcdTMwZmNcdTMwNWYiLCAKKyAgICAgICAgICAgICJcdTMwYzdcdTMwZmNcdTMwYmYiLAorICAgICAgICAgICAgIlx1MzBjN1x1MzBhN1x1MzBiZiIsCisgICAgICAgICAgICAiXHUzMDY3XHUzMDQ4XHUzMDVmIiwKKyAgICAgICAgICAgICJcdTMwNjZcdTMwZmNcdTMwNWZcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzBjNlx1MzBmY1x1MzBiZlx1MzBhMSIsCisgICAgICAgICAgICAiXHUzMGM2XHUzMGE3XHUzMGJmXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwNjZcdTMwNDdcdTMwNWZcdTMwNDEiLAorICAgICAgICAgICAgIlx1MzA2Nlx1MzA0OFx1MzA1Zlx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMDY3XHUzMGZjXHUzMDVmXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwYzdcdTMwZmNcdTMwYmZcdTMwYTEiLAorICAgICAgICAgICAgIlx1MzA2N1x1MzBhN1x1MzA1Zlx1MzBhMSIsCisgICAgICAgICAgICAiXHUzMGM3XHUzMDQ3XHUzMGJmXHUzMDQxIiwKKyAgICAgICAgICAgICJcdTMwYzdcdTMwYThcdTMwYmZcdTMwYTIiLAorICAgICAgICAgICAgIlx1MzA3Mlx1MzA4NiIsCisgICAgICAgICAgICAiXHUzMDczXHUzMDg1XHUzMDQyIiwKKyAgICAgICAgICAgICJcdTMwNzRcdTMwODVcdTMwNDIiLAorICAgICAgICAgICAgIlx1MzA3M1x1MzA4NVx1MzA0Mlx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMGQzXHUzMGU1XHUzMGEyXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwNzRcdTMwODVcdTMwNDJcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzBkNFx1MzBlNVx1MzBhMlx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMGQyXHUzMGU1XHUzMGE2IiwKKyAgICAgICAgICAgICJcdTMwZDJcdTMwZTZcdTMwYTYiLAorICAgICAgICAgICAgIlx1MzBkNFx1MzBlNVx1MzBhNlx1MzBhMiIsCisgICAgICAgICAgICAiXHUzMDczXHUzMDg1XHUzMGZjXHUzMDQyXHUzMGZjIiwgCisgICAgICAgICAgICAiXHUzMGQzXHUzMGU1XHUzMGZjXHUzMGEyXHUzMGZjIiwKKyAgICAgICAgICAgICJcdTMwZDNcdTMwZTVcdTMwYTZcdTMwYTJcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzA3Mlx1MzA4NVx1MzA5MyIsCisgICAgICAgICAgICAiXHUzMDc0XHUzMDg1XHUzMDkzIiwKKyAgICAgICAgICAgICJcdTMwNzVcdTMwZmNcdTMwOGEiLAorICAgICAgICAgICAgIlx1MzBkNVx1MzBmY1x1MzBlYSIsCisgICAgICAgICAgICAiXHUzMDc1XHUzMDQ1XHUzMDhhIiwKKyAgICAgICAgICAgICJcdTMwNzVcdTMwYTVcdTMwOGEiLAorICAgICAgICAgICAgIlx1MzA3NVx1MzBhNVx1MzBlYSIsCisgICAgICAgICAgICAiXHUzMGQ1XHUzMGE2XHUzMGVhIiwKKyAgICAgICAgICAgICJcdTMwNzZcdTMwZmNcdTMwOGEiLAorICAgICAgICAgICAgIlx1MzBkNlx1MzBmY1x1MzBlYSIsCisgICAgICAgICAgICAiXHUzMDc2XHUzMDQ1XHUzMDhhIiwKKyAgICAgICAgICAgICJcdTMwZDZcdTMwYTVcdTMwOGEiLAorICAgICAgICAgICAgIlx1MzA3N1x1MzA0Nlx1MzA4YSIsCisgICAgICAgICAgICAiXHUzMGQ3XHUzMGE2XHUzMGVhIiwKKyAgICAgICAgICAgICJcdTMwNzVcdTMwZmNcdTMwOGFcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzBkNVx1MzBhNVx1MzBlYVx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMDc1XHUzMGE1XHUzMDhhXHUzMGEzIiwKKyAgICAgICAgICAgICJcdTMwZDVcdTMwNDVcdTMwOGFcdTMwNDMiLAorICAgICAgICAgICAgIlx1MzBkNVx1MzBhNlx1MzBlYVx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMDc1XHUzMDQ2XHUzMDhhXHUzMDQzIiwKKyAgICAgICAgICAgICJcdTMwZDZcdTMwYTZcdTMwZWFcdTMwYTQiLAorICAgICAgICAgICAgIlx1MzA3N1x1MzBmY1x1MzA4YVx1MzBmYyIsCisgICAgICAgICAgICAiXHUzMDc3XHUzMGE1XHUzMDhhXHUzMGE0IiwKKyAgICAgICAgICAgICJcdTMwNzdcdTMwNDZcdTMwOGFcdTMwZmMiLAorICAgICAgICAgICAgIlx1MzBkN1x1MzBhNlx1MzBlYVx1MzBhNCIsCisgICAgICAgICAgICAiXHUzMGQ1XHUzMGZkIiwKKyAgICAgICAgICAgICJcdTMwNzVcdTMwOWUiLAorICAgICAgICAgICAgIlx1MzA3Nlx1MzA5ZCIsCisgICAgICAgICAgICAiXHUzMDc2XHUzMDc1IiwKKyAgICAgICAgICAgICJcdTMwNzZcdTMwZDUiLAorICAgICAgICAgICAgIlx1MzBkNlx1MzA3NSIsCisgICAgICAgICAgICAiXHUzMGQ2XHUzMGQ1IiwKKyAgICAgICAgICAgICJcdTMwNzZcdTMwOWUiLAorICAgICAgICAgICAgIlx1MzA3Nlx1MzA3NyIsCisgICAgICAgICAgICAiXHUzMGQ2XHUzMDc3IiwKKyAgICAgICAgICAgICJcdTMwNzdcdTMwOWQiLAorICAgICAgICAgICAgIlx1MzBkN1x1MzBmZCIsCisgICAgICAgICAgICAiXHUzMDc3XHUzMDc1IiwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0ZXN0MltdID0geworICAgICAgICAgICAgIlx1MzA2Zlx1MzA5ZCIsIC8vIEhcdTMwOWQgCisgICAgICAgICAgICAiXHUzMGNmXHUzMGZkIiwgLy8gS1x1MzBmZCAKKyAgICAgICAgICAgICJcdTMwNmZcdTMwNmYiLCAvLyBISCAKKyAgICAgICAgICAgICJcdTMwNmZcdTMwY2YiLCAvLyBISyAKKyAgICAgICAgICAgICJcdTMwY2ZcdTMwY2YiLCAvLyBLSyAKKyAgICAgICAgICAgICJcdTMwNmZcdTMwOWUiLCAvLyBIXHUzMDllIAorICAgICAgICAgICAgIlx1MzBjZlx1MzBmZSIsIC8vIEtcdTMwZmUgCisgICAgICAgICAgICAiXHUzMDZmXHUzMDcwIiwgLy8gSEhcdTMwOWIgCisgICAgICAgICAgICAiXHUzMGNmXHUzMGQwIiwgLy8gS0tcdTMwOWIgCisgICAgICAgICAgICAiXHUzMDZmXHUzMDcxIiwgLy8gSEhcdTMwOWMgCisgICAgICAgICAgICAiXHUzMGNmXHUzMDcxIiwgLy8gS0hcdTMwOWMgCisgICAgICAgICAgICAiXHUzMGNmXHUzMGQxIiwgLy8gS0tcdTMwOWMgCisgICAgICAgICAgICAiXHUzMDcwXHUzMDlkIiwgLy8gSFx1MzA5Ylx1MzA5ZCAKKyAgICAgICAgICAgICJcdTMwZDBcdTMwZmQiLCAvLyBLXHUzMDliXHUzMGZkIAorICAgICAgICAgICAgIlx1MzA3MFx1MzA2ZiIsIC8vIEhcdTMwOWJIIAorICAgICAgICAgICAgIlx1MzBkMFx1MzBjZiIsIC8vIEtcdTMwOWJLIAorICAgICAgICAgICAgIlx1MzA3MFx1MzA5ZSIsIC8vIEhcdTMwOWJcdTMwOWUgCisgICAgICAgICAgICAiXHUzMGQwXHUzMGZlIiwgLy8gS1x1MzA5Ylx1MzBmZSAKKyAgICAgICAgICAgICJcdTMwNzBcdTMwNzAiLCAvLyBIXHUzMDliSFx1MzA5YiAKKyAgICAgICAgICAgICJcdTMwZDBcdTMwNzAiLCAvLyBLXHUzMDliSFx1MzA5YiAKKyAgICAgICAgICAgICJcdTMwZDBcdTMwZDAiLCAvLyBLXHUzMDliS1x1MzA5YiAKKyAgICAgICAgICAgICJcdTMwNzBcdTMwNzEiLCAvLyBIXHUzMDliSFx1MzA5YyAKKyAgICAgICAgICAgICJcdTMwZDBcdTMwZDEiLCAvLyBLXHUzMDliS1x1MzA5YyAKKyAgICAgICAgICAgICJcdTMwNzFcdTMwOWQiLCAvLyBIXHUzMDljXHUzMDlkIAorICAgICAgICAgICAgIlx1MzBkMVx1MzBmZCIsIC8vIEtcdTMwOWNcdTMwZmQgCisgICAgICAgICAgICAiXHUzMDcxXHUzMDZmIiwgLy8gSFx1MzA5Y0ggCisgICAgICAgICAgICAiXHUzMGQxXHUzMGNmIiwgLy8gS1x1MzA5Y0sgCisgICAgICAgICAgICAiXHUzMDcxXHUzMDcwIiwgLy8gSFx1MzA5Y0hcdTMwOWIgCisgICAgICAgICAgICAiXHUzMDcxXHUzMGQwIiwgLy8gSFx1MzA5Y0tcdTMwOWIgCisgICAgICAgICAgICAiXHUzMGQxXHUzMGQwIiwgLy8gS1x1MzA5Y0tcdTMwOWIKKyAgICAgICAgICAgICJcdTMwNzFcdTMwNzEiLCAvLyBIXHUzMDljSFx1MzA5YworICAgICAgICAgICAgIlx1MzBkMVx1MzBkMSIsIC8vIEtcdTMwOWNLXHUzMDljCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSBhdHQgPSB7ICJzdHJlbmd0aCIsIH07CisgICAgICAgIE9iamVjdFtdIHZhbCA9IHsgbmV3IEludGVnZXIoQ29sbGF0b3IuUVVBVEVSTkFSWSksIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSBhdHRTaGlmdGVkID0geyAic3RyZW5ndGgiLCAiQWx0ZXJuYXRlSGFuZGxpbmcifTsKKyAgICAgICAgT2JqZWN0IHZhbFNoaWZ0ZWRbXSA9IHsgbmV3IEludGVnZXIoQ29sbGF0b3IuUVVBVEVSTkFSWSksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQm9vbGVhbih0cnVlKSB9OworICAgICAgIAorICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKExvY2FsZS5KQVBBTkVTRSwgdGVzdDEsIGF0dCwgdmFsKTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXJXaXRoT3B0aW9ucyhMb2NhbGUuSkFQQU5FU0UsIHRlc3QyLCBhdHQsIHZhbCk7CisgICAgICAgIAorICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKExvY2FsZS5KQVBBTkVTRSwgdGVzdDEsIGF0dFNoaWZ0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsU2hpZnRlZCk7CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyV2l0aE9wdGlvbnMoTG9jYWxlLkpBUEFORVNFLCB0ZXN0MiwgYXR0U2hpZnRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxTaGlmdGVkKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBnZW5lcmljTG9jYWxlU3RhcnRlcihMb2NhbGUgbG9jYWxlLCBTdHJpbmcgc1tdKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICAgICAgCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIlVuYWJsZSB0byBvcGVuIGNvbGxhdG9yIGZvciBsb2NhbGUgIiArIGxvY2FsZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gbG9nbG4oIkxvY2FsZSBzdGFydGVyIGZvciAiICsgbG9jYWxlKTsKKyAgICAgICAgZ2VuZXJpY09yZGVyaW5nVGVzdChjb2xsLCBzKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKExvY2FsZSBsb2NhbGUsIFN0cmluZ1tdIHMsIFN0cmluZ1tdIGF0dHJzLCBPYmplY3RbXSB2YWx1ZXMpIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIlVuYWJsZSB0byBvcGVuIGNvbGxhdG9yIGZvciBsb2NhbGUgIiArIGxvY2FsZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gbG9nbG4oIkxvY2FsZSBzdGFydGVyIGZvciAiICtsb2NhbGUpOworICAgICAgICAKKyAgICAgICAgLy8gbG9nbG4oIlNldHRpbmcgYXR0cmlidXRlcyIpOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGF0dHJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoYXR0cnNbaV0uZXF1YWxzKCJzdHJlbmd0aCIpKSB7CisgICAgICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aCgoKEludGVnZXIpdmFsdWVzW2ldKS5pbnRWYWx1ZSgpKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmIChhdHRyc1tpXS5lcXVhbHMoImRlY29tcCIpKSB7CisgICAgICAgICAgICAgICAgY29sbC5zZXREZWNvbXBvc2l0aW9uKCgoSW50ZWdlcil2YWx1ZXNbaV0pLmludFZhbHVlKCkpOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgaWYgKGF0dHJzW2ldLmVxdWFscygiQWx0ZXJuYXRlSGFuZGxpbmciKSkgeworICAgICAgICAgICAgICAgIGNvbGwuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKCgoQm9vbGVhbil2YWx1ZXNbaV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS5ib29sZWFuVmFsdWUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChhdHRyc1tpXS5lcXVhbHMoIk51bWVyaWNDb2xsYXRpb24iKSkgeworICAgICAgICAgICAgICAgIGNvbGwuc2V0TnVtZXJpY0NvbGxhdGlvbigoKEJvb2xlYW4pdmFsdWVzW2ldKS5ib29sZWFuVmFsdWUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChhdHRyc1tpXS5lcXVhbHMoIlVwcGVyRmlyc3QiKSkgeworICAgICAgICAgICAgICAgIGNvbGwuc2V0VXBwZXJDYXNlRmlyc3QoKChCb29sZWFuKXZhbHVlc1tpXSkuYm9vbGVhblZhbHVlKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoYXR0cnNbaV0uZXF1YWxzKCJMb3dlckZpcnN0IikpIHsKKyAgICAgICAgICAgICAgICBjb2xsLnNldExvd2VyQ2FzZUZpcnN0KCgoQm9vbGVhbil2YWx1ZXNbaV0pLmJvb2xlYW5WYWx1ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZ2VuZXJpY09yZGVyaW5nVGVzdChjb2xsLCBzKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBnZW5lcmljT3JkZXJpbmdUZXN0KENvbGxhdG9yIGNvbGwsIFN0cmluZ1tdIHMpIHsKKyAgICAgICAgZ2VuZXJpY09yZGVyaW5nVGVzdFdpdGhSZXN1bHQoY29sbCwgcywgLTEpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Tm9uQ2hhcnMoKSB7CisgICAgICAgIFN0cmluZyB0ZXN0W10gPSB7CisgICAgICAgICAgICAiXHUwMDAwIiwKKyAgICAgICAgICAgICJcdUZGRkUiLCAiXHVGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDAxRkZGRSIsICJcXFUwMDAxRkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwMkZGRkUiLCAiXFxVMDAwMkZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMDNGRkZFIiwgIlxcVTAwMDNGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDA0RkZGRSIsICJcXFUwMDA0RkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwNUZGRkUiLCAiXFxVMDAwNUZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMDZGRkZFIiwgIlxcVTAwMDZGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDA3RkZGRSIsICJcXFUwMDA3RkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwOEZGRkUiLCAiXFxVMDAwOEZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMDlGRkZFIiwgIlxcVTAwMDlGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDBBRkZGRSIsICJcXFUwMDBBRkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwQkZGRkUiLCAiXFxVMDAwQkZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMENGRkZFIiwgIlxcVTAwMENGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDBERkZGRSIsICJcXFUwMDBERkZGRiIsCisgICAgICAgICAgICAiXFxVMDAwRUZGRkUiLCAiXFxVMDAwRUZGRkYiLAorICAgICAgICAgICAgIlxcVTAwMEZGRkZFIiwgIlxcVTAwMEZGRkZGIiwKKyAgICAgICAgICAgICJcXFUwMDEwRkZGRSIsICJcXFUwMDEwRkZGRiIKKyAgICAgICAgfTsKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIlVuYWJsZSB0byBvcGVuIGNvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gbG9nbG4oIlRlc3Qgbm9uIGNoYXJhY3RlcnMiKTsKKyAgICAgICAgCisgICAgICAgIGdlbmVyaWNPcmRlcmluZ1Rlc3RXaXRoUmVzdWx0KGNvbGwsIHRlc3QsIDApOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXh0cmVtZUNvbXByZXNzaW9uKCkgeworICAgICAgICBTdHJpbmdbXSB0ZXN0ID0gbmV3IFN0cmluZ1s0XTsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGk8NDsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgMjA0NzsgaisrKSB7CisgICAgICAgICAgICAgICAgdGVtcC5hcHBlbmQoJ2EnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlbXAuYXBwZW5kKChjaGFyKSgnYScgKyBpKSk7CisgICAgICAgICAgICB0ZXN0W2ldID0gdGVtcC50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcihuZXcgTG9jYWxlKCJlbiIsICJVUyIpLCB0ZXN0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0cyBzdXJyb2dhdGUgc3VwcG9ydC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3Vycm9nYXRlcygpIHsKKyAgICAgICAgU3RyaW5nIHRlc3RbXSA9IHsieiIsIlx1ZDkwMFx1ZGMyNSIsICJcdWQ4MDVcdWRjNTAiLCAiXHVkODAwXHVkYzAweSIsICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAiXHVkODAwXHVkYzAwciIsICJcdWQ4MDBcdWRjMDBmIiwgIlx1ZDgwMFx1ZGMwMCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDBjIiwgIlx1ZDgwMFx1ZGMwMGIiLCAiXHVkODAwXHVkYzAwZmEiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAiXHVkODAwXHVkYzAwZmIiLCAiXHVkODAwXHVkYzAwYSIsICJjIiwgImIifTsKKworICAgICAgICBTdHJpbmcgcnVsZSA9ICImeiA8IFx1ZDkwMFx1ZGMyNSA8IFx1ZDgwNVx1ZGM1MCA8IFx1ZDgwMFx1ZGMwMHkgIgorICAgICAgICAgICAgKyAiPCBcdWQ4MDBcdWRjMDByIDwgXHVkODAwXHVkYzAwZiA8PCBcdWQ4MDBcdWRjMDAgIgorICAgICAgICAgICAgKyAiPCBcdWQ4MDBcdWRjMDBmYSA8PCBcdWQ4MDBcdWRjMDBmYiA8IFx1ZDgwMFx1ZGMwMGEgIiAKKyAgICAgICAgICAgICsgIjwgYyA8IGIiOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGUsIHRlc3QpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Qm9jc3VDb3ZlcmFnZSgpIHsKKyAgICAgICAgU3RyaW5nIHRlc3QgPSAiXHUwMDQxXHUwNDQxXHU0NDQxXFxVMDAwNDQ0NDFcdTQ0NDFcdTA0NDFcdTAwNDEiOworICAgICAgICBDb2xsYXRvciBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgICAgICBDb2xsYXRpb25LZXkga2V5ID0gY29sbC5nZXRDb2xsYXRpb25LZXkodGVzdCk7CisgICAgICAgIGxvZ2xuKCJzb3VyY2U6IiArIGtleS5nZXRTb3VyY2VTdHJpbmcoKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDeXJpbGxpY1RhaWxvcmluZygpIHsKKyAgICAgICAgU3RyaW5nIHRlc3RbXSA9IHsKKyAgICAgICAgICAgICJcdTA0MTBiIiwKKyAgICAgICAgICAgICJcdTA0MTBcdTAzMDZhIiwKKyAgICAgICAgICAgICJcdTA0ZDBBIgorICAgICAgICB9OworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcihuZXcgTG9jYWxlKCJlbiIsICIiKSwgdGVzdCk7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIiZcdTA0MTAgPSBcdTA0MTAiLCB0ZXN0KTsKKyAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcigiJlogPCBcdTA0MTAiLCB0ZXN0KTsKKyAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcigiJlx1MDQxMCA9IFx1MDQxMCA8IFx1MDRkMCIsIHRlc3QpOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCImWiA8IFx1MDQxMCA8IFx1MDRkMCIsIHRlc3QpOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCImXHUwNDEwID0gXHUwNDEwIDwgXHUwNDEwXHUwMzAxIiwgdGVzdCk7CisgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIiZaIDwgXHUwNDEwIDwgXHUwNDEwXHUwMzAxIiwgdGVzdCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFN1cHByZXNzQ29udHJhY3Rpb25zKCkgeworICAgICAgICBTdHJpbmcgdGVzdE5vQ29udDJbXSA9IHsKKyAgICAgICAgICAgICJcdTA0MTBcdTAzMDJhIiwKKyAgICAgICAgICAgICJcdTA0MTBcdTAzMDZiIiwKKyAgICAgICAgICAgICJcdTA0MTBjIiAgICAgICAgICAgIAorICAgICAgICB9OworICAgICAgICBTdHJpbmcgdGVzdE5vQ29udFtdID0geworICAgICAgICAgICAgImFcdTA0MTAiLCAgICAgICAgICAgIAorICAgICAgICAgICAgIkFcdTA0MTBcdTAzMDYiLAorICAgICAgICAgICAgIlx1RkYyMVx1MDQxMFx1MDMwMiIKKyAgICAgICAgfTsKKyAgICAgICAgICAgIAorICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCJbc3VwcHJlc3NDb250cmFjdGlvbnMgW1x1MDQwMC1cdTA0N2ZdXSIsIHRlc3ROb0NvbnQpOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCJbc3VwcHJlc3NDb250cmFjdGlvbnMgW1x1MDQwMC1cdTA0N2ZdXSIsIHRlc3ROb0NvbnQyKTsKKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDYXNlKCkgeworICAgICAgICBTdHJpbmcgZ1J1bGVzID0gIlx1MDAyNlx1MDAzMFx1MDAzQ1x1MDAzMVx1MDAyQ1x1MjQ2MFx1MDAzQ1x1MDA2MVx1MDAyQ1x1MDA0MSI7CisgICAgICAgIFN0cmluZ1tdIHRlc3RDYXNlID0geworICAgICAgICAgICAgIjFhIiwgIjFBIiwgIlx1MjQ2MGEiLCAiXHUyNDYwQSIKKyAgICAgICAgfTsKKyAgICAgICAgaW50W11bXSBjYXNlVGVzdFJlc3VsdHMgPSB7CisgICAgICAgICAgICB7IC0xLCAtMSwgLTEsIDAsIC0xLCAtMSwgMCwgMCwgLTEgfSwKKyAgICAgICAgICAgIHsgMSwgLTEsIC0xLCAwLCAtMSwgLTEsIDAsIDAsIDEgfSwKKyAgICAgICAgICAgIHsgLTEsIC0xLCAtMSwgMCwgMSwgLTEsIDAsIDAsIC0xIH0sCisgICAgICAgICAgICB7IDEsIC0xLCAxLCAwLCAtMSwgLTEsIDAsIDAsIDEgfQorICAgIAorICAgICAgICB9OworICAgICAgICBib29sZWFuW11bXSBjYXNlVGVzdEF0dHJpYnV0ZXMgPSB7CisgICAgICAgICAgICB7IGZhbHNlLCBmYWxzZX0sCisgICAgICAgICAgICB7IHRydWUsIGZhbHNlfSwKKyAgICAgICAgICAgIHsgZmFsc2UsIHRydWV9LAorICAgICAgICAgICAgeyB0cnVlLCB0cnVlfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgaW50IGksaixrOworICAgICAgICBDb2xsYXRvciAgbXlDb2xsYXRpb247CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgcnVsZSBiYXNlZCBjb2xsYXRvciAiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBsb2dsbigiVGVzdGluZyBkaWZmZXJlbnQgY2FzZSBzZXR0aW5ncyIpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgCisgICAgICAgIGZvcihrID0gMDsgayA8NDsgaysrKSB7CisgICAgICAgICAgICBpZiAoY2FzZVRlc3RBdHRyaWJ1dGVzW2tdWzBdID09IHRydWUpIHsKKyAgICAgICAgICAgICAgICAvLyB1cHBlciBjYXNlIGZpcnN0CisgICAgICAgICAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGxhdGlvbikuc2V0VXBwZXJDYXNlRmlyc3QodHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyB1cHBlciBjYXNlIGZpcnN0CisgICAgICAgICAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGxhdGlvbikuc2V0TG93ZXJDYXNlRmlyc3QodHJ1ZSk7ICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAoKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uKS5zZXRDYXNlTGV2ZWwoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZVRlc3RBdHRyaWJ1dGVzW2tdWzFdKTsKKyAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJDYXNlIGZpcnN0ID0gIiArIGNhc2VUZXN0QXR0cmlidXRlc1trXVswXSArICIsIENhc2UgbGV2ZWwgPSAiICsgY2FzZVRlc3RBdHRyaWJ1dGVzW2tdWzFdKTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAzIDsgaSsrKSB7CisgICAgICAgICAgICAgICAgZm9yKGogPSBpKzE7IGo8NDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRpb24sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FzZVtpXSwgdGVzdENhc2Vbal0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlVGVzdFJlc3VsdHNba11bMyppK2otMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoZ1J1bGVzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRVJST1I6IGluIGNyZWF0aW9uIG9mIHJ1bGUgYmFzZWQgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBsb2dsbigiVGVzdGluZyBkaWZmZXJlbnQgY2FzZSBzZXR0aW5ncyB3aXRoIGN1c3RvbSBydWxlcyIpOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgCisgICAgICAgIGZvcihrID0gMDsgazw0OyBrKyspIHsKKyAgICAgICAgICAgIGlmIChjYXNlVGVzdEF0dHJpYnV0ZXNba11bMF0gPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgICgoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRpb24pLnNldFVwcGVyQ2FzZUZpcnN0KHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGxhdGlvbikuc2V0VXBwZXJDYXNlRmlyc3QoZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKChSdWxlQmFzZWRDb2xsYXRvcilteUNvbGxhdGlvbikuc2V0Q2FzZUxldmVsKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VUZXN0QXR0cmlidXRlc1trXVsxXSk7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMyA7IGkrKykgeworICAgICAgICAgICAgICAgIGZvcihqID0gaSsxOyBqPDQ7IGorKykgeworICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdENhc2VbaV0sIHRlc3RDYXNlW2pdLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZVRlc3RSZXN1bHRzW2tdWzMqaStqLTFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmdbXSBsb3dlckZpcnN0ID0geworICAgICAgICAgICAgICAgICJoIiwKKyAgICAgICAgICAgICAgICAiSCIsCisgICAgICAgICAgICAgICAgImNoIiwKKyAgICAgICAgICAgICAgICAiQ2giLAorICAgICAgICAgICAgICAgICJDSCIsCisgICAgICAgICAgICAgICAgImNoYSIsCisgICAgICAgICAgICAgICAgImNoQSIsCisgICAgICAgICAgICAgICAgIkNoYSIsCisgICAgICAgICAgICAgICAgIkNoQSIsCisgICAgICAgICAgICAgICAgIkNIYSIsCisgICAgICAgICAgICAgICAgIkNIQSIsCisgICAgICAgICAgICAgICAgImkiLAorICAgICAgICAgICAgICAgICJJIgorICAgICAgICAgICAgfTsKKyAgICAKKyAgICAgICAgICAgIFN0cmluZ1tdIHVwcGVyRmlyc3QgPSB7CisgICAgICAgICAgICAgICAgIkgiLAorICAgICAgICAgICAgICAgICJoIiwKKyAgICAgICAgICAgICAgICAiQ0giLAorICAgICAgICAgICAgICAgICJDaCIsCisgICAgICAgICAgICAgICAgImNoIiwKKyAgICAgICAgICAgICAgICAiQ0hBIiwKKyAgICAgICAgICAgICAgICAiQ0hhIiwKKyAgICAgICAgICAgICAgICAiQ2hBIiwKKyAgICAgICAgICAgICAgICAiQ2hhIiwKKyAgICAgICAgICAgICAgICAiY2hBIiwKKyAgICAgICAgICAgICAgICAiY2hhIiwKKyAgICAgICAgICAgICAgICAiSSIsCisgICAgICAgICAgICAgICAgImkiCisgICAgICAgICAgICB9OworICAgICAgICAgICAgLy8gbG9nbG4oIm1peGVkIGNhc2UgdGVzdCIpOworICAgICAgICAgICAgLy8gbG9nbG4oImxvd2VyIGZpcnN0LCBjYXNlIGxldmVsIG9mZiIpOworICAgICAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcigiW2Nhc2VmaXJzdCBsb3dlcl0mSDxjaDw8PENoPDw8Q0giLCBsb3dlckZpcnN0KTsgCisgICAgICAgICAgICAvLyBsb2dsbigidXBwZXIgZmlyc3QsIGNhc2UgbGV2ZWwgb2ZmIik7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCJbY2FzZWZpcnN0IHVwcGVyXSZIPGNoPDw8Q2g8PDxDSCIsIHVwcGVyRmlyc3QpOworICAgICAgICAgICAgLy8gbG9nbG4oImxvd2VyIGZpcnN0LCBjYXNlIGxldmVsIG9uIik7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKCJbY2FzZWZpcnN0IGxvd2VyXVtjYXNlbGV2ZWwgb25dJkg8Y2g8PDxDaDw8PENIIiwgbG93ZXJGaXJzdCk7CisgICAgICAgICAgICAvLyBsb2dsbigidXBwZXIgZmlyc3QsIGNhc2UgbGV2ZWwgb24iKTsKKyAgICAgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIoIltjYXNlZmlyc3QgdXBwZXJdW2Nhc2VsZXZlbCBvbl0mSDxjaDw8PENoPDw8Q0giLCB1cHBlckZpcnN0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbmNvbXBsZXRlQ250KCkgeworICAgICAgICBTdHJpbmdbXSBjbnQxID0geworICAgICAgICAgICAgIkFBIiwKKyAgICAgICAgICAgICJBQyIsCisgICAgICAgICAgICAiQVoiLAorICAgICAgICAgICAgIkFRIiwKKyAgICAgICAgICAgICJBQiIsCisgICAgICAgICAgICAiQUJaIiwKKyAgICAgICAgICAgICJBQlEiLAorICAgICAgICAgICAgIloiLAorICAgICAgICAgICAgIkFCQyIsCisgICAgICAgICAgICAiUSIsCisgICAgICAgICAgICAiQiIKKyAgICAgICAgfTsKKyAgICAgICAgICAgIAorICAgICAgICBTdHJpbmdbXSBjbnQyID0geworICAgICAgICAgICAgIkRBIiwKKyAgICAgICAgICAgICJEQUQiLAorICAgICAgICAgICAgIkRBWiIsCisgICAgICAgICAgICAiTUFSIiwKKyAgICAgICAgICAgICJaIiwKKyAgICAgICAgICAgICJEQVZJUyIsCisgICAgICAgICAgICAiTUFSSyIsCisgICAgICAgICAgICAiREFWIiwKKyAgICAgICAgICAgICJEQVZJIgorICAgICAgICB9OworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gIG51bGw7CisgICAgICAgIFN0cmluZyB0ZW1wID0gIiAmIFogPCBBQkMgPCBRIDwgQiI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHRlbXApOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJmYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgc2l6ZSA9IGNudDEubGVuZ3RoOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZS0xOyBpKyspIHsKKyAgICAgICAgICAgIGZvcihpbnQgaiA9IGkrMTsgaiA8IHNpemU7IGorKykgeworICAgICAgICAgICAgICAgIFN0cmluZyB0MSA9IGNudDFbaV07CisgICAgICAgICAgICAgICAgU3RyaW5nIHQyID0gY250MVtqXTsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCBjb2xsLCB0MSwgdDIsIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGVtcCA9ICIgJiBaIDwgREFWSVMgPCBNQVJLIDxEQVYiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcih0ZW1wKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiZmFpbCB0byBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc2l6ZSA9IGNudDIubGVuZ3RoOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZS0xOyBpKyspIHsKKyAgICAgICAgICAgIGZvcihpbnQgaiA9IGkrMTsgaiA8IHNpemU7IGorKykgeworICAgICAgICAgICAgICAgIFN0cmluZyB0MSA9IGNudDJbaV07CisgICAgICAgICAgICAgICAgU3RyaW5nIHQyID0gY250MltqXTsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmRvVGVzdCh0aGlzLCBjb2xsLCB0MSwgdDIsIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEJsYWNrQmlyZCgpIHsKKyAgICAgICAgU3RyaW5nW10gc2hpZnRlZCA9IHsKKyAgICAgICAgICAgICJibGFjayBiaXJkIiwKKyAgICAgICAgICAgICJibGFjay1iaXJkIiwKKyAgICAgICAgICAgICJibGFja2JpcmQiLAorICAgICAgICAgICAgImJsYWNrIEJpcmQiLAorICAgICAgICAgICAgImJsYWNrLUJpcmQiLAorICAgICAgICAgICAgImJsYWNrQmlyZCIsCisgICAgICAgICAgICAiYmxhY2sgYmlyZHMiLAorICAgICAgICAgICAgImJsYWNrLWJpcmRzIiwKKyAgICAgICAgICAgICJibGFja2JpcmRzIgorICAgICAgICB9OworICAgICAgICBpbnRbXSBzaGlmdGVkVGVydCA9IHsKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIC0xLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAtMSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAwCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIG5vbmlnbm9yYWJsZSA9IHsKKyAgICAgICAgICAgICJibGFjayBiaXJkIiwKKyAgICAgICAgICAgICJibGFjayBCaXJkIiwKKyAgICAgICAgICAgICJibGFjayBiaXJkcyIsCisgICAgICAgICAgICAiYmxhY2stYmlyZCIsCisgICAgICAgICAgICAiYmxhY2stQmlyZCIsCisgICAgICAgICAgICAiYmxhY2stYmlyZHMiLAorICAgICAgICAgICAgImJsYWNrYmlyZCIsCisgICAgICAgICAgICAiYmxhY2tCaXJkIiwKKyAgICAgICAgICAgICJibGFja2JpcmRzIgorICAgICAgICB9OworICAgICAgICBpbnQgaSA9IDAsIGogPSAwOworICAgICAgICBpbnQgc2l6ZSA9IDA7CisgICAgICAgIENvbGxhdG9yIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgLy91Y29sX3NldEF0dHJpYnV0ZShjb2xsLCBVQ09MX05PUk1BTElaQVRJT05fTU9ERSwgVUNPTF9PRkYsICZzdGF0dXMpOworICAgICAgICAvL3Vjb2xfc2V0QXR0cmlidXRlKGNvbGwsIFVDT0xfQUxURVJOQVRFX0hBTkRMSU5HLCBVQ09MX05PTl9JR05PUkFCTEUsICZzdGF0dXMpOworICAgICAgICAoKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwpLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZChmYWxzZSk7CisgICAgICAgIHNpemUgPSBub25pZ25vcmFibGUubGVuZ3RoOworICAgICAgICBmb3IoaSA9IDA7IGkgPCBzaXplLTE7IGkrKykgeworICAgICAgICAgICAgZm9yKGogPSBpKzE7IGogPCBzaXplOyBqKyspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdDEgPSBub25pZ25vcmFibGVbaV07CisgICAgICAgICAgICAgICAgU3RyaW5nIHQyID0gbm9uaWdub3JhYmxlW2pdOworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIChSdWxlQmFzZWRDb2xsYXRvciljb2xsLCB0MSwgdDIsIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAoKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwpLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCh0cnVlKTsKKyAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5RVUFURVJOQVJZKTsKKyAgICAgICAgc2l6ZSA9IHNoaWZ0ZWQubGVuZ3RoOworICAgICAgICBmb3IoaSA9IDA7IGkgPCBzaXplLTE7IGkrKykgeworICAgICAgICAgICAgZm9yKGogPSBpKzE7IGogPCBzaXplOyBqKyspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdDEgPSBzaGlmdGVkW2ldOworICAgICAgICAgICAgICAgIFN0cmluZyB0MiA9IHNoaWZ0ZWRbal07CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIHQxLCB0MiwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBzaXplID0gc2hpZnRlZC5sZW5ndGg7CisgICAgICAgIGZvcihpID0gMTsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIHQxID0gc2hpZnRlZFtpLTFdOworICAgICAgICAgICAgU3RyaW5nIHQyID0gc2hpZnRlZFtpXTsKKyAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIChSdWxlQmFzZWRDb2xsYXRvciljb2xsLCB0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hpZnRlZFRlcnRbaV0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RGdW5reUEoKSB7CisgICAgICAgIFN0cmluZ1tdIHRlc3RTb3VyY2VDYXNlcyA9IHsKKyAgICAgICAgICAgICJcdTAwNDFcdTAzMDBcdTAzMDEiLAorICAgICAgICAgICAgIlx1MDA0MVx1MDMwMFx1MDMxNiIsCisgICAgICAgICAgICAiXHUwMDQxXHUwMzAwIiwKKyAgICAgICAgICAgICJcdTAwQzBcdTAzMDEiLAorICAgICAgICAgICAgLy8gdGhpcyB3b3VsZCB3b3JrIHdpdGggZm9yY2VkIG5vcm1hbGl6YXRpb24gCisgICAgICAgICAgICAiXHUwMEMwXHUwMzE2IiwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgICAgICJcdTAwNDFcdTAzMDFcdTAzMDAiLAorICAgICAgICAgICAgIlx1MDA0MVx1MDMxNlx1MDMwMCIsCisgICAgICAgICAgICAiXHUwMEMwIiwKKyAgICAgICAgICAgICJcdTAwNDFcdTAzMDFcdTAzMDAiLAorICAgICAgICAgICAgLy8gdGhpcyB3b3VsZCB3b3JrIHdpdGggZm9yY2VkIG5vcm1hbGl6YXRpb24gCisgICAgICAgICAgICAiXHUwMDQxXHUwMzE2XHUwMzAwIiwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGludFtdIHJlc3VsdHMgPSB7CisgICAgICAgICAgICAxLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAxLAorICAgICAgICAgICAgMAorICAgICAgICB9OworCisgICAgICAgIENvbGxhdG9yICBteUNvbGxhdGlvbjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVSUk9SOiBpbiBjcmVhdGlvbiBvZiBydWxlIGJhc2VkIGNvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gbG9nbG4oIlRlc3Rpbmcgc29tZSBBIGxldHRlcnMsIGZvciBzb21lIHJlYXNvbiIpOworICAgICAgICBteUNvbGxhdGlvbi5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQgOyBpKyspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKW15Q29sbGF0aW9uLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0c1tpXSk7CisgICAgICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDaE1vdmUoKSB7CisgICAgICAgIFN0cmluZ1tdIGNoVGVzdCA9IHsKKyAgICAgICAgICAgICJjIiwKKyAgICAgICAgICAgICJDIiwKKyAgICAgICAgICAgICJjYSIsICJjYiIsICJjeCIsICJjeSIsICJDWiIsCisgICAgICAgICAgICAiY1x1MDMwQyIsICJDXHUwMzBDIiwKKyAgICAgICAgICAgICJoIiwKKyAgICAgICAgICAgICJIIiwKKyAgICAgICAgICAgICJoYSIsICJIYSIsICJoYXJseSIsICJoYiIsICJIQiIsICJoeCIsICJIWCIsICJoeSIsICJIWSIsCisgICAgICAgICAgICAiY2giLCAiY0giLCAiQ2giLCAiQ0giLAorICAgICAgICAgICAgImNoYSIsICJjaGFybHkiLCAiY2hlIiwgImNoaCIsICJjaGNoIiwgImNociIsCisgICAgICAgICAgICAiaSIsICJJIiwgImlhcmx5IiwKKyAgICAgICAgICAgICJyIiwgIlIiLAorICAgICAgICAgICAgInJcdTAzMEMiLCAiUlx1MDMwQyIsCisgICAgICAgICAgICAicyIsCisgICAgICAgICAgICAiUyIsCisgICAgICAgICAgICAic1x1MDMwQyIsICJTXHUwMzBDIiwKKyAgICAgICAgICAgICJ6IiwgIloiLAorICAgICAgICAgICAgInpcdTAzMEMiLCAiWlx1MDMwQyIKKyAgICAgICAgfTsKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiY3MiLCAiIikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJDYW5ub3QgY3JlYXRlIENvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaW50IHNpemUgPSBjaFRlc3QubGVuZ3RoOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZS0xOyBpKyspIHsKKyAgICAgICAgICAgIGZvcihpbnQgaiA9IGkrMTsgaiA8IHNpemU7IGorKykgeworICAgICAgICAgICAgICAgIFN0cmluZyB0MSA9IGNoVGVzdFtpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdDIgPSBjaFRlc3Rbal07CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIHQxLCB0MiwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RJbXBsaWNpdFRhaWxvcmluZygpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzW10gPSB7ICImW2JlZm9yZSAxXVx1NGUwMCA8IGIgPCBjICZbYmVmb3JlIDFdXHU0ZTAwIDwgZCA8IGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIiZcdTRlMDAgPCBhIDw8PCBBIDwgYiA8PDwgQiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiJltiZWZvcmUgMV1cdTRlMDAgPCBcdTRlMDEgPCBcdTRlMDIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIiZbYmVmb3JlIDFdXHU0ZTAxIDwgXHU0ZTAyIDwgXHU0ZTAzIiwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nIGNhc2VzW11bXSA9IHsKKyAgICAgICAgICAgIHsgImQiLCAiZSIsICJiIiwgImMiLCAiXHU0ZTAwIn0sIAorICAgICAgICAgICAgeyAiXHU0ZTAwIiwgImEiLCAiQSIsICJiIiwgIkIiLCAiXHU0ZTAxIn0sCisgICAgICAgICAgICB7ICJcdTRlMDEiLCAiXHU0ZTAyIiwgIlx1NGUwMCJ9LAorICAgICAgICAgICAgeyAiXHU0ZTAyIiwgIlx1NGUwMyIsICJcdTRlMDEifSwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgCisgICAgICAgIGZvcihpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzW2ldLCBjYXNlc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEZDRFByb2JsZW0oKSB7CisgICAgICAgIFN0cmluZyBzMSA9ICJcdTA0MzBcdTAzMDZcdTAzMjUiOworICAgICAgICBTdHJpbmcgczIgPSAiXHUwNEQxXHUwMzI1IjsKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiQ2FuJ3QgY3JlYXRlIGNvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNvbGwuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIHMxLCBzMiwgMCk7CisgICAgICAgIGNvbGwuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIChSdWxlQmFzZWRDb2xsYXRvciljb2xsLCBzMSwgczIsIDApOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RW1wdHlSdWxlKCkgeworICAgICAgICBTdHJpbmcgcnVsZXogPSAiIjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXopOworICAgICAgICAgICAgbG9nbG4oInJ1bGU6IiArIGNvbGwuZ2V0UnVsZXMoKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qIHN1cGVyc2VkZWQgYnkgVGVzdEJlZm9yZVBpbnlpbiwgc2luY2UgQ2hpbmVzZSBjb2xsYXRpb24gcnVsZXMgaGF2ZSBjaGFuZ2VkICovCisgICAgLyoKKyAgICBwdWJsaWMgdm9pZCBUZXN0Sjc4NCgpIHsKKyAgICAgICAgU3RyaW5nW10gZGF0YSA9IHsKKyAgICAgICAgICAgICJBIiwgIlx1MDEwMSIsICJcdTAwZTEiLCAiXHUwMWNlIiwgIlx1MDBlMCIsCisgICAgICAgICAgICAiRSIsICJcdTAxMTMiLCAiXHUwMGU5IiwgIlx1MDExYiIsICJcdTAwZTgiLAorICAgICAgICAgICAgIkkiLCAiXHUwMTJiIiwgIlx1MDBlZCIsICJcdTAxZDAiLCAiXHUwMGVjIiwKKyAgICAgICAgICAgICJPIiwgIlx1MDE0ZCIsICJcdTAwZjMiLCAiXHUwMWQyIiwgIlx1MDBmMiIsCisgICAgICAgICAgICAiVSIsICJcdTAxNmIiLCAiXHUwMGZhIiwgIlx1MDFkNCIsICJcdTAwZjkiLAorICAgICAgICAgICAgIlx1MDBmYyIsICJcdTAxZDYiLCAiXHUwMWQ4IiwgIlx1MDFkYSIsICJcdTAxZGMiCisgICAgICAgIH07CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoInpoIiwgIiIpLCBkYXRhKTsKKyAgICB9CisgICAgKi8KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SjgxNSgpIHsKKyAgICAgICAgU3RyaW5nIGRhdGFbXSA9IHsKKyAgICAgICAgICAgICJhYSIsCisgICAgICAgICAgICAiQWEiLAorICAgICAgICAgICAgImFiIiwKKyAgICAgICAgICAgICJBYiIsCisgICAgICAgICAgICAiYWQiLAorICAgICAgICAgICAgIkFkIiwKKyAgICAgICAgICAgICJhZSIsCisgICAgICAgICAgICAiQWUiLAorICAgICAgICAgICAgIlx1MDBlNiIsCisgICAgICAgICAgICAiXHUwMGM2IiwKKyAgICAgICAgICAgICJhZiIsCisgICAgICAgICAgICAiQWYiLAorICAgICAgICAgICAgImIiLAorICAgICAgICAgICAgIkIiCisgICAgICAgIH07CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoImZyIiwgIiIpLCBkYXRhKTsKKyAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcigiW2JhY2t3YXJkcyAyXSZBPDxcdTAwZTYvZTw8PFx1MDBjNi9FIiwgZGF0YSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RKMzA4NygpCisgICAgeworICAgICAgICBTdHJpbmcgcnVsZVtdID0geyImaDxIJkNIPVx1MDQyNyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIiZDSD1cdTA0MjcmaDxIIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiJkNIPVx1MDQyNyJ9OyAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgcmJjID0gbnVsbDsKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIxOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcjI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVsZS5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmJjID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVbaV0pOyAKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgd2FybmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpdGVyMSA9IHJiYy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoIkNIIik7IAorICAgICAgICAgICAgaXRlcjIgPSByYmMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKCJcdTA0MjciKTsKKyAgICAgICAgICAgIGludCBjZTEgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgaW50IGNlMiA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgICAgICB3aGlsZSAoY2UxICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIKKyAgICAgICAgICAgICAgICAgICAmJiBjZTIgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIGNlMSA9IGl0ZXIxLm5leHQoKTsKKyAgICAgICAgICAgICAgICBjZTIgPSBpdGVyMi5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGNlMSAhPSBjZTIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdlbmVyYXRpbmcgUnVsZUJhc2VkQ29sbGF0b3Igd2l0aCB0aGUgcnVsZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgcnVsZVtpXSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDSCAhPSBcXHUwNDI3Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIERvbnRUZXN0SjgzMSgpIHsgLy8gTGF0dmlhbiBkb2VzIG5vdCB1c2UgdXBwZXIgZmlyc3QKKyAgICAgICAgU3RyaW5nW10gZGF0YSA9IHsKKyAgICAgICAgICAgICJJIiwKKyAgICAgICAgICAgICJpIiwKKyAgICAgICAgICAgICJZIiwKKyAgICAgICAgICAgICJ5IgorICAgICAgICB9OworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcihuZXcgTG9jYWxlKCJsdiIsICIiKSwgZGF0YSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCZWZvcmUoKSB7CisgICAgICAgIFN0cmluZyBkYXRhW10gPSB7CisgICAgICAgICAgICAiXHUwMTAxIiwgIlx1MDBlMSIsICJcdTAxY2UiLCAiXHUwMGUwIiwgIkEiLAorICAgICAgICAgICAgIlx1MDExMyIsICJcdTAwZTkiLCAiXHUwMTFiIiwgIlx1MDBlOCIsICJFIiwKKyAgICAgICAgICAgICJcdTAxMmIiLCAiXHUwMGVkIiwgIlx1MDFkMCIsICJcdTAwZWMiLCAiSSIsCisgICAgICAgICAgICAiXHUwMTRkIiwgIlx1MDBmMyIsICJcdTAxZDIiLCAiXHUwMGYyIiwgIk8iLAorICAgICAgICAgICAgIlx1MDE2YiIsICJcdTAwZmEiLCAiXHUwMWQ0IiwgIlx1MDBmOSIsICJVIiwKKyAgICAgICAgICAgICJcdTAxZDYiLCAiXHUwMWQ4IiwgIlx1MDFkYSIsICJcdTAxZGMiLCAiXHUwMGZjIgorICAgICAgICB9OworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICImW2JlZm9yZSAxXWE8XHUwMTAxPFx1MDBlMTxcdTAxY2U8XHUwMGUwIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiZbYmVmb3JlIDFdZTxcdTAxMTM8XHUwMGU5PFx1MDExYjxcdTAwZTgiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJltiZWZvcmUgMV1pPFx1MDEyYjxcdTAwZWQ8XHUwMWQwPFx1MDBlYyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICImW2JlZm9yZSAxXW88XHUwMTRkPFx1MDBmMzxcdTAxZDI8XHUwMGYyIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiZbYmVmb3JlIDFddTxcdTAxNmI8XHUwMGZhPFx1MDFkNDxcdTAwZjkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJnU8XHUwMWQ2PFx1MDFkODxcdTAxZGE8XHUwMWRjPFx1MDBmYyIsIGRhdGEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZWR1bmRhbnRSdWxlcygpIHsKKyAgICAgICAgU3RyaW5nW10gcnVsZXMgPSB7CisgICAgICAgICAgICAvLyImIGEgPDw8IGIgPDw8IGMgPDwgZCA8PDwgZSYgW2JlZm9yZSAxXSBlIDw8PCB4IiwKKyAgICAgICAgICAgICImIGIgPDw8IGMgPDw8IGQgPDwgZSA8PDwgZiYgW2JlZm9yZSAzXSBmIDw8PCB4IiwKKyAgICAgICAgICAgICImIGEgPCBiIDw8PCBjIDw8IGQgPDw8IGUmIFtiZWZvcmUgMV0gZSA8PDwgeCIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IGMgPCBkJiBbYmVmb3JlIDFdIGMgPCBtIiwKKyAgICAgICAgICAgICImIGEgPCBiIDw8PCBjIDw8IGQgPDw8IGUmIFtiZWZvcmUgM10gZSA8PDwgeCIsCisgICAgICAgICAgICAiJiBhIDwgYiA8PDwgYyA8PCBkIDw8PCBlJiBbYmVmb3JlIDJdIGUgPDw8IHgiLAorICAgICAgICAgICAgIiYgYSA8IGIgPDw8IGMgPDwgZCA8PDwgZSA8PDwgZiA8IGcmIFtiZWZvcmUgMV0gZyA8IHgiLAorICAgICAgICAgICAgIiYgYSA8PDwgYiA8PCBjIDwgZCYgYSA8IG0iLAorICAgICAgICAgICAgIiZhPGI8PGJcdTAzMDEgJno8YiIsCisgICAgICAgICAgICAiJno8bTw8PHE8PDxtIiwKKyAgICAgICAgICAgICImejw8PG08cTw8PG0iLAorICAgICAgICAgICAgIiYgYSA8IGIgPCBjIDwgZCYgciA8IGMiLAorICAgICAgICAgICAgIiYgYSA8IGIgPCBjIDwgZCYgciA8IGMiLAorICAgICAgICAgICAgIiYgYSA8IGIgPCBjIDwgZCYgYyA8IG0iLAorICAgICAgICAgICAgIiYgYSA8IGIgPCBjIDwgZCYgYSA8IG0iCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSBleHBlY3RlZFJ1bGVzID0geworICAgICAgICAgICAgLy8iJlx1MjA4OTw8PHgiLAorICAgICAgICAgICAgIiZcdTAyNTI8PDx4IiwKKyAgICAgICAgICAgICImIGEgPDw8IHggPCBiIDw8PCBjIDw8IGQgPDw8IGUiLAorICAgICAgICAgICAgIiYgYSA8IGIgPCBtIDwgYyA8IGQiLAorICAgICAgICAgICAgIiYgYSA8IGIgPDw8IGMgPDwgZCA8PDwgeCA8PDwgZSIsCisgICAgICAgICAgICAiJiBhIDwgYiA8PDwgYyA8PDwgeCA8PCBkIDw8PCBlIiwKKyAgICAgICAgICAgICImIGEgPCBiIDw8PCBjIDw8IGQgPDw8IGUgPDw8IGYgPCB4IDwgZyIsCisgICAgICAgICAgICAiJiBhIDw8PCBiIDw8IGMgPCBtIDwgZCIsCisgICAgICAgICAgICAiJmE8Ylx1MDMwMSAmejxiIiwKKyAgICAgICAgICAgICImejxxPDw8bSIsCisgICAgICAgICAgICAiJno8cTw8PG0iLAorICAgICAgICAgICAgIiYgYSA8IGIgPCBkJiByIDwgYyIsCisgICAgICAgICAgICAiJiBhIDwgYiA8IGQmIHIgPCBjIiwKKyAgICAgICAgICAgICImIGEgPCBiIDwgYyA8IG0gPCBkIiwKKyAgICAgICAgICAgICImIGEgPCBtIDwgYiA8IGMgPCBkIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0ZGF0YSA9IHsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgeyJcdTIwODkiLCAieCJ9LAorICAgICAgICAgICAgeyJcdTAyNTIiLCAieCJ9LAorICAgICAgICAgICAgeyJhIiwgIngiLCAiYiIsICJjIiwgImQiLCAiZSJ9LAorICAgICAgICAgICAgeyJhIiwgImIiLCAibSIsICJjIiwgImQifSwKKyAgICAgICAgICAgIHsiYSIsICJiIiwgImMiLCAiZCIsICJ4IiwgImUifSwKKyAgICAgICAgICAgIHsiYSIsICJiIiwgImMiLCAieCIsICJkIiwgImUifSwKKyAgICAgICAgICAgIHsiYSIsICJiIiwgImMiLCAiZCIsICJlIiwgImYiLCAieCIsICJnIn0sCisgICAgICAgICAgICB7ImEiLCAiYiIsICJjIiwgIm0iLCAiZCJ9LAorICAgICAgICAgICAgeyJhIiwgImJcdTAzMDEiLCAieiIsICJiIn0sCisgICAgICAgICAgICB7InoiLCAicSIsICJtIn0sCisgICAgICAgICAgICB7InoiLCAicSIsICJtIn0sCisgICAgICAgICAgICB7ImEiLCAiYiIsICJkIn0sCisgICAgICAgICAgICB7InIiLCAiYyJ9LAorICAgICAgICAgICAgeyJhIiwgImIiLCAiYyIsICJtIiwgImQifSwKKyAgICAgICAgICAgIHsiYSIsICJtIiwgImIiLCAiYyIsICJkIn0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBybHogPSAiIjsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaTxydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbG9nbG4oInRlc3RpbmcgcnVsZSAiICsgcnVsZXNbaV0gKyAiLCBleHBlY3RlZCB0byBiZSIgKyBleHBlY3RlZFJ1bGVzW2ldKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmx6ID0gcnVsZXNbaV07CisgICAgICAgICAgICAgICAgQ29sbGF0b3IgY3JlZHVuZGFudCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihybHopOworICAgICAgICAgICAgICAgIHJseiA9IGV4cGVjdGVkUnVsZXNbaV07CisgICAgICAgICAgICAgICAgQ29sbGF0b3IgY3Jlc3VsdGluZyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihybHopOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgY3JlZHVuZGFudCBSdWxlOiIgKyAoKFJ1bGVCYXNlZENvbGxhdG9yKWNyZWR1bmRhbnQpLmdldFJ1bGVzKCkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgY3Jlc3VsdGluZyBSdWxlOiIgKyAoKFJ1bGVCYXNlZENvbGxhdG9yKWNyZXN1bHRpbmcpLmdldFJ1bGVzKCkpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkNhbm5vdCBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vdGVzdEFnYWluc3RVQ0EoY3Jlc3VsdGluZywgY3JlZHVuZGFudCwgImV4cGVjdGVkIiwgVFJVRSwgJnN0YXR1cyk7CisgICAgICAgICAgICAvLyBsb2dsbigidGVzdGluZyB1c2luZyBkYXRhXG4iKTsKKyAgICAgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIocnVsZXNbaV0sIHRlc3RkYXRhW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhwYW5zaW9uU3ludGF4KCkgeworICAgICAgICBTdHJpbmdbXSBydWxlcyA9IHsKKyAgICAgICAgICAgICImQUUgPDw8IGEgPDwgYiA8PDwgYyAmZCA8PDwgZiIsCisgICAgICAgICAgICAiJkFFIDw8PCBhIDw8PCBiIDw8IGMgPDwgZCA8IGUgPCBmIDw8PCBnIiwKKyAgICAgICAgICAgICImQUUgPDw8IEIgPDw8IEMgLyBEIDw8PCBGIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gZXhwZWN0ZWRSdWxlcyA9IHsKKyAgICAgICAgICAgICImQSA8PDwgYSAvIEUgPDwgYiAvIEUgPDw8IGMgL0UgICZkIDw8PCBmIiwKKyAgICAgICAgICAgICImQSA8PDwgYSAvIEUgPDw8IGIgLyBFIDw8IGMgLyBFIDw8IGQgLyBFIDwgZSA8IGYgPDw8IGciLAorICAgICAgICAgICAgIiZBIDw8PCBCIC8gRSA8PDwgQyAvIEVEIDw8PCBGIC8gRSIKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdW10gdGVzdGRhdGEgPSB7CisgICAgICAgICAgICB7IkFFIiwgImEiLCAiYiIsICJjIn0sCisgICAgICAgICAgICB7IkFFIiwgImEiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImcifSwKKyAgICAgICAgICAgIHsiQUUiLCAiQiIsICJDIn0gLy8gLyBFRCA8PDwgRiAvIEUifSwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgaSA9IDA7IGk8cnVsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJ0ZXN0aW5nIHJ1bGUgIiArIHJ1bGVzW2ldICsgIiwgZXhwZWN0ZWQgdG8gYmUgIiArIGV4cGVjdGVkUnVsZXNbaV0pOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmx6ID0gcnVsZXNbaV07CisgICAgICAgICAgICAgICAgQ29sbGF0b3IgY3JlZHVuZGFudCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihybHopOworICAgICAgICAgICAgICAgIHJseiA9IGV4cGVjdGVkUnVsZXNbaV07CisgICAgICAgICAgICAgICAgQ29sbGF0b3IgY3Jlc3VsdGluZyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihybHopOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgY3JlZHVuZGFudCBSdWxlOiIgKyAoKFJ1bGVCYXNlZENvbGxhdG9yKWNyZWR1bmRhbnQpLmdldFJ1bGVzKCkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgY3Jlc3VsdGluZyBSdWxlOiIgKyAoKFJ1bGVCYXNlZENvbGxhdG9yKWNyZXN1bHRpbmcpLmdldFJ1bGVzKCkpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB3YXJubG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gdGVzdEFnYWluc3RVQ0Egc3RpbGwgZG9lc24ndCBoYW5kbGUgZXhwYW5zaW9ucyBjb3JyZWN0bHksIHNvIHRoaXMgaXMgbm90IHJ1biAKKyAgICAgICAgICAgIC8vIGFzIGEgaGFyZCBlcnJvciB0ZXN0LCBidXQgb25seSBpbiBpbmZvcm1hdGlvbiBtb2RlIAorICAgICAgICAgICAgLy90ZXN0QWdhaW5zdFVDQShjcmVzdWx0aW5nLCBjcmVkdW5kYW50LCAiZXhwZWN0ZWQiLCBGQUxTRSwgJnN0YXR1cyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJ0ZXN0aW5nIHVzaW5nIGRhdGEiKTsKKyAgICAgICAgICAgIGdlbmVyaWNSdWxlc1N0YXJ0ZXIocnVsZXNbaV0sIHRlc3RkYXRhW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RIYW5ndWxUYWlsb3JpbmcoKSB7CisgICAgICAgIFN0cmluZ1tdIGtvcmVhbkRhdGEgPSB7CisgICAgICAgICAgICAiXHVhYzAwIiwgIlx1NGYzZCIsICJcdTRmNzMiLCAiXHU1MDQ3IiwgIlx1NTBmOSIsICJcdTUyYTAiLCAiXHU1M2VmIiwgIlx1NTQ3NSIsCisgICAgICAgICAgICAiXHU1NGU1IiwgIlx1NTYwOSIsICJcdTVhYzEiLCAiXHU1YmI2IiwgIlx1NjY4NyIsICJcdTY3YjYiLCAiXHU2N2I3IiwgIlx1NjdlZiIsCisgICAgICAgICAgICAiXHU2YjRjIiwgIlx1NzNjMiIsICJcdTc1YzIiLCAiXHU3YTNjIiwgIlx1ODJkYiIsICJcdTgzMDQiLCAiXHU4ODU3IiwgIlx1ODg4OCIsCisgICAgICAgICAgICAiXHU4YTM2IiwgIlx1OGNjOCIsICJcdThkY2YiLCAiXHU4ZWZiIiwgIlx1OGZlNiIsICJcdTk5ZDUiLAorICAgICAgICAgICAgIlx1NEVFRSIsICJcdTUwQTIiLCAiXHU1NDk2IiwgIlx1NTRGRiIsICJcdTU3NzciLCAiXHU1QjhBIiwgIlx1NjU5RCIsICJcdTY5OEUiLAorICAgICAgICAgICAgIlx1NkE5RiIsICJcdTczQzgiLCAiXHU3QjMzIiwgIlx1ODAxRSIsICJcdTgyMzgiLCAiXHU4NDZEIiwgIlx1OEIwQyIKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBydWxlcyA9CisgICAgICAgICAgICAiJlx1YWMwMCA8PDwgXHU0ZjNkIDw8PCBcdTRmNzMgPDw8IFx1NTA0NyA8PDwgXHU1MGY5IDw8PCBcdTUyYTAgPDw8IFx1NTNlZiA8PDwgXHU1NDc1ICIKKyAgICAgICAgICAgICsgIjw8PCBcdTU0ZTUgPDw8IFx1NTYwOSA8PDwgXHU1YWMxIDw8PCBcdTViYjYgPDw8IFx1NjY4NyA8PDwgXHU2N2I2IDw8PCBcdTY3YjcgPDw8IFx1NjdlZiAiCisgICAgICAgICAgICArICI8PDwgXHU2YjRjIDw8PCBcdTczYzIgPDw8IFx1NzVjMiA8PDwgXHU3YTNjIDw8PCBcdTgyZGIgPDw8IFx1ODMwNCA8PDwgXHU4ODU3IDw8PCBcdTg4ODggIgorICAgICAgICAgICAgKyAiPDw8IFx1OGEzNiA8PDwgXHU4Y2M4IDw8PCBcdThkY2YgPDw8IFx1OGVmYiA8PDwgXHU4ZmU2IDw8PCBcdTk5ZDUgIgorICAgICAgICAgICAgKyAiPDw8IFx1NEVFRSA8PDwgXHU1MEEyIDw8PCBcdTU0OTYgPDw8IFx1NTRGRiA8PDwgXHU1Nzc3IDw8PCBcdTVCOEEgPDw8IFx1NjU5RCA8PDwgXHU2OThFICIKKyAgICAgICAgICAgICsgIjw8PCBcdTZBOUYgPDw8IFx1NzNDOCA8PDwgXHU3QjMzIDw8PCBcdTgwMUUgPDw8IFx1ODIzOCA8PDwgXHU4NDZEIDw8PCBcdThCMEMiOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHJseiA9IHJ1bGVzOworICAgICAgICAKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJseik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIlVuYWJsZSB0byBvcGVuIGNvbGxhdG9yIHdpdGggcnVsZXMiICsgcnVsZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIGxvZ2xuKCJVc2luZyBzdGFydCBvZiBrb3JlYW4gcnVsZXNcbiIpOworICAgICAgICBnZW5lcmljT3JkZXJpbmdUZXN0KGNvbGwsIGtvcmVhbkRhdGEpOworICAgICAgICAvLyBsb2dsbigiU2V0dGluZyBqYW1vU3BlY2lhbCB0byBUUlVFIGFuZCB0ZXN0aW5nIG9uY2UgbW9yZVxuIik7CisgICAgICAgIAorICAgICAgICAvLyBjYW4ndCBzZXQgamFtbyBpbiBpY3U0aiAKKyAgICAgICAgLy8gKChVQ0FUYWJsZUhlYWRlciAqKWNvbGwtPmltYWdlKS0+amFtb1NwZWNpYWwgPSBUUlVFOyAvLyBkb24ndCB0cnkgdGhpcyBhdCBob21lCisgICAgICAgIC8vIGdlbmVyaWNPcmRlcmluZ1Rlc3QoY29sbCwga29yZWFuRGF0YSk7CisgICAgICAgIAorICAgICAgICAvLyBubyBzdWNoIGxvY2FsZSBpbiBpY3U0agorICAgICAgICAvLyBsb2dsbigiVXNpbmcga29fX0xPVFVTIGxvY2FsZVxuIik7CisgICAgICAgIC8vIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoImtvX19MT1RVUyIsICIiKSwga29yZWFuRGF0YSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEluY3JlbWVudGFsTm9ybWFsaXplKCkgeworICAgICAgICBDb2xsYXRvciAgICAgICAgY29sbCA9IG51bGw7CisgICAgICAgIC8vIGxvZ2xuKCJUZXN0IDEgLi4uLiIpOworICAgICAgICB7CisgICAgICAgICAgICAvKiBUZXN0IDEuICBSdW4gdmVyeSBsb25nIHVubm9ybWFsaXplZCBzdHJpbmdzLCB0byBmb3JjZSBvdmVyZmxvdyBvZiovCisgICAgICAgICAgICAvKiAgICAgICAgICBtb3N0IGJ1ZmZlcnMgYWxvbmcgdGhlIHdheS4qLworICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgd2FybmxuKCJDYW5ub3QgZ2V0IGRlZmF1bHQgaW5zdGFuY2UhIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2hhciBiYXNlQSAgICAgPTB4NDE7CisgICAgICAgICAgICBjaGFyIGNjTWl4W10gICA9IHsweDMxNiwgMHgzMjEsIDB4MzAwfTsKKyAgICAgICAgICAgIGludCAgICAgICAgICBzTGVuOworICAgICAgICAgICAgaW50ICAgICAgICAgIGk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc3RyQSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJCID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjb2xsLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKHNMZW4gPSAxMDAwOyBzTGVuPDEwMDE7IHNMZW4rKykgeworICAgICAgICAgICAgICAgIHN0ckEuZGVsZXRlKDAsIHN0ckEubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHN0ckEuYXBwZW5kKGJhc2VBKTsKKyAgICAgICAgICAgICAgICBzdHJCLmRlbGV0ZSgwLCBzdHJCLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBzdHJCLmFwcGVuZChiYXNlQSk7CisgICAgICAgICAgICAgICAgZm9yIChpPTE7IGk8IHNMZW47IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzdHJBLmFwcGVuZChjY01peFtpICUgM10pOworICAgICAgICAgICAgICAgICAgICBzdHJCLmluc2VydCgxLCBjY01peFtpICUgM10pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsgICAvLyBEbyB0ZXN0IHdpdGggZGVmYXVsdCBzdHJlbmd0aCwgd2hpY2ggcnVucworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIChSdWxlQmFzZWRDb2xsYXRvciljb2xsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJBLnRvU3RyaW5nKCksIHN0ckIudG9TdHJpbmcoKSwgMCk7ICAgIC8vICAgb3B0aW1pemVkIGZ1bmN0aW9ucyBpbiB0aGUgaW1wbAorICAgICAgICAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuSURFTlRJQ0FMKTsgICAvLyBEbyBhZ2FpbiB3aXRoIHRoZSBzbG93LCBnZW5lcmFsIGltcGwuCisgICAgICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ckEudG9TdHJpbmcoKSwgc3RyQi50b1N0cmluZygpLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvKiAgVGVzdCAyOiAgTm9uLW5vcm1hbCBzZXF1ZW5jZSBpbiBhIHN0cmluZyB0aGF0IGV4dGVuZHMgdG8gdGhlIGxhc3QgY2hhcmFjdGVyKi8KKyAgICAgICAgLyogICAgICAgICBvZiB0aGUgc3RyaW5nLiAgQ2hlY2tzIGEgY291cGxlIG9mIGVkZ2UgY2FzZXMuKi8KKyAgICAgICAgLy8gbG9nbG4oIlRlc3QgMiAuLi4uIik7ICAgIAorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgc3RyQSA9ICJBQVx1MDMwMFx1MDMxNiI7CisgICAgICAgICAgICBTdHJpbmcgc3RyQiA9ICJBXHUwMGMwXHUwMzE2IjsKKyAgICAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGwsIHN0ckEsIHN0ckIsIDApOworICAgICAgICB9CisgICAgICAgIC8qICBUZXN0IDM6ICBOb24tbm9ybWFsIHNlcXVlbmNlIGlzIHRlcm1pbmF0ZWQgYnkgYSBzdXJyb2dhdGUgcGFpci4qLworICAgICAgICAvLyBsb2dsbigiVGVzdCAzIC4uLi4iKTsKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIHN0ckEgPSAiQUFcdTAzMDBcdTAzMTZcdUQ4MDBcdURDMDEiOworICAgICAgICAgICAgU3RyaW5nIHN0ckIgPSAiQVx1MDBjMFx1MDMxNlx1RDgwMFx1REMwMCI7CisgICAgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIChSdWxlQmFzZWRDb2xsYXRvciljb2xsLCBzdHJBLCBzdHJCLCAxKTsKKyAgICAgICAgfQorICAgICAgICAvKiAgVGVzdCA0OiAgSW1iZWRkZWQgbnVsbHMgZG8gbm90IHRlcm1pbmF0ZSBhIHN0cmluZyB3aGVuIGxlbmd0aCBpcyBzcGVjaWZpZWQuKi8KKyAgICAgICAgLy8gbG9nbG4oIlRlc3QgNCAuLi4uIik7CisgICAgICAgIC8qCisgICAgICAgICAqIG5vdCBhIHZhbGlkIHRlc3Qgc2luY2Ugc3RyaW5nIGFyZSBudWxsLXRlcm1pbmF0ZWQgaW4gamF2YXsKKyAgICAgICAgIGNoYXIgc3RyQVtdID0gezB4NDEsIDB4MDAsIDB4NDJ9OworICAgICAgICAgY2hhciBzdHJCW10gPSB7MHg0MSwgMHgwMCwgMHgwMH07CisgICAgICAgICAgICAKKyAgICAgICAgIGludCByZXN1bHQgPSBjb2xsLmNvbXBhcmUobmV3IFN0cmluZyhzdHJBKSwgbmV3IFN0cmluZyhzdHJCKSk7CisgICAgICAgICBpZiAocmVzdWx0ICE9IDEpIHsKKyAgICAgICAgIGVycmxuKCJFUlJPUiAxIGluIHRlc3QgNFxuIik7CisgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgIHJlc3VsdCA9IGNvbGwuY29tcGFyZShuZXcgU3RyaW5nKHN0ckEsIDAsIDEpLCBuZXcgU3RyaW5nKHN0ckIsIDAsIDEpKTsKKyAgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgZXJybG4oIkVSUk9SIDEgaW4gdGVzdCA0XG4iKTsKKyAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXlBID0gY29sbC5nZXRDb2xsYXRpb25LZXkobmV3IFN0cmluZyhzdHJBKSk7CisgICAgICAgICBDb2xsYXRpb25LZXkgc29ydEtleUIgPSBjb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHN0ckIpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgaW50IHIgPSBzb3J0S2V5QS5jb21wYXJlVG8oc29ydEtleUIpOworICAgICAgICAgaWYgKHIgPD0gMCkgeworICAgICAgICAgZXJybG4oIkVycm9yIDQgaW4gdGVzdCA0XG4iKTsKKyAgICAgICAgIH0KKyAgICAKKyAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuSURFTlRJQ0FMKTsKKyAgICAgICAgIHNvcnRLZXlBID0gY29sbC5nZXRDb2xsYXRpb25LZXkobmV3IFN0cmluZyhzdHJBKSk7CisgICAgICAgICBzb3J0S2V5QiA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KG5ldyBTdHJpbmcoc3RyQikpOworICAgIAorICAgICAgICAgciA9IHNvcnRLZXlBLmNvbXBhcmVUbyhzb3J0S2V5Qik7CisgICAgICAgICBpZiAociA8PSAwKSB7CisgICAgICAgICBlcnJsbigiRXJyb3IgNyBpbiB0ZXN0IDRcbiIpOworICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICBjb2xsLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICAgICAgLyogIFRlc3QgNTogIE51bGwgY2hhcmFjdGVycyBpbiBub24tbm9ybWFsIHNvdXJjZSBzdHJpbmdzLiovCisgICAgICAgIC8vIGxvZ2xuKCJUZXN0IDUgLi4uLiIpOworICAgICAgICAvKgorICAgICAgICAgKiBub3QgYSB2YWxpZCB0ZXN0IHNpbmNlIHN0cmluZyBhcmUgbnVsbC10ZXJtaW5hdGVkIGluIGphdmF7CisgICAgICAgICB7CisgICAgICAgICBjaGFyIHN0ckFbXSA9IHsweDQxLCAweDQxLCAweDMwMCwgMHgzMTYsIDB4MDAsIDB4NDIsfTsKKyAgICAgICAgIGNoYXIgc3RyQltdID0gezB4NDEsIDB4NDEsIDB4MzAwLCAweDMxNiwgMHgwMCwgMHgwMCx9OworICAgICAgICAgICAKKyAgICAKKyAgICAgICAgIGludCByZXN1bHQgPSBjb2xsLmNvbXBhcmUobmV3IFN0cmluZyhzdHJBLCAwLCA2KSwgbmV3IFN0cmluZyhzdHJCLCAwLCA2KSk7CisgICAgICAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICAgZXJybG4oIkVSUk9SIDEgaW4gdGVzdCA1XG4iKTsKKyAgICAgICAgIH0KKyAgICAgICAgIHJlc3VsdCA9IGNvbGwuY29tcGFyZShuZXcgU3RyaW5nKHN0ckEsIDAsIDQpLCBuZXcgU3RyaW5nKHN0ckIsIDAsIDQpKTsKKyAgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgZXJybG4oIkVSUk9SIDIgaW4gdGVzdCA1XG4iKTsKKyAgICAgICAgIH0KKyAgICAKKyAgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5QSA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KG5ldyBTdHJpbmcoc3RyQSkpOworICAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXlCID0gY29sbC5nZXRDb2xsYXRpb25LZXkobmV3IFN0cmluZyhzdHJCKSk7CisgICAgICAgICBpbnQgciA9IHNvcnRLZXlBLmNvbXBhcmVUbyhzb3J0S2V5Qik7CisgICAgICAgICBpZiAociA8PSAwKSB7CisgICAgICAgICBlcnJsbigiRXJyb3IgNCBpbiB0ZXN0IDVcbiIpOworICAgICAgICAgfQorICAgIAorICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworICAgICAgICAgICAgCisgICAgICAgICBzb3J0S2V5QSA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KG5ldyBTdHJpbmcoc3RyQSkpOworICAgICAgICAgc29ydEtleUIgPSBjb2xsLmdldENvbGxhdGlvbktleShuZXcgU3RyaW5nKHN0ckIpKTsKKyAgICAgICAgIHIgPSBzb3J0S2V5QS5jb21wYXJlVG8oc29ydEtleUIpOworICAgICAgICAgaWYgKHIgPD0gMCkgeworICAgICAgICAgZXJybG4oIkVycm9yIDcgaW4gdGVzdCA1XG4iKTsKKyAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIC8qICBUZXN0IDY6ICBOdWxsIGNoYXJhY3RlciBhcyBiYXNlIG9mIGEgbm9uLW5vcm1hbCBjb21iaW5pbmcgc2VxdWVuY2UuKi8KKyAgICAgICAgLy8gbG9nbG4oIlRlc3QgNiAuLi4uIik7CisgICAgICAgIC8qCisgICAgICAgICAqIG5vdCBhIHZhbGlkIHRlc3Qgc2luY2Ugc3RyaW5nIGFyZSBudWxsLXRlcm1pbmF0ZWQgaW4gamF2YXsKKyAgICAgICAgIHsKKyAgICAgICAgIGNoYXIgc3RyQVtdID0gezB4NDEsIDB4MCwgMHgzMDAsIDB4MzE2LCAweDQxLCAweDMwMix9OworICAgICAgICAgY2hhciBzdHJCW10gPSB7MHg0MSwgMHgwLCAweDMwMiwgMHgzMTYsIDB4NDEsIDB4MzAwLH07CisgICAgCisgICAgICAgICBpbnQgcmVzdWx0ID0gY29sbC5jb21wYXJlKG5ldyBTdHJpbmcoc3RyQSwgMCwgNSksIG5ldyBTdHJpbmcoc3RyQiwgMCwgNSkpOworICAgICAgICAgaWYgKHJlc3VsdCAhPSAtMSkgeworICAgICAgICAgZXJybG4oIkVycm9yIDEgaW4gdGVzdCA2XG4iKTsKKyAgICAgICAgIH0KKyAgICAgICAgIHJlc3VsdCA9IGNvbGwuY29tcGFyZShuZXcgU3RyaW5nKHN0ckEsIDAsIDEpLCBuZXcgU3RyaW5nKHN0ckIsIDAsIDEpKTsKKyAgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgZXJybG4oIkVycm9yIDIgaW4gdGVzdCA2XG4iKTsKKyAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbnRyYWN0aW9uKCkgeworICAgICAgICBTdHJpbmdbXSB0ZXN0cnVsZXMgPSB7CisgICAgICAgICAgICAiJkEgPSBBQiAvIEIiLAorICAgICAgICAgICAgIiZBID0gQVxcdTAzMDYvXFx1MDMwNiIsCisgICAgICAgICAgICAiJmMgPSBjaCAvIGgiLAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSB0ZXN0ZGF0YSA9IHsKKyAgICAgICAgICAgICJBQiIsICJBQiIsICJBXHUwMzA2IiwgImNoIgorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSB0ZXN0ZGF0YTIgPSB7CisgICAgICAgICAgICAiXHUwMDYzXHUwMDY3IiwKKyAgICAgICAgICAgICJcdTAwNjNcdTAwNjgiLAorICAgICAgICAgICAgIlx1MDA2M1x1MDA2QyIsCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIHRlc3RydWxlczMgPSB7CisgICAgICAgICAgICAiJnogPCB4eXogJnh5encgPDwgQiIsCisgICAgICAgICAgICAiJnogPCB4eXogJnh5eiA8PCBCIC8gdyIsCisgICAgICAgICAgICAiJnogPCBjaCAmYWNobSA8PCBCIiwKKyAgICAgICAgICAgICImeiA8IGNoICZhIDw8IEIgLyBjaG0iLAorICAgICAgICAgICAgIiZcdWQ4MDBcdWRjMDB3IDw8IEIiLAorICAgICAgICAgICAgIiZcdWQ4MDBcdWRjMDAgPDwgQiAvIHciLAorICAgICAgICAgICAgIiZhXHVkODAwXHVkYzAwbSA8PCBCIiwKKyAgICAgICAgICAgICImYSA8PCBCIC8gXHVkODAwXHVkYzAwbSIsCisgICAgICAgIH07CisgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yICBjb2xsID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cnVsZXMubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcjEgPSBudWxsOworICAgICAgICAgICAgaW50IGogPSAwOworICAgICAgICAgICAgLy8gbG9nbG4oIlJ1bGUgIiArIHRlc3RydWxlc1tpXSArICIgZm9yIHRlc3RpbmdcbiIpOworICAgICAgICAgICAgU3RyaW5nIHJ1bGUgPSB0ZXN0cnVsZXNbaV07CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHdhcm5sbigiQ29sbGF0b3IgY3JlYXRpb24gZmFpbGVkICIgKyB0ZXN0cnVsZXNbaV0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaXRlcjEgPSBjb2xsLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0ZGF0YVtpXSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb2xsYXRpb24gaXRlcmF0b3IgY3JlYXRpb24gZmFpbGVkXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAoaiA8IDIpIHsKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcjI7CisgICAgICAgICAgICAgICAgaW50IGNlOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGl0ZXIyID0gY29sbC5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoU3RyaW5nLnZhbHVlT2YodGVzdGRhdGFbaV0uY2hhckF0KGopKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfWNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ29sbGF0aW9uIGl0ZXJhdG9yIGNyZWF0aW9uIGZhaWxlZFxuIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2UgPSBpdGVyMi5uZXh0KCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZXIxLm5leHQoKSAhPSBjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbiBlbGVtZW50cyBpbiBjb250cmFjdGlvbiBzcGxpdCBkb2VzIG5vdCBtYXRjaFxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2UgPSBpdGVyMi5uZXh0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGogKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXRlcjEubmV4dCgpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ29sbGF0aW9uIGVsZW1lbnRzIG5vdCBleGhhdXN0ZWRcbiIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcnVsZSA9ICImIGEgPCBiIDwgYyA8IGNoIDwgZCAmIGMgPSBjaCAvIGgiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJjYW5ub3QgY3JlYXRlIHJ1bGViYXNlZCBjb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoY29sbC5jb21wYXJlKHRlc3RkYXRhMlswXSwgdGVzdGRhdGEyWzFdKSAhPSAtMSkgeworICAgICAgICAgICAgZXJybG4oIkV4cGVjdGVkICIgKyB0ZXN0ZGF0YTJbMF0gKyAiIDwgIiArIHRlc3RkYXRhMlsxXSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbGwuY29tcGFyZSh0ZXN0ZGF0YTJbMV0sIHRlc3RkYXRhMlsyXSkgIT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCAiICsgdGVzdGRhdGEyWzFdICsgIiA8ICIgKyB0ZXN0ZGF0YTJbMl0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHJ1bGVzMy5sZW5ndGg7IGkgKz0gMikgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgICAgICAgICAgY29sbDEsIGNvbGwyOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIxLCBpdGVyMjsKKyAgICAgICAgICAgIGNoYXIgICAgICAgICAgICAgICBjaCA9IDB4MDA0MjsKKyAgICAgICAgICAgIGludCAgICAgICAgICAgIGNlOworICAgICAgICAgICAgcnVsZSA9IHRlc3RydWxlczNbaV07CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvbGwxID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogY2Fubm90IGNyZWF0ZSBydWxlYmFzZWQgY29sbGF0b3IsIHJ1bGU6IiArIHJ1bGUpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJ1bGUgPSB0ZXN0cnVsZXMzW2kgKyAxXTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29sbDIgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb2xsYXRvciBjcmVhdGlvbiBmYWlsZWQgIiArIHRlc3RydWxlc1tpXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpdGVyMSA9IGNvbGwxLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihTdHJpbmcudmFsdWVPZihjaCkpOworICAgICAgICAgICAgICAgIGl0ZXIyID0gY29sbDIuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKFN0cmluZy52YWx1ZU9mKGNoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb2xsYXRpb24gaXRlcmF0b3IgY3JlYXRpb24gZmFpbGVkXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjZSA9IGl0ZXIxLm5leHQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2UgIT0gaXRlcjIubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDRXMgZG9lcyBub3QgbWF0Y2hcbiIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNlID0gaXRlcjEubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGl0ZXIyLm5leHQoKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNFcyBub3QgZXhoYXVzdGVkXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEV4cGFuc2lvbigpIHsKKyAgICAgICAgU3RyaW5nW10gdGVzdHJ1bGVzID0geworICAgICAgICAgICAgIiZKIDw8IEsgLyBCICYgSyA8PCBNIiwKKyAgICAgICAgICAgICImSiA8PCBLIC8gQiA8PCBNIgorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSB0ZXN0ZGF0YSA9IHsKKyAgICAgICAgICAgICJKQSIsICJNQSIsICJLQSIsICJLQyIsICJKQyIsICJNQyIsCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBDb2xsYXRvciAgY29sbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cnVsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIC8vIGxvZ2xuKCJSdWxlICIgKyB0ZXN0cnVsZXNbaV0gKyAiIGZvciB0ZXN0aW5nXG4iKTsKKyAgICAgICAgICAgIFN0cmluZyBydWxlID0gdGVzdHJ1bGVzW2ldOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkNvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZCAiICsgdGVzdHJ1bGVzW2ldKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgNTsgaiArKykgeworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIChSdWxlQmFzZWRDb2xsYXRvciljb2xsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ZGF0YVtqXSwgdGVzdGRhdGFbaiArIDFdLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbnRyYWN0aW9uRW5kQ29tcGFyZSgpCisgICAgeworICAgICAgICBTdHJpbmcgcnVsZXMgPSAiJmI9Y2giOworICAgICAgICBTdHJpbmcgc3JjID0gImJlYyI7CisgICAgICAgIFN0cmluZyB0Z3QgPSAiYmVjaCI7CisgICAgICAgIENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkNvbGxhdG9yIGNyZWF0aW9uIGZhaWxlZCAiICsgcnVsZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIChSdWxlQmFzZWRDb2xsYXRvciljb2xsLCBzcmMsIHRndCwgMSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RMb2NhbGVSdWxlQmFzZWRDb2xsYXRvcnMoKSB7CisgICAgICAgIGlmIChnZXRJbmNsdXNpb24oKSA8IDUpIHsKKyAgICAgICAgICAgIC8vIG5vdCBzZXJpb3VzIGVub3VnaCB0byBydW4gdGhpcworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIExvY2FsZSBsb2NhbGVbXSA9IENvbGxhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgU3RyaW5nIHByZXZydWxlID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGUubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBMb2NhbGUgbCA9IGxvY2FsZVtpXTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FLGwpOworICAgICAgICAgICAgICAgIFN0cmluZyBjb2xsa2V5ID0gcmIuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKCJjb2xsYXRpb25zL2RlZmF1bHQiKTsgCisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgZWxlbWVudHMgPSByYi5nZXRXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvIiArIGNvbGxrZXkpOworICAgICAgICAgICAgICAgIGlmIChlbGVtZW50cyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgcnVsZSA9IG51bGw7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgIE9iamVjdFtdW10gY29sbGRhdGEgPSAoT2JqZWN0W11bXSllbGVtZW50czsKKyAgICAgICAgICAgICAgICAgIC8vICUlQ29sbGF0aW9uQmluCisgICAgICAgICAgICAgICAgICBpZiAoY29sbGRhdGFbMF1bMV0gaW5zdGFuY2VvZiBieXRlW10peworICAgICAgICAgICAgICAgICAgcnVsZSA9IChTdHJpbmcpY29sbGRhdGFbMV1bMV07CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgIHJ1bGUgPSAoU3RyaW5nKWNvbGxkYXRhWzBdWzFdOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgcnVsZSA9IGVsZW1lbnRzLmdldFN0cmluZygiU2VxdWVuY2UiKTsgICAKKworICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbDEgPSAKKyAgICAgICAgICAgICAgICAgICAgKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKGwpOworICAgICAgICAgICAgICAgIGlmICghcnVsZS5lcXVhbHMoY29sMS5nZXRSdWxlcygpKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUnVsZXMgc2hvdWxkIGJlIHRoZSBzYW1lIGluIHRoZSBSdWxlQmFzZWRDb2xsYXRvciBhbmQgTG9jYWxlIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChydWxlICE9IG51bGwgJiYgcnVsZS5sZW5ndGgoKSA+IDAgCisgICAgICAgICAgICAgICAgICAgICYmICFydWxlLmVxdWFscyhwcmV2cnVsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sMiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb2wxLmVxdWFscyhjb2wyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGNyZWF0aW5nIFJ1bGVCYXNlZENvbGxhdG9yIGZyb20gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG9jYWxlIHJ1bGVzIGZvciAiICsgbC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcmV2cnVsZSA9IHJ1bGU7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHdhcm5sbigiRXJyb3IgcmV0cmlldmluZyByZXNvdXJjZSBidW5kbGUgZm9yIHRlc3Rpbmc6ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RPcHRpbWl6ZSgpIHsKKyAgICAgICAgLyogdGhpcyBpcyBub3QgcmVhbGx5IGEgdGVzdCAtIGp1c3QgdHJ5aW5nIG91dCAKKyAgICAgICAgICogd2hldGhlciBjb3B5aW5nIG9mIFVDQSBjb250ZW50cyB3aWxsIGZhaWwgCisgICAgICAgICAqIENhbm5vdCByZWFsbHkgdGVzdCwgc2luY2UgdGhlIGZ1bmN0aW9uYWxpdHkgCisgICAgICAgICAqIHJlbWFpbnMgdGhlIHNhbWUuCisgICAgICAgICAqLworICAgICAgICBTdHJpbmcgcnVsZXNbXSA9IHsKKyAgICAgICAgICAgICJbb3B0aW1pemUgW1xcdUFDMDAtXFx1RDdGRl1dIgorICAgICAgICB9OworICAgICAgICBTdHJpbmcgZGF0YVtdW10gPSB7CisgICAgICAgICAgICB7ICJhIiwgImIifQorICAgICAgICB9OworICAgICAgICBpbnQgaSA9IDA7CisgICAgCisgICAgICAgIGZvcihpID0gMDsgaTxydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcihydWxlc1tpXSwgZGF0YVtpXSk7CisgICAgICAgIH0KKyAgICB9ICAgIAorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RJZGVudGljYWxDb21wYXJlKCkgCisgICAgeyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgCisgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoIiYgXHVEODAwXHVEQzAwID0gXHVEODAwXHVEQzAxIik7CisgICAgICAgICAgICBTdHJpbmcgc3RyQSA9ICJBQVx1MDMwMFx1MDMxNlx1RDgwMFx1REMwMSI7CisgICAgICAgICAgICBTdHJpbmcgc3RyQiA9ICJBXHUwMGMwXHUwMzE2XHVEODAwXHVEQzAwIjsKKyAgICAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoQ29sbGF0b3IuSURFTlRJQ0FMKTsKKyAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIGNvbGwsIHN0ckEsIHN0ckIsIDEpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0TWVyZ2VTb3J0S2V5cygpIAorICAgIHsKKyAgICAgICAgU3RyaW5nIGNhc2VzW10gPSB7ImFiYyIsICJhYmNkIiwgImFiY2RlIn07CisgICAgICAgIFN0cmluZyBwcmVmaXggPSAiZm9vIjsKKyAgICAgICAgU3RyaW5nIHN1ZmZpeCA9ICJlZ2ciOworICAgICAgICBDb2xsYXRpb25LZXkgbWVyZ2VkUHJlZml4S2V5c1tdID0gbmV3IENvbGxhdGlvbktleVtjYXNlcy5sZW5ndGhdOworICAgICAgICBDb2xsYXRpb25LZXkgbWVyZ2VkU3VmZml4S2V5c1tdID0gbmV3IENvbGxhdGlvbktleVtjYXNlcy5sZW5ndGhdOworICAgICAgICAKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXIoTG9jYWxlLkVOR0xJU0gsIGNhc2VzKTsKKyAgICAgICAgCisgICAgICAgIGludCBzdHJlbmd0aCA9IENvbGxhdG9yLlBSSU1BUlk7CisgICAgICAgIHdoaWxlIChzdHJlbmd0aCA8PSBDb2xsYXRvci5JREVOVElDQUwpIHsKKyAgICAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoc3RyZW5ndGgpOworICAgICAgICAgICAgQ29sbGF0aW9uS2V5IHByZWZpeEtleSA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KHByZWZpeCk7CisgICAgICAgICAgICBDb2xsYXRpb25LZXkgc3VmZml4S2V5ID0gY29sbC5nZXRDb2xsYXRpb25LZXkoc3VmZml4KTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2FzZXMubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICAgICAgQ29sbGF0aW9uS2V5IGtleSA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KGNhc2VzW2ldKTsKKyAgICAgICAgICAgICAgICBtZXJnZWRQcmVmaXhLZXlzW2ldID0gcHJlZml4S2V5Lm1lcmdlKGtleSk7CisgICAgICAgICAgICAgICAgbWVyZ2VkU3VmZml4S2V5c1tpXSA9IHN1ZmZpeEtleS5tZXJnZShrZXkpOworICAgICAgICAgICAgICAgIGlmIChtZXJnZWRQcmVmaXhLZXlzW2ldLmdldFNvdXJjZVN0cmluZygpICE9IG51bGwKKyAgICAgICAgICAgICAgICAgICAgfHwgbWVyZ2VkU3VmZml4S2V5c1tpXS5nZXRTb3VyY2VTdHJpbmcoKSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJNZXJnZWQgc291cmNlIHN0cmluZyBlcnJvcjogZXhwZWN0ZWQgbnVsbCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1lcmdlZFByZWZpeEtleXNbaS0xXS5jb21wYXJlVG8obWVyZ2VkUHJlZml4S2V5c1tpXSkKKyAgICAgICAgICAgICAgICAgICAgICAgID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciB3aGlsZSBjb21wYXJpbmcgcHJlZml4ZWQga2V5cyBAIHN0cmVuZ3RoICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc3RyZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4ocHJldHRpZnkobWVyZ2VkUHJlZml4S2V5c1tpLTFdKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihwcmV0dGlmeShtZXJnZWRQcmVmaXhLZXlzW2ldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKG1lcmdlZFN1ZmZpeEtleXNbaS0xXS5jb21wYXJlVG8obWVyZ2VkU3VmZml4S2V5c1tpXSkgCisgICAgICAgICAgICAgICAgICAgICAgICA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3Igd2hpbGUgY29tcGFyaW5nIHN1ZmZpeGVkIGtleXMgQCBzdHJlbmd0aCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHN0cmVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKHByZXR0aWZ5KG1lcmdlZFN1ZmZpeEtleXNbaS0xXSkpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4ocHJldHRpZnkobWVyZ2VkU3VmZml4S2V5c1tpXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0cmVuZ3RoID09IENvbGxhdG9yLlFVQVRFUk5BUlkpIHsKKyAgICAgICAgICAgICAgICBzdHJlbmd0aCA9IENvbGxhdG9yLklERU5USUNBTDsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdHJlbmd0aCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFZhcmlhYmxlVG9wKCkgCisgICAgeworICAgICAgICAvLyBwYXJzZU5leHRUb2tlbiBpcyBub3QgcmVsZWFzZWQgYXMgcHVibGljIHNvIGkgY3JlYXRlIG15IG93biBydWxlcworICAgICAgICBTdHJpbmcgcnVsZXMgPSAiJiBhIDwgYiA8IGMgPCBkZSA8IGZnICYgaGkgPSBqIjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgU3RyaW5nIHRva2Vuc1tdID0geyJhIiwgImIiLCAiYyIsICJkZSIsICJmZyIsICJoaSIsICJqIiwgImFiIn07CisgICAgICAgICAgICBjb2xsLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCh0cnVlKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgICAgIGludCB2YXJUb3BPcmlnaW5hbCA9IGNvbGwuZ2V0VmFyaWFibGVUb3AoKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBpbnQgdmFyVG9wID0gY29sbC5zZXRWYXJpYWJsZVRvcCh0b2tlbnNbaV0pOworICAgICAgICAgICAgICAgICAgICBpZiAoaSA+IDQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUb2tlbiAiICsgdG9rZW5zW2ldICsgIiBleHBlY3RlZCB0byBmYWlsIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhclRvcCAhPSBjb2xsLmdldFZhcmlhYmxlVG9wKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGFuZCBnZXR0aW5nIHZhcmlhYmxlIHRvcCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbktleSBrZXkxID0gY29sbC5nZXRDb2xsYXRpb25LZXkodG9rZW5zW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBpOyBqICsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25LZXkga2V5MiA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KHRva2Vuc1tqXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5Mi5jb21wYXJlVG8oa2V5MSkgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlNldHRpbmcgdmFyaWFibGUgdG9wIHNob3VsZG4ndCBjaGFuZ2UgdGhlIGNvbXBhcmlzb24gc2VxdWVuY2UiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGUgc29ydG9yZGVyW10gPSBrZXkyLnRvQnl0ZUFycmF5KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc29ydG9yZGVyLmxlbmd0aCA+IDAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGtleTIudG9CeXRlQXJyYXkoKSlbMF0gPiAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlByaW1hcnkgc29ydCBvcmRlciBzaG91bGQgYmUgMCIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgCisgICAgICAgICAgICAgICAgICAgICAgICA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRva2Vuc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIC8qaW50IGNlID0qLyBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGNlMiA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2UyID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUb2tlbiAiICsgdG9rZW5zW2ldICsgIiBub3QgZXhwZWN0ZWQgdG8gZmFpbCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChjb2xsLmdldFZhcmlhYmxlVG9wKCkgIT0gdmFyVG9wT3JpZ2luYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJXaGVuIGV4Y2VwdGlvbiBpcyB0aHJvd24gdmFyaWFibGUgdG9wIHNob3VsZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJub3QgYmUgY2hhbmdlZCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbGwuc2V0VmFyaWFibGVUb3AodmFyVG9wT3JpZ2luYWwpOworICAgICAgICAgICAgICAgIGlmICh2YXJUb3BPcmlnaW5hbCAhPSBjb2xsLmdldFZhcmlhYmxlVG9wKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IHJlc3RvcmUgb2xkIHZhcmlhYmxlIHRvcFxuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBUZXN0aW5nIGNhbGxpbmcgd2l0aCBlcnJvciBzZXQKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29sbC5zZXRWYXJpYWJsZVRvcCgiIik7CisgICAgICAgICAgICAgICAgZXJybG4oIkVtcHR5IHN0cmluZyBzaG91bGQgdGhyb3cgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIik7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBFbXB0eSBzdHJpbmcgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvbGwuc2V0VmFyaWFibGVUb3AobnVsbCk7CisgICAgICAgICAgICAgICAgZXJybG4oIk51bGwgc3RyaW5nIHNob3VsZCB0aHJvdyBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlBBU1M6IG51bGwgc3RyaW5nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFcnJvciBjcmVhdGluZyBSdWxlQmFzZWRDb2xsYXRvciIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RVQ0FSdWxlcygpIAorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIG9ubHkgcm9vdCBsb2NhbGUgY2FuIGhhdmUgZW1wdHkgdGFpbG9yaW5ncyAuLiBub3QgRW5nbGlzaCEKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgCisgICAgICAgICAgICAgICAgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiIiwiIiwiIikpOworICAgICAgICAgICAgU3RyaW5nIHJ1bGUgCisgICAgICAgICAgICAgICAgPSBjb2xsLmdldFJ1bGVzKGZhbHNlKTsKKyAgICAgICAgICAgIGlmICghcnVsZS5lcXVhbHMoIiIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVtcHR5IHJ1bGUgc3RyaW5nIHNob3VsZCBoYXZlIGVtcHR5IHJ1bGVzICIgKyBydWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJ1bGUgPSBjb2xsLmdldFJ1bGVzKHRydWUpOworICAgICAgICAgICAgaWYgKHJ1bGUuZXF1YWxzKCIiKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJVQ0EgcnVsZSBzdHJpbmcgc2hvdWxkIG5vdCBiZSBlbXB0eSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSml0dGVyYnVnIDI3MjYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2hpZnRlZCgpCisgICAgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGNvbGxhdG9yLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCh0cnVlKTsKKyAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgY29sbGF0b3IsICIgYSIsICJhIiwgMCk7IC8vIHdvcmtzIHByb3Blcmx5CisgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIGNvbGxhdG9yLCAiYSIsICJhICIsIDApOyAvLyBpbmNvbnNpc3RlbnQgcmVzdWx0cworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IGZvciBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgcHJldmlvdXMgYW5kIG5leHQgZm9yIHRoZSB3aG9sZSBzZXQgb2YKKyAgICAgKiB1bmljb2RlIGNoYXJhY3RlcnMgd2l0aCBub3JtYWxpemF0aW9uIG9uLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROdW1lcmljQ29sbGF0aW9uKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBiYXNpY1Rlc3RTdHJpbmdzW10gPSB7ImhlbGxvMSIsICJoZWxsbzIiLCAiaGVsbG8xMjM0NTYifTsKKyAgICAgICAgU3RyaW5nIHByZVplcm9UZXN0U3RyaW5nc1tdID0geyJhdmVyeTEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF2ZXJ5MDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF2ZXJ5MDAxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdmVyeTAwMDEifTsKKyAgICAgICAgU3RyaW5nIHRoaXJ0eVR3b0JpdE51bWVyaWNTdHJpbmdzW10gPSB7ImF2ZXJ5NDI5NDk2NzI5NjAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXZlcnk0Mjk0OTY3Mjk2MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdmVyeTQyOTQ5NjcyOTYyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF2ZXJ5NDI5NDk2NzI5NjEwIn07CisgICAgCisgICAgICAgIFN0cmluZyBzdXBwbGVtZW50YXJ5RGlnaXRzW10gPSB7Ilx1RDgzNVx1REZDRSIsIC8vIDAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNVx1REZDRiIsIC8vIDEgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNVx1REZEMCIsIC8vIDIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNVx1REZEMSIsIC8vIDMgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNVx1REZDRlx1RDgzNVx1REZDRSIsIC8vIDEwIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzVcdURGQ0ZcdUQ4MzVcdURGQ0YiLCAvLyAxMSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM1XHVERkNGXHVEODM1XHVERkQwIiwgLy8gMTIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNVx1REZEMFx1RDgzNVx1REZDRSIsIC8vIDIwIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzVcdURGRDBcdUQ4MzVcdURGQ0YiLCAvLyAyMSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM1XHVERkQwXHVEODM1XHVERkQwIiAvLyAyMiAKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgU3RyaW5nIGZvcmVpZ25EaWdpdHNbXSA9IHsiXHUwNjYxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYxXHUwNjYwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYxXHUwNjYyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYxXHUwNjYzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYyXHUwNjYwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYyXHUwNjYyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYyXHUwNjYzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYzXHUwNjYwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYzXHUwNjYyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYzXHUwNjYzIgorICAgICAgICB9OworICAgIAorICAgICAgICAvLyBPcGVuIG91ciBjb2xsYXRvci4KKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCAKKyAgICAgICAgICAgID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgU3RyaW5nIGF0dFtdID0geyJOdW1lcmljQ29sbGF0aW9uIn07CisgICAgICAgIEJvb2xlYW4gdmFsW10gPSB7bmV3IEJvb2xlYW4odHJ1ZSl9OworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKExvY2FsZS5FTkdMSVNILCBiYXNpY1Rlc3RTdHJpbmdzLCBhdHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsKTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXJXaXRoT3B0aW9ucyhMb2NhbGUuRU5HTElTSCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcnR5VHdvQml0TnVtZXJpY1N0cmluZ3MsIGF0dCwgdmFsKTsKKyAgICAgICAgZ2VuZXJpY0xvY2FsZVN0YXJ0ZXJXaXRoT3B0aW9ucyhMb2NhbGUuRU5HTElTSCwgZm9yZWlnbkRpZ2l0cywgYXR0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwpOworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKExvY2FsZS5FTkdMSVNILCBzdXBwbGVtZW50YXJ5RGlnaXRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHQsIHZhbCk7ICAgIAorICAgIAorICAgICAgICAvLyBTZXR0aW5nIHVwIG91ciBjb2xsYXRvciB0byBkbyBkaWdpdHMuCisgICAgICAgIGNvbGwuc2V0TnVtZXJpY0NvbGxhdGlvbih0cnVlKTsKKyAgICAKKyAgICAgICAgLy8gVGVzdGluZyB0aGF0IHByZXBlbmRlZCB6ZXJvZXMgc3RpbGwgeWllbGQgdGhlIGNvcnJlY3QgY29sbGF0aW9uIAorICAgICAgICAvLyBiZWhhdmlvci4gCisgICAgICAgIC8vIFdlIGV4cGVjdCB0aGF0IGV2ZXJ5IGVsZW1lbnQgaW4gb3VyIHN0cmluZ3MgYXJyYXkgd2lsbCBiZSBlcXVhbC4KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwcmVaZXJvVGVzdFN0cmluZ3MubGVuZ3RoIC0gMTsgaSArKykgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgcHJlWmVyb1Rlc3RTdHJpbmdzLmxlbmd0aDsgaiArKykgeworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIGNvbGwsIHByZVplcm9UZXN0U3RyaW5nc1tpXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlWmVyb1Rlc3RTdHJpbmdzW2pdLDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy9jb3ZlciBzZXROdW1lcmljQ29sbGF0aW9uRGVmYXVsdCwgZ2V0TnVtZXJpY0NvbGxhdGlvbgorICAgICAgICBhc3NlcnRUcnVlKCJUaGUgTnVtZXJpYyBDb2xsYXRpb24gc2V0dGluZyBpcyBvbiIsIGNvbGwuZ2V0TnVtZXJpY0NvbGxhdGlvbigpKTsKKyAgICAgICAgY29sbC5zZXROdW1lcmljQ29sbGF0aW9uRGVmYXVsdCgpOworICAgICAgICBsb2dsbigiQWZ0ZXIgc2V0IE51bWVyaWMgdG8gZGVmYXVsdCwgdGhlIHNldHRpbmcgaXM6ICIgKyBjb2xsLmdldE51bWVyaWNDb2xsYXRpb24oKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3QzMjQ5KCkKKyAgICB7CisgICAgICAgIFN0cmluZyBydWxlID0gIiZ4IDwgYSAmeiA8IGEiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlKTsKKyAgICAgICAgICAgIGlmKGNvbGwhPW51bGwpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJDb2xsYXRvciBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbiIpOyAgIAorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFcnJvciBjcmVhdGluZyBSdWxlQmFzZWRDb2xsYXRvciB3aXRoICIgKyBydWxlICsgIiBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGliZXRhbkNvbmZvcm1hbmNlKCkgCisgICAgeyAgCisgICAgICAgIFN0cmluZyB0ZXN0W10gPSB7Ilx1MEZCMlx1MDU5MVx1MEY3MVx1MDA2MSIsICJcdTBGQjJcdTBGNzFcdTAwNjEifTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENvbGxhdG9yIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgY29sbC5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgICAgIGlmIChjb2xsLmNvbXBhcmUodGVzdFswXSwgdGVzdFsxXSkgIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUaWJldGFuIGNvbXBhcmlzb24gZXJyb3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIChSdWxlQmFzZWRDb2xsYXRvciljb2xsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RbMF0sIHRlc3RbMV0sIDApOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFcnJvciBjcmVhdGluZyBVQ0EgY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SjMzNDcoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENvbGxhdG9yIGNvbGwgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRlJFTkNIKTsKKyAgICAgICAgICAgICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sbCkuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKHRydWUpOworICAgICAgICAgICAgaWYgKGNvbGwuY29tcGFyZSgiNiIsICIhNiIpICE9IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiSml0dGVyYnVnIDMzNDcgZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkVycm9yIGNyZWF0aW5nIFVDQSBjb2xsYXRvciIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RQaW55aW5Qcm9ibGVtKCkKKyAgICB7CisgICAgICAgIFN0cmluZyB0ZXN0W10gPSB7ICJcdTRFNTZcdTRFNTZcdTc3NjEiLCAiXHU0RTU2XHU1QjY5XHU1QjUwIiB9OworICAgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcihuZXcgTG9jYWxlKCJ6aCIsICIiLCAiUElOWUlOIiksIHRlc3QpOyAgICAgCisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBsb25nIHRvcEJ5dGUgPSAweEZGMDAwMDAwTDsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBib3R0b21CeXRlID0gMHhGRkw7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgZm91ckJ5dGVzID0gMHhGRkZGRkZGRkw7CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfSU5QVVQgPSAweDIyMDAwMTsgLy8gMiAqIFVuaWNvZGUgcmFuZ2UgKyAyCisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNob3coaW50IGksIEltcGxpY2l0Q0VHZW5lcmF0b3IgaW1wKSB7CisgICAgICAgIGlmIChpID49IDAgJiYgaSA8PSBNQVhfSU5QVVQpIHsKKyAgICAgICAgICAgIGxvZ2xuKFV0aWxpdHkuaGV4KGkpICsgIlx0IiArIFV0aWxpdHkuaGV4KGltcC5nZXRJbXBsaWNpdEZyb21SYXcoaSkgJiBmb3VyQnl0ZXMpKTsKKyAgICAgICAgfSAKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgdGhyb3dFcnJvcihTdHJpbmcgdGl0bGUsIGludCBjcCwgSW1wbGljaXRDRUdlbmVyYXRvciBpbXApIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbih0aXRsZSArICJcdCIgKyBVdGlsaXR5LmhleChjcCwgNikgKyAiXHQiICsgVXRpbGl0eS5oZXgoaW1wLmdldEltcGxpY2l0RnJvbVJhdyhjcCkgJiBmb3VyQnl0ZXMpKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHRocm93RXJyb3IoU3RyaW5nIHRpdGxlLCBsb25nIGNlKSB7CisgICAgICAgIGVycmxuKHRpdGxlICsgIlx0IiArIFV0aWxpdHkuaGV4KGNlICYgZm91ckJ5dGVzKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RJbXBsaWNpdEdlbmVyYXRpb24oKQorICAgIHsKKyAgICAgICAgbG9nbG4oIlN0YXJ0Iik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBJbXBsaWNpdENFR2VuZXJhdG9yIGZvbyA9IG5ldyBJbXBsaWNpdENFR2VuZXJhdG9yKDB4RTAsIDB4RTQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy9pbnQgeCA9IGZvby5nZXRSYXdJbXBsaWNpdCgweEY4MTApOworICAgICAgICAgICAgZm9vLmdldFJhd0Zyb21JbXBsaWNpdCgweEUyMDMwM0U3KTsKKworICAgICAgICAgICAgaW50IGdhcDQgPSBmb28uZ2V0R2FwNCgpOworICAgICAgICAgICAgbG9nbG4oIkdhcDQ6ICIgKyBnYXA0KTsgCisgICAgICAgICAgICBpbnQgZ2FwMyA9IGZvby5nZXRHYXAzKCk7CisgICAgICAgICAgICBpbnQgbWluVHJhaWwgPSBmb28uZ2V0TWluVHJhaWwoKTsKKyAgICAgICAgICAgIGludCBtYXhUcmFpbCA9IGZvby5nZXRNYXhUcmFpbCgpOworICAgICAgICAgICAgbG9uZyBsYXN0ID0gMDsKKyAgICAgICAgICAgIGxvbmcgY3VycmVudDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IE1BWF9JTlBVVDsgKytpKSB7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IGZvby5nZXRJbXBsaWNpdEZyb21SYXcoaSkgJiBmb3VyQnl0ZXM7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBjaGVjayB0aGF0IGl0IHJvdW5kLXRyaXBzIEFORCB0aGF0IGFsbCBpbnRlcnZlbmluZyBvbmVzIGFyZSBpbGxlZ2FsCisgICAgICAgICAgICAgICAgaW50IHJvdW5kdHJpcCA9IGZvby5nZXRSYXdGcm9tSW1wbGljaXQoKGludCljdXJyZW50KTsKKyAgICAgICAgICAgICAgICBpZiAocm91bmR0cmlwICE9IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3dFcnJvcigiTm8gcm91bmR0cmlwIiwgaSwgZm9vKTsgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChsYXN0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsb25nIGogPSBsYXN0ICsgMTsgaiA8IGN1cnJlbnQ7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgcm91bmR0cmlwID0gZm9vLmdldFJhd0Zyb21JbXBsaWNpdCgoaW50KWopOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2UgYW4gZXJyb3IgaWYgaXQgKmRvZXNuJ3QqIGZpbmQgYW4gZXJyb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyb3VuZHRyaXAgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKCJGYWlscyB0byByZWNvZ25pemUgaWxsZWdhbCIsIGopOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIG5vdyBkbyBvdGhlciBjb25zaXN0ZW5jeSBjaGVja3MKKyAgICAgICAgICAgICAgICBsb25nIGxhc3RCb3R0b20gPSBsYXN0ICYgYm90dG9tQnl0ZTsKKyAgICAgICAgICAgICAgICBsb25nIGN1cnJlbnRCb3R0b20gPSBjdXJyZW50ICYgYm90dG9tQnl0ZTsKKyAgICAgICAgICAgICAgICBsb25nIGxhc3RUb3AgPSBsYXN0ICYgdG9wQnl0ZTsKKyAgICAgICAgICAgICAgICBsb25nIGN1cnJlbnRUb3AgPSBjdXJyZW50ICYgdG9wQnl0ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGRvIHNvbWUgY29uc2lzdGVuY3kgY2hlY2tzCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgIGxvbmcgZ2FwID0gY3VycmVudCAtIGxhc3Q7ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEJvdHRvbSAhPSAwKSB7IC8vIGlmIHdlIGFyZSBhIDQtYnl0ZQorICAgICAgICAgICAgICAgICAgLy8gZ2FwIGhhcyB0byBiZSBhdCBsZWFzdCBnYXA0CisgICAgICAgICAgICAgICAgICAvLyBhbmQgZ2FwIGZyb20gbWluVHJhaWwsIG1heFRyYWlsIGhhcyB0byBiZSBhdCBsZWFzdCBnYXA0CisgICAgICAgICAgICAgICAgICBpZiAoZ2FwIDw9IGdhcDQpIGZvby50aHJvd0Vycm9yKCJGYWlsZWQgZ2FwNCBiZXR3ZWVuIiwgaSk7CisgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEJvdHRvbSA8IG1pblRyYWlsICsgZ2FwNCkgZm9vLnRocm93RXJyb3IoIkZhaWxlZCBnYXA0IGJlZm9yZSIsIGkpOworICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRCb3R0b20gPiBtYXhUcmFpbCAtIGdhcDQpIGZvby50aHJvd0Vycm9yKCJGYWlsZWQgZ2FwNCBhZnRlciIsIGkpOworICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gd2UgYXJlIGEgdGhyZWUtYnl0ZQorICAgICAgICAgICAgICAgICAgZ2FwID0gZ2FwID4+IDg7IC8vIG1vdmUgZ2FwIGRvd24gZm9yIGNvbXBhcmlzb24uCisgICAgICAgICAgICAgICAgICBsb25nIGN1cnJlbnQzQm90dG9tID0gKGN1cnJlbnQgPj4gOCkgJiBib3R0b21CeXRlOworICAgICAgICAgICAgICAgICAgaWYgKGdhcCA8PSBnYXAzKSBmb28udGhyb3dFcnJvcigiRmFpbGVkIGdhcDMgYmV0d2VlbiAiLCBpKTsKKyAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50M0JvdHRvbSA8IG1pblRyYWlsICsgZ2FwMykgZm9vLnRocm93RXJyb3IoIkZhaWxlZCBnYXAzIGJlZm9yZSIsIGkpOworICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQzQm90dG9tID4gbWF4VHJhaWwgLSBnYXAzKSBmb28udGhyb3dFcnJvcigiRmFpbGVkIGdhcDMgYWZ0ZXIiLCBpKTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIC8vIHByaW50IG91dCBzb21lIHZhbHVlcyBmb3Igc3BvdC1jaGVja2luZworICAgICAgICAgICAgICAgIGlmIChsYXN0VG9wICE9IGN1cnJlbnRUb3AgfHwgaSA9PSAweDEwMDAwIHx8IGkgPT0gMHgxMTAwMDApIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvdyhpLTMsIGZvbyk7CisgICAgICAgICAgICAgICAgICAgIHNob3coaS0yLCBmb28pOworICAgICAgICAgICAgICAgICAgICBzaG93KGktMSwgZm9vKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG8gbm90aGluZworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3RCb3R0b20gPT0gMCAmJiBjdXJyZW50Qm90dG9tICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIrIHByaW1hcnkgYm91bmRhcnksIDQtYnl0ZSBDRSdzIGJlbG93Iik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdFRvcCAhPSBjdXJyZW50VG9wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiKyBwcmltYXJ5IGJvdW5kYXJ5Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc2hvdyhpLCBmb28pOworICAgICAgICAgICAgICAgICAgICBzaG93KGkrMSwgZm9vKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdyhpKzIsIGZvbyk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIuLi4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbGFzdCA9IGN1cnJlbnQ7CisgICAgICAgICAgICAgICAgaWYoZm9vLmdldENvZGVQb2ludEZyb21SYXcoZm9vLmdldFJhd0Zyb21Db2RlUG9pbnQoaSkpICE9IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIk5vIHJhdyA8LT4gY29kZSBwb2ludCByb3VuZHRyaXAgZm9yICIrVXRpbGl0eS5oZXgoaSkpOworICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgc2hvdyhNQVhfSU5QVVQtMiwgZm9vKTsKKyAgICAgICAgICAgIHNob3coTUFYX0lOUFVULTEsIGZvbyk7CisgICAgICAgICAgICBzaG93KE1BWF9JTlBVVCwgZm9vKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB3YXJubG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgbG9nbG4oIkVuZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyogc3VwZXJjZWRlcyBUZXN0Sjc4NCAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCZWZvcmVQaW55aW4oKSB7CisgICAgICAgIFN0cmluZyBydWxlcyA9IAorICAgICAgICAgICAgIiZbYmVmb3JlIDJdQSA8PCBcdTAxMDEgIDw8PCBcdTAxMDAgPDwgXHUwMEUxIDw8PCBcdTAwQzEgPDwgXHUwMUNFIDw8PCBcdTAxQ0QgPDwgXHUwMEUwIDw8PCBcdTAwQzAiICsKKyAgICAgICAgICAgICImW2JlZm9yZSAyXWUgPDwgXHUwMTEzIDw8PCBcdTAxMTIgPDwgXHUwMEU5IDw8PCBcdTAwQzkgPDwgXHUwMTFCIDw8PCBcdTAxMUEgPDwgXHUwMEU4IDw8PCBcdTAwQzgiICsKKyAgICAgICAgICAgICImW2JlZm9yZSAyXSBpIDw8IFx1MDEyQiA8PDwgXHUwMTJBIDw8IFx1MDBFRCA8PDwgXHUwMENEIDw8IFx1MDFEMCA8PDwgXHUwMUNGIDw8IFx1MDBFQyA8PDwgXHUwMENDIiArCisgICAgICAgICAgICAiJltiZWZvcmUgMl0gbyA8PCBcdTAxNEQgPDw8IFx1MDE0QyA8PCBcdTAwRjMgPDw8IFx1MDBEMyA8PCBcdTAxRDIgPDw8IFx1MDFEMSA8PCBcdTAwRjIgPDw8IFx1MDBEMiIgKworICAgICAgICAgICAgIiZbYmVmb3JlIDJddSA8PCBcdTAxNkIgPDw8IFx1MDE2QSA8PCBcdTAwRkEgPDw8IFx1MDBEQSA8PCBcdTAxRDQgPDw8IFx1MDFEMyA8PCBcdTAwRjkgPDw8IFx1MDBEOSIgKworICAgICAgICAgICAgIiZVIDw8IFx1MDFENiA8PDwgXHUwMUQ1IDw8IFx1MDFEOCA8PDwgXHUwMUQ3IDw8IFx1MDFEQSA8PDwgXHUwMUQ5IDw8IFx1MDFEQyA8PDwgXHUwMURCIDw8IFx1MDBGQyI7CisgICAgCisgICAgICAgIFN0cmluZyB0ZXN0W10gPSB7CisgICAgICAgICAgICAibFx1MDEwMSIsCisgICAgICAgICAgICAibGEiLAorICAgICAgICAgICAgImxcdTAxMDFuIiwKKyAgICAgICAgICAgICJsYW4gIiwKKyAgICAgICAgICAgICJsXHUwMTEzIiwKKyAgICAgICAgICAgICJsZSIsCisgICAgICAgICAgICAibFx1MDExM24iLAorICAgICAgICAgICAgImxlbiIKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgU3RyaW5nIHRlc3QyW10gPSB7CisgICAgICAgICAgICAieFx1MDEwMSIsCisgICAgICAgICAgICAieFx1MDEwMCIsCisgICAgICAgICAgICAiWFx1MDEwMSIsCisgICAgICAgICAgICAiWFx1MDEwMCIsCisgICAgICAgICAgICAieFx1MDBFMSIsCisgICAgICAgICAgICAieFx1MDBDMSIsCisgICAgICAgICAgICAiWFx1MDBFMSIsCisgICAgICAgICAgICAiWFx1MDBDMSIsCisgICAgICAgICAgICAieFx1MDFDRSIsCisgICAgICAgICAgICAieFx1MDFDRCIsCisgICAgICAgICAgICAiWFx1MDFDRSIsCisgICAgICAgICAgICAiWFx1MDFDRCIsCisgICAgICAgICAgICAieFx1MDBFMCIsCisgICAgICAgICAgICAieFx1MDBDMCIsCisgICAgICAgICAgICAiWFx1MDBFMCIsCisgICAgICAgICAgICAiWFx1MDBDMCIsCisgICAgICAgICAgICAieGEiLAorICAgICAgICAgICAgInhBIiwKKyAgICAgICAgICAgICJYYSIsCisgICAgICAgICAgICAiWEEiLAorICAgICAgICAgICAgInhcdTAxMDF4IiwKKyAgICAgICAgICAgICJ4XHUwMTAweCIsCisgICAgICAgICAgICAieFx1MDBFMXgiLAorICAgICAgICAgICAgInhcdTAwQzF4IiwKKyAgICAgICAgICAgICJ4XHUwMUNFeCIsCisgICAgICAgICAgICAieFx1MDFDRHgiLAorICAgICAgICAgICAgInhcdTAwRTB4IiwKKyAgICAgICAgICAgICJ4XHUwMEMweCIsCisgICAgICAgICAgICAieGF4IiwKKyAgICAgICAgICAgICJ4QXgiCisgICAgICAgIH07CisgICAgICAgIC8qIFRPRE86IHBvcnQgYnVpbGRlciBmaXhlcyB0byBiZWZvcmUgKi8KKyAgICAgICAgZ2VuZXJpY1J1bGVzU3RhcnRlcihydWxlcywgdGVzdCk7CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoInpoIiwiIiwiIiksIHRlc3QpOworICAgICAgICBnZW5lcmljUnVsZXNTdGFydGVyKHJ1bGVzLCB0ZXN0Mik7CisgICAgICAgIGdlbmVyaWNMb2NhbGVTdGFydGVyKG5ldyBMb2NhbGUoInpoIiwiIiwiIiksIHRlc3QyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZAorICAgIFRlc3RVcHBlckZpcnN0UXVhdGVybmFyeSgpCisgICAgeworICAgICAgU3RyaW5nIHRlc3RzW10gPSB7ICJCIiwgImIiLCAiQmIiLCAiYkIiIH07CisgICAgICBTdHJpbmdbXSBhdHQgPSB7ICJzdHJlbmd0aCIsICJVcHBlckZpcnN0IiB9OworICAgICAgT2JqZWN0IGF0dFZhbHNbXSA9IHsgbmV3IEludGVnZXIoQ29sbGF0b3IuUVVBVEVSTkFSWSksIG5ldyBCb29sZWFuKHRydWUpIH07CisgICAgICBnZW5lcmljTG9jYWxlU3RhcnRlcldpdGhPcHRpb25zKG5ldyBMb2NhbGUoInJvb3QiLCIiLCIiKSwgdGVzdHMsIGF0dCwgYXR0VmFscyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvbk1vbmtleVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25Nb25rZXlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Q3OGIyMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25Nb25rZXlUZXN0LmphdmEKQEAgLTAsMCArMSwzMTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogY29sbGF0ZS9Db2xsYXRpb25Nb25rZXlUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9tbmt5dHN0LmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIENvbGxhdGlvbk1vbmtleVRlc3QgaXMgYSB0aGlyZCBsZXZlbCB0ZXN0IGNsYXNzLiAgVGhpcyB0ZXN0cyB0aGUgcmFuZG9tIAorICogc3Vic3RyaW5ncyBvZiB0aGUgZGVmYXVsdCB0ZXN0IHN0cmluZ3MgdG8gdmVyaWZ5IGlmIHRoZSBjb21wYXJlIGFuZCAKKyAqIHNvcnQga2V5IGFsZ29yaXRobSB3b3JrcyBjb3JyZWN0bHkuICBGb3IgZXhhbXBsZSwgYW55IHN0cmluZyBpcyBhbHdheXMKKyAqIGxlc3MgdGhhbiB0aGUgc3RyaW5nIGl0c2VsZiBhcHBlbmRlZCB3aXRoIGFueSBjaGFyYWN0ZXIuCisgKi8KKworcHVibGljIGNsYXNzIENvbGxhdGlvbk1vbmtleVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgc291cmNlID0gIi1hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiMmXiRAIjsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IENvbGxhdGlvbk1vbmtleVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb2xsYXRpb25LZXkoKSB7CisgICAgICAgIGlmKHNvdXJjZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiQ29sbGF0aW9uTW9ua2V5VGVzdC5UZXN0Q29sbGF0aW9uS2V5KCk6IHNvdXJjZSBpcyBlbXB0eSAtIElDVV9EQVRBIG5vdCBzZXQgb3IgZGF0YSBtaXNzaW5nPyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIENvbGxhdG9yIG15Q29sbGF0b3I7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgbXlDb2xsYXRvciA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3Igb2YgRU5HTElTSCBsb2NhbGUiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUmFuZG9tIHJhbmQgPSBjcmVhdGVSYW5kb20oKTsgLy8gdXNlIHRlc3QgZnJhbWV3b3JrJ3MgcmFuZG9tIHNlZWQKKyAgICAgICAgaW50IHMgPSByYW5kLm5leHRJbnQoMHg3ZmZmKSAlIHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgaW50IHQgPSByYW5kLm5leHRJbnQoMHg3ZmZmKSAlIHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgaW50IHNsZW4gPSBNYXRoLmFicyhyYW5kLm5leHRJbnQoMHg3ZmZmKSAlIHNvdXJjZS5sZW5ndGgoKSAtIHNvdXJjZS5sZW5ndGgoKSkgJSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIGludCB0bGVuID0gTWF0aC5hYnMocmFuZC5uZXh0SW50KDB4N2ZmZikgJSBzb3VyY2UubGVuZ3RoKCkgLSBzb3VyY2UubGVuZ3RoKCkpICUgc291cmNlLmxlbmd0aCgpOworICAgICAgICBTdHJpbmcgc3VicyA9IHNvdXJjZS5zdWJzdHJpbmcoTWF0aC5taW4ocywgc2xlbiksIE1hdGgubWluKHMgKyBzbGVuLCBzb3VyY2UubGVuZ3RoKCkpKTsKKyAgICAgICAgU3RyaW5nIHN1YnQgPSBzb3VyY2Uuc3Vic3RyaW5nKE1hdGgubWluKHQsIHRsZW4pLCBNYXRoLm1pbih0ICsgdGxlbiwgc291cmNlLmxlbmd0aCgpKSk7CisgICAgCisgICAgICAgIENvbGxhdGlvbktleSBjb2xsYXRpb25LZXkxLCBjb2xsYXRpb25LZXkyOworICAgIAorICAgICAgICBteUNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgY29sbGF0aW9uS2V5MSA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KHN1YnMpOworICAgICAgICBjb2xsYXRpb25LZXkyID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoc3VidCk7CisgICAgICAgIGludCByZXN1bHQgPSBjb2xsYXRpb25LZXkxLmNvbXBhcmVUbyhjb2xsYXRpb25LZXkyKTsgIC8vIFRlcnRpYXJ5CisgICAgICAgIGludCByZXZSZXN1bHQgPSBjb2xsYXRpb25LZXkyLmNvbXBhcmVUbyhjb2xsYXRpb25LZXkxKTsgIC8vIFRlcnRpYXJ5CisgICAgICAgIHJlcG9ydCggc3Vicywgc3VidCwgcmVzdWx0LCByZXZSZXN1bHQpOworICAgIAorICAgICAgICBteUNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIGNvbGxhdGlvbktleTEgPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleShzdWJzKTsKKyAgICAgICAgY29sbGF0aW9uS2V5MiA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KHN1YnQpOworICAgICAgICByZXN1bHQgPSBjb2xsYXRpb25LZXkxLmNvbXBhcmVUbyhjb2xsYXRpb25LZXkyKTsgIC8vIFNlY29uZGFyeQorICAgICAgICByZXZSZXN1bHQgPSBjb2xsYXRpb25LZXkyLmNvbXBhcmVUbyhjb2xsYXRpb25LZXkxKTsgICAvLyBTZWNvbmRhcnkKKyAgICAgICAgcmVwb3J0KCBzdWJzLCBzdWJ0LCByZXN1bHQsIHJldlJlc3VsdCk7CisgICAgCisgICAgICAgIG15Q29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGNvbGxhdGlvbktleTEgPSBteUNvbGxhdG9yLmdldENvbGxhdGlvbktleShzdWJzKTsKKyAgICAgICAgY29sbGF0aW9uS2V5MiA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KHN1YnQpOworICAgICAgICByZXN1bHQgPSBjb2xsYXRpb25LZXkxLmNvbXBhcmVUbyhjb2xsYXRpb25LZXkyKTsgIC8vIFByaW1hcnkKKyAgICAgICAgcmV2UmVzdWx0ID0gY29sbGF0aW9uS2V5Mi5jb21wYXJlVG8oY29sbGF0aW9uS2V5MSk7ICAgLy8gUHJpbWFyeQorICAgICAgICByZXBvcnQoc3Vicywgc3VidCwgcmVzdWx0LCByZXZSZXN1bHQpOworICAgIAorICAgICAgICBTdHJpbmcgbXNnID0gIiI7CisgICAgICAgIFN0cmluZyBhZGRPbmUgPSBzdWJzICsgU3RyaW5nLnZhbHVlT2YoMHhFMDAwKTsKKyAgICAKKyAgICAgICAgY29sbGF0aW9uS2V5MSA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KHN1YnMpOworICAgICAgICBjb2xsYXRpb25LZXkyID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoYWRkT25lKTsKKyAgICAgICAgcmVzdWx0ID0gY29sbGF0aW9uS2V5MS5jb21wYXJlVG8oY29sbGF0aW9uS2V5Mik7CisgICAgICAgIGlmIChyZXN1bHQgIT0gLTEpIHsKKyAgICAgICAgICAgIG1zZyArPSAiQ29sbGF0aW9uS2V5KCI7CisgICAgICAgICAgICBtc2cgKz0gc3ViczsKKyAgICAgICAgICAgIG1zZyArPSAiKSAuTFQuIENvbGxhdGlvbktleSgiOworICAgICAgICAgICAgbXNnICs9IGFkZE9uZTsKKyAgICAgICAgICAgIG1zZyArPSAiKSBGYWlsZWQuIjsKKyAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgbXNnID0gIiI7CisgICAgICAgIHJlc3VsdCA9IGNvbGxhdGlvbktleTIuY29tcGFyZVRvKGNvbGxhdGlvbktleTEpOworICAgICAgICBpZiAocmVzdWx0ICE9IDEpIHsKKyAgICAgICAgICAgIG1zZyArPSAiQ29sbGF0aW9uS2V5KCI7CisgICAgICAgICAgICBtc2cgKz0gYWRkT25lOworICAgICAgICAgICAgbXNnICs9ICIpIC5HVC4gQ29sbGF0aW9uS2V5KCI7CisgICAgICAgICAgICBtc2cgKz0gc3ViczsKKyAgICAgICAgICAgIG1zZyArPSAiKSBGYWlsZWQuIjsKKyAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcGVyZm9ybSBtb25rZXkgdGVzdHMgdXNpbmcgQ29sbGF0b3IuY29tcGFyZQorICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJlKCkgeworICAgICAgICBpZihzb3VyY2UubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvbk1vbmtleVRlc3QuVGVzdENvbXBhcmUoKTogc291cmNlIGlzIGVtcHR5IC0gSUNVX0RBVEEgbm90IHNldCBvciBkYXRhIG1pc3Npbmc/Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIENvbGxhdG9yIG15Q29sbGF0b3I7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgbXlDb2xsYXRvciA9IENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImVuIiwgIlVTIikpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJFUlJPUjogaW4gY3JlYXRpb24gb2YgY29sbGF0b3Igb2YgRU5HTElTSCBsb2NhbGUiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyogU2VlZCB0aGUgcmFuZG9tLW51bWJlciBnZW5lcmF0b3Igd2l0aCBjdXJyZW50IHRpbWUgc28gdGhhdAorICAgICAgICAgKiB0aGUgbnVtYmVycyB3aWxsIGJlIGRpZmZlcmVudCBldmVyeSB0aW1lIHdlIHJ1bi4KKyAgICAgICAgICovCisgICAgICAgIAorICAgICAgICBSYW5kb20gcmFuZCA9IGNyZWF0ZVJhbmRvbSgpOyAvLyB1c2UgdGVzdCBmcmFtZXdvcmsncyByYW5kb20gc2VlZAorICAgICAgICBpbnQgcyA9IHJhbmQubmV4dEludCgweDdmZmYpICUgc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgdCA9IHJhbmQubmV4dEludCgweDdmZmYpICUgc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgc2xlbiA9IE1hdGguYWJzKHJhbmQubmV4dEludCgweDdmZmYpICUgc291cmNlLmxlbmd0aCgpIC0gc291cmNlLmxlbmd0aCgpKSAlIHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgaW50IHRsZW4gPSBNYXRoLmFicyhyYW5kLm5leHRJbnQoMHg3ZmZmKSAlIHNvdXJjZS5sZW5ndGgoKSAtIHNvdXJjZS5sZW5ndGgoKSkgJSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIFN0cmluZyBzdWJzID0gc291cmNlLnN1YnN0cmluZyhNYXRoLm1pbihzLCBzbGVuKSwgTWF0aC5taW4ocyArIHNsZW4sIHNvdXJjZS5sZW5ndGgoKSkpOworICAgICAgICBTdHJpbmcgc3VidCA9IHNvdXJjZS5zdWJzdHJpbmcoTWF0aC5taW4odCwgdGxlbiksIE1hdGgubWluKHQgKyB0bGVuLCBzb3VyY2UubGVuZ3RoKCkpKTsKKyAgICAKKyAgICAgICAgbXlDb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGludCByZXN1bHQgPSBteUNvbGxhdG9yLmNvbXBhcmUoc3Vicywgc3VidCk7ICAvLyBUZXJ0aWFyeQorICAgICAgICBpbnQgcmV2UmVzdWx0ID0gbXlDb2xsYXRvci5jb21wYXJlKHN1YnQsIHN1YnMpOyAgLy8gVGVydGlhcnkKKyAgICAgICAgcmVwb3J0KHN1YnMsIHN1YnQsIHJlc3VsdCwgcmV2UmVzdWx0KTsKKyAgICAKKyAgICAgICAgbXlDb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICByZXN1bHQgPSBteUNvbGxhdG9yLmNvbXBhcmUoc3Vicywgc3VidCk7ICAvLyBTZWNvbmRhcnkKKyAgICAgICAgcmV2UmVzdWx0ID0gbXlDb2xsYXRvci5jb21wYXJlKHN1YnQsIHN1YnMpOyAgLy8gU2Vjb25kYXJ5CisgICAgICAgIHJlcG9ydChzdWJzLCBzdWJ0LCByZXN1bHQsIHJldlJlc3VsdCk7CisgICAgCisgICAgICAgIG15Q29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIHJlc3VsdCA9IG15Q29sbGF0b3IuY29tcGFyZShzdWJzLCBzdWJ0KTsgIC8vIFByaW1hcnkKKyAgICAgICAgcmV2UmVzdWx0ID0gbXlDb2xsYXRvci5jb21wYXJlKHN1YnQsIHN1YnMpOyAgLy8gUHJpbWFyeQorICAgICAgICByZXBvcnQoc3Vicywgc3VidCwgcmVzdWx0LCByZXZSZXN1bHQpOworICAgIAorICAgICAgICBTdHJpbmcgbXNnID0gIiI7CisgICAgICAgIFN0cmluZyBhZGRPbmUgPSBzdWJzICsgU3RyaW5nLnZhbHVlT2YoMHhFMDAwKTsKKyAgICAKKyAgICAgICAgcmVzdWx0ID0gbXlDb2xsYXRvci5jb21wYXJlKHN1YnMsIGFkZE9uZSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gLTEpIHsKKyAgICAgICAgICAgIG1zZyArPSAiVGVzdCA6ICI7CisgICAgICAgICAgICBtc2cgKz0gc3ViczsKKyAgICAgICAgICAgIG1zZyArPSAiIC5MVC4gIjsKKyAgICAgICAgICAgIG1zZyArPSBhZGRPbmU7CisgICAgICAgICAgICBtc2cgKz0gIiBGYWlsZWQuIjsKKyAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgbXNnID0gIiI7CisgICAgICAgIHJlc3VsdCA9IG15Q29sbGF0b3IuY29tcGFyZShhZGRPbmUsIHN1YnMpOworICAgICAgICBpZiAocmVzdWx0ICE9IDEpIHsKKyAgICAgICAgICAgIG1zZyArPSAiVGVzdCA6ICI7CisgICAgICAgICAgICBtc2cgKz0gYWRkT25lOworICAgICAgICAgICAgbXNnICs9ICIgLkdULiAiOworICAgICAgICAgICAgbXNnICs9IHN1YnM7CisgICAgICAgICAgICBtc2cgKz0gIiBGYWlsZWQuIjsKKyAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCByZXBvcnQoU3RyaW5nIHMsIFN0cmluZyB0LCBpbnQgcmVzdWx0LCBpbnQgcmV2UmVzdWx0KSB7CisgICAgICAgIGlmIChyZXZSZXN1bHQgIT0gLXJlc3VsdCkgeworICAgICAgICAgICAgU3RyaW5nIG1zZyA9ICIiOworICAgICAgICAgICAgbXNnICs9IHM7IAorICAgICAgICAgICAgbXNnICs9ICIgYW5kICI7CisgICAgICAgICAgICBtc2cgKz0gdDsKKyAgICAgICAgICAgIG1zZyArPSAiIHJvdW5kIHRyaXAgY29tcGFyaXNvbiBmYWlsZWQiOworICAgICAgICAgICAgbXNnICs9ICIgKHJlc3VsdCAiICsgcmVzdWx0ICsgIiwgcmV2ZXJzZSBSZXN1bHQgIiArIHJldlJlc3VsdCArICIpIjsgCisgICAgICAgICAgICBlcnJsbihtc2cpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSdWxlcygpIHsKKyAgICAgICAgU3RyaW5nIHRlc3RTb3VyY2VDYXNlc1tdID0geworICAgICAgICAgICAgIlx1MDA2MVx1MDA2Mlx1MDA3YSIsIAorICAgICAgICAgICAgIlx1MDA2MVx1MDA2Mlx1MDA3YSIsIAorICAgICAgICB9OworICAgIAorICAgICAgICBTdHJpbmcgdGVzdFRhcmdldENhc2VzW10gPSB7CisgICAgICAgICAgICAiXHUwMDYxXHUwMDYyXHUwMGU0IiwKKyAgICAgICAgICAgICJcdTAwNjFcdTAwNjJcdTAwNjFcdTAzMDgiLAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgaW50IGk9MDsKKyAgICAgICAgbG9nbG4oIkRlbW8gVGVzdCAxIDogQ3JlYXRlIGEgbmV3IHRhYmxlIGNvbGxhdGlvbiB3aXRoIHJ1bGVzIFwiJiB6IDwgMHgwMGU0XCIiKTsKKyAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiKSk7CisgICAgICAgIFN0cmluZyBiYXNlUnVsZXMgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWNvbCkuZ2V0UnVsZXMoKTsKKyAgICAgICAgU3RyaW5nIG5ld1J1bGVzID0gIiAmIHogPCAiOworICAgICAgICBuZXdSdWxlcyA9IGJhc2VSdWxlcyArIG5ld1J1bGVzICsgU3RyaW5nLnZhbHVlT2YoMHgwMGU0KTsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgbXlDb2xsYXRpb24gPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IobmV3UnVsZXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCAiRGVtbyBUZXN0IDEgVGFibGUgQ29sbGF0aW9uIG9iamVjdCBjcmVhdGlvbiBmYWlsZWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvcihpPTA7IGk8MjsgaSsrKXsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIC0xKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiRGVtbyBUZXN0IDIgOiBDcmVhdGUgYSBuZXcgdGFibGUgY29sbGF0aW9uIHdpdGggcnVsZXMgXCImIHogPCBhIDB4MDMwOFwiIik7CisgICAgICAgIG5ld1J1bGVzID0gIiI7CisgICAgICAgIG5ld1J1bGVzID0gYmFzZVJ1bGVzICsgIiAmIHogPCBhIiArIFN0cmluZy52YWx1ZU9mKDB4MDMwOCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihuZXdSdWxlcyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbiggIkRlbW8gVGVzdCAxIFRhYmxlIENvbGxhdGlvbiBvYmplY3QgY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGZvcihpPTA7IGk8MjsgaSsrKXsKKyAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIC0xKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIGRvVGVzdChSdWxlQmFzZWRDb2xsYXRvciBteUNvbGxhdGlvbiwgU3RyaW5nIG15c291cmNlLCBTdHJpbmcgdGFyZ2V0LCBpbnQgcmVzdWx0KSB7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkoc291cmNlKTsKKyAgICAgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHRhcmdldCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiU29ydEtleSBnZW5lcmF0aW9uIEZhaWxlZC5cbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGludCBrZXlSZXN1bHQgPSBzb3J0S2V5MS5jb21wYXJlVG8oc29ydEtleTIpOworICAgICAgICByZXBvcnRDUmVzdWx0KCBteXNvdXJjZSwgdGFyZ2V0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0ICk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHJlcG9ydENSZXN1bHQoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKSB7CisgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCA8IC0xIHx8IGV4cGVjdGVkUmVzdWx0ID4gMSkgeworICAgICAgICAgICAgZXJybG4oIioqKioqIGludmFsaWQgY2FsbCB0byByZXBvcnRDUmVzdWx0ICoqKioiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szICYmICFpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgU3RyaW5nIGFwcGVuZENvbXBhcmVSZXN1bHQoaW50IHJlc3VsdCwgU3RyaW5nIHRhcmdldCkgeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7ICAvL0xFU1MKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDApIHsgIC8vRVFVQUwKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7ICAvL0dSRUFURVIKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblJlZ3Jlc3Npb25UZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uUmVncmVzc2lvblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWJhY2YyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblJlZ3Jlc3Npb25UZXN0LmphdmEKQEAgLTAsMCArMSwxMTk2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjIuMSA6IGNvbGxhdGUvQ29sbGF0aW9uUmVncmVzc2lvblRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L3JlZ2NvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uUmVncmVzc2lvblRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbmV3IENvbGxhdGlvblJlZ3Jlc3Npb25UZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNDg0NDYKKyAgICAvLworICAgIC8vIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5yZXNldCgpIGRvZXNuJ3Qgd29yaworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNDg0NDYoKSB7CisgICAgICAgIGZpbmFsIFN0cmluZyB0ZXN0MSA9ICJYRklMRSBXaGF0IHN1YnNldCBvZiBhbGwgcG9zc2libGUgdGVzdCBjYXNlcyBoYXMgdGhlIGhpZ2hlc3QgcHJvYmFiaWxpdHkgb2YgZGV0ZWN0aW5nIHRoZSBtb3N0IGVycm9ycz8iOworICAgICAgICAvL2ZpbmFsIFN0cmluZyB0ZXN0MiA9ICJYZl9pbGUgV2hhdCBzdWJzZXQgb2YgYWxsIHBvc3NpYmxlIHRlc3QgY2FzZXMgaGFzIHRoZSBsb3dlc3QgcHJvYmFiaWxpdHkgb2YgZGV0ZWN0aW5nIHRoZSBsZWFzdCBlcnJvcnM/IjsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZW5fdXMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpMSA9IGVuX3VzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0MSk7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpMiA9IGVuX3VzLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0MSk7CisgICAgICAgIAorICAgICAgICBpZiAoaTEgPT0gbnVsbCB8fCBpMiA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGNyZWF0ZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IncyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIHdoaWxlIChpMS5uZXh0KCkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgLy8KKyAgICAgICAgfQorICAgIAorICAgICAgICBpMS5yZXNldCgpOworICAgICAgICBhc3NlcnRFcXVhbChpMSwgaTIpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGFzc2VydEVxdWFsKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpMSwgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGkyKSB7CisgICAgICAgIGludCBjMSwgYzIsIGNvdW50ID0gMDsKKyAgICAKKyAgICAgICAgZG8geworICAgICAgICAgICAgYzEgPSBpMS5uZXh0KCk7CisgICAgICAgICAgICBjMiA9IGkyLm5leHQoKTsKKyAgICAKKyAgICAgICAgICAgIGlmIChjMSAhPSBjMikgeworICAgICAgICAgICAgICAgIFN0cmluZyBtc2cgPSAiIjsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbXNnMSA9ICIgICAgIjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtc2cgKz0gbXNnMSArIGNvdW50OworICAgICAgICAgICAgICAgIG1zZyArPSAiOiBzdHJlbmd0aCgweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGMxKTsKKyAgICAgICAgICAgICAgICBtc2cgKz0gIikgIT0gc3RyZW5ndGgoMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjMik7CisgICAgICAgICAgICAgICAgbXNnICs9ICIpIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKz0gMTsKKyAgICAgICAgfSB3aGlsZSAoYzEgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUik7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA1MTg2NgorICAgIC8vCisgICAgLy8gQ29sbGF0b3IgLT4gcnVsZXMgLT4gQ29sbGF0b3Igcm91bmQtdHJpcCBicm9rZW4gZm9yIGV4cGFuZGluZyBjaGFyYWN0ZXJzCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1MTg2NigpIHsKKyAgICAgICBTdHJpbmcgcnVsZXMgPSAiPCBvICYgb2UgLG9cdTMwODAmIG9lICxcdTE1MzAgLE8mIE9FICxPXHUzMDgwJiBPRSAsXHUxNTIwPCBwICxQIjsKKworICAgICAgICAvLyBCdWlsZCBhIGNvbGxhdG9yIGNvbnRhaW5pbmcgZXhwYW5kaW5nIGNoYXJhY3RlcnMKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYzEgPSBudWxsOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMxID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsIHRvIGNyZWF0ZSBSdWxlQmFzZWRDb2xsYXRvciB3aXRoIHJ1bGVzOiIgKyBydWxlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gQnVpbGQgYW5vdGhlciB1c2luZyB0aGUgcnVsZXMgZnJvbSAgdGhlIGZpcnN0CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMyID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMyID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKGMxLmdldFJ1bGVzKCkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggcnVsZXM6IiArIHJ1bGVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBNYWtlIHN1cmUgdGhleSdyZSB0aGUgc2FtZQorICAgICAgICBpZiAoIShjMS5nZXRSdWxlcygpLmVxdWFscyhjMi5nZXRSdWxlcygpKSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJSdWxlcyBhcmUgbm90IGVxdWFsIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDUzNjM2CisgICAgLy8KKyAgICAvLyBDb2xsYXRvciB0aGlua3MgImJsYWNrLWJpcmQiID09ICJibGFjayIKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDUzNjM2KCkgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgaWYgKGVuX3VzLmVxdWFscygiYmxhY2tfYmlyZCIsICJibGFjayIpKSB7CisgICAgICAgICAgICBlcnJsbigiYmxhY2stYmlyZCA9PSBibGFjayIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA1NDIzOAorICAgIC8vCisgICAgLy8gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHdpbGwgbm90IHdvcmsgY29ycmVjdGx5IGlmIHRoZSBhc3NvY2lhdGVkCisgICAgLy8gQ29sbGF0b3Igb2JqZWN0J3MgbW9kZSBpcyBjaGFuZ2VkCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1NDIzOCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgZmluYWwgY2hhcltdIGNoYXJzMyA9IHsweDYxLCAweDAwRkMsIDB4NjIsIDB4NjUsIDB4NjMsIDB4NmIsIDB4MjAsIDB4NDcsIDB4NzIsIDB4MDBGNiwgMHgwMERGLCAweDY1LCAweDIwLCAweDRjLCAweDAwRkMsIDB4NjIsIDB4NjMsIDB4NmIsIDB9OworICAgICAgICBmaW5hbCBTdHJpbmcgdGVzdDMgPSBuZXcgU3RyaW5nKGNoYXJzMyk7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgCisgICAgICAgIC8vIE5PVEU6IFRoZSBKYXZhIGNvZGUgdXNlcyBlbl91cyB0byBjcmVhdGUgdGhlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcnMKKyAgICAgICAgLy8gYnV0IEknbSBwcmV0dHkgc3VyZSB0aGF0J3Mgd3JvbmcsIHNvIEkndmUgY2hhbmdlZCB0aGlzIHRvIHVzZSBjLgorICAgICAgICBjLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpMSA9IGMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3QzKTsKKyAgICAgICAgbG9nbG4oIk9mZnNldDoiICsgaTEuZ2V0T2Zmc2V0KCkpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNTQ3MzQKKyAgICAvLworICAgIC8vIENvbGxhdG9yOjpJREVOVElDQUwgZG9jdW1lbnRlZCBidXQgbm90IGltcGxlbWVudGVkCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1NDczNCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgCisgICAgICAgICAgICAvL0hlcmUncyB0aGUgb3JpZ2luYWwgSmF2YToKKyAgICAKKyAgICAgICAgICAgIFN0cmluZ1tdIGRlY29tcCA9IHsKKyAgICAgICAgICAgICAgICAiXHUwMDAxIiwgICAiPCIsICAgICJcdTAwMDIiLAorICAgICAgICAgICAgICAgICJcdTAwMDEiLCAgICI9IiwgICAgIlx1MDAwMSIsCisgICAgICAgICAgICAgICAgIkFcdTAwMDEiLCAgIj4iLCAgICAiflx1MDAwMiIsICAgICAgLy8gRW5zdXJlIEEgYW5kIH4gYXJlIG5vdCBjb21wYXJlZCBiaXR3aXNlCisgICAgICAgICAgICAgICAgIlx1MDBDMCIsICAgIj0iLCAgICAiQVx1MDMwMCIsICAgICAgLy8gRGVjb21wIHNob3VsZCBtYWtlIHRoZXNlIGVxdWFsCisgICAgICAgICAgICB9OworICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLklERU5USUNBTCk7CisgICAgICAgIGMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIGNvbXBhcmVBcnJheShjLCBkZWNvbXApOworICAgIH0KKyAgICAKKyAgICB2b2lkIGNvbXBhcmVBcnJheShDb2xsYXRvciBjLCBTdHJpbmdbXSB0ZXN0cykgeworICAgICAgICAKKyAgICAgICAgaW50IGV4cGVjdGVkUmVzdWx0ID0gMDsKKyAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkgKz0gMykgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IHRlc3RzW2ldOworICAgICAgICAgICAgU3RyaW5nIGNvbXBhcmlzb24gPSB0ZXN0c1tpICsgMV07CisgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gdGVzdHNbaSArIDJdOworICAgIAorICAgICAgICAgICAgaWYgKGNvbXBhcmlzb24uZXF1YWxzKCI8IikpIHsKKyAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCA9IC0xOworICAgICAgICAgICAgfSBlbHNlIGlmIChjb21wYXJpc29uLmVxdWFscygiPiIpKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQgPSAxOworICAgICAgICAgICAgfSBlbHNlIGlmIChjb21wYXJpc29uLmVxdWFscygiPSIpKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQgPSAwOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQm9ndXMgY29tcGFyaXNvbiBzdHJpbmcgXCIiICsgY29tcGFyaXNvbiArICJcIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvZ2xuKCJpID0gIiArIGkpOworICAgICAgICAgICAgbG9nbG4oc291cmNlKTsKKyAgICAgICAgICAgIGxvZ2xuKHRhcmdldCk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvbXBhcmVSZXN1bHQgPSBjLmNvbXBhcmUoc291cmNlLCB0YXJnZXQpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbihlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSA9IG51bGwsIHRhcmdldEtleSA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNvdXJjZUtleSA9IGMuZ2V0Q29sbGF0aW9uS2V5KHNvdXJjZSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZG4ndCBnZXQgY29sbGF0aW9uS2V5IGZvciBzb3VyY2UiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0S2V5ID0gYy5nZXRDb2xsYXRpb25LZXkodGFyZ2V0KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvdWxkbid0IGdldCBjb2xsYXRpb25LZXkgZm9yIHRhcmdldCIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvdXJjZUtleS5jb21wYXJlVG8odGFyZ2V0S2V5KTsKKyAgICAgICAgICAgIHJlcG9ydENSZXN1bHQoIHNvdXJjZSwgdGFyZ2V0LCBzb3VyY2VLZXksIHRhcmdldEtleSwgY29tcGFyZVJlc3VsdCwga2V5UmVzdWx0LCBjb21wYXJlUmVzdWx0LCBleHBlY3RlZFJlc3VsdCApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKXsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgU3RyaW5nIGFwcGVuZENvbXBhcmVSZXN1bHQoaW50IHJlc3VsdCwgU3RyaW5nIHRhcmdldCkgeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7ICAvL0xFU1MKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDApIHsgIC8vRVFVQUwKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7ICAvL0dSRUFURVIKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA1NDczNgorICAgIC8vCisgICAgLy8gRnVsbCBEZWNvbXBvc2l0aW9uIG1vZGUgbm90IGltcGxlbWVudGVkCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1NDczNigvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAKKyAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICBjLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHRlc3RzID0geyAiXHVGQjRGIiwgIlx1MDAzZCIsICJcdTA1RDBcdTA1REMiIH07ICAvLyBBbGVmLUxhbWVkIHZzLiBBbGVmLCBMYW1lZAorICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNTg2MTMKKyAgICAvLworICAgIC8vIENvbGxhdG9yOjpjcmVhdGVJbnN0YW5jZSgpIGNhdXNlcyBhbiBBcnJheUluZGV4T3V0b2ZCb3VuZHNFeGNlcHRpb24gZm9yIEtvcmVhbiAgCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1ODYxMygvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgLy8gQ3JlYXRpbmcgYSBkZWZhdWx0IGNvbGxhdG9yIGRvZXNuJ3Qgd29yayB3aGVuIEtvcmVhbiBpcyB0aGUgZGVmYXVsdAorICAgICAgICAvLyBsb2NhbGUKKyAgICAgICAgCisgICAgICAgIExvY2FsZSBvbGREZWZhdWx0ID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQobmV3IExvY2FsZSgia28iLCAiIikpOworICAgIAorICAgICAgICBDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJlbiIsICJVUyIpKTsKKyAgICAKKyAgICAgICAgaWYgKGMgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkNvdWxkIG5vdCBjcmVhdGUgYSBLb3JlYW4gY29sbGF0b3IiKTsKKyAgICAgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KG9sZERlZmF1bHQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBTaW5jZSB0aGUgZml4IHRvIHRoaXMgYnVnIHdhcyB0byB0dXJuIG9mZiBkZWNvbXBvc2l0aW9uIGZvciBLb3JlYW4gY29sbGF0b3JzLAorICAgICAgICAvLyBlbnN1cmUgdGhhdCdzIHdoYXQgd2UgZ290CisgICAgICAgIGlmIChjLmdldERlY29tcG9zaXRpb24oKSAhPSBDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKSB7CisgICAgICAgICAgZXJybG4oIkRlY29tcG9zaXRpb24gaXMgbm90IHNldCB0byBOT19ERUNPTVBPU0lUSU9OIGZvciBLb3JlYW4gY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChvbGREZWZhdWx0KTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDU5ODIwCisgICAgLy8KKyAgICAvLyBSdWxlQmFzZWRDb2xsYXRvci5nZXRSdWxlcyBkb2VzIG5vdCByZXR1cm4gdGhlIGV4YWN0IHBhdHRlcm4gYXMgaW5wdXQKKyAgICAvLyBmb3IgZXhwYW5kaW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU5ODIwKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gIjwgYSA8IGIgLCBjL2EgPCBkIDwgeiI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGJ1aWxkaW5nIGEgY29sbGF0b3IuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKCBjLmdldFJ1bGVzKCkuaW5kZXhPZigiYy9hIikgPT0gLTEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJyZXR1cm5lZCBydWxlcyBkbyBub3QgY29udGFpbiAnYy9hJyIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDA2MDE1NAorICAgIC8vCisgICAgLy8gTWVyZ2VDb2xsYXRpb246OmZpeEVudHJ5IGJyb2tlbiBmb3IgIiYgSCA8IFx1MDEzMSwgXHUwMTMwLCBpLCBJIgorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjAxNTQoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFN0cmluZyBydWxlcyA9IjwgZywgRyA8IGgsIEggPCBpLCBJIDwgaiwgSiAmIEggPCBcdTAxMzEsIFx1MDEzMCwgaSwgSSI7CisgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgICAgIGVycmxuKCJmYWlsdXJlIGJ1aWxkaW5nIGNvbGxhdG9yLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIGMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKTsKKyAgICAKKyAgICAgICAgU3RyaW5nW10gdGVydGlhcnkgPSB7CisgICAgICAgICAgICAiQSIsICAgICAgICAiPCIsICAgICJCIiwKKyAgICAgICAgICAgICJIIiwgICAgICAgICI8IiwgICAgIlx1MDEzMSIsCisgICAgICAgICAgICAiSCIsICAgICAgICAiPCIsICAgICJJIiwKKyAgICAgICAgICAgICJcdTAxMzEiLCAgICI8IiwgICAgIlx1MDEzMCIsCisgICAgICAgICAgICAiXHUwMTMwIiwgICAiPCIsICAgICJpIiwKKyAgICAgICAgICAgICJcdTAxMzAiLCAgICI+IiwgICAgIkgiLAorICAgICAgICB9OworICAgIAorICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIHRlcnRpYXJ5KTsKKyAgICAKKyAgICAgICAgU3RyaW5nW10gc2Vjb25kYXJ5ID0geworICAgICAgICAgICAgIkgiLCAgICAgICAgIjwiLCAgICAiSSIsCisgICAgICAgICAgICAiXHUwMTMxIiwgICAiPSIsICAgICJcdTAxMzAiLAorICAgICAgICB9OworICAgIAorICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBjb21wYXJlQXJyYXkoYywgc2Vjb25kYXJ5KTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDYyNDE4CisgICAgLy8KKyAgICAvLyBTZWNvbmRhcnkvVGVydGlhcnkgY29tcGFyaXNvbiBpbmNvcnJlY3QgaW4gRnJlbmNoIFNlY29uZGFyeQorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNjI0MTgoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBjb2xsYXRvciBmb3IgTG9jYWxlOjpGUkFOQ0UoKSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAKKyAgICAgICAgU3RyaW5nW10gdGVzdHMgPSB7CisgICAgICAgICAgICAgICAgInBcdTAwZWFjaGUiLCAgICAiPCIsICAgICJwXHUwMGU5Y2hcdTAwZTkiLCAgICAvLyBDb21wYXJpbmcgYWNjZW50cyBmcm9tIGVuZCwgcFx1MDBlOWNoXHUwMGU5IGlzIGdyZWF0ZXIKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIHRlc3RzKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDY1NTQwCisgICAgLy8KKyAgICAvLyBDb2xsYXRvcjo6Y29tcGFyZSgpIG1ldGhvZCBicm9rZW4gaWYgZWl0aGVyIHN0cmluZyBjb250YWlucyBzcGFjZXMKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDY1NTQwKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgaWYgKGVuX3VzLmNvbXBhcmUoImFiY2QgZSIsICJhYmNkIGYiKSA9PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiJ2FiY2QgZScgPT0gJ2FiY2QgZiciKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNjYxODkKKyAgICAvLworICAgIC8vIFVuaWNvZGUgY2hhcmFjdGVycyBuZWVkIHRvIGJlIHJlY3Vyc2l2ZWx5IGRlY29tcG9zZWQgdG8gZ2V0IHRoZQorICAgIC8vIGNvcnJlY3QgcmVzdWx0LiBGb3IgZXhhbXBsZSwKKyAgICAvLyB1MUVCMSAtPiBcdTAxMDMgKyBcdTAzMDAgLT4gYSArIFx1MDMwNiArIFx1MDMwMC4KKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDY2MTg5KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBmaW5hbCAgU3RyaW5nIHRlc3QxID0gIlx1MUVCMSI7CisgICAgICAgIGZpbmFsICBTdHJpbmcgdGVzdDIgPSAiXHUwMDYxXHUwMzA2XHUwMzAwIjsKKyAgICAKKyAgICAgICAgLy8gTk9URTogVGhlIGphdmEgY29kZSB1c2VkIGVuX3VzIHRvIGNyZWF0ZSB0aGUKKyAgICAgICAgLy8gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yJ3MuIEknbSBwcmV0dHkgc3VyZSB0aGF0CisgICAgICAgIC8vIHdhcyB3cm9uZywgc28gSSd2ZSBjaGFuZ2UgdGhlIGNvZGUgdG8gdXNlIGMxIGFuZCBjMgorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjMSA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgYzEuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpMSA9IGMxLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0MSk7CisgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMyID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjMi5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaTIgPSBjMi5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodGVzdDIpOworICAgIAorICAgICAgICBhc3NlcnRFcXVhbChpMSwgaTIpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNjY2OTYKKyAgICAvLworICAgIC8vIEZyZW5jaCBzZWNvbmRhcnkgY29sbGF0aW9uIGNoZWNraW5nIGF0IHRoZSBlbmQgb2YgY29tcGFyZSBpdGVyYXRpb24gZmFpbHMKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDY2Njk2KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGNyZWF0aW5nIGNvbGxhdG9yIGZvciBMb2NhbGU6OmdldEZyYW5jZSgpIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgIAorICAgICAgICBTdHJpbmdbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgICJcdTAwZTAiLCAgICI+IiwgICAgICJcdTAxZmEiLCAgICAgICAvLyBhLWdyYXZlIDwgIEEtcmluZy1hY3V0ZQorICAgICAgICB9OyAgICAKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIHRlc3RzKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDc2Njc2CisgICAgLy8KKyAgICAvLyBCYWQgY2Fub25pY2FsaXphdGlvbiBvZiBzYW1lLWNsYXNzIGNvbWJpbmluZyBjaGFyYWN0ZXJzCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3NjY3NigvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgLy8gVGhlc2UgY29tYmluaW5nIGNoYXJhY3RlcnMgYXJlIGFsbCBpbiB0aGUgc2FtZSBjbGFzcywgc28gdGhleSBzaG91bGQgbm90CisgICAgICAgIC8vIGJlIHJlb3JkZXJlZCwgYW5kIHRoZXkgc2hvdWxkIGNvbXBhcmUgYXMgdW5lcXVhbC4KKyAgICAgICAgZmluYWwgU3RyaW5nIHMxID0gIlx1MDA0MVx1MDMwMVx1MDMwMlx1MDMwMCI7CisgICAgICAgIGZpbmFsIFN0cmluZyBzMiA9ICJcdTAwNDFcdTAzMDJcdTAzMDBcdTAzMDEiOworICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAKKyAgICAgICAgaWYgKGMuY29tcGFyZShzMSxzMikgPT0gMCkgeworICAgICAgICAgICAgZXJybG4oIlNhbWUtY2xhc3MgY29tYmluaW5nIGNoYXJzIHdlcmUgcmVvcmRlcmVkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBAYnVnIDQwNzg1ODgKKyAgICAvLworICAgIC8vIFJ1bGVCYXNlZENvbGxhdG9yIGJyZWFrcyBvbiAiPCBhIDwgYmIiIHJ1bGUKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDc4NTg4KC8qIGNoYXIgKnBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciByYmMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmJjID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCI8IGEgPCBiYiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3IuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaW50IHJlc3VsdCA9IHJiYy5jb21wYXJlKCJhIiwiYmIiKTsKKyAgICAKKyAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiQ29tcGFyZShhLGJiKSByZXR1cm5lZCAiICsgcmVzdWx0ICsgIjsgZXhwZWN0ZWQgLTEiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwNzkyMzEKKyAgICAvLworICAgIC8vIFJ1bGVCYXNlZENvbGxhdG9yOjpvcGVyYXRvcj09KE5VTEwpIHRocm93cyBOdWxsUG9pbnRlckV4Y2VwdGlvbgorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzkyMzEoLyogY2hhciogcGFyICovKSB7ICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBlbl91cyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmIChlbl91cy5lcXVhbHMobnVsbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZW5fdXMuZXF1YWxzKG51bGwpIHJldHVybmVkIHRydWUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJlbl91cy5lcXVhbHMobnVsbCkgdGhyZXcgIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDgxODY2CisgICAgLy8KKyAgICAvLyBDb21iaW5pbmcgY2hhcmFjdGVycyBpbiBkaWZmZXJlbnQgY2xhc3NlcyBub3QgcmVvcmRlcmVkIHByb3Blcmx5LgorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwODE4NjYoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIC8vIFRoZXNlIGNvbWJpbmluZyBjaGFyYWN0ZXJzIGFyZSBhbGwgaW4gZGlmZmVyZW50IGNsYXNzZXMsCisgICAgICAgIC8vIHNvIHRoZXkgc2hvdWxkIGJlIHJlb3JkZXJlZCBhbmQgdGhlIHN0cmluZ3Mgc2hvdWxkIGNvbXBhcmUgYXMgZXF1YWwuCisgICAgICAgIFN0cmluZyBzMSA9ICJcdTAwNDFcdTAzMDBcdTAzMTZcdTAzMjdcdTAzMTUiOworICAgICAgICBTdHJpbmcgczIgPSAiXHUwMDQxXHUwMzI3XHUwMzE2XHUwMzE1XHUwMzAwIjsKKyAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIAorICAgICAgICAvLyBOb3cgdGhhdCB0aGUgZGVmYXVsdCBjb2xsYXRvcnMgYXJlIHNldCB0byBOT19ERUNPTVBPU0lUSU9OCisgICAgICAgIC8vIChhcyBhIHJlc3VsdCBvZiBmaXhpbmcgYnVnIDQxMTQwNzcpLCB3ZSBtdXN0IHNldCBpdCBleHBsaWNpdGx5CisgICAgICAgIC8vIHdoZW4gd2UncmUgdGVzdGluZyByZW9yZGVyaW5nIGJlaGF2aW9yLiAgLS0gbHdlcm5lciwgNS81Lzk4CisgICAgICAgIGMuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIGlmIChjLmNvbXBhcmUoczEsczIpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJDb21iaW5pbmcgY2hhcnMgd2VyZSBub3QgcmVvcmRlcmVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDg3MjQxCisgICAgLy8KKyAgICAvLyBzdHJpbmcgY29tcGFyaXNvbiBlcnJvcnMgaW4gU2NhbmRpbmF2aWFuIGNvbGxhdG9ycworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwODcyNDEoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIExvY2FsZSBkYV9ESyA9IG5ldyBMb2NhbGUoImRhIiwgIkRLIik7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoZGFfREspOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgY29sbGF0b3IgZm9yIGRhX0RLIGxvY2FsZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgU3RyaW5nIHRlc3RzW10gPSB7CisgICAgICAgICAgICAiXHUwMDdhIiwgICAgICAgIlx1MDAzYyIsICJcdTAwRTYiLCAgICAgICAgICAgIC8vIHogICAgICAgIDwgYWUKKyAgICAgICAgICAgICJcdTAwNjFcdTAzMDgiLCAiXHUwMDNjIiwgIlx1MDA2MVx1MDMwQSIsICAgICAgLy8gYS11bmxhdXQgPCBhLXJpbmcKKyAgICAgICAgICAgICJcdTAwNTkiLCAgICAgICAiXHUwMDNjIiwgIlx1MDA3NVx1MDMwOCIsICAgICAgLy8gWSAgICAgICAgPCB1LXVtbGF1dAorICAgICAgICB9OworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdHMpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQwODcyNDMKKyAgICAvLworICAgIC8vIENvbGxhdGlvbktleSB0YWtlcyBpZ25vcmFibGUgc3RyaW5ncyBpbnRvIGFjY291bnQgd2hlbiBpdCBzaG91bGRuJ3QKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDg3MjQzKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgU3RyaW5nIHRlc3RzW10gPSB7CisgICAgICAgICAgICAiXHUwMDMxXHUwMDMyXHUwMDMzIiwgIlx1MDAzZCIsICJcdTAwMzFcdTAwMzJcdTAwMzNcdTAwMDEiICAgIC8vIDEgMiAzICA9ICAxIDIgMyBjdHJsLUEKKyAgICAgICAgfTsKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIHRlc3RzKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDkyMjYwCisgICAgLy8KKyAgICAvLyBNdS9taWNybyBjb25mbGljdAorICAgIC8vIE1pY3JvIHN5bWJvbCBhbmQgZ3JlZWsgbG93ZXJjYXNlIGxldHRlciBNdSBzaG91bGQgc29ydCBpZGVudGljYWxseQorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTIyNjAoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIExvY2FsZSBlbCA9IG5ldyBMb2NhbGUoImVsIiwgIiIpOworICAgICAgICBDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShlbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSBjb2xsYXRvciBmb3IgZWwgbG9jYWxlLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIFRoZXNlIG5vdyBoYXZlIHRlcnRpYXJ5IGRpZmZlcmVuY2VzIGluIFVDQQorICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIFN0cmluZyB0ZXN0c1tdID0geworICAgICAgICAgICAgIlx1MDBCNSIsICJcdTAwM2QiLCAiXHUwM0JDIiwKKyAgICAgICAgfTsKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIHRlc3RzKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MDk1MzE2CisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5NTMxNigvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgTG9jYWxlIGVsX0dSID0gbmV3IExvY2FsZSgiZWwiLCAiR1IiKTsKKyAgICAgICAgQ29sbGF0b3IgYyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoZWxfR1IpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgY29sbGF0b3IgZm9yIGVsX0dSIGxvY2FsZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8vIFRoZXNlIG5vdyBoYXZlIHRlcnRpYXJ5IGRpZmZlcmVuY2VzIGluIFVDQQorICAgICAgICAvL2MtPnNldFN0cmVuZ3RoKENvbGxhdG9yOjpURVJUSUFSWSk7CisgICAgICAgIC8vYy0+c2V0QXR0cmlidXRlKFVDT0xfU1RSRU5HVEgsIFVDT0xfU0VDT05EQVJZLCBzdGF0dXMpOworICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIFN0cmluZyB0ZXN0c1tdID0geworICAgICAgICAgICAgIlx1MDNENCIsICJcdTAwM2QiLCAiXHUwM0FCIiwKKyAgICAgICAgfTsKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIHRlc3RzKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MTAxOTQwCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwMTk0MCgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IG51bGw7CisgICAgICAgIFN0cmluZyBydWxlcyA9ICI8IGEgPCBiIjsKKyAgICAgICAgU3RyaW5nIG5vdGhpbmcgPSAiIjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaSA9IGMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKG5vdGhpbmcpOworICAgICAgICBpLnJlc2V0KCk7CisgICAgICAgIGlmIChpLm5leHQoKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICBlcnJsbigibmV4dCBkaWQgbm90IHJldHVybiBOVUxMT1JERVIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQxMDM0MzYKKyAgICAvLworICAgIC8vIENvbGxhdG9yOjpjb21wYXJlIG5vdCBoYW5kbGluZyBzcGFjZXMgcHJvcGVybHkKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTAzNDM2KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgU3RyaW5nW10gdGVzdHMgPSB7CisgICAgICAgICAgICAiXHUwMDY2XHUwMDY5XHUwMDZjXHUwMDY1IiwgIlx1MDAzYyIsICJcdTAwNjZcdTAwNjlcdTAwNmNcdTAwNjVcdTAwMjBcdTAwNjFcdTAwNjNcdTAwNjNcdTAwNjVcdTAwNzNcdTAwNzMiLAorICAgICAgICAgICAgIlx1MDA2Nlx1MDA2OVx1MDA2Y1x1MDA2NSIsICJcdTAwM2MiLCAiXHUwMDY2XHUwMDY5XHUwMDZjXHUwMDY1XHUwMDYxXHUwMDYzXHUwMDYzXHUwMDY1XHUwMDczXHUwMDczIiwKKyAgICAgICAgfTsKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIHRlc3RzKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MTE0MDc2CisgICAgLy8KKyAgICAvLyBDb2xsYXRpb24gbm90IFVuaWNvZGUgY29uZm9ybWFudCB3aXRoIEhhbmd1bCBzeWxsYWJsZXMKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTE0MDc2KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gV2l0aCBDYW5vbmljYWwgZGVjb21wb3NpdGlvbiwgSGFuZ3VsIHN5bGxhYmxlcyBzaG91bGQgZ2V0IGRlY29tcG9zZWQKKyAgICAgICAgLy8gaW50byBKYW1vLCBidXQgSmFtbyBjaGFyYWN0ZXJzIHNob3VsZCBub3QgYmUgZGVjb21wb3NlZCBpbnRvCisgICAgICAgIC8vIGNvbmpvaW5pbmcgSmFtbworICAgICAgICAvLworICAgICAgICBTdHJpbmcgdGVzdDFbXSA9IHsKKyAgICAgICAgICAgICJcdWQ0ZGIiLCAiXHUwMDNkIiwgIlx1MTExMVx1MTE3MVx1MTFiNiIKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgYy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgY29tcGFyZUFycmF5KGMsIHRlc3QxKTsKKyAgICAKKyAgICAgICAgLy8gRnJvbSBVVFIgIzE1OgorICAgICAgICAvLyAqSW4gZWFybGllciB2ZXJzaW9ucyBvZiBVbmljb2RlLCBqYW1vIGNoYXJhY3RlcnMgbGlrZSBrc2YKKyAgICAgICAgLy8gIGhhZCBjb21wYXRpYmlsaXR5IG1hcHBpbmdzIHRvIGtmICsgc2YuIFRoZXNlIG1hcHBpbmdzIHdlcmUgCisgICAgICAgIC8vICByZW1vdmVkIGluIFVuaWNvZGUgMi4xLjkgdG8gZW5zdXJlIHRoYXQgSGFuZ3VsIHN5bGxhYmxlcyBhcmUgbWFpbnRhaW5lZC4pCisgICAgICAgIC8vIFRoYXQgaXMsIHRoZSBmb2xsb3dpbmcgdGVzdCBpcyBvYnNvbGV0ZSBhcyBvZiAyLjEuOQorICAgIAorICAgIC8vb2Jzb2xldGUtICAgIC8vIFdpdGggRnVsbCBkZWNvbXBvc2l0aW9uLCBpdCBzaG91bGQgZ28gYWxsIHRoZSB3YXkgZG93biB0bworICAgIC8vb2Jzb2xldGUtICAgIC8vIGNvbmpvaW5pbmcgSmFtbyBjaGFyYWN0ZXJzLgorICAgIC8vb2Jzb2xldGUtICAgIC8vCisgICAgLy9vYnNvbGV0ZS0gICAgc3RhdGljIGNvbnN0IFVDaGFyIHRlc3QyW11bQ29sbGF0aW9uUmVncmVzc2lvblRlc3Q6Ok1BWF9UT0tFTl9MRU5dID0KKyAgICAvL29ic29sZXRlLSAgICB7CisgICAgLy9vYnNvbGV0ZS0gICAgICAgIHsweGQ0ZGIsIDB9LCB7MHgzZCwgMH0sIHsweDExMTEsIDB4MTE2ZSwgMHgxMTc1LCAweDExYWYsIDB4MTFjMiwgMH0KKyAgICAvL29ic29sZXRlLSAgICB9OworICAgIC8vb2Jzb2xldGUtCisgICAgLy9vYnNvbGV0ZS0gICAgYy0+c2V0RGVjb21wb3NpdGlvbihOb3JtYWxpemVyOjpERUNPTVBfQ09NUEFUKTsKKyAgICAvL29ic29sZXRlLSAgICBjb21wYXJlQXJyYXkoKmMsIHRlc3QyLCBBUlJBWV9MRU5HVEgodGVzdDIpKTsKKyAgICB9CisKKyAgICAvLyBAYnVnIDQxMTQwNzcKKyAgICAvLworICAgIC8vIENvbGxhdGlvbiB3aXRoIGRlY29tcG9zaXRpb24gb2ZmIGRvZXNuJ3Qgd29yayBmb3IgRXVyb3BlIAorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTQwNzcoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIC8vIEVuc3VyZSB0aGF0IHdlIGdldCB0aGUgc2FtZSByZXN1bHRzIHdpdGggZGVjb21wb3NpdGlvbiBvZmYKKyAgICAgICAgLy8gYXMgd2UgZG8gd2l0aCBpdCBvbi4uLi4KKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgYyA9IChSdWxlQmFzZWRDb2xsYXRvcikgQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgYy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIFN0cmluZyB0ZXN0MVtdID0geworICAgICAgICAgICAgIlx1MDBDMCIsICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwM2QiLCAiXHUwMDQxXHUwMzAwIiwgICAgICAgICAgICAvLyBTaG91bGQgYmUgZXF1aXZhbGVudAorICAgICAgICAgICAgIlx1MDA3MFx1MDBlYVx1MDA2M1x1MDA2OFx1MDA2NSIsICJcdTAwM2UiLCAiXHUwMDcwXHUwMGU5XHUwMDYzXHUwMDY4XHUwMGU5IiwKKyAgICAgICAgICAgICJcdTAyMDQiLCAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDNkIiwgIlx1MDA0NVx1MDMwRiIsCisgICAgICAgICAgICAiXHUwMWZhIiwgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAzZCIsICJcdTAwNDFcdTAzMGFcdTAzMDEiLCAgICAvLyBhLXJpbmctYWN1dGUgLT4gYS1yaW5nLCBhY3V0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgLT4gYSwgcmluZywgYWN1dGUKKyAgICAgICAgICAgICJcdTAwNDFcdTAzMDBcdTAzMTYiLCAgICAgICAgICAgICAiXHUwMDNjIiwgIlx1MDA0MVx1MDMxNlx1MDMwMCIgICAgICAgIC8vIE5vIHJlb3JkZXJpbmcgLS0+IHVuZXF1YWwKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgYy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdDEpOworICAgIAorICAgICAgICBTdHJpbmcgdGVzdDJbXSA9IHsKKyAgICAgICAgICAgICJcdTAwNDFcdTAzMDBcdTAzMTYiLCAiXHUwMDNkIiwgIlx1MDA0MVx1MDMxNlx1MDMwMCIgICAgICAvLyBSZW9yZGVyaW5nIC0tPiBlcXVhbAorICAgICAgICB9OworICAgIAorICAgICAgICBjLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBjb21wYXJlQXJyYXkoYywgdGVzdDIpOworICAgIH0KKyAgICAKKyAgICAvLyBAYnVnIDQxMjQ2MzIKKyAgICAvLworICAgIC8vIENvbGxhdG9yOjpnZXRDb2xsYXRpb25LZXkgd2FzIGhhbmdpbmcgb24gY2VydGFpbiBjaGFyYWN0ZXIgc2VxdWVuY2VzCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyNDYzMigvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgQ29sbGF0b3IgY29sbCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkpBUEFOKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgdG8gY3JlYXRlIGNvbGxhdG9yIGZvciBMb2NhbGU6OkpBUEFOIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHRlc3QgPSAiXHUwMDQxXHUwMzA4XHUwMDYyXHUwMDYzIjsKKyAgICAgICAgQ29sbGF0aW9uS2V5IGtleTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGtleSA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KHRlc3QpOworICAgICAgICAgICAgbG9nbG4oa2V5LmdldFNvdXJjZVN0cmluZygpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb2xsYXRpb25LZXkgY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDEzMjczNgorICAgIC8vCisgICAgLy8gc29ydCBvcmRlciBvZiBmcmVuY2ggd29yZHMgd2l0aCBtdWx0aXBsZSBhY2NlbnRzIGhhcyBlcnJvcnMKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTMyNzM2KC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICBDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGMgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgICAgIGMuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgYSBjb2xsYXRvciBmb3IgTG9jYWxlOjpnZXRGcmFuY2UoKSIpOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyB0ZXN0MVtdID0geworICAgICAgICAgICAgIlx1MDA2NVx1MDMwMFx1MDA2NVx1MDMwMSIsICJcdTAwM2MiLCAiXHUwMDY1XHUwMzAxXHUwMDY1XHUwMzAwIiwKKyAgICAgICAgICAgICJcdTAwNjVcdTAzMDBcdTAzMDEiLCAgICAgICAiXHUwMDNjIiwgIlx1MDA2NVx1MDMwMVx1MDMwMCIsCisgICAgICAgIH07CisgICAgICAgIGNvbXBhcmVBcnJheShjLCB0ZXN0MSk7CisgICAgfQorICAgIAorICAgIC8vIEBidWcgNDEzMzUwOQorICAgIC8vCisgICAgLy8gVGhlIHNvcnRpbmcgdXNpbmcgamF2YS50ZXh0LkNvbGxhdGlvbktleSBpcyBub3QgaW4gdGhlIGV4YWN0IG9yZGVyCisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEzMzUwOSgvKiBjaGFyKiBwYXIgKi8pIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgZW5fdXMgPSAoUnVsZUJhc2VkQ29sbGF0b3IpIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIFN0cmluZyB0ZXN0MVtdID0geworICAgICAgICAgICAgIlx1MDA0NVx1MDA3OFx1MDA2M1x1MDA2NVx1MDA3MFx1MDA3NFx1MDA2OVx1MDA2Zlx1MDA2ZSIsICJcdTAwM2MiLCAiXHUwMDQ1XHUwMDc4XHUwMDYzXHUwMDY1XHUwMDcwXHUwMDc0XHUwMDY5XHUwMDZmXHUwMDZlXHUwMDQ5XHUwMDZlXHUwMDQ5XHUwMDZlXHUwMDY5XHUwMDc0XHUwMDY5XHUwMDYxXHUwMDZjXHUwMDY5XHUwMDdhXHUwMDY1XHUwMDcyXHUwMDQ1XHUwMDcyXHUwMDcyXHUwMDZmXHUwMDcyIiwKKyAgICAgICAgICAgICJcdTAwNDdcdTAwNzJcdTAwNjFcdTAwNzBcdTAwNjhcdTAwNjlcdTAwNjNcdTAwNzMiLCAgICAgICAiXHUwMDNjIiwgIlx1MDA0N1x1MDA3Mlx1MDA2MVx1MDA3MFx1MDA2OFx1MDA2OVx1MDA2M1x1MDA3M1x1MDA0NVx1MDA2ZVx1MDA3Nlx1MDA2OVx1MDA3Mlx1MDA2Zlx1MDA2ZVx1MDA2ZFx1MDA2NVx1MDA2ZVx1MDA3NCIsCisgICAgICAgICAgICAiXHUwMDUzXHUwMDc0XHUwMDcyXHUwMDY5XHUwMDZlXHUwMDY3IiwgICAgICAgICAgICAgICAgICAgIlx1MDAzYyIsICJcdTAwNTNcdTAwNzRcdTAwNzJcdTAwNjlcdTAwNmVcdTAwNjdcdTAwNDJcdTAwNzVcdTAwNjZcdTAwNjZcdTAwNjVcdTAwNzIiLAorICAgICAgICB9OworICAgIAorICAgICAgICBjb21wYXJlQXJyYXkoZW5fdXMsIHRlc3QxKTsKKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MTM5NTcyCisgICAgLy8KKyAgICAvLyBnZXRDb2xsYXRpb25LZXkgdGhyb3dzIGV4Y2VwdGlvbiBmb3Igc3BhbmlzaCB0ZXh0IAorICAgIC8vIENhbm5vdCByZXByb2R1Y2UgdGhpcyBidWcgb24gMS4yLCBob3dldmVyIGl0IERPRVMgZmFpbCBvbiAxLjEuNgorICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxMzk1NzIoLyogY2hhciogcGFyICovKSB7CisgICAgICAgIC8vCisgICAgICAgIC8vIENvZGUgcGFzdGVkIHN0cmFpZ2h0IGZyb20gdGhlIGJ1ZyByZXBvcnQKKyAgICAgICAgLy8gKGFuZCB0aGVuIHRyYW5zbGF0ZWQgdG8gQysrIDstKQorICAgICAgICAvLworICAgICAgICAvLyBjcmVhdGUgc3BhbmlzaCBsb2NhbGUgYW5kIGNvbGxhdG9yCisgICAgICAgIExvY2FsZSBsID0gbmV3IExvY2FsZSgiZXMiLCAiZXMiKTsKKyAgICAgICAgQ29sbGF0b3IgY29sID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBjcmVhdGUgYSBjb2xsYXRvciBmb3IgZXNfZXMgbG9jYWxlLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIENvbGxhdGlvbktleSBrZXkgPSBudWxsOworICAgICAgICAvLyB0aGlzIHNwYW5pc2ggcGhyYXNlIGtpbGxzIGl0IQorICAgICAgICB0cnkgeworICAgICAgICAgICAga2V5ID0gY29sLmdldENvbGxhdGlvbktleSgiTm9tYnJlIERlIE9iamV0byIpOworICAgICAgICAgICAgbG9nbG4oInNvdXJjZToiICsga2V5LmdldFNvdXJjZVN0cmluZygpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBjcmVhdGluZyBDb2xsYXRpb25LZXkgZm9yIFwiTm9tYnJlIERlIE9qYmV0b1wiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gQGJ1ZyA0MTQxNjQwCisgICAgLy8KKyAgICAvLyBTdXBwb3J0IGZvciBTd2VkaXNoIGdvbmUgaW4gMS4xLjYgKENhbid0IGNyZWF0ZSBTd2VkaXNoIGNvbGxhdG9yKSAKKyAgICAvLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQxNjQwKC8qIGNoYXIqIHBhciAqLykgeworICAgICAgICAvLworICAgICAgICAvLyBSYXRoZXIgdGhhbiBqdXN0IGNyZWF0aW5nIGEgU3dlZGlzaCBjb2xsYXRvciwgd2UgbWlnaHQgYXMgd2VsbAorICAgICAgICAvLyB0cnkgdG8gaW5zdGFudGlhdGUgb25lIGZvciBldmVyeSBsb2NhbGUgYXZhaWxhYmxlIG9uIHRoZSBzeXN0ZW0KKyAgICAgICAgLy8gaW4gb3JkZXIgdG8gcHJldmVudCB0aGlzIHNvcnQgb2YgYnVnIGZyb20gY3JvcHBpbmcgdXAgaW4gdGhlIGZ1dHVyZQorICAgICAgICAvLworICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gQ29sbGF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKQorICAgICAgICB7CisgICAgICAgICAgICBDb2xsYXRvciBjID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYyA9IENvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgICAgIGxvZ2xuKCJzb3VyY2U6ICIgKyBjLmdldFN0cmVuZ3RoKCkpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbXNnID0gIiI7CisgICAgICAgICAgICAgICAgbXNnICs9ICJDb3VsZCBub3QgY3JlYXRlIGNvbGxhdG9yIGZvciBsb2NhbGUgIjsKKyAgICAgICAgICAgICAgICBtc2cgKz0gbG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICAgICAgICAgIGVycmxuKG1zZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrTGlzdE9yZGVyKFN0cmluZ1tdIHNvcnRlZExpc3QsIENvbGxhdG9yIGMpIHsKKyAgICAgICAgLy8gdGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBzcGVjaWZpZWQgQ29sbGF0b3IgdG8gbWFrZSBzdXJlIHRoZQorICAgICAgICAvLyBwYXNzZWQtaW4gbGlzdCBpcyBhbHJlYWR5IHNvcnRlZCBpbnRvIGFzY2VuZGluZyBvcmRlcgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvcnRlZExpc3QubGVuZ3RoIC0gMTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoYy5jb21wYXJlKHNvcnRlZExpc3RbaV0sIHNvcnRlZExpc3RbaSArIDFdKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkxpc3Qgb3V0IG9mIG9yZGVyIGF0IGVsZW1lbnQgIyIgKyBpICsgIjogIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBzb3J0ZWRMaXN0W2ldICsgIiA+PSAiCisgICAgICAgICAgICAgICAgICAgICAgICArIHNvcnRlZExpc3RbaSArIDFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTcxOTc0KCkgeworICAgICAgICAvLyB0ZXN0IEZyZW5jaCBhY2NlbnQgb3JkZXJpbmcgbW9yZSB0aG9yb3VnaGx5CisgICAgICAgIC8qU3RyaW5nW10gZnJlbmNoTGlzdCA9IHsKKyAgICAgICAgICAgICJcdTAwNzVcdTAwNzUiLCAgICAgLy8gdSB1CisgICAgICAgICAgICAiXHUwMGZjXHUwMDc1IiwgICAgIC8vIHUtdW1sYXV0IHUKKyAgICAgICAgICAgICJcdTAxZDZcdTAwNzUiLCAgICAgLy8gdS11bWxhdXQtbWFjcm9uIHUKKyAgICAgICAgICAgICJcdTAxNmJcdTAwNzUiLCAgICAgLy8gdS1tYWNyb24gdQorICAgICAgICAgICAgIlx1MWU3Ylx1MDA3NSIsICAgICAvLyB1LW1hY3Jvbi11bWxhdXQgdQorICAgICAgICAgICAgIlx1MDA3NVx1MDBmYyIsICAgICAvLyB1IHUtdW1sYXV0CisgICAgICAgICAgICAiXHUwMGZjXHUwMGZjIiwgICAgIC8vIHUtdW1sYXV0IHUtdW1sYXV0CisgICAgICAgICAgICAiXHUwMWQ2XHUwMGZjIiwgICAgIC8vIHUtdW1sYXV0LW1hY3JvbiB1LXVtbGF1dAorICAgICAgICAgICAgIlx1MDE2Ylx1MDBmYyIsICAgICAvLyB1LW1hY3JvbiB1LXVtbGF1dAorICAgICAgICAgICAgIlx1MWU3Ylx1MDBmYyIsICAgICAvLyB1LW1hY3Jvbi11bWxhdXQgdS11bWxhdXQKKyAgICAgICAgICAgICJcdTAwNzVcdTAxZDYiLCAgICAgLy8gdSB1LXVtbGF1dC1tYWNyb24KKyAgICAgICAgICAgICJcdTAwZmNcdTAxZDYiLCAgICAgLy8gdS11bWxhdXQgdS11bWxhdXQtbWFjcm9uCisgICAgICAgICAgICAiXHUwMWQ2XHUwMWQ2IiwgICAgIC8vIHUtdW1sYXV0LW1hY3JvbiB1LXVtbGF1dC1tYWNyb24KKyAgICAgICAgICAgICJcdTAxNmJcdTAxZDYiLCAgICAgLy8gdS1tYWNyb24gdS11bWxhdXQtbWFjcm9uCisgICAgICAgICAgICAiXHUxZTdiXHUwMWQ2IiwgICAgIC8vIHUtbWFjcm9uLXVtbGF1dCB1LXVtbGF1dC1tYWNyb24KKyAgICAgICAgICAgICJcdTAwNzVcdTAxNmIiLCAgICAgLy8gdSB1LW1hY3JvbgorICAgICAgICAgICAgIlx1MDBmY1x1MDE2YiIsICAgICAvLyB1LXVtbGF1dCB1LW1hY3JvbgorICAgICAgICAgICAgIlx1MDFkNlx1MDE2YiIsICAgICAvLyB1LXVtbGF1dC1tYWNyb24gdS1tYWNyb24KKyAgICAgICAgICAgICJcdTAxNmJcdTAxNmIiLCAgICAgLy8gdS1tYWNyb24gdS1tYWNyb24KKyAgICAgICAgICAgICJcdTFlN2JcdTAxNmIiLCAgICAgLy8gdS1tYWNyb24tdW1sYXV0IHUtbWFjcm9uCisgICAgICAgICAgICAiXHUwMDc1XHUxZTdiIiwgICAgIC8vIHUgdS1tYWNyb24tdW1sYXV0CisgICAgICAgICAgICAiXHUwMGZjXHUxZTdiIiwgICAgIC8vIHUtdW1sYXV0IHUtbWFjcm9uLXVtbGF1dAorICAgICAgICAgICAgIlx1MDFkNlx1MWU3YiIsICAgICAvLyB1LXVtbGF1dC1tYWNyb24gdS1tYWNyb24tdW1sYXV0CisgICAgICAgICAgICAiXHUwMTZiXHUxZTdiIiwgICAgIC8vIHUtbWFjcm9uIHUtbWFjcm9uLXVtbGF1dAorICAgICAgICAgICAgIlx1MWU3Ylx1MWU3YiIgICAgICAvLyB1LW1hY3Jvbi11bWxhdXQgdS1tYWNyb24tdW1sYXV0CisgICAgICAgIH07CisgICAgICAgIENvbGxhdG9yIGZyZW5jaCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5GUkVOQ0gpOworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIEZyZW5jaCBvcmRlci4uLiIpOworICAgICAgICBjaGVja0xpc3RPcmRlcihmcmVuY2hMaXN0LCBmcmVuY2gpOworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIEZyZW5jaCBvcmRlciB3aXRob3V0IGRlY29tcG9zaXRpb24uLi4iKTsKKyAgICAgICAgZnJlbmNoLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTik7CisgICAgICAgIGNoZWNrTGlzdE9yZGVyKGZyZW5jaExpc3QsIGZyZW5jaCk7Ki8KKworICAgICAgICBTdHJpbmdbXSBlbmdsaXNoTGlzdCA9IHsKKyAgICAgICAgICAgICJcdTAwNzVcdTAwNzUiLCAgICAgLy8gdSB1CisgICAgICAgICAgICAiXHUwMDc1XHUwMGZjIiwgICAgIC8vIHUgdS11bWxhdXQKKyAgICAgICAgICAgICJcdTAwNzVcdTAxZDYiLCAgICAgLy8gdSB1LXVtbGF1dC1tYWNyb24KKyAgICAgICAgICAgICJcdTAwNzVcdTAxNmIiLCAgICAgLy8gdSB1LW1hY3JvbgorICAgICAgICAgICAgIlx1MDA3NVx1MWU3YiIsICAgICAvLyB1IHUtbWFjcm9uLXVtbGF1dAorICAgICAgICAgICAgIlx1MDBmY1x1MDA3NSIsICAgICAvLyB1LXVtbGF1dCB1CisgICAgICAgICAgICAiXHUwMGZjXHUwMGZjIiwgICAgIC8vIHUtdW1sYXV0IHUtdW1sYXV0CisgICAgICAgICAgICAiXHUwMGZjXHUwMWQ2IiwgICAgIC8vIHUtdW1sYXV0IHUtdW1sYXV0LW1hY3JvbgorICAgICAgICAgICAgIlx1MDBmY1x1MDE2YiIsICAgICAvLyB1LXVtbGF1dCB1LW1hY3JvbgorICAgICAgICAgICAgIlx1MDBmY1x1MWU3YiIsICAgICAvLyB1LXVtbGF1dCB1LW1hY3Jvbi11bWxhdXQKKyAgICAgICAgICAgICJcdTAxZDZcdTAwNzUiLCAgICAgLy8gdS11bWxhdXQtbWFjcm9uIHUKKyAgICAgICAgICAgICJcdTAxZDZcdTAwZmMiLCAgICAgLy8gdS11bWxhdXQtbWFjcm9uIHUtdW1sYXV0CisgICAgICAgICAgICAiXHUwMWQ2XHUwMWQ2IiwgICAgIC8vIHUtdW1sYXV0LW1hY3JvbiB1LXVtbGF1dC1tYWNyb24KKyAgICAgICAgICAgICJcdTAxZDZcdTAxNmIiLCAgICAgLy8gdS11bWxhdXQtbWFjcm9uIHUtbWFjcm9uCisgICAgICAgICAgICAiXHUwMWQ2XHUxZTdiIiwgICAgIC8vIHUtdW1sYXV0LW1hY3JvbiB1LW1hY3Jvbi11bWxhdXQKKyAgICAgICAgICAgICJcdTAxNmJcdTAwNzUiLCAgICAgLy8gdS1tYWNyb24gdQorICAgICAgICAgICAgIlx1MDE2Ylx1MDBmYyIsICAgICAvLyB1LW1hY3JvbiB1LXVtbGF1dAorICAgICAgICAgICAgIlx1MDE2Ylx1MDFkNiIsICAgICAvLyB1LW1hY3JvbiB1LXVtbGF1dC1tYWNyb24KKyAgICAgICAgICAgICJcdTAxNmJcdTAxNmIiLCAgICAgLy8gdS1tYWNyb24gdS1tYWNyb24KKyAgICAgICAgICAgICJcdTAxNmJcdTFlN2IiLCAgICAgLy8gdS1tYWNyb24gdS1tYWNyb24tdW1sYXV0CisgICAgICAgICAgICAiXHUxZTdiXHUwMDc1IiwgICAgIC8vIHUtbWFjcm9uLXVtbGF1dCB1CisgICAgICAgICAgICAiXHUxZTdiXHUwMGZjIiwgICAgIC8vIHUtbWFjcm9uLXVtbGF1dCB1LXVtbGF1dAorICAgICAgICAgICAgIlx1MWU3Ylx1MDFkNiIsICAgICAvLyB1LW1hY3Jvbi11bWxhdXQgdS11bWxhdXQtbWFjcm9uCisgICAgICAgICAgICAiXHUxZTdiXHUwMTZiIiwgICAgIC8vIHUtbWFjcm9uLXVtbGF1dCB1LW1hY3JvbgorICAgICAgICAgICAgIlx1MWU3Ylx1MWU3YiIgICAgICAvLyB1LW1hY3Jvbi11bWxhdXQgdS1tYWNyb24tdW1sYXV0CisgICAgICAgIH07CisgICAgICAgIENvbGxhdG9yIGVuZ2xpc2ggPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7CisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgRW5nbGlzaCBvcmRlci4uLiIpOworICAgICAgICBjaGVja0xpc3RPcmRlcihlbmdsaXNoTGlzdCwgZW5nbGlzaCk7CisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgRW5nbGlzaCBvcmRlciB3aXRob3V0IGRlY29tcG9zaXRpb24uLi4iKTsKKyAgICAgICAgZW5nbGlzaC5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgICAgICBjaGVja0xpc3RPcmRlcihlbmdsaXNoTGlzdCwgZW5nbGlzaCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzkyMTYoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgLy8geW91IGNhbiBwb3NpdGlvbiBhIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpbiB0aGUgbWlkZGxlIG9mCisgICAgICAgIC8vIGEgY29udHJhY3RpbmcgY2hhcmFjdGVyIHNlcXVlbmNlLCB5aWVsZGluZyBhIGJvZ3VzIGNvbGxhdGlvbgorICAgICAgICAvLyBlbGVtZW50CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgY29sbCA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihjb2xsLmdldFJ1bGVzKCkKKyAgICAgICAgICAgICAgICArICIgJiBDIDwgY2ggLCBjSCAsIENoICwgQ0ggPCBjYXQgPCBjcnVuY2h5Iik7CisgICAgICAgIFN0cmluZyB0ZXN0VGV4dCA9ICJjaHVyY2ggY2h1cmNoIGNhdGNhdGNoZXIgcnVuY3J1bmNoeW5jaHkiOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9IGNvbGwuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKAorICAgICAgICAgICAgICAgIHRlc3RUZXh0KTsKKworICAgICAgICAvLyB0ZXN0IHRoYXQgdGhlICJjaCIgY29tYmluYXRpb24gd29ya3MgcHJvcGVybHkKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoNCk7CisgICAgICAgIGludCBlbHQ0ID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihpdGVyLm5leHQoKSk7CisKKyAgICAgICAgaXRlci5yZXNldCgpOworICAgICAgICBpbnQgZWx0MCA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIoaXRlci5uZXh0KCkpOworCisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDUpOworICAgICAgICBpbnQgZWx0NSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIoaXRlci5uZXh0KCkpOworCisgICAgICAgIGlmIChlbHQ0ICE9IGVsdDAgfHwgZWx0NSAhPSBlbHQwKQorICAgICAgICAgICAgZXJybG4oIlRoZSBjb2xsYXRpb24gZWxlbWVudHMgYXQgcG9zaXRpb25zIDAgKCIgKyBlbHQwICsgIiksIDQgKCIKKyAgICAgICAgICAgICAgICAgICAgKyBlbHQ0ICsgIiksIGFuZCA1ICgiICsgZWx0NSArICIpIGRvbid0IG1hdGNoLiIpOworCisgICAgICAgIC8vIHRlc3QgdGhhdCB0aGUgImNhdCIgY29tYmluYXRpb24gd29ya3MgcHJvcGVybHkKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoMTQpOworICAgICAgICBpbnQgZWx0MTQgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKGl0ZXIubmV4dCgpKTsKKworICAgICAgICBpdGVyLnNldE9mZnNldCgxNSk7CisgICAgICAgIGludCBlbHQxNSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIoaXRlci5uZXh0KCkpOworCisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDE2KTsKKyAgICAgICAgaW50IGVsdDE2ID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihpdGVyLm5leHQoKSk7CisKKyAgICAgICAgaXRlci5zZXRPZmZzZXQoMTcpOworICAgICAgICBpbnQgZWx0MTcgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKGl0ZXIubmV4dCgpKTsKKworICAgICAgICBpdGVyLnNldE9mZnNldCgxOCk7CisgICAgICAgIGludCBlbHQxOCA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIoaXRlci5uZXh0KCkpOworCisgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KDE5KTsKKyAgICAgICAgaW50IGVsdDE5ID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihpdGVyLm5leHQoKSk7CisKKyAgICAgICAgaWYgKGVsdDE0ICE9IGVsdDE1IHx8IGVsdDE0ICE9IGVsdDE2IHx8IGVsdDE0ICE9IGVsdDE3CisgICAgICAgICAgICAgICAgfHwgZWx0MTQgIT0gZWx0MTggfHwgZWx0MTQgIT0gZWx0MTkpCisgICAgICAgICAgICBlcnJsbigiXCJjYXRcIiBlbGVtZW50cyBkb24ndCBtYXRjaDogZWx0MTQgPSAiICsgZWx0MTQgKyAiLCBlbHQxNSA9ICIKKyAgICAgICAgICAgICsgZWx0MTUgKyAiLCBlbHQxNiA9ICIgKyBlbHQxNiArICIsIGVsdDE3ID0gIiArIGVsdDE3CisgICAgICAgICAgICArICIsIGVsdDE4ID0gIiArIGVsdDE4ICsgIiwgZWx0MTkgPSAiICsgZWx0MTkpOworCisgICAgICAgIC8vIG5vdyBnZW5lcmF0ZSBhIGNvbXBsZXRlIGxpc3Qgb2YgdGhlIGNvbGxhdGlvbiBlbGVtZW50cywKKyAgICAgICAgLy8gZmlyc3QgdXNpbmcgbmV4dCgpIGFuZCB0aGVuIHVzaW5nIHNldE9mZnNldCgpLCBhbmQKKyAgICAgICAgLy8gbWFrZSBzdXJlIGJvdGggaW50ZXJmYWNlcyByZXR1cm4gdGhlIHNhbWUgc2V0IG9mIGVsZW1lbnRzCisgICAgICAgIGl0ZXIucmVzZXQoKTsKKworICAgICAgICBpbnQgZWx0ID0gaXRlci5uZXh0KCk7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChlbHQgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgIGVsdCA9IGl0ZXIubmV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nW10gbmV4dEVsZW1lbnRzID0gbmV3IFN0cmluZ1tjb3VudF07CisgICAgICAgIFN0cmluZ1tdIHNldE9mZnNldEVsZW1lbnRzID0gbmV3IFN0cmluZ1tjb3VudF07CisgICAgICAgIGludCBsYXN0UG9zID0gMDsKKworICAgICAgICBpdGVyLnJlc2V0KCk7CisgICAgICAgIGVsdCA9IGl0ZXIubmV4dCgpOworICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChlbHQgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgbmV4dEVsZW1lbnRzW2NvdW50KytdID0gdGVzdFRleHQuc3Vic3RyaW5nKGxhc3RQb3MsIGl0ZXIuZ2V0T2Zmc2V0KCkpOworICAgICAgICAgICAgbGFzdFBvcyA9IGl0ZXIuZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICBlbHQgPSBpdGVyLm5leHQoKTsKKyAgICAgICAgfQorICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdFRleHQubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoaSk7CisgICAgICAgICAgICBsYXN0UG9zID0gaXRlci5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgIGVsdCA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgc2V0T2Zmc2V0RWxlbWVudHNbY291bnQrK10gPSB0ZXN0VGV4dC5zdWJzdHJpbmcobGFzdFBvcywgaXRlci5nZXRPZmZzZXQoKSk7CisgICAgICAgICAgICBpID0gaXRlci5nZXRPZmZzZXQoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5leHRFbGVtZW50cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKG5leHRFbGVtZW50c1tpXS5lcXVhbHMoc2V0T2Zmc2V0RWxlbWVudHNbaV0pKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obmV4dEVsZW1lbnRzW2ldKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yOiBuZXh0KCkgeWllbGRlZCAiICsgbmV4dEVsZW1lbnRzW2ldICsgIiwgYnV0IHNldE9mZnNldCgpIHlpZWxkZWQgIgorICAgICAgICAgICAgICAgICAgICArIHNldE9mZnNldEVsZW1lbnRzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjE2MDA2KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIC8vIHJ1bGUgcGFyc2VyIGJhcmZzIG9uICI8XHUwMGUwPWFcdTAzMDAiLCBhbmQgb24gb3RoZXIgY2FzZXMKKyAgICAgICAgLy8gd2hlcmUgdGhlIHNhbWUgdG9rZW4gKGFmdGVyIG5vcm1hbGl6YXRpb24pIGFwcGVhcnMgdHdpY2UgaW4gYSByb3cKKyAgICAgICAgYm9vbGVhbiBjYXVnaHRFeGNlcHRpb24gPSBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGR1bW15ID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCJcdTAwZTA8YVx1MDMwMCIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBjYXVnaHRFeGNlcHRpb24gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghY2F1Z2h0RXhjZXB0aW9uKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJcImE8YVwiIGNvbGxhdGlvbiBzZXF1ZW5jZSBkaWRuJ3QgY2F1c2UgcGFyc2UgZXJyb3IhIik7CisgICAgICAgIH0KKworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcigiPFx1MDBlMD1hXHUwMzAwIik7CisgICAgICAgIC8vY29tbWVudGVkIGJ5IEtldmluIDIwMDMvMTAvMjEgCisgICAgICAgIC8vZm9yICJGVUxMX0RFQ09NUE9TSVRJT04gaXMgbm90IHN1cHBvcnRlZCBoZXJlLiIgaW4gSUNVNEogRE9DCisgICAgICAgIC8vY29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5GVUxMX0RFQ09NUE9TSVRJT04pOworICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5JREVOVElDQUwpOworCisgICAgICAgIFN0cmluZ1tdIHRlc3RzID0geworICAgICAgICAgICAgImFcdTAzMDAiLCAiPSIsICJcdTAwZTAiLAorICAgICAgICAgICAgIlx1MDBlMCIsICAiPSIsICJhXHUwMzAwIgorICAgICAgICB9OworCisgICAgICAgIGNvbXBhcmVBcnJheShjb2xsYXRvciwgdGVzdHMpOworICAgIH0KKworICAgIC8vIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmV2aW91cyBicm9rZW4gZm9yIGV4cGFuZGluZyBjaGFyIHNlcXVlbmNlcworICAgIC8vCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzk2ODYoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICAvLyBDcmVhdGUgYSBjb2xsYXRvciB3aXRoIGEgZmV3IGV4cGFuZGluZyBjaGFyYWN0ZXIgc2VxdWVuY2VzIGluIGl0Li4uLgorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKGVuX3VzLmdldFJ1bGVzKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgJiBhZSA7IFx1MDBlNCAmIEFFIDsgXHUwMGM0IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiAmIG9lIDsgXHUwMGY2ICYgT0UgOyBcdTAwZDYiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiICYgdWUgOyBcdTAwZmMgJiBVRSA7IFx1MDBkYyIpOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gIlRcdTAwZjZuZSI7IC8vIG8tdW1sYXV0CisKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgPSBjb2xsLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXh0KTsKKyAgICAgICAgVmVjdG9yIGVsZW1lbnRzID0gbmV3IFZlY3RvcigpOworICAgICAgICBpbnQgZWxlbTsKKworICAgICAgICAvLyBJdGVyYXRlIGZvcndhcmQgYW5kIGNvbGxlY3QgYWxsIG9mIHRoZSBlbGVtZW50cyBpbnRvIGEgVmVjdG9yCisgICAgICAgIHdoaWxlICgoZWxlbSA9IGl0ZXIubmV4dCgpKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICBlbGVtZW50cy5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKGVsZW0pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyBpdGVyYXRlIGJhY2t3YXJkIGFuZCBtYWtlIHN1cmUgdGhleSdyZSB0aGUgc2FtZQorICAgICAgICBpbnQgaW5kZXggPSBlbGVtZW50cy5zaXplKCkgLSAxOworICAgICAgICB3aGlsZSAoKGVsZW0gPSBpdGVyLnByZXZpb3VzKCkpICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIGludCBleHBlY3QgPSAoKEludGVnZXIpZWxlbWVudHMuZWxlbWVudEF0KGluZGV4KSkuaW50VmFsdWUoKTsKKworICAgICAgICAgICAgaWYgKGVsZW0gIT0gZXhwZWN0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk1pc21hdGNoIGF0IGluZGV4ICIgKyBpbmRleAorICAgICAgICAgICAgICAgICAgICAgICsgIjogZ290ICIgKyBJbnRlZ2VyLnRvU3RyaW5nKGVsZW0sMTYpCisgICAgICAgICAgICAgICAgICAgICAgKyAiLCBleHBlY3RlZCAiICsgSW50ZWdlci50b1N0cmluZyhleHBlY3QsMTYpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZGV4LS07CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBSdWxlQmFzZWRDb2xsYXRvciBlbl91cyA7CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgaWYoZW5fdXMgPT1udWxsKXsKKyAgICAgICAgICAgIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdDQyNDQ4ODQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbCA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBjb2xsID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKGNvbGwuZ2V0UnVsZXMoKQorICAgICAgICAgICAgICAgICsgIiAmIEMgPCBjaCAsIGNIICwgQ2ggLCBDSCA8IGNhdCA8IGNydW5jaHkiKTsKKworICAgICAgICBTdHJpbmdbXSB0ZXN0U3RyaW5ncyA9IG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiY2FyIiwKKyAgICAgICAgICAgICJjYXZlIiwKKyAgICAgICAgICAgICJjbGFtcCIsCisgICAgICAgICAgICAiY3JhbXAiLAorICAgICAgICAgICAgImN6YXIiLAorICAgICAgICAgICAgImNodXJjaCIsCisgICAgICAgICAgICAiY2F0YWxvZ3VlIiwKKyAgICAgICAgICAgICJjcnVuY2h5IiwKKyAgICAgICAgICAgICJkb2ciCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCB0ZXN0U3RyaW5ncy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGNvbGwuY29tcGFyZSh0ZXN0U3RyaW5nc1tpIC0gMV0sIHRlc3RTdHJpbmdzW2ldKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBcIiIgKyB0ZXN0U3RyaW5nc1tpIC0gMV0KKyAgICAgICAgICAgICAgICAgICAgKyAiXCIgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIFwiIiArIHRlc3RTdHJpbmdzW2ldCisgICAgICAgICAgICAgICAgICAgICsgIlwiLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLy8gIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBzZXQgZG9lc24ndCB3b3JrIHByb3BlcnRseSB3aXRoIG5leHQvcHJldgorICAgIHB1YmxpYyB2b2lkIFRlc3Q0NjYzMjIwKCkgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Igc3RyaW5nSXRlciA9IG5ldyBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoImZveCIpOworICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlciA9IGNvbGxhdG9yLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzdHJpbmdJdGVyKTsKKyAgICAKKyAgICAgICAgaW50W10gZWxlbWVudHNfbmV4dCA9IG5ldyBpbnRbM107CisgICAgICAgIGxvZ2xuKCJjYWxsaW5nIG5leHQ6Iik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICAgICAgICBsb2dsbigiWyIgKyBpICsgIl0gIiArIChlbGVtZW50c19uZXh0W2ldID0gaXRlci5uZXh0KCkpKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpbnRbXSBlbGVtZW50c19md2QgPSBuZXcgaW50WzNdOworICAgICAgICBsb2dsbigiY2FsbGluZyBzZXQvbmV4dDoiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyArK2kpIHsKKyAgICAgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KGkpOworICAgICAgICAgICAgbG9nbG4oIlsiICsgaSArICJdICIgKyAoZWxlbWVudHNfZndkW2ldID0gaXRlci5uZXh0KCkpKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkgeworICAgICAgICAgICAgaWYgKGVsZW1lbnRzX25leHRbaV0gIT0gZWxlbWVudHNfZndkW2ldKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIm1pc21hdGNoIGF0IHBvc2l0aW9uICIgKyBpICsgCisgICAgICAgICAgICAgICAgIjogIiArIGVsZW1lbnRzX25leHRbaV0gKyAKKyAgICAgICAgICAgICAgICAiICE9ICIgKyBlbGVtZW50c19md2RbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qIFJ1bGVCYXNlZENvbGxhdG9yIG5vdCBzdWJjbGFzc2FibGUKKyAgICAgKiBAYnVnIDQxNDYxNjAKKyAgICAvLworICAgIC8vIFJ1bGVCYXNlZENvbGxhdG9yIGRvZXNuJ3QgdXNlIGNyZWF0ZUNvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpbnRlcm5hbGx5CisgICAgLy8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0NjE2MCgpIHsKKyAgICAgICAgLy8KKyAgICAgICAgLy8gVXNlIGEgY3VzdG9tIGNvbGxhdG9yIGNsYXNzIHdob3NlIGNyZWF0ZUNvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcgorICAgICAgICAvLyBtZXRob2RzIGluY3JlbWVudCBhIGNvdW50Li4uLgorICAgICAgICAvLyAgICAgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGVuX3VzID0gKFJ1bGVCYXNlZENvbGxhdG9yKSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBNeTQxNDYxNjBDb2xsYXRvci5jb3VudCA9IDA7CisgICAgICAgIE15NDE0NjE2MENvbGxhdG9yIG1jID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG1jID0gbmV3IE15NDE0NjE2MENvbGxhdG9yKGVuX3VzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgdG8gY3JlYXRlIGEgTXk0MTQ2MTYwQ29sbGF0b3IuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgQ29sbGF0aW9uS2V5IGtleSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBrZXkgPSBtYy5nZXRDb2xsYXRpb25LZXkoIjEiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIHRvIGdldCBhIENvbGxhdGlvbktleSBmcm9tIGEgTXk0MTQ2MTYwQ29sbGF0b3IuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKE15NDE0NjE2MENvbGxhdG9yLmNvdW50IDwgMSkgeworICAgICAgICAgICAgZXJybG4oIk15NDE0NjE2MENvbGxhdG9yLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBub3QgY2FsbGVkIGZvciBnZXRDb2xsYXRpb25LZXkiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBNeTQxNDYxNjBDb2xsYXRvci5jb3VudCA9IDA7CisgICAgICAgIG1jLmNvbXBhcmUoIjEiLCAiMiIpOworICAgIAorICAgICAgICBpZiAoTXk0MTQ2MTYwQ29sbGF0b3IuY291bnQgPCAxKSB7CisgICAgICAgICAgICBlcnJsbigiTXk0MTQ2MTYwQ29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG5vdCBjYWxsZWQgZm9yIGNvbXBhcmUiKTsKKyAgICAgICAgfQorICAgIH0qLworfQorCisvKiBSdWxlQmFzZWRDb2xsYXRvciBub3Qgc3ViY2xhc3NhYmxlCisgKiBjbGFzcyBNeTQxNDYxNjBDb2xsYXRvciBleHRlbmRzIFJ1bGVCYXNlZENvbGxhdG9yIHsKKyAgICBzdGF0aWMgaW50IGNvdW50ID0gMDsKKworICAgIHB1YmxpYyBNeTQxNDYxNjBDb2xsYXRvcihSdWxlQmFzZWRDb2xsYXRvciByYmMpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlcihyYmMuZ2V0UnVsZXMoKSk7CisgICAgfQorCisgICAgcHVibGljIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBnZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoU3RyaW5nIHRleHQpIHsKKyAgICAgICAgY291bnQgKz0gMTsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXh0KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBnZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yIHRleHQpIHsKKyAgICAgICAgY291bnQgKz0gMTsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXh0KTsKKyAgICB9Cit9CisqLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25TZXJ2aWNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblNlcnZpY2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODUwMWE0MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25TZXJ2aWNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsNDI1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworCitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5Db2xsYXRvckZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uU2VydmljZVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgQ29sbGF0aW9uU2VydmljZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlZ2lzdGVyKCkgeworICAgICAgICAvLyByZWdpc3RlciBhIHNpbmdsZXRvbgorICAgICAgICBDb2xsYXRvciBmcmNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgQ29sbGF0b3IgdXNjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShVTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIAorICAgICAgICB7IC8vIHRyeSBvdmVycmlkZSBlbl9VUyBjb2xsYXRvcgorICAgICAgICAgICAgT2JqZWN0IGtleSA9IENvbGxhdG9yLnJlZ2lzdGVySW5zdGFuY2UoZnJjb2wsIFVMb2NhbGUuVVMpOworICAgICAgICAgICAgQ29sbGF0b3IgbmNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuVVMpOworICAgICAgICAgICAgaWYgKCFmcmNvbC5lcXVhbHMobmNvbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigicmVnaXN0ZXIgb2YgZnJlbmNoIGNvbGxhdG9yIGZvciBlbl9VUyBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY292ZXJhZ2UKKyAgICAgICAgICAgIENvbGxhdG9yIHRlc3QgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShVTG9jYWxlLkdFUk1BTlkpOyAvLyBDb2xsYXRvckZhY3RvcnkuaGFuZGxlQ3JlYXRlCisKKyAgICAgICAgICAgIGlmICghQ29sbGF0b3IudW5yZWdpc3RlcihrZXkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImZhaWxlZCB0byB1bnJlZ2lzdGVyIGZyZW5jaCBjb2xsYXRvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbmNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuVVMpOworICAgICAgICAgICAgaWYgKCF1c2NvbC5lcXVhbHMobmNvbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29sbGF0b3IgYWZ0ZXIgdW5yZWdpc3RlciBkb2VzIG5vdCBtYXRjaCBvcmlnaW5hbCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgVUxvY2FsZSBmdV9GVSA9IG5ldyBVTG9jYWxlKCJmdV9GVV9GT08iKTsKKworICAgICAgICB7IC8vIHRyeSBjcmVhdGUgY29sbGF0b3IgZm9yIG5ldyBsb2NhbGUKKyAgICAgICAgICAgIENvbGxhdG9yIGZ1Y29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoZnVfRlUpOworICAgICAgICAgICAgT2JqZWN0IGtleSA9IENvbGxhdG9yLnJlZ2lzdGVySW5zdGFuY2UoZnJjb2wsIGZ1X0ZVKTsKKyAgICAgICAgICAgIENvbGxhdG9yIG5jb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShmdV9GVSk7CisgICAgICAgICAgICBpZiAoIWZyY29sLmVxdWFscyhuY29sKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJyZWdpc3RlciBvZiBmciBjb2xsYXRvciBmb3IgZnVfRlUgZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gQ29sbGF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChsb2NhbGVzW2ldLmVxdWFscyhmdV9GVSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIm5ldyBsb2NhbGUgZnVfRlUgbm90IHJlcG9ydGVkIGFzIHN1cHBvcnRlZCBsb2NhbGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IENvbGxhdG9yLmdldERpc3BsYXlOYW1lKGZ1X0ZVKTsKKyAgICAgICAgICAgICAgICBpZiAoISJmdSAoRlUsIEZPTykiLmVxdWFscyhuYW1lKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZm91bmQgIiArIG5hbWUgKyAiIGZvciBmdV9GVSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgbG9jYWxlIGRhdGEuIik7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gQ29sbGF0b3IuZ2V0RGlzcGxheU5hbWUoZnVfRlUsIGZ1X0ZVKTsKKyAgICAgICAgICAgICAgICBpZiAoISJmdSAoRlUsIEZPTykiLmVxdWFscyhuYW1lKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZm91bmQgIiArIG5hbWUgKyAiIGZvciBmdV9GVSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgbG9jYWxlIGRhdGEuIik7IAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIUNvbGxhdG9yLnVucmVnaXN0ZXIoa2V5KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJmYWlsZWQgdG8gdW5yZWdpc3RlciBmcmVuY2ggY29sbGF0b3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5jb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShmdV9GVSk7CisgICAgICAgICAgICBpZiAoIWZ1Y29sLmVxdWFscyhuY29sKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJjb2xsYXRvciBhZnRlciB1bnJlZ2lzdGVyIGRvZXMgbm90IG1hdGNoIG9yaWdpbmFsIGZ1X0ZVIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvLyBjb3ZlcmFnZSBhZnRlciByZXR1cm4gdG8gZGVmYXVsdCAKKyAgICAgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gQ29sbGF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAKKyAgICAgICAgICAgIENvbGxhdG9yIG5jb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShVTG9jYWxlLlVTKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZWdpc3RlckZhY3RvcnkoKSB7CisKKyAgICAgICAgY2xhc3MgQ29sbGF0b3JJbmZvIHsKKyAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlOworICAgICAgICAgICAgQ29sbGF0b3IgY29sbGF0b3I7CisgICAgICAgICAgICBNYXAgZGlzcGxheU5hbWVzOyAvLyBsb2NhbGUgLT4gc3RyaW5nCisKKyAgICAgICAgICAgIENvbGxhdG9ySW5mbyhVTG9jYWxlIGxvY2FsZSwgQ29sbGF0b3IgY29sbGF0b3IsIE1hcCBkaXNwbGF5TmFtZXMpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICAgICAgICAgICAgICB0aGlzLmNvbGxhdG9yID0gY29sbGF0b3I7CisgICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5TmFtZXMgPSBkaXNwbGF5TmFtZXM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBnZXREaXNwbGF5TmFtZShVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IG51bGw7CisgICAgICAgICAgICAgICAgaWYgKGRpc3BsYXlOYW1lcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSAoU3RyaW5nKWRpc3BsYXlOYW1lcy5nZXQoZGlzcGxheUxvY2FsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChuYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGxvY2FsZS5nZXREaXNwbGF5TmFtZShkaXNwbGF5TG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBjbGFzcyBUZXN0RmFjdG9yeSBleHRlbmRzIENvbGxhdG9yRmFjdG9yeSB7CisgICAgICAgICAgICBwcml2YXRlIE1hcCBtYXA7CisgICAgICAgICAgICBwcml2YXRlIFNldCBpZHM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFRlc3RGYWN0b3J5KENvbGxhdG9ySW5mb1tdIGluZm8pIHsKKyAgICAgICAgICAgICAgICBtYXAgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5mby5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBDb2xsYXRvckluZm8gY2kgPSBpbmZvW2ldOworICAgICAgICAgICAgICAgICAgICBtYXAucHV0KGNpLmxvY2FsZSwgY2kpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIENvbGxhdG9yIGNyZWF0ZUNvbGxhdG9yKFVMb2NhbGUgbG9jKSB7CisgICAgICAgICAgICAgICAgQ29sbGF0b3JJbmZvIGNpID0gKENvbGxhdG9ySW5mbyltYXAuZ2V0KGxvYyk7CisgICAgICAgICAgICAgICAgaWYgKGNpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNpLmNvbGxhdG9yOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShVTG9jYWxlIG9iamVjdExvY2FsZSwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgICAgICAgICAgQ29sbGF0b3JJbmZvIGNpID0gKENvbGxhdG9ySW5mbyltYXAuZ2V0KG9iamVjdExvY2FsZSk7CisgICAgICAgICAgICAgICAgaWYgKGNpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNpLmdldERpc3BsYXlOYW1lKGRpc3BsYXlMb2NhbGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIFNldCBnZXRTdXBwb3J0ZWRMb2NhbGVJRHMoKSB7CisgICAgICAgICAgICAgICAgaWYgKGlkcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIEhhc2hTZXQgc2V0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IG1hcC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gKFVMb2NhbGUpaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSBsb2NhbGUudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldC5hZGQoaWQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlkcyA9IENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChzZXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gaWRzOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGNsYXNzIFRlc3RGYWN0b3J5V3JhcHBlciBleHRlbmRzIENvbGxhdG9yRmFjdG9yeSB7CisgICAgICAgICAgICBDb2xsYXRvckZhY3RvcnkgZGVsZWdhdGU7CisgICAgCisgICAgICAgICAgICBUZXN0RmFjdG9yeVdyYXBwZXIoQ29sbGF0b3JGYWN0b3J5IGRlbGVnYXRlKSB7CisgICAgICAgICAgICAgICAgdGhpcy5kZWxlZ2F0ZSA9IGRlbGVnYXRlOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgcHVibGljIENvbGxhdG9yIGNyZWF0ZUNvbGxhdG9yKFVMb2NhbGUgbG9jKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRlbGVnYXRlLmNyZWF0ZUNvbGxhdG9yKGxvYyk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyB1c2UgQ29sbGF0b3JGYWN0b3J5IGdldERpc3BsYXlOYW1lKFVMb2NhbGUsIFVMb2NhbGUpIGZvciBjb3ZlcmFnZQorICAgIAorICAgICAgICAgICAgcHVibGljIFNldCBnZXRTdXBwb3J0ZWRMb2NhbGVJRHMoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRlbGVnYXRlLmdldFN1cHBvcnRlZExvY2FsZUlEcygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgVUxvY2FsZSBmdV9GVSA9IG5ldyBVTG9jYWxlKCJmdV9GVSIpOworICAgICAgICBVTG9jYWxlIGZ1X0ZVX0ZPTyA9IG5ldyBVTG9jYWxlKCJmdV9GVV9GT08iKTsKKworICAgICAgICBNYXAgZnVGVU5hbWVzID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgZnVGVU5hbWVzLnB1dChmdV9GVSwgInplIGxlZXRsZSBidW5ueSBGdS1GdSIpOworICAgICAgICBmdUZVTmFtZXMucHV0KGZ1X0ZVX0ZPTywgInplZSBsZWV0ZWwgYnVubnkgRm9vLUZvbyIpOworICAgICAgICBmdUZVTmFtZXMucHV0KFVMb2NhbGUuVVMsICJsaXR0bGUgYnVubnkgRm9vIEZvbyIpOworCisgICAgICAgIENvbGxhdG9yIGZyY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoVUxvY2FsZS5GUkFOQ0UpOworICAgICAgIC8qIENvbGxhdG9yIHVzY29sID0gKi9Db2xsYXRvci5nZXRJbnN0YW5jZShVTG9jYWxlLlVTKTsKKyAgICAgICAgQ29sbGF0b3IgZ2Vjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShVTG9jYWxlLkdFUk1BTlkpOworICAgICAgICBDb2xsYXRvciBqcGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuSkFQQU4pOworICAgICAgICBDb2xsYXRvciBmdWNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKGZ1X0ZVKTsKKyAgICAgICAgCisgICAgICAgIENvbGxhdG9ySW5mb1tdIGluZm8gPSB7CisgICAgICAgICAgICBuZXcgQ29sbGF0b3JJbmZvKFVMb2NhbGUuVVMsIGZyY29sLCBudWxsKSwKKyAgICAgICAgICAgIG5ldyBDb2xsYXRvckluZm8oVUxvY2FsZS5GUkFOQ0UsIGdlY29sLCBudWxsKSwKKyAgICAgICAgICAgIG5ldyBDb2xsYXRvckluZm8oZnVfRlUsIGpwY29sLCBmdUZVTmFtZXMpLAorICAgICAgICB9OworICAgICAgICBUZXN0RmFjdG9yeSBmYWN0b3J5ID0gbnVsbDsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgZmFjdG9yeSA9IG5ldyBUZXN0RmFjdG9yeShpbmZvKTsKKyAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIGxvY2FsZSBkYXRhLiIpOyAKKyAgICAgICAgfQorICAgICAgICAvLyBjb3ZlcmFnZQorICAgICAgICB7CisgICAgICAgICAgICBUZXN0RmFjdG9yeVdyYXBwZXIgd3JhcHBlciA9IG5ldyBUZXN0RmFjdG9yeVdyYXBwZXIoZmFjdG9yeSk7IC8vIGluIGphdmEsIGdjIGxldHMgdXMgZWFzaWx5IG11bHRpcGx5IHJlZmVyZW5jZSEKKyAgICAgICAgICAgIE9iamVjdCBrZXkgPSBDb2xsYXRvci5yZWdpc3RlckZhY3Rvcnkod3JhcHBlcik7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IG51bGw7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgbmFtZSA9IENvbGxhdG9yLmdldERpc3BsYXlOYW1lKGZ1X0ZVLCBmdV9GVV9GT08pOworICAgICAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBsb2NhbGUgZGF0YS4iKTsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiKioqIGRlZmF1bHQgbmFtZTogIiArIG5hbWUpOworICAgICAgICAgICAgQ29sbGF0b3IudW5yZWdpc3RlcihrZXkpOworICAgIAorICAgICAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IFVMb2NhbGUoImJhcl9CQVIiKSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbjEgPSBjaGVja0F2YWlsYWJsZSgiYmVmb3JlIHJlZ2lzdGVyRmFjdG9yeSIpOworICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IENvbGxhdG9yLnJlZ2lzdGVyRmFjdG9yeShmYWN0b3J5KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IG4yID0gY2hlY2tBdmFpbGFibGUoImFmdGVyIHJlZ2lzdGVyRmFjdG9yeSIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBDb2xsYXRvciBuY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoVUxvY2FsZS5VUyk7CisgICAgICAgICAgICBpZiAoIWZyY29sLmVxdWFscyhuY29sKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJmcmNvbGwgZm9yIGVuX1VTIGZhaWxlZCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBuY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoZnVfRlVfRk9PKTsKKyAgICAgICAgICAgIGlmICghanBjb2wuZXF1YWxzKG5jb2wpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImpwY29sIGZvciBmdV9GVV9GT08gZmFpbGVkLCBnb3Q6ICIgKyBuY29sKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBDb2xsYXRvci5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICAgICAgYm9vbGVhbiBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGxvY2FsZXNbaV0uZXF1YWxzKGZ1X0ZVKSkgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZm91bmQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibmV3IGxvY2FsZSBmdV9GVSBub3QgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkIGxvY2FsZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IENvbGxhdG9yLmdldERpc3BsYXlOYW1lKGZ1X0ZVKTsKKyAgICAgICAgICAgIGlmICghImxpdHRsZSBidW5ueSBGb28gRm9vIi5lcXVhbHMobmFtZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZm91bmQgIiArIG5hbWUgKyAiIGZvciBmdV9GVSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBuYW1lID0gQ29sbGF0b3IuZ2V0RGlzcGxheU5hbWUoZnVfRlUsIGZ1X0ZVX0ZPTyk7CisgICAgICAgICAgICBpZiAoISJ6ZWUgbGVldGVsIGJ1bm55IEZvby1Gb28iLmVxdWFscyhuYW1lKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJmb3VuZCAiICsgbmFtZSArICIgZm9yIGZ1X0ZVIGluIGZ1X0ZVX0ZPTyIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIUNvbGxhdG9yLnVucmVnaXN0ZXIoa2V5KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJmYWlsZWQgdG8gdW5yZWdpc3RlciBmYWN0b3J5Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBuMyA9IGNoZWNrQXZhaWxhYmxlKCJhZnRlciB1bnJlZ2lzdGVyIik7CisgICAgICAgICAgICBhc3NlcnRUcnVlKCJyZWdpc3RlciBpbmNyZWFzZXMgY291bnQiLCBuMj5uMSk7CisgICAgICAgICAgICBhc3NlcnRUcnVlKCJ1bnJlZ2lzdGVyIHJlc3RvcmVzIGNvdW50IiwgbjM9PW4xKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbmNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKGZ1X0ZVKTsKKyAgICAgICAgICAgIGlmICghZnVjb2wuZXF1YWxzKG5jb2wpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbGxhdG9yIGFmdGVyIHVucmVnaXN0ZXIgZG9lcyBub3QgbWF0Y2ggb3JpZ2luYWwgZnVfRlUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIHRoZSBpbnRlZ3JpdHkgb2YgdGhlIHJlc3VsdHMgb2YgQ29sbGF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKS4KKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBpdGVtcyByZXR1cm5lZC4KKyAgICAgKi8KKyAgICBpbnQgY2hlY2tBdmFpbGFibGUoU3RyaW5nIG1zZykgeworICAgICAgICBMb2NhbGUgbG9jc1tdID0gQ29sbGF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBpZiAoIWFzc2VydFRydWUoImdldEF2YWlsYWJsZUxvY2FsZXMgIT0gbnVsbCIsIGxvY3MhPW51bGwpKSByZXR1cm4gLTE7CisgICAgICAgIGNoZWNrQXJyYXkobXNnLCBsb2NzLCBudWxsKTsKKyAgICAgICAgVUxvY2FsZSB1bG9jc1tdID0gQ29sbGF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgaWYgKCFhc3NlcnRUcnVlKCJnZXRBdmFpbGFibGVVTG9jYWxlcyAhPSBudWxsIiwgdWxvY3MhPW51bGwpKSByZXR1cm4gLTE7CisgICAgICAgIGNoZWNrQXJyYXkobXNnLCB1bG9jcywgbnVsbCk7CisgICAgICAgIC8vIFRoaXMgaXMgbm90IHRydWUgYmVjYXVzZSBzaW5jZSBVTG9jYWxlIG9iamVjdHMgd2l0aCBzY3JpcHQgY29kZSBjYW5ub3QgYmUgCisgICAgICAgIC8vIGNvbnZlcnRlZCB0byBMb2NhbGUgb2JqZWN0cworICAgICAgICAvL2Fzc2VydFRydWUoImdldEF2YWlsYWJsZUxvY2FsZXMoKS5sZW5ndGggPT0gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKS5sZW5ndGgiLCBsb2NzLmxlbmd0aCA9PSB1bG9jcy5sZW5ndGgpOworICAgICAgICByZXR1cm4gbG9jcy5sZW5ndGg7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBLV1tdID0geworICAgICAgICAiY29sbGF0aW9uIgorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgS1dWQUxbXSA9IHsKKyAgICAgICAgInBob25lYm9vayIsCisgICAgICAgICJzdHJva2UiCisgICAgfTsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RTZXBhcmF0ZVRyZWVzKCkgeworICAgICAgICBTdHJpbmcga3dbXSA9IENvbGxhdG9yLmdldEtleXdvcmRzKCk7CisgICAgICAgIGlmICghYXNzZXJ0VHJ1ZSgiZ2V0S2V5d29yZHMgIT0gbnVsbCIsIGt3IT1udWxsKSkgcmV0dXJuOworICAgICAgICBjaGVja0FycmF5KCJnZXRLZXl3b3JkcyIsIGt3LCBLVyk7CisgICAgICAgIAorICAgICAgICBTdHJpbmcga3d2YWxbXSA9IENvbGxhdG9yLmdldEtleXdvcmRWYWx1ZXMoS1dbMF0pOworICAgICAgICBpZiAoIWFzc2VydFRydWUoImdldEtleXdvcmRWYWx1ZXMgIT0gbnVsbCIsIGt3dmFsIT1udWxsKSkgcmV0dXJuOworICAgICAgICBjaGVja0FycmF5KCJnZXRLZXl3b3JkVmFsdWVzIiwga3d2YWwsIEtXVkFMKTsKKworICAgICAgICBib29sZWFuIGlzQXZhaWxhYmxlW10gPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgVUxvY2FsZSBlcXVpdiA9IENvbGxhdG9yLmdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KEtXWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVMb2NhbGUoImZyIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0F2YWlsYWJsZSk7CisgICAgICAgIGlmIChhc3NlcnRUcnVlKCJnZXRGdW5jdGlvbmFsRXF1aXZhbGVudChmcikhPW51bGwiLCBlcXVpdiE9bnVsbCkpIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoZnIpIiwgImZyIiwgZXF1aXYudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0VHJ1ZSgiZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoZnIpLmlzQXZhaWxhYmxlPT10cnVlIiwKKyAgICAgICAgICAgICAgICAgICBpc0F2YWlsYWJsZVswXSA9PSB0cnVlKTsKKyAgICAgICAgCisgICAgICAgIGVxdWl2ID0gQ29sbGF0b3IuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoS1dbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVMb2NhbGUoImZyX0ZSIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBdmFpbGFibGUpOworICAgICAgICBpZiAoYXNzZXJ0VHJ1ZSgiZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoZnJfRlIpIT1udWxsIiwgZXF1aXYhPW51bGwpKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KGZyX0ZSKSIsICJmciIsIGVxdWl2LnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIGFzc2VydFRydWUoImdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KGZyX0ZSKS5pc0F2YWlsYWJsZT09dHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgaXNBdmFpbGFibGVbMF0gPT0gdHJ1ZSk7CisKKyAgICAgICAgZXF1aXYgPSBDb2xsYXRvci5nZXRGdW5jdGlvbmFsRXF1aXZhbGVudChLV1swXSwgbmV3IFVMb2NhbGUoInpoX0hhbnMiKSk7CisgICAgICAgIGlmIChhc3NlcnRUcnVlKCJnZXRGdW5jdGlvbmFsRXF1aXZhbGVudCh6aF9IYW5zKSE9bnVsbCIsIGVxdWl2IT1udWxsKSkgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRGdW5jdGlvbmFsRXF1aXZhbGVudCh6aF9IYW5zKSIsICJ6aCIsIGVxdWl2LnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRGdW5jdGlvbmFsRXF1aXZhbGVudCgpIHsKKyAgICAgICAgU3RyaW5nIGt3W10gPSBDb2xsYXRvci5nZXRLZXl3b3JkcygpOworICAgICAgICBmaW5hbCBTdHJpbmcgREFUQVtdID0geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImRlIiwgImRlIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVAY29sbGF0aW9uPWRpcmVjdCIsICJkZSIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImRlQGNvbGxhdGlvbj10cmFkaXRpb25hbCIsICJkZSIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImRlQGNvbGxhdGlvbj1nYjIzMTJoYW4iLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZUBjb2xsYXRpb249c3Ryb2tlIiwgImRlIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVAY29sbGF0aW9uPXBpbnlpbiIsICJkZSIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImRlQGNvbGxhdGlvbj1waG9uZWJvb2siLCAiZGVAY29sbGF0aW9uPXBob25lYm9vayIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImRlQGNvbGxhdGlvbj1iaWc1aGFuIiwgImRlIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVfQVQiLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZV9BVEBjb2xsYXRpb249ZGlyZWN0IiwgImRlIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVfQVRAY29sbGF0aW9uPXRyYWRpdGlvbmFsIiwgImRlIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVfQVRAY29sbGF0aW9uPWdiMjMxMmhhbiIsICJkZSIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImRlX0FUQGNvbGxhdGlvbj1zdHJva2UiLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkZV9BVEBjb2xsYXRpb249cGlueWluIiwgImRlIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVfQVRAY29sbGF0aW9uPXBob25lYm9vayIsICJkZUBjb2xsYXRpb249cGhvbmVib29rIiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVfQVRAY29sbGF0aW9uPWJpZzVoYW4iLCAiZGUiLCAidCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJubCIsICJyb290IiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmxAY29sbGF0aW9uPWRpcmVjdCIsICJyb290IiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmxfQkUiLCAicm9vdCIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIm5sX0JFQGNvbGxhdGlvbj1kaXJlY3QiLCAicm9vdCIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIm5sX0JFQGNvbGxhdGlvbj10cmFkaXRpb25hbCIsICJyb290IiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmxfQkVAY29sbGF0aW9uPWdiMjMxMmhhbiIsICJyb290IiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmxfQkVAY29sbGF0aW9uPXN0cm9rZSIsICJyb290IiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmxfQkVAY29sbGF0aW9uPXBpbnlpbiIsICJyb290IiwgInQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibmxfQkVAY29sbGF0aW9uPWJpZzVoYW4iLCAicm9vdCIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIm5sX0JFQGNvbGxhdGlvbj1waG9uZWJvb2siLCAicm9vdCIsICJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImVuX1VTX1ZBTExFWUdJUkwiLCJlbiIsImYiCisgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICBmaW5hbCBpbnQgREFUQV9DT1VOVD0oREFUQS5sZW5ndGgvMyk7CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGk9MDtpPERBVEFfQ09VTlQ7aSsrKSB7CisgICAgICAgICAgICBib29sZWFuIGlzQXZhaWxhYmxlW10gPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgICAgIFVMb2NhbGUgaW5wdXQgPSBuZXcgVUxvY2FsZShEQVRBWyhpKjMpKzBdKTsKKyAgICAgICAgICAgIFVMb2NhbGUgZXhwZWN0ID0gbmV3IFVMb2NhbGUoREFUQVsoaSozKSsxXSk7CisgICAgICAgICAgICBib29sZWFuIGV4cGVjdEF2YWlsYWJsZSA9IERBVEFbKGkqMykrMl0uZXF1YWxzKCJ0Iik7CisgICAgICAgICAgICBVTG9jYWxlIGFjdHVhbCA9IENvbGxhdG9yLmdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KGt3WzBdLGlucHV0LGlzQXZhaWxhYmxlKTsKKyAgICAgICAgICAgIGlmKCFhY3R1YWwuZXF1YWxzKGV4cGVjdCkgfHwgKGV4cGVjdEF2YWlsYWJsZSE9aXNBdmFpbGFibGVbMF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIiMiICsgaSArICI6IENvbGxhdG9yLmdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KCIgKyBpbnB1dCArICIpPSIgKyBhY3R1YWwgKyAiLCBhdmFpbCAiICsgbmV3IEJvb2xlYW4oaXNBdmFpbGFibGVbMF0pICsgIiwgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgIiArIGV4cGVjdCArICIgYXZhaWwgIiArIG5ldyBCb29sZWFuKGV4cGVjdEF2YWlsYWJsZSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiIyIgKyBpICsgIjogQ29sbGF0b3IuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoIiArIGlucHV0ICsgIik9IiArIGFjdHVhbCArICIsIGF2YWlsICIgKyBuZXcgQm9vbGVhbihpc0F2YWlsYWJsZVswXSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisvLyAgICBwdWJsaWMgdm9pZCBQcmludEZ1bmN0aW9uYWxFcXVpdmFsZW50TGlzdCgpIHsKKy8vICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IENvbGxhdG9yLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisvLyAgICAgICAgU3RyaW5nW10ga2V5d29yZHMgPSBDb2xsYXRvci5nZXRLZXl3b3JkcygpOworLy8gICAgICAgIGxvZ2xuKCJDb2xsYXRpb24iKTsKKy8vICAgICAgICBsb2dsbigiUG9zc2libGUga2V5d29yZD12YWx1ZXMgcGFpcnM6Iik7CisvLyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBDb2xsYXRvci5nZXRLZXl3b3JkcygpLmxlbmd0aDsgKytpKSB7CisvLyAgICAgICAgICAgICAgICBTdHJpbmdbXSB2YWx1ZXMgPSBDb2xsYXRvci5nZXRLZXl3b3JkVmFsdWVzKGtleXdvcmRzW2ldKTsKKy8vICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdmFsdWVzLmxlbmd0aDsgKytqKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihrZXl3b3Jkc1tpXSArICI9IiArIHZhbHVlc1tqXSk7CisvLyAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgfQorLy8gICAgICAgIGxvZ2xuKCJEaWZmZXJpbmcgQ29sbGF0b3JzOiIpOworLy8gICAgICAgIGJvb2xlYW5bXSBpc0F2YWlsYWJsZSA9IHt0cnVlfTsKKy8vICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGxvY2FsZXMubGVuZ3RoOyArK2spIHsKKy8vICAgICAgICAgICAgICAgIGxvZ2xuKGxvY2FsZXNba10uZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5FTkdMSVNIKSArICIgWyIgK2xvY2FsZXNba10gKyAiXSIpOworLy8gICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBDb2xsYXRvci5nZXRLZXl3b3JkcygpLmxlbmd0aDsgKytpKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgYmFzZSA9IENvbGxhdG9yLmdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KGtleXdvcmRzW2ldLGxvY2FsZXNba10pOworLy8gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXSB2YWx1ZXMgPSBDb2xsYXRvci5nZXRLZXl3b3JkVmFsdWVzKGtleXdvcmRzW2ldKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBDb2xsYXRvci5nZXRLZXl3b3JkVmFsdWVzKGtleXdvcmRzW2ldKS5sZW5ndGg7KytqKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIG90aGVyID0gQ29sbGF0b3IuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoa2V5d29yZHNbaV0sIAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVMb2NhbGUobG9jYWxlc1trXSArICJAIiArIGtleXdvcmRzW2ldICsgIj0iICsgdmFsdWVzW2pdKSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQXZhaWxhYmxlKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNBdmFpbGFibGVbMF0gJiYgIW90aGVyLmVxdWFscyhiYXNlKSkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlx0IiArIGtleXdvcmRzW2ldICsgIj0iICsgdmFsdWVzW2pdICsgIjtcdCIgKyBiYXNlICsgIjtcdCIgKyBvdGhlcik7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgfQorLy8gICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblNwYW5pc2hUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uU3BhbmlzaFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdhOGFhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblNwYW5pc2hUZXN0LmphdmEKQEAgLTAsMCArMSwxODEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogQ29sbGF0ZS9Db2xsYXRpb25TcGFuaXNoVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvZXNjb2xsLmNwcAorICoqLworIAorIHBhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisgCisgaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CisgaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKyBpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKKyBwdWJsaWMgY2xhc3MgQ29sbGF0aW9uU3BhbmlzaFRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb2xsYXRpb25TcGFuaXNoVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gdGVzdFNvdXJjZUNhc2VzID0geworICAgICAgICB7MHg2MSwgMHg2YywgMHg2OSwgMHg2MSwgMHg3M30sCisgICAgICAgIHsweDQ1LCAweDZjLCAweDZjLCAweDY5LCAweDZmLCAweDc0fSwKKyAgICAgICAgezB4NDgsIDB4NjUsIDB4NmMsIDB4NmMsIDB4NmZ9LAorICAgICAgICB7MHg2MSwgMHg2MywgMHg0OCwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDYzLCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NmMsIDB4NjksIDB4NjEsIDB4NzN9LAorICAgICAgICB7MHg2MSwgMHg2MywgMHg0OCwgMHg2M30sCisgICAgICAgIHsweDYxLCAweDYzLCAweDYzfSwKKyAgICAgICAgezB4NDgsIDB4NjUsIDB4NmMsIDB4NmMsIDB4NmZ9LAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0VGFyZ2V0Q2FzZXMgPSB7CisgICAgICAgIHsweDYxLCAweDZjLCAweDZjLCAweDY5LCAweDYxLCAweDczfSwKKyAgICAgICAgezB4NDUsIDB4NmQsIDB4NjksIDB4NmYsIDB4NzR9LAorICAgICAgICB7MHg2OCwgMHg2NSwgMHg2YywgMHg2YywgMHg0Zn0sCisgICAgICAgIHsweDYxLCAweDQzLCAweDQ4LCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NDMsIDB4NDgsIDB4NjN9LAorICAgICAgICB7MHg2MSwgMHg2YywgMHg2YywgMHg2OSwgMHg2MSwgMHg3M30sCisgICAgICAgIHsweDYxLCAweDQzLCAweDQ4LCAweDYzfSwKKyAgICAgICAgezB4NjEsIDB4NDMsIDB4NDgsIDB4NjN9LAorICAgICAgICB7MHg2OCwgMHg2NSwgMHg2YywgMHg2YywgMHg0Zn0sCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGludFtdIHJlc3VsdHMgPSB7CisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAvLyB0ZXN0IHByaW1hcnkgPiA1CisgICAgICAgIC0xLAorICAgICAgICAwLAorICAgICAgICAtMSwKKyAgICAgICAgMAorICAgIH07CisgICAgCisgICAgLy9zdGF0aWMgcHVibGljIENvbGxhdG9yIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZXMiLCAiRVMiKSk7CisgICAgCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7CisgICAgCisgICAgcHVibGljIENvbGxhdGlvblNwYW5pc2hUZXN0KCkgeworCisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIG15Q29sbGF0aW9uID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZXMiLCAiRVMiKSk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RUZXJ0aWFyeSgpeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDUgOyBpKyspIHsKKyAgICAgICAgICAgIGRvVGVzdCh0ZXN0U291cmNlQ2FzZXNbaV0sIHRlc3RUYXJnZXRDYXNlc1tpXSwgcmVzdWx0c1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFByaW1hcnkoKXsKKyAgICAgICAgaW50IGk7CisgICAgICAgIG15Q29sbGF0aW9uLnNldFN0cmVuZ3RoKENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICBmb3IgKGkgPSA1OyBpIDwgOTsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIGFtaW4gdGVzdCByb3V0aW5lLCB0ZXN0cyBydWxlcyBzcGVjaWZpYyB0byB0aGUgc3BhbmlzaCBsb2NhbGUKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0KGNoYXJbXSBzb3VyY2UsIGNoYXJbXSB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IG15Q29sbGF0aW9uLmNvbXBhcmUocywgdCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIHNvcnRLZXkxID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHMpOworICAgICAgICBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0KTsKKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQocywgdCwgc29ydEtleTEsIHNvcnRLZXkyLCBjb21wYXJlUmVzdWx0LCBrZXlSZXN1bHQsIGNvbXBhcmVSZXN1bHQsIHJlc3VsdCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICkgeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KXsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJMRVNTIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJFUVVBTCI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiR1JFQVRFUiI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgaHVoID0gIj8iOworICAgICAgICAgICAgdGFyZ2V0ICs9IGh1aCArIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcHJldHRpZnkoQ29sbGF0aW9uS2V5IHNvdXJjZUtleSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgYnl0ZVtdIGJ5dGVzPSBzb3VyY2VLZXkudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJbIjsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gSW50ZWdlci50b0hleFN0cmluZyhieXRlc1tpXSk7CisgICAgICAgICAgICB0YXJnZXQgKz0gIiAiOworICAgICAgICB9CisgICAgICAgIHRhcmdldCArPSAiXSI7CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdlOGI1MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UZXN0LmphdmEKQEAgLTAsMCArMSw0NzQgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lk1vZHVsZVRlc3Q7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUmF3Q29sbGF0aW9uS2V5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CisKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworcHVibGljIGNsYXNzIENvbGxhdGlvblRlc3QgZXh0ZW5kcyBNb2R1bGVUZXN0Cit7CisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIG5ldyBDb2xsYXRpb25UZXN0KCkucnVuKGFyZ3MpOworICAgICAgICAvKiBDb2xsYXRpb25UZXN0IHRlc3QgPSBuZXcgQ29sbGF0aW9uVGVzdCgpOworICAgICAgICBpZiAodGVzdC52YWxpZGF0ZSgpKSB7CisgICAgICAgICAgICB0ZXN0LlRlc3RDSWdub3JhYmxlQ29udHJhY3Rpb24oKTsKKyAgICAgICAgfSovCisgICAgfQorCisgICAgcHVibGljIENvbGxhdGlvblRlc3QoKSB7CisgICAgICAgIHN1cGVyKCJwcm9jZXNzTW9kdWxlcyIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHByb2Nlc3NNb2R1bGVzKCkgeworICAgICAgICB3aGlsZSAobmV4dFNldHRpbmdzKCkpIHsKKyAgICAgICAgICAgIHByb2Nlc3NUZXN0KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHN0YXRpYyB2b2lkIGRvVGVzdChUZXN0Rm13ayB0ZXN0LCBSdWxlQmFzZWRDb2xsYXRvciBjb2wsIFN0cmluZyBzb3VyY2UsIAorICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0LCBpbnQgcmVzdWx0KQorICAgIHsKKyAgICAgICAgZG9UZXN0VmFyaWFudCh0ZXN0LCBjb2wsIHNvdXJjZSwgdGFyZ2V0LCByZXN1bHQpOworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KHRlc3QsIGNvbCwgdGFyZ2V0LCBzb3VyY2UsIDEpOworICAgICAgICB9IAorICAgICAgICBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgZG9UZXN0VmFyaWFudCh0ZXN0LCBjb2wsIHRhcmdldCwgc291cmNlLCAtMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBkb1Rlc3RWYXJpYW50KHRlc3QsIGNvbCwgdGFyZ2V0LCBzb3VyY2UsIDApOworICAgICAgICB9CisKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgPSBjb2wuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIGJhY2tBbmRGb3J0aCh0ZXN0LCBpdGVyKTsKKyAgICAgICAgaXRlci5zZXRUZXh0KHRhcmdldCk7CisgICAgICAgIGJhY2tBbmRGb3J0aCh0ZXN0LCBpdGVyKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIGludGVnZXIgYXJyYXkgY29udGFpbmluZyBhbGwgb2YgdGhlIGNvbGxhdGlvbiBvcmRlcnMKKyAgICAgKiByZXR1cm5lZCBieSBjYWxscyB0byBuZXh0IG9uIHRoZSBzcGVjaWZpZWQgaXRlcmF0b3IKKyAgICAgKi8KKyAgICBzdGF0aWMgaW50W10gZ2V0T3JkZXJzKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyKSAKKyAgICB7CisgICAgICAgIGludCBtYXhTaXplID0gMTAwOworICAgICAgICBpbnQgc2l6ZSA9IDA7CisgICAgICAgIGludFtdIG9yZGVycyA9IG5ldyBpbnRbbWF4U2l6ZV07CisgICAgICAgIAorICAgICAgICBpbnQgb3JkZXI7CisgICAgICAgIHdoaWxlICgob3JkZXIgPSBpdGVyLm5leHQoKSkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgaWYgKHNpemUgPT0gbWF4U2l6ZSkgeworICAgICAgICAgICAgICAgIG1heFNpemUgKj0gMjsKKyAgICAgICAgICAgICAgICBpbnRbXSB0ZW1wID0gbmV3IGludFttYXhTaXplXTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG9yZGVycywgMCwgdGVtcCwgIDAsIHNpemUpOworICAgICAgICAgICAgICAgIG9yZGVycyA9IHRlbXA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvcmRlcnNbc2l6ZSsrXSA9IG9yZGVyOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobWF4U2l6ZSA+IHNpemUpIHsKKyAgICAgICAgICAgIGludFtdIHRlbXAgPSBuZXcgaW50W3NpemVdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShvcmRlcnMsIDAsIHRlbXAsICAwLCBzaXplKTsKKyAgICAgICAgICAgIG9yZGVycyA9IHRlbXA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9yZGVyczsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgYmFja0FuZEZvcnRoKFRlc3RGbXdrIHRlc3QsIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyKSAKKyAgICB7CisgICAgICAgIC8vIFJ1biB0aHJvdWdoIHRoZSBpdGVyYXRvciBmb3J3YXJkcyBhbmQgc3RpY2sgaXQgaW50byBhbiBhcnJheQorICAgICAgICBpdGVyLnJlc2V0KCk7CisgICAgICAgIGludFtdIG9yZGVycyA9IGdldE9yZGVycyhpdGVyKTsKKyAgICAKKyAgICAgICAgLy8gTm93IGdvIHRocm91Z2ggaXQgYmFja3dhcmRzIGFuZCBtYWtlIHN1cmUgd2UgZ2V0IHRoZSBzYW1lIHZhbHVlcworICAgICAgICBpbnQgaW5kZXggPSBvcmRlcnMubGVuZ3RoOworICAgICAgICBpbnQgbzsKKyAgICAKKyAgICAgICAgLy8gcmVzZXQgdGhlIGl0ZXJhdG9yCisgICAgICAgIGl0ZXIucmVzZXQoKTsKKyAgICAKKyAgICAgICAgd2hpbGUgKChvID0gaXRlci5wcmV2aW91cygpKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICBpZiAobyAhPSBvcmRlcnNbLS1pbmRleF0pIHsKKyAgICAgICAgICAgICAgICBpZiAobyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGluZGV4ICsrOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpbmRleCA+IDAgJiYgb3JkZXJzW2luZGV4XSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCAtLTsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgaWYgKG8gIT0gb3JkZXJzW2luZGV4XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5lcnJsbigiTWlzbWF0Y2ggYXQgaW5kZXggIiArIGluZGV4ICsgIjogMHgiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhvcmRlcnNbaW5kZXhdKSArICIgdnMgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhvKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICB3aGlsZSAoaW5kZXggIT0gMCAmJiBvcmRlcnNbaW5kZXggLSAxXSA9PSAwKSB7CisgICAgICAgICAgaW5kZXggLS07CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKGluZGV4ICE9IDApIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cgPSAiRGlkbid0IGdldCBiYWNrIHRvIGJlZ2lubmluZyAtIGluZGV4IGlzICI7CisgICAgICAgICAgICB0ZXN0LmVycmxuKG1zZyArIGluZGV4KTsKKyAgICAKKyAgICAgICAgICAgIGl0ZXIucmVzZXQoKTsKKyAgICAgICAgICAgIHRlc3QuZXJyKCJuZXh0OiAiKTsKKyAgICAgICAgICAgIHdoaWxlICgobyA9IGl0ZXIubmV4dCgpKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGhleFN0cmluZyA9ICIweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG8pICsgIiAiOworICAgICAgICAgICAgICAgIHRlc3QuZXJyKGhleFN0cmluZyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXN0LmVycmxuKCIiKTsKKyAgICAgICAgICAgIHRlc3QuZXJyKCJwcmV2OiAiKTsKKyAgICAgICAgICAgIHdoaWxlICgobyA9IGl0ZXIucHJldmlvdXMoKSkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIFN0cmluZyBoZXhTdHJpbmcgPSAiMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhvKSArICIgIjsKKyAgICAgICAgICAgICAgICAgdGVzdC5lcnIoaGV4U3RyaW5nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlc3QuZXJybG4oIiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwcml2YXRlIFN0cmluZyBtX3NlcXVlbmNlXzsKKyAgICBwcml2YXRlIGludCBtX3NlcXVlbmNlSW5kZXhfOworICAgIHByaXZhdGUgU3RyaW5nIG1fc291cmNlXzsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBtX3RhcmdldF8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgcHJpdmF0ZSBpbnQgbV9uZXh0UmVsYXRpb25fOworICAgIHByaXZhdGUgaW50IG1fcmVsYXRpb25fOworCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzVGVzdCgpIHsKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sID0gbnVsbDsKKyAgICAgICAgLy8gb2sgaSBoYXZlIHRvIGJlIGNhcmVmdWwgaGVyZSBzaW5jZSBpdCBzZWVtcyBsaWtlIHdlIGNhbiBoYXZlCisgICAgICAgIC8vIG11bHRpcGxlIGxvY2FsZXMgZm9yIGVhY2ggdGVzdAorICAgICAgICBTdHJpbmcgbG9jYWxlID0gc2V0dGluZ3MuZ2V0U3RyaW5nKCJUZXN0TG9jYWxlIik7CisgICAgICAgIGlmIChsb2NhbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gdGhpcyBpcyBhIGNhc2Ugd2hlcmUgd2UgaGF2ZSBsb2NhbGUKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgTG9jYWxlIGwgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKGxvY2FsZSk7CisgICAgICAgICAgICAgICAgY29sID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKGwpOworICAgICAgICAgICAgfWNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCB0aGUgbG9jYWxlIGRhdGEgZm9yIGxvY2FsZSAiICsgbG9jYWxlKTsKKyAgICAgICAgICAgIH1jYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgY3JlYXRpbmcgY29sbGF0b3IgZm9yIGxvY2FsZSAiICsgbG9jYWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGNvbGxhdG9yIGZvciBsb2NhbGUgJXNcbiIgKyBsb2NhbGUpOworICAgICAgICAgICAgcHJvY2Vzc0NvbGxhdG9yVGVzdHMoY29sKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcnVsZXMgPSBzZXR0aW5ncy5nZXRTdHJpbmcoIlJ1bGVzIik7CisgICAgICAgIC8vIG9rIGkgaGF2ZSB0byBiZSBjYXJlZnVsIGhlcmUgc2luY2UgaXQgc2VlbXMgbGlrZSB3ZSBjYW4gaGF2ZQorICAgICAgICAvLyBtdWx0aXBsZSBydWxlcyBmb3IgZWFjaCB0ZXN0CisgICAgICAgIGlmIChydWxlcyAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBoZXJlIHdlIGRlYWwgd2l0aCBydWxlcworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBjb2wgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICAgICAgfWNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSl7CisgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgdGhlIGxvY2FsZSBkYXRhOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgY3JlYXRpbmcgY29sbGF0b3IgZm9yIHJ1bGVzICIgKyBydWxlcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm9jZXNzQ29sbGF0b3JUZXN0cyhjb2wpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByb2Nlc3NDb2xsYXRvclRlc3RzKFJ1bGVCYXNlZENvbGxhdG9yIGNvbCkKKyAgICB7CisKKyAgICAgICAgLy8gb2sgaSBoYXZlIHRvIGJlIGNhcmVmdWwgaGVyZSBzaW5jZSBpdCBzZWVtcyBsaWtlIHdlIGNhbiBoYXZlCisgICAgICAgIC8vIG11bHRpcGxlIHJ1bGVzIGZvciBlYWNoIHRlc3QKKyAgICAgICAgU3RyaW5nIGFyZ3VtZW50cyA9IHNldHRpbmdzLmdldFN0cmluZygiQXJndW1lbnRzIik7CisgICAgICAgIGlmIChhcmd1bWVudHMgIT0gbnVsbCkgeworICAgICAgICAgICAgcHJvY2Vzc0FyZ3VtZW50cyhjb2wsIGFyZ3VtZW50cyk7CisgICAgICAgIH0KKyAgICAgICAgcHJvY2Vzc1JlYWR5Q29sbGF0b3IoY29sKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkcyB0aGUgb3B0aW9ucyBzdHJpbmcgYW5kIHNldHMgYXBwcm9wcmlhdGUgYXR0cmlidXRlcyBpbiBjb2xsYXRvcgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzQXJndW1lbnRzKFJ1bGVCYXNlZENvbGxhdG9yIGNvbCwgU3RyaW5nIGFyZ3VtZW50KSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgYm9vbGVhbiBwcmludEluZm8gPSBmYWxzZTsKKyAgICAgICAgd2hpbGUgKGkgPCBhcmd1bWVudC5sZW5ndGgoKSkgeworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShhcmd1bWVudC5jaGFyQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgLy8gZWF0IHdoaXRlc3BhY2UKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGkgKys7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKGkgPCBhcmd1bWVudC5sZW5ndGgoKSkgeworICAgICAgICAgICAgLy8gc2tpcCBvcGVuaW5nICdbJworICAgICAgICAgICAgaWYgKGFyZ3VtZW50LmNoYXJBdChpKSA9PSAnWycpIHsKKyAgICAgICAgICAgICAgICBpICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYoIWlzTW9kdWxhckJ1aWxkKCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgaW4gY29sbGF0aW9uIGFyZ3VtZW50cywgbWlzc2luZyBbIik7IC8vIG5vIG9wZW5pbmcgJ1snCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vICEhISBmb2xsb3dpbmcgbGluZSBoYXMgbm8gZWZmZWN0CisgICAgICAgICAgICAgICAgcHJpbnRJbmZvPXRydWU7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgdmFsdWUgPSBhcmd1bWVudC5pbmRleE9mKCcgJywgaSk7CisgICAgICAgICAgICBTdHJpbmcgb3B0aW9uID0gYXJndW1lbnQuc3Vic3RyaW5nKGksIHZhbHVlKTsKKyAgICAgICAgICAgIGkgPSBhcmd1bWVudC5pbmRleE9mKCddJywgdmFsdWUpOworICAgICAgICAgICAgU3RyaW5nIG9wdGlvbnZhbHVlID0gYXJndW1lbnQuc3Vic3RyaW5nKHZhbHVlICsgMSwgaSk7CisgICAgICAgICAgICBpICsrOworICAgICAgICAgICAgLy8gc29tZSBvcHRpb25zIGFyZSBub3QgYWRkZWQgYmVjYXVzZSB0aGV5IGhhdmUgbm8gcHVibGljIGFwaXMgeWV0CisgICAgICAgICAgICAvLyBUT0RPIGFkZCB0aGUgcmVzdCBvZiB0aGUgb3B0aW9ucworICAgICAgICAgICAgaWYgKG9wdGlvbi5lcXVhbHNJZ25vcmVDYXNlKCJhbHRlcm5hdGUiKSkgeworICAgICAgICAgICAgICAgIGlmIChvcHRpb252YWx1ZS5lcXVhbHNJZ25vcmVDYXNlKCJub24taWdub3JhYmxlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29sLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZChmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjb2wuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKHRydWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKG9wdGlvbi5lcXVhbHMoInN0cmVuZ3RoIikpIHsKKyAgICAgICAgICAgICAgICBpZiAob3B0aW9udmFsdWUuZXF1YWxzSWdub3JlQ2FzZSgiMSIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbC5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9udmFsdWUuZXF1YWxzSWdub3JlQ2FzZSgiMiIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbC5zZXRTdHJlbmd0aChDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChvcHRpb252YWx1ZS5lcXVhbHNJZ25vcmVDYXNlKCIzIikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29sLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAob3B0aW9udmFsdWUuZXF1YWxzSWdub3JlQ2FzZSgiNCIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbC5zZXRTdHJlbmd0aChDb2xsYXRvci5RVUFURVJOQVJZKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByaW50SW5mbykgeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCB0aGUgbG9jYWxlIGRhdGEuIFNraXBwaW5nLi4uIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gISEhIGVmZmVjdCBpcyBvZGQsIGlmIG5vIG1vZHVsYXIgYnVpbGQsIHRoaXMgZW1pdHMgbm8KKyAgICAgICAgLy8gbWVzc2FnZSBhdCBhbGwuICBIb3cgY29tZT8gIEhtbW0uICBwcmludEluZm8gaXMgbmV2ZXIKKyAgICAgICAgLy8gdHJ1ZSBpZiB3ZSBnZXQgaGVyZSwgc28gdGhpcyBjb2RlIGlzIG5ldmVyIGV4ZWN1dGVkLgorICAgICAgICAvKgorICAgICAgICBpZihwcmludEluZm8gPT0gdHJ1ZSAmJiBpc01vZHVsYXJCdWlsZCgpKXsKKyAgICAgICAgICAgIGluZm9sbigiQ291bGQgbm90IGxvYWQgdGhlIGxvY2FsZSBkYXRhLiBTa2lwcGluZy4uLiIpOworICAgICAgICB9CisgICAgICAgICovCisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByb2Nlc3NSZWFkeUNvbGxhdG9yKFJ1bGVCYXNlZENvbGxhdG9yIGNvbCkgeworICAgICAgIHdoaWxlIChuZXh0Q2FzZSgpKSB7CisgICAgICAgICAgICAvLyB0aGlzIGlzIHZlcnkgc2FkLCBpdCBpcyBhbGl0dGxlIGF3a3dhcmQgdG8gd3JpdGUgdGhlIGMgcmIKKyAgICAgICAgICAgIC8vIHRvIGhhdmUgYW4gb2JqZWN0IGFycmF5IG9mIGFuIG9iamVjdCBhcnJheSBvZiBhIDEgZWxlbWVudAorICAgICAgICAgICAgLy8gc3RyaW5nIGFycmF5LiBzbyBub3cgd2UgaGF2ZSBhbiBvYmplY3QgYXJyYXkgb2YgYSAxIGVsZW1lbnQKKyAgICAgICAgICAgIC8vIG9iamVjdCBhcnJheSBvZiBzdHJpbmcgYXJyYXlzLgorICAgICAgICAgICAgU3RyaW5nIHNlcXVlbmNlW10gPSB0ZXN0Y2FzZS5nZXRTdHJpbmdBcnJheSgic2VxdWVuY2UiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2VxdWVuY2UubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICAgICAgcHJvY2Vzc1NlcXVlbmNlKGNvbCwgc2VxdWVuY2VbaV0pOworICAgICAgICAgICAgfQorICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJvY2Vzc1NlcXVlbmNlKFJ1bGVCYXNlZENvbGxhdG9yIGNvbCwgU3RyaW5nIHNlcXVlbmNlKSB7CisgICAgICAgIC8vIFRPRE86IGhhdmUgYSBzbWFydGVyIHRlc3RlciB0aGF0IHJlbWVtYmVycyB0aGUgc2VxdWVuY2UgYW5kIGVuc3VyZXMKKyAgICAgICAgLy8gdGhhdCB0aGUgY29tcGxldGUgc2VxdWVuY2UgaXMgaW4gb3JkZXIuIFRoYXQgaXMgd2h5IEkgaGF2ZSBtYWRlIGEKKyAgICAgICAgLy8gY29uc3RyYWludCBpbiB0aGUgc2VxdWVuY2UgZm9ybWF0LgorICAgICAgICBtX3NlcXVlbmNlXyA9IHNlcXVlbmNlOworICAgICAgICBtX3NlcXVlbmNlSW5kZXhfID0gMDsKKyAgICAgICAgbV9uZXh0UmVsYXRpb25fID0gLTE7CisgICAgICAgIG1fdGFyZ2V0Xy5kZWxldGUoMCwgbV90YXJnZXRfLmxlbmd0aCgpKTsKKyAgICAgICAgVmVjdG9yIHZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgaW50IGxhc3RzbWFsbGVydGhhbmluZGV4ID0gLTE7CisgICAgICAgIGdldE5leHRJblNlcXVlbmNlKCk7CisgICAgICAgIHdoaWxlIChnZXROZXh0SW5TZXF1ZW5jZSgpKSB7CisgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gbV90YXJnZXRfLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBkb1Rlc3QodGhpcywgY29sLCBtX3NvdXJjZV8sIHRhcmdldCwgbV9yZWxhdGlvbl8pOworICAgICAgICAgICAgaW50IHZzaXplID0gdmVjdG9yLnNpemUoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSB2c2l6ZSAtIDE7IGkgPj0gMDsgaSAtLSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSAoU3RyaW5nKXZlY3Rvci5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKGkgPiBsYXN0c21hbGxlcnRoYW5pbmRleCkgeworICAgICAgICAgICAgICAgICAgICBkb1Rlc3QodGhpcywgY29sLCBzb3VyY2UsIHRhcmdldCwgbV9yZWxhdGlvbl8pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0KHRoaXMsIGNvbCwgc291cmNlLCB0YXJnZXQsIC0xKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2ZWN0b3IuYWRkRWxlbWVudCh0YXJnZXQpOworICAgICAgICAgICAgaWYgKG1fcmVsYXRpb25fIDwgMCkgeworICAgICAgICAgICAgICAgIGxhc3RzbWFsbGVydGhhbmluZGV4ID0gdnNpemUgLSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2VzIHRoZSBzZXF1ZW5jZSB0byBiZSB0ZXN0ZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZ2V0TmV4dEluU2VxdWVuY2UoKSB7CisgICAgICAgIGlmIChtX3NlcXVlbmNlSW5kZXhfID49IG1fc2VxdWVuY2VfLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIHF1b3RlZCA9IGZhbHNlOworICAgICAgICBib29sZWFuIHF1b3RlZHNpbmdsZSA9IGZhbHNlOworICAgICAgICBib29sZWFuIGRvbmUgPSBmYWxzZTsKKyAgICAgICAgaW50IGkgPSBtX3NlcXVlbmNlSW5kZXhfOworICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKyAgICAgICAgbV9zb3VyY2VfID0gbV90YXJnZXRfLnRvU3RyaW5nKCk7CisgICAgICAgIG1fcmVsYXRpb25fID0gbV9uZXh0UmVsYXRpb25fOworICAgICAgICBtX3RhcmdldF8uZGVsZXRlKDAsIG1fdGFyZ2V0Xy5sZW5ndGgoKSk7CisgICAgICAgIHdoaWxlIChpIDwgbV9zZXF1ZW5jZV8ubGVuZ3RoKCkgJiYgIWRvbmUpIHsKKyAgICAgICAgICAgIGludCBjaCA9IFVURjE2LmNoYXJBdChtX3NlcXVlbmNlXywgaSk7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnkoY2gpKSB7CisgICAgICAgICAgICAgICAgaSArPSAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaSArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghcXVvdGVkKSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGNoKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAzQyA6IC8vIDwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbmV4dFJlbGF0aW9uXyA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwM0QgOiAvLyA9CisgICAgICAgICAgICAgICAgICAgICAgICBtX25leHRSZWxhdGlvbl8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwM0UgOiAvLyA+CisgICAgICAgICAgICAgICAgICAgICAgICBtX25leHRSZWxhdGlvbl8gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwMjcgOiAvLyAnIHZlcnkgYmFzaWMgcXVvdGluZworICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlZHNpbmdsZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDVjIDogLy8gXCBzaW5nbGUgcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZWRzaW5nbGUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pbnNlcnQobV90YXJnZXRfLCBvZmZzZXQsIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzU3VwcGxlbWVudGFyeShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gMHgwMDI3KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaW5zZXJ0KG1fdGFyZ2V0Xywgb2Zmc2V0LCBjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzU3VwcGxlbWVudGFyeShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgIGlmIChxdW90ZWRzaW5nbGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKHF1b3RlZCA9PSB0cnVlKSB7CisgICAgICAgICAgICAgIGVycmxuKCJRdW90ZSBpbiBzZXF1ZW5jZSBub3QgY2xvc2VkISIpOworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQorCisKKyAgICAgICAgICBtX3NlcXVlbmNlSW5kZXhfID0gaTsKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGRvVGVzdFZhcmlhbnQoVGVzdEZtd2sgdGVzdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBpbnQgcmVzdWx0KQorICAgIHsKKyAgICAgICAgYm9vbGVhbiBwcmludEluZm8gPSBmYWxzZTsKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgID0gbXlDb2xsYXRpb24uY29tcGFyZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgIGlmIChjb21wYXJlUmVzdWx0ICE9IHJlc3VsdCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyAhISEgaWYgbm90IG1vZCBidWlsZCwgZXJyb3IsIGVsc2Ugbm90aGluZy4KKyAgICAgICAgICAgIC8vIHdhcm5sbiBpZiBub3QgYnVpbGQsIGVycm9yLCBlbHNlIGFsd2F5cyBwcmludCB3YXJuaW5nLgorICAgICAgICAgICAgLy8gZG8gd2UgbmVlZCBhICdxdWlldCB3YXJuaW5nPycgKGVyciBvciBsb2cpLiAgSG1tbSwKKyAgICAgICAgICAgIC8vIHdvdWxkIGl0IHdvcmsgdG8gaGF2ZSB0aGUgJ3ZlcmJvc2UnIGZsYWcgbGV0IHlvdSAKKyAgICAgICAgICAgIC8vIHN1cHByZXNzIHdhcm5pbmdzPyAgQXJlIHRoZXJlIGV2ZXIgc29tZSB3YXJuaW5ncyB5b3UKKyAgICAgICAgICAgIC8vIHdhbnQgdG8gc3VwcHJlc3MsIGFuZCBvdGhlcnMgeW91IGRvbid0PworICAgICAgICAgICAgaWYoIXRlc3QuaXNNb2R1bGFyQnVpbGQoKSl7CisgICAgICAgICAgICAgICAgdGVzdC5lcnJsbigiQ29tcGFyaW5nIFwiIiArIFV0aWxpdHkuaGV4KHNvdXJjZSkgKyAiXCIgd2l0aCBcIiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgodGFyZ2V0KSArICJcIiBleHBlY3RlZCAiICsgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgYnV0IGdvdCAiICsgY29tcGFyZVJlc3VsdCk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBwcmludEluZm8gPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIENvbGxhdGlvbktleSBzc2sgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkoc291cmNlKTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHRzayA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0YXJnZXQpOworICAgICAgICBjb21wYXJlUmVzdWx0ID0gc3NrLmNvbXBhcmVUbyh0c2spOworICAgICAgICBpZiAoY29tcGFyZVJlc3VsdCAhPSByZXN1bHQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoIXRlc3QuaXNNb2R1bGFyQnVpbGQoKSl7CisgICAgICAgICAgICAgICAgdGVzdC5lcnJsbigiQ29tcGFyaW5nIENvbGxhdGlvbktleXMgb2YgXCIiICsgVXRpbGl0eS5oZXgoc291cmNlKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlwiIHdpdGggXCIiICsgVXRpbGl0eS5oZXgodGFyZ2V0KSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlwiIGV4cGVjdGVkICIgKyByZXN1bHQgKyAiIGJ1dCBnb3QgIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICsgY29tcGFyZVJlc3VsdCk7CisgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgcHJpbnRJbmZvID0gdHJ1ZTsKKyAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFJhd0NvbGxhdGlvbktleSBzcnNrID0gbmV3IFJhd0NvbGxhdGlvbktleSgpOworICAgICAgICBteUNvbGxhdGlvbi5nZXRSYXdDb2xsYXRpb25LZXkoc291cmNlLCBzcnNrKTsKKyAgICAgICAgUmF3Q29sbGF0aW9uS2V5IHRyc2sgPSBuZXcgUmF3Q29sbGF0aW9uS2V5KCk7CisgICAgICAgIG15Q29sbGF0aW9uLmdldFJhd0NvbGxhdGlvbktleSh0YXJnZXQsIHRyc2spOworICAgICAgICBjb21wYXJlUmVzdWx0ID0gc3NrLmNvbXBhcmVUbyh0c2spOworICAgICAgICBpZiAoY29tcGFyZVJlc3VsdCAhPSByZXN1bHQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoIXRlc3QuaXNNb2R1bGFyQnVpbGQoKSl7CisgICAgICAgICAgICAgICAgdGVzdC5lcnJsbigiQ29tcGFyaW5nIFJhd0NvbGxhdGlvbktleXMgb2YgXCIiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChzb3VyY2UpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXCIgd2l0aCBcIiIgKyBVdGlsaXR5LmhleCh0YXJnZXQpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXCIgZXhwZWN0ZWQgIiArIHJlc3VsdCArICIgYnV0IGdvdCAiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBjb21wYXJlUmVzdWx0KTsKKyAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICBwcmludEluZm8gPSB0cnVlOworICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gaG1tbSwgYnV0IGhlcmUgd2UgaXNzdWUgYSB3YXJuaW5nCisgICAgICAgIC8vIG9ubHkgZGlmZmVyZW5jZSBpcywgb25lIHdhcm5pbmcgb3IgdHdvLCBhbmQgZGV0YWlsZWQgaW5mbyBvciBub3Q/CisgICAgICAgIC8vIGhtbW0sIGRvZXMgc2VlbSBwcmVmZXJhYmxlIHRvIG9taXQgZGV0YWlsIGlmIHdlIGtub3cgaXQgaXMgZHVlIHRvIG1pc3NpbmcgcmVzb3VyY2UgZGF0YS4KKyAgICAgICAgLy8gd2VsbCwgaWYgd2UgbGFiZWwgdGhlIGVycm9ycyBhcyB3YXJuaW5ncywgd2UgY2FuIGxldCBwZW9wbGUga25vdyB0aGUgZGV0YWlscywgYnV0CisgICAgICAgIC8vIGFsc28ga25vdyB0aGV5IG1heSBiZSBkdWUgdG8gbWlzc2luZyByZXNvdXJjZSBkYXRhLiAgYmFzaWNhbGx5IHRoaXMgY29kZSBpcyBhc3NlcnRpbmcKKyAgICAgICAgLy8gdGhhdCB0aGUgZXJyb3JzIGFyZSBkdWUgdG8gbWlzc2luZyByZXNvdXJjZSBkYXRhLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSB0cnVlLgorICAgICAgICBpZiAocHJpbnRJbmZvKSB7CisgICAgICAgICAgICB0ZXN0Lndhcm5sbigiQ291bGQgbm90IGxvYWQgbG9jYWxlIGRhdGEgc2tpcHBpbmcuIik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVGVzdERhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UZXN0RGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5Y2Y0NjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVGVzdERhdGEuamF2YQpAQCAtMCwwICsxLDg1MCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25UZXN0RGF0YSBleHRlbmRzIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHVibGljIENvbGxhdGlvblRlc3REYXRhKCkgeworICAgICAgICAgIHN1cGVyLmNvbnRlbnRzID0gZGF0YTsKKyAgICB9CisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gZGF0YSA9IG5ldyBPYmplY3RbXVtdIHsgCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZXNlIGFyZSB0aGUgZGF0YSBkcml2ZW4gdGVzdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSGVhZGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZXF1ZW5jZSIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTG9uZ0Rlc2NyaXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGZvbGxvd2luZyBlbnRyaWVzIGFyZSBzZXBhcmF0ZSB0ZXN0cyBjb250YWluaW5nIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiB0ZXN0IGRhdGEgZm9yIHZhcmlvdXMgbG9jYWxlcy5FYWNoIGVudHJ5IGhhcyB0aGUgZiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvbGxvd2luZyBmaWVsZHM6IEluZm8vRGVzY3JpcHRpb24gLSBzaG9ydCBkZXNjcmlvcHQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW9uIG9mIHRoZSB0ZXN0U2V0dGluZ3MgLSBzZXR0aW5ncyBmb3IgdGhlIHRlc3QuU2V0IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpbmdzL1Rlc3RMb2NhbGUgLSBsb2NhbGUgZm9yIHRoZSBjb2xsYXRvciBPUlNldHRpbiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJncy9SdWxlcyAtIHJ1bGVzIGZvciB0aGUgY29sbGF0b3IgKGNhbid0IGhhdmUgYm90aCkiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZ3MvQXJndW1lbnRzIC0gYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbGxhdG9yIGJlZm9yZSB0ZXN0aW5nLiBVc2UgcnVsZSBzeW50YXguQ2FzZXMgLSBzZSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0IG9mIHRlc3QgY2FzZXMsIHdoaWNoIGFyZSBzZXF1ZW5jZXMgb2Ygc3RyaW5ncyB0aGEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidCB3aWxsIGJlIHBhcnNlZFNlcXVlbmNlcyBtdXN0IG5vdCBjaGFuZ2UgdGhlIHNpZ24gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9mIHJlbGF0aW9uLCBpLmUuIHdlIGNhbiBvbmx5IGhhdmUgPCBhbmQgPSBvcj4gYW5kICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9IGluIHNpbmdsZSBzZXF1ZW5jZS4gQ2Fubm90IG1peCA8IGFuZCA+IGluIHRoZSBzYW0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZSBzZXF1ZW5jZS4gV2hpdGVzcGFjZSBpc2lzIGlnbm9yZWQgdW5sZXNzIHF1b3RlZC4iLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIlRlc3REYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3RBbGJhbmlhbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDYXNlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjejxcdTAwRTc8ZDxkejxkaDxlPGV6PFx1MDBFQjxmIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPGd6PGdqPGg8bHo8bGw8bTxuejxuajxvPHJ6PHJyPCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInM8c3o8c2g8dDx0ejx0aDx1PHh6PHhoPHk8eno8emgiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbGJhbmlhbiBzb3J0IG9yZGVyLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0TG9jYWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdEVzdG9uaWFuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN5PFx1MDE2MTxcdTAxNjF5PHo8enk8XHUwMTdFPHYiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8dzx2YTxcdTAwRjU8XHUwMEY1eTxcdTAwRTQ8XHUwMEU0IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieTxcdTAwRjY8XHUwMEY2eTxcdTAwRkM8XHUwMEZDeSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjx4IiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZm8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVzY3JpcHRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXN0b25pYW4gc29ydCBvcmRlci4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZ3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExvY2FsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3RKYXZhU3R5bGVSdWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImEgPSBlcXVhbCA8IHogPCB4IDwgdyA8IGIgPCB5IgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJqYXZhLnRleHQgYWxsb3dzIHJ1bGVzIHRvIHN0YXJ0IGFzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJzw8PHg8PDx5Li4uJyB3ZSBlbXVsYXRlIHRoaXMgYnkgYXMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1bWluZyBhICZbZmlyc3QgdGVydGlhcnkgaWdub3JhYmxlIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJdIGluIHRoaXMgY2FzZS4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZ3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1lcXVhbDw8PHo8PHg8PDx3PHkgJltmaXJzdCB0ZXIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aWFyeSBpZ25vcmFibGVdPWEgJltmaXJzdCBwcmltIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJ5IGlnbm9yYWJsZV09YiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExhdHZpYW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FzZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY3o8XHUwMTBEPGQ8Z3o8XHUwMTIzPGg8aXo8eTxqPCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImt6PFx1MDEzNzxsPGx6PFx1MDEzQzxtPG56PFx1MDE0NiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxvPHJ6PFx1MDE1NzxzPHN6PFx1MDE2MTx0PHp6PFx1MDE3RSIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmZvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlc2NyaXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxhdHZpYW4gc29ydCBvcmRlci4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZ3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExvY2FsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibHYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3RMaXRodWFuaWFuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImN6PFx1MDEwRDxkPGl6PHk8ajxzejxcdTAxNjE8dDwiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ6ejxcdTAxN0UiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMaXRodWFuaWFuIHNvcnQgb3JkZXIuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldHRpbmdzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3RMb2NhbGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImx0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0TlNoaWZ0ZWRJZ25vcmFibGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FzZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYScgJ2I8QScgJ2I8YScgJ1x1MDMwMWI8QScgJ1x1MDMwMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImI8YScgJ1x1MDMwMGI8QScgJ1x1MDMwMGI8YV9iPEEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfYjxhX1x1MDMwMWI8QV9cdTAzMDFiPGFfXHUwMzAwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYjxBX1x1MDMwMGI8YVx1MDMwMWI8QVx1MDMwMWI8YSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDMwMGI8QVx1MDMwMGI8IiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZm8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVzY3JpcHRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTmV3IFVDQSBzdGF0ZXMgdGhhdCBwcmltYXJ5IGlnbm9yYWIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxlcyBzaG91bGQgYmUgY29tcGxldGVseSBpZ25vcmFibGUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGVuIGZvbGxvd2luZyBhIHNoaWZ0ZWQgY29kZSBwb2ludCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlthbHRlcm5hdGUgbm9uLWlnbm9yYWJsZV1bc3RyZW4iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJndGggM10iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExvY2FsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicm9vdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdFNhZmVTdXJyb2dhdGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImE8eFx1RDgwMFx1REMwMGIiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXNjcmlwdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJdCB0dXJuZWQgb3V0IHRoYXQgc3Vycm9nYXRlcyB3ZXJlICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm90IHNraXBwZWQgcHJvcGVybHkgd2hlbiBpdGVyYXRpbmciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBiYWNrd2FyZHMgaWYgdGhleSB3ZXJlIGluIHRoZSBtaWRkIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsZSBvZiBhIGNvbnRyYWN0aW9uLiBUaGlzIHRlc3QgYXNzdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVzIHRoYXQgdGhpcyBpcyBmaXhlZC4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZ3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiZhIDwgeFx1RDgwMFx1REMwMGIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3RTaGlmdGVkSWdub3JhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImEnICdiPWEnICdcdTAzMDBiPWEnICdcdTAzMDFiPGEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfYj1hX1x1MDMwMGI9YV9cdTAzMDFiPEEnICdiPUEnIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICdcdTAzMDBiPUEnICdcdTAzMDFiPEFfYj1BX1x1MDMwMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImI9QV9cdTAzMDFiPGFcdTAzMDFiPEFcdTAzMDFiPGEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAzMDBiPEFcdTAzMDBiIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZm8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVzY3JpcHRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTmV3IFVDQSBzdGF0ZXMgdGhhdCBwcmltYXJ5IGlnbm9yYWIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxlcyBzaG91bGQgYmUgY29tcGxldGVseSBpZ25vcmFibGUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGVuIGZvbGxvd2luZyBhIHNoaWZ0ZWQgY29kZSBwb2ludCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlthbHRlcm5hdGUgc2hpZnRlZF1bc3RyZW5ndGggNF0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExvY2FsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicm9vdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdFNpbXBsaWZpZWRDaGluZXNlT3JkZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FzZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHU1RjIwPFx1NUYyMFx1NEUwMFx1OEUzRiIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmZvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlc2NyaXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNvcnRlZCBmaWxlIGhhcyBkaWZmZXJlbnQgb3JkZXIuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldHRpbmdzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZ3VtZW50cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW25vcm1hbGl6YXRpb24gb25dIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3RMb2NhbGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJvb3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3RUaGFpUGFydGlhbFNvcnRLZXlQcm9ibGVtcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDYXNlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFMDFcdTBFMDFcdTBFMzhcdTBFMThcdTBFMjBcdTBFMzEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFMTNcdTBFMTFcdTBFNEM8XHUwRTAxXHUwRTAxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwRTM4XHUwRTJBXHUwRTMxXHUwRTE5XHUwRTQyXHUwRTE4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFMDFcdTBFMDdcdTBFMDFcdTBFMzJcdTBFMjM8IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwRTAxXHUwRTA3XHUwRTQyXHUwRTAxXHUwRTQ5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFMDFcdTBFMjNcdTBFMTlcdTBFMTdcdTBFMzI8IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwRTAxXHUwRTIzXHUwRTE5XHUwRTE5XHUwRTQwXHUwRTBBIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwRTQ5XHUwRTMyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFMDFcdTBFMjNcdTBFMzBcdTBFNDBcdTBFMDhcdTBFMzUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFMjJcdTBFMjc8XHUwRTAxXHUwRTIzXHUwRTMwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwRTQwXHUwRTA4XHUwRTM1XHUwRTRBXHUwRTIyXHUwRTI3IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFMDFcdTBFMjNcdTBFMjNcdTBFNDBcdTBFMEFcdTBFMkQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwRTAxXHUwRTIzXHUwRTIzXHUwRTQwXHUwRTBBIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwRTQ5XHUwRTMyIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZm8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVzY3JpcHRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlc2UgYXJlIGV4YW1wbGVzIG9mIHN0cmluZ3MgdGhhdCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhdXNlZCB0cm91YmxlIGluIHBhcnRpYWwgc29ydCBrZXkgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0aW5nLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0TG9jYWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aF9USCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdFRpYmV0YW5Ob3JtYWxpemVkSXRlcmF0aXZlQ3Jhc2giLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FzZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwRjcxXHUwRjcyXHUwRjgwXHUwRjcxXHUwRjcyPCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEY4MCIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmZvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlc2NyaXB0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoaXMgcHJldHR5IG11Y2ggY3Jhc2hlcy4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZ3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExvY2FsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicm9vdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdERhbmlzaFByaW1hcnkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FzZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTHZpPEx3aSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTFx1MDBFNHZpPExcdTAwRjZ3aSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTFx1MDBGQ2JlY2s9THliZWNrIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZm8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVzY3JpcHRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhpcyB0ZXN0IGdvZXMgdGhyb3VnaCBwcmltYXJ5IHN0cmUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5ndGggY2FzZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZ3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbc3RyZW5ndGggMV0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExvY2FsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3REYW5pc2hUZXJ0aWFyeSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDYXNlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMdWM8bHVjayIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibHVjazxMXHUwMEZDYmVjayIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTFx1MDBGQ2JlY2s+bHliZWNrIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMXHUwMEU0dmk8TFx1MDBGNndlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMXHUwMEY2d3c8bWFzdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQS9TPEFORFJFPEFORFJcdTAwQzk8QU5EUkVBUzxBUyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxDQTxcdTAwQzdBPENCPFx1MDBDN0M8RC5TLkIuPEQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBPFx1MDBEMEE8REI8XHUwMEQwQzxEU0I8RFNDPEVLIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1RSQV9BUkJFSkRFPEVLU1RSQUJVRDA8SFx1MDBEOCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNUPEhBQUc8SFx1MDBDNU5EQk9HPEhBQU5EVlx1MDBDNiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJLU0JBTktFTjxLYXJsPGthcmw8J05JRUxTIEpcdTAwRDgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSR0VOJzxOSUVMUy1KXHUwMEQ4UkdFTjxOSUVMU0VOIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPCdSXHUwMEM5RSwgQSc8J1JFRSwgQic8J1JcdTAwQzkiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFLCBMJzwnUkVFLCBWJzwnU0NIWVRULCBCJzwnU0NIIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWVRULCBIJzwnU0NIXHUwMERDVFQsIEgnPCdTQ0hZVCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlQsIEwnPCdTQ0hcdTAwRENUVCwgTSc8U1M8XHUwMERGIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFNTQTwnU1RPUkUgVklMRE1PU0UnPFNUT1JFS1x1MDBDNiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlIwPCdTVE9STSBQRVRFUlNFTic8U1RPUk1MWTxUSE8iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSVkFMRDxUSE9SVkFSRFVSPFx1MDBGRU9SVkFSXHUwMEQwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVVI8VEhZR0VTRU48J1ZFU1RFUkdcdTAwQzVSRCwgQSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIic8J1ZFU1RFUkdBQVJELCBBJzwnVkVTVEVSR1x1MDBDNSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJELCBCJzxcdTAwQzZCTEU8XHUwMEM0QkxFPFx1MDBEOCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJFUkc8XHUwMEQ2QkVSRyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5kZXJlPGNoYXF1ZTxjaGVtaW48Y290ZTxjb3RcdTAwRTkiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8Y1x1MDBGNHRlPGNcdTAwRjR0XHUwMEU5PFx1MDEwRCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVcdTAxMERcdTAxMTN0PEN6ZWNoPGhpXHUwMTYxYTwiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpcmRpc2NoPGxpZTxsaXJlPGxsYW1hPGxcdTAwRjV1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZzxsXHUwMEYyemE8bHVcdTAxMEQ8bHVjazxMXHUwMEZDIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmVjazxseWU8bFx1MDBFNHZpPExcdTAwRjZ3ZW48bSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDBFMFx1MDE2MXRhPG1cdTAwRUVyPG15bmRpZzwiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNXHUwMEU0bm5lcjxtXHUwMEY2Y2h0ZW48cGlcdTAwRjEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhPHBpbnQ8cHlsb248XHUwMTYxXHUwMEUwcmFuPHNhIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidm9pcjxcdTAxNjBlcmJcdTAxNkJyYTxTaWV0bGE8XHUwMTVCIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibHViPHN1YnRsZTxzeW1ib2w8c1x1MDBFNG10bGljaCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjx2ZXJrZWhydDx2b3g8dlx1MDBFNGdhPHdhZmZsZTwiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3b29kPHllbjx5dWFuPHl1Y2NhPFx1MDE3RWFsPFx1MDE3RSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVuYTxcdTAxN0Rlblx1MDExM3ZhPHpvbzA8WnZpZWQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyaWphPFpcdTAwRkNyaWNoPHp5c2swPFx1MDBFNG5kIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXJlIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZm8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVzY3JpcHRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhpcyB0ZXN0IGdvZXMgdGhyb3VnaCB0ZXJ0aWFyeSBzdHIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVuZ3RoIGNhc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldHRpbmdzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZ3VtZW50cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW3N0cmVuZ3RoIDNdIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3RMb2NhbGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0TmV3SGluZGlSdWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDYXNlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NTA8XHUwOTY0PFx1MDk2NTxcdTA5NzA8XHUwOTY2IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDk2NzxcdTA5Njg8XHUwOTY5PFx1MDk2QTxcdTA5NkIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTZDPFx1MDk2RDxcdTA5NkU8XHUwOTZGPFx1MDkwNSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MDY8XHUwOTA3PFx1MDkwODxcdTA5MDk8XHUwOTBBIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkwQjxcdTA5NjA8XHUwOTBDPFx1MDk2MTxcdTA5MEQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTBFPFx1MDkwRjxcdTA5MTA8XHUwOTExPFx1MDkxMiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MTM8XHUwOTE0PFx1MDkxNTxcdTA5MTVcdTA5M0MiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9XHUwOTU4PFx1MDkxNVx1MDkwMTxcdTA5MTVcdTA5MDIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTE1XHUwOTAzPFx1MDkxNVx1MDk1MTxcdTA5MTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NTI8XHUwOTE1XHUwOTUzPFx1MDkxNVx1MDk1NCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MTVcdTA5M0Q8XHUwOTE1XHUwOTREPFx1MDkxNSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDkzRTxcdTA5MTVcdTA5M0Y8XHUwOTE1XHUwOTQwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxNVx1MDk0MTxcdTA5MTVcdTA5NDI8XHUwOTE1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTQzPFx1MDkxNVx1MDk0NDxcdTA5MTVcdTA5NjIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTE1XHUwOTYzPFx1MDkxNVx1MDk0NTxcdTA5MTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDY8XHUwOTE1XHUwOTQ3PFx1MDkxNVx1MDk0OCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MTVcdTA5NDk8XHUwOTE1XHUwOTRBPFx1MDkxNSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0QjxcdTA5MTVcdTA5NEM8XHUwOTE2PFx1MDkxNiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDkzQyA9XHUwOTU5PFx1MDkxNlx1MDkwMTxcdTA5MTYiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5MDI8XHUwOTE2XHUwOTAzPFx1MDkxNlx1MDk1MSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MTZcdTA5NTI8XHUwOTE2XHUwOTUzPFx1MDkxNiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk1NDxcdTA5MTZcdTA5M0Q8XHUwOTE2XHUwOTREIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxNlx1MDkzRTxcdTA5MTZcdTA5M0Y8XHUwOTE2IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTQwPFx1MDkxNlx1MDk0MTxcdTA5MTZcdTA5NDIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTE2XHUwOTQzPFx1MDkxNlx1MDk0NDxcdTA5MTYiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NjI8XHUwOTE2XHUwOTYzPFx1MDkxNlx1MDk0NSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MTZcdTA5NDY8XHUwOTE2XHUwOTQ3PFx1MDkxNiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0ODxcdTA5MTZcdTA5NDk8XHUwOTE2XHUwOTRBIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxNlx1MDk0QjxcdTA5MTZcdTA5NEM8XHUwOTE3IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxN1x1MDkzQz1cdTA5NUE8XHUwOTE3XHUwOTAxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxN1x1MDkwMjxcdTA5MTdcdTA5MDM8XHUwOTE3IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTUxPFx1MDkxN1x1MDk1MjxcdTA5MTdcdTA5NTMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTE3XHUwOTU0PFx1MDkxN1x1MDkzRDxcdTA5MTciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NEQ8XHUwOTE3XHUwOTNFPFx1MDkxN1x1MDkzRiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MTdcdTA5NDA8XHUwOTE3XHUwOTQxPFx1MDkxNyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0MjxcdTA5MTdcdTA5NDM8XHUwOTE3XHUwOTQ0IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxN1x1MDk2MjxcdTA5MTdcdTA5NjM8XHUwOTE3IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTQ1PFx1MDkxN1x1MDk0NjxcdTA5MTdcdTA5NDciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTE3XHUwOTQ4PFx1MDkxN1x1MDk0OTxcdTA5MTciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NEE8XHUwOTE3XHUwOTRCPFx1MDkxN1x1MDk0QyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MTg8XHUwOTE5PFx1MDkxQTxcdTA5MUI8XHUwOTFDIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxQ1x1MDkzQyA9XHUwOTVCPFx1MDkxQ1x1MDkwMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MUNcdTA5MDI8XHUwOTFDXHUwOTAzPFx1MDkxQyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk1MTxcdTA5MUNcdTA5NTI8XHUwOTFDXHUwOTUzIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxQ1x1MDk1NDxcdTA5MUNcdTA5M0Q8XHUwOTFDIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTREPFx1MDkxQ1x1MDkzRTxcdTA5MUNcdTA5M0YiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTFDXHUwOTQwPFx1MDkxQ1x1MDk0MTxcdTA5MUMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDI8XHUwOTFDXHUwOTQzPFx1MDkxQ1x1MDk0NCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MUNcdTA5NjI8XHUwOTFDXHUwOTYzPFx1MDkxQyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0NTxcdTA5MUNcdTA5NDY8XHUwOTFDXHUwOTQ3IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkxQ1x1MDk0ODxcdTA5MUNcdTA5NDk8XHUwOTFDIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTRBPFx1MDkxQ1x1MDk0QjxcdTA5MUNcdTA5NEMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTFEPFx1MDkxRTxcdTA5MUY8XHUwOTIwPFx1MDkyMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MjFcdTA5M0M9XHUwOTVDPFx1MDkyMVx1MDkwMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MjFcdTA5MDI8XHUwOTIxXHUwOTAzPFx1MDkyMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk1MTxcdTA5MjFcdTA5NTI8XHUwOTIxXHUwOTUzIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyMVx1MDk1NDxcdTA5MjFcdTA5M0Q8XHUwOTIxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTREPFx1MDkyMVx1MDkzRTxcdTA5MjFcdTA5M0YiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTIxXHUwOTQwPFx1MDkyMVx1MDk0MTxcdTA5MjEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDI8XHUwOTIxXHUwOTQzPFx1MDkyMVx1MDk0NCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MjFcdTA5NjI8XHUwOTIxXHUwOTYzPFx1MDkyMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0NTxcdTA5MjFcdTA5NDY8XHUwOTIxXHUwOTQ3IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyMVx1MDk0ODxcdTA5MjFcdTA5NDk8XHUwOTIxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTRBPFx1MDkyMVx1MDk0QjxcdTA5MjFcdTA5NEMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTIyPFx1MDkyMlx1MDkzQz1cdTA5NUQ8XHUwOTIyIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTAxPFx1MDkyMlx1MDkwMjxcdTA5MjJcdTA5MDMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTIyXHUwOTUxPFx1MDkyMlx1MDk1MjxcdTA5MjIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NTM8XHUwOTIyXHUwOTU0PFx1MDkyMlx1MDkzRCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MjJcdTA5NEQ8XHUwOTIyXHUwOTNFPFx1MDkyMiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDkzRjxcdTA5MjJcdTA5NDA8XHUwOTIyXHUwOTQxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyMlx1MDk0MjxcdTA5MjJcdTA5NDM8XHUwOTIyIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTQ0PFx1MDkyMlx1MDk2MjxcdTA5MjJcdTA5NjMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTIyXHUwOTQ1PFx1MDkyMlx1MDk0NjxcdTA5MjIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDc8XHUwOTIyXHUwOTQ4PFx1MDkyMlx1MDk0OSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MjJcdTA5NEE8XHUwOTIyXHUwOTRCPFx1MDkyMiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0QzxcdTA5MjM8XHUwOTI0PFx1MDkyNTxcdTA5MjYiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTI3PFx1MDkyODxcdTA5MjhcdTA5M0MgPVx1MDkyOSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwgXHUwOTI4XHUwOTAxPFx1MDkyOFx1MDkwMjwgXHUwOTI4IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTAzPFx1MDkyOFx1MDk1MTxcdTA5MjhcdTA5NTIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTI4XHUwOTUzPFx1MDkyOFx1MDk1NDxcdTA5MjgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5M0Q8XHUwOTI4XHUwOTREPFx1MDkyOFx1MDkzRSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MjhcdTA5M0Y8XHUwOTI4XHUwOTQwPFx1MDkyOCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0MTxcdTA5MjhcdTA5NDI8XHUwOTI4XHUwOTQzIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyOFx1MDk0NDxcdTA5MjhcdTA5NjI8XHUwOTI4IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTYzPFx1MDkyOFx1MDk0NTxcdTA5MjhcdTA5NDYiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTI4XHUwOTQ3PFx1MDkyOFx1MDk0ODxcdTA5MjgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDk8XHUwOTI4XHUwOTRBPFx1MDkyOFx1MDk0QiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MjhcdTA5NEM8XHUwOTJBPFx1MDkyQjxcdTA5MkIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5M0M9XHUwOTVFPFx1MDkyQlx1MDkwMTxcdTA5MkIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5MDI8XHUwOTJCXHUwOTAzPFx1MDkyQlx1MDk1MSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MkJcdTA5NTI8XHUwOTJCXHUwOTUzPFx1MDkyQiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk1NDxcdTA5MkJcdTA5M0Q8XHUwOTJCXHUwOTREIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyQlx1MDkzRTxcdTA5MkJcdTA5M0Y8XHUwOTJCIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTQwPFx1MDkyQlx1MDk0MTxcdTA5MkJcdTA5NDIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTJCXHUwOTQzPFx1MDkyQlx1MDk0NDxcdTA5MkIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NjI8XHUwOTJCXHUwOTYzPFx1MDkyQlx1MDk0NSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MkJcdTA5NDY8XHUwOTJCXHUwOTQ3PFx1MDkyQiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0ODxcdTA5MkJcdTA5NDk8XHUwOTJCXHUwOTRBIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyQlx1MDk0QjxcdTA5MkJcdTA5NEM8XHUwOTJDIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyRDxcdTA5MkU8XHUwOTJGPFx1MDkyRlx1MDkzQyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1cdTA5NUYgPFx1MDkyRlx1MDkwMTxcdTA5MkZcdTA5MDIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTJGXHUwOTAzPFx1MDkyRlx1MDk1MTxcdTA5MkYiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NTI8XHUwOTJGXHUwOTUzPFx1MDkyRlx1MDk1NCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MkZcdTA5M0Q8XHUwOTJGXHUwOTREPFx1MDkyRiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDkzRTxcdTA5MkZcdTA5M0Y8XHUwOTJGXHUwOTQwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkyRlx1MDk0MTxcdTA5MkZcdTA5NDI8XHUwOTJGIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTQzPFx1MDkyRlx1MDk0NDxcdTA5MkZcdTA5NjIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTJGXHUwOTYzPFx1MDkyRlx1MDk0NTxcdTA5MkYiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDY8XHUwOTJGXHUwOTQ3PFx1MDkyRlx1MDk0OCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MkZcdTA5NDk8XHUwOTJGXHUwOTRBPFx1MDkyRiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0QjxcdTA5MkZcdTA5NEM8XHUwOTMwPFx1MDkzMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDkzQz1cdTA5MzE8XHUwOTMwXHUwOTAxPFx1MDkzMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDkwMjxcdTA5MzBcdTA5MDM8XHUwOTMwXHUwOTUxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkzMFx1MDk1MjxcdTA5MzBcdTA5NTM8XHUwOTMwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTU0PFx1MDkzMFx1MDkzRDxcdTA5MzBcdTA5NEQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTMwXHUwOTNFPFx1MDkzMFx1MDkzRjxcdTA5MzAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDA8XHUwOTMwXHUwOTQxPFx1MDkzMFx1MDk0MiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MzBcdTA5NDM8XHUwOTMwXHUwOTQ0PFx1MDkzMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk2MjxcdTA5MzBcdTA5NjM8XHUwOTMwXHUwOTQ1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkzMFx1MDk0NjxcdTA5MzBcdTA5NDc8XHUwOTMwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTQ4PFx1MDkzMFx1MDk0OTxcdTA5MzBcdTA5NEEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTMwXHUwOTRCPFx1MDkzMFx1MDk0QzxcdTA5MzIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTMzPFx1MDkzM1x1MDkzQz1cdTA5MzQ8XHUwOTMzIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTAxPFx1MDkzM1x1MDkwMjxcdTA5MzNcdTA5MDMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTMzXHUwOTUxPFx1MDkzM1x1MDk1MjxcdTA5MzMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NTM8XHUwOTMzXHUwOTU0PFx1MDkzM1x1MDkzRCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MzNcdTA5NEQ8XHUwOTMzXHUwOTNFPFx1MDkzMyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDkzRjxcdTA5MzNcdTA5NDA8XHUwOTMzXHUwOTQxIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDkzM1x1MDk0MjxcdTA5MzNcdTA5NDM8XHUwOTMzIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwOTQ0PFx1MDkzM1x1MDk2MjxcdTA5MzNcdTA5NjMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTMzXHUwOTQ1PFx1MDkzM1x1MDk0NjxcdTA5MzMiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA5NDc8XHUwOTMzXHUwOTQ4PFx1MDkzM1x1MDk0OSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5MzNcdTA5NEE8XHUwOTMzXHUwOTRCPFx1MDkzMyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDk0QzxcdTA5MzU8XHUwOTM2PFx1MDkzNzxcdTA5MzgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTM5PFx1MDkzQzxcdTA5MDE8XHUwOTAyPFx1MDkwMyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5NTE8XHUwOTUyPFx1MDk1MzxcdTA5NTQ8XHUwOTNEIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDk0RDxcdTA5M0U8XHUwOTNGPFx1MDk0MDxcdTA5NDEiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8XHUwOTQyPFx1MDk0MzxcdTA5NDQ8XHUwOTYyPFx1MDk2MyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxcdTA5NDU8XHUwOTQ2PFx1MDk0NzxcdTA5NDg8XHUwOTQ5IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPFx1MDk0QTxcdTA5NEI8XHUwOTRDIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZm8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVzY3JpcHRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhpcyB0ZXN0IGdvZXMgdGhyb3VnaCBuZXcgcnVsZXMgYW4iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImQgdGVzdHMgYWdhaW5zdCBvbGQgcnVsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0dGluZ3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdExvY2FsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblRoYWlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVGhhaVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMmQ0NzJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL0NvbGxhdGlvblRoYWlUZXN0LmphdmEKQEAgLTAsMCArMSwzNTUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2Mi4xIDogY29sbGF0ZS9Db2xsYXRpb25SZWdyZXNzaW9uVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvcmVnY29sbC5jcHAKKyAqKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS5pby4qOworCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uVGhhaVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgCisgICAgZmluYWwgaW50IE1BWF9GQUlMVVJFU19UT19TSE9XID0gLTE7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb2xsYXRpb25UaGFpVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogT2RkIGNvcm5lciBjb25kaXRpb25zIHRha2VuIGZyb20gIkhvdyB0byBTb3J0IFRoYWkgV2l0aG91dCBSZXdyaXRpbmcgU29ydCIsCisgICAgICogYnkgRG91ZyBDb29wZXIsIGh0dHA6Ly9zZWFzcmMudGgubmV0L3BhcGVyL3RoYWlzb3J0LnppcAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3JuZXJDYXNlcygpIHsKKyAgICAgICAgU3RyaW5nIFRFU1RTW10gPSB7CisgICAgICAgICAgICAvLyBTaG9ydGVyIHdvcmRzIHByZWNlZGUgbG9uZ2VyCisgICAgICAgICAgICAiXHUwZTAxIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwiLCAgICAiXHUwZTAxXHUwZTAxIiwKKyAgICAKKyAgICAgICAgICAgIC8vIFRvbmUgbWFya3MgYXJlIGNvbnNpZGVyZWQgYWZ0ZXIgbGV0dGVycyAoaS5lLiBhcmUgcHJpbWFyeSBpZ25vcmFibGUpCisgICAgICAgICAgICAiXHUwZTAxXHUwZTMyIiwgICAgICAgICAgICAgICAgICAgICAgICAiPCIsICAgICJcdTBlMDFcdTBlNDlcdTBlMzIiLAorICAgIAorICAgICAgICAgICAgLy8gZGl0dG8gZm9yIG90aGVyIG92ZXItbWFya3MKKyAgICAgICAgICAgICJcdTBlMDFcdTBlMzIiLCAgICAgICAgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUwMVx1MGUzMlx1MGU0YyIsCisgICAgCisgICAgICAgICAgICAvLyBjb21tb25seSB1c2VkIG1hcmstaW4tY29udGV4dCBvcmRlci4KKyAgICAgICAgICAgIC8vIEluIGVmZmVjdCwgbWFya3MgYXJlIHNvcnRlZCBhZnRlciBlYWNoIHN5bGxhYmxlLgorICAgICAgICAgICAgIlx1MGUwMVx1MGUzMlx1MGUwMVx1MGU0OVx1MGUzMiIsICAgIjwiLCAgICAiXHUwZTAxXHUwZTQ4XHUwZTMyXHUwZTAxXHUwZTQ5XHUwZTMyIiwKKyAgICAKKyAgICAgICAgICAgIC8vIEh5cGhlbnMgYW5kIG90aGVyIHB1bmN0dWF0aW9uIGZvbGxvdyB3aGl0ZXNwYWNlIGJ1dCBjb21lIGJlZm9yZSBsZXR0ZXJzCisgICAgICAgICAgICAiXHUwZTAxXHUwZTMyIiwgICAgICAgICAgICAgICAgICAgICAgICAiPCIsICAgICJcdTBlMDFcdTBlMzItIiwKKyAgICAgICAgICAgICJcdTBlMDFcdTBlMzItIiwgICAgICAgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUwMVx1MGUzMlx1MGUwMVx1MGUzMiIsCisgICAgCisgICAgICAgICAgICAvLyBEb3VibGVyIGZvbGxvd3MgYW4gaW5kZW50aWNhbCB3b3JkIHdpdGhvdXQgdGhlIGRvdWJsZXIKKyAgICAgICAgICAgICJcdTBlMDFcdTBlMzIiLCAgICAgICAgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUwMVx1MGUzMlx1MGU0NiIsCisgICAgICAgICAgICAiXHUwZTAxXHUwZTMyXHUwZTQ2IiwgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUwMVx1MGUzMlx1MGUwMVx1MGUzMiIsCisgICAgCisgICAgICAgICAgICAvLyBcdTBlNDUgYWZ0ZXIgZWl0aGVyIFx1MGUyNCBvciBcdTBlMjYgaXMgdHJlYXRlZCBhcyBhIHNpbmdsZQorICAgICAgICAgICAgLy8gY29tYmluaW5nIGNoYXJhY3Rlciwgc2ltaWxhciB0byAiYyA8IGNoIiBpbiB0cmFkaXRpb25hbCBzcGFuaXNoLgorICAgICAgICAgICAgLy8gVE9ETzogYmVlZiB1cCB0aGlzIGNhc2UKKyAgICAgICAgICAgICJcdTBlMjRcdTBlMjlcdTBlMzUiLCAgICAgICAgICAgICAgICAgIjwiLCAgICAiXHUwZTI0XHUwZTQ1XHUwZTI5XHUwZTM1IiwKKyAgICAgICAgICAgICJcdTBlMjZcdTBlMjlcdTBlMzUiLCAgICAgICAgICAgICAgICAgIjwiLCAgICAiXHUwZTI2XHUwZTQ1XHUwZTI5XHUwZTM1IiwKKyAgICAKKyAgICAgICAgICAgIC8vIFZvd2VscyByZW9yZGVyLCBzaG91bGQgY29tcGFyZSBcdTBlMmQgYW5kIFx1MGUzNAorICAgICAgICAgICAgIlx1MGU0MFx1MGUwMVx1MGUyZCIsICAgICAgICAgICAgICAgICAiPCIsICAgICJcdTBlNDBcdTBlMDFcdTBlMzQiLAorICAgIAorICAgICAgICAgICAgLy8gVG9uZXMgYXJlIGNvbXBhcmVkIGFmdGVyIHRoZSByZXN0IG9mIHRoZSB3b3JkIChlLmcuIHByaW1hcnkgaWdub3JhYmxlKQorICAgICAgICAgICAgIlx1MGUwMVx1MGUzMlx1MGUwMVx1MGU0OFx1MGUzMiIsICAgIjwiLCAgICAiXHUwZTAxXHUwZTQ5XHUwZTMyXHUwZTAxXHUwZTMyIiwKKyAgICAKKyAgICAgICAgICAgIC8vIFBlcmlvZHMgYXJlIGlnbm9yZWQgZW50aXJlbHkKKyAgICAgICAgICAgICJcdTBlMDEuXHUwZTAxLiIsICAgICAgICAgICAgICAgICAgICAgICI8IiwgICAgIlx1MGUwMVx1MGUzMiIsCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGwgPSBnZXRUaGFpQ29sbGF0b3IoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiY291bGQgbm90IGNvbnN0cnVjdCBUaGFpIGNvbGxhdG9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY29tcGFyZUFycmF5KGNvbGwsIFRFU1RTKTsgCisgICAgfQorICAgIAorICAgIHZvaWQgY29tcGFyZUFycmF5KFJ1bGVCYXNlZENvbGxhdG9yIGMsIFN0cmluZ1tdIHRlc3RzKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpICs9IDMpIHsKKyAgICAgICAgICAgIGludCBleHBlY3QgPSAwOworICAgICAgICAgICAgaWYgKHRlc3RzW2krMV0uZXF1YWxzKCI8IikpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QgPSAtMTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodGVzdHNbaSsxXS5lcXVhbHMoIj4iKSkgeworICAgICAgICAgICAgICAgIGV4cGVjdCA9IDE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRlc3RzW2krMV0uZXF1YWxzKCI9IikpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QgPSAwOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBleHBlY3QgPSBJbnRlZ2VyLmRlY29kZSh0ZXN0c1tpKzFdKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvcjogdW5rbm93biBvcGVyYXRvciAiICsgdGVzdHNbaSsxXSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIHMxID0gdGVzdHNbaV07CisgICAgICAgICAgICBTdHJpbmcgczIgPSB0ZXN0c1tpKzJdOworICAgICAgICAgICAgQ29sbGF0aW9uVGVzdC5kb1Rlc3QodGhpcywgYywgczEsIHMyLCBleHBlY3QpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGludCBzaWduKGludCBpICkgeworICAgICAgICBpZiAoaSA8IDApIHJldHVybiAtMTsKKyAgICAgICAgaWYgKGkgPiAwKSByZXR1cm4gMTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlYWQgdGhlIGV4dGVybmFsIGRpY3Rpb25hcnkgZmlsZSwgd2hpY2ggaXMgYWxyZWFkeSBpbiBwcm9wZXIKKyAgICAgKiBzb3J0ZWQgb3JkZXIsIGFuZCBjb25maXJtIHRoYXQgdGhlIGNvbGxhdG9yIGNvbXBhcmVzIGVhY2ggbGluZSBhcworICAgICAqIHByZWNlZGluZyB0aGUgZm9sbG93aW5nIGxpbmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERpY3Rpb25hcnkoKSB7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGwgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbCA9IGdldFRoYWlDb2xsYXRvcigpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJjb3VsZCBub3QgY29uc3RydWN0IFRoYWkgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAKKyAgICAgICAgLy8gUmVhZCBpbiBhIGRpY3Rpb25hcnkgb2YgVGhhaSB3b3JkcworICAgICAgICBCdWZmZXJlZFJlYWRlciBpbiA9IG51bGw7CisgICAgICAgIFN0cmluZyBmaWxlTmFtZSA9ICJyaXdvcmRzLnR4dCI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbiA9IFRlc3RVdGlsLmdldERhdGFSZWFkZXIoZmlsZU5hbWUsICJVVEYtOCIpOworICAgICAgICB9IGNhdGNoIChTZWN1cml0eUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIlNlY3VyaXR5IGV4Y2VwdGlvbiBlbmNvdW50ZXJlZCByZWFkaW5nIHRlc3QgZGF0YSBmaWxlLiIpOworICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKGluICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaW4uY2xvc2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBpb2UpIHt9CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IGNvdWxkIG5vdCBvcGVuIHRlc3QgZmlsZTogIiArIGZpbGVOYW1lIAorICAgICAgICAgICAgICAgICAgKyAiLiBBYm9ydGluZyB0ZXN0LiIpOworICAgICAgICAgICAgcmV0dXJuOyAgICAgICAgCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggd29yZCBpbiB0aGUgZGljdGlvbmFyeSBhbmQgY29tcGFyZSBpdCB0byB0aGUgcHJldmlvdXMKKyAgICAgICAgLy8gd29yZC4gIFRoZXkgc2hvdWxkIGJlIGluIHNvcnRlZCBvcmRlci4KKyAgICAgICAgLy8KKyAgICAgICAgU3RyaW5nIGxhc3RXb3JkID0gIiI7CisgICAgICAgIGludCBsaW5lID0gMDsKKyAgICAgICAgaW50IGZhaWxlZCA9IDA7CisgICAgICAgIGludCB3b3JkQ291bnQgPSAwOworICAgICAgICB0cnkgeworICAgICAgICBTdHJpbmcgd29yZCA9IGluLnJlYWRMaW5lKCk7CisgICAgICAgIHdoaWxlICh3b3JkICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxpbmUrKzsKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFNraXAgY29tbWVudHMgYW5kIGJsYW5rIGxpbmVzCisgICAgICAgICAgICBpZiAod29yZC5sZW5ndGgoKSA9PSAwIHx8IHdvcmQuY2hhckF0KDApID09IDB4MjMpIHsKKyAgICAgICAgICAgICAgICB3b3JkID0gaW4ucmVhZExpbmUoKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIFNob3cgdGhlIGZpcnN0IDggd29yZHMgYmVpbmcgY29tcGFyZWQsIHNvIHdlIGNhbiBzZWUgd2hhdCdzIGhhcHBlbmluZworICAgICAgICAgICAgKyt3b3JkQ291bnQ7CisgICAgICAgICAgICBpZiAod29yZENvdW50IDw9IDgpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiV29yZCAiICsgd29yZENvdW50ICsgIjogIiArIHdvcmQpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYgKGxhc3RXb3JkLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIENvbGxhdGlvblRlc3QuZG9UZXN0KHRoaXMsIGNvbGwsIGxhc3RXb3JkLCB3b3JkLCAtMSk7CisgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IGNvbGwuY29tcGFyZShsYXN0V29yZCwgd29yZCk7IAorICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkKys7CisgICAgICAgICAgICAgICAgICAgIGlmIChNQVhfRkFJTFVSRVNfVE9fU0hPVyA8IDAgfHwgZmFpbGVkIDw9IE1BWF9GQUlMVVJFU19UT19TSE9XKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbXNnID0gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBjb21wYXJlKCIgKyBsYXN0V29yZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCAiICsgd29yZCArICIpIHJldHVybmVkICIgKyByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgZXhwZWN0ZWQgLTFcbiI7CisgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25LZXkgazEsIGsyOworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrMSA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KGxhc3RXb3JkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrMiA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KHdvcmQpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogZ2V0Q29sbGF0aW9uS2V5IHJldHVybmVkICIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1zZyArPSAia2V5MTogIiArIHByZXR0aWZ5KGsxKSArICJcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgImtleTI6ICIgKyBwcmV0dGlmeShrMik7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihtc2cpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdFdvcmQgPSB3b3JkOworICAgICAgICAgICAgd29yZCA9IGluLnJlYWRMaW5lKCk7CisgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIklPRXhjZXB0aW9uICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKGZhaWxlZCAhPSAwKSB7CisgICAgICAgICAgICBpZiAoZmFpbGVkID4gTUFYX0ZBSUxVUkVTX1RPX1NIT1cpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVG9vIG1hbnkgZmFpbHVyZXM7IG9ubHkgdGhlIGZpcnN0ICIgKworICAgICAgICAgICAgICAgICAgICAgIE1BWF9GQUlMVVJFU19UT19TSE9XICsgIiBmYWlsdXJlcyB3ZXJlIHNob3duIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJsbigiU3VtbWFyeTogIiArIGZhaWxlZCArICIgb2YgIiArIChsaW5lIC0gMSkgKworICAgICAgICAgICAgICAgICAgIiBjb21wYXJpc29ucyBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBsb2dsbigiV29yZHMgY2hlY2tlZDogIiArIHdvcmRDb3VudCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RJbnZhbGlkVGhhaSgpIAorICAgIHsKKyAgICAgICAgU3RyaW5nIHRlc3RzW10gPSB7ICJcdTBFNDRcdTBFMDFcdTBFNDRcdTBFMDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEU0NFx1MEUwMVx1MEUwMVx1MEU0NCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwRTAxXHUwRTQ0XHUwRTAxXHUwRTQ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTBFMDFcdTBFMDFcdTBFNDRcdTBFNDQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MEU0NFx1MEU0NFx1MEUwMVx1MEUwMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwRTAxXHUwRTQ0XHUwRTQ0XHUwRTAxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3I7CisgICAgICAgIFN0ckNtcCBjb21wYXJhdG9yOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY29sbGF0b3IgPSBnZXRUaGFpQ29sbGF0b3IoKTsKKyAgICAgICAgICAgIGNvbXBhcmF0b3IgPSBuZXcgU3RyQ21wKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBjb25zdHJ1Y3QgVGhhaSBjb2xsYXRvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBBcnJheXMuc29ydCh0ZXN0cywgY29tcGFyYXRvcik7CisgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSArKykKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgdGVzdHMubGVuZ3RoOyBqICsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGNvbGxhdG9yLmNvbXBhcmUodGVzdHNbaV0sIHRlc3RzW2pdKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaW5jb25zaXN0ZW5jeSBvcmRlcmluZyBmb3VuZCEKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkluY29uc2lzdGVudCBvcmRlcmluZyBiZXR3ZWVuIHN0cmluZ3MgIiArIGkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhbmQgIiArIGopOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyYXRvciAKKyAgICAgICAgICAgICAgICA9IGNvbGxhdG9yLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0ZXN0c1tpXSk7CisgICAgICAgICAgICBDb2xsYXRpb25UZXN0LmJhY2tBbmRGb3J0aCh0aGlzLCBpdGVyYXRvcik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFJlb3JkZXJpbmcoKSAKKyAgICB7CisgICAgICAgIFN0cmluZyB0ZXN0c1tdID0geworICAgICAgICAgICAgIlx1MEU0MWNcdTAzMDEiLCAgICAgICI9IiwgIlx1MEU0MVx1MDEwNyIsIC8vIGNvbXBvc2l0aW9uCisgICAgICAgICAgICAiXHUwRTQxXHVEODM1XHVERkNFIiwgIjwiLCAiXHUwRTQxXHVEODM1XHVERkNGIiwgLy8gc3VwcGxlbWVudGFyaWVzCisgICAgICAgICAgICAiXHUwRTQxXHVEODM0XHVERDVGIiwgIj0iLCAiXHUwRTQxXHVEODM0XHVERDU4XHVEODM0XHVERDY1IiwgLy8gc3VwcGxlbWVudGFyeSBjb21wb3NpdGlvbiBkZWNvbXBzIHRvIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgICAgICJcdTBFNDFcdUQ4N0VcdURDMDIiLCAiPSIsICJcdTBFNDFcdTRFNDEiLCAvLyBzdXBwbGVtZW50YXJ5IGNvbXBvc2l0aW9uIGRlY29tcHMgdG8gQk1QCisgICAgICAgICAgICAiXHUwRTQxXHUwMzAxIiwgICAgICAgIj0iLCAiXHUwRTQxXHUwMzAxIiwgLy8gdW5zYWZlIChqdXN0IGNoZWNraW5nIGJhY2t3YXJkcyBpdGVyYXRpb24pCisgICAgICAgICAgICAiXHUwRTQxXHUwMzAxXHUwMzE2IiwgIj0iLCAiXHUwRTQxXHUwMzE2XHUwMzAxIiwKKworICAgICAgICAgICAgImFiY1x1MEU0MWNcdTAzMDEiLCAgICAgICI9IiwgImFiY1x1MEU0MVx1MDEwNyIsIC8vIGNvbXBvc2l0aW9uCisgICAgICAgICAgICAiYWJjXHUwRTQxXHVEODM0XHVEQzAwIiwgIjwiLCAiYWJjXHUwRTQxXHVEODM0XHVEQzAxIiwgLy8gc3VwcGxlbWVudGFyaWVzCisgICAgICAgICAgICAiYWJjXHUwRTQxXHVEODM0XHVERDVGIiwgIj0iLCAiYWJjXHUwRTQxXHVEODM0XHVERDU4XHVEODM0XHVERDY1IiwgLy8gc3VwcGxlbWVudGFyeSBjb21wb3NpdGlvbiBkZWNvbXBzIHRvIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgICAgICJhYmNcdTBFNDFcdUQ4N0VcdURDMDIiLCAiPSIsICJhYmNcdTBFNDFcdTRFNDEiLCAvLyBzdXBwbGVtZW50YXJ5IGNvbXBvc2l0aW9uIGRlY29tcHMgdG8gQk1QCisgICAgICAgICAgICAiYWJjXHUwRTQxXHUwMzAxIiwgICAgICAgIj0iLCAiYWJjXHUwRTQxXHUwMzAxIiwgLy8gdW5zYWZlIChqdXN0IGNoZWNraW5nIGJhY2t3YXJkcyBpdGVyYXRpb24pCisgICAgICAgICAgICAiYWJjXHUwRTQxXHUwMzAxXHUwMzE2IiwgIj0iLCAiYWJjXHUwRTQxXHUwMzE2XHUwMzAxIiwKKworICAgICAgICAgICAgIlx1MEU0MWNcdTAzMDFhYmMiLCAgICAgICI9IiwgIlx1MEU0MVx1MDEwN2FiYyIsIC8vIGNvbXBvc2l0aW9uCisgICAgICAgICAgICAiXHUwRTQxXHVEODM0XHVEQzAwYWJjIiwgIjwiLCAiXHUwRTQxXHVEODM0XHVEQzAxYWJjIiwgLy8gc3VwcGxlbWVudGFyaWVzCisgICAgICAgICAgICAiXHUwRTQxXHVEODM0XHVERDVGYWJjIiwgIj0iLCAiXHUwRTQxXHVEODM0XHVERDU4XHVEODM0XHVERDY1YWJjIiwgLy8gc3VwcGxlbWVudGFyeSBjb21wb3NpdGlvbiBkZWNvbXBzIHRvIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgICAgICJcdTBFNDFcdUQ4N0VcdURDMDJhYmMiLCAiPSIsICJcdTBFNDFcdTRFNDFhYmMiLCAvLyBzdXBwbGVtZW50YXJ5IGNvbXBvc2l0aW9uIGRlY29tcHMgdG8gQk1QCisgICAgICAgICAgICAiXHUwRTQxXHUwMzAxYWJjIiwgICAgICAgIj0iLCAiXHUwRTQxXHUwMzAxYWJjIiwgLy8gdW5zYWZlIChqdXN0IGNoZWNraW5nIGJhY2t3YXJkcyBpdGVyYXRpb24pCisgICAgICAgICAgICAiXHUwRTQxXHUwMzAxXHUwMzE2YWJjIiwgIj0iLCAiXHUwRTQxXHUwMzE2XHUwMzAxYWJjIiwKKworICAgICAgICAgICAgImFiY1x1MEU0MWNcdTAzMDFhYmMiLCAgICAgICI9IiwgImFiY1x1MEU0MVx1MDEwN2FiYyIsIC8vIGNvbXBvc2l0aW9uCisgICAgICAgICAgICAiYWJjXHUwRTQxXHVEODM0XHVEQzAwYWJjIiwgIjwiLCAiYWJjXHUwRTQxXHVEODM0XHVEQzAxYWJjIiwgLy8gc3VwcGxlbWVudGFyaWVzCisgICAgICAgICAgICAiYWJjXHUwRTQxXHVEODM0XHVERDVGYWJjIiwgIj0iLCAiYWJjXHUwRTQxXHVEODM0XHVERDU4XHVEODM0XHVERDY1YWJjIiwgLy8gc3VwcGxlbWVudGFyeSBjb21wb3NpdGlvbiBkZWNvbXBzIHRvIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgICAgICJhYmNcdTBFNDFcdUQ4N0VcdURDMDJhYmMiLCAiPSIsICJhYmNcdTBFNDFcdTRFNDFhYmMiLCAvLyBzdXBwbGVtZW50YXJ5IGNvbXBvc2l0aW9uIGRlY29tcHMgdG8gQk1QCisgICAgICAgICAgICAiYWJjXHUwRTQxXHUwMzAxYWJjIiwgICAgICAgIj0iLCAiYWJjXHUwRTQxXHUwMzAxYWJjIiwgLy8gdW5zYWZlIChqdXN0IGNoZWNraW5nIGJhY2t3YXJkcyBpdGVyYXRpb24pCisgICAgICAgICAgICAiYWJjXHUwRTQxXHUwMzAxXHUwMzE2YWJjIiwgIj0iLCAiYWJjXHUwRTQxXHUwMzE2XHUwMzAxYWJjIiwKKyAgICAgICAgfTsKKworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvcjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGxhdG9yID0gKFJ1bGVCYXNlZENvbGxhdG9yKWdldFRoYWlDb2xsYXRvcigpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJjb3VsZCBub3QgY29uc3RydWN0IFRoYWkgY29sbGF0b3IiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjb21wYXJlQXJyYXkoY29sbGF0b3IsIHRlc3RzKTsKKyAgICAKKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAiJiBjIDwgYWIiOworICAgICAgICBTdHJpbmcgdGVzdGNvbnRyYWN0aW9uW10gPSB7ICJcdTBFNDFhYiIsICI+IiwgIlx1MEU0MWMifTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGxhdG9yID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBjb3VsZCBub3QgY29uc3RydWN0IGNvbGxhdG9yIHdpdGggcnVsZSAiICsgcnVsZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY29tcGFyZUFycmF5KGNvbGxhdG9yLCB0ZXN0Y29udHJhY3Rpb24pOworICAgIH0KKyAgICAKKyAgICAKKyAgICAKKyAgICAKKyAgICAKKyAgICAKKyAgICAKKyAgICAKKyAgICAKKworICAgIAorICAgIFN0cmluZyBwcmV0dGlmeShDb2xsYXRpb25LZXkgc291cmNlS2V5KSB7CisgICAgICAgIGludCBpOworICAgICAgICBieXRlW10gYnl0ZXM9IHNvdXJjZUtleS50b0J5dGVBcnJheSgpOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gIlsiOworICAgIAorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRhcmdldCArPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGJ5dGVzW2ldKTsKKyAgICAgICAgICAgIHRhcmdldCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ICs9ICJdIjsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBpbm5lciBjbGFzcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgU3RyQ21wIGltcGxlbWVudHMgQ29tcGFyYXRvciAKKyAgICB7CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3Qgc3RyaW5nMSwgT2JqZWN0IHN0cmluZzIpIAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gY29sbGF0b3IuY29tcGFyZShzdHJpbmcxLCBzdHJpbmcyKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyQ21wKCkgdGhyb3dzIEV4Y2VwdGlvbgorICAgICAgICB7CisgICAgICAgICAgICBjb2xsYXRvciA9IGdldFRoYWlDb2xsYXRvcigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBDb2xsYXRvciBjb2xsYXRvcjsKKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgUnVsZUJhc2VkQ29sbGF0b3IgbV9jb2xsYXRvcl87CisgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgUnVsZUJhc2VkQ29sbGF0b3IgZ2V0VGhhaUNvbGxhdG9yKCkgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaWYgKG1fY29sbGF0b3JfID09IG51bGwpIHsKKyAgICAgICAgICAgIG1fY29sbGF0b3JfID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExvY2FsZSgidGgiLCAiVEgiLCAiIikpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX2NvbGxhdG9yXzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVHVya2lzaFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Db2xsYXRpb25UdXJraXNoVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiOGRkNjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uVHVya2lzaFRlc3QuamF2YQpAQCAtMCwwICsxLDE4OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0NvbGxhdGlvblR1cmtpc2hUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC90cmNvbGwuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisgCitwdWJsaWMgY2xhc3MgQ29sbGF0aW9uVHVya2lzaFRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgQ29sbGF0aW9uVHVya2lzaFRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RTb3VyY2VDYXNlcyA9IHsKKyAgICAgICAgezB4NzMsIDB4MDMyN30sCisgICAgICAgIHsweDc2LCAweDAwRTQsIDB4NzR9LAorICAgICAgICB7MHg2ZiwgMHg2YywgMHg2NH0sCisgICAgICAgIHsweDAwRkMsIDB4NmYsIDB4NjksIDB4NjR9LAorICAgICAgICB7MHg2OCwgMHgwMTFFLCAweDYxLCAweDZjLCAweDc0fSwKKyAgICAgICAgezB4NzMsIDB4NzQsIDB4NzIsIDB4NjUsIDB4NzMsIDB4MDE1RX0sCisgICAgICAgIHsweDc2LCAweDZmLCAweDAxMzEsIDB4NjR9LAorICAgICAgICB7MHg2OSwgMHg2NCwgMHg2NSwgMHg2MX0sCisgICAgICAgIHsweDAwRkMsIDB4NmYsIDB4NjksIDB4NjR9LAorICAgICAgICB7MHg3NiwgMHg2ZiwgMHgwMTMxLCAweDY0fSwKKyAgICAgICAgezB4NjksIDB4NjQsIDB4NjUsIDB4NjF9CisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHRlc3RUYXJnZXRDYXNlcyA9IHsKKyAgICAgICAgezB4NzUsIDB4MDMwOH0sCisgICAgICAgIHsweDc2LCAweDYyLCAweDc0fSwKKyAgICAgICAgezB4MDBENiwgMHg2MSwgMHg3OX0sCisgICAgICAgIHsweDc2LCAweDZmLCAweDY5LCAweDY0fSwKKyAgICAgICAgezB4NjgsIDB4NjEsIDB4NmMsIDB4NzR9LAorICAgICAgICB7MHgwMTVFLCAweDc0LCAweDcyLCAweDY1LCAweDAxNUUsIDB4NzN9LAorICAgICAgICB7MHg3NiwgMHg2ZiwgMHg2OSwgMHg2NH0sCisgICAgICAgIHsweDQ5LCAweDY0LCAweDY1LCAweDYxfSwKKyAgICAgICAgezB4NzYsIDB4NmYsIDB4NjksIDB4NjR9LAorICAgICAgICB7MHg3NiwgMHg2ZiwgMHg2OSwgMHg2NH0sCisgICAgICAgIHsweDQ5LCAweDY0LCAweDY1LCAweDYxfQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSByZXN1bHRzID0geworICAgICAgICAtMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAtMSwKKyAgICAgICAgMSwKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAxLAorICAgIC8vIHRlc3QgcHJpYW1yeSA+IDgKKyAgICAgICAgLTEsCisgICAgICAgIC0xLAorICAgICAgICAxCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uVHVya2lzaFRlc3QoKSB7CisKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbXlDb2xsYXRpb24gPSBDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJ0ciIsICIiKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUZXJ0aWFyeSgpIHsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBteUNvbGxhdGlvbi5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCA4IDsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RQcmltYXJ5KCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGZvciAoaSA9IDg7IGkgPCAxMTsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIAorICAgIC8vIG1haW4gdGVzdCByb3V0aW5lLCB0ZXN0cyBydWxlcyBzcGVjaWZpYyB0byB0dXJraXNoIGxvY2FsZQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoY2hhcltdIHNvdXJjZSwgY2hhcltdIHRhcmdldCwgaW50IHJlc3VsdCkgeworICAgICAgICBTdHJpbmcgcyA9IG5ldyBTdHJpbmcoc291cmNlKTsKKyAgICAgICAgU3RyaW5nIHQgPSBuZXcgU3RyaW5nKHRhcmdldCk7CisgICAgICAgIGludCBjb21wYXJlUmVzdWx0ID0gbXlDb2xsYXRpb24uY29tcGFyZShzLCB0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkocyk7CisgICAgICAgIHNvcnRLZXkyID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHQpOworICAgICAgICBpbnQga2V5UmVzdWx0ID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgcmVwb3J0Q1Jlc3VsdChzLCB0LCBzb3J0S2V5MSwgc29ydEtleTIsIGNvbXBhcmVSZXN1bHQsIGtleVJlc3VsdCwgY29tcGFyZVJlc3VsdCwgcmVzdWx0KTsKKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCByZXBvcnRDUmVzdWx0KCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBDb2xsYXRpb25LZXkgc291cmNlS2V5LCBDb2xsYXRpb25LZXkgdGFyZ2V0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCwgaW50IGtleVJlc3VsdCwgaW50IGluY1Jlc3VsdCwgaW50IGV4cGVjdGVkUmVzdWx0ICkgeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICByZXR1cm47ICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIG1zZzEgPSBvazE/ICJPazogY29tcGFyZShcIiIgOiAiRkFJTDogY29tcGFyZShcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisgICAgICAgICAgICBTdHJpbmcgbXNnNCA9ICI7IGV4cGVjdGVkICI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzRXhwZWN0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBTdHJpbmcgc1Jlc3VsdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoY29tcGFyZVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBzRXhwZWN0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChleHBlY3RlZFJlc3VsdCwgc0V4cGVjdCk7CisgICAgICAgICAgICBpZiAob2sxKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazIgPyAiT2s6IGtleShcIiIgOiAiRkFJTDoga2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIpLmNvbXBhcmVUbyhrZXkoXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikpIHJldHVybmVkICI7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChrZXlSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgaWYgKG9rMikgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgICAgIG1zZzEgPSAiICAiOworICAgICAgICAgICAgICAgIG1zZzIgPSAiIHZzLiAiOworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBwcmV0dGlmeShzb3VyY2VLZXkpICsgbXNnMiArIHByZXR0aWZ5KHRhcmdldEtleSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2szID8gIk9rOiBpbmNDb21wYXJlKFwiIiA6ICJGQUlMOiBpbmNDb21wYXJlKFwiIjsKKyAgICAgICAgICAgIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpIHJldHVybmVkICI7CisKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGluY1Jlc3VsdCwgc1Jlc3VsdCk7CisKKyAgICAgICAgICAgIGlmIChvazMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgYXBwZW5kQ29tcGFyZVJlc3VsdChpbnQgcmVzdWx0LCBTdHJpbmcgdGFyZ2V0KSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvRzdDb2xsYXRpb25UZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvRzdDb2xsYXRpb25UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDlhMzhiNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9HN0NvbGxhdGlvblRlc3QuamF2YQpAQCAtMCwwICsxLDI5NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0c3Q29sbGF0aW9uVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvZzdjb2xsLmNwcAorICoqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKyAKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworIAorcHVibGljIGNsYXNzIEc3Q29sbGF0aW9uVGVzdCBleHRlbmRzIFRlc3RGbXdreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBHN0NvbGxhdGlvblRlc3QoKS5ydW4oYXJncyk7CisgICAgICAgIC8vIG5ldyBHN0NvbGxhdGlvblRlc3QoKS5UZXN0RGVtbzMoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gdGVzdENhc2VzID0geworICAgICAgICAiYmxhY2tiaXJkcyIsICJQYXQiLCAicFx1MDBFOWNoXHUwMEU5IiwgInBcdTAwRUFjaGUiLCAicFx1MDBFOWNoZXIiLCAgICAgICAgICAgIAorICAgICAgICAicFx1MDBFQWNoZXIiLCAiVG9kIiwgIlRcdTAwRjZuZSIsICJUb2Z1IiwgImJsYWNrYmlyZCIsICJUb24iLCAKKyAgICAgICAgIlBBVCIsICJibGFjay1iaXJkIiwgImJsYWNrLWJpcmRzIiwgInBhdCIsIC8vIDE0CisgICAgICAgIC8vIEFkZGl0aW9uYWwgdGVzdHMKKyAgICAgICAgImN6YXIiLCAiY2h1cm8iLCAiY2F0IiwgImRhcm4iLCAiPyIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxOSAqLworICAgICAgICAicXVpY2siLCAiIyIsICImIiwgImEtcmR2YXJrIiwgImFhcmR2YXJrIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDIzICovCisgICAgICAgICJhYmJvdCIsICJjby1wIiwgImNvcCIsICJjb29wIiwgInplYnJhIgorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXVtdIHJlc3VsdHMgPSB7CisgICAgICAgIHsgMTIsIDEzLCA5LCAwLCAxNCwgMSwgMTEsIDIsIDMsIDQsIDUsIDYsIDgsIDEwLCA3LCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxIH0sIC8qIGVuX1VTICovCisgICAgICAgIHsgMTIsIDEzLCA5LCAwLCAxNCwgMSwgMTEsIDIsIDMsIDQsIDUsIDYsIDgsIDEwLCA3LCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxIH0sIC8qIGVuX0dCICovCisgICAgICAgIHsgMTIsIDEzLCA5LCAwLCAxNCwgMSwgMTEsIDIsIDMsIDQsIDUsIDYsIDgsIDEwLCA3LCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxIH0sIC8qIGVuX0NBICovCisgICAgICAgIHsgMTIsIDEzLCA5LCAwLCAxNCwgMSwgMTEsIDMsIDIsIDQsIDUsIDYsIDgsIDEwLCA3LCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxIH0sIC8qIGZyX0ZSICovCisgICAgICAgIHsgMTIsIDEzLCA5LCAwLCAxNCwgMSwgMTEsIDMsIDIsIDQsIDUsIDYsIDgsIDEwLCA3LCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxIH0sIC8qIGZyX0NBICovCisgICAgICAgIHsgMTIsIDEzLCA5LCAwLCAxNCwgMSwgMTEsIDIsIDMsIDQsIDUsIDYsIDgsIDEwLCA3LCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxIH0sIC8qIGRlX0RFICovCisgICAgICAgIHsgMTIsIDEzLCA5LCAwLCAxNCwgMSwgMTEsIDIsIDMsIDQsIDUsIDYsIDgsIDEwLCA3LCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxIH0sIC8qIGl0X0lUICovCisgICAgICAgIHsgMTIsIDEzLCA5LCAwLCAxNCwgMSwgMTEsIDIsIDMsIDQsIDUsIDYsIDgsIDEwLCA3LCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxIH0sIC8qIGphX0pQICovCisgICAgICAgIC8qIG5ldyB0YWJsZSBjb2xsYXRpb24gd2l0aCBydWxlcyAiJiBaIDwgcCwgUCIgIGxvb3AgdG8gRklYRURURVNUU0VUICovCisgICAgICAgIHsgMTIsIDEzLCA5LCAwLCA2LCA4LCAxMCwgNywgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxLCAzMSwgMzEsIDMxIH0sIAorICAgICAgICAvKiBuZXcgdGFibGUgY29sbGF0aW9uIHdpdGggcnVsZXMgIiYgQyA8IGNoICwgY0gsIENoLCBDSCAiIGxvb3AgdG8gVE9UQUxURVNUU0VUICovCisgICAgICAgIHsgMTksIDIyLCAyMSwgMjMsIDI0LCAyNSwgMTIsIDEzLCA5LCAwLCAxNywgMjYsIDI4LCAyNywgMTUsIDE2LCAxOCwgMTQsIDEsIDExLCAyLCAzLCA0LCA1LCAyMCwgNiwgOCwgMTAsIDcsIDI5IH0sCisgICAgICAgIC8qIG5ldyB0YWJsZSBjb2xsYXRpb24gd2l0aCBydWxlcyAiJiBRdWVzdGlvbi1tYXJrIDsgPyAmIEhhc2gtbWFyayA7ICMgJiBBbXBlcnNhbmQgOyAnJicgICIgbG9vcCB0byBUT1RBTFRFU1RTRVQgKi8KKyAgICAgICAgeyAyMywgMjQsIDI1LCAyMiwgMTIsIDEzLCA5LCAwLCAxNywgMTYsIDI2LCAyOCwgMjcsIDE1LCAxOCwgMjEsIDE0LCAxLCAxMSwgMiwgMywgNCwgNSwgMTksIDIwLCA2LCA4LCAxMCwgNywgMjkgfSwKKyAgICAgICAgLyogYW5hbG9nb3VzIHRvIEphcGFuZXNlIHJ1bGVzICIgJiBhYSA7IGEtICYgZWUgOyBlLSAmIGlpIDsgaS0gJiBvbyA7IG8tICYgdXUgOyB1LSAiICovICAvKiBsb29wIHRvIFRPVEFMVEVTVFNFVCAqLworICAgICAgICB7IDE5LCAyMiwgMjEsIDI0LCAyMywgMjUsIDEyLCAxMywgOSwgMCwgMTcsIDE2LCAyOCwgMjYsIDI3LCAxNSwgMTgsIDE0LCAxLCAxMSwgMiwgMywgNCwgNSwgMjAsIDYsIDgsIDEwLCA3LCAyOSB9CisgICAgfTsKKyAgICAKKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfVE9LRU5fTEVOID0gMTY7CisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVEVTVExPQ0FMRVMgPSAxMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklYRURURVNUU0VUID0gMTU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRPVEFMVEVTVFNFVCA9IDMwOworICAgIAorICAgIC8vIHBlcmZvcm0gdGVzdCB3aXRoIGFkZGVkIHJ1bGVzICIgJiBaIDwgcCwgUCIKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVtbzEoKSB7CisgICAgICAgIGxvZ2xuKCJEZW1vIFRlc3QgMSA6IENyZWF0ZSBhIG5ldyB0YWJsZSBjb2xsYXRpb24gd2l0aCBydWxlcyBcIiYgWiA8IHAsIFBcIiIpOworICAgICAgICAKKyAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOyAgICAKKworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGJhc2VSdWxlcyA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sKS5nZXRSdWxlcygpOworICAgICAgICBTdHJpbmcgbmV3UnVsZXMgPSAiICYgWiA8IHAsIFAiOworICAgICAgICBuZXdSdWxlcyA9IGJhc2VSdWxlcyArIG5ld1J1bGVzOyAKKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgbXlDb2xsYXRpb24gPSBudWxsOyAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG15Q29sbGF0aW9uID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKG5ld1J1bGVzKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggcnVsZXM6IiArIG5ld1J1bGVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG15Q29sbGF0aW9uID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJEZW1vIFRlc3QgMiBUYWJsZSBDb2xsYXRpb24gb2JqZWN0IGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGosIG47CisgICAgICAgIGZvciAoaiA9IDA7IGogPCBGSVhFRFRFU1RTRVQ7IGorKykgeworICAgICAgICAgICAgZm9yIChuID0gaisxOyBuIDwgRklYRURURVNUU0VUOyBuKyspIHsKKyAgICAgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RDYXNlc1tyZXN1bHRzWzhdW2pdXSwgdGVzdENhc2VzW3Jlc3VsdHNbOF1bbl1dLCAtMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisKKyAgICAvLyBwZXJvcm0gdGVzdCB3aXRoIGFkZGVkIHJ1bGVzICImIEMgPCBjaCAsIGNILCBDaCwgQ0giCisgICAgcHVibGljIHZvaWQgVGVzdERlbW8yKCkgeworICAgICAgICBsb2dsbigiRGVtbyBUZXN0IDIgOiBDcmVhdGUgYSBuZXcgdGFibGUgY29sbGF0aW9uIHdpdGggcnVsZXMgXCImIEMgPCBjaCAsIGNILCBDaCwgQ0hcIiIpOworICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShMb2NhbGUuRU5HTElTSCk7ICAgIAorCisKKyAgICAgICAgU3RyaW5nIGJhc2VSdWxlcyA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sKS5nZXRSdWxlcygpOworICAgICAgICBTdHJpbmcgbmV3UnVsZXMgPSAiJiBDIDwgY2ggLCBjSCwgQ2gsIENIIjsKKyAgICAgICAgbmV3UnVsZXMgPSBiYXNlUnVsZXMgKyBuZXdSdWxlczsgCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihuZXdSdWxlcyk7CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlcnJsbigiRmFpbCB0byBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3Igd2l0aCBydWxlczoiICsgbmV3UnVsZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9ICAKKworICAgICAgICBpbnQgaiwgbjsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IFRPVEFMVEVTVFNFVDsgaisrKSB7CisgICAgICAgICAgICBmb3IgKG4gPSBqKzE7IG4gPCBUT1RBTFRFU1RTRVQ7IG4rKykgeworICAgICAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdENhc2VzW3Jlc3VsdHNbOV1bal1dLCB0ZXN0Q2FzZXNbcmVzdWx0c1s5XVtuXV0sIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKworICAgIC8vIHBlcmZvcm0gdGVzdCB3aXRoIGFkZGVkIHJ1bGVzIAorICAgIC8vICImIFF1ZXN0aW9uJy0nbWFyayA7ICc/JyAmIEhhc2gnLSdtYXJrIDsgJyMnICYgQW1wZXJzYW5kIDsgJyYnIgorICAgIHB1YmxpYyB2b2lkIFRlc3REZW1vMygpIHsKKyAgICAgICAgLy8gbG9nbG4oIkRlbW8gVGVzdCAzIDogQ3JlYXRlIGEgbmV3IHRhYmxlIGNvbGxhdGlvbiB3aXRoIHJ1bGVzIFwiJiBRdWVzdGlvbictJ21hcmsgOyAnPycgJiBIYXNoJy0nbWFyayA7ICcjJyAmIEFtcGVyc2FuZCA7ICcmJ1wiIik7CisgICAgICAgIENvbGxhdG9yIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsgICAgCisKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBiYXNlUnVsZXMgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWNvbCkuZ2V0UnVsZXMoKTsKKyAgICAgICAgU3RyaW5nIG5ld1J1bGVzID0gIiYgUXVlc3Rpb24nLSdtYXJrIDsgJz8nICYgSGFzaCctJ21hcmsgOyAnIycgJiBBbXBlcnNhbmQgOyAnJiciOworICAgICAgICBuZXdSdWxlcyA9IGJhc2VSdWxlcyArIG5ld1J1bGVzOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBteUNvbGxhdGlvbiA9IG51bGw7IAorICAgICAgICB0cnkgeworICAgICAgICAgICAgbXlDb2xsYXRpb24gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IobmV3UnVsZXMpOworICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG8gY3JlYXRlIFJ1bGVCYXNlZENvbGxhdG9yIHdpdGggcnVsZXM6IiArIG5ld1J1bGVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAgCisKKyAgICAgICAgaW50IGosIG47CisgICAgICAgIGZvciAoaiA9IDA7IGogPCBUT1RBTFRFU1RTRVQ7IGorKykgeworICAgICAgICAgICAgZm9yIChuID0gaisxOyBuIDwgVE9UQUxURVNUU0VUOyBuKyspIHsKKyAgICAgICAgICAgICAgICBkb1Rlc3QobXlDb2xsYXRpb24sIHRlc3RDYXNlc1tyZXN1bHRzWzEwXVtqXV0sIHRlc3RDYXNlc1tyZXN1bHRzWzEwXVtuXV0sIC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKworICAgIC8vIHBlcmZvcm0gdGVzdCB3aXRoIGFkZGVkIHJ1bGVzIAorICAgIC8vICIgJiBhYSA7IGEnLScgJiBlZSA7IGUnLScgJiBpaSA7IGknLScgJiBvbyA7IG8nLScgJiB1dSA7IHUnLScgIgorICAgIHB1YmxpYyB2b2lkIFRlc3REZW1vNCgpIHsKKyAgICAgICAgbG9nbG4oIkRlbW8gVGVzdCA0IDogQ3JlYXRlIGEgbmV3IHRhYmxlIGNvbGxhdGlvbiB3aXRoIHJ1bGVzIFwiICYgYWEgOyBhJy0nICYgZWUgOyBlJy0nICYgaWkgOyBpJy0nICYgb28gOyBvJy0nICYgdXUgOyB1Jy0nIFwiIik7CisgICAgICAgIENvbGxhdG9yIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsgICAgCisKKyAgICAgICAgU3RyaW5nIGJhc2VSdWxlcyA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpY29sKS5nZXRSdWxlcygpOworICAgICAgICBTdHJpbmcgbmV3UnVsZXMgPSAiICYgYWEgOyBhJy0nICYgZWUgOyBlJy0nICYgaWkgOyBpJy0nICYgb28gOyBvJy0nICYgdXUgOyB1Jy0nICI7CisgICAgICAgIG5ld1J1bGVzID0gYmFzZVJ1bGVzICsgbmV3UnVsZXM7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0aW9uID0gbnVsbDsgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBteUNvbGxhdGlvbiA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihuZXdSdWxlcyk7CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlcnJsbigiRmFpbCB0byBjcmVhdGUgUnVsZUJhc2VkQ29sbGF0b3Igd2l0aCBydWxlczoiICsgbmV3UnVsZXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9ICAKKworICAgICAgICBpbnQgaiwgbjsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IFRPVEFMVEVTVFNFVDsgaisrKSB7CisgICAgICAgICAgICBmb3IgKG4gPSBqKzE7IG4gPCBUT1RBTFRFU1RTRVQ7IG4rKykgeworICAgICAgICAgICAgICAgIGRvVGVzdChteUNvbGxhdGlvbiwgdGVzdENhc2VzW3Jlc3VsdHNbMTFdW2pdXSwgdGVzdENhc2VzW3Jlc3VsdHNbMTFdW25dXSwgLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RHN0RhdGEoKSB7CisgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSB7CisgICAgICAgICAgICAgICAgTG9jYWxlLlVTLAorICAgICAgICAgICAgICAgIExvY2FsZS5VSywKKyAgICAgICAgICAgICAgICBMb2NhbGUuQ0FOQURBLAorICAgICAgICAgICAgICAgIExvY2FsZS5GUkFOQ0UsCisgICAgICAgICAgICAgICAgTG9jYWxlLkNBTkFEQV9GUkVOQ0gsCisgICAgICAgICAgICAgICAgTG9jYWxlLkdFUk1BTlksCisgICAgICAgICAgICAgICAgTG9jYWxlLkpBUEFOLAorICAgICAgICAgICAgICAgIExvY2FsZS5JVEFMWQorICAgICAgICAgICAgfTsKKyAgICAgICAgaW50IGkgPSAwLCBqID0gMDsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIENvbGxhdG9yIG15Q29sbGF0aW9uPSBudWxsOworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgdGJsQ29sbDEgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBteUNvbGxhdGlvbiA9IENvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgICAgIHRibENvbGwxID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKCgoUnVsZUJhc2VkQ29sbGF0b3IpbXlDb2xsYXRpb24pLmdldFJ1bGVzKCkpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgICAgIHdhcm5sbigiRXhjZXB0aW9uOiAiICsgZm9vLmdldE1lc3NhZ2UoKSArCisgICAgICAgICAgICAgICAgICAgICAgIjsgTG9jYWxlIDogIiArIGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKSArICIgZ2V0UnVsZXMgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgRklYRURURVNUU0VUOyBqKyspIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBuID0gaisxOyBuIDwgRklYRURURVNUU0VUOyBuKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0KHRibENvbGwxLCB0ZXN0Q2FzZXNbcmVzdWx0c1tpXVtqXV0sIHRlc3RDYXNlc1tyZXN1bHRzW2ldW25dXSwgLTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG15Q29sbGF0aW9uID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAKKyAgICAvLyBtYWluIHRlc3Qgcm91dGluZSwgdGVzdHMgY29tcGFyaXNvbnMgZm9yIGEgc2V0IG9mIHN0cmluZ3MgYWdhaW5zdCBzZXRzIG9mIGV4cGVjdGVkIHJlc3VsdHMKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0KENvbGxhdG9yIG15Q29sbGF0aW9uLCBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQpeworICAgICAgICAKKyAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQgPSBteUNvbGxhdGlvbi5jb21wYXJlKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgQ29sbGF0aW9uS2V5IHNvcnRLZXkxLCBzb3J0S2V5MjsKKyAgICAgICAgc29ydEtleTEgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkoc291cmNlKTsKKyAgICAgICAgc29ydEtleTIgPSBteUNvbGxhdGlvbi5nZXRDb2xsYXRpb25LZXkodGFyZ2V0KTsKKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQoc291cmNlLCB0YXJnZXQsIHNvcnRLZXkxLCBzb3J0S2V5MiwgY29tcGFyZVJlc3VsdCwgCisgICAgICAgICAgICAgICAgICAgICAga2V5UmVzdWx0LCBjb21wYXJlUmVzdWx0LCByZXN1bHQpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVwb3J0Q1Jlc3VsdCggU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgQ29sbGF0aW9uS2V5IHNvdXJjZUtleSwgQ29sbGF0aW9uS2V5IHRhcmdldEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXBhcmVSZXN1bHQsIGludCBrZXlSZXN1bHQsIGludCBpbmNSZXN1bHQsIGludCBleHBlY3RlZFJlc3VsdCApeworICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgPCAtMSB8fCBleHBlY3RlZFJlc3VsdCA+IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqKiBpbnZhbGlkIGNhbGwgdG8gcmVwb3J0Q1Jlc3VsdCAqKioqIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG9rMSA9IChjb21wYXJlUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazIgPSAoa2V5UmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgYm9vbGVhbiBvazMgPSAoaW5jUmVzdWx0ID09IGV4cGVjdGVkUmVzdWx0KTsKKworICAgICAgICBpZiAob2sxICYmIG9rMiAmJiBvazMgJiYgIWlzVmVyYm9zZSgpKXsKKyAgICAgICAgICAgIHJldHVybjsgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbXNnMSA9IG9rMT8gIk9rOiBjb21wYXJlKFwiIiA6ICJGQUlMOiBjb21wYXJlKFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBTdHJpbmcgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2c0ID0gIjsgZXhwZWN0ZWQgIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNFeHBlY3QgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIFN0cmluZyBzUmVzdWx0ID0gbmV3IFN0cmluZygiIik7CisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChjb21wYXJlUmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIHNFeHBlY3QgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGV4cGVjdGVkUmVzdWx0LCBzRXhwZWN0KTsKKyAgICAgICAgICAgIGlmIChvazEpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMiA/ICJPazoga2V5KFwiIiA6ICJGQUlMOiBrZXkoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIikuY29tcGFyZVRvKGtleShcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSkgcmV0dXJuZWQgIjsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGtleVJlc3VsdCwgc1Jlc3VsdCk7CisgICAgICAgICAgICBpZiAob2syKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICAgICAgbXNnMSA9ICIgICI7CisgICAgICAgICAgICAgICAgbXNnMiA9ICIgdnMuICI7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHByZXR0aWZ5KHNvdXJjZUtleSkgKyBtc2cyICsgcHJldHRpZnkodGFyZ2V0S2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1zZzEgPSBvazMgPyAiT2s6IGluY0NvbXBhcmUoXCIiIDogIkZBSUw6IGluY0NvbXBhcmUoXCIiOworICAgICAgICAgICAgbXNnMiA9ICJcIiwgXCIiOworICAgICAgICAgICAgbXNnMyA9ICJcIikgcmV0dXJuZWQgIjsKKworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoaW5jUmVzdWx0LCBzUmVzdWx0KTsKKworICAgICAgICAgICAgaWYgKG9rMykgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBhcHBlbmRDb21wYXJlUmVzdWx0KGludCByZXN1bHQsIFN0cmluZyB0YXJnZXQpeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkxFU1MiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkVRVUFMIjsKKyAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gMSkgeworICAgICAgICAgICAgdGFyZ2V0ICs9ICJHUkVBVEVSIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBodWggPSAiPyI7CisgICAgICAgICAgICB0YXJnZXQgKz0gaHVoICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorICAgIAorICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvTG90dXNDb2xsYXRpb25Lb3JlYW5UZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvTG90dXNDb2xsYXRpb25Lb3JlYW5UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE4OGQ2ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9Mb3R1c0NvbGxhdGlvbktvcmVhblRlc3QuamF2YQpAQCAtMCwwICsxLDE0OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBDb2xsYXRlL0xvdHVzQ29sbGF0aW9uS29yZWFuVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvbGN1a29jb2wuY3BwCisgKiovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworIAoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKyAKK3B1YmxpYyBjbGFzcyBMb3R1c0NvbGxhdGlvbktvcmVhblRlc3QgZXh0ZW5kcyBUZXN0Rm13a3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBuZXcgTG90dXNDb2xsYXRpb25Lb3JlYW5UZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0U291cmNlQ2FzZXMgPSB7CisgICAgICAgIHsweGFjMDB9CisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSB0ZXN0VGFyZ2V0Q2FzZXMgPSB7CisgICAgICAgIHsweGFjMDF9CisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSByZXN1bHRzID0geworICAgICAgICAtMQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBDb2xsYXRvciBteUNvbGxhdGlvbjsKKyAgICAKKyAgICBwdWJsaWMgTG90dXNDb2xsYXRpb25Lb3JlYW5UZXN0KCkgeworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBteUNvbGxhdGlvbiA9IENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5LT1JFQU4pOworICAgICAgICBteUNvbGxhdGlvbi5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICB9CisgICAgLy8gcGVyZm9ybXMgdGVzdCB3aXRoIHN0cmVuZ3RoIFRFUklBUlkKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGVydGlhcnkoKSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgbXlDb2xsYXRpb24uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTsgaSsrKSB7CisgICAgICAgICAgICBkb1Rlc3QodGVzdFNvdXJjZUNhc2VzW2ldLCB0ZXN0VGFyZ2V0Q2FzZXNbaV0sIHJlc3VsdHNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgLy8gbWFpbiB0ZXN0IHJvdXRpbmUsIHRlc3RzIHJ1bGVzIHNwZWNpZmljIHRvICJLb3JlYW4iIGxvY2FsZQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3QoIGNoYXJbXSBzb3VyY2UsIGNoYXJbXSB0YXJnZXQsIGludCByZXN1bHQpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIFN0cmluZyB0ID0gbmV3IFN0cmluZyh0YXJnZXQpOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IG15Q29sbGF0aW9uLmNvbXBhcmUocywgdCk7CisgICAgICAgIENvbGxhdGlvbktleSBzb3J0S2V5MSwgc29ydEtleTI7CisgICAgICAgIHNvcnRLZXkxID0gbXlDb2xsYXRpb24uZ2V0Q29sbGF0aW9uS2V5KHMpOworICAgICAgICBzb3J0S2V5MiA9IG15Q29sbGF0aW9uLmdldENvbGxhdGlvbktleSh0KTsKKyAgICAgICAgaW50IGtleVJlc3VsdCA9IHNvcnRLZXkxLmNvbXBhcmVUbyhzb3J0S2V5Mik7CisgICAgICAgIHJlcG9ydENSZXN1bHQoIHMsIHQsIHNvcnRLZXkxLCBzb3J0S2V5MiwgY29tcGFyZVJlc3VsdCwga2V5UmVzdWx0LCBjb21wYXJlUmVzdWx0LCByZXN1bHQgKTsgCisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHJlcG9ydENSZXN1bHQoIFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIENvbGxhdGlvbktleSBzb3VyY2VLZXksIENvbGxhdGlvbktleSB0YXJnZXRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21wYXJlUmVzdWx0LCBpbnQga2V5UmVzdWx0LCBpbnQgaW5jUmVzdWx0LCBpbnQgZXhwZWN0ZWRSZXN1bHQgKXsKKyAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0IDwgLTEgfHwgZXhwZWN0ZWRSZXN1bHQgPiAxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqKiogaW52YWxpZCBjYWxsIHRvIHJlcG9ydENSZXN1bHQgKioqKiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBvazEgPSAoY29tcGFyZVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2syID0gKGtleVJlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgIGJvb2xlYW4gb2szID0gKGluY1Jlc3VsdCA9PSBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgaWYgKG9rMSAmJiBvazIgJiYgb2szICYmICFpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgcmV0dXJuOyAgICAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cxID0gb2sxPyAiT2s6IGNvbXBhcmUoXCIiIDogIkZBSUw6IGNvbXBhcmUoXCIiOworICAgICAgICAgICAgU3RyaW5nIG1zZzIgPSAiXCIsIFwiIjsKKyAgICAgICAgICAgIFN0cmluZyBtc2czID0gIlwiKSByZXR1cm5lZCAiOworICAgICAgICAgICAgU3RyaW5nIG1zZzQgPSAiOyBleHBlY3RlZCAiOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgc0V4cGVjdCA9IG5ldyBTdHJpbmcoIiIpOworICAgICAgICAgICAgU3RyaW5nIHNSZXN1bHQgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIHNSZXN1bHQgPSBhcHBlbmRDb21wYXJlUmVzdWx0KGNvbXBhcmVSZXN1bHQsIHNSZXN1bHQpOworICAgICAgICAgICAgc0V4cGVjdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoZXhwZWN0ZWRSZXN1bHQsIHNFeHBlY3QpOworICAgICAgICAgICAgaWYgKG9rMSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0ICsgbXNnNCArIHNFeHBlY3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtc2cxID0gb2syID8gIk9rOiBrZXkoXCIiIDogIkZBSUw6IGtleShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiKS5jb21wYXJlVG8oa2V5KFwiIjsKKyAgICAgICAgICAgIG1zZzMgPSAiXCIpKSByZXR1cm5lZCAiOworICAgICAgICAgICAgc1Jlc3VsdCA9IGFwcGVuZENvbXBhcmVSZXN1bHQoa2V5UmVzdWx0LCBzUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChvazIpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihtc2cxICsgc291cmNlICsgbXNnMiArIHRhcmdldCArIG1zZzMgKyBzUmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCArIG1zZzQgKyBzRXhwZWN0KTsKKyAgICAgICAgICAgICAgICBtc2cxID0gIiAgIjsKKyAgICAgICAgICAgICAgICBtc2cyID0gIiB2cy4gIjsKKyAgICAgICAgICAgICAgICBlcnJsbihtc2cxICsgcHJldHRpZnkoc291cmNlS2V5KSArIG1zZzIgKyBwcmV0dGlmeSh0YXJnZXRLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbXNnMSA9IG9rMyA/ICJPazogaW5jQ29tcGFyZShcIiIgOiAiRkFJTDogaW5jQ29tcGFyZShcIiI7CisgICAgICAgICAgICBtc2cyID0gIlwiLCBcIiI7CisgICAgICAgICAgICBtc2czID0gIlwiKSByZXR1cm5lZCAiOworCisgICAgICAgICAgICBzUmVzdWx0ID0gYXBwZW5kQ29tcGFyZVJlc3VsdChpbmNSZXN1bHQsIHNSZXN1bHQpOworCisgICAgICAgICAgICBpZiAob2szKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obXNnMSArIHNvdXJjZSArIG1zZzIgKyB0YXJnZXQgKyBtc2czICsgc1Jlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKG1zZzEgKyBzb3VyY2UgKyBtc2cyICsgdGFyZ2V0ICsgbXNnMyArIHNSZXN1bHQgKyBtc2c0ICsgc0V4cGVjdCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGFwcGVuZENvbXBhcmVSZXN1bHQoaW50IHJlc3VsdCwgU3RyaW5nIHRhcmdldCl7CisgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiTEVTUyI7CisgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgIHRhcmdldCArPSAiRVFVQUwiOworICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSAxKSB7CisgICAgICAgICAgICB0YXJnZXQgKz0gIkdSRUFURVIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIGh1aCA9ICI/IjsKKyAgICAgICAgICAgIHRhcmdldCArPSBodWggKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHByZXR0aWZ5KENvbGxhdGlvbktleSBzb3VyY2VLZXkpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGJ5dGVbXSBieXRlcz0gc291cmNlS2V5LnRvQnl0ZUFycmF5KCk7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSAiWyI7CisgICAgCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGFyZ2V0ICs9IEludGVnZXIudG9IZXhTdHJpbmcoYnl0ZXNbaV0pOworICAgICAgICAgICAgdGFyZ2V0ICs9ICIgIjsKKyAgICAgICAgfQorICAgICAgICB0YXJnZXQgKz0gIl0iOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvUmFuZG9tQ29sbGF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb2xsYXRvci9SYW5kb21Db2xsYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxY2NkNjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvUmFuZG9tQ29sbGF0b3IuamF2YQpAQCAtMCwwICsxLDI5NiBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmNvbGxhdG9yOworCisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbC5CTkY7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbC5CYWdGb3JtYXR0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbC5RdW90ZXI7CisKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworCitwdWJsaWMgY2xhc3MgUmFuZG9tQ29sbGF0b3IgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBSYW5kb21Db2xsYXRvcigpLnJ1bihhcmdzKTsKKyAgICAgICAgLy9uZXcgQ29sbGF0aW9uQVBJVGVzdCgpLlRlc3RHZXRUYWlsb3JlZFNldCgpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ09OU1RSVUNUX1JBTkRPTV9DT1VOVCA9IDEwMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IEZPUk1BTF9URVNUX0NPVU5UID0gMTAwMDsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFBPU0lUSU9OID0gInskJCR9IjsKKyAgICAKKyAgICAvKgorICAgIGNsYXNzIFNob3dlciBleHRlbmRzIEJhZ0Zvcm1hdHRlci5TaG93ZXIgeworICAgICAgICBwdWJsaWMgdm9pZCBwcmludChTdHJpbmcgYXJnKSB7CisgICAgICAgICAgICBsb2coYXJnKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU2hvd2VyIExPRyA9IG5ldyBTaG93ZXIoKTsKKyAgICAqLworICAgICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSYW5kb20oKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8gICAgICAgIGludCB5ZWFyIAorLy8gICAgICAgID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCkuZ2V0KGphdmEudXRpbC5DYWxlbmRhci5ZRUFSKTsKKy8vICAgICAgICBpZiAoeWVhciA8IDIwMDQpIHsKKy8vICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcblRlc3RSYW5kb20gc2tpcHBlZCBmb3IgMjAwMyIpOworLy8gICAgICAgICAgICByZXR1cm47CisvLyAgICAgICAgfQorICAgICAgICBpZihza2lwSWZCZWZvcmVJQ1UoMyw1KSkgcmV0dXJuOworICAgICAgICAvL1N0cmluZyBmaWxlTmFtZTsKKyAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBCYWdGb3JtYXR0ZXIub3BlblVURjhXcml0ZXIoU3lzdGVtLmdldFByb3BlcnR5KCJ1c2VyLmRpciIpK0ZpbGUuc2VwYXJhdG9yLCAiUmFuZG9tQ29sbGF0aW9uVGVzdExvZy50eHQiKTsKKyAgICAgICAgVGVzdENvbGxhdG9yIHRjID0gbmV3IFRlc3RDb2xsYXRvcihjaGFycyk7CisgICAgICAgIHB3LnByaW50bG4oIkNvbGxhdGlvbiBUZXN0IFJ1biIpOworICAgICAgICBwdy5wcmludGxuKCJOb3RlOiBGb3IgcGFyc2UtZXhjZXB0aW9uLCAiICsgUE9TSVRJT04gKyAiIGluZGljYXRlcyB0aGUgZXJyb3JPZmZzZXQiKTsKKyAgICAgICAgcHcucHJpbnRsbigiUnVsZXM6Iik7CisgICAgICAgIHB3LnByaW50bG4oY3VycmVudFJ1bGVzKTsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gIjx1bmtub3duPiI7CisgICAgICAgIGludCBzQ291bnQgPSAwOworICAgICAgICBpbnQgcGVDb3VudCA9IDA7CisgICAgICAgIGludCBvZUNvdW50ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBDT05TVFJVQ1RfUkFORE9NX0NPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcnVsZXMgPSBnZXQoKTsKKyAgICAgICAgICAgICAgICBpZiAodHJ1ZSkgeyAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IgYyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcy50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgdGMudGVzdChjLCBGT1JNQUxfVEVTVF9DT1VOVCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHcucHJpbnRsbihydWxlcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvZ2xuKCJvayIpOworICAgICAgICAgICAgICAgIHNDb3VudCsrOworICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gcGUpIHsKKyAgICAgICAgICAgICAgICBwZUNvdW50Kys7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPT09PT09PT1QQVJTRSBFWENFUFRJT049PT09PT09PSAoIiArIGkgKyAiKSIpOworICAgICAgICAgICAgICAgIGludCBlcnJvck9mZnNldCA9IHBlLmdldEVycm9yT2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgcHcucHJpbnQocnVsZXMuc3Vic3RyaW5nKDAsZXJyb3JPZmZzZXQpKTsKKyAgICAgICAgICAgICAgICBwdy5wcmludChQT1NJVElPTik7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbihydWxlcy5zdWJzdHJpbmcoZXJyb3JPZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAvL3B3LnByaW50bG4oIj09PT09PT09RVJST1I9PT09PT09PSAoIiArIGkgKyAiKSIpOworICAgICAgICAgICAgICAgIC8vcGUucHJpbnRTdGFja1RyYWNlKHB3KTsKKyAgICAgICAgICAgICAgICAvL3B3LnByaW50bG4oIj09PT09PT09RU5EPT09PT09PT0gKCIgKyBpICsgIikiKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2VFeGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgb2VDb3VudCsrOworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIj09PT09PT09T1RIRVIgRVhDRVBUSU9OPT09PT09PT0gKCIgKyBpICsgIikiKTsKKyAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZShwdyk7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPT09PT09PT1SVUxFUz09PT09PT09ICgiICsgaSArICIpIik7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbihydWxlcyk7CisgICAgICAgICAgICAgICAgLy9wdy5wcmludGxuKCI9PT09PT09PUVORD09PT09PT09ICgiICsgaSArICIpIik7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhcnNlRXhjZXB0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHcucHJpbnRsbigiU3VjY2Vzc2Z1bDogIiArIHNDb3VudCAKKyAgICAgICAgICAgICsgIixcdFBhcnNlRXhjZXB0aW9uOiAiICsgcGVDb3VudCAKKyAgICAgICAgICAgICsgIixcdE90aGVyIEV4Y2VwdGlvbjogIiArIG9lQ291bnQpOworICAgICAgICBsb2dsbigiU3VjY2Vzc2Z1bDogIiArIHNDb3VudCAKKyAgICAgICAgICAgICsgIixcdFBhcnNlRXhjZXB0aW9uOiAiICsgcGVDb3VudCAKKyAgICAgICAgICAgICsgIixcdE90aGVyIEV4Y2VwdGlvbjogIiArIG9lQ291bnQpOworICAgICAgICBwdy5jbG9zZSgpOworCisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgVGVzdENvbGxhdG9yIGV4dGVuZHMgVGVzdENvbXBhcmF0b3IgeworICAgICAgICBCTkYgcnM7CisgICAgICAgIAorICAgICAgICBUZXN0Q29sbGF0b3IoVW5pY29kZVNldCBjaGFycykgeworICAgICAgICAgICAgcnMgPSBuZXcgQk5GKG5ldyBSYW5kb20oMCksIG5ldyBRdW90ZXIuUnVsZVF1b3RlcigpKQorICAgICAgICAgICAgLmFkZFJ1bGVzKCIkcm9vdCA9ICIgKyBjaGFycyArICJ7MSw4fTsiKS5jb21wbGV0ZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgT2JqZWN0IG5ld09iamVjdChPYmplY3QgYykgeworICAgICAgICAgICAgcmV0dXJuIHJzLm5leHQoKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGZvcm1hdChPYmplY3QgYykgeworICAgICAgICAgICAgcmV0dXJuIEJhZ0Zvcm1hdHRlci5oZXgudHJhbnNsaXRlcmF0ZShjLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBCTkYgYm5mOworICAgIFN0cmluZyBjdXJyZW50UnVsZXMgPSBudWxsOworICAgIFVuaWNvZGVTZXQgY2hhcnM7CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXQoKSB7CisgICAgICAgIHJldHVybiBibmYubmV4dCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgUmFuZG9tQ29sbGF0b3IoKSB7CisgICAgICAgIAorICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBpbml0KDEsMTAsIG5ldyBVbmljb2RlU2V0KCJbQVphLXo8XFwmXFxbXFxdXSIpKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGluaXQoaW50IG1pblJ1bGVDb3VudCwgaW50IG1heFJ1bGVDb3VudCwgVW5pY29kZVNldCBjaGFycykgeworICAgICAgICB0aGlzLmNoYXJzID0gY2hhcnM7CisgICAgICAgIGJuZiA9IG5ldyBCTkYobmV3IFJhbmRvbSgwKSwgbmV3IFF1b3Rlci5SdWxlUXVvdGVyKCkpCisgICAgICAgIC5hZGRTZXQoIiRjaGFycyIsIGNoYXJzKQorICAgICAgICAuYWRkUnVsZXMoY29sbGF0aW9uQk5GKQorICAgICAgICAuY29tcGxldGUoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGNvbGxhdGlvbkJORiA9CisgICAgICAgICIkcyA9ICcgJz8gNTAlO1xyXG4iICsKKyAgICAgICAgIiRyZWxhdGlvbkxpc3QgPSAoIiArICAgICAgICAiICAgJzwnIiArICAgICAgICAiIHwgJyAgPDwnIiArICAgICAgICAiIHwgJyAgOyciICsKKyAgICAgICAgIiB8ICcgICAgPDw8JyIgKyAgICAgICAgIiB8ICcgICAgLCciICsKKyAgICAgICAgIiB8ICcgICAgICA9JyIgKyAgICAgICAgIik7XHJcbiIgKworICAgICAgICAiJGFsdGVybmF0ZU9wdGlvbnMgPSBub24nLSdpZ25vcmFibGUgfCBzaGlmdGVkO1xyXG4iICsKKyAgICAgICAgIiRjYXNlRmlyc3RPcHRpb25zID0gb2ZmIHwgdXBwZXIgfCBsb3dlcjtcclxuIiArCisgICAgICAgICIkc3RyZW5ndGhPcHRpb25zID0gJzEnIHwgJzInIHwgJzMnIHwgJzQnIHwgJ0knO1xyXG4iICsKKyAgICAgICAgIiRjb21tYW5kTGlzdCA9ICdbJyIgKyAgICAgICAgIiAoIGFsdGVybmF0ZSAnICcgJGFsdGVybmF0ZU9wdGlvbnMiICsgICAgICAgICIgfCBiYWNrd2FyZHMnIDInIiArICAgICAgICAiIHwgbm9ybWFsaXphdGlvbiAnICcgJG9ub2ZmICIgKyAgICAgICAgIiB8IGNhc2VMZXZlbCAnICcgJG9ub2ZmICIgKyAgICAgICAgIiB8IGhpcmFnYW5hUSAnICcgJG9ub2ZmIiArICAgICAgICAiIHwgY2FzZUZpcnN0ICcgJyAkY2FzZUZpcnN0T3B0aW9ucyIgKyAgICAgICAgIiB8IHN0cmVuZ3RoICcgJyAkc3RyZW5ndGhPcHRpb25zIiArICAgICAgICAiICkgJ10nO1xyXG4iICsKKyAgICAgICAgIiRpZ25vcmFibGVUeXBlcyA9ICh0ZXJ0aWFyeSB8IHNlY29uZGFyeSB8IHByaW1hcnkpICcgJyBpZ25vcmFibGU7XHJcbiIgKworICAgICAgICAiJGFsbFR5cGVzID0gdmFyaWFibGUgfCByZWd1bGFyIHwgaW1wbGljaXQgfCB0cmFpbGluZyB8ICRpZ25vcmFibGVUeXBlcztcclxuIiArCisgICAgICAgICIkb25vZmYgPSBvbiB8IG9mZjtcclxuIiArCisgICAgICAgICIkcG9zaXRpb25MaXN0ID0gJ1snIChmaXJzdCB8IGxhc3QpICcgJyAkYWxsVHlwZXMgJ10nO1xyXG4iICsgICAgICAgICIkYmVmb3JlTGlzdCA9ICdbYmVmb3JlICcgKCcxJyB8ICcyJyB8ICczJykgJ10nO1xyXG4iICsgICAgICAgICIkc3RyaW5nID0gJGNoYXJzezEsNX1+QDtcclxuIiArCisgICAgICAgICIkY3JsZiA9ICdcclxuJztcclxuIiArCisgICAgICAgICIkcmVsMSA9ICdbdmFyaWFibGUgdG9wXScgJHMgO1xyXG4iICsKKyAgICAgICAgIiRwMSA9ICgkc3RyaW5nICRzICd8JyAkcyk/IDI1JTtcclxuIiArCisgICAgICAgICIkcDIgPSAoJ1xcJyAkcyAkc3RyaW5nICRzKT8gMjUlO1xyXG4iICsKKyAgICAgICAgIiRyZWwyID0gJHAxICRzdHJpbmcgJHMgJHAyO1xyXG4iICsKKyAgICAgICAgIiRyZWxhdGlvbiA9ICRyZWxhdGlvbkxpc3QgJHMgKCRyZWwxIHwgJHJlbDIpICRjcmxmO1xyXG4iICsKKyAgICAgICAgIiRjb21tYW5kID0gJGNvbW1hbmRMaXN0ICRjcmxmO1xyXG4iICsKKyAgICAgICAgIiRyZXNldCA9ICcmJyAkcyAoJGJlZm9yZUxpc3QgJHMpPyAxMCUgKCRwb3NpdGlvbkxpc3QgfCAkc3RyaW5nIDEwJSkgJGNybGY7XHJcbiIgKworICAgICAgICAiJG1vc3RSdWxlcyA9ICRjb21tYW5kIDElIHwgJHJlc2V0IDUlIHwgJHJlbGF0aW9uIDI1JTtcclxuIiArCisgICAgICAgICIkcm9vdCA9ICRjb21tYW5kezAsNX0gJHJlc2V0ICRtb3N0UnVsZXN7MSwyMH07XHJcbiI7CisgICAgCisgICAgCisvKiAgICAKKyAgICAKKyAgICAKKyAgICBnYyA7IEMgICAgICAgICA7IE90aGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQ2MgfCBDZiB8IENuIHwgQ28gfCBDcworICAgIGdjIDsgQ2MgICAgICAgIDsgQ29udHJvbAorICAgIGdjIDsgQ2YgICAgICAgIDsgRm9ybWF0CisgICAgZ2MgOyBDbiAgICAgICAgOyBVbmFzc2lnbmVkCisgICAgZ2MgOyBDbyAgICAgICAgOyBQcml2YXRlX1VzZQorICAgIGdjIDsgQ3MgICAgICAgIDsgU3Vycm9nYXRlCisgICAgZ2MgOyBMICAgICAgICAgOyBMZXR0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAjIExsIHwgTG0gfCBMbyB8IEx0IHwgTHUKKyAgICBnYyA7IExDICAgICAgICA7IENhc2VkX0xldHRlciAgICAgICAgICAgICAgICAgICAgICMgTGwgfCBMdCB8IEx1CisgICAgZ2MgOyBMbCAgICAgICAgOyBMb3dlcmNhc2VfTGV0dGVyCisgICAgZ2MgOyBMbSAgICAgICAgOyBNb2RpZmllcl9MZXR0ZXIKKyAgICBnYyA7IExvICAgICAgICA7IE90aGVyX0xldHRlcgorICAgIGdjIDsgTHQgICAgICAgIDsgVGl0bGVjYXNlX0xldHRlcgorICAgIGdjIDsgTHUgICAgICAgIDsgVXBwZXJjYXNlX0xldHRlcgorICAgIGdjIDsgTSAgICAgICAgIDsgTWFyayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBNYyB8IE1lIHwgTW4KKyAgICBnYyA7IE1jICAgICAgICA7IFNwYWNpbmdfTWFyaworICAgIGdjIDsgTWUgICAgICAgIDsgRW5jbG9zaW5nX01hcmsKKyAgICBnYyA7IE1uICAgICAgICA7IE5vbnNwYWNpbmdfTWFyaworICAgIGdjIDsgTiAgICAgICAgIDsgTnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBOZCB8IE5sIHwgTm8KKyAgICBnYyA7IE5kICAgICAgICA7IERlY2ltYWxfTnVtYmVyCisgICAgZ2MgOyBObCAgICAgICAgOyBMZXR0ZXJfTnVtYmVyCisgICAgZ2MgOyBObyAgICAgICAgOyBPdGhlcl9OdW1iZXIKKyAgICBnYyA7IFAgICAgICAgICA7IFB1bmN0dWF0aW9uICAgICAgICAgICAgICAgICAgICAgICMgUGMgfCBQZCB8IFBlIHwgUGYgfCBQaSB8IFBvIHwgUHMKKyAgICBnYyA7IFBjICAgICAgICA7IENvbm5lY3Rvcl9QdW5jdHVhdGlvbgorICAgIGdjIDsgUGQgICAgICAgIDsgRGFzaF9QdW5jdHVhdGlvbgorICAgIGdjIDsgUGUgICAgICAgIDsgQ2xvc2VfUHVuY3R1YXRpb24KKyAgICBnYyA7IFBmICAgICAgICA7IEZpbmFsX1B1bmN0dWF0aW9uCisgICAgZ2MgOyBQaSAgICAgICAgOyBJbml0aWFsX1B1bmN0dWF0aW9uCisgICAgZ2MgOyBQbyAgICAgICAgOyBPdGhlcl9QdW5jdHVhdGlvbgorICAgIGdjIDsgUHMgICAgICAgIDsgT3Blbl9QdW5jdHVhdGlvbgorICAgIGdjIDsgUyAgICAgICAgIDsgU3ltYm9sICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBTYyB8IFNrIHwgU20gfCBTbworICAgIGdjIDsgU2MgICAgICAgIDsgQ3VycmVuY3lfU3ltYm9sCisgICAgZ2MgOyBTayAgICAgICAgOyBNb2RpZmllcl9TeW1ib2wKKyAgICBnYyA7IFNtICAgICAgICA7IE1hdGhfU3ltYm9sCisgICAgZ2MgOyBTbyAgICAgICAgOyBPdGhlcl9TeW1ib2wKKyAgICBnYyA7IFogICAgICAgICA7IFNlcGFyYXRvciAgICAgICAgICAgICAgICAgICAgICAgICMgWmwgfCBacCB8IFpzCisgICAgZ2MgOyBabCAgICAgICAgOyBMaW5lX1NlcGFyYXRvcgorICAgIGdjIDsgWnAgICAgICAgIDsgUGFyYWdyYXBoX1NlcGFyYXRvcgorICAgIGdjIDsgWnMgICAgICAgIDsgU3BhY2VfU2VwYXJhdG9yCisqLworCisgICAgLyoKKyAgICAvLyBlYWNoIHJ1bGUgY2FuIGJlOgorICAgIC8vICJbIiBjb21tYW5kICJdIgorICAgIC8vICImIFsiIHBvc2l0aW9uICJdIgorICAgIC8vICImIiBiZWZvcmUgY2hhcnMKKyAgICAvLyByZWxhdGlvbiAiW3ZhcmlhYmxlIHRvcF0iCisgICAgLy8gcmVsYXRpb24gKGNoYXJzICJ8Iik/IGNoYXJzICgiLyIgY2hhcnMpPworICAgIC8vIHBsdXMsIGEgcmVzZXQgbXVzdCBjb21lIGJlZm9yZSBhIHJlbGF0aW9uCisgICAgCisgICAgLy8gdGhlIGZvbGxvd2luZyByZWZsZWN0cyB0aGUgYWJvdmUgcnVsZXMsIHBsdXMgYWxsb3dzIHdoaXRlc3BhY2UuCisgICAgUGljayBjaGFycyA9IFBpY2suc3RyaW5nKDEsIDUsIFBpY2suY29kZVBvaW50KHVTZXQpKTsgLy8gaW5zZXJ0IHNvbWV0aGluZyBuZWVkaW5nIHF1b3RlcworICAgIFBpY2sgcyA9IFBpY2subWF5YmUoMC44LCBQaWNrLnVucXVvdGVkKCIgIikpLm5hbWUoIlNwYWNlIik7ICAgIC8vIG9wdGlvbmFsIHNwYWNlCisgICAgUGljayBDUkxGID0gUGljay51bnF1b3RlZCgiXHJcbiIpOworICAgICAgICAKKyAgICBQaWNrIHJlbDEgPSBQaWNrLmFuZChQaWNrLnVucXVvdGVkKCJbdmFyaWFibGUgdG9wXSIpKS5hbmQyKHMpOworICAgIFBpY2sgcDEgPSBQaWNrLm1heWJlKDAuMjUsIFBpY2suYW5kKGNoYXJzKS5hbmQyKHMpLmFuZDIoInwiKS5hbmQyKHMpKTsKKyAgICBQaWNrIHAyID0gUGljay5tYXliZSgwLjI1LCBQaWNrLmFuZCgiLyIpLmFuZDIocykuYW5kMihjaGFycykuYW5kMihzKSk7CisgICAgUGljayByZWwyID0gUGljay5hbmQocDEpLmFuZDIoY2hhcnMpLmFuZDIocykuYW5kMihwMik7CisgICAgUGljayByZWxhdGlvbiA9IFBpY2suYW5kKFBpY2sub3IocmVsYXRpb25MaXN0KSkuYW5kMihzKQorICAgICAgICAuYW5kMihQaWNrLm9yKDEsIHJlbDEpLm9yMigxMCwgcmVsMikpCisgICAgICAgIC5hbmQyKENSTEYpLm5hbWUoIlJlbGF0aW9uIik7CisgICAgICAgICAgICAKKyAgICBQaWNrIGNvbW1hbmQgPSBQaWNrLmFuZChQaWNrLm9yKGNvbW1hbmRMaXN0KSkuYW5kMihDUkxGKS5uYW1lKCJDb21tYW5kIik7CisgICAgICAgIAorICAgIFBpY2sgcmVzZXQgPSBQaWNrLmFuZCgiJiIpLmFuZDIocykgICAgICAgICAgICAKKyAgICAgICAgLmFuZDIoMC4xLCBQaWNrLm9yKGJlZm9yZUxpc3QpKS5hbmQyKHMpICAgICAgICAgICAgCisgICAgICAgIC5hbmQyKFBpY2sub3IoMC4xLCBQaWNrLm9yKHBvc2l0aW9uTGlzdCkpLm9yMigxLjAsIGNoYXJzKSkKKyAgICAgICAgLmFuZDIoQ1JMRikubmFtZSgiUmVzZXQiKTsKKyAgICBQaWNrIHJ1bGUgPSBQaWNrLmFuZChQaWNrLm9yKDEsIGNvbW1hbmQpLm9yMig1LCByZXNldCkub3IyKDI1LCByZWxhdGlvbikpLm5hbWUoIlJ1bGUiKTsKKyAgICBQaWNrIHJ1bGVzMiA9IFBpY2suYW5kKFBpY2sucmVwZWF0KDAsNSxjb21tYW5kKSkgICAgICAgICAgICAKKyAgICAgICAgLmFuZDIocmVzZXQpICAgICAgICAgICAgCisgICAgICAgIC5hbmQyKFBpY2sucmVwZWF0KDEsMjAscnVsZSkpLm5hbWUoIlJ1bGVzIik7CisgICAgcnVsZXMgPSBQaWNrLlRhcmdldC5tYWtlKHJ1bGVzMik7CisgICAKKyAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSByZWxhdGlvbkxpc3QgPSB7IiA8IiwgIiAgPDwiLCAiICAgIDw8PCIsICIgICAgID0iLCAiICA7IiwgIiAgICwifTsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gY29tbWFuZExpc3QgPSB7CisgICAgICAgICJbYWx0ZXJuYXRlIG5vbi1pZ25vcmFibGVdIiwgICAgICAgICJbYWx0ZXJuYXRlIHNoaWZ0ZWRdIiwKKyAgICAgICAgIltiYWNrd2FyZHMgMl0iLAorICAgICAgICAiW25vcm1hbGl6YXRpb24gb2ZmXSIsCisgICAgICAgICJbbm9ybWFsaXphdGlvbiBvbl0iLAorICAgICAgICAiW2Nhc2VMZXZlbCBvZmZdIiwKKyAgICAgICAgIltjYXNlTGV2ZWwgb25dIiwKKyAgICAgICAgIltjYXNlRmlyc3Qgb2ZmXSIsCisgICAgICAgICJbY2FzZUZpcnN0IHVwcGVyXSIsCisgICAgICAgICJbY2FzZUZpcnN0IGxvd2VyXSIsCisgICAgICAgICJbc3RyZW5ndGggMV0iLAorICAgICAgICAiW3N0cmVuZ3RoIDJdIiwKKyAgICAgICAgIltzdHJlbmd0aCAzXSIsCisgICAgICAgICJbc3RyZW5ndGggNF0iLAorICAgICAgICAiW3N0cmVuZ3RoIEldIiwKKyAgICAgICAgIltoaXJhZ2FuYVEgb2ZmXSIsCisgICAgICAgICJbaGlyYWdhbmFRIG9uXSIKKyAgICB9OworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBwb3NpdGlvbkxpc3QgPSB7CisgICAgICAgICJbZmlyc3QgdGVydGlhcnkgaWdub3JhYmxlXSIsCisgICAgICAgICJbbGFzdCB0ZXJ0aWFyeSBpZ25vcmFibGVdIiwKKyAgICAgICAgIltmaXJzdCBzZWNvbmRhcnkgaWdub3JhYmxlXSIsCisgICAgICAgICJbbGFzdCBzZWNvbmRhcnkgaWdub3JhYmxlXSIsCisgICAgICAgICJbZmlyc3QgcHJpbWFyeSBpZ25vcmFibGVdIiwKKyAgICAgICAgIltsYXN0IHByaW1hcnkgaWdub3JhYmxlXSIsCisgICAgICAgICJbZmlyc3QgdmFyaWFibGVdIiwKKyAgICAgICAgIltsYXN0IHZhcmlhYmxlXSIsCisgICAgICAgICJbZmlyc3QgcmVndWxhcl0iLAorICAgICAgICAiW2xhc3QgcmVndWxhcl0iLAorICAgICAgICAiW2ZpcnN0IGltcGxpY2l0XSIsCisgICAgICAgICJbbGFzdCBpbXBsaWNpdF0iLAorICAgICAgICAiW2ZpcnN0IHRyYWlsaW5nXSIsCisgICAgICAgICJbbGFzdCB0cmFpbGluZ10iCisgICAgfTsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gYmVmb3JlTGlzdCA9IHsKKyAgICAgICAgIltiZWZvcmUgMV0iLCAKKyAgICAgICAgIltiZWZvcmUgMl0iLAorICAgICAgICAiW2JlZm9yZSAzXSIKKyAgICB9OworICAgICovCit9CisvLyNlbmRpZgorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGY5NzBkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDU2IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgY29sbGF0aW9uIGFuZCBzZWFyY2ggdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKAorICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvblRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvbkFQSVRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvbkN1cnJlbmN5VGVzdCIsCisgICAgICAgICAgICAgICAgICAvLyJDb2xsYXRpb25EYW5pc2hUZXN0IiwgLy9EYW5pc2ggaXMgYWxyZWFkeSB0ZXN0ZWQgdGhyb3VnaCBkYXRhIGRyaXZlbiB0ZXN0cworICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvbkR1bW15VGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uRW5nbGlzaFRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvbkZpbm5pc2hUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25GcmVuY2hUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25HZXJtYW5UZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25JdGVyYXRvclRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvbkthbmFUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25Nb25rZXlUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25SZWdyZXNzaW9uVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uU3BhbmlzaFRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvblRoYWlUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25UdXJraXNoVGVzdCIsCisgICAgICAgICAgICAgICAgICAiRzdDb2xsYXRpb25UZXN0IiwKKyAgICAgICAgICAgICAgICAgICJMb3R1c0NvbGxhdGlvbktvcmVhblRlc3QiLAorICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvbk1pc2NUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJDb2xsYXRpb25DaGluZXNlVGVzdCIsCisgICAgICAgICAgICAgICAgICAiQ29sbGF0aW9uU2VydmljZVRlc3QiLAorLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgICAgICAgICAgICJSYW5kb21Db2xsYXRvciIsCisvLyNlbmRpZgorICAgICAgICAgICAgICAgICAgIlVDQUNvbmZvcm1hbmNlVGVzdCIsCisgICAgICAgICAgICAgICAgICAvLyBkb24ndCB0ZXN0IFNlYXJjaCBBUEkgdHdpY2UhCisgICAgICAgICAgICAgICAgICAvLyJjb20uaWJtLmljdS5kZXYudGVzdC5zZWFyY2guU2VhcmNoVGVzdCIKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgIkFsbCBDb2xsYXRpb24gVGVzdHMiCisgICAgICAgICAgICAgICk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgPSAiQ29sbGF0b3IiOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1Rlc3RDb21wYXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvVGVzdENvbXBhcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDNmMDdhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1Rlc3RDb21wYXJhdG9yLmphdmEKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb2xsYXRvcjsKKworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgVGVzdENvbXBhcmF0b3IgeworCisgICAgLy8gdGVzdCB0aGUgc3ltbWV0cnkgYW5kIHRyYW5zaXRpdml0eQorICAgIHB1YmxpYyB2b2lkIHRlc3QoQ29tcGFyYXRvciBjb21wLCBpbnQgY291bnQpIHsKKyAgICAgICAgT2JqZWN0IGMgPSBudWxsOworICAgICAgICBPYmplY3QgYiA9IG5ld09iamVjdChjKTsKKyAgICAgICAgT2JqZWN0IGEgPSBuZXdPYmplY3QoYik7CisgICAgICAgIGludCBjb21wYWIgPSBjb21wLmNvbXBhcmUoYSxiKTsKKyAgICAgICAgd2hpbGUgKC0tY291bnQgPj0gMCkgeworICAgICAgICAgICAgLy8gcm90YXRlIG9sZCB2YWx1ZXMKKyAgICAgICAgICAgIGMgPSBiOworICAgICAgICAgICAgYiA9IGE7CisgICAgICAgICAgICBpbnQgY29tcGJjID0gY29tcGFiOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBhbGxvY2F0ZSBuZXcgYW5kIGdldCBjb21wYXJpc29ucworICAgICAgICAgICAgYSA9IG5ld09iamVjdChiKTsKKyAgICAgICAgICAgIGNvbXBhYiA9IGNvbXAuY29tcGFyZShhLGIpOworICAgICAgICAgICAgaW50IGNvbXBiYSA9IGNvbXAuY29tcGFyZShiLGEpOworICAgICAgICAgICAgaW50IGNvbXBhYyA9IGNvbXAuY29tcGFyZShhLGMpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjaGVjayBzeW1tZXRyeQorICAgICAgICAgICAgaWYgKGNvbXBhYiAhPSAtY29tcGJhKSB7CisgICAgICAgICAgICAgICAgbG9nKCJTeW1tZXRyeSBGYWlsdXJlIiwgbmV3IE9iamVjdFtdIHthLCBifSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNoZWNrIHRyYW5zaXRpdml0eQorICAgICAgICAgICAgY2hlY2soYSwgYiwgYywgIGNvbXBhYiwgIGNvbXBiYywgIGNvbXBhYyk7CisgICAgICAgICAgICBjaGVjayhhLCBjLCBiLCAgY29tcGFiLCAtY29tcGJjLCAgY29tcGFiKTsKKyAgICAgICAgICAgIGNoZWNrKGIsIGEsIGMsIC1jb21wYWIsICBjb21wYWMsICBjb21wYmMpOworICAgICAgICAgICAgY2hlY2soYiwgYywgYSwgIGNvbXBiYywgLWNvbXBhYywgLWNvbXBhYik7CisgICAgICAgICAgICBjaGVjayhjLCBhLCBiLCAtY29tcGFjLCAgY29tcGFiLCAtY29tcGJjKTsKKyAgICAgICAgICAgIGNoZWNrKGMsIGIsIGEsIC1jb21wYmMsIC1jb21wYWIsIC1jb21wYWMpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjaGVjayhPYmplY3QgYSwgT2JqZWN0IGIsIE9iamVjdCBjLCAKKyAgICAgIGludCBjb21wYWIsIGludCBjb21wYmMsIGludCBjb21wYWMpIHsKKyAgICAgICAgaWYgKGNvbXBhYiA8PSAwICYmIGNvbXBiYyA8PSAwICYmICEoY29tcGFjIDw9IDApKSB7CisgICAgICAgICAgICBsb2coIlRyYW5zaXRpdml0eSBGYWlsdXJlIiwgbmV3IE9iamVjdFtdIHthLCBiLCBjfSk7ICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgCisgICAgcHVibGljIE9iamVjdCBuZXdPYmplY3QoT2JqZWN0IGMpIHsKKyAgICAgICAgLy8gcmV0dXJuIGEgbmV3IG9iamVjdAorICAgICAgICByZXR1cm4gIiI7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZm9ybWF0KE9iamVjdCBjKSB7CisgICAgICAgIC8vIHJldHVybiBhIG5ldyBvYmplY3QKKyAgICAgICAgcmV0dXJuIGMudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgbG9nKFN0cmluZyB0aXRsZSwgT2JqZWN0W10gYXJndW1lbnRzKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSB0aXRsZSArICI6IFsiOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGkgIT0gMCkgcmVzdWx0ICs9ICIsICI7CisgICAgICAgICAgICByZXN1bHQgKz0gZm9ybWF0KGFyZ3VtZW50c1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ICs9ICJdIjsKKyAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24ocmVzdWx0KTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1VDQUNvbmZvcm1hbmNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbGxhdG9yL1VDQUNvbmZvcm1hbmNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3NTM0MWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvVUNBQ29uZm9ybWFuY2VUZXN0LmphdmEKQEAgLTAsMCArMSwyNDQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ09QWVJJR0hUOiAKKyAqIENvcHlyaWdodCAoYykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAqIFVDQUNvbmZvcm1hbmNlVGVzdCBwZXJmb3JtcyBjb25mb3JtYW5jZSB0ZXN0cyBkZWZpbmVkIGluIHRoZSBkYXRhCisgKiBmaWxlcy4gSUNVIHNoaXBzIHdpdGggc3R1YiBkYXRhIGZpbGVzLCBhcyB0aGUgd2hvbGUgdGVzdCBhcmUgdG9vIAorICogbG9uZy4gVG8gZG8gdGhlIHdob2xlIHRlc3QsIGRvd25sb2FkIHRoZSB0ZXN0IGZpbGVzLgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29sbGF0b3I7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RVdGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCitwdWJsaWMgY2xhc3MgVUNBQ29uZm9ybWFuY2VUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSBhcmdzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgVUNBQ29uZm9ybWFuY2VUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVUNBQ29uZm9ybWFuY2VUZXN0KCkgeworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBVQ0EgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgbmV3IExvY2FsZSgicm9vdCIsICIiLCAiIikpOworCisgICAgICAgIGNvbXBhcmVyID0gbmV3IFVURjE2LlN0cmluZ0NvbXBhcmF0b3IodHJ1ZSwgZmFsc2UsIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpOworICAgIH0KKyAgICBSdWxlQmFzZWRDb2xsYXRvciBVQ0E7CisgICAgUnVsZUJhc2VkQ29sbGF0b3IgcmJVQ0E7CisgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvciBjb21wYXJlcjsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGFibGVOb25JZ25vcmFibGUoKSB7CisgICAgICAgIHNldENvbGxOb25JZ25vcmFibGUoVUNBKTsKKyAgICAgICAgb3BlblRlc3RGaWxlKCJOT05fSUdOT1JBQkxFIik7CisgICAgICAgIGNvbmZvcm1hbmNlVGVzdChVQ0EpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGFibGVTaGlmdGVkKCkgeworICAgICAgICBzZXRDb2xsU2hpZnRlZChVQ0EpOworICAgICAgICBvcGVuVGVzdEZpbGUoIlNISUZURUQiKTsKKyAgICAgICAgY29uZm9ybWFuY2VUZXN0KFVDQSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSdWxlc05vbklnbm9yYWJsZSgpIHsKKyAgICAgICAgaW5pdFJiVUNBKCk7CisgICAgICAgIAorICAgICAgICBzZXRDb2xsTm9uSWdub3JhYmxlKHJiVUNBKTsKKyAgICAgICAgb3BlblRlc3RGaWxlKCJOT05fSUdOT1JBQkxFIik7CisgICAgICAgIGNvbmZvcm1hbmNlVGVzdChyYlVDQSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSdWxlc1NoaWZ0ZWQoKSB7CisgICAgICAgIGxvZ2xuKCJUaGlzIHRlc3QgaXMgY3VycmVudGx5IGRpc2FibGVkLCBhcyBpdCBpcyBpbXBvc3NpYmxlIHRvICIrCisgICAgICAgICJ3aG9sbHkgcmVwcmVzZW50IGZyYWN0aW9uYWwgVUNBIHVzaW5nIHRhaWxvcmluZyBydWxlcy4iKTsKKyAgICAgICAgcmV0dXJuOworICAgICAgICAvKiAgICAgICAgaW5pdFJiVUNBKCk7CisgICAgICAgICAKKyAgICAgICAgIGlmKFVfU1VDQ0VTUyhzdGF0dXMpKSB7CisgICAgICAgICBzZXRDb2xsU2hpZnRlZChyYlVDQSk7CisgICAgICAgICBvcGVuVGVzdEZpbGUoIlNISUZURUQiKTsKKyAgICAgICAgIHRlc3RDb25mb3JtYW5jZShyYlVDQSk7CisgICAgICAgICB9CisgICAgICAgICAqLworICAgIH0KKyAgICBCdWZmZXJlZFJlYWRlciBpbjsKKyAgICBwcml2YXRlIHZvaWQgb3BlblRlc3RGaWxlKFN0cmluZyB0eXBlKQorICAgIHsKKyAgICAgICAgU3RyaW5nIGNvbGxhdGlvblRlc3QgPSAiQ29sbGF0aW9uVGVzdF8iOworICAgICAgICBTdHJpbmcgZXh0ID0gIi50eHQiOworICAgICAgICBTdHJpbmdCdWZmZXIgbmFtZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmKGluICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpbi5jbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNvdWxkIG5vdCBjbG9zZSB0aGUgb3BlbmVkIGZpbGUhIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGluID0gVGVzdFV0aWwuZ2V0RGF0YVJlYWRlcihjb2xsYXRpb25UZXN0K3R5cGUrZXh0KTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaW4gPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKGNvbGxhdGlvblRlc3QrdHlwZSsiX1NIT1JUIitleHQpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUxKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgaW4gPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKGNvbGxhdGlvblRlc3QrdHlwZSsiX1NUVUIiK2V4dCk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCAiSU5GTzogV29ya2luZyB3aXRoIHRoZSBzdHViIGZpbGUuXG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJZiB5b3UgbmVlZCB0aGUgZnVsbCBjb25mb3JtYW5jZSB0ZXN0LCBwbGVhc2VcbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRvd25sb2FkIHRoZSBhcHByb3ByaWF0ZSBkYXRhIGZpbGVzIGZyb206XG4iKworICAgICAgICAgICAgICAgICAgICAiaHR0cDovL2Rldi5pY3UtcHJvamVjdC5vcmcvY2dpLWJpbi92aWV3Y3ZzLmNnaS91bmljb2RldG9vbHMvY29tL2libS90ZXh0L2RhdGEvIik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUxMSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IENvdWxkIG5vdCBmaW5kIGFueSBvZiB0aGUgdGVzdCBmaWxlcyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gICAgICAgICAgCisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNldENvbGxOb25JZ25vcmFibGUoUnVsZUJhc2VkQ29sbGF0b3IgY29sbCkgCisgICAgeworICAgICAgICBpZihjb2xsICE9IG51bGwpIHsKKyAgICAgICAgICAgIGNvbGwuc2V0RGVjb21wb3NpdGlvbihSdWxlQmFzZWRDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgICAgICBjb2xsLnNldExvd2VyQ2FzZUZpcnN0KGZhbHNlKTsKKyAgICAgICAgICAgIGNvbGwuc2V0Q2FzZUxldmVsKGZhbHNlKTsKKyAgICAgICAgICAgIGNvbGwuc2V0U3RyZW5ndGgoUnVsZUJhc2VkQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgY29sbC5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoZmFsc2UpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBzZXRDb2xsU2hpZnRlZChSdWxlQmFzZWRDb2xsYXRvciBjb2xsKSAKKyAgICB7CisgICAgICAgIGlmKGNvbGwgIT0gbnVsbCkgeworICAgICAgICAgICAgY29sbC5zZXREZWNvbXBvc2l0aW9uKFJ1bGVCYXNlZENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgICAgIGNvbGwuc2V0TG93ZXJDYXNlRmlyc3QoZmFsc2UpOworICAgICAgICAgICAgY29sbC5zZXRDYXNlTGV2ZWwoZmFsc2UpOworICAgICAgICAgICAgY29sbC5zZXRTdHJlbmd0aChSdWxlQmFzZWRDb2xsYXRvci5RVUFURVJOQVJZKTsKKyAgICAgICAgICAgIGNvbGwuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKHRydWUpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIAorICAgIAorICAgIHByaXZhdGUgdm9pZCBpbml0UmJVQ0EoKSAKKyAgICB7CisgICAgICAgIC8qICAgICAgaWYoIXJiVUNBKSB7CisgICAgICAgICBVUGFyc2VFcnJvciBwYXJzZUVycm9yOworICAgICAgICAgVUNoYXIgICAgICAqdWNhcnVsZXMgPSBidWZmZXI7CisgICAgICAgICBpbnQzMl90IHNpemUgPSB1Y29sX2dldFJ1bGVzRXgoVUNBLCBVQ09MX0ZVTExfUlVMRVMsIHVjYXJ1bGVzLCAKKyAgICAgICAgIEJVRkZFUl9TSVpFXyk7CisgICAgICAgICBpZiAoc2l6ZSA+IEJVRkZFUl9TSVpFXykgeworICAgICAgICAgdWNhcnVsZXMgPSAoVUNoYXIgKiltYWxsb2Moc2l6ZSAqIHNpemVvZihVQ2hhcikpOworICAgICAgICAgc2l6ZSA9IHVjb2xfZ2V0UnVsZXNFeChVQ0EsIFVDT0xfRlVMTF9SVUxFUywgdWNhcnVsZXMsIHNpemUpOworICAgICAgICAgfQorICAgICAgICAgcmJVQ0EgPSB1Y29sX29wZW5SdWxlcyh1Y2FydWxlcywgc2l6ZSwgVUNPTF9ERUZBVUxULCBVQ09MX1RFUlRJQVJZLCAKKyAgICAgICAgICZwYXJzZUVycm9yLCAmc3RhdHVzKTsKKyAgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgZXJybG4oIkZhaWx1cmUgY3JlYXRpbmcgVUNBIHJ1bGUtYmFzZWQgY29sbGF0b3I6ICVzIiwgdV9lcnJvck5hbWUoc3RhdHVzKSk7CisgICAgICAgICByZXR1cm47CisgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICAqLworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBwYXJzZVN0cmluZyhTdHJpbmcgbGluZSkgeworICAgICAgICBpbnQgaSA9IDAsIHZhbHVlOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpLCBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIAorICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIHdoaWxlKENoYXJhY3Rlci5pc1doaXRlc3BhY2UobGluZS5jaGFyQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYobGluZS5jaGFyQXQoaSkgPT0gJzsnIHx8IGkgPT0gbGluZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlKENoYXJhY3Rlci5pc0xldHRlck9yRGlnaXQobGluZS5jaGFyQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChsaW5lLmNoYXJBdChpKSk7CisgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogcmVhZCBvbmUgY29kZSBwb2ludCAqLworICAgICAgICAgICAgdmFsdWUgPSBJbnRlZ2VyLnBhcnNlSW50KGJ1ZmZlci50b1N0cmluZygpLCAxNik7CisgICAgICAgICAgICBidWZmZXIuZGVsZXRlKDAsIGJ1ZmZlci5sZW5ndGgoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChyZXN1bHQsIHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbmZvcm1hbmNlVGVzdChSdWxlQmFzZWRDb2xsYXRvciBjb2xsKSB7CisgICAgICAgIGlmKGluID09IG51bGwgfHwgY29sbCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBsaW5lTm8gPSAwOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGxpbmUgPSBudWxsLCBvbGRMaW5lID0gbnVsbCwgYnVmZmVyID0gbnVsbCwgb2xkQiA9IG51bGw7CisgICAgICAgIENvbGxhdGlvbktleSBvbGRTayA9IG51bGwsIG5ld1NrID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGludCByZXMgPSAwLCBjbXByZXMgPSAwLCBjbXByZXMyID0gMDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB3aGlsZSAoKGxpbmUgPSBpbi5yZWFkTGluZSgpKSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbGluZU5vKys7CisgICAgICAgICAgICAgICAgaWYobGluZS5sZW5ndGgoKSA8IDMgfHwgbGluZS5jaGFyQXQoMCkgPT0gJyMnKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWZmZXIgPSBwYXJzZVN0cmluZyhsaW5lKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBuZXdTayA9IGNvbGwuZ2V0Q29sbGF0aW9uS2V5KGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgaWYob2xkU2sgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXMgPSBvbGRTay5jb21wYXJlVG8obmV3U2spOworICAgICAgICAgICAgICAgICAgICBjbXByZXMgPSBjb2xsLmNvbXBhcmUob2xkQiwgYnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgICAgY21wcmVzMiA9IGNvbGwuY29tcGFyZShidWZmZXIsIG9sZEIpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYoY21wcmVzICE9IC1jbXByZXMyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ29tcGFyZSByZXN1bHQgbm90IHN5bW1ldHJpY2FsIG9uIGxpbmUgIitsaW5lTm8pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmKCgocmVzJjB4ODAwMDAwMDApICE9IChjbXByZXMmMHg4MDAwMDAwMCkpIHx8IChyZXMgPT0gMCAmJiBjbXByZXMgIT0gMCkgfHwgKHJlcyAhPSAwICYmIGNtcHJlcyA9PSAwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZmZlcmVuY2UgYmV0d2VlbiB1Y29sX3N0cmNvbGwgYW5kIHNvcnRrZXkgY29tcGFyZSBvbiBsaW5lICIgKyBsaW5lTm8pOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4ob2xkTGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbihsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYocmVzID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkxpbmUgIiArIGxpbmVObyArICIgaXMgbm90IGdyZWF0ZXIgb3IgZXF1YWwgdGhhbiBwcmV2aW91cyBsaW5lIik7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbihvbGRMaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKGxpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgY21wcmVzID0gY29sbC5jb21wYXJlKG9sZEIsIGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihyZXMgPT0gMCkgeyAgLy8gZXF1YWwgCisgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBjb21wYXJlci5jb21wYXJlKG9sZEIsIGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiUHJvYmFibGUgZXJyb3IgaW4gdGVzdCBmaWxlIG9uIGxpbmUgIiArIGxpbmVObyArIiAoY29tcGFyaW5nIGlkZW50aWNhbCBzdHJpbmdzKSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKG9sZExpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKGxpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXMgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlNvcnRrZXlzIGFyZSBpZGVudGljYWwsIGJ1dCBjb2RlIHBvaW50IGNvbWFwYXJlIGdpdmVzID4wIG9uIGxpbmUgIiArIGxpbmVObyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4ob2xkTGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4obGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb2xkU2sgPSBuZXdTazsKKyAgICAgICAgICAgICAgICBvbGRCID0gYnVmZmVyOworICAgICAgICAgICAgICAgIG9sZExpbmUgPSBsaW5lOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uICIrZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vRGVjb21wcmVzc2lvblRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi9EZWNvbXByZXNzaW9uVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkxM2NlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vRGVjb21wcmVzc2lvblRlc3QuamF2YQpAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29tcHJlc3Npb247CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVEZWNvbXByZXNzb3I7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK3B1YmxpYyBjbGFzcyBEZWNvbXByZXNzaW9uVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IERlY29tcHJlc3Npb25UZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKiBQcmludCBvdXQgYSBzZWdtZW50IG9mIGEgY2hhcmFjdGVyIGFycmF5LCBpZiBpbiB2ZXJib3NlIG1vZGUgKi8KKyAgICBwcml2YXRlIHZvaWQgbG9nKGNoYXIgW10gY2hhcnMsIGludCBzdGFydCwgaW50IGNvdW50KSB7CisgICAgICAgIGxvZygifCIpOworICAgICAgICBmb3IoaW50IGkgPSBzdGFydDsgaSA8IHN0YXJ0ICsgY291bnQ7ICsraSkgeworICAgICAgICAgICAgbG9nKFN0cmluZy52YWx1ZU9mKGNoYXJzW2ldKSk7CisgICAgICAgIH0KKyAgICAgICAgbG9nKCJ8Iik7CisgICAgfQorCisgICAgLyoqIFByaW50IG91dCBhIHNlZ21lbnQgb2YgYSBjaGFyYWN0ZXIgYXJyYXksIGZvbGxvd2VkIGJ5IGEgbmV3bGluZSAqLworICAgIHByaXZhdGUgdm9pZCBsb2dsbihjaGFyIFtdIGNoYXJzLCBpbnQgc3RhcnQsIGludCBjb3VudCkKKyAgICB7CisgICAgICAgIGxvZyhjaGFycywgc3RhcnQsIGNvdW50KTsKKyAgICAgICAgbG9nbG4oIiIpOworICAgIH0KKworICAgIC8qKiBEZWNvbXByZXNzIHRoZSB0d28gc2VnbWVudHMgKi8KKyAgICBwcml2YXRlIFN0cmluZyBkZWNvbXByZXNzVGVzdChieXRlIFtdIHNlZ21lbnQxLCBieXRlIFtdIHNlZ21lbnQyKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBVbmljb2RlRGVjb21wcmVzc29yIG15RGVjb21wcmVzc29yID0gbmV3IFVuaWNvZGVEZWNvbXByZXNzb3IoKTsKKworICAgICAgICBpbnQgW10gYnl0ZXNSZWFkID0gbmV3IGludFsxXTsKKyAgICAgICAgY2hhciBbXSBjaGFyQnVmZmVyID0gbmV3IGNoYXIgWzIqKHNlZ21lbnQxLmxlbmd0aCArIHNlZ21lbnQyLmxlbmd0aCldOworICAgICAgICBpbnQgY291bnQxID0gMCwgY291bnQyID0gMDsKKworICAgICAgICBjb3VudDEgPSBteURlY29tcHJlc3Nvci5kZWNvbXByZXNzKHNlZ21lbnQxLCAwLCBzZWdtZW50MS5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNSZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJCdWZmZXIsIDAsIGNoYXJCdWZmZXIubGVuZ3RoKTsKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJTZWdtZW50IDEgKCIgKyBzZWdtZW50MS5sZW5ndGggKyAiIGJ5dGVzKSAiICsKKyAgICAgICAgICAgICAgICAiZGVjb21wcmVzc2VkIGludG8gIiArIGNvdW50MSAgKyAiIGNoYXJzIik7CisgICAgICAgIGxvZ2xuKCJCeXRlcyBjb25zdW1lZDogIiArIGJ5dGVzUmVhZFswXSk7CisKKyAgICAgICAgbG9nbG4oIkdvdCBjaGFyczogIik7CisgICAgICAgIGxvZ2xuKGNoYXJCdWZmZXIsIDAsIGNvdW50MSk7CisgICAgICAgIHMuYXBwZW5kKGNoYXJCdWZmZXIsIDAsIGNvdW50MSk7CisKKyAgICAgICAgY291bnQyID0gbXlEZWNvbXByZXNzb3IuZGVjb21wcmVzcyhzZWdtZW50MiwgMCwgc2VnbWVudDIubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzUmVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyQnVmZmVyLCBjb3VudDEsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJCdWZmZXIubGVuZ3RoKTsKKyAgICAgICAgCisgICAgICAgIGxvZ2xuKCJTZWdtZW50IDIgKCIgKyBzZWdtZW50Mi5sZW5ndGggKyAiIGJ5dGVzKSAiICsKKyAgICAgICAgICAgICAgICAiZGVjb21wcmVzc2VkIGludG8gIiArIGNvdW50MiAgKyAiIGNoYXJzIik7CisgICAgICAgIGxvZ2xuKCJCeXRlcyBjb25zdW1lZDogIiArIGJ5dGVzUmVhZFswXSk7CisKKyAgICAgICAgbG9nbG4oIkdvdCBjaGFyczogIik7CisgICAgICAgIGxvZ2xuKGNoYXJCdWZmZXIsIGNvdW50MSwgY291bnQyKTsKKyAgICAgICAgCisgICAgICAgIHMuYXBwZW5kKGNoYXJCdWZmZXIsIGNvdW50MSwgY291bnQyKTsKKworICAgICAgICBsb2dsbigiUmVzdWx0OiAiKTsKKyAgICAgICAgbG9nbG4oY2hhckJ1ZmZlciwgMCwgY291bnQxICsgY291bnQyKTsKKyAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09Iik7CisKKyAgICAgICAgcmV0dXJuIHMudG9TdHJpbmcoKTsKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIHRlc3REZWNvbXByZXNzaW9uKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyByZXN1bHQ7CisKKyAgICAgICAgLy8gY29tcHJlc3NlZCBzZWdtZW50IGJyZWFraW5nIG9uIGEgZGVmaW5lIHdpbmRvdyBzZXF1ZW5jZQorICAgICAgICAvKiAgICAgICAgICAgICAgICAgICBCICAgICBvICAgICBvICAgICB0ICAgICBoICAgICBTRDEgICovCisgICAgICAgIGJ5dGUgW10gc2VnbWVudDEgPSB7IDB4NDIsIDB4NmYsIDB4NmYsIDB4NzQsIDB4NjgsIDB4MTkgfTsKKworICAgICAgICAvLyBjb250aW51YXRpb24KKyAgICAgICAgLyogICAgICAgICAgICAgICAgICAgSURYICAgLCAgICAgICAgICAgUyAgICAgLiAgICAgICAgICAqLworICAgICAgICBieXRlIFtdIHNlZ21lbnQyID0geyAweDAxLCAweDJjLCAweDIwLCAweDUzLCAweDJlIH07CisgICAgICAgIAorICAgICAgICByZXN1bHQgPSBkZWNvbXByZXNzVGVzdChzZWdtZW50MSwgc2VnbWVudDIpOworICAgICAgICBpZighIHJlc3VsdC5lcXVhbHMoIkJvb3RoLCBTLiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRGVjb21wcmVzc2lvbiB0ZXN0IGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gY29tcHJlc3NlZCBzZWdtZW50IGJyZWFraW5nIG9uIGEgcXVvdGUgdW5pY29kZSBzZXF1ZW5jZQorICAgICAgICAvKiAgICAgICAgICAgICAgICAgICBCICAgICBvICAgICBvICAgICB0ICAgICBTUVUgICAgICAgICovCisgICAgICAgIGJ5dGUgW10gc2VnbWVudDMgPSB7IDB4NDIsIDB4NmYsIDB4NmYsIDB4NzQsIDB4MGUsIDB4MDAgfTsKKworICAgICAgICAvLyBjb250aW51YXRpb24KKyAgICAgICAgLyogICAgICAgICAgICAgICAgICAgaCAgICAgLCAgICAgICAgICAgUyAgICAgLiAgICAgICAgICAqLworICAgICAgICBieXRlIFtdIHNlZ21lbnQ0ID0geyAweDY4LCAweDJjLCAweDIwLCAweDUzLCAweDJlIH07CisKKyAgICAgICAgcmVzdWx0ID0gZGVjb21wcmVzc1Rlc3Qoc2VnbWVudDMsIHNlZ21lbnQ0KTsKKyAgICAgICAgaWYoISByZXN1bHQuZXF1YWxzKCJCb290aCwgUy4iKSkgeworICAgICAgICAgICAgZXJybG4oIkRlY29tcHJlc3Npb24gdGVzdCBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisKKyAgICAgICAgLy8gY29tcHJlc3NlZCBzZWdtZW50IGJyZWFraW5nIG9uIGEgcXVvdGUgdW5pY29kZSBzZXF1ZW5jZQorICAgICAgICAvKiAgICAgICAgICAgICAgICAgICBTQ1UgICBVUVUgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgYnl0ZSBbXSBzZWdtZW50NSA9IHsgMHgwZiwgKGJ5dGUpMHhmMCwgMHgwMCB9OworCisgICAgICAgIC8vIGNvbnRpbnVhdGlvbgorICAgICAgICAvKiAgICAgICAgICAgICAgICAgICBCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgYnl0ZSBbXSBzZWdtZW50NiA9IHsgMHg0MiB9OworCisgICAgICAgIHJlc3VsdCA9IGRlY29tcHJlc3NUZXN0KHNlZ21lbnQ1LCBzZWdtZW50Nik7CisgICAgICAgIGlmKCEgcmVzdWx0LmVxdWFscygiQiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRGVjb21wcmVzc2lvbiB0ZXN0IGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vRXhoYXVzdGl2ZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9jb21wcmVzc2lvbi9FeGhhdXN0aXZlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVkNzBkYjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vRXhoYXVzdGl2ZVRlc3QuamF2YQpAQCAtMCwwICsxLDUyMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuY29tcHJlc3Npb247CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVDb21wcmVzc29yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZURlY29tcHJlc3NvcjsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitwdWJsaWMgY2xhc3MgRXhoYXVzdGl2ZVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBFeGhhdXN0aXZlVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKiogVGVzdCBzaW1wbGUgY29tcHJlc3MvZGVjb21wcmVzcyBBUEksIHJldHVybmluZyAjIG9mIGVycm9ycyAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RTaW1wbGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGZUZXN0Q2FzZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHNpbXBsZVRlc3QoZlRlc3RDYXNlc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIHNpbXBsZVRlc3QoU3RyaW5nIHMpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBieXRlIFtdIGNvbXByZXNzZWQgPSBVbmljb2RlQ29tcHJlc3Nvci5jb21wcmVzcyhzKTsKKyAgICAgICAgU3RyaW5nIHJlcyA9IFVuaWNvZGVEZWNvbXByZXNzb3IuZGVjb21wcmVzcyhjb21wcmVzc2VkKTsKKyAgICAgICAgaWYgKGxvZ0RpZmZzKHMudG9DaGFyQXJyYXkoKSwgcy5sZW5ndGgoKSwgCisgICAgICAgICAgICAgICAgcmVzLnRvQ2hhckFycmF5KCksIHJlcy5sZW5ndGgoKSkgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgIGxvZ2xuKHMubGVuZ3RoKCkgKyAiIGNoYXJzID09PT4gIiAKKyAgICAgICAgICAgICAgICAgICAgKyBjb21wcmVzc2VkLmxlbmd0aCArICIgYnl0ZXMgPT09PiAiIAorICAgICAgICAgICAgICAgICAgICArIHJlcy5sZW5ndGgoKSArICIgY2hhcnMiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJDb21wcmVzc2VkOiIpOworICAgICAgICAgICAgcHJpbnRCeXRlcyhjb21wcmVzc2VkLCBjb21wcmVzc2VkLmxlbmd0aCk7CisgICAgICAgICAgICBlcnJsbigidGVzdFNpbXBsZSBkaWQgbm90IGNvbXByZXNzIGNvcnJlY3RseSIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIFRlc3QgaXRlcmF0aXZlIGNvbXByZXNzL2RlY29tcHJlc3MgQVBJLCByZXR1cm5pbmcgIyBvZiBlcnJvcnMgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SXRlcmF0aXZlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBmVGVzdENhc2VzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBteVRlc3QoZlRlc3RDYXNlc1tpXS50b0NoYXJBcnJheSgpLCBmVGVzdENhc2VzW2ldLmxlbmd0aCgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgbXlUZXN0KGNoYXJbXSBjaGFycywgaW50IGxlbikgeworICAgICAgICBVbmljb2RlQ29tcHJlc3NvciBteUNvbXByZXNzb3IgPSBuZXcgVW5pY29kZUNvbXByZXNzb3IoKTsKKyAgICAgICAgVW5pY29kZURlY29tcHJlc3NvciBteURlY29tcHJlc3NvciA9IG5ldyBVbmljb2RlRGVjb21wcmVzc29yKCk7CisgICAgICAgIAorICAgICAgICAvLyB2YXJpYWJsZXMgZm9yIG15IGNvbXByZXNzb3IKKyAgICAgICAgaW50IG15Qnl0ZUNvdW50ID0gMDsKKyAgICAgICAgaW50IG15Q2hhckNvdW50ID0gMDsKKyAgICAgICAgaW50IG15Q29tcHJlc3NlZFNpemUgPSBNYXRoLm1heCg1MTIsIDMqbGVuKTsKKyAgICAgICAgYnl0ZVtdIG15Q29tcHJlc3NlZCA9IG5ldyBieXRlW215Q29tcHJlc3NlZFNpemVdOworICAgICAgICBpbnQgbXlEZWNvbXByZXNzZWRTaXplID0gTWF0aC5tYXgoMiwgMiAqIGxlbik7CisgICAgICAgIGNoYXJbXSBteURlY29tcHJlc3NlZCA9IG5ldyBjaGFyW215RGVjb21wcmVzc2VkU2l6ZV07CisgICAgICAgIGludFtdIHVuaWNoYXJzUmVhZCA9IG5ldyBpbnRbMV07CisgICAgICAgIGludFtdIGJ5dGVzUmVhZCA9IG5ldyBpbnRbMV07CisgICAgICAgIAorICAgICAgICBteUJ5dGVDb3VudCA9IG15Q29tcHJlc3Nvci5jb21wcmVzcyhjaGFycywgMCwgbGVuLCB1bmljaGFyc1JlYWQsCisgICAgICAgICAgICAgICAgbXlDb21wcmVzc2VkLCAwLCBteUNvbXByZXNzZWRTaXplKTsKKworICAgICAgICBteUNoYXJDb3VudCA9IG15RGVjb21wcmVzc29yLmRlY29tcHJlc3MobXlDb21wcmVzc2VkLCAwLCBteUJ5dGVDb3VudCwKKyAgICAgICAgICAgICAgICBieXRlc1JlYWQsIG15RGVjb21wcmVzc2VkLCAwLCBteURlY29tcHJlc3NlZFNpemUpOworCisgICAgICAgIGlmIChsb2dEaWZmcyhjaGFycywgbGVuLCBteURlY29tcHJlc3NlZCwgbXlDaGFyQ291bnQpID09IGZhbHNlKSB7CisgICAgICAgICAgICBsb2dsbihsZW4gKyAiIGNoYXJzID09PT4gIiAKKyAgICAgICAgICAgICAgICAgICAgKyBteUJ5dGVDb3VudCArICIgYnl0ZXMgPT09PiAiIAorICAgICAgICAgICAgICAgICAgICArIG15Q2hhckNvdW50ICsgIiBjaGFycyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIkNvbXByZXNzZWQ6Iik7CisgICAgICAgICAgICBwcmludEJ5dGVzKG15Q29tcHJlc3NlZCwgbXlCeXRlQ291bnQpOworICAgICAgICAgICAgZXJybG4oIkl0ZXJhdGl2ZSB0ZXN0IGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIFRlc3QgaXRlcmF0aXZlIGNvbXByZXNzL2RlY29tcHJlc3MgQVBJICovCisgICAgcHVibGljIHZvaWQgdGVzdE11bHRpcGFzcygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgZlRlc3RDYXNlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbXlNdWx0aXBhc3NUZXN0KGZUZXN0Q2FzZXNbaV0udG9DaGFyQXJyYXkoKSwgZlRlc3RDYXNlc1tpXS5sZW5ndGgoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIG15TXVsdGlwYXNzVGVzdChjaGFyIFtdIGNoYXJzLCBpbnQgbGVuKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVW5pY29kZUNvbXByZXNzb3IgbXlDb21wcmVzc29yID0gbmV3IFVuaWNvZGVDb21wcmVzc29yKCk7CisgICAgICAgIFVuaWNvZGVEZWNvbXByZXNzb3IgbXlEZWNvbXByZXNzb3IgPSBuZXcgVW5pY29kZURlY29tcHJlc3NvcigpOworICAgICAgICAKKyAgICAgICAgLy8gdmFyaWFibGVzIGZvciBteSBjb21wcmVzc29yCisgICAgICAgIAorICAgICAgICAvLyBmb3IgbG9vcGluZworICAgICAgICBpbnQgYnl0ZUJ1ZmZlclNpemUgPSA0Oy8vTWF0aC5tYXgoNCwgbGVuIC8gNCk7CisgICAgICAgIGJ5dGVbXSBieXRlQnVmZmVyID0gbmV3IGJ5dGUgW2J5dGVCdWZmZXJTaXplXTsKKyAgICAgICAgLy8gcmVhbCB0YXJnZXQKKyAgICAgICAgaW50IGNvbXByZXNzZWRTaXplID0gTWF0aC5tYXgoNTEyLCAzICogbGVuKTsKKyAgICAgICAgYnl0ZVtdIGNvbXByZXNzZWQgPSBuZXcgYnl0ZVtjb21wcmVzc2VkU2l6ZV07CisKKyAgICAgICAgLy8gZm9yIGxvb3BpbmcKKyAgICAgICAgaW50IHVuaWNoYXJCdWZmZXJTaXplID0gMjsvL2J5dGVCdWZmZXJTaXplOworICAgICAgICBjaGFyW10gdW5pY2hhckJ1ZmZlciA9IG5ldyBjaGFyW3VuaWNoYXJCdWZmZXJTaXplXTsKKyAgICAgICAgLy8gcmVhbCB0YXJnZXQKKyAgICAgICAgaW50IGRlY29tcHJlc3NlZFNpemUgPSBNYXRoLm1heCgyLCAyICogbGVuKTsKKyAgICAgICAgY2hhcltdIGRlY29tcHJlc3NlZCA9IG5ldyBjaGFyW2RlY29tcHJlc3NlZFNpemVdOworCisgICAgICAgIGludCBieXRlc1dyaXR0ZW4gPSAwOworICAgICAgICBpbnQgdW5pY2hhcnNXcml0dGVuID0gMDsKKworICAgICAgICBpbnRbXSB1bmljaGFyc1JlYWQgPSBuZXcgaW50WzFdOworICAgICAgICBpbnRbXSBieXRlc1JlYWQgPSBuZXcgaW50WzFdOworICAgICAgICAKKyAgICAgICAgaW50IHRvdGFsQ2hhcnNDb21wcmVzc2VkID0gMDsKKyAgICAgICAgaW50IHRvdGFsQnl0ZXNXcml0dGVuID0gMDsKKworICAgICAgICBpbnQgdG90YWxCeXRlc0RlY29tcHJlc3NlZCAgPSAwOworICAgICAgICBpbnQgdG90YWxDaGFyc1dyaXR0ZW4gPSAwOworCisgICAgICAgIC8vIG5vdCB1c2VkIGJvb2xlYW4gZXJyID0gZmFsc2U7CisKKworICAgICAgICAvLyBwZXJmb3JtIHRoZSBjb21wcmVzc2lvbiBpbiBhIGxvb3AKKyAgICAgICAgZG8geworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBkbyB0aGUgY29tcHJlc3Npb24KKyAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiA9IG15Q29tcHJlc3Nvci5jb21wcmVzcyhjaGFycywgdG90YWxDaGFyc0NvbXByZXNzZWQsIAorICAgICAgICAgICAgICAgICAgIGxlbiwgdW5pY2hhcnNSZWFkLCBieXRlQnVmZmVyLCAwLCBieXRlQnVmZmVyU2l6ZSk7CisKKyAgICAgICAgICAgIC8vIGNvcHkgdGhlIGN1cnJlbnQgc2V0IG9mIGJ5dGVzIGludG8gdGhlIHRhcmdldCBidWZmZXIKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgMCwgY29tcHJlc3NlZCwgCisgICAgICAgICAgICAgICAgICAgdG90YWxCeXRlc1dyaXR0ZW4sIGJ5dGVzV3JpdHRlbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgbm8uIG9mIGNoYXJhY3RlcnMgY29tcHJlc3NlZAorICAgICAgICAgICAgdG90YWxDaGFyc0NvbXByZXNzZWQgKz0gdW5pY2hhcnNSZWFkWzBdOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIG5vLiBvZiBieXRlcyB3cml0dGVuCisgICAgICAgICAgICB0b3RhbEJ5dGVzV3JpdHRlbiArPSBieXRlc1dyaXR0ZW47CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qU3lzdGVtLm91dC5sb2dsbigiQ29tcHJlc3Npb24gcGFzcyBjb21wbGV0ZS4gIENvbXByZXNzZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdW5pY2hhcnNSZWFkWzBdICsgIiBjaGFycyBpbnRvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGJ5dGVzV3JpdHRlbiArICIgYnl0ZXMuIik7Ki8KKyAgICAgICAgfSB3aGlsZSh0b3RhbENoYXJzQ29tcHJlc3NlZCA8IGxlbik7CisKKyAgICAgICAgaWYgKHRvdGFsQ2hhcnNDb21wcmVzc2VkICE9IGxlbikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBOdW1iZXIgb2YgY2hhcmFjdGVycyBjb21wcmVzc2VkKCIKKyAgICAgICAgICAgICAgICAgICAgKyB0b3RhbENoYXJzQ29tcHJlc3NlZCArICIpICE9IGxlbigiICsgbGVuICsgIikiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJNUDogIiArIGxlbiArICIgY2hhcnMgPT09PiAiICsgdG90YWxCeXRlc1dyaXR0ZW4gKyAiIGJ5dGVzLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBwZXJmb3JtIHRoZSBkZWNvbXByZXNzaW9uIGluIGEgbG9vcAorICAgICAgICBkbyB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGRvIHRoZSBkZWNvbXByZXNzaW9uCisgICAgICAgICAgICB1bmljaGFyc1dyaXR0ZW4gPSBteURlY29tcHJlc3Nvci5kZWNvbXByZXNzKGNvbXByZXNzZWQsIAorICAgICAgICAgICAgICAgICAgICB0b3RhbEJ5dGVzRGVjb21wcmVzc2VkLCB0b3RhbEJ5dGVzV3JpdHRlbiwgCisgICAgICAgICAgICAgICAgICAgIGJ5dGVzUmVhZCwgdW5pY2hhckJ1ZmZlciwgMCwgdW5pY2hhckJ1ZmZlclNpemUpOworCisgICAgICAgICAgICAvLyBjb3B5IHRoZSBjdXJyZW50IHNldCBvZiBjaGFycyBpbnRvIHRoZSB0YXJnZXQgYnVmZmVyCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHVuaWNoYXJCdWZmZXIsIDAsIGRlY29tcHJlc3NlZCwgCisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnNXcml0dGVuLCB1bmljaGFyc1dyaXR0ZW4pOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIG5vLiBvZiBieXRlcyBkZWNvbXByZXNzZWQKKyAgICAgICAgICAgIHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQgKz0gYnl0ZXNSZWFkWzBdOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB1cGRhdGUgdGhlIG5vLiBvZiBjaGFycyB3cml0dGVuCisgICAgICAgICAgICB0b3RhbENoYXJzV3JpdHRlbiArPSB1bmljaGFyc1dyaXR0ZW47CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qU3lzdGVtLm91dC5sb2dsbigiRGVjb21wcmVzc2lvbiBwYXNzIGNvbXBsZXRlLiAgRGVjb21wcmVzc2VkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGJ5dGVzUmVhZFswXSArICIgYnl0ZXMgaW50byAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB1bmljaGFyc1dyaXR0ZW4gKyAiIGNoYXJzLiIpOyovCisgICAgICAgIH0gd2hpbGUgKHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQgPCB0b3RhbEJ5dGVzV3JpdHRlbik7CisKKyAgICAgICAgaWYgKHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQgIT0gdG90YWxCeXRlc1dyaXR0ZW4pIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogTnVtYmVyIG9mIGJ5dGVzIGRlY29tcHJlc3NlZCgiIAorICAgICAgICAgICAgICAgICAgICArIHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQgCisgICAgICAgICAgICAgICAgICAgICsgIikgIT0gdG90YWxCeXRlc1dyaXR0ZW4oIiAKKyAgICAgICAgICAgICAgICAgICAgKyB0b3RhbEJ5dGVzV3JpdHRlbiArICIpIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiTVA6ICIgKyB0b3RhbEJ5dGVzV3JpdHRlbgorICAgICAgICAgICAgICAgICAgICArICIgYnl0ZXMgPT09PiAiICsgdG90YWxDaGFyc1dyaXR0ZW4gKyAiIGNoYXJzLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobG9nRGlmZnMoY2hhcnMsIGxlbiwgZGVjb21wcmVzc2VkLCB0b3RhbENoYXJzV3JpdHRlbikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogYnVmZmVyIGNvbnRlbnRzIGluY29ycmVjdCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIFByaW50IGRpZmZlcmVuY2VzIGJldHdlZW4gdHdvIGNoYXJhY3RlciBidWZmZXJzICovCisgICAgcHJpdmF0ZSBib29sZWFuIGxvZ0RpZmZzKGNoYXJbXSBzMSwgaW50IHMxbGVuLCBjaGFyW10gczIsIGludCBzMmxlbikgeworICAgICAgICBib29sZWFuIHJlc3VsdCAgPSBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGlmKHMxbGVuICE9IHMybGVuKSB7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIGxvZ2xuKCJMZW5ndGggZG9lc24ndCBtYXRjaDogZXhwZWN0ZWQgIiArIHMxbGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBnb3QgIiArIHMybGVuKTsKKyAgICAgICAgICAgIGxvZ2xuKCJFeHBlY3RlZDoiKTsKKyAgICAgICAgICAgIHByaW50Q2hhcnMoczEsIHMxbGVuKTsKKyAgICAgICAgICAgIGxvZ2xuKCJHb3Q6Iik7CisgICAgICAgICAgICBwcmludENoYXJzKHMyLCBzMmxlbik7CisgICAgICAgICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgbGVuID0gTWF0aC5taW4oczFsZW4sIHMybGVuKTsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgICAgICBpZihzMVtpXSAhPSBzMltpXSkgeworICAgICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nbG4oIkZpcnN0IGRpZmZlcmVuY2UgYXQgY2hhciAiICsgaSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIkV4cC4gY2hhcjogIiArIEludGVnZXIudG9IZXhTdHJpbmcoczFbaV0pKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiR290IGNoYXIgOiAiICsgSW50ZWdlci50b0hleFN0cmluZyhzMltpXSkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJFeHBlY3RlZDoiKTsKKyAgICAgICAgICAgICAgICBwcmludENoYXJzKHMxLCBzMWxlbik7CisgICAgICAgICAgICAgICAgbG9nbG4oIkdvdDoiKTsKKyAgICAgICAgICAgICAgICBwcmludENoYXJzKHMyLCBzMmxlbik7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIGdlbmVyYXRlIGEgc3RyaW5nIG9mIGNoYXJhY3RlcnMsIHdpdGggc2ltdWxhdGVkIHJ1bnMgb2YgY2hhcmFjdGVycworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSByYW5kb21DaGFycyhpbnQgbGVuLCBSYW5kb20gcmFuZG9tKSB7CisgICAgICAgIGNoYXJbXSByZXN1bHQgPSBuZXcgY2hhciBbbGVuXTsKKyAgICAgICAgaW50IHJ1bkxlbiA9IDA7CisgICAgICAgIGludCB1c2VkID0gMDsKKyAgICAgICAgCisgICAgICAgIHdoaWxlKHVzZWQgPCBsZW4pIHsKKyAgICAgICAgICAgIHJ1bkxlbiA9IChpbnQpICgzMCAqIHJhbmRvbS5uZXh0RG91YmxlKCkpOworICAgICAgICAgICAgaWYodXNlZCArIHJ1bkxlbiA+PSBsZW4pIHsKKyAgICAgICAgICAgICAgICBydW5MZW4gPSBsZW4gLSB1c2VkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmFuZG9tUnVuKHJlc3VsdCwgdXNlZCwgcnVuTGVuLCByYW5kb20pOworICAgICAgICAgICAgdXNlZCArPSBydW5MZW47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyBnZW5lcmF0ZSBhIHJ1biBvZiBjaGFyYWN0ZXJzIGluIGEgIndpbmRvdyIKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHJhbmRvbVJ1bihjaGFyW10gdGFyZ2V0LCBpbnQgcG9zLCBpbnQgbGVuLCBSYW5kb20gcmFuZG9tKSB7CisgICAgICAgIGludCBvZmZzZXQgPSAoaW50KSAoMHhGRkZGICogcmFuZG9tLm5leHREb3VibGUoKSk7CisKKyAgICAgICAgLy8gZG9uJ3Qgb3ZlcmZsb3cgMTYgYml0cworICAgICAgICBpZihvZmZzZXQgPiAweEZGODApIHsKKyAgICAgICAgICAgIG9mZnNldCA9IDB4RkY4MDsKKyAgICAgICAgfQorCisgICAgICAgIGZvcihpbnQgaSA9IHBvczsgaSA8IHBvcyArIGxlbjsgaSsrKSB7CisgICAgICAgICAgICB0YXJnZXRbaV0gPSAoY2hhcikob2Zmc2V0ICsgKDB4N0YgKiByYW5kb20ubmV4dERvdWJsZSgpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgW10gZlRlc3RDYXNlcyA9IHsKKyAgICAgICAgIkhlbGxvIFx1OTI5MiBcdTkxOTIgV29ybGQhIiwKKyAgICAgICAgIkhlbGxcdTA0MjlvIFx1OTI5MiBcdTkxOTIgV1x1MDA4NHJsZCEiLAorICAgICAgICAiSGVsbFx1MDQyOW8gXHU5MjkyIFx1OTI5MldcdTAwODRybGQhIiwKKworICAgICAgICAiXHUwNjQ4XHUwNmM4IiwgLy8gY2F0Y2ggbWlzc2luZyByZXNldAorICAgICAgICAiXHUwNjQ4XHUwNmM4IiwKKworICAgICAgICAiXHU0NDQ0XHVFMDAxIiwgLy8gbG93ZXN0IHF1b3RhYmxlCisgICAgICAgICJcdTQ0NDRcdWYyRkYiLCAvLyBoaWdoZXN0IHF1b3RhYmxlCisgICAgICAgICJcdTQ0NDRcdWYxODhcdTQ0NDQiLAorICAgICAgICAiXHU0NDQ0XHVmMTg4XHVmMjg4IiwKKyAgICAgICAgIlx1NDQ0NFx1ZjE4OGFiY1wwNDI5XHVmMjg4IiwKKyAgICAgICAgIlx1OTI5Mlx1MjIyMiIsCisgICAgICAgICJIZWxsXHUwNDI5XHUwNDIzMG8gXHU5MjkyIFx1OTI5MldcdTAwODRcdTAxOTJybGQhIiwKKyAgICAgICAgIkhlbGxcdTA0MjlvIFx1OTI5MiBcdTkyOTJXXHUwMDg0cmxkISIsCisgICAgICAgICJIZWxsbyBXb3JsZCExMjM0NTYiLAorICAgICAgICAiSGVsbG8gV1x1MDA4MVx1MDExZlx1MDA4MiEiLCAvLyBMYXRpbiAxIHJ1bgorCisgICAgICAgICJhYmNcdTAzMDFcdTAzMDIiLCAgLy8gdXNlcyBTUW4gZm9yIHUzMDEgdTMwMgorICAgICAgICAiYWJjXHU0NDExZCIsICAgICAgLy8gdXNlcyBTUVUKKyAgICAgICAgImFiY1x1NDQxMVx1NDQxMmQiLC8vIHVzZXMgU0NVCisgICAgICAgICJhYmNcdTA0MDFcdTA0MDJcdTA0N2ZcdTAwYTVcdTA0MDUiLCAvLyB1c2VzIFNRbiBmb3IgdWE1CisgICAgICAgICJcdTkxOTFcdTkxOTFcdTMwNDFcdTkxOTFcdTMwNDFcdTMwNDFcdTMwMDAiLCAvLyBTSklTIGxpa2UgZGF0YQorICAgICAgICAiXHU5MjkyXHUyMjIyIiwKKyAgICAgICAgIlx1OTE5MVx1OTE5MVx1MzA0MVx1OTE5MVx1MzA0MVx1MzA0MVx1MzAwMCIsCisgICAgICAgICJcdTk5OTlcdTMwNTFcdTMwMGNcdTk5OTlcdTk5OTlcdTMwNjBcdTk5OTlcdTMwNjVcdTMwNjVcdTMwNjVcdTMwMGMiLAorICAgICAgICAiXHUzMDAwXHUyNjZhXHUzMGVhXHUzMGYzXHUzMGI0XHU1M2VmXHU2MTFiXHUzMDQ0XHUzMDg0XHU1M2VmXHU2MTFiXHUzMDQ0XHUzMDg0XHUzMGVhXHUzMGYzXHUzMGI0XHUzMDAyIiwKKworICAgICAgICAiIiwgLy8gZW1wdHkgaW5wdXQKKyAgICAgICAgIlx1MDAwMCIsIC8vIHNtYWxsZXN0IEJNUCBjaGFyYWN0ZXIKKyAgICAgICAgIlx1RkZGRiIsIC8vIGxhcmdlc3QgQk1QIGNoYXJhY3RlcgorCisgICAgICAgICJcdWQ4MDBcdWRjMDAiLCAvLyBzbWFsbGVzdCBzdXJyb2dhdGUKKyAgICAgICAgIlx1ZDhmZlx1ZGNmZiIsIC8vIGxhcmdlc3Qgc3Vycm9nYXRlIHBhaXIKKyAgICAgICAgCisgICAgICAgIC8vIHJlZ3Jlc3Npb24gdGVzdHMKKyAgICAgICAgIlx1NjQ0MVx1YjQxM1x1YTczM1x1ZjhmZVx1ZWVkYlx1NTg3Zlx1MTk1Zlx1NDg5OVx1ZjIzZFx1NDlmZFx1MGFhY1x1NTc5Mlx1ZmMyMlx1ZmMzY1x1ZmM0Nlx1MDBhYSIsCisgICAgICAgICJcdTMwZjlcdTgzMjFcdTA1ZTVcdTE4MWNcdWQ3MmJcdTIwMTlcdTk5YzlcdTJmMmZcdWMxMGNcdTgyZTFcdTJjNGRcdTFlYmNcdTYwMTNcdTY2ZGNcdWJiZGVcdTk0YTVcdTQ3MjZcdTc0YWZcdTMwODNcdTU1YjlcdTAwMGMiLAorICAgICAgICAiXHUwMDQxXHUwMGRmXHUwNDAxXHUwMTVmIiwKKyAgICAgICAgIlx1OTA2Nlx1MjEyM2FiYyIsCisgICAgICAgICJcdWQyNjZcdTQzZDdcXFx1ZTM4Nlx1YzljMFx1NGE2Ylx1OTIyMlx1OTAxZlx1NzQxMFx1YTYzZlx1NTM5Ylx1OTU5Nlx1NDgyZVx1OWQ0N1x1Y2ZlNFx1N2I3MVx1YzI4MFx1ZjI2YVx1OTgyZlx1ODYyYVx1NGVkZFx1ZjUxM1x1ZmRhNlx1ODY5ZFx1MmVlMFx1YTIxNlx1M2ZmNlx1M2M3MFx1ODljMFx1OTU3Nlx1ZDVlY1x1YmZkYVx1NmNjYVx1NWJiM1x1YmNlYVx1NTU0Y1x1OTE0ZVx1ZmE0YVx1ZWRlM1x1Mjk5MFx1ZDJmNVx1MjcyOVx1NTE0MVx1MGYyNlx1Y2NkOFx1NTQxM1x1ZDE5Nlx1YmJlMlx1NTFiOVx1OWI0OFx1MGRjOFx1MjE5NVx1MjFhMlx1MjFlOVx1MDBlNFx1OWQ5Mlx1MGJjMFx1MDZjNSIsCisgICAgICAgICJcdWY5NWJcdTI0NThcdTI0NjhcdTBlMjBcdWY1MWJcdWUzNmVcdWJmYzFcdTAwODBcdTAyZGRcdWYxYjVcdTBjZjNcdTYwNTlcdTc0ODkiCisKKyAgICB9OworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIENvbXByZXNzaW9uIG1vZGVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTSU5HTEVCWVRFTU9ERSAgICAgICAgICAgICAgICAgPSAwOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVTklDT0RFTU9ERSAgICAgICAgICAgICAgICAgICAgICAgID0gMTsKKyAgICAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gU2luZ2xlLWJ5dGUgbW9kZSB0YWdzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FWCAgICAgICAgICAgICAgICAgICA9IDB4MEI7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNSRVNFUlZFRCAgICAgICAgICAgICAgICAgID0gMHgwQzsgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIHJlc2VydmVkIHZhbHVlCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URVUgICAgICAgICAgICAgICAgICAgID0gMHgwRTsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSFUgICAgICAgICAgICAgICAgICAgPSAweDBGOworCisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTUVVPVEUwICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAxOworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMSAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMjsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTIgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDM7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTUVVPVEUzICAgICAgICAgICAgICAgICAgICAgICAgPSAweDA0OworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNCAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwNTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTUgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDY7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTUVVPVEU2ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwNzsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTcgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDg7CisKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNTV0lUQ0gwICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTA7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENIMSAgICAgICAgICAgICAgICAgICAgICAgPSAweDExOworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSDIgICAgICAgICAgICAgICAgICAgICAgID0gMHgxMjsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNTV0lUQ0gzICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTM7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENINCAgICAgICAgICAgICAgICAgICAgICAgPSAweDE0OworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU1NXSVRDSDUgICAgICAgICAgICAgICAgICAgICAgID0gMHgxNTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNTV0lUQ0g2ICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTY7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTU1dJVENINyAgICAgICAgICAgICAgICAgICAgICAgPSAweDE3OworCisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FMCAgICAgICAgICAgICAgICAgICAgICAgPSAweDE4OworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTEgICAgICAgICAgICAgICAgICAgICAgID0gMHgxOTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUyICAgICAgICAgICAgICAgICAgICAgICA9IDB4MUE7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FMyAgICAgICAgICAgICAgICAgICAgICAgPSAweDFCOworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTQgICAgICAgICAgICAgICAgICAgICAgID0gMHgxQzsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU1ICAgICAgICAgICAgICAgICAgICAgICA9IDB4MUQ7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBTREVGSU5FNiAgICAgICAgICAgICAgICAgICAgICAgPSAweDFFOworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTcgICAgICAgICAgICAgICAgICAgICAgID0gMHgxRjsKKworICAgICAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgICAgIC8vIFVuaWNvZGUgbW9kZSB0YWdzCisgICAgICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVTV0lUQ0gwICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTA7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVU1dJVENIMSAgICAgICAgICAgICAgICAgICAgICAgPSAweEUxOworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVVNXSVRDSDIgICAgICAgICAgICAgICAgICAgICAgID0gMHhFMjsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVTV0lUQ0gzICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTM7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVU1dJVENINCAgICAgICAgICAgICAgICAgICAgICAgPSAweEU0OworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVVNXSVRDSDUgICAgICAgICAgICAgICAgICAgICAgID0gMHhFNTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVTV0lUQ0g2ICAgICAgICAgICAgICAgICAgICAgICA9IDB4RTY7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVU1dJVENINyAgICAgICAgICAgICAgICAgICAgICAgPSAweEU3OworCisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVREVGSU5FMCAgICAgICAgICAgICAgICAgICAgICAgPSAweEU4OworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTEgICAgICAgICAgICAgICAgICAgICAgID0gMHhFOTsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUyICAgICAgICAgICAgICAgICAgICAgICA9IDB4RUE7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVREVGSU5FMyAgICAgICAgICAgICAgICAgICAgICAgPSAweEVCOworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTQgICAgICAgICAgICAgICAgICAgICAgID0gMHhFQzsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU1ICAgICAgICAgICAgICAgICAgICAgICA9IDB4RUQ7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVREVGSU5FNiAgICAgICAgICAgICAgICAgICAgICAgPSAweEVFOworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTcgICAgICAgICAgICAgICAgICAgICAgID0gMHhFRjsKKworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgVVFVT1RFVSAgICAgICAgICAgICAgICAgICAgICAgID0gMHhGMDsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkVYICAgICAgICAgICAgICAgICAgICAgICA9IDB4RjE7CisgICAgICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGludCBVUkVTRVJWRUQgICAgICAgICAgICAgICAgICAgICAgPSAweEYyOyAgICAgICAgIC8vIHRoaXMgaXMgYSByZXNlcnZlZCB2YWx1ZQorCisgICAgLyogUHJpbnQgb3V0IGFuIGFycmF5IG9mIGNoYXJhY3RlcnMsIHdpdGggbm9uLXByaW50YWJsZXMgKGZvciBtZSkgCisgICAgICAgZGlzcGxheWVkIGFzIGhleCB2YWx1ZXMgKi8KKyAgICBwcml2YXRlIHZvaWQgcHJpbnRDaGFycyhjaGFyW10gY2hhcnMsIGludCBsZW4pIHsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgICAgICBpbnQgYyA9IChpbnQpY2hhcnNbaV07CisgICAgICAgICAgICBpZihjIDwgMHgwMDIwIHx8IGMgPj0gMHg3ZikgeworICAgICAgICAgICAgICAgIGxvZygiWzB4Iik7CisgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgICAgIGxvZygiXSIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2coU3RyaW5nLnZhbHVlT2YoKGNoYXIpYykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCIiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRCeXRlcyhieXRlW10gYnl0ZUJ1ZmZlciwgaW50IGxlbikgeworICAgICAgICBpbnQgY3VyQnl0ZUluZGV4ID0gMDsKKyAgICAgICAgaW50IGJ5dGVCdWZmZXJMaW1pdCA9IGxlbjsKKyAgICAgICAgaW50IG1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKyAgICAgICAgaW50IGFCeXRlID0gMHgwMDsKKyAgICAgICAgCisgICAgICAgIGlmKGxlbiA+IGJ5dGVCdWZmZXIubGVuZ3RoKSB7CisgICAgICAgICAgICBsb2dsbigiV2FybmluZzogcHJpbnRCeXRlcyBjYWxsZWQgd2l0aCBsZW5ndGggdG9vIGxhcmdlLiBUcnVuY2F0aW5nIik7CisgICAgICAgICAgICBieXRlQnVmZmVyTGltaXQgPSBieXRlQnVmZmVyLmxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd2hpbGUoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICBzd2l0Y2gobW9kZSkgeyAgCisgICAgICAgICAgICBjYXNlIFNJTkdMRUJZVEVNT0RFOgorICAgICAgICAgICAgICAgIHdoaWxlKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCAKKyAgICAgICAgICAgICAgICAgICAgICAmJiBtb2RlID09IFNJTkdMRUJZVEVNT0RFKSAgeworICAgICAgICAgICAgICAgICAgICBhQnl0ZSA9ICgoaW50KWJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkY7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaChhQnl0ZSkgeworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGFCeXRlKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gcXVvdGUgdW5pY29kZQorICAgICAgICAgICAgICAgICAgICBjYXNlIFNRVU9URVU6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlNRVU9URVUgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN3aXRjaCB0byBVbmljb2RlIG1vZGUKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBTU1dJVENIVToKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiU1NXSVRDSFUgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBtb2RlID0gVU5JQ09ERU1PREU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGFsbCBxdW90ZSB0YWdzCisgICAgICAgICAgICAgICAgICAgIGNhc2UgU1FVT1RFMDogY2FzZSBTUVVPVEUxOiBjYXNlIFNRVU9URTI6IGNhc2UgU1FVT1RFMzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBTUVVPVEU0OiBjYXNlIFNRVU9URTU6IGNhc2UgU1FVT1RFNjogY2FzZSBTUVVPVEU3OgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJTUVVPVEUiICsgKGFCeXRlIC0gU1FVT1RFMCkgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgYWxsIHN3aXRjaCB0YWdzCisgICAgICAgICAgICAgICAgICAgIGNhc2UgU1NXSVRDSDA6IGNhc2UgU1NXSVRDSDE6IGNhc2UgU1NXSVRDSDI6IGNhc2UgU1NXSVRDSDM6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgU1NXSVRDSDQ6IGNhc2UgU1NXSVRDSDU6IGNhc2UgU1NXSVRDSDY6IGNhc2UgU1NXSVRDSDc6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlNTV0lUQ0giICsgKGFCeXRlIC0gU1NXSVRDSDApICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGFsbCBkZWZpbmUgdGFncworICAgICAgICAgICAgICAgICAgICBjYXNlIFNERUZJTkUwOiBjYXNlIFNERUZJTkUxOiBjYXNlIFNERUZJTkUyOiBjYXNlIFNERUZJTkUzOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFNERUZJTkU0OiBjYXNlIFNERUZJTkU1OiBjYXNlIFNERUZJTkU2OiBjYXNlIFNERUZJTkU3OgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJTREVGSU5FIiArIChhQnl0ZSAtIFNERUZJTkUwKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgZGVmaW5lIGV4dGVuZGVkIHRhZworICAgICAgICAgICAgICAgICAgICBjYXNlIFNERUZJTkVYOgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJTREVGSU5FWCAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB9IC8vIGVuZCBzd2l0Y2gKKyAgICAgICAgICAgICAgICB9IC8vIGVuZCB3aGlsZQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBVTklDT0RFTU9ERToKKyAgICAgICAgICAgICAgICB3aGlsZShjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQgJiYgbW9kZSA9PSBVTklDT0RFTU9ERSkgeworICAgICAgICAgICAgICAgICAgICBhQnl0ZSA9ICgoaW50KWJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkY7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaChhQnl0ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGFsbCBkZWZpbmUgdGFncworICAgICAgICAgICAgICAgICAgICBjYXNlIFVERUZJTkUwOiBjYXNlIFVERUZJTkUxOiBjYXNlIFVERUZJTkUyOiBjYXNlIFVERUZJTkUzOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFVERUZJTkU0OiBjYXNlIFVERUZJTkU1OiBjYXNlIFVERUZJTkU2OiBjYXNlIFVERUZJTkU3OgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJVREVGSU5FIiArIChhQnl0ZSAtIFVERUZJTkUwKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgZGVmaW5lIGV4dGVuZGVkIHRhZworICAgICAgICAgICAgICAgICAgICBjYXNlIFVERUZJTkVYOgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJVREVGSU5FWCAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckJ5dGVJbmRleCA8IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBieXRlQnVmZmVyW2N1ckJ5dGVJbmRleCsrXSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFuZGxlIGFsbCBzd2l0Y2ggdGFncworICAgICAgICAgICAgICAgICAgICBjYXNlIFVTV0lUQ0gwOiBjYXNlIFVTV0lUQ0gxOiBjYXNlIFVTV0lUQ0gyOiBjYXNlIFVTV0lUQ0gzOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFVTV0lUQ0g0OiBjYXNlIFVTV0lUQ0g1OiBjYXNlIFVTV0lUQ0g2OiBjYXNlIFVTV0lUQ0g3OgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJVU1dJVENIIiArIChhQnl0ZSAtIFVTV0lUQ0gwKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBtb2RlID0gU0lOR0xFQllURU1PREU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcXVvdGUgdW5pY29kZQorICAgICAgICAgICAgICAgICAgICBjYXNlIFVRVU9URVU6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlVRVU9URVUgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJCeXRlSW5kZXggPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coSW50ZWdlci50b0hleFN0cmluZygoKGludCkgYnl0ZUJ1ZmZlcltjdXJCeXRlSW5kZXgrK10pICYgMHhGRikgKyAiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhJbnRlZ2VyLnRvSGV4U3RyaW5nKCgoaW50KSBhQnl0ZSkgJiAweEZGKSArICIgIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQnl0ZUluZGV4IDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKEludGVnZXIudG9IZXhTdHJpbmcoKChpbnQpIGJ5dGVCdWZmZXJbY3VyQnl0ZUluZGV4KytdKSAmIDB4RkYpICsgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0gLy8gZW5kIHN3aXRjaAorICAgICAgICAgICAgICAgIH0gLy8gZW5kIHdoaWxlCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9IC8vIGVuZCBzd2l0Y2goIG1vZGUgKQorICAgICAgICB9IC8vIGVuZCB3aGlsZQorICAgICAgICAKKyAgICAgICAgbG9nbG4oIiIpOworICAgIH0gICAgCit9CisKKworCisKKworCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzM0MzViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDI3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5jb21wcmVzc2lvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgb3RoZXIgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJEZWNvbXByZXNzaW9uVGVzdCIsCisgICAgICAgICAgICAiRXhoYXVzdGl2ZVRlc3QiLAorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJDb21wcmVzc2lvbiI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29tcHJlc3Npb24vcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MjZiYzk0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2NvbXByZXNzaW9uL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitUZXN0cyBmb3IgdGhlIGNvbXByZXNzaW9uIGNsYXNzZXMuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9CaWdOdW1iZXJGb3JtYXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0JpZ051bWJlckZvcm1hdFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YjQ3MjU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9CaWdOdW1iZXJGb3JtYXRUZXN0LmphdmEKQEAgLTAsMCArMSw0NTEgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogQHRlc3QKKyAqIEdlbmVyYWwgdGVzdCBvZiBCaWcgTnVtYmVyRm9ybWF0CisgKi8KK3B1YmxpYyBjbGFzcyBCaWdOdW1iZXJGb3JtYXRUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgc3RhdGljIGZpbmFsIGludCBJTExFR0FMID0gLTE7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEJpZ051bWJlckZvcm1hdFRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhwb25lbnQoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10MSA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwLiMjI0UwIiwgVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdDIgPSBuZXcgRGVjaW1hbEZvcm1hdCgiMC4jIyNFKzAiLCBVUyk7CisgICAgICAgIE51bWJlciBuID0gbmV3IExvbmcoMTIzNCk7CisgICAgICAgIGV4cGVjdChmbXQxLCBuLCAiMS4yMzRFMyIpOworICAgICAgICBleHBlY3QoZm10MiwgbiwgIjEuMjM0RSszIik7CisgICAgICAgIGV4cGVjdChmbXQxLCAiMS4yMzRFMyIsIG4pOworICAgICAgICBleHBlY3QoZm10MSwgIjEuMjM0RSszIiwgbik7IC8vIEVpdGhlciBmb3JtYXQgc2hvdWxkIHBhcnNlICJFKzMiCisgICAgICAgIGV4cGVjdChmbXQyLCAiMS4yMzRFKzMiLCBuKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBmdW5jdGlvbmluZyBvZiB0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHZhbHVlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTZWNvbmRhcnlHcm91cGluZygpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMsIyMjIiwgVVMpOworICAgICAgICBleHBlY3QoZiwgbmV3IExvbmcoMTIzNDU2Nzg5KSwgIjEyLDM0LDU2LDc4OSIpOworICAgICAgICBleHBlY3RQYXQoZiwgIiMsIyMsIyMjIik7CisgICAgICAgIGYuYXBwbHlQYXR0ZXJuKCIjLCMjIyIpOworICAgICAgICBmLnNldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSg0KTsKKyAgICAgICAgZXhwZWN0KGYsIG5ldyBMb25nKDEyMzQ1Njc4OSksICIxMiwzNDU2LDc4OSIpOworICAgICAgICBleHBlY3RQYXQoZiwgIiMsIyMjIywjIyMiKTsKKworICAgICAgICAvLyBPbiBTdW4gSkRLIDEuMi0xLjMsIHRoZSBoaV9JTiBsb2NhbGUgdXNlcyAnMCcgZm9yIGEgemVybyBkaWdpdCwKKyAgICAgICAgLy8gYnV0IG9uIElCTSBKREsgMS4yLTEuMywgdGhlIGxvY2FsZSB1c2VzIFUrMDk2Ni4KKyAgICAgICAgZiA9IChEZWNpbWFsRm9ybWF0KSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiaGkiLCAiSU4iKSk7CisgICAgICAgIFN0cmluZyBzdHIgPSB0cmFuc211dGUoIjEsODcsNjUsNDMsMjEwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCkuZ2V0WmVyb0RpZ2l0KCkpOworICAgICAgICBleHBlY3QoZiwgbmV3IExvbmcoMTg3NjU0MzIxMCksIHN0cik7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdFBhZChEZWNpbWFsRm9ybWF0IGZtdCwgU3RyaW5nIHBhdCwgaW50IHBvcykgeworICAgICAgICBleHBlY3RQYWQoZm10LCBwYXQsIHBvcywgMCwgKGNoYXIpMCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdFBhZChEZWNpbWFsRm9ybWF0IGZtdCwgU3RyaW5nIHBhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwb3MsIGludCB3aWR0aCwgY2hhciBwYWQpIHsKKyAgICAgICAgaW50IGFwb3MgPSAwLCBhd2lkdGggPSAwOworICAgICAgICBjaGFyIGFwYWQgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm10LmFwcGx5UGF0dGVybihwYXQpOworICAgICAgICAgICAgYXBvcyA9IGZtdC5nZXRQYWRQb3NpdGlvbigpOworICAgICAgICAgICAgYXdpZHRoID0gZm10LmdldEZvcm1hdFdpZHRoKCk7CisgICAgICAgICAgICBhcGFkID0gZm10LmdldFBhZENoYXJhY3RlcigpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgYXBvcyA9IC0xOworICAgICAgICAgICAgYXdpZHRoID0gd2lkdGg7CisgICAgICAgICAgICBhcGFkID0gcGFkOworICAgICAgICB9CisgICAgICAgIGlmIChhcG9zID09IHBvcyAmJiBhd2lkdGggPT0gd2lkdGggJiYgYXBhZCA9PSBwYWQpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPayAgIFwiIiArIHBhdCArICJcIiBwb3M9IiArIGFwb3MgKworICAgICAgICAgICAgICAgICAgKChwb3MgPT0gLTEpID8gIiIgOiAiIHdpZHRoPSIgKyBhd2lkdGggKyAiIHBhZD0iICsgYXBhZCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIkZBSUwgXCIiICsgcGF0ICsgIlwiIHBvcz0iICsgYXBvcyArCisgICAgICAgICAgICAgICAgICAiIHdpZHRoPSIgKyBhd2lkdGggKyAiIHBhZD0iICsgYXBhZCArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgcG9zICsgIiAiICsgd2lkdGggKyAiICIgKyBwYWQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm5zKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBVUyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjIiwgVVMpOworCisgICAgICAgIGV4cGVjdFBhZChmbXQsICIqXiMiLCBEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfUFJFRklYLCAxLCAnXicpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiJCpeIyIsIERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1BSRUZJWCwgMiwgJ14nKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIiMqXiIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9TVUZGSVgsIDEsICdeJyk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIjJCpeIiwgRGVjaW1hbEZvcm1hdC5QQURfQUZURVJfU1VGRklYLCAyLCAnXicpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiJCpeJCMiLCBJTExFR0FMKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIiMkKl4kIiwgSUxMRUdBTCk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIncHJlJyMsIyMwKngncG9zdCciLCBEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfU1VGRklYLAorICAgICAgICAgICAgICAgICAgMTIsICd4Jyk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICInJyMwKngiLCBEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfU1VGRklYLAorICAgICAgICAgICAgICAgICAgMywgJ3gnKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIidJJydsbCcqYSMjIy4jIyIsIERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1BSRUZJWCwKKyAgICAgICAgICAgICAgICAgIDEwLCAnYScpOworCisgICAgICAgIGZtdC5hcHBseVBhdHRlcm4oIkFBIywjIzAuMDBaWiIpOworICAgICAgICBmbXQuc2V0UGFkQ2hhcmFjdGVyKCdeJyk7CisKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDEwKTsKKworICAgICAgICBmbXQuc2V0UGFkUG9zaXRpb24oRGVjaW1hbEZvcm1hdC5QQURfQkVGT1JFX1BSRUZJWCk7CisgICAgICAgIGV4cGVjdFBhdChmbXQsICIqXkFBIywjIzAuMDBaWiIpOworCisgICAgICAgIGZtdC5zZXRQYWRQb3NpdGlvbihEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfU1VGRklYKTsKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgIkFBIywjIzAuMDAqXlpaIik7CisKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1NVRkZJWCk7CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSMsIyMwLjAwWloqXiIpOworCisgICAgICAgIC8vICAgICAgICAgICAgMTIgIDM0NTY3ODkwMTIKKyAgICAgICAgU3RyaW5nIGV4cCA9ICJBQSpeIywjIzAuMDBaWiI7CisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxMik7CisgICAgICAgIGZtdC5zZXRQYWRQb3NpdGlvbihEZWNpbWFsRm9ybWF0LlBBRF9BRlRFUl9QUkVGSVgpOworICAgICAgICBleHBlY3RQYXQoZm10LCBleHApOworCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxMyk7CisgICAgICAgIC8vICAgICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMjMKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgIkFBKl4jIywjIzAuMDBaWiIpOworCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxNCk7CisgICAgICAgIC8vICAgICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMjM0CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSpeIyMjLCMjMC4wMFpaIik7CisKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDE1KTsKKyAgICAgICAgLy8gICAgICAgICAgICAgIDEyICAzNDU2Nzg5MDEyMzQ1CisgICAgICAgIGV4cGVjdFBhdChmbXQsICJBQSpeIyMjIywjIzAuMDBaWiIpOyAvLyBUaGlzIGlzIHRoZSBpbnRlcmVzdGluZyBjYXNlCisKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDE2KTsKKyAgICAgICAgLy8gICAgICAgICAgICAgIDEyICAzNDU2Nzg5MDEyMzQ1NgorICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEqXiMsIyMjLCMjMC4wMFpaIik7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdFBhdChEZWNpbWFsRm9ybWF0IGZtdCwgU3RyaW5nIGV4cCkgeworICAgICAgICBTdHJpbmcgcGF0ID0gZm10LnRvUGF0dGVybigpOworICAgICAgICBpZiAocGF0LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICBcIiIgKyBwYXQgKyAnIicpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgXCIiICsgcGF0ICsgIlwiLCBleHBlY3RlZCBcIiIgKyBleHAgKyAnIicpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgaGFuZGxpbmcgb2YgdGhlIEFscGhhV29ya3MgQmlnRGVjaW1hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBbHBoYUJpZ0RlY2ltYWwoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIC8qRm9yIElDVSBjb21wYXRpYmlsaXR5IFtSaWNoYXJkL0dDTF0qLworICAgICAgICBleHBlY3QoTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpLAorICAgICAgICAgICAgICAgbmV3IE51bWJlcltdIHsgbmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNjc4OTAxIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIjEuMjM0NTY3ODkwMUU0Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBOdW1iZXJbXSB7IG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjQ5OTkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ0LjUwMDEiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIjEyLjM0NUUzIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBOdW1iZXJbXSB7IG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ1LjUwMDAiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ2LjUwMDAiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIjEyLjM0NkUzIik7CisgICAgfQorCisgICAgLyoqCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNjaWVudGlmaWMoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIC8qRm9yIElDVSBjb21wYXRpYmlsaXR5IFtSaWNoYXJkL0dDTF0qLworICAgICAgICBleHBlY3QoTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpLAorICAgICAgICAgICAgICAgbmV3IE51bWJlcltdIHsgbmV3IERvdWJsZSgxMjM0NS42Nzg5MDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS42Nzg5MDEiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIjEuMjM0NTY3ODkwMUU0Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMjM0NSksCisgICAgICAgICAgICAgICAiMTIuMzRFMyIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4jIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMTIzNDUuMDAwMDEpLAorICAgICAgICAgICAgICAgIjEyLjM1RTMiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IE51bWJlcltdIHsgbmV3IEludGVnZXIoMTIzNDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExvbmcoMTIzNDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIxMjM0NS40OTk5IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoIjEyMzQ0LjUwMDEiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIjEyLjM0NUUzIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBOdW1iZXJbXSB7IG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMTIzNDUuNTAwMCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGphdmEubWF0aC5CaWdEZWNpbWFsKCIxMjM0Ni41MDAwIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICIxMi4zNDZFMyIpOworICAgICAgICAvKkZvciBJQ1UgY29tcGF0aWJpbGl0eSBbUmljaGFyZC9HQ0xdKi8KKyAgICAgICAgZXhwZWN0KE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLkZSQU5DRSksCisgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEyMzQ1LjY3ODkwMSksCisgICAgICAgICAgICAgICAiMSwyMzQ1Njc4OTAxRTQiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgbmV3IERvdWJsZSg3ODkuMTIzNDVlLTkpLAorICAgICAgICAgICAgICAgIjc4OS4xMkUtOSIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4jIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgRG91YmxlKDc4MC5lLTkpLAorICAgICAgICAgICAgICAgIjc4MEUtOSIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIi4jIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBEb3VibGUoNDU2NzgpLAorICAgICAgICAgICAgICAgIi40NTdFNSIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIi4jIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBMb25nKDApLAorICAgICAgICAgICAgICAgIi4wRTAiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0W10geyBuZXcgRGVjaW1hbEZvcm1hdCgiI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIjI0UwIiwgVVMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIjIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIjBFMCIsIFVTKSwgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIjAwRTAiLCBVUyksICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIjAwMEUwIiwgVVMpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgIG5ldyBMb25nKDQ1Njc4MDAwKSwKKyAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ICI0LjU2NzhFNyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNDUuNjc4RTYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQ1NjcuOEU0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI1RTciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjQ2RTYiLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNDU3RTUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICk7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMjRTAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgT2JqZWN0W10geyBuZXcgRG91YmxlKDAuMDAwMDEyMyksICIxMi4zRS02IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMC4wMDAxMjMpLCAiMTIzRS02IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCgiMC4wMDEyMyIpLCAiMS4yM0UtMyIsIC8vIENhZmUgVk0gbWVzc2VzIHVwIERvdWJsZSgwLjAwMTIzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgwLjAxMjMpLCAiMTIuM0UtMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDAuMTIzKSwgIjEyM0UtMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEuMjMpLCAiMS4yM0UwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMTIuMyksICIxMi4zRTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMjMpLCAiMTIzRTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMjMwKSwgIjEuMjNFMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIjAuI0UrMDAiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgT2JqZWN0W10geyBuZXcgRG91YmxlKDAuMDAwMTIpLCAiMS4yRS0wNCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTG9uZygxMjAwMCksICAgICAiMS4yRSswNCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgIH0KKworICAgIC8qKgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQYWQoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiKl4jIy4jIyIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IG5ldyBMb25nKDApLCAgICAgICJeXl5eMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKC0xLjMpLCAiXi0xLjMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICk7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLjAjIyMjRTAqXyAnZy1tL3NeMiciLCBVUyksCisgICAgICAgICAgICAgICBuZXcgT2JqZWN0W10geyBuZXcgTG9uZygwKSwgICAgICAgIjAuMEUwX19fX19fIGctbS9zXjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxLjAvMyksICIzMzMuMzMzRS0zXyBnLW0vc14yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICApOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4wIyMjIypfICdnLW0vc14yJyIsIFVTKSwKKyAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IG5ldyBMb25nKDApLCAgICAgICAiMC4wX19fX19fIGctbS9zXjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxLjAvMyksICIwLjMzMzMzX18gZy1tL3NeMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIqeCMsIyMjLCMjIywjIzAuMDA7KngoIywjIyMsIyMjLCMjMC4wMCkiLCBVUyksCisgICAgICAgICAgICAgICBuZXcgT2JqZWN0W10geworICAgICAgICAgICAgICAgICAgIG5ldyBMb25nKC0xMDApLCAgICAgICAgInh4eHh4eHh4KDEwMC4wMCkiLAorICAgICAgICAgICAgICAgICAgIG5ldyBMb25nKC0xMDAwKSwgICAgICAgInh4eHh4eCgxLDAwMC4wMCkiLAorICAgICAgICAgICAgICAgICAgIG5ldyBMb25nKC0xMDAwMDAwKSwgICAgInh4KDEsMDAwLDAwMC4wMCkiLAorICAgICAgICAgICAgICAgICAgIG5ldyBMb25nKC0xMDAwMDAwMDAwKSwgIigxLDAwMCwwMDAsMDAwLjAwKSIsCisgICAgICAgICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdChOdW1iZXJGb3JtYXQgZm10LCBPYmplY3RbXSBkYXRhKSB7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxkYXRhLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgZXhwZWN0KGZtdCwgKE51bWJlcikgZGF0YVtpXSwgKFN0cmluZykgZGF0YVtpKzFdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0KE9iamVjdCBmbXRvLCBPYmplY3QgbnVtbywgT2JqZWN0IGV4cG8pIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IG51bGwsIGZtdHNbXSA9IG51bGw7CisgICAgICAgIE51bWJlciBudW0gPSBudWxsLCBudW1zW10gPSBudWxsOworICAgICAgICBTdHJpbmcgZXhwID0gbnVsbCwgZXhwc1tdID0gbnVsbDsKKyAgICAgICAgaWYgKGZtdG8gaW5zdGFuY2VvZiBOdW1iZXJGb3JtYXRbXSkgeworICAgICAgICAgICAgZm10cyA9IChOdW1iZXJGb3JtYXRbXSkgZm10bzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZtdCA9IChOdW1iZXJGb3JtYXQpIGZtdG87CisgICAgICAgIH0KKyAgICAgICAgaWYgKG51bW8gaW5zdGFuY2VvZiBOdW1iZXJbXSkgeworICAgICAgICAgICAgbnVtcyA9IChOdW1iZXJbXSkgbnVtbzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG51bSA9IChOdW1iZXIpIG51bW87CisgICAgICAgIH0KKyAgICAgICAgaWYgKGV4cG8gaW5zdGFuY2VvZiBTdHJpbmdbXSkgeworICAgICAgICAgICAgZXhwcyA9IChTdHJpbmdbXSkgZXhwbzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGV4cCA9IChTdHJpbmcpIGV4cG87CisgICAgICAgIH0KKyAgICAgICAgaW50IG4gPSAxOworICAgICAgICBpZiAoZm10cyAhPSBudWxsKSB7CisgICAgICAgICAgICBuID0gTWF0aC5tYXgobiwgZm10cy5sZW5ndGgpOworICAgICAgICB9CisgICAgICAgIGlmIChudW1zICE9IG51bGwpIHsKKyAgICAgICAgICAgIG4gPSBNYXRoLm1heChuLCBudW1zLmxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGV4cHMgIT0gbnVsbCkgeworICAgICAgICAgICAgbiA9IE1hdGgubWF4KG4sIGV4cHMubGVuZ3RoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgKytpKSB7CisgICAgICAgICAgICBleHBlY3QoZm10cyA9PSBudWxsID8gZm10IDogZm10c1tpXSwKKyAgICAgICAgICAgICAgICAgICBudW1zID09IG51bGwgPyBudW0gOiBudW1zW2ldLAorICAgICAgICAgICAgICAgICAgIGV4cHMgPT0gbnVsbCA/IGV4cCA6IGV4cHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHNob3dOdW1iZXIoTnVtYmVyIG4pIHsKKyAgICAgICAgU3RyaW5nIGNscyA9IG4uZ2V0Q2xhc3MoKS5nZXROYW1lKCk7CisgICAgICAgIGlmICghKG4gaW5zdGFuY2VvZiBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwKKyAgICAgICAgICAgICAgfHwgbiBpbnN0YW5jZW9mIGphdmEubWF0aC5CaWdEZWNpbWFsKSkgeworICAgICAgICAgICAgaW50IGkgPSBjbHMubGFzdEluZGV4T2YoJy4nKTsKKyAgICAgICAgICAgIGNscyA9IGNscy5zdWJzdHJpbmcoaSsxKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbi50b1N0cmluZygpICsgIiAoIiArIGNscyArICcpJzsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIE51bWJlciBuLCBTdHJpbmcgZXhwKSB7CisgICAgICAgIFN0cmluZyBzYXcgPSBmbXQuZm9ybWF0KG4pOworICAgICAgICBTdHJpbmcgcGF0ID0gKChEZWNpbWFsRm9ybWF0KSBmbXQpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoc2F3LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICAiICsgc2hvd051bWJlcihuKSArICIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKHNhdykpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgIiArIHNob3dOdW1iZXIobikgKyAiIHggIiArCisgICAgICAgICAgICAgICAgICBwYXQgKyAiID0gXCIiICsKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKHNhdykgKyAiLCBleHBlY3RlZCAiICsgVXRpbGl0eS5lc2NhcGUoZXhwKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIFN0cmluZyBzdHIsIE51bWJlciBleHApIHsKKyAgICAgICAgTnVtYmVyIHNhdyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzYXcgPSBmbXQucGFyc2Uoc3RyKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgc2F3ID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcGF0ID0gKChEZWNpbWFsRm9ybWF0KSBmbXQpLnRvUGF0dGVybigpOworICAgICAgICBpZiAoc2F3LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICBcIiIgKyBzdHIgKyAiXCIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIHNob3dOdW1iZXIoc2F3KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBcIiIgKyBzdHIgKyAiXCIgeCAiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICIgPSAiICsKKyAgICAgICAgICAgICAgICAgIHNob3dOdW1iZXIoc2F3KSArICIsIGV4cGVjdGVkICIgKyBzaG93TnVtYmVyKGV4cCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBzdHJpbmcgY29tcG9zZWQgb2YgWzAtOV0gYW5kIG90aGVyIGNoYXJzLCBjb252ZXJ0IHRoZQorICAgICAqIFswLTldIGNoYXJzIHRvIGJlIG9mZnNldHMgMC4uOSBmcm9tICd6ZXJvJy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgdHJhbnNtdXRlKFN0cmluZyBzdHIsIGNoYXIgemVybykgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8c3RyLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHN0ci5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHsKKyAgICAgICAgICAgICAgICBjID0gKGNoYXIpIChjIC0gJzAnICsgemVybyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2MTEwMCgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgZi5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoMSk7CisgICAgICAgIGYuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDEpOworICAgICAgICBkb3VibGUgYSA9IC0wLjA5OworICAgICAgICBTdHJpbmcgcyA9IGYuZm9ybWF0KGEpOworICAgICAgICBsb2dsbihhICsgIiB4ICIgKworICAgICAgICAgICAgICAoKERlY2ltYWxGb3JtYXQpIGYpLnRvUGF0dGVybigpICsgIiA9ICIgKworICAgICAgICAgICAgICBzKTsKKyAgICAgICAgaWYgKCFzLmVxdWFscygiLTAuMSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCIpOworICAgICAgICB9CisgICAgfSAgICAgICAgCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmlnRGVjaW1hbEoyOCgpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICIxIiwgIjFFMCIsCisgICAgICAgICAgICAiLTEiLCAiLTFFMCIsCisgICAgICAgICAgICAiMCIsICIwRTAiLAorICAgICAgICAgICAgIjEyZTM0IiwgIjEuMkUzNSIsCisgICAgICAgICAgICAiLTEyLjNlLTQ1IiwgIi0xLjIzRS00NCIsCisgICAgICAgICAgICAiMC43M2UtNyIsICI3LjNFLTgiLAorICAgICAgICB9OworICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBsb2dsbigiUGF0dGVybjogIiArICgoRGVjaW1hbEZvcm1hdClmbXQpLnRvUGF0dGVybigpKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBTdHJpbmcgaW5wdXQgPSBEQVRBW2ldOworICAgICAgICAgICAgU3RyaW5nIGV4cCA9IERBVEFbaSsxXTsKKyAgICAgICAgICAgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBiZCA9IG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoaW5wdXQpOworICAgICAgICAgICAgU3RyaW5nIG91dHB1dCA9IGZtdC5mb3JtYXQoYmQpOworICAgICAgICAgICAgaWYgKG91dHB1dC5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJpbnB1dD0iICsgaW5wdXQgKyAiIG51bT0iICsgYmQgKyAiIG91dHB1dD0iICsgb3V0cHV0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGlucHV0PSIgKyBpbnB1dCArICIgbnVtPSIgKyBiZCArICIgb3V0cHV0PSIgKyBvdXRwdXQgKworICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQ9IiArIGV4cCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgcHVibGljIHZvaWQgVGVzdEJpZ0RlY2ltYWxSb3VuZGluZygpIHsKKyAgICAgICAgLy8gamIgMzY1NworICAgICAgICBqYXZhLnRleHQuRGVjaW1hbEZvcm1hdCBqZGtGb3JtYXQ9bmV3IGphdmEudGV4dC5EZWNpbWFsRm9ybWF0KCIjIyMsIyMjLCMjIywjIzAiKTsKKyAgICAgICAgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0IGljdUZvcm1hdD1uZXcgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0KCIjIyMsIyMjLCMjIywjIzAiKTsKKyAgICAgICAgU3RyaW5nW10gdmFsdWVzID0geworICAgICAgICAgICAgIi0xLjc0IiwgIi0xLjI0IiwgIi0wLjc0IiwgIi0wLjI0IiwgIjAuMjQiLCAiMC43NCIsICIxLjI0IiwgIjEuNzQiCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgdmFsID0gdmFsdWVzW2ldOworICAgICAgICAgICAgamF2YS5tYXRoLkJpZ0RlY2ltYWwgYmQgPSBuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwodmFsKTsKKyAgICAgICAgICAgIFN0cmluZyBqZGsgPSBqZGtGb3JtYXQuZm9ybWF0KGJkKTsKKyAgICAgICAgICAgIFN0cmluZyBpY3UgPSBpY3VGb3JtYXQuZm9ybWF0KGJkKTsKKyAgICAgICAgICAgIGxvZ2xuKCJGb3JtYXQgb2YgQmlnRGVjaW1hbCAiICsgdmFsICsgIiBieSBKREsgaXMgIiArIGpkayk7CisgICAgICAgICAgICBsb2dsbigiRm9ybWF0IG9mIEJpZ0RlY2ltYWwgIiArIHZhbCArICIgYnkgSUNVIGlzICIgKyBpY3UpOworICAgICAgICAgICAgaWYgKCFqZGsuZXF1YWxzKGljdSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQmlnRGVjaW1hbCBqZGs6ICIgKyBqZGsgKyAiICE9IGljdTogIiArIGljdSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRvdWJsZSBkID0gYmQuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgIGpkayA9IGpka0Zvcm1hdC5mb3JtYXQoZCk7CisgICAgICAgICAgICBpY3UgPSBpY3VGb3JtYXQuZm9ybWF0KGQpOworICAgICAgICAgICAgbG9nbG4oIkZvcm1hdCBvZiBkb3VibGUgIiArIHZhbCArICIgYnkgSkRLIGlzICIgKyBqZGspOworICAgICAgICAgICAgbG9nbG4oIkZvcm1hdCBvZiBkb3VibGUgIiArIHZhbCArICIgYnkgSUNVIGlzICIgKyBpY3UpOworICAgICAgICAgICAgaWYgKCFqZGsuZXF1YWxzKGljdSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZG91YmxlIGpkazogIiArIGpkayArICIgIT0gaWN1OiAiICsgaWN1KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKy8vI2VuZGlmCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRNaXNjVGVzdHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdE1pc2NUZXN0cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkzNmZiOTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRNaXNjVGVzdHMuamF2YQpAQCAtMCwwICsxLDE1NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYxLjguMSA6IGZvcm1hdCA6IERhdGVGb3JtYXRNaXNjVGVzdHMKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L21pc2NkdGZtLmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworCitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworLyoqIAorICogUGVyZm9ybXMgbWlzY2VsbGFuZW91cyB0ZXN0cyBmb3IgRGF0ZUZvcm1hdCwgU2ltcGxlRGF0ZUZvcm1hdCwgRGF0ZUZvcm1hdFN5bWJvbHMKKyAqKi8KK3B1YmxpYyBjbGFzcyBEYXRlRm9ybWF0TWlzY1Rlc3RzIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbmV3IERhdGVGb3JtYXRNaXNjVGVzdHMoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogQGJ1ZyA0MDk3NDUwCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTc0NTAoKSB7CisgICAgICAgIC8vCisgICAgICAgIC8vIERhdGUgcGFyc2UgcmVxdWlyaW5nIDQgZGlnaXQgeWVhci4KKyAgICAgICAgLy8KKyAgICAgICAgU3RyaW5nIGRzdHJpbmdbXSA9IHsKKyAgICAgICAgICAgICI5NyIsICIxOTk3IiwgIjk3IiwgIjE5OTciLCAiMDEiLCAiMjAwMSIsICIwMSIsICIyMDAxIiwKKyAgICAgICAgICAgICAiMSIsICIxIiwgIjExIiwgIjExIiwgIjExMSIsICIxMTEifTsgCisgICAgCisgICAgICAgIFN0cmluZyBkZm9ybWF0W10gPSAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAieXkiLCAieXkiLCAieXl5eSIsICJ5eXl5IiwgInl5IiwgInl5IiwgInl5eXkiLCAieXl5eSIsIAorICAgICAgICAgICAgICAgICJ5eSIsICJ5eXl5IiwgInl5IiwgInl5eXkiLCAieXkiLCAieXl5eSJ9OyAgICAgICAgIAorICAgIAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdHRlcjsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCByZXN1bHRGb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eSIpOworICAgICAgICBsb2dsbigiRm9ybWF0XHRTb3VyY2VcdFJlc3VsdCIpOworICAgICAgICBsb2dsbigiLS0tLS0tLVx0LS0tLS0tLVx0LS0tLS0tLSIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRzdHJpbmcubGVuZ3RoIDsgaSsrKSB7CisgICAgICAgICAgICBsb2coZGZvcm1hdFtpXSArICJcdCIgKyBkc3RyaW5nW2ldICsgIlx0Iik7CisgICAgICAgICAgICBmb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChkZm9ybWF0W2ldKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0ciA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgICAgICAgICAgbG9nbG4ocmVzdWx0Rm9ybWF0dGVyLmZvcm1hdChmb3JtYXR0ZXIucGFyc2UoZHN0cmluZ1tpXSksIHN0ciwgcG9zKS50b1N0cmluZygpKTsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImV4Y2VwdGlvbiAtLT4gIiArIGV4Y2VwdGlvbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyogQEJ1ZyA0MDk5OTc1CisgICAgICogU2ltcGxlRGF0ZUZvcm1hdCBjb25zdHJ1Y3RvciBTaW1wbGVEYXRlRm9ybWF0KFN0cmluZywgRGF0ZUZvcm1hdFN5bWJvbHMpCisgICAgICogc2hvdWxkIGNsb25lIHRoZSBEYXRlRm9ybWF0U3ltYm9scyBwYXJhbWV0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5OTk3NW5ldygpIHsKKyAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoKTsKKyAgICAgICAgLy90ZXN0IFNpbXBsZURhdGVGb3JtYXQgQ29uc3RydWN0b3IKKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFIGhoOm1tIiwgc3ltYm9scyk7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRmQ2xvbmUgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgZGYuY2xvbmUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9nbG4oZGYudG9Mb2NhbGl6ZWRQYXR0ZXJuKCkpOworICAgICAgICAgICAgU3RyaW5nIHMwID0gZGYuZm9ybWF0KGQpOworICAgICAgICAgICAgU3RyaW5nIHNfZGZDbG9uZSA9IGRmQ2xvbmUuZm9ybWF0KGQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzeW1ib2xzLnNldExvY2FsUGF0dGVybkNoYXJzKCJhYmNkZWZnaGlqa2xtb25wcXIiKTsgLy8gY2hhbmdlIHZhbHVlIG9mIGZpZWxkCisgICAgICAgICAgICBsb2dsbihkZi50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisgICAgICAgICAgICBTdHJpbmcgczEgPSBkZi5mb3JtYXQoZCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghczEuZXF1YWxzKHMwKSB8fCAhczEuZXF1YWxzKHNfZGZDbG9uZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ29uc3RydWN0b3I6IHRoZSBmb3JtYXRzIGFyZSBub3QgZXF1YWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZGYuZXF1YWxzKGRmQ2xvbmUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRoZSBDbG9uZSBPYmplY3QgZG9lcyBub3QgZXF1YWwgd2l0aCB0aGUgb3JpZ25hbCBzb3VyY2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvL3Rlc3QgU2ltcGxlRGF0ZUZvcm1hdC5zZXREYXRlRm9ybWF0U3ltYm9scygpCisgICAgICAgIHsKKyAgICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRSBoaDptbSIpOworICAgICAgICAgICAgZGYuc2V0RGF0ZUZvcm1hdFN5bWJvbHMoc3ltYm9scyk7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRmQ2xvbmUgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgZGYuY2xvbmUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9nbG4oZGYudG9Mb2NhbGl6ZWRQYXR0ZXJuKCkpOworICAgICAgICAgICAgU3RyaW5nIHMwID0gZGYuZm9ybWF0KGQpOworICAgICAgICAgICAgU3RyaW5nIHNfZGZDbG9uZSA9IGRmQ2xvbmUuZm9ybWF0KGQpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzeW1ib2xzLnNldExvY2FsUGF0dGVybkNoYXJzKCJhYmNkZWZnaGlqa2xtb25wcXIiKTsgLy8gY2hhbmdlIHZhbHVlIG9mIGZpZWxkCisgICAgICAgICAgICBsb2dsbihkZi50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisgICAgICAgICAgICBTdHJpbmcgczEgPSBkZi5mb3JtYXQoZCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghczEuZXF1YWxzKHMwKSB8fCAhczEuZXF1YWxzKHNfZGZDbG9uZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigic2V0RGF0ZUZvcm1hdFN5bWJvbHM6IHRoZSBmb3JtYXRzIGFyZSBub3QgZXF1YWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZGYuZXF1YWxzKGRmQ2xvbmUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRoZSBDbG9uZSBPYmplY3QgZG9lcyBub3QgZXF1YWwgd2l0aCB0aGUgb3JpZ25hbCBzb3VyY2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIEBidWcgNDExNzMzNQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTE3MzM1KCkgeworICAgICAgICBmaW5hbCBTdHJpbmcgYmMgPSAiXHU3RDAwXHU1MTQzXHU1MjREIjsKKyAgICAgICAgZmluYWwgU3RyaW5nIGFkID0gIlx1ODk3Zlx1NjZhNiI7CisgICAgICAgIGZpbmFsIFN0cmluZyBqc3RMb25nID0gIlx1NjVlNVx1NjcyY1x1NmExOVx1NmU5Nlx1NjY0MiI7CisgICAgICAgIGZpbmFsIFN0cmluZyBqc3RTaG9ydCA9ICJKU1QiOworICAgICAgICBmaW5hbCBTdHJpbmcgdHpJRCA9ICJBc2lhL1Rva3lvIjsKKworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5KQVBBTik7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGVyYXMgPSBzeW1ib2xzLmdldEVyYXMoKTsKKworICAgICAgICBhc3NlcnRFcXVhbHMoIkJDID0iLCBiYywgZXJhc1swXSk7CisgICAgICAgIGFzc2VydEVxdWFscygiQUQgPSIsIGFkLCBlcmFzWzFdKTsKKworICAgICAgICAvLyBkb24ndCB1c2UgaGFyZC1jb2RlZCBpbmRleCEKKyAgICAgICAgZmluYWwgU3RyaW5nIHpvbmVzW11bXSA9IHN5bWJvbHMuZ2V0Wm9uZVN0cmluZ3MoKTsKKyAgICAgICAgaW50IGluZGV4ID0gLTE7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgem9uZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0eklELmVxdWFscyh6b25lc1tpXVswXSkpIHsKKyAgICAgICAgICAgICAgICBpbmRleCA9IGk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaW5kZXggPT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgZmluZCAiICsgdHpJRCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkxvbmcgem9uZSBuYW1lID0gIiwganN0TG9uZywgem9uZXNbaW5kZXhdWzFdKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiU2hvcnQgem9uZSBuYW1lID0gIiwganN0U2hvcnQsIHpvbmVzW2luZGV4XVsyXSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkxvbmcgem9uZSBuYW1lICgzKSA9ICIsIGpzdExvbmcsIHpvbmVzW2luZGV4XVszXSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlNob3J0IHpvbmUgbmFtZSAoNCkgPSAiLCBqc3RTaG9ydCwgem9uZXNbaW5kZXhdWzRdKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcwMzJiZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdC5qYXZhCkBAIC0wLDAgKzEsOTY0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9kdGZtcmd0cy5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKiAKKyAqIFBlcmZvcm1zIHJlZ3Jlc3Npb24gdGVzdCBmb3IgRGF0ZUZvcm1hdAorICoqLworcHVibGljIGNsYXNzIERhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdCBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBEYXRlRm9ybWF0UmVncmVzc2lvblRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDAyOTE5NQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDI5MTk1KCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlIHRvZGF5ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgbG9nbG4oInRvZGF5OiAiICsgdG9kYXkpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IChTaW1wbGVEYXRlRm9ybWF0KSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpOworICAgICAgICBTdHJpbmcgcGF0ID0gc2RmLnRvUGF0dGVybigpOworICAgICAgICBsb2dsbigicGF0dGVybjogIiArIHBhdCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBmbXRkID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIGZtdGQgPSBzZGYuZm9ybWF0KHRvZGF5LCBmbXRkLCBwb3MpOworICAgICAgICBsb2dsbigidG9kYXk6ICIgKyBmbXRkKTsKKyAgICAKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybigiRyB5eXl5IERERCIpOworICAgICAgICBTdHJpbmdCdWZmZXIgdG9kYXlTID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIHRvZGF5UyA9IHNkZi5mb3JtYXQodG9kYXksIHRvZGF5UywgcG9zKTsKKyAgICAgICAgbG9nbG4oInRvZGF5OiAiICsgdG9kYXlTKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRvZGF5ID0gc2RmLnBhcnNlKHRvZGF5Uy50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGxvZ2xuKCJ0b2RheSBkYXRlOiAiICsgdG9kYXkpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHJlcGFyc2luZyBkYXRlOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcnQgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgICAgIHJ0ID0gc2RmLmZvcm1hdChzZGYucGFyc2UodG9kYXlTLnRvU3RyaW5nKCkpLCBydCwgcG9zKTsKKyAgICAgICAgICAgIGxvZ2xuKCJyb3VuZCB0cmlwOiAiICsgcnQpOworICAgICAgICAgICAgaWYgKCFydC50b1N0cmluZygpLmVxdWFscyh0b2RheVMudG9TdHJpbmcoKSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFdhbnQgIiArIHRvZGF5UyArICIgR290ICIgKyBydCk7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDA1MjQwOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDUyNDA4KCkgeworICAgIAorICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBEYXRlRm9ybWF0LlNIT1JULCBMb2NhbGUuVVMpOyAKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoOTcgKyAxOTAwLCBDYWxlbmRhci5NQVksIDMsIDgsIDU1KTsKKyAgICAgICAgRGF0ZSBkdCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIFN0cmluZyBzdHIgPSBmbXQuZm9ybWF0KGR0KTsKKyAgICAgICAgbG9nbG4oc3RyKTsKKyAgICAgICAgCisgICAgICAgIGlmICghc3RyLmVxdWFscygiNS8zLzk3IDg6NTUgQU0iKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBUZXN0IGJyb2tlbjsgV2FudCA1LzMvOTcgODo1NSBBTSBHb3QgIiArIHN0cik7CisgICAgCisgICAgICAgIFN0cmluZyBleHBlY3RlZFtdID0geworICAgICAgICAgICAgIiIsIC8vIkVSQV9GSUVMRCIsCisgICAgICAgICAgICAiOTciLCAvLyJZRUFSX0ZJRUxEIiwKKyAgICAgICAgICAgICI1IiwgLy8iTU9OVEhfRklFTEQiLAorICAgICAgICAgICAgIjMiLCAvLyJEQVRFX0ZJRUxEIiwKKyAgICAgICAgICAgICIiLCAvLyJIT1VSX09GX0RBWTFfRklFTEQiLAorICAgICAgICAgICAgIiIsIC8vIkhPVVJfT0ZfREFZMF9GSUVMRCIsCisgICAgICAgICAgICAiNTUiLCAvLyJNSU5VVEVfRklFTEQiLAorICAgICAgICAgICAgIiIsIC8vIlNFQ09ORF9GSUVMRCIsCisgICAgICAgICAgICAiIiwgLy8iTUlMTElTRUNPTkRfRklFTEQiLAorICAgICAgICAgICAgIiIsIC8vIkRBWV9PRl9XRUVLX0ZJRUxEIiwKKyAgICAgICAgICAgICIiLCAvLyJEQVlfT0ZfWUVBUl9GSUVMRCIsCisgICAgICAgICAgICAiIiwgLy8iREFZX09GX1dFRUtfSU5fTU9OVEhfRklFTEQiLAorICAgICAgICAgICAgIiIsIC8vIldFRUtfT0ZfWUVBUl9GSUVMRCIsCisgICAgICAgICAgICAiIiwgLy8iV0VFS19PRl9NT05USF9GSUVMRCIsCisgICAgICAgICAgICAiQU0iLCAvLyJBTV9QTV9GSUVMRCIsCisgICAgICAgICAgICAiOCIsIC8vIkhPVVIxX0ZJRUxEIiwKKyAgICAgICAgICAgICIiLCAvLyJIT1VSMF9GSUVMRCIsCisgICAgICAgICAgICAiIiAvLyJUSU1FWk9ORV9GSUVMRCIKKyAgICAgICAgICAgIH07ICAgICAgICAKKyAgICAgICAgU3RyaW5nIGZpZWxkTmFtZXNbXSA9IHsKKyAgICAgICAgICAgICAgICAiRVJBX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIllFQVJfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiTU9OVEhfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiREFURV9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJIT1VSX09GX0RBWTFfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiSE9VUl9PRl9EQVkwX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIk1JTlVURV9GSUVMRCIsIAorICAgICAgICAgICAgICAgICJTRUNPTkRfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiTUlMTElTRUNPTkRfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiREFZX09GX1dFRUtfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiREFZX09GX1lFQVJfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiREFZX09GX1dFRUtfSU5fTU9OVEhfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiV0VFS19PRl9ZRUFSX0ZJRUxEIiwgCisgICAgICAgICAgICAgICAgIldFRUtfT0ZfTU9OVEhfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiQU1fUE1fRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiSE9VUjFfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiSE9VUjBfRklFTEQiLCAKKyAgICAgICAgICAgICAgICAiVElNRVpPTkVfRklFTEQifTsgCisgICAgCisgICAgICAgIGJvb2xlYW4gcGFzcyA9IHRydWU7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDE3OyArK2kpIHsKKyAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oaSk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgICAgICBmbXQuZm9ybWF0KGR0LCBidWYsIHBvcyk7CisgICAgICAgICAgICAvL2NoYXJbXSBkc3QgPSBuZXcgY2hhcltwb3MuZ2V0RW5kSW5kZXgoKSAtIHBvcy5nZXRCZWdpbkluZGV4KCldOworICAgICAgICAgICAgU3RyaW5nIGRzdCA9IGJ1Zi5zdWJzdHJpbmcocG9zLmdldEJlZ2luSW5kZXgoKSwgcG9zLmdldEVuZEluZGV4KCkpOworICAgICAgICAgICAgc3RyID0gZHN0OworICAgICAgICAgICAgbG9nKGkgKyAiOiAiICsgZmllbGROYW1lc1tpXSArICIsIFwiIiArIHN0ciArICJcIiwgIgorICAgICAgICAgICAgICAgICAgICArIHBvcy5nZXRCZWdpbkluZGV4KCkgKyAiLCAiICsgcG9zLmdldEVuZEluZGV4KCkpOyAKKyAgICAgICAgICAgIFN0cmluZyBleHAgPSBleHBlY3RlZFtpXTsKKyAgICAgICAgICAgIGlmICgoZXhwLmxlbmd0aCgpID09IDAgJiYgc3RyLmxlbmd0aCgpID09IDApIHx8IHN0ci5lcXVhbHMoZXhwKSkKKyAgICAgICAgICAgICAgICBsb2dsbigiIG9rIik7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiIGV4cGVjdGVkICIgKyBleHApOworICAgICAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIXBhc3MpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogRmllbGRQb3NpdGlvbiBub3Qgc2V0IHJpZ2h0IGJ5IERhdGVGb3JtYXQiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDU2NTkxCisgICAgICogVmVyaWZ5IHRoZSBmdW5jdGlvbiBvZiB0aGUgW3N8Z11ldDJEaWdpdFllYXJTdGFydCgpIEFQSS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1NjU5MSgpIHsKKyAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5TU1kZCIsIExvY2FsZS5VUyk7CisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KDE4MDksIENhbGVuZGFyLkRFQ0VNQkVSLCAyNSk7CisgICAgICAgICAgICBEYXRlIHN0YXJ0ID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGZtdC5zZXQyRGlnaXRZZWFyU3RhcnQoc3RhcnQpOworICAgICAgICAgICAgaWYgKChmbXQuZ2V0MkRpZ2l0WWVhclN0YXJ0KCkgIT0gc3RhcnQpKQorICAgICAgICAgICAgICAgIGVycmxuKCJnZXQyRGlnaXRZZWFyU3RhcnQgYnJva2VuIik7CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoMTgwOSwgQ2FsZW5kYXIuREVDRU1CRVIsIDI1KTsKKyAgICAgICAgICAgIERhdGUgZDEgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KDE5MDksIENhbGVuZGFyLkRFQ0VNQkVSLCAyNCk7CisgICAgICAgICAgICBEYXRlIGQyID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldCgxODA5LCBDYWxlbmRhci5ERUNFTUJFUiwgMjYpOworICAgICAgICAgICAgRGF0ZSBkMyA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgICAgIGNhbC5zZXQoMTg2MSwgQ2FsZW5kYXIuREVDRU1CRVIsIDI1KTsKKyAgICAgICAgICAgIERhdGUgZDQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBEYXRlIGRhdGVzW10gPSB7ZDEsIGQyLCBkMywgZDR9OworICAgIAorICAgICAgICAgICAgU3RyaW5nIHN0cmluZ3NbXSA9IHsiMDkxMjI1IiwgIjA5MTIyNCIsICIwOTEyMjYiLCAiNjExMjI1In07ICAgICAgICAgICAgCisgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkrKykgeworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gc3RyaW5nc1tpXTsKKyAgICAgICAgICAgICAgICBEYXRlIGV4cCA9IGRhdGVzW2ldOworICAgICAgICAgICAgICAgIERhdGUgZ290ID0gZm10LnBhcnNlKHMpOworICAgICAgICAgICAgICAgIGxvZ2xuKHMgKyAiIC4gIiArIGdvdCArICI7IGV4cCAiICsgZXhwKTsKKyAgICAgICAgICAgICAgICBpZiAoZ290LmdldFRpbWUoKSAhPSBleHAuZ2V0VGltZSgpKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigic2V0MkRpZ2l0WWVhclN0YXJ0IGJyb2tlbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNTk5MTcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1OTkxNygpIHsgICAgICAgIAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdDsKKyAgICAgICAgU3RyaW5nIG15RGF0ZTsKKyAgICAgICAgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXkvTU0vZGQiKTsKKyAgICAgICAgbXlEYXRlID0gIjE5OTcvMDEvMDEiOworICAgICAgICBhdXg5MTcoIGZtdCwgbXlEYXRlICk7ICAgICAgICAKKyAgICAgICAgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXlNTWRkIik7CisgICAgICAgIG15RGF0ZSA9ICIxOTk3MDEwMSI7CisgICAgICAgIGF1eDkxNyggZm10LCBteURhdGUgKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYXV4OTE3KFNpbXBsZURhdGVGb3JtYXQgZm10LCBTdHJpbmcgc3RyKSB7CisgICAgCisgICAgICAgIFN0cmluZyBwYXQgPSBmbXQudG9QYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgbG9nbG4oInRlc3RJdDogcGF0dGVybj0iICsgcGF0ICsgIiBzdHJpbmc9IiArIHN0cik7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIE9iamVjdCBvID0gZm10LnBhcnNlT2JqZWN0KHN0ciwgcG9zKTsKKyAgICAgICAgLy9sb2dsbiggVW5pY29kZVN0cmluZygiUGFyc2VkIG9iamVjdDogIikgKyBvICk7CisgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciBmb3JtYXR0ZWQgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3NzID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIGZvcm1hdHRlZCA9IGZtdC5mb3JtYXQobywgZm9ybWF0dGVkLCBwb3NzKTsKKyAgICAKKyAgICAgICAgbG9nbG4oIkZvcm1hdHRlZCBzdHJpbmc6ICIgKyBmb3JtYXR0ZWQpOworICAgICAgICBpZiAoIWZvcm1hdHRlZC50b1N0cmluZygpLmVxdWFscyhzdHIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IFdhbnQgIiArIHN0ciArICIgR290ICIgKyBmb3JtYXR0ZWQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNjAyMTIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2MDIxMigpIHsKKyAgICAgICAgU3RyaW5nIGRhdGVTdHJpbmcgPSAiMTk5NS0wNDAuMDU6MDE6MjkiOworICAgICAgICBsb2dsbigiZGF0ZVN0cmluZz0gIiArIGRhdGVTdHJpbmcpOworICAgICAgICBsb2dsbigiVXNpbmcgeXl5eS1EREQuaGg6bW06c3MiKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS1EREQuaGg6bW06c3MiKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgRGF0ZSBteURhdGUgPSBmb3JtYXR0ZXIucGFyc2UoZGF0ZVN0cmluZywgcG9zKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkxPTkcpOyAKKyAgICAgICAgU3RyaW5nIG15U3RyaW5nID0gZm10LmZvcm1hdChteURhdGUpOworICAgICAgICBsb2dsbihteVN0cmluZyk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBjYWwuc2V0VGltZShteURhdGUpOworICAgICAgICBpZiAoKGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpICE9IDQwKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBHb3QgIiArIGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX1lFQVIpICsgIiBXYW50IDQwIik7CisgICAgCisgICAgICAgIGxvZ2xuKCJVc2luZyB5eXl5LWRkZC5oaDptbTpzcyIpOworICAgICAgICBmb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS1kZGQuaGg6bW06c3MiKTsKKyAgICAgICAgcG9zLnNldEluZGV4KDApOworICAgICAgICBteURhdGUgPSBmb3JtYXR0ZXIucGFyc2UoZGF0ZVN0cmluZywgcG9zKTsKKyAgICAgICAgbXlTdHJpbmcgPSBmbXQuZm9ybWF0KG15RGF0ZSk7CisgICAgICAgIGxvZ2xuKG15U3RyaW5nKTsKKyAgICAgICAgY2FsLnNldFRpbWUobXlEYXRlKTsKKyAgICAgICAgaWYgKChjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSAhPSA0MCkpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogR290ICIgKyBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSArICIgV2FudCA0MCIpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNjEyODcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2MTI4NygpIHsKKyAgICAKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJkZC9NTS95eXl5Iik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb2dsbihkZi5wYXJzZSgiMzUvMDEvMTk3MSIpLnRvU3RyaW5nKCkpOworICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgICAgICBkZi5zZXRMZW5pZW50KGZhbHNlKTsKKyAgICAgICAgYm9vbGVhbiBvayA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nbG4oZGYucGFyc2UoIjM1LzAxLzE5NzEiKS50b1N0cmluZygpKTsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgb2sgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghb2spCisgICAgICAgICAgICBlcnJsbigiRmFpbDogTGVuaWVudCBub3Qgd29ya2luZyIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNjUyNDAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2NTI0MCgpIHsKKyAgICAgICAgRGF0ZSBjdXJEYXRlOworICAgICAgICBEYXRlRm9ybWF0IHNob3J0ZGF0ZSwgZnVsbGRhdGU7CisgICAgICAgIFN0cmluZyBzdHJTaG9ydERhdGUsIHN0ckZ1bGxEYXRlOworICAgICAgICBMb2NhbGUgc2F2ZUxvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFRpbWVab25lIHNhdmVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgTG9jYWxlIGN1ckxvY2FsZSA9IG5ldyBMb2NhbGUoImRlIiwgIkRFIik7CisgICAgICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChjdXJMb2NhbGUpOworICAgICAgICAgICAgLy8ge3NmYn0gYWRvcHREZWZhdWx0IGluc3RlYWQgb2Ygc2V0RGVmYXVsdAorICAgICAgICAgICAgLy9UaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lLmNyZWF0ZVRpbWVab25lKCJFU1QiKSk7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lLmdldFRpbWVab25lKCJFU1QiKSk7CisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KDk4ICsgMTkwMCwgMCwgMSk7CisgICAgICAgICAgICBjdXJEYXRlID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgICAgIHNob3J0ZGF0ZSA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQpOworICAgICAgICAgICAgZnVsbGRhdGUgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkxPTkcpOworICAgICAgICAgICAgc3RyU2hvcnREYXRlID0gIlRoZSBjdXJyZW50IGRhdGUgKHNob3J0IGZvcm0pIGlzICI7CisgICAgICAgICAgICBTdHJpbmcgdGVtcDsKKyAgICAgICAgICAgIHRlbXAgPSBzaG9ydGRhdGUuZm9ybWF0KGN1ckRhdGUpOworICAgICAgICAgICAgc3RyU2hvcnREYXRlICs9IHRlbXA7CisgICAgICAgICAgICBzdHJGdWxsRGF0ZSA9ICJUaGUgY3VycmVudCBkYXRlIChsb25nIGZvcm0pIGlzICI7CisgICAgICAgICAgICBTdHJpbmcgdGVtcDIgPSBmdWxsZGF0ZS5mb3JtYXQoY3VyRGF0ZSk7CisgICAgICAgICAgICBzdHJGdWxsRGF0ZSArPSB0ZW1wMjsKKyAgICAKKyAgICAgICAgICAgIGxvZ2xuKHN0clNob3J0RGF0ZSk7CisgICAgICAgICAgICBsb2dsbihzdHJGdWxsRGF0ZSk7CisgICAgCisgICAgICAgICAgICAvLyB7c2ZifSBXaGF0IHRvIGRvIHdpdGggcmVzb3VyY2UgYnVuZGxlIHN0dWZmPz8/Pz8KKyAgICAKKyAgICAgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgcmVzb3VyY2UgaXMgcHJlc2VudDsgaWYgbm90LCB3ZSBjYW4ndCB0ZXN0CisgICAgICAgICAgICAvL1Jlc291cmNlQnVuZGxlIGJ1bmRsZSA9IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAgICAgICAgIC8vICAgIElDVUxvY2FsZURhdGEuZ2V0QnVuZGxlKCJEYXRlRm9ybWF0Wm9uZURhdGEiLCBjdXJMb2NhbGUpOyAKKyAgICAKKyAgICAgICAgICAgIC8vIHtzZmJ9IEFQSSBjaGFuZ2UgdG8gUmVzb3VyY2VCdW5kbGUgLS0gYWRkIGdldExvY2FsZSgpCisgICAgICAgICAgICAvKmlmIChidW5kbGUuZ2V0TG9jYWxlKCkuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHMoImRlIikpIHsKKyAgICAgICAgICAgICAgICAvLyBVUERBVEUgVEhJUyBBUyBaT05FIE5BTUUgUkVTT1VSQ0UgRk9SIDxFU1Q+IGluIGRlX0RFIGlzIHVwZGF0ZWQKKyAgICAgICAgICAgICAgICBpZiAoIXN0ckZ1bGxEYXRlLmVuZHNXaXRoKCJHTVQtMDU6MDAiKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFdhbnQgR01ULTA1OjAwIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIqKiogVEVTVCBDT1VMRCBOT1QgQkUgQ09NUExFVEVEIEJFQ0FVU0UgRGF0ZUZvcm1hdFpvbmVEYXRhICoqKiIpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIqKiogRk9SIExPQ0FMRSBkZSBPUiBkZV9ERSBJUyBNSVNTSU5HICoqKiIpOworICAgICAgICAgICAgfSovCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChzYXZlTG9jYWxlKTsKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQoc2F2ZVpvbmUpOworICAgICAgICB9CisgICAgCisgICAgfQorICAgIAorICAgIC8qCisgICAgICBEYXRlRm9ybWF0LmVxdWFscyBpcyB0b28gbmFycm93bHkgZGVmaW5lZC4gIEFzIGEgcmVzdWx0LCBNZXNzYWdlRm9ybWF0CisgICAgICBkb2VzIG5vdCB3b3JrIGNvcnJlY3RseS4gIERhdGVGb3JtYXQuZXF1YWxzIG5lZWRzIHRvIGJlIHdyaXR0ZW4gc28KKyAgICAgIHRoYXQgdGhlIENhbGVuZGFyIHN1Yi1vYmplY3QgaXMgbm90IGNvbXBhcmVkIHVzaW5nIENhbGVuZGFyLmVxdWFscywKKyAgICAgIGJ1dCByYXRoZXIgY29tcGFyZWQgZm9yIGVxdWl2YWxlbmN5LiAgVGhpcyBtYXkgbmVjZXNzaXRhdGUgYWRkaW5nIGEKKyAgICAgIChwYWNrYWdlIHByaXZhdGUpIG1ldGhvZCB0byBDYWxlbmRhciB0byB0ZXN0IGZvciBlcXVpdmFsZW5jeS4KKyAgICAgIAorICAgICAgQ3VycmVudGx5IHRoaXMgYnVnIGJyZWFrcyBNZXNzYWdlRm9ybWF0LnRvUGF0dGVybgorICAgICAgKi8KKyAgICAvKioKKyAgICAgKiBAYnVnIDQwNzE0NDEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MTQ0MSgpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXRBID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlRm9ybWF0IGZtdEIgPSBEYXRlRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgCisgICAgICAgIC8vIHtzZmJ9IElzIGl0IE9LIHRvIGNhc3QgYXdheSBjb25zdCBoZXJlPworICAgICAgICBDYWxlbmRhciBjYWxBID0gZm10QS5nZXRDYWxlbmRhcigpOworICAgICAgICBDYWxlbmRhciBjYWxCID0gZm10Qi5nZXRDYWxlbmRhcigpOworICAgICAgICBjYWxBLmNsZWFyKCk7CisgICAgICAgIGNhbEEuc2V0KDE5MDAsIDAgLDApOworICAgICAgICBjYWxCLmNsZWFyKCk7CisgICAgICAgIGNhbEIuc2V0KDE5MDAsIDAsIDApOworICAgICAgICBpZiAoIWNhbEEuZXF1YWxzKGNhbEIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IENhbid0IGNvbXBsZXRlIHRlc3Q7IENhbGVuZGFyIGluc3RhbmNlcyB1bmVxdWFsIik7CisgICAgICAgIGlmICghZm10QS5lcXVhbHMoZm10QikpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogRGF0ZUZvcm1hdCB1bmVxdWFsIHdoZW4gQ2FsZW5kYXJzIGVxdWFsIik7CisgICAgICAgIGNhbEIuY2xlYXIoKTsKKyAgICAgICAgY2FsQi5zZXQoMTk2MSwgQ2FsZW5kYXIuREVDRU1CRVIsIDI1KTsKKyAgICAgICAgaWYgKGNhbEEuZXF1YWxzKGNhbEIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IENhbid0IGNvbXBsZXRlIHRlc3Q7IENhbGVuZGFyIGluc3RhbmNlcyBlcXVhbCIpOworICAgICAgICBpZiAoIWZtdEEuZXF1YWxzKGZtdEIpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IERhdGVGb3JtYXQgdW5lcXVhbCB3aGVuIENhbGVuZGFycyBlcXVpdmFsZW50Iik7CisgICAgICAgIGxvZ2xuKCJEYXRlRm9ybWF0LmVxdWFscyBvayIpOworICAgIH0KKyAgICAgICAgCisgICAgLyogVGhlIGphdmEudGV4dC5EYXRlRm9ybWF0LnBhcnNlKFN0cmluZykgbWV0aG9kIGV4cGVjdHMgZm9yIHRoZQorICAgICAgVVMgbG9jYWxlIGEgc3RyaW5nIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gbW0vZGQveXkgYW5kIHBhcnNlcyBpdAorICAgICAgY29ycmVjdGx5LgorICAgIAorICAgICAgV2hlbiBnaXZlbiBhIHN0cmluZyBtbS9kZC95eXl5IGl0IG9ubHkgcGFyc2VzIHVwIHRvIHRoZSBmaXJzdAorICAgICAgdHdvIHkncywgdHlwaWNhbGx5IHJlc3VsdGluZyBpbiBhIGRhdGUgaW4gdGhlIHllYXIgMTkxOS4KKyAgICAgIAorICAgICAgUGxlYXNlIGV4dGVuZCB0aGUgcGFyc2luZyBtZXRob2QocykgdG8gaGFuZGxlIHN0cmluZ3Mgd2l0aAorICAgICAgZm91ci1kaWdpdCB5ZWFyIHZhbHVlcyAocHJvYmFibHkgYWxzbyBhcHBsaWNhYmxlIHRvIHZhcmlvdXMKKyAgICAgIG90aGVyIGxvY2FsZXMuICAqLworICAgIC8qKgorICAgICAqIEBidWcgNDA3MzAwMworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDczMDAzKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBMb2NhbGUuVVMpOworICAgICAgICAgICAgU3RyaW5nIHRlc3RzW10gPSB7IjEyLzI1LzYxIiwgIjEyLzI1LzE5NjEiLCAiNC8zLzIwMTAiLCAiNC8zLzEwIn07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkgKz0gMikgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSh0ZXN0c1tpXSk7CisgICAgICAgICAgICAgICAgRGF0ZSBkZCA9IGZtdC5wYXJzZSh0ZXN0c1tpICsgMV0pOworICAgICAgICAgICAgICAgIFN0cmluZyBzOworICAgICAgICAgICAgICAgIHMgPSBmbXQuZm9ybWF0KGQpOworICAgICAgICAgICAgICAgIFN0cmluZyBzczsKKyAgICAgICAgICAgICAgICBzcyA9IGZtdC5mb3JtYXQoZGQpOworICAgICAgICAgICAgICAgIGlmIChkLmdldFRpbWUoKSAhPSBkZC5nZXRUaW1lKCkpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZCArICIgIT0gIiArIGRkKTsKKyAgICAgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKHNzKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBzICsgIiAhPSAiICsgc3MpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIHMgKyAiICIgKyBkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBlKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0gICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDA4OTEwNgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDg5MTA2KCkgeworICAgICAgICBUaW1lWm9uZSBkZWYgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUaW1lWm9uZSB6ID0gbmV3IFNpbXBsZVRpbWVab25lKChpbnQpICgxLjI1ICogMzYwMDAwMCksICJGQUtFWk9ORSIpOworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdCh6KTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisgICAgICAgICAgICBpZiAoIWYuZ2V0VGltZVpvbmUoKS5lcXVhbHMoeikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFNpbXBsZVRpbWVab25lIHNob3VsZCB1c2UgVGltZVpvbmUuZ2V0RGVmYXVsdCgpIik7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KGRlZik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTAwMzAyCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDAzMDIoKSB7CisgICAgICAgIAorICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0geworICAgICAgICAgICAgTG9jYWxlLkNBTkFEQSwgTG9jYWxlLkNBTkFEQV9GUkVOQ0gsIExvY2FsZS5DSElOQSwgCisgICAgICAgICAgICBMb2NhbGUuQ0hJTkVTRSwgTG9jYWxlLkVOR0xJU0gsIExvY2FsZS5GUkFOQ0UsIExvY2FsZS5GUkVOQ0gsIAorICAgICAgICAgICAgTG9jYWxlLkdFUk1BTiwgTG9jYWxlLkdFUk1BTlksIExvY2FsZS5JVEFMSUFOLCBMb2NhbGUuSVRBTFksIAorICAgICAgICAgICAgTG9jYWxlLkpBUEFOLCBMb2NhbGUuSkFQQU5FU0UsIExvY2FsZS5LT1JFQSwgTG9jYWxlLktPUkVBTiwgCisgICAgICAgICAgICBMb2NhbGUuUFJDLCBMb2NhbGUuU0lNUExJRklFRF9DSElORVNFLCBMb2NhbGUuVEFJV0FOLCAKKyAgICAgICAgICAgIExvY2FsZS5UUkFESVRJT05BTF9DSElORVNFLCBMb2NhbGUuVUssIExvY2FsZS5VU307IAorICAgICAgICB0cnkgeworICAgICAgICAgICAgYm9vbGVhbiBwYXNzID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjE7IGkrKykgeworICAgICAgICAgICAgICAgIEZvcm1hdCBmb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIGxvY2FsZXNbaV0pOyAKKyAgICAgICAgICAgICAgICBieXRlW10gYnl0ZXM7CisgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhb3MgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9vcyA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYmFvcyk7CisgICAgICAgICAgICAgICAgb29zLndyaXRlT2JqZWN0KGZvcm1hdCk7CisgICAgICAgICAgICAgICAgb29zLmZsdXNoKCk7CisgICAgICAgICAgICAgICAgYmFvcy5jbG9zZSgpOworICAgICAgICAgICAgICAgIGJ5dGVzID0gYmFvcy50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9pcyA9IG5ldyBPYmplY3RJbnB1dFN0cmVhbShuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZXMpKTsKKyAgICAgICAgICAgICAgICBPYmplY3QgbyA9IG9pcy5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICAgICAgaWYgKCFmb3JtYXQuZXF1YWxzKG8pKSB7CisgICAgICAgICAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkRhdGVGb3JtYXQgaW5zdGFuY2UgZm9yIGxvY2FsZSAiICsgbG9jYWxlc1tpXSArICIgaXMgaW5jb3JyZWN0bHkgc2VyaWFsaXplZC9kZXNlcmlhbGl6ZWQuIik7IAorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJEYXRlRm9ybWF0IGluc3RhbmNlIGZvciBsb2NhbGUgIiArIGxvY2FsZXNbaV0gKyAiIGlzIE9LQVkuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFwYXNzKQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBEYXRlRm9ybWF0IHNlcmlhbGl6YXRpb24vZXF1YWxpdHkgYnVnIik7CisgICAgICAgIH0gY2F0Y2ggKE9wdGlvbmFsRGF0YUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICB9IGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgIH0KKyAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTAxNDgzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDE0ODMoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInoiLCBMb2NhbGUuVVMpOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwID0gbmV3IEZpZWxkUG9zaXRpb24oRGF0ZUZvcm1hdC5USU1FWk9ORV9GSUVMRCk7CisgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKDkyMzQ1Njc4OTBMKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICBzZGYuZm9ybWF0KGQsIGJ1ZiwgZnApOworICAgICAgICBsb2dsbihzZGYuZm9ybWF0KGQsIGJ1ZiwgZnApLnRvU3RyaW5nKCkpOworICAgICAgICBsb2dsbigiYmVnaW5JbmRleCA9ICIgKyBmcC5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICBsb2dsbigiZW5kSW5kZXggPSAiICsgZnAuZ2V0RW5kSW5kZXgoKSk7CisgICAgICAgIGlmIChmcC5nZXRCZWdpbkluZGV4KCkgPT0gZnAuZ2V0RW5kSW5kZXgoKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBFbXB0eSBmaWVsZCIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMDMzNDAKKyAgICAgKiBAYnVnIDQxMzgyMDMKKyAgICAgKiBUaGlzIGJ1ZyByZWFsbHkgb25seSB3b3JrcyBpbiBMb2NhbGUuVVMsIHNpbmNlIHRoYXQncyB3aGF0IHRoZSBsb2NhbGUKKyAgICAgKiB1c2VkIGZvciBEYXRlLnRvU3RyaW5nKCkgaXMuICBCdWcgNDEzODIwMyByZXBvcnRzIHRoYXQgaXQgZmFpbHMgb24gS29yZWFuCisgICAgICogTlQ7IGl0IHdvdWxkIGFjdHVhbGx5IGhhdmUgZmFpbGVkIG9uIGFueSBub24tVVMgbG9jYWxlLiAgTm93IGl0IHNob3VsZAorICAgICAqIHdvcmsgb24gYWxsIGxvY2FsZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDMzNDAoKSB7CisgICAgCisgICAgICAgIC8vIGNob29zZSBhIGRhdGUgdGhhdCBpcyB0aGUgRklSU1Qgb2Ygc29tZSBtb250aCAKKyAgICAgICAgLy8gYW5kIHNvbWUgYXJiaXRyYXJ5IHRpbWUKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgMywgMSwgMSwgMSwgMSk7CisgICAgICAgIERhdGUgZCA9IGNhbC5nZXRUaW1lKCk7IAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NTU0iLCBMb2NhbGUuVVMpOworICAgICAgICBTdHJpbmcgcyA9IGQudG9TdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHMyID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIHMyID0gZGYuZm9ybWF0KGQsIHMyLCBwb3MpOworICAgICAgICBsb2dsbigiRGF0ZT0iICsgcyk7IAorICAgICAgICBsb2dsbigiREY9IiArIHMyKTsKKyAgICAgICAgU3RyaW5nIHN1YnN0ciA9IHMyLnN1YnN0cmluZygwLDIpOworICAgICAgICBpZiAocy5pbmRleE9mKHN1YnN0cikgPT0gLTEpCisgICAgICAgICAgZXJybG4oIk1vbnRocyBzaG91bGQgbWF0Y2giKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTAzMzQxCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDMzNDEoKSB7CisgICAgICAgIFRpbWVab25lIHNhdmVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8ge3NmYn0gY2hhbmdlZCBmcm9tIGFkb3B0RGVmYXVsdCB0byBzZXREZWZhdWx0CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KFRpbWVab25lLmdldFRpbWVab25lKCJDU1QiKSk7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNpbXBsZSA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTS9kZC95eXl5IEhIOm1tIik7CisgICAgICAgICAgICBUaW1lWm9uZSB0ZW1wID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgaWYgKCFzaW1wbGUuZ2V0VGltZVpvbmUoKS5lcXVhbHModGVtcCkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFNpbXBsZURhdGVGb3JtYXQgbm90IHVzaW5nIGRlZmF1bHQgem9uZSIpOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlWm9uZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTA0MTM2CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDQxMzYoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAiJ3RpbWUnIGhoOm1tIjsKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgbG9nbG4oInBhdHRlcm46IFwiIiArIHBhdHRlcm4gKyAiXCIiKTsKKyAgICAgICAgU3RyaW5nIHN0cmluZ3NbXSA9IHsidGltZSAxMDozMCIsICJ0aW1lIDEwOngiLCAidGltZSAxMHgifTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwcG9zW10gPSB7bmV3IFBhcnNlUG9zaXRpb24oMTApLCBuZXcgUGFyc2VQb3NpdGlvbigwKSwgbmV3IFBhcnNlUG9zaXRpb24oMCl9OworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTcwLCBDYWxlbmRhci5KQU5VQVJZLCAxLCAxMCwgMzApOworICAgICAgICBEYXRlIGRhdGVzW10gPSB7Y2FsLmdldFRpbWUoKSwgbmV3IERhdGUoLTEpLCBuZXcgRGF0ZSgtMSl9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBzdHJpbmdzW2ldOworICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBmaW5pc2ggPSBwcG9zW2ldOworICAgICAgICAgICAgRGF0ZSBleHAgPSBkYXRlc1tpXTsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICBEYXRlIGQgPSBzZGYucGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgdGV4dDogXCIiICsgdGV4dCArICJcIiIpOworICAgICAgICAgICAgbG9nbG4oIiBpbmRleDogJWQiICsgcG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgbG9nbG4oIiByZXN1bHQ6ICIgKyBkKTsKKyAgICAgICAgICAgIGlmIChwb3MuZ2V0SW5kZXgoKSAhPSBmaW5pc2guZ2V0SW5kZXgoKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogRXhwZWN0ZWQgcG9zICIgKyBmaW5pc2guZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICBpZiAoISgoZCA9PSBudWxsICYmIGV4cC5lcXVhbHMobmV3IERhdGUoLTEpKSkgfHwgKGQuZXF1YWxzKGV4cCkpKSkKKyAgICAgICAgICAgICAgICBlcnJsbiggIkZhaWw6IEV4cGVjdGVkIHJlc3VsdCAiICsgZXhwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMDQ1MjIKKyAgICAgKiBDQU5OT1QgUkVQUk9EVUNFCisgICAgICogQWNjb3JkaW5nIHRvIHRoZSBidWcgcmVwb3J0LCB0aGlzIHRlc3Qgc2hvdWxkIHRocm93IGEKKyAgICAgKiBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGR1cmluZyB0aGUgc2Vjb25kIHBhcnNlLiAgSG93ZXZlciwKKyAgICAgKiB0aGlzIGlzIG5vdCBzZWVuLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA0NTIyKCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gIid0aW1lJyBoaDptbSI7CisgICAgICAgIHNkZi5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiBcIiIgKyBwYXR0ZXJuICsgIlwiIik7CisgICAgICAgIC8vIHdvcmtzIGNvcnJlY3RseQorICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gInRpbWUgIjsKKyAgICAgICAgRGF0ZSBkdCA9IHNkZi5wYXJzZSh0ZXh0LCBwcCk7CisgICAgICAgIGxvZ2xuKCIgdGV4dDogXCIiICsgdGV4dCArICJcIiIgKyAiIGRhdGU6ICIgKyBkdCk7CisgICAgICAgIC8vIHdvcmtzIHdyb25nCisgICAgICAgIHBwLnNldEluZGV4KDApOworICAgICAgICB0ZXh0ID0gInRpbWUiOworICAgICAgICBkdCA9IHNkZi5wYXJzZSh0ZXh0LCBwcCk7CisgICAgICAgIGxvZ2xuKCIgdGV4dDogXCIiICsgdGV4dCArICJcIiIgKyAiIGRhdGU6ICIgKyBkdCk7ICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMDY4MDcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNjgwNygpIHsKKyAgICAgICAgRGF0ZSBkdDsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpOworICAgIAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZnNbXSA9IHsKKyAgICAgICAgICAgICAgICBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eU1NZGRISG1tc3MiKSwgCisgICAgICAgICAgICAgICAgbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXlNTWRkSEhtbXNzJ1onIiksIAorICAgICAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5TU1kZEhIbW1zcycnIiksIAorICAgICAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5TU1kZEhIbW1zcydhJydhJyIpLCAKKyAgICAgICAgICAgICAgICBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eU1NZGRISG1tc3MgJSIpfTsgCisgICAgICAgIFN0cmluZyBzdHJpbmdzW10gPSB7CisgICAgICAgICAgICAgICAgIjE5OTgwMjExMTQwMDAwIiwgCisgICAgICAgICAgICAgICAgIjE5OTgwMjExMTQwMDAwIiwgCisgICAgICAgICAgICAgICAgIjE5OTgwMjExMTQwMDAwIiwgCisgICAgICAgICAgICAgICAgIjE5OTgwMjExMTQwMDAwYSIsIAorICAgICAgICAgICAgICAgICIxOTk4MDIxMTE0MDAwMCAifTsgCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIFRpbWVab25lIHRpbWVab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICBUaW1lWm9uZSBnbXQgPSAoVGltZVpvbmUpIHRpbWVab25lLmNsb25lKCk7CisgICAgICAgIGdtdC5zZXRSYXdPZmZzZXQoMCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdCA9IHNkZnNbaV07CisgICAgICAgICAgICBTdHJpbmcgZGF0ZVN0cmluZyA9IHN0cmluZ3NbaV07CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZvcm1hdC5zZXRUaW1lWm9uZShnbXQpOworICAgICAgICAgICAgICAgIGR0ID0gZm9ybWF0LnBhcnNlKGRhdGVTdHJpbmcpOworICAgICAgICAgICAgICAgIC8vIHtzZmJ9IHNvbWUgb2YgdGhlc2UgcGFyc2VzIHdpbGwgZmFpbCBwdXJwb3NlbHkKKyAgICAKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgZm10ZCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgICAgICAgICAgZm10ZCA9IGRmLmZvcm1hdChkdCwgZm10ZCwgcG9zKTsKKyAgICAgICAgICAgICAgICBsb2dsbihmbXRkLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIC8vbG9nbG4oZGYuZm9ybWF0KGR0KSk7IAorICAgICAgICAgICAgICAgIGdjLnNldFRpbWUoZHQpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIiICsgZ2MuZ2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VUKSk7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHMgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgICAgICAgICBzID0gZm9ybWF0LmZvcm1hdChkdCwgcywgcG9zKTsKKyAgICAgICAgICAgICAgICBsb2dsbihzLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJObyB3YXkgSm9zZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qCisgICAgICBTeW5vcHNpczogQ2hpbmVzZSB0aW1lIHpvbmUgQ1RUIGlzIG5vdCByZWNvZ29uaXplZCBjb3JyZWN0bHkuCisgICAgICBEZXNjcmlwdGlvbjogUGxhdGZvcm0gQ2hpbmVzZSBXaW5kb3dzIDk1IC0gKiogVGltZSB6b25lIHNldCB0byBDU1QgKiogCisgICAgICAqLworICAgIC8qKgorICAgICAqIEBidWcgNDEwODQwNworICAgICAqLworICAgIAorICAgIC8vIHtzZmJ9IHdoYXQgdG8gZG8gd2l0aCB0aGlzIG9uZSA/PyAKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwODQwNygpIHsKKyAgICAgICAgLyoKKyAgICAvLyBUT0RPIHVzZXIudGltZXpvbmUgaXMgYSBwcm90ZWN0ZWQgc3lzdGVtIHByb3BlcnR5LCBjYXRjaCBzZWN1cml0eWV4Y2VwdGlvbiBhbmQgd2FybgorICAgIC8vIGlmIHRoaXMgaXMgcmVlbmFibGVkCisgICAgICAgIGxvbmcgbCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOyAKKyAgICAgICAgbG9nbG4oInVzZXIudGltZXpvbmUgPSAiICsgU3lzdGVtLmdldFByb3BlcnR5KCJ1c2VyLnRpbWV6b25lIiwgIj8iKSk7CisgICAgICAgIGxvZ2xuKCJUaW1lIFpvbmUgOiIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCkuZ2V0VGltZVpvbmUoKS5nZXRJRCgpKTsgCisgICAgICAgIGxvZ2xuKCJEZWZhdWx0IGZvcm1hdCA6IiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKS5mb3JtYXQobmV3IERhdGUobCkpKTsgCisgICAgICAgIGxvZ2xuKCJGdWxsIGZvcm1hdCA6IiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMKS5mb3JtYXQobmV3IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZShsKSkpOyAKKyAgICAgICAgbG9nbG4oIioqKiBTZXQgaG9zdCBUWiB0byBDU1QgKioqIik7CisgICAgICAgIGxvZ2xuKCIqKiogVEhFIFJFU1VMVFMgT0YgVEhJUyBURVNUIE1VU1QgQkUgVkVSSUZJRUQgTUFOVUFMTFkgKioqIik7CisgICAgICAgICovCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDEzNDIwMworICAgICAqIFNpbXBsZURhdGVGb3JtYXQgd29uJ3QgcGFyc2UgIkdNVCIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEzNDIwMygpIHsKKyAgICAgICAgU3RyaW5nIGRhdGVGb3JtYXQgPSAiTU0vZGQveXkgSEg6bW06c3Mgenp6IjsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChkYXRlRm9ybWF0KTsKKyAgICAKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwMCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjAxLzIyLzkyIDA0OjUyOjAwIEdNVCIsIHAwKTsKKyAgICAgICAgbG9nbG4oZC50b1N0cmluZygpKTsKKyAgICAgICAgaWYocDAuZXF1YWxzKG5ldyBQYXJzZVBvc2l0aW9uKDApKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBmYWlsZWQgdG8gcGFyc2UgJ0dNVCciKTsKKyAgICAgICAgLy8gSW4gdGhlIGZhaWx1cmUgY2FzZSBhbiBleGNlcHRpb24gaXMgdGhyb3duIGJ5IHBhcnNlKCk7CisgICAgICAgIC8vIGlmIG5vIGV4Y2VwdGlvbiBpcyB0aHJvd24sIHRoZSB0ZXN0IHBhc3Nlcy4KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTUxNjMxCisgICAgICogU2ltcGxlRGF0ZUZvcm1hdCBpbmNvcnJlY3QgaGFuZGxpbmcgb2YgMiBzaW5nbGUgcXVvdGVzIGluIGZvcm1hdCgpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTE2MzEoKSB7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gCisgICAgICAgICAgICAiJ1RPX0RBVEUoJycnZGQnLSdNTSctJ3l5eXkgSEg6bW06c3MnJycgLCAnJ0RELU1NLVlZWVkgSEg6TUk6U1MnJyknIjsgCisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuPSIgKyBwYXR0ZXJuKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuVVMpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkpVTkUsIDMwLCAxMywgMzAsIDApOworICAgICAgICBEYXRlIGQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICByZXN1bHQgPSBmb3JtYXQuZm9ybWF0KGQsIHJlc3VsdCwgcG9zKTsgCisgICAgICAgIGlmICghcmVzdWx0LnRvU3RyaW5nKCkuZXF1YWxzKCJUT19EQVRFKCczMC0wNi0xOTk4IDEzOjMwOjAwJyAsICdERC1NTS1ZWVlZIEhIOk1JOlNTJykiKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6IHJlc3VsdD0iICsgcmVzdWx0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQYXNzOiByZXN1bHQ9IiArIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTUxNzA2CisgICAgICogJ3onIGF0IGVuZCBvZiBkYXRlIGZvcm1hdCB0aHJvd3MgaW5kZXggZXhjZXB0aW9uIGluIFNpbXBsZURhdGVGb3JtYXQKKyAgICAgKiBDQU5OT1QgUkVQUk9EVUNFIFRISVMgQlVHIE9OIDEuMkZDUworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTUxNzA2KCkgeworICAgICAgICBTdHJpbmcgZGF0ZVN0cmluZyA9ICJUaHVyc2RheSwgMzEtRGVjLTk4IDIzOjAwOjAwIEdNVCI7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkVFRUUsIGRkLU1NTS15eSBISDptbTpzcyB6IiwgTG9jYWxlLlVTKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoVGltZVpvbmUuZ2V0VGltZVpvbmUoIlVUQyIpLCBMb2NhbGUuVVMpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk4LCBDYWxlbmRhci5ERUNFTUJFUiwgMzEsIDIzLCAwLCAwKTsKKyAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGQgPSBmbXQucGFyc2UoZGF0ZVN0cmluZyk7CisgICAgICAgICAgICAvLyB7c2ZifSB3aGF0IGFib3V0IG5leHQgdHdvIGxpbmVzPworICAgICAgICAgICAgaWYgKGQuZ2V0VGltZSgpICE9IGNhbC5nZXRUaW1lKCkuZ2V0VGltZSgpKQorICAgICAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3QgdmFsdWU6ICIgKyBkKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgZSk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQnVmZmVyIHRlbXAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgbG9nbG4oZGF0ZVN0cmluZyArICIgLiAiICsgZm10LmZvcm1hdChkLCB0ZW1wLCBwb3MpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTYyMDcxCisgICAgICogQ2Fubm90IHJlcHJvZHVjZSB0aGlzIGJ1ZyB1bmRlciAxLjIgRkNTIC0tIGl0IG1heSBiZSBhIGNvbnZvbHV0ZWQgZHVwbGljYXRlCisgICAgICogb2Ygc29tZSBvdGhlciBidWcgdGhhdCBoYXMgYmVlbiBmaXhlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2MjA3MSgpIHsKKyAgICAgICAgU3RyaW5nIGRhdGVTdHJpbmcgPSAiVGh1LCAzMC1KdWwtMTk5OSAxMTo1MToxNCBHTVQiOworICAgICAgICBTdHJpbmcgZm9ybWF0ID0gIkVFRScsICdkZC1NTU0teXl5eSBISDptbTpzcyB6IjsgLy8gUkZDIDgyMi8xMTIzCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChmb3JtYXQsIExvY2FsZS5VUyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlIHggPSBkZi5wYXJzZShkYXRlU3RyaW5nKTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICAgICAgbG9nbG4oZGF0ZVN0cmluZyArICIgLT4gIiArIGRmLmZvcm1hdCh4LCB0ZW1wLCBwb3MpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJQYXJzZSBmb3JtYXQgXCIiICsgZm9ybWF0ICsgIlwiIGZhaWxlZC4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEYXRlRm9ybWF0IHNob3VsZG4ndCBwYXJzZSB5ZWFyICItMSIgYXMgYSB0d28tZGlnaXQgeWVhciAoZS5nLiwgIi0xIiAuIDE5OTkpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTgyMDY2KCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTS9kZC95eSIsIExvY2FsZS5VUyk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZGlzcEZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTU0gZGQgeXl5eSBISDptbTpzcyBHRyIsIExvY2FsZS5VUyk7CisgICAgICAgIC8qIFdlIGV4cGVjdCAyLWRpZ2l0IHllYXIgZm9ybWF0cyB0byBwdXQgMi1kaWdpdCB5ZWFycyBpbiB0aGUgcmlnaHQKKyAgICAgICAgICogd2luZG93LiAgT3V0IG9mIHJhbmdlIHllYXJzLCB0aGF0IGlzLCBhbnl0aGluZyBsZXNzIHRoYW4gIjAwIiBvcgorICAgICAgICAgKiBncmVhdGVyIHRoYW4gIjk5IiwgYXJlIHRyZWF0ZWQgYXMgbGl0ZXJhbCB5ZWFycy4gIFNvICIxLzIvMzQ1NiIKKyAgICAgICAgICogYmVjb21lcyAzNDU2IEFELiAgTGlrZXdpc2UsICIxLzIvLTMiIGJlY29tZXMgLTMgQUQgPT0gMiBCQy4KKyAgICAgICAgICovCisgICAgICAgIGZpbmFsIFN0cmluZyBTVFJJTkdTW10gPSAKKyAgICAgICAgICAgIHsiMDIvMjkvMDAiLCAiMDEvMjMvMDEiLCAiMDQvMDUvLTEiLCAiMDEvMjMvLTkiLCAiMTEvMTIvMTMxNCIsICIxMC8zMS8xIiwgIjA5LzEyLysxIiwgIjA5LzEyLzAwMSIsfTsgCisgICAgICAgIGludCBTVFJJTkdTX0NPVU5UID0gU1RSSU5HUy5sZW5ndGg7CisgICAgICAgICAgICAgICAgCisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIERhdGUgRkFJTF9EQVRFID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMjAwMCwgQ2FsZW5kYXIuRkVCUlVBUlksIDI5KTsKKyAgICAgICAgRGF0ZSBkMCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDIwMDEsIENhbGVuZGFyLkpBTlVBUlksIDIzKTsKKyAgICAgICAgRGF0ZSBkMSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KC0xLCBDYWxlbmRhci5BUFJJTCwgNSk7CisgICAgICAgIERhdGUgZDIgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgtOSwgQ2FsZW5kYXIuSkFOVUFSWSwgMjMpOworICAgICAgICBEYXRlIGQzID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTMxNCwgQ2FsZW5kYXIuTk9WRU1CRVIsIDEyKTsKKyAgICAgICAgRGF0ZSBkNCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDEsIENhbGVuZGFyLk9DVE9CRVIsIDMxKTsKKyAgICAgICAgRGF0ZSBkNSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGNhbC5jbGVhcigpOyAgICAgICAgCisgICAgICAgIGNhbC5zZXQoMSwgQ2FsZW5kYXIuU0VQVEVNQkVSLCAxMik7CisgICAgICAgIERhdGUgZDcgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBEYXRlIERBVEVTW10gPSB7ZDAsIGQxLCBkMiwgZDMsIGQ0LCBkNSwgRkFJTF9EQVRFLCBkN307CisgICAgCisgICAgICAgIFN0cmluZyBvdXQgPSAiIjsKKyAgICAgICAgYm9vbGVhbiBwYXNzID0gdHJ1ZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBTVFJJTkdTX0NPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBzdHIgPSBTVFJJTkdTW2ldOworICAgICAgICAgICAgRGF0ZSBleHBlY3RlZCA9IERBVEVTW2ldOyAgICAgICAgICAgIAorICAgICAgICAgICAgRGF0ZSBhY3R1YWwgPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBhY3R1YWwgPSBmbXQucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBhY3R1YWwgPSBGQUlMX0RBVEU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgYWN0U3RyID0gIiI7CisgICAgICAgICAgICBpZiAoKGFjdHVhbC5nZXRUaW1lKCkpID09IEZBSUxfREFURS5nZXRUaW1lKCkpIHsKKyAgICAgICAgICAgICAgICBhY3RTdHIgKz0gIm51bGwiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBZdWNrOiBTZWUgajI1CisgICAgICAgICAgICAgICAgYWN0U3RyID0gKChEYXRlRm9ybWF0KSBkaXNwRm10KS5mb3JtYXQoYWN0dWFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChleHBlY3RlZC5nZXRUaW1lKCkgPT0gKGFjdHVhbC5nZXRUaW1lKCkpKSB7CisgICAgICAgICAgICAgICAgb3V0ICs9IHN0ciArICIgPT4gIiArIGFjdFN0ciArICJcbiI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFN0cmluZyBleHBTdHIgPSAiIjsKKyAgICAgICAgICAgICAgICBpZiAoZXhwZWN0ZWQuZ2V0VGltZSgpID09IEZBSUxfREFURS5nZXRUaW1lKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwU3RyICs9ICJudWxsIjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBZdWNrOiBTZWUgajI1CisgICAgICAgICAgICAgICAgICAgIGV4cFN0ciA9ICgoRGF0ZUZvcm1hdCkgZGlzcEZtdCkuZm9ybWF0KGV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0ICs9ICJGQUlMOiAiICsgc3RyICsgIiA9PiAiICsgYWN0U3RyICsgIiwgZXhwZWN0ZWQgIiArIGV4cFN0ciArICJcbiI7CisgICAgICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChwYXNzKSB7CisgICAgICAgICAgICBsb2cob3V0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycihvdXQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIGozMiB7SkRLIEJ1ZyA0MjEwMjA5IDQyMDkyNzJ9CisgICAgICogRGF0ZUZvcm1hdCBjYW5ub3QgcGFyc2UgRmViIDI5IDIwMDAgd2hlbiBzZXRMZW5pZW50KGZhbHNlKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjEwMjA5KCkgeworICAgIAorICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICJNTU0gZCwgeXl5eSI7CisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybiwgTG9jYWxlLlVTKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkaXNwID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NTSBkZCB5eXl5IEdHIiwgTG9jYWxlLlVTKTsKKyAgICAKKyAgICAgICAgQ2FsZW5kYXIgY2FseCA9IGZtdC5nZXRDYWxlbmRhcigpOworICAgICAgICBjYWx4LnNldExlbmllbnQoZmFsc2UpOworICAgICAgICBDYWxlbmRhciBjYWxlbmRhciA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbGVuZGFyLmNsZWFyKCk7CisgICAgICAgIGNhbGVuZGFyLnNldCgyMDAwLCBDYWxlbmRhci5GRUJSVUFSWSwgMjkpOworICAgICAgICBEYXRlIGQgPSBjYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgIFN0cmluZyBzID0gZm10LmZvcm1hdChkKTsKKyAgICAgICAgbG9nbG4oZGlzcC5mb3JtYXQoZCkgKyAiIGY+ICIgKyBwYXR0ZXJuICsgIiA9PiBcIiIgKyBzICsgIlwiIik7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIGQgPSBmbXQucGFyc2UocywgcG9zKTsKKyAgICAgICAgbG9nbG4oIlwiIiArIHMgKyAiXCIgcD4gIiArIHBhdHRlcm4gKyAiID0+ICIgKworICAgICAgICAgICAgICAoZCE9bnVsbD9kaXNwLmZvcm1hdChkKToibnVsbCIpKTsKKyAgICAgICAgbG9nbG4oIlBhcnNlIHBvcyA9ICIgKyBwb3MuZ2V0SW5kZXgoKSArICIsIGVycm9yIHBvcyA9ICIgKyBwb3MuZ2V0RXJyb3JJbmRleCgpKTsKKyAgICAgICAgaWYgKHBvcy5nZXRFcnJvckluZGV4KCkgIT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFcnJvciBpbmRleCBzaG91bGQgYmUgLTEiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBUaGUgdW5kZXJseWluZyBidWcgaXMgaW4gR3JlZ29yaWFuQ2FsZW5kYXIuICBJZiB0aGUgZm9sbG93aW5nIGxpbmVzCisgICAgICAgIC8vIHN1Y2NlZWQsIHRoZSBidWcgaXMgZml4ZWQuICBJZiB0aGUgYnVnIGlzbid0IGZpeGVkLCB0aGV5IHdpbGwgdGhyb3cKKyAgICAgICAgLy8gYW4gZXhjZXB0aW9uLgorICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXRMZW5pZW50KGZhbHNlKTsKKyAgICAgICAgY2FsLnNldCgyMDAwLCBDYWxlbmRhci5GRUJSVUFSWSwgMjkpOyAvLyBUaGlzIHNob3VsZCB3b3JrIQorICAgICAgICBkID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgbG9nbG4oIkF0dGVtcHQgdG8gc2V0IENhbGVuZGFyIHRvIEZlYiAyOSAyMDAwOiAiICsgZGlzcC5mb3JtYXQoZCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0NzE0KCkgeworICAgICAgICAvL1RpbWVab25lIE9mZnNldAorICAgICAgICBUaW1lWm9uZSBkZWZhdWx0VFogPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFRpbWVab25lIFBTVCA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgaW50IGRlZmF1bHRPZmZzZXQgPSBkZWZhdWx0VFouZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgIGludCBQU1RPZmZzZXQgPSBQU1QuZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKDk3ODEwMzU0MzAwMGwgLSAoZGVmYXVsdE9mZnNldCAtIFBTVE9mZnNldCkpOworICAgICAgICBkID0gbmV3IERhdGUoZC5nZXRUaW1lKCkgLSAoZGVmYXVsdFRaLmluRGF5bGlnaHRUaW1lKGQpID8gMzYwMDAwMCA6IDApKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoLTEsIERhdGVGb3JtYXQuTUVESVVNLCBMb2NhbGUuVVMpOworICAgICAgICBTdHJpbmcgdGVzdHMgPSAiNzoyNTo0MyBBTSI7CisgICAgICAgIFN0cmluZyBzID0gZm10LmZvcm1hdChkKTsKKyAgICAgICAgaWYgKCFzLmVxdWFscyh0ZXN0cykpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiAiICsgcyArICIgIT0gIiArIHRlc3RzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIHMgKyAiID09ICIgKyB0ZXN0cyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgY2hhciBrQXJhYmljWmVybyA9IDB4MDY2MDsKKyAgICBzdGF0aWMgZmluYWwgY2hhciBrSGluZGlaZXJvICA9IDB4MDk2NjsKKyAgICBzdGF0aWMgZmluYWwgY2hhciBrTGF0aW5aZXJvICA9IDB4MDAzMDsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RIaW5kaUFyYWJpY0RpZ2l0cygpCisgICAgeworICAgICAgICBTdHJpbmcgczsKKyAgICAgICAgY2hhciBmaXJzdDsKKyAgICAgICAgU3RyaW5nIHdoYXQ7CisKKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UobmV3IEdyZWdvcmlhbkNhbGVuZGFyKCksIG5ldyBMb2NhbGUoImhpIiwiSU4iKSk7CisgICAgICAgICAgICB3aGF0ID0gIkdyZWdvcmlhbiBDYWxlbmRhciwgaGluZGkiOworICAgICAgICAgICAgcyA9IGRmLmZvcm1hdChuZXcgRGF0ZSgwKSk7IC8qIDMxLzEyLzE5NjkgKi8KKyAgICAgICAgICAgIGxvZ2xuKHdoYXQgKyAiPSIgKyBzKTsKKyAgICAgICAgICAgIGZpcnN0ID0gcy5jaGFyQXQoMCk7CisgICAgICAgICAgICBpZihmaXJzdDxrSGluZGlaZXJvIHx8IGZpcnN0PihrSGluZGlaZXJvKzkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4od2hhdCArICItIHdyb25nIGRpZ2l0LCAgZ290ICIgKyBzICsgIiAoaW50ZWdlciBkaWdpdCB2YWx1ZSAiICsgbmV3IEludGVnZXIoKGludClmaXJzdCkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShuZXcgSXNsYW1pY0NhbGVuZGFyKCksIG5ldyBMb2NhbGUoImFyIiwiSVEiKSk7CisgICAgICAgICAgICBzID0gZGYuZm9ybWF0KG5ldyBEYXRlKDApKTsgLyogMjEvMTAvMTk4OSAqLworICAgICAgICAgICAgd2hhdCA9ICJJc2xhbWljIENhbGVuZGFyLCBBcmFiaWMiOworICAgICAgICAgICAgbG9nbG4od2hhdCArICI6ICIgKyBzKTsKKyAgICAgICAgICAgIGZpcnN0ID0gcy5jaGFyQXQoMCk7CisgICAgICAgICAgICBpZihmaXJzdDxrQXJhYmljWmVybyB8fCBmaXJzdD4oa0FyYWJpY1plcm8rOSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbih3aGF0ICsgIiB3cm9uZyBkaWdpdCwgZ290ICIgKyBzICsgIiAoaW50ZWdlciBkaWdpdCB2YWx1ZSAiICsgbmV3IEludGVnZXIoKGludClmaXJzdCkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKSwgbmV3IExvY2FsZSgiYXIiLCJJUSIpKTsKKyAgICAgICAgICAgIHMgPSBkZi5mb3JtYXQobmV3IERhdGUoMCkpOyAvKiAzMS8xMi8xOTY5ICovCisgICAgICAgICAgICB3aGF0ID0gIkdyZWdvcmlhbiwgIGFyX0lRLCBkZi5nZXRJbnN0YW5jZSI7CisgICAgICAgICAgICBsb2dsbih3aGF0ICsgIjogIiArIHMpOworICAgICAgICAgICAgZmlyc3QgPSBzLmNoYXJBdCgwKTsKKyAgICAgICAgICAgIGlmKGZpcnN0PGtBcmFiaWNaZXJvIHx8IGZpcnN0PihrQXJhYmljWmVybys5KSkgeworICAgICAgICAgICAgICAgIGVycmxuKHdoYXQgKyAiIHdyb25nICBkaWdpdCBidXQgZ290ICIgKyBzICsgIiAoaW50ZWdlciBkaWdpdCB2YWx1ZSAiICsgbmV3IEludGVnZXIoKGludClmaXJzdCkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UobmV3IEdyZWdvcmlhbkNhbGVuZGFyKCksIG5ldyBMb2NhbGUoIm10IiwiTVQiKSk7CisgICAgICAgICAgICBzID0gZGYuZm9ybWF0KG5ldyBEYXRlKDApKTsgLyogMzEvMTIvMTk2OSAqLworICAgICAgICAgICAgd2hhdCA9ICJHcmVnb3JpYW4sICBtdF9NVCwgZGYuZ2V0SW5zdGFuY2UiOworICAgICAgICAgICAgbG9nbG4od2hhdCArICI6ICIgKyBzKTsKKyAgICAgICAgICAgIGZpcnN0ID0gcy5jaGFyQXQoMCk7CisgICAgICAgICAgICBpZihmaXJzdDxrTGF0aW5aZXJvIHx8IGZpcnN0PihrTGF0aW5aZXJvKzkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4od2hhdCArICIgd3JvbmcgIGRpZ2l0IGJ1dCBnb3QgIiArIHMgKyAiIChpbnRlZ2VyIGRpZ2l0IHZhbHVlICIgKyBuZXcgSW50ZWdlcigoaW50KWZpcnN0KS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldEluc3RhbmNlKG5ldyBJc2xhbWljQ2FsZW5kYXIoKSwgbmV3IExvY2FsZSgiYXIiLCJJUSIpKTsKKyAgICAgICAgICAgIHMgPSBkZi5mb3JtYXQobmV3IERhdGUoMCkpOyAvKiAzMS8xMi8xOTY5ICovCisgICAgICAgICAgICB3aGF0ID0gIklzbGFtaWMgY2FsZW5kYXIsIGFyX0lRLCBkZi5nZXRJbnN0YW5jZSI7CisgICAgICAgICAgICBsb2dsbih3aGF0KyAiOiAiICsgcyk7CisgICAgICAgICAgICBmaXJzdCA9IHMuY2hhckF0KDApOworICAgICAgICAgICAgaWYoZmlyc3Q8a0FyYWJpY1plcm8gfHwgZmlyc3Q+KGtBcmFiaWNaZXJvKzkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4od2hhdCArICIgd3JvbmcgIGRpZ2l0IGJ1dCBnb3QgIiArIHMgKyAiIChpbnRlZ2VyIGRpZ2l0IHZhbHVlICIgKyBuZXcgSW50ZWdlcigoaW50KWZpcnN0KS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgRGF0ZUZvcm1hdC5TSE9SVCwgbmV3IExvY2FsZSgiYXIiLCJJUSIpKTsKKyAgICAgICAgICAgIHMgPSBkZi5mb3JtYXQobmV3IERhdGUoMCkpOyAvKiAzMS8xMi8xOTY5ICovCisgICAgICAgICAgICB3aGF0ID0gImFyX0lRLCBnZXREYXRlVGltZUluc3RhbmNlIjsKKyAgICAgICAgICAgIGxvZ2xuKHdoYXQrICI6ICIgKyBzKTsKKyAgICAgICAgICAgIGZpcnN0ID0gcy5jaGFyQXQoMCk7CisgICAgICAgICAgICBpZihmaXJzdDxrQXJhYmljWmVybyB8fCBmaXJzdD4oa0FyYWJpY1plcm8rOSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbih3aGF0ICsgIiB3cm9uZyAgZGlnaXQgYnV0IGdvdCAiICsgcyArICIgKGludGVnZXIgZGlnaXQgdmFsdWUgIiArIG5ldyBJbnRlZ2VyKChpbnQpZmlyc3QpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UobmV3IEphcGFuZXNlQ2FsZW5kYXIoKSwgbmV3IExvY2FsZSgiYXIiLCJJUSIpKTsKKyAgICAgICAgICAgIHMgPSBkZi5mb3JtYXQobmV3IERhdGUoMCkpOyAvKiAzMS8xMi8xOTY5ICovCisgICAgICAgICAgICB3aGF0ID0gImFyX0lRLCBKYXBhbmVzZSBDYWxlbmRhciwgZ2V0SW5zdGFuY2UiOworICAgICAgICAgICAgbG9nbG4od2hhdCsgIjogIiArIHMpOworICAgICAgICAgICAgZmlyc3QgPSBzLmNoYXJBdCgwKTsKKyAgICAgICAgICAgIGlmKGZpcnN0PGtBcmFiaWNaZXJvIHx8IGZpcnN0PihrQXJhYmljWmVybys5KSkgeworICAgICAgICAgICAgICAgIGVycmxuKHdoYXQgKyAiIHdyb25nICBkaWdpdCBidXQgZ290ICIgKyBzICsgIiAoaW50ZWdlciBkaWdpdCB2YWx1ZSAiICsgbmV3IEludGVnZXIoKGludClmaXJzdCkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdEouamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0Si5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE0NDY0ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSZWdyZXNzaW9uVGVzdEouamF2YQpAQCAtMCwwICsxLDI4NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoKKyAqIE5ldyBhZGRlZCwgMjAwMS0xMC0xNyBbSmluZy9HQ0xdCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdFJlZ3Jlc3Npb25UZXN0SiBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVElNRV9TVFJJTkcgPSAiMjAwMC8xMS8xNyAwODowMTowMCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBVVENfTE9ORyA9IDk3NDQ3Njg2MDAwMEw7CisgICAgcHJpdmF0ZSBzdGF0aWMgU2ltcGxlRGF0ZUZvcm1hdCBzZGZfOworICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIHNkZl8gPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS9NTS9kZCBISDptbTpzcyIpOworICAgICAgICAKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBEYXRlRm9ybWF0UmVncmVzc2lvblRlc3RKKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICAvL1JldHVybiB2YWx1ZSBvZiBnZXRBbVBtU3RyaW5ncworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTAzOTI2KCkgeworICAgICAgICBTdHJpbmcgYWN0X0FtcG1zW107CisgICAgICAgIFN0cmluZyBleHBfQW1wbXNbXT17IkFNIiwiUE0ifTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLlVTKTsKKyAgICAgICAgCisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGRmcyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scygpOworICAgICAgICBhY3RfQW1wbXMgPSBkZnMuZ2V0QW1QbVN0cmluZ3MoKTsKKyAgICAgICAgaWYoYWN0X0FtcG1zLmxlbmd0aCAhPSBleHBfQW1wbXMubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIHJlc3VsdCBpcyBub3QgZXhwZWN0ZWQhIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPTA7IGk8YWN0X0FtcG1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoIWFjdF9BbXBtc1tpXS5lcXVhbHMoZXhwX0FtcG1zW2ldKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRoZSByZXN1bHQgaXMgbm90IGV4cGVjdGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vTWlzc2luZyBkaWdpdCBpbiBtaWxsaXNlY29uZSBmb3JtYXQgaW4gU2ltcGxlRGF0ZUZvcm1hdCAKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0ODE2OCgpIHsKKyAgICAgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKDEwMDI3MDUyMTI5MDZsKTsgCisgICAgICAgICAgICBTdHJpbmdbXSBJU09QYXR0ZXJuID0geworICAgICAgICAgICAgICAgICInJ3l5eXktTU0tZGQtaGgubW0uc3MuUycnIiwgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1MnJyIsICInJ3l5eXktTU0tZGQtaGgubW0uc3MuU1NTUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1NTUycnIiwgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1NTU1MnJyIsIAorICAgICAgICAgICAgICAgICInJ3l5eXktTU0tZGQtaGgubW0uc3MuU1NTU1NTUycnIiwgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1MwMDAnJyJ9OworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBhU2ltcGxlREYgPSAoU2ltcGxlRGF0ZUZvcm1hdClEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoKTsKKyAgICAKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGk8SVNPUGF0dGVybi5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGFTaW1wbGVERi5hcHBseVBhdHRlcm4oIElTT1BhdHRlcm5baV0gKTsKKyAgICAgICAgICAgICAgICBsb2dsbiggIlBhdHRlcm4gPSAiICsgYVNpbXBsZURGLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICBsb2dsbiggIkZvcm1hdCA9ICIgKyBhU2ltcGxlREYuZm9ybWF0KGQpKTsKKyAgICAgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9EYXRlRm9ybWF0IGdldERhdGVUaW1lSW5zdGFuY2UoaW50LCBpbnQpLCBpbnZhbGlkIHN0eWxlcyBubyBleGNlcHRpb24KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDIxMzA4NigpIHsKKyAgICAgICAgRGF0ZSBzb21lRGF0ZSA9IG5ldyBEYXRlKCk7CisgICAgICAgIFN0cmluZyBkPW51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmMiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgyLCAtMik7CisgICAgICAgICAgICBkID0gZGYyLmZvcm1hdChzb21lRGF0ZSk7CisgICAgICAgICAgICBlcnJsbigid2Ugc2hvdWxkIGNhdGNoIGFuIGV4Y2VwdGlvbiBoZXJlIik7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgbG9nbG4oImRhdGVTdHlsZSA9IDIiICsgIlx0IHRpbWVTdHlsZSA9IC0yIik7CisgICAgICAgICAgICBsb2dsbigiRXhjZXB0aW9uIGNhdWdodCEiKTsKKyAgICAgICAgfSAgICAgICAgICAgIAorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGYzID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKDQsIDIpOworICAgICAgICAgICAgZCA9IGRmMy5mb3JtYXQoc29tZURhdGUpOworICAgICAgICAgICAgZXJybG4oIndlIHNob3VsZCBjYXRjaCBhbiBleGNlcHRpb24gaGVyZSIpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGxvZ2xuKCJkYXRlU3R5bGUgPSA0IiArICJcdCB0aW1lU3R5bGUgPSAyIik7CisgICAgICAgICAgICBsb2dsbigiRXhjZXB0aW9uIGNhdWdodCEiKTsKKyAgICAgICAgICAgIGxvZ2xuKCIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIpOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmNCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgtMTIsIC0xMik7CisgICAgICAgICAgICBkID0gZGY0LmZvcm1hdChzb21lRGF0ZSk7CisgICAgICAgICAgICBlcnJsbigid2Ugc2hvdWxkIGNhdGNoIGFuIGV4Y2VwdGlvbiBoZXJlIik7CisgICAgICAgIH0gY2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgbG9nbG4oImRhdGVTdHlsZSA9IC0xMiIgKyAiXHQgdGltZVN0eWxlID0gLTEyIik7CisgICAgICAgICAgICBsb2dsbigiRXhjZXB0aW9uIGNhdWdodCEiKTsKKyAgICAgICAgICAgIGxvZ2xuKCIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIpOworICAgICAgICB9CisgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGY1ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKDIsIDEyMyk7CisgICAgICAgICAgICBkID0gZGY1LmZvcm1hdChzb21lRGF0ZSk7ICAgIAorICAgICAgICAgICAgZXJybG4oIndlIHNob3VsZCBjYXRjaCBhbiBleGNlcHRpb24gaGVyZSIpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGxvZ2xuKCJkYXRlU3R5bGUgPSAyIiArICJcdCB0aW1lU3R5bGUgPSAxMjMiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJFeGNlcHRpb24gY2F1Z2h0ISIpOworICAgICAgICAgICAgbG9nbG4oIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIik7CisgICAgICAgIH0KKyAgICAgICAgLy9yZWFkIHRoZSB2YWx1ZSBpbiBkIHRvIGdldCByaWQgb2YgdGhlIHdhcm5pbmcKKyAgICAgICAgaWYoZCE9bnVsbCl7CisgICAgICAgICAgICBsb2dsbigiVGhlIHZhbHVlIG9mIGQ6ICIgKyBkKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL0RhdGVGb3JtYXQuZm9ybWF0IHdvcmtzIHdyb25nbHk/CisgICAgcHVibGljIHZvaWQgVGVzdDQyNTAzNTkoKSB7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5VUyk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDEwMSArIDE5MDAsIDksIDksIDE3LCA1Myk7CisgICAgICAgIERhdGUgZCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIERhdGVGb3JtYXQgdGYgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JUKTsKKyAgICAgICAgU3RyaW5nIGFjdF9yZXN1bHQgPSB0Zi5mb3JtYXQoZCk7CisgICAgICAgIFN0cmluZyBleHBfcmVzdWx0ID0gIjU6NTMgUE0iOworICAgICAgICAKKyAgICAgICAgaWYoIWFjdF9yZXN1bHQuZXF1YWxzKGV4cF9yZXN1bHQpKXsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgcmVzdWx0IGlzIG5vdCBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vcGF0dGVybiAicy5TLCBwYXJzZSAnMW1zJyIKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDI1MzQ5MCgpIHsKKyAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUoMTAwMjcwNTIxMjIzMWwpOworICAgIAorICAgICAgICBTdHJpbmdbXSBJU09QYXR0ZXJuID0geworICAgICAgICAgICAgICAgICInJ3l5eXktTU0tZGQtaGgubW0uc3MuUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1MnJyIsIAorICAgICAgICAgICAgICAgICInJ3l5eXktTU0tZGQtaGgubW0uc3MuU1NTUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1NTUycnIiwgCisgICAgICAgICAgICAgICAgIicneXl5eS1NTS1kZC1oaC5tbS5zcy5TU1NTU1MnJyIsIAorICAgICAgICAgICAgICAgICInJ3l5eXktTU0tZGQtaGgubW0uc3MuU1NTU1NTUycnIn07IAorICAgIAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGFTaW1wbGVERiA9IChTaW1wbGVEYXRlRm9ybWF0KSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBJU09QYXR0ZXJuLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBhU2ltcGxlREYuYXBwbHlQYXR0ZXJuKElTT1BhdHRlcm5baV0pOworICAgICAgICAgICAgbG9nbG4oIlBhdHRlcm4gPSAiICsgYVNpbXBsZURGLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgIGxvZ2xuKCJGb3JtYXQgPSAiICsgYVNpbXBsZURGLmZvcm1hdChkKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9hYm91dCByZWdyZXNzaW9uIHRlc3QKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDI2NjQzMigpIHsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLkpBUEFOKTsKKyAgICAgICAgTG9jYWxlIGxvYyA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFN0cmluZyBkYXRlRm9ybWF0ID0gIk1NL2RkL3l5IEhIOm1tOnNzIHp6eiI7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoZGF0ZUZvcm1hdCk7CisgICAgCisgICAgICAgIFBhcnNlUG9zaXRpb24gcDAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgbG9nbG4oIlVuZGVyICAiICsgbG9jICsiICBsb2NhbGUiKTsKKyAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKCIwMS8yMi85MiAwNDo1MjowMCBHTVQiLCBwMCk7CisgICAgICAgIGxvZ2xuKGQudG9TdHJpbmcoKSk7CisgICAgfQorICAgIAorICAgIC8vU2ltcGxlRGF0ZUZvcm1hdCBpbmNvbnNpc3RlbnQgZm9yIG51bWJlciBvZiBkaWdpdHMgZm9yIHllYXJzCisgICAgcHVibGljIHZvaWQgVGVzdDQzNTg3MzAoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMjAwMSwxMSwxMCk7CisgICAgICAgIERhdGUgdG9kYXkgPSBjYWwuZ2V0VGltZSgpOworICAgIAorICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKCJNTSBkIHkiKTsKKyAgICAgICAgbG9nbG4oc2RmLmZvcm1hdCh0b2RheSkpOworICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKCJNTSBkIHl5Iik7CisgICAgICAgIGxvZ2xuKHNkZi5mb3JtYXQodG9kYXkpKTsKKyAgICAKKyAgICAgICAgc2RmLmFwcGx5UGF0dGVybigiTU0gZCB5eXkiKTsKKyAgICAgICAgbG9nbG4oc2RmLmZvcm1hdCh0b2RheSkpOworICAgIAorICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKCJNTSBkIHl5eXkiKTsKKyAgICAgICAgbG9nbG4oc2RmLmZvcm1hdCh0b2RheSkpOworICAgIAorICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKCJNTSBkIHl5eXl5Iik7CisgICAgICAgIGxvZ2xuKHNkZi5mb3JtYXQodG9kYXkpKTsKKyAgICB9CisgICAgCisgICAgLy9QYXJzZSBpbnZhbGlkIHN0cmluZworICAgIHB1YmxpYyB2b2lkIFRlc3Q0Mzc1Mzk5KCkgeworICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVybiA9IG5ldyBTdHJpbmcoInl5eXkuTU0uZGQgRyAnYXQnIGhoOm1tOnNzIHoiKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBMb2NhbGUuSkFQQU4pOworICAgICAgICB0cnl7CisgICAgICAgICAgICBEYXRlIGN1cnJlbnRUaW1lID0gc2RmLnBhcnNlKCJ2Z2dmIDIwICAwMS4wIDkuMjkgYXAuIEouLUMuIGF0IDA1OjI2OjMzIEdNVCswODowMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgICAgIGlmKGN1cnJlbnRUaW1lID09bnVsbCkKKyAgICAgICAgICAgICAgICBsb2dsbigicGFyc2UgcmlnaHQiKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIFRlc3Q0NDA3MDQyKCkgeworICAgICAgICBEYXRlUGFyc2VUaHJlYWQgZDEgPSBuZXcgRGF0ZVBhcnNlVGhyZWFkKCk7CisgICAgICAgIERhdGVGb3JtYXRUaHJlYWQgZDIgPSBuZXcgRGF0ZUZvcm1hdFRocmVhZCgpOworICAgICAgICBkMS5zdGFydCgpOworICAgICAgICBkMi5zdGFydCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nbG4oInRlc3QiKTsKKyAgICAgICAgICAgIFRocmVhZC5zbGVlcCgxMDAwKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHt9CisgICAgfSovCisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdDQ0Njg2NjMoKSB7CisgICAgICAgIERhdGUgZCA9bmV3IERhdGUoLTkzNzE2NjcxMTE1NzY3bCk7CisgICAgICAgIFN0cmluZyBvcmlnaW5fZCA9IGQudG9TdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIHN0cjsKKyAgICAgICAgZmluYWwgU3RyaW5nIHBhdHRlcm4gPSBuZXcgU3RyaW5nKCJFRUVFLCBNTU1NIGQsIHl5eXkiKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuKTsKKworICAgICAgICBpZiAoc2RmLmdldFRpbWVab25lKCkudXNlRGF5bGlnaHRUaW1lKCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJvcmlnaW5hbCBkYXRlOiAiICsgb3JpZ2luX2QudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBzdHIgPSBzZGYuZm9ybWF0KGQpOworICAgICAgICAgICAgbG9nbG4oIiBhZnRlciBmb3JtYXQtLS0tLT4iICsgc3RyKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZCA9IHNkZi5wYXJzZShzdHIsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgYWZ0ZXIgcGFyc2UtLS0tLT4iICsgZC50b1N0cmluZygpKTsKKyAgICAKKyAgICAgICAgICAgIHN0ciA9IHNkZi5mb3JtYXQoZCk7CisgICAgICAgICAgICBsb2dsbigiIGFmdGVyIGZvcm1hdC0tLS0tPiIgKyBzdHIpOworICAgIAorICAgICAgICAgICAgZCA9IHNkZi5wYXJzZShzdHIsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgYWZ0ZXIgcGFyc2UtLS0tLT4iICsgZC50b1N0cmluZygpKTsKKyAgICAKKyAgICAgICAgICAgIHN0ciA9IHNkZi5mb3JtYXQoZCk7CisgICAgICAgICAgICBsb2dsbigiIGFmdGVyIGZvcm1hdC0tLS0tPiIgKyBzdHIpOyAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9DbGFzcyB1c2VkIGJ5IFRlc3Q0NDA3MDQyCisgICAgY2xhc3MgRGF0ZVBhcnNlVGhyZWFkIGV4dGVuZHMgVGhyZWFkIHsKKyAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgeworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgc2RmXy5jbG9uZSgpOworICAgICAgICAgICAgVGltZVpvbmUgZGVmYXVsdFRaID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgVGltZVpvbmUgUFNUID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICAgICAgaW50IGRlZmF1bHRPZmZzZXQgPSBkZWZhdWx0VFouZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgICAgICBpbnQgUFNUT2Zmc2V0ID0gUFNULmdldFJhd09mZnNldCgpOworICAgICAgICAgICAgaW50IG9mZnNldCA9IGRlZmF1bHRPZmZzZXQgLSBQU1RPZmZzZXQ7CisgICAgICAgICAgICBsb25nIG1zID0gVVRDX0xPTkcgLSBvZmZzZXQ7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaSA8IDEwMDAwKSB7CisgICAgICAgICAgICAgICAgICAgIERhdGUgZGF0ZSA9IHNkZi5wYXJzZShUSU1FX1NUUklORyk7CisgICAgICAgICAgICAgICAgICAgIGxvbmcgdCA9IGRhdGUuZ2V0VGltZSgpOworICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ICE9IG1zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFeGNlcHRpb24oIlBhcnNlIEVycm9yOiAiICsgaSArICIgKCIgKyBzZGYuZm9ybWF0KGRhdGUpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIikgIiArIHQgKyAiICE9ICIgKyBtcywgMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJwYXJzZSBlcnJvcjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL0NsYXNzIHVzZWQgYnkgVGVzdDQ0MDcwNDIKKyAgICBjbGFzcyBEYXRlRm9ybWF0VGhyZWFkIGV4dGVuZHMgVGhyZWFkIHsKKyAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgeyAgICAgICAgICAgIAorICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgc2RmXy5jbG9uZSgpOworICAgICAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgICAgICBzZGYuc2V0VGltZVpvbmUodHopOworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgd2hpbGUgKGkgPCAxMDAwMCkgeworICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IHNkZi5mb3JtYXQobmV3IERhdGUoVVRDX0xPTkcpKTsKKyAgICAgICAgICAgICAgICBpZiAoIXMuZXF1YWxzKFRJTUVfU1RSSU5HKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRm9ybWF0IEVycm9yOiAiICsgaSArICIgIiArIHMgKyAiICE9ICIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFRJTUVfU1RSSU5HKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSb3VuZFRyaXBUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRSb3VuZFRyaXBUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWY5NjY5NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YQpAQCAtMCwwICsxLDI2OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYxLjguMSA6IGZvcm1hdCA6IERhdGVGb3JtYXRSb3VuZFRyaXBUZXN0CisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9kdGZtdHJ0dHMuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworCisvKiogCisgKiBQZXJmb3JtcyByb3VuZC10cmlwIHRlc3RzIGZvciBEYXRlRm9ybWF0CisgKiovCitwdWJsaWMgY2xhc3MgRGF0ZUZvcm1hdFJvdW5kVHJpcFRlc3QgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgcHVibGljIGJvb2xlYW4gSU5GSU5JVEUgPSBmYWxzZTsKKyAgICBwdWJsaWMgYm9vbGVhbiBxdWljayA9IHRydWU7CisgICAgcHJpdmF0ZSBTaW1wbGVEYXRlRm9ybWF0IGRhdGVGb3JtYXQ7CisgICAgcHJpdmF0ZSBDYWxlbmRhciBnZXRGaWVsZENhbDsKKyAgICBwcml2YXRlIGludCBTUEFSU0VORVNTID0gMTg7CisgICAgcHJpdmF0ZSBpbnQgVFJJQUxTID0gNDsKKyAgICBwcml2YXRlIGludCBERVBUSCA9IDU7CisgICAgcHJpdmF0ZSBSYW5kb20gcmFuOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBEYXRlRm9ybWF0Um91bmRUcmlwVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdERhdGVGb3JtYXRSb3VuZFRyaXAoKSB7CisgICAgICAgIGRhdGVGb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRUVFIE1NTSBkZCBISDptbTpzcy5TU1Mgenp6IHl5eXkgRyIpOworICAgICAgICBnZXRGaWVsZENhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgcmFuID0gY3JlYXRlUmFuZG9tKCk7IC8vIHVzZSB0ZXN0IGZyYW1ld29yaydzIHJhbmRvbSBzZWVkCisKKyAgICAgICAgZmluYWwgTG9jYWxlW10gYXZhaWwgPSBEYXRlRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgaW50IGxvY0NvdW50ID0gYXZhaWwubGVuZ3RoOworICAgICAgICBsb2dsbigiRGF0ZUZvcm1hdCBhdmFpbGFibGUgbG9jYWxlczogIiArIGxvY0NvdW50KTsKKyAgICAgICAgaWYgKHF1aWNrKSB7CisgICAgICAgICAgICBpZiAobG9jQ291bnQgPiA1KQorICAgICAgICAgICAgICAgIGxvY0NvdW50ID0gNTsKKyAgICAgICAgICAgIGxvZ2xuKCJRdWljayBtb2RlOiBvbmx5IHRlc3RpbmcgZmlyc3QgNSBMb2NhbGVzIik7CisgICAgICAgIH0KKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIGxvZ2xuKCJEZWZhdWx0IFRpbWVab25lOiAgICAgICAgICAgICAiICsgdHouZ2V0SUQoKSk7CisgICAgCisgICAgICAgIGlmIChJTkZJTklURSkgeworICAgICAgICAgICAgLy8gU3BlY2lhbCBpbmZpbml0ZSBsb29wIHRlc3QgbW9kZSBmb3IgZmluZGluZyBoYXJkIHRvIHJlcHJvZHVjZSBlcnJvcnMKKyAgICAgICAgICAgIExvY2FsZSBsb2MgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgbG9nbG4oIkVOVEVSSU5HIElORklOSVRFIFRFU1QgTE9PUCBGT1IgTG9jYWxlOiAiICsgbG9jLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIF90ZXN0KGxvYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7ICAgICAgICAKKyAgICAgICAgICAgIF90ZXN0KExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NDb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgX3Rlc3QoYXZhaWxbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgc3R5bGVOYW1lKGludCBzKSB7CisgICAgICAgIHN3aXRjaCAocykgeworICAgICAgICAgICAgY2FzZSBEYXRlRm9ybWF0LlNIT1JUIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIlNIT1JUIjsKKyAgICAgICAgICAgIGNhc2UgRGF0ZUZvcm1hdC5NRURJVU0gOgorICAgICAgICAgICAgICAgIHJldHVybiAiTUVESVVNIjsKKyAgICAgICAgICAgIGNhc2UgRGF0ZUZvcm1hdC5MT05HIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkxPTkciOworICAgICAgICAgICAgY2FzZSBEYXRlRm9ybWF0LkZVTEwgOgorICAgICAgICAgICAgICAgIHJldHVybiAiRlVMTCI7CisgICAgICAgICAgICBkZWZhdWx0IDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIlVua25vd24iOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIF90ZXN0KExvY2FsZSBsb2MpIHsKKyAgICAgICAgaWYgKCFJTkZJTklURSkgeworICAgICAgICAgICAgbG9nbG4oIkxvY2FsZTogIiArIGxvYy5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUb3RhbCBwb3NzaWJpbGl0aWVzID0gMjQKKyAgICAgICAgLy8gIDQgZGF0ZQorICAgICAgICAvLyAgNCB0aW1lCisgICAgICAgIC8vICAxNiBkYXRlLXRpbWUKKyAgICAgICAgYm9vbGVhbltdIFRFU1RfVEFCTEUgPSBuZXcgYm9vbGVhblsyNF07CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IDI0OyArK2kpCisgICAgICAgICAgICBURVNUX1RBQkxFW2ldID0gdHJ1ZTsKKyAgICAKKyAgICAgICAgLy8gSWYgd2UgaGF2ZSBzb21lIHNwYXJzZW5lc3MsIGltcGxlbWVudCBpdCBoZXJlLiAgU3BhcnNlbmVzcyBkZWNyZWFzZXMKKyAgICAgICAgLy8gdGVzdCB0aW1lIGJ5IGVsaW1pbmF0aW5nIHNvbWUgdGVzdHMsIHVwIHRvIDIzLgorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgU1BBUlNFTkVTUzsgaSsrKSB7CisgICAgICAgICAgICBpbnQgcmFuZG9tID0gKGludCkgKHJhbi5uZXh0RG91YmxlKCkgKiAyNCk7CisgICAgICAgICAgICBpZiAocmFuZG9tID49IDAgJiYgcmFuZG9tIDwgMjQgJiYgVEVTVF9UQUJMRVtpXSkgeworICAgICAgICAgICAgICAgIFRFU1RfVEFCTEVbcmFuZG9tXSA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgIAorICAgICAgICAKKyAgICAgICAgaW50IGl0YWJsZSA9IDA7CisgICAgICAgIGludCBzdHlsZSA9IDA7CisgICAgICAgIGZvciAoc3R5bGUgPSBEYXRlRm9ybWF0LkZVTEw7IHN0eWxlIDw9IERhdGVGb3JtYXQuU0hPUlQ7ICsrc3R5bGUpIHsKKyAgICAgICAgICAgIGlmIChURVNUX1RBQkxFW2l0YWJsZSsrXSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHN0eWxlICIgKyBzdHlsZU5hbWUoc3R5bGUpKTsgCisgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKHN0eWxlLCBsb2MpOyAKKyAgICAgICAgICAgICAgICBfdGVzdChkZiwgZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGZvciAoc3R5bGUgPSBEYXRlRm9ybWF0LkZVTEw7IHN0eWxlIDw9IERhdGVGb3JtYXQuU0hPUlQ7ICsrc3R5bGUpIHsKKyAgICAgICAgICAgIGlmIChURVNUX1RBQkxFW2l0YWJsZSsrXSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHN0eWxlICIgKyBzdHlsZU5hbWUoc3R5bGUpKTsKKyAgICAgICAgICAgICAgICBEYXRlRm9ybWF0ICBkZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKHN0eWxlLCBsb2MpOyAKKyAgICAgICAgICAgICAgICBfdGVzdChkZiwgdHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZm9yIChpbnQgZHN0eWxlID0gRGF0ZUZvcm1hdC5GVUxMOyBkc3R5bGUgPD0gRGF0ZUZvcm1hdC5TSE9SVDsgKytkc3R5bGUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IHRzdHlsZSA9IERhdGVGb3JtYXQuRlVMTDsgdHN0eWxlIDw9IERhdGVGb3JtYXQuU0hPUlQ7ICsrdHN0eWxlKSB7CisgICAgICAgICAgICAgICAgaWYgKFRFU1RfVEFCTEVbaXRhYmxlKytdKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGRzdHlsZSAiICsgc3R5bGVOYW1lKGRzdHlsZSkgKyAiLCB0c3R5bGUgIiArIHN0eWxlTmFtZSh0c3R5bGUpKTsgCisgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoZHN0eWxlLCB0c3R5bGUsIGxvYyk7IAorICAgICAgICAgICAgICAgICAgICBfdGVzdChkZiwgZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBfdGVzdChEYXRlRm9ybWF0IGZtdCwgYm9vbGVhbiB0aW1lT25seSkgeworICAgIAorICAgICAgICBpZiAoIShmbXQgaW5zdGFuY2VvZiBTaW1wbGVEYXRlRm9ybWF0KSkgeworICAgICAgICAgICAgZXJybG4oIkRhdGVGb3JtYXQgd2Fzbid0IGEgU2ltcGxlRGF0ZUZvcm1hdCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyBwYXQgPSAoKFNpbXBsZURhdGVGb3JtYXQpIGZtdCkudG9QYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKHBhdCk7CisgICAgCisgICAgICAgIC8vIE5PVEUgVE8gTUFJTlRBSU5FUgorICAgICAgICAvLyBUaGlzIGluZGV4T2YgY2hlY2sgaW50byB0aGUgcGF0dGVybiBuZWVkcyB0byBiZSByZWZpbmVkIHRvIGlnbm9yZQorICAgICAgICAvLyBxdW90ZWQgY2hhcmFjdGVycy4gIEN1cnJlbnRseSwgdGhpcyBpc24ndCBhIHByb2JsZW0gd2l0aCB0aGUgbG9jYWxlCisgICAgICAgIC8vIHBhdHRlcm5zIHdlIGhhdmUsIGJ1dCBpdCBtYXkgYmUgYSBwcm9ibGVtIGxhdGVyLgorICAgIAorICAgICAgICBib29sZWFuIGhhc0VyYSA9IChwYXQuaW5kZXhPZigiRyIpICE9IC0xKTsKKyAgICAgICAgYm9vbGVhbiBoYXNab25lID0gKHBhdC5pbmRleE9mKCJaIikgIT0gLTEpIHx8IChwYXQuaW5kZXhPZigieiIpICE9IC0xKTsKKyAgICAKKyAgICAgICAgLy8gQmVjYXVzZSBwYXR0ZXJucyBjb250YWluIGluY29tcGxldGUgZGF0YSByZXByZXNlbnRpbmcgdGhlIERhdGUsCisgICAgICAgIC8vIHdlIG11c3QgYmUgY2FyZWZ1bCBvZiBob3cgd2UgZG8gdGhlIHJvdW5kdHJpcC4gIFdlIHN0YXJ0IHdpdGgKKyAgICAgICAgLy8gYSByYW5kb21seSBnZW5lcmF0ZWQgRGF0ZSBiZWNhdXNlIHRoZXkncmUgZWFzaWVyIHRvIGdlbmVyYXRlLgorICAgICAgICAvLyBGcm9tIHRoaXMgd2UgZ2V0IGEgc3RyaW5nLiAgVGhlIHN0cmluZyBpcyBvdXIgcmVhbCBzdGFydGluZyBwb2ludCwKKyAgICAgICAgLy8gYmVjYXVzZSB0aGlzIHN0cmluZyBzaG91bGQgcGFyc2UgdGhlIHNhbWUgd2F5IGFsbCB0aGUgdGltZS4gIE5vdGUKKyAgICAgICAgLy8gdGhhdCBpdCB3aWxsIG5vdCBuZWNlc3NhcmlseSBwYXJzZSBiYWNrIHRvIHRoZSBvcmlnaW5hbCBkYXRlIGJlY2F1c2UKKyAgICAgICAgLy8gb2YgaW5jb21wbGV0ZW5lc3MgaW4gcGF0dGVybnMuICBGb3IgZXhhbXBsZSwgYSB0aW1lLW9ubHkgcGF0dGVybiB3b24ndAorICAgICAgICAvLyBwYXJzZSBiYWNrIHRvIHRoZSBzYW1lIGRhdGUuCisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFRSSUFMUzsgKytpKSB7CisgICAgICAgICAgICAgICAgRGF0ZVtdIGQgPSBuZXcgRGF0ZVtERVBUSF07CisgICAgICAgICAgICAgICAgU3RyaW5nW10gcyA9IG5ldyBTdHJpbmdbREVQVEhdOworICAgIAorICAgICAgICAgICAgICAgIGRbMF0gPSBnZW5lcmF0ZURhdGUoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBXZSBnbyB0aHJvdWdoIHRoaXMgbG9vcCB1bnRpbCB3ZSBhY2hpZXZlIGEgbWF0Y2ggb3IgdW50aWwKKyAgICAgICAgICAgICAgICAvLyB0aGUgbWF4aW11bSBsb29wIGNvdW50IGlzIHJlYWNoZWQuICBXZSByZWNvcmQgdGhlIHBvaW50cyBhdAorICAgICAgICAgICAgICAgIC8vIHdoaWNoIHRoZSBkYXRlIGFuZCB0aGUgc3RyaW5nIHN0YXJ0cyB0byBtYXRjaC4gIE9uY2UgbWF0Y2hpbmcKKyAgICAgICAgICAgICAgICAvLyBzdGFydHMsIGl0IHNob3VsZCBjb250aW51ZS4KKyAgICAgICAgICAgICAgICBpbnQgbG9vcDsKKyAgICAgICAgICAgICAgICBpbnQgZG1hdGNoID0gMDsgLy8gZFtkbWF0Y2hdLmdldFRpbWUoKSA9PSBkW2RtYXRjaC0xXS5nZXRUaW1lKCkKKyAgICAgICAgICAgICAgICBpbnQgc21hdGNoID0gMDsgLy8gc1tzbWF0Y2hdLmVxdWFscyhzW3NtYXRjaC0xXSkKKyAgICAgICAgICAgICAgICBmb3IgKGxvb3AgPSAwOyBsb29wIDwgREVQVEg7ICsrbG9vcCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobG9vcCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRbbG9vcF0gPSBmbXQucGFyc2Uoc1tsb29wIC0gMV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIHNbbG9vcF0gPSBmbXQuZm9ybWF0KGRbbG9vcF0pOworICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAobG9vcCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzbWF0Y2ggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbWF0Y2ggPSBzW2xvb3BdLmVxdWFscyhzW2xvb3AgLSAxXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNtYXRjaCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNtYXRjaCA9IGxvb3A7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbWF0Y2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogU3RyaW5nIG1pc21hdGNoIGFmdGVyIG1hdGNoIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG1hdGNoID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB7c2ZifSB3YXRjaCBvdXQgaGVyZSwgdGhpcyBtaWdodCBub3Qgd29yaworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbWF0Y2ggPSBkW2xvb3BdLmdldFRpbWUoKSA9PSBkW2xvb3AgLSAxXS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRtYXRjaCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRtYXRjaCA9IGxvb3A7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbWF0Y2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRGF0ZSBtaXNtYXRjaCBhZnRlciBtYXRjaCIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNtYXRjaCAhPSAwICYmIGRtYXRjaCAhPSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgbG9vcCA9PSBERVBUSCBpZiB3ZSd2ZSBmYWlsZWQsIG90aGVyd2lzZSBsb29wIGlzIHRoZQorICAgICAgICAgICAgICAgIC8vIG1heChzbWF0Y2gsIGRtYXRjaCksIHRoYXQgaXMsIHRoZSBpbmRleCBhdCB3aGljaCB3ZSBoYXZlIHN0cmluZyBhbmQKKyAgICAgICAgICAgICAgICAvLyBkYXRlIG1hdGNoaW5nLgorICAgIAorICAgICAgICAgICAgICAgIC8vIERhdGUgdXN1YWxseSBtYXRjaGVzIGluIDIuICBFeGNlcHRpb25zIGhhbmRsZWQgYmVsb3cuCisgICAgICAgICAgICAgICAgaW50IG1heERtYXRjaCA9IDI7CisgICAgICAgICAgICAgICAgaW50IG1heFNtYXRjaCA9IDE7CisgICAgICAgICAgICAgICAgaWYgKGRtYXRjaCA+IG1heERtYXRjaCB8fCBzbWF0Y2ggPiBtYXhTbWF0Y2gpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9JZiB0aGUgRGF0ZSBpcyBCQworICAgICAgICAgICAgICAgICAgICBpZiAoIXRpbWVPbmx5ICYmICFoYXNFcmEgJiYgZ2V0RmllbGQoZFswXSwgQ2FsZW5kYXIuRVJBKSA9PSBHcmVnb3JpYW5DYWxlbmRhci5CQykgeworICAgICAgICAgICAgICAgICAgICAgICAgbWF4RG1hdGNoID0gMzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heFNtYXRjaCA9IDI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1pvbmUgJiYgKGZtdC5nZXRUaW1lWm9uZSgpLmluRGF5bGlnaHRUaW1lKGRbMF0pIHx8IGZtdC5nZXRUaW1lWm9uZSgpLmluRGF5bGlnaHRUaW1lKGRbMV0pICkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heFNtYXRjaCA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGltZU9ubHkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhEbWF0Y2ggPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZG1hdGNoID4gbWF4RG1hdGNoIHx8IHNtYXRjaCA+IG1heFNtYXRjaCkgeworICAgICAgICAgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFRUVFLCBNTU1NIGQsIHl5eXkgSEg6bW06c3MsIHogRyIsIExvY2FsZS5VUyk7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkRhdGUgPSAiICsgc2RmLmZvcm1hdChkWzBdKSArICI7IG1zID0gIiArIGRbMF0uZ2V0VGltZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkRtYXRjaDogIiArIGRtYXRjaCArICIgbWF4RDogIiArIG1heERtYXRjaCArICIgU21hdGNoOiIgKyBzbWF0Y2ggKyAiIG1heFM6IiArIG1heFNtYXRjaCk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQYXR0ZXJuOiAiICsgcGF0ICsgIiBmYWlsZWQgdG8gbWF0Y2giICsgIjsgbXMgPSAiICsgZFswXS5nZXRUaW1lKCkpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8PSBsb29wICYmIGogPCBERVBUSDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKChqID4gMCA/ICIgUD4gIiA6ICIgICAgIikgKyBkYXRlRm9ybWF0LmZvcm1hdChkW2pdLCB0ZW1wLCBwb3MpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBGPiAiICsgc1tqXSArIChqID4gMCAmJiBkW2pdLmdldFRpbWUoKSA9PSBkW2ogLSAxXS5nZXRUaW1lKCkgPyAiIGQ9PSIgOiAiIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChqID4gMCAmJiBzW2pdLmVxdWFscyhzW2ogLSAxXSkgPyAiIHM9PSIgOiAiIikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXhjZXB0aW9uOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgbG9nbG4oZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldEZpZWxkKERhdGUgZCwgaW50IGYpIHsKKyAgICAgICAgZ2V0RmllbGRDYWwuc2V0VGltZShkKTsKKyAgICAgICAgaW50IHJldCA9IGdldEZpZWxkQ2FsLmdldChmKTsgICAgCisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBEYXRlIGdlbmVyYXRlRGF0ZSgpIHsKKyAgICAgICAgZG91YmxlIGEgPSByYW4ubmV4dERvdWJsZSgpOworICAgICAgICAvLyBOb3cgJ2EnIHJhbmdlcyBmcm9tIDAuLjE7IHNjYWxlIGl0IHRvIHJhbmdlIGZyb20gMCB0byA4MDAwIHllYXJzCisgICAgICAgIGEgKj0gODAwMDsKKyAgICAgICAgLy8gUmFuZ2UgZnJvbSAoNDAwMC0xOTcwKSBCQyB0byAoODAwMC0xOTcwKSBBRAorICAgICAgICBhIC09IDQwMDA7CisgICAgICAgIC8vIE5vdyBzY2FsZSB1cCB0byBtcworICAgICAgICBhICo9IDM2NS4yNSAqIDI0ICogNjAgKiA2MCAqIDEwMDA7CisgICAgICAgIHJldHVybiBuZXcgRGF0ZSgobG9uZylhKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0RhdGVGb3JtYXRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTliNDZjNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvRGF0ZUZvcm1hdFRlc3QuamF2YQpAQCAtMCwwICsxLDI0MjkgQEAKKyAvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogRGF0ZUZvcm1hdFRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2R0Zm10dHN0LmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC4qOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIERhdGVGb3JtYXRUZXN0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgRGF0ZUZvcm1hdFRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8vIFRlc3Qgd3JpdHRlbiBieSBXYWxseSBXZWRlbCBhbmQgZW1haWxlZCB0byBtZS4KKyAgICBwdWJsaWMgdm9pZCBUZXN0V2FsbHlXZWRlbCgpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogSW5zdGFudGlhdGUgYSBUaW1lWm9uZSBzbyB3ZSBjYW4gZ2V0IHRoZSBpZHMuCisgICAgICAgICAqLworICAgICAgICAvL1RpbWVab25lIHR6ID0gbmV3IFNpbXBsZVRpbWVab25lKDcsICIiKTsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgICAgICAvKgorICAgICAgICAgKiBDb21wdXRhdGlvbmFsIHZhcmlhYmxlcy4KKyAgICAgICAgICovCisgICAgICAgIGludCBvZmZzZXQsIGhvdXJzLCBtaW51dGVzOworICAgICAgICAvKgorICAgICAgICAgKiBJbnN0YW50aWF0ZSBhIFNpbXBsZURhdGVGb3JtYXQgc2V0IHVwIHRvIHByb2R1Y2UgYSBmdWxsIHRpbWUKKyAgICAgICAgIHpvbmUgbmFtZS4KKyAgICAgICAgICovCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInp6enoiKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogQSBTdHJpbmcgYXJyYXkgZm9yIHRoZSB0aW1lIHpvbmUgaWRzLgorICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgZmluYWwgU3RyaW5nW10gaWRzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgIGludCBpZHNfbGVuZ3RoID0gaWRzLmxlbmd0aDsgLy93aGVuIGZpeGVkIHRoZSBidWcgc2hvdWxkIGNvbW1lbnQgaXQgb3V0CisgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIEhvdyBtYW55IGlkcyBkbyB3ZSBoYXZlPworICAgICAgICAgKi8KKyAgICAgICAgbG9nbG4oIlRpbWUgWm9uZSBJRHMgc2l6ZToiICsgaWRzX2xlbmd0aCk7CisgICAgICAgIC8qCisgICAgICAgICAqIENvbHVtbiBoZWFkaW5ncyAoc29ydCBvZikKKyAgICAgICAgICovCisgICAgICAgIGxvZ2xuKCJPcmRpbmFsIElEIG9mZnNldChoOm0pIG5hbWUiKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogTG9vcCB0aHJvdWdoIHRoZSB0enMuCisgICAgICAgICAqLworICAgICAgICBEYXRlIHRvZGF5ID0gbmV3IERhdGUoKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpZHNfbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGxvZ2xuKGkgKyAiICIgKyBpZHNbaV0pOworICAgICAgICAgICAgVGltZVpvbmUgdHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoaWRzW2ldKTsKKyAgICAgICAgICAgIC8vIG9mZnNldCA9IHR0ei5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lWm9uZSh0dHopOworICAgICAgICAgICAgY2FsLnNldFRpbWUodG9kYXkpOworICAgICAgICAgICAgb2Zmc2V0ID0gY2FsLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkgKyBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpOworICAgICAgICAgICAgLy8gbG9nbG4oaSArICIgIiArIGlkc1tpXSArICIgb2Zmc2V0ICIgKyBvZmZzZXQpOworICAgICAgICAgICAgU3RyaW5nIHNpZ24gPSAiKyI7CisgICAgICAgICAgICBpZiAob2Zmc2V0IDwgMCkgeworICAgICAgICAgICAgICAgIHNpZ24gPSAiLSI7CisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gLW9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGhvdXJzID0gb2Zmc2V0IC8gMzYwMDAwMDsKKyAgICAgICAgICAgIG1pbnV0ZXMgPSAob2Zmc2V0ICUgMzYwMDAwMCkgLyA2MDAwMDsKKyAgICAgICAgICAgIFN0cmluZyBkc3RPZmZzZXQgPSBzaWduICsgKGhvdXJzIDwgMTAgPyAiMCIgOiAiIikgKyBob3VycworICAgICAgICAgICAgICAgICAgICArICI6IiArIChtaW51dGVzIDwgMTAgPyAiMCIgOiAiIikgKyBtaW51dGVzOyAKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBJbnN0YW50aWF0ZSBhIGRhdGUgc28gd2UgY2FuIGRpc3BsYXkgdGhlIHRpbWUgem9uZSBuYW1lLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBzZGYuc2V0VGltZVpvbmUodHR6KTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBGb3JtYXQgdGhlIG91dHB1dC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGZtdE9mZnNldCA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmbXRPZmZzZXQgPSBzZGYuZm9ybWF0KHRvZGF5LCBmbXRPZmZzZXQsIHBvcyk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGxvZ2xuKCJFeGNlcHRpb246IiArIGUpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gVW5pY29kZVN0cmluZyBmbXRPZmZzZXQgPSB0elMudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIFN0cmluZyBmbXREc3RPZmZzZXQgPSBudWxsOworICAgICAgICAgICAgaWYgKGZtdE9mZnNldC50b1N0cmluZygpLnN0YXJ0c1dpdGgoIkdNVCIpKSB7CisgICAgICAgICAgICAgICAgLy9mbXREc3RPZmZzZXQgPSBmbXRPZmZzZXQuc3Vic3RyaW5nKDMpOworICAgICAgICAgICAgICAgIGZtdERzdE9mZnNldCA9IGZtdE9mZnNldC5zdWJzdHJpbmcoMywgZm10T2Zmc2V0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBTaG93IG91ciByZXN1bHQuCisgICAgICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgICAgIGJvb2xlYW4gb2sgPSBmbXREc3RPZmZzZXQgPT0gbnVsbCB8fCBmbXREc3RPZmZzZXQuZXF1YWxzKCIiKSB8fCBmbXREc3RPZmZzZXQuZXF1YWxzKGRzdE9mZnNldCk7CisgICAgICAgICAgICBpZiAob2spIHsKKyAgICAgICAgICAgICAgICBsb2dsbihpICsgIiAiICsgaWRzW2ldICsgIiAiICsgZHN0T2Zmc2V0ICsgIiAiCisgICAgICAgICAgICAgICAgICAgICAgKyBmbXRPZmZzZXQgKyAoZm10RHN0T2Zmc2V0ICE9IG51bGwgPyAiIG9rIiA6ICIgPyIpKTsgCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKGkgKyAiICIgKyBpZHNbaV0gKyAiICIgKyBkc3RPZmZzZXQgKyAiICIgKyBmbXRPZmZzZXQgKyAiICoqKiBGQUlMICoqKiIpOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXF1YWxzKCkgeworICAgICAgICBEYXRlRm9ybWF0IGZtdEEgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuRlVMTCk7IAorICAgICAgICBEYXRlRm9ybWF0IGZtdEIgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuRlVMTCk7IAorICAgICAgICBpZiAoIWZtdEEuZXF1YWxzKGZtdEIpKQorICAgICAgICAgICAgZXJybG4oIkZBSUwiKTsgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIHBhcnNpbmcgb2YgMi1kaWdpdCB5ZWFycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VHdvRGlnaXRZZWFyRFNUUGFyc2UoKSB7CisgICAgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZnVsbEZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFRUUgTU1NIGRkIEhIOm1tOnNzLlNTUyB6enogeXl5eSBHIik7IAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJkZC1NTU0teXkgaDptbTpzcyAnbycnY2xvY2snIGEgeiIsIExvY2FsZS5FTkdMSVNIKTsgCisgICAgICAgIFN0cmluZyBzID0gIjAzLUFwci0wNCAyOjIwOjQ3IG8nY2xvY2sgQU0gUFNUIjsKKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuLCBsb2NhbGUpIENvbnN0cnVjdCBhIFNpbXBsZURhdGVEYXRlRm9ybWF0IHVzaW5nCisgICAgICAgICAqIHRoZSBnaXZlbiBwYXR0ZXJuLCB0aGUgbG9jYWxlIGFuZCB1c2luZyB0aGUgVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgKiBTbyBpdCBuZWVkIHRvIGFkZCB0aGUgdGltZXpvbmUgb2Zmc2V0IG9uIGhvdXIgZmllbGQuIAorICAgICAgICAgKiBwcy4gdGhlIE1ldGhvZCBDYWxlbmRhci5nZXRUaW1lKCkgdXNlZCBieSBTaW1wbGVEYXRlRm9ybWF0LnBhcnNlKCkgYWx3YXlzIAorICAgICAgICAgKiByZXR1cm4gRGF0ZSB2YWx1ZSB3aXRoIFRpbWVab25lLmdldERlZmF1bHQoKSBbUmljaGFyZC9HQ0xdCisgICAgICAgICAqLworICAgICAgICAKKyAgICAgICAgVGltZVpvbmUgZGVmYXVsdFRaID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICBUaW1lWm9uZSBQU1QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIGludCBkZWZhdWx0T2Zmc2V0ID0gZGVmYXVsdFRaLmdldFJhd09mZnNldCgpOworICAgICAgICBpbnQgUFNUT2Zmc2V0ID0gUFNULmdldFJhd09mZnNldCgpOworICAgICAgICBpbnQgaG91ciA9IDIgKyAoZGVmYXVsdE9mZnNldCAtIFBTVE9mZnNldCkgLyAoNjAqNjAqMTAwMCk7CisgICAgICAgIC8vIGhvdXIgaXMgdGhlIGV4cGVjdGVkIGhvdXIgb2YgZGF5LCBpbiB1bml0cyBvZiBzZWNvbmRzCisgICAgICAgIGhvdXIgPSAoKGhvdXIgPCAwKSA/IGhvdXIgKyAyNCA6IGhvdXIpICogNjAqNjA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2Uocyk7CisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgY2FsLnNldFRpbWUoZCk7CisgICAgICAgICAgICAvL0RTVE9mZnNldAorICAgICAgICAgICAgaG91ciArPSBkZWZhdWx0VFouaW5EYXlsaWdodFRpbWUoZCkgPyAxIDogMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbG9nbG4ocyArICIgUD4gIiArICgoRGF0ZUZvcm1hdCkgZnVsbEZtdCkuZm9ybWF0KGQpKTsKKyAgICAgICAgICAgIC8vIGhyIGlzIHRoZSBhY3R1YWwgaG91ciBvZiBkYXksIGluIHVuaXRzIG9mIHNlY29uZHMKKyAgICAgICAgICAgIC8vIGFkanVzdCBmb3IgRFNUCisgICAgICAgICAgICBpbnQgaHIgPSBjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSAqIDYwKjYwIC0KKyAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpIC8gMTAwMDsKKyAgICAgICAgICAgIGlmIChociAhPSBob3VyKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBIb3VyICgtRFNUKSA9ICIgKyBociAvICg2MCo2MC4wKSsKKyAgICAgICAgICAgICAgICAgICAgICAiOyBleHBlY3RlZCAiICsgaG91ciAvICg2MCo2MC4wKSk7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJQYXJzZSBFcnJvcjoiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGF0IHJldHVybmVkIGZpZWxkIHBvc2l0aW9uIGluZGljZXMgYXJlIGNvcnJlY3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEZpZWxkUG9zaXRpb24oKSB7CisgICAgICAgIGludCBpLCBqLCBleHA7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy8gVmVyaWZ5IGRhdGEKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgcm9vdFN5bXMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMobmV3IExvY2FsZSgiIiwgIiIsICIiKSk7CisgICAgICAgIGFzc2VydEVxdWFscygicGF0dGVybkNoYXJzIiwgUEFUVEVSTl9DSEFSUywgcm9vdFN5bXMuZ2V0TG9jYWxQYXR0ZXJuQ2hhcnMoKSk7CisgICAgICAgIGFzc2VydFRydWUoIkRBVEVGT1JNQVRfRklFTERfTkFNRVMiLCBEQVRFRk9STUFUX0ZJRUxEX05BTUVTLmxlbmd0aCA9PSBEYXRlRm9ybWF0LkZJRUxEX0NPVU5UKTsKKyAgICAgICAgaWYoRGF0ZUZvcm1hdC5GSUVMRF9DT1VOVCAhPSBQQVRURVJOX0NIQVJTLmxlbmd0aCgpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgY29ycmVjdCB2YWx1ZSBmb3IgRGF0ZUZvcm1hdC5GSUVMRF9DT1VOVC4gRXhwZWN0ZWQ6ICAiKyBQQVRURVJOX0NIQVJTLmxlbmd0aCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENyZWF0ZSB0ZXN0IGZvcm1hdHRlcnMKKyAgICAgICAgZmluYWwgaW50IENPVU5UID0gNDsKKyAgICAgICAgRGF0ZUZvcm1hdFtdIGRhdGVGb3JtYXRzID0gbmV3IERhdGVGb3JtYXRbQ09VTlRdOworICAgICAgICBkYXRlRm9ybWF0c1swXSA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIERhdGVGb3JtYXQuRlVMTCwgTG9jYWxlLlVTKTsKKyAgICAgICAgZGF0ZUZvcm1hdHNbMV0gPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBEYXRlRm9ybWF0LkZVTEwsIExvY2FsZS5GUkFOQ0UpOworICAgICAgICAvLyBNYWtlIHRoZSBwYXR0ZXJuICJHIHkgTSBkLi4uIgorICAgICAgICBidWYuYXBwZW5kKFBBVFRFUk5fQ0hBUlMpOworICAgICAgICBmb3IgKGo9YnVmLmxlbmd0aCgpLTE7IGo+PTA7IC0taikgYnVmLmluc2VydChqLCAnICcpOworICAgICAgICBkYXRlRm9ybWF0c1syXSA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGJ1Zi50b1N0cmluZygpLCBMb2NhbGUuVVMpOworICAgICAgICAvLyBNYWtlIHRoZSBwYXR0ZXJuICJHR0dHIHl5eXkgTU1NTSBkZGRkLi4uIgorICAgICAgICBmb3IgKGo9YnVmLmxlbmd0aCgpLTE7IGo+PTA7IGotPTIpIHsKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPDM7ICsraSkgeworICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQoaiwgYnVmLmNoYXJBdChqKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZGF0ZUZvcm1hdHNbM10gPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChidWYudG9TdHJpbmcoKSwgTG9jYWxlLlVTKTsKKworICAgICAgICBEYXRlIGF1ZzEzID0gbmV3IERhdGUoKGxvbmcpIDg3MTUwODA1MjUxMy4wKTsKKworICAgICAgICAvLyBFeHBlY3RlZCBvdXRwdXQgZmllbGQgdmFsdWVzIGZvciBhYm92ZSBEYXRlRm9ybWF0cyBvbiBhdWcxMworICAgICAgICAvLyBGaWVsZHMgYXJlIGdpdmVuIGluIG9yZGVyIG9mIERhdGVGb3JtYXQgZmllbGQgbnVtYmVyCisgICAgICAgIGZpbmFsIFN0cmluZyBFWFBFQ1RFRFtdID0geworICAgICAgICAgICAgICIiLCAiMTk5NyIsICJBdWd1c3QiLCAiMTMiLCAiIiwgIiIsICIzNCIsICIxMiIsICIiLAorICAgICAgICAgICAgIldlZG5lc2RheSIsICIiLCAiIiwgIiIsICIiLCAiUE0iLCAiMiIsICIiLCAiUERUIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsIiIsIiIsCisKKyAgICAgICAgICAgICIiLCAiMTk5NyIsICJhb1x1MDBGQnQiLCAiMTMiLCAiIiwgIjE0IiwgIjM0IiwgIiIsICIiLAorICAgICAgICAgICAgIm1lcmNyZWRpIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICJIQVAgKFx1MDBDOVVBKSIsICIiLCAiIiwgIiIsICIiLCAiIiwgIiIsICIiLCIiLCIiLAorCisgICAgICAgICAgICAiQUQiLCAiMTk5NyIsICI4IiwgIjEzIiwgIjE0IiwgIjE0IiwgIjM0IiwgIjEyIiwgIjUiLAorICAgICAgICAgICAgIldlZCIsICIyMjUiLCAiMiIsICIzMyIsICIzIiwgIlBNIiwgIjIiLCAiMiIsICJQRFQiLCAiMTk5NyIsICI0IiwgIjE5OTciLCAiMjQ1MDY3NCIsICI1MjQ1MjUxMyIsICItMDcwMCIsICJQVCIsIjQiLCI4IiwKKworICAgICAgICAgICAgIkFubm8gRG9taW5pIiwgIjE5OTciLCAiQXVndXN0IiwgIjAwMTMiLCAiMDAxNCIsICIwMDE0IiwgIjAwMzQiLCAiMDAxMiIsICI1MTMwIiwKKyAgICAgICAgICAgICJXZWRuZXNkYXkiLCAiMDIyNSIsICIwMDAyIiwgIjAwMzMiLCAiMDAwMyIsICJQTSIsICIwMDAyIiwgIjAwMDIiLCAiUGFjaWZpYyBEYXlsaWdodCBUaW1lIiwgIjE5OTciLCAiMDAwNCIsICIxOTk3IiwgIjI0NTA2NzQiLCAiNTI0NTI1MTMiLCAiR01ULTA3OjAwIiwgIlBhY2lmaWMgVGltZSIsIldlZG5lc2RheSIsIkF1Z3VzdCIKKyAgICAgICAgfTsKKworICAgICAgICBhc3NlcnRUcnVlKCJkYXRhIHNpemUiLCBFWFBFQ1RFRC5sZW5ndGggPT0gQ09VTlQgKiBEYXRlRm9ybWF0LkZJRUxEX0NPVU5UKTsKKworICAgICAgICBUaW1lWm9uZSBQVCA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisgICAgICAgIGZvciAoaiA9IDAsIGV4cCA9IDA7IGogPCBDT1VOVDsgKytqKSB7CisgICAgICAgICAgLy8gIFN0cmluZyBzdHI7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gZGF0ZUZvcm1hdHNbal07CisgICAgICAgICAgICBkZi5zZXRUaW1lWm9uZShQVCk7CisgICAgICAgICAgICBsb2dsbigiIFBhdHRlcm4gPSAiICsgKChTaW1wbGVEYXRlRm9ybWF0KSBkZikudG9QYXR0ZXJuKCkpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBsb2dsbigiICBSZXN1bHQgPSAiICsgZGYuZm9ybWF0KGF1ZzEzKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgZSk7CisgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IERhdGVGb3JtYXQuRklFTERfQ09VTlQ7ICsraSwgKytleHApIHsKKyAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKGkpOworICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgZGYuZm9ybWF0KGF1ZzEzLCBidWYsIHBvcyk7ICAgIAorICAgICAgICAgICAgICAgIFN0cmluZyBmaWVsZCA9IGJ1Zi5zdWJzdHJpbmcocG9zLmdldEJlZ2luSW5kZXgoKSwgcG9zLmdldEVuZEluZGV4KCkpOworICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygiZmllbGQgIyIgKyBpICsgIiAiICsgREFURUZPUk1BVF9GSUVMRF9OQU1FU1tpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNURURbZXhwXSwgZmllbGQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIFRoaXMgTVVTVCBiZSBrZXB0IGluIHN5bmMgd2l0aCBEYXRlRm9ybWF0U3ltYm9scy5wYXR0ZXJuQ2hhcnMuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBQQVRURVJOX0NIQVJTID0gIkd5TWRrSG1zU0VERndXYWhLellldWdBWnZjTCI7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEEgbGlzdCBvZiB0aGUgbmFtZXMgb2YgYWxsIHRoZSBmaWVsZHMgaW4gRGF0ZUZvcm1hdC4KKyAgICAgKiBUaGlzIE1VU1QgYmUga2VwdCBpbiBzeW5jIHdpdGggRGF0ZUZvcm1hdC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEVGT1JNQVRfRklFTERfTkFNRVNbXSA9IHsKKyAgICAgICAgIkVSQV9GSUVMRCIsCisgICAgICAgICJZRUFSX0ZJRUxEIiwKKyAgICAgICAgIk1PTlRIX0ZJRUxEIiwKKyAgICAgICAgIkRBVEVfRklFTEQiLAorICAgICAgICAiSE9VUl9PRl9EQVkxX0ZJRUxEIiwKKyAgICAgICAgIkhPVVJfT0ZfREFZMF9GSUVMRCIsCisgICAgICAgICJNSU5VVEVfRklFTEQiLAorICAgICAgICAiU0VDT05EX0ZJRUxEIiwKKyAgICAgICAgIk1JTExJU0VDT05EX0ZJRUxEIiwKKyAgICAgICAgIkRBWV9PRl9XRUVLX0ZJRUxEIiwKKyAgICAgICAgIkRBWV9PRl9ZRUFSX0ZJRUxEIiwKKyAgICAgICAgIkRBWV9PRl9XRUVLX0lOX01PTlRIX0ZJRUxEIiwKKyAgICAgICAgIldFRUtfT0ZfWUVBUl9GSUVMRCIsCisgICAgICAgICJXRUVLX09GX01PTlRIX0ZJRUxEIiwKKyAgICAgICAgIkFNX1BNX0ZJRUxEIiwKKyAgICAgICAgIkhPVVIxX0ZJRUxEIiwKKyAgICAgICAgIkhPVVIwX0ZJRUxEIiwKKyAgICAgICAgIlRJTUVaT05FX0ZJRUxEIiwKKyAgICAgICAgIllFQVJfV09ZX0ZJRUxEIiwKKyAgICAgICAgIkRPV19MT0NBTF9GSUVMRCIsCisgICAgICAgICJFWFRFTkRFRF9ZRUFSX0ZJRUxEIiwKKyAgICAgICAgIkpVTElBTl9EQVlfRklFTEQiLAorICAgICAgICAiTUlMTElTRUNPTkRTX0lOX0RBWV9GSUVMRCIsCisgICAgICAgICJUSU1FWk9ORV9SRkNfRklFTEQiLAorICAgICAgICAiR0VORVJJQ19USU1FWk9ORV9GSUVMRCIsCisgICAgICAgICJTVEFORF9BTE9ORV9EQVlfRklFTEQiLAorICAgICAgICAiU1RBTkRfQUxPTkVfTU9OVEhfRklFTEQiLAorICAgIH07CisgICAgCisgICAgLyoqCisgICAgICogR2VuZXJhbCBwYXJzZS9mb3JtYXQgdGVzdHMuICBBZGQgdGVzdCBjYXNlcyBhcyBuZWVkZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEdlbmVyYWwoKSB7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgInl5eXkgTU0gZGQgSEg6bW06c3MuU1NTIiwKKworICAgICAgICAgICAgLy8gTWlsbGlzZWNvbmRzIGFyZSBsZWZ0LWp1c3RpZmllZCwgc2luY2UgdGhleSBmb3JtYXQgYXMgZnJhY3Rpb25zIG9mIGEgc2Vjb25kCisgICAgICAgICAgICAvLyBCb3RoIGZvcm1hdCBhbmQgcGFyc2Ugc2hvdWxkIHJvdW5kIEhBTEZfVVAKKyAgICAgICAgICAgICJ5L00vZCBIOm1tOnNzLlMiLCAiZnAiLCAiMjAwNCAwMyAxMCAxNjozNjozMS41NjciLCAiMjAwNC8zLzEwIDE2OjM2OjMxLjYiLCAiMjAwNCAwMyAxMCAxNjozNjozMS42MDAiLAorICAgICAgICAgICAgInkvTS9kIEg6bW06c3MuU1MiLCAiZnAiLCAiMjAwNCAwMyAxMCAxNjozNjozMS41NjciLCAiMjAwNC8zLzEwIDE2OjM2OjMxLjU3IiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEuNTcwIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tOnNzLlNTUyIsICJGIiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEuNTY3IiwgIjIwMDQvMy8xMCAxNjozNjozMS41NjciLAorICAgICAgICAgICAgInkvTS9kIEg6bW06c3MuU1NTUyIsICJwZiIsICIyMDA0LzMvMTAgMTY6MzY6MzEuNTY3OSIsICIyMDA0IDAzIDEwIDE2OjM2OjMxLjU2OCIsICIyMDA0LzMvMTAgMTY6MzY6MzEuNTY4MCIsCisgICAgICAgIH07CisgICAgICAgIGV4cGVjdChEQVRBLCBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIikpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RHZW5lcmljVGltZSgpIHsKKyAgICAgICAgaWYgKFN5c3RlbS5nZXRTZWN1cml0eU1hbmFnZXIoKSAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyAhISEgaWYgd2UncmUgcnVubmluZyB1bmRlciBhIHNlY3VyaXR5IG1hbmFnZXIsIEpES1RpbWVab25lIHdvbid0IHJldHVybiB0aGUgcmlnaHQKKyAgICAgICAgICAgIC8vIGRzdCBvZmZzZXQgdmFsdWVzIGZvciB1cyBpbiBhIGZldyBjYXNlcyBhcm91bmQgdGhlIERTVCBjaGFuZ2VvdmVyLCBzbyBpZ25vcmUgdGhpcyB0ZXN0LgorICAgICAgICAgICAgd2FybmxuKCJjYW5ub3QgcGFzcyB1bmRlciBzZWN1cml0eSBtYW5hZ2VyIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBhbnkgem9uZSBwYXR0ZXJuIHNob3VsZCBwYXJzZSBhbnkgem9uZQorICAgICAgICBMb2NhbGUgZW4gPSBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIik7CisgICAgICAgIFN0cmluZyBaREFUQVtdID0geworICAgICAgICAgICAgInl5eXkgTU0gZGQgSEg6bW0genp6IiwKKyAgICAgICAgICAgIC8vIHJvdW5kIHRyaXAKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHp6enoiLCAiRiIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICIyMDA0LzEvMSAxOjAwIFBhY2lmaWMgU3RhbmRhcmQgVGltZSIsCisgICAgICAgICAgICAieS9NL2QgSDptbSB6enoiLCAiRiIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICIyMDA0LzEvMSAxOjAwIFBTVCIsCisgICAgICAgICAgICAieS9NL2QgSDptbSB2dnZ2IiwgIkYiLCAiMjAwNCAwMSAwMSAwMTowMCBQU1QiLCAiMjAwNC8xLzEgMTowMCBQYWNpZmljIFRpbWUiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0gdnZ2IiwgIkYiLCAiMjAwNCAwMSAwMSAwMTowMCBQU1QiLCAiMjAwNC8xLzEgMTowMCBQVCIsCisgICAgICAgICAgICAvLyBub24tZ2VuZXJpYyB0aW1lem9uZSBzdHJpbmcgaW5mbHVlbmNlcyBkc3Qgb2Zmc2V0IGV2ZW4gaWYgd3JvbmcgZm9yIGRhdGUvdGltZQorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDQvMS8xIDE6MDAgUERUIiwgIjIwMDQgMDEgMDEgMDE6MDAgUERUIiwgIjIwMDQvMS8xIDA6MDAgUFNUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHZ2dnYiLCAicGYiLCAiMjAwNC8xLzEgMTowMCBQRFQiLCAiMjAwNCAwMSAwMSAwMTowMCBQRFQiLCAiMjAwNC8xLzEgMDowMCBQYWNpZmljIFRpbWUiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDQvNy8xIDE6MDAgUFNUIiwgIjIwMDQgMDcgMDEgMDI6MDAgUERUIiwgIjIwMDQvNy8xIDI6MDAgUERUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHZ2dnYiLCAicGYiLCAiMjAwNC83LzEgMTowMCBQU1QiLCAiMjAwNCAwNyAwMSAwMjowMCBQRFQiLCAiMjAwNC83LzEgMjowMCBQYWNpZmljIFRpbWUiLAorICAgICAgICAgICAgLy8gZ2VuZXJpYyB0aW1lem9uZSBnZW5lcmF0ZXMgZHN0IG9mZnNldCBhcHByb3ByaWF0ZSBmb3IgbG9jYWwgdGltZQorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDQvMS8xIDE6MDAgUFQiLCAiMjAwNCAwMSAwMSAwMTowMCBQU1QiLCAiMjAwNC8xLzEgMTowMCBQU1QiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0gdnZ2diIsICJwZiIsICIyMDA0LzEvMSAxOjAwIFBUIiwgIjIwMDQgMDEgMDEgMDE6MDAgUFNUIiwgIjIwMDQvMS8xIDE6MDAgUGFjaWZpYyBUaW1lIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHp6eiIsICJwZiIsICIyMDA0LzcvMSAxOjAwIFBUIiwgIjIwMDQgMDcgMDEgMDE6MDAgUERUIiwgIjIwMDQvNy8xIDE6MDAgUERUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHZ2dnYiLCAicGYiLCAiMjAwNC83LzEgMTowMCBQVCIsICIyMDA0IDA3IDAxIDAxOjAwIFBEVCIsICIyMDA0LzcvMSAxOjAwIFBhY2lmaWMgVGltZSIsCisgICAgICAgICAgICAvLyBkYXlsaWdodCBzYXZpbmdzIHRpbWUgdHJhbnNpdGlvbiBlZGdlIGNhc2VzLgorICAgICAgICAgICAgLy8gdGltZSB0byBwYXJzZSBkb2VzIG5vdCByZWFsbHkgZXhpc3QsIFBUIGludGVycHJldGVkIGFzIGVhcmxpZXIgdGltZQorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDUvNC8zIDI6MzAgUFQiLCAiMjAwNSAwNCAwMyAwMTozMCBQU1QiLCAiMjAwNS80LzMgMTozMCBQU1QiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDUvNC8zIDI6MzAgUFNUIiwgIjIwMDUgMDQgMDMgMDM6MzAgUERUIiwgIjIwMDUvNC8zIDM6MzAgUERUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHp6eiIsICJwZiIsICIyMDA1LzQvMyAyOjMwIFBEVCIsICIyMDA1IDA0IDAzIDAxOjMwIFBTVCIsICIyMDA1LzQvMyAxOjMwIFBTVCIsCisgICAgICAgICAgICAieS9NL2QgSDptbSB2IiwgInBmIiwgIjIwMDUvNC8zIDI6MzAgUFQiLCAiMjAwNSAwNCAwMyAwMTozMCBQU1QiLCAiMjAwNS80LzMgMTozMCBQVCIsCisgICAgICAgICAgICAieS9NL2QgSDptbSB2IiwgInBmIiwgIjIwMDUvNC8zIDI6MzAgUFNUIiwgIjIwMDUgMDQgMDMgMDM6MzAgUERUIiwgIjIwMDUvNC8zIDM6MzAgUFQiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0gdiIsICJwZiIsICIyMDA1LzQvMyAyOjMwIFBEVCIsICIyMDA1IDA0IDAzIDAxOjMwIFBTVCIsICIyMDA1LzQvMyAxOjMwIFBUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIiwgInBmIiwgIjIwMDUvNC8zIDI6MzAiLCAiMjAwNSAwNCAwMyAwMTozMCBQU1QiLCAiMjAwNS80LzMgMTozMCIsCisgICAgICAgICAgICAvLyB0aW1lIHRvIHBhcnNlIGlzIGFtYmlndW91cywgUFQgaW50ZXJwcmV0ZWQgYXMgZWFybGllciB0aW1lICg/KQorICAgICAgICAgICAgInkvTS9kIEg6bW0genp6IiwgInBmIiwgIjIwMDUvNC8zIDE6MzAgUFQiLCAiMjAwNSAwNCAwMyAwMTozMCBQU1QiLCAiMjAwNS80LzMgMTozMCBQU1QiLAorICAgICAgICAgICAgInkvTS9kIEg6bW0gdiIsICJwZiIsICIyMDA1LzQvMyAxOjMwIFBUIiwgIjIwMDUgMDQgMDMgIDAxOjMwIFBTVCIsICIyMDA1LzQvMyAxOjMwIFBUIiwKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIiwgInBmIiwgIjIwMDUvNC8zIDE6MzAgUFQiLCAiMjAwNSAwNCAwMyAwMTozMCBQU1QiLCAiMjAwNS80LzMgMTozMCIsCisgICAgICAgICAgICAKKyAgICAgICAgICAgICAieS9NL2QgSDptbSB6enoiLCAicGYiLCAiMjAwNC8xMC8zMSAxOjMwIFBUIiwgIjIwMDQgMTAgMzEgMDE6MzAgUFNUIiwgIjIwMDQvMTAvMzEgMTozMCBQU1QiLAorICAgICAgICAgICAgICJ5L00vZCBIOm1tIHp6eiIsICJwZiIsICIyMDA0LzEwLzMxIDE6MzAgUFNUIiwgIjIwMDQgMTAgMzEgMDE6MzAgUFNUIiwgIjIwMDQvMTAvMzEgMTozMCBQU1QiLAorICAgICAgICAgICAgICJ5L00vZCBIOm1tIHp6eiIsICJwZiIsICIyMDA0LzEwLzMxIDE6MzAgUERUIiwgIjIwMDQgMTAgMzEgMDE6MzAgUERUIiwgIjIwMDQvMTAvMzEgMTozMCBQRFQiLAorICAgICAgICAgICAgICJ5L00vZCBIOm1tIHYiLCAicGYiLCAiMjAwNC8xMC8zMSAxOjMwIFBUIiwgIjIwMDQgMTAgMzEgMDE6MzAgUFNUIiwgIjIwMDQvMTAvMzEgMTozMCBQVCIsCisgICAgICAgICAgICAgInkvTS9kIEg6bW0gdiIsICJwZiIsICIyMDA0LzEwLzMxIDE6MzAgUFNUIiwgIjIwMDQgMTAgMzEgMDE6MzAgUFNUIiwgIjIwMDQvMTAvMzEgMTozMCBQVCIsCisgICAgICAgICAgICAgInkvTS9kIEg6bW0gdiIsICJwZiIsICIyMDA0LzEwLzMxIDE6MzAgUERUIiwgIjIwMDQgMTAgMzEgMDE6MzAgUERUIiwgIjIwMDQvMTAvMzEgMTozMCBQVCIsCisgICAgICAgICAgICAgInkvTS9kIEg6bW0iLCAicGYiLCAiMjAwNC8xMC8zMSAxOjMwIiwgIjIwMDQgMTAgMzEgMDE6MzAgUFNUIiwgIjIwMDQvMTAvMzEgMTozMCIsCisgICAgICAgIH07CisgICAgICAgIGV4cGVjdChaREFUQSwgZW4pOworCisgICAgICAgIGxvZ2xuKCJjcm9zcyBmb3JtYXQvcGFyc2UgdGVzdHMiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIGJhc2VwYXQgPSAieXkvTU0vZGQgSDptbSAiOworICAgICAgICBmaW5hbCBTaW1wbGVEYXRlRm9ybWF0W10gZm9ybWF0cyA9IHsgCisgICAgICAgICAgICBuZXcgU2ltcGxlRGF0ZUZvcm1hdChiYXNlcGF0ICsgInZ2diIsIGVuKSwKKyAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KGJhc2VwYXQgKyAidnZ2diIsIGVuKSwKKyAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlRm9ybWF0KGJhc2VwYXQgKyAienp6IiwgZW4pLAorICAgICAgICAgICAgbmV3IFNpbXBsZURhdGVGb3JtYXQoYmFzZXBhdCArICJ6enp6IiwgZW4pCisgICAgICAgIH07CisKKyAgICAgICAgZmluYWwgU2ltcGxlRGF0ZUZvcm1hdCB1bml2ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXkgTU0gZGQgSEg6bW0genp6IiwgZW4pOworICAgICAgICBmaW5hbCBTdHJpbmdbXSB0aW1lcyA9IHsgIjIwMDQgMDEgMDIgMDM6MDQgUFNUIiwgIjIwMDQgMDcgMDggMDk6MTAgUERUIiB9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRpbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IHVuaXYucGFyc2UodGltZXNbaV0pOworICAgICAgICAgICAgICAgIGxvZ2xuKCJ0aW1lOiAiICsgZCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBmb3JtYXRzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZXN0ID0gZm9ybWF0c1tqXS5mb3JtYXQoZCk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJ0ZXN0OiAnIiArIHRlc3QgKyAiJyIpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGZvcm1hdHMubGVuZ3RoOyArK2spIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZSB0ID0gZm9ybWF0c1trXS5wYXJzZSh0ZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWQuZXF1YWxzKHQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmb3JtYXQgIiArIGsgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpbmNvcnJlY3RseSBwYXJzZWQgb3V0cHV0IG9mIGZvcm1hdCAiICsgaiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICgiICsgdGVzdCArICIpLCByZXR1cm5lZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdCArICIgaW5zdGVhZCBvZiAiICsgZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oImZvcm1hdCAiICsgayArICIgcGFyc2VkIG9rIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiZm9ybWF0ICIgKyBrICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBjb3VsZCBub3QgcGFyc2Ugb3V0cHV0IG9mIGZvcm1hdCAiICsgaiArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKCIgKyB0ZXN0ICsgIikiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInVuaXYgY291bGQgbm90IHBhcnNlOiAiICsgdGltZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2VuZXJpY1RpbWVab25lT3JkZXIoKSB7CisgICAgICAgIC8vIGdlbmVyaWMgdGltZXMgc2hvdWxkIHBhcnNlIHRoZSBzYW1lIG5vIG1hdHRlciB3aGF0IHRoZSBwbGFjZW1lbnQgb2YgdGhlIHRpbWUgem9uZSBzdHJpbmcKKyAgICAgICAgLy8gc2hvdWxkIHdvcmsgZm9yIHN0YW5kYXJkIGFuZCBkYXlsaWdodCB0aW1lcworCisgICAgICAgIFN0cmluZyBYREFUQVtdID0geworICAgICAgICAgICAgInl5eXkgTU0gZGQgSEg6bW0genp6IiwKKyAgICAgICAgICAgIC8vIHN0YW5kYXJkIHRpbWUsIGV4cGxpY2l0IGRheWxpZ2h0L3N0YW5kYXJkCisgICAgICAgICAgICAieS9NL2QgSDptbSB6enoiLCAicGYiLCAiMjAwNC8xLzEgMTowMCBQVCIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICIyMDA0LzEvMSAxOjAwIFBTVCIsCisgICAgICAgICAgICAieS9NL2Qgenp6IEg6bW0iLCAicGYiLCAiMjAwNC8xLzEgUFQgMTowMCIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICIyMDA0LzEvMSBQU1QgMTowMCIsCisgICAgICAgICAgICAienp6IHkvTS9kIEg6bW0iLCAicGYiLCAiUFQgMjAwNC8xLzEgMTowMCIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICJQU1QgMjAwNC8xLzEgMTowMCIsCisKKyAgICAgICAgICAgIC8vIHN0YW5kYXJkIHRpbWUsIGdlbmVyaWMKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHZ2dnYiLCAicGYiLCAiMjAwNC8xLzEgMTowMCBQVCIsICIyMDA0IDAxIDAxIDAxOjAwIFBTVCIsICIyMDA0LzEvMSAxOjAwIFBhY2lmaWMgVGltZSIsCisgICAgICAgICAgICAieS9NL2QgdnZ2diBIOm1tIiwgInBmIiwgIjIwMDQvMS8xIFBUIDE6MDAiLCAiMjAwNCAwMSAwMSAwMTowMCBQU1QiLCAiMjAwNC8xLzEgUGFjaWZpYyBUaW1lIDE6MDAiLAorICAgICAgICAgICAgInZ2dnYgeS9NL2QgSDptbSIsICJwZiIsICJQVCAyMDA0LzEvMSAxOjAwIiwgIjIwMDQgMDEgMDEgMDE6MDAgUFNUIiwgIlBhY2lmaWMgVGltZSAyMDA0LzEvMSAxOjAwIiwKKworICAgICAgICAgICAgLy8gZGF5bGlnaHQgdGltZSwgZXhwbGljaXQgZGF5bGlnaHQvc3RhbmRhcmQKKyAgICAgICAgICAgICJ5L00vZCBIOm1tIHp6eiIsICJwZiIsICIyMDA0LzcvMSAxOjAwIFBUIiwgIjIwMDQgMDcgMDEgMDE6MDAgUERUIiwgIjIwMDQvNy8xIDE6MDAgUERUIiwKKyAgICAgICAgICAgICJ5L00vZCB6enogSDptbSIsICJwZiIsICIyMDA0LzcvMSBQVCAxOjAwIiwgIjIwMDQgMDcgMDEgMDE6MDAgUERUIiwgIjIwMDQvNy8xIFBEVCAxOjAwIiwKKyAgICAgICAgICAgICJ6enogeS9NL2QgSDptbSIsICJwZiIsICJQVCAyMDA0LzcvMSAxOjAwIiwgIjIwMDQgMDcgMDEgMDE6MDAgUERUIiwgIlBEVCAyMDA0LzcvMSAxOjAwIiwKKworICAgICAgICAgICAgLy8gZGF5bGlnaHQgdGltZSwgZ2VuZXJpYworICAgICAgICAgICAgInkvTS9kIEg6bW0gdnZ2diIsICJwZiIsICIyMDA0LzcvMSAxOjAwIFBUIiwgIjIwMDQgMDcgMDEgMDE6MDAgUERUIiwgIjIwMDQvNy8xIDE6MDAgUGFjaWZpYyBUaW1lIiwKKyAgICAgICAgICAgICJ5L00vZCB2dnZ2IEg6bW0iLCAicGYiLCAiMjAwNC83LzEgUFQgMTowMCIsICIyMDA0IDA3IDAxIDAxOjAwIFBEVCIsICIyMDA0LzcvMSBQYWNpZmljIFRpbWUgMTowMCIsCisgICAgICAgICAgICAidnZ2diB5L00vZCBIOm1tIiwgInBmIiwgIlBUIDIwMDQvNy8xIDE6MDAiLCAiMjAwNCAwNyAwMSAwMTowMCBQRFQiLCAiUGFjaWZpYyBUaW1lIDIwMDQvNy8xIDE6MDAiLAorICAgICAgICB9OworICAgICAgICBMb2NhbGUgZW4gPSBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIik7CisgICAgICAgIGV4cGVjdChYREFUQSwgZW4pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUaW1lWm9uZURpc3BsYXlOYW1lKCkgeworICAgICAgICBDYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAgICAgbG9uZyBqdWx5RGF0ZSA9IG5ldyBEYXRlKDIwMDQsIDYsIDE1KS5nZXRUaW1lKCk7CisgICAgICAgIGxvbmcgamFudWFyeURhdGUgPSBuZXcgRGF0ZSgyMDA0LCAwLCAxNSkuZ2V0VGltZSgpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmFsbGJhY2tUZXN0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nW10gaW5mbyA9IGZhbGxiYWNrVGVzdHNbaV07CisgICAgICAgICAgICBsb2dsbihpbmZvWzBdICsgIjsiICsgaW5mb1sxXSArICI7IiArIGluZm9bMl0gKyAiOyIgKyBpbmZvWzNdKTsKKworICAgICAgICAgICAgVUxvY2FsZSBsID0gbmV3IFVMb2NhbGUoaW5mb1swXSk7CisgICAgICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKGluZm9bMV0pOworICAgICAgICAgICAgbG9uZyB0aW1lID0gaW5mb1syXS5lcXVhbHMoIjIwMDQtMDctMTVUMDA6MDA6MDBaIikgCisgICAgICAgICAgICAgICAgPyBqdWx5RGF0ZSAKKyAgICAgICAgICAgICAgICA6IGphbnVhcnlEYXRlOworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChpbmZvWzNdLCBsKTsKKyAgICAgICAgICAgIGNhbC5zZXRUaW1lSW5NaWxsaXModGltZSk7CisgICAgICAgICAgICBjYWwuc2V0VGltZVpvbmUodHopOworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGZtdC5mb3JtYXQoY2FsKTsKKyAgICAgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhpbmZvWzRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKGluZm9bMF0gKyAiOyIgKyBpbmZvWzFdICsgIjsiICsgaW5mb1syXSArICI7IiArIGluZm9bM10gKyAiIGV4cGVjdGVkOiAnIiArIAorICAgICAgICAgICAgICAgICAgICAgIGluZm9bNF0gKyAiJyBidXQgZ290OiAnIiArIHJlc3VsdCArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIGZhbGxiYWNrVGVzdHMgID0geworICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA4MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDg6MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJQU1QiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA3MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDc6MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJQRFQiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlBhY2lmaWMgRGF5bGlnaHQgVGltZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiUFQiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlBhY2lmaWMgVGltZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJlbl9HQiIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMTI6MDA6MDBaIiwgInoiLCAiUFNUIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIC8qIEpESyAxLjUgZG9lc24ndCBzdXBwb3J0IHRoaXMgdGltZSB6b25lIGlkCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiQnVlbm9zIEFpcmVzIChBcmdlbnRpbmEpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJCdWVub3MgQWlyZXMgKEFyZ2VudGluYSkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisgICAgICAgICovCisKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJCdWVub3MgQWlyZXMgKEFyZ2VudGluYSkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiQnVlbm9zIEFpcmVzIChBcmdlbnRpbmEpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA1OjAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNTowMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDU6MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA0OjAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNDowMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDQ6MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiQ3ViYSIsICJBbWVyaWNhL0hhdmFuYSIgfSwKKyAgICAgICAgeyAiZW4iLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJDdWJhIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorCisgICAgICAgIC8qIGlibSBKREsgMS40LjEgZG9lc24ndCBzdXBwb3J0IHRoaXMgdGltZXpvbmUgaWQKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlN5ZG5leSAoQXVzdHJhbGlhKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiU3lkbmV5IChBdXN0cmFsaWEpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgICovCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJTeWRuZXkgKEF1c3RyYWxpYSkiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKyAgICAgICAgeyAiZW4iLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlN5ZG5leSAoQXVzdHJhbGlhKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorCisgICAgICAgIHsgImVuIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCswMDowMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdyZWVud2ljaCBNZWFuIFRpbWUiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCswMTowMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkJTVCIsICJFdXJvcGUvTG9uZG9uIiB9LAorICAgICAgICB7ICJlbiIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiQnJpdGlzaCBTdW1tZXIgVGltZSIsICJFdXJvcGUvTG9uZG9uIiB9LAorICAgIC8vIGljdSBlbi50eHQgaGFzIGV4ZW1wbGFyIGNpdHkgZm9yIHRoaXMgdGltZSB6b25lCisgICAgICAgIHsgImVuIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJVbml0ZWQgS2luZ2RvbSIsICJFdXJvcGUvTG9uZG9uIiB9LAorICAgICAgICB7ICJlbiIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiVW5pdGVkIEtpbmdkb20iLCAiRXVyb3BlL0xvbmRvbiIgfSwKKworICAgICAgICAvKiBpYm0gSkRLIDEuNC4yIGRvZXNuJ3Qgc3VwcG9ydCB0aGlzIHRpbWV6b25lIGlkCisgICAgICAgIHsgImVuIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImVuIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZW4iLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJlbiIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgICovCisKKyAgICAvLyA9PT09PT09PT09CisKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wODAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA4OjAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTA4OjAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTA4OjAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA3MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDc6MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDc6MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDc6MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJMb3MgQW5nZWxlcyAoVmVyZWluaWd0ZSBTdGFhdGVuKSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiTG9zIEFuZ2VsZXMgKFZlcmVpbmlndGUgU3RhYXRlbikiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKworICAgICAgICAvKiBKREsgMS41IGRvZXNuJ3Qgc3VwcG9ydCB0aGlzIHRpbWUgem9uZSBpZAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkJ1ZW5vcyBBaXJlcyAoQXJnZW50aW5pZW4pIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJCdWVub3MgQWlyZXMgKEFyZ2VudGluaWVuKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgKi8KKworICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkJ1ZW5vcyBBaXJlcyAoQXJnZW50aW5pZW4pIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkJ1ZW5vcyBBaXJlcyAoQXJnZW50aW5pZW4pIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA1OjAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNTowMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDU6MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA0OjAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNDowMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDQ6MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiS3ViYSIsICJBbWVyaWNhL0hhdmFuYSIgfSwKKyAgICAgICAgeyAiZGUiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJLdWJhIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorICAgICAgICAvLyBhZGRlZCB0byB0ZXN0IHByb3BlciBmYWxsYmFjayBvZiBjb3VudHJ5IG5hbWUKKyAgICAgICAgeyAiZGVfQ0giLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJLdWJhIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorICAgICAgICB7ICJkZV9DSCIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkt1YmEiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisKKyAgICAgICAgLyogaWJtIEpESyAxLjQuMSBkb2Vzbid0IHN1cHBvcnQgdGhpcyB0aW1lem9uZSBpZAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiU3lkbmV5IChBdXN0cmFsaWVuKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiU3lkbmV5IChBdXN0cmFsaWVuKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICAqLworCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJTeWRuZXkgKEF1c3RyYWxpZW4pIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgIHsgImRlIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJTeWRuZXkgKEF1c3RyYWxpZW4pIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisKKyAgICAgICAgeyAiZGUiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzAwOjAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzAwOjAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzAwOjAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDE6MDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDE6MDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDE6MDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJWZXJlaW5pZ3RlcyBLXHUwMGY2bmlncmVpY2giLCAiRXVyb3BlL0xvbmRvbiIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlZlcmVpbmlndGVzIEtcdTAwZjZuaWdyZWljaCIsICJFdXJvcGUvTG9uZG9uIiB9LAorCisgICAgICAgIC8qIGlibSBKREsgMS40LjIgZG9lc24ndCBzdXBwb3J0IHRoaXMgdGltZXpvbmUgaWQKKyAgICAgICAgeyAiZGUiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiZGUiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJkZSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImRlIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgKi8KKyAgICAvLyA9PT09PT09PT09CisKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wODAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA4MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJQU1QiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1NTkyYVx1NWU3M1x1NmQwYlx1NjgwN1x1NTFjNlx1NjVmNlx1OTVmNCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA3MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDcwMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIlBEVCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHU1OTJhXHU1ZTczXHU2ZDBiXHU1OTBmXHU0ZWU0XHU2NWY2XHU5NWY0IiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgLy8gaWN1IHpoLnR4dCBoYXMgZXhlbXBsYXIgY2l0eSBmb3IgdGhpcyB0aW1lIHpvbmUKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1NmQxYlx1Njc0OVx1NzdmNiAoXHU3ZjhlXHU1NmZkKSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHU2ZDFiXHU2NzQ5XHU3N2Y2IChcdTdmOGVcdTU2ZmQpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisKKyAgICAgICAgLyogSkRLIDEuNSBkb2Vzbid0IHN1cHBvcnQgdGhpcyB0aW1lIHpvbmUgaWQKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgIC8vIGljdSB6aC50eHQgZG9lcyBub3QgaGF2ZSBpbmZvIGZvciB0aGlzIHRpbWUgem9uZQorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTVFMDNcdTVCOUNcdThCRkFcdTY1QUZcdTgyN0VcdTUyMjlcdTY1QUYgKFx1OTYzZlx1NjgzOVx1NWVmNykiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1NUUwM1x1NUI5Q1x1OEJGQVx1NjVBRlx1ODI3RVx1NTIyOVx1NjVBRiAoXHU5NjNmXHU2ODM5XHU1ZWY3KSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgKi8KKworICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgIC8vIGljdSB6aC50eHQgZG9lcyBub3QgaGF2ZSBpbmZvIGZvciB0aGlzIHRpbWUgem9uZQorICAgICAgICB7ICJ6aCIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1NUUwM1x1NUI5Q1x1OEJGQVx1NjVBRlx1ODI3RVx1NTIyOVx1NjVBRiAoXHU5NjNmXHU2ODM5XHU1ZWY3KSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTVFMDNcdTVCOUNcdThCRkFcdTY1QUZcdTgyN0VcdTUyMjlcdTY1QUYgKFx1OTYzZlx1NjgzOVx1NWVmNykiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTUzZTRcdTVkZjQiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisgICAgICAgIHsgInpoIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHU1M2U0XHU1ZGY0IiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorCisgICAgICAgIC8qIGlibSBKREsgMS40LjEgZG9lc24ndCBzdXBwb3J0IHRoaXMgdGltZXpvbmUgaWQKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAvLyBpY3UgemgudHh0IGRvZXMgbm90IGhhdmUgaW5mbyBmb3IgdGhpcyB0aW1lIHpvbmUKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1NjA4OVx1NUMzQyAoXHU2ZmIzXHU1OTI3XHU1MjI5XHU0ZTlhKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJ6aCIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHU2MDg5XHU1QzNDIChcdTZmYjNcdTU5MjdcdTUyMjlcdTRlOWEpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgICovCisKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1NjA4OVx1NUMzQyAoXHU2ZmIzXHU1OTI3XHU1MjI5XHU0ZTlhKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJ6aCIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHU2MDg5XHU1QzNDIChcdTZmYjNcdTU5MjdcdTUyMjlcdTRlOWEpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisKKyAgICAgICAgeyAiemgiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzAwMDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTgyZjFcdTU2ZmQiLCAiRXVyb3BlL0xvbmRvbiIgfSwKKyAgICAgICAgeyAiemgiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1ODJmMVx1NTZmZCIsICJFdXJvcGUvTG9uZG9uIiB9LAorCisgICAgICAgIC8qIGlibSBKREsgMS40LjIgZG9lc24ndCBzdXBwb3J0IHRoaXMgdGltZXpvbmUgaWQKKyAgICAgICAgeyAiemgiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgInpoIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJ6aCIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiemgiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgICovCisKKyAgICAvLyA9PT09PT09PT09CisKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wODAwIiwgIi04OjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULVx1MDk2Nlx1MDk2ZTpcdTA5NjZcdTA5NjYiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtXHUwOTY2XHUwOTZlOlx1MDk2Nlx1MDk2NiIsICItODowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC1cdTA5NjZcdTA5NmU6XHUwOTY2XHUwOTY2IiwgIi04OjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA3MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtXHUwOTY2XHUwOTZkOlx1MDk2Nlx1MDk2NiIsICItNzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC1cdTA5NjZcdTA5NmQ6XHUwOTY2XHUwOTY2IiwgIi03OjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULVx1MDk2Nlx1MDk2ZDpcdTA5NjZcdTA5NjYiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJMb3MgQW5nZWxlcyAoXHUwOTM4XHUwOTAyXHUwOTJmXHUwOTQxXHUwOTE1XHUwOTRkXHUwOTI0IFx1MDkzMFx1MDkzZVx1MDkxY1x1MDk0ZFx1MDkyZiBcdTA5MDVcdTA5MmVcdTA5MzBcdTA5M2ZcdTA5MTVcdTA5M2UpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJMb3MgQW5nZWxlcyAoXHUwOTM4XHUwOTAyXHUwOTJmXHUwOTQxXHUwOTE1XHUwOTRkXHUwOTI0IFx1MDkzMFx1MDkzZVx1MDkxY1x1MDk0ZFx1MDkyZiBcdTA5MDVcdTA5MmVcdTA5MzBcdTA5M2ZcdTA5MTVcdTA5M2UpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisKKyAgICAgICAgLyogSkRLIDEuNSBkb2Vzbid0IHN1cHBvcnQgdGhpcyB0aW1lIHpvbmUgaWQKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULVx1MDk2Nlx1MDk2OTpcdTA5NjZcdTA5NjYiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULVx1MDk2Nlx1MDk2OTpcdTA5NjZcdTA5NjYiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJCdWVub3MgQWlyZXMgKFx1MDkwNVx1MDkzMFx1MDk0ZFx1MDkxY1x1MDk0N1x1MDkyOFx1MDk0ZFx1MDkxZlx1MDk0MFx1MDkyOFx1MDkzZSkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkJ1ZW5vcyBBaXJlcyAoXHUwOTA1XHUwOTMwXHUwOTRkXHUwOTFjXHUwOTQ3XHUwOTI4XHUwOTRkXHUwOTFmXHUwOTQwXHUwOTI4XHUwOTNlKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgKi8KKworICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkJ1ZW5vcyBBaXJlcyAoXHUwOTA1XHUwOTMwXHUwOTRkXHUwOTFjXHUwOTQ3XHUwOTI4XHUwOTRkXHUwOTFmXHUwOTQwXHUwOTI4XHUwOTNlKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJCdWVub3MgQWlyZXMgKFx1MDkwNVx1MDkzMFx1MDk0ZFx1MDkxY1x1MDk0N1x1MDkyOFx1MDk0ZFx1MDkxZlx1MDk0MFx1MDkyOFx1MDkzZSkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtXHUwOTY2XHUwOTZiOlx1MDk2Nlx1MDk2NiIsICItNTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtXHUwOTY2XHUwOTZiOlx1MDk2Nlx1MDk2NiIsICItNTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtXHUwOTY2XHUwOTZiOlx1MDk2Nlx1MDk2NiIsICItNTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtXHUwOTY2XHUwOTZhOlx1MDk2Nlx1MDk2NiIsICItNDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtXHUwOTY2XHUwOTZhOlx1MDk2Nlx1MDk2NiIsICItNDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtXHUwOTY2XHUwOTZhOlx1MDk2Nlx1MDk2NiIsICItNDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTA5MTVcdTA5NGRcdTA5MmZcdTA5NDJcdTA5MmNcdTA5M2UiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisgICAgICAgIHsgImhpIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUwOTE1XHUwOTRkXHUwOTJmXHUwOTQyXHUwOTJjXHUwOTNlIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorCisgICAgICAgIC8qIGlibSBKREsgMS40LjEgZG9lc24ndCBzdXBwb3J0IHRoaXMgdGltZXpvbmUgaWQKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCtcdTA5NjdcdTA5Njc6XHUwOTY2XHUwOTY2IiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCtcdTA5NjdcdTA5Njc6XHUwOTY2XHUwOTY2IiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCtcdTA5NjdcdTA5Njc6XHUwOTY2XHUwOTY2IiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCtcdTA5NjdcdTA5NjY6XHUwOTY2XHUwOTY2IiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCtcdTA5NjdcdTA5NjY6XHUwOTY2XHUwOTY2IiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCtcdTA5NjdcdTA5NjY6XHUwOTY2XHUwOTY2IiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlN5ZG5leSAoXHUwOTExXHUwOTM4XHUwOTRkXHUwOTFmXHUwOTRkXHUwOTMwXHUwOTQ3XHUwOTMyXHUwOTNmXHUwOTJmXHUwOTNlKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiU3lkbmV5IChcdTA5MTFcdTA5MzhcdTA5NGRcdTA5MWZcdTA5NGRcdTA5MzBcdTA5NDdcdTA5MzJcdTA5M2ZcdTA5MmZcdTA5M2UpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgICovCisKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCtcdTA5NjdcdTA5Njc6XHUwOTY2XHUwOTY2IiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCtcdTA5NjdcdTA5Njc6XHUwOTY2XHUwOTY2IiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCtcdTA5NjdcdTA5Njc6XHUwOTY2XHUwOTY2IiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCtcdTA5NjdcdTA5NjY6XHUwOTY2XHUwOTY2IiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCtcdTA5NjdcdTA5NjY6XHUwOTY2XHUwOTY2IiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCtcdTA5NjdcdTA5NjY6XHUwOTY2XHUwOTY2IiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlN5ZG5leSAoXHUwOTExXHUwOTM4XHUwOTRkXHUwOTFmXHUwOTRkXHUwOTMwXHUwOTQ3XHUwOTMyXHUwOTNmXHUwOTJmXHUwOTNlKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJoaSIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiU3lkbmV5IChcdTA5MTFcdTA5MzhcdTA5NGRcdTA5MWZcdTA5NGRcdTA5MzBcdTA5NDdcdTA5MzJcdTA5M2ZcdTA5MmZcdTA5M2UpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisKKyAgICAgICAgeyAiaGkiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UK1x1MDk2Nlx1MDk2NjpcdTA5NjZcdTA5NjYiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrXHUwOTY2XHUwOTY2Olx1MDk2Nlx1MDk2NiIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCtcdTA5NjZcdTA5NjY6XHUwOTY2XHUwOTY2IiwgIiswOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrXHUwOTY2XHUwOTY3Olx1MDk2Nlx1MDk2NiIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCtcdTA5NjZcdTA5Njc6XHUwOTY2XHUwOTY2IiwgIisxOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UK1x1MDk2Nlx1MDk2NzpcdTA5NjZcdTA5NjYiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJHQiIsICJFdXJvcGUvTG9uZG9uIiB9LAorICAgICAgICB7ICJoaSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiR0IiLCAiRXVyb3BlL0xvbmRvbiIgfSwKKworICAgICAgICAvKiBpYm0gSkRLIDEuNC4yIGRvZXNuJ3Qgc3VwcG9ydCB0aGlzIHRpbWV6b25lIGlkCisgICAgICAgIHsgImhpIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULVx1MDk2Nlx1MDk2OTpcdTA5NjZcdTA5NjYiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULVx1MDk2Nlx1MDk2OTpcdTA5NjZcdTA5NjYiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJoaSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtXHUwOTY2XHUwOTY5Olx1MDk2Nlx1MDk2NiIsICItMzowMCIgfSwKKyAgICAgICAgeyAiaGkiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiR01ULVx1MDk2Nlx1MDk2OTpcdTA5NjZcdTA5NjYiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImhpIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkdNVC1cdTA5NjZcdTA5Njk6XHUwOTY2XHUwOTY2IiwgIi0zOjAwIiB9LAorICAgICAgICAqLworICAgIC8vID09PT09PT09PT0KKworICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA4MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDgwMCIsICItODowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlBTVCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDIyXHUwNDM4XHUwNDQ1XHUwNDNlXHUwNDNlXHUwNDNhXHUwNDM1XHUwNDMwXHUwNDNkXHUwNDQxXHUwNDNhXHUwNDMwIFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzZVx1MDQzMlx1MDQzMCBcdTA0MzdcdTA0M2VcdTA0M2RcdTA0MzAiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wNzAwIiwgIi03OjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3LTA3MDAiLCAiLTc6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJQRFQiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQyMlx1MDQzOFx1MDQ0NVx1MDQzZVx1MDQzZVx1MDQzYVx1MDQzNVx1MDQzMFx1MDQzZFx1MDQ0MVx1MDQzYVx1MDQzMCBcdTA0M2JcdTA0NGZcdTA0NDJcdTA0M2RcdTA0MzAgXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNlXHUwNDMyXHUwNDMwIFx1MDQzN1x1MDQzZVx1MDQzZFx1MDQzMCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgIC8vIGljdSBiZy50eHQgaGFzIGV4ZW1wbGFyIGNpdHkgZm9yIHRoaXMgdGltZSB6b25lCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTA0MWJcdTA0M2VcdTA0NDEgXHUwNDEwXHUwNDNkXHUwNDM2XHUwNDM1XHUwNDNiXHUwNDM4XHUwNDQxIChcdTA0MjFcdTA0MTBcdTA0MjkpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTA0MWJcdTA0M2VcdTA0NDEgXHUwNDEwXHUwNDNkXHUwNDM2XHUwNDM1XHUwNDNiXHUwNDM4XHUwNDQxIChcdTA0MjFcdTA0MTBcdTA0MjkpIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisKKyAgICAgICAgLyogSkRLIDEuNSBkb2Vzbid0IHN1cHBvcnQgdGhpcyB0aW1lIHpvbmUgaWQKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgIC8vIGljdSBiZy50eHQgZG9lcyBub3QgaGF2ZSBpbmZvIGZvciB0aGlzIHRpbWUgem9uZQorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJCdWVub3MgQWlyZXMgKFx1MDQxMFx1MDQ0MFx1MDQzNlx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzOFx1MDQzZFx1MDQzMCkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkJ1ZW5vcyBBaXJlcyAoXHUwNDEwXHUwNDQwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDM4XHUwNDNkXHUwNDMwKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgKi8KKworICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgIC8vIGljdSBiZy50eHQgZG9lcyBub3QgaGF2ZSBpbmZvIGZvciB0aGlzIHRpbWUgem9uZQorICAgICAgICB7ICJiZyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkJ1ZW5vcyBBaXJlcyAoXHUwNDEwXHUwNDQwXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDQyXHUwNDM4XHUwNDNkXHUwNDMwKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJCdWVub3MgQWlyZXMgKFx1MDQxMFx1MDQ0MFx1MDQzNlx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzOFx1MDQzZFx1MDQzMCkiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiIH0sCisKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDUwMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDQwMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTA0MWFcdTA0NDNcdTA0MzFcdTA0MzAiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisgICAgICAgIHsgImJnIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUwNDFhXHUwNDQzXHUwNDMxXHUwNDMwIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorCisgICAgICAgIC8qIGlibSBKREsgMS40LjEgZG9lc24ndCBzdXBwb3J0IHRoaXMgdGltZXpvbmUgaWQKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMDAwIiwgIisxMDowMCIgfSwKKyAgICAvLyBpY3UgYmcudHh0IGRvZXMgbm90IGhhdmUgaW5mbyBmb3IgdGhpcyB0aW1lIHpvbmUKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlN5ZG5leSAoXHUwNDEwXHUwNDMyXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNiXHUwNDM4XHUwNDRmKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiU3lkbmV5IChcdTA0MTBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2JcdTA0MzhcdTA0NGYpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgICovCisKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NysxMDAwIiwgIisxMDowMCIgfSwKKyAgICAvLyBpY3UgYmcudHh0IGRvZXMgbm90IGhhdmUgaW5mbyBmb3IgdGhpcyB0aW1lIHpvbmUKKyAgICAgICAgeyAiYmciLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlN5ZG5leSAoXHUwNDEwXHUwNDMyXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNiXHUwNDM4XHUwNDRmKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorICAgICAgICB7ICJiZyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiU3lkbmV5IChcdTA0MTBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M2JcdTA0MzhcdTA0NGYpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisKKyAgICAgICAgeyAiYmciLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3KzAwMDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDcrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NyswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDcrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0NyswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3KzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTA0MWVcdTA0MzFcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzVcdTA0M2RcdTA0M2UgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDNiXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDNlIiwgIkV1cm9wZS9Mb25kb24iIH0sCisgICAgICAgIHsgImJnIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTA0MWVcdTA0MzFcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzVcdTA0M2RcdTA0M2UgXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDNiXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDNlIiwgIkV1cm9wZS9Mb25kb24iIH0sCisKKyAgICAgICAgLyogaWJtIEpESyAxLjQuMiBkb2Vzbid0IHN1cHBvcnQgdGhpcyB0aW1lem9uZSBpZAorICAgICAgICB7ICJiZyIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYmciLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHUwNDEzXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNkXHUwNDQzXHUwNDM4XHUwNDQ3LTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImJnIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MDQxM1x1MDQ0MFx1MDQzOFx1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzOFx1MDQ0Ny0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJiZyIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTA0MTNcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M2RcdTA0NDNcdTA0MzhcdTA0NDctMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgKi8KKworICAgIC8vID09PT09PT09PT0KKworICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA4MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDgwMCIsICItODowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIlBTVCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiXHU1OTJhXHU1ZTczXHU2ZDBiXHU2YTE5XHU2ZTk2XHU2NjQyIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDcwMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wNzAwIiwgIi03OjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiUERUIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJcdTU5MmFcdTVlNzNcdTZkMGJcdTU5MGZcdTY2NDJcdTk1OTMiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAvLyBpY3UgamEudHh0IGhhcyBleGVtcGxhciBjaXR5IGZvciB0aGlzIHRpbWUgem9uZQorICAgIC8vIHdlIHVzZSB0aGUgcmVnaW9uIGZvcm1hdCBmb3IgdGhpcyBjYXNlLCBhbmQgc28gYXBwZW5kIFx1NjY0Mlx1OTU5MyB0byB0aGUgcmVzdWx0LCBpLmUuIHRoaXMgdHJhbnNsYXRlcyBhcyAiTG9zIEFuZ2VsZXMgVGltZSIKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MzBlZFx1MzBiNVx1MzBmM1x1MzBiY1x1MzBlYlx1MzBiOSAoXHUzMEEyXHUzMEUxXHUzMEVBXHUzMEFCXHU1NDA4XHU4ODQ2XHU1NkZEKVx1NjY0Mlx1OTU5MyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUzMGVkXHUzMGI1XHUzMGYzXHUzMGJjXHUzMGViXHUzMGI5IChcdTMwQTJcdTMwRTFcdTMwRUFcdTMwQUJcdTU0MDhcdTg4NDZcdTU2RkQpXHU2NjQyXHU5NTkzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiIH0sCisKKyAgICAgICAgLyogSkRLIDEuNSBkb2Vzbid0IHN1cHBvcnQgdGhpcyB0aW1lIHpvbmUgaWQKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgIC8vIGljdSBqYS50eHQgZG9lcyBub3QgaGF2ZSBpbmZvIGZvciB0aGlzIHRpbWUgem9uZQorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTMwQTJcdTMwRTFcdTMwRUFcdTMwQUIvXHUzMEQ2XHUzMEE4XHUzMENFXHUzMEI5XHUzMEEyXHUzMEE0XHUzMEVDXHUzMEI5IChcdTMwYTJcdTMwZWJcdTMwYmNcdTMwZjNcdTMwYzFcdTMwZjMpXHU2NjQyXHU5NTkzIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTMwQTJcdTMwRTFcdTMwRUFcdTMwQUIvXHUzMEQ2XHUzMEE4XHUzMENFXHUzMEI5XHUzMEEyXHUzMEE0XHUzMEVDXHUzMEI5IChcdTMwYTJcdTMwZWJcdTMwYmNcdTMwZjNcdTMwYzFcdTMwZjMpXHU2NjQyXHU5NTkzIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICAqLworCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgLy8gaWN1IGphLnR4dCBkb2VzIG5vdCBoYXZlIGluZm8gZm9yIHRoaXMgdGltZSB6b25lCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUzMEEyXHUzMEUxXHUzMEVBXHUzMEFCL1x1MzBENlx1MzBBOFx1MzBDRVx1MzBCOVx1MzBBMlx1MzBBNFx1MzBFQ1x1MzBCOSAoXHUzMGEyXHUzMGViXHUzMGJjXHUzMGYzXHUzMGMxXHUzMGYzKVx1NjY0Mlx1OTU5MyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgeyAiamEiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTMwQTJcdTMwRTFcdTMwRUFcdTMwQUIvXHUzMEQ2XHUzMEE4XHUzMENFXHUzMEI5XHUzMEEyXHUzMEE0XHUzMEVDXHUzMEI5IChcdTMwYTJcdTMwZWJcdTMwYmNcdTMwZjNcdTMwYzFcdTMwZjMpXHU2NjQyXHU5NTkzIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiXHUzMGFkXHUzMGU1XHUzMGZjXHUzMGQwXHU2NjQyXHU5NTkzIiwgIkFtZXJpY2EvSGF2YW5hIiB9LAorICAgICAgICB7ICJqYSIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1MzBhZFx1MzBlNVx1MzBmY1x1MzBkMFx1NjY0Mlx1OTU5MyIsICJBbWVyaWNhL0hhdmFuYSIgfSwKKworICAgICAgICAvKiBpYm0gSkRLIDEuNC4xIGRvZXNuJ3Qgc3VwcG9ydCB0aGlzIHRpbWV6b25lIGlkCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTEwMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTAwMCIsICIrMTA6MDAiIH0sCisgICAgLy8gaWN1IGphLnR4dCBkb2VzIG5vdCBoYXZlIGluZm8gZm9yIHRoaXMgdGltZSB6b25lCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidiIsICJcdTMwQUFcdTMwRkNcdTMwQjlcdTMwQzhcdTMwRTlcdTMwRUFcdTMwQTIvXHUzMEI3XHUzMEM5XHUzMENCXHUzMEZDIChcdTMwYWFcdTMwZmNcdTMwYjlcdTMwYzhcdTMwZTlcdTMwZWFcdTMwYTIpXHU2NjQyXHU5NTkzIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgIHsgImphIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJcdTMwQUFcdTMwRkNcdTMwQjlcdTMwQzhcdTMwRTlcdTMwRUFcdTMwQTIvXHUzMEI3XHUzMEM5XHUzMENCXHUzMEZDIChcdTMwYWFcdTMwZmNcdTMwYjlcdTMwYzhcdTMwZTlcdTMwZWFcdTMwYTIpXHU2NjQyXHU5NTkzIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgICovCisKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCsxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MzBBQVx1MzBGQ1x1MzBCOVx1MzBDOFx1MzBFOVx1MzBFQVx1MzBBMi9cdTMwQjdcdTMwQzlcdTMwQ0JcdTMwRkMgKFx1MzBhYVx1MzBmY1x1MzBiOVx1MzBjOFx1MzBlOVx1MzBlYVx1MzBhMilcdTY2NDJcdTk1OTMiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKyAgICAgICAgeyAiamEiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlx1MzBBQVx1MzBGQ1x1MzBCOVx1MzBDOFx1MzBFOVx1MzBFQVx1MzBBMi9cdTMwQjdcdTMwQzlcdTMwQ0JcdTMwRkMgKFx1MzBhYVx1MzBmY1x1MzBiOVx1MzBjOFx1MzBlOVx1MzBlYVx1MzBhMilcdTY2NDJcdTk1OTMiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKworICAgICAgICB7ICJqYSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzAwMDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCswMDAwIiwgIiswOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzAwMDAiLCAiKzA6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICIrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzAxMDAiLCAiKzE6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMDEwMCIsICIrMTowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlx1MzBhNFx1MzBhZVx1MzBlYVx1MzBiOVx1NjY0Mlx1OTU5MyIsICJFdXJvcGUvTG9uZG9uIiB9LAorICAgICAgICB7ICJqYSIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiXHUzMGE0XHUzMGFlXHUzMGVhXHUzMGI5XHU2NjQyXHU5NTkzIiwgIkV1cm9wZS9Mb25kb24iIH0sCisKKyAgICAgICAgLyogaWJtIEpESyAxLjQuMiBkb2Vzbid0IHN1cHBvcnQgdGhpcyB0aW1lem9uZSBpZAorICAgICAgICB7ICJqYSIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiamEiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImphIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkdNVC0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJqYSIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJHTVQtMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgKi8KKworICAgIC8vID09PT09PT09PT0KKworICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA4MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWlpaWiIsICJHTVQtMDg6MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDg6MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDg6MDAiLCAiLTg6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAiWiIsICItMDcwMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wNzowMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNzowMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wNzowMCIsICItNzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkxvcyBBbmdlbGVzIChVUykiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkxvcyBBbmdlbGVzIChVUykiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIgfSwKKworICAgICAgICAvKiBKREsgMS41IGRvZXNuJ3Qgc3VwcG9ydCB0aGlzIHRpbWUgem9uZSBpZAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkJ1ZW5vcyBBaXJlcyAoQVIpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJCdWVub3MgQWlyZXMgKEFSKSIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIgfSwKKyAgICAgICAgKi8KKworICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIi0wMzAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkJ1ZW5vcyBBaXJlcyAoQVIpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkJ1ZW5vcyBBaXJlcyAoQVIpIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiB9LAorCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA1MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA1OjAwIiwgIi01OjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNTowMCIsICItNTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDU6MDAiLCAiLTU6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTA0MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTA0OjAwIiwgIi00OjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBbWVyaWNhL0hhdmFuYSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVC0wNDowMCIsICItNDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQW1lcmljYS9IYXZhbmEiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDQ6MDAiLCAiLTQ6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiQ1UiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisgICAgICAgIHsgImFzIiwgIkFtZXJpY2EvSGF2YW5hIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiQ1UiLCAiQW1lcmljYS9IYXZhbmEiIH0sCisKKyAgICAgICAgLyogaWJtIEpESyAxLjQuMSBkb2Vzbid0IHN1cHBvcnQgdGhpcyB0aW1lem9uZSBpZAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIloiLCAiKzExMDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiKzEwMDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9BQ1QiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvQUNUIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiU3lkbmV5IChBVSkiLCAiQXVzdHJhbGlhL1N5ZG5leSIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL0FDVCIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIlN5ZG5leSAoQVUpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgICovCisKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMTAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMTowMCIsICIrMTE6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTE6MDAiLCAiKzExOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzExOjAwIiwgIisxMTowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIisxMDAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCsxMDowMCIsICIrMTA6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAieiIsICJHTVQrMTA6MDAiLCAiKzEwOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJBdXN0cmFsaWEvU3lkbmV5IiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzEwOjAwIiwgIisxMDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiQXVzdHJhbGlhL1N5ZG5leSIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIlN5ZG5leSAoQVUpIiwgIkF1c3RyYWxpYS9TeWRuZXkiIH0sCisgICAgICAgIHsgImFzIiwgIkF1c3RyYWxpYS9TeWRuZXkiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAidnZ2diIsICJTeWRuZXkgKEFVKSIsICJBdXN0cmFsaWEvU3lkbmV5IiB9LAorCisgICAgICAgIHsgImFzIiwgIkV1cm9wZS9Mb25kb24iLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICIrMDAwMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVCswMDowMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6IiwgIkdNVCswMDowMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVCswMDowMCIsICIrMDowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaIiwgIiswMTAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01UKzAxOjAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01UKzAxOjAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInp6enoiLCAiR01UKzAxOjAwIiwgIisxOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdXJvcGUvTG9uZG9uIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInYiLCAiR0IiLCAiRXVyb3BlL0xvbmRvbiIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXVyb3BlL0xvbmRvbiIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2dnZ2IiwgIkdCIiwgIkV1cm9wZS9Mb25kb24iIH0sCisKKyAgICAgICAgLyogaWJtIEpESyAxLjQuMiBkb2Vzbid0IHN1cHBvcnQgdGhpcyB0aW1lem9uZSBpZAorICAgICAgICB7ICJhcyIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAiWiIsICItMDMwMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDEtMTVUMDA6MDA6MDBaIiwgIlpaWloiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdGMvR01UKzMiLCAiMjAwNC0wMS0xNVQwMDowMDowMFoiLCAieiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTAxLTE1VDAwOjAwOjAwWiIsICJ6enp6IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgIloiLCAiLTAzMDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJaWlpaIiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInoiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICB7ICJhcyIsICJFdGMvR01UKzMiLCAiMjAwNC0wNy0xNVQwMDowMDowMFoiLCAienp6eiIsICJHTVQtMDM6MDAiLCAiLTM6MDAiIH0sCisgICAgICAgIHsgImFzIiwgIkV0Yy9HTVQrMyIsICIyMDA0LTA3LTE1VDAwOjAwOjAwWiIsICJ2IiwgIkdNVC0wMzowMCIsICItMzowMCIgfSwKKyAgICAgICAgeyAiYXMiLCAiRXRjL0dNVCszIiwgIjIwMDQtMDctMTVUMDA6MDA6MDBaIiwgInZ2dnYiLCAiR01ULTAzOjAwIiwgIi0zOjAwIiB9LAorICAgICAgICAvKiovCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGF0IHN0cmluZ3Mgd2hpY2ggY29udGFpbiBpbmNvbXBsZXRlIHNwZWNpZmljYXRpb25zIGFyZSBwYXJzZWQKKyAgICAgKiBjb3JyZWN0bHkuICBJbiBzb21lIGluc3RhbmNlcywgdGhpcyBtZWFucyBub3QgYmVpbmcgcGFyc2VkIGF0IGFsbCwgYW5kCisgICAgICogcmV0dXJuaW5nIGFuIGFwcHJvcHJpYXRlIGVycm9yLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQYXJ0aWFsUGFyc2U5OTQoKSB7CisgICAgCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KDE5OTcsIDEgLSAxLCAxNywgMTAsIDExLCA0Mik7CisgICAgICAgIERhdGUgZGF0ZSA9IG51bGw7CisgICAgICAgIHRyeVBhdDk5NChmLCAieXkvTU0vZGQgSEg6bW06c3MiLCAiOTcvMDEvMTcgMTA6MTE6NDIiLCBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgdHJ5UGF0OTk0KGYsICJ5eS9NTS9kZCBISDptbTpzcyIsICI5Ny8wMS8xNyAxMDoiLCBkYXRlKTsKKyAgICAgICAgdHJ5UGF0OTk0KGYsICJ5eS9NTS9kZCBISDptbTpzcyIsICI5Ny8wMS8xNyAxMCIsIGRhdGUpOworICAgICAgICB0cnlQYXQ5OTQoZiwgInl5L01NL2RkIEhIOm1tOnNzIiwgIjk3LzAxLzE3ICIsIGRhdGUpOworICAgICAgICB0cnlQYXQ5OTQoZiwgInl5L01NL2RkIEhIOm1tOnNzIiwgIjk3LzAxLzE3IiwgZGF0ZSk7CisgICAgfQorICAgIAorICAgIC8vIGludGVybmFsIHRlc3Qgc3Vicm91dGluZSwgdXNlZCBieSBUZXN0UGFydGlhbFBhcnNlOTk0CisgICAgcHVibGljIHZvaWQgdHJ5UGF0OTk0KFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0LCBTdHJpbmcgcGF0LCBTdHJpbmcgc3RyLCBEYXRlIGV4cGVjdGVkKSB7CisgICAgICAgIERhdGUgTnVsbCA9IG51bGw7CisgICAgICAgIGxvZ2xuKCJQYXR0ZXJuIFwiIiArIHBhdCArICJcIiAgIFN0cmluZyBcIiIgKyBzdHIgKyAiXCIiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvcm1hdC5hcHBseVBhdHRlcm4ocGF0KTsKKyAgICAgICAgICAgIERhdGUgZGF0ZSA9IGZvcm1hdC5wYXJzZShzdHIpOyAgICAKKyAgICAgICAgICAgIFN0cmluZyBmID0gKChEYXRlRm9ybWF0KSBmb3JtYXQpLmZvcm1hdChkYXRlKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgcGFyc2UoIiArIHN0ciArICIpIC0+ICIgKyBkYXRlKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgZm9ybWF0IC0+ICIgKyBmKTsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZC5lcXVhbHMoTnVsbCkgfHwgIWRhdGUuZXF1YWxzKGV4cGVjdGVkKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgbnVsbCIpOyAvLyIgKyBleHBlY3RlZCk7CisgICAgICAgICAgICBpZiAoIWYuZXF1YWxzKHN0cikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBzdHIpOworICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiUGFyc2VFeGNlcHRpb246ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICBpZiAoIShleHBlY3RlZCA9PU51bGwpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIioqKiBFeGNlcHRpb246Iik7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGUgYmVoYXZpb3Igb2YgcGF0dGVybnMgaW4gd2hpY2ggZGlnaXRzIGZvciBkaWZmZXJlbnQgZmllbGRzIHJ1biB0b2dldGhlcgorICAgICAqIHdpdGhvdXQgaW50ZXJ2ZW5pbmcgc2VwYXJhdG9ycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVuVG9nZXRoZXJQYXR0ZXJuOTg1KCkgeworICAgICAgICBTdHJpbmcgZm9ybWF0ID0gInl5eXlNTWRkSEhtbXNzU1NTIjsKKyAgICAgICAgU3RyaW5nIG5vdywgdGhlbjsKKyAgICAgICAgLy9VQm9vbCBmbGFnOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdHRlciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGZvcm1hdCk7CisgICAgICAgIERhdGUgZGF0ZTEgPSBuZXcgRGF0ZSgpOworICAgICAgICBub3cgPSAoKERhdGVGb3JtYXQpIGZvcm1hdHRlcikuZm9ybWF0KGRhdGUxKTsKKyAgICAgICAgbG9nbG4obm93KTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgRGF0ZSBkYXRlMiA9IGZvcm1hdHRlci5wYXJzZShub3csIHBvcyk7CisgICAgICAgIGlmIChkYXRlMiA9PSBudWxsKQorICAgICAgICAgICAgdGhlbiA9ICJQYXJzZSBzdG9wcGVkIGF0ICIgKyBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhlbiA9ICgoRGF0ZUZvcm1hdCkgZm9ybWF0dGVyKS5mb3JtYXQoZGF0ZTIpOworICAgICAgICBsb2dsbih0aGVuKTsKKyAgICAgICAgaWYgKGRhdGUyID09IG51bGwgfHwgIWRhdGUyLmVxdWFscyhkYXRlMSkpCisgICAgICAgICAgICBlcnJsbigiRkFJTCIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGUgYmVoYXZpb3Igb2YgcGF0dGVybnMgaW4gd2hpY2ggZGlnaXRzIGZvciBkaWZmZXJlbnQgZmllbGRzIHJ1biB0b2dldGhlcgorICAgICAqIHdpdGhvdXQgaW50ZXJ2ZW5pbmcgc2VwYXJhdG9ycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVuVG9nZXRoZXJQYXR0ZXJuOTE3KCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdDsKKyAgICAgICAgU3RyaW5nIG15RGF0ZTsKKyAgICAgICAgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInl5eXkvTU0vZGQiKTsKKyAgICAgICAgbXlEYXRlID0gIjE5OTcvMDIvMDMiOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCAyIC0gMSwgMyk7CisgICAgICAgIF90ZXN0SXQ5MTcoZm10LCBteURhdGUsIGNhbC5nZXRUaW1lKCkpOworICAgICAgICBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eU1NZGQiKTsKKyAgICAgICAgbXlEYXRlID0gIjE5OTcwMzA0IjsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgMyAtIDEsIDQpOworICAgICAgICBfdGVzdEl0OTE3KGZtdCwgbXlEYXRlLCBjYWwuZ2V0VGltZSgpKTsKKyAgICAKKyAgICB9CisgICAgCisgICAgLy8gaW50ZXJuYWwgdGVzdCBzdWJyb3V0aW5lLCB1c2VkIGJ5IFRlc3RSdW5Ub2dldGhlclBhdHRlcm45MTcKKyAgICBwdWJsaWMgdm9pZCBfdGVzdEl0OTE3KFNpbXBsZURhdGVGb3JtYXQgZm10LCBTdHJpbmcgc3RyLCBEYXRlIGV4cGVjdGVkKSB7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuPSIgKyBmbXQudG9QYXR0ZXJuKCkgKyAiICAgc3RyaW5nPSIgKyBzdHIpOworICAgICAgICBEYXRlIG8gPSBuZXcgRGF0ZSgpOworICAgICAgICBvID0gKERhdGUpICgoRGF0ZUZvcm1hdCkgZm10KS5wYXJzZU9iamVjdChzdHIsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgbG9nbG4oIlBhcnNlZCBvYmplY3Q6ICIgKyBvKTsKKyAgICAgICAgaWYgKG8gPT0gbnVsbCB8fCAhby5lcXVhbHMoZXhwZWN0ZWQpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCk7CisgICAgICAgIFN0cmluZyBmb3JtYXR0ZWQgPSBvPT1udWxsPyAibnVsbCIgOiAoKERhdGVGb3JtYXQpIGZtdCkuZm9ybWF0KG8pOworICAgICAgICBsb2dsbiggIkZvcm1hdHRlZCBzdHJpbmc6ICIgKyBmb3JtYXR0ZWQpOworICAgICAgICBpZiAoIWZvcm1hdHRlZC5lcXVhbHMoc3RyKSkKKyAgICAgICAgICAgIGVycmxuKCAiRkFJTDogRXhwZWN0ZWQgIiArIHN0cik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGUgaGFuZGxpbmcgb2YgQ3plY2ggSnVuZSBhbmQgSnVseSwgd2hpY2ggaGF2ZSB0aGUgdW5pcXVlIGF0dHJpYnV0ZSB0aGF0CisgICAgICogb25lIGlzIGEgcHJvcGVyIHByZWZpeCBzdWJzdHJpbmcgb2YgdGhlIG90aGVyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDemVjaE1vbnRoczQ1OSgpIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIG5ldyBMb2NhbGUoImNzIiwgIiIsICIiKSk7IAorICAgICAgICBsb2dsbigiUGF0dGVybiAiICsgKChTaW1wbGVEYXRlRm9ybWF0KSBmbXQpLnRvUGF0dGVybigpKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSlVORSwgMTUpOworICAgICAgICBEYXRlIGp1bmUgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCBDYWxlbmRhci5KVUxZLCAxNSk7CisgICAgICAgIERhdGUganVseSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIFN0cmluZyBqdW5lU3RyID0gZm10LmZvcm1hdChqdW5lKTsKKyAgICAgICAgU3RyaW5nIGp1bHlTdHIgPSBmbXQuZm9ybWF0KGp1bHkpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nbG4oImZvcm1hdChKdW5lIDE1IDE5OTcpID0gIiArIGp1bmVTdHIpOworICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKGp1bmVTdHIpOworICAgICAgICAgICAgU3RyaW5nIHMgPSBmbXQuZm9ybWF0KGQpOworICAgICAgICAgICAgaW50IG1vbnRoLCB5ciwgZGF5LCBociwgbWluLCBzZWM7CisgICAgICAgICAgICBjYWwuc2V0VGltZShkKTsKKyAgICAgICAgICAgIHlyID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKSAtIDE5MDA7CisgICAgICAgICAgICBtb250aCA9IGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICAgICAgZGF5ID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgICAgICBociA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICAgICAgbWluID0gY2FsLmdldChDYWxlbmRhci5NSU5VVEUpOworICAgICAgICAgICAgc2VjID0gY2FsLmdldChDYWxlbmRhci5TRUNPTkQpOworICAgICAgICAgICAgbG9nbG4oIiAgLiBwYXJzZSAuICIgKyBzICsgIiAobW9udGggPSAiICsgbW9udGggKyAiKSIpOworICAgICAgICAgICAgaWYgKG1vbnRoICE9IENhbGVuZGFyLkpVTkUpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1vbnRoIHNob3VsZCBiZSBKdW5lIik7CisgICAgICAgICAgICBsb2dsbigiZm9ybWF0KEp1bHkgMTUgMTk5NykgPSAiICsganVseVN0cik7CisgICAgICAgICAgICBkID0gZm10LnBhcnNlKGp1bHlTdHIpOworICAgICAgICAgICAgcyA9IGZtdC5mb3JtYXQoZCk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShkKTsKKyAgICAgICAgICAgIHlyID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKSAtIDE5MDA7CisgICAgICAgICAgICBtb250aCA9IGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpOworICAgICAgICAgICAgZGF5ID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisgICAgICAgICAgICBociA9IGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOworICAgICAgICAgICAgbWluID0gY2FsLmdldChDYWxlbmRhci5NSU5VVEUpOworICAgICAgICAgICAgc2VjID0gY2FsLmdldChDYWxlbmRhci5TRUNPTkQpOworICAgICAgICAgICAgbG9nbG4oIiAgLiBwYXJzZSAuICIgKyBzICsgIiAobW9udGggPSAiICsgbW9udGggKyAiKSIpOworICAgICAgICAgICAgaWYgKG1vbnRoICE9IENhbGVuZGFyLkpVTFkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1vbnRoIHNob3VsZCBiZSBKdWx5Iik7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBoYW5kbGluZyBvZiAnRCcgaW4gcGF0dGVybnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExldHRlckRQYXR0ZXJuMjEyKCkgeworICAgICAgICBTdHJpbmcgZGF0ZVN0cmluZyA9ICIxOTk1LTA0MC4wNTowMToyOSI7CisgICAgICAgIFN0cmluZyBiaWdEID0gInl5eXktRERELmhoOm1tOnNzIjsKKyAgICAgICAgU3RyaW5nIGxpdHRsZUQgPSAieXl5eS1kZGQuaGg6bW06c3MiOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk1LCAwLCAxLCA1LCAxLCAyOSk7CisgICAgICAgIERhdGUgZXhwTGl0dGxlRCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIERhdGUgZXhwQmlnRCA9IG5ldyBEYXRlKChsb25nKSAoZXhwTGl0dGxlRC5nZXRUaW1lKCkgKyAzOSAqIDI0ICogMzYwMDAwMC4wKSk7CisgICAgICAgIGV4cExpdHRsZUQgPSBleHBCaWdEOyAvLyBFeHBlY3QgdGhlIHNhbWUsIHdpdGggZGVmYXVsdCBsZW5pZW50IHBhcnNpbmcKKyAgICAgICAgbG9nbG4oImRhdGVTdHJpbmc9ICIgKyBkYXRlU3RyaW5nKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChiaWdEKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgRGF0ZSBteURhdGUgPSBmb3JtYXR0ZXIucGFyc2UoZGF0ZVN0cmluZywgcG9zKTsKKyAgICAgICAgbG9nbG4oIlVzaW5nICIgKyBiaWdEICsgIiAuICIgKyBteURhdGUpOworICAgICAgICBpZiAoIW15RGF0ZS5lcXVhbHMoZXhwQmlnRCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cEJpZ0QpOworICAgICAgICBmb3JtYXR0ZXIgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChsaXR0bGVEKTsKKyAgICAgICAgcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIG15RGF0ZSA9IGZvcm1hdHRlci5wYXJzZShkYXRlU3RyaW5nLCBwb3MpOworICAgICAgICBsb2dsbigiVXNpbmcgIiArIGxpdHRsZUQgKyAiIC4gIiArIG15RGF0ZSk7CisgICAgICAgIGlmICghbXlEYXRlLmVxdWFscyhleHBMaXR0bGVEKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwTGl0dGxlRCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGRheSBvZiB5ZWFyIHBhdHRlcm4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERheU9mWWVhclBhdHRlcm4xOTUoKSB7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIERhdGUgdG9kYXkgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBpbnQgeWVhcixtb250aCxkYXk7IAorICAgICAgICB5ZWFyID0gY2FsLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICAgICAgbW9udGggPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKyAgICAgICAgZGF5ID0gY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCh5ZWFyLCBtb250aCwgZGF5KTsKKyAgICAgICAgRGF0ZSBleHBlY3RlZCA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGxvZ2xuKCJUZXN0IERhdGU6ICIgKyB0b2RheSk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gKFNpbXBsZURhdGVGb3JtYXQpRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKTsKKyAgICAgICAgdHJ5UGF0dGVybihzZGYsIHRvZGF5LCBudWxsLCBleHBlY3RlZCk7CisgICAgICAgIHRyeVBhdHRlcm4oc2RmLCB0b2RheSwgIkcgeXl5eSBEREQiLCBleHBlY3RlZCk7CisgICAgfQorICAgIAorICAgIC8vIGludGVybCB0ZXN0IHN1YnJvdXRpbmUsIHVzZWQgYnkgVGVzdERheU9mWWVhclBhdHRlcm4xOTUKKyAgICBwdWJsaWMgdm9pZCB0cnlQYXR0ZXJuKFNpbXBsZURhdGVGb3JtYXQgc2RmLCBEYXRlIGQsIFN0cmluZyBwYXR0ZXJuLCBEYXRlIGV4cGVjdGVkKSB7CisgICAgICAgIGlmIChwYXR0ZXJuICE9IG51bGwpCisgICAgICAgICAgICBzZGYuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICBsb2dsbigicGF0dGVybjogIiArIHNkZi50b1BhdHRlcm4oKSk7CisgICAgICAgIFN0cmluZyBmb3JtYXRSZXN1bHQgPSAoKERhdGVGb3JtYXQpIHNkZikuZm9ybWF0KGQpOworICAgICAgICBsb2dsbigiIGZvcm1hdCAtPiAiICsgZm9ybWF0UmVzdWx0KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERhdGUgZDIgPSBzZGYucGFyc2UoZm9ybWF0UmVzdWx0KTsKKyAgICAgICAgICAgIGxvZ2xuKCIgcGFyc2UoIiArIGZvcm1hdFJlc3VsdCArICIpIC0+ICIgKyBkMik7CisgICAgICAgICAgICBpZiAoIWQyLmVxdWFscyhleHBlY3RlZCkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCk7CisgICAgICAgICAgICBTdHJpbmcgZm9ybWF0MiA9ICgoRGF0ZUZvcm1hdCkgc2RmKS5mb3JtYXQoZDIpOworICAgICAgICAgICAgbG9nbG4oIiBmb3JtYXQgLT4gIiArIGZvcm1hdDIpOworICAgICAgICAgICAgaWYgKCFmb3JtYXRSZXN1bHQuZXF1YWxzKGZvcm1hdDIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBSb3VuZCB0cmlwIGRyaWZ0Iik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgaGFuZGxpbmcgb2Ygc2luZ2xlIHF1b3RlcyBpbiBwYXR0ZXJucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVvdGVQYXR0ZXJuMTYxKCkgeworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZvcm1hdHRlciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTS9kZC95eXl5ICdhdCcgaGg6bW06c3MgYSB6enoiLCBMb2NhbGUuVVMpOyAKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuQVVHVVNULCAxMywgMTAsIDQyLCAyOCk7CisgICAgICAgIERhdGUgY3VycmVudFRpbWVfMSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgIFN0cmluZyBkYXRlU3RyaW5nID0gKChEYXRlRm9ybWF0KSBmb3JtYXR0ZXIpLmZvcm1hdChjdXJyZW50VGltZV8xKTsKKyAgICAgICAgU3RyaW5nIGV4cCA9ICIwOC8xMy8xOTk3IGF0IDEwOjQyOjI4IEFNICI7CisgICAgICAgIGxvZ2xuKCJmb3JtYXQoIiArIGN1cnJlbnRUaW1lXzEgKyAiKSA9ICIgKyBkYXRlU3RyaW5nKTsKKyAgICAgICAgaWYgKCFkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBleHAubGVuZ3RoKCkpLmVxdWFscyhleHApKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHApOworICAgIAorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoZSBjb3JyZWN0IGJlaGF2aW9yIHdoZW4gaGFuZGxpbmcgaW52YWxpZCBpbnB1dCBzdHJpbmdzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCYWRJbnB1dDEzNSgpIHsKKyAgICAgICAgaW50IGxvb2tzW10gPSB7RGF0ZUZvcm1hdC5TSE9SVCwgRGF0ZUZvcm1hdC5NRURJVU0sIERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5GVUxMfTsgCisgICAgICAgIGludCBsb29rc19sZW5ndGggPSBsb29rcy5sZW5ndGg7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHN0cmluZ3MgPSB7Ik1hciAxNSIsICJNYXIgMTUgMTk5NyIsICJhc2RmIiwgIjMvMS85NyAxOjIzOiIsICIzLzEvMDAgMToyMzo0NSBBTSJ9OyAKKyAgICAgICAgaW50IHN0cmluZ3NfbGVuZ3RoID0gc3RyaW5ncy5sZW5ndGg7CisgICAgICAgIERhdGVGb3JtYXQgZnVsbCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIERhdGVGb3JtYXQuTE9ORywgTG9jYWxlLlVTKTsgCisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICJNYXJjaCAxLCAyMDAwIDE6MjM6NDUgQU0gIjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHJpbmdzX2xlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgdGV4dCA9IHN0cmluZ3NbaV07CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGxvb2tzX2xlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgaW50IGRhdGVMb29rID0gbG9va3Nbal07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBsb29rc19sZW5ndGg7ICsraykgeworICAgICAgICAgICAgICAgICAgICBpbnQgdGltZUxvb2sgPSBsb29rc1trXTsKKyAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShkYXRlTG9vaywgdGltZUxvb2ssIExvY2FsZS5VUyk7IAorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcHJlZml4ID0gdGV4dCArICIsICIgKyBkYXRlTG9vayArICIvIiArIHRpbWVMb29rICsgIjogIjsgCisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBEYXRlIHdoZW4gPSBkZi5wYXJzZSh0ZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aGVuID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihwcmVmaXggKyAiU0hPVUxEIE5PVCBIQVBQRU46IHBhcnNlIHJldHVybmVkIG51bGwuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9ICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aGVuICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZm9ybWF0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCA9IGZ1bGwuZm9ybWF0KHdoZW4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKHByZWZpeCArICJPSzogIiArIGZvcm1hdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmb3JtYXQuc3Vic3RyaW5nKDAsIGV4cGVjdGVkLmxlbmd0aCgpKS5lcXVhbHMoZXhwZWN0ZWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGUgY29ycmVjdCBiZWhhdmlvciB3aGVuIHBhcnNpbmcgYW4gYXJyYXkgb2YgaW5wdXRzIGFnYWluc3QgYW4KKyAgICAgKiBhcnJheSBvZiBwYXR0ZXJucywgd2l0aCBrbm93biByZXN1bHRzLiAgVGhlIHJlc3VsdHMgYXJlIGVuY29kZWQgYWZ0ZXIKKyAgICAgKiB0aGUgaW5wdXQgc3RyaW5ncyBpbiBlYWNoIHJvdy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFkSW5wdXQxMzVhKCkgeworICAgIAorICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGRhdGVQYXJzZSA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCIiLCBMb2NhbGUuVVMpOworICAgICAgICBmaW5hbCBTdHJpbmcgc3M7CisgICAgICAgIERhdGUgZGF0ZTsKKyAgICAgICAgU3RyaW5nW10gcGFyc2VGb3JtYXRzID17Ik1NTU0gZCwgeXl5eSIsICJNTU1NIGQgeXl5eSIsICJNL2QveXkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZCBNTU1NLCB5eXl5IiwgImQgTU1NTSB5eXl5IiwgICJkIE1NTU0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTU1NTSBkIiwgInl5eXkiLCAiaDptbSBhIE1NTU0gZCwgeXl5eSIgfTsKKyAgICAgICAgU3RyaW5nW10gaW5wdXRTdHJpbmdzID0geworICAgICAgICAgICAgImJvZ3VzIHN0cmluZyIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsCisgICAgICAgICAgICAgICAgIkFwcmlsIDEsIDE5OTciLCAiQXByaWwgMSwgMTk5NyIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICJBcHJpbCAxIiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICAgICAiSmFuIDEsIDE5NzAiLCAiSmFudWFyeSAxLCAxOTcwIiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgIkphbnVhcnkgMSIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAgICAgIkphbiAxIDIwMzciLCBudWxsLCAiSmFudWFyeSAxIDIwMzciLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiSmFudWFyeSAxIiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICAgICAiMS8xLzcwIiwgbnVsbCwgbnVsbCwgIjEvMS83MCIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICIwMDAxIiwgbnVsbCwKKyAgICAgICAgICAgICAgICAiNSBNYXkgMTk5NyIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICI1IE1heSAxOTk3IiwgIjUgTWF5IiwgbnVsbCwgIjAwMDUiLCBudWxsLAorICAgICAgICAgICAgICAgICIxNiBNYXkiLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiMTYgTWF5IiwgbnVsbCwgIjAwMTYiLCBudWxsLAorICAgICAgICAgICAgICAgICJBcHJpbCAzMCIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsICJBcHJpbCAzMCIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAgICAgIjE5OTgiLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiMTk5OCIsIG51bGwsCisgICAgICAgICAgICAgICAgIjEiLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiMDAwMSIsIG51bGwsCisgICAgICAgICAgICAgICAgIjM6MDAgcG0gSmFuIDEsIDE5OTciLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAiMDAwMyIsICIzOjAwIFBNIEphbnVhcnkgMSwgMTk5NyIsCisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgZmluYWwgaW50IFBGX0xFTkdUSCA9IHBhcnNlRm9ybWF0cy5sZW5ndGg7CisgICAgICAgIGZpbmFsIGludCBJTlBVVF9MRU5HVEggPSBpbnB1dFN0cmluZ3MubGVuZ3RoOworICAgIAorICAgICAgICBkYXRlUGFyc2UuYXBwbHlQYXR0ZXJuKCJkIE1NTU0sIHl5eXkiKTsKKyAgICAgICAgZGF0ZVBhcnNlLnNldFRpbWVab25lKFRpbWVab25lLmdldERlZmF1bHQoKSk7CisgICAgICAgIHNzID0gIm5vdCBwYXJzZWFibGUiOworICAgICAgICAvLyAgICBTdHJpbmcgdGhlUGF0OworICAgICAgICBsb2dsbigiVHJ5aW5nIHRvIHBhcnNlIFwiIiArIHNzICsgIlwiIHdpdGggIiArIGRhdGVQYXJzZS50b1BhdHRlcm4oKSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkYXRlID0gZGF0ZVBhcnNlLnBhcnNlKHNzKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBsb2dsbigiRkFJTDoiICsgZXgpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSU5QVVRfTEVOR1RIOyBpICs9IChQRl9MRU5HVEggKyAxKSkgeworICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGlucHV0U3RyaW5nc1tpXTsKKyAgICAgICAgICAgIGZvciAoaW50IGluZGV4ID0gMDsgaW5kZXggPCBQRl9MRU5HVEg7ICsraW5kZXgpIHsKKyAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgZXhwZWN0ZWQgPSBpbnB1dFN0cmluZ3NbaSArIDEgKyBpbmRleF07CisgICAgICAgICAgICAgICAgZGF0ZVBhcnNlLmFwcGx5UGF0dGVybihwYXJzZUZvcm1hdHNbaW5kZXhdKTsKKyAgICAgICAgICAgICAgICBkYXRlUGFyc2Uuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICAgICAgICAgICAgICBkYXRlID0gZGF0ZVBhcnNlLnBhcnNlKHMsIHBhcnNlUG9zaXRpb24pOworICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzMSwgczI7CisgICAgICAgICAgICAgICAgICAgICAgICBzMSA9IHMuc3Vic3RyaW5nKDAsIHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBzMiA9IHMuc3Vic3RyaW5nKHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSwgcy5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0ZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBudWxsIHJlc3VsdCBmbXQ9XCIiICsgcGFyc2VGb3JtYXRzW2luZGV4XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXCIgcG9zPSIgKyBwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiAiICsgczEgKyAifCIgKyBzMik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSAoKERhdGVGb3JtYXQpIGRhdGVQYXJzZSkuZm9ybWF0KGRhdGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJQYXJzZWQgXCIiICsgcyArICJcIiB1c2luZyBcIiIgKyBkYXRlUGFyc2UudG9QYXR0ZXJuKCkgKyAiXCIgdG86ICIgKyByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZCA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgcGFyc2UgZmFpbHVyZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCArICIgZnJvbSBcIiIgKyBzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcIiB3aXRoIFwiIiArIGRhdGVQYXJzZS50b1BhdHRlcm4oKSsgIlwiIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJGQUlMOiIgKyBleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIHBhcnNpbmcgb2YgdHdvLWRpZ2l0IHllYXJzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUd29EaWdpdFllYXIoKSB7CisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgTG9jYWxlLlVTKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMTE3ICsgMTkwMCwgQ2FsZW5kYXIuSlVORSwgNSk7CisgICAgICAgIHBhcnNlMkRpZ2l0WWVhcihmbXQsICI2LzUvMTciLCBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIGNhbC5zZXQoMzQgKyAxOTAwLCBDYWxlbmRhci5KVU5FLCA0KTsKKyAgICAgICAgcGFyc2UyRGlnaXRZZWFyKGZtdCwgIjYvNC8zNCIsIGNhbC5nZXRUaW1lKCkpOworICAgIH0KKyAgICAKKyAgICAvLyBpbnRlcm5hbCB0ZXN0IHN1YnJvdXRpbmUsIHVzZWQgYnkgVGVzdFR3b0RpZ2l0WWVhcgorICAgIHB1YmxpYyB2b2lkIHBhcnNlMkRpZ2l0WWVhcihEYXRlRm9ybWF0IGZtdCwgU3RyaW5nIHN0ciwgRGF0ZSBleHBlY3RlZCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKHN0cik7CisgICAgICAgICAgICBsb2dsbigiUGFyc2luZyBcIiIrIHN0cisgIlwiIHdpdGggIisgKChTaW1wbGVEYXRlRm9ybWF0KSBmbXQpLnRvUGF0dGVybigpCisgICAgICAgICAgICAgICAgICAgICsgIiAgPT4gIisgZCk7IAorICAgICAgICAgICAgaWYgKCFkLmVxdWFscyhleHBlY3RlZCkpCisgICAgICAgICAgICAgICAgZXJybG4oICJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQpOworICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgZm9ybWF0dGluZyBvZiB0aW1lIHpvbmVzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REYXRlRm9ybWF0Wm9uZTA2MSgpIHsKKyAgICAgICAgRGF0ZSBkYXRlOworICAgICAgICBEYXRlRm9ybWF0IGZvcm1hdHRlcjsKKyAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKDg1OTI0ODAwMDAwMGwpOworICAgICAgICBsb2dsbigiRGF0ZSAxOTk3LzMvMjUgMDA6MDAgR01UOiAiICsgZGF0ZSk7CisgICAgICAgIGZvcm1hdHRlciA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJkZC1NTU0teXl5eXkgSEg6bW0iLCBMb2NhbGUuVUspOworICAgICAgICBmb3JtYXR0ZXIuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpKTsKKyAgICAgICAgU3RyaW5nIHRlbXAgPSBmb3JtYXR0ZXIuZm9ybWF0KGRhdGUpOworICAgICAgICBsb2dsbigiRm9ybWF0dGVkIGluIEdNVCB0bzogIiArIHRlbXApOworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZSB0ZW1wRGF0ZSA9IGZvcm1hdHRlci5wYXJzZSh0ZW1wKTsKKyAgICAgICAgICAgIGxvZ2xuKCJQYXJzZWQgdG86ICIgKyB0ZW1wRGF0ZSk7CisgICAgICAgICAgICBpZiAoIXRlbXBEYXRlLmVxdWFscyhkYXRlKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGRhdGUgKyAiIEdvdDogIiArIHRlbXBEYXRlKTsKKyAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0KTsKKyAgICAgICAgfQorICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBmb3JtYXR0aW5nIG9mIHRpbWUgem9uZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERhdGVGb3JtYXRab25lMTQ2KCkgeworICAgICAgICBUaW1lWm9uZSBzYXZlRGVmYXVsdCA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAKKyAgICAgICAgLy90cnkgeworICAgICAgICBUaW1lWm9uZSB0aGVkZWZhdWx0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpOworICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHRoZWRlZmF1bHQpOworICAgICAgICAvLyBqYXZhLnV0aWwuTG9jYWxlLnNldERlZmF1bHQobmV3IGphdmEudXRpbC5Mb2NhbGUoImFyIiwgIiIsICIiKSk7CisgICAgCisgICAgICAgIC8vIGNoZWNrIHRvIGJlIHN1cmUuLi4gaXRzIEdNVCBhbGwgcmlnaHQKKyAgICAgICAgVGltZVpvbmUgdGVzdGRlZmF1bHQgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFN0cmluZyB0ZXN0dGltZXpvbmUgPSB0ZXN0ZGVmYXVsdC5nZXRJRCgpOworICAgICAgICBpZiAodGVzdHRpbWV6b25lLmVxdWFscygiR01UIikpCisgICAgICAgICAgICBsb2dsbigiVGVzdCB0aW1lem9uZSA9ICIgKyB0ZXN0dGltZXpvbmUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiVGVzdCB0aW1lem9uZSBzaG91bGQgYmUgR01ULCBub3QgIiArIHRlc3R0aW1lem9uZSk7CisgICAgCisgICAgICAgIC8vIG5vdyB0cnkgdG8gdXNlIHRoZSBkZWZhdWx0IEdNVCB0aW1lIHpvbmUKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ3JlZW53aWNoY2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoMTk5NywgMywgNCwgMjMsIDApOworICAgICAgICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqZ3JlZW53aWNoY2FsZW5kYXIuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgLy9ncmVlbndpY2hjYWxlbmRhci5zZXQoMTk5NywgMywgNCwgMjMsIDApOworICAgICAgICAvLyB0cnkgYW55dGhpbmcgdG8gc2V0IGhvdXIgdG8gMjM6MDAgISEhCisgICAgICAgIGdyZWVud2ljaGNhbGVuZGFyLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMjMpOworICAgICAgICAvLyBnZXQgdGltZQorICAgICAgICBEYXRlIGdyZWVud2ljaGRhdGUgPSBncmVlbndpY2hjYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgIC8vIGZvcm1hdCBldmVyeSB3YXkKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgICAgICAic2ltcGxlIGZvcm1hdDogICIsICIwNC8wNC85NyAyMzowMCBHTVQrMDA6MDAiLCAKKyAgICAgICAgICAgICAgICAiTU0vZGQveXkgSEg6bW0genp6IiwgImZ1bGwgZm9ybWF0OiAgICAiLCAKKyAgICAgICAgICAgICAgICAiRnJpZGF5LCBBcHJpbCA0LCAxOTk3IDExOjAwOjAwIG8nY2xvY2sgUE0gR01UKzAwOjAwIiwgCisgICAgICAgICAgICAgICAgIkVFRUUsIE1NTU0gZCwgeXl5eSBoOm1tOnNzICdvJydjbG9jaycgYSB6enoiLCAKKyAgICAgICAgICAgICAgICAibG9uZyBmb3JtYXQ6ICAgICIsICJBcHJpbCA0LCAxOTk3IDExOjAwOjAwIFBNIEdNVCswMDowMCIsIAorICAgICAgICAgICAgICAgICJNTU1NIGQsIHl5eXkgaDptbTpzcyBhIHoiLCAiZGVmYXVsdCBmb3JtYXQ6ICIsIAorICAgICAgICAgICAgICAgICIwNC1BcHItOTcgMTE6MDA6MDAgUE0iLCAiZGQtTU1NLXl5IGg6bW06c3MgYSIsIAorICAgICAgICAgICAgICAgICJzaG9ydCBmb3JtYXQ6ICAgIiwgIjQvNC85NyAxMTowMCBQTSIsIAorICAgICAgICAgICAgICAgICJNL2QveXkgaDptbSBhIn07IAorICAgICAgICBpbnQgREFUQV9sZW5ndGggPSBEQVRBLmxlbmd0aDsKKyAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBEQVRBX2xlbmd0aDsgaSArPSAzKSB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KERBVEFbaSArIDJdLCBMb2NhbGUuRU5HTElTSCk7CisgICAgICAgICAgICBmbXQuc2V0Q2FsZW5kYXIoZ3JlZW53aWNoY2FsZW5kYXIpOworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGZtdC5mb3JtYXQoZ3JlZW53aWNoZGF0ZSk7CisgICAgICAgICAgICBsb2dsbihEQVRBW2ldICsgcmVzdWx0KTsKKyAgICAgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhEQVRBW2kgKyAxXSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBEQVRBW2kgKyAxXSArICIsIGdvdCAiICsgcmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICAvL30KKyAgICAgICAgLy9maW5hbGx5IHsKKyAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlRGVmYXVsdCk7CisgICAgICAgIC8vfQorICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBmb3JtYXR0aW5nIG9mIGRhdGVzIGluIGRpZmZlcmVudCBsb2NhbGVzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RMb2NhbGVEYXRlRm9ybWF0KCkgeworICAgIAorICAgICAgICBEYXRlIHRlc3REYXRlID0gbmV3IERhdGUoODc0MzA2ODAwMDAwbCk7IC8vTW9uIFNlcCAxNSAwMDowMDowMCBQRFQgMTk5NworICAgICAgICBEYXRlRm9ybWF0IGRmRnJlbmNoID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBMb2NhbGUuRlJFTkNIKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBkZlVTID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBMb2NhbGUuVVMpOworICAgICAgICAvL1NldCBUaW1lWm9uZSA9IFBEVAorICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgZGZGcmVuY2guc2V0VGltZVpvbmUodHopOworICAgICAgICBkZlVTLnNldFRpbWVab25lKHR6KTsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkRlJFTkNIX0pESzEyID0gImx1bmRpIDE1IHNlcHRlbWJyZSAxOTk3IDAwIGggMDAgSEFQIChcdTAwQzlVQSkiOworICAgICAgICAvL1N0cmluZyBleHBlY3RlZEZSRU5DSCA9ICJsdW5kaSAxNSBzZXB0ZW1icmUgMTk5NyAwMCBoIDAwIFBEVCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFVTID0gIk1vbmRheSwgU2VwdGVtYmVyIDE1LCAxOTk3IDEyOjAwOjAwIEFNIFBEVCI7CisgICAgICAgIGxvZ2xuKCJEYXRlIHNldCB0byA6ICIgKyB0ZXN0RGF0ZSk7CisgICAgICAgIFN0cmluZyBvdXQgPSBkZkZyZW5jaC5mb3JtYXQodGVzdERhdGUpOworICAgICAgICBsb2dsbigiRGF0ZSBGb3JtYXRlZCB3aXRoIEZyZW5jaCBMb2NhbGUgIiArIG91dCk7CisgICAgICAgIC8vZml4IHRoZSBqZGsgcmVzb3VyY2VzIGRpZmZlcmVuY2VzIGJldHdlZW4gamRrIDEuMiBhbmQgamRrIDEuMworICAgICAgICAvKiBvdXIgb3duIGRhdGEgb25seSBoYXMgR01ULXh4eHggaW5mb3JtYXRpb24gaGVyZQorICAgICAgICBTdHJpbmcgamF2YVZlcnNpb24gPSBTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEudmVyc2lvbiIpOworICAgICAgICBpZiAoamF2YVZlcnNpb24uc3RhcnRzV2l0aCgiMS4yIikpIHsKKyAgICAgICAgICAgIGlmICghb3V0LmVxdWFscyhleHBlY3RlZEZSRU5DSF9KREsxMikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZEZSRU5DSF9KREsxMik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIW91dC5lcXVhbHMoZXhwZWN0ZWRGUkVOQ0gpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRGUkVOQ0gpOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIGlmICghb3V0LmVxdWFscyhleHBlY3RlZEZSRU5DSF9KREsxMikpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGV4cGVjdGVkRlJFTkNIX0pESzEyKTsKKyAgICAgICAgb3V0ID0gZGZVUy5mb3JtYXQodGVzdERhdGUpOworICAgICAgICBsb2dsbigiRGF0ZSBGb3JtYXRlZCB3aXRoIFVTIExvY2FsZSAiICsgb3V0KTsKKyAgICAgICAgaWYgKCFvdXQuZXF1YWxzKGV4cGVjdGVkVVMpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZFVTKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IERhdGVGb3JtYXQoQ2FsZW5kYXIpIEFQSQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REYXRlRm9ybWF0Q2FsZW5kYXIoKSB7CisgICAgICAgIERhdGVGb3JtYXQgZGF0ZT1udWxsLCB0aW1lPW51bGwsIGZ1bGw9bnVsbDsKKyAgICAgICAgQ2FsZW5kYXIgY2FsPW51bGw7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFN0cmluZyBzdHI7CisgICAgICAgIERhdGUgd2hlbjsKKworICAgICAgICAvKiBDcmVhdGUgYSBmb3JtYXR0ZXIgZm9yIGRhdGUgZmllbGRzLiAqLworICAgICAgICBkYXRlID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgTG9jYWxlLlVTKTsKKyAgICAgICAgaWYgKGRhdGUgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldERhdGVJbnN0YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENyZWF0ZSBhIGZvcm1hdHRlciBmb3IgdGltZSBmaWVsZHMuICovCisgICAgICAgIHRpbWUgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBMb2NhbGUuVVMpOworICAgICAgICBpZiAodGltZSA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0VGltZUluc3RhbmNlIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLyogQ3JlYXRlIGEgZnVsbCBmb3JtYXQgZm9yIG91dHB1dCAqLworICAgICAgICBmdWxsID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5VUyk7CisgICAgICAgIGlmIChmdWxsID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRJbnN0YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENyZWF0ZSBhIGNhbGVuZGFyICovCisgICAgICAgIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIGlmIChjYWwgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENhbGVuZGFyLmdldEluc3RhbmNlIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLyogUGFyc2UgdGhlIGRhdGUgKi8KKyAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgIHN0ciA9ICI0LzUvMjAwMSI7CisgICAgICAgIHBvcy5zZXRJbmRleCgwKTsKKyAgICAgICAgZGF0ZS5wYXJzZShzdHIsIGNhbCwgcG9zKTsKKyAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpICE9IHN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IERhdGVGb3JtYXQucGFyc2UoNC81LzIwMDEpIGZhaWxlZCBhdCAiICsKKyAgICAgICAgICAgICAgICAgIHBvcy5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFBhcnNlIHRoZSB0aW1lICovCisgICAgICAgIHN0ciA9ICI1OjQ1IFBNIjsKKyAgICAgICAgcG9zLnNldEluZGV4KDApOworICAgICAgICB0aW1lLnBhcnNlKHN0ciwgY2FsLCBwb3MpOworICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgIT0gc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRGF0ZUZvcm1hdC5wYXJzZSgxNzo0NSkgZmFpbGVkIGF0ICIgKworICAgICAgICAgICAgICAgICAgcG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIENoZWNrIHJlc3VsdCAqLworICAgICAgICB3aGVuID0gY2FsLmdldFRpbWUoKTsKKyAgICAgICAgc3RyID0gZnVsbC5mb3JtYXQod2hlbik7CisgICAgICAgIC8vIFRodXJzZGF5LCBBcHJpbCA1LCAyMDAxIDU6NDU6MDAgUE0gUERUIDk4NjUxNzkwMDAwMAorICAgICAgICBpZiAod2hlbi5nZXRUaW1lKCkgPT0gOTg2NTE3OTAwMDAwLjApIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogUGFyc2VkIHJlc3VsdDogIiArIHN0cik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogUGFyc2VkIHJlc3VsdDogIiArIHN0ciArICIsIGV4cCA0LzUvMjAwMSA1OjQ1IFBNIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IERhdGVGb3JtYXQncyBwYXJzaW5nIG9mIHNwYWNlIGNoYXJhY3RlcnMuICBTZWUgaml0dGVyYnVnIDE5MTYuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNwYWNlUGFyc2luZygpIHsKKworICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgInl5eXkgTU0gZGQiLAorCisgICAgICAgICAgICAvLyBwYXR0ZXJuLCBpbnB1dCwgZXhwZWN0ZWQgb3V0cHV0IChpbiBxdW90ZXMpCisgICAgICAgICAgICAiTU1NTSBkIHl5IiwgIiAwNCAwNSAwNiIsICBudWxsLCAvLyBNTU1NIHdhbnRzIEFwci9BcHJpbAorICAgICAgICAgICAgbnVsbCwgICAgICAgICIwNCAwNSAwNiIsICAgbnVsbCwKKyAgICAgICAgICAgICJNTSBkIHl5IiwgICAiIDA0IDA1IDA2IiwgICIyMDA2IDA0IDA1IiwKKyAgICAgICAgICAgIG51bGwsICAgICAgICAiMDQgMDUgMDYiLCAgICIyMDA2IDA0IDA1IiwKKyAgICAgICAgICAgICJNTU1NIGQgeXkiLCAiIEFwciAwNSAwNiIsICIyMDA2IDA0IDA1IiwKKyAgICAgICAgICAgIG51bGwsICAgICAgICAiQXByIDA1IDA2IiwgICIyMDA2IDA0IDA1IiwKKyAgICAgICAgfTsKKworICAgICAgICBleHBlY3RQYXJzZShEQVRBLCBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgaGFuZGxpbmcgb2YgIkhIbW1zcyIgcGF0dGVybi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhhY3RDb3VudEZvcm1hdCgpIHsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgICJ5eXl5IE1NIGRkIEhIOm1tOnNzIiwKKworICAgICAgICAgICAgLy8gcGF0dGVybiwgaW5wdXQsIGV4cGVjdGVkIHBhcnNlIG9yIG51bGwgaWYgZXhwZWN0IHBhcnNlIGZhaWx1cmUKKyAgICAgICAgICAgICJISG1tc3MiLCAiMTIzNDU2IiwgIjE5NzAgMDEgMDEgMTI6MzQ6NTYiLAorICAgICAgICAgICAgbnVsbCwgICAgICIxMjM0NSIsICAiMTk3MCAwMSAwMSAwMToyMzo0NSIsCisgICAgICAgICAgICBudWxsLCAgICAgIjEyMzQiLCAgIG51bGwsCisgICAgICAgICAgICBudWxsLCAgICAgIjAwLTA1IiwgIG51bGwsCisgICAgICAgICAgICBudWxsLCAgICAgIjEyLTM0IiwgIG51bGwsCisgICAgICAgICAgICBudWxsLCAgICAgIjAwKzA1IiwgIG51bGwsCisgICAgICAgICAgICAiYWhobW0iLCAgIlBNNzMwIiwgICIxOTcwIDAxIDAxIDE5OjMwOjAwIiwKKyAgICAgICAgfTsKKworICAgICAgICBleHBlY3RQYXJzZShEQVRBLCBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgaGFuZGxpbmcgb2Ygd2hpdGUgc3BhY2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFdoaXRlU3BhY2VQYXJzaW5nKCkgeworICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgInl5eXkgTU0gZGQiLAorCisgICAgICAgICAgICAvLyBwYXR0ZXJuLCBpbnB1dCwgZXhwZWN0ZWQgcGFyc2Ugb3IgbnVsbCBpZiBleHBlY3QgcGFyc2UgZmFpbHVyZQorCisgICAgICAgICAgICAvLyBQYXR0ZXJuIHNwYWNlIHJ1biBzaG91bGQgcGFyc2UgaW5wdXQgdGV4dCBzcGFjZSBydW4KKyAgICAgICAgICAgICJNTSAgIGQgeXkiLCAgICIgMDQgMDEgMDMiLCAgICAiMjAwMyAwNCAwMSIsCisgICAgICAgICAgICBudWxsLCAgICAgICAgICAiIDA0ICAwMSAgIDAzICIsICIyMDAzIDA0IDAxIiwKKyAgICAgICAgfTsKKworICAgICAgICBleHBlY3RQYXJzZShEQVRBLCBuZXcgTG9jYWxlKCJlbiIsICIiLCAiIikpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbnZhbGlkUGF0dGVybigpIHsKKyAgICAgICAgRXhjZXB0aW9uIGUgPSBudWxsOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGYgPSBudWxsOworICAgICAgICBTdHJpbmcgb3V0ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiWWVzdGVyZGF5Iik7CisgICAgICAgICAgICBvdXQgPSBmLmZvcm1hdChuZXcgRGF0ZSgwKSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgZSA9IGUxOworICAgICAgICB9CisgICAgICAgIGlmIChlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogUmVjZWl2ZWQgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBleGNlcHRpb24sIGdvdCAiICsgZi50b1BhdHRlcm4oKSArCisgICAgICAgICAgICAgICAgICAiOyAiICsgb3V0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RHcmVla01heSgpIHsKKyAgICAgICAgRGF0ZSBkYXRlID0gbmV3IERhdGUoLTk4OTYwODA4NDgwMDBMKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiRUVFRSwgZGQgTU1NTSB5eXl5IGg6bW06c3MgYSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMb2NhbGUoImVsIiwgIiIsICIiKSk7CisgICAgICAgIFN0cmluZyBzdHIgPSBmbXQuZm9ybWF0KGRhdGUpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBEYXRlIGQyID0gZm10LnBhcnNlKHN0ciwgcG9zKTsKKyAgICAgICAgaWYgKCFkYXRlLmVxdWFscyhkMikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB1bmFibGUgdG8gcGFyc2Ugc3RyaW5ncyB3aGVyZSBjYXNlLWZvbGRpbmcgY2hhbmdlcyBsZW5ndGgiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RFcnJvckNoZWNraW5nKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBzZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoLTEsIC0xLCBMb2NhbGUuVVMpOworICAgICAgICAgICAgZXJybG4oIkV4cGVjdGVkIGV4Y2VwdGlvbiBmb3IgZ2V0RGF0ZVRpbWVJbnN0YW5jZSgtMSwgLTEsIExvY2FsZSkiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIm9uZSBvayIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB3YXJubG4oIkV4cGVjdGVkIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiwgZ290OiAiICsgZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoImFhYmJjY2MiKTsKKyAgICAgICAgICAgIGRmLmZvcm1hdChuZXcgRGF0ZSgpKTsKKyAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBleGNlcHRpb24gZm9yIGZvcm1hdCB3aXRoIGJhZCBwYXR0ZXJuIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBsb2dsbigidHdvIG9rIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRXhwZWN0ZWQgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLCBnb3Q6ICIgKyBlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiZGQvTU0veXkiKTsgLy8gb3Bwb3NpdGUgb2YgdGV4dAorICAgICAgICAgICAgZm10LnNldDJEaWdpdFllYXJTdGFydChnZXREYXRlKDIwMDMsIENhbGVuZGFyLkRFQ0VNQkVSLCAyNSkpOworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiMTIvMjUvMDMiOworICAgICAgICAgICAgQ2FsZW5kYXIgeGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAgICAgeGNhbC5zZXRMZW5pZW50KGZhbHNlKTsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcHAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgICAgIGZtdC5wYXJzZSh0ZXh0LCB4Y2FsLCBwcCk7IC8vIHNob3VsZCBnZXQgcGFyc2UgZXJyb3Igb24gc2Vjb25kIGZpZWxkLCBub3QgbGVuaWVudAorICAgICAgICAgICAgaWYgKHBwLmdldEVycm9ySW5kZXgoKSA9PSAtMSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBwYXJzZSBlcnJvciIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigidGhyZWUgb2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDaGluZXNlRGF0ZUZvcm1hdExvY2FsaXplZFBhdHRlcm5DaGFycygpIHsKKyAgICAgICAgLy8gamIgNDkwNAorICAgICAgICAvLyBtYWtlIHN1cmUgd2UgY2FuIGRpc3BsYXkgbG9jYWxpemVkIHZlcnNpb25zIG9mIHRoZSBjaGFycyB1c2VkIGluIHRoZSBkZWZhdWx0CisgICAgICAgIC8vIGNoaW5lc2UgZGF0ZSBmb3JtYXQgcGF0dGVybnMKKyAgICAgICAgQ2FsZW5kYXIgY2hpbmVzZUNhbGVuZGFyID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBjaGluZXNlQ2FsZW5kYXIuc2V0VGltZUluTWlsbGlzKChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGxvbmdDaGluZXNlRGF0ZUZvcm1hdCA9IAorICAgICAgICAgICAgKFNpbXBsZURhdGVGb3JtYXQpY2hpbmVzZUNhbGVuZGFyLmdldERhdGVUaW1lRm9ybWF0KERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5MT05HLCBMb2NhbGUuQ0hJTkEgKTsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyggY2hpbmVzZUNhbGVuZGFyLCBMb2NhbGUuQ0hJTkEgKTsKKyAgICAgICAgbG9uZ0NoaW5lc2VEYXRlRm9ybWF0LnNldERhdGVGb3JtYXRTeW1ib2xzKCBkZnMgKTsKKyAgICAgICAgLy8gVGhpcyBuZXh0IGxpbmUgdGhyb3dzIHRoZSBleGNlcHRpb24KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBsb25nRm9ybWF0UGF0dGVybiA9IGxvbmdDaGluZXNlRGF0ZUZvcm1hdC50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgbG9jYWxpemVkIHBhdHRlcm46ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIERhdGUgbm93ID0gbmV3IERhdGUoKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIERhdGVGb3JtYXQgZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKCk7CisgICAgICAgIGxvZ2xuKCJ0aW1lOiAiICsgZi5mb3JtYXQobm93KSk7CisKKyAgICAgICAgaW50IGhhc2ggPSBmLmhhc2hDb2RlKCk7IC8vIHNpZ2gsIGV2ZXJ5b25lIG92ZXJyaWRlcyB0aGlzCisgICAgICAgIAorICAgICAgICBmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZShjYWwpOworICAgICAgICBpZihoYXNoID09IGYuaGFzaENvZGUoKSl7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogaGFzaENvZGUgZXF1YWwgZm9yIGluZXF1YWwgb2JqZWN0cyIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJ0aW1lIGFnYWluOiAiICsgZi5mb3JtYXQobm93KSk7CisKKyAgICAgICAgZiA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKGNhbCwgRGF0ZUZvcm1hdC5GVUxMKTsKKyAgICAgICAgbG9nbG4oInRpbWUgeWV0IGFnYWluOiAiICsgZi5mb3JtYXQobm93KSk7CisKKyAgICAgICAgZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCk7CisgICAgICAgIGxvZ2xuKCJ0aW1lIHlldCBhZ2FpbjogIiArIGYuZm9ybWF0KG5vdykpOworCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCJkZV9ERSIpOworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBzeW0gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMocmIsIExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgc3ltMiA9IChEYXRlRm9ybWF0U3ltYm9scylzeW0uY2xvbmUoKTsKKyAgICAgICAgaWYgKHN5bS5oYXNoQ29kZSgpICE9IHN5bTIuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oImZhaWwsIGRhdGUgZm9ybWF0IHN5bWJvbHMgaGFzaGNvZGUgbm90IGVxdWFsIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFzeW0uZXF1YWxzKHN5bTIpKSB7CisgICAgICAgICAgICBlcnJsbigiZmFpbCwgZGF0ZSBmb3JtYXQgc3ltYm9scyBub3QgZXF1YWwiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgTG9jYWxlIGZvbyA9IG5ldyBMb2NhbGUoImZ1IiwgIkZVIiwgIkJBUiIpOworICAgICAgICByYiA9IG51bGw7CisgICAgICAgIHN5bSA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhHcmVnb3JpYW5DYWxlbmRhci5jbGFzcywgZm9vKTsKKyAgICAgICAgc3ltLmVxdWFscyhudWxsKTsKKyAgICAgICAgCisgICAgICAgIHN5bSA9IG5ldyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgc3ltID0gbmV3IENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyhuZXcgQ2hpbmVzZUNhbGVuZGFyKCksIGZvbyk7CisgICAgICAgIC8vIGNvdmVyIG5ldyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIsIFVMb2NhbGUpCisgICAgICAgIENoaW5lc2VDYWxlbmRhciBjY2FsID0gbmV3IENoaW5lc2VDYWxlbmRhcigpOworICAgICAgICBzeW0gPSBuZXcgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKGNjYWwsIFVMb2NhbGUuQ0hJTkEpOyAvL2djbHNoMSBhZGQKKyAgICAgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIAorICAgICAgICBmLmZvcm1hdCgoT2JqZWN0KWNhbCwgYnVmLCBwb3MpOworICAgICAgICBmLmZvcm1hdCgoT2JqZWN0KW5vdywgYnVmLCBwb3MpOworICAgICAgICBmLmZvcm1hdCgoT2JqZWN0KW5ldyBMb25nKG5vdy5nZXRUaW1lKCkpLCBidWYsIHBvcyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmLmZvcm1hdCgoT2JqZWN0KSJIb3dkeSIsIGJ1ZiwgcG9zKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorCisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IGYuZ2V0TnVtYmVyRm9ybWF0KCk7CisgICAgICAgIGYuc2V0TnVtYmVyRm9ybWF0KG5mKTsKKyAgICAgICAgCisgICAgICAgIGJvb2xlYW4gbGVuaWVudCA9IGYuaXNMZW5pZW50KCk7CisgICAgICAgIGYuc2V0TGVuaWVudChsZW5pZW50KTsKKyAgICAgICAgCisgICAgICAgIFVMb2NhbGUgdWxvYyA9IGYuZ2V0TG9jYWxlKFVMb2NhbGUuQUNUVUFMX0xPQ0FMRSk7CisgICAgICAgIAorICAgICAgICBpbnQgaGFzaENvZGUgPSBmLmhhc2hDb2RlKCk7CisgICAgICAgIAorICAgICAgICBib29sZWFuIGVxID0gZi5lcXVhbHMoZik7CisgICAgICAgIGVxID0gZi5lcXVhbHMobnVsbCk7CisgICAgICAgIGVxID0gZi5lcXVhbHMobmV3IFNpbXBsZURhdGVGb3JtYXQoKSk7CisgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgQ2hpbmVzZURhdGVGb3JtYXQoInl5bW0iLCBMb2NhbGUuVVMpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjIiKTsgLy8gZmV3ZXIgc3ltYm9scyB0aGFuIHJlcXVpcmVkIDIKKyAgICAgICAgICAgICAgICBlcnJsbigid2hvb3BzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgiMjI1NSIpOyAvLyBzaG91bGQgc3VjY2VlZCB3aXRoIG9iZXljb3VudAorICAgICAgICAgICAgICAgIGxvZ2xuKCJvayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigid2hvb3BzIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKCJuaSBoYW8iKTsgLy8gbm90IGEgbnVtYmVyLCBzaG91bGQgZmFpbAorICAgICAgICAgICAgICAgIGVycmxuKCJ3aG9vcHMgbmkgaGFvIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayBuaSBoYW8iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBDYWxlbmRhciB4Y2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgICAgICB4Y2FsLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgMCk7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJrIik7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgeGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gZnBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKENhbGVuZGFyLkhPVVJfT0ZfREFZKTsKKyAgICAgICAgICAgIGZtdC5mb3JtYXQoeGNhbCwgeGJ1ZiwgZnBvcyk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSh4YnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHhidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgIHhjYWwuc2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZLCAyNSk7CisgICAgICAgICAgICAgICAgZm10LmZvcm1hdCh4Y2FsLCB4YnVmLCBmcG9zKTsKKyAgICAgICAgICAgICAgICBEYXRlIGQyID0gZm10LnBhcnNlKHhidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rIGFnYWluIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ3aG9vcHMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgLy8gY292ZXIgZ210K2hoOm1tCisgICAgICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTS9kZC95eSB6Iik7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgiMDcvMTAvNTMgR01UKzEwOjAwIik7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJQYXJzZSBvZiAwNy8xMC81MyBHTVQrMTA6MDAgZm9yIHBhdHRlcm4gTU0vZGQveXkgeiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb3ZlciBpbnZhbGlkIHNlcGFyYXRvciBhZnRlciBHTVQKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiMDcvMTAvNTMgR01UPTEwOjAwIjsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UodGV4dCwgcHApOworICAgICAgICAgICAgICAgIGlmKHBwLmdldEluZGV4KCkhPTEyKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlBhcnNlIG9mIDA3LzEwLzUzIEdNVD0xMDowMCBmb3IgcGF0dGVybiBNTS9kZC95eSB6Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvZ2xuKCJQYXJzaW5nIG9mIHRoZSB0ZXh0IHN0b3BwZWQgYXQgcG9zOiAiICsgcHAuZ2V0SW5kZXgoKSArICIgYXMgZXhwZWN0ZWQgYW5kIGxlbmd0aCBpcyAiK3RleHQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb3ZlciBiYWQgdGV4dCBhZnRlciBHTVQrLgorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjA3LzEwLzUzIEdNVCtibGVjY2giKTsKKyAgICAgICAgICAgICAgICBlcnJsbigid2hvb3BzIEdNVCtibGVjY2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rIEdNVCtibGVjY2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gY292ZXIgYmFkIHRleHQgYWZ0ZXIgR01UK2hoOi4KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKCIwNy8xMC81MyBHTVQrMDc6YmxlY2NoIik7CisgICAgICAgICAgICAgICAgZXJybG4oIndob29wcyBHTVQreHg6YmxlY2NoIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayBHTVQreHg6YmxlY2NoIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNvdmVyIG5vICc6JyBHTVQrIywgIyA8IDI0IChoaCkKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gZm10LnBhcnNlKCIwNy8xMC81MyBHTVQrMDciKTsKKyAgICAgICAgICAgICAgICBsb2dsbigib2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhcnNlIG9mIDA3LzEwLzUzIEdNVCswNyBmb3IgcGF0dGVybiBNTS9kZC95eSB6Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNvdmVyIG5vICc6JyBHTVQrIywgIyA+IDI0IChoaG1tKQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjA3LzEwLzUzIEdNVCswNzMwIik7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJQYXJzZSBvZiAwNy8xMC81MyBHTVQrMDczMCBmb3IgcGF0dGVybiBNTS9kZC95eSB6Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNvdmVyIG5vICc6JyBHTVQrIywgIyA+IDI0MDAgKHRoaXMgc2hvdWxkIGZhaWwsIGkgc3VzcGVjdCwgYnV0IGRvZXNuJ3QpCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgiMDcvMTAvNTMgR01UKzA3MzAwIik7CisgICAgICAgICAgICAgICAgbG9nbG4oInNob3VsZCBHTVQrOTk5OSBmYWlsPyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigib2ssIEkgZ3Vlc3MiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gY292ZXIgcmF3IGRpZ2l0cyB3aXRoIG5vIGxlYWRpbmcgc2lnbiAoYmFkIFJGQzgyMikgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgiMDcvMTAvNTMgMDciKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2Ugb2YgMDcvMTAvNTMgMDcgZm9yIHBhdHRlcm4gTU0vZGQveXkgeiBwYXNzZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb3ZlciByYXcgZGlnaXRzIChSRkM4MjIpIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjA3LzEwLzUzICswNyIpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2Ugb2YgMDcvMTAvNTMgKzA3IGZvciBwYXR0ZXJuIE1NL2RkL3l5IHogZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGNvdmVyIHJhdyBkaWdpdHMgKFJGQzgyMikgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IGZtdC5wYXJzZSgiMDcvMTAvNTMgLTA3MzAiKTsKKyAgICAgICAgICAgICAgICBsb2dsbigib2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhcnNlIG9mIDA3LzEwLzUzIC0wMDczMCBmb3IgcGF0dGVybiBNTS9kZC95eSB6IGZhaWxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb3ZlciByYXcgZGlnaXRzIChSRkM4MjIpIGluIERTVAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmbXQuc2V0VGltZVpvbmUoVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBEVCIpKTsKKyAgICAgICAgICAgICAgICBEYXRlIGQgPSBmbXQucGFyc2UoIjA3LzEwLzUzIC0wNzMwIik7CisgICAgICAgICAgICAgICAgbG9nbG4oIm9rIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJQYXJzZSBvZiAwNy8xMC81MyAtMDczMCBmb3IgcGF0dGVybiBNTS9kZC95eSB6IGZhaWxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBUT0RPOiByZXZpc2l0IHRvTG9jYWxpemVkUGF0dGVybgorICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoImFhYmJjYyIpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0ID0gZm10LnRvTG9jYWxpemVkUGF0dGVybigpOworICAgICAgICAgICAgICAgIGVycmxuKCJ3aG9vcHMsIHNob3VsZG4ndCBoYXZlIGJlZW4gYWJsZSB0byBsb2NhbGl6ZSBhYWJiY2MiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJhYWJiY2MgbG9jYWxpemUgb2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIidhYWJiY2MiKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdCA9IGZtdC50b0xvY2FsaXplZFBhdHRlcm4oKTsKKyAgICAgICAgICAgICAgICBlcnJsbigid2hvb3BzLCBsb2NhbGl6ZSB1bmNsb3NlZCBxdW90ZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oImxvY2FsaXplIHVuY2xvc2VkIHF1b3RlIG9rIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU0vZGQveXkgeiIpOworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiMDgvMTUvNTggREJEWSI7IC8vIGJvZ3VzIHRpbWUgem9uZQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmbXQucGFyc2UodGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oInJlY29nbml6ZWQgYm9ndXMgdGltZSB6b25lIERCRFkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oInRpbWUgem9uZSBleCBvayIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICAvLyBmb3JjZSBmYWxsYmFjayB0byBkZWZhdWx0IHRpbWV6b25lIHdoZW4gZm10IHRpbWV6b25lIAorICAgICAgICAgICAgLy8gaXMgbm90IG5hbWVkCisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJNTS9kZC95eSB6Iik7CisgICAgICAgICAgICAvLyBmb3JjZSBmYWxsYmFjayB0byBkZWZhdWx0IHRpbWUgem9uZSwgc3RpbGwgZmFpbHMKKyAgICAgICAgICAgIGZtdC5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UKzAxNDciKSk7IC8vIG5vdCBpbiBlcXVpdmFsZW5jeSBncm91cAorICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiMDgvMTUvNTggREJEWSI7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZtdC5wYXJzZSh0ZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2Ugb2YgMDcvMTAvNTMgREJEWSBmb3IgcGF0dGVybiBNTS9kZC95eSB6IHBhc3NlZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigidGltZSB6b25lIGV4MiBvayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBmb3JjZSBzdWNjZXNzIG9uIGZhbGxiYWNrCisgICAgICAgICAgICB0ZXh0ID0gIjA4LzE1LzU4ICIgKyBUaW1lWm9uZS5nZXREZWZhdWx0KCkuZ2V0SUQoKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm10LnBhcnNlKHRleHQpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJmb3VuZCBkZWZhdWx0IHR6Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ3aG9vcHMsIGdvdCBwYXJzZSBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgLy8gZm9yY2UgZmFsbGJhY2sgdG8gc3ltYm9scyBsaXN0IG9mIHRpbWV6b25lcyB3aGVuIG5laXRoZXIgCisgICAgICAgICAgICAvLyBmbXQgYW5kIGRlZmF1bHQgdGltZXpvbmUgaXMgbmFtZWQKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NL2RkL3l5IHoiKTsKKyAgICAgICAgICAgIFRpbWVab25lIG9sZHR6ID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgVGltZVpvbmUgbmV3dHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UKzAxMzciKTsgLy8gbm9uc3RhbmRhcmQgdHoKKyAgICAgICAgICAgIGZtdC5zZXRUaW1lWm9uZShuZXd0eik7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KG5ld3R6KTsgLy8gdG9kbzogZml4IHNlY3VyaXR5IGlzc3VlCisKKyAgICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIHN5bWJvbCBsaXN0LCBidXQgZmFpbAorICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiMDgvMTUvNTggREJEWSI7IC8vIHRyeSB0byBwYXJzZSB0aGUgYm9ndXMgdGltZSB6b25lCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZtdC5wYXJzZSh0ZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyc2Ugb2YgMDcvMTAvNTMgREJEWSBmb3IgcGF0dGVybiBNTS9kZC95eSB6IHBhc3NlZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigidGltZSB6b25lIGV4MyBvayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy8gaG1tbS4uLiB0aGlzIHNob3VsZG4ndCBoYXBwZW4uICBkb24ndCB3YW50IHRvIGV4aXQgdGhpcworICAgICAgICAgICAgICAgIC8vIGZuIHdpdGggdGltZXpvbmUgaW1wcm9wZXJseSBzZXQsIHNvIGp1c3QgaW4gY2FzZQorICAgICAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQob2xkdHopOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBjcmVhdGUgREZTIHRoYXQgcmVjb2duaXplcyBvdXIgYm9ndXMgdGltZSB6b25lLCBzb3J0b2YKKyAgICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHhzeW0gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgICAgIFN0cmluZ1tdW10gdHppZHMgPSB4c3ltLmdldFpvbmVTdHJpbmdzKCk7CisgICAgICAgICAgICBpZiAodHppZHMubGVuZ3RoID4gMCkgeyAvLyBsZXQncyBob3BlIQorICAgICAgICAgICAgICAgIHR6aWRzWzBdWzFdID0gIkRCRFkiOyAvLyBjaGFuZ2UgYSBsb2NhbCBuYW1lCisgICAgICAgICAgICAgICAgbG9nbG4oInJlcGxhY2VkICciICsgdHppZHNbMF1bMF0gKyAiJyB3aXRoIERCRFkiKTsKKworICAgICAgICAgICAgICAgIHhzeW0uc2V0Wm9uZVN0cmluZ3ModHppZHMpOworICAgICAgICAgICAgICAgIGZtdC5zZXREYXRlRm9ybWF0U3ltYm9scyh4c3ltKTsKKworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGZtdC5wYXJzZSh0ZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIndlIHBhcnNlZCBEQkRZIChhcyBHTVQsIGJ1dCBzdGlsbC4uLikiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImhleSwgc3RpbGwgZGlkbid0IHJlY29nbml6ZSBEQkRZIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KG9sZHR6KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB7CisgICAgICAgICAgICAvL2NvdmVyIGdldEF2YWlsYWJsZVVMb2NhbGVzCisgICAgICAgICAgICBmaW5hbCBVTG9jYWxlW10gbG9jYWxlcyA9IERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgICAgIGxvbmcgY291bnQgPSBsb2NhbGVzLmxlbmd0aDsKKyAgICAgICAgICAgIGlmIChjb3VudD09MCkgeworICAgICAgICAgICAgICAgIGVycmxuKCIgZ290IGEgZW1wdHkgbGlzdCBmb3IgZ2V0QXZhaWxhYmxlVUxvY2FsZXMiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvZ2xuKCIiICsgY291bnQgKyAiIGF2YWlsYWJsZSB1bG9jYWxlcyIpOyAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICAvL2NvdmVyIERhdGVGb3JtYXRTeW1ib2xzLmdldERhdGVGb3JtYXRCdW5kbGUKKyAgICAgICAgICAgIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICAgICAgTG9jYWxlIGxvYyA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBteXN5bSA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhjYWwsIGxvYyk7CisgICAgICAgICAgICBpZiAobXlzeW0gPT0gbnVsbCkgCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnN0cnVjdHMgRGF0ZUZvcm1hdFN5bWJvbHMgd2l0aCBjYWxlbmRhciBhbmQgbG9jYWxlIGZhaWxlZCIpOworICAgICAgICAgICAgCisgICAgICAgICAgICB1bG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSByZXNiID0gRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0RGF0ZUZvcm1hdEJ1bmRsZShjYWwsIGxvYyk7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSByZXNiMiA9IERhdGVGb3JtYXRTeW1ib2xzLmdldERhdGVGb3JtYXRCdW5kbGUoY2FsLCB1bG9jKTsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIHJlc2IzID0gRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0RGF0ZUZvcm1hdEJ1bmRsZShjYWwuZ2V0Q2xhc3MoKSwgbG9jKTsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIHJlc2I0ID0gRGF0ZUZvcm1hdFN5bWJvbHMuZ2V0RGF0ZUZvcm1hdEJ1bmRsZShjYWwuZ2V0Q2xhc3MoKSwgdWxvYyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIChUb0RvKSBOb3Qgc3VyZSBob3cgdG8gY29uc3RydWN0IHJlc291cmNlQnVuZGxlIGZvciB0aGlzIHRlc3QKKyAgICAgICAgICAgICAgICBTbyBjb21tZW50IG91dCB0aGUgdmVyaWZ5aW5nIGNvZGUuIAorICAgICAgICAgICAgaWYgKCFyZXNiLmVxdWFscyhyZXNiMikgfHwgCisgICAgICAgICAgICAgICAgIXJlc2IuZXF1YWxzKHJlc2IzKSB8fAorICAgICAgICAgICAgICAgICFyZXNiLmVxdWFscyhyZXNiNCkgKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXREYXRlRm9ybWF0QnVuZGxlIGZhaWxlZCEiKTsgICAgICAgICAgICAKKyAgICAgICAgICAgICovCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHBhcnNpbmcuICBJbnB1dCBpcyBhbiBhcnJheSB0aGF0IHN0YXJ0cyB3aXRoIHRoZSBmb2xsb3dpbmcKKyAgICAgKiBoZWFkZXI6CisgICAgICoKKyAgICAgKiBbMF0gICA9IHBhdHRlcm4gc3RyaW5nIHRvIHBhcnNlIFtpKzJdIHdpdGgKKyAgICAgKgorICAgICAqIGZvbGxvd2VkIGJ5IHRlc3QgY2FzZXMsIGVhY2ggb2Ygd2hpY2ggaXMgMyBhcnJheSBlbGVtZW50czoKKyAgICAgKgorICAgICAqIFtpXSAgID0gcGF0dGVybiwgb3IgbnVsbCB0byByZXVzZSBwcmlvciBwYXR0ZXJuCisgICAgICogW2krMV0gPSBpbnB1dCBzdHJpbmcKKyAgICAgKiBbaSsyXSA9IGV4cGVjdGVkIHBhcnNlIHJlc3VsdCAocGFyc2VkIHdpdGggcGF0dGVybiBbMF0pCisgICAgICoKKyAgICAgKiBJZiBleHBlY3QgcGFyc2UgZmFpbHVyZSwgdGhlbiBbaSsyXSBzaG91bGQgYmUgbnVsbC4KKyAgICAgKi8KKyAgICB2b2lkIGV4cGVjdFBhcnNlKFN0cmluZ1tdIGRhdGEsIExvY2FsZSBsb2MpIHsKKyAgICAgICAgRGF0ZSBGQUlMID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIEZBSUxfU1RSID0gInBhcnNlIGZhaWx1cmUiOworICAgICAgICBpbnQgaSA9IDA7CisKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiIiwgbG9jKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCByZWYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChkYXRhW2krK10sIGxvYyk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZ290Zm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIkcgeXl5eSBNTSBkZCBISDptbTpzcyB6IiwgbG9jKTsKKworICAgICAgICBTdHJpbmcgY3VycmVudFBhdCA9IG51bGw7CisgICAgICAgIHdoaWxlIChpPGRhdGEubGVuZ3RoKSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiAgPSBkYXRhW2krK107CisgICAgICAgICAgICBTdHJpbmcgaW5wdXQgICAgPSBkYXRhW2krK107CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSBkYXRhW2krK107CisKKyAgICAgICAgICAgIGlmIChwYXR0ZXJuICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICAgICAgICAgIGN1cnJlbnRQYXQgPSBwYXR0ZXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIGdvdHN0ciA9IEZBSUxfU1RSOworICAgICAgICAgICAgRGF0ZSBnb3Q7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGdvdCA9IGZtdC5wYXJzZShpbnB1dCk7CisgICAgICAgICAgICAgICAgZ290c3RyID0gZ290Zm10LmZvcm1hdChnb3QpOworICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgICAgICBnb3QgPSBGQUlMOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBEYXRlIGV4cCA9IEZBSUw7CisgICAgICAgICAgICBTdHJpbmcgZXhwc3RyID0gRkFJTF9TVFI7CisgICAgICAgICAgICBpZiAoZXhwZWN0ZWQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGV4cHN0ciA9IGV4cGVjdGVkOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGV4cCA9IHJlZi5wYXJzZShleHBzdHIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBJbnRlcm5hbCB0ZXN0IGVycm9yIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZ290ID09IGV4cCB8fCAoZ290ICE9IG51bGwgJiYgZ290LmVxdWFscyhleHApKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGlucHV0ICsgIiB4ICIgKworICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYXQgKyAiID0+ICIgKyBnb3RzdHIpOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBpbnB1dCArICIgeCAiICsKKyAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGF0ICsgIiA9PiAiICsgZ290c3RyICsgIiwgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgZXhwc3RyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGZvcm1hdHRpbmcgYW5kIHBhcnNpbmcuICBJbnB1dCBpcyBhbiBhcnJheSBvZiBTdHJpbmcgdGhhdCBzdGFydHMKKyAgICAgKiB3aXRoIGEgc2luZ2xlICdoZWFkZXInIGVsZW1lbnQKKyAgICAgKgorICAgICAqIFswXSAgID0gcmVmZXJlbmNlIGRhdGVmb3JtYXQgcGF0dGVybiBzdHJpbmcgKHJlZikKKyAgICAgKgorICAgICAqIGZvbGxvd2VkIGJ5IHRlc3QgY2FzZXMsIGVhY2ggb2Ygd2hpY2ggaXMgNCBvciA1IGVsZW1lbnRzOgorICAgICAqCisgICAgICogW2ldICAgPSB0ZXN0IGRhdGVmb3JtYXQgcGF0dGVybiBzdHJpbmcgKHRlc3QpLCBvciBudWxsIHRvIHJldXNlIHByaW9yIHRlc3QgcGF0dGVybgorICAgICAqIFtpKzFdID0gY29udHJvbCBzdHJpbmcsIGVpdGhlciAiZnAiLCAicGYiLCBvciAiRiIuCisgICAgICogW2krMl0gPSBkYXRhIHN0cmluZyBBCisgICAgICogW2krM10gPSBkYXRhIHN0cmluZyBCCisgICAgICogW2krNF0gPSBkYXRhIHN0cmluZyBDIChub3QgcHJlc2VudCBmb3IgJ0YnIGNvbnRyb2wgc3RyaW5nKQorICAgICAqCisgICAgICogTm90ZTogdGhlIG51bWJlciBvZiBkYXRhIHN0cmluZ3MgZGVwZW5kcyBvbiB0aGUgY29udHJvbCBzdHJpbmcuCisgICAgICoKKyAgICAgKiBmcCBmb3JtYXRzIGEgZGF0ZSwgY2hlY2tzIHRoZSByZXN1bHQsIHRoZW4gcGFyc2VzIHRoZSByZXN1bHQgYW5kIGNoZWNrcyBhZ2FpbnN0IGEgKHBvc3NpYmx5IGRpZmZlcmVudCkgZGF0ZQorICAgICAqIHBmIHBhcnNlcyBhIHN0cmluZywgY2hlY2tzIHRoZSByZXN1bHQsIHRoZW4gZm9ybWF0cyB0aGUgcmVzdWx0IGFuZCBjaGVja3MgYWdhaW5zdCBhIChwb3NzaWJseSBkaWZmZXJlbnQpIHN0cmluZworICAgICAqIEYgaXMgYSBzaG9ydGhhbmQgZm9yIGZwIHdoZW4gdGhlIHNlY29uZCBkYXRlIGlzIHRoZSBzYW1lIGFzIHRoZSBmaXJzdAorICAgICAqIFAgaXMgYSBzaG9ydGhhbmQgZm9yIHBmIHdoZW4gdGhlIHNlY29uZCBzdHJpbmcgaXMgdGhlIHNhbWUgYXMgdGhlIGZpcnN0CisgICAgICoKKyAgICAgKiBFeGFtcGxlczoKKyAgICAgKiAoZnApICJ5L00vZCBIOm1tOnNzLlNTIiwgImZwIiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEuNTY3IiwgIjIwMDQvMy8xMCAxNjozNjozMS41NiIsICIyMDA0IDAzIDEwIDE2OjM2OjMxLjU2MCIsCisgICAgICogLS0gcmVmLnBhcnNlIEEsIGdldCB0MAorICAgICAqIC0tIHRlc3QuZm9ybWF0IHQwLCBnZXQgcjAKKyAgICAgKiAtLSBjb21wYXJlIHIwIHRvIEIsIGZhaWwgaWYgbm90IGVxdWFsCisgICAgICogLS0gdGVzdC5wYXJzZSBCLCBnZXQgdDEKKyAgICAgKiAtLSByZWYucGFyc2UgQywgZ2V0IHQyCisgICAgICogLS0gY29tcGFyZSB0MSBhbmQgdDIsIGZhaWwgaWYgbm90IGVxdWFsCisgICAgICoKKyAgICAgKiAoRikgInkvTS9kIEg6bW06c3MuU1NTIiwgIkYiLCAiMjAwNCAwMyAxMCAxNjozNjozMS41NjciLCAiMjAwNC8zLzEwIDE2OjM2OjMxLjU2NyIKKyAgICAgKiAtLSByZWYucGFyc2UgQSwgZ2V0IHQwCisgICAgICogLS0gdGVzdC5mb3JtYXQgdDAsIGdldCByMAorICAgICAqIC0tIGNvbXBhcmUgcjAgdG8gQiwgZmFpbCBpZiBub3QgZXF1YWwKKyAgICAgKiAtLSB0ZXN0LnBhcnNlIEIsIGdldCB0MQorICAgICAqIC0tIGNvbXBhcmUgdDEgYW5kIHQwLCBmYWlsIGlmIG5vdCBlcXVhbAorICAgICAqCisgICAgICogKHBmKSAieS9NL2QgSDptbTpzcy5TU1NTIiwgInBmIiwgIjIwMDQvMy8xMCAxNjozNjozMS41Njc5IiwgIjIwMDQgMDMgMTAgMTY6MzY6MzEuNTY3IiwgIjIwMDQvMy8xMCAxNjozNjozMS41NjcwIiwKKyAgICAgKiAtLSB0ZXN0LnBhcnNlIEEsIGdldCB0MAorICAgICAqIC0tIHJlZi5wYXJzZSBCLCBnZXQgdDEKKyAgICAgKiAtLSBjb21wYXJlIHQwIHRvIHQxLCBmYWlsIGlmIG5vdCBlcXVhbAorICAgICAqIC0tIHRlc3QuZm9ybWF0IHQxLCBnZXQgcjAKKyAgICAgKiAtLSBjb21wYXJlIHIwIGFuZCBDLCBmYWlsIGlmIG5vdCBlcXVhbAorICAgICAqCisgICAgICogKFApICJ5L00vZCBIOm1tOnNzLlNTU1MiLCAiUCIsICIyMDA0LzMvMTAgMTY6MzY6MzEuNTY3OSIsICIyMDA0IDAzIDEwIDE2OjM2OjMxLjU2NyIiLAorICAgICAqIC0tIHRlc3QucGFyc2UgQSwgZ2V0IHQwCisgICAgICogLS0gcmVmLnBhcnNlIEIsIGdldCB0MQorICAgICAqIC0tIGNvbXBhcmUgdDAgdG8gdDEsIGZhaWwgaWYgbm90IGVxdWFsCisgICAgICogLS0gdGVzdC5mb3JtYXQgdDEsIGdldCByMAorICAgICAqIC0tIGNvbXBhcmUgcjAgYW5kIEEsIGZhaWwgaWYgbm90IGVxdWFsCisgICAgICovCisgICAgdm9pZCBleHBlY3QoU3RyaW5nW10gZGF0YSwgTG9jYWxlIGxvYykgeworICAgICAgICBpbnQgaSA9IDE7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgdW5pdiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJFRSBHIHl5eXkgTU0gZGQgSEg6bW06c3MuU1NTIHp6eiIsIGxvYyk7CisgICAgICAgIFN0cmluZyBjdXJyZW50UGF0ID0gbnVsbDsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCByZWYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChkYXRhWzBdLCBsb2MpOworCisgICAgICAgIHdoaWxlIChpPGRhdGEubGVuZ3RoKSB7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCIiLCBsb2MpOworICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4gID0gZGF0YVtpKytdOworICAgICAgICAgICAgaWYgKHBhdHRlcm4gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZtdC5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgICAgICAgICAgY3VycmVudFBhdCA9IHBhdHRlcm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBjb250cm9sID0gZGF0YVtpKytdOworCisgICAgICAgICAgICBpZiAoY29udHJvbC5lcXVhbHMoImZwIikgfHwgY29udHJvbC5lcXVhbHMoIkYiKSkgeworICAgICAgICAgICAgICAgIC8vICdmJworICAgICAgICAgICAgICAgIFN0cmluZyBkYXRlc3RyID0gZGF0YVtpKytdOworICAgICAgICAgICAgICAgIFN0cmluZyBzdHJpbmcgPSBkYXRhW2krK107CisgICAgICAgICAgICAgICAgU3RyaW5nIGRhdGVzdHIyID0gZGF0ZXN0cjsKKyAgICAgICAgICAgICAgICBpZiAoY29udHJvbC5sZW5ndGgoKSA9PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGVzdHIyID0gZGF0YVtpKytdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBEYXRlIGRhdGUgPSBudWxsOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGUgPSByZWYucGFyc2UoZGF0ZXN0cik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogSW50ZXJuYWwgdGVzdCBlcnJvcjsgY2FuJ3QgcGFyc2UgIiArIGRhdGVzdHIpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJcIiIgKyBjdXJyZW50UGF0ICsgIlwiLmZvcm1hdCgiICsgZGF0ZXN0ciArICIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbXQuZm9ybWF0KGRhdGUpKTsKKyAgICAgICAgICAgICAgICAvLyAncCcKKyAgICAgICAgICAgICAgICBpZiAoIWRhdGVzdHIyLmVxdWFscyhkYXRlc3RyKSkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSA9IHJlZi5wYXJzZShkYXRlc3RyMik7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogSW50ZXJuYWwgdGVzdCBlcnJvcjsgY2FuJ3QgcGFyc2UgIiArIGRhdGVzdHIyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIERhdGUgcGFyc2VkYXRlID0gZm10LnBhcnNlKHN0cmluZyk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygiXCIiICsgY3VycmVudFBhdCArICJcIi5wYXJzZSgiICsgc3RyaW5nICsgIikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdi5mb3JtYXQoZGF0ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml2LmZvcm1hdChwYXJzZWRhdGUpKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlMykgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogXCIiICsgY3VycmVudFBhdCArICJcIi5wYXJzZSgiICsgc3RyaW5nICsgIikgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIGUzKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoY29udHJvbC5lcXVhbHMoInBmIikgfHwgY29udHJvbC5lcXVhbHMoIlAiKSkgeworICAgICAgICAgICAgICAgIC8vICdwJworICAgICAgICAgICAgICAgIFN0cmluZyBzdHJpbmcgPSBkYXRhW2krK107CisgICAgICAgICAgICAgICAgU3RyaW5nIGRhdGVzdHIgPSBkYXRhW2krK107CisgICAgICAgICAgICAgICAgU3RyaW5nIHN0cmluZzIgPSBzdHJpbmc7CisgICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wubGVuZ3RoKCkgPT0gMikgeworICAgICAgICAgICAgICAgICAgICBzdHJpbmcyID0gZGF0YVtpKytdOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIERhdGUgZGF0ZSA9IG51bGw7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZSA9IHJlZi5wYXJzZShkYXRlc3RyKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBJbnRlcm5hbCB0ZXN0IGVycm9yOyBjYW4ndCBwYXJzZSAiICsgZGF0ZXN0cik7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBEYXRlIHBhcnNlZGF0ZSA9IGZtdC5wYXJzZShzdHJpbmcpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlwiIiArIGN1cnJlbnRQYXQgKyAiXCIucGFyc2UoIiArIHN0cmluZyArICIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXYuZm9ybWF0KGRhdGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdi5mb3JtYXQocGFyc2VkYXRlKSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZTIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFwiIiArIGN1cnJlbnRQYXQgKyAiXCIucGFyc2UoIiArIHN0cmluZyArICIpID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBlMik7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyAnZicKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlwiIiArIGN1cnJlbnRQYXQgKyAiXCIuZm9ybWF0KCIgKyBkYXRlc3RyICsgIikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbXQuZm9ybWF0KGRhdGUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBJbnZhbGlkIGNvbnRyb2wgc3RyaW5nICIgKyBjb250cm9sKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgLyoKKyAgICBwdWJsaWMgdm9pZCBUZXN0SkI0NzU3KCl7CisgICAgICAgIERhdGVGb3JtYXQgZGZtdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgVUxvY2FsZS5ST09UKTsKKyAgICB9CisgICAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvR2xvYmFsaXphdGlvblByZWZlcmVuY2VzVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9HbG9iYWxpemF0aW9uUHJlZmVyZW5jZXNUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFjNmM2OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvR2xvYmFsaXphdGlvblByZWZlcmVuY2VzVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTYzIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlByaW50U3RyZWFtOworaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuR2xvYmFsaXphdGlvblByZWZlcmVuY2VzOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworCitwdWJsaWMgY2xhc3MgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzVGVzdCB7CisJLyoqCisJICogSnVzdCBmb3IgdGVzdGluZyByaWdodCBub3cuIFdpbGwgcmVtb3ZlIGxhdGVyLgorCSAqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIFRZUEVOQU1FUyA9IHsKKwkJImxvY2FsZSIsICJsYW5ndWFnZSIsICJzY3JpcHQiLCAidGVycml0b3J5IiwgInZhcmlhbnQiLAorCQkia2V5d29yZCIsICJrZXl3b3JkPXZhbHVlIiwKKwkJImN1cnJlbmN5IiwgImN1cnJlbmN5LXN5bWJvbCIsICJ0aW1lem9uZSIKKwl9OworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIENvbnRleHROYW1lcyA9IHsiZm9ybWF0IiwgInN0YW5kYWxvbmUifTsKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBXaWR0aE5hbWVzID0geyJhYmJyZXZpYXRlZCIsICJ3aWRlIiwgIm5hcnJvdyJ9OworCQorCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisJCVByaW50U3RyZWFtIG91dCA9IFN5c3RlbS5vdXQ7CisJCS8vUHJpbnRXcml0ZXIgb3V0ID0gQmFnRm9ybWF0dGVyLm9wZW5VVEY4V3JpdGVyKCJjOi8iLCAidGVtcEZpbGUudHh0Iik7CisJCXRyeSB7CisJCQlEYXRlIG5vdyA9IG5ldyBEYXRlKCk7CisJCQkKKwkJCUdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBsUHJlZmVyZW5jZXMgPSBuZXcgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzKCk7CisKKwkJCW91dC5wcmludGxuKCJTYW1wbGVzIGZyb20gR2xvYmFsaXphdGlvbiBQcmVmZXJlbmNlcyBwcm90b3R5cGUiKTsKKwkJCW91dC5wcmludGxuKCJcdFdhcm5pbmc6IHNvbWUgb2YgdGhpcyBpcyBqdXN0IG1vY2t1cCAtLSByZWFsIGRhdGEgd2lsbCBiZSBhY2Nlc3NlZCBsYXRlci4iKTsKKwkJCW91dC5wcmludGxuKCk7CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJCQlvdXQucHJpbnRsbigiQ2hlY2sgZGVmYXVsdGluZyIpOworCQkJU3RyaW5nW10gbG9jYWxlTGlzdCA9IHsiZnJfQkU7cT0wLjUsZGUiLCAiZnJfQkUsZGUiLCAiZnIiLCAiZW5fTloiLCAiZW4iLCAiZW4tVEgiLCAiemgtSGFudCIsICJ6aC1NTyIsICJ6aCIsICJpdCIsICJhcyIsICJoYXciLCAiYXItRUciLCAiYXIiLCAicXFxIn07CisJCQlmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZUxpc3QubGVuZ3RoOyArK2kpIHsKKwkJCQlsUHJlZmVyZW5jZXMuc2V0TG9jYWxlcyhsb2NhbGVMaXN0W2ldKTsKKwkJCQlvdXQucHJpbnRsbigiXHRkZWZhdWx0cyBmb3I6IFx0IiArIGxvY2FsZUxpc3RbaV0gKyAiXHQiCisJCQkJCQkrIGxQcmVmZXJlbmNlcy5nZXRMb2NhbGVzKCkKKwkJCQkJCSsgIiwgXHQiICsgbFByZWZlcmVuY2VzLmdldFRlcnJpdG9yeSgpCisJCQkJCQkrICIsIFx0IiArIGxQcmVmZXJlbmNlcy5nZXRDdXJyZW5jeSgpCisJCQkJCQkrICIsIFx0IiArIGxQcmVmZXJlbmNlcy5nZXRDYWxlbmRhcigpLmdldENsYXNzKCkKKwkJCQkJCSsgIiwgXHQiICsgbFByZWZlcmVuY2VzLmdldFRpbWVab25lKCkuZ2V0SUQoKQorCQkJCSk7CisJCQl9CisJCQkKKwkJCW91dC5wcmludGxuKCk7CisvLyNlbmRpZgorCisJCQlvdXQucHJpbnRsbigiRGF0ZSBGb3JtYXR0aW5nIik7CisJCQlvdXQucHJpbnRsbigiXHRkYXRlOiBcdCIgKyBsUHJlZmVyZW5jZXMuZ2V0RGF0ZUZvcm1hdChEYXRlRm9ybWF0LkZVTEwsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5OT05FKS5mb3JtYXQobm93KSk7CisJCQkKKwkJCW91dC5wcmludGxuKCJzZXR0aW5nIGxvY2FsZSB0byBHZXJtYW55Iik7CisJCQlsUHJlZmVyZW5jZXMuc2V0TG9jYWxlKFVMb2NhbGUuR0VSTUFOWSk7CisJCQlvdXQucHJpbnRsbigiXHRkYXRlOiBcdCIgKyBsUHJlZmVyZW5jZXMuZ2V0RGF0ZUZvcm1hdChEYXRlRm9ybWF0LkZVTEwsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5OT05FKS5mb3JtYXQobm93KSk7CisJCQkKKwkJCW91dC5wcmludGxuKCJzZXR0aW5nIGRhdGUgbG9jYWxlIHRvIEZyYW5jZSIpOworCQkJbFByZWZlcmVuY2VzLnNldERhdGVMb2NhbGUoVUxvY2FsZS5GUkFOQ0UpOworCQkJb3V0LnByaW50bG4oIlx0ZGF0ZTogXHQiICsgbFByZWZlcmVuY2VzLmdldERhdGVGb3JtYXQoRGF0ZUZvcm1hdC5GVUxMLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTk9ORSkuZm9ybWF0KG5vdykpOworCQkJCisJCQlvdXQucHJpbnRsbigic2V0dGluZyBleHBsaWNpdCBwYXR0ZXJuIik7CisJCQlsUHJlZmVyZW5jZXMuc2V0RGF0ZUZvcm1hdChEYXRlRm9ybWF0LkZVTEwsIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5OT05FLCAiR0dHIHl5eXkrTU1NK0REIHZ2dnYiKTsKKwkJCW91dC5wcmludGxuKCJcdGRhdGU6IFx0IiArIGxQcmVmZXJlbmNlcy5nZXREYXRlRm9ybWF0KERhdGVGb3JtYXQuRlVMTCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5PTkUpLmZvcm1hdChub3cpKTsKKwkJCQorCQkJb3V0LnByaW50bG4oInNldHRpbmcgZGF0ZSBmb3JtYXQgdG8geXl5eS1NTU0tZGQgKEl0YWx5KSIpOworCQkJU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieXl5eS1NTU0tZGQiLFVMb2NhbGUuSVRBTFkpOworCQkJbFByZWZlcmVuY2VzLnNldERhdGVGb3JtYXQoRGF0ZUZvcm1hdC5GVUxMLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTk9ORSwgc2RmKTsKKwkJCW91dC5wcmludGxuKCJcdGRhdGU6IFx0IiArIGxQcmVmZXJlbmNlcy5nZXREYXRlRm9ybWF0KERhdGVGb3JtYXQuRlVMTCwgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLk5PTkUpLmZvcm1hdChub3cpKTsKKwkJCQorCQkJb3V0LnByaW50bG4oKTsKKwkJCW91dC5wcmludGxuKCJWYXJpb3VzIG5hbWVkIGRhdGUgZmllbGRzIik7CisJCQlTaW1wbGVEYXRlRm9ybWF0IGRmID0gKFNpbXBsZURhdGVGb3JtYXQpbFByZWZlcmVuY2VzLmdldERhdGVGb3JtYXQoRGF0ZUZvcm1hdC5GVUxMLCBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTk9ORSk7CisJCQlEYXRlRm9ybWF0U3ltYm9scyBkZnMgPSBkZi5nZXREYXRlRm9ybWF0U3ltYm9scygpOworCQkJCisJCQlmb3IgKGludCBjb250ZXh0ID0gZGZzLkZPUk1BVDsgY29udGV4dCA8PSBkZnMuU1RBTkRBTE9ORTsgKytjb250ZXh0KSB7CisJCQkJb3V0LnByaW50bG4oImNvbnRleHQ6ICIgKyBDb250ZXh0TmFtZXNbY29udGV4dC1kZnMuRk9STUFUXSk7CisJCQkJZm9yIChpbnQgd2lkdGggPSBkZnMuQUJCUkVWSUFURUQ7IHdpZHRoIDw9IGRmcy5OQVJST1c7ICsrd2lkdGgpIHsKKwkJCQkJb3V0LnByaW50bG4oIlx0d2lkdGg6ICIgKyBXaWR0aE5hbWVzW3dpZHRoLWRmcy5BQkJSRVZJQVRFRF0pOworCQkJCQlvdXQucHJpbnRsbigiXHRcdGdldEFtUG1TdHJpbmdzOlx0IiArIEFycmF5cy5hc0xpc3QoZGZzLmdldEFtUG1TdHJpbmdzKCkpKTsKKwkJCQkJb3V0LnByaW50bG4oIlx0XHRnZXRFcmFzXHQiICsgQXJyYXlzLmFzTGlzdCgod2lkdGggPiAwID8gZGZzLmdldEVyYU5hbWVzKCkgOiBkZnMuZ2V0RXJhcygpKSkpOworCQkJCQlvdXQucHJpbnRsbigiXHRcdGdldE1vbnRoczpcdCIgKyBBcnJheXMuYXNMaXN0KGRmcy5nZXRNb250aHMoY29udGV4dCwgd2lkdGgpKSk7CisJCQkJCW91dC5wcmludGxuKCJcdFx0Z2V0V2Vla2RheXM6XHQiICsgQXJyYXlzLmFzTGlzdChkZnMuZ2V0V2Vla2RheXMoY29udGV4dCwgd2lkdGgpKSk7CisJCQkJfQorCQkJfQorCQkJCisJCQkvLyBub3cgc2hvdyBjdXJyZW5jaWVzCisJCQlvdXQucHJpbnRsbigpOworCQkJb3V0LnByaW50bG4oIkN1cnJlbmN5IEZvcm1hdHRpbmciKTsKKwkJCW91dC5wcmludGxuKCJcdGN1cnJlbmN5OiBcdCIgKyBsUHJlZmVyZW5jZXMuZ2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5DVVJSRU5DWSkuZm9ybWF0KDEyMzQuNTY3KSk7CisJCQkKKwkJCW91dC5wcmludGxuKCJzZXR0aW5nIG51bWJlciBsb2NhbGUgdG8gQ2FuYWRhIik7CisJCQlsUHJlZmVyZW5jZXMuc2V0TnVtYmVyTG9jYWxlKFVMb2NhbGUuQ0FOQURBKTsKKwkJCW91dC5wcmludGxuKCJcdGN1cnJlbmN5OiBcdCIgKyBsUHJlZmVyZW5jZXMuZ2V0TnVtYmVyRm9ybWF0KEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5DVVJSRU5DWSkuZm9ybWF0KDEyMzQuNTY3KSk7CisJCQkKKwkJCW91dC5wcmludGxuKCJzZXR0aW5nIGN1cnJlbmN5IHRvIElOUiIpOyAKKwkJCWxQcmVmZXJlbmNlcy5zZXRDdXJyZW5jeShDdXJyZW5jeS5nZXRJbnN0YW5jZSgiSU5SIikpOworCQkJb3V0LnByaW50bG4oIlx0Y3VycmVuY3k6IFx0IiArIGxQcmVmZXJlbmNlcy5nZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkNVUlJFTkNZKS5mb3JtYXQoMTIzNC41NjcpKTsKKwkJCQorCQkJb3V0LnByaW50bG4oInNldHRpbmcgbnVtYmVyIGxvY2FsZSB0byBIaW5kaS1JbmRpYSIpOyAKKwkJCWxQcmVmZXJlbmNlcy5zZXROdW1iZXJMb2NhbGUobmV3IFVMb2NhbGUoImhpLUlOIikpOworCQkJb3V0LnByaW50bG4oIlx0Y3VycmVuY3k6IFx0IiArIGxQcmVmZXJlbmNlcy5nZXROdW1iZXJGb3JtYXQoR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkNVUlJFTkNZKS5mb3JtYXQoMTIzNC41NjcpKTsKKwkJCQorCQkJb3V0LnByaW50bG4oKTsKKwkJCW91dC5wcmludGxuKCJDb21wYXJpc29uIik7CisJCQlvdXQucHJpbnRsbigic2V0dGluZyBudW1iZXIgbG9jYWxlIHRvIEdlcm1hbnkiKTsKKwkJCWxQcmVmZXJlbmNlcy5zZXRMb2NhbGUoVUxvY2FsZS5HRVJNQU5ZKTsKKwkJCW91dC5wcmludGxuKCJcdGNvbXBhcmU6IFx1MDBlNCAmIHogXHQiICsgbFByZWZlcmVuY2VzLmdldENvbGxhdG9yKCkuY29tcGFyZSgiXHUwMGU0IiwgInoiKSk7CisKKwkJCW91dC5wcmludGxuKCJzZXR0aW5nIG51bWJlciBsb2NhbGUgdG8gU3dlZGlzaCIpOworCQkJbFByZWZlcmVuY2VzLnNldExvY2FsZShuZXcgVUxvY2FsZSgic3YiKSk7CisJCQlvdXQucHJpbnRsbigiXHRjb21wYXJlOiBcdTAwZTQgJiB6IFx0IiArIGxQcmVmZXJlbmNlcy5nZXRDb2xsYXRvcigpLmNvbXBhcmUoIlx1MDBlNCIsICJ6IikpOworCisJCQkvLyBub3cgdHJ5IGEgZmFsbGJhY2sgd2l0aGluIGxvY2FsZXMKKwkJCW91dC5wcmludGxuKCk7CisJCQlvdXQucHJpbnRsbigiRGlzcGxheSBOYW1lcyIpOworCQkJbFByZWZlcmVuY2VzLnNldExvY2FsZXMobmV3IFVMb2NhbGVbXXtuZXcgVUxvY2FsZSgiYXMiKSxuZXcgVUxvY2FsZSgicGwiKSxuZXcgVUxvY2FsZSgiZnIiKX0pOworCQkJb3V0LnByaW50bG4oIlRyeWluZyBmYWxsYmFjayBmb3IgbXVsdGlwbGUgbG9jYWxlczogIiArIGxQcmVmZXJlbmNlcy5nZXRMb2NhbGVzKCkpOworCQkJU3RyaW5nW11bXSB0ZXN0SXRlbXMgPSB7CisJCQkJCXtHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuTE9DQUxFSUQrIiIsICJhc19GUiIsICJlbl9SVSIsImhhd19DQSIsInNlX0N5cmxfQVQifSwKKwkJCQkJe0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5MQU5HVUFHRUlEKyIiLCAiYXMiLCAiZW4iLCJoYXciLCJzZSIsImtvayJ9LAorCQkJCQl7R2xvYmFsaXphdGlvblByZWZlcmVuY2VzLlNDUklQVElEKyIiLCAiQXJhYiIsICJDeXJsIiwgIkhhbnQifSwKKwkJCQkJe0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5URVJSSVRPUllJRCsiIiwgIlVTIiwgIkZSIiwgIkFVIiwgIlJVIiwiSU4ifSwKKwkJCQkJe0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5WQVJJQU5USUQrIiIsIlJFVklTRUQifSwKKwkJCQkJe0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5LRVlXT1JESUQrIiIsImNhbGVuZGFyIiwgImNvbGxhdGlvbiIsICJjdXJyZW5jeSJ9LAorCQkJCQl7R2xvYmFsaXphdGlvblByZWZlcmVuY2VzLktFWVdPUkRfVkFMVUVJRCsiIiwgImNhbGVuZGFyPWJ1ZGRoaXN0IiwgImNhbGVuZGFyPWdyZWdvcmlhbiIsIAorCQkJCQkJImNvbGxhdGlvbj1waG9uZWJvb2siLCAiY29sbGF0aW9uPXRyYWRpdGlvbmFsIn0sCisJCQkJCXtHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuQ1VSUkVOQ1lJRCsiIiwgIlVTRCIsICJHQlAiLCAiRVVSIiwgIkpQWSIsIklOUiJ9LAorCQkJCQl7R2xvYmFsaXphdGlvblByZWZlcmVuY2VzLkNVUlJFTkNZX1NZTUJPTElEKyIiLCAiVVNEIiwgIkdCUCIsICJFVVIiLCAiSlBZIiwiSU5SIn0sCisJCQkJCXtHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMuVElNRVpPTkVJRCsiIiwgIkFtZXJpY2EvTWV4aWNvX0NpdHkiLCAiQXNpYS9TaGFuZ2hhaSIsICJFdXJvcGUvTG9uZG9uIiwgIkV1cm9wZS9CZXJsaW4ifSwKKwkJCQkJfTsKKwkJCWZvciAoaW50IGkgPSAwOyBpIDwgdGVzdEl0ZW1zLmxlbmd0aDsgKytpKSB7CisJCQkJaW50IHR5cGUgPSBJbnRlZ2VyLnBhcnNlSW50KHRlc3RJdGVtc1tpXVswXSk7CisJCQkJU3RyaW5nIHR5cGVOYW1lID0gVFlQRU5BTUVTW3R5cGVdOworCQkJCWZvciAoaW50IGogPSAxOyBqIDwgdGVzdEl0ZW1zW2ldLmxlbmd0aDsgKytqKSB7CisJCQkJCVN0cmluZyBpdGVtID0gdGVzdEl0ZW1zW2ldW2pdOworCQkJCQlvdXQucHJpbnRsbih0eXBlTmFtZSArICIgZm9yICIgKyBpdGVtICsgIjogXHQiCisJCQkJCQkJKyBsUHJlZmVyZW5jZXMuZ2V0RGlzcGxheU5hbWUoaXRlbSwgdHlwZSkpOworCQkJCX0KKwkJCX0KKwkJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKwkJCWUucHJpbnRTdGFja1RyYWNlKCk7CisJCX0gZmluYWxseSB7CisJCQlvdXQuY2xvc2UoKTsKKwkJCVN5c3RlbS5vdXQucHJpbnRsbigiZG9uZSIpOworCQl9CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTM0MGIxYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0LmphdmEKQEAgLTAsMCArMSwyNjQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0RGF0ZUZvcm1hdAorICogU291cmNlIEZpbGU6IGphdmEvdGV4dC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0LmphdmEKKyAqKi8KKworLyoKKyAgICBAdGVzdCAxLjQgOTgvMDMvMDYKKyAgICBAc3VtbWFyeSB0ZXN0IEludGVybmF0aW9uYWwgRGF0ZSBGb3JtYXQKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERhdGVGb3JtYXQgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgLy8gVmFsdWVzIGluIG1pbGxpc2Vjb25kcyAoPT0gRGF0ZSkKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIE9ORVNFQ09ORCA9IDEwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBPTkVNSU5VVEUgPSA2MCAqIE9ORVNFQ09ORDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIE9ORUhPVVIgPSA2MCAqIE9ORU1JTlVURTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIE9ORURBWSA9IDI0ICogT05FSE9VUjsKKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIGRvdWJsZSBPTkVZRUFSID0gMzY1LjI1ICogT05FREFZOyAvLyBBcHByb3hpbWF0ZSAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisKKyAgICAvLyBFTW9kZXMKKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgR0VORVJJQyA9IDA7CisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIFRJTUUgPSBHRU5FUklDICsgMTsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgIC8vcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRFID0gVElNRSArIDE7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFURV9USU1FID0gREFURSArIDE7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKworICAgIHByaXZhdGUgRGF0ZUZvcm1hdCBmRm9ybWF0ID0gbnVsbDsKKyAgICBwcml2YXRlIFN0cmluZyBmVGVzdE5hbWUgPSBuZXcgU3RyaW5nKCJnZXRJbnN0YW5jZSIpOworICAgIHByaXZhdGUgaW50IGZMaW1pdCA9IDM7IC8vIEhvdyBtYW55IGl0ZXJhdGlvbnMgaXQgc2hvdWxkIHRha2UgdG8gcmVhY2ggY29udmVyZ2VuY2UKKyAgICBwcml2YXRlIFJhbmRvbSByYW5kb207IC8vIGluaXRpYWxpemVkIGluIHJhbmREb3VibGUKKworICAgIHB1YmxpYyBJbnRsVGVzdERhdGVGb3JtYXQoKSB7CisgICAgICAgIC8vQ29uc3RydWN0dXJlCisgICAgfSAKKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZkZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJbnRsVGVzdERhdGVGb3JtYXQoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFVMb2NhbGUoKSB7CisgICAgICAgIGxvY2FsZVRlc3QoVUxvY2FsZS5nZXREZWZhdWx0KCksICJEZWZhdWx0IExvY2FsZSIpOworICAgIH0KKworICAgIC8vIFRoaXMgdGVzdCBkb2VzIHJvdW5kLXRyaXAgdGVzdGluZyAoZm9ybWF0IC0+IHBhcnNlIC0+IGZvcm1hdCAtPiBwYXJzZSAtPiBldGMuKSBvZiBEYXRlRm9ybWF0LgorICAgIHB1YmxpYyB2b2lkIGxvY2FsZVRlc3QoZmluYWwgVUxvY2FsZSBsb2NhbGUsIGZpbmFsIFN0cmluZyBsb2NhbGVOYW1lKSB7CisgICAgICAgIGludCB0aW1lU3R5bGUsIGRhdGVTdHlsZTsKKworICAgICAgICAvLyBGb3IgcGF0dGVybnMgaW5jbHVkaW5nIG9ubHkgdGltZSBpbmZvcm1hdGlvbiBhbmQgYSB0aW1lem9uZSwgaXQgbWF5IHRha2UKKyAgICAgICAgLy8gdXAgdG8gdGhyZWUgaXRlcmF0aW9ucywgc2luY2UgdGhlIHRpbWV6b25lIG1heSBzaGlmdCBhcyB0aGUgeWVhciBudW1iZXIKKyAgICAgICAgLy8gaXMgZGV0ZXJtaW5lZC4gIEZvciBvdGhlciBwYXR0ZXJucywgMiBpdGVyYXRpb25zIHNob3VsZCBzdWZmaWNlLgorICAgICAgICBmTGltaXQgPSAzOworCisgICAgICAgIGZvcih0aW1lU3R5bGUgPSAwOyB0aW1lU3R5bGUgPCA0OyB0aW1lU3R5bGUrKykgeworICAgICAgICAgICAgZlRlc3ROYW1lID0gbmV3IFN0cmluZygiVGltZSB0ZXN0ICIgKyB0aW1lU3R5bGUgKyAiICgiICsgbG9jYWxlTmFtZSArICIpIik7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZGb3JtYXQgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZSh0aW1lU3R5bGUsIGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogbG9jYWxlVGVzdCB0aW1lIGdldFRpbWVJbnN0YW5jZSBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVGVzdEZvcm1hdCgpOworICAgICAgICB9CisKKyAgICAgICAgZkxpbWl0ID0gMjsKKworICAgICAgICBmb3IoZGF0ZVN0eWxlID0gMDsgZGF0ZVN0eWxlIDwgNDsgZGF0ZVN0eWxlKyspIHsKKyAgICAgICAgICAgIGZUZXN0TmFtZSA9IG5ldyBTdHJpbmcoIkRhdGUgdGVzdCAiICsgZGF0ZVN0eWxlICsgIiAoIiArIGxvY2FsZU5hbWUgKyAiKSIpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmRm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoZGF0ZVN0eWxlLCBsb2NhbGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGxvY2FsZVRlc3QgZGF0ZSBnZXRUaW1lSW5zdGFuY2UgZXhjZXB0aW9uIik7CisgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFRlc3RGb3JtYXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcihkYXRlU3R5bGUgPSAwOyBkYXRlU3R5bGUgPCA0OyBkYXRlU3R5bGUrKykgeworICAgICAgICAgICAgZm9yKHRpbWVTdHlsZSA9IDA7IHRpbWVTdHlsZSA8IDQ7IHRpbWVTdHlsZSsrKSB7CisgICAgICAgICAgICAgICAgZlRlc3ROYW1lID0gbmV3IFN0cmluZygiRGF0ZVRpbWUgdGVzdCAiICsgZGF0ZVN0eWxlICsgIi8iICsgdGltZVN0eWxlICsgIiAoIiArIGxvY2FsZU5hbWUgKyAiKSIpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGZGb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoKFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogbG9jYWxlVGVzdCBkYXRlL3RpbWUgZ2V0RGF0ZVRpbWVJbnN0YW5jZSBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVGVzdEZvcm1hdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEZvcm1hdCgpIHsKKyAgICAgICAgaWYgKGZGb3JtYXQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IERhdGVGb3JtYXQgY3JlYXRpb24gZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gICAgICAgIGxvZ2xuKCJUZXN0Rm9ybWF0OiAiICsgZlRlc3ROYW1lKTsKKyAgICAgICAgRGF0ZSBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICB0cnlEYXRlKG5ldyBEYXRlKDApKTsKKyAgICAgICAgdHJ5RGF0ZShuZXcgRGF0ZSgobG9uZykgMTI3ODE2MTgwMTc3OC4wKSk7CisgICAgICAgIHRyeURhdGUobm93KTsKKyAgICAgICAgLy8gU2hpZnQgNiBtb250aHMgaW50byB0aGUgZnV0dXJlLCBBVCBUSEUgU0FNRSBUSU1FIE9GIERBWS4KKyAgICAgICAgLy8gVGhpcyB3aWxsIHRlc3QgdGhlIERTVCBoYW5kbGluZy4KKyAgICAgICAgdHJ5RGF0ZShuZXcgRGF0ZShub3cuZ2V0VGltZSgpICsgNiozMCpPTkVEQVkpKTsKKworICAgICAgICBEYXRlIGxpbWl0ID0gbmV3IERhdGUobm93LmdldFRpbWUoKSAqIDEwKTsgLy8gQXJiaXRyYXJ5IGxpbWl0CisgICAgICAgIGZvciAoaW50IGk9MDsgaTwyOyArK2kpCisgICAgICAgICAgICAvLyAgICAgICAgICAgIHRyeURhdGUobmV3IERhdGUoZmxvb3IocmFuZERvdWJsZSgpICogbGltaXQpKSk7CisgICAgICAgICAgICB0cnlEYXRlKG5ldyBEYXRlKChsb25nKSAocmFuZERvdWJsZSgpICogbGltaXQuZ2V0VGltZSgpKSkpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkZXNjcmliZVRlc3QoKSB7CisgICAgICAgIGlmIChmRm9ybWF0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBubyBEYXRlRm9ybWF0Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBBc3N1bWUgaXQncyBhIFNpbXBsZURhdGVGb3JtYXQgYW5kIGdldCBzb21lIGluZm8KKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzID0gKFNpbXBsZURhdGVGb3JtYXQpIGZGb3JtYXQ7CisgICAgICAgIGxvZ2xuKGZUZXN0TmFtZSArICIgUGF0dGVybiAiICsgcy50b1BhdHRlcm4oKSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCB0cnlEYXRlKERhdGUgdGhlRGF0ZSkgeworICAgICAgICBmaW5hbCBpbnQgREVQVEggPSAxMDsKKyAgICAgICAgRGF0ZVtdIGRhdGUgPSBuZXcgRGF0ZVtERVBUSF07CisgICAgICAgIFN0cmluZ0J1ZmZlcltdIHN0cmluZyA9IG5ldyBTdHJpbmdCdWZmZXJbREVQVEhdOworCisgICAgICAgIGludCBkYXRlTWF0Y2ggPSAwOworICAgICAgICBpbnQgc3RyaW5nTWF0Y2ggPSAwOworICAgICAgICBib29sZWFuIGR1bXAgPSBmYWxzZTsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGZvciAoaT0wOyBpPERFUFRIOyArK2kpIHN0cmluZ1tpXSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpPTA7IGk8REVQVEg7ICsraSkgeworICAgICAgICAgICAgaWYgKGkgPT0gMCkgZGF0ZVtpXSA9IHRoZURhdGU7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBkYXRlW2ldID0gZkZvcm1hdC5wYXJzZShzdHJpbmdbaS0xXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzY3JpYmVUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIqKioqKioqKioqIEZBSUw6IFBhcnNlIG9mICIgKyBzdHJpbmdbaS0xXSArICIgZmFpbGVkLiIpOworICAgICAgICAgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3NpdGlvbiA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICAgICAgZkZvcm1hdC5mb3JtYXQoZGF0ZVtpXSwgc3RyaW5nW2ldLCBwb3NpdGlvbik7CisgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoZGF0ZU1hdGNoID09IDAgJiYgZGF0ZVtpXSA9PSBkYXRlW2ktMV0pIGRhdGVNYXRjaCA9IGk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGF0ZU1hdGNoID4gMCAmJiBkYXRlW2ldICE9IGRhdGVbaS0xXSkgeworICAgICAgICAgICAgICAgICAgICBkZXNjcmliZVRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIioqKioqKioqKiogRkFJTDogRGF0ZSBtaXNtYXRjaCBhZnRlciBtYXRjaC4iKTsKKyAgICAgICAgICAgICAgICAgICAgZHVtcCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc3RyaW5nTWF0Y2ggPT0gMCAmJiBzdHJpbmdbaV0gPT0gc3RyaW5nW2ktMV0pIHN0cmluZ01hdGNoID0gaTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChzdHJpbmdNYXRjaCA+IDAgJiYgc3RyaW5nW2ldICE9IHN0cmluZ1tpLTFdKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlVGVzdCgpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiKioqKioqKioqKiBGQUlMOiBTdHJpbmcgbWlzbWF0Y2ggYWZ0ZXIgbWF0Y2guIik7CisgICAgICAgICAgICAgICAgICAgIGR1bXAgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZGF0ZU1hdGNoID4gMCAmJiBzdHJpbmdNYXRjaCA+IDApIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChpID09IERFUFRIKSAtLWk7CisKKyAgICAgICAgaWYgKHN0cmluZ01hdGNoID4gZkxpbWl0IHx8IGRhdGVNYXRjaCA+IGZMaW1pdCkgeworICAgICAgICAgICAgZGVzY3JpYmVUZXN0KCk7CisgICAgICAgICAgICBlcnJsbigiKioqKioqKioqKiBGQUlMOiBObyBzdHJpbmcgYW5kL29yIGRhdGUgbWF0Y2ggd2l0aGluICIgKyBmTGltaXQgKyAiIGl0ZXJhdGlvbnMuIik7CisgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkdW1wKSB7CisgICAgICAgICAgICBmb3IgKGludCBrPTA7IGs8PWk7ICsraykgeworICAgICAgICAgICAgICAgIGxvZ2xuKCIiICsgayArICI6ICIgKyBkYXRlW2tdICsgIiBGPiAiICsgc3RyaW5nW2tdICsgIiBQPiAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFJldHVybiBhIHJhbmRvbSBkb3VibGUgZnJvbSAwLjAxIHRvIDEsIGluY2x1c2l2ZQorICAgIHByaXZhdGUgZG91YmxlIHJhbmREb3VibGUoKSB7CisgICAgaWYgKHJhbmRvbSA9PSBudWxsKSB7CisgICAgICAgIHJhbmRvbSA9IGNyZWF0ZVJhbmRvbSgpOworICAgIH0KKyAgICAgICAgLy8gQXNzdW1lIDgtYml0IChvciBsYXJnZXIpIHJhbmQgdmFsdWVzLiAgQWxzbyBhc3N1bWUKKyAgICAgICAgLy8gdGhhdCB0aGUgc3lzdGVtIHJhbmQoKSBmdW5jdGlvbiBpcyB2ZXJ5IHBvb3IsIHdoaWNoIGl0IGFsd2F5cyBpcy4KKyAgICAgICAgLy8gICAgICAgIGRvdWJsZSBkOworICAgICAgICAvLyAgICAgICAgaW50IGk7CisgICAgICAgIC8vICAgICAgICBkbyB7CisgICAgICAgIC8vICAgICAgICAgICAgZm9yIChpPTA7IGkgPCBzaXplb2YoZG91YmxlKTsgKytpKQorICAgICAgICAvLyAgICAgICAgICAgIHsKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgY2hhciBwb2tlID0gKGNoYXIqKSZkOworICAgICAgICAvLyAgICAgICAgICAgICAgICBwb2tlW2ldID0gKHJhbmQoKSAmIDB4RkYpOworICAgICAgICAvLyAgICAgICAgICAgIH0KKyAgICAgICAgLy8gICAgICAgIH0gd2hpbGUgKFRQbGF0Zm9ybVV0aWxpdGllcy5pc05hTihkKSB8fCBUUGxhdGZvcm1VdGlsaXRpZXMuaXNJbmZpbml0ZShkKSk7CisKKyAgICAgICAgLy8gICAgICAgIGlmIChkIDwgMC4wKSBkID0gLWQ7CisgICAgICAgIC8vICAgICAgICBpZiAoZCA+IDAuMCkKKyAgICAgICAgLy8gICAgICAgIHsKKyAgICAgICAgLy8gICAgICAgICAgICBkb3VibGUgZSA9IGZsb29yKGxvZzEwKGQpKTsKKyAgICAgICAgLy8gICAgICAgICAgICBpZiAoZSA8IC0yLjApIGQgKj0gcG93KDEwLjAsIC1lLTIpOworICAgICAgICAvLyAgICAgICAgICAgIGVsc2UgaWYgKGUgPiAtMS4wKSBkIC89IHBvdygxMC4wLCBlKzEpOworICAgICAgICAvLyAgICAgICAgfQorICAgICAgICAvLyAgICAgICAgcmV0dXJuIGQ7CisgICAgICAgIHJldHVybiByYW5kb20ubmV4dERvdWJsZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICBmaW5hbCBVTG9jYWxlW10gbG9jYWxlcyA9IERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgbG9uZyBjb3VudCA9IGxvY2FsZXMubGVuZ3RoOworICAgICAgICBsb2dsbigiIiArIGNvdW50ICsgIiBhdmFpbGFibGUgbG9jYWxlcyIpOworICAgICAgICBpZiAobG9jYWxlcyAhPSBudWxsICAmJiAgY291bnQgIT0gMCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGFsbCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGkhPTApIGFsbC5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICAgICAgYWxsLmFwcGVuZChsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oYWxsLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgZXJybG4oIioqKioqKioqKiogRkFJTDogWmVybyBhdmFpbGFibGUgbG9jYWxlcyBvciBudWxsIGFycmF5IHBvaW50ZXIiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TW9uc3RlcigpIHsKKyAgICAgICAgaWYgKGlzUXVpY2soKSkgeworICAgICAgICAgICAgbG9nbG4oIlNraXBwaW5nIHRlc3QgKHVzZSAtZSBmb3IgZXhoYXVzdGl2ZSkiKTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbCBVTG9jYWxlW10gbG9jYWxlcyA9IERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgbG9uZyBjb3VudCA9IGxvY2FsZXMubGVuZ3RoOworICAgICAgICBpZiAobG9jYWxlcyAhPSBudWxsICAmJiAgY291bnQgIT0gMCkgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiVGVzdGluZyAiICsgbmFtZSArICIuLi4iKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBsb2NhbGVUZXN0KGxvY2FsZXNbaV0sIG5hbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGVzdE1vbnN0ZXIgbG9jYWxlVGVzdCBleGNlcHRpb24iICsgZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRBUEkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0QVBJLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmJmZWE2NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0QVBJLmphdmEKQEAgLTAsMCArMSwxOTkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0RGF0ZUZvcm1hdEFQSQorICogU291cmNlIEZpbGU6IGphdmEvdGV4dC9mb3JtYXQvSW50bFRlc3REYXRlRm9ybWF0QVBJLmphdmEKKyAqKi8KKworLyoKKyAgICBAdGVzdCAxLjQgOTgvMDMvMDYKKyAgICBAc3VtbWFyeSB0ZXN0IEludGVybmF0aW9uYWwgRGF0ZSBGb3JtYXQgQVBJCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERhdGVGb3JtYXRBUEkgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3REYXRlRm9ybWF0QVBJKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8vIFRlc3QgdGhhdCB0aGUgZXF1YWxzIG1ldGhvZCB3b3JrcyBjb3JyZWN0bHkuCisgICAgcHVibGljIHZvaWQgVGVzdEVxdWFscygpCisgICAgeworICAgICAgICAvLyBDcmVhdGUgdHdvIG9iamVjdHMgYXQgZGlmZmVyZW50IHN5c3RlbSB0aW1lcworICAgICAgICBEYXRlRm9ybWF0IGEgPSBEYXRlRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIERhdGUgc3RhcnQgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpLmdldFRpbWUoKTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIC8vIGNoYW5nZWQgdG8gcmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmdzLgorICAgICAgICAgICAgaWYgKCFzdGFydC5lcXVhbHMoQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKS5nZXRUaW1lKCkpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7IC8vIFdhaXQgZm9yIHRpbWUgdG8gY2hhbmdlCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgRGF0ZUZvcm1hdCBiID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworCisgICAgICAgIGlmICghKGEuZXF1YWxzKGIpKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEYXRlRm9ybWF0IG9iamVjdHMgY3JlYXRlZCBhdCBkaWZmZXJlbnQgdGltZXMgYXJlIHVuZXF1YWwuIik7CisKKyAgICAgICAgLy8gV2h5IGhhcyB0aGlzIHRlc3QgYmVlbiBkaXNhYmxlZD8/PyAtIGFsaXUKKy8vICAgICAgICBpZiAoYiBpbnN0YW5jZW9mIFNpbXBsZURhdGVGb3JtYXQpCisvLyAgICAgICAgeworLy8gICAgICAgICAgICAvL2RvdWJsZSBPTkVfWUVBUiA9IDM2NSoyNCo2MCo2MCoxMDAwLjA7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKy8vICAgICAgICAgICAgdHJ5IHsKKy8vICAgICAgICAgICAgICAgICgoU2ltcGxlRGF0ZUZvcm1hdCliKS5zZXRUd29EaWdpdFN0YXJ0RGF0ZShzdGFydC5nZXRUaW1lKCkgKyA1MCpPTkVfWUVBUik7CisvLyAgICAgICAgICAgICAgICBpZiAoYS5lcXVhbHMoYikpCisvLyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IERhdGVGb3JtYXQgb2JqZWN0cyB3aXRoIGRpZmZlcmVudCB0d28gZGlnaXQgc3RhcnQgZGF0ZXMgYXJlIGVxdWFsLiIpOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldFR3b0RpZ2l0U3RhcnREYXRlIGZhaWxlZC4iKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBUaGlzIHRlc3QgY2hlY2tzIHZhcmlvdXMgZ2VuZXJpYyBBUEkgbWV0aG9kcyBpbiBEYXRlRm9ybWF0IHRvIGFjaGlldmUgMTAwJSBBUEkgY292ZXJhZ2UuCisgICAgcHVibGljIHZvaWQgVGVzdEFQSSgpCisgICAgeworICAgICAgICBsb2dsbigiRGF0ZUZvcm1hdCBBUEkgdGVzdC0tLSIpOyBsb2dsbigiIik7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5FTkdMSVNIKTsKKworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBjb25zdHJ1Y3RvcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBEYXRlRm9ybWF0IGNvbnN0cnVjdG9ycyIpOworCisgICAgICAgIERhdGVGb3JtYXQgZGVmID0gRGF0ZUZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBEYXRlRm9ybWF0IGZyID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5GVUxMLCBMb2NhbGUuRlJFTkNIKTsKKyAgICAgICAgRGF0ZUZvcm1hdCBpdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuTUVESVVNLCBMb2NhbGUuSVRBTElBTik7CisgICAgICAgIERhdGVGb3JtYXQgZGUgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkxPTkcsIExvY2FsZS5HRVJNQU4pOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBlcXVhbGl0eQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGVxdWFsaXR5IG9wZXJhdG9yIik7CisKKyAgICAgICAgaWYoIGZyLmVxdWFscyhpdCkgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGVxdWFscyBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vID09PT09PT0gVGVzdCB2YXJpb3VzIGZvcm1hdCgpIG1ldGhvZHMKKworICAgICAgICBsb2dsbigiVGVzdGluZyB2YXJpb3VzIGZvcm1hdCgpIG1ldGhvZHMiKTsKKworICAgICAgICBEYXRlIGQgPSBuZXcgRGF0ZSgobG9uZyk4MzcwMzk5MjgwNDYuMCk7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczEgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmcgcmVzMyA9IG5ldyBTdHJpbmcoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MxID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMiA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworCisgICAgICAgIHJlczEgPSBmci5mb3JtYXQoZCwgcmVzMSwgcG9zMSk7CisgICAgICAgIGxvZ2xuKCIiICsgZC5nZXRUaW1lKCkgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMSk7CisKKyAgICAgICAgcmVzMiA9IGl0LmZvcm1hdChkLCByZXMyLCBwb3MyKTsKKyAgICAgICAgbG9nbG4oIiIgKyBkLmdldFRpbWUoKSArICIgZm9ybWF0dGVkIHRvICIgKyByZXMyKTsKKworICAgICAgICByZXMzID0gZGUuZm9ybWF0KGQpOworICAgICAgICBsb2dsbigiIiArIGQuZ2V0VGltZSgpICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczMpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBwYXJzZSgpCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgcGFyc2UoKSIpOworCisgICAgICAgIFN0cmluZyB0ZXh0ID0gbmV3IFN0cmluZygiMDIvMDMvNzYgMjo1MCBBTSwgQ1NUIik7CisgICAgICAgIE9iamVjdCByZXN1bHQxID0gbmV3IERhdGUoKTsKKyAgICAgICAgRGF0ZSByZXN1bHQyID0gbmV3IERhdGUoKTsKKyAgICAgICAgRGF0ZSByZXN1bHQzID0gbmV3IERhdGUoKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MwMSA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworCisgICAgICAgIHJlc3VsdDEgPSBkZWYucGFyc2VPYmplY3QodGV4dCwgcG9zKTsKKyAgICAgICAgaWYgKHJlc3VsdDEgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBwYXJzZU9iamVjdCgpIGZhaWxlZCBmb3IgIiArIHRleHQpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKHRleHQgKyAiIHBhcnNlZCBpbnRvICIgKyAoKERhdGUpcmVzdWx0MSkuZ2V0VGltZSgpKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0MiA9IGRlZi5wYXJzZSh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBwYXJzZSgpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKHRleHQgKyAiIHBhcnNlZCBpbnRvICIgKyByZXN1bHQyLmdldFRpbWUoKSk7CisKKyAgICAgICAgcmVzdWx0MyA9IGRlZi5wYXJzZSh0ZXh0LCBwb3MwMSk7CisgICAgICAgIGlmIChyZXN1bHQzID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcGFyc2UoKSBmYWlsZWQgZm9yICIgKyB0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgcmVzdWx0My5nZXRUaW1lKCkpOworCisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldHRlcnMgYW5kIHNldHRlcnMKKworICAgICAgICBsb2dsbigiVGVzdGluZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIik7CisKKyAgICAgICAgZmluYWwgTG9jYWxlW10gbG9jYWxlcyA9IERhdGVGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBsb25nIGNvdW50ID0gbG9jYWxlcy5sZW5ndGg7CisgICAgICAgIGxvZ2xuKCJHb3QgIiArIGNvdW50ICsgIiBsb2NhbGVzIiApOworICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgICAgICBuYW1lID0gbG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICAgICAgbG9nbG4obmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBmci5zZXRMZW5pZW50KGl0LmlzTGVuaWVudCgpKTsKKyAgICAgICAgaWYoZnIuaXNMZW5pZW50KCkgIT0gaXQuaXNMZW5pZW50KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TGVuaWVudCgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgQ2FsZW5kYXIgY2FsID0gZGVmLmdldENhbGVuZGFyKCk7CisgICAgICAgIENhbGVuZGFyIG5ld0NhbCA9IChDYWxlbmRhcikgY2FsLmNsb25lKCk7CisgICAgICAgIGRlLnNldENhbGVuZGFyKG5ld0NhbCk7CisgICAgICAgIGl0LnNldENhbGVuZGFyKG5ld0NhbCk7CisgICAgICAgIGlmKCAhIGRlLmdldENhbGVuZGFyKCkuZXF1YWxzKGl0LmdldENhbGVuZGFyKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldCBDYWxlbmRhcigpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgTnVtYmVyRm9ybWF0IG5mID0gZGVmLmdldE51bWJlckZvcm1hdCgpOworICAgICAgICBOdW1iZXJGb3JtYXQgbmV3TmYgPSAoTnVtYmVyRm9ybWF0KSBuZi5jbG9uZSgpOworICAgICAgICBkZS5zZXROdW1iZXJGb3JtYXQobmV3TmYpOworICAgICAgICBpdC5zZXROdW1iZXJGb3JtYXQobmV3TmYpOworICAgICAgICBpZiggISBkZS5nZXROdW1iZXJGb3JtYXQoKS5lcXVhbHMoaXQuZ2V0TnVtYmVyRm9ybWF0KCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldCBOdW1iZXJGb3JtYXQoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFRpbWVab25lIHR6ID0gZGVmLmdldFRpbWVab25lKCk7CisgICAgICAgIFRpbWVab25lIG5ld1R6ID0gKFRpbWVab25lKSB0ei5jbG9uZSgpOworICAgICAgICBkZS5zZXRUaW1lWm9uZShuZXdUeik7CisgICAgICAgIGl0LnNldFRpbWVab25lKG5ld1R6KTsKKyAgICAgICAgaWYoICEgZGUuZ2V0VGltZVpvbmUoKS5lcXVhbHMoaXQuZ2V0VGltZVpvbmUoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0IFRpbWVab25lKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyA9PT09PT09IFRlc3QgZ2V0U3RhdGljQ2xhc3NJRCgpCisKKy8vICAgICAgICBsb2dsbigiVGVzdGluZyBpbnN0YW5jZW9mKCkiKTsKKworLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIERhdGVGb3JtYXQgdGVzdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisKKy8vICAgICAgICAgICAgaWYgKCEgKHRlc3QgaW5zdGFuY2VvZiBTaW1wbGVEYXRlRm9ybWF0KSkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpbnN0YW5jZW9mIGZhaWxlZCIpOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgfQorLy8gICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICBlcnJsbigiRVJST1I6IENvdWxkbid0IGNyZWF0ZSBhIERhdGVGb3JtYXQiKTsKKy8vICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRBUElDLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdEFQSUMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMTQ2N2M2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRBUElDLmphdmEKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBJbnRsVGVzdERhdGVGb3JtYXRBUEkKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2R0Zm1hcHRzLmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKKworLyoKKyAqIFRoaXMgaXMgYW4gQVBJIHRlc3QsIG5vdCBhIHVuaXQgdGVzdC4gIEl0IGRvZXNuJ3QgdGVzdCB2ZXJ5IG1hbnkgY2FzZXMsIGFuZCBkb2Vzbid0CisgKiB0cnkgdG8gdGVzdCB0aGUgZnVsbCBmdW5jdGlvbmFsaXR5LiAgSXQganVzdCBjYWxscyBlYWNoIGZ1bmN0aW9uIGluIHRoZSBjbGFzcyBhbmQKKyAqIHZlcmlmaWVzIHRoYXQgaXQgd29ya3Mgb24gYSBiYXNpYyBsZXZlbC4KKyAqLworcHVibGljIGNsYXNzIEludGxUZXN0RGF0ZUZvcm1hdEFQSUMgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3REYXRlRm9ybWF0QVBJQygpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCBoaWRpbmcgb2YgcGFyc2UoKSBhbmQgZm9ybWF0KCkgQVBJcyBpbiB0aGUgRm9ybWF0IGhpZXJhcmNoeS4KKyAgICAgKiBXZSB0ZXN0IHRoZSBlbnRpcmUgaGllcmFyY2h5LCBldmVuIHRob3VnaCB0aGlzIHRlc3QgaXMgbG9jYXRlZCBpbgorICAgICAqIHRoZSBEYXRlRm9ybWF0IEFQSSB0ZXN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROYW1lSGlkaW5nKCkgeworICAgIAorICAgICAgICAvLyBOLkIuOiBUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IENPTVBJTEVTLCBzaW5jZSBpdCdzIGEgdGVzdCBvZgorICAgICAgICAvLyBjb21waWxlLXRpbWUgbmFtZSBoaWRpbmcuCisgICAgCisgICAgICAgIERhdGUgZGF0ZU9iaiA9IG5ldyBEYXRlKDApOworICAgICAgICBOdW1iZXIgbnVtT2JqID0gbmV3IERvdWJsZSgzLjE0MTU5MjY1MzU4OTc5MzIzODQ2MjY0MzM4MzI3OTUpOworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIFN0cmluZyBzdHI7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAKKyAgICAgICAgLy8gRGF0ZUZvcm1hdCBjYWxsaW5nIEZvcm1hdCBBUEkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIkRhdGVGb3JtYXQiKTsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGF0ZUZtdCA9IERhdGVGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGlmIChkYXRlRm10ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHIgPSBkYXRlRm10LmZvcm1hdChkYXRlT2JqKTsKKyAgICAgICAgICAgICAgICBzdHJCdWZmZXIgPSBkYXRlRm10LmZvcm1hdChkYXRlT2JqLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogQ2FuJ3QgY3JlYXRlIERhdGVGb3JtYXQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBTaW1wbGVEYXRlRm9ybWF0IGNhbGxpbmcgRm9ybWF0ICYgRGF0ZUZvcm1hdCBBUEkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIlNpbXBsZURhdGVGb3JtYXQiKTsKKyAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoKTsKKyAgICAgICAgICAgIC8vIEZvcm1hdCBBUEkKKyAgICAgICAgICAgIHN0ciA9IHNkZi5mb3JtYXQoZGF0ZU9iaik7CisgICAgICAgICAgICBzdHJCdWZmZXIgPSBzZGYuZm9ybWF0KGRhdGVPYmosIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICAvLyBEYXRlRm9ybWF0IEFQSQorICAgICAgICAgICAgc3RyQnVmZmVyID0gc2RmLmZvcm1hdChuZXcgRGF0ZSgwKSwgc3RyQnVmZmVyLCBmcG9zKTsKKyAgICAgICAgICAgIHN0ciA9IHNkZi5mb3JtYXQobmV3IERhdGUoMCkpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzZGYucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgICAgICBzZGYucGFyc2Uoc3RyLCBwcG9zKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBwZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gTnVtYmVyRm9ybWF0IGNhbGxpbmcgRm9ybWF0IEFQSQorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiTnVtYmVyRm9ybWF0Iik7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgICAgICBpZiAoZm10ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHIgPSBmbXQuZm9ybWF0KG51bU9iaik7CisgICAgICAgICAgICAgICAgc3RyQnVmZmVyID0gZm10LmZvcm1hdChudW1PYmosIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDYW4ndCBjcmVhdGUgTnVtYmVyRm9ybWF0Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gRGVjaW1hbEZvcm1hdCBjYWxsaW5nIEZvcm1hdCAmIE51bWJlckZvcm1hdCBBUEkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oIkRlY2ltYWxGb3JtYXQiKTsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgICAgIC8vIEZvcm1hdCBBUEkKKyAgICAgICAgICAgIHN0ciA9IGZtdC5mb3JtYXQobnVtT2JqKTsKKyAgICAgICAgICAgIHN0ckJ1ZmZlciA9IGZtdC5mb3JtYXQobnVtT2JqLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgLy8gTnVtYmVyRm9ybWF0IEFQSQorICAgICAgICAgICAgc3RyID0gZm10LmZvcm1hdCgyLjcxODI4KTsKKyAgICAgICAgICAgIHN0ciA9IGZtdC5mb3JtYXQoMTIzNDU2Nyk7CisgICAgICAgICAgICBzdHJCdWZmZXIgPSBmbXQuZm9ybWF0KDEuNDE0MjEsIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICBzdHJCdWZmZXIgPSBmbXQuZm9ybWF0KDk4NzY1NDMsIHN0ckJ1ZmZlciwgZnBvcyk7CisgICAgICAgICAgICBOdW1iZXIgb2JqID0gZm10LnBhcnNlKHN0ciwgcHBvcyk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG9iaiA9IGZtdC5wYXJzZShzdHIpOworICAgICAgICAgICAgICAgIGlmKG9iaj09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgZm9ybWF0IG9iamVjdCBjb3VsZCBub3QgcGFyc2UgdGhlIHN0cmluZyA6ICIrc3RyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gcGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvL0lDVTRKIGhhdmUgbm90IHRoZSBjbGFzc2VzIENob2ljZUZvcm1hdCBhbmQgTWVzc2FnZUZvcm1hdAorICAgICAgICAvKgorICAgICAgICAvLyBDaG9pY2VGb3JtYXQgY2FsbGluZyBGb3JtYXQgJiBOdW1iZXJGb3JtYXQgQVBJCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJDaG9pY2VGb3JtYXQiKTsKKyAgICAgICAgICAgIENob2ljZUZvcm1hdCBmbXQgPSBuZXcgQ2hvaWNlRm9ybWF0KCIwI2Zvb3wxI2Zvb3N8MiNmb29zIik7CisgICAgICAgICAgICAvLyBGb3JtYXQgQVBJCisgICAgICAgICAgICBzdHIgPSBmbXQuZm9ybWF0KG51bU9iaik7CisgICAgICAgICAgICBzdHJCdWZmZXIgPSBmbXQuZm9ybWF0KG51bU9iaiwgc3RyQnVmZmVyLCBmcG9zKTsKKyAgICAgICAgICAgIC8vIE51bWJlckZvcm1hdCBBUEkKKyAgICAgICAgICAgIHN0ciA9IGZtdC5mb3JtYXQoMi43MTgyOCk7CisgICAgICAgICAgICBzdHIgPSBmbXQuZm9ybWF0KDEyMzQ1NjcpOworICAgICAgICAgICAgc3RyQnVmZmVyID0gZm10LmZvcm1hdCgxLjQxNDIxLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgc3RyQnVmZmVyID0gZm10LmZvcm1hdCg5ODc2NTQzLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgTnVtYmVyIG9iaiA9IGZtdC5wYXJzZShzdHIsIHBwb3MpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBvYmogPSBmbXQucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbiBwZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgCisgICAgICAgIC8vIE1lc3NhZ2VGb3JtYXQgY2FsbGluZyBGb3JtYXQgQVBJCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCJNZXNzYWdlRm9ybWF0Iik7CisgICAgICAgICAgICBNZXNzYWdlRm9ybWF0IGZtdCA9IG5ldyBNZXNzYWdlRm9ybWF0KCIiKTsKKyAgICAgICAgICAgIC8vIEZvcm1hdCBBUEkKKyAgICAgICAgICAgIC8vIFdlIHVzZSBkYXRlT2JqLCB3aGljaCBNZXNzYWdlRm9ybWF0IHNob3VsZCByZWplY3QuCisgICAgICAgICAgICAvLyBXZSdyZSB0ZXN0aW5nIG5hbWUgaGlkaW5nLCBub3QgdGhlIGZvcm1hdCBtZXRob2QuCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHN0ciA9IGZtdC5mb3JtYXQoZGF0ZU9iaik7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc3RyQnVmZmVyID0gZm10LmZvcm1hdChkYXRlT2JqLCBzdHJCdWZmZXIsIGZwb3MpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvL2UucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRTeW1ib2xzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdFN5bWJvbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iN2U5YTk0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERhdGVGb3JtYXRTeW1ib2xzLmphdmEKQEAgLTAsMCArMSw0MTggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0RGF0ZUZvcm1hdFN5bWJvbHMKKyAqIFNvdXJjZSBGaWxlOiBqYXZhL3RleHQvZm9ybWF0L0ludGxUZXN0RGF0ZUZvcm1hdFN5bWJvbHMuamF2YQorICoqLworIAorLyoKKyAgICBAdGVzdCAxLjQgOTgvMDMvMDYKKyAgICBAc3VtbWFyeSB0ZXN0IEludGVybmF0aW9uYWwgRGF0ZSBGb3JtYXQgU3ltYm9scworKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIEludGxUZXN0RGF0ZUZvcm1hdFN5bWJvbHMgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3REYXRlRm9ybWF0U3ltYm9scygpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvLyBUZXN0IGdldE1vbnRocworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRNb250aHMoKQorICAgIHsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gbW9udGg7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbDsKKworICAgICAgICBzeW1ib2w9bmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5nZXREZWZhdWx0KCkpOworCisgICAgICAgIG1vbnRoPXN5bWJvbC5nZXRNb250aHMoKTsKKyAgICAgICAgaW50IGNudCA9IG1vbnRoLmxlbmd0aDsKKworICAgICAgICBsb2dsbigic2l6ZSA9ICIgKyBjbnQpOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxjbnQ7ICsraSkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4obW9udGhbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldE1vbnRoczIoKQorICAgIHsKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgc3ltYm9sOworICAgICAgICBzeW1ib2w9bmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5nZXREZWZhdWx0KCkpOworCisgICAgICAgIGludFtdIGNvbnRleHQgPSB7RGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSwgRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFUfTsKKyAgICAgICAgaW50W10gd2lkdGggPSB7RGF0ZUZvcm1hdFN5bWJvbHMuV0lERSwgRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQsIERhdGVGb3JtYXRTeW1ib2xzLk5BUlJPV307CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbnRleHQubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgd2lkdGgubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBtb250aCA9c3ltYm9sLmdldE1vbnRocyhjb250ZXh0W2ldLHdpZHRoW2pdKTsKKyAgICAgICAgICAgICAgICBpbnQgY250ID0gbW9udGgubGVuZ3RoOworCisgICAgICAgICAgICAgICAgbG9nbG4oInNpemUgPSAiICsgY250KTsKKworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgbW9udGgubGVuZ3RoOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4obW9udGhba10pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0V2Vla2RheXMyKCl7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbDsKKyAgICAgICAgc3ltYm9sPW5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKworICAgICAgICBpbnRbXSBjb250ZXh0ID0ge0RhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsIERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVH07CisgICAgICAgIGludFtdIHdpZHRoID0ge0RhdGVGb3JtYXRTeW1ib2xzLldJREUsIERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVELCBEYXRlRm9ybWF0U3ltYm9scy5OQVJST1d9OworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb250ZXh0Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHdpZHRoLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nW10gd2QgPXN5bWJvbC5nZXRXZWVrZGF5cyhjb250ZXh0W2ldLHdpZHRoW2pdKTsKKyAgICAgICAgICAgICAgICBpbnQgY250ID0gd2QubGVuZ3RoOworCisgICAgICAgICAgICAgICAgbG9nbG4oInNpemUgPSAiICsgY250KTsKKworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgd2QubGVuZ3RoOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4od2Rba10pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEdldEVyYU5hbWVzKCl7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbDsKKyAgICAgICAgc3ltYm9sPW5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgU3RyaW5nW10gcyA9IHN5bWJvbC5nZXRFcmFOYW1lcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGxvZ2xuKHNbaV0pOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKworICAgIC8vIFRlc3QgdGhlIEFQSSBvZiBEYXRlRm9ybWF0U3ltYm9sczsgcHJpbWFyaWx5IGEgc2ltcGxlIGdldC9zZXQgc2V0LgorICAgIHB1YmxpYyB2b2lkIFRlc3RTeW1ib2xzKCkKKyAgICB7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGZyID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKExvY2FsZS5GUkVOQ0gpOworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyBmcjIgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSRU5DSCk7CisKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZW4gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlLkVOR0xJU0gpOworCisgICAgICAgIGlmKGVuLmVxdWFscyhmcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogRW5nbGlzaCBEYXRlRm9ybWF0U3ltYm9scyBlcXVhbCB0byBGcmVuY2giKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGp1c3QgZG8gc29tZSBWRVJZIGJhc2ljIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IGdldC9zZXQgd29yaworCisgICAgICAgIGxvbmcgY291bnQ7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGVyYXMgPSBlbi5nZXRFcmFzKCk7CisgICAgICAgIGZyLnNldEVyYXMoZXJhcyk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGVyYXMxID0gZnIuZ2V0RXJhcygpOworICAgICAgICBjb3VudCA9IGVyYXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gZXJhczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEVyYXMoKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIGVyYXNbaV0uZXF1YWxzKGVyYXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEVyYXMoKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gbW9udGhzID0gZW4uZ2V0TW9udGhzKCk7CisgICAgICAgIGZyLnNldE1vbnRocyhtb250aHMpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBtb250aHMxID0gZnIuZ2V0TW9udGhzKCk7CisgICAgICAgIGNvdW50ID0gbW9udGhzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IG1vbnRoczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocygpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgbW9udGhzW2ldLmVxdWFscyhtb250aHMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocygpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc2hvcnRNb250aHMgPSBlbi5nZXRTaG9ydE1vbnRocygpOworICAgICAgICBmci5zZXRTaG9ydE1vbnRocyhzaG9ydE1vbnRocyk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHNob3J0TW9udGhzMSA9IGZyLmdldFNob3J0TW9udGhzKCk7CisgICAgICAgIGNvdW50ID0gc2hvcnRNb250aHMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gc2hvcnRNb250aHMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRTaG9ydE1vbnRocygpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgc2hvcnRNb250aHNbaV0uZXF1YWxzKHNob3J0TW9udGhzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRTaG9ydE1vbnRocygpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gd2lkZU1vbnRocyA9IGVuLmdldE1vbnRocyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGZyMi5zZXRNb250aHMod2lkZU1vbnRocyxEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHdpZGVNb250aHMxID0gZnIyLmdldE1vbnRocyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGNvdW50ID0gd2lkZU1vbnRocy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSB3aWRlTW9udGhzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TW9udGhzKEZPUk1BVCxXSURFKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIHdpZGVNb250aHNbaV0uZXF1YWxzKHdpZGVNb250aHMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocyhGT1JNQVQsV0lERSkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBhYmJyTW9udGhzID0gZW4uZ2V0TW9udGhzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGZyMi5zZXRNb250aHMoYWJick1vbnRocyxEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBhYmJyTW9udGhzMSA9IGZyMi5nZXRNb250aHMoRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVEKTsKKyAgICAgICAgY291bnQgPSBhYmJyTW9udGhzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IGFiYnJNb250aHMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNb250aHMoRk9STUFULEFCQlJFVklBVEVEKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIGFiYnJNb250aHNbaV0uZXF1YWxzKGFiYnJNb250aHMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocyhGT1JNQVQsQUJCUkVWSUFURUQpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gbmFycm93TW9udGhzID0gZW4uZ2V0TW9udGhzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5OQVJST1cpOworICAgICAgICBmci5zZXRNb250aHMobmFycm93TW9udGhzLERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5OQVJST1cpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBuYXJyb3dNb250aHMxID0gZnIuZ2V0TW9udGhzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5OQVJST1cpOworICAgICAgICBjb3VudCA9IG5hcnJvd01vbnRocy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBuYXJyb3dNb250aHMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNb250aHMoRk9STUFULE5BUlJPVykgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISBuYXJyb3dNb250aHNbaV0uZXF1YWxzKG5hcnJvd01vbnRoczFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TW9udGhzKEZPUk1BVCxOQVJST1cpIGZhaWxlZCAoZGlmZmVyZW50IHN0cmluZyB2YWx1ZXMpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZU1vbnRocyA9IGVuLmdldE1vbnRocyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBmci5zZXRNb250aHMoc3RhbmRhbG9uZU1vbnRocyxEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lTW9udGhzMSA9IGZyLmdldE1vbnRocyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBjb3VudCA9IHN0YW5kYWxvbmVNb250aHMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gc3RhbmRhbG9uZU1vbnRoczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocyhTVEFOREFMT05FLFdJREUpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgc3RhbmRhbG9uZU1vbnRoc1tpXS5lcXVhbHMoc3RhbmRhbG9uZU1vbnRoczFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TW9udGhzKFNUQU5EQUxPTkUsV0lERSkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lU2hvcnRNb250aHMgPSBlbi5nZXRNb250aHMoRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGZyLnNldE1vbnRocyhzdGFuZGFsb25lU2hvcnRNb250aHMsRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHN0YW5kYWxvbmVTaG9ydE1vbnRoczEgPSBmci5nZXRNb250aHMoRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGNvdW50ID0gc3RhbmRhbG9uZVNob3J0TW9udGhzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IHN0YW5kYWxvbmVTaG9ydE1vbnRoczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocyhTVEFOREFMT05FLEFCQlJFVklBVEVEKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIHN0YW5kYWxvbmVTaG9ydE1vbnRoc1tpXS5lcXVhbHMoc3RhbmRhbG9uZVNob3J0TW9udGhzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNb250aHMoU1RBTkRBTE9ORSxBQkJSRVZJQVRFRCkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lTmFycm93TW9udGhzID0gZW4uZ2V0TW9udGhzKERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgZnIuc2V0TW9udGhzKHN0YW5kYWxvbmVOYXJyb3dNb250aHMsRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5OQVJST1cpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lTmFycm93TW9udGhzMSA9IGZyLmdldE1vbnRocyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLk5BUlJPVyk7CisgICAgICAgIGNvdW50ID0gc3RhbmRhbG9uZU5hcnJvd01vbnRocy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBzdGFuZGFsb25lTmFycm93TW9udGhzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TW9udGhzKFNUQU5EQUxPTkUsTkFSUk9XKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIHN0YW5kYWxvbmVOYXJyb3dNb250aHNbaV0uZXF1YWxzKHN0YW5kYWxvbmVOYXJyb3dNb250aHMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE1vbnRocyhTVEFOREFMT05FLE5BUlJPVykgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSB3ZWVrZGF5cyA9IGVuLmdldFdlZWtkYXlzKCk7CisgICAgICAgIGZyLnNldFdlZWtkYXlzKHdlZWtkYXlzKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gd2Vla2RheXMxID0gZnIuZ2V0V2Vla2RheXMoKTsKKyAgICAgICAgY291bnQgPSB3ZWVrZGF5cy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSB3ZWVrZGF5czEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKCkgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISB3ZWVrZGF5c1tpXS5lcXVhbHMod2Vla2RheXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKCkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzaG9ydFdlZWtkYXlzID0gZW4uZ2V0U2hvcnRXZWVrZGF5cygpOworICAgICAgICBmci5zZXRTaG9ydFdlZWtkYXlzKHNob3J0V2Vla2RheXMpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzaG9ydFdlZWtkYXlzMSA9IGZyLmdldFNob3J0V2Vla2RheXMoKTsKKyAgICAgICAgY291bnQgPSBzaG9ydFdlZWtkYXlzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IHNob3J0V2Vla2RheXMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRTaG9ydFdlZWtkYXlzKCkgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISBzaG9ydFdlZWtkYXlzW2ldLmVxdWFscyhzaG9ydFdlZWtkYXlzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRTaG9ydFdlZWtkYXlzKCkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSB3aWRlV2Vla2RheXMgPSBlbi5nZXRXZWVrZGF5cyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGZyMi5zZXRXZWVrZGF5cyh3aWRlV2Vla2RheXMsRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSB3aWRlV2Vla2RheXMxID0gZnIyLmdldFdlZWtkYXlzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5XSURFKTsKKyAgICAgICAgY291bnQgPSB3aWRlV2Vla2RheXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gd2lkZVdlZWtkYXlzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0V2Vla2RheXMoRk9STUFULFdJREUpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgd2lkZVdlZWtkYXlzW2ldLmVxdWFscyh3aWRlV2Vla2RheXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKEZPUk1BVCxXSURFKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGFiYnJXZWVrZGF5cyA9IGVuLmdldFdlZWtkYXlzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGZyMi5zZXRXZWVrZGF5cyhhYmJyV2Vla2RheXMsRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVEKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gYWJicldlZWtkYXlzMSA9IGZyMi5nZXRXZWVrZGF5cyhEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBjb3VudCA9IGFiYnJXZWVrZGF5cy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBhYmJyV2Vla2RheXMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cyhGT1JNQVQsQUJCUkVWSUFURUQpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgYWJicldlZWtkYXlzW2ldLmVxdWFscyhhYmJyV2Vla2RheXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKEZPUk1BVCxBQkJSRVZJQVRFRCkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBuYXJyb3dXZWVrZGF5cyA9IGVuLmdldFdlZWtkYXlzKERhdGVGb3JtYXRTeW1ib2xzLkZPUk1BVCxEYXRlRm9ybWF0U3ltYm9scy5OQVJST1cpOworICAgICAgICBmci5zZXRXZWVrZGF5cyhuYXJyb3dXZWVrZGF5cyxEYXRlRm9ybWF0U3ltYm9scy5GT1JNQVQsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gbmFycm93V2Vla2RheXMxID0gZnIuZ2V0V2Vla2RheXMoRGF0ZUZvcm1hdFN5bWJvbHMuRk9STUFULERhdGVGb3JtYXRTeW1ib2xzLk5BUlJPVyk7CisgICAgICAgIGNvdW50ID0gbmFycm93V2Vla2RheXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gbmFycm93V2Vla2RheXMxLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cyhGT1JNQVQsTkFSUk9XKSBmYWlsZWQgKGRpZmZlcmVudCBzaXplIGFycmF5KSIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZighIG5hcnJvd1dlZWtkYXlzW2ldLmVxdWFscyhuYXJyb3dXZWVrZGF5czFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0V2Vla2RheXMoRk9STUFULE5BUlJPVykgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lV2Vla2RheXMgPSBlbi5nZXRXZWVrZGF5cyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLldJREUpOworICAgICAgICBmci5zZXRXZWVrZGF5cyhzdGFuZGFsb25lV2Vla2RheXMsRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5XSURFKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZVdlZWtkYXlzMSA9IGZyLmdldFdlZWtkYXlzKERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuV0lERSk7CisgICAgICAgIGNvdW50ID0gc3RhbmRhbG9uZVdlZWtkYXlzLmxlbmd0aDsKKyAgICAgICAgaWYoIGNvdW50ICE9IHN0YW5kYWxvbmVXZWVrZGF5czEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKFNUQU5EQUxPTkUsV0lERSkgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISBzdGFuZGFsb25lV2Vla2RheXNbaV0uZXF1YWxzKHN0YW5kYWxvbmVXZWVrZGF5czFbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0V2Vla2RheXMoU1RBTkRBTE9ORSxXSURFKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzID0gZW4uZ2V0V2Vla2RheXMoRGF0ZUZvcm1hdFN5bWJvbHMuU1RBTkRBTE9ORSxEYXRlRm9ybWF0U3ltYm9scy5BQkJSRVZJQVRFRCk7CisgICAgICAgIGZyLnNldFdlZWtkYXlzKHN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzLERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuQUJCUkVWSUFURUQpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBzdGFuZGFsb25lU2hvcnRXZWVrZGF5czEgPSBmci5nZXRXZWVrZGF5cyhEYXRlRm9ybWF0U3ltYm9scy5TVEFOREFMT05FLERhdGVGb3JtYXRTeW1ib2xzLkFCQlJFVklBVEVEKTsKKyAgICAgICAgY291bnQgPSBzdGFuZGFsb25lU2hvcnRXZWVrZGF5cy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBzdGFuZGFsb25lU2hvcnRXZWVrZGF5czEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKFNUQU5EQUxPTkUsQUJCUkVWSUFURUQpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgc3RhbmRhbG9uZVNob3J0V2Vla2RheXNbaV0uZXF1YWxzKHN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzMVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRXZWVrZGF5cyhTVEFOREFMT05FLEFCQlJFVklBVEVEKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHN0YW5kYWxvbmVOYXJyb3dXZWVrZGF5cyA9IGVuLmdldFdlZWtkYXlzKERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgZnIuc2V0V2Vla2RheXMoc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzLERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzMSA9IGZyLmdldFdlZWtkYXlzKERhdGVGb3JtYXRTeW1ib2xzLlNUQU5EQUxPTkUsRGF0ZUZvcm1hdFN5bWJvbHMuTkFSUk9XKTsKKyAgICAgICAgY291bnQgPSBzdGFuZGFsb25lTmFycm93V2Vla2RheXMubGVuZ3RoOworICAgICAgICBpZiggY291bnQgIT0gc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzMS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0V2Vla2RheXMoU1RBTkRBTE9ORSxOQVJST1cpIGZhaWxlZCAoZGlmZmVyZW50IHNpemUgYXJyYXkpIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKCEgc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzW2ldLmVxdWFscyhzdGFuZGFsb25lTmFycm93V2Vla2RheXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFdlZWtkYXlzKFNUQU5EQUxPTkUsTkFSUk9XKSBmYWlsZWQgKGRpZmZlcmVudCBzdHJpbmcgdmFsdWVzKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmaW5hbCBTdHJpbmdbXSBhbXBtcyA9IGVuLmdldEFtUG1TdHJpbmdzKCk7CisgICAgICAgIGZyLnNldEFtUG1TdHJpbmdzKGFtcG1zKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gYW1wbXMxID0gZnIuZ2V0QW1QbVN0cmluZ3MoKTsKKyAgICAgICAgY291bnQgPSBhbXBtcy5sZW5ndGg7CisgICAgICAgIGlmKCBjb3VudCAhPSBhbXBtczEubGVuZ3RoKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEFtUG1TdHJpbmdzKCkgZmFpbGVkIChkaWZmZXJlbnQgc2l6ZSBhcnJheSkiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoISBhbXBtc1tpXS5lcXVhbHMoYW1wbXMxW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEFtUG1TdHJpbmdzKCkgZmFpbGVkIChkaWZmZXJlbnQgc3RyaW5nIHZhbHVlcykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb25nIHJvd0NvdW50ID0gMCwgY29sdW1uQ291bnQgPSAwOworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIHN0cmluZ3MgPSBlbi5nZXRab25lU3RyaW5ncygpOworICAgICAgICBmci5zZXRab25lU3RyaW5ncyhzdHJpbmdzKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBzdHJpbmdzMSA9IGZyLmdldFpvbmVTdHJpbmdzKCk7CisgICAgICAgIHJvd0NvdW50ID0gc3RyaW5ncy5sZW5ndGg7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCByb3dDb3VudDsgaSsrKSB7CisgICAgICAgICAgICBjb2x1bW5Db3VudCA9IHN0cmluZ3NbaV0ubGVuZ3RoOworICAgICAgICAgICAgZm9yKGludCBqID0gMDsgaiA8IGNvbHVtbkNvdW50OyBqKyspIHsKKyAgICAgICAgICAgICAgICBpZiggc3RyaW5nc1tpXVtqXSAhPSBzdHJpbmdzMVtpXVtqXSApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRab25lU3RyaW5ncygpIGZhaWxlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisvLyAgICAgICAgZmluYWwgU3RyaW5nIHBhdHRlcm4gPSBEYXRlRm9ybWF0U3ltYm9scy5nZXRQYXR0ZXJuQ2hhcnMoKTsKKworICAgICAgICBTdHJpbmcgbG9jYWxQYXR0ZXJuOyAvLyBwYXQxLCBwYXQyOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgICAgIGxvY2FsUGF0dGVybiA9IGVuLmdldExvY2FsUGF0dGVybkNoYXJzKCk7CisgICAgICAgIGZyLnNldExvY2FsUGF0dGVybkNoYXJzKGxvY2FsUGF0dGVybik7CisgICAgICAgIGlmKCEgZW4uZ2V0TG9jYWxQYXR0ZXJuQ2hhcnMoKS5lcXVhbHMoZnIuZ2V0TG9jYWxQYXR0ZXJuQ2hhcnMoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TG9jYWxQYXR0ZXJuQ2hhcnMoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisKKyAgICAgICAgLy9EYXRlRm9ybWF0U3ltYm9scyBmb28gPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoKTsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorCisgICAgICAgIGVuID0gKERhdGVGb3JtYXRTeW1ib2xzKSBmci5jbG9uZSgpOworCisgICAgICAgIGlmKCEgZW4uZXF1YWxzKGZyKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBDbG9uZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0QVBJLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdEFQSS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQxYTVmMjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdEFQSS5qYXZhCkBAIC0wLDAgKzEsMjY5IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSkRLIDEuNGIxIDogamF2YS50ZXh0LkZvcm1hdC5JbnRsVGVzdERlY2ltYWxGb3JtYXRBUEkKKyAqIFNvdXJjZSBGaWxlOiBqYXZhL3RleHQvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdEFQSS5qYXZhCisgKiovCisgCisvKgorICAgIEB0ZXN0IDEuNCA5OC8wMy8wNgorICAgIEBzdW1tYXJ5IHRlc3QgSW50ZXJuYXRpb25hbCBEZWNpbWFsIEZvcm1hdCBBUEkKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CisKK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERlY2ltYWxGb3JtYXRBUEkgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpICB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0RGVjaW1hbEZvcm1hdEFQSSgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUHJvYmxlbSAxOiBzaW1wbHkgcnVubmluZyAKKyAgICAgKiBkZWNGNC5zZXRSb3VuZGluZ01vZGUoamF2YS5tYXRoLkJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9VUCkgZG9lcyBub3Qgd29yayAKKyAgICAgKiBhcyBkZWNGNC5zZXRSb3VuZGluZ0luY3JlbWVudCguMDAwMSkgbXVzdCBhbHNvIGJlIHJ1bi4KKyAgICAgKiBQcm9ibGVtIDI6IGRlY0Y0LmZvcm1hdCg4Ljg4ODg1KSBkb2VzIG5vdCByZXR1cm4gOC44ODg5IGFzIGV4cGVjdGVkLiAKKyAgICAgKiBZb3UgbXVzdCBydW4gZGVjRjQuZm9ybWF0KG5ldyBCaWdEZWNpbWFsKERvdWJsZS52YWx1ZU9mKDguODg4ODUpKSkgaW4gCisgICAgICogb3JkZXIgZm9yIHRoaXMgdG8gd29yayBhcyBleHBlY3RlZC4KKyAgICAgKiBQcm9ibGVtIDM6IFRoZXJlIHNlZW1zIHRvIGJlIG5vIHdheSB0byBzZXQgaGFsZiB1cCB0byBiZSB0aGUgZGVmYXVsdCAKKyAgICAgKiByb3VuZGluZyBtb2RlLgorICAgICAqIFdlIHNvbHZlZCB0aGUgcHJvYmxlbSB3aXRoIHRoZSBjb2RlIGF0IHRoZSBib3R0b20gb2YgdGhpcyBwYWdlIGhvd2V2ZXIgCisgICAgICogdGhpcyBpcyBub3QgcXVpdGUgZ2VuZXJhbCBwdXJwb3NlIGVub3VnaCB0byBpbmNsdWRlIGluIGljdTRqLiBBIHN0YXRpYworICAgICAqIHNldERlZmF1bHRSb3VuZGluZ01vZGUgZnVuY3Rpb24gd291bGQgc29sdmUgdGhlIHByb2JsZW0gbmljZWx5LiBBbHNvIAorICAgICAqIGRlY2ltYWwgcGxhY2VzIHBhc3QgMjAgYXJlIG5vdCBoYW5kbGVkIHByb3Blcmx5LiBBIHNtYWxsIGFtbW91bnQgb2Ygd29yayAKKyAgICAgKiB3b3VsZCBtYWtlIGJyaW5nIHRoaXMgdXAgdG8gc251ZmYuCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEpCMTg3MSgpCisgICAgeworICAgICAgICAvLyBwcm9ibGVtIDIKKyAgICAgICAgZG91YmxlIG51bWJlciA9IDguODg4ODU7CisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICI4Ljg4ODkiOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHBhdCA9ICIsIyMwLjAwMDAiOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRlYyA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdCk7CisgICAgICAgIGRlYy5zZXRSb3VuZGluZ01vZGUoQmlnRGVjaW1hbC5ST1VORF9IQUxGX1VQKTsKKyAgICAgICAgZG91YmxlIHJvdW5kaW5naW5jID0gMC4wMDAxOworICAgICAgICBkZWMuc2V0Um91bmRpbmdJbmNyZW1lbnQocm91bmRpbmdpbmMpOworICAgICAgICBTdHJpbmcgc3RyID0gZGVjLmZvcm1hdChudW1iZXIpOworICAgICAgICBpZiAoIXN0ci5lcXVhbHMoZXhwZWN0ZWQpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIG51bWJlciArICIgeCBcIiIgKyBwYXQgKyAiXCIgPSBcIiIgKworICAgICAgICAgICAgICAgICAgc3RyICsgIlwiLCBleHBlY3RlZCBcIiIgKyBleHBlY3RlZCArICJcIiIpOworICAgICAgICB9ICAgCisKKyAgICAgICAgcGF0ID0gIiwjIzAuMDAwMSI7CisgICAgICAgIGRlYyA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdCk7CisgICAgICAgIGRlYy5zZXRSb3VuZGluZ01vZGUoQmlnRGVjaW1hbC5ST1VORF9IQUxGX1VQKTsKKyAgICAgICAgc3RyID0gZGVjLmZvcm1hdChudW1iZXIpOworICAgICAgICBpZiAoIXN0ci5lcXVhbHMoZXhwZWN0ZWQpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIG51bWJlciArICIgeCBcIiIgKyBwYXQgKyAiXCIgPSBcIiIgKworICAgICAgICAgICAgICAgICAgc3RyICsgIlwiLCBleHBlY3RlZCBcIiIgKyBleHBlY3RlZCArICJcIiIpOworICAgICAgICB9ICAKKyAgICAgICAgCisgICAgICAgIC8vIHRlc3RpbmcgMjAgZGVjaW1hbCBwbGFjZXMKKyAgICAgICAgcGF0ID0gIiwjIzAuMDAwMDAwMDAwMDAwMDAwMDAwMDEiOworICAgICAgICBkZWMgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXQpOworICAgICAgICBCaWdEZWNpbWFsIGJpZ251bWJlciA9IG5ldyBCaWdEZWNpbWFsKCI4Ljg4ODg4ODg4ODg4ODg4ODg4ODg4NSIpOworICAgICAgICBleHBlY3RlZCA9ICI4Ljg4ODg4ODg4ODg4ODg4ODg4ODg5IjsKKyAgICAgICAgCisgICAgICAgIGRlYy5zZXRSb3VuZGluZ01vZGUoQmlnRGVjaW1hbC5ST1VORF9IQUxGX1VQKTsKKyAgICAgICAgc3RyID0gZGVjLmZvcm1hdChiaWdudW1iZXIpOyAKKyAgICAgICAgaWYgKCFzdHIuZXF1YWxzKGV4cGVjdGVkKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBiaWdudW1iZXIgKyAiIHggXCIiICsgcGF0ICsgIlwiID0gXCIiICsKKyAgICAgICAgICAgICAgICAgIHN0ciArICJcIiwgZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWQgKyAiXCIiKTsKKyAgICAgICAgfSAgIAorICAgICAgICAKKyAgICB9CisKKyAgICAvKiogCisgICAgICogVGhpcyB0ZXN0IGNoZWNrcyB2YXJpb3VzIGdlbmVyaWMgQVBJIG1ldGhvZHMgaW4gRGVjaW1hbEZvcm1hdCB0byBhY2hpZXZlIAorICAgICAqIDEwMCUgQVBJIGNvdmVyYWdlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBUEkoKQorICAgIHsKKyAgICAgICAgbG9nbG4oIkRlY2ltYWxGb3JtYXQgQVBJIHRlc3QtLS0iKTsgbG9nbG4oIiIpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuRU5HTElTSCk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGNvbnN0cnVjdG9ycworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIERlY2ltYWxGb3JtYXQgY29uc3RydWN0b3JzIik7CisKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZWYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworCisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gbmV3IFN0cmluZygiIywjIzAuIyBGRiIpOworICAgICAgICBEZWNpbWFsRm9ybWF0IHBhdCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBwYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXR0ZXJuKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ291bGQgbm90IGNyZWF0ZSBEZWNpbWFsRm9ybWF0IChwYXR0ZXJuKSIpOworICAgICAgICB9CisKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRlJFTkNIKTsKKworICAgICAgICBEZWNpbWFsRm9ybWF0IGN1c3QxID0gbmV3IERlY2ltYWxGb3JtYXQocGF0dGVybiwgc3ltYm9scyk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGNsb25lKCksIGFzc2lnbm1lbnQsIGFuZCBlcXVhbGl0eQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGNsb25lKCkgYW5kIGVxdWFsaXR5IG9wZXJhdG9ycyIpOworCisgICAgICAgIEZvcm1hdCBjbG9uZSA9IChGb3JtYXQpIGRlZi5jbG9uZSgpOworICAgICAgICBpZiggISBkZWYuZXF1YWxzKGNsb25lKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBDbG9uZSgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IHZhcmlvdXMgZm9ybWF0KCkgbWV0aG9kcworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHZhcmlvdXMgZm9ybWF0KCkgbWV0aG9kcyIpOworCisvLyAgICAgICAgZmluYWwgZG91YmxlIGQgPSAtMTA0NTYuMDAzNzsgLy8gdGhpcyBhcHBlYXJzIGFzIC0xMDQ1Ni4wMDM3MDAwMDAwMDEgb24gTlQKKy8vICAgICAgICBmaW5hbCBkb3VibGUgZCA9IC0xLjA0NTYwMDM3ZS00OyAvLyB0aGlzIGFwcGVhcnMgYXMgLTEuMDQ1NjAwMzcwMDAwMDAwMkUtNCBvbiBOVAorICAgICAgICBmaW5hbCBkb3VibGUgZCA9IC0xMDQ1Ni4wMDM3MDAwMDAwMDAwMDsgLy8gdGhpcyB3b3JrcyEKKyAgICAgICAgZmluYWwgbG9uZyBsID0gMTAwMDAwMDAwOworICAgICAgICBsb2dsbigiIiArIGQgKyAiIGlzIHRoZSBkb3VibGUgdmFsdWUiKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzMSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzNCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MxID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMiA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczMgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3M0ID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisKKyAgICAgICAgcmVzMSA9IGRlZi5mb3JtYXQoZCwgcmVzMSwgcG9zMSk7CisgICAgICAgIGxvZ2xuKCIiICsgZCArICIgZm9ybWF0dGVkIHRvICIgKyByZXMxKTsKKworICAgICAgICByZXMyID0gcGF0LmZvcm1hdChsLCByZXMyLCBwb3MyKTsKKyAgICAgICAgbG9nbG4oIiIgKyBsICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczIpOworCisgICAgICAgIHJlczMgPSBjdXN0MS5mb3JtYXQoZCwgcmVzMywgcG9zMyk7CisgICAgICAgIGxvZ2xuKCIiICsgZCArICIgZm9ybWF0dGVkIHRvICIgKyByZXMzKTsKKworICAgICAgICByZXM0ID0gY3VzdDEuZm9ybWF0KGwsIHJlczQsIHBvczQpOworICAgICAgICBsb2dsbigiIiArIGwgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzNCk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IHBhcnNlKCkKKworICAgICAgICBsb2dsbigiVGVzdGluZyBwYXJzZSgpIik7CisKKyAgICAgICAgU3RyaW5nIHRleHQgPSBuZXcgU3RyaW5nKCItMTAsNDU2LjAwMzciKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgU3RyaW5nIHBhdHQgPSBuZXcgU3RyaW5nKCIjLCMjMC4jIik7CisgICAgICAgIHBhdC5hcHBseVBhdHRlcm4ocGF0dCk7CisgICAgICAgIGRvdWJsZSBkMiA9IHBhdC5wYXJzZSh0ZXh0LCBwb3MpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgIGlmKGQyICE9IGQpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogUm91bmR0cmlwIGZhaWxlZCAodmlhIHBhcnNlKCIgKyBkMiArICIgIT0gIiArIGQgKyAiKSkgZm9yICIgKyB0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgKGxvbmcpIGQyKTsKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgZ2V0dGVycyBhbmQgc2V0dGVycworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGdldHRlcnMgYW5kIHNldHRlcnMiKTsKKworICAgICAgICBmaW5hbCBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1zID0gcGF0LmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgIGRlZi5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW1zKTsKKyAgICAgICAgaWYoICEgcGF0LmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCkuZXF1YWxzKGRlZi5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXQgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBwb3NQcmVmaXg7CisgICAgICAgIHBhdC5zZXRQb3NpdGl2ZVByZWZpeCgiKyIpOworICAgICAgICBwb3NQcmVmaXggPSBwYXQuZ2V0UG9zaXRpdmVQcmVmaXgoKTsKKyAgICAgICAgbG9nbG4oIlBvc2l0aXZlIHByZWZpeCAoc2hvdWxkIGJlICspOiAiICsgcG9zUHJlZml4KTsKKyAgICAgICAgaWYocG9zUHJlZml4ICE9ICIrIikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRQb3NpdGl2ZVByZWZpeCgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIG5lZ1ByZWZpeDsKKyAgICAgICAgcGF0LnNldE5lZ2F0aXZlUHJlZml4KCItIik7CisgICAgICAgIG5lZ1ByZWZpeCA9IHBhdC5nZXROZWdhdGl2ZVByZWZpeCgpOworICAgICAgICBsb2dsbigiTmVnYXRpdmUgcHJlZml4IChzaG91bGQgYmUgLSk6ICIgKyBuZWdQcmVmaXgpOworICAgICAgICBpZihuZWdQcmVmaXggIT0gIi0iKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE5lZ2F0aXZlUHJlZml4KCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgcG9zU3VmZml4OworICAgICAgICBwYXQuc2V0UG9zaXRpdmVTdWZmaXgoIl8iKTsKKyAgICAgICAgcG9zU3VmZml4ID0gcGF0LmdldFBvc2l0aXZlU3VmZml4KCk7CisgICAgICAgIGxvZ2xuKCJQb3NpdGl2ZSBzdWZmaXggKHNob3VsZCBiZSBfKTogIiArIHBvc1N1ZmZpeCk7CisgICAgICAgIGlmKHBvc1N1ZmZpeCAhPSAiXyIpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0UG9zaXRpdmVTdWZmaXgoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBuZWdTdWZmaXg7CisgICAgICAgIHBhdC5zZXROZWdhdGl2ZVN1ZmZpeCgifiIpOworICAgICAgICBuZWdTdWZmaXggPSBwYXQuZ2V0TmVnYXRpdmVTdWZmaXgoKTsKKyAgICAgICAgbG9nbG4oIk5lZ2F0aXZlIHN1ZmZpeCAoc2hvdWxkIGJlIH4pOiAiICsgbmVnU3VmZml4KTsKKyAgICAgICAgaWYobmVnU3VmZml4ICE9ICJ+IikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXROZWdhdGl2ZVN1ZmZpeCgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgbG9uZyBtdWx0aXBsaWVyID0gMDsKKyAgICAgICAgcGF0LnNldE11bHRpcGxpZXIoOCk7CisgICAgICAgIG11bHRpcGxpZXIgPSBwYXQuZ2V0TXVsdGlwbGllcigpOworICAgICAgICBsb2dsbigiTXVsdGlwbGllciAoc2hvdWxkIGJlIDgpOiAiICsgbXVsdGlwbGllcik7CisgICAgICAgIGlmKG11bHRpcGxpZXIgIT0gOCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNdWx0aXBsaWVyKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZ3JvdXBpbmdTaXplID0gMDsKKyAgICAgICAgcGF0LnNldEdyb3VwaW5nU2l6ZSgyKTsKKyAgICAgICAgZ3JvdXBpbmdTaXplID0gcGF0LmdldEdyb3VwaW5nU2l6ZSgpOworICAgICAgICBsb2dsbigiR3JvdXBpbmcgc2l6ZSAoc2hvdWxkIGJlIDIpOiAiICsgKGxvbmcpIGdyb3VwaW5nU2l6ZSk7CisgICAgICAgIGlmKGdyb3VwaW5nU2l6ZSAhPSAyKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEdyb3VwaW5nU2l6ZSgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgcGF0LnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bih0cnVlKTsKKyAgICAgICAgYm9vbGVhbiB0ZiA9IHBhdC5pc0RlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bigpOworICAgICAgICBsb2dsbigiRGVjaW1hbFNlcGFyYXRvcklzQWx3YXlzU2hvd24gKHNob3VsZCBiZSB0cnVlKSBpcyAiICsgICh0ZiA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICAgICAgaWYodGYgIT0gdHJ1ZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBmdW5reVBhdDsKKyAgICAgICAgZnVua3lQYXQgPSBwYXQudG9QYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKCJQYXR0ZXJuIGlzICIgKyBmdW5reVBhdCk7CisKKyAgICAgICAgU3RyaW5nIGxvY1BhdDsKKyAgICAgICAgbG9jUGF0ID0gcGF0LnRvTG9jYWxpemVkUGF0dGVybigpOworICAgICAgICBsb2dsbigiTG9jYWxpemVkIHBhdHRlcm4gaXMgIiArIGxvY1BhdCk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGFwcGx5UGF0dGVybigpCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgYXBwbHlQYXR0ZXJuKCkiKTsKKworICAgICAgICBTdHJpbmcgcDEgPSBuZXcgU3RyaW5nKCIjLCMjMC4wIzsoIywjIzAuMCMpIik7CisgICAgICAgIGxvZ2xuKCJBcHBseWluZyBwYXR0ZXJuICIgKyBwMSk7CisgICAgICAgIHBhdC5hcHBseVBhdHRlcm4ocDEpOworICAgICAgICBTdHJpbmcgczI7CisgICAgICAgIHMyID0gcGF0LnRvUGF0dGVybigpOworICAgICAgICBsb2dsbigiRXh0cmFjdGVkIHBhdHRlcm4gaXMgIiArIHMyKTsKKyAgICAgICAgaWYoICEgczIuZXF1YWxzKHAxKSApIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogdG9QYXR0ZXJuKCkgcmVzdWx0IGRpZCBub3QgbWF0Y2ggcGF0dGVybiBhcHBsaWVkIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgcDIgPSBuZXcgU3RyaW5nKCIjLCMjMC4wIyBGRjsoIywjIzAuMCMgRkYpIik7CisgICAgICAgIGxvZ2xuKCJBcHBseWluZyBwYXR0ZXJuICIgKyBwMik7CisgICAgICAgIHBhdC5hcHBseUxvY2FsaXplZFBhdHRlcm4ocDIpOworICAgICAgICBTdHJpbmcgczM7CisgICAgICAgIHMzID0gcGF0LnRvTG9jYWxpemVkUGF0dGVybigpOworICAgICAgICBsb2dsbigiRXh0cmFjdGVkIHBhdHRlcm4gaXMgIiArIHMzKTsKKyAgICAgICAgaWYoICEgczMuZXF1YWxzKHAyKSApIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogdG9Mb2NhbGl6ZWRQYXR0ZXJuKCkgcmVzdWx0IGRpZCBub3QgbWF0Y2ggcGF0dGVybiBhcHBsaWVkIik7CisgICAgICAgIH0KKyAgICB9Cit9CisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRBUElDLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdEFQSUMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMmQ0OTNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRBUElDLmphdmEKQEAgLTAsMCArMSwyODEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBJbnRsVGVzdERlY2ltYWxGb3JtYXRBUEkKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L2RjZm1hcHRzLmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LkZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CisKKy8vIFRoaXMgaXMgYW4gQVBJIHRlc3QsIG5vdCBhIHVuaXQgdGVzdC4gIEl0IGRvZXNuJ3QgdGVzdCB2ZXJ5IG1hbnkgY2FzZXMsIGFuZCBkb2Vzbid0CisvLyB0cnkgdG8gdGVzdCB0aGUgZnVsbCBmdW5jdGlvbmFsaXR5LiAgSXQganVzdCBjYWxscyBlYWNoIGZ1bmN0aW9uIGluIHRoZSBjbGFzcyBhbmQKKy8vIHZlcmlmaWVzIHRoYXQgaXQgd29ya3Mgb24gYSBiYXNpYyBsZXZlbC4KK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERlY2ltYWxGb3JtYXRBUElDIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpICB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0RGVjaW1hbEZvcm1hdEFQSUMoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLy8gVGhpcyB0ZXN0IGNoZWNrcyB2YXJpb3VzIGdlbmVyaWMgQVBJIG1ldGhvZHMgaW4gRGVjaW1hbEZvcm1hdCB0byBhY2hpZXZlIDEwMCUgQVBJIGNvdmVyYWdlLgorICAgIHB1YmxpYyB2b2lkIFRlc3RBUEkoKSB7CisgICAgICAgIAorICAgICAgICBsb2dsbigiRGVjaW1hbEZvcm1hdCBBUEkgdGVzdC0tLSIpOworICAgICAgICBsb2dsbigiIik7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5FTkdMSVNIKTsKKyAgICAKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGNvbnN0cnVjdG9ycworICAgIAorICAgICAgICBsb2dsbigiVGVzdGluZyBEZWNpbWFsRm9ybWF0IGNvbnN0cnVjdG9ycyIpOworICAgIAorICAgICAgICBEZWNpbWFsRm9ybWF0IGRlZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgCisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gbmV3IFN0cmluZygiIywjIzAuIyBGRiIpOworICAgICAgICBEZWNpbWFsRm9ybWF0IHBhdCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBwYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXR0ZXJuKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ291bGQgbm90IGNyZWF0ZSBEZWNpbWFsRm9ybWF0IChwYXR0ZXJuKSIpOworICAgICAgICB9CisgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSRU5DSCk7CisgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXQgY3VzdDEgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXR0ZXJuLCBzeW1ib2xzKTsKKyAgICAKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGNsb25lKCksIGFzc2lnbm1lbnQsIGFuZCBlcXVhbGl0eQorICAgIAorICAgICAgICBsb2dsbigiVGVzdGluZyBjbG9uZSgpIGFuZCBlcXVhbGl0eSBvcGVyYXRvcnMiKTsKKyAgICAKKyAgICAgICAgRm9ybWF0IGNsb25lID0gKEZvcm1hdCkgZGVmLmNsb25lKCk7CisgICAgICAgIGlmICghZGVmLmVxdWFscyhjbG9uZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ2xvbmUoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyA9PT09PT09IFRlc3QgdmFyaW91cyBmb3JtYXQoKSBtZXRob2RzCisgICAgCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHZhcmlvdXMgZm9ybWF0KCkgbWV0aG9kcyIpOworICAgIAorICAgICAgICAvLyAgICAgICAgZmluYWwgZG91YmxlIGQgPSAtMTA0NTYuMDAzNzsgLy8gdGhpcyBhcHBlYXJzIGFzIC0xMDQ1Ni4wMDM3MDAwMDAwMDEgb24gTlQKKyAgICAgICAgLy8gICAgICAgIGZpbmFsIGRvdWJsZSBkID0gLTEuMDQ1NjAwMzdlLTQ7IC8vIHRoaXMgYXBwZWFycyBhcyAtMS4wNDU2MDAzNzAwMDAwMDAyRS00IG9uIE5UCisgICAgICAgIGZpbmFsIGRvdWJsZSBkID0gLTEwNDU2LjAwMzcwMDAwMDAwMDAwOyAvLyB0aGlzIHdvcmtzIQorICAgICAgICBmaW5hbCBsb25nIGwgPSAxMDAwMDAwMDA7CisgICAgICAgIGxvZ2xuKCIiICsgRG91YmxlLnRvU3RyaW5nKGQpICsgIiBpcyB0aGUgZG91YmxlIHZhbHVlIik7CisgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXMxID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzMiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXM0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczEgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MyID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczQgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAKKyAgICAgICAgcmVzMSA9IGRlZi5mb3JtYXQoZCwgcmVzMSwgcG9zMSk7CisgICAgICAgIGxvZ2xuKCIiICsgRG91YmxlLnRvU3RyaW5nKGQpICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczEpOworICAgIAorICAgICAgICByZXMyID0gcGF0LmZvcm1hdChsLCByZXMyLCBwb3MyKTsKKyAgICAgICAgbG9nbG4oIiIgKyBsICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczIpOworICAgIAorICAgICAgICByZXMzID0gY3VzdDEuZm9ybWF0KGQsIHJlczMsIHBvczMpOworICAgICAgICBsb2dsbigiIiArIERvdWJsZS50b1N0cmluZyhkKSArICIgZm9ybWF0dGVkIHRvICIgKyByZXMzKTsKKyAgICAKKyAgICAgICAgcmVzNCA9IGN1c3QxLmZvcm1hdChsLCByZXM0LCBwb3M0KTsKKyAgICAgICAgbG9nbG4oIiIgKyBsICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczQpOworICAgIAorICAgICAgICAvLyA9PT09PT09IFRlc3QgcGFyc2UoKQorICAgIAorICAgICAgICBsb2dsbigiVGVzdGluZyBwYXJzZSgpIik7CisgICAgCisgICAgICAgIFN0cmluZyB0ZXh0ID0gbmV3IFN0cmluZygiLTEwLDQ1Ni4wMDM3Iik7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFN0cmluZyBwYXR0ID0gbmV3IFN0cmluZygiIywjIzAuIyIpOworICAgICAgICBwYXQuYXBwbHlQYXR0ZXJuKHBhdHQpOworICAgICAgICBkb3VibGUgZDIgPSBwYXQucGFyc2UodGV4dCwgcG9zKS5kb3VibGVWYWx1ZSgpOworICAgICAgICBpZiAoZDIgIT0gZCkgeworICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgIkVSUk9SOiBSb3VuZHRyaXAgZmFpbGVkICh2aWEgcGFyc2UoIiArIERvdWJsZS50b1N0cmluZyhkMikgKyAiICE9ICIgKyBEb3VibGUudG9TdHJpbmcoZCkgKyAiKSkgZm9yICIgKyB0ZXh0KTsgCisgICAgICAgIH0KKyAgICAgICAgbG9nbG4odGV4dCArICIgcGFyc2VkIGludG8gIiArIChsb25nKSBkMik7CisgICAgCisgICAgICAgIC8vID09PT09PT0gVGVzdCBnZXR0ZXJzIGFuZCBzZXR0ZXJzCisgICAgCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGdldHRlcnMgYW5kIHNldHRlcnMiKTsKKyAgICAKKyAgICAgICAgZmluYWwgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltcyA9IHBhdC5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICBkZWYuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltcyk7CisgICAgICAgIGlmICghcGF0LmdldERlY2ltYWxGb3JtYXRTeW1ib2xzKCkuZXF1YWxzKGRlZi5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXQgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmcgcG9zUHJlZml4OworICAgICAgICBwYXQuc2V0UG9zaXRpdmVQcmVmaXgoIisiKTsKKyAgICAgICAgcG9zUHJlZml4ID0gcGF0LmdldFBvc2l0aXZlUHJlZml4KCk7CisgICAgICAgIGxvZ2xuKCJQb3NpdGl2ZSBwcmVmaXggKHNob3VsZCBiZSArKTogIiArIHBvc1ByZWZpeCk7CisgICAgICAgIGlmIChwb3NQcmVmaXggIT0gIisiKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFBvc2l0aXZlUHJlZml4KCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIG5lZ1ByZWZpeDsKKyAgICAgICAgcGF0LnNldE5lZ2F0aXZlUHJlZml4KCItIik7CisgICAgICAgIG5lZ1ByZWZpeCA9IHBhdC5nZXROZWdhdGl2ZVByZWZpeCgpOworICAgICAgICBsb2dsbigiTmVnYXRpdmUgcHJlZml4IChzaG91bGQgYmUgLSk6ICIgKyBuZWdQcmVmaXgpOworICAgICAgICBpZiAobmVnUHJlZml4ICE9ICItIikgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXROZWdhdGl2ZVByZWZpeCgpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyBwb3NTdWZmaXg7CisgICAgICAgIHBhdC5zZXRQb3NpdGl2ZVN1ZmZpeCgiXyIpOworICAgICAgICBwb3NTdWZmaXggPSBwYXQuZ2V0UG9zaXRpdmVTdWZmaXgoKTsKKyAgICAgICAgbG9nbG4oIlBvc2l0aXZlIHN1ZmZpeCAoc2hvdWxkIGJlIF8pOiAiICsgcG9zU3VmZml4KTsKKyAgICAgICAgaWYgKHBvc1N1ZmZpeCAhPSAiXyIpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0UG9zaXRpdmVTdWZmaXgoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmcgbmVnU3VmZml4OworICAgICAgICBwYXQuc2V0TmVnYXRpdmVTdWZmaXgoIn4iKTsKKyAgICAgICAgbmVnU3VmZml4ID0gcGF0LmdldE5lZ2F0aXZlU3VmZml4KCk7CisgICAgICAgIGxvZ2xuKCJOZWdhdGl2ZSBzdWZmaXggKHNob3VsZCBiZSB+KTogIiArIG5lZ1N1ZmZpeCk7CisgICAgICAgIGlmIChuZWdTdWZmaXggIT0gIn4iKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldE5lZ2F0aXZlU3VmZml4KCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgbG9uZyBtdWx0aXBsaWVyID0gMDsKKyAgICAgICAgcGF0LnNldE11bHRpcGxpZXIoOCk7CisgICAgICAgIG11bHRpcGxpZXIgPSBwYXQuZ2V0TXVsdGlwbGllcigpOworICAgICAgICBsb2dsbigiTXVsdGlwbGllciAoc2hvdWxkIGJlIDgpOiAiICsgbXVsdGlwbGllcik7CisgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDgpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TXVsdGlwbGllcigpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGludCBncm91cGluZ1NpemUgPSAwOworICAgICAgICBwYXQuc2V0R3JvdXBpbmdTaXplKDIpOworICAgICAgICBncm91cGluZ1NpemUgPSBwYXQuZ2V0R3JvdXBpbmdTaXplKCk7CisgICAgICAgIGxvZ2xuKCJHcm91cGluZyBzaXplIChzaG91bGQgYmUgMik6ICIgKyAobG9uZykgZ3JvdXBpbmdTaXplKTsKKyAgICAgICAgaWYgKGdyb3VwaW5nU2l6ZSAhPSAyKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEdyb3VwaW5nU2l6ZSgpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIHBhdC5zZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24odHJ1ZSk7CisgICAgICAgIGJvb2xlYW4gdGYgPSBwYXQuaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKTsKKyAgICAgICAgbG9nbG4oCisgICAgICAgICAgICAiRGVjaW1hbFNlcGFyYXRvcklzQWx3YXlzU2hvd24gKHNob3VsZCBiZSB0cnVlKSBpcyAiICsgKHRmID8gInRydWUiIDogImZhbHNlIikpOyAKKyAgICAgICAgaWYgKHRmICE9IHRydWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIGZ1bmt5UGF0OworICAgICAgICBmdW5reVBhdCA9IHBhdC50b1BhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oIlBhdHRlcm4gaXMgIiArIGZ1bmt5UGF0KTsKKyAgICAKKyAgICAgICAgU3RyaW5nIGxvY1BhdDsKKyAgICAgICAgbG9jUGF0ID0gcGF0LnRvTG9jYWxpemVkUGF0dGVybigpOworICAgICAgICBsb2dsbigiTG9jYWxpemVkIHBhdHRlcm4gaXMgIiArIGxvY1BhdCk7CisgICAgCisgICAgICAgIC8vID09PT09PT0gVGVzdCBhcHBseVBhdHRlcm4oKQorICAgIAorICAgICAgICBsb2dsbigiVGVzdGluZyBhcHBseVBhdHRlcm4oKSIpOworICAgIAorICAgICAgICBTdHJpbmcgcDEgPSBuZXcgU3RyaW5nKCIjLCMjMC4wIzsoIywjIzAuMCMpIik7CisgICAgICAgIGxvZ2xuKCJBcHBseWluZyBwYXR0ZXJuICIgKyBwMSk7CisgICAgICAgIHBhdC5hcHBseVBhdHRlcm4ocDEpOworICAgICAgICBTdHJpbmcgczI7CisgICAgICAgIHMyID0gcGF0LnRvUGF0dGVybigpOworICAgICAgICBsb2dsbigiRXh0cmFjdGVkIHBhdHRlcm4gaXMgIiArIHMyKTsKKyAgICAgICAgaWYgKCFzMi5lcXVhbHMocDEpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHRvUGF0dGVybigpIHJlc3VsdCBkaWQgbm90IG1hdGNoIHBhdHRlcm4gYXBwbGllZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyBwMiA9IG5ldyBTdHJpbmcoIiMsIyMwLjAjIEZGOygjLCMjMC4wIyBGRikiKTsKKyAgICAgICAgbG9nbG4oIkFwcGx5aW5nIHBhdHRlcm4gIiArIHAyKTsKKyAgICAgICAgcGF0LmFwcGx5TG9jYWxpemVkUGF0dGVybihwMik7CisgICAgICAgIFN0cmluZyBzMzsKKyAgICAgICAgczMgPSBwYXQudG9Mb2NhbGl6ZWRQYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKCJFeHRyYWN0ZWQgcGF0dGVybiBpcyAiICsgczMpOworICAgICAgICBpZiAoIXMzLmVxdWFscyhwMikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogdG9Mb2NhbGl6ZWRQYXR0ZXJuKCkgcmVzdWx0IGRpZCBub3QgbWF0Y2ggcGF0dGVybiBhcHBsaWVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGdldFN0YXRpY0NsYXNzSUQoKQorICAgIAorICAgICAgICAvLyAgICAgICAgbG9nbG4oIlRlc3RpbmcgaW5zdGFuY2VvZigpIik7CisgICAgCisgICAgICAgIC8vICAgICAgICB0cnkgeworICAgICAgICAvLyAgICAgICAgICAgTnVtYmVyRm9ybWF0IHRlc3QgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgIAorICAgICAgICAvLyAgICAgICAgICAgIGlmICghICh0ZXN0IGluc3RhbmNlb2YgRGVjaW1hbEZvcm1hdCkpIHsKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpbnN0YW5jZW9mIGZhaWxlZCIpOworICAgICAgICAvLyAgICAgICAgICAgIH0KKyAgICAgICAgLy8gICAgICAgIH0KKyAgICAgICAgLy8gICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAvLyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogQ291bGRuJ3QgY3JlYXRlIGEgRGVjaW1hbEZvcm1hdCIpOworICAgICAgICAvLyAgICAgICAgfQorICAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSb3VuZGluZygpIHsKKyAgICAgICAgZG91YmxlIFJvdW5kaW5nbnVtYmVyID0gMi41NTsKKyAgICAgICAgZG91YmxlIFJvdW5kaW5nbnVtYmVyMSA9IC0yLjU1OworICAgICAgICAvLysyLjU1IHJlc3VsdHMgICAtMi41NSByZXN1bHRzCisgICAgICAgIGRvdWJsZSByZXN1bHRbXSA9IHsKKyAgICAgICAgICAgIDMsIC0zLCAgIAorICAgICAgICAgICAgMiwgLTIsIAorICAgICAgICAgICAgMywgLTIsIAorICAgICAgICAgICAgMiwgLTMsIAorICAgICAgICAgICAgMywgLTMsIAorICAgICAgICAgICAgMywgLTMsIAorICAgICAgICAgICAgMywgLTMgCisgICAgICAgIH07CisgICAgICAgIERlY2ltYWxGb3JtYXQgcGF0ID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgU3RyaW5nIHMgPSAiIjsKKyAgICAgICAgcyA9IHBhdC50b1BhdHRlcm4oKTsKKyAgICAgICAgbG9nbG4oInBhdHRlcm4gPSAiICsgcyk7CisgICAgICAgIGludCBtb2RlOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAgICAgICBTdHJpbmcgcmVzdWx0U3RyOworICAgICAgICBmb3IgKG1vZGUgPSAwOyBtb2RlIDwgNzsgbW9kZSsrKSB7CisgICAgICAgICAgICBwYXQuc2V0Um91bmRpbmdNb2RlKG1vZGUpOworICAgICAgICAgICAgaWYgKHBhdC5nZXRSb3VuZGluZ01vZGUoKSAhPSBtb2RlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oCisgICAgICAgICAgICAgICAgICAgICAiU2V0Um91bmRpbmdNb2RlIG9yIEdldFJvdW5kaW5nTW9kZSBmYWlsZWQgZm9yIG1vZGU9IiArIG1vZGUpOyAKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vZm9yICsyLjU1IHdpdGggUm91bmRpbmdJbmNyZW1lbnQ9MS4wCisgICAgICAgICAgICBwYXQuc2V0Um91bmRpbmdJbmNyZW1lbnQoMS4wKTsKKyAgICAgICAgICAgIHJlc3VsdFN0ciA9IHBhdC5mb3JtYXQoUm91bmRpbmdudW1iZXIpOworICAgICAgICAgICAgbWVzc2FnZSA9ICJyb3VuZCgiICsgKGRvdWJsZSkgUm91bmRpbmdudW1iZXIKKyAgICAgICAgICAgICAgICAgICAgKyAiLCIgKyBtb2RlICsgIixGQUxTRSkgd2l0aCBSb3VuZGluZ0luY3JlbWVudD0xLjA9PT4iOyAKKyAgICAgICAgICAgIHZlcmlmeShtZXNzYWdlLCByZXN1bHRTdHIsIHJlc3VsdFtpKytdKTsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAiIjsKKyAgICAgICAgICAgIHJlc3VsdFN0ciA9ICIiOworICAgIAorICAgICAgICAgICAgLy9mb3IgLTIuNTUgd2l0aCBSb3VuZGluZ0luY3JlbWVudD0xLjAKKyAgICAgICAgICAgIHJlc3VsdFN0ciA9IHBhdC5mb3JtYXQoUm91bmRpbmdudW1iZXIxKTsKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAicm91bmQoIiArIChkb3VibGUpIFJvdW5kaW5nbnVtYmVyMQorICAgICAgICAgICAgICAgICAgICArICIsIiArIG1vZGUgKyAiLEZBTFNFKSB3aXRoIFJvdW5kaW5nSW5jcmVtZW50PTEuMD09PiI7IAorICAgICAgICAgICAgdmVyaWZ5KG1lc3NhZ2UsIHJlc3VsdFN0ciwgcmVzdWx0W2krK10pOworICAgICAgICAgICAgbWVzc2FnZSA9ICIiOworICAgICAgICAgICAgcmVzdWx0U3RyID0gIiI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLypIZWxwZXIgZnVuY3Rpb25zICovCisgICAgcHVibGljIHZvaWQgdmVyaWZ5KFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZ290LCBkb3VibGUgZXhwZWN0ZWQpIHsKKyAgICAgICAgbG9nbG4obWVzc2FnZSArIGdvdCArICIgRXhwZWN0ZWQgOiAiICsgKGxvbmcpZXhwZWN0ZWQpOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRTdHIgPSAiIjsKKyAgICAgICAgZXhwZWN0ZWRTdHI9ZXhwZWN0ZWRTdHIgKyAobG9uZylleHBlY3RlZDsKKyAgICAgICAgaWYoIWdvdC5lcXVhbHMoZXhwZWN0ZWRTdHIpICkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBSb3VuZCgpIGZhaWxlZDogICIgKyBtZXNzYWdlICsgZ290ICsgIiAgRXhwZWN0ZWQgOiAiICsgZXhwZWN0ZWRTdHIpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2U0YzMwMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9scy5qYXZhCkBAIC0wLDAgKzEsMTUyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSkRLIDEuNGIxIDogamF2YS50ZXh0LkZvcm1hdC5JbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzCisgKiBTb3VyY2UgRmlsZTogamF2YS90ZXh0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzLmphdmEKKyAqKi8KKyAKKy8qCisgICAgQHRlc3QgMS40IDk4LzAzLzA2CisgICAgQHN1bW1hcnkgdGVzdCBJbnRlcm5hdGlvbmFsIERlY2ltYWwgRm9ybWF0IFN5bWJvbHMKKyovCisKKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeTsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLy8gVGVzdCB0aGUgQVBJIG9mIERlY2ltYWxGb3JtYXRTeW1ib2xzOyBwcmltYXJpbHkgYSBzaW1wbGUgZ2V0L3NldCBzZXQuCisgICAgcHVibGljIHZvaWQgVGVzdFN5bWJvbHMoKQorICAgIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZnIgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSRU5DSCk7CisKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZW4gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkVOR0xJU0gpOworCisgICAgICAgIGlmKGVuLmVxdWFscyhmcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogRW5nbGlzaCBEZWNpbWFsRm9ybWF0U3ltYm9scyBlcXVhbCB0byBGcmVuY2giKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGp1c3QgZG8gc29tZSBWRVJZIGJhc2ljIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IGdldC9zZXQgd29yaworCisgICAgICAgIGNoYXIgemVybyA9IGVuLmdldFplcm9EaWdpdCgpOworICAgICAgICBmci5zZXRaZXJvRGlnaXQoemVybyk7CisgICAgICAgIGlmKGZyLmdldFplcm9EaWdpdCgpICE9IGVuLmdldFplcm9EaWdpdCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgWmVyb0RpZ2l0IGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBzaWdEaWdpdCA9IGVuLmdldFNpZ25pZmljYW50RGlnaXQoKTsKKyAgICAgICAgZnIuc2V0U2lnbmlmaWNhbnREaWdpdChzaWdEaWdpdCk7IAorICAgICAgICBpZihmci5nZXRTaWduaWZpY2FudERpZ2l0KCkgIT0gZW4uZ2V0U2lnbmlmaWNhbnREaWdpdCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgU2lnbmlmaWNhbnREaWdpdCBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIEN1cnJlbmN5IGN1cnJlbmN5ID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UoIlVTRCIpOworICAgICAgICBmci5zZXRDdXJyZW5jeShjdXJyZW5jeSk7CisgICAgICAgIGlmICghZnIuZ2V0Q3VycmVuY3koKS5lcXVhbHMoY3VycmVuY3kpKXsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBDdXJyZW5jeSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNoYXIgZ3JvdXAgPSBlbi5nZXRHcm91cGluZ1NlcGFyYXRvcigpOworICAgICAgICBmci5zZXRHcm91cGluZ1NlcGFyYXRvcihncm91cCk7CisgICAgICAgIGlmKGZyLmdldEdyb3VwaW5nU2VwYXJhdG9yKCkgIT0gZW4uZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IEdyb3VwaW5nU2VwYXJhdG9yIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBkZWNpbWFsID0gZW4uZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICBmci5zZXREZWNpbWFsU2VwYXJhdG9yKGRlY2ltYWwpOworICAgICAgICBpZihmci5nZXREZWNpbWFsU2VwYXJhdG9yKCkgIT0gZW4uZ2V0RGVjaW1hbFNlcGFyYXRvcigpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgRGVjaW1hbFNlcGFyYXRvciBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXIgcGVyTWlsbCA9IGVuLmdldFBlck1pbGwoKTsKKyAgICAgICAgZnIuc2V0UGVyTWlsbChwZXJNaWxsKTsKKyAgICAgICAgaWYoZnIuZ2V0UGVyTWlsbCgpICE9IGVuLmdldFBlck1pbGwoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFBlck1pbGwgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyIHBlcmNlbnQgPSBlbi5nZXRQZXJjZW50KCk7CisgICAgICAgIGZyLnNldFBlcmNlbnQocGVyY2VudCk7CisgICAgICAgIGlmKGZyLmdldFBlcmNlbnQoKSAhPSBlbi5nZXRQZXJjZW50KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQZXJjZW50IGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBkaWdpdCA9IGVuLmdldERpZ2l0KCk7CisgICAgICAgIGZyLnNldERpZ2l0KGRpZ2l0KTsKKyAgICAgICAgaWYoZnIuZ2V0UGVyY2VudCgpICE9IGVuLmdldFBlcmNlbnQoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFBlcmNlbnQgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyIHBhdHRlcm5TZXBhcmF0b3IgPSBlbi5nZXRQYXR0ZXJuU2VwYXJhdG9yKCk7CisgICAgICAgIGZyLnNldFBhdHRlcm5TZXBhcmF0b3IocGF0dGVyblNlcGFyYXRvcik7CisgICAgICAgIGlmKGZyLmdldFBhdHRlcm5TZXBhcmF0b3IoKSAhPSBlbi5nZXRQYXR0ZXJuU2VwYXJhdG9yKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQYXR0ZXJuU2VwYXJhdG9yIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGluZmluaXR5ID0gZW4uZ2V0SW5maW5pdHkoKTsKKyAgICAgICAgZnIuc2V0SW5maW5pdHkoaW5maW5pdHkpOworICAgICAgICBTdHJpbmcgaW5maW5pdHkyID0gZnIuZ2V0SW5maW5pdHkoKTsKKyAgICAgICAgaWYoISBpbmZpbml0eS5lcXVhbHMoaW5maW5pdHkyKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IEluZmluaXR5IGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIG5hbiA9IGVuLmdldE5hTigpOworICAgICAgICBmci5zZXROYU4obmFuKTsKKyAgICAgICAgU3RyaW5nIG5hbjIgPSBmci5nZXROYU4oKTsKKyAgICAgICAgaWYoISBuYW4uZXF1YWxzKG5hbjIpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgTmFOIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBtaW51c1NpZ24gPSBlbi5nZXRNaW51c1NpZ24oKTsKKyAgICAgICAgZnIuc2V0TWludXNTaWduKG1pbnVzU2lnbik7CisgICAgICAgIGlmKGZyLmdldE1pbnVzU2lnbigpICE9IGVuLmdldE1pbnVzU2lnbigpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgTWludXNTaWduIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBwbHVzU2lnbiA9IGVuLmdldFBsdXNTaWduKCk7CisgICAgICAgIGZyLnNldFBsdXNTaWduKHBsdXNTaWduKTsKKyAgICAgICAgaWYoZnIuZ2V0UGx1c1NpZ24oKSAhPSBlbi5nZXRQbHVzU2lnbigpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgUGx1c1NpZ24gZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyIHBhZEVzY2FwZSA9IGVuLmdldFBhZEVzY2FwZSgpOworICAgICAgICBmci5zZXRQYWRFc2NhcGUocGFkRXNjYXBlKTsKKyAgICAgICAgaWYoZnIuZ2V0UGFkRXNjYXBlKCkgIT0gZW4uZ2V0UGFkRXNjYXBlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQYWRFc2NhcGUgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgZXhwb25lbnRpYWwgPSBlbi5nZXRFeHBvbmVudFNlcGFyYXRvcigpOworICAgICAgICBmci5zZXRFeHBvbmVudFNlcGFyYXRvcihleHBvbmVudGlhbCk7CisgICAgICAgIGlmKGZyLmdldEV4cG9uZW50U2VwYXJhdG9yKCkgIT0gZW4uZ2V0RXhwb25lbnRTZXBhcmF0b3IoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IEV4cG9uZW50aWFsIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy9EZWNpbWFsRm9ybWF0U3ltYm9scyBmb28gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorCisgICAgICAgIGVuID0gKERlY2ltYWxGb3JtYXRTeW1ib2xzKSBmci5jbG9uZSgpOworCisgICAgICAgIGlmKCEgZW4uZXF1YWxzKGZyKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBDbG9uZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGRmID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGRmMiA9IChEZWNpbWFsRm9ybWF0U3ltYm9scylkZi5jbG9uZSgpOworICAgICAgICBpZiAoIWRmLmVxdWFscyhkZjIpIHx8IGRmLmhhc2hDb2RlKCkgIT0gZGYyLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJkZWNpbWFsIGZvcm1hdCBzeW1ib2xzIGNsb25lLCBlcXVhbHMsIG9yIGhhc2hDb2RlIGZhaWxlZCIpOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzQy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzQy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdmNzgyYTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHNDLmphdmEKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBJbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzCisgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC90c2RjZm1zeS5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworLyoqCisgKiBUZXN0cyBmb3IgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAqKi8KK3B1YmxpYyBjbGFzcyBJbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzQyBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEludGxUZXN0RGVjaW1hbEZvcm1hdFN5bWJvbHNDKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIEFQSSBvZiBEZWNpbWFsRm9ybWF0U3ltYm9sczsgcHJpbWFyaWx5IGEgc2ltcGxlIGdldC9zZXQgc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTeW1ib2xzKCkgeyAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZnIgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkZSRU5DSCk7ICAgIAorICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBlbiA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRU5HTElTSCk7CisgICAgCisgICAgICAgIGlmIChlbi5lcXVhbHMoZnIpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IEVuZ2xpc2ggRGVjaW1hbEZvcm1hdFN5bWJvbHMgZXF1YWwgdG8gRnJlbmNoIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8ganVzdCBkbyBzb21lIFZFUlkgYmFzaWMgdGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgZ2V0L3NldCB3b3JrCisgICAgCisgICAgICAgIGNoYXIgemVybyA9IGVuLmdldFplcm9EaWdpdCgpOworICAgICAgICBmci5zZXRaZXJvRGlnaXQoemVybyk7CisgICAgICAgIGlmIChmci5nZXRaZXJvRGlnaXQoKSAhPSBlbi5nZXRaZXJvRGlnaXQoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFplcm9EaWdpdCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBjaGFyIGdyb3VwID0gZW4uZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKTsKKyAgICAgICAgZnIuc2V0R3JvdXBpbmdTZXBhcmF0b3IoZ3JvdXApOworICAgICAgICBpZiAoZnIuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSAhPSBlbi5nZXRHcm91cGluZ1NlcGFyYXRvcigpKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgR3JvdXBpbmdTZXBhcmF0b3IgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBkZWNpbWFsID0gZW4uZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICBmci5zZXREZWNpbWFsU2VwYXJhdG9yKGRlY2ltYWwpOworICAgICAgICBpZiAoZnIuZ2V0RGVjaW1hbFNlcGFyYXRvcigpICE9IGVuLmdldERlY2ltYWxTZXBhcmF0b3IoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IERlY2ltYWxTZXBhcmF0b3IgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBwZXJNaWxsID0gZW4uZ2V0UGVyTWlsbCgpOworICAgICAgICBmci5zZXRQZXJNaWxsKHBlck1pbGwpOworICAgICAgICBpZiAoZnIuZ2V0UGVyTWlsbCgpICE9IGVuLmdldFBlck1pbGwoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFBlck1pbGwgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBwZXJjZW50ID0gZW4uZ2V0UGVyY2VudCgpOworICAgICAgICBmci5zZXRQZXJjZW50KHBlcmNlbnQpOworICAgICAgICBpZiAoZnIuZ2V0UGVyY2VudCgpICE9IGVuLmdldFBlcmNlbnQoKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IFBlcmNlbnQgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBkaWdpdCA9IGVuLmdldERpZ2l0KCk7CisgICAgICAgIGZyLnNldERpZ2l0KGRpZ2l0KTsKKyAgICAgICAgaWYgKGZyLmdldFBlcmNlbnQoKSAhPSBlbi5nZXRQZXJjZW50KCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQZXJjZW50IGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGNoYXIgcGF0dGVyblNlcGFyYXRvciA9IGVuLmdldFBhdHRlcm5TZXBhcmF0b3IoKTsKKyAgICAgICAgZnIuc2V0UGF0dGVyblNlcGFyYXRvcihwYXR0ZXJuU2VwYXJhdG9yKTsKKyAgICAgICAgaWYgKGZyLmdldFBhdHRlcm5TZXBhcmF0b3IoKSAhPSBlbi5nZXRQYXR0ZXJuU2VwYXJhdG9yKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBQYXR0ZXJuU2VwYXJhdG9yIGZhaWxlZCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyBpbmZpbml0eSA9IGVuLmdldEluZmluaXR5KCk7CisgICAgICAgIGZyLnNldEluZmluaXR5KGluZmluaXR5KTsKKyAgICAgICAgU3RyaW5nIGluZmluaXR5MiA9IGZyLmdldEluZmluaXR5KCk7CisgICAgICAgIGlmICghaW5maW5pdHkuZXF1YWxzKGluZmluaXR5MikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBJbmZpbml0eSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmcgbmFuID0gZW4uZ2V0TmFOKCk7CisgICAgICAgIGZyLnNldE5hTihuYW4pOworICAgICAgICBTdHJpbmcgbmFuMiA9IGZyLmdldE5hTigpOworICAgICAgICBpZiAoIW5hbi5lcXVhbHMobmFuMikpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZ2V0L3NldCBOYU4gZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgY2hhciBtaW51c1NpZ24gPSBlbi5nZXRNaW51c1NpZ24oKTsKKyAgICAgICAgZnIuc2V0TWludXNTaWduKG1pbnVzU2lnbik7CisgICAgICAgIGlmIChmci5nZXRNaW51c1NpZ24oKSAhPSBlbi5nZXRNaW51c1NpZ24oKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXQvc2V0IE1pbnVzU2lnbiBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyAgICAgICAgY2hhciBleHBvbmVudGlhbCA9IGVuLmdldEV4cG9uZW50aWFsU3ltYm9sKCk7CisgICAgICAgIC8vICAgICAgICBmci5zZXRFeHBvbmVudGlhbFN5bWJvbChleHBvbmVudGlhbCk7CisgICAgICAgIC8vICAgICAgICBpZihmci5nZXRFeHBvbmVudGlhbFN5bWJvbCgpICE9IGVuLmdldEV4cG9uZW50aWFsU3ltYm9sKCkpIHsKKyAgICAgICAgLy8gICAgICAgICAgICBlcnJsbigiRVJST1I6IGdldC9zZXQgRXhwb25lbnRpYWwgZmFpbGVkIik7CisgICAgICAgIC8vICAgICAgICB9CisgICAgCisgICAgICAgIC8vRGVjaW1hbEZvcm1hdFN5bWJvbHMgZm9vID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAKKyAgICAgICAgZW4gPSAoRGVjaW1hbEZvcm1hdFN5bWJvbHMpIGZyLmNsb25lKCk7CisgICAgCisgICAgICAgIGlmICghZW4uZXF1YWxzKGZyKSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBDbG9uZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgCisgICAgICAgIHZlcmlmeSgzNC41LCAiMDAuMDAiLCBzeW0sICIzNC41MCIpOworICAgICAgICBzeW0uc2V0RGVjaW1hbFNlcGFyYXRvcignUycpOworICAgICAgICB2ZXJpZnkoMzQuNSwgIjAwLjAwIiwgc3ltLCAiMzRTNTAiKTsKKyAgICAgICAgc3ltLnNldFBlcmNlbnQoJ1AnKTsKKyAgICAgICAgdmVyaWZ5KDM0LjUsICIwMCAlIiwgc3ltLCAiMzQ1MCBQIik7CisgICAgICAgIHN5bS5zZXRDdXJyZW5jeVN5bWJvbCgiRCIpOworICAgICAgICB2ZXJpZnkoMzQuNSwgIlx1MDBhNCMjLiMjIiwgc3ltLCAiRDM0LjUiKTsKKyAgICAgICAgc3ltLnNldEdyb3VwaW5nU2VwYXJhdG9yKCd8Jyk7CisgICAgICAgIHZlcmlmeSgzNDU2LjUsICIwLDAwMC4jIyIsIHN5bSwgIjN8NDU2UzUiKTsKKyAgICB9CisgICAgCisgICAgLyoqIGhlbHBlciBmdW5jdGlvbnMqKi8KKyAgICBwdWJsaWMgdm9pZCB2ZXJpZnkoZG91YmxlIHZhbHVlLCBTdHJpbmcgcGF0dGVybiwgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltLCBTdHJpbmcgZXhwZWN0ZWQpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdHRlcm4sIHN5bSk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigtMSk7CisgICAgICAgIGJ1ZmZlciA9IGRmLmZvcm1hdCh2YWx1ZSwgYnVmZmVyLCBwb3MpOworICAgICAgICBpZighYnVmZmVyLnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZvcm1hdCBmYWlsZWQgYWZ0ZXIgc2V0U3ltYm9scygpXG4gRXhwZWN0ZWQiICsgCisgICAgICAgICAgICAgICAgZXhwZWN0ZWQgKyAiLCBHb3QgIiArIGJ1ZmZlcik7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMyNzg0NTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0TnVtYmVyRm9ybWF0LmphdmEKQEAgLTAsMCArMSwyODkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiBmb3JtYXQgOiBJbnRsVGVzdE51bWJlckZvcm1hdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvdHNubWZtdC5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCisvKioKKyAqIFRoaXMgdGVzdCBkb2VzIHJvdW5kLXRyaXAgdGVzdGluZyAoZm9ybWF0IC0+IHBhcnNlIC0+IGZvcm1hdCAtPiBwYXJzZSAtPiBldGMuKSBvZgorICogTnVtYmVyRm9ybWF0LgorICovCitwdWJsaWMgY2xhc3MgSW50bFRlc3ROdW1iZXJGb3JtYXQgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgCisgICAgcHVibGljIE51bWJlckZvcm1hdCBmTnVtYmVyRm9ybWF0OworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBJbnRsVGVzdE51bWJlckZvcm1hdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgdXNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgX3Rlc3RMb2NhbGUoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IGxvY2FsZSArICIgKCIgKyBsb2NhbGUuZ2V0RGlzcGxheU5hbWUoKSArICIpIjsKKyAgICAgICAgICAgIAorICAgICAgICBsb2dsbigiTnVtYmVyIHRlc3QgIiArIGxvY2FsZU5hbWUpOworICAgICAgICBmTnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIF90ZXN0Rm9ybWF0KCk7CisgICAgCisgICAgICAgIGxvZ2xuKCJDdXJyZW5jeSB0ZXN0ICIgKyBsb2NhbGVOYW1lKTsKKyAgICAgICAgZk51bWJlckZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIF90ZXN0Rm9ybWF0KCk7CisgICAgCisgICAgICAgIGxvZ2xuKCJQZXJjZW50IHRlc3QgIiArIGxvY2FsZU5hbWUpOworICAgICAgICBmTnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICBfdGVzdEZvcm1hdCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBjYWxsIF90ZXN0Rm9ybWF0IGZvciBjdXJyZW5jeSwgcGVyY2VudCBhbmQgcGxhaW4gbnVtYmVyIGluc3RhbmNlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RMb2NhbGUoKSB7CisgICAgICAgIExvY2FsZSBsb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IGxvY2FsZSArICIgKCIgKyBsb2NhbGUuZ2V0RGlzcGxheU5hbWUoKSArICIpIjsKKyAgICAgICAgICAgIAorICAgICAgICBsb2dsbigiTnVtYmVyIHRlc3QgIiArIGxvY2FsZU5hbWUpOworICAgICAgICBmTnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIF90ZXN0Rm9ybWF0KCk7CisgICAgCisgICAgICAgIGxvZ2xuKCJDdXJyZW5jeSB0ZXN0ICIgKyBsb2NhbGVOYW1lKTsKKyAgICAgICAgZk51bWJlckZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIF90ZXN0Rm9ybWF0KCk7CisgICAgCisgICAgICAgIGxvZ2xuKCJQZXJjZW50IHRlc3QgIiArIGxvY2FsZU5hbWUpOworICAgICAgICBmTnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICBfdGVzdEZvcm1hdCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBjYWxsIHRyeUl0IHdpdGggbWFueSB2YXJpYXRpb25zLCBjYWxsZWQgYnkgdGVzdExvY2FsZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIF90ZXN0Rm9ybWF0KCkgeworICAgICAgICAKKyAgICAgICAgaWYgKGZOdW1iZXJGb3JtYXQgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiKioqKiBGQUlMOiBOdWxsIGZvcm1hdCByZXR1cm5lZCBieSBjcmVhdGVYeHhJbnN0YW5jZS4iKTsKKyAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgRGVjaW1hbEZvcm1hdCBzID0gKERlY2ltYWxGb3JtYXQpZk51bWJlckZvcm1hdDsKKyAgICAgICAgbG9nbG4oInBhdHRlcm4gOiIgKyBzLnRvUGF0dGVybigpKTsKKyAgICAKKyAgICAgICAgdHJ5SXQoLTIuMDIxNDczMDQ4NDAxMzJlLTY4KTsKKyAgICAgICAgdHJ5SXQoMy44ODA1Nzg1OTU4ODgxN2UtNjgpOyAKKyAgICAgICAgdHJ5SXQoLTIuNjQ2NTExMTA0ODU5NDVlKzY1KTsKKyAgICAgICAgdHJ5SXQoOS4yOTUyNjgxOTQ4ODMzOGUrNjQpOworICAgIAorICAgICAgICB0cnlJdCgtMi4wMjE0NzMwNDg0MDEzMmUtMTAwKTsKKyAgICAgICAgdHJ5SXQoMy44ODA1Nzg1OTU4ODgxN2UtMDk2KTsgCisgICAgICAgIHRyeUl0KC0yLjY0NjUxMTEwNDg1OTQ1ZSszMDYpOworICAgICAgICB0cnlJdCg5LjI5NTI2ODE5NDg4MzM4ZSsyNTApOyAKKyAgICAKKyAgICAgICAgdHJ5SXQoLTkuMTgyMjgwNTQ0OTY0MDJlKzY0KTsKKyAgICAgICAgdHJ5SXQoLTkuNjk0MTMwMzQ0NTQxOTFlKzY0KTsKKyAgICAKKyAgICAgICAgdHJ5SXQoLTkuMTgyMjgwNTQ0OTY0MDJlKzI1NSk7CisgICAgICAgIHRyeUl0KC05LjY5NDEzMDM0NDU0MTkxZSsyNzMpOworICAgIAorICAgIAorICAgICAgICB0cnlJdCgxLjIzNGUtMjAwKTsKKyAgICAgICAgdHJ5SXQoLTIuM2UtMTY4KTsKKyAgICAKKyAgICAgICAgdHJ5SXQoRG91YmxlLk5hTik7CisgICAgICAgIHRyeUl0KERvdWJsZS5QT1NJVElWRV9JTkZJTklUWSk7CisgICAgICAgIHRyeUl0KERvdWJsZS5ORUdBVElWRV9JTkZJTklUWSk7CisgICAgCisgICAgICAgIHRyeUl0KDI1MTg4NzUzMSk7CisgICAgICAgIHRyeUl0KDVlLTIwIC8gOSk7CisgICAgICAgIHRyeUl0KDVlMjAgLyA5KTsKKyAgICAgICAgdHJ5SXQoMS4yMzRlLTUwKTsKKyAgICAgICAgdHJ5SXQoOS45OTk5OTk5OTk5OTk5Nik7CisgICAgICAgIHRyeUl0KDkuOTk5OTk5OTk5OTk5OTk2KTsKKyAgICAKKyAgICAgICAgdHJ5SXQoSW50ZWdlci5NSU5fVkFMVUUpOworICAgICAgICB0cnlJdChJbnRlZ2VyLk1BWF9WQUxVRSk7CisgICAgICAgIHRyeUl0KChkb3VibGUpSW50ZWdlci5NSU5fVkFMVUUpOworICAgICAgICB0cnlJdCgoZG91YmxlKUludGVnZXIuTUFYX1ZBTFVFKTsKKyAgICAgICAgdHJ5SXQoKGRvdWJsZSlJbnRlZ2VyLk1JTl9WQUxVRSAtIDEuMCk7CisgICAgICAgIHRyeUl0KChkb3VibGUpSW50ZWdlci5NQVhfVkFMVUUgKyAxLjApOworICAgIAorICAgICAgICB0cnlJdCg1LjAgLyA5LjAgKiAxZS0yMCk7CisgICAgICAgIHRyeUl0KDQuMCAvIDkuMCAqIDFlLTIwKTsKKyAgICAgICAgdHJ5SXQoNS4wIC8gOS4wICogMWUrMjApOworICAgICAgICB0cnlJdCg0LjAgLyA5LjAgKiAxZSsyMCk7CisgICAgCisgICAgICAgIHRyeUl0KDIxNDc0ODM2NDcuKTsKKyAgICAgICAgdHJ5SXQoMCk7CisgICAgICAgIHRyeUl0KDAuMCk7CisgICAgICAgIHRyeUl0KDEpOworICAgICAgICB0cnlJdCgxMCk7CisgICAgICAgIHRyeUl0KDEwMCk7CisgICAgICAgIHRyeUl0KC0xKTsKKyAgICAgICAgdHJ5SXQoLTEwKTsKKyAgICAgICAgdHJ5SXQoLTEwMCk7CisgICAgICAgIHRyeUl0KC0xOTEzODYwMzUyKTsKKyAgICAKKyAgICAgICAgUmFuZG9tIHJhbmRvbSA9IGNyZWF0ZVJhbmRvbSgpOyAvLyB1c2UgdGVzdCBmcmFtZXdvcmsncyByYW5kb20gc2VlZAorICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IDEwOyBqKyspIHsKKyAgICAgICAgICAgIGRvdWJsZSBkID0gcmFuZG9tLm5leHREb3VibGUoKSoyZTEwIC0gMWUxMDsKKyAgICAgICAgICAgIHRyeUl0KGQpOworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUGVyZm9ybSB0ZXN0cyB1c2luZyBhTnVtYmVyIGFuZCBmTnVtYmVyRm9ybWF0LCBjYWxsZWQgaW4gbWFueSB2YXJpYXRpb25zCisgICAgICovCisgICAgcHVibGljIHZvaWQgdHJ5SXQoZG91YmxlIGFOdW1iZXIpIHsgICAgCisgICAgICAgIGZpbmFsIGludCBERVBUSCA9IDEwOworICAgICAgICBkb3VibGVbXSBudW1iZXIgPSBuZXcgZG91YmxlW0RFUFRIXTsKKyAgICAgICAgU3RyaW5nW10gc3RyaW5nID0gbmV3IFN0cmluZ1tERVBUSF07CisgICAgICAgIGludCBudW1iZXJNYXRjaCA9IDA7CisgICAgICAgIGludCBzdHJpbmdNYXRjaCA9IDA7CisgICAgICAgIGJvb2xlYW4gZHVtcCA9IGZhbHNlOworICAgICAgICBpbnQgaTsKKyAgICAKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IERFUFRIOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAgICAgICBudW1iZXJbaV0gPSBhTnVtYmVyOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBudW1iZXJbaSAtIDFdID0gZk51bWJlckZvcm1hdC5wYXJzZShzdHJpbmdbaSAtIDFdKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIH0gY2F0Y2goamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uIHBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIqKioqIEZBSUw6IFBhcnNlIG9mICIgKyBzdHJpbmdbaS0xXSArICIgZmFpbGVkLiIpOworICAgICAgICAgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgc3RyaW5nW2ldID0gZk51bWJlckZvcm1hdC5mb3JtYXQobnVtYmVyW2ldKTsKKyAgICAgICAgICAgIGlmIChpID4gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAobnVtYmVyTWF0Y2ggPT0gMCAmJiBudW1iZXJbaV0gPT0gbnVtYmVyW2ktMV0pCisgICAgICAgICAgICAgICAgICAgIG51bWJlck1hdGNoID0gaTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChudW1iZXJNYXRjaCA+IDAgJiYgbnVtYmVyW2ldICE9IG51bWJlcltpLTFdKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIioqKiogRkFJTDogTnVtZXJpYyBtaXNtYXRjaCBhZnRlciBtYXRjaC4iKTsKKyAgICAgICAgICAgICAgICAgICAgZHVtcCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc3RyaW5nTWF0Y2ggPT0gMCAmJiBzdHJpbmdbaV0gPT0gc3RyaW5nW2ktMV0pCisgICAgICAgICAgICAgICAgICAgIHN0cmluZ01hdGNoID0gaTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChzdHJpbmdNYXRjaCA+IDAgJiYgc3RyaW5nW2ldICE9IHN0cmluZ1tpLTFdKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIioqKiogRkFJTDogU3RyaW5nIG1pc21hdGNoIGFmdGVyIG1hdGNoLiIpOworICAgICAgICAgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG51bWJlck1hdGNoID4gMCAmJiBzdHJpbmdNYXRjaCA+IDApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgCisgICAgICAgICAgICBpZiAoaSA9PSBERVBUSCkKKyAgICAgICAgICAgIC0taTsKKyAgICAKKyAgICAgICAgaWYgKHN0cmluZ01hdGNoID4gMiB8fCBudW1iZXJNYXRjaCA+IDIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqIEZBSUw6IE5vIHN0cmluZyBhbmQvb3IgbnVtYmVyIG1hdGNoIHdpdGhpbiAyIGl0ZXJhdGlvbnMuIik7CisgICAgICAgICAgICBkdW1wID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoZHVtcCkKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBrPD1pOyArK2spCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbG9nbG4oayArICI6ICIgKyBudW1iZXJba10gKyAiIEY+ICIgKworICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ1trXSArICIgUD4gIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiAgcGVyZm9ybSB0ZXN0cyB1c2luZyBhTnVtYmVyIGFuZCBmTnVtYmVyRm9ybWF0LCBjYWxsZWQgaW4gbWFueSB2YXJpYXRpb25zCisgICAgICoqLworICAgIHB1YmxpYyB2b2lkIHRyeUl0KGludCBhTnVtYmVyKSB7CisgICAgICAgIGxvbmcgbnVtYmVyOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHN0cmluZ051bSA9IGZOdW1iZXJGb3JtYXQuZm9ybWF0KGFOdW1iZXIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbnVtYmVyID0gZk51bWJlckZvcm1hdC5wYXJzZShzdHJpbmdOdW0pLmxvbmdWYWx1ZSgpOworICAgICAgICB9IGNhdGNoIChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gcGUpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqIEZBSUw6IFBhcnNlIG9mICIgKyBzdHJpbmdOdW0gKyAiIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAobnVtYmVyICE9IGFOdW1iZXIpIHsKKyAgICAgICAgICAgIGVycmxuKCIqKioqIEZBSUw6IFBhcnNlIG9mICIgKyBzdHJpbmdOdW0gKyAiIGZhaWxlZC4gR290OiIgKyBudW1iZXIKKyAgICAgICAgICAgICAgICArICIgRXhwZWN0ZWQ6IiArIGFOdW1iZXIpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiAgdGVzdCBOdW1iZXJGb3JtYXQ6OmdldEF2YWlsYWJsZUxvY2FsZXMKKyAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIGZpbmFsIExvY2FsZVtdIGxvY2FsZXMgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBpbnQgY291bnQgPSBsb2NhbGVzLmxlbmd0aDsKKyAgICAgICAgbG9nbG4oY291bnQgKyAiIGF2YWlsYWJsZSBsb2NhbGVzIik7CisgICAgICAgIGlmIChjb3VudCAhPSAwKQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgYWxsID0gIiI7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaTwgY291bnQ7ICsraSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoaSE9MCkKKyAgICAgICAgICAgICAgICAgICAgYWxsICs9ICIsICI7CisgICAgICAgICAgICAgICAgYWxsICs9IGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKGFsbCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZXJybG4oIioqKiogRkFJTDogWmVybyBhdmFpbGFibGUgbG9jYWxlcyBvciBudWxsIGFycmF5IHBvaW50ZXIiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogIGNhbGwgdGVzdExvY2FsZSBmb3IgYWxsIGxvY2FsZXMKKyAgICAgKiovICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RNb25zdGVyKCkgeworICAgICAgICBmaW5hbCBTdHJpbmcgU0VQID0gIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIjsKKyAgICAgICAgaW50IGNvdW50OworICAgICAgICBmaW5hbCBMb2NhbGVbXSBhbGxMb2NhbGVzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IGFsbExvY2FsZXM7CisgICAgICAgIGNvdW50ID0gbG9jYWxlcy5sZW5ndGg7CisgICAgICAgIGlmIChjb3VudCAhPSAwKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZ2V0SW5jbHVzaW9uKCkgPCAxMCAmJiBjb3VudCA+IDYpIHsKKyAgICAgICAgICAgICAgICBjb3VudCA9IDY7CisgICAgICAgICAgICAgICAgbG9jYWxlcyA9IG5ldyBMb2NhbGVbNl07CisgICAgICAgICAgICAgICAgbG9jYWxlc1swXSA9IGFsbExvY2FsZXNbMF07CisgICAgICAgICAgICAgICAgbG9jYWxlc1sxXSA9IGFsbExvY2FsZXNbMV07CisgICAgICAgICAgICAgICAgbG9jYWxlc1syXSA9IGFsbExvY2FsZXNbMl07CisgICAgICAgICAgICAgICAgLy8gSW4gYSBxdWljayB0ZXN0LCBtYWtlIHN1cmUgd2UgdGVzdCBsb2NhbGVzIHRoYXQgdXNlCisgICAgICAgICAgICAgICAgLy8gY3VycmVuY3kgcHJlZml4LCBjdXJyZW5jeSBzdWZmaXgsIGFuZCBjaG9pY2UgY3VycmVuY3kKKyAgICAgICAgICAgICAgICAvLyBsb2dpYy4gIE90aGVyd2lzZSBidWdzIGluIHRoZXNlIGFyZWFzIGNhbiBzbGlwIHRocm91Z2guCisgICAgICAgICAgICAgICAgbG9jYWxlc1szXSA9IG5ldyBMb2NhbGUoImFyIiwgIkFFIiwgIiIpOworICAgICAgICAgICAgICAgIGxvY2FsZXNbNF0gPSBuZXcgTG9jYWxlKCJjcyIsICJDWiIsICIiKTsKKyAgICAgICAgICAgICAgICBsb2NhbGVzWzVdID0gbmV3IExvY2FsZSgiZW4iLCAiSU4iLCAiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgICAgICAgICBsb2dsbihTRVApOworICAgICAgICAgICAgICAgIF90ZXN0TG9jYWxlKGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGxvZ2xuKFNFUCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdEFQSS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdEFQSS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgxMjllYmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L0ludGxUZXN0TnVtYmVyRm9ybWF0QVBJLmphdmEKQEAgLTAsMCArMSwyMjUgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0TnVtYmVyRm9ybWF0QVBJCisgKiBTb3VyY2UgRmlsZTogamF2YS90ZXh0L2Zvcm1hdC9JbnRsVGVzdE51bWJlckZvcm1hdEFQSS5qYXZhCisgKiovCisKKy8qCisgICAgQHRlc3QgMS40IDk4LzAzLzA2CisgICAgQHN1bW1hcnkgdGVzdCBJbnRlcm5hdGlvbmFsIE51bWJlciBGb3JtYXQgQVBJCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS5tYXRoLkJpZ0RlY2ltYWw7CitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworCitwdWJsaWMgY2xhc3MgSW50bFRlc3ROdW1iZXJGb3JtYXRBUEkgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3ROdW1iZXJGb3JtYXRBUEkoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLy8gVGhpcyB0ZXN0IGNoZWNrcyB2YXJpb3VzIGdlbmVyaWMgQVBJIG1ldGhvZHMgaW4gRGVjaW1hbEZvcm1hdCB0byBhY2hpZXZlIDEwMCUgQVBJIGNvdmVyYWdlLgorICAgIHB1YmxpYyB2b2lkIFRlc3RBUEkoKQorICAgIHsKKyAgICAgICAgbG9nbG4oIk51bWJlckZvcm1hdCBBUEkgdGVzdC0tLSIpOyBsb2dsbigiIik7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KExvY2FsZS5FTkdMSVNIKTsKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgY29uc3RydWN0b3JzCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgTnVtYmVyRm9ybWF0IGNvbnN0cnVjdG9ycyIpOworCisgICAgICAgIE51bWJlckZvcm1hdCBkZWYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKworICAgICAgICBOdW1iZXJGb3JtYXQgZnIgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLkZSRU5DSCk7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IGN1ciA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKCk7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IGN1cl9mciA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5GUkVOQ0gpOworCisgICAgICAgIE51bWJlckZvcm1hdCBwZXIgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCk7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IHBlcl9mciA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlLkZSRU5DSCk7CisgICAgICAgIAorICAgICAgICBOdW1iZXJGb3JtYXQgaW50ZWdlciA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoKTsKKyAgICAgICAgCisgICAgICAgIE51bWJlckZvcm1hdCBpbnRfZnIgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKExvY2FsZS5GUkVOQ0gpOworICAgICAgICAKKyAgICAgICAgLy9GaXggIlRoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkIiBjb21waWxhdGlvbiB3YXJuaW5ncworICAgICAgICBsb2dsbigiQ3VycmVuY3kgOiAiICsgY3VyLmZvcm1hdCgxMjM0LjUpKTsKKyAgICAgICAgbG9nbG4oIlBlcmNlbnQgOiAiICsgcGVyLmZvcm1hdCgxMjM0LjUpKTsKKyAgICAgICAgbG9nbG4oIkludGVnZXIgOiAiICsgaW50ZWdlci5mb3JtYXQoMTIzNC41KSk7CisgICAgICAgIGxvZ2xuKCJJbnRfZnIgOiAiICsgaW50X2ZyLmZvcm1hdCgxMjM0LjUpKTsKKyAgICAgICAgCisgICAgICAgIC8vID09PT09PT0gVGVzdCBlcXVhbGl0eQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGVxdWFsaXR5IG9wZXJhdG9yIik7CisKKyAgICAgICAgaWYoIHBlcl9mci5lcXVhbHMoY3VyX2ZyKSApIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogPT0gZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyA9PT09PT09IFRlc3QgdmFyaW91cyBmb3JtYXQoKSBtZXRob2RzCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdmFyaW91cyBmb3JtYXQoKSBtZXRob2RzIik7CisKKy8vICAgICAgICBmaW5hbCBkb3VibGUgZCA9IC0xMDQ1Ni4wMDM3OyAvLyB0aGlzIGFwcGVhcnMgYXMgLTEwNDU2LjAwMzcwMDAwMDAwMSBvbiBOVAorLy8gICAgICAgIGZpbmFsIGRvdWJsZSBkID0gLTEuMDQ1NjAwMzdlLTQ7IC8vIHRoaXMgYXBwZWFycyBhcyAtMS4wNDU2MDAzNzAwMDAwMDAyRS00IG9uIE5UCisgICAgICAgIGZpbmFsIGRvdWJsZSBkID0gLTEwNDU2LjAwMzcwMDAwMDAwMDAwOyAvLyB0aGlzIHdvcmtzIQorICAgICAgICBmaW5hbCBsb25nIGwgPSAxMDAwMDAwMDA7CisKKyAgICAgICAgU3RyaW5nIHJlczEgPSBuZXcgU3RyaW5nKCk7CisgICAgICAgIFN0cmluZyByZXMyID0gbmV3IFN0cmluZygpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzMyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXM1ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzNiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MxID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMiA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczMgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3M0ID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisKKyAgICAgICAgcmVzMSA9IGN1cl9mci5mb3JtYXQoZCk7CisgICAgICAgIGxvZ2xuKCAiIiArIGQgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMSk7CisKKyAgICAgICAgcmVzMiA9IGN1cl9mci5mb3JtYXQobCk7CisgICAgICAgIGxvZ2xuKCIiICsgbCArICIgZm9ybWF0dGVkIHRvICIgKyByZXMyKTsKKworICAgICAgICByZXMzID0gY3VyX2ZyLmZvcm1hdChkLCByZXMzLCBwb3MxKTsKKyAgICAgICAgbG9nbG4oICIiICsgZCArICIgZm9ybWF0dGVkIHRvICIgKyByZXMzKTsKKworICAgICAgICByZXM0ID0gY3VyX2ZyLmZvcm1hdChsLCByZXM0LCBwb3MyKTsKKyAgICAgICAgbG9nbG4oIiIgKyBsICsgIiBmb3JtYXR0ZWQgdG8gIiArIHJlczQpOworCisgICAgICAgIHJlczUgPSBjdXJfZnIuZm9ybWF0KGQsIHJlczUsIHBvczMpOworICAgICAgICBsb2dsbigiIiArIGQgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzNSk7CisKKyAgICAgICAgcmVzNiA9IGN1cl9mci5mb3JtYXQobCwgcmVzNiwgcG9zNCk7CisgICAgICAgIGxvZ2xuKCIiICsgbCArICIgZm9ybWF0dGVkIHRvICIgKyByZXM2KTsKKworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBwYXJzZSgpCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgcGFyc2UoKSIpOworCisvLyAgICAgICAgU3RyaW5nIHRleHQgPSBuZXcgU3RyaW5nKCItMTAsNDU2LjAwMzciKTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSBuZXcgU3RyaW5nKCItMTA0NTYsMDAzNyIpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvczAxID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIGRvdWJsZSBkMSA9ICgoTnVtYmVyKWZyLnBhcnNlT2JqZWN0KHRleHQsIHBvcykpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgIGlmKGQxICE9IGQpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogUm91bmR0cmlwIGZhaWxlZCAodmlhIHBhcnNlKCkpIGZvciAiICsgdGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4odGV4dCArICIgcGFyc2VkIGludG8gIiArIGQxKTsKKworICAgICAgICBkb3VibGUgZDIgPSBmci5wYXJzZSh0ZXh0LCBwb3MwMSkuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgaWYoZDIgIT0gZCkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBSb3VuZHRyaXAgZmFpbGVkICh2aWEgcGFyc2UoKSkgZm9yICIgKyB0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbih0ZXh0ICsgIiBwYXJzZWQgaW50byAiICsgZDIpOworCisgICAgICAgIGRvdWJsZSBkMyA9IDA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkMyA9IGZyLnBhcnNlKHRleHQpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcGFyc2UoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBpZihkMyAhPSBkKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IFJvdW5kdHJpcCBmYWlsZWQgKHZpYSBwYXJzZSgpKSBmb3IgIiArIHRleHQpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKHRleHQgKyAiIHBhcnNlZCBpbnRvICIgKyBkMyk7CisKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgZ2V0dGVycyBhbmQgc2V0dGVycworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGdldHRlcnMgYW5kIHNldHRlcnMiKTsKKworICAgICAgICBmaW5hbCBMb2NhbGVbXSBsb2NhbGVzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgbG9uZyBjb3VudCA9IGxvY2FsZXMubGVuZ3RoOworICAgICAgICBsb2dsbigiR290ICIgKyBjb3VudCArICIgbG9jYWxlcyIgKTsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICAgICAgbmFtZSA9IGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgICAgIGxvZ2xuKG5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgZnIuc2V0UGFyc2VJbnRlZ2VyT25seSggZGVmLmlzUGFyc2VJbnRlZ2VyT25seSgpICk7CisgICAgICAgIGlmKGZyLmlzUGFyc2VJbnRlZ2VyT25seSgpICE9IGRlZi5pc1BhcnNlSW50ZWdlck9ubHkoKSApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFBhcnNlSW50ZWdlck9ubHkoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZyLnNldEdyb3VwaW5nVXNlZCggZGVmLmlzR3JvdXBpbmdVc2VkKCkgKTsKKyAgICAgICAgaWYoZnIuaXNHcm91cGluZ1VzZWQoKSAhPSBkZWYuaXNHcm91cGluZ1VzZWQoKSApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldEdyb3VwaW5nVXNlZCgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgZnIuc2V0TWF4aW11bUludGVnZXJEaWdpdHMoIGRlZi5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpICk7CisgICAgICAgIGlmKGZyLmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgIT0gZGVmLmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgZnIuc2V0TWluaW11bUludGVnZXJEaWdpdHMoIGRlZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpICk7CisgICAgICAgIGlmKGZyLmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgIT0gZGVmLmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgZnIuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCBkZWYuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgKTsKKyAgICAgICAgaWYoZnIuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgIT0gZGVmLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgZmFpbGVkIik7CisgICAgICAgIH0KKworICAgICAgICBmci5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoIGRlZi5nZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSApOworICAgICAgICBpZihmci5nZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSAhPSBkZWYuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBzZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vID09PT09PT0gVGVzdCBnZXRTdGF0aWNDbGFzc0lEKCkKKworLy8gICAgICAgIGxvZ2xuKCJUZXN0aW5nIGluc3RhbmNlb2YoKSIpOworCisvLyAgICAgICAgdHJ5IHsKKy8vICAgICAgICAgICAgTnVtYmVyRm9ybWF0IHRlc3QgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworCisvLyAgICAgICAgICAgIGlmICghICh0ZXN0IGluc3RhbmNlb2YgRGVjaW1hbEZvcm1hdCkpIHsKKy8vICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogaW5zdGFuY2VvZiBmYWlsZWQiKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0KKy8vICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKy8vICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBDb3VsZG4ndCBjcmVhdGUgYSBEZWNpbWFsRm9ybWF0Iik7CisvLyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBKaXR0ZXJidWcgNDQ1MSwgZm9yIGNvdmVyYWdlCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCl7CisgICAgICAgIGNsYXNzIFN0dWJOdW1iZXJGb3JtYXQgZXh0ZW5kcyBOdW1iZXJGb3JtYXR7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKXsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcCA9IE51bWJlckZvcm1hdC5nZXRQYXR0ZXJuKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLnRvTG9jYWxlKCksMCk7CisgICAgICAgICAgICAgICAgaWYgKCFwLmVxdWFscyhOdW1iZXJGb3JtYXQuZ2V0UGF0dGVybihVTG9jYWxlLmdldERlZmF1bHQoKSwwKSkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiTnVtYmVyRm9ybWF0LmdldFBhdHRlcm4oTG9jYWxlLCBpbnQpIHNob3VsZCBkZWxlZ2F0ZSB0byAoVUxvY2FsZSwpIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoZG91YmxlIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7cmV0dXJuIG51bGw7fQorICAgICAgICAgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQobG9uZyBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykge3JldHVybiBudWxsO30KKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KEJpZ0ludGVnZXIgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHtyZXR1cm4gbnVsbDt9CisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChCaWdEZWNpbWFsIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7cmV0dXJuIG51bGw7fQorICAgICAgICAgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7cmV0dXJuIG51bGw7fQorICAgICAgICAgICAgcHVibGljIE51bWJlciBwYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uKSB7cmV0dXJuIG51bGw7fQorICAgICAgICB9CisgICAgICAgIG5ldyBTdHViTnVtYmVyRm9ybWF0KCkucnVuKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9JbnRsVGVzdFNpbXBsZURhdGVGb3JtYXRBUEkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3RTaW1wbGVEYXRlRm9ybWF0QVBJLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzI3NTkwZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvSW50bFRlc3RTaW1wbGVEYXRlRm9ybWF0QVBJLmphdmEKQEAgLTAsMCArMSwxODMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogKEMpIENvcHlyaWdodCBUYWxpZ2VudCwgSW5jLiAxOTk2LCAxOTk3IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZAorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5Ni0yMDA1IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZAorICoKKyAqICAgVGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhpcyBzb3VyY2UgY29kZSBhbmQgZG9jdW1lbnRhdGlvbiBpcyBjb3B5cmlnaHRlZCBhbmQKKyAqIG93bmVkIGJ5IFRhbGlnZW50LCBJbmMuLCBhIHdob2xseS1vd25lZCBzdWJzaWRpYXJ5IG9mIElCTS4gVGhlc2UgbWF0ZXJpYWxzIGFyZQorICogcHJvdmlkZWQgdW5kZXIgdGVybXMgb2YgYSBMaWNlbnNlIEFncmVlbWVudCBiZXR3ZWVuIFRhbGlnZW50IGFuZCBTdW4uIFRoaXMKKyAqIHRlY2hub2xvZ3kgaXMgcHJvdGVjdGVkIGJ5IG11bHRpcGxlIFVTIGFuZCBJbnRlcm5hdGlvbmFsIHBhdGVudHMuIFRoaXMgbm90aWNlIGFuZAorICogYXR0cmlidXRpb24gdG8gVGFsaWdlbnQgbWF5IG5vdCBiZSByZW1vdmVkLgorICogICBUYWxpZ2VudCBpcyBhIHJlZ2lzdGVyZWQgdHJhZGVtYXJrIG9mIFRhbGlnZW50LCBJbmMuCisgKiovCisKKy8qKiAKKyAqIFBvcnQgRnJvbTogICBKREsgMS40YjEgOiBqYXZhLnRleHQuRm9ybWF0LkludGxUZXN0U2ltcGxlRGF0ZUZvcm1hdEFQSQorICogU291cmNlIEZpbGU6IGphdmEvdGV4dC9mb3JtYXQvSW50bFRlc3RTaW1wbGVEYXRlRm9ybWF0QVBJLmphdmEKKyAqKi8KKyAKKy8qCisgICAgQHRlc3QgMS40IDk4LzAzLzA2CisgICAgQHN1bW1hcnkgdGVzdCBJbnRlcm5hdGlvbmFsIFNpbXBsZSBEYXRlIEZvcm1hdCBBUEkKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LkZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKK3B1YmxpYyBjbGFzcyBJbnRsVGVzdFNpbXBsZURhdGVGb3JtYXRBUEkgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSW50bFRlc3RTaW1wbGVEYXRlRm9ybWF0QVBJKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8vIFRoaXMgdGVzdCBjaGVja3MgdmFyaW91cyBnZW5lcmljIEFQSSBtZXRob2RzIGluIERlY2ltYWxGb3JtYXQgdG8gYWNoaWV2ZSAxMDAlIEFQSSBjb3ZlcmFnZS4KKyAgICBwdWJsaWMgdm9pZCBUZXN0QVBJKCkKKyAgICB7CisgICAgICAgIGxvZ2xuKCJTaW1wbGVEYXRlRm9ybWF0IEFQSSB0ZXN0LS0tIik7IGxvZ2xuKCIiKTsKKworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuRU5HTElTSCk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGNvbnN0cnVjdG9ycworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIFNpbXBsZURhdGVGb3JtYXQgY29uc3RydWN0b3JzIik7CisKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkZWYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgpOworCisgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuID0gbmV3IFN0cmluZygieXl5eS5NTS5kZCBHICdhdCcgaGg6bW06c3MgeiIpOworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHBhdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4pOworCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgcGF0X2ZyID0gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybiwgTG9jYWxlLkZSRU5DSCk7CisKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhMb2NhbGUuRlJFTkNIKTsKKworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGN1c3QxID0gbmV3IFNpbXBsZURhdGVGb3JtYXQocGF0dGVybiwgc3ltYm9scyk7CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IGNsb25lKCkgYW5kIGVxdWFsaXR5CisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgY2xvbmUoKSwgYXNzaWdubWVudCBhbmQgZXF1YWxpdHkgb3BlcmF0b3JzIik7CisKKyAgICAgICAgRm9ybWF0IGNsb25lID0gKEZvcm1hdCkgZGVmLmNsb25lKCk7CisgICAgICAgIGlmKCAhIGNsb25lLmVxdWFscyhkZWYpICkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBGb3JtYXQgY2xvbmUgb3IgZXF1YWxzIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gPT09PT09PSBUZXN0IHZhcmlvdXMgZm9ybWF0KCkgbWV0aG9kcworCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHZhcmlvdXMgZm9ybWF0KCkgbWV0aG9kcyIpOworCisgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKChsb25nKTgzNzAzOTkyODA0Ni4wKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzMSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlczIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zMSA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvczIgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKworICAgICAgICByZXMxID0gZGVmLmZvcm1hdChkLCByZXMxLCBwb3MxKTsKKyAgICAgICAgbG9nbG4oICIiICsgZC5nZXRUaW1lKCkgKyAiIGZvcm1hdHRlZCB0byAiICsgcmVzMSk7CisKKyAgICAgICAgcmVzMiA9IGN1c3QxLmZvcm1hdChkLCByZXMyLCBwb3MyKTsKKyAgICAgICAgbG9nbG4oIiIgKyBkLmdldFRpbWUoKSArICIgZm9ybWF0dGVkIHRvICIgKyByZXMyKTsKKworICAgICAgICAvLyA9PT09PT09IFRlc3QgcGFyc2UoKQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHBhcnNlKCkiKTsKKworICAgICAgICBTdHJpbmcgdGV4dCA9IG5ldyBTdHJpbmcoIjAyLzAzLzc2IDI6NTAgQU0sIENTVCIpOworICAgICAgICBEYXRlIHJlc3VsdDEgPSBuZXcgRGF0ZSgpOworICAgICAgICBEYXRlIHJlc3VsdDIgPSBuZXcgRGF0ZSgpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcz0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIHJlc3VsdDEgPSBkZWYucGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgbG9nbG4odGV4dCArICIgcGFyc2VkIGludG8gIiArIHJlc3VsdDEpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQyID0gZGVmLnBhcnNlKHRleHQpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHBhcnNlKCkgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4odGV4dCArICIgcGFyc2VkIGludG8gIiArIHJlc3VsdDIpOworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBnZXR0ZXJzIGFuZCBzZXR0ZXJzCisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgZ2V0dGVycyBhbmQgc2V0dGVycyIpOworCisgICAgICAgIGZpbmFsIERhdGVGb3JtYXRTeW1ib2xzIHN5bXMgPSBwYXQuZ2V0RGF0ZUZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgZGVmLnNldERhdGVGb3JtYXRTeW1ib2xzKHN5bXMpOworICAgICAgICBwYXRfZnIuc2V0RGF0ZUZvcm1hdFN5bWJvbHMoc3ltcyk7CisgICAgICAgIGlmKCAhIHBhdC5nZXREYXRlRm9ybWF0U3ltYm9scygpLmVxdWFscyhkZWYuZ2V0RGF0ZUZvcm1hdFN5bWJvbHMoKSkgKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldCBEYXRlRm9ybWF0U3ltYm9scygpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgaGFzIG5vdCB0aGUgbWV0aG9kIGdldFR3b0RpZ2l0U3RhcnREYXRlKCk7CisgICAgICAgIC8vRGF0ZSBzdGFydERhdGUgPSBudWxsOyAvL1RoZSB2YXJpYWJsZSBpcyBuZXZlciB1c2VkCisgICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIHN0YXJ0RGF0ZSA9IHBhdC5nZXRUd29EaWdpdFN0YXJ0RGF0ZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBnZXRUd29EaWdpdFN0YXJ0RGF0ZSgpIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKy8vICAgICAgICAgICAgcGF0X2ZyLnNldFR3b0RpZ2l0U3RhcnREYXRlKHN0YXJ0RGF0ZSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHNldFR3b0RpZ2l0U3RhcnREYXRlKCkgZmFpbGVkIik7CisgICAgICAgIH0qLworCisgICAgICAgIC8vID09PT09PT0gVGVzdCBhcHBseVBhdHRlcm4oKQorCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGFwcGx5UGF0dGVybigpIik7CisKKyAgICAgICAgU3RyaW5nIHAxID0gbmV3IFN0cmluZygieXl5eS5NTS5kZCBHICdhdCcgaGg6bW06c3MgeiIpOworICAgICAgICBsb2dsbigiQXBwbHlpbmcgcGF0dGVybiAiICsgcDEpOworICAgICAgICBwYXQuYXBwbHlQYXR0ZXJuKHAxKTsKKworICAgICAgICBTdHJpbmcgczIgPSBwYXQudG9QYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKCJFeHRyYWN0ZWQgcGF0dGVybiBpcyAiICsgczIpOworICAgICAgICBpZiggISBzMi5lcXVhbHMocDEpICkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiB0b1BhdHRlcm4oKSByZXN1bHQgZGlkIG5vdCBtYXRjaCBwYXR0ZXJuIGFwcGxpZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJBcHBseWluZyBwYXR0ZXJuICIgKyBwMSk7CisgICAgICAgIHBhdC5hcHBseUxvY2FsaXplZFBhdHRlcm4ocDEpOworICAgICAgICBTdHJpbmcgczMgPSBwYXQudG9Mb2NhbGl6ZWRQYXR0ZXJuKCk7CisgICAgICAgIGxvZ2xuKCJFeHRyYWN0ZWQgcGF0dGVybiBpcyAiICsgczMpOworICAgICAgICBpZiggISBzMy5lcXVhbHMocDEpICkgeworICAgICAgICAgICAgZXJybG4oIkVSUk9SOiB0b0xvY2FsaXplZFBhdHRlcm4oKSByZXN1bHQgZGlkIG5vdCBtYXRjaCBwYXR0ZXJuIGFwcGxpZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vID09PT09PT0gVGVzdCBnZXRTdGF0aWNDbGFzc0lEKCkKKworLy8gICAgICAgIGxvZ2xuKCJUZXN0aW5nIGluc3RhbmNlb2YiKTsKKworLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIERhdGVGb3JtYXQgdGVzdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCk7CisKKy8vICAgICAgICAgICAgaWYgKCEgKHRlc3QgaW5zdGFuY2VvZiBTaW1wbGVEYXRlRm9ybWF0KSkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpbnN0YW5jZW9mIGZhaWxlZCIpOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgfQorLy8gICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICBlcnJsbigiRVJST1I6IENvdWxkbid0IGNyZWF0ZSBhIFNpbXBsZURhdGVGb3JtYXQiKTsKKy8vICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEppdHRlcmJ1ZyA0NDUxLCBmb3IgY292ZXJhZ2UKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKXsKKyAgICAgICAgY2xhc3MgU3R1YkRhdGVGb3JtYXQgZXh0ZW5kcyBTaW1wbGVEYXRlRm9ybWF0eworICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKCl7CisgICAgICAgICAgICAgICAgaWYgKCF6ZXJvUGFkZGluZ051bWJlcigxMiwgNCwgNikuZXF1YWxzKCIwMDEyIikpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiU2ltcGxlRGF0ZUZvcm1hdCh6ZXJvUGFkZGluZ051bWJlcihsb25nICwgaW50ICwgaW50ICkiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbmV3IFN0dWJEYXRlRm9ybWF0KCkucnVuKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9NZXNzYWdlUmVncmVzc2lvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9NZXNzYWdlUmVncmVzc2lvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhZjZmMWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L01lc3NhZ2VSZWdyZXNzaW9uLmphdmEKQEAgLTAsMCArMSw2MjkgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBBcHJpbCAxMiwgMjAwNAorKiBTaW5jZTogSUNVIDMuMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKy8qKgorICogTWVzc2FnZVJlZ3Jlc3Npb24uamF2YQorICoKKyAqIEB0ZXN0IDEuMjkgMDEvMDMvMTIKKyAqIEBidWcgNDAzMTQzOCA0MDU4OTczIDQwNzQ3NjQgNDA5NDkwNiA0MTA0OTc2IDQxMDUzODAgNDEwNjY1OSA0MTA2NjYwIDQxMDY2NjEKKyAqIDQxMTE3MzkgNDExMjEwNCA0MTEzMDE4IDQxMTQ3MzkgNDExNDc0MyA0MTE2NDQ0IDQxMTg1OTIgNDExODU5NCA0MTIwNTUyCisgKiA0MTQyOTM4IDQxNjk5NTkgNDIzMjE1NCA0MjkzMjI5CisgKiBAc3VtbWFyeSBSZWdyZXNzaW9uIHRlc3RzIGZvciBNZXNzYWdlRm9ybWF0IGFuZCBhc3NvY2lhdGVkIGNsYXNzZXMKKyAqLworLyoKKyhDKSBDb3B5cmlnaHQgVGFsaWdlbnQsIEluYy4gMTk5NiAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKyhDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTYgLSBBbGwgUmlnaHRzIFJlc2VydmVkCisKKyAgVGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhpcyBzb3VyY2UgY29kZSBhbmQgZG9jdW1lbnRhdGlvbiBpcyBjb3B5cmlnaHRlZCBhbmQKK293bmVkIGJ5IFRhbGlnZW50LCBJbmMuLCBhIHdob2xseS1vd25lZCBzdWJzaWRpYXJ5IG9mIElCTS4gVGhlc2UgbWF0ZXJpYWxzIGFyZQorcHJvdmlkZWQgdW5kZXIgdGVybXMgb2YgYSBMaWNlbnNlIEFncmVlbWVudCBiZXR3ZWVuIFRhbGlnZW50IGFuZCBTdW4uIFRoaXMKK3RlY2hub2xvZ3kgaXMgcHJvdGVjdGVkIGJ5IG11bHRpcGxlIFVTIGFuZCBJbnRlcm5hdGlvbmFsIHBhdGVudHMuIFRoaXMgbm90aWNlIGFuZAorYXR0cmlidXRpb24gdG8gVGFsaWdlbnQgbWF5IG5vdCBiZSByZW1vdmVkLgorICBUYWxpZ2VudCBpcyBhIHJlZ2lzdGVyZWQgdHJhZGVtYXJrIG9mIFRhbGlnZW50LCBJbmMuCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnRleHQuQ2hvaWNlRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CisKK3B1YmxpYyBjbGFzcyBNZXNzYWdlUmVncmVzc2lvbiBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgTWVzc2FnZVJlZ3Jlc3Npb24oKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyogQGJ1ZyA0MDc0NzY0CisgICAgICogTnVsbCBleGNlcHRpb24gd2hlbiBmb3JtYXR0aW5nIHBhdHRlcm4gd2l0aCBNZXNzYWdlRm9ybWF0CisgICAgICogd2l0aCBubyBwYXJhbWV0ZXJzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDc0NzY0KCkgeworICAgICAgICBTdHJpbmdbXSBwYXR0ZXJuID0geyJNZXNzYWdlIHdpdGhvdXQgcGFyYW0iLAorICAgICAgICAiTWVzc2FnZSB3aXRoIHBhcmFtOnswfSIsCisgICAgICAgICJMb25nZXIgTWVzc2FnZSB3aXRoIHBhcmFtIHswfSJ9OworICAgICAgICAvL2RpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdHdvIHBhcmFtIHN0cmluZ3MgYXJlIHRoYXQKKyAgICAgICAgLy9pbiB0aGUgZmlyc3Qgb25lLCB0aGUgcGFyYW0gcG9zaXRpb24gaXMgd2l0aGluIHRoZQorICAgICAgICAvL2xlbmd0aCBvZiB0aGUgc3RyaW5nIHdpdGhvdXQgcGFyYW0gd2hpbGUgaXQgaXMgbm90IHNvCisgICAgICAgIC8vaW4gdGhlIG90aGVyIGNhc2UuCisKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZXNzYWdlRm9ybWF0dGVyID0gbmV3IE1lc3NhZ2VGb3JtYXQoIiIpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvL0FwcGx5IHBhdHRlcm4gd2l0aCBwYXJhbSBhbmQgcHJpbnQgdGhlIHJlc3VsdAorICAgICAgICAgICAgbWVzc2FnZUZvcm1hdHRlci5hcHBseVBhdHRlcm4ocGF0dGVyblsxXSk7CisgICAgICAgICAgICBPYmplY3RbXSBwYXJhbXMgPSB7bmV3IFN0cmluZygiQlVHIiksIG5ldyBEYXRlKCl9OworICAgICAgICAgICAgU3RyaW5nIHRlbXBCdWZmZXIgPSBtZXNzYWdlRm9ybWF0dGVyLmZvcm1hdChwYXJhbXMpOworICAgICAgICAgICAgaWYgKCF0ZW1wQnVmZmVyLmVxdWFscygiTWVzc2FnZSB3aXRoIHBhcmFtOkJVRyIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJNZXNzYWdlRm9ybWF0IHdpdGggb25lIHBhcmFtIHRlc3QgZmFpbGVkLiIpOworICAgICAgICAgICAgbG9nbG4oIkZvcm1hdHRlZCB3aXRoIG9uZSBleHRyYSBwYXJhbSA6ICIgKyB0ZW1wQnVmZmVyKTsKKworICAgICAgICAgICAgLy9BcHBseSBwYXR0ZXJuIHdpdGhvdXQgcGFyYW0gYW5kIHByaW50IHRoZSByZXN1bHQKKyAgICAgICAgICAgIG1lc3NhZ2VGb3JtYXR0ZXIuYXBwbHlQYXR0ZXJuKHBhdHRlcm5bMF0pOworICAgICAgICAgICAgdGVtcEJ1ZmZlciA9IG1lc3NhZ2VGb3JtYXR0ZXIuZm9ybWF0KG51bGwpOworICAgICAgICAgICAgaWYgKCF0ZW1wQnVmZmVyLmVxdWFscygiTWVzc2FnZSB3aXRob3V0IHBhcmFtIikpCisgICAgICAgICAgICAgICAgZXJybG4oIk1lc3NhZ2VGb3JtYXQgd2l0aCBubyBwYXJhbSB0ZXN0IGZhaWxlZC4iKTsKKyAgICAgICAgICAgIGxvZ2xuKCJGb3JtYXR0ZWQgd2l0aCBubyBwYXJhbXMgOiAiICsgdGVtcEJ1ZmZlcik7CisKKyAgICAgICAgICAgICB0ZW1wQnVmZmVyID0gbWVzc2FnZUZvcm1hdHRlci5mb3JtYXQocGFyYW1zKTsKKyAgICAgICAgICAgICBpZiAoIXRlbXBCdWZmZXIuZXF1YWxzKCJNZXNzYWdlIHdpdGhvdXQgcGFyYW0iKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRm9ybWF0dGVkIHdpdGggYXJndW1lbnRzID4gc3Vic2l0dXRpb24gZmFpbGVkLiByZXN1bHQgPSAiICsgdGVtcEJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgICBsb2dsbigiRm9ybWF0dGVkIHdpdGggZXh0cmEgcGFyYW1zIDogIiArIHRlbXBCdWZmZXIpOworICAgICAgICAgICAgLy9UaGlzIHN0YXRlbWVudCBnaXZlcyBhbiBleGNlcHRpb24gd2hpbGUgZm9ybWF0dGluZy4uLgorICAgICAgICAgICAgLy9JZiB3ZSB1c2UgcGF0dGVyblsxXSBmb3IgdGhlIG1lc3NhZ2Ugd2l0aCBwYXJhbSwKKyAgICAgICAgICAgIC8vd2UgZ2V0IGFuIE51bGxQb2ludGVyRXhjZXB0aW9uIGluIE1lc3NhZ2VGb3JtYXQuamF2YSg2MTcpCisgICAgICAgICAgICAvL0lmIHdlIHVzZSBwYXR0ZXJuWzJdIGZvciB0aGUgbWVzc2FnZSB3aXRoIHBhcmFtLAorICAgICAgICAgICAgLy93ZSBnZXQgYW4gU3RyaW5nQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGluIE1lc3NhZ2VGb3JtYXQuamF2YSg2MTQpCisgICAgICAgICAgICAvL0JvdGggYXJlIGR1ZSB0byBtYXhPZmZzZXQgbm90IGJlaW5nIHJlc2V0IHRvIC0xCisgICAgICAgICAgICAvL2luIGFwcGx5UGF0dGVybigpIHdoZW4gdGhlIHBhdHRlcm4gZG9lcyBub3QKKyAgICAgICAgICAgIC8vY29udGFpbiBhbnkgcGFyYW0uCisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIGVycmxuKCJFeGNlcHRpb24gd2hlbiBmb3JtYXR0aW5nIHdpdGggbm8gcGFyYW1zLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyogQGJ1ZyA0MDU4OTczCisgICAgICogTWVzc2FnZUZvcm1hdC50b1BhdHRlcm4gaGFzIHdlaXJkIHJvdW5kaW5nIGJlaGF2aW9yLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU4OTczKCkgeworCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm10ID0gbmV3IE1lc3NhZ2VGb3JtYXQoInswLGNob2ljZSwwI25vIGZpbGVzfDEjb25lIGZpbGV8MTwgezAsbnVtYmVyLGludGVnZXJ9IGZpbGVzfSIpOworICAgICAgICBTdHJpbmcgcGF0ID0gZm10LnRvUGF0dGVybigpOworICAgICAgICBpZiAoIXBhdC5lcXVhbHMoInswLGNob2ljZSwwLjAjbm8gZmlsZXN8MS4wI29uZSBmaWxlfDEuMDwgezAsbnVtYmVyLGludGVnZXJ9IGZpbGVzfSIpKSB7CisgICAgICAgICAgICBlcnJsbigiTWVzc2FnZUZvcm1hdC50b1BhdHRlcm4gZmFpbGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgLyogQGJ1ZyA0MDMxNDM4CisgICAgICogTW9yZSByb2J1c3QgbWVzc2FnZSBmb3JtYXRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDMxNDM4KCkgeworICAgICAgICBTdHJpbmcgcGF0dGVybjEgPSAiSW1wb3NzaWJsZSB7MX0gaGFzIG9jY3VycmVkIC0tIHN0YXR1cyBjb2RlIGlzIHswfSBhbmQgbWVzc2FnZSBpcyB7Mn0uIjsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4yID0gIkRvdWJsZSAnJyBRdW90ZXMgezB9IHRlc3QgYW5kIHF1b3RlZCAnezF9JyB0ZXN0IHBsdXMgJ290aGVyIHsyfSBzdHVmZicuIjsKKworICAgICAgICBNZXNzYWdlRm9ybWF0IG1lc3NhZ2VGb3JtYXR0ZXIgPSBuZXcgTWVzc2FnZUZvcm1hdCgiIik7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxvZ2xuKCJBcHBseSB3aXRoIHBhdHRlcm4gOiAiICsgcGF0dGVybjEpOworICAgICAgICAgICAgbWVzc2FnZUZvcm1hdHRlci5hcHBseVBhdHRlcm4ocGF0dGVybjEpOworICAgICAgICAgICAgT2JqZWN0W10gcGFyYW1zID0ge25ldyBJbnRlZ2VyKDcpfTsKKyAgICAgICAgICAgIFN0cmluZyB0ZW1wQnVmZmVyID0gbWVzc2FnZUZvcm1hdHRlci5mb3JtYXQocGFyYW1zKTsKKyAgICAgICAgICAgIGlmICghdGVtcEJ1ZmZlci5lcXVhbHMoIkltcG9zc2libGUgezF9IGhhcyBvY2N1cnJlZCAtLSBzdGF0dXMgY29kZSBpcyA3IGFuZCBtZXNzYWdlIGlzIHsyfS4iKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiVGVzdHMgYXJndW1lbnRzIDwgc3Vic3RpdHV0aW9uIGZhaWxlZCIpOworICAgICAgICAgICAgbG9nbG4oIkZvcm1hdHRlZCB3aXRoIDcgOiAiICsgdGVtcEJ1ZmZlcik7CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHN0YXR1cyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgT2JqZWN0W10gb2JqcyA9IG1lc3NhZ2VGb3JtYXR0ZXIucGFyc2UodGVtcEJ1ZmZlciwgc3RhdHVzKTsKKyAgICAgICAgICAgIGlmIChvYmpzW3BhcmFtcy5sZW5ndGhdICE9IG51bGwpCisgICAgICAgICAgICAgICAgZXJybG4oIlBhcnNlIGZhaWxlZCB3aXRoIG1vcmUgdGhhbiBleHBlY3RlZCBhcmd1bWVudHMiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb2Jqcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChvYmpzW2ldICE9IG51bGwgJiYgIW9ianNbaV0udG9TdHJpbmcoKS5lcXVhbHMocGFyYW1zW2ldLnRvU3RyaW5nKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJQYXJzZSBmYWlsZWQgb24gb2JqZWN0ICIgKyBvYmpzW2ldICsgIiBhdCBpbmRleCA6ICIgKyBpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wQnVmZmVyID0gbWVzc2FnZUZvcm1hdHRlci5mb3JtYXQobnVsbCk7CisgICAgICAgICAgICBpZiAoIXRlbXBCdWZmZXIuZXF1YWxzKCJJbXBvc3NpYmxlIHsxfSBoYXMgb2NjdXJyZWQgLS0gc3RhdHVzIGNvZGUgaXMgezB9IGFuZCBtZXNzYWdlIGlzIHsyfS4iKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiVGVzdHMgd2l0aCBubyBhcmd1bWVudHMgZmFpbGVkIik7CisgICAgICAgICAgICBsb2dsbigiRm9ybWF0dGVkIHdpdGggbnVsbCA6ICIgKyB0ZW1wQnVmZmVyKTsKKyAgICAgICAgICAgIGxvZ2xuKCJBcHBseSB3aXRoIHBhdHRlcm4gOiAiICsgcGF0dGVybjIpOworICAgICAgICAgICAgbWVzc2FnZUZvcm1hdHRlci5hcHBseVBhdHRlcm4ocGF0dGVybjIpOworICAgICAgICAgICAgdGVtcEJ1ZmZlciA9IG1lc3NhZ2VGb3JtYXR0ZXIuZm9ybWF0KHBhcmFtcyk7CisgICAgICAgICAgICBpZiAoIXRlbXBCdWZmZXIuZXF1YWxzKCJEb3VibGUgJyBRdW90ZXMgNyB0ZXN0IGFuZCBxdW90ZWQgezF9IHRlc3QgcGx1cyBvdGhlciB7Mn0gc3R1ZmYuIikpCisgICAgICAgICAgICAgICAgZXJybG4oInF1b3RlIGZvcm1hdCB0ZXN0ICh3LyBwYXJhbXMpIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIGxvZ2xuKCJGb3JtYXR0ZWQgd2l0aCBwYXJhbXMgOiAiICsgdGVtcEJ1ZmZlcik7CisgICAgICAgICAgICB0ZW1wQnVmZmVyID0gbWVzc2FnZUZvcm1hdHRlci5mb3JtYXQobnVsbCk7CisgICAgICAgICAgICBpZiAoIXRlbXBCdWZmZXIuZXF1YWxzKCJEb3VibGUgJyBRdW90ZXMgezB9IHRlc3QgYW5kIHF1b3RlZCB7MX0gdGVzdCBwbHVzIG90aGVyIHsyfSBzdHVmZi4iKSkKKyAgICAgICAgICAgICAgICBlcnJsbigicXVvdGUgZm9ybWF0IHRlc3QgKHcvIG51bGwpIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIGxvZ2xuKCJGb3JtYXR0ZWQgd2l0aCBudWxsIDogIiArIHRlbXBCdWZmZXIpOworICAgICAgICAgICAgbG9nbG4oInRvUGF0dGVybiA6ICIgKyBtZXNzYWdlRm9ybWF0dGVyLnRvUGF0dGVybigpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgd2FybmxuKCJFeGNlcHRpb24gd2hlbiBmb3JtYXR0aW5nIGluIGJ1ZyA0MDMxNDM4LiAiK2Zvby5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDUyMjIzKCkKKyAgICB7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIGlmIChwb3MuZ2V0RXJyb3JJbmRleCgpICE9IC0xKSB7CisgICAgICAgICAgICBlcnJsbigiUGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4IGluaXRpYWxpemF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgfQorICAgICAgICBNZXNzYWdlRm9ybWF0IGZtdCA9IG5ldyBNZXNzYWdlRm9ybWF0KCJUaGVyZSBhcmUgezB9IGFwcGxlcyBncm93aW5nIG9uIHRoZSB7MX0gdHJlZS4iKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9IG5ldyBTdHJpbmcoIlRoZXJlIGlzIG9uZSBhcHBsZSBncm93aW5nIG9uIHRoZSBwZWFjaCB0cmVlLiIpOworICAgICAgICBPYmplY3RbXSBvYmpzID0gZm10LnBhcnNlKHN0ciwgcG9zKTsKKyAgICAgICAgbG9nbG4oInVucGFyc2FibGUgc3RyaW5nICwgc2hvdWxkIGZhaWwgYXQgIiArIHBvcy5nZXRFcnJvckluZGV4KCkpOworICAgICAgICBpZiAocG9zLmdldEVycm9ySW5kZXgoKSA9PSAtMSkKKyAgICAgICAgICAgIGVycmxuKCJCdWcgNDA1MjIyMyBmYWlsZWQgOiBwYXJzaW5nIHN0cmluZyAiICsgc3RyKTsKKyAgICAgICAgcG9zLnNldEVycm9ySW5kZXgoNCk7CisgICAgICAgIGlmIChwb3MuZ2V0RXJyb3JJbmRleCgpICE9IDQpCisgICAgICAgICAgICBlcnJsbigic2V0RXJyb3JJbmRleCBmYWlsZWQsIGdvdCAiICsgcG9zLmdldEVycm9ySW5kZXgoKSArICIgaW5zdGVhZCBvZiA0Iik7CisgICAgICAgIENob2ljZUZvcm1hdCBmID0gbmV3IENob2ljZUZvcm1hdCgKKyAgICAgICAgICAgICItMSNhcmUgbmVnYXRpdmV8MCNhcmUgbm8gb3IgZnJhY3Rpb258MSNpcyBvbmV8MS4wPGlzIDErfDIjYXJlIHR3b3wyPGFyZSBtb3JlIHRoYW4gMi4iKTsKKyAgICAgICAgcG9zLnNldEluZGV4KDApOyBwb3Muc2V0RXJyb3JJbmRleCgtMSk7CisgICAgICAgIE51bWJlciBvYmogPSBmLnBhcnNlKCJhcmUgbmVnYXRpdmUiLCBwb3MpOworICAgICAgICBpZiAocG9zLmdldEVycm9ySW5kZXgoKSAhPSAtMSAmJiBvYmouZG91YmxlVmFsdWUoKSA9PSAtMS4wKQorICAgICAgICAgICAgZXJybG4oIlBhcnNlIHdpdGggXCJhcmUgbmVnYXRpdmVcIiBmYWlsZWQsIGF0ICIgKyBwb3MuZ2V0RXJyb3JJbmRleCgpKTsKKyAgICAgICAgcG9zLnNldEluZGV4KDApOyBwb3Muc2V0RXJyb3JJbmRleCgtMSk7CisgICAgICAgIG9iaiA9IGYucGFyc2UoImFyZSBubyBvciBmcmFjdGlvbiAiLCBwb3MpOworICAgICAgICBpZiAocG9zLmdldEVycm9ySW5kZXgoKSAhPSAtMSAmJiBvYmouZG91YmxlVmFsdWUoKSA9PSAwLjApCisgICAgICAgICAgICBlcnJsbigiUGFyc2Ugd2l0aCBcImFyZSBubyBvciBmcmFjdGlvblwiIGZhaWxlZCwgYXQgIiArIHBvcy5nZXRFcnJvckluZGV4KCkpOworICAgICAgICBwb3Muc2V0SW5kZXgoMCk7IHBvcy5zZXRFcnJvckluZGV4KC0xKTsKKyAgICAgICAgb2JqID0gZi5wYXJzZSgiZ28gcG9zdGFsIiwgcG9zKTsKKyAgICAgICAgaWYgKHBvcy5nZXRFcnJvckluZGV4KCkgPT0gLTEgJiYgIURvdWJsZS5pc05hTihvYmouZG91YmxlVmFsdWUoKSkpCisgICAgICAgICAgICBlcnJsbigiUGFyc2Ugd2l0aCBcImdvIHBvc3RhbFwiIGZhaWxlZCwgYXQgIiArIHBvcy5nZXRFcnJvckluZGV4KCkpOworICAgIH0KKyAgICAvKiBAYnVnIDQxMDQ5NzYKKyAgICAgKiBDaG9pY2VGb3JtYXQuZXF1YWxzKG51bGwpIHRocm93cyBOdWxsUG9pbnRlckV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA0OTc2KCkKKyAgICB7CisgICAgICAgIGRvdWJsZVtdIGxpbWl0cyA9IHsxLCAyMH07CisgICAgICAgIFN0cmluZ1tdIGZvcm1hdHMgPSB7Inh5eiIsICJhYmMifTsKKyAgICAgICAgQ2hvaWNlRm9ybWF0IGNmID0gbmV3IENob2ljZUZvcm1hdChsaW1pdHMsIGZvcm1hdHMpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nKCJDb21wYXJlcyB0byBudWxsIGlzIGFsd2F5cyBmYWxzZSwgcmV0dXJuZWQgOiAiKTsKKyAgICAgICAgICAgIGxvZ2xuKGNmLmVxdWFscyhudWxsKSA/ICJUUlVFIiA6ICJGQUxTRSIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBlcnJsbigiQ2hvaWNlRm9ybWF0LmVxdWFscyhudWxsKSB0aHJvd3MgZXhjZXB0aW9uLiIpOworICAgICAgICB9CisgICAgfQorICAgIC8qIEBidWcgNDEwNjY1OQorICAgICAqIENob2ljZUZvcm1hdC5jdG9yKGRvdWJsZVtdLCBTdHJpbmdbXSkgZG9lc24ndCBjaGVjaworICAgICAqIHdoZXRoZXIgbGVuZ3RocyBvZiBpbnB1dCBhcnJheXMgYXJlIGVxdWFsLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA2NjU5KCkKKyAgICB7CisgICAgICAgIGRvdWJsZVtdIGxpbWl0cyA9IHsxLCAyLCAzfTsKKyAgICAgICAgU3RyaW5nW10gZm9ybWF0cyA9IHsib25lIiwgInR3byJ9OworICAgICAgICBDaG9pY2VGb3JtYXQgY2YgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY2YgPSBuZXcgQ2hvaWNlRm9ybWF0KGxpbWl0cywgZm9ybWF0cyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIGxvZ2xuKCJDaG9pY2VGb3JtYXQgY29uc3RydWN0b3Igc2hvdWxkIGNoZWNrIGZvciB0aGUgYXJyYXkgbGVuZ3RocyIpOworICAgICAgICAgICAgY2YgPSBudWxsOworICAgICAgICB9CisgICAgICAgIGlmIChjZiAhPSBudWxsKSBlcnJsbihjZi5mb3JtYXQoNSkpOworICAgIH0KKworICAgIC8qIEBidWcgNDEwNjY2MAorICAgICAqIENob2ljZUZvcm1hdC5jdG9yKGRvdWJsZVtdLCBTdHJpbmdbXSkgYWxsb3dzIHVub3JkZXJlZCBkb3VibGUgYXJyYXkuCisgICAgICogVGhpcyBpcyBub3QgYSBidWcsIGFkZGVkIGphdmFkb2MgdG8gZW1waGFzaXplIHRoZSB1c2Ugb2YgbGltaXQKKyAgICAgKiBhcnJheSBtdXN0IGJlIGluIGFzY2VuZGluZyBvcmRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNjY2MCgpCisgICAgeworICAgICAgICBkb3VibGVbXSBsaW1pdHMgPSB7MywgMSwgMn07CisgICAgICAgIFN0cmluZ1tdIGZvcm1hdHMgPSB7IlRocmVlIiwgIk9uZSIsICJUd28ifTsKKyAgICAgICAgQ2hvaWNlRm9ybWF0IGNmID0gbmV3IENob2ljZUZvcm1hdChsaW1pdHMsIGZvcm1hdHMpOworICAgICAgICBkb3VibGUgZCA9IDUuMDsKKyAgICAgICAgU3RyaW5nIHN0ciA9IGNmLmZvcm1hdChkKTsKKyAgICAgICAgaWYgKCFzdHIuZXF1YWxzKCJUd28iKSkKKyAgICAgICAgICAgIGVycmxuKCJmb3JtYXQoIiArIGQgKyAiKSA9ICIgKyBjZi5mb3JtYXQoZCkpOworICAgIH0KKworICAgIC8qIEBidWcgNDExMTczOQorICAgICAqIE1lc3NhZ2VGb3JtYXQgaXMgaW5jb3JyZWN0bHkgc2VyaWFsaXplZC9kZXNlcmlhbGl6ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTE3MzkoKQorICAgIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtYXQxID0gbnVsbDsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtYXQyID0gbnVsbDsKKyAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9zdHJlYW0gPSBudWxsOworICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYmFvcyA9IG51bGw7CisgICAgICAgIE9iamVjdElucHV0U3RyZWFtIGlzdHJlYW0gPSBudWxsOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBiYW9zID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOworICAgICAgICAgICAgb3N0cmVhbSA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYmFvcyk7CisgICAgICAgIH0gY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIDogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3JtYXQxID0gbmV3IE1lc3NhZ2VGb3JtYXQoInBhdHRlcm57MH0iKTsKKyAgICAgICAgICAgIG9zdHJlYW0ud3JpdGVPYmplY3QoZm9ybWF0MSk7CisgICAgICAgICAgICBvc3RyZWFtLmZsdXNoKCk7CisKKyAgICAgICAgICAgIGJ5dGUgYnl0ZXNbXSA9IGJhb3MudG9CeXRlQXJyYXkoKTsKKworICAgICAgICAgICAgaXN0cmVhbSA9IG5ldyBPYmplY3RJbnB1dFN0cmVhbShuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZXMpKTsKKyAgICAgICAgICAgIGZvcm1hdDIgPSAoTWVzc2FnZUZvcm1hdClpc3RyZWFtLnJlYWRPYmplY3QoKTsKKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIDogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZm9ybWF0MS5lcXVhbHMoZm9ybWF0MikpIHsKKyAgICAgICAgICAgIGVycmxuKCJNZXNzYWdlRm9ybWF0cyBiZWZvcmUgYW5kIGFmdGVyIHNlcmlhbGl6YXRpb24gYXJlIG5vdCIgKworICAgICAgICAgICAgICAgICIgZXF1YWxcbmZvcm1hdDEgPSAiICsgZm9ybWF0MSArICIoIiArIGZvcm1hdDEudG9QYXR0ZXJuKCkgKyAiKVxuZm9ybWF0MiA9ICIgKworICAgICAgICAgICAgICAgIGZvcm1hdDIgKyAiKCIgKyBmb3JtYXQyLnRvUGF0dGVybigpICsgIikiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJTZXJpYWxpemF0aW9uIGZvciBNZXNzYWdlRm9ybWF0IGlzIE9LLiIpOworICAgICAgICB9CisgICAgfQorICAgIC8qIEBidWcgNDExNDc0MworICAgICAqIE1lc3NhZ2VGb3JtYXQuYXBwbHlQYXR0ZXJuIGFsbG93cyBpbGxlZ2FsIHBhdHRlcm5zLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTE0NzQzKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBvcmlnaW5hbFBhdHRlcm4gPSAiaW5pdGlhbCBwYXR0ZXJuIjsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KG9yaWdpbmFsUGF0dGVybik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgaWxsZWdhbFBhdHRlcm4gPSAiYWIgeyAnfScgZGUiOworICAgICAgICAgICAgbWYuYXBwbHlQYXR0ZXJuKGlsbGVnYWxQYXR0ZXJuKTsKKyAgICAgICAgICAgIGVycmxuKCJpbGxlZ2FsIHBhdHRlcm46IFwiIiArIGlsbGVnYWxQYXR0ZXJuICsgIlwiIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIGlmICghb3JpZ2luYWxQYXR0ZXJuLmVxdWFscyhtZi50b1BhdHRlcm4oKSkpCisgICAgICAgICAgICAgICAgZXJybG4oInBhdHRlcm4gYWZ0ZXI6IFwiIiArIG1mLnRvUGF0dGVybigpICsgIlwiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBAYnVnIDQxMTY0NDQKKyAgICAgKiBNZXNzYWdlRm9ybWF0LnBhcnNlIGhhcyBkaWZmZXJlbnQgYmVoYXZpb3IgaW4gY2FzZSBvZiBudWxsLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTE2NDQ0KCkKKyAgICB7CisgICAgICAgIFN0cmluZ1tdIHBhdHRlcm5zID0geyIiLCAib25lIiwgInswLGRhdGUsc2hvcnR9In07CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdCgiIik7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYXR0ZXJucy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBwYXR0ZXJuc1tpXTsKKyAgICAgICAgICAgIG1mLmFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgT2JqZWN0W10gYXJyYXkgPSBtZi5wYXJzZShudWxsLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgICAgICAgICAgbG9nbG4oInBhdHRlcm46IFwiIiArIHBhdHRlcm4gKyAiXCIiKTsKKyAgICAgICAgICAgICAgICBsb2coIiBwYXJzZWRPYmplY3RzOiAiKTsKKyAgICAgICAgICAgICAgICBpZiAoYXJyYXkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBsb2coInsiKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBhcnJheS5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFycmF5W2pdICE9IG51bGwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyKCJcIiIgKyBhcnJheVtqXS50b1N0cmluZygpICsgIlwiIik7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJudWxsIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaiA8IGFycmF5Lmxlbmd0aCAtIDEpIGxvZygiLCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGxvZygifSIpIDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2coIm51bGwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nbG4oIiIpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigicGF0dGVybjogXCIiICsgcGF0dGVybiArICJcIiIpOworICAgICAgICAgICAgICAgIGVycmxuKCIgIEV4Y2VwdGlvbjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorICAgIC8qIEBidWcgNDExNDczOSAoRklYIGFuZCBhZGQgamF2YWRvYykKKyAgICAgKiBNZXNzYWdlRm9ybWF0LmZvcm1hdCBoYXMgdW5kb2N1bWVudGVkIGJlaGF2aW9yIGFib3V0IGVtcHR5IGZvcm1hdCBvYmplY3RzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTE0NzM5KCkKKyAgICB7CisKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KCI8ezB9PiIpOworICAgICAgICBPYmplY3RbXSBvYmpzMSA9IG51bGw7CisgICAgICAgIE9iamVjdFtdIG9ianMyID0ge307CisgICAgICAgIE9iamVjdFtdIG9ianMzID0ge251bGx9OworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nbG4oInBhdHRlcm46IFwiIiArIG1mLnRvUGF0dGVybigpICsgIlwiIik7CisgICAgICAgICAgICBsb2coImZvcm1hdChudWxsKSA6ICIpOworICAgICAgICAgICAgbG9nbG4oIlwiIiArIG1mLmZvcm1hdChvYmpzMSkgKyAiXCIiKTsKKyAgICAgICAgICAgIGxvZygiZm9ybWF0KHt9KSAgIDogIik7CisgICAgICAgICAgICBsb2dsbigiXCIiICsgbWYuZm9ybWF0KG9ianMyKSArICJcIiIpOworICAgICAgICAgICAgbG9nKCJmb3JtYXQoe251bGx9KSA6Iik7CisgICAgICAgICAgICBsb2dsbigiXCIiICsgbWYuZm9ybWF0KG9ianMzKSArICJcIiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkV4Y2VwdGlvbiB0aHJvd24gZm9yIG51bGwgYXJndW1lbnQgdGVzdHMuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBAYnVnIDQxMTMwMTgKKyAgICAgKiBNZXNzYWdlRm9ybWF0LmFwcGx5UGF0dGVybiB3b3JrcyB3cm9uZyB3aXRoIGlsbGVnYWwgcGF0dGVybnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTMwMTgoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIG9yaWdpbmFsUGF0dGVybiA9ICJpbml0aWFsIHBhdHRlcm4iOworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQob3JpZ2luYWxQYXR0ZXJuKTsKKyAgICAgICAgU3RyaW5nIGlsbGVnYWxQYXR0ZXJuID0gImZvcm1hdDogezAsIHh4eFlZWX0iOworICAgICAgICBsb2dsbigicGF0dGVybiBiZWZvcmU6IFwiIiArIG1mLnRvUGF0dGVybigpICsgIlwiIik7CisgICAgICAgIGxvZ2xuKCJpbGxlZ2FsIHBhdHRlcm46IFwiIiArIGlsbGVnYWxQYXR0ZXJuICsgIlwiIik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBtZi5hcHBseVBhdHRlcm4oaWxsZWdhbFBhdHRlcm4pOworICAgICAgICAgICAgZXJybG4oIlNob3VsZCBoYXZlIHRocm93biBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZm9yIHBhdHRlcm4gOiAiICsgaWxsZWdhbFBhdHRlcm4pOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaWYgKCFvcmlnaW5hbFBhdHRlcm4uZXF1YWxzKG1mLnRvUGF0dGVybigpKSkKKyAgICAgICAgICAgICAgICBlcnJsbigicGF0dGVybiBhZnRlcjogXCIiICsgbWYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBAYnVnIDQxMDY2NjEKKyAgICAgKiBDaG9pY2VGb3JtYXQgaXMgc2lsZW50IGFib3V0IHRoZSBwYXR0ZXJuIHVzYWdlIGluIGphdmFkb2MuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDY2NjEoKQorICAgIHsKKyAgICAgICAgQ2hvaWNlRm9ybWF0IGZtdCA9IG5ldyBDaG9pY2VGb3JtYXQoCisgICAgICAgICAgIi0xI2FyZSBuZWdhdGl2ZXwgMCNhcmUgbm8gb3IgZnJhY3Rpb24gfCAxI2lzIG9uZSB8MS4wPGlzIDErIHwyI2FyZSB0d28gfDI8YXJlIG1vcmUgdGhhbiAyLiIpOworICAgICAgICBsb2dsbigiRm9ybWF0dGVyIFBhdHRlcm4gOiAiICsgZm10LnRvUGF0dGVybigpKTsKKworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggLUlORiA6ICIgKyBmbXQuZm9ybWF0KERvdWJsZS5ORUdBVElWRV9JTkZJTklUWSkpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggLTEuMCA6ICIgKyBmbXQuZm9ybWF0KC0xLjApKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIDAgOiAiICsgZm10LmZvcm1hdCgwKSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAwLjkgOiAiICsgZm10LmZvcm1hdCgwLjkpKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIDEuMCA6ICIgKyBmbXQuZm9ybWF0KDEpKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIDEuNSA6ICIgKyBmbXQuZm9ybWF0KDEuNSkpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggMiA6ICIgKyBmbXQuZm9ybWF0KDIpKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIDIuMSA6ICIgKyBmbXQuZm9ybWF0KDIuMSkpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggTmFOIDogIiArIGZtdC5mb3JtYXQoRG91YmxlLk5hTikpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggK0lORiA6ICIgKyBmbXQuZm9ybWF0KERvdWJsZS5QT1NJVElWRV9JTkZJTklUWSkpOworICAgIH0KKyAgICAvKiBAYnVnIDQwOTQ5MDYKKyAgICAgKiBDaG9pY2VGb3JtYXQgc2hvdWxkIGFjY2VwdCBcdTIyMUUgYXMgZXEuIHRvIElORi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA5NDkwNigpCisgICAgeworICAgICAgICBDaG9pY2VGb3JtYXQgZm10ID0gbmV3IENob2ljZUZvcm1hdCgKKyAgICAgICAgICAiLVx1MjIxRTxhcmUgbmVnYXRpdmV8MDxhcmUgbm8gb3IgZnJhY3Rpb258MSNpcyBvbmV8MS4wPGlzIDErfFx1MjIxRTxhcmUgbWFueS4iKTsKKyAgICAgICAgaWYgKCFmbXQudG9QYXR0ZXJuKCkuc3RhcnRzV2l0aCgiLVx1MjIxRTxhcmUgbmVnYXRpdmV8MC4wPGFyZSBubyBvciBmcmFjdGlvbnwxLjAjaXMgb25lfDEuMDxpcyAxK3xcdTIyMUU8YXJlIG1hbnkuIikpCisgICAgICAgICAgICBlcnJsbigiRm9ybWF0dGVyIFBhdHRlcm4gOiAiICsgZm10LnRvUGF0dGVybigpKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIC1JTkYgOiAiICsgZm10LmZvcm1hdChEb3VibGUuTkVHQVRJVkVfSU5GSU5JVFkpKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIC0xLjAgOiAiICsgZm10LmZvcm1hdCgtMS4wKSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAwIDogIiArIGZtdC5mb3JtYXQoMCkpOworICAgICAgICBsb2dsbigiRm9ybWF0IHdpdGggMC45IDogIiArIGZtdC5mb3JtYXQoMC45KSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAxLjAgOiAiICsgZm10LmZvcm1hdCgxKSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCAxLjUgOiAiICsgZm10LmZvcm1hdCgxLjUpKTsKKyAgICAgICAgbG9nbG4oIkZvcm1hdCB3aXRoIDIgOiAiICsgZm10LmZvcm1hdCgyKSk7CisgICAgICAgIGxvZ2xuKCJGb3JtYXQgd2l0aCArSU5GIDogIiArIGZtdC5mb3JtYXQoRG91YmxlLlBPU0lUSVZFX0lORklOSVRZKSk7CisgICAgfQorCisgICAgLyogQGJ1ZyA0MTE4NTkyCisgICAgICogTWVzc2FnZUZvcm1hdC5wYXJzZSBmYWlscyB3aXRoIENob2ljZUZvcm1hdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExODU5MigpCisgICAgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoIiIpOworICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICJ7MCxjaG9pY2UsMSNZRVN8MiNOT30iOworICAgICAgICBTdHJpbmcgcHJlZml4ID0gIiI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgZm9ybWF0dGVkID0gcHJlZml4ICsgIllFUyI7CisgICAgICAgICAgICBtZi5hcHBseVBhdHRlcm4ocHJlZml4ICsgcGF0dGVybik7CisgICAgICAgICAgICBwcmVmaXggKz0gIngiOworICAgICAgICAgICAgT2JqZWN0W10gb2JqcyA9IG1mLnBhcnNlKGZvcm1hdHRlZCwgbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICAgICAgbG9nbG4oaSArICIuIHBhdHRlcm4gOlwiIiArIG1mLnRvUGF0dGVybigpICsgIlwiIik7CisgICAgICAgICAgICBsb2coIiBcIiIgKyBmb3JtYXR0ZWQgKyAiXCIgcGFyc2VkIGFzICIpOworICAgICAgICAgICAgaWYgKG9ianMgPT0gbnVsbCkgbG9nbG4oIiAgbnVsbCIpOworICAgICAgICAgICAgZWxzZSBsb2dsbigiICAiICsgb2Jqc1swXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyogQGJ1ZyA0MTE4NTk0CisgICAgICogTWVzc2FnZUZvcm1hdC5wYXJzZSBmYWlscyBmb3Igc29tZSBwYXR0ZXJucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDExODU5NCgpCisgICAgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoInswfSwgezB9LCB7MH0iKTsKKyAgICAgICAgU3RyaW5nIGZvclBhcnNpbmcgPSAieCwgeSwgeiI7CisgICAgICAgIE9iamVjdFtdIG9ianMgPSBtZi5wYXJzZShmb3JQYXJzaW5nLCBuZXcgUGFyc2VQb3NpdGlvbigwKSk7CisgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiBcIiIgKyBtZi50b1BhdHRlcm4oKSArICJcIiIpOworICAgICAgICBsb2dsbigidGV4dCBmb3IgcGFyc2luZzogXCIiICsgZm9yUGFyc2luZyArICJcIiIpOworICAgICAgICBpZiAoIW9ianNbMF0udG9TdHJpbmcoKS5lcXVhbHMoInoiKSkKKyAgICAgICAgICAgIGVycmxuKCJhcmd1bWVudDA6IFwiIiArIG9ianNbMF0gKyAiXCIiKTsKKyAgICAgICAgbWYuc2V0TG9jYWxlKExvY2FsZS5VUyk7CisgICAgICAgIG1mLmFwcGx5UGF0dGVybigiezAsbnVtYmVyLCMuIyN9LCB7MCxudW1iZXIsIy4jfSIpOworICAgICAgICBPYmplY3RbXSBvbGRvYmpzID0ge25ldyBEb3VibGUoMy4xNDE1KX07CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBtZi5mb3JtYXQoIG9sZG9ianMgKTsKKyAgICAgICAgbG9nbG4oInBhdHRlcm46IFwiIiArIG1mLnRvUGF0dGVybigpICsgIlwiIik7CisgICAgICAgIGxvZ2xuKCJ0ZXh0IGZvciBwYXJzaW5nOiBcIiIgKyByZXN1bHQgKyAiXCIiKTsKKyAgICAgICAgLy8gcmVzdWx0IG5vdyBlcXVhbHMgIjMuMTQsIDMuMSIKKyAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKCIzLjE0LCAzLjEiKSkKKyAgICAgICAgICAgIGVycmxuKCJyZXN1bHQgPSAiICsgcmVzdWx0KTsKKyAgICAgICAgT2JqZWN0W10gbmV3b2JqcyA9IG1mLnBhcnNlKHJlc3VsdCwgbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICAvLyBuZXdvYmpzIG5vdyBlcXVhbHMge25ldyBEb3VibGUoMy4xKX0KKyAgICAgICAgaWYgKCgoTnVtYmVyKW5ld29ianNbMF0pLmRvdWJsZVZhbHVlKCkgIT0gMy4xKSAvLyB3YXMgKERvdWJsZSkgW2FsYW5dCisgICAgICAgICAgICBlcnJsbiggIm5ld29ianNbMF0gPSAiICsgbmV3b2Jqc1swXSk7CisgICAgfQorICAgIC8qIEBidWcgNDEwNTM4MAorICAgICAqIFdoZW4gdXNpbmcgQ2hvaWNlRm9ybWF0LCBNZXNzYWdlRm9ybWF0IGlzIG5vdCBnb29kIGZvciBJMThuLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA1MzgwKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuVGV4dDEgPSAiVGhlIGRpc2sgXCJ7MX1cIiBjb250YWlucyB7MH0uIjsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm5UZXh0MiA9ICJUaGVyZSBhcmUgezB9IG9uIHRoZSBkaXNrIFwiezF9XCIiOworICAgICAgICBNZXNzYWdlRm9ybWF0IGZvcm0xID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVyblRleHQxKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtMiA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm5UZXh0Mik7CisgICAgICAgIGRvdWJsZVtdIGZpbGVsaW1pdHMgPSB7MCwxLDJ9OworICAgICAgICBTdHJpbmdbXSBmaWxlcGFydCA9IHsibm8gZmlsZXMiLCJvbmUgZmlsZSIsInswLG51bWJlcn0gZmlsZXMifTsKKyAgICAgICAgQ2hvaWNlRm9ybWF0IGZpbGVmb3JtID0gbmV3IENob2ljZUZvcm1hdChmaWxlbGltaXRzLCBmaWxlcGFydCk7CisgICAgICAgIGZvcm0xLnNldEZvcm1hdCgxLCBmaWxlZm9ybSk7CisgICAgICAgIGZvcm0yLnNldEZvcm1hdCgwLCBmaWxlZm9ybSk7CisgICAgICAgIE9iamVjdFtdIHRlc3RBcmdzID0ge25ldyBMb25nKDEyMzczKSwgIk15RGlzayJ9OworICAgICAgICBsb2dsbihmb3JtMS5mb3JtYXQodGVzdEFyZ3MpKTsKKyAgICAgICAgbG9nbG4oZm9ybTIuZm9ybWF0KHRlc3RBcmdzKSk7CisgICAgfQorICAgIC8qIEBidWcgNDEyMDU1MgorICAgICAqIE1lc3NhZ2VGb3JtYXQucGFyc2UgaW5jb3JyZWN0bHkgc2V0cyBlcnJvckluZGV4LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTIwNTUyKCkKKyAgICB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdCgicGF0dGVybiIpOworICAgICAgICBTdHJpbmcgdGV4dHNbXSA9IHsicGF0dGVybiIsICJwYXQiLCAiMTIzNCJ9OworICAgICAgICBsb2dsbigicGF0dGVybjogXCIiICsgbWYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXh0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwcCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgT2JqZWN0W10gb2JqcyA9IG1mLnBhcnNlKHRleHRzW2ldLCBwcCk7CisgICAgICAgICAgICBsb2coIiAgdGV4dCBmb3IgcGFyc2luZzogXCIiICsgdGV4dHNbaV0gKyAiXCIiKTsKKyAgICAgICAgICAgIGlmIChvYmpzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiICAoaW5jb3JyZWN0bHkgZm9ybWF0dGVkIHN0cmluZykiKTsKKyAgICAgICAgICAgICAgICBpZiAocHAuZ2V0RXJyb3JJbmRleCgpID09IC0xKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiSW5jb3JyZWN0IGVycm9yIGluZGV4OiAiICsgcHAuZ2V0RXJyb3JJbmRleCgpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgKGNvcnJlY3RseSBmb3JtYXR0ZWQgc3RyaW5nKSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MTQyOTM4CisgICAgICogTWVzc2FnZUZvcm1hdCBoYW5kbGVzIHNpbmdsZSBxdW90ZXMgaW4gcGF0dGVybiB3cm9uZy4KKyAgICAgKiBUaGlzIGlzIGFjdHVhbGx5IGEgcHJvYmxlbSBpbiBDaG9pY2VGb3JtYXQ7IGl0IGRvZXNuJ3QKKyAgICAgKiB1bmRlcnN0YW5kIHNpbmdsZSBxdW90ZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDI5MzgoKSB7CisgICAgICAgIFN0cmluZyBwYXQgPSAiJydWb3VzJycgezAsY2hvaWNlLDAjbicnfDEjfWF2ZXogc1x1MDBFOWxlY3Rpb25uZVx1MDBFOSAiICsgCisgICAgICAgICAgICAiezAsY2hvaWNlLDAjYXVjdW58MSN7MH19IGNsaWVudHswLGNob2ljZSwwI3N8MSN8MiNzfSAiICsgCisgICAgICAgICAgICAicGVyc29ubmVsezAsY2hvaWNlLDAjc3wxI3wyI3N9LiI7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXQpOworCisgICAgICAgIFN0cmluZ1tdIFBSRUZJWCA9IHsKKyAgICAgICAgICAgICInVm91cycgbidhdmV6IHNcdTAwRTlsZWN0aW9ubmVcdTAwRTkgYXVjdW4gY2xpZW50cyBwZXJzb25uZWxzLiIsCisgICAgICAgICAgICAiJ1ZvdXMnIGF2ZXogc1x1MDBFOWxlY3Rpb25uZVx1MDBFOSAiLAorICAgICAgICAgICAgIidWb3VzJyBhdmV6IHNcdTAwRTlsZWN0aW9ubmVcdTAwRTkgIgorICAgICAgICB9OyAgCisgICAgICAgIFN0cmluZ1tdIFNVRkZJWCA9IHsKKyAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICAiIGNsaWVudCBwZXJzb25uZWwuIiwKKyAgICAgICAgICAgICIgY2xpZW50cyBwZXJzb25uZWxzLiIKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPDM7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIG91dCA9IG1mLmZvcm1hdChuZXcgT2JqZWN0W117bmV3IEludGVnZXIoaSl9KTsKKyAgICAgICAgICAgIGlmIChTVUZGSVhbaV0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmICghb3V0LmVxdWFscyhQUkVGSVhbaV0pKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiIiArIGkgKyAiOiBHb3QgXCIiICsgb3V0ICsgIlwiOyBXYW50IFwiIiArIFBSRUZJWFtpXSArICJcIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKCFvdXQuc3RhcnRzV2l0aChQUkVGSVhbaV0pIHx8CisgICAgICAgICAgICAgICAgICAgICFvdXQuZW5kc1dpdGgoU1VGRklYW2ldKSkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIiIgKyBpICsgIjogR290IFwiIiArIG91dCArICJcIjsgV2FudCBcIiIgKyBQUkVGSVhbaV0gKyAiXCIuLi5cIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBTVUZGSVhbaV0gKyAiXCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDE0MjkzOAorICAgICAqIFRlc3QgdGhlIGFwcGx5UGF0dGVybiBhbmQgdG9QYXR0ZXJuIGhhbmRsaW5nIG9mIHNpbmdsZSBxdW90ZXMKKyAgICAgKiBieSBDaG9pY2VGb3JtYXQuICAoVGhpcyBpcyBpbiBoZXJlIGJlY2F1c2UgdGhpcyB3YXMgYSBidWcgcmVwb3J0ZWQKKyAgICAgKiBhZ2FpbnN0IE1lc3NhZ2VGb3JtYXQuKSAgVGhlIHNpbmdsZSBxdW90ZSBpcyB1c2VkIHRvIHF1b3RlIHRoZQorICAgICAqIHBhdHRlcm4gY2hhcmFjdGVycyAnfCcsICcjJywgJzwnLCBhbmQgJ1x1MjI2NCcuICBUd28gcXVvdGVzIGluIGEgcm93CisgICAgICogaXMgYSBxdW90ZSBsaXRlcmFsLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDaG9pY2VQYXR0ZXJuUXVvdGUoKSB7CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBQYXR0ZXJuICAgICAgICAgICAgICAgICAgMCB2YWx1ZSAgICAgICAgICAgMSB2YWx1ZQorICAgICAgICAgICAgIjAjY2FuJyd0fDEjY2FuIiwgICAgICAgICAgICJjYW4ndCIsICAgICAgICAgICJjYW4iLAorICAgICAgICAgICAgIjAjJ3BvdW5kKCMpPScnIycnJ3wxI3h5eiIsICJwb3VuZCgjKT0nIyciLCAgICJ4eXoiLAorICAgICAgICAgICAgIjAjJzE8MiB8IDFcdTIyNjQxJ3wxIycnIiwgICIxPDIgfCAxXHUyMjY0MSIsICInIiwKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENob2ljZUZvcm1hdCBjZiA9IG5ldyBDaG9pY2VGb3JtYXQoREFUQVtpXSk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPD0xOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG91dCA9IGNmLmZvcm1hdChqKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFvdXQuZXF1YWxzKERBVEFbaSsxK2pdKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBQYXR0ZXJuIFwiIiArIERBVEFbaV0gKyAiXCIgeCAiK2orIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCArICI7IHdhbnQgXCIiICsgREFUQVtpKzEral0gKyAnIicpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0ID0gY2YudG9QYXR0ZXJuKCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdDIgPSBuZXcgQ2hvaWNlRm9ybWF0KHBhdCkudG9QYXR0ZXJuKCk7CisgICAgICAgICAgICAgICAgaWYgKCFwYXQuZXF1YWxzKHBhdDIpKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbDogUGF0dGVybiBcIiIgKyBEQVRBW2ldICsgIlwiIHggdG9QYXR0ZXJuIC0+IFwiIiArIHBhdCArICciJyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6IFBhdHRlcm4gXCIiICsgREFUQVtpXSArICJcIiB4IHRvUGF0dGVybiAtPiBcIiIgKyBwYXQgKyAnIicpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFBhdHRlcm4gXCIiICsgREFUQVtpXSArICJcIiAtPiAiICsgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMTIxMDQKKyAgICAgKiBNZXNzYWdlRm9ybWF0LmVxdWFscyhudWxsKSB0aHJvd3MgYSBOdWxsUG9pbnRlckV4Y2VwdGlvbi4gIFRoZSBKTFMgc3RhdGVzCisgICAgICogdGhhdCBpdCBzaG91bGQgcmV0dXJuIGZhbHNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTEyMTA0KCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IGZvcm1hdCA9IG5ldyBNZXNzYWdlRm9ybWF0KCIiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIE5PVCB0aHJvdyBhbiBleGNlcHRpb24KKyAgICAgICAgICAgIGlmIChmb3JtYXQuZXF1YWxzKG51bGwpKSB7CisgICAgICAgICAgICAgICAgLy8gSXQgYWxzbyBzaG91bGQgcmV0dXJuIGZhbHNlCisgICAgICAgICAgICAgICAgZXJybG4oIk1lc3NhZ2VGb3JtYXQuZXF1YWxzKG51bGwpIHJldHVybnMgZmFsc2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIk1lc3NhZ2VGb3JtYXQuZXF1YWxzKG51bGwpIHRocm93cyAiICsgZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxNjk5NTkKKyAgICAgKiBNZXNzYWdlRm9ybWF0IGRvZXMgbm90IGZvcm1hdCBudWxsIG9iamVjdHMuIENBTk5PVCBSRVBST0RVQ0UgVEhJUyBCVUcuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNjk5NTkoKSB7CisgICAgICAgIC8vIFRoaXMgd29ya3MKKyAgICAgICAgbG9nbG4oTWVzc2FnZUZvcm1hdC5mb3JtYXQoICJUaGlzIHdpbGwgezB9IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXXsid29yayJ9ICkgKTsKKyAgICAgICAgCisgICAgICAgIC8vIFRoaXMgZmFpbHMKKyAgICAgICAgbG9nbG4oTWVzc2FnZUZvcm1hdC5mb3JtYXQoICJUaGlzIHdpbGwgezB9IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXsgbnVsbCB9ICkgKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgdGVzdDQyMzIxNTQoKSB7CisgICAgICAgIGJvb2xlYW4gZ290RXhjZXB0aW9uID0gZmFsc2U7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBNZXNzYWdlRm9ybWF0IGZvcm1hdCA9IG5ldyBNZXNzYWdlRm9ybWF0KCJUaGUgZGF0ZSBpcyB7MDpkYXRlfSIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZ290RXhjZXB0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24pKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oImdvdCB3cm9uZyBleGNlcHRpb24gdHlwZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCJhcmd1bWVudCBudW1iZXIgdG9vIGxhcmdlIGF0ICIuZXF1YWxzKGUuZ2V0TWVzc2FnZSgpKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJnb3Qgd3JvbmcgZXhjZXB0aW9uIG1lc3NhZ2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWdvdEV4Y2VwdGlvbikgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oImRpZG4ndCBnZXQgZXhjZXB0aW9uIGZvciBpbnZhbGlkIGlucHV0Iik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgdGVzdDQyOTMyMjkoKSB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybWF0ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIicnJ3snMH0nJyAnJyd7MH0nJyciKTsKKyAgICAgICAgT2JqZWN0W10gYXJncyA9IHsgbnVsbCB9OworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSAiJ3swfScgJ3swfSciOworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZm9ybWF0LmZvcm1hdChhcmdzKTsKKyAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIndyb25nIGZvcm1hdCByZXN1bHQgLSBleHBlY3RlZCBcIiIgKworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCArICJcIiwgZ290IFwiIiArIHJlc3VsdCArICJcIiIpOworICAgICAgICB9CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJlZ2lzdHJhdGlvblRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0UmVnaXN0cmF0aW9uVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMWFmYjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJlZ2lzdHJhdGlvblRlc3QuamF2YQpAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKKworcHVibGljIGNsYXNzIE51bWJlckZvcm1hdFJlZ2lzdHJhdGlvblRlc3QgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBOdW1iZXJGb3JtYXRSZWdpc3RyYXRpb25UZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZWdpc3RyYXRpb24oKSB7CisgICAgICAgIGZpbmFsIFVMb2NhbGUgU1JDX0xPQyA9IFVMb2NhbGUuRlJBTkNFOworICAgICAgICBmaW5hbCBVTG9jYWxlIFNXQVBfTE9DID0gVUxvY2FsZS5VUzsKKworICAgICAgICBjbGFzcyBUZXN0RmFjdG9yeSBleHRlbmRzIFNpbXBsZU51bWJlckZvcm1hdEZhY3RvcnkgeworICAgICAgICAgICAgTnVtYmVyRm9ybWF0IGN1cnJlbmN5U3R5bGU7CisKKyAgICAgICAgICAgIFRlc3RGYWN0b3J5KCkgeworICAgICAgICAgICAgICAgIHRoaXMoU1JDX0xPQywgU1dBUF9MT0MpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBUZXN0RmFjdG9yeShVTG9jYWxlIHNyY0xvYywgVUxvY2FsZSBzd2FwTG9jKSB7CisgICAgICAgICAgICAgICAgc3VwZXIoc3JjTG9jKTsKKyAgICAgICAgICAgICAgICBjdXJyZW5jeVN0eWxlID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShzd2FwTG9jKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIE51bWJlckZvcm1hdCBjcmVhdGVGb3JtYXQoVUxvY2FsZSBsb2MsIGludCBmb3JtYXRUeXBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdFR5cGUgPT0gRk9STUFUX0NVUlJFTkNZKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW5jeVN0eWxlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGNvdmVyYWdlIGJlZm9yZSByZWdpc3RyYXRpb24KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQudW5yZWdpc3RlcihudWxsKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiZGlkIG5vdCB0aHJvdyBleGNlcHRpb24gb24gbnVsbCB1bnJlZ2lzdGVyIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIAlsb2dsbigiUEFTUzogbnVsbCB1bnJlZ2lzdGVyIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIE51bWJlckZvcm1hdC5yZWdpc3RlckZhY3RvcnkobnVsbCk7CisgICAgICAgICAgICAgICAgZXJybG4oImRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIG9uIG51bGwgcmVnaXN0ZXIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgCWxvZ2xuKCJQQVNTOiBudWxsIHJlZ2lzdGVyIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8vIGlmIG5vIE5GIGhhcyBiZWVuIHJlZ2lzdGVyZWQgeWV0LCBzaGltIGlzIG51bGwsIHNvIHRoaXMgc2lsZW50bHkKKyAgICAgICAgICAgICAgICAvLyByZXR1cm5zIGZhbHNlLiAgaWYsIG9uIHRoZSBvdGhlciBoYW5kLCBhIE5GIGhhcyBiZWVuIHJlZ2lzdGVyZWQsCisgICAgICAgICAgICAgICAgLy8gdGhpcyB3aWxsIHRyeSB0byBjYXN0IHRoZSBhcmd1bWVudCB0byBhIEZhY3RvcnksIGFuZCB0aHJvdworICAgICAgICAgICAgICAgIC8vIGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgICAgICBpZiAoTnVtYmVyRm9ybWF0LnVucmVnaXN0ZXIoIiIpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ1bnJlZ2lzdGVyIG9mIGVtcHR5IHN0cmluZyBrZXkgc3VjY2VlZGVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBVTG9jYWxlIGZ1X0ZVID0gbmV3IFVMb2NhbGUoImZ1X0ZVIik7CisgICAgICAgIE51bWJlckZvcm1hdCBmMCA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoU1dBUF9MT0MpOworICAgICAgICBOdW1iZXJGb3JtYXQgZjEgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKFNSQ19MT0MpOworICAgICAgICBOdW1iZXJGb3JtYXQgZjIgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShTUkNfTE9DKTsKKyAgICAgICAgT2JqZWN0IGtleSA9IE51bWJlckZvcm1hdC5yZWdpc3RlckZhY3RvcnkobmV3IFRlc3RGYWN0b3J5KCkpOworICAgICAgICBPYmplY3Qga2V5MiA9IE51bWJlckZvcm1hdC5yZWdpc3RlckZhY3RvcnkobmV3IFRlc3RGYWN0b3J5KGZ1X0ZVLCBVTG9jYWxlLkdFUk1BTlkpKTsKKyAgICAgICAgaWYgKCFBcnJheXMuYXNMaXN0KE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVVTG9jYWxlcygpKS5jb250YWlucyhmdV9GVSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJkaWQgbm90IGxpc3QgZnVfRlUiKTsKKyAgICAgICAgfQorICAgICAgICBOdW1iZXJGb3JtYXQgZjMgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShTUkNfTE9DKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGY0ID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShTUkNfTE9DKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0LnVucmVnaXN0ZXIoa2V5KTsgLy8gcmVzdG9yZSBmb3Igb3RoZXIgdGVzdHMKKyAgICAgICAgTnVtYmVyRm9ybWF0IGY1ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoU1JDX0xPQyk7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0LnVucmVnaXN0ZXIoa2V5Mik7CisKKyAgICAgICAgZmxvYXQgbiA9IDEyMzQuNTY3ZjsKKyAgICAgICAgbG9nbG4oImYwIHN3YXAgaW50OiAiICsgZjAuZm9ybWF0KG4pKTsKKyAgICAgICAgbG9nbG4oImYxIHNyYyBpbnQ6ICIgKyBmMS5mb3JtYXQobikpOworICAgICAgICBsb2dsbigiZjIgc3JjIGN1cjogIiArIGYyLmZvcm1hdChuKSk7CisgICAgICAgIGxvZ2xuKCJmMyByZWcgY3VyOiAiICsgZjMuZm9ybWF0KG4pKTsKKyAgICAgICAgbG9nbG4oImY0IHJlZyBpbnQ6ICIgKyBmNC5mb3JtYXQobikpOworICAgICAgICBsb2dsbigiZjUgdW5yZWcgY3VyOiAiICsgZjUuZm9ybWF0KG4pKTsKKworICAgICAgICBpZiAoIWYzLmZvcm1hdChuKS5lcXVhbHMoZjAuZm9ybWF0KG4pKSkgeworICAgICAgICAgICAgZXJybG4oInJlZ2lzdGVyZWQgc2VydmljZSBkaWQgbm90IG1hdGNoIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmNC5mb3JtYXQobikuZXF1YWxzKGYxLmZvcm1hdChuKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJyZWdpc3RlcmVkIHNlcnZpY2UgZGlkIG5vdCBpbmhlcml0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmNS5mb3JtYXQobikuZXF1YWxzKGYyLmZvcm1hdChuKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJ1bnJlZ2lzdGVyZWQgc2VydmljZSBkaWQgbm90IG1hdGNoIG9yaWdpbmFsIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBjb3ZlcmFnZQorICAgICAgICBOdW1iZXJGb3JtYXQgZjYgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoZnVfRlUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0UmVncmVzc2lvblRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0UmVncmVzc2lvblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45N2Q4OWU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRSZWdyZXNzaW9uVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTg1IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogTnVtYmVyRm9ybWF0UmVncmVzc2lvblRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L251bXJndHMuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKiAKKyAqIFBlcmZvcm1zIHJlZ3Jlc3Npb24gdGVzdCBmb3IgTWVzc2FnZUZvcm1hdAorICoqLworcHVibGljIGNsYXNzIE51bWJlckZvcm1hdFJlZ3Jlc3Npb25UZXN0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIG5ldyBOdW1iZXJGb3JtYXRSZWdyZXNzaW9uVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogYWxwaGFXb3JrcyB1cGdyYWRlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNjExMDAoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBuZi5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoMSk7CisgICAgICAgIG5mLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cygxKTsKKyAgICAgICAgZG91YmxlIGEgPSAtMC4wOTsKKyAgICAgICAgU3RyaW5nIHMgPSBuZi5mb3JtYXQoYSk7CisgICAgICAgIGxvZ2xuKGEgKyAiIHggIiArCisgICAgICAgICAgICAgICgoRGVjaW1hbEZvcm1hdCkgbmYpLnRvUGF0dGVybigpICsgIiA9ICIgKyBzKTsKKyAgICAgICAgaWYgKCFzLmVxdWFscygiLTAuMSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERhdGVGb3JtYXQgc2hvdWxkIGNhbGwgc2V0SW50ZWdlclBhcnNlT25seShUUlVFKSBvbiBhZG9wdGVkCisgICAgICogTnVtYmVyRm9ybWF0IG9iamVjdHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEo2OTEoKSB7CisgICAgICAgIAorICAgICAgICBMb2NhbGUgbG9jID0gbmV3IExvY2FsZSgiZnIiLCAiQ0giKTsKKyAgICAKKyAgICAgICAgLy8gc2V0IHVwIHRoZSBpbnB1dCBkYXRlIHN0cmluZyAmIGV4cGVjdGVkIG91dHB1dAorICAgICAgICBTdHJpbmcgdWR0ID0gIjExLjEwLjIwMDAiOworICAgICAgICBTdHJpbmcgZXhwID0gIjExLjEwLjAwIjsKKyAgICAKKyAgICAgICAgLy8gY3JlYXRlIGEgQ2FsZW5kYXIgZm9yIHRoaXMgbG9jYWxlCisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKGxvYyk7CisgICAgCisgICAgICAgIC8vIGNyZWF0ZSBhIE51bWJlckZvcm1hdCBmb3IgdGhpcyBsb2NhbGUKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvYyk7CisgICAgCisgICAgICAgIC8vICoqKiBIZXJlJ3MgdGhlIGtleTogV2UgZG9uJ3Qgd2FudCB0byBoYXZlIHRvIGRvIFRISVM6CisgICAgICAgIC8vbmYuc2V0UGFyc2VJbnRlZ2VyT25seSh0cnVlKTsKKyAgICAKKyAgICAgICAgLy8gY3JlYXRlIHRoZSBEYXRlRm9ybWF0CisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCBsb2MpOworICAgIAorICAgICAgICBkZi5zZXRDYWxlbmRhcihjYWwpOworICAgICAgICBkZi5zZXROdW1iZXJGb3JtYXQobmYpOworICAgIAorICAgICAgICAvLyBzZXQgcGFyc2luZyB0byBsZW5pZW50ICYgcGFyc2UKKyAgICAgICAgRGF0ZSB1bG9jZGF0ID0gbmV3IERhdGUoKTsKKyAgICAgICAgZGYuc2V0TGVuaWVudCh0cnVlKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHVsb2NkYXQgPSBkZi5wYXJzZSh1ZHQpOworICAgICAgICB9IGNhdGNoIChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gcGUpIHsKKyAgICAgICAgICAgIGVycmxuKHBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gZm9ybWF0IGJhY2sgdG8gYSBzdHJpbmcKKyAgICAgICAgU3RyaW5nIG91dFN0cmluZyA9IGRmLmZvcm1hdCh1bG9jZGF0KTsKKyAgICAKKyAgICAgICAgaWYgKCFvdXRTdHJpbmcuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgdWR0ICsgIiA9PiAiICsgb3V0U3RyaW5nKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IGdldEludGVnZXJJbnN0YW5jZSgpOworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0NDA4MDY2KCkgeworICAgICAgICAKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mMSA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mMiA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoTG9jYWxlLkNISU5BKTsKKyAgICAKKyAgICAgICAgLy90ZXN0IGlzUGFyc2VJbnRlZ2VyT25seQorICAgICAgICBpZiAoIW5mMS5pc1BhcnNlSW50ZWdlck9ubHkoKSB8fCAhbmYyLmlzUGFyc2VJbnRlZ2VyT25seSgpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIDogSW50ZWdlciBOdW1iZXIgRm9ybWF0IEluc3RhbmNlIHNob3VsZCBzZXQgc2V0UGFyc2VJbnRlZ2VyT25seSh0cnVlKSIpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vVGVzdCBmb3JtYXQKKyAgICAgICAgeworICAgICAgICAgICAgZG91YmxlW10gZGF0YSA9IHsKKyAgICAgICAgICAgICAgICAtMy43NSwgLTIuNSwgLTEuNSwgCisgICAgICAgICAgICAgICAgLTEuMjUsIDAsICAgIDEuMCwgCisgICAgICAgICAgICAgICAgMS4yNSwgIDEuNSwgIDIuNSwgCisgICAgICAgICAgICAgICAgMy43NSwgIDEwLjAsIDI1NS41CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIFN0cmluZ1tdIGV4cGVjdGVkID0geworICAgICAgICAgICAgICAgICItNCIsICItMiIsICItMiIsCisgICAgICAgICAgICAgICAgIi0xIiwgIjAiLCAgIjEiLAorICAgICAgICAgICAgICAgICIxIiwgICIyIiwgICIyIiwKKyAgICAgICAgICAgICAgICAiNCIsICAiMTAiLCAiMjU2IgorICAgICAgICAgICAgICAgIH07CisgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbmYxLmZvcm1hdChkYXRhW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgPT4gU291cmNlOiAiICsgRG91YmxlLnRvU3RyaW5nKGRhdGFbaV0pIAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiO0Zvcm1hdHRlZCA6ICIgKyByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIjtidXQgZXhwZWN0dGVkOiAiICsgZXhwZWN0ZWRbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvL1Rlc3QgcGFyc2UsIFBhcnNpbmcgc2hvdWxkIHN0b3AgYXQgIi4iCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBkYXRhW10gPSB7CisgICAgICAgICAgICAgICAgIi0zLjc1IiwgIi0yLjUiLCAiLTEuNSIsIAorICAgICAgICAgICAgICAgICItMS4yNSIsICIwIiwgICAgIjEuMCIsIAorICAgICAgICAgICAgICAgICIxLjI1IiwgICIxLjUiLCAgIjIuNSIsIAorICAgICAgICAgICAgICAgICIzLjc1IiwgICIxMC4wIiwgIjI1NS41IgorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICBsb25nW10gZXhwZWN0ZWQgPSB7CisgICAgICAgICAgICAgICAgLTMsIC0yLCAtMSwKKyAgICAgICAgICAgICAgICAtMSwgMCwgIDEsCisgICAgICAgICAgICAgICAgMSwgIDEsICAyLAorICAgICAgICAgICAgICAgIDMsICAxMCwgMjU1CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgTnVtYmVyIG4gPSBudWxsOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIG4gPSBuZjEucGFyc2UoZGF0YVtpXSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIShuIGluc3RhbmNlb2YgTG9uZykgfHwgKG4gaW5zdGFuY2VvZiBJbnRlZ2VyKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiBJbnRlZ2VyIE51bWJlciBGb3JtYXQgc2hvdWxkIHBhcnNlIHN0cmluZyB0byBMb25nL0ludGVnZXIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG4ubG9uZ1ZhbHVlKCkgIT0gZXhwZWN0ZWRbaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZD0+IFNvdXJjZTogIiArIGRhdGFbaV0gCisgICAgICAgICAgICAgICAgICAgICAgICArICI7cmVzdWx0IDogIiArIG4udG9TdHJpbmcoKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiO2V4cGVjdGVkIDoiICsgTG9uZy50b1N0cmluZyhleHBlY3RlZFtpXSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvL1Rlc3QgTmV3IHNlcmlhbGl6ZWQgRGVjaW1hbEZvcm1hdCgyLjApIHJlYWQgb2xkIHNlcmlhbGl6ZWQgZm9ybXMgb2YgRGVjaW1hbEZvcm1hdCgxLjMuMS4xKQorICAgIHB1YmxpYyB2b2lkIFRlc3RTZXJpYWxpemF0aW9uKCkgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9ueworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgYnl0ZVtdW10gY29udGVudHMgPSBOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5nZXRDb250ZW50KCk7CisgICAgICAgIGRvdWJsZSBkYXRhID0gMTIzNC41NjsKKyAgICAgICAgU3RyaW5nW10gZXhwZWN0ZWQgPSB7CisgICAgICAgICAgICAiMSwyMzQuNTYiLCAiJDEsMjM0LjU2IiwgIjEyMyw0NTYlIiwgIjEuMjM0NTZFMyJ9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7ICsraSkgeworICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2lzID0gbmV3IE9iamVjdElucHV0U3RyZWFtKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShjb250ZW50c1tpXSkpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZm9ybWF0ID0gKE51bWJlckZvcm1hdCkgb2lzLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZm9ybWF0LmZvcm1hdChkYXRhKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmVxdWFscyhleHBlY3RlZFtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiBEZXNlcmlhbGl6ZWQgYm9ndXMgTnVtYmVyRm9ybWF0KG5ldyB2ZXJzaW9uIHJlYWQgb2xkIHZlcnNpb24pIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRoZSB0ZXN0IGRhdGEgZm9ybWF0cyBhcmUgbm90IGV1cWFsIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkZBSUw6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKy8vI2VuZGlmCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRSb3VuZFRyaXBUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFJvdW5kVHJpcFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMjY5MTMwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRSb3VuZFRyaXBUZXN0LmphdmEKQEAgLTAsMCArMSwyMzQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKiAKKyAqIFBvcnRpbmcgRnJvbTogSUNVNEMgdjEuOC4xIDogZm9ybWF0IDogTnVtYmVyRm9ybWF0Um91bmRUcmlwVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3Qvbm1mbXRydC5jcHAKKyAqKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworCisvKiogCisgKiBQZXJmb3JtcyByb3VuZC10cmlwIHRlc3RzIGZvciBOdW1iZXJGb3JtYXQKKyAqKi8KK3B1YmxpYyBjbGFzcyBOdW1iZXJGb3JtYXRSb3VuZFRyaXBUZXN0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBkb3VibGUgTUFYX0VSUk9SID0gMWUtMTQ7CisgICAgcHVibGljIGRvdWJsZSBtYXhfbnVtZXJpY19lcnJvciA9IDAuMDsKKyAgICBwdWJsaWMgZG91YmxlIG1pbl9udW1lcmljX2Vycm9yID0gMS4wOworICAgIHB1YmxpYyBib29sZWFuIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBwdWJsaWMgYm9vbGVhbiBTVFJJTkdfQ09NUEFSRSA9IGZhbHNlOworICAgIHB1YmxpYyBib29sZWFuIEVYQUNUX05VTUVSSUNfQ09NUEFSRSA9IGZhbHNlOworICAgIHB1YmxpYyBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgcHVibGljIGJvb2xlYW4gcXVpY2sgPSB0cnVlOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgTnVtYmVyRm9ybWF0Um91bmRUcmlwVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdE51bWJlckZvcm1hdFJvdW5kVHJpcCgpIHsKKyAgICAKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IG51bGw7CisgICAgCisgICAgICAgIGxvZ2xuKCJEZWZhdWx0IExvY2FsZSIpOworICAgICAgICAKKyAgICAgICAgbG9nbG4oIkRlZmF1bHQgTnVtYmVyIGZvcm1hdCIpOworICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgX3Rlc3QoZm10KTsKKyAgICAKKyAgICAgICAgbG9nbG4oIkN1cnJlbmN5IEZvcm1hdCIpOworICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZSgpOworICAgICAgICBfdGVzdChmbXQpOworICAgIAorICAgICAgICBsb2dsbigiUGVyY2VudCBGb3JtYXQiKTsKKyAgICAgICAgZm10ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZSgpOworICAgICAgICBfdGVzdChmbXQpOworICAgIAorICAgIAorICAgICAgICBpbnQgbG9jQ291bnQgPSAwOworICAgICAgICBmaW5hbCBMb2NhbGVbXSBsb2MgPSBOdW1iZXJGb3JtYXQuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBpZihxdWljaykgeworICAgICAgICAgICAgaWYobG9jQ291bnQgPiA1KQorICAgICAgICAgICAgICAgIGxvY0NvdW50ID0gNTsKKyAgICAgICAgICAgIGxvZ2xuKCJRdWljayBtb2RlOiBvbmx5IF90ZXN0aW5nIGZpcnN0IDUgTG9jYWxlcyIpOworICAgICAgICB9CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBsb2NDb3VudDsgKytpKSB7CisgICAgICAgICAgICBsb2dsbihsb2NbaV0uZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgCisgICAgICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobG9jW2ldKTsKKyAgICAgICAgICAgIF90ZXN0KGZtdCk7CisgICAgICAgIAorICAgICAgICAgICAgZm10ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jW2ldKTsKKyAgICAgICAgICAgIF90ZXN0KGZtdCk7CisgICAgICAgIAorICAgICAgICAgICAgZm10ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShsb2NbaV0pOworICAgICAgICAgICAgX3Rlc3QoZm10KTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBsb2dsbigiTnVtZXJpYyBlcnJvciAiICsgbWluX251bWVyaWNfZXJyb3IgKyAiIHRvICIgKyBtYXhfbnVtZXJpY19lcnJvcik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIHJhbmRvbSB2YWx1ZSBmcm9tIC1yYW5nZS4uK3JhbmdlLgorICAgICAqLworICAgIHByaXZhdGUgUmFuZG9tIHJhbmRvbTsKKyAgICBwdWJsaWMgZG91YmxlIHJhbmRvbURvdWJsZShkb3VibGUgcmFuZ2UpIHsKKyAgICAgICAgaWYgKHJhbmRvbSA9PSBudWxsKSB7CisgICAgICAgICAgICByYW5kb20gPSBjcmVhdGVSYW5kb20oKTsgLy8gdXNlIHRlc3QgZnJhbWV3b3JrJ3MgcmFuZG9tIHNlZWQKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gIHJhbmRvbS5uZXh0RG91YmxlKCkgKiByYW5nZTsKKyAgICB9IAorICAgIAorICAgIHB1YmxpYyB2b2lkIF90ZXN0KE51bWJlckZvcm1hdCBmbXQpIHsKKyAgICAKKyAgICAgICAgX3Rlc3QoZm10LCBEb3VibGUuTmFOKTsKKyAgICAgICAgX3Rlc3QoZm10LCBEb3VibGUuUE9TSVRJVkVfSU5GSU5JVFkpOworICAgICAgICBfdGVzdChmbXQsIERvdWJsZS5ORUdBVElWRV9JTkZJTklUWSk7CisgICAgCisgICAgICAgIF90ZXN0KGZtdCwgNTAwKTsKKyAgICAgICAgX3Rlc3QoZm10LCAwKTsKKyAgICAgICAgX3Rlc3QoZm10LCAtMCk7CisgICAgICAgIF90ZXN0KGZtdCwgMC4wKTsKKyAgICAgICAgZG91YmxlIG5lZ1plcm8gPSAwLjA7CisgICAgICAgIG5lZ1plcm8gLz0gLTEuMDsKKyAgICAgICAgX3Rlc3QoZm10LCBuZWdaZXJvKTsKKyAgICAgICAgX3Rlc3QoZm10LCA5MjIzMzcyMDM2ODU0Nzc1ODA4LjBkKTsKKyAgICAgICAgX3Rlc3QoZm10LCAtOTIyMzM3MjAzNjg1NDc3NTgwOS4wZCk7CisgICAgICAgIC8vX3Rlc3QoZm10LCA2LjkzNjA2NTg3NjEwMDQ5M0U3NGQpOworICAgICAgICAKKyAgICAvLyAgICBfdGVzdChmbXQsIDYuMjEyMTIyODQ1MjgxOTA5RTQ4ZCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTA7ICsraSkgeworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCByYW5kb21Eb3VibGUoMSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxMDAwMCkpOworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCBNYXRoLmZsb29yKChyYW5kb21Eb3VibGUoMTAwMDApKSkpOworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCByYW5kb21Eb3VibGUoMWU1MCkpOworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCByYW5kb21Eb3VibGUoMWUtNTApKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlMTAwKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZTc1KSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZTMwOCkgLyAoKERlY2ltYWxGb3JtYXQpIGZtdCkuZ2V0TXVsdGlwbGllcigpKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlNzUpIC8gKChEZWNpbWFsRm9ybWF0KSBmbXQpLmdldE11bHRpcGxpZXIoKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZTY1KSAvICgoRGVjaW1hbEZvcm1hdCkgZm10KS5nZXRNdWx0aXBsaWVyKCkpOworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCByYW5kb21Eb3VibGUoMWUtMjkyKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZS03OCkpOworICAgIAorICAgICAgICAgICAgX3Rlc3QoZm10LCByYW5kb21Eb3VibGUoMWUtMzIzKSk7CisgICAgCisgICAgICAgICAgICBfdGVzdChmbXQsIHJhbmRvbURvdWJsZSgxZS0xMDApKTsKKyAgICAKKyAgICAgICAgICAgIF90ZXN0KGZtdCwgcmFuZG9tRG91YmxlKDFlLTc4KSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgX3Rlc3QoTnVtYmVyRm9ybWF0IGZtdCwgZG91YmxlIHZhbHVlKSB7CisgICAgICAgIF90ZXN0KGZtdCwgbmV3IERvdWJsZSh2YWx1ZSkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBfdGVzdChOdW1iZXJGb3JtYXQgZm10LCBsb25nIHZhbHVlKSB7CisgICAgICAgIF90ZXN0KGZtdCwgbmV3IExvbmcodmFsdWUpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgX3Rlc3QoTnVtYmVyRm9ybWF0IGZtdCwgTnVtYmVyIHZhbHVlKSB7CisgICAgICAgIGxvZ2xuKCJ0ZXN0IGRhdGEgPSAiICsgdmFsdWUpOworICAgICAgICBmbXQuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDk5OSk7CisgICAgICAgIFN0cmluZyBzLCBzMjsKKyAgICAgICAgaWYgKHZhbHVlLmdldENsYXNzKCkuZ2V0TmFtZSgpLmVxdWFsc0lnbm9yZUNhc2UoImphdmEubGFuZy5Eb3VibGUiKSkKKyAgICAgICAgICAgIHMgPSBmbXQuZm9ybWF0KHZhbHVlLmRvdWJsZVZhbHVlKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzID0gZm10LmZvcm1hdCh2YWx1ZS5sb25nVmFsdWUoKSk7CisgICAgCisgICAgICAgIE51bWJlciBuID0gbmV3IERvdWJsZSgwKTsKKyAgICAgICAgYm9vbGVhbiBzaG93ID0gdmVyYm9zZTsKKyAgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgICAgbG9nbG4oCisgICAgICAgICAgICAvKnZhbHVlLmdldFN0cmluZyh0ZW1wKSArKi8gIiBGPiAiICsgcyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuID0gZm10LnBhcnNlKHMpOworICAgICAgICB9IGNhdGNoIChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChERUJVRykKKyAgICAgICAgICAgIGxvZ2xuKHMgKyAiIFA+ICIgLyorIG4uZ2V0U3RyaW5nKHRlbXApKi8pOworICAgIAorICAgICAgICBpZiAodmFsdWUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkuZXF1YWxzSWdub3JlQ2FzZSgiamF2YS5sYW5nLkRvdWJsZSIpKQorICAgICAgICAgICAgczIgPSBmbXQuZm9ybWF0KG4uZG91YmxlVmFsdWUoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHMyID0gZm10LmZvcm1hdChuLmxvbmdWYWx1ZSgpKTsKKyAgICAKKyAgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgICAgbG9nbG4oLypuLmdldFN0cmluZyh0ZW1wKSArKi8gIiBGPiAiICsgczIpOworICAgIAorICAgICAgICBpZiAoU1RSSU5HX0NPTVBBUkUpIHsKKyAgICAgICAgICAgIGlmICghcy5lcXVhbHMoczIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIioqKiBTVFJJTkcgRVJST1IgXCIiICsgcyArICJcIiAhPSBcIiIgKyBzMiArICJcIiIpOworICAgICAgICAgICAgICAgIHNob3cgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChFWEFDVF9OVU1FUklDX0NPTVBBUkUpIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBuKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIioqKiBOVU1FUklDIEVSUk9SIik7CisgICAgICAgICAgICAgICAgc2hvdyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBDb21wdXRlIHByb3BvcnRpb25hbCBlcnJvcgorICAgICAgICAgICAgZG91YmxlIGVycm9yID0gcHJvcG9ydGlvbmFsRXJyb3IodmFsdWUsIG4pOworICAgIAorICAgICAgICAgICAgaWYgKGVycm9yID4gTUFYX0VSUk9SKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIioqKiBOVU1FUklDIEVSUk9SICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgc2hvdyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiAoZXJyb3IgPiBtYXhfbnVtZXJpY19lcnJvcikKKyAgICAgICAgICAgICAgICBtYXhfbnVtZXJpY19lcnJvciA9IGVycm9yOworICAgICAgICAgICAgaWYgKGVycm9yIDwgbWluX251bWVyaWNfZXJyb3IpCisgICAgICAgICAgICAgICAgbWluX251bWVyaWNfZXJyb3IgPSBlcnJvcjsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoc2hvdykKKyAgICAgICAgICAgIGxvZ2xuKAorICAgICAgICAgICAgLyp2YWx1ZS5nZXRTdHJpbmcodGVtcCkgKyovIHZhbHVlLmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiBGPiAiICsgcyArICIgUD4gIiArCisgICAgICAgICAgICAvKm4uZ2V0U3RyaW5nKHRlbXApICsqLyBuLmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiBGPiAiICsgczIpOworICAgIAorICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIGRvdWJsZSBwcm9wb3J0aW9uYWxFcnJvcihOdW1iZXIgYSwgTnVtYmVyIGIpIHsKKyAgICAgICAgZG91YmxlIGFhLGJiOworICAgICAgICAKKyAgICAgICAgaWYoYS5nZXRDbGFzcygpLmdldE5hbWUoKS5lcXVhbHNJZ25vcmVDYXNlKCJqYXZhLmxhbmcuRG91YmxlIikpCisgICAgICAgICAgICBhYSA9IGEuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYWEgPSBhLmxvbmdWYWx1ZSgpOworICAgIAorICAgICAgICBpZihhLmdldENsYXNzKCkuZ2V0TmFtZSgpLmVxdWFsc0lnbm9yZUNhc2UoImphdmEubGFuZy5Eb3VibGUiKSkKKyAgICAgICAgICAgIGJiID0gYi5kb3VibGVWYWx1ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBiYiA9IGIubG9uZ1ZhbHVlKCk7CisgICAgCisgICAgICAgIGRvdWJsZSBlcnJvciA9IGFhIC0gYmI7CisgICAgICAgIGlmKGFhICE9IDAgJiYgYmIgIT0gMCkgCisgICAgICAgICAgICBlcnJvciAvPSBhYTsKKyAgICAgICAgICAgCisgICAgICAgIHJldHVybiBNYXRoLmFicyhlcnJvcik7CisgICAgfSAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYzZDdhNDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L051bWJlckZvcm1hdFNlcmlhbFRlc3REYXRhLmphdmEKQEAgLTAsMCArMSwzMDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitwdWJsaWMgY2xhc3MgTnVtYmVyRm9ybWF0U2VyaWFsVGVzdERhdGEgeworICAgIC8vZ2V0IENvbnRlbnQKKyAgICBwdWJsaWMgc3RhdGljIGJ5dGVbXVtdIGdldENvbnRlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gY29udGVudDsKKyAgICB9CisKKyAgICAvL051bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpCisgICAgc3RhdGljIGJ5dGVbXSBnZW5lcmFsSW5zdGFuY2UgPSBuZXcgYnl0ZVtdeyAKKyAgICAgICAgLTg0LCAtMTksIDAsIDUsIDExNSwgMTE0LCAwLCAzMCwgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgCisgICAgICAgIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDExLCAtMSwgCisgICAgICAgIDMsIDk4LCAtNDAsIDExNCwgNDgsIDU4LCAyLCAwLCAyMiwgOTAsIDAsIDI3LCAxMDAsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA4MywgCisgICAgICAgIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjUsIDEwOCwgMTE5LCA5NywgMTIxLCAxMTUsIDgzLCAxMDQsIDExMSwgMTE5LCAxMTAsIDkwLCAKKyAgICAgICAgMCwgMjMsIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCA4MywgMTA1LCAxMDMsIDExMCwgNjUsIDEwOCwgMTE5LCA5NywgMTIxLCAxMTUsIAorICAgICAgICA4MywgMTA0LCAxMTEsIDExOSwgMTEwLCA3MywgMCwgMTEsIDEwMiwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgODcsIDEwNSwgMTAwLCAxMTYsIDEwNCwgNjYsIAorICAgICAgICAwLCAxMiwgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDgzLCAxMDUsIDEyMiwgMTAxLCA2NiwgMCwgMTMsIDEwMywgMTE0LCAxMTEsIAorICAgICAgICAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODMsIDEwNSwgMTIyLCAxMDEsIDUwLCA2NiwgMCwgMTcsIDEwOSwgMTA1LCAxMTAsIDY5LCAxMjAsIDExMiwgMTExLCAKKyAgICAgICAgMTEwLCAxMDEsIDExMCwgMTE2LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAxMCwgMTA5LCAxMTcsIDEwOCwgMTE2LCAxMDUsIDExMiwgMTA4LCAKKyAgICAgICAgMTA1LCAxMDEsIDExNCwgNjcsIDAsIDMsIDExMiwgOTcsIDEwMCwgNzMsIDAsIDExLCAxMTIsIDk3LCAxMDAsIDgwLCAxMTEsIDExNSwgMTA1LCAxMTYsIAorICAgICAgICAxMDUsIDExMSwgMTEwLCA3MywgMCwgMTIsIDExNCwgMTExLCAxMTcsIDExMCwgMTAwLCAxMDUsIDExMCwgMTAzLCA3NywgMTExLCAxMDAsIDEwMSwgNzMsIDAsIAorICAgICAgICAyMSwgMTE1LCAxMDEsIDExNCwgMTA1LCA5NywgMTA4LCA4NiwgMTAxLCAxMTQsIDExNSwgMTA1LCAxMTEsIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIAorICAgICAgICA5NywgMTA5LCA5MCwgMCwgMjIsIDExNywgMTE1LCAxMDEsIDY5LCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgMTEwLCAxMTYsIDEwNSwgOTcsIDEwOCwgNzgsIAorICAgICAgICAxMTEsIDExNiwgOTcsIDExNiwgMTA1LCAxMTEsIDExMCwgNzYsIDAsIDE2LCAxMTAsIDEwMSwgMTAzLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIDgwLCAKKyAgICAgICAgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTYsIDAsIDE4LCA3NiwgMTA2LCA5NywgMTE4LCA5NywgNDcsIDEwOCwgOTcsIDExMCwgMTAzLCA0NywgCisgICAgICAgIDgzLCAxMTYsIDExNCwgMTA1LCAxMTAsIDEwMywgNTksIDc2LCAwLCAxNiwgMTEwLCAxMDEsIDEwMywgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCA4MCwgCisgICAgICAgIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEwLCAxMDEsIDEwMywgOTcsIDExNiwgMTA1LCAKKyAgICAgICAgMTE4LCAxMDEsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEwLCAxMDEsIDEwMywgOTcsIAorICAgICAgICAxMTYsIDEwNSwgMTE4LCAxMDEsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNiwgMTEyLCAxMTEsIAorICAgICAgICAxMTUsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgODAsIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAKKyAgICAgICAgMCwgMTYsIDExMiwgMTExLCAxMTUsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgODAsIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAKKyAgICAgICAgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMiwgMTExLCAxMTUsIDEwNSwgMTE2LCAxMDUsIDExOCwgMTAxLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIAorICAgICAgICAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTIsIDExMSwgMTE1LCAxMDUsIDExNiwgMTA1LCAxMTgsIDEwMSwgODMsIDExNywgMTAyLCAxMDIsIAorICAgICAgICAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNywgMTE0LCAxMTEsIDExNywgMTEwLCAxMDAsIDEwNSwgMTEwLCAxMDMsIDczLCAxMTAsIAorICAgICAgICA5OSwgMTE0LCAxMDEsIDEwOSwgMTAxLCAxMTAsIDExNiwgMTE2LCAwLCAyMiwgNzYsIDEwNiwgOTcsIDExOCwgOTcsIDQ3LCAxMDksIDk3LCAxMTYsIDEwNCwgCisgICAgICAgIDQ3LCA2NiwgMTA1LCAxMDMsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNTksIDc2LCAwLCA3LCAxMTUsIDEyMSwgMTA5LCA5OCwgMTExLCAKKyAgICAgICAgMTA4LCAxMTUsIDExNiwgMCwgMzksIDc2LCA5OSwgMTExLCAxMDksIDQ3LCAxMDUsIDk4LCAxMDksIDQ3LCAxMDUsIDk5LCAxMTcsIDQ3LCAxMTYsIDEwMSwgCisgICAgICAgIDEyMCwgMTE2LCA0NywgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgODMsIDEyMSwgMTA5LCA5OCwgCisgICAgICAgIDExMSwgMTA4LCAxMTUsIDU5LCAxMjAsIDExNCwgMCwgMjksIDk5LCAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIAorICAgICAgICAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA3OCwgMTE3LCAxMDksIDk4LCAxMDEsIDExNCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIC0zMywgLTEwLCAtNzcsIAorICAgICAgICAtNjUsIDE5LCAxMjUsIDcsIC0yNCwgMywgMCwgMTEsIDkwLCAwLCAxMiwgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDg1LCAKKyAgICAgICAgMTE1LCAxMDEsIDEwMCwgNjYsIDAsIDE3LCAxMDksIDk3LCAxMjAsIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIAorICAgICAgICAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTYsIDEwOSwgOTcsIDEyMCwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAKKyAgICAgICAgMTE2LCAxMTUsIDczLCAwLCAyMSwgMTA5LCA5NywgMTIwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCAKKyAgICAgICAgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjAsIDEwOSwgOTcsIDEyMCwgMTA1LCAxMDksIDExNywgMTA5LCA3MywgMTEwLCAxMTYsIDEwMSwgCisgICAgICAgIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE3LCAxMDksIDEwNSwgMTEwLCA3MCwgMTE0LCA5NywgOTksIDExNiwgCisgICAgICAgIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE2LCAxMDksIDEwNSwgMTEwLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAKKyAgICAgICAgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDIxLCAxMDksIDEwNSwgMTEwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDcwLCAxMTQsIAorICAgICAgICA5NywgOTksIDExNiwgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjAsIDEwOSwgMTA1LCAxMTAsIDEwNSwgMTA5LCAKKyAgICAgICAgMTE3LCAxMDksIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDkwLCAwLCAxNiwgMTEyLCA5NywgCisgICAgICAgIDExNCwgMTE1LCAxMDEsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA3OSwgMTEwLCAxMDgsIDEyMSwgNzMsIDAsIDIxLCAxMTUsIDEwMSwgMTE0LCAKKyAgICAgICAgMTA1LCA5NywgMTA4LCA4NiwgMTAxLCAxMTQsIDExNSwgMTA1LCAxMTEsIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIDk3LCAxMDksIDEyMCwgMTE0LCAKKyAgICAgICAgMCwgMTYsIDEwNiwgOTcsIDExOCwgOTcsIDQ2LCAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgLTUsIC00MCwgCisgICAgICAgIC02OCwgMTgsIC0yMywgMTUsIDI0LCA2NywgMiwgMCwgMCwgMTIwLCAxMTIsIDEsIDMsIDEyNywgMCwgMCwgMCwgMywgMCwgMCwgCisgICAgICAgIDEsIDUzLCAwLCAxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAxMjAsIDAsIDAsIAorICAgICAgICAwLCAwLCAwLCAwLCAzLCAwLCAwLCAwLCAwLCAwLCAxLCAwLCAzMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgICAgIDYsIDAsIDAsIDAsIDIsIDAsIDExNiwgMCwgMSwgNDUsIDExNiwgMCwgMCwgMTE2LCAwLCAxLCA0NSwgMTE2LCAwLCAwLCAKKyAgICAgICAgMTE2LCAwLCAwLCAxMTYsIDAsIDAsIDExNiwgMCwgMCwgMTE2LCAwLCAwLCAxMTIsIDExNSwgMTE0LCAwLCAzNywgOTksIDExMSwgMTA5LCAKKyAgICAgICAgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIAorICAgICAgICAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTE1LCA4MCwgMjksIDIzLCAtMTAzLCA4LCAxMDQsIAorICAgICAgICAtMTA5LCAtMTAwLCAyLCAwLCAxOCwgNjcsIDAsIDE2LCAxMDAsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIAorICAgICAgICA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDUsIDEwMCwgMTA1LCAxMDMsIDEwNSwgMTE2LCA2NywgMCwgMTEsIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAKKyAgICAgICAgMTAxLCAxMTAsIDExNiwgMTA1LCA5NywgMTA4LCA2NywgMCwgMTcsIDEwMywgMTE0LCAxMTEsIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgMTAxLCAxMTIsIAorICAgICAgICA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDksIDEwOSwgMTA1LCAxMTAsIDExNywgMTE1LCA4MywgMTA1LCAxMDMsIDExMCwgNjcsIDAsIAorICAgICAgICAxNywgMTA5LCAxMTEsIDExMCwgMTAxLCAxMTYsIDk3LCAxMTQsIDEyMSwgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIAorICAgICAgICA5LCAxMTIsIDk3LCAxMDAsIDY5LCAxMTUsIDk5LCA5NywgMTEyLCAxMDEsIDY3LCAwLCAxNiwgMTEyLCA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIAorICAgICAgICA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNywgMTEyLCAxMDEsIDExNCwgNzcsIDEwNSwgMTA4LCAxMDgsIDY3LCAKKyAgICAgICAgMCwgNywgMTEyLCAxMDEsIDExNCwgOTksIDEwMSwgMTEwLCAxMTYsIDY3LCAwLCA4LCAxMTIsIDEwOCwgMTE3LCAxMTUsIDgzLCAxMDUsIDEwMywgMTEwLCAKKyAgICAgICAgNzMsIDAsIDIxLCAxMTUsIDEwMSwgMTE0LCAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAKKyAgICAgICAgMTE0LCAxMDEsIDk3LCAxMDksIDY3LCAwLCA5LCAxMjIsIDEwMSwgMTE0LCAxMTEsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDc2LCAwLCAzLCA3OCwgCisgICAgICAgIDk3LCA3OCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgOTksIDExNywgMTE0LCAxMTQsIDEwMSwgMTEwLCA5OSwgMTIxLCA4MywgMTIxLCAKKyAgICAgICAgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTcsIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCAKKyAgICAgICAgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCA4LCAxMDUsIDExMCwgMTAyLCAKKyAgICAgICAgMTA1LCAxMTAsIDEwNSwgMTE2LCAxMjEsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTgsIDEwNSwgMTEwLCAxMTYsIDEwOCwgNjcsIDExNywgMTE0LCAKKyAgICAgICAgMTE0LCAxMDEsIDExMCwgOTksIDEyMSwgODMsIDEyMSwgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgMCwgMTI2LCAwLCAxLCAxMjAsIDExMiwgMCwgNDYsIAorICAgICAgICAwLCAzNSwgMCwgMCwgMCwgNDQsIDAsIDQ1LCAwLCA0NiwgMCwgNDIsIDAsIDU5LCAzMiwgNDgsIDAsIDM3LCAwLCA0MywgCisgICAgICAgIDAsIDAsIDAsIDIsIDAsIDQ4LCAxMTYsIDAsIDMsIC0xNywgLTY1LCAtNjcsIDExNiwgMCwgMSwgMzYsIDExNiwgMCwgMSwgNjksIAorICAgICAgICAxMTYsIDAsIDMsIC0zMCwgLTEyMCwgLTk4LCAxMTYsIDAsIDMsIDg1LCA4MywgNjgsIAorICAgIH07CisKKyAgICAvL051bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5VUykKKyAgICBzdGF0aWMgYnl0ZVtdIGN1cnJlbmN5SW5zdGFuY2UgPSBuZXcgYnl0ZVtdeyAKKyAgICAgICAgLTg0LCAtMTksIDAsIDUsIDExNSwgMTE0LCAwLCAzMCwgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgCisgICAgICAgIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDExLCAtMSwgCisgICAgICAgIDMsIDk4LCAtNDAsIDExNCwgNDgsIDU4LCAyLCAwLCAyMiwgOTAsIDAsIDI3LCAxMDAsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA4MywgCisgICAgICAgIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjUsIDEwOCwgMTE5LCA5NywgMTIxLCAxMTUsIDgzLCAxMDQsIDExMSwgMTE5LCAxMTAsIDkwLCAKKyAgICAgICAgMCwgMjMsIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCA4MywgMTA1LCAxMDMsIDExMCwgNjUsIDEwOCwgMTE5LCA5NywgMTIxLCAxMTUsIAorICAgICAgICA4MywgMTA0LCAxMTEsIDExOSwgMTEwLCA3MywgMCwgMTEsIDEwMiwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgODcsIDEwNSwgMTAwLCAxMTYsIDEwNCwgNjYsIAorICAgICAgICAwLCAxMiwgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDgzLCAxMDUsIDEyMiwgMTAxLCA2NiwgMCwgMTMsIDEwMywgMTE0LCAxMTEsIAorICAgICAgICAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODMsIDEwNSwgMTIyLCAxMDEsIDUwLCA2NiwgMCwgMTcsIDEwOSwgMTA1LCAxMTAsIDY5LCAxMjAsIDExMiwgMTExLCAKKyAgICAgICAgMTEwLCAxMDEsIDExMCwgMTE2LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAxMCwgMTA5LCAxMTcsIDEwOCwgMTE2LCAxMDUsIDExMiwgMTA4LCAKKyAgICAgICAgMTA1LCAxMDEsIDExNCwgNjcsIDAsIDMsIDExMiwgOTcsIDEwMCwgNzMsIDAsIDExLCAxMTIsIDk3LCAxMDAsIDgwLCAxMTEsIDExNSwgMTA1LCAxMTYsIAorICAgICAgICAxMDUsIDExMSwgMTEwLCA3MywgMCwgMTIsIDExNCwgMTExLCAxMTcsIDExMCwgMTAwLCAxMDUsIDExMCwgMTAzLCA3NywgMTExLCAxMDAsIDEwMSwgNzMsIDAsIAorICAgICAgICAyMSwgMTE1LCAxMDEsIDExNCwgMTA1LCA5NywgMTA4LCA4NiwgMTAxLCAxMTQsIDExNSwgMTA1LCAxMTEsIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIAorICAgICAgICA5NywgMTA5LCA5MCwgMCwgMjIsIDExNywgMTE1LCAxMDEsIDY5LCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgMTEwLCAxMTYsIDEwNSwgOTcsIDEwOCwgNzgsIAorICAgICAgICAxMTEsIDExNiwgOTcsIDExNiwgMTA1LCAxMTEsIDExMCwgNzYsIDAsIDE2LCAxMTAsIDEwMSwgMTAzLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIDgwLCAKKyAgICAgICAgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTYsIDAsIDE4LCA3NiwgMTA2LCA5NywgMTE4LCA5NywgNDcsIDEwOCwgOTcsIDExMCwgMTAzLCA0NywgCisgICAgICAgIDgzLCAxMTYsIDExNCwgMTA1LCAxMTAsIDEwMywgNTksIDc2LCAwLCAxNiwgMTEwLCAxMDEsIDEwMywgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCA4MCwgCisgICAgICAgIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEwLCAxMDEsIDEwMywgOTcsIDExNiwgMTA1LCAKKyAgICAgICAgMTE4LCAxMDEsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEwLCAxMDEsIDEwMywgOTcsIAorICAgICAgICAxMTYsIDEwNSwgMTE4LCAxMDEsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNiwgMTEyLCAxMTEsIAorICAgICAgICAxMTUsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgODAsIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAKKyAgICAgICAgMCwgMTYsIDExMiwgMTExLCAxMTUsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgODAsIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTEzLCAwLCAKKyAgICAgICAgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMiwgMTExLCAxMTUsIDEwNSwgMTE2LCAxMDUsIDExOCwgMTAxLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIAorICAgICAgICAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTIsIDExMSwgMTE1LCAxMDUsIDExNiwgMTA1LCAxMTgsIDEwMSwgODMsIDExNywgMTAyLCAxMDIsIAorICAgICAgICAxMDUsIDEyMCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNywgMTE0LCAxMTEsIDExNywgMTEwLCAxMDAsIDEwNSwgMTEwLCAxMDMsIDczLCAxMTAsIAorICAgICAgICA5OSwgMTE0LCAxMDEsIDEwOSwgMTAxLCAxMTAsIDExNiwgMTE2LCAwLCAyMiwgNzYsIDEwNiwgOTcsIDExOCwgOTcsIDQ3LCAxMDksIDk3LCAxMTYsIDEwNCwgCisgICAgICAgIDQ3LCA2NiwgMTA1LCAxMDMsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNTksIDc2LCAwLCA3LCAxMTUsIDEyMSwgMTA5LCA5OCwgMTExLCAKKyAgICAgICAgMTA4LCAxMTUsIDExNiwgMCwgMzksIDc2LCA5OSwgMTExLCAxMDksIDQ3LCAxMDUsIDk4LCAxMDksIDQ3LCAxMDUsIDk5LCAxMTcsIDQ3LCAxMTYsIDEwMSwgCisgICAgICAgIDEyMCwgMTE2LCA0NywgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgODMsIDEyMSwgMTA5LCA5OCwgCisgICAgICAgIDExMSwgMTA4LCAxMTUsIDU5LCAxMjAsIDExNCwgMCwgMjksIDk5LCAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIAorICAgICAgICAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA3OCwgMTE3LCAxMDksIDk4LCAxMDEsIDExNCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIC0zMywgLTEwLCAtNzcsIAorICAgICAgICAtNjUsIDE5LCAxMjUsIDcsIC0yNCwgMywgMCwgMTEsIDkwLCAwLCAxMiwgMTAzLCAxMTQsIDExMSwgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDg1LCAKKyAgICAgICAgMTE1LCAxMDEsIDEwMCwgNjYsIDAsIDE3LCAxMDksIDk3LCAxMjAsIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIAorICAgICAgICAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTYsIDEwOSwgOTcsIDEyMCwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAKKyAgICAgICAgMTE2LCAxMTUsIDczLCAwLCAyMSwgMTA5LCA5NywgMTIwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCAKKyAgICAgICAgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjAsIDEwOSwgOTcsIDEyMCwgMTA1LCAxMDksIDExNywgMTA5LCA3MywgMTEwLCAxMTYsIDEwMSwgCisgICAgICAgIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE3LCAxMDksIDEwNSwgMTEwLCA3MCwgMTE0LCA5NywgOTksIDExNiwgCisgICAgICAgIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE2LCAxMDksIDEwNSwgMTEwLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAKKyAgICAgICAgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDIxLCAxMDksIDEwNSwgMTEwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDcwLCAxMTQsIAorICAgICAgICA5NywgOTksIDExNiwgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjAsIDEwOSwgMTA1LCAxMTAsIDEwNSwgMTA5LCAKKyAgICAgICAgMTE3LCAxMDksIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDkwLCAwLCAxNiwgMTEyLCA5NywgCisgICAgICAgIDExNCwgMTE1LCAxMDEsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA3OSwgMTEwLCAxMDgsIDEyMSwgNzMsIDAsIDIxLCAxMTUsIDEwMSwgMTE0LCAKKyAgICAgICAgMTA1LCA5NywgMTA4LCA4NiwgMTAxLCAxMTQsIDExNSwgMTA1LCAxMTEsIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIDk3LCAxMDksIDEyMCwgMTE0LCAKKyAgICAgICAgMCwgMTYsIDEwNiwgOTcsIDExOCwgOTcsIDQ2LCAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgLTUsIC00MCwgCisgICAgICAgIC02OCwgMTgsIC0yMywgMTUsIDI0LCA2NywgMiwgMCwgMCwgMTIwLCAxMTIsIDEsIDIsIDEyNywgMCwgMCwgMCwgMiwgMCwgMCwgCisgICAgICAgIDEsIDUzLCAyLCAxLCAwLCAwLCAwLCAyLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAxMjAsIDAsIDAsIAorICAgICAgICAwLCAwLCAwLCAwLCAzLCAwLCAwLCAwLCAwLCAwLCAxLCAwLCAzMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgICAgIDYsIDAsIDAsIDAsIDIsIDAsIDExNiwgMCwgMywgNDAsIC02MiwgLTkyLCAxMTYsIDAsIDEsIDQxLCAxMTYsIDAsIDIsIDQwLCAKKyAgICAgICAgMzYsIDExNiwgMCwgMSwgNDEsIDExNiwgMCwgMiwgLTYyLCAtOTIsIDExNiwgMCwgMCwgMTE2LCAwLCAxLCAzNiwgMTE2LCAwLCAwLCAKKyAgICAgICAgMTEyLCAxMTUsIDExNCwgMCwgMzcsIDk5LCAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIDExNiwgMTAxLCAxMjAsIAorICAgICAgICAxMTYsIDQ2LCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIAorICAgICAgICAxMDgsIDExNSwgODAsIDI5LCAyMywgLTEwMywgOCwgMTA0LCAtMTA5LCAtMTAwLCAyLCAwLCAxOCwgNjcsIDAsIDE2LCAxMDAsIDEwMSwgOTksIDEwNSwgCisgICAgICAgIDEwOSwgOTcsIDEwOCwgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDUsIDEwMCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAKKyAgICAgICAgNjcsIDAsIDExLCAxMDEsIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgMTA1LCA5NywgMTA4LCA2NywgMCwgMTcsIDEwMywgMTE0LCAxMTEsIAorICAgICAgICAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDksIDEwOSwgMTA1LCAxMTAsIAorICAgICAgICAxMTcsIDExNSwgODMsIDEwNSwgMTAzLCAxMTAsIDY3LCAwLCAxNywgMTA5LCAxMTEsIDExMCwgMTAxLCAxMTYsIDk3LCAxMTQsIDEyMSwgODMsIDEwMSwgMTEyLCAKKyAgICAgICAgOTcsIDExNCwgOTcsIDExNiwgMTExLCAxMTQsIDY3LCAwLCA5LCAxMTIsIDk3LCAxMDAsIDY5LCAxMTUsIDk5LCA5NywgMTEyLCAxMDEsIDY3LCAwLCAKKyAgICAgICAgMTYsIDExMiwgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNywgCisgICAgICAgIDExMiwgMTAxLCAxMTQsIDc3LCAxMDUsIDEwOCwgMTA4LCA2NywgMCwgNywgMTEyLCAxMDEsIDExNCwgOTksIDEwMSwgMTEwLCAxMTYsIDY3LCAwLCA4LCAKKyAgICAgICAgMTEyLCAxMDgsIDExNywgMTE1LCA4MywgMTA1LCAxMDMsIDExMCwgNzMsIDAsIDIxLCAxMTUsIDEwMSwgMTE0LCAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgCisgICAgICAgIDExNSwgMTA1LCAxMTEsIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIDk3LCAxMDksIDY3LCAwLCA5LCAxMjIsIDEwMSwgMTE0LCAxMTEsIDY4LCAKKyAgICAgICAgMTA1LCAxMDMsIDEwNSwgMTE2LCA3NiwgMCwgMywgNzgsIDk3LCA3OCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgOTksIDExNywgCisgICAgICAgIDExNCwgMTE0LCAxMDEsIDExMCwgOTksIDEyMSwgODMsIDEyMSwgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTcsIAorICAgICAgICAxMDEsIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgMTEzLCAwLCAxMjYsIAorICAgICAgICAwLCAxLCA3NiwgMCwgOCwgMTA1LCAxMTAsIDEwMiwgMTA1LCAxMTAsIDEwNSwgMTE2LCAxMjEsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgCisgICAgICAgIDE4LCAxMDUsIDExMCwgMTE2LCAxMDgsIDY3LCAxMTcsIDExNCwgMTE0LCAxMDEsIDExMCwgOTksIDEyMSwgODMsIDEyMSwgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgCisgICAgICAgIDAsIDEyNiwgMCwgMSwgMTIwLCAxMTIsIDAsIDQ2LCAwLCAzNSwgMCwgMCwgMCwgNDQsIDAsIDQ1LCAwLCA0NiwgMCwgNDIsIAorICAgICAgICAwLCA1OSwgMzIsIDQ4LCAwLCAzNywgMCwgNDMsIDAsIDAsIDAsIDIsIDAsIDQ4LCAxMTYsIDAsIDMsIC0xNywgLTY1LCAtNjcsIAorICAgICAgICAxMTYsIDAsIDEsIDM2LCAxMTYsIDAsIDEsIDY5LCAxMTYsIDAsIDMsIC0zMCwgLTEyMCwgLTk4LCAxMTYsIDAsIDMsIDg1LCA4MywgNjgsIAorICAgICAgICAKKyAgICB9OworCisgICAgLy9OdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5VUykKKyAgICBzdGF0aWMgYnl0ZVtdIHBlcmNlbnRJbnN0YW5jZSA9IG5ldyBieXRlW117IAorICAgICAgICAtODQsIC0xOSwgMCwgNSwgMTE1LCAxMTQsIDAsIDMwLCA5OSwgMTExLCAxMDksIDQ2LCAxMDUsIDk4LCAxMDksIDQ2LCAxMDUsIDk5LCAxMTcsIDQ2LCAKKyAgICAgICAgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgMTEsIC0xLCAKKyAgICAgICAgMywgOTgsIC00MCwgMTE0LCA0OCwgNTgsIDIsIDAsIDIyLCA5MCwgMCwgMjcsIDEwMCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDgzLCAKKyAgICAgICAgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NSwgMTA4LCAxMTksIDk3LCAxMjEsIDExNSwgODMsIDEwNCwgMTExLCAxMTksIDExMCwgOTAsIAorICAgICAgICAwLCAyMywgMTAxLCAxMjAsIDExMiwgMTExLCAxMTAsIDEwMSwgMTEwLCAxMTYsIDgzLCAxMDUsIDEwMywgMTEwLCA2NSwgMTA4LCAxMTksIDk3LCAxMjEsIDExNSwgCisgICAgICAgIDgzLCAxMDQsIDExMSwgMTE5LCAxMTAsIDczLCAwLCAxMSwgMTAyLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4NywgMTA1LCAxMDAsIDExNiwgMTA0LCA2NiwgCisgICAgICAgIDAsIDEyLCAxMDMsIDExNCwgMTExLCAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODMsIDEwNSwgMTIyLCAxMDEsIDY2LCAwLCAxMywgMTAzLCAxMTQsIDExMSwgCisgICAgICAgIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgMTA1LCAxMjIsIDEwMSwgNTAsIDY2LCAwLCAxNywgMTA5LCAxMDUsIDExMCwgNjksIDEyMCwgMTEyLCAxMTEsIAorICAgICAgICAxMTAsIDEwMSwgMTEwLCAxMTYsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDEwLCAxMDksIDExNywgMTA4LCAxMTYsIDEwNSwgMTEyLCAxMDgsIAorICAgICAgICAxMDUsIDEwMSwgMTE0LCA2NywgMCwgMywgMTEyLCA5NywgMTAwLCA3MywgMCwgMTEsIDExMiwgOTcsIDEwMCwgODAsIDExMSwgMTE1LCAxMDUsIDExNiwgCisgICAgICAgIDEwNSwgMTExLCAxMTAsIDczLCAwLCAxMiwgMTE0LCAxMTEsIDExNywgMTEwLCAxMDAsIDEwNSwgMTEwLCAxMDMsIDc3LCAxMTEsIDEwMCwgMTAxLCA3MywgMCwgCisgICAgICAgIDIxLCAxMTUsIDEwMSwgMTE0LCAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgCisgICAgICAgIDk3LCAxMDksIDkwLCAwLCAyMiwgMTE3LCAxMTUsIDEwMSwgNjksIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgMTA1LCA5NywgMTA4LCA3OCwgCisgICAgICAgIDExMSwgMTE2LCA5NywgMTE2LCAxMDUsIDExMSwgMTEwLCA3NiwgMCwgMTYsIDExMCwgMTAxLCAxMDMsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgODAsIAorICAgICAgICA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExNiwgMCwgMTgsIDc2LCAxMDYsIDk3LCAxMTgsIDk3LCA0NywgMTA4LCA5NywgMTEwLCAxMDMsIDQ3LCAKKyAgICAgICAgODMsIDExNiwgMTE0LCAxMDUsIDExMCwgMTAzLCA1OSwgNzYsIDAsIDE2LCAxMTAsIDEwMSwgMTAzLCA4MywgMTE3LCAxMDIsIDEwMiwgMTA1LCAxMjAsIDgwLCAKKyAgICAgICAgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTAsIDEwMSwgMTAzLCA5NywgMTE2LCAxMDUsIAorICAgICAgICAxMTgsIDEwMSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTAsIDEwMSwgMTAzLCA5NywgCisgICAgICAgIDExNiwgMTA1LCAxMTgsIDEwMSwgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE2LCAxMTIsIDExMSwgCisgICAgICAgIDExNSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCA4MCwgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIAorICAgICAgICAwLCAxNiwgMTEyLCAxMTEsIDExNSwgODMsIDExNywgMTAyLCAxMDIsIDEwNSwgMTIwLCA4MCwgOTcsIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCAxMTMsIDAsIAorICAgICAgICAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEyLCAxMTEsIDExNSwgMTA1LCAxMTYsIDEwNSwgMTE4LCAxMDEsIDgwLCAxMTQsIDEwMSwgMTAyLCAxMDUsIDEyMCwgCisgICAgICAgIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMiwgMTExLCAxMTUsIDEwNSwgMTE2LCAxMDUsIDExOCwgMTAxLCA4MywgMTE3LCAxMDIsIDEwMiwgCisgICAgICAgIDEwNSwgMTIwLCAxMTMsIDAsIDEyNiwgMCwgMSwgNzYsIDAsIDE3LCAxMTQsIDExMSwgMTE3LCAxMTAsIDEwMCwgMTA1LCAxMTAsIDEwMywgNzMsIDExMCwgCisgICAgICAgIDk5LCAxMTQsIDEwMSwgMTA5LCAxMDEsIDExMCwgMTE2LCAxMTYsIDAsIDIyLCA3NiwgMTA2LCA5NywgMTE4LCA5NywgNDcsIDEwOSwgOTcsIDExNiwgMTA0LCAKKyAgICAgICAgNDcsIDY2LCAxMDUsIDEwMywgNjgsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA1OSwgNzYsIDAsIDcsIDExNSwgMTIxLCAxMDksIDk4LCAxMTEsIAorICAgICAgICAxMDgsIDExNSwgMTE2LCAwLCAzOSwgNzYsIDk5LCAxMTEsIDEwOSwgNDcsIDEwNSwgOTgsIDEwOSwgNDcsIDEwNSwgOTksIDExNywgNDcsIDExNiwgMTAxLCAKKyAgICAgICAgMTIwLCAxMTYsIDQ3LCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4MywgMTIxLCAxMDksIDk4LCAKKyAgICAgICAgMTExLCAxMDgsIDExNSwgNTksIDEyMCwgMTE0LCAwLCAyOSwgOTksIDExMSwgMTA5LCA0NiwgMTA1LCA5OCwgMTA5LCA0NiwgMTA1LCA5OSwgMTE3LCA0NiwgCisgICAgICAgIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDc4LCAxMTcsIDEwOSwgOTgsIDEwMSwgMTE0LCA3MCwgMTExLCAxMTQsIDEwOSwgOTcsIDExNiwgLTMzLCAtMTAsIC03NywgCisgICAgICAgIC02NSwgMTksIDEyNSwgNywgLTI0LCAzLCAwLCAxMSwgOTAsIDAsIDEyLCAxMDMsIDExNCwgMTExLCAxMTcsIDExMiwgMTA1LCAxMTAsIDEwMywgODUsIAorICAgICAgICAxMTUsIDEwMSwgMTAwLCA2NiwgMCwgMTcsIDEwOSwgOTcsIDEyMCwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgCisgICAgICAgIDEwNSwgMTE2LCAxMTUsIDY2LCAwLCAxNiwgMTA5LCA5NywgMTIwLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIAorICAgICAgICAxMTYsIDExNSwgNzMsIDAsIDIxLCAxMDksIDk3LCAxMjAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIAorICAgICAgICA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMCwgMTA5LCA5NywgMTIwLCAxMDUsIDEwOSwgMTE3LCAxMDksIDczLCAxMTAsIDExNiwgMTAxLCAKKyAgICAgICAgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTcsIDEwOSwgMTA1LCAxMTAsIDcwLCAxMTQsIDk3LCA5OSwgMTE2LCAKKyAgICAgICAgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA2NiwgMCwgMTYsIDEwOSwgMTA1LCAxMTAsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIAorICAgICAgICAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMjEsIDEwOSwgMTA1LCAxMTAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzAsIDExNCwgCisgICAgICAgIDk3LCA5OSwgMTE2LCAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMCwgMTA5LCAxMDUsIDExMCwgMTA1LCAxMDksIAorICAgICAgICAxMTcsIDEwOSwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgOTAsIDAsIDE2LCAxMTIsIDk3LCAKKyAgICAgICAgMTE0LCAxMTUsIDEwMSwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgMTAxLCAxMTQsIDc5LCAxMTAsIDEwOCwgMTIxLCA3MywgMCwgMjEsIDExNSwgMTAxLCAxMTQsIAorICAgICAgICAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCA4MywgMTE2LCAxMTQsIDEwMSwgOTcsIDEwOSwgMTIwLCAxMTQsIAorICAgICAgICAwLCAxNiwgMTA2LCA5NywgMTE4LCA5NywgNDYsIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCAtNSwgLTQwLCAKKyAgICAgICAgLTY4LCAxOCwgLTIzLCAxNSwgMjQsIDY3LCAyLCAwLCAwLCAxMjAsIDExMiwgMSwgMCwgMTI3LCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAgICAgMSwgNTMsIDAsIDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEsIDEyMCwgMCwgMCwgCisgICAgICAgIDAsIDAsIDAsIDAsIDMsIDAsIDAsIDAsIDAsIDAsIDEwMCwgMCwgMzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgICAgICA2LCAwLCAwLCAwLCAyLCAwLCAxMTYsIDAsIDEsIDQ1LCAxMTYsIDAsIDEsIDM3LCAxMTYsIDAsIDEsIDQ1LCAxMTYsIDAsIAorICAgICAgICAxLCAzNywgMTE2LCAwLCAwLCAxMTMsIDAsIDEyNiwgMCwgOCwgMTE2LCAwLCAwLCAxMTYsIDAsIDEsIDM3LCAxMTIsIDExNSwgMTE0LCAKKyAgICAgICAgMCwgMzcsIDk5LCAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDY4LCAKKyAgICAgICAgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTE1LCA4MCwgCisgICAgICAgIDI5LCAyMywgLTEwMywgOCwgMTA0LCAtMTA5LCAtMTAwLCAyLCAwLCAxOCwgNjcsIDAsIDE2LCAxMDAsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCAKKyAgICAgICAgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDUsIDEwMCwgMTA1LCAxMDMsIDEwNSwgMTE2LCA2NywgMCwgMTEsIAorICAgICAgICAxMDEsIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgMTA1LCA5NywgMTA4LCA2NywgMCwgMTcsIDEwMywgMTE0LCAxMTEsIDExNywgMTEyLCAxMDUsIAorICAgICAgICAxMTAsIDEwMywgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDksIDEwOSwgMTA1LCAxMTAsIDExNywgMTE1LCA4MywgCisgICAgICAgIDEwNSwgMTAzLCAxMTAsIDY3LCAwLCAxNywgMTA5LCAxMTEsIDExMCwgMTAxLCAxMTYsIDk3LCAxMTQsIDEyMSwgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgCisgICAgICAgIDExNiwgMTExLCAxMTQsIDY3LCAwLCA5LCAxMTIsIDk3LCAxMDAsIDY5LCAxMTUsIDk5LCA5NywgMTEyLCAxMDEsIDY3LCAwLCAxNiwgMTEyLCA5NywgCisgICAgICAgIDExNiwgMTE2LCAxMDEsIDExNCwgMTEwLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNywgMTEyLCAxMDEsIDExNCwgCisgICAgICAgIDc3LCAxMDUsIDEwOCwgMTA4LCA2NywgMCwgNywgMTEyLCAxMDEsIDExNCwgOTksIDEwMSwgMTEwLCAxMTYsIDY3LCAwLCA4LCAxMTIsIDEwOCwgMTE3LCAKKyAgICAgICAgMTE1LCA4MywgMTA1LCAxMDMsIDExMCwgNzMsIDAsIDIxLCAxMTUsIDEwMSwgMTE0LCAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgCisgICAgICAgIDExMCwgNzksIDExMCwgODMsIDExNiwgMTE0LCAxMDEsIDk3LCAxMDksIDY3LCAwLCA5LCAxMjIsIDEwMSwgMTE0LCAxMTEsIDY4LCAxMDUsIDEwMywgMTA1LCAKKyAgICAgICAgMTE2LCA3NiwgMCwgMywgNzgsIDk3LCA3OCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgOTksIDExNywgMTE0LCAxMTQsIDEwMSwgCisgICAgICAgIDExMCwgOTksIDEyMSwgODMsIDEyMSwgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTcsIDEwMSwgMTIwLCAxMTIsIAorICAgICAgICAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAKKyAgICAgICAgMCwgOCwgMTA1LCAxMTAsIDEwMiwgMTA1LCAxMTAsIDEwNSwgMTE2LCAxMjEsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTgsIDEwNSwgMTEwLCAKKyAgICAgICAgMTE2LCAxMDgsIDY3LCAxMTcsIDExNCwgMTE0LCAxMDEsIDExMCwgOTksIDEyMSwgODMsIDEyMSwgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgMCwgMTI2LCAwLCAKKyAgICAgICAgMSwgMTIwLCAxMTIsIDAsIDQ2LCAwLCAzNSwgMCwgMCwgMCwgNDQsIDAsIDQ1LCAwLCA0NiwgMCwgNDIsIDAsIDU5LCAzMiwgCisgICAgICAgIDQ4LCAwLCAzNywgMCwgNDMsIDAsIDAsIDAsIDIsIDAsIDQ4LCAxMTYsIDAsIDMsIC0xNywgLTY1LCAtNjcsIDExNiwgMCwgMSwgCisgICAgICAgIDM2LCAxMTYsIDAsIDEsIDY5LCAxMTYsIDAsIDMsIC0zMCwgLTEyMCwgLTk4LCAxMTYsIDAsIDMsIDg1LCA4MywgNjgsIAorICAgIH07CisKKyAgICAvL051bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLlVTKQorICAgIHN0YXRpYyBieXRlW10gc2NpZW50aWZpY0luc3RhbmNlID0gbmV3IGJ5dGVbXXsgCisgICAgICAgIC04NCwgLTE5LCAwLCA1LCAxMTUsIDExNCwgMCwgMzAsIDk5LCAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIAorICAgICAgICAxMTYsIDEwMSwgMTIwLCAxMTYsIDQ2LCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCAxMSwgLTEsIAorICAgICAgICAzLCA5OCwgLTQwLCAxMTQsIDQ4LCA1OCwgMiwgMCwgMjIsIDkwLCAwLCAyNywgMTAwLCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgODMsIAorICAgICAgICAxMDEsIDExMiwgOTcsIDExNCwgOTcsIDExNiwgMTExLCAxMTQsIDY1LCAxMDgsIDExOSwgOTcsIDEyMSwgMTE1LCA4MywgMTA0LCAxMTEsIDExOSwgMTEwLCA5MCwgCisgICAgICAgIDAsIDIzLCAxMDEsIDEyMCwgMTEyLCAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgODMsIDEwNSwgMTAzLCAxMTAsIDY1LCAxMDgsIDExOSwgOTcsIDEyMSwgMTE1LCAKKyAgICAgICAgODMsIDEwNCwgMTExLCAxMTksIDExMCwgNzMsIDAsIDExLCAxMDIsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDg3LCAxMDUsIDEwMCwgMTE2LCAxMDQsIDY2LCAKKyAgICAgICAgMCwgMTIsIDEwMywgMTE0LCAxMTEsIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgMTA1LCAxMjIsIDEwMSwgNjYsIDAsIDEzLCAxMDMsIDExNCwgMTExLCAKKyAgICAgICAgMTE3LCAxMTIsIDEwNSwgMTEwLCAxMDMsIDgzLCAxMDUsIDEyMiwgMTAxLCA1MCwgNjYsIDAsIDE3LCAxMDksIDEwNSwgMTEwLCA2OSwgMTIwLCAxMTIsIDExMSwgCisgICAgICAgIDExMCwgMTAxLCAxMTAsIDExNiwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA3MywgMCwgMTAsIDEwOSwgMTE3LCAxMDgsIDExNiwgMTA1LCAxMTIsIDEwOCwgCisgICAgICAgIDEwNSwgMTAxLCAxMTQsIDY3LCAwLCAzLCAxMTIsIDk3LCAxMDAsIDczLCAwLCAxMSwgMTEyLCA5NywgMTAwLCA4MCwgMTExLCAxMTUsIDEwNSwgMTE2LCAKKyAgICAgICAgMTA1LCAxMTEsIDExMCwgNzMsIDAsIDEyLCAxMTQsIDExMSwgMTE3LCAxMTAsIDEwMCwgMTA1LCAxMTAsIDEwMywgNzcsIDExMSwgMTAwLCAxMDEsIDczLCAwLCAKKyAgICAgICAgMjEsIDExNSwgMTAxLCAxMTQsIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAxMTUsIDEwNSwgMTExLCAxMTAsIDc5LCAxMTAsIDgzLCAxMTYsIDExNCwgMTAxLCAKKyAgICAgICAgOTcsIDEwOSwgOTAsIDAsIDIyLCAxMTcsIDExNSwgMTAxLCA2OSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIDExMCwgMTE2LCAxMDUsIDk3LCAxMDgsIDc4LCAKKyAgICAgICAgMTExLCAxMTYsIDk3LCAxMTYsIDEwNSwgMTExLCAxMTAsIDc2LCAwLCAxNiwgMTEwLCAxMDEsIDEwMywgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCA4MCwgCisgICAgICAgIDk3LCAxMTYsIDExNiwgMTAxLCAxMTQsIDExMCwgMTE2LCAwLCAxOCwgNzYsIDEwNiwgOTcsIDExOCwgOTcsIDQ3LCAxMDgsIDk3LCAxMTAsIDEwMywgNDcsIAorICAgICAgICA4MywgMTE2LCAxMTQsIDEwNSwgMTEwLCAxMDMsIDU5LCA3NiwgMCwgMTYsIDExMCwgMTAxLCAxMDMsIDgzLCAxMTcsIDEwMiwgMTAyLCAxMDUsIDEyMCwgODAsIAorICAgICAgICA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMCwgMTAxLCAxMDMsIDk3LCAxMTYsIDEwNSwgCisgICAgICAgIDExOCwgMTAxLCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTQsIDExMCwgMTAxLCAxMDMsIDk3LCAKKyAgICAgICAgMTE2LCAxMDUsIDExOCwgMTAxLCA4MywgMTE3LCAxMDIsIDEwMiwgMTA1LCAxMjAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTYsIDExMiwgMTExLCAKKyAgICAgICAgMTE1LCA4MCwgMTE0LCAxMDEsIDEwMiwgMTA1LCAxMjAsIDgwLCA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgCisgICAgICAgIDAsIDE2LCAxMTIsIDExMSwgMTE1LCA4MywgMTE3LCAxMDIsIDEwMiwgMTA1LCAxMjAsIDgwLCA5NywgMTE2LCAxMTYsIDEwMSwgMTE0LCAxMTAsIDExMywgMCwgCisgICAgICAgIDEyNiwgMCwgMSwgNzYsIDAsIDE0LCAxMTIsIDExMSwgMTE1LCAxMDUsIDExNiwgMTA1LCAxMTgsIDEwMSwgODAsIDExNCwgMTAxLCAxMDIsIDEwNSwgMTIwLCAKKyAgICAgICAgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgMTEyLCAxMTEsIDExNSwgMTA1LCAxMTYsIDEwNSwgMTE4LCAxMDEsIDgzLCAxMTcsIDEwMiwgMTAyLCAKKyAgICAgICAgMTA1LCAxMjAsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTcsIDExNCwgMTExLCAxMTcsIDExMCwgMTAwLCAxMDUsIDExMCwgMTAzLCA3MywgMTEwLCAKKyAgICAgICAgOTksIDExNCwgMTAxLCAxMDksIDEwMSwgMTEwLCAxMTYsIDExNiwgMCwgMjIsIDc2LCAxMDYsIDk3LCAxMTgsIDk3LCA0NywgMTA5LCA5NywgMTE2LCAxMDQsIAorICAgICAgICA0NywgNjYsIDEwNSwgMTAzLCA2OCwgMTAxLCA5OSwgMTA1LCAxMDksIDk3LCAxMDgsIDU5LCA3NiwgMCwgNywgMTE1LCAxMjEsIDEwOSwgOTgsIDExMSwgCisgICAgICAgIDEwOCwgMTE1LCAxMTYsIDAsIDM5LCA3NiwgOTksIDExMSwgMTA5LCA0NywgMTA1LCA5OCwgMTA5LCA0NywgMTA1LCA5OSwgMTE3LCA0NywgMTE2LCAxMDEsIAorICAgICAgICAxMjAsIDExNiwgNDcsIDY4LCAxMDEsIDk5LCAxMDUsIDEwOSwgOTcsIDEwOCwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIDgzLCAxMjEsIDEwOSwgOTgsIAorICAgICAgICAxMTEsIDEwOCwgMTE1LCA1OSwgMTIwLCAxMTQsIDAsIDI5LCA5OSwgMTExLCAxMDksIDQ2LCAxMDUsIDk4LCAxMDksIDQ2LCAxMDUsIDk5LCAxMTcsIDQ2LCAKKyAgICAgICAgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNzgsIDExNywgMTA5LCA5OCwgMTAxLCAxMTQsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCAtMzMsIC0xMCwgLTc3LCAKKyAgICAgICAgLTY1LCAxOSwgMTI1LCA3LCAtMjQsIDMsIDAsIDExLCA5MCwgMCwgMTIsIDEwMywgMTE0LCAxMTEsIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4NSwgCisgICAgICAgIDExNSwgMTAxLCAxMDAsIDY2LCAwLCAxNywgMTA5LCA5NywgMTIwLCA3MCwgMTE0LCA5NywgOTksIDExNiwgMTA1LCAxMTEsIDExMCwgNjgsIDEwNSwgMTAzLCAKKyAgICAgICAgMTA1LCAxMTYsIDExNSwgNjYsIDAsIDE2LCAxMDksIDk3LCAxMjAsIDczLCAxMTAsIDExNiwgMTAxLCAxMDMsIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgCisgICAgICAgIDExNiwgMTE1LCA3MywgMCwgMjEsIDEwOSwgOTcsIDEyMCwgMTA1LCAxMDksIDExNywgMTA5LCA3MCwgMTE0LCA5NywgOTksIDExNiwgMTA1LCAxMTEsIDExMCwgCisgICAgICAgIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDIwLCAxMDksIDk3LCAxMjAsIDEwNSwgMTA5LCAxMTcsIDEwOSwgNzMsIDExMCwgMTE2LCAxMDEsIAorICAgICAgICAxMDMsIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDY2LCAwLCAxNywgMTA5LCAxMDUsIDExMCwgNzAsIDExNCwgOTcsIDk5LCAxMTYsIAorICAgICAgICAxMDUsIDExMSwgMTEwLCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDY2LCAwLCAxNiwgMTA5LCAxMDUsIDExMCwgNzMsIDExMCwgMTE2LCAxMDEsIDEwMywgCisgICAgICAgIDEwMSwgMTE0LCA2OCwgMTA1LCAxMDMsIDEwNSwgMTE2LCAxMTUsIDczLCAwLCAyMSwgMTA5LCAxMDUsIDExMCwgMTA1LCAxMDksIDExNywgMTA5LCA3MCwgMTE0LCAKKyAgICAgICAgOTcsIDk5LCAxMTYsIDEwNSwgMTExLCAxMTAsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDExNSwgNzMsIDAsIDIwLCAxMDksIDEwNSwgMTEwLCAxMDUsIDEwOSwgCisgICAgICAgIDExNywgMTA5LCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAxMDEsIDExNCwgNjgsIDEwNSwgMTAzLCAxMDUsIDExNiwgMTE1LCA5MCwgMCwgMTYsIDExMiwgOTcsIAorICAgICAgICAxMTQsIDExNSwgMTAxLCA3MywgMTEwLCAxMTYsIDEwMSwgMTAzLCAxMDEsIDExNCwgNzksIDExMCwgMTA4LCAxMjEsIDczLCAwLCAyMSwgMTE1LCAxMDEsIDExNCwgCisgICAgICAgIDEwNSwgOTcsIDEwOCwgODYsIDEwMSwgMTE0LCAxMTUsIDEwNSwgMTExLCAxMTAsIDc5LCAxMTAsIDgzLCAxMTYsIDExNCwgMTAxLCA5NywgMTA5LCAxMjAsIDExNCwgCisgICAgICAgIDAsIDE2LCAxMDYsIDk3LCAxMTgsIDk3LCA0NiwgMTE2LCAxMDEsIDEyMCwgMTE2LCA0NiwgNzAsIDExMSwgMTE0LCAxMDksIDk3LCAxMTYsIC01LCAtNDAsIAorICAgICAgICAtNjgsIDE4LCAtMjMsIDE1LCAyNCwgNjcsIDIsIDAsIDAsIDEyMCwgMTEyLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAgICAgMCwgMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMSwgMTIwLCAwLCAwLCAKKyAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMSwgMCwgMzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgICAgICA2LCAwLCAwLCAwLCAyLCAxLCAxMTYsIDAsIDEsIDQ1LCAxMTYsIDAsIDAsIDExNiwgMCwgMSwgNDUsIDExNiwgMCwgMCwgCisgICAgICAgIDExNiwgMCwgMCwgMTEzLCAwLCAxMjYsIDAsIDgsIDExNiwgMCwgMCwgMTE2LCAwLCAwLCAxMTIsIDExNSwgMTE0LCAwLCAzNywgOTksIAorICAgICAgICAxMTEsIDEwOSwgNDYsIDEwNSwgOTgsIDEwOSwgNDYsIDEwNSwgOTksIDExNywgNDYsIDExNiwgMTAxLCAxMjAsIDExNiwgNDYsIDY4LCAxMDEsIDk5LCAxMDUsIAorICAgICAgICAxMDksIDk3LCAxMDgsIDcwLCAxMTEsIDExNCwgMTA5LCA5NywgMTE2LCA4MywgMTIxLCAxMDksIDk4LCAxMTEsIDEwOCwgMTE1LCA4MCwgMjksIDIzLCAtMTAzLCAKKyAgICAgICAgOCwgMTA0LCAtMTA5LCAtMTAwLCAyLCAwLCAxOCwgNjcsIDAsIDE2LCAxMDAsIDEwMSwgOTksIDEwNSwgMTA5LCA5NywgMTA4LCA4MywgMTAxLCAxMTIsIAorICAgICAgICA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDUsIDEwMCwgMTA1LCAxMDMsIDEwNSwgMTE2LCA2NywgMCwgMTEsIDEwMSwgMTIwLCAxMTIsIAorICAgICAgICAxMTEsIDExMCwgMTAxLCAxMTAsIDExNiwgMTA1LCA5NywgMTA4LCA2NywgMCwgMTcsIDEwMywgMTE0LCAxMTEsIDExNywgMTEyLCAxMDUsIDExMCwgMTAzLCA4MywgCisgICAgICAgIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgNjcsIDAsIDksIDEwOSwgMTA1LCAxMTAsIDExNywgMTE1LCA4MywgMTA1LCAxMDMsIDExMCwgCisgICAgICAgIDY3LCAwLCAxNywgMTA5LCAxMTEsIDExMCwgMTAxLCAxMTYsIDk3LCAxMTQsIDEyMSwgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgCisgICAgICAgIDY3LCAwLCA5LCAxMTIsIDk3LCAxMDAsIDY5LCAxMTUsIDk5LCA5NywgMTEyLCAxMDEsIDY3LCAwLCAxNiwgMTEyLCA5NywgMTE2LCAxMTYsIDEwMSwgCisgICAgICAgIDExNCwgMTEwLCA4MywgMTAxLCAxMTIsIDk3LCAxMTQsIDk3LCAxMTYsIDExMSwgMTE0LCA2NywgMCwgNywgMTEyLCAxMDEsIDExNCwgNzcsIDEwNSwgMTA4LCAKKyAgICAgICAgMTA4LCA2NywgMCwgNywgMTEyLCAxMDEsIDExNCwgOTksIDEwMSwgMTEwLCAxMTYsIDY3LCAwLCA4LCAxMTIsIDEwOCwgMTE3LCAxMTUsIDgzLCAxMDUsIAorICAgICAgICAxMDMsIDExMCwgNzMsIDAsIDIxLCAxMTUsIDEwMSwgMTE0LCAxMDUsIDk3LCAxMDgsIDg2LCAxMDEsIDExNCwgMTE1LCAxMDUsIDExMSwgMTEwLCA3OSwgMTEwLCAKKyAgICAgICAgODMsIDExNiwgMTE0LCAxMDEsIDk3LCAxMDksIDY3LCAwLCA5LCAxMjIsIDEwMSwgMTE0LCAxMTEsIDY4LCAxMDUsIDEwMywgMTA1LCAxMTYsIDc2LCAwLCAKKyAgICAgICAgMywgNzgsIDk3LCA3OCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCAxNCwgOTksIDExNywgMTE0LCAxMTQsIDEwMSwgMTEwLCA5OSwgMTIxLCAKKyAgICAgICAgODMsIDEyMSwgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTcsIDEwMSwgMTIwLCAxMTIsIDExMSwgMTEwLCAxMDEsIAorICAgICAgICAxMTAsIDExNiwgODMsIDEwMSwgMTEyLCA5NywgMTE0LCA5NywgMTE2LCAxMTEsIDExNCwgMTEzLCAwLCAxMjYsIDAsIDEsIDc2LCAwLCA4LCAxMDUsIAorICAgICAgICAxMTAsIDEwMiwgMTA1LCAxMTAsIDEwNSwgMTE2LCAxMjEsIDExMywgMCwgMTI2LCAwLCAxLCA3NiwgMCwgMTgsIDEwNSwgMTEwLCAxMTYsIDEwOCwgNjcsIAorICAgICAgICAxMTcsIDExNCwgMTE0LCAxMDEsIDExMCwgOTksIDEyMSwgODMsIDEyMSwgMTA5LCA5OCwgMTExLCAxMDgsIDExMywgMCwgMTI2LCAwLCAxLCAxMjAsIDExMiwgCisgICAgICAgIDAsIDQ2LCAwLCAzNSwgMCwgMCwgMCwgNDQsIDAsIDQ1LCAwLCA0NiwgMCwgNDIsIDAsIDU5LCAzMiwgNDgsIDAsIDM3LCAKKyAgICAgICAgMCwgNDMsIDAsIDAsIDAsIDIsIDAsIDQ4LCAxMTYsIDAsIDMsIC0xNywgLTY1LCAtNjcsIDExNiwgMCwgMSwgMzYsIDExNiwgMCwgCisgICAgICAgIDEsIDY5LCAxMTYsIDAsIDMsIC0zMCwgLTEyMCwgLTk4LCAxMTYsIDAsIDMsIDg1LCA4MywgNjgsIAorICAgIH07CisKKyAgICBmaW5hbCBzdGF0aWMgYnl0ZVtdW10gY29udGVudCA9IHtnZW5lcmFsSW5zdGFuY2UsIGN1cnJlbmN5SW5zdGFuY2UsIHBlcmNlbnRJbnN0YW5jZSwgc2NpZW50aWZpY0luc3RhbmNlfTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGRkODUxYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0VGVzdC5qYXZhCkBAIC0wLDAgKzEsMTQ4OCBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYxLjguMSA6IGZvcm1hdCA6IE51bWJlckZvcm1hdFRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L251bWZtdHN0LmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RVdGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5kYXRhLlJlc291cmNlUmVhZGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuZGF0YS5Ub2tlbkl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbDsKK2ltcG9ydCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0OworCitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBOdW1iZXJGb3JtYXRUZXN0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRVVSTyA9ICdcdTIwYWMnOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBOdW1iZXJGb3JtYXRUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICAvLyBUZXN0IHZhcmlvdXMgcGF0dGVybnMKKyAgICBwdWJsaWMgdm9pZCBUZXN0UGF0dGVybnMoKSB7CisgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bSA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBmaW5hbCBTdHJpbmcgcGF0W10gICAgPSB7ICIjLiMiLCAiIy4iLCAiLiMiLCAiIyIgfTsKKyAgICAgICAgaW50IHBhdF9sZW5ndGggPSBwYXQubGVuZ3RoOworICAgICAgICBmaW5hbCBTdHJpbmcgbmV3cGF0W10gPSB7ICIjMC4jIiwgIiMwLiIsICIjLjAiLCAiIyIgfTsKKyAgICAgICAgZmluYWwgU3RyaW5nIG51bVtdICAgID0geyAiMCIsICAgIjAuIiwgIi4wIiwgIjAiIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxwYXRfbGVuZ3RoOyArK2kpCisgICAgICAgIHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0W2ldLCBzeW0pOworICAgICAgICAgICAgU3RyaW5nIG5ld3AgPSBmbXQudG9QYXR0ZXJuKCk7CisgICAgICAgICAgICBpZiAoIW5ld3AuZXF1YWxzKG5ld3BhdFtpXSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFBhdHRlcm4gIiArIHBhdFtpXSArICIgc2hvdWxkIHRyYW5zbXV0ZSB0byAiICsgbmV3cGF0W2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAiOyAiICsgbmV3cCArICIgc2VlbiBpbnN0ZWFkIik7CisgICAgCisgICAgICAgICAgICBTdHJpbmcgcyA9ICgoTnVtYmVyRm9ybWF0KWZtdCkuZm9ybWF0KDApOworICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhudW1baV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBQYXR0ZXJuICIgKyBwYXRbaV0gKyAiIHNob3VsZCBmb3JtYXQgemVybyBhcyAiICsgbnVtW2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAiOyAiICsgcyArICIgc2VlbiBpbnN0ZWFkIik7CisgICAgICAgICAgICAgICAgbG9nbG4oIk1pbiBpbnRlZ2VyIGRpZ2l0cyA9ICIgKyBmbXQuZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gVGVzdCBleHBvbmVudGlhbCBwYXR0ZXJuCisgICAgcHVibGljIHZvaWQgVGVzdEV4cG9uZW50aWFsKCkgeworICAgIAorICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW0gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIHBhdFtdID0geyAiMC4jIyMjRTAiLCAiMDAuMDAwRTAwIiwgIiMjMC4jIyMjIyNFMDAwIiwgIjAuIyMjRTA7WzAuIyMjRTBdIiB9OworICAgICAgICBpbnQgcGF0X2xlbmd0aCA9IHBhdC5sZW5ndGg7CisgICAgCisgICAgICAgIGRvdWJsZSB2YWxbXSA9IHsgMC4wMTIzNCwgMTIzNDU2Nzg5LCAxLjIzZTMwMCwgLTMuMTQxNTkyNjUzZS0yNzEgfTsKKyAgICAgICAgaW50IHZhbF9sZW5ndGggPSB2YWwubGVuZ3RoOworICAgICAgICBmaW5hbCBTdHJpbmcgdmFsRm9ybWF0W10gPSB7CisgICAgICAgICAgICAvLyAwLiMjIyNFMAorICAgICAgICAgICAgIjEuMjM0RS0yIiwgIjEuMjM0NkU4IiwgIjEuMjNFMzAwIiwgIi0zLjE0MTZFLTI3MSIsCisgICAgICAgICAgICAvLyAwMC4wMDBFMDAKKyAgICAgICAgICAgICIxMi4zNDBFLTAzIiwgIjEyLjM0NkUwNyIsICIxMi4zMDBFMjk5IiwgIi0zMS40MTZFLTI3MiIsCisgICAgICAgICAgICAvLyAjIzAuIyMjIyMjRTAwMAorICAgICAgICAgICAgIjEyLjM0RS0wMDMiLCAiMTIzLjQ1NjhFMDA2IiwgIjEuMjNFMzAwIiwgIi0zMTQuMTU5M0UtMjczIiwKKyAgICAgICAgICAgIC8vIDAuIyMjRTA7WzAuIyMjRTBdCisgICAgICAgICAgICAiMS4yMzRFLTIiLCAiMS4yMzVFOCIsICIxLjIzRTMwMCIsICJbMy4xNDJFLTI3MV0iIH07CisgICAgICAgIC8qZG91YmxlIHZhbFBhcnNlW10gPQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIDAuMDEyMzQsIDEyMzQ2MDAwMCwgMS4yM0UzMDAsIC0zLjE0MTZFLTI3MSwKKyAgICAgICAgICAgICAgICAwLjAxMjM0LCAxMjM0NjAwMDAsIDEuMjNFMzAwLCAtMy4xNDE2RS0yNzEsCisgICAgICAgICAgICAgICAgMC4wMTIzNCwgMTIzNDU2ODAwLCAxLjIzRTMwMCwgLTMuMTQxNTkzRS0yNzEsCisgICAgICAgICAgICAgICAgMC4wMTIzNCwgMTIzNTAwMDAwLCAxLjIzRTMwMCwgLTMuMTQyRS0yNzEsCisgICAgICAgICAgICB9OyovIC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAKKyAgICAgICAgaW50IGx2YWxbXSA9IHsgMCwgLTEsIDEsIDEyMzQ1Njc4OSB9OworICAgICAgICBpbnQgbHZhbF9sZW5ndGggPSBsdmFsLmxlbmd0aDsKKyAgICAgICAgZmluYWwgU3RyaW5nIGx2YWxGb3JtYXRbXSA9IHsKKyAgICAgICAgICAgIC8vIDAuIyMjI0UwCisgICAgICAgICAgICAiMEUwIiwgIi0xRTAiLCAiMUUwIiwgIjEuMjM0NkU4IiwKKyAgICAgICAgICAgIC8vIDAwLjAwMEUwMAorICAgICAgICAgICAgIjAwLjAwMEUwMCIsICItMTAuMDAwRS0wMSIsICIxMC4wMDBFLTAxIiwgIjEyLjM0NkUwNyIsCisgICAgICAgICAgICAvLyAjIzAuIyMjIyMjRTAwMAorICAgICAgICAgICAgIjBFMDAwIiwgIi0xRTAwMCIsICIxRTAwMCIsICIxMjMuNDU2OEUwMDYiLAorICAgICAgICAgICAgLy8gMC4jIyNFMDtbMC4jIyNFMF0KKyAgICAgICAgICAgICIwRTAiLCAiWzFFMF0iLCAiMUUwIiwgIjEuMjM1RTgiIH07CisgICAgICAgIGludCBsdmFsUGFyc2VbXSA9IAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIDAsIC0xLCAxLCAxMjM0NjAwMDAsIAorICAgICAgICAgICAgICAgIDAsIC0xLCAxLCAxMjM0NjAwMDAsIAorICAgICAgICAgICAgICAgIDAsIC0xLCAxLCAxMjM0NTY4MDAsIAorICAgICAgICAgICAgICAgIDAsIC0xLCAxLCAxMjM1MDAwMDAsIAorICAgICAgICAgICAgfTsKKyAgICAgICAgaW50IGl2YWwgPSAwLCBpbHZhbCA9IDA7CisgICAgICAgIGZvciAoaW50IHAgPSAwOyBwIDwgcGF0X2xlbmd0aDsgKytwKSB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdFtwXSwgc3ltKTsKKyAgICAgICAgICAgIGxvZ2xuKCJQYXR0ZXJuIFwiIiArIHBhdFtwXSArICJcIiAtdG9QYXR0ZXJuLT4gXCIiICsgZm10LnRvUGF0dGVybigpICsgIlwiIik7CisgICAgICAgICAgICBpbnQgdjsKKyAgICAgICAgICAgIGZvciAodiA9IDA7IHYgPCB2YWxfbGVuZ3RoOyArK3YpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgczsKKyAgICAgICAgICAgICAgICBzID0gKChOdW1iZXJGb3JtYXQpIGZtdCkuZm9ybWF0KHZhbFt2XSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAiICsgdmFsW3ZdICsgIiAtZm9ybWF0LT4gIiArIHMpOworICAgICAgICAgICAgICAgIGlmICghcy5lcXVhbHModmFsRm9ybWF0W3YgKyBpdmFsXSkpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgdmFsRm9ybWF0W3YgKyBpdmFsXSk7CisgICAgCisgICAgICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgICAgICAgICBkb3VibGUgYSA9IGZtdC5wYXJzZShzLCBwb3MpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpID09IHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIiAgLXBhcnNlLT4gIiArIERvdWJsZS50b1N0cmluZyhhKSk7CisgICAgICAgICAgICAgICAgICAgIC8vIFVzZSBlcHNpbG9uIGNvbXBhcmlzb24gYXMgbmVjZXNzYXJ5CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBQYXJ0aWFsIHBhcnNlICgiICsgcG9zLmdldEluZGV4KCkgKyAiIGNoYXJzKSAtPiAiICsgYSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKHYgPSAwOyB2IDwgbHZhbF9sZW5ndGg7ICsrdikgeworICAgICAgICAgICAgICAgIFN0cmluZyBzOworICAgICAgICAgICAgICAgIHMgPSAoKE51bWJlckZvcm1hdCkgZm10KS5mb3JtYXQobHZhbFt2XSk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAiICsgbHZhbFt2XSArICJMIC1mb3JtYXQtPiAiICsgcyk7CisgICAgICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhsdmFsRm9ybWF0W3YgKyBpbHZhbF0pKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6IEV4cGVjdGVkICIgKyBsdmFsRm9ybWF0W3YgKyBpbHZhbF0gKyAiIEdvdDogIiArIHMpOworICAgIAorICAgICAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICAgICAgbG9uZyBhID0gMDsKKyAgICAgICAgICAgICAgICBOdW1iZXIgQSA9IGZtdC5wYXJzZShzLCBwb3MpOworICAgICAgICAgICAgICAgIGlmIChBICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgYSA9IEEubG9uZ1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwb3MuZ2V0SW5kZXgoKSA9PSBzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiICAtcGFyc2UtPiAiICsgYSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSAhPSBsdmFsUGFyc2VbdiArIGlsdmFsXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgIiArIGx2YWxQYXJzZVt2ICsgaWx2YWxdKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogUGFydGlhbCBwYXJzZSAoIiArIHBvcy5nZXRJbmRleCgpICsgIiBjaGFycykgLT4gIiArIExvbmcudG9TdHJpbmcoYSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsIHRvIHBhcnNlIHRoZSBzdHJpbmc6ICIgKyBzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpdmFsICs9IHZhbF9sZW5ndGg7CisgICAgICAgICAgICBpbHZhbCArPSBsdmFsX2xlbmd0aDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFRlc3QgdGhlIGhhbmRsaW5nIG9mIHF1b3RlcworICAgIHB1YmxpYyB2b2lkIFRlc3RRdW90ZXMoKSB7CisgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciBwYXQ7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bSA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBwYXQgPSBuZXcgU3RyaW5nQnVmZmVyKCJhJ2ZvJydvJ2IjIik7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0LnRvU3RyaW5nKCksIHN5bSk7CisgICAgICAgIFN0cmluZyBzID0gKChOdW1iZXJGb3JtYXQpZm10KS5mb3JtYXQoMTIzKTsKKyAgICAgICAgbG9nbG4oIlBhdHRlcm4gXCIiICsgcGF0ICsgIlwiIik7CisgICAgICAgIGxvZ2xuKCIgRm9ybWF0IDEyMyAuICIgKyBzKTsKKyAgICAgICAgaWYgKCFzLmVxdWFscygiYWZvJ29iMTIzIikpIAorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIGFmbydvYjEyMyIpOworICAgICAgICAKKyAgICAgICAgcyA9IiI7CisgICAgICAgIHBhdCA9IG5ldyBTdHJpbmdCdWZmZXIoImEnJ2IjIik7CisgICAgICAgIGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdC50b1N0cmluZygpLCBzeW0pOworICAgICAgICBzID0gKChOdW1iZXJGb3JtYXQpZm10KS5mb3JtYXQoMTIzKTsKKyAgICAgICAgbG9nbG4oIlBhdHRlcm4gXCIiICsgcGF0ICsgIlwiIik7CisgICAgICAgIGxvZ2xuKCIgRm9ybWF0IDEyMyAuICIgKyBzKTsKKyAgICAgICAgaWYgKCFzLmVxdWFscygiYSdiMTIzIikpIAorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIGEnYjEyMyIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UGFyc2VDdXJyZW5jeVRyYWlsaW5nU3ltYm9sKCkgeworICAgICAgICAvLyBzZWUgc3VuIGJ1ZyA0NzA5ODQwCisgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIGZsb2F0IHZhbCA9IDEyMzQ1LjY3ZjsKKyAgICAgICAgU3RyaW5nIHN0ciA9IGZtdC5mb3JtYXQodmFsKTsKKyAgICAgICAgbG9nbG4oInZhbDogIiArIHZhbCArICIgc3RyOiAiICsgc3RyKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE51bWJlciBudW0gPSBmbXQucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgIGxvZ2xuKCJudW06ICIgKyBudW0pOworICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigicGFyc2Ugb2YgJyIgKyBzdHIgKyAiJyB0aHJldyBleGNlcHRpb246ICIgKyBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGhhbmRsaW5nIG9mIHRoZSBjdXJyZW5jeSBzeW1ib2wgaW4gcGF0dGVybnMuCisgICAgICoqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDdXJyZW5jeVNpZ24oKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bSA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBTdHJpbmdCdWZmZXIgcGF0ID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIGNoYXIgY3VycmVuY3kgPSAweDAwQTQ7CisgICAgICAgIC8vICJceEE0IywjIzAuMDA7LVx4QTQjLCMjMC4wMCIKKyAgICAgICAgcGF0LmFwcGVuZChjdXJyZW5jeSkuYXBwZW5kKCIjLCMjMC4wMDstIikuYXBwZW5kKGN1cnJlbmN5KS5hcHBlbmQoIiMsIyMwLjAwIik7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0LnRvU3RyaW5nKCksIHN5bSk7CisgICAgICAgIFN0cmluZyBzID0gKChOdW1iZXJGb3JtYXQpIGZtdCkuZm9ybWF0KDEyMzQuNTYpOworICAgICAgICBwYXQgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgbG9nbG4oIlBhdHRlcm4gXCIiICsgZm10LnRvUGF0dGVybigpICsgIlwiIik7CisgICAgICAgIGxvZ2xuKCIgRm9ybWF0ICIgKyAxMjM0LjU2ICsgIiAuICIgKyBzKTsKKyAgICAgICAgaWYgKCFzLmVxdWFscygiJDEsMjM0LjU2IikpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgJDEsMjM0LjU2Iik7CisgICAgICAgIHMgPSAiIjsKKyAgICAgICAgcyA9ICgoTnVtYmVyRm9ybWF0KSBmbXQpLmZvcm1hdCgtMTIzNC41Nik7CisgICAgICAgIGxvZ2xuKCIgRm9ybWF0ICIgKyBEb3VibGUudG9TdHJpbmcoLTEyMzQuNTYpICsgIiAuICIgKyBzKTsKKyAgICAgICAgaWYgKCFzLmVxdWFscygiLSQxLDIzNC41NiIpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIC0kMSwyMzQuNTYiKTsKKyAgICAKKyAgICAgICAgcGF0ID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIC8vICJceEE0XHhBNCAjLCMjMC4wMDtceEE0XHhBNCAtIywjIzAuMDAiCisgICAgICAgIHBhdC5hcHBlbmQoY3VycmVuY3kpLmFwcGVuZChjdXJyZW5jeSkuYXBwZW5kKCIgIywjIzAuMDA7IikuYXBwZW5kKGN1cnJlbmN5KS5hcHBlbmQoY3VycmVuY3kpLmFwcGVuZCgiIC0jLCMjMC4wMCIpOyAKKyAgICAgICAgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0LnRvU3RyaW5nKCksIHN5bSk7CisgICAgICAgIHMgPSAiIjsKKyAgICAgICAgcyA9ICgoTnVtYmVyRm9ybWF0KSBmbXQpLmZvcm1hdCgxMjM0LjU2KTsKKyAgICAgICAgbG9nbG4oIlBhdHRlcm4gXCIiICsgZm10LnRvUGF0dGVybigpICsgIlwiIik7CisgICAgICAgIGxvZ2xuKCIgRm9ybWF0ICIgKyBEb3VibGUudG9TdHJpbmcoMTIzNC41NikgKyAiIC4gIiArIHMpOworICAgIAorICAgICAgICBpZiAoIXMuZXF1YWxzKCJVU0QgMSwyMzQuNTYiKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBVU0QgMSwyMzQuNTYiKTsKKyAgICAgICAgcyA9ICIiOworICAgICAgICBzID0gKChOdW1iZXJGb3JtYXQpIGZtdCkuZm9ybWF0KC0xMjM0LjU2KTsKKyAgICAgICAgbG9nbG4oIiBGb3JtYXQgIiArIERvdWJsZS50b1N0cmluZygtMTIzNC41NikgKyAiIC4gIiArIHMpOworICAgICAgICBpZiAoIXMuZXF1YWxzKCJVU0QgLTEsMjM0LjU2IikpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgVVNEIC0xLDIzNC41NiIpOworICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IGxvY2FsaXplZCBjdXJyZW5jeSBwYXR0ZXJucy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VycmVuY3koKSB7CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAiZnIiLCAiQ0EiLCAiIiwgIjEsNTAgJCIsCisgICAgICAgICAgICAiZGUiLCAiREUiLCAiIiwgIjEsNTAgXHUyMEFDIiwKKyAgICAgICAgICAgICJkZSIsICJERSIsICJQUkVFVVJPIiwgIjEsNTAgRE0iLAorICAgICAgICAgICAgImZyIiwgIkZSIiwgIiIsICIxLDUwIFx1MjBBQyIsCisgICAgICAgICAgICAiZnIiLCAiRlIiLCAiUFJFRVVSTyIsICIxLDUwIEYiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9NCkgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZSA9IG5ldyBMb2NhbGUoREFUQVtpXSwgREFUQVtpKzFdLCBEQVRBW2krMl0pOworICAgICAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQoMS41MCk7CisgICAgICAgICAgICBpZiAocy5lcXVhbHMoREFUQVtpKzNdKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogMS41MCB4ICIgKyBsb2NhbGUgKyAiID0+ICIgKyBzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIkZBSUw6IDEuNTAgeCAiICsgbG9jYWxlICsgIiA9PiAiICsgcyArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIERBVEFbaSszXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGZvcm1hdCBjdXJyZW5jeSB3aXRoIEN1cnJlbmN5QW1vdW50CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9NCkgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZSA9IG5ldyBMb2NhbGUoREFUQVtpXSwgREFUQVtpKzFdLCBEQVRBW2krMl0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBDdXJyZW5jeSBjdXJyID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcbk5hbWUgb2YgdGhlIGN1cnJlbmN5IGlzOiAiICsgY3Vyci5nZXROYW1lKGxvY2FsZSwgQ3VycmVuY3kuTE9OR19OQU1FLCBuZXcgYm9vbGVhbltdIHtmYWxzZX0pKTsKKyAgICAgICAgICAgIEN1cnJlbmN5QW1vdW50IGNBbXQgPSBuZXcgQ3VycmVuY3lBbW91bnQoMS41LCBjdXJyKTsKKyAgICAgICAgICAgIGxvZ2xuKCJDdXJyZW5jeUFtb3VudCBvYmplY3QncyBoYXNoQ29kZSBpczogIiArIGNBbXQuaGFzaENvZGUoKSk7IC8vY292ZXIgaGFzaENvZGUKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgICAgICBTdHJpbmcgc0N1cnIgPSBmbXQuZm9ybWF0KGNBbXQpOworICAgICAgICAgICAgaWYgKHNDdXJyLmVxdWFscyhEQVRBW2krM10pKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAxLjUwIHggIiArIGxvY2FsZSArICIgPT4gIiArIHNDdXJyKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IDEuNTAgeCAiICsgbG9jYWxlICsgIiA9PiAiICsgc0N1cnIgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBEQVRBW2krM10pOworICAgICAgICAgICAgfSAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvL0NvdmVyIE1lYXN1cmVGb3JtYXQuZ2V0Q3VycmVuY3lGb3JtYXQoKQorICAgICAgICBVTG9jYWxlIHNhdmUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KFVMb2NhbGUuVVMpOworICAgICAgICBNZWFzdXJlRm9ybWF0IGN1ckZtdCA9IE1lYXN1cmVGb3JtYXQuZ2V0Q3VycmVuY3lGb3JtYXQoKTsKKyAgICAgICAgLy9Ob3Qga25vd2luZyBob3cgdG8gdGVzdCB0aGlzIGZhY3RvcnkgbWV0aG9kLAorICAgICAgICAvLyAgYmVjYXVzZSB0aGUgY29uY3JlYXQgY2xhc3Mgb2YgTWVhc3VyZUZvcm1hdCAtCisgICAgICAgIC8vICBDdXJyZW5jeUZvcm1hdCBpcyBqdXN0IGZvciBpbnRlcm5hbCB1c2UuCisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChzYXZlKTsgICAgICAgIAorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIEN1cnJlbmN5IG9iamVjdCBoYW5kbGluZywgbmV3IGFzIG9mIElDVSAyLjIuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEN1cnJlbmN5T2JqZWN0KCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gCisgICAgICAgICAgICBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICAKKyAgICAgICAgZXhwZWN0Q3VycmVuY3koZm10LCBudWxsLCAxMjM0LjU2LCAiJDEsMjM0LjU2Iik7CisKKyAgICAgICAgZXhwZWN0Q3VycmVuY3koZm10LCBDdXJyZW5jeS5nZXRJbnN0YW5jZShMb2NhbGUuRlJBTkNFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgMTIzNC41NiwgIlx1MjBBQzEsMjM0LjU2Iik7IC8vIEV1cm8KKworICAgICAgICBleHBlY3RDdXJyZW5jeShmbXQsIEN1cnJlbmN5LmdldEluc3RhbmNlKExvY2FsZS5KQVBBTiksCisgICAgICAgICAgICAgICAgICAgICAgIDEyMzQuNTYsICJcdTAwQTUxLDIzNSIpOyAvLyBZZW4KKworICAgICAgICBleHBlY3RDdXJyZW5jeShmbXQsIEN1cnJlbmN5LmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImZyIiwgIkNIIiwgIiIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgMTIzNC41NiwgIlN3RjEsMjM0LjU1Iik7IC8vIDAuMDUgcm91bmRpbmcKKworICAgICAgICBleHBlY3RDdXJyZW5jeShmbXQsIEN1cnJlbmN5LmdldEluc3RhbmNlKExvY2FsZS5VUyksCisgICAgICAgICAgICAgICAgICAgICAgIDEyMzQuNTYsICIkMSwyMzQuNTYiKTsKKworICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgbnVsbCwgMTIzNC41NiwgIjEgMjM0LDU2IFx1MjBBQyIpOworCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLkpBUEFOKSwKKyAgICAgICAgICAgICAgICAgICAgICAgMTIzNC41NiwgIjEgMjM1IFx1MDBBNSIpOyAvLyBZZW4KKworICAgICAgICBleHBlY3RDdXJyZW5jeShmbXQsIEN1cnJlbmN5LmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImZyIiwgIkNIIiwgIiIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgMTIzNC41NiwgIjEgMjM0LDU1IHNGci4iKTsgLy8gMC4yNSByb3VuZGluZworCisgICAgICAgIGV4cGVjdEN1cnJlbmN5KGZtdCwgQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgMTIzNC41NiwgIjEgMjM0LDU2ICQiKTsKKworICAgICAgICBleHBlY3RDdXJyZW5jeShmbXQsIEN1cnJlbmN5LmdldEluc3RhbmNlKExvY2FsZS5GUkFOQ0UpLAorICAgICAgICAgICAgICAgICAgICAgICAxMjM0LjU2LCAiMSAyMzQsNTYgXHUyMEFDIik7IC8vIEV1cm8KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEN1cnJlbmN5UGF0dGVybnMoKSB7CisgICAgICAgIGludCBpOworICAgICAgICBMb2NhbGVbXSBsb2NzID0gTnVtYmVyRm9ybWF0LmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgZm9yIChpPTA7IGk8bG9jcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jc1tpXSk7CisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgY3VycmVuY3kgZm9ybWF0cyBkbyBub3QgaGF2ZSBhIHZhcmlhYmxlIG51bWJlcgorICAgICAgICAgICAgLy8gb2YgZnJhY3Rpb24gZGlnaXRzCisgICAgICAgICAgICBpbnQgbWluID0gbmYuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCk7CisgICAgICAgICAgICBpbnQgbWF4ID0gbmYuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCk7CisgICAgICAgICAgICBpZiAobWluICE9IG1heCkgeworICAgICAgICAgICAgICAgIFN0cmluZyBhID0gbmYuZm9ybWF0KDEuMCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGIgPSBuZi5mb3JtYXQoMS4xMjUpOworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbG9jc1tpXSArCisgICAgICAgICAgICAgICAgICAgICAgIiBtaW4gZnJhY3Rpb24gZGlnaXRzICE9IG1heCBmcmFjdGlvbiBkaWdpdHM7ICIrCisgICAgICAgICAgICAgICAgICAgICAgInggMS4wID0+ICIgKyBhICsKKyAgICAgICAgICAgICAgICAgICAgICAiOyB4IDEuMTI1ID0+ICIgKyBiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBFVVJPIGN1cnJlbmN5IGZvcm1hdHMgaGF2ZSBleGFjdGx5IDIgZnJhY3Rpb24gZGlnaXRzCisgICAgICAgICAgICBpZiAobmYgaW5zdGFuY2VvZiBEZWNpbWFsRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgQ3VycmVuY3kgY3VyciA9ICgoRGVjaW1hbEZvcm1hdCkgbmYpLmdldEN1cnJlbmN5KCk7CisgICAgICAgICAgICAgICAgaWYgKGN1cnIgIT0gbnVsbCAmJiAiRVVSIi5lcXVhbHMoY3Vyci5nZXRDdXJyZW5jeUNvZGUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1pbiAhPSAyIHx8IG1heCAhPSAyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYSA9IG5mLmZvcm1hdCgxLjApOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBsb2NzW2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgaXMgYSBFVVJPIGZvcm1hdCBidXQgaXQgZG9lcyBub3QgaGF2ZSAyIGZyYWN0aW9uIGRpZ2l0czsgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4IDEuMCA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRG8gcnVkaW1lbnRhcnkgdGVzdGluZyBvZiBwYXJzaW5nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQYXJzZSgpIHsKKyAgICAgICAgU3RyaW5nIGFyZyA9ICIwLjAiOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZvcm1hdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwMCIpOworICAgICAgICBkb3VibGUgYU51bWJlciA9IDBsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgYU51bWJlciA9IGZvcm1hdC5wYXJzZShhcmcpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigicGFyc2UoIiArIGFyZyArICIpID0gIiArIGFOdW1iZXIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHByb3BlciByb3VuZGluZyBieSB0aGUgZm9ybWF0IG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Um91bmRpbmc0ODcoKSB7CisgICAgCisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICByb3VuZGluZ1Rlc3QobmYsIDAuMDAxNTk5OTksIDQsICIwLjAwMTYiKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KG5mLCAwLjAwOTk1LCA0LCAiMC4wMSIpOworICAgIAorICAgICAgICByb3VuZGluZ1Rlc3QobmYsIDEyLjM5OTUsIDMsICIxMi40Iik7CisgICAgCisgICAgICAgIHJvdW5kaW5nVGVzdChuZiwgMTIuNDk5OSwgMCwgIjEyIik7CisgICAgICAgIHJvdW5kaW5nVGVzdChuZiwgLSAxOS41LCAwLCAiLTIwIik7CisgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGZ1bmN0aW9uaW5nIG9mIHRoZSBzZWNvbmRhcnkgZ3JvdXBpbmcgdmFsdWUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNlY29uZGFyeUdyb3VwaW5nKCkgeworICAgIAorICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBVUyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIywjIyMiLCBVUyk7CisgICAgCisgICAgICAgIGV4cGVjdChmLCAxMjM0NTY3ODlMLCAiMTIsMzQsNTYsNzg5Iik7CisgICAgICAgIGV4cGVjdFBhdChmLCAiIywjIywjIyMiKTsKKyAgICAgICAgZi5hcHBseVBhdHRlcm4oIiMsIyMjIik7CisgICAgCisgICAgICAgIGYuc2V0U2Vjb25kYXJ5R3JvdXBpbmdTaXplKDQpOworICAgICAgICBleHBlY3QoZiwgMTIzNDU2Nzg5TCwgIjEyLDM0NTYsNzg5Iik7CisgICAgICAgIGV4cGVjdFBhdChmLCAiIywjIyMjLCMjIyIpOworICAgICAgICBOdW1iZXJGb3JtYXQgZyA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJoaSIsICJJTiIpKTsKKyAgICAKKyAgICAgICAgU3RyaW5nIG91dCA9ICIiOworICAgICAgICBsb25nIGwgPSAxODc2NTQzMjEwTDsKKyAgICAgICAgb3V0ID0gZy5mb3JtYXQobCk7CisgICAgCisgICAgICAgIC8vIGV4cGVjdCAiMSw4Nyw2NSw0MywyMTAiLCBidXQgd2l0aCBIaW5kaSBkaWdpdHMKKyAgICAgICAgLy8gICAgICAgICAwMTIzNDU2Nzg5MDEyMworICAgICAgICBib29sZWFuIG9rID0gdHJ1ZTsKKyAgICAgICAgaWYgKG91dC5sZW5ndGgoKSAhPSAxNCkgeworICAgICAgICAgICAgb2sgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3V0Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBib29sZWFuIGV4cGVjdEdyb3VwID0gZmFsc2U7CisgICAgICAgICAgICAgICAgc3dpdGNoIChpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMSA6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgNCA6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgNyA6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMTAgOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0R3JvdXAgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIExhdGVyIC0tIGZpeCB0aGlzIHRvIGdldCB0aGUgYWN0dWFsIGdyb3VwaW5nCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyIGZyb20gdGhlIHJlc291cmNlIGJ1bmRsZS4KKyAgICAgICAgICAgICAgICBib29sZWFuIGlzR3JvdXAgPSAob3V0LmNoYXJBdChpKSA9PSAweDAwMkMpOworICAgICAgICAgICAgICAgIGlmIChpc0dyb3VwICE9IGV4cGVjdEdyb3VwKSB7CisgICAgICAgICAgICAgICAgICAgIG9rID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIW9rKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCAgRXhwZWN0ZWQgIisgbCArICIgeCBoaV9JTiAuIFwiMSw4Nyw2NSw0MywyMTBcIiAod2l0aCBIaW5kaSBkaWdpdHMpLCBnb3QgXCIiCisgICAgICAgICAgICAgICAgICAgICsgb3V0ICsgIlwiIik7IAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIk9rICAgICIgKyBsICsgIiB4IGhpX0lOIC4gXCIiICsgb3V0ICsgIlwiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcm91bmRpbmdUZXN0KE51bWJlckZvcm1hdCBuZiwgZG91YmxlIHgsIGludCBtYXhGcmFjdGlvbkRpZ2l0cywgZmluYWwgU3RyaW5nIGV4cGVjdGVkKSB7CisgICAgICAgIG5mLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhtYXhGcmFjdGlvbkRpZ2l0cyk7CisgICAgICAgIFN0cmluZyBvdXQgPSBuZi5mb3JtYXQoeCk7CisgICAgICAgIGxvZ2xuKHggKyAiIGZvcm1hdHMgd2l0aCAiICsgbWF4RnJhY3Rpb25EaWdpdHMgKyAiIGZyYWN0aW9uYWwgZGlnaXRzIHRvICIgKyBvdXQpOyAKKyAgICAgICAgaWYgKCFvdXQuZXF1YWxzKGV4cGVjdGVkKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVcGdyYWRlIHRvIGFscGhhV29ya3MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhwb25lbnQoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10MSA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwLiMjI0UwIiwgVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdDIgPSBuZXcgRGVjaW1hbEZvcm1hdCgiMC4jIyNFKzAiLCBVUyk7CisgICAgICAgIGludCBuID0gMTIzNDsKKyAgICAgICAgZXhwZWN0MihmbXQxLCBuLCAiMS4yMzRFMyIpOworICAgICAgICBleHBlY3QyKGZtdDIsIG4sICIxLjIzNEUrMyIpOworICAgICAgICBleHBlY3QoZm10MSwgIjEuMjM0RSszIiwgbik7IC8vIEVpdGhlciBmb3JtYXQgc2hvdWxkIHBhcnNlICJFKzMiCisKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVXBncmFkZSB0byBhbHBoYVdvcmtzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNjaWVudGlmaWMoKSB7CisgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgCisgICAgICAgIC8vIFRlc3QgcGF0dGVybiByb3VuZC10cmlwCisgICAgICAgIGZpbmFsIFN0cmluZyBQQVRbXSA9IHsgIiNFMCIsICIwLiMjIyNFMCIsICIwMC4wMDBFMDAiLCAiIyMwLiMjIyNFMDAwIiwgIjAuIyMjRTA7WzAuIyMjRTBdIiB9OworICAgICAgICBpbnQgUEFUX2xlbmd0aCA9IFBBVC5sZW5ndGg7CisgICAgICAgIGludCBESUdJVFNbXSA9IHsKKyAgICAgICAgICAgIC8vIG1pbiBpbnQsIG1heCBpbnQsIG1pbiBmcmFjLCBtYXggZnJhYworICAgICAgICAgICAgMCwgMSwgMCwgMCwgLy8gIiNFMCIKKyAgICAgICAgICAgIDEsIDEsIDAsIDQsIC8vICIwLiMjIyNFMCIKKyAgICAgICAgICAgIDIsIDIsIDMsIDMsIC8vICIwMC4wMDBFMDAiCisgICAgICAgICAgICAxLCAzLCAwLCA0LCAvLyAiIyMwLiMjIyNFMDAwIgorICAgICAgICAgICAgMSwgMSwgMCwgMywgLy8gIjAuIyMjRTA7WzAuIyMjRTBdIgorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFBBVF9sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHBhdCA9IFBBVFtpXTsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXQsIFVTKTsKKyAgICAgICAgICAgIFN0cmluZyBwYXQyID0gZGYudG9QYXR0ZXJuKCk7CisgICAgICAgICAgICBpZiAocGF0LmVxdWFscyhwYXQyKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPayAgIFBhdHRlcm4gcnQgXCIiICsgcGF0ICsgIlwiIC4gXCIiICsgcGF0MiArICJcIiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBQYXR0ZXJuIHJ0IFwiIiArIHBhdCArICJcIiAuIFwiIiArIHBhdDIgKyAiXCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBkaWdpdCBjb3VudHMgbWF0Y2ggd2hhdCB3ZSBleHBlY3QKKyAgICAgICAgICAgIGlmIChkZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpICE9IERJR0lUU1s0ICogaV0KKyAgICAgICAgICAgICAgICB8fCBkZi5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpICE9IERJR0lUU1s0ICogaSArIDFdCisgICAgICAgICAgICAgICAgfHwgZGYuZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgIT0gRElHSVRTWzQgKiBpICsgMl0KKyAgICAgICAgICAgICAgICB8fCBkZi5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSAhPSBESUdJVFNbNCAqIGkgKyAzXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFwiIisgcGF0KyAiXCIgbWluL21heCBpbnQ7IG1pbi9tYXggZnJhYyA9ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgZGYuZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSArICIvIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBkZi5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpICsgIjsiCisgICAgICAgICAgICAgICAgICAgICAgICArIGRmLmdldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygpICsgIi8iCisgICAgICAgICAgICAgICAgICAgICAgICArIGRmLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpICsgIiwgZXhwZWN0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgRElHSVRTWzQgKiBpXSArICIvIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBESUdJVFNbNCAqIGkgKyAxXSArICI7IiAKKyAgICAgICAgICAgICAgICAgICAgICAgICsgRElHSVRTWzQgKiBpICsgMl0gKyAiLyIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgRElHSVRTWzQgKiBpICsgM10pOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjRTAiLCBVUyksIDEyMzQ1LjAsICIxLjIzNDVFNCIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIjBFMCIsIFVTKSwgMTIzNDUuMCwgIjFFNCIpOworICAgIAorICAgICAgICAvLyBwYXR0ZXJuIG9mIE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLlVTKSA9ICIwLiMjIyMjI0UwIiBub3QgIiNFMCIKKyAgICAgICAgLy8gc28gcmVzdWx0ID0gMS4yMzQ1NjhFNCBub3QgMS4yMzQ1Njc4OTAxRTQKKyAgICAgICAgLy93aGVuIHRoZSBwYXR0ZXJuIHByb2JsZW0gaXMgZmluYWxpemVkLCBkZWxldGUgY29tbWVudCBtYXJrJy8vJyAKKyAgICAgICAgLy9vZiB0aGUgZm9sbG93aW5nIGNvZGUKKyAgICAgICAgZXhwZWN0MihOdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZS5VUyksIDEyMzQ1LjY3ODkwMSwgIjEuMjM0NTY3ODkwMUU0Iik7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoVUxvY2FsZSkgLi4uIik7IAorICAgICAgICBleHBlY3QyKE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoVUxvY2FsZS5VUyksIDEyMzQ1LjY3ODkwMSwgIjEuMjM0NTY3ODkwMUU0Iik7ICAgICAgICAKKyAgICAKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuIyMjRTAiLCBVUyksIDEyMzQ1LjAsICIxMi4zNEUzIik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjI0UwIiwgVVMpLCAxMjM0NS4wMDAwMSwgIjEyLjM1RTMiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjIyNFMCIsIFVTKSwgMTIzNDUsICIxMi4zNDVFMyIpOworICAgIAorICAgICAgICAvLyBwYXR0ZXJuIG9mIE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoTG9jYWxlLlVTKSA9ICIwLiMjIyMjI0UwIiBub3QgIiNFMCIKKyAgICAgICAgLy8gc28gcmVzdWx0ID0gMS4yMzQ1NjhFNCBub3QgMS4yMzQ1Njc4OTAxRTQKKyAgICAgICAgZXhwZWN0MihOdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZS5GUkFOQ0UpLCAxMjM0NS42Nzg5MDEsICIxLDIzNDU2Nzg5MDFFNCIpOworICAgICAgICBsb2dsbigiVGVzdGluZyBOdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKFVMb2NhbGUpIC4uLiIpOworICAgICAgICBleHBlY3QyKE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoVUxvY2FsZS5GUkFOQ0UpLCAxMjM0NS42Nzg5MDEsICIxLDIzNDU2Nzg5MDFFNCIpOyAgICAgICAgCisgICAgCisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLiMjIyNFMCIsIFVTKSwgNzg5LjEyMzQ1ZS05LCAiNzg5LjEyRS05Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjMC4jIyMjRTAiLCBVUyksIDc4MC5lLTksICI3ODBFLTkiKTsKKyAgICAgICAgZXhwZWN0KG5ldyBEZWNpbWFsRm9ybWF0KCIuIyMjRTAiLCBVUyksIDQ1Njc4LjAsICIuNDU3RTUiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiLiMjI0UwIiwgVVMpLCAwLCAiLjBFMCIpOworICAgICAgICAvKgorICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXRbXSB7IG5ldyBEZWNpbWFsRm9ybWF0KCIjRTAiLCBVUyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIiMjRTAiLCBVUyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIiMjIyNFMCIsIFVTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiMEUwIiwgVVMpLCAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiMDBFMCIsIFVTKSwgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiMDAwRTAiLCBVUyksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgbmV3IExvbmcoNDU2NzgwMDApLAorICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgIjQuNTY3OEU3IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0NS42NzhFNiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNDU2Ny44RTQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjVFNyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNDZFNiIsICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0NTdFNSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgKTsKKyAgICAgICAgIQorICAgICAgICAhIFVucm9sbCB0aGlzIHRlc3QgaW50byBpbmRpdmlkdWFsIHRlc3RzIGJlbG93Li4uCisgICAgICAgICEKKyAgICAgICAgKi8KKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiI0UwIiwgVVMpLCA0NTY3ODAwMCwgIjQuNTY3OEU3Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjRTAiLCBVUyksIDQ1Njc4MDAwLCAiNDUuNjc4RTYiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiIyMjI0UwIiwgVVMpLCA0NTY3ODAwMCwgIjQ1NjcuOEU0Iik7CisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiMEUwIiwgVVMpLCA0NTY3ODAwMCwgIjVFNyIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIjAwRTAiLCBVUyksIDQ1Njc4MDAwLCAiNDZFNiIpOworICAgICAgICBleHBlY3QobmV3IERlY2ltYWxGb3JtYXQoIjAwMEUwIiwgVVMpLCA0NTY3ODAwMCwgIjQ1N0U1Iik7CisgICAgICAgIC8qCisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiIyMjRTAiLCBVUywgc3RhdHVzKSwKKyAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IG5ldyBEb3VibGUoMC4wMDAwMTIzKSwgIjEyLjNFLTYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgwLjAwMDEyMyksICIxMjNFLTYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgwLjAwMTIzKSwgIjEuMjNFLTMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgwLjAxMjMpLCAiMTIuM0UtMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDAuMTIzKSwgIjEyM0UtMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEuMjMpLCAiMS4yM0UwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEb3VibGUoMTIuMyksICIxMi4zRTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMjMpLCAiMTIzRTAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERvdWJsZSgxMjMwKSwgIjEuMjNFMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAhCisgICAgICAgICEgVW5yb2xsIHRoaXMgdGVzdCBpbnRvIGluZGl2aWR1YWwgdGVzdHMgYmVsb3cuLi4KKyAgICAgICAgIQorICAgICAgICAqLworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjIyNFMCIsIFVTKSwgMC4wMDAwMTIzLCAiMTIuM0UtNiIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjIyNFMCIsIFVTKSwgMC4wMDAxMjMsICIxMjNFLTYiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiIyMjRTAiLCBVUyksIDAuMDAxMjMsICIxLjIzRS0zIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAwLjAxMjMsICIxMi4zRS0zIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIiMjI0UwIiwgVVMpLCAwLjEyMywgIjEyM0UtMyIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjIyNFMCIsIFVTKSwgMS4yMywgIjEuMjNFMCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjIyNFMCIsIFVTKSwgMTIuMywgIjEyLjNFMCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjIyNFMCIsIFVTKSwgMTIzLjAsICIxMjNFMCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIjIyNFMCIsIFVTKSwgMTIzMC4wLCAiMS4yM0UzIik7CisgICAgICAgIC8qCisgICAgICAgIGV4cGVjdChuZXcgRGVjaW1hbEZvcm1hdCgiMC4jRSswMCIsIFVTLCBzdGF0dXMpLAorICAgICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgbmV3IERvdWJsZSgwLjAwMDEyKSwgIjEuMkUtMDQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExvbmcoMTIwMDApLCAgICAgIjEuMkUrMDQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgIQorICAgICAgICAhIFVucm9sbCB0aGlzIHRlc3QgaW50byBpbmRpdmlkdWFsIHRlc3RzIGJlbG93Li4uCisgICAgICAgICEKKyAgICAgICAgKi8KKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiMC4jRSswMCIsIFVTKSwgMC4wMDAxMiwgIjEuMkUtMDQiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiMC4jRSswMCIsIFVTKSwgMTIwMDAsICIxLjJFKzA0Iik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFVwZ3JhZGUgdG8gYWxwaGFXb3JrcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQYWQoKSB7CisgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoIipeIyMuIyMiLCBVUyksIDAsICJeXl5eMCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KCIqXiMjLiMjIiwgVVMpLCAtMS4zLCAiXi0xLjMiKTsKKyAgICAgICAgZXhwZWN0MigKKyAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KCIjIzAuMCMjIyNFMCpfICdnLW0vc14yJyIsIFVTKSwgCisgICAgICAgICAgICAwLCAKKyAgICAgICAgICAgICIwLjBFMF9fX19fXyBnLW0vc14yIik7IAorICAgICAgICBleHBlY3QoCisgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLjAjIyMjRTAqXyAnZy1tL3NeMiciLCBVUyksIAorICAgICAgICAgICAgMS4wIC8gMywgCisgICAgICAgICAgICAiMzMzLjMzM0UtM18gZy1tL3NeMiIpOyAKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdCgiIyMwLjAjIyMjKl8gJ2ctbS9zXjInIiwgVVMpLCAwLCAiMC4wX19fX19fIGctbS9zXjIiKTsKKyAgICAgICAgZXhwZWN0KAorICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXQoIiMjMC4wIyMjIypfICdnLW0vc14yJyIsIFVTKSwgCisgICAgICAgICAgICAxLjAgLyAzLCAKKyAgICAgICAgICAgICIwLjMzMzMzX18gZy1tL3NeMiIpOyAKKyAgICAKKyAgICAgICAgLy8gVGVzdCBwYWRkaW5nIGJlZm9yZSBhIHNpZ24KKyAgICAgICAgZmluYWwgU3RyaW5nIGZvcm1hdFN0ciA9ICIqeCMsIyMjLCMjIywjIzAuMCM7KngoIyMjLCMjIywjIzAuMCMpIjsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgLTEwLCAieHh4eHh4eHh4eCgxMC4wKSIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0ciwgVVMpLCAtMTAwMCwgInh4eHh4eHgoMSwwMDAuMCkiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgLTEwMDAwMDAsICJ4eHgoMSwwMDAsMDAwLjApIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIC0xMDAuMzcsICJ4eHh4eHh4eCgxMDAuMzcpIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIC0xMDQ1Ni4zNywgInh4eHh4KDEwLDQ1Ni4zNykiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIsIFVTKSwgLTExMjA0NTYuMzcsICJ4eCgxLDEyMCw0NTYuMzcpIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIC0xMTIwNDU2MDAuMzcsICIoMTEyLDA0NSw2MDAuMzcpIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIC0xMjUyMDQ1NjAwLjM3LCAiKDEsMjUyLDA0NSw2MDAuMzcpIik7CisgICAgCisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDEwLCAieHh4eHh4eHh4eHh4MTAuMCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0ciwgVVMpLCAxMDAwLCAieHh4eHh4eHh4MSwwMDAuMCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0ciwgVVMpLCAxMDAwMDAwLCAieHh4eHgxLDAwMCwwMDAuMCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0ciwgVVMpLCAxMDAuMzcsICJ4eHh4eHh4eHh4MTAwLjM3Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDEwNDU2LjM3LCAieHh4eHh4eDEwLDQ1Ni4zNyIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0ciwgVVMpLCAxMTIwNDU2LjM3LCAieHh4eDEsMTIwLDQ1Ni4zNyIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0ciwgVVMpLCAxMTIwNDU2MDAuMzcsICJ4eDExMiwwNDUsNjAwLjM3Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyLCBVUyksIDEwMjUyMDQ1NjAwLjM3LCAiMTAsMjUyLDA0NSw2MDAuMzciKTsKKyAgICAKKyAgICAgICAgLy8gVGVzdCBwYWRkaW5nIGJldHdlZW4gYSBzaWduIGFuZCBhIG51bWJlcgorICAgICAgICBmaW5hbCBTdHJpbmcgZm9ybWF0U3RyMiA9ICIjLCMjIywjIyMsIyMwLjAjKng7KCMjIywjIyMsIyMwLjAjKngpIjsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIC0xMCwgIigxMC4weHh4eHh4eHh4eCkiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIC0xMDAwLCAiKDEsMDAwLjB4eHh4eHh4KSIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgLTEwMDAwMDAsICIoMSwwMDAsMDAwLjB4eHgpIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAtMTAwLjM3LCAiKDEwMC4zN3h4eHh4eHh4KSIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgLTEwNDU2LjM3LCAiKDEwLDQ1Ni4zN3h4eHh4KSIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgLTExMjA0NTYuMzcsICIoMSwxMjAsNDU2LjM3eHgpIik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAtMTEyMDQ1NjAwLjM3LCAiKDExMiwwNDUsNjAwLjM3KSIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgLTEyNTIwNDU2MDAuMzcsICIoMSwyNTIsMDQ1LDYwMC4zNykiKTsgCisgICAgCisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAxMCwgIjEwLjB4eHh4eHh4eHh4eHgiKTsKKyAgICAgICAgZXhwZWN0MihuZXcgRGVjaW1hbEZvcm1hdChmb3JtYXRTdHIyLCBVUyksIDEwMDAsICIxLDAwMC4weHh4eHh4eHh4Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAxMDAwMDAwLCAiMSwwMDAsMDAwLjB4eHh4eCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgMTAwLjM3LCAiMTAwLjM3eHh4eHh4eHh4eCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgMTA0NTYuMzcsICIxMCw0NTYuMzd4eHh4eHh4Iik7CisgICAgICAgIGV4cGVjdDIobmV3IERlY2ltYWxGb3JtYXQoZm9ybWF0U3RyMiwgVVMpLCAxMTIwNDU2LjM3LCAiMSwxMjAsNDU2LjM3eHh4eCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgMTEyMDQ1NjAwLjM3LCAiMTEyLDA0NSw2MDAuMzd4eCIpOworICAgICAgICBleHBlY3QyKG5ldyBEZWNpbWFsRm9ybWF0KGZvcm1hdFN0cjIsIFVTKSwgMTAyNTIwNDU2MDAuMzcsICIxMCwyNTIsMDQ1LDYwMC4zNyIpOworICAgIAorICAgICAgICAvL3Rlc3RpbmcgdGhlIHNldFBhZENoYXJhY3RlcihVbmljb2RlU3RyaW5nKSBhbmQgZ2V0UGFkQ2hhcmFjdGVyU3RyaW5nKCkKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIyIsIFVTKTsKKyAgICAgICAgY2hhciBwYWRTdHJpbmcgPSAnUCc7CisgICAgICAgIGZtdC5zZXRQYWRDaGFyYWN0ZXIocGFkU3RyaW5nKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIipQIyMuIyMiLCBEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfUFJFRklYLCA1LCBwYWRTdHJpbmcpOworICAgICAgICBmbXQuc2V0UGFkQ2hhcmFjdGVyKCdeJyk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIqXiMiLCBEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfUFJFRklYLCAxLCAnXicpOworICAgICAgICAvL2NvbW1lbnRlZCB1bnRpbGwgaW1wbGVtZW50YXRpb24gaXMgY29tcGxldGUKKyAgICAgICAgLyogIGZtdC5zZXRQYWRDaGFyYWN0ZXIoKFVuaWNvZGVTdHJpbmcpIl5eXiIpOworICAgICAgICAgIGV4cGVjdFBhZChmbXQsICIqXl5eIyIsIERlY2ltYWxGb3JtYXQua1BhZEJlZm9yZVByZWZpeCwgMywgKFVuaWNvZGVTdHJpbmcpIl5eXiIpOworICAgICAgICAgIHBhZFN0cmluZy5yZW1vdmUoKTsKKyAgICAgICAgICBwYWRTdHJpbmcuYXBwZW5kKChVQ2hhcikweDAwNjEpOworICAgICAgICAgIHBhZFN0cmluZy5hcHBlbmQoKFVDaGFyKTB4MDMwMik7CisgICAgICAgICAgZm10LnNldFBhZENoYXJhY3RlcihwYWRTdHJpbmcpOworICAgICAgICAgIFVDaGFyIHBhdHRlcm5DaGFyc1tdPXsweDAwMmEsIDB4MDA2MSwgMHgwMzAyLCAweDAwNjEsIDB4MDMwMiwgMHgwMDIzLCAweDAwMDB9OworICAgICAgICAgIFVuaWNvZGVTdHJpbmcgcGF0dGVybihwYXR0ZXJuQ2hhcnMpOworICAgICAgICAgIGV4cGVjdFBhZChmbXQsIHBhdHRlcm4gLCBEZWNpbWFsRm9ybWF0LmtQYWRCZWZvcmVQcmVmaXgsIDQsIHBhZFN0cmluZyk7CisgICAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVXBncmFkZSB0byBhbHBoYVdvcmtzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm5zMigpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgVVMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIyIsIFVTKTsKKyAgICAKKyAgICAgICAgY2hhciBoYXQgPSAweDAwNUU7IC8qXiovCisgICAgCisgICAgICAgIGV4cGVjdFBhZChmbXQsICIqXiMiLCBEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfUFJFRklYLCAxLCBoYXQpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiJCpeIyIsIERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1BSRUZJWCwgMiwgaGF0KTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIiMqXiIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9TVUZGSVgsIDEsIGhhdCk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIjJCpeIiwgRGVjaW1hbEZvcm1hdC5QQURfQUZURVJfU1VGRklYLCAyLCBoYXQpOworICAgICAgICBleHBlY3RQYWQoZm10LCAiJCpeJCMiLCAtMSk7CisgICAgICAgIGV4cGVjdFBhZChmbXQsICIjJCpeJCIsIC0xKTsKKyAgICAgICAgZXhwZWN0UGFkKGZtdCwgIidwcmUnIywjIzAqeCdwb3N0JyIsIERlY2ltYWxGb3JtYXQuUEFEX0JFRk9SRV9TVUZGSVgsIDEyLCAoY2hhcikgMHgwMDc4IC8qeCovKTsgCisgICAgICAgIGV4cGVjdFBhZChmbXQsICInJyMwKngiLCBEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfU1VGRklYLCAzLCAoY2hhcikgMHgwMDc4IC8qeCovKTsgCisgICAgICAgIGV4cGVjdFBhZChmbXQsICInSScnbGwnKmEjIyMuIyMiLCBEZWNpbWFsRm9ybWF0LlBBRF9BRlRFUl9QUkVGSVgsIDEwLCAoY2hhcikgMHgwMDYxIC8qYSovKTsgCisgICAgCisgICAgICAgIGZtdC5hcHBseVBhdHRlcm4oIkFBIywjIzAuMDBaWiIpOworICAgICAgICBmbXQuc2V0UGFkQ2hhcmFjdGVyKGhhdCk7CisgICAgCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxMCk7CisgICAgCisgICAgICAgIGZtdC5zZXRQYWRQb3NpdGlvbihEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfUFJFRklYKTsKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgIipeQUEjLCMjMC4wMFpaIik7CisgICAgCisgICAgICAgIGZtdC5zZXRQYWRQb3NpdGlvbihEZWNpbWFsRm9ybWF0LlBBRF9CRUZPUkVfU1VGRklYKTsKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgIkFBIywjIzAuMDAqXlpaIik7CisgICAgCisgICAgICAgIGZtdC5zZXRQYWRQb3NpdGlvbihEZWNpbWFsRm9ybWF0LlBBRF9BRlRFUl9TVUZGSVgpOworICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEjLCMjMC4wMFpaKl4iKTsKKyAgICAKKyAgICAgICAgLy8gICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMgorICAgICAgICBTdHJpbmcgZXhwID0gIkFBKl4jLCMjMC4wMFpaIjsKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDEyKTsKKyAgICAgICAgZm10LnNldFBhZFBvc2l0aW9uKERlY2ltYWxGb3JtYXQuUEFEX0FGVEVSX1BSRUZJWCk7CisgICAgICAgIGV4cGVjdFBhdChmbXQsIGV4cCk7CisgICAgCisgICAgICAgIGZtdC5zZXRGb3JtYXRXaWR0aCgxMyk7CisgICAgICAgIC8vICAgICAgICAgICAgICAxMiAgMzQ1Njc4OTAxMjMKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgIkFBKl4jIywjIzAuMDBaWiIpOworICAgIAorICAgICAgICBmbXQuc2V0Rm9ybWF0V2lkdGgoMTQpOworICAgICAgICAvLyAgICAgICAgICAgICAgMTIgIDM0NTY3ODkwMTIzNAorICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEqXiMjIywjIzAuMDBaWiIpOworICAgIAorICAgICAgICBmbXQuc2V0Rm9ybWF0V2lkdGgoMTUpOworICAgICAgICAvLyAgICAgICAgICAgICAgMTIgIDM0NTY3ODkwMTIzNDUKKyAgICAgICAgZXhwZWN0UGF0KGZtdCwgIkFBKl4jIyMjLCMjMC4wMFpaIik7IC8vIFRoaXMgaXMgdGhlIGludGVyZXN0aW5nIGNhc2UKKyAgICAKKyAgICAgICAgZm10LnNldEZvcm1hdFdpZHRoKDE2KTsKKyAgICAgICAgLy8gICAgICAgICAgICAgIDEyICAzNDU2Nzg5MDEyMzQ1NgorICAgICAgICBleHBlY3RQYXQoZm10LCAiQUEqXiMsIyMjLCMjMC4wMFpaIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlZ2lzdHJhdGlvbigpIHsKKyAgICAgICAgZmluYWwgVUxvY2FsZSBTUkNfTE9DID0gVUxvY2FsZS5GUkFOQ0U7CisgICAgICAgIGZpbmFsIFVMb2NhbGUgU1dBUF9MT0MgPSBVTG9jYWxlLlVTOworCisgICAgICAgIGNsYXNzIFRlc3RGYWN0b3J5IGV4dGVuZHMgU2ltcGxlTnVtYmVyRm9ybWF0RmFjdG9yeSB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgY3VycmVuY3lTdHlsZTsKKworICAgICAgICAgICAgVGVzdEZhY3RvcnkoKSB7CisgICAgICAgICAgICAgICAgc3VwZXIoU1JDX0xPQywgdHJ1ZSk7CisgICAgICAgICAgICAgICAgY3VycmVuY3lTdHlsZSA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoU1dBUF9MT0MpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgTnVtYmVyRm9ybWF0IGNyZWF0ZUZvcm1hdChVTG9jYWxlIGxvYywgaW50IGZvcm1hdFR5cGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZm9ybWF0VHlwZSA9PSBGT1JNQVRfQ1VSUkVOQ1kpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbmN5U3R5bGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBOdW1iZXJGb3JtYXQgZjAgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKFNXQVBfTE9DKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGYxID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShTUkNfTE9DKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGYyID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoU1JDX0xPQyk7CisgICAgICAgIE9iamVjdCBrZXkgPSBOdW1iZXJGb3JtYXQucmVnaXN0ZXJGYWN0b3J5KG5ldyBUZXN0RmFjdG9yeSgpKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGYzID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoU1JDX0xPQyk7CisgICAgICAgIE51bWJlckZvcm1hdCBmNCA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoU1JDX0xPQyk7CisgICAgICAgIE51bWJlckZvcm1hdC51bnJlZ2lzdGVyKGtleSk7IC8vIHJlc3RvcmUgZm9yIG90aGVyIHRlc3RzCisgICAgICAgIE51bWJlckZvcm1hdCBmNSA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKFNSQ19MT0MpOworCisgICAgICAgIGZsb2F0IG4gPSAxMjM0LjU2N2Y7CisgICAgICAgIGxvZ2xuKCJmMCBzd2FwIGludDogIiArIGYwLmZvcm1hdChuKSk7CisgICAgICAgIGxvZ2xuKCJmMSBzcmMgaW50OiAiICsgZjEuZm9ybWF0KG4pKTsKKyAgICAgICAgbG9nbG4oImYyIHNyYyBjdXI6ICIgKyBmMi5mb3JtYXQobikpOworICAgICAgICBsb2dsbigiZjMgcmVnIGN1cjogIiArIGYzLmZvcm1hdChuKSk7CisgICAgICAgIGxvZ2xuKCJmNCByZWcgaW50OiAiICsgZjQuZm9ybWF0KG4pKTsKKyAgICAgICAgbG9nbG4oImY1IHVucmVnIGN1cjogIiArIGY1LmZvcm1hdChuKSk7CisKKyAgICAgICAgaWYgKCFmMy5mb3JtYXQobikuZXF1YWxzKGYwLmZvcm1hdChuKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJyZWdpc3RlcmVkIHNlcnZpY2UgZGlkIG5vdCBtYXRjaCIpOworICAgICAgICB9CisgICAgICAgIGlmICghZjQuZm9ybWF0KG4pLmVxdWFscyhmMS5mb3JtYXQobikpKSB7CisgICAgICAgICAgICBlcnJsbigicmVnaXN0ZXJlZCBzZXJ2aWNlIGRpZCBub3QgaW5oZXJpdCIpOworICAgICAgICB9CisgICAgICAgIGlmICghZjUuZm9ybWF0KG4pLmVxdWFscyhmMi5mb3JtYXQobikpKSB7CisgICAgICAgICAgICBlcnJsbigidW5yZWdpc3RlcmVkIHNlcnZpY2UgZGlkIG5vdCBtYXRjaCBvcmlnaW5hbCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFNjaWVudGlmaWMyKCkgeworICAgICAgICAvLyBqYiAyNTUyCisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gKERlY2ltYWxGb3JtYXQpTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoKTsKKyAgICAgICAgTnVtYmVyIG51bSA9IG5ldyBEb3VibGUoMTIuMzQpOworICAgICAgICBleHBlY3QoZm10LCBudW0sICIkMTIuMzQiKTsKKyAgICAgICAgZm10LnNldFNjaWVudGlmaWNOb3RhdGlvbih0cnVlKTsKKyAgICAgICAgZXhwZWN0KGZtdCwgbnVtLCAiJDEuMjNFMSIpOworICAgICAgICBmbXQuc2V0U2NpZW50aWZpY05vdGF0aW9uKGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KGZtdCwgbnVtLCAiJDEyLjM0Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFNjaWVudGlmaWNHcm91cGluZygpIHsKKyAgICAgICAgLy8gamIgMjU1MgorICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjIyMuIyNFMCIpOworICAgICAgICBleHBlY3QoZm10LCAuMDEyMzQsICIxMi4zRS0zIik7CisgICAgICAgIGV4cGVjdChmbXQsIC4xMjM0LCAiMTIzRS0zIik7CisgICAgICAgIGV4cGVjdChmbXQsIDEuMjM0LCAiMS4yM0UwIik7CisgICAgICAgIGV4cGVjdChmbXQsIDEyLjM0LCAiMTIuM0UwIik7CisgICAgICAgIGV4cGVjdChmbXQsIDEyMy40LCAiMTIzRTAiKTsKKyAgICAgICAgZXhwZWN0KGZtdCwgMTIzNCwgIjEuMjNFMyIpOworICAgIH0KKworICAgIC8vIGFkZGl0aW9uYWwgY292ZXJhZ2UgdGVzdHMKKyAgICAKKyAgICAvLyBzaWdoLCBjYW4ndCBoYXZlIHN0YXRpYyBpbm5lciBjbGFzc2VzLCB3aHkgbm90PworCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIFBJIGV4dGVuZHMgTnVtYmVyIHsKKyAgICAgICAgcHJpdmF0ZSBQSSgpIHt9CisgICAgICAgIHB1YmxpYyBpbnQgaW50VmFsdWUoKSB7IHJldHVybiAoaW50KU1hdGguUEk7IH0KKyAgICAgICAgcHVibGljIGxvbmcgbG9uZ1ZhbHVlKCkgeyByZXR1cm4gKGxvbmcpTWF0aC5QSTsgfQorICAgICAgICBwdWJsaWMgZmxvYXQgIGZsb2F0VmFsdWUoKSB7IHJldHVybiAoZmxvYXQpTWF0aC5QSTsgfQorICAgICAgICBwdWJsaWMgZG91YmxlIGRvdWJsZVZhbHVlKCkgeyByZXR1cm4gKGRvdWJsZSlNYXRoLlBJOyB9CisgICAgICAgIHB1YmxpYyBieXRlIGJ5dGVWYWx1ZSgpIHsgcmV0dXJuIChieXRlKU1hdGguUEk7IH0KKyAgICAgICAgcHVibGljIHNob3J0IHNob3J0VmFsdWUoKSB7IHJldHVybiAoc2hvcnQpTWF0aC5QSTsgfQorCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTnVtYmVyIElOU1RBTkNFID0gbmV3IFBJKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKCk7IC8vIGRlZmF1bHQgbG9jYWxlCisgICAgICAgIGxvZ2xuKGZtdC5mb3JtYXQobmV3IEJpZ0ludGVnZXIoIjEyMzQ1Njc4OTA5ODc2NTQzMjEyMzQ1Njc4OTA5ODc2NTQzMjEiLCAxMCkpKTsKKworICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKCk7IC8vIGRlZmF1bHQgbG9jYWxlCisKKyAgICAgICAgbG9nbG4oZm10LmZvcm1hdChQSS5JTlNUQU5DRSkpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb2dsbihmbXQuZm9ybWF0KCIxMjM0NSIpKTsKKyAgICAgICAgICAgIGVycmxuKCJudW1iZXJmb3JtYXQgb2Ygc3RyaW5nIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogbnVtYmVyZm9ybWF0IG9mIHN0cmluZyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBoYXNoID0gZm10Lmhhc2hDb2RlKCk7CisKKyAgICAgICAgbG9nbG4oImNvbXBhcmUgdG8gc3RyaW5nIHJldHVybnM6ICIgKyBmbXQuZXF1YWxzKCIiKSk7CisKKyAgICAgICAgLy8gRm9yIElDVSAyLjYgLSBhbGFuCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIFVTID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiJyomJycgJ1x1MDBBNCcgJycmKicgIywjIzAuMDAiLCBVUyk7CisgICAgICAgIGRmLnNldEN1cnJlbmN5KEN1cnJlbmN5LmdldEluc3RhbmNlKCJJTlIiKSk7CisgICAgICAgIGV4cGVjdDIoZGYsIDEuMCwgIiomJyBSZS4gJyYqIDEuMDAiKTsKKyAgICAgICAgZXhwZWN0MihkZiwgLTIuMCwgIi0qJicgUnMuICcmKiAyLjAwIik7CisgICAgICAgIGRmLmFwcGx5UGF0dGVybigiIywjIzAuMDAgJyomJycgJ1x1MDBBNCcgJycmKiciKTsKKyAgICAgICAgZXhwZWN0MihkZiwgMi4wLCAiMi4wMCAqJicgUnMuICcmKiIpOworICAgICAgICBleHBlY3QyKGRmLCAtMS4wLCAiLTEuMDAgKiYnIFJlLiAnJioiKTsKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgamF2YS5tYXRoLkJpZ0RlY2ltYWwgciA9IGRmLmdldFJvdW5kaW5nSW5jcmVtZW50KCk7CisvLyNlbHNlCisvLyMjICAgICAgICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgciA9IGRmLmdldFJvdW5kaW5nSW5jcmVtZW50KCk7CisvLyNlbmRpZgorICAgICAgICBpZiAociAhPSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogcm91bmRpbmcgPSAiICsgciArICIsIGV4cGVjdCBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChkZi5pc1NjaWVudGlmaWNOb3RhdGlvbigpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogaXNTY2llbnRpZmljTm90YXRpb24gPSB0cnVlLCBleHBlY3QgZmFsc2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIGRmLmFwcGx5UGF0dGVybigiMC4wMDAwMCIpOworICAgICAgICBkZi5zZXRTY2llbnRpZmljTm90YXRpb24odHJ1ZSk7CisgICAgICAgIGlmICghZGYuaXNTY2llbnRpZmljTm90YXRpb24oKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGlzU2NpZW50aWZpY05vdGF0aW9uID0gZmFsc2UsIGV4cGVjdCB0cnVlIik7CisgICAgICAgIH0KKyAgICAgICAgZGYuc2V0TWluaW11bUV4cG9uZW50RGlnaXRzKChieXRlKTIpOworICAgICAgICBpZiAoZGYuZ2V0TWluaW11bUV4cG9uZW50RGlnaXRzKCkgIT0gMikgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldE1pbmltdW1FeHBvbmVudERpZ2l0cyA9ICIgKworICAgICAgICAgICAgICAgICAgZGYuZ2V0TWluaW11bUV4cG9uZW50RGlnaXRzKCkgKyAiLCBleHBlY3QgMiIpOworICAgICAgICB9CisgICAgICAgIGRmLnNldEV4cG9uZW50U2lnbkFsd2F5c1Nob3duKHRydWUpOworICAgICAgICBpZiAoIWRmLmlzRXhwb25lbnRTaWduQWx3YXlzU2hvd24oKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGlzRXhwb25lbnRTaWduQWx3YXlzU2hvd24gPSBmYWxzZSwgZXhwZWN0IHRydWUiKTsKKyAgICAgICAgfQorICAgICAgICBkZi5zZXRTZWNvbmRhcnlHcm91cGluZ1NpemUoMCk7CisgICAgICAgIGlmIChkZi5nZXRTZWNvbmRhcnlHcm91cGluZ1NpemUoKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0U2Vjb25kYXJ5R3JvdXBpbmdTaXplID0gIiArCisgICAgICAgICAgICAgICAgICBkZi5nZXRTZWNvbmRhcnlHcm91cGluZ1NpemUoKSArICIsIGV4cGVjdCAwIik7CisgICAgICAgIH0KKyAgICAgICAgZXhwZWN0MihkZiwgMy4xNDE1OSwgIjMuMTQxNTlFKzAwIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFdoaXRlU3BhY2VQYXJzaW5nKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBVUyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCJhICBiIzBjICAiLCBVUyk7CisgICAgICAgIGludCBuID0gMTIzNDsKKyAgICAgICAgZXhwZWN0KGZtdCwgImEgYjEyMzRjICIsIG4pOworICAgICAgICBleHBlY3QoZm10LCAiYSAgIGIxMjM0YyAgICIsIG4pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgY3VycmVuY2llcyB3aG9zZSBkaXNwbGF5IG5hbWUgaXMgYSBDaG9pY2VGb3JtYXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBsZXhDdXJyZW5jeSgpIHsKKyAgICAgICAgTG9jYWxlIGxvYyA9IG5ldyBMb2NhbGUoImVuIiwgIklOIiwgIiIpOworICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jKTsKKworICAgICAgICBleHBlY3QyKGZtdCwgMS4wLCAiUmUuIDEuMDAiKTsKKyAgICAgICAgZXhwZWN0KGZtdCwgMS4wMDEsICJSZS4gMS4wMCIpOyAvLyB0cmlja3kKKyAgICAgICAgZXhwZWN0MihmbXQsIDEyMzQ1Njc4LjAsICJScy4gMSwyMyw0NSw2NzguMDAiKTsKKyAgICAgICAgZXhwZWN0MihmbXQsIDAuNSwgIlJzLiAwLjUwIik7CisgICAgICAgIGV4cGVjdDIoZm10LCAtMS4wLCAiLVJlLiAxLjAwIik7CisgICAgICAgIGV4cGVjdDIoZm10LCAtMTAuMCwgIi1Scy4gMTAuMDAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VycmVuY3lLZXl3b3JkKCkgeworICAgIFVMb2NhbGUgbG9jYWxlID0gbmV3IFVMb2NhbGUoInRoX1RIQGN1cnJlbmN5PVFRUSIpOworICAgIE51bWJlckZvcm1hdCBmb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2NhbGUpOworICAgIFN0cmluZyByZXN1bHQgPSBmb3JtYXQuZm9ybWF0KDEyLjM0Zik7CisgICAgaWYgKCEiUVFRMTIuMzQiLmVxdWFscyhyZXN1bHQpKSB7CisgICAgICAgIGVycmxuKCJnb3QgdW5leHBlY3RlZCBjdXJyZW5jeTogIiArIHJlc3VsdCk7CisgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGhyZWFkZWRGb3JtYXQoKSB7CisKKyAgICAgICAgY2xhc3MgRm9ybWF0VGFzayBpbXBsZW1lbnRzIFJ1bm5hYmxlIHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10OworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZjsKKyAgICAgICAgICAgIGJvb2xlYW4gaW5jOworICAgICAgICAgICAgZmxvYXQgbnVtOworCisgICAgICAgICAgICBGb3JtYXRUYXNrKERlY2ltYWxGb3JtYXQgZm10LCBpbnQgaW5kZXgpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmZtdCA9IGZtdDsKKyAgICAgICAgICAgICAgICB0aGlzLmJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICB0aGlzLmluYyA9IChpbmRleCAmIDB4MSkgPT0gMDsKKyAgICAgICAgICAgICAgICB0aGlzLm51bSA9IGluYyA/IDAgOiAxMDAwMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgeworICAgICAgICBpZiAoaW5jKSB7CisgICAgICAgICAgICB3aGlsZSAobnVtIDwgMTAwMDApIHsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm10LmZvcm1hdChudW0pICsgIlxuIik7CisgICAgICAgICAgICBudW0gKz0gMy4xNDE1OTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHdoaWxlIChudW0gPiAwKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKGZtdC5mb3JtYXQobnVtKSArICJcbiIpOworICAgICAgICAgICAgbnVtIC09IDMuMTQxNTk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyByZXN1bHQoKSB7CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwLiMjIyMiKTsKKyAgICAgICAgRm9ybWF0VGFza1tdIHRhc2tzID0gbmV3IEZvcm1hdFRhc2tbOF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFza3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdGFza3NbaV0gPSBuZXcgRm9ybWF0VGFzayhmbXQsIGkpOworICAgIH0KKworICAgIFRlc3RVdGlsLnJ1blVudGlsRG9uZSh0YXNrcyk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDI7IGkgPCB0YXNrcy5sZW5ndGg7IGkrKykgeworICAgICAgICBTdHJpbmcgc3RyMSA9IHRhc2tzW2ldLnJlc3VsdCgpOworICAgICAgICBTdHJpbmcgc3RyMiA9IHRhc2tzW2ktMl0ucmVzdWx0KCk7CisgICAgICAgICAgICBpZiAoIXN0cjEuZXF1YWxzKHN0cjIpKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJtaXNtYXRjaCBhdCAiICsgaSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHN0cjEpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzdHIyKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiZGVjaW1hbCBmb3JtYXQgdGhyZWFkIG1pc21hdGNoIik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHIxID0gc3RyMjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RQZXJNaWxsKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjIyMuIyMjXHUyMDMwIik7CisgICAgICAgIGFzc2VydEVxdWFscygiMC40ODU3IHggIyMjLiMjI1x1MjAzMCIsCisgICAgICAgICAgICAgICAgICAgICAiNDg1LjdcdTIwMzAiLCBmbXQuZm9ybWF0KDAuNDg1NykpOworCisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bSA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIHN5bS5zZXRQZXJNaWxsKCdtJyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10MiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIiLCBzeW0pOworICAgICAgICBmbXQyLmFwcGx5TG9jYWxpemVkUGF0dGVybigiIyMjLiMjI20iKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIwLjQ4NTcgeCAjIyMuIyMjbSIsCisgICAgICAgICAgICAgICAgICAgICAiNDg1LjdtIiwgZm10Mi5mb3JtYXQoMC40ODU3KSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdElsbGVnYWxQYXR0ZXJucygpIHsKKyAgICAgICAgLy8gVGVzdCBjYXNlczoKKyAgICAgICAgLy8gUHJlZml4IHdpdGggIi06IiBmb3IgaWxsZWdhbCBwYXR0ZXJucworICAgICAgICAvLyBQcmVmaXggd2l0aCAiKzoiIGZvciBsZWdhbCBwYXR0ZXJucworICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgLy8gVW5xdW90ZWQgc3BlY2lhbCBjaGFyYWN0ZXJzIGluIHRoZSBzdWZmaXggYXJlIGlsbGVnYWwKKyAgICAgICAgICAgICItOjAwMC4wMDB8IyMjIiwKKyAgICAgICAgICAgICIrOjAwMC4wMDAnfCMjIyciLAorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHBhdD1EQVRBW2ldOworICAgICAgICAgICAgYm9vbGVhbiB2YWxpZCA9IHBhdC5jaGFyQXQoMCkgPT0gJysnOworICAgICAgICAgICAgcGF0ID0gcGF0LnN1YnN0cmluZygyKTsKKyAgICAgICAgICAgIEV4Y2VwdGlvbiBlID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy8gbG9jYWxlIGRvZXNuJ3QgbWF0dGVyIGhlcmUKKyAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdChwYXQpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUxKSB7CisgICAgICAgICAgICAgICAgZSA9IGUxOworICAgICAgICAgICAgfSBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgICAgIGUgPSBlMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBtc2cgPSAoZT09bnVsbCkgPyAic3VjY2VzcyIgOiBlLmdldE1lc3NhZ2UoKTsKKyAgICAgICAgICAgIGlmICgoZT09bnVsbCkgPT0gdmFsaWQpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6IHBhdHRlcm4gXCIiICsgcGF0ICsgIlwiOiAiICsgbXNnKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHBhdHRlcm4gXCIiICsgcGF0ICsgIlwiIHNob3VsZCBoYXZlICIgKworICAgICAgICAgICAgICAgICAgICAgICh2YWxpZD8ic3VjY2VlZGVkIjoiZmFpbGVkIikgKyAiOyBnb3QgIiArIG1zZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIEN1cnJlbmN5QW1vdW50IHVzaW5nIHRoZSBnaXZlbiBOdW1iZXJGb3JtYXQsIHdpdGgKKyAgICAgKiB0aGUgJ2RlbGltJyBjaGFyYWN0ZXIgc2VwYXJhdGluZyB0aGUgbnVtYmVyIGFuZCB0aGUgY3VycmVuY3kuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgQ3VycmVuY3lBbW91bnQgcGFyc2VDdXJyZW5jeUFtb3VudChTdHJpbmcgc3RyLCBOdW1iZXJGb3JtYXQgZm10LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBkZWxpbSkgCisgICAgICAgIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIGludCBpID0gc3RyLmluZGV4T2YoZGVsaW0pOworICAgICAgICByZXR1cm4gbmV3IEN1cnJlbmN5QW1vdW50KGZtdC5wYXJzZShzdHIuc3Vic3RyaW5nKDAsaSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1cnJlbmN5LmdldEluc3RhbmNlKHN0ci5zdWJzdHJpbmcoaSsxKSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUgbmV4dCB0b2tlbiBmcm9tIHRoaXMKKyAgICAgKiBpdGVyYXRvci4gIFRoZSBpbnRlZ2VyIHdpbGwgYmUgYW4gaW5kZXggaW50byB0aGUgZ2l2ZW4gbGlzdCwgb3IKKyAgICAgKiAtMSBpZiB0aGVyZSBhcmUgbm8gbW9yZSB0b2tlbnMsIG9yIC0yIGlmIHRoZSB0b2tlbiBpcyBub3Qgb24KKyAgICAgKiB0aGUgbGlzdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQga2V5d29yZEluZGV4KFN0cmluZyB0b2spIHsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPEtFWVdPUkRTLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAodG9rLmVxdWFscyhLRVlXT1JEU1tpXSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEtFWVdPUkRTW10gPSB7CisgICAgICAgIC8qMCovICJyZWY9IiwgLy8gPHJlZmVyZW5jZSBwYXR0ZXJuIHRvIHBhcnNlIG51bWJlcnM+CisgICAgICAgIC8qMSovICJsb2M9IiwgLy8gPGxvY2FsZSBmb3IgZm9ybWF0cz4KKyAgICAgICAgLyoyKi8gImY6IiwgICAvLyA8cGF0dGVybiBvciAnLSc+IDxudW1iZXI+IDxleHAuIHN0cmluZz4KKyAgICAgICAgLyozKi8gImZwOiIsICAvLyA8cGF0dGVybiBvciAnLSc+IDxudW1iZXI+IDxleHAuIHN0cmluZz4gPGV4cC4gbnVtYmVyPgorICAgICAgICAvKjQqLyAicnQ6IiwgIC8vIDxwYXR0ZXJuIG9yICctJz4gPChleHAuKSBudW1iZXI+IDwoZXhwLikgc3RyaW5nPgorICAgICAgICAvKjUqLyAicDoiLCAgIC8vIDxwYXR0ZXJuIG9yICctJz4gPHN0cmluZz4gPGV4cC4gbnVtYmVyPgorICAgICAgICAvKjYqLyAicGVycjoiLCAvLyA8cGF0dGVybiBvciAnLSc+IDxpbnZhbGlkIHN0cmluZz4KKyAgICAgICAgLyo3Ki8gInBhdDoiLCAvLyA8cGF0dGVybiBvciAnLSc+IDxleHAuIHRvUGF0dGVybiBvciAnLScgb3IgJ2Vycic+CisgICAgICAgIC8qOCovICJmcGM6IiwgLy8gPGxvYyBvciAnLSc+IDxjdXJyLmFtdD4gPGV4cC4gc3RyaW5nPiA8ZXhwLiBjdXJyLmFtdD4KKyAgICB9OworCisgICAgcHVibGljIHZvaWQgVGVzdENhc2VzKCkgeworICAgICAgICBTdHJpbmcgY2FzZUZpbGVOYW1lID0gIk51bWJlckZvcm1hdFRlc3RDYXNlcy50eHQiOworICAgICAgICBqYXZhLmlvLklucHV0U3RyZWFtIGlzID0gTnVtYmVyRm9ybWF0VGVzdC5jbGFzcy5nZXRSZXNvdXJjZUFzU3RyZWFtKGNhc2VGaWxlTmFtZSk7CisKKyAgICAgICAgUmVzb3VyY2VSZWFkZXIgcmVhZGVyID0gbmV3IFJlc291cmNlUmVhZGVyKGlzLCBjYXNlRmlsZU5hbWUpOworICAgICAgICBUb2tlbkl0ZXJhdG9yIHRva2VucyA9IG5ldyBUb2tlbkl0ZXJhdG9yKHJlYWRlcik7CisKKyAgICAgICAgTG9jYWxlIGxvYyA9IG5ldyBMb2NhbGUoImVuIiwgIlVTIiwgIiIpOworICAgICAgICBEZWNpbWFsRm9ybWF0IHJlZiA9IG51bGwsIGZtdCA9IG51bGw7CisgICAgICAgIE1lYXN1cmVGb3JtYXQgbWZtdCA9IG51bGw7CisgICAgICAgIFN0cmluZyBwYXQgPSBudWxsLCBzdHIgPSBudWxsLCBtbG9jID0gbnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIFN0cmluZyB0b2sgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgIGlmICh0b2sgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIHdoZXJlID0gIigiICsgdG9rZW5zLmdldExpbmVOdW1iZXIoKSArICIpICI7CisgICAgICAgICAgICAgICAgaW50IGNtZCA9IGtleXdvcmRJbmRleCh0b2spOworICAgICAgICAgICAgICAgIHN3aXRjaCAoY21kKSB7CisgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAvLyByZWY9IDxyZWZlcmVuY2UgcGF0dGVybj4KKyAgICAgICAgICAgICAgICAgICAgcmVmID0gbmV3IERlY2ltYWxGb3JtYXQodG9rZW5zLm5leHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUykpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIC8vIGxvYz0gPGxvY2FsZT4KKyAgICAgICAgICAgICAgICAgICAgbG9jID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZSh0b2tlbnMubmV4dCgpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAyOiAvLyBmOgorICAgICAgICAgICAgICAgIGNhc2UgMzogLy8gZnA6CisgICAgICAgICAgICAgICAgY2FzZSA0OiAvLyBydDoKKyAgICAgICAgICAgICAgICBjYXNlIDU6IC8vIHA6CisgICAgICAgICAgICAgICAgICAgIHRvayA9IHRva2Vucy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghdG9rLmVxdWFscygiLSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXQgPSB0b2s7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdCwgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGxvYykpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKHdoZXJlICsgIlBhdHRlcm4gXCIiICsgcGF0ICsgJyInKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpYWUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5zLm5leHQoKTsgLy8gY29uc3VtZSByZW1haW5pbmcgdG9rZW5zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY21kID09IDMpIHRva2Vucy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3RyID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjbWQgPT0gMiB8fCBjbWQgPT0gMyB8fCBjbWQgPT0gNCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGY6IDxwYXR0ZXJuIG9yICctJz4gPG51bWJlcj4gPGV4cC4gc3RyaW5nPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZwOiA8cGF0dGVybiBvciAnLSc+IDxudW1iZXI+IDxleHAuIHN0cmluZz4gPGV4cC4gbnVtYmVyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJ0OiA8cGF0dGVybiBvciAnLSc+IDxudW1iZXI+IDxzdHJpbmc+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG51bSA9IHRva2Vucy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyID0gdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXIgbiA9IChOdW1iZXIpIHJlZi5wYXJzZShudW0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscyh3aGVyZSArICciJyArIHBhdCArICJcIi5mb3JtYXQoIiArIG51bSArICIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyLCBmbXQuZm9ybWF0KG4pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY21kID09IDMpIHsgLy8gZnA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4gPSAoTnVtYmVyKSByZWYucGFyc2UodG9rZW5zLm5leHQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjbWQgIT0gMikgeyAvLyAhPSBmOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMod2hlcmUgKyAnIicgKyBwYXQgKyAiXCIucGFyc2UoXCIiICsgc3RyICsgIlwiKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuLCBmbXQucGFyc2Uoc3RyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHA6IDxwYXR0ZXJuIG9yICctJz4gPHN0cmluZyB0byBwYXJzZT4gPGV4cC4gbnVtYmVyPgorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyID0gdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwc3RyID0gdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXIgZXhwID0gKE51bWJlcikgcmVmLnBhcnNlKGV4cHN0cik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKHdoZXJlICsgJyInICsgcGF0ICsgIlwiLnBhcnNlKFwiIiArIHN0ciArICJcIikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHAsIGZtdC5wYXJzZShzdHIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4od2hlcmUgKyAnIicgKyBwYXQgKyAiXCIucGFyc2UoXCIiICsgc3RyICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIikgdGhyZXcgYW4gZXhjZXB0aW9uIik7CisgICAgICAgICAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgICAgICAgICAgLy8gcGVycjogPHBhdHRlcm4gb3IgJy0nPiA8aW52YWxpZCBzdHJpbmc+CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJVbmRlciBjb25zdHJ1Y3Rpb24iKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgICAgICAgICAgLy8gcGF0OiA8cGF0dGVybj4gPGV4cC4gdG9QYXR0ZXJuLCBvciAnLScgb3IgJ2Vycic+CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZXN0cGF0ID0gdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cHBhdCAgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBib29sZWFuIGVyciAgICA9IGV4cHBhdC5lcXVhbHMoImVyciIpOworICAgICAgICAgICAgICAgICAgICBpZiAodGVzdHBhdC5lcXVhbHMoIi0iKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJbnZhbGlkIGNvbW1hbmQgXCJwYXQ6IC0gZXJyXCIgYXQgIiArICB0b2tlbnMuZGVzY3JpYmVQb3NpdGlvbigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RwYXQgPSBwYXQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4cHBhdC5lcXVhbHMoIi0iKSkgZXhwcGF0ID0gdGVzdHBhdDsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZiA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVzdHBhdCA9PSBwYXQpIHsgLy8gW3NpY10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmID0gZm10OworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmID0gbmV3IERlY2ltYWxGb3JtYXQodGVzdHBhdCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4od2hlcmUgKyAiSW52YWxpZCBwYXR0ZXJuIFwiIiArIHRlc3RwYXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiB3YXMgYWNjZXB0ZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKHdoZXJlICsgJyInICsgdGVzdHBhdCArICJcIi50b1BhdHRlcm4oKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHBhdCwgZi50b1BhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgd2hlcmUgKyAiSW52YWxpZCBwYXR0ZXJuIFwiIiArIHRlc3RwYXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiB0aHJldyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4od2hlcmUgKyAiVmFsaWQgcGF0dGVybiBcIiIgKyB0ZXN0cGF0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIgdGhyZXcgYW4gZXhjZXB0aW9uIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWFlMi5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDg6IC8vIGZwYzoKKyAgICAgICAgICAgICAgICAgICAgdG9rID0gdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0b2suZXF1YWxzKCItIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1sb2MgPSB0b2s7CisgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGwgPSBuZXcgVUxvY2FsZShtbG9jKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZtdCA9IE1lYXN1cmVGb3JtYXQuZ2V0Q3VycmVuY3lGb3JtYXQobCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4od2hlcmUgKyAiTG9jIFwiIiArIHRvayArICciJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWFlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2Vucy5uZXh0KCk7IC8vIGNvbnN1bWUgcmVtYWluaW5nIHRva2VucworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2Vucy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzdHIgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnBjOiA8bG9jIG9yICctJz4gPGN1cnIuYW10PiA8ZXhwLiBzdHJpbmc+IDxleHAuIGN1cnIuYW10PgorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGN1cnJBbXQgPSB0b2tlbnMubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgc3RyID0gdG9rZW5zLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEN1cnJlbmN5QW1vdW50IG4gPSBwYXJzZUN1cnJlbmN5QW1vdW50KGN1cnJBbXQsIHJlZiwgJy8nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscyh3aGVyZSArICJnZXRDdXJyZW5jeUZvcm1hdCgiICsgbWxvYyArICIpLmZvcm1hdCgiICsgY3VyckFtdCArICIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIsIG1mbXQuZm9ybWF0KG4pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG4gPSBwYXJzZUN1cnJlbmN5QW1vdW50KHRva2Vucy5uZXh0KCksIHJlZiwgJy8nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscyh3aGVyZSArICJnZXRDdXJyZW5jeUZvcm1hdCgiICsgbWxvYyArICIpLnBhcnNlKFwiIiArIHN0ciArICJcIikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4sIChDdXJyZW5jeUFtb3VudCkgbWZtdC5wYXJzZU9iamVjdChzdHIpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4od2hlcmUgKyAnIicgKyBwYXQgKyAiXCIucGFyc2UoXCIiICsgc3RyICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIikgdGhyZXcgYW4gZXhjZXB0aW9uIik7CisgICAgICAgICAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgLTE6CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJVbmtub3duIGNvbW1hbmQgXCIiICsgdG9rICsgIlwiIGF0ICIgKyB0b2tlbnMuZGVzY3JpYmVQb3NpdGlvbigpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoamF2YS5pby5JT0V4Y2VwdGlvbiBlKSB7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZSk7CisvLyNlbHNlCisvLyMjICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisvLyNlbmRpZgorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJvdW5kaW5nKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IG5mID0gKERlY2ltYWxGb3JtYXQpIGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKFVMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIGlmIChmYWxzZSkgeyAvLyBmb3IgZGVidWdnaW5nIHNwZWNpZmljIHZhbHVlCisgICAgICAgICAgICBuZi5zZXRSb3VuZGluZ01vZGUoQmlnRGVjaW1hbC5ST1VORF9IQUxGX1VQKTsKKyAgICAgICAgICAgIGNoZWNrUm91bmRpbmcobmYsIG5ldyBCaWdEZWNpbWFsKCIzMDAuMDMwMDAwMDAwMCIpLCAwLCBuZXcgQmlnRGVjaW1hbCgiMC4wMjAwMDAwMDAiKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gZnVsbCB0ZXN0cworICAgICAgICBpbnRbXSByb3VuZGluZ0luY3JlbWVudHMgPSB7MSwgMiwgNSwgMjAsIDUwLCAxMDB9OworICAgICAgICBpbnRbXSB0ZXN0VmFsdWVzID0gezAsIDMwMH07CisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdFZhbHVlcy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgZm9yIChpbnQgbW9kZSA9IEJpZ0RlY2ltYWwuUk9VTkRfVVA7IG1vZGUgPCBCaWdEZWNpbWFsLlJPVU5EX0hBTEZfRVZFTjsgKyttb2RlKSB7IAorICAgICAgICAgICAgICAgIG5mLnNldFJvdW5kaW5nTW9kZShtb2RlKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpbmNyZW1lbnQgPSAwOyBpbmNyZW1lbnQgPCByb3VuZGluZ0luY3JlbWVudHMubGVuZ3RoOyArK2luY3JlbWVudCkgeworICAgICAgICAgICAgICAgICAgICBCaWdEZWNpbWFsIGJhc2UgPSBuZXcgQmlnRGVjaW1hbCh0ZXN0VmFsdWVzW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgQmlnRGVjaW1hbCBySW5jID0gbmV3IEJpZ0RlY2ltYWwocm91bmRpbmdJbmNyZW1lbnRzW2luY3JlbWVudF0pOworICAgICAgICAgICAgICAgICAgICBjaGVja1JvdW5kaW5nKG5mLCAgYmFzZSwgMjAsIHJJbmMpOworICAgICAgICAgICAgICAgICAgICBySW5jID0gbmV3IEJpZ0RlY2ltYWwoIjEuMDAwMDAwMDAwIikuZGl2aWRlKHJJbmMpOworICAgICAgICAgICAgICAgICAgICBjaGVja1JvdW5kaW5nKG5mLCAgYmFzZSwgMjAsIHJJbmMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwkKKyAgICB2b2lkIGNoZWNrUm91bmRpbmcoRGVjaW1hbEZvcm1hdCBuZiwgQmlnRGVjaW1hbCBiYXNlLCBpbnQgaXRlcmF0aW9ucywgQmlnRGVjaW1hbCBpbmNyZW1lbnQpIHsKKy8vI2lmZGVmIEZPVU5EQVRJT04KKy8vIyMgICAgICAgIG5mLnNldFJvdW5kaW5nSW5jcmVtZW50KGluY3JlbWVudCk7CisvLyNlbHNlCisgICAgICAgIG5mLnNldFJvdW5kaW5nSW5jcmVtZW50KGluY3JlbWVudC50b0JpZ0RlY2ltYWwoKSk7CisvLyNlbmRpZgorICAgICAgICBCaWdEZWNpbWFsIGxhc3RQYXJzZWQgPSBuZXcgQmlnRGVjaW1hbChJbnRlZ2VyLk1JTl9WQUxVRSk7IC8vIHVzZWQgdG8gbWFrZSBzdXJlIHRoYXQgcm91bmRpbmcgaXMgbW9ub3RvbmljCisgICAgICAgIGZvciAoaW50IGkgPSAtaXRlcmF0aW9uczsgaSA8PSBpdGVyYXRpb25zOyArK2kpIHsJCQkKKyAgICAgICAgICAgIEJpZ0RlY2ltYWwgaVZhbHVlID0gYmFzZS5hZGQoaW5jcmVtZW50Lm11bHRpcGx5KG5ldyBCaWdEZWNpbWFsKGkpKS5tb3ZlUG9pbnRMZWZ0KDEpKTsKKyAgICAgICAgICAgIEJpZ0RlY2ltYWwgc21hbGxJbmNyZW1lbnQgPSBuZXcgQmlnRGVjaW1hbCgiMC4wMDAwMDAwMSIpOworICAgICAgICAgICAgaWYgKGlWYWx1ZS5zaWdudW0oKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgc21hbGxJbmNyZW1lbnQubXVsdGlwbHkoaVZhbHVlKTsgLy8gc2NhbGUgdW5sZXNzIHplcm8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHdlIG5vdCBvbmx5IHRlc3QgdGhlIHZhbHVlLCBidXQgc29tZSB2YWx1ZXMgaW4gYSBzbWFsbCByYW5nZSBhcm91bmQgaXQuCisgICAgICAgICAgICBsYXN0UGFyc2VkID0gY2hlY2tSb3VuZChuZiwgaVZhbHVlLnN1YnRyYWN0KHNtYWxsSW5jcmVtZW50KSwgbGFzdFBhcnNlZCk7CisgICAgICAgICAgICBsYXN0UGFyc2VkID0gY2hlY2tSb3VuZChuZiwgaVZhbHVlLCBsYXN0UGFyc2VkKTsKKyAgICAgICAgICAgIGxhc3RQYXJzZWQgPSBjaGVja1JvdW5kKG5mLCBpVmFsdWUuYWRkKHNtYWxsSW5jcmVtZW50KSwgbGFzdFBhcnNlZCk7CisgICAgICAgIH0KKyAgICB9CisJCisgICAgcHJpdmF0ZSBCaWdEZWNpbWFsIGNoZWNrUm91bmQoRGVjaW1hbEZvcm1hdCBuZiwgQmlnRGVjaW1hbCBpVmFsdWUsIEJpZ0RlY2ltYWwgbGFzdFBhcnNlZCkgeworICAgICAgICBTdHJpbmcgZm9ybWF0ZWRCaWdEZWNpbWFsID0gbmYuZm9ybWF0KGlWYWx1ZSk7CisgICAgICAgIFN0cmluZyBmb3JtYXR0ZWREb3VibGUgPSBuZi5mb3JtYXQoaVZhbHVlLmRvdWJsZVZhbHVlKCkpOworICAgICAgICBpZiAoIWVxdWFsQnV0Rm9yVHJhaWxpbmdaZXJvcyhmb3JtYXRlZEJpZ0RlY2ltYWwsIGZvcm1hdHRlZERvdWJsZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsdXJlIGF0OiAiICsgaVZhbHVlICsgIiAoIiArIGlWYWx1ZS5kb3VibGVWYWx1ZSgpICsgIikiCisgICAgICAgICAgICAgICAgICArICIsXHRSb3VuZGluZy1tb2RlOiAiICsgcm91bmRpbmdNb2RlTmFtZXNbbmYuZ2V0Um91bmRpbmdNb2RlKCldCisgICAgICAgICAgICAgICAgICArICIsXHRSb3VuZGluZy1pbmNyZW1lbnQ6ICIgKyBuZi5nZXRSb3VuZGluZ0luY3JlbWVudCgpCisgICAgICAgICAgICAgICAgICArICIsXHRkb3VibGU6ICIgKyBmb3JtYXR0ZWREb3VibGUKKyAgICAgICAgICAgICAgICAgICsgIixcdEJpZ0RlY2ltYWw6ICIgKyBmb3JtYXRlZEJpZ0RlY2ltYWwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIlZhbHVlOiAiICsgaVZhbHVlCisgICAgICAgICAgICAgICAgICArICIsXHRSb3VuZGluZy1tb2RlOiAiICsgcm91bmRpbmdNb2RlTmFtZXNbbmYuZ2V0Um91bmRpbmdNb2RlKCldCisgICAgICAgICAgICAgICAgICArICIsXHRSb3VuZGluZy1pbmNyZW1lbnQ6ICIgKyBuZi5nZXRSb3VuZGluZ0luY3JlbWVudCgpCisgICAgICAgICAgICAgICAgICArICIsXHRkb3VibGU6ICIgKyBmb3JtYXR0ZWREb3VibGUKKyAgICAgICAgICAgICAgICAgICsgIixcdEJpZ0RlY2ltYWw6ICIgKyBmb3JtYXRlZEJpZ0RlY2ltYWwpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBOdW1iZXIgc2hvdWxkIGhhdmUgY29tcGFyZVRvKC4uLikKKyAgICAgICAgICAgIEJpZ0RlY2ltYWwgcGFyc2VkID0gdG9CaWdEZWNpbWFsKG5mLnBhcnNlKGZvcm1hdGVkQmlnRGVjaW1hbCkpOworICAgICAgICAgICAgaWYgKGxhc3RQYXJzZWQuY29tcGFyZVRvKHBhcnNlZCkgPiAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlJvdW5kaW5nIHdyb25nIGRpcmVjdGlvbiE6ICIgKyBsYXN0UGFyc2VkICsgIiA+ICIgKyBwYXJzZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdFBhcnNlZCA9IHBhcnNlZDsKKyAgICAgICAgfSBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIlBhcnNlIEZhaWx1cmUgd2l0aDogIiArIGZvcm1hdGVkQmlnRGVjaW1hbCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxhc3RQYXJzZWQ7CisgICAgfQorCQorICAgIHN0YXRpYyBCaWdEZWNpbWFsIHRvQmlnRGVjaW1hbChOdW1iZXIgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBudW1iZXIgaW5zdGFuY2VvZiBCaWdEZWNpbWFsID8gKEJpZ0RlY2ltYWwpIG51bWJlcgorICAgICAgICAgICAgOiBudW1iZXIgaW5zdGFuY2VvZiBCaWdJbnRlZ2VyID8gbmV3IEJpZ0RlY2ltYWwoKEJpZ0ludGVnZXIpbnVtYmVyKQorLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgICAgIDogbnVtYmVyIGluc3RhbmNlb2YgamF2YS5tYXRoLkJpZ0RlY2ltYWwgPyBuZXcgQmlnRGVjaW1hbCgoamF2YS5tYXRoLkJpZ0RlY2ltYWwpbnVtYmVyKQorLy8jZW5kaWYKKyAgICAgICAgICAgIDogbnVtYmVyIGluc3RhbmNlb2YgRG91YmxlID8gbmV3IEJpZ0RlY2ltYWwobnVtYmVyLmRvdWJsZVZhbHVlKCkpCisgICAgICAgICAgICA6IG51bWJlciBpbnN0YW5jZW9mIEZsb2F0ID8gbmV3IEJpZ0RlY2ltYWwobnVtYmVyLmZsb2F0VmFsdWUoKSkKKyAgICAgICAgICAgIDogbmV3IEJpZ0RlY2ltYWwobnVtYmVyLmxvbmdWYWx1ZSgpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgU3RyaW5nW10gcm91bmRpbmdNb2RlTmFtZXMgPSB7CisgICAgICAgICJST1VORF9VUCIsICJST1VORF9ET1dOIiwgIlJPVU5EX0NFSUxJTkciLCAiUk9VTkRfRkxPT1IiLAorICAgICAgICAiUk9VTkRfSEFMRl9VUCIsICJST1VORF9IQUxGX0RPV04iLCAiUk9VTkRfSEFMRl9FVkVOIiwKKyAgICAgICAgIlJPVU5EX1VOTkVDRVNTQVJZIgorICAgIH07CisJCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBlcXVhbEJ1dEZvclRyYWlsaW5nWmVyb3MoU3RyaW5nIGZvcm1hdHRlZDEsIFN0cmluZyBmb3JtYXR0ZWQyKSB7CisgICAgICAgIGlmIChmb3JtYXR0ZWQxLmxlbmd0aCgpID09IGZvcm1hdHRlZDIubGVuZ3RoKCkpIHJldHVybiBmb3JtYXR0ZWQxLmVxdWFscyhmb3JtYXR0ZWQyKTsKKyAgICAgICAgcmV0dXJuIHN0cmlwRmluYWxaZXJvcyhmb3JtYXR0ZWQxKS5lcXVhbHMoc3RyaXBGaW5hbFplcm9zKGZvcm1hdHRlZDIpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgc3RyaXBGaW5hbFplcm9zKFN0cmluZyBmb3JtYXR0ZWQpIHsKKyAgICAgICAgaW50IGxlbjEgPSBmb3JtYXR0ZWQubGVuZ3RoKCk7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIHdoaWxlIChsZW4xID4gMCAmJiAoKGNoID0gZm9ybWF0dGVkLmNoYXJBdChsZW4xLTEpKSA9PSAnMCcgfHwgY2ggPT0gJy4nKSkgLS1sZW4xOworICAgICAgICByZXR1cm4gZm9ybWF0dGVkLnN1YnN0cmluZygwLGxlbjEpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gU3VwcG9ydCBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIEZvcm1hdC1QYXJzZSB0ZXN0CisgICAgcHVibGljIHZvaWQgZXhwZWN0MihOdW1iZXJGb3JtYXQgZm10LCBOdW1iZXIgbiwgU3RyaW5nIGV4cCkgeworICAgICAgICAvLyBEb24ndCByb3VuZC10cmlwIGZvcm1hdCB0ZXN0LCBzaW5jZSB3ZSBleHBsaWNpdGx5IGRvIGl0CisgICAgICAgIGV4cGVjdChmbXQsIG4sIGV4cCwgZmFsc2UpOworICAgICAgICBleHBlY3QoZm10LCBleHAsIG4pOworICAgIH0KKworICAgIC8vIEZvcm1hdC1QYXJzZSB0ZXN0IChjb252ZW5pZW5jZSkKKyAgICBwdWJsaWMgdm9pZCBleHBlY3QyKE51bWJlckZvcm1hdCBmbXQsIGRvdWJsZSBuLCBTdHJpbmcgZXhwKSB7CisgICAgICAgIGV4cGVjdDIoZm10LCBuZXcgRG91YmxlKG4pLCBleHApOworICAgIH0KKworICAgIC8vIEZvcm1hdC1QYXJzZSB0ZXN0IChjb252ZW5pZW5jZSkKKyAgICBwdWJsaWMgdm9pZCBleHBlY3QyKE51bWJlckZvcm1hdCBmbXQsIGxvbmcgbiwgU3RyaW5nIGV4cCkgeworICAgICAgICBleHBlY3QyKGZtdCwgbmV3IExvbmcobiksIGV4cCk7CisgICAgfQorCisgICAgLy8gRm9ybWF0IHRlc3QKKyAgICBwdWJsaWMgdm9pZCBleHBlY3QoTnVtYmVyRm9ybWF0IGZtdCwgTnVtYmVyIG4sIFN0cmluZyBleHAsIGJvb2xlYW4gcnQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNhdyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsgCisgICAgICAgIGZtdC5mb3JtYXQobiwgc2F3LCBwb3MpOworICAgICAgICBTdHJpbmcgcGF0ID0gKChEZWNpbWFsRm9ybWF0KWZtdCkudG9QYXR0ZXJuKCk7CisgICAgICAgIGlmIChzYXcudG9TdHJpbmcoKS5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgbG9nbG4oIk9rICAgIiArIG4gKyAiIHggIiArCisgICAgICAgICAgICAgICAgICBwYXQgKyAiID0gXCIiICsKKyAgICAgICAgICAgICAgICAgIHNhdyArICJcIiIpOworICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIGJlIGFibGUgdG8gcm91bmQtdHJpcCB0aGUgZm9ybWF0dGVkIHN0cmluZyA9PgorICAgICAgICAgICAgLy8gbnVtYmVyID0+IHN0cmluZyAoYnV0IG5vdCB0aGUgb3RoZXIgd2F5IGFyb3VuZDogbnVtYmVyCisgICAgICAgICAgICAvLyA9PiBzdHJpbmcgPT4gbnVtYmVyMiwgbWlnaHQgaGF2ZSBudW1iZXIyICE9IG51bWJlcik6CisgICAgICAgICAgICBpZiAocnQpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBOdW1iZXIgbjIgPSBmbXQucGFyc2UoZXhwKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHNhdzIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgIGZtdC5mb3JtYXQobjIsIHNhdzIsIHBvcyk7CisgICAgICAgICAgICAgICAgICAgIGlmICghc2F3Mi50b1N0cmluZygpLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcIiIgKyBleHAgKyAiXCIgPT4gIiArIG4yICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgPT4gXCIiICsgc2F3MiArICciJyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMICIgKyBuICsgIiB4ICIgKworICAgICAgICAgICAgICAgICAgcGF0ICsgIiA9IFwiIiArCisgICAgICAgICAgICAgICAgICBzYXcgKyAiXCIsIGV4cGVjdGVkIFwiIiArIGV4cCArICJcIiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEZvcm1hdCB0ZXN0IChjb252ZW5pZW5jZSkKKyAgICBwdWJsaWMgdm9pZCBleHBlY3QoTnVtYmVyRm9ybWF0IGZtdCwgTnVtYmVyIG4sIFN0cmluZyBleHApIHsKKyAgICAgICAgZXhwZWN0KGZtdCwgbiwgZXhwLCB0cnVlKTsKKyAgICB9CisKKyAgICAvLyBGb3JtYXQgdGVzdCAoY29udmVuaWVuY2UpCisgICAgcHVibGljIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIGRvdWJsZSBuLCBTdHJpbmcgZXhwKSB7CisgICAgICAgIGV4cGVjdChmbXQsIG5ldyBEb3VibGUobiksIGV4cCk7CisgICAgfQorICAgIAorICAgIC8vIEZvcm1hdCB0ZXN0IChjb252ZW5pZW5jZSkKKyAgICBwdWJsaWMgdm9pZCBleHBlY3QoTnVtYmVyRm9ybWF0IGZtdCwgbG9uZyBuLCBTdHJpbmcgZXhwKSB7CisgICAgICAgIGV4cGVjdChmbXQsIG5ldyBMb25nKG4pLCBleHApOworICAgIH0KKyAgICAKKyAgICAvLyBQYXJzZSB0ZXN0CisgICAgcHVibGljIHZvaWQgZXhwZWN0KE51bWJlckZvcm1hdCBmbXQsIFN0cmluZyBzdHIsIE51bWJlciBuKSB7CisgICAgICAgIE51bWJlciBudW0gPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbnVtID0gKE51bWJlcikgZm10LnBhcnNlKHN0cik7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcGF0ID0gKChEZWNpbWFsRm9ybWF0KWZtdCkudG9QYXR0ZXJuKCk7CisgICAgICAgIC8vIEEgbGl0dGxlIHRyaWNreSBoZXJlIC0tIG1ha2Ugc3VyZSBEb3VibGUoMTIzNDUuMCkgYW5kCisgICAgICAgIC8vIExvbmcoMTIzNDUpIG1hdGNoLgorICAgICAgICBpZiAobnVtLmVxdWFscyhuKSB8fCBudW0uZG91YmxlVmFsdWUoKSA9PSBuLmRvdWJsZVZhbHVlKCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPayAgIFwiIiArIHN0ciArICJcIiB4ICIgKworICAgICAgICAgICAgICAgICAgcGF0ICsgIiA9ICIgKworICAgICAgICAgICAgICAgICAgbnVtKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIFwiIiArIHN0ciArICJcIiB4ICIgKworICAgICAgICAgICAgICAgICAgcGF0ICsgIiA9ICIgKworICAgICAgICAgICAgICAgICAgbnVtICsgIiwgZXhwZWN0ZWQgIiArIG4pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIFBhcnNlIHRlc3QgKGNvbnZlbmllbmNlKQorICAgIHB1YmxpYyB2b2lkIGV4cGVjdChOdW1iZXJGb3JtYXQgZm10LCBTdHJpbmcgc3RyLCBkb3VibGUgbikgeworICAgICAgICBleHBlY3QoZm10LCBzdHIsIG5ldyBEb3VibGUobikpOworICAgIH0KKyAgICAKKyAgICAvLyBQYXJzZSB0ZXN0IChjb252ZW5pZW5jZSkKKyAgICBwdWJsaWMgdm9pZCBleHBlY3QoTnVtYmVyRm9ybWF0IGZtdCwgU3RyaW5nIHN0ciwgbG9uZyBuKSB7CisgICAgICAgIGV4cGVjdChmbXQsIHN0ciwgbmV3IExvbmcobikpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0Q3VycmVuY3koTnVtYmVyRm9ybWF0IG5mLCBDdXJyZW5jeSBjdXJyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdmFsdWUsIFN0cmluZyBzdHJpbmcpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSAoRGVjaW1hbEZvcm1hdCkgbmY7CisgICAgICAgIGlmIChjdXJyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZtdC5zZXRDdXJyZW5jeShjdXJyKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQodmFsdWUpLnJlcGxhY2UoJ1x1MDBBMCcsICcgJyk7CisKKyAgICAgICAgaWYgKHMuZXF1YWxzKHN0cmluZykpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIHZhbHVlICsgIiB4ICIgKyBjdXJyICsgIiA9PiAiICsgcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHZhbHVlICsgIiB4ICIgKyBjdXJyICsgIiA9PiAiICsgcyArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgc3RyaW5nKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGV4cGVjdFBhZChEZWNpbWFsRm9ybWF0IGZtdCwgU3RyaW5nIHBhdCwgaW50IHBvcykgeworICAgICAgICBleHBlY3RQYWQoZm10LCBwYXQsIHBvcywgMCwgKGNoYXIpMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGV4cGVjdFBhZChEZWNpbWFsRm9ybWF0IGZtdCwgZmluYWwgU3RyaW5nIHBhdCwgaW50IHBvcywgaW50IHdpZHRoLCBmaW5hbCBjaGFyIHBhZCkgeworICAgICAgICBpbnQgYXBvcyA9IDAsIGF3aWR0aCA9IDA7CisgICAgICAgIGNoYXIgYXBhZFN0cjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZtdC5hcHBseVBhdHRlcm4ocGF0KTsKKyAgICAgICAgICAgIGFwb3MgPSBmbXQuZ2V0UGFkUG9zaXRpb24oKTsKKyAgICAgICAgICAgIGF3aWR0aCA9IGZtdC5nZXRGb3JtYXRXaWR0aCgpOworICAgICAgICAgICAgYXBhZFN0ciA9IGZtdC5nZXRQYWRDaGFyYWN0ZXIoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGFwb3MgPSAtMTsKKyAgICAgICAgICAgIGF3aWR0aCA9IHdpZHRoOworICAgICAgICAgICAgYXBhZFN0ciA9IHBhZDsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoYXBvcyA9PSBwb3MgJiYgYXdpZHRoID09IHdpZHRoICYmIGFwYWRTdHIgPT0gcGFkKSB7CisgICAgICAgICAgICBsb2dsbigiT2sgICBcIiIgKyBwYXQgKyAiXCIgcG9zPSIKKyAgICAgICAgICAgICAgICAgICAgKyBhcG9zICsgKChwb3MgPT0gLTEpID8gIiIgOiAiIHdpZHRoPSIgKyBhd2lkdGggKyAiIHBhZD0iICsgYXBhZFN0cikpOyAKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIFwiIiArIHBhdCArICJcIiBwb3M9IiArIGFwb3MgKyAiIHdpZHRoPSIKKyAgICAgICAgICAgICAgICAgICAgKyBhd2lkdGggKyAiIHBhZD0iICsgYXBhZFN0ciArICIsIGV4cGVjdGVkICIKKyAgICAgICAgICAgICAgICAgICAgKyBwb3MgKyAiICIgKyB3aWR0aCArICIgIiArIHBhZCk7IAorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXhwZWN0UGF0KERlY2ltYWxGb3JtYXQgZm10LCBmaW5hbCBTdHJpbmcgZXhwKSB7CisgICAgICAgIFN0cmluZyBwYXQgPSBmbXQudG9QYXR0ZXJuKCk7CisgICAgICAgIGlmIChwYXQuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPayAgIFwiIiArIHBhdCArICJcIiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgXCIiICsgcGF0ICsgIlwiLCBleHBlY3RlZCBcIiIgKyBleHAgKyAiXCIiKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0VGVzdENhc2VzLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyRm9ybWF0VGVzdENhc2VzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzdmNTY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJGb3JtYXRUZXN0Q2FzZXMudHh0CkBAIC0wLDAgKzEsODUgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29weXJpZ2h0IChjKSAyMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBBdXRob3I6IEFsYW4gTGl1CisjIENyZWF0ZWQ6IE1hcmNoIDE1IDIwMDQKKyMgU2luY2U6IElDVSAzLjAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworcmVmPSAiIy4jIgorCitydDogICIwLiMjIyIgIDEuMCAgICAgICAgICIxIiAgICAgICAgIAorCisjIEJhc2ljcworZnA6ICAiMC4jIyMjIiAwLjEwMDA1ICAgICAiMC4xIiAgICAgICAgMC4xCitmcDogIC0gICAgICAgIDAuMTAwMDYgICAgICIwLjEwMDEiICAgICAwLjEwMDEKK3BhdDogLSAgICAgICAgIiMwLiMjIyMiCitmcDogICIjLiMjIyMiIDAuMTAwMDUgICAgICIwLjEiICAgICAgICAwLjEKK3BhdDogLSAgICAgICAgIiMwLiMjIyMiCisKK3J0OiAgIjAiICAgICAgMTIzNCAgICAgICAgIjEyMzQiCitwYXQ6IC0gICAgICAgICIjMCIKKworIyBTaWduaWZpY2FudCBkaWdpdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorZnA6ICAiQEBAIiAgICAxLjIzNDU2NyAgICAiMS4yMyIgICAgICAgMS4yMworZnA6ICAtICAgICAgICAxMjM0NTY3ICAgICAiMTIzMDAwMCIgICAgMTIzMDAwMAorZnA6ICAtICAgICAgICAwLjAxMjM0NSAgICAiMC4wMTIzIiAgICAgMC4wMTIzCitwYXQ6IC0gICAgICAgIC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK2ZwOiAgIiMsQEBAIiAgMTIzNDU2NyAgICAgIjEsMjMwLDAwMCIgIDEyMzAwMDAKK3BhdDogLSAgICAgICAgIiMsQEBAIgorcnQ6ICAiQEBAQCIgICAwLjAwMTIgICAgICAiMC4wMDEyMDAiICAKK2ZwOiAgLSAgICAgICAgMC45OTk5OSAgICAgIjEuMDAwIiAgICAgIDEKK3BhdDogLSAgICAgICAgLQorcnQ6ICAiQCMjIyIgICAwLjAwMTIzICAgICAiMC4wMDEyMyIgICAKK3J0OiAgLSAgICAgICAgMTIzMDAwICAgICAgIjEyMzAwMCIgICAgCitmcDogIC0gICAgICAgIDEyMzQ1NiAgICAgICIxMjM1MDAiICAgICAxMjM1MDAKK2ZwOiAgLSAgICAgICAgMTIuMzQ1NiAgICAgIjEyLjM1IiAgICAgIDEyLjM1CitmcDogIC0gICAgICAgIDAuMDEyMzQ1NiAgICIwLjAxMjM1IiAgICAwLjAxMjM1CitwYXQ6IC0gICAgICAgIC0KK2ZwOiAgIkAsIyMjIiAgMjcxODIgICAgICAgIjI3LDE4MCIgICAgIDI3MTgwCitydDogIC0gICAgICAgIDEyMzAwMCAgICAgICIxMjMsMDAwIiAgIAorZnA6ICAtICAgICAgICAwLjk5OTk5ICAgICAiMSIgICAgICAgICAgMQorcnQ6ICAtICAgICAgICAwLjk5OTkgICAgICAiMC45OTk5IiAgICAKK3BhdDogLSAgICAgICAgLQorcnQ6ICAiQCMjRTAiICAyMDAwMCAgICAgICAiMkU0IgorcnQ6ICAtICAgICAgICAyNzAwMCAgICAgICAiMi43RTQiICAgICAKK3J0OiAgLSAgICAgICAgMjcxMDAgICAgICAgIjIuNzFFNCIKK2ZwOiAgLSAgICAgICAgMjcxODIgICAgICAgIjIuNzJFNCIgICAgIDI3MjAwCitwYXQ6IC0gICAgICAgIC0KK3J0OiAgIkBAQEUwIiAgMjAwMDAgICAgICAgIjIuMDBFNCIKK3J0OiAgLSAgICAgICAgMjcwMDAgICAgICAgIjIuNzBFNCIgICAgCitydDogIC0gICAgICAgIDI3MTAwICAgICAgICIyLjcxRTQiCitmcDogIC0gICAgICAgIDI3MTgyICAgICAgICIyLjcyRTQiICAgICAyNzIwMAorcGF0OiAtICAgICAgICAtCitmcDogICIjLEBAIyMiIDMxNDE1NiAgICAgICIzMSw0MjAwIiAgICAzMTQyMDAKK3J0OiAgLSAgICAgICAgMyAgICAgICAgICAgIjMuMCIgICAgICAgCitydDogIC0gICAgICAgIDUwMDAgICAgICAgICI1MDAwIiAgICAgIAorcnQ6ICAtICAgICAgICAwLjAwNSAgICAgICAiMC4wMDUwIiAgICAKK3BhdDogLSAgICAgICAgLQorZnA6ICAiQEBAQEBAIiAxMjM0NTYuNyAgICAiMTIzNDU3IiAgICAgMTIzNDU3CitwYXQ6IC0gICAgICAgIC0KKworcGF0OiAiIyMsQEAjIyIgIiMsQEAjIyIKK3BhdDogIiMjQEAjIyIgICJAQCMjIgorCitwYXQ6ICJAQC5AQCIgIGVyciAgIyBkZWNpbWFsIHNlcC4gZGlzYWxsb3dlZCBpbiBzaWcuIGRpZ2l0cworcGF0OiAiQCNAIiAgICBlcnIgICMgb25seSBvbmUgY2x1c3RlciBvZiBzaWcuIGRpZ2l0cworcGF0OiAiQEAwIiAgICBlcnIgICMgZWl0aGVyIEAgb3IgMCwgbm90IGJvdGgKKworIyBOdW1iZXJSZWdyZXNzaW9uL1Rlc3Q0MTQwMDA5CitydDogICIiICAgICAgIDEyMy40NTYgICAgICIxMjMuNDU2IgorcnQ6ICAiIiAgICAgICAtMTIzLjQ1NiAgICAiLTEyMy40NTYiCisKKyMgQ3VycmVuY3kKK2ZwYzogImVuX1VTIiAgICAgICAgMTIzNC41Ni9VU0QgICIkMSwyMzQuNTYiICAgIDEyMzQuNTYvVVNECitmcGM6IC0gICAgICAgICAgICAgIDEyMzQuNTYvSlBZICAiXHUwMEE1MSwyMzUiICAxMjM1L0pQWQorIyBJU08gY29kZXMgdGhhdCBvdmVybGFwIGRpc3BsYXkgbmFtZXMgKFFRUSB2cy4gUSkKK2ZwYzogLSAgICAgICAgICAgICAgMTIzL1FRUSAgICAgICJRUVExMjMuMDAiICAgIDEyMy9RUVEgICAjIFFRUSBpcyBmYWtlCitmcGM6IC0gICAgICAgICAgICAgIDEyMy9HVFEgICAgICAiUTEyMy4wMCIgICAgICAxMjMvR1RRCisjIENob2ljZUZvcm1hdC1iYXNlZCBkaXNwbGF5IG5hbWVzCitmcGM6IC0gICAgICAgICAgICAgIDEvSU5SICAgICAgICAiUmUuMS4wMCIgICAgICAxL0lOUgorZnBjOiAtICAgICAgICAgICAgICAyL0lOUiAgICAgICAgIlJzLjIuMDAiICAgICAgMi9JTlIKKyMgRGlzcGxheSBuYW1lcyB3aXRoIHNoYXJlZCBwcmVmaXggKFlERCB2cy4gWSkKK2ZwYzogLSAgICAgICAgICAgICAgMTAwL1lERCAgICAgICJZREQxMDAuMDAiICAgIDEwMC9ZREQKK2ZwYzogLSAgICAgICAgICAgICAgMTAwL0NOWSAgICAgICJZMTAwLjAwIiAgICAgIDEwMC9DTlkKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyUmVncmVzc2lvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9OdW1iZXJSZWdyZXNzaW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2IwYjI2MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvTnVtYmVyUmVncmVzc2lvbi5qYXZhCkBAIC0wLDAgKzEsMTgzNSBAQAorLy8jI2hlYWRlcgorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqLworCisvKiogCisgKiBQb3J0IEZyb206ICAgSkRLIDEuNGIxIDogamF2YS50ZXh0LkZvcm1hdC5OdW1iZXJSZWdyZXNzaW9uCisgKiBTb3VyY2UgRmlsZTogamF2YS90ZXh0L2Zvcm1hdC9OdW1iZXJSZWdyZXNzaW9uLmphdmEKKyAqKi8KKyAKKy8qKgorICogQHRlc3QgMS40OSAwMS8wNS8yMQorICogQGJ1ZyA0MDUyMjIzIDQwNTk4NzAgNDA2MTMwMiA0MDYyNDg2IDQwNjY2NDYgNDA2ODY5MyA0MDcwNzk4IDQwNzEwMDUgNDA3MTAxNAorICogNDA3MTQ5MiA0MDcxODU5IDQwNzQ0NTQgNDA3NDYyMCA0MDc1NzEzIDQwODMwMTggNDA4NjU3NSA0MDg3MjQ0IDQwODcyNDUKKyAqIDQwODcyNTEgNDA4NzUzNSA0MDg4MTYxIDQwODg1MDMgNDA5MDQ4OSA0MDkwNTA0IDQwOTI0ODAgNDA5MjU2MSA0MDk1NzEzCisgKiA0MDk4NzQxIDQwOTk0MDQgNDEwMTQ4MSA0MTA2NjU4IDQxMDY2NjIgNDEwNjY2NCA0MTA4NzM4IDQxMTA5MzYgNDEyMjg0MAorICogNDEyNTg4NSA0MTM0MDM0IDQxMzQzMDAgNDE0MDAwOSA0MTQxNzUwIDQxNDU0NTcgNDE0NzI5NSA0MTQ3NzA2IDQxNjIxOTgKKyAqIDQxNjI4NTIgNDE2NzQ5NCA0MTcwNzk4IDQxNzYxMTQgNDE3OTgxOCA0MTg1NzYxIDQyMTIwNzIgNDIxMjA3MyA0MjE2NzQyCisgKiA0MjE3NjYxIDQyNDMwMTEgNDI0MzEwOCA0MzMwMzc3IDQyMzM4NDAKKyAqIEBzdW1tYXJ5IFJlZ3Jlc3Npb24gdGVzdHMgZm9yIE51bWJlckZvcm1hdCBhbmQgYXNzb2NpYXRlZCBjbGFzc2VzCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKKy8vaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS5tYXRoLkJpZ0RlY2ltYWw7CitpbXBvcnQgamF2YS5tYXRoLkJpZ0ludGVnZXI7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBOdW1iZXJSZWdyZXNzaW9uIGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBOdW1iZXJSZWdyZXNzaW9uKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRVVSTyA9ICdcdTIwYWMnOworCisgICAgLyoqCisgICAgICogTnVtYmVyRm9ybWF0LmVxdWFscyBjb21wYXJpbmcgd2l0aCBudWxsIHNob3VsZCBhbHdheXMgcmV0dXJuIGZhbHNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDc1NzEzKCl7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE15TnVtYmVyRm9ybWF0VGVzdCB0bXAgPSBuZXcgTXlOdW1iZXJGb3JtYXRUZXN0KCk7CisgICAgICAgICAgICBpZiAoIXRtcC5lcXVhbHMobnVsbCkpCisgICAgICAgICAgICAgICAgbG9nbG4oIk51bWJlckZvcm1hdC5lcXVhbHMgcGFzc2VkIik7CisgICAgICAgIH0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCIobmV3IE15TnVtYmVyRm9ybWF0VGVzdCgpKS5lcXVhbHMobnVsbCkgdGhyb3dzIHVuZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXJGb3JtYXQuZXF1YWxzIGNvbXBhcmluZyB0d28gb2JqIGVxdWFsIGV2ZW4gdGhlIHNldEdyb3VwaW5nVXNlZAorICAgICAqIGZsYWcgaXMgZGlmZmVyZW50LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDc0NjIwKCkgeworCisgICAgICAgIE15TnVtYmVyRm9ybWF0VGVzdCBuZjEgPSBuZXcgTXlOdW1iZXJGb3JtYXRUZXN0KCk7CisgICAgICAgIE15TnVtYmVyRm9ybWF0VGVzdCBuZjIgPSBuZXcgTXlOdW1iZXJGb3JtYXRUZXN0KCk7CisKKyAgICAgICAgbmYxLnNldEdyb3VwaW5nVXNlZChmYWxzZSk7CisgICAgICAgIG5mMi5zZXRHcm91cGluZ1VzZWQodHJ1ZSk7CisKKyAgICAgICAgaWYgKG5mMS5lcXVhbHMobmYyKSkgZXJybG4oIlRlc3QgZm9yIGJ1ZyA0MDc0NjIwIGZhaWxlZCIpOworICAgICAgICBlbHNlIGxvZ2xuKCJUZXN0IGZvciBidWcgNDA3NDYyMCBwYXNzZWQuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuZm9ybWF0KCkgaW5jb3JyZWN0bHkgdXNlcyBtYXhGcmFjdGlvbkRpZ2l0cyBzZXR0aW5nLgorICAgICAqLworCisgICAgcHVibGljIHZvaWQgVGVzdDQwODgxNjEgKCl7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBkb3VibGUgZCA9IDEwMDsKKyAgICAgICAgZGYuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDApOworICAgICAgICBkZi5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoMTYpOworICAgICAgICBTdHJpbmdCdWZmZXIgc0J1ZjEgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcDEgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgbG9nbG4oImQgPSAiICsgZCk7CisgICAgICAgIGxvZ2xuKCJtYXhGcmFjdGlvbkRpZ2l0cyA9ICIgKyBkZi5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSk7CisgICAgICAgIGxvZ2xuKCIgZm9ybWF0KGQpID0gJyIgKyBkZi5mb3JtYXQoZCwgc0J1ZjEsIGZwMSkgKyAiJyIpOworICAgICAgICBkZi5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoMTcpOworICAgICAgICBTdHJpbmdCdWZmZXIgc0J1ZjIgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcDIgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgbG9nbG4oIm1heEZyYWN0aW9uRGlnaXRzID0gIiArIGRmLmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpKTsKKyAgICAgICAgZGYuZm9ybWF0KGQsIHNCdWYyLCBmcDIpOworICAgICAgICBpZiAoIXNCdWYyLnRvU3RyaW5nKCkuZXF1YWxzKCIxMDAiKSkKKyAgICAgICAgICAgIGVycmxuKCIgZm9ybWF0KGQpID0gJyIgKyBzQnVmMiArICInIik7CisgICAgfQorICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXRTeW1ib2xzIHNob3VsZCBiZSBjbG9uZWQgaW4gdGhlIGN0b3IgRGVjaW1hbEZvcm1hdC4KKyAgICAgKiBEZWNpbWFsRm9ybWF0KFN0cmluZywgRGVjaW1hbEZvcm1hdFN5bWJvbHMpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDg3MjQ1ICgpeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAuMCIsIHN5bWJvbHMpOworICAgICAgICBsb25nIG4gPSAxMjM7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYxID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmMiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgbG9nbG4oImZvcm1hdCgiICsgbiArICIpID0gIiArCisgICAgICAgIGRmLmZvcm1hdChuLCBidWYxLCBuZXcgRmllbGRQb3NpdGlvbigwKSkpOworICAgICAgICBzeW1ib2xzLnNldERlY2ltYWxTZXBhcmF0b3IoJ3AnKTsgLy8gY2hhbmdlIHZhbHVlIG9mIGZpZWxkCisgICAgICAgIGxvZ2xuKCJmb3JtYXQoIiArIG4gKyAiKSA9ICIgKworICAgICAgICBkZi5mb3JtYXQobiwgYnVmMiwgbmV3IEZpZWxkUG9zaXRpb24oMCkpKTsKKyAgICAgICAgaWYgKCFidWYxLnRvU3RyaW5nKCkuZXF1YWxzKGJ1ZjIudG9TdHJpbmcoKSkpCisgICAgICAgICAgICBlcnJsbigiVGVzdCBmb3IgYnVnIDQwODcyNDUgZmFpbGVkIik7CisgICAgfQorICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuZm9ybWF0KCkgaW5jb3JyZWN0bHkgZm9ybWF0cyAwLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4NzUzNSAoKQorICAgIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7CisgICAgICAgIGRmLnNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKDApOworCisgICAgICAgIGRvdWJsZSBuID0gMDsKKyAgICAgICAgU3RyaW5nIGJ1ZmZlciA9IG5ldyBTdHJpbmcoKTsKKyAgICAgICAgYnVmZmVyID0gZGYuZm9ybWF0KG4pOworICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCgpID09IDApCisgICAgICAgICAgICBlcnJsbihuICsgIjogJyIgKyBidWZmZXIgKyAiJyIpOworICAgICAgICBuID0gMC4xOworICAgICAgICBidWZmZXIgPSBkZi5mb3JtYXQobik7CisgICAgICAgIGlmIChidWZmZXIubGVuZ3RoKCkgPT0gMCkKKyAgICAgICAgICAgIGVycmxuKG4gKyAiOiAnIiArIGJ1ZmZlciArICInIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQgZmFpbHMgd2hlbiBncm91cGluZ1NpemUgaXMgc2V0IHRvIDAuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwODg1MDMgKCl7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBkZi5zZXRHcm91cGluZ1NpemUoMCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzQnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnAgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxvZ2xuKGRmLmZvcm1hdCgxMjMsIHNCdWYsIGZwKS50b1N0cmluZygpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgZm9yIGJ1ZyA0MDg4NTAzIGZhaWxlZC4iKTsKKyAgICAgICAgfQorCisgICAgfQorICAgIC8qKgorICAgICAqIE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlIGlzIHdyb25nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDY2NjQ2ICgpIHsKKyAgICAgICAgLy9mbG9hdCByZXR1cm5mbG9hdCA9IDAuMGY7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAgICAgYXNzaWduRmxvYXRWYWx1ZSgyLjA0Zik7CisgICAgICAgIGFzc2lnbkZsb2F0VmFsdWUoMi4wM2YpOworICAgICAgICBhc3NpZ25GbG9hdFZhbHVlKDIuMDJmKTsKKyAgICAgICAgYXNzaWduRmxvYXRWYWx1ZSgwLjBmKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmxvYXQgYXNzaWduRmxvYXRWYWx1ZShmbG9hdCByZXR1cm5mbG9hdCkKKyAgICB7CisgICAgICAgIGxvZ2xuKCIgVkFMVUUgIiArIHJldHVybmZsb2F0KTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mY29tbW9uID0gIE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIG5mY29tbW9uLnNldEdyb3VwaW5nVXNlZChmYWxzZSk7CisKKyAgICAgICAgU3RyaW5nIHN0cmluZ1ZhbHVlID0gbmZjb21tb24uZm9ybWF0KHJldHVybmZsb2F0KS5zdWJzdHJpbmcoMSk7CisgICAgICAgIGlmIChGbG9hdC52YWx1ZU9mKHN0cmluZ1ZhbHVlKS5mbG9hdFZhbHVlKCkgIT0gcmV0dXJuZmxvYXQpCisgICAgICAgICAgICBlcnJsbigiIERJU1BMQVlWQUxVRSAiICsgc3RyaW5nVmFsdWUpOworICAgICAgICByZXR1cm4gcmV0dXJuZmxvYXQ7CisgICAgfSAvLyBFbmQgT2YgYXNzaWduRmxvYXRWYWx1ZSgpCisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0IHRocm93cyBleGNlcHRpb24gd2hlbiBwYXJzaW5nICIwIgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDU5ODcwKCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGZvcm1hdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwMCIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nbG4oZm9ybWF0LnBhcnNlKCIwIikudG9TdHJpbmcoKSk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7IGVycmxuKCJUZXN0IGZvciBidWcgNDA1OTg3MCBmYWlsZWQgOiAiICsgZSk7IH0KKyAgICB9CisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdFN5bWJvbC5lcXVhbHMgc2hvdWxkIGFsd2F5cyByZXR1cm4gZmFsc2Ugd2hlbgorICAgICAqIGNvbXBhcmluZyB3aXRoIG51bGwuCisgICAgICovCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4MzAxOCAoKXsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoIWRmcy5lcXVhbHMobnVsbCkpCisgICAgICAgICAgICAgICAgbG9nbG4oIlRlc3QgUGFzc2VkISIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmb3IgYnVnIDQwODMwMTggZmFpbGVkID0+IE1lc3NhZ2UgOiAiICsgZm9vLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdCBkb2VzIG5vdCByb3VuZCB1cCBjb3JyZWN0bHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzE0OTIgKCl7CisgICAgICAgIGRvdWJsZSB4ID0gMC4wMDE1OTk5OTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIG5mLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyg0KTsKKyAgICAgICAgU3RyaW5nIG91dCA9IG5mLmZvcm1hdCh4KTsKKyAgICAgICAgbG9nbG4oIjAuMDAxNTk5OTkgZm9ybWF0cyB3aXRoIDQgZnJhY3Rpb25hbCBkaWdpdHMgdG8gIiArIG91dCk7CisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICIwLjAwMTYiOworICAgICAgICBpZiAoIW91dC5lcXVhbHMoZXhwZWN0ZWQpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkICIgKyBleHBlY3RlZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBzcGFjZSBhcyBhIGdyb3VwIHNlcGFyYXRvciBmb3IgbG9jYWxpemVkIHBhdHRlcm4gY2F1c2VzCisgICAgICogd3JvbmcgZm9ybWF0LiAgV29ya0Fyb3VuZCA6IHVzZSBub24tYnJlYWtpbmcgc3BhY2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwODY1NzUoKSB7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5GUkFOQ0UpOworICAgICAgICBsb2dsbigibmYgdG9QYXR0ZXJuMTogIiArICgoRGVjaW1hbEZvcm1hdCluZikudG9QYXR0ZXJuKCkpOworICAgICAgICBsb2dsbigibmYgdG9Mb2NQYXR0ZXJuMTogIiArICgoRGVjaW1hbEZvcm1hdCluZikudG9Mb2NhbGl6ZWRQYXR0ZXJuKCkpOworCisgICAgICAgIC8vIE5vIGdyb3VwIHNlcGFyYXRvcgorICAgICAgICBsb2dsbigiLi4uYXBwbHlMb2NhbGl6ZWRQYXR0ZXJuICMjIywwMDsoIyMjLDAwKSAiKTsKKyAgICAgICAgKChEZWNpbWFsRm9ybWF0KW5mKS5hcHBseUxvY2FsaXplZFBhdHRlcm4oIiMjIywwMDsoIyMjLDAwKSIpOworICAgICAgICBsb2dsbigibmYgdG9QYXR0ZXJuMjogIiArICgoRGVjaW1hbEZvcm1hdCluZikudG9QYXR0ZXJuKCkpOworICAgICAgICBsb2dsbigibmYgdG9Mb2NQYXR0ZXJuMjogIiArICgoRGVjaW1hbEZvcm1hdCluZikudG9Mb2NhbGl6ZWRQYXR0ZXJuKCkpOworCisgICAgICAgIGxvZ2xuKCJuZjogIiArIG5mLmZvcm1hdCgxMjM0KSk7IC8vIDEyMzQsMDAKKyAgICAgICAgbG9nbG4oIm5mOiAiICsgbmYuZm9ybWF0KC0xMjM0KSk7IC8vICgxMjM0LDAwKQorCisgICAgICAgIC8vIFNwYWNlIGFzIGdyb3VwIHNlcGFyYXRvcgorCisgICAgICAgIGxvZ2xuKCIuLi5hcHBseUxvY2FsaXplZFBhdHRlcm4gIyAjIyMsMDA7KCMgIyMjLDAwKSAiKTsKKyAgICAgICAgKChEZWNpbWFsRm9ybWF0KW5mKS5hcHBseUxvY2FsaXplZFBhdHRlcm4oIiNcdTAwYTAjIyMsMDA7KCNcdTAwYTAjIyMsMDApIik7CisgICAgICAgIGxvZ2xuKCJuZiB0b1BhdHRlcm4yOiAiICsgKChEZWNpbWFsRm9ybWF0KW5mKS50b1BhdHRlcm4oKSk7CisgICAgICAgIGxvZ2xuKCJuZiB0b0xvY1BhdHRlcm4yOiAiICsgKChEZWNpbWFsRm9ybWF0KW5mKS50b0xvY2FsaXplZFBhdHRlcm4oKSk7CisgICAgICAgIFN0cmluZyBidWZmZXIgPSBuZi5mb3JtYXQoMTIzNCk7CisgICAgICAgIGlmICghYnVmZmVyLmVxdWFscygiMVx1MDBhMDIzNCwwMCIpKQorICAgICAgICAgICAgZXJybG4oIm5mIDogIiArIGJ1ZmZlcik7IC8vIEV4cGVjdCAxIDIzNCwwMAorICAgICAgICBidWZmZXIgPSBuZi5mb3JtYXQoLTEyMzQpOworICAgICAgICBpZiAoIWJ1ZmZlci5lcXVhbHMoIigxXHUwMGEwMjM0LDAwKSIpKQorICAgICAgICAgICAgZXJybG4oIm5mIDogIiArIGJ1ZmZlcik7IC8vIEV4cGVjdCAoMSAyMzQsMDApCisKKyAgICAgICAgLy8gRXJyb25lb3VzbHkgcHJpbnRzOgorICAgICAgICAvLyAxMjM0LDAwICwKKyAgICAgICAgLy8gKDEyMzQsMDAgLCkKKworICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LnBhcnNlIHJldHVybnMgd3JvbmcgdmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2ODY5MygpCisgICAgeworICAgICAgICBsb2dsbigiLS0tLS0gVGVzdCBBcHBsaWNhdGlvbiAtLS0tLSIpOworICAgICAgICAvL1BhcnNlUG9zaXRpb24gcG9zOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgTnVtYmVyIGQgPSBkZi5wYXJzZSgiMTIzLjU1NDU2IiwgbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICBpZiAoIWQudG9TdHJpbmcoKS5lcXVhbHMoIjEyMy41NTQ1NiIpKSB7CisgICAgICAgICAgICBlcnJsbigiUmVzdWx0IC0+ICIgKyBkLmRvdWJsZVZhbHVlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyogYnVncyA0MDY5NzU0LCA0MDY3ODc4CisgICAgICogbnVsbCBwb2ludGVyIHRocm93biB3aGVuIGFjY2Vzc2luZyBhIGRlc2VyaWFsaXplZCBEZWNpbWFsRm9ybWF0CisgICAgICogb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDY5NzU0KCkgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgLy90cnkgeworICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhb3MgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb29zID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShiYW9zKTsKKyAgICAgICAgICAgIG15Zm9ybWF0IGl0ID0gbmV3IG15Zm9ybWF0KCk7CisgICAgICAgICAgICBsb2dsbihpdC5Ob3coKSk7CisgICAgICAgICAgICBvb3Mud3JpdGVPYmplY3QoaXQpOworICAgICAgICAgICAgb29zLmZsdXNoKCk7CisgICAgICAgICAgICBiYW9zLmNsb3NlKCk7CisgICAgICAgICAgICBsb2dsbigiU2F2ZSBPSyEiKTsKKyAgICAgICAgICAgIGJ5dGUgW10gYnl0ZXMgPSBiYW9zLnRvQnl0ZUFycmF5KCk7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvaXMgPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0obmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSk7CisgICAgICAgICAgICBteWZvcm1hdCBvID0gKG15Zm9ybWF0KW9pcy5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICBvaXMuY2xvc2UoKTsKKyAgICAgICAgICAgIGl0Lk5vdygpOworICAgICAgICAgICAgbG9nbG4oIkxvYWQgT0shIik7CisgICAgICAgICAgICBpZiAoIW8uX2RhdGVGb3JtYXQuZXF1YWxzKGl0Ll9kYXRlRm9ybWF0KSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIlRoZSBzYXZlZCBhbmQgbG9hZGVkIG9iamVjdCBhcmUgbm90IGVxdWFscyEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCJDb21wYXJlIE9LISIpOworICAgICAgICAvL30gY2F0Y2ggKEV4Y2VwdGlvbiBmb28pIHsKKyAgICAgICAgICAgIC8vZXJybG4oIlRlc3QgZm9yIGJ1ZyA0MDY5NzU0IG9yIDQwNTc4NzggZmFpbGVkID0+IEV4Y2VwdGlvbjogIiArIGZvby5nZXRNZXNzYWdlKCkpOworICAgICAgICAvL30KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LmFwcGx5UGF0dGVybihTdHJpbmcpIGFsbG93cyBpbGxlZ2FsIHBhdHRlcm5zCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwODcyNTEgKCl7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZGYuYXBwbHlQYXR0ZXJuKCIjLiMuIyIpOworICAgICAgICAgICAgbG9nbG4oInRvUGF0dGVybigpIHJldHVybnMgXCIiICsgZGYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgICAgIGVycmxuKCJhcHBseVBhdHRlcm4oXCIjLiMuI1wiKSBkb2Vzbid0IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIkNhdWdodCBJbGxlZ2FsIEFyZ3VtZW50IEVycm9yICEiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBTZWNvbmQgdGVzdDsgYWRkZWQgNS8xMS85OCB3aGVuIHJlcG9ydGVkIHRvIGZhaWwgb24gMS4yYjMKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRmLmFwcGx5UGF0dGVybigiIzAuMCMwIzAiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJ0b1BhdHRlcm4oKSByZXR1cm5zIFwiIiArIGRmLnRvUGF0dGVybigpICsgIlwiIik7CisgICAgICAgICAgICBlcnJsbigiYXBwbHlQYXR0ZXJuKFwiIzAuMCMwIzBcIikgZG9lc24ndCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPayAtIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBmb3IgIzAuMCMwIzAiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuZm9ybWF0KCkgbG9zZXMgcHJlY2lzaW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTA0ODkgKCl7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBkZi5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoMTApOworICAgICAgICBkZi5zZXRHcm91cGluZ1VzZWQoZmFsc2UpOworICAgICAgICBkb3VibGUgZCA9IDEuMDAwMDAwMDAwMDAwMDAxRTc7CisgICAgICAgIEJpZ0RlY2ltYWwgYmQgPSBuZXcgQmlnRGVjaW1hbChkKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZnAgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgbG9nbG4oImQgPSAiICsgZCk7CisgICAgICAgIGxvZ2xuKCJCaWdEZWNpbWFsLnRvU3RyaW5nKCk6ICAiICsgYmQudG9TdHJpbmcoKSk7CisgICAgICAgIGRmLmZvcm1hdChkLCBzYiwgZnApOworICAgICAgICBpZiAoIXNiLnRvU3RyaW5nKCkuZXF1YWxzKCIxMDAwMDAwMC4wMDAwMDAwMTAwIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJEZWNpbWFsRm9ybWF0LmZvcm1hdCgpOiAiICsgc2IudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LmZvcm1hdCgpIGxvc2VzIHByZWNpc2lvbgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDkwNTA0ICgpCisgICAgeworICAgICAgICBkb3VibGUgZCA9IDE7CisgICAgICAgIGxvZ2xuKCJkID0gIiArIGQpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiOworICAgICAgICBGaWVsZFBvc2l0aW9uIGZwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE3OyBpIDw9IDIwOyBpKyspIHsKKyAgICAgICAgICAgICAgICBkZi5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoaSk7CisgICAgICAgICAgICAgICAgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgICAgICAgICBmcCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgIGdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpID0gIiArIGkpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgIGZvcm1hdGVkOiAiICsgZGYuZm9ybWF0KGQsIHNiLCBmcCkpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBlcnJsbigiQnVnIDQwOTA1MDQgcmVncmVzc2lvbiB0ZXN0IGZhaWxlZC4gTWVzc2FnZSA6ICIgKyBmb28uZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LnBhcnNlKFN0cmluZyBzdHIsIFBhcnNlUG9zaXRpb24gcHApIGxvc2VzIHByZWNpc2lvbgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk1NzEzICgpCisgICAgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9ICIwLjEyMzQiOworICAgICAgICBEb3VibGUgZDEgPSBuZXcgRG91YmxlKHN0cik7CisgICAgICAgIE51bWJlciBkMiA9IGRmLnBhcnNlKHN0ciwgbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICBsb2dsbihkMS50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGQyLmRvdWJsZVZhbHVlKCkgIT0gZDEuZG91YmxlVmFsdWUoKSkKKyAgICAgICAgICAgIGVycmxuKCJCdWcgNDA5NTcxMyB0ZXN0IGZhaWxlZCwgbmV3IGRvdWJsZSB2YWx1ZSA6ICIgKyBkMi5kb3VibGVWYWx1ZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LnBhcnNlKCkgZmFpbHMgd2hlbiBtdWx0aXBsaWVyIGlzIG5vdCBzZXQgdG8gMQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDkyNTYxICgpCisgICAgeworICAgICAgICBMb2NhbGUgc2F2ZWRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9IExvbmcudG9TdHJpbmcoTG9uZy5NSU5fVkFMVUUpOworICAgICAgICBsb2dsbigiTG9uZy5NSU5fVkFMVUUgOiAiICsgZGYucGFyc2Uoc3RyLCBuZXcgUGFyc2VQb3NpdGlvbigwKSkudG9TdHJpbmcoKSk7CisgICAgICAgIGRmLnNldE11bHRpcGxpZXIoMTAwKTsKKyAgICAgICAgTnVtYmVyIG51bSA9IGRmLnBhcnNlKHN0ciwgbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICBpZiAobnVtLmRvdWJsZVZhbHVlKCkgIT0gLTkuMjIzMzcyMDM2ODU0Nzc2RTE2KSB7CisgICAgICAgICAgICBlcnJsbigiQnVnIDQwOTI1NjEgdGVzdCBmYWlsZWQgd2hlbiBtdWx0aXBsaWVyIGlzIHNldCB0byBub3QgMS4iKTsKKyAgICAgICAgfQorICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChzYXZlZExvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdDogTmVnYXRpdmUgZm9ybWF0IGlnbm9yZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwOTI0ODAgKCkKKyAgICB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGZGb28gPSBuZXcgRGVjaW1hbEZvcm1hdCgiMDAwIik7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRmRm9vLmFwcGx5UGF0dGVybigiMDAwMDstMDAwIik7CisgICAgICAgICAgICBpZiAoIWRmRm9vLnRvUGF0dGVybigpLmVxdWFscygiIzAwMDAiKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiZGZGb28udG9QYXR0ZXJuIDogIiArIGRmRm9vLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgIGxvZ2xuKGRmRm9vLmZvcm1hdCg0MikpOworICAgICAgICAgICAgbG9nbG4oZGZGb28uZm9ybWF0KC00MikpOworICAgICAgICAgICAgZGZGb28uYXBwbHlQYXR0ZXJuKCIwMDA7LTAwMCIpOworICAgICAgICAgICAgaWYgKCFkZkZvby50b1BhdHRlcm4oKS5lcXVhbHMoIiMwMDAiKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiZGZGb28udG9QYXR0ZXJuIDogIiArIGRmRm9vLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgIGxvZ2xuKGRmRm9vLmZvcm1hdCg0MikpOworICAgICAgICAgICAgbG9nbG4oZGZGb28uZm9ybWF0KC00MikpOworCisgICAgICAgICAgICBkZkZvby5hcHBseVBhdHRlcm4oIjAwMDstMDAwMCIpOworICAgICAgICAgICAgaWYgKCFkZkZvby50b1BhdHRlcm4oKS5lcXVhbHMoIiMwMDAiKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiZGZGb28udG9QYXR0ZXJuIDogIiArIGRmRm9vLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgIGxvZ2xuKGRmRm9vLmZvcm1hdCg0MikpOworICAgICAgICAgICAgbG9nbG4oZGZGb28uZm9ybWF0KC00MikpOworCisgICAgICAgICAgICBkZkZvby5hcHBseVBhdHRlcm4oIjAwMDA7LTAwMCIpOworICAgICAgICAgICAgaWYgKCFkZkZvby50b1BhdHRlcm4oKS5lcXVhbHMoIiMwMDAwIikpCisgICAgICAgICAgICAgICAgZXJybG4oImRmRm9vLnRvUGF0dGVybiA6ICIgKyBkZkZvby50b1BhdHRlcm4oKSk7CisgICAgICAgICAgICBsb2dsbihkZkZvby5mb3JtYXQoNDIpKTsKKyAgICAgICAgICAgIGxvZ2xuKGRmRm9vLmZvcm1hdCgtNDIpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgZXJybG4oIk1lc3NhZ2UgIiArIGZvby5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKCkgcHJvZHVjZXMgZm9ybWF0IHRoYXQgdXNlcworICAgICAqIGRlY2ltYWwgc2VwYXJhdG9yIGluc3RlYWQgb2YgbW9uZXRhcnkgZGVjaW1hbCBzZXBhcmF0b3IuCisgICAgICoKKyAgICAgKiBSZXdyb3RlIHRoaXMgdGVzdCBub3QgdG8gZGVwZW5kIG9uIHRoZSBhY3R1YWwgcGF0dGVybi4gIFBhdHRlcm4gc2hvdWxkCisgICAgICogbmV2ZXIgY29udGFpbiB0aGUgbW9uZXRhcnkgc2VwYXJhdG9yISAgRGVjaW1hbCBzZXBhcmF0b3IgaW4gcGF0dGVybiBpcworICAgICAqIGludGVycHJldGVkIGFzIG1vbmV0YXJ5IHNlcGFyYXRvciBpZiBjdXJyZW5jeSBzeW1ib2wgaXMgc2VlbiEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4NzI0NCAoKSB7CisgICAgICAgIExvY2FsZSBkZSA9IG5ldyBMb2NhbGUoInB0IiwgIlBUIik7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSAoRGVjaW1hbEZvcm1hdCkgTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoZGUpOworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW0gPSBkZi5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICBzeW0uc2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCckJyk7CisgICAgZGYuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltKTsKKyAgICAgICAgY2hhciBkZWNTZXAgPSBzeW0uZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICBjaGFyIG1vblNlcCA9IHN5bS5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKTsKKyAgICAgICAgLy9jaGFyIHplcm8gPSBzeW0uZ2V0WmVyb0RpZ2l0KCk7IC8vVGhlIHZhcmlhYmxlIGlzIG5ldmVyIHVzZWQKKyAgICAgICAgaWYgKGRlY1NlcCA9PSBtb25TZXApIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiB0ZXN0OiB3YW50IGRlY2ltYWwgc2VwICE9IG1vbmV0YXJ5IHNlcCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGYuc2V0TWluaW11bUludGVnZXJEaWdpdHMoMSk7CisgICAgICAgICAgICBkZi5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoMik7CisgICAgICAgICAgICBTdHJpbmcgc3RyID0gZGYuZm9ybWF0KDEuMjMpOworICAgICAgICAgICAgU3RyaW5nIG1vblN0ciA9ICIxIiArIG1vblNlcCArICIyMyI7CisgICAgICAgICAgICBTdHJpbmcgZGVjU3RyID0gIjEiICsgZGVjU2VwICsgIjIzIjsKKyAgICAgICAgICAgIGlmIChzdHIuaW5kZXhPZihtb25TdHIpID49IDAgJiYgc3RyLmluZGV4T2YoZGVjU3RyKSA8IDApIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6IDEuMjMgLT4gXCIiICsgc3RyICsgIlwiIGNvbnRhaW5zIFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgbW9uU3RyICsgIlwiIGFuZCBub3QgXCIiICsgZGVjU3RyICsgJyInKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IDEuMjMgLT4gXCIiICsgc3RyICsgIlwiLCBzaG91bGQgY29udGFpbiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgIG1vblN0ciArCisgICAgICAgICAgICAgICAgICAgICAgIlwiIGFuZCBub3QgXCIiICsgZGVjU3RyICsgJyInKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBOdW1iZXIgZm9ybWF0IGRhdGEgcm91bmRpbmcgZXJyb3JzIGZvciBsb2NhbGUgRlIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MDc5OCAoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXR0ZXI7CisgICAgICAgIFN0cmluZyB0ZW1wU3RyaW5nOworICAgICAgICAvKiBVc2VyIGVycm9yIDoKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkRGVmYXVsdCA9ICItNVx1MDBhMDc4OSw5ODciOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRDdXJyZW5jeSA9ICI1XHUwMGEwNzg5LDk4IEYiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRQZXJjZW50ID0gIi01NzhcdTAwYTA5OTglIjsKKyAgICAgICAgKi8KKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkRGVmYXVsdCA9ICItNVx1MDBhMDc4OSw5ODgiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRDdXJyZW5jeSA9ICI1XHUwMGEwNzg5LDk5ICIgKyBFVVJPOyAvLyBldXJvCisgICAgICAgIFN0cmluZyBleHBlY3RlZFBlcmNlbnQgPSAiLTU3OFx1MDBhMDk5OSUiOworCisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXROdW1iZXJJbnN0YW5jZShMb2NhbGUuRlJBTkNFKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQgKC01Nzg5Ljk4NzYpOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZERlZmF1bHQpKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcwNzk4IGRlZmF1bHQgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWREZWZhdWx0ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorCisKKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIHRlbXBTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0KCA1Nzg5Ljk4NzYgKTsKKworICAgICAgICBpZiAodGVtcFN0cmluZy5lcXVhbHMoZXhwZWN0ZWRDdXJyZW5jeSkgKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcwNzk4IGN1cnJlbmN5IHRlc3QgYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRDdXJyZW5jeSArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKworCisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlLkZSQU5DRSk7CisgICAgICAgIHRlbXBTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0ICgtNTc4OS45ODc2KTsKKworICAgICAgICBpZiAodGVtcFN0cmluZy5lcXVhbHMoZXhwZWN0ZWRQZXJjZW50KSApIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzA3OTggcGVyY2VudGFnZSB0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZFBlcmNlbnQgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIERhdGEgcm91bmRpbmcgZXJyb3JzIGZvciBGcmVuY2ggKENhbmFkYSkgbG9jYWxlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzEwMDUgKCkgeworCisgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXR0ZXI7CisgICAgICAgIFN0cmluZyB0ZW1wU3RyaW5nOworICAgIC8qIHVzZXIgZXJyb3IgOgorICAgICAgICBTdHJpbmcgZXhwZWN0ZWREZWZhdWx0ID0gIi01IDc4OSw5ODciOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRDdXJyZW5jeSA9ICI1IDc4OSw5OCAkIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkUGVyY2VudCA9ICItNTc4IDk5OCUiOworICAgICovCisgICAgICAgIFN0cmluZyBleHBlY3RlZERlZmF1bHQgPSAiLTVcdTAwYTA3ODksOTg4IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkQ3VycmVuY3kgPSAiNVx1MDBhMDc4OSw5OSAkIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkUGVyY2VudCA9ICItNTc4XHUwMGEwOTk5JSI7CisKKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKExvY2FsZS5DQU5BREFfRlJFTkNIKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQgKC01Nzg5Ljk4NzYpOworICAgICAgICBpZiAodGVtcFN0cmluZy5lcXVhbHMoZXhwZWN0ZWREZWZhdWx0KSkgeworICAgICAgICAgICAgbG9nbG4gKCJCdWcgNDA3MTAwNSBkZWZhdWx0IHRlc3QgcGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkRGVmYXVsdCArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuQ0FOQURBX0ZSRU5DSCk7CisgICAgICAgIHRlbXBTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0KCA1Nzg5Ljk4NzYgKSA7CisKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkQ3VycmVuY3kpICkgeworICAgICAgICAgICAgbG9nbG4gKCJCdWcgNDA3MTAwNSBjdXJyZW5jeSB0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZEN1cnJlbmN5ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5DQU5BREFfRlJFTkNIKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQgKC01Nzg5Ljk4NzYpOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZFBlcmNlbnQpICkgeworICAgICAgICAgICAgbG9nbG4gKCJCdWcgNDA3MTAwNSBwZXJjZW50YWdlIHRlc3QgcGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkUGVyY2VudCArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEYXRhIHJvdW5kaW5nIGVycm9ycyBmb3IgR2VybWFuIChHZXJtYW55KSBsb2NhbGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MTAxNCAoKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXR0ZXI7CisgICAgICAgIFN0cmluZyB0ZW1wU3RyaW5nOworICAgICAgICAvKiB1c2VyIGVycm9yIDoKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkRGVmYXVsdCA9ICItNS43ODksOTg3IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkQ3VycmVuY3kgPSAiNS43ODksOTggRE0iOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRQZXJjZW50ID0gIi01NzguOTk4JSI7CisgICAgICAgICovCisgICAgICAgIFN0cmluZyBleHBlY3RlZERlZmF1bHQgPSAiLTUuNzg5LDk4OCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEN1cnJlbmN5ID0gIjUuNzg5LDk5ICIgKyBFVVJPOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRQZXJjZW50ID0gIi01NzguOTk5JSI7CisKKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQgKC01Nzg5Ljk4NzYpOworCisgICAgICAgIGlmICh0ZW1wU3RyaW5nLmVxdWFscyhleHBlY3RlZERlZmF1bHQpKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcxMDE0IGRlZmF1bHQgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWREZWZhdWx0ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcm1hdHRlciA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5HRVJNQU5ZKTsKKyAgICAgICAgdGVtcFN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQoIDU3ODkuOTg3NiApIDsKKworICAgICAgICBpZiAodGVtcFN0cmluZy5lcXVhbHMoZXhwZWN0ZWRDdXJyZW5jeSkgKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcxMDE0IGN1cnJlbmN5IHRlc3QgcGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkQ3VycmVuY3kgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisKKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIHRlbXBTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0ICgtNTc4OS45ODc2KTsKKworICAgICAgICBpZiAodGVtcFN0cmluZy5lcXVhbHMoZXhwZWN0ZWRQZXJjZW50KSApIHsKKyAgICAgICAgICAgIGxvZ2xuICgiQnVnIDQwNzEwMTQgcGVyY2VudGFnZSB0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IiArCisgICAgICAgICAgICAiIEV4cGVjdGVkICIgKyBleHBlY3RlZFBlcmNlbnQgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisKKyAgICB9CisgICAgLyoqCisgICAgICogRGF0YSByb3VuZGluZyBlcnJvcnMgZm9yIEl0YWxpYW4gbG9jYWxlIG51bWJlciBmb3JtYXRzCisgICAgICogTm90ZS0gd2l0aCB0aGUgRXVybywgdGhlcmUgaXMgbm8gbmVlZCBmb3IgY3VycmVuY3kgcm91bmRpbmcgYW55bW9yZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDcxODU5ICgpIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdHRlcjsKKyAgICAgICAgU3RyaW5nIHRlbXBTdHJpbmc7CisgICAgICAgIC8qIHVzZXIgZXJyb3IgOgorICAgICAgICBTdHJpbmcgZXhwZWN0ZWREZWZhdWx0ID0gIi01Ljc4OSw5ODciOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRDdXJyZW5jeSA9ICItTC4gNS43ODksOTgiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRQZXJjZW50ID0gIi01NzguOTk4JSI7CisgICAgICAgICovCisgICAgICAgIFN0cmluZyBleHBlY3RlZERlZmF1bHQgPSAiLTUuNzg5LDk4OCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZEN1cnJlbmN5ID0gIi0iICsgRVVSTyArICIgNS43ODksOTkiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRQZXJjZW50ID0gIi01NzguOTk5JSI7CisKKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldE51bWJlckluc3RhbmNlKExvY2FsZS5JVEFMWSk7CisgICAgICAgIHRlbXBTdHJpbmcgPSBmb3JtYXR0ZXIuZm9ybWF0ICgtNTc4OS45ODc2KTsKKworICAgICAgICBpZiAodGVtcFN0cmluZy5lcXVhbHMoZXhwZWN0ZWREZWZhdWx0KSkgeworICAgICAgICAgICAgbG9nbG4gKCJCdWcgNDA3MTg1OSBkZWZhdWx0IHRlc3QgcGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oImEpIEZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkRGVmYXVsdCArCisgICAgICAgICAgICAiIFJlY2VpdmVkICIgKyB0ZW1wU3RyaW5nICk7CisgICAgICAgIH0KKworICAgICAgICBmb3JtYXR0ZXIgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuSVRBTFkpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCggLTU3ODkuOTg3NiApIDsKKworICAgICAgICBpZiAodGVtcFN0cmluZy5lcXVhbHMoZXhwZWN0ZWRDdXJyZW5jeSkgKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcxODU5IGN1cnJlbmN5IHRlc3QgcGFzc2VkLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oImIpIEZhaWxlZDoiICsKKyAgICAgICAgICAgICIgRXhwZWN0ZWQgIiArIGV4cGVjdGVkQ3VycmVuY3kgKworICAgICAgICAgICAgIiBSZWNlaXZlZCAiICsgdGVtcFN0cmluZyApOworICAgICAgICB9CisKKyAgICAgICAgZm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUuSVRBTFkpOworICAgICAgICB0ZW1wU3RyaW5nID0gZm9ybWF0dGVyLmZvcm1hdCAoLTU3ODkuOTg3Nik7CisKKyAgICAgICAgaWYgKHRlbXBTdHJpbmcuZXF1YWxzKGV4cGVjdGVkUGVyY2VudCkgKSB7CisgICAgICAgICAgICBsb2dsbiAoIkJ1ZyA0MDcxODU5IHBlcmNlbnRhZ2UgdGVzdCBwYXNzZWQuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiYykgRmFpbGVkOiIgKworICAgICAgICAgICAgIiBFeHBlY3RlZCAiICsgZXhwZWN0ZWRQZXJjZW50ICsKKyAgICAgICAgICAgICIgUmVjZWl2ZWQgIiArIHRlbXBTdHJpbmcgKTsKKyAgICAgICAgfQorCisgICAgfQorICAgIC8qIGJ1ZyA0MDcxODU5CisgICAgICogVGVzdCByb3VuZGluZyBmb3IgbmVhcmVzdCBldmVuLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDkzNjEwKCkKKyAgICB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIzAuIyIpOworICAgICAgICByb3VuZGluZ1Rlc3QoZGYsIDEyLjM1LCAiMTIuNCIpOworICAgICAgICByb3VuZGluZ1Rlc3QoZGYsIDEyLjQ1LCAiMTIuNCIpOworICAgICAgICByb3VuZGluZ1Rlc3QoZGYsIDEyLjQ1MiwiMTIuNSIpOworICAgICAgICByb3VuZGluZ1Rlc3QoZGYsIDEyLjU1LCAiMTIuNiIpOworICAgICAgICByb3VuZGluZ1Rlc3QoZGYsIDEyLjY1LCAiMTIuNiIpOworICAgICAgICByb3VuZGluZ1Rlc3QoZGYsIDEyLjY1MiwiMTIuNyIpOworICAgICAgICByb3VuZGluZ1Rlc3QoZGYsIDEyLjc1LCAiMTIuOCIpOworICAgICAgICByb3VuZGluZ1Rlc3QoZGYsIDEyLjc1MiwiMTIuOCIpOworICAgICAgICByb3VuZGluZ1Rlc3QoZGYsIDEyLjg1LCAiMTIuOCIpOworICAgICAgICByb3VuZGluZ1Rlc3QoZGYsIDEyLjg1MiwiMTIuOSIpOworICAgICAgICByb3VuZGluZ1Rlc3QoZGYsIDEyLjk1LCAiMTMiKTsKKyAgICAgICAgcm91bmRpbmdUZXN0KGRmLCAxMi45NTIsIjEzIik7CisKKyAgICB9CisgICAgdm9pZCByb3VuZGluZ1Rlc3QoRGVjaW1hbEZvcm1hdCBkZiwgZG91YmxlIHgsIFN0cmluZyBleHBlY3RlZCkKKyAgICB7CisgICAgICAgIFN0cmluZyBvdXQgPSBkZi5mb3JtYXQoeCk7CisgICAgICAgIGxvZ2xuKCIiICsgeCArICIgZm9ybWF0cyB3aXRoIDEgZnJhY3Rpb25hbCBkaWdpdHMgdG8gIiArIG91dCk7CisgICAgICAgIGlmICghb3V0LmVxdWFscyhleHBlY3RlZCkpIGVycmxuKCJGQUlMOiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBUZXN0cyB0aGUgc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzIGxpbWl0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk4NzQxKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZSgpOworICAgICAgICAgICAgZm10LnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cygyMCk7CisgICAgICAgICAgICBsb2dsbihmbXQuZm9ybWF0KC4wMDEpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgd2FybmxuKCJCdWcgNDA5ODQ3MSBmYWlsZWQgd2l0aCBleGNlcHRpb24gdGhyb3duIDogIiArIGZvby5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIFRlc3RzIGlsbGVnYWwgcGF0dGVybiBleGNlcHRpb24uCisgICAgICogRml4IGNvbW1lbnQgOiBIU2hpaCBBMzEgUGFydDEgd2lsbCBub3QgYmUgZml4ZWQgYW5kIGphdmFkb2MgbmVlZHMgdG8gYmUgdXBkYXRlZC4KKyAgICAgKiBQYXJ0MiBoYXMgYmVlbiBmaXhlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3NDQ1NCgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjMDAuMDA7LSMuIyIpOworICAgICAgICAgICAgbG9nbG4oImZvcm1hdCAzNDU2Ljc4OiAiICsgZm10LmZvcm1hdCgzNDU2Ljc4KSk7IC8vZml4ICJUaGUgdmFyaWFibGUgJ2ZtdCcgaXMgbmV2ZXIgdXNlZCIKKyAgICAgICAgICAgIGxvZ2xuKCJJbmNvbnNpc3RlbnQgbmVnYXRpdmUgcGF0dGVybiBpcyBmaW5lLiIpOworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBuZXdGbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjMDAuMDAgcCcnaWVjZXM7LSMsIzAwLjAwIHAnJ2llY2VzIik7CisgICAgICAgICAgICBTdHJpbmcgdGVtcFN0cmluZyA9IG5ld0ZtdC5mb3JtYXQoMzQ1Ni43OCk7CisgICAgICAgICAgICBpZiAoIXRlbXBTdHJpbmcuZXF1YWxzKCIzLDQ1Ni43OCBwJ2llY2VzIikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCEgIDM0NTYuNzggcCdpZWNlcyBleHBlY3RlZCwgYnV0IGdvdCA6ICIgKyB0ZW1wU3RyaW5nKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgd2FybmxuKCJBbiBleGNlcHRpb24gd2FzIHRocm93biBmb3IgYW55IGluY29uc2lzdGVudCBuZWdhdGl2ZSBwYXR0ZXJuLiIpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIFRlc3RzIGFsbCBkaWZmZXJlbnQgY29tbWVudHMuCisgICAgICogUmVzcG9uc2UgdG8gc29tZSBjb21tZW50cyA6CisgICAgICogWzFdIERlY2ltYWxGb3JtYXQucGFyc2UgQVBJIGRvY3VtZW50YXRpb24gaXMgbW9yZSB0aGFuIGp1c3Qgb25lIGxpbmUuCisgICAgICogVGhpcyBpcyBub3QgYSByZXByb2R1Y2FibGUgZG9jIGVycm9yIGluIDExNiBzb3VyY2UgY29kZS4KKyAgICAgKiBbMl0gU2VlIHVwZGF0ZWQgamF2YWRvYy4KKyAgICAgKiBbM10gRml4ZWQuCisgICAgICogWzRdIE51bWJlckZvcm1hdC5wYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pIDogSWYgcGFyc2luZyBmYWlscywKKyAgICAgKiBhIG51bGwgb2JqZWN0IHdpbGwgYmUgcmV0dXJuZWQuICBUaGUgdW5jaGFuZ2VkIHBhcnNlIHBvc2l0aW9uIGFsc28KKyAgICAgKiByZWZsZWN0cyBhbiBlcnJvci4KKyAgICAgKiBOdW1iZXJGb3JtYXQucGFyc2UoU3RyaW5nKSA6IElmIHBhcnNpbmcgZmFpbHMsIGFuIFBhcnNlRXhjZXB0aW9uCisgICAgICogd2lsbCBiZSB0aHJvd24uCisgICAgICogU2VlIHVwZGF0ZWQgamF2YWRvYyBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqIFs1XSBTZWUgdXBkYXRlZCBqYXZhZG9jLgorICAgICAqIFs2XSBTZWUgdXBkYXRlZCBqYXZhZG9jLgorICAgICAqIFs3XSBUaGlzIGlzIGEgY29ycmVjdCBiZWhhdmlvciBpZiB0aGUgRGF0ZUZvcm1hdCBvYmplY3QgaXMgbGluaWVudC4KKyAgICAgKiBPdGhlcndpc2UsIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biB3aGVuIGZvcm1hdHRpbmcKKyAgICAgKiAiSmFudWFyeSAzNSIuICBTZWUgR3JlZ29yaWFuQ2FsZW5kYXIgY2xhc3MgamF2YWRvYyBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk5NDA0KCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIwMDAuMCMwIik7CisgICAgICAgICAgICBsb2dsbigiZm9ybWF0IDM0NTYuNzg6ICIgKyBmbXQuZm9ybWF0KDM0NTYuNzgpKTsgLy9maXggIlRoZSB2YXJpYWJsZSAnZm10JyBpcyBuZXZlciB1c2VkIgorICAgICAgICAgICAgZXJybG4oIkJ1ZyA0MDk5NDA0IGZhaWxlZCBhcHBseWluZyBpbGxlZ2FsIHBhdHRlcm4gXCIwMDAuMCMwXCIiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgbG9nbG4oIkJ1ZyA0MDk5NDA0IHBhdHRlcm4gXCIwMDAuMCMwXCIgcGFzc2VkIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAjMC4wMDAiKTsKKyAgICAgICAgICAgIGxvZ2xuKCJmb3JtYXQgMzQ1Ni43ODogIiArIGZtdC5mb3JtYXQoMzQ1Ni43OCkpOyAvL2ZpeCAiVGhlIHZhcmlhYmxlICdmbXQnIGlzIG5ldmVyIHVzZWQiCisgICAgICAgICAgICBlcnJsbigiQnVnIDQwOTk0MDQgZmFpbGVkIGFwcGx5aW5nIGlsbGVnYWwgcGF0dGVybiBcIjAjMC4wMDBcIiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZm9vKSB7CisgICAgICAgICAgICBsb2dsbigiQnVnIDQwOTk0MDQgcGF0dGVybiBcIjAjMC4wMDBcIiBwYXNzZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LmFwcGx5UGF0dGVybiBkb2Vzbid0IHNldCBtaW5pbXVtIGludGVnZXIgZGlnaXRzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDE0ODEoKQorICAgIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBzZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIzAiKTsKKyAgICAgICAgaWYgKHNkZi5nZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpICE9IDEpCisgICAgICAgICAgICBlcnJsbigiTWluaW11bSBpbnRlZ2VyIGRpZ2l0cyA6ICIgKyBzZGYuZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSk7CisgICAgfQorICAgIC8qKgorICAgICAqIFRlc3RzIFBhcnNlUG9zaXRpb24uc2V0RXJyb3JQb3NpdGlvbigpIGFuZCBQYXJzZVBvc2l0aW9uLmdldEVycm9yUG9zaXRpb24oKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA1MjIyMygpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjMDAuMDAiKTsKKyAgICAgICAgICAgIE51bWJlciBudW0gPSBmbXQucGFyc2UoImFiYzMiKTsKKyAgICAgICAgICAgIGVycmxuKCJCdWcgNDA1MjIyMyBmYWlsZWQgOiBjYW4ndCBwYXJzZSBzdHJpbmcgXCJhXCIuICBHb3QgIiArIG51bSk7CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgbG9nbG4oIkNhdWdodCBleHBlY3RlZCBQYXJzZUV4Y2VwdGlvbiA6ICIgKyBmb28uZ2V0TWVzc2FnZSgpICsgIiBhdCBpbmRleCA6ICIgKyBmb28uZ2V0RXJyb3JPZmZzZXQoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogQVBJIHRlc3RzIGZvciBBUEkgYWRkaXRpb24gcmVxdWVzdCBBOS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA2MTMwMigpCisgICAgeworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBmbXQgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgU3RyaW5nIGN1cnJlbmN5ID0gZm10LmdldEN1cnJlbmN5U3ltYm9sKCk7CisgICAgICAgIFN0cmluZyBpbnRsQ3VycmVuY3kgPSBmbXQuZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCk7CisgICAgICAgIGNoYXIgbW9uRGVjU2VwYXJhdG9yID0gZm10LmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICBpZiAoY3VycmVuY3kuZXF1YWxzKCIiKSB8fAorICAgICAgICAgICAgaW50bEN1cnJlbmN5LmVxdWFscygiIikgfHwKKyAgICAgICAgICAgIG1vbkRlY1NlcGFyYXRvciA9PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiZ2V0Q3VycmVuY3lTeW1ib2xzIGZhaWxlZCwgZ290IGVtcHR5IHN0cmluZy4iKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiQmVmb3JlIHNldCA9PT4gQ3VycmVuY3kgOiAiICsgY3VycmVuY3kgKyAiIEludGwgQ3VycmVuY3kgOiAiICsgaW50bEN1cnJlbmN5ICsgIiBNb25ldGFyeSBEZWNpbWFsIFNlcGFyYXRvciA6ICIgKyBtb25EZWNTZXBhcmF0b3IpOworICAgICAgICBmbXQuc2V0Q3VycmVuY3lTeW1ib2woIlhZWiIpOworICAgICAgICBmbXQuc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCJBQkMiKTsKKyAgICAgICAgZm10LnNldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcignKicpOworICAgICAgICBjdXJyZW5jeSA9IGZtdC5nZXRDdXJyZW5jeVN5bWJvbCgpOworICAgICAgICBpbnRsQ3VycmVuY3kgPSBmbXQuZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCk7CisgICAgICAgIG1vbkRlY1NlcGFyYXRvciA9IGZtdC5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKTsKKyAgICAgICAgaWYgKCFjdXJyZW5jeS5lcXVhbHMoIlhZWiIpIHx8CisgICAgICAgICAgICAhaW50bEN1cnJlbmN5LmVxdWFscygiQUJDIikgfHwKKyAgICAgICAgICAgIG1vbkRlY1NlcGFyYXRvciAhPSAnKicpIHsKKyAgICAgICAgICAgIGVycmxuKCJzZXRDdXJyZW5jeVN5bWJvbHMgZmFpbGVkLiIpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJBZnRlciBzZXQgPT0+IEN1cnJlbmN5IDogIiArIGN1cnJlbmN5ICsgIiBJbnRsIEN1cnJlbmN5IDogIiArIGludGxDdXJyZW5jeSArICIgTW9uZXRhcnkgRGVjaW1hbCBTZXBhcmF0b3IgOiAiICsgbW9uRGVjU2VwYXJhdG9yKTsKKyAgICB9CisgICAgLyoqCisgICAgICogQVBJIHRlc3RzIGZvciBBUEkgYWRkaXRpb24gcmVxdWVzdCBBMjMuIEZpZWxkUG9zaXRpb24uZ2V0QmVnaW5JbmRleCBhbmQKKyAgICAgKiBGaWVsZFBvc2l0aW9uLmdldEVuZEluZGV4LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDYyNDg2KCkKKyAgICB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLjAwIik7CisgICAgICAgIFN0cmluZ0J1ZmZlciBmb3JtYXR0ZWQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gZmllbGQgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgRG91YmxlIG51bSA9IG5ldyBEb3VibGUoMTIzNC41KTsKKyAgICAgICAgZm10LmZvcm1hdChudW0sIGZvcm1hdHRlZCwgZmllbGQpOworICAgICAgICBpZiAoZmllbGQuZ2V0QmVnaW5JbmRleCgpICE9IDAgJiYgZmllbGQuZ2V0RW5kSW5kZXgoKSAhPSA1KQorICAgICAgICAgICAgZXJybG4oIkZvcm1hdCAxMjM0LjUgZmFpbGVkLiBCZWdpbiBpbmRleDogIiArIGZpZWxkLmdldEJlZ2luSW5kZXgoKSArICIgRW5kIGluZGV4OiAiICsgZmllbGQuZ2V0RW5kSW5kZXgoKSk7CisgICAgICAgIGZpZWxkLnNldEJlZ2luSW5kZXgoNyk7CisgICAgICAgIGZpZWxkLnNldEVuZEluZGV4KDQpOworICAgICAgICBpZiAoZmllbGQuZ2V0QmVnaW5JbmRleCgpICE9IDcgJiYgZmllbGQuZ2V0RW5kSW5kZXgoKSAhPSA0KQorICAgICAgICAgICAgZXJybG4oIlNldCBiZWdpbi9lbmQgZmllbGQgaW5kZXhlcyBmYWlsZWQuIEJlZ2luIGluZGV4OiAiICsgZmllbGQuZ2V0QmVnaW5JbmRleCgpICsgIiBFbmQgaW5kZXg6ICIgKyBmaWVsZC5nZXRFbmRJbmRleCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LnBhcnNlIGluY29ycmVjdGx5IHdvcmtzIHdpdGggYSBncm91cCBzZXBhcmF0b3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDg3MzgoKQorICAgIHsKKworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLiMjIyIsIG5ldworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyhqYXZhLnV0aWwuTG9jYWxlLlVTKSk7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gIjEuMjIyLDExMSI7CisgICAgICAgIE51bWJlciBudW0gPSBkZi5wYXJzZSh0ZXh0LG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgaWYgKCFudW0udG9TdHJpbmcoKS5lcXVhbHMoIjEuMjIyIikpCisgICAgICAgICAgICBlcnJsbigiXCIiICsgdGV4dCArICJcIiAgaXMgcGFyc2VkIGFzICIgKyBudW0pOworICAgICAgICB0ZXh0ID0gIjEuMjIyeDExMSI7CisgICAgICAgIG51bSA9IGRmLnBhcnNlKHRleHQsbmV3IFBhcnNlUG9zaXRpb24oMCkpOworICAgICAgICBpZiAoIW51bS50b1N0cmluZygpLmVxdWFscygiMS4yMjIiKSkKKyAgICAgICAgICAgIGVycmxuKCJcIiIgKyB0ZXh0ICsgIlwiICBpcyBwYXJzZWQgYXMgIiArIG51bSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5mb3JtYXQoKSBpbmNvcnJlY3RseSBmb3JtYXRzIG5lZ2F0aXZlIGRvdWJsZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMDY2NTgoKQorICAgIHsKKyAgICAgICAgTG9jYWxlIHNhdmVkTG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoTG9jYWxlLlVTKTsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCk7IC8vIENvcnJlY3RlZDsgc2VlIDQxNDc3MDYKKyAgICAgICAgZG91YmxlIGQxID0gLTAuMDsKKyAgICAgICAgZG91YmxlIGQyID0gLTAuMDAwMTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgbG9nbG4oInBhdHRlcm46IFwiIiArIGRmLnRvUGF0dGVybigpICsgIlwiIik7CisgICAgICAgIGRmLmZvcm1hdChkMSwgYnVmZmVyLCBuZXcgRmllbGRQb3NpdGlvbigwKSk7CisgICAgICAgIGlmICghYnVmZmVyLnRvU3RyaW5nKCkuZXF1YWxzKCItMCIpKSB7IC8vIENvcnJlY3RlZDsgc2VlIDQxNDc3MDYKKyAgICAgICAgICAgIGVycmxuKGQxICsgIiAgICAgIGlzIGZvcm1hdHRlZCBhcyAiICsgYnVmZmVyKTsKKyAgICAgICAgfQorICAgICAgICBidWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICBkZi5mb3JtYXQoZDIsIGJ1ZmZlciwgbmV3IEZpZWxkUG9zaXRpb24oMCkpOworICAgICAgICBpZiAoIWJ1ZmZlci50b1N0cmluZygpLmVxdWFscygiLTAiKSkgeyAvLyBDb3JyZWN0ZWQ7IHNlZSA0MTQ3NzA2CisgICAgICAgICAgICBlcnJsbihkMiArICIgICAgICBpcyBmb3JtYXR0ZWQgYXMgIiArIGJ1ZmZlcik7CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxlLnNldERlZmF1bHQoc2F2ZWRMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQucGFyc2UgcmV0dXJucyAwIGlmIHN0cmluZyBwYXJhbWV0ZXIgaXMgaW5jb3JyZWN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTA2NjYyKCkKKyAgICB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgpOworICAgICAgICBTdHJpbmcgdGV4dCA9ICJ4IjsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MxID0gbmV3IFBhcnNlUG9zaXRpb24oMCksIHBvczIgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKworICAgICAgICBsb2dsbigicGF0dGVybjogXCIiICsgZGYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgTnVtYmVyIG51bSA9IGRmLnBhcnNlKHRleHQsIHBvczEpOworICAgICAgICBpZiAobnVtICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IEZhaWxlZDogXCIiICsgdGV4dCArICJcIiBpcyBwYXJzZWQgYXMgIiArIG51bSk7CisgICAgICAgIH0KKyAgICAgICAgZGYgPSBudWxsOworICAgICAgICBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIkIyMjLjAwIik7CisgICAgICAgIG51bSA9IGRmLnBhcnNlKCIkIiwgcG9zMik7CisgICAgICAgIGlmIChudW0gIT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBGYWlsZWQ6IFwiJFwiIGlzIHBhcnNlZCBhcyAiICsgbnVtKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE51bWJlckZvcm1hdC5wYXJzZSBkb2Vzbid0IHJldHVybiBudWxsCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTQ2MzkoKQorICAgIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBTdHJpbmcgdGV4dCA9ICJ0aW1lIDEwOngiOworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDgpOworICAgICAgICBOdW1iZXIgcmVzdWx0ID0gZm9ybWF0LnBhcnNlKHRleHQsIHBvcyk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgZXJybG4oIlNob3VsZCByZXR1cm4gbnVsbCBidXQgZ290IDogIiArIHJlc3VsdCk7IC8vIFNob3VsZCBiZSBudWxsOyBpdCBpc24ndAorICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuZm9ybWF0KGxvbmcgbikgZmFpbHMgaWYgbiAqIG11bHRpcGxpZXIgPiBNQVhfTE9ORy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNjY2NCgpCisgICAgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgbG9uZyBuID0gMTIzNDU2Nzg5MDEyMzQ1Nkw7CisgICAgICAgIGludCBtID0gMTIzNDU2Nzg7CisgICAgICAgIEJpZ0ludGVnZXIgYmlnTiA9IEJpZ0ludGVnZXIudmFsdWVPZihuKTsKKyAgICAgICAgYmlnTiA9IGJpZ04ubXVsdGlwbHkoQmlnSW50ZWdlci52YWx1ZU9mKG0pKTsKKyAgICAgICAgZGYuc2V0TXVsdGlwbGllcihtKTsKKyAgICAgICAgZGYuc2V0R3JvdXBpbmdVc2VkKGZhbHNlKTsKKyAgICAgICAgbG9nbG4oImZvcm1hdGVkOiAiICsKKyAgICAgICAgICAgIGRmLmZvcm1hdChuLCBuZXcgU3RyaW5nQnVmZmVyKCksIG5ldyBGaWVsZFBvc2l0aW9uKDApKSk7CisgICAgICAgIGxvZ2xuKCJleHBlY3RlZDogIiArIGJpZ04udG9TdHJpbmcoKSk7CisgICAgfQorICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuZm9ybWF0IGluY29ycmVjdGx5IGZvcm1hdHMgLTAuMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwNjY2NygpCisgICAgeworICAgICAgICBMb2NhbGUgc2F2ZWRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgZGYuc2V0UG9zaXRpdmVQcmVmaXgoIisiKTsKKyAgICAgICAgZG91YmxlIGQgPSAtMC4wOworICAgICAgICBsb2dsbigicGF0dGVybjogXCIiICsgZGYudG9QYXR0ZXJuKCkgKyAiXCIiKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZGYuZm9ybWF0KGQsIGJ1ZmZlciwgbmV3IEZpZWxkUG9zaXRpb24oMCkpOworICAgICAgICBpZiAoIWJ1ZmZlci50b1N0cmluZygpLmVxdWFscygiLTAiKSkgeyAvLyBDb3JyZWN0ZWQ7IHNlZSA0MTQ3NzA2CisgICAgICAgICAgICBlcnJsbihkICsgIiAgaXMgZm9ybWF0dGVkIGFzICIgKyBidWZmZXIpOworICAgICAgICB9CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KHNhdmVkTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgd29ya3MgaW5jb3JyZWN0bHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMTA5MzYoKQorICAgIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisgICAgICAgIG5mLnNldE1heGltdW1JbnRlZ2VyRGlnaXRzKDEyOCk7CisgICAgICAgIGxvZ2xuKCJzZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygxMjgpIik7CisgICAgICAgIGlmIChuZi5nZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpICE9IDEyOCkKKyAgICAgICAgICAgIGVycmxuKCJnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpIHJldHVybnMgIiArCisgICAgICAgICAgICAgICAgbmYuZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIExvY2FsZSBkYXRhIHNob3VsZCB1c2UgZ2VuZXJpYyBjdXJyZW5jeSBzeW1ib2wKKyAgICAgKgorICAgICAqIDEpIE1ha2Ugc3VyZSB0aGF0IGFsbCBjdXJyZW5jeSBmb3JtYXRzIHVzZSB0aGUgZ2VuZXJpYyBjdXJyZW5jeSBzeW1ib2wuCisgICAgICogMikgTWFrZSBzdXJlIHdlIGdldCB0aGUgc2FtZSByZXN1bHRzIHVzaW5nIHRoZSBnZW5lcmljIHN5bWJvbCBvciBhCisgICAgICogICAgaGFyZC1jb2RlZCBvbmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxMjI4NDAoKQorICAgIHsKKyAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLGxvY2FsZXNbaV0pOworCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW5jeSBwYXR0ZXJuIGZvciB0aGlzIGxvY2FsZS4gIFdlIGhhdmUgdG8gZmlzaCBpdAorICAgICAgICAgICAgLy8gb3V0IG9mIHRoZSBSZXNvdXJjZUJ1bmRsZSBkaXJlY3RseSwgc2luY2UgRGVjaW1hbEZvcm1hdC50b1BhdHRlcm4KKyAgICAgICAgICAgIC8vIHdpbGwgcmV0dXJuIHRoZSBsb2NhbGl6ZWQgc3ltYm9sLCBub3QgXDAwYTQKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBudW1QYXR0ZXJucyA9IHJiLmdldCgiTnVtYmVyUGF0dGVybnMiKTsKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gbnVtUGF0dGVybnMuZ2V0U3RyaW5nKDEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAocGF0dGVybi5pbmRleE9mKCdcdTAwQTQnKSA9PSAtMSApIHsgLy8gJ3gnIG5vdCAieCIgLS0gd29ya2Fyb3VuZCBidWcgaW4gSUJNIEpESyAxLjQuMQorICAgICAgICAgICAgICAgIGVycmxuKCJDdXJyZW5jeSBmb3JtYXQgZm9yICIgKyBsb2NhbGVzW2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgZG9lcyBub3QgY29udGFpbiBnZW5lcmljIGN1cnJlbmN5IHN5bWJvbDoiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ3JlYXRlIGEgRGVjaW1hbEZvcm1hdCB1c2luZyB0aGUgcGF0dGVybiB3ZSBnb3QgYW5kIGZvcm1hdCBhIG51bWJlcgorICAgICAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10MSA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdHRlcm4sIHN5bWJvbHMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0MSA9IGZtdDEuZm9ybWF0KDEuMTExKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE5vdyBzdWJzdGl0dXRlIGluIHRoZSBsb2NhbGUncyBjdXJyZW5jeSBzeW1ib2wgYW5kIGNyZWF0ZSBhbm90aGVyCisgICAgICAgICAgICAvLyBwYXR0ZXJuLiAgUmVwbGFjZSB0aGUgZGVjaW1hbCBzZXBhcmF0b3Igd2l0aCB0aGUgbW9uZXRhcnkgc2VwYXJhdG9yLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vY2hhciBkZWNTZXAgPSBzeW1ib2xzLmdldERlY2ltYWxTZXBhcmF0b3IoKTsgLy9UaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZAorICAgICAgICAgICAgY2hhciBtb25TZXAgPSBzeW1ib2xzLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIocGF0dGVybik7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGJ1Zi5sZW5ndGgoKTsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1Zi5jaGFyQXQoaikgPT0gJ1x1MDBhNCcpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGN1ciA9ICInIiArIHN5bWJvbHMuZ2V0Q3VycmVuY3lTeW1ib2woKSArICInIjsKKyAgICAgICAgICAgICAgICAgICAgYnVmLnJlcGxhY2UoaiwgaisxLCBjdXIpOyAKKyAgICAgICAgICAgICAgICAgICAgaiArPSBjdXIubGVuZ3RoKCkgLSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN5bWJvbHMuc2V0RGVjaW1hbFNlcGFyYXRvcihtb25TZXApOworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmbXQyID0gbmV3IERlY2ltYWxGb3JtYXQoYnVmLnRvU3RyaW5nKCksIHN5bWJvbHMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0MiA9IGZtdDIuZm9ybWF0KDEuMTExKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gTk9URTogZW5fSU4gaXMgYSBzcGVjaWFsIGNhc2UgKENob2ljZUZvcm1hdCBjdXJyZW5jeSBkaXNwbGF5IG5hbWUpCisgICAgICAgICAgICBpZiAoIXJlc3VsdDEuZXF1YWxzKHJlc3VsdDIpICYmCisgICAgICAgICAgICAgICAgIWxvY2FsZXNbaV0udG9TdHJpbmcoKS5lcXVhbHMoImVuX0lOIikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUmVzdWx0cyBmb3IgIiArIGxvY2FsZXNbaV0gKyAiIGRpZmZlcjogIiArCisgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MSArICIgdnMgIiArIHJlc3VsdDIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgICAKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0LmZvcm1hdCgpIGRlbGl2ZXJzIHdyb25nIHN0cmluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEyNTg4NSgpCisgICAgeworICAgICAgICBkb3VibGUgcmF0ZSA9IDEyLjM0OworICAgICAgICBEZWNpbWFsRm9ybWF0IGZvcm1hdERlYyA9IG5ldyBEZWNpbWFsRm9ybWF0ICgiMDAwLjAwIik7CisgICAgICAgIGxvZ2xuKCJ0b1BhdHRlcm46ICIgKyBmb3JtYXREZWMudG9QYXR0ZXJuKCkpOworICAgICAgICBTdHJpbmcgcmF0ZVN0cmluZz0gZm9ybWF0RGVjLmZvcm1hdChyYXRlKTsKKyAgICAgICAgaWYgKCFyYXRlU3RyaW5nLmVxdWFscygiMDEyLjM0IikpCisgICAgICAgICAgICBlcnJsbigicmVzdWx0IDogIiArIHJhdGVTdHJpbmcgKyAiIGV4cGVjdGVkIDogMDEyLjM0Iik7CisgICAgICAgIHJhdGUgPSAwLjEyMzQ7CisgICAgICAgIGZvcm1hdERlYyA9IG51bGw7CisgICAgICAgIGZvcm1hdERlYyA9IG5ldyBEZWNpbWFsRm9ybWF0ICgiKzAwMC4wMCU7LTAwMC4wMCUiKTsKKyAgICAgICAgbG9nbG4oInRvUGF0dGVybjogIiArIGZvcm1hdERlYy50b1BhdHRlcm4oKSk7CisgICAgICAgIHJhdGVTdHJpbmc9IGZvcm1hdERlYy5mb3JtYXQocmF0ZSk7CisgICAgICAgIGlmICghcmF0ZVN0cmluZy5lcXVhbHMoIiswMTIuMzQlIikpCisgICAgICAgICAgICBlcnJsbigicmVzdWx0IDogIiArIHJhdGVTdHJpbmcgKyAiIGV4cGVjdGVkIDogKzAxMi4zNCUiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0IHByb2R1Y2VzIGV4dHJhIHplcm9zIHdoZW4gZm9ybWF0dGluZyBudW1iZXJzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTM0MDM0KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IG5mID0gbmV3IERlY2ltYWxGb3JtYXQoIiMjLCMjIywjIyMuMDAiKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBmID0gbmYuZm9ybWF0KDkuMDIpOworICAgICAgICBpZiAoZi5lcXVhbHMoIjkuMDIiKSkgbG9nbG4oZiArICIgb2siKTsgZWxzZSBlcnJsbigiOS4wMiAtPiAiICsgZiArICI7IHdhbnQgOS4wMiIpOworCisgICAgICAgIGYgPSBuZi5mb3JtYXQoMCk7CisgICAgICAgIGlmIChmLmVxdWFscygiLjAwIikpIGxvZ2xuKGYgKyAiIG9rIik7IGVsc2UgZXJybG4oIjAgLT4gIiArIGYgKyAiOyB3YW50IC4wMCIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENBTk5PVCBSRVBST0RVQ0UgLSBUaGlzIGJ1ZyBjb3VsZCBub3QgYmUgcmVwcm9kdWNlZC4gIEl0IG1heSBiZQorICAgICAqIGEgZHVwbGljYXRlIG9mIDQxMzQwMzQuCisgICAgICoKKyAgICAgKiBKREsgMS4xLjYgQnVnLCBkaWQgTk9UIG9jY3VyIGluIDEuMS41CisgICAgICogUG9zc2libHkgcmVsYXRlZCB0byBidWcgNDEyNTg4NS4KKyAgICAgKiAKKyAgICAgKiBUaGlzIGNsYXNzIGRlbW9uc3RyYXRlcyBhIHJlZ3Jlc3Npb24gaW4gdmVyc2lvbiAxLjEuNgorICAgICAqIG9mIERlY2ltYWxGb3JtYXQgY2xhc3MuCisgICAgICogCisgICAgICogMS4xLjYgUmVzdWx0cworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgIy4wMCBSZXN1bHQgJzAxLjIwJyAhISF3cm9uZworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgMC4wMCBSZXN1bHQgJzAwMS4yMCcgISEhd3JvbmcKKyAgICAgKiBWYWx1ZSAxLjIgRm9ybWF0IDAwLjAwIFJlc3VsdCAnMDAwMS4yMCcgISEhd3JvbmcKKyAgICAgKiBWYWx1ZSAxLjIgRm9ybWF0ICMwLjAjIFJlc3VsdCAnMS4yJworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgIzAuMDAgUmVzdWx0ICcwMDEuMjAnICEhIXdyb25nCisgICAgICogCisgICAgICogMS4xLjUgUmVzdWx0cworICAgICAqIFZhbHVlIDEuMiBGb3JtYXQgIy4wMCBSZXN1bHQgJzEuMjAnCisgICAgICogVmFsdWUgMS4yIEZvcm1hdCAwLjAwIFJlc3VsdCAnMS4yMCcKKyAgICAgKiBWYWx1ZSAxLjIgRm9ybWF0IDAwLjAwIFJlc3VsdCAnMDEuMjAnCisgICAgICogVmFsdWUgMS4yIEZvcm1hdCAjMC4wIyBSZXN1bHQgJzEuMicKKyAgICAgKiBWYWx1ZSAxLjIgRm9ybWF0ICMwLjAwIFJlc3VsdCAnMS4yMCcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEzNDMwMCgpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgIC8vIFBhdHRlcm4gICAgICBFeHBlY3RlZCBzdHJpbmcKKyAgICAgICAgICAgICIjLjAwIiwgICAgICAiMS4yMCIsCisgICAgICAgICAgICAiMC4wMCIsICAgICAgIjEuMjAiLAorICAgICAgICAgICAgIjAwLjAwIiwgICAgICIwMS4yMCIsCisgICAgICAgICAgICAiIzAuMCMiLCAgICAgIjEuMiIsCisgICAgICAgICAgICAiIzAuMDAiLCAgICAgIjEuMjAiLAorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBuZXcgRGVjaW1hbEZvcm1hdChEQVRBW2ldKS5mb3JtYXQoMS4yKTsKKyAgICAgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhEQVRBW2krMV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IDEuMiB4ICIgKyBEQVRBW2ldICsgIiA9ICIgKyByZXN1bHQgKworICAgICAgICAgICAgICAgICAgICAgICI7IHdhbnQgIiArIERBVEFbaSsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6IDEuMiB4ICIgKyBEQVRBW2ldICsgIiA9ICIgKyByZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRW1wdHkgcGF0dGVybiBwcm9kdWNlcyBkb3VibGUgbmVnYXRpdmUgcHJlZml4LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQwMDA5KCkgeworICAgICAgICBmaW5hbCBkb3VibGUgSU5bXSAgPSB7ICAxMjMuNDU2LCAgIC0xMjMuNDU2ICB9OworICAgICAgICBmaW5hbCBTdHJpbmcgT1VUW10gPSB7ICIxMjMuNDU2IiwgIi0xMjMuNDU2IiB9OworICAgICAgICBmb3IgKGludCBpPTA7IGk8MjsgKytpKSB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGYgPSBudWxsOworICAgICAgICAgICAgc3dpdGNoIChpKSB7CisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhMb2NhbGUuRU5HTElTSCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIy4jIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLkVOR0xJU0gpKTsKKyAgICAgICAgICAgICAgICBmLmFwcGx5UGF0dGVybigiIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8MjsgKytqKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCI8ZW1wdHkgcGF0ICIgKyBpICsgIj4uZm9ybWF0KCIgKyBJTltqXSArICIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1VUW2pdLCBmLmZvcm1hdChJTltqXSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIC8qKgorICAgICAqIEJpZ0RlY2ltYWwgbnVtYmVycyBnZXQgdGhlaXIgZnJhY3Rpb25zIHRydW5jYXRlZCBieSBOdW1iZXJGb3JtYXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDE3NTAoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgc3RyID0gIjEyMzQ1LjY3IjsKKyAgICAgICAgICAgIEJpZ0RlY2ltYWwgYmQgPSBuZXcgQmlnRGVjaW1hbChzdHIpOworICAgICAgICAgICAgU3RyaW5nIHNkID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUykuZm9ybWF0KGJkKTsKKyAgICAgICAgICAgIGlmICghc2QuZW5kc1dpdGgoIjY3IikpIGVycmxuKCJGYWlsOiAiICsgc3RyICsgIiB4IGZvcm1hdCAtPiAiICsgc2QpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAvL2UucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisvLyNlbmRpZgorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdCB0b1BhdHRlcm4oKSBkb2Vzbid0IHF1b3RlIHNwZWNpYWwgY2hhcmFjdGVycyBvciBoYW5kbGUKKyAgICAgKiBzaW5nbGUgcXVvdGVzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTQ1NDU3KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBuZiA9IChEZWNpbWFsRm9ybWF0KU51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmYuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgICAgIHN5bS5zZXREZWNpbWFsU2VwYXJhdG9yKCdcJycpOworICAgICAgICAgICAgbmYuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltKTsKKyAgICAgICAgICAgIGRvdWJsZSBwaSA9IDMuMTQxNTk7CisKKyAgICAgICAgICAgIFN0cmluZ1tdIFBBVFMgPSB7ICIjLjAwICdudW0nJ2JlciciLCAiJycjLjAwJyciIH07CisKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxQQVRTLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgbmYuYXBwbHlQYXR0ZXJuKFBBVFNbaV0pOworICAgICAgICAgICAgICAgIFN0cmluZyBvdXQgPSBuZi5mb3JtYXQocGkpOworICAgICAgICAgICAgICAgIFN0cmluZyBwYXQgPSBuZi50b1BhdHRlcm4oKTsKKyAgICAgICAgICAgICAgICBkb3VibGUgdmFsID0gbmYucGFyc2Uob3V0KS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbmYuYXBwbHlQYXR0ZXJuKHBhdCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIG91dDIgPSBuZi5mb3JtYXQocGkpOworICAgICAgICAgICAgICAgIFN0cmluZyBwYXQyID0gbmYudG9QYXR0ZXJuKCk7CisgICAgICAgICAgICAgICAgZG91YmxlIHZhbDIgPSBuZi5wYXJzZShvdXQyKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCFwYXQuZXF1YWxzKHBhdDIpKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbCB3aXRoIFwiIiArIFBBVFNbaV0gKyAiXCI6IFBhdHRlcm5zIHNob3VsZCBjb25jdXIsIFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdCArICJcIiB2cy4gXCIiICsgcGF0MiArICJcIiIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rIFwiIiArIFBBVFNbaV0gKyAiXCIgdG9QYXR0ZXJuKCkgLT4gXCIiICsgcGF0ICsgJyInKTsKKworICAgICAgICAgICAgICAgIGlmICh2YWwgPT0gdmFsMiAmJiBvdXQuZXF1YWxzKG91dDIpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPayAiICsgcGkgKyAiIHggXCIiICsgUEFUU1tpXSArICJcIiAtPiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQgKyAiXCIgLT4gIiArIHZhbCArICIgLT4gXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0MiArICJcIiAtPiAiICsgdmFsMik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbCAiICsgcGkgKyAiIHggXCIiICsgUEFUU1tpXSArICJcIiAtPiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQgKyAiXCIgLT4gIiArIHZhbCArICIgLT4gXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0MiArICJcIiAtPiAiICsgdmFsMik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogIiArIGUpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQuYXBwbHlQYXR0ZXJuKCkgc2V0cyBtaW5pbXVtIGludGVnZXIgZGlnaXRzIGluY29ycmVjdGx5LgorICAgICAqIENBTk5PVCBSRVBST0RVQ0UKKyAgICAgKiBUaGlzIGJ1ZyBpcyBhIGR1cGxpY2F0ZSBvZiA0MTM5MzQ0LCB3aGljaCBpcyBhIGR1cGxpY2F0ZSBvZiA0MTM0MzAwCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNDcyOTUoKSB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgc2RmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAiIywjIyMiOworICAgICAgICBsb2dsbigiQXBwbHlpbmcgcGF0dGVybiBcIiIgKyBwYXR0ZXJuICsgIlwiIik7CisgICAgICAgIHNkZi5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIGludCBtaW5JbnREaWcgPSBzZGYuZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKTsKKyAgICAgICAgaWYgKG1pbkludERpZyAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmYWlsZWQiKTsKKyAgICAgICAgICAgIGVycmxuKCIgTWluaW11bSBpbnRlZ2VyIGRpZ2l0cyA6ICIgKyBtaW5JbnREaWcpOworICAgICAgICAgICAgZXJybG4oIiBuZXcgcGF0dGVybjogIiArIHNkZi50b1BhdHRlcm4oKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiVGVzdCBwYXNzZWQiKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgTWluaW11bSBpbnRlZ2VyIGRpZ2l0cyA6ICIgKyBtaW5JbnREaWcpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdCBmb3JtYXRzIC0wLjAgYXMgKzAuMAorICAgICAqIFNlZSBhbHNvIG9sZGVyIHJlbGF0ZWQgYnVnIDQxMDY2NTgsIDQxMDY2NjcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE0NzcwNigpIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBkZiA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjLCMjMC4wIyMiKTsKKyAgICAgICAgZGYuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMobmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5FTkdMSVNIKSk7CisgICAgICAgIGRvdWJsZSBkMSA9IC0wLjA7CisgICAgICAgIGRvdWJsZSBkMiA9IC0wLjAwMDE7CisgICAgICAgIFN0cmluZ0J1ZmZlciBmMSA9IGRmLmZvcm1hdChkMSwgbmV3IFN0cmluZ0J1ZmZlcigpLCBuZXcgRmllbGRQb3NpdGlvbigwKSk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBmMiA9IGRmLmZvcm1hdChkMiwgbmV3IFN0cmluZ0J1ZmZlcigpLCBuZXcgRmllbGRQb3NpdGlvbigwKSk7CisgICAgICAgIGlmICghZjEudG9TdHJpbmcoKS5lcXVhbHMoIi0wLjAiKSkgeworICAgICAgICAgICAgZXJybG4oZDEgKyAiIHggXCIiICsgZGYudG9QYXR0ZXJuKCkgKyAiXCIgaXMgZm9ybWF0dGVkIGFzIFwiIiArIGYxICsgJyInKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWYyLnRvU3RyaW5nKCkuZXF1YWxzKCItMC4wIikpIHsKKyAgICAgICAgICAgIGVycmxuKGQyICsgIiB4IFwiIiArIGRmLnRvUGF0dGVybigpICsgIlwiIGlzIGZvcm1hdHRlZCBhcyBcIiIgKyBmMiArICciJyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXJGb3JtYXQgY2Fubm90IGZvcm1hdCBEb3VibGUuTUFYX1ZBTFVFCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNjIxOTgoKSB7CisgICAgICAgIGRvdWJsZSBkYmwgPSBEb3VibGUuTUFYX1ZBTFVFOworICAgICAgICBOdW1iZXJGb3JtYXQgZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBmLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhJbnRlZ2VyLk1BWF9WQUxVRSk7CisgICAgICAgIGYuc2V0TWF4aW11bUludGVnZXJEaWdpdHMoSW50ZWdlci5NQVhfVkFMVUUpOworICAgICAgICBTdHJpbmcgcyA9IGYuZm9ybWF0KGRibCk7CisgICAgICAgIGxvZ2xuKCJUaGUgbnVtYmVyICIgKyBkYmwgKyAiIGZvcm1hdHRlZCB0byAiICsgcyk7CisgICAgICAgIE51bWJlciBuID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG4gPSBmLnBhcnNlKHMpOworICAgICAgICB9IGNhdGNoIChqYXZhLnRleHQuUGFyc2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkNhdWdodCBhIFBhcnNlRXhjZXB0aW9uOiIpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiVGhlIHN0cmluZyAiICsgcyArICIgcGFyc2VkIGFzICIgKyBuKTsKKyAgICAgICAgaWYgKG4uZG91YmxlVmFsdWUoKSAhPSBkYmwpIHsKKyAgICAgICAgICAgIGVycmxuKCJSb3VuZCB0cmlwIGZhaWx1cmUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE51bWJlckZvcm1hdCBkb2VzIG5vdCBwYXJzZSBuZWdhdGl2ZSB6ZXJvLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTYyODUyKCkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPDI7ICsraSkgeworICAgICAgICAgICAgTnVtYmVyRm9ybWF0IGYgPSAoaSA9PSAwKSA/IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpCisgICAgICAgICAgICAgICAgOiBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCk7CisgICAgICAgICAgICBkb3VibGUgZCA9IC0wLjA7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGYuZm9ybWF0KGQpOworICAgICAgICAgICAgZG91YmxlIGUgPSBmLnBhcnNlKHMpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgICAgICBsb2dsbigiIiArCisgICAgICAgICAgICAgICAgICBkICsgIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICciJyArIHMgKyAnIicgKyAiIC0+ICIgKworICAgICAgICAgICAgICBlKTsKKyAgICAgICAgICAgIGlmIChlICE9IDAuMCB8fCAxLjAvZSA+IDAuMCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJGYWlsZWQgdG8gcGFyc2UgbmVnYXRpdmUgemVybyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTnVtYmVyRm9ybWF0IHRydW5jYXRlcyBkYXRhCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNjc0OTQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIGEgPSBEb3VibGUuTUFYX1ZBTFVFOworICAgICAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQoYSk7CisgICAgICAgIGRvdWJsZSBiID0gZm10LnBhcnNlKHMpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgIGJvb2xlYW4gbWF0Y2ggPSBhID09IGI7CisgICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAgbG9nbG4oIiIgKyBhICsgIiAtPiBcIiIgKyBzICsgIlwiIC0+ICIgKyBiICsgIiBvayIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIiIgKyBhICsgIiAtPiBcIiIgKyBzICsgIlwiIC0+ICIgKyBiICsgIiBGQUlMIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBXZSBkb24ndCB0ZXN0IERvdWJsZS5NSU5fVkFMVUUgYmVjYXVzZSB0aGUgbG9jYWxlIGRhdGEgZm9yIHRoZSBVUworICAgICAgICAvLyBjdXJyZW50bHkgZG9lc24ndCBzcGVjaWZ5IGVub3VnaCBkaWdpdHMgdG8gZGlzcGxheSBEb3VibGUuTUlOX1ZBTFVFLgorICAgICAgICAvLyBUaGlzIGlzIGNvcnJlY3QgZm9yIG5vdzsgaG93ZXZlciwgd2UgbGVhdmUgdGhpcyBoZXJlIGFzIGEgcmVtaW5kZXIKKyAgICAgICAgLy8gaW4gY2FzZSB3ZSB3YW50IHRvIGFkZHJlc3MgdGhpcyBsYXRlci4KKyAgICAgICAgaWYgKGZhbHNlKSB7CisgICAgICAgICAgICBhID0gRG91YmxlLk1JTl9WQUxVRTsKKyAgICAgICAgICAgIHMgPSBmbXQuZm9ybWF0KGEpOworICAgICAgICAgICAgYiA9IGZtdC5wYXJzZShzKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgbWF0Y2ggPSBhID09IGI7CisgICAgICAgICAgICBpZiAobWF0Y2gpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiIiArIGEgKyAiIC0+IFwiIiArIHMgKyAiXCIgLT4gIiArIGIgKyAiIG9rIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCIiICsgYSArICIgLT4gXCIiICsgcyArICJcIiAtPiAiICsgYiArICIgRkFJTCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5wYXJzZSgpIGZhaWxzIHdoZW4gUGFyc2VJbnRlZ2VyT25seSBzZXQgdG8gdHJ1ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTcwNzk4KCkgeworICAgICAgICBMb2NhbGUgc2F2ZWRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuVVMpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoKTsKKyAgICAgICAgZGYuc2V0UGFyc2VJbnRlZ2VyT25seSh0cnVlKTsKKyAgICAgICAgTnVtYmVyIG4gPSBkZi5wYXJzZSgiLTAuMCIsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAgICAgICAgaWYgKCEobiBpbnN0YW5jZW9mIERvdWJsZSkKKyAgICAgICAgICAgIHx8IG4uaW50VmFsdWUoKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogcGFyc2UoXCItMC4wXCIpIHJldHVybnMgIiArCisgICAgICAgICAgICAgICAgICBuICsgIiAoIiArIG4uZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAnKScpOworICAgICAgICB9CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KHNhdmVkTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiB0b1BhdHRlcm4gb25seSBwdXRzIHRoZSBmaXJzdCBncm91cGluZyBzZXBhcmF0b3IgaW4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzYxMTQoKSB7CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAiMDAiLCAiIzAwIiwKKyAgICAgICAgICAgICIwMDAiLCAiIzAwMCIsIC8vIE5vIGdyb3VwaW5nCisgICAgICAgICAgICAiIzAwMCIsICIjMDAwIiwgLy8gTm8gZ3JvdXBpbmcKKyAgICAgICAgICAgICIjLCMjMCIsICIjLCMjMCIsCisgICAgICAgICAgICAiIywwMDAiLCAiIywwMDAiLAorICAgICAgICAgICAgIjAsMDAwIiwgIiMwLDAwMCIsCisgICAgICAgICAgICAiMDAsMDAwIiwgIiMwMCwwMDAiLAorICAgICAgICAgICAgIjAwMCwwMDAiLCAiIywwMDAsMDAwIiwKKyAgICAgICAgICAgICIwLDAwMCwwMDAsMDAwLDAwMC4wMDAwIiwgIiMwLDAwMCwwMDAsMDAwLDAwMC4wMDAwIiwgLy8gUmVwb3J0ZWQKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbmV3IERlY2ltYWxGb3JtYXQoREFUQVtpXSk7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGRmLnRvUGF0dGVybigpOworICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhEQVRBW2krMV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBEQVRBW2ldICsgIiAtPiAiICsgcyArICIsIHdhbnQgIiArIERBVEFbaSsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNpbWFsRm9ybWF0IGlzIGluY29ycmVjdGx5IHJvdW5kaW5nIG51bWJlcnMgbGlrZSAxLjI1MDEgdG8gMS4yCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNzk4MTgoKSB7CisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAvLyBJbnB1dCAgUGF0dGVybiAgRXhwZWN0ZWQgb3V0cHV0CisgICAgICAgICAgICAiMS4yNTExIiwgIiMuIyIsICAgIjEuMyIsCisgICAgICAgICAgICAiMS4yNTAxIiwgIiMuIyIsICAgIjEuMyIsCisgICAgICAgICAgICAiMC45OTk5IiwgIiMiLCAgICAgIjEiLAorICAgICAgICB9OworICAgICAgICBEZWNpbWFsRm9ybWF0IGZtdCA9IG5ldyBEZWNpbWFsRm9ybWF0KCIjIiwKKyAgICAgICAgICAgICAgICBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgZG91YmxlIGluID0gRG91YmxlLnZhbHVlT2YoREFUQVtpXSkuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgIFN0cmluZyBwYXQgPSBEQVRBW2krMV07CisgICAgICAgICAgICBTdHJpbmcgZXhwID0gREFUQVtpKzJdOworICAgICAgICAgICAgZm10LmFwcGx5UGF0dGVybihwYXQpOworICAgICAgICAgICAgU3RyaW5nIG91dCA9IGZtdC5mb3JtYXQoaW4pOworICAgICAgICAgICAgaWYgKG91dC5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGluICsgIiB4ICIgKyBwYXQgKyAiID0gIiArIG91dCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgaW4gKyAiIHggICIgKyBwYXQgKyAiID0gIiArIG91dCArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIGV4cCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE4NTc2MSgpIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisgICAgICAgIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBiYW9zID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOworICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb29zID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShiYW9zKTsKKyAgICAgICAgCisgICAgICAgIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworCisgICAgLy8gU2V0IHNwZWNpYWwgdmFsdWVzIHdlIGFyZSBnb2luZyB0byBzZWFyY2ggZm9yIGluIHRoZSBvdXRwdXQgYnl0ZSBzdHJlYW0KKyAgICAvLyBUaGVzZSBhcmUgYWxsIGxlZ2FsIHZhbHVlcy4KKyAgICAgICAgbmYuc2V0TWluaW11bUludGVnZXJEaWdpdHMoMHgxMTEpOyAvLyBLZWVwIHVuZGVyIDMwOQorICAgICAgICBuZi5zZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygweDExMik7IC8vIEtlZXAgdW5kZXIgMzA5CisgICAgICAgIG5mLnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygweDExMyk7IC8vIEtlZXAgdW5kZXIgMzQwCisgICAgICAgIG5mLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cygweDExNCk7IC8vIEtlZXAgdW5kZXIgMzQwCisgICAgICAgIAorICAgICAgICBvb3Mud3JpdGVPYmplY3QobmYpOworICAgICAgICBvb3MuZmx1c2goKTsKKyAgICAgICAgYmFvcy5jbG9zZSgpOworICAgICAgICAKKyAgICAgICAgYnl0ZVtdIGJ5dGVzID0gYmFvcy50b0J5dGVBcnJheSgpOworCisgICAgLy8gU2NhbiBmb3IgbG9jYXRpb25zIG9mIG1pbi9tYXggaW50L2ZyYWN0IHZhbHVlcyBpbiB0aGUgYnl0ZSBhcnJheS4KKyAgICAvLyBBdCB0aGUgbW9tZW50IChJQ1U0SiAyLjEpLCB0aGVyZSBpcyBvbmx5IG9uZSBpbnN0YW5jZSBvZiBlYWNoIHRhcmdldCBwYWlyCisgICAgLy8gaW4gdGhlIGJ5dGUgc3RyZWFtLCBzbyBhc3N1bWUgZmlyc3QgbWF0Y2ggaXMgaXQuICBOb3RlIHRoaXMgaXMgbm90IGVudGlyZWx5CisgICAgLy8gZmFpbHNhZmUsIGFuZCBuZWVkcyB0byBiZSBjaGVja2VkIGlmIHdlIGNoYW5nZSB0aGUgcGFja2FnZSBvciBzdHJ1Y3R1cmUgb2YKKyAgICAvLyB0aGlzIGNsYXNzLgorICAgIC8vIEN1cnJlbnQgcG9zaXRpb25zIGFyZSA4OTAsIDg4MCwgODg2LCA4NzYKKyAgICAgICAgaW50W10gb2Zmc2V0cyA9IG5ldyBpbnRbNF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoIC0gMTsgKytpKSB7CisgICAgICAgICAgICBpZiAoYnl0ZXNbaV0gPT0gMHgwMSkgeyAvLyBoaWdoIGJ5dGUKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG9mZnNldHMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChvZmZzZXRzW2pdID09IDApICYmIChieXRlc1tpKzFdID09ICgweDExICsgaikpKSB7IC8vIGxvdyBieXRlCisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzW2pdID0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2lzID0gbmV3IE9iamVjdElucHV0U3RyZWFtKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlcykpOworICAgICAgICAgICAgT2JqZWN0IG8gPSBvaXMucmVhZE9iamVjdCgpOworICAgICAgICAgICAgb2lzLmNsb3NlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghbmYuZXF1YWxzKG8pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IERhdGVGb3JtYXQgc2VyaWFsaXphdGlvbi9lcXVhbGl0eSBidWciKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIkRhdGVGb3JtYXQgc2VyaWFsaXphdGlvbi9lcXVhbGl0eSBpcyBPS0FZLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAvLyBDaGFuZ2UgdGhlIHZhbHVlcyBpbiB0aGUgYnl0ZSBzdHJlYW0gc28gdGhhdCBtaW4gPiBtYXguCisgICAgLy8gTnVtYmVyZm9ybWF0IHNob3VsZCBjYXRjaCB0aGlzIGFuZCB0aHJvdyBhbiBleGNlcHRpb24uCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb2Zmc2V0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgYnl0ZXNbb2Zmc2V0c1tpXV0gPSAoYnl0ZSkoNCAtIGkpOworICAgICAgICB9CisKKyAgICAgICAgeworICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2lzID0gbmV3IE9iamVjdElucHV0U3RyZWFtKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlcykpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQgZm9ybWF0ID0gKE51bWJlckZvcm1hdCkgb2lzLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiZm9ybWF0OiAiICsgZm9ybWF0LmZvcm1hdCgxMjM0LjU2KSk7IC8vZml4ICJUaGUgdmFyaWFibGUgaXMgbmV2ZXIgdXNlZCIKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRGVzZXJpYWxpemVkIGJvZ3VzIE51bWJlckZvcm1hdCB3aXRoIG1pblhEaWdpdHMgPiBtYXhYRGlnaXRzIik7CisgICAgICAgICAgICB9IGNhdGNoIChJbnZhbGlkT2JqZWN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIC8vIFNldCB2YWx1ZXMgc28gdGhleSBhcmUgdG9vIGhpZ2gsIGJ1dCBtaW4gPD0gbWF4CisgICAgLy8gRm9ybWF0IHNob3VsZCBwYXNzIHRoZSBtaW4gPD0gbWF4IHRlc3QsIGFuZCBEZWNpbWFsRm9ybWF0IHNob3VsZCByZXNldCB0byBjdXJyZW50IG1heGltdW0KKyAgICAvLyAoZm9yIGNvbXBhdGliaWxpdHkgd2l0aCB2ZXJzaW9ucyBzdHJlYW1lZCBvdXQgYmVmb3JlIHRoZSBtYXhpbXVtcyB3ZXJlIGltcG9zZWQpLgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG9mZnNldHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGJ5dGVzW29mZnNldHNbaV1dID0gNDsKKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9pcyA9IG5ldyBPYmplY3RJbnB1dFN0cmVhbShuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZXMpKTsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXQgPSAoTnVtYmVyRm9ybWF0KSBvaXMucmVhZE9iamVjdCgpOworICAgICAgICAgICAgLy9Gb3IgY29tcGF0aWJpbGl0eSB3aXRoIHByZXZpb3VzIHZlcnNpb24KKyAgICAgICAgICAgIGlmICgoZm9ybWF0LmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgIT0gMzA5KSAKKyAgICAgICAgICAgICAgICB8fCBmb3JtYXQuZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgIT0gMzQwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IERlc2VyaWFsaXplZCBib2d1cyBOdW1iZXJGb3JtYXQgd2l0aCB2YWx1ZXMgb3V0IG9mIHJhbmdlLCIgKworICAgICAgICAgICAgICAgICAgICAgICIgaW50TWluOiAiICsgZm9ybWF0LmdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgKworICAgICAgICAgICAgICAgICAgICAgICIgaW50TWF4OiAiICsgZm9ybWF0LmdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgKworICAgICAgICAgICAgICAgICAgICAgICIgZnJhY01pbjogIiArIGZvcm1hdC5nZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSArCisgICAgICAgICAgICAgICAgICAgICAgIiBmcmFjTWF4OiAiICsgZm9ybWF0LmdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiBEaWdpdCBjb3VudCBvdXQgb2YgcmFuZ2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogU29tZSBEZWNpbWFsRm9ybWF0U3ltYm9scyBjaGFuZ2VzIGFyZSBub3QgcGlja2VkIHVwIGJ5IERlY2ltYWxGb3JtYXQuCisgICAgICogVGhpcyBpbmNsdWRlcyB0aGUgbWludXMgc2lnbiwgY3VycmVuY3kgc3ltYm9sLCBpbnRlcm5hdGlvbmFsIGN1cnJlbmN5CisgICAgICogc3ltYm9sLCBwZXJjZW50LCBhbmQgcGVybWlsbGUuICBUaGlzIGlzIGZpbGVkIGFzIGJ1Z3MgNDIxMjA3MiBhbmQKKyAgICAgKiA0MjEyMDczLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjEyMDcyKCkgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKyAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKExvY2FsZS5VUyk7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIiMiLCBzeW0pOworCisgICAgICAgIHN5bS5zZXRNaW51c1NpZ24oJ14nKTsKKyAgICAgICAgZm10LnNldERlY2ltYWxGb3JtYXRTeW1ib2xzKHN5bSk7CisgICAgICAgIGlmICghZm10LmZvcm1hdCgtMSkuZXF1YWxzKCJeMSIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogLTEgeCAobWludXM9XikgLT4gIiArIGZtdC5mb3JtYXQoLTEpICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cCBeMSIpOworICAgICAgICB9CisgICAgICAgIGlmICghZm10LmdldE5lZ2F0aXZlUHJlZml4KCkuZXF1YWxzKCJeIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAobWludXM9XikuZ2V0TmVnYXRpdmVQcmVmaXggLT4gIiArCisgICAgICAgICAgICAgICAgICBmbXQuZ2V0TmVnYXRpdmVQcmVmaXgoKSArICIsIGV4cCBeIik7CisgICAgICAgIH0KKyAgICAgICAgc3ltLnNldE1pbnVzU2lnbignLScpOworCisgICAgICAgIGZtdC5hcHBseVBhdHRlcm4oIiMlIik7CisgICAgICAgIHN5bS5zZXRQZXJjZW50KCdeJyk7CisgICAgICAgIGZtdC5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW0pOworICAgICAgICBpZiAoIWZtdC5mb3JtYXQoMC4yNSkuZXF1YWxzKCIyNV4iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IDAuMjUgeCAocGVyY2VudD1eKSAtPiAiICsgZm10LmZvcm1hdCgwLjI1KSArCisgICAgICAgICAgICAgICAgICAiLCBleHAgMjVeIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmbXQuZ2V0UG9zaXRpdmVTdWZmaXgoKS5lcXVhbHMoIl4iKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IChwZXJjZW50PV4pLmdldFBvc2l0aXZlU3VmZml4IC0+ICIgKworICAgICAgICAgICAgICAgICAgZm10LmdldFBvc2l0aXZlU3VmZml4KCkgKyAiLCBleHAgXiIpOworICAgICAgICB9CisgICAgICAgIHN5bS5zZXRQZXJjZW50KCclJyk7CisgICAgICAgIAorICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKCIjXHUyMDMwIik7CisgICAgICAgIHN5bS5zZXRQZXJNaWxsKCdeJyk7CisgICAgICAgIGZtdC5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhzeW0pOworICAgICAgICBpZiAoIWZtdC5mb3JtYXQoMC4yNSkuZXF1YWxzKCIyNTBeIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAwLjI1IHggKHBlcm1pbGw9XikgLT4gIiArIGZtdC5mb3JtYXQoMC4yNSkgKworICAgICAgICAgICAgICAgICAgIiwgZXhwIDI1MF4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZtdC5nZXRQb3NpdGl2ZVN1ZmZpeCgpLmVxdWFscygiXiIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogKHBlcm1pbGw9XikuZ2V0UG9zaXRpdmVTdWZmaXggLT4gIiArCisgICAgICAgICAgICAgICAgICBmbXQuZ2V0UG9zaXRpdmVTdWZmaXgoKSArICIsIGV4cCBeIik7CisgICAgICAgIH0KKyAgICAgICAgc3ltLnNldFBlck1pbGwoJ1x1MjAzMCcpOworCisgICAgICAgIGZtdC5hcHBseVBhdHRlcm4oIlx1MDBBNCMuMDAiKTsKKyAgICAgICAgc3ltLnNldEN1cnJlbmN5U3ltYm9sKCJ1c2QiKTsKKyAgICAgICAgZm10LnNldERlY2ltYWxGb3JtYXRTeW1ib2xzKHN5bSk7CisgICAgICAgIGlmICghZm10LmZvcm1hdCgxMi41KS5lcXVhbHMoInVzZDEyLjUwIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAxMi41IHggKGN1cnJlbmN5PXVzZCkgLT4gIiArIGZtdC5mb3JtYXQoMTIuNSkgKworICAgICAgICAgICAgICAgICAgIiwgZXhwIHVzZDEyLjUwIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmbXQuZ2V0UG9zaXRpdmVQcmVmaXgoKS5lcXVhbHMoInVzZCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogKGN1cnJlbmN5PXVzZCkuZ2V0UG9zaXRpdmVQcmVmaXggLT4gIiArCisgICAgICAgICAgICAgICAgICBmbXQuZ2V0UG9zaXRpdmVQcmVmaXgoKSArICIsIGV4cCB1c2QiKTsKKyAgICAgICAgfQorICAgICAgICBzeW0uc2V0Q3VycmVuY3lTeW1ib2woIiQiKTsKKworICAgICAgICBmbXQuYXBwbHlQYXR0ZXJuKCJcdTAwQTRcdTAwQTQjLjAwIik7CisgICAgICAgIHN5bS5zZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woIkRPTCIpOworICAgICAgICBmbXQuc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoc3ltKTsKKyAgICAgICAgaWYgKCFmbXQuZm9ybWF0KDEyLjUpLmVxdWFscygiRE9MMTIuNTAiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IDEyLjUgeCAoaW50bGN1cnJlbmN5PURPTCkgLT4gIiArIGZtdC5mb3JtYXQoMTIuNSkgKworICAgICAgICAgICAgICAgICAgIiwgZXhwIERPTDEyLjUwIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmbXQuZ2V0UG9zaXRpdmVQcmVmaXgoKS5lcXVhbHMoIkRPTCIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogKGludGxjdXJyZW5jeT1ET0wpLmdldFBvc2l0aXZlUHJlZml4IC0+ICIgKworICAgICAgICAgICAgICAgICAgZm10LmdldFBvc2l0aXZlUHJlZml4KCkgKyAiLCBleHAgRE9MIik7CisgICAgICAgIH0KKyAgICAgICAgc3ltLnNldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgiVVNEIik7CisKKyAgICAgICAgaWYgKFZlcnNpb25JbmZvLklDVV9WRVJTSU9OID09IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKDIsMikpIHsKKyAgICAgICAgICAgIC8vIGJ1ZyBpbiAyLjIgdGhhdCBmYWlscyB0aGlzIHRlc3QKKyAgICAgICAgICAgIC8vIHRvIGJlIGZpeGVkIGluIHRoZSBsYXRlciB2ZXJzaW9ucworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbiAgICAgICAgVGVzdCBza2lwcGVkIGZvciByZWxlYXNlIDIuMiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBTaW5jZSB0aGUgcGF0dGVybiBsb2dpYyBoYXMgY2hhbmdlZCwgbWFrZSBzdXJlIHRoYXQgcGF0dGVybnMgcm91bmQKKyAgICAgICAgLy8gdHJpcCBwcm9wZXJseS4gIFRlc3Qgc3RyZWFtIGluL291dCBpbnRlZ3JpdHkgdG9vLgorICAgICAgICBMb2NhbGVbXSBhdmFpbCA9IE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxhdmFpbC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPDM7ICsraikgeworICAgICAgICAgICAgICAgIE51bWJlckZvcm1hdCBuZjsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGopIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgIG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGF2YWlsW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICBuZiA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGF2YWlsW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKGF2YWlsW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZGYgPSAoRGVjaW1hbEZvcm1hdCkgbmY7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gVGVzdCB0b1BhdHRlcm4vYXBwbHlQYXR0ZXJuIHJvdW5kIHRyaXAKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0ID0gZGYudG9QYXR0ZXJuKCk7CisgICAgICAgICAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltYiA9IG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhhdmFpbFtpXSk7CisgICAgICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmMiA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdCwgc3ltYik7CisgICAgICAgICAgICAgICAgaWYgKCFkZi5lcXVhbHMoZjIpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgYXZhaWxbaV0gKyAiICMiICsgaiArICIgLT4gXCIiICsgcGF0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiIC0+IFwiIiArIGYyLnRvUGF0dGVybigpICsgJyInKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBUZXN0IHRvTG9jYWxpemVkUGF0dGVybi9hcHBseUxvY2FsaXplZFBhdHRlcm4gcm91bmQgdHJpcAorICAgICAgICAgICAgICAgIHBhdCA9IGRmLnRvTG9jYWxpemVkUGF0dGVybigpOworICAgICAgICAgICAgICAgIGYyLmFwcGx5TG9jYWxpemVkUGF0dGVybihwYXQpOworICAgICAgICAgICAgICAgIGlmICghZGYuZXF1YWxzKGYyKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGF2YWlsW2ldICsgIiAjIiArIGogKyAiIC0+IGxvY2FsaXplZCBcIiIgKyBwYXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXCIgLT4gXCIiICsgZjIudG9Mb2NhbGl6ZWRQYXR0ZXJuKCkgKyAnIicpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFRlc3Qgd3JpdGVPYmplY3QvcmVhZE9iamVjdCByb3VuZCB0cmlwCisgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhb3MgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9vcyA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYmFvcyk7CisgICAgICAgICAgICAgICAgb29zLndyaXRlT2JqZWN0KGRmKTsKKyAgICAgICAgICAgICAgICBvb3MuZmx1c2goKTsKKyAgICAgICAgICAgICAgICBiYW9zLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzID0gYmFvcy50b0J5dGVBcnJheSgpOworICAgICAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9pcyA9CisgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RJbnB1dFN0cmVhbShuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZXMpKTsKKyAgICAgICAgICAgICAgICBmMiA9IChEZWNpbWFsRm9ybWF0KSBvaXMucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgIGlmICghZGYuZXF1YWxzKGYyKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogU3RyZWFtIGluL291dCAiICsgYXZhaWxbaV0gKyAiIC0+IFwiIiArIHBhdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGYyICE9IG51bGwgPyAoIlwiIitmMi50b1BhdHRlcm4oKSsnIicpIDogIm51bGwiKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBAc2luY2UgSUNVIDIuNAorICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBhbGwgc3BlY2lhbCBjaGFyYWN0ZXJzLCB3aGVuIHF1b3RlZCBpbiBhIHN1ZmZpeCBvcgorICAgICAgICAvLyBwcmVmaXgsIGxvc2UgdGhlaXIgc3BlY2lhbCBtZWFuaW5nLgorICAgICAgICBjaGFyW10gU1BFQ0lBTFMgPSB7ICcwJywgJywnLCAnLicsICdcdTIwMzAnLCAnJScsICcjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnOycsICdFJywgJyonLCAnKycsICctJyB9OworICAgICAgICBzeW0gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKTsKKyAgICAgICAgZm9yIChpbnQgaj0wOyBqPFNQRUNJQUxTLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBjaGFyIHNwZWNpYWwgPSBTUEVDSUFMU1tqXTsKKyAgICAgICAgICAgIFN0cmluZyBwYXQgPSAiJyIgKyBzcGVjaWFsICsgIicjMCciICsgc3BlY2lhbCArICInIjsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0LCBzeW0pOworICAgICAgICAgICAgICAgIFN0cmluZyBwYXQyID0gZm10LnRvUGF0dGVybigpOworICAgICAgICAgICAgICAgIGlmICghcGF0LmVxdWFscyhwYXQyKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogUGF0dGVybiBcIiIgKyBwYXQgKyAiXCIgPT4gdG9QYXR0ZXJuKCkgPT4gXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0MiArICJcIiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQoMTIzKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwID0gIiIgKyBzcGVjaWFsICsgIjEyMyIgKyBzcGVjaWFsOworICAgICAgICAgICAgICAgIGlmICghcy5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogMTIzIHggXCIiICsgcGF0ICsgIlwiID0+IFwiIiArIHMgKyAiXCIsIGV4cCBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBleHAgKyAiXCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBQYXR0ZXJuIFwiIiArIHBhdCArICJcIiA9PiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjaW1hbEZvcm1hdC5wYXJzZSgpIGZhaWxzIGZvciBtdWxpcGxpZXJzIDJebi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDIxNjc0MigpIHRocm93cyBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gKERlY2ltYWxGb3JtYXQpIE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBsb25nW10gREFUQSA9IHsgTG9uZy5NSU5fVkFMVUUsIExvbmcuTUFYX1ZBTFVFLCAtMTAwMDAwMDAwTCwgMTAwMDAwMDAwTH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgc3RyID0gTG9uZy50b1N0cmluZyhEQVRBW2ldKTsKKyAgICAgICAgICAgIGZvciAoaW50IG0gPSAxOyBtIDw9IDEwMDsgbSsrKSB7CisgICAgICAgICAgICAgICAgZm10LnNldE11bHRpcGxpZXIobSk7CisgICAgICAgICAgICAgICAgbG9uZyBuID0gKChOdW1iZXIpIGZtdC5wYXJzZShzdHIpKS5sb25nVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBpZiAobiA+IDAgIT0gREFUQVtpXSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlwiIiArIHN0ciArICJcIiBwYXJzZSh4ICIgKyBmbXQuZ2V0TXVsdGlwbGllcigpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIikgPT4gIiArIG4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERlY2ltYWxGb3JtYXQgZm9ybWF0cyAxLjAwMSB0byAiMS4wMCIgaW5zdGVhZCBvZiAiMSIgd2l0aCAyIGZyYWN0aW9uCisgICAgICogZGlnaXRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjE3NjYxKCkgeworICAgICAgICBPYmplY3RbXSBEQVRBID0geworICAgICAgICAgICAgbmV3IERvdWJsZSgwLjAwMSksICIwIiwKKyAgICAgICAgICAgIG5ldyBEb3VibGUoMS4wMDEpLCAiMSIsCisgICAgICAgICAgICBuZXcgRG91YmxlKDAuMDA2KSwgIjAuMDEiLAorICAgICAgICAgICAgbmV3IERvdWJsZSgxLjAwNiksICIxLjAxIiwKKyAgICAgICAgfTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IGZtdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBmbXQuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDIpOyAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQoKChEb3VibGUpIERBVEFbaV0pLmRvdWJsZVZhbHVlKCkpOworICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhEQVRBW2krMV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEdvdCAiICsgcyArICIsIGV4cCAiICsgREFUQVtpKzFdKTsgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogNDI0MzAxMTogRm9ybWF0dGluZyAuNSByb3VuZHMgdG8gIjEiIGluc3RlYWQgb2YgIjAiCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQyNDMwMTEoKSB7CisgICAgICAgIGRvdWJsZSBEQVRBW10gPSB7MC41LCAxLjUsIDIuNSwgMy41LCA0LjV9OworICAgICAgICBTdHJpbmcgRVhQRUNURURbXSA9IHsiMC4iLCAiMi4iLCAiMi4iLCAiNC4iLCAiNC4ifTsKKyAgICAgICAgCisgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQoIjAuIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgREFUQS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGZvcm1hdC5mb3JtYXQoREFUQVtpXSk7CisgICAgICAgICAgICBpZiAocmVzdWx0LmVxdWFscyhFWFBFQ1RFRFtpXSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6IGdvdCAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdvdCAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA0MjQzMTA4OiBmb3JtYXQoMC4wKSBnaXZlcyAiMC4xIiBpZiBwcmVjZWRlZCBieSBwYXJzZSgiOTkuOTkiKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MjQzMTA4KCkgeworICAgICAgICBEZWNpbWFsRm9ybWF0IGYgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIy4jIik7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBmLmZvcm1hdCgwLjApOworICAgICAgICBpZiAocmVzdWx0LmVxdWFscygiMCIpKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IGdvdCAiICsgcmVzdWx0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnb3QgIiArIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRvdWJsZSBkUmVzdWx0ID0gZi5wYXJzZSgiOTkuOTkiKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgaWYgKGRSZXN1bHQgPT0gOTkuOTkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6IGdvdCAiICsgZFJlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnb3QgIiArIGRSZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiQ2F1Z2h0IGEgUGFyc2VFeGNlcHRpb246Iik7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIHJlc3VsdCA9IGYuZm9ybWF0KDAuMCk7CisgICAgICAgIGlmIChyZXN1bHQuZXF1YWxzKCIwIikpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogZ290ICIgKyByZXN1bHQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdvdCAiICsgcmVzdWx0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA0MzMwMzc3OiBEZWNpbWFsRm9ybWF0IGVuZ2luZWVyaW5nIG5vdGF0aW9uIGdpdmVzIGluY29ycmVjdCByZXN1bHRzCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdDQzMzAzNzcoKSB7CisgICAgICAgIC8qCisgICAgICAgIGRvdWJsZVtdIGlucHV0ID0gezUwMDAuMCwgNTAwLjAsIDUwLjAsIDUuMCwgMC41LCAwLjA1LCAwLjAwNSwgMC4wMDA1LAorICAgICAgICAgICAgICAgNTA1MC4wLCA1MDUuMCwgNTAuNSwgNS4wNSwgMC41MDUsIDAuMDUwNSwgMC4wMDUwNSwgMC4wMDA1MDV9OworICAgICAgICBTdHJpbmdbXSBwYXR0ZXJuID0geyIwMDAuI0UwIiwgIiMjMC4jRTAiLCAiIzAwLiNFMCJ9OworICAgICAgICBTdHJpbmdbXVtdIGV4cGVjdGVkID0geworICAgICAgICAgICAgLy8gaXQncyBxdWVzdGlvbmFibGUgd2hldGhlciAiIzAwLiNFMCIgc2hvdWxkIHJlc3VsdCBpbiBwb3N0LWRlY2ltYWwKKyAgICAgICAgICAgIC8vIHplcm9lcywgaS5lLiwgd2hldGhlciAiNS4wRTMiLCAiNS4wRTAiLCAiNS4wRS0zIiBhcmUgcmVhbGx5IGdvb2QKKyAgICAgICAgICAgIHsiNTAwRTEiLCAiNUUzIiwgIjUuMEUzIn0sCisgICAgICAgICAgICB7IjUwMEUwIiwgIjUwMEUwIiwgIjUwMEUwIn0sCisgICAgICAgICAgICB7IjUwMEUtMSIsICI1MEUwIiwgIjUwRTAifSwKKyAgICAgICAgICAgIHsiNTAwRS0yIiwgIjVFMCIsICI1LjBFMCJ9LAorICAgICAgICAgICAgeyI1MDBFLTMiLCAiNTAwRS0zIiwgIjUwMEUtMyJ9LAorICAgICAgICAgICAgeyI1MDBFLTQiLCAiNTBFLTMiLCAiNTBFLTMifSwKKyAgICAgICAgICAgIHsiNTAwRS01IiwgIjVFLTMiLCAiNS4wRS0zIn0sCisgICAgICAgICAgICB7IjUwMEUtNiIsICI1MDBFLTYiLCAiNTAwRS02In0sCisgICAgICAgICAgICB7IjUwNUUxIiwgIjUuMDVFMyIsICI1LjA1RTMifSwKKyAgICAgICAgICAgIHsiNTA1RTAiLCAiNTA1RTAiLCAiNTA1RTAifSwKKyAgICAgICAgICAgIHsiNTA1RS0xIiwgIjUwLjVFMCIsICI1MC41RTAifSwKKyAgICAgICAgICAgIHsiNTA1RS0yIiwgIjUuMDVFMCIsICI1LjA1RTAifSwKKyAgICAgICAgICAgIHsiNTA1RS0zIiwgIjUwNUUtMyIsICI1MDVFLTMifSwKKyAgICAgICAgICAgIHsiNTA1RS00IiwgIjUwLjVFLTMiLCAiNTAuNUUtMyJ9LAorICAgICAgICAgICAgeyI1MDVFLTUiLCAiNS4wNUUtMyIsICI1LjA1RS0zIn0sCisgICAgICAgICAgICB7IjUwNUUtNiIsICI1MDVFLTYiLCAiNTA1RS02In0KKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBwYXR0ZXJuLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBmb3JtYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChwYXR0ZXJuW2pdKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZm9ybWF0LmZvcm1hdChpbnB1dFtpXSk7CisgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkW2ldW2pdKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogaW5wdXQ6ICIgKyBpbnB1dFtpXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgcGF0dGVybjogIiArIHBhdHRlcm5bal0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkOiAiICsgZXhwZWN0ZWRbaV1bal0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGdvdDogIiArIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICovCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDQyMzM4NDA6IE51bWJlckZvcm1hdCBkb2VzIG5vdCByb3VuZCBjb3JyZWN0bHkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0NDIzMzg0MCgpIHsKKyAgICAgICAgZmxvYXQgZiA9IDAuMDA5OWY7CisKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mID0gbmV3IERlY2ltYWxGb3JtYXQoIjAuIyMiLCBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoTG9jYWxlLlVTKSk7CisgICAgbmYuc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKDIpOworICAgIAorICAgIFN0cmluZyByZXN1bHQgPSBuZi5mb3JtYXQoZik7CisgICAgCisgICAgaWYgKCFyZXN1bHQuZXF1YWxzKCIwLjAxIikpIHsKKyAgICAgICAgZXJybG4oIkZBSUw6IGlucHV0OiAiICsgZiArICIsIGV4cGVjdGVkOiAwLjAxLCBnb3Q6ICIgKyByZXN1bHQpOworICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogNDI0MTg4MDogRGVjaW1hbCBmb3JtYXQgZG9lc250IHJvdW5kIGEgZG91YmxlIHByb3Blcmx5IHdoZW4gdGhlIG51bWJlciBpcyBsZXNzIHRoYW4gMQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3Q0MjQxODgwKCkgeworICAgICAgICBMb2NhbGUgc2F2ZWRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBMb2NhbGUuc2V0RGVmYXVsdChMb2NhbGUuVVMpOworICAgICAgICBkb3VibGVbXSBpbnB1dCA9IHsKKyAgICAgICAgICAgICAgICAuMDE5LCAuMDA5LCAuMDE1LCAuMDE2LCAuMDE0LAorICAgICAgICAgICAgICAgIC4wMDQsIC4wMDUsIC4wMDYsIC4wMDcsIC4wMDgsCisgICAgICAgICAgICAgICAgLjUsIDEuNSwgLjA1LCAuMTUsIC4wMDUsCisgICAgICAgICAgICAgICAgLjAxNSwgLjAwMDUsIC4wMDE1LAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSBwYXR0ZXJuID0geworICAgICAgICAgICAgICAgICIjIzAlIiwgIiMjMCUiLCAiIyMwJSIsICIjIzAlIiwgIiMjMCUiLAorICAgICAgICAgICAgICAgICIjIzAlIiwgIiMjMCUiLCAiIyMwJSIsICIjIzAlIiwgIiMjMCUiLAorICAgICAgICAgICAgICAgICIjLCMjMCIsICIjLCMjMCIsICIjLCMjMC4wIiwgIiMsIyMwLjAiLCAiIywjIzAuMDAiLAorICAgICAgICAgICAgICAgICIjLCMjMC4wMCIsICIjLCMjMC4wMDAiLCAiIywjIzAuMDAwIiwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW10gZXhwZWN0ZWQgPSB7CisgICAgICAgICAgICAgICAgIjIlIiwgIjElIiwgIjIlIiwgIjIlIiwgIjElIiwKKyAgICAgICAgICAgICAgICAiMCUiLCAiMCUiLCAiMSUiLCAiMSUiLCAiMSUiLAorICAgICAgICAgICAgICAgICIwIiwgIjIiLCAiMC4wIiwgIjAuMiIsICIwLjAwIiwKKyAgICAgICAgICAgICAgICAiMC4wMiIsICIwLjAwMCIsICIwLjAwMiIsCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0ID0gbmV3IERlY2ltYWxGb3JtYXQocGF0dGVybltpXSk7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZm9ybWF0LmZvcm1hdChpbnB1dFtpXSk7CisgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRbaV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGlucHV0OiAiICsgaW5wdXRbaV0gKworICAgICAgICAgICAgICAgICAgICAgICAgIiwgcGF0dGVybjogIiArIHBhdHRlcm5baV0gKworICAgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZFtpXSArCisgICAgICAgICAgICAgICAgICAgICAgICAiLCBnb3Q6ICIgKyByZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KHNhdmVkTG9jYWxlKTsKKyAgICB9Cit9CisKK2NsYXNzIG15Zm9ybWF0IGltcGxlbWVudHMgU2VyaWFsaXphYmxlCit7CisgICAgRGF0ZUZvcm1hdCBfZGF0ZUZvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCk7CisKKyAgICBwdWJsaWMgU3RyaW5nIE5vdygpCisgICAgeworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWxlbmRhciA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBEYXRlIHQgPSBjYWxlbmRhci5nZXRUaW1lKCk7CisgICAgICAgIFN0cmluZyBub3dTdHIgPSBfZGF0ZUZvcm1hdC5mb3JtYXQodCk7CisgICAgICAgIHJldHVybiBub3dTdHI7CisgICAgfQorfQorCitjbGFzcyBNeU51bWJlckZvcm1hdFRlc3QgZXh0ZW5kcyBOdW1iZXJGb3JtYXQgeworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGxvbmcgbnVtYmVyLFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLCBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgfQorICAgIHB1YmxpYyBOdW1iZXIgcGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbikgeworICAgICAgICByZXR1cm4gbmV3IEludGVnZXIoMCk7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KEJpZ0RlY2ltYWwgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIH0KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChCaWdJbnRlZ2VyIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICB9CisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvUkJORlBhcnNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SQk5GUGFyc2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI2YzkzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvUkJORlBhcnNlVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBSQk5GUGFyc2VUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICBuZXcgUkJORlBhcnNlVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgcHVibGljIHZvaWQgVGVzdFBhcnNlKCkgeworCisgICAgLy8gdGhlc2UgcnVsZXMgbWFrZSBubyBzZW5zZSBidXQgYmVoYXZlIHJhdGlvbmFsbHkKKyAgICBTdHJpbmdbXSBva3J1bGVzID0geworICAgICAgInJhbmRvbSB0ZXh0IiwKKyAgICAgICIlZm9vOmJhciIsCisgICAgICAiJWZvbzogYmFyIiwKKyAgICAgICIwOiIsCisgICAgICAiMDo6IiwKKyAgICAgICIlJWZvbzo7IiwKKyAgICAgICItIiwKKyAgICAgICItMSIsCisgICAgICAiLToiLAorICAgICAgIi4iLAorICAgICAgIi4xIiwKKyAgICAgICJbIiwKKyAgICAgICJdIiwKKyAgICAgICJbXSIsCisgICAgICAiW2Zvb10iLAorICAgICAgIltbXSIsCisgICAgICAiW11dIiwKKyAgICAgICJbW11dIiwKKyAgICAgICJbXVtdIiwKKyAgICAgICI8IiwKKyAgICAgICI+IiwKKyAgICAgICI9IiwKKyAgICAgICI9PSIsCisgICAgICAiPT09IiwKKyAgICAgICI9Zm9vPSIsCisgICAgfTsKKworICAgIFN0cmluZ1tdIGV4Y2VwdHJ1bGVzID0geworICAgICAgIiIsCisgICAgICAiOyIsCisgICAgICAiOzsiLAorICAgICAgIjoiLAorICAgICAgIjo6IiwKKyAgICAgICI6MSIsCisgICAgICAiOjsiLAorICAgICAgIjo7OjsiLAorICAgICAgIjw8IiwKKyAgICAgICI8PDwiLAorICAgICAgIjEwOjs5OjsiLAorICAgICAgIj4+IiwKKyAgICAgICI+Pj4iLAorICAgICAgIjEwOiIsIC8vIGZvcm1hdHRpbmcgYW55IHZhbHVlIHdpdGggYSBvbmUncyBkaWdpdCB3aWxsIGZhaWwKKyAgICAgICIxMTogPDwgeCIsIC8vIGZvcm1hdGluZyBhIG11bHRpcGxlIG9mIDEwIGNhdXNlcyByb2xsYmFjayBydWxlIHRvIGZhaWwKKyAgICAgICIlJWZvbzogMCBmb287IDEwOiA9JSViYXI9OyAlJWJhcjogMDogYmFyOyAxMDogPSUlZm9vPTsiLAorICAgIH07CisKKyAgICBTdHJpbmdbXVtdIGFsbHJ1bGVzID0geworICAgICAgb2tydWxlcywKKyAgICAgIGV4Y2VwdHJ1bGVzLAorICAgIH07CisKKyAgICBmb3IgKGludCBqID0gMDsgaiA8IGFsbHJ1bGVzLmxlbmd0aDsgKytqKSB7CisgICAgICBTdHJpbmdbXSB0ZXN0cyA9IGFsbHJ1bGVzW2pdOworICAgICAgYm9vbGVhbiBleGNlcHQgPSB0ZXN0cyA9PSBleGNlcHRydWxlczsKKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpIHsKKyAgICBsb2dsbigiLS0tLS0tLS0tLSIpOworICAgIGxvZ2xuKCJydWxlczogJyIgKyB0ZXN0c1tpXSArICInIik7CisgICAgYm9vbGVhbiBjYXVnaHRFeGNlcHRpb24gPSBmYWxzZTsKKyAgICB0cnkgeworICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZtdCA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQodGVzdHNbaV0sIExvY2FsZS5VUyk7CisgICAgICBsb2dsbigiMS4yMzogIiArIGZtdC5mb3JtYXQoMjApKTsKKyAgICAgIGxvZ2xuKCItMTIzOiAiICsgZm10LmZvcm1hdCgtMTIzKSk7CisgICAgICBsb2dsbigiLjEyMzogIiArIGZtdC5mb3JtYXQoLjEyMykpOworICAgICAgbG9nbG4oIiAxMjM6ICIgKyBmbXQuZm9ybWF0KDEyMykpOworICAgIH0KKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgIGlmICghZXhjZXB0KSB7CisgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGNhdWdodEV4Y2VwdGlvbiA9IHRydWU7CisgICAgICB9CisgICAgfQorICAgIGlmIChleGNlcHQgJiYgIWNhdWdodEV4Y2VwdGlvbikgeworICAgICAgZXJybG4oImV4cGVjdGVkIGV4Y2VwdGlvbiBidXQgZGlkbid0IGdldCBvbmUhIik7CisgICAgfQorICAgICAgfQorICAgIH0KKyAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mUm91bmRUcmlwVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mUm91bmRUcmlwVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFmZDViMTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1JibmZSb3VuZFRyaXBUZXN0LmphdmEKQEAgLTAsMCArMSwyMTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIFJibmZSb3VuZFRyaXBUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBSYm5mUm91bmRUcmlwVGVzdCB0ZXN0ID0gbmV3IFJibmZSb3VuZFRyaXBUZXN0KCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRlc3QucnVuKGFyZ3MpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbnRpcmUgdGVzdCBmYWlsZWQgYmVjYXVzZSBvZiBleGNlcHRpb246ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgRW5nbGlzaCBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RFbmdsaXNoU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5VUywKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgLTEyMzQ1Njc4LCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgZHVyYXRpb24tZm9ybWF0dGluZyBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REdXJhdGlvbnNSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5VUywKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5EVVJBVElPTik7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgMCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIFNwYW5pc2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3BhbmlzaFNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChuZXcgTG9jYWxlKCJlcyIsICJlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAiIiksIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgLTEyMzQ1Njc4LCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgRnJlbmNoIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEZyZW5jaFNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuRlJBTkNFLAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCAtMTIzNDU2NzgsIDEyMzQ1Njc4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGFuIGV4aGF1c3RpdmUgcm91bmQtdHJpcCB0ZXN0IG9uIHRoZSBTd2lzcyBGcmVuY2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3dpc3NGcmVuY2hTcGVsbG91dFJUKCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQobmV3IExvY2FsZSgiZnIiLCAiQ0giLAorICAgICAgICAgICAgICAgICAgICAgICAgIiIpLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIC0xMjM0NTY3OCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIEl0YWxpYW4gc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXRhbGlhblNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuSVRBTElBTiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgLTk5OTk5OSwgOTk5OTk5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGFuIGV4aGF1c3RpdmUgcm91bmQtdHJpcCB0ZXN0IG9uIHRoZSBHZXJtYW4gc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0R2VybWFuU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5HRVJNQU5ZLAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCAwLCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgU3dlZGlzaCBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTd2VkaXNoU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoInN2IiwgIlNFIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCAwLCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhbiBleGhhdXN0aXZlIHJvdW5kLXRyaXAgdGVzdCBvbiB0aGUgRHV0Y2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RHV0Y2hTcGVsbG91dFJUKCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQobmV3IExvY2FsZSgibmwiLCAiTkwiLAorICAgICAgICAgICAgICAgICAgICAgICAgIiIpLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIC0xMjM0NTY3OCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIEphcGFuZXNlIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEphcGFuZXNlU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5KQVBBTiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgMCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIFJ1c3NpYW4gc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UnVzc2lhblNwZWxsb3V0UlQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChuZXcgTG9jYWxlKCJydSIsICJSVSIsCisgICAgICAgICAgICAgICAgICAgICAgICAiIiksIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgMCwgMTIzNDU2NzgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW4gZXhoYXVzdGl2ZSByb3VuZC10cmlwIHRlc3Qgb24gdGhlIEdyZWVrIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEdyZWVrU3BlbGxvdXRSVCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoImVsIiwgIkdSIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICIiKSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCAwLCAxMjM0NTY3OCk7CisgICAgfQorCisgICAgdm9pZCBkb1Rlc3QoUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwgIGxvbmcgbG93TGltaXQsCisgICAgICAgICAgICAgICAgICAgIGxvbmcgaGlnaExpbWl0KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBsb25nIGNvdW50ID0gMDsKKyAgICAgICAgICAgIGxvbmcgaW5jcmVtZW50ID0gMTsKKyAgICAgICAgICAgIGZvciAobG9uZyBpID0gbG93TGltaXQ7IGkgPD0gaGlnaExpbWl0OyBpICs9IGluY3JlbWVudCkgeworICAgICAgICAgICAgICAgIGlmIChjb3VudCAlIDEwMDAgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oTG9uZy50b1N0cmluZyhpKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMoaSkgPCA1MDAwKQorICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnQgPSAxOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKE1hdGguYWJzKGkpIDwgNTAwMDAwKQorICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnQgPSAyNzM3OworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50ID0gMjY3NDM3OworCisgICAgICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBmb3JtYXR0ZXIuZm9ybWF0KGkpOworICAgICAgICAgICAgICAgIGxvbmcgcnQgPSBmb3JtYXR0ZXIucGFyc2UodGV4dCkubG9uZ1ZhbHVlKCk7CisKKyAgICAgICAgICAgICAgICBpZiAocnQgIT0gaSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUm91bmQtdHJpcCBmYWlsZWQ6ICIgKyBpICsgIiAtPiAiICsgdGV4dCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0+ICIgKyBydCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGxvd0xpbWl0IDwgMCkgeworICAgICAgICAgICAgICAgIGRvdWJsZSBkID0gMS4yMzQ7CisgICAgICAgICAgICAgICAgd2hpbGUgKGQgPCAxMDAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gZm9ybWF0dGVyLmZvcm1hdChkKTsKKyAgICAgICAgICAgICAgICAgICAgZG91YmxlIHJ0ID0gZm9ybWF0dGVyLnBhcnNlKHRleHQpLmRvdWJsZVZhbHVlKCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJ0ICE9IGQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJSb3VuZC10cmlwIGZhaWxlZDogIiArIGQgKyAiIC0+ICIgKyB0ZXh0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0+ICIgKyBydCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZCAqPSAxMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFRocm93YWJsZSBlKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmYWlsZWQgd2l0aCBleGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9SYm5mVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJhZjlhMTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1JibmZUZXN0LmphdmEKQEAgLTAsMCArMSwxMDU4IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLm1hdGguQmlnRGVjaW1hbDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CitpbXBvcnQgamF2YS50ZXh0LkRlY2ltYWxGb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0Lk51bWJlckZvcm1hdDsKKworcHVibGljIGNsYXNzIFJibmZUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk5IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBSYm5mVGVzdCB0ZXN0ID0gbmV3IFJibmZUZXN0KCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRlc3QucnVuKGFyZ3MpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbnRpcmUgdGVzdCBmYWlsZWQgYmVjYXVzZSBvZiBleGNlcHRpb246ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIFN0cmluZyBmcmFjUnVsZXMgPSAKKyAgICAgICAgIiVtYWluOlxuIiArCisgICAgICAgIC8vIHRoaXMgcnVsZSBmb3JtYXRzIHRoZSBudW1iZXIgaWYgaXQncyAxIG9yIG1vcmUuICBJdCBmb3JtYXRzCisgICAgICAgIC8vIHRoZSBpbnRlZ3JhbCBwYXJ0IHVzaW5nIGEgRGVjaW1hbEZvcm1hdCAoIiMsIyMwIiBwdXRzCisgICAgICAgIC8vIHRob3VzYW5kcyBzZXBhcmF0b3JzIGluIHRoZSByaWdodCBwbGFjZXMpIGFuZCB0aGUgZnJhY3Rpb25hbAorICAgICAgICAvLyBwYXJ0IHVzaW5nICUlZnJhYy4gIElmIHRoZXJlIGlzIG5vIGZyYWN0aW9uYWwgcGFydCwgaXQKKyAgICAgICAgLy8ganVzdCBzaG93cyB0aGUgaW50ZWdyYWwgcGFydC4KKyAgICAgICAgIiAgICB4LjA6IDwjLCMjMDxbID4lJWZyYWM+XTtcbiIgKworICAgICAgICAvLyB0aGlzIHJ1bGUgZm9ybWF0cyB0aGUgbnVtYmVyIGlmIGl0J3MgYmV0d2VlbiAwIGFuZCAxLiAgSXQKKyAgICAgICAgLy8gc2hvd3Mgb25seSB0aGUgZnJhY3Rpb25hbCBwYXJ0ICgwLjUgc2hvd3MgdXAgYXMgIjEvMiwiIG5vdAorICAgICAgICAvLyAiMCAxLzIiKQorICAgICAgICAiICAgIDAueDogPiUlZnJhYz47XG4iICsKKyAgICAgICAgLy8gdGhlIGZyYWN0aW9uIHJ1bGUgc2V0LiAgVGhpcyB3b3JrcyB0aGUgc2FtZSB3YXkgYXMgdGhlIG9uZSBpbiB0aGUKKyAgICAgICAgLy8gcHJlY2VkaW5nIGV4YW1wbGU6IFdlIG11bHRpcGx5IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlcgorICAgICAgICAvLyBiZWluZyBmb3JtYXR0ZWQgYnkgZWFjaCBydWxlJ3MgYmFzZSB2YWx1ZSBhbmQgdXNlIHRoZSBydWxlIHRoYXQKKyAgICAgICAgLy8gcHJvZHVjZXMgdGhlIHJlc3VsdCBjbG9zZXN0IHRvIDAgKG9yIHRoZSBmaXJzdCBydWxlIHRoYXQgcHJvZHVjZXMgMCkuCisgICAgICAgIC8vIFNpbmNlIHdlIG9ubHkgcHJvdmlkZSBydWxlcyBmb3IgdGhlIG51bWJlcnMgZnJvbSAyIHRvIDEwLCB3ZSBrbm93CisgICAgICAgIC8vIHdlJ2xsIGdldCBhIGZyYWN0aW9uIHdpdGggYSBkZW5vbWluYXRvciBiZXR3ZWVuIDIgYW5kIDEwLgorICAgICAgICAvLyAiPDA8IiBjYXVzZXMgdGhlIG51bWVyYXRvciBvZiB0aGUgZnJhY3Rpb24gdG8gYmUgZm9ybWF0dGVkCisgICAgICAgIC8vIHVzaW5nIG51bWVyYWxzCisgICAgICAgICIlJWZyYWM6XG4iICsKKyAgICAgICAgIiAgICAyOiAxLzI7XG4iICsKKyAgICAgICAgIiAgICAzOiA8MDwvMztcbiIgKworICAgICAgICAiICAgIDQ6IDwwPC80O1xuIiArCisgICAgICAgICIgICAgNTogPDA8LzU7XG4iICsKKyAgICAgICAgIiAgICA2OiA8MDwvNjtcbiIgKworICAgICAgICAiICAgIDc6IDwwPC83O1xuIiArCisgICAgICAgICIgICAgODogPDA8Lzg7XG4iICsKKyAgICAgICAgIiAgICA5OiA8MDwvOTtcbiIgKworICAgICAgICAiICAgMTA6IDwwPC8xMDtcbiI7CisKKyAgICBzdGF0aWMgeworICAgICAgICAvLyBtb25kbyBoYWNrCisgICAgY2hhcltdIGZyYWNSdWxlc0FyciA9IGZyYWNSdWxlcy50b0NoYXJBcnJheSgpOworICAgICAgICBpbnQgbGVuID0gZnJhY1J1bGVzQXJyLmxlbmd0aDsKKyAgICAgICAgaW50IGNoYW5nZSA9IDI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBmcmFjUnVsZXNBcnJbaV07CisgICAgICAgICAgICBpZiAoY2ggPT0gJ1xuJykgeworICAgICAgICAgICAgICAgIGNoYW5nZSA9IDI7IC8vIGNoYW5nZSBvaworICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSAnOicpIHsKKyAgICAgICAgICAgICAgICBjaGFuZ2UgPSAxOyAvLyBjaGFuZ2UsIGJ1dCBvbmNlIHdlIGhpdCBhIG5vbi1zcGFjZSBjaGFyLCBkb24ndCBjaGFuZ2UKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gJyAnKSB7CisgICAgICAgICAgICAgICAgaWYgKGNoYW5nZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZyYWNSdWxlc0FycltpXSA9IChjaGFyKTB4MjAwZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjaGFuZ2UgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBjaGFuZ2UgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIGZyYWNSdWxlcyA9IG5ldyBTdHJpbmcoZnJhY1J1bGVzQXJyKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGR1cmF0aW9uSW5TZWNvbmRzUnVsZXMgPQorICAgICAgICAvLyBtYWluIHJ1bGUgc2V0IGZvciBmb3JtYXR0aW5nIHdpdGggd29yZHMKKyAgICAgICAgIiV3aXRoLXdvcmRzOlxuIgorICAgICAgICAvLyB0YWtlIGNhcmUgb2Ygc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcyBvZiAic2Vjb25kIgorICAgICAgICArICIgICAgMCBzZWNvbmRzOyAxIHNlY29uZDsgPTA9IHNlY29uZHM7XG4iCisgICAgICAgIC8vIHVzZSAlJW1pbiB0byBmb3JtYXQgdmFsdWVzIGdyZWF0ZXIgdGhhbiA2MCBzZWNvbmRzCisgICAgICAgICsgIiAgICA2MC82MDogPCUlbWluPFssID4+XTtcbiIKKyAgICAgICAgLy8gdXNlICUlaHIgdG8gZm9ybWF0IHZhbHVlcyBncmVhdGVyIHRoYW4gMyw2MDAgc2Vjb25kcworICAgICAgICAvLyAodGhlICI+Pj4iIGJlbG93IGNhdXNlcyB1cyB0byBzZWUgdGhlIG51bWJlciBvZiBtaW51dGVzCisgICAgICAgIC8vIHdoZW4gd2hlbiB0aGVyZSBhcmUgemVybyBtaW51dGVzKQorICAgICAgICArICIgICAgMzYwMC82MDogPCUlaHI8WywgPj4+XTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIHNldCB0YWtlcyBjYXJlIG9mIHRoZSBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zCisgICAgICAgIC8vIG9mICJtaW51dGUiCisgICAgICAgICsgIiUlbWluOlxuIgorICAgICAgICArICIgICAgMCBtaW51dGVzOyAxIG1pbnV0ZTsgPTA9IG1pbnV0ZXM7XG4iCisgICAgICAgIC8vIHRoaXMgcnVsZSBzZXQgdGFrZXMgY2FyZSBvZiB0aGUgc2luZ3VsYXIgYW5kIHBsdXJhbCBmb3JtcworICAgICAgICAvLyBvZiAiaG91ciIKKyAgICAgICAgKyAiJSVocjpcbiIKKyAgICAgICAgKyAiICAgIDAgaG91cnM7IDEgaG91cjsgPTA9IGhvdXJzO1xuIgorCisgICAgICAgIC8vIG1haW4gcnVsZSBzZXQgZm9yIGZvcm1hdHRpbmcgaW4gbnVtZXJhbHMKKyAgICAgICAgKyAiJWluLW51bWVyYWxzOlxuIgorICAgICAgICAvLyB2YWx1ZXMgYmVsb3cgNjAgc2Vjb25kcyBhcmUgc2hvd24gd2l0aCAic2VjLiIKKyAgICAgICAgKyAiICAgID0wPSBzZWMuO1xuIgorICAgICAgICAvLyBoaWdoZXIgdmFsdWVzIGFyZSBzaG93biB3aXRoIGNvbG9uczogJSVtaW4tc2VjIGlzIHVzZWQgZm9yCisgICAgICAgIC8vIHZhbHVlcyBiZWxvdyAzLDYwMCBzZWNvbmRzLi4uCisgICAgICAgICsgIiAgICA2MDogPSUlbWluLXNlYz07XG4iCisgICAgICAgIC8vIC4uLmFuZCAlJWhyLW1pbi1zZWMgaXMgdXNlZCBmb3IgdmFsdWVzIG9mIDMsNjAwIHNlY29uZHMKKyAgICAgICAgLy8gYW5kIGFib3ZlCisgICAgICAgICsgIiAgICAzNjAwOiA9JSVoci1taW4tc2VjPTtcbiIKKyAgICAgICAgLy8gdGhpcyBydWxlIGNhdXNlcyB2YWx1ZXMgb2YgbGVzcyB0aGFuIDEwIG1pbnV0ZXMgdG8gc2hvdyB3aXRob3V0CisgICAgICAgIC8vIGEgbGVhZGluZyB6ZXJvCisgICAgICAgICsgIiUlbWluLXNlYzpcbiIKKyAgICAgICAgKyAiICAgIDA6IDo9MDA9O1xuIgorICAgICAgICArICIgICAgNjAvNjA6IDwwPD4+O1xuIgorICAgICAgICAvLyB0aGlzIHJ1bGUgc2V0IGlzIHVzZWQgZm9yIHZhbHVlcyBvZiAzLDYwMCBvciBtb3JlLiAgTWludXRlcyBhcmUgYWx3YXlzCisgICAgICAgIC8vIHNob3duLCBhbmQgYWx3YXlzIHNob3duIHdpdGggdHdvIGRpZ2l0cworICAgICAgICArICIlJWhyLW1pbi1zZWM6XG4iCisgICAgICAgICsgIiAgICAwOiA6PTAwPTtcbiIKKyAgICAgICAgKyAiICAgIDYwLzYwOiA8MDA8Pj47XG4iCisgICAgICAgICsgIiAgICAzNjAwLzYwOiA8IywjIzA8Oj4+PjtcbiIKKyAgICAgICAgLy8gdGhlIGxlbmllbnQtcGFyc2UgcnVsZXMgYWxsb3cgc2V2ZXJhbCBkaWZmZXJlbnQgY2hhcmFjdGVycyB0byBiZSB1c2VkCisgICAgICAgIC8vIGFzIGRlbGltaXRlcnMgYmV0d2VlbiBob3VycywgbWludXRlcywgYW5kIHNlY29uZHMKKyAgICAgICAgKyAiJSVsZW5pZW50LXBhcnNlOlxuIgorICAgICAgICArICIgICAgJiA6ID0gLiA9ICcgJyA9IC07XG4iOworCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgICAgICAvLyBleHRyYSBjYWxscyB0byBib29zdCBjb3ZlcmFnZSBudW1iZXJzCisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmbXQwID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm10MSA9IChSdWxlQmFzZWROdW1iZXJGb3JtYXQpZm10MC5jbG9uZSgpOworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm10MiA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgaWYgKCFmbXQwLmVxdWFscyhmbXQwKSkgeworICAgICAgICAgICAgZXJybG4oInNlbGYgZXF1YWxpdHkgZmFpbHMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZtdDAuZXF1YWxzKGZtdDEpKSB7CisgICAgICAgICAgICBlcnJsbigiY2xvbmUgZXF1YWxpdHkgZmFpbHMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWZtdDAuZXF1YWxzKGZtdDIpKSB7CisgICAgICAgICAgICBlcnJsbigiZHVwbGljYXRlIGVxdWFsaXR5IGZhaWxzIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHN0ciA9IGZtdDAudG9TdHJpbmcoKTsKKyAgICAgICAgbG9nbG4oc3RyKTsKKworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm10MyA9ICBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGR1cmF0aW9uSW5TZWNvbmRzUnVsZXMpOworCisgICAgICAgIGlmIChmbXQwLmVxdWFscyhmbXQzKSkgeworICAgICAgICAgICAgZXJybG4oIm5vbmVxdWFsIGZhaWxzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmbXQzLmVxdWFscyhmbXQzKSkgeworICAgICAgICAgICAgZXJybG4oInNlbGYgZXF1YWwgMiBmYWlscyIpOworICAgICAgICB9CisgICAgICAgIHN0ciA9IGZtdDMudG9TdHJpbmcoKTsKKyAgICAgICAgbG9nbG4oc3RyKTsKKworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IGZtdDMuZ2V0UnVsZVNldE5hbWVzKCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZtdDMuc2V0RGVmYXVsdFJ1bGVTZXQobnVsbCk7CisgICAgICAgICAgICBmbXQzLnNldERlZmF1bHRSdWxlU2V0KCIlJWZvbyIpOworICAgICAgICAgICAgZXJybG4oInNkcmYgJSVmb28gZGlkbid0IGZhaWwiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZtdDMuc2V0RGVmYXVsdFJ1bGVTZXQoIiVib2d1cyIpOworICAgICAgICAgICAgZXJybG4oInNkcmYgJWJvZ3VzIGRpZG4ndCBmYWlsIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHIgPSBmbXQzLmZvcm1hdCgyLjMsIG5hbWVzWzBdKTsKKyAgICAgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgICAgICBzdHIgPSBmbXQzLmZvcm1hdCgyLjMsICIlJWZvbyIpOworICAgICAgICAgICAgZXJybG4oImZvcm1hdCBkb3VibGUgJSVmb28gZGlkbid0IGZhaWwiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0ciA9IGZtdDMuZm9ybWF0KDEyM0wsIG5hbWVzWzBdKTsKKyAgICAgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgICAgICBzdHIgPSBmbXQzLmZvcm1hdCgxMjNMLCAiJSVmb28iKTsKKyAgICAgICAgICAgIGVycmxuKCJmb3JtYXQgZG91YmxlICUlZm9vIGRpZG4ndCBmYWlsIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmbXQ0ID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChmcmFjUnVsZXMsIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZtdDUgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGZyYWNSdWxlcywgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBzdHIgPSBmbXQ0LnRvU3RyaW5nKCk7CisgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgIGlmICghZm10NC5lcXVhbHMoZm10NSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJkdXBsaWNhdGUgMiBlcXVhbGl0eSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBzdHIgPSBmbXQ0LmZvcm1hdCgxMjNMKTsKKyAgICAgICAgbG9nbG4oc3RyKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE51bWJlciBudW0gPSBmbXQ0LnBhcnNlKHN0cik7CisgICAgICAgICAgICBsb2dsbihudW0udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigicGFyc2UgY2F1Z2h0IGV4Y2VwdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgc3RyID0gZm10NC5mb3JtYXQoLjAwMDEyMyk7CisgICAgICAgIGxvZ2xuKHN0cik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBOdW1iZXIgbnVtID0gZm10NC5wYXJzZShzdHIpOworICAgICAgICAgICAgbG9nbG4obnVtLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oInBhcnNlIGNhdWdodCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0ciA9IGZtdDQuZm9ybWF0KDQ1Ni4wMDAxMjMpOworICAgICAgICBsb2dsbihzdHIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgTnVtYmVyIG51bSA9IGZtdDQucGFyc2Uoc3RyKTsKKyAgICAgICAgICAgIGxvZ2xuKG51bS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJwYXJzZSBjYXVnaHQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VW5kZWZpbmVkU3BlbGxvdXQoKSB7CisgICAgICAgIExvY2FsZSBncmVlayA9IG5ldyBMb2NhbGUoImVsIiwgIiIsICIiKTsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0W10gZm9ybWF0dGVycyA9IHsKKyAgICAgICAgICAgIG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoZ3JlZWssIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCksCisgICAgICAgICAgICBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGdyZWVrLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuT1JESU5BTCksCisgICAgICAgICAgICBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGdyZWVrLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuRFVSQVRJT04pLAorICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdIGRhdGEgPSB7CisgICAgICAgICAgICAiMCIsCisgICAgICAgICAgICAiMSIsCisgICAgICAgICAgICAiMTUiLAorICAgICAgICAgICAgIjIwIiwKKyAgICAgICAgICAgICIyMyIsCisgICAgICAgICAgICAiNzMiLAorICAgICAgICAgICAgIjg4IiwKKyAgICAgICAgICAgICIxMDAiLAorICAgICAgICAgICAgIjEwNiIsCisgICAgICAgICAgICAiMTI3IiwKKyAgICAgICAgICAgICIyMDAiLAorICAgICAgICAgICAgIjU3OSIsCisgICAgICAgICAgICAiMSwwMDAiLAorICAgICAgICAgICAgIjIsMDAwIiwKKyAgICAgICAgICAgICIzLDAwNCIsCisgICAgICAgICAgICAiNCw1NjciLAorICAgICAgICAgICAgIjE1LDk0MyIsCisgICAgICAgICAgICAiMTA1LDAwMCIsCisgICAgICAgICAgICAiMiwzNDUsNjc4IiwKKyAgICAgICAgICAgICItMzYiLAorICAgICAgICAgICAgIi0zNi45MTIxNSIsCisgICAgICAgICAgICAiMjM0LjU2Nzg5IgorICAgICAgICB9OworCisgICAgICAgIE51bWJlckZvcm1hdCBkZWNGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBmb3JtYXR0ZXJzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdCBmb3JtYXR0ZXIgPSBmb3JtYXR0ZXJzW2pdOworICAgICAgICAgICAgbG9nbG4oImZvcm1hdHRlclsiICsgaiArICJdIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZm9ybWF0dGVyLmZvcm1hdChkZWNGb3JtYXQucGFyc2UoZGF0YVtpXSkpOworICAgICAgICAgICAgICAgICAgICBsb2dsbigiWyIgKyBpICsgIl0gIiArIGRhdGFbaV0gKyAiID09PiAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJmb3JtYXR0ZXJbIiArIGogKyAiXSwgZGF0YVsiICsgaSArICJdICIgKyBkYXRhW2ldICsgIiB0aHJldyBleGNlcHRpb24gIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEVuZ2xpc2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RW5nbGlzaFNwZWxsb3V0KCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlLlVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIxIiwgIm9uZSIgfSwKKyAgICAgICAgICAgIHsgIjE1IiwgImZpZnRlZW4iIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ0d2VudHkiIH0sCisgICAgICAgICAgICB7ICIyMyIsICJ0d2VudHktdGhyZWUiIH0sCisgICAgICAgICAgICB7ICI3MyIsICJzZXZlbnR5LXRocmVlIiB9LAorICAgICAgICAgICAgeyAiODgiLCAiZWlnaHR5LWVpZ2h0IiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgIm9uZSBodW5kcmVkIiB9LAorICAgICAgICAgICAgeyAiMTA2IiwgIm9uZSBodW5kcmVkIGFuZCBzaXgiIH0sCisgICAgICAgICAgICB7ICIxMjciLCAib25lIGh1bmRyZWQgYW5kIHR3ZW50eS1zZXZlbiIgfSwKKyAgICAgICAgICAgIHsgIjIwMCIsICJ0d28gaHVuZHJlZCIgfSwKKyAgICAgICAgICAgIHsgIjU3OSIsICJmaXZlIGh1bmRyZWQgYW5kIHNldmVudHktbmluZSIgfSwKKyAgICAgICAgICAgIHsgIjEsMDAwIiwgIm9uZSB0aG91c2FuZCIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAwIiwgInR3byB0aG91c2FuZCIgfSwKKyAgICAgICAgICAgIHsgIjMsMDA0IiwgInRocmVlIHRob3VzYW5kIGFuZCBmb3VyIiB9LAorICAgICAgICAgICAgeyAiNCw1NjciLCAiZm91ciB0aG91c2FuZCBmaXZlIGh1bmRyZWQgYW5kIHNpeHR5LXNldmVuIiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgImZpZnRlZW4gdGhvdXNhbmQgbmluZSBodW5kcmVkIGFuZCBmb3J0eS10aHJlZSIgfSwKKyAgICAgICAgICAgIHsgIjIsMzQ1LDY3OCIsICJ0d28gbWlsbGlvbiwgdGhyZWUgaHVuZHJlZCBhbmQgZm9ydHktZml2ZSAiCisgICAgICAgICAgICAgICsgInRob3VzYW5kLCBzaXggaHVuZHJlZCBhbmQgc2V2ZW50eS1laWdodCIgfSwKKyAgICAgICAgICAgIHsgIi0zNiIsICJtaW51cyB0aGlydHktc2l4IiB9LAorICAgICAgICAgICAgeyAiMjM0LjU2NyIsICJ0d28gaHVuZHJlZCBhbmQgdGhpcnR5LWZvdXIgcG9pbnQgZml2ZSBzaXggc2V2ZW4iIH0KKyAgICAgICAgfTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCB0ZXN0RGF0YSwgdHJ1ZSk7CisKKyAgICAgICAgZm9ybWF0dGVyLnNldExlbmllbnRQYXJzZU1vZGUodHJ1ZSk7CisgICAgICAgIFN0cmluZ1tdW10gbHBUZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIkZPdXJodW5kcmVkICAgICB0aGlSVFkgc2l4IiwgIjQzNiIgfSwKKyAgICAgICAgICAgIC8vIHRlc3Qgc3BhY2VzIGJlZm9yZSBmaWZ0eS03IGNhdXNpbmcgbGVuaWVudCBwYXJzZSBtYXRjaCBvZiAiZmlmdHktIiB0byAiIGZpZnR5IgorICAgICAgICAgICAgLy8gbGVhdmluZyAiLTciIGZvciByZW1haW5pbmcgcGFyc2UsIHJlc3VsdGluZyBpbiAyNjQzIGFzIHRoZSBwYXJzZSByZXN1bHQuCisgICAgICAgICAgICB7ICJmaWZ0eS03IiwgIjU3IiB9LAorICAgICAgICAgICAgeyAiIGZpZnR5LTciLCAiNTciIH0sCisgICAgICAgICAgICB7ICIgIGZpZnR5LTciLCAiNTciIH0sCisgICAgICAgICAgICB7ICIyIHRob3VzYW5kIHNpeCBIVU5EUkVEICAgZmlmdHktNyIsICIyLDY1NyIgfSwKKyAgICAgICAgICAgIHsgImZpZnRlZW4gaHVuZHJlZCBhbmQgemVybyIsICIxLDUwMCIgfQorICAgICAgICB9OworICAgICAgICBkb0xlbmllbnRQYXJzZVRlc3QoZm9ybWF0dGVyLCBscFRlc3REYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEVuZ2xpc2ggb3JkaW5hbC1hYmJyZXZpYXRpb24gcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0T3JkaW5hbEFiYnJldmlhdGlvbnMoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuVVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0Lk9SRElOQUwpOworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMSIsICIxc3QiIH0sCisgICAgICAgICAgICB7ICIyIiwgIjJuZCIgfSwKKyAgICAgICAgICAgIHsgIjMiLCAiM3JkIiB9LAorICAgICAgICAgICAgeyAiNCIsICI0dGgiIH0sCisgICAgICAgICAgICB7ICI3IiwgIjd0aCIgfSwKKyAgICAgICAgICAgIHsgIjEwIiwgIjEwdGgiIH0sCisgICAgICAgICAgICB7ICIxMSIsICIxMXRoIiB9LAorICAgICAgICAgICAgeyAiMTMiLCAiMTN0aCIgfSwKKyAgICAgICAgICAgIHsgIjIwIiwgIjIwdGgiIH0sCisgICAgICAgICAgICB7ICIyMSIsICIyMXN0IiB9LAorICAgICAgICAgICAgeyAiMjIiLCAiMjJuZCIgfSwKKyAgICAgICAgICAgIHsgIjIzIiwgIjIzcmQiIH0sCisgICAgICAgICAgICB7ICIyNCIsICIyNHRoIiB9LAorICAgICAgICAgICAgeyAiMzMiLCAiMzNyZCIgfSwKKyAgICAgICAgICAgIHsgIjEwMiIsICIxMDJuZCIgfSwKKyAgICAgICAgICAgIHsgIjMxMiIsICIzMTJ0aCIgfSwKKyAgICAgICAgICAgIHsgIjEyLDM0NSIsICIxMiwzNDV0aCIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhIHNpbXBsZSBzcG90IGNoZWNrIG9uIHRoZSBkdXJhdGlvbi1mb3JtYXR0aW5nIHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdER1cmF0aW9ucygpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5VUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQuRFVSQVRJT04pOworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMyw2MDAiLCAiMTowMDowMCIgfSwgICAgICAgICAgICAgLy9tb3ZlIG1lIGFuZCBJIGZhaWwKKyAgICAgICAgICAgIHsgIjAiLCAiMCBzZWMuIiB9LAorICAgICAgICAgICAgeyAiMSIsICIxIHNlYy4iIH0sCisgICAgICAgICAgICB7ICIyNCIsICIyNCBzZWMuIiB9LAorICAgICAgICAgICAgeyAiNjAiLCAiMTowMCIgfSwKKyAgICAgICAgICAgIHsgIjczIiwgIjE6MTMiIH0sCisgICAgICAgICAgICB7ICIxNDUiLCAiMjoyNSIgfSwKKyAgICAgICAgICAgIHsgIjY2NiIsICIxMTowNiIgfSwKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgeyAiMyw2MDAiLCAiMTowMDowMCIgfSwKKyAgICAgICAgICAgIHsgIjMsNzQwIiwgIjE6MDI6MjAiIH0sCisgICAgICAgICAgICB7ICIxMCwyOTMiLCAiMjo1MTozMyIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZSh0cnVlKTsKKyAgICAgICAgU3RyaW5nW11bXSBscFRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMi01MS0zMyIsICIxMCwyOTMiIH0KKyAgICAgICAgfTsKKyAgICAgICAgZG9MZW5pZW50UGFyc2VUZXN0KGZvcm1hdHRlciwgbHBUZXN0RGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhIHNpbXBsZSBzcG90IGNoZWNrIG9uIHRoZSBTcGFuaXNoIHNwZWxsb3V0IHJ1bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNwYW5pc2hTcGVsbG91dCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoImVzIiwgImVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiKSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjEiLCAidW5vIiB9LAorICAgICAgICAgICAgeyAiNiIsICJzZWlzIiB9LAorICAgICAgICAgICAgeyAiMTYiLCAiZGllY2lzXHUwMGU5aXMiIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ2ZWludGUiIH0sCisgICAgICAgICAgICB7ICIyNCIsICJ2ZWludGljdWF0cm8iIH0sCisgICAgICAgICAgICB7ICIyNiIsICJ2ZWludGlzXHUwMGU5aXMiIH0sCisgICAgICAgICAgICB7ICI3MyIsICJzZXRlbnRhIHkgdHJlcyIgfSwKKyAgICAgICAgICAgIHsgIjg4IiwgIm9jaGVudGEgeSBvY2hvIiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgImNpZW4iIH0sCisgICAgICAgICAgICB7ICIxMDYiLCAiY2llbnRvIHNlaXMiIH0sCisgICAgICAgICAgICB7ICIxMjciLCAiY2llbnRvIHZlaW50aXNpZXRlIiB9LAorICAgICAgICAgICAgeyAiMjAwIiwgImRvc2NpZW50b3MiIH0sCisgICAgICAgICAgICB7ICI1NzkiLCAicXVpbmllbnRvcyBzZXRlbnRhIHkgbnVldmUiIH0sCisgICAgICAgICAgICB7ICIxLDAwMCIsICJtaWwiIH0sCisgICAgICAgICAgICB7ICIyLDAwMCIsICJkb3MgbWlsIiB9LAorICAgICAgICAgICAgeyAiMywwMDQiLCAidHJlcyBtaWwgY3VhdHJvIiB9LAorICAgICAgICAgICAgeyAiNCw1NjciLCAiY3VhdHJvIG1pbCBxdWluaWVudG9zIHNlc2VudGEgeSBzaWV0ZSIgfSwKKyAgICAgICAgICAgIHsgIjE1LDk0MyIsICJxdWluY2UgbWlsIG5vdmVjaWVudG9zIGN1YXJlbnRhIHkgdHJlcyIgfSwKKyAgICAgICAgICAgIHsgIjIsMzQ1LDY3OCIsICJkb3MgbWlsbFx1MDBmM24gdHJlc2NpZW50b3MgY3VhcmVudGEgeSBjaW5jbyBtaWwgIgorICAgICAgICAgICAgICArICJzZWlzY2llbnRvcyBzZXRlbnRhIHkgb2NobyJ9LAorICAgICAgICAgICAgeyAiLTM2IiwgIm1lbm9zIHRyZWludGEgeSBzZWlzIiB9LAorICAgICAgICAgICAgeyAiMjM0LjU2NyIsICJkb3NjaWVudG9zIHRyZWludGEgeSBjdWF0cm8gcHVudG8gY2luY28gc2VpcyBzaWV0ZSIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEZyZW5jaCBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RGcmVuY2hTcGVsbG91dCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5GUkFOQ0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjEiLCAidW4iIH0sCisgICAgICAgICAgICB7ICIxNSIsICJxdWluemUiIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ2aW5ndCIgfSwKKyAgICAgICAgICAgIHsgIjIxIiwgInZpbmd0LWV0LXVuIiB9LAorICAgICAgICAgICAgeyAiMjMiLCAidmluZ3QtdHJvaXMiIH0sCisgICAgICAgICAgICB7ICI2MiIsICJzb2l4YW50ZS1kZXV4IiB9LAorICAgICAgICAgICAgeyAiNzAiLCAic29peGFudGUtZGl4IiB9LAorICAgICAgICAgICAgeyAiNzEiLCAic29peGFudGUgZXQgb256ZSIgfSwKKyAgICAgICAgICAgIHsgIjczIiwgInNvaXhhbnRlLXRyZWl6ZSIgfSwKKyAgICAgICAgICAgIHsgIjgwIiwgInF1YXRyZS12aW5ndHMiIH0sCisgICAgICAgICAgICB7ICI4OCIsICJxdWF0cmUtdmluZ3QtaHVpdCIgfSwKKyAgICAgICAgICAgIHsgIjEwMCIsICJjZW50IiB9LAorICAgICAgICAgICAgeyAiMTA2IiwgImNlbnQgc2l4IiB9LAorICAgICAgICAgICAgeyAiMTI3IiwgImNlbnQgdmluZ3Qtc2VwdCIgfSwKKyAgICAgICAgICAgIHsgIjIwMCIsICJkZXV4IGNlbnRzIiB9LAorICAgICAgICAgICAgeyAiNTc5IiwgImNpbnEgY2VudHMgc29peGFudGUtZGl4LW5ldWYiIH0sCisgICAgICAgICAgICB7ICIxLDAwMCIsICJtaWxsZSIgfSwKKyAgICAgICAgICAgIHsgIjEsMTIzIiwgIm9uemUgY2VudHMgdmluZ3QtdHJvaXMiIH0sCisgICAgICAgICAgICB7ICIxLDU5NCIsICJtaWxsZSBjaW5xIGNlbnRzIHF1YXRyZS12aW5ndC1xdWF0b3J6ZSIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAwIiwgImRldXggbWlsbGUiIH0sCisgICAgICAgICAgICB7ICIzLDAwNCIsICJ0cm9pcyBtaWxsZSBxdWF0cmUiIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJxdWF0cmUgbWlsbGUgY2lucSBjZW50cyBzb2l4YW50ZS1zZXB0IiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgInF1aW56ZSBtaWxsZSBuZXVmIGNlbnRzIHF1YXJhbnRlLXRyb2lzIiB9LAorICAgICAgICAgICAgeyAiMiwzNDUsNjc4IiwgImRldXggbWlsbGlvbiB0cm9pcyBjZW50cyBxdWFyYW50ZS1jaW5xIG1pbGxlICIKKyAgICAgICAgICAgICAgKyAic2l4IGNlbnRzIHNvaXhhbnRlLWRpeC1odWl0IiB9LAorICAgICAgICAgICAgeyAiLTM2IiwgIm1vaW5zIHRyZW50ZS1zaXgiIH0sCisgICAgICAgICAgICB7ICIyMzQuNTY3IiwgImRldXggY2VudHMgdHJlbnRlLXF1YXRyZSB2aXJndWxlIGNpbnEgc2l4IHNlcHQiIH0KKyAgICAgICAgfTsKKworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCB0ZXN0RGF0YSwgdHJ1ZSk7CisKKyAgICAgICAgZm9ybWF0dGVyLnNldExlbmllbnRQYXJzZU1vZGUodHJ1ZSk7CisgICAgICAgIFN0cmluZ1tdW10gbHBUZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgInRyZW50ZS11biIsICIzMSIgfSwKKyAgICAgICAgICAgIHsgInVuIGNlbnRzIHF1YXRyZSB2aW5ndCBkaXggaHVpdCIsICIxOTgiIH0KKyAgICAgICAgfTsKKyAgICAgICAgZG9MZW5pZW50UGFyc2VUZXN0KGZvcm1hdHRlciwgbHBUZXN0RGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBhIHNpbXBsZSBzcG90IGNoZWNrIG9uIHRoZSBTd2lzcyBGcmVuY2ggc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3dpc3NGcmVuY2hTcGVsbG91dCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KG5ldyBMb2NhbGUoImZyIiwgIkNIIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiKSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjEiLCAidW4iIH0sCisgICAgICAgICAgICB7ICIxNSIsICJxdWluemUiIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ2aW5ndCIgfSwKKyAgICAgICAgICAgIHsgIjIxIiwgInZpbmd0LWV0LXVuIiB9LAorICAgICAgICAgICAgeyAiMjMiLCAidmluZ3QtdHJvaXMiIH0sCisgICAgICAgICAgICB7ICI2MiIsICJzb2l4YW50ZS1kZXV4IiB9LAorICAgICAgICAgICAgeyAiNzAiLCAic2VwdGFudGUiIH0sCisgICAgICAgICAgICB7ICI3MSIsICJzZXB0YW50ZS1ldC11biIgfSwKKyAgICAgICAgICAgIHsgIjczIiwgInNlcHRhbnRlLXRyb2lzIiB9LAorICAgICAgICAgICAgeyAiODAiLCAiaHVpdGFudGUiIH0sCisgICAgICAgICAgICB7ICI4OCIsICJodWl0YW50ZS1odWl0IiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgImNlbnQiIH0sCisgICAgICAgICAgICB7ICIxMDYiLCAiY2VudCBzaXgiIH0sCisgICAgICAgICAgICB7ICIxMjciLCAiY2VudCB2aW5ndC1zZXB0IiB9LAorICAgICAgICAgICAgeyAiMjAwIiwgImRldXggY2VudHMiIH0sCisgICAgICAgICAgICB7ICI1NzkiLCAiY2lucSBjZW50cyBzZXB0YW50ZS1uZXVmIiB9LAorICAgICAgICAgICAgeyAiMSwwMDAiLCAibWlsbGUiIH0sCisgICAgICAgICAgICB7ICIxLDEyMyIsICJvbnplIGNlbnRzIHZpbmd0LXRyb2lzIiB9LAorICAgICAgICAgICAgeyAiMSw1OTQiLCAibWlsbGUgY2lucSBjZW50cyBub25hbnRlLXF1YXRyZSIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAwIiwgImRldXggbWlsbGUiIH0sCisgICAgICAgICAgICB7ICIzLDAwNCIsICJ0cm9pcyBtaWxsZSBxdWF0cmUiIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJxdWF0cmUgbWlsbGUgY2lucSBjZW50cyBzb2l4YW50ZS1zZXB0IiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgInF1aW56ZSBtaWxsZSBuZXVmIGNlbnRzIHF1YXJhbnRlLXRyb2lzIiB9LAorICAgICAgICAgICAgeyAiMiwzNDUsNjc4IiwgImRldXggbWlsbGlvbiB0cm9pcyBjZW50cyBxdWFyYW50ZS1jaW5xIG1pbGxlICIKKyAgICAgICAgICAgICAgKyAic2l4IGNlbnRzIHNlcHRhbnRlLWh1aXQiIH0sCisgICAgICAgICAgICB7ICItMzYiLCAibW9pbnMgdHJlbnRlLXNpeCIgfSwKKyAgICAgICAgICAgIHsgIjIzNC41NjciLCAiZGV1eCBjZW50cyB0cmVudGUtcXVhdHJlIHZpcmd1bGUgY2lucSBzaXggc2VwdCIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEl0YWxpYW4gc3BlbGxvdXQgcnVsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXRhbGlhblNwZWxsb3V0KCkgeworICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlLklUQUxJQU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgU3RyaW5nW11bXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIHsgIjEiLCAidW5vIiB9LAorICAgICAgICAgICAgeyAiMTUiLCAicXVpbmRpY2kiIH0sCisgICAgICAgICAgICB7ICIyMCIsICJ2ZW50aSIgfSwKKyAgICAgICAgICAgIHsgIjIzIiwgInZlbnRpdHJlIiB9LAorICAgICAgICAgICAgeyAiNzMiLCAic2V0dGFudGF0cmUiIH0sCisgICAgICAgICAgICB7ICI4OCIsICJvdHRhbnRvdHRvIiB9LAorICAgICAgICAgICAgeyAiMTAwIiwgImNlbnRvIiB9LAorICAgICAgICAgICAgeyAiMTA2IiwgImNlbnRvc2VpIiB9LAorICAgICAgICAgICAgeyAiMTA4IiwgImNlbnRvdHRvIiB9LAorICAgICAgICAgICAgeyAiMTI3IiwgImNlbnRvdmVudGlzZXR0ZSIgfSwKKyAgICAgICAgICAgIHsgIjE4MSIsICJjZW50b3R0YW50dW5vIiB9LAorICAgICAgICAgICAgeyAiMjAwIiwgImR1ZWNlbnRvIiB9LAorICAgICAgICAgICAgeyAiNTc5IiwgImNpbnF1ZWNlbnRvc2V0dGFudGFub3ZlIiB9LAorICAgICAgICAgICAgeyAiMSwwMDAiLCAibWlsbGUiIH0sCisgICAgICAgICAgICB7ICIyLDAwMCIsICJkdWVtaWxhIiB9LAorICAgICAgICAgICAgeyAiMywwMDQiLCAidHJlbWlsYXF1YXR0cm8iIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJxdWF0dHJvbWlsYWNpbnF1ZWNlbnRvc2Vzc2FudGFzZXR0ZSIgfSwKKyAgICAgICAgICAgIHsgIjE1LDk0MyIsICJxdWluZGljaW1pbGFub3ZlY2VudG9xdWFyYW50YXRyZSIgfSwKKyAgICAgICAgICAgIHsgIi0zNiIsICJtZW5vIHRyZW50aXNlaSIgfSwKKyAgICAgICAgICAgIHsgIjIzNC41NjciLCAiZHVlY2VudG90cmVudGlxdWF0dHJvIHZpcmdvbGEgY2lucXVlIHNlaSBzZXR0ZSIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgc2ltcGxlIHNwb3QgY2hlY2sgb24gdGhlIEdlcm1hbiBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXJtYW5TcGVsbG91dCgpIHsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5HRVJNQU5ZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIxIiwgImVpbnMiIH0sCisgICAgICAgICAgICB7ICIxNSIsICJmXHUwMGZjbmZ6ZWhuIiB9LAorICAgICAgICAgICAgeyAiMjAiLCAiendhbnppZyIgfSwKKyAgICAgICAgICAgIHsgIjIzIiwgImRyZWl1bmR6d2FuemlnIiB9LAorICAgICAgICAgICAgeyAiNzMiLCAiZHJlaXVuZHNpZWJ6aWciIH0sCisgICAgICAgICAgICB7ICI4OCIsICJhY2h0dW5kYWNodHppZyIgfSwKKyAgICAgICAgICAgIHsgIjEwMCIsICJodW5kZXJ0IiB9LAorICAgICAgICAgICAgeyAiMTA2IiwgImh1bmRlcnRzZWNocyIgfSwKKyAgICAgICAgICAgIHsgIjEyNyIsICJodW5kZXJ0c2llYmVudW5kendhbnppZyIgfSwKKyAgICAgICAgICAgIHsgIjIwMCIsICJ6d2VpaHVuZGVydCIgfSwKKyAgICAgICAgICAgIHsgIjU3OSIsICJmXHUwMGZjbmZodW5kZXJ0bmV1bnVuZHNpZWJ6aWciIH0sCisgICAgICAgICAgICB7ICIxLDAwMCIsICJ0YXVzZW5kIiB9LAorICAgICAgICAgICAgeyAiMiwwMDAiLCAiendlaXRhdXNlbmQiIH0sCisgICAgICAgICAgICB7ICIzLDAwNCIsICJkcmVpdGF1c2VuZHZpZXIiIH0sCisgICAgICAgICAgICB7ICI0LDU2NyIsICJ2aWVydGF1c2VuZGZcdTAwZmNuZmh1bmRlcnRzaWViZW51bmRzZWNoemlnIiB9LAorICAgICAgICAgICAgeyAiMTUsOTQzIiwgImZcdTAwZmNuZnplaG50YXVzZW5kbmV1bmh1bmRlcnRkcmVpdW5kdmllcnppZyIgfSwKKyAgICAgICAgICAgIHsgIjIsMzQ1LDY3OCIsICJ6d2VpIE1pbGxpb25lbiBkcmVpaHVuZGVydGZcdTAwZmNuZnVuZHZpZXJ6aWd0YXVzZW5kIgorICAgICAgICAgICAgICArICJzZWNoc2h1bmRlcnRhY2h0dW5kc2llYnppZyIgfQorICAgICAgICB9OworCisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCB0cnVlKTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0TGVuaWVudFBhcnNlTW9kZSh0cnVlKTsKKyAgICAgICAgU3RyaW5nW11bXSBscFRlc3REYXRhID0geworICAgICAgICAgICAgeyAiZWluIFRhdXNlbmQgc2VjaHMgSHVuZGVydCBmdWVuZnVuZGRyZWlzc2lnIiwgIjEsNjM1IiB9CisgICAgICAgIH07CisgICAgICAgIGRvTGVuaWVudFBhcnNlVGVzdChmb3JtYXR0ZXIsIGxwVGVzdERhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYSBzaW1wbGUgc3BvdCBjaGVjayBvbiB0aGUgVGhhaSBzcGVsbG91dCBydWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUaGFpU3BlbGxvdXQoKSB7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChuZXcgTG9jYWxlKCJ0aCIsICJUSCIsICIiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQuU1BFTExPVVQpOworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICAgICAgeyAiMCIsICJcdTBlMjhcdTBlMzlcdTBlMTlcdTBlMjJcdTBlNGMiIH0sCisgICAgICAgICAgICB7ICIxIiwgIlx1MGUyYlx1MGUxOVx1MGUzNlx1MGU0OFx1MGUwNyIgfSwKKyAgICAgICAgICAgIHsgIjEwIiwgIlx1MGUyYVx1MGUzNFx1MGUxYSIgfSwKKyAgICAgICAgICAgIHsgIjExIiwgIlx1MGUyYVx1MGUzNFx1MGUxYVx1MGU0MFx1MGUyZFx1MGU0N1x1MGUxNCIgfSwKKyAgICAgICAgICAgIHsgIjIxIiwgIlx1MGUyMlx1MGUzNVx1MGU0OFx1MGUyYVx1MGUzNFx1MGUxYVx1MGU0MFx1MGUyZFx1MGU0N1x1MGUxNCIgfSwKKyAgICAgICAgICAgIHsgIjEwMSIsICJcdTBlMmJcdTBlMTlcdTBlMzZcdTBlNDhcdTBlMDdcdTBlMjNcdTBlNDlcdTBlMmRcdTBlMjJcdTBlMmJcdTBlMTlcdTBlMzZcdTBlNDhcdTBlMDciIH0sCisgICAgICAgICAgICB7ICIxLjIzNCIsICJcdTBlMmJcdTBlMTlcdTBlMzZcdTBlNDhcdTBlMDdcdTBlMDhcdTBlMzhcdTBlMTRcdTBlMmFcdTBlMmRcdTBlMDdcdTBlMmFcdTBlMzJcdTBlMjFcdTBlMmFcdTBlMzVcdTBlNDgiIH0sCisgICAgICAgICAgICB7ICIyMS40NSIsICJcdTBlMjJcdTBlMzVcdTBlNDhcdTBlMmFcdTBlMzRcdTBlMWFcdTBlNDBcdTBlMmRcdTBlNDdcdTBlMTRcdTBlMDhcdTBlMzhcdTBlMTRcdTBlMmFcdTBlMzVcdTBlNDhcdTBlMmJcdTBlNDlcdTBlMzIiIH0sCisgICAgICAgICAgICB7ICIyMi40NSIsICJcdTBlMjJcdTBlMzVcdTBlNDhcdTBlMmFcdTBlMzRcdTBlMWFcdTBlMmFcdTBlMmRcdTBlMDdcdTBlMDhcdTBlMzhcdTBlMTRcdTBlMmFcdTBlMzVcdTBlNDhcdTBlMmJcdTBlNDlcdTBlMzIiIH0sCisgICAgICAgICAgICB7ICIyMy40NSIsICJcdTBlMjJcdTBlMzVcdTBlNDhcdTBlMmFcdTBlMzRcdTBlMWFcdTBlMmFcdTBlMzJcdTBlMjFcdTBlMDhcdTBlMzhcdTBlMTRcdTBlMmFcdTBlMzVcdTBlNDhcdTBlMmJcdTBlNDlcdTBlMzIiIH0sCisgICAgICAgICAgICB7ICIxMjMuNDUiLCAiXHUwZTJiXHUwZTE5XHUwZTM2XHUwZTQ4XHUwZTA3XHUwZTIzXHUwZTQ5XHUwZTJkXHUwZTIyXHUwZTIyXHUwZTM1XHUwZTQ4XHUwZTJhXHUwZTM0XHUwZTFhXHUwZTJhXHUwZTMyXHUwZTIxXHUwZTA4XHUwZTM4XHUwZTE0XHUwZTJhXHUwZTM1XHUwZTQ4XHUwZTJiXHUwZTQ5XHUwZTMyIiB9LAorICAgICAgICAgICAgeyAiMTIsMzQ1LjY3OCIsICJcdTBFMkJcdTBFMTlcdTBFMzZcdTBFNDhcdTBFMDdcdTBFMkJcdTBFMjFcdTBFMzdcdTBFNDhcdTBFMTlcdTBFMkFcdTBFMkRcdTBFMDdcdTBFMUVcdTBFMzFcdTBFMTlcdTBFMkFcdTBFMzJcdTBFMjFcdTBFMjNcdTBFNDlcdTBFMkRcdTBFMjJcdTBFMkFcdTBFMzVcdTBFNDhcdTBFMkFcdTBFMzRcdTBFMUFcdTBFMkJcdTBFNDlcdTBFMzJcdTBFMDhcdTBFMzhcdTBFMTRcdTBFMkJcdTBFMDFcdTBFNDBcdTBFMDhcdTBFNDdcdTBFMTRcdTBFNDFcdTBFMUJcdTBFMTQiIH0sCisgICAgICAgIH07CisKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGEsIHRydWUpOworCisgICAgICAgIC8qCisgICAgICAgICAgZm9ybWF0dGVyLnNldExlbmllbnRQYXJzZU1vZGUodHJ1ZSk7CisgICAgICAgICAgU3RyaW5nW11bXSBscFRlc3REYXRhID0geworICAgICAgICAgIHsgImVpbiBUYXVzZW5kIHNlY2hzIEh1bmRlcnQgZnVlbmZ1bmRkcmVpc3NpZyIsICIxLDYzNSIgfQorICAgICAgICAgIH07CisgICAgICAgICAgZG9MZW5pZW50UGFyc2VUZXN0KGZvcm1hdHRlciwgbHBUZXN0RGF0YSk7CisgICAgICAgICovCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEZyYWN0aW9uYWxSdWxlU2V0KCkgeworCisKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciA9CisgICAgICAgICAgICBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGZyYWNSdWxlcywgTG9jYWxlLkVOR0xJU0gpOworCisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIwIiwgIjAiIH0sCisgICAgICAgICAgICB7ICIxIiwgIjEiIH0sCisgICAgICAgICAgICB7ICIxMCIsICIxMCIgfSwKKyAgICAgICAgICAgIHsgIi4xIiwgIjEvMTAiIH0sCisgICAgICAgICAgICB7ICIuMTEiLCAiMS85IiB9LAorICAgICAgICAgICAgeyAiLjEyNSIsICIxLzgiIH0sCisgICAgICAgICAgICB7ICIuMTQyOCIsICIxLzciIH0sCisgICAgICAgICAgICB7ICIuMTY2NyIsICIxLzYiIH0sCisgICAgICAgICAgICB7ICIuMiIsICIxLzUiIH0sCisgICAgICAgICAgICB7ICIuMjUiLCAiMS80IiB9LAorICAgICAgICAgICAgeyAiLjMzMyIsICIxLzMiIH0sCisgICAgICAgICAgICB7ICIuNSIsICIxLzIiIH0sCisgICAgICAgICAgICB7ICIxLjEiLCAiMSAxLzEwIiB9LAorICAgICAgICAgICAgeyAiMi4xMSIsICIyIDEvOSIgfSwKKyAgICAgICAgICAgIHsgIjMuMTI1IiwgIjMgMS84IiB9LAorICAgICAgICAgICAgeyAiNC4xNDI4IiwgIjQgMS83IiB9LAorICAgICAgICAgICAgeyAiNS4xNjY3IiwgIjUgMS82IiB9LAorICAgICAgICAgICAgeyAiNi4yIiwgIjYgMS81IiB9LAorICAgICAgICAgICAgeyAiNy4yNSIsICI3IDEvNCIgfSwKKyAgICAgICAgICAgIHsgIjguMzMzIiwgIjggMS8zIiB9LAorICAgICAgICAgICAgeyAiOS41IiwgIjkgMS8yIiB9LAorICAgICAgICAgICAgeyAiLjIyMjIiLCAiMi85IiB9LAorICAgICAgICAgICAgeyAiLjQ0NDQiLCAiNC85IiB9LAorICAgICAgICAgICAgeyAiLjU1NTUiLCAiNS85IiB9LAorICAgICAgICAgICAgeyAiMS4yODU2IiwgIjEgMi83IiB9CisgICAgICAgIH07CisgICAgICAgIGRvVGVzdChmb3JtYXR0ZXIsIHRlc3REYXRhLCBmYWxzZSk7IC8vIGV4YWN0IHZhbHVlcyBhcmVuJ3QgcGFyc2FibGUgZnJvbSBmcmFjdGlvbnMKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3dlZGlzaFNwZWxsb3V0KCkKKyAgICB7CisgICAgICAgIExvY2FsZSBsb2NhbGUgPSBuZXcgTG9jYWxlKCJzdiIsICIiLCAiIik7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGxvY2FsZSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhRGVmYXVsdCA9IHsKKyAgICAgICAgICAgIHsgIjEwMSIsICJldHRodW5kcmFcdTAwYWRlbiIgfSwKKyAgICAgICAgICAgIHsgIjEyMyIsICJldHRodW5kcmFcdTAwYWR0anVnb3RyZSIgfSwKKyAgICAgICAgICAgIHsgIjEsMDAxIiwgImV0dHVzZW4gZW4iIH0sCisgICAgICAgICAgICB7ICIxLDEwMCIsICJldHR1c2VuIGV0dGh1bmRyYSIgfSwKKyAgICAgICAgICAgIHsgIjEsMTAxIiwgImV0dHVzZW4gZXR0aHVuZHJhXHUwMGFkZW4iIH0sCisgICAgICAgICAgICB7ICIxLDIzNCIsICJldHR1c2VuIHR2XHUwMGU1aHVuZHJhXHUwMGFkdHJldHRpb2Z5cmEiIH0sCisgICAgICAgICAgICB7ICIxMCwwMDEiLCAidGlvXHUwMGFkdHVzZW4gZW4iIH0sCisgICAgICAgICAgICB7ICIxMSwwMDAiLCAiZWx2YVx1MDBhZHR1c2VuIiB9LAorICAgICAgICAgICAgeyAiMTIsMDAwIiwgInRvbHZcdTAwYWR0dXNlbiIgfSwKKyAgICAgICAgICAgIHsgIjIwLDAwMCIsICJ0anVnb1x1MDBhZHR1c2VuIiB9LAorICAgICAgICAgICAgeyAiMjEsMDAwIiwgInRqdWdvZW5cdTAwYWR0dXNlbiIgfSwKKyAgICAgICAgICAgIHsgIjIxLDAwMSIsICJ0anVnb2VuXHUwMGFkdHVzZW4gZW4iIH0sCisgICAgICAgICAgICB7ICIyMDAsMDAwIiwgInR2XHUwMGU1aHVuZHJhXHUwMGFkdHVzZW4iIH0sCisgICAgICAgICAgICB7ICIyMDEsMDAwIiwgInR2XHUwMGU1aHVuZHJhXHUwMGFkZW5cdTAwYWR0dXNlbiIgfSwKKyAgICAgICAgICAgIHsgIjIwMCwyMDAiLCAidHZcdTAwZTVodW5kcmFcdTAwYWR0dXNlbiB0dlx1MDBlNWh1bmRyYSIgfSwKKyAgICAgICAgICAgIHsgIjIsMDAyLDAwMCIsICJ0dlx1MDBlNSBtaWxqb25lciB0dlx1MDBlNVx1MDBhZHR1c2VuIiB9LAorICAgICAgICAgICAgeyAiMTIsMzQ1LDY3OCIsICJ0b2x2IG1pbGpvbmVyIHRyZWh1bmRyYVx1MDBhZGZ5cnRpb2ZlbVx1MDBhZHR1c2VuIHNleGh1bmRyYVx1MDBhZHNqdXR0aW9cdTAwZTV0dGEiIH0sCisgICAgICAgICAgICB7ICIxMjMsNDU2Ljc4OSIsICJldHRodW5kcmFcdTAwYWR0anVnb3RyZVx1MDBhZHR1c2VuIGZ5cmFodW5kcmFcdTAwYWRmZW10aW9zZXgga29tbWEgc2p1IFx1MDBlNXR0YSBuaW8iIH0sCisgICAgICAgICAgICB7ICItMTIsMzQ1LjY3OCIsICJtaW51cyB0b2x2XHUwMGFkdHVzZW4gdHJlaHVuZHJhXHUwMGFkZnlydGlvZmVtIGtvbW1hIHNleCBzanUgXHUwMGU1dHRhIiB9CisgICAgICAgIH07CisKKyAgICAgICAgbG9nbG4oInRlc3RpbmcgZGVmYXVsdCBydWxlcyIpOworICAgICAgICBkb1Rlc3QoZm9ybWF0dGVyLCB0ZXN0RGF0YURlZmF1bHQsIHRydWUpOworCisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGFOZXV0cnVtID0geworICAgICAgICAgICAgeyAiMTAxIiwgImV0dGh1bmRyYVx1MDBhZGV0dCIgfSwKKyAgICAgICAgICAgIHsgIjEsMDAxIiwgImV0dHVzZW4gZXR0IiB9LAorICAgICAgICAgICAgeyAiMSwxMDEiLCAiZXR0dXNlbiBldHRodW5kcmFcdTAwYWRldHQiIH0sCisgICAgICAgICAgICB7ICIxMCwwMDEiLCAidGlvXHUwMGFkdHVzZW4gZXR0IiB9LAorICAgICAgICAgICAgeyAiMjEsMDAxIiwgInRqdWdvZW5cdTAwYWR0dXNlbiBldHQiIH0KKyAgICAgICAgfTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0RGVmYXVsdFJ1bGVTZXQoIiVuZXV0cnVtIik7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIG5ldXRydW0gcnVsZXMiKTsKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGFOZXV0cnVtLCB0cnVlKTsKKworICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhWWVhciA9IHsKKyAgICAgICAgICAgIHsgIjEwMSIsICJldHRodW5kcmFcdTAwYWRldHQiIH0sCisgICAgICAgICAgICB7ICI5MDAiLCAibmlvaHVuZHJhIiB9LAorICAgICAgICAgICAgeyAiMSwwMDEiLCAidGlvaHVuZHJhXHUwMGFkZXR0IiB9LAorICAgICAgICAgICAgeyAiMSwxMDAiLCAiZWx2YWh1bmRyYSIgfSwKKyAgICAgICAgICAgIHsgIjEsMTAxIiwgImVsdmFodW5kcmFcdTAwYWRldHQiIH0sCisgICAgICAgICAgICB7ICIxLDIzNCIsICJ0b2x2aHVuZHJhXHUwMGFkdHJldHRpb2Z5cmEiIH0sCisgICAgICAgICAgICB7ICIyLDAwMSIsICJ0anVnb2h1bmRyYVx1MDBhZGV0dCIgfSwKKyAgICAgICAgICAgIHsgIjEwLDAwMSIsICJ0aW9cdTAwYWR0dXNlbiBldHQiIH0KKyAgICAgICAgfTsKKworICAgICAgICBmb3JtYXR0ZXIuc2V0RGVmYXVsdFJ1bGVTZXQoIiV5ZWFyIik7CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIHllYXIgcnVsZXMiKTsKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGFZZWFyLCB0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmlnTnVtYmVycygpIHsKKyAgICAgICAgQmlnSW50ZWdlciBiaWdJID0gbmV3IEJpZ0ludGVnZXIoIjEyMzQ1Njc4OTAiLCAxMCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmbXQgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFJ1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCk7CisgICAgICAgIGZtdC5mb3JtYXQoYmlnSSwgYnVmLCBudWxsKTsKKyAgICAgICAgbG9nbG4oImJpZyBpbnQ6ICIgKyBidWYudG9TdHJpbmcoKSk7CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgIEJpZ0RlY2ltYWwgYmlnRCA9IG5ldyBCaWdEZWNpbWFsKGJpZ0kpOworICAgICAgICBmbXQuZm9ybWF0KGJpZ0QsIGJ1ZiwgbnVsbCk7CisgICAgICAgIGxvZ2xuKCJiaWcgZGVjOiAiICsgYnVmLnRvU3RyaW5nKCkpOworLy8jZW5kaWYKKyAgICB9CisKKyAgcHVibGljIHZvaWQgVGVzdFRyYWlsaW5nU2VtaWNvbG9uKCkgeworICAgIFN0cmluZyB0aGFpUnVsZXMgPSAKKyAgICAgICAgIiVkZWZhdWx0OlxuIiArCisgICAgICAgICIgIC14OiBcdTBlMjVcdTBlMWE+PjtcbiIgKworICAgICAgICAiICB4Lng6IDw8XHUwZTA4XHUwZTM4XHUwZTE0Pj4+O1xuIiArCisgICAgICAgICIgIFx1MGUyOFx1MGUzOVx1MGUxOVx1MGUyMlx1MGU0YzsgXHUwZTJiXHUwZTE5XHUwZTM2XHUwZTQ4XHUwZTA3OyBcdTBlMmFcdTBlMmRcdTBlMDc7IFx1MGUyYVx1MGUzMlx1MGUyMTtcbiIgKworICAgICAgICAiICBcdTBlMmFcdTBlMzVcdTBlNDg7IFx1MGUyYlx1MGU0OVx1MGUzMjsgXHUwZTJiXHUwZTAxOyBcdTBlNDBcdTBlMDhcdTBlNDdcdTBlMTQ7IFx1MGU0MVx1MGUxYlx1MGUxNDtcbiIgKworICAgICAgICAiICBcdTBlNDBcdTBlMDFcdTBlNDlcdTBlMzI7IFx1MGUyYVx1MGUzNFx1MGUxYTsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTQwXHUwZTJkXHUwZTQ3XHUwZTE0O1xuIiArCisgICAgICAgICIgIFx1MGUyYVx1MGUzNFx1MGUxYVx1MGUyYVx1MGUyZFx1MGUwNzsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTJhXHUwZTMyXHUwZTIxO1xuIiArCisgICAgICAgICIgIFx1MGUyYVx1MGUzNFx1MGUxYVx1MGUyYVx1MGUzNVx1MGU0ODsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTJiXHUwZTQ5XHUwZTMyO1xuIiArCisgICAgICAgICIgIFx1MGUyYVx1MGUzNFx1MGUxYVx1MGUyYlx1MGUwMTsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTQwXHUwZTA4XHUwZTQ3XHUwZTE0O1xuIiArCisgICAgICAgICIgIFx1MGUyYVx1MGUzNFx1MGUxYVx1MGU0MVx1MGUxYlx1MGUxNDsgXHUwZTJhXHUwZTM0XHUwZTFhXHUwZTQwXHUwZTAxXHUwZTQ5XHUwZTMyO1xuIiArCisgICAgICAgICIgIDIwOiBcdTBlMjJcdTBlMzVcdTBlNDhcdTBlMmFcdTBlMzRcdTBlMWFbPiUlYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAiICAzMDogXHUwZTJhXHUwZTMyXHUwZTIxXHUwZTJhXHUwZTM0XHUwZTFhWz4lJWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgIiAgNDA6IFx1MGUyYVx1MGUzNVx1MGU0OFx1MGUyYVx1MGUzNFx1MGUxYVs+JSVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICIgIDUwOiBcdTBlMmJcdTBlNDlcdTBlMzJcdTBlMmFcdTBlMzRcdTBlMWFbPiUlYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAiICA2MDogXHUwZTJiXHUwZTAxXHUwZTJhXHUwZTM0XHUwZTFhWz4lJWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgIiAgNzA6IFx1MGU0MFx1MGUwOFx1MGU0N1x1MGUxNFx1MGUyYVx1MGUzNFx1MGUxYVs+JSVhbHQtb25lcz5dO1xuIiArCisgICAgICAgICIgIDgwOiBcdTBlNDFcdTBlMWJcdTBlMTRcdTBlMmFcdTBlMzRcdTBlMWFbPiUlYWx0LW9uZXM+XTtcbiIgKworICAgICAgICAiICA5MDogXHUwZTQwXHUwZTAxXHUwZTQ5XHUwZTMyXHUwZTJhXHUwZTM0XHUwZTFhWz4lJWFsdC1vbmVzPl07XG4iICsKKyAgICAgICAgIiAgMTAwOiA8PFx1MGUyM1x1MGU0OVx1MGUyZFx1MGUyMls+Pl07XG4iICsKKyAgICAgICAgIiAgMTAwMDogPDxcdTBlMWVcdTBlMzFcdTBlMTlbPj5dO1xuIiArCisgICAgICAgICIgIDEwMDAwOiA8PFx1MGUyYlx1MGUyMVx1MGUzN1x1MGU0OFx1MGUxOVs+Pl07XG4iICsKKyAgICAgICAgIiAgMTAwMDAwOiA8PFx1MGU0MVx1MGUyYVx1MGUxOVs+Pl07XG4iICsKKyAgICAgICAgIiAgMSwwMDAsMDAwOiA8PFx1MGUyNVx1MGU0OVx1MGUzMlx1MGUxOVs+Pl07XG4iICsKKyAgICAgICAgIiAgMSwwMDAsMDAwLDAwMDogPDxcdTBlMWVcdTBlMzFcdTBlMTlcdTBlMjVcdTBlNDlcdTBlMzJcdTBlMTlbPj5dO1xuIiArCisgICAgICAgICIgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PFx1MGUyNVx1MGU0OVx1MGUzMlx1MGUxOVx1MGUyNVx1MGU0OVx1MGUzMlx1MGUxOVs+Pl07XG4iICsKKyAgICAgICAgIiAgMSwwMDAsMDAwLDAwMCwwMDAsMDAwOiA9IywjIzA9O1xuIiArCisgICAgICAgICIlJWFsdC1vbmVzOlxuIiArCisgICAgICAgICIgIFx1MGUyOFx1MGUzOVx1MGUxOVx1MGUyMlx1MGU0YztcbiIgKworICAgICAgICAiICBcdTBlNDBcdTBlMmRcdTBlNDdcdTBlMTQ7XG4iICsKKyAgICAgICAgIiAgPSVkZWZhdWx0PTtcbiA7IDs7ICI7CisKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcgorICAgICAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KHRoYWlSdWxlcywgbmV3IExvY2FsZSgidGgiLCAiVEgiLCAiIikpOworCisgICAgICAgIFN0cmluZ1tdW10gdGVzdERhdGEgPSB7CisgICAgICAgICAgICB7ICIwIiwgIlx1MGUyOFx1MGUzOVx1MGUxOVx1MGUyMlx1MGU0YyIgfSwKKyAgICAgICAgICAgIHsgIjEiLCAiXHUwZTJiXHUwZTE5XHUwZTM2XHUwZTQ4XHUwZTA3IiB9LAorICAgICAgICAgICAgeyAiMTIzLjQ1IiwgIlx1MGUyYlx1MGUxOVx1MGUzNlx1MGU0OFx1MGUwN1x1MGUyM1x1MGU0OVx1MGUyZFx1MGUyMlx1MGUyMlx1MGUzNVx1MGU0OFx1MGUyYVx1MGUzNFx1MGUxYVx1MGUyYVx1MGUzMlx1MGUyMVx1MGUwOFx1MGUzOFx1MGUxNFx1MGUyYVx1MGUzNVx1MGU0OFx1MGUyYlx1MGU0OVx1MGUzMiIgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZG9UZXN0KGZvcm1hdHRlciwgdGVzdERhdGEsIHRydWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTbWFsbFZhbHVlcygpIHsKKyAgICBTdHJpbmdbXVtdIHRlc3REYXRhID0geworICAgICAgICB7ICIwLjAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjAuMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gb25lIiB9LAorICAgICAgICB7ICIwLjAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjAuMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gb25lIiB9LAorICAgICAgICB7ICIwLjAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjAuMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gb25lIiB9LAorICAgICAgICB7ICIwLjAwMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjAuMDAwMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gb25lIiB9LAorICAgICAgICB7ICIwLjAwMDAwMDAwMDAwMDAwMSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAxIiwgInRlbiBtaWxsaW9uIHBvaW50IHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMSIsICJ0ZW4gbWlsbGlvbiBwb2ludCB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDEiLCAidGVuIG1pbGxpb24gcG9pbnQgemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDAxIiwgInRlbiBtaWxsaW9uIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDAwMSIsICJ0ZW4gbWlsbGlvbiBwb2ludCB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDAwMDEiLCAidGVuIG1pbGxpb24gcG9pbnQgemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUiIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAuMDAwMDAwMDAyIiwgInRlbiBtaWxsaW9uIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB0d28iIH0sCisgICAgICAgIHsgIjEwLDAwMCwwMDAiLCAidGVuIG1pbGxpb24iIH0sCisgICAgICAgIHsgIjEsMjM0LDU2Nyw4OTAuMDk4NzY1NCIsICJvbmUgYmlsbGlvbiwgdHdvIGh1bmRyZWQgYW5kIHRoaXJ0eS1mb3VyIG1pbGxpb24sIGZpdmUgaHVuZHJlZCBhbmQgc2l4dHktc2V2ZW4gdGhvdXNhbmQsIGVpZ2h0IGh1bmRyZWQgYW5kIG5pbmV0eSBwb2ludCB6ZXJvIG5pbmUgZWlnaHQgc2V2ZW4gc2l4IGZpdmUgZm91ciIgfSwKKyAgICAgICAgeyAiMTIzLDQ1Niw3ODkuOTg3NjU0MyIsICJvbmUgaHVuZHJlZCBhbmQgdHdlbnR5LXRocmVlIG1pbGxpb24sIGZvdXIgaHVuZHJlZCBhbmQgZmlmdHktc2l4IHRob3VzYW5kLCBzZXZlbiBodW5kcmVkIGFuZCBlaWdodHktbmluZSBwb2ludCBuaW5lIGVpZ2h0IHNldmVuIHNpeCBmaXZlIGZvdXIgdGhyZWUiIH0sCisgICAgICAgIHsgIjEyLDM0NSw2NzguODc2NTQzMjEiLCAidHdlbHZlIG1pbGxpb24sIHRocmVlIGh1bmRyZWQgYW5kIGZvcnR5LWZpdmUgdGhvdXNhbmQsIHNpeCBodW5kcmVkIGFuZCBzZXZlbnR5LWVpZ2h0IHBvaW50IGVpZ2h0IHNldmVuIHNpeCBmaXZlIGZvdXIgdGhyZWUgdHdvIG9uZSIgfSwKKyAgICAgICAgeyAiMSwyMzQsNTY3Ljc2NTQzMjEiLCAib25lIG1pbGxpb24sIHR3byBodW5kcmVkIGFuZCB0aGlydHktZm91ciB0aG91c2FuZCwgZml2ZSBodW5kcmVkIGFuZCBzaXh0eS1zZXZlbiBwb2ludCBzZXZlbiBzaXggZml2ZSBmb3VyIHRocmVlIHR3byBvbmUiIH0sCisgICAgICAgIHsgIjEyMyw0NTYuNjU0MzIxIiwgIm9uZSBodW5kcmVkIGFuZCB0d2VudHktdGhyZWUgdGhvdXNhbmQsIGZvdXIgaHVuZHJlZCBhbmQgZmlmdHktc2l4IHBvaW50IHNpeCBmaXZlIGZvdXIgdGhyZWUgdHdvIG9uZSIgfSwKKyAgICAgICAgeyAiMTIsMzQ1LjU0MzIxIiwgInR3ZWx2ZSB0aG91c2FuZCB0aHJlZSBodW5kcmVkIGFuZCBmb3J0eS1maXZlIHBvaW50IGZpdmUgZm91ciB0aHJlZSB0d28gb25lIiB9LAorICAgICAgICB7ICIxLDIzNC40MzIxIiwgIm9uZSB0aG91c2FuZCB0d28gaHVuZHJlZCBhbmQgdGhpcnR5LWZvdXIgcG9pbnQgZm91ciB0aHJlZSB0d28gb25lIiB9LAorICAgICAgICB7ICIxMjMuMzIxIiwgIm9uZSBodW5kcmVkIGFuZCB0d2VudHktdGhyZWUgcG9pbnQgdGhyZWUgdHdvIG9uZSIgfSwKKyAgICAgICAgeyAiMC4wMDAwMDAwMDExNzU0OTQ0IiwgInplcm8gcG9pbnQgemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIHplcm8gemVybyB6ZXJvIG9uZSBvbmUgc2V2ZW4gZml2ZSBmb3VyIG5pbmUgZm91ciBmb3VyIiB9LAorICAgICAgICB7ICIwLjAwMDAwMTE3NTQ5NDM1MSIsICJ6ZXJvIHBvaW50IHplcm8gemVybyB6ZXJvIHplcm8gemVybyBvbmUgb25lIHNldmVuIGZpdmUgZm91ciBuaW5lIGZvdXIgdGhyZWUgZml2ZSBvbmUiIH0sCisgICAgfTsKKworICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIKKyAgICAgICAgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KExvY2FsZS5VUywgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICBkb1Rlc3QoZm9ybWF0dGVyLCB0ZXN0RGF0YSwgdHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJ1bGVTZXREaXNwbGF5TmFtZSgpIHsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KFVMb2NhbGUuVVMpOworICAgICAgICBTdHJpbmdbXVtdIGxvY2FsaXphdGlvbnMgPSBuZXcgU3RyaW5nW11bXSB7CisgICAgICAgICAgICAvKiBwdWJsaWMgcnVsZSBzZXRzKi8KKyAgICAgICAgICAgIHsiJXNpbXBsaWZpZWQiLCAiJWRlZmF1bHQiLCAiJW9yZGluYWwifSwKKyAgICAgICAgICAgIC8qIGRpc3BsYXkgbmFtZXMgaW4gImVuX1VTIiBsb2NhbGUqLworICAgICAgICAgICAgeyJlbl9VUyIsICJTaW1wbGlmaWVkIiwgIkRlZmF1bHQiLCAiT3JkaW5hbCJ9LAorICAgICAgICAgICAgLyogZGlzcGxheSBuYW1lcyBpbiAiemhfSGFucyIgbG9jYWxlKi8KKyAgICAgICAgICAgIHsiemhfSGFucyIsICJcdTdCODBcdTUzMTYiLCAiXHU3RjNBXHU3NzAxIiwgICJcdTVFOEZcdTUyMTcifSwKKyAgICAgICAgICAgIC8qIGRpc3BsYXkgbmFtZXMgaW4gYSBmYWtlIGxvY2FsZSovCisgICAgICAgICAgICB7ImZvb19CYXJfQkFaIiwgIlNpbXBsaWZpZWQiLCAiRGVmYXVsdCIsICJPcmRpbmFsIn0KKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIC8vQ29uc3RydWN0IFJ1bGVCYXNlZE51bWJlckZvcm1hdCBieSBydWxlIHNldHMgYW5kIGxvY2FsaXphdGlvbnMgbGlzdAorICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyCisgICAgICAgICAgICA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQodWtFbmdsaXNoLCBsb2NhbGl6YXRpb25zLCBVTG9jYWxlLlVTKTsKKyAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGYyPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KHVrRW5nbGlzaCwgbG9jYWxpemF0aW9ucyk7CisgICAgICAgIGFzc2VydFRydWUoIkNoZWNrIHRoZSB0d28gZm9ybWF0dGVycycgZXF1YWxpdHkiLCBmb3JtYXR0ZXIuZXF1YWxzKGYyKSk7ICAgICAgICAKKworICAgICAgICAvL2dldCBkaXNwbGF5TmFtZSBieSBuYW1lCisgICAgICAgIFN0cmluZ1tdIHJ1bGVTZXROYW1lcyA9IGZvcm1hdHRlci5nZXRSdWxlU2V0TmFtZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHJ1bGVTZXROYW1lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbG9nbG4oIlJ1bGUgc2V0IG5hbWU6ICIgKyBydWxlU2V0TmFtZXNbaV0pOworICAgICAgICAgICAgU3RyaW5nIFJTTmFtZV9kZWZMb2MgPSBmb3JtYXR0ZXIuZ2V0UnVsZVNldERpc3BsYXlOYW1lKHJ1bGVTZXROYW1lc1tpXSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkRpc3BsYXkgbmFtZSBpbiBkZWZhdWx0IGxvY2FsZSIsIGxvY2FsaXphdGlvbnNbMV1baSsxXSwgUlNOYW1lX2RlZkxvYyk7CisgICAgICAgICAgICBTdHJpbmcgUlNOYW1lX2xvYyA9IGZvcm1hdHRlci5nZXRSdWxlU2V0RGlzcGxheU5hbWUocnVsZVNldE5hbWVzW2ldLCBVTG9jYWxlLkNISU5BKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiRGlzcGxheSBuYW1lIGluIENoaW5lc2UiLCBsb2NhbGl6YXRpb25zWzJdW2krMV0sIFJTTmFtZV9sb2MpOworICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgIC8vIGdldERlZmF1bHRSdWxlU2V0TmFtZQorICAgICAgICBTdHJpbmcgZGVmYXVsdFJTID0gZm9ybWF0dGVyLmdldERlZmF1bHRSdWxlU2V0TmFtZSgpOworICAgICAgICAvL3lvdSBrbm93IHRoYXQgdGhlIGRlZmF1bHQgcnVsZSBzZXQgaXMgJXNpbXBsaWZpZWQgYWNjb3JkaW5nIHRvIHJ1bGUgc2V0cyBzdHJpbmcgdWtFbmdsaXNoCisgICAgICAgIGFzc2VydEVxdWFscygiZ2V0RGVmYXVsdFJ1bGVTZXROYW1lIiwgIiVzaW1wbGlmaWVkIiwgZGVmYXVsdFJTKTsKKyAgICAgICAgCisgICAgICAgIC8vZ2V0IGxvY2FsZXMgb2YgbG9jYWxpemF0aW9ucworICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IGZvcm1hdHRlci5nZXRSdWxlU2V0RGlzcGxheU5hbWVMb2NhbGVzKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxsb2NhbGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBsb2dsbihsb2NhbGVzW2ldLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vZ2V0IGRpc3BsYXlOYW1lcworICAgICAgICBTdHJpbmdbXSBSU05hbWVzX2RlZkxvYyA9IGZvcm1hdHRlci5nZXRSdWxlU2V0RGlzcGxheU5hbWVzKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxSU05hbWVzX2RlZkxvYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRSdWxlU2V0RGlzcGxheU5hbWVzIGluIGRlZmF1bHQgbG9jYWxlIiwgbG9jYWxpemF0aW9uc1sxXVtpKzFdLCBSU05hbWVzX2RlZkxvY1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIFJTTmFtZXNfbG9jID0gZm9ybWF0dGVyLmdldFJ1bGVTZXREaXNwbGF5TmFtZXMoVUxvY2FsZS5VSyk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxSU05hbWVzX2xvYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRSdWxlU2V0RGlzcGxheU5hbWVzIGluIEVuZ2xpc2giLCBsb2NhbGl6YXRpb25zWzFdW2krMV0sIFJTTmFtZXNfbG9jW2ldKTsKKyAgICAgICAgfSAgICAKKyAgICAgICAgCisgICAgICAgIFJTTmFtZXNfbG9jID0gZm9ybWF0dGVyLmdldFJ1bGVTZXREaXNwbGF5TmFtZXMoVUxvY2FsZS5DSElOQSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxSU05hbWVzX2xvYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRSdWxlU2V0RGlzcGxheU5hbWVzIGluIENoaW5lc2UiLCBsb2NhbGl6YXRpb25zWzJdW2krMV0sIFJTTmFtZXNfbG9jW2ldKTsKKyAgICAgICAgfSAgICAgICAgCisKKyAgICAgICAgUlNOYW1lc19sb2MgPSBmb3JtYXR0ZXIuZ2V0UnVsZVNldERpc3BsYXlOYW1lcyhuZXcgVUxvY2FsZSgiZm9vX0Jhcl9CQVoiKSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxSU05hbWVzX2xvYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRSdWxlU2V0RGlzcGxheU5hbWVzIGluIGZha2UgbG9jYWxlIiwgbG9jYWxpemF0aW9uc1szXVtpKzFdLCBSU05hbWVzX2xvY1tpXSk7CisgICAgICAgIH0gICAgICAgICAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RBbGxMb2NhbGVzKCkgeworCVN0cmluZ0J1ZmZlciBlcnJvcnMgPSBudWxsOworCVVMb2NhbGVbXSBsb2NhbGVzID0gVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisJUmFuZG9tIHIgPSBjcmVhdGVSYW5kb20oKTsKKwlTdHJpbmdbXSBuYW1lcyA9IHsKKwkgICAgIiAoc3BlbGxvdXQpICIsCisJICAgICIgKG9yZGluYWwpICAiLAorCSAgICAiIChkdXJhdGlvbikgIgorCX07CisJZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisJICAgIFVMb2NhbGUgbG9jID0gbG9jYWxlc1tpXTsKKwkgICAgZm9yIChpbnQgaiA9IDA7IGogPCAzOyArK2opIHsKKwkJdHJ5IHsKKwkJICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmbXQgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGxvYywgaisxKTsKKwkJICAgIGZsb2F0IG4gPSAoKGludCkoci5uZXh0SW50KDEwMDApIC0gMzAwKSkgLyAxNmY7CisJCSAgICBTdHJpbmcgcyA9IGZtdC5mb3JtYXQobik7CisJCSAgICBpZiAoaXNWZXJib3NlKCkpIHsKKwkJCWxvZ2xuKGxvYy5nZXROYW1lKCkgKyBuYW1lc1tqXSArICJzdWNjZXNzOiAiICsgbiArICIgLT4gIiArIHMpOworCQkgICAgfQorCQl9CisJCWNhdGNoIChFeGNlcHRpb24gZSkgeworCQkgICAgU3RyaW5nIG1zZyA9IGxvYy5nZXROYW1lKCkgKyBuYW1lc1tqXSArICJFUlJPUjoiICsgZS5nZXRNZXNzYWdlKCk7CisJCSAgICBpZiAoaXNWZXJib3NlKCkpIHsKKwkJCWxvZ2xuKG1zZyk7CisJCSAgICB9CisJCSAgICBpZiAoZXJyb3JzID09IG51bGwpIHsKKwkJCWVycm9ycyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKwkJICAgIH0KKwkJICAgIGVycm9ycy5hcHBlbmQoIlxuIiArIG1zZyk7CisJCX0KKwkgICAgfQorCX0KKwlpZiAoZXJyb3JzICE9IG51bGwpIHsKKwkgICAgZXJybG4oZXJyb3JzLnRvU3RyaW5nKCkpOworCX0KKyAgICB9CisKKyAgICB2b2lkIGRvVGVzdChSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLCBTdHJpbmdbXVtdIHRlc3REYXRhLAorICAgICAgICAgICAgICAgIGJvb2xlYW4gdGVzdFBhcnNpbmcpIHsKKyAgICAvLyAgICAgICAgTnVtYmVyRm9ybWF0IGRlY0ZtdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIE51bWJlckZvcm1hdCBkZWNGbXQgPSBuZXcgRGVjaW1hbEZvcm1hdCgiIywjIyMuIyMjIyMjIyMjIyMjIyMjIyIpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0RGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIFN0cmluZyBudW1iZXIgPSB0ZXN0RGF0YVtpXVswXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWRXb3JkcyA9IHRlc3REYXRhW2ldWzFdOworICAgICAgICAgICAgICAgIGxvZ2xuKCJ0ZXN0WyIgKyBpICsgIl0gbnVtYmVyOiAiICsgbnVtYmVyICsgIiB0YXJnZXQ6ICIgKyBleHBlY3RlZFdvcmRzKTsKKyAgICAgICAgICAgICAgICBOdW1iZXIgbnVtID0gZGVjRm10LnBhcnNlKG51bWJlcik7CisgICAgICAgICAgICAgICAgU3RyaW5nIGFjdHVhbFdvcmRzID0gZm9ybWF0dGVyLmZvcm1hdChudW0pOworCisgICAgICAgICAgICAgICAgaWYgKCFhY3R1YWxXb3Jkcy5lcXVhbHMoZXhwZWN0ZWRXb3JkcykpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlNwb3QgY2hlY2sgZm9ybWF0IGZhaWxlZDogZm9yICIgKyBudW1iZXIgKyAiLCBleHBlY3RlZFxuICAgICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBleHBlY3RlZFdvcmRzICsgIiwgYnV0IGdvdFxuICAgICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxXb3Jkcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRlc3RQYXJzaW5nKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhY3R1YWxOdW1iZXIgPSBkZWNGbXQuZm9ybWF0KGZvcm1hdHRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGFyc2UoYWN0dWFsV29yZHMpKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdHVhbE51bWJlci5lcXVhbHMobnVtYmVyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlNwb3QgY2hlY2sgcGFyc2UgZmFpbGVkOiBmb3IgIiArIGFjdHVhbFdvcmRzICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBudW1iZXIgKyAiLCBidXQgZ290ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsTnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICBlcnJsbigiVGVzdCBmYWlsZWQgd2l0aCBleGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBkb0xlbmllbnRQYXJzZVRlc3QoUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXVtdIHRlc3REYXRhKSB7CisgICAgICAgIE51bWJlckZvcm1hdCBkZWNGbXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0RGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIFN0cmluZyB3b3JkcyA9IHRlc3REYXRhW2ldWzBdOworICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZE51bWJlciA9IHRlc3REYXRhW2ldWzFdOworICAgICAgICAgICAgICAgIFN0cmluZyBhY3R1YWxOdW1iZXIgPSBkZWNGbXQuZm9ybWF0KGZvcm1hdHRlci5wYXJzZSh3b3JkcykpOworCisgICAgICAgICAgICAgICAgaWYgKCFhY3R1YWxOdW1iZXIuZXF1YWxzKGV4cGVjdGVkTnVtYmVyKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiTGVuaWVudC1wYXJzZSBzcG90IGNoZWNrIGZhaWxlZDogZm9yICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyB3b3JkcyArICIsIGV4cGVjdGVkICIgKyBleHBlY3RlZE51bWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIGJ1dCBnb3QgIiArIGFjdHVhbE51bWJlcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgZXJybG4oIlRlc3QgZmFpbGVkIHdpdGggZXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFNwZWxsb3V0IHJ1bGVzIGZvciBVLksuIEVuZ2xpc2guICAKKyAgICAgKiBJIGJvcnJvdyB0aGUgcnVsZSBzZXRzIGZvciBUZXN0UnVsZVNldERpc3BsYXlOYW1lKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyB1a0VuZ2xpc2ggPQorICAgICAgICAiJXNpbXBsaWZpZWQ6XG4iCisgICAgICAgICsgIiAgICAteDogbWludXMgPj47XG4iCisgICAgICAgICsgIiAgICB4Lng6IDw8IHBvaW50ID4+O1xuIgorICAgICAgICArICIgICAgemVybzsgb25lOyB0d287IHRocmVlOyBmb3VyOyBmaXZlOyBzaXg7IHNldmVuOyBlaWdodDsgbmluZTtcbiIKKyAgICAgICAgKyAiICAgIHRlbjsgZWxldmVuOyB0d2VsdmU7IHRoaXJ0ZWVuOyBmb3VydGVlbjsgZmlmdGVlbjsgc2l4dGVlbjtcbiIKKyAgICAgICAgKyAiICAgICAgICBzZXZlbnRlZW47IGVpZ2h0ZWVuOyBuaW5ldGVlbjtcbiIKKyAgICAgICAgKyAiICAgIDIwOiB0d2VudHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDMwOiB0aGlydHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDQwOiBmb3J0eVstPj5dO1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA2MDogc2l4dHlbLT4+XTtcbiIKKyAgICAgICAgKyAiICAgIDcwOiBzZXZlbnR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA4MDogZWlnaHR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICA5MDogbmluZXR5Wy0+Pl07XG4iCisgICAgICAgICsgIiAgICAxMDA6IDw8IGh1bmRyZWRbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8PCBiaWxsaW9uWyA+Pl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiVhbHQtdGVlbnM6XG4iCisgICAgICAgICsgIiAgICA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICArICIgICAgMTAwMD46IDwlJWFsdC1odW5kcmVkczxbID4+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwLDAwMDogPSVzaW1wbGlmaWVkPTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPDwgbWlsbGlvblsgPiVzaW1wbGlmaWVkPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgYmlsbGlvblsgPiVzaW1wbGlmaWVkPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07XG4iCisgICAgICAgICsgIiUlYWx0LWh1bmRyZWRzOlxuIgorICAgICAgICArICIgICAgMDogU0hPVUxEIE5FVkVSIEdFVCBIRVJFITtcbiIKKyAgICAgICAgKyAiICAgIDEwOiA8JXNpbXBsaWZpZWQ8IHRob3VzYW5kO1xuIgorICAgICAgICArICIgICAgMTE6ID0lc2ltcGxpZmllZD0gaHVuZHJlZD4lJWVtcHR5PjtcbiIKKyAgICAgICAgKyAiJSVlbXB0eTpcbiIKKyAgICAgICAgKyAiICAgIDA6OyIKKyAgICAgICAgKyAiJW9yZGluYWw6XG4iCisgICAgICAgICsgIiAgICB6ZXJvdGg7IGZpcnN0OyBzZWNvbmQ7IHRoaXJkOyBmb3VydGg7IGZpZnRoOyBzaXh0aDsgc2V2ZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBlaWdodGg7IG5pbnRoO1xuIgorICAgICAgICArICIgICAgdGVudGg7IGVsZXZlbnRoOyB0d2VsZnRoOyB0aGlydGVlbnRoOyBmb3VydGVlbnRoO1xuIgorICAgICAgICArICIgICAgICAgIGZpZnRlZW50aDsgc2l4dGVlbnRoOyBzZXZlbnRlZW50aDsgZWlnaHRlZW50aDtcbiIKKyAgICAgICAgKyAiICAgICAgICBuaW5ldGVlbnRoO1xuIgorICAgICAgICArICIgICAgdHdlbnRpZXRoOyB0d2VudHktPj47XG4iCisgICAgICAgICsgIiAgICAzMDogdGhpcnRpZXRoOyB0aGlydHktPj47XG4iCisgICAgICAgICsgIiAgICA0MDogZm9ydGlldGg7IGZvcnR5LT4+O1xuIgorICAgICAgICArICIgICAgNTA6IGZpZnRpZXRoOyBmaWZ0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDYwOiBzaXh0aWV0aDsgc2l4dHktPj47XG4iCisgICAgICAgICsgIiAgICA3MDogc2V2ZW50aWV0aDsgc2V2ZW50eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDgwOiBlaWdodGlldGg7IGVpZ2h0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDkwOiBuaW5ldGlldGg7IG5pbmV0eS0+PjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPCVzaW1wbGlmaWVkPCBodW5kcmVkdGg7IDwlc2ltcGxpZmllZDwgaHVuZHJlZCA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDwlc2ltcGxpZmllZDwgdGhvdXNhbmR0aDsgPCVzaW1wbGlmaWVkPCB0aG91c2FuZCA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMDogPCVzaW1wbGlmaWVkPCBtaWxsaW9udGg7IDwlc2ltcGxpZmllZDwgbWlsbGlvbiA+PjtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwOiA8JXNpbXBsaWZpZWQ8IGJpbGxpb250aDtcbiIKKyAgICAgICAgKyAiICAgICAgICA8JXNpbXBsaWZpZWQ8IGJpbGxpb24gPj47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6ID0jLCMjMD07IgorICAgICAgICArICIlZGVmYXVsdDpcbiIKKyAgICAgICAgKyAiICAgIC14OiBtaW51cyA+PjtcbiIKKyAgICAgICAgKyAiICAgIHgueDogPDwgcG9pbnQgPj47XG4iCisgICAgICAgICsgIiAgICA9JXNpbXBsaWZpZWQ9O1xuIgorICAgICAgICArICIgICAgMTAwOiA8PCBodW5kcmVkWyA+JSVhbmQ+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDA6IDw8IHRob3VzYW5kWyA+JSVhbmQ+XTtcbiIKKyAgICAgICAgKyAiICAgIDEwMCwwMDA+PjogPDwgdGhvdXNhbmRbPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6IDw8IG1pbGxpb25bPiUlY29tbWFzPl07XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDAsMDAwLDAwMDogPDwgYmlsbGlvbls+JSVjb21tYXM+XTtcbiIKKyAgICAgICAgKyAiICAgIDEsMDAwLDAwMCwwMDAsMDAwLDAwMDogPSMsIyMwPTtcbiIKKyAgICAgICAgKyAiJSVhbmQ6XG4iCisgICAgICAgICsgIiAgICBhbmQgPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgKyAiICAgIDEwMDogPSVkZWZhdWx0PTtcbiIKKyAgICAgICAgKyAiJSVjb21tYXM6XG4iCisgICAgICAgICsgIiAgICAnIGFuZCA9JWRlZmF1bHQ9O1xuIgorICAgICAgICArICIgICAgMTAwOiAsID0lZGVmYXVsdD07XG4iCisgICAgICAgICsgIiAgICAxMDAwOiAsIDwlZGVmYXVsdDwgdGhvdXNhbmQsID4lZGVmYXVsdD47XG4iCisgICAgICAgICsgIiAgICAxLDAwMCwwMDA6ICwgPSVkZWZhdWx0PTsiCisgICAgICAgICsgIiUlbGVuaWVudC1wYXJzZTpcbiIKKyAgICAgICAgKyAiICAgICYgJyAnICwgJywnIDtcbiI7CisKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTlhMGRhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuZm9ybWF0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIFRvcCBsZXZlbCB0ZXN0IHVzZWQgdG8gcnVuIGFsbCBvdGhlciB0ZXN0cyBhcyBhIGJhdGNoLgorICovCisKK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgICAiVGVzdEFsbCRSQk5GIiwKKyAgICAgICAgICAgICAgICAgICJUZXN0QWxsJE51bWJlckZvcm1hdCIsCisgICAgICAgICAgICAgICAgICAiVGVzdEFsbCREYXRlRm9ybWF0IiwKKyAgICAgICAgICAgICAgICAgICJUZXN0QWxsJE1lc3NhZ2VGb3JtYXQiLAorICAgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdC5CaWdOdW1iZXJGb3JtYXRUZXN0IgorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAiRm9ybWF0dGluZyBUZXN0cyIpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgUkJORiBleHRlbmRzIFRlc3RHcm91cCB7CisgICAgICAgIHB1YmxpYyBSQk5GKCkgeworICAgICAgICAgICAgc3VwZXIobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAiUmJuZlRlc3QiLAorICAgICAgICAgICAgICAgICJSYm5mUm91bmRUcmlwVGVzdCIsCisgICAgICAgICJSQk5GUGFyc2VUZXN0IiwKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBOdW1iZXJGb3JtYXQgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgICAgICBwdWJsaWMgTnVtYmVyRm9ybWF0KCkgeworICAgICAgICAgICAgc3VwZXIobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAiSW50bFRlc3ROdW1iZXJGb3JtYXQiLAorICAgICAgICAgICAgICAgICJJbnRsVGVzdE51bWJlckZvcm1hdEFQSSIsCisgICAgICAgICAgICAgICAgIk51bWJlckZvcm1hdFRlc3QiLAorICAgICAgICAgICAgICAgICJOdW1iZXJGb3JtYXRSZWdpc3RyYXRpb25UZXN0IiwKKyAgICAgICAgICAgICAgICAiTnVtYmVyRm9ybWF0Um91bmRUcmlwVGVzdCIsCisgICAgICAgICAgICAgICAgIk51bWJlclJlZ3Jlc3Npb24iLAorICAgICAgICAgICAgICAgICJOdW1iZXJGb3JtYXRSZWdyZXNzaW9uVGVzdCIsCisgICAgICAgICAgICAgICAgIkludGxUZXN0RGVjaW1hbEZvcm1hdEFQSSIsCisgICAgICAgICAgICAgICAgIkludGxUZXN0RGVjaW1hbEZvcm1hdEFQSUMiLAorICAgICAgICAgICAgICAgICJJbnRsVGVzdERlY2ltYWxGb3JtYXRTeW1ib2xzIiwKKyAgICAgICAgICAgICAgICAiSW50bFRlc3REZWNpbWFsRm9ybWF0U3ltYm9sc0MiLAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIERhdGVGb3JtYXQgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgICAgICBwdWJsaWMgRGF0ZUZvcm1hdCgpIHsKKyAgICAgICAgICAgIHN1cGVyKG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgIkRhdGVGb3JtYXRNaXNjVGVzdHMiLAorICAgICAgICAgICAgICAgICJEYXRlRm9ybWF0UmVncmVzc2lvblRlc3QiLAorICAgICAgICAgICAgICAgICJEYXRlRm9ybWF0Um91bmRUcmlwVGVzdCIsCisgICAgICAgICAgICAgICAgIkRhdGVGb3JtYXRUZXN0IiwKKyAgICAgICAgICAgICAgICAiSW50bFRlc3REYXRlRm9ybWF0IiwKKyAgICAgICAgICAgICAgICAiSW50bFRlc3REYXRlRm9ybWF0QVBJIiwKKyAgICAgICAgICAgICAgICAiSW50bFRlc3REYXRlRm9ybWF0QVBJQyIsCisgICAgICAgICAgICAgICAgIkludGxUZXN0RGF0ZUZvcm1hdFN5bWJvbHMiLAorICAgICAgICAgICAgICAgICJJbnRsVGVzdFNpbXBsZURhdGVGb3JtYXRBUEkiLAorICAgICAgICAgICAgICAgICJEYXRlRm9ybWF0UmVncmVzc2lvblRlc3RKIiwKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBNZXNzYWdlRm9ybWF0IGV4dGVuZHMgVGVzdEdyb3VwIHsKKyAgICAgICAgcHVibGljIE1lc3NhZ2VGb3JtYXQoKSB7CisgICAgICAgICAgICBzdXBlcihuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICJUZXN0TWVzc2FnZUZvcm1hdCIsCisgICAgICAgICAgICAgICAgIk1lc3NhZ2VSZWdyZXNzaW9uIiwKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgPSAiRm9ybWF0IjsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9UZXN0TWVzc2FnZUZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9UZXN0TWVzc2FnZUZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3MmI0ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1Rlc3RNZXNzYWdlRm9ybWF0LmphdmEKQEAgLTAsMCArMSw5MzYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IEFwcmlsIDYsIDIwMDQKKyogU2luY2U6IElDVSAzLjAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDsKKworaW1wb3J0IGphdmEudGV4dC5DaG9pY2VGb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LkZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBUZXN0TWVzc2FnZUZvcm1hdCBleHRlbmRzIGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdE1lc3NhZ2VGb3JtYXQoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzMoKQorICAgIHsKKyAgICAgICAgZG91YmxlIG15TnVtYmVyID0gLTEyMzQ1NjsKKyAgICAgICAgRGVjaW1hbEZvcm1hdCBmb3JtID0gbnVsbDsKKyAgICAgICAgTG9jYWxlIGxvY2FsZVtdID0geworICAgICAgICAgICAgbmV3IExvY2FsZSgiYXIiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiYmUiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiYmciLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiY2EiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiY3MiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZGEiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZGUiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZGUiLCAiQVQiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJkZSIsICJDSCIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImVsIiwgIiIsICIiKSwgICAgICAgLy8gMTAKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImVuIiwgIkNBIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZW4iLCAiR0IiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJlbiIsICJJRSIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImVuIiwgIlVTIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZXMiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZXQiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZmkiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZnIiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiZnIiLCAiQkUiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJmciIsICJDQSIsICIiKSwgICAgIC8vIDIwCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJmciIsICJDSCIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImhlIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImhyIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImh1IiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoImlzIiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoIml0IiwgIiIsICIiKSwKKyAgICAgICAgICAgIG5ldyBMb2NhbGUoIml0IiwgIkNIIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgiamEiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgia28iLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgibHQiLCAiIiwgIiIpLCAgICAgICAvLyAzMAorICAgICAgICAgICAgbmV3IExvY2FsZSgibHYiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgibWsiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgibmwiLCAiIiwgIiIpLAorICAgICAgICAgICAgbmV3IExvY2FsZSgibmwiLCAiQkUiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJubyIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJwbCIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJwdCIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJybyIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJydSIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJzaCIsICIiLCAiIiksICAgICAgIC8vIDQwCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJzayIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJzbCIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJzcSIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJzciIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJzdiIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJ0ciIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJ1ayIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJ6aCIsICIiLCAiIiksCisgICAgICAgICAgICBuZXcgTG9jYWxlKCJ6aCIsICJUVyIsICIiKSAgICAgIC8vIDQ5CisgICAgICAgIH07CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcGFyc2VQb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGZvciAoaT0gMDsgaSA8IDQ5OyBpKyspIHsKKyAgICAvLyAgICAgICAgZm9ybSA9IChEZWNpbWFsRm9ybWF0KU51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGxvY2FsZVtpXSk7CisgICAgICAgICAgICBmb3JtID0gKERlY2ltYWxGb3JtYXQpTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZVtpXSk7CisgICAgICAgICAgICBpZiAoZm9ybSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk51bWJlciBmb3JtYXQgY3JlYXRpb24gZmFpbGVkIGZvciAiICsgbG9jYWxlW2ldLmdldERpc3BsYXlOYW1lKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsKKyAgICAgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBmb3JtLmZvcm1hdChteU51bWJlciwgYnVmZmVyLCBwb3MpOworICAgICAgICAgICAgcGFyc2VQb3Muc2V0SW5kZXgoMCk7CisgICAgICAgICAgICBPYmplY3QgcmVzdWx0ID0gZm9ybS5wYXJzZShidWZmZXIudG9TdHJpbmcoKSwgcGFyc2VQb3MpOworICAgICAgICAgICAgbG9nbG4obG9jYWxlW2ldLmdldERpc3BsYXlOYW1lKCkgKyAiIC0+ICIgKyByZXN1bHQpOworICAgICAgICAgICAgaWYgKHBhcnNlUG9zLmdldEluZGV4KCkgIT0gYnVmZmVyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk51bWJlciBmb3JtYXQgcGFyc2UgZmFpbGVkLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzEoKQorICAgIHsKKyAgICAgICAgZmluYWwgZG91YmxlIGxpbWl0W10gPSB7MC4wLCAxLjAsIDIuMH07CisgICAgICAgIGZpbmFsIFN0cmluZyBmb3JtYXRzW10gPSB7IjAuMDw9QXJnPDEuMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEuMDw9QXJnPDIuMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIuMDwtQXJnIn07CisgICAgICAgIENob2ljZUZvcm1hdCBjZiA9IG5ldyBDaG9pY2VGb3JtYXQobGltaXQsIGZvcm1hdHMpOworICAgICAgICBGaWVsZFBvc2l0aW9uIHN0YXR1cyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICBhc3NlcnRFcXVhbHMoIkNob2ljZUZvcm1hdC5mb3JtYXQiLCBmb3JtYXRzWzFdLCBjZi5mb3JtYXQoMSkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWcyKCkKKyAgICB7CisgICAgICAgIFN0cmluZyByZXN1bHQ7CisgICAgICAgIC8vIHtzZmJ9IHVzZSBkb3VibGUgZm9ybWF0IGluIHBhdHRlcm4sIHNvIHJlc3VsdCB3aWxsIG1hdGNoIChub3Qgc3RyaWN0bHkgbmVjZXNzYXJ5KQorICAgICAgICBmaW5hbCBTdHJpbmcgcGF0dGVybiA9ICJUaGVyZSB7MCxjaG9pY2UsMC4wI2FyZSBubyBmaWxlc3wxLjAjaXMgb25lIGZpbGV8MS4wPGFyZSB7MCwgbnVtYmVyfSBmaWxlc30gb24gZGlzayB7MX0uICI7CisgICAgICAgIGxvZ2xuKCJUaGUgaW5wdXQgcGF0dGVybiA6ICIgKyBwYXR0ZXJuKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm10ID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybik7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInRvUGF0dGVybiIsIHBhdHRlcm4sIGZtdC50b1BhdHRlcm4oKSk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiTWVzc2FnZUZvcm1hdCBwYXR0ZXJuIGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RQYXR0ZXJuKCkgLy8gYWthIFBhdHRlcm5UZXN0KCkKKyAgICB7CisgICAgICAgIE9iamVjdCB0ZXN0QXJnc1tdID0geworICAgICAgICAgICAgbmV3IERvdWJsZSgxKSwgbmV3IERvdWJsZSgzNDU2KSwKKyAgICAgICAgICAgICJEaXNrIiwgbmV3IERhdGUoMTAwMDAwMDAwMEwpCisgICAgICAgIH07CisgICAgICAgIFN0cmluZyB0ZXN0Q2FzZXNbXSA9IHsKKyAgICAgICAgICAgIlF1b3RlcyAnJywgJ3snLCAnYScgezB9ICd7MH0nIiwKKyAgICAgICAgICAgIlF1b3RlcyAnJywgJ3snLCAnYScgezAsbnVtYmVyfSAnezB9JyIsCisgICAgICAgICAgICIneycxLG51bWJlciwnIycsIyN9IHsxLG51bWJlciwnIycsIyN9IiwKKyAgICAgICAgICAgIlRoZXJlIGFyZSB7MX0gZmlsZXMgb24gezJ9IGF0IHszfS4iLAorICAgICAgICAgICAiT24gezJ9LCB0aGVyZSBhcmUgezF9IGZpbGVzLCB3aXRoIHswLG51bWJlcixjdXJyZW5jeX0uIiwKKyAgICAgICAgICAgIid7MSxudW1iZXIscGVyY2VudH0nLCB7MSxudW1iZXIscGVyY2VudH0sIiwKKyAgICAgICAgICAgIid7MSxkYXRlLGZ1bGx9JywgezEsZGF0ZSxmdWxsfSwiLAorICAgICAgICAgICAiJ3szLGRhdGUsZnVsbH0nLCB7MyxkYXRlLGZ1bGx9LCIsCisgICAgICAgICAgICInezEsbnVtYmVyLCMsIyN9JyB7MSxudW1iZXIsIywjI30iLAorICAgICAgICB9OworCisgICAgICAgIFN0cmluZyB0ZXN0UmVzdWx0UGF0dGVybnNbXSA9IHsKKyAgICAgICAgICAgICJRdW90ZXMgJycsICd7JywgYSB7MH0gJ3snMH0iLAorICAgICAgICAgICAgIlF1b3RlcyAnJywgJ3snLCBhIHswLG51bWJlcn0gJ3snMH0iLAorICAgICAgICAgICAgIid7JzEsbnVtYmVyLCMsIyN9IHsxLG51bWJlciwnIycjLCMjfSIsCisgICAgICAgICAgICAiVGhlcmUgYXJlIHsxfSBmaWxlcyBvbiB7Mn0gYXQgezN9LiIsCisgICAgICAgICAgICAiT24gezJ9LCB0aGVyZSBhcmUgezF9IGZpbGVzLCB3aXRoIHswLG51bWJlcixjdXJyZW5jeX0uIiwKKyAgICAgICAgICAgICIneycxLG51bWJlcixwZXJjZW50fSwgezEsbnVtYmVyLHBlcmNlbnR9LCIsCisgICAgICAgICAgICAiJ3snMSxkYXRlLGZ1bGx9LCB7MSxkYXRlLGZ1bGx9LCIsCisgICAgICAgICAgICAiJ3snMyxkYXRlLGZ1bGx9LCB7MyxkYXRlLGZ1bGx9LCIsCisgICAgICAgICAgICAiJ3snMSxudW1iZXIsIywjI30gezEsbnVtYmVyLCMsIyN9IgorICAgICAgICB9OworCisgICAgICAgIFN0cmluZyB0ZXN0UmVzdWx0U3RyaW5nc1tdID0geworICAgICAgICAgICAgIlF1b3RlcyAnLCB7LCBhIDEgezB9IiwKKyAgICAgICAgICAgICJRdW90ZXMgJywgeywgYSAxIHswfSIsCisgICAgICAgICAgICAiezEsbnVtYmVyLCMsIyN9ICMzNCw1NiIsCisgICAgICAgICAgICAiVGhlcmUgYXJlIDMsNDU2IGZpbGVzIG9uIERpc2sgYXQgMS8xMi83MCA1OjQ2IEFNLiIsCisgICAgICAgICAgICAiT24gRGlzaywgdGhlcmUgYXJlIDMsNDU2IGZpbGVzLCB3aXRoICQxLjAwLiIsCisgICAgICAgICAgICAiezEsbnVtYmVyLHBlcmNlbnR9LCAzNDUsNjAwJSwiLAorICAgICAgICAgICAgInsxLGRhdGUsZnVsbH0sIFdlZG5lc2RheSwgRGVjZW1iZXIgMzEsIDE5NjksIiwKKyAgICAgICAgICAgICJ7MyxkYXRlLGZ1bGx9LCBNb25kYXksIEphbnVhcnkgMTIsIDE5NzAsIiwKKyAgICAgICAgICAgICJ7MSxudW1iZXIsIywjI30gMzQsNTYiCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA5OyArK2kpIHsKKyAgICAgICAgICAgIC8vaXRfb3V0IDw8ICJcblBhdCBpbjogICIgPDwgdGVzdENhc2VzW2ldKTsKKworICAgICAgICAgICAgU3RyaW5nIGJ1ZmZlcjsKKyAgICAgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybSA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZvcm0gPSBuZXcgTWVzc2FnZUZvcm1hdCh0ZXN0Q2FzZXNbaV0sIExvY2FsZS5VUyk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTWVzc2FnZUZvcm1hdCBmb3IgIiArIHRlc3RDYXNlc1tpXSArICIgY3JlYXRpb24gZmFpbGVkLiIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJcIiIgKyB0ZXN0Q2FzZXNbaV0gKyAiXCIudG9QYXR0ZXJuKCkiLCB0ZXN0UmVzdWx0UGF0dGVybnNbaV0sIGZvcm0udG9QYXR0ZXJuKCkpOworCisgICAgICAgICAgICAvL2l0X291dCA8PCAiUGF0IG91dDogIiA8PCBmb3JtLnRvUGF0dGVybihidWZmZXIpKTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpbnQgY291bnQgPSA0OworICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICAgICAgZm9ybS5mb3JtYXQodGVzdEFyZ3MsIHJlc3VsdCwgZmllbGRwb3MpOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLCB0ZXN0UmVzdWx0U3RyaW5nc1tpXSwgcmVzdWx0LnRvU3RyaW5nKCkpOworCisgICAgICAgICAgICAvL2l0X291dCA8PCAiUmVzdWx0OiAgIiA8PCByZXN1bHQpOworICAgIC8vI2lmIDAKKyAgICAvLyAgICAgICAgLyogVE9ETzogTG9vayBhdCB0aGlzIHRlc3QgYW5kIHNlZSBpZiB0aGlzIGlzIHN0aWxsIGEgdmFsaWQgdGVzdCAqLworICAgIC8vICAgICAgICBsb2dsbigiLS0tLS0tLS0tLS0tLS0tLSB0ZXN0IHBhcnNlIC0tLS0tLS0tLS0tLS0tLS0iKTsKKyAgICAvLworICAgIC8vICAgICAgICBmb3JtLnRvUGF0dGVybihidWZmZXIpOworICAgIC8vICAgICAgICBsb2dsbigiTVNHIHBhdHRlcm4gZm9yIHBhcnNlOiAiICsgYnVmZmVyKTsKKyAgICAvLworICAgIC8vICAgICAgICBpbnQgcGFyc2VDb3VudCA9IDA7CisgICAgLy8gICAgICAgIEZvcm1hdHRhYmxlKiB2YWx1ZXMgPSBmb3JtLnBhcnNlKHJlc3VsdCwgcGFyc2VDb3VudCwgc3VjY2Vzcyk7CisgICAgLy8gICAgICAgIGlmIChVX0ZBSUxVUkUoc3VjY2VzcykpIHsKKyAgICAvLyAgICAgICAgICAgIGVycmxuKCJNZXNzYWdlRm9ybWF0IGZhaWxlZCB0ZXN0ICM1Iik7CisgICAgLy8gICAgICAgICAgICBsb2dsbihTdHJpbmcoIk1lc3NhZ2VGb3JtYXQgZmFpbGVkIHRlc3QgIzUgd2l0aCBlcnJvciBjb2RlICIpKyhpbnQpc3VjY2Vzcyk7CisgICAgLy8gICAgICAgIH0gZWxzZSBpZiAocGFyc2VDb3VudCAhPSBjb3VudCkgeworICAgIC8vICAgICAgICAgICAgZXJybG4oIk1TRyBjb3VudCBub3QgJWQgYXMgZXhwZWN0ZWQuIEdvdCAlZCIsIGNvdW50LCBwYXJzZUNvdW50KTsKKyAgICAvLyAgICAgICAgfQorICAgIC8vICAgICAgICBVQm9vbCBmYWlsZWQgPSBGQUxTRTsKKyAgICAvLyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBwYXJzZUNvdW50OyArK2opIHsKKyAgICAvLyAgICAgICAgICAgICBpZiAodmFsdWVzID09IDAgfHwgdGVzdEFyZ3Nbal0gIT0gdmFsdWVzW2pdKSB7CisgICAgLy8gICAgICAgICAgICAgICAgZXJybG4oKChTdHJpbmcpIk1TRyB0ZXN0YXJnc1siKSArIGogKyAiXTogIiArIHRvU3RyaW5nKHRlc3RBcmdzW2pdKSk7CisgICAgLy8gICAgICAgICAgICAgICAgZXJybG4oKChTdHJpbmcpIk1TRyB2YWx1ZXNbIikgKyBqICsgIl0gIDogIiArIHRvU3RyaW5nKHZhbHVlc1tqXSkpOworICAgIC8vICAgICAgICAgICAgICAgIGZhaWxlZCA9IFRSVUU7CisgICAgLy8gICAgICAgICAgICAgfQorICAgIC8vICAgICAgICB9CisgICAgLy8gICAgICAgIGlmIChmYWlsZWQpCisgICAgLy8gICAgICAgICAgICBlcnJsbigiTWVzc2FnZUZvcm1hdCBmYWlsZWQgdGVzdCAjNiIpOworICAgIC8vI2VuZGlmCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2FtcGxlKCkgLy8gYWthIHNhbXBsZSgpCisgICAgeworICAgICAgICBNZXNzYWdlRm9ybWF0IGZvcm0gPSBudWxsOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyMiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvcm0gPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlcmUgYXJlIHswfSBmaWxlcyBvbiB7MX0iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUxKSB7CisgICAgICAgICAgICBlcnJsbigiU2FtcGxlIG1lc3NhZ2UgZm9ybWF0IGNyZWF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBPYmplY3QgdGVzdEFyZ3MxW10gPSB7ICJhYmMiLCAiZGVmIiB9OworICAgICAgICBGaWVsZFBvc2l0aW9uIGZpZWxkcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIGFzc2VydEVxdWFscygiZm9ybWF0IiwKKyAgICAgICAgICAgICAgICAgICAgICJUaGVyZSBhcmUgYWJjIGZpbGVzIG9uIGRlZiIsCisgICAgICAgICAgICAgICAgICAgICBmb3JtLmZvcm1hdCh0ZXN0QXJnczEsIGJ1ZmZlcjIsIGZpZWxkcG9zKS50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3RhdGljRm9ybWF0KCkKKyAgICB7CisgICAgICAgIE9iamVjdCBhcmd1bWVudHNbXSA9IHsKKyAgICAgICAgICAgIG5ldyBJbnRlZ2VyKDcpLAorICAgICAgICAgICAgbmV3IERhdGUoODcxMDY4MDAwMDAwTCksCisgICAgICAgICAgICAiYSBkaXN0dXJiYW5jZSBpbiB0aGUgRm9yY2UiCisgICAgICAgIH07CisKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLAorICAgICAgICAgICAgIkF0IDEyOjIwOjAwIFBNIG9uIEF1ZyA4LCAxOTk3LCB0aGVyZSB3YXMgYSBkaXN0dXJiYW5jZSBpbiB0aGUgRm9yY2Ugb24gcGxhbmV0IDcuIiwKKyAgICAgICAgICAgIE1lc3NhZ2VGb3JtYXQuZm9ybWF0KCJBdCB7MSx0aW1lfSBvbiB7MSxkYXRlfSwgdGhlcmUgd2FzIHsyfSBvbiBwbGFuZXQgezAsbnVtYmVyLGludGVnZXJ9LiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHMpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IEZpZWxkUG9zaXRpb25fRE9OVF9DQVJFID0gLTE7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2ltcGxlRm9ybWF0KCkKKyAgICB7CisgICAgICAgIE9iamVjdCB0ZXN0QXJnczFbXSA9IHtuZXcgSW50ZWdlcigwKSwgIk15RGlzayJ9OworICAgICAgICBPYmplY3QgdGVzdEFyZ3MyW10gPSB7bmV3IEludGVnZXIoMSksICJNeURpc2sifTsKKyAgICAgICAgT2JqZWN0IHRlc3RBcmdzM1tdID0ge25ldyBJbnRlZ2VyKDEyKSwgIk15RGlzayJ9OworCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybSA9IG5ldyBNZXNzYWdlRm9ybWF0KAorICAgICAgICAgICAgIlRoZSBkaXNrIFwiezF9XCIgY29udGFpbnMgezB9IGZpbGUocykuIik7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmluZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBpZ25vcmUgPSBuZXcgRmllbGRQb3NpdGlvbihGaWVsZFBvc2l0aW9uX0RPTlRfQ0FSRSk7CisgICAgICAgIGZvcm0uZm9ybWF0KHRlc3RBcmdzMSwgc3RyaW5nLCBpZ25vcmUpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsCisgICAgICAgICAgICAgICAgICAgICAiVGhlIGRpc2sgXCJNeURpc2tcIiBjb250YWlucyAwIGZpbGUocykuIiwKKyAgICAgICAgICAgICAgICAgICAgIHN0cmluZy50b1N0cmluZygpKTsKKworICAgICAgICBzdHJpbmcuc2V0TGVuZ3RoKDApOworICAgICAgICBmb3JtLmZvcm1hdCh0ZXN0QXJnczIsIHN0cmluZywgaWdub3JlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLAorICAgICAgICAgICAgICAgICAgICAgIlRoZSBkaXNrIFwiTXlEaXNrXCIgY29udGFpbnMgMSBmaWxlKHMpLiIsCisgICAgICAgICAgICAgICAgICAgICBzdHJpbmcudG9TdHJpbmcoKSk7CisKKyAgICAgICAgc3RyaW5nLnNldExlbmd0aCgwKTsKKyAgICAgICAgZm9ybS5mb3JtYXQodGVzdEFyZ3MzLCBzdHJpbmcsIGlnbm9yZSk7CisgICAgICAgIGFzc2VydEVxdWFscygiZm9ybWF0IiwKKyAgICAgICAgICAgICAgICAgICAgICJUaGUgZGlzayBcIk15RGlza1wiIGNvbnRhaW5zIDEyIGZpbGUocykuIiwKKyAgICAgICAgICAgICAgICAgICAgIHN0cmluZy50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TXNnRm9ybWF0Q2hvaWNlKCkKKyAgICB7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybSA9IG5ldyBNZXNzYWdlRm9ybWF0KCJUaGUgZGlzayBcInsxfVwiIGNvbnRhaW5zIHswfS4iKTsKKyAgICAgICAgZG91YmxlIGZpbGVsaW1pdHNbXSA9IHswLDEsMn07CisgICAgICAgIFN0cmluZyBmaWxlcGFydFtdID0geyJubyBmaWxlcyIsIm9uZSBmaWxlIiwiezAsbnVtYmVyfSBmaWxlcyJ9OworICAgICAgICBDaG9pY2VGb3JtYXQgZmlsZWZvcm0gPSBuZXcgQ2hvaWNlRm9ybWF0KGZpbGVsaW1pdHMsIGZpbGVwYXJ0KTsKKyAgICAgICAgZm9ybS5zZXRGb3JtYXQoMSwgZmlsZWZvcm0pOyAvLyBOT1QgemVybywgc2VlIGJlbG93CisKKyAgICAgICAgRmllbGRQb3NpdGlvbiBpZ25vcmUgPSBuZXcgRmllbGRQb3NpdGlvbihGaWVsZFBvc2l0aW9uX0RPTlRfQ0FSRSk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJpbmcgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIE9iamVjdCB0ZXN0QXJnczFbXSA9IHtuZXcgSW50ZWdlcigwKSwgIk15RGlzayJ9OworICAgICAgICBmb3JtLmZvcm1hdCh0ZXN0QXJnczEsIHN0cmluZywgaWdub3JlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQjMSIsCisgICAgICAgICAgICAgICAgICAgICAiVGhlIGRpc2sgXCJNeURpc2tcIiBjb250YWlucyBubyBmaWxlcy4iLAorICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLnRvU3RyaW5nKCkpOworCisgICAgICAgIHN0cmluZy5zZXRMZW5ndGgoMCk7CisgICAgICAgIE9iamVjdCB0ZXN0QXJnczJbXSA9IHtuZXcgSW50ZWdlcigxKSwgIk15RGlzayJ9OworICAgICAgICBmb3JtLmZvcm1hdCh0ZXN0QXJnczIsIHN0cmluZywgaWdub3JlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQjMiIsCisgICAgICAgICAgICAgICAgICAgICAiVGhlIGRpc2sgXCJNeURpc2tcIiBjb250YWlucyBvbmUgZmlsZS4iLAorICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLnRvU3RyaW5nKCkpOworCisgICAgICAgIHN0cmluZy5zZXRMZW5ndGgoMCk7CisgICAgICAgIE9iamVjdCB0ZXN0QXJnczNbXSA9IHtuZXcgSW50ZWdlcigxMjczKSwgIk15RGlzayJ9OworICAgICAgICBmb3JtLmZvcm1hdCh0ZXN0QXJnczMsIHN0cmluZywgaWdub3JlKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQjMyIsCisgICAgICAgICAgICAgICAgICAgICAiVGhlIGRpc2sgXCJNeURpc2tcIiBjb250YWlucyAxLDI3MyBmaWxlcy4iLAorICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gIEFQSSBUZXN0cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2xvbmUoKQorICAgIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB4ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9Iik7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgeiA9IG5ldyBNZXNzYWdlRm9ybWF0KCJUaGVyZSBhcmUgezB9IGZpbGVzIG9uIHsxfSBjcmVhdGVkIik7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgeSA9IG51bGw7CisgICAgICAgIHkgPSAoTWVzc2FnZUZvcm1hdCl4LmNsb25lKCk7CisgICAgICAgIGlmICh4LmVxdWFscyh5KSAmJgorICAgICAgICAgICAgIXguZXF1YWxzKHopICYmCisgICAgICAgICAgICAheS5lcXVhbHMoeikgKQorICAgICAgICAgICAgbG9nbG4oIkZpcnN0IHRlc3QgKG9wZXJhdG9yID09KTogUGFzc2VkISIpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGaXJzdCB0ZXN0IChvcGVyYXRvciA9PSk6IEZhaWxlZCEiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKHguZXF1YWxzKHkpICYmIHkuZXF1YWxzKHgpKSAmJgorICAgICAgICAgICAgKCF4LmVxdWFscyh6KSAmJiAhei5lcXVhbHMoeCkpICYmCisgICAgICAgICAgICAoIXkuZXF1YWxzKHopICYmICF6LmVxdWFscyh5KSkgKQorICAgICAgICAgICAgbG9nbG4oIlNlY29uZCB0ZXN0IChlcXVhbHMpOiBQYXNzZWQhIik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZXJybG4oIlNlY29uZCB0ZXN0IChlcXVhbHMpOiBGYWlsZWQhIik7CisgICAgICAgIH0KKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RFcXVhbHMoKQorICAgIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB4ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9Iik7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgeSA9IG5ldyBNZXNzYWdlRm9ybWF0KCJUaGVyZSBhcmUgezB9IGZpbGVzIG9uIHsxfSIpOworICAgICAgICBpZiAoIXguZXF1YWxzKHkpKSB7CisgICAgICAgICAgICBlcnJsbigiRmlyc3QgdGVzdCAob3BlcmF0b3IgPT0pOiBGYWlsZWQhIik7CisgICAgICAgIH0KKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3ROb3RFcXVhbHMoKQorICAgIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB4ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9Iik7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgeSA9IG5ldyBNZXNzYWdlRm9ybWF0KCJUaGVyZSBhcmUgezB9IGZpbGVzIG9uIHsxfSIpOworICAgICAgICB5LnNldExvY2FsZShMb2NhbGUuRlJFTkNIKTsKKyAgICAgICAgaWYgKHguZXF1YWxzKHkpKSB7CisgICAgICAgICAgICBlcnJsbigiRmlyc3QgdGVzdCAob3BlcmF0b3IgIT0pOiBGYWlsZWQhIik7CisgICAgICAgIH0KKyAgICAgICAgeSA9IG5ldyBNZXNzYWdlRm9ybWF0KCJUaGVyZSBhcmUgezB9IGZpbGVzIG9uIHsxfSIpOworICAgICAgICB5LmFwcGx5UGF0dGVybigiVGhlcmUgYXJlIHswfSBmaWxlcyBvbiB7MX0gdGhlIGRpc2siKTsKKyAgICAgICAgaWYgKHguZXF1YWxzKHkpKSB7CisgICAgICAgICAgICBlcnJsbigiU2Vjb25kIHRlc3QgKG9wZXJhdG9yICE9KTogRmFpbGVkISIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEhhc2hDb2RlKCkKKyAgICB7CisgICAgICAgIFVMb2NhbGUgc2F2ZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoVUxvY2FsZS5VUyk7CisKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB4ID0gbmV3IE1lc3NhZ2VGb3JtYXQoIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9Iik7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgeiA9IG5ldyBNZXNzYWdlRm9ybWF0KCJUaGVyZSBhcmUgezB9IGZpbGVzIG9uIHsxfSIpOworICAgICAgICBNZXNzYWdlRm9ybWF0IHkgPSBudWxsOworICAgICAgICB5ID0gKE1lc3NhZ2VGb3JtYXQpeC5jbG9uZSgpOworICAgICAgICBpZiAoeC5oYXNoQ29kZSgpICE9IHkuaGFzaENvZGUoKSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBpZGVudGljYWwgb2JqZWN0cyBoYXZlIGRpZmZlcmVudCBoYXNoY29kZXMiKTsKKyAgICAgICAgaWYgKHguaGFzaENvZGUoKSAhPSB6Lmhhc2hDb2RlKCkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogaWRlbnRpY2FsIG9iamVjdHMgaGF2ZSBkaWZmZXJlbnQgaGFzaGNvZGVzIik7CisKKyAgICAvKiBUaGVzZSBhcmUgbm90IGVycm9ycworICAgICAgICB5LnNldExvY2FsZShVTG9jYWxlLkZSRU5DSCk7CisgICAgICAgIGlmICh4Lmhhc2hDb2RlKCkgPT0geS5oYXNoQ29kZSgpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGRpZmZlcmVudCBvYmplY3RzIGhhdmUgc2FtZSBoYXNoY29kZXMuIExvY2FsZSBpZ25vcmVkIik7CisKKyAgICAgICAgei5hcHBseVBhdHRlcm4oIlRoZXJlIGFyZSB7MH0gZmlsZXMgb24gezF9IHRoZSBkaXNrIik7CisgICAgICAgIGlmICh4Lmhhc2hDb2RlKCkgPT0gei5oYXNoQ29kZSgpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGRpZmZlcmVudCBvYmplY3RzIGhhdmUgc2FtZSBoYXNoY29kZXMuIFBhdHRlcm4gaWdub3JlZCIpOworICAgICovCisKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KHNhdmUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTZXRMb2NhbGUoKQorICAgIHsKKyAgICAgICAgT2JqZWN0IGFyZ3VtZW50c1tdID0geworICAgICAgICAgICAgbmV3IERvdWJsZSg0NTYuODMpLAorICAgICAgICAgICAgbmV3IERhdGUoODcxMDY4MDAwMDAwTCksCisgICAgICAgICAgICAiZGVwb3NpdCIKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvL1N0cmluZyBmb3JtYXRTdHIgPSAiQXQgezEsdGltZX0gb24gezEsZGF0ZX0sIHlvdSBtYWRlIGEgezJ9IG9mIHswLG51bWJlcixjdXJyZW5jeX0uIjsKKyAgICAgICAgU3RyaW5nIGZvcm1hdFN0ciA9ICJBdCA8dGltZT4gb24gezEsZGF0ZX0sIHlvdSBtYWRlIGEgezJ9IG9mIHswLG51bWJlcixjdXJyZW5jeX0uIjsKKyAgICAgICAgLy8ge3NmYn0gdG8gZ2V0ICQsIHdvdWxkIG5lZWQgTG9jYWxlOjpVUywgbm90IExvY2FsZTo6RU5HTElTSAorICAgICAgICAvLyBKdXN0IHVzZSB1bmxvY2FsaXplZCBjdXJyZW5jeSBzeW1ib2wuCisgICAgICAgIC8vU3RyaW5nIGNvbXBhcmVTdHJFbmcgPSAiQXQgPHRpbWU+IG9uIEF1ZyA4LCAxOTk3LCB5b3UgbWFkZSBhIGRlcG9zaXQgb2YgJDQ1Ni44My4iOworICAgICAgICBTdHJpbmcgY29tcGFyZVN0ckVuZyA9ICJBdCA8dGltZT4gb24gQXVnIDgsIDE5OTcsIHlvdSBtYWRlIGEgZGVwb3NpdCBvZiAiOworICAgICAgICBjb21wYXJlU3RyRW5nICs9ICdcdTAwYTQnOworICAgICAgICBjb21wYXJlU3RyRW5nICs9ICI0NTYuODMuIjsKKyAgICAgICAgLy8ge3NmYn0gdG8gZ2V0IERNLCB3b3VsZCBuZWVkIExvY2FsZTo6R0VSTUFOWSwgbm90IExvY2FsZTo6R0VSTUFOCisgICAgICAgIC8vIEp1c3QgdXNlIHVubG9jYWxpemVkIGN1cnJlbmN5IHN5bWJvbC4KKyAgICAgICAgLy9TdHJpbmcgY29tcGFyZVN0ckdlciA9ICJBdCA8dGltZT4gb24gMDguMDguMTk5NywgeW91IG1hZGUgYSBkZXBvc2l0IG9mIDQ1Niw4MyBETS4iOworICAgICAgICBTdHJpbmcgY29tcGFyZVN0ckdlciA9ICJBdCA8dGltZT4gb24gMDguMDguMTk5NywgeW91IG1hZGUgYSBkZXBvc2l0IG9mICI7CisgICAgICAgIGNvbXBhcmVTdHJHZXIgKz0gJ1x1MDBhNCc7CisgICAgICAgIGNvbXBhcmVTdHJHZXIgKz0gIiA0NTYsODMuIjsKKworICAgICAgICBNZXNzYWdlRm9ybWF0IG1zZyA9IG5ldyBNZXNzYWdlRm9ybWF0KGZvcm1hdFN0ciwgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKDApOworICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworICAgICAgICByZXN1bHQgPSBtc2cuZm9ybWF0KAorICAgICAgICAgICAgYXJndW1lbnRzLAorICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgcG9zKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLCBjb21wYXJlU3RyRW5nLCByZXN1bHQudG9TdHJpbmcoKSk7CisKKyAgICAgICAgbXNnLnNldExvY2FsZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIGFzc2VydEVxdWFscygiZ2V0TG9jYWxlIiwgTG9jYWxlLkVOR0xJU0gsIG1zZy5nZXRMb2NhbGUoKSk7CisKKyAgICAgICAgbXNnLnNldExvY2FsZShMb2NhbGUuR0VSTUFOKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRMb2NhbGUiLCBMb2NhbGUuR0VSTUFOLCBtc2cuZ2V0TG9jYWxlKCkpOworCisgICAgICAgIG1zZy5hcHBseVBhdHRlcm4oZm9ybWF0U3RyKTsKKyAgICAgICAgcmVzdWx0LnNldExlbmd0aCgwKTsKKyAgICAgICAgcmVzdWx0ID0gbXNnLmZvcm1hdCgKKyAgICAgICAgICAgIGFyZ3VtZW50cywKKyAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgIHBvcyk7CisgICAgICAgIGFzc2VydEVxdWFscygiZm9ybWF0IiwgY29tcGFyZVN0ckdlciwgcmVzdWx0LnRvU3RyaW5nKCkpOworCisgICAgICAgIC8vQ292ZXIgZ2V0VUxvY2FsZSgpCisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHNldC9nZXQgVUxvY2FsZSAuLi4iKTsKKyAgICAgICAgbXNnLnNldExvY2FsZShVTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBhc3NlcnRFcXVhbHMoImdldFVMb2NhbGUiLCBVTG9jYWxlLkVOR0xJU0gsIG1zZy5nZXRVTG9jYWxlKCkpOworCisgICAgICAgIG1zZy5zZXRMb2NhbGUoVUxvY2FsZS5HRVJNQU4pOworICAgICAgICBhc3NlcnRFcXVhbHMoImdldFVMb2NhbGUiLCBVTG9jYWxlLkdFUk1BTiwgbXNnLmdldFVMb2NhbGUoKSk7CisKKyAgICAgICAgbXNnLmFwcGx5UGF0dGVybihmb3JtYXRTdHIpOworICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKDApOworICAgICAgICByZXN1bHQgPSBtc2cuZm9ybWF0KAorICAgICAgICAgICAgYXJndW1lbnRzLAorICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgcG9zKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLCBjb21wYXJlU3RyR2VyLCByZXN1bHQudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEZvcm1hdCgpCisgICAgeworICAgICAgICBmaW5hbCBPYmplY3QgZnRfYXJyW10gPQorICAgICAgICB7CisgICAgICAgICAgICBuZXcgRGF0ZSg4NzEwNjgwMDAwMDBMKQorICAgICAgICB9OworCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy9TdHJpbmcgZm9ybWF0U3RyID0gIkF0IHsxLHRpbWV9IG9uIHsxLGRhdGV9LCB5b3UgbWFkZSBhIHsyfSBvZiB7MCxudW1iZXIsY3VycmVuY3l9LiI7CisgICAgICAgIFN0cmluZyBmb3JtYXRTdHIgPSAiT24gezAsZGF0ZX0sIGl0IGJlZ2FuLiI7CisgICAgICAgIFN0cmluZyBjb21wYXJlU3RyID0gIk9uIEF1ZyA4LCAxOTk3LCBpdCBiZWdhbi4iOworCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbXNnID0gbmV3IE1lc3NhZ2VGb3JtYXQoZm9ybWF0U3RyKTsKKyAgICAgICAgRmllbGRQb3NpdGlvbiBmcCA9IG5ldyBGaWVsZFBvc2l0aW9uKDApOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBtc2cuZm9ybWF0KG5ldyBEYXRlKDg3MTA2ODAwMDAwMEwpLAorICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgIGZwKTsKKyAgICAgICAgICAgIGVycmxuKCIqKiogTVNHIGZvcm1hdCB3aXRob3V0IGV4cGVjdGVkIGVycm9yIGNvZGUuIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlMSkgeworICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0LnNldExlbmd0aCgwKTsKKyAgICAgICAgcmVzdWx0ID0gbXNnLmZvcm1hdCgKKyAgICAgICAgICAgIGZ0X2FyciwKKyAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgIGZwKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXQiLCBjb21wYXJlU3RyLCByZXN1bHQudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFBhcnNlKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBtc2dGb3JtYXRTdHJpbmcgPSAiezB9ID1zZXA9IHsxfSI7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbXNnID0gbmV3IE1lc3NhZ2VGb3JtYXQobXNnRm9ybWF0U3RyaW5nKTsKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9ICJhYmMgPXNlcD0gZGVmIjsKKyAgICAgICAgU3RyaW5nIHRtcDEsIHRtcDI7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE9iamVjdFtdIGZtdF9hcnIgPSBtc2cucGFyc2Uoc291cmNlKTsKKyAgICAgICAgICAgIGlmIChmbXRfYXJyLmxlbmd0aCAhPSAyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIioqKiBNU0cgcGFyc2UgKHVzdHJpbmcsIGNvdW50LCBlcnIpIGNvdW50IGVyci4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGZtdF9hcnIubGVuZ3RoICE9IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIioqKiBNU0cgcGFyc2UgKHVzdHJpbmcsIHBhcnNlcG9zLiwgY291bnQpIGNvdW50IGVyci4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBhcnNlKClbMF0iLCAiYWJjIiwgZm10X2FyclswXSk7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydEVxdWFscygicGFyc2UoKVsxXSIsICJkZWYiLCBmbXRfYXJyWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUxKSB7CisgICAgICAgICAgICBlcnJsbigiKioqIE1TRyBwYXJzZSAodXN0cmluZywgY291bnQsIGVycikgZXJyb3IuIik7CisgICAgICAgIH0KKworICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisKKyAgICAgICAgT2JqZWN0W10gZm10X2FyciA9IG1zZy5wYXJzZShzb3VyY2UsIHBwKTsKKyAgICAgICAgaWYgKHBwLmdldEluZGV4KCk9PTAgfHwgZm10X2Fycj09bnVsbCkgeworICAgICAgICAgICAgZXJybG4oIioqKiBNU0cgcGFyc2UgKHVzdHJpbmcsIHBhcnNlcG9zLiwgY291bnQpIGVycm9yLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGZtdF9hcnIubGVuZ3RoICE9IDIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKioqIE1TRyBwYXJzZSAodXN0cmluZywgcGFyc2Vwb3MuLCBjb3VudCkgY291bnQgZXJyLiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBhcnNlKClbMF0iLCAiYWJjIiwgZm10X2FyclswXSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJwYXJzZSgpWzFdIiwgImRlZiIsIGZtdF9hcnJbMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHAuc2V0SW5kZXgoMCk7CisgICAgICAgIE9iamVjdFtdIGZtdGE7CisKKyAgICAgICAgZm10YSA9IChPYmplY3RbXSkgbXNnLnBhcnNlT2JqZWN0KCBzb3VyY2UsIHBwICk7CisgICAgICAgIGlmIChwcC5nZXRJbmRleCgpID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCIqKiogTVNHIHBhcnNlICh1c3RyaW5nLCBPYmplY3QsIHBhcnNlcG9zICkgZXJyb3IuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoZm10YS5sZW5ndGggIT0gMikgeworICAgICAgICAgICAgICAgIGVycmxuKCIqKiogTVNHIHBhcnNlICh1c3RyaW5nLCBjb3VudCwgZXJyKSBjb3VudCBlcnIuIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChmbXRfYXJyLmxlbmd0aCAhPSAyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIqKiogTVNHIHBhcnNlICh1c3RyaW5nLCBwYXJzZXBvcy4sIGNvdW50KSBjb3VudCBlcnIuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJwYXJzZSgpWzBdIiwgImFiYyIsIGZtdF9hcnJbMF0pOworICAgICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoInBhcnNlKClbMV0iLCAiZGVmIiwgZm10X2FyclsxXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogT2YgY291cnNlLCBpbiBKYXZhIHRoZXJlIGlzIG5vIGFkb3B0LCBidXQgd2UgcmV0YWluIHRoZSBzYW1lCisgICAgICogbWV0aG9kIG5hbWUuIFthbGFuXQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBZG9wdCgpCisgICAgeworICAgICAgICBTdHJpbmcgZm9ybWF0U3RyID0gInswLGRhdGV9LHsxfSx7MixudW1iZXJ9IjsKKyAgICAgICAgU3RyaW5nIGZvcm1hdFN0ckNoYW5nZSA9ICJ7MCxudW1iZXJ9LHsxLG51bWJlcn0sezIsZGF0ZX0iOworICAgICAgICBNZXNzYWdlRm9ybWF0IG1zZyA9IG5ldyBNZXNzYWdlRm9ybWF0KGZvcm1hdFN0cik7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbXNnQ21wID0gbmV3IE1lc3NhZ2VGb3JtYXQoZm9ybWF0U3RyKTsKKyAgICAgICAgRm9ybWF0W10gZm9ybWF0cyA9IG1zZy5nZXRGb3JtYXRzKCk7CisgICAgICAgIEZvcm1hdFtdIGZvcm1hdHNDbXAgPSBtc2dDbXAuZ2V0Rm9ybWF0cygpOworICAgICAgICBGb3JtYXRbXSBmb3JtYXRzQ2hnID0gbnVsbDsKKyAgICAgICAgRm9ybWF0W10gZm9ybWF0c0FjdCA9IG51bGw7CisgICAgICAgIEZvcm1hdCBhID0gbnVsbDsKKyAgICAgICAgRm9ybWF0IGIgPSBudWxsOworICAgICAgICBTdHJpbmcgcGF0Q21wOworICAgICAgICBTdHJpbmcgcGF0QWN0OworICAgICAgICBGb3JtYXRbXSBmb3JtYXRzVG9BZG9wdCA9IG51bGw7CisKKyAgICAgICAgaWYgKGZvcm1hdHM9PW51bGwgfHwgZm9ybWF0c0NtcD09bnVsbCB8fCAoZm9ybWF0cy5sZW5ndGggPD0gMCkgfHwgKGZvcm1hdHMubGVuZ3RoICE9IGZvcm1hdHNDbXAubGVuZ3RoKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgRm9ybWF0cyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaW50IGk7CisKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGZvcm1hdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGEgPSBmb3JtYXRzW2ldOworICAgICAgICAgICAgYiA9IGZvcm1hdHNDbXBbaV07CisgICAgICAgICAgICBpZiAoKGEgIT0gbnVsbCkgJiYgKGIgIT0gbnVsbCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWEuZXF1YWxzKGIpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJhICE9IGIiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoKGEgIT0gbnVsbCkgfHwgKGIgIT0gbnVsbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKGEgIT0gbnVsbCkgfHwgKGIgIT0gbnVsbCkiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBtc2cuYXBwbHlQYXR0ZXJuKCBmb3JtYXRTdHJDaGFuZ2UgKTsgLy9zZXQgbXNnIGZvcm1hdHMgdG8gc29tZXRoaW5nIGRpZmZlcmVudAorICAgICAgICBmb3JtYXRzQ2hnID0gbXNnLmdldEZvcm1hdHMoKTsgLy8gdGVzdGVkIGZ1bmN0aW9uCisgICAgICAgIGlmIChmb3JtYXRzQ2hnPT1udWxsIHx8IChmb3JtYXRzQ2hnLmxlbmd0aCAhPSBmb3JtYXRzLmxlbmd0aCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIEZvcm1hdHMiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gZGlmZjsKKyAgICAgICAgZGlmZiA9IHRydWU7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBmb3JtYXRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBhID0gZm9ybWF0c0NoZ1tpXTsKKyAgICAgICAgICAgIGIgPSBmb3JtYXRzQ21wW2ldOworICAgICAgICAgICAgaWYgKChhICE9IG51bGwpICYmIChiICE9IG51bGwpKSB7CisgICAgICAgICAgICAgICAgaWYgKGEuZXF1YWxzKGIpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJmb3JtYXRzQ2hnID09IGZvcm1hdHNDbXAgYXQgaW5kZXggIiArIGkpOworICAgICAgICAgICAgICAgICAgICBkaWZmID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghZGlmZikgeworICAgICAgICAgICAgZXJybG4oIioqKiBNU0cgZ2V0Rm9ybWF0cyBkaWZmIGVyci4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJNU0cgZ2V0Rm9ybWF0cyB0ZXN0ZWQuIik7CisKKyAgICAgICAgbXNnLnNldEZvcm1hdHMoIGZvcm1hdHNDbXAgKTsgLy90ZXN0ZWQgZnVuY3Rpb24KKworICAgICAgICBmb3JtYXRzQWN0ID0gbXNnLmdldEZvcm1hdHMoKTsKKyAgICAgICAgaWYgKGZvcm1hdHNBY3Q9PW51bGwgfHwgKGZvcm1hdHNBY3QubGVuZ3RoIDw9MCkgfHwgKGZvcm1hdHNBY3QubGVuZ3RoICE9IGZvcm1hdHNDbXAubGVuZ3RoKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgRm9ybWF0cyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJtc2dDbXAudG9QYXR0ZXJuKCkiLCBmb3JtYXRTdHIsIG1zZ0NtcC50b1BhdHRlcm4oKSk7CisgICAgICAgIGFzc2VydEVxdWFscygibXNnLnRvUGF0dGVybigpIiwgZm9ybWF0U3RyLCBtc2cudG9QYXR0ZXJuKCkpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBmb3JtYXRzQWN0Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBhID0gZm9ybWF0c0FjdFtpXTsKKyAgICAgICAgICAgIGIgPSBmb3JtYXRzQ21wW2ldOworICAgICAgICAgICAgaWYgKChhICE9IG51bGwpICYmIChiICE9IG51bGwpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFhLmVxdWFscyhiKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZm9ybWF0c0FjdCAhPSBmb3JtYXRzQ21wIGF0IGluZGV4ICIgKyBpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoKGEgIT0gbnVsbCkgfHwgKGIgIT0gbnVsbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKGEgIT0gbnVsbCkgfHwgKGIgIT0gbnVsbCkiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIk1TRyBzZXRGb3JtYXRzIHRlc3RlZC4iKTsKKworICAgICAgICAvLy0tLS0KKworICAgICAgICBtc2cuYXBwbHlQYXR0ZXJuKCBmb3JtYXRTdHJDaGFuZ2UgKTsgLy9zZXQgbXNnIGZvcm1hdHMgdG8gc29tZXRoaW5nIGRpZmZlcmVudAorCisgICAgICAgIGZvcm1hdHNUb0Fkb3B0ID0gbmV3IEZvcm1hdFtmb3JtYXRzQ21wLmxlbmd0aF07CisgICAgICAgIGlmIChmb3JtYXRzVG9BZG9wdD09bnVsbCkgeworICAgICAgICAgICAgZXJybG4oIm1lbW9yeSBhbGxvY2F0aW9uIGVycm9yIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZm9ybWF0c0NtcC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGZvcm1hdHNDbXBbaV0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZvcm1hdHNUb0Fkb3B0W2ldID0gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZm9ybWF0c1RvQWRvcHRbaV0gPSAoRm9ybWF0KSBmb3JtYXRzQ21wW2ldLmNsb25lKCk7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdHNUb0Fkb3B0W2ldPT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDYW4ndCBjbG9uZSBmb3JtYXQgYXQgaW5kZXggIiArIGkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1zZy5zZXRGb3JtYXRzKCBmb3JtYXRzVG9BZG9wdCApOyAvLyBmdW5jdGlvbiB0byB0ZXN0CisKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJtc2dDbXAudG9QYXR0ZXJuKCkiLCBmb3JtYXRTdHIsIG1zZ0NtcC50b1BhdHRlcm4oKSk7CisgICAgICAgIGFzc2VydEVxdWFscygibXNnLnRvUGF0dGVybigpIiwgZm9ybWF0U3RyLCBtc2cudG9QYXR0ZXJuKCkpOworCisgICAgICAgIGZvcm1hdHNBY3QgPSBtc2cuZ2V0Rm9ybWF0cygpOworICAgICAgICBpZiAoZm9ybWF0c0FjdD09bnVsbCB8fCAoZm9ybWF0c0FjdC5sZW5ndGggPD0wKSB8fCAoZm9ybWF0c0FjdC5sZW5ndGggIT0gZm9ybWF0c0NtcC5sZW5ndGgpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBGb3JtYXRzIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZm9ybWF0c0FjdC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgYSA9IGZvcm1hdHNBY3RbaV07CisgICAgICAgICAgICBiID0gZm9ybWF0c0NtcFtpXTsKKyAgICAgICAgICAgIGlmICgoYSAhPSBudWxsKSAmJiAoYiAhPSBudWxsKSkgeworICAgICAgICAgICAgICAgIGlmICghYS5lcXVhbHMoYikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImEgIT0gYiIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmICgoYSAhPSBudWxsKSB8fCAoYiAhPSBudWxsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCIoYSAhPSBudWxsKSB8fCAoYiAhPSBudWxsKSIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbigiTVNHIGFkb3B0Rm9ybWF0cyB0ZXN0ZWQuIik7CisKKyAgICAgICAgLy8tLS0tIGFkb3B0Rm9ybWF0CisKKyAgICAgICAgbXNnLmFwcGx5UGF0dGVybiggZm9ybWF0U3RyQ2hhbmdlICk7IC8vc2V0IG1zZyBmb3JtYXRzIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQKKworICAgICAgICBmb3JtYXRzVG9BZG9wdCA9IG5ldyBGb3JtYXRbZm9ybWF0c0NtcC5sZW5ndGhdOworICAgICAgICBpZiAoZm9ybWF0c1RvQWRvcHQ9PW51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJtZW1vcnkgYWxsb2NhdGlvbiBlcnJvciIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGZvcm1hdHNDbXAubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChmb3JtYXRzQ21wW2ldID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmb3JtYXRzVG9BZG9wdFtpXSA9IG51bGw7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZvcm1hdHNUb0Fkb3B0W2ldID0gKEZvcm1hdCkgZm9ybWF0c0NtcFtpXS5jbG9uZSgpOworICAgICAgICAgICAgICAgIGlmIChmb3JtYXRzVG9BZG9wdFtpXT09bnVsbCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQ2FuJ3QgY2xvbmUgZm9ybWF0IGF0IGluZGV4ICIgKyBpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgZm9ybWF0c0NtcC5sZW5ndGg7IGkrKyApIHsKKyAgICAgICAgICAgIG1zZy5zZXRGb3JtYXQoIGksIGZvcm1hdHNUb0Fkb3B0W2ldICk7IC8vIGZ1bmN0aW9uIHRvIHRlc3QKKyAgICAgICAgfQorCisgICAgICAgIGFzc2VydEVxdWFscygibXNnQ21wLnRvUGF0dGVybigpIiwgZm9ybWF0U3RyLCBtc2dDbXAudG9QYXR0ZXJuKCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIm1zZy50b1BhdHRlcm4oKSIsIGZvcm1hdFN0ciwgbXNnLnRvUGF0dGVybigpKTsKKworICAgICAgICBmb3JtYXRzQWN0ID0gbXNnLmdldEZvcm1hdHMoKTsKKyAgICAgICAgaWYgKGZvcm1hdHNBY3Q9PW51bGwgfHwgKGZvcm1hdHNBY3QubGVuZ3RoIDw9MCkgfHwgKGZvcm1hdHNBY3QubGVuZ3RoICE9IGZvcm1hdHNDbXAubGVuZ3RoKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldHRpbmcgRm9ybWF0cyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGZvcm1hdHNBY3QubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGEgPSBmb3JtYXRzQWN0W2ldOworICAgICAgICAgICAgYiA9IGZvcm1hdHNDbXBbaV07CisgICAgICAgICAgICBpZiAoKGEgIT0gbnVsbCkgJiYgKGIgIT0gbnVsbCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWEuZXF1YWxzKGIpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJhICE9IGIiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoKGEgIT0gbnVsbCkgfHwgKGIgIT0gbnVsbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiKGEgIT0gbnVsbCkgfHwgKGIgIT0gbnVsbCkiKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIk1TRyBhZG9wdEZvcm1hdCB0ZXN0ZWQuIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoYXQgTWVzc2FnZUZvcm1hdCBhY2NvbW9kYXRlcyBtb3JlIHRoYW4gMTAgYXJndW1lbnRzIGFuZAorICAgICAqIG1vcmUgdGhhbiAxMCBzdWJmb3JtYXRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RVbmxpbWl0ZWRBcmdzQW5kU3ViZm9ybWF0cygpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIHBhdHRlcm4gPQorICAgICAgICAgICAgIk9uIHswLGRhdGV9IChha2EgezAsZGF0ZSxzaG9ydH0sIGFrYSB7MCxkYXRlLGxvbmd9KSAiKworICAgICAgICAgICAgImF0IHswLHRpbWV9IChha2EgezAsdGltZSxzaG9ydH0sIGFrYSB7MCx0aW1lLGxvbmd9KSAiKworICAgICAgICAgICAgInRoZXJlIHdlcmUgezEsbnVtYmVyfSB3ZXJqZXMgIisKKyAgICAgICAgICAgICIoYSB7MyxudW1iZXIscGVyY2VudH0gaW5jcmVhc2Ugb3ZlciB7MixudW1iZXJ9KSAiKworICAgICAgICAgICAgImRlc3BpdGUgdGhlIHs0fScncyBlZmZvcnRzICIrCisgICAgICAgICAgICAiYW5kIHRvIGRlbGlnaHQgb2YgezV9LCB7Nn0sIHs3fSwgezh9LCB7OX0sIGFuZCB7MTB9IHsxMX0uIjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE1lc3NhZ2VGb3JtYXQgbXNnID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybik7CisKKyAgICAgICAgICAgIGZpbmFsIE9iamVjdCBBUkdTW10gPSB7CisgICAgICAgICAgICAgICAgbmV3IERhdGUoMTAwMDAwMDAwMDAwMDBMKSwKKyAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigxMzAzKSwKKyAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigxMjAyKSwKKyAgICAgICAgICAgICAgICBuZXcgRG91YmxlKDEzMDMuMC8xMjAyIC0gMSksCisgICAgICAgICAgICAgICAgIkdsaW1tdW5nIiwKKyAgICAgICAgICAgICAgICAidGhlIHByaW50ZXJzIiwKKyAgICAgICAgICAgICAgICAiTmljayIsCisgICAgICAgICAgICAgICAgImhpcyBmYXRoZXIiLAorICAgICAgICAgICAgICAgICJoaXMgbW90aGVyIiwKKyAgICAgICAgICAgICAgICAidGhlIHNwaWRkbGVzIiwKKyAgICAgICAgICAgICAgICAib2YgY291cnNlIiwKKyAgICAgICAgICAgICAgICAiSG9yYWNlIgorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0KKyAgICAgICAgICAgICAgICAiT24gTm92IDIwLCAyMjg2IChha2EgMTEvMjAvODYsIGFrYSBOb3ZlbWJlciAyMCwgMjI4NikgIisKKyAgICAgICAgICAgICAgICAiYXQgOTo0Njo0MCBBTSAoYWthIDk6NDYgQU0sIGFrYSA5OjQ2OjQwIEFNIFBTVCkgIisKKyAgICAgICAgICAgICAgICAidGhlcmUgd2VyZSAxLDMwMyB3ZXJqZXMgIisKKyAgICAgICAgICAgICAgICAiKGEgOCUgaW5jcmVhc2Ugb3ZlciAxLDIwMikgIisKKyAgICAgICAgICAgICAgICAiZGVzcGl0ZSB0aGUgR2xpbW11bmcncyBlZmZvcnRzICIrCisgICAgICAgICAgICAgICAgImFuZCB0byBkZWxpZ2h0IG9mIHRoZSBwcmludGVycywgTmljaywgaGlzIGZhdGhlciwgIisKKyAgICAgICAgICAgICAgICAiaGlzIG1vdGhlciwgdGhlIHNwaWRkbGVzLCBhbmQgb2YgY291cnNlIEhvcmFjZS4iOworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiZm9ybWF0IiwgZXhwZWN0ZWQsIG1zZy5mb3JtYXQoQVJHUykpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3RvciBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHRlc3QgUkJORiBleHRlbnNpb25zIHRvIG1lc3NhZ2UgZm9ybWF0CisgICAgcHVibGljIHZvaWQgVGVzdFJCTkYoKSB7CisgICAgICAgIC8vIFdBUk5JTkc6IHRoaXMgZGVwZW5kcyBvbiB0aGUgUkJORiBmb3JtYXRzIGZvciBlbl9VUworICAgICAgICBMb2NhbGUgbG9jYWxlID0gTG9jYWxlLlVTOworICAgICAgICBTdHJpbmdbXSB2YWx1ZXMgPSB7CisgICAgICAgICAgICAvLyBkZWNpbWFsIHZhbHVlcyBkbyBub3QgZm9ybWF0IGNvbXBsZXRlbHkgZm9yIG9yZGluYWwgb3IgZHVyYXRpb24sIGFuZAorICAgICAgICAgICAgLy8gZG8gbm90IGFsd2F5cyBwYXJzZSwgc28gZG8gbm90IGluY2x1ZGUgdGhlbQorICAgICAgICAgICAgIjAiLCAiMSIsICIxMiIsICIxMDAiLCAiMTIzIiwgIjEwMDEiLCAiMTIzLDQ1NiIsICItMTciLAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSBmb3JtYXRzID0geworICAgICAgICAgICAgIlRoZXJlIGFyZSB7MCxzcGVsbG91dH0gZmlsZXMgdG8gc2VhcmNoLiIsCisgICAgICAgICAgICAiVGhlcmUgYXJlIHswLHNwZWxsb3V0LCVzaW1wbGlmaWVkfSBmaWxlcyB0byBzZWFyY2guIiwKKyAgICAgICAgICAgICJUaGUgYm9ndXMgc3BlbGxvdXQgezAsc3BlbGxvdXQsJUJPR1VTfSBmaWxlcyBiZWhhdmVzIGxpa2UgdGhlIGRlZmF1bHQuIiwKKyAgICAgICAgICAgICJUaGlzIGlzIHRoZSB7MCxvcmRpbmFsfSBmaWxlIHRvIHNlYXJjaC4iLCAvLyBUT0RPIGZpeCBidWcsIG9yZGluYWwgZG9lcyBub3QgcGFyc2UKKyAgICAgICAgICAgICJTZWFyY2hpbmcgdGhpcyBmaWxlIHdpbGwgdGFrZSB7MCxkdXJhdGlvbn0gdG8gY29tcGxldGUuIiwKKyAgICAgICAgICAgICJTZWFyY2hpbmcgdGhpcyBmaWxlIHdpbGwgdGFrZSB7MCxkdXJhdGlvbiwld2l0aC13b3Jkc30gdG8gY29tcGxldGUuIiwKKyAgICAgICAgfTsKKyAgICAgICAgZmluYWwgTnVtYmVyRm9ybWF0IG51bUZtdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICBPYmplY3RbXSBhcmdzID0gbmV3IE9iamVjdFsxXTsKKyAgICAgICAgTnVtYmVyIG51bSA9IG51bGw7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZm9ybWF0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBmbXQgPSBuZXcgTWVzc2FnZUZvcm1hdChmb3JtYXRzW2ldLCBsb2NhbGUpOworICAgICAgICAgICAgbG9nbG4oIlRlc3RpbmcgZm9ybWF0IHBhdHRlcm46ICciICsgZm9ybWF0c1tpXSArICInIik7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHZhbHVlcy5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIG51bSA9IG51bUZtdC5wYXJzZSh2YWx1ZXNbal0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiZmFpbGVkIHRvIHBhcnNlIHRlc3QgYXJndW1lbnQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXJnc1swXSA9IG51bTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZm10LmZvcm1hdChhcmdzKTsKKyAgICAgICAgICAgICAgICBsb2dsbigidmFsdWU6ICIgKyBudW0gKyAiIC0tPiAiICsgcmVzdWx0KTsKKworICAgICAgICAgICAgICAgIGlmIChpICE9IDMpIHsgLy8gVE9ETzogZml4IHRoaXMsIGZvciBub3cgc2tpcCBvcmRpbmFsIHBhcnNpbmcgKGZvcm1hdCBzdHJpbmcgYXQgaW5kZXggMykKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFtdIHBhcnNlZEFyZ3MgPSBmbXQucGFyc2UocmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZWRBcmdzLmxlbmd0aCAhPSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oInBhcnNlIHJldHVybmVkICIgKyBwYXJzZWRBcmdzLmxlbmd0aCArICIgYXJncyIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghcGFyc2VkQXJnc1swXS5lcXVhbHMobnVtKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJwYXJzZWQgYXJndW1lbnQgIiArIHBhcnNlZEFyZ3NbMF0gKyAiICE9ICIgKyBudW0pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oInBhcnNlIG9mICciICsgcmVzdWx0ICsgIiByZXR1cm5lZCBleGNlcHRpb246ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2V0R2V0Rm9ybWF0cygpCisgICAgeworICAgICAgICBPYmplY3QgYXJndW1lbnRzW10gPSB7CisgICAgICAgICAgICBuZXcgRG91YmxlKDQ1Ni44MyksCisgICAgICAgICAgICBuZXcgRGF0ZSg4NzEwNjgwMDAwMDBMKSwKKyAgICAgICAgICAgICJkZXBvc2l0IgorICAgICAgICAgICAgfTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIFN0cmluZyBmb3JtYXRTdHIgPSAiQXQgPHRpbWU+IG9uIHsxLGRhdGV9LCB5b3UgbWFkZSBhIHsyfSBvZiB7MCxudW1iZXIsY3VycmVuY3l9LiI7CisgICAgICAgIC8vIG9yaWdpbmFsIGV4cGVjdGVkIGZvcm1hdCByZXN1bHQKKyAgICAgICAgU3RyaW5nIGNvbXBhcmVTdHIgPSAiQXQgPHRpbWU+IG9uIEF1ZyA4LCAxOTk3LCB5b3UgbWFkZSBhIGRlcG9zaXQgb2YgJDQ1Ni44My4iOworICAgICAgICAvLyB0aGUgZGF0ZSBiZWluZyBHZXJtYW4tc3R5bGUsIGJ1dCB0aGUgY3VycmVuY3kgYmVpbmcgRW5nbGlzaC1zdHlsZQorICAgICAgICBTdHJpbmcgY29tcGFyZVN0cjIgPSAiQXQgPHRpbWU+IG9uIDA4LjA4LjE5OTcsIHlvdSBtYWRlIGEgZGVwb3NpdCBvZiAiOworICAgICAgICBjb21wYXJlU3RyMiArPSAnXHUwMGE0JzsKKyAgICAgICAgY29tcGFyZVN0cjIgKz0gIjQ1Ni44My4iOworICAgICAgICAvLyBib3RoIGRhdGUgYW5kIGN1cnJlbmN5IGZvcm1hdHMgYXJlIEdlcm1hbi1zdHlsZQorICAgICAgICBTdHJpbmcgY29tcGFyZVN0cjMgPSAiQXQgPHRpbWU+IG9uIDA4LjA4LjE5OTcsIHlvdSBtYWRlIGEgZGVwb3NpdCBvZiAiOworICAgICAgICBjb21wYXJlU3RyMyArPSAnXHUwMGE0JzsKKyAgICAgICAgY29tcGFyZVN0cjMgKz0gIiA0NTYsODMuIjsKKworICAgICAgICBNZXNzYWdlRm9ybWF0IG1zZyA9IG5ldyBNZXNzYWdlRm9ybWF0KGZvcm1hdFN0ciwgVUxvY2FsZS5VUyk7CisgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgoMCk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIHJlc3VsdCA9IG1zZy5mb3JtYXQoCisgICAgICAgICAgICBhcmd1bWVudHMsCisgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICBwb3MpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsIGNvbXBhcmVTdHIsIHJlc3VsdC50b1N0cmluZygpKTsKKworICAgICAgICAvLyBjb25zdHJ1Y3RzIGEgRm9ybWF0IGFycmF5IHdpdGggYSBFbmdsaXNoLXN0eWxlIEN1cnJlbmN5IGZvcm1hdHRlcgorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgYSBHZXJtYW4tc3R5bGUgRGF0ZSBmb3JtYXR0ZXIKKyAgICAgICAgLy8gICAgICBtaWdodCBub3QgbWVhbmluZ2Z1bCwganVzdCBmb3IgdGVzdGluZyBzZXRGb3JtYXRzQnlBcmdJbmRleAorICAgICAgICBGb3JtYXRbXSBmbXRzID0gbmV3IEZvcm1hdFtdIHsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKFVMb2NhbGUuRU5HTElTSCksCisgICAgICAgICAgICBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkRFRkFVTFQsIFVMb2NhbGUuR0VSTUFOKQorICAgICAgICAgICAgfTsKKworICAgICAgICBtc2cuc2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleChmbXRzKTsKKyAgICAgICAgcmVzdWx0LnNldExlbmd0aCgwKTsKKyAgICAgICAgcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIHJlc3VsdCA9IG1zZy5mb3JtYXQoCisgICAgICAgICAgICBhcmd1bWVudHMsCisgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICBwb3MpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsIGNvbXBhcmVTdHIyLCByZXN1bHQudG9TdHJpbmcoKSk7CisKKyAgICAgICAgLy8gQ29uc3RydWN0IGEgR2VybWFuLXN0eWxlIEN1cnJlbmN5IGZvcm1hdHRlciwgcmVwbGFjZSB0aGUgY29ycmVzcG9uZGluZyBvbmUKKyAgICAgICAgLy8gVGh1cyBib3RoIGZvcm1hdHRlcnMgc2hvdWxkIGZvcm1hdCBvYmplY3RzIHdpdGggR2VybWFuLXN0eWxlCisgICAgICAgIEZvcm1hdCBuZXdGbXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShVTG9jYWxlLkdFUk1BTik7CisgICAgICAgIG1zZy5zZXRGb3JtYXRCeUFyZ3VtZW50SW5kZXgoMCwgbmV3Rm10KTsKKyAgICAgICAgcmVzdWx0LnNldExlbmd0aCgwKTsKKyAgICAgICAgcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIHJlc3VsdCA9IG1zZy5mb3JtYXQoCisgICAgICAgICAgICBhcmd1bWVudHMsCisgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICBwb3MpOworICAgICAgICBhc3NlcnRFcXVhbHMoImZvcm1hdCIsIGNvbXBhcmVTdHIzLCByZXN1bHQudG9TdHJpbmcoKSk7CisKKyAgICAgICAgLy8gdmVyaWZ5IGdldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXgKKyAgICAgICAgLy8gICB5b3Ugc2hvdWxkIGdvdCB0aHJlZSBmb3JtYXRzIGJ5IHRoYXQKKyAgICAgICAgLy8gICAgICAgICAgLSBEZWNpbWFsRm9ybWF0ICAgICBsb2NhbGU6IGRlCisgICAgICAgIC8vICAgICAgICAgIC0gU2ltcGxlRGF0ZUZvcm1hdCAgbG9jYWxlOiBkZQorICAgICAgICAvLyAgICAgICAgICAtIG51bGwKKyAgICAgICAgRm9ybWF0W10gZm10czIgPSBtc2cuZ2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleCgpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjFzdCBzdWJmb3JtbWF0ZXI6IEZvcm1hdCBDbGFzcyIsICJjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQiLCBmbXRzMlswXS5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMXN0IHN1YmZvcm1tYXRlcjogaXRzIExvY2FsZSIsIFVMb2NhbGUuR0VSTUFOLCAoKFVGb3JtYXQpZm10czJbMF0pLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIjJuZCBzdWJmb3JtYXR0ZXI6IEZvcm1hdCBDbGFzcyIsICJjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQiLCBmbXRzMlsxXS5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygiMm5kIHN1YmZvcm1tYXRlcjogaXRzIExvY2FsZSIsIFVMb2NhbGUuR0VSTUFOLCAoKFVGb3JtYXQpZm10czJbMV0pLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSkpOworICAgICAgICBhc3NlcnRUcnVlKCJUaGUgdGhpcmQgc3ViRm9ybWF0dGVyIGlzIG51bGwiLCBudWxsID09IGZtdHMyWzJdKTsKKyAgICB9CisKKyAgICAvLyBUZXN0IHRoZSBmaXggcGF0dGVybiBhcGkKKyAgICBwdWJsaWMgdm9pZCBUZXN0QXV0b1F1b3RlQXBvc3Ryb3BoZSgpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gcGF0dGVybnMgPSB7IC8vIG5ldyBwYXR0ZXJuLCBleHBlY3RlZCBwYXR0ZXJuCisgICAgICAgICAgICAiJyIsICInJyIsCisgICAgICAgICAgICAiJyciLCAiJyciLAorICAgICAgICAgICAgIid7IiwgIid7JyIsCisgICAgICAgICAgICAiJyB7IiwgIicnIHsiLAorICAgICAgICAgICAgIidhIiwgIicnYSIsCisgICAgICAgICAgICAiJ3snYSIsICIneydhIiwKKyAgICAgICAgICAgICIne2EnIiwgIid7YSciLAorICAgICAgICAgICAgIid7fSIsICIne30nIiwKKyAgICAgICAgICAgICJ7JyIsICJ7JyIsCisgICAgICAgICAgICAieydhIiwgInsnYSIsCisgICAgICAgICAgICAieydhe30nYX0nYSIsICJ7J2F7fSdhfScnYSIsCisJICAgICInfSciLCAiJ30nIiwKKwkgICAgIid9ICd7J30nIiwgIid9ICd7J30nJyIsCisJICAgICInfSB7e3snJyIsICInfSB7e3snJyciLAorICAgICAgICB9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhdHRlcm5zLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlsiICsgKGkvMikgKyAiXSBcIiIgKyBwYXR0ZXJuc1tpXSArICJcIiIsIHBhdHRlcm5zW2krMV0sIE1lc3NhZ2VGb3JtYXQuYXV0b1F1b3RlQXBvc3Ryb3BoZShwYXR0ZXJuc1tpXSkpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9UaW1lWm9uZUFsaWFzZXMudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2Zvcm1hdC9UaW1lWm9uZUFsaWFzZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5ZmZlYWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1RpbWVab25lQWxpYXNlcy50eHQKQEAgLTAsMCArMSwxNjUgQEAKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb3B5cmlnaHQgKGMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQW1lcmljYS9BdGthIDsgQW1lcmljYS9BZGFrCitBbWVyaWNhL0Vuc2VuYWRhIDsgQW1lcmljYS9UaWp1YW5hCitBbWVyaWNhL0ZvcnRfV2F5bmUgOyBBbWVyaWNhL0luZGlhbmFwb2xpcworQW1lcmljYS9JbmRpYW5hL0luZGlhbmFwb2xpcyA7IEFtZXJpY2EvSW5kaWFuYXBvbGlzCitBbWVyaWNhL0tlbnR1Y2t5L0xvdWlzdmlsbGUgOyBBbWVyaWNhL0xvdWlzdmlsbGUKK0FtZXJpY2EvS25veF9JTiA7IEFtZXJpY2EvSW5kaWFuYS9Lbm94CitBbWVyaWNhL1BvcnRvX0FjcmUgOyBBbWVyaWNhL1Jpb19CcmFuY28KK0FtZXJpY2EvUm9zYXJpbyA7IEFtZXJpY2EvQ29yZG9iYQorQW1lcmljYS9TaGlwcm9jayA7IEFtZXJpY2EvRGVudmVyCitBbWVyaWNhL1ZpcmdpbiA7IEFtZXJpY2EvU3RfVGhvbWFzCitBbnRhcmN0aWNhL1NvdXRoX1BvbGUgOyBBbnRhcmN0aWNhL01jTXVyZG8KK0FyY3RpYy9Mb25neWVhcmJ5ZW4gOyBFdXJvcGUvT3NsbworQXNpYS9Bc2hraGFiYWQgOyBBc2lhL0FzaGdhYmF0CitBc2lhL0NodW5na2luZyA7IEFzaWEvQ2hvbmdxaW5nCitBc2lhL0RhY2NhIDsgQXNpYS9EaGFrYQorQXNpYS9Jc3RhbmJ1bCA7IEV1cm9wZS9Jc3RhbmJ1bAorQXNpYS9NYWNhbyA7IEFzaWEvTWFjYXUKK0FzaWEvVGVsX0F2aXYgOyBBc2lhL0plcnVzYWxlbQorQXNpYS9UaGltYnUgOyBBc2lhL1RoaW1waHUKK0FzaWEvVWp1bmdfUGFuZGFuZyA7IEFzaWEvTWFrYXNzYXIKK0FzaWEvVWxhbl9CYXRvciA7IEFzaWEvVWxhYW5iYWF0YXIKKyNBdGxhbnRpYy9KYW5fTWF5ZW4gOyBFdXJvcGUvT3NsbworQXVzdHJhbGlhL0FDVCA7IEF1c3RyYWxpYS9TeWRuZXkKK0F1c3RyYWxpYS9DYW5iZXJyYSA7IEF1c3RyYWxpYS9TeWRuZXkKK0F1c3RyYWxpYS9MSEkgOyBBdXN0cmFsaWEvTG9yZF9Ib3dlCitBdXN0cmFsaWEvTlNXIDsgQXVzdHJhbGlhL1N5ZG5leQorQXVzdHJhbGlhL05vcnRoIDsgQXVzdHJhbGlhL0RhcndpbgorQXVzdHJhbGlhL1F1ZWVuc2xhbmQgOyBBdXN0cmFsaWEvQnJpc2JhbmUKK0F1c3RyYWxpYS9Tb3V0aCA7IEF1c3RyYWxpYS9BZGVsYWlkZQorQXVzdHJhbGlhL1Rhc21hbmlhIDsgQXVzdHJhbGlhL0hvYmFydAorQXVzdHJhbGlhL1ZpY3RvcmlhIDsgQXVzdHJhbGlhL01lbGJvdXJuZQorQXVzdHJhbGlhL1dlc3QgOyBBdXN0cmFsaWEvUGVydGgKK0F1c3RyYWxpYS9ZYW5jb3dpbm5hIDsgQXVzdHJhbGlhL0Jyb2tlbl9IaWxsCitCcmF6aWwvQWNyZSA7IEFtZXJpY2EvUG9ydG9fQWNyZQorQnJhemlsL0RlTm9yb25oYSA7IEFtZXJpY2EvTm9yb25oYQorQnJhemlsL0Vhc3QgOyBBbWVyaWNhL1Nhb19QYXVsbworQnJhemlsL1dlc3QgOyBBbWVyaWNhL01hbmF1cworQ1NUNkNEVCA7IEFtZXJpY2EvQ2hpY2FnbworQ2FuYWRhL0F0bGFudGljIDsgQW1lcmljYS9IYWxpZmF4CitDYW5hZGEvQ2VudHJhbCA7IEFtZXJpY2EvV2lubmlwZWcKK0NhbmFkYS9FYXN0LVNhc2thdGNoZXdhbiA7IEFtZXJpY2EvUmVnaW5hCitDYW5hZGEvRWFzdGVybiA7IEFtZXJpY2EvVG9yb250bworQ2FuYWRhL01vdW50YWluIDsgQW1lcmljYS9FZG1vbnRvbgorQ2FuYWRhL05ld2ZvdW5kbGFuZCA7IEFtZXJpY2EvU3RfSm9obnMKK0NhbmFkYS9QYWNpZmljIDsgQW1lcmljYS9WYW5jb3V2ZXIKK0NhbmFkYS9TYXNrYXRjaGV3YW4gOyBBbWVyaWNhL1JlZ2luYQorQ2FuYWRhL1l1a29uIDsgQW1lcmljYS9XaGl0ZWhvcnNlCitDaGlsZS9Db250aW5lbnRhbCA7IEFtZXJpY2EvU2FudGlhZ28KK0NoaWxlL0Vhc3RlcklzbGFuZCA7IFBhY2lmaWMvRWFzdGVyCitDdWJhIDsgQW1lcmljYS9IYXZhbmEKK0VTVCA7IEFtZXJpY2EvSW5kaWFuYXBvbGlzCitFU1Q1RURUIDsgQW1lcmljYS9OZXdfWW9yaworRWd5cHQgOyBBZnJpY2EvQ2Fpcm8KK0VpcmUgOyBFdXJvcGUvRHVibGluCitFdGMvR01UKzAgOyBFdGMvR01UCitFdGMvR01ULTAgOyBFdGMvR01UCitFdGMvR01UMCA7IEV0Yy9HTVQKK0V0Yy9HcmVlbndpY2ggOyBFdGMvR01UCitFdGMvVW5pdmVyc2FsIDsgRXRjL1VUQworRXRjL1p1bHUgOyBFdGMvVVRDCisjRXVyb3BlL0JyYXRpc2xhdmEgOyBFdXJvcGUvUHJhZ3VlCisjRXVyb3BlL0xqdWJsamFuYSA7IEV1cm9wZS9CZWxncmFkZQorRXVyb3BlL05pY29zaWEgOyBBc2lhL05pY29zaWEKKyNFdXJvcGUvU2FuX01hcmlubyA7IEV1cm9wZS9Sb21lCisjRXVyb3BlL1NhcmFqZXZvIDsgRXVyb3BlL0JlbGdyYWRlCisjRXVyb3BlL1Nrb3BqZSA7IEV1cm9wZS9CZWxncmFkZQorRXVyb3BlL1RpcmFzcG9sIDsgRXVyb3BlL0NoaXNpbmF1CisjRXVyb3BlL1ZhdGljYW4gOyBFdXJvcGUvUm9tZQorI0V1cm9wZS9aYWdyZWIgOyBFdXJvcGUvQmVsZ3JhZGUKK0dCIDsgRXVyb3BlL0xvbmRvbgorR0ItRWlyZSA7IEV1cm9wZS9Mb25kb24KK0dNVCA7IEV0Yy9HTVQKK0dNVCswIDsgRXRjL0dNVCswCitHTVQtMCA7IEV0Yy9HTVQtMAorR01UMCA7IEV0Yy9HTVQwCitHcmVlbndpY2ggOyBFdGMvR3JlZW53aWNoCitIU1QgOyBQYWNpZmljL0hvbm9sdWx1CitIb25na29uZyA7IEFzaWEvSG9uZ19Lb25nCitJY2VsYW5kIDsgQXRsYW50aWMvUmV5a2phdmlrCitJcmFuIDsgQXNpYS9UZWhyYW4KK0lzcmFlbCA7IEFzaWEvSmVydXNhbGVtCitKYW1haWNhIDsgQW1lcmljYS9KYW1haWNhCitKYXBhbiA7IEFzaWEvVG9reW8KK0t3YWphbGVpbiA7IFBhY2lmaWMvS3dhamFsZWluCitMaWJ5YSA7IEFmcmljYS9Ucmlwb2xpCitNU1QgOyBBbWVyaWNhL1Bob2VuaXgKK01TVDdNRFQgOyBBbWVyaWNhL0RlbnZlcgorTWV4aWNvL0JhamFOb3J0ZSA7IEFtZXJpY2EvVGlqdWFuYQorTWV4aWNvL0JhamFTdXIgOyBBbWVyaWNhL01hemF0bGFuCitNZXhpY28vR2VuZXJhbCA7IEFtZXJpY2EvTWV4aWNvX0NpdHkKK01pZGVhc3QvUml5YWRoODcgOyBBc2lhL1JpeWFkaDg3CitNaWRlYXN0L1JpeWFkaDg4IDsgQXNpYS9SaXlhZGg4OAorTWlkZWFzdC9SaXlhZGg4OSA7IEFzaWEvUml5YWRoODkKK05aIDsgUGFjaWZpYy9BdWNrbGFuZAorTlotQ0hBVCA7IFBhY2lmaWMvQ2hhdGhhbQorTmF2YWpvIDsgQW1lcmljYS9EZW52ZXIKK1BSQyA7IEFzaWEvU2hhbmdoYWkKK1BTVDhQRFQgOyBBbWVyaWNhL0xvc19BbmdlbGVzCitQYWNpZmljL1NhbW9hIDsgUGFjaWZpYy9QYWdvX1BhZ28KK1BvbGFuZCA7IEV1cm9wZS9XYXJzYXcKK1BvcnR1Z2FsIDsgRXVyb3BlL0xpc2JvbgorUk9DIDsgQXNpYS9UYWlwZWkKK1JPSyA7IEFzaWEvU2VvdWwKK1NpbmdhcG9yZSA7IEFzaWEvU2luZ2Fwb3JlCitTeXN0ZW1WL0FTVDQgOyBBbWVyaWNhL1B1ZXJ0b19SaWNvCitTeXN0ZW1WL0FTVDRBRFQgOyBBbWVyaWNhL0hhbGlmYXgKK1N5c3RlbVYvQ1NUNiA7IEFtZXJpY2EvUmVnaW5hCitTeXN0ZW1WL0NTVDZDRFQgOyBBbWVyaWNhL0NoaWNhZ28KK1N5c3RlbVYvRVNUNSA7IEFtZXJpY2EvSW5kaWFuYXBvbGlzCitTeXN0ZW1WL0VTVDVFRFQgOyBBbWVyaWNhL05ld19Zb3JrCitTeXN0ZW1WL0hTVDEwIDsgUGFjaWZpYy9Ib25vbHVsdQorU3lzdGVtVi9NU1Q3IDsgQW1lcmljYS9QaG9lbml4CitTeXN0ZW1WL01TVDdNRFQgOyBBbWVyaWNhL0RlbnZlcgorU3lzdGVtVi9QU1Q4IDsgUGFjaWZpYy9QaXRjYWlybgorU3lzdGVtVi9QU1Q4UERUIDsgQW1lcmljYS9Mb3NfQW5nZWxlcworU3lzdGVtVi9ZU1Q5IDsgUGFjaWZpYy9HYW1iaWVyCitTeXN0ZW1WL1lTVDlZRFQgOyBBbWVyaWNhL0FuY2hvcmFnZQorVHVya2V5IDsgRXVyb3BlL0lzdGFuYnVsCitVQ1QgOyBFdGMvVUNUCitVUy9BbGFza2EgOyBBbWVyaWNhL0FuY2hvcmFnZQorVVMvQWxldXRpYW4gOyBBbWVyaWNhL0FkYWsKK1VTL0FyaXpvbmEgOyBBbWVyaWNhL1Bob2VuaXgKK1VTL0NlbnRyYWwgOyBBbWVyaWNhL0NoaWNhZ28KK1VTL0Vhc3QtSW5kaWFuYSA7IEFtZXJpY2EvSW5kaWFuYXBvbGlzCitVUy9FYXN0ZXJuIDsgQW1lcmljYS9OZXdfWW9yaworVVMvSGF3YWlpIDsgUGFjaWZpYy9Ib25vbHVsdQorVVMvSW5kaWFuYS1TdGFya2UgOyBBbWVyaWNhL0luZGlhbmEvS25veAorVVMvTWljaGlnYW4gOyBBbWVyaWNhL0RldHJvaXQKK1VTL01vdW50YWluIDsgQW1lcmljYS9EZW52ZXIKK1VTL1BhY2lmaWMgOyBBbWVyaWNhL0xvc19BbmdlbGVzCitVUy9QYWNpZmljLU5ldyA7IEFtZXJpY2EvTG9zX0FuZ2VsZXMKK1VTL1NhbW9hIDsgUGFjaWZpYy9QYWdvX1BhZ28KK1VUQyA7IEV0Yy9VVEMKK1VuaXZlcnNhbCA7IEV0Yy9Vbml2ZXJzYWwKK1ctU1UgOyBFdXJvcGUvTW9zY293CitadWx1IDsgRXRjL1p1bHUKK0FDVCA7IEF1c3RyYWxpYS9EYXJ3aW4KK0FFVCA7IEF1c3RyYWxpYS9TeWRuZXkKK0FHVCA7IEFtZXJpY2EvQnVlbm9zX0FpcmVzCitBUlQgOyBBZnJpY2EvQ2Fpcm8KK0FTVCA7IEFtZXJpY2EvQW5jaG9yYWdlCitCRVQgOyBBbWVyaWNhL1Nhb19QYXVsbworQlNUIDsgQXNpYS9EaGFrYQorQ0FUIDsgQWZyaWNhL0hhcmFyZQorQ05UIDsgQW1lcmljYS9TdF9Kb2hucworQ1NUIDsgQW1lcmljYS9DaGljYWdvCitDVFQgOyBBc2lhL1NoYW5naGFpCitFQVQgOyBBZnJpY2EvQWRkaXNfQWJhYmEKK0VDVCA7IEV1cm9wZS9QYXJpcworSUVUIDsgQW1lcmljYS9JbmRpYW5hcG9saXMKK0lTVCA7IEFzaWEvQ2FsY3V0dGEKK0pTVCA7IEFzaWEvVG9reW8KK01JVCA7IFBhY2lmaWMvQXBpYQorTkVUIDsgQXNpYS9ZZXJldmFuCitOU1QgOyBQYWNpZmljL0F1Y2tsYW5kCitQTFQgOyBBc2lhL0thcmFjaGkKK1BOVCA7IEFtZXJpY2EvUGhvZW5peAorUFJUIDsgQW1lcmljYS9QdWVydG9fUmljbworUFNUIDsgQW1lcmljYS9Mb3NfQW5nZWxlcworU1NUIDsgUGFjaWZpYy9HdWFkYWxjYW5hbAorVlNUIDsgQXNpYS9TYWlnb24KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1dyaXRlTnVtYmVyRm9ybWF0U2VyaWFsVGVzdERhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9mb3JtYXQvV3JpdGVOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgxYjU3NWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvZm9ybWF0L1dyaXRlTnVtYmVyRm9ybWF0U2VyaWFsVGVzdERhdGEuamF2YQpAQCAtMCwwICsxLDg5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5mb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogQHZlcnNpb24gICAgIDEuMAorICogQGF1dGhvciBSYW0gVmlzd2FuYWRoYQorICovCitwdWJsaWMgY2xhc3MgV3JpdGVOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YSB7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBoZWFkZXI9Ii8qXG4iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAqIENvcHlyaWdodCAoQykgMjAwMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqXG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAqL1xuXG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LmZvcm1hdDtcblxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInB1YmxpYyBjbGFzcyBOdW1iZXJGb3JtYXRTZXJpYWxUZXN0RGF0YSB7XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgLy9nZXQgQ29udGVudFxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIHB1YmxpYyBzdGF0aWMgYnl0ZVtdW10gZ2V0Q29udGVudCgpIHtcbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIHJldHVybiBjb250ZW50O1xuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIH1cbiI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGZvb3RlciA9IlxuICAgIGZpbmFsIHN0YXRpYyBieXRlW11bXSBjb250ZW50ID0ge2dlbmVyYWxJbnN0YW5jZSwgY3VycmVuY3lJbnN0YW5jZSwgcGVyY2VudEluc3RhbmNlLCBzY2llbnRpZmljSW5zdGFuY2V9O1xuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIn1cbiI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncyl7CisgICAgICAgIE51bWJlckZvcm1hdCBuZiAgICAgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG5mYyAgICA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIE51bWJlckZvcm1hdCBuZnAgICAgID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBOdW1iZXJGb3JtYXQgbmZzcCAgICAgPSBOdW1iZXJGb3JtYXQuZ2V0U2NpZW50aWZpY0luc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIAorICAgICAgICB0cnl7CisgICAgICAgICAgICBGaWxlT3V0cHV0U3RyZWFtIGZpbGUgPSBuZXcgRmlsZU91dHB1dFN0cmVhbSgiTnVtYmVyRm9ybWF0U2VyaWFsVGVzdERhdGEuamF2YSIpOworICAgICAgICAgICAgZmlsZS53cml0ZShoZWFkZXIuZ2V0Qnl0ZXMoKSk7CisgICAgICAgICAgICB3cml0ZShmaWxlLChPYmplY3QpbmYsImdlbmVyYWxJbnN0YW5jZSIsICIvL051bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuVVMpIik7CisgICAgICAgICAgICB3cml0ZShmaWxlLChPYmplY3QpbmZjLCJjdXJyZW5jeUluc3RhbmNlIiwiLy9OdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShMb2NhbGUuVVMpIik7CisgICAgICAgICAgICB3cml0ZShmaWxlLChPYmplY3QpbmZwLCJwZXJjZW50SW5zdGFuY2UiLCIvL051bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlLlVTKSIpOworICAgICAgICAgICAgd3JpdGUoZmlsZSwoT2JqZWN0KW5mc3AsInNjaWVudGlmaWNJbnN0YW5jZSIsIi8vTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpIik7CisgICAgICAgICAgICBmaWxlLndyaXRlKGZvb3Rlci5nZXRCeXRlcygpKTsgICAgICAgICAgICAKKyAgICAgICAgICAgIGZpbGUuY2xvc2UoKTsKKyAgICAgICAgfWNhdGNoKCBFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHdyaXRlKEZpbGVPdXRwdXRTdHJlYW0gZmlsZSxPYmplY3QgbyAsU3RyaW5nIG5hbWUsU3RyaW5nIGNvbW1lbnQpeworICAgICAgICB0cnl7CisgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYnRzID0gIG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvcyA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYnRzKTsgICAgCisgICAgICAgICAgICBvcy53cml0ZU9iamVjdCgoT2JqZWN0KW8pOworICAgICAgICAgICAgb3MuZmx1c2goKTsKKyAgICAgICAgICAgIG9zLmNsb3NlKCk7CisgICAgICAgICAgICBieXRlW10gbXlBcnIgPSBidHMudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgICAgIC8vU3RyaW5nIHRlbXAgPSBuZXcgU3RyaW5nKG15QXJyKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAgICIrY29tbWVudCsgIiA6Iik7CisgICAgICAgICAgICAvKlN5c3RlbS5vdXQucHJpbnRsbigibWluaW11bUludGVnZXJEaWdpdHMgOiAiICArICh0ZW1wLmluZGV4T2YoIm1pbmltdW1JbnRlZ2VyRGlnaXRzIikrIm1pbmltdW1JbnRlZ2VyRGlnaXRzIi5sZW5ndGgoKSkpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJtYXhpbXVtSW50ZWdlckRpZ2l0cyA6ICIgICsgKHRlbXAuaW5kZXhPZigibWF4aW11bUludGVnZXJEaWdpdHMiKSsibWF4aW11bUludGVnZXJEaWdpdHMiLmxlbmd0aCgpKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm1pbmltdW1GcmFjdGlvbkRpZ2l0cyA6ICIgKyAodGVtcC5pbmRleE9mKCJtaW5pbXVtRnJhY3Rpb25EaWdpdHMiKSsibWluaW11bUZyYWN0aW9uRGlnaXRzIi5sZW5ndGgoKSkpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJtYXhpbXVtRnJhY3Rpb25EaWdpdHMgOiAiICsgKHRlbXAuaW5kZXhPZigibWF4aW11bUZyYWN0aW9uRGlnaXRzIikrIm1heGltdW1GcmFjdGlvbkRpZ2l0cyIubGVuZ3RoKCkpKTsKKyAgICAgICAgICAgICovCisgICAgICAgICAgICAvL2ZpbGUud3JpdGUobXlBcnIpOworICAgICAgICAgICAgZmlsZS53cml0ZSgoIlxuICAgICIrY29tbWVudCkuZ2V0Qnl0ZXMoKSk7CisgICAgICAgICAgICBmaWxlLndyaXRlKG5ldyBTdHJpbmcoIlxuICAgIHN0YXRpYyBieXRlW10gIituYW1lKyIgPSBuZXcgYnl0ZVtdeyBcbiIpLmdldEJ5dGVzKCJVVEYtOCIpKTsKKyAgICAgICAgICAgIGZpbGUud3JpdGUoICIgICAgICAgICIuZ2V0Qnl0ZXMoKSk7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxteUFyci5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgZmlsZS53cml0ZShTdHJpbmcudmFsdWVPZigoaW50KW15QXJyW2ldKS5nZXRCeXRlcygpKTsKKyAgICAgICAgICAgICAgICBmaWxlLndyaXRlKCAiLCAiLmdldEJ5dGVzKCkpOworICAgICAgICAgICAgICAgIGlmKChpKzEpJTIwID09IDApeworICAgICAgICAgICAgICAgICAgICBmaWxlLndyaXRlKCJcbiIuZ2V0Qnl0ZXMoKSk7CisgICAgICAgICAgICAgICAgICAgIGZpbGUud3JpdGUoICIgICAgICAgICIuZ2V0Qnl0ZXMoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZmlsZS53cml0ZShuZXcgU3RyaW5nKCJcbiAgICB9O1xuIikuZ2V0Qnl0ZXMoIlVURi04IikpOworICAgICAgICB9Y2F0Y2goIEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2ltcGwvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2ltcGwvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjOTJlMGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvaW1wbC9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgb3RoZXIgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIoImNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWwiLAorICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICAgIklDVVNlcnZpY2VUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJJQ1VTZXJ2aWNlVGhyZWFkVGVzdCIsCisgICAgICAgICAgICAgICAgICAiSUNVQmluYXJ5VGVzdCIsCisgICAgICAgICAgICAgICAgICAiTFJVTWFwVGVzdCIsCisgICAgICAgICAgICAgICAgICAiVGV4dFRyaWVNYXBUZXN0IgorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAiVGVzdCBtaXNjZWxsYW5lb3VzIGltcGxlbWVudGF0aW9uIHV0aWxpdGllcyIpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FID0gIkltcGwiOworfQorCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9pdGVyYXRvci9UZXN0VUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvaXRlcmF0b3IvVGVzdFVDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljYzcxM2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvaXRlcmF0b3IvVGVzdFVDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNDg0IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QuaXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUmVwbGFjZWFibGVTdHJpbmc7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiBAYXV0aG9yIHJhbQorICoKKyAqIFRvIGNoYW5nZSB0aGlzIGdlbmVyYXRlZCBjb21tZW50IGVkaXQgdGhlIHRlbXBsYXRlIHZhcmlhYmxlICJ0eXBlY29tbWVudCI6CisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5UZW1wbGF0ZXMuCisgKiBUbyBlbmFibGUgYW5kIGRpc2FibGUgdGhlIGNyZWF0aW9uIG9mIHR5cGUgY29tbWVudHMgZ28gdG8KKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPkNvZGUgR2VuZXJhdGlvbi4KKyAqLworcHVibGljIGNsYXNzIFRlc3RVQ2hhcmFjdGVySXRlcmF0b3IgZXh0ZW5kcyBUZXN0Rm13a3sKKworICAgIC8vIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yCisgICAgICovCisgICAgcHVibGljIFRlc3RVQ2hhcmFjdGVySXRlcmF0b3IoKQorICAgIHsKKyAgICB9CisgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIC8qKgorICAgICogVGVzdGluZyBjbG9uaW5nCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2xvbmUoKSB0aHJvd3MgQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24KKyAgICB7CisgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoInRlc3RpbmciKTsKKyAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBjbG9uZWQgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yKWl0ZXJhdG9yLmNsb25lKCk7CisgICAgICAgICBpbnQgY29tcGxldGVkID0gMDsKKyAgICAgICAgIHdoaWxlIChjb21wbGV0ZWQgIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIGNvbXBsZXRlZCA9IGl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChjb21wbGV0ZWQgIT0gY2xvbmVkLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDbG9uZWQgb3BlcmF0aW9uIGZhaWxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBnZXRUZXh0KFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvciwgU3RyaW5nIHJlc3VsdCl7CisgICAgICAgIC8qIHRlc3QgZ2V0VGV4dCAqLworICAgICAgICBjaGFyW10gYnVmPSBuZXcgY2hhclsxXTsKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBpdGVyYXRvci5nZXRUZXh0KGJ1Zik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9Y2F0Y2goSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICBidWYgPSBuZXcgY2hhcltpdGVyYXRvci5nZXRMZW5ndGgoKV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYocmVzdWx0LmNvbXBhcmVUbyhuZXcgU3RyaW5nKGJ1ZiwwLGl0ZXJhdG9yLmdldExlbmd0aCgpKSkhPTApeworICAgICAgICAgICAgZXJybG4oImdldFRleHQgZmFpbGVkIGZvciBpdGVyYXRvciIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RpbmcgaXRlcmF0aW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEl0ZXJhdGlvbigpCisgICAgeworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IgID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElURVJBVElPTl9TVFJJTkdfKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yMiA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJVEVSQVRJT05fU1RSSU5HXyk7CisgICAgICAgIGl0ZXJhdG9yLnNldFRvU3RhcnQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAoaXRlcmF0b3IuY3VycmVudCgpICE9IElURVJBVElPTl9TVFJJTkdfLmNoYXJBdCgwKSkgeworICAgICAgICAgICAgZXJybG4oIkl0ZXJhdG9yIGZhaWxlZCByZXRyaWV2aW5nIGZpcnN0IGNoYXJhY3RlciIpOworICAgICAgICB9CisgICAgICAgIGl0ZXJhdG9yLnNldFRvTGltaXQoKTsgCisgICAgICAgIGlmIChpdGVyYXRvci5wcmV2aW91cygpICE9IElURVJBVElPTl9TVFJJTkdfLmNoYXJBdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElURVJBVElPTl9TVFJJTkdfLmxlbmd0aCgpIC0gMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJJdGVyYXRvciBmYWlsZWQgcmV0cmlldmluZyBsYXN0IGNoYXJhY3RlciIpOworICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYgKGl0ZXJhdG9yLmdldExlbmd0aCgpICE9IElURVJBVElPTl9TVFJJTkdfLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBlcnJsbigiSXRlcmF0b3IgZmFpbGVkIGRldGVybWluaW5nIGJlZ2luIGFuZCBlbmQgaW5kZXgiKTsKKyAgICAgICAgfSAgCisgICAgICAgIGl0ZXJhdG9yMi5zZXRJbmRleCgwKTsKKyAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoMCk7CisgICAgICAgIGludCBjaCA9IDA7CisgICAgICAgIHdoaWxlIChjaCAhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gaXRlcmF0b3IyLmdldEluZGV4KCk7CisgICAgICAgICAgICBjaCA9IGl0ZXJhdG9yMi5uZXh0Q29kZVBvaW50KCk7CisgICAgICAgICAgICBpZiAoaW5kZXggIT0gSVRFUkFUSU9OX1NVUFBMRU1FTlRBUllfSU5ERVgpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2ggIT0gKGludClpdGVyYXRvci5uZXh0KCkgJiYgCisgICAgICAgICAgICAgICAgICAgIGNoICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBtaXNtYXRjaCBpbiBuZXh0KCkgYW5kIG5leHRDb2RlUG9pbnQoKSIpOyAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjaCkgIT0gaXRlcmF0b3IubmV4dCgpIHx8CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNoKSAhPSBpdGVyYXRvci5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1pc21hdGNoIGluIG5leHQgYW5kIG5leHRDb2RlUG9pbnQgZm9yICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAic3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGl0ZXJhdG9yLnNldEluZGV4KElURVJBVElPTl9TVFJJTkdfLmxlbmd0aCgpKTsKKyAgICAgICAgaXRlcmF0b3IyLnNldEluZGV4KElURVJBVElPTl9TVFJJTkdfLmxlbmd0aCgpKTsKKyAgICAgICAgd2hpbGUgKGNoICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSBpdGVyYXRvcjIuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIGNoID0gaXRlcmF0b3IyLnByZXZpb3VzQ29kZVBvaW50KCk7CisgICAgICAgICAgICBpZiAoaW5kZXggIT0gSVRFUkFUSU9OX1NVUFBMRU1FTlRBUllfSU5ERVgpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2ggIT0gKGludClpdGVyYXRvci5wcmV2aW91cygpICYmIAorICAgICAgICAgICAgICAgICAgICBjaCAhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgbWlzbWF0Y2ggaW4gcHJldmlvdXMoKSBhbmQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmV2aW91c0NvZGVQb2ludCgpIik7IAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSAhPSBpdGVyYXRvci5wcmV2aW91cygpIHx8IAorICAgICAgICAgICAgICAgICAgICBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjaCkgIT0gaXRlcmF0b3IucHJldmlvdXMoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgbWlzbWF0Y2ggaW4gcHJldmlvdXMgYW5kICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAicHJldmlvdXNDb2RlUG9pbnQgZm9yIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmcpCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgVGVzdFVDaGFyYWN0ZXJJdGVyYXRvciB0ZXN0ID0gbmV3IFRlc3RVQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHRlc3QucnVuKGFyZyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vVGVzdHMgZm9yIG5ldyBBUEkgZm9yIHV0Zi0xNiBzdXBwb3J0IAorICAgIHB1YmxpYyB2b2lkIFRlc3RJdGVyYXRpb25VQ2hhcjMyKCkgeworICAgICAgICBTdHJpbmcgdGV4dD0iXHUwMDYxXHUwMDYyXHVkODQxXHVkYzAyXHUyMGFjXHVkN2ZmXHVkODQyXHVkYzA2XHVkODAxXHVkYzAwXHUwMDYxIjsKKyAgICAgICAgaW50IGM7CisgICAgICAgIGludCBpOworICAgICAgICB7CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSh0ZXh0KTsKKyAgICAKKyAgICAgICAgICAgIFN0cmluZyBpdGVyVGV4dCA9IGl0ZXIuZ2V0VGV4dCgpOworICAgICAgICAgICAgaWYgKCFpdGVyVGV4dC5lcXVhbHModGV4dCkpCisgICAgICAgICAgICAgIGVycmxuKCJpdGVyLmdldFRleHQoKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXRlci5zZXRJbmRleCgxKTsKKyAgICAgICAgICAgIGlmIChpdGVyLmN1cnJlbnRDb2RlUG9pbnQoKSAhPSBVVEYxNi5jaGFyQXQodGV4dCwxKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiSXRlcmF0b3IgZGlkbid0IHN0YXJ0IG91dCBpbiB0aGUgcmlnaHQgcGxhY2UuIik7CisgICAgCisgICAgICAgICAgICBpdGVyLnNldFRvU3RhcnQoKTsKKyAgICAgICAgICAgIGM9aXRlci5jdXJyZW50Q29kZVBvaW50KCk7CisgICAgICAgICAgICBpPTA7CisgICAgICAgICAgICBpPWl0ZXIubW92ZUNvZGVQb2ludEluZGV4KDEpOworICAgICAgICAgICAgYz1pdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGlmKGMgIT0gVVRGMTYuY2hhckF0KHRleHQsMSkgfHwgaSE9MSkKKyAgICAgICAgICAgICAgICBlcnJsbigibW92ZUNvZGVQb2ludEluZGV4KDEpIGRpZG4ndCB3b3JrIGNvcnJlY3RseSBleHBlY3RlZCAiKyBoZXgoYykgKyIgZ290ICIraGV4KFVURjE2LmNoYXJBdCh0ZXh0LDEpKSArICIgaT0gIiArIGkpOworICAgIAorICAgICAgICAgICAgaT1pdGVyLm1vdmVDb2RlUG9pbnRJbmRleCgyKTsKKyAgICAgICAgICAgIGM9aXRlci5jdXJyZW50Q29kZVBvaW50KCk7CisgICAgICAgICAgICBpZihjICE9IFVURjE2LmNoYXJBdCh0ZXh0LDQpIHx8IGkhPTQpCisgICAgICAgICAgICAgICAgZXJybG4oIm1vdmVDb2RlUG9pbnRJbmRleCgyKSBkaWRuJ3Qgd29yayBjb3JyZWN0bHkgZXhwZWN0ZWQgIisgaGV4KGMpICsiIGdvdCAiK2hleChVVEYxNi5jaGFyQXQodGV4dCw0KSkgKyAiIGk9ICIgKyBpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGk9aXRlci5tb3ZlQ29kZVBvaW50SW5kZXgoLTIpOworICAgICAgICAgICAgYz1pdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgIGlmKGMgIT0gVVRGMTYuY2hhckF0KHRleHQsMSkgfHwgaSE9MSkKKyAgICAgICAgICAgICAgICAgZXJybG4oIm1vdmVDb2RlUG9pbnRJbmRleCgtMikgZGlkbid0IHdvcmsgY29ycmVjdGx5IGV4cGVjdGVkICIrIGhleChjKSArIiBnb3QgIitoZXgoVVRGMTYuY2hhckF0KHRleHQsMSkpICsgIiBpPSAiICsgaSk7CisKKyAgICAgICAgICAgIGl0ZXIuc2V0VG9MaW1pdCgpOworICAgICAgICAgICAgaT1pdGVyLm1vdmVDb2RlUG9pbnRJbmRleCgtMik7CisgICAgICAgICAgICBjPWl0ZXIuY3VycmVudENvZGVQb2ludCgpOworICAgICAgICAgICAgaWYoYyAhPSBVVEYxNi5jaGFyQXQodGV4dCwodGV4dC5sZW5ndGgoKS0zKSkgfHwgaSE9KHRleHQubGVuZ3RoKCktMykpCisgICAgICAgICAgICAgICAgZXJybG4oIm1vdmVDb2RlUG9pbnRJbmRleCgtMikgZGlkbid0IHdvcmsgY29ycmVjdGx5IGV4cGVjdGVkICIrIGhleChjKSArIiBnb3QgIitoZXgoVVRGMTYuY2hhckF0KHRleHQsKHRleHQubGVuZ3RoKCktMykpICkgKyAiIGk9ICIgKyBpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXRlci5zZXRUb1N0YXJ0KCk7CisgICAgICAgICAgICBjID0gaXRlci5jdXJyZW50Q29kZVBvaW50KCk7CisgICAgICAgICAgICBpID0gMDsKKyAgICAKKyAgICAgICAgICAgIC8vdGVzdGluZyBmaXJzdDMyUG9zdEluYywgbmV4dENvZGVQb2ludFBvc3RJbmMsIHNldFRvc3RhcnQKKyAgICAgICAgICAgIGkgPSAwOworICAgICAgICAgICAgaXRlci5zZXRUb1N0YXJ0KCk7CisgICAgICAgICAgICBjID1pdGVyLm5leHQoKTsKKyAgICAgICAgICAgIGlmKGMgIT0gVVRGMTYuY2hhckF0KHRleHQsaSkpCisgICAgICAgICAgICAgICAgZXJybG4oImZpcnN0MzJQb3N0SW5jIGZhaWxlZC4gIEV4cGVjdGVkLT4iK2hleChVVEYxNi5jaGFyQXQodGV4dCxpKSkrIiBHb3QtPiAiK2hleChjKSk7CisgICAgICAgICAgICBpZihpdGVyLmdldEluZGV4KCkgIT0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpICsgaSkKKyAgICAgICAgICAgICAgICBlcnJsbigiZ2V0SW5kZXgoKSBhZnRlciBmaXJzdDMyUG9zdEluYygpIGZhaWxlZCIpOworICAgIAorICAgICAgICAgICAgaXRlci5zZXRUb1N0YXJ0KCk7CisgICAgICAgICAgICBpPTA7CisgICAgICAgICAgICBpZiAoaXRlci5nZXRJbmRleCgpICE9IDApCisgICAgICAgICAgICAgICAgZXJybG4oInNldFRvU3RhcnQgZmFpbGVkIik7CisgICAgICAgICAgIAorICAgICAgICAgICAgbG9nbG4oIlRlc3RpbmcgZm9yd2FyZCBpdGVyYXRpb24uLi4iKTsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBpZiAoYyAhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgICAgICAgICAgYyA9IGl0ZXIubmV4dENvZGVQb2ludCgpOworICAgIAorICAgICAgICAgICAgICAgIGlmKGMgIT0gVVRGMTYuY2hhckF0KHRleHQsaSkpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXIgbWlzbWF0Y2ggYXQgcG9zaXRpb24gIitpKyIsIGl0ZXJhdG9yIGhhcyAiK2hleChjKSsiLCBzdHJpbmcgaGFzICIraGV4KFVURjE2LmNoYXJBdCh0ZXh0LGkpKSk7CisgICAgCisgICAgICAgICAgICAgICAgaSs9VVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIGlmKGl0ZXIuZ2V0SW5kZXgoKSAhPSBpKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiZ2V0SW5kZXgoKSBhZnRyIG5leHRDb2RlUG9pbnRQb3N0SW5jKCkgaXNuJ3Qgd29ya2luZyByaWdodCIpOworICAgICAgICAgICAgICAgIGMgPSBpdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoIGMhPVVDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIGMgIT0gVVRGMTYuY2hhckF0KHRleHQsaSkpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJjdXJyZW50KCkgYWZ0ZXIgbmV4dENvZGVQb2ludFBvc3RJbmMoKSBpc24ndCB3b3JraW5nIHJpZ2h0Iik7CisKKyAgICAgICAgICAgIH0gd2hpbGUgKGMhPVVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKTsKKyAgICAgICAgICAgIGM9aXRlci5uZXh0Q29kZVBvaW50KCk7CisgICAgICAgICAgICBpZihjIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpCisgICAgICAgICAgICAgICAgZXJybG4oIm5leHRDb2RlUG9pbnRQb3N0SW5jKCkgZGlkbid0IHJldHVybiBET05FIGF0IHRoZSBiZWdpbm5pbmciKTsKKyAgICAKKyAgICAKKyAgICAgICAgfQorICAgIH0gIAorICAgIAorICAgIGNsYXNzIFVDaGFySXRlcmF0b3IgeworICAgIAorICAgICAgIHB1YmxpYyBVQ2hhckl0ZXJhdG9yKGludFtdIHNyYywgaW50IGxlbiwgaW50IGluZGV4KXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcz1zcmM7CisgICAgICAgICAgICBsZW5ndGg9bGVuOworICAgICAgICAgICAgaT1pbmRleDsKKyAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBpbnQgY3VycmVudCgpIHsKKyAgICAgICAgICAgIGlmKGk8bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNbaV07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBwdWJsaWMgaW50IG5leHQoKSB7CisgICAgICAgICAgICBpZihpPGxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzW2krK107CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBwdWJsaWMgaW50IHByZXZpb3VzKCkgeworICAgICAgICAgICAgaWYoaT4wKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNbLS1pXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKSB7CisgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBwcml2YXRlIGludFtdIHM7CisgICAgICAgIHByaXZhdGUgaW50IGxlbmd0aCwgaTsKKyAgICB9OworICAgIC8vIHNyYyBhbmQgZXhwZWN0IHN0cmluZ3MKKyAgICBwcml2YXRlIGZpbmFsIGNoYXIgc3JjW109eworICAgICAgICBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKDB4MmY5OTkpLCBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZSgweDJmOTk5KSwKKyAgICAgICAgVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZSgweDFkMTVmKSwgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoMHgxZDE1ZiksCisgICAgICAgIDB4YzQsCisgICAgICAgIDB4MWVkMAorICAgIH07CisgICAgcHVibGljIHZvaWQgVGVzdFByZXZpb3VzTmV4dCgpeworICAgICAgICAvLyBpdGVyYXRvcnMKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIxID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKG5ldyBSZXBsYWNlYWJsZVN0cmluZyhuZXcgU3RyaW5nKHNyYykpKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYy8qY2hhciBhcnJheSovKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIzID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihuZXcgU3RyaW5nKHNyYykpKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXI0ID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKG5ldyBTdHJpbmdCdWZmZXIobmV3IFN0cmluZyhzcmMpKSk7CisgICAgICAgIHByZXZpb3VzTmV4dChpdGVyMSk7CisgICAgICAgIHByZXZpb3VzTmV4dChpdGVyMik7CisgICAgICAgIHByZXZpb3VzTmV4dChpdGVyMyk7CisgICAgICAgIHByZXZpb3VzTmV4dChpdGVyNCk7CisgICAgICAgIGdldFRleHQoaXRlcjEsbmV3IFN0cmluZyhzcmMpKTsKKyAgICAgICAgZ2V0VGV4dChpdGVyMixuZXcgU3RyaW5nKHNyYykpOworICAgICAgICBnZXRUZXh0KGl0ZXIzLG5ldyBTdHJpbmcoc3JjKSk7CisgICAgICAgIC8qIGdldENoYXJhY3Rlckl0ZXJhdG9yICovCisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNpdGVyMSA9IGl0ZXIxLmdldENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNpdGVyMiA9IGl0ZXIyLmdldENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNpdGVyMyA9IGl0ZXIzLmdldENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgIGlmKGNpdGVyMS5maXJzdCgpICE9aXRlcjEuY3VycmVudCgpKXsKKyAgICAgICAgICAgIGVycmxuKCJnZXRDaGFyYWN0ZXJJdGVyYXRvciBmb3IgaXRlcjEgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgaWYoY2l0ZXIyLmZpcnN0KCkgIT1pdGVyMi5jdXJyZW50KCkpeworICAgICAgICAgICAgZXJybG4oImdldENoYXJhY3Rlckl0ZXJhdG9yIGZvciBpdGVyMiBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBpZihjaXRlcjMuZmlyc3QoKSAhPWl0ZXIzLmN1cnJlbnQoKSl7CisgICAgICAgICAgICBlcnJsbigiZ2V0Q2hhcmFjdGVySXRlcmF0b3IgZm9yIGl0ZXIzIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIC8qIFRlc3QgY2xvbmUoKSAgJiYgbW92ZUluZGV4KCkqLworICAgICAgICB0cnl7CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgY2xvbmUxID0gKFVDaGFyYWN0ZXJJdGVyYXRvcilpdGVyMS5jbG9uZSgpOworICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGNsb25lMiA9IChVQ2hhcmFjdGVySXRlcmF0b3IpaXRlcjIuY2xvbmUoKTsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBjbG9uZTMgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yKWl0ZXIzLmNsb25lKCk7CisgICAgICAgICAgICBpZihjbG9uZTEubW92ZUluZGV4KDMpIT1pdGVyMS5tb3ZlSW5kZXgoMykpeworICAgICAgICAgICAgICAgIGVycmxuKCJtb3ZlSW5kZXggZm9yIGl0ZXIxIGZhaWxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoY2xvbmUyLm1vdmVJbmRleCgzKSE9aXRlcjIubW92ZUluZGV4KDMpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigibW92ZUluZGV4IGZvciBpdGVyMiBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGNsb25lMy5tb3ZlSW5kZXgoMykhPWl0ZXIzLm1vdmVJbmRleCgzKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIm1vdmVJbmRleCBmb3IgaXRlcjEgZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaCAoRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjbG9uZSB0aGUgaXRlcmF0b3IiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBwcmV2aW91c05leHQoVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIpIHsKKworICAgICAgICBpbnQgZXhwZWN0W109eworICAgICAgICAgICAgMHgyZjk5OSwKKyAgICAgICAgICAgIDB4MWQxNWYsCisgICAgICAgICAgICAweGM0LAorICAgICAgICAgICAgMHgxZWQwCisgICAgICAgIH07CisgICAgCisgICAgICAgIC8vIGV4cGVjdGVkIHNyYyBpbmRleGVzIGNvcnJlc3BvbmRpbmcgdG8gZXhwZWN0IGluZGV4ZXMKKyAgICAgICAgaW50IGV4cGVjdEluZGV4W109eworICAgICAgICAgICAgMCwwLAorICAgICAgICAgICAgMSwxLAorICAgICAgICAgICAgMiwKKyAgICAgICAgICAgIDMsCisgICAgICAgICAgICA0IC8vbmVlZGVkIAorICAgICAgICB9OworICAgIAorICAgICAgICAvLyBpbml0aWFsIGluZGV4ZXMgaW50byB0aGUgc3JjIGFuZCBleHBlY3Qgc3RyaW5ncworICAgICAgICAKKyAgICAgICAgZmluYWwgaW50IFNSQ19NSURETEU9NDsKKyAgICAgICAgZmluYWwgaW50IEVYUEVDVF9NSURETEU9MjsKKyAgICAgICAgCisgICAgCisgICAgICAgIC8vIG1vdmVtZW50IHZlY3RvcgorICAgICAgICAvLyAtIGZvciBwcmV2aW91cygpLCAwIGZvciBjdXJyZW50KCksICsgZm9yIG5leHQoKQorICAgICAgICAvLyBub3QgY29uc3Qgc28gdGhhdCB3ZSBjYW4gdGVybWluYXRlIGl0IGJlbG93IGZvciB0aGUgZXJyb3IgbWVzc2FnZQorICAgICAgICBTdHJpbmcgbW92ZXM9IjArMCswLS0wLTAtKysrMC0tKysrKysrKzAtLS0tLS0tLSI7CisgICAgCisgICAgICAgIAorICAgICAgICBVQ2hhckl0ZXJhdG9yIGl0ZXIzMiA9IG5ldyBVQ2hhckl0ZXJhdG9yKGV4cGVjdCwgZXhwZWN0Lmxlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9NSURETEUpOworICAgIAorICAgICAgICBpbnQgYzEsIGMyOworICAgICAgICBjaGFyIG07CisgICAgCisgICAgICAgIC8vIGluaXRpYWxseSBzZXQgdGhlIGluZGV4ZXMgaW50byB0aGUgbWlkZGxlIG9mIHRoZSBzdHJpbmdzCisgICAgICAgIGl0ZXIuc2V0SW5kZXgoU1JDX01JRERMRSk7CisgICAgCisgICAgICAgIC8vIG1vdmUgYXJvdW5kIGFuZCBjb21wYXJlIHRoZSBpdGVyYXRpb24gY29kZSBwb2ludHMgd2l0aAorICAgICAgICAvLyB0aGUgZXhwZWN0ZWQgb25lcworICAgICAgICBpbnQgbW92ZXNJbmRleCA9MDsKKyAgICAgICAgd2hpbGUobW92ZXNJbmRleDxtb3Zlcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgbT1tb3Zlcy5jaGFyQXQobW92ZXNJbmRleCsrKTsKKyAgICAgICAgICAgIGlmKG09PSctJykgeworICAgICAgICAgICAgICAgIGMxPWl0ZXIucHJldmlvdXNDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgICAgICBjMj1pdGVyMzIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihtPT0nMCcpIHsKKyAgICAgICAgICAgICAgICBjMT1pdGVyLmN1cnJlbnRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgICAgICBjMj1pdGVyMzIuY3VycmVudCgpOworICAgICAgICAgICAgfSBlbHNlICB7Ly8gbT09JysnIAorICAgICAgICAgICAgICAgIGMxPWl0ZXIubmV4dENvZGVQb2ludCgpOworICAgICAgICAgICAgICAgIGMyPWl0ZXIzMi5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBjb21wYXJlIHJlc3VsdHMKKyAgICAgICAgICAgIGlmKGMxIT1jMikgeworICAgICAgICAgICAgICAgIC8vIGNvcHkgdGhlIG1vdmVzIHVudGlsIHRoZSBjdXJyZW50IChtKSBtb3ZlLCBhbmQgdGVybWluYXRlCisgICAgICAgICAgICAgICAgU3RyaW5nIGhpc3RvcnkgPSBtb3Zlcy5zdWJzdHJpbmcoMCxtb3Zlc0luZGV4KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IG1pc21hdGNoIGluIE5vcm1hbGl6ZXIgaXRlcmF0aW9uIGF0ICIraGlzdG9yeSsiOiAiCisgICAgICAgICAgICAgICAgICAgICAgKyJnb3QgYzE9ICIgKyBoZXgoYzEpICsiICE9IGV4cGVjdGVkIGMyPSAiKyBoZXgoYzIpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIGNvbXBhcmUgaW5kZXhlcworICAgICAgICAgICAgaWYoZXhwZWN0SW5kZXhbaXRlci5nZXRJbmRleCgpXSE9aXRlcjMyLmdldEluZGV4KCkpIHsKKyAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBtb3ZlcyB1bnRpbCB0aGUgY3VycmVudCAobSkgbW92ZSwgYW5kIHRlcm1pbmF0ZQorICAgICAgICAgICAgICAgIFN0cmluZyBoaXN0b3J5ID0gbW92ZXMuc3Vic3RyaW5nKDAsbW92ZXNJbmRleCk7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBpbmRleCBtaXNtYXRjaCBpbiBOb3JtYWxpemVyIGl0ZXJhdGlvbiBhdCAiCisgICAgICAgICAgICAgICAgICAgICAgK2hpc3RvcnkrICIgOiAiKyAiTm9ybWFsaXplciBpbmRleCAiICtpdGVyLmdldEluZGV4KCkKKyAgICAgICAgICAgICAgICAgICAgICArIiBleHBlY3RlZCAiKyBleHBlY3RJbmRleFtpdGVyMzIuZ2V0SW5kZXgoKV0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RVQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKCl7CisgICAgICAgIFN0cmluZyBzb3VyY2UgPSJhc2RmYXNkZmpvaXV5b2l1eTIzNDEyMzU2Nzk4ODY3NjUiOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXQgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc291cmNlKTsKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3Igd3JhcF9jaSA9IGl0LmdldENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNpID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIHdyYXBfY2kuc2V0SW5kZXgoMTApOworICAgICAgICBjaS5zZXRJbmRleCgxMCk7CisgICAgICAgIFN0cmluZyBtb3Zlcz0iMCswKzAtLTAtMC0rKyswLS0rKysrKysrMC0tLS0tLS0tKysrKzAwMDAtLS0tMC0iOworICAgICAgICBpbnQgYzEsIGMyOworICAgICAgICBjaGFyIG07CisgICAgICAgIGludCBtb3Zlc0luZGV4ID0wOworICAgICAgICAKKyAgICAgICAgd2hpbGUobW92ZXNJbmRleDxtb3Zlcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgbT1tb3Zlcy5jaGFyQXQobW92ZXNJbmRleCsrKTsKKyAgICAgICAgICAgIGlmKG09PSctJykgeworICAgICAgICAgICAgICAgIGMxPXdyYXBfY2kucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBjMj1jaS5wcmV2aW91cygpOworICAgICAgICAgICAgfSBlbHNlIGlmKG09PScwJykgeworICAgICAgICAgICAgICAgIGMxPXdyYXBfY2kuY3VycmVudCgpOworICAgICAgICAgICAgICAgIGMyPWNpLmN1cnJlbnQoKTsKKyAgICAgICAgICAgIH0gZWxzZSAgey8vIG09PScrJyAKKyAgICAgICAgICAgICAgICBjMT13cmFwX2NpLm5leHQoKTsKKyAgICAgICAgICAgICAgICBjMj1jaS5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBjb21wYXJlIHJlc3VsdHMKKyAgICAgICAgICAgIGlmKGMxIT1jMikgeworICAgICAgICAgICAgICAgIC8vIGNvcHkgdGhlIG1vdmVzIHVudGlsIHRoZSBjdXJyZW50IChtKSBtb3ZlLCBhbmQgdGVybWluYXRlCisgICAgICAgICAgICAgICAgU3RyaW5nIGhpc3RvcnkgPSBtb3Zlcy5zdWJzdHJpbmcoMCxtb3Zlc0luZGV4KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IG1pc21hdGNoIGluIE5vcm1hbGl6ZXIgaXRlcmF0aW9uIGF0ICIraGlzdG9yeSsiOiAiCisgICAgICAgICAgICAgICAgICAgICAgKyJnb3QgYzE9ICIgKyBoZXgoYzEpICsiICE9IGV4cGVjdGVkIGMyPSAiKyBoZXgoYzIpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIGNvbXBhcmUgaW5kZXhlcworICAgICAgICAgICAgaWYod3JhcF9jaS5nZXRJbmRleCgpIT1jaS5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgLy8gY29weSB0aGUgbW92ZXMgdW50aWwgdGhlIGN1cnJlbnQgKG0pIG1vdmUsIGFuZCB0ZXJtaW5hdGUKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGlzdG9yeSA9IG1vdmVzLnN1YnN0cmluZygwLG1vdmVzSW5kZXgpOworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogaW5kZXggbWlzbWF0Y2ggaW4gTm9ybWFsaXplciBpdGVyYXRpb24gYXQgIgorICAgICAgICAgICAgICAgICAgICAgICtoaXN0b3J5KyAiIDogIisgIk5vcm1hbGl6ZXIgaW5kZXggIiArd3JhcF9jaS5nZXRJbmRleCgpCisgICAgICAgICAgICAgICAgICAgICAgKyIgZXhwZWN0ZWQgIisgY2kuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYoY2kuZmlyc3QoKSE9d3JhcF9jaS5maXJzdCgpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuZmlyc3QoKSBmYWlsZWQuIGV4cGVjdGVkOiAiICsgY2kuZmlyc3QoKSArICIgZ290OiAiICt3cmFwX2NpLmZpcnN0KCkpOworICAgICAgICB9CisgICAgICAgIGlmKGNpLmxhc3QoKSE9d3JhcF9jaS5sYXN0KCkpeworICAgICAgICAgICAgZXJybG4oIkNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlci5sYXN0KCkgZmFpbGVkIGV4cGVjdGVkOiAiICsgY2kubGFzdCgpICsgIiBnb3Q6ICIgK3dyYXBfY2kubGFzdCgpKTsKKyAgICAgICAgfQorICAgICAgICBpZihjaS5nZXRCZWdpbkluZGV4KCkhPXdyYXBfY2kuZ2V0QmVnaW5JbmRleCgpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuZ2V0QmVnaW5JbmRleCgpIGZhaWxlZCBleHBlY3RlZDogIiArIGNpLmdldEJlZ2luSW5kZXgoKSArICIgZ290OiAiICt3cmFwX2NpLmdldEJlZ2luSW5kZXgoKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYoY2kuZ2V0RW5kSW5kZXgoKSE9d3JhcF9jaS5nZXRFbmRJbmRleCgpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIuZ2V0RW5kSW5kZXgoKSBmYWlsZWQgZXhwZWN0ZWQ6ICIgKyBjaS5nZXRFbmRJbmRleCgpICsgIiBnb3Q6ICIgK3dyYXBfY2kuZ2V0RW5kSW5kZXgoKSk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgY2xvbmVXQ0kgPSAoQ2hhcmFjdGVySXRlcmF0b3IpIHdyYXBfY2kuY2xvbmUoKTsKKyAgICAgICAgICAgIGlmKHdyYXBfY2kuZ2V0SW5kZXgoKSE9Y2xvbmVXQ0kuZ2V0SW5kZXgoKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlci5jbG9uZSgpIGZhaWxlZCBleHBlY3RlZDogIiArd3JhcF9jaS5nZXRJbmRleCgpICsgIiBnb3Q6ICIgKyBjbG9uZVdDSS5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICBlcnJsbigiQ2hhcmFjdGVySXRlcmF0b3IuY2xvbmUoKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSVRFUkFUSU9OX1NUUklOR18gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUZXN0aW5nIDEgMiAzIFx1ZDgwMFx1ZGMwMCA0NTYiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJVEVSQVRJT05fU1VQUExFTUVOVEFSWV9JTkRFWCA9IDE0OworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RKaXR0ZXJidWcxOTUyKCl7CisgICAgICAgIC8vdGVzdCBwcmV2aW91cyBjb2RlIHBvaW50CisgICAgICAgIGNoYXJbXSBzcmMgPSBuZXcgY2hhcltdeyAnXHVEQzAwJywnXHVEODAwJywnXHVEQzAxJywnXHVEODAyJywnXHVEQzAyJywnXHVEQzAzJ307CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIGl0ZXIuc2V0SW5kZXgoMSk7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgLy8gdGhpcyBzaG91bGQgbmV2ZXIgZ28gaW50byBhIGluZmluaXRlIGxvb3AKKyAgICAgICAgLy8gaWYgaXQgZG9lcyB0aGVuIHdlIGhhdmUgYSBwcm9ibGVtCisgICAgICAgIHdoaWxlKChjaD1pdGVyLnByZXZpb3VzQ29kZVBvaW50KCkpIT1VQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICBpZihjaCE9MHhEYzAwKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiaXRlci5wcmV2aW91c0NvZGVQb2ludCgpIGZhaWxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGl0ZXIuc2V0SW5kZXgoNSk7CisgICAgICAgIHdoaWxlKChjaD1pdGVyLm5leHRDb2RlUG9pbnQoKSkgIT1VQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICBpZihjaCE9IDB4REMwMyl7CisgICAgICAgICAgICAgICAgZXJybG4oIml0ZXIubmV4dENvZGVQb2ludCgpIGZhaWxlZCIpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfSAgICAgIAorICAgIH0KKyAgICAgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU3MmZlMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDMwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCisvKioKKyAqIFRvcCBsZXZlbCB0ZXN0IHVzZWQgdG8gcnVuIGNoYXJhY3RlciBwcm9wZXJ0eSB0ZXN0cy4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIoCisgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgIlRlc3RDaGFyYWN0ZXIiLCAKKyAgICAgICAgICAgICAgICAgICJUZXN0VVNjcmlwdCIsIAorICAgICAgICAgICAgICAgICAgIlRlc3RVU2NyaXB0UnVuIiAKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgIkNoYXJhY3RlciBhbmQgU2NyaXB0IFRlc3RzIik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgPSAiUHJvcGVydHkiOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdENoYXJhY3Rlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdENoYXJhY3Rlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzMzIwMjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0Q2hhcmFjdGVyLmphdmEKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworcHVibGljIGNsYXNzIFRlc3RDaGFyYWN0ZXIgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgbmV3IFRlc3RDaGFyYWN0ZXIoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RDaGFyYWN0ZXIoKSB7CisgICAgICAgIHN1cGVyKAorICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICJVQ2hhcmFjdGVyVGVzdCIsIAorICAgICAgICAgICAgICAgICAgIlVDaGFyYWN0ZXJDYXNlVGVzdCIsIAorICAgICAgICAgICAgICAgICAgIlVDaGFyYWN0ZXJJdGVyYXRvclRlc3QiLAorICAgICAgICAgICAgICAgICAgIlVDaGFyYWN0ZXJDYXRlZ29yeVRlc3QiLCAKKyAgICAgICAgICAgICAgICAgICJVQ2hhcmFjdGVyRGlyZWN0aW9uVGVzdCIsIAorICAgICAgICAgICAgICAgICAgIlVQcm9wZXJ0eUFsaWFzZXNUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJVVEYxNlRlc3QiLAorICAgICAgICAgICJVQ2hhcmFjdGVyU3Vycm9nYXRlVGVzdCIKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgIkNoYXJhY3RlciBQcm9wZXJ0eSBhbmQgVVRGMTYgVGVzdHMiKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0VVNjcmlwdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdFVTY3JpcHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ODA4ODhiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVGVzdFVTY3JpcHQuamF2YQpAQCAtMCwwICsxLDM3OCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIFRlc3RVU2NyaXB0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3RvcgorICAgICovCisgICAgcHVibGljIFRlc3RVU2NyaXB0KCkKKyAgICB7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0VVNjcmlwdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdExvY2FsZUdldENvZGUoKXsKKyAgICAgICAgZmluYWwgVUxvY2FsZVtdIHRlc3ROYW1lcz17CisgICAgICAgIC8qIHRlc3QgbG9jYWxlICovCisgICAgICAgIG5ldyBVTG9jYWxlKCJlbiIpLCBuZXcgVUxvY2FsZSgiZW5fVVMiKSwKKyAgICAgICAgbmV3IFVMb2NhbGUoInNyIiksIG5ldyBVTG9jYWxlKCJ0YSIpICwKKyAgICAgICAgbmV3IFVMb2NhbGUoInRlX0lOIiksCisgICAgICAgIG5ldyBVTG9jYWxlKCJoaSIpLAorICAgICAgICBuZXcgVUxvY2FsZSgiaGUiKSwgbmV3IFVMb2NhbGUoImFyIiksCisgICAgICAgIG5ldyBVTG9jYWxlKCJhYmNkZSIpLAorICAgICAgICBuZXcgVUxvY2FsZSgiYWJjZGVfY2RlZiIpLAorICAgICAgICBuZXcgVUxvY2FsZSgiaXciKQorICAgICAgICB9OworICAgICAgICBmaW5hbCBpbnRbXSBleHBlY3RlZCA9eworICAgICAgICAgICAgICAgIC8qIGxvY2FsZXMgc2hvdWxkIHJldHVybiAqLworICAgICAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICAgICAgVVNjcmlwdC5DWVJJTExJQywgVVNjcmlwdC5UQU1JTCwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LlRFTFVHVSxVU2NyaXB0LkRFVkFOQUdBUkksCisgICAgICAgICAgICAgICAgVVNjcmlwdC5IRUJSRVcsIFVTY3JpcHQuQVJBQklDLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuSU5WQUxJRF9DT0RFLFVTY3JpcHQuSU5WQUxJRF9DT0RFLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuSEVCUkVXCisgICAgICAgIH07CisgICAgICAgIGludCBpID0wOworICAgICAgICBpbnQgbnVtRXJyb3JzID0wOworCisgICAgICAgIGZvciggOyBpPHRlc3ROYW1lcy5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBpbnRbXSBjb2RlID0gVVNjcmlwdC5nZXRDb2RlKHRlc3ROYW1lc1tpXSk7CisKKyAgICAgICAgICAgIGlmKGNvZGU9PW51bGwpeworICAgICAgICAgICAgICAgIGlmKGV4cGVjdGVkW2ldIT1VU2NyaXB0LklOVkFMSURfQ09ERSl7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBnZXR0aW5nIHNjcmlwdCBjb2RlIEdvdDogbnVsbCIgKyAiIEV4cGVjdGVkOiAiICtleHBlY3RlZFtpXSArIiBmb3IgbmFtZSAiK3Rlc3ROYW1lc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIG51bUVycm9ycysrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBnZXRDb2RlIHJldHVybnMgbnVsbCBpZiB0aGUgY29kZSBjb3VsZCBub3QgYmUgZm91bmQKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKChjb2RlWzBdICE9IGV4cGVjdGVkW2ldKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yIGdldHRpbmcgc2NyaXB0IGNvZGUgR290OiAiICtjb2RlWzBdICsgIiBFeHBlY3RlZDogIiArZXhwZWN0ZWRbaV0gKyIgZm9yIG5hbWUgIit0ZXN0TmFtZXNbaV0pOworICAgICAgICAgICAgICAgIG51bUVycm9ycysrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJlcG9ydERhdGFFcnJvcnMobnVtRXJyb3JzKTsKKyAgICAgICAgCisgICAgICAgIC8vIAorICAgICAgICBVTG9jYWxlIGRlZmF1bHRMb2MgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsgCisgICAgICAgIFVMb2NhbGUgZXNwYXJhbnRvID0gbmV3IFVMb2NhbGUoImVvX0RFIik7CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChlc3BhcmFudG8pOworICAgICAgICBpbnRbXSBjb2RlID0gVVNjcmlwdC5nZXRDb2RlKGVzcGFyYW50byk7IAorICAgICAgICBpZihjb2RlICE9IG51bGwpeworICAgICAgICAgICAgaWYoIGNvZGVbMF0gIT0gVVNjcmlwdC5MQVRJTil7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBzY3JpcHQgY29kZSBmb3IgRXNwYXJhbnRvIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCB0aGUgbG9jYWxlIGRhdGEuIik7CisgICAgICAgIH0KKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KGRlZmF1bHRMb2MpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZXBvcnREYXRhRXJyb3JzKGludCBudW1FcnJvcnMpIHsKKyAgICAgICAgaWYgKG51bUVycm9ycyA+MCkgeworICAgICAgICAgICAgLy8gYXNzdW1lIG1pc3NpbmcgbG9jYWxlIGRhdGEsIHNvIG5vdCBhbiBlcnJvciwganVzdCBhIHdhcm5pbmcKKyAgICAgICAgICAgIGlmIChpc01vZHVsYXJCdWlsZCgpIHx8IG5vRGF0YSgpKSB7CisgICAgICAgICAgICAgICAgLy8gaWYgbm9kYXRhIGlzIHNldCBkb24ndCBldmVuIHdhcm4KKyAgICAgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBmaW5kIGxvY2FsZSBkYXRhIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJlbmNvdW50ZXJlZCAiICsgbnVtRXJyb3JzICsgIiBlcnJvcnMuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TXVsdGlwbGVDb2RlKCl7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHRlc3ROYW1lcyA9IHsgImphIiAsImtvX0tSIiwiemgiLCJ6aF9UVyJ9OworICAgICAgICBmaW5hbCBpbnRbXVtdIGV4cGVjdGVkID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7VVNjcmlwdC5LQVRBS0FOQSxVU2NyaXB0LkhJUkFHQU5BLFVTY3JpcHQuSEFOfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1VTY3JpcHQuSEFOR1VMLCBVU2NyaXB0LkhBTn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtVU2NyaXB0LkhBTn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtVU2NyaXB0LkhBTixVU2NyaXB0LkJPUE9NT0ZPfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKworICAgICAgICBpbnQgbnVtRXJyb3JzID0gMDsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8dGVzdE5hbWVzLmxlbmd0aDtpKyspeworICAgICAgICAgICAgaW50W10gY29kZSA9IFVTY3JpcHQuZ2V0Q29kZSh0ZXN0TmFtZXNbaV0pOworICAgICAgICAgICAgaW50W10gZXhwdCA9IChpbnRbXSkgZXhwZWN0ZWRbaV07CisgICAgICAgICAgICBpZihjb2RlIT1udWxsKXsKKyAgICAgICAgICAgICAgICBmb3IoaW50IGogPTA7IGo8IGNvZGUubGVuZ3RoO2orKyl7CisgICAgICAgICAgICAgICAgICAgIGlmKGNvZGVbal0hPWV4cHRbal0peworICAgICAgICAgICAgICAgICAgICAgICAgbnVtRXJyb3JzKys7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiRXJyb3IgZ2V0dGluZyBzY3JpcHQgY29kZSBHb3Q6ICIgK2NvZGVbal0gKyAiIEV4cGVjdGVkOiAiICtleHB0W2pdICsiIGZvciBuYW1lICIrdGVzdE5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIG51bUVycm9ycysrOworICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBnZXR0aW5nIHNjcmlwdCBjb2RlIGZvciBuYW1lICIrdGVzdE5hbWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXBvcnREYXRhRXJyb3JzKG51bUVycm9ycyk7CisgICAgICAgIAorICAgICAgICAvL2NvdmVyIFVTY3JpcHQuZ2V0Q29kZShMb2NhbGUpCisgICAgICAgIExvY2FsZVtdIHRlc3RMb2NhbGVzID0gbmV3IExvY2FsZVtdIHsKKyAgICAgICAgICAgIExvY2FsZS5KQVBBTkVTRSwKKyAgICAgICAgICAgIExvY2FsZS5LT1JFQSwKKyAgICAgICAgICAgIExvY2FsZS5DSElORVNFLAorICAgICAgICAgICAgTG9jYWxlLlRBSVdBTiB9OworICAgICAgICBsb2dsbigiVGVzdGluZyBVU2NyaXB0LmdldENvZGUoTG9jYWxlKSAuLi4iKTsKKyAgICAgICAgbnVtRXJyb3JzID0gMDsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8dGVzdE5hbWVzLmxlbmd0aDtpKyspeworICAgICAgICAgICAgbG9nbG4oIiAgVGVzdGluZyBsb2NhbGU6ICIgKyB0ZXN0TG9jYWxlc1tpXS5nZXREaXNwbGF5TmFtZSgpKTsKKyAgICAgICAgICAgIGludFtdIGNvZGUgPSBVU2NyaXB0LmdldENvZGUodGVzdExvY2FsZXNbaV0pOworICAgICAgICAgICAgaW50W10gZXhwdCA9IChpbnRbXSkgZXhwZWN0ZWRbaV07CisgICAgICAgICAgICBpZihjb2RlIT1udWxsKXsKKyAgICAgICAgICAgICAgICBmb3IoaW50IGogPTA7IGo8IGNvZGUubGVuZ3RoO2orKyl7CisgICAgICAgICAgICAgICAgICAgIGlmKGNvZGVbal0hPWV4cHRbal0peworICAgICAgICAgICAgICAgICAgICAgICAgbnVtRXJyb3JzKys7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiICBFcnJvciBnZXR0aW5nIHNjcmlwdCBjb2RlIEdvdDogIiArY29kZVtqXSArICIgRXhwZWN0ZWQ6ICIgK2V4cHRbal0gKyIgZm9yIG5hbWUgIit0ZXN0TmFtZXNbaV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgbnVtRXJyb3JzKys7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgRXJyb3IgZ2V0dGluZyBzY3JpcHQgY29kZSBmb3IgbmFtZSAiK3Rlc3ROYW1lc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVwb3J0RGF0YUVycm9ycyhudW1FcnJvcnMpOyAgICAgICAgICAgICAgICAgCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldENvZGUoKXsKKworICAgICAgICBmaW5hbCBTdHJpbmdbXSB0ZXN0TmFtZXM9eworICAgICAgICAgICAgLyogdGVzdCBsb2NhbGUgKi8KKyAgICAgICAgICAgICJlbiIsICJlbl9VUyIsICJzciIsICJ0YSIsICJndSIsICJ0ZV9JTiIsIAorICAgICAgICAgICAgImhpIiwgImhlIiwgImFyIiwKKyAgICAgICAgICAgIC8qIHRlc3QgYWJiciAqLworICAgICAgICAgICAgIkhhbmkiLCAiSGFuZyIsIkhlYnIiLCJIaXJhIiwKKyAgICAgICAgICAgICJLbmRhIiwiS2FuYSIsIktobXIiLCJMYW8iLAorICAgICAgICAgICAgIkxhdG4iLC8qIkxhdGYiLCJMYXRnIiwqLworICAgICAgICAgICAgIk1seW0iLCAiTW9uZyIsCisKKyAgICAgICAgICAgIC8qIHRlc3QgbmFtZXMgKi8KKyAgICAgICAgICAgICJDWVJJTExJQyIsIkRFU0VSRVQiLCJERVZBTkFHQVJJIiwiRVRISU9QSUMiLCJHRU9SR0lBTiIsCisgICAgICAgICAgICAiR09USElDIiwgICJHUkVFSyIsICAiR1VKQVJBVEkiLCAiQ09NTU9OIiwgIklOSEVSSVRFRCIsCisgICAgICAgICAgICAvKiB0ZXN0IGxvd2VyIGNhc2UgbmFtZXMgKi8KKyAgICAgICAgICAgICJtYWxheWFsYW0iLCAibW9uZ29saWFuIiwgIm15YW5tYXIiLCAib2doYW0iLCAib2xkLWl0YWxpYyIsCisgICAgICAgICAgICAib3JpeWEiLCAgICAgInJ1bmljIiwgICAgICJzaW5oYWxhIiwgInN5cmlhYyIsInRhbWlsIiwKKyAgICAgICAgICAgICJ0ZWx1Z3UiLCAgICAidGhhYW5hIiwgICAgInRoYWkiLCAgICAidGliZXRhbiIsCisgICAgICAgICAgICAvKiB0ZXN0IHRoZSBib3VuZHMqLworICAgICAgICAgICAgIkNhbnMiLCAiYXJhYmljIiwiWWkiLCJaeXl5IgorICAgICAgICB9OworICAgICAgICBmaW5hbCBpbnRbXSBleHBlY3RlZCA9eworICAgICAgICAgICAgLyogbG9jYWxlcyBzaG91bGQgcmV0dXJuICovCisgICAgICAgICAgICBVU2NyaXB0LkxBVElOLCBVU2NyaXB0LkxBVElOLAorICAgICAgICAgICAgVVNjcmlwdC5DWVJJTExJQywgVVNjcmlwdC5UQU1JTCwgVVNjcmlwdC5HVUpBUkFUSSwKKyAgICAgICAgICAgIFVTY3JpcHQuVEVMVUdVLFVTY3JpcHQuREVWQU5BR0FSSSwKKyAgICAgICAgICAgIFVTY3JpcHQuSEVCUkVXLCBVU2NyaXB0LkFSQUJJQywKKyAgICAgICAgICAgIC8qIGFiYnIgc2hvdWxkIHJldHVybiAqLworICAgICAgICAgICAgVVNjcmlwdC5IQU4sIFVTY3JpcHQuSEFOR1VMLCBVU2NyaXB0LkhFQlJFVywgVVNjcmlwdC5ISVJBR0FOQSwKKyAgICAgICAgICAgIFVTY3JpcHQuS0FOTkFEQSwgVVNjcmlwdC5LQVRBS0FOQSwgVVNjcmlwdC5LSE1FUiwgVVNjcmlwdC5MQU8sCisgICAgICAgICAgICBVU2NyaXB0LkxBVElOLC8qIFVTY3JpcHQuTEFUSU4sIFVTY3JpcHQuTEFUSU4sKi8KKyAgICAgICAgICAgIFVTY3JpcHQuTUFMQVlBTEFNLCBVU2NyaXB0Lk1PTkdPTElBTiwKKyAgICAgICAgICAgIC8qIG5hbWVzIHNob3VsZCByZXR1cm4gKi8KKyAgICAgICAgICAgIFVTY3JpcHQuQ1lSSUxMSUMsIFVTY3JpcHQuREVTRVJFVCwgVVNjcmlwdC5ERVZBTkFHQVJJLCBVU2NyaXB0LkVUSElPUElDLCBVU2NyaXB0LkdFT1JHSUFOLAorICAgICAgICAgICAgVVNjcmlwdC5HT1RISUMsIFVTY3JpcHQuR1JFRUssIFVTY3JpcHQuR1VKQVJBVEksIFVTY3JpcHQuQ09NTU9OLCBVU2NyaXB0LklOSEVSSVRFRCwKKyAgICAgICAgICAgIC8qIGxvd2VyIGNhc2UgbmFtZXMgc2hvdWxkIHJldHVybiAqLworICAgICAgICAgICAgVVNjcmlwdC5NQUxBWUFMQU0sIFVTY3JpcHQuTU9OR09MSUFOLCBVU2NyaXB0Lk1ZQU5NQVIsIFVTY3JpcHQuT0dIQU0sIFVTY3JpcHQuT0xEX0lUQUxJQywKKyAgICAgICAgICAgIFVTY3JpcHQuT1JJWUEsIFVTY3JpcHQuUlVOSUMsIFVTY3JpcHQuU0lOSEFMQSwgVVNjcmlwdC5TWVJJQUMsIFVTY3JpcHQuVEFNSUwsCisgICAgICAgICAgICBVU2NyaXB0LlRFTFVHVSwgVVNjcmlwdC5USEFBTkEsIFVTY3JpcHQuVEhBSSwgVVNjcmlwdC5USUJFVEFOLAorICAgICAgICAgICAgLyogYm91bmRzICovCisgICAgICAgICAgICBVU2NyaXB0LkNBTkFESUFOX0FCT1JJR0lOQUwsIFVTY3JpcHQuQVJBQklDLCBVU2NyaXB0LllJLCBVU2NyaXB0LkNPTU1PTgorICAgICAgICB9OworICAgICAgICBpbnQgaSA9MDsKKyAgICAgICAgaW50IG51bUVycm9ycyA9MDsKKworICAgICAgICBmb3IoIDsgaTx0ZXN0TmFtZXMubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgaW50W10gY29kZSA9IFVTY3JpcHQuZ2V0Q29kZSh0ZXN0TmFtZXNbaV0pOworICAgICAgICAgICAgaWYoY29kZSA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICBpZihleHBlY3RlZFtpXT09VVNjcmlwdC5JTlZBTElEX0NPREUpeworICAgICAgICAgICAgICAgICAgICAvLyBnZXRDb2RlIHJldHVybnMgbnVsbCBpZiB0aGUgY29kZSBjb3VsZCBub3QgYmUgZm91bmQKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGN1cnJlbnRseSBjb21tZW50ZWQgb3V0IHVudGlsIGppdHRlcmJ1ZyMyNjc4IGlzIGZpeGVkCisgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yIGdldHRpbmcgc2NyaXB0IGNvZGUgR290OiBudWxsIiArICIgRXhwZWN0ZWQ6ICIgK2V4cGVjdGVkW2ldICsiIGZvciBuYW1lICIrdGVzdE5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICBudW1FcnJvcnMrKzsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKChjb2RlWzBdICE9IGV4cGVjdGVkW2ldKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yIGdldHRpbmcgc2NyaXB0IGNvZGUgR290OiAiICtjb2RlWzBdICsgIiBFeHBlY3RlZDogIiArZXhwZWN0ZWRbaV0gKyIgZm9yIG5hbWUgIit0ZXN0TmFtZXNbaV0pOworICAgICAgICAgICAgICAgIG51bUVycm9ycysrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJlcG9ydERhdGFFcnJvcnMobnVtRXJyb3JzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0TmFtZSgpeworCisgICAgICAgIGZpbmFsIGludFtdIHRlc3RDb2Rlcz17CisgICAgICAgICAgICAvKiBuYW1lcyBzaG91bGQgcmV0dXJuICovCisgICAgICAgICAgICBVU2NyaXB0LkNZUklMTElDLCBVU2NyaXB0LkRFU0VSRVQsIFVTY3JpcHQuREVWQU5BR0FSSSwgVVNjcmlwdC5FVEhJT1BJQywgVVNjcmlwdC5HRU9SR0lBTiwKKyAgICAgICAgICAgIFVTY3JpcHQuR09USElDLCBVU2NyaXB0LkdSRUVLLCBVU2NyaXB0LkdVSkFSQVRJLAorICAgICAgICB9OworCisgICAgICAgIGZpbmFsIFN0cmluZ1tdIGV4cGVjdGVkTmFtZXM9eworCisgICAgICAgICAgICAvKiB0ZXN0IG5hbWVzICovCisgICAgICAgICAgICAiQ3lyaWxsaWMiLCJEZXNlcmV0IiwiRGV2YW5hZ2FyaSIsIkV0aGlvcGljIiwiR2VvcmdpYW4iLAorICAgICAgICAgICAgIkdvdGhpYyIsICAiR3JlZWsiLCAgIkd1amFyYXRpIiwKKyAgICAgICAgfTsKKyAgICAgICAgaW50IGkgPTA7CisgICAgICAgIGludCBudW1FcnJvcnM9MDsKKyAgICAgICAgd2hpbGUoaTwgdGVzdENvZGVzLmxlbmd0aCl7CisgICAgICAgICAgICBTdHJpbmcgc2NyaXB0TmFtZSAgPSBVU2NyaXB0LmdldE5hbWUodGVzdENvZGVzW2ldKTsKKyAgICAgICAgICAgIGlmKCFleHBlY3RlZE5hbWVzW2ldLmVxdWFscyhzY3JpcHROYW1lKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkVycm9yIGdldHRpbmcgYWJicmV2aWF0aW9ucyBHb3Q6ICIgK3NjcmlwdE5hbWUgKyIgRXhwZWN0ZWQ6ICIrZXhwZWN0ZWROYW1lc1tpXSk7CisgICAgICAgICAgICAgICAgbnVtRXJyb3JzKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpKys7CisgICAgICAgIH0KKyAgICAgICAgaWYobnVtRXJyb3JzID4wICl7CisgICAgICAgICAgICB3YXJubG4oImVuY291bnRlcmVkICIgKyBudW1FcnJvcnMgKyAiIGVycm9ycyBpbiBVU2NyaXB0LmdldE5hbWUoKSIpOworICAgICAgICB9CisKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEdldFNob3J0TmFtZSgpeworICAgICAgICBmaW5hbCBpbnRbXSB0ZXN0Q29kZXM9eworICAgICAgICAgICAgLyogYWJiciBzaG91bGQgcmV0dXJuICovCisgICAgICAgICAgICBVU2NyaXB0LkhBTiwgVVNjcmlwdC5IQU5HVUwsIFVTY3JpcHQuSEVCUkVXLCBVU2NyaXB0LkhJUkFHQU5BLAorICAgICAgICAgICAgVVNjcmlwdC5LQU5OQURBLCBVU2NyaXB0LktBVEFLQU5BLCBVU2NyaXB0LktITUVSLCBVU2NyaXB0LkxBTywKKyAgICAgICAgICAgIFVTY3JpcHQuTEFUSU4sCisgICAgICAgICAgICBVU2NyaXB0Lk1BTEFZQUxBTSwgVVNjcmlwdC5NT05HT0xJQU4sCisgICAgICAgIH07CisKKyAgICAgICAgZmluYWwgU3RyaW5nW10gZXhwZWN0ZWRBYmJyPXsKKyAgICAgICAgICAgICAgLyogdGVzdCBhYmJyICovCisgICAgICAgICAgICAiSGFuaSIsICJIYW5nIiwiSGViciIsIkhpcmEiLAorICAgICAgICAgICAgIktuZGEiLCJLYW5hIiwiS2htciIsIkxhb28iLAorICAgICAgICAgICAgIkxhdG4iLAorICAgICAgICAgICAgIk1seW0iLCAiTW9uZyIsCisgICAgICAgIH07CisgICAgICAgIGludCBpPTA7CisgICAgICAgIGludCBudW1FcnJvcnM9MDsKKyAgICAgICAgd2hpbGUoaTx0ZXN0Q29kZXMubGVuZ3RoKXsKKyAgICAgICAgICAgIFN0cmluZyAgc2hvcnROYW1lID0gVVNjcmlwdC5nZXRTaG9ydE5hbWUodGVzdENvZGVzW2ldKTsKKyAgICAgICAgICAgIGlmKCFleHBlY3RlZEFiYnJbaV0uZXF1YWxzKHNob3J0TmFtZSkpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJFcnJvciBnZXR0aW5nIGFiYnJldmlhdGlvbnMgR290OiAiICtzaG9ydE5hbWUrICIgRXhwZWN0ZWQ6ICIgK2V4cGVjdGVkQWJicltpXSk7CisgICAgICAgICAgICAgICAgbnVtRXJyb3JzKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpKys7CisgICAgICAgIH0KKyAgICAgICAgaWYobnVtRXJyb3JzID4wICl7CisgICAgICAgICAgICB3YXJubG4oImVuY291bnRlcmVkICIgKyBudW1FcnJvcnMgKyAiIGVycm9ycyBpbiBVU2NyaXB0LmdldFNob3J0TmFtZSgpIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdEdldFNjcmlwdCgpeworICAgICAgICBpbnQgY29kZXBvaW50c1tdID0geworICAgICAgICAgICAgICAgIDB4MDAwMEZGOUQsCisgICAgICAgICAgICAgICAgMHgwMDAwRkZCRSwKKyAgICAgICAgICAgICAgICAweDAwMDBGRkM3LAorICAgICAgICAgICAgICAgIDB4MDAwMEZGQ0YsCisgICAgICAgICAgICAgICAgMHgwMDAwRkZENywKKyAgICAgICAgICAgICAgICAweDAwMDBGRkRDLAorICAgICAgICAgICAgICAgIDB4MDAwMTAzMDAsCisgICAgICAgICAgICAgICAgMHgwMDAxMDMzMCwKKyAgICAgICAgICAgICAgICAweDAwMDEwMzRBLAorICAgICAgICAgICAgICAgIDB4MDAwMTA0MDAsCisgICAgICAgICAgICAgICAgMHgwMDAxMDQyOCwKKyAgICAgICAgICAgICAgICAweDAwMDFEMTY3LAorICAgICAgICAgICAgICAgIDB4MDAwMUQxN0IsCisgICAgICAgICAgICAgICAgMHgwMDAxRDE4NSwKKyAgICAgICAgICAgICAgICAweDAwMDFEMUFBLAorICAgICAgICAgICAgICAgIDB4MDAwMjAwMDAsCisgICAgICAgICAgICAgICAgMHgwMDAwMEQwMiwKKyAgICAgICAgICAgICAgICAweDAwMDAwRDAwLAorICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsCisgICAgICAgICAgICAgICAgMHgwMDAxRDE2OSwKKyAgICAgICAgICAgICAgICAweDAwMDFEMTgyLAorICAgICAgICAgICAgICAgIDB4MDAwMUQxOEIsCisgICAgICAgICAgICAgICAgMHgwMDAxRDFBRCwKKyAgICAgICAgfTsKKworICAgICAgICBpbnQgZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgICAgICAgICBVU2NyaXB0LktBVEFLQU5BICwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LkhBTkdVTCAsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5IQU5HVUwgLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuSEFOR1VMICwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LkhBTkdVTCAsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5IQU5HVUwgLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuT0xEX0lUQUxJQywKKyAgICAgICAgICAgICAgICBVU2NyaXB0LkdPVEhJQyAsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5HT1RISUMgLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuREVTRVJFVCAsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5ERVNFUkVUICwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LklOSEVSSVRFRCwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LklOSEVSSVRFRCwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LklOSEVSSVRFRCwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LklOSEVSSVRFRCwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LkhBTiAsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5NQUxBWUFMQU0sCisgICAgICAgICAgICAgICAgVVNjcmlwdC5DT01NT04sCisgICAgICAgICAgICAgICAgVVNjcmlwdC5DT01NT04sCisgICAgICAgICAgICAgICAgVVNjcmlwdC5JTkhFUklURUQgLAorICAgICAgICAgICAgICAgIFVTY3JpcHQuSU5IRVJJVEVEICwKKyAgICAgICAgICAgICAgICBVU2NyaXB0LklOSEVSSVRFRCAsCisgICAgICAgICAgICAgICAgVVNjcmlwdC5JTkhFUklURUQgLAorICAgICAgICB9OworICAgICAgICBpbnQgaSA9MDsKKyAgICAgICAgaW50IGNvZGUgPSBVU2NyaXB0LklOVkFMSURfQ09ERTsKKyAgICAgICAgYm9vbGVhbiBwYXNzZWQgPSB0cnVlOworCisgICAgICAgIHdoaWxlKGk8IGNvZGVwb2ludHMubGVuZ3RoKXsKKyAgICAgICAgICAgIGNvZGUgPSBVU2NyaXB0LmdldFNjcmlwdChjb2RlcG9pbnRzW2ldKTsKKworICAgICAgICAgICAgaWYoY29kZSAhPSBleHBlY3RlZFtpXSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIlVTY3JpcHQuZ2V0U2NyaXB0IGZvciBjb2RlcG9pbnQgMHgiKyBoZXgoY29kZXBvaW50c1tpXSkrIiBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICBwYXNzZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaSsrOworICAgICAgICB9CisgICAgICAgIGlmKCFwYXNzZWQpeworICAgICAgICAgICBlcnJsbigiVVNjcmlwdC5nZXRTY3JpcHQgZmFpbGVkLiIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RTY3JpcHROYW1lcygpeworICAgICAgICBmb3IoaW50IGk9MDsgaTxVU2NyaXB0LkNPREVfTElNSVQ7aSsrKXsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gVVNjcmlwdC5nZXROYW1lKGkpOworICAgICAgICAgICAgaWYobmFtZS5lcXVhbHMoIiIpICl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUxFRDogZ2V0TmFtZSBmb3IgY29kZSA6ICIraSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgc2hvcnROYW1lPSBVU2NyaXB0LmdldFNob3J0TmFtZShpKTsKKyAgICAgICAgICAgIGlmKHNob3J0TmFtZS5lcXVhbHMoIiIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiBnZXROYW1lIGZvciBjb2RlIDogIitpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWxsQ29kZXBvaW50cygpeworICAgICAgICBpbnQgY29kZTsKKyAgICAgICAgLy9TdHJpbmcgb2xkSWQ9IiI7CisgICAgICAgIC8vU3RyaW5nIG9sZEFiYnJJZD0iIjsKKyAgICAgICAgZm9yKCBpbnQgaSA9MDsgaSA8PSAweDEwZmZmZjsgaSsrKXsKKyAgICAgICAgICBjb2RlID1VU2NyaXB0LklOVkFMSURfQ09ERTsKKyAgICAgICAgICBjb2RlID0gVVNjcmlwdC5nZXRTY3JpcHQoaSk7CisgICAgICAgICAgaWYoY29kZT09VVNjcmlwdC5JTlZBTElEX0NPREUpeworICAgICAgICAgICAgICAgIGVycmxuKCJVU2NyaXB0LmdldFNjcmlwdCBmb3IgY29kZXBvaW50IDB4IisgaGV4KGkpKyIgZmFpbGVkIik7CisgICAgICAgICAgfQorICAgICAgICAgIFN0cmluZyBpZCA9VVNjcmlwdC5nZXROYW1lKGNvZGUpOworICAgICAgICAgIGlmKGlkLmluZGV4T2YoIklOVkFMSUQiKT49MCl7CisgICAgICAgICAgICAgICAgIGVycmxuKCJVU2NyaXB0LmdldFNjcmlwdCBmb3IgY29kZXBvaW50IDB4IisgaGV4KGkpKyIgZmFpbGVkIik7CisgICAgICAgICAgfQorICAgICAgICAgIFN0cmluZyBhYmJyID0gVVNjcmlwdC5nZXRTaG9ydE5hbWUoY29kZSk7CisgICAgICAgICAgaWYoYWJici5pbmRleE9mKCJJTlYiKT49MCl7CisgICAgICAgICAgICAgICAgIGVycmxuKCJVU2NyaXB0LmdldFNjcmlwdCBmb3IgY29kZXBvaW50IDB4IisgaGV4KGkpKyIgZmFpbGVkIik7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorIH0KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1Rlc3RVU2NyaXB0UnVuLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0VVNjcmlwdFJ1bi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MDhiNDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9UZXN0VVNjcmlwdFJ1bi5qYXZhCkBAIC0wLDAgKzEsNDAyIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk5LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHRSdW47CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK3B1YmxpYyBjbGFzcyBUZXN0VVNjcmlwdFJ1biBleHRlbmRzIFRlc3RGbXdrCit7CisgICAgcHVibGljIFRlc3RVU2NyaXB0UnVuKCkKKyAgICB7CisgICAgICAgIC8vIG5vdGhpbmcKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0VVNjcmlwdFJ1bigpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBSdW5UZXN0RGF0YQorICAgIHsKKyAgICAgICAgU3RyaW5nIHJ1blRleHQ7CisgICAgICAgIGludCAgICBydW5TY3JpcHQ7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgUnVuVGVzdERhdGEoU3RyaW5nIHRoZVRleHQsIGludCB0aGVTY3JpcHRDb2RlKQorICAgICAgICB7CisgICAgICAgICAgICBydW5UZXh0ICAgPSB0aGVUZXh0OworICAgICAgICAgICAgcnVuU2NyaXB0ID0gdGhlU2NyaXB0Q29kZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBSdW5UZXN0RGF0YVtdW10gdGVzdERhdGEgPSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIG5ldyBSdW5UZXN0RGF0YSgiXHUwMDIwXHUwOTQ2XHUwOTM5XHUwOTNGXHUwOTI4XHUwOTREXHUwOTI2XHUwOTQwXHUwMDIwIiwgVVNjcmlwdC5ERVZBTkFHQVJJKSwKKyAgICAgICAgICAgIG5ldyBSdW5UZXN0RGF0YSgiXHUwNjI3XHUwNjQ0XHUwNjM5XHUwNjMxXHUwNjI4XHUwNjRBXHUwNjI5XHUwMDIwIiwgVVNjcmlwdC5BUkFCSUMpLAorICAgICAgICAgICAgbmV3IFJ1blRlc3REYXRhKCJcdTA0MjBcdTA0NDNcdTA0NDFcdTA0NDFcdTA0M0FcdTA0MzhcdTA0MzlcdTAwMjAiLCBVU2NyaXB0LkNZUklMTElDKSwKKyAgICAgICAgICAgIG5ldyBSdW5UZXN0RGF0YSgiRW5nbGlzaCAoIiwgVVNjcmlwdC5MQVRJTiksCisgICAgICAgICAgICBuZXcgUnVuVGVzdERhdGEoIlx1MEU0NFx1MEUxN1x1MEUyMiIsIFVTY3JpcHQuVEhBSSksCisgICAgICAgICAgICBuZXcgUnVuVGVzdERhdGEoIikgIiwgVVNjcmlwdC5MQVRJTiksCisgICAgICAgICAgICBuZXcgUnVuVGVzdERhdGEoIlx1NkYyMlx1NUI3NSIsIFVTY3JpcHQuSEFOKSwKKyAgICAgICAgICAgIG5ldyBSdW5UZXN0RGF0YSgiXHUzMDY4XHUzMDcyXHUzMDg5XHUzMDRDXHUzMDZBXHUzMDY4IiwgVVNjcmlwdC5ISVJBR0FOQSksCisgICAgICAgICAgICBuZXcgUnVuVGVzdERhdGEoIlx1MzBBQlx1MzBCRlx1MzBBQlx1MzBDQSIsIFVTY3JpcHQuS0FUQUtBTkEpLAorICAgICAgICAgICAgbmV3IFJ1blRlc3REYXRhKCJcdUQ4MDFcdURDMDBcdUQ4MDFcdURDMDFcdUQ4MDFcdURDMDJcdUQ4MDFcdURDMDMiLCBVU2NyaXB0LkRFU0VSRVQpLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICBuZXcgUnVuVGVzdERhdGEoIigoKCgoKCgoKChhYmMpKSkpKSkpKSkpIiwgVVNjcmlwdC5MQVRJTikKKyAgICAgICAgfQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHBhZGRpbmcgPSAiVGhpcyBzdHJpbmcgaXMgdXNlZCBmb3IgcGFkZGluZy4uLiI7CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIENoZWNrU2NyaXB0UnVucyhVU2NyaXB0UnVuIHNjcmlwdFJ1biwgaW50W10gcnVuU3RhcnRzLCBSdW5UZXN0RGF0YVtdIHRlc3REYXRhKQorICAgIHsKKyAgICAgICAgaW50IHJ1biwgcnVuU3RhcnQsIHJ1bkxpbWl0OworICAgICAgICBpbnQgcnVuU2NyaXB0OworCisgICAgICAgIC8qIGl0ZXJhdGUgb3ZlciBhbGwgdGhlIHJ1bnMgKi8KKyAgICAgICAgcnVuID0gMDsKKyAgICAgICAgd2hpbGUgKHNjcmlwdFJ1bi5uZXh0KCkpIHsKKyAgICAgICAgICAgIHJ1blN0YXJ0ICA9IHNjcmlwdFJ1bi5nZXRTY3JpcHRTdGFydCgpOworICAgICAgICAgICAgcnVuTGltaXQgID0gc2NyaXB0UnVuLmdldFNjcmlwdExpbWl0KCk7CisgICAgICAgICAgICBydW5TY3JpcHQgPSBzY3JpcHRSdW4uZ2V0U2NyaXB0Q29kZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAocnVuU3RhcnQgIT0gcnVuU3RhcnRzW3J1bl0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiSW5jb3JyZWN0IHN0YXJ0IG9mZnNldCBmb3IgcnVuICIgKyBydW4gKyAiOiBleHBlY3RlZCAiICsgcnVuU3RhcnRzW3J1bl0gKyAiLCBnb3QgIiArIHJ1blN0YXJ0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHJ1bkxpbWl0ICE9IHJ1blN0YXJ0c1tydW4gKyAxXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3QgbGltaXQgb2Zmc2V0IGZvciBydW4gIiArIHJ1biArICI6IGV4cGVjdGVkICIgKyBydW5TdGFydHNbcnVuICsgMV0gKyAiLCBnb3QgIiArIHJ1bkxpbWl0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHJ1blNjcmlwdCAhPSB0ZXN0RGF0YVtydW5dLnJ1blNjcmlwdCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3Qgc2NyaXB0IGZvciBydW4gIiArIHJ1biArICI6IGV4cGVjdGVkIFwiIiArIFVTY3JpcHQuZ2V0TmFtZSh0ZXN0RGF0YVtydW5dLnJ1blNjcmlwdCkgKyAiXCIsIGdvdCBcIiIgKyBVU2NyaXB0LmdldE5hbWUocnVuU2NyaXB0KSArICJcIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBydW4gKz0gMTsKKworICAgICAgICAgICAgLyogc3RvcCB3aGVuIHdlJ3ZlIHNlZW4gYWxsIHRoZSBydW5zIHdlIGV4cGVjdCB0byBzZWUgKi8KKyAgICAgICAgICAgIGlmIChydW4gPj0gdGVzdERhdGEubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiBDb21wbGFpbiBpZiB3ZSBkaWRuJ3Qgc2VlIHRoZW4gbnVtYmVyIG9mIHJ1bnMgd2UgZXhwZWN0ZWQgKi8KKyAgICAgICAgaWYgKHJ1biAhPSB0ZXN0RGF0YS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHJ1bnM6IGV4cGVjdGVkICIgKyB0ZXN0RGF0YS5sZW5ndGggKyAiLCBnb3QgIiArIHJ1bik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29udHN0cnVjdGlvbigpCisgICAgeworICAgICAgICBVU2NyaXB0UnVuIHNjcmlwdFJ1biA9IG51bGw7CisgICAgICAgIGNoYXJbXSBudWxsQ2hhcnMgID0gbnVsbCwgZHVtbXlDaGFycyAgPSB7J2QnLCAndScsICdtJywgJ20nLCAneSd9OworICAgICAgICBTdHJpbmcgbnVsbFN0cmluZyA9IG51bGwsIGR1bW15U3RyaW5nID0gbmV3IFN0cmluZyhkdW1teUNoYXJzKTsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihudWxsU3RyaW5nLCAwLCAxMDApOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKG51bGxTdHJpbmcsIDAsIDEwMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihudWxsU3RyaW5nLCAxMDAsIDApOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKG51bGxTdHJpbmcsIDEwMCwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihudWxsU3RyaW5nLCAwLCAtMTAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihudWxsU3RyaW5nLCAwLCAtMTAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKG51bGxTdHJpbmcsIC0xMDAsIDApOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKG51bGxTdHJpbmcsIC0xMDAsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4obnVsbENoYXJzLCAwLCAxMDApOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKG51bGxDaGFycywgMCwgMTAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKG51bGxDaGFycywgMTAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihudWxsQ2hhcnMsIDEwMCwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihudWxsQ2hhcnMsIDAsIC0xMDApOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKG51bGxDaGFycywgMCwgLTEwMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihudWxsQ2hhcnMsIC0xMDAsIDApOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKG51bGxDaGFycywgLTEwMCwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihkdW1teVN0cmluZywgMCwgNik7CisgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4oZHVtbXlTdHJpbmcsIDAsIDYpIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4oZHVtbXlTdHJpbmcsIDYsIDApOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKGR1bW15LCA2LCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9Y2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVU2NyaXB0UnVuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4oZHVtbXlTdHJpbmcsIDAsIC0xMDApOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKGR1bW15U3RyaW5nLCAwLCAtMTAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKGR1bW15U3RyaW5nLCAtMTAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihkdW1teSwgLTEwMCwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihkdW1teUNoYXJzLCAwLCA2KTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihkdW1teUNoYXJzLCAwLCA2KSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKGR1bW15Q2hhcnMsIDYsIDApOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKGR1bW15Q2hhcnMsIDYsIDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH1jYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVTY3JpcHRSdW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4gPSBuZXcgVVNjcmlwdFJ1bihkdW1teUNoYXJzLCAwLCAtMTAwKTsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bihkdW1teUNoYXJzLCAwLCAtMTAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKGR1bW15Q2hhcnMsIC0xMDAsIDApOworICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKGR1bW15LCAtMTAwLCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogVVNjcmlwdFJ1biBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICBpZihzY3JpcHRSdW4hPW51bGwpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBFeGNlcHRpb24iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVzZXQoKQorICAgIHsKKyAgICAgICAgVVNjcmlwdFJ1biBzY3JpcHRSdW4gPSBudWxsOworICAgICAgICBjaGFyW10gZHVtbXkgPSB7J2QnLCAndScsICdtJywgJ20nLCAneSd9OworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKCk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJuZXcgVVNjcmlwdFJ1bigpIHByb2R1Y2VkIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldCgwLCAxMDApOworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldCgwLCAxMDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBzY3JpcHRSdW4ucmVzZXQgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoMTAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQoMTAwLCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc2NyaXB0UnVuLnJlc2V0IGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KDAsIC0xMDApOworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldCgwLCAtMTAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc2NyaXB0UnVuLnJlc2V0IGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KC0xMDAsIDApOworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldCgtMTAwLCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc2NyaXB0UnVuLnJlc2V0IGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KGR1bW15LCAwLCA2KTsKKyAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQoZHVtbXksIDAsIDYpIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBzY3JpcHRSdW4ucmVzZXQgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoZHVtbXksIDYsIDApOworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldChkdW1teSwgNiwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfWNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc2NyaXB0UnVuLnJlc2V0IGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KGR1bW15LCAwLCAtMTAwKTsKKyAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQoZHVtbXksIDAsIC0xMDApIGRpZCBub3QgcHJvZHVjZSBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBzY3JpcHRSdW4ucmVzZXQgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoZHVtbXksIC0xMDAsIDApOworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldChkdW1teSwgLTEwMCwgMCkgZGlkIG5vdCBwcm9kdWNlIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IHNjcmlwdFJ1bi5yZXNldCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldChkdW1teSwgMCwgZHVtbXkubGVuZ3RoKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldChkdW1teSwgMCwgZHVtbXkubGVuZ3RoKSBwcm9kdWNlZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KDAsIDYpOworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldCgwLCA2KSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc2NyaXB0UnVuLnJlc2V0IGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KDYsIDApOworICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldCg2LCAwKSBkaWQgbm90IHByb2R1Y2UgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc2NyaXB0UnVuLnJlc2V0IGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSdW5zKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdERhdGEubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgIFJ1blRlc3REYXRhW10gdGVzdCA9IHRlc3REYXRhW2ldOworICAgICAgICAgICAgaW50IHN0cmluZ0xpbWl0ID0gMDsKKyAgICAgICAgICAgIGludFtdIHJ1blN0YXJ0cyA9IG5ldyBpbnRbdGVzdC5sZW5ndGggKyAxXTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXN0U3RyaW5nID0gIiI7CisgICAgICAgICAgICBVU2NyaXB0UnVuIHNjcmlwdFJ1biA9IG51bGw7CisgICAgICAgIAorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEZpbGwgaW4gdGhlIHRlc3Qgc3RyaW5nIGFuZCB0aGUgcnVuU3RhcnRzIGFycmF5LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBmb3IgKGludCBydW4gPSAwOyBydW4gPCB0ZXN0Lmxlbmd0aDsgcnVuICs9IDEpIHsKKyAgICAgICAgICAgICAgICBydW5TdGFydHNbcnVuXSA9IHN0cmluZ0xpbWl0OworICAgICAgICAgICAgICAgIHN0cmluZ0xpbWl0ICs9IHRlc3RbcnVuXS5ydW5UZXh0Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgIHRlc3RTdHJpbmcgICs9IHRlc3RbcnVuXS5ydW5UZXh0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBUaGUgbGltaXQgb2YgdGhlIGxhc3QgcnVuICovIAorICAgICAgICAgICAgcnVuU3RhcnRzW3Rlc3QubGVuZ3RoXSA9IHN0cmluZ0xpbWl0OworICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4odGVzdFN0cmluZyk7CisgICAgICAgICAgICAgICAgQ2hlY2tTY3JpcHRSdW5zKHNjcmlwdFJ1biwgcnVuU3RhcnRzLCB0ZXN0KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4odGVzdFN0cmluZykgcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KCk7CisgICAgICAgICAgICAgICAgQ2hlY2tTY3JpcHRSdW5zKHNjcmlwdFJ1biwgcnVuU3RhcnRzLCB0ZXN0KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KCkgb24gYSB2YWxpZCBVU2NyaXB0UnVuIHByb2R1Y2VkIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNjcmlwdFJ1biA9IG5ldyBVU2NyaXB0UnVuKHRlc3RTdHJpbmcudG9DaGFyQXJyYXkoKSk7CisgICAgICAgICAgICAgICAgQ2hlY2tTY3JpcHRSdW5zKHNjcmlwdFJ1biwgcnVuU3RhcnRzLCB0ZXN0KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibmV3IFVTY3JpcHRSdW4odGVzdFN0cmluZy50b0NoYXJBcnJheSgpKSBwcm9kdWNlZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzY3JpcHRSdW4ucmVzZXQoKTsKKyAgICAgICAgICAgICAgICBDaGVja1NjcmlwdFJ1bnMoc2NyaXB0UnVuLCBydW5TdGFydHMsIHRlc3QpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ucmVzZXQoKSBvbiBhIHZhbGlkIFVTY3JpcHRSdW4gcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4oKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChzY3JpcHRSdW4ubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJzY3JpcHRSdW4ubmV4dCgpIG9uIGFuIGVtcHR5IFVTY3JpcHRSdW4gcmV0dXJuZWQgdHJ1ZSEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIm5ldyBVU2NyaXB0UnVuKCkgcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KHRlc3RTdHJpbmcsIDAsIHRlc3RTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIENoZWNrU2NyaXB0UnVucyhzY3JpcHRSdW4sIHJ1blN0YXJ0cywgdGVzdCk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldCh0ZXN0U3RyaW5nLCAwLCB0ZXN0U3RyaW5nLmxlbmd0aCkgcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldCh0ZXN0U3RyaW5nLnRvQ2hhckFycmF5KCksIDAsIHRlc3RTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIENoZWNrU2NyaXB0UnVucyhzY3JpcHRSdW4sIHJ1blN0YXJ0cywgdGVzdCk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInNjcmlwdFJ1bi5yZXNldCh0ZXN0U3RyaW5nLnRvQ2hhckFycmF5KCksIDAsIHRlc3RTdHJpbmcubGVuZ3RoKSBwcm9kdWNlZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBwYWRkZWRUZXN0U3RyaW5nID0gcGFkZGluZyArIHRlc3RTdHJpbmcgKyBwYWRkaW5nOworICAgICAgICAgICAgaW50IHN0YXJ0T2Zmc2V0ID0gcGFkZGluZy5sZW5ndGgoKTsKKyAgICAgICAgICAgIGludCBjb3VudCA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IHJ1biA9IDA7IHJ1biA8IHJ1blN0YXJ0cy5sZW5ndGg7IHJ1biArPSAxKSB7CisgICAgICAgICAgICAgICAgcnVuU3RhcnRzW3J1bl0gKz0gc3RhcnRPZmZzZXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2NyaXB0UnVuLnJlc2V0KHBhZGRlZFRlc3RTdHJpbmcsIHN0YXJ0T2Zmc2V0LCBjb3VudCk7CisgICAgICAgICAgICAgICAgQ2hlY2tTY3JpcHRSdW5zKHNjcmlwdFJ1biwgcnVuU3RhcnRzLCB0ZXN0KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KHBhZGRlZFRlc3RTdHJpbmcsIHN0YXJ0T2Zmc2V0LCBjb3VudCkgcHJvZHVjZWQgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uISIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNjcmlwdFJ1bi5yZXNldChwYWRkZWRUZXN0U3RyaW5nLnRvQ2hhckFycmF5KCksIHN0YXJ0T2Zmc2V0LCBjb3VudCk7CisgICAgICAgICAgICAgICAgQ2hlY2tTY3JpcHRSdW5zKHNjcmlwdFJ1biwgcnVuU3RhcnRzLCB0ZXN0KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigic2NyaXB0UnVuLnJlc2V0KHBhZGRlZFRlc3RTdHJpbmcudG9DaGFyQXJyYXkoKSwgc3RhcnRPZmZzZXQsIGNvdW50KSBwcm9kdWNlZCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24hIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyQ2FzZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDYXNlVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyNmY1OWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVyQ2FzZVRlc3QuamF2YQpAQCAtMCwwICsxLDg0MCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdFV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworCisvKioKKyogPHA+VGVzdGluZyBjaGFyYWN0ZXIgY2FzaW5nPC9wPgorKiA8cD5Nb3N0bHkgZm9sbG93aW5nIHRoZSB0ZXN0IGNhc2VzIGluIHN0cmNhc2UuY3BwIGZvciBJQ1U8L3A+CisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSBtYXJjaCAxNCAyMDAyCisqLworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJDYXNlVGVzdCBleHRlbmRzIFRlc3RGbXdrCit7CisgICAgLy8gY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yCisgICAgICovCisgICAgcHVibGljIFVDaGFyYWN0ZXJDYXNlVGVzdCgpCisgICAgeworICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmcpCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgVUNoYXJhY3RlckNhc2VUZXN0IHRlc3QgPSBuZXcgVUNoYXJhY3RlckNhc2VUZXN0KCk7CisgICAgICAgICAgICB0ZXN0LnJ1bihhcmcpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RpbmcgdGhlIHVwcGVyY2FzZSBhbmQgbG93ZXJjYXNlIGZ1bmN0aW9uIG9mIFVDaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhcmFjdGVyKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQ0hBUkFDVEVSX0xPV0VSXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzTGV0dGVyKENIQVJBQ1RFUl9MT1dFUl9baV0pICYmCisgICAgICAgICAgICAgICAgIVVDaGFyYWN0ZXIuaXNMb3dlckNhc2UoQ0hBUkFDVEVSX0xPV0VSX1tpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBpc0xvd2VyQ2FzZSB0ZXN0IGZvciBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICBoZXgoQ0hBUkFDVEVSX0xPV0VSX1tpXSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNMZXR0ZXIoQ0hBUkFDVEVSX1VQUEVSX1tpXSkgJiYKKyAgICAgICAgICAgICAgICAhKFVDaGFyYWN0ZXIuaXNVcHBlckNhc2UoQ0hBUkFDVEVSX1VQUEVSX1tpXSkgfHwKKyAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNUaXRsZUNhc2UoQ0hBUkFDVEVSX1VQUEVSX1tpXSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgaXNVcHBlckNhc2UgdGVzdCBmb3IgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgaGV4KENIQVJBQ1RFUl9VUFBFUl9baV0pKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChDSEFSQUNURVJfTE9XRVJfW2ldICE9CisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShDSEFSQUNURVJfVVBQRVJfW2ldKSB8fAorICAgICAgICAgICAgICAgIChDSEFSQUNURVJfVVBQRVJfW2ldICE9CisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShDSEFSQUNURVJfTE9XRVJfW2ldKSAmJgorICAgICAgICAgICAgICAgIENIQVJBQ1RFUl9VUFBFUl9baV0gIT0KKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKENIQVJBQ1RFUl9MT1dFUl9baV0pKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIGNhc2UgY29udmVyc2lvbiB0ZXN0IGZvciBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICBoZXgoQ0hBUkFDVEVSX1VQUEVSX1tpXSkgKworICAgICAgICAgICAgICAgICAgICAgICIgdG8gXFx1IiArIGhleChDSEFSQUNURVJfTE9XRVJfW2ldKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoQ0hBUkFDVEVSX0xPV0VSX1tpXSAhPQorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoQ0hBUkFDVEVSX0xPV0VSX1tpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBsb3dlciBjYXNlIGNvbnZlcnNpb24gdGVzdCBmb3IgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgaGV4KENIQVJBQ1RFUl9MT1dFUl9baV0pKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChDSEFSQUNURVJfVVBQRVJfW2ldICE9CisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShDSEFSQUNURVJfVVBQRVJfW2ldKSAmJgorICAgICAgICAgICAgICAgIENIQVJBQ1RFUl9VUFBFUl9baV0gIT0KKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKENIQVJBQ1RFUl9VUFBFUl9baV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgdXBwZXIgY2FzZSBjb252ZXJzaW9uIHRlc3QgZm9yIFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgIGhleChDSEFSQUNURVJfVVBQRVJfW2ldKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiT2sgICAgXFx1IiArIGhleChDSEFSQUNURVJfVVBQRVJfW2ldKSArICIgYW5kIFxcdSIgKworICAgICAgICAgICAgICAgICAgaGV4KENIQVJBQ1RFUl9MT1dFUl9baV0pKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RGb2xkaW5nKCkKKyAgICB7CisgICAgICAgIC8vIHRlc3Qgc2ltcGxlIGNhc2UgZm9sZGluZworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEZPTERJTkdfU0lNUExFXy5sZW5ndGg7IGkgKz0gMykgeworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19TSU1QTEVfW2ldLCB0cnVlKSAhPQorICAgICAgICAgICAgICAgIEZPTERJTkdfU0lNUExFX1tpICsgMV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoXFx1IiArIGhleChGT0xESU5HX1NJTVBMRV9baV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCB0cnVlKSBzaG91bGQgYmUgXFx1IiArIGhleChGT0xESU5HX1NJTVBMRV9baSArIDFdKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX1NJTVBMRV9baV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5GT0xEX0NBU0VfREVGQVVMVCkgIT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZPTERJTkdfU0lNUExFX1tpICsgMV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoXFx1IiArIGhleChGT0xESU5HX1NJTVBMRV9baV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9ERUZBVUxUKSBzaG91bGQgYmUgXFx1IiAKKyAgICAgICAgICAgICAgICAgICAgICArIGhleChGT0xESU5HX1NJTVBMRV9baSArIDFdKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX1NJTVBMRV9baV0sIGZhbHNlKSAhPQorICAgICAgICAgICAgICAgIEZPTERJTkdfU0lNUExFX1tpICsgMl0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoXFx1IiArIGhleChGT0xESU5HX1NJTVBMRV9baV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBmYWxzZSkgc2hvdWxkIGJlIFxcdSIgKyBoZXgoRk9MRElOR19TSU1QTEVfW2kgKyAyXSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19TSU1QTEVfW2ldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRk9MRElOR19TSU1QTEVfW2kgKyAyXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZShcXHUiICsgaGV4KEZPTERJTkdfU0lNUExFX1tpXSkgKworICAgICAgICAgICAgICAgICAgICAgICIsIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSBzaG91bGQgYmUgXFx1IiAKKyAgICAgICAgICAgICAgICAgICAgICArIGhleChGT0xESU5HX1NJTVBMRV9baSArIDJdKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBUZXN0IGZ1bGwgc3RyaW5nIGNhc2UgZm9sZGluZyB3aXRoIGRlZmF1bHQgb3B0aW9uIGFuZCBzZXBhcmF0ZQorICAgICAgICAvLyBidWZmZXJzCisgICAgICAgIGlmICghRk9MRElOR19ERUZBVUxUX1swXS5lcXVhbHMoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1swXSwgdHJ1ZSkpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoIiArIHByZXR0aWZ5KEZPTERJTkdfTUlYRURfWzBdKSArCisgICAgICAgICAgICAgICAgICAiLCB0cnVlKT0iICsgcHJldHRpZnkoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1swXSwgdHJ1ZSkpICsKKyAgICAgICAgICAgICAgICAgICIgc2hvdWxkIGJlICIgKyBwcmV0dGlmeShGT0xESU5HX0RFRkFVTFRfWzBdKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICghRk9MRElOR19ERUZBVUxUX1swXS5lcXVhbHMoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1swXSwgVUNoYXJhY3Rlci5GT0xEX0NBU0VfREVGQVVMVCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZSgiICsgcHJldHRpZnkoRk9MRElOR19NSVhFRF9bMF0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgVUNoYXJhY3Rlci5GT0xEX0NBU0VfREVGQVVMVCk9IiArIHByZXR0aWZ5KFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMF0sIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0RFRkFVTFQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICArICIgc2hvdWxkIGJlICIgKyBwcmV0dGlmeShGT0xESU5HX0RFRkFVTFRfWzBdKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgIGlmICghRk9MRElOR19FWENMVURFX1NQRUNJQUxfSV9bMF0uZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMF0sIGZhbHNlKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZSgiICsgcHJldHRpZnkoRk9MRElOR19NSVhFRF9bMF0pICsKKyAgICAgICAgICAgICAgICAgICIsIGZhbHNlKT0iICsgcHJldHRpZnkoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1swXSwgZmFsc2UpKQorICAgICAgICAgICAgICAgICAgKyAiIHNob3VsZCBiZSAiICsgcHJldHRpZnkoRk9MRElOR19FWENMVURFX1NQRUNJQUxfSV9bMF0pKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCFGT0xESU5HX0VYQ0xVREVfU1BFQ0lBTF9JX1swXS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzBdLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSkpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoIiArIHByZXR0aWZ5KEZPTERJTkdfTUlYRURfWzBdKSArCisgICAgICAgICAgICAgICAgICAiLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk9IiArIHByZXR0aWZ5KFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMF0sIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSkKKyAgICAgICAgICAgICAgICAgICsgIiBzaG91bGQgYmUgIiArIHByZXR0aWZ5KEZPTERJTkdfRVhDTFVERV9TUEVDSUFMX0lfWzBdKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIUZPTERJTkdfREVGQVVMVF9bMV0uZXF1YWxzKFVDaGFyYWN0ZXIuZm9sZENhc2UoRk9MRElOR19NSVhFRF9bMV0sIHRydWUpKSkgeworICAgICAgICAgICBlcnJsbigiRkFJTDogZm9sZENhc2UoIiArIHByZXR0aWZ5KEZPTERJTkdfTUlYRURfWzFdKSArCisgICAgICAgICAgICAgICAgICIsIHRydWUpPSIgKyBwcmV0dGlmeShVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzFdLCB0cnVlKSkKKyAgICAgICAgICAgICAgICAgKyAiIHNob3VsZCBiZSAiICsgcHJldHRpZnkoRk9MRElOR19ERUZBVUxUX1sxXSkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFGT0xESU5HX0RFRkFVTFRfWzFdLmVxdWFscyhVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzFdLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9ERUZBVUxUKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBmb2xkQ2FzZSgiICsgcHJldHRpZnkoRk9MRElOR19NSVhFRF9bMV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAiLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9ERUZBVUxUKT0iICsgcHJldHRpZnkoVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1sxXSwgVUNoYXJhY3Rlci5GT0xEX0NBU0VfREVGQVVMVCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHNob3VsZCBiZSAiICsgcHJldHRpZnkoRk9MRElOR19ERUZBVUxUX1sxXSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBhbHRlcm5hdGUgaGFuZGxpbmcgZm9yIGRvdHRlZCBJL2RvdGxlc3MgaSAoVSswMTMwLCBVKzAxMzEpCisgICAgICAgIGlmICghRk9MRElOR19FWENMVURFX1NQRUNJQUxfSV9bMV0uZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1sxXSwgZmFsc2UpKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGZvbGRDYXNlKCIgKyBwcmV0dGlmeShGT0xESU5HX01JWEVEX1sxXSkgKworICAgICAgICAgICAgICAgICAgIiwgZmFsc2UpPSIgKyBwcmV0dGlmeShVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzFdLCBmYWxzZSkpCisgICAgICAgICAgICAgICAgICArICIgc2hvdWxkIGJlICIgKyBwcmV0dGlmeShGT0xESU5HX0VYQ0xVREVfU1BFQ0lBTF9JX1sxXSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIUZPTERJTkdfRVhDTFVERV9TUEVDSUFMX0lfWzFdLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5mb2xkQ2FzZShGT0xESU5HX01JWEVEX1sxXSwgVUNoYXJhY3Rlci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGZvbGRDYXNlKCIgKyBwcmV0dGlmeShGT0xESU5HX01JWEVEX1sxXSkgKworICAgICAgICAgICAgICAgICAgIiwgVUNoYXJhY3Rlci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpPSIgKyBwcmV0dGlmeShVQ2hhcmFjdGVyLmZvbGRDYXNlKEZPTERJTkdfTUlYRURfWzFdLCBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSkpCisgICAgICAgICAgICAgICAgICArICIgc2hvdWxkIGJlICIKKyAgICAgICAgICAgICAgICAgICsgcHJldHRpZnkoRk9MRElOR19FWENMVURFX1NQRUNJQUxfSV9bMV0pKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RpbmcgdGhlIHN0cmluZ3MgY2FzZSBtYXBwaW5nIG1ldGhvZHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VXBwZXIoKQorICAgIHsKKyAgICAgICAgLy8gdXBwZXJjYXNlIHdpdGggcm9vdCBsb2NhbGUgYW5kIGluIHRoZSBzYW1lIGJ1ZmZlcgorICAgICAgICBpZiAoIVVQUEVSX1JPT1RfLmVxdWFscyhVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFVQUEVSX0JFRk9SRV8pKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgIiArIFVQUEVSX0JFRk9SRV8gKyAiIGFmdGVyIHVwcGVyY2FzZSBzaG91bGQgYmUgIiArCisgICAgICAgICAgICAgICAgICBVUFBFUl9ST09UXyArICIgaW5zdGVhZCBnb3QgIiArCisgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFVQUEVSX0JFRk9SRV8pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHVwcGVyY2FzZSB3aXRoIHR1cmtpc2ggbG9jYWxlIGFuZCBzZXBhcmF0ZSBidWZmZXJzCisgICAgICAgIGlmICghVVBQRVJfVFVSS0lTSF8uZXF1YWxzKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoVFVSS0lTSF9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBQRVJfQkVGT1JFXykpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbCAiICsgVVBQRVJfQkVGT1JFXyArCisgICAgICAgICAgICAgICAgICAiIGFmdGVyIHR1cmtpc2gtc2Vuc2l0aXZlIHVwcGVyY2FzZSBzaG91bGQgYmUgIiArCisgICAgICAgICAgICAgICAgICBVUFBFUl9UVVJLSVNIXyArICIgaW5zdGVhZCBvZiAiICsKKyAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoVFVSS0lTSF9MT0NBTEVfLCBVUFBFUl9CRUZPUkVfKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyB1cHBlcmNhc2UgYSBzaG9ydCBzdHJpbmcgd2l0aCByb290IGxvY2FsZQorICAgICAgICBpZiAoIVVQUEVSX01JTklfVVBQRVJfLmVxdWFscyhVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFVQUEVSX01JTklfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiB0b1VwcGVyKHJvb3QgbG9jYWxlKT1cIiIgKyBVUFBFUl9NSU5JXyArCisgICAgICAgICAgICAgICAgICAiXCIgZXhwZWN0ZWQgXCIiICsgVVBQRVJfTUlOSV9VUFBFUl8gKyAiXCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghU0hBUkVEX1VQUEVSQ0FTRV9UT1BLQVBfLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShTSEFSRURfTE9XRVJDQVNFX1RPUEtBUF8pKSkgeworICAgICAgICAgICAgZXJybG4oInRvVXBwZXIgZmFpbGVkOiBleHBlY3RlZCBcIiIgKworICAgICAgICAgICAgICAgICAgU0hBUkVEX1VQUEVSQ0FTRV9UT1BLQVBfICsgIlwiLCBnb3QgXCIiICsKKyAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoU0hBUkVEX0xPV0VSQ0FTRV9UT1BLQVBfKSArICJcIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghU0hBUkVEX1VQUEVSQ0FTRV9UVVJLSVNIXy5lcXVhbHMoCisgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFRVUktJU0hfTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9UT1BLQVBfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJ0b1VwcGVyIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsKKyAgICAgICAgICAgICAgICAgIFNIQVJFRF9VUFBFUkNBU0VfVFVSS0lTSF8gKyAiXCIsIGdvdCBcIiIgKworICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShUVVJLSVNIX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9UT1BLQVBfKSArICJcIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghU0hBUkVEX1VQUEVSQ0FTRV9HRVJNQU5fLmVxdWFscygKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKEdFUk1BTl9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9HRVJNQU5fKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJ0b1VwcGVyIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsgU0hBUkVEX1VQUEVSQ0FTRV9HRVJNQU5fCisgICAgICAgICAgICAgICAgICArICJcIiwgZ290IFwiIiArIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoR0VSTUFOX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9HRVJNQU5fKSArICJcIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghU0hBUkVEX1VQUEVSQ0FTRV9HUkVFS18uZXF1YWxzKAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoU0hBUkVEX0xPV0VSQ0FTRV9HUkVFS18pKSkgeworICAgICAgICAgICAgZXJybG4oInRvTG93ZXIgZmFpbGVkOiBleHBlY3RlZCBcIiIgKyBTSEFSRURfVVBQRVJDQVNFX0dSRUVLXyArCisgICAgICAgICAgICAgICAgICAiXCIsIGdvdCBcIiIgKyBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIQVJFRF9MT1dFUkNBU0VfR1JFRUtfKSArICJcIi4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RMb3dlcigpCisgICAgeworICAgICAgICBpZiAoIUxPV0VSX1JPT1RfLmVxdWFscyhVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExPV0VSX0JFRk9SRV8pKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgIiArIExPV0VSX0JFRk9SRV8gKyAiIGFmdGVyIGxvd2VyY2FzZSBzaG91bGQgYmUgIiArCisgICAgICAgICAgICAgICAgICBMT1dFUl9ST09UXyArICIgaW5zdGVhZCBvZiAiICsKKyAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTE9XRVJfQkVGT1JFXykpOworICAgICAgICB9CisKKyAgICAgICAgLy8gbG93ZXJjYXNlIHdpdGggdHVya2lzaCBsb2NhbGUKKyAgICAgICAgaWYgKCFMT1dFUl9UVVJLSVNIXy5lcXVhbHMoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShUVVJLSVNIX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE9XRVJfQkVGT1JFXykpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbCAiICsgTE9XRVJfQkVGT1JFXyArCisgICAgICAgICAgICAgICAgICAiIGFmdGVyIHR1cmtpc2gtc2Vuc2l0aXZlIGxvd2VyY2FzZSBzaG91bGQgYmUgIiArCisgICAgICAgICAgICAgICAgICBMT1dFUl9UVVJLSVNIXyArICIgaW5zdGVhZCBvZiAiICsKKyAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoVFVSS0lTSF9MT0NBTEVfLCBMT1dFUl9CRUZPUkVfKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFTSEFSRURfTE9XRVJDQVNFX0lTVEFOQlVMXy5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKFNIQVJFRF9VUFBFUkNBU0VfSVNUQU5CVUxfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCIxLiB0b0xvd2VyIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsKKyAgICAgICAgICAgICAgICAgIFNIQVJFRF9MT1dFUkNBU0VfSVNUQU5CVUxfICsgIlwiLCBnb3QgXCIiICsKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShTSEFSRURfVVBQRVJDQVNFX0lTVEFOQlVMXykgKyAiXCIuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIVNIQVJFRF9MT1dFUkNBU0VfVFVSS0lTSF8uZXF1YWxzKAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoVFVSS0lTSF9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX1VQUEVSQ0FTRV9JU1RBTkJVTF8pKSkgeworICAgICAgICAgICAgZXJybG4oIjIuIHRvTG93ZXIgZmFpbGVkOiBleHBlY3RlZCBcIiIgKworICAgICAgICAgICAgICAgICAgU0hBUkVEX0xPV0VSQ0FTRV9UVVJLSVNIXyArICJcIiwgZ290IFwiIiArCisgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKFRVUktJU0hfTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0hBUkVEX1VQUEVSQ0FTRV9JU1RBTkJVTF8pICsgIlwiLiIpOworICAgICAgICB9CisgICAgICAgIGlmICghU0hBUkVEX0xPV0VSQ0FTRV9HUkVFS18uZXF1YWxzKAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoR1JFRUtfTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIQVJFRF9VUFBFUkNBU0VfR1JFRUtfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJ0b0xvd2VyIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsgU0hBUkVEX0xPV0VSQ0FTRV9HUkVFS18gKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShHUkVFS19MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIQVJFRF9VUFBFUkNBU0VfR1JFRUtfKSArICJcIi4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUaXRsZSgpCisgICAgeworICAgICAgICAgdHJ5eyAKKyAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvciBUSVRMRV9CUkVBS0lURVJBVE9SU19bXSA9CisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCksCisgICAgICAgICAgICAgICAgQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKSwKKyAgICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yLmdldFRpdGxlSW5zdGFuY2UoKSwKKyAgICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCksCisgICAgICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgICAgICBudWxsCisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFRJVExFX0JSRUFLSVRFUkFUT1JTXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGVzdCA9IFRJVExFX0RBVEFfW2kgPDwgMV07CisgICAgICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gVElUTEVfREFUQV9bKGkgPDwgMSkgKyAxXTsKKyAgICAgICAgICAgICAgICBpZiAoIWV4cGVjdGVkLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1RpdGxlQ2FzZSh0ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRJVExFX0JSRUFLSVRFUkFUT1JTX1tpXSkpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogdGl0bGVjYXNpbmcgZm9yICIgKyBwcmV0dGlmeSh0ZXN0KSArICIgc2hvdWxkIGJlICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV0dGlmeShleHBlY3RlZCkgKyAiIGJ1dCBnb3QgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXR0aWZ5KFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UodGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVElUTEVfQlJFQUtJVEVSQVRPUlNfW2ldKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL2NvdmVyIHRvVGl0bGVDYXNlKExvY2FsZSwgU3RyaW5nLCBCcmVha0l0ZXJhdG9yKQorICAgICAgICAgICAgICAgIExvY2FsZSBkZWYgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBkYXRhID0gVElUTEVfREFUQV9baSA8PCAxXTsKKyAgICAgICAgICAgICAgICBpZiAoIWV4cGVjdGVkLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShkZWYsIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVElUTEVfQlJFQUtJVEVSQVRPUlNfW2ldKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiB0aXRsZWNhc2luZyBmb3IgIiArIHByZXR0aWZ5KGRhdGEpICsgIiBzaG91bGQgYmUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXR0aWZ5KGV4cGVjdGVkKSArICIgYnV0IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldHRpZnkoVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShkZWYsIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRJVExFX0JSRUFLSVRFUkFUT1JTX1tpXSkpKTsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBmaW5kIGRhdGEgZm9yIEJyZWFrSXRlcmF0b3JzIik7CisgICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFNwZWNpYWwoKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBTUEVDSUFMX0xPQ0FMRVNfLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaW50ICAgIGogICAgICA9IGkgKiAzOworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZSA9IFNQRUNJQUxfTE9DQUxFU19baV07CisgICAgICAgICAgICBTdHJpbmcgc3RyICAgID0gU1BFQ0lBTF9EQVRBX1tqXTsKKyAgICAgICAgICAgIGlmIChsb2NhbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmICghU1BFQ0lBTF9EQVRBX1tqICsgMV0uZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShsb2NhbGUsIHN0cikpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBsb3dlcmNhc2luZyBzcGVjaWFsIGNoYXJhY3RlcnMgIiArCisgICAgICAgICAgICAgICAgICAgICAgICBoZXgoc3RyKSArICIgZXhwZWN0ZWQgIiArIGhleChTUEVDSUFMX0RBVEFfW2ogKyAxXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBmb3IgbG9jYWxlICIgKyBsb2NhbGUudG9TdHJpbmcoKSArICIgYnV0IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhleChVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGxvY2FsZSwgc3RyKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIVNQRUNJQUxfREFUQV9baiArIDJdLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UobG9jYWxlLCBzdHIpKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgdXBwZXJjYXNpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaGV4KHN0cikgKyAiIGV4cGVjdGVkICIgKyBTUEVDSUFMX0RBVEFfW2ogKyAyXQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGZvciBsb2NhbGUgIiArIGxvY2FsZS50b1N0cmluZygpICsgIiBidXQgZ290ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaGV4KFVDaGFyYWN0ZXIudG9VcHBlckNhc2UobG9jYWxlLCBzdHIpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKCFTUEVDSUFMX0RBVEFfW2ogKyAxXS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKHN0cikpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBsb3dlcmNhc2luZyBzcGVjaWFsIGNoYXJhY3RlcnMgIiArCisgICAgICAgICAgICAgICAgICAgICAgICBoZXgoc3RyKSArICIgZXhwZWN0ZWQgIiArIFNQRUNJQUxfREFUQV9baiArIDFdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgYnV0IGdvdCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhleChVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGxvY2FsZSwgc3RyKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIVNQRUNJQUxfREFUQV9baiArIDJdLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UobG9jYWxlLCBzdHIpKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgdXBwZXJjYXNpbmcgc3BlY2lhbCBjaGFyYWN0ZXJzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaGV4KHN0cikgKyAiIGV4cGVjdGVkICIgKyBTUEVDSUFMX0RBVEFfW2ogKyAyXSArCisgICAgICAgICAgICAgICAgICAgICAgICAiIGJ1dCBnb3QgIiArCisgICAgICAgICAgICAgICAgICAgICAgICBoZXgoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShsb2NhbGUsIHN0cikpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyB0dXJraXNoICYgYXplcmJhaWphbmkgZG90bGVzcyBpICYgZG90dGVkIEkKKyAgICAgICAgLy8gcmVtb3ZlIGRvdCBhYm92ZSBpZiB0aGVyZSB3YXMgYSBjYXBpdGFsIEkgYmVmb3JlIGFuZCB0aGVyZSBhcmUgbm8KKyAgICAgICAgLy8gbW9yZSBhY2NlbnRzIGFib3ZlCisgICAgICAgIGlmICghU1BFQ0lBTF9ET1RURURfTE9XRVJfVFVSS0lTSF8uZXF1YWxzKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFVSS0lTSF9MT0NBTEVfLCBTUEVDSUFMX0RPVFRFRF8pKSkgeworICAgICAgICAgICAgZXJybG4oImVycm9yIGluIGRvdHMudG9Mb3dlcih0cik9XCIiICsgU1BFQ0lBTF9ET1RURURfICsKKyAgICAgICAgICAgICAgICAgICJcIiBleHBlY3RlZCBcIiIgKyBTUEVDSUFMX0RPVFRFRF9MT1dFUl9UVVJLSVNIXyArCisgICAgICAgICAgICAgICAgICAiXCIgYnV0IGdvdCAiICsgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShUVVJLSVNIX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVDSUFMX0RPVFRFRF8pKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIVNQRUNJQUxfRE9UVEVEX0xPV0VSX0dFUk1BTl8uZXF1YWxzKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRVJNQU5fTE9DQUxFXywgU1BFQ0lBTF9ET1RURURfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBkb3RzLnRvTG93ZXIoZGUpPVwiIiArIFNQRUNJQUxfRE9UVEVEXyArCisgICAgICAgICAgICAgICAgICAiXCIgZXhwZWN0ZWQgXCIiICsgU1BFQ0lBTF9ET1RURURfTE9XRVJfR0VSTUFOXyArCisgICAgICAgICAgICAgICAgICAiXCIgYnV0IGdvdCAiICsgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShHRVJNQU5fTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUNJQUxfRE9UVEVEXykpOworICAgICAgICB9CisKKyAgICAgICAgLy8gbGl0aHVhbmlhbiBkb3QgYWJvdmUgaW4gdXBwZXJjYXNpbmcKKyAgICAgICAgaWYgKCFTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl9MSVRIVUFOSUFOXy5lcXVhbHMoCisgICAgICAgICAgICAgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShMSVRIVUFOSUFOX0xPQ0FMRV8sIFNQRUNJQUxfRE9UX0FCT1ZFXykpKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gZG90cy50b1VwcGVyKGx0KT1cIiIgKyBTUEVDSUFMX0RPVF9BQk9WRV8gKworICAgICAgICAgICAgICAgICAgIlwiIGV4cGVjdGVkIFwiIiArIFNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSX0xJVEhVQU5JQU5fICsKKyAgICAgICAgICAgICAgICAgICJcIiBidXQgZ290ICIgKyBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKExJVEhVQU5JQU5fTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUNJQUxfRE9UX0FCT1ZFXykpOworICAgICAgICB9CisgICAgICAgIGlmICghU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfR0VSTUFOXy5lcXVhbHMoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRVJNQU5fTE9DQUxFXywgU1BFQ0lBTF9ET1RfQUJPVkVfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBkb3RzLnRvVXBwZXIoZGUpPVwiIiArIFNQRUNJQUxfRE9UX0FCT1ZFXyArCisgICAgICAgICAgICAgICAgICAiXCIgZXhwZWN0ZWQgXCIiICsgU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfR0VSTUFOXyArCisgICAgICAgICAgICAgICAgICAiXCIgYnV0IGdvdCAiICsgVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShHRVJNQU5fTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUNJQUxfRE9UX0FCT1ZFXykpOworICAgICAgICB9CisKKyAgICAgICAgLy8gbGl0aHVhbmlhbiBhZGRzIGRvdCBhYm92ZSB0byBpIGluIGxvd2VyY2FzaW5nIGlmIHRoZXJlIGFyZSBtb3JlCisgICAgICAgIC8vIGFib3ZlIGFjY2VudHMKKyAgICAgICAgaWYgKCFTUEVDSUFMX0RPVF9BQk9WRV9MT1dFUl9MSVRIVUFOSUFOXy5lcXVhbHMoCisgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExJVEhVQU5JQU5fTE9DQUxFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBkb3RzLnRvTG93ZXIobHQpPVwiIiArIFNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSXyArCisgICAgICAgICAgICAgICAgICAiXCIgZXhwZWN0ZWQgXCIiICsgU1BFQ0lBTF9ET1RfQUJPVkVfTE9XRVJfTElUSFVBTklBTl8gKworICAgICAgICAgICAgICAgICAgIlwiIGJ1dCBnb3QgIiArIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTElUSFVBTklBTl9MT0NBTEVfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFTUEVDSUFMX0RPVF9BQk9WRV9MT1dFUl9HRVJNQU5fLmVxdWFscygKKyAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoR0VSTUFOX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNQRUNJQUxfRE9UX0FCT1ZFX1VQUEVSXykpKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gZG90cy50b0xvd2VyKGRlKT1cIiIgKyBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl8gKworICAgICAgICAgICAgICAgICAgIlwiIGV4cGVjdGVkIFwiIiArIFNQRUNJQUxfRE9UX0FCT1ZFX0xPV0VSX0dFUk1BTl8gKworICAgICAgICAgICAgICAgICAgIlwiIGJ1dCBnb3QgIiArIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoR0VSTUFOX0xPQ0FMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl8pKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RzIGZvciBjYXNlIG1hcHBpbmcgaW4gdGhlIGZpbGUgU3BlY2lhbENhc2luZy50eHQKKyAgICAgKiBUaGlzIG1ldGhvZCByZWFkcyBpbiBTcGVjaWFsQ2FzaW5nLnR4dCBmaWxlIGZvciB0ZXN0aW5nIHB1cnBvc2VzLgorICAgICAqIEEgZGVmYXVsdCBwYXRoIGlzIHByb3ZpZGVkIHJlbGF0aXZlIHRvIHRoZSBzcmMgcGF0aCwgaG93ZXZlciB0aGUgdXNlcgorICAgICAqIGNvdWxkIHNldCBhIHN5c3RlbSBwcm9wZXJ0eSB0byBjaGFuZ2UgdGhlIGRpcmVjdG9yeSBwYXRoLjxicj4KKyAgICAgKiBlLmcuIGphdmEgLURVbmljb2RlRGF0YT0iZGF0YV9kaXJfcGF0aCIgY29tLmlibS5kZXYudGVzdC5sYW5nLlVDaGFyYWN0ZXJUZXN0CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNwZWNpYWxDYXNpbmdUeHQoKQorICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIHJlYWRpbmcgaW4gdGhlIFNwZWNpYWxDYXNpbmcgZmlsZQorICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW5wdXQgPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5pY29kZS9TcGVjaWFsQ2FzaW5nLnR4dCIpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSBpbnB1dC5yZWFkTGluZSgpOworICAgICAgICAgICAgICAgIGlmIChzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzLmxlbmd0aCgpID09IDAgfHwgcy5jaGFyQXQoMCkgPT0gJyMnKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIFN0cmluZyBjaHN0cltdID0gZ2V0VW5pY29kZVN0cmluZ3Mocyk7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmJ1ZmZlciAgID0gbmV3IFN0cmluZ0J1ZmZlcihjaHN0clswXSk7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGxvd2VyYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcihjaHN0clsxXSk7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHVwcGVyYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcihjaHN0clszXSk7CisgICAgICAgICAgICAgICAgTG9jYWxlIGxvY2FsZSA9IG51bGw7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDQ7IGkgPCBjaHN0ci5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNvbmRpdGlvbiA9IGNoc3RyW2ldOworICAgICAgICAgICAgICAgICAgICBpZiAoQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKGNoc3RyW2ldLmNoYXJBdCgwKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZmllZCBsb2NhbGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZSA9IG5ldyBMb2NhbGUoY2hzdHJbaV0sICIiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjb25kaXRpb24uY29tcGFyZVRvSWdub3JlQ2FzZSgiTm90X0JlZm9yZV9Eb3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHVybnMgSSBpbnRvIGRvdGxlc3MgaQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvbmRpdGlvbi5jb21wYXJlVG9JZ25vcmVDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vcmVfQWJvdmUiKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyYnVmZmVyLmFwcGVuZCgoY2hhcikweDMwMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG93ZXJidWZmZXIuYXBwZW5kKChjaGFyKTB4MzAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cHBlcmJ1ZmZlci5hcHBlbmQoKGNoYXIpMHgzMDApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvbmRpdGlvbi5jb21wYXJlVG9JZ25vcmVDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFmdGVyX1NvZnRfRG90dGVkIikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmJ1ZmZlci5pbnNlcnQoMCwgJ2knKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlcmJ1ZmZlci5pbnNlcnQoMCwgJ2knKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbGFuZyA9ICIiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nID0gbG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYW5nLmVxdWFscygidHIiKSB8fCBsYW5nLmVxdWFscygiYXoiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIHRvIGJlIHJlbW92ZWQgd2hlbiA0LjAgZGF0YSBjb21lcyBvdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHVwcGVyYnVmZmVyLmluc2VydCB1bmNvbW1lbnRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzZWUgaml0dGVyYnVnIDIzNDQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hzdHJbaV0gPSAiQWZ0ZXJfSSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmJ1ZmZlci5kZWxldGVDaGFyQXQoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2VyYnVmZmVyLmRlbGV0ZUNoYXJBdCgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSAtLTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVwcGVyYnVmZmVyLmluc2VydCgwLCAnXHUwMTMwJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cHBlcmJ1ZmZlci5pbnNlcnQoMCwgJ0knKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY29uZGl0aW9uLmNvbXBhcmVUb0lnbm9yZUNhc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmluYWxfU2lnbWEiKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyYnVmZmVyLmluc2VydCgwLCAnYycpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2VyYnVmZmVyLmluc2VydCgwLCAnYycpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwcGVyYnVmZmVyLmluc2VydCgwLCAnQycpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNvbmRpdGlvbi5jb21wYXJlVG9JZ25vcmVDYXNlKCJBZnRlcl9JIikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmJ1ZmZlci5pbnNlcnQoMCwgJ0knKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlcmJ1ZmZlci5pbnNlcnQoMCwgJ2knKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbGFuZyA9ICIiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nID0gbG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYW5nLmVxdWFscygidHIiKSB8fCBsYW5nLmVxdWFscygiYXoiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cHBlcmJ1ZmZlci5pbnNlcnQoMCwgJ0knKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2hzdHJbMF0gPSBzdHJidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBjaHN0clsxXSA9IGxvd2VyYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgY2hzdHJbM10gPSB1cHBlcmJ1ZmZlci50b1N0cmluZygpOworICAgICAgICAgICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2hzdHJbMF0pLmVxdWFscyhjaHN0clsxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKHMpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IHRvTG93ZXJDYXNlIGZvciBjaGFyYWN0ZXIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShjaHN0clswXSkgKyAiLCBleHBlY3RlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuZXNjYXBlKGNoc3RyWzFdKSArICIgYnV0IHJlc3VsdGVkIGluICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjaHN0clswXSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIudG9VcHBlckNhc2UoY2hzdHJbMF0pLmVxdWFscyhjaHN0clszXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKHMpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IHRvVXBwZXJDYXNlIGZvciBjaGFyYWN0ZXIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShjaHN0clswXSkgKyAiLCBleHBlY3RlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuZXNjYXBlKGNoc3RyWzNdKSArICIgYnV0IHJlc3VsdGVkIGluICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShjaHN0clswXSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGxvY2FsZSwgY2hzdHJbMF0pLmVxdWFscygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHN0clsxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKHMpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IHRvTG93ZXJDYXNlIGZvciBjaGFyYWN0ZXIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShjaHN0clswXSkgKyAiLCBleHBlY3RlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuZXNjYXBlKGNoc3RyWzFdKSArICIgYnV0IHJlc3VsdGVkIGluICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoc3RyWzBdKSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShsb2NhbGUsIGNoc3RyWzBdKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hzdHJbM10pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbihzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiB0b1VwcGVyQ2FzZSBmb3IgY2hhcmFjdGVyICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoY2hzdHJbMF0pICsgIiwgZXhwZWN0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmVzY2FwZShjaHN0clszXSkgKyAiIGJ1dCByZXN1bHRlZCBpbiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UobG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHN0clswXSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlucHV0LmNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RVcHBlckxvd2VyKCkKKyAgICB7CisgICAgICAgIGludCB1cHBlcltdID0gezB4MDA0MSwgMHgwMDQyLCAweDAwYjIsIDB4MDFjNCwgMHgwMWM2LCAweDAxYzksIDB4MDFjOCwKKyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDFjOSwgMHgwMDBjfTsKKyAgICAgICAgaW50IGxvd2VyW10gPSB7MHgwMDYxLCAweDAwNjIsIDB4MDBiMiwgMHgwMWM2LCAweDAxYzYsIDB4MDFjOSwgMHgwMWM5LAorICAgICAgICAgICAgICAgICAgICAgICAgMHgwMWM5LCAweDAwMGN9OworICAgICAgICBTdHJpbmcgdXBwZXJUZXN0ID0gImFiY2RlZmcxMjNoaWouPzprbG1ubyI7CisgICAgICAgIFN0cmluZyBsb3dlclRlc3QgPSAiQUJDREVGRzEyM0hJSi4/OktMTU5PIjsKKworICAgICAgICAvLyBDaGVja3MgTGV0dGVyTGlrZSBTeW1ib2xzIHdoaWNoIHdlcmUgcHJldmlvdXNseSBhIHNvdXJjZSBvZgorICAgICAgICAvLyBjb25mdXNpb24gW0JlcnRyYW5kIEEuIEQuIDAyLzA0Lzk4XQorICAgICAgICBmb3IgKGludCBpID0gMHgyMTAwOyBpIDwgMHgyMTM4OyBpICsrKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAweDIxMjYgJiYgaSAhPSAweDIxMmEgJiYgaSAhPSAweDIxMmIpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGkpKSB7IC8vIGl0c2VsZgorICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkIGNhc2UgY29udmVyc2lvbiB3aXRoIGl0c2VsZjogXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgoaSwgNCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaSAhPSBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGkpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgY2FzZSBjb252ZXJzaW9uIHdpdGggaXRzZWxmOiBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChpLCA0KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdXBwZXIubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZSh1cHBlcltpXSkgIT0gbG93ZXJbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTEVEIFVDaGFyYWN0ZXIudG9sb3dlcigpIGZvciBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHVwcGVyW2ldLCA0KQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIEV4cGVjdGVkIFxcdSIgKyBVdGlsaXR5LmhleChsb3dlcltpXSwgNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBHb3QgXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKHVwcGVyW2ldKSwgNCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIHVwcGVyIGxvd2VyIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdXBwZXJUZXN0Lmxlbmd0aCgpOyBpICsrKSB7CisgICAgICAgICAgICBsb2dsbigidGVzdGluZyB0byB1cHBlciB0byBsb3dlciIpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNMZXR0ZXIodXBwZXJUZXN0LmNoYXJBdChpKSkgJiYKKyAgICAgICAgICAgICAgICAhVUNoYXJhY3Rlci5pc0xvd2VyQ2FzZSh1cHBlclRlc3QuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgaXNMb3dlckNhc2UgdGVzdCBhdCBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHVwcGVyVGVzdC5jaGFyQXQoaSksIDQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKFVDaGFyYWN0ZXIuaXNMZXR0ZXIobG93ZXJUZXN0LmNoYXJBdChpKSkKKyAgICAgICAgICAgICAgICAgICAgICYmICFVQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKGxvd2VyVGVzdC5jaGFyQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCBpc1VwcGVyQ2FzZSB0ZXN0IGF0IFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KGxvd2VyVGVzdC5jaGFyQXQoaSksIDQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHVwcGVyVGVzdC5jaGFyQXQoaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGxvd2VyVGVzdC5jaGFyQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCBjYXNlIGNvbnZlcnNpb24gZnJvbSBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KGxvd2VyVGVzdC5jaGFyQXQoaSksIDQpICsgIiBUbyBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHVwcGVyVGVzdC5jaGFyQXQoaSksIDQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGxvd2VyVGVzdC5jaGFyQXQoaSkKKyAgICAgICAgICAgICAgICAgICAgIT0gVUNoYXJhY3Rlci50b1VwcGVyQ2FzZSh1cHBlclRlc3QuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgY2FzZSBjb252ZXJzaW9uIDogXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleCh1cHBlclRlc3QuY2hhckF0KGkpLCA0KSArICIgVG8gXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChsb3dlclRlc3QuY2hhckF0KGkpLCA0KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICh1cHBlclRlc3QuY2hhckF0KGkpCisgICAgICAgICAgICAgICAgICAgICE9IFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UodXBwZXJUZXN0LmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkIGNhc2UgY29udmVyc2lvbiB3aXRoIGl0c2VsZjogXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleCh1cHBlclRlc3QuY2hhckF0KGkpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChsb3dlclRlc3QuY2hhckF0KGkpCisgICAgICAgICAgICAgICAgICAgICE9IFVDaGFyYWN0ZXIudG9VcHBlckNhc2UobG93ZXJUZXN0LmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkIGNhc2UgY29udmVyc2lvbiB3aXRoIGl0c2VsZjogXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChsb3dlclRlc3QuY2hhckF0KGkpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oImRvbmUgdGVzdGluZyB1cHBlciBMb3dlciIpOworICAgIH0KKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0gdGVzdCBkYXRhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgVFVSS0lTSF9MT0NBTEVfID0gbmV3IExvY2FsZSgidHIiLCAiVFIiKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgR0VSTUFOX0xPQ0FMRV8gPSBuZXcgTG9jYWxlKCJkZSIsICJERSIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBHUkVFS19MT0NBTEVfID0gbmV3IExvY2FsZSgiZWwiLCAiR1IiKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgRU5HTElTSF9MT0NBTEVfID0gbmV3IExvY2FsZSgiZW4iLCAiVVMiKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgTElUSFVBTklBTl9MT0NBTEVfID0gbmV3IExvY2FsZSgibHQiLCAiTFQiKTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSEFSQUNURVJfVVBQRVJfW10gPQorICAgICAgICAgICAgICAgICAgICAgIHsweDQxLCAweDAwNDIsIDB4MDA0MywgMHgwMDQ0LCAweDAwNDUsIDB4MDA0NiwgMHgwMDQ3LAorICAgICAgICAgICAgICAgICAgICAgICAweDAwYjEsIDB4MDBiMiwgMHhiMywgMHgwMDQ4LCAweDAwNDksIDB4MDA0YSwgMHgwMDJlLAorICAgICAgICAgICAgICAgICAgICAgICAweDAwM2YsIDB4MDAzYSwgMHgwMDRiLCAweDAwNGMsIDB4NGQsIDB4MDA0ZSwgMHgwMDRmLAorICAgICAgICAgICAgICAgICAgICAgICAweDAxYzQsIDB4MDFjOCwgMHgwMDBjLCAweDAwMDB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSEFSQUNURVJfTE9XRVJfW10gPQorICAgICAgICAgICAgICAgICAgICAgIHsweDYxLCAweDAwNjIsIDB4MDA2MywgMHgwMDY0LCAweDAwNjUsIDB4MDA2NiwgMHgwMDY3LAorICAgICAgICAgICAgICAgICAgICAgICAweDAwYjEsIDB4MDBiMiwgMHhiMywgMHgwMDY4LCAweDAwNjksIDB4MDA2YSwgMHgwMDJlLAorICAgICAgICAgICAgICAgICAgICAgICAweDAwM2YsIDB4MDAzYSwgMHgwMDZiLCAweDAwNmMsIDB4NmQsIDB4MDA2ZSwgMHgwMDZmLAorICAgICAgICAgICAgICAgICAgICAgICAweDAxYzYsIDB4MDFjOSwgMHgwMDBjLCAweDAwMDB9OworCisgICAgLyoKKyAgICAgKiBDYXNlRm9sZGluZy50eHQgc2F5cyBhYm91dCBpIGFuZCBpdHMgY291c2luczoKKyAgICAgKiAgIDAwNDk7IEM7IDAwNjk7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorICAgICAqICAgMDA0OTsgVDsgMDEzMTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCisgICAgICoKKyAgICAgKiAgIDAxMzA7IEY7IDAwNjkgMDMwNzsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFCisgICAgICogICAwMTMwOyBUOyAwMDY5OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKKyAgICAgKiBUaGF0J3MgYWxsLgorICAgICAqIFNlZSBDYXNlRm9sZGluZy50eHQgYW5kIHRoZSBVbmljb2RlIFN0YW5kYXJkIGZvciBob3cgdG8gYXBwbHkgdGhlIGNhc2UgZm9sZGluZ3MuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZPTERJTkdfU0lNUExFX1tdID0geworICAgICAgICAvLyBpbnB1dCwgZGVmYXVsdCwgZXhjbHVkZSBzcGVjaWFsIGkKKyAgICAgICAgMHg2MSwgICAweDYxLCAgMHg2MSwKKyAgICAgICAgMHg0OSwgICAweDY5LCAgMHgxMzEsCisgICAgICAgIDB4MTMwLCAgMHgxMzAsIDB4NjksCisgICAgICAgIDB4MTMxLCAgMHgxMzEsIDB4MTMxLAorICAgICAgICAweGRmLCAgIDB4ZGYsICAweGRmLAorICAgICAgICAweGZiMDMsIDB4ZmIwMywgMHhmYjAzLAorICAgICAgICAweDEwNDBlLDB4MTA0MzYsMHgxMDQzNiwKKyAgICAgICAgMHg1ZmZmZiwweDVmZmZmLDB4NWZmZmYKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGT0xESU5HX01JWEVEX1tdID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyJcdTAwNjFcdTAwNDJcdTAxMzBcdTAwNDlcdTAxMzFcdTAzZDBcdTAwZGZcdWZiMDNcdWQ5M2ZcdWRmZmYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFcdTAwZGZcdTAwYjVcdWZiMDNcdUQ4MDFcdURDMENcdTAxMzBcdTAxMzEifTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRk9MRElOR19ERUZBVUxUX1tdID0KKyAgICAgICAgIHsiXHUwMDYxXHUwMDYyXHUwMDY5XHUwMzA3XHUwMDY5XHUwMTMxXHUwM2IyXHUwMDczXHUwMDczXHUwMDY2XHUwMDY2XHUwMDY5XHVkOTNmXHVkZmZmIiwKKyAgICAgICAgICAiYXNzXHUwM2JjZmZpXHVEODAxXHVEQzM0aVx1MDMwN1x1MDEzMSJ9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGT0xESU5HX0VYQ0xVREVfU1BFQ0lBTF9JX1tdID0KKyAgICAgICAgIHsiXHUwMDYxXHUwMDYyXHUwMDY5XHUwMTMxXHUwMTMxXHUwM2IyXHUwMDczXHUwMDczXHUwMDY2XHUwMDY2XHUwMDY5XHVkOTNmXHVkZmZmIiwKKyAgICAgICAgICAiYXNzXHUwM2JjZmZpXHVEODAxXHVEQzM0aVx1MDEzMSJ9OworICAgIC8qKgorICAgICAqICJJRVNVUyBDSFJJU1RPUyIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX1VQUEVSQ0FTRV9HUkVFS18gPQorICAgICAgICAiXHUwMzk5XHUwMzk1XHUwM2EzXHUwM2E1XHUwM2EzXHUwMDIwXHUwM2E3XHUwM2ExXHUwMzk5XHUwM2EzXHUwM2E0XHUwMzlmXHUwM2EzIjsKKyAgICAvKioKKyAgICAgKiAiaWVzdXMgY2hyaXN0b3MiCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNIQVJFRF9MT1dFUkNBU0VfR1JFRUtfID0KKyAgICAgICAgIlx1MDNiOVx1MDNiNVx1MDNjM1x1MDNjNVx1MDNjMlx1MDAyMFx1MDNjN1x1MDNjMVx1MDNiOVx1MDNjM1x1MDNjNFx1MDNiZlx1MDNjMiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNIQVJFRF9MT1dFUkNBU0VfVFVSS0lTSF8gPQorICAgICAgICAiXHUwMDY5XHUwMDczXHUwMDc0XHUwMDYxXHUwMDZlXHUwMDYyXHUwMDc1XHUwMDZjXHUwMDJjXHUwMDIwXHUwMDZlXHUwMDZmXHUwMDc0XHUwMDIwXHUwMDYzXHUwMDZmXHUwMDZlXHUwMDczXHUwMDc0XHUwMDYxXHUwMDZlXHUwMDc0XHUwMTMxXHUwMDZlXHUwMDZmXHUwMDcwXHUwMDZjXHUwMDY1XHUwMDIxIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0hBUkVEX1VQUEVSQ0FTRV9UVVJLSVNIXyA9CisgICAgICAgICJcdTAwNTRcdTAwNGZcdTAwNTBcdTAwNGJcdTAwNDFcdTAwNTBcdTAwNDlcdTAwMjBcdTAwNTBcdTAwNDFcdTAwNGNcdTAwNDFcdTAwNDNcdTAwNDVcdTAwMmNcdTAwMjBcdTAxMzBcdTAwNTNcdTAwNTRcdTAwNDFcdTAwNGVcdTAwNDJcdTAwNTVcdTAwNGMiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTSEFSRURfVVBQRVJDQVNFX0lTVEFOQlVMXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMTMwU1RBTkJVTCwgTk9UIENPTlNUQU5USU5PUExFISI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNIQVJFRF9MT1dFUkNBU0VfSVNUQU5CVUxfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpXHUwMzA3c3RhbmJ1bCwgbm90IGNvbnN0YW50aW5vcGxlISI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNIQVJFRF9MT1dFUkNBU0VfVE9QS0FQXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG9wa2FwXHUwMTMxIHBhbGFjZSwgaXN0YW5idWwiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTSEFSRURfVVBQRVJDQVNFX1RPUEtBUF8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRPUEtBUEkgUEFMQUNFLCBJU1RBTkJVTCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNIQVJFRF9MT1dFUkNBU0VfR0VSTUFOXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1x1MDBGQ1x1MDBERm1heXJzdHJhXHUwMERGZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNIQVJFRF9VUFBFUkNBU0VfR0VSTUFOXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1x1MDBEQ1NTTUFZUlNUUkFTU0UiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFVQUEVSX0JFRk9SRV8gPQorICAgICAgICAgIlx1MDA2MVx1MDA0Mlx1MDA2OVx1MDNjMlx1MDBkZlx1MDNjM1x1MDAyZlx1ZmIwM1x1ZmIwM1x1ZmIwM1x1ZDkzZlx1ZGZmZiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFVQUEVSX1JPT1RfID0KKyAgICAgICAgICJcdTAwNDFcdTAwNDJcdTAwNDlcdTAzYTNcdTAwNTNcdTAwNTNcdTAzYTNcdTAwMmZcdTAwNDZcdTAwNDZcdTAwNDlcdTAwNDZcdTAwNDZcdTAwNDlcdTAwNDZcdTAwNDZcdTAwNDlcdWQ5M2ZcdWRmZmYiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVUFBFUl9UVVJLSVNIXyA9CisgICAgICAgICAiXHUwMDQxXHUwMDQyXHUwMTMwXHUwM2EzXHUwMDUzXHUwMDUzXHUwM2EzXHUwMDJmXHUwMDQ2XHUwMDQ2XHUwMDQ5XHUwMDQ2XHUwMDQ2XHUwMDQ5XHUwMDQ2XHUwMDQ2XHUwMDQ5XHVkOTNmXHVkZmZmIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVBQRVJfTUlOSV8gPSAiXHUwMGRmXHUwMDYxIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVBQRVJfTUlOSV9VUFBFUl8gPSAiXHUwMDUzXHUwMDUzXHUwMDQxIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBMT1dFUl9CRUZPUkVfID0KKyAgICAgICAgICAgICAgICAgICAgICAiXHUwMDYxXHUwMDQyXHUwMDQ5XHUwM2EzXHUwMGRmXHUwM2EzXHUwMDJmXHVkOTNmXHVkZmZmIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9XRVJfUk9PVF8gPQorICAgICAgICAgICAgICAgICAgICAgICJcdTAwNjFcdTAwNjJcdTAwNjlcdTAzYzNcdTAwZGZcdTAzYzJcdTAwMmZcdWQ5M2ZcdWRmZmYiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBMT1dFUl9UVVJLSVNIXyA9IAorICAgICAgICAgICAgICAgICAgICAgICJcdTAwNjFcdTAwNjJcdTAxMzFcdTAzYzNcdTAwZGZcdTAzYzJcdTAwMmZcdWQ5M2ZcdWRmZmYiOworCisgICAgLyoqCisgICAgICogZWFjaCBpdGVtIGlzIGFuIGFycmF5IHdpdGggaW5wdXQgc3RyaW5nLCByZXN1bHQgc3RyaW5nLCBsb2NhbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVElUTEVfREFUQV9bXSA9IHsKKyAgICAgICAgIlx1MDA2MVx1MDA0Mlx1MDAyMFx1MDA2OVx1MDNjMlx1MDAyMFx1MDBkZlx1MDNjM1x1MDAyZlx1ZmIwM1x1ZDkzZlx1ZGZmZiIsCisgICAgICAgICJcdTAwNDFcdTAwNDJcdTAwMjBcdTAwNDlcdTAzYTNcdTAwMjBcdTAwNTNcdTAwNzNcdTAzYTNcdTAwMmZcdTAwNDZcdTAwNjZcdTAwNjlcdWQ5M2ZcdWRmZmYiLAorICAgICAgICAKKyAgICAgICAgIlx1MDA2MVx1MDA0Mlx1MDAyMFx1MDA2OVx1MDNjMlx1MDAyMFx1MDBkZlx1MDNjM1x1MDAyZlx1ZmIwM1x1ZDkzZlx1ZGZmZiIsCisgICAgICAgICJcdTAwNDFcdTAwNjJcdTAwMjBcdTAwNDlcdTAzYzJcdTAwMjBcdTAwNTNcdTAwNzNcdTAzYzNcdTAwMmZcdTAwNDZcdTAwNjZcdTAwNjlcdWQ5M2ZcdWRmZmYiLAorICAgICAgICAKKyAgICAgICAgIiB0SGUgUVVJY0sgYlJvV24iLCAiIFRoZSBRdWljayBCcm93biIsCisgICAgICAgIAorICAgICAgICAiXHUwMWM0XHUwMWM1XHUwMWM2XHUwMWM3XHUwMWM4XHUwMWM5XHUwMWNhXHUwMWNiXHUwMWNjIiwgCisgICAgICAgICJcdTAxYzVcdTAxYzVcdTAxYzVcdTAxYzhcdTAxYzhcdTAxYzhcdTAxY2JcdTAxY2JcdTAxY2IiLCAvLyBVQlJLX0NIQVJBQ1RFUgorICAgICAgICAKKyAgICAgICAgIlx1MDFjOXViYXYgbGp1YmF2IiwgIlx1MDFjOHViYXYgTGp1YmF2IiwgLy8gTGogdnMuIEwragorICAgICAgICAKKyAgICAgICAgIidvSCBkT24nVCB0SXRMZUNhU2UgQWZUZVIgbEV0VGVSKyciLCAgIidPaCBEb24ndCBUaXRsZWNhc2UgQWZ0ZXIgTGV0dGVyKyciCisKKyAgICB9OworCisKKyAgICAvKioKKyAgICAgKiA8cD5iYXNpYyBzdHJpbmcsIGxvd2VyIHN0cmluZywgdXBwZXIgc3RyaW5nLCB0aXRsZSBzdHJpbmc8L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfREFUQV9bXSA9IHsKKyAgICAgICAgVVRGMTYudmFsdWVPZigweDEwNDNDKSArIFVURjE2LnZhbHVlT2YoMHgxMDQxNCksCisgICAgICAgIFVURjE2LnZhbHVlT2YoMHgxMDQzQykgKyBVVEYxNi52YWx1ZU9mKDB4MTA0M0MpLAorICAgICAgICBVVEYxNi52YWx1ZU9mKDB4MTA0MTQpICsgVVRGMTYudmFsdWVPZigweDEwNDE0KSwKKyAgICAgICAgImFiJ2NEIFx1RkIwMGlcdTAxMzFJXHUwMTMwIFx1MDFDN1x1MDFDOFx1MDFDOSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi52YWx1ZU9mKDB4MTA0M0MpICsgVVRGMTYudmFsdWVPZigweDEwNDE0KSwKKyAgICAgICAgImFiJ2NkIFx1RkIwMGlcdTAxMzFpaVx1MDMwNyBcdTAxQzlcdTAxQzlcdTAxQzkgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi52YWx1ZU9mKDB4MTA0M0MpICsgVVRGMTYudmFsdWVPZigweDEwNDNDKSwKKyAgICAgICAgIkFCJ0NEIEZGSUlJXHUwMTMwIFx1MDFDN1x1MDFDN1x1MDFDNyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LnZhbHVlT2YoMHgxMDQxNCkgKyBVVEYxNi52YWx1ZU9mKDB4MTA0MTQpLAorICAgICAgICAvLyBzaWdtYXMgZm9sbG93ZWQvcHJlY2VkZWQgYnkgY2FzZWQgbGV0dGVycworICAgICAgICAiaVx1MDMwN1x1MDNhM1x1MDMwOGogXHUwMzA3XHUwM2EzXHUwMzA4aiBpXHUwMGFkXHUwM2EzXHUwMzA4IFx1MDMwN1x1MDNhM1x1MDMwOCAiLAorICAgICAgICAiaVx1MDMwN1x1MDNjM1x1MDMwOGogXHUwMzA3XHUwM2MzXHUwMzA4aiBpXHUwMGFkXHUwM2MyXHUwMzA4IFx1MDMwN1x1MDNjM1x1MDMwOCAiLAorICAgICAgICAiSVx1MDMwN1x1MDNhM1x1MDMwOEogXHUwMzA3XHUwM2EzXHUwMzA4SiBJXHUwMGFkXHUwM2EzXHUwMzA4IFx1MDMwN1x1MDNhM1x1MDMwOCAiCisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgU1BFQ0lBTF9MT0NBTEVTX1tdID0geworICAgICAgICBudWxsLAorICAgICAgICBFTkdMSVNIX0xPQ0FMRV8sCisgICAgICAgIG51bGwsCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVFRFRF8gPQorICAgICAgICAgICAgIkkgXHUwMTMwIElcdTAzMDcgSVx1MDMyN1x1MDMwNyBJXHUwMzAxXHUwMzA3IElcdTAzMjdcdTAzMDdcdTAzMDEiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVFRFRF9MT1dFUl9UVVJLSVNIXyA9CisgICAgICAgICAgICAiXHUwMTMxIGkgaSBpXHUwMzI3IFx1MDEzMVx1MDMwMVx1MDMwNyBpXHUwMzI3XHUwMzAxIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1BFQ0lBTF9ET1RURURfTE9XRVJfR0VSTUFOXyA9CisgICAgICAgICAgICAiaSBpXHUwMzA3IGlcdTAzMDcgaVx1MDMyN1x1MDMwNyBpXHUwMzAxXHUwMzA3IGlcdTAzMjdcdTAzMDdcdTAzMDEiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVF9BQk9WRV8gPQorICAgICAgICAgICAgImFcdTAzMDcgXHUwMzA3IGlcdTAzMDcgalx1MDMyN1x1MDMwNyBqXHUwMzAxXHUwMzA3IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfTElUSFVBTklBTl8gPQorICAgICAgICAgICAgIkFcdTAzMDcgXHUwMzA3IEkgSlx1MDMyNyBKXHUwMzAxXHUwMzA3IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1BFQ0lBTF9ET1RfQUJPVkVfVVBQRVJfR0VSTUFOXyA9CisgICAgICAgICAgICAiQVx1MDMwNyBcdTAzMDcgSVx1MDMwNyBKXHUwMzI3XHUwMzA3IEpcdTAzMDFcdTAzMDciOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVF9BQk9WRV9VUFBFUl8gPQorICAgICAgICAgICAgIkkgSVx1MDMwMSBKIEpcdTAzMDEgXHUwMTJlIFx1MDEyZVx1MDMwMSBcdTAwY2NcdTAwY2RcdTAxMjgiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEVDSUFMX0RPVF9BQk9WRV9MT1dFUl9MSVRIVUFOSUFOXyA9CisgICAgICAgICAgICAiaSBpXHUwMzA3XHUwMzAxIGogalx1MDMwN1x1MDMwMSBcdTAxMmYgXHUwMTJmXHUwMzA3XHUwMzAxIGlcdTAzMDdcdTAzMDBpXHUwMzA3XHUwMzAxaVx1MDMwN1x1MDMwMyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNQRUNJQUxfRE9UX0FCT1ZFX0xPV0VSX0dFUk1BTl8gPQorICAgICAgICAgICAgImkgaVx1MDMwMSBqIGpcdTAzMDEgXHUwMTJmIFx1MDEyZlx1MDMwMSBcdTAwZWNcdTAwZWRcdTAxMjkiOworCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnZlcnRpbmcgdGhlIGhleCBudW1iZXJzIHJlcHJlc2VudGVkIGJldHdlZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiAnOycgdG8gVW5pY29kZSBzdHJpbmdzCisgICAgICogQHBhcmFtIHN0ciBzdHJpbmcgdG8gYnJlYWsgdXAgaW50byBVbmljb2RlIHN0cmluZ3MKKyAgICAgKiBAcmV0dXJuIGFycmF5IG9mIFVuaWNvZGUgc3RyaW5ncyBlbmRpbmcgd2l0aCBhIG51bGwKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ1tdIGdldFVuaWNvZGVTdHJpbmdzKFN0cmluZyBzdHIpCisgICAgeworICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoMTApOworICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICBmb3IgKGludCBjYXNlY291bnQgPSA0OyBjYXNlY291bnQgPiAwOyBjYXNlY291bnQgLS0pIHsKKyAgICAgICAgICAgIGludCBlbmQgPSBzdHIuaW5kZXhPZigiOyAiLCBzdGFydCk7CisgICAgICAgICAgICBTdHJpbmcgY2FzZXN0ciA9IHN0ci5zdWJzdHJpbmcoc3RhcnQsIGVuZCk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgaW50IHNwYWNlb2Zmc2V0ID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChzcGFjZW9mZnNldCA8IGNhc2VzdHIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgbmV4dHNwYWNlID0gY2FzZXN0ci5pbmRleE9mKCcgJywgc3BhY2VvZmZzZXQpOworICAgICAgICAgICAgICAgIGlmIChuZXh0c3BhY2UgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dHNwYWNlID0gY2FzZXN0ci5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcilJbnRlZ2VyLnBhcnNlSW50KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VzdHIuc3Vic3RyaW5nKHNwYWNlb2Zmc2V0LCBuZXh0c3BhY2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYpKTsKKyAgICAgICAgICAgICAgICBzcGFjZW9mZnNldCA9IG5leHRzcGFjZSArIDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFydCA9IGVuZCArIDI7CisgICAgICAgICAgICB2LmFkZChidWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGNvbW1lbnRzID0gc3RyLmluZGV4T2YoIiAjIiwgc3RhcnQpOworICAgICAgICBpZiAoY29tbWVudHMgIT0gLTEgJiYgY29tbWVudHMgIT0gc3RhcnQpIHsKKyAgICAgICAgICAgIGlmIChzdHIuY2hhckF0KGNvbW1lbnRzIC0gMSkgPT0gJzsnKSB7CisgICAgICAgICAgICAgICAgY29tbWVudHMgLS07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgY29uZGl0aW9ucyA9IHN0ci5zdWJzdHJpbmcoc3RhcnQsIGNvbW1lbnRzKTsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSAwOworICAgICAgICAgICAgd2hpbGUgKG9mZnNldCA8IGNvbmRpdGlvbnMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgc3BhY2VvZmZzZXQgPSBjb25kaXRpb25zLmluZGV4T2YoJyAnLCBvZmZzZXQpOworICAgICAgICAgICAgICAgIGlmIChzcGFjZW9mZnNldCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBzcGFjZW9mZnNldCA9IGNvbmRpdGlvbnMubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHYuYWRkKGNvbmRpdGlvbnMuc3Vic3RyaW5nKG9mZnNldCwgc3BhY2VvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSBzcGFjZW9mZnNldCArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW50IHNpemUgPSB2LnNpemUoKTsKKyAgICAgICAgU3RyaW5nIHJlc3VsdFtdID0gbmV3IFN0cmluZ1tzaXplXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICAgICAgICByZXN1bHRbaV0gPSAoU3RyaW5nKXYuZWxlbWVudEF0KGkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQorCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDYXRlZ29yeVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDYXRlZ29yeVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZWQxYzc2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNhdGVnb3J5VGVzdC5qYXZhCkBAIC0wLDAgKzEsODYgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJDYXRlZ29yeTsKKworLyoqCisqIFRlc3RpbmcgVUNoYXJhY3RlckNhdGVnb3J5CisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSBBcHJpbCAwMiAyMDAyCisqLworcHVibGljIGNsYXNzIFVDaGFyYWN0ZXJDYXRlZ29yeVRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworICAgIC8vIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiBQcml2YXRlIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgaW5pdGlhbGlzYXRpb24KKyAgICAqLworICAgIHB1YmxpYyBVQ2hhcmFjdGVyQ2F0ZWdvcnlUZXN0KCkKKyAgICB7CisgICAgfQorICAgIAorICAgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZykgIAorICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgICAgVUNoYXJhY3RlckNhdGVnb3J5VGVzdCB0ZXN0ID0gbmV3IFVDaGFyYWN0ZXJDYXRlZ29yeVRlc3QoKTsKKyAgICAgICAgICAgICAgdGVzdC5ydW4oYXJnKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGFyZ3VtZW50IGNhdGVnb3J5CisgICAgKiBAcmV0dXJuIGNhdGVnb3J5IG5hbWUKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUb1N0cmluZygpCisgICAgeworICAgICAgICAgIFN0cmluZyBuYW1lW10gPSB7IlVuYXNzaWduZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxldHRlciwgVXBwZXJjYXNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXR0ZXIsIExvd2VyY2FzZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGV0dGVyLCBUaXRsZWNhc2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxldHRlciwgTW9kaWZpZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxldHRlciwgT3RoZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1hcmssIE5vbi1TcGFjaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYXJrLCBFbmNsb3NpbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1hcmssIFNwYWNpbmcgQ29tYmluaW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJOdW1iZXIsIERlY2ltYWwgRGlnaXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk51bWJlciwgTGV0dGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJOdW1iZXIsIE90aGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXBhcmF0b3IsIFNwYWNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXBhcmF0b3IsIExpbmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNlcGFyYXRvciwgUGFyYWdyYXBoIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciwgQ29udHJvbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIsIEZvcm1hdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIsIFByaXZhdGUgVXNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciwgU3Vycm9nYXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJQdW5jdHVhdGlvbiwgRGFzaCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHVuY3R1YXRpb24sIE9wZW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlB1bmN0dWF0aW9uLCBDbG9zZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHVuY3R1YXRpb24sIENvbm5lY3RvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHVuY3R1YXRpb24sIE90aGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJTeW1ib2wsIE1hdGgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN5bWJvbCwgQ3VycmVuY3kiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN5bWJvbCwgTW9kaWZpZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN5bWJvbCwgT3RoZXIiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJQdW5jdHVhdGlvbiwgSW5pdGlhbCBxdW90ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHVuY3R1YXRpb24sIEZpbmFsIHF1b3RlIn07CisgICAgICAgIGZvciAoaW50IGkgPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRDsgCisgICAgICAgICAgICAgICAgIGkgPCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ0hBUl9DQVRFR09SWV9DT1VOVDsgaSArKykgeworICAgICAgICAgICAgIGlmICghVUNoYXJhY3RlckNhdGVnb3J5LnRvU3RyaW5nKGkpLmVxdWFscyhuYW1lW2ldKSkgeworICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgdG9TdHJpbmcgZm9yIGNhdGVnb3J5ICIgKyBpICsgIiBleHBlY3RlZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgbmFtZVtpXSk7CisgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckNvbXBhcmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDb21wYXJlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTFmODFiZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDb21wYXJlLmphdmEKQEAgLTAsMCArMSwzMDkgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckNhdGVnb3J5OworaW1wb3J0IGphdmEuaW8uRmlsZVdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworCisvKioKKyogQSBjbGFzcyB0byBjb21wYXJlIHRoZSBkaWZmZXJlbmNlIGluIG1ldGhvZHMgYmV0d2VlbiBqYXZhLmxhbmcuQ2hhcmFjdGVyIGFuZAorKiBVQ2hhcmFjdGVyCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSBvY3QgMDYgMjAwMAorKiBAc2VlIGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcgorKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJDb21wYXJlCit7IAorICAvLyBwcml2YXRlIHZhcmlhYmxlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZSBtX2hhc2h0YWJsZV8gPSBuZXcgSGFzaHRhYmxlKCk7CisgIAorICAvLyBwdWJsaWMgbWV0aG9kcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgIC8qKgorICAqIE1haW4gdGVzdGluZyBtZXRob2QKKyAgKi8KKyAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ1tdKQorICB7CisgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0YXJ0aW5nIGNoYXJhY3RlciBjb21wYXJlIik7CisgICAgdHJ5CisgICAgeworICAgICAgRmlsZVdyaXRlciBmOworICAgICAgaWYgKGFyZy5sZW5ndGggPT0gMCkKKyAgICAgICAgZiA9IG5ldyBGaWxlV3JpdGVyKCJjb21wYXJlLnR4dCIpOworICAgICAgZWxzZQorICAgICAgICBmID0gbmV3IEZpbGVXcml0ZXIoYXJnWzBdKTsKKyAgICAgIFByaW50V3JpdGVyIHAgPSBuZXcgUHJpbnRXcml0ZXIoZik7CisgICAgICBwLnByaW50KCJjaGFyICBjaGFyYWN0ZXIgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIik7CisgICAgICBwLnByaW50bG4oIm1ldGhvZCBuYW1lICAgICAgICAgICAgICAgdWNoYXJhY3RlciBjaGFyYWN0ZXIiKTsKKyAgICAgIGZvciAoY2hhciBpID0gQ2hhcmFjdGVyLk1JTl9WQUxVRTsgaSA8IENoYXJhY3Rlci5NQVhfVkFMVUU7IGkgKyspCisgICAgICB7CisgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjaGFyYWN0ZXIgXFx1IiArIEludGVnZXIudG9IZXhTdHJpbmcoaSkpOworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RlZmluZWQoaSkgIT0gQ2hhcmFjdGVyLmlzRGVmaW5lZChpKSkKKyAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzRGVmaW5lZCgpIiwgIiIgKyBVQ2hhcmFjdGVyLmlzRGVmaW5lZChpKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzRGVmaW5lZChpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmRpZ2l0KGksIDEwKSAhPSBDaGFyYWN0ZXIuZGlnaXQoaSwgMTApKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJkaWdpdCgpIiwgIiIgKyBVQ2hhcmFjdGVyLmRpZ2l0KGksIDEwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIENoYXJhY3Rlci5kaWdpdChpLCAxMCkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShpKSAhPSBDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJnZXROdW1lcmljVmFsdWUoKSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGkpKTsKKyAgICAgICAgICBpZiAoIWNvbXBhcmVUeXBlKFVDaGFyYWN0ZXIuZ2V0VHlwZShpKSwgQ2hhcmFjdGVyLmdldFR5cGUoaSkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJnZXRUeXBlKCkiLCAiIiArIFVDaGFyYWN0ZXIuZ2V0VHlwZShpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIENoYXJhY3Rlci5nZXRUeXBlKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RpZ2l0KGkpICE9IENoYXJhY3Rlci5pc0RpZ2l0KGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc0RpZ2l0KCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5pc0RpZ2l0KGkpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIENoYXJhY3Rlci5pc0RpZ2l0KGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0lTT0NvbnRyb2woaSkgIT0gQ2hhcmFjdGVyLmlzSVNPQ29udHJvbChpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNJU09Db250cm9sKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNJU09Db250cm9sKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzSVNPQ29udHJvbChpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNMZXR0ZXIoaSkgIT0gQ2hhcmFjdGVyLmlzTGV0dGVyKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc0xldHRlcigpIiwgIiIgKyBVQ2hhcmFjdGVyLmlzTGV0dGVyKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzTGV0dGVyKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xldHRlck9yRGlnaXQoaSkgIT0gQ2hhcmFjdGVyLmlzTGV0dGVyT3JEaWdpdChpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNMZXR0ZXJPckRpZ2l0KCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNMZXR0ZXJPckRpZ2l0KGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzTGV0dGVyT3JEaWdpdChpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNMb3dlckNhc2UoaSkgIT0gQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc0xvd2VyQ2FzZSgpIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBVQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoaSkgIT0gQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNXaGl0ZXNwYWNlKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTcGFjZUNoYXIoaSkgIT0gQ2hhcmFjdGVyLmlzU3BhY2VDaGFyKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc1NwYWNlQ2hhcigpIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBVQ2hhcmFjdGVyLmlzU3BhY2VDaGFyKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzU3BhY2VDaGFyKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1RpdGxlQ2FzZShpKSAhPSBDaGFyYWN0ZXIuaXNUaXRsZUNhc2UoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzVGl0bGVDaGFyKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNUaXRsZUNhc2UoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNUaXRsZUNhc2UoaSkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KGkpICE9IAorICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoaSkpOworICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChpKSAhPSAKKyAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChpKSkKKyAgICAgICAgICAgIHRyYWNrRGlmZmVyZW5jZShwLCBpLCAiaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoaSkgIT0gCisgICAgICAgICAgICAgIENoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgImlzSWRlbnRpZmllcklnbm9yYWJsZSgpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiArIFVDaGFyYWN0ZXIuaXNJZGVudGlmaWVySWdub3JhYmxlKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzSWRlbnRpZmllcklnbm9yYWJsZShpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVcHBlckNhc2UoaSkgIT0gQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJpc1VwcGVyQ2FzZSgpIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIgKyBVQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiICsgQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKGkpKTsKKyAgICAgICAgICBpZiAoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShpKSAhPSBDaGFyYWN0ZXIudG9Mb3dlckNhc2UoaSkpCisgICAgICAgICAgICB0cmFja0RpZmZlcmVuY2UocCwgaSwgInRvTG93ZXJDYXNlKCkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoaSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGkpKSk7CisgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLnRvU3RyaW5nKGkpLmVxdWFscyhuZXcgQ2hhcmFjdGVyKGkpLnRvU3RyaW5nKCkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJ0b1N0cmluZygpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvU3RyaW5nKGkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDaGFyYWN0ZXIoaSkudG9TdHJpbmcoKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoaSkgIT0gQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJ0b1RpdGxlQ2FzZSgpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoaSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGkpKSk7CisgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoaSkgIT0gQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGkpKQorICAgICAgICAgICAgdHJhY2tEaWZmZXJlbmNlKHAsIGksICJ0b1VwcGVyQ2FzZSgpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoaSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGkpKSk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHN1bW1hcnkocCk7CisgICAgICBwLmNsb3NlKCk7CisgICAgfSAKKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgeworICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICB9CisgIH0KKyAgCisgIC8vIHByaXZhdGUgbWV0aG9kcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgIC8qKgorICAqIENvbXBhcmluZyB0eXBlcworICAqIEBwYXJhbSB1Y2hhcnR5cGUgVUNoYXJhY3RlciB0eXBlCisgICogQHBhcmFtIGpjaGFydHlwZSBqYXZhLmxhbmcuQ2hhcmFjdGVyIHR5cGUKKyAgKi8KKyAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBjb21wYXJlVHlwZShpbnQgdWNoYXJ0eXBlLCBpbnQgamNoYXJ0eXBlKQorICB7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5VTkFTU0lHTkVEKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5VUFBFUkNBU0VfTEVUVEVSKQorICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5MT1dFUkNBU0VfTEVUVEVSKQorICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5USVRMRUNBU0VfTEVUVEVSKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLk1PRElGSUVSX0xFVFRFUikKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5PVEhFUl9MRVRURVIpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5OT05fU1BBQ0lOR19NQVJLICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLk5PTl9TUEFDSU5HX01BUkspCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5FTkNMT1NJTkdfTUFSSyAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5FTkNMT1NJTkdfTUFSSykKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkNPTUJJTklOR19TUEFDSU5HX01BUksgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuQ09NQklOSU5HX1NQQUNJTkdfTUFSSykKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuREVDSU1BTF9ESUdJVF9OVU1CRVIgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuREVDSU1BTF9ESUdJVF9OVU1CRVIpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkxFVFRFUl9OVU1CRVIgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuTEVUVEVSX05VTUJFUikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTlVNQkVSICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLk9USEVSX05VTUJFUikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuU1BBQ0VfU0VQQVJBVE9SICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLlNQQUNFX1NFUEFSQVRPUikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTElORV9TRVBBUkFUT1IgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuTElORV9TRVBBUkFUT1IpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlBBUkFHUkFQSF9TRVBBUkFUT1IgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuUEFSQUdSQVBIX1NFUEFSQVRPUikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09OVFJPTCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5DT05UUk9MKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRk9STUFUICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLkZPUk1BVCkKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUFJJVkFURV9VU0UgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuUFJJVkFURV9VU0UpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5TVVJST0dBVEUgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuU1VSUk9HQVRFKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuREFTSF9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5EQVNIX1BVTkNUVUFUSU9OKQorICAgICAgcmV0dXJuIHRydWU7CisgICAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5TVEFSVF9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5TVEFSVF9QVU5DVFVBVElPTikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRU5EX1BVTkNUVUFUSU9OICYmIAorICAgICAgICBqY2hhcnR5cGUgPT0gQ2hhcmFjdGVyLkVORF9QVU5DVFVBVElPTikKKyAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkNPTk5FQ1RPUl9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5DT05ORUNUT1JfUFVOQ1RVQVRJT04pCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5PVEhFUl9QVU5DVFVBVElPTikKKyAgICAgIHJldHVybiB0cnVlOworICAgICAgaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTUFUSF9TWU1CT0wgJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuTUFUSF9TWU1CT0wpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkNVUlJFTkNZX1NZTUJPTCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5DVVJSRU5DWV9TWU1CT0wpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk1PRElGSUVSX1NZTUJPTCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5NT0RJRklFUl9TWU1CT0wpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX1NZTUJPTCAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5PVEhFUl9TWU1CT0wpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIGlmICh1Y2hhcnR5cGUgPT0gVUNoYXJhY3RlckNhdGVnb3J5LklOSVRJQUxfUFVOQ1RVQVRJT04gJiYgCisgICAgICAgIGpjaGFydHlwZSA9PSBDaGFyYWN0ZXIuU1RBUlRfUFVOQ1RVQVRJT04pCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodWNoYXJ0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5GSU5BTF9QVU5DVFVBVElPTiAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5FTkRfUFVOQ1RVQVRJT04pCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIC8qaWYgKHVjaGFydHlwZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuR0VORVJBTF9PVEhFUl9UWVBFUyAmJiAKKyAgICAgICAgamNoYXJ0eXBlID09IENoYXJhY3Rlci5HRU5FUkFMX09USEVSX1RZUEVTKQorICAgICAgcmV0dXJuIHRydWU7Ki8KKyAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogRGlmZmVyZW5jZSB3cml0aW5nIHRvIGZpbGUKKyAgICAqIEBwYXJhbSBmIGZpbGUgb3V0cHV0c3RyZWFtCisgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludAorICAgICogQHBhcmFtIG1ldGhvZCBmb3IgdGVzdGluZworICAgICogQHBhcmFtIHVjaGFydmFsIFVDaGFyYWN0ZXIgdmFsdWUgYWZ0ZXIgcnVubmluZyBtZXRob2QKKyAgICAqIEBwYXJhbSBjaGFydmFsIENoYXJhY3RlciB2YWx1ZSBhZnRlciBydW5uaW5nIG1ldGhvZAorICAgICogQGV4Y2VwdGlvbiB0aHJvd24gd2hlbiBlcnJvciBvY2N1ciBpbiB3cml0aW5nIHRvIGZpbGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdHJhY2tEaWZmZXJlbmNlKFByaW50V3JpdGVyIGYsIGludCBjaCwgU3RyaW5nIG1ldGhvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdWNoYXJ2YWwsIFN0cmluZyBjaGFydmFsKQorICAgICAgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgIGlmIChtX2hhc2h0YWJsZV8uY29udGFpbnNLZXkobWV0aG9kKSkKKyAgICAgIHsKKyAgICAgICAgSW50ZWdlciB2YWx1ZSA9IChJbnRlZ2VyKW1faGFzaHRhYmxlXy5nZXQobWV0aG9kKTsKKyAgICAgICAgbV9oYXNodGFibGVfLnB1dChtZXRob2QsIG5ldyBJbnRlZ2VyKHZhbHVlLmludFZhbHVlKCkgKyAxKSk7CisgICAgICB9CisgICAgICBlbHNlCisgICAgICAgIG1faGFzaHRhYmxlXy5wdXQobWV0aG9kLCBuZXcgSW50ZWdlcigxKSk7CisgICAgICAKKyAgICAgIFN0cmluZyB0ZW1wID0gSW50ZWdlci50b0hleFN0cmluZyhjaCk7CisgICAgICBTdHJpbmdCdWZmZXIgcyA9IG5ldyBTdHJpbmdCdWZmZXIodGVtcCk7CisgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDYgLSB0ZW1wLmxlbmd0aCgpOyBpICsrKQorICAgICAgICBzLmFwcGVuZCgnICcpOworICAgICAgdGVtcCA9IFVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lKGNoKTsKKyAgICAgIGlmICh0ZW1wID09IG51bGwpCisgICAgICAgIHRlbXAgPSAiICI7CisgICAgICBzLmFwcGVuZCh0ZW1wKTsKKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNzMgLSB0ZW1wLmxlbmd0aCgpOyBpICsrKQorICAgICAgICBzLmFwcGVuZCgnICcpOworICAgICAgCisgICAgICBzLmFwcGVuZChtZXRob2QpOworICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyNyAtIG1ldGhvZC5sZW5ndGgoKTsgaSArKykKKyAgICAgICAgcy5hcHBlbmQoJyAnKTsKKyAgICAgIHMuYXBwZW5kKHVjaGFydmFsKTsKKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTEgLSB1Y2hhcnZhbC5sZW5ndGgoKTsgaSArKykKKyAgICAgICAgcy5hcHBlbmQoJyAnKTsKKyAgICAgIHMuYXBwZW5kKGNoYXJ2YWwpOworICAgICAgZi5wcmludGxuKHMudG9TdHJpbmcoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogRG9lcyB1cCBhIHN1bW1hcnkgb2YgdGhlIGRpZmZlcmVuY2VzCisgICAgKiBAcGFyYW0gZiBmaWxlIG91dHB1dHN0cmVhbQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBzdW1tYXJ5KFByaW50V3JpdGVyIGYpCisgICAgeworICAgICAgZi5wcmludGxuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgZi5wcmludGxuKCJTdW1tYXJ5IG9mIGRpZmZlcmVuY2VzIik7CisgICAgICBmb3IgKEVudW1lcmF0aW9uIGUgPSBtX2hhc2h0YWJsZV8ua2V5cygpIDsgZS5oYXNNb3JlRWxlbWVudHMoKSA7KSAKKyAgICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG1ldGhvZCA9IG5ldyBTdHJpbmdCdWZmZXIoKFN0cmluZyllLm5leHRFbGVtZW50KCkpOworICAgICAgICBpbnQgY291bnQgPSAoKEludGVnZXIpbV9oYXNodGFibGVfLmdldChtZXRob2QudG9TdHJpbmcoKSkpLmludFZhbHVlKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAzMCAtIG1ldGhvZC5sZW5ndGgoKTsgaSA+IDA7IGkgLS0pCisgICAgICAgICAgbWV0aG9kLmFwcGVuZCgnICcpOworICAgICAgZi5wcmludGxuKG1ldGhvZCArICIgICIgKyBjb3VudCk7CisgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlckRpcmVjdGlvblRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJEaXJlY3Rpb25UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjhlYzI3MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJEaXJlY3Rpb25UZXN0LmphdmEKQEAgLTAsMCArMSw3NyBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJEaXJlY3Rpb247CisKKy8qKgorKiBUZXN0aW5nIFVDaGFyYWN0ZXJEaXJlY3Rpb24KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIEp1bHkgMjIgMjAwMgorKi8KK3B1YmxpYyBjbGFzcyBVQ2hhcmFjdGVyRGlyZWN0aW9uVGVzdCBleHRlbmRzIFRlc3RGbXdrCit7ICAgIAorICAgIC8vIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiBQcml2YXRlIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgaW5pdGlhbGlzYXRpb24KKyAgICAqLworICAgIHB1YmxpYyBVQ2hhcmFjdGVyRGlyZWN0aW9uVGVzdCgpCisgICAgeworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJnKSAgCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgVUNoYXJhY3RlckRpcmVjdGlvblRlc3QgdGVzdCA9IG5ldyBVQ2hhcmFjdGVyRGlyZWN0aW9uVGVzdCgpOworICAgICAgICAgICAgdGVzdC5ydW4oYXJnKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBuYW1lIG9mIHRoZSBhcmd1bWVudCBjYXRlZ29yeQorICAgICogQHJldHVybiBjYXRlZ29yeSBuYW1lCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIG5hbWVbXSA9IHsiTGVmdC10by1SaWdodCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlJpZ2h0LXRvLUxlZnQiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAiRXVyb3BlYW4gTnVtYmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiRXVyb3BlYW4gTnVtYmVyIFNlcGFyYXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkV1cm9wZWFuIE51bWJlciBUZXJtaW5hdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiQXJhYmljIE51bWJlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbW1vbiBOdW1iZXIgU2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiUGFyYWdyYXBoIFNlcGFyYXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlNlZ21lbnQgU2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiV2hpdGVzcGFjZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIE5ldXRyYWxzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiTGVmdC10by1SaWdodCBFbWJlZGRpbmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICJMZWZ0LXRvLVJpZ2h0IE92ZXJyaWRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiUmlnaHQtdG8tTGVmdCBBcmFiaWMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJSaWdodC10by1MZWZ0IEVtYmVkZGluZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlJpZ2h0LXRvLUxlZnQgT3ZlcnJpZGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJQb3AgRGlyZWN0aW9uYWwgRm9ybWF0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uLVNwYWNpbmcgTWFyayIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkJvdW5kYXJ5IE5ldXRyYWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJVbmFzc2lnbmVkIn07CisgICAgICAgIGZvciAoaW50IGkgPSBVQ2hhcmFjdGVyRGlyZWN0aW9uLkxFRlRfVE9fUklHSFQ7IAorICAgICAgICAgICAgICAgICBpIDwgVUNoYXJhY3RlckRpcmVjdGlvbi5DSEFSX0RJUkVDVElPTl9DT1VOVDsgaSArKykgeworICAgICAgICAgICAgIGlmICghVUNoYXJhY3RlckRpcmVjdGlvbi50b1N0cmluZyhpKS5lcXVhbHMobmFtZVtpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgdG9TdHJpbmcgZm9yIGRpcmVjdGlvbiAiICsgaSArICIgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgbmFtZVtpXSk7CisgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3Rlckl0ZXJhdG9yVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3Rlckl0ZXJhdG9yVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4NTY0NjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VQ2hhcmFjdGVySXRlcmF0b3JUZXN0LmphdmEKQEAgLTAsMCArMSwxMzEgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5sYW5nOworCisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworLyoqCisqIFRlc3RpbmcgY2xhc3MgZm9yIFVDaGFyYWN0ZXJJdGVyYXRvcgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgYXByaWwgMDIgMjAwMgorKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2hhcmFjdGVySXRlcmF0b3JUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sgCisgICAgLy8gY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IKKyAgICAgKi8KKyAgICAgIHB1YmxpYyBVQ2hhcmFjdGVySXRlcmF0b3JUZXN0KCkKKyAgICAgIHsKKyAgICAgIH0KKyAgCisgICAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAKKyAgICAgIC8qKgorICAgICAgKiBUZXN0aW5nIGNsb25pbmcKKyAgICAgICovCisgICAgLyoKKyAgICAgIHB1YmxpYyB2b2lkIFRlc3RDbG9uZSgpCisgICAgICB7CisgICAgICAgICAgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yID0gbmV3IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvcigidGVzdGluZyIpOworICAgICAgICAgIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciBjbG9uZWQgPSAoVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yKWl0ZXJhdG9yLmNsb25lKCk7CisgICAgICAgICAgY2hhciBjb21wbGV0ZWQgPSAwOworICAgICAgICAgIHdoaWxlIChjb21wbGV0ZWQgIT0gVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgY29tcGxldGVkID0gaXRlcmF0b3IubmV4dCgpOworICAgICAgICAgICAgICBpZiAoY29tcGxldGVkICE9IGNsb25lZC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgIGVycmxuKCJDbG9uZWQgb3BlcmF0aW9uIGZhaWxlZCIpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgfQorICAgICoKKyAgICAgIAorICAgICAgLyoqCisgICAgICAgKiBUZXN0aW5nIGl0ZXJhdGlvbgorICAgICAgICovCisgICAgLyoKKyAgICAgIHB1YmxpYyB2b2lkIFRlc3RJdGVyYXRpb24oKQorICAgICAgeworICAgICAgICAgIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvciAgPSBuZXcgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVRFUkFUSU9OX1NUUklOR18pOworICAgICAgICAgIFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvcjIgPSBuZXcgVW5pY29kZUNoYXJhY3Rlckl0ZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVRFUkFUSU9OX1NUUklOR18pOworICAgICAgICAgIGlmIChpdGVyYXRvci5maXJzdCgpICE9IElURVJBVElPTl9TVFJJTkdfLmNoYXJBdCgwKSkgeworICAgICAgICAgICAgICBlcnJsbigiSXRlcmF0b3IgZmFpbGVkIHJldHJpZXZpbmcgZmlyc3QgY2hhcmFjdGVyIik7CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChpdGVyYXRvci5sYXN0KCkgIT0gSVRFUkFUSU9OX1NUUklOR18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkgLSAxKSkgeworICAgICAgICAgICAgICBlcnJsbigiSXRlcmF0b3IgZmFpbGVkIHJldHJpZXZpbmcgbGFzdCBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICBpZiAoaXRlcmF0b3IuZ2V0QmVnaW5JbmRleCgpICE9IDAgfHwgCisgICAgICAgICAgICAgIGl0ZXJhdG9yLmdldEVuZEluZGV4KCkgIT0gSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgZXJybG4oIkl0ZXJhdG9yIGZhaWxlZCBkZXRlcm1pbmluZyBiZWdpbiBhbmQgZW5kIGluZGV4Iik7CisgICAgICAgICAgfSAgCisgICAgICAgICAgaXRlcmF0b3IyLnNldEluZGV4KDApOworICAgICAgICAgIGl0ZXJhdG9yLnNldEluZGV4KDApOworICAgICAgICAgIGludCBjaCA9IDA7CisgICAgICAgICAgd2hpbGUgKGNoICE9IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvci5ET05FX0NPREVQT0lOVCkgeworICAgICAgICAgICAgICBpbnQgaW5kZXggPSBpdGVyYXRvcjIuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgY2ggPSBpdGVyYXRvcjIubmV4dENvZGVQb2ludCgpOworICAgICAgICAgICAgICBpZiAoaW5kZXggIT0gSVRFUkFUSU9OX1NVUFBMRU1FTlRBUllfSU5ERVgpIHsKKyAgICAgICAgICAgICAgICAgIGlmIChjaCAhPSAoaW50KWl0ZXJhdG9yLm5leHQoKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICBjaCAhPSBVbmljb2RlQ2hhcmFjdGVySXRlcmF0b3IuRE9ORV9DT0RFUE9JTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgbWlzbWF0Y2ggaW4gbmV4dCgpIGFuZCBuZXh0Q29kZVBvaW50KCkiKTsgCisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjaCkgIT0gaXRlcmF0b3IubmV4dCgpIHx8CisgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoY2gpICE9IGl0ZXJhdG9yLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBtaXNtYXRjaCBpbiBuZXh0IGFuZCBuZXh0Q29kZVBvaW50IGZvciAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoSVRFUkFUSU9OX1NUUklOR18ubGVuZ3RoKCkpOworICAgICAgICAgIGl0ZXJhdG9yMi5zZXRJbmRleChJVEVSQVRJT05fU1RSSU5HXy5sZW5ndGgoKSk7CisgICAgICAgICAgd2hpbGUgKGNoICE9IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvci5ET05FX0NPREVQT0lOVCkgeworICAgICAgICAgICAgICBpbnQgaW5kZXggPSBpdGVyYXRvcjIuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgY2ggPSBpdGVyYXRvcjIucHJldmlvdXNDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgICAgaWYgKGluZGV4ICE9IElURVJBVElPTl9TVVBQTEVNRU5UQVJZX0lOREVYKSB7CisgICAgICAgICAgICAgICAgICBpZiAoY2ggIT0gKGludClpdGVyYXRvci5wcmV2aW91cygpICYmIAorICAgICAgICAgICAgICAgICAgICAgIGNoICE9IFVuaWNvZGVDaGFyYWN0ZXJJdGVyYXRvci5ET05FX0NPREVQT0lOVCkgeworICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBtaXNtYXRjaCBpbiBwcmV2aW91cygpIGFuZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJldmlvdXNDb2RlUG9pbnQoKSIpOyAKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSAhPSBpdGVyYXRvci5wcmV2aW91cygpIHx8IAorICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGNoKSAhPSBpdGVyYXRvci5wcmV2aW91cygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1pc21hdGNoIGluIHByZXZpb3VzIGFuZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJldmlvdXNDb2RlUG9pbnQgZm9yIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgfQorICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJnKQorICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvclRlc3QgdGVzdCA9IG5ldyBVQ2hhcmFjdGVySXRlcmF0b3JUZXN0KCk7CisgICAgICAgICAgICB0ZXN0LnJ1bihhcmcpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJVEVSQVRJT05fU1RSSU5HXyA9CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVzdGluZyAxIDIgMyBcdWQ4MDBcdWRjMDAgNDU2IjsKKyAgICAvL3ByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJVEVSQVRJT05fU1VQUExFTUVOVEFSWV9JTkRFWCA9IDE0OyAgICAKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlclN1cnJvZ2F0ZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJTdXJyb2dhdGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFlOGVhZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJTdXJyb2dhdGVUZXN0LmphdmEKQEAgLTAsMCArMSw0MTkgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBUZXN0IEpESyAxLjUgY292ZXIgQVBJcy4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJTdXJyb2dhdGVUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgVUNoYXJhY3RlclN1cnJvZ2F0ZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFVuaWNvZGVCbG9ja0Zvck5hbWUoKSB7CisgICAgICAgIFN0cmluZ1tdIG5hbWVzID0geyJPcHRpY2FsIENoYXJhY3RlciBSZWNvZ25pdGlvbiIsCisgICAgICAgICAgICAgICAgIkNKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEEiLCAiU3VwcGxlbWVudGFsIEFycm93cy1CIiwKKyAgICAgICAgICAgICAgICAiU3VwcGxlbWVudGFyeSBQcml2YXRlIFVzZSBBcmVhLUIiLAorICAgICAgICAgICAgICAgICJzdXBwbGVtZW50YXJ5X1ByaXZhdGVfVXNlX0FyZWEtYiIsCisgICAgICAgICAgICAgICAgInN1cHBsZW1lbnRhcnlfUFJJVkFURV9Vc2VfQXJlYV9iIn07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sgYiA9IFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICAuZm9yTmFtZShuYW1lc1tpXSk7CisgICAgICAgICAgICAgICAgbG9nbG4oImZvdW5kOiAiICsgYiArICIgZm9yIG5hbWU6ICIgKyBuYW1lc1tpXSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgZmluZCBibG9jayBmb3IgbmFtZTogIiArIG5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJc1ZhbGlkQ29kZVBvaW50KCkgeworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1ZhbGlkQ29kZVBvaW50KC0xKSkKKyAgICAgICAgICAgIGVycmxuKCItMSIpOworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNWYWxpZENvZGVQb2ludCgwKSkKKyAgICAgICAgICAgIGVycmxuKCIwIik7CisgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1ZhbGlkQ29kZVBvaW50KFVDaGFyYWN0ZXIuTUFYX0NPREVfUE9JTlQpKQorICAgICAgICAgICAgZXJybG4oIjB4MTBmZmZmIik7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVmFsaWRDb2RlUG9pbnQoVUNoYXJhY3Rlci5NQVhfQ09ERV9QT0lOVCArIDEpKQorICAgICAgICAgICAgZXJybG4oIjB4MTEwMDAwIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdElzU3VwcGxlbWVudGFyeUNvZGVQb2ludCgpIHsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5Q29kZVBvaW50KC0xKSkKKyAgICAgICAgICAgIGVycmxuKCItMSIpOworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnlDb2RlUG9pbnQoMCkpCisgICAgICAgICAgICBlcnJsbigiMCIpOworICAgICAgICBpZiAoVUNoYXJhY3RlcgorICAgICAgICAgICAgICAgIC5pc1N1cHBsZW1lbnRhcnlDb2RlUG9pbnQoVUNoYXJhY3Rlci5NSU5fU1VQUExFTUVOVEFSWV9DT0RFX1BPSU5UIC0gMSkpCisgICAgICAgICAgICBlcnJsbigiMHhmZmZmIik7CisgICAgICAgIGlmICghVUNoYXJhY3RlcgorICAgICAgICAgICAgICAgIC5pc1N1cHBsZW1lbnRhcnlDb2RlUG9pbnQoVUNoYXJhY3Rlci5NSU5fU1VQUExFTUVOVEFSWV9DT0RFX1BPSU5UKSkKKyAgICAgICAgICAgIGVycmxuKCIweDEwMDAwIik7CisgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnlDb2RlUG9pbnQoVUNoYXJhY3Rlci5NQVhfQ09ERV9QT0lOVCkpCisgICAgICAgICAgICBlcnJsbigiMHgxMGZmZmYiKTsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5Q29kZVBvaW50KFVDaGFyYWN0ZXIuTUFYX0NPREVfUE9JTlQgKyAxKSkKKyAgICAgICAgICAgIGVycmxuKCIweDExMDAwMCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJc0hpZ2hTdXJyb2dhdGUoKSB7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyCisgICAgICAgICAgICAgICAgLmlzSGlnaFN1cnJvZ2F0ZSgoY2hhcikgKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFIC0gMSkpKQorICAgICAgICAgICAgZXJybG4oIjB4ZDdmZiIpOworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNIaWdoU3Vycm9nYXRlKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFKSkKKyAgICAgICAgICAgIGVycmxuKCIweGQ4MDAiKTsKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzSGlnaFN1cnJvZ2F0ZShVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSkpCisgICAgICAgICAgICBlcnJsbigiMHhkYmZmIik7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyCisgICAgICAgICAgICAgICAgLmlzSGlnaFN1cnJvZ2F0ZSgoY2hhcikgKFVDaGFyYWN0ZXIuTUFYX0hJR0hfU1VSUk9HQVRFICsgMSkpKQorICAgICAgICAgICAgZXJybG4oIjB4ZGMwMCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJc0xvd1N1cnJvZ2F0ZSgpIHsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAuaXNMb3dTdXJyb2dhdGUoKGNoYXIpIChVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFIC0gMSkpKQorICAgICAgICAgICAgZXJybG4oIjB4ZGJmZiIpOworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNMb3dTdXJyb2dhdGUoVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSkpCisgICAgICAgICAgICBlcnJsbigiMHhkYzAwIik7CisgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0xvd1N1cnJvZ2F0ZShVQ2hhcmFjdGVyLk1BWF9MT1dfU1VSUk9HQVRFKSkKKyAgICAgICAgICAgIGVycmxuKCIweGRmZmYiKTsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAuaXNMb3dTdXJyb2dhdGUoKGNoYXIpIChVQ2hhcmFjdGVyLk1BWF9MT1dfU1VSUk9HQVRFICsgMSkpKQorICAgICAgICAgICAgZXJybG4oIjB4ZTAwMCIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJc1N1cnJvZ2F0ZVBhaXIoKSB7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzU3Vycm9nYXRlUGFpcigKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFIC0gMSksCisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSkpCisgICAgICAgICAgICBlcnJsbigiMHhkN2ZmLDB4ZGMwMCIpOworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cnJvZ2F0ZVBhaXIoCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSArIDEpLAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUpKQorICAgICAgICAgICAgZXJybG4oIjB4ZDgwMCwweGRjMDAiKTsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXJyb2dhdGVQYWlyKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSAtIDEpKSkKKyAgICAgICAgICAgIGVycmxuKCIweGQ4MDAsMHhkYmZmIik7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzU3Vycm9nYXRlUGFpcihVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSwKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUFYX0xPV19TVVJST0dBVEUgKyAxKSkpCisgICAgICAgICAgICBlcnJsbigiMHhkODAwLDB4ZTAwMCIpOworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNTdXJyb2dhdGVQYWlyKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFLAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUpKQorICAgICAgICAgICAgZXJybG4oIjB4ZDgwMCwweGRjMDAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhckNvdW50KCkgeworICAgICAgICBVQ2hhcmFjdGVyLmNoYXJDb3VudCgtMSk7CisgICAgICAgIFVDaGFyYWN0ZXIuY2hhckNvdW50KFVDaGFyYWN0ZXIuTUFYX0NPREVfUE9JTlQgKyAxKTsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY2hhckNvdW50KFVDaGFyYWN0ZXIuTUlOX1NVUFBMRU1FTlRBUllfQ09ERV9QT0lOVCAtIDEpICE9IDEpCisgICAgICAgICAgICBlcnJsbigiMHhmZmZmIik7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmNoYXJDb3VudChVQ2hhcmFjdGVyLk1JTl9TVVBQTEVNRU5UQVJZX0NPREVfUE9JTlQpICE9IDIpCisgICAgICAgICAgICBlcnJsbigiMHgwMTAwMDAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9Db2RlUG9pbnQoKSB7CisgICAgICAgIGZpbmFsIGNoYXJbXSBwYWlycyA9IHsoY2hhcikgKFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFICsgMCksCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFICsgMCksCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSArIDEpLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSArIDEpLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NSU5fSElHSF9TVVJST0dBVEUgKyAyKSwKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUgKyAyKSwKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUFYX0hJR0hfU1VSUk9HQVRFIC0gMiksCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1BWF9MT1dfU1VSUk9HQVRFIC0gMiksCisgICAgICAgICAgICAgICAgKGNoYXIpIChVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSAtIDEpLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NQVhfTE9XX1NVUlJPR0FURSAtIDEpLAorICAgICAgICAgICAgICAgIChjaGFyKSAoVUNoYXJhY3Rlci5NQVhfSElHSF9TVVJST0dBVEUgLSAwKSwKKyAgICAgICAgICAgICAgICAoY2hhcikgKFVDaGFyYWN0ZXIuTUFYX0xPV19TVVJST0dBVEUgLSAwKSx9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhaXJzLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICBpbnQgY3AgPSBVQ2hhcmFjdGVyLnRvQ29kZVBvaW50KHBhaXJzW2ldLCBwYWlyc1tpICsgMV0pOworICAgICAgICAgICAgaWYgKHBhaXJzW2ldICE9IFVURjE2LmdldExlYWRTdXJyb2dhdGUoY3ApCisgICAgICAgICAgICAgICAgICAgIHx8IHBhaXJzW2kgKyAxXSAhPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjcCkpIHsKKworICAgICAgICAgICAgICAgIGVycmxuKEludGVnZXIudG9IZXhTdHJpbmcocGFpcnNbaV0pICsgIiwgIiArIHBhaXJzW2kgKyAxXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29kZVBvaW50QXRCZWZvcmUoKSB7CisgICAgICAgIFN0cmluZyBzID0gIiIgKyBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSArIC8vIGlzb2xhdGVkIGhpZ2gKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSArIC8vIHBhaXIKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFICsgVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURTsgLy8gaXNvbGF0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG93CisgICAgICAgIGNoYXJbXSBjID0gcy50b0NoYXJBcnJheSgpOworICAgICAgICBpbnRbXSBhdmFsdWVzID0geworICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFLAorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9Db2RlUG9pbnQoVUNoYXJhY3Rlci5NSU5fSElHSF9TVVJST0dBVEUsCisgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFKSwKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFLCBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFfTsKKyAgICAgICAgaW50W10gYnZhbHVlcyA9IHsKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSwKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSwKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLnRvQ29kZVBvaW50KFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSksCisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSx9OworICAgICAgICBTdHJpbmdCdWZmZXIgYiA9IG5ldyBTdHJpbmdCdWZmZXIocyk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXZhbHVlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY29kZVBvaW50QXQocywgaSkgIT0gYXZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigic3RyaW5nIGF0OiAiICsgaSk7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5jb2RlUG9pbnRBdChjLCBpKSAhPSBhdmFsdWVzW2ldKQorICAgICAgICAgICAgICAgIGVycmxuKCJjaGFycyBhdDogIiArIGkpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY29kZVBvaW50QXQoYiwgaSkgIT0gYXZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigic3RyaW5nYnVmZmVyIGF0OiAiICsgaSk7CisKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmNvZGVQb2ludEJlZm9yZShzLCBpICsgMSkgIT0gYnZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigic3RyaW5nIGJlZm9yZTogIiArIGkpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY29kZVBvaW50QmVmb3JlKGMsIGkgKyAxKSAhPSBidmFsdWVzW2ldKQorICAgICAgICAgICAgICAgIGVycmxuKCJjaGFycyBiZWZvcmU6ICIgKyBpKTsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmNvZGVQb2ludEJlZm9yZShiLCBpICsgMSkgIT0gYnZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigic3RyaW5nYnVmZmVyIGJlZm9yZTogIiArIGkpOworICAgICAgICB9CisKKyAgICAgICAgLy9jb3ZlciBjb2RlUG9pbnRBdEJlZm9yZSB3aXRoIGxpbWl0CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGNvZGVQb2ludEF0QmVmb3JlIHdpdGggbGltaXQgLi4uIik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXZhbHVlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuY29kZVBvaW50QXQoYywgaSwgNCkgIT0gYXZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigiY2hhcnMgYXQ6ICIgKyBpKTsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmNvZGVQb2ludEJlZm9yZShjLCBpICsgMSwgMCkgIT0gYnZhbHVlc1tpXSkKKyAgICAgICAgICAgICAgICBlcnJsbigiY2hhcnMgYmVmb3JlOiAiICsgaSk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUb0NoYXJzKCkgeworICAgICAgICBjaGFyW10gY2hhcnMgPSBuZXcgY2hhclszXTsKKyAgICAgICAgaW50IGNwID0gVUNoYXJhY3Rlci50b0NvZGVQb2ludChVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURSwKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk1JTl9MT1dfU1VSUk9HQVRFKTsKKyAgICAgICAgVUNoYXJhY3Rlci50b0NoYXJzKGNwLCBjaGFycywgMSk7CisgICAgICAgIGlmIChjaGFyc1sxXSAhPSBVQ2hhcmFjdGVyLk1JTl9ISUdIX1NVUlJPR0FURQorICAgICAgICAgICAgICAgIHx8IGNoYXJzWzJdICE9IFVDaGFyYWN0ZXIuTUlOX0xPV19TVVJST0dBVEUpIHsKKworICAgICAgICAgICAgZXJybG4oImZhaWwiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXJzID0gVUNoYXJhY3Rlci50b0NoYXJzKGNwKTsKKyAgICAgICAgaWYgKGNoYXJzWzBdICE9IFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFCisgICAgICAgICAgICAgICAgfHwgY2hhcnNbMV0gIT0gVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSkgeworCisgICAgICAgICAgICBlcnJsbigiZmFpbCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvZGVQb2ludENvdW50KCkgeworICAgICAgICBjbGFzcyBUZXN0IHsKKyAgICAgICAgICAgIFN0cmluZyBzdHIoU3RyaW5nIHMsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgaWYocz09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHM9IiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiAiY29kZVBvaW50Q291bnQoJyIgKyBVdGlsaXR5LmVzY2FwZShzKSArICInICIgKyBzdGFydAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCAiICsgbGltaXQgKyAiKSI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZvaWQgdGVzdChTdHJpbmcgcywgaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCBleHBlY3RlZCkgeworICAgICAgICAgICAgICAgIGludCB2YWwxID0gVUNoYXJhY3Rlci5jb2RlUG9pbnRDb3VudChzLnRvQ2hhckFycmF5KCksIHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQpOworICAgICAgICAgICAgICAgIGludCB2YWwyID0gVUNoYXJhY3Rlci5jb2RlUG9pbnRDb3VudChzLCBzdGFydCwgbGltaXQpOworICAgICAgICAgICAgICAgIGlmICh2YWwxICE9IGV4cGVjdGVkKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJjaGFyW10gIiArIHN0cihzLCBzdGFydCwgbGltaXQpICsgIigiICsgdmFsMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIikgIT0gIiArIGV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbDIgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlN0cmluZyAiICsgc3RyKHMsIHN0YXJ0LCBsaW1pdCkgKyAiKCIgKyB2YWwyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiKSAhPSAiICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oc3RyKHMsIHN0YXJ0LCBsaW1pdCkgKyAiID09ICIgKyBleHBlY3RlZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIGZhaWwoU3RyaW5nIHMsIGludCBzdGFydCwgaW50IGxpbWl0LCBDbGFzcyBleGMpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmNvZGVQb2ludENvdW50KHMsIHN0YXJ0LCBsaW1pdCk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ1bmV4cGVjdGVkIHN1Y2Nlc3MgIiArIHN0cihzLCBzdGFydCwgbGltaXQpKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWV4Yy5pc0luc3RhbmNlKGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3YXJubG4oImJhZCBleGNlcHRpb24gIiArIHN0cihzLCBzdGFydCwgbGltaXQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZS5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBUZXN0IHRlc3QgPSBuZXcgVGVzdCgpOworICAgICAgICB0ZXN0LmZhaWwobnVsbCwgMCwgMSwgTnVsbFBvaW50ZXJFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoImEiLCAtMSwgMCwgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbCgiYSIsIDEsIDIsIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoImEiLCAxLCAwLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC50ZXN0KCIiLCAwLCAwLCAwKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDAiLCAwLCAxLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWRjMDAiLCAwLCAxLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDAiLCAwLCAxLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDAiLCAxLCAyLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDAiLCAwLCAyLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWRjMDBcdWQ4MDAiLCAwLCAxLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWRjMDBcdWQ4MDAiLCAxLCAyLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWRjMDBcdWQ4MDAiLCAwLCAyLCAyKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWQ4MDBcdWRjMDAiLCAwLCAyLCAyKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWQ4MDBcdWRjMDAiLCAxLCAzLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWQ4MDBcdWRjMDAiLCAwLCAzLCAyKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDBcdWRjMDAiLCAwLCAyLCAxKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDBcdWRjMDAiLCAxLCAzLCAyKTsKKyAgICAgICAgdGVzdC50ZXN0KCJcdWQ4MDBcdWRjMDBcdWRjMDAiLCAwLCAzLCAyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0T2Zmc2V0QnlDb2RlUG9pbnRzKCkgeworICAgICAgICBjbGFzcyBUZXN0IHsKKyAgICAgICAgICAgIFN0cmluZyBzdHIoU3RyaW5nIHMsIGludCBzdGFydCwgaW50IGNvdW50LCBpbnQgaW5kZXgsIGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gIm9mZnNldEJ5Q29kZVBvaW50cygnIiArIFV0aWxpdHkuZXNjYXBlKHMpICsgIicgIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBzdGFydCArICIsICIgKyBjb3VudCArICIsICIgKyBpbmRleCArICIsICIgKyBvZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIikiOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIHRlc3QoU3RyaW5nIHMsIGludCBzdGFydCwgaW50IGNvdW50LCBpbnQgaW5kZXgsIGludCBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZCwgYm9vbGVhbiBmbGlwKSB7CisgICAgICAgICAgICAgICAgY2hhcltdIGNoYXJzID0gcy50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgICAgIFN0cmluZyBzdHJpbmcgPSBzLnN1YnN0cmluZyhzdGFydCwgc3RhcnQgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgaW50IHZhbDEgPSBVQ2hhcmFjdGVyLm9mZnNldEJ5Q29kZVBvaW50cyhjaGFycywgc3RhcnQsIGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsIG9mZnNldCk7CisgICAgICAgICAgICAgICAgaW50IHZhbDIgPSBVQ2hhcmFjdGVyLm9mZnNldEJ5Q29kZVBvaW50cyhzdHJpbmcsIGluZGV4IC0gc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQpCisgICAgICAgICAgICAgICAgICAgICAgICArIHN0YXJ0OworCisgICAgICAgICAgICAgICAgaWYgKHZhbDEgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImNoYXJbXSAiICsgc3RyKHMsIHN0YXJ0LCBjb3VudCwgaW5kZXgsIG9mZnNldCkgKyAiKCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHZhbDEgKyAiKSAhPSAiICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsMiAhPSBleHBlY3RlZCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3RyaW5nICIgKyBzdHIocywgc3RhcnQsIGNvdW50LCBpbmRleCwgb2Zmc2V0KSArICIoIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdmFsMiArICIpICE9ICIgKyBleHBlY3RlZCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbihzdHIocywgc3RhcnQsIGNvdW50LCBpbmRleCwgb2Zmc2V0KSArICIgPT0gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChmbGlwKSB7CisgICAgICAgICAgICAgICAgICAgIHZhbDEgPSBVQ2hhcmFjdGVyLm9mZnNldEJ5Q29kZVBvaW50cyhjaGFycywgc3RhcnQsIGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkLCAtb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgdmFsMiA9IFVDaGFyYWN0ZXIub2Zmc2V0QnlDb2RlUG9pbnRzKHN0cmluZywgZXhwZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHN0YXJ0LCAtb2Zmc2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWwxICE9IGluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiY2hhcltdICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzdHIocywgc3RhcnQsIGNvdW50LCBleHBlY3RlZCwgLW9mZnNldCkgKyAiKCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB2YWwxICsgIikgIT0gIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwyICE9IGluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3RyaW5nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzdHIocywgc3RhcnQsIGNvdW50LCBleHBlY3RlZCwgLW9mZnNldCkgKyAiKCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB2YWwyICsgIikgIT0gIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc1ZlcmJvc2UoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oc3RyKHMsIHN0YXJ0LCBjb3VudCwgZXhwZWN0ZWQsIC1vZmZzZXQpICsgIiA9PSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgaW5kZXgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIGZhaWwoY2hhcltdIHRleHQsIGludCBzdGFydCwgaW50IGNvdW50LCBpbnQgaW5kZXgsIGludCBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgIENsYXNzIGV4YykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIub2Zmc2V0QnlDb2RlUG9pbnRzKHRleHQsIHN0YXJ0LCBjb3VudCwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInVuZXhwZWN0ZWQgc3VjY2VzcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzdHIobmV3IFN0cmluZyh0ZXh0KSwgc3RhcnQsIGNvdW50LCBpbmRleCwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFleGMuaXNJbnN0YW5jZShlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImJhZCBleGNlcHRpb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHN0cihuZXcgU3RyaW5nKHRleHQpLCBzdGFydCwgY291bnQsIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCkgKyBlLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdm9pZCBmYWlsKFN0cmluZyB0ZXh0LCBpbnQgaW5kZXgsIGludCBvZmZzZXQsIENsYXNzIGV4YykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIub2Zmc2V0QnlDb2RlUG9pbnRzKHRleHQsIGluZGV4LCBvZmZzZXQpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigidW5leHBlY3RlZCBzdWNjZXNzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHN0cih0ZXh0LCBpbmRleCwgb2Zmc2V0LCAwLCB0ZXh0Lmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFleGMuaXNJbnN0YW5jZShlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImJhZCBleGNlcHRpb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHN0cih0ZXh0LCAwLCB0ZXh0Lmxlbmd0aCgpLCBpbmRleCwgb2Zmc2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgVGVzdCB0ZXN0ID0gbmV3IFRlc3QoKTsKKworICAgICAgICB0ZXN0LnRlc3QoIlx1ZDgwMFx1ZDgwMFx1ZGMwMCIsIDAsIDIsIDAsIDEsIDEsIHRydWUpOworCisgICAgICAgIHRlc3QuZmFpbCgoY2hhcltdKSBudWxsLCAwLCAxLCAwLCAxLCBOdWxsUG9pbnRlckV4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbCgoU3RyaW5nKSBudWxsLCAwLCAxLCBOdWxsUG9pbnRlckV4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbCgiYWJjIiwgLTEsIDAsIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoImFiYyIsIDQsIDAsIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoImFiYyIsIDEsIC0yLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC5mYWlsKCJhYmMiLCAyLCAyLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgY2hhcltdIGFiYyA9ICJhYmMiLnRvQ2hhckFycmF5KCk7CisgICAgICAgIHRlc3QuZmFpbChhYmMsIC0xLCAyLCAwLCAwLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC5mYWlsKGFiYywgMiwgMiwgMywgMCwgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbChhYmMsIDEsIC0xLCAwLCAwLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC5mYWlsKGFiYywgMSwgMSwgMiwgLTIsIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uY2xhc3MpOworICAgICAgICB0ZXN0LmZhaWwoYWJjLCAxLCAxLCAxLCAyLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC5mYWlsKGFiYywgMSwgMiwgMSwgMywgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbi5jbGFzcyk7CisgICAgICAgIHRlc3QuZmFpbChhYmMsIDAsIDIsIDIsIC0zLCBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uLmNsYXNzKTsKKyAgICAgICAgdGVzdC50ZXN0KCIiLCAwLCAwLCAwLCAwLCAwLCBmYWxzZSk7CisgICAgICAgIHRlc3QudGVzdCgiXHVkODAwIiwgMCwgMSwgMCwgMSwgMSwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdCgiXHVkYzAwIiwgMCwgMSwgMCwgMSwgMSwgdHJ1ZSk7CisKKyAgICAgICAgU3RyaW5nIHMgPSAiXHVkODAwXHVkYzAwIjsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDEsIDAsIDEsIDEsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMiwgMCwgMSwgMiwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAyLCAxLCAxLCAyLCBmYWxzZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAxLCAxLCAxLCAxLCAyLCB0cnVlKTsKKworICAgICAgICBzID0gIlx1ZGMwMFx1ZDgwMCI7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAxLCAwLCAxLCAxLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDIsIDAsIDEsIDEsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMiwgMCwgMiwgMiwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAyLCAxLCAxLCAyLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDEsIDEsIDEsIDEsIDIsIHRydWUpOworCisgICAgICAgIHMgPSAiXHVkODAwXHVkODAwXHVkYzAwIjsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDEsIDAsIDEsIDEsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMiwgMCwgMSwgMSwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAyLCAwLCAyLCAyLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDIsIDEsIDEsIDIsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMCwgMSwgMSwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAzLCAwLCAyLCAzLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDMsIDEsIDEsIDMsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMiwgMSwgMywgZmFsc2UpOworICAgICAgICB0ZXN0LnRlc3QocywgMSwgMSwgMSwgMSwgMiwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAxLCAyLCAxLCAxLCAzLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDEsIDIsIDIsIDEsIDMsIGZhbHNlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDIsIDEsIDIsIDEsIDMsIHRydWUpOworCisgICAgICAgIHMgPSAiXHVkODAwXHVkYzAwXHVkYzAwIjsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDEsIDAsIDEsIDEsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMiwgMCwgMSwgMiwgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAyLCAxLCAxLCAyLCBmYWxzZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAwLCAzLCAwLCAxLCAyLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDAsIDMsIDAsIDIsIDMsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMSwgMSwgMiwgZmFsc2UpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMSwgMiwgMywgZmFsc2UpOworICAgICAgICB0ZXN0LnRlc3QocywgMCwgMywgMiwgMSwgMywgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAxLCAxLCAxLCAxLCAyLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDEsIDIsIDEsIDEsIDIsIHRydWUpOworICAgICAgICB0ZXN0LnRlc3QocywgMSwgMiwgMSwgMiwgMywgdHJ1ZSk7CisgICAgICAgIHRlc3QudGVzdChzLCAxLCAyLCAyLCAxLCAzLCB0cnVlKTsKKyAgICAgICAgdGVzdC50ZXN0KHMsIDIsIDEsIDIsIDEsIDMsIHRydWUpOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L2xhbmcvVUNoYXJhY3RlclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2Q2OTRiYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJUZXN0LmphdmEKQEAgLTAsMCArMSwyMzQ1IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUJpRGlQcm9wczsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDYXNlUHJvcHM7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0VXRpbDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyQ2F0ZWdvcnk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyRGlyZWN0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlVmFsdWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZhbHVlSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJOYW1lOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVTZXJpYWxpemVkU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworCisvKioKKyogVGVzdGluZyBjbGFzcyBmb3IgVUNoYXJhY3RlcgorKiBNb3N0bHkgZm9sbG93aW5nIHRoZSB0ZXN0IGNhc2VzIGZvciBJQ1UKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG5vdiAwNCAyMDAwCisqLworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAgICAvLyBwcml2YXRlIHZhcmlhYmxlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICogSUNVNEogZGF0YSB2ZXJzaW9uIG51bWJlcgorICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBWZXJzaW9uSW5mbyBWRVJTSU9OXyA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKCI0LjEuMC4wIik7CisKKyAgICAvLyBjb25zdHJ1Y3RvciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICogQ29uc3RydWN0b3IKKyAgICAqLworICAgIHB1YmxpYyBVQ2hhcmFjdGVyVGVzdCgpCisgICAgeworICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJnKQorICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJUZXN0IHRlc3QgPSBuZXcgVUNoYXJhY3RlclRlc3QoKTsKKyAgICAgICAgICAgIHRlc3QucnVuKGFyZyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIFRlc3RpbmcgdGhlIGxldHRlciBhbmQgbnVtYmVyIGRldGVybWluYXRpb24gaW4gVUNoYXJhY3RlcgorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExldHRlck51bWJlcigpCisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMHgwMDQxOyBpIDwgMHgwMDVCOyBpICsrKQorICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNMZXR0ZXIoaSkpCisgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGkpICsgIiBleHBlY3RlZCB0byBiZSBhIGxldHRlciIpOworCisgICAgICAgIGZvciAoaW50IGkgPSAweDA2NjA7IGkgPCAweDA2NkE7IGkgKyspCisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzTGV0dGVyKGkpKQorICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChpKSArICIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgbGV0dGVyIik7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDB4MDY2MDsgaSA8IDB4MDY2QTsgaSArKykKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzRGlnaXQoaSkpCisgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGkpICsgIiBleHBlY3RlZCB0byBiZSBhIGRpZ2l0Iik7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDB4MDA0MTsgaSA8IDB4MDA1QjsgaSArKykKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0xldHRlck9yRGlnaXQoaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChpKSArICIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgZGlnaXQiKTsKKworICAgICAgICBmb3IgKGludCBpID0gMHgwNjYwOyBpIDwgMHgwNjZBOyBpICsrKQorICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzTGV0dGVyT3JEaWdpdChpKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGkpICsKKyAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIHRvIGJlIGVpdGhlciBhIGxldHRlciBvciBhIGRpZ2l0Iik7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogVGhlIGZvbGxvd2luZyBjaGVja3Mgd29yayBvbmx5IHN0YXJ0aW5nIGZyb20gVW5pY29kZSA0LjAuCisgICAgICAgICAqIENoZWNrIHRoZSB2ZXJzaW9uIG51bWJlciBoZXJlLgorICAgICAgICAgKi8KKyAgICAgICAgVmVyc2lvbkluZm8gdmVyc2lvbiA9ICAgIFVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKTsKKyAgICAgICAgaWYodmVyc2lvbi5nZXRNYWpvcigpPDQgfHwgdmVyc2lvbi5lcXVhbHMoVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoNCwgMCwgMSkpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworCisKKyAgICAgICAgLyoKKyAgICAgICAgICogU2FuaXR5IGNoZWNrOgorICAgICAgICAgKiBWZXJpZnkgdGhhdCBleGFjdGx5IHRoZSBkaWdpdCBjaGFyYWN0ZXJzIGhhdmUgZGVjaW1hbCBkaWdpdCB2YWx1ZXMuCisgICAgICAgICAqIFRoaXMgYXNzdW1wdGlvbiBpcyB1c2VkIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB1X2RpZ2l0KCkKKyAgICAgICAgICogKHdoaWNoIGNoZWNrcyBudD1kZSkKKyAgICAgICAgICogY29tcGFyZWQgd2l0aCB0aGUgcGFyYWxsZWwgamF2YS5sYW5nLkNoYXJhY3Rlci5kaWdpdCgpCisgICAgICAgICAqICh3aGljaCBjaGVja3MgTmQpLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIHdhcyBub3QgdHJ1ZSBpbiBVbmljb2RlIDMuMiBhbmQgZWFybGllci4KKyAgICAgICAgICogVW5pY29kZSA0LjAgZml4ZWQgZGlzY3JlcGFuY2llcy4KKyAgICAgICAgICogVW5pY29kZSA0LjAuMSByZS1pbnRyb2R1Y2VkIHByb2JsZW1zIGluIHRoaXMgYXJlYSBkdWUgdG8gYW4KKyAgICAgICAgICogdW5pbnRlbnRpb25hbGx5IGluY29tcGxldGUgbGFzdC1taW51dGUgY2hhbmdlLgorICAgICAgICAgKi8KKyAgICAgICAgU3RyaW5nIGRpZ2l0c1BhdHRlcm4gPSAiWzpOZDpdIjsKKyAgICAgICAgU3RyaW5nIGRlY2ltYWxWYWx1ZXNQYXR0ZXJuID0gIls6TnVtZXJpY19UeXBlPURlY2ltYWw6XSI7CisKKyAgICAgICAgVW5pY29kZVNldCBkaWdpdHMsIGRlY2ltYWxWYWx1ZXM7CisKKyAgICAgICAgZGlnaXRzPSBuZXcgVW5pY29kZVNldChkaWdpdHNQYXR0ZXJuKTsKKyAgICAgICAgZGVjaW1hbFZhbHVlcz1uZXcgVW5pY29kZVNldChkZWNpbWFsVmFsdWVzUGF0dGVybik7CisKKworICAgICAgICBjb21wYXJlVVNldHMoZGlnaXRzLCBkZWNpbWFsVmFsdWVzLCAiWzpOZDpdIiwgIls6TnVtZXJpY19UeXBlPURlY2ltYWw6XSIsIHRydWUpOworCisKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFRlc3RzIGZvciBzcGFjZSBkZXRlcm1pbmF0aW9uIGluIFVDaGFyYWN0ZXIKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTcGFjZXMoKQorICAgIHsKKyAgICAgICAgaW50IHNwYWNlc1tdID0gezB4MDAyMCwgMHgwMDAwYTAsIDB4MDAyMDAwLCAweDAwMjAwMSwgMHgwMDIwMDV9OworICAgICAgICBpbnQgbm9uc3BhY2VzW10gPSB7MHg2MSwgMHgwMDYyLCAweDAwNjMsIDB4MDA2NCwgMHgwMDc0fTsKKyAgICAgICAgaW50IHdoaXRlc3BhY2VzW10gPSB7MHgyMDA4LCAweDAwMjAwOSwgMHgwMDIwMGEsIDB4MDAwMDFjLCAweDAwMDAwY307CisgICAgICAgIGludCBub253aGl0ZXNwYWNlc1tdID0gezB4NjEsIDB4MDA2MiwgMHgwMDNjLCAweDAwMjgsIDB4MDAzZn07CisKKyAgICAgICAgaW50IHNpemUgPSBzcGFjZXMubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1NwYWNlQ2hhcihzcGFjZXNbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoc3BhY2VzW2ldKSArCisgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSBzcGFjZSBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTcGFjZUNoYXIobm9uc3BhY2VzW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KG5vbnNwYWNlc1tpXSkgKworICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgbm90IHRvIGJlIHNwYWNlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKHdoaXRlc3BhY2VzW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KHdoaXRlc3BhY2VzW2ldKSArCisgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIHRvIGJlIGEgd2hpdGUgc3BhY2UgY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1doaXRlc3BhY2Uobm9ud2hpdGVzcGFjZXNbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgobm9ud2hpdGVzcGFjZXNbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIG5vdCB0byBiZSBhIHNwYWNlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIk9rICAgIFxcdSIgKyBoZXgoc3BhY2VzW2ldKSArICIgYW5kIFxcdSIgKworICAgICAgICAgICAgICAgICAgaGV4KG5vbnNwYWNlc1tpXSkgKyAiIGFuZCBcXHUiICsgaGV4KHdoaXRlc3BhY2VzW2ldKSArCisgICAgICAgICAgICAgICAgICAiIGFuZCBcXHUiICsgaGV4KG5vbndoaXRlc3BhY2VzW2ldKSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcnVsZXdoaXRlc3BhY2VbXSA9IHsweDksIDB4ZCwgMHgyMCwgMHg4NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDBlLCAweDIwMGYsIDB4MjAyOCwgMHgyMDI5fTsKKyAgICAgICAgaW50IG5vbnJ1bGV3aGl0ZXNwYWNlW10gPSB7MHg4LCAweGUsIDB4MjEsIDB4ODYsIDB4YTAsIDB4YTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTY4MCwgMHgxNjgxLCAweDE4MGUsIDB4MTgwZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRkZGLCAweDIwMDAsIDB4MjAwYSwgMHgyMDBiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIwMTAsIDB4MjAyZiwgMHgyMDMwLCAweDIwNWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjA2MCwgMHgzMDAwLCAweDMwMDF9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGV3aGl0ZXNwYWNlLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShydWxld2hpdGVzcGFjZVtpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiXFx1IiArIFV0aWxpdHkuaGV4KHJ1bGV3aGl0ZXNwYWNlW2ldLCA0KQorICAgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCB0byBiZSBhIHJ1bGUgd2hpdGUgc3BhY2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5vbnJ1bGV3aGl0ZXNwYWNlLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKG5vbnJ1bGV3aGl0ZXNwYWNlW2ldKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJcXHUiICsgVXRpbGl0eS5oZXgobm9ucnVsZXdoaXRlc3BhY2VbaV0sIDQpCisgICAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkIHRvIGJlIGEgbm9uIHJ1bGUgd2hpdGUgc3BhY2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGVzdHMgZm9yIGRlZmluZWQgYW5kIHVuZGVmaW5lZCBjaGFyYWN0ZXJzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVmaW5lZCgpCisgICAgeworICAgICAgICBpbnQgdW5kZWZpbmVkW10gPSB7MHhmZmYxLCAweGZmZjcsIDB4ZmE2Yn07CisgICAgICAgIGludCBkZWZpbmVkW10gPSB7MHg1MjNFLCAweDAwNGY4OCwgMHgwMGZmZmR9OworCisgICAgICAgIGludCBzaXplID0gdW5kZWZpbmVkLmxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RlZmluZWQodW5kZWZpbmVkW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KHVuZGVmaW5lZFtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgbm90IHRvIGJlIGRlZmluZWQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0RlZmluZWQoZGVmaW5lZFtpXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChkZWZpbmVkW2ldKSArICIgZXhwZWN0ZWQgZGVmaW5lZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgYmFzZSBjaGFyYWN0ZXJzIGFuZCB0aGVpciBjZWxsd2lkdGgKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNlKCkKKyAgICB7CisgICAgICAgIGludCBiYXNlW10gPSB7MHgwMDYxLCAweDAwMDAzMSwgMHgwMDAzZDJ9OworICAgICAgICBpbnQgbm9uYmFzZVtdID0gezB4MDAyQiwgMHgwMDAwMjAsIDB4MDAyMDNCfTsKKyAgICAgICAgaW50IHNpemUgPSBiYXNlLmxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0Jhc2VGb3JtKG5vbmJhc2VbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgobm9uYmFzZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgbm90IHRvIGJlIGEgYmFzZSBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0Jhc2VGb3JtKGJhc2VbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoYmFzZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSBiYXNlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgZGlnaXQgY2hhcmFjdGVycworICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERpZ2l0cygpCisgICAgeworICAgICAgICBpbnQgZGlnaXRzW10gPSB7MHgwMDMwLCAweDAwMDY2MiwgMHgwMDBGMjMsIDB4MDAwRUQ1LCAweDAwMjE2MH07CisKKyAgICAgICAgLy9zcGVjaWFsIGNoYXJhY3RlcnMgbm90IGluIHRoZSBwcm9wZXJ0aWVzIHRhYmxlCisgICAgICAgIGludCBkaWdpdHMyW10gPSB7MHgzMDA3LCAweDAwNGUwMCwgMHgwMDRlOGMsIDB4MDA0ZTA5LCAweDAwNTZkOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNGU5NCwgMHgwMDUxNmQsIDB4NGUwMywgMHgwMDUxNmIsIDB4MDA0ZTVkfTsKKyAgICAgICAgaW50IG5vbmRpZ2l0c1tdID0gezB4MDAxMCwgMHgwMDAwNDEsIDB4MDAwMTIyLCAweDAwNjhGRX07CisKKyAgICAgICAgaW50IGRpZ2l0dmFsdWVzW10gPSB7MCwgMiwgMywgNSwgMX07CisgICAgICAgIGludCBkaWdpdHZhbHVlczJbXSA9IHswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5fTsKKworICAgICAgICBpbnQgc2l6ZSAgPSBkaWdpdHMubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGlnaXQoZGlnaXRzW2ldKSAmJgorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZGlnaXQoZGlnaXRzW2ldKSAhPSBkaWdpdHZhbHVlc1tpXSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGRpZ2l0c1tpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBkaWdpdCB3aXRoIHZhbHVlICIgKyBkaWdpdHZhbHVlc1tpXSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc2l6ZSA9IG5vbmRpZ2l0cy5sZW5ndGg7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzRGlnaXQobm9uZGlnaXRzW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KG5vbmRpZ2l0c1tpXSkgKyAiIGV4cGVjdGVkIG5vbmRpZ2l0Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgc2l6ZSA9IGRpZ2l0czIubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0RpZ2l0KGRpZ2l0czJbaV0pICYmCisgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5kaWdpdChkaWdpdHMyW2ldKSAhPSBkaWdpdHZhbHVlczJbaV0pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChkaWdpdHMyW2ldKSArCisgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgZGlnaXQgd2l0aCB2YWx1ZSAiICsgZGlnaXR2YWx1ZXMyW2ldKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogIFRlc3RzIGZvciBudW1lcmljIGNoYXJhY3RlcnMKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROdW1lcmljKCkKKyAgICB7CisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZSgweDAwQkMpICE9IC0yKSB7CisgICAgICAgICAgICBlcnJsbigiTnVtZXJpYyB2YWx1ZSBvZiAweDAwQkMgZXhwZWN0ZWQgdG8gYmUgLTIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGkgPSAnMCc7IGkgPCAnOSc7IGkgKyspIHsKKyAgICAgICAgICAgIGludCBuMSA9IFVDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGkpOworICAgICAgICAgICAgZG91YmxlIG4yID0gVUNoYXJhY3Rlci5nZXRVbmljb2RlTnVtZXJpY1ZhbHVlKGkpOworICAgICAgICAgICAgaWYgKG4xICE9IG4yIHx8ICBuMSAhPSAoaSAtICcwJykpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTnVtZXJpYyB2YWx1ZSBvZiAiICsgKGNoYXIpaSArICIgZXhwZWN0ZWQgdG8gYmUgIiArCisgICAgICAgICAgICAgICAgICAgICAgKGkgLSAnMCcpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gJ0EnOyBpIDwgJ0YnOyBpICsrKSB7CisgICAgICAgICAgICBpbnQgbjEgPSBVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShpKTsKKyAgICAgICAgICAgIGRvdWJsZSBuMiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShpKTsKKyAgICAgICAgICAgIGlmIChuMiAhPSBVQ2hhcmFjdGVyLk5PX05VTUVSSUNfVkFMVUUgfHwgIG4xICE9IChpIC0gJ0EnICsgMTApKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk51bWVyaWMgdmFsdWUgb2YgIiArIChjaGFyKWkgKyAiIGV4cGVjdGVkIHRvIGJlICIgKworICAgICAgICAgICAgICAgICAgICAgIChpIC0gJ0EnICsgMTApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMHhGRjIxOyBpIDwgMHhGRjI2OyBpICsrKSB7CisgICAgICAgICAgICAvLyB0ZXN0aW5nIGZ1bGwgd2lkZXRoIGxhdGluIGNoYXJhY3RlcnMgQS1GCisgICAgICAgICAgICBpbnQgbjEgPSBVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShpKTsKKyAgICAgICAgICAgIGRvdWJsZSBuMiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShpKTsKKyAgICAgICAgICAgIGlmIChuMiAhPSBVQ2hhcmFjdGVyLk5PX05VTUVSSUNfVkFMVUUgfHwgIG4xICE9IChpIC0gMHhGRjIxICsgMTApKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk51bWVyaWMgdmFsdWUgb2YgIiArIChjaGFyKWkgKyAiIGV4cGVjdGVkIHRvIGJlICIgKworICAgICAgICAgICAgICAgICAgICAgIChpIC0gMHhGRjIxICsgMTApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyB0ZXN0aW5nIGhhbiBudW1iZXJzCisgICAgICAgIGludCBoYW5bXSA9IHsweDk2ZjYsIDAsIDB4NThmOSwgMSwgMHg4Y2IzLCAyLCAweDUzYzMsIDMsCisgICAgICAgICAgICAgICAgICAgICAweDgwODYsIDQsIDB4NGYwZCwgNSwgMHg5Njc4LCA2LCAweDY3ZDIsIDcsCisgICAgICAgICAgICAgICAgICAgICAweDYzNGMsIDgsIDB4NzM5NiwgOSwgMHg1MzQxLCAxMCwgMHg2MmZlLCAxMCwKKyAgICAgICAgICAgICAgICAgICAgIDB4NzY3ZSwgMTAwLCAweDRmNzAsIDEwMCwgMHg1MzQzLCAxMDAwLCAweDRlZGYsIDEwMDAsCisgICAgICAgICAgICAgICAgICAgICAweDgyNGMsIDEwMDAwLCAweDUxMDQsIDEwMDAwMDAwMH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaGFuLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRIYW5OdW1lcmljVmFsdWUoaGFuW2ldKSAhPSBoYW5baSArIDFdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIk51bWVyaWMgdmFsdWUgb2YgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhoYW5baV0pICsgIiBleHBlY3RlZCB0byBiZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICBoYW5baSArIDFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGVzdHMgZm9yIHZlcnNpb24KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RWZXJzaW9uKCkKKyAgICB7CisgICAgICAgIGlmICghVUNoYXJhY3Rlci5nZXRVbmljb2RlVmVyc2lvbigpLmVxdWFscyhWRVJTSU9OXykpCisgICAgICAgICAgICBlcnJsbigiRkFJTCBleHBlY3RlZDogIiArIFZFUlNJT05fICsgImdvdDogIiArIFVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKSk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgY29udHJvbCBjaGFyYWN0ZXJzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SVNPQ29udHJvbCgpCisgICAgeworICAgICAgICBpbnQgY29udHJvbFtdID0gezB4MDAxYiwgMHgwMDAwOTcsIDB4MDAwMDgyfTsKKyAgICAgICAgaW50IG5vbmNvbnRyb2xbXSA9IHsweDYxLCAweDAwMDAzMSwgMHgwMDAwZTJ9OworCisgICAgICAgIGludCBzaXplID0gY29udHJvbC5sZW5ndGg7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzSVNPQ29udHJvbChjb250cm9sW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNvbnRyb2xbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSBjb250cm9sIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNJU09Db250cm9sKG5vbmNvbnRyb2xbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcobm9uY29udHJvbFtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCB0byBiZSBub3QgYSBjb250cm9sIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsb2dsbigiT2sgICAgMHgiICsgSW50ZWdlci50b0hleFN0cmluZyhjb250cm9sW2ldKSArICIgYW5kIDB4IiArCisgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcobm9uY29udHJvbFtpXSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBTdXBwbGVtZW50YXJ5CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFN1cHBsZW1lbnRhcnkoKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAweDEwMDAwOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnkoaSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ29kZXBvaW50IFxcdSIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGlzIG5vdCBzdXBwbGVtZW50YXJ5Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDB4MTAwMDA7IGkgPCAweDEwRkZGRjsgaSArKykgeworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzU3VwcGxlbWVudGFyeShpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDb2RlcG9pbnQgXFx1IiArIEludGVnZXIudG9IZXhTdHJpbmcoaSkgKworICAgICAgICAgICAgICAgICAgICAgICIgaXMgc3VwcGxlbWVudGFyeSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBtaXJyb3JpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TWlycm9yKCkKKyAgICB7CisgICAgICAgIGlmICghKFVDaGFyYWN0ZXIuaXNNaXJyb3JlZCgweDI4KSAmJiBVQ2hhcmFjdGVyLmlzTWlycm9yZWQoMHhiYikgJiYKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc01pcnJvcmVkKDB4MjA0NSkgJiYgVUNoYXJhY3Rlci5pc01pcnJvcmVkKDB4MjMyYSkKKyAgICAgICAgICAgICAgJiYgIVVDaGFyYWN0ZXIuaXNNaXJyb3JlZCgweDI3KSAmJgorICAgICAgICAgICAgICAhVUNoYXJhY3Rlci5pc01pcnJvcmVkKDB4NjEpICYmICFVQ2hhcmFjdGVyLmlzTWlycm9yZWQoMHgyODQpCisgICAgICAgICAgICAgICYmICFVQ2hhcmFjdGVyLmlzTWlycm9yZWQoMHgzNDAwKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJpc01pcnJvcmVkKCkgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghKFVDaGFyYWN0ZXIuZ2V0TWlycm9yKDB4M2MpID09IDB4M2UgJiYKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRNaXJyb3IoMHg1ZCkgPT0gMHg1YiAmJgorICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweDIwOGQpID09IDB4MjA4ZSAmJgorICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweDMwMTcpID09IDB4MzAxNiAmJgorCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0TWlycm9yKDB4YmIpID09IDB4YWIgJiYKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRNaXJyb3IoMHgyMjE1KSA9PSAweDI5RjUgJiYKKyAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRNaXJyb3IoMHgyOUY1KSA9PSAweDIyMTUgJiYgLyogbGFyZ2UgZGVsdGEgYmV0d2VlbiB0aGUgY29kZSBwb2ludHMgKi8KKworICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweDJlKSA9PSAweDJlICYmCisgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0TWlycm9yKDB4NmYzKSA9PSAweDZmMyAmJgorICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweDMwMWMpID09IDB4MzAxYyAmJgorICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE1pcnJvcigweGE0YWIpID09IDB4YTRhYikpIHsKKyAgICAgICAgICAgIGVycmxuKCJnZXRNaXJyb3IoKSBkb2VzIG5vdCB3b3JrIGNvcnJlY3RseSIpOworICAgICAgICB9CisKKyAgICAgICAgLyogdmVyaWZ5IHRoYXQgQmlkaV9NaXJyb3JpbmdfR2x5cGggcm91bmR0cmlwcyAqLworICAgICAgICBVbmljb2RlU2V0IHNldD1uZXcgVW5pY29kZVNldCgiWzpCaWRpX01pcnJvcmVkOl0iKTsKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ZXI9bmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzZXQpOworICAgICAgICBpbnQgc3RhcnQsIGVuZCwgYzIsIGMzOworICAgICAgICB3aGlsZShpdGVyLm5leHRSYW5nZSgpICYmIChzdGFydD1pdGVyLmNvZGVwb2ludCk+PTApIHsKKyAgICAgICAgICAgIGVuZD1pdGVyLmNvZGVwb2ludEVuZDsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBjMj1VQ2hhcmFjdGVyLmdldE1pcnJvcihzdGFydCk7CisgICAgICAgICAgICAgICAgYzM9VUNoYXJhY3Rlci5nZXRNaXJyb3IoYzIpOworICAgICAgICAgICAgICAgIGlmKGMzIT1zdGFydCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZ2V0TWlycm9yKCkgZG9lcyBub3Qgcm91bmR0cmlwOiBVKyIraGV4KHN0YXJ0KSsiLT5VKyIraGV4KGMyKSsiLT5VKyIraGV4KGMzKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSB3aGlsZSgrK3N0YXJ0PD1lbmQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgcHJpbnRhYmxlIGNoYXJhY3RlcnMKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQcmludCgpCisgICAgeworICAgICAgICBpbnQgcHJpbnRhYmxlW10gPSB7MHgwMDQyLCAweDAwMDA1ZiwgMHgwMDIwMTR9OworICAgICAgICBpbnQgbm9ucHJpbnRhYmxlW10gPSB7MHgyMDBjLCAweDAwMDA5ZiwgMHgwMDAwMWJ9OworCisgICAgICAgIGludCBzaXplID0gcHJpbnRhYmxlLmxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNQcmludGFibGUocHJpbnRhYmxlW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KHByaW50YWJsZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIHRvIGJlIGEgcHJpbnRhYmxlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNQcmludGFibGUobm9ucHJpbnRhYmxlW2ldKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KG5vbnByaW50YWJsZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBub3QgdG8gYmUgYSBwcmludGFibGUgY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiT2sgICAgXFx1IiArIGhleChwcmludGFibGVbaV0pICsgIiBhbmQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgIGhleChub25wcmludGFibGVbaV0pKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3QgYWxsIElTTyA4IGNvbnRyb2xzCisgICAgICAgIGZvciAoaW50IGNoID0gMDsgY2ggPD0gMHg5ZjsgKysgY2gpIHsKKyAgICAgICAgICAgIGlmIChjaCA9PSAweDIwKSB7CisgICAgICAgICAgICAgICAgLy8gc2tpcCBBU0NJSSBncmFwaGljIGNoYXJhY3RlcnMgYW5kIGNvbnRpbnVlIHdpdGggREVMCisgICAgICAgICAgICAgICAgY2ggPSAweDdmOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNQcmludGFibGUoY2gpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwgXFx1IiArIGhleChjaCkgKworICAgICAgICAgICAgICAgICAgICAiIGlzIGEgSVNPIDggY29udHJvbCBjaGFyYWN0ZXIgaGVuY2Ugbm90IHByaW50YWJsZVxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiB0ZXN0IGFsbCBMYXRpbi0xIGdyYXBoaWMgY2hhcmFjdGVycyAqLworICAgICAgICBmb3IgKGludCBjaCA9IDB4MjA7IGNoIDw9IDB4ZmY7ICsrIGNoKSB7CisgICAgICAgICAgICBpZiAoY2ggPT0gMHg3ZikgeworICAgICAgICAgICAgICAgIGNoID0gMHhhMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1ByaW50YWJsZShjaCkKKyAgICAgICAgICAgICAgICAmJiBjaCAhPSAweDAwQUQvKiBVbmljb2RlIDQuMCBjaGFuZ2VkIHRoZSBkZWZpbnRpb24gb2Ygc29mdCBoeXBoZW4gdG8gYmUgYSBDZiovKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwgXFx1IiArIGhleChjaCkgKworICAgICAgICAgICAgICAgICAgICAgICIgaXMgYSBMYXRpbi0xIGdyYXBoaWMgY2hhcmFjdGVyXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGVzdGluZyBmb3IgaWRlbnRpZmllciBjaGFyYWN0ZXJzCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SWRlbnRpZmllcigpCisgICAgeworICAgICAgICBpbnQgdW5pY29kZWlkc3RhcnRbXSA9IHsweDAyNTAsIDB4MDAwMGUyLCAweDAwMDA2MX07CisgICAgICAgIGludCBub251bmljb2RlaWRzdGFydFtdID0gezB4MjAwMCwgMHgwMDAwMGEsIDB4MDAyMDE5fTsKKyAgICAgICAgaW50IHVuaWNvZGVpZHBhcnRbXSA9IHsweDAwNWYsIDB4MDAwMDMyLCAweDAwMDA0NX07CisgICAgICAgIGludCBub251bmljb2RlaWRwYXJ0W10gPSB7MHgyMDMwLCAweDAwMDBhMywgMHgwMDAwMjB9OworICAgICAgICBpbnQgaWRpZ25vcmVbXSA9IHsweDAwMDYsIDB4MDAxMCwgMHgyMDZifTsKKyAgICAgICAgaW50IG5vbmlkaWdub3JlW10gPSB7MHgwMDc1LCAweDAwMDBhMywgMHgwMDAwNjF9OworCisgICAgICAgIGludCBzaXplID0gdW5pY29kZWlkc3RhcnQubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQodW5pY29kZWlkc3RhcnRbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgodW5pY29kZWlkc3RhcnRbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCB0byBiZSBhIHVuaWNvZGUgaWRlbnRpZmllciBzdGFydCBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChub251bmljb2RlaWRzdGFydFtpXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChub251bmljb2RlaWRzdGFydFtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBub3QgdG8gYmUgYSB1bmljb2RlIGlkZW50aWZpZXIgc3RhcnQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiY2hhcmFjdGVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQodW5pY29kZWlkcGFydFtpXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleCh1bmljb2RlaWRwYXJ0W2ldKSArCisgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSB1bmljb2RlIGlkZW50aWZpZXIgcGFydCBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KG5vbnVuaWNvZGVpZHBhcnRbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgobm9udW5pY29kZWlkcGFydFtpXSkgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBub3QgdG8gYmUgYSB1bmljb2RlIGlkZW50aWZpZXIgcGFydCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICJjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0lkZW50aWZpZXJJZ25vcmFibGUoaWRpZ25vcmVbaV0pKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoaWRpZ25vcmVbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgZXhwZWN0ZWQgdG8gYmUgYSBpZ25vcmFibGUgdW5pY29kZSBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzSWRlbnRpZmllcklnbm9yYWJsZShub25pZGlnbm9yZVtpXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChub25pZGlnbm9yZVtpXSkgKworICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIG5vdCB0byBiZSBhIGlnbm9yYWJsZSB1bmljb2RlIGNoYXJhY3RlciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIk9rICAgIFxcdSIgKyBoZXgodW5pY29kZWlkc3RhcnRbaV0pICsgIiBhbmQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgIGhleChub251bmljb2RlaWRzdGFydFtpXSkgKyAiIGFuZCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgaGV4KHVuaWNvZGVpZHBhcnRbaV0pICsgIiBhbmQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgIGhleChub251bmljb2RlaWRwYXJ0W2ldKSArICIgYW5kIFxcdSIgKworICAgICAgICAgICAgICAgICAgICBoZXgoaWRpZ25vcmVbaV0pICsgIiBhbmQgXFx1IiArIGhleChub25pZGlnbm9yZVtpXSkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUZXN0cyBmb3IgdGhlIGNoYXJhY3RlciB0eXBlcywgZGlyZWN0aW9uLjxicj4KKyAgICAqIFRoaXMgbWV0aG9kIHJlYWRzIGluIFVuaWNvZGVEYXRhLnR4dCBmaWxlIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiBBCisgICAgKiBkZWZhdWx0IHBhdGggaXMgcHJvdmlkZWQgcmVsYXRpdmUgdG8gdGhlIHNyYyBwYXRoLCBob3dldmVyIHRoZSB1c2VyCisgICAgKiBjb3VsZCBzZXQgYSBzeXN0ZW0gcHJvcGVydHkgdG8gY2hhbmdlIHRoZSBkaXJlY3RvcnkgcGF0aC48YnI+CisgICAgKiBlLmcuIGphdmEgLURVbmljb2RlRGF0YT0iZGF0YV9kaXJlY3RvcnlfcGF0aCIKKyAgICAqIGNvbS5pYm0uaWN1LmRldi50ZXN0LmxhbmcuVUNoYXJhY3RlclRlc3QKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RVbmljb2RlRGF0YSgpCisgICAgeworICAgICAgICAvLyB0aGlzIGlzIHRoZSAyIGNoYXIgY2F0ZWdvcnkgdHlwZXMgdXNlZCBpbiB0aGUgVW5pY29kZURhdGEgZmlsZQorICAgICAgICBmaW5hbCBTdHJpbmcgVFlQRSA9CisgICAgICAgICAgICAiTHVMbEx0TG1Mb01uTWVNY05kTmxOb1pzWmxacENjQ2ZDb0NzUGRQc1BlUGNQb1NtU2NTa1NvUGlQZiI7CisKKyAgICAgICAgLy8gZGlyZWN0b3J5IHR5cGVzIHVzZWQgaW4gdGhlIFVuaWNvZGVEYXRhIGZpbGUKKyAgICAgICAgLy8gcGFkZGVkIGJ5IHNwYWNlcyB0byBtYWtlIGVhY2ggdHlwZSBzaXplIDQKKyAgICAgICAgZmluYWwgU3RyaW5nIERJUiA9CisgICAgICAgICAgICAiTCAgIFIgICBFTiAgRVMgIEVUICBBTiAgQ1MgIEIgICBTICAgV1MgIE9OICBMUkUgTFJPIEFMICBSTEUgUkxPIFBERiBOU00gQk4gICI7CisKKyAgICAgICAgZmluYWwgaW50IExBU1RVTklDT0RFQ0hBUiA9IDB4RkZGRDsKKyAgICAgICAgaW50IGNoID0gMCwKKyAgICAgICAgICAgIGluZGV4ID0gMCwKKyAgICAgICAgICAgIHR5cGUgPSAwLAorICAgICAgICAgICAgZGlyID0gMDsKKworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgaW5wdXQgPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuaWNvZGUvVW5pY29kZURhdGEudHh0Iik7CisgICAgICAgICAgICBpbnQgbnVtRXJyb3JzID0gMDsKKworICAgICAgICAgICAgd2hpbGUgKGNoICE9IExBU1RVTklDT0RFQ0hBUikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IGlucHV0LnJlYWRMaW5lKCk7CisgICAgICAgICAgICAgICAgaWYocy5sZW5ndGgoKTw0IHx8IHMuc3RhcnRzV2l0aCgiIyIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBnZXRpbmcgdGhlIHVuaWNvZGUgY2hhcmFjdGVyLCBpdHMgdHlwZSBhbmQgaXRzIGRpcmVjdGlvbgorICAgICAgICAgICAgICAgIGNoID0gSW50ZWdlci5wYXJzZUludChzLnN1YnN0cmluZygwLCA0KSwgMTYpOworICAgICAgICAgICAgICAgIGluZGV4ID0gcy5pbmRleE9mKCc7JywgNSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHQgPSBzLnN1YnN0cmluZyhpbmRleCArIDEsIGluZGV4ICsgMyk7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gNDsKKyAgICAgICAgICAgICAgICBpbnQgb2xkaW5kZXggPSBpbmRleDsKKyAgICAgICAgICAgICAgICBpbmRleCA9IHMuaW5kZXhPZignOycsIGluZGV4KTsKKyAgICAgICAgICAgICAgICBpbnQgY2MgPSBJbnRlZ2VyLnBhcnNlSW50KHMuc3Vic3RyaW5nKG9sZGluZGV4LCBpbmRleCkpOworICAgICAgICAgICAgICAgIG9sZGluZGV4ID0gaW5kZXggKyAxOworICAgICAgICAgICAgICAgIGluZGV4ID0gcy5pbmRleE9mKCc7Jywgb2xkaW5kZXgpOworICAgICAgICAgICAgICAgIFN0cmluZyBkID0gcy5zdWJzdHJpbmcob2xkaW5kZXgsIGluZGV4KTsKKworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNjsgaSArKykgeworICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHMuaW5kZXhPZignOycsIGluZGV4ICsgMSk7CisgICAgICAgICAgICAgICAgICAgIC8vIHNraXBwaW5nIHRvIHRoZSAxMXRoIGZpZWxkCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGlzbyBjb21tZW50CisgICAgICAgICAgICAgICAgb2xkaW5kZXggPSBpbmRleCArIDE7CisgICAgICAgICAgICAgICAgaW5kZXggPSBzLmluZGV4T2YoJzsnLCBvbGRpbmRleCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlzb2NvbW1lbnQgPSBzLnN1YnN0cmluZyhvbGRpbmRleCwgaW5kZXgpOworICAgICAgICAgICAgICAgIC8vIHVwcGVyY2FzZQorICAgICAgICAgICAgICAgIG9sZGluZGV4ID0gaW5kZXggKyAxOworICAgICAgICAgICAgICAgIGluZGV4ID0gcy5pbmRleE9mKCc7Jywgb2xkaW5kZXgpOworICAgICAgICAgICAgICAgIFN0cmluZyB1cHBlciA9IHMuc3Vic3RyaW5nKG9sZGluZGV4LCBpbmRleCk7CisgICAgICAgICAgICAgICAgLy8gbG93ZXJjYXNlCisgICAgICAgICAgICAgICAgb2xkaW5kZXggPSBpbmRleCArIDE7CisgICAgICAgICAgICAgICAgaW5kZXggPSBzLmluZGV4T2YoJzsnLCBvbGRpbmRleCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGxvd2VyID0gcy5zdWJzdHJpbmcob2xkaW5kZXgsIGluZGV4KTsKKyAgICAgICAgICAgICAgICAvLyB0aXRsZWNhc2UgbGFzdCBlbGVtZW50CisgICAgICAgICAgICAgICAgb2xkaW5kZXggPSBpbmRleCArIDE7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlID0gcy5zdWJzdHJpbmcob2xkaW5kZXgpOworCisgICAgICAgICAgICAgICAgLy8gdGVzdGluZyB0aGUgY2F0ZWdvcnkKKyAgICAgICAgICAgICAgICAvLyB3ZSBvdmVycmlkZSB0aGUgZ2VuZXJhbCBjYXRlZ29yeSBvZiBzb21lIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgdHlwZSA9IFRZUEUuaW5kZXhPZih0KTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZSA8IDApCisgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAwOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICh0eXBlID4+IDEpICsgMTsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRUeXBlKGNoKSAhPSB0eXBlKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChjaCkgKyAiIGV4cGVjdGVkIHR5cGUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoY2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLKSAhPSAoMSA8PCB0eXBlKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGdldEludFByb3BlcnR5VmFsdWUoXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoY2gpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSykgIT0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJnZXRNYXNrKGdldFR5cGUoY2gpKSIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHRlc3RpbmcgY29tYmluaW5nIGNsYXNzCisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoY2gpICE9IGNjKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChjaCkgKyAiIGV4cGVjdGVkIGNvbWJpbmluZyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2xhc3MgIiArIGNjKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gdGVzdGluZyB0aGUgZGlyZWN0aW9uCisgICAgICAgICAgICAgICAgaWYgKGQubGVuZ3RoKCkgPT0gMSkKKyAgICAgICAgICAgICAgICAgICAgZCA9IGQgKyAiICAgIjsKKworICAgICAgICAgICAgICAgIGRpciA9IERJUi5pbmRleE9mKGQpID4+IDI7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0RGlyZWN0aW9uKGNoKSAhPSBkaXIpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGNoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIGRpcmVjdGlvbiAiICsgZGlyICsgIiBidXQgZ290ICIgKworICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldERpcmVjdGlvbihjaCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBieXRlIGJkaXIgPSAoYnl0ZSlkaXI7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0RGlyZWN0aW9uYWxpdHkoY2gpICE9IGJkaXIpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGNoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIGRpcmVjdGlvbmFsaXR5ICIgKyBiZGlyICsgIiBidXQgZ290ICIgKworICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldERpcmVjdGlvbmFsaXR5KGNoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHRlc3RpbmcgaXNvIGNvbW1lbnQKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjb21tZW50ID0gVUNoYXJhY3Rlci5nZXRJU09Db21tZW50KGNoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbW1lbnQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudCA9ICIiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghY29tbWVudC5lcXVhbHMoaXNvY29tbWVudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoY2gpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGV4cGVjdGVkIGlzbyBjb21tZW50ICIgKyBpc29jb21tZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgaWYoZS5nZXRNZXNzYWdlKCkuaW5kZXhPZigidW5hbWVzLmljdSIpID49IDApeworICAgICAgICAgICAgICAgICAgICAgICAgbnVtRXJyb3JzKys7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGludCB0ZW1wY2hhciA9IGNoOworICAgICAgICAgICAgICAgIGlmICh1cHBlci5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcGNoYXIgPSBJbnRlZ2VyLnBhcnNlSW50KHVwcGVyLCAxNik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGNoKSAhPSB0ZW1wY2hhcikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgVXRpbGl0eS5oZXgoY2gsIDQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkIHVwcGVyY2FzZSBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleCh0ZW1wY2hhciwgNCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGVtcGNoYXIgPSBjaDsKKyAgICAgICAgICAgICAgICBpZiAobG93ZXIubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBjaGFyID0gSW50ZWdlci5wYXJzZUludChsb3dlciwgMTYpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjaCkgIT0gdGVtcGNoYXIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIFV0aWxpdHkuaGV4KGNoLCA0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCBsb3dlcmNhc2UgXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgodGVtcGNoYXIsIDQpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRlbXBjaGFyID0gY2g7CisgICAgICAgICAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICB0ZW1wY2hhciA9IEludGVnZXIucGFyc2VJbnQodGl0bGUsIDE2KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoY2gpICE9IHRlbXBjaGFyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBVdGlsaXR5LmhleChjaCwgNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgZXhwZWN0ZWQgdGl0bGVjYXNlIFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHRlbXBjaGFyLCA0KSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlucHV0LmNsb3NlKCk7CisgICAgICAgICAgICBpZihudW1FcnJvcnMgPiAwKXsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBmaW5kIHVuYW1lcy5pY3UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKworCisgICAgICAgIGlmIChVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jay5vZigweDAwNDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suQkFTSUNfTEFUSU4KKyAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZSgweDQxLCBVUHJvcGVydHkuQkxPQ0spCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jay5CQVNJQ19MQVRJTi5nZXRJRCgpKSB7CisgICAgICAgICAgICBlcnJsbigiVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sub2YoXFx1MDA0MSkgcHJvcGVydHkgZmFpbGVkISAiCisgICAgICAgICAgICAgICAgICAgICsgIkV4cGVjdGVkIDogIgorICAgICAgICAgICAgICAgICAgICArIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLkJBU0lDX0xBVElOLmdldElEKCkgKyAiIGdvdCAiCisgICAgICAgICAgICAgICAgICAgICsgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sub2YoMHgwMDQxKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBzYW5pdHkgY2hlY2sgb24gcmVwZWF0ZWQgcHJvcGVydGllcworICAgICAgICBmb3IgKGNoID0gMHhmZmZlOyBjaCA8PSAweDEwZmZmZjspIHsKKyAgICAgICAgICAgIHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY2gpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSykKKyAgICAgICAgICAgICAgICAhPSAoMSA8PCB0eXBlKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoY2gpCisgICAgICAgICAgICAgICAgICAgICAgKyAiLCBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLKSAhPSAiCisgICAgICAgICAgICAgICAgICAgICAgKyAiZ2V0TWFzayhnZXRUeXBlKCkpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodHlwZSAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRUeXBlKFxcdSIgKyBVdGlsaXR5LmhleChjaCwgNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCAocmV0dXJucyAiCisgICAgICAgICAgICAgICAgICAgICAgICArIFVDaGFyYWN0ZXJDYXRlZ29yeS50b1N0cmluZyhVQ2hhcmFjdGVyLmdldFR5cGUoY2gpKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChjaCAmIDB4ZmZmZikgPT0gMHhmZmZlKSB7CisgICAgICAgICAgICAgICAgKysgY2g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjaCArPSAweGZmZmY7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0IHRoYXQgUFVBIGlzIG5vdCAidW5hc3NpZ25lZCIKKyAgICAgICAgZm9yKGNoID0gMHhlMDAwOyBjaCA8PSAweDEwZmZmZDspIHsKKyAgICAgICAgICAgIHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY2gpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSykKKyAgICAgICAgICAgICAgICAhPSAoMSA8PCB0eXBlKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoY2gpCisgICAgICAgICAgICAgICAgICAgICAgKyAiLCBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLKSAhPSAiCisgICAgICAgICAgICAgICAgICAgICAgKyAiZ2V0TWFzayhnZXRUeXBlKCkpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0eXBlID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVEKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmdldFR5cGUoXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChjaCwgNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIikgPT0gVUNoYXJhY3RlckNhdGVnb3J5LlVOQVNTSUdORUQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgIT0gVUNoYXJhY3RlckNhdGVnb3J5LlBSSVZBVEVfVVNFKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlBVQSBvdmVycmlkZTogVUNoYXJhY3Rlci5nZXRUeXBlKFxcdSIKKyAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KGNoLCA0KSArICIpPSIgKyB0eXBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjaCA9PSAweGY4ZmYpIHsKKyAgICAgICAgICAgICAgICBjaCA9IDB4ZjAwMDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChjaCA9PSAweGZmZmZkKSB7CisgICAgICAgICAgICAgICAgY2ggPSAweDEwMDAwMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICsrIGNoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAqIFRlc3QgZm9yIHRoZSBjaGFyYWN0ZXIgbmFtZXMKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROYW1lcygpCisgICAgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gVUNoYXJhY3Rlck5hbWUuZ2V0SW5zdGFuY2UoKS5nZXRNYXhDaGFyTmFtZUxlbmd0aCgpOworICAgICAgICAgICAgaWYgKGxlbmd0aCA8IDgzKSB7IC8vIFVuaWNvZGUgMy4yIG1heCBjaGFyIG5hbWUgbGVuZ3RoCisgICAgICAgICAgICAgICBlcnJsbigiZ2V0TWF4Q2hhck5hbWVMZW5ndGgoKT0iICsgbGVuZ3RoICsgIiBpcyB0b28gc2hvcnQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vICMjIyBUT0RPIHNhbWUgdGVzdHMgZm9yIG1heCBJU08gY29tbWVudCBsZW5ndGggYXMgZm9yIG1heCBuYW1lIGxlbmd0aAorCisgICAgICAgICAgICBpbnQgY1tdID0gezB4MDA2MSwgICAgICAgICAgICAgICAgLy9MQVRJTiBTTUFMTCBMRVRURVIgQQorICAgICAgICAgICAgICAgICAgICAgICAweDAwMDI4NCwgICAgICAgICAgICAgIC8vTEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBXSVRIIFNUUk9LRSBBTkQgSE9PSworICAgICAgICAgICAgICAgICAgICAgICAweDAwMzQwMSwgICAgICAgICAgICAgIC8vQ0pLIFVOSUZJRUQgSURFT0dSQVBILTM0MDEKKyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDdmZWQsICAgICAgICAgICAgICAvL0NKSyBVTklGSUVEIElERU9HUkFQSC03RkVECisgICAgICAgICAgICAgICAgICAgICAgIDB4MDBhYzAwLCAgICAgICAgICAgICAgLy9IQU5HVUwgU1lMTEFCTEUgR0EKKyAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ3YTMsICAgICAgICAgICAgICAvL0hBTkdVTCBTWUxMQUJMRSBISUgKKyAgICAgICAgICAgICAgICAgICAgICAgMHgwMGQ4MDAsIDB4MDBkYzAwLCAgICAvL0xJTkVBUiBCIFNZTExBQkxFIEIwMDggQQorICAgICAgICAgICAgICAgICAgICAgICAweGZmMDgsICAgICAgICAgICAgICAgIC8vRlVMTFdJRFRIIExFRlQgUEFSRU5USEVTSVMKKyAgICAgICAgICAgICAgICAgICAgICAgMHgwMGZmZTUsICAgICAgICAgICAgICAvL0ZVTExXSURUSCBZRU4gU0lHTgorICAgICAgICAgICAgICAgICAgICAgICAweDAwZmZmZiwgICAgICAgICAgICAgIC8vbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAweDAwMjM0NTYgICAgICAgICAgICAgIC8vQ0pLIFVOSUZJRUQgSURFT0dSQVBILTIzNDU2CisgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICBTdHJpbmcgbmFtZVtdID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTEFUSU4gU01BTEwgTEVUVEVSIEEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1MgSiBXSVRIIFNUUk9LRSBBTkQgSE9PSyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDSksgVU5JRklFRCBJREVPR1JBUEgtMzQwMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDSksgVU5JRklFRCBJREVPR1JBUEgtN0ZFRCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIQU5HVUwgU1lMTEFCTEUgR0EiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSEFOR1VMIFNZTExBQkxFIEhJSCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZVTExXSURUSCBMRUZUIFBBUkVOVEhFU0lTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZVTExXSURUSCBZRU4gU0lHTiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ0pLIFVOSUZJRUQgSURFT0dSQVBILTIzNDU2IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgU3RyaW5nIG9sZG5hbWVbXSA9IHsiIiwgIkxBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogQkFSIEhPT0siLCAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwgIiIsICIiLCAiIiwgIkZVTExXSURUSCBPUEVOSU5HIFBBUkVOVEhFU0lTIiwgIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsICIifTsKKyAgICAgICAgICAgIFN0cmluZyBleHRlbmRlZG5hbWVbXSA9IHsiTEFUSU4gU01BTEwgTEVUVEVSIEEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEogV0lUSCBTVFJPS0UgQU5EIEhPT0siLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNKSyBVTklGSUVEIElERU9HUkFQSC0zNDAxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDSksgVU5JRklFRCBJREVPR1JBUEgtN0ZFRCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSEFOR1VMIFNZTExBQkxFIEdBIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIQU5HVUwgU1lMTEFCTEUgSElIIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8bGVhZCBzdXJyb2dhdGUtRDgwMD4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjx0cmFpbCBzdXJyb2dhdGUtREMwMD4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZVTExXSURUSCBMRUZUIFBBUkVOVEhFU0lTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGVUxMV0lEVEggWUVOIFNJR04iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxub25jaGFyYWN0ZXItRkZGRj4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNKSyBVTklGSUVEIElERU9HUkFQSC0yMzQ1NiJ9OworCisgICAgICAgICAgICBpbnQgc2l6ZSA9IGMubGVuZ3RoOworICAgICAgICAgICAgU3RyaW5nIHN0cjsKKyAgICAgICAgICAgIGludCB1YzsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIG1vZGVybiBVbmljb2RlIGNoYXJhY3RlciBuYW1lCisgICAgICAgICAgICAgICAgc3RyID0gVUNoYXJhY3Rlci5nZXROYW1lKGNbaV0pOworICAgICAgICAgICAgICAgIGlmICgoc3RyID09IG51bGwgJiYgbmFtZVtpXS5sZW5ndGgoKSA+IDApIHx8CisgICAgICAgICAgICAgICAgICAgIChzdHIgIT0gbnVsbCAmJiAhc3RyLmVxdWFscyhuYW1lW2ldKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGNbaV0pICsgIiBleHBlY3RlZCBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVbaV0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyAxLjAgVW5pY29kZSBjaGFyYWN0ZXIgbmFtZQorICAgICAgICAgICAgICAgIHN0ciA9IFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMChjW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAoKHN0ciA9PSBudWxsICYmIG9sZG5hbWVbaV0ubGVuZ3RoKCkgPiAwKSB8fAorICAgICAgICAgICAgICAgICAgICAoc3RyICE9IG51bGwgJiYgIXN0ci5lcXVhbHMob2xkbmFtZVtpXSkpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChjW2ldKSArICIgZXhwZWN0ZWQgMS4wIG5hbWUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkbmFtZVtpXSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGV4dGVuZGVkIGNoYXJhY3RlciBuYW1lCisgICAgICAgICAgICAgICAgc3RyID0gVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoY1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKHN0ciA9PSBudWxsIHx8ICFzdHIuZXF1YWxzKGV4dGVuZGVkbmFtZVtpXSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGNbaV0pICsgIiBleHBlY3RlZCBleHRlbmRlZCBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuZGVkbmFtZVtpXSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHJldHJpZXZpbmcgdW5pY29kZSBjaGFyYWN0ZXIgZnJvbSBtb2Rlcm4gbmFtZQorICAgICAgICAgICAgICAgIHVjID0gVUNoYXJhY3Rlci5nZXRDaGFyRnJvbU5hbWUobmFtZVtpXSk7CisgICAgICAgICAgICAgICAgaWYgKHVjICE9IGNbaV0gJiYgbmFtZVtpXS5sZW5ndGgoKSAhPSAwKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgIiArIG5hbWVbaV0gKyAiIGV4cGVjdGVkIGNoYXJhY3RlciBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGV4KGNbaV0pKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy9yZXRyaWV2aW5nIHVuaWNvZGUgY2hhcmFjdGVyIGZyb20gMS4wIG5hbWUKKyAgICAgICAgICAgICAgICB1YyA9IFVDaGFyYWN0ZXIuZ2V0Q2hhckZyb21OYW1lMV8wKG9sZG5hbWVbaV0pOworICAgICAgICAgICAgICAgIGlmICh1YyAhPSBjW2ldICYmIG9sZG5hbWVbaV0ubGVuZ3RoKCkgIT0gMCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMICIgKyBvbGRuYW1lW2ldICsgIiBleHBlY3RlZCAxLjAgY2hhcmFjdGVyIFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBoZXgoY1tpXSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvL3JldHJpZXZpbmcgdW5pY29kZSBjaGFyYWN0ZXIgZnJvbSAxLjAgbmFtZQorICAgICAgICAgICAgICAgIHVjID0gVUNoYXJhY3Rlci5nZXRDaGFyRnJvbUV4dGVuZGVkTmFtZShleHRlbmRlZG5hbWVbaV0pOworICAgICAgICAgICAgICAgIGlmICh1YyAhPSBjW2ldICYmIGkgIT0gMCAmJiAoaSA9PSAxIHx8IGkgPT0gNikpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCAiICsgZXh0ZW5kZWRuYW1lW2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBleHBlY3RlZCBleHRlbmRlZCBjaGFyYWN0ZXIgXFx1IiArIGhleChjW2ldKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gdGVzdCBnZXROYW1lIHdvcmtzIHdpdGggbWl4ZWQtY2FzZSBuYW1lcyAobmV3IGluIDIuMCkKKyAgICAgICAgICAgIGlmICgweDYxICE9IFVDaGFyYWN0ZXIuZ2V0Q2hhckZyb21OYW1lKCJMQVRpbiBzbUFMbCBsZXRURVIgQSIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICdMQVRpbiBzbUFMbCBsZXRURVIgQScgc2hvdWxkIHJlc3VsdCBpbiBjaGFyYWN0ZXIgIgorICAgICAgICAgICAgICAgICAgICAgICsgIlUrMDA2MSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZ2V0SW5jbHVzaW9uKCkgPj0gNSkgeworICAgICAgICAgICAgICAgIC8vIGV4dHJhIHRlc3RpbmcgZGlmZmVyZW50IGZyb20gaWN1CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFOyBpIDwgVUNoYXJhY3Rlci5NQVhfVkFMVUU7IGkgKyspCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBzdHIgPSBVQ2hhcmFjdGVyLmdldE5hbWUoaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHIgIT0gbnVsbCAmJiBVQ2hhcmFjdGVyLmdldENoYXJGcm9tTmFtZShzdHIpICE9IGkpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoaSkgKyAiICIgKyBzdHIgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiByZXRyaWV2YWwgb2YgbmFtZSBhbmQgdmljZSB2ZXJzYSIgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBUZXN0IGdldENoYXJOYW1lQ2hhcmFjdGVycworICAgICAgICAgICAgaWYgKGdldEluY2x1c2lvbigpID49IDEwKSB7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBtYXBbXSA9IG5ldyBib29sZWFuWzI1Nl07CisKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KDEsIDApOyAvLyBlbXB0eSBzZXQKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IGR1bWIgPSBuZXcgVW5pY29kZVNldCgxLCAwKTsgLy8gZW1wdHkgc2V0CisKKyAgICAgICAgICAgICAgICAvLyB1cHJ2X2dldENoYXJOYW1lQ2hhcmFjdGVycygpIHdpbGwgbGlrZWx5IHJldHVybiBtb3JlIGxvd2VyY2FzZQorICAgICAgICAgICAgICAgIC8vIGxldHRlcnMgdGhhbiBhY3R1YWwgY2hhcmFjdGVyIG5hbWVzIGNvbnRhaW4gYmVjYXVzZQorICAgICAgICAgICAgICAgIC8vIGl0IGluY2x1ZGVzIGFsbCB0aGUgY2hhcmFjdGVycyBpbiBsb3dlcmNhc2VkIG5hbWVzIG9mCisgICAgICAgICAgICAgICAgLy8gZ2VuZXJhbCBjYXRlZ29yaWVzLCBmb3IgdGhlIGZ1bGwgcG9zc2libGUgc2V0IG9mIGV4dGVuZGVkIG5hbWVzLgorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lLmdldEluc3RhbmNlKCkuZ2V0Q2hhck5hbWVDaGFyYWN0ZXJzKHNldCk7CisKKyAgICAgICAgICAgICAgICAvLyBidWlsZCBzZXQgdGhlIGR1bWIgKGJ1dCBzdXJlLWZpcmUpIHdheQorICAgICAgICAgICAgICAgIEFycmF5cy5maWxsKG1hcCwgZmFsc2UpOworCisgICAgICAgICAgICAgICAgaW50IG1heExlbmd0aCA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY3AgPSAwOyBjcCA8IDB4MTEwMDAwOyArKyBjcCkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbiA9IFVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lKGNwKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxlbiA9IG4ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPiBtYXhMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heExlbmd0aCA9IGxlbjsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArKyBpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNoID0gbi5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1hcFtjaCAmIDB4ZmZdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVtYi5hZGQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcFtjaCAmIDB4ZmZdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGxlbmd0aCA9IFVDaGFyYWN0ZXJOYW1lLmdldEluc3RhbmNlKCkuZ2V0TWF4Q2hhck5hbWVMZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBpZiAobGVuZ3RoICE9IG1heExlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZ2V0TWF4Q2hhck5hbWVMZW5ndGgoKT0iICsgbGVuZ3RoCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBkaWZmZXJzIGZyb20gdGhlIG1heGltdW0gbGVuZ3RoICIgKyBtYXhMZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIG9mIGFsbCBleHRlbmRlZCBuYW1lcyIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGNvbXBhcmUgdGhlIHNldHMuICBXaGVyZSBpcyBteSB1c2V0X2VxdWFscz8hIQorICAgICAgICAgICAgICAgIGJvb2xlYW4gb2sgPSB0cnVlOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjU2OyArKyBpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzZXQuY29udGFpbnMoaSkgIT0gZHVtYi5jb250YWlucyhpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKDB4NjEgPD0gaSAmJiBpIDw9IDB4N2EgLy8gYS16CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc2V0LmNvbnRhaW5zKGkpICYmICFkdW1iLmNvbnRhaW5zKGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWdub3JlIGxvd2VyY2FzZSBhLXogdGhhdCBhcmUgaW4gc2V0IGJ1dCBub3QgaW4gZHVtYgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9rID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGF0dGVybjEgPSBzZXQudG9QYXR0ZXJuKHRydWUpOworICAgICAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuMiA9IGR1bWIudG9QYXR0ZXJuKHRydWUpOworCisgICAgICAgICAgICAgICAgaWYgKCFvaykgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0Q2hhck5hbWVDaGFyYWN0ZXJzKCkgcmV0dXJuZWQgIiArIHBhdHRlcm4xCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCAiICsgcGF0dGVybjIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiICh0b28gbWFueSBsb3dlcmNhc2UgYS16IGFyZSBvaykiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6IGdldENoYXJOYW1lQ2hhcmFjdGVycygpIHJldHVybmVkICIgKyBwYXR0ZXJuMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaW1wcm92ZSBjb2RlIGNvdmVyYWdlCisgICAgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICJMQVRJTiBTTUFMTCBMRVRURVIgQXxMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVTUyBKIFdJVEggU1RST0tFIEFORCBIT09LfCIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDSksgVU5JRklFRCBJREVPR1JBUEgtMzQwMXxDSksgVU5JRklFRCBJREVPR1JBUEgtN0ZFRHxIQU5HVUwgU1lMTEFCTEUgR0F8IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhBTkdVTCBTWUxMQUJMRSBISUh8TElORUFSIEIgU1lMTEFCTEUgQjAwOCBBfEZVTExXSURUSCBMRUZUIFBBUkVOVEhFU0lTfCIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGVUxMV0lEVEggWUVOIFNJR058IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm51bGx8IisgLy8gZ2V0TmFtZSByZXR1cm5zIG51bGwgYmVjYXVzZSAweEZGRkYgZG9lcyBub3QgaGF2ZSBhIG5hbWUsIGJ1dCBoYXMgYW4gZXh0ZW5kZWQgbmFtZSEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNKSyBVTklGSUVEIElERU9HUkFQSC0yMzQ1NiI7CisgICAgICAgICAgIFN0cmluZyBzZXBhcmF0b3I9ICJ8IjsKKyAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IFV0aWxpdHkudmFsdWVPZihjKTsKKyAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IFVDaGFyYWN0ZXIuZ2V0TmFtZShzb3VyY2UsIHNlcGFyYXRvcik7CisgICAgICAgICAgIGlmKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICBlcnJsbigiVUNoYXJhY3Rlci5nZXROYW1lIGRpZCBub3QgcmV0dXJuIHRoZSBleHBlY3RlZCByZXN1bHQuXG5cdCBFeHBlY3RlZDogIisgZXhwZWN0ZWQrIlxuXHQgR290OiAiKyByZXN1bHQpOworICAgICAgICAgICB9CisKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGlmKGUuZ2V0TWVzc2FnZSgpLmluZGV4T2YoInVuYW1lcy5pY3UiKSA+PSAwKXsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBmaW5kIHVuYW1lcy5pY3UiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworCisgICAgLyoqCisgICAgKiBUZXN0aW5nIG5hbWUgaXRlcmF0aW9uCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmFtZUl0ZXJhdGlvbigpdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldEV4dGVuZGVkTmFtZUl0ZXJhdG9yKCk7CisgICAgICAgICAgICBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCA9IG5ldyBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgICAgIFZhbHVlSXRlcmF0b3IuRWxlbWVudCBvbGQgICAgID0gbmV3IFZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAgICAgICAgLy8gdGVzdGluZyBzdWJyYW5nZQorICAgICAgICAgICAgaXRlcmF0b3Iuc2V0UmFuZ2UoLTEwLCAtNSk7CisgICAgICAgICAgICBpZiAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsLCBleHBlY3RlZCBpdGVyYXRvciB0byByZXR1cm4gZmFsc2Ugd2hlbiByYW5nZSBpcyBzZXQgb3V0c2lkZSB0aGUgbWVhbmluZ2Z1bCByYW5nZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaXRlcmF0b3Iuc2V0UmFuZ2UoMHgxMTAwMDAsIDB4MTExMTExKTsKKyAgICAgICAgICAgIGlmIChpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwsIGV4cGVjdGVkIGl0ZXJhdG9yIHRvIHJldHVybiBmYWxzZSB3aGVuIHJhbmdlIGlzIHNldCBvdXRzaWRlIHRoZSBtZWFuaW5nZnVsIHJhbmdlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGl0ZXJhdG9yLnNldFJhbmdlKDUwLCAxMCk7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwsIGV4cGVjdGVkIGV4Y2VwdGlvbiB3aGVuIGVuY291bnRlcmVkIGludmFsaWQgcmFuZ2UiKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGl0ZXJhdG9yLnNldFJhbmdlKC0xMCwgMTApOworICAgICAgICAgICAgaWYgKCFpdGVyYXRvci5uZXh0KGVsZW1lbnQpIHx8IGVsZW1lbnQuaW50ZWdlciAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwsIGV4cGVjdGVkIGl0ZXJhdG9yIHRvIHJldHVybiAwIHdoZW4gcmFuZ2Ugc3RhcnQgbGltaXQgaXMgc2V0IG91dHNpZGUgdGhlIG1lYW5pbmdmdWwgcmFuZ2UiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaXRlcmF0b3Iuc2V0UmFuZ2UoMHgxMEZGRkUsIDB4MjAwMDAwKTsKKyAgICAgICAgICAgIGludCBsYXN0ID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICAgICAgICAgICAgbGFzdCA9IGVsZW1lbnQuaW50ZWdlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsYXN0ICE9IDB4MTBGRkZGKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWwsIGV4cGVjdGVkIGl0ZXJhdG9yIHRvIHJldHVybiAweDEwRkZGRiB3aGVuIHJhbmdlIGVuZCBsaW1pdCBpcyBzZXQgb3V0c2lkZSB0aGUgbWVhbmluZ2Z1bCByYW5nZSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0TmFtZUl0ZXJhdG9yKCk7CisgICAgICAgICAgICBpdGVyYXRvci5zZXRSYW5nZSgweEYsIDB4NDUpOworICAgICAgICAgICAgd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5pbnRlZ2VyIDw9IG9sZC5pbnRlZ2VyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIG5leHQgcmV0dXJuZWQgYSBsZXNzIGNvZGVwb2ludCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArICIgdGhhbiBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcob2xkLmludGVnZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5nZXROYW1lKGVsZW1lbnQuaW50ZWdlcikuZXF1YWxzKGVsZW1lbnQudmFsdWUpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgbmV4dCBjb2RlcG9pbnQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuaW50ZWdlcikgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBkb2VzIG5vdCBoYXZlIHRoZSBleHBlY3RlZCBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXROYW1lKGVsZW1lbnQuaW50ZWdlcikgKworICAgICAgICAgICAgICAgICAgICAgICAgIiBpbnN0ZWFkIGhhdmUgdGhlIG5hbWUgIiArIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvbGQuaW50ZWdlciA9IGVsZW1lbnQuaW50ZWdlcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaXRlcmF0b3IucmVzZXQoKTsKKyAgICAgICAgICAgIGl0ZXJhdG9yLm5leHQoZWxlbWVudCk7CisgICAgICAgICAgICBpZiAoZWxlbWVudC5pbnRlZ2VyICE9IDB4MjApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCByZXNldCBpbiBpdGVyYXRvciIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpdGVyYXRvci5zZXRSYW5nZSgwLCAweDExMDAwMCk7CisgICAgICAgICAgICBvbGQuaW50ZWdlciA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmludGVnZXIgIT0gMCAmJiBlbGVtZW50LmludGVnZXIgPD0gb2xkLmludGVnZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgbmV4dCByZXR1cm5lZCBhIGxlc3MgY29kZXBvaW50IFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsgIiB0aGFuIFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhvbGQuaW50ZWdlcikpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmdldE5hbWUoZWxlbWVudC5pbnRlZ2VyKS5lcXVhbHMoZWxlbWVudC52YWx1ZSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBuZXh0IGNvZGVwb2ludCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuaW50ZWdlcikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZG9lcyBub3QgaGF2ZSB0aGUgZXhwZWN0ZWQgbmFtZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE5hbWUoZWxlbWVudC5pbnRlZ2VyKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpbnN0ZWFkIGhhdmUgdGhlIG5hbWUgIiArIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gb2xkLmludGVnZXIgKyAxOyBpIDwgZWxlbWVudC5pbnRlZ2VyOyBpICsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldE5hbWUoaSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgYmV0d2VlbiBjb2RlcG9pbnRzIGFyZSBub3QgbnVsbCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhvbGQuaW50ZWdlcikgKyAiIGFuZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsgIiBoYXMgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoaSkgKyAiIHdpdGggYSBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE5hbWUoaSkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2xkLmludGVnZXIgPSBlbGVtZW50LmludGVnZXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGl0ZXJhdG9yID0gVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWVJdGVyYXRvcigpOworICAgICAgICAgICAgb2xkLmludGVnZXIgPSAwOworICAgICAgICAgICAgd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5pbnRlZ2VyICE9IDAgJiYgZWxlbWVudC5pbnRlZ2VyICE9IG9sZC5pbnRlZ2VyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIG5leHQgcmV0dXJuZWQgYSBjb2RlcG9pbnQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGRpZmZlcmVudCBmcm9tIFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcob2xkLmludGVnZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoZWxlbWVudC5pbnRlZ2VyKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIG5leHQgY29kZXBvaW50IFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmludGVnZXIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgbmFtZSBzaG91bGQgYmUgIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBVQ2hhcmFjdGVyLmdldEV4dGVuZGVkTmFtZShlbGVtZW50LmludGVnZXIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgaW5zdGVhZCBvZiAiICsgKFN0cmluZyllbGVtZW50LnZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9sZC5pbnRlZ2VyKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMEl0ZXJhdG9yKCk7CisgICAgICAgICAgICBvbGQuaW50ZWdlciA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArICIgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuaW50ZWdlciAhPSAwICYmIGVsZW1lbnQuaW50ZWdlciA8PSBvbGQuaW50ZWdlcikgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBuZXh0IHJldHVybmVkIGEgbGVzcyBjb2RlcG9pbnQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuaW50ZWdlcikgKyAiIHRoYW4gXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9sZC5pbnRlZ2VyKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIWVsZW1lbnQudmFsdWUuZXF1YWxzKFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuaW50ZWdlcikpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIG5leHQgY29kZXBvaW50IFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBuYW1lIGNhbm5vdCBiZSBudWxsIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gb2xkLmludGVnZXIgKyAxOyBpIDwgZWxlbWVudC5pbnRlZ2VyOyBpICsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldE5hbWUxXzAoaSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgYmV0d2VlbiBjb2RlcG9pbnRzIGFyZSBub3QgbnVsbCBcXHUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9sZC5pbnRlZ2VyKSArICIgYW5kICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5pbnRlZ2VyKSArICIgaGFzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoaSkgKyAiIHdpdGggYSBuYW1lICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0TmFtZTFfMChpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvbGQuaW50ZWdlciA9IGVsZW1lbnQuaW50ZWdlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAvLyAhISEgd291bGRuJ3QgcHJlZmxpZ2h0aW5nIGJlIHNpbXBsZXI/ICBUaGlzIGxvb2tzIGxpa2UKKyAgICAgICAgICAgIC8vIGl0IGlzIGVmZmVjdGl2ZWx5IGJlIGRvaW5nIHRoYXQuICBJdCBzZWVtcyB0aGF0IGZvciBldmVyeQorICAgICAgICAgICAgLy8gdHJ1ZSBlcnJvciB0aGUgY29kZSB3aWxsIGNhbGwgZXJybG4sIHdoaWNoIHdpbGwgdGhyb3cgdGhlIGVycm9yLCB3aGljaAorICAgICAgICAgICAgLy8gdGhpcyB3aWxsIGNhdGNoLCB3aGljaCB0aGlzIHdpbGwgdGhlbiByZXRocm93IHRoZSBlcnJvci4gIEp1c3Qgc2VlbXMKKyAgICAgICAgICAgIC8vIGN1bWJlcnNvbWUuCisgICAgICAgICAgICBpZihlLmdldE1lc3NhZ2UoKS5pbmRleE9mKCJ1bmFtZXMuaWN1IikgPj0gMCl7CisgICAgICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgZmluZCB1bmFtZXMuaWN1Iik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogVGVzdGluZyB0aGUgZm9yIGlsbGVnYWwgY2hhcmFjdGVycworICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdElzTGVnYWwoKQorICAgIHsKKyAgICAgICAgaW50IGlsbGVnYWxbXSA9IHsweEZGRkUsIDB4MDBGRkZGLCAweDAwNUZGRkUsIDB4MDA1RkZGRiwgMHgwMDEwRkZGRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTBGRkZGLCAweDExMDAwMCwgMHgwMEZERDAsIDB4MDBGRERGLCAweDAwRkRFMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwRkRFRiwgMHhEODAwLCAweERDMDAsIC0xfTsKKyAgICAgICAgaW50IGxlZ2FsW10gPSB7MHg2MSwgMHgwMEZGRkQsIDB4MDAxMDAwMCwgMHgwMDVGRkZELCAweDAwNjAwMDAsCisgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMEZGRkQsIDB4RkRDRiwgMHgwMEZERjB9OworICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgaWxsZWdhbC5sZW5ndGg7IGNvdW50ICsrKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xlZ2FsKGlsbGVnYWxbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoaWxsZWdhbFtjb3VudF0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgaXMgbm90IGEgbGVnYWwgY2hhcmFjdGVyIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgbGVnYWwubGVuZ3RoOyBjb3VudCArKykgeworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzTGVnYWwobGVnYWxbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgobGVnYWxbY291bnRdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGlzIGEgbGVnYWwgY2hhcmFjdGVyIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgaWxsZWdhbFN0ciA9ICJUaGlzIGlzIGFuIGlsbGVnYWwgc3RyaW5nICI7CisgICAgICAgIFN0cmluZyBsZWdhbFN0ciA9ICJUaGlzIGlzIGEgbGVnYWwgc3RyaW5nICI7CisKKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IGlsbGVnYWwubGVuZ3RoOyBjb3VudCArKykgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0ciA9IG5ldyBTdHJpbmdCdWZmZXIoaWxsZWdhbFN0cik7CisgICAgICAgICAgICBpZiAoaWxsZWdhbFtjb3VudF0gPCAweDEwMDAwKSB7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgoY2hhcilpbGxlZ2FsW2NvdW50XSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGlsbGVnYWxbY291bnRdKTsKKyAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoaWxsZWdhbFtjb3VudF0pOworICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQobGVhZCk7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCh0cmFpbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xlZ2FsKHN0ci50b1N0cmluZygpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMICIgKyBoZXgoc3RyLnRvU3RyaW5nKCkpICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGlzIG5vdCBhIGxlZ2FsIHN0cmluZyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IGxlZ2FsLmxlbmd0aDsgY291bnQgKyspIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzdHIgPSBuZXcgU3RyaW5nQnVmZmVyKGxlZ2FsU3RyKTsKKyAgICAgICAgICAgIGlmIChsZWdhbFtjb3VudF0gPCAweDEwMDAwKSB7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgoY2hhcilsZWdhbFtjb3VudF0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY2hhciBsZWFkID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShsZWdhbFtjb3VudF0pOworICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShsZWdhbFtjb3VudF0pOworICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQobGVhZCk7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCh0cmFpbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNMZWdhbChzdHIudG9TdHJpbmcoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCAiICsgaGV4KHN0ci50b1N0cmluZygpKSArICIgaXMgYSBsZWdhbCBzdHJpbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgZ2V0Q29kZVBvaW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvZGVQb2ludCgpCisgICAgeworICAgICAgICBpbnQgY2ggPSAweDEwMDAwOworICAgICAgICBmb3IgKGNoYXIgaSA9IDB4RDgwMDsgaSA8IDB4REMwMDsgaSArKykgeworICAgICAgICAgICAgZm9yIChjaGFyIGogPSAweERDMDA7IGogPD0gMHhERkZGOyBqICsrKSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0Q29kZVBvaW50KGksIGopICE9IGNoKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIGNvZGVwb2ludCBmb3Igc3Vycm9nYXRlICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiY2hhcmFjdGVycyBcXHUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhpKSArICIgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoaikpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjaCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoKGNoYXIpMHhEN2ZmLCAoY2hhcikweERDMDApOworICAgICAgICAgICAgZXJybG4oIkludmFsaWQgc3Vycm9nYXRlIGNoYXJhY3RlcnMgc2hvdWxkIG5vdCBmb3JtIGEgIiArCisgICAgICAgICAgICAgICAgICAic3VwcGxlbWVudGFyeSIpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChjaGFyIGkgPSAwOyBpIDwgMHhGRkZGOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpID09IDB4RkZGRSB8fAorICAgICAgICAgICAgICAgIChpID49IDB4RDgwMCAmJiBpIDw9IDB4REZGRikgfHwKKyAgICAgICAgICAgICAgICAoaSA+PSAweEZERDAgJiYgaSA8PSAweEZERUYpKSB7CisgICAgICAgICAgICAgICAgLy8gbm90IGEgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoaSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJOb3QgYSBjaGFyYWN0ZXIgaXMgbm90IGEgdmFsaWQgY29kZXBvaW50Iik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRDb2RlUG9pbnQoaSkgIT0gaSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiQSB2YWxpZCBjb2RlcG9pbnQgc2hvdWxkIHJldHVybiBpdHNlbGYiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIFRoaXMgbWV0aG9kIGlzIGFsaXR0bGUgZGlmZmVyZW50IGZyb20gdGhlIHR5cGUgdGVzdCBpbiBpY3U0Yy4KKyAgICAqIEJ1dCBjb21iaW5lZCB3aXRoIHRlc3RVbmljb2RlRGF0YSwgdGhleSBiYXNpY2FsbHkgZG8gdGhlIHNhbWUgdGhpbmcuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXRlcmF0aW9uKCkKKyAgICB7CisgICAgICAgIGludCBsaW1pdCAgICAgPSAwOworICAgICAgICBpbnQgcHJldnR5cGUgID0gLTE7CisgICAgICAgIGludCBzaG91bGRCZURpcjsKKyAgICAgICAgaW50IHRlc3RbXVtdPXt7MHg0MSwgVUNoYXJhY3RlckNhdGVnb3J5LlVQUEVSQ0FTRV9MRVRURVJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgezB4MzA4LCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTk9OX1NQQUNJTkdfTUFSS30sCisgICAgICAgICAgICAgICAgICAgICAgICB7MHhmZmZlLCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuR0VORVJBTF9PVEhFUl9UWVBFU30sCisgICAgICAgICAgICAgICAgICAgICAgICB7MHhlMDA0MSwgVUNoYXJhY3RlckNhdGVnb3J5LkZPUk1BVH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7MHhlZmZmZiwgVUNoYXJhY3RlckNhdGVnb3J5LlVOQVNTSUdORUR9fTsKKworICAgICAgICAvLyBkZWZhdWx0IEJpZGkgY2xhc3NlcyBmb3IgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAgICBpbnQgZGVmYXVsdEJpZGlbXVtdPXt7IDB4MDU5MCwgVUNoYXJhY3RlckRpcmVjdGlvbi5MRUZUX1RPX1JJR0hUIH0sCisgICAgICAgICAgICB7IDB4MDYwMCwgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIH0sCisgICAgICAgICAgICB7IDB4MDdDMCwgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyB9LAorICAgICAgICAgICAgeyAweDA5MDAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweEZCMUQsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVCB9LAorICAgICAgICAgICAgeyAweEZCNTAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweEZFMDAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMgfSwKKyAgICAgICAgICAgIHsgMHhGRTcwLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLkxFRlRfVE9fUklHSFQgfSwKKyAgICAgICAgICAgIHsgMHhGRjAwLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDIH0sCisgICAgICAgICAgICB7IDB4MTA4MDAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVCB9LAorICAgICAgICAgICAgeyAweDExMDAwLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwKKyAgICAgICAgICAgIHsgMHgxMTAwMDAsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVCB9fTsKKworICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldFR5cGVJdGVyYXRvcigpOworICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCByZXN1bHQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXJhdG9yLm5leHQocmVzdWx0KSkgeworICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGFydCAhPSBsaW1pdCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJVQ2hhcmFjdGVySXRlcmF0aW9uIGZhaWxlZDogUmFuZ2VzIG5vdCBjb250aW51b3VzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgIjB4IiArIEludGVnZXIudG9IZXhTdHJpbmcocmVzdWx0LnN0YXJ0KSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxpbWl0ID0gcmVzdWx0LmxpbWl0OworICAgICAgICAgICAgaWYgKHJlc3VsdC52YWx1ZSA9PSBwcmV2dHlwZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUeXBlIG9mIHRoZSBuZXh0IHNldCBvZiBlbnVtZXJhdGlvbiBzaG91bGQgYmUgZGlmZmVyZW50Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmV2dHlwZSA9IHJlc3VsdC52YWx1ZTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IHJlc3VsdC5zdGFydDsgaSA8IGxpbWl0OyBpICsrKSB7CisgICAgICAgICAgICAgICAgaW50IHRlbXB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKGkpOworICAgICAgICAgICAgICAgIGlmICh0ZW1wdHlwZSAhPSByZXN1bHQudmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVDaGFyYWN0ZXJJdGVyYXRpb24gZmFpbGVkOiBDb2RlcG9pbnQgXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhpKSArICIgc2hvdWxkIGJlIG9mIHR5cGUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcHR5cGUgKyAiIG5vdCAiICsgcmVzdWx0LnZhbHVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdC5sZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXJ0IDw9IHRlc3RbaV1bMF0gJiYgdGVzdFtpXVswXSA8IHJlc3VsdC5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlICE9IHRlc3RbaV1bMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogZ2V0VHlwZXMoKSBoYXMgcmFuZ2UgWyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhyZXN1bHQuc3RhcnQpICsgIiwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHJlc3VsdC5saW1pdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIl0gd2l0aCB0eXBlICIgKyByZXN1bHQudmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBpbnN0ZWFkIG9mIFsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodGVzdFtpXVswXSkgKyAiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodGVzdFtpXVsxXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBMaW5lQnJlYWsudHh0IHNwZWNpZmllczoKKyAgICAgICAgICAgIC8vICAgIyAgLSBBc3NpZ25lZCBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBsaXN0ZWQgZXhwbGljaXRseSBhcmUgZ2l2ZW4gdGhlIHZhbHVlCisgICAgICAgICAgICAvLyAgICMgICAgIkFMIi4KKyAgICAgICAgICAgIC8vICAgIyAgLSBVbmFzc2lnbmVkIGNoYXJhY3RlcnMgYXJlIGdpdmVuIHRoZSB2YWx1ZSAiWFgiLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIFBVQSBjaGFyYWN0ZXJzIGFyZSBsaXN0ZWQgZXhwbGljaXRseSB3aXRoICJYWCIuCisgICAgICAgICAgICAvLyBWZXJpZnkgdGhhdCBubyBhc3NpZ25lZCBjaGFyYWN0ZXIgaGFzICJYWCIuCisgICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVECisgICAgICAgICAgICAgICAgJiYgcmVzdWx0LnZhbHVlICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5QUklWQVRFX1VTRSkgeworICAgICAgICAgICAgICAgIGludCBjID0gcmVzdWx0LnN0YXJ0OworICAgICAgICAgICAgICAgIHdoaWxlIChjIDwgcmVzdWx0LmxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgwID09IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkxJTkVfQlJFQUspKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiZXJyb3IgVVByb3BlcnR5LkxJTkVfQlJFQUsoYXNzaWduZWQgXFx1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChjLCA0KSArICIpPVhYIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKysgYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBWZXJpZnkgZGVmYXVsdCBCaWRpIGNsYXNzZXMuCisgICAgICAgICAgICAgKiBGb3IgcmVjZW50IFVuaWNvZGUgdmVyc2lvbnMsIHNlZSBVQ0QuaHRtbC4KKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBGb3Igb2xkZXIgVW5pY29kZSB2ZXJzaW9uczoKKyAgICAgICAgICAgICAqIFNlZSB0YWJsZSAzLTcgIkJpZGlyZWN0aW9uYWwgQ2hhcmFjdGVyIFR5cGVzIiBpbiBVQVggIzkuCisgICAgICAgICAgICAgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHI5LworICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFNlZSBhbHNvIERlcml2ZWRCaWRpQ2xhc3MudHh0IGZvciBDbiBjb2RlIHBvaW50cyEKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiBVbmljb2RlIDQuMC4xL1B1YmxpYyBSZXZpZXcgSXNzdWUgIzI4IChodHRwOi8vd3d3LnVuaWNvZGUub3JnL3Jldmlldy9yZXNvbHZlZC1wcmkuaHRtbCkKKyAgICAgICAgICAgICAqIGNoYW5nZWQgc29tZSBkZWZhdWx0IHZhbHVlcy4KKyAgICAgICAgICAgICAqIEluIHBhcnRpY3VsYXIsIG5vbi1jaGFyYWN0ZXJzIGFuZCB1bmFzc2lnbmVkIERlZmF1bHQgSWdub3JhYmxlIENvZGUgUG9pbnRzCisgICAgICAgICAgICAgKiBjaGFuZ2UgZnJvbSBMIHRvIEJOLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFVDRC5odG1sIHZlcnNpb24gNC4wLjEgZG9lcyBub3QgeWV0IHJlZmxlY3QgdGhlc2UgY2hhbmdlcy4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKHJlc3VsdC52YWx1ZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRAorICAgICAgICAgICAgICAgIHx8IHJlc3VsdC52YWx1ZSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUFJJVkFURV9VU0UpIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IHJlc3VsdC5zdGFydDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlZmF1bHRCaWRpLmxlbmd0aCAmJiBjIDwgcmVzdWx0LmxpbWl0OworICAgICAgICAgICAgICAgICAgICAgKysgaSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYyA8IGRlZmF1bHRCaWRpW2ldWzBdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoYyA8IHJlc3VsdC5saW1pdCAmJiBjIDwgZGVmYXVsdEJpZGlbaV1bMF0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIGNoYW5nZSB0byBwdWJsaWMgVUNoYXJhY3Rlci5pc05vbkNoYXJhY3RlcihjKSBvbmNlIGl0J3MgYXZhaWxhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyVXRpbGl0eS5pc05vbkNoYXJhY3RlcihjKSB8fCBVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KGMsIFVQcm9wZXJ0eS5ERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5UKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRCZURpcj1VQ2hhcmFjdGVyLkJPVU5EQVJZX05FVVRSQUw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVEaXI9ZGVmYXVsdEJpZGlbaV1bMV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0RGlyZWN0aW9uKGMpICE9IHNob3VsZEJlRGlyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQcm9wZXJ0eS5CSURJX0NMQVNTKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBzaG91bGRCZURpcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGdldERpcmVjdGlvbih1bmFzc2lnbmVkL1BVQSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhjKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIpIHNob3VsZCBiZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2hvdWxkQmVEaXIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArKyBjOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3IucmVzZXQoKTsKKyAgICAgICAgaWYgKGl0ZXJhdG9yLm5leHQocmVzdWx0KSA9PSBmYWxzZSB8fCByZXN1bHQuc3RhcnQgIT0gMCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJyZXN1bHQgIiArIHJlc3VsdC5zdGFydCk7CisgICAgICAgICAgICBlcnJsbigiVUNoYXJhY3Rlckl0ZXJhdGlvbiByZXNldCgpIGZhaWxlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyBnZXRBZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0QWdlKCkKKyAgICB7CisgICAgICAgIGludCBhZ2VzW10gPSB7MHg0MSwgICAgMSwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAweGZmZmYsICAxLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgIDB4MjBhYiwgIDIsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgMHgyZmZmZSwgMiwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAweDIwYWMsICAyLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgIDB4ZmIxZCwgIDMsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgMHgzZjQsICAgMywgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAweDEwMzAwLCAzLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgIDB4MjIwLCAgIDMsIDIsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgMHhmZjYwLCAgMywgMiwgMCwgMH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYWdlcy5sZW5ndGg7IGkgKz0gNSkgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gYWdlID0gVUNoYXJhY3Rlci5nZXRBZ2UoYWdlc1tpXSk7CisgICAgICAgICAgICBpZiAoYWdlICE9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKGFnZXNbaSArIDFdLCBhZ2VzW2kgKyAyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlc1tpICsgM10sIGFnZXNbaSArIDRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogZ2V0QWdlKFxcdSIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGFnZXNbaV0pICsKKyAgICAgICAgICAgICAgICAgICAgICAiKSA9PSAiICsgYWdlLnRvU3RyaW5nKCkgKyAiIGluc3RlYWQgb2YgIiArCisgICAgICAgICAgICAgICAgICAgICAgYWdlc1tpICsgMV0gKyAiLiIgKyBhZ2VzW2kgKyAyXSArICIuIiArIGFnZXNbaSArIDNdICsKKyAgICAgICAgICAgICAgICAgICAgICAiLiIgKyBhZ2VzW2kgKyA0XSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGJpbmFyeSBub24gY29yZSBwcm9wZXJ0aWVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFkZGl0aW9uYWxQcm9wZXJ0aWVzKCkKKyAgICB7CisgICAgICAgIC8vIHRlc3QgZGF0YSBmb3IgaGFzQmluYXJ5UHJvcGVydHkoKQorICAgICAgICBpbnQgcHJvcHNbXVtdID0geyAvLyBjb2RlIHBvaW50LCBwcm9wZXJ0eQorICAgICAgICAgICAgeyAweDA2MjcsIFVQcm9wZXJ0eS5BTFBIQUJFVElDLCAxIH0sCisgICAgICAgICAgICB7IDB4MTAzNGEsIFVQcm9wZXJ0eS5BTFBIQUJFVElDLCAxIH0sCisgICAgICAgICAgICB7IDB4MjAyOCwgVVByb3BlcnR5LkFMUEhBQkVUSUMsIDAgfSwKKworICAgICAgICAgICAgeyAweDAwNjYsIFVQcm9wZXJ0eS5BU0NJSV9IRVhfRElHSVQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDY3LCBVUHJvcGVydHkuQVNDSUlfSEVYX0RJR0lULCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgyMDJjLCBVUHJvcGVydHkuQklESV9DT05UUk9MLCAxIH0sCisgICAgICAgICAgICB7IDB4MjAyZiwgVVByb3BlcnR5LkJJRElfQ09OVFJPTCwgMCB9LAorCisgICAgICAgICAgICB7IDB4MDAzYywgVVByb3BlcnR5LkJJRElfTUlSUk9SRUQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDNkLCBVUHJvcGVydHkuQklESV9NSVJST1JFRCwgMCB9LAorCisgICAgICAgICAgICB7IDB4MDU4YSwgVVByb3BlcnR5LkRBU0gsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDdlLCBVUHJvcGVydHkuREFTSCwgMCB9LAorCisgICAgICAgICAgICB7IDB4MGM0ZCwgVVByb3BlcnR5LkRJQUNSSVRJQywgMSB9LAorICAgICAgICAgICAgeyAweDMwMDAsIFVQcm9wZXJ0eS5ESUFDUklUSUMsIDAgfSwKKworICAgICAgICAgICAgeyAweDBlNDYsIFVQcm9wZXJ0eS5FWFRFTkRFUiwgMSB9LAorICAgICAgICAgICAgeyAweDAwMjAsIFVQcm9wZXJ0eS5FWFRFTkRFUiwgMCB9LAorCisgICAgICAgICAgICB7IDB4ZmIxZCwgVVByb3BlcnR5LkZVTExfQ09NUE9TSVRJT05fRVhDTFVTSU9OLCAxIH0sCisgICAgICAgICAgICB7IDB4MWQxNWYsIFVQcm9wZXJ0eS5GVUxMX0NPTVBPU0lUSU9OX0VYQ0xVU0lPTiwgMSB9LAorICAgICAgICAgICAgeyAweGZiMWUsIFVQcm9wZXJ0eS5GVUxMX0NPTVBPU0lUSU9OX0VYQ0xVU0lPTiwgMCB9LAorCisgICAgICAgICAgICB7IDB4MTEwYSwgVVByb3BlcnR5Lk5GRF9JTkVSVCwgMSB9LCAgICAgIC8qIEphbW8gTCAqLworICAgICAgICAgICAgeyAweDAzMDgsIFVQcm9wZXJ0eS5ORkRfSU5FUlQsIDAgfSwKKworICAgICAgICAgICAgeyAweDExNjQsIFVQcm9wZXJ0eS5ORktEX0lORVJULCAxIH0sICAgICAvKiBKYW1vIFYgKi8KKyAgICAgICAgICAgIHsgMHgxZDc5ZCwgVVByb3BlcnR5Lk5GS0RfSU5FUlQsIDAgfSwgICAvKiBtYXRoIGNvbXBhdCB2ZXJzaW9uIG9mIHhpICovCisKKyAgICAgICAgICAgIHsgMHgwMDIxLCBVUHJvcGVydHkuTkZDX0lORVJULCAxIH0sICAgICAgLyogISAqLworICAgICAgICAgICAgeyAweDAwNjEsIFVQcm9wZXJ0eS5ORkNfSU5FUlQsIDAgfSwgICAgIC8qIGEgKi8KKyAgICAgICAgICAgIHsgMHgwMGU0LCBVUHJvcGVydHkuTkZDX0lORVJULCAwIH0sICAgICAvKiBhLXVtbGF1dCAqLworICAgICAgICAgICAgeyAweDAxMDIsIFVQcm9wZXJ0eS5ORkNfSU5FUlQsIDAgfSwgICAgIC8qIGEtYnJldmUgKi8KKyAgICAgICAgICAgIHsgMHhhYzFjLCBVUHJvcGVydHkuTkZDX0lORVJULCAwIH0sICAgICAvKiBIYW5ndWwgTFYgKi8KKyAgICAgICAgICAgIHsgMHhhYzFkLCBVUHJvcGVydHkuTkZDX0lORVJULCAxIH0sICAgICAgLyogSGFuZ3VsIExWVCAqLworCisgICAgICAgICAgICB7IDB4MWQ3OWQsIFVQcm9wZXJ0eS5ORktDX0lORVJULCAwIH0sICAgLyogbWF0aCBjb21wYXQgdmVyc2lvbiBvZiB4aSAqLworICAgICAgICAgICAgeyAweDJhNmQ2LCBVUHJvcGVydHkuTkZLQ19JTkVSVCwgMSB9LCAgICAvKiBIYW4sIGxhc3Qgb2YgQ0pLIGV4dC4gQiAqLworCisgICAgICAgICAgICB7IDB4MDBlNCwgVVByb3BlcnR5LlNFR01FTlRfU1RBUlRFUiwgMSB9LAorICAgICAgICAgICAgeyAweDAzMDgsIFVQcm9wZXJ0eS5TRUdNRU5UX1NUQVJURVIsIDAgfSwKKyAgICAgICAgICAgIHsgMHgxMTBhLCBVUHJvcGVydHkuU0VHTUVOVF9TVEFSVEVSLCAxIH0sIC8qIEphbW8gTCAqLworICAgICAgICAgICAgeyAweDExNjQsIFVQcm9wZXJ0eS5TRUdNRU5UX1NUQVJURVIsIDAgfSwvKiBKYW1vIFYgKi8KKyAgICAgICAgICAgIHsgMHhhYzFjLCBVUHJvcGVydHkuU0VHTUVOVF9TVEFSVEVSLCAxIH0sIC8qIEhhbmd1bCBMViAqLworICAgICAgICAgICAgeyAweGFjMWQsIFVQcm9wZXJ0eS5TRUdNRU5UX1NUQVJURVIsIDEgfSwgLyogSGFuZ3VsIExWVCAqLworCisgICAgICAgICAgICB7IDB4MDA0NCwgVVByb3BlcnR5LkhFWF9ESUdJVCwgMSB9LAorICAgICAgICAgICAgeyAweGZmNDYsIFVQcm9wZXJ0eS5IRVhfRElHSVQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDQ3LCBVUHJvcGVydHkuSEVYX0RJR0lULCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgzMGZiLCBVUHJvcGVydHkuSFlQSEVOLCAxIH0sCisgICAgICAgICAgICB7IDB4ZmU1OCwgVVByb3BlcnR5LkhZUEhFTiwgMCB9LAorCisgICAgICAgICAgICB7IDB4MjE3MiwgVVByb3BlcnR5LklEX0NPTlRJTlVFLCAxIH0sCisgICAgICAgICAgICB7IDB4MDMwNywgVVByb3BlcnR5LklEX0NPTlRJTlVFLCAxIH0sCisgICAgICAgICAgICB7IDB4MDA1YywgVVByb3BlcnR5LklEX0NPTlRJTlVFLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgyMTcyLCBVUHJvcGVydHkuSURfU1RBUlQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDdhLCBVUHJvcGVydHkuSURfU1RBUlQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDM5LCBVUHJvcGVydHkuSURfU1RBUlQsIDAgfSwKKworICAgICAgICAgICAgeyAweDRkYjUsIFVQcm9wZXJ0eS5JREVPR1JBUEhJQywgMSB9LAorICAgICAgICAgICAgeyAweDJmOTk5LCBVUHJvcGVydHkuSURFT0dSQVBISUMsIDEgfSwKKyAgICAgICAgICAgIHsgMHgyZjk5LCBVUHJvcGVydHkuSURFT0dSQVBISUMsIDAgfSwKKworICAgICAgICAgICAgeyAweDIwMGMsIFVQcm9wZXJ0eS5KT0lOX0NPTlRST0wsIDEgfSwKKyAgICAgICAgICAgIHsgMHgyMDI5LCBVUHJvcGVydHkuSk9JTl9DT05UUk9MLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgxZDdiYywgVVByb3BlcnR5LkxPV0VSQ0FTRSwgMSB9LAorICAgICAgICAgICAgeyAweDAzNDUsIFVQcm9wZXJ0eS5MT1dFUkNBU0UsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDMwLCBVUHJvcGVydHkuTE9XRVJDQVNFLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgxZDdhOSwgVVByb3BlcnR5Lk1BVEgsIDEgfSwKKyAgICAgICAgICAgIHsgMHgyMTM1LCBVUHJvcGVydHkuTUFUSCwgMSB9LAorICAgICAgICAgICAgeyAweDAwNjIsIFVQcm9wZXJ0eS5NQVRILCAwIH0sCisKKyAgICAgICAgICAgIHsgMHhmZGUxLCBVUHJvcGVydHkuTk9OQ0hBUkFDVEVSX0NPREVfUE9JTlQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgxMGZmZmYsIFVQcm9wZXJ0eS5OT05DSEFSQUNURVJfQ09ERV9QT0lOVCwgMSB9LAorICAgICAgICAgICAgeyAweDEwZmZmZCwgVVByb3BlcnR5Lk5PTkNIQVJBQ1RFUl9DT0RFX1BPSU5ULCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgwMDIyLCBVUHJvcGVydHkuUVVPVEFUSU9OX01BUkssIDEgfSwKKyAgICAgICAgICAgIHsgMHhmZjYyLCBVUHJvcGVydHkuUVVPVEFUSU9OX01BUkssIDEgfSwKKyAgICAgICAgICAgIHsgMHhkODQwLCBVUHJvcGVydHkuUVVPVEFUSU9OX01BUkssIDAgfSwKKworICAgICAgICAgICAgeyAweDA2MWYsIFVQcm9wZXJ0eS5URVJNSU5BTF9QVU5DVFVBVElPTiwgMSB9LAorICAgICAgICAgICAgeyAweGUwMDNmLCBVUHJvcGVydHkuVEVSTUlOQUxfUFVOQ1RVQVRJT04sIDAgfSwKKworICAgICAgICAgICAgeyAweDFkNDRhLCBVUHJvcGVydHkuVVBQRVJDQVNFLCAxIH0sCisgICAgICAgICAgICB7IDB4MjE2MiwgVVByb3BlcnR5LlVQUEVSQ0FTRSwgMSB9LAorICAgICAgICAgICAgeyAweDAzNDUsIFVQcm9wZXJ0eS5VUFBFUkNBU0UsIDAgfSwKKworICAgICAgICAgICAgeyAweDAwMjAsIFVQcm9wZXJ0eS5XSElURV9TUEFDRSwgMSB9LAorICAgICAgICAgICAgeyAweDIwMmYsIFVQcm9wZXJ0eS5XSElURV9TUEFDRSwgMSB9LAorICAgICAgICAgICAgeyAweDMwMDEsIFVQcm9wZXJ0eS5XSElURV9TUEFDRSwgMCB9LAorCisgICAgICAgICAgICB7IDB4MDcxMSwgVVByb3BlcnR5LlhJRF9DT05USU5VRSwgMSB9LAorICAgICAgICAgICAgeyAweDFkMWFhLCBVUHJvcGVydHkuWElEX0NPTlRJTlVFLCAxIH0sCisgICAgICAgICAgICB7IDB4MDA3YywgVVByb3BlcnR5LlhJRF9DT05USU5VRSwgMCB9LAorCisgICAgICAgICAgICB7IDB4MTZlZSwgVVByb3BlcnR5LlhJRF9TVEFSVCwgMSB9LAorICAgICAgICAgICAgeyAweDIzNDU2LCBVUHJvcGVydHkuWElEX1NUQVJULCAxIH0sCisgICAgICAgICAgICB7IDB4MWQxYWEsIFVQcm9wZXJ0eS5YSURfU1RBUlQsIDAgfSwKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFZlcnNpb24gYnJlYWs6CisgICAgICAgICAgICAgKiBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIG9ubHkgc3VwcG9ydGVkIHN0YXJ0aW5nIHdpdGggdGhlCisgICAgICAgICAgICAgKiBVbmljb2RlIHZlcnNpb24gaW5kaWNhdGVkIGluIHRoZSBzZWNvbmQgZmllbGQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHsgLTEsIDB4MzIwLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgxODBjLCBVUHJvcGVydHkuREVGQVVMVF9JR05PUkFCTEVfQ09ERV9QT0lOVCwgMSB9LAorICAgICAgICAgICAgeyAweGZlMDIsIFVQcm9wZXJ0eS5ERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5ULCAxIH0sCisgICAgICAgICAgICB7IDB4MTgwMSwgVVByb3BlcnR5LkRFRkFVTFRfSUdOT1JBQkxFX0NPREVfUE9JTlQsIDAgfSwKKworICAgICAgICAgICAgeyAweDAzNDEsIFVQcm9wZXJ0eS5ERVBSRUNBVEVELCAxIH0sCisgICAgICAgICAgICB7IDB4ZTAwNDEsIFVQcm9wZXJ0eS5ERVBSRUNBVEVELCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgwMGEwLCBVUHJvcGVydHkuR1JBUEhFTUVfQkFTRSwgMSB9LAorICAgICAgICAgICAgeyAweDBhNGQsIFVQcm9wZXJ0eS5HUkFQSEVNRV9CQVNFLCAwIH0sCisgICAgICAgICAgICB7IDB4ZmY5ZiwgVVByb3BlcnR5LkdSQVBIRU1FX0JBU0UsIDEgfSwgICAgICAvKiBjaGFuZ2VkIGZyb20gVW5pY29kZSAzLjIgdG8gNCAqLworCisgICAgICAgICAgICB7IDB4MDMwMCwgVVByb3BlcnR5LkdSQVBIRU1FX0VYVEVORCwgMSB9LAorICAgICAgICAgICAgeyAweGZmOWYsIFVQcm9wZXJ0eS5HUkFQSEVNRV9FWFRFTkQsIDAgfSwgICAvKiBjaGFuZ2VkIGZyb20gVW5pY29kZSAzLjIgdG8gNCAqLworICAgICAgICAgICAgeyAweDA2MDMsIFVQcm9wZXJ0eS5HUkFQSEVNRV9FWFRFTkQsIDAgfSwKKworICAgICAgICAgICAgeyAweDBhNGQsIFVQcm9wZXJ0eS5HUkFQSEVNRV9MSU5LLCAxIH0sCisgICAgICAgICAgICB7IDB4ZmY5ZiwgVVByb3BlcnR5LkdSQVBIRU1FX0xJTkssIDAgfSwKKworICAgICAgICAgICAgeyAweDJmZjcsIFVQcm9wZXJ0eS5JRFNfQklOQVJZX09QRVJBVE9SLCAxIH0sCisgICAgICAgICAgICB7IDB4MmZmMywgVVByb3BlcnR5LklEU19CSU5BUllfT1BFUkFUT1IsIDAgfSwKKworICAgICAgICAgICAgeyAweDJmZjMsIFVQcm9wZXJ0eS5JRFNfVFJJTkFSWV9PUEVSQVRPUiwgMSB9LAorICAgICAgICAgICAgeyAweDJmMDMsIFVQcm9wZXJ0eS5JRFNfVFJJTkFSWV9PUEVSQVRPUiwgMCB9LAorCisgICAgICAgICAgICB7IDB4MGVjMSwgVVByb3BlcnR5LkxPR0lDQUxfT1JERVJfRVhDRVBUSU9OLCAxIH0sCisgICAgICAgICAgICB7IDB4ZGNiYSwgVVByb3BlcnR5LkxPR0lDQUxfT1JERVJfRVhDRVBUSU9OLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgyZTliLCBVUHJvcGVydHkuUkFESUNBTCwgMSB9LAorICAgICAgICAgICAgeyAweDRlMDAsIFVQcm9wZXJ0eS5SQURJQ0FMLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHgwMTJmLCBVUHJvcGVydHkuU09GVF9ET1RURUQsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDQ5LCBVUHJvcGVydHkuU09GVF9ET1RURUQsIDAgfSwKKworICAgICAgICAgICAgeyAweGZhMTEsIFVQcm9wZXJ0eS5VTklGSUVEX0lERU9HUkFQSCwgMSB9LAorICAgICAgICAgICAgeyAweGZhMTIsIFVQcm9wZXJ0eS5VTklGSUVEX0lERU9HUkFQSCwgMCB9LAorCisgICAgICAgICAgICB7IC0xLCAweDQwMSwgMCB9LCAvKiB2ZXJzaW9uIGJyZWFrIGZvciBVbmljb2RlIDQuMC4xICovCisKKyAgICAgICAgICAgIHsgMHgwMDJlLCBVUHJvcGVydHkuU19URVJNLCAxIH0sCisgICAgICAgICAgICB7IDB4MDA2MSwgVVByb3BlcnR5LlNfVEVSTSwgMCB9LAorCisgICAgICAgICAgICB7IDB4MTgwYywgVVByb3BlcnR5LlZBUklBVElPTl9TRUxFQ1RPUiwgMSB9LAorICAgICAgICAgICAgeyAweGZlMDMsIFVQcm9wZXJ0eS5WQVJJQVRJT05fU0VMRUNUT1IsIDEgfSwKKyAgICAgICAgICAgIHsgMHhlMDFlZiwgVVByb3BlcnR5LlZBUklBVElPTl9TRUxFQ1RPUiwgMSB9LAorICAgICAgICAgICAgeyAweGUwMjAwLCBVUHJvcGVydHkuVkFSSUFUSU9OX1NFTEVDVE9SLCAwIH0sCisKKyAgICAgICAgICAgIC8qIGVudW0vaW50ZWdlciB0eXBlIHByb3BlcnRpZXMgKi8KKyAgICAgICAgICAgIC8qIHRlc3QgZGVmYXVsdCBCaWRpIGNsYXNzZXMgZm9yIHVuYXNzaWduZWQgY29kZSBwb2ludHMgKi8KKyAgICAgICAgICAgIHsgMHgwNTkwLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIH0sCisgICAgICAgICAgICB7IDB4MDVjZiwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweDA1ZWQsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwKKyAgICAgICAgICAgIHsgMHgwN2YyLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIH0sCisgICAgICAgICAgICB7IDB4MDhiYSwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweGZiMzcsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwKKyAgICAgICAgICAgIHsgMHhmYjQyLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIH0sCisgICAgICAgICAgICB7IDB4MTA4MDYsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfSwKKyAgICAgICAgICAgIHsgMHgxMDkwOSwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB9LAorICAgICAgICAgICAgeyAweDEwZmU0LCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIH0sCisKKyAgICAgICAgICAgIHsgMHgwNjA2LCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyB9LAorICAgICAgICAgICAgeyAweDA2MWMsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDIH0sCisgICAgICAgICAgICB7IDB4MDYzZiwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMgfSwKKyAgICAgICAgICAgIHsgMHgwNzBlLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyB9LAorICAgICAgICAgICAgeyAweDA3NzUsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDIH0sCisgICAgICAgICAgICB7IDB4ZmJjMiwgVVByb3BlcnR5LkJJRElfQ0xBU1MsIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMgfSwKKyAgICAgICAgICAgIHsgMHhmZDkwLCBVUHJvcGVydHkuQklESV9DTEFTUywgVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyB9LAorICAgICAgICAgICAgeyAweGZlZmUsIFVQcm9wZXJ0eS5CSURJX0NMQVNTLCBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDIH0sCisKKyAgICAgICAgICAgIHsgMHgwMkFGLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLklQQV9FWFRFTlNJT05TLmdldElEKCkgfSwKKyAgICAgICAgICAgIHsgMHgwQzRFLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLlRFTFVHVS5nZXRJRCgpfSwKKyAgICAgICAgICAgIHsgMHgxNTVBLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLlVOSUZJRURfQ0FOQURJQU5fQUJPUklHSU5BTF9TWUxMQUJJQ1MuZ2V0SUQoKSB9LAorICAgICAgICAgICAgeyAweDE3MTcsIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suVEFHQUxPRy5nZXRJRCgpIH0sCisgICAgICAgICAgICB7IDB4MTkwMCwgVVByb3BlcnR5LkJMT0NLLCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jay5MSU1CVS5nZXRJRCgpIH0sCisgICAgICAgICAgICB7IDB4MUFGRiwgVVByb3BlcnR5LkJMT0NLLCBVQ2hhcmFjdGVyLlVuaWNvZGVCbG9jay5OT19CTE9DSy5nZXRJRCgpfSwKKyAgICAgICAgICAgIHsgMHgzMDQwLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLkhJUkFHQU5BLmdldElEKCl9LAorICAgICAgICAgICAgeyAweDFEMEZGLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLkJZWkFOVElORV9NVVNJQ0FMX1NZTUJPTFMuZ2V0SUQoKX0sCisgICAgICAgICAgICB7IDB4NTAwMDAsIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suTk9fQkxPQ0suZ2V0SUQoKSB9LAorICAgICAgICAgICAgeyAweEVGRkZGLCBVUHJvcGVydHkuQkxPQ0ssIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLk5PX0JMT0NLLmdldElEKCkgfSwKKyAgICAgICAgICAgIHsgMHgxMEQwRkYsIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suU1VQUExFTUVOVEFSWV9QUklWQVRFX1VTRV9BUkVBX0IuZ2V0SUQoKSB9LAorCisgICAgICAgICAgICAvKiBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyB0ZXN0ZWQgZm9yIGFzc2lnbmVkIGNoYXJhY3RlcnMgaW4gVGVzdFVuaWNvZGVEYXRhKCkgKi8KKyAgICAgICAgICAgIHsgMHhkN2Q3LCBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUywgMCB9LAorCisgICAgICAgICAgICB7IDB4MDBBMCwgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRSwgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5OT0JSRUFLIH0sCisgICAgICAgICAgICB7IDB4MDBBOCwgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRSwgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5DT01QQVQgfSwKKyAgICAgICAgICAgIHsgMHgwMGJmLCBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFLCBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLk5PTkUgfSwKKyAgICAgICAgICAgIHsgMHgwMGMwLCBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFLCBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLkNBTk9OSUNBTCB9LAorICAgICAgICAgICAgeyAweDFFOUIsIFVQcm9wZXJ0eS5ERUNPTVBPU0lUSU9OX1RZUEUsIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuQ0FOT05JQ0FMIH0sCisgICAgICAgICAgICB7IDB4QkNERSwgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRSwgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5DQU5PTklDQUwgfSwKKyAgICAgICAgICAgIHsgMHhGQjVELCBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFLCBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLk1FRElBTCB9LAorICAgICAgICAgICAgeyAweDFENzM2LCBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFLCBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLkZPTlQgfSwKKyAgICAgICAgICAgIHsgMHhlMDAzMywgVVByb3BlcnR5LkRFQ09NUE9TSVRJT05fVFlQRSwgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5OT05FIH0sCisKKyAgICAgICAgICAgIHsgMHgwMDA5LCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5ORVVUUkFMIH0sCisgICAgICAgICAgICB7IDB4MDAyMCwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguTkFSUk9XIH0sCisgICAgICAgICAgICB7IDB4MDBCMSwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguQU1CSUdVT1VTIH0sCisgICAgICAgICAgICB7IDB4MjBBOSwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguSEFMRldJRFRIIH0sCisgICAgICAgICAgICB7IDB4MkZGQiwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguV0lERSB9LAorICAgICAgICAgICAgeyAweDMwMDAsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLkZVTExXSURUSCB9LAorICAgICAgICAgICAgeyAweDM1YmIsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLldJREUgfSwKKyAgICAgICAgICAgIHsgMHg1OGJkLCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5XSURFIH0sCisgICAgICAgICAgICB7IDB4RDdBMywgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguV0lERSB9LAorICAgICAgICAgICAgeyAweEVFRUUsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLkFNQklHVU9VUyB9LAorICAgICAgICAgICAgeyAweDFEMTk4LCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5ORVVUUkFMIH0sCisgICAgICAgICAgICB7IDB4MjAwMDAsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLldJREUgfSwKKyAgICAgICAgICAgIHsgMHgyRjhDNywgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguV0lERSB9LAorICAgICAgICAgICAgeyAweDNhNWJkLCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5XSURFIH0sCisgICAgICAgICAgICB7IDB4NWE1YmQsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRILCBVQ2hhcmFjdGVyLkVhc3RBc2lhbldpZHRoLk5FVVRSQUwgfSwKKyAgICAgICAgICAgIHsgMHhGRUVFRSwgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEgsIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguQU1CSUdVT1VTIH0sCisgICAgICAgICAgICB7IDB4MTBFRUVFLCBVUHJvcGVydHkuRUFTVF9BU0lBTl9XSURUSCwgVUNoYXJhY3Rlci5FYXN0QXNpYW5XaWR0aC5BTUJJR1VPVVMgfSwKKworICAgICAgICAgICAgLyogVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlkgdGVzdGVkIGZvciBhc3NpZ25lZCBjaGFyYWN0ZXJzIGluIFRlc3RVbmljb2RlRGF0YSgpICovCisgICAgICAgICAgICB7IDB4ZDdkNywgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlksIDAgfSwKKworICAgICAgICAgICAgeyAweDA0NDQsIFVQcm9wZXJ0eS5KT0lOSU5HX0dST1VQLCBVQ2hhcmFjdGVyLkpvaW5pbmdHcm91cC5OT19KT0lOSU5HX0dST1VQIH0sCisgICAgICAgICAgICB7IDB4MDYzOSwgVVByb3BlcnR5LkpPSU5JTkdfR1JPVVAsIFVDaGFyYWN0ZXIuSm9pbmluZ0dyb3VwLkFJTiB9LAorICAgICAgICAgICAgeyAweDA3MkEsIFVQcm9wZXJ0eS5KT0lOSU5HX0dST1VQLCBVQ2hhcmFjdGVyLkpvaW5pbmdHcm91cC5EQUxBVEhfUklTSCB9LAorICAgICAgICAgICAgeyAweDA2NDcsIFVQcm9wZXJ0eS5KT0lOSU5HX0dST1VQLCBVQ2hhcmFjdGVyLkpvaW5pbmdHcm91cC5IRUggfSwKKyAgICAgICAgICAgIHsgMHgwNkMxLCBVUHJvcGVydHkuSk9JTklOR19HUk9VUCwgVUNoYXJhY3Rlci5Kb2luaW5nR3JvdXAuSEVIX0dPQUwgfSwKKyAgICAgICAgICAgIHsgMHgwNkMzLCBVUHJvcGVydHkuSk9JTklOR19HUk9VUCwgVUNoYXJhY3Rlci5Kb2luaW5nR3JvdXAuSEFNWkFfT05fSEVIX0dPQUwgfSwKKworICAgICAgICAgICAgeyAweDIwMEMsIFVQcm9wZXJ0eS5KT0lOSU5HX1RZUEUsIFVDaGFyYWN0ZXIuSm9pbmluZ1R5cGUuTk9OX0pPSU5JTkcgfSwKKyAgICAgICAgICAgIHsgMHgyMDBELCBVUHJvcGVydHkuSk9JTklOR19UWVBFLCBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLkpPSU5fQ0FVU0lORyB9LAorICAgICAgICAgICAgeyAweDA2MzksIFVQcm9wZXJ0eS5KT0lOSU5HX1RZUEUsIFVDaGFyYWN0ZXIuSm9pbmluZ1R5cGUuRFVBTF9KT0lOSU5HIH0sCisgICAgICAgICAgICB7IDB4MDY0MCwgVVByb3BlcnR5LkpPSU5JTkdfVFlQRSwgVUNoYXJhY3Rlci5Kb2luaW5nVHlwZS5KT0lOX0NBVVNJTkcgfSwKKyAgICAgICAgICAgIHsgMHgwNkMzLCBVUHJvcGVydHkuSk9JTklOR19UWVBFLCBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLlJJR0hUX0pPSU5JTkcgfSwKKyAgICAgICAgICAgIHsgMHgwMzAwLCBVUHJvcGVydHkuSk9JTklOR19UWVBFLCBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLlRSQU5TUEFSRU5UIH0sCisgICAgICAgICAgICB7IDB4MDcwRiwgVVByb3BlcnR5LkpPSU5JTkdfVFlQRSwgVUNoYXJhY3Rlci5Kb2luaW5nVHlwZS5UUkFOU1BBUkVOVCB9LAorICAgICAgICAgICAgeyAweGUwMDMzLCBVUHJvcGVydHkuSk9JTklOR19UWVBFLCBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLlRSQU5TUEFSRU5UIH0sCisKKyAgICAgICAgICAgIC8qIFRlc3RVbmljb2RlRGF0YSgpIHZlcmlmaWVzIHRoYXQgbm8gYXNzaWduZWQgY2hhcmFjdGVyIGhhcyAiWFgiICh1bmtub3duKSAqLworICAgICAgICAgICAgeyAweGU3ZTcsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5VTktOT1dOIH0sCisgICAgICAgICAgICB7IDB4MTBmZmZkLCBVUHJvcGVydHkuTElORV9CUkVBSywgVUNoYXJhY3Rlci5MaW5lQnJlYWsuVU5LTk9XTiB9LAorICAgICAgICAgICAgeyAweDAwMjgsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5PUEVOX1BVTkNUVUFUSU9OIH0sCisgICAgICAgICAgICB7IDB4MjMyQSwgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLkNMT1NFX1BVTkNUVUFUSU9OIH0sCisgICAgICAgICAgICB7IDB4MzQwMSwgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLklERU9HUkFQSElDIH0sCisgICAgICAgICAgICB7IDB4NGUwMiwgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLklERU9HUkFQSElDIH0sCisgICAgICAgICAgICB7IDB4MjAwMDQsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5JREVPR1JBUEhJQyB9LAorICAgICAgICAgICAgeyAweGY5MDUsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5JREVPR1JBUEhJQyB9LAorICAgICAgICAgICAgeyAweGRiN2UsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5TVVJST0dBVEUgfSwKKyAgICAgICAgICAgIHsgMHhkYmZkLCBVUHJvcGVydHkuTElORV9CUkVBSywgVUNoYXJhY3Rlci5MaW5lQnJlYWsuU1VSUk9HQVRFIH0sCisgICAgICAgICAgICB7IDB4ZGZmYywgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLlNVUlJPR0FURSB9LAorICAgICAgICAgICAgeyAweDI3NjIsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5FWENMQU1BVElPTiB9LAorICAgICAgICAgICAgeyAweDAwMkYsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5CUkVBS19TWU1CT0xTIH0sCisgICAgICAgICAgICB7IDB4MUQ0OUMsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5BTFBIQUJFVElDIH0sCisgICAgICAgICAgICB7IDB4MTczMSwgVVByb3BlcnR5LkxJTkVfQlJFQUssIFVDaGFyYWN0ZXIuTGluZUJyZWFrLkFMUEhBQkVUSUMgfSwKKworICAgICAgICAgICAgLyogVVByb3BlcnR5Lk5VTUVSSUNfVFlQRSB0ZXN0ZWQgaW4gVGVzdE51bWVyaWNQcm9wZXJ0aWVzKCkgKi8KKworICAgICAgICAgICAgLyogVVByb3BlcnR5LlNDUklQVCB0ZXN0ZWQgaW4gVGVzdFVTY3JpcHRDb2RlQVBJKCkgKi8KKworICAgICAgICAgICAgeyAweDExMDAsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTEVBRElOR19KQU1PIH0sCisgICAgICAgICAgICB7IDB4MTExMSwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCBVQ2hhcmFjdGVyLkhhbmd1bFN5bGxhYmxlVHlwZS5MRUFESU5HX0pBTU8gfSwKKyAgICAgICAgICAgIHsgMHgxMTU5LCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxFQURJTkdfSkFNTyB9LAorICAgICAgICAgICAgeyAweDExNWYsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTEVBRElOR19KQU1PIH0sCisKKyAgICAgICAgICAgIHsgMHgxMTYwLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlZPV0VMX0pBTU8gfSwKKyAgICAgICAgICAgIHsgMHgxMTYxLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlZPV0VMX0pBTU8gfSwKKyAgICAgICAgICAgIHsgMHgxMTcyLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlZPV0VMX0pBTU8gfSwKKyAgICAgICAgICAgIHsgMHgxMWEyLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlZPV0VMX0pBTU8gfSwKKworICAgICAgICAgICAgeyAweDExYTgsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuVFJBSUxJTkdfSkFNTyB9LAorICAgICAgICAgICAgeyAweDExYjgsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuVFJBSUxJTkdfSkFNTyB9LAorICAgICAgICAgICAgeyAweDExYzgsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuVFJBSUxJTkdfSkFNTyB9LAorICAgICAgICAgICAgeyAweDExZjksIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuVFJBSUxJTkdfSkFNTyB9LAorCisgICAgICAgICAgICB7IDB4MTE1YSwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTE1ZSwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTFhMywgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTFhNywgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTFmYSwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisgICAgICAgICAgICB7IDB4MTFmZiwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCAwIH0sCisKKyAgICAgICAgICAgIHsgMHhhYzAwLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxWX1NZTExBQkxFIH0sCisgICAgICAgICAgICB7IDB4YWMxYywgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCBVQ2hhcmFjdGVyLkhhbmd1bFN5bGxhYmxlVHlwZS5MVl9TWUxMQUJMRSB9LAorICAgICAgICAgICAgeyAweGM1ZWMsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTFZfU1lMTEFCTEUgfSwKKyAgICAgICAgICAgIHsgMHhkNzg4LCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxWX1NZTExBQkxFIH0sCisKKyAgICAgICAgICAgIHsgMHhhYzAxLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxWVF9TWUxMQUJMRSB9LAorICAgICAgICAgICAgeyAweGFjMWIsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTFZUX1NZTExBQkxFIH0sCisgICAgICAgICAgICB7IDB4YWMxZCwgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFLCBVQ2hhcmFjdGVyLkhhbmd1bFN5bGxhYmxlVHlwZS5MVlRfU1lMTEFCTEUgfSwKKyAgICAgICAgICAgIHsgMHhjNWVlLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIFVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLkxWVF9TWUxMQUJMRSB9LAorICAgICAgICAgICAgeyAweGQ3YTMsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSwgVUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuTFZUX1NZTExBQkxFIH0sCisKKyAgICAgICAgICAgIHsgMHhkN2E0LCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUsIDAgfSwKKworICAgICAgICAgICAgeyAtMSwgMHg0MTAsIDAgfSwgLyogdmVyc2lvbiBicmVhayBmb3IgVW5pY29kZSA0LjEgKi8KKworICAgICAgICAgICAgeyAweDAwZDcsIFVQcm9wZXJ0eS5QQVRURVJOX1NZTlRBWCwgMSB9LAorICAgICAgICAgICAgeyAweGZlNDUsIFVQcm9wZXJ0eS5QQVRURVJOX1NZTlRBWCwgMSB9LAorICAgICAgICAgICAgeyAweDAwNjEsIFVQcm9wZXJ0eS5QQVRURVJOX1NZTlRBWCwgMCB9LAorCisgICAgICAgICAgICB7IDB4MDAyMCwgVVByb3BlcnR5LlBBVFRFUk5fV0hJVEVfU1BBQ0UsIDEgfSwKKyAgICAgICAgICAgIHsgMHgwMDg1LCBVUHJvcGVydHkuUEFUVEVSTl9XSElURV9TUEFDRSwgMSB9LAorICAgICAgICAgICAgeyAweDIwMGYsIFVQcm9wZXJ0eS5QQVRURVJOX1dISVRFX1NQQUNFLCAxIH0sCisgICAgICAgICAgICB7IDB4MDBhMCwgVVByb3BlcnR5LlBBVFRFUk5fV0hJVEVfU1BBQ0UsIDAgfSwKKyAgICAgICAgICAgIHsgMHgzMDAwLCBVUHJvcGVydHkuUEFUVEVSTl9XSElURV9TUEFDRSwgMCB9LAorCisgICAgICAgICAgICB7IDB4MWQyMDAsIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suQU5DSUVOVF9HUkVFS19NVVNJQ0FMX05PVEFUSU9OX0lEIH0sCisgICAgICAgICAgICB7IDB4MmM4ZSwgIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suQ09QVElDX0lEIH0sCisgICAgICAgICAgICB7IDB4ZmUxNywgIFVQcm9wZXJ0eS5CTE9DSywgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suVkVSVElDQUxfRk9STVNfSUQgfSwKKworICAgICAgICAgICAgeyAweDFhMDAsICBVUHJvcGVydHkuU0NSSVBULCBVU2NyaXB0LkJVR0lORVNFIH0sCisgICAgICAgICAgICB7IDB4MmNlYSwgIFVQcm9wZXJ0eS5TQ1JJUFQsIFVTY3JpcHQuQ09QVElDIH0sCisgICAgICAgICAgICB7IDB4YTgyYiwgIFVQcm9wZXJ0eS5TQ1JJUFQsIFVTY3JpcHQuU1lMT1RJX05BR1JJIH0sCisgICAgICAgICAgICB7IDB4MTAzZDAsIFVQcm9wZXJ0eS5TQ1JJUFQsIFVTY3JpcHQuT0xEX1BFUlNJQU4gfSwKKworICAgICAgICAgICAgeyAweGNjMjgsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5IMiB9LAorICAgICAgICAgICAgeyAweGNjMjksIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5IMyB9LAorICAgICAgICAgICAgeyAweGFjMDMsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5IMyB9LAorICAgICAgICAgICAgeyAweDExNWYsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5KTCB9LAorICAgICAgICAgICAgeyAweDExYWEsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5KVCB9LAorICAgICAgICAgICAgeyAweDExYTEsIFVQcm9wZXJ0eS5MSU5FX0JSRUFLLCBVQ2hhcmFjdGVyLkxpbmVCcmVhay5KViB9LAorCisgICAgICAgICAgICB7IDB4YjJjOSwgVVByb3BlcnR5LkdSQVBIRU1FX0NMVVNURVJfQlJFQUssIFVDaGFyYWN0ZXIuR3JhcGhlbWVDbHVzdGVyQnJlYWsuTFZUIH0sCisgICAgICAgICAgICB7IDB4MDM2ZiwgVVByb3BlcnR5LkdSQVBIRU1FX0NMVVNURVJfQlJFQUssIFVDaGFyYWN0ZXIuR3JhcGhlbWVDbHVzdGVyQnJlYWsuRVhURU5EIH0sCisgICAgICAgICAgICB7IDB4MDAwMCwgVVByb3BlcnR5LkdSQVBIRU1FX0NMVVNURVJfQlJFQUssIFVDaGFyYWN0ZXIuR3JhcGhlbWVDbHVzdGVyQnJlYWsuQ09OVFJPTCB9LAorICAgICAgICAgICAgeyAweDExNjAsIFVQcm9wZXJ0eS5HUkFQSEVNRV9DTFVTVEVSX0JSRUFLLCBVQ2hhcmFjdGVyLkdyYXBoZW1lQ2x1c3RlckJyZWFrLlYgfSwKKworICAgICAgICAgICAgeyAweDA1ZjQsIFVQcm9wZXJ0eS5XT1JEX0JSRUFLLCBVQ2hhcmFjdGVyLldvcmRCcmVhay5NSURMRVRURVIgfSwKKyAgICAgICAgICAgIHsgMHg0ZWYwLCBVUHJvcGVydHkuV09SRF9CUkVBSywgVUNoYXJhY3Rlci5Xb3JkQnJlYWsuT1RIRVIgfSwKKyAgICAgICAgICAgIHsgMHgxOWQ5LCBVUHJvcGVydHkuV09SRF9CUkVBSywgVUNoYXJhY3Rlci5Xb3JkQnJlYWsuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDIwNDQsIFVQcm9wZXJ0eS5XT1JEX0JSRUFLLCBVQ2hhcmFjdGVyLldvcmRCcmVhay5NSUROVU0gfSwKKworICAgICAgICAgICAgeyAweGZmZmQsIFVQcm9wZXJ0eS5TRU5URU5DRV9CUkVBSywgVUNoYXJhY3Rlci5TZW50ZW5jZUJyZWFrLk9USEVSIH0sCisgICAgICAgICAgICB7IDB4MWZmYywgVVByb3BlcnR5LlNFTlRFTkNFX0JSRUFLLCBVQ2hhcmFjdGVyLlNlbnRlbmNlQnJlYWsuVVBQRVIgfSwKKyAgICAgICAgICAgIHsgMHhmZjYzLCBVUHJvcGVydHkuU0VOVEVOQ0VfQlJFQUssIFVDaGFyYWN0ZXIuU2VudGVuY2VCcmVhay5DTE9TRSB9LAorICAgICAgICAgICAgeyAweDIwMjgsIFVQcm9wZXJ0eS5TRU5URU5DRV9CUkVBSywgVUNoYXJhY3Rlci5TZW50ZW5jZUJyZWFrLlNFUCB9LAorCisgICAgICAgICAgICAvKiB1bmRlZmluZWQgVVByb3BlcnR5IHZhbHVlcyAqLworICAgICAgICAgICAgeyAweDYxLCAweDRhNywgMCB9LAorICAgICAgICAgICAgeyAweDIzNGJjLCAweDE1ZWQsIDAgfQorICAgICAgICB9OworCisKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZShVUHJvcGVydHkuREFTSCkgIT0gMAorICAgICAgICAgICAgfHwgVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKFVQcm9wZXJ0eS5CSURJX0NMQVNTKSAhPSAwCisgICAgICAgICAgICB8fCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoVVByb3BlcnR5LkJMT0NLKSE9IDAgIC8qIGoyNDc4ICovCisgICAgICAgICAgICB8fCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoVVByb3BlcnR5LlNDUklQVCkhPSAwIC8qIEpCIzI0MTAgKi8KKyAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZSgweDIzNDUpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKCkgd3JvbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkRBU0gpICE9IDEKKyAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuSURfQ09OVElOVUUpICE9IDEKKyAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuQklOQVJZX0xJTUlULTEpICE9IDEKKyAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuQklESV9DTEFTUykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gVUNoYXJhY3RlckRpcmVjdGlvbi5DSEFSX0RJUkVDVElPTl9DT1VOVCAtIDEKKyAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuQkxPQ0spCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2suQ09VTlQgLSAxCisgICAgICAgICAgICB8fCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkxJTkVfQlJFQUspCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuQ09VTlQgLSAxCisgICAgICAgICAgICB8fCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LlNDUklQVCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBVU2NyaXB0LkNPREVfTElNSVQgLSAxCisgICAgICAgICAgICB8fCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoMHgyMzQ1KSAhPSAtMSAvL0pCIzI0MTAKKyAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFKSAhPSAoVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5DT1VOVCAtIDEpCisgICAgICAgICAgICB8fCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkpPSU5JTkdfR1JPVVApICE9ICAoVUNoYXJhY3Rlci5Kb2luaW5nR3JvdXAuQ09VTlQgLTEpCisgICAgICAgICAgICB8fCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5LkpPSU5JTkdfVFlQRSkgIT0gIChVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLkNPVU5UIC0xKQorICAgICAgICAgICAgfHwgVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRIKSAhPSAgKFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGguQ09VTlQgLTEpCisKKyAgICAgICAgICAgKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZSgpIHdyb25nIik7CisgICAgICAgIH0KKworICAgICAgICBWZXJzaW9uSW5mbyB2ZXJzaW9uID0gVUNoYXJhY3Rlci5nZXRVbmljb2RlVmVyc2lvbigpOworCisgICAgICAgIC8vIHRlc3QgaGFzQmluYXJ5UHJvcGVydHkoKQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgKysgaSkgeworICAgICAgICAgICAgaWYgKHByb3BzW2ldWzBdIDwgMCkgeworICAgICAgICAgICAgICAgIGlmICh2ZXJzaW9uLmNvbXBhcmVUbyhWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShwcm9wc1tpXVsxXSA+PiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wc1tpXVsxXSA+PiA0KSAmIDB4RiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wc1tpXVsxXSAmIDB4RiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKSkgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJvb2xlYW4gZXhwZWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChwcm9wc1tpXVsyXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocHJvcHNbaV1bMV0gPCBVUHJvcGVydHkuSU5UX1NUQVJUKSB7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkocHJvcHNbaV1bMF0sIHByb3BzW2ldWzFdKQorICAgICAgICAgICAgICAgICAgICAhPSBleHBlY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzBdKSArICIsICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzFdKQorICAgICAgICAgICAgICAgICAgICAgICAgICArICIpIGhhcyBhbiBlcnJvciBleHBlY3RlZCAiICsgcHJvcHNbaV1bMl0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IHJldFZhbCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShwcm9wc1tpXVswXSwgcHJvcHNbaV1bMV0pOworICAgICAgICAgICAgaWYgKHJldFZhbCAhPSBwcm9wc1tpXVsyXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuaGV4KHByb3BzW2ldWzBdLCA0KSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgIiArIHByb3BzW2ldWzFdICsgIiBpcyB3cm9uZywgc2hvdWxkIGJlICIKKyAgICAgICAgICAgICAgICAgICAgICArIHByb3BzW2ldWzJdICsgIiBub3QgIiArIHJldFZhbCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRlc3Qgc2VwYXJhdGUgZnVuY3Rpb25zLCB0b28KKyAgICAgICAgICAgIHN3aXRjaCAocHJvcHNbaV1bMV0pIHsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkFMUEhBQkVUSUM6CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVQWxwaGFiZXRpYyhwcm9wc1tpXVswXSkgIT0gZXhwZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5pc1VBbHBoYWJldGljKFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzBdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIpIGlzIHdyb25nIGV4cGVjdGVkICIgKyBwcm9wc1tpXVsyXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTE9XRVJDQVNFOgorICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVUxvd2VyY2FzZShwcm9wc1tpXVswXSkgIT0gZXhwZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5pc1VMb3dlcmNhc2UoXFx1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcocHJvcHNbaV1bMF0pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIikgaXMgd3JvbmcgZXhwZWN0ZWQgIiArcHJvcHNbaV1bMl0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVQUEVSQ0FTRToKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1VVcHBlcmNhc2UocHJvcHNbaV1bMF0pICE9IGV4cGVjdCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuaXNVVXBwZXJjYXNlKFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzBdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIpIGlzIHdyb25nIGV4cGVjdGVkICIgKyBwcm9wc1tpXVsyXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuV0hJVEVfU1BBQ0U6CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNVV2hpdGVTcGFjZShwcm9wc1tpXVswXSkgIT0gZXhwZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVUNoYXJhY3Rlci5pc1VXaGl0ZVNwYWNlKFxcdSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHByb3BzW2ldWzBdKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIpIGlzIHdyb25nIGV4cGVjdGVkICIgKyBwcm9wc1tpXVsyXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3ROdW1lcmljUHJvcGVydGllcygpCisgICAgeworICAgICAgICAvLyBzZWUgVW5pY29kZURhdGEudHh0LCBEZXJpdmVkTnVtZXJpY1ZhbHVlcy50eHQKKyAgICAgICAgaW50IHRlc3R2YXJbXVtdID0geworICAgICAgICAgICAgeyAweDBGMzMsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDBDNjYsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuREVDSU1BTCB9LAorICAgICAgICAgICAgeyAweDIxNTksIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDAwQkQsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDAwMzEsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuREVDSU1BTCB9LAorICAgICAgICAgICAgeyAweDEwMzIwLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgwRjJCLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgwMEIyLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLkRJR0lUIH0sIC8qIFVuaWNvZGUgNC4wIGNoYW5nZSAqLworICAgICAgICAgICAgeyAweDE4MTMsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuREVDSU1BTCB9LAorICAgICAgICAgICAgeyAweDIxNzMsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDI3OEUsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuRElHSVQgfSwKKyAgICAgICAgICAgIHsgMHgxRDdGMiwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5ERUNJTUFMIH0sCisgICAgICAgICAgICB7IDB4MjQ3QSwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5ESUdJVCB9LAorICAgICAgICAgICAgeyAweDEzNzIsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDIxNkIsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDE2RUUsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDI0OUEsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDMwM0EsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDMyQjIsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDEzNzUsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDEwMzIzLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgwQkYxLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgyMTdFLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgyMTgwLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgyMTgxLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHgxMzdDLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg2MSwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OT05FIH0sCisgICAgICAgICAgICB7IDB4MzAwMCwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OT05FIH0sCisgICAgICAgICAgICB7IDB4ZmZmZSwgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OT05FIH0sCisgICAgICAgICAgICB7IDB4MTAzMDEsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTk9ORSB9LAorICAgICAgICAgICAgeyAweGUwMDMzLCBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5PTkUgfSwKKyAgICAgICAgICAgIHsgMHgxMGZmZmYsIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTk9ORSB9LAorICAgICAgICAgICAgLyogVW5pY29kZSA0LjAgQ2hhbmdlcyAqLworICAgICAgICAgICAgeyAweDk2ZjYsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg0ZTAwLCAgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OVU1FUklDIH0sCisgICAgICAgICAgICB7IDB4NThmMSwgIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDVmMTAsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg1ZjBlLCAgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OVU1FUklDIH0sCisgICAgICAgICAgICB7IDB4ODA4NiwgIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDczOTYsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg1MzQ1LCAgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OVU1FUklDIH0sCisgICAgICAgICAgICB7IDB4OTY0YywgIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDRlZGYsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfSwKKyAgICAgICAgICAgIHsgMHg0ZTA3LCAgVUNoYXJhY3Rlci5OdW1lcmljVHlwZS5OVU1FUklDIH0sCisgICAgICAgICAgICB7IDB4NGViZiwgIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUuTlVNRVJJQyB9LAorICAgICAgICAgICAgeyAweDUxNDYsICBVQ2hhcmFjdGVyLk51bWVyaWNUeXBlLk5VTUVSSUMgfQorICAgICAgICB9OworCisgICAgICAgIGRvdWJsZSBleHBlY3RlZFtdID0gey0xLyhkb3VibGUpMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS8oZG91YmxlKTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEvKGRvdWJsZSkyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLyhkb3VibGUpMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTk9fTlVNRVJJQ19WQUxVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5OT19OVU1FUklDX1ZBTFVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk5PX05VTUVSSUNfVkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuTk9fTlVNRVJJQ19WQUxVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5OT19OVU1FUklDX1ZBTFVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLk5PX05VTUVSSUNfVkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzICwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwMCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAwMDAwMCAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDAwMDAwMDAwMDAuMDAKKyAgICAgICAgfTsKKworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHZhci5sZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgIGludCBjID0gdGVzdHZhcltpXVswXTsKKyAgICAgICAgICAgIGludCB0eXBlID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUHJvcGVydHkuTlVNRVJJQ19UWVBFKTsKKyAgICAgICAgICAgIGRvdWJsZSBudiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShjKTsKKworICAgICAgICAgICAgaWYgKHR5cGUgIT0gdGVzdHZhcltpXVsxXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJVUHJvcGVydHkuTlVNRVJJQ19UWVBFKFxcdSIgKyBVdGlsaXR5LmhleChjLCA0KQorICAgICAgICAgICAgICAgICAgICAgICArICIpID0gIiArIHR5cGUgKyAiIHNob3VsZCBiZSAiICsgdGVzdHZhcltpXVsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoMC4wMDAwMDEgPD0gTWF0aC5hYnMobnYgLSBleHBlY3RlZFtpXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVUNoYXJhY3Rlci5nZXROdW1lcmljVmFsdWUoXFx1IiArIFV0aWxpdHkuaGV4KGMsIDQpCisgICAgICAgICAgICAgICAgICAgICAgICArICIpID0gIiArIG52ICsgIiBzaG91bGQgYmUgIiArIGV4cGVjdGVkW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIHByb3BlcnR5IHZhbHVlcyBBUEkuICBTZWUgSkIjMjQxMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJvcGVydHlWYWx1ZXMoKSB7CisgICAgICAgIGludCBpLCBwLCBtaW4sIG1heDsKKworICAgICAgICAvKiBNaW4gc2hvdWxkIGJlIDAgZm9yIGV2ZXJ5dGhpbmcuICovCisgICAgICAgIC8qIFVudGlsIEpCIzI0NzggaXMgZml4ZWQsIHRoZSBvbmUgZXhjZXB0aW9uIGlzIFVDSEFSX0JMT0NLLiAqLworICAgICAgICBmb3IgKHA9VVByb3BlcnR5LklOVF9TVEFSVDsgcDxVUHJvcGVydHkuSU5UX0xJTUlUOyArK3ApIHsKKyAgICAgICAgICAgIG1pbiA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZShwKTsKKyAgICAgICAgICAgIGlmIChtaW4gIT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChwID09IFVQcm9wZXJ0eS5CTE9DSykgeworICAgICAgICAgICAgICAgICAgICAvKiBUaGlzIGlzIG9rYXkuLi5mb3Igbm93LiAgU2VlIEpCIzI0ODcuCisgICAgICAgICAgICAgICAgICAgICAgIFRPRE8gVXBkYXRlIHRoaXMgZm9yIEpCIzI0ODcuICovCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5TmFtZShwLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZSgiICsgbmFtZSArICIpID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiArICIsIGV4cC4gMCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSykKKyAgICAgICAgICAgICE9IDAKKyAgICAgICAgICAgIHx8IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSykKKyAgICAgICAgICAgICAgICE9IC0xKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW4vTWF4VmFsdWUoIgorICAgICAgICAgICAgICAgICAgKyAiVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSykgaXMgd3JvbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIE1heCBzaG91bGQgYmUgLTEgZm9yIGludmFsaWQgcHJvcGVydGllcy4gKi8KKyAgICAgICAgbWF4ID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKC0xKTsKKyAgICAgICAgaWYgKG1heCAhPSAtMSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZSgtMSkgPSAiICsKKyAgICAgICAgICAgICAgICAgIG1heCArICIsIGV4cC4gLTEiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFNjcmlwdCBzaG91bGQgcmV0dXJuIDAgZm9yIGFuIGludmFsaWQgY29kZSBwb2ludC4gSWYgdGhlIEFQSQorICAgICAgICAgICB0aHJvd3MgYW4gZXhjZXB0aW9uIHRoZW4gdGhhdCdzIGZpbmUgdG9vLiAqLworICAgICAgICBmb3IgKGk9MDsgaTwyOyArK2kpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaW50IHNjcmlwdCA9IDA7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlc2MgPSBudWxsOworICAgICAgICAgICAgICAgIHN3aXRjaCAoaSkgeworICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgc2NyaXB0ID0gVVNjcmlwdC5nZXRTY3JpcHQoLTEpOworICAgICAgICAgICAgICAgICAgICBkZXNjID0gIlVTY3JpcHQuZ2V0U2NyaXB0KC0xKSI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgc2NyaXB0ID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKC0xLCBVUHJvcGVydHkuU0NSSVBUKTsKKyAgICAgICAgICAgICAgICAgICAgZGVzYyA9ICJVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoLTEsIFVQcm9wZXJ0eS5TQ1JJUFQpIjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzY3JpcHQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGRlc2MgKyAiID0gIiArIHNjcmlwdCArICIsIGV4cC4gMCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7fQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdElzQk1QKCkKKyAgICB7CisgICAgICAgIGludCBjaFtdID0gezB4MCwgLTEsIDB4ZmZmZiwgMHgxMGZmZmYsIDB4ZmYsIDB4MWZmZmZ9OworICAgICAgICBib29sZWFuIGZsYWdbXSA9IHt0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlfTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaC5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzQk1QKGNoW2ldKSAhPSBmbGFnW2ldKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IFxcdSIgKyBVdGlsaXR5LmhleChjaFtpXSwgOCkKKyAgICAgICAgICAgICAgICAgICAgICArICIgZmFpbGVkIGF0IFVDaGFyYWN0ZXIuaXNCTVAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIGFkZCBjaGFyYWN0ZXJzIGZyb20gYSBzZXJpYWxpemVkIHNldCB0byBhIG5vcm1hbCBvbmUgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIF9zZXRBZGRTZXJpYWxpemVkKFVuaWNvZGVTZXQgc2V0LCBVU2VyaWFsaXplZFNldCBzc2V0KSB7CisgICAgIC8vICBpbnQgc3RhcnQsIGVuZDsKKyAgICAgICBpbnQgaSwgY291bnQ7CisKKyAgICAgICBjb3VudD1zc2V0LmNvdW50UmFuZ2VzKCk7CisgICAgICAgaW50W10gcmFuZ2UgPSBuZXcgaW50WzJdOworICAgICAgIGZvcihpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICBzc2V0LmdldFJhbmdlKGkscmFuZ2UpOworICAgICAgICAgICBzZXQuYWRkKHJhbmdlWzBdLHJhbmdlWzFdKTsKKyAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIHNob3dBRGlmZkIoVW5pY29kZVNldCBhLCBVbmljb2RlU2V0IGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGFfbmFtZSwgU3RyaW5nIGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGV4cGVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGRpZmZJc0Vycm9yKXsKKyAgICAgICAgaW50IGksIHN0YXJ0LCBlbmQsIGxlbmd0aDsKKyAgICAgICAgYm9vbGVhbiBlcXVhbDsKKyAgICAgICAgZXF1YWw9dHJ1ZTsKKyAgICAgICAgaT0wOworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIHN0YXJ0ICA9IGEuZ2V0UmFuZ2VTdGFydChpKTsKKyAgICAgICAgICAgIGxlbmd0aCA9IChpIDwgYS5nZXRSYW5nZUNvdW50KCkpID8gMCA6IGEuZ2V0UmFuZ2VDb3VudCgpOworICAgICAgICAgICAgZW5kICAgID0gYS5nZXRSYW5nZUVuZChpKTsKKworICAgICAgICAgICAgaWYobGVuZ3RoIT0wKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVxdWFsOyAvKiBkb25lIHdpdGggY29kZSBwb2ludHMsIGdvdCBhIHN0cmluZyBvciAtMSAqLworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihleHBlY3QhPWIuY29udGFpbnMoc3RhcnQsIGVuZCkpIHsKKyAgICAgICAgICAgICAgICBlcXVhbD1mYWxzZTsKKyAgICAgICAgICAgICAgICB3aGlsZShzdGFydDw9ZW5kKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGV4cGVjdCE9Yi5jb250YWlucyhzdGFydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRpZmZJc0Vycm9yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZXhwZWN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogIisgYV9uYW1lICsiIGNvbnRhaW5zICIrIGhleChzdGFydCkrIiBidXQgIisgYl9uYW1lICsiIGRvZXMgbm90Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiAiK2FfbmFtZSArIiBhbmQgIisgYl9uYW1lKyIgYm90aCBjb250YWluICIraGV4KHN0YXJ0KSArIiBidXQgc2hvdWxkIG5vdCBpbnRlcnNlY3QiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGV4cGVjdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiaW5mbzogIithX25hbWUgKyIgY29udGFpbnMgIitoZXgoc3RhcnQpKyAiYnV0ICIgKyBiX25hbWUgKyIgZG9lcyBub3QiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiaW5mbzogIithX25hbWUgKyIgYW5kICIrYl9uYW1lKyIgYm90aCBjb250YWluICIraGV4KHN0YXJ0KSsiIGJ1dCBzaG91bGQgbm90IGludGVyc2VjdCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgKytpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgYm9vbGVhbiBzaG93QU1pbnVzQihVbmljb2RlU2V0IGEsIFVuaWNvZGVTZXQgYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYV9uYW1lLCBTdHJpbmcgYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZGlmZklzRXJyb3IpIHsKKworICAgICAgICByZXR1cm4gc2hvd0FEaWZmQihhLCBiLCBhX25hbWUsIGJfbmFtZSwgdHJ1ZSwgZGlmZklzRXJyb3IpOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBzaG93QUludGVyc2VjdEIoVW5pY29kZVNldCBhLCBVbmljb2RlU2V0IGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhX25hbWUsIFN0cmluZyBiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZGlmZklzRXJyb3IpIHsKKyAgICAgICAgcmV0dXJuIHNob3dBRGlmZkIoYSwgYiwgYV9uYW1lLCBiX25hbWUsIGZhbHNlLCBkaWZmSXNFcnJvcik7CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGNvbXBhcmVVU2V0cyhVbmljb2RlU2V0IGEsIFVuaWNvZGVTZXQgYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGFfbmFtZSwgU3RyaW5nIGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkaWZmSXNFcnJvcikgeworICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIHNob3dBTWludXNCKGEsIGIsIGFfbmFtZSwgYl9uYW1lLCBkaWZmSXNFcnJvcikgJiYKKyAgICAgICAgICAgIHNob3dBTWludXNCKGIsIGEsIGJfbmFtZSwgYV9uYW1lLCBkaWZmSXNFcnJvcik7CisgICAgfQorCisgICAvKiB2YXJpb3VzIHRlc3RzIGZvciBjb25zaXN0ZW5jeSBvZiBVQ0QgZGF0YSBhbmQgQVBJIGJlaGF2aW9yICovCisgICBwdWJsaWMgdm9pZCBUZXN0Q29uc2lzdGVuY3koKSB7CisgICAgICAgY2hhcltdIGJ1ZmZlcjE2ID0gbmV3IGNoYXJbMzAwXTsKKyAgICAgICBjaGFyW10gYnVmZmVyICAgPSBuZXcgY2hhclszMDBdOworICAgICAgIFVuaWNvZGVTZXQgc2V0MSwgc2V0Miwgc2V0Mywgc2V0NDsKKworICAgICAgIFVTZXJpYWxpemVkU2V0IHNzZXQ7CisgICAgICAgaW50IHN0YXJ0LCBlbmQ7CisgICAgICAgaW50IGksIGxlbmd0aDsKKworICAgICAgIFN0cmluZyBoeXBoZW5QYXR0ZXJuID0gIls6SHlwaGVuOl0iOworICAgICAgIFN0cmluZyBkYXNoUGF0dGVybiA9ICJbOkRhc2g6XSI7CisgICAgICAgU3RyaW5nIGxvd2VyUGF0dGVybiA9ICJbOkxvd2VyY2FzZTpdIjsKKyAgICAgICBTdHJpbmcgZm9ybWF0UGF0dGVybiA9ICJbOkNmOl0iOworICAgICAgIFN0cmluZyBhbHBoYVBhdHRlcm4gID0gICJbOkFscGhhYmV0aWM6XSI7CisKKyAgICAgICAvKgorICAgICAgICAqIEl0IHVzZWQgdG8gYmUgdGhhdCBVQ0QuaHRtbCBhbmQgaXRzIHByZWN1cnNvcnMgc2FpZAorICAgICAgICAqICJUaG9zZSBkYXNoZXMgdXNlZCB0byBtYXJrIGNvbm5lY3Rpb25zIGJldHdlZW4gcGllY2VzIG9mIHdvcmRzLAorICAgICAgICAqICBwbHVzIHRoZSBLYXRha2FuYSBtaWRkbGUgZG90LiIKKyAgICAgICAgKgorICAgICAgICAqIFVuaWNvZGUgNCBjaGFuZ2VkIDAwQUQgU29mdCBIeXBoZW4gdG8gQ2YgYW5kIHJlbW92ZWQgaXQgZnJvbSBEYXNoCisgICAgICAgICogYnV0IG5vdCBmcm9tIEh5cGhlbi4KKyAgICAgICAgKiBVVEMgOTQgKDIwMDNtYXIpIGRlY2lkZWQgdG8gbGVhdmUgaXQgdGhhdCB3YXkgYW5kIHRvIGNoYW5nZWQgVUNELmh0bWwuCisgICAgICAgICogVGhlcmVmb3JlLCBkbyBub3Qgc2hvdyBlcnJvcnMgd2hlbiB0ZXN0aW5nIHRoZSBIeXBoZW4gcHJvcGVydHkuCisgICAgICAgICovCisgICAgICAgbG9nbG4oIlN0YXJ0aW5nIHdpdGggVW5pY29kZSA0LCBpbmNvbnNpc3RlbmNpZXMgd2l0aCBbOkh5cGhlbjpdIGFyZVxuIgorICAgICAgICAgICAgICAgICAgICsgImtub3duIHRvIHRoZSBVVEMgYW5kIG5vdCBjb25zaWRlcmVkIGVycm9ycy5cbiIpOworCisgICAgICAgc2V0MT1uZXcgVW5pY29kZVNldChoeXBoZW5QYXR0ZXJuKTsKKyAgICAgICBzZXQyPW5ldyBVbmljb2RlU2V0KGRhc2hQYXR0ZXJuKTsKKworICAgICAgICAgICAvKiByZW1vdmUgdGhlIEthdGFrYW5hIG1pZGRsZSBkb3QocykgZnJvbSBzZXQxICovCisgICAgICAgICAgIHNldDEucmVtb3ZlKDB4MzBmYik7CisgICAgICAgICAgIHNldDIucmVtb3ZlICgweGZmNjUpOyAvKiBoYWxmd2lkdGggdmFyaWFudCAqLworICAgICAgICAgICBzaG93QU1pbnVzQihzZXQxLCBzZXQyLCAiWzpIeXBoZW46XSIsICJbOkRhc2g6XSIsIGZhbHNlKTsKKworCisgICAgICAgLyogY2hlY2sgdGhhdCBDZiBpcyBuZWl0aGVyIEh5cGhlbiBub3IgRGFzaCBub3IgQWxwaGFiZXRpYyAqLworICAgICAgIHNldDM9bmV3IFVuaWNvZGVTZXQoZm9ybWF0UGF0dGVybik7CisgICAgICAgc2V0ND1uZXcgVW5pY29kZVNldChhbHBoYVBhdHRlcm4pOworCisgICAgICAgc2hvd0FJbnRlcnNlY3RCKHNldDMsIHNldDEsICJbOkNmOl0iLCAiWzpIeXBoZW46XSIsIGZhbHNlKTsKKyAgICAgICBzaG93QUludGVyc2VjdEIoc2V0Mywgc2V0MiwgIls6Q2Y6XSIsICJbOkRhc2g6XSIsIHRydWUpOworICAgICAgIHNob3dBSW50ZXJzZWN0QihzZXQzLCBzZXQ0LCAiWzpDZjpdIiwgIls6QWxwaGFiZXRpYzpdIiwgdHJ1ZSk7CisgICAgICAgLyoKKyAgICAgICAgKiBDaGVjayB0aGF0IGVhY2ggbG93ZXJjYXNlIGNoYXJhY3RlciBoYXMgInNtYWxsIiBpbiBpdHMgbmFtZQorICAgICAgICAqIGFuZCBub3QgImNhcGl0YWwiLgorICAgICAgICAqIFRoZXJlIGFyZSBzb21lIHN1Y2ggY2hhcmFjdGVycywgc29tZSBvZiB3aGljaCBzZWVtIG9kZC4KKyAgICAgICAgKiBVc2UgdGhlIHZlcmJvc2UgZmxhZyB0byBzZWUgdGhlc2Ugbm90aWNlcy4KKyAgICAgICAgKi8KKyAgICAgICBzZXQxPW5ldyBVbmljb2RlU2V0KGxvd2VyUGF0dGVybik7CisKKyAgICAgICBmb3IoaT0wOzsgKytpKSB7CisvLyAgICAgICAgICAgICAgIHRyeXsKKy8vICAgICAgICAgICAgICAgICAgIGxlbmd0aD1zZXQxLmdldEl0ZW0oc2V0MSwgaSwgJnN0YXJ0LCAmZW5kLCBOVUxMLCAwLCAmZXJyb3JDb2RlKTsKKy8vICAgICAgICAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKy8vICAgICAgICAgICAgICAgICAgIGJyZWFrOworLy8gICAgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFydCA9IHNldDEuZ2V0UmFuZ2VTdGFydChpKTsKKyAgICAgICAgICAgIGVuZCA9IHNldDEuZ2V0UmFuZ2VFbmQoaSk7CisgICAgICAgICAgICBsZW5ndGggPSBpPHNldDEuZ2V0UmFuZ2VDb3VudCgpID8gc2V0MS5nZXRSYW5nZUNvdW50KCkgOiAwOworICAgICAgICAgICBpZihsZW5ndGghPTApIHsKKyAgICAgICAgICAgICAgIGJyZWFrOyAvKiBkb25lIHdpdGggY29kZSBwb2ludHMsIGdvdCBhIHN0cmluZyBvciAtMSAqLworICAgICAgICAgICB9CisKKyAgICAgICAgICAgd2hpbGUoc3RhcnQ8PWVuZCkgeworICAgICAgICAgICAgICAgU3RyaW5nIG5hbWU9VUNoYXJhY3Rlci5nZXROYW1lKHN0YXJ0KTsKKworICAgICAgICAgICAgICAgaWYoIChuYW1lLmluZGV4T2YoIlNNQUxMIik8IDAgfHwgbmFtZS5pbmRleE9mKCJDQVBJVEFMIik8LTEpICYmCisgICAgICAgICAgICAgICAgICAgbmFtZS5pbmRleE9mKCJTTUFMTCBDQVBJVEFMIik9PS0xCisgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICBsb2dsbigiaW5mbzogWzpMb3dlcmNhc2U6XSBjb250YWlucyBVKyIraGV4KHN0YXJ0KSArICIgd2hvc2UgbmFtZSBkb2VzIG5vdCBzdWdnZXN0IGxvd2VyY2FzZTogIiArIG5hbWUpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgfQorICAgICAgIH0KKworCisgICAgICAgLyoKKyAgICAgICAgKiBUZXN0IGZvciBhbiBleGFtcGxlIHRoYXQgdW5vcm1fZ2V0Q2Fub25TdGFydFNldCgpIGRlbGl2ZXJzCisgICAgICAgICogYWxsIGNoYXJhY3RlcnMgdGhhdCBjb21wb3NlIGZyb20gdGhlIGlucHV0IG9uZSwKKyAgICAgICAgKiBldmVuIGluIG11bHRpcGxlIHN0ZXBzLgorICAgICAgICAqIEZvciBleGFtcGxlLCB0aGUgc2V0IGZvciAiSSIgKDAwNDkpIHNob3VsZCBjb250YWluIGJvdGgKKyAgICAgICAgKiBJLWRpYWVyZXNpcyAoMDBDRikgYW5kIEktZGlhZXJlc2lzLWFjdXRlICgxRTJFKS4KKyAgICAgICAgKiBJbiBnZW5lcmFsLCB0aGUgc2V0IGZvciB0aGUgbWlkZGxlIHN1Y2ggY2hhcmFjdGVyIHNob3VsZCBiZSBhIHN1YnNldAorICAgICAgICAqIG9mIHRoZSBzZXQgZm9yIHRoZSBmaXJzdC4KKyAgICAgICAgKi8KKyAgICAgICBzZXQxPW5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgc2V0Mj1uZXcgVW5pY29kZVNldCgpOworICAgICAgIHNzZXQgPSBuZXcgVVNlcmlhbGl6ZWRTZXQoKTsKKyAgICAgICBOb3JtYWxpemVySW1wbC5nZXRDYW5vblN0YXJ0U2V0KDB4NDksc3NldCk7CisgICAgICAgX3NldEFkZFNlcmlhbGl6ZWQoc2V0MSwgc3NldCk7CisKKyAgICAgICAvKiBlbnVtZXJhdGUgYWxsIGNoYXJhY3RlcnMgdGhhdCBhcmUgcGxhdXNpYmxlIHRvIGJlIGxhdGluIGxldHRlcnMgKi8KKyAgICAgICBmb3Ioc3RhcnQ9MHhhMDsgc3RhcnQ8MHgyMDAwOyArK3N0YXJ0KSB7CisgICAgICAgICAgIGlmKE5vcm1hbGl6ZXJJbXBsLmdldERlY29tcG9zaXRpb24oc3RhcnQsIGZhbHNlLCBidWZmZXIxNiwwLGJ1ZmZlcjE2Lmxlbmd0aCkgPiAxICYmIGJ1ZmZlclswXT09MHgwMDQ5KSB7CisgICAgICAgICAgICAgICBzZXQyLmFkZChzdGFydCk7CisgICAgICAgICAgIH0KKyAgICAgICB9CisKKyAgICAgICBjb21wYXJlVVNldHMoc2V0MSwgc2V0MiwKKyAgICAgICAgICAgICAgICAgICAgIltjYW5vbiBzdGFydCBzZXQgb2YgMDA0OV0iLCAiW2FsbCBjIHdpdGggY2Fub24gZGVjb21wIHdpdGggMDA0OV0iLAorICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CisKKyAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpIHsKKyAgICAgICAgLy9jb3ZlciBmb3JEaWdpdAorICAgICAgICBjaGFyIGNoMSA9IFVDaGFyYWN0ZXIuZm9yRGlnaXQoNywgMTEpOworICAgICAgICBhc3NlcnRFcXVhbHMoIlVDaGFyYWN0ZXIuZm9yRGlnaXQgIiwgIjciLCBTdHJpbmcudmFsdWVPZihjaDEpKTsKKyAgICAgICAgY2hhciBjaDIgPSBVQ2hhcmFjdGVyLmZvckRpZ2l0KDE3LCAyMCk7CisgICAgICAgIGFzc2VydEVxdWFscygiVUNoYXJhY3Rlci5mb3JEaWdpdCAiLCAiaCIsIFN0cmluZy52YWx1ZU9mKGNoMikpOworCisgICAgICAgIC8vSml0dGVyYnVnIDQ0NTEsIGZvciBjb3ZlcmFnZQorICAgICAgICBmb3IgKGludCBpID0gMHgwMDQxOyBpIDwgMHgwMDVCOyBpKyspIHsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0phdmFMZXR0ZXIoaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChpKSArICIgZXhwZWN0ZWQgdG8gYmUgYSBsZXR0ZXIiKTsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc0phdmFJZGVudGlmaWVyU3RhcnQoaSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChpKSArICIgZXhwZWN0ZWQgdG8gYmUgYSBKYXZhIGlkZW50aWZpZXIgc3RhcnQgY2hhcmFjdGVyIik7CisgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNKYXZhTGV0dGVyT3JEaWdpdChpKSkKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBcXHUiICsgaGV4KGkpICsgIiBleHBlY3RlZCBub3QgdG8gYmUgYSBKYXZhIGxldHRlciIpOworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzSmF2YUlkZW50aWZpZXJQYXJ0KGkpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdSIgKyBoZXgoaSkgKyAiIGV4cGVjdGVkIHRvIGJlIGEgSmF2YSBpZGVudGlmaWVyIHBhcnQgY2hhcmFjdGVyIik7CisgICAgICAgIH0KKyAgICAgICAgY2hhcltdIHNwYWNlcyA9IHsnXHQnLCdcbicsJ1xmJywnXHInLCcgJ307CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3BhY2VzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1NwYWNlKHNwYWNlc1tpXSkpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgXFx1IiArIGhleChzcGFjZXNbaV0pICsgIiBleHBlY3RlZCB0byBiZSBhIEphdmEgc3BhY2UiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuZ2V0U3RyaW5nUHJvcGVydHlWYWx1ZShVUHJvcGVydHkuQUdFLCdcdTM0MDAnLDApLmVxdWFscygiMy4wLjAuMCIpKXsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIFxcdTM0MDAgZXhwZWN0ZWQgdG8gYmUgMy4wLjAuMCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENhc2VQcm9wc0R1bW15KCkgeworICAgICAgICAvLyBjb2RlIGNvdmVyYWdlIGZvciBVQ2FzZVByb3BzLmdldER1bW15KCkgCisgICAgICAgIGlmKFVDYXNlUHJvcHMuZ2V0RHVtbXkoKS50b2xvd2VyKDB4NDEpIT0weDQxKSB7CisgICAgICAgICAgICBlcnJsbigiVUNhc2VQcm9wcy5nZXREdW1teSgpLnRvbG93ZXIoMHg0MSkhPTB4NDEiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCaURpUHJvcHNEdW1teSgpIHsKKyAgICAgICAgLy8gY29kZSBjb3ZlcmFnZSBmb3IgVUJpRGlQcm9wcy5nZXREdW1teSgpIAorICAgICAgICBpZihVQmlEaVByb3BzLmdldER1bW15KCkuZ2V0Q2xhc3MoMHgyMCkhPTApIHsKKyAgICAgICAgICAgIGVycmxuKCJVQmlEaVByb3BzLmdldER1bW15KCkuZ2V0Q2xhc3MoMHgyMCkhPTAiKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VQcm9wZXJ0eUFsaWFzZXNUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VUHJvcGVydHlBbGlhc2VzVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0ODJlMjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VUHJvcGVydHlBbGlhc2VzVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTI4IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBOb3ZlbWJlciA1IDIwMDIKKyogU2luY2U6IElDVSAyLjQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lmxhbmc7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitwdWJsaWMgY2xhc3MgVVByb3BlcnR5QWxpYXNlc1Rlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgIAorICAgIHB1YmxpYyBVUHJvcGVydHlBbGlhc2VzVGVzdCgpIHt9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBVUHJvcGVydHlBbGlhc2VzVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBwcm9wZXJ0eSBuYW1lcyBhbmQgcHJvcGVydHkgdmFsdWUgbmFtZXMgQVBJLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQcm9wZXJ0eU5hbWVzKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IHAsIHYsIGNob2ljZSwgcmV2OworICAgICAgICBmb3IgKHA9MDsgOyArK3ApIHsKKyAgICAgICAgICAgIGJvb2xlYW4gc2F3UHJvcCA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChjaG9pY2U9MDsgOyArK2Nob2ljZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbnVsbDsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBuYW1lID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eU5hbWUocCwgY2hvaWNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzYXdQcm9wKSBsb2coInByb3AgIiArIHAgKyAiOiIpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbiA9IChuYW1lICE9IG51bGwpID8gKCJcIiIgKyBuYW1lICsgJyInKSA6ICJudWxsIjsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCIgIiArIGNob2ljZSArICI9IiArIG4pOworICAgICAgICAgICAgICAgICAgICBzYXdQcm9wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2hvaWNlID4gMCkgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChuYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogdGVzdCByZXZlcnNlIG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV2ID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eUVudW0obmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXYgIT0gcCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlByb3BlcnR5IHJvdW5kLXRyaXAgZmFpbHVyZTogIiArIHAgKyAiIC0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSArICIgLT4gIiArIHJldik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc2F3UHJvcCkgeworICAgICAgICAgICAgICAgIC8qIGxvb2tzIGxpa2UgYSB2YWxpZCBwcm9wZXJ0eTsgY2hlY2sgdGhlIHZhbHVlcyAqLworICAgICAgICAgICAgICAgIFN0cmluZyBwbmFtZSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlOYW1lKHAsIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcpOworICAgICAgICAgICAgICAgIGludCBtYXggPSAwOworICAgICAgICAgICAgICAgIGlmIChwID09IFVQcm9wZXJ0eS5DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTKSB7CisgICAgICAgICAgICAgICAgICAgIG1heCA9IDI1NTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHAgPT0gVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSykgeworICAgICAgICAgICAgICAgICAgICAvKiBpdCdzIGZhciB0b28gc2xvdyB0byBpdGVyYXRlIGFsbCB0aGUgd2F5IHVwIHRvCisgICAgICAgICAgICAgICAgICAgICAgIHRoZSByZWFsIG1heCwgVV9HQ19QX01BU0sgKi8KKyAgICAgICAgICAgICAgICAgICAgbWF4ID0gMHgxMDAwOyAvLyBVX0dDX05MX01BU0s7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwID09IFVQcm9wZXJ0eS5CTE9DSykgeworICAgICAgICAgICAgICAgICAgICAvKiBVQmxvY2tDb2RlcywgdW5saWtlIG90aGVyIHZhbHVlcywgc3RhcnQgYXQgMSAqLworICAgICAgICAgICAgICAgICAgICBtYXggPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb2dsbigiIik7CisgICAgICAgICAgICAgICAgZm9yICh2PS0xOyA7ICsrdikgeworICAgICAgICAgICAgICAgICAgICBib29sZWFuIHNhd1ZhbHVlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGZvciAoY2hvaWNlPTA7IDsgKytjaG9pY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2bmFtZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZuYW1lID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlTmFtZShwLCB2LCBjaG9pY2UpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuID0gKHZuYW1lICE9IG51bGwpID8gKCJcIiIgKyB2bmFtZSArICciJykgOiAibnVsbCI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzYXdWYWx1ZSkgbG9nKCIgIiArIHBuYW1lICsgIiwgdmFsdWUgIiArIHYgKyAiOiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiICIgKyBjaG9pY2UgKyAiPSIgKyBuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYXdWYWx1ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hvaWNlPjApIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZuYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0ZXN0IHJldmVyc2UgbWFwcGluZyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldiA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0ocCwgdm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXYgIT0gdikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiVmFsdWUgcm91bmQtdHJpcCBmYWlsdXJlICgiICsgcG5hbWUgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKTogIiArIHYgKyAiIC0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bmFtZSArICIgLT4gIiArIHJldik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChzYXdWYWx1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghc2F3VmFsdWUgJiYgdj49bWF4KSBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXNhd1Byb3ApIHsKKyAgICAgICAgICAgICAgICBpZiAocD49VVByb3BlcnR5LlNUUklOR19MSU1JVCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHA+PVVQcm9wZXJ0eS5ET1VCTEVfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgcCA9IFVQcm9wZXJ0eS5TVFJJTkdfU1RBUlQgLSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocD49VVByb3BlcnR5Lk1BU0tfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgcCA9IFVQcm9wZXJ0eS5ET1VCTEVfU1RBUlQgLSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocD49VVByb3BlcnR5LklOVF9MSU1JVCkgeworICAgICAgICAgICAgICAgICAgICBwID0gVVByb3BlcnR5Lk1BU0tfU1RBUlQgLSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocD49VVByb3BlcnR5LkJJTkFSWV9MSU1JVCkgeworICAgICAgICAgICAgICAgICAgICBwID0gVVByb3BlcnR5LklOVF9TVEFSVCAtIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgaSA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3IgKDsgaSA8PSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyk7CisgICAgICAgICAgICAgICAgIGkgKyspIHsgICAKKyAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlTmFtZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgIAorICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCIweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpIAorICAgICAgICAgICAgICAgICAgKyAiIHNob3VsZCBoYXZlIGEgbnVsbCBwcm9wZXJ0eSB2YWx1ZSBuYW1lIik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VVEYxNlRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VURjE2VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA4MmY4NzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbGFuZy9VVEYxNlRlc3QuamF2YQpAQCAtMCwwICsxLDE2NDEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5VVEYxNlV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SZXBsYWNlYWJsZVN0cmluZzsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorKiBUZXN0aW5nIGNsYXNzIGZvciBVVEYxNgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgZmViIDA5IDIwMDEKKyovCitwdWJsaWMgZmluYWwgY2xhc3MgVVRGMTZUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAgICAvLyBjb25zdHJ1Y3RvciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yCisgICAgICovCisgICAgcHVibGljIFVURjE2VGVzdCgpCisgICAgeworICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogVGVzdGluZyBVVEYxNiBjbGFzcyBtZXRob2RzIGFwcGVuZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RBcHBlbmQoKQorICAgIHsKKyAgICAgICAgICBTdHJpbmdCdWZmZXIgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoInRoaXMgaXMgYSBzdHJpbmcgIik7CisgICAgICAgICAgY2hhciBhcnJheVtdID0gbmV3IGNoYXJbVUNoYXJhY3Rlci5NQVhfVkFMVUUgPj4gMl07CisgICAgICAgICAgaW50IHN0cnNpemUgPSBzdHJidWZmLmxlbmd0aCgpOworICAgICAgICAgIGludCBhcnJheXNpemUgPSBzdHJzaXplOworCisgICAgICAgICAgVXRpbGl0eS5nZXRDaGFycyhzdHJidWZmLCAwLCBzdHJzaXplLCBhcnJheSwgMCk7CisgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBVQ2hhcmFjdGVyLk1BWF9WQUxVRTsgaSArPSAxMDApIHsKKyAgICAgICAgVVRGMTYuYXBwZW5kKHN0cmJ1ZmYsIGkpOworICAgICAgICBhcnJheXNpemUgPSBVVEYxNi5hcHBlbmQoYXJyYXksIGFycmF5c2l6ZSwgaSk7CisKKyAgICAgICAgU3RyaW5nIGFycmF5c3RyID0gbmV3IFN0cmluZyhhcnJheSwgMCwgYXJyYXlzaXplKTsKKyAgICAgICAgaWYgKCFhcnJheXN0ci5lcXVhbHMoc3RyYnVmZi50b1N0cmluZygpKSkgeworICAgICAgICBlcnJsbigiRkFJTCBDb21wYXJpbmcgY2hhciBhcnJheSBhcHBlbmQgYW5kIHN0cmluZyBhcHBlbmQgIiArCisgICAgICAgICAgICAgICJ3aXRoIDB4IiArIEludGVnZXIudG9IZXhTdHJpbmcoaSkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGhpcyBpcyB0byBjYXRlciBmb3IgdGhlIGNvbWJpbmF0aW9uIG9mIDB4REJYWCAweERDNTAgd2hpY2gKKyAgICAgICAgLy8gZm9ybXMgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAgICBpZiAoaSA9PSAweERDNTEpIHsKKyAgICAgICAgc3Ryc2l6ZSAtLTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChzdHJidWZmKSAhPSBzdHJzaXplICsgKGkgLyAxMDApICsgMSkgeworICAgICAgICBlcnJsbigiRkFJTCBDb3VudGluZyBjb2RlIHBvaW50cyBpbiBzdHJpbmcgYXBwZW5kZWQgd2l0aCAiICsKKyAgICAgICAgICAgICAgIiAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBjb3ZlcmFnZSBmb3IgbmV3IDEuNSAtIGNvdmVyIG9ubHkgc28gbm8gcmVhbCB0ZXN0CisgICAgc3RyYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICBVVEYxNi5hcHBlbmRDb2RlUG9pbnQoc3RyYnVmZiwgMHgxMDAwMCk7CisgICAgaWYgKHN0cmJ1ZmYubGVuZ3RoKCkgIT0gMikgeworICAgICAgICBlcnJsbigiZmFpbCBhcHBlbmRDb2RlUG9pbnQiKTsKKyAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyBVVEYxNiBjbGFzcyBtZXRob2RzIGJvdW5kcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCb3VuZHMoKQorICAgIHsKKyAgICAgICAgICBTdHJpbmdCdWZmZXIgc3RyYnVmZiA9CisgICAgICAgICAgICAgICAgICAgICAgICAvLzAgICAgIDEyMzQ1ICAgICA2ICAgICA3ICAgICA4ICAgICA5CisgICAgICAgIG5ldyBTdHJpbmdCdWZmZXIoIlx1ZGMwMDAxMjNcdWQ4MDBcdWRjMDBcdWQ4MDFcdWRjMDFcdWQ4MDIiKTsKKyAgICAgICAgICBTdHJpbmcgc3RyID0gc3RyYnVmZi50b1N0cmluZygpOworICAgICAgICAgIGNoYXIgYXJyYXlbXSA9IHN0ci50b0NoYXJBcnJheSgpOworICAgICAgICAgIGludCBib3VuZHR5cGVbXSA9IHtVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWSwKKyAgICAgICAgICAgICAgIFVURjE2LlNJTkdMRV9DSEFSX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgVVRGMTYuU0lOR0xFX0NIQVJfQk9VTkRBUlksCisgICAgICAgICAgICAgICBVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWSwKKyAgICAgICAgICAgICAgIFVURjE2LlNJTkdMRV9DSEFSX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgVVRGMTYuTEVBRF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICBVVEYxNi5UUkFJTF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICBVVEYxNi5MRUFEX1NVUlJPR0FURV9CT1VOREFSWSwKKyAgICAgICAgICAgICAgIFVURjE2LlRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSwKKyAgICAgICAgICAgICAgIFVURjE2LlNJTkdMRV9DSEFSX0JPVU5EQVJZfTsKKyAgICAgICAgICBpbnQgbGVuZ3RoID0gc3RyLmxlbmd0aCgpOworICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpICsrKSB7CisgICAgICAgIGlmIChVVEYxNi5ib3VuZHMoc3RyLCBpKSAhPSBib3VuZHR5cGVbaV0pIHsKKyAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIGNoZWNraW5nIGJvdW5kIHR5cGUgYXQgaW5kZXggIiArIGkpOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5ib3VuZHMoc3RyYnVmZiwgaSkgIT0gYm91bmR0eXBlW2ldKSB7CisgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBjaGVja2luZyBib3VuZCB0eXBlIGF0IGluZGV4ICIgKyBpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuYm91bmRzKGFycmF5LCAwLCBsZW5ndGgsIGkpICE9IGJvdW5kdHlwZVtpXSkgeworICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgY2hlY2tpbmcgYm91bmQgdHlwZSBhdCBpbmRleCAiICsgaSk7CisgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgLy8gZG9lcyBub3Qgc3RyYWRkbGUgYmV0d2VlbiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAgICAgIGludCBzdGFydCA9IDQ7CisgICAgICAgICAgaW50IGxpbWl0ID0gOTsKKyAgICAgICAgICBpbnQgc3ViYm91bmR0eXBlMVtdID0ge1VURjE2LlNJTkdMRV9DSEFSX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgICAgIFVURjE2LkxFQURfU1VSUk9HQVRFX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgICAgIFVURjE2LlRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICBVVEYxNi5MRUFEX1NVUlJPR0FURV9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICBVVEYxNi5UUkFJTF9TVVJST0dBVEVfQk9VTkRBUll9OworICAgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LmJvdW5kcyhhcnJheSwgc3RhcnQsIGxpbWl0LCAtMSk7CisgICAgICAgIGVycmxuKCJGQUlMIE91dCBvZiBib3VuZHMgaW5kZXggaW4gYm91bmRzIHNob3VsZCBmYWlsIik7CisgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgLy8gZ2V0dGluZyByaWQgb2Ygd2FybmluZ3MKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgfQorCisgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaW1pdCAtIHN0YXJ0OyBpICsrKSB7CisgICAgICAgIGlmIChVVEYxNi5ib3VuZHMoYXJyYXksIHN0YXJ0LCBsaW1pdCwgaSkgIT0gc3ViYm91bmR0eXBlMVtpXSkgeworICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUxFRCBTdWJhcnJheSBib3VuZHMgaW4gWyIgKyBzdGFydCArICIsICIgKyBsaW1pdCArCisgICAgICAgICAgICAgICJdIGV4cGVjdGVkICIgKyBzdWJib3VuZHR5cGUxW2ldICsgIiBhdCBvZmZzZXQgIiArIGkpOworICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gc3RhcnRzIGZyb20gdGhlIG1pZCBvZiBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgICAgICAgaW50IHN1YmJvdW5kdHlwZTJbXSA9IHtVVEYxNi5TSU5HTEVfQ0hBUl9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICBVVEYxNi5MRUFEX1NVUlJPR0FURV9CT1VOREFSWSwKKyAgICAgICAgICAgICAgICAgICBVVEYxNi5UUkFJTF9TVVJST0dBVEVfQk9VTkRBUll9OworCisgICAgICAgICAgc3RhcnQgPSA2OworICAgICAgICAgIGxpbWl0ID0gOTsKKyAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpbWl0IC0gc3RhcnQ7IGkgKyspIHsKKyAgICAgICAgaWYgKFVURjE2LmJvdW5kcyhhcnJheSwgc3RhcnQsIGxpbWl0LCBpKSAhPSBzdWJib3VuZHR5cGUyW2ldKSB7CisgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTEVEIFN1YmFycmF5IGJvdW5kcyBpbiBbIiArIHN0YXJ0ICsgIiwgIiArIGxpbWl0ICsKKyAgICAgICAgICAgICAgIl0gZXhwZWN0ZWQgIiArIHN1YmJvdW5kdHlwZTJbaV0gKyAiIGF0IG9mZnNldCAiICsgaSk7CisgICAgICAgIH0KKyAgICAgICAgICB9CisKKyAgICAgICAgICAvLyBlbmRzIGluIHRoZSBtaWQgb2YgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAgICAgIGludCBzdWJib3VuZHR5cGUzW10gPSB7VVRGMTYuTEVBRF9TVVJST0dBVEVfQk9VTkRBUlksCisgICAgICAgICAgICAgICAgICAgVVRGMTYuVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZLAorICAgICAgICAgICAgICAgICAgIFVURjE2LlNJTkdMRV9DSEFSX0JPVU5EQVJZfTsKKyAgICAgICAgICBzdGFydCA9IDU7CisgICAgICAgICAgbGltaXQgPSA4OworICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGltaXQgLSBzdGFydDsgaSArKykgeworICAgICAgICBpZiAoVVRGMTYuYm91bmRzKGFycmF5LCBzdGFydCwgbGltaXQsIGkpICE9IHN1YmJvdW5kdHlwZTNbaV0pIHsKKyAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMRUQgU3ViYXJyYXkgYm91bmRzIGluIFsiICsgc3RhcnQgKyAiLCAiICsgbGltaXQgKworICAgICAgICAgICAgICAiXSBleHBlY3RlZCAiICsgc3ViYm91bmR0eXBlM1tpXSArICIgYXQgb2Zmc2V0ICIgKyBpKTsKKyAgICAgICAgfQorICAgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIFVURjE2IGNsYXNzIG1ldGhvZHMgY2hhckF0IGFuZCBjaGFyQXRDb2RlUG9pbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhckF0KCkKKyAgICB7CisgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmJ1ZmYgPQorICAgICAgICBuZXcgU3RyaW5nQnVmZmVyKCIxMjM0NVx1ZDgwMFx1ZGMwMTY3ODkwXHVkODAwXHVkYzAyIik7CisgICAgICAgICAgaWYgKFVURjE2LmNoYXJBdChzdHJidWZmLCAwKSAhPSAnMScgfHwgVVRGMTYuY2hhckF0KHN0cmJ1ZmYsIDIpICE9ICczJworICAgICAgICAgICAgICB8fCBVVEYxNi5jaGFyQXQoc3RyYnVmZiwgNSkgIT0gMHgxMDAwMSB8fAorICAgICAgICBVVEYxNi5jaGFyQXQoc3RyYnVmZiwgNikgIT0gMHgxMDAwMSB8fAorICAgICAgICBVVEYxNi5jaGFyQXQoc3RyYnVmZiwgMTIpICE9IDB4MTAwMDIgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KHN0cmJ1ZmYsIDEzKSAhPSAweDEwMDAyKSB7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgY2hhcmFjdGVyIGZyb20gc3RyaW5nIGJ1ZmZlciBlcnJvciIgKTsKKyAgICAgICAgICB9CisgICAgICAgICAgU3RyaW5nIHN0ciA9IHN0cmJ1ZmYudG9TdHJpbmcoKTsKKyAgICAgICAgICBpZiAoVVRGMTYuY2hhckF0KHN0ciwgMCkgIT0gJzEnIHx8IFVURjE2LmNoYXJBdChzdHIsIDIpICE9ICczJyB8fAorICAgICAgICBVVEYxNi5jaGFyQXQoc3RyLCA1KSAhPSAweDEwMDAxIHx8IFVURjE2LmNoYXJBdChzdHIsIDYpICE9IDB4MTAwMDEKKyAgICAgICAgfHwgVVRGMTYuY2hhckF0KHN0ciwgMTIpICE9IDB4MTAwMDIgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KHN0ciwgMTMpICE9IDB4MTAwMDIpCisgICAgICAgIHsKKyAgICAgICAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyBjaGFyYWN0ZXIgZnJvbSBzdHJpbmcgZXJyb3IiICk7CisgICAgICAgIH0KKyAgICAgICAgICBjaGFyIGFycmF5W10gPSBzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICAgIGludCBsaW1pdCA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgICBpZiAoVVRGMTYuY2hhckF0KGFycmF5LCBzdGFydCwgbGltaXQsIDApICE9ICcxJyB8fAorICAgICAgICBVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgMikgIT0gJzMnIHx8CisgICAgICAgIFVURjE2LmNoYXJBdChhcnJheSwgc3RhcnQsIGxpbWl0LCA1KSAhPSAweDEwMDAxIHx8CisgICAgICAgIFVURjE2LmNoYXJBdChhcnJheSwgc3RhcnQsIGxpbWl0LCA2KSAhPSAweDEwMDAxIHx8CisgICAgICAgIFVURjE2LmNoYXJBdChhcnJheSwgc3RhcnQsIGxpbWl0LCAxMikgIT0gMHgxMDAwMiB8fAorICAgICAgICBVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgMTMpICE9IDB4MTAwMDIpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyBjaGFyYWN0ZXIgZnJvbSBhcnJheSBlcnJvciIgKTsKKyAgICAgICAgICB9CisgICAgICAgICAgLy8gY2hlY2sgdGhlIHN1YiBhcnJheSBoZXJlLgorICAgICAgICAgIHN0YXJ0ID0gNjsKKyAgICAgICAgICBsaW1pdCA9IDEzOworICAgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LmNoYXJBdChhcnJheSwgc3RhcnQsIGxpbWl0LCAtMSk7CisgICAgICAgIGVycmxuKCJGQUlMIG91dCBvZiBib3VuZHMgZXJyb3IgZXhwZWN0ZWQiKTsKKyAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgICB9CisgICAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuY2hhckF0KGFycmF5LCBzdGFydCwgbGltaXQsIDgpOworICAgICAgICBlcnJsbigiRkFJTCBvdXQgb2YgYm91bmRzIGVycm9yIGV4cGVjdGVkIik7CisgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChVVEYxNi5jaGFyQXQoYXJyYXksIHN0YXJ0LCBsaW1pdCwgMCkgIT0gMHhkYzAxKSB7CisgICAgICAgIGVycmxuKCJGQUlMIEV4cGVjdGVkIHJlc3VsdCBpbiBzdWJhcnJheSAweGRjMDEiKTsKKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKFVURjE2LmNoYXJBdChhcnJheSwgc3RhcnQsIGxpbWl0LCA2KSAhPSAweGQ4MDApIHsKKyAgICAgICAgZXJybG4oIkZBSUwgRXhwZWN0ZWQgcmVzdWx0IGluIHN1YmFycmF5IDB4ZDgwMCIpOworICAgICAgICAgIH0KKyAgICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyByZXBsYWNlYWJsZSA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzdHIpOworICAgICAgICAgIGlmIChVVEYxNi5jaGFyQXQocmVwbGFjZWFibGUsIDApICE9ICcxJyB8fAorICAgICAgICAgICAgICBVVEYxNi5jaGFyQXQocmVwbGFjZWFibGUsIDIpICE9ICczJyB8fAorICAgICAgICBVVEYxNi5jaGFyQXQocmVwbGFjZWFibGUsIDUpICE9IDB4MTAwMDEgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KHJlcGxhY2VhYmxlLCA2KSAhPSAweDEwMDAxIHx8CisgICAgICAgIFVURjE2LmNoYXJBdChyZXBsYWNlYWJsZSwgMTIpICE9IDB4MTAwMDIgfHwKKyAgICAgICAgVVRGMTYuY2hhckF0KHJlcGxhY2VhYmxlLCAxMykgIT0gMHgxMDAwMikgeworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIGNoYXJhY3RlciBmcm9tIHJlcGxhY2VhYmxlIGVycm9yIiApOworICAgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIFVURjE2IGNsYXNzIG1ldGhvZHMgY291bnRDb2RlUG9pbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q291bnRDb2RlUG9pbnQoKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmJ1ZmYgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICAgICAgY2hhciAgICAgICAgIGFycmF5W10gPSBudWxsOworICAgICAgICBpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQoc3RyYnVmZikgIT0gMCB8fAorICAgICAgICBVVEYxNi5jb3VudENvZGVQb2ludCgiIikgIT0gMCB8fAorICAgICAgICBVVEYxNi5jb3VudENvZGVQb2ludChhcnJheSwwICwwKSAhPSAwKSB7CisgICAgICAgIGVycmxuKCJGQUlMIENvdW50aW5nIGNvZGUgcG9pbnRzIGZvciBlbXB0eSBzdHJpbmdzIik7CisgICAgICAgIH0KKworICAgICAgICBzdHJidWZmID0gbmV3IFN0cmluZ0J1ZmZlcigidGhpcyBpcyBhIHN0cmluZyAiKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9IHN0cmJ1ZmYudG9TdHJpbmcoKTsKKyAgICAgICAgYXJyYXkgPSBzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgaW50IHNpemUgPSBzdHIubGVuZ3RoKCk7CisKKyAgICAgICAgaWYgKFVURjE2LmNvdW50Q29kZVBvaW50KGFycmF5LCAwLCAwKSAhPSAwKSB7CisgICAgICAgIGVycmxuKCJGQUlMIENvdW50aW5nIGNvZGUgcG9pbnRzIGZvciAwIG9mZnNldCBhcnJheSIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKFVURjE2LmNvdW50Q29kZVBvaW50KHN0cikgIT0gc2l6ZSB8fAorICAgICAgICBVVEYxNi5jb3VudENvZGVQb2ludChzdHJidWZmKSAhPSBzaXplIHx8CisgICAgICAgIFVURjE2LmNvdW50Q29kZVBvaW50KGFycmF5LCAwLCBzaXplKSAhPSBzaXplKSB7CisgICAgICAgIGVycmxuKCJGQUlMIENvdW50aW5nIGNvZGUgcG9pbnRzIik7CisgICAgICAgIH0KKworICAgICAgICBVVEYxNi5hcHBlbmQoc3RyYnVmZiwgMHgxMDAwMCk7CisgICAgICAgIHN0ciA9IHN0cmJ1ZmYudG9TdHJpbmcoKTsKKyAgICAgICAgYXJyYXkgPSBzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgaWYgKFVURjE2LmNvdW50Q29kZVBvaW50KHN0cikgIT0gc2l6ZSArIDEgfHwKKyAgICAgICAgVVRGMTYuY291bnRDb2RlUG9pbnQoc3RyYnVmZikgIT0gc2l6ZSArIDEgfHwKKyAgICAgICAgVVRGMTYuY291bnRDb2RlUG9pbnQoYXJyYXksIDAsIHNpemUgKyAxKSAhPSBzaXplICsgMSB8fAorICAgICAgICBVVEYxNi5jb3VudENvZGVQb2ludChhcnJheSwgMCwgc2l6ZSArIDIpICE9IHNpemUgKyAxKSB7CisgICAgICAgIGVycmxuKCJGQUlMIENvdW50aW5nIGNvZGUgcG9pbnRzIik7CisgICAgICAgIH0KKyAgICAgICAgVVRGMTYuYXBwZW5kKHN0cmJ1ZmYsIDB4NjEpOworICAgICAgICBzdHIgPSBzdHJidWZmLnRvU3RyaW5nKCk7CisgICAgICAgIGFycmF5ID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChzdHIpICE9IHNpemUgKyAyIHx8CisgICAgICAgIFVURjE2LmNvdW50Q29kZVBvaW50KHN0cmJ1ZmYpICE9IHNpemUgKyAyIHx8CisgICAgICAgIFVURjE2LmNvdW50Q29kZVBvaW50KGFycmF5LCAwLCBzaXplICsgMSkgIT0gc2l6ZSArIDEgfHwKKyAgICAgICAgVVRGMTYuY291bnRDb2RlUG9pbnQoYXJyYXksIDAsIHNpemUgKyAyKSAhPSBzaXplICsgMSB8fAorICAgICAgICBVVEYxNi5jb3VudENvZGVQb2ludChhcnJheSwgMCwgc2l6ZSArIDMpICE9IHNpemUgKyAyKSB7CisgICAgICAgIGVycmxuKCJGQUlMIENvdW50aW5nIGNvZGUgcG9pbnRzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIFVURjE2IGNsYXNzIG1ldGhvZHMgZGVsZXRlCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERlbGV0ZSgpCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLzAxMjM0NTY3ODkwMTIzNDU2CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJidWZmID0gbmV3IFN0cmluZ0J1ZmZlcigidGhlc2UgYXJlIHN0cmluZ3MiKTsKKyAgICAgICAgaW50IHNpemUgPSBzdHJidWZmLmxlbmd0aCgpOworICAgICAgICBjaGFyIGFycmF5W10gPSBzdHJidWZmLnRvU3RyaW5nKCkudG9DaGFyQXJyYXkoKTsKKworICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgMyk7CisgICAgICAgIFVURjE2LmRlbGV0ZShzdHJidWZmLCAzKTsKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDMpOworICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgMyk7CisgICAgICAgIFVURjE2LmRlbGV0ZShzdHJidWZmLCAzKTsKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDMpOworICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgc3RyYnVmZi5sZW5ndGgoKSk7CisgICAgICAgIGVycmxuKCJGQUlMIGRlbGV0aW5nIG91dCBvZiBib3VuZHMgY2hhcmFjdGVyIHNob3VsZCBmYWlsIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIFVURjE2LmRlbGV0ZShzdHJidWZmLCBzdHJidWZmLmxlbmd0aCgpIC0gMSk7CisgICAgICAgIGlmICghc3RyYnVmZi50b1N0cmluZygpLmVxdWFscygidGhlIHN0cmluZyIpKSB7CisgICAgICAgIGVycmxuKCJGQUlMIGV4cGVjdGVkIHJlc3VsdCBhZnRlciBkZWxldGluZyBjaGFyYWN0ZXJzIGlzICIgKworICAgICAgICAgICJcInRoZSBzdHJpbmdcIiIpOworICAgICAgICB9CisKKyAgICAgICAgc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgMyk7CisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDMpOworICAgICAgICBzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCAzKTsKKyAgICAgICAgc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgMyk7CisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDMpOworICAgICAgICBzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCAzKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCBzaXplKTsKKyAgICAgICAgZXJybG4oIkZBSUwgZGVsZXRpbmcgb3V0IG9mIGJvdW5kcyBjaGFyYWN0ZXIgc2hvdWxkIGZhaWwiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgc2l6ZSAtIDEpOworICAgICAgICBTdHJpbmcgc3RyID0gbmV3IFN0cmluZyhhcnJheSwgMCwgc2l6ZSk7CisgICAgICAgIGlmICghc3RyLmVxdWFscygidGhlIHN0cmluZyIpKSB7CisgICAgICAgIGVycmxuKCJGQUlMIGV4cGVjdGVkIHJlc3VsdCBhZnRlciBkZWxldGluZyBjaGFyYWN0ZXJzIGlzICIgKworICAgICAgICAgICJcInRoZSBzdHJpbmdcIiIpOworICAgICAgICB9CisgICAgLy8wMTIzNDU2NzggICAgIDkgICAgIDAxICAgICAyICAgICAgMyAgICAgNAorICAgICAgICBzdHJidWZmID0gbmV3IFN0cmluZ0J1ZmZlcigic3RyaW5nOiBcdWQ4MDBcdWRjMDAgXHVkODAxXHVkYzAxIFx1ZDgwMVx1ZGMwMSIpOworICAgICAgICBzaXplID0gc3RyYnVmZi5sZW5ndGgoKTsKKyAgICAgICAgYXJyYXkgPSBzdHJidWZmLnRvU3RyaW5nKCkudG9DaGFyQXJyYXkoKTsKKworICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgOCk7CisgICAgICAgIFVURjE2LmRlbGV0ZShzdHJidWZmLCA4KTsKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDkpOworICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgOCk7CisgICAgICAgIFVURjE2LmRlbGV0ZShzdHJidWZmLCA5KTsKKyAgICAgICAgVVRGMTYuZGVsZXRlKHN0cmJ1ZmYsIDYpOworICAgICAgICBVVEYxNi5kZWxldGUoc3RyYnVmZiwgNik7CisgICAgICAgIGlmICghc3RyYnVmZi50b1N0cmluZygpLmVxdWFscygic3RyaW5nIikpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgZXhwZWN0ZWQgcmVzdWx0IGFmdGVyIGRlbGV0aW5nIGNoYXJhY3RlcnMgaXMgXCJzdHJpbmdcIiIpOworICAgICAgICB9CisKKyAgICAgICAgc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgOCk7CisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDgpOworICAgICAgICBzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCA5KTsKKyAgICAgICAgc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgOCk7CisgICAgICAgIHNpemUgPSBVVEYxNi5kZWxldGUoYXJyYXksIHNpemUsIDkpOworICAgICAgICBzaXplID0gVVRGMTYuZGVsZXRlKGFycmF5LCBzaXplLCA2KTsKKyAgICAgICAgc2l6ZSA9IFVURjE2LmRlbGV0ZShhcnJheSwgc2l6ZSwgNik7CisgICAgICAgIHN0ciA9IG5ldyBTdHJpbmcoYXJyYXksIDAsIHNpemUpOworICAgICAgICBpZiAoIXN0ci5lcXVhbHMoInN0cmluZyIpKSB7CisgICAgICAgIGVycmxuKCJGQUlMIGV4cGVjdGVkIHJlc3VsdCBhZnRlciBkZWxldGluZyBjaGFyYWN0ZXJzIGlzIFwic3RyaW5nXCIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RpbmcgZmluZE9mZnNldEZyb21Db2RlUG9pbnQgYW5kIGZpbmRDb2RlUG9pbnRPZmZzZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0ZmluZE9mZnNldCgpCisgICAgeworICAgICAgICAvLyBqaXR0ZXJidWcgNDcKKyAgICAgICAgU3RyaW5nIHN0ciA9ICJhXHVEODAwXHVEQzAwYiI7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJidWZmID0gbmV3IFN0cmluZ0J1ZmZlcihzdHIpOworICAgICAgICBjaGFyIGFycmF5W10gPSBzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgaW50IGxpbWl0ID0gc3RyLmxlbmd0aCgpOworICAgICAgICBpZiAoVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHIsIDApICE9IDAgfHwKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc3RyLCAwKSAhPSAwIHx8CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoc3RyYnVmZiwgMCkgIT0gMCB8fAorICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHJidWZmLCAwKSAhPSAwIHx8CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDAsIGxpbWl0LCAwKSAhPSAwIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KGFycmF5LCAwLCBsaW1pdCwgMCkgIT0gMCkgeworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIHRoZSBmaXJzdCBjb2RlcG9pbnQgb2Zmc2V0IHRvIGEgc3RyaW5nIHdpdGggIiArCisgICAgICAgICAgInN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0ciwgMSkgIT0gMSB8fAorICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHIsIDEpICE9IDEgfHwKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHJidWZmLCAxKSAhPSAxIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHN0cmJ1ZmYsIDEpICE9IDEgfHwKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChhcnJheSwgMCwgbGltaXQsIDEpICE9IDEgfHwKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoYXJyYXksIDAsIGxpbWl0LCAxKSAhPSAxKSB7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgdGhlIHNlY29uZCBjb2RlcG9pbnQgb2Zmc2V0IHRvIGEgc3RyaW5nIHdpdGggIiArCisgICAgICAgICAgInN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0ciwgMikgIT0gMSB8fAorICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChzdHIsIDIpICE9IDMgfHwKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChzdHJidWZmLCAyKSAhPSAxIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHN0cmJ1ZmYsIDIpICE9IDMgfHwKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChhcnJheSwgMCwgbGltaXQsIDIpICE9IDEgfHwKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoYXJyYXksIDAsIGxpbWl0LCAyKSAhPSAzKSB7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgdGhlIHRoaXJkIGNvZGVwb2ludCBvZmZzZXQgdG8gYSBzdHJpbmcgd2l0aCAiICsKKyAgICAgICAgICAic3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoc3RyLCAzKSAhPSAyIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHN0ciwgMykgIT0gNCB8fAorICAgICAgICBVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0cmJ1ZmYsIDMpICE9IDIgfHwKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc3RyYnVmZiwgMykgIT0gNCB8fAorICAgICAgICBVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KGFycmF5LCAwLCBsaW1pdCwgMykgIT0gMiB8fAorICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChhcnJheSwgMCwgbGltaXQsIDMpICE9IDQpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyB0aGUgbGFzdCBjb2RlcG9pbnQgb2Zmc2V0IHRvIGEgc3RyaW5nIHdpdGggIiArCisgICAgICAgICAgInN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0ciwgNCkgIT0gMyB8fAorICAgICAgICBVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0cmJ1ZmYsIDQpICE9IDMgfHwKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChhcnJheSwgMCwgbGltaXQsIDQpICE9IDMpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyB0aGUgbGVuZ3RoIG9mZnNldCB0byBhIHN0cmluZyB3aXRoICIgKworICAgICAgICAgICJzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0ciwgNSk7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgdGhlIGEgbm9uLWV4aXN0ZW5jZSBjb2RlcG9pbnQgdG8gYSBzdHJpbmcgIiArCisgICAgICAgICAgIndpdGggc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIC8vIHRoaXMgaXMgYSBzdWNjZXNzCisgICAgICAgIGxvZ2xuKCJQYXNzZWQgb3V0IG9mIGJvdW5kcyBjb2RlcG9pbnQgb2Zmc2V0Iik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc3RyLCA0KTsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyB0aGUgYSBub24tZXhpc3RlbmNlIGNvZGVwb2ludCB0byBhIHN0cmluZyAiICsKKyAgICAgICAgICAid2l0aCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgLy8gdGhpcyBpcyBhIHN1Y2Nlc3MKKyAgICAgICAgbG9nbG4oIlBhc3NlZCBvdXQgb2YgYm91bmRzIGNvZGVwb2ludCBvZmZzZXQiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KHN0cmJ1ZmYsIDUpOworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIHRoZSBhIG5vbi1leGlzdGVuY2UgY29kZXBvaW50IHRvIGEgc3RyaW5nICIgKworICAgICAgICAgICJ3aXRoIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAvLyB0aGlzIGlzIGEgc3VjY2VzcworICAgICAgICBsb2dsbigiUGFzc2VkIG91dCBvZiBib3VuZHMgY29kZXBvaW50IG9mZnNldCIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KHN0cmJ1ZmYsIDQpOworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIHRoZSBhIG5vbi1leGlzdGVuY2UgY29kZXBvaW50IHRvIGEgc3RyaW5nICIgKworICAgICAgICAgICJ3aXRoIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAvLyB0aGlzIGlzIGEgc3VjY2VzcworICAgICAgICBsb2dsbigiUGFzc2VkIG91dCBvZiBib3VuZHMgY29kZXBvaW50IG9mZnNldCIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDAsIGxpbWl0LCA1KTsKKyAgICAgICAgZXJybG4oIkZBSUwgR2V0dGluZyB0aGUgYSBub24tZXhpc3RlbmNlIGNvZGVwb2ludCB0byBhIHN0cmluZyAiICsKKyAgICAgICAgICAid2l0aCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgLy8gdGhpcyBpcyBhIHN1Y2Nlc3MKKyAgICAgICAgbG9nbG4oIlBhc3NlZCBvdXQgb2YgYm91bmRzIGNvZGVwb2ludCBvZmZzZXQiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5maW5kT2Zmc2V0RnJvbUNvZGVQb2ludChhcnJheSwgMCwgbGltaXQsIDQpOworICAgICAgICBlcnJsbigiRkFJTCBHZXR0aW5nIHRoZSBhIG5vbi1leGlzdGVuY2UgY29kZXBvaW50IHRvIGEgc3RyaW5nICIgKworICAgICAgICAgICJ3aXRoIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAvLyB0aGlzIGlzIGEgc3VjY2VzcworICAgICAgICBsb2dsbigiUGFzc2VkIG91dCBvZiBib3VuZHMgY29kZXBvaW50IG9mZnNldCIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKFVURjE2LmZpbmRDb2RlUG9pbnRPZmZzZXQoYXJyYXksIDEsIDMsIDApICE9IDAgfHwKKyAgICAgICAgVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoYXJyYXksIDEsIDMsIDApICE9IDAgfHwKKyAgICAgICAgVVRGMTYuZmluZENvZGVQb2ludE9mZnNldChhcnJheSwgMSwgMywgMSkgIT0gMCB8fAorICAgICAgICBVVEYxNi5maW5kQ29kZVBvaW50T2Zmc2V0KGFycmF5LCAxLCAzLCAyKSAhPSAxIHx8CisgICAgICAgIFVURjE2LmZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KGFycmF5LCAxLCAzLCAxKSAhPSAyKSB7CisgICAgICAgIGVycmxuKCJGQUlMIEdldHRpbmcgdmFsaWQgY29kZXBvaW50IG9mZnNldCBpbiBzdWIgYXJyYXkiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RpbmcgVVRGMTYgY2xhc3MgbWV0aG9kcyBnZXRDaGFyQ291bnQsICpTdXJyb2dhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0Q2hhckNvdW50U3Vycm9nYXRlKCkKKyAgICB7CisgICAgICAgIGlmIChVVEYxNi5nZXRDaGFyQ291bnQoMHg2MSkgIT0gMSB8fAorICAgICAgICBVVEYxNi5nZXRDaGFyQ291bnQoMHgxMDAwMCkgIT0gMikgeworICAgICAgICBlcnJsbigiRkFJTCBnZXRDaGFyQ291bnQgcmVzdWx0IGZhaWx1cmUiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZSgweDYxKSAhPSAwIHx8CisgICAgICAgIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKDB4NjEpICE9IDB4NjEgfHwKKyAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKTB4NjEpIHx8CisgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpMHg2MSkgfHwKKyAgICAgICAgVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZSgweDEwMDAwKSAhPSAweGQ4MDAgfHwKKyAgICAgICAgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoMHgxMDAwMCkgIT0gMHhkYzAwIHx8CisgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhcikweGQ4MDApICE9IHRydWUgfHwKKyAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhcikweGQ4MDApIHx8CisgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhcikweGRjMDApIHx8CisgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpMHhkYzAwKSAhPSB0cnVlKSB7CisgICAgICAgIGVycmxuKCJGQUlMICpTdXJyb2dhdGUgcmVzdWx0IGZhaWx1cmUiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhcikweDYxKSB8fCAhVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpMHhkODAwKQorICAgICAgICAgICAgfHwgIVVURjE2LmlzU3Vycm9nYXRlKChjaGFyKTB4ZGMwMCkpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgaXNTdXJyb2dhdGUgcmVzdWx0IGZhaWx1cmUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RpbmcgVVRGMTYgY2xhc3MgbWV0aG9kIGluc2VydAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RJbnNlcnQoKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmJ1ZmYgPSBuZXcgU3RyaW5nQnVmZmVyKCIwMTIzNDU2Nzg5Iik7CisgICAgICAgIGNoYXIgYXJyYXlbXSA9IG5ldyBjaGFyWzEyOF07CisgICAgICAgIFV0aWxpdHkuZ2V0Q2hhcnMoc3RyYnVmZiwgMCwgc3RyYnVmZi5sZW5ndGgoKSwgYXJyYXksIDApOworICAgICAgICBpbnQgbGVuZ3RoID0gMTA7CisgICAgICAgIFVURjE2Lmluc2VydChzdHJidWZmLCA1LCAndCcpOworICAgICAgICBVVEYxNi5pbnNlcnQoc3RyYnVmZiwgNSwgJ3MnKTsKKyAgICAgICAgVVRGMTYuaW5zZXJ0KHN0cmJ1ZmYsIDUsICdlJyk7CisgICAgICAgIFVURjE2Lmluc2VydChzdHJidWZmLCA1LCAndCcpOworICAgICAgICBpZiAoIShzdHJidWZmLnRvU3RyaW5nKCkuZXF1YWxzKCIwMTIzNHRlc3Q1Njc4OSIpKSkgeworICAgICAgICBlcnJsbigiRkFJTCBpbnNlcnRpbmcgXCJ0ZXN0XCIiKTsKKyAgICAgICAgfQorICAgICAgICBsZW5ndGggPSBVVEYxNi5pbnNlcnQoYXJyYXksIGxlbmd0aCwgNSwgJ3QnKTsKKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuaW5zZXJ0KGFycmF5LCBsZW5ndGgsIDUsICdzJyk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2Lmluc2VydChhcnJheSwgbGVuZ3RoLCA1LCAnZScpOworICAgICAgICBsZW5ndGggPSBVVEYxNi5pbnNlcnQoYXJyYXksIGxlbmd0aCwgNSwgJ3QnKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9IG5ldyBTdHJpbmcoYXJyYXksIDAsIGxlbmd0aCk7CisgICAgICAgIGlmICghKHN0ci5lcXVhbHMoIjAxMjM0dGVzdDU2Nzg5IikpKSB7CisgICAgICAgIGVycmxuKCJGQUlMIGluc2VydGluZyBcInRlc3RcIiIpOworICAgICAgICB9CisgICAgICAgIFVURjE2Lmluc2VydChzdHJidWZmLCAwLCAweDEwMDAwKTsKKyAgICAgICAgVVRGMTYuaW5zZXJ0KHN0cmJ1ZmYsIDExLCAweDEwMDAwKTsKKyAgICAgICAgVVRGMTYuaW5zZXJ0KHN0cmJ1ZmYsIHN0cmJ1ZmYubGVuZ3RoKCksIDB4MTAwMDApOworICAgICAgICBpZiAoIShzdHJidWZmLnRvU3RyaW5nKCkuZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICAiXHVkODAwXHVkYzAwMDEyMzR0ZXN0XHVkODAwXHVkYzAwNTY3ODlcdWQ4MDBcdWRjMDAiKSkpIHsKKyAgICAgICAgZXJybG4oIkZBSUwgaW5zZXJ0aW5nIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyIpOworICAgICAgICB9CisgICAgICAgIGxlbmd0aCA9IFVURjE2Lmluc2VydChhcnJheSwgbGVuZ3RoLCAwLCAweDEwMDAwKTsKKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuaW5zZXJ0KGFycmF5LCBsZW5ndGgsIDExLCAweDEwMDAwKTsKKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuaW5zZXJ0KGFycmF5LCBsZW5ndGgsIGxlbmd0aCwgMHgxMDAwMCk7CisgICAgICAgIHN0ciA9IG5ldyBTdHJpbmcoYXJyYXksIDAsIGxlbmd0aCk7CisgICAgICAgIGlmICghKHN0ci5lcXVhbHMoCisgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwMDAxMjM0dGVzdFx1ZDgwMFx1ZGMwMDU2Nzg5XHVkODAwXHVkYzAwIikpKSB7CisgICAgICAgIGVycmxuKCJGQUlMIGluc2VydGluZyBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2Lmluc2VydChzdHJidWZmLCAtMSwgMCk7CisgICAgICAgIGVycmxuKCJGQUlMIGludmFsaWQgaW5zZXJ0aW9uIG9mZnNldCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5pbnNlcnQoc3RyYnVmZiwgNjQsIDApOworICAgICAgICBlcnJsbigiRkFJTCBpbnZhbGlkIGluc2VydGlvbiBvZmZzZXQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuaW5zZXJ0KGFycmF5LCBsZW5ndGgsIC0xLCAwKTsKKyAgICAgICAgZXJybG4oIkZBSUwgaW52YWxpZCBpbnNlcnRpb24gb2Zmc2V0Iik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2Lmluc2VydChhcnJheSwgbGVuZ3RoLCA2NCwgMCk7CisgICAgICAgIGVycmxuKCJGQUlMIGludmFsaWQgaW5zZXJ0aW9uIG9mZnNldCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAvLyBleGNlZWRlZCBhcnJheSBzaXplCisgICAgICAgIFVURjE2Lmluc2VydChhcnJheSwgYXJyYXkubGVuZ3RoLCA2NCwgMCk7CisgICAgICAgIGVycmxuKCJGQUlMIGludmFsaWQgaW5zZXJ0aW9uIG9mZnNldCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogVGVzdGluZyBtb3ZlQ29kZVBvaW50T2Zmc2V0IEFQSXMKKyAgICAgKi8KKworICAgIC8vCisgICAgLy8gICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQKKyAgICAvLyAgICAgIFJ1biBhIHNpbmdsZSB0ZXN0IGNhc2UgdGhyb3VnaCBlYWNoIG9mIHRoZSBtb3ZlQ29kZVBvaW50T2Zmc2V0KCkgZnVuY3Rpb25zLgorICAgIC8vICAgICAgICAgIFBhcmFtZXRlcnMgLQorICAgIC8vICAgICAgICAgICAgICBzICAgICAgICAgICAgICAgVGhlIHN0cmluZyB0byB3b3JrIGluLgorICAgIC8vICAgICAgICAgICAgICBzdGFydElkeCAgICAgICAgVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIHdpdGhpbiB0aGUgc3RyaW5nLgorICAgIC8vICAgICAgICAgICAgICBhbW91bnQgICAgICAgICAgVGhlIG51bWJlciBvZiBjb2RlIHBvaW50cyB0byBtb3ZlLgorICAgIC8vICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCAgVGhlIHN0cmluZyBpbmRleCBhZnRlciB0aGUgbW92ZSwgb3IgLTEgaWYgdGhlCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uLgorICAgIHByaXZhdGUgdm9pZCBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoU3RyaW5nIHMsIGludCBzdGFydElkeCwgaW50IGFtb3VudCwgaW50IGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIC8vIFRlc3Qgd2l0aCB0aGUgU3RyaW5nIGZsYXZvciBvZiBtb3ZlQ29kZVBvaW50T2Zmc2V0CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChzLCBzdGFydElkeCwgYW1vdW50KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChTdHJpbmcgXCIiICsgcyArICJcIiwgIiArIHN0YXJ0SWR4ICsgIiwgIiArIGFtb3VudCArICIpIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiIHJldHVybmVkICIgICsgcmVzdWx0ICsgIiwgZXhwZWN0ZWQgcmVzdWx0IHdhcyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIChleHBlY3RlZFJlc3VsdD09LTEgPyAiZXhjZXB0aW9uIiA6IEludGVnZXIudG9TdHJpbmcoZXhwZWN0ZWRSZXN1bHQpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoU3RyaW5nIFwiIiArIHMgKyAiXCIsICIgKyBzdGFydElkeCArICIsICIgKyBhbW91bnQgKyAiKSIgKworICAgICAgICAgICAgICAgICAgICAgICAgIiByZXR1cm5lZCBleGNlcHRpb24iICsgIiwgZXhwZWN0ZWQgcmVzdWx0IHdhcyAiICsgZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCB3aXRoIHRoZSBTdHJpbmdCdWZmZXIgZmxhdm9yIG9mIG1vdmVDb2RlUG9pbnRPZmZzZXQKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcihzKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KHNiLCBzdGFydElkeCwgYW1vdW50KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChTdHJpbmdCdWZmZXIgXCIiICsgcyArICJcIiwgIiArIHN0YXJ0SWR4ICsgIiwgIiArIGFtb3VudCArICIpIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiIHJldHVybmVkICIgICsgcmVzdWx0ICsgIiwgZXhwZWN0ZWQgcmVzdWx0IHdhcyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIChleHBlY3RlZFJlc3VsdD09LTEgPyAiZXhjZXB0aW9uIiA6IEludGVnZXIudG9TdHJpbmcoZXhwZWN0ZWRSZXN1bHQpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaWYgKGV4cGVjdGVkUmVzdWx0ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoU3RyaW5nQnVmZmVyIFwiIiArIHMgKyAiXCIsICIgKyBzdGFydElkeCArICIsICIgKyBhbW91bnQgKyAiKSIgKworICAgICAgICAgICAgICAgICAgICAgICAgIiByZXR1cm5lZCBleGNlcHRpb24iICsgIiwgZXhwZWN0ZWQgcmVzdWx0IHdhcyAiICsgZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCB3aXRoIHRoZSBjaGFyW10gZmxhdm9yIG9mIG1vdmVDb2RlUG9pbnRPZmZzZXQKKyAgICAgICAgY2hhciBjYVtdID0gcy50b0NoYXJBcnJheSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoY2EsIDAsIHMubGVuZ3RoKCksIHN0YXJ0SWR4LCBhbW91bnQpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KGNoYXJbXSBcIiIgKyBzICsgIlwiLCAwLCAiICsgcy5sZW5ndGgoKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCAiICsgc3RhcnRJZHggKyAiLCAiICsgYW1vdW50ICsgIikiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgcmV0dXJuZWQgIiAgKyByZXN1bHQgKyAiLCBleHBlY3RlZCByZXN1bHQgd2FzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgKGV4cGVjdGVkUmVzdWx0PT0tMSA/ICJleGNlcHRpb24iIDogSW50ZWdlci50b1N0cmluZyhleHBlY3RlZFJlc3VsdCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoZXhwZWN0ZWRSZXN1bHQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChjaGFyW10gXCIiICsgcyArICJcIiwgMCwgIiArIHMubGVuZ3RoKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgIiArIHN0YXJ0SWR4ICsgIiwgIiArIGFtb3VudCArICIpIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiIHJldHVybmVkIGV4Y2VwdGlvbiIgKyAiLCBleHBlY3RlZCByZXN1bHQgd2FzICIgKyBleHBlY3RlZFJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBQdXQgdGhlIHRlc3Qgc3RyaW5nIGludG8gdGhlIGludGVyaW9yIG9mIGEgY2hhciBhcnJheSwKKyAgICAgICAgLy8gICBydW4gdGVzdCBvbiB0aGUgc3Vic2VjdGlvbiBvZiB0aGUgYXJyYXkuCisgICAgICAgIGNoYXIgY2EyW10gPSBuZXcgY2hhcltzLmxlbmd0aCgpKzJdOworICAgICAgICBjYTJbMF0gPSAoY2hhcikweGQ4MDA7CisgICAgICAgIGNhMltzLmxlbmd0aCgpKzFdID0gKGNoYXIpMHhkOGZmOworICAgICAgICBzLmdldENoYXJzKDAsIHMubGVuZ3RoKCksIGNhMiwgMSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChjYTIsIDEsIHMubGVuZ3RoKCkrMSwgc3RhcnRJZHgsIGFtb3VudCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoY2hhcltdIFwiIiArICIuIiArIHMgKyAiLlwiLCAxLCAiICsgKHMubGVuZ3RoKCkrMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgIiArIHN0YXJ0SWR4ICsgIiwgIiArIGFtb3VudCArICIpIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIiByZXR1cm5lZCAiICArIHJlc3VsdCArICIsIGV4cGVjdGVkIHJlc3VsdCB3YXMgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAoZXhwZWN0ZWRSZXN1bHQ9PS0xID8gImV4Y2VwdGlvbiIgOiBJbnRlZ2VyLnRvU3RyaW5nKGV4cGVjdGVkUmVzdWx0KSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZFJlc3VsdCAhPSAtMSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KGNoYXJbXSBcIiIgKyAiLiIgKyBzICsgIi5cIiwgMSwgIiArIChzLmxlbmd0aCgpKzEpCisgICAgICAgICAgICAgICAgICAgICAgICArICIsICIgKyBzdGFydElkeCArICIsICIgKyBhbW91bnQgKyAiKSIgKworICAgICAgICAgICAgICAgICAgICAgICAgIiByZXR1cm5lZCBleGNlcHRpb24iICsgIiwgZXhwZWN0ZWQgcmVzdWx0IHdhcyAiICsgZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIFRlc3RNb3ZlQ29kZVBvaW50T2Zmc2V0KCkKKyAgICB7CisgICAgICAgIC8vIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldChTdHJpbmcsIHN0YXJ0SW5kZXgsIGFtb3VudCwgZXhwZWN0ZWQgKTsgIGV4cGVjdGVkPS0xIGZvciBleGNlcHRpb24uCisKKyAgICAgICAgLy8gTm8gU3VwcGxlbWVudGFyeSBjaGFycworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiYyIsIDEsICAxLCAyKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYmMiLCAxLCAtMSwgMCk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJjIiwgMSwgLTIsIC0xKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYmMiLCAxLCAgMiwgMyk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJjIiwgMSwgIDMsIC0xKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYmMiLCAxLCAgMCwgMSk7CisKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYmMiLCAzLCAwLCAzKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYmMiLCA0LCAwLCAtMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJjIiwgMCwgMCwgMCk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJjIiwgLTEsIDAsIC0xKTsKKworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIiIsIDAsIDAsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIiIsIDAsIC0xLCAtMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiIiwgMCwgMSwgLTEpOworCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYSIsIDAsIDAsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImEiLCAxLCAwLCAxKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhIiwgMCwgMSwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYSIsIDEsIC0xLCAwKTsKKworCisgICAgICAgIC8vIFN1cHBsZW1lbnRhcnkgaW4gbWlkZGxlIG9mIHN0cmluZworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBcdWRjMDBiIiwgMCwgMSwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZDgwMFx1ZGMwMGIiLCAwLCAyLCAzKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkODAwXHVkYzAwYiIsIDAsIDMsIDQpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBcdWRjMDBiIiwgMCwgNCwgLTEpOworCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZDgwMFx1ZGMwMGIiLCA0LCAtMSwgMyk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZDgwMFx1ZGMwMGIiLCA0LCAtMiwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZDgwMFx1ZGMwMGIiLCA0LCAtMywgMCk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZDgwMFx1ZGMwMGIiLCA0LCAtNCwgLTEpOworCisgICAgICAgIC8vIFN1cHBsZW1lbnRhcnkgYXQgc3RhcnQgb2Ygc3RyaW5nCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkODAwXHVkYzAwYWIiLCAwLCAxLCAyKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJcdWQ4MDBcdWRjMDBhYiIsIDEsIDEsIDIpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZDgwMFx1ZGMwMGFiIiwgMiwgMSwgMyk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkODAwXHVkYzAwYWIiLCAyLCAtMSwgMCk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkODAwXHVkYzAwYWIiLCAxLCAtMSwgMCk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkODAwXHVkYzAwYWIiLCAwLCAtMSwgLTEpOworCisKKyAgICAgICAgLy8gU3VwcGxlbWVudGFyeSBhdCBlbmQgb2Ygc3RyaW5nCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWQ4MDBcdWRjMDAiLCAxLCAxLCAyKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYlx1ZDgwMFx1ZGMwMCIsIDIsIDEsIDQpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkODAwXHVkYzAwIiwgMywgMSwgNCk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWQ4MDBcdWRjMDAiLCA0LCAxLCAtMSk7CisKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYlx1ZDgwMFx1ZGMwMCIsIDUsIC0yLCAtMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWQ4MDBcdWRjMDAiLCA0LCAtMSwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWQ4MDBcdWRjMDAiLCAzLCAtMSwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWQ4MDBcdWRjMDAiLCAyLCAtMSwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWQ4MDBcdWRjMDAiLCAxLCAtMSwgMCk7CisKKyAgICAgICAgLy8gVW5wYWlyZWQgc3Vycm9nYXRlIGluIG1pZGRsZQorICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWQ4MDBiIiwgMCwgMSwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZDgwMGIiLCAxLCAxLCAyKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkODAwYiIsIDIsIDEsIDMpOworCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZGMwMGIiLCAwLCAxLCAxKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwYiIsIDEsIDEsIDIpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWRjMDBiIiwgMiwgMSwgMyk7CisKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwXHVkODAwYiIsIDAsIDEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWRjMDBcdWQ4MDBiIiwgMSwgMSwgMik7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZGMwMFx1ZDgwMGIiLCAyLCAxLCAzKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwXHVkODAwYiIsIDMsIDEsIDQpOworCisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZDgwMGIiLCAxLCAtMSwgMCk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZDgwMGIiLCAyLCAtMSwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYVx1ZDgwMGIiLCAzLCAtMSwgMik7CisKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwYiIsIDEsIC0xLCAwKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwYiIsIDIsIC0xLCAxKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhXHVkYzAwYiIsIDMsIC0xLCAyKTsKKworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWRjMDBcdWQ4MDBiIiwgMSwgLTEsIDApOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWRjMDBcdWQ4MDBiIiwgMiwgLTEsIDEpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWRjMDBcdWQ4MDBiIiwgMywgLTEsIDIpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFcdWRjMDBcdWQ4MDBiIiwgNCwgLTEsIDMpOworCisgICAgICAgIC8vIFVucGFpcmVkIHN1cnJvZ2F0ZSBhdCBzdGFydAorICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZGMwMGFiIiwgMCwgMSwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkODAwYWIiLCAwLCAyLCAyKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJcdWQ4MDBcdWQ4MDBhYiIsIDAsIDMsIDMpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoIlx1ZGMwMFx1ZGMwMGFiIiwgMCwgNCwgNCk7CisKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJcdWRjMDBhYiIsIDIsIC0xLCAxKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJcdWQ4MDBhYiIsIDEsIC0xLCAwKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJcdWQ4MDBhYiIsIDEsIC0yLCAtMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkODAwXHVkODAwYWIiLCAyLCAtMSwgMSk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkYzAwXHVkYzAwYWIiLCAyLCAtMiwgMCk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiXHVkYzAwXHVkYzAwYWIiLCAyLCAtMywgLTEpOworCisgICAgICAgIC8vIFVucGFpcmVkIHN1cnJvZ2F0ZSBhdCBlbmQKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYlx1ZGMwMFx1ZGMwMGFiIiwgMywgMSwgNCk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWRjMDBcdWRjMDBhYiIsIDIsIDEsIDMpOworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkYzAwXHVkYzAwYWIiLCAxLCAxLCAyKTsKKworICAgICAgICBjaGVja01vdmVDb2RlUG9pbnRPZmZzZXQoImFiXHVkYzAwXHVkYzAwYWIiLCA0LCAtMSwgMyk7CisgICAgICAgIGNoZWNrTW92ZUNvZGVQb2ludE9mZnNldCgiYWJcdWRjMDBcdWRjMDBhYiIsIDMsIC0xLCAyKTsKKyAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KCJhYlx1ZGMwMFx1ZGMwMGFiIiwgMiwgLTEsIDEpOworCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLzAxMjM0NTY3ODkwICAgICAxICAgICAyICAgICAzICAgICA0NTY3ODkwMTIzNAorICAgICAgICBTdHJpbmcgc3RyID0gbmV3IFN0cmluZygiMDEyMzQ1Njc4OVx1ZDgwMFx1ZGMwMFx1ZDgwMVx1ZGMwMTAxMjM0NTY3ODkiKTsKKyAgICAgICAgaW50IG1vdmUxW10gPSB7IDEsICAyLCAgMywgIDQsICA1LCAgNiwgIDcsICA4LCAgOSwgMTAsCisgICAgICAgICAgICAgICAgICAgICAgIDEyLCAxMiwgMTQsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLAorICAgICAgICAgICAgICAgICAgICAgICAyMSwgMjIsIDIzLCAyNH07CisgICAgICAgIGludCBtb3ZlMltdID0geyAyLCAgMywgIDQsICA1LCAgNiwgIDcsICA4LCAgOSwgMTAsIDEyLAorICAgICAgICAgICAgICAgICAgICAgICAxNCwgMTQsIDE1LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwKKyAgICAgICAgICAgICAgICAgICAgICAgMjIsIDIzLCAyNCwgLTF9OworICAgICAgICBpbnQgbW92ZTNbXSA9IHsgMywgIDQsICA1LCAgNiwgIDcsICA4LCAgOSwgMTAsIDEyLCAxNCwKKyAgICAgICAgICAgICAgICAgICAgICAgMTUsIDE1LCAxNiwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsCisgICAgICAgICAgICAgICAgICAgICAgIDIzLCAyNCwgLTEsIC0xfTsKKyAgICAgICAgaW50IHNpemUgPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykgeworICAgICAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KHN0ciwgaSwgMSwgbW92ZTFbaV0pOworICAgICAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KHN0ciwgaSwgMiwgbW92ZTJbaV0pOworICAgICAgICAgICAgY2hlY2tNb3ZlQ29kZVBvaW50T2Zmc2V0KHN0ciwgaSwgMywgbW92ZTNbaV0pOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBzdHJhcnJheVtdID0gc3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGlmIChVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KHN0cmFycmF5LCA5LCAxMywgMCwgMikgIT0gMykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE1vdmluZyBvZmZzZXQgMCBieSAyIGNvZGVwb2ludCBpbiBzdWJhcnJheSBbOSwgMTNdICIgKworICAgICAgICAgICAgImV4cGVjdGVkIHJlc3VsdCAzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQoc3RyYXJyYXksIDksIDEzLCAxLCAyKSAhPSA0KSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTW92aW5nIG9mZnNldCAxIGJ5IDIgY29kZXBvaW50IGluIHN1YmFycmF5IFs5LCAxM10gIiArCisgICAgICAgICAgICAiZXhwZWN0ZWQgcmVzdWx0IDQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChzdHJhcnJheSwgMTEsIDE0LCAwLCAyKSAhPSAzKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTW92aW5nIG9mZnNldCAwIGJ5IDIgY29kZXBvaW50IGluIHN1YmFycmF5IFsxMSwgMTRdICIKKyAgICAgICAgICAgICAgICAgICAgKyAiZXhwZWN0ZWQgcmVzdWx0IDMiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3RpbmcgVVRGMTYgY2xhc3MgbWV0aG9kcyBzZXRDaGFyQXQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U2V0Q2hhckF0KCkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzdHJidWZmID0gbmV3IFN0cmluZ0J1ZmZlcigiMDEyMzQ1Iik7CisgICAgICAgIGNoYXIgYXJyYXlbXSA9IG5ldyBjaGFyWzEyOF07CisgICAgICAgIFV0aWxpdHkuZ2V0Q2hhcnMoc3RyYnVmZiwgMCwgc3RyYnVmZi5sZW5ndGgoKSwgYXJyYXksIDApOworICAgICAgICBpbnQgbGVuZ3RoID0gNjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKyspIHsKKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KHN0cmJ1ZmYsIGksICcwJyk7CisgICAgICAgIFVURjE2LnNldENoYXJBdChhcnJheSwgbGVuZ3RoLCBpLCAnMCcpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBzdHIgPSBuZXcgU3RyaW5nKGFycmF5LCAwLCBsZW5ndGgpOworICAgICAgICBpZiAoIShzdHJidWZmLnRvU3RyaW5nKCkuZXF1YWxzKCIwMDAwMDAiKSkgfHwKKyAgICAgICAgIShzdHIuZXF1YWxzKCIwMDAwMDAiKSkpIHsKKyAgICAgICAgZXJybG4oIkZBSUw6IHNldENoYXIgdG8gJzAnIGZhaWxlZCIpOworICAgICAgICB9CisgICAgICAgIFVURjE2LnNldENoYXJBdChzdHJidWZmLCAwLCAweDEwMDAwKTsKKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KHN0cmJ1ZmYsIDQsIDB4MTAwMDApOworICAgICAgICBVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgNywgMHgxMDAwMCk7CisgICAgICAgIGlmICghKHN0cmJ1ZmYudG9TdHJpbmcoKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDAwMFx1ZDgwMFx1ZGMwMDBcdWQ4MDBcdWRjMDAiKSkpIHsKKyAgICAgICAgZXJybG4oIkZBSUw6IHNldENoYXIgdG8gMHgxMDAwMCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBsZW5ndGggPSBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgMCwgMHgxMDAwMCk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2LnNldENoYXJBdChhcnJheSwgbGVuZ3RoLCA0LCAweDEwMDAwKTsKKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIDcsIDB4MTAwMDApOworICAgICAgICBzdHIgPSBuZXcgU3RyaW5nKGFycmF5LCAwLCBsZW5ndGgpOworICAgICAgICBpZiAoIShzdHIuZXF1YWxzKCJcdWQ4MDBcdWRjMDAwMFx1ZDgwMFx1ZGMwMDBcdWQ4MDBcdWRjMDAiKSkpIHsKKyAgICAgICAgZXJybG4oIkZBSUw6IHNldENoYXIgdG8gMHgxMDAwMCBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgMCwgJzAnKTsKKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KHN0cmJ1ZmYsIDEsICcxJyk7CisgICAgICAgIFVURjE2LnNldENoYXJBdChzdHJidWZmLCAyLCAnMicpOworICAgICAgICBVVEYxNi5zZXRDaGFyQXQoc3RyYnVmZiwgNCwgJzMnKTsKKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KHN0cmJ1ZmYsIDQsICc0Jyk7CisgICAgICAgIFVURjE2LnNldENoYXJBdChzdHJidWZmLCA1LCAnNScpOworICAgICAgICBpZiAoIXN0cmJ1ZmYudG9TdHJpbmcoKS5lcXVhbHMoIjAxMjM0NSIpKSB7CisgICAgICAgIGVycmxuKCJGYWlsIGNvbnZlcnRpbmcgc3VwcGxlbWVudGFyaWVzIGluIFN0cmluZ0J1ZmZlciB0byBCTVAgIiArCisgICAgICAgICAgImNoYXJhY3RlcnMiKTsKKyAgICAgICAgfQorICAgICAgICBsZW5ndGggPSBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgMCwgJzAnKTsKKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIDEsICcxJyk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2LnNldENoYXJBdChhcnJheSwgbGVuZ3RoLCAyLCAnMicpOworICAgICAgICBsZW5ndGggPSBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgNCwgJzMnKTsKKyAgICAgICAgbGVuZ3RoID0gVVRGMTYuc2V0Q2hhckF0KGFycmF5LCBsZW5ndGgsIDQsICc0Jyk7CisgICAgICAgIGxlbmd0aCA9IFVURjE2LnNldENoYXJBdChhcnJheSwgbGVuZ3RoLCA1LCAnNScpOworICAgICAgICBzdHIgPSBuZXcgU3RyaW5nKGFycmF5LCAwLCBsZW5ndGgpOworICAgICAgICBpZiAoIXN0ci5lcXVhbHMoIjAxMjM0NSIpKSB7CisgICAgICAgIGVycmxuKCJGYWlsIGNvbnZlcnRpbmcgc3VwcGxlbWVudGFyaWVzIGluIGFycmF5IHRvIEJNUCAiICsKKyAgICAgICAgICAiY2hhcmFjdGVycyIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LnNldENoYXJBdChzdHJidWZmLCAtMSwgMCk7CisgICAgICAgIGVycmxuKCJGQUlMOiBzZXR0aW5nIGNoYXJhY3RlciBhdCBpbnZhbGlkIG9mZnNldCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgLTEsIDApOworICAgICAgICBlcnJsbigiRkFJTDogc2V0dGluZyBjaGFyYWN0ZXIgYXQgaW52YWxpZCBvZmZzZXQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYuc2V0Q2hhckF0KHN0cmJ1ZmYsIGxlbmd0aCwgMCk7CisgICAgICAgIGVycmxuKCJGQUlMOiBzZXR0aW5nIGNoYXJhY3RlciBhdCBpbnZhbGlkIG9mZnNldCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi5zZXRDaGFyQXQoYXJyYXksIGxlbmd0aCwgbGVuZ3RoLCAwKTsKKyAgICAgICAgZXJybG4oIkZBSUw6IHNldHRpbmcgY2hhcmFjdGVyIGF0IGludmFsaWQgb2Zmc2V0Iik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdGluZyBVVEYxNiB2YWx1ZW9mIEFQSXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VmFsdWVPZigpCisgICAgeworICAgICAgICBpZiAoIVVURjE2LnZhbHVlT2YoMHg2MSkuZXF1YWxzKCJhIikgfHwKKyAgICAgICAgIVVURjE2LnZhbHVlT2YoMHgxMDAwMCkuZXF1YWxzKCJcdWQ4MDBcdWRjMDAiKSkgeworICAgICAgICBlcnJsbigiRkFJTDogdmFsdWVvZihjaGFyMzIpIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHN0ciA9IG5ldyBTdHJpbmcoIjAxMjM0XHVkODAwXHVkYzAwNTY3ODkiKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmJ1ZmYgPSBuZXcgU3RyaW5nQnVmZmVyKHN0cik7CisgICAgICAgIGNoYXIgYXJyYXlbXSA9IHN0ci50b0NoYXJBcnJheSgpOworICAgICAgICBpbnQgbGVuZ3RoID0gc3RyLmxlbmd0aCgpOworCisgICAgICAgIFN0cmluZyBleHBlY3RlZFtdID0geyIwIiwgIjEiLCAiMiIsICIzIiwgIjQiLCAiXHVkODAwXHVkYzAwIiwKKyAgICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwMCIsICI1IiwgIjYiLCAiNyIsICI4IiwgIjkifTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKyspIHsKKyAgICAgICAgaWYgKCFVVEYxNi52YWx1ZU9mKHN0ciwgaSkuZXF1YWxzKGV4cGVjdGVkW2ldKSB8fAorICAgICAgICAgICAgICAgICFVVEYxNi52YWx1ZU9mKHN0cmJ1ZmYsIGkpLmVxdWFscyhleHBlY3RlZFtpXSkgfHwKKyAgICAgICAgICAgICAgICAhVVRGMTYudmFsdWVPZihhcnJheSwgMCwgbGVuZ3RoLCBpKS5lcXVhbHMoZXhwZWN0ZWRbaV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHZhbHVlT2YoKSBleHBlY3RlZCAiICsgZXhwZWN0ZWRbaV0pOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYudmFsdWVPZihzdHIsIC0xKTsKKyAgICAgICAgZXJybG4oIkZBSUw6IG91dCBvZiBib3VuZHMgZXJyb3IgZXhwZWN0ZWQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYudmFsdWVPZihzdHJidWZmLCAtMSk7CisgICAgICAgIGVycmxuKCJGQUlMOiBvdXQgb2YgYm91bmRzIGVycm9yIGV4cGVjdGVkIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LnZhbHVlT2YoYXJyYXksIDAsIGxlbmd0aCwgLTEpOworICAgICAgICBlcnJsbigiRkFJTDogb3V0IG9mIGJvdW5kcyBlcnJvciBleHBlY3RlZCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi52YWx1ZU9mKHN0ciwgbGVuZ3RoKTsKKyAgICAgICAgZXJybG4oIkZBSUw6IG91dCBvZiBib3VuZHMgZXJyb3IgZXhwZWN0ZWQiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVVRGMTYudmFsdWVPZihzdHJidWZmLCBsZW5ndGgpOworICAgICAgICBlcnJsbigiRkFJTDogb3V0IG9mIGJvdW5kcyBlcnJvciBleHBlY3RlZCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi52YWx1ZU9mKGFycmF5LCAwLCBsZW5ndGgsIGxlbmd0aCk7CisgICAgICAgIGVycmxuKCJGQUlMOiBvdXQgb2YgYm91bmRzIGVycm9yIGV4cGVjdGVkIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIGlmICghVVRGMTYudmFsdWVPZihhcnJheSwgNiwgbGVuZ3RoLCAwKS5lcXVhbHMoIlx1ZGMwMCIpIHx8CisgICAgICAgICFVVEYxNi52YWx1ZU9mKGFycmF5LCAwLCA2LCA1KS5lcXVhbHMoIlx1ZDgwMCIpKSB7CisgICAgICAgIGVycmxuKCJGQUlMOiBlcnJvciBnZXR0aW5nIHBhcnRpYWwgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICBVVEYxNi52YWx1ZU9mKGFycmF5LCAzLCA1LCAtMSk7CisgICAgICAgIGVycmxuKCJGQUlMOiBvdXQgb2YgYm91bmRzIGVycm9yIGV4cGVjdGVkIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgIFVURjE2LnZhbHVlT2YoYXJyYXksIDMsIDUsIDMpOworICAgICAgICBlcnJsbigiRkFJTDogb3V0IG9mIGJvdW5kcyBlcnJvciBleHBlY3RlZCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbmRleE9mKCkKKyAgICB7CisgICAgLy8wMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUKKyAgICAgICAgU3RyaW5nIHRlc3QxICAgICA9ICJ0ZXN0IHRlc3QgdHRlc3QgdGV0ZXN0IHRlc3Rlc3Rlc3RzdHQiOworICAgICAgICBTdHJpbmcgdGVzdDIgICAgID0gInRlc3QiOworICAgICAgICBpbnQgICAgdGVzdENoYXIxID0gMHg3NDsKKyAgICAgICAgaW50ICAgIHRlc3RDaGFyMiA9IDB4MjA0MDI7CisgICAgICAgIC8vIGludCAgICB0ZXN0Q2hhcjMgPSAweGRjMDI7CisgICAgICAgIC8vIGludCAgICB0ZXN0Q2hhcjQgPSAweGQ4NDE7CisgICAgICAgIFN0cmluZyB0ZXN0MyAgICAgPSAiXHVkODQxXHVkYzAyXHUwMDcxXHVkYzAyXHVkODQxXHUwMDcxXHVkODQxXHVkYzAyXHUwMDcxXHUwMDcyXHVkODQxXHVkYzAyXHUwMDcxXHVkODQxXHVkYzAyXHUwMDcxXHVkYzAyXHVkODQxXHUwMDczIjsKKyAgICAgICAgU3RyaW5nIHRlc3Q0ICAgICA9IFVDaGFyYWN0ZXIudG9TdHJpbmcodGVzdENoYXIyKTsKKworICAgICAgICBpZiAoVVRGMTYuaW5kZXhPZih0ZXN0MSwgdGVzdDIpICE9IDAgfHwKKyAgICAgICAgICAgIFVURjE2LmluZGV4T2YodGVzdDEsIHRlc3QyLCAwKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgJyIgKyB0ZXN0MiArCisgICAgICAgICAgICAgICAgICAiJyBhdCBwb3NpdGlvbiAwIGluIHRleHQgJyIgKyB0ZXN0MSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2LmluZGV4T2YodGVzdDEsIHRlc3RDaGFyMSkgIT0gMCB8fAorICAgICAgICAgICAgVVRGMTYuaW5kZXhPZih0ZXN0MSwgdGVzdENoYXIxLCAwKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMHgiICsKKyAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcodGVzdENoYXIxKSArCisgICAgICAgICAgICAgICAgICAiIGF0IHBvc2l0aW9uIDAgaW4gdGV4dCAnIiArIHRlc3QxICsgIiciKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYuaW5kZXhPZih0ZXN0MywgdGVzdENoYXIyKSAhPSAwIHx8CisgICAgICAgICAgICBVVEYxNi5pbmRleE9mKHRlc3QzLCB0ZXN0Q2hhcjIsIDApICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJpbmRleE9mIGZhaWxlZDogZXhwZWN0ZWQgdG8gZmluZCAweCIgKworICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyh0ZXN0Q2hhcjIpICsKKyAgICAgICAgICAgICAgICAgICIgYXQgcG9zaXRpb24gMCBpbiB0ZXh0ICciICsgVXRpbGl0eS5oZXgodGVzdDMpICsgIiciKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdGVzdDUgPSAiXHVkODQxXHVkODQxXHVkYzAyIjsKKyAgICAgICAgaWYgKFVURjE2LmluZGV4T2YodGVzdDUsIHRlc3RDaGFyMikgIT0gMSB8fAorICAgICAgICAgICAgVVRGMTYuaW5kZXhPZih0ZXN0NSwgdGVzdENoYXIyLCAwKSAhPSAxKSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMHgiICsKKyAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcodGVzdENoYXIyKSArCisgICAgICAgICAgICAgICAgICAiIGF0IHBvc2l0aW9uIDAgaW4gdGV4dCAnIiArIFV0aWxpdHkuaGV4KHRlc3QzKSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2Lmxhc3RJbmRleE9mKHRlc3QxLCB0ZXN0MikgIT0gMjkgfHwKKyAgICAgICAgICAgIFVURjE2Lmxhc3RJbmRleE9mKHRlc3QxLCB0ZXN0MiwgdGVzdDEubGVuZ3RoKCkpICE9IDI5KSB7CisgICAgICAgICAgICBlcnJsbigibGFzdEluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kICciICsgdGVzdDIgKworICAgICAgICAgICAgICAgICAgIicgYXQgcG9zaXRpb24gMjkgaW4gdGV4dCAnIiArIHRlc3QxICsgIiciKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYubGFzdEluZGV4T2YodGVzdDEsIHRlc3RDaGFyMSkgIT0gMzUgfHwKKyAgICAgICAgICAgIFVURjE2Lmxhc3RJbmRleE9mKHRlc3QxLCB0ZXN0Q2hhcjEsIHRlc3QxLmxlbmd0aCgpKSAhPSAzNSkgeworICAgICAgICAgICAgZXJybG4oImxhc3RJbmRleE9mIGZhaWxlZDogZXhwZWN0ZWQgdG8gZmluZCAweCIgKworICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyh0ZXN0Q2hhcjEpICsKKyAgICAgICAgICAgICAgICAgICIgYXQgcG9zaXRpb24gMzUgaW4gdGV4dCAnIiArIHRlc3QxICsgIiciKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoVVRGMTYubGFzdEluZGV4T2YodGVzdDMsIHRlc3RDaGFyMikgIT0gMTMgfHwKKyAgICAgICAgICAgIFVURjE2Lmxhc3RJbmRleE9mKHRlc3QzLCB0ZXN0Q2hhcjIsIHRlc3QzLmxlbmd0aCgpKSAhPSAxMykgeworICAgICAgICAgICAgZXJybG4oImluZGV4T2YgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDB4IiArCisgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHRlc3RDaGFyMikgKworICAgICAgICAgICAgICAgICAgIiBhdCBwb3NpdGlvbiAxMyBpbiB0ZXh0ICciICsgVXRpbGl0eS5oZXgodGVzdDMpICsgIiciKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDA7IHN0YXJ0UG9zICE9IC0xICYmIHN0YXJ0UG9zIDwgdGVzdDEubGVuZ3RoKCk7KQorICAgICAgICB7CisgICAgICAgIHN0YXJ0UG9zID0gVVRGMTYuaW5kZXhPZih0ZXN0MSwgdGVzdDIsIHN0YXJ0UG9zKTsKKyAgICAgICAgaWYgKHN0YXJ0UG9zID49IDApIHsKKyAgICAgICAgICAgICsrIG9jY3VycmVuY2VzOworICAgICAgICAgICAgc3RhcnRQb3MgKz0gNDsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvY2N1cnJlbmNlcyAhPSA2KSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgNiBvY2N1cnJlbmNlcywgZm91bmQgIgorICAgICAgICAgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKworICAgICAgICBvY2N1cnJlbmNlcyA9IDA7CisgICAgICAgIGZvciAoaW50IHN0YXJ0UG9zID0gMTA7IHN0YXJ0UG9zICE9IC0xICYmIHN0YXJ0UG9zIDwgdGVzdDEubGVuZ3RoKCk7KQorICAgICAgICB7CisgICAgICAgIHN0YXJ0UG9zID0gVVRGMTYuaW5kZXhPZih0ZXN0MSwgdGVzdDIsIHN0YXJ0UG9zKTsKKyAgICAgICAgaWYgKHN0YXJ0UG9zID49IDApIHsKKyAgICAgICAgICAgICsrIG9jY3VycmVuY2VzOworICAgICAgICAgICAgc3RhcnRQb3MgKz0gNDsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvY2N1cnJlbmNlcyAhPSA0KSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiB3aXRoIHN0YXJ0aW5nIG9mZnNldCBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgNCBvY2N1cnJlbmNlcywgZm91bmQgIgorICAgICAgICAgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKworICAgICAgICBvY2N1cnJlbmNlcyA9IDA7CisgICAgICAgIGZvciAoaW50IHN0YXJ0UG9zID0gMDsKKyAgICAgICAgIHN0YXJ0UG9zICE9IC0xICYmIHN0YXJ0UG9zIDwgdGVzdDMubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICBzdGFydFBvcyA9IFVURjE2LmluZGV4T2YodGVzdDMsIHRlc3Q0LCBzdGFydFBvcyk7CisgICAgICAgICAgICBpZiAoc3RhcnRQb3MgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgICAgICBzdGFydFBvcyArPSAyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvY2N1cnJlbmNlcyAhPSA0KSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgNCBvY2N1cnJlbmNlcywgZm91bmQgIgorICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisKKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDEwOworICAgICAgICAgICAgIHN0YXJ0UG9zICE9IC0xICYmIHN0YXJ0UG9zIDwgdGVzdDMubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICBzdGFydFBvcyA9IFVURjE2LmluZGV4T2YodGVzdDMsIHRlc3Q0LCBzdGFydFBvcyk7CisgICAgICAgICAgICBpZiAoc3RhcnRQb3MgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgICAgICBzdGFydFBvcyArPSAyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvY2N1cnJlbmNlcyAhPSAyKSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMiBvY2N1cnJlbmNlcywgZm91bmQgIgorICAgICAgICAgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKworICAgICAgICBvY2N1cnJlbmNlcyA9IDA7CisgICAgICAgIGZvciAoaW50IHN0YXJ0UG9zID0gMDsKKyAgICAgICAgIHN0YXJ0UG9zICE9IC0xICYmIHN0YXJ0UG9zIDwgdGVzdDEubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICBzdGFydFBvcyA9IFVURjE2LmluZGV4T2YodGVzdDEsIHRlc3RDaGFyMSwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7CisgICAgICAgICAgICAgICAgc3RhcnRQb3MgKz0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gMTYpIHsKKyAgICAgICAgICAgIGVycmxuKCJpbmRleE9mIHdpdGggY2hhcmFjdGVyIGZhaWxlZDogZXhwZWN0ZWQgdG8gZmluZCAxNiBvY2N1cnJlbmNlcywgZm91bmQgIgorICAgICAgICAgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKworICAgICAgICBvY2N1cnJlbmNlcyA9IDA7CisgICAgICAgIGZvciAoaW50IHN0YXJ0UG9zID0gMTA7CisgICAgICAgICBzdGFydFBvcyAhPSAtMSAmJiBzdGFydFBvcyA8IHRlc3QxLmxlbmd0aCgpOykgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5pbmRleE9mKHRlc3QxLCB0ZXN0Q2hhcjEsIHN0YXJ0UG9zKTsKKyAgICAgICAgICAgIGlmIChzdGFydFBvcyAhPSAtMSkgeworICAgICAgICAgICAgICAgICsrIG9jY3VycmVuY2VzOworICAgICAgICAgICAgICAgIHN0YXJ0UG9zICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9jY3VycmVuY2VzICE9IDEyKSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiB3aXRoIGNoYXJhY3RlciAmIHN0YXJ0IG9mZnNldCBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMTIgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICArIG9jY3VycmVuY2VzKTsKKyAgICAgICAgfQorCisgICAgICAgIG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSAwOworICAgICAgICAgc3RhcnRQb3MgIT0gLTEgJiYgc3RhcnRQb3MgPCB0ZXN0My5sZW5ndGgoKTspIHsKKyAgICAgICAgICAgIHN0YXJ0UG9zID0gVVRGMTYuaW5kZXhPZih0ZXN0MywgdGVzdENoYXIyLCBzdGFydFBvcyk7CisgICAgICAgICAgICBpZiAoc3RhcnRQb3MgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgICAgICBzdGFydFBvcyArPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvY2N1cnJlbmNlcyAhPSA0KSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgNCBvY2N1cnJlbmNlcywgZm91bmQgIgorICAgICAgICAgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKworICAgICAgICBvY2N1cnJlbmNlcyA9IDA7CisgICAgICAgIGZvciAoaW50IHN0YXJ0UG9zID0gNTsgc3RhcnRQb3MgIT0gLTEgJiYgc3RhcnRQb3MgPCB0ZXN0My5sZW5ndGgoKTspIHsKKyAgICAgICAgICAgIHN0YXJ0UG9zID0gVVRGMTYuaW5kZXhPZih0ZXN0MywgdGVzdENoYXIyLCBzdGFydFBvcyk7CisgICAgICAgICAgICBpZiAoc3RhcnRQb3MgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgICAgICBzdGFydFBvcyArPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChvY2N1cnJlbmNlcyAhPSAzKSB7CisgICAgICAgICAgICBlcnJsbigiaW5kZXhPZiB3aXRoIGNoYXJhY3RlciAmIHN0YXJ0ICYgZW5kIG9mZnNldHMgZmFpbGVkOiBleHBlY3RlZCB0byBmaW5kIDIgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICArIG9jY3VycmVuY2VzKTsKKyAgICAgICAgfQorICAgICAgICBvY2N1cnJlbmNlcyA9IDA7CisgICAgICAgIGZvciAoaW50IHN0YXJ0UG9zID0gMzI7IHN0YXJ0UG9zICE9IC0xOykgeworICAgICAgICAgICAgc3RhcnRQb3MgPSBVVEYxNi5sYXN0SW5kZXhPZih0ZXN0MSwgdGVzdDIsIHN0YXJ0UG9zKTsKKyAgICAgICAgICAgIGlmIChzdGFydFBvcyAhPSAtMSkgeworICAgICAgICAgICAgICAgICsrIG9jY3VycmVuY2VzOworICAgICAgICAgICAgICAgIHN0YXJ0UG9zIC09IDU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9jY3VycmVuY2VzICE9IDYpIHsKKyAgICAgICAgICAgIGVycmxuKCJsYXN0SW5kZXhPZiB3aXRoIHN0YXJ0aW5nIGFuZCBlbmRpbmcgb2Zmc2V0cyBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgNCBvY2N1cnJlbmNlcywgZm91bmQgIgorICAgICAgICAgICAgICAgICAgKyBvY2N1cnJlbmNlcyk7CisgICAgICAgIH0KKyAgICAgICAgb2NjdXJyZW5jZXMgPSAwOworICAgICAgICBmb3IgKGludCBzdGFydFBvcyA9IDMyOyBzdGFydFBvcyAhPSAtMTspIHsKKyAgICAgICAgICAgIHN0YXJ0UG9zID0gVVRGMTYubGFzdEluZGV4T2YodGVzdDEsIHRlc3RDaGFyMSwgc3RhcnRQb3MpOworICAgICAgICAgICAgaWYgKHN0YXJ0UG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgKysgb2NjdXJyZW5jZXM7CisgICAgICAgICAgICAgICAgc3RhcnRQb3MgLT0gNTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gNykgeworICAgICAgICAgICAgZXJybG4oImxhc3RJbmRleE9mIHdpdGggY2hhcmFjdGVyICYgc3RhcnQgJiBlbmQgb2Zmc2V0cyBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMTEgb2NjdXJyZW5jZXMsIGZvdW5kICIKKyAgICAgICAgICArIG9jY3VycmVuY2VzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vdGVzdGluZyBVQ2hhcjMyCisgICAgICAgIG9jY3VycmVuY2VzID0gMDsKKyAgICAgICAgZm9yIChpbnQgc3RhcnRQb3MgPSB0ZXN0My5sZW5ndGgoKTsgc3RhcnRQb3MgIT0gLTE7KSB7CisgICAgICAgICAgICBzdGFydFBvcyA9IFVURjE2Lmxhc3RJbmRleE9mKHRlc3QzLCB0ZXN0Q2hhcjIsIHN0YXJ0UG9zIC0gNSk7CisgICAgICAgICAgICBpZiAoc3RhcnRQb3MgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICArKyBvY2N1cnJlbmNlczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAob2NjdXJyZW5jZXMgIT0gMykgeworICAgICAgICAgICAgZXJybG4oImxhc3RJbmRleE9mIHdpdGggY2hhcmFjdGVyICYgc3RhcnQgJiBlbmQgb2Zmc2V0cyBmYWlsZWQ6IGV4cGVjdGVkIHRvIGZpbmQgMyBvY2N1cnJlbmNlcywgZm91bmQgIgorICAgICAgICAgICsgb2NjdXJyZW5jZXMpOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGVzdGluZyBzdXBwbGVtZW50YXJ5CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSU5ERVhPRl9TVVBQTEVNRU5UQVJZX0NIQVJfLmxlbmd0aDsgaSArKykgeworICAgICAgICBpbnQgY2ggPSBJTkRFWE9GX1NVUFBMRU1FTlRBUllfQ0hBUl9baV07CisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgSU5ERVhPRl9TVVBQTEVNRU5UQVJZX0NIQVJfSU5ERVhfW2ldLmxlbmd0aDsKKyAgICAgICAgIGogKyspIHsKKyAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgaW50IGV4cGVjdGVkID0gSU5ERVhPRl9TVVBQTEVNRU5UQVJZX0NIQVJfSU5ERVhfW2ldW2pdOworICAgICAgICBpZiAgKGogPiAwKSB7CisgICAgICAgICAgICBpbmRleCA9IElOREVYT0ZfU1VQUExFTUVOVEFSWV9DSEFSX0lOREVYX1tpXVtqIC0gMV0gKyAxOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5pbmRleE9mKElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfLCBjaCwgaW5kZXgpICE9CisgICAgICAgICAgICBleHBlY3RlZCB8fAorICAgICAgICAgICAgVVRGMTYuaW5kZXhPZihJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXywKKyAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9TdHJpbmcoY2gpLCBpbmRleCkgIT0KKyAgICAgICAgICAgIGV4cGVjdGVkKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIGZpbmRpbmcgaW5kZXggZm9yIHN1cHBsZW1lbnRhcnkgMHgiICsKKyAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjaCkpOworICAgICAgICB9CisgICAgICAgIGluZGV4ID0gSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUklOR18ubGVuZ3RoKCk7CisgICAgICAgIGlmIChqIDwgSU5ERVhPRl9TVVBQTEVNRU5UQVJZX0NIQVJfSU5ERVhfW2ldLmxlbmd0aCAtIDEpIHsKKyAgICAgICAgICAgIGluZGV4ID0gSU5ERVhPRl9TVVBQTEVNRU5UQVJZX0NIQVJfSU5ERVhfW2ldW2ogKyAxXSAtIDE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFVURjE2Lmxhc3RJbmRleE9mKElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfLCBjaCwKKyAgICAgICAgICAgICAgICAgICAgICBpbmRleCkgIT0gZXhwZWN0ZWQgfHwKKyAgICAgICAgICAgIFVURjE2Lmxhc3RJbmRleE9mKElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfLAorICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIudG9TdHJpbmcoY2gpLCBpbmRleCkKKyAgICAgICAgICAgICE9IGV4cGVjdGVkKQorICAgICAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZCBmaW5kaW5nIGxhc3QgaW5kZXggZm9yIHN1cHBsZW1lbnRhcnkgMHgiICsKKyAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoY2gpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSX0lOREVYXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgaW50IGV4cGVjdGVkID0gSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUl9JTkRFWF9baV07CisgICAgICAgIGlmICAoaSA+IDApIHsKKyAgICAgICAgaW5kZXggPSBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSX0lOREVYX1tpIC0gMV0gKyAxOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5pbmRleE9mKElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfLAorICAgICAgICAgICAgICAgICAgSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUl8sIGluZGV4KSAhPSBleHBlY3RlZCkgeworICAgICAgICBlcnJsbigiRmFpbGVkIGZpbmRpbmcgaW5kZXggZm9yIHN1cHBsZW1lbnRhcnkgc3RyaW5nICIgKworICAgICAgICAgICAgICBoZXgoSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUklOR18pKTsKKyAgICAgICAgfQorICAgICAgICBpbmRleCA9IElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfLmxlbmd0aCgpOworICAgICAgICBpZiAoaSA8IElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJfSU5ERVhfLmxlbmd0aCAtIDEpIHsKKyAgICAgICAgaW5kZXggPSBJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSX0lOREVYX1tpICsgMV0gLSAxOworICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5sYXN0SW5kZXhPZihJTkRFWE9GX1NVUFBMRU1FTlRBUllfU1RSSU5HXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJfLCBpbmRleCkgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgZXJybG4oIkZhaWxlZCBmaW5kaW5nIGxhc3QgaW5kZXggZm9yIHN1cHBsZW1lbnRhcnkgc3RyaW5nICIgKworICAgICAgICAgICAgICBoZXgoSU5ERVhPRl9TVVBQTEVNRU5UQVJZX1NUUklOR18pKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlcGxhY2UoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHRlc3QxID0gIk9uZSBwb3RhdG8sIHR3byBwb3RhdG8sIHRocmVlIHBvdGF0bywgZm91clxuIjsKKyAgICAgICAgU3RyaW5nIHRlc3QyID0gInBvdGF0byI7CisgICAgICAgIFN0cmluZyB0ZXN0MyA9ICJNSVNTSVNTSVBQSSI7CisKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IFVURjE2LnJlcGxhY2UodGVzdDEsIHRlc3QyLCB0ZXN0Myk7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFZhbHVlID0KKyAgICAgICAgICAgICJPbmUgTUlTU0lTU0lQUEksIHR3byBNSVNTSVNTSVBQSSwgdGhyZWUgTUlTU0lTU0lQUEksIGZvdXJcbiI7CisgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3RlZFZhbHVlKSkgeworICAgICAgICAgICAgZXJybG4oImZpbmRBbmRSZXBsYWNlIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWRWYWx1ZSArCisgICAgICAgICAgICAgICAgICAiXCIsIGdvdCBcIiIgKyB0ZXN0MSArICJcIi4iKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3QxLCB0ZXN0MywgdGVzdDIpOworICAgICAgICBleHBlY3RlZFZhbHVlID0gdGVzdDE7CisgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3RlZFZhbHVlKSkgeworICAgICAgICAgICAgZXJybG4oImZpbmRBbmRSZXBsYWNlIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWRWYWx1ZSArCisgICAgICAgICAgICAgICAgICAiXCIsIGdvdCBcIiIgKyB0ZXN0MSArICJcIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9IFVURjE2LnJlcGxhY2UodGVzdDEsICcsJywgJ2UnKTsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZSA9ICJPbmUgcG90YXRvZSB0d28gcG90YXRvZSB0aHJlZSBwb3RhdG9lIGZvdXJcbiI7CisgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3RlZFZhbHVlKSkgeworICAgICAgICAgICAgZXJybG4oImZpbmRBbmRSZXBsYWNlIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWRWYWx1ZSArCisgICAgICAgICAgICAgICAgICAiXCIsIGdvdCBcIiIgKyB0ZXN0MSArICJcIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9IFVURjE2LnJlcGxhY2UodGVzdDEsICcsJywgMHgxMDAwMCk7CisgICAgICAgIGV4cGVjdGVkVmFsdWUgPSAiT25lIHBvdGF0b1x1ZDgwMFx1ZGMwMCB0d28gcG90YXRvXHVkODAwXHVkYzAwIHRocmVlIHBvdGF0b1x1ZDgwMFx1ZGMwMCBmb3VyXG4iOworICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRWYWx1ZSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmaW5kQW5kUmVwbGFjZSBmYWlsZWQ6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkVmFsdWUgKworICAgICAgICAgICAgICAgICAgIlwiLCBnb3QgXCIiICsgdGVzdDEgKyAiXCIuIik7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXBsYWNlKHRlc3QxLCAicG90YXRvIiwgIlx1ZDgwMFx1ZGMwMFx1ZDgwMVx1ZGMwMSIpOworICAgICAgICBleHBlY3RlZFZhbHVlID0gIk9uZSBcdWQ4MDBcdWRjMDBcdWQ4MDFcdWRjMDEsIHR3byBcdWQ4MDBcdWRjMDBcdWQ4MDFcdWRjMDEsIHRocmVlIFx1ZDgwMFx1ZGMwMFx1ZDgwMVx1ZGMwMSwgZm91clxuIjsKKyAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzKGV4cGVjdGVkVmFsdWUpKSB7CisgICAgICAgICAgICBlcnJsbigiZmluZEFuZFJlcGxhY2UgZmFpbGVkOiBleHBlY3RlZCBcIiIgKyBleHBlY3RlZFZhbHVlICsKKyAgICAgICAgICAgICAgICAgICJcIiwgZ290IFwiIiArIHRlc3QxICsgIlwiLiIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHRlc3Q0ID0gIlx1ZDgwMFx1ZDgwMFx1ZGMwMFx1ZDgwMFx1ZGMwMFx1ZGMwMFx1ZDgwMFx1ZDgwMFx1ZGMwMFx1ZDgwMFx1ZGMwMFx1ZGMwMCI7CisgICAgICAgIHJlc3VsdCA9IFVURjE2LnJlcGxhY2UodGVzdDQsIDB4ZDgwMCwgJ0EnKTsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZSA9ICJBXHVkODAwXHVkYzAwXHVkODAwXHVkYzAwXHVkYzAwQVx1ZDgwMFx1ZGMwMFx1ZDgwMFx1ZGMwMFx1ZGMwMCI7CisgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3RlZFZhbHVlKSkgeworICAgICAgICAgICAgZXJybG4oImZpbmRBbmRSZXBsYWNlIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWRWYWx1ZSArCisgICAgICAgICAgICAgICAgICAiXCIsIGdvdCBcIiIgKyB0ZXN0MSArICJcIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9IFVURjE2LnJlcGxhY2UodGVzdDQsIDB4ZEMwMCwgJ0EnKTsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZSA9ICJcdWQ4MDBcdWQ4MDBcdWRjMDBcdWQ4MDBcdWRjMDBBXHVkODAwXHVkODAwXHVkYzAwXHVkODAwXHVkYzAwQSI7CisgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3RlZFZhbHVlKSkgeworICAgICAgICAgICAgZXJybG4oImZpbmRBbmRSZXBsYWNlIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWRWYWx1ZSArCisgICAgICAgICAgICAgICAgICAiXCIsIGdvdCBcIiIgKyB0ZXN0MSArICJcIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9IFVURjE2LnJlcGxhY2UodGVzdDQsIDB4MTAwMDAsICdBJyk7CisgICAgICAgIGV4cGVjdGVkVmFsdWUgPSAiXHVkODAwQUFcdWRjMDBcdWQ4MDBBQVx1ZGMwMCI7CisgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3RlZFZhbHVlKSkgeworICAgICAgICAgICAgZXJybG4oImZpbmRBbmRSZXBsYWNlIGZhaWxlZDogZXhwZWN0ZWQgXCIiICsgZXhwZWN0ZWRWYWx1ZSArCisgICAgICAgICAgICAgICAgICAiXCIsIGdvdCBcIiIgKyB0ZXN0MSArICJcIi4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSZXZlcnNlKCkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciB0ZXN0ID0gbmV3IFN0cmluZ0J1ZmZlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAiYmFja3dhcmRzIHdvcmRzIHNheSB0byB1c2VkIEkiKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gVVRGMTYucmV2ZXJzZSh0ZXN0KTsKKyAgICAgICAgaWYgKCFyZXN1bHQudG9TdHJpbmcoKS5lcXVhbHMoIkkgZGVzdSBvdCB5YXMgc2Ryb3cgc2RyYXdrY2FiIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJyZXZlcnNlKCkgZmFpbGVkOiAgRXhwZWN0ZWQgXCJJIGRlc3Ugb3QgeWFzIHNkcm93IHNkcmF3a2NhYlwiLFxuIGdvdCBcIiIKKyAgICAgICAgICArIHJlc3VsdCArICJcIiIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciB0ZXN0YnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBVVEYxNi5hcHBlbmQodGVzdGJ1ZmZlciwgMHgyZjk5OSk7CisgICAgICAgIFVURjE2LmFwcGVuZCh0ZXN0YnVmZmVyLCAweDFkMTVmKTsKKyAgICAgICAgVVRGMTYuYXBwZW5kKHRlc3RidWZmZXIsIDB4MDBjNCk7CisgICAgICAgIFVURjE2LmFwcGVuZCh0ZXN0YnVmZmVyLCAweDFlZDApOworICAgICAgICByZXN1bHQgPSBVVEYxNi5yZXZlcnNlKHRlc3RidWZmZXIpOworICAgICAgICBpZiAocmVzdWx0LmNoYXJBdCgwKSAhPSAweDFlZDAgfHwKKyAgICAgICAgICAgIHJlc3VsdC5jaGFyQXQoMSkgIT0gMHhjNCB8fAorICAgICAgICAgICAgVVRGMTYuY2hhckF0KHJlc3VsdCwgMikgIT0gMHgxZDE1ZiB8fAorICAgICAgICAgICAgVVRGMTYuY2hhckF0KHJlc3VsdCwgNCkhPTB4MmY5OTkpIHsKKyAgICAgICAgICAgIGVycmxuKCJyZXZlcnNlKCkgZmFpbGVkIHdpdGggc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIHRoZSBzZXR0ZXIgYW5kIGdldHRlciBhcGlzIGZvciBTdHJpbmdDb21wYXJhdG9yCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFN0cmluZ0NvbXBhcmF0b3IoKQorICAgIHsKKyAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvciBjb21wYXJlID0gbmV3IFVURjE2LlN0cmluZ0NvbXBhcmF0b3IoKTsKKyAgICAgICAgaWYgKGNvbXBhcmUuZ2V0Q29kZVBvaW50Q29tcGFyZSgpICE9IGZhbHNlKSB7CisgICAgICAgICAgICBlcnJsbigiRGVmYXVsdCBzdHJpbmcgY29tcGFyYXRvciBzaG91bGQgYmUgY29kZSB1bml0IGNvbXBhcmUiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29tcGFyZS5nZXRJZ25vcmVDYXNlKCkgIT0gZmFsc2UpIHsKKyAgICAgICAgICAgIGVycmxuKCJEZWZhdWx0IHN0cmluZyBjb21wYXJhdG9yIHNob3VsZCBiZSBjYXNlIHNlbnNpdGl2ZSBjb21wYXJlIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBhcmUuZ2V0SWdub3JlQ2FzZU9wdGlvbigpCisgICAgICAgICAgICAhPSBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKSB7CisgICAgICAgICAgICBlcnJsbigiRGVmYXVsdCBzdHJpbmcgY29tcGFyYXRvciBzaG91bGQgaGF2ZSBmb2xkIGNhc2UgZGVmYXVsdCBjb21wYXJlIik7CisgICAgICAgIH0KKyAgICAgICAgY29tcGFyZS5zZXRDb2RlUG9pbnRDb21wYXJlKHRydWUpOworICAgICAgICBpZiAoY29tcGFyZS5nZXRDb2RlUG9pbnRDb21wYXJlKCkgIT0gdHJ1ZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgY29kZSBwb2ludCBjb21wYXJlIik7CisgICAgICAgIH0KKyAgICAgICAgY29tcGFyZS5zZXRDb2RlUG9pbnRDb21wYXJlKGZhbHNlKTsKKyAgICAgICAgaWYgKGNvbXBhcmUuZ2V0Q29kZVBvaW50Q29tcGFyZSgpICE9IGZhbHNlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBjb2RlIHBvaW50IGNvbXBhcmUiKTsKKyAgICAgICAgfQorICAgICAgICBjb21wYXJlLnNldElnbm9yZUNhc2UodHJ1ZSwgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIGlmIChjb21wYXJlLmdldElnbm9yZUNhc2UoKSAhPSB0cnVlCisgICAgICAgICAgICB8fCBjb21wYXJlLmdldElnbm9yZUNhc2VPcHRpb24oKQorICAgICAgICAhPSBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBpZ25vcmUgY2FzZSBhbmQgb3B0aW9ucyIpOworICAgICAgICB9CisgICAgICAgIGNvbXBhcmUuc2V0SWdub3JlQ2FzZShmYWxzZSwgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpOworICAgICAgICBpZiAoY29tcGFyZS5nZXRJZ25vcmVDYXNlKCkgIT0gZmFsc2UKKyAgICAgICAgICAgIHx8IGNvbXBhcmUuZ2V0SWdub3JlQ2FzZU9wdGlvbigpCisgICAgICAgICE9IFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBpZ25vcmUgY2FzZSBhbmQgb3B0aW9ucyIpOworICAgICAgICB9CisgICAgICAgIGNvbXBhcmUuc2V0SWdub3JlQ2FzZSh0cnVlLCBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk7CisgICAgICAgIGlmIChjb21wYXJlLmdldElnbm9yZUNhc2UoKSAhPSB0cnVlCisgICAgICAgICAgICB8fCBjb21wYXJlLmdldElnbm9yZUNhc2VPcHRpb24oKQorICAgICAgICAhPSBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgaWdub3JlIGNhc2UgYW5kIG9wdGlvbnMiKTsKKyAgICAgICAgfQorICAgICAgICBjb21wYXJlLnNldElnbm9yZUNhc2UoZmFsc2UsIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICBpZiAoY29tcGFyZS5nZXRJZ25vcmVDYXNlKCkgIT0gZmFsc2UKKyAgICAgICAgICAgIHx8IGNvbXBhcmUuZ2V0SWdub3JlQ2FzZU9wdGlvbigpCisgICAgICAgICE9IFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGlnbm9yZSBjYXNlIGFuZCBvcHRpb25zIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29kZVBvaW50Q29tcGFyZSgpCisgICAgeworICAgICAgICAvLyB0aGVzZSBzdHJpbmdzIGFyZSBpbiBhc2NlbmRpbmcgb3JkZXIKKyAgICAgICAgU3RyaW5nIHN0cltdID0geyJcdTAwNjEiLCAiXHUyMGFjXHVkODAxIiwgIlx1MjBhY1x1ZDgwMFx1ZGMwMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVkODAwIiwgIlx1ZDgwMFx1ZmY2MSIsICJcdWRmZmYiLAorICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmY2MVx1ZGZmZiIsICJcdWZmNjFcdWQ4MDBcdWRjMDIiLCAiXHVkODAwXHVkYzAyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdWQ4NGRcdWRjNTYifTsKKyAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvciBjcGNvbXBhcmUKKyAgICAgICAgICAgID0gbmV3IFVURjE2LlN0cmluZ0NvbXBhcmF0b3IodHJ1ZSwgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKTsKKyAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvciBjdWNvbXBhcmUKKyAgICAgICAgICAgID0gbmV3IFVURjE2LlN0cmluZ0NvbXBhcmF0b3IoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoIC0gMTsgKysgaSkgeworICAgICAgICAgICAgaWYgKGNwY29tcGFyZS5jb21wYXJlKHN0cltpXSwgc3RyW2kgKyAxXSkgPj0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogY29tcGFyZSgpIGluIGNvZGUgcG9pbnQgb3JkZXIgZmFpbHMgZm9yIHN0cmluZyAiCisgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChzdHJbaV0pICsgIiBhbmQgIgorICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgoc3RyW2kgKyAxXSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gdGVzdCBjb2RlIHVuaXQgY29tcGFyZQorICAgICAgICAgICAgaWYgKGN1Y29tcGFyZS5jb21wYXJlKHN0cltpXSwgc3RyW2kgKyAxXSkKKyAgICAgICAgICAgICAgICAhPSBzdHJbaV0uY29tcGFyZVRvKHN0cltpICsgMV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBjb21wYXJlKCkgaW4gY29kZSB1bml0IG9yZGVyIGZhaWxzIGZvciBzdHJpbmcgIgorICAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgoc3RyW2ldKSArICIgYW5kICIKKyAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHN0cltpICsgMV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDYXNlQ29tcGFyZSgpCisgICAgeworICAgICAgICBTdHJpbmcgbWl4ZWQgPSAiXHUwMDYxXHUwMDQyXHUwMTMxXHUwM2EzXHUwMGRmXHVmYjAzXHVkOTNmXHVkZmZmIjsKKyAgICAgICAgU3RyaW5nIG90aGVyRGVmYXVsdCA9ICJcdTAwNDFcdTAwNjJcdTAxMzFcdTAzYzNcdTAwNzNcdTAwNTNcdTAwNDZcdTAwNjZcdTAwNDlcdWQ5M2ZcdWRmZmYiOworICAgICAgICBTdHJpbmcgb3RoZXJFeGNsdWRlU3BlY2lhbEkgPSAiXHUwMDQxXHUwMDYyXHUwMTMxXHUwM2MzXHUwMDUzXHUwMDczXHUwMDY2XHUwMDQ2XHUwMDY5XHVkOTNmXHVkZmZmIjsKKyAgICAgICAgU3RyaW5nIGRpZmZlcmVudCA9ICJcdTAwNDFcdTAwNjJcdTAxMzFcdTAzYzNcdTAwNzNcdTAwNTNcdTAwNDZcdTAwNjZcdTAwNDlcdWQ5M2ZcdWRmZmQiOworCisgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IgY29tcGFyZSA9IG5ldyBVVEYxNi5TdHJpbmdDb21wYXJhdG9yKCk7CisgICAgICAgIGNvbXBhcmUuc2V0SWdub3JlQ2FzZSh0cnVlLCBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKTsKKyAgICAgICAgLy8gdGVzdCB1X3N0cmNhc2VjbXAoKQorICAgICAgICBpbnQgcmVzdWx0ID0gY29tcGFyZS5jb21wYXJlKG1peGVkLCBvdGhlckRlZmF1bHQpOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogZGVmYXVsdCBjb21wYXJlKG1peGVkLCBvdGhlcikgPSAiICsgcmVzdWx0CisgICAgICAgICAgICAgICAgICArICIgaW5zdGVhZCBvZiAwIik7CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0IHVfc3RyY2FzZWNtcCgpIC0gZXhjbHVkZSBzcGVjaWFsIGkKKyAgICAgICAgY29tcGFyZS5zZXRJZ25vcmVDYXNlKHRydWUsCisgICAgICAgICAgICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk7CisgICAgICAgIHJlc3VsdCA9IGNvbXBhcmUuY29tcGFyZShtaXhlZCwgb3RoZXJFeGNsdWRlU3BlY2lhbEkpOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogZXhjbHVkZV9pIGNvbXBhcmUobWl4ZWQsIG90aGVyKSA9ICIgKyByZXN1bHQKKyAgICAgICAgICAgICAgICAgICsgIiBpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3QgdV9zdHJjYXNlY21wKCkKKyAgICAgICAgY29tcGFyZS5zZXRJZ25vcmVDYXNlKHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKTsKKyAgICAgICAgcmVzdWx0ID0gY29tcGFyZS5jb21wYXJlKG1peGVkLCBkaWZmZXJlbnQpOworICAgICAgICBpZiAocmVzdWx0IDw9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogZGVmYXVsdCBjb21wYXJlKG1peGVkLCBkaWZmZXJlbnQpID0gIiArIHJlc3VsdAorICAgICAgICAgICAgICAgICAgKyAiIGluc3RlYWQgb2YgcG9zaXRpdmUiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3Qgc3Vic3RyaW5ncyAtIHN0b3AgYmVmb3JlIHRoZSBzaGFycCBzIChVKzAwZGYpCisgICAgICAgIGNvbXBhcmUuc2V0SWdub3JlQ2FzZSh0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIHJlc3VsdCA9IGNvbXBhcmUuY29tcGFyZShtaXhlZC5zdWJzdHJpbmcoMCwgNCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmZXJlbnQuc3Vic3RyaW5nKDAsIDQpKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiZXJyb3I6IGRlZmF1bHQgY29tcGFyZShtaXhlZCBzdWJzdHJpbmcsIGRpZmZlcmVudCBzdWJzdHJpbmcpID0gIgorICAgICAgICAgICsgcmVzdWx0ICsgIiBpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgfQorICAgICAgICAvLyB0ZXN0IHN1YnN0cmluZ3MgLSBzdG9wIGluIHRoZSBtaWRkbGUgb2YgdGhlIHNoYXJwIHMgKFUrMDBkZikKKyAgICAgICAgY29tcGFyZS5zZXRJZ25vcmVDYXNlKHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKTsKKyAgICAgICAgcmVzdWx0ID0gY29tcGFyZS5jb21wYXJlKG1peGVkLnN1YnN0cmluZygwLCA1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZmZlcmVudC5zdWJzdHJpbmcoMCwgNSkpOworICAgICAgICBpZiAocmVzdWx0IDw9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvcjogZGVmYXVsdCBjb21wYXJlKG1peGVkIHN1YnN0cmluZywgZGlmZmVyZW50IHN1YnN0cmluZykgPSAiCisgICAgICAgICAgKyByZXN1bHQgKyAiIGluc3RlYWQgb2YgcG9zaXRpdmUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RIYXNNb3JlQ29kZVBvaW50c1RoYW4oKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHN0ciA9ICJcdTAwNjFcdTAwNjJcdWQ4MDBcdWRjMDBcdWQ4MDFcdWRjMDFcdTAwNjNcdWQ4MDJcdTAwNjQiCisgICAgICAgICsgIlx1ZGMwM1x1MDA2NVx1MDA2Nlx1ZDgwNFx1ZGMwNFx1ZDgwNVx1ZGMwNVx1MDA2NyI7CisgICAgICAgIGludCBsZW5ndGggPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIHdoaWxlIChsZW5ndGggPj0gMCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbGVuZ3RoOyArKyBpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSBzdHIuc3Vic3RyaW5nKDAsIGkpOworICAgICAgICAgICAgICAgIGZvciAoaW50IG51bWJlciA9IC0xOyBudW1iZXIgPD0gKChsZW5ndGggLSBpKSArIDIpOyArKyBudW1iZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBmbGFnID0gVVRGMTYuaGFzTW9yZUNvZGVQb2ludHNUaGFuKHMsIG51bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChmbGFnICE9IChVVEYxNi5jb3VudENvZGVQb2ludChzKSA+IG51bWJlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJoYXNNb3JlQ29kZVBvaW50c1RoYW4oIiArIFV0aWxpdHkuaGV4KHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsICIgKyBudW1iZXIgKyAiKSA9ICIgKyBmbGFnICsgIiBpcyB3cm9uZyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLS0gbGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGVzdGluZyBmb3IgbnVsbCBiYWQgaW5wdXQKKyAgICAgICAgZm9yKGxlbmd0aCA9IC0xOyBsZW5ndGggPD0gMTsgKysgbGVuZ3RoKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBsZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBudW1iZXIgPSAtMjsgbnVtYmVyIDw9IDI7ICsrIG51bWJlcikgeworICAgICAgICAgICAgICAgICAgICBib29sZWFuIGZsYWcgPSBVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4oKFN0cmluZyludWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZsYWcgIT0gKFVURjE2LmNvdW50Q29kZVBvaW50KChTdHJpbmcpbnVsbCkgPiBudW1iZXIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiaGFzTW9yZUNvZGVQb2ludHNUaGFuKG51bGwsICIgKyBudW1iZXIgKyAiKSA9ICIKKyAgICAgICAgICAgICAgICAgICsgZmxhZyArICIgaXMgd3JvbmciKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgd2hpbGUgKGxlbmd0aCA+PSAwKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBsZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcyA9IG5ldyBTdHJpbmdCdWZmZXIoc3RyLnN1YnN0cmluZygwLCBpKSk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgbnVtYmVyID0gLTE7IG51bWJlciA8PSAoKGxlbmd0aCAtIGkpICsgMik7ICsrIG51bWJlcikgeworICAgICAgICAgICAgICAgICAgICBib29sZWFuIGZsYWcgPSBVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4ocywgbnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZsYWcgIT0gKFVURjE2LmNvdW50Q29kZVBvaW50KHMpID4gbnVtYmVyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImhhc01vcmVDb2RlUG9pbnRzVGhhbigiICsgVXRpbGl0eS5oZXgocykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgIiArIG51bWJlciArICIpID0gIiArIGZsYWcgKyAiIGlzIHdyb25nIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAtLSBsZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0aW5nIGZvciBudWxsIGJhZCBpbnB1dAorICAgICAgICBmb3IgKGxlbmd0aCA9IC0xOyBsZW5ndGggPD0gMTsgKysgbGVuZ3RoKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBsZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBudW1iZXIgPSAtMjsgbnVtYmVyIDw9IDI7ICsrIG51bWJlcikgeworICAgICAgICAgICAgICAgICAgICBib29sZWFuIGZsYWcgPSBVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTdHJpbmdCdWZmZXIpbnVsbCwgbnVtYmVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZsYWcKKyAgICAgICAgICAgICAgICAgICAgICAgICE9IChVVEYxNi5jb3VudENvZGVQb2ludCgoU3RyaW5nQnVmZmVyKW51bGwpID4gbnVtYmVyKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiaGFzTW9yZUNvZGVQb2ludHNUaGFuKG51bGwsICIgKyBudW1iZXIgKyAiKSA9ICIKKyAgICAgICAgICAgICAgICAgICsgZmxhZyArICIgaXMgd3JvbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBjaGFyIHN0cmFycmF5W10gPSBzdHIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgd2hpbGUgKGxlbmd0aCA+PSAwKSB7CisgICAgICAgICAgICBmb3IgKGludCBsaW1pdCA9IDA7IGxpbWl0IDw9IGxlbmd0aDsgKysgbGltaXQpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBzdGFydCA9IDA7IHN0YXJ0IDw9IGxpbWl0OyArKyBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBudW1iZXIgPSAtMTsgbnVtYmVyIDw9ICgobGltaXQgLSBzdGFydCkgKyAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICArKyBudW1iZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZmxhZyA9IFVURjE2Lmhhc01vcmVDb2RlUG9pbnRzVGhhbihzdHJhcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQsIGxpbWl0LCBudW1iZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZsYWcgIT0gKFVURjE2LmNvdW50Q29kZVBvaW50KHN0cmFycmF5LCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCkgPiBudW1iZXIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oImhhc01vcmVDb2RlUG9pbnRzVGhhbigiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBVdGlsaXR5LmhleChzdHIuc3Vic3RyaW5nKHN0YXJ0LCBsaW1pdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCAiICsgc3RhcnQgKyAiLCAiICsgbGltaXQgKyAiLCAiICsgbnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiKSA9ICIgKyBmbGFnICsgIiBpcyB3cm9uZyIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLS0gbGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGVzdGluZyBmb3IgbnVsbCBiYWQgaW5wdXQKKyAgICAgICAgZm9yIChsZW5ndGggPSAtMTsgbGVuZ3RoIDw9IDE7ICsrIGxlbmd0aCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbGVuZ3RoOyArKyBpKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgbnVtYmVyID0gLTI7IG51bWJlciA8PSAyOyArKyBudW1iZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBmbGFnID0gVVRGMTYuaGFzTW9yZUNvZGVQb2ludHNUaGFuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3RyaW5nQnVmZmVyKW51bGwsIG51bWJlcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChmbGFnCisgICAgICAgICAgICAgICAgICAgICAgICAhPSAoVVRGMTYuY291bnRDb2RlUG9pbnQoKFN0cmluZ0J1ZmZlciludWxsKSA+IG51bWJlcikpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oImhhc01vcmVDb2RlUG9pbnRzVGhhbihudWxsLCAiICsgbnVtYmVyICsgIikgPSAiCisgICAgICAgICAgICAgICAgICArIGZsYWcgKyAiIGlzIHdyb25nIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gYmFkIGlucHV0CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4oc3RyYXJyYXksIC0yLCAtMSwgNSk7CisgICAgICAgICAgICBlcnJsbigiaGFzTW9yZUNvZGVQb2ludHNUaGFuKGNoYXJhcnJheSkgd2l0aCBuZWdhdGl2ZSBpbmRleGVzIGhhcyB0byB0aHJvdyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFVURjE2Lmhhc01vcmVDb2RlUG9pbnRzVGhhbihzdHJhcnJheSwgNSwgMiwgNSk7CisgICAgICAgICAgICBlcnJsbigiaGFzTW9yZUNvZGVQb2ludHNUaGFuKGNoYXJhcnJheSkgd2l0aCBsaW1pdCBsZXNzIHRoYW4gc3RhcnQgaW5kZXggaGFzIHRvIHRocm93IGFuIGV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFVURjE2Lmhhc01vcmVDb2RlUG9pbnRzVGhhbiBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKFVURjE2Lmhhc01vcmVDb2RlUG9pbnRzVGhhbihzdHJhcnJheSwgLTIsIDIsIDUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImhhc01vcmVDb2RlUG9pbnRzVGhhbihjaGFyYXJyYXkpIHdpdGggbmVnYXRpdmUgc3RhcnQgaW5kZXhlcyBjYW4ndCByZXR1cm4gdHJ1ZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE5ld1N0cmluZygpIHsKKyAgICBmaW5hbCBpbnRbXSBjb2RlUG9pbnRzID0geworICAgICAgICBVQ2hhcmFjdGVyLnRvQ29kZVBvaW50KFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFLCBVQ2hhcmFjdGVyLk1BWF9MT1dfU1VSUk9HQVRFKSwKKyAgICAgICAgVUNoYXJhY3Rlci50b0NvZGVQb2ludChVQ2hhcmFjdGVyLk1BWF9ISUdIX1NVUlJPR0FURSwgVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSksCisgICAgICAgIFVDaGFyYWN0ZXIuTUFYX0hJR0hfU1VSUk9HQVRFLAorICAgICAgICAnQScsCisgICAgICAgIC0xLAorICAgIH07CisKKyAgICBmaW5hbCBTdHJpbmcgY3BTdHJpbmcgPSAiIiArCisgICAgICAgIFVDaGFyYWN0ZXIuTUlOX0hJR0hfU1VSUk9HQVRFICsKKyAgICAgICAgVUNoYXJhY3Rlci5NQVhfTE9XX1NVUlJPR0FURSArCisgICAgICAgIFVDaGFyYWN0ZXIuTUFYX0hJR0hfU1VSUk9HQVRFICsKKyAgICAgICAgVUNoYXJhY3Rlci5NSU5fTE9XX1NVUlJPR0FURSArCisgICAgICAgIFVDaGFyYWN0ZXIuTUFYX0hJR0hfU1VSUk9HQVRFICsKKyAgICAgICAgJ0EnOworCisgICAgZmluYWwgaW50W11bXSB0ZXN0cyA9IHsKKyAgICAgICAgeyAwLCAxLCAwLCAyIH0sCisgICAgICAgIHsgMCwgMiwgMCwgNCB9LAorICAgICAgICB7IDEsIDEsIDIsIDIgfSwKKyAgICAgICAgeyAxLCAyLCAyLCAzIH0sCisgICAgICAgIHsgMSwgMywgMiwgNCB9LAorICAgICAgICB7IDIsIDIsIDQsIDIgfSwKKyAgICAgICAgeyAyLCAzLCAwLCAtMSB9LAorICAgICAgICB7IDQsIDUsIDAsIC0xIH0sCisgICAgICAgIHsgMywgLTEsIDAsIC0xIH0KKyAgICB9OworCisgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaW50W10gdCA9IHRlc3RzW2ldOworICAgICAgICBpbnQgcyA9IHRbMF07CisgICAgICAgIGludCBjID0gdFsxXTsKKyAgICAgICAgaW50IHJzID0gdFsyXTsKKyAgICAgICAgaW50IHJjID0gdFszXTsKKworICAgICAgICBFeGNlcHRpb24gZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgIFN0cmluZyBzdHIgPSBVVEYxNi5uZXdTdHJpbmcoY29kZVBvaW50cywgcywgYyk7CisgICAgICAgIGlmIChyYyA9PSAtMSB8fCAhc3RyLmVxdWFscyhjcFN0cmluZy5zdWJzdHJpbmcocnMsIHJzK3JjKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmYWlsZWQgY29kZVBvaW50cyBpdGVyOiAiICsgaSArICIgc3RhcnQ6ICIgKyBzICsgIiBsZW46ICIgKyBjKTsKKyAgICAgICAgfQorICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlMSkgeworICAgICAgICBlID0gZTE7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlMikgeworICAgICAgICBlID0gZTI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJjICE9IC0xKSB7CisgICAgICAgIGVycmxuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmcpCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICBVVEYxNlRlc3QgdGVzdCA9IG5ldyBVVEYxNlRlc3QoKTsKKyAgICAgICAgdGVzdC5ydW4oYXJnKTsKKyAgICAgICAgLy8gdGVzdC5UZXN0Q2FzZUNvbXBhcmUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgU3RyaW5nIElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJJTkdfID0KKyAgICAgICAgIlx1ZDg0MVx1ZGMwMlx1MDA3MVx1ZGMwMlx1ZDg0MVx1MDA3MVx1ZDg0MVx1ZGMwMlx1MDA3MVx1MDA3MiIgKworICAgICAgICAiXHVkODQxXHVkYzAyXHUwMDcxXHVkODQxXHVkYzAyXHUwMDcxXHVkYzAyXHVkODQxXHUwMDczIjsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgSU5ERVhPRl9TVVBQTEVNRU5UQVJZX0NIQVJfW10gPQorICAgIHsweDcxLCAweGQ4NDEsIDB4ZGMwMiwKKyAgICAgVVRGMTZVdGlsLmdldFJhd1N1cHBsZW1lbnRhcnkoKGNoYXIpMHhkODQxLAorICAgICAgICAgICAgICAgICAoY2hhcikweGRjMDIpfTsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgSU5ERVhPRl9TVVBQTEVNRU5UQVJZX0NIQVJfSU5ERVhfW11bXSA9CisgICAge3syLCA1LCA4LCAxMiwgMTV9LAorICAgICB7NCwgMTd9LAorICAgICB7MywgMTZ9LAorICAgICB7MCwgNiwgMTAsIDEzfQorICAgIH07CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgU3RyaW5nIElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJfID0gIlx1ZGMwMlx1ZDg0MSI7CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IElOREVYT0ZfU1VQUExFTUVOVEFSWV9TVFJfSU5ERVhfW10gPQorICAgIHszLCAxNn07CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9tYW5pZmVzdC50ZXN0LnN0dWIgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbWFuaWZlc3QudGVzdC5zdHViCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxYWQ0OTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvbWFuaWZlc3QudGVzdC5zdHViCkBAIC0wLDAgKzEsMTQgQEAKK01hbmlmZXN0LVZlcnNpb246IDEuMAorQ2xhc3MtUGF0aDogaWN1NGouamFyCitNYWluLUNsYXNzOiBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsCisKK05hbWU6IGNvbS9pYm0vaWN1LworU3BlY2lmaWNhdGlvbi1UaXRsZTogSUNVIGZvciBKYXZhIFRlc3RzCitTcGVjaWZpY2F0aW9uLVZlcnNpb246IDMuNAorU3BlY2lmaWNhdGlvbi1WZW5kb3I6IElDVQorSW1wbGVtZW50YXRpb24tVGl0bGU6IElDVSBmb3IgSmF2YQorSW1wbGVtZW50YXRpb24tVmVyc2lvbjogMy40LjAKK0ltcGxlbWVudGF0aW9uLVZlbmRvcjogSUJNIENvcnBvcmF0aW9uCitJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQ6IGNvbS5pYm0KK0NvcHlyaWdodC1JbmZvOiBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK1NlYWxlZDogZmFsc2UKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0Jhc2ljVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvQmFzaWNUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmM0NDVhZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0Jhc2ljVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjkyMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5ub3JtYWxpemVyOworCitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVVNlcmlhbGl6ZWRTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyQ2F0ZWdvcnk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldEl0ZXJhdG9yOworCisKK3B1YmxpYyBjbGFzcyBCYXNpY1Rlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBCYXNpY1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgU3RyaW5nW11bXSBjYW5vblRlc3RzID0geworICAgICAgICAvLyBJbnB1dCAgICAgICAgICAgICAgICBEZWNvbXBvc2VkICAgICAgICAgICAgICBDb21wb3NlZAorICAgICAgICB7ICJjYXQiLCAgICAgICAgICAgICAgICAiY2F0IiwgICAgICAgICAgICAgICAgICAiY2F0IiAgICAgICAgICAgICAgIH0sCisgICAgICAgIHsgIlx1MDBlMGFyZHZhcmsiLCAgICAgICJhXHUwMzAwYXJkdmFyayIsICAgICAgICJcdTAwZTBhcmR2YXJrIiwgICAgfSwKKworICAgICAgICB7ICJcdTFlMGEiLCAgICAgICAgICAgICAiRFx1MDMwNyIsICAgICAgICAgICAgICAiXHUxZTBhIiAgICAgICAgICAgIH0sIC8vIEQtZG90X2Fib3ZlCisgICAgICAgIHsgIkRcdTAzMDciLCAgICAgICAgICAgICJEXHUwMzA3IiwgICAgICAgICAgICAgICJcdTFlMGEiICAgICAgICAgICAgfSwgLy8gRCBkb3RfYWJvdmUKKworICAgICAgICB7ICJcdTFlMGNcdTAzMDciLCAgICAgICAiRFx1MDMyM1x1MDMwNyIsICAgICAgICAiXHUxZTBjXHUwMzA3IiAgICAgIH0sIC8vIEQtZG90X2JlbG93IGRvdF9hYm92ZQorICAgICAgICB7ICJcdTFlMGFcdTAzMjMiLCAgICAgICAiRFx1MDMyM1x1MDMwNyIsICAgICAgICAiXHUxZTBjXHUwMzA3IiAgICAgIH0sIC8vIEQtZG90X2Fib3ZlIGRvdF9iZWxvdworICAgICAgICB7ICJEXHUwMzA3XHUwMzIzIiwgICAgICAiRFx1MDMyM1x1MDMwNyIsICAgICAgICAiXHUxZTBjXHUwMzA3IiAgICAgIH0sIC8vIEQgZG90X2JlbG93IGRvdF9hYm92ZQorCisgICAgICAgIHsgIlx1MWUxMFx1MDMwN1x1MDMyMyIsICJEXHUwMzI3XHUwMzIzXHUwMzA3IiwgICJcdTFlMTBcdTAzMjNcdTAzMDcifSwgLy8gRCBkb3RfYmVsb3cgY2VkaWxsYSBkb3RfYWJvdmUKKyAgICAgICAgeyAiRFx1MDMwN1x1MDMyOFx1MDMyMyIsIkRcdTAzMjhcdTAzMjNcdTAzMDciLCAgIlx1MWUwY1x1MDMyOFx1MDMwNyJ9LCAvLyBEIGRvdF9hYm92ZSBvZ29uZWsgZG90X2JlbG93CisKKyAgICAgICAgeyAiXHUxRTE0IiwgICAgICAgICAgICAgIkVcdTAzMDRcdTAzMDAiLCAgICAgICAgIlx1MUUxNCIgICAgICAgICAgICB9LCAvLyBFLW1hY3Jvbi1ncmF2ZQorICAgICAgICB7ICJcdTAxMTJcdTAzMDAiLCAgICAgICAiRVx1MDMwNFx1MDMwMCIsICAgICAgICAiXHUxRTE0IiAgICAgICAgICAgIH0sIC8vIEUtbWFjcm9uICsgZ3JhdmUKKyAgICAgICAgeyAiXHUwMGM4XHUwMzA0IiwgICAgICAgIkVcdTAzMDBcdTAzMDQiLCAgICAgICAgIlx1MDBjOFx1MDMwNCIgICAgICB9LCAvLyBFLWdyYXZlICsgbWFjcm9uCisKKyAgICAgICAgeyAiXHUyMTJiIiwgICAgICAgICAgICAgIkFcdTAzMGEiLCAgICAgICAgICAgICAgIlx1MDBjNSIgICAgICAgICAgICB9LCAvLyBhbmdzdHJvbV9zaWduCisgICAgICAgIHsgIlx1MDBjNSIsICAgICAgICAgICAgICJBXHUwMzBhIiwgICAgICAgICAgICAgICJcdTAwYzUiICAgICAgICAgICAgfSwgLy8gQS1yaW5nCisKKyAgICAgICAgeyAiXHUwMGM0ZmZpbiIsICAgICAgICAgIkFcdTAzMDhmZmluIiwgICAgICAgICAgIlx1MDBjNGZmaW4iICAgICAgICB9LAorICAgICAgICB7ICJcdTAwYzRcdUZCMDNuIiwgICAgICAiQVx1MDMwOFx1RkIwM24iLCAgICAgICAiXHUwMGM0XHVGQjAzbiIgICAgIH0sCisKKyAgICAgICAgeyAiXHUwMGZkZmZpbiIsICAgICAgICAgInlcdTAzMDFmZmluIiwgICAgICAgICAgIlx1MDBmZGZmaW4iICAgICAgICB9LCAvL3VwZGF0ZWQgd2l0aCAzLjAKKyAgICAgICAgeyAiXHUwMGZkXHVGQjAzbiIsICAgICAgInlcdTAzMDFcdUZCMDNuIiwgICAgICAgIlx1MDBmZFx1RkIwM24iICAgICB9LCAvL3VwZGF0ZWQgd2l0aCAzLjAKKworICAgICAgICB7ICJIZW5yeSBJViIsICAgICAgICAgICAiSGVucnkgSVYiLCAgICAgICAgICAgICAiSGVucnkgSVYiICAgICAgICAgIH0sCisgICAgICAgIHsgIkhlbnJ5IFx1MjE2MyIsICAgICAgICJIZW5yeSBcdTIxNjMiLCAgICAgICAgICJIZW5yeSBcdTIxNjMiICAgICAgfSwKKworICAgICAgICB7ICJcdTMwQUMiLCAgICAgICAgICAgICAiXHUzMEFCXHUzMDk5IiwgICAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGdhIChLYXRha2FuYSkKKyAgICAgICAgeyAiXHUzMEFCXHUzMDk5IiwgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBrYSArIHRlbgorICAgICAgICB7ICJcdUZGNzZcdUZGOUUiLCAgICAgICAiXHVGRjc2XHVGRjlFIiwgICAgICAgICAiXHVGRjc2XHVGRjlFIiAgICAgIH0sIC8vIGh3X2thICsgaHdfdGVuCisgICAgICAgIHsgIlx1MzBBQlx1RkY5RSIsICAgICAgICJcdTMwQUJcdUZGOUUiLCAgICAgICAgICJcdTMwQUJcdUZGOUUiICAgICAgfSwgLy8ga2EgKyBod190ZW4KKyAgICAgICAgeyAiXHVGRjc2XHUzMDk5IiwgICAgICAgIlx1RkY3Nlx1MzA5OSIsICAgICAgICAgIlx1RkY3Nlx1MzA5OSIgICAgICB9LCAvLyBod19rYSArIHRlbgorCisgICAgICAgIHsgIkFcdTAzMDBcdTAzMTYiLCAiQVx1MDMxNlx1MDMwMCIsICJcdTAwQzBcdTAzMTYiIH0sCisgICAgICAgIHsiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWUiLCJcXFUwMDAxRDE1N1xcVTAwMDFEMTY1XFxVMDAwMUQxNTdcXFUwMDAxRDE2NVxcVTAwMDFEMTU3XFxVMDAwMUQxNjUiLCAiXFxVMDAwMUQxNTdcXFUwMDAxRDE2NVxcVTAwMDFEMTU3XFxVMDAwMUQxNjVcXFUwMDAxRDE1N1xcVTAwMDFEMTY1In0sCisgICAgfTsKKworICAgIFN0cmluZ1tdW10gY29tcGF0VGVzdHMgPSB7CisgICAgICAgICAgICAvLyBJbnB1dCAgICAgICAgICAgICAgICBEZWNvbXBvc2VkICAgICAgICAgICAgICBDb21wb3NlZAorICAgICAgICB7ICJjYXQiLCAgICAgICAgICAgICAgICAgImNhdCIsICAgICAgICAgICAgICAgICAgICAgImNhdCIgICAgICAgICAgIH0sCisgICAgICAgIHsgIlx1RkI0ZiIsICAgICAgICAgICAgICJcdTA1RDBcdTA1REMiLCAgICAgICAgICJcdTA1RDBcdTA1REMiLCAgICAgfSwgLy8gQWxlZi1MYW1lZCB2cy4gQWxlZiwgTGFtZWQKKworICAgICAgICB7ICJcdTAwQzRmZmluIiwgICAgICAgICAiQVx1MDMwOGZmaW4iLCAgICAgICAgICAiXHUwMEM0ZmZpbiIgICAgICAgIH0sCisgICAgICAgIHsgIlx1MDBDNFx1RkIwM24iLCAgICAgICJBXHUwMzA4ZmZpbiIsICAgICAgICAgICJcdTAwQzRmZmluIiAgICAgICAgfSwgLy8gZmZpIGxpZ2F0dXJlIC0+IGYgKyBmICsgaQorCisgICAgICAgIHsgIlx1MDBmZGZmaW4iLCAgICAgICAgICJ5XHUwMzAxZmZpbiIsICAgICAgICAgICJcdTAwZmRmZmluIiAgICAgICAgfSwgICAgICAgIC8vdXBkYXRlZCBmb3IgMy4wCisgICAgICAgIHsgIlx1MDBmZFx1RkIwM24iLCAgICAgICJ5XHUwMzAxZmZpbiIsICAgICAgICAgICJcdTAwZmRmZmluIiAgICAgICAgfSwgLy8gZmZpIGxpZ2F0dXJlIC0+IGYgKyBmICsgaQorCisgICAgICAgIHsgIkhlbnJ5IElWIiwgICAgICAgICAgICJIZW5yeSBJViIsICAgICAgICAgICAgICJIZW5yeSBJViIgICAgICAgICAgfSwKKyAgICAgICAgeyAiSGVucnkgXHUyMTYzIiwgICAgICAgIkhlbnJ5IElWIiwgICAgICAgICAgICAgIkhlbnJ5IElWIiAgICAgICAgICB9LAorCisgICAgICAgIHsgIlx1MzBBQyIsICAgICAgICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8gZ2EgKEthdGFrYW5hKQorICAgICAgICB7ICJcdTMwQUJcdTMwOTkiLCAgICAgICAiXHUzMEFCXHUzMDk5IiwgICAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGthICsgdGVuCisKKyAgICAgICAgeyAiXHVGRjc2XHUzMDk5IiwgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBod19rYSArIHRlbgorCisgICAgICAgIC8qIFRoZXNlIHR3byBhcmUgYnJva2VuIGluIFVuaWNvZGUgMi4xLjIgYnV0IGZpeGVkIGluIDIuMS41IGFuZCBsYXRlciovCisgICAgICAgIHsgIlx1RkY3Nlx1RkY5RSIsICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8gaHdfa2EgKyBod190ZW4KKyAgICAgICAgeyAiXHUzMEFCXHVGRjlFIiwgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBrYSArIGh3X3RlbgorCisgICAgfTsKKworICAgIC8vIFdpdGggQ2Fub25pY2FsIGRlY29tcG9zaXRpb24sIEhhbmd1bCBzeWxsYWJsZXMgc2hvdWxkIGdldCBkZWNvbXBvc2VkCisgICAgLy8gaW50byBKYW1vLCBidXQgSmFtbyBjaGFyYWN0ZXJzIHNob3VsZCBub3QgYmUgZGVjb21wb3NlZCBpbnRvCisgICAgLy8gY29uam9pbmluZyBKYW1vCisgICAgU3RyaW5nW11bXSBoYW5ndWxDYW5vbiA9IHsKKyAgICAgICAgLy8gSW5wdXQgICAgICAgICAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgeyAiXHVkNGRiIiwgICAgICAgICAgICAgIlx1MTExMVx1MTE3MVx1MTFiNiIsICAgIlx1ZDRkYiIgICAgICAgIH0sCisgICAgICAgIHsgIlx1MTExMVx1MTE3MVx1MTFiNiIsICJcdTExMTFcdTExNzFcdTExYjYiLCAgICJcdWQ0ZGIiICAgICAgICB9LAorICAgIH07CisKKyAgICAvLyBXaXRoIGNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbiB0dXJuZWQgb24sCisgICAgLy8gaXQgc2hvdWxkIGdvIGFsbCB0aGUgd2F5IGRvd24gdG8gY29uam9pbmluZyBKYW1vIGNoYXJhY3RlcnMuCisgICAgLy8gVEhJUyBJUyBOTyBMT05HRVIgVFJVRSBJTiBVTklDT0RFIHYyLjEuOCwgU08gVEhJUyBURVNUIElTIE9CU09MRVRFCisgICAgU3RyaW5nW11bXSBoYW5ndWxDb21wYXQgPSB7CisgICAgICAgIC8vIElucHV0ICAgICAgICBEZWNvbXBvc2VkICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wb3NlZAorICAgICAgICAvLyB7ICJcdWQ0ZGIiLCAgICAgIlx1MTExMVx1MTE2ZVx1MTE3NVx1MTFhZlx1MTFjMiIsICAgIlx1ZDQ3OFx1MTE3NVx1MTFhZlx1MTFjMiIgIH0sCisgICAgfTsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RIYW5ndWxDb21wb3NlKCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc3RhdGljIGNvbXBvc2l0aW9uIG1ldGhvZHMgd29yaworICAgICAgICBsb2dsbigiQ2Fub25pY2FsIGNvbXBvc2l0aW9uLi4uIik7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORkMsIGhhbmd1bENhbm9uLCAgMik7CisgICAgICAgIGxvZ2xuKCJDb21wYXRpYmlsaXR5IGNvbXBvc2l0aW9uLi4uIik7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORktDLCBoYW5ndWxDb21wYXQsIDIpOworICAgICAgICAvLyBOb3cgdHJ5IGl0ZXJhdGl2ZSBjb21wb3NpdGlvbi4uLi4KKyAgICAgICAgbG9nbG4oIkl0ZXJhdGl2ZSBjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBOb3JtYWxpemVyIG5vcm0gPSBuZXcgTm9ybWFsaXplcigiIiwgTm9ybWFsaXplci5ORkMsMCk7CisgICAgICAgIGl0ZXJhdGVUZXN0KG5vcm0sIGhhbmd1bENhbm9uLCAyKTsKKworICAgICAgICBub3JtLnNldE1vZGUoTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgaXRlcmF0ZVRlc3Qobm9ybSwgaGFuZ3VsQ29tcGF0LCAyKTsKKworICAgICAgICAvLyBBbmQgZmluYWxseSwgbWFrZSBzdXJlIHlvdSBjYW4gZG8gaXQgaW4gcmV2ZXJzZSB0b28KKyAgICAgICAgbG9nbG4oIlJldmVyc2UgaXRlcmF0aW9uLi4uIik7CisgICAgICAgIG5vcm0uc2V0TW9kZShOb3JtYWxpemVyLk5GQyk7CisgICAgICAgIGJhY2tBbmRGb3J0aChub3JtLCBoYW5ndWxDYW5vbik7CisgICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RIYW5ndWxEZWNvbXAoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc3RhdGljIGRlY29tcG9zaXRpb24gbWV0aG9kcyB3b3JrCisgICAgICAgIGxvZ2xuKCJDYW5vbmljYWwgZGVjb21wb3NpdGlvbi4uLiIpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZELCBoYW5ndWxDYW5vbiwgIDEpOworICAgICAgICBsb2dsbigiQ29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uLi4uIik7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORktELCBoYW5ndWxDb21wYXQsIDEpOworCisgICAgICAgICAvLyBOb3cgdGhlIGl0ZXJhdGl2ZSBkZWNvbXBvc2l0aW9uIG1ldGhvZHMuLi4KKyAgICAgICAgbG9nbG4oIkl0ZXJhdGl2ZSBkZWNvbXBvc2l0aW9uLi4uIik7CisgICAgICAgIE5vcm1hbGl6ZXIgbm9ybSA9IG5ldyBOb3JtYWxpemVyKCIiLCBOb3JtYWxpemVyLk5GRCwwKTsKKyAgICAgICAgaXRlcmF0ZVRlc3Qobm9ybSwgaGFuZ3VsQ2Fub24sIDEpOworCisgICAgICAgIG5vcm0uc2V0TW9kZShOb3JtYWxpemVyLk5GS0QpOworICAgICAgICBpdGVyYXRlVGVzdChub3JtLCBoYW5ndWxDb21wYXQsIDEpOworCisgICAgICAgIC8vIEFuZCBmaW5hbGx5LCBtYWtlIHN1cmUgeW91IGNhbiBkbyBpdCBpbiByZXZlcnNlIHRvbworICAgICAgICBsb2dsbigiUmV2ZXJzZSBpdGVyYXRpb24uLi4iKTsKKyAgICAgICAgbm9ybS5zZXRNb2RlKE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgYmFja0FuZEZvcnRoKG5vcm0sIGhhbmd1bENhbm9uKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdE5vbmUoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBOb3JtYWxpemVyIG5vcm0gPSBuZXcgTm9ybWFsaXplcigiIiwgTm9ybWFsaXplci5OT05FLDApOworICAgICAgICBpdGVyYXRlVGVzdChub3JtLCBjYW5vblRlc3RzLCAwKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5PTkUsIGNhbm9uVGVzdHMsIDApOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVjb21wKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgTm9ybWFsaXplciBub3JtID0gbmV3IE5vcm1hbGl6ZXIoIiIsIE5vcm1hbGl6ZXIuTkZELDApOworICAgICAgICBpdGVyYXRlVGVzdChub3JtLCBjYW5vblRlc3RzLCAxKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GRCwgY2Fub25UZXN0cywgMSk7CisgICAgICAgIGRlY29tcG9zZVRlc3QoTm9ybWFsaXplci5ORkQsIGNhbm9uVGVzdHMsIDEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXREZWNvbXAoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBOb3JtYWxpemVyIG5vcm0gPSBuZXcgTm9ybWFsaXplcigiIiwgTm9ybWFsaXplci5ORktELDApOworICAgICAgICBpdGVyYXRlVGVzdChub3JtLCBjb21wYXRUZXN0cywgMSk7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORktELGNvbXBhdFRlc3RzLCAxKTsKKyAgICAgICAgZGVjb21wb3NlVGVzdChOb3JtYWxpemVyLk5GS0QsY29tcGF0VGVzdHMsIDEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDYW5vbkNvbXBvc2UoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBOb3JtYWxpemVyIG5vcm0gPSBuZXcgTm9ybWFsaXplcigiIiwgTm9ybWFsaXplci5ORkMsMCk7CisgICAgICAgIGl0ZXJhdGVUZXN0KG5vcm0sIGNhbm9uVGVzdHMsIDIpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZDLCBjYW5vblRlc3RzLCAyKTsKKyAgICAgICAgY29tcG9zZVRlc3QoTm9ybWFsaXplci5ORkMsIGNhbm9uVGVzdHMsIDIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXRDb21wb3NlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgTm9ybWFsaXplciBub3JtID0gbmV3IE5vcm1hbGl6ZXIoIiIsIE5vcm1hbGl6ZXIuTkZLQywwKTsKKyAgICAgICAgaXRlcmF0ZVRlc3Qobm9ybSwgY29tcGF0VGVzdHMsIDIpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZLQyxjb21wYXRUZXN0cywgMik7CisgICAgICAgIGNvbXBvc2VUZXN0KE5vcm1hbGl6ZXIuTkZLQyxjb21wYXRUZXN0cywgMik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEV4cGxvZGluZ0Jhc2UoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICAvLyBcdTAxN2YgLSBMYXRpbiBzbWFsbCBsZXR0ZXIgbG9uZyBzCisgICAgICAgIC8vIFx1MDMwNyAtIGNvbWJpbmluZyBkb3QgYWJvdmUKKyAgICAgICAgLy8gXHUxZTYxIC0gTGF0aW4gc21hbGwgbGV0dGVyIHMgd2l0aCBkb3QgYWJvdmUKKyAgICAgICAgLy8gXHUxZTliIC0gTGF0aW4gc21hbGwgbGV0dGVyIGxvbmcgcyB3aXRoIGRvdCBhYm92ZQorICAgICAgICBTdHJpbmdbXVtdIGNhbm9uID0geworICAgICAgICAgICAgLy8gSW5wdXQgICAgICAgICAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgICAgIHsgIlRzY2h1XHUwMTdmIiwgICAgICAgICJUc2NodVx1MDE3ZiIsICAgICAgICAgICJUc2NodVx1MDE3ZiIgICAgfSwKKyAgICAgICAgICAgIHsgIlRzY2h1XHUxZTliIiwgICAgICAgICJUc2NodVx1MDE3Zlx1MDMwNyIsICAgICJUc2NodVx1MWU5YiIgICAgfSwKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nW11bXSBjb21wYXQgPSB7CisgICAgICAgICAgICAvLyBJbnB1dCAgICAgICAgICAgICAgICBEZWNvbXBvc2VkICAgICAgICAgICAgICBDb21wb3NlZAorICAgICAgICAgICAgeyAiXHUwMTdmIiwgICAgICAgICJzIiwgICAgICAgICAgICAgICJzIiAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIlx1MWU5YiIsICAgICAgICAic1x1MDMwNyIsICAgICAgICAiXHUxZTYxIiAgICAgIH0sCisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GRCwgY2Fub24sICAxKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GQywgY2Fub24sICAyKTsKKworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZLRCwgY29tcGF0LCAxKTsKKyAgICAgICAgc3RhdGljVGVzdChOb3JtYWxpemVyLk5GS0MsIGNvbXBhdCwgMik7CisKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgVGliZXRhbiB2b3dlbCBzaWduIEFBLCAwZjcxLCB3YXMgbWVzc2VkIHVwIHByaW9yIHRvCisgICAgICogVW5pY29kZSB2ZXJzaW9uIDIuMS45LgorICAgICAqIE9uY2UgMi4xLjkgb3IgMy4wIGlzIHJlbGVhc2VkLCB1bmNvbW1lbnQgdGhpcyB0ZXN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUaWJldGFuKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nW11bXSBkZWNvbXAgPSB7CisgICAgICAgICAgICB7ICJcdTBmNzciLCAiXHUwZjc3IiwgIlx1MGZiMlx1MGY3MVx1MGY4MCIgfQorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXVtdIGNvbXBvc2UgPSB7CisgICAgICAgICAgICB7ICJcdTBmYjJcdTBmNzFcdTBmODAiLCAiXHUwZmIyXHUwZjcxXHUwZjgwIiwgIlx1MGZiMlx1MGY3MVx1MGY4MCIgfQorICAgICAgICB9OworCisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORkQsIGRlY29tcCwgMSk7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORktELGRlY29tcCwgMik7CisgICAgICAgIHN0YXRpY1Rlc3QoTm9ybWFsaXplci5ORkMsIGNvbXBvc2UsIDEpOworICAgICAgICBzdGF0aWNUZXN0KE5vcm1hbGl6ZXIuTkZLQyxjb21wb3NlLCAyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIHN1cmUgY2hhcmFjdGVycyBpbiB0aGUgQ29tcG9zaXRpb25FeGNsdXNpb24udHh0IGxpc3QgZG8gbm90IGdldAorICAgICAqIGNvbXBvc2VkIHRvLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3NpdGlvbkV4Y2x1c2lvbigpCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgLy8gVGhpcyBsaXN0IGlzIGdlbmVyYXRlZCBmcm9tIENvbXBvc2l0aW9uRXhjbHVzaW9uLnR4dC4KKyAgICAgICAgLy8gVXBkYXRlIHdoZW5ldmVyIHRoZSBub3JtYWxpemVyIHRhYmxlcyBhcmUgdXBkYXRlZC4gIE5vdGUKKyAgICAgICAgLy8gdGhhdCB3ZSB0ZXN0IGFsbCBjaGFyYWN0ZXJzIGxpc3RlZCwgZXZlbiB0aG9zZSB0aGF0IGNhbiBiZQorICAgICAgICAvLyBkZXJpdmVkIGZyb20gdGhlIFVuaWNvZGUgREIgYW5kIGFyZSB0aGVyZWZvcmUgY29tbWVudGVkCisgICAgICAgIC8vIG91dC4KKyAgICAgICAgU3RyaW5nIEVYQ0xVREVEID0KKyAgICAgICAgICAgICJcdTAzNDBcdTAzNDFcdTAzNDNcdTAzNDRcdTAzNzRcdTAzN0VcdTAzODdcdTA5NTgiICsKKyAgICAgICAgICAgICJcdTA5NTlcdTA5NUFcdTA5NUJcdTA5NUNcdTA5NURcdTA5NUVcdTA5NUZcdTA5REMiICsKKyAgICAgICAgICAgICJcdTA5RERcdTA5REZcdTBBMzNcdTBBMzZcdTBBNTlcdTBBNUFcdTBBNUJcdTBBNUUiICsKKyAgICAgICAgICAgICJcdTBCNUNcdTBCNURcdTBGNDNcdTBGNERcdTBGNTJcdTBGNTdcdTBGNUNcdTBGNjkiICsKKyAgICAgICAgICAgICJcdTBGNzNcdTBGNzVcdTBGNzZcdTBGNzhcdTBGODFcdTBGOTNcdTBGOURcdTBGQTIiICsKKyAgICAgICAgICAgICJcdTBGQTdcdTBGQUNcdTBGQjlcdTFGNzFcdTFGNzNcdTFGNzVcdTFGNzdcdTFGNzkiICsKKyAgICAgICAgICAgICJcdTFGN0JcdTFGN0RcdTFGQkJcdTFGQkVcdTFGQzlcdTFGQ0JcdTFGRDNcdTFGREIiICsKKyAgICAgICAgICAgICJcdTFGRTNcdTFGRUJcdTFGRUVcdTFGRUZcdTFGRjlcdTFGRkJcdTFGRkRcdTIwMDAiICsKKyAgICAgICAgICAgICJcdTIwMDFcdTIxMjZcdTIxMkFcdTIxMkJcdTIzMjlcdTIzMkFcdUY5MDBcdUZBMTAiICsKKyAgICAgICAgICAgICJcdUZBMTJcdUZBMTVcdUZBMjBcdUZBMjJcdUZBMjVcdUZBMjZcdUZBMkFcdUZCMUYiICsKKyAgICAgICAgICAgICJcdUZCMkFcdUZCMkJcdUZCMkNcdUZCMkRcdUZCMkVcdUZCMkZcdUZCMzBcdUZCMzEiICsKKyAgICAgICAgICAgICJcdUZCMzJcdUZCMzNcdUZCMzRcdUZCMzVcdUZCMzZcdUZCMzhcdUZCMzlcdUZCM0EiICsKKyAgICAgICAgICAgICJcdUZCM0JcdUZCM0NcdUZCM0VcdUZCNDBcdUZCNDFcdUZCNDNcdUZCNDRcdUZCNDYiICsKKyAgICAgICAgICAgICJcdUZCNDdcdUZCNDhcdUZCNDlcdUZCNEFcdUZCNEJcdUZCNENcdUZCNERcdUZCNEUiOworICAgICAgICBmb3IgKGludCBpPTA7IGk8RVhDTFVERUQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGEgPSBTdHJpbmcudmFsdWVPZihFWENMVURFRC5jaGFyQXQoaSkpOworICAgICAgICAgICAgU3RyaW5nIGIgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShhLCBOb3JtYWxpemVyLk5GS0QpOworICAgICAgICAgICAgU3RyaW5nIGMgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShiLCBOb3JtYWxpemVyLk5GQyk7CisgICAgICAgICAgICBpZiAoYy5lcXVhbHMoYSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGhleChhKSArICIgeCBERUNPTVBfQ09NUEFUID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIGhleChiKSArICIgeCBDT01QT1NFID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIGhleChjKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgaGV4KGEpICsgIiB4IERFQ09NUF9DT01QQVQgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgaGV4KGIpICsgIiB4IENPTVBPU0UgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgaGV4KGMpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBUaGUgZm9sbG93aW5nIG1ldGhvZCB3b3JrcyB0b28sIGJ1dCBpdCBpcyBzb21ld2hhdAorICAgICAgICAvLyBpbmNlc3R1b3VzLiAgSXQgdXNlcyBVSW5mbywgd2hpY2ggaXMgdGhlIHNhbWUgZGF0YWJhc2UgdGhhdAorICAgICAgICAvLyBOb3JtYWxpemVyQnVpbGRlciB1c2VzLCBzbyBpZiBzb21ldGhpbmcgaXMgd3Jvbmcgd2l0aAorICAgICAgICAvLyBVSW5mbywgdGhlIGZvbGxvd2luZyB0ZXN0IHdvbid0IHNob3cgaXQuICBBbGwgaXQgd2lsbCBzaG93CisgICAgICAgIC8vIGlzIHRoYXQgTm9ybWFsaXplckJ1aWxkZXIgaGFzIGJlZW4gcnVuIHdpdGggd2hhdGV2ZXIgdGhlCisgICAgICAgIC8vIGN1cnJlbnQgVUluZm8gaXMuCisgICAgICAgIC8vCisgICAgICAgIC8vIFdlIGNvbW1lbnQgdGhpcyBvdXQgaW4gZmF2b3Igb2YgdGhlIHRlc3QgYWJvdmUsIHdoaWNoCisgICAgICAgIC8vIHByb3ZpZGVzIGluZGVwZW5kZW50IHZlcmlmaWNhdGlvbiAoYnV0IGFsc28gcmVxdWlyZXMKKyAgICAgICAgLy8gaW5kZXBlbmRlbnQgdXBkYXRpbmcpLgorLy8gICAgICBsb2dsbigiLS0tIik7CisvLyAgICAgIFVJbmZvIHVpbmZvID0gbmV3IFVJbmZvKCk7CisvLyAgICAgIGZvciAoaW50IGk9MDsgaTw9MHhGRkZGOyArK2kpIHsKKy8vICAgICAgICAgIGlmICghdWluZm8uaXNFeGNsdWRlZENvbXBvc2l0aW9uKChjaGFyKWkpIHx8CisvLyAgICAgICAgICAgICAgKCF1aW5mby5oYXNDYW5vbmljYWxEZWNvbXBvc2l0aW9uKChjaGFyKWkpICYmCisvLyAgICAgICAgICAgICAgICF1aW5mby5oYXNDb21wYXRpYmlsaXR5RGVjb21wb3NpdGlvbigoY2hhcilpKSkpIGNvbnRpbnVlOworLy8gICAgICAgICAgU3RyaW5nIGEgPSBTdHJpbmcudmFsdWVPZigoY2hhcilpKTsKKy8vICAgICAgICAgIFN0cmluZyBiID0gTm9ybWFsaXplci5ub3JtYWxpemUoYSxOb3JtYWxpemVyLkRFQ09NUF9DT01QQVQsMCk7CisvLyAgICAgICAgICBTdHJpbmcgYyA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGIsTm9ybWFsaXplci5DT01QT1NFLDApOworLy8gICAgICAgICAgaWYgKGMuZXF1YWxzKGEpKSB7CisvLyAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBoZXgoYSkgKyAiIHggREVDT01QX0NPTVBBVCA9PiAiICsKKy8vICAgICAgICAgICAgICAgICAgICBoZXgoYikgKyAiIHggQ09NUE9TRSA9PiAiICsKKy8vICAgICAgICAgICAgICAgICAgICBoZXgoYykpOworLy8gICAgICAgICAgfSBlbHNlIGlmIChpc1ZlcmJvc2UoKSkgeworLy8gICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGhleChhKSArICIgeCBERUNPTVBfQ09NUEFUID0+ICIgKworLy8gICAgICAgICAgICAgICAgICAgIGhleChiKSArICIgeCBDT01QT1NFID0+ICIgKworLy8gICAgICAgICAgICAgICAgICAgIGhleChjKSk7CisvLyAgICAgICAgICB9CisvLyAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGZvciBhIHByb2JsZW0gdGhhdCBzaG93ZWQgdXAganVzdCBiZWZvcmUgSUNVIDEuNiByZWxlYXNlCisgICAgICogaGF2aW5nIHRvIGRvIHdpdGggY29tYmluaW5nIGNoYXJhY3RlcnMgd2l0aCBhbiBpbmRleCBvZiB6ZXJvLgorICAgICAqIFN1Y2ggY2hhcmFjdGVycyBkbyBub3QgcGFydGljaXBhdGUgaW4gYW55IGNhbm9uaWNhbAorICAgICAqIGRlY29tcG9zaXRpb25zLiAgSG93ZXZlciwgaGF2aW5nIGFuIGluZGV4IG9mIHplcm8gbWVhbnMgdGhhdAorICAgICAqIHRoZXkgYWxsIHNoYXJlIG9uZSB0eXBlTWFza1tdIGVudHJ5LCB0aGF0IGlzLCB0aGV5IGFsbCBoYXZlIHRvCisgICAgICogbWFwIHRvIHRoZSBzYW1lIGNhbm9uaWNhbCBjbGFzcywgd2hpY2ggaXMgbm90IHRoZSBjYXNlLCBpbgorICAgICAqIHJlYWxpdHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFplcm9JbmRleCgpCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIEV4cGVjdCBjb2wxIHggQ09NUE9TRV9DT01QQVQgPT4gY29sMgorICAgICAgICAgICAgLy8gRXhwZWN0IGNvbDIgeCBERUNPTVAgPT4gY29sMworICAgICAgICAgICAgIkFcdTAzMTZcdTAzMDAiLCAiXHUwMEMwXHUwMzE2IiwgIkFcdTAzMTZcdTAzMDAiLAorICAgICAgICAgICAgIkFcdTAzMDBcdTAzMTYiLCAiXHUwMEMwXHUwMzE2IiwgIkFcdTAzMTZcdTAzMDAiLAorICAgICAgICAgICAgIkFcdTAzMjdcdTAzMDAiLCAiXHUwMEMwXHUwMzI3IiwgIkFcdTAzMjdcdTAzMDAiLAorICAgICAgICAgICAgImNcdTAzMjFcdTAzMjciLCAiY1x1MDMyMVx1MDMyNyIsICJjXHUwMzIxXHUwMzI3IiwKKyAgICAgICAgICAgICJjXHUwMzI3XHUwMzIxIiwgIlx1MDBFN1x1MDMyMSIsICJjXHUwMzI3XHUwMzIxIiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgIFN0cmluZyBhID0gREFUQVtpXTsKKyAgICAgICAgICAgIFN0cmluZyBiID0gTm9ybWFsaXplci5ub3JtYWxpemUoYSwgTm9ybWFsaXplci5ORktDKTsKKyAgICAgICAgICAgIFN0cmluZyBleHAgPSBEQVRBW2krMV07CisgICAgICAgICAgICBpZiAoYi5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGhleChhKSArICIgeCBDT01QT1NFX0NPTVBBVCA9PiAiICsgaGV4KGIpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBoZXgoYSkgKyAiIHggQ09NUE9TRV9DT01QQVQgPT4gIiArIGhleChiKSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ICIgKyBoZXgoZXhwKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhID0gTm9ybWFsaXplci5ub3JtYWxpemUoYiwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgZXhwID0gREFUQVtpKzJdOworICAgICAgICAgICAgaWYgKGEuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBoZXgoYikgKyAiIHggREVDT01QID0+ICIgKyBoZXgoYSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGhleChiKSArICIgeCBERUNPTVAgPT4gIiArIGhleChhKSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ICIgKyBoZXgoZXhwKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGZvciBhIHByb2JsZW0gZm91bmQgYnkgVmVyaXNpZ24uICBQcm9ibGVtIGlzIHRoYXQKKyAgICAgKiBjaGFyYWN0ZXJzIGF0IHRoZSBzdGFydCBvZiBhIHN0cmluZyBhcmUgbm90IHB1dCBpbiBjYW5vbmljYWwKKyAgICAgKiBvcmRlciBjb3JyZWN0bHkgYnkgY29tcG9zZSgpIGlmIHRoZXJlIGlzIG5vIHN0YXJ0ZXIuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFZlcmlzaWduKCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmdbXSBpbnB1dHMgPSB7CisgICAgICAgICAgICAiXHUwNWI4XHUwNWI5XHUwNWIxXHUwNTkxXHUwNWMzXHUwNWIwXHUwNWFjXHUwNTlmIiwKKyAgICAgICAgICAgICJcdTA1OTJcdTA1YjdcdTA1YmNcdTA1YTVcdTA1YjBcdTA1YzBcdTA1YzRcdTA1YWQiCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdIG91dHB1dHMgPSB7CisgICAgICAgICAgICAiXHUwNWIxXHUwNWI4XHUwNWI5XHUwNTkxXHUwNWMzXHUwNWIwXHUwNWFjXHUwNTlmIiwKKyAgICAgICAgICAgICJcdTA1YjBcdTA1YjdcdTA1YmNcdTA1YTVcdTA1OTJcdTA1YzBcdTA1YWRcdTA1YzQiCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBpbnB1dCA9IGlucHV0c1tpXTsKKyAgICAgICAgICAgIFN0cmluZyBvdXRwdXQgPSBvdXRwdXRzW2ldOworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKGlucHV0LCBmYWxzZSk7CisgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVhbHMob3V0cHV0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIGlucHV0OiAiICsgaGV4KGlucHV0KSk7CisgICAgICAgICAgICAgICAgZXJybG4oIiBkZWNvbXBvc2U6ICIgKyBoZXgocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgZXhwZWN0ZWQ6ICIgKyBoZXgob3V0cHV0KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQgPSBOb3JtYWxpemVyLmNvbXBvc2UoaW5wdXQsIGZhbHNlKTsKKyAgICAgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhvdXRwdXQpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgaW5wdXQ6ICIgKyBoZXgoaW5wdXQpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiICAgY29tcG9zZTogIiArIGhleChyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiICBleHBlY3RlZDogIiArIGhleChvdXRwdXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorICAgIHB1YmxpYyB2b2lkICBUZXN0UXVpY2tDaGVja1Jlc3VsdE5PKCkKKyAgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZmluYWwgY2hhciBDUE5GRFtdID0gezB4MDBDNSwgMHgwNDA3LCAweDFFMDAsIDB4MUY1NywgMHgyMjBDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDMwQUUsIDB4QUMwMCwgMHhEN0EzLCAweEZCMzYsIDB4RkI0RX07CisgICAgICAgIGZpbmFsIGNoYXIgQ1BORkNbXSA9IHsweDAzNDAsIDB4MEY5MywgMHgxRjc3LCAweDFGQkIsIDB4MUZFQiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwLCAweDIzMkEsIDB4RjkwMCwgMHhGQTFFLCAweEZCNEV9OworICAgICAgICBmaW5hbCBjaGFyIENQTkZLRFtdID0gezB4MDBBMCwgMHgwMkU0LCAweDFGREIsIDB4MjRFQSwgMHgzMkZFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEFDMDAsIDB4RkI0RSwgMHhGQTEwLCAweEZGM0YsIDB4RkEyRH07CisgICAgICAgIGZpbmFsIGNoYXIgQ1BORktDW10gPSB7MHgwMEEwLCAweDAxN0YsIDB4MjAwMCwgMHgyNEVBLCAweDMyRkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzNGRSwgMHhGQjRFLCAweEZBMTAsIDB4RkYzRiwgMHhGQTJEfTsKKworCisgICAgICAgIGZpbmFsIGludCBTSVpFID0gMTA7CisKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgZm9yICg7IGNvdW50IDwgU0laRTsgY291bnQgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORkRbY291bnRdKSwKKyAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQsMCkgIT0gTm9ybWFsaXplci5OTykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZEIHF1aWNrIGNoZWNrIGF0IFUrIiArCisgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORkRbY291bnRdKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihDUE5GQ1tjb3VudF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkMsMCkgIT1Ob3JtYWxpemVyLk5PKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkMgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORktEW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLRCwwKSAhPSBOb3JtYWxpemVyLk5PKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORktEIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDUE5GS0RbY291bnRdKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihDUE5GS0NbY291bnRdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktDLDApICE9Tm9ybWFsaXplci5OTykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGZvciBpbXByb3ZpbmcgY292ZXJhZ2UKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORktDW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQykgIT1Ob3JtYWxpemVyLk5PKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORktDIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDUE5GS0NbY291bnRdKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVpY2tDaGVja1Jlc3VsdFlFUygpCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZmluYWwgY2hhciBDUE5GRFtdID0gezB4MDBDNiwgMHgwMTdGLCAweDBGNzQsIDB4MTAwMCwgMHgxRTlBLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIyNjEsIDB4MzA3NSwgMHg0MDAwLCAweDUwMDAsIDB4RjAwMH07CisgICAgICAgIGZpbmFsIGNoYXIgQ1BORkNbXSA9IHsweDA0MDAsIDB4MDU0MCwgMHgwOTAxLCAweDEwMDAsIDB4MTUwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxRTlBLCAweDMwMDAsIDB4NDAwMCwgMHg1MDAwLCAweEYwMDB9OworICAgICAgICBmaW5hbCBjaGFyIENQTkZLRFtdID0gezB4MDBBQiwgMHgwMkEwLCAweDEwMDAsIDB4MTAyNywgMHgyRkZCLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDNGRkYsIDB4NEZGRiwgMHhBMDAwLCAweEYwMDAsIDB4RkEyN307CisgICAgICAgIGZpbmFsIGNoYXIgQ1BORktDW10gPSB7MHgwMEIwLCAweDAxMDAsIDB4MDIwMCwgMHgwQTAyLCAweDEwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAxMCwgMHgzMDMwLCAweDQwMDAsIDB4QTAwMCwgMHhGQTBFfTsKKworICAgICAgICBmaW5hbCBpbnQgU0laRSA9IDEwOworICAgICAgICBpbnQgY291bnQgPSAwOworCisgICAgICAgIGNoYXIgY3AgPSAwOworICAgICAgICB3aGlsZSAoY3AgPCAweEEwKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKGNwKSwgTm9ybWFsaXplci5ORkQsMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5ZRVMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GRCBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNwKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihjcCksIE5vcm1hbGl6ZXIuTkZDLDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZDIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoY3ApKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKGNwKSwgTm9ybWFsaXplci5ORktELDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLRCBxdWljayBjaGVjayBhdCBVKyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjcCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoY3ApLCBOb3JtYWxpemVyLk5GS0MsMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORktDIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNwKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaW1wcm92ZSB0aGUgY292ZXJhZ2UKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoY3ApLCBOb3JtYWxpemVyLk5GS0MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhjcCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNwKys7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKDsgY291bnQgPCBTSVpFOyBjb3VudCArKykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihDUE5GRFtjb3VudF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GRCwwKSE9Tm9ybWFsaXplci5ZRVMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GRCBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZEW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORkNbY291bnRdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkMsMCkhPU5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkMgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDUE5GQ1tjb3VudF0pKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZLRFtjb3VudF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0QsMCkhPU5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORktEIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktEW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORktDW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQywwKSE9Tm9ybWFsaXplci5ZRVMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GS0MgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhDUE5GS0NbY291bnRdKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaW1wcm92ZSB0aGUgY292ZXJhZ2UKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soU3RyaW5nLnZhbHVlT2YoQ1BORktDW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQykhPU5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORktDIHF1aWNrIGNoZWNrIGF0IFUrIisKKyAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0QmVuZ2FsaSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZyBpbnB1dCA9ICJcdTA5YmNcdTA5YmVcdTA5Y2RcdTA5YmUiOworICAgICAgICBTdHJpbmcgb3V0cHV0PU5vcm1hbGl6ZXIubm9ybWFsaXplKGlucHV0LE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgaWYoIWlucHV0LmVxdWFscyhvdXRwdXQpKXsKKyAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZDIG9mIHN0cmluZyIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RRdWlja0NoZWNrUmVzdWx0TUFZQkUoKQorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisKKyAgICAgICAgZmluYWwgY2hhcltdIENQTkZDID0gezB4MDMwNiwgMHgwNjU0LCAweDBCQkUsIDB4MTAyRSwgMHgxMTYxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExNkEsIDB4MTE3MywgMHgxMTc1LCAweDMwOTksIDB4MzA5QX07CisgICAgICAgIGZpbmFsIGNoYXJbXSBDUE5GS0MgPSB7MHgwMzAwLCAweDA2NTQsIDB4MDY1NSwgMHgwOUQ3LCAweDBCM0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MERDRiwgMHhEREYsIDB4MTAyRSwgMHgxMUE4LCAweDMwOTl9OworCisKKyAgICAgICAgZmluYWwgaW50IFNJWkUgPSAxMDsKKworICAgICAgICBpbnQgY291bnQgPSAwOworCisgICAgICAgIC8qIE5GRCBhbmQgTkZLRCBkb2VzIG5vdCBoYXZlIGFueSBNQVlCRSBjb2RlcG9pbnRzICovCisgICAgICAgIGZvciAoOyBjb3VudCA8IFNJWkU7IGNvdW50ICsrKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKFN0cmluZy52YWx1ZU9mKENQTkZDW2NvdW50XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkMsMCkhPU5vcm1hbGl6ZXIuTUFZQkUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SIGluIE5GQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORkNbY291bnRdKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhTdHJpbmcudmFsdWVPZihDUE5GS0NbY291bnRdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQywwKSE9Tm9ybWFsaXplci5NQVlCRSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2sobmV3IGNoYXJbXXtDUE5GQ1tjb3VudF19LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZDLDApIT1Ob3JtYWxpemVyLk1BWUJFKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORkMgcXVpY2sgY2hlY2sgYXQgVSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKENQTkZDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2sobmV3IGNoYXJbXXtDUE5GS0NbY291bnRdfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQywwKSE9Tm9ybWFsaXplci5NQVlCRSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2sobmV3IGNoYXJbXXtDUE5GS0NbY291bnRdfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTk9ORSwwKSE9Tm9ybWFsaXplci5NQVlCRSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLQyBxdWljayBjaGVjayBhdCBVKyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoQ1BORktDW2NvdW50XSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RRdWlja0NoZWNrU3RyaW5nUmVzdWx0KCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBpbnQgY291bnQ7CisgICAgICAgIFN0cmluZyBkOworICAgICAgICBTdHJpbmcgYzsKKworICAgICAgICBmb3IgKGNvdW50ID0gMDsgY291bnQgPCBjYW5vblRlc3RzLmxlbmd0aDsgY291bnQgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGQgPSBjYW5vblRlc3RzW2NvdW50XVsxXTsKKyAgICAgICAgICAgIGMgPSBjYW5vblRlc3RzW2NvdW50XVsyXTsKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soZCxOb3JtYWxpemVyLk5GRCwwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZEIHF1aWNrIGNoZWNrIGZvciBzdHJpbmcgYXQgY291bnQgIiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soYywgTm9ybWFsaXplci5ORkMsMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gTm9ybWFsaXplci5OTykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZDIHF1aWNrIGNoZWNrIGZvciBzdHJpbmcgYXQgY291bnQgIiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGNvdW50ID0gMDsgY291bnQgPCBjb21wYXRUZXN0cy5sZW5ndGg7IGNvdW50ICsrKQorICAgICAgICB7CisgICAgICAgICAgICBkID0gY29tcGF0VGVzdHNbY291bnRdWzFdOworICAgICAgICAgICAgYyA9IGNvbXBhdFRlc3RzW2NvdW50XVsyXTsKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soZCwgTm9ybWFsaXplci5ORktELDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuWUVTKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUiBpbiBORktEIHF1aWNrIGNoZWNrIGZvciBzdHJpbmcgYXQgY291bnQgIiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soYywgIE5vcm1hbGl6ZXIuTkZLQywwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1IgaW4gTkZLQyBxdWljayBjaGVjayBmb3Igc3RyaW5nIGF0IGNvdW50ICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGludCBxY1RvSW50KE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdCBxYykgeworICAgICAgICBpZihxYz09Tm9ybWFsaXplci5OTykgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0gZWxzZSBpZihxYz09Tm9ybWFsaXplci5ZRVMpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9IGVsc2UgLyogTm9ybWFsaXplci5NQVlCRSAqLyB7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RRdWlja0NoZWNrUGVyQ1AoKSB7CisgICAgICAgIGludCBjLCBsZWFkLCB0cmFpbDsKKyAgICAgICAgU3RyaW5nIHMsIG5mZDsKKyAgICAgICAgaW50IGxjY2MxLCBsY2NjMiwgdGNjYzEsIHRjY2MyOworICAgICAgICBpbnQgcWMxLCBxYzI7CisKKyAgICAgICAgaWYoCisgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5Lk5GRF9RVUlDS19DSEVDSykhPTEgfHwgLy8gWUVTCisgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5Lk5GS0RfUVVJQ0tfQ0hFQ0spIT0xIHx8CisgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUoVVByb3BlcnR5Lk5GQ19RVUlDS19DSEVDSykhPTIgfHwgLy8gTUFZQkUKKyAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuTkZLQ19RVUlDS19DSEVDSykhPTIgfHwKKyAgICAgICAgICAgIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuTEVBRF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTKSE9VUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTKSB8fAorICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5UUkFJTF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTKSE9VUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKFVQcm9wZXJ0eS5DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTKQorICAgICAgICApIHsKKyAgICAgICAgICAgIGVycmxuKCJ3cm9uZyByZXN1bHQgZnJvbSBvbmUgb2YgdGhlIHVfZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVQ0hBUl9ORipfUVVJQ0tfQ0hFQ0spIG9yIFVDSEFSXypfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyIpOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogY29tcGFyZSB0aGUgcXVpY2sgY2hlY2sgcHJvcGVydHkgdmFsdWVzIGZvciBzb21lIGNvZGUgcG9pbnRzCisgICAgICAgICAqIHRvIHRoZSBxdWljayBjaGVjayByZXN1bHRzIGZvciBjaGVja2luZyBzYW1lLWNvZGUgcG9pbnQgc3RyaW5ncworICAgICAgICAgKi8KKyAgICAgICAgYz0wOworICAgICAgICB3aGlsZShjPDB4MTEwMDAwKSB7CisgICAgICAgICAgICBzPVVURjE2LnZhbHVlT2YoYyk7CisKKyAgICAgICAgICAgIHFjMT1VQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYywgVVByb3BlcnR5Lk5GQ19RVUlDS19DSEVDSyk7CisgICAgICAgICAgICBxYzI9cWNUb0ludChOb3JtYWxpemVyLnF1aWNrQ2hlY2socywgTm9ybWFsaXplci5ORkMpKTsKKyAgICAgICAgICAgIGlmKHFjMSE9cWMyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImdldEludFByb3BlcnR5VmFsdWUoTkZDKT0iK3FjMSsiICE9ICIrcWMyKyI9cXVpY2tDaGVjayhORkMpIGZvciBVKyIrSW50ZWdlci50b0hleFN0cmluZyhjKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHFjMT1VQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYywgVVByb3BlcnR5Lk5GRF9RVUlDS19DSEVDSyk7CisgICAgICAgICAgICBxYzI9cWNUb0ludChOb3JtYWxpemVyLnF1aWNrQ2hlY2socywgTm9ybWFsaXplci5ORkQpKTsKKyAgICAgICAgICAgIGlmKHFjMSE9cWMyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImdldEludFByb3BlcnR5VmFsdWUoTkZEKT0iK3FjMSsiICE9ICIrcWMyKyI9cXVpY2tDaGVjayhORkQpIGZvciBVKyIrSW50ZWdlci50b0hleFN0cmluZyhjKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHFjMT1VQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYywgVVByb3BlcnR5Lk5GS0NfUVVJQ0tfQ0hFQ0spOworICAgICAgICAgICAgcWMyPXFjVG9JbnQoTm9ybWFsaXplci5xdWlja0NoZWNrKHMsIE5vcm1hbGl6ZXIuTkZLQykpOworICAgICAgICAgICAgaWYocWMxIT1xYzIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZ2V0SW50UHJvcGVydHlWYWx1ZShORktDKT0iK3FjMSsiICE9ICIrcWMyKyI9cXVpY2tDaGVjayhORktDKSBmb3IgVSsiK0ludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBxYzE9VUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5ORktEX1FVSUNLX0NIRUNLKTsKKyAgICAgICAgICAgIHFjMj1xY1RvSW50KE5vcm1hbGl6ZXIucXVpY2tDaGVjayhzLCBOb3JtYWxpemVyLk5GS0QpKTsKKyAgICAgICAgICAgIGlmKHFjMSE9cWMyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImdldEludFByb3BlcnR5VmFsdWUoTkZLRCk9IitxYzErIiAhPSAiK3FjMisiPXF1aWNrQ2hlY2soTkZLRCkgZm9yIFUrIitJbnRlZ2VyLnRvSGV4U3RyaW5nKGMpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbmZkPU5vcm1hbGl6ZXIubm9ybWFsaXplKHMsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIGxlYWQ9VVRGMTYuY2hhckF0KG5mZCwgMCk7CisgICAgICAgICAgICB0cmFpbD1VVEYxNi5jaGFyQXQobmZkLCBuZmQubGVuZ3RoKCktMSk7CisKKyAgICAgICAgICAgIGxjY2MxPVVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLCBVUHJvcGVydHkuTEVBRF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTKTsKKyAgICAgICAgICAgIGxjY2MyPVVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MobGVhZCk7CisgICAgICAgICAgICB0Y2NjMT1VQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYywgVVByb3BlcnR5LlRSQUlMX0NBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MpOworICAgICAgICAgICAgdGNjYzI9VUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyh0cmFpbCk7CisKKyAgICAgICAgICAgIGlmKGxjY2MxIT1sY2NjMikgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXRJbnRQcm9wZXJ0eVZhbHVlKGxjY2MpPSIrbGNjYzErIiAhPSAiK2xjY2MyKyI9Z2V0Q29tYmluaW5nQ2xhc3MobGVhZCkgZm9yIFUrIitJbnRlZ2VyLnRvSGV4U3RyaW5nKGMpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKHRjY2MxIT10Y2NjMikgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXRJbnRQcm9wZXJ0eVZhbHVlKHRjY2MpPSIrdGNjYzErIiAhPSAiK3RjY2MyKyI9Z2V0Q29tYmluaW5nQ2xhc3ModHJhaWwpIGZvciBVKyIrSW50ZWdlci50b0hleFN0cmluZyhjKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIHNraXAgc29tZSBjb2RlIHBvaW50cyAqLworICAgICAgICAgICAgYz0oMjAqYykvMTkrMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSW50ZXJuYWwgdXRpbGl0aWVzCisgICAgLy8KKyAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEludGVybmFsIHV0aWxpdGllcworICAgIC8vCisKKyAgICBwcml2YXRlIHZvaWQgYmFja0FuZEZvcnRoKE5vcm1hbGl6ZXIgaXRlciwgU3RyaW5nIGlucHV0KQorICAgIHsKKyAgICAgICAgaXRlci5zZXRUZXh0KGlucHV0KTsKKworICAgICAgICAvLyBSdW4gdGhyb3VnaCB0aGUgaXRlcmF0b3IgZm9yd2FyZHMgYW5kIHN0aWNrIGl0IGludG8gYSBTdHJpbmdCdWZmZXIKKyAgICAgICAgU3RyaW5nQnVmZmVyIGZvcndhcmQgPSAgbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBjaCA9IGl0ZXIuZmlyc3QoKTsgY2ggIT0gTm9ybWFsaXplci5ET05FOyBjaCA9IGl0ZXIubmV4dCgpKSB7CisgICAgICAgICAgICBmb3J3YXJkLmFwcGVuZChjaCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgZG8gaXQgYmFja3dhcmRzCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXZlcnNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBjaCA9IGl0ZXIubGFzdCgpOyBjaCAhPSBOb3JtYWxpemVyLkRPTkU7IGNoID0gaXRlci5wcmV2aW91cygpKSB7CisgICAgICAgICAgICByZXZlcnNlLmluc2VydCgwLCBjaCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWZvcndhcmQudG9TdHJpbmcoKS5lcXVhbHMocmV2ZXJzZS50b1N0cmluZygpKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEZvcndhcmQvcmV2ZXJzZSBtaXNtYXRjaCBmb3IgaW5wdXQgIiArIGhleChpbnB1dCkKKyAgICAgICAgICAgICAgICAgICsgIiwgZm9yd2FyZDogIiArIGhleChmb3J3YXJkKSArICIsIGJhY2t3YXJkOiAiK2hleChyZXZlcnNlKSk7CisgICAgICAgIH0gZWxzZSBpZiAoaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogRm9yd2FyZC9yZXZlcnNlIGZvciBpbnB1dCAiICsgaGV4KGlucHV0KQorICAgICAgICAgICAgICAgICAgKyAiLCBmb3J3YXJkOiAiICsgaGV4KGZvcndhcmQpICsgIiwgYmFja3dhcmQ6ICIraGV4KHJldmVyc2UpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBiYWNrQW5kRm9ydGgoTm9ybWFsaXplciBpdGVyLCBTdHJpbmdbXVtdIHRlc3RzKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgaXRlci5zZXRUZXh0KHRlc3RzW2ldWzBdKTsKKworICAgICAgICAgICAgLy8gUnVuIHRocm91Z2ggdGhlIGl0ZXJhdG9yIGZvcndhcmRzIGFuZCBzdGljayBpdCBpbnRvIGEKKyAgICAgICAgICAgIC8vIFN0cmluZ0J1ZmZlcgorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGZvcndhcmQgPSAgbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBpdGVyLmZpcnN0KCk7IGNoICE9IE5vcm1hbGl6ZXIuRE9ORTsgY2ggPSBpdGVyLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGZvcndhcmQuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gTm93IGRvIGl0IGJhY2t3YXJkcworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJldmVyc2UgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKGludCBjaCA9IGl0ZXIubGFzdCgpOyBjaCAhPSBOb3JtYWxpemVyLkRPTkU7IGNoID0gaXRlci5wcmV2aW91cygpKSB7CisgICAgICAgICAgICAgICAgcmV2ZXJzZS5pbnNlcnQoMCwgY2gpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWZvcndhcmQudG9TdHJpbmcoKS5lcXVhbHMocmV2ZXJzZS50b1N0cmluZygpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBGb3J3YXJkL3JldmVyc2UgbWlzbWF0Y2ggZm9yIGlucHV0ICIKKyAgICAgICAgICAgICAgICAgICAgKyBoZXgodGVzdHNbaV1bMF0pICsgIiwgZm9yd2FyZDogIiArIGhleChmb3J3YXJkKQorICAgICAgICAgICAgICAgICAgICArICIsIGJhY2t3YXJkOiAiICsgaGV4KHJldmVyc2UpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6IEZvcndhcmQvcmV2ZXJzZSBmb3IgaW5wdXQgIiArIGhleCh0ZXN0c1tpXVswXSkKKyAgICAgICAgICAgICAgICAgICAgICArICIsIGZvcndhcmQ6ICIgKyBoZXgoZm9yd2FyZCkgKyAiLCBiYWNrd2FyZDogIgorICAgICAgICAgICAgICAgICAgICAgICsgaGV4KHJldmVyc2UpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzdGF0aWNUZXN0IChOb3JtYWxpemVyLk1vZGUgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nW11bXSB0ZXN0cywgaW50IG91dENvbCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIGlucHV0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVswXSk7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVtvdXRDb2xdKTsKKworICAgICAgICAgICAgbG9nbG4oIk5vcm1hbGl6aW5nICciICsgaW5wdXQgKyAiJyAoIiArIGhleChpbnB1dCkgKyAiKSIgKTsKKworICAgICAgICAgICAgU3RyaW5nIG91dHB1dCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGlucHV0LCBtb2RlKTsKKworICAgICAgICAgICAgaWYgKCFvdXRwdXQuZXF1YWxzKGV4cGVjdCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY2FzZSAiICsgaQorICAgICAgICAgICAgICAgICAgICArICIgZXhwZWN0ZWQgJyIgKyBleHBlY3QgKyAiJyAoIiArIGhleChleHBlY3QpICsgIikiCisgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZ290ICciICsgb3V0cHV0ICsgIicgKCIgKyBoZXgob3V0cHV0KSArICIpIiApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNoYXJbXSBvdXRwdXQgPSBuZXcgY2hhclsxXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgY2hhcltdIGlucHV0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVswXSkudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3QgPVV0aWxpdHkudW5lc2NhcGUoIHRlc3RzW2ldW291dENvbF0pOworCisgICAgICAgICAgICBsb2dsbigiTm9ybWFsaXppbmcgJyIgKyBuZXcgU3RyaW5nKGlucHV0KSArICInICgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhleChuZXcgU3RyaW5nKGlucHV0KSkgKyAiKSIgKTsKKyAgICAgICAgICAgIGludCByZXFMZW5ndGg9MDsKKyAgICAgICAgICAgIHdoaWxlKHRydWUpeworICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgcmVxTGVuZ3RoPU5vcm1hbGl6ZXIubm9ybWFsaXplKGlucHV0LG91dHB1dCwgbW9kZSwwKTsKKyAgICAgICAgICAgICAgICAgICAgaWYocmVxTGVuZ3RoPD1vdXRwdXQubGVuZ3RoICAgICl7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH1jYXRjaChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQ9IG5ldyBjaGFyW0ludGVnZXIucGFyc2VJbnQoZS5nZXRNZXNzYWdlKCkpXTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFleHBlY3QuZXF1YWxzKG5ldyBTdHJpbmcob3V0cHV0LDAscmVxTGVuZ3RoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY2FzZSAiICsgaQorICAgICAgICAgICAgICAgICAgICArICIgZXhwZWN0ZWQgJyIgKyBleHBlY3QgKyAiJyAoIiArIGhleChleHBlY3QpICsgIikiCisgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZ290ICciICsgbmV3IFN0cmluZyhvdXRwdXQpCisgICAgICAgICAgICAgICAgICAgICsgIicgKCIgICsgaGV4KG5ldyBTdHJpbmcob3V0cHV0KSkgKyAiKSIgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZGVjb21wb3NlVGVzdChOb3JtYWxpemVyLk1vZGUgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nW11bXSB0ZXN0cywgaW50IG91dENvbCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIGlucHV0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVswXSk7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVtvdXRDb2xdKTsKKworICAgICAgICAgICAgbG9nbG4oIk5vcm1hbGl6aW5nICciICsgaW5wdXQgKyAiJyAoIiArIGhleChpbnB1dCkgKyAiKSIgKTsKKworICAgICAgICAgICAgU3RyaW5nIG91dHB1dCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKGlucHV0LCBtb2RlPT1Ob3JtYWxpemVyLk5GS0QpOworCisgICAgICAgICAgICBpZiAoIW91dHB1dC5lcXVhbHMoZXhwZWN0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjYXNlICIgKyBpCisgICAgICAgICAgICAgICAgICAgICsgIiBleHBlY3RlZCAnIiArIGV4cGVjdCArICInICgiICsgaGV4KGV4cGVjdCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCBnb3QgJyIgKyBvdXRwdXQgKyAiJyAoIiArIGhleChvdXRwdXQpICsgIikiICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2hhcltdIG91dHB1dCA9IG5ldyBjaGFyWzFdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBjaGFyW10gaW5wdXQgPSBVdGlsaXR5LnVuZXNjYXBlKHRlc3RzW2ldWzBdKS50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bb3V0Q29sXSk7CisKKyAgICAgICAgICAgIGxvZ2xuKCJOb3JtYWxpemluZyAnIiArIG5ldyBTdHJpbmcoaW5wdXQpICsgIicgKCIgKworICAgICAgICAgICAgICAgICAgICAgICAgaGV4KG5ldyBTdHJpbmcoaW5wdXQpKSArICIpIiApOworICAgICAgICAgICAgaW50IHJlcUxlbmd0aD0wOworICAgICAgICAgICAgd2hpbGUodHJ1ZSl7CisgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICByZXFMZW5ndGg9Tm9ybWFsaXplci5kZWNvbXBvc2UoaW5wdXQsb3V0cHV0LCBtb2RlPT1Ob3JtYWxpemVyLk5GS0QsMCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHJlcUxlbmd0aDw9b3V0cHV0Lmxlbmd0aCApeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2goSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0PSBuZXcgY2hhcltJbnRlZ2VyLnBhcnNlSW50KGUuZ2V0TWVzc2FnZSgpKV07CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZXhwZWN0LmVxdWFscyhuZXcgU3RyaW5nKG91dHB1dCwwLHJlcUxlbmd0aCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNhc2UgIiArIGkKKyAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkICciICsgZXhwZWN0ICsgIicgKCIgKyBoZXgoZXhwZWN0KSArICIpIgorICAgICAgICAgICAgICAgICAgICArICIgYnV0IGdvdCAnIiArIG5ldyBTdHJpbmcob3V0cHV0KQorICAgICAgICAgICAgICAgICAgICArICInICgiICArIGhleChuZXcgU3RyaW5nKG91dHB1dCkpICsgIikiICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgb3V0cHV0ID0gbmV3IGNoYXJbMV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgY2hhcltdIGlucHV0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVswXSkudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgU3RyaW5nIGV4cGVjdCA9IFV0aWxpdHkudW5lc2NhcGUodGVzdHNbaV1bb3V0Q29sXSk7CisgICAgCisgICAgICAgICAgIGxvZ2xuKCJOb3JtYWxpemluZyAnIiArIG5ldyBTdHJpbmcoaW5wdXQpICsgIicgKCIgKworICAgICAgICAgICAgICAgICAgICAgICBoZXgobmV3IFN0cmluZyhpbnB1dCkpICsgIikiICk7CisgICAgICAgICAgIGludCByZXFMZW5ndGg9MDsKKyAgICAgICAgICAgd2hpbGUodHJ1ZSl7CisgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgcmVxTGVuZ3RoPU5vcm1hbGl6ZXIuZGVjb21wb3NlKGlucHV0LDAsaW5wdXQubGVuZ3RoLG91dHB1dCwwLG91dHB1dC5sZW5ndGgsIG1vZGU9PU5vcm1hbGl6ZXIuTkZLRCwwKTsKKyAgICAgICAgICAgICAgICAgICBpZihyZXFMZW5ndGg8PW91dHB1dC5sZW5ndGggKXsKKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgfWNhdGNoKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgICAgb3V0cHV0PSBuZXcgY2hhcltJbnRlZ2VyLnBhcnNlSW50KGUuZ2V0TWVzc2FnZSgpKV07CisgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKyAgICAgICAgICAgaWYgKCFleHBlY3QuZXF1YWxzKG5ldyBTdHJpbmcob3V0cHV0LDAscmVxTGVuZ3RoKSkpIHsKKyAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjYXNlICIgKyBpCisgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkICciICsgZXhwZWN0ICsgIicgKCIgKyBoZXgoZXhwZWN0KSArICIpIgorICAgICAgICAgICAgICAgICAgICsgIiBidXQgZ290ICciICsgbmV3IFN0cmluZyhvdXRwdXQpCisgICAgICAgICAgICAgICAgICAgKyAiJyAoIiAgKyBoZXgobmV3IFN0cmluZyhvdXRwdXQpKSArICIpIiApOworICAgICAgICAgICB9CisgICAgICAgICAgIGNoYXJbXSBvdXRwdXQyID0gbmV3IGNoYXJbcmVxTGVuZ3RoICogMl07CisgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkob3V0cHV0LCAwLCBvdXRwdXQyLCAwLCByZXFMZW5ndGgpOworICAgICAgICAgICBpbnQgcmV0TGVuZ3RoID0gTm9ybWFsaXplci5kZWNvbXBvc2UoaW5wdXQsMCxpbnB1dC5sZW5ndGgsIG91dHB1dDIsIHJlcUxlbmd0aCwgb3V0cHV0Mi5sZW5ndGgsIG1vZGU9PU5vcm1hbGl6ZXIuTkZLQywwKTsKKyAgICAgICAgICAgaWYocmV0TGVuZ3RoICE9IHJlcUxlbmd0aCl7CisgICAgICAgICAgICAgICBsb2dsbigiRkFJTDogTm9ybWFsaXplci5jb21wb3NlIGRpZCBub3QgcmV0dXJuIHRoZSBleHBlY3RlZCBsZW5ndGguIEV4cGVjdGVkOiAiICtyZXFMZW5ndGggKyAiIEdvdDogIiArIHJldExlbmd0aCk7CisgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjb21wb3NlVGVzdChOb3JtYWxpemVyLk1vZGUgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nW11bXSB0ZXN0cywgaW50IG91dENvbCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIGlucHV0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVswXSk7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVtvdXRDb2xdKTsKKworICAgICAgICAgICAgbG9nbG4oIk5vcm1hbGl6aW5nICciICsgaW5wdXQgKyAiJyAoIiArIGhleChpbnB1dCkgKyAiKSIgKTsKKworICAgICAgICAgICAgU3RyaW5nIG91dHB1dCA9IE5vcm1hbGl6ZXIuY29tcG9zZShpbnB1dCwgbW9kZT09Tm9ybWFsaXplci5ORktDKTsKKworICAgICAgICAgICAgaWYgKCFvdXRwdXQuZXF1YWxzKGV4cGVjdCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY2FzZSAiICsgaQorICAgICAgICAgICAgICAgICAgICArICIgZXhwZWN0ZWQgJyIgKyBleHBlY3QgKyAiJyAoIiArIGhleChleHBlY3QpICsgIikiCisgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZ290ICciICsgb3V0cHV0ICsgIicgKCIgKyBoZXgob3V0cHV0KSArICIpIiApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNoYXJbXSBvdXRwdXQgPSBuZXcgY2hhclsxXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgY2hhcltdIGlucHV0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVswXSkudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3QgPSBVdGlsaXR5LnVuZXNjYXBlKHRlc3RzW2ldW291dENvbF0pOworCisgICAgICAgICAgICBsb2dsbigiTm9ybWFsaXppbmcgJyIgKyBuZXcgU3RyaW5nKGlucHV0KSArICInICgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhleChuZXcgU3RyaW5nKGlucHV0KSkgKyAiKSIgKTsKKyAgICAgICAgICAgIGludCByZXFMZW5ndGg9MDsKKyAgICAgICAgICAgIHdoaWxlKHRydWUpeworICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgcmVxTGVuZ3RoPU5vcm1hbGl6ZXIuY29tcG9zZShpbnB1dCxvdXRwdXQsIG1vZGU9PU5vcm1hbGl6ZXIuTkZLQywwKTsKKyAgICAgICAgICAgICAgICAgICAgaWYocmVxTGVuZ3RoPD1vdXRwdXQubGVuZ3RoICl7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH1jYXRjaChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQ9IG5ldyBjaGFyW0ludGVnZXIucGFyc2VJbnQoZS5nZXRNZXNzYWdlKCkpXTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFleHBlY3QuZXF1YWxzKG5ldyBTdHJpbmcob3V0cHV0LDAscmVxTGVuZ3RoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY2FzZSAiICsgaQorICAgICAgICAgICAgICAgICAgICArICIgZXhwZWN0ZWQgJyIgKyBleHBlY3QgKyAiJyAoIiArIGhleChleHBlY3QpICsgIikiCisgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZ290ICciICsgbmV3IFN0cmluZyhvdXRwdXQpCisgICAgICAgICAgICAgICAgICAgICsgIicgKCIgICsgaGV4KG5ldyBTdHJpbmcob3V0cHV0KSkgKyAiKSIgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBvdXRwdXQgPSBuZXcgY2hhclsxXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgY2hhcltdIGlucHV0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVswXSkudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3QgPSBVdGlsaXR5LnVuZXNjYXBlKHRlc3RzW2ldW291dENvbF0pOworCisgICAgICAgICAgICBsb2dsbigiTm9ybWFsaXppbmcgJyIgKyBuZXcgU3RyaW5nKGlucHV0KSArICInICgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhleChuZXcgU3RyaW5nKGlucHV0KSkgKyAiKSIgKTsKKyAgICAgICAgICAgIGludCByZXFMZW5ndGg9MDsKKyAgICAgICAgICAgIHdoaWxlKHRydWUpeworICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgcmVxTGVuZ3RoPU5vcm1hbGl6ZXIuY29tcG9zZShpbnB1dCwwLGlucHV0Lmxlbmd0aCwgb3V0cHV0LCAwLCBvdXRwdXQubGVuZ3RoLCBtb2RlPT1Ob3JtYWxpemVyLk5GS0MsMCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHJlcUxlbmd0aDw9b3V0cHV0Lmxlbmd0aCApeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2goSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0PSBuZXcgY2hhcltJbnRlZ2VyLnBhcnNlSW50KGUuZ2V0TWVzc2FnZSgpKV07CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZXhwZWN0LmVxdWFscyhuZXcgU3RyaW5nKG91dHB1dCwwLHJlcUxlbmd0aCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNhc2UgIiArIGkKKyAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkICciICsgZXhwZWN0ICsgIicgKCIgKyBoZXgoZXhwZWN0KSArICIpIgorICAgICAgICAgICAgICAgICAgICArICIgYnV0IGdvdCAnIiArIG5ldyBTdHJpbmcob3V0cHV0KQorICAgICAgICAgICAgICAgICAgICArICInICgiICArIGhleChuZXcgU3RyaW5nKG91dHB1dCkpICsgIikiICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNoYXJbXSBvdXRwdXQyID0gbmV3IGNoYXJbcmVxTGVuZ3RoICogMl07CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG91dHB1dCwgMCwgb3V0cHV0MiwgMCwgcmVxTGVuZ3RoKTsKKyAgICAgICAgICAgIGludCByZXRMZW5ndGggPSBOb3JtYWxpemVyLmNvbXBvc2UoaW5wdXQsMCxpbnB1dC5sZW5ndGgsIG91dHB1dDIsIHJlcUxlbmd0aCwgb3V0cHV0Mi5sZW5ndGgsIG1vZGU9PU5vcm1hbGl6ZXIuTkZLQywwKTsKKyAgICAgICAgICAgIGlmKHJldExlbmd0aCAhPSByZXFMZW5ndGgpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJGQUlMOiBOb3JtYWxpemVyLmNvbXBvc2UgZGlkIG5vdCByZXR1cm4gdGhlIGV4cGVjdGVkIGxlbmd0aC4gRXhwZWN0ZWQ6ICIgK3JlcUxlbmd0aCArICIgR290OiAiICsgcmV0TGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgaXRlcmF0ZVRlc3QoTm9ybWFsaXplciBpdGVyLCBTdHJpbmdbXVtdIHRlc3RzLCBpbnQgb3V0Q29sKXsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIGlucHV0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVswXSk7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ID0gVXRpbGl0eS51bmVzY2FwZSh0ZXN0c1tpXVtvdXRDb2xdKTsKKworICAgICAgICAgICAgbG9nbG4oIk5vcm1hbGl6aW5nICciICsgaW5wdXQgKyAiJyAoIiArIGhleChpbnB1dCkgKyAiKSIgKTsKKworICAgICAgICAgICAgaXRlci5zZXRUZXh0KGlucHV0KTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFsKGV4cGVjdCwgaXRlciwgImNhc2UgIiArIGkgKyAiICIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFzc2VydEVxdWFsKFN0cmluZyBleHBlY3RlZCwgTm9ybWFsaXplciBpdGVyLCBTdHJpbmcgbXNnKQorICAgIHsKKyAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgaW50IGNoOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgY0l0ZXIgPSAgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKGV4cGVjdGVkKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICgoY2g9aXRlci5uZXh0KCkpIT0gTm9ybWFsaXplci5ET05FKXsKKyAgICAgICAgICAgIGlmIChpbmRleCA+PSBleHBlY3RlZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbXNnICsgIlVuZXhwZWN0ZWQgY2hhcmFjdGVyICciICsgKGNoYXIpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIicgKCIgKyBoZXgoY2gpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCB3YW50ID0gVVRGMTYuY2hhckF0KGV4cGVjdGVkLGluZGV4KTsKKyAgICAgICAgICAgIGlmIChjaCAhPSB3YW50KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBtc2cgKyAiZ290ICciICsgKGNoYXIpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIicgKCIgKyBoZXgoY2gpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYnV0IGV4cGVjdGVkICciICsgd2FudCArICInICgiICsgaGV4KHdhbnQpKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhdCBpbmRleCAiICsgaW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5kZXgrPSAgVVRGMTYuZ2V0Q2hhckNvdW50KGNoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5kZXggPCBleHBlY3RlZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBtc2cgKyAiT25seSBnb3QgIiArIGluZGV4ICsgIiBjaGFycywgZXhwZWN0ZWQgIgorICAgICAgICAgICAgKyBleHBlY3RlZC5sZW5ndGgoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNJdGVyLnNldFRvTGltaXQoKTsKKyAgICAgICAgd2hpbGUoKGNoPWl0ZXIucHJldmlvdXMoKSkhPU5vcm1hbGl6ZXIuRE9ORSl7CisgICAgICAgICAgICBpbnQgd2FudCA9IGNJdGVyLnByZXZpb3VzQ29kZVBvaW50KCk7CisgICAgICAgICAgICBpZiAoY2ggIT0gd2FudCApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIG1zZyArICJnb3QgJyIgKyAoY2hhciljaAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyAoIiArIGhleChjaCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZXhwZWN0ZWQgJyIgKyB3YW50ICsgIicgKCIgKyBoZXgod2FudCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhdCBpbmRleCAiICsgaW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIE5PVEU6IFRoZXNlIHRlc3RzIGFyZSB1c2VkIGZvciBxdWljayBkZWJ1Z2dpbmcgc28gYXJlIG5vdCBwb3J0ZWQKKyAgICAvLyB0byBJQ1U0QyB0c25vcm0uY3BwIGluIGludGx0ZXN0CisgICAgLy8KKworICAgIHB1YmxpYyB2b2lkIFRlc3REZWJ1Z1N0YXRpYygpeworICAgICAgICBTdHJpbmcgaW4gPSBVdGlsaXR5LnVuZXNjYXBlKCJcXFUwMDAxRDE1N1xcVTAwMDFEMTY1Iik7CisgICAgICAgIGlmKCFOb3JtYWxpemVyLmlzTm9ybWFsaXplZChpbixOb3JtYWxpemVyLk5GQywwKSl7CisgICAgICAgICAgICBlcnJsbigiaXNOb3JtYWxpemVkIGZhaWxlZCIpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGlucHV0ICA9ICAiXHVBRDhCXHVBRDhCXHVBRDhCXHVBRDhCIisKKyAgICAgICAgICAgICJcXFUwMDAxZDE1ZVxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICJcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAiXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgImFhYWFhYWFhYWFhYWFhYWFhYXp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6IisKKyAgICAgICAgICAgICJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIrCisgICAgICAgICAgICAiY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MiKworICAgICAgICAgICAgImRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIisKKyAgICAgICAgICAgICJcdUFEOEJcdUFEOEJcdUFEOEJcdUFEOEIiKworICAgICAgICAgICAgImRcdTAzMUJcdTAzMDdcdTAzMjMiOworICAgICAgICBTdHJpbmcgZXhwZWN0ID0gIlx1MTEwMFx1MTE2Rlx1MTFBQVx1MTEwMFx1MTE2Rlx1MTFBQVx1MTEwMFx1MTE2RiIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHUxMUFBXHUxMTAwXHUxMTZGXHUxMUFBXHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1XHVEODM0XHVERDU3XHVEODM0XHVERDY1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjVcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NVx1RDgzNFx1REQ1N1x1RDgzNFx1REQ2NSIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHVEODM0XHVERDU3XHVEODM0XHVERDY1YWFhYWFhYWFhYWFhYWFhYWFhenp6enp6IisKKyAgICAgICAgICAgICAgICAgICAgICAgICJ6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6eiIrCisgICAgICAgICAgICAgICAgICAgICAgICAiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiKworICAgICAgICAgICAgICAgICAgICAgICAgImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjIisKKyAgICAgICAgICAgICAgICAgICAgICAgICJjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MiKworICAgICAgICAgICAgICAgICAgICAgICAgImRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIisKKyAgICAgICAgICAgICAgICAgICAgICAgICJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQiKworICAgICAgICAgICAgICAgICAgICAgICAgIlx1MTEwMFx1MTE2Rlx1MTFBQVx1MTEwMFx1MTE2Rlx1MTFBQVx1MTEwMFx1MTE2RiIrCisgICAgICAgICAgICAgICAgICAgICAgICAiXHUxMUFBXHUxMTAwXHUxMTZGXHUxMUFBXHUwMDY0XHUwMzFCXHUwMzIzXHUwMzA3IjsKKyAgICAgICAgICAgIFN0cmluZyBvdXRwdXQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShVdGlsaXR5LnVuZXNjYXBlKGlucHV0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICBpZighZXhwZWN0LmVxdWFscyhvdXRwdXQpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCBleHBlY3RlZDogIitoZXgoZXhwZWN0KSArICIgZ290OiAiK2hleChvdXRwdXQpKTsKKyAgICAgICAgICAgIH0KKworCisKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdERlYnVnSXRlcigpeworICAgICAgICBTdHJpbmcgc3JjID0gVXRpbGl0eS51bmVzY2FwZSgiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWUiKTsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gVXRpbGl0eS51bmVzY2FwZSgiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWUiKTsKKyAgICAgICAgTm9ybWFsaXplciBpdGVyID0gbmV3IE5vcm1hbGl6ZXIobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFV0aWxpdHkudW5lc2NhcGUoc3JjKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5PTkUsMCk7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGNJdGVyID0gIFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShleHBlY3RlZCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoKGNoPWl0ZXIubmV4dCgpKSE9IE5vcm1hbGl6ZXIuRE9ORSl7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gZXhwZWN0ZWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArICAiVW5leHBlY3RlZCBjaGFyYWN0ZXIgJyIgKyAoY2hhciljaAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyAoIiArIGhleChjaCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhdCBpbmRleCAiICsgaW5kZXgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHdhbnQgPSBVVEYxNi5jaGFyQXQoZXhwZWN0ZWQsaW5kZXgpOworICAgICAgICAgICAgaWYgKGNoICE9IHdhbnQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArICAiZ290ICciICsgKGNoYXIpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIicgKCIgKyBoZXgoY2gpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYnV0IGV4cGVjdGVkICciICsgd2FudCArICInICgiICsgaGV4KHdhbnQpKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhdCBpbmRleCAiICsgaW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5kZXgrPSAgVVRGMTYuZ2V0Q2hhckNvdW50KGNoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5kZXggPCBleHBlY3RlZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgIk9ubHkgZ290ICIgKyBpbmRleCArICIgY2hhcnMsIGV4cGVjdGVkICIKKyAgICAgICAgICAgICsgZXhwZWN0ZWQubGVuZ3RoKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjSXRlci5zZXRUb0xpbWl0KCk7CisgICAgICAgIHdoaWxlKChjaD1pdGVyLnByZXZpb3VzKCkpIT1Ob3JtYWxpemVyLkRPTkUpeworICAgICAgICAgICAgaW50IHdhbnQgPSBjSXRlci5wcmV2aW91c0NvZGVQb2ludCgpOworICAgICAgICAgICAgaWYgKGNoICE9IHdhbnQgKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAiZ290ICciICsgKGNoYXIpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIicgKCIgKyBoZXgoY2gpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYnV0IGV4cGVjdGVkICciICsgd2FudCArICInICgiICsgaGV4KHdhbnQpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVidWdJdGVyT2xkKCl7CisgICAgICAgIFN0cmluZyBpbnB1dCA9ICJcXFUwMDAxRDE1RSI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICJcdUQ4MzRcdURENTdcdUQ4MzRcdURENjUiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRSZXZlcnNlID0gIlx1RDgzNFx1REQ2NVx1RDgzNFx1REQ1NyI7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgTm9ybWFsaXplciBpdGVyID0gbmV3IE5vcm1hbGl6ZXIobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFV0aWxpdHkudW5lc2NhcGUoaW5wdXQpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQywwKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGdvdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChjaCA9IGl0ZXIuZmlyc3QoKTtjaCE9Tm9ybWFsaXplci5ET05FO2NoPWl0ZXIubmV4dCgpKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gZXhwZWN0ZWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArICAiVW5leHBlY3RlZCBjaGFyYWN0ZXIgJyIgKyAoY2hhciljaCArCisgICAgICAgICAgICAgICAgICAgICAgICInICgiICsgaGV4KGNoKSArICIpIiArICIgYXQgaW5kZXggIiArIGluZGV4KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdvdC5hcHBlbmQoVUNoYXJhY3Rlci50b1N0cmluZyhjaCkpOworICAgICAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWV4cGVjdGVkLmVxdWFscyhnb3QudG9TdHJpbmcoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArICAiZ290ICciICtnb3QrICInICgiICsgaGV4KGdvdCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZXhwZWN0ZWQgJyIgKyBleHBlY3RlZCArICInICgiCisgICAgICAgICAgICAgICAgICAgICAgICArIGhleChleHBlY3RlZCkgKyAiKSIpOworICAgICAgICB9CisgICAgICAgIGlmIChnb3QubGVuZ3RoKCkgPCBleHBlY3RlZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyAgIk9ubHkgZ290ICIgKyBpbmRleCArICIgY2hhcnMsIGV4cGVjdGVkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZXhwZWN0ZWQubGVuZ3RoKCkpOworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIlJldmVyc2UgSXRlcmF0aW9uXG4iKTsKKyAgICAgICAgaXRlci5zZXRJbmRleE9ubHkoaXRlci5lbmRJbmRleCgpKTsKKyAgICAgICAgZ290LnNldExlbmd0aCgwKTsKKyAgICAgICAgZm9yKGNoPWl0ZXIucHJldmlvdXMoKTtjaCE9Tm9ybWFsaXplci5ET05FO2NoPWl0ZXIucHJldmlvdXMoKSl7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gZXhwZWN0ZWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArICAiVW5leHBlY3RlZCBjaGFyYWN0ZXIgJyIgKyAoY2hhciljaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIicgKCIgKyBoZXgoY2gpICsgIikiICsgIiBhdCBpbmRleCAiICsgaW5kZXgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZ290LmFwcGVuZChVQ2hhcmFjdGVyLnRvU3RyaW5nKGNoKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFleHBlY3RlZFJldmVyc2UuZXF1YWxzKGdvdC50b1N0cmluZygpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgICJnb3QgJyIgK2dvdCsgIicgKCIgKyBoZXgoZ290KSArICIpIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBidXQgZXhwZWN0ZWQgJyIgKyBleHBlY3RlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIicgKCIgKyBoZXgoZXhwZWN0ZWQpICsgIikiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZ290Lmxlbmd0aCgpIDwgZXhwZWN0ZWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgICJPbmx5IGdvdCAiICsgaW5kZXggKyAiIGNoYXJzLCBleHBlY3RlZCAiCisgICAgICAgICAgICAgICAgICAgICAgKyBleHBlY3RlZC5sZW5ndGgoKSk7CisgICAgICAgIH0KKworICAgIH0KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gaGVscGVyIGNsYXNzIGZvciBUZXN0UHJldmlvdXNOZXh0KCkKKyAgICAvLyBzaW1wbGUgVVRGLTMyIGNoYXJhY3RlciBpdGVyYXRvcgorICAgIGNsYXNzIFVDaGFySXRlcmF0b3IgeworCisgICAgICAgcHVibGljIFVDaGFySXRlcmF0b3IoaW50W10gc3JjLCBpbnQgbGVuLCBpbnQgaW5kZXgpeworCisgICAgICAgICAgICBzPXNyYzsKKyAgICAgICAgICAgIGxlbmd0aD1sZW47CisgICAgICAgICAgICBpPWluZGV4OworICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGN1cnJlbnQoKSB7CisgICAgICAgICAgICBpZihpPGxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzW2ldOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IG5leHQoKSB7CisgICAgICAgICAgICBpZihpPGxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzW2krK107CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKSB7CisgICAgICAgICAgICBpZihpPjApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc1stLWldOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgeworICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGludFtdIHM7CisgICAgICAgIHByaXZhdGUgaW50IGxlbmd0aCwgaTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFByZXZpb3VzTmV4dCgpIHsKKyAgICAgICAgLy8gc3JjIGFuZCBleHBlY3Qgc3RyaW5ncworICAgICAgICBjaGFyIHNyY1tdPXsKKyAgICAgICAgICAgIFVURjE2LmdldExlYWRTdXJyb2dhdGUoMHgyZjk5OSksIFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKDB4MmY5OTkpLAorICAgICAgICAgICAgVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZSgweDFkMTVmKSwgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoMHgxZDE1ZiksCisgICAgICAgICAgICAweGM0LAorICAgICAgICAgICAgMHgxZWQwCisgICAgICAgIH07CisgICAgICAgIGludCBleHBlY3RbXT17CisgICAgICAgICAgICAweDgzMWQsCisgICAgICAgICAgICAweDFkMTU4LCAweDFkMTY1LAorICAgICAgICAgICAgMHg0MSwgMHgzMDgsCisgICAgICAgICAgICAweDRmLCAweDMwMiwgMHgzMDEKKyAgICAgICAgfTsKKworICAgICAgICAvLyBleHBlY3RlZCBzcmMgaW5kZXhlcyBjb3JyZXNwb25kaW5nIHRvIGV4cGVjdCBpbmRleGVzCisgICAgICAgIGludCBleHBlY3RJbmRleFtdPXsKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICAyLCAyLAorICAgICAgICAgICAgNCwgNCwKKyAgICAgICAgICAgIDUsIDUsIDUsCisgICAgICAgICAgICA2IC8vIGJlaGluZCBsYXN0IGNoYXJhY3RlcgorICAgICAgICB9OworCisgICAgICAgIC8vIGluaXRpYWwgaW5kZXhlcyBpbnRvIHRoZSBzcmMgYW5kIGV4cGVjdCBzdHJpbmdzCisKKyAgICAgICAgZmluYWwgaW50IFNSQ19NSURETEU9NDsKKyAgICAgICAgZmluYWwgaW50IEVYUEVDVF9NSURETEU9MzsKKworCisgICAgICAgIC8vIG1vdmVtZW50IHZlY3RvcgorICAgICAgICAvLyAtIGZvciBwcmV2aW91cygpLCAwIGZvciBjdXJyZW50KCksICsgZm9yIG5leHQoKQorICAgICAgICAvLyBub3QgY29uc3Qgc28gdGhhdCB3ZSBjYW4gdGVybWluYXRlIGl0IGJlbG93IGZvciB0aGUgZXJyb3IgbWVzc2FnZQorICAgICAgICBTdHJpbmcgbW92ZXM9IjArMCswLS0wLTAtKysrMC0tKysrKysrKzAtLS0tLS0tLSI7CisKKyAgICAgICAgLy8gaXRlcmF0b3JzCisgICAgICAgIE5vcm1hbGl6ZXIgaXRlciA9IG5ldyBOb3JtYWxpemVyKG5ldyBTdHJpbmcoc3JjKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZELDApOworICAgICAgICBVQ2hhckl0ZXJhdG9yIGl0ZXIzMiA9IG5ldyBVQ2hhckl0ZXJhdG9yKGV4cGVjdCwgZXhwZWN0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX01JRERMRSk7CisKKyAgICAgICAgaW50IGMxLCBjMjsKKyAgICAgICAgY2hhciBtOworCisgICAgICAgIC8vIGluaXRpYWxseSBzZXQgdGhlIGluZGV4ZXMgaW50byB0aGUgbWlkZGxlIG9mIHRoZSBzdHJpbmdzCisgICAgICAgIGl0ZXIuc2V0SW5kZXhPbmx5KFNSQ19NSURETEUpOworCisgICAgICAgIC8vIG1vdmUgYXJvdW5kIGFuZCBjb21wYXJlIHRoZSBpdGVyYXRpb24gY29kZSBwb2ludHMgd2l0aAorICAgICAgICAvLyB0aGUgZXhwZWN0ZWQgb25lcworICAgICAgICBpbnQgbW92ZXNJbmRleCA9MDsKKyAgICAgICAgd2hpbGUobW92ZXNJbmRleDxtb3Zlcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgbT1tb3Zlcy5jaGFyQXQobW92ZXNJbmRleCsrKTsKKyAgICAgICAgICAgIGlmKG09PSctJykgeworICAgICAgICAgICAgICAgIGMxPWl0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBjMj1pdGVyMzIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihtPT0nMCcpIHsKKyAgICAgICAgICAgICAgICBjMT1pdGVyLmN1cnJlbnQoKTsKKyAgICAgICAgICAgICAgICBjMj1pdGVyMzIuY3VycmVudCgpOworICAgICAgICAgICAgfSBlbHNlIC8qIG09PScrJyAqLyB7CisgICAgICAgICAgICAgICAgYzE9aXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLm5leHQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY29tcGFyZSByZXN1bHRzCisgICAgICAgICAgICBpZihjMSE9YzIpIHsKKyAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBtb3ZlcyB1bnRpbCB0aGUgY3VycmVudCAobSkgbW92ZSwgYW5kIHRlcm1pbmF0ZQorICAgICAgICAgICAgICAgIFN0cmluZyBoaXN0b3J5ID0gbW92ZXMuc3Vic3RyaW5nKDAsbW92ZXNJbmRleCk7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBtaXNtYXRjaCBpbiBOb3JtYWxpemVyIGl0ZXJhdGlvbiBhdCAiK2hpc3RvcnkrIjogIgorICAgICAgICAgICAgICAgICAgICAgICsiZ290IGMxPSAiICsgaGV4KGMxKSArIiAhPSBleHBlY3RlZCBjMj0gIisgaGV4KGMyKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGNvbXBhcmUgaW5kZXhlcworICAgICAgICAgICAgaWYoaXRlci5nZXRJbmRleCgpIT1leHBlY3RJbmRleFtpdGVyMzIuZ2V0SW5kZXgoKV0pIHsKKyAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBtb3ZlcyB1bnRpbCB0aGUgY3VycmVudCAobSkgbW92ZSwgYW5kIHRlcm1pbmF0ZQorICAgICAgICAgICAgICAgIFN0cmluZyBoaXN0b3J5ID0gbW92ZXMuc3Vic3RyaW5nKDAsbW92ZXNJbmRleCk7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBpbmRleCBtaXNtYXRjaCBpbiBOb3JtYWxpemVyIGl0ZXJhdGlvbiBhdCAiCisgICAgICAgICAgICAgICAgICAgICAgK2hpc3RvcnkrICIgOiAiKyAiTm9ybWFsaXplciBpbmRleCAiICtpdGVyLmdldEluZGV4KCkKKyAgICAgICAgICAgICAgICAgICAgICArIiBleHBlY3RlZCAiKyBleHBlY3RJbmRleFtpdGVyMzIuZ2V0SW5kZXgoKV0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIC8vIE9ubHkgaW4gSUNVNGoKKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJldmlvdXNOZXh0SkNJKCkgeworICAgICAgICAvLyBzcmMgYW5kIGV4cGVjdCBzdHJpbmdzCisgICAgICAgIGNoYXIgc3JjW109eworICAgICAgICAgICAgVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZSgweDJmOTk5KSwgVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoMHgyZjk5OSksCisgICAgICAgICAgICBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKDB4MWQxNWYpLCBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZSgweDFkMTVmKSwKKyAgICAgICAgICAgIDB4YzQsCisgICAgICAgICAgICAweDFlZDAKKyAgICAgICAgfTsKKyAgICAgICAgaW50IGV4cGVjdFtdPXsKKyAgICAgICAgICAgIDB4ODMxZCwKKyAgICAgICAgICAgIDB4MWQxNTgsIDB4MWQxNjUsCisgICAgICAgICAgICAweDQxLCAweDMwOCwKKyAgICAgICAgICAgIDB4NGYsIDB4MzAyLCAweDMwMQorICAgICAgICB9OworCisgICAgICAgIC8vIGV4cGVjdGVkIHNyYyBpbmRleGVzIGNvcnJlc3BvbmRpbmcgdG8gZXhwZWN0IGluZGV4ZXMKKyAgICAgICAgaW50IGV4cGVjdEluZGV4W109eworICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIDIsIDIsCisgICAgICAgICAgICA0LCA0LAorICAgICAgICAgICAgNSwgNSwgNSwKKyAgICAgICAgICAgIDYgLy8gYmVoaW5kIGxhc3QgY2hhcmFjdGVyCisgICAgICAgIH07CisKKyAgICAgICAgLy8gaW5pdGlhbCBpbmRleGVzIGludG8gdGhlIHNyYyBhbmQgZXhwZWN0IHN0cmluZ3MKKworICAgICAgICBmaW5hbCBpbnQgU1JDX01JRERMRT00OworICAgICAgICBmaW5hbCBpbnQgRVhQRUNUX01JRERMRT0zOworCisKKyAgICAgICAgLy8gbW92ZW1lbnQgdmVjdG9yCisgICAgICAgIC8vIC0gZm9yIHByZXZpb3VzKCksIDAgZm9yIGN1cnJlbnQoKSwgKyBmb3IgbmV4dCgpCisgICAgICAgIC8vIG5vdCBjb25zdCBzbyB0aGF0IHdlIGNhbiB0ZXJtaW5hdGUgaXQgYmVsb3cgZm9yIHRoZSBlcnJvciBtZXNzYWdlCisgICAgICAgIFN0cmluZyBtb3Zlcz0iMCswKzAtLTAtMC0rKyswLS0rKysrKysrMC0tLS0tLS0tIjsKKworICAgICAgICAvLyBpdGVyYXRvcnMKKyAgICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihuZXcgU3RyaW5nKHNyYykpOworICAgICAgICBOb3JtYWxpemVyIGl0ZXIgPSBuZXcgTm9ybWFsaXplcih0ZXh0LE5vcm1hbGl6ZXIuTkZELDApOworICAgICAgICBVQ2hhckl0ZXJhdG9yIGl0ZXIzMiA9IG5ldyBVQ2hhckl0ZXJhdG9yKGV4cGVjdCwgZXhwZWN0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX01JRERMRSk7CisKKyAgICAgICAgaW50IGMxLCBjMjsKKyAgICAgICAgY2hhciBtOworCisgICAgICAgIC8vIGluaXRpYWxseSBzZXQgdGhlIGluZGV4ZXMgaW50byB0aGUgbWlkZGxlIG9mIHRoZSBzdHJpbmdzCisgICAgICAgIGl0ZXIuc2V0SW5kZXhPbmx5KFNSQ19NSURETEUpOworCisgICAgICAgIC8vIG1vdmUgYXJvdW5kIGFuZCBjb21wYXJlIHRoZSBpdGVyYXRpb24gY29kZSBwb2ludHMgd2l0aAorICAgICAgICAvLyB0aGUgZXhwZWN0ZWQgb25lcworICAgICAgICBpbnQgbW92ZXNJbmRleCA9MDsKKyAgICAgICAgd2hpbGUobW92ZXNJbmRleDxtb3Zlcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgbT1tb3Zlcy5jaGFyQXQobW92ZXNJbmRleCsrKTsKKyAgICAgICAgICAgIGlmKG09PSctJykgeworICAgICAgICAgICAgICAgIGMxPWl0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBjMj1pdGVyMzIucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihtPT0nMCcpIHsKKyAgICAgICAgICAgICAgICBjMT1pdGVyLmN1cnJlbnQoKTsKKyAgICAgICAgICAgICAgICBjMj1pdGVyMzIuY3VycmVudCgpOworICAgICAgICAgICAgfSBlbHNlIC8qIG09PScrJyAqLyB7CisgICAgICAgICAgICAgICAgYzE9aXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgYzI9aXRlcjMyLm5leHQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY29tcGFyZSByZXN1bHRzCisgICAgICAgICAgICBpZihjMSE9YzIpIHsKKyAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBtb3ZlcyB1bnRpbCB0aGUgY3VycmVudCAobSkgbW92ZSwgYW5kIHRlcm1pbmF0ZQorICAgICAgICAgICAgICAgIFN0cmluZyBoaXN0b3J5ID0gbW92ZXMuc3Vic3RyaW5nKDAsbW92ZXNJbmRleCk7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBtaXNtYXRjaCBpbiBOb3JtYWxpemVyIGl0ZXJhdGlvbiBhdCAiK2hpc3RvcnkrIjogIgorICAgICAgICAgICAgICAgICAgICAgICsiZ290IGMxPSAiICsgaGV4KGMxKSArIiAhPSBleHBlY3RlZCBjMj0gIisgaGV4KGMyKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGNvbXBhcmUgaW5kZXhlcworICAgICAgICAgICAgaWYoaXRlci5nZXRJbmRleCgpIT1leHBlY3RJbmRleFtpdGVyMzIuZ2V0SW5kZXgoKV0pIHsKKyAgICAgICAgICAgICAgICAvLyBjb3B5IHRoZSBtb3ZlcyB1bnRpbCB0aGUgY3VycmVudCAobSkgbW92ZSwgYW5kIHRlcm1pbmF0ZQorICAgICAgICAgICAgICAgIFN0cmluZyBoaXN0b3J5ID0gbW92ZXMuc3Vic3RyaW5nKDAsbW92ZXNJbmRleCk7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yOiBpbmRleCBtaXNtYXRjaCBpbiBOb3JtYWxpemVyIGl0ZXJhdGlvbiBhdCAiCisgICAgICAgICAgICAgICAgICAgICAgK2hpc3RvcnkrICIgOiAiKyAiTm9ybWFsaXplciBpbmRleCAiICtpdGVyLmdldEluZGV4KCkKKyAgICAgICAgICAgICAgICAgICAgICArIiBleHBlY3RlZCAiKyBleHBlY3RJbmRleFtpdGVyMzIuZ2V0SW5kZXgoKV0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLy8gdGVzdCBBUElzIHRoYXQgYXJlIG5vdCBvdGhlcndpc2UgdXNlZCAtIGltcHJvdmUgdGVzdCBjb3ZlcmFnZQorICAgIHB1YmxpYyB2b2lkIFRlc3ROb3JtYWxpemVyQVBJKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIC8vIGluc3RhbnRpYXRlIGEgTm9ybWFsaXplciBmcm9tIGEgQ2hhcmFjdGVySXRlcmF0b3IKKyAgICAgICAgICAgIFN0cmluZyBzPVV0aWxpdHkudW5lc2NhcGUoImFcdTAzMDhcdWFjMDBcXFUwMDAyZjgwMCIpOworICAgICAgICAgICAgLy8gbWFrZSBzIGEgYml0IGxvbmdlciBhbmQgbW9yZSBpbnRlcmVzdGluZworICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UocytzKTsKKyAgICAgICAgICAgIE5vcm1hbGl6ZXIgbm9ybSA9IG5ldyBOb3JtYWxpemVyKGl0ZXIsIE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICAgICAgaWYobm9ybS5uZXh0KCkhPTB4ZTQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikubmV4dCgpIik7CisgICAgICAgICAgICB9ICAgCisgICAgCisgICAgICAgICAgICAvLyB0ZXN0IGNsb25lKCksID09LCBhbmQgaGFzaENvZGUoKQorICAgICAgICAgICAgTm9ybWFsaXplciBjbG9uZT0oTm9ybWFsaXplcilub3JtLmNsb25lKCk7CisgICAgICAgICAgICBpZihjbG9uZS5lcXVhbHMobm9ybSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplcihOb3JtYWxpemVyKENoYXJhY3Rlckl0ZXJhdG9yKSkuY2xvbmUoKSE9bm9ybSIpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICBpZihjbG9uZS5nZXRMZW5ndGgoKSE9IG5vcm0uZ2V0TGVuZ3RoKCkpeworICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIuZ2V0QmVnaW5JbmRleCgpIik7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgLy8gY2xvbmUgbXVzdCBoYXZlIHRoZSBzYW1lIGhhc2hDb2RlKCkKKyAgICAgICAgICAgIC8vaWYoY2xvbmUuaGFzaENvZGUoKSE9bm9ybS5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICAvLyAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplcihOb3JtYWxpemVyKENoYXJhY3Rlckl0ZXJhdG9yKSkuY2xvbmUoKS5oYXNoQ29kZSgpIT1jb3B5Lmhhc2hDb2RlKCkiKTsKKyAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgaWYoY2xvbmUubmV4dCgpIT0weGFjMDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplcihOb3JtYWxpemVyKENoYXJhY3Rlckl0ZXJhdG9yKSkubmV4dCgpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgY2ggPSBjbG9uZS5uZXh0KCk7CisgICAgICAgICAgICBpZihjaCE9MHg0ZTNkKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikpLmNsb25lKCkubmV4dCgpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBwb3NpdGlvbiBjaGFuZ2VkLCBtdXN0IGNoYW5nZSBoYXNoQ29kZSgpCisgICAgICAgICAgICBpZihjbG9uZS5oYXNoQ29kZSgpPT1ub3JtLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplcihOb3JtYWxpemVyKENoYXJhY3Rlckl0ZXJhdG9yKSkuY2xvbmUoKS5uZXh0KCkuaGFzaENvZGUoKT09Y29weS5oYXNoQ29kZSgpIik7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyB0ZXN0IGNvbXBvc2UoKSBhbmQgZGVjb21wb3NlKCkKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0ZWw7CisgICAgICAgICAgICBTdHJpbmcgbmZrYywgbmZrZDsKKyAgICAgICAgICAgIHRlbD1uZXcgU3RyaW5nQnVmZmVyKCJcdTIxMjFcdTIxMjFcdTIxMjFcdTIxMjFcdTIxMjFcdTIxMjFcdTIxMjFcdTIxMjFcdTIxMjFcdTIxMjEiKTsKKyAgICAgICAgICAgIHRlbC5pbnNlcnQoMSwoY2hhcikweDAzMDEpOworICAgIAorICAgICAgICAgICAgbmZrYz1Ob3JtYWxpemVyLmNvbXBvc2UodGVsLnRvU3RyaW5nKCksIHRydWUpOworICAgICAgICAgICAgbmZrZD1Ob3JtYWxpemVyLmRlY29tcG9zZSh0ZWwudG9TdHJpbmcoKSwgdHJ1ZSk7CisgICAgICAgICAgICBpZigKKyAgICAgICAgICAgICAgICAhbmZrYy5lcXVhbHMoVXRpbGl0eS51bmVzY2FwZSgiVEVcdTAxMzlURUxURUxURUxURUxURUxURUxURUxURUxURUwiKSl8fAorICAgICAgICAgICAgICAgICFuZmtkLmVxdWFscyhVdGlsaXR5LnVuZXNjYXBlKCJURUxcdTAzMDFURUxURUxURUxURUxURUxURUxURUxURUxURUwiKSkKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyOjooZGUpY29tcG9zZSgpOiB3cm9uZyByZXN1bHQocykiKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIHRlc3Qgc2V0SW5kZXgoKQorLy8gICAgICAgICAgICBjaD1ub3JtLnNldEluZGV4KDMpOworLy8gICAgICAgICAgICBpZihjaCE9MHg0ZTNkKSB7CisvLyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplcihDaGFyYWN0ZXJJdGVyYXRvcikuc2V0SW5kZXgoMykiKTsKKy8vICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gdGVzdCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKSBhbmQgZ2V0VGV4dCgpCisgICAgICAgICAgICBTdHJpbmcgb3V0LCBvdXQyOworICAgICAgICAgICAgY2xvbmUuc2V0VGV4dChpdGVyKTsKKyAgICAKKyAgICAgICAgICAgIG91dCA9IGNsb25lLmdldFRleHQoKTsKKyAgICAgICAgICAgIG91dDIgPSBpdGVyLmdldFRleHQoKTsKKyAgICAgICAgICAgIGlmKCAhb3V0LmVxdWFscyhvdXQyKSB8fAorICAgICAgICAgICAgICAgIGNsb25lLnN0YXJ0SW5kZXgoKSE9MHx8CisgICAgICAgICAgICAgICAgY2xvbmUuZW5kSW5kZXgoKSE9aXRlci5nZXRMZW5ndGgoKQorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXI6OnNldFRleHQoKSBvciBOb3JtYWxpemVyOjpnZXRUZXh0KCkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgCisgICAgICAgICAgICBjaGFyW10gZmlsbEluMSA9IG5ldyBjaGFyW2Nsb25lLmdldExlbmd0aCgpXTsKKyAgICAgICAgICAgIGNoYXJbXSBmaWxsSW4yID0gbmV3IGNoYXJbaXRlci5nZXRMZW5ndGgoKV07CisgICAgICAgICAgICBpbnQgbGVuID0gY2xvbmUuZ2V0VGV4dChmaWxsSW4xKTsKKyAgICAgICAgICAgIGl0ZXIuZ2V0VGV4dChmaWxsSW4yLDApOworICAgICAgICAgICAgaWYoIVV0aWxpdHkuYXJyYXlSZWdpb25NYXRjaGVzKGZpbGxJbjEsMCxmaWxsSW4yLDAsbGVuKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIuZ2V0VGV4dCgpLiBOb3JtYWxpemVyOiAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmhleChuZXcgU3RyaW5nKGZpbGxJbjEpKSsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgSXRlcjogIiArIFV0aWxpdHkuaGV4KG5ldyBTdHJpbmcoZmlsbEluMikpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2xvbmUuc2V0VGV4dChmaWxsSW4xKTsKKyAgICAgICAgICAgIGxlbiA9IGNsb25lLmdldFRleHQoZmlsbEluMik7CisgICAgICAgICAgICBpZighVXRpbGl0eS5hcnJheVJlZ2lvbk1hdGNoZXMoZmlsbEluMSwwLGZpbGxJbjIsMCxsZW4pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplci5zZXRUZXh0KCkgb3IgTm9ybWFsaXplci5nZXRUZXh0KCkiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmhleChuZXcgU3RyaW5nKGZpbGxJbjEpKSsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgSXRlcjogIiArIFV0aWxpdHkuaGV4KG5ldyBTdHJpbmcoZmlsbEluMikpKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIHRlc3Qgc2V0VGV4dChVQ2hhciAqKSwgZ2V0VU1vZGUoKSBhbmQgc2V0TW9kZSgpCisgICAgICAgICAgICBjbG9uZS5zZXRUZXh0KHMpOworICAgICAgICAgICAgY2xvbmUuc2V0SW5kZXhPbmx5KDEpOworICAgICAgICAgICAgY2xvbmUuc2V0TW9kZShOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICBpZihjbG9uZS5nZXRNb2RlKCkhPU5vcm1hbGl6ZXIuTkZEKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXI6OnNldE1vZGUoKSBvciBOb3JtYWxpemVyOjpnZXRNb2RlKCkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGNsb25lLm5leHQoKSE9MHgzMDggfHwgY2xvbmUubmV4dCgpIT0weDExMDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplcjo6c2V0VGV4dCgpIG9yIE5vcm1hbGl6ZXI6OnNldE1vZGUoKSIpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gdGVzdCBsYXN0KCkvcHJldmlvdXMoKSB3aXRoIGFuIGludGVybmFsIGJ1ZmZlciBvdmVyZmxvdworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoImFhYWFhYWFhYWEiKTsKKyAgICAgICAgICAgIGJ1Zi5zZXRDaGFyQXQoMTAtMSwnXHUwMzA4Jyk7CisgICAgICAgICAgICBjbG9uZS5zZXRUZXh0KGJ1Zik7CisgICAgICAgICAgICBpZihjbG9uZS5sYXN0KCkhPTB4MzA4KSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoMTAqVSswMzA4KS5sYXN0KCkiKTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIHRlc3QgVU5PUk1fTk9ORQorICAgICAgICAgICAgbm9ybS5zZXRNb2RlKE5vcm1hbGl6ZXIuTk9ORSk7CisgICAgICAgICAgICBpZihub3JtLmZpcnN0KCkhPTB4NjEgfHwgbm9ybS5uZXh0KCkhPTB4MzA4IHx8IG5vcm0ubGFzdCgpIT0weDJmODAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIoVU5PUk1fTk9ORSkuZmlyc3QoKS9uZXh0KCkvbGFzdCgpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQ9Tm9ybWFsaXplci5ub3JtYWxpemUocywgTm9ybWFsaXplci5OT05FKTsKKyAgICAgICAgICAgIGlmKCFvdXQuZXF1YWxzKHMpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXI6Om5vcm1hbGl6ZShVTk9STV9OT05FKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2ggPSAweDFEMTVFOworICAgICAgICAgICAgU3RyaW5nIGV4cCA9ICJcXFUwMDAxRDE1N1xcVTAwMDFEMTY1IjsKKyAgICAgICAgICAgIFN0cmluZyBucyA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGNoLE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgIGlmKCFucy5lcXVhbHMoVXRpbGl0eS51bmVzY2FwZShleHApKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIubm9ybWFsaXplKGludCxNb2RlKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbnMgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShjaCxOb3JtYWxpemVyLk5GQywwKTsKKyAgICAgICAgICAgIGlmKCFucy5lcXVhbHMoVXRpbGl0eS51bmVzY2FwZShleHApKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIubm9ybWFsaXplKGludCxNb2RlLGludCkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbmNhdGVuYXRlKCkgeworCisgICAgICAgIE9iamVjdFtdW11jYXNlcz1uZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgIC8qIG1vZGUsIGxlZnQsIHJpZ2h0LCByZXN1bHQgKi8KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GQywKKyAgICAgICAgICAgICAgICAicmUiLAorICAgICAgICAgICAgICAgICJcdTAzMDFzdW1cdTAwZTkiLAorICAgICAgICAgICAgICAgICJyXHUwMGU5c3VtXHUwMGU5IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GQywKKyAgICAgICAgICAgICAgICAiYVx1MTEwMCIsCisgICAgICAgICAgICAgICAgIlx1MTE2MWJjZGVmZ2hpamsiLAorICAgICAgICAgICAgICAgICJhXHVhYzAwYmNkZWZnaGlqayIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAvKiAjIyMgVE9ETzogYWRkIG1vcmUgaW50ZXJlc3RpbmcgY2FzZXMgKi8KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GRCwKKyAgICAgICAgICAgICAgICAiXHUwMzQwXHUwMzQxXHUwMzQzXHUwMzQ0XHUwMzc0XHUwMzdFXHUwMzg3XHUwOTU4IiArCisgICAgICAgICAgICAgICAgIlx1MDk1OVx1MDk1QVx1MDk1Qlx1MDk1Q1x1MDk1RFx1MDk1RVx1MDk1Rlx1MDlEQyIgKworICAgICAgICAgICAgICAgICJcdTA5RERcdTA5REZcdTBBMzNcdTBBMzZcdTBBNTlcdTBBNUFcdTBBNUJcdTBBNUUiICsKKyAgICAgICAgICAgICAgICAiXHUwQjVDXHUwQjVEXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5IiArCisgICAgICAgICAgICAgICAgIlx1MEY3M1x1MEY3NVx1MEY3Nlx1MEY3OFx1MEY4MVx1MEY5M1x1MEY5RFx1MEZBMiIgKworICAgICAgICAgICAgICAgICJcdTBGQTdcdTBGQUNcdTBGQjlcdTFGNzFcdTFGNzNcdTFGNzVcdTFGNzdcdTFGNzkiICsKKyAgICAgICAgICAgICAgICAiXHUxRjdCXHUxRjdEXHUxRkJCXHUxRkJFXHUxRkM5XHUxRkNCXHUxRkQzXHUxRkRCIiwKKworICAgICAgICAgICAgICAgICJcdTFGRTNcdTFGRUJcdTFGRUVcdTFGRUZcdTFGRjlcdTFGRkJcdTFGRkRcdTIwMDAiICsKKyAgICAgICAgICAgICAgICAiXHUyMDAxXHUyMTI2XHUyMTJBXHUyMTJCXHUyMzI5XHUyMzJBXHVGOTAwXHVGQTEwIiArCisgICAgICAgICAgICAgICAgIlx1RkExMlx1RkExNVx1RkEyMFx1RkEyMlx1RkEyNVx1RkEyNlx1RkEyQVx1RkIxRiIgKworICAgICAgICAgICAgICAgICJcdUZCMkFcdUZCMkJcdUZCMkNcdUZCMkRcdUZCMkVcdUZCMkZcdUZCMzBcdUZCMzEiICsKKyAgICAgICAgICAgICAgICAiXHVGQjMyXHVGQjMzXHVGQjM0XHVGQjM1XHVGQjM2XHVGQjM4XHVGQjM5XHVGQjNBIiArCisgICAgICAgICAgICAgICAgIlx1RkIzQlx1RkIzQ1x1RkIzRVx1RkI0MFx1RkI0MVx1RkI0M1x1RkI0NFx1RkI0NiIgKworICAgICAgICAgICAgICAgICJcdUZCNDdcdUZCNDhcdUZCNDlcdUZCNEFcdUZCNEJcdUZCNENcdUZCNERcdUZCNEUiLAorCisgICAgICAgICAgICAgICAgIlx1MDM0MFx1MDM0MVx1MDM0M1x1MDM0NFx1MDM3NFx1MDM3RVx1MDM4N1x1MDk1OCIgKworICAgICAgICAgICAgICAgICJcdTA5NTlcdTA5NUFcdTA5NUJcdTA5NUNcdTA5NURcdTA5NUVcdTA5NUZcdTA5REMiICsKKyAgICAgICAgICAgICAgICAiXHUwOUREXHUwOURGXHUwQTMzXHUwQTM2XHUwQTU5XHUwQTVBXHUwQTVCXHUwQTVFIiArCisgICAgICAgICAgICAgICAgIlx1MEI1Q1x1MEI1RFx1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OSIgKworICAgICAgICAgICAgICAgICJcdTBGNzNcdTBGNzVcdTBGNzZcdTBGNzhcdTBGODFcdTBGOTNcdTBGOURcdTBGQTIiICsKKyAgICAgICAgICAgICAgICAiXHUwRkE3XHUwRkFDXHUwRkI5XHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5IiArCisgICAgICAgICAgICAgICAgIlx1MUY3Qlx1MUY3RFx1MUZCQlx1MUZCRVx1MUZDOVx1MUZDQlx1MUZEM1x1MDM5OSIgKworICAgICAgICAgICAgICAgICJcdTAzMDFcdTAzQzVcdTAzMDhcdTAzMDFcdTFGRUJcdTFGRUVcdTFGRUZcdTFGRjkiICsKKyAgICAgICAgICAgICAgICAiXHUxRkZCXHUxRkZEXHUyMDAwXHUyMDAxXHUyMTI2XHUyMTJBXHUyMTJCXHUyMzI5IiArCisgICAgICAgICAgICAgICAgIlx1MjMyQVx1RjkwMFx1RkExMFx1RkExMlx1RkExNVx1RkEyMFx1RkEyMlx1RkEyNSIgKworICAgICAgICAgICAgICAgICJcdUZBMjZcdUZBMkFcdUZCMUZcdUZCMkFcdUZCMkJcdUZCMkNcdUZCMkRcdUZCMkUiICsKKyAgICAgICAgICAgICAgICAiXHVGQjJGXHVGQjMwXHVGQjMxXHVGQjMyXHVGQjMzXHVGQjM0XHVGQjM1XHVGQjM2IiArCisgICAgICAgICAgICAgICAgIlx1RkIzOFx1RkIzOVx1RkIzQVx1RkIzQlx1RkIzQ1x1RkIzRVx1RkI0MFx1RkI0MSIgKworICAgICAgICAgICAgICAgICJcdUZCNDNcdUZCNDRcdUZCNDZcdUZCNDdcdUZCNDhcdUZCNDlcdUZCNEFcdUZCNEIiICsKKyAgICAgICAgICAgICAgICAiXHVGQjRDXHVGQjREXHVGQjRFIgorICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIFN0cmluZyBsZWZ0LCByaWdodCwgZXhwZWN0LCByZXN1bHQ7CisgICAgICAgIE5vcm1hbGl6ZXIuTW9kZSBtb2RlOworICAgICAgICBpbnQgaTsKKworICAgICAgICAvKiB0ZXN0IGNvbmNhdGVuYXRpb24gKi8KKyAgICAgICAgZm9yKGk9MDsgaTxjYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbW9kZSA9IChOb3JtYWxpemVyLk1vZGUpY2FzZXNbaV1bMF07CisKKyAgICAgICAgICAgIGxlZnQ9KFN0cmluZyljYXNlc1tpXVsxXTsKKyAgICAgICAgICAgIHJpZ2h0PShTdHJpbmcpY2FzZXNbaV1bMl07CisgICAgICAgICAgICBleHBlY3Q9KFN0cmluZyljYXNlc1tpXVszXTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXN1bHQ9Tm9ybWFsaXplci5jb25jYXRlbmF0ZShsZWZ0LCByaWdodCwgbW9kZSwwKTsKKyAgICAgICAgICAgICAgICBpZiggcmVzdWx0LmVxdWFscyhleHBlY3QpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyLmNvbmNhdGVuYXRlKCksIGNhc2VzW10gZmFpbGVkIgorICAgICAgICAgICAgICAgICAgICAgICAgICArIiwgcmVzdWx0PT1leHBlY3Q6IGV4cGVjdGVkOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgaGV4KGV4cGVjdCkrIiA9PT09PT09PT0+IGdvdDogIiArIGhleChyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmVzdWx0PU5vcm1hbGl6ZXIuY29uY2F0ZW5hdGUobGVmdC50b0NoYXJBcnJheSgpLCByaWdodC50b0NoYXJBcnJheSgpLCBtb2RlLDApOworICAgICAgICAgICAgICAgIGlmKCByZXN1bHQuZXF1YWxzKGV4cGVjdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIuY29uY2F0ZW5hdGUoKSwgY2FzZXNbXSBmYWlsZWQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICsiLCByZXN1bHQ9PWV4cGVjdDogZXhwZWN0ZWQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBoZXgoZXhwZWN0KSsiID09PT09PT09PT4gZ290OiAiICsgaGV4KHJlc3VsdCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGZpbmFsIGludCBSQU5EX01BWCA9IDB4N2ZmZjsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RDaGVja0ZDRCgpCisgICAgeworICAgICAgY2hhcltdIEZBU1QgPSB7MHgwMDAxLCAweDAwMDIsIDB4MDAwMywgMHgwMDA0LCAweDAwMDUsIDB4MDAwNiwgMHgwMDA3LAorICAgICAgICAgICAgICAgICAgICAgMHgwMDA4LCAweDAwMDksIDB4MDAwQX07CisKKyAgICAgIGNoYXJbXSBGQUxTRSA9IHsweDAwMDEsIDB4MDAwMiwgMHgwMkVBLCAweDAzRUIsIDB4MDMwMCwgMHgwMzAxLAorICAgICAgICAgICAgICAgICAgICAgIDB4MDJCOSwgMHgwMzE0LCAweDAzMTUsIDB4MDMxNn07CisKKyAgICAgIGNoYXJbXSBUUlVFID0gezB4MDAzMCwgMHgwMDQwLCAweDA0NDAsIDB4MDU2RCwgMHgwNjRGLCAweDA2RTcsCisgICAgICAgICAgICAgICAgICAgICAweDAwNTAsIDB4MDczMCwgMHgwOUVFLCAweDFFMTB9OworCisgICAgICBjaGFyW11bXSBkYXRhc3RyPSB7IHsweDAwNjEsIDB4MDMwQSwgMHgxRTA1LCAweDAzMDIsIDB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7MHgwMDYxLCAweDAzMEEsIDB4MDBFMiwgMHgwMzIzLCAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgezB4MDA2MSwgMHgwMzIzLCAweDAwRTIsIDB4MDMyMywgMH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHsweDAwNjEsIDB4MDMyMywgMHgxRTA1LCAweDAzMDIsIDB9CisgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgTm9ybWFsaXplci5RdWlja0NoZWNrUmVzdWx0IHJlc3VsdFtdID0ge05vcm1hbGl6ZXIuWUVTLCBOb3JtYWxpemVyLk5PLCBOb3JtYWxpemVyLk5PLCBOb3JtYWxpemVyLllFU307CisKKyAgICAgIGNoYXJbXSBkYXRhY2hhcj0geyAgICAgICAgMHg2MCwgMHg2MSwgMHg2MiwgMHg2MywgMHg2NCwgMHg2NSwgMHg2NiwgMHg2NywgMHg2OCwgMHg2OSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlMCwgMHhlMSwgMHhlMiwgMHhlMywgMHhlNCwgMHhlNSwgMHhlNiwgMHhlNywgMHhlOCwgMHhlOSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhlYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzAwLCAweDAzMDEsIDB4MDMwMiwgMHgwMzAzLCAweDAzMDQsIDB4MDMwNSwgMHgwMzA2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzMDcsIDB4MDMwOCwgMHgwMzA5LCAweDAzMGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMyMCwgMHgwMzIxLCAweDAzMjIsIDB4MDMyMywgMHgwMzI0LCAweDAzMjUsIDB4MDMyNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMzI3LCAweDAzMjgsIDB4MDMyOSwgMHgwMzJhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFlMDAsIDB4MWUwMSwgMHgxZTAyLCAweDFlMDMsIDB4MWUwNCwgMHgxZTA1LCAweDFlMDYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUwNywgMHgxZTA4LCAweDFlMDksIDB4MWUwYQorICAgICAgICAgICAgICAgICAgICAgICB9OworCisgICAgICBpbnQgY291bnQgPSAwOworCisgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKEZBU1QsMCxGQVNULmxlbmd0aCwgTm9ybWFsaXplci5GQ0QsMCkgIT0gTm9ybWFsaXplci5ZRVMpCisgICAgICAgIGVycmxuKCJOb3JtYWxpemVyLnF1aWNrQ2hlY2soRkNEKSBmYWlsZWQ6IGV4cGVjdGVkIHZhbHVlIGZvciBmYXN0IE5vcm1hbGl6ZXIucXVpY2tDaGVjayBpcyBOb3JtYWxpemVyLllFU1xuIik7CisgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKEZBTFNFLDAsIEZBTFNFLmxlbmd0aCxOb3JtYWxpemVyLkZDRCwwKSAhPSBOb3JtYWxpemVyLk5PKQorICAgICAgICBlcnJsbigiTm9ybWFsaXplci5xdWlja0NoZWNrKEZDRCkgZmFpbGVkOiBleHBlY3RlZCB2YWx1ZSBmb3IgZXJyb3IgTm9ybWFsaXplci5xdWlja0NoZWNrIGlzIE5vcm1hbGl6ZXIuTk9cbiIpOworICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhUUlVFLDAsVFJVRS5sZW5ndGgsTm9ybWFsaXplci5GQ0QsMCkgIT0gTm9ybWFsaXplci5ZRVMpCisgICAgICAgIGVycmxuKCJOb3JtYWxpemVyLnF1aWNrQ2hlY2soRkNEKSBmYWlsZWQ6IGV4cGVjdGVkIHZhbHVlIGZvciBjb3JyZWN0IE5vcm1hbGl6ZXIucXVpY2tDaGVjayBpcyBOb3JtYWxpemVyLllFU1xuIik7CisKKworICAgICAgd2hpbGUgKGNvdW50IDwgNCkKKyAgICAgIHsKKyAgICAgICAgTm9ybWFsaXplci5RdWlja0NoZWNrUmVzdWx0IGZjZHJlc3VsdCA9IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhkYXRhc3RyW2NvdW50XSwwLGRhdGFzdHJbY291bnRdLmxlbmd0aCwgTm9ybWFsaXplci5GQ0QsMCk7CisgICAgICAgIGlmIChyZXN1bHRbY291bnRdICE9IGZjZHJlc3VsdCkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIucXVpY2tDaGVjayhGQ0QpIGZhaWxlZDogRGF0YSBzZXQgIisgY291bnQKKyAgICAgICAgICAgICAgICAgICAgKyAiIGV4cGVjdGVkIHZhbHVlICIrIHJlc3VsdFtjb3VudF0pOworICAgICAgICB9CisgICAgICAgIGNvdW50ICsrOworICAgICAgfQorCisgICAgICAvKiByYW5kb20gY2hlY2tzIG9mIGxvbmcgc3RyaW5ncyAqLworICAgICAgLy9zcmFuZCgodW5zaWduZWQpdGltZSggTlVMTCApKTsKKyAgICAgIFJhbmRvbSByYW5kID0gY3JlYXRlUmFuZG9tKCk7IC8vIHVzZSB0ZXN0IGZyYW1ld29yaydzIHJhbmRvbQorCisgICAgICBmb3IgKGNvdW50ID0gMDsgY291bnQgPCA1MDsgY291bnQgKyspCisgICAgICB7CisgICAgICAgIGludCBzaXplID0gMDsKKyAgICAgICAgTm9ybWFsaXplci5RdWlja0NoZWNrUmVzdWx0IHRlc3RyZXN1bHQgPSBOb3JtYWxpemVyLllFUzsKKyAgICAgICAgY2hhcltdIGRhdGE9IG5ldyBjaGFyWzIwXTsKKyAgICAgICAgY2hhcltdIG5vcm09IG5ldyBjaGFyWzEwMF07CisgICAgICAgIGNoYXJbXSBuZmQgPSBuZXcgY2hhclsxMDBdOworICAgICAgICBpbnQgbm9ybVN0YXJ0ID0gMDsKKyAgICAgICAgaW50IG5mZHNpemUgPSAwOworICAgICAgICB3aGlsZSAoc2l6ZSAhPSAxOSkgeworICAgICAgICAgIGRhdGFbc2l6ZV0gPSBkYXRhY2hhcltyYW5kLm5leHRJbnQoUkFORF9NQVgpKjUwL1JBTkRfTUFYXTsKKyAgICAgICAgICBsb2dsbigiMHgiK2RhdGFbc2l6ZV0pOworICAgICAgICAgIG5vcm1TdGFydCArPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShkYXRhLHNpemUsc2l6ZSsxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vcm0sbm9ybVN0YXJ0LDEwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GRCwwKTsKKyAgICAgICAgICBzaXplICsrOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJcbiIpOworCisgICAgICAgIG5mZHNpemUgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShkYXRhLDAsc2l6ZSwgbmZkLDAsbmZkLmxlbmd0aCxOb3JtYWxpemVyLk5GRCwwKTsKKyAgICAgICAgLy8gICAgbmZkc2l6ZSA9IHVub3JtX25vcm1hbGl6ZShkYXRhLCBzaXplLCBVTk9STV9ORkQsIFVDT0xfSUdOT1JFX0hBTkdVTCwKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgbmZkLCAxMDAsICZzdGF0dXMpOworICAgICAgICBpZiAobmZkc2l6ZSAhPSBub3JtU3RhcnQgfHwgVXRpbGl0eS5hcnJheVJlZ2lvbk1hdGNoZXMobmZkLDAsIG5vcm0sMCxuZmRzaXplKSA9PWZhbHNlKSB7CisgICAgICAgICAgdGVzdHJlc3VsdCA9IE5vcm1hbGl6ZXIuTk87CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlc3RyZXN1bHQgPT0gTm9ybWFsaXplci5ZRVMpIHsKKyAgICAgICAgICBsb2dsbigicmVzdWx0IE5vcm1hbGl6ZXIuWUVTXG4iKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICBsb2dsbigicmVzdWx0IE5vcm1hbGl6ZXIuTk9cbiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhkYXRhLDAsZGF0YS5sZW5ndGgsIE5vcm1hbGl6ZXIuRkNELDApICE9IHRlc3RyZXN1bHQpIHsKKyAgICAgICAgICBlcnJsbigiTm9ybWFsaXplci5xdWlja0NoZWNrKEZDRCkgZmFpbGVkOiBleHBlY3RlZCAiKyB0ZXN0cmVzdWx0ICsiIGZvciByYW5kb20gZGF0YTogIitoZXgobmV3IFN0cmluZyhkYXRhKSkgKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKworCisgICAgLy8gcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIG9mIE5vcm1hbGl6ZXI6OmNvbXBhcmUKKyAgICBwcml2YXRlIGludCByZWZfbm9ybV9jb21wYXJlKFN0cmluZyBzMSwgU3RyaW5nIHMyLCBpbnQgb3B0aW9ucykgeworICAgICAgICBTdHJpbmcgdDEsIHQyLHIxLHIyOworCisgICAgICAgIGludCBub3JtT3B0aW9ucz0oaW50KShvcHRpb25zPj5Ob3JtYWxpemVyLkNPTVBBUkVfTk9STV9PUFRJT05TX1NISUZUKTsKKyAgICAgICAgCisgICAgICAgIGlmKChvcHRpb25zJk5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkhPTApIHsKKyAgICAgICAgICAgIC8vIE5GRCh0b0Nhc2Vmb2xkKE5GRChYKSkpID0gTkZEKHRvQ2FzZWZvbGQoTkZEKFkpKSkKKyAgICAgICAgICAgIHIxID0gTm9ybWFsaXplci5kZWNvbXBvc2UoczEsZmFsc2Usbm9ybU9wdGlvbnMpOworICAgICAgICAgICAgcjIgPSBOb3JtYWxpemVyLmRlY29tcG9zZShzMixmYWxzZSxub3JtT3B0aW9ucyk7CisgICAgICAgICAgICByMSA9IFVDaGFyYWN0ZXIuZm9sZENhc2UocjEsb3B0aW9ucyk7CisgICAgICAgICAgICByMiA9IFVDaGFyYWN0ZXIuZm9sZENhc2UocjIsb3B0aW9ucyk7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgcjEgPSBzMTsKKyAgICAgICAgICAgIHIyID0gczI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHQxID0gTm9ybWFsaXplci5kZWNvbXBvc2UocjEsIGZhbHNlLCBub3JtT3B0aW9ucyk7CisgICAgICAgIHQyID0gTm9ybWFsaXplci5kZWNvbXBvc2UocjIsIGZhbHNlLCBub3JtT3B0aW9ucyk7CisKKyAgICAgICAgaWYoKG9wdGlvbnMmTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVIpIT0wKSB7CisgICAgICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yIGNvbXAgCisgICAgICAgICAgICAgICAgICAgID0gbmV3IFVURjE2LlN0cmluZ0NvbXBhcmF0b3IodHJ1ZSwgZmFsc2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICAgICAgcmV0dXJuIGNvbXAuY29tcGFyZSh0MSx0Mik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdDEuY29tcGFyZVRvKHQyKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgLy8gdGVzdCB3cmFwcGVyIGZvciBOb3JtYWxpemVyOjpjb21wYXJlLCBzZXRzIFVOT1JNX0lOUFVUX0lTX0ZDRCBhcHByb3ByaWF0ZWx5CisgICAgcHJpdmF0ZSBpbnQgbm9ybV9jb21wYXJlKFN0cmluZyBzMSwgU3RyaW5nIHMyLCBpbnQgb3B0aW9ucykgeworICAgICAgICBpbnQgbm9ybU9wdGlvbnM9KGludCkob3B0aW9ucz4+Tm9ybWFsaXplci5DT01QQVJFX05PUk1fT1BUSU9OU19TSElGVCk7CisKKyAgICAgICAgaWYoIE5vcm1hbGl6ZXIuWUVTPT1Ob3JtYWxpemVyLnF1aWNrQ2hlY2soczEsTm9ybWFsaXplci5GQ0Qsbm9ybU9wdGlvbnMpICYmCisgICAgICAgICAgICBOb3JtYWxpemVyLllFUz09Tm9ybWFsaXplci5xdWlja0NoZWNrKHMyLE5vcm1hbGl6ZXIuRkNELG5vcm1PcHRpb25zKSkgeworICAgICAgICAgICAgb3B0aW9uc3w9Tm9ybWFsaXplci5JTlBVVF9JU19GQ0Q7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gTm9ybWFsaXplci5jb21wYXJlKHMxLCBzMiwgb3B0aW9ucyk7CisgICAgfQorCisgICAgLy8gcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIG9mIFVuaWNvZGVTdHJpbmc6OmNhc2VDb21wYXJlCisgICAgcHJpdmF0ZSBpbnQgcmVmX2Nhc2VfY29tcGFyZShTdHJpbmcgczEsIFN0cmluZyBzMiwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgU3RyaW5nIHQxLCB0MjsKKworICAgICAgICB0MT1zMTsKKyAgICAgICAgdDI9czI7CisKKyAgICAgICAgdDEgPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKHQxLCgob3B0aW9ucyZOb3JtYWxpemVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk9PTApKTsKKyAgICAgICAgdDIgPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKHQyLCgob3B0aW9ucyZOb3JtYWxpemVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk9PTApKTsKKworICAgICAgICBpZigob3B0aW9ucyZOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUikhPTApIHsKKyAgICAgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IgY29tcCAKKyAgICAgICAgICAgICAgICAgICAgPSBuZXcgVVRGMTYuU3RyaW5nQ29tcGFyYXRvcih0cnVlLCBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICAgICAgcmV0dXJuIGNvbXAuY29tcGFyZSh0MSx0Mik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdDEuY29tcGFyZVRvKHQyKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgLy8gcmVkdWNlIGFuIGludGVnZXIgdG8gLTEvMC8xCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHNpZ24oaW50IHZhbHVlKSB7CisgICAgICAgIGlmKHZhbHVlPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAodmFsdWU+PjMxKXwxOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBzaWduU3RyaW5nKGludCB2YWx1ZSkgeworICAgICAgICBpZih2YWx1ZTwwKSB7CisgICAgICAgICAgICByZXR1cm4gIjwwIjsKKyAgICAgICAgfSBlbHNlIGlmKHZhbHVlPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gIj0wIjsKKyAgICAgICAgfSBlbHNlIC8qIHZhbHVlPjAgKi8geworICAgICAgICAgICAgcmV0dXJuICI+MCI7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gdGVzdCBOb3JtYWxpemVyOjpjb21wYXJlIGFuZCB1bm9ybV9jb21wYXJlICh0aGlubHkgd3JhcHBlZCBieSB0aGUgZm9ybWVyKQorICAgIC8vIGJ5IGNvbXBhcmluZyBpdCB3aXRoIGl0cyBzZW1hbnRpYyBlcXVpdmFsZW50CisgICAgLy8gc2luY2Ugd2UgdHJ1c3QgdGhlIHBpZWNlcywgdGhpcyBpcyBzdWZmaWNpZW50CisKKyAgICAvLyB0ZXN0IGVhY2ggc3RyaW5nIHdpdGggaXRzZWxmIGFuZCBlYWNoIG90aGVyCisgICAgLy8gZWFjaCB0aW1lIHdpdGggYWxsIG9wdGlvbnMKKyAgICBwcml2YXRlICBTdHJpbmcgc3RyaW5nc1tdPW5ldyBTdHJpbmdbXXsKKyAgICAgICAgICAgICAgICAvLyBzb21lIGNhc2VzIGZyb20gTm9ybWFsaXphdGlvblRlc3QudHh0CisgICAgICAgICAgICAgICAgLy8gMC4uMworICAgICAgICAgICAgICAgICJEXHUwMzFCXHUwMzA3XHUwMzIzIiwKKyAgICAgICAgICAgICAgICAiXHUxRTBDXHUwMzFCXHUwMzA3IiwKKyAgICAgICAgICAgICAgICAiRFx1MDMxQlx1MDMyM1x1MDMwNyIsCisgICAgICAgICAgICAgICAgImRcdTAzMUJcdTAzMjNcdTAzMDciLAorICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyA0Li42CisgICAgICAgICAgICAgICAgIlx1MDBFNCIsCisgICAgICAgICAgICAgICAgImFcdTAzMDgiLAorICAgICAgICAgICAgICAgICJBXHUwMzA4IiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gQW5nc3Ryb20gc2lnbiA9IEEgcmluZworICAgICAgICAgICAgICAgIC8vIDcuLjEwCisgICAgICAgICAgICAgICAgIlx1MjEyQiIsCisgICAgICAgICAgICAgICAgIlx1MDBDNSIsCisgICAgICAgICAgICAgICAgIkFcdTAzMEEiLAorICAgICAgICAgICAgICAgICJhXHUwMzBBIiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gMTEuMTQKKyAgICAgICAgICAgICAgICAiYVx1MDU5QVx1MDMxNlx1MzAyQVx1MDMyRmIiLAorICAgICAgICAgICAgICAgICJhXHUzMDJBXHUwMzE2XHUwMzJGXHUwNTlBYiIsCisgICAgICAgICAgICAgICAgImFcdTMwMkFcdTAzMTZcdTAzMkZcdTA1OUFiIiwKKyAgICAgICAgICAgICAgICAiQVx1MDU5QVx1MDMxNlx1MzAyQVx1MDMyRmIiLAorICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBmcm9tIElDVSBjYXNlIGZvbGRpbmcgdGVzdHMKKyAgICAgICAgICAgICAgICAvLyAxNS4uMjAKKyAgICAgICAgICAgICAgICAiQVx1MDBkZlx1MDBiNVx1ZmIwM1xcVTAwMDEwNDBjXHUwMTMxIiwKKyAgICAgICAgICAgICAgICAiYXNzXHUwM2JjZmZpXFxVMDAwMTA0MzRpIiwKKyAgICAgICAgICAgICAgICAiXHUwMDYxXHUwMDQyXHUwMTMxXHUwM2EzXHUwMGRmXHVmYjAzXHVkOTNmXHVkZmZmIiwKKyAgICAgICAgICAgICAgICAiXHUwMDQxXHUwMDYyXHUwMDY5XHUwM2MzXHUwMDczXHUwMDUzXHUwMDQ2XHUwMDY2XHUwMDQ5XHVkOTNmXHVkZmZmIiwKKyAgICAgICAgICAgICAgICAiXHUwMDQxXHUwMDYyXHUwMTMxXHUwM2MzXHUwMDUzXHUwMDczXHUwMDY2XHUwMDQ2XHUwMDY5XHVkOTNmXHVkZmZmIiwKKyAgICAgICAgICAgICAgICAiXHUwMDQxXHUwMDYyXHUwMDY5XHUwM2MzXHUwMDczXHUwMDUzXHUwMDQ2XHUwMDY2XHUwMDQ5XHVkOTNmXHVkZmZkIiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gICAgIFUrZDgwMCBVKzEwMDAxICAgc2VlIGltcGxlbWVudGF0aW9uIGNvbW1lbnQgaW4gdW5vcm1fY21wRXF1aXZGb2xkCisgICAgICAgICAgICAgICAgLy8gdnMuIFUrMTAwMDAgICAgICAgICAgYXQgYm90dG9tIC0gY29kZSBwb2ludCBvcmRlcgorICAgICAgICAgICAgICAgIC8vIDIxLi4yMgorICAgICAgICAgICAgICAgICJcdWQ4MDBcdWQ4MDBcdWRjMDEiLAorICAgICAgICAgICAgICAgICJcdWQ4MDBcdWRjMDAiLAorICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBvdGhlciBjb2RlIHBvaW50IG9yZGVyIHRlc3RzIGZyb20gdXN0cnRlc3QuY3BwCisgICAgICAgICAgICAgICAgLy8gMjMuLjMxCisgICAgICAgICAgICAgICAgIlx1MjBhY1x1ZDgwMSIsCisgICAgICAgICAgICAgICAgIlx1MjBhY1x1ZDgwMFx1ZGMwMCIsCisgICAgICAgICAgICAgICAgIlx1ZDgwMCIsCisgICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZmY2MSIsCisgICAgICAgICAgICAgICAgIlx1ZGZmZiIsCisgICAgICAgICAgICAgICAgIlx1ZmY2MVx1ZGZmZiIsCisgICAgICAgICAgICAgICAgIlx1ZmY2MVx1ZDgwMFx1ZGMwMiIsCisgICAgICAgICAgICAgICAgIlx1ZDgwMFx1ZGMwMiIsCisgICAgICAgICAgICAgICAgIlx1ZDg0ZFx1ZGM1NiIsCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGxvbmcgc3RyaW5ncywgc2VlIGNub3JtdHN0LmMvVGVzdE5vcm1Db3ZlcmFnZSgpCisgICAgICAgICAgICAgICAgLy8gZXF1aXZhbGVudCBpZiBjYXNlLWluc2Vuc2l0aXZlCisgICAgICAgICAgICAgICAgLy8gMzIuLjMzCisgICAgICAgICAgICAgICAgIlx1QUQ4Qlx1QUQ4Qlx1QUQ4Qlx1QUQ4QiIrCisgICAgICAgICAgICAgICAgIlxcVTAwMDFkMTVlXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICAgICAiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgICAgICJcXFUwMDAxZDE1ZVxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAgICAgIlxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICAgICAiXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgICAgICJhYWFhYWFhYWFhYWFhYWFhYWF6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6eiIrCisgICAgICAgICAgICAgICAgImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIisKKyAgICAgICAgICAgICAgICAiY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MiKworICAgICAgICAgICAgICAgICJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIrCisgICAgICAgICAgICAgICAgIlx1QUQ4Qlx1QUQ4Qlx1QUQ4Qlx1QUQ4QiIrCisgICAgICAgICAgICAgICAgImRcdTAzMUJcdTAzMDdcdTAzMjMiLAorICAgICAgICAKKyAgICAgICAgICAgICAgICAiXHUxMTAwXHUxMTZmXHUxMWFhXHVBRDhCXHVBRDhCXHUxMTAwXHUxMTZmXHUxMWFhIisKKyAgICAgICAgICAgICAgICAiXFxVMDAwMWQxNTdcXFUwMDAxZDE2NVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgICAgICJcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAgICAgIlxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlIisKKyAgICAgICAgICAgICAgICAiXFxVMDAwMWQxNWVcXFUwMDAxZDE1N1xcVTAwMDFkMTY1XFxVMDAwMWQxNWVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWUiKworICAgICAgICAgICAgICAgICJcXFUwMDAxZDE1ZVxcVTAwMDFkMTU3XFxVMDAwMWQxNjVcXFUwMDAxZDE1ZVxcVTAwMDFkMTVlXFxVMDAwMWQxNWVcXFUwMDAxZDE1ZSIrCisgICAgICAgICAgICAgICAgImFhYWFhYWFhYWFBQUFBQUFBQVpaWlpaWlpaWlpaWlpaWlp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6enp6IisKKyAgICAgICAgICAgICAgICAiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiKworICAgICAgICAgICAgICAgICJjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjYyIrCisgICAgICAgICAgICAgICAgImRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIisKKyAgICAgICAgICAgICAgICAiXHUxMTAwXHUxMTZmXHUxMWFhXHVBRDhCXHVBRDhCXHUxMTAwXHUxMTZmXHUxMWFhIisKKyAgICAgICAgICAgICAgICAiXHUxRTBDXHUwMzFCXHUwMzA3IiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gc29tZSBzdHJpbmdzIHRoYXQgbWF5IG1ha2UgYSBkaWZmZXJlbmNlIHdoZXRoZXIgdGhlIGNvbXBhcmUgZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAvLyBjYXNlLWZvbGRzIG9yIGRlY29tcG9zZXMgZmlyc3QKKyAgICAgICAgICAgICAgICAvLyAzNC4uNDEKKyAgICAgICAgICAgICAgICAiXHUwMzYwXHUwMzQ1XHUwMzM0IiwKKyAgICAgICAgICAgICAgICAiXHUwMzYwXHUwM2I5XHUwMzM0IiwKKyAgICAgICAgCisgICAgICAgICAgICAgICAgIlx1MDM2MFx1MWY4MFx1MDMzNCIsCisgICAgICAgICAgICAgICAgIlx1MDM2MFx1MDNiMVx1MDMxM1x1MDNiOVx1MDMzNCIsCisgICAgICAgIAorICAgICAgICAgICAgICAgICJcdTAzNjBcdTFmZmNcdTAzMzQiLAorICAgICAgICAgICAgICAgICJcdTAzNjBcdTAzYzlcdTAzYjlcdTAzMzQiLAorICAgICAgICAKKyAgICAgICAgICAgICAgICAiYVx1MDM2MFx1MDM0NVx1MDM2MFx1MDM0NWIiLAorICAgICAgICAgICAgICAgICJhXHUwMzQ1XHUwMzYwXHUwMzQ1XHUwMzYwYiIsCisgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGludGVyZXN0aW5nIGNhc2VzIGZvciBjYW5vbmljYWwgY2FzZWxlc3MgbWF0Y2ggd2l0aCB0dXJraWMgaSBoYW5kbGluZworICAgICAgICAgICAgICAgIC8vIDQyLi40MworICAgICAgICAgICAgICAgICJcdTAwY2MiLAorICAgICAgICAgICAgICAgICJcdTAwNjlcdTAzMDAiLAorICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBzdHJpbmdzIHdpdGggcG9zdC1Vbmljb2RlIDMuMiBub3JtYWxpemF0aW9uIG9yIG5vcm1hbGl6YXRpb24gY29ycmVjdGlvbnMKKyAgICAgICAgICAgICAgICAvLyA0NC4uNDUKKyAgICAgICAgICAgICAgICAiXHUwMGU0XHUxOTNiXFxVMDAwMmY4NjgiLAorICAgICAgICAgICAgICAgICJcdTAwNjFcdTE5M2JcdTAzMDhcdTM2ZmMiLAorCisKKyAgICB9OworCisgICAgLy8gYWxsIGNvbWJpbmF0aW9ucyBvZiBvcHRpb25zCisgICAgLy8gVU5PUk1fSU5QVVRfSVNfRkNEIGlzIHNldCBhdXRvbWF0aWNhbGx5IGlmIGJvdGggaW5wdXQgc3RyaW5ncyBmdWxmaWxsIEZDRCBjb25kaXRpb25zCisgICAgZmluYWwgY2xhc3MgVGVtcCB7CisgICAgICAgIGludCBvcHRpb25zOworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgcHVibGljIFRlbXAoaW50IG9wdCxTdHJpbmcgc3RyKXsKKyAgICAgICAgICAgIG9wdGlvbnMgPW9wdDsKKyAgICAgICAgICAgIG5hbWUgPSBzdHI7CisgICAgICAgIH0KKworICAgIH0KKyAgICAvLyBzZXQgVU5PUk1fVU5JQ09ERV8zXzIgaW4gb25lIGFkZGl0aW9uYWwgY29tYmluYXRpb24KKyAgCisgICAgcHJpdmF0ZSBUZW1wW10gb3B0ID0gbmV3IFRlbXBbXXsKKyAgICAgICAgICAgICAgICAgICAgbmV3IFRlbXAoMCwiZGVmYXVsdCIpLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVtcChOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUiwgImNvZGUgcG9pbnQgb3JkZXIiICksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZW1wKE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSwgImlnbm9yZSBjYXNlIiApLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVtcChOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUnxOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UsICJjb2RlIHBvaW50IG9yZGVyICYgaWdub3JlIGNhc2UiICksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZW1wKE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRXxOb3JtYWxpemVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSwgImlnbm9yZSBjYXNlICYgc3BlY2lhbCBpIiksCisgICAgICAgICAgICAgICAgICAgIG5ldyBUZW1wKE5vcm1hbGl6ZXIuQ09NUEFSRV9DT0RFX1BPSU5UX09SREVSfE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRXxOb3JtYWxpemVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSwgImNvZGUgcG9pbnQgb3JkZXIgJiBpZ25vcmUgY2FzZSAmIHNwZWNpYWwgaSIpLAorICAgICAgICAgICAgICAgICAgICBuZXcgVGVtcChOb3JtYWxpemVyLlVOSUNPREVfM18yIDw8IE5vcm1hbGl6ZXIuQ09NUEFSRV9OT1JNX09QVElPTlNfU0hJRlQsICJVbmljb2RlIDMuMiIpCisgICAgICAgICAgICB9OworCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGFyZURlYnVnKCl7CisKKyAgICAgICAgU3RyaW5nW10gcyA9IG5ldyBTdHJpbmdbMTAwXTsgLy8gYXQgbGVhc3QgYXMgbWFueSBpdGVtcyBhcyBpbiBzdHJpbmdzW10gIQorCisKKyAgICAgICAgaW50IGksIGosIGssIGNvdW50PXN0cmluZ3MubGVuZ3RoOworICAgICAgICBpbnQgcmVzdWx0LCByZWZSZXN1bHQ7CisKKyAgICAgICAgLy8gY3JlYXRlIHRoZSBVbmljb2RlU3RyaW5ncworICAgICAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIHNbaV09VXRpbGl0eS51bmVzY2FwZShzdHJpbmdzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBVVEYxNi5TdHJpbmdDb21wYXJhdG9yIGNvbXAgPSBuZXcgVVRGMTYuU3RyaW5nQ29tcGFyYXRvcih0cnVlLCBmYWxzZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIC8vIHRlc3QgdGhlbSBlYWNoIHdpdGggZWFjaCBvdGhlcgorCisgICAgICAgIGkgPSA0MjsKKyAgICAgICAgaiA9IDQzOworICAgICAgICBrID0gMjsKKyAgICAgICAgLy8gdGVzdCBOb3JtYWxpemVyOjpjb21wYXJlCisgICAgICAgIHJlc3VsdD1ub3JtX2NvbXBhcmUoc1tpXSwgc1tqXSwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICByZWZSZXN1bHQ9cmVmX25vcm1fY29tcGFyZShzW2ldLCBzW2pdLCBvcHRba10ub3B0aW9ucyk7CisgICAgICAgIGlmKHNpZ24ocmVzdWx0KSE9c2lnbihyZWZSZXN1bHQpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplcjo6Y29tcGFyZSggIiArIGkgKyIsICIraiArICIsICIgK2srIiggIiArb3B0W2tdLm5hbWUrIikpPSIgKyByZXN1bHQgKyIgc2hvdWxkIGJlIHNhbWUgc2lnbiBhcyAiICsgcmVmUmVzdWx0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3QgVW5pY29kZVN0cmluZzo6Y2FzZUNvbXBhcmUgLSBzYW1lIGludGVybmFsIGltcGxlbWVudGF0aW9uIGZ1bmN0aW9uCisgICAgICAgICBpZigwIT0ob3B0W2tdLm9wdGlvbnMmTm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFKSkgeworICAgICAgICAvLyAgICByZXN1bHQ9c1tpXS4gKHNbal0sIG9wdFtrXS5vcHRpb25zKTsKKyAgICAgICAgICAgIGlmICgob3B0W2tdLm9wdGlvbnMgJiBOb3JtYWxpemVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSkgPT0gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb21wLnNldElnbm9yZUNhc2UodHJ1ZSwgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb21wLnNldElnbm9yZUNhc2UodHJ1ZSwgVVRGMTYuU3RyaW5nQ29tcGFyYXRvci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXN1bHQ9Y29tcC5jb21wYXJlKHNbaV0sc1tqXSk7CisgICAgICAgICAgICByZWZSZXN1bHQ9cmVmX2Nhc2VfY29tcGFyZShzW2ldLCBzW2pdLCBvcHRba10ub3B0aW9ucyk7CisgICAgICAgICAgICBpZihzaWduKHJlc3VsdCkhPXNpZ24ocmVmUmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyOjpjb21wYXJlKCAiICsgaSArIiwgIitqICsgIiwgIitrKyIoICIgK29wdFtrXS5uYW1lKyIpKT0iICsgcmVzdWx0ICsiIHNob3VsZCBiZSBzYW1lIHNpZ24gYXMgIiArIHJlZlJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0cmluZyB2YWx1ZTEgPSAiXHUwMGRhdGVyXHUwMGZkIjsKKyAgICAgICAgU3RyaW5nIHZhbHVlMiA9ICJcdTAwZmF0ZXJcdTAwZmQiOworICAgICAgICBpZihOb3JtYWxpemVyLmNvbXBhcmUodmFsdWUxLHZhbHVlMiwwKSE9MCl7CisgICAgICAgICAgICBpZihOb3JtYWxpemVyLmNvbXBhcmUodmFsdWUxLHZhbHVlMixOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpPT0wKXsKKworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBhcmUoKSB7CisKKyAgICAgICAgU3RyaW5nW10gcyA9IG5ldyBTdHJpbmdbMTAwXTsgLy8gYXQgbGVhc3QgYXMgbWFueSBpdGVtcyBhcyBpbiBzdHJpbmdzW10gIQorCisgICAgICAgIGludCBpLCBqLCBrLCBjb3VudD1zdHJpbmdzLmxlbmd0aDsKKyAgICAgICAgaW50IHJlc3VsdCwgcmVmUmVzdWx0OworCisgICAgICAgIC8vIGNyZWF0ZSB0aGUgVW5pY29kZVN0cmluZ3MKKyAgICAgICAgZm9yKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICBzW2ldPVV0aWxpdHkudW5lc2NhcGUoc3RyaW5nc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgVVRGMTYuU3RyaW5nQ29tcGFyYXRvciBjb21wID0gbmV3IFVURjE2LlN0cmluZ0NvbXBhcmF0b3IoKTsKKyAgICAgICAgLy8gdGVzdCB0aGVtIGVhY2ggd2l0aCBlYWNoIG90aGVyCisgICAgICAgIGZvcihpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgZm9yKGo9aTsgajxjb3VudDsgKytqKSB7CisgICAgICAgICAgICAgICAgZm9yKGs9MDsgazxvcHQubGVuZ3RoOyArK2spIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGVzdCBOb3JtYWxpemVyOjpjb21wYXJlCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1ub3JtX2NvbXBhcmUoc1tpXSwgc1tqXSwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICByZWZSZXN1bHQ9cmVmX25vcm1fY29tcGFyZShzW2ldLCBzW2pdLCBvcHRba10ub3B0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgIGlmKHNpZ24ocmVzdWx0KSE9c2lnbihyZWZSZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplcjo6Y29tcGFyZSggIiArIGkgKyIsICIraiArICIsICIgK2srIiggIiArb3B0W2tdLm5hbWUrIikpPSIgKyByZXN1bHQgKyIgc2hvdWxkIGJlIHNhbWUgc2lnbiBhcyAiICsgcmVmUmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgVW5pY29kZVN0cmluZzo6Y2FzZUNvbXBhcmUgLSBzYW1lIGludGVybmFsIGltcGxlbWVudGF0aW9uIGZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICBpZigwIT0ob3B0W2tdLm9wdGlvbnMmTm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgcmVzdWx0PXNbaV0uIChzW2pdLCBvcHRba10ub3B0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKG9wdFtrXS5vcHRpb25zICYgTm9ybWFsaXplci5GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpID09IDApCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5zZXRJZ25vcmVDYXNlKHRydWUsIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0RFRkFVTFQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5zZXRJZ25vcmVDYXNlKHRydWUsIFVURjE2LlN0cmluZ0NvbXBhcmF0b3IuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5zZXRDb2RlUG9pbnRDb21wYXJlKChvcHRba10ub3B0aW9ucyAmIE5vcm1hbGl6ZXIuQ09NUEFSRV9DT0RFX1BPSU5UX09SREVSKSAhPSAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlc3VsdD1jb21wLmNhc2VDb21wYXJlKHNbaV0sc1tqXSwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PWNvbXAuY29tcGFyZShzW2ldLHNbal0pOworICAgICAgICAgICAgICAgICAgICAgICAgcmVmUmVzdWx0PXJlZl9jYXNlX2NvbXBhcmUoc1tpXSwgc1tqXSwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2lnbihyZXN1bHQpIT1zaWduKHJlZlJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplcjo6Y29tcGFyZSggIiArIGkgKyIsICIraiArICIsICIraysiKCAiICtvcHRba10ubmFtZSsiKSk9IiArIHJlc3VsdCArIiBzaG91bGQgYmUgc2FtZSBzaWduIGFzICIgKyByZWZSZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHRlc3QgY2FzZXMgd2l0aCBpIGFuZCBJIHRvIG1ha2Ugc3VyZSBUdXJraWMgd29ya3MKKyAgICAgICAgY2hhcltdIGlJPSBuZXcgY2hhcltdeyAweDQ5LCAweDY5LCAweDEzMCwgMHgxMzEgfTsKKyAgICAgICAgVVNlcmlhbGl6ZWRTZXQgc3NldD1uZXcgVVNlcmlhbGl6ZWRTZXQoKTsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgIAorICAgICAgICBTdHJpbmcgczEsIHMyOworICAgICAgICBpbnQgc3RhcnQsIGVuZDsKKyAgICAKKyAgICAgICAgLy8gY29sbGVjdCBhbGwgc2V0cyBpbnRvIG9uZSBmb3IgY29udGlndW91cyBvdXRwdXQKKyAgICAgICAgaW50W10gc3RhcnRFbmQgPSBuZXcgaW50WzJdOworICAgICAgICBmb3IoaT0wOyBpPGlJLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZihOb3JtYWxpemVySW1wbC5nZXRDYW5vblN0YXJ0U2V0KGlJW2ldLCBzc2V0KSkgeworICAgICAgICAgICAgICAgIGNvdW50PXNzZXQuY291bnRSYW5nZXMoKTsKKyAgICAgICAgICAgICAgICBmb3Ioaj0wOyBqPGNvdW50OyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgc3NldC5nZXRSYW5nZShqLCBzdGFydEVuZCk7CisgICAgICAgICAgICAgICAgICAgIHNldC5hZGQoc3RhcnRFbmRbMF0sIHN0YXJ0RW5kWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyB0ZXN0IGFsbCBvZiB0aGVzZSBwcmVjb21wb3NlZCBjaGFyYWN0ZXJzCisgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Ioc2V0KTsKKyAgICAgICAgd2hpbGUoaXQubmV4dFJhbmdlKCkgJiYgaXQuY29kZXBvaW50IT1Vbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKSB7CisgICAgICAgICAgICBzdGFydD1pdC5jb2RlcG9pbnQ7CisgICAgICAgICAgICBlbmQ9aXQuY29kZXBvaW50RW5kOworICAgICAgICAgICAgd2hpbGUoc3RhcnQ8PWVuZCkgeworICAgICAgICAgICAgICAgIHMxID0gSW50ZWdlci50b1N0cmluZyhzdGFydCk7CisgICAgICAgICAgICAgICAgczIgPSBOb3JtYWxpemVyLmRlY29tcG9zZShzMSwgZmFsc2UsIDApOworLy8gICAgICAgICAgICAgICAgaWYoVV9GQUlMVVJFKGVycm9yQ29kZSkpIHsKKy8vICAgICAgICAgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplcjo6ZGVjb21wb3NlKFUrJTA0eCkgZmFpbGVkOiAlcyIsIHN0YXJ0LCB1X2Vycm9yTmFtZShlcnJvckNvZGUpKTsKKy8vICAgICAgICAgICAgICAgICAgICByZXR1cm47CisvLyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yKGs9MDsgazxvcHQubGVuZ3RoOyArK2spIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGVzdCBOb3JtYWxpemVyOjpjb21wYXJlCisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0PSBub3JtX2NvbXBhcmUoczEsIHMyLCBvcHRba10ub3B0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgIHJlZlJlc3VsdD1yZWZfbm9ybV9jb21wYXJlKHMxLCBzMiwgb3B0W2tdLm9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICBpZihzaWduKHJlc3VsdCkhPXNpZ24ocmVmUmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIuY29tcGFyZShVKyIraGV4KHN0YXJ0KSsiIHdpdGggaXRzIE5GRCwgIitvcHRba10ubmFtZSsiKSIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNpZ25TdHJpbmcocmVzdWx0KSsiIHNob3VsZCBiZSAiK3NpZ25TdHJpbmcocmVmUmVzdWx0KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gdGVzdCBVbmljb2RlU3RyaW5nOjpjYXNlQ29tcGFyZSAtIHNhbWUgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZnVuY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgaWYoKG9wdFtrXS5vcHRpb25zICYgTm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFKT4wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChvcHRba10ub3B0aW9ucyAmIE5vcm1hbGl6ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSA9PSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuc2V0SWdub3JlQ2FzZSh0cnVlLCBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9ERUZBVUxUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuc2V0SWdub3JlQ2FzZSh0cnVlLCBVVEYxNi5TdHJpbmdDb21wYXJhdG9yLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuc2V0Q29kZVBvaW50Q29tcGFyZSgob3B0W2tdLm9wdGlvbnMgJiBOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUikgIT0gMCk7CisgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1jb21wLmNvbXBhcmUoczEsczIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVmUmVzdWx0PXJlZl9jYXNlX2NvbXBhcmUoczEsIHMyLCBvcHRba10ub3B0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihzaWduKHJlc3VsdCkhPXNpZ24ocmVmUmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJVVEYxNi5jb21wYXJlKFUrIitoZXgoc3RhcnQpKyIgd2l0aCBpdHMgTkZELCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK29wdFtrXS5uYW1lKyIpIitzaWduU3RyaW5nKHJlc3VsdCkgKyIgc2hvdWxkIGJlICIrc2lnblN0cmluZyhyZWZSZXN1bHQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICB9CisKKyAgICAvLyB2ZXJpZnkgdGhhdCBjYXNlLWZvbGRpbmcgZG9lcyBub3QgdW4tRkNEIHN0cmluZ3MKKyAgICBpbnQgY291bnRGb2xkRkNERXhjZXB0aW9ucyhpbnQgZm9sZGluZ09wdGlvbnMpIHsKKyAgICAgICAgU3RyaW5nIHMsIGQ7CisgICAgICAgIGludCBjOworICAgICAgICBpbnQgY291bnQ7CisgICAgICAgIGludC8qdW5zaWduZWQqLyBjYywgdHJhaWxDQywgZm9sZENDLCBmb2xkVHJhaWxDQzsKKyAgICAgICAgTm9ybWFsaXplci5RdWlja0NoZWNrUmVzdWx0IHFjUmVzdWx0OworICAgICAgICBpbnQgY2F0ZWdvcnk7CisgICAgICAgIGJvb2xlYW4gaXNORkQ7CisKKworICAgICAgICBsb2dsbigiVGVzdCBpZiBjYXNlIGZvbGRpbmcgbWF5IHVuLUZDRCBhIHN0cmluZyAoZm9sZGluZyBvcHRpb25zIDB4KSIraGV4KGZvbGRpbmdPcHRpb25zKSk7CisKKyAgICAgICAgY291bnQ9MDsKKyAgICAgICAgZm9yKGM9MDsgYzw9MHgxMGZmZmY7ICsrYykgeworICAgICAgICAgICAgY2F0ZWdvcnk9VUNoYXJhY3Rlci5nZXRUeXBlKGMpOworICAgICAgICAgICAgaWYoY2F0ZWdvcnk9PVVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVEKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7IC8vIHNraXAgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoYz09MHhhYzAwKSB7CisgICAgICAgICAgICAgICAgYz0weGQ3YTM7IC8vIHNraXAgSGFuZ3VsIC0gbm8gY2FzZSBmb2xkaW5nIHRoZXJlCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBza2lwIEhhbiBibG9ja3MgLSBubyBjYXNlIGZvbGRpbmcgdGhlcmUgZWl0aGVyCisgICAgICAgICAgICBpZihjPT0weDM0MDApIHsKKyAgICAgICAgICAgICAgICBjPTB4NGRiNTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGM9PTB4NGUwMCkgeworICAgICAgICAgICAgICAgIGM9MHg5ZmE1OworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoYz09MHgyMDAwMCkgeworICAgICAgICAgICAgICAgIGM9MHgyYTZkNjsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcz0gVVRGMTYudmFsdWVPZihjKTsKKworICAgICAgICAgICAgLy8gZ2V0IGxlYWRpbmcgYW5kIHRyYWlsaW5nIGNjIGZvciBjCisgICAgICAgICAgICBkPSBOb3JtYWxpemVyLmRlY29tcG9zZShzLGZhbHNlKTsKKyAgICAgICAgICAgIGlzTkZEPSBzPT1kOworICAgICAgICAgICAgY2M9VUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhVVEYxNi5jaGFyQXQoZCwwKSk7CisgICAgICAgICAgICB0cmFpbENDPVVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoVVRGMTYuY2hhckF0KGQsZC5sZW5ndGgoKS0xKSk7CisKKyAgICAgICAgICAgIC8vIGdldCBsZWFkaW5nIGFuZCB0cmFpbGluZyBjYyBmb3IgdGhlIGNhc2UtZm9sZGluZyBvZiBjCisgICAgICAgICAgICBVQ2hhcmFjdGVyLmZvbGRDYXNlKHMsKGZvbGRpbmdPcHRpb25zPT0wKSk7CisgICAgICAgICAgICBkID0gTm9ybWFsaXplci5kZWNvbXBvc2UocywgZmFsc2UpOworICAgICAgICAgICAgZm9sZENDPVVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoVVRGMTYuY2hhckF0KGQsMCkpOworICAgICAgICAgICAgZm9sZFRyYWlsQ0M9VUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhVVEYxNi5jaGFyQXQoZCxkLmxlbmd0aCgpLTEpKTsKKworICAgICAgICAgICAgcWNSZXN1bHQ9Tm9ybWFsaXplci5xdWlja0NoZWNrKHMsIE5vcm1hbGl6ZXIuRkNELDApOworCisKKyAgICAgICAgICAgIC8vIGJhZDoKKyAgICAgICAgICAgIC8vIC0gY2hhcmFjdGVyIG1hcHMgdG8gZW1wdHkgc3RyaW5nOiBhZGphY2VudCBjaGFyYWN0ZXJzIG1heSB0aGVuIG5lZWQgcmVvcmRlcmluZworICAgICAgICAgICAgLy8gLSBmb2xkaW5nIGhhcyBkaWZmZXJlbnQgbGVhZGluZy90cmFpbGluZyBjYydzLCBhbmQgdGhleSBkb24ndCBiZWNvbWUganVzdCAwCisgICAgICAgICAgICAvLyAtIGZvbGRpbmcgaXRzZWxmIGlzIG5vdCBGQ0QKKyAgICAgICAgICAgIGlmKCBxY1Jlc3VsdCE9Tm9ybWFsaXplci5ZRVMgfHwKKyAgICAgICAgICAgICAgICBzLmxlbmd0aCgpPT0wIHx8CisgICAgICAgICAgICAgICAgKGNjIT1mb2xkQ0MgJiYgZm9sZENDIT0wKSB8fCAodHJhaWxDQyE9Zm9sZFRyYWlsQ0MgJiYgZm9sZFRyYWlsQ0MhPTApCisgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICArK2NvdW50OworICAgICAgICAgICAgICAgIGVycmxuKCJVKyIraGV4KGMpKyI6IGNhc2UtZm9sZGluZyBtYXkgdW4tRkNEIGEgc3RyaW5nIChmb2xkaW5nIG9wdGlvbnMgMHgiK2hleChmb2xkaW5nT3B0aW9ucykrIikiKTsKKyAgICAgICAgICAgICAgICAvL2VycmxuKCIgIGNjICUwMnggdHJhaWxDQyAlMDJ4ICAgIGZvbGRDQyhVKyUwNGx4KSAlMDJ4IGZvbGRUcmFpbENDKFUrJTA0bHgpICUwMnggICBxdWlja0NoZWNrKGZvbGRlZCk9JWQiLCBjYywgdHJhaWxDQywgVVRGMTYuY2hhckF0KGQsMCksIGZvbGRDQywgVVRGMTYuY2hhckF0KGQsZC5sZW5ndGgoKS0xKSwgZm9sZFRyYWlsQ0MsIHFjUmVzdWx0KTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gYWxzbyBiYWQ6CisgICAgICAgICAgICAvLyBpZiBhIGNvZGUgcG9pbnQgaXMgaW4gTkZEIGJ1dCBpdHMgY2FzZSBmb2xkaW5nIGlzIG5vdCwgdGhlbgorICAgICAgICAgICAgLy8gdW5vcm1fY29tcGFyZSB3aWxsIGFsc28gZmFpbAorICAgICAgICAgICAgaWYoaXNORkQgJiYgTm9ybWFsaXplci5ZRVMhPU5vcm1hbGl6ZXIucXVpY2tDaGVjayhzLCBOb3JtYWxpemVyLk5GRCwwKSkgeworICAgICAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICAgICAgZXJybG4oIlUrIitoZXgoYykrIjogY2FzZS1mb2xkaW5nIG1heSB1bi1GQ0QgYSBzdHJpbmcgKGZvbGRpbmcgb3B0aW9ucyAweCIraGV4KGZvbGRpbmdPcHRpb25zKSsiKSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oIlRoZXJlIGFyZSAiK2hleChjb3VudCkrIiBjb2RlIHBvaW50cyBmb3Igd2hpY2ggY2FzZS1mb2xkaW5nIG1heSB1bi1GQ0QgYSBzdHJpbmcgKGZvbGRpbmcgb3B0aW9ucyIrZm9sZGluZ09wdGlvbnMrIngpIiApOworICAgICAgICByZXR1cm4gY291bnQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEZpbmRGb2xkRkNERXhjZXB0aW9ucygpIHsKKyAgICAgICAgaW50IGNvdW50OworCisgICAgICAgIGNvdW50PWNvdW50Rm9sZEZDREV4Y2VwdGlvbnMoMCk7CisgICAgICAgIGNvdW50Kz1jb3VudEZvbGRGQ0RFeGNlcHRpb25zKE5vcm1hbGl6ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKTsKKyAgICAgICAgaWYoY291bnQ+MCkgeworICAgICAgICAgICAgLy8qCisgICAgICAgICAgICAvLyogSWYgY2FzZS1mb2xkaW5nIHVuLUZDRHMgYW55IHN0cmluZ3MsIHRoZW4gdW5vcm1fY29tcGFyZSgpIG11c3QgYmUKKyAgICAgICAgICAgIC8vKiByZS1pbXBsZW1lbnRlZC4KKyAgICAgICAgICAgIC8vKiBJdCBjdXJyZW50bHkgYXNzdW1lcyB0aGF0IG9uZSBjYW4gY2hlY2sgZm9yIEZDRCB0aGVuIGNhc2UtZm9sZAorICAgICAgICAgICAgLy8qIGFuZCB0aGVuIHN0aWxsIGhhdmUgRkNEIHN0cmluZ3MgZm9yIHJhdyBkZWNvbXBvc2l0aW9uIHdpdGhvdXQgcmVvcmRlcmluZy4KKyAgICAgICAgICAgIC8vKgorICAgICAgICAgICAgZXJybG4oImVycm9yOiBUaGVyZSBhcmUgIitjb3VudCsiIGNvZGUgcG9pbnRzIGZvciB3aGljaCBjYXNlLWZvbGRpbmciKworICAgICAgICAgICAgICAgICAgIiBtYXkgdW4tRkNEIGEgc3RyaW5nIGZvciBhbGwgZm9sZGluZyBvcHRpb25zLlxuIFNlZSBjb21tZW50IisKKyAgICAgICAgICAgICAgICAgICIgaW4gQmFzaWNOb3JtYWxpemVyVGVzdDo6RmluZEZvbGRGQ0RFeGNlcHRpb25zKCkhIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbWJpbmluZ01hcmtzKCl7CisgICAgICAgIFN0cmluZyBzcmMgPSAiXHUwZjcxXHUwZjcyXHUwZjczXHUwZjc0XHUwZjc1IjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gIlx1MEY3MVx1MEY3MVx1MEY3MVx1MEY3Mlx1MEY3Mlx1MEY3NFx1MEY3NCI7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBOb3JtYWxpemVyLmRlY29tcG9zZShzcmMsZmFsc2UpOworICAgICAgICBpZighZXhwZWN0ZWQuZXF1YWxzKHJlc3VsdCkpeworICAgICAgICAgICAgZXJybG4oIlJlb3JkZXJpbmcgb2YgY29tYmluaW5nIG1hcmtzIGZhaWxlZC4gRXhwZWN0ZWQ6ICIrVXRpbGl0eS5oZXgoZXhwZWN0ZWQpKyIgR290OiAiKyBVdGlsaXR5LmhleChyZXN1bHQpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogUmUtZW5hYmxlIHRoaXMgdGVzdCB3aGVuIFVUQyBmaXhlcyBVQVggMjEKKyAgICBwdWJsaWMgdm9pZCBUZXN0VUFYMjFGYWlsdXJlKCl7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gY2FzZXMgPSBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgICAgICAgICB7Ilx1MDA2MVx1MDM0NVx1MDM2MFx1MDM0NVx1MDA2MiIsICJcdTAwNjFcdTAzNjBcdTAzNDVcdTAzNDVcdTAwNjIifSwKKyAgICAgICAgICAgICAgICB7Ilx1MDA2MVx1MDM0NVx1MDM0NVx1MDM2MFx1MDA2MiIsICJcdTAwNjFcdTAzNjBcdTAzNDVcdTAzNDVcdTAwNjIifSwKKyAgICAgICAgICAgICAgICB7Ilx1MDA2MVx1MDM0NVx1MDM2MFx1MDM2Mlx1MDM2MFx1MDA2MiIsICJcdTAwNjFcdTAzNjJcdTAzNjBcdTAzNjBcdTAzNDVcdTAwNjIifSwKKyAgICAgICAgICAgICAgICB7Ilx1MDA2MVx1MDM2MFx1MDM0NVx1MDM2MFx1MDM2Mlx1MDA2MiIsICJcdTAwNjFcdTAzNjJcdTAzNjBcdTAzNjBcdTAzNDVcdTAwNjIifSwKKyAgICAgICAgICAgICAgICB7Ilx1MDA2MVx1MDM0NVx1MDM2MFx1MDM2Mlx1MDM2MVx1MDA2MiIsICJcdTAwNjFcdTAzNjJcdTAzNjBcdTAzNjFcdTAzNDVcdTAwNjIifSwKKyAgICAgICAgICAgICAgICB7Ilx1MDA2MVx1MDM2MVx1MDM0NVx1MDM2MFx1MDM2Mlx1MDA2MiIsICJcdTAwNjFcdTAzNjJcdTAzNjFcdTAzNjBcdTAzNDVcdTAwNjIifSwKKyAgICAgICAgfTsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaTwgY2FzZXMubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgU3RyaW5nIHMxID1jYXNlc1swXVswXTsgCisgICAgICAgICAgICBTdHJpbmcgczIgPSBjYXNlc1swXVsxXTsKKyAgICAgICAgICAgIGlmKCAoTm9ybWFsaXplci5jb21wYXJlKHMxLHMyLE5vcm1hbGl6ZXIuRk9MRF9DQVNFX0RFRkFVTFQgPT0wKS8vY2FzZSBzZW5zaXRpdmUgY29tcGFyZQorICAgICAgICAgICAgICAgICYmCisgICAgICAgICAgICAgICAgKE5vcm1hbGl6ZXIuY29tcGFyZShzMSxzMixOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpIT0wKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIuY29tcGFyZSgpIGZhaWxlZCBmb3IgczE6ICIgCisgICAgICAgICAgICAgICAgICAgICAgICArIFV0aWxpdHkuaGV4KHMxKSArIiBzMjogIiArIFV0aWxpdHkuaGV4KHMyKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RkNORktDQ2xvc3VyZSgpIHsKKyAgICAgICAgZmluYWwgY2xhc3MgVGVzdFN0cnVjdHsKKyAgICAgICAgICAgIGludCBjOworICAgICAgICAgICAgU3RyaW5nIHM7CisgICAgICAgICAgICBUZXN0U3RydWN0KGludCBjcCwgU3RyaW5nIHNyYyl7CisgICAgICAgICAgICAgICAgYz1jcDsKKyAgICAgICAgICAgICAgICBzPXNyYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVGVzdFN0cnVjdFtdIHRlc3RzPSBuZXcgVGVzdFN0cnVjdFtdeworICAgICAgICAgICAgbmV3IFRlc3RTdHJ1Y3QoIDB4MDM3QSwgIlx1MDAyMFx1MDNCOSIgKSwKKyAgICAgICAgICAgIG5ldyBUZXN0U3RydWN0KCAweDAzRDIsICJcdTAzQzUiICksCisgICAgICAgICAgICBuZXcgVGVzdFN0cnVjdCggMHgyMEE4LCAiXHUwMDcyXHUwMDczIiApICwKKyAgICAgICAgICAgIG5ldyBUZXN0U3RydWN0KCAweDIxMEIsICJcdTAwNjgiICksCisgICAgICAgICAgICBuZXcgVGVzdFN0cnVjdCggMHgyMTBDLCAiXHUwMDY4IiApLAorICAgICAgICAgICAgbmV3IFRlc3RTdHJ1Y3QoIDB4MjEyMSwgIlx1MDA3NFx1MDA2NVx1MDA2QyIgKSwKKyAgICAgICAgICAgIG5ldyBUZXN0U3RydWN0KCAweDIxMjIsICJcdTAwNzRcdTAwNkQiICksCisgICAgICAgICAgICBuZXcgVGVzdFN0cnVjdCggMHgyMTI4LCAiXHUwMDdBIiApLAorICAgICAgICAgICAgbmV3IFRlc3RTdHJ1Y3QoIDB4MUQ1REIsIlx1MDA2OCIgKSwKKyAgICAgICAgICAgIG5ldyBUZXN0U3RydWN0KCAweDFENUVELCJcdTAwN0EiICksCisgICAgICAgICAgICBuZXcgVGVzdFN0cnVjdCggMHgwMDYxLCAiIiApCisgICAgICAgIH07CisgICAgCisKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgKysgaSkgeworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdD1Ob3JtYWxpemVyLmdldEZDX05GS0NfQ2xvc3VyZSh0ZXN0c1tpXS5jKTsKKyAgICAgICAgICAgIGlmKCFyZXN1bHQuZXF1YWxzKG5ldyBTdHJpbmcodGVzdHNbaV0ucykpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImdldEZDX05GS0NfQ2xvc3VyZShVKyIrSW50ZWdlci50b0hleFN0cmluZyh0ZXN0c1tpXS5jKSsiKSBpcyB3cm9uZyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIC8qIGVycm9yIGhhbmRsaW5nICovCisKKyAgICAgICAgaW50IGxlbmd0aD1Ob3JtYWxpemVyLmdldEZDX05GS0NfQ2xvc3VyZSgweDVjLCBudWxsKTsKKyAgICAgICAgaWYobGVuZ3RoIT0wKXsKKyAgICAgICAgICAgIGVycmxuKCJnZXRGQ19ORktDX0Nsb3N1cmUgZGlkIG5vdCBwZXJmb3JtIGVycm9yIGhhbmRsaW5nIGNvcnJlY3RseSIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RCdWdKMjMyNCgpeworICAgICAgIC8qIFN0cmluZ1tdIGlucHV0ID0gbmV3IFN0cmluZ1tdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIlx1MzBGRFx1MzA5OSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MzBGQVx1MzA5QSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MzBGQlx1MzA5QSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MzBGQ1x1MzA5QSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MzBGRVx1MzA5QSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MzBGRFx1MzA5QSIsCisKKyAgICAgICAgfTsqLworICAgICAgICBTdHJpbmcgdHJvdWJsZXNvbWUgPSAiXHUzMDlBIjsKKyAgICAgICAgZm9yKGludCBpPTB4MzAwMDsgaTwweDMxMDA7aSsrKXsKKyAgICAgICAgICAgIFN0cmluZyBpbnB1dCA9ICgoY2hhcilpKSt0cm91Ymxlc29tZTsKKyAgICAgICAgICAgIHRyeXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIC8qICBTdHJpbmcgcmVzdWx0ID0qLyBOb3JtYWxpemVyLmNvbXBvc2UoaW5wdXQsZmFsc2UpOworICAgICAgICAgICAgfWNhdGNoKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbXBvc2UoKSBmYWlsZWQgZm9yIGlucHV0OiAiICsgVXRpbGl0eS5oZXgoaW5wdXQpICsgIiBFeGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgfQorCisgICAgIHN0YXRpYyBmaW5hbCBpbnQgRCA9IDAsIEMgPSAxLCBLRD0gMiwgS0MgPSAzLCBGQ0Q9NCwgTk9ORT01OyAgIAorICAgIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXRbXSBpbml0U2tpcHBhYmxlcyhVbmljb2RlU2V0W10gc2tpcFNldHMpeworICAgICAgICBpZiggc2tpcFNldHMubGVuZ3RoIDwgNCApeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgc2tpcFNldHNbRF0uYXBwbHlQYXR0ZXJuKAorICAgICAgICAgICAgIlteXFx1MDBDMC1cXHUwMEM1XFx1MDBDNy1cXHUwMENGXFx1MDBEMS1cXHUwMEQ2XFx1MDBEOS1cXHUwMEREIgorICAgICAgICAgICsgIlxcdTAwRTAtXFx1MDBFNVxcdTAwRTctXFx1MDBFRlxcdTAwRjEtXFx1MDBGNlxcdTAwRjktXFx1MDBGRCIKKyAgICAgICAgICArICJcXHUwMEZGLVxcdTAxMEZcXHUwMTEyLVxcdTAxMjVcXHUwMTI4LVxcdTAxMzBcXHUwMTM0LVxcdTAxMzciCisgICAgICAgICAgKyAiXFx1MDEzOS1cXHUwMTNFXFx1MDE0My1cXHUwMTQ4XFx1MDE0Qy1cXHUwMTUxXFx1MDE1NC1cXHUwMTY1IgorICAgICAgICAgICsgIlxcdTAxNjgtXFx1MDE3RVxcdTAxQTBcXHUwMUExXFx1MDFBRlxcdTAxQjBcXHUwMUNELVxcdTAxREMiCisgICAgICAgICAgKyAiXFx1MDFERS1cXHUwMUUzXFx1MDFFNi1cXHUwMUYwXFx1MDFGNFxcdTAxRjVcXHUwMUY4LVxcdTAyMUIiCisgICAgICAgICAgKyAiXFx1MDIxRVxcdTAyMUZcXHUwMjI2LVxcdTAyMzNcXHUwMzAwLVxcdTAzNEVcXHUwMzUwLVxcdTAzNkYiCisgICAgICAgICAgKyAiXFx1MDM3NFxcdTAzN0VcXHUwMzg1LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwMzkwXFx1MDNBQS0iCisgICAgICAgICAgKyAiXFx1MDNCMFxcdTAzQ0EtXFx1MDNDRVxcdTAzRDNcXHUwM0Q0XFx1MDQwMFxcdTA0MDFcXHUwNDAzXFx1MDQwNyIKKyAgICAgICAgICArICJcXHUwNDBDLVxcdTA0MEVcXHUwNDE5XFx1MDQzOVxcdTA0NTBcXHUwNDUxXFx1MDQ1M1xcdTA0NTdcXHUwNDVDIgorICAgICAgICAgICsgIi1cXHUwNDVFXFx1MDQ3NlxcdTA0NzdcXHUwNDgzLVxcdTA0ODZcXHUwNEMxXFx1MDRDMlxcdTA0RDAtIgorICAgICAgICAgICsgIlxcdTA0RDNcXHUwNEQ2XFx1MDREN1xcdTA0REEtXFx1MDRERlxcdTA0RTItXFx1MDRFN1xcdTA0RUEtIgorICAgICAgICAgICsgIlxcdTA0RjVcXHUwNEY4XFx1MDRGOVxcdTA1OTEtXFx1MDVCOVxcdTA1QkItXFx1MDVCRFxcdTA1QkZcXHUwNUMxXFx1MDVDMlxcdTA1QzQiCisgICAgICAgICAgKyAiXFx1MDVDNVxcdTA1QzdcXHUwNjEwLVxcdTA2MTVcXHUwNjIyLVxcdTA2MjZcXHUwNjRCLVxcdTA2NUVcXHUwNjcwIgorICAgICAgICAgICsgIlxcdTA2QzBcXHUwNkMyXFx1MDZEM1xcdTA2RDYtXFx1MDZEQ1xcdTA2REYtXFx1MDZFNFxcdTA2RTciCisgICAgICAgICAgKyAiXFx1MDZFOFxcdTA2RUEtXFx1MDZFRFxcdTA3MTFcXHUwNzMwLVxcdTA3NEFcXHUwOTI5XFx1MDkzMSIKKyAgICAgICAgICArICJcXHUwOTM0XFx1MDkzQ1xcdTA5NERcXHUwOTUxLVxcdTA5NTRcXHUwOTU4LVxcdTA5NUZcXHUwOUJDIgorICAgICAgICAgICsgIlxcdTA5Q0ItXFx1MDlDRFxcdTA5RENcXHUwOUREXFx1MDlERlxcdTBBMzNcXHUwQTM2XFx1MEEzQ1xcdTBBNEQiCisgICAgICAgICAgKyAiXFx1MEE1OS1cXHUwQTVCXFx1MEE1RVxcdTBBQkNcXHUwQUNEXFx1MEIzQ1xcdTBCNDhcXHUwQjRCLSIKKyAgICAgICAgICArICJcXHUwQjREXFx1MEI1Q1xcdTBCNURcXHUwQjk0XFx1MEJDQS1cXHUwQkNEXFx1MEM0OFxcdTBDNERcXHUwQzU1IgorICAgICAgICAgICsgIlxcdTBDNTZcXHUwQ0JDXFx1MENDMFxcdTBDQzdcXHUwQ0M4XFx1MENDQVxcdTBDQ0JcXHUwQ0NEXFx1MEQ0QS0iCisgICAgICAgICAgKyAiXFx1MEQ0RFxcdTBEQ0FcXHUwRERBXFx1MEREQy1cXHUwRERFXFx1MEUzOC1cXHUwRTNBXFx1MEU0OC0iCisgICAgICAgICAgKyAiXFx1MEU0QlxcdTBFQjhcXHUwRUI5XFx1MEVDOC1cXHUwRUNCXFx1MEYxOFxcdTBGMTlcXHUwRjM1XFx1MEYzNyIKKyAgICAgICAgICArICJcXHUwRjM5XFx1MEY0M1xcdTBGNERcXHUwRjUyXFx1MEY1N1xcdTBGNUNcXHUwRjY5XFx1MEY3MS1cXHUwRjc2IgorICAgICAgICAgICsgIlxcdTBGNzhcXHUwRjdBLVxcdTBGN0RcXHUwRjgwLVxcdTBGODRcXHUwRjg2XFx1MEY4N1xcdTBGOTMiCisgICAgICAgICAgKyAiXFx1MEY5RFxcdTBGQTJcXHUwRkE3XFx1MEZBQ1xcdTBGQjlcXHUwRkM2XFx1MTAyNlxcdTEwMzdcXHUxMDM5IgorICAgICAgICAgICsgIlxcdTEzNUZcXHUxNzE0XFx1MTczNFxcdTE3RDJcXHUxN0REXFx1MThBOVxcdTE5MzktXFx1MTkzQlxcdTFBMTciCisgICAgICAgICAgKyAiXFx1MUExOFxcdTFEQzAtXFx1MURDM1xcdTFFMDAtXFx1MUU5OVxcdTFFOUJcXHUxRUEwLVxcdTFFRjkiCisgICAgICAgICAgKyAiXFx1MUYwMC1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREIgorICAgICAgICAgICsgIlxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtIgorICAgICAgICAgICsgIlxcdTFGQjRcXHUxRkI2LVxcdTFGQkNcXHUxRkJFXFx1MUZDMS1cXHUxRkM0XFx1MUZDNi1cXHUxRkQzIgorICAgICAgICAgICsgIlxcdTFGRDYtXFx1MUZEQlxcdTFGREQtXFx1MUZFRlxcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGRCIKKyAgICAgICAgICArICJcXHUyMDAwXFx1MjAwMVxcdTIwRDAtXFx1MjBEQ1xcdTIwRTFcXHUyMEU1LVxcdTIwRUJcXHUyMTI2IgorICAgICAgICAgICsgIlxcdTIxMkFcXHUyMTJCXFx1MjE5QVxcdTIxOUJcXHUyMUFFXFx1MjFDRC1cXHUyMUNGXFx1MjIwNFxcdTIyMDkiCisgICAgICAgICAgKyAiXFx1MjIwQ1xcdTIyMjRcXHUyMjI2XFx1MjI0MVxcdTIyNDRcXHUyMjQ3XFx1MjI0OVxcdTIyNjBcXHUyMjYyIgorICAgICAgICAgICsgIlxcdTIyNkQtXFx1MjI3MVxcdTIyNzRcXHUyMjc1XFx1MjI3OFxcdTIyNzlcXHUyMjgwXFx1MjI4MVxcdTIyODQiCisgICAgICAgICAgKyAiXFx1MjI4NVxcdTIyODhcXHUyMjg5XFx1MjJBQy1cXHUyMkFGXFx1MjJFMC1cXHUyMkUzXFx1MjJFQS0iCisgICAgICAgICAgKyAiXFx1MjJFRFxcdTIzMjlcXHUyMzJBXFx1MkFEQ1xcdTMwMkEtXFx1MzAyRlxcdTMwNENcXHUzMDRFXFx1MzA1MCIKKyAgICAgICAgICArICJcXHUzMDUyXFx1MzA1NFxcdTMwNTZcXHUzMDU4XFx1MzA1QVxcdTMwNUNcXHUzMDVFXFx1MzA2MFxcdTMwNjIiCisgICAgICAgICAgKyAiXFx1MzA2NVxcdTMwNjdcXHUzMDY5XFx1MzA3MFxcdTMwNzFcXHUzMDczXFx1MzA3NFxcdTMwNzZcXHUzMDc3IgorICAgICAgICAgICsgIlxcdTMwNzlcXHUzMDdBXFx1MzA3Q1xcdTMwN0RcXHUzMDk0XFx1MzA5OVxcdTMwOUFcXHUzMDlFXFx1MzBBQyIKKyAgICAgICAgICArICJcXHUzMEFFXFx1MzBCMFxcdTMwQjJcXHUzMEI0XFx1MzBCNlxcdTMwQjhcXHUzMEJBXFx1MzBCQ1xcdTMwQkUiCisgICAgICAgICAgKyAiXFx1MzBDMFxcdTMwQzJcXHUzMEM1XFx1MzBDN1xcdTMwQzlcXHUzMEQwXFx1MzBEMVxcdTMwRDNcXHUzMEQ0IgorICAgICAgICAgICsgIlxcdTMwRDZcXHUzMEQ3XFx1MzBEOVxcdTMwREFcXHUzMERDXFx1MzBERFxcdTMwRjRcXHUzMEY3LVxcdTMwRkEiCisgICAgICAgICAgKyAiXFx1MzBGRVxcdUE4MDZcXHVBQzAwLVxcdUQ3QTNcXHVGOTAwLVxcdUZBMERcXHVGQTEwXFx1RkExMiIKKyAgICAgICAgICArICJcXHVGQTE1LVxcdUZBMUVcXHVGQTIwXFx1RkEyMlxcdUZBMjVcXHVGQTI2XFx1RkEyQS1cXHVGQTJEIgorICAgICAgICAgICsgIlxcdUZBMzAtXFx1RkE2QVxcdUZBNzAtXFx1RkFEOVxcdUZCMUQtXFx1RkIxRlxcdUZCMkEtXFx1RkIzNiIKKyAgICAgICAgICArICJcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtIgorICAgICAgICAgICsgIlxcdUZCNEVcXHVGRTIwLVxcdUZFMjNcXFUwMDAxMEEwRFxcVTAwMDEwQTBGXFxVMDAwMTBBMzgtXFxVMDAwMTAiCisgICAgICAgICAgKyAiQTNBXFxVMDAwMTBBM0ZcXFUwMDAxRDE1RS1cXFUwMDAxRDE2OVxcVTAwMDFEMTZELVxcVTAwMDFEMTcyIgorICAgICAgICAgICsgIlxcVTAwMDFEMTdCLVxcVTAwMDFEMTgyXFxVMDAwMUQxODUtXFxVMDAwMUQxOEJcXFUwMDAxRDFBQS0iCisgICAgICAgICAgKyAiXFxVMDAwMUQxQURcXFUwMDAxRDFCQi1cXFUwMDAxRDFDMFxcVTAwMDFEMjQyLVxcVTAwMDFEMjQ0XFxVMDAwMiIKKyAgICAgICAgICArICJGODAwLVxcVTAwMDJGQTFEXSIsIGZhbHNlKTsKKworICAgICAgc2tpcFNldHNbQ10uYXBwbHlQYXR0ZXJuKAorICAgICAgICAgICAgIltePC0+QS1QUi1aYS1wci16XFx1MDBBOFxcdTAwQzAtXFx1MDBDRlxcdTAwRDEtXFx1MDBENlxcdTAwRDgtIgorICAgICAgICAgICsgIlxcdTAwRERcXHUwMEUwLVxcdTAwRUZcXHUwMEYxLVxcdTAwRjZcXHUwMEY4LVxcdTAwRkRcXHUwMEZGLSIKKyAgICAgICAgICArICJcXHUwMTAzXFx1MDEwNi1cXHUwMTBGXFx1MDExMi1cXHUwMTE3XFx1MDExQS1cXHUwMTIxXFx1MDEyNCIKKyAgICAgICAgICArICJcXHUwMTI1XFx1MDEyOC1cXHUwMTJEXFx1MDEzMFxcdTAxMzlcXHUwMTNBXFx1MDEzRFxcdTAxM0VcXHUwMTQzIgorICAgICAgICAgICsgIlxcdTAxNDRcXHUwMTQ3XFx1MDE0OFxcdTAxNEMtXFx1MDE1MVxcdTAxNTRcXHUwMTU1XFx1MDE1OC0iCisgICAgICAgICAgKyAiXFx1MDE1RFxcdTAxNjBcXHUwMTYxXFx1MDE2NFxcdTAxNjVcXHUwMTY4LVxcdTAxNzFcXHUwMTc0LSIKKyAgICAgICAgICArICJcXHUwMTdGXFx1MDFBMFxcdTAxQTFcXHUwMUFGXFx1MDFCMFxcdTAxQjdcXHUwMUNELVxcdTAxRENcXHUwMURFIgorICAgICAgICAgICsgIi1cXHUwMUUxXFx1MDFFNi1cXHUwMUVCXFx1MDFGNFxcdTAxRjVcXHUwMUY4LVxcdTAxRkJcXHUwMjAwLSIKKyAgICAgICAgICArICJcXHUwMjFCXFx1MDIxRVxcdTAyMUZcXHUwMjI2LVxcdTAyMzNcXHUwMjkyXFx1MDMwMC1cXHUwMzRFIgorICAgICAgICAgICsgIlxcdTAzNTAtXFx1MDM2RlxcdTAzNzRcXHUwMzdFXFx1MDM4N1xcdTAzOTFcXHUwMzk1XFx1MDM5N1xcdTAzOTkiCisgICAgICAgICAgKyAiXFx1MDM5RlxcdTAzQTFcXHUwM0E1XFx1MDNBOVxcdTAzQUNcXHUwM0FFXFx1MDNCMVxcdTAzQjVcXHUwM0I3IgorICAgICAgICAgICsgIlxcdTAzQjlcXHUwM0JGXFx1MDNDMVxcdTAzQzVcXHUwM0M5LVxcdTAzQ0JcXHUwM0NFXFx1MDNEMlxcdTA0MDYiCisgICAgICAgICAgKyAiXFx1MDQxMFxcdTA0MTNcXHUwNDE1LVxcdTA0MThcXHUwNDFBXFx1MDQxRVxcdTA0MjNcXHUwNDI3XFx1MDQyQiIKKyAgICAgICAgICArICJcXHUwNDJEXFx1MDQzMFxcdTA0MzNcXHUwNDM1LVxcdTA0MzhcXHUwNDNBXFx1MDQzRVxcdTA0NDNcXHUwNDQ3IgorICAgICAgICAgICsgIlxcdTA0NEJcXHUwNDREXFx1MDQ1NlxcdTA0NzRcXHUwNDc1XFx1MDQ4My1cXHUwNDg2XFx1MDREOFxcdTA0RDkiCisgICAgICAgICAgKyAiXFx1MDRFOFxcdTA0RTlcXHUwNTkxLVxcdTA1QjlcXHUwNUJCLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzciCisgICAgICAgICAgKyAiXFx1MDYxMC1cXHUwNjE1XFx1MDYyMlxcdTA2MjNcXHUwNjI3XFx1MDY0OFxcdTA2NEEtXFx1MDY1RSIKKyAgICAgICAgICArICJcXHUwNjcwXFx1MDZDMVxcdTA2RDJcXHUwNkQ1LVxcdTA2RENcXHUwNkRGLVxcdTA2RTRcXHUwNkU3IgorICAgICAgICAgICsgIlxcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNzExXFx1MDczMC1cXHUwNzRBXFx1MDkyOFxcdTA5MzAiCisgICAgICAgICAgKyAiXFx1MDkzM1xcdTA5M0NcXHUwOTREXFx1MDk1MS1cXHUwOTU0XFx1MDk1OC1cXHUwOTVGXFx1MDlCQyIKKyAgICAgICAgICArICJcXHUwOUJFXFx1MDlDN1xcdTA5Q0RcXHUwOUQ3XFx1MDlEQ1xcdTA5RERcXHUwOURGXFx1MEEzM1xcdTBBMzYiCisgICAgICAgICAgKyAiXFx1MEEzQ1xcdTBBNERcXHUwQTU5LVxcdTBBNUJcXHUwQTVFXFx1MEFCQ1xcdTBBQ0RcXHUwQjNDXFx1MEIzRSIKKyAgICAgICAgICArICJcXHUwQjQ3XFx1MEI0RFxcdTBCNTZcXHUwQjU3XFx1MEI1Q1xcdTBCNURcXHUwQjkyXFx1MEJCRVxcdTBCQzYiCisgICAgICAgICAgKyAiXFx1MEJDN1xcdTBCQ0RcXHUwQkQ3XFx1MEM0NlxcdTBDNERcXHUwQzU1XFx1MEM1NlxcdTBDQkNcXHUwQ0JGIgorICAgICAgICAgICsgIlxcdTBDQzJcXHUwQ0M2XFx1MENDQVxcdTBDQ0RcXHUwQ0Q1XFx1MENENlxcdTBEM0VcXHUwRDQ2XFx1MEQ0NyIKKyAgICAgICAgICArICJcXHUwRDREXFx1MEQ1N1xcdTBEQ0FcXHUwRENGXFx1MEREOVxcdTBERENcXHUwRERGXFx1MEUzOC1cXHUwRTNBIgorICAgICAgICAgICsgIlxcdTBFNDgtXFx1MEU0QlxcdTBFQjhcXHUwRUI5XFx1MEVDOC1cXHUwRUNCXFx1MEYxOFxcdTBGMTkiCisgICAgICAgICAgKyAiXFx1MEYzNVxcdTBGMzdcXHUwRjM5XFx1MEY0M1xcdTBGNERcXHUwRjUyXFx1MEY1N1xcdTBGNUNcXHUwRjY5IgorICAgICAgICAgICsgIlxcdTBGNzEtXFx1MEY3NlxcdTBGNzhcXHUwRjdBLVxcdTBGN0RcXHUwRjgwLVxcdTBGODRcXHUwRjg2IgorICAgICAgICAgICsgIlxcdTBGODdcXHUwRjkzXFx1MEY5RFxcdTBGQTJcXHUwRkE3XFx1MEZBQ1xcdTBGQjlcXHUwRkM2XFx1MTAyNSIKKyAgICAgICAgICArICJcXHUxMDJFXFx1MTAzN1xcdTEwMzlcXHUxMTAwLVxcdTExMTJcXHUxMTYxLVxcdTExNzVcXHUxMUE4LSIKKyAgICAgICAgICArICJcXHUxMUMyXFx1MTM1RlxcdTE3MTRcXHUxNzM0XFx1MTdEMlxcdTE3RERcXHUxOEE5XFx1MTkzOS1cXHUxOTNCIgorICAgICAgICAgICsgIlxcdTFBMTdcXHUxQTE4XFx1MURDMC1cXHUxREMzXFx1MUUwMC1cXHUxRTAzXFx1MUUwQS1cXHUxRTBGIgorICAgICAgICAgICsgIlxcdTFFMTItXFx1MUUxQlxcdTFFMjAtXFx1MUUyN1xcdTFFMkEtXFx1MUU0MVxcdTFFNDQtXFx1MUU1MyIKKyAgICAgICAgICArICJcXHUxRTU4LVxcdTFFN0RcXHUxRTgwLVxcdTFFODdcXHUxRThFLVxcdTFFOTFcXHUxRTk2LVxcdTFFOTkiCisgICAgICAgICAgKyAiXFx1MUVBMC1cXHUxRUYzXFx1MUVGNi1cXHUxRUY5XFx1MUYwMC1cXHUxRjExXFx1MUYxOFxcdTFGMTkiCisgICAgICAgICAgKyAiXFx1MUYyMC1cXHUxRjMxXFx1MUYzOFxcdTFGMzlcXHUxRjQwXFx1MUY0MVxcdTFGNDhcXHUxRjQ5XFx1MUY1MCIKKyAgICAgICAgICArICJcXHUxRjUxXFx1MUY1OVxcdTFGNjAtXFx1MUY3MVxcdTFGNzMtXFx1MUY3NVxcdTFGNzdcXHUxRjc5IgorICAgICAgICAgICsgIlxcdTFGN0ItXFx1MUY3RFxcdTFGODBcXHUxRjgxXFx1MUY4OFxcdTFGODlcXHUxRjkwXFx1MUY5MVxcdTFGOTgiCisgICAgICAgICAgKyAiXFx1MUY5OVxcdTFGQTBcXHUxRkExXFx1MUZBOFxcdTFGQTlcXHUxRkIzXFx1MUZCNlxcdTFGQkJcXHUxRkJDIgorICAgICAgICAgICsgIlxcdTFGQkVcXHUxRkJGXFx1MUZDM1xcdTFGQzZcXHUxRkM5XFx1MUZDQlxcdTFGQ0NcXHUxRkQzXFx1MUZEQiIKKyAgICAgICAgICArICJcXHUxRkUzXFx1MUZFQlxcdTFGRUVcXHUxRkVGXFx1MUZGM1xcdTFGRjZcXHUxRkY5XFx1MUZGQi1cXHUxRkZFIgorICAgICAgICAgICsgIlxcdTIwMDBcXHUyMDAxXFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtXFx1MjBFQlxcdTIxMjYiCisgICAgICAgICAgKyAiXFx1MjEyQVxcdTIxMkJcXHUyMTkwXFx1MjE5MlxcdTIxOTRcXHUyMUQwXFx1MjFEMlxcdTIxRDRcXHUyMjAzIgorICAgICAgICAgICsgIlxcdTIyMDhcXHUyMjBCXFx1MjIyM1xcdTIyMjVcXHUyMjNDXFx1MjI0M1xcdTIyNDVcXHUyMjQ4XFx1MjI0RCIKKyAgICAgICAgICArICJcXHUyMjYxXFx1MjI2NFxcdTIyNjVcXHUyMjcyXFx1MjI3M1xcdTIyNzZcXHUyMjc3XFx1MjI3QS1cXHUyMjdEIgorICAgICAgICAgICsgIlxcdTIyODJcXHUyMjgzXFx1MjI4NlxcdTIyODdcXHUyMjkxXFx1MjI5MlxcdTIyQTJcXHUyMkE4XFx1MjJBOSIKKyAgICAgICAgICArICJcXHUyMkFCXFx1MjJCMi1cXHUyMkI1XFx1MjMyOVxcdTIzMkFcXHUyQURDXFx1MzAyQS1cXHUzMDJGIgorICAgICAgICAgICsgIlxcdTMwNDZcXHUzMDRCXFx1MzA0RFxcdTMwNEZcXHUzMDUxXFx1MzA1M1xcdTMwNTVcXHUzMDU3XFx1MzA1OSIKKyAgICAgICAgICArICJcXHUzMDVCXFx1MzA1RFxcdTMwNUZcXHUzMDYxXFx1MzA2NFxcdTMwNjZcXHUzMDY4XFx1MzA2RlxcdTMwNzIiCisgICAgICAgICAgKyAiXFx1MzA3NVxcdTMwNzhcXHUzMDdCXFx1MzA5OVxcdTMwOUFcXHUzMDlEXFx1MzBBNlxcdTMwQUJcXHUzMEFEIgorICAgICAgICAgICsgIlxcdTMwQUZcXHUzMEIxXFx1MzBCM1xcdTMwQjVcXHUzMEI3XFx1MzBCOVxcdTMwQkJcXHUzMEJEXFx1MzBCRiIKKyAgICAgICAgICArICJcXHUzMEMxXFx1MzBDNFxcdTMwQzZcXHUzMEM4XFx1MzBDRlxcdTMwRDJcXHUzMEQ1XFx1MzBEOFxcdTMwREIiCisgICAgICAgICAgKyAiXFx1MzBFRi1cXHUzMEYyXFx1MzBGRFxcdUE4MDZcXHVBQzAwXFx1QUMxQ1xcdUFDMzhcXHVBQzU0XFx1QUM3MCIKKyAgICAgICAgICArICJcXHVBQzhDXFx1QUNBOFxcdUFDQzRcXHVBQ0UwXFx1QUNGQ1xcdUFEMThcXHVBRDM0XFx1QUQ1MFxcdUFENkMiCisgICAgICAgICAgKyAiXFx1QUQ4OFxcdUFEQTRcXHVBREMwXFx1QUREQ1xcdUFERjhcXHVBRTE0XFx1QUUzMFxcdUFFNENcXHVBRTY4IgorICAgICAgICAgICsgIlxcdUFFODRcXHVBRUEwXFx1QUVCQ1xcdUFFRDhcXHVBRUY0XFx1QUYxMFxcdUFGMkNcXHVBRjQ4XFx1QUY2NCIKKyAgICAgICAgICArICJcXHVBRjgwXFx1QUY5Q1xcdUFGQjhcXHVBRkQ0XFx1QUZGMFxcdUIwMENcXHVCMDI4XFx1QjA0NFxcdUIwNjAiCisgICAgICAgICAgKyAiXFx1QjA3Q1xcdUIwOThcXHVCMEI0XFx1QjBEMFxcdUIwRUNcXHVCMTA4XFx1QjEyNFxcdUIxNDBcXHVCMTVDIgorICAgICAgICAgICsgIlxcdUIxNzhcXHVCMTk0XFx1QjFCMFxcdUIxQ0NcXHVCMUU4XFx1QjIwNFxcdUIyMjBcXHVCMjNDXFx1QjI1OCIKKyAgICAgICAgICArICJcXHVCMjc0XFx1QjI5MFxcdUIyQUNcXHVCMkM4XFx1QjJFNFxcdUIzMDBcXHVCMzFDXFx1QjMzOFxcdUIzNTQiCisgICAgICAgICAgKyAiXFx1QjM3MFxcdUIzOENcXHVCM0E4XFx1QjNDNFxcdUIzRTBcXHVCM0ZDXFx1QjQxOFxcdUI0MzRcXHVCNDUwIgorICAgICAgICAgICsgIlxcdUI0NkNcXHVCNDg4XFx1QjRBNFxcdUI0QzBcXHVCNERDXFx1QjRGOFxcdUI1MTRcXHVCNTMwXFx1QjU0QyIKKyAgICAgICAgICArICJcXHVCNTY4XFx1QjU4NFxcdUI1QTBcXHVCNUJDXFx1QjVEOFxcdUI1RjRcXHVCNjEwXFx1QjYyQ1xcdUI2NDgiCisgICAgICAgICAgKyAiXFx1QjY2NFxcdUI2ODBcXHVCNjlDXFx1QjZCOFxcdUI2RDRcXHVCNkYwXFx1QjcwQ1xcdUI3MjhcXHVCNzQ0IgorICAgICAgICAgICsgIlxcdUI3NjBcXHVCNzdDXFx1Qjc5OFxcdUI3QjRcXHVCN0QwXFx1QjdFQ1xcdUI4MDhcXHVCODI0XFx1Qjg0MCIKKyAgICAgICAgICArICJcXHVCODVDXFx1Qjg3OFxcdUI4OTRcXHVCOEIwXFx1QjhDQ1xcdUI4RThcXHVCOTA0XFx1QjkyMFxcdUI5M0MiCisgICAgICAgICAgKyAiXFx1Qjk1OFxcdUI5NzRcXHVCOTkwXFx1QjlBQ1xcdUI5QzhcXHVCOUU0XFx1QkEwMFxcdUJBMUNcXHVCQTM4IgorICAgICAgICAgICsgIlxcdUJBNTRcXHVCQTcwXFx1QkE4Q1xcdUJBQThcXHVCQUM0XFx1QkFFMFxcdUJBRkNcXHVCQjE4XFx1QkIzNCIKKyAgICAgICAgICArICJcXHVCQjUwXFx1QkI2Q1xcdUJCODhcXHVCQkE0XFx1QkJDMFxcdUJCRENcXHVCQkY4XFx1QkMxNFxcdUJDMzAiCisgICAgICAgICAgKyAiXFx1QkM0Q1xcdUJDNjhcXHVCQzg0XFx1QkNBMFxcdUJDQkNcXHVCQ0Q4XFx1QkNGNFxcdUJEMTBcXHVCRDJDIgorICAgICAgICAgICsgIlxcdUJENDhcXHVCRDY0XFx1QkQ4MFxcdUJEOUNcXHVCREI4XFx1QkRENFxcdUJERjBcXHVCRTBDXFx1QkUyOCIKKyAgICAgICAgICArICJcXHVCRTQ0XFx1QkU2MFxcdUJFN0NcXHVCRTk4XFx1QkVCNFxcdUJFRDBcXHVCRUVDXFx1QkYwOFxcdUJGMjQiCisgICAgICAgICAgKyAiXFx1QkY0MFxcdUJGNUNcXHVCRjc4XFx1QkY5NFxcdUJGQjBcXHVCRkNDXFx1QkZFOFxcdUMwMDRcXHVDMDIwIgorICAgICAgICAgICsgIlxcdUMwM0NcXHVDMDU4XFx1QzA3NFxcdUMwOTBcXHVDMEFDXFx1QzBDOFxcdUMwRTRcXHVDMTAwXFx1QzExQyIKKyAgICAgICAgICArICJcXHVDMTM4XFx1QzE1NFxcdUMxNzBcXHVDMThDXFx1QzFBOFxcdUMxQzRcXHVDMUUwXFx1QzFGQ1xcdUMyMTgiCisgICAgICAgICAgKyAiXFx1QzIzNFxcdUMyNTBcXHVDMjZDXFx1QzI4OFxcdUMyQTRcXHVDMkMwXFx1QzJEQ1xcdUMyRjhcXHVDMzE0IgorICAgICAgICAgICsgIlxcdUMzMzBcXHVDMzRDXFx1QzM2OFxcdUMzODRcXHVDM0EwXFx1QzNCQ1xcdUMzRDhcXHVDM0Y0XFx1QzQxMCIKKyAgICAgICAgICArICJcXHVDNDJDXFx1QzQ0OFxcdUM0NjRcXHVDNDgwXFx1QzQ5Q1xcdUM0QjhcXHVDNEQ0XFx1QzRGMFxcdUM1MEMiCisgICAgICAgICAgKyAiXFx1QzUyOFxcdUM1NDRcXHVDNTYwXFx1QzU3Q1xcdUM1OThcXHVDNUI0XFx1QzVEMFxcdUM1RUNcXHVDNjA4IgorICAgICAgICAgICsgIlxcdUM2MjRcXHVDNjQwXFx1QzY1Q1xcdUM2NzhcXHVDNjk0XFx1QzZCMFxcdUM2Q0NcXHVDNkU4XFx1QzcwNCIKKyAgICAgICAgICArICJcXHVDNzIwXFx1QzczQ1xcdUM3NThcXHVDNzc0XFx1Qzc5MFxcdUM3QUNcXHVDN0M4XFx1QzdFNFxcdUM4MDAiCisgICAgICAgICAgKyAiXFx1QzgxQ1xcdUM4MzhcXHVDODU0XFx1Qzg3MFxcdUM4OENcXHVDOEE4XFx1QzhDNFxcdUM4RTBcXHVDOEZDIgorICAgICAgICAgICsgIlxcdUM5MThcXHVDOTM0XFx1Qzk1MFxcdUM5NkNcXHVDOTg4XFx1QzlBNFxcdUM5QzBcXHVDOURDXFx1QzlGOCIKKyAgICAgICAgICArICJcXHVDQTE0XFx1Q0EzMFxcdUNBNENcXHVDQTY4XFx1Q0E4NFxcdUNBQTBcXHVDQUJDXFx1Q0FEOFxcdUNBRjQiCisgICAgICAgICAgKyAiXFx1Q0IxMFxcdUNCMkNcXHVDQjQ4XFx1Q0I2NFxcdUNCODBcXHVDQjlDXFx1Q0JCOFxcdUNCRDRcXHVDQkYwIgorICAgICAgICAgICsgIlxcdUNDMENcXHVDQzI4XFx1Q0M0NFxcdUNDNjBcXHVDQzdDXFx1Q0M5OFxcdUNDQjRcXHVDQ0QwXFx1Q0NFQyIKKyAgICAgICAgICArICJcXHVDRDA4XFx1Q0QyNFxcdUNENDBcXHVDRDVDXFx1Q0Q3OFxcdUNEOTRcXHVDREIwXFx1Q0RDQ1xcdUNERTgiCisgICAgICAgICAgKyAiXFx1Q0UwNFxcdUNFMjBcXHVDRTNDXFx1Q0U1OFxcdUNFNzRcXHVDRTkwXFx1Q0VBQ1xcdUNFQzhcXHVDRUU0IgorICAgICAgICAgICsgIlxcdUNGMDBcXHVDRjFDXFx1Q0YzOFxcdUNGNTRcXHVDRjcwXFx1Q0Y4Q1xcdUNGQThcXHVDRkM0XFx1Q0ZFMCIKKyAgICAgICAgICArICJcXHVDRkZDXFx1RDAxOFxcdUQwMzRcXHVEMDUwXFx1RDA2Q1xcdUQwODhcXHVEMEE0XFx1RDBDMFxcdUQwREMiCisgICAgICAgICAgKyAiXFx1RDBGOFxcdUQxMTRcXHVEMTMwXFx1RDE0Q1xcdUQxNjhcXHVEMTg0XFx1RDFBMFxcdUQxQkNcXHVEMUQ4IgorICAgICAgICAgICsgIlxcdUQxRjRcXHVEMjEwXFx1RDIyQ1xcdUQyNDhcXHVEMjY0XFx1RDI4MFxcdUQyOUNcXHVEMkI4XFx1RDJENCIKKyAgICAgICAgICArICJcXHVEMkYwXFx1RDMwQ1xcdUQzMjhcXHVEMzQ0XFx1RDM2MFxcdUQzN0NcXHVEMzk4XFx1RDNCNFxcdUQzRDAiCisgICAgICAgICAgKyAiXFx1RDNFQ1xcdUQ0MDhcXHVENDI0XFx1RDQ0MFxcdUQ0NUNcXHVENDc4XFx1RDQ5NFxcdUQ0QjBcXHVENENDIgorICAgICAgICAgICsgIlxcdUQ0RThcXHVENTA0XFx1RDUyMFxcdUQ1M0NcXHVENTU4XFx1RDU3NFxcdUQ1OTBcXHVENUFDXFx1RDVDOCIKKyAgICAgICAgICArICJcXHVENUU0XFx1RDYwMFxcdUQ2MUNcXHVENjM4XFx1RDY1NFxcdUQ2NzBcXHVENjhDXFx1RDZBOFxcdUQ2QzQiCisgICAgICAgICAgKyAiXFx1RDZFMFxcdUQ2RkNcXHVENzE4XFx1RDczNFxcdUQ3NTBcXHVENzZDXFx1RDc4OFxcdUY5MDAtXFx1RkEwRCIKKyAgICAgICAgICArICJcXHVGQTEwXFx1RkExMlxcdUZBMTUtXFx1RkExRVxcdUZBMjBcXHVGQTIyXFx1RkEyNVxcdUZBMjZcXHVGQTJBIgorICAgICAgICAgICsgIi1cXHVGQTJEXFx1RkEzMC1cXHVGQTZBXFx1RkE3MC1cXHVGQUQ5XFx1RkIxRC1cXHVGQjFGXFx1RkIyQS0iCisgICAgICAgICAgKyAiXFx1RkIzNlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0VcXHVGQjQwXFx1RkI0MVxcdUZCNDNcXHVGQjQ0XFx1RkI0NiIKKyAgICAgICAgICArICItXFx1RkI0RVxcdUZFMjAtXFx1RkUyM1xcVTAwMDEwQTBEXFxVMDAwMTBBMEZcXFUwMDAxMEEzOC1cXFUwMDAxIgorICAgICAgICAgICsgIjBBM0FcXFUwMDAxMEEzRlxcVTAwMDFEMTVFLVxcVTAwMDFEMTY5XFxVMDAwMUQxNkQtXFxVMDAwMUQxNzIiCisgICAgICAgICAgKyAiXFxVMDAwMUQxN0ItXFxVMDAwMUQxODJcXFUwMDAxRDE4NS1cXFUwMDAxRDE4QlxcVTAwMDFEMUFBLSIKKyAgICAgICAgICArICJcXFUwMDAxRDFBRFxcVTAwMDFEMUJCLVxcVTAwMDFEMUMwXFxVMDAwMUQyNDItXFxVMDAwMUQyNDRcXFUwMDAyIgorICAgICAgICAgICsgIkY4MDAtXFxVMDAwMkZBMURdIiwgZmFsc2UpOworCisgICAgICAgIHNraXBTZXRzW0tEXS5hcHBseVBhdHRlcm4oCisgICAgICAgICAgICAiW15cXHUwMEEwXFx1MDBBOFxcdTAwQUFcXHUwMEFGXFx1MDBCMi1cXHUwMEI1XFx1MDBCOC1cXHUwMEJBIgorICAgICAgICAgICsgIlxcdTAwQkMtXFx1MDBCRVxcdTAwQzAtXFx1MDBDNVxcdTAwQzctXFx1MDBDRlxcdTAwRDEtXFx1MDBENiIKKyAgICAgICAgICArICJcXHUwMEQ5LVxcdTAwRERcXHUwMEUwLVxcdTAwRTVcXHUwMEU3LVxcdTAwRUZcXHUwMEYxLVxcdTAwRjYiCisgICAgICAgICAgKyAiXFx1MDBGOS1cXHUwMEZEXFx1MDBGRi1cXHUwMTBGXFx1MDExMi1cXHUwMTI1XFx1MDEyOC1cXHUwMTMwIgorICAgICAgICAgICsgIlxcdTAxMzItXFx1MDEzN1xcdTAxMzktXFx1MDE0MFxcdTAxNDMtXFx1MDE0OVxcdTAxNEMtXFx1MDE1MSIKKyAgICAgICAgICArICJcXHUwMTU0LVxcdTAxNjVcXHUwMTY4LVxcdTAxN0ZcXHUwMUEwXFx1MDFBMVxcdTAxQUZcXHUwMUIwIgorICAgICAgICAgICsgIlxcdTAxQzQtXFx1MDFEQ1xcdTAxREUtXFx1MDFFM1xcdTAxRTYtXFx1MDFGNVxcdTAxRjgtXFx1MDIxQiIKKyAgICAgICAgICArICJcXHUwMjFFXFx1MDIxRlxcdTAyMjYtXFx1MDIzM1xcdTAyQjAtXFx1MDJCOFxcdTAyRDgtXFx1MDJERCIKKyAgICAgICAgICArICJcXHUwMkUwLVxcdTAyRTRcXHUwMzAwLVxcdTAzNEVcXHUwMzUwLVxcdTAzNkZcXHUwMzc0XFx1MDM3QSIKKyAgICAgICAgICArICJcXHUwMzdFXFx1MDM4NC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDM5MFxcdTAzQUEtXFx1MDNCMCIKKyAgICAgICAgICArICJcXHUwM0NBLVxcdTAzQ0VcXHUwM0QwLVxcdTAzRDZcXHUwM0YwLVxcdTAzRjJcXHUwM0Y0XFx1MDNGNSIKKyAgICAgICAgICArICJcXHUwM0Y5XFx1MDQwMFxcdTA0MDFcXHUwNDAzXFx1MDQwN1xcdTA0MEMtXFx1MDQwRVxcdTA0MTlcXHUwNDM5IgorICAgICAgICAgICsgIlxcdTA0NTBcXHUwNDUxXFx1MDQ1M1xcdTA0NTdcXHUwNDVDLVxcdTA0NUVcXHUwNDc2XFx1MDQ3N1xcdTA0ODMiCisgICAgICAgICAgKyAiLVxcdTA0ODZcXHUwNEMxXFx1MDRDMlxcdTA0RDAtXFx1MDREM1xcdTA0RDZcXHUwNEQ3XFx1MDREQS0iCisgICAgICAgICAgKyAiXFx1MDRERlxcdTA0RTItXFx1MDRFN1xcdTA0RUEtXFx1MDRGNVxcdTA0RjhcXHUwNEY5XFx1MDU4NyIKKyAgICAgICAgICArICJcXHUwNTkxLVxcdTA1QjlcXHUwNUJCLVxcdTA1QkRcXHUwNUJGXFx1MDVDMVxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNjEwLSIKKyAgICAgICAgICArICJcXHUwNjE1XFx1MDYyMi1cXHUwNjI2XFx1MDY0Qi1cXHUwNjVFXFx1MDY3MFxcdTA2NzUtXFx1MDY3OCIKKyAgICAgICAgICArICJcXHUwNkMwXFx1MDZDMlxcdTA2RDNcXHUwNkQ2LVxcdTA2RENcXHUwNkRGLVxcdTA2RTRcXHUwNkU3IgorICAgICAgICAgICsgIlxcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNzExXFx1MDczMC1cXHUwNzRBXFx1MDkyOVxcdTA5MzEiCisgICAgICAgICAgKyAiXFx1MDkzNFxcdTA5M0NcXHUwOTREXFx1MDk1MS1cXHUwOTU0XFx1MDk1OC1cXHUwOTVGXFx1MDlCQyIKKyAgICAgICAgICArICJcXHUwOUNCLVxcdTA5Q0RcXHUwOURDXFx1MDlERFxcdTA5REZcXHUwQTMzXFx1MEEzNlxcdTBBM0NcXHUwQTREIgorICAgICAgICAgICsgIlxcdTBBNTktXFx1MEE1QlxcdTBBNUVcXHUwQUJDXFx1MEFDRFxcdTBCM0NcXHUwQjQ4XFx1MEI0Qi0iCisgICAgICAgICAgKyAiXFx1MEI0RFxcdTBCNUNcXHUwQjVEXFx1MEI5NFxcdTBCQ0EtXFx1MEJDRFxcdTBDNDhcXHUwQzREXFx1MEM1NSIKKyAgICAgICAgICArICJcXHUwQzU2XFx1MENCQ1xcdTBDQzBcXHUwQ0M3XFx1MENDOFxcdTBDQ0FcXHUwQ0NCXFx1MENDRFxcdTBENEEtIgorICAgICAgICAgICsgIlxcdTBENERcXHUwRENBXFx1MEREQVxcdTBEREMtXFx1MERERVxcdTBFMzNcXHUwRTM4LVxcdTBFM0EiCisgICAgICAgICAgKyAiXFx1MEU0OC1cXHUwRTRCXFx1MEVCM1xcdTBFQjhcXHUwRUI5XFx1MEVDOC1cXHUwRUNCXFx1MEVEQyIKKyAgICAgICAgICArICJcXHUwRUREXFx1MEYwQ1xcdTBGMThcXHUwRjE5XFx1MEYzNVxcdTBGMzdcXHUwRjM5XFx1MEY0M1xcdTBGNEQiCisgICAgICAgICAgKyAiXFx1MEY1MlxcdTBGNTdcXHUwRjVDXFx1MEY2OVxcdTBGNzEtXFx1MEY3RFxcdTBGODAtXFx1MEY4NCIKKyAgICAgICAgICArICJcXHUwRjg2XFx1MEY4N1xcdTBGOTNcXHUwRjlEXFx1MEZBMlxcdTBGQTdcXHUwRkFDXFx1MEZCOVxcdTBGQzYiCisgICAgICAgICAgKyAiXFx1MTAyNlxcdTEwMzdcXHUxMDM5XFx1MTBGQ1xcdTEzNUZcXHUxNzE0XFx1MTczNFxcdTE3RDJcXHUxN0REIgorICAgICAgICAgICsgIlxcdTE4QTlcXHUxOTM5LVxcdTE5M0JcXHUxQTE3XFx1MUExOFxcdTFEMkMtXFx1MUQyRVxcdTFEMzAtIgorICAgICAgICAgICsgIlxcdTFEM0FcXHUxRDNDLVxcdTFENERcXHUxRDRGLVxcdTFENkFcXHUxRDc4XFx1MUQ5Qi1cXHUxREMzIgorICAgICAgICAgICsgIlxcdTFFMDAtXFx1MUU5QlxcdTFFQTAtXFx1MUVGOVxcdTFGMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRCIKKyAgICAgICAgICArICJcXHUxRjIwLVxcdTFGNDVcXHUxRjQ4LVxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QiIKKyAgICAgICAgICArICJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkM0XFx1MUZDNi0iCisgICAgICAgICAgKyAiXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGREQtXFx1MUZFRlxcdTFGRjItXFx1MUZGNFxcdTFGRjYtIgorICAgICAgICAgICsgIlxcdTFGRkVcXHUyMDAwLVxcdTIwMEFcXHUyMDExXFx1MjAxN1xcdTIwMjQtXFx1MjAyNlxcdTIwMkYiCisgICAgICAgICAgKyAiXFx1MjAzM1xcdTIwMzRcXHUyMDM2XFx1MjAzN1xcdTIwM0NcXHUyMDNFXFx1MjA0Ny1cXHUyMDQ5XFx1MjA1NyIKKyAgICAgICAgICArICJcXHUyMDVGXFx1MjA3MFxcdTIwNzFcXHUyMDc0LVxcdTIwOEVcXHUyMDkwLVxcdTIwOTRcXHUyMEE4IgorICAgICAgICAgICsgIlxcdTIwRDAtXFx1MjBEQ1xcdTIwRTFcXHUyMEU1LVxcdTIwRUJcXHUyMTAwLVxcdTIxMDNcXHUyMTA1LSIKKyAgICAgICAgICArICJcXHUyMTA3XFx1MjEwOS1cXHUyMTEzXFx1MjExNVxcdTIxMTZcXHUyMTE5LVxcdTIxMURcXHUyMTIwLSIKKyAgICAgICAgICArICJcXHUyMTIyXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTMxIgorICAgICAgICAgICsgIlxcdTIxMzMtXFx1MjEzOVxcdTIxM0ItXFx1MjE0MFxcdTIxNDUtXFx1MjE0OVxcdTIxNTMtXFx1MjE3RiIKKyAgICAgICAgICArICJcXHUyMTlBXFx1MjE5QlxcdTIxQUVcXHUyMUNELVxcdTIxQ0ZcXHUyMjA0XFx1MjIwOVxcdTIyMENcXHUyMjI0IgorICAgICAgICAgICsgIlxcdTIyMjZcXHUyMjJDXFx1MjIyRFxcdTIyMkZcXHUyMjMwXFx1MjI0MVxcdTIyNDRcXHUyMjQ3XFx1MjI0OSIKKyAgICAgICAgICArICJcXHUyMjYwXFx1MjI2MlxcdTIyNkQtXFx1MjI3MVxcdTIyNzRcXHUyMjc1XFx1MjI3OFxcdTIyNzlcXHUyMjgwIgorICAgICAgICAgICsgIlxcdTIyODFcXHUyMjg0XFx1MjI4NVxcdTIyODhcXHUyMjg5XFx1MjJBQy1cXHUyMkFGXFx1MjJFMC0iCisgICAgICAgICAgKyAiXFx1MjJFM1xcdTIyRUEtXFx1MjJFRFxcdTIzMjlcXHUyMzJBXFx1MjQ2MC1cXHUyNEVBXFx1MkEwQyIKKyAgICAgICAgICArICJcXHUyQTc0LVxcdTJBNzZcXHUyQURDXFx1MkQ2RlxcdTJFOUZcXHUyRUYzXFx1MkYwMC1cXHUyRkQ1IgorICAgICAgICAgICsgIlxcdTMwMDBcXHUzMDJBLVxcdTMwMkZcXHUzMDM2XFx1MzAzOC1cXHUzMDNBXFx1MzA0Q1xcdTMwNEUiCisgICAgICAgICAgKyAiXFx1MzA1MFxcdTMwNTJcXHUzMDU0XFx1MzA1NlxcdTMwNThcXHUzMDVBXFx1MzA1Q1xcdTMwNUVcXHUzMDYwIgorICAgICAgICAgICsgIlxcdTMwNjJcXHUzMDY1XFx1MzA2N1xcdTMwNjlcXHUzMDcwXFx1MzA3MVxcdTMwNzNcXHUzMDc0XFx1MzA3NiIKKyAgICAgICAgICArICJcXHUzMDc3XFx1MzA3OVxcdTMwN0FcXHUzMDdDXFx1MzA3RFxcdTMwOTRcXHUzMDk5LVxcdTMwOUNcXHUzMDlFIgorICAgICAgICAgICsgIlxcdTMwOUZcXHUzMEFDXFx1MzBBRVxcdTMwQjBcXHUzMEIyXFx1MzBCNFxcdTMwQjZcXHUzMEI4XFx1MzBCQSIKKyAgICAgICAgICArICJcXHUzMEJDXFx1MzBCRVxcdTMwQzBcXHUzMEMyXFx1MzBDNVxcdTMwQzdcXHUzMEM5XFx1MzBEMFxcdTMwRDEiCisgICAgICAgICAgKyAiXFx1MzBEM1xcdTMwRDRcXHUzMEQ2XFx1MzBEN1xcdTMwRDlcXHUzMERBXFx1MzBEQ1xcdTMwRERcXHUzMEY0IgorICAgICAgICAgICsgIlxcdTMwRjctXFx1MzBGQVxcdTMwRkVcXHUzMEZGXFx1MzEzMS1cXHUzMThFXFx1MzE5Mi1cXHUzMTlGIgorICAgICAgICAgICsgIlxcdTMyMDAtXFx1MzIxRVxcdTMyMjAtXFx1MzI0M1xcdTMyNTAtXFx1MzI3RVxcdTMyODAtXFx1MzJGRSIKKyAgICAgICAgICArICJcXHUzMzAwLVxcdTMzRkZcXHVBODA2XFx1QUMwMC1cXHVEN0EzXFx1RjkwMC1cXHVGQTBEXFx1RkExMCIKKyAgICAgICAgICArICJcXHVGQTEyXFx1RkExNS1cXHVGQTFFXFx1RkEyMFxcdUZBMjJcXHVGQTI1XFx1RkEyNlxcdUZBMkEtIgorICAgICAgICAgICsgIlxcdUZBMkRcXHVGQTMwLVxcdUZBNkFcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLSIKKyAgICAgICAgICArICJcXHVGQjE3XFx1RkIxRC1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxIgorICAgICAgICAgICsgIlxcdUZCNDNcXHVGQjQ0XFx1RkI0Ni1cXHVGQkIxXFx1RkJEMy1cXHVGRDNEXFx1RkQ1MC1cXHVGRDhGIgorICAgICAgICAgICsgIlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQ1xcdUZFMTAtXFx1RkUxOVxcdUZFMjAtXFx1RkUyMyIKKyAgICAgICAgICArICJcXHVGRTMwLVxcdUZFNDRcXHVGRTQ3LVxcdUZFNTJcXHVGRTU0LVxcdUZFNjZcXHVGRTY4LVxcdUZFNkIiCisgICAgICAgICAgKyAiXFx1RkU3MC1cXHVGRTcyXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMDEtXFx1RkZCRVxcdUZGQzItIgorICAgICAgICAgICsgIlxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENcXHVGRkUwLSIKKyAgICAgICAgICArICJcXHVGRkU2XFx1RkZFOC1cXHVGRkVFXFxVMDAwMTBBMERcXFUwMDAxMEEwRlxcVTAwMDEwQTM4LVxcVTAwMDEwIgorICAgICAgICAgICsgIkEzQVxcVTAwMDEwQTNGXFxVMDAwMUQxNUUtXFxVMDAwMUQxNjlcXFUwMDAxRDE2RC1cXFUwMDAxRDE3MiIKKyAgICAgICAgICArICJcXFUwMDAxRDE3Qi1cXFUwMDAxRDE4MlxcVTAwMDFEMTg1LVxcVTAwMDFEMThCXFxVMDAwMUQxQUEtIgorICAgICAgICAgICsgIlxcVTAwMDFEMUFEXFxVMDAwMUQxQkItXFxVMDAwMUQxQzBcXFUwMDAxRDI0Mi1cXFUwMDAxRDI0NFxcVTAwMDEiCisgICAgICAgICAgKyAiRDQwMC1cXFUwMDAxRDQ1NFxcVTAwMDFENDU2LVxcVTAwMDFENDlDXFxVMDAwMUQ0OUVcXFUwMDAxRDQ5RiIKKyAgICAgICAgICArICJcXFUwMDAxRDRBMlxcVTAwMDFENEE1XFxVMDAwMUQ0QTZcXFUwMDAxRDRBOS1cXFUwMDAxRDRBQ1xcVTAwMDFEIgorICAgICAgICAgICsgIjRBRS1cXFUwMDAxRDRCOVxcVTAwMDFENEJCXFxVMDAwMUQ0QkQtXFxVMDAwMUQ0QzNcXFUwMDAxRDRDNS0iCisgICAgICAgICAgKyAiXFxVMDAwMUQ1MDVcXFUwMDAxRDUwNy1cXFUwMDAxRDUwQVxcVTAwMDFENTBELVxcVTAwMDFENTE0XFxVMDAwMSIKKyAgICAgICAgICArICJENTE2LVxcVTAwMDFENTFDXFxVMDAwMUQ1MUUtXFxVMDAwMUQ1MzlcXFUwMDAxRDUzQi1cXFUwMDAxRDUzRSIKKyAgICAgICAgICArICJcXFUwMDAxRDU0MC1cXFUwMDAxRDU0NFxcVTAwMDFENTQ2XFxVMDAwMUQ1NEEtXFxVMDAwMUQ1NTBcXFUwMDAxIgorICAgICAgICAgICsgIkQ1NTItXFxVMDAwMUQ2QTVcXFUwMDAxRDZBOC1cXFUwMDAxRDdDOVxcVTAwMDFEN0NFLVxcVTAwMDFEN0ZGIgorICAgICAgICAgICsgIlxcVTAwMDJGODAwLVxcVTAwMDJGQTFEXSIsIGZhbHNlKTsKKworICAgICAgICBza2lwU2V0c1tLQ10uYXBwbHlQYXR0ZXJuKAorICAgICAgICAgICAgIltePC0+QS1QUi1aYS1wci16XFx1MDBBMFxcdTAwQThcXHUwMEFBXFx1MDBBRlxcdTAwQjItXFx1MDBCNSIKKyAgICAgICAgICArICJcXHUwMEI4LVxcdTAwQkFcXHUwMEJDLVxcdTAwQkVcXHUwMEMwLVxcdTAwQ0ZcXHUwMEQxLVxcdTAwRDYiCisgICAgICAgICAgKyAiXFx1MDBEOC1cXHUwMEREXFx1MDBFMC1cXHUwMEVGXFx1MDBGMS1cXHUwMEY2XFx1MDBGOC1cXHUwMEZEIgorICAgICAgICAgICsgIlxcdTAwRkYtXFx1MDEwM1xcdTAxMDYtXFx1MDEwRlxcdTAxMTItXFx1MDExN1xcdTAxMUEtXFx1MDEyMSIKKyAgICAgICAgICArICJcXHUwMTI0XFx1MDEyNVxcdTAxMjgtXFx1MDEyRFxcdTAxMzBcXHUwMTMyXFx1MDEzM1xcdTAxMzlcXHUwMTNBIgorICAgICAgICAgICsgIlxcdTAxM0QtXFx1MDE0MFxcdTAxNDNcXHUwMTQ0XFx1MDE0Ny1cXHUwMTQ5XFx1MDE0Qy1cXHUwMTUxIgorICAgICAgICAgICsgIlxcdTAxNTRcXHUwMTU1XFx1MDE1OC1cXHUwMTVEXFx1MDE2MFxcdTAxNjFcXHUwMTY0XFx1MDE2NVxcdTAxNjgiCisgICAgICAgICAgKyAiLVxcdTAxNzFcXHUwMTc0LVxcdTAxN0ZcXHUwMUEwXFx1MDFBMVxcdTAxQUZcXHUwMUIwXFx1MDFCNyIKKyAgICAgICAgICArICJcXHUwMUM0LVxcdTAxRENcXHUwMURFLVxcdTAxRTFcXHUwMUU2LVxcdTAxRUJcXHUwMUYxLVxcdTAxRjUiCisgICAgICAgICAgKyAiXFx1MDFGOC1cXHUwMUZCXFx1MDIwMC1cXHUwMjFCXFx1MDIxRVxcdTAyMUZcXHUwMjI2LVxcdTAyMzMiCisgICAgICAgICAgKyAiXFx1MDI5MlxcdTAyQjAtXFx1MDJCOFxcdTAyRDgtXFx1MDJERFxcdTAyRTAtXFx1MDJFNFxcdTAzMDAtIgorICAgICAgICAgICsgIlxcdTAzNEVcXHUwMzUwLVxcdTAzNkZcXHUwMzc0XFx1MDM3QVxcdTAzN0VcXHUwMzg0XFx1MDM4NVxcdTAzODciCisgICAgICAgICAgKyAiXFx1MDM5MVxcdTAzOTVcXHUwMzk3XFx1MDM5OVxcdTAzOUZcXHUwM0ExXFx1MDNBNVxcdTAzQTlcXHUwM0FDIgorICAgICAgICAgICsgIlxcdTAzQUVcXHUwM0IxXFx1MDNCNVxcdTAzQjdcXHUwM0I5XFx1MDNCRlxcdTAzQzFcXHUwM0M1XFx1MDNDOS0iCisgICAgICAgICAgKyAiXFx1MDNDQlxcdTAzQ0VcXHUwM0QwLVxcdTAzRDZcXHUwM0YwLVxcdTAzRjJcXHUwM0Y0XFx1MDNGNSIKKyAgICAgICAgICArICJcXHUwM0Y5XFx1MDQwNlxcdTA0MTBcXHUwNDEzXFx1MDQxNS1cXHUwNDE4XFx1MDQxQVxcdTA0MUVcXHUwNDIzIgorICAgICAgICAgICsgIlxcdTA0MjdcXHUwNDJCXFx1MDQyRFxcdTA0MzBcXHUwNDMzXFx1MDQzNS1cXHUwNDM4XFx1MDQzQVxcdTA0M0UiCisgICAgICAgICAgKyAiXFx1MDQ0M1xcdTA0NDdcXHUwNDRCXFx1MDQ0RFxcdTA0NTZcXHUwNDc0XFx1MDQ3NVxcdTA0ODMtXFx1MDQ4NiIKKyAgICAgICAgICArICJcXHUwNEQ4XFx1MDREOVxcdTA0RThcXHUwNEU5XFx1MDU4N1xcdTA1OTEtXFx1MDVCOVxcdTA1QkItXFx1MDVCRFxcdTA1QkZcXHUwNUMxIgorICAgICAgICAgICsgIlxcdTA1QzJcXHUwNUM0XFx1MDVDNVxcdTA1QzdcXHUwNjEwLVxcdTA2MTVcXHUwNjIyXFx1MDYyM1xcdTA2MjdcXHUwNjQ4IgorICAgICAgICAgICsgIlxcdTA2NEEtXFx1MDY1RVxcdTA2NzBcXHUwNjc1LVxcdTA2NzhcXHUwNkMxXFx1MDZEMlxcdTA2RDUtIgorICAgICAgICAgICsgIlxcdTA2RENcXHUwNkRGLVxcdTA2RTRcXHUwNkU3XFx1MDZFOFxcdTA2RUEtXFx1MDZFRFxcdTA3MTEiCisgICAgICAgICAgKyAiXFx1MDczMC1cXHUwNzRBXFx1MDkyOFxcdTA5MzBcXHUwOTMzXFx1MDkzQ1xcdTA5NERcXHUwOTUxLSIKKyAgICAgICAgICArICJcXHUwOTU0XFx1MDk1OC1cXHUwOTVGXFx1MDlCQ1xcdTA5QkVcXHUwOUM3XFx1MDlDRFxcdTA5RDdcXHUwOURDIgorICAgICAgICAgICsgIlxcdTA5RERcXHUwOURGXFx1MEEzM1xcdTBBMzZcXHUwQTNDXFx1MEE0RFxcdTBBNTktXFx1MEE1QlxcdTBBNUUiCisgICAgICAgICAgKyAiXFx1MEFCQ1xcdTBBQ0RcXHUwQjNDXFx1MEIzRVxcdTBCNDdcXHUwQjREXFx1MEI1NlxcdTBCNTdcXHUwQjVDIgorICAgICAgICAgICsgIlxcdTBCNURcXHUwQjkyXFx1MEJCRVxcdTBCQzZcXHUwQkM3XFx1MEJDRFxcdTBCRDdcXHUwQzQ2XFx1MEM0RCIKKyAgICAgICAgICArICJcXHUwQzU1XFx1MEM1NlxcdTBDQkNcXHUwQ0JGXFx1MENDMlxcdTBDQzZcXHUwQ0NBXFx1MENDRFxcdTBDRDUiCisgICAgICAgICAgKyAiXFx1MENENlxcdTBEM0VcXHUwRDQ2XFx1MEQ0N1xcdTBENERcXHUwRDU3XFx1MERDQVxcdTBEQ0ZcXHUwREQ5IgorICAgICAgICAgICsgIlxcdTBERENcXHUwRERGXFx1MEUzM1xcdTBFMzgtXFx1MEUzQVxcdTBFNDgtXFx1MEU0QlxcdTBFQjMiCisgICAgICAgICAgKyAiXFx1MEVCOFxcdTBFQjlcXHUwRUM4LVxcdTBFQ0JcXHUwRURDXFx1MEVERFxcdTBGMENcXHUwRjE4XFx1MEYxOSIKKyAgICAgICAgICArICJcXHUwRjM1XFx1MEYzN1xcdTBGMzlcXHUwRjQzXFx1MEY0RFxcdTBGNTJcXHUwRjU3XFx1MEY1Q1xcdTBGNjkiCisgICAgICAgICAgKyAiXFx1MEY3MS1cXHUwRjdEXFx1MEY4MC1cXHUwRjg0XFx1MEY4NlxcdTBGODdcXHUwRjkzXFx1MEY5RCIKKyAgICAgICAgICArICJcXHUwRkEyXFx1MEZBN1xcdTBGQUNcXHUwRkI5XFx1MEZDNlxcdTEwMjVcXHUxMDJFXFx1MTAzN1xcdTEwMzkiCisgICAgICAgICAgKyAiXFx1MTBGQ1xcdTExMDAtXFx1MTExMlxcdTExNjEtXFx1MTE3NVxcdTExQTgtXFx1MTFDMlxcdTEzNUYiCisgICAgICAgICAgKyAiXFx1MTcxNFxcdTE3MzRcXHUxN0QyXFx1MTdERFxcdTE4QTlcXHUxOTM5LVxcdTE5M0JcXHUxQTE3XFx1MUExOCIKKyAgICAgICAgICArICJcXHUxRDJDLVxcdTFEMkVcXHUxRDMwLVxcdTFEM0FcXHUxRDNDLVxcdTFENERcXHUxRDRGLVxcdTFENkEiCisgICAgICAgICAgKyAiXFx1MUQ3OFxcdTFEOUItXFx1MURDM1xcdTFFMDAtXFx1MUUwM1xcdTFFMEEtXFx1MUUwRlxcdTFFMTItIgorICAgICAgICAgICsgIlxcdTFFMUJcXHUxRTIwLVxcdTFFMjdcXHUxRTJBLVxcdTFFNDFcXHUxRTQ0LVxcdTFFNTNcXHUxRTU4LSIKKyAgICAgICAgICArICJcXHUxRTdEXFx1MUU4MC1cXHUxRTg3XFx1MUU4RS1cXHUxRTkxXFx1MUU5Ni1cXHUxRTlCXFx1MUVBMC0iCisgICAgICAgICAgKyAiXFx1MUVGM1xcdTFFRjYtXFx1MUVGOVxcdTFGMDAtXFx1MUYxMVxcdTFGMThcXHUxRjE5XFx1MUYyMC0iCisgICAgICAgICAgKyAiXFx1MUYzMVxcdTFGMzhcXHUxRjM5XFx1MUY0MFxcdTFGNDFcXHUxRjQ4XFx1MUY0OVxcdTFGNTBcXHUxRjUxIgorICAgICAgICAgICsgIlxcdTFGNTlcXHUxRjYwLVxcdTFGNzFcXHUxRjczLVxcdTFGNzVcXHUxRjc3XFx1MUY3OVxcdTFGN0ItIgorICAgICAgICAgICsgIlxcdTFGN0RcXHUxRjgwXFx1MUY4MVxcdTFGODhcXHUxRjg5XFx1MUY5MFxcdTFGOTFcXHUxRjk4XFx1MUY5OSIKKyAgICAgICAgICArICJcXHUxRkEwXFx1MUZBMVxcdTFGQThcXHUxRkE5XFx1MUZCM1xcdTFGQjZcXHUxRkJCLVxcdTFGQzFcXHUxRkMzIgorICAgICAgICAgICsgIlxcdTFGQzZcXHUxRkM5XFx1MUZDQi1cXHUxRkNGXFx1MUZEM1xcdTFGREJcXHUxRkRELVxcdTFGREYiCisgICAgICAgICAgKyAiXFx1MUZFM1xcdTFGRUJcXHUxRkVELVxcdTFGRUZcXHUxRkYzXFx1MUZGNlxcdTFGRjlcXHUxRkZCLSIKKyAgICAgICAgICArICJcXHUxRkZFXFx1MjAwMC1cXHUyMDBBXFx1MjAxMVxcdTIwMTdcXHUyMDI0LVxcdTIwMjZcXHUyMDJGIgorICAgICAgICAgICsgIlxcdTIwMzNcXHUyMDM0XFx1MjAzNlxcdTIwMzdcXHUyMDNDXFx1MjAzRVxcdTIwNDctXFx1MjA0OVxcdTIwNTciCisgICAgICAgICAgKyAiXFx1MjA1RlxcdTIwNzBcXHUyMDcxXFx1MjA3NC1cXHUyMDhFXFx1MjA5MC1cXHUyMDk0XFx1MjBBOCIKKyAgICAgICAgICArICJcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEVCXFx1MjEwMC1cXHUyMTAzXFx1MjEwNS0iCisgICAgICAgICAgKyAiXFx1MjEwN1xcdTIxMDktXFx1MjExM1xcdTIxMTVcXHUyMTE2XFx1MjExOS1cXHUyMTFEXFx1MjEyMC0iCisgICAgICAgICAgKyAiXFx1MjEyMlxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzMSIKKyAgICAgICAgICArICJcXHUyMTMzLVxcdTIxMzlcXHUyMTNCLVxcdTIxNDBcXHUyMTQ1LVxcdTIxNDlcXHUyMTUzLVxcdTIxN0YiCisgICAgICAgICAgKyAiXFx1MjE5MFxcdTIxOTJcXHUyMTk0XFx1MjFEMFxcdTIxRDJcXHUyMUQ0XFx1MjIwM1xcdTIyMDhcXHUyMjBCIgorICAgICAgICAgICsgIlxcdTIyMjNcXHUyMjI1XFx1MjIyQ1xcdTIyMkRcXHUyMjJGXFx1MjIzMFxcdTIyM0NcXHUyMjQzXFx1MjI0NSIKKyAgICAgICAgICArICJcXHUyMjQ4XFx1MjI0RFxcdTIyNjFcXHUyMjY0XFx1MjI2NVxcdTIyNzJcXHUyMjczXFx1MjI3NlxcdTIyNzciCisgICAgICAgICAgKyAiXFx1MjI3QS1cXHUyMjdEXFx1MjI4MlxcdTIyODNcXHUyMjg2XFx1MjI4N1xcdTIyOTFcXHUyMjkyXFx1MjJBMiIKKyAgICAgICAgICArICJcXHUyMkE4XFx1MjJBOVxcdTIyQUJcXHUyMkIyLVxcdTIyQjVcXHUyMzI5XFx1MjMyQVxcdTI0NjAtIgorICAgICAgICAgICsgIlxcdTI0RUFcXHUyQTBDXFx1MkE3NC1cXHUyQTc2XFx1MkFEQ1xcdTJENkZcXHUyRTlGXFx1MkVGM1xcdTJGMDAiCisgICAgICAgICAgKyAiLVxcdTJGRDVcXHUzMDAwXFx1MzAyQS1cXHUzMDJGXFx1MzAzNlxcdTMwMzgtXFx1MzAzQVxcdTMwNDYiCisgICAgICAgICAgKyAiXFx1MzA0QlxcdTMwNERcXHUzMDRGXFx1MzA1MVxcdTMwNTNcXHUzMDU1XFx1MzA1N1xcdTMwNTlcXHUzMDVCIgorICAgICAgICAgICsgIlxcdTMwNURcXHUzMDVGXFx1MzA2MVxcdTMwNjRcXHUzMDY2XFx1MzA2OFxcdTMwNkZcXHUzMDcyXFx1MzA3NSIKKyAgICAgICAgICArICJcXHUzMDc4XFx1MzA3QlxcdTMwOTktXFx1MzA5RFxcdTMwOUZcXHUzMEE2XFx1MzBBQlxcdTMwQURcXHUzMEFGIgorICAgICAgICAgICsgIlxcdTMwQjFcXHUzMEIzXFx1MzBCNVxcdTMwQjdcXHUzMEI5XFx1MzBCQlxcdTMwQkRcXHUzMEJGXFx1MzBDMSIKKyAgICAgICAgICArICJcXHUzMEM0XFx1MzBDNlxcdTMwQzhcXHUzMENGXFx1MzBEMlxcdTMwRDVcXHUzMEQ4XFx1MzBEQlxcdTMwRUYtIgorICAgICAgICAgICsgIlxcdTMwRjJcXHUzMEZEXFx1MzBGRlxcdTMxMzEtXFx1MzE4RVxcdTMxOTItXFx1MzE5RlxcdTMyMDAtIgorICAgICAgICAgICsgIlxcdTMyMUVcXHUzMjIwLVxcdTMyNDNcXHUzMjUwLVxcdTMyN0VcXHUzMjgwLVxcdTMyRkVcXHUzMzAwLSIKKyAgICAgICAgICArICJcXHUzM0ZGXFx1QTgwNlxcdUFDMDBcXHVBQzFDXFx1QUMzOFxcdUFDNTRcXHVBQzcwXFx1QUM4Q1xcdUFDQTgiCisgICAgICAgICAgKyAiXFx1QUNDNFxcdUFDRTBcXHVBQ0ZDXFx1QUQxOFxcdUFEMzRcXHVBRDUwXFx1QUQ2Q1xcdUFEODhcXHVBREE0IgorICAgICAgICAgICsgIlxcdUFEQzBcXHVBRERDXFx1QURGOFxcdUFFMTRcXHVBRTMwXFx1QUU0Q1xcdUFFNjhcXHVBRTg0XFx1QUVBMCIKKyAgICAgICAgICArICJcXHVBRUJDXFx1QUVEOFxcdUFFRjRcXHVBRjEwXFx1QUYyQ1xcdUFGNDhcXHVBRjY0XFx1QUY4MFxcdUFGOUMiCisgICAgICAgICAgKyAiXFx1QUZCOFxcdUFGRDRcXHVBRkYwXFx1QjAwQ1xcdUIwMjhcXHVCMDQ0XFx1QjA2MFxcdUIwN0NcXHVCMDk4IgorICAgICAgICAgICsgIlxcdUIwQjRcXHVCMEQwXFx1QjBFQ1xcdUIxMDhcXHVCMTI0XFx1QjE0MFxcdUIxNUNcXHVCMTc4XFx1QjE5NCIKKyAgICAgICAgICArICJcXHVCMUIwXFx1QjFDQ1xcdUIxRThcXHVCMjA0XFx1QjIyMFxcdUIyM0NcXHVCMjU4XFx1QjI3NFxcdUIyOTAiCisgICAgICAgICAgKyAiXFx1QjJBQ1xcdUIyQzhcXHVCMkU0XFx1QjMwMFxcdUIzMUNcXHVCMzM4XFx1QjM1NFxcdUIzNzBcXHVCMzhDIgorICAgICAgICAgICsgIlxcdUIzQThcXHVCM0M0XFx1QjNFMFxcdUIzRkNcXHVCNDE4XFx1QjQzNFxcdUI0NTBcXHVCNDZDXFx1QjQ4OCIKKyAgICAgICAgICArICJcXHVCNEE0XFx1QjRDMFxcdUI0RENcXHVCNEY4XFx1QjUxNFxcdUI1MzBcXHVCNTRDXFx1QjU2OFxcdUI1ODQiCisgICAgICAgICAgKyAiXFx1QjVBMFxcdUI1QkNcXHVCNUQ4XFx1QjVGNFxcdUI2MTBcXHVCNjJDXFx1QjY0OFxcdUI2NjRcXHVCNjgwIgorICAgICAgICAgICsgIlxcdUI2OUNcXHVCNkI4XFx1QjZENFxcdUI2RjBcXHVCNzBDXFx1QjcyOFxcdUI3NDRcXHVCNzYwXFx1Qjc3QyIKKyAgICAgICAgICArICJcXHVCNzk4XFx1QjdCNFxcdUI3RDBcXHVCN0VDXFx1QjgwOFxcdUI4MjRcXHVCODQwXFx1Qjg1Q1xcdUI4NzgiCisgICAgICAgICAgKyAiXFx1Qjg5NFxcdUI4QjBcXHVCOENDXFx1QjhFOFxcdUI5MDRcXHVCOTIwXFx1QjkzQ1xcdUI5NThcXHVCOTc0IgorICAgICAgICAgICsgIlxcdUI5OTBcXHVCOUFDXFx1QjlDOFxcdUI5RTRcXHVCQTAwXFx1QkExQ1xcdUJBMzhcXHVCQTU0XFx1QkE3MCIKKyAgICAgICAgICArICJcXHVCQThDXFx1QkFBOFxcdUJBQzRcXHVCQUUwXFx1QkFGQ1xcdUJCMThcXHVCQjM0XFx1QkI1MFxcdUJCNkMiCisgICAgICAgICAgKyAiXFx1QkI4OFxcdUJCQTRcXHVCQkMwXFx1QkJEQ1xcdUJCRjhcXHVCQzE0XFx1QkMzMFxcdUJDNENcXHVCQzY4IgorICAgICAgICAgICsgIlxcdUJDODRcXHVCQ0EwXFx1QkNCQ1xcdUJDRDhcXHVCQ0Y0XFx1QkQxMFxcdUJEMkNcXHVCRDQ4XFx1QkQ2NCIKKyAgICAgICAgICArICJcXHVCRDgwXFx1QkQ5Q1xcdUJEQjhcXHVCREQ0XFx1QkRGMFxcdUJFMENcXHVCRTI4XFx1QkU0NFxcdUJFNjAiCisgICAgICAgICAgKyAiXFx1QkU3Q1xcdUJFOThcXHVCRUI0XFx1QkVEMFxcdUJFRUNcXHVCRjA4XFx1QkYyNFxcdUJGNDBcXHVCRjVDIgorICAgICAgICAgICsgIlxcdUJGNzhcXHVCRjk0XFx1QkZCMFxcdUJGQ0NcXHVCRkU4XFx1QzAwNFxcdUMwMjBcXHVDMDNDXFx1QzA1OCIKKyAgICAgICAgICArICJcXHVDMDc0XFx1QzA5MFxcdUMwQUNcXHVDMEM4XFx1QzBFNFxcdUMxMDBcXHVDMTFDXFx1QzEzOFxcdUMxNTQiCisgICAgICAgICAgKyAiXFx1QzE3MFxcdUMxOENcXHVDMUE4XFx1QzFDNFxcdUMxRTBcXHVDMUZDXFx1QzIxOFxcdUMyMzRcXHVDMjUwIgorICAgICAgICAgICsgIlxcdUMyNkNcXHVDMjg4XFx1QzJBNFxcdUMyQzBcXHVDMkRDXFx1QzJGOFxcdUMzMTRcXHVDMzMwXFx1QzM0QyIKKyAgICAgICAgICArICJcXHVDMzY4XFx1QzM4NFxcdUMzQTBcXHVDM0JDXFx1QzNEOFxcdUMzRjRcXHVDNDEwXFx1QzQyQ1xcdUM0NDgiCisgICAgICAgICAgKyAiXFx1QzQ2NFxcdUM0ODBcXHVDNDlDXFx1QzRCOFxcdUM0RDRcXHVDNEYwXFx1QzUwQ1xcdUM1MjhcXHVDNTQ0IgorICAgICAgICAgICsgIlxcdUM1NjBcXHVDNTdDXFx1QzU5OFxcdUM1QjRcXHVDNUQwXFx1QzVFQ1xcdUM2MDhcXHVDNjI0XFx1QzY0MCIKKyAgICAgICAgICArICJcXHVDNjVDXFx1QzY3OFxcdUM2OTRcXHVDNkIwXFx1QzZDQ1xcdUM2RThcXHVDNzA0XFx1QzcyMFxcdUM3M0MiCisgICAgICAgICAgKyAiXFx1Qzc1OFxcdUM3NzRcXHVDNzkwXFx1QzdBQ1xcdUM3QzhcXHVDN0U0XFx1QzgwMFxcdUM4MUNcXHVDODM4IgorICAgICAgICAgICsgIlxcdUM4NTRcXHVDODcwXFx1Qzg4Q1xcdUM4QThcXHVDOEM0XFx1QzhFMFxcdUM4RkNcXHVDOTE4XFx1QzkzNCIKKyAgICAgICAgICArICJcXHVDOTUwXFx1Qzk2Q1xcdUM5ODhcXHVDOUE0XFx1QzlDMFxcdUM5RENcXHVDOUY4XFx1Q0ExNFxcdUNBMzAiCisgICAgICAgICAgKyAiXFx1Q0E0Q1xcdUNBNjhcXHVDQTg0XFx1Q0FBMFxcdUNBQkNcXHVDQUQ4XFx1Q0FGNFxcdUNCMTBcXHVDQjJDIgorICAgICAgICAgICsgIlxcdUNCNDhcXHVDQjY0XFx1Q0I4MFxcdUNCOUNcXHVDQkI4XFx1Q0JENFxcdUNCRjBcXHVDQzBDXFx1Q0MyOCIKKyAgICAgICAgICArICJcXHVDQzQ0XFx1Q0M2MFxcdUNDN0NcXHVDQzk4XFx1Q0NCNFxcdUNDRDBcXHVDQ0VDXFx1Q0QwOFxcdUNEMjQiCisgICAgICAgICAgKyAiXFx1Q0Q0MFxcdUNENUNcXHVDRDc4XFx1Q0Q5NFxcdUNEQjBcXHVDRENDXFx1Q0RFOFxcdUNFMDRcXHVDRTIwIgorICAgICAgICAgICsgIlxcdUNFM0NcXHVDRTU4XFx1Q0U3NFxcdUNFOTBcXHVDRUFDXFx1Q0VDOFxcdUNFRTRcXHVDRjAwXFx1Q0YxQyIKKyAgICAgICAgICArICJcXHVDRjM4XFx1Q0Y1NFxcdUNGNzBcXHVDRjhDXFx1Q0ZBOFxcdUNGQzRcXHVDRkUwXFx1Q0ZGQ1xcdUQwMTgiCisgICAgICAgICAgKyAiXFx1RDAzNFxcdUQwNTBcXHVEMDZDXFx1RDA4OFxcdUQwQTRcXHVEMEMwXFx1RDBEQ1xcdUQwRjhcXHVEMTE0IgorICAgICAgICAgICsgIlxcdUQxMzBcXHVEMTRDXFx1RDE2OFxcdUQxODRcXHVEMUEwXFx1RDFCQ1xcdUQxRDhcXHVEMUY0XFx1RDIxMCIKKyAgICAgICAgICArICJcXHVEMjJDXFx1RDI0OFxcdUQyNjRcXHVEMjgwXFx1RDI5Q1xcdUQyQjhcXHVEMkQ0XFx1RDJGMFxcdUQzMEMiCisgICAgICAgICAgKyAiXFx1RDMyOFxcdUQzNDRcXHVEMzYwXFx1RDM3Q1xcdUQzOThcXHVEM0I0XFx1RDNEMFxcdUQzRUNcXHVENDA4IgorICAgICAgICAgICsgIlxcdUQ0MjRcXHVENDQwXFx1RDQ1Q1xcdUQ0NzhcXHVENDk0XFx1RDRCMFxcdUQ0Q0NcXHVENEU4XFx1RDUwNCIKKyAgICAgICAgICArICJcXHVENTIwXFx1RDUzQ1xcdUQ1NThcXHVENTc0XFx1RDU5MFxcdUQ1QUNcXHVENUM4XFx1RDVFNFxcdUQ2MDAiCisgICAgICAgICAgKyAiXFx1RDYxQ1xcdUQ2MzhcXHVENjU0XFx1RDY3MFxcdUQ2OENcXHVENkE4XFx1RDZDNFxcdUQ2RTBcXHVENkZDIgorICAgICAgICAgICsgIlxcdUQ3MThcXHVENzM0XFx1RDc1MFxcdUQ3NkNcXHVENzg4XFx1RjkwMC1cXHVGQTBEXFx1RkExMFxcdUZBMTIiCisgICAgICAgICAgKyAiXFx1RkExNS1cXHVGQTFFXFx1RkEyMFxcdUZBMjJcXHVGQTI1XFx1RkEyNlxcdUZBMkEtXFx1RkEyRCIKKyAgICAgICAgICArICJcXHVGQTMwLVxcdUZBNkFcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTciCisgICAgICAgICAgKyAiXFx1RkIxRC1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0MyIKKyAgICAgICAgICArICJcXHVGQjQ0XFx1RkI0Ni1cXHVGQkIxXFx1RkJEMy1cXHVGRDNEXFx1RkQ1MC1cXHVGRDhGXFx1RkQ5Mi0iCisgICAgICAgICAgKyAiXFx1RkRDN1xcdUZERjAtXFx1RkRGQ1xcdUZFMTAtXFx1RkUxOVxcdUZFMjAtXFx1RkUyM1xcdUZFMzAtIgorICAgICAgICAgICsgIlxcdUZFNDRcXHVGRTQ3LVxcdUZFNTJcXHVGRTU0LVxcdUZFNjZcXHVGRTY4LVxcdUZFNkJcXHVGRTcwLSIKKyAgICAgICAgICArICJcXHVGRTcyXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMDEtXFx1RkZCRVxcdUZGQzItXFx1RkZDNyIKKyAgICAgICAgICArICJcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENcXHVGRkUwLVxcdUZGRTYiCisgICAgICAgICAgKyAiXFx1RkZFOC1cXHVGRkVFXFxVMDAwMTBBMERcXFUwMDAxMEEwRlxcVTAwMDEwQTM4LVxcVTAwMDEwQTNBIgorICAgICAgICAgICsgIlxcVTAwMDEwQTNGXFxVMDAwMUQxNUUtXFxVMDAwMUQxNjlcXFUwMDAxRDE2RC1cXFUwMDAxRDE3MlxcVTAwMDEiCisgICAgICAgICAgKyAiRDE3Qi1cXFUwMDAxRDE4MlxcVTAwMDFEMTg1LVxcVTAwMDFEMThCXFxVMDAwMUQxQUEtXFxVMDAwMUQxQUQiCisgICAgICAgICAgKyAiXFxVMDAwMUQxQkItXFxVMDAwMUQxQzBcXFUwMDAxRDI0Mi1cXFUwMDAxRDI0NFxcVTAwMDFENDAwLSIKKyAgICAgICAgICArICJcXFUwMDAxRDQ1NFxcVTAwMDFENDU2LVxcVTAwMDFENDlDXFxVMDAwMUQ0OUVcXFUwMDAxRDQ5RlxcVTAwMDFEIgorICAgICAgICAgICsgIjRBMlxcVTAwMDFENEE1XFxVMDAwMUQ0QTZcXFUwMDAxRDRBOS1cXFUwMDAxRDRBQ1xcVTAwMDFENEFFLSIKKyAgICAgICAgICArICJcXFUwMDAxRDRCOVxcVTAwMDFENEJCXFxVMDAwMUQ0QkQtXFxVMDAwMUQ0QzNcXFUwMDAxRDRDNS1cXFUwMDAxIgorICAgICAgICAgICsgIkQ1MDVcXFUwMDAxRDUwNy1cXFUwMDAxRDUwQVxcVTAwMDFENTBELVxcVTAwMDFENTE0XFxVMDAwMUQ1MTYtIgorICAgICAgICAgICsgIlxcVTAwMDFENTFDXFxVMDAwMUQ1MUUtXFxVMDAwMUQ1MzlcXFUwMDAxRDUzQi1cXFUwMDAxRDUzRVxcVTAwMDEiCisgICAgICAgICAgKyAiRDU0MC1cXFUwMDAxRDU0NFxcVTAwMDFENTQ2XFxVMDAwMUQ1NEEtXFxVMDAwMUQ1NTBcXFUwMDAxRDU1Mi0iCisgICAgICAgICAgKyAiXFxVMDAwMUQ2QTVcXFUwMDAxRDZBOC1cXFUwMDAxRDdDOVxcVTAwMDFEN0NFLVxcVTAwMDFEN0ZGXFxVMDAwMiIKKyAgICAgICAgICArICJGODAwLVxcVTAwMDJGQTFEXSIsIGZhbHNlKTsKKworICAgICAgICByZXR1cm4gc2tpcFNldHM7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFNraXBwYWJsZSgpIHsKKyAgICAgICBVbmljb2RlU2V0IHN0YXJ0czsKKyAgICAgICBVbmljb2RlU2V0W10gc2tpcFNldHMgPSBuZXcgVW5pY29kZVNldFtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCksIC8vTkZECisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoKSwgLy9ORkMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgpLCAvL05GS0MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgpLCAvL05GS0QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgpLCAvL0ZDRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCksIC8vTk9ORQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgIFVuaWNvZGVTZXRbXSBleHBlY3RTZXRzID0gbmV3IFVuaWNvZGVTZXRbXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICBTdHJpbmdCdWZmZXIgcywgcGF0dGVybjsKKyAgICAgICBpbnQgc3RhcnQsIGxpbWl0LCByYW5nZUVuZDsKKyAgICAgICBpbnQgaSwgcmFuZ2UsIGNvdW50OworICAgICAgIHN0YXJ0cyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgLyoKKyAgICAgICAvL1tcdTAzNTAtXHUwMzU3XHUwMzVELVx1MDM1Rlx1MDYxMC1cdTA2MTVcdTA2NTYtXHUwNjU4XHUwQ0JDXHUxN0REXHUxOTM5LVx1MTkzQl0KKyAgICAgICBmb3IoaW50IGNoPTA7Y2g8PTB4MTBGRkZGO2NoKyspeworICAgICAgICAgICAgICAgaWYoTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKGNoLCBOb3JtYWxpemVyLk5GRCkpIHsKKyAgICAgICAgICAgICAgICAgICBza2lwU2V0c1tEXS5hZGQoY2gpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgaWYoTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKGNoLCBOb3JtYWxpemVyLk5GS0QpKSB7CisgICAgICAgICAgICAgICAgICAgc2tpcFNldHNbS0RdLmFkZChjaCk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZihOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoY2gsIE5vcm1hbGl6ZXIuTkZDKSkgeworICAgICAgICAgICAgICAgICAgIHNraXBTZXRzW0NdLmFkZChjaCk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZihOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoY2gsIE5vcm1hbGl6ZXIuTkZLQykpIHsKKyAgICAgICAgICAgICAgICAgICBza2lwU2V0c1tLQ10uYWRkKGNoKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmKE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShjaCwgTm9ybWFsaXplci5GQ0QpKSB7CisgICAgICAgICAgICAgICAgICAgc2tpcFNldHNbRkNEXS5hZGQoY2gpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgaWYoTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKGNoLCBOb3JtYWxpemVyLk5PTkUpKSB7CisgICAgICAgICAgICAgICAgICAgc2tpcFNldHNbTk9ORV0uYWRkKGNoKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICB9CisgICAgICAgKi8KKyAgICAgICAvLyBidWlsZCBORipTa2lwcGFibGUgc2V0cyBmcm9tIHJ1bnRpbWUgZGF0YSAKKyAgICAgICBOb3JtYWxpemVySW1wbC5hZGRQcm9wZXJ0eVN0YXJ0cyhzdGFydHMpOworICAgICAgIGNvdW50PXN0YXJ0cy5nZXRSYW5nZUNvdW50KCk7CisgICAKKyAgICAgICBzdGFydD1saW1pdD0wOworICAgICAgIHJhbmdlRW5kPTA7CisgICAgICAgcmFuZ2U9MDsKKyAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgaWYoc3RhcnQ8bGltaXQpIHsKKyAgICAgICAgICAgICAgIC8vIGdldCBwcm9wZXJ0aWVzIGZvciBzdGFydCBhbmQgYXBwbHkgdGhlbSB0byBbc3RhcnQuLmxpbWl0WyAKKyAgICAgICAgICAgICAgIGlmKE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShzdGFydCwgTm9ybWFsaXplci5ORkQpKSB7CisgICAgICAgICAgICAgICAgICAgc2tpcFNldHNbRF0uYWRkKHN0YXJ0LCBsaW1pdC0xKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmKE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShzdGFydCwgTm9ybWFsaXplci5ORktEKSkgeworICAgICAgICAgICAgICAgICAgIHNraXBTZXRzW0tEXS5hZGQoc3RhcnQsIGxpbWl0LTEpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgaWYoTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKHN0YXJ0LCBOb3JtYWxpemVyLk5GQykpIHsKKyAgICAgICAgICAgICAgICAgICBza2lwU2V0c1tDXS5hZGQoc3RhcnQsIGxpbWl0LTEpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgaWYoTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKHN0YXJ0LCBOb3JtYWxpemVyLk5GS0MpKSB7CisgICAgICAgICAgICAgICAgICAgc2tpcFNldHNbS0NdLmFkZChzdGFydCwgbGltaXQtMSk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZihOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoc3RhcnQsIE5vcm1hbGl6ZXIuRkNEKSkgeworICAgICAgICAgICAgICAgICAgIHNraXBTZXRzW0ZDRF0uYWRkKHN0YXJ0LCBsaW1pdC0xKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmKE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShzdGFydCwgTm9ybWFsaXplci5OT05FKSkgeworICAgICAgICAgICAgICAgICAgIHNraXBTZXRzW05PTkVdLmFkZChzdGFydCwgbGltaXQtMSk7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgfQorICAgCisgICAgICAgICAgIC8vIGdvIHRvIG5leHQgcmFuZ2Ugb2Ygc2FtZSBwcm9wZXJ0aWVzIAorICAgICAgICAgICBzdGFydD1saW1pdDsKKyAgICAgICAgICAgaWYoKytsaW1pdD5yYW5nZUVuZCkgeworICAgICAgICAgICAgICAgaWYocmFuZ2U8Y291bnQpIHsKKyAgICAgICAgICAgICAgICAgICBsaW1pdD1zdGFydHMuZ2V0UmFuZ2VTdGFydChyYW5nZSk7CisgICAgICAgICAgICAgICAgICAgcmFuZ2VFbmQ9c3RhcnRzLmdldFJhbmdlRW5kKHJhbmdlKTsKKyAgICAgICAgICAgICAgICAgICArK3JhbmdlOworICAgICAgICAgICAgICAgfSBlbHNlIGlmKHJhbmdlPT1jb3VudCkgeworICAgICAgICAgICAgICAgICAgIC8vIGFkZGl0aW9uYWwgcmFuZ2UgdG8gY29tcGxldGUgdGhlIFVuaWNvZGUgY29kZSBzcGFjZSAKKyAgICAgICAgICAgICAgICAgICBsaW1pdD1yYW5nZUVuZD0weDExMDAwMDsKKyAgICAgICAgICAgICAgICAgICArK3JhbmdlOworICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfQorICAgICAgIH0KKyAgIAorICAgICAgIGV4cGVjdFNldHMgPSBpbml0U2tpcHBhYmxlcyhleHBlY3RTZXRzKTsKKyAgICAgICBpZihleHBlY3RTZXRzW0RdLmNvbnRhaW5zKDB4MDM1MCkpeworICAgICAgICAgICAgZXJybG4oImV4cGVjdFNldHNbRF0gY29udGFpbnMgMHgwMzUwIik7CisgICAgICAgfQorICAgICAgIC8vZXhwZWN0U2V0cy5sZW5ndGggZm9yIG5vdyBkbyBub3QgdGVzdCBGQ0QgYW5kIE5PTkUgc2luY2UgdGhlcmUgaXMgbm8gZGF0YQorICAgICAgIGZvcihpPTA7IGk8IDQ7ICsraSkgeworCisgICAgICAgICAgIGlmKCFza2lwU2V0c1tpXS5lcXVhbHMoZXhwZWN0U2V0c1tpXSkpIHsKKyAgICAgICAgICAgICAgIGVycmxuKCJlcnJvcjogVGVzdFNraXBwYWJsZSBza2lwU2V0c1siK2krIl0hPWV4cGVjdGVkU2V0c1siK2krIl1cbiIrCisgICAgICAgICAgICAgICAgICAgICAibWF5IG5lZWQgdG8gdXBkYXRlIGhhcmRjb2RlZCBVbmljb2RlU2V0IHBhdHRlcm5zIGluIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXIuQmFzaWNUZXN0LmphdmFcbiIrCisgICAgICAgICAgICAgICAgICAgICAic2VlIElDVTRKIC0gdW5pY29kZXRvb2xzLmNvbS5pYm0udGV4dC5VQ0QuTkZTa2lwcGFibGUiKTsKKyAgIAorICAgICAgICAgICAgICAgcz1uZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIHMuYXBwZW5kKCJcblxuc2tpcD0gICAgICAgIik7CisgICAgICAgICAgICAgICBzLmFwcGVuZChza2lwU2V0c1tpXS50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICAgICAgICAgcy5hcHBlbmQoIlxuXG4iKTsKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgcy5hcHBlbmQoInNraXAtZXhwZWN0PSIpOyAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIHBhdHRlcm4gPSBuZXcgU3RyaW5nQnVmZmVyKCgoVW5pY29kZVNldClza2lwU2V0c1tpXS5jbG9uZSgpKS5yZW1vdmVBbGwoZXhwZWN0U2V0c1tpXSkudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgICAgICAgIHMuYXBwZW5kKHBhdHRlcm4pOworICAgCisgICAgICAgICAgICAgICBwYXR0ZXJuLmRlbGV0ZSgwLHBhdHRlcm4ubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgcy5hcHBlbmQoIlxuXG5leHBlY3Qtc2tpcD0iKTsKKyAgICAgICAgICAgICAgIHBhdHRlcm4gPSBuZXcgU3RyaW5nQnVmZmVyKCgoVW5pY29kZVNldClleHBlY3RTZXRzW2ldLmNsb25lKCkpLnJlbW92ZUFsbChza2lwU2V0c1tpXSkudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgICAgICAgIHMuYXBwZW5kKHBhdHRlcm4pOworICAgICAgICAgICAgICAgcy5hcHBlbmQoIlxuXG4iKTsKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgcGF0dGVybi5kZWxldGUoMCxwYXR0ZXJuLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgIHMuYXBwZW5kKCJcblxuaW50ZXJzZWN0aW9uKGV4cGVjdCxza2lwKT0iKTsKKyAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgaW50ZXJzZWN0aW9uICA9ICgoVW5pY29kZVNldCkgZXhwZWN0U2V0c1tpXS5jbG9uZSgpKS5yZXRhaW5BbGwoc2tpcFNldHNbaV0pOworICAgICAgICAgICAgICAgcGF0dGVybiA9IG5ldyBTdHJpbmdCdWZmZXIoaW50ZXJzZWN0aW9uLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgICAgICAgICBzLmFwcGVuZChwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgIHMuYXBwZW5kKCJcblxuIik7CisgICAgICAgICAgICAgICAKKworICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBlcnJsbihzLnRvU3RyaW5nKCkpOworICAgICAgICAgICB9CisgICAgICAgfQorICAgICB9CisgICAgIAorICAgICBwdWJsaWMgdm9pZCBUZXN0QnVnSjIwNjgoKXsKKyAgICAgICAgU3RyaW5nIHNhbXBsZSA9ICJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZyI7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNhbXBsZSk7CisgICAgICAgIE5vcm1hbGl6ZXIgbm9ybSA9IG5ldyBOb3JtYWxpemVyKHRleHQsTm9ybWFsaXplci5ORkMsMCk7CisgICAgICAgIHRleHQuc2V0SW5kZXgoNCk7CisgICAgICAgIGlmKHRleHQuY3VycmVudCgpID09IG5vcm0uY3VycmVudCgpKXsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGlzIG5vdCBjbG9uaW5nIHRoZSBVQ2hhcmFjdGVySXRlcmF0b3IiKTsKKyAgICAgICAgfQorICAgICB9ICAgCisgICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRDb21iaW5pbmdDbGFzcygpeworICAgICAgICBmb3IoaW50IGk9MDtpPDB4MTBGRkZGO2krKyl7CisgICAgICAgICAgICBpbnQgY2MgPSBVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKGkpOworICAgICAgICAgICAgaWYoMHhEODAwPD0gaSAmJiBpPD0weERGRkYgJiYgY2MgPjAgKXsKKyAgICAgICAgICAgICAgICBjYyA9IFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoaSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkNDOiAiKyBjYyArICIgZm9yIGNvZGVwb2ludDogIiArVXRpbGl0eS5oZXgoaSw4KSk7CisgICAgICAgICAgICB9IAorICAgICAgICB9CisgICAgfSAgCisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEdldE5YKCl7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gTm9ybWFsaXplckltcGwuZ2V0TlgoMSAvKk5vcm1hbGl6ZXJJbXBsLk5YX0hBTkdVTCovKTsKKyAgICAgICAgaWYoIXNldC5jb250YWlucygweGFjMDEpKXsKKyAgICAgICAgICAgIGVycmxuKCJnZXROWCBkaWQgbm90IHJldHVybiBjb3JyZWN0IHNldCBmb3IgTlhfSEFOR1VMIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNldCA9IE5vcm1hbGl6ZXJJbXBsLmdldE5YKDIvKk5vcm1hbGl6ZXJJbXBsLk5YX0NKS19DT01QQVQqLyk7CisgICAgICAgIGlmKCFzZXQuY29udGFpbnMoJ1x1RkEyMCcpKXsKKyAgICAgICAgICAgIGVycmxuKCJnZXROWCBkaWQgbm90IHJldHVybiBjb3JyZWN0IHNldCBmb3IgTlhfQ0pLX0NPTVBBVCIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RTZXJpYWxpemVkU2V0KCl7CisgICAgICAgIFVTZXJpYWxpemVkU2V0IHNzZXQ9bmV3IFVTZXJpYWxpemVkU2V0KCk7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgaW50IHN0YXJ0LCBlbmQ7CisgICAgCisgICAgICAgIC8vIGNvbGxlY3QgYWxsIHNldHMgaW50byBvbmUgZm9yIGNvbnRpZ3VvdXMgb3V0cHV0CisgICAgICAgIGludFtdIHN0YXJ0RW5kID0gbmV3IGludFsyXTsKKworICAgICAgICBpZihOb3JtYWxpemVySW1wbC5nZXRDYW5vblN0YXJ0U2V0KDB4MDEzMCwgc3NldCkpIHsKKyAgICAgICAgICAgIGludCBjb3VudD1zc2V0LmNvdW50UmFuZ2VzKCk7CisgICAgICAgICAgICBmb3IoaW50IGo9MDsgajxjb3VudDsgKytqKSB7CisgICAgICAgICAgICAgICAgc3NldC5nZXRSYW5nZShqLCBzdGFydEVuZCk7CisgICAgICAgICAgICAgICAgc2V0LmFkZChzdGFydEVuZFswXSwgc3RhcnRFbmRbMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgCisKKyAgICAgICAgLy8gdGVzdCBhbGwgb2YgdGhlc2UgcHJlY29tcG9zZWQgY2hhcmFjdGVycworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNldCk7CisgICAgICAgIHdoaWxlKGl0Lm5leHRSYW5nZSgpICYmIGl0LmNvZGVwb2ludCE9VW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgICAgICAgICAgc3RhcnQ9aXQuY29kZXBvaW50OworICAgICAgICAgICAgZW5kPWl0LmNvZGVwb2ludEVuZDsKKyAgICAgICAgICAgIHdoaWxlKHN0YXJ0PD1lbmQpIHsKKyAgICAgICAgICAgICAgICBpZighc3NldC5jb250YWlucyhzdGFydCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVVNlcmlhbGl6ZWRTZXQuY29udGFpbnMgZmFpbGVkIGZvciAiK1V0aWxpdHkuaGV4KHN0YXJ0LDgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFJldHVybkZhaWx1cmUoKXsKKyAgICAgICAgY2hhcltdIHRlcm0gPSB7J3InLCdcdTAwZTknLCdzJywndScsJ20nLCdcdTAwZTknIH07CisgICAgICAgIGNoYXJbXSBkZWNvbXBvc2VkX3Rlcm0gPSBuZXcgY2hhclsxMCArIHRlcm0ubGVuZ3RoICsgMl07CisgICAgICAgIGludCByYyA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHRlcm0sMCx0ZXJtLmxlbmd0aCwgZGVjb21wb3NlZF90ZXJtLDAsZGVjb21wb3NlZF90ZXJtLmxlbmd0aCx0cnVlLCAwKTsKKyAgICAgICAgaW50IHJjMSA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHRlcm0sMCx0ZXJtLmxlbmd0aCwgZGVjb21wb3NlZF90ZXJtLDEwLGRlY29tcG9zZWRfdGVybS5sZW5ndGgsdHJ1ZSwgMCk7IAorICAgICAgICBpZihyYyE9cmMxKXsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGRlY29tcG9zZSBkaWQgbm90IHJldHVybiBjb3JyZWN0IGxlbmd0aCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgY2xhc3MgVGVzdENvbXBvc2l0aW9uQ2FzZSB7CisgICAgICAgIHB1YmxpYyBOb3JtYWxpemVyLk1vZGUgbW9kZTsKKyAgICAgICAgcHVibGljIGludCBvcHRpb25zOworICAgICAgICBwdWJsaWMgU3RyaW5nIGlucHV0LCBleHBlY3Q7CisgICAgICAgIFRlc3RDb21wb3NpdGlvbkNhc2UoTm9ybWFsaXplci5Nb2RlIG1vZGUsIGludCBvcHRpb25zLCBTdHJpbmcgaW5wdXQsIFN0cmluZyBleHBlY3QpIHsKKyAgICAgICAgICAgIHRoaXMubW9kZT1tb2RlOworICAgICAgICAgICAgdGhpcy5vcHRpb25zPW9wdGlvbnM7CisgICAgICAgICAgICB0aGlzLmlucHV0PWlucHV0OworICAgICAgICAgICAgdGhpcy5leHBlY3Q9ZXhwZWN0OworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvc2l0aW9uKCkgeworICAgICAgICBmaW5hbCBUZXN0Q29tcG9zaXRpb25DYXNlIGNhc2VzW109bmV3IFRlc3RDb21wb3NpdGlvbkNhc2VbXXsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBzcGVjaWFsIGNhc2VzIGZvciBVQVggIzE1IGJ1ZworICAgICAgICAgICAgICogc2VlIFVuaWNvZGUgUHVibGljIFJldmlldyBJc3N1ZSAjMjkKKyAgICAgICAgICAgICAqIGF0IGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmV2aWV3L3Jlc29sdmVkLXByaS5odG1sI3ByaTI5CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIG5ldyBUZXN0Q29tcG9zaXRpb25DYXNlKE5vcm1hbGl6ZXIuTkZDLCAwLCAiXHUxMTAwXHUwMzAwXHUxMTYxXHUwMzI3IiwgICAgICAiXHUxMTAwXHUwMzAwXHUxMTYxXHUwMzI3IiksCisgICAgICAgICAgICBuZXcgVGVzdENvbXBvc2l0aW9uQ2FzZShOb3JtYWxpemVyLk5GQywgMCwgIlx1MTEwMFx1MDMwMFx1MTE2MVx1MDMyN1x1MTFhOCIsIlx1MTEwMFx1MDMwMFx1MTE2MVx1MDMyN1x1MTFhOCIpLAorICAgICAgICAgICAgbmV3IFRlc3RDb21wb3NpdGlvbkNhc2UoTm9ybWFsaXplci5ORkMsIDAsICJcdWFjMDBcdTAzMDBcdTAzMjdcdTExYTgiLCAgICAgICJcdWFjMDBcdTAzMjdcdTAzMDBcdTExYTgiKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q29tcG9zaXRpb25DYXNlKE5vcm1hbGl6ZXIuTkZDLCAwLCAiXHUwYjQ3XHUwMzAwXHUwYjNlIiwgICAgICAgICAgICAiXHUwYjQ3XHUwMzAwXHUwYjNlIiksCisKKyAgICAgICAgICAgIG5ldyBUZXN0Q29tcG9zaXRpb25DYXNlKE5vcm1hbGl6ZXIuTkZDLCBOb3JtYWxpemVySW1wbC5CRUZPUkVfUFJJXzI5LCAiXHUxMTAwXHUwMzAwXHUxMTYxXHUwMzI3IiwgICAgICAgIlx1YWMwMFx1MDMwMFx1MDMyNyIpLAorICAgICAgICAgICAgbmV3IFRlc3RDb21wb3NpdGlvbkNhc2UoTm9ybWFsaXplci5ORkMsIE5vcm1hbGl6ZXJJbXBsLkJFRk9SRV9QUklfMjksICJcdTExMDBcdTAzMDBcdTExNjFcdTAzMjdcdTExYTgiLCAiXHVhYzAxXHUwMzAwXHUwMzI3IiksCisgICAgICAgICAgICBuZXcgVGVzdENvbXBvc2l0aW9uQ2FzZShOb3JtYWxpemVyLk5GQywgTm9ybWFsaXplckltcGwuQkVGT1JFX1BSSV8yOSwgIlx1YWMwMFx1MDMwMFx1MDMyN1x1MTFhOCIsICAgICAgICJcdWFjMDFcdTAzMjdcdTAzMDAiKSwKKyAgICAgICAgICAgIG5ldyBUZXN0Q29tcG9zaXRpb25DYXNlKE5vcm1hbGl6ZXIuTkZDLCBOb3JtYWxpemVySW1wbC5CRUZPUkVfUFJJXzI5LCAiXHUwYjQ3XHUwMzAwXHUwYjNlIiwgICAgICAgICAgICAgIlx1MGI0Ylx1MDMwMCIpCisKKyAgICAgICAgICAgIC8qIFRPRE86IGFkZCB0ZXN0IGNhc2VzIGZvciBVTk9STV9GQ0MgaGVyZSAoajIxNTEpICovCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nIG91dHB1dDsKKyAgICAgICAgaW50IGksIGxlbmd0aDsKKworICAgICAgICBmb3IoaT0wOyBpPGNhc2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBvdXRwdXQ9Tm9ybWFsaXplci5ub3JtYWxpemUoY2FzZXNbaV0uaW5wdXQsIGNhc2VzW2ldLm1vZGUsIGNhc2VzW2ldLm9wdGlvbnMpOworICAgICAgICAgICAgaWYoIW91dHB1dC5lcXVhbHMoY2FzZXNbaV0uZXhwZWN0KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ1bmV4cGVjdGVkIHJlc3VsdCBmb3IgY2FzZSAiK2kpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvQ29uZm9ybWFuY2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Db25mb3JtYW5jZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41OTQwYzA2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvQ29uZm9ybWFuY2VUZXN0LmphdmEKQEAgLTAsMCArMSw1MTUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RVdGlsOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCitwdWJsaWMgY2xhc3MgQ29uZm9ybWFuY2VUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgTm9ybWFsaXplciBub3JtYWxpemVyOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBDb25mb3JtYW5jZVRlc3QoKSB7CisgICAgICAgIC8vIERvZXNuJ3QgbWF0dGVyIHdoYXQgdGhlIHN0cmluZyBhbmQgbW9kZSBhcmU7IHdlJ2xsIGNoYW5nZQorICAgICAgICAvLyB0aGVtIGxhdGVyIGFzIG5lZWRlZC4KKyAgICAgICAgbm9ybWFsaXplciA9IG5ldyBOb3JtYWxpemVyKCIiLCBOb3JtYWxpemVyLk5GQywgMCk7CisgICAgfQorICAgIC8vIG1vcmUgaW50ZXJlc3RpbmcgY29uZm9ybWFuY2UgdGVzdCBjYXNlcywgbm90IGluIHRoZSB1bmljb2RlLm9yZyBOb3JtYWxpemF0aW9uVGVzdC50eHQKKyAgICBzdGF0aWMgIFN0cmluZ1tdIG1vcmVDYXNlcyA9eworICAgICAgICAvLyBNYXJrdXMgMjAwMWF1ZzMwCisgICAgICAgICIwMDYxIDAzMzIgMDMwODswMEU0IDAzMzI7MDA2MSAwMzMyIDAzMDg7MDBFNCAwMzMyOzAwNjEgMDMzMiAwMzA4OyAjIE1hcmt1cyAwIiwKKyAgICAKKyAgICAgICAgLy8gTWFya3VzIDIwMDFvY3QyNiAtIHRlc3QgZWRnZSBjYXNlIGZvciBpdGVyYXRpb246IFUrMGY3My5jYz09MCBidXQgZGVjb21wb3NpdGlvbi5sZWFkLmNjPT0xMjkKKyAgICAgICAgIjAwNjEgMDMwMSAwRjczOzAwRTEgMEY3MSAwRjcyOzAwNjEgMEY3MSAwRjcyIDAzMDE7MDBFMSAwRjcxIDBGNzI7MDA2MSAwRjcxIDBGNzIgMDMwMTsgIyBNYXJrdXMgMSIKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgY29uZm9ybWFuY2Ugb2YgTm9ybWFsaXplciB0bworICAgICAqIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvY29uZm9ybWFuY2UvRHJhZnQtVGVzdFN1aXRlLnR4dC4qIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljL1VOSURBVEEvTm9ybWFsaXphdGlvblRlc3QudHh0CisgICAgICogVGhpcyBmaWxlIG11c3QgYmUgbG9jYXRlZCBhdCB0aGUgcGF0aCBzcGVjaWZpZWQgYXMgVEVTVF9TVUlURV9GSUxFLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb25mb3JtYW5jZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIHJ1bkNvbmZvcm1hbmNlKCJ1bmljb2RlL05vcm1hbGl6YXRpb25UZXN0LnR4dCIsMCk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RDb25mb3JtYW5jZV8zXzIoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBydW5Db25mb3JtYW5jZSgidW5pY29kZS9Ob3JtYWxpemF0aW9uVGVzdC0zLjIuMC50eHQiLE5vcm1hbGl6ZXIuVU5JQ09ERV8zXzIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBydW5Db25mb3JtYW5jZShTdHJpbmcgZmlsZU5hbWUsIGludCBvcHRpb25zKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBCdWZmZXJlZFJlYWRlciBpbnB1dCA9IG51bGw7CisgICAgICAgIFN0cmluZyBsaW5lID0gbnVsbDsKKyAgICAgICAgU3RyaW5nW10gZmllbGRzID0gbmV3IFN0cmluZ1s1XTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHBhc3NDb3VudCA9IDA7CisgICAgICAgIGludCBmYWlsQ291bnQgPSAwOworICAgICAgICBVbmljb2RlU2V0IG90aGVyID0gbmV3IFVuaWNvZGVTZXQoMCwgMHgxMGZmZmYpOworICAgICAgICBpbnQgYz0wOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5wdXQgPSBUZXN0VXRpbC5nZXREYXRhUmVhZGVyKGZpbGVOYW1lKTsKKyAgICAgICAgICAgIGZvciAoaW50IGNvdW50ID0gMDs7Kytjb3VudCkgeworICAgICAgICAgICAgICAgIGxpbmUgPSBpbnB1dC5yZWFkTGluZSgpOworICAgICAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9yZWFkIHRoZSBleHRyYSB0ZXN0IGNhc2VzCisgICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ID4gbW9yZUNhc2VzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoY291bnQgPT0gbW9yZUNhc2VzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxsIGRvbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBtb3JlQ2FzZXNbY291bnQrK107CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChsaW5lLmxlbmd0aCgpID09IDApIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgLy8gRXhwZWN0IDUgY29sdW1ucyBvZiB0aGlzIGZvcm1hdDoKKyAgICAgICAgICAgICAgICAvLyAxRTBDOzFFMEM7MDA0NCAwMzIzOzFFMEM7MDA0NCAwMzIzOyAjIDxjb21tZW50cz4KKworICAgICAgICAgICAgICAgIC8vIFNraXAgY29tbWVudHMKKyAgICAgICAgICAgICAgICBpZiAobGluZS5jaGFyQXQoMCkgPT0gJyMnICB8fCBsaW5lLmNoYXJBdCgwKT09J0AnKSBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIC8vIFBhcnNlIG91dCB0aGUgZmllbGRzCisgICAgICAgICAgICAgICAgaGV4c3BsaXQobGluZSwgJzsnLCBmaWVsZHMsIGJ1Zik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGEgc2luZ2xlIGNvZGUgcG9pbnQgZnJvbSB0aGUgIm90aGVyIiBVbmljb2RlU2V0CisgICAgICAgICAgICAgICAgaWYoZmllbGRzWzBdLmxlbmd0aCgpPT1VVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KGZpZWxkc1swXSwwLCAxKSkgeworICAgICAgICAgICAgICAgICAgICBjPVVURjE2LmNoYXJBdChmaWVsZHNbMF0sMCk7IAorICAgICAgICAgICAgICAgICAgICBpZigweGFjMjA8PWMgJiYgYzw9MHhkNzNmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgYW4gZXhoYXVzdGl2ZSB0ZXN0IHJ1bjogc2tpcCBtb3N0IEhhbmd1bCBzeWxsYWJsZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGM9PTB4YWMyMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyLnJlbW92ZSgweGFjMjAsIDB4ZDczZik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvdGhlci5yZW1vdmUoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjaGVja0NvbmZvcm1hbmNlKGZpZWxkcywgbGluZSxvcHRpb25zKSkgeworICAgICAgICAgICAgICAgICAgICArK3Bhc3NDb3VudDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICArK2ZhaWxDb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKChjb3VudCAlIDEwMDApID09IDk5OSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiTGluZSAiICsgKGNvdW50KzEpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlucHV0LmNsb3NlKCk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXgyKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBleC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvdWxkbid0IHJlYWQgZmlsZSAiCisgICAgICAgICAgICAgICsgZXguZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiICIgKyBleC5nZXRNZXNzYWdlKCkKKyAgICAgICAgICAgICAgKyAiIGxpbmUgPSAiICsgbGluZQorICAgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZhaWxDb3VudCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiVG90YWw6ICIgKyBmYWlsQ291bnQgKyAiIGxpbmVzIGZhaWxlZCwgIiArCisgICAgICAgICAgICAgICAgICBwYXNzQ291bnQgKyAiIGxpbmVzIHBhc3NlZCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIlRvdGFsOiAiICsgcGFzc0NvdW50ICsgIiBsaW5lcyBwYXNzZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhlIGNvbmZvcm1hbmNlIG9mIHRoZSBnaXZlbiBsaW5lIG9mIHRoZSBVbmljb2RlCisgICAgICogbm9ybWFsaXphdGlvbiAoVVRSIDE1KSB0ZXN0IHN1aXRlIGZpbGUuICBGb3IgZWFjaCBsaW5lLAorICAgICAqIHRoZXJlIGFyZSBmaXZlIGNvbHVtbnMsIGNvcnJlc3BvbmRpbmcgdG8gZmllbGRbMF0uLmZpZWxkWzRdLgorICAgICAqCisgICAgICogVGhlIGZvbGxvd2luZyBpbnZhcmlhbnRzIG11c3QgYmUgdHJ1ZSBmb3IgYWxsIGNvbmZvcm1hbnQgaW1wbGVtZW50YXRpb25zCisgICAgICogIGMyID09IE5GQyhjMSkgPT0gTkZDKGMyKSA9PSBORkMoYzMpCisgICAgICogIGMzID09IE5GRChjMSkgPT0gTkZEKGMyKSA9PSBORkQoYzMpCisgICAgICogIGM0ID09IE5GS0MoYzEpID09IE5GS0MoYzIpID09IE5GS0MoYzMpID09IE5GS0MoYzQpID09IE5GS0MoYzUpCisgICAgICogIGM1ID09IE5GS0QoYzEpID09IE5GS0QoYzIpID09IE5GS0QoYzMpID09IE5GS0QoYzQpID09IE5GS0QoYzUpCisgICAgICoKKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIDUgY29sdW1ucworICAgICAqIEBwYXJhbSBsaW5lIHRoZSBzb3VyY2UgbGluZSBmcm9tIHRoZSB0ZXN0IHN1aXRlIGZpbGUKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgcGFzc2VzCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGNoZWNrQ29uZm9ybWFuY2UoU3RyaW5nW10gZmllbGQsIFN0cmluZyBsaW5lLCBpbnQgb3B0aW9ucykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgYm9vbGVhbiBwYXNzID0gdHJ1ZTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsgLy8gc2NyYXRjaAorICAgICAgICBTdHJpbmcgb3V0LGZjZDsKKyAgICAgICAgaW50IGk9MDsKKyAgICAgICAgZm9yIChpPTA7IGk8NTsgKytpKSB7CisgICAgICAgICAgICBpZiAoaTwzKSB7CisgICAgICAgICAgICAgICAgb3V0ID0gTm9ybWFsaXplci5ub3JtYWxpemUoZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZDLCBvcHRpb25zKTsKKyAgICAgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJDIiwgZmllbGRbaV0sIG91dCwgZmllbGRbMV0sICJjMiE9QyhjIiArIChpKzEpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GQywgYnVmLCArMSxvcHRpb25zKTsKKyAgICAgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJDKCsxKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzFdLCAiYzIhPUMoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShmaWVsZFtpXSwgTm9ybWFsaXplci5ORkMsIGJ1ZiwgLTEsb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiQygtMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsxXSwgImMyIT1DKGMiICsgKGkrMSkpOworCisgICAgICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbaV0pLCBOb3JtYWxpemVyLk5GQywgYnVmLCArMSxvcHRpb25zKTsKKyAgICAgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJDKCsxKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzFdLCAiYzIhPUMoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbaV0pLCBOb3JtYWxpemVyLk5GQywgYnVmLCAtMSxvcHRpb25zKTsKKyAgICAgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJDKC0xKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzFdLCAiYzIhPUMoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiRCIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzJdLCAiYzMhPUQoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShmaWVsZFtpXSwgTm9ybWFsaXplci5ORkQsIGJ1ZiwgKzEsb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiRCgrMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsyXSwgImMzIT1EKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0oZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZELCBidWYsIC0xLG9wdGlvbnMpOworICAgICAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIkQoLTEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbMl0sICJjMyE9RChjIiArIChpKzEpKTsKKworICAgICAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkW2ldKSwgTm9ybWFsaXplci5ORkQsIGJ1ZiwgKzEsb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiRCgrMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsyXSwgImMzIT1EKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkW2ldKSwgTm9ybWFsaXplci5ORkQsIGJ1ZiwgLTEsb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiRCgtMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFsyXSwgImMzIT1EKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNyb3NzKGZpZWxkWzJdIC8qTkZEIFN0cmluZyovLCBmaWVsZFsxXS8qTkZDIFN0cmluZyovLCBOb3JtYWxpemVyLk5GQyk7CisgICAgICAgICAgICAgICAgY3Jvc3MoZmllbGRbMV0gLypORkMgU3RyaW5nKi8sIGZpZWxkWzJdLypORkQgU3RyaW5nKi8sIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GS0Msb3B0aW9ucyk7CisgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJLQyIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzNdLCAiYzQhPUtDKGMiICsgKGkrMSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKGZpZWxkW2ldLCBOb3JtYWxpemVyLk5GS0MsIGJ1ZiwgKzEsb3B0aW9ucyk7CisgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJLRCgrMSkiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFszXSwgImM0IT1LQyhjIiArIChpKzEpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShmaWVsZFtpXSwgTm9ybWFsaXplci5ORktDLCBidWYsIC0xLG9wdGlvbnMpOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0QoLTEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbM10sICJjNCE9S0MoYyIgKyAoaSsxKSk7CisKKyAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkW2ldKSwgTm9ybWFsaXplci5ORktDLCBidWYsICsxLG9wdGlvbnMpOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0QoKzEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbM10sICJjNCE9S0MoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkW2ldKSwgTm9ybWFsaXplci5ORktDLCBidWYsIC0xLG9wdGlvbnMpOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0QoLTEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbM10sICJjNCE9S0MoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAgIAorCisgICAgICAgICAgICBvdXQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShmaWVsZFtpXSwgTm9ybWFsaXplci5ORktELG9wdGlvbnMpOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0QiLCBmaWVsZFtpXSwgb3V0LCBmaWVsZFs0XSwgImM1IT1LRChjIiArIChpKzEpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShmaWVsZFtpXSwgTm9ybWFsaXplci5ORktELCBidWYsICsxLG9wdGlvbnMpOworICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiS0QoKzEpIiwgZmllbGRbaV0sIG91dCwgZmllbGRbNF0sICJjNSE9S0QoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0oZmllbGRbaV0sIE5vcm1hbGl6ZXIuTkZLRCwgYnVmLCAtMSxvcHRpb25zKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEKC0xKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzRdLCAiYzUhPUtEKGMiICsgKGkrMSkpOworICAgICAgICAgCisgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFtpXSksIE5vcm1hbGl6ZXIuTkZLRCwgYnVmLCArMSxvcHRpb25zKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEKCsxKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzRdLCAiYzUhPUtEKGMiICsgKGkrMSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFtpXSksIE5vcm1hbGl6ZXIuTkZLRCwgYnVmLCAtMSxvcHRpb25zKTsKKyAgICAgICAgICAgIHBhc3MgJj0gYXNzZXJ0RXF1YWwoIktEKC0xKSIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzRdLCAiYzUhPUtEKGMiICsgKGkrMSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjcm9zcyhmaWVsZFs0XSAvKk5GS0QgU3RyaW5nKi8sIGZpZWxkWzNdLypORktDIFN0cmluZyovLCBOb3JtYWxpemVyLk5GS0MpOworICAgICAgICAgICAgY3Jvc3MoZmllbGRbM10gLypORktDIFN0cmluZyovLCBmaWVsZFs0XS8qTkZLRCBTdHJpbmcqLywgTm9ybWFsaXplci5ORktEKTsKKyAgCisgICAgICAgIH0KKyAgICAgICAgY29tcGFyZShmaWVsZFsxXSxmaWVsZFsyXSk7CisgICAgICAgIGNvbXBhcmUoZmllbGRbMF0sZmllbGRbMV0pOworICAgICAgICBjb21wYXJlKGZpZWxkWzBdLGZpZWxkWzJdKTsKKyAgICAgICAgIC8vIHRlc3QgcXVpY2sgY2hlY2tzCisgICAgICAgIGlmKE5vcm1hbGl6ZXIuTk8gPT0gTm9ybWFsaXplci5xdWlja0NoZWNrKGZpZWxkWzFdLCBOb3JtYWxpemVyLk5GQyxvcHRpb25zKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IHF1aWNrQ2hlY2soTkZDKHMpLCBOb3JtYWxpemVyLk5GQykgaXMgTm9ybWFsaXplci5OTyIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmKE5vcm1hbGl6ZXIuTk8gPT0gTm9ybWFsaXplci5xdWlja0NoZWNrKGZpZWxkWzJdLCBOb3JtYWxpemVyLk5GRCxvcHRpb25zKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IHF1aWNrQ2hlY2soTkZEKHMpLCBOb3JtYWxpemVyLk5GRCkgaXMgTm9ybWFsaXplci5OTyIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmKE5vcm1hbGl6ZXIuTk8gPT0gTm9ybWFsaXplci5xdWlja0NoZWNrKGZpZWxkWzNdLCBOb3JtYWxpemVyLk5GS0Msb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBxdWlja0NoZWNrKE5GS0MocyksIE5vcm1hbGl6ZXIuTkZLQykgaXMgTm9ybWFsaXplci5OTyIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmKE5vcm1hbGl6ZXIuTk8gPT0gTm9ybWFsaXplci5xdWlja0NoZWNrKGZpZWxkWzRdLCBOb3JtYWxpemVyLk5GS0Qsb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBxdWlja0NoZWNrKE5GS0QocyksIE5vcm1hbGl6ZXIuTkZLRCkgaXMgTm9ybWFsaXplci5OTyIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmKCFOb3JtYWxpemVyLmlzTm9ybWFsaXplZChmaWVsZFsxXSwgTm9ybWFsaXplci5ORkMsIG9wdGlvbnMpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogaXNOb3JtYWxpemVkKE5GQyhzKSwgTm9ybWFsaXplci5ORkMpIGlzIGZhbHNlIik7CisgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWZpZWxkWzBdLmVxdWFscyhmaWVsZFsxXSkgJiYgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoZmllbGRbMF0sIE5vcm1hbGl6ZXIuTkZDLCBvcHRpb25zKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IGlzTm9ybWFsaXplZChzLCBOb3JtYWxpemVyLk5GQykgaXMgVFJVRSIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmKCFOb3JtYWxpemVyLmlzTm9ybWFsaXplZChmaWVsZFszXSwgTm9ybWFsaXplci5ORktDLCBvcHRpb25zKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IGlzTm9ybWFsaXplZChORktDKHMpLCBOb3JtYWxpemVyLk5GS0MpIGlzIGZhbHNlIik7CisgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWZpZWxkWzBdLmVxdWFscyhmaWVsZFszXSkgJiYgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoZmllbGRbMF0sIE5vcm1hbGl6ZXIuTkZLQywgb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBpc05vcm1hbGl6ZWQocywgTm9ybWFsaXplci5ORktDKSBpcyBUUlVFIik7CisgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdCBhcGkgdGhhdCB0YWtlcyBhIGNoYXJbXQorICAgICAgICBpZighTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoZmllbGRbMV0udG9DaGFyQXJyYXkoKSwwLGZpZWxkWzFdLmxlbmd0aCgpLCBOb3JtYWxpemVyLk5GQyxvcHRpb25zKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IGlzTm9ybWFsaXplZChORkMocyksIE5vcm1hbGl6ZXIuTkZDKSBpcyBmYWxzZSIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIC8vIHRlc3QgYXBpIHRoYXQgdGFrZXMgYSBjb2RlcG9pbnQKKyAgICAgICAgaWYoIU5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKFVURjE2LmNoYXJBdChmaWVsZFsxXSwwKSwgTm9ybWFsaXplci5ORkMsb3B0aW9ucykpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBpc05vcm1hbGl6ZWQoTkZDKHMpLCBOb3JtYWxpemVyLk5GQykgaXMgZmFsc2UiKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAvLyB0ZXN0IEZDRCBxdWljayBjaGVjayBhbmQgIm1ha2VGQ0QiCisgICAgICAgIGZjZD1Ob3JtYWxpemVyLm5vcm1hbGl6ZShmaWVsZFswXSwgTm9ybWFsaXplci5GQ0QpOworICAgICAgICBpZihOb3JtYWxpemVyLk5PID09IE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmY2QsIE5vcm1hbGl6ZXIuRkNELG9wdGlvbnMpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogcXVpY2tDaGVjayhGQ0QocyksIE5vcm1hbGl6ZXIuRkNEKSBpcyBOb3JtYWxpemVyLk5PIik7CisgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgLy8gY2hlY2sgRkNEIHJldHVybiBsZW5ndGgKKyAgICAgICAgeworICAgICAgICAgICAgY2hhcltdIGZjZDIgPSBuZXcgY2hhclsgZmNkLmxlbmd0aCgpICogMiBdOworICAgICAgICAgICAgY2hhcltdIHNyYyA9IGZpZWxkWzBdLnRvQ2hhckFycmF5KCk7CisgICAgICAgICAgICBpbnQgZmNkTGVuID0gTm9ybWFsaXplci5ub3JtYWxpemUoc3JjLCAwLCBzcmMubGVuZ3RoLCBmY2QyLCBmY2QubGVuZ3RoKCksIGZjZDIubGVuZ3RoLE5vcm1hbGl6ZXIuRkNELCAwKTsKKyAgICAgICAgICAgIGlmKGZjZExlbiAhPSBmY2QubGVuZ3RoKCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJtYWtlRkNEIGRpZCBub3QgcmV0dXJuIHRoZSBjb3JyZWN0IGxlbmd0aCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKE5vcm1hbGl6ZXIuTk8gPT0gTm9ybWFsaXplci5xdWlja0NoZWNrKGZjZCwgTm9ybWFsaXplci5GQ0QsIG9wdGlvbnMpKSB7CisgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplciBlcnJvcjogcXVpY2tDaGVjayhGQ0QocyksIE5vcm1hbGl6ZXIuRkNEKSBpcyBOb3JtYWxpemVyLk5PIik7CisgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYoTm9ybWFsaXplci5OTyA9PSBOb3JtYWxpemVyLnF1aWNrQ2hlY2soZmllbGRbMl0sIE5vcm1hbGl6ZXIuRkNELCBvcHRpb25zKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IHF1aWNrQ2hlY2soTkZEKHMpLCBOb3JtYWxpemVyLkZDRCkgaXMgTm9ybWFsaXplci5OTyIpOworICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYoTm9ybWFsaXplci5OTyA9PSBOb3JtYWxpemVyLnF1aWNrQ2hlY2soZmllbGRbNF0sIE5vcm1hbGl6ZXIuRkNELCBvcHRpb25zKSkgeworICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIgZXJyb3I6IHF1aWNrQ2hlY2soTkZLRChzKSwgTm9ybWFsaXplci5GQ0QpIGlzIE5vcm1hbGl6ZXIuTk8iKTsKKyAgICAgICAgICAgIHBhc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbMF0pLCBOb3JtYWxpemVyLkZDRCwgYnVmLCArMSxvcHRpb25zKTsKKyAgICAgICAgb3V0ID0gaXRlcmF0aXZlTm9ybShuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoZmllbGRbMF0pLCBOb3JtYWxpemVyLkZDRCwgYnVmLCAtMSxvcHRpb25zKTsKKyAgICAgICAgCisgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkWzJdKSwgTm9ybWFsaXplci5GQ0QsIGJ1ZiwgKzEsb3B0aW9ucyk7CisgICAgICAgIG91dCA9IGl0ZXJhdGl2ZU5vcm0obmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGZpZWxkWzJdKSwgTm9ybWFsaXplci5GQ0QsIGJ1ZiwgLTEsb3B0aW9ucyk7CisgICAgICAgIAorICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFs0XSksIE5vcm1hbGl6ZXIuRkNELCBidWYsICsxLG9wdGlvbnMpOworICAgICAgICBvdXQgPSBpdGVyYXRpdmVOb3JtKG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihmaWVsZFs0XSksIE5vcm1hbGl6ZXIuRkNELCBidWYsIC0xLG9wdGlvbnMpOworICAgICAgICAKKyAgICAgICAgb3V0PU5vcm1hbGl6ZXIubm9ybWFsaXplKGZjZCwgTm9ybWFsaXplci5ORkQpOworICAgICAgICBpZighb3V0LmVxdWFscyhmaWVsZFsyXSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyIGVycm9yOiBORkQoRkNEKHMpKSE9TkZEKHMpIik7CisgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgIH0gICAgCisgICAgICAgIGlmICghcGFzcykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBsaW5lKTsKKyAgICAgICAgfSAgICAgCisgICAgICAgIGlmKGZpZWxkWzBdIT1maWVsZFsyXSkgeworICAgICAgICAgICAgLy8gdHdvIHN0cmluZ3MgdGhhdCBhcmUgY2Fub25pY2FsbHkgZXF1aXZhbGVudCBtdXN0IHRlc3QKKyAgICAgICAgICAgIC8vIGVxdWFsIHVuZGVyIGEgY2Fub25pY2FsIGNhc2VsZXNzIG1hdGNoCisgICAgICAgICAgICAvLyBzZWUgVUFYICMyMSBDYXNlIE1hcHBpbmdzIGFuZCBKaXR0ZXJidWcgMjAyMSBhbmQKKyAgICAgICAgICAgIC8vIFVuaWNvZGUgVGVjaG5pY2FsIENvbW1pdHRlZSBtZWV0aW5nIGNvbnNlbnN1cyA5Mi1DMzEKKyAgICAgICAgICAgIGludCByYzsKKyAgICAgICAgICAgIGlmKChyYyA9IE5vcm1hbGl6ZXIuY29tcGFyZShmaWVsZFswXSwgZmllbGRbMl0sIChvcHRpb25zPDxOb3JtYWxpemVyLkNPTVBBUkVfTk9STV9PUFRJT05TX1NISUZUKXxOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpKSE9MCl7CisgICAgICAgICAgICAgICBlcnJsbigiTm9ybWFsaXplci5jb21wYXJlKG9yaWdpbmFsLCBORkQsIGNhc2UtaW5zZW5zaXRpdmUpIHJldHVybmVkICIrcmMrIiBpbnN0ZWFkIG9mIDAgZm9yIGVxdWFsIik7CisgICAgICAgICAgICAgICBwYXNzPWZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcGFzczsKKyAgICB9CisgICAgLy8gdHdvIHN0cmluZ3MgdGhhdCBhcmUgY2Fub25pY2FsbHkgZXF1aXZhbGVudCBtdXN0IHRlc3QKKyAgICAvLyBlcXVhbCB1bmRlciBhIGNhbm9uaWNhbCBjYXNlbGVzcyBtYXRjaAorICAgIC8vIHNlZSBVQVggIzIxIENhc2UgTWFwcGluZ3MgYW5kIEppdHRlcmJ1ZyAyMDIxIGFuZAorICAgIC8vIFVuaWNvZGUgVGVjaG5pY2FsIENvbW1pdHRlZSBtZWV0aW5nIGNvbnNlbnN1cyA5Mi1DMzEKKyAgICBwcml2YXRlIHZvaWQgY29tcGFyZShTdHJpbmcgczEsIFN0cmluZyBzMil7CisgICAgICAgIGlmKHMxLmxlbmd0aCgpPT0xICYmIHMyLmxlbmd0aCgpPT0xKXsKKyAgICAgICAgICAgIGlmKE5vcm1hbGl6ZXIuY29tcGFyZShVVEYxNi5jaGFyQXQoczEsMCksVVRGMTYuY2hhckF0KHMyLDApLE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkhPTApeworICAgICAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyLmNvbXBhcmUoaW50LGludCkgZmFpbGVkIGZvciBzMTogIgorICAgICAgICAgICAgICAgICAgICAgICAgK1V0aWxpdHkuaGV4KHMxKSArICIgczI6ICIgKyBVdGlsaXR5LmhleChzMikpOworICAgICAgICAgICAgfSAgICAKKyAgICAgICAgfQorICAgICAgICBpZihzMS5sZW5ndGgoKT09MSAmJiBzMi5sZW5ndGgoKT4xKXsKKyAgICAgICAgICAgIGlmKE5vcm1hbGl6ZXIuY29tcGFyZShVVEYxNi5jaGFyQXQoczEsMCksczIsTm9ybWFsaXplci5DT01QQVJFX0lHTk9SRV9DQVNFKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIk5vcm1hbGl6ZXIuY29tcGFyZShpbnQsU3RyaW5nKSBmYWlsZWQgZm9yIHMxOiAiCisgICAgICAgICAgICAgICAgICAgICAgICArVXRpbGl0eS5oZXgoczEpICsgIiBzMjogIiArIFV0aWxpdHkuaGV4KHMyKSk7CisgICAgICAgICAgICB9ICAgIAorICAgICAgICB9CisgICAgICAgIGlmKHMxLmxlbmd0aCgpPjEgJiYgczIubGVuZ3RoKCk+MSl7CisgICAgICAgICAgICAvLyBUT0RPOiBSZS1lbmFibGUgdGhpcyB0ZXN0cyBhZnRlciBVVEMgZml4ZXMgVUFYIDIxCisgICAgICAgICAgICBpZihOb3JtYWxpemVyLmNvbXBhcmUoczEudG9DaGFyQXJyYXkoKSxzMi50b0NoYXJBcnJheSgpLE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkhPTApeworICAgICAgICAgICAgICAgIGVycmxuKCJOb3JtYWxpemVyLmNvbXBhcmUoY2hhcltdLGNoYXJbXSkgZmFpbGVkIGZvciBzMTogIgorICAgICAgICAgICAgICAgICAgICAgICAgK1V0aWxpdHkuaGV4KHMxKSArICIgczI6ICIgKyBVdGlsaXR5LmhleChzMikpOworICAgICAgICAgICAgfSAgICAKKyAgICAgICAgfSAgICAKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNyb3NzKFN0cmluZyBzMSwgU3RyaW5nIHMyLE5vcm1hbGl6ZXIuTW9kZSBtb2RlKXsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHMxLG1vZGUpOworICAgICAgICBpZighcmVzdWx0LmVxdWFscyhzMikpeworICAgICAgICAgICAgZXJybG4oImNyb3NzIHRlc3QgZmFpbGVkIHMxOiAiICsgVXRpbGl0eS5oZXgoczEpICsgIiBzMjogIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICtVdGlsaXR5LmhleChzMikpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIERvIGEgbm9ybWFsaXphdGlvbiB1c2luZyB0aGUgaXRlcmF0aXZlIEFQSSBpbiB0aGUgZ2l2ZW4gZGlyZWN0aW9uLgorICAgICAqIEBwYXJhbSBidWYgc2NyYXRjaCBidWZmZXIKKyAgICAgKiBAcGFyYW0gZGlyIGVpdGhlciArMSBvciAtMQorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGl0ZXJhdGl2ZU5vcm0oU3RyaW5nIHN0ciwgTm9ybWFsaXplci5Nb2RlIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmLCBpbnQgZGlyICxpbnQgb3B0aW9ucykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbm9ybWFsaXplci5zZXRUZXh0KHN0cik7CisgICAgICAgIG5vcm1hbGl6ZXIuc2V0TW9kZShtb2RlKTsKKyAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgbm9ybWFsaXplci5zZXRPcHRpb24oLTEsIGZhbHNlKTsgICAgICAvLyByZXNldCBhbGwgb3B0aW9ucworICAgICAgICBub3JtYWxpemVyLnNldE9wdGlvbihvcHRpb25zLCB0cnVlKTsgIC8vIHNldCBkZXNpcmVkIG9wdGlvbnMKKworICAgICAgICBpbnQgY2g7CisgICAgICAgIGlmIChkaXIgPiAwKSB7CisgICAgICAgICAgICBmb3IgKGNoID0gbm9ybWFsaXplci5maXJzdCgpOyBjaCAhPSBOb3JtYWxpemVyLkRPTkU7CisgICAgICAgICAgICAgICAgIGNoID0gbm9ybWFsaXplci5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKFVURjE2LnZhbHVlT2YoY2gpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoY2ggPSBub3JtYWxpemVyLmxhc3QoKTsgY2ggIT0gTm9ybWFsaXplci5ET05FOworICAgICAgICAgICAgICAgICBjaCA9IG5vcm1hbGl6ZXIucHJldmlvdXMoKSkgeworICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQoMCwgVVRGMTYudmFsdWVPZihjaCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRG8gYSBub3JtYWxpemF0aW9uIHVzaW5nIHRoZSBpdGVyYXRpdmUgQVBJIGluIHRoZSBnaXZlbiBkaXJlY3Rpb24uCisgICAgICogQHBhcmFtIHN0ciBhIEphdmEgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IKKyAgICAgKiBAcGFyYW0gYnVmIHNjcmF0Y2ggYnVmZmVyCisgICAgICogQHBhcmFtIGRpciBlaXRoZXIgKzEgb3IgLTEKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBpdGVyYXRpdmVOb3JtKFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHN0ciwgTm9ybWFsaXplci5Nb2RlIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmLCBpbnQgZGlyLGludCBvcHRpb25zKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBub3JtYWxpemVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgbm9ybWFsaXplci5zZXRNb2RlKG1vZGUpOworICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICBub3JtYWxpemVyLnNldE9wdGlvbigtMSwgZmFsc2UpOyAgICAgIC8vIHJlc2V0IGFsbCBvcHRpb25zCisgICAgICAgIG5vcm1hbGl6ZXIuc2V0T3B0aW9uKG9wdGlvbnMsIHRydWUpOyAgLy8gc2V0IGRlc2lyZWQgb3B0aW9ucworCisgICAgICAgIGludCBjaDsKKyAgICAgICAgaWYgKGRpciA+IDApIHsKKyAgICAgICAgICAgIGZvciAoY2ggPSBub3JtYWxpemVyLmZpcnN0KCk7IGNoICE9IE5vcm1hbGl6ZXIuRE9ORTsKKyAgICAgICAgICAgICAgICAgY2ggPSBub3JtYWxpemVyLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoVVRGMTYudmFsdWVPZihjaCkpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZm9yIChjaCA9IG5vcm1hbGl6ZXIubGFzdCgpOyBjaCAhPSBOb3JtYWxpemVyLkRPTkU7CisgICAgICAgICAgICAgICAgIGNoID0gbm9ybWFsaXplci5wcmV2aW91cygpKSB7CisgICAgICAgICAgICAgICAgYnVmLmluc2VydCgwLCBVVEYxNi52YWx1ZU9mKGNoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBvcCBuYW1lIG9mIG5vcm1hbGl6YXRpb24gZm9ybSwgZS5nLiwgIktDIgorICAgICAqIEBwYXJhbSBzIHN0cmluZyBiZWluZyBub3JtYWxpemVkCisgICAgICogQHBhcmFtIGdvdCB2YWx1ZSByZWNlaXZlZAorICAgICAqIEBwYXJhbSBleHAgZXhwZWN0ZWQgdmFsdWUKKyAgICAgKiBAcGFyYW0gbXNnIGRlc2NyaXB0aW9uIG9mIHRoaXMgdGVzdAorICAgICAqIEByZXR1cm5zIHRydWUgaWYgZ290ID09IGV4cAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBhc3NlcnRFcXVhbChTdHJpbmcgb3AsIFN0cmluZyBzLCBTdHJpbmcgZ290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwLCBTdHJpbmcgbXNnKSB7CisgICAgICAgIGlmIChleHAuZXF1YWxzKGdvdCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVycmxuKCgiICAgICAgIiArIG1zZyArICIpICIgKyBvcCArICIoIiArIHMgKyAiKT0iICsgaGV4KGdvdCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBleHAuICIgKyBoZXgoZXhwKSkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3BsaXQgYSBzdHJpbmcgaW50byBwaWVjZXMgYmFzZWQgb24gdGhlIGdpdmVuIGRlbGltaXRlcgorICAgICAqIGNoYXJhY3Rlci4gIFRoZW4sIHBhcnNlIHRoZSByZXN1bHRhbnQgZmllbGRzIGZyb20gaGV4IGludG8KKyAgICAgKiBjaGFyYWN0ZXJzLiAgVGhhdCBpcywgIjAwNDAgMDQwMDswQzAwOzA4OTkiIC0+IG5ldyBTdHJpbmdbXSB7CisgICAgICogIlx1MDA0MFx1MDQwMCIsICJcdTBDMDAiLCAiXHUwODk5IiB9LiAgVGhlIG91dHB1dCBpcyBhc3N1bWVkIHRvCisgICAgICogYmUgb2YgdGhlIHByb3BlciBsZW5ndGggYWxyZWFkeSwgYW5kIGV4YWN0bHkgb3V0cHV0Lmxlbmd0aAorICAgICAqIGZpZWxkcyBhcmUgcGFyc2VkLiAgSWYgdGhlcmUgYXJlIHRvbyBmZXcgYW4gZXhjZXB0aW9uIGlzCisgICAgICogdGhyb3duLiAgSWYgdGhlcmUgYXJlIHRvbyBtYW55IHRoZSBleHRyYXMgYXJlIGlnbm9yZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYnVmIHNjcmF0Y2ggYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBoZXhzcGxpdChTdHJpbmcgcywgY2hhciBkZWxpbWl0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBvdXRwdXQsIFN0cmluZ0J1ZmZlciBidWYpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGludCBwb3MgPSAwOworICAgICAgICBmb3IgKGk9MDsgaTxvdXRwdXQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGludCBkZWxpbSA9IHMuaW5kZXhPZihkZWxpbWl0ZXIsIHBvcyk7CisgICAgICAgICAgICBpZiAoZGVsaW0gPCAwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTWlzc2luZyBmaWVsZCBpbiAiICsgcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBPdXIgZmllbGQgaXMgZnJvbSBwb3MuLmRlbGltLTEuCisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgdG9IZXggPSBzLnN1YnN0cmluZyhwb3MsZGVsaW0pOworICAgICAgICAgICAgcG9zID0gZGVsaW07CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgaW50IGxlbiA9IHRvSGV4Lmxlbmd0aCgpOworICAgICAgICAgICAgd2hpbGUoaW5kZXg8IGxlbil7CisgICAgICAgICAgICAgICAgaWYodG9IZXguY2hhckF0KGluZGV4KT09JyAnKXsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgaW50IHNwYWNlUG9zID0gdG9IZXguaW5kZXhPZignICcsIGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoc3BhY2VQb3M9PS0xKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZEludChidWYsdG9IZXguc3Vic3RyaW5nKGluZGV4LGxlbikscyk7CisgICAgICAgICAgICAgICAgICAgICAgICBzcGFjZVBvcyA9IGxlbjsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRJbnQoYnVmLHRvSGV4LnN1YnN0cmluZyhpbmRleCwgc3BhY2VQb3MpLHMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3BhY2VQb3MrMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPCAxKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRW1wdHkgZmllbGQgIiArIGkgKyAiIGluICIgKyBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dHB1dFtpXSA9IGJ1Zi50b1N0cmluZygpOworICAgICAgICAgICAgKytwb3M7IC8vIFNraXAgb3ZlciBkZWxpbQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhcHBlbmRJbnQoU3RyaW5nQnVmZmVyIGJ1ZiwgU3RyaW5nIHN0clRvSGV4LCBTdHJpbmcgcyl7CisgICAgICAgIGludCBoZXggPSBJbnRlZ2VyLnBhcnNlSW50KHN0clRvSGV4LDE2KTsKKyAgICAgICAgaWYgKGhleCA8IDAgKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPdXQgb2YgcmFuZ2UgaGV4ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGV4ICsgIiBpbiAiICsgcyk7CisgICAgICAgIH1lbHNlIGlmIChoZXggPiAweEZGRkYpeworICAgICAgICAgICAgYnVmLmFwcGVuZCgoY2hhcikoKGhleD4+MTApKzB4ZDdjMCkpOyAKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGNoYXIpKChoZXgmMHgzZmYpfDB4ZGMwMCkpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGNoYXIpIGhleCk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgICAgICAKKyAgICAvLyBTcGVjaWZpYyB0ZXN0cyBmb3IgZGVidWdnaW5nLiAgVGhlc2UgYXJlIGdlbmVyYWxseSBmYWlsdXJlcworICAgIC8vIHRha2VuIGZyb20gdGhlIGNvbmZvcm1hbmNlIGZpbGUsIGJ1dCBjdWxsZWQgb3V0IHRvIG1ha2UKKyAgICAvLyBkZWJ1Z2dpbmcgZWFzaWVyLiAgVGhlc2UgY2FuIGJlIGVsaW1pbmF0ZWQgd2l0aG91dCBhZmZlY3RpbmcKKyAgICAvLyBjb3ZlcmFnZS4KKworICAgIHB1YmxpYyB2b2lkIF9oaWRlVGVzdENhc2U2KGludCBvcHRpb25zKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBfdGVzdE9uZUxpbmUoIjAzODU7MDM4NTswMEE4IDAzMDE7MDAyMCAwMzA4IDAzMDE7MDAyMCAwMzA4IDAzMDE7IixvcHRpb25zKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBfdGVzdE9uZUxpbmUoU3RyaW5nIGxpbmUsaW50IG9wdGlvbnMpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ1tdIGZpZWxkcyA9IG5ldyBTdHJpbmdbNV07CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIC8vIFBhcnNlIG91dCB0aGUgZmllbGRzCisgICAgICAgIGhleHNwbGl0KGxpbmUsICc7JywgZmllbGRzLCBidWYpOworICAgICAgICBjaGVja0NvbmZvcm1hbmNlKGZpZWxkcywgbGluZSxvcHRpb25zKTsKKyAgICB9CisgICAgCisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0ludEhhc2h0YWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvSW50SGFzaHRhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODg5YmU2YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0ludEhhc2h0YWJsZS5qYXZhCkBAIC0wLDAgKzEsMzggQEAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDAzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBVbmljb2RlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBJbnRlZ2VyIGhhc2ggdGFibGUuIFVzZXMgSmF2YSBIYXNodGFibGUgZm9yIG5vdy4KKyAqIEBhdXRob3IgTWFyayBEYXZpcworICovCisgCitwdWJsaWMgY2xhc3MgSW50SGFzaHRhYmxlIHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMyBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBVbmljb2RlLCBJbmMuIjsKKyAgICAKKyAgICBwdWJsaWMgSW50SGFzaHRhYmxlIChpbnQgZGVmYXVsdFZhbHVlKSB7CisgICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBwdXQoaW50IGtleSwgaW50IHZhbHVlKSB7CisgICAgICAgIGlmICh2YWx1ZSA9PSBkZWZhdWx0VmFsdWUpIHsKKyAgICAgICAgICAgIHRhYmxlLnJlbW92ZShuZXcgSW50ZWdlcihrZXkpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRhYmxlLnB1dChuZXcgSW50ZWdlcihrZXkpLCBuZXcgSW50ZWdlcih2YWx1ZSkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0KGludCBrZXkpIHsKKyAgICAgICAgT2JqZWN0IHZhbHVlID0gdGFibGUuZ2V0KG5ldyBJbnRlZ2VyKGtleSkpOworICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgcmV0dXJuICgoSW50ZWdlcil2YWx1ZSkuaW50VmFsdWUoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgZGVmYXVsdFZhbHVlOworICAgIHByaXZhdGUgSGFzaHRhYmxlIHRhYmxlID0gbmV3IEhhc2h0YWJsZSgpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0ludFN0cmluZ0hhc2h0YWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvSW50U3RyaW5nSGFzaHRhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Y3ZGUyMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0ludFN0cmluZ0hhc2h0YWJsZS5qYXZhCkBAIC0wLDAgKzEsMzggQEAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDAzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBVbmljb2RlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBJbnRlZ2VyLVN0cmluZyBoYXNoIHRhYmxlLiBVc2VzIEphdmEgSGFzaHRhYmxlIGZvciBub3cuCisgKiBAYXV0aG9yIE1hcmsgRGF2aXMKKyAqLworIAorcHVibGljIGNsYXNzIEludFN0cmluZ0hhc2h0YWJsZSB7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChDKSAxOTk4LTIwMDMgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgVW5pY29kZSwgSW5jLiI7CisgICAgCisgICAgcHVibGljIEludFN0cmluZ0hhc2h0YWJsZSAoU3RyaW5nIGRlZmF1bHRWYWx1ZSkgeworICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcHV0KGludCBrZXksIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBpZiAodmFsdWUgPT0gZGVmYXVsdFZhbHVlKSB7CisgICAgICAgICAgICB0YWJsZS5yZW1vdmUobmV3IEludGVnZXIoa2V5KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0YWJsZS5wdXQobmV3IEludGVnZXIoa2V5KSwgdmFsdWUpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0KGludCBrZXkpIHsKKyAgICAgICAgT2JqZWN0IHZhbHVlID0gdGFibGUuZ2V0KG5ldyBJbnRlZ2VyKGtleSkpOworICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgcmV0dXJuIChTdHJpbmcpdmFsdWU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGRlZmF1bHRWYWx1ZTsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSB0YWJsZSA9IG5ldyBIYXNodGFibGUoKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Mb25nSGFzaHRhYmxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Mb25nSGFzaHRhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM1ZWIwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL0xvbmdIYXNodGFibGUuamF2YQpAQCAtMCwwICsxLDQwIEBACitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogVW5pY29kZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogSGFzaHRhYmxlIHN0b3JpbmcgaW50cyBhZGRyZXNzZWQgYnkgbG9uZ3MuIFVzZWQKKyAqIGZvciBzdG9yaW5nIG9mIGNvbXBvc2l0aW9uIGRhdGEuIFVzZXMgSmF2YSBIYXNodGFibGUKKyAqIGZvciBub3cuCisgKiBAYXV0aG9yIFZsYWRpbWlyIFdlaW5zdGVpbgorICovCitwdWJsaWMgY2xhc3MgTG9uZ0hhc2h0YWJsZSB7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChDKSAyMDAyLTIwMDMgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgVW5pY29kZSwgSW5jLiI7CisgICAgCisgICAgcHVibGljIExvbmdIYXNodGFibGUgKGludCBkZWZhdWx0VmFsdWUpIHsKKyAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHB1dChsb25nIGtleSwgaW50IHZhbHVlKSB7CisgICAgICAgIGlmICh2YWx1ZSA9PSBkZWZhdWx0VmFsdWUpIHsKKyAgICAgICAgICAgIHRhYmxlLnJlbW92ZShuZXcgTG9uZyhrZXkpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRhYmxlLnB1dChuZXcgTG9uZyhrZXkpLCBuZXcgSW50ZWdlcih2YWx1ZSkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0KGxvbmcga2V5KSB7CisgICAgICAgIE9iamVjdCB2YWx1ZSA9IHRhYmxlLmdldChuZXcgTG9uZyhrZXkpKTsKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgICAgIHJldHVybiAoKEludGVnZXIpdmFsdWUpLmludFZhbHVlKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50IGRlZmF1bHRWYWx1ZTsKKyAgICBwcml2YXRlIEhhc2h0YWJsZSB0YWJsZSA9IG5ldyBIYXNodGFibGUoKTsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvTm9ybWFsaXphdGlvbk1vbmtleVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6YXRpb25Nb25rZXlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM2YmFjOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6YXRpb25Nb25rZXlUZXN0LmphdmEKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjsKKworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyQ2F0ZWdvcnk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKK3B1YmxpYyBjbGFzcyBOb3JtYWxpemF0aW9uTW9ua2V5VGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBpbnQgbG9vcENvdW50ID0gMTAwOworICAgIGludCBtYXhDaGFyQ291bnQgPSAyMDsKKyAgICBpbnQgbWF4Q29kZVBvaW50ID0gMHgxMGZmZmY7CisgICAgUmFuZG9tIHJhbmRvbSA9IG51bGw7IC8vIGluaXRpYWxpemVkIGluIGdldFRlc3RTb3VyY2UKKyAgICBVbmljb2RlTm9ybWFsaXplciB1bmljb2RlX05GRDsKKyAgICBVbmljb2RlTm9ybWFsaXplciB1bmljb2RlX05GQzsKKyAgICBVbmljb2RlTm9ybWFsaXplciB1bmljb2RlX05GS0Q7CisgICAgVW5pY29kZU5vcm1hbGl6ZXIgdW5pY29kZV9ORktDOworICAgIAorICAgIHB1YmxpYyBOb3JtYWxpemF0aW9uTW9ua2V5VGVzdCgpIHsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBOb3JtYWxpemF0aW9uTW9ua2V5VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdE5vcm1hbGl6ZSgpIHsKKyAgICAgICAgaWYgKHVuaWNvZGVfTkZEID09IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdW5pY29kZV9ORkQgPSBuZXcgVW5pY29kZU5vcm1hbGl6ZXIoVW5pY29kZU5vcm1hbGl6ZXIuRCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgdW5pY29kZV9ORkMgPSBuZXcgVW5pY29kZU5vcm1hbGl6ZXIoVW5pY29kZU5vcm1hbGl6ZXIuQywgdHJ1ZSk7CisgICAgICAgICAgICAgICAgdW5pY29kZV9ORktEID0gbmV3IFVuaWNvZGVOb3JtYWxpemVyKFVuaWNvZGVOb3JtYWxpemVyLktELCB0cnVlKTsKKyAgICAgICAgICAgICAgICB1bmljb2RlX05GS0MgPSBuZXcgVW5pY29kZU5vcm1hbGl6ZXIoVW5pY29kZU5vcm1hbGl6ZXIuS0MsIHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG1zZyA9ICJOb3JtYWxpemF0aW9uIHRlc3RzIGNvdWxkIG5vdCBiZSBydW46ICIgKyBlLmdldE1lc3NhZ2UoKTsKKyAgICAgICAgICAgICAgICBpZiAoaXNNb2R1bGFyQnVpbGQoKSkgeworICAgICAgICAgICAgICAgICAgICB3YXJubG4obXNnKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbihtc2cpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIHdoaWxlIChpIDwgbG9vcENvdW50KSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gZ2V0VGVzdFNvdXJjZSgpOworICAgICAgICAgICAgbG9nbG4oIlRlc3Qgc291cmNlOiIgKyBzb3VyY2UpOworICAgICAgICAgICAgLy9ORkQKKyAgICAgICAgICAgIFN0cmluZyB1bmNvZGVOb3JtID0gdW5pY29kZV9ORkQubm9ybWFsaXplKHNvdXJjZSk7CisgICAgICAgICAgICBTdHJpbmcgaWN1Tm9ybSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZSwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgbG9nbG4oIlx0TkZEKFVuaWNvZGUpOiAiICsgdW5jb2RlTm9ybSk7CisgICAgICAgICAgICBsb2dsbigiXHRORkQoaWN1NGopICA6ICIgKyBpY3VOb3JtKTsKKyAgICAgICAgICAgIGlmICghdW5jb2RlTm9ybS5lcXVhbHMoaWN1Tm9ybSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTkZEOiBVbmljb2RlIHNhbXBsZSBvdXRwdXQgPT4gIiArIHVuY29kZU5vcm0gKyAiOyBpY3U0aiBvdXRwdXQ9PiAiICsgaWN1Tm9ybSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL05GQworICAgICAgICAgICAgdW5jb2RlTm9ybSA9IHVuaWNvZGVfTkZDLm5vcm1hbGl6ZShzb3VyY2UpOworICAgICAgICAgICAgaWN1Tm9ybSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZSwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgbG9nbG4oIlx0TkZDKFVuaWNvZGUpOiAiICsgdW5jb2RlTm9ybSk7CisgICAgICAgICAgICBsb2dsbigiXHRORkMoaWN1NGopICA6ICIgKyBpY3VOb3JtKTsKKyAgICAgICAgICAgIGlmICghdW5jb2RlTm9ybS5lcXVhbHMoaWN1Tm9ybSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTkZDOiBVbmljb2RlIHNhbXBsZSBvdXRwdXQgPT4gIiArIHVuY29kZU5vcm0gKyAiOyBpY3U0aiBvdXRwdXQ9PiAiICsgaWN1Tm9ybSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL05GS0QKKyAgICAgICAgICAgIHVuY29kZU5vcm0gPSB1bmljb2RlX05GS0Qubm9ybWFsaXplKHNvdXJjZSk7CisgICAgICAgICAgICBpY3VOb3JtID0gTm9ybWFsaXplci5ub3JtYWxpemUoc291cmNlLCBOb3JtYWxpemVyLk5GS0QpOworICAgICAgICAgICAgbG9nbG4oIlx0TkZLRChVbmljb2RlKTogIiArIHVuY29kZU5vcm0pOworICAgICAgICAgICAgbG9nbG4oIlx0TkZLRChpY3U0aikgIDogIiArIGljdU5vcm0pOworICAgICAgICAgICAgaWYgKCF1bmNvZGVOb3JtLmVxdWFscyhpY3VOb3JtKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJORktEOiBVbmljb2RlIHNhbXBsZSBvdXRwdXQgPT4gIiArIHVuY29kZU5vcm0gKyAiOyBpY3U0aiBvdXRwdXQ9PiAiICsgaWN1Tm9ybSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL05GS0MKKyAgICAgICAgICAgIHVuY29kZU5vcm0gPSB1bmljb2RlX05GS0Mubm9ybWFsaXplKHNvdXJjZSk7CisgICAgICAgICAgICBpY3VOb3JtID0gTm9ybWFsaXplci5ub3JtYWxpemUoc291cmNlLCBOb3JtYWxpemVyLk5GS0MpOworICAgICAgICAgICAgbG9nbG4oIlx0TkZLQyhVbmljb2RlKTogIiArIHVuY29kZU5vcm0pOworICAgICAgICAgICAgbG9nbG4oIlx0TkZLQyhpY3U0aikgIDogIiArIGljdU5vcm0pOworICAgICAgICAgICAgaWYgKCF1bmNvZGVOb3JtLmVxdWFscyhpY3VOb3JtKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJORktDOiBVbmljb2RlIHNhbXBsZSBvdXRwdXQgPT4gIiArIHVuY29kZU5vcm0gKyAiOyBpY3U0aiBvdXRwdXQ9PiAiICsgaWN1Tm9ybSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGkrKzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBTdHJpbmcgZ2V0VGVzdFNvdXJjZSgpIHsKKyAgICBpZiAocmFuZG9tID09IG51bGwpIHsKKyAgICAgICAgcmFuZG9tID0gY3JlYXRlUmFuZG9tKCk7IC8vIHVzZSB0ZXN0IGZyYW1ld29yaydzIHJhbmRvbSBzZWVkCisgICAgfQorICAgICAgICBTdHJpbmcgc291cmNlID0gIiI7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgd2hpbGUgKGkgPCAocmFuZG9tLm5leHRJbnQobWF4Q2hhckNvdW50KSArIDEpKSB7CisgICAgICAgICAgICBpbnQgY29kZXBvaW50ID0gcmFuZG9tLm5leHRJbnQobWF4Q29kZVBvaW50KTsKKyAgICAgICAgICAgIC8vRWxpbWF0ZSB1bmFzc2lnbmVkIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIHdoaWxlIChVQ2hhcmFjdGVyLmdldFR5cGUoY29kZXBvaW50KSA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVU5BU1NJR05FRCkgeworICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9IHJhbmRvbS5uZXh0SW50KG1heENvZGVQb2ludCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzb3VyY2UgPSBzb3VyY2UgKyBVVEYxNi52YWx1ZU9mKGNvZGVwb2ludCk7CisgICAgICAgICAgICBpKys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Ob3JtYWxpemVyQnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvTm9ybWFsaXplckJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjhmZjlhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvTm9ybWFsaXplckJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDUwNyBAQAorLyoqCisgKiBCdWlsZHMgdGhlIG5vcm1hbGl6YXRpb24gdGFibGVzLiBUaGlzIGlzIGEgc2VwYXJhdGUgY2xhc3Mgc28gdGhhdCBpdAorICogY2FuIGJlIHVubG9hZGVkIG9uY2Ugbm90IG5lZWRlZC48YnI+CisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogVW5pY29kZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLjxicj4KKyAqIFRoZSBVbmljb2RlIENvbnNvcnRpdW0gbWFrZXMgbm8gZXhwcmVzc2VkIG9yIGltcGxpZWQgd2FycmFudHkgb2YgYW55CisgKiBraW5kLCBhbmQgYXNzdW1lcyBubyBsaWFiaWxpdHkgZm9yIGVycm9ycyBvciBvbWlzc2lvbnMuCisgKiBObyBsaWFiaWxpdHkgaXMgYXNzdW1lZCBmb3IgaW5jaWRlbnRhbCBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzCisgKiBpbiBjb25uZWN0aW9uIHdpdGggb3IgYXJpc2luZyBvdXQgb2YgdGhlIHVzZSBvZiB0aGUgaW5mb3JtYXRpb24gaGVyZS4KKyAqIEBhdXRob3IgTWFyayBEYXZpcworICogVXBkYXRlcyBmb3Igc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50czoKKyAqIFZsYWRpbWlyIFdlaW5zdGVpbiAmIE1hcmt1cyBTY2hlcmVyCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5ub3JtYWxpemVyOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLnV0aWwuQml0U2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdFV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVVRGMTZVdGlsOworCitjbGFzcyBOb3JtYWxpemVyQnVpbGRlciB7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPSAiQ29weXJpZ2h0IChDKSAxOTk4LTIwMDMgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgVW5pY29kZSwgSW5jLiI7CisKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIGZsYWdzCisgICAgICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBHRU5FUkFUSU5HID0gZmFsc2U7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudHMgZm9yIHRoZSBkYXRhIGZpbGUgdmVyc2lvbiB0byB1c2UuCisgICAgICovCisgICAgLypzdGF0aWMgZmluYWwgYm9vbGVhbiBORVdfVkVSU0lPTiA9IHRydWU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERJUiA9ICJEOlxcVW5pY29kZURhdGFcXCIgKyAoTkVXX1ZFUlNJT04gPyAiV29ya2luZ0dyb3Vwc1xcIiA6ICIiKTsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgVU5JREFUQV9WRVJTSU9OID0gTkVXX1ZFUlNJT04gPyAiMy4wLjBkMTIiIDogIjIuMS45IjsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIEVYQ0xVU0lPTlNfVkVSU0lPTiA9IE5FV19WRVJTSU9OID8gIjFkNCIgOiAiMSI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBVTklDT0RFX0RBVEEgPSBESVIgKyAiVW5pY29kZURhdGEtIiArIFVOSURBVEFfVkVSU0lPTiArICIudHh0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDT01QT1NJVElPTl9FWENMVVNJT05TID0gRElSICsgIkNvbXBvc2l0aW9uRXhjbHVzaW9ucy0iICsgRVhDTFVTSU9OU19WRVJTSU9OICsiLnR4dCI7CisgICAgKi8KKworICAgIC8qKgorICAgICAqIENhbGxlZCBleGFjdGx5IG9uY2UgYnkgTm9ybWFsaXplckRhdGEgdG8gYnVpbGQgdGhlIHN0YXRpYyBkYXRhCisgICAgICovCisKKyAgICBzdGF0aWMgTm9ybWFsaXplckRhdGEgYnVpbGQoYm9vbGVhbiBmdWxsRGF0YSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgSW50SGFzaHRhYmxlIGNhbm9uaWNhbENsYXNzID0gbmV3IEludEhhc2h0YWJsZSgwKTsKKyAgICAgICAgICAgIEludFN0cmluZ0hhc2h0YWJsZSBkZWNvbXBvc2UgPSBuZXcgSW50U3RyaW5nSGFzaHRhYmxlKG51bGwpOworICAgICAgICAgICAgTG9uZ0hhc2h0YWJsZSBjb21wb3NlID0gbmV3IExvbmdIYXNodGFibGUoTm9ybWFsaXplckRhdGEuTk9UX0NPTVBPU0lURSk7CisgICAgICAgICAgICBCaXRTZXQgaXNDb21wYXRpYmlsaXR5ID0gbmV3IEJpdFNldCgpOworICAgICAgICAgICAgQml0U2V0IGlzRXhjbHVkZWQgPSBuZXcgQml0U2V0KCk7CisgICAgICAgICAgICBpZiAoZnVsbERhdGEpIHsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiQnVpbGRpbmcgTm9ybWFsaXplciBEYXRhIGZyb20gZmlsZS4iKTsKKyAgICAgICAgICAgICAgICByZWFkRXhjbHVzaW9uTGlzdChpc0V4Y2x1ZGVkKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihpc0V4Y2x1ZGVkLmdldCgweDAwQzApKTsKKyAgICAgICAgICAgICAgICBidWlsZERlY29tcG9zaXRpb25UYWJsZXMoY2Fub25pY2FsQ2xhc3MsIGRlY29tcG9zZSwgY29tcG9zZSwKKyAgICAgICAgICAgICAgICAgIGlzQ29tcGF0aWJpbGl0eSwgaXNFeGNsdWRlZCk7CisgICAgICAgICAgICB9IGVsc2UgeyAgICAvLyBmb3IgdXNlIGluIEFwcGxldHMKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiQnVpbGRpbmcgYWJyaWRnZWQgZGF0YS4iKTsKKyAgICAgICAgICAgICAgICBzZXRNaW5pbWFsRGVjb21wKGNhbm9uaWNhbENsYXNzLCBkZWNvbXBvc2UsIGNvbXBvc2UsCisgICAgICAgICAgICAgICAgICBpc0NvbXBhdGliaWxpdHksIGlzRXhjbHVkZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3JtYWxpemVyRGF0YShjYW5vbmljYWxDbGFzcywgZGVjb21wb3NlLCBjb21wb3NlLAorICAgICAgICAgICAgICAgICAgaXNDb21wYXRpYmlsaXR5LCBpc0V4Y2x1ZGVkKTsKKyAgICAgICAgfSBjYXRjaCAoamF2YS5pby5JT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkNhbid0IGxvYWQgZGF0YSBmaWxlLiIgKyBlICsgIiwgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorCisvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBCdWlsZGluZyBEZWNvbXBvc2l0aW9uIFRhYmxlcworLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogUmVhZHMgZXhjbHVzaW9uIGxpc3QgYW5kIHN0b3JlcyB0aGUgZGF0YQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgcmVhZEV4Y2x1c2lvbkxpc3QoQml0U2V0IGlzRXhjbHVkZWQpIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlJlYWRpbmcgRXhjbHVzaW9ucyIpOworCisgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGluID0gVGVzdFV0aWwuZ2V0RGF0YVJlYWRlcigidW5pY29kZS9Db21wb3NpdGlvbkV4Y2x1c2lvbnMudHh0Iik7CisKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIC8vIHJlYWQgYSBsaW5lLCBkaXNjYXJkaW5nIGNvbW1lbnRzIGFuZCBibGFuayBsaW5lcworCisgICAgICAgICAgICBTdHJpbmcgbGluZSA9IGluLnJlYWRMaW5lKCk7CisgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgIGludCBjb21tZW50ID0gbGluZS5pbmRleE9mKCcjJyk7ICAgICAgICAgICAgICAgICAgICAvLyBzdHJpcCBjb21tZW50cworICAgICAgICAgICAgaWYgKGNvbW1lbnQgIT0gLTEpIGxpbmUgPSBsaW5lLnN1YnN0cmluZygwLGNvbW1lbnQpOworICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPT0gMCkgY29udGludWU7ICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZSBibGFua3MKKyAgICAgICAgICAgIGlmKGxpbmUuaW5kZXhPZignICcpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIGxpbmUuaW5kZXhPZignICcpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHN0b3JlIC0xIGluIHRoZSBleGNsdWRlZCB0YWJsZSBmb3IgZWFjaCBjaGFyYWN0ZXIgaGl0CisKKyAgICAgICAgICAgIGludCB2YWx1ZSA9IEludGVnZXIucGFyc2VJbnQobGluZSwxNik7CisgICAgICAgICAgICBpc0V4Y2x1ZGVkLnNldCh2YWx1ZSk7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiRXhjbHVkaW5nICIgKyBoZXgodmFsdWUpKTsKKyAgICAgICAgfQorICAgICAgICBpbi5jbG9zZSgpOworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiRG9uZSByZWFkaW5nIEV4Y2x1c2lvbnMiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCdWlsZHMgYSBkZWNvbXBvc2l0aW9uIHRhYmxlIGZyb20gYSBVbmljb2RlRGF0YSBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBidWlsZERlY29tcG9zaXRpb25UYWJsZXMoCisgICAgICBJbnRIYXNodGFibGUgY2Fub25pY2FsQ2xhc3MsIEludFN0cmluZ0hhc2h0YWJsZSBkZWNvbXBvc2UsCisgICAgICBMb25nSGFzaHRhYmxlIGNvbXBvc2UsIEJpdFNldCBpc0NvbXBhdGliaWxpdHksIEJpdFNldCBpc0V4Y2x1ZGVkKQorICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiUmVhZGluZyBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSIpOworICAgICAgICAvL0J1ZmZlcmVkUmVhZGVyIGluID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBGaWxlUmVhZGVyKFVOSUNPREVfREFUQSksIDY0KjEwMjQpOworICAgICAgICBCdWZmZXJlZFJlYWRlciBpbiA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbiA9IFRlc3RVdGlsLmdldERhdGFSZWFkZXIoInVuaWNvZGUvVW5pY29kZURhdGEudHh0Iik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkZhaWxlZCB0byByZWFkIFVuaWNvZGVEYXRhLnR4dCIpOworICAgICAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgIGxvbmcgcGFpcjsKKyAgICAgICAgaW50IGNvdW50ZXIgPSAwOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworCisgICAgICAgICAgICAvLyByZWFkIGEgbGluZSwgZGlzY2FyZGluZyBjb21tZW50cyBhbmQgYmxhbmsgbGluZXMKKworICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSBpbi5yZWFkTGluZSgpOworICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICBpbnQgY29tbWVudCA9IGxpbmUuaW5kZXhPZignIycpOyAgICAgICAgICAgICAgICAgICAgLy8gc3RyaXAgY29tbWVudHMKKyAgICAgICAgICAgIGlmIChjb21tZW50ICE9IC0xKSBsaW5lID0gbGluZS5zdWJzdHJpbmcoMCxjb21tZW50KTsKKyAgICAgICAgICAgIGlmIChsaW5lLmxlbmd0aCgpID09IDApIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgY291bnRlcisrOworICAgICAgICAgICAgICAgIGlmICgoY291bnRlciAmIDB4RkYpID09IDApIFN5c3RlbS5vdXQucHJpbnRsbigiQXQ6ICIgKyBsaW5lKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gZmluZCB0aGUgdmFsdWVzIG9mIHRoZSBwYXJ0aWN1bGFyIGZpZWxkcyB0aGF0IHdlIG5lZWQKKyAgICAgICAgICAgIC8vIFNhbXBsZSBsaW5lOiAwMEMwO0xBVElOIC4uLkEgR1JBVkU7THU7MDtMOzAwNDEgMDMwMDs7OztOO0xBVElOIC4uLiBHUkFWRTs7OzAwRTA7CisKKyAgICAgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgICAgICBpbnQgZW5kID0gbGluZS5pbmRleE9mKCc7Jyk7IC8vIGNvZGUKKyAgICAgICAgICAgIHZhbHVlID0gSW50ZWdlci5wYXJzZUludChsaW5lLnN1YnN0cmluZyhzdGFydCxlbmQpLDE2KTsKKyAgICAgICAgICAgIGlmICh0cnVlICYmIHZhbHVlID09ICdcdTAwYzAnKSB7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImRlYnVnOiAiICsgbGluZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbmQgPSBsaW5lLmluZGV4T2YoJzsnLHN0YXJ0PWVuZCsxKTsgLy8gbmFtZQorICAgICAgICAgICAgLypTdHJpbmcgbmFtZSA9IGxpbmUuc3Vic3RyaW5nKHN0YXJ0LGVuZCk7Ki8KKyAgICAgICAgICAgIGVuZCA9IGxpbmUuaW5kZXhPZignOycsc3RhcnQ9ZW5kKzEpOyAvLyBnZW5lcmFsIGNhdGVnb3J5CisgICAgICAgICAgICBlbmQgPSBsaW5lLmluZGV4T2YoJzsnLHN0YXJ0PWVuZCsxKTsgLy8gY2Fub25pY2FsIGNsYXNzCisKKyAgICAgICAgICAgIC8vIGNoZWNrIGNvbnNpc3RlbmN5OiBjYW5vbmljYWwgY2xhc3NlcyBtdXN0IGJlIGZyb20gMCB0byAyNTUKKworICAgICAgICAgICAgaW50IGNjID0gSW50ZWdlci5wYXJzZUludChsaW5lLnN1YnN0cmluZyhzdGFydCxlbmQpKTsKKyAgICAgICAgICAgIGlmIChjYyAhPSAoY2MgJiAweEZGKSkgU3lzdGVtLmVyci5wcmludGxuKCJCYWQgY2Fub25pY2FsIGNsYXNzIGF0OiAiICsgbGluZSk7CisgICAgICAgICAgICBjYW5vbmljYWxDbGFzcy5wdXQodmFsdWUsY2MpOworICAgICAgICAgICAgZW5kID0gbGluZS5pbmRleE9mKCc7JyxzdGFydD1lbmQrMSk7IC8vIEJJREkKKyAgICAgICAgICAgIGVuZCA9IGxpbmUuaW5kZXhPZignOycsc3RhcnQ9ZW5kKzEpOyAvLyBkZWNvbXAKKworICAgICAgICAgICAgLy8gZGVjb21wIHJlcXVpcmVzIG1vcmUgcHJvY2Vzc2luZy4KKyAgICAgICAgICAgIC8vIHN0b3JlIHdoZXRoZXIgaXQgaXMgY2Fub25pY2FsIG9yIGNvbXBhdGliaWxpdHkuCisgICAgICAgICAgICAvLyBzdG9yZSB0aGUgZGVjb21wIGluIG9uZSB0YWJsZSwgYW5kIHRoZSByZXZlcnNlIG1hcHBpbmcgKGZyb20gcGFpcnMpIGluIGFub3RoZXIKKworICAgICAgICAgICAgaWYgKHN0YXJ0ICE9IGVuZCkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzZWdtZW50ID0gbGluZS5zdWJzdHJpbmcoc3RhcnQsIGVuZCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBjb21wYXQgPSBzZWdtZW50LmNoYXJBdCgwKSA9PSAnPCc7CisgICAgICAgICAgICAgICAgaWYgKGNvbXBhdCkgaXNDb21wYXRpYmlsaXR5LnNldCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IGZyb21IZXgoc2VnbWVudCk7CisKKyAgICAgICAgICAgICAgICAvLyBhIHNtYWxsIHNuaXBwZXQgb2YgY29kZSB0byBnZW5lcmF0ZSB0aGUgQXBwbGV0IGRhdGEKKworICAgICAgICAgICAgICAgIC8qaWYgKEdFTkVSQVRJTkcpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlIDwgMHhGRikgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIlxcdSIgKyBoZXgoKGNoYXIpdmFsdWUpICsgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXCJcXHUiICsgaGV4KGRlY29tcCwgIlxcdSIpICsgIlwiLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoY29tcGF0ID8gIlwiS1wiLCIgOiAiXCJcIiwiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIi8vICIgKyBuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0qLworCisgICAgICAgICAgICAgICAgLy8gY2hlY2sgY29uc2lzdGVuY3k6IGFsbCBjYW5vbiBkZWNvbXBzIG11c3QgYmUgc2luZ2xlcyBvciBwYWlycyEKKyAgICAgICAgICAgICAgICBpbnQgZGVjb21wTGVuID0gVVRGMTZVdGlsLmNvdW50Q29kZVBvaW50KGRlY29tcCk7CisgICAgICAgICAgICAgICAgaWYgKGRlY29tcExlbiA8IDEgfHwgZGVjb21wTGVuID4gMiAmJiAhY29tcGF0KSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiQmFkIGRlY29tcCBhdDogIiArIGxpbmUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkZWNvbXBvc2UucHV0KHZhbHVlLCBkZWNvbXApOworCisgICAgICAgICAgICAgICAgLy8gb25seSBjb21wb3NpdGlvbnMgYXJlIGNhbm9uaWNhbCBwYWlycworICAgICAgICAgICAgICAgIC8vIHNraXAgaWYgc2NyaXB0IGV4Y2x1c2lvbgorCisgICAgICAgICAgICAgICAgaWYgKCFjb21wYXQgJiYgIWlzRXhjbHVkZWQuZ2V0KHZhbHVlKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgZmlyc3QgPSAnXHUwMDAwJzsKKyAgICAgICAgICAgICAgICAgICAgaW50IHNlY29uZCA9IFVURjE2VXRpbC5uZXh0Q29kZVBvaW50KGRlY29tcCwgMCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChkZWNvbXBMZW4gPiAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IHNlY29uZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZCA9IFVURjE2VXRpbC5uZXh0Q29kZVBvaW50KGRlY29tcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNlV0aWwuY29kZVBvaW50TGVuZ3RoKGZpcnN0KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBzdG9yZSBjb21wb3NpdGlvbiBwYWlyIGluIHNpbmdsZSBpbnRlZ2VyCisKKyAgICAgICAgICAgICAgICAgICAgcGFpciA9ICgobG9uZylmaXJzdCA8PCAzMikgfCBzZWNvbmQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRyAmJiB2YWx1ZSA9PSAnXHUwMEMwJykgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkZWJ1ZzI6ICIgKyBsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb21wb3NlLnB1dChwYWlyLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkV4Y2x1ZGluZzogIiArIGRlY29tcCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGluLmNsb3NlKCk7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJEb25lIHJlYWRpbmcgVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UiKTsKKworICAgICAgICAvLyBhZGQgYWxnb3JpdGhtaWMgSGFuZ3VsIGRlY29tcG9zaXRpb25zCisgICAgICAgIC8vIHRoaXMgaXMgbW9yZSBjb21wYWN0IGlmIGRvbmUgYXQgcnVudGltZSwgYnV0IGZvciBzaW1wbGljaXR5IHdlCisgICAgICAgIC8vIGRvIGl0IHRoaXMgd2F5LgorCisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJBZGRpbmcgSGFuZ3VsIik7CisKKyAgICAgICAgZm9yIChpbnQgU0luZGV4ID0gMDsgU0luZGV4IDwgU0NvdW50OyArK1NJbmRleCkgeworICAgICAgICAgICAgaW50IFRJbmRleCA9IFNJbmRleCAlIFRDb3VudDsKKyAgICAgICAgICAgIGNoYXIgZmlyc3QsIHNlY29uZDsKKyAgICAgICAgICAgIGlmIChUSW5kZXggIT0gMCkgeyAvLyB0cmlwbGUKKyAgICAgICAgICAgICAgICBmaXJzdCA9IChjaGFyKShTQmFzZSArIFNJbmRleCAtIFRJbmRleCk7CisgICAgICAgICAgICAgICAgc2Vjb25kID0gKGNoYXIpKFRCYXNlICsgVEluZGV4KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZmlyc3QgPSAoY2hhcikoTEJhc2UgKyBTSW5kZXggLyBOQ291bnQpOworICAgICAgICAgICAgICAgIHNlY29uZCA9IChjaGFyKShWQmFzZSArIChTSW5kZXggJSBOQ291bnQpIC8gVENvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBhaXIgPSAoKGxvbmcpZmlyc3QgPDwgMzIpIHwgc2Vjb25kOworICAgICAgICAgICAgdmFsdWUgPSBTSW5kZXggKyBTQmFzZTsKKyAgICAgICAgICAgIGRlY29tcG9zZS5wdXQodmFsdWUsIFN0cmluZy52YWx1ZU9mKGZpcnN0KSArIHNlY29uZCk7CisgICAgICAgICAgICBjb21wb3NlLnB1dChwYWlyLCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIkRvbmUgYWRkaW5nIEhhbmd1bCIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEhhbmd1bCBjb21wb3NpdGlvbiBjb25zdGFudHMKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50CisgICAgICAgIFNCYXNlID0gMHhBQzAwLCBMQmFzZSA9IDB4MTEwMCwgVkJhc2UgPSAweDExNjEsIFRCYXNlID0gMHgxMUE3LAorICAgICAgICBMQ291bnQgPSAxOSwgVkNvdW50ID0gMjEsIFRDb3VudCA9IDI4LAorICAgICAgICBOQ291bnQgPSBWQ291bnQgKiBUQ291bnQsICAgLy8gNTg4CisgICAgICAgIFNDb3VudCA9IExDb3VudCAqIE5Db3VudDsgICAvLyAxMTE3MgorCisgICAgLyoqCisgICAgICogRm9yIHVzZSBpbiBhbiBhcHBsZXQ6IGp1c3QgbG9hZCBhIG1pbmltYWwgc2V0IG9mIGRhdGEuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBzZXRNaW5pbWFsRGVjb21wKEludEhhc2h0YWJsZSBjYW5vbmljYWxDbGFzcywgSW50U3RyaW5nSGFzaHRhYmxlIGRlY29tcG9zZSwKKyAgICAgIExvbmdIYXNodGFibGUgY29tcG9zZSwgQml0U2V0IGlzQ29tcGF0aWJpbGl0eSwgQml0U2V0IGlzRXhjbHVkZWQpIHsKKyAgICAgICAgU3RyaW5nW10gZGVjb21wb3NlRGF0YSA9IHsKKyAgICAgICAgICAgICJcdTAwNUUiLCAiXHUwMDIwXHUwMzAyIiwgIksiLAorICAgICAgICAgICAgIlx1MDA1RiIsICJcdTAwMjBcdTAzMzIiLCAiSyIsCisgICAgICAgICAgICAiXHUwMDYwIiwgIlx1MDAyMFx1MDMwMCIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQTAiLCAiXHUwMDIwIiwgIksiLAorICAgICAgICAgICAgIlx1MDBBOCIsICJcdTAwMjBcdTAzMDgiLCAiSyIsCisgICAgICAgICAgICAiXHUwMEFBIiwgIlx1MDA2MSIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQUYiLCAiXHUwMDIwXHUwMzA0IiwgIksiLAorICAgICAgICAgICAgIlx1MDBCMiIsICJcdTAwMzIiLCAiSyIsCisgICAgICAgICAgICAiXHUwMEIzIiwgIlx1MDAzMyIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQjQiLCAiXHUwMDIwXHUwMzAxIiwgIksiLAorICAgICAgICAgICAgIlx1MDBCNSIsICJcdTAzQkMiLCAiSyIsCisgICAgICAgICAgICAiXHUwMEI4IiwgIlx1MDAyMFx1MDMyNyIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQjkiLCAiXHUwMDMxIiwgIksiLAorICAgICAgICAgICAgIlx1MDBCQSIsICJcdTAwNkYiLCAiSyIsCisgICAgICAgICAgICAiXHUwMEJDIiwgIlx1MDAzMVx1MjA0NFx1MDAzNCIsICJLIiwKKyAgICAgICAgICAgICJcdTAwQkQiLCAiXHUwMDMxXHUyMDQ0XHUwMDMyIiwgIksiLAorICAgICAgICAgICAgIlx1MDBCRSIsICJcdTAwMzNcdTIwNDRcdTAwMzQiLCAiSyIsCisgICAgICAgICAgICAiXHUwMEMwIiwgIlx1MDA0MVx1MDMwMCIsICIiLAorICAgICAgICAgICAgIlx1MDBDMSIsICJcdTAwNDFcdTAzMDEiLCAiIiwKKyAgICAgICAgICAgICJcdTAwQzIiLCAiXHUwMDQxXHUwMzAyIiwgIiIsCisgICAgICAgICAgICAiXHUwMEMzIiwgIlx1MDA0MVx1MDMwMyIsICIiLAorICAgICAgICAgICAgIlx1MDBDNCIsICJcdTAwNDFcdTAzMDgiLCAiIiwKKyAgICAgICAgICAgICJcdTAwQzUiLCAiXHUwMDQxXHUwMzBBIiwgIiIsCisgICAgICAgICAgICAiXHUwMEM3IiwgIlx1MDA0M1x1MDMyNyIsICIiLAorICAgICAgICAgICAgIlx1MDBDOCIsICJcdTAwNDVcdTAzMDAiLCAiIiwKKyAgICAgICAgICAgICJcdTAwQzkiLCAiXHUwMDQ1XHUwMzAxIiwgIiIsCisgICAgICAgICAgICAiXHUwMENBIiwgIlx1MDA0NVx1MDMwMiIsICIiLAorICAgICAgICAgICAgIlx1MDBDQiIsICJcdTAwNDVcdTAzMDgiLCAiIiwKKyAgICAgICAgICAgICJcdTAwQ0MiLCAiXHUwMDQ5XHUwMzAwIiwgIiIsCisgICAgICAgICAgICAiXHUwMENEIiwgIlx1MDA0OVx1MDMwMSIsICIiLAorICAgICAgICAgICAgIlx1MDBDRSIsICJcdTAwNDlcdTAzMDIiLCAiIiwKKyAgICAgICAgICAgICJcdTAwQ0YiLCAiXHUwMDQ5XHUwMzA4IiwgIiIsCisgICAgICAgICAgICAiXHUwMEQxIiwgIlx1MDA0RVx1MDMwMyIsICIiLAorICAgICAgICAgICAgIlx1MDBEMiIsICJcdTAwNEZcdTAzMDAiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRDMiLCAiXHUwMDRGXHUwMzAxIiwgIiIsCisgICAgICAgICAgICAiXHUwMEQ0IiwgIlx1MDA0Rlx1MDMwMiIsICIiLAorICAgICAgICAgICAgIlx1MDBENSIsICJcdTAwNEZcdTAzMDMiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRDYiLCAiXHUwMDRGXHUwMzA4IiwgIiIsCisgICAgICAgICAgICAiXHUwMEQ5IiwgIlx1MDA1NVx1MDMwMCIsICIiLAorICAgICAgICAgICAgIlx1MDBEQSIsICJcdTAwNTVcdTAzMDEiLCAiIiwKKyAgICAgICAgICAgICJcdTAwREIiLCAiXHUwMDU1XHUwMzAyIiwgIiIsCisgICAgICAgICAgICAiXHUwMERDIiwgIlx1MDA1NVx1MDMwOCIsICIiLAorICAgICAgICAgICAgIlx1MDBERCIsICJcdTAwNTlcdTAzMDEiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRTAiLCAiXHUwMDYxXHUwMzAwIiwgIiIsCisgICAgICAgICAgICAiXHUwMEUxIiwgIlx1MDA2MVx1MDMwMSIsICIiLAorICAgICAgICAgICAgIlx1MDBFMiIsICJcdTAwNjFcdTAzMDIiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRTMiLCAiXHUwMDYxXHUwMzAzIiwgIiIsCisgICAgICAgICAgICAiXHUwMEU0IiwgIlx1MDA2MVx1MDMwOCIsICIiLAorICAgICAgICAgICAgIlx1MDBFNSIsICJcdTAwNjFcdTAzMEEiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRTciLCAiXHUwMDYzXHUwMzI3IiwgIiIsCisgICAgICAgICAgICAiXHUwMEU4IiwgIlx1MDA2NVx1MDMwMCIsICIiLAorICAgICAgICAgICAgIlx1MDBFOSIsICJcdTAwNjVcdTAzMDEiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRUEiLCAiXHUwMDY1XHUwMzAyIiwgIiIsCisgICAgICAgICAgICAiXHUwMEVCIiwgIlx1MDA2NVx1MDMwOCIsICIiLAorICAgICAgICAgICAgIlx1MDBFQyIsICJcdTAwNjlcdTAzMDAiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRUQiLCAiXHUwMDY5XHUwMzAxIiwgIiIsCisgICAgICAgICAgICAiXHUwMEVFIiwgIlx1MDA2OVx1MDMwMiIsICIiLAorICAgICAgICAgICAgIlx1MDBFRiIsICJcdTAwNjlcdTAzMDgiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRjEiLCAiXHUwMDZFXHUwMzAzIiwgIiIsCisgICAgICAgICAgICAiXHUwMEYyIiwgIlx1MDA2Rlx1MDMwMCIsICIiLAorICAgICAgICAgICAgIlx1MDBGMyIsICJcdTAwNkZcdTAzMDEiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRjQiLCAiXHUwMDZGXHUwMzAyIiwgIiIsCisgICAgICAgICAgICAiXHUwMEY1IiwgIlx1MDA2Rlx1MDMwMyIsICIiLAorICAgICAgICAgICAgIlx1MDBGNiIsICJcdTAwNkZcdTAzMDgiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRjkiLCAiXHUwMDc1XHUwMzAwIiwgIiIsCisgICAgICAgICAgICAiXHUwMEZBIiwgIlx1MDA3NVx1MDMwMSIsICIiLAorICAgICAgICAgICAgIlx1MDBGQiIsICJcdTAwNzVcdTAzMDIiLCAiIiwKKyAgICAgICAgICAgICJcdTAwRkMiLCAiXHUwMDc1XHUwMzA4IiwgIiIsCisgICAgICAgICAgICAiXHUwMEZEIiwgIlx1MDA3OVx1MDMwMSIsICIiLAorLy8gRVhUUkFTLCBvdXRzaWRlIG9mIExhdGluIDEKKyAgICAgICAgICAgICJcdTFFQTQiLCAiXHUwMEMyXHUwMzAxIiwgIiIsCisgICAgICAgICAgICAiXHUxRUE1IiwgIlx1MDBFMlx1MDMwMSIsICIiLAorICAgICAgICAgICAgIlx1MUVBNiIsICJcdTAwQzJcdTAzMDAiLCAiIiwKKyAgICAgICAgICAgICJcdTFFQTciLCAiXHUwMEUyXHUwMzAwIiwgIiIsCisgICAgICAgIH07CisKKyAgICAgICAgaW50W10gY2xhc3NEYXRhID0geworICAgICAgICAgICAgMHgwMzAwLCAyMzAsCisgICAgICAgICAgICAweDAzMDEsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwMiwgMjMwLAorICAgICAgICAgICAgMHgwMzAzLCAyMzAsCisgICAgICAgICAgICAweDAzMDQsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwNSwgMjMwLAorICAgICAgICAgICAgMHgwMzA2LCAyMzAsCisgICAgICAgICAgICAweDAzMDcsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwOCwgMjMwLAorICAgICAgICAgICAgMHgwMzA5LCAyMzAsCisgICAgICAgICAgICAweDAzMEEsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwQiwgMjMwLAorICAgICAgICAgICAgMHgwMzBDLCAyMzAsCisgICAgICAgICAgICAweDAzMEQsIDIzMCwKKyAgICAgICAgICAgIDB4MDMwRSwgMjMwLAorICAgICAgICAgICAgMHgwMzBGLCAyMzAsCisgICAgICAgICAgICAweDAzMTAsIDIzMCwKKyAgICAgICAgICAgIDB4MDMxMSwgMjMwLAorICAgICAgICAgICAgMHgwMzEyLCAyMzAsCisgICAgICAgICAgICAweDAzMTMsIDIzMCwKKyAgICAgICAgICAgIDB4MDMxNCwgMjMwLAorICAgICAgICAgICAgMHgwMzE1LCAyMzIsCisgICAgICAgICAgICAweDAzMTYsIDIyMCwKKyAgICAgICAgICAgIDB4MDMxNywgMjIwLAorICAgICAgICAgICAgMHgwMzE4LCAyMjAsCisgICAgICAgICAgICAweDAzMTksIDIyMCwKKyAgICAgICAgICAgIDB4MDMxQSwgMjMyLAorICAgICAgICAgICAgMHgwMzFCLCAyMTYsCisgICAgICAgICAgICAweDAzMUMsIDIyMCwKKyAgICAgICAgICAgIDB4MDMxRCwgMjIwLAorICAgICAgICAgICAgMHgwMzFFLCAyMjAsCisgICAgICAgICAgICAweDAzMUYsIDIyMCwKKyAgICAgICAgICAgIDB4MDMyMCwgMjIwLAorICAgICAgICAgICAgMHgwMzIxLCAyMDIsCisgICAgICAgICAgICAweDAzMjIsIDIwMiwKKyAgICAgICAgICAgIDB4MDMyMywgMjIwLAorICAgICAgICAgICAgMHgwMzI0LCAyMjAsCisgICAgICAgICAgICAweDAzMjUsIDIyMCwKKyAgICAgICAgICAgIDB4MDMyNiwgMjIwLAorICAgICAgICAgICAgMHgwMzI3LCAyMDIsCisgICAgICAgICAgICAweDAzMjgsIDIwMiwKKyAgICAgICAgICAgIDB4MDMyOSwgMjIwLAorICAgICAgICAgICAgMHgwMzJBLCAyMjAsCisgICAgICAgICAgICAweDAzMkIsIDIyMCwKKyAgICAgICAgICAgIDB4MDMyQywgMjIwLAorICAgICAgICAgICAgMHgwMzJELCAyMjAsCisgICAgICAgICAgICAweDAzMkUsIDIyMCwKKyAgICAgICAgICAgIDB4MDMyRiwgMjIwLAorICAgICAgICAgICAgMHgwMzMwLCAyMjAsCisgICAgICAgICAgICAweDAzMzEsIDIyMCwKKyAgICAgICAgICAgIDB4MDMzMiwgMjIwLAorICAgICAgICAgICAgMHgwMzMzLCAyMjAsCisgICAgICAgICAgICAweDAzMzQsIDEsCisgICAgICAgICAgICAweDAzMzUsIDEsCisgICAgICAgICAgICAweDAzMzYsIDEsCisgICAgICAgICAgICAweDAzMzcsIDEsCisgICAgICAgICAgICAweDAzMzgsIDEsCisgICAgICAgICAgICAweDAzMzksIDIyMCwKKyAgICAgICAgICAgIDB4MDMzQSwgMjIwLAorICAgICAgICAgICAgMHgwMzNCLCAyMjAsCisgICAgICAgICAgICAweDAzM0MsIDIyMCwKKyAgICAgICAgICAgIDB4MDMzRCwgMjMwLAorICAgICAgICAgICAgMHgwMzNFLCAyMzAsCisgICAgICAgICAgICAweDAzM0YsIDIzMCwKKyAgICAgICAgICAgIDB4MDM0MCwgMjMwLAorICAgICAgICAgICAgMHgwMzQxLCAyMzAsCisgICAgICAgICAgICAweDAzNDIsIDIzMCwKKyAgICAgICAgICAgIDB4MDM0MywgMjMwLAorICAgICAgICAgICAgMHgwMzQ0LCAyMzAsCisgICAgICAgICAgICAweDAzNDUsIDI0MCwKKyAgICAgICAgICAgIDB4MDM2MCwgMjM0LAorICAgICAgICAgICAgMHgwMzYxLCAyMzQKKyAgICAgICAgfTsKKworICAgICAgICAvLyBidWlsZCB0aGUgc2FtZSB0YWJsZXMgd2Ugd291bGQgb3RoZXJ3aXNlIGdldCBmcm9tIHRoZQorICAgICAgICAvLyBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSwganVzdCB3aXRoIGxpbWl0ZWQgZGF0YQorCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjb21wb3NlRGF0YS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgIGNoYXIgdmFsdWUgPSBkZWNvbXBvc2VEYXRhW2ldLmNoYXJBdCgwKTsKKyAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBkZWNvbXBvc2VEYXRhW2krMV07CisgICAgICAgICAgICBib29sZWFuIGNvbXBhdCA9IGRlY29tcG9zZURhdGFbaSsyXS5lcXVhbHMoIksiKTsKKyAgICAgICAgICAgIGlmIChjb21wYXQpIGlzQ29tcGF0aWJpbGl0eS5zZXQodmFsdWUpOworICAgICAgICAgICAgZGVjb21wb3NlLnB1dCh2YWx1ZSwgZGVjb21wKTsKKyAgICAgICAgICAgIGlmICghY29tcGF0KSB7CisgICAgICAgICAgICAgICAgaW50IGZpcnN0ID0gJ1x1MDAwMCc7CisgICAgICAgICAgICAgICAgaW50IHNlY29uZCA9IFVURjE2VXRpbC5uZXh0Q29kZVBvaW50KGRlY29tcCwgMCk7CisgICAgICAgICAgICAgICAgaWYgKGRlY29tcC5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3QgPSBzZWNvbmQ7CisgICAgICAgICAgICAgICAgICAgIHNlY29uZCA9IFVURjE2VXRpbC5uZXh0Q29kZVBvaW50KGRlY29tcCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2VXRpbC5jb2RlUG9pbnRMZW5ndGgoZmlyc3QpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9uZyBwYWlyID0gKGZpcnN0IDw8IDE2KSB8IHNlY29uZDsKKyAgICAgICAgICAgICAgICBjb21wb3NlLnB1dChwYWlyLCB2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNsYXNzRGF0YS5sZW5ndGg7KSB7CisgICAgICAgICAgICBjYW5vbmljYWxDbGFzcy5wdXQoY2xhc3NEYXRhW2krK10sIGNsYXNzRGF0YVtpKytdKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFV0aWxpdHk6IFBhcnNlcyBhIHNlcXVlbmNlIG9mIGhleCBVbmljb2RlIGNoYXJhY3RlcnMgc2VwYXJhdGVkIGJ5IHNwYWNlcworICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIGZyb21IZXgoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBzb3VyY2UuY2hhckF0KGkpOworICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgIGNhc2UgJyAnOiBicmVhazsgLy8gaWdub3JlCisgICAgICAgICAgICAgIGNhc2UgJzAnOiBjYXNlICcxJzogY2FzZSAnMic6IGNhc2UgJzMnOiBjYXNlICc0JzogY2FzZSAnNSc6IGNhc2UgJzYnOiBjYXNlICc3JzoKKyAgICAgICAgICAgICAgY2FzZSAnOCc6IGNhc2UgJzknOiBjYXNlICdBJzogY2FzZSAnQic6IGNhc2UgJ0MnOiBjYXNlICdEJzogY2FzZSAnRSc6IGNhc2UgJ0YnOgorICAgICAgICAgICAgICBjYXNlICdhJzogY2FzZSAnYic6IGNhc2UgJ2MnOiBjYXNlICdkJzogY2FzZSAnZSc6IGNhc2UgJ2YnOgorICAgICAgICAgICAgICAgIGludCBlbmQgPSAwOworICAgICAgICAgICAgICAgIGludCB2YWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oc291cmNlLnN1YnN0cmluZyhpLCBpICsgNCkgKyAiKioqKioqKioqKioqIiArIHNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGVuZCA9IHNvdXJjZS5pbmRleE9mKCcgJyxpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVuZCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IEludGVnZXIucGFyc2VJbnQoc291cmNlLnN1YnN0cmluZyhpLCBlbmQpLDE2KTsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTZVdGlsLmFwcGVuZENvZGVQb2ludChyZXN1bHQsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImk6ICIgKyBpICsgIjtlbmQ6IiArIGVuZCArICJzb3VyY2U6IiArIHNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoaSwgaSArIDQpICsgIioqKioqKioqKioqKiIgKyBzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy9pKz0gMzsgLy8gc2tpcCByZXN0IG9mIG51bWJlcgorICAgICAgICAgICAgICAgIGkgPSBlbmQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIGNhc2UgJzwnOiBpbnQgaiA9IHNvdXJjZS5pbmRleE9mKCc+JyxpKTsgLy8gc2tpcCA8Li4uPgorICAgICAgICAgICAgICAgIGlmIChqID4gMCkgeworICAgICAgICAgICAgICAgICAgICBpID0gajsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSAvLyBlbHNlIGZhbGwgdGhyb3VnaC0tZXJyb3IKKyAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJCYWQgaGV4IHZhbHVlIGluICIgKyBzb3VyY2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5OiBTdXBwbGllcyBhIHplcm8tcGFkZGVkIGhleCByZXByZXNlbnRhdGlvbiBvZiBhbiBpbnRlZ2VyICh3aXRob3V0IDB4KQorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIGhleChpbnQgaSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gTG9uZy50b1N0cmluZyhpICYgMHhGRkZGRkZGRkwsIDE2KS50b1VwcGVyQ2FzZSgpOworICAgICAgICByZXR1cm4gIjAwMDAwMDAwIi5zdWJzdHJpbmcocmVzdWx0Lmxlbmd0aCgpLDgpICsgcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFV0aWxpdHk6IFN1cHBsaWVzIGEgemVyby1wYWRkZWQgaGV4IHJlcHJlc2VudGF0aW9uIG9mIGEgVW5pY29kZSBjaGFyYWN0ZXIgKHdpdGhvdXQgMHgsIFxcdSkKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBoZXgoY2hhciBpKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBJbnRlZ2VyLnRvU3RyaW5nKGksIDE2KS50b1VwcGVyQ2FzZSgpOworICAgICAgICByZXR1cm4gIjAwMDAiLnN1YnN0cmluZyhyZXN1bHQubGVuZ3RoKCksNCkgKyByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXRpbGl0eTogU3VwcGxpZXMgYSB6ZXJvLXBhZGRlZCBoZXggcmVwcmVzZW50YXRpb24gb2YgYSBVbmljb2RlIGNoYXJhY3RlciAod2l0aG91dCAweCwgXFx1KQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChTdHJpbmcgcywgU3RyaW5nIHNlcCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKGkgIT0gMCkgcmVzdWx0LmFwcGVuZChzZXApOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChoZXgocy5jaGFyQXQoaSkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvTm9ybWFsaXplckRhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6ZXJEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE4Mjg4YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL05vcm1hbGl6ZXJEYXRhLmphdmEKQEAgLTAsMCArMSwxMzUgQEAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjsKKworaW1wb3J0IGphdmEudXRpbC5CaXRTZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5VVEYxNlV0aWw7CisKKy8qKgorICogQWNjZXNzZXMgdGhlIE5vcm1hbGl6YXRpb24gRGF0YSB1c2VkIGZvciBGb3JtcyBDIGFuZCBELjxicj4KKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBVbmljb2RlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuPGJyPgorICogVGhlIFVuaWNvZGUgQ29uc29ydGl1bSBtYWtlcyBubyBleHByZXNzZWQgb3IgaW1wbGllZCB3YXJyYW50eSBvZiBhbnkKKyAqIGtpbmQsIGFuZCBhc3N1bWVzIG5vIGxpYWJpbGl0eSBmb3IgZXJyb3JzIG9yIG9taXNzaW9ucy4KKyAqIE5vIGxpYWJpbGl0eSBpcyBhc3N1bWVkIGZvciBpbmNpZGVudGFsIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMKKyAqIGluIGNvbm5lY3Rpb24gd2l0aCBvciBhcmlzaW5nIG91dCBvZiB0aGUgdXNlIG9mIHRoZSBpbmZvcm1hdGlvbiBoZXJlLgorICogQGF1dGhvciBNYXJrIERhdmlzCisgKiBVcGRhdGVzIGZvciBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzOgorICogVmxhZGltaXIgV2VpbnN0ZWluICYgTWFya3VzIFNjaGVyZXIKKyAqLworcHVibGljIGNsYXNzIE5vcm1hbGl6ZXJEYXRhIHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMyBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBVbmljb2RlLCBJbmMuIjsKKworICAgIC8qKgorICAgICogQ29uc3RhbnQgZm9yIHVzZSBpbiBnZXRQYWlyd2lzZUNvbXBvc2l0aW9uCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT1RfQ09NUE9TSVRFID0gJ1x1RkZGRic7CisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIGNvbWJpbmluZyBjbGFzcyBvZiBhIGNoYXJhY3RlciBmcm9tIHRoZQorICAgICogVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UuCisgICAgKiBAcGFyYW0gICBjaCAgICAgIHRoZSBzb3VyY2UgY2hhcmFjdGVyCisgICAgKiBAcmV0dXJuICAgICAgICAgIHZhbHVlIGZyb20gMCB0byAyNTUKKyAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Q2Fub25pY2FsQ2xhc3MoaW50IGNoKSB7CisgICAgICAgIHJldHVybiBjYW5vbmljYWxDbGFzcy5nZXQoY2gpOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJucyB0aGUgY29tcG9zaXRlIG9mIHRoZSB0d28gY2hhcmFjdGVycy4gSWYgdGhlIHR3bworICAgICogY2hhcmFjdGVycyBkb24ndCBjb21iaW5lLCByZXR1cm5zIE5PVF9DT01QT1NJVEUuCisgICAgKiBAcGFyYW0gICBmaXJzdCAgIGZpcnN0IGNoYXJhY3RlciAoZS5nLiAnYycpCisgICAgKiBAcGFyYW0gICBzZWNvbmQgIHNlY29uZCBjaGFyYWN0ZXIgKGUuZy4gXHUwMzI3IGNlZGlsbGEpCisgICAgKiBAcmV0dXJuICAgICAgICAgIGNvbXBvc2l0ZSAoZS5nLiBcdTAwQzcgYyBjZWRpbGxhKQorICAgICovCisgICAgcHVibGljIGludCBnZXRQYWlyd2lzZUNvbXBvc2l0aW9uKGludCBmaXJzdCwgaW50IHNlY29uZCkgeworICAgICAgICByZXR1cm4gY29tcG9zZS5nZXQoKChsb25nKWZpcnN0IDw8IDMyKSB8IHNlY29uZCk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAqIEdldHMgcmVjdXJzaXZlIGRlY29tcG9zaXRpb24gb2YgYSBjaGFyYWN0ZXIgZnJvbSB0aGUKKyAgICAqIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlLgorICAgICogQHBhcmFtICAgY2Fub25pY2FsICAgIElmIHRydWUKKyAgICAqICAgICAgICAgICAgICAgICAgYml0IGlzIG9uIGluIHRoaXMgYnl0ZSwgdGhlbiBzZWxlY3RzIHRoZSByZWN1cnNpdmUKKyAgICAqICAgICAgICAgICAgICAgICAgY2Fub25pY2FsIGRlY29tcG9zaXRpb24sIG90aGVyd2lzZSBzZWxlY3RzCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSByZWN1cnNpdmUgY29tcGF0aWJpbGl0eSBhbmQgY2Fub25pY2FsIGRlY29tcG9zaXRpb24uCisgICAgKiBAcGFyYW0gICBjaCAgICAgIHRoZSBzb3VyY2UgY2hhcmFjdGVyCisgICAgKiBAcGFyYW0gICBidWZmZXIgIGJ1ZmZlciB0byBiZSBmaWxsZWQgd2l0aCB0aGUgZGVjb21wb3NpdGlvbgorICAgICovCisgICAgcHVibGljIHZvaWQgZ2V0UmVjdXJzaXZlRGVjb21wb3NpdGlvbihib29sZWFuIGNhbm9uaWNhbCwgaW50IGNoLCBTdHJpbmdCdWZmZXIgYnVmZmVyKSB7CisgICAgICAgIFN0cmluZyBkZWNvbXAgPSBkZWNvbXBvc2UuZ2V0KGNoKTsKKyAgICAgICAgaWYgKGRlY29tcCAhPSBudWxsICYmICEoY2Fub25pY2FsICYmIGlzQ29tcGF0aWJpbGl0eS5nZXQoY2gpKSkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZWNvbXAubGVuZ3RoKCk7IGkrPVVURjE2VXRpbC5jb2RlUG9pbnRMZW5ndGgoY2gpKSB7CisgICAgICAgICAgICAgICAgY2ggPSBVVEYxNlV0aWwubmV4dENvZGVQb2ludChkZWNvbXAsIGkpOworICAgICAgICAgICAgICAgIGdldFJlY3Vyc2l2ZURlY29tcG9zaXRpb24oY2Fub25pY2FsLCBjaCwgYnVmZmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgIC8vIGlmIG5vIGRlY29tcCwgYXBwZW5kCisgICAgICAgICAgICBVVEYxNlV0aWwuYXBwZW5kQ29kZVBvaW50KGJ1ZmZlciwgY2gpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vICAgICAgICAgICAgICAgICAgIFBSSVZBVEVTCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogT25seSBhY2Nlc3NlZCBieSBOb3JtYWxpemVyQnVpbGRlci4KKyAgICAgKi8KKyAgICBOb3JtYWxpemVyRGF0YShJbnRIYXNodGFibGUgY2Fub25pY2FsQ2xhc3MsIEludFN0cmluZ0hhc2h0YWJsZSBkZWNvbXBvc2UsCisgICAgICBMb25nSGFzaHRhYmxlIGNvbXBvc2UsIEJpdFNldCBpc0NvbXBhdGliaWxpdHksIEJpdFNldCBpc0V4Y2x1ZGVkKSB7CisgICAgICAgIHRoaXMuY2Fub25pY2FsQ2xhc3MgPSBjYW5vbmljYWxDbGFzczsKKyAgICAgICAgdGhpcy5kZWNvbXBvc2UgPSBkZWNvbXBvc2U7CisgICAgICAgIHRoaXMuY29tcG9zZSA9IGNvbXBvc2U7CisgICAgICAgIHRoaXMuaXNDb21wYXRpYmlsaXR5ID0gaXNDb21wYXRpYmlsaXR5OworICAgICAgICB0aGlzLmlzRXhjbHVkZWQgPSBpc0V4Y2x1ZGVkOworICAgIH0KKworICAgIC8qKgorICAgICogSnVzdCBhY2Nlc3NpYmxlIGZvciB0ZXN0aW5nLgorICAgICovCisgICAgYm9vbGVhbiBnZXRFeGNsdWRlZCAoY2hhciBjaCkgeworICAgICAgICByZXR1cm4gaXNFeGNsdWRlZC5nZXQoY2gpOworICAgIH0KKworICAgIC8qKgorICAgICogSnVzdCBhY2Nlc3NpYmxlIGZvciB0ZXN0aW5nLgorICAgICovCisgICAgU3RyaW5nIGdldFJhd0RlY29tcG9zaXRpb25NYXBwaW5nIChjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBkZWNvbXBvc2UuZ2V0KGNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEZvciBub3csIGp1c3QgdXNlIEludEhhc2h0YWJsZQorICAgICogVHdvLXN0YWdlIHRhYmxlcyB3b3VsZCBiZSB1c2VkIGluIGFuIG9wdGltaXplZCBpbXBsZW1lbnRhdGlvbi4KKyAgICAqLworICAgIHByaXZhdGUgSW50SGFzaHRhYmxlIGNhbm9uaWNhbENsYXNzOworCisgICAgLyoqCisgICAgKiBUaGUgbWFpbiBkYXRhIHRhYmxlIG1hcHMgY2hhcnMgdG8gYSAzMi1iaXQgaW50LgorICAgICogSXQgaG9sZHMgZWl0aGVyIGEgcGFpcjogdG9wID0gZmlyc3QsIGJvdHRvbSA9IHNlY29uZAorICAgICogb3Igc2luZ2xldG9uOiB0b3AgPSAwLCBib3R0b20gPSBzaW5nbGUuCisgICAgKiBJZiB0aGVyZSBpcyBubyBkZWNvbXBvc2l0aW9uLCB0aGUgdmFsdWUgaXMgMC4KKyAgICAqIFR3by1zdGFnZSB0YWJsZXMgd291bGQgYmUgdXNlZCBpbiBhbiBvcHRpbWl6ZWQgaW1wbGVtZW50YXRpb24uCisgICAgKiBBbiBvcHRpbWl6YXRpb24gY291bGQgYWxzbyBtYXAgY2hhcnMgdG8gYSBzbWFsbCBpbmRleCwgdGhlbiB1c2UgdGhhdAorICAgICogaW5kZXggaW4gYSBzbWFsbCBhcnJheSBvZiBpbnRzLgorICAgICovCisgICAgcHJpdmF0ZSBJbnRTdHJpbmdIYXNodGFibGUgZGVjb21wb3NlOworCisgICAgLyoqCisgICAgKiBNYXBzIGZyb20gcGFpcnMgb2YgY2hhcmFjdGVycyB0byBzaW5nbGUuCisgICAgKiBJZiB0aGVyZSBpcyBubyBkZWNvbXBvc2l0aW9uLCB0aGUgdmFsdWUgaXMgTk9UX0NPTVBPU0lURS4KKyAgICAqLworICAgIHByaXZhdGUgTG9uZ0hhc2h0YWJsZSBjb21wb3NlOworCisgICAgLyoqCisgICAgKiBUZWxscyB3aGV0aGVyIGRlY29tcG9zaXRpb24gaXMgY2Fub25pY2FsIG9yIG5vdC4KKyAgICAqLworICAgIHByaXZhdGUgQml0U2V0IGlzQ29tcGF0aWJpbGl0eSA9IG5ldyBCaXRTZXQoKTsKKworICAgIC8qKgorICAgICogVGVsbHMgd2hldGhlciBjaGFyYWN0ZXIgaXMgc2NyaXB0LWV4Y2x1ZGVkIG9yIG5vdC4KKyAgICAqIFVzZWQgb25seSB3aGlsZSBidWlsZGluZywgYW5kIGZvciB0ZXN0aW5nLgorICAgICovCisKKyAgICBwcml2YXRlIEJpdFNldCBpc0V4Y2x1ZGVkID0gbmV3IEJpdFNldCgpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvTm9ybWFsaXplclJlZ3Jlc3Npb25UZXN0cy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvTm9ybWFsaXplclJlZ3Jlc3Npb25UZXN0cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1OGU2NzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9Ob3JtYWxpemVyUmVncmVzc2lvblRlc3RzLmphdmEKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5ub3JtYWxpemVyOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyOworCitwdWJsaWMgY2xhc3MgTm9ybWFsaXplclJlZ3Jlc3Npb25UZXN0cyBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IE5vcm1hbGl6ZXJSZWdyZXNzaW9uVGVzdHMoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEpCNDQ3MigpIHsKKyAgICAgICAgLy8gc3VibWl0dGVyJ3MgdGVzdCBjYXNlCisgICAgICAgIFN0cmluZyB0YW1pbCA9ICJcdTBiODdcdTBiYThcdTBiY2RcdTBiYTRcdTBiYmZcdTBiYWZcdTBiYmUiOworICAgICAgICBsb2dsbigiTm9ybWFsaXplZDogIiArIE5vcm1hbGl6ZXIuaXNOb3JtYWxpemVkKHRhbWlsLCBOb3JtYWxpemVyLk5GQywgMCkpOworCisgICAgICAgIC8vIG1hcmt1cydzIHRlc3QgY2FzZQorICAgICAgICAvLyB0aGUgY29tYmluaW5nIGNlZGlsbGEgY2FuJ3QgYmUgYXBwbGllZCB0byAnYicsIHNvIHRoaXMgaXMgaW4gbm9ybWFsaXplZCBmb3JtLgorICAgICAgICAvLyBidXQgdGhlIGlzTm9ybWFsaXplZCB0ZXN0IGlkZW50aWZpZXMgdGhlIGNlZGlsbGEgYXMgYSAnbWF5YmUnIGFuZCBzbyB0cmllcworICAgICAgICAvLyB0byBub3JtYWxpemUgdGhlIHJlbGV2YW50IHN1YnN0cmluZyAoImJcdTAzMjciKWFuZCBjb21wYXJlIHRoZSByZXN1bHQgdG8gdGhlCisgICAgICAgIC8vIG9yaWdpbmFsLiAgdGhlIG9yaWdpbmFsIGNvZGUgd2FzIHBhc3NpbmcgaW4gdGhlIHN0YXJ0IGFuZCBsZW5ndGggb2YgdGhlCisgICAgICAgIC8vIHN1YnN0cmluZyAoMywgNS0zID0gMikgYnV0IHRoZSBjYWxsZWQgY29kZSB3YXMgZXhwZWN0aW5nIHN0YXJ0IGFuZCBsaW1pdC4KKyAgICAgICAgLy8gaXQgc3VidHJhY3RlZCB0aGUgc3RhcnQgYWdhaW4gdG8gZ2V0IHdoYXQgaXQgdGhvdWdodCB3YXMgdGhlIGxlbmd0aCwgYnV0CisgICAgICAgIC8vIGVuZGVkIHVwIHdpdGggLTEuICB0aGUgbG9vcCB3YXMgaW5jcmVtZW50aW5nIGFuIGluZGV4IGZyb20gMCBhbmQgdGVzdGluZworICAgICAgICAvLyBhZ2FpbnN0IGxlbmd0aCwgYnV0IDAgd2FzIG5ldmVyID09IC0xIGJlZm9yZSBpdCB3YWxrZWQgb2ZmIHRoZSBhcnJheSBlbmQuCisKKyAgICAgICAgLy8gYSB3b3JrYXJvdW5kIGluIGxpZXUgb2YgdGhpcyBwYXRjaCBpcyB0byBjYXRjaCB0aGUgZXhjZXB0aW9uIGFuZCBhbHdheXMKKyAgICAgICAgLy8gbm9ybWFsaXplLgorCisgICAgICAgIC8vIHRoaXMgc2hvdWxkIHJldHVybiB0cnVlLCBzaW5jZSB0aGUgc3RyaW5nIGlzIG5vcm1hbGl6ZWQgKGFuZCBpdCBzaG91bGQKKyAgICAgICAgLy8gbm90IHRocm93IGFuIGV4Y2VwdGlvbiEpCisgICAgICAgIFN0cmluZyBzYW1wbGUgPSAiYWFhYlx1MDMyNyI7CisgICAgICAgIGxvZ2xuKCJOb3JtYWxpemVkOiAiICsgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoc2FtcGxlLCBOb3JtYWxpemVyLk5GQywgMCkpOworCisgICAgICAgIC8vIHRoaXMgc2hvdWxkIHJldHVybiBmYWxzZSwgc2luY2UgdGhlIHN0cmluZyBpcyBfbm90XyBub3JtYWxpemVkIChhbmQgaXQgc2hvdWxkCisgICAgICAgIC8vIG5vdCB0aHJvdyBhbiBleGNlcHRpb24hKQorICAgICAgICBTdHJpbmcgc2FtcGxlMiA9ICJhYWFjXHUwMzI3IjsKKyAgICAgICAgbG9nbG4oIk5vcm1hbGl6ZWQ6ICIgKyBOb3JtYWxpemVyLmlzTm9ybWFsaXplZChzYW1wbGUyLCBOb3JtYWxpemVyLk5GQywgMCkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1Rlc3RBbGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDFlZTkzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvVGVzdEFsbC5qYXZhCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gbm9ybWFsaXplciB0ZXN0cyBhcyBhIGJhdGNoLgorICovCitwdWJsaWMgY2xhc3MgVGVzdEFsbCBleHRlbmRzIFRlc3RHcm91cCB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0QWxsKCkgeworICAgICAgICBzdXBlcihuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIkJhc2ljVGVzdCIsCisgICAgICAgICAgICAiQ29uZm9ybWFuY2VUZXN0IiwKKyAgICAgICAgICAgICJUZXN0RGVwcmVjYXRlZE5vcm1hbGl6ZXJBUEkiLAorICAgICAgICAgICAgIlRlc3RDYW5vbmljYWxJdGVyYXRvciIsCisgICAgICAgICAgICAiTm9ybWFsaXphdGlvbk1vbmtleVRlc3QiLAorCSAgICAiTm9ybWFsaXplclJlZ3Jlc3Npb25UZXN0cyIsCisgICAgICAgIH0pOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FID0gIk5vcm1hbGl6ZXIiOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvVGVzdENhbm9uaWNhbEl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9UZXN0Q2Fub25pY2FsSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYTFjZWFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvVGVzdENhbm9uaWNhbEl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwyNzYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5DYW5vbmljYWxJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworCisvLyBUT0RPOiBmaXQgaW50byB0ZXN0IGZyYW1ld29yaworCitwdWJsaWMgY2xhc3MgVGVzdENhbm9uaWNhbEl0ZXJhdG9yIGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIFNIT1dfTkFNRVMgPSBmYWxzZTsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdENhbm9uaWNhbEl0ZXJhdG9yKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIHRlc3RBcnJheVtdW10gPSB7CisgICAgICAgIHsiXHUwMEM1ZFx1MDMwN1x1MDMyNyIsICJBXHUwMzBBZFx1MDMwN1x1MDMyNywgQVx1MDMwQWRcdTAzMjdcdTAzMDcsIEFcdTAzMEFcdTFFMEJcdTAzMjcsICIKKyAgICAgICAgICAgICsgIkFcdTAzMEFcdTFFMTFcdTAzMDcsIFx1MDBDNWRcdTAzMDdcdTAzMjcsIFx1MDBDNWRcdTAzMjdcdTAzMDcsICIKKyAgICAgICAgICAgICsgIlx1MDBDNVx1MUUwQlx1MDMyNywgXHUwMEM1XHUxRTExXHUwMzA3LCBcdTIxMkJkXHUwMzA3XHUwMzI3LCAiCisgICAgICAgICAgICArICJcdTIxMkJkXHUwMzI3XHUwMzA3LCBcdTIxMkJcdTFFMEJcdTAzMjcsIFx1MjEyQlx1MUUxMVx1MDMwNyJ9LAorICAgICAgICB7Ilx1MDEwZFx1MDE3RSIsICJjXHUwMzBDelx1MDMwQywgY1x1MDMwQ1x1MDE3RSwgXHUwMTBEelx1MDMwQywgXHUwMTBEXHUwMTdFIn0sCisgICAgICAgIHsieFx1MDMwN1x1MDMyNyIsICJ4XHUwMzA3XHUwMzI3LCB4XHUwMzI3XHUwMzA3LCBcdTFFOEJcdTAzMjcifSwKKyAgICB9OworICAgIAorICAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhoYXVzdGl2ZSgpIHsKKyAgICAgICAgaW50IGNvdW50ZXIgPSAwOworICAgICAgICBpbnQgbWl4ZWRDb3VudGVyID0gMDsKKyAgICAgICAgaW50IGxhc3RNaXhlZENvdW50ZXIgPSAtMTsKKyAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IgaXQgPSBuZXcgQ2Fub25pY2FsSXRlcmF0b3IoIiIpOworICAgICAgICAvKgorICAgICAgICBDYW5vbmljYWxJdGVyYXRvciBzbG93SXQgPSBuZXcgQ2Fub25pY2FsSXRlcmF0b3IoIiIpOworICAgICAgICBzbG93SXQuU0tJUF9aRVJPUyA9IGZhbHNlOworICAgICAgICAqLworICAgICAgICAvL1RyYW5zbGl0ZXJhdG9yIG5hbWUgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiW15cXHUwMDIwLVxcdTAwN0ZdIG5hbWUiKTsKKyAgICAgICAgLy9TZXQgaXRTZXQgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAvL1NldCBzbG93SXRTZXQgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMHgxMEZGRkY7ICsraSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBza2lwIGNoYXJhY3RlcnMgd2Uga25vdyBkb24ndCBoYXZlIGRlY29tcHMKKyAgICAgICAgICAgIGludCB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKGkpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQgfHwgdHlwZSA9PSBDaGFyYWN0ZXIuUFJJVkFURV9VU0UKKyAgICAgICAgICAgICAgICB8fCB0eXBlID09IENoYXJhY3Rlci5TVVJST0dBVEUpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCgrK2NvdW50ZXIgJSA1MDAwKSA9PSAwKSBsb2dsbigiVGVzdGluZyAiICsgVXRpbGl0eS5oZXgoaSwwKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBzID0gVVRGMTYudmFsdWVPZihpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCEgc2tpcElmQmVmb3JlSUNVKDMsIDQpKSB7CisgICAgICAgICAgICAgICAgY2hhcmFjdGVyVGVzdChzLCBpLCBpdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNoYXJhY3RlclRlc3QocyArICJcdTAzNDUiLCBpLCBpdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBUZXN0U3BlZWQoKSB7CisgICAgICAgICAvLyBza2lwIHVubGVzcyB2ZXJib3NlCisgICAgICAgIGlmICghaXNWZXJib3NlKCkpIHJldHVybiAwOworCisgICAgICAgICAgIFN0cmluZyBzID0gIlx1QUMwMVx1MDM0NSI7CisgICAgICAgICAgIAorICAgICAgICBDYW5vbmljYWxJdGVyYXRvciBpdCA9IG5ldyBDYW5vbmljYWxJdGVyYXRvcihzKTsKKyAgICAgICAgZG91YmxlIHN0YXJ0LCBlbmQ7CisgICAgICAgIGludCB4ID0gMDsgLy8ganVzdCB0byBrZWVwIGNvZGUgZnJvbSBvcHRpbWl6aW5nIGF3YXkuCisgICAgICAgIGludCBpdGVyYXRpb25zID0gMTAwMDA7CisgICAgICAgIGRvdWJsZSBzbG93RGVsdGEgPSAwOworICAgICAgICAKKyAgICAgICAgLyoKKyAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3Igc2xvd0l0ID0gbmV3IENhbm9uaWNhbEl0ZXJhdG9yKHMpOworICAgICAgICBzbG93SXQuU0tJUF9aRVJPUyA9IGZhbHNlOworCisgICAgICAgIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgKytpKSB7CisgICAgICAgICAgICBzbG93SXQuc2V0U291cmNlKHMpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IHNsb3dJdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGl0ZW0gPT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICAgICAgeCArPSBpdGVtLmxlbmd0aCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVuZCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBkb3VibGUgc2xvd0RlbHRhID0gKGVuZC1zdGFydCkgLyBpdGVyYXRpb25zOworICAgICAgICBsb2dsbigiU2xvdyBpdGVyYXRpb246ICIgKyBzbG93RGVsdGEpOworICAgICAgICAqLworCisgICAgICAgIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgKytpKSB7CisgICAgICAgICAgICBpdC5zZXRTb3VyY2Uocyk7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBpdGVtID0gaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgICAgIHggKz0gaXRlbS5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbmQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgZG91YmxlIGZhc3REZWx0YSA9IChlbmQtc3RhcnQpIC8gaXRlcmF0aW9uczsKKyAgICAgICAgbG9nbG4oIkZhc3QgaXRlcmF0aW9uOiAiICsgZmFzdERlbHRhICsgKHNsb3dEZWx0YSAhPSAwID8gIiwgIiArIChmYXN0RGVsdGEvc2xvd0RlbHRhKSA6ICIiKSk7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHg7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNpYygpIHsKKy8vICAgICAgVGhpcyBpcyBub3QgaW50ZXJlc3RpbmcgYW55bW9yZSBhcyB0aGUgZGF0YSBpcyBhbHJlYWR5IGJ1aWx0IAorLy8gICAgICBiZWZvcmVoYW5kCisKKy8vICAgICAgICBjaGVjayBidWlsZAorLy8gICAgICAgIFVuaWNvZGVTZXQgc3MgPSBDYW5vbmljYWxJdGVyYXRvci5nZXRTYWZlU3RhcnQoKTsKKy8vICAgICAgICBsb2dsbigiU2FmZSBTdGFydDogIiArIHNzLnRvUGF0dGVybih0cnVlKSk7CisvLyAgICAgICAgc3MgPSBDYW5vbmljYWxJdGVyYXRvci5nZXRTdGFydHMoJ2EnKTsKKy8vICAgICAgICBleHBlY3RFcXVhbCgiQ2hhcmFjdGVycyB3aXRoICdhJyBhdCB0aGUgc3RhcnQgb2YgdGhlaXIgZGVjb21wb3NpdGlvbjogIiwgIiIsIENhbm9uaWNhbEl0ZXJhdG9yLmdldFN0YXJ0cygnYScpLAorLy8gICAgICAgICAgICBuZXcgVW5pY29kZVNldCgiW1x1MDBFMC1cdTAwRTVcdTAxMDFcdTAxMDNcdTAxMDVcdTAxQ0VcdTAxREZcdTAxRTFcdTAxRkIiCisvLyAgICAgICAgICAgICsgIlx1MDIwMVx1MDIwM1x1MDIyN1x1MUUwMVx1MUVBMVx1MUVBM1x1MUVBNVx1MUVBN1x1MUVBOVx1MUVBQlx1MUVBRFx1MUVBRlx1MUVCMVx1MUVCM1x1MUVCNVx1MUVCN10iKQorLy8gICAgICAgICAgICAgICAgKTsKKyAgICAgICAgCisgICAgICAgIC8vIGNoZWNrIHBlcm11dGUKKyAgICAgICAgLy8gTk9URTogd2UgdXNlIGEgVHJlZVNldCBiZWxvdyB0byBzb3J0IHRoZSBvdXRwdXQsIHdoaWNoIGlzIG5vdCBndWFyYW50ZWVkIHRvIGJlIHNvcnRlZCEKKyAgICAgICAgCisgICAgICAgIFNldCByZXN1bHRzID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IucGVybXV0ZSgiQUJDIiwgZmFsc2UsIHJlc3VsdHMpOworICAgICAgICBleHBlY3RFcXVhbCgiU2ltcGxlIHBlcm11dGF0aW9uICIsICIiLCBjb2xsZWN0aW9uVG9TdHJpbmcocmVzdWx0cyksICJBQkMsIEFDQiwgQkFDLCBCQ0EsIENBQiwgQ0JBIik7CisgICAgICAgIAorICAgICAgICAvLyB0cnkgc2FtcGxlcworICAgICAgICBTb3J0ZWRTZXQgc2V0ID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0QXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIC8vbG9nbG4oIlJlc3VsdHMgZm9yOiAiICsgbmFtZS50cmFuc2xpdGVyYXRlKHRlc3RBcnJheVtpXSkpOworICAgICAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IgaXQgPSBuZXcgQ2Fub25pY2FsSXRlcmF0b3IodGVzdEFycmF5W2ldWzBdKTsKKyAgICAgICAgICAgLy8gaW50IGNvdW50ZXIgPSAwOworICAgICAgICAgICAgc2V0LmNsZWFyKCk7CisgICAgICAgICAgICBTdHJpbmcgZmlyc3QgPSBudWxsOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGlmKGZpcnN0PT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3QgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICAgICAgc2V0LmFkZChyZXN1bHQpOyAvLyBzb3J0IHRoZW0KKyAgICAgICAgICAgICAgICAvL2xvZ2xuKCsrY291bnRlciArICI6ICIgKyBoZXgudHJhbnNsaXRlcmF0ZShyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICAvL2xvZ2xuKCIgPSAiICsgbmFtZS50cmFuc2xpdGVyYXRlKHJlc3VsdCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXhwZWN0RXF1YWwoaSArICI6ICIsIHRlc3RBcnJheVtpXVswXSwgY29sbGVjdGlvblRvU3RyaW5nKHNldCksIHRlc3RBcnJheVtpXVsxXSk7CisgICAgICAgICAgICBpdC5yZXNldCgpOworICAgICAgICAgICAgaWYoIWl0Lm5leHQoKS5lcXVhbHMoZmlyc3QpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ2Fub25pY2FsSXRlcmF0b3IucmVzZXQoKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKCFpdC5nZXRTb3VyY2UoKS5lcXVhbHMoTm9ybWFsaXplci5ub3JtYWxpemUodGVzdEFycmF5W2ldWzBdLE5vcm1hbGl6ZXIuTkZEKSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJDYW5vbmljYWxJdGVyYXRvci5nZXRTb3VyY2UoKSBkb2VzIG5vdCByZXR1cm4gTkZEIG9mIGlucHV0IHNvdXJjZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGV4cGVjdEVxdWFsKFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgaXRlbSwgT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgIGlmICghYS5lcXVhbHMoYikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbWVzc2FnZSArIGdldFJlYWRhYmxlKGl0ZW0pKTsKKyAgICAgICAgICAgIGVycmxuKCJcdCIgKyBnZXRSZWFkYWJsZShhKSk7CisgICAgICAgICAgICBlcnJsbigiXHQiICsgZ2V0UmVhZGFibGUoYikpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIkNoZWNrZWQ6ICIgKyBtZXNzYWdlICsgZ2V0UmVhZGFibGUoaXRlbSkpOworICAgICAgICAgICAgbG9nbG4oIlx0IiArIGdldFJlYWRhYmxlKGEpKTsKKyAgICAgICAgICAgIGxvZ2xuKCJcdCIgKyBnZXRSZWFkYWJsZShiKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy9UcmFuc2xpdGVyYXRvciBuYW1lID0gbnVsbDsKKyAgICAvL1RyYW5zbGl0ZXJhdG9yIGhleCA9IG51bGw7CisgICAgICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0UmVhZGFibGUoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiAibnVsbCI7CisgICAgICAgIFN0cmluZyBzID0gb2JqLnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChzLmxlbmd0aCgpID09IDApIHJldHVybiAiIjsKKyAgICAgICAgLy8gc2V0IHVwIGZvciByZWFkYWJsZSBkaXNwbGF5CisgICAgICAgIC8vaWYgKG5hbWUgPT0gbnVsbCkgbmFtZSA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJbXlxcIC1cXHUwMDdGXSBuYW1lIik7CisgICAgICAgIC8vaWYgKGhleCA9PSBudWxsKSBoZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiW15cXCAtXFx1MDA3Rl0gaGV4Iik7CisgICAgICAgIHJldHVybiAiWyIgKyAoU0hPV19OQU1FUyA/IGhleChzKSArICI7ICIgOiAiIikgKyBoZXgocykgKyAiXSI7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGNoYXJhY3RlclRlc3QoU3RyaW5nIHMsIGludCBjaCwgQ2Fub25pY2FsSXRlcmF0b3IgaXQpCisgICAgeworICAgICAgICBpbnQgY291bnRlciA9IDA7CisgICAgICAgIGludCBtaXhlZENvdW50ZXIgPSAwOworICAgICAgICBpbnQgbGFzdE1peGVkQ291bnRlciA9IC0xOworICAgICAgICBib29sZWFuIGdvdERlY29tcCA9IGZhbHNlOworICAgICAgICBib29sZWFuIGdvdENvbXAgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiBnb3RTb3VyY2UgPSBmYWxzZTsKKyAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHMsIGZhbHNlKTsKKyAgICAgICAgU3RyaW5nIGNvbXAgPSBOb3JtYWxpemVyLmNvbXBvc2UocywgZmFsc2UpOworICAgICAgICAKKyAgICAgICAgLy8gc2tpcCBjaGFyYWN0ZXJzIHRoYXQgZG9uJ3QgaGF2ZSBlaXRoZXIgZGVjb21wLgorICAgICAgICAvLyBuZWVkIHF1aWNrIHRlc3QgZm9yIHRoaXMhCisgICAgICAgIGlmIChzLmVxdWFscyhkZWNvbXApICYmIHMuZXF1YWxzKGNvbXApKSByZXR1cm47CisgICAgICAgIAorICAgICAgICBpdC5zZXRTb3VyY2Uocyk7CisKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIFN0cmluZyBpdGVtID0gaXQubmV4dCgpOworICAgICAgICAgICAgaWYgKGl0ZW0gPT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICBpZiAoaXRlbS5lcXVhbHMocykpIGdvdFNvdXJjZSA9IHRydWU7CisgICAgICAgICAgICBpZiAoaXRlbS5lcXVhbHMoZGVjb21wKSkgZ290RGVjb21wID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChpdGVtLmVxdWFscyhjb21wKSkgZ290Q29tcCA9IHRydWU7CisgICAgICAgICAgICBpZiAoKG1peGVkQ291bnRlciAmIDB4N0YpID09IDAgJiYgKGNoIDwgMHhBRDAwIHx8IGNoID4gMHhBQzAwICsgMTExNzIpKSB7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RNaXhlZENvdW50ZXIgIT0gbWl4ZWRDb3VudGVyKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCIiKTsKKyAgICAgICAgICAgICAgICAgICAgbGFzdE1peGVkQ291bnRlciA9IG1peGVkQ291bnRlcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nbG4oIlx0IiArIG1peGVkQ291bnRlciArICJcdCIgKyBoZXgoaXRlbSkKKyAgICAgICAgICAgICAgICArIChpdGVtLmVxdWFscyhzKSA/ICJcdCgqb3JpZ2luYWwqKSIgOiAiIikKKyAgICAgICAgICAgICAgICArIChpdGVtLmVxdWFscyhkZWNvbXApID8gIlx0KCpkZWNvbXAqKSIgOiAiIikKKyAgICAgICAgICAgICAgICArIChpdGVtLmVxdWFscyhjb21wKSA/ICJcdCgqY29tcCopIiA6ICIiKQorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gY2hlY2sgdGhhdCB6ZXJvcyBvcHRpbWl6YXRpb24gZG9lc24ndCBtZXNzIHVwLgorICAgICAgICAvKgorICAgICAgICBpZiAodHJ1ZSkgeworICAgICAgICAgICAgaXQucmVzZXQoKTsKKyAgICAgICAgICAgIGl0U2V0LmNsZWFyKCk7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBpdGVtID0gaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgICAgIGl0U2V0LmFkZChpdGVtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNsb3dJdC5zZXRTb3VyY2Uocyk7CisgICAgICAgICAgICBzbG93SXRTZXQuY2xlYXIoKTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSBzbG93SXQubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIGJyZWFrOworICAgICAgICAgICAgICAgIHNsb3dJdFNldC5hZGQoaXRlbSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWl0U2V0LmVxdWFscyhzbG93SXRTZXQpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlplcm8gb3B0aW1pemF0aW9uIGZhaWx1cmUgd2l0aCAiICsgZ2V0UmVhZGFibGUocykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIAorICAgICAgICBtaXhlZENvdW50ZXIrKzsKKyAgICAgICAgaWYgKCFnb3RTb3VyY2UgfHwgIWdvdERlY29tcCB8fCAhZ290Q29tcCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgQ2Fub25pY2FsSXRlcmF0b3I6ICIgKyBzICsgIiBkZWNvbXA6ICIgK2RlY29tcCsiIGNvbXA6ICIrY29tcCk7CisgICAgICAgICAgICBpdC5yZXNldCgpOworICAgICAgICAgICAgZm9yKFN0cmluZyBpdGVtPWl0Lm5leHQoKTtpdGVtIT1udWxsO2l0ZW09aXQubmV4dCgpKXsKKyAgICAgICAgICAgICAgICBlcnIoaXRlbSArICIgICAgIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJsbigiIik7ICAgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIFN0cmluZyBjb2xsZWN0aW9uVG9TdHJpbmcoQ29sbGVjdGlvbiBjb2wpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBjb2wuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGgoKSAhPSAwKSByZXN1bHQuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpdC5uZXh0KCkudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9UZXN0RGVwcmVjYXRlZE5vcm1hbGl6ZXJBUEkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1Rlc3REZXByZWNhdGVkTm9ybWFsaXplckFQSS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0NzkxNTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvbm9ybWFsaXplci9UZXN0RGVwcmVjYXRlZE5vcm1hbGl6ZXJBUEkuamF2YQpAQCAtMCwwICsxLDE3NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbXBvc2VkQ2hhckl0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I7CisKK3B1YmxpYyBjbGFzcyBUZXN0RGVwcmVjYXRlZE5vcm1hbGl6ZXJBUEkgZXh0ZW5kcyBUZXN0Rm13aworeworICAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICBTdHJpbmdbXSB0ZW1wQXJncyA9IG5ldyBTdHJpbmdbYXJncy5sZW5ndGhdOworICAgICAgICBpbnQgY291bnQgPSAwOworCisgICAgICAgIC8vIEFsbG93IHRoZSB0ZXN0IHRvIGJlIHBvaW50ZWQgYXQgYSBzcGVjaWZpYyB2ZXJzaW9uIG9mIHRoZSBVbmljb2RlIGRhdGFiYXNlCisgICAgICAgIC8vZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKQorICAgICAgICAvL3sKKyAgICAgICAgLy8gICAgaWYgKGFyZ3NbaV0uZXF1YWxzKCItZGF0YSIpKSB7CisgICAgICAgIC8vICAgICAgICB0ZW1wSW5mbyA9IG5ldyBVSW5mbyhhcmdzWysraV0sIGFyZ3NbKytpXSk7CisgICAgICAgIC8vICAgIH0gZWxzZSB7CisgICAgICAgIC8vICAgICAgICB0ZW1wQXJnc1tjb3VudCsrXSA9IGFyZ3NbaV07CisgICAgICAgIC8vICAgIH0KKyAgICAgICAgLy99CisKKyAgICAgICAgYXJncyA9IG5ldyBTdHJpbmdbY291bnRdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRlbXBBcmdzLCAwLCBhcmdzLCAwLCBjb3VudCk7CisKKworCisgICAgICAgIG5ldyBUZXN0RGVwcmVjYXRlZE5vcm1hbGl6ZXJBUEkoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBUZXN0RGVwcmVjYXRlZE5vcm1hbGl6ZXJBUEkoKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE5vcm1hbGl6ZXJBUEkoKXsKKyAgICAgICAgIC8vIGluc3RhbnRpYXRlIGEgTm9ybWFsaXplciBmcm9tIGEgQ2hhcmFjdGVySXRlcmF0b3IKKyAgICAgICAgU3RyaW5nIHM9VXRpbGl0eS51bmVzY2FwZSgiYVx1MDMwOFx1YWMwMFxcVTAwMDJmODAwIik7CisgICAgICAgIC8vIG1ha2UgcyBhIGJpdCBsb25nZXIgYW5kIG1vcmUgaW50ZXJlc3RpbmcKKyAgICAgICAgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IocytzKTsKKyAgICAgICAgLy90ZXN0IGRlcHJlY2F0ZWQgY29uc3RydWN0b3JzCisgICAgICAgIE5vcm1hbGl6ZXIgbm9ybSA9IG5ldyBOb3JtYWxpemVyKGl0ZXIsIE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICBOb3JtYWxpemVyIG5vcm0yID0gbmV3IE5vcm1hbGl6ZXIocyxOb3JtYWxpemVyLk5GQywwKTsKKyAgICAgICAgaWYobm9ybS5uZXh0KCkhPTB4ZTQpIHsKKyAgICAgICAgICAgIGVycmxuKCJlcnJvciBpbiBOb3JtYWxpemVyKENoYXJhY3Rlckl0ZXJhdG9yKS5uZXh0KCkiKTsKKyAgICAgICAgfSAgICAgICAKKyAgICAgICAgLy8gdGVzdCBjbG9uZSgpLCA9PSwgYW5kIGhhc2hDb2RlKCkKKyAgICAgICAgTm9ybWFsaXplciBjbG9uZT0oTm9ybWFsaXplcilub3JtLmNsb25lKCk7CisgICAgICAgIGlmKGNsb25lLmdldEJlZ2luSW5kZXgoKSE9IG5vcm0uZ2V0QmVnaW5JbmRleCgpKXsKKyAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXIuZ2V0QmVnaW5JbmRleCgpIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmKGNsb25lLmdldEVuZEluZGV4KCkhPSBub3JtLmdldEVuZEluZGV4KCkpeworICAgICAgICAgICBlcnJsbigiZXJyb3IgaW4gTm9ybWFsaXplci5nZXRFbmRJbmRleCgpIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdCBzZXRPcHRpb24oKSBhbmQgZ2V0T3B0aW9uKCkKKyAgICAgICAgY2xvbmUuc2V0T3B0aW9uKDB4YWEwMDAwLCB0cnVlKTsKKyAgICAgICAgY2xvbmUuc2V0T3B0aW9uKDB4MjAwMDAsIGZhbHNlKTsKKyAgICAgICAgaWYoY2xvbmUuZ2V0T3B0aW9uKDB4ODgwMDAwKSA9PTB8fCBjbG9uZS5nZXRPcHRpb24oMHgyMDAwMCk9PTEpIHsKKyAgICAgICAgICAgZXJybG4oImVycm9yIGluIE5vcm1hbGl6ZXI6OnNldE9wdGlvbigpIG9yIE5vcm1hbGl6ZXI6OmdldE9wdGlvbigpIik7CisgICAgICAgIH0KKyAgICAgICAgLy90ZXN0IGRlcHJlY2F0ZWQgbm9ybWFsaXplIG1ldGhvZAorICAgICAgICBOb3JtYWxpemVyLm5vcm1hbGl6ZShzLE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICAvL3Rlc3QgZGVwcmVjYXRlZCBjb21wb3NlIG1ldGhvZAorICAgICAgICBOb3JtYWxpemVyLmNvbXBvc2UocyxmYWxzZSwwKTsKKyAgICAgICAgLy90ZXN0IGRlcHJlY2F0ZWQgZGVjb21wb3NlIG1ldGhvZAorICAgICAgICBOb3JtYWxpemVyLmRlY29tcG9zZShzLGZhbHNlLDApOworCisgICAgfQorCisgICAgLyoqCisgICAgICogUnVuIHRocm91Z2ggYWxsIG9mIHRoZSBjaGFyYWN0ZXJzIHJldHVybmVkIGJ5IGEgY29tcG9zZWQtY2hhciBpdGVyYXRvcgorICAgICAqIGFuZCBtYWtlIHN1cmUgdGhhdDoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPmEpIFRoZXkgZG8gaW5kZWVkIGhhdmUgZGVjb21wb3NpdGlvbnMuCisgICAgICogPGxpPmIpIFRoZSBkZWNvbXBvc2l0aW9uIGFjY29yZGluZyB0byB0aGUgaXRlcmF0b3IgaXMgdGhlIHNhbWUgYXMKKyAgICAgKiAgICAgICAgICByZXR1cm5lZCBieSBOb3JtYWxpemVyLmRlY29tcG9zZSgpLgorICAgICAqIDxsaT5jKSBBbGwgY2hhcmFjdGVycyA8ZW0+bm90PC9lbT4gcmV0dXJuZWQgYnkgdGhlIGl0ZXJhdG9yIGRvIG5vdAorICAgICAqICAgICAgICAgIGhhdmUgZGVjb21wb3NpdGlvbnMuCisgICAgICogPC91bD4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG9zZWRDaGFySXRlcigpIHsKKyAgICAgICAgZG9UZXN0Q29tcG9zZWRDaGFycyhmYWxzZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZG9UZXN0Q29tcG9zZWRDaGFycyhib29sZWFuIGNvbXBhdCkgeworICAgICAgICBpbnQgb3B0aW9ucyA9IE5vcm1hbGl6ZXIuSUdOT1JFX0hBTkdVTDsKKyAgICAgICAgQ29tcG9zZWRDaGFySXRlciBpdGVyID0gbmV3IENvbXBvc2VkQ2hhckl0ZXIoY29tcGF0LCBvcHRpb25zKTsKKworICAgICAgICBjaGFyIGxhc3RDaGFyID0gMDsKKworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBpdGVyLm5leHQoKTsKKworICAgICAgICAgICAgLy8gVGVzdCBhbGwgY2hhcmFjdGVycyBiZXR3ZWVuIHRoZSBsYXN0IG9uZSBhbmQgdGhpcyBvbmUgdG8gbWFrZQorICAgICAgICAgICAgLy8gc3VyZSB0aGF0IHRoZXkgZG9uJ3QgaGF2ZSBkZWNvbXBvc2l0aW9ucworICAgICAgICAgICAgYXNzZXJ0Tm9EZWNvbXAobGFzdENoYXIsIGNoLCBjb21wYXQsIG9wdGlvbnMpOworICAgICAgICAgICAgbGFzdENoYXIgPSBjaDsKKworICAgICAgICAgICAgLy8gTm93IG1ha2Ugc3VyZSB0aGF0IHRoZSBkZWNvbXBvc2l0aW9ucyBmb3IgdGhpcyBjaGFyYWN0ZXIKKyAgICAgICAgICAgIC8vIG1ha2Ugc2Vuc2UKKyAgICAgICAgICAgIFN0cmluZyBjaFN0cmluZyAgID0gbmV3IFN0cmluZ0J1ZmZlcigpLmFwcGVuZChjaCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIFN0cmluZyBpdGVyRGVjb21wID0gaXRlci5kZWNvbXBvc2l0aW9uKCk7CisgICAgICAgICAgICBTdHJpbmcgbm9ybURlY29tcCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKGNoU3RyaW5nLCBjb21wYXQpOworCisgICAgICAgICAgICBpZiAoaXRlckRlY29tcC5lcXVhbHMoY2hTdHJpbmcpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiAiICsgaGV4KGNoKSArICIgaGFzIGlkZW50aWNhbCBkZWNvbXAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKCFpdGVyRGVjb21wLmVxdWFscyhub3JtRGVjb21wKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFUlJPUjogTm9ybWFsaXplciBkZWNvbXAgZm9yICIgKyBoZXgoY2gpICsgIiAoIiArIGhleChub3JtRGVjb21wKSArICIpIgorICAgICAgICAgICAgICAgICAgICArICIgIT0gaXRlciBkZWNvbXAgKCIgKyBoZXgoaXRlckRlY29tcCkgKyAiKSIgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBhc3NlcnROb0RlY29tcChsYXN0Q2hhciwgJ1x1RkZGRicsIGNvbXBhdCwgb3B0aW9ucyk7CisgICAgfQorCisgICAgdm9pZCBhc3NlcnROb0RlY29tcChjaGFyIHN0YXJ0LCBjaGFyIGxpbWl0LCBib29sZWFuIGNvbXBhdCwgaW50IG9wdGlvbnMpCisgICAgeworICAgICAgICBmb3IgKGNoYXIgeCA9ICsrc3RhcnQ7IHggPCBsaW1pdDsgeCsrKSB7CisgICAgICAgICAgICBTdHJpbmcgeFN0cmluZyAgID0gbmV3IFN0cmluZ0J1ZmZlcigpLmFwcGVuZCh4KS50b1N0cmluZygpOworICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHhTdHJpbmcsIGNvbXBhdCk7CisgICAgICAgICAgICBpZiAoIWRlY29tcC5lcXVhbHMoeFN0cmluZykpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRVJST1I6ICIgKyBoZXgoeCkgKyAiIGhhcyBkZWNvbXBvc2l0aW9uICgiICsgaGV4KGRlY29tcCkgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgKyAiIGJ1dCB3YXMgbm90IHJldHVybmVkIGJ5IGl0ZXJhdG9yIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKworICAgIHB1YmxpYyB2b2lkIFRlc3RSb3VuZFRyaXAoKSB7CisgICAgICAgIGludCBvcHRpb25zID0gTm9ybWFsaXplci5JR05PUkVfSEFOR1VMOworICAgICAgICBib29sZWFuIGNvbXBhdCA9IGZhbHNlOworCisgICAgICAgIENvbXBvc2VkQ2hhckl0ZXIgaXRlciA9IG5ldyBDb21wb3NlZENoYXJJdGVyKGZhbHNlLCBvcHRpb25zKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gaXRlci5uZXh0KCk7CisKKyAgICAgICAgICAgIFN0cmluZyBjaFN0ciA9IG5ldyBTdHJpbmdCdWZmZXIoKS5hcHBlbmQoY2gpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBTdHJpbmcgZGVjb21wID0gTm9ybWFsaXplci5kZWNvbXBvc2UoY2hTdHIsIGNvbXBhdCk7CisgICAgICAgICAgICBTdHJpbmcgY29tcCA9IE5vcm1hbGl6ZXIuY29tcG9zZShkZWNvbXAsIGNvbXBhdCk7CisKKyAgICAgICAgICAgIGludCBjQ2xhc3MgPSBVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKGRlY29tcC5jaGFyQXQoMCkpOworICAgICAgICAgICAgY0NsYXNzID0gMDsKKworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXJJbXBsLmlzRnVsbENvbXBvc2l0aW9uRXhjbHVzaW9uKGNoKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJTa2lwcGVkIGV4Y2x1ZGVkIGNoYXIgIiArIGhleChjaCkgKyAiICgiICsgVUNoYXJhY3Rlci5nZXROYW1lKGNoKSArICIpIiApOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBBdm9pZCBkaXNwYXJhZ2VkIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIGlmIChnZXREZWNvbXBvc2l0aW9uKGNoLGNvbXBhdCkubGVuZ3RoKCkgPT0gNCkgY29udGludWU7CisKKyAgICAgICAgICAgIGlmICghY29tcC5lcXVhbHMoY2hTdHIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBSb3VuZCB0cmlwIGludmFsaWQ6ICIgKyBoZXgoY2hTdHIpICsgIiAtLT4gIiArIGhleChkZWNvbXApCisgICAgICAgICAgICAgICAgICAgICsgIiAtLT4gIiArIGhleChjb21wKSk7CisKKyAgICAgICAgICAgICAgICBlcnJsbigiICBjaGFyIGRlY29tcCBpcyAnIiArIGdldERlY29tcG9zaXRpb24oY2gsY29tcGF0KSArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0RGVjb21wb3NpdGlvbihjaGFyIGNoLCBib29sZWFuIGNvbXBhdCl7CisgICAgICAgIGNoYXJbXSBkZXN0ID0gbmV3IGNoYXJbMTBdOyAgIAorICAgICAgICBpbnQgbGVuZ3RoID0gTm9ybWFsaXplckltcGwuZ2V0RGVjb21wb3NpdGlvbihjaCxjb21wYXQsZGVzdCwwLGRlc3QubGVuZ3RoKTsgICAKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoZGVzdCwwLGxlbmd0aCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvVW5pY29kZU5vcm1hbGl6ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1VuaWNvZGVOb3JtYWxpemVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU2MGRjOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1VuaWNvZGVOb3JtYWxpemVyLmphdmEKQEAgLTAsMCArMSwxODUgQEAKKy8qKgorICogSW1wbGVtZW50cyBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXMgQywgRCwgS0MsIEtELjxicj4KKyAqIFNlZSBVVFIjMTUgZm9yIGRldGFpbHMuPGJyPgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDMgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIFVuaWNvZGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC48YnI+CisgKiBUaGUgVW5pY29kZSBDb25zb3J0aXVtIG1ha2VzIG5vIGV4cHJlc3NlZCBvciBpbXBsaWVkIHdhcnJhbnR5IG9mIGFueQorICoga2luZCwgYW5kIGFzc3VtZXMgbm8gbGlhYmlsaXR5IGZvciBlcnJvcnMgb3Igb21pc3Npb25zLgorICogTm8gbGlhYmlsaXR5IGlzIGFzc3VtZWQgZm9yIGluY2lkZW50YWwgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcworICogaW4gY29ubmVjdGlvbiB3aXRoIG9yIGFyaXNpbmcgb3V0IG9mIHRoZSB1c2Ugb2YgdGhlIGluZm9ybWF0aW9uIGhlcmUuCisgKiBAYXV0aG9yIE1hcmsgRGF2aXMKKyAqIFVwZGF0ZXMgZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHM6CisgKiBWbGFkaW1pciBXZWluc3RlaW4gJiBNYXJrdXMgU2NoZXJlcgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlVURjE2VXRpbDsKKworcHVibGljIGNsYXNzIFVuaWNvZGVOb3JtYWxpemVyIHsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgKEMpIDE5OTgtMjAwMyBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBVbmljb2RlLCBJbmMuIjsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5vcm1hbGl6ZXIgZm9yIGEgZ2l2ZW4gZm9ybS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZU5vcm1hbGl6ZXIoYnl0ZSBmb3JtLCBib29sZWFuIGZ1bGxEYXRhKSB7CisgICAgICAgIHRoaXMuZm9ybSA9IGZvcm07CisgICAgICAgIGlmIChkYXRhID09IG51bGwpIGRhdGEgPSBOb3JtYWxpemVyQnVpbGRlci5idWlsZChmdWxsRGF0YSk7IC8vIGxvYWQgMXN0IHRpbWUKKyAgICB9CisKKyAgICAvKioKKyAgICAqIE1hc2tzIGZvciB0aGUgZm9ybSBzZWxlY3RvcgorICAgICovCisgICAgc3RhdGljIGZpbmFsIGJ5dGUKKyAgICAgICAgQ09NUEFUSUJJTElUWV9NQVNLID0gMSwKKyAgICAgICAgQ09NUE9TSVRJT05fTUFTSyA9IDI7CisKKyAgICAvKioKKyAgICAqIE5vcm1hbGl6YXRpb24gRm9ybSBTZWxlY3RvcgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlCisgICAgICAgIEQgPSAwICwKKyAgICAgICAgQyA9IENPTVBPU0lUSU9OX01BU0ssCisgICAgICAgIEtEID0gQ09NUEFUSUJJTElUWV9NQVNLLAorICAgICAgICBLQyA9IChieXRlKShDT01QQVRJQklMSVRZX01BU0sgKyBDT01QT1NJVElPTl9NQVNLKTsKKworICAgIC8qKgorICAgICogTm9ybWFsaXplcyB0ZXh0IGFjY29yZGluZyB0byB0aGUgY2hvc2VuIGZvcm0sCisgICAgKiByZXBsYWNpbmcgY29udGVudHMgb2YgdGhlIHRhcmdldCBidWZmZXIuCisgICAgKiBAcGFyYW0gICBzb3VyY2UgICAgICB0aGUgb3JpZ2luYWwgdGV4dCwgdW5ub3JtYWxpemVkCisgICAgKiBAcGFyYW0gICB0YXJnZXQgICAgICB0aGUgcmVzdWx0aW5nIG5vcm1hbGl6ZWQgdGV4dAorICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBub3JtYWxpemUoU3RyaW5nIHNvdXJjZSwgU3RyaW5nQnVmZmVyIHRhcmdldCkgeworCisgICAgICAgIC8vIEZpcnN0IGRlY29tcG9zZSB0aGUgc291cmNlIGludG8gdGFyZ2V0LAorICAgICAgICAvLyB0aGVuIGNvbXBvc2UgaWYgdGhlIGZvcm0gcmVxdWlyZXMuCisKKyAgICAgICAgaWYgKHNvdXJjZS5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICBpbnRlcm5hbERlY29tcG9zZShzb3VyY2UsIHRhcmdldCk7CisgICAgICAgICAgICBpZiAoKGZvcm0gJiBDT01QT1NJVElPTl9NQVNLKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxDb21wb3NlKHRhcmdldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIE5vcm1hbGl6ZXMgdGV4dCBhY2NvcmRpbmcgdG8gdGhlIGNob3NlbiBmb3JtCisgICAgKiBAcGFyYW0gICBzb3VyY2UgICAgICB0aGUgb3JpZ2luYWwgdGV4dCwgdW5ub3JtYWxpemVkCisgICAgKiBAcmV0dXJuICB0YXJnZXQgICAgICB0aGUgcmVzdWx0aW5nIG5vcm1hbGl6ZWQgdGV4dAorICAgICovCisgICAgcHVibGljIFN0cmluZyBub3JtYWxpemUoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICByZXR1cm4gbm9ybWFsaXplKHNvdXJjZSwgbmV3IFN0cmluZ0J1ZmZlcigpKS50b1N0cmluZygpOworICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gICAgICAgICAgICAgICAgICBQUklWQVRFUworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBUaGUgY3VycmVudCBmb3JtLgorICAgICAqLworICAgIHByaXZhdGUgYnl0ZSBmb3JtOworCisgICAgLyoqCisgICAgKiBEZWNvbXBvc2VzIHRleHQsIGVpdGhlciBjYW5vbmljYWwgb3IgY29tcGF0aWJpbGl0eSwKKyAgICAqIHJlcGxhY2luZyBjb250ZW50cyBvZiB0aGUgdGFyZ2V0IGJ1ZmZlci4KKyAgICAqIEBwYXJhbSAgIGZvcm0gICAgICAgIHRoZSBub3JtYWxpemF0aW9uIGZvcm0uIElmIENPTVBBVElCSUxJVFlfTUFTSworICAgICogICAgICAgICAgICAgICAgICAgICAgYml0IGlzIG9uIGluIHRoaXMgYnl0ZSwgdGhlbiBzZWxlY3RzIHRoZSByZWN1cnNpdmUKKyAgICAqICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbiwgb3RoZXJ3aXNlIHNlbGVjdHMKKyAgICAqICAgICAgICAgICAgICAgICAgICAgIHRoZSByZWN1cnNpdmUgY2Fub25pY2FsIGRlY29tcG9zaXRpb24uCisgICAgKiBAcGFyYW0gICBzb3VyY2UgICAgICB0aGUgb3JpZ2luYWwgdGV4dCwgdW5ub3JtYWxpemVkCisgICAgKiBAcGFyYW0gICB0YXJnZXQgICAgICB0aGUgcmVzdWx0aW5nIG5vcm1hbGl6ZWQgdGV4dAorICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGludGVybmFsRGVjb21wb3NlKFN0cmluZyBzb3VyY2UsIFN0cmluZ0J1ZmZlciB0YXJnZXQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYm9vbGVhbiBjYW5vbmljYWwgPSAoZm9ybSAmIENPTVBBVElCSUxJVFlfTUFTSykgPT0gMDsKKyAgICAgICAgaW50IGNoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTspIHsKKyAgICAgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBjaCA9IFVURjE2VXRpbC5uZXh0Q29kZVBvaW50KHNvdXJjZSwgaSk7CisgICAgICAgICAgICBpKz1VVEYxNlV0aWwuY29kZVBvaW50TGVuZ3RoKGNoKTsKKyAgICAgICAgICAgIGRhdGEuZ2V0UmVjdXJzaXZlRGVjb21wb3NpdGlvbihjYW5vbmljYWwsIGNoLCBidWZmZXIpOworCisgICAgICAgICAgICAvLyBhZGQgYWxsIG9mIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSBkZWNvbXBvc2l0aW9uLgorICAgICAgICAgICAgLy8gKG1heSBiZSBqdXN0IHRoZSBvcmlnaW5hbCBjaGFyYWN0ZXIsIGlmIHRoZXJlIHdhcworICAgICAgICAgICAgLy8gbm8gZGVjb21wb3NpdGlvbiBtYXBwaW5nKQorCisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGJ1ZmZlci5sZW5ndGgoKTspIHsKKyAgICAgICAgICAgICAgICBjaCA9IFVURjE2VXRpbC5uZXh0Q29kZVBvaW50KGJ1ZmZlciwgaik7CisgICAgICAgICAgICAgICAgais9VVRGMTZVdGlsLmNvZGVQb2ludExlbmd0aChjaCk7CisgICAgICAgICAgICAgICAgaW50IGNoQ2xhc3MgPSBkYXRhLmdldENhbm9uaWNhbENsYXNzKGNoKTsKKyAgICAgICAgICAgICAgICBpbnQgayA9IHRhcmdldC5sZW5ndGgoKTsgLy8gaW5zZXJ0aW9uIHBvaW50CisgICAgICAgICAgICAgICAgaWYgKGNoQ2xhc3MgIT0gMCkgeworCisgICAgICAgICAgICAgICAgICAgIC8vIGJ1YmJsZS1zb3J0IGNvbWJpbmluZyBtYXJrcyBhcyBuZWNlc3NhcnkKKworICAgICAgICAgICAgICAgICAgICBpbnQgY2gyOworICAgICAgICAgICAgICAgICAgICBmb3IgKDsgayA+IDA7IGsgLT0gVVRGMTZVdGlsLmNvZGVQb2ludExlbmd0aChjaDIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaDIgPSBVVEYxNlV0aWwucHJldkNvZGVQb2ludCh0YXJnZXQsIGspOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuZ2V0Q2Fub25pY2FsQ2xhc3MoY2gyKSA8PSBjaENsYXNzKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBVVEYxNlV0aWwuaW5zZXJ0Q29kZVBvaW50KHRhcmdldCwgaywgY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBDb21wb3NlcyB0ZXh0IGluIHBsYWNlLiBUYXJnZXQgbXVzdCBhbHJlYWR5CisgICAgKiBoYXZlIGJlZW4gZGVjb21wb3NlZC4KKyAgICAqIEBwYXJhbSAgIHRhcmdldCAgICAgIGlucHV0OiBkZWNvbXBvc2VkIHRleHQuCisgICAgKiAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQ6IHRoZSByZXN1bHRpbmcgbm9ybWFsaXplZCB0ZXh0LgorICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGludGVybmFsQ29tcG9zZShTdHJpbmdCdWZmZXIgdGFyZ2V0KSB7CisKKyAgICAgICAgaW50IHN0YXJ0ZXJQb3MgPSAwOworICAgICAgICBpbnQgc3RhcnRlckNoID0gVVRGMTZVdGlsLm5leHRDb2RlUG9pbnQodGFyZ2V0LDApOworICAgICAgICBpbnQgY29tcFBvcyA9IFVURjE2VXRpbC5jb2RlUG9pbnRMZW5ndGgoc3RhcnRlckNoKTsKKyAgICAgICAgaW50IGxhc3RDbGFzcyA9IGRhdGEuZ2V0Q2Fub25pY2FsQ2xhc3Moc3RhcnRlckNoKTsKKyAgICAgICAgaWYgKGxhc3RDbGFzcyAhPSAwKSBsYXN0Q2xhc3MgPSAyNTY7IC8vIGZpeCBmb3IgaXJyZWd1bGFyIGNvbWJpbmluZyBzZXF1ZW5jZQorCisgICAgICAgIC8vIExvb3Agb24gdGhlIGRlY29tcG9zZWQgY2hhcmFjdGVycywgY29tYmluaW5nIHdoZXJlIHBvc3NpYmxlCisKKyAgICAgICAgZm9yIChpbnQgZGVjb21wUG9zID0gVVRGMTZVdGlsLmNvZGVQb2ludExlbmd0aChzdGFydGVyQ2gpOyBkZWNvbXBQb3MgPCB0YXJnZXQubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTZVdGlsLm5leHRDb2RlUG9pbnQodGFyZ2V0LCBkZWNvbXBQb3MpOworICAgICAgICAgICAgZGVjb21wUG9zICs9IFVURjE2VXRpbC5jb2RlUG9pbnRMZW5ndGgoY2gpOworICAgICAgICAgICAgaW50IGNoQ2xhc3MgPSBkYXRhLmdldENhbm9uaWNhbENsYXNzKGNoKTsKKyAgICAgICAgICAgIGludCBjb21wb3NpdGUgPSBkYXRhLmdldFBhaXJ3aXNlQ29tcG9zaXRpb24oc3RhcnRlckNoLCBjaCk7CisgICAgICAgICAgICBpZiAoY29tcG9zaXRlICE9IE5vcm1hbGl6ZXJEYXRhLk5PVF9DT01QT1NJVEUKKyAgICAgICAgICAgICYmIChsYXN0Q2xhc3MgPCBjaENsYXNzIHx8IGxhc3RDbGFzcyA9PSAwKSkgeworICAgICAgICAgICAgICAgIFVURjE2VXRpbC5zZXRDb2RlUG9pbnRBdCh0YXJnZXQsIHN0YXJ0ZXJQb3MsIGNvbXBvc2l0ZSk7CisgICAgICAgICAgICAgICAgc3RhcnRlckNoID0gY29tcG9zaXRlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoY2hDbGFzcyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ZXJQb3MgPSBjb21wUG9zOworICAgICAgICAgICAgICAgICAgICBzdGFydGVyQ2ggID0gY2g7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxhc3RDbGFzcyA9IGNoQ2xhc3M7CisgICAgICAgICAgICAgICAgZGVjb21wUG9zICs9IFVURjE2VXRpbC5zZXRDb2RlUG9pbnRBdCh0YXJnZXQsIGNvbXBQb3MsIGNoKTsKKyAgICAgICAgICAgICAgICBjb21wUG9zICs9IFVURjE2VXRpbC5jb2RlUG9pbnRMZW5ndGgoY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRhcmdldC5zZXRMZW5ndGgoY29tcFBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBDb250YWlucyBub3JtYWxpemF0aW9uIGRhdGEgZnJvbSB0aGUgVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UuCisgICAgKiB1c2UgZmFsc2UgZm9yIHRoZSBtaW5pbWFsIHNldCwgdHJ1ZSBmb3IgdGhlIHJlYWwgc2V0LgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgTm9ybWFsaXplckRhdGEgZGF0YSA9IG51bGw7CisKKyAgICAvKioKKyAgICAqIEp1c3QgYWNjZXNzaWJsZSBmb3IgdGVzdGluZy4KKyAgICAqLworICAgIGJvb2xlYW4gZ2V0RXhjbHVkZWQgKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGRhdGEuZ2V0RXhjbHVkZWQoY2gpOworICAgIH0KKworICAgIC8qKgorICAgICogSnVzdCBhY2Nlc3NpYmxlIGZvciB0ZXN0aW5nLgorICAgICovCisgICAgU3RyaW5nIGdldFJhd0RlY29tcG9zaXRpb25NYXBwaW5nIChjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBkYXRhLmdldFJhd0RlY29tcG9zaXRpb25NYXBwaW5nKGNoKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvVW5pY29kZU5vcm1hbGl6ZXJDb25mb3JtYW5jZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1VuaWNvZGVOb3JtYWxpemVyQ29uZm9ybWFuY2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU1OTY1NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL1VuaWNvZGVOb3JtYWxpemVyQ29uZm9ybWFuY2VUZXN0LmphdmEKQEAgLTAsMCArMSwyNjggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Qubm9ybWFsaXplcjsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RVdGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCisKK3B1YmxpYyBjbGFzcyBVbmljb2RlTm9ybWFsaXplckNvbmZvcm1hbmNlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIFVuaWNvZGVOb3JtYWxpemVyIG5vcm1hbGl6ZXJfQywgbm9ybWFsaXplcl9ELCBub3JtYWxpemVyX0tDLCBub3JtYWxpemVyX0tEOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBVbmljb2RlTm9ybWFsaXplckNvbmZvcm1hbmNlVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFVuaWNvZGVOb3JtYWxpemVyQ29uZm9ybWFuY2VUZXN0KCkgeworICAgICAgICAvLyBEb2Vzbid0IG1hdHRlciB3aGF0IHRoZSBzdHJpbmcgYW5kIG1vZGUgYXJlOyB3ZSdsbCBjaGFuZ2UKKyAgICAgICAgLy8gdGhlbSBsYXRlciBhcyBuZWVkZWQuCisgICAgICAgIG5vcm1hbGl6ZXJfQyA9IG5ldyBVbmljb2RlTm9ybWFsaXplcihVbmljb2RlTm9ybWFsaXplci5DLCB0cnVlKTsKKyAgICAgICAgbm9ybWFsaXplcl9EID0gbmV3IFVuaWNvZGVOb3JtYWxpemVyKFVuaWNvZGVOb3JtYWxpemVyLkQsIGZhbHNlKTsKKyAgICAgICAgbm9ybWFsaXplcl9LQyA9IG5ldyBVbmljb2RlTm9ybWFsaXplcihVbmljb2RlTm9ybWFsaXplci5LQywgZmFsc2UpOworICAgICAgICBub3JtYWxpemVyX0tEID0gbmV3IFVuaWNvZGVOb3JtYWxpemVyKFVuaWNvZGVOb3JtYWxpemVyLktELCBmYWxzZSk7CisgICAgICAgIAorICAgIH0KKyAgICAvLyBtb3JlIGludGVyZXN0aW5nIGNvbmZvcm1hbmNlIHRlc3QgY2FzZXMsIG5vdCBpbiB0aGUgdW5pY29kZS5vcmcgTm9ybWFsaXphdGlvblRlc3QudHh0CisgICAgc3RhdGljICBTdHJpbmdbXSBtb3JlQ2FzZXMgPXsKKyAgICAgICAgLy8gTWFya3VzIDIwMDFhdWczMAorICAgICAgICAiMDA2MSAwMzMyIDAzMDg7MDBFNCAwMzMyOzAwNjEgMDMzMiAwMzA4OzAwRTQgMDMzMjswMDYxIDAzMzIgMDMwODsgIyBNYXJrdXMgMCIsCisgICAgCisgICAgICAgIC8vIE1hcmt1cyAyMDAxb2N0MjYgLSB0ZXN0IGVkZ2UgY2FzZSBmb3IgaXRlcmF0aW9uOiBVKzBmNzMuY2M9PTAgYnV0IGRlY29tcG9zaXRpb24ubGVhZC5jYz09MTI5CisgICAgICAgICIwMDYxIDAzMDEgMEY3MzswMEUxIDBGNzEgMEY3MjswMDYxIDBGNzEgMEY3MiAwMzAxOzAwRTEgMEY3MSAwRjcyOzAwNjEgMEY3MSAwRjcyIDAzMDE7ICMgTWFya3VzIDEiCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGNvbmZvcm1hbmNlIG9mIE5ld05vcm1hbGl6ZXIgdG8KKyAgICAgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1L2NvbmZvcm1hbmNlL0RyYWZ0LVRlc3RTdWl0ZS50eHQuCisgICAgICogVGhpcyBmaWxlIG11c3QgYmUgbG9jYXRlZCBhdCB0aGUgcGF0aCBzcGVjaWZpZWQgYXMgVEVTVF9TVUlURV9GSUxFLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb25mb3JtYW5jZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGlucHV0ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGxpbmUgPSBudWxsOworICAgICAgICBTdHJpbmdbXSBmaWVsZHMgPSBuZXcgU3RyaW5nWzVdOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgcGFzc0NvdW50ID0gMDsKKyAgICAgICAgaW50IGZhaWxDb3VudCA9IDA7CisgICAgICAgIFVuaWNvZGVTZXQgb3RoZXIgPSBuZXcgVW5pY29kZVNldCgwLCAweDEwZmZmZik7CisgICAgICAgIGludCBjPTA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnB1dCA9IFRlc3RVdGlsLmdldERhdGFSZWFkZXIoInVuaWNvZGUvTm9ybWFsaXphdGlvblRlc3QudHh0Iik7CisgICAgICAgICAgICBmb3IgKGludCBjb3VudCA9IDA7OysrY291bnQpIHsKKyAgICAgICAgICAgICAgICBsaW5lID0gaW5wdXQucmVhZExpbmUoKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vcmVhZCB0aGUgZXh0cmEgdGVzdCBjYXNlcworICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA+IG1vcmVDYXNlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGNvdW50ID09IG1vcmVDYXNlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbCBkb25lCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsaW5lID0gbW9yZUNhc2VzW2NvdW50KytdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwKSBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIC8vIEV4cGVjdCA1IGNvbHVtbnMgb2YgdGhpcyBmb3JtYXQ6CisgICAgICAgICAgICAgICAgLy8gMUUwQzsxRTBDOzAwNDQgMDMyMzsxRTBDOzAwNDQgMDMyMzsgIyA8Y29tbWVudHM+CisKKyAgICAgICAgICAgICAgICAvLyBTa2lwIGNvbW1lbnRzCisgICAgICAgICAgICAgICAgaWYgKGxpbmUuY2hhckF0KDApID09ICcjJyAgfHwgbGluZS5jaGFyQXQoMCk9PSdAJykgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAvLyBQYXJzZSBvdXQgdGhlIGZpZWxkcworICAgICAgICAgICAgICAgIGhleHNwbGl0KGxpbmUsICc7JywgZmllbGRzLCBidWYpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBhIHNpbmdsZSBjb2RlIHBvaW50IGZyb20gdGhlICJvdGhlciIgVW5pY29kZVNldAorICAgICAgICAgICAgICAgIGlmKGZpZWxkc1swXS5sZW5ndGgoKT09VVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChmaWVsZHNbMF0sMCwgMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgYz1VVEYxNi5jaGFyQXQoZmllbGRzWzBdLDApOyAKKyAgICAgICAgICAgICAgICAgICAgaWYoMHhhYzIwPD1jICYmIGM8PTB4ZDczZikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90IGFuIGV4aGF1c3RpdmUgdGVzdCBydW46IHNraXAgbW9zdCBIYW5ndWwgc3lsbGFibGVzCisgICAgICAgICAgICAgICAgICAgICAgICBpZihjPT0weGFjMjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlci5yZW1vdmUoMHhhYzIwLCAweGQ3M2YpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3RoZXIucmVtb3ZlKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2hlY2tDb25mb3JtYW5jZShmaWVsZHMsIGxpbmUpKSB7CisgICAgICAgICAgICAgICAgICAgICsrcGFzc0NvdW50OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICsrZmFpbENvdW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKGNvdW50ICUgMTAwMCkgPT0gOTk5KSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJMaW5lICIgKyAoY291bnQrMSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaW5wdXQuY2xvc2UoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleDIpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV4LnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ291bGRuJ3QgcmVhZCBmaWxlICIKKyAgICAgICAgICAgICAgKyBleC5nZXRDbGFzcygpLmdldE5hbWUoKSArICIgIiArIGV4LmdldE1lc3NhZ2UoKQorICAgICAgICAgICAgICArICIgbGluZSA9ICIgKyBsaW5lCisgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZmFpbENvdW50ICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJUb3RhbDogIiArIGZhaWxDb3VudCArICIgbGluZXMgZmFpbGVkLCAiICsKKyAgICAgICAgICAgICAgICAgIHBhc3NDb3VudCArICIgbGluZXMgcGFzc2VkIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiVG90YWw6ICIgKyBwYXNzQ291bnQgKyAiIGxpbmVzIHBhc3NlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFZlcmlmeSB0aGUgY29uZm9ybWFuY2Ugb2YgdGhlIGdpdmVuIGxpbmUgb2YgdGhlIFVuaWNvZGUKKyAgICAgKiBub3JtYWxpemF0aW9uIChVVFIgMTUpIHRlc3Qgc3VpdGUgZmlsZS4gIEZvciBlYWNoIGxpbmUsCisgICAgICogdGhlcmUgYXJlIGZpdmUgY29sdW1ucywgY29ycmVzcG9uZGluZyB0byBmaWVsZFswXS4uZmllbGRbNF0uCisgICAgICoKKyAgICAgKiBUaGUgZm9sbG93aW5nIGludmFyaWFudHMgbXVzdCBiZSB0cnVlIGZvciBhbGwgY29uZm9ybWFudCBpbXBsZW1lbnRhdGlvbnMKKyAgICAgKiAgYzIgPT0gTkZDKGMxKSA9PSBORkMoYzIpID09IE5GQyhjMykKKyAgICAgKiAgYzMgPT0gTkZEKGMxKSA9PSBORkQoYzIpID09IE5GRChjMykKKyAgICAgKiAgYzQgPT0gTkZLQyhjMSkgPT0gTkZLQyhjMikgPT0gTkZLQyhjMykgPT0gTkZLQyhjNCkgPT0gTkZLQyhjNSkKKyAgICAgKiAgYzUgPT0gTkZLRChjMSkgPT0gTkZLRChjMikgPT0gTkZLRChjMykgPT0gTkZLRChjNCkgPT0gTkZLRChjNSkKKyAgICAgKgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgNSBjb2x1bW5zCisgICAgICogQHBhcmFtIGxpbmUgdGhlIHNvdXJjZSBsaW5lIGZyb20gdGhlIHRlc3Qgc3VpdGUgZmlsZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdGVzdCBwYXNzZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY2hlY2tDb25mb3JtYW5jZShTdHJpbmdbXSBmaWVsZCwgU3RyaW5nIGxpbmUpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGJvb2xlYW4gcGFzcyA9IHRydWU7CisgICAgICAgLy8gU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsgLy8gc2NyYXRjaAorICAgICAgICBTdHJpbmcgb3V0OworICAgICAgICBpbnQgaT0wOworICAgICAgICBmb3IgKGk9MDsgaTw1OyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpPDMpIHsKKyAgICAgICAgICAgICAgICBvdXQgPSBub3JtYWxpemVyX0Mubm9ybWFsaXplKGZpZWxkW2ldKTsKKyAgICAgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJDIiwgZmllbGRbaV0sIG91dCwgZmllbGRbMV0sICJjMiE9QyhjIiArIChpKzEpKTsKKyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0ID0gbm9ybWFsaXplcl9ELm5vcm1hbGl6ZShmaWVsZFtpXSk7CisgICAgICAgICAgICAgICAgcGFzcyAmPSBhc3NlcnRFcXVhbCgiRCIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzJdLCAiYzMhPUQoYyIgKyAoaSsxKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQgPSBub3JtYWxpemVyX0tDLm5vcm1hbGl6ZShmaWVsZFtpXSk7CisgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJLQyIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzNdLCAiYzQhPUtDKGMiICsgKGkrMSkpOworCisgICAgICAgICAgICBvdXQgPSBub3JtYWxpemVyX0tELm5vcm1hbGl6ZShmaWVsZFtpXSk7CisgICAgICAgICAgICBwYXNzICY9IGFzc2VydEVxdWFsKCJLRCIsIGZpZWxkW2ldLCBvdXQsIGZpZWxkWzRdLCAiYzUhPUtEKGMiICsgKGkrMSkpOworICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCFwYXNzKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGxpbmUpOworICAgICAgICB9ICAgICAKKyAgICAgICAKKyAgICAgICAgcmV0dXJuIHBhc3M7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBwYXJhbSBvcCBuYW1lIG9mIG5vcm1hbGl6YXRpb24gZm9ybSwgZS5nLiwgIktDIgorICAgICAqIEBwYXJhbSBzIHN0cmluZyBiZWluZyBub3JtYWxpemVkCisgICAgICogQHBhcmFtIGdvdCB2YWx1ZSByZWNlaXZlZAorICAgICAqIEBwYXJhbSBleHAgZXhwZWN0ZWQgdmFsdWUKKyAgICAgKiBAcGFyYW0gbXNnIGRlc2NyaXB0aW9uIG9mIHRoaXMgdGVzdAorICAgICAqIEByZXR1cm5zIHRydWUgaWYgZ290ID09IGV4cAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBhc3NlcnRFcXVhbChTdHJpbmcgb3AsIFN0cmluZyBzLCBTdHJpbmcgZ290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwLCBTdHJpbmcgbXNnKSB7CisgICAgICAgIGlmIChleHAuZXF1YWxzKGdvdCkpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVycmxuKCgiICAgICAgIiArIG1zZyArICIpICIgKyBvcCArICIoIiArIHMgKyAiKT0iICsgaGV4KGdvdCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBleHAuICIgKyBoZXgoZXhwKSkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3BsaXQgYSBzdHJpbmcgaW50byBwaWVjZXMgYmFzZWQgb24gdGhlIGdpdmVuIGRlbGltaXRlcgorICAgICAqIGNoYXJhY3Rlci4gIFRoZW4sIHBhcnNlIHRoZSByZXN1bHRhbnQgZmllbGRzIGZyb20gaGV4IGludG8KKyAgICAgKiBjaGFyYWN0ZXJzLiAgVGhhdCBpcywgIjAwNDAgMDQwMDswQzAwOzA4OTkiIC0+IG5ldyBTdHJpbmdbXSB7CisgICAgICogIlx1MDA0MFx1MDQwMCIsICJcdTBDMDAiLCAiXHUwODk5IiB9LiAgVGhlIG91dHB1dCBpcyBhc3N1bWVkIHRvCisgICAgICogYmUgb2YgdGhlIHByb3BlciBsZW5ndGggYWxyZWFkeSwgYW5kIGV4YWN0bHkgb3V0cHV0Lmxlbmd0aAorICAgICAqIGZpZWxkcyBhcmUgcGFyc2VkLiAgSWYgdGhlcmUgYXJlIHRvbyBmZXcgYW4gZXhjZXB0aW9uIGlzCisgICAgICogdGhyb3duLiAgSWYgdGhlcmUgYXJlIHRvbyBtYW55IHRoZSBleHRyYXMgYXJlIGlnbm9yZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYnVmIHNjcmF0Y2ggYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBoZXhzcGxpdChTdHJpbmcgcywgY2hhciBkZWxpbWl0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBvdXRwdXQsIFN0cmluZ0J1ZmZlciBidWYpIHsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGludCBwb3MgPSAwOworICAgICAgICBmb3IgKGk9MDsgaTxvdXRwdXQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGludCBkZWxpbSA9IHMuaW5kZXhPZihkZWxpbWl0ZXIsIHBvcyk7CisgICAgICAgICAgICBpZiAoZGVsaW0gPCAwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTWlzc2luZyBmaWVsZCBpbiAiICsgcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBPdXIgZmllbGQgaXMgZnJvbSBwb3MuLmRlbGltLTEuCisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgdG9IZXggPSBzLnN1YnN0cmluZyhwb3MsZGVsaW0pOworICAgICAgICAgICAgcG9zID0gZGVsaW07CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgaW50IGxlbiA9IHRvSGV4Lmxlbmd0aCgpOworICAgICAgICAgICAgd2hpbGUoaW5kZXg8IGxlbil7CisgICAgICAgICAgICAgICAgaWYodG9IZXguY2hhckF0KGluZGV4KT09JyAnKXsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgaW50IHNwYWNlUG9zID0gdG9IZXguaW5kZXhPZignICcsIGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgaWYoc3BhY2VQb3M9PS0xKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZEludChidWYsdG9IZXguc3Vic3RyaW5nKGluZGV4LGxlbikscyk7CisgICAgICAgICAgICAgICAgICAgICAgICBzcGFjZVBvcyA9IGxlbjsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRJbnQoYnVmLHRvSGV4LnN1YnN0cmluZyhpbmRleCwgc3BhY2VQb3MpLHMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3BhY2VQb3MrMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPCAxKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRW1wdHkgZmllbGQgIiArIGkgKyAiIGluICIgKyBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dHB1dFtpXSA9IGJ1Zi50b1N0cmluZygpOworICAgICAgICAgICAgKytwb3M7IC8vIFNraXAgb3ZlciBkZWxpbQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhcHBlbmRJbnQoU3RyaW5nQnVmZmVyIGJ1ZiwgU3RyaW5nIHN0clRvSGV4LCBTdHJpbmcgcyl7CisgICAgICAgIGludCBoZXggPSBJbnRlZ2VyLnBhcnNlSW50KHN0clRvSGV4LDE2KTsKKyAgICAgICAgaWYgKGhleCA8IDAgKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPdXQgb2YgcmFuZ2UgaGV4ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGV4ICsgIiBpbiAiICsgcyk7CisgICAgICAgIH1lbHNlIGlmIChoZXggPiAweEZGRkYpeworICAgICAgICAgICAgYnVmLmFwcGVuZCgoY2hhcikoKGhleD4+MTApKzB4ZDdjMCkpOyAKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGNoYXIpKChoZXgmMHgzZmYpfDB4ZGMwMCkpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGNoYXIpIGhleCk7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgICAgICAKKyAgICAvLyBTcGVjaWZpYyB0ZXN0cyBmb3IgZGVidWdnaW5nLiAgVGhlc2UgYXJlIGdlbmVyYWxseSBmYWlsdXJlcworICAgIC8vIHRha2VuIGZyb20gdGhlIGNvbmZvcm1hbmNlIGZpbGUsIGJ1dCBjdWxsZWQgb3V0IHRvIG1ha2UKKyAgICAvLyBkZWJ1Z2dpbmcgZWFzaWVyLiAgVGhlc2UgY2FuIGJlIGVsaW1pbmF0ZWQgd2l0aG91dCBhZmZlY3RpbmcKKyAgICAvLyBjb3ZlcmFnZS4KKworICAgIHB1YmxpYyB2b2lkIF9oaWRlVGVzdENhc2U2KCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgX3Rlc3RPbmVMaW5lKCIwMzg1OzAzODU7MDBBOCAwMzAxOzAwMjAgMDMwOCAwMzAxOzAwMjAgMDMwOCAwMzAxOyIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIF90ZXN0T25lTGluZShTdHJpbmcgbGluZSkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nW10gZmllbGRzID0gbmV3IFN0cmluZ1s1XTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgLy8gUGFyc2Ugb3V0IHRoZSBmaWVsZHMKKyAgICAgICAgaGV4c3BsaXQobGluZSwgJzsnLCBmaWVsZHMsIGJ1Zik7CisgICAgICAgIGNoZWNrQ29uZm9ybWFuY2UoZmllbGRzLCBsaW5lKTsKKyAgICB9CisgICAgCisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9ub3JtYWxpemVyL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kN2E5MjdhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L25vcm1hbGl6ZXIvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Rlc3RzIGZvciBOb3JtYWxpemVyLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYxMzcwYmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1NoYXJlZCB1dGlsaXRpZXMgZm9yIHRlc3RzLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL0NvbGxhdGlvblBlcmZvcm1hbmNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvQ29sbGF0aW9uUGVyZm9ybWFuY2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzNmNjgzMTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9Db2xsYXRpb25QZXJmb3JtYW5jZVRlc3QuamF2YQpAQCAtMCwwICsxLDEyNjIgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CisKK3B1YmxpYyBjbGFzcyBDb2xsYXRpb25QZXJmb3JtYW5jZVRlc3QgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgdXNhZ2VTdHJpbmcgPSAKKyAgICAgICAgInVzYWdlOiAgY29sbHBlcmYgb3B0aW9ucy4uLlxuIgorICAgICAgICArICItaGVscCAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IHRoaXMgbWVzc2FnZS5cbiIKKyAgICAgICAgKyAiLWZpbGUgZmlsZV9uYW1lICAgICAgICAgICAgdXRmLTE2IGZvcm1hdCBmaWxlIG9mIG5hbWVzLlxuIgorICAgICAgICArICItbG9jYWxlIG5hbWUgICAgICAgICAgICAgICBJQ1UgbG9jYWxlIHRvIHVzZS4gIERlZmF1bHQgaXMgZW5fVVNcbiIKKyAgICAgICAgKyAiLXJ1bGVzIGZpbGVfbmFtZSAgICAgICAgICAgQ29sbGF0aW9uIHJ1bGVzIGZpbGUgKG92ZXJyaWRlcyBsb2NhbGUpXG4iCisgICAgICAgIC8vKyAiLWxhbmdpZCAweDEyMzQgICAgICAgICAgICAgV2luZG93cyBMYW5ndWFnZSBJRCBudW1iZXIuICBEZWZhdWx0IHRvIHZhbHVlIGZvciAtbG9jYWxlIG9wdGlvblxuIgorICAgICAgICAvLysgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZSBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2xpYnJhcnkvcHNkay93aW5iYXNlL25sc184eG8zLmh0bVxuIgorICAgICAgICAvLysgIi13aW4gICAgICAgICAgICAgICAgICAgICAgIFJ1biB0ZXN0IHVzaW5nIFdpbmRvd3MgbmF0aXZlIHNlcnZpY2VzLiAgKElDVSBpcyBkZWZhdWx0KVxuIgorICAgICAgICAvLysgIi11bml4ICAgICAgICAgICAgICAgICAgICAgIFJ1biB0ZXN0IHVzaW5nIFVuaXggc3RyeGZybSwgc3RyY29sbCBzZXJ2aWNlcy5cbiIKKyAgICAgICAgLy8rICItdXNlbGVuICAgICAgICAgICAgICAgICAgICBVc2UgQVBJIHdpdGggc3RyaW5nIGxlbmd0aHMuICBEZWZhdWx0IGlzIG51bGwtdGVybWluYXRlZCBzdHJpbmdzXG4iCisgICAgICAgICsgIi11c2VrZXlzICAgICAgICAgICAgICAgICAgIFJ1biB0ZXN0cyB1c2luZyBzb3J0a2V5cyByYXRoZXIgdGhhbiBzdHJjb2xsXG4iCisgICAgICAgICsgIi1zdHJjbXAgICAgICAgICAgICAgICAgICAgIFJ1biB0ZXN0cyB1c2luZyB1X3N0cmNtcCByYXRoZXIgdGhhbiBzdHJjb2xsXG4iCisgICAgICAgICsgIi1zdHJjbXBDUE8gICAgICAgICAgICAgICAgIFJ1biB0ZXN0cyB1c2luZyB1X3N0cmNtcENvZGVQb2ludE9yZGVyIHJhdGhlciB0aGFuIHN0cmNvbGxcbiIKKyAgICAgICAgKyAiLWxvb3Agbm5ubiAgICAgICAgICAgICAgICAgTG9vcGNvdW50IGZvciB0ZXN0LiAgQWRqdXN0IGZvciByZWFzb25hYmxlIHRvdGFsIHJ1bm5pbmcgdGltZS5cbiIKKyAgICAgICAgKyAiLWlsb29wIG4gICAgICAgICAgICAgICAgICAgSW5uZXIgTG9vcCBDb3VudC4gIERlZmF1bHQgPSAxLiAgTnVtYmVyIG9mIGNhbGxzIHRvIGZ1bmN0aW9uXG4iCisgICAgICAgICsgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlciB0ZXN0IGF0IGVhY2ggY2FsbCBwb2ludC4gIEZvciBtZWFzdXJpbmcgdGVzdCBvdmVyaGVhZC5cbiIKKyAgICAgICAgKyAiLXRlcnNlICAgICAgICAgICAgICAgICAgICAgVGVyc2UgbnVtYmVycy1vbmx5IG91dHB1dC4gIEludGVuZGVkIGZvciB1c2UgYnkgc2NyaXB0cy5cbiIKKyAgICAgICAgKyAiLWZyZW5jaCAgICAgICAgICAgICAgICAgICAgRnJlbmNoIGFjY2VudCBvcmRlcmluZ1xuIgorICAgICAgICArICItZnJlbmNob2ZmICAgICAgICAgICAgICAgICBObyBGcmVuY2ggYWNjZW50IG9yZGVyaW5nIChmb3IgdXNlIHdpdGggRnJlbmNoIGxvY2FsZXMuKVxuIgorICAgICAgICArICItbm9ybSAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemluZyBtb2RlIG9uXG4iCisgICAgICAgICsgIi1zaGlmdGVkICAgICAgICAgICAgICAgICAgIFNoaWZ0ZWQgbW9kZVxuIgorICAgICAgICArICItbG93ZXIgICAgICAgICAgICAgICAgICAgICBMb3dlciBjYXNlIGZpcnN0XG4iCisgICAgICAgICsgIi11cHBlciAgICAgICAgICAgICAgICAgICAgIFVwcGVyIGNhc2UgZmlyc3RcbiIKKyAgICAgICAgKyAiLWNhc2UgICAgICAgICAgICAgICAgICAgICAgRW5hYmxlIHNlcGFyYXRlIGNhc2UgbGV2ZWxcbiIKKyAgICAgICAgKyAiLWxldmVsIG4gICAgICAgICAgICAgICAgICAgU29ydCBsZXZlbCwgMSB0byA1LCBmb3IgUHJpbWFyeSwgU2VjbmRhcnksIFRlcnRpYXJ5LCBRdWF0ZXJuYXJ5LCBJZGVudGljYWxcbiIKKyAgICAgICAgKyAiLWtleWhpc3QgICAgICAgICAgICAgICAgICAgUHJvZHVjZSBhIHRhYmxlIHNvcnQga2V5IHNpemUgdnMuIHN0cmluZyBsZW5ndGhcbiIKKyAgICAgICAgKyAiLWJpbnNlYXJjaCAgICAgICAgICAgICAgICAgQmluYXJ5IFNlYXJjaCB0aW1pbmcgdGVzdFxuIgorICAgICAgICArICIta2V5Z2VuICAgICAgICAgICAgICAgICAgICBTb3J0IEtleSBHZW5lcmF0aW9uIHRpbWluZyB0ZXN0XG4iCisgICAgICAgICsgIi1xc29ydCAgICAgICAgICAgICAgICAgICAgIFF1aWNrc29ydCB0aW1pbmcgdGVzdFxuIgorICAgICAgICArICItaXRlciAgICAgICAgICAgICAgICAgICAgICBJdGVyYXRpb24gUGVyZm9ybWFuY2UgVGVzdFxuIgorICAgICAgICArICItZHVtcCAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IHN0cmluZ3MsIHNvcnQga2V5cyBhbmQgQ0VzLlxuIgorICAgICAgICArICItamF2YSAgICAgICAgICAgICAgICAgICAgICBSdW4gdGVzdCB1c2luZyBqYXZhLnRleHQuQ29sbGF0b3IuXG4iOworICAgIAorICAgIC8vZW51bSB7RkxBRywgTlVNLCBTVFJJTkd9IHR5cGU7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9mTmFtZSAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9sb2NhbGUgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiZW5fVVMiKTsKKyAgICAvL3N0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfbGFuZ2lkICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIjAiKTsgICAgICAgICAvLyBEZWZhdWx0cyB0byB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIG9wdF9sb2NhbGUuCisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9ydWxlcyAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9oZWxwICAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9sb29wQ291bnQgID0gbmV3IFN0cmluZ0J1ZmZlcigiMSIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfaUxvb3BDb3VudCA9IG5ldyBTdHJpbmdCdWZmZXIoIjEiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X3RlcnNlICAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCJmYWxzZSIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfcXNvcnQgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfYmluc2VhcmNoICA9IG5ldyBTdHJpbmdCdWZmZXIoIiIpOworICAgIHN0YXRpYyBTdHJpbmdCdWZmZXIgdGVtcF9vcHRfaWN1ICAgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoInRydWUiKTsKKyAgICAvL3N0YXRpYyBTdHJpbmdCdWZmZXIgb3B0X3dpbiAgICAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsgICAgICAvLyBSdW4gd2l0aCBXaW5kb3dzIG5hdGl2ZSBmdW5jdGlvbnMuCisgICAgLy9zdGF0aWMgU3RyaW5nQnVmZmVyIG9wdF91bml4ICAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7ICAgICAgLy8gUnVuIHdpdGggVU5JWCBzdHJjb2xsLCBzdHJ4ZnJtIGZ1bmN0aW9ucy4KKyAgICAvL3N0YXRpYyBTdHJpbmdCdWZmZXIgb3B0X3VzZWxlbiAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X3VzZWtleXMgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X3N0cmNtcCAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X3N0cmNtcENQTyAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X25vcm0gICAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X2tleWdlbiAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X2ZyZW5jaCAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X2ZyZW5jaG9mZiAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X3NoaWZ0ZWQgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X2xvd2VyICAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X3VwcGVyICAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X2Nhc2UgICAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIiKTsKKyAgICBzdGF0aWMgU3RyaW5nQnVmZmVyIHRlbXBfb3B0X2xldmVsICAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCIwIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9rZXloaXN0ICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9pdGVydGVzdCAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9kdW1wICAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgc3RhdGljIFN0cmluZ0J1ZmZlciB0ZW1wX29wdF9qYXZhICAgICAgID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgCisgICAgCisgICAgc3RhdGljIFN0cmluZyAgIG9wdF9mTmFtZSAgICAgID0gIiI7CisgICAgc3RhdGljIFN0cmluZyAgIG9wdF9sb2NhbGUgICAgID0gImVuX1VTIjsKKyAgICAvL3N0YXRpYyBpbnQgICAgICBvcHRfbGFuZ2lkICAgICA9IDA7ICAgICAgICAgLy8gRGVmYXVsdHMgdG8gdmFsdWUgY29ycmVzcG9uZGluZyB0byBvcHRfbG9jYWxlLgorICAgIHN0YXRpYyBTdHJpbmcgICBvcHRfcnVsZXMgICAgICA9ICIiOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfaGVscCAgICAgICA9IGZhbHNlOworICAgIHN0YXRpYyBpbnQgICAgICBvcHRfbG9vcENvdW50ICA9IDE7CisgICAgc3RhdGljIGludCAgICAgIG9wdF9pTG9vcENvdW50ID0gMTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X3RlcnNlICAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X3Fzb3J0ICAgICAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X2JpbnNlYXJjaCAgPSBmYWxzZTsKKyAgICBzdGF0aWMgYm9vbGVhbiAgb3B0X2ljdSAgICAgICAgPSB0cnVlOworICAgIC8vc3RhdGljIGJvb2xlYW4gIG9wdF93aW4gICAgICAgID0gZmFsc2U7ICAgICAgLy8gUnVuIHdpdGggV2luZG93cyBuYXRpdmUgZnVuY3Rpb25zLgorICAgIC8vc3RhdGljIGJvb2xlYW4gIG9wdF91bml4ICAgICAgID0gZmFsc2U7ICAgICAgLy8gUnVuIHdpdGggVU5JWCBzdHJjb2xsLCBzdHJ4ZnJtIGZ1bmN0aW9ucy4KKyAgICAvL3N0YXRpYyBib29sZWFuICBvcHRfdXNlbGVuICAgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfdXNla2V5cyAgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfc3RyY21wICAgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfc3RyY21wQ1BPICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfbm9ybSAgICAgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfa2V5Z2VuICAgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfZnJlbmNoICAgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfZnJlbmNob2ZmICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfc2hpZnRlZCAgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfbG93ZXIgICAgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfdXBwZXIgICAgICA9IGZhbHNlOworICAgIHN0YXRpYyBib29sZWFuICBvcHRfY2FzZSAgICAgICA9IGZhbHNlOworICAgIHN0YXRpYyBpbnQgICAgICBvcHRfbGV2ZWwgICAgICA9IDA7CisgICAgc3RhdGljIGJvb2xlYW4gIG9wdF9rZXloaXN0ICAgID0gZmFsc2U7CisgICAgc3RhdGljIGJvb2xlYW4gIG9wdF9pdGVydGVzdCAgID0gZmFsc2U7CisgICAgc3RhdGljIGJvb2xlYW4gIG9wdF9kdW1wICAgICAgID0gZmFsc2U7CisgICAgc3RhdGljIGJvb2xlYW4gIG9wdF9qYXZhICAgICAgID0gZmFsc2U7CisKKyAgICBzdGF0aWMgT3B0aW9uU3BlY1tdIG9wdGlvbnMgPSB7CisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItZmlsZSIsIDIsIHRlbXBfb3B0X2ZOYW1lKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1sb2NhbGUiLCAyLCB0ZW1wX29wdF9sb2NhbGUpLAorICAgICAgICAvL25ldyBPcHRpb25TcGVjKCItbGFuZ2lkIiwgMSwgdGVtcF9vcHRfbGFuZ2lkKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1ydWxlcyIsIDIsIHRlbXBfb3B0X3J1bGVzKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1xc29ydCIsIDAsIHRlbXBfb3B0X3Fzb3J0KSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1iaW5zZWFyY2giLCAwLCB0ZW1wX29wdF9iaW5zZWFyY2gpLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLWl0ZXIiLCAwLCB0ZW1wX29wdF9pdGVydGVzdCksCisgICAgICAgIC8vbmV3IE9wdGlvblNwZWMoIi13aW4iLCAwLCB0ZW1wX29wdF93aW4pLAorICAgICAgICAvL25ldyBPcHRpb25TcGVjKCItdW5peCIsIDAsIHRlbXBfb3B0X3VuaXgpLAorICAgICAgICAvL25ldyBPcHRpb25TcGVjKCItdXNlbGVuIiwgMCwgdGVtcF9vcHRfdXNlbGVuKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi11c2VrZXlzIiwgMCwgdGVtcF9vcHRfdXNla2V5cyksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItc3RyY21wIiwgMCwgdGVtcF9vcHRfc3RyY21wKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1zdHJjbXBDUE8iLCAwLCB0ZW1wX29wdF9zdHJjbXBDUE8pLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLW5vcm0iLCAwLCB0ZW1wX29wdF9ub3JtKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1mcmVuY2giLCAwLCB0ZW1wX29wdF9mcmVuY2gpLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLWZyZW5jaG9mZiIsIDAsIHRlbXBfb3B0X2ZyZW5jaG9mZiksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItc2hpZnRlZCIsIDAsIHRlbXBfb3B0X3NoaWZ0ZWQpLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLWxvd2VyIiwgMCwgdGVtcF9vcHRfbG93ZXIpLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLXVwcGVyIiwgMCwgdGVtcF9vcHRfdXBwZXIpLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLWNhc2UiLCAwLCB0ZW1wX29wdF9jYXNlKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1sZXZlbCIsIDEsIHRlbXBfb3B0X2xldmVsKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1rZXloaXN0IiwgMCwgdGVtcF9vcHRfa2V5aGlzdCksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCIta2V5Z2VuIiwgMCwgdGVtcF9vcHRfa2V5Z2VuKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1sb29wIiwgMSwgdGVtcF9vcHRfbG9vcENvdW50KSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1pbG9vcCIsIDEsIHRlbXBfb3B0X2lMb29wQ291bnQpLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLXRlcnNlIiwgMCwgdGVtcF9vcHRfdGVyc2UpLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLWR1bXAiLCAwLCB0ZW1wX29wdF9kdW1wKSwKKyAgICAgICAgbmV3IE9wdGlvblNwZWMoIi1oZWxwIiwgMCwgdGVtcF9vcHRfaGVscCksCisgICAgICAgIG5ldyBPcHRpb25TcGVjKCItPyIsIDAsIHRlbXBfb3B0X2hlbHApLAorICAgICAgICBuZXcgT3B0aW9uU3BlYygiLWphdmEiLCAwLCB0ZW1wX29wdF9qYXZhKSwKKyAgICB9OworICAgIAorICAgIHN0YXRpYyBqYXZhLnRleHQuQ29sbGF0b3IgamF2YUNvbCA9IG51bGw7CisgICAgc3RhdGljIGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IgaWN1Q29sID0gbnVsbDsKKyAgICBzdGF0aWMgTnVtYmVyRm9ybWF0IG5mID0gbnVsbDsKKyAgICBzdGF0aWMgTnVtYmVyRm9ybWF0IHBlcmNlbnQgPSBudWxsOworICAgIEFycmF5TGlzdCBsaXN0ID0gbnVsbDsKKyAgICBTdHJpbmdbXSB0ZXN0cyA9IG51bGw7CisgICAgaW50IGdsb2JhbENvdW50ID0gMDsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIENvbGxhdGlvblBlcmZvcm1hbmNlVGVzdCBjb2xsUGVyZiA9IG5ldyBDb2xsYXRpb25QZXJmb3JtYW5jZVRlc3QoKTsKKyAgICAgICAgaWYgKCAhQ29sbGF0aW9uUGVyZm9ybWFuY2VUZXN0LnByb2Nlc3NPcHRpb25zKGFyZ3MpIHx8IG9wdF9oZWxwIHx8IG9wdF9mTmFtZS5sZW5ndGgoKT09MCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHVzYWdlU3RyaW5nKTsKKyAgICAgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpOworICAgICAgICBuZi5zZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoMik7CisgICAgICAgIHBlcmNlbnQgPSBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKCk7CisgICAgICAgIAorICAgICAgICBjb2xsUGVyZi5zZXRPcHRpb25zKCk7CisgICAgICAgIGNvbGxQZXJmLnJlYWREYXRhTGluZXMoKTsKKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfZHVtcCkgeworICAgICAgICAgICAgY29sbFBlcmYuZG9EdW1wKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfcXNvcnQpIHsKKyAgICAgICAgICAgIGNvbGxQZXJmLmRvUVNvcnQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG9wdF9iaW5zZWFyY2gpIHsKKyAgICAgICAgICAgIGNvbGxQZXJmLmRvQmluYXJ5U2VhcmNoKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfa2V5Z2VuKSB7CisgICAgICAgICAgICBjb2xsUGVyZi5kb0tleUdlbigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X2tleWhpc3QpIHsKKyAgICAgICAgICAgIGNvbGxQZXJmLmRvS2V5SGlzdCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X2l0ZXJ0ZXN0KSB7CisgICAgICAgICAgICBjb2xsUGVyZi5kb0l0ZXJUZXN0KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIAorICAgIC8vRHVtcCBmaWxlIGxpbmVzLCBDRXMsIFNvcnQgS2V5cyBpZiByZXF1ZXN0ZWQKKyAgICB2b2lkIGRvRHVtcCgpIHsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGxpc3Quc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIC8vcHJpbnQgdGhlIGxpbmUKKyAgICAgICAgICAgIFN0cmluZyBsaW5lID0gY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5LmVzY2FwZSgoU3RyaW5nKWxpc3QuZ2V0KGkpKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihsaW5lKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICBDRXM6ICAiKTsKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBDRWl0ZXIgPSAoKGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQ29sbGF0b3IpaWN1Q29sKS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IobGluZSk7CisgICAgICAgICAgICBpbnQgY2U7CisgICAgICAgICAgICBpbnQgaiA9IDA7CisgICAgICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgICAgICBjZSA9IENFaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBvdXRTdHIgPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNlKTsgCisgICAgICAgICAgICAgICAgZm9yIChpbnQgbGVuID0gMDsgbGVuIDwgOCAtIG91dFN0ci5sZW5ndGgoKTsgbGVuKyspIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0U3RyID0nMCcgKyBvdXRTdHI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQob3V0U3RyICsgIiAgIik7CisgICAgICAgICAgICAgICAgaWYoKytqID44KSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlxuICAgICAgICAiKTsKKyAgICAgICAgICAgICAgICAgICAgaiA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG4gICBJQ1UgU29ydCBLZXk6ICIpOworICAgICAgICAgICAgQ29sbGF0aW9uS2V5IGNrID0gKChjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZENvbGxhdG9yKWljdUNvbCkuZ2V0Q29sbGF0aW9uS2V5KGxpbmUpOworICAgICAgICAgICAgYnl0ZVtdIGNrcyA9IGNrLnRvQnl0ZUFycmF5KCk7CisgICAgICAgICAgICBqID0gMDsKKyAgICAgICAgICAgIGZvcihpbnQgayA9IDA7IGsgPCBja3MubGVuZ3RoOyBrKyspIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgb3V0U3RyID0gSW50ZWdlci50b0hleFN0cmluZyhja3Nba10pOworICAgICAgICAgICAgICAgIHN3aXRjaCAob3V0U3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSAxOiAgICAgb3V0U3RyID0gJzAnICsgb3V0U3RyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgODogICAgIG91dFN0ciA9IG91dFN0ci5zdWJzdHJpbmcoNik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7IAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KG91dFN0cik7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICAiKTsKKyAgICAgICAgICAgICAgICBqKys7CisgICAgICAgICAgICAgICAgaWYoaiA+IDAgJiYgaiAlIDIwID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG4gICAgICAgICAgICAgICAgICIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKgorICAgICAqICAgZG9RU29ydCgpICAgIFRoZSBxdWljayBzb3J0IHRpbWluZyB0ZXN0LgorICAgICAqCisgICAgICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKi8KKyAgICB2b2lkIGRvUVNvcnQoKSB7CisgICAgICAgIGNhbGxHQygpOworICAgICAgICAvL1N0cmluZ1tdIHNvcnRUZXN0cyA9IChTdHJpbmdbXSkgdGVzdHMuY2xvbmUoKTsKKyAgICAgICAgLy9BZGp1c3QgbG9vcCBjb3VudCB0byBjb21wZW5zYXRlIGZvciBmaWxlIHNpemUuIFFTb3J0IHNob3VsZCBiZSBubG9nKG4pIAorICAgICAgICBkb3VibGUgZExvb3BDb3VudCA9IG9wdF9sb29wQ291bnQgKiAzMDAwIC8gKChNYXRoLmxvZyh0ZXN0cy5sZW5ndGgpIC8gTWF0aC5sb2coMTApKiB0ZXN0cy5sZW5ndGgpKTsKKyAKKyAgICAgICAgaWYob3B0X3VzZWtleXMpIHsKKyAgICAgICAgICAgIGRMb29wQ291bnQgKj0gNTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGFkal9sb29wQ291bnQgPSAoaW50KWRMb29wQ291bnQ7CisgICAgICAgIGlmKGFkal9sb29wQ291bnQgPCAxKSB7CisgICAgICAgICAgICBhZGpfbG9vcENvdW50ID0gMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZ2xvYmFsQ291bnQgPSAwOworICAgICAgICBsb25nIHN0YXJ0VGltZSA9IDA7CisgICAgICAgIGxvbmcgZW5kVGltZSA9IDA7CisgICAgICAgIGlmIChvcHRfaWN1ICYmIG9wdF91c2VrZXlzKSB7CisgICAgICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgIHFTb3J0SW1wbF9pY3VfdXNla2V5cyh0ZXN0cywgMCwgdGVzdHMubGVuZ3RoIC0xLCBpY3VDb2wpOworICAgICAgICAgICAgZW5kVGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICB9CisgICAgICAgIGlmIChvcHRfaWN1ICYmICFvcHRfdXNla2V5cyl7CisgICAgICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgIHFTb3J0SW1wbF9ub2tleXModGVzdHMsIDAsIHRlc3RzLmxlbmd0aCAtMSwgaWN1Q29sKTsKKyAgICAgICAgICAgIGVuZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAob3B0X2phdmEgJiYgb3B0X3VzZWtleXMpIHsKKyAgICAgICAgICAgIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgcVNvcnRJbXBsX2phdmFfdXNla2V5cyh0ZXN0cywgMCwgdGVzdHMubGVuZ3RoIC0xLCBqYXZhQ29sKTsKKyAgICAgICAgICAgIGVuZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAob3B0X2phdmEgJiYgIW9wdF91c2VrZXlzKXsKKyAgICAgICAgICAgIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgcVNvcnRJbXBsX25va2V5cyh0ZXN0cywgMCwgdGVzdHMubGVuZ3RoIC0xLCBqYXZhQ29sKTsKKyAgICAgICAgICAgIGVuZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgfQorICAgICAgICBsb25nIGVsYXBzZWRUaW1lID0gZW5kVGltZSAtIHN0YXJ0VGltZTsKKyAgICAgICAgaW50IG5zID0gKGludCkoMTAwMDAwMCAqIGVsYXBzZWRUaW1lIC8gKGdsb2JhbENvdW50ICsgMC4wKSk7CisgICAgICAgIGlmICghb3B0X3RlcnNlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInFzb3J0OiAgdG90YWwgIyBvZiBzdHJpbmcgY29tcGFyZXMgPSAiICsgZ2xvYmFsQ291bnQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJxc29ydDogIHRpbWUgcGVyIGNvbXBhcmUgPSAiICsgbnMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKG5zKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKgorICAgICAqICAgIGRvQmluYXJ5U2VhcmNoKCkgICAgQmluYXJ5IFNlYXJjaCB0aW1pbmcgdGVzdC4gIEVhY2ggbmFtZSBmcm9tIHRoZSBsaXN0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBpcyBsb29rZWQgdXAgaW4gdGhlIGZ1bGwgc29ydGVkIGxpc3Qgb2YgbmFtZXMuCisgICAgICoKKyAgICAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqLworICAgIHZvaWQgZG9CaW5hcnlTZWFyY2goKSB7CisgICAgICAgIGNhbGxHQygpOworICAgICAgICBpbnQgZ0NvdW50ID0gMDsKKyAgICAgICAgaW50IGxvb3BzID0gMDsKKyAgICAgICAgZG91YmxlIGRMb29wQ291bnQgPSBvcHRfbG9vcENvdW50ICogMzAwMCAvIChNYXRoLmxvZyh0ZXN0cy5sZW5ndGgpIC8gTWF0aC5sb2coMTApKiB0ZXN0cy5sZW5ndGgpOworICAgICAgICBsb25nIHN0YXJ0VGltZSA9IDA7CisgICAgICAgIGxvbmcgZWxhcHNlZFRpbWUgPSAwOworICAgICAgICAKKyAgICAgICAgaWYob3B0X3VzZWtleXMpIHsKKyAgICAgICAgICAgIGRMb29wQ291bnQgKj0gNTsKKyAgICAgICAgfQorICAgICAgICBpbnQgYWRqX2xvb3BDb3VudCA9IChpbnQpZExvb3BDb3VudDsKKyAgICAgICAgaWYoYWRqX2xvb3BDb3VudCA8IDEpIHsKKyAgICAgICAgICAgIGFkal9sb29wQ291bnQgPSAxOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvL2ludCBvcHQyID0gMDsKKyAgICAgICAgCisgICAgICAgIGZvcig7OykgeyAgIC8vbm90IHJlYWxseSBhIGxvb3AsIGp1c3QgYWxsb3dzICJicmVhayIgdG8gd29yaywgdG8gc2ltcGxpZnkgCisgICAgICAgICAgICAgICAgICAgIC8vaW5hZHZlcnRhbnRseSBydW5uaW5nIG1vcmUgdGhhbiBvbmUgdGVzdCB0aHJvdWdoIGhlcmUKKyAgICAgICAgICAgIGlmKG9wdF9zdHJjbXApIHsKKyAgICAgICAgICAgICAgICBpbnQgciA9IDA7CisgICAgICAgICAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgZm9yKGxvb3BzID0gMDsgbG9vcHMgPCBhZGpfbG9vcENvdW50OyBsb29wcysrKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdHMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBoaSA9IHRlc3RzLmxlbmd0aC0xOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxvID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBndWVzcyA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld0d1ZXNzID0gKGhpICsgbG8pIC8gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihuZXdHdWVzcyA9PSBndWVzcyl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWVzcyA9IG5ld0d1ZXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIgPSB0ZXN0c1tqXS5jb21wYXJlVG8odGVzdHNbZ3Vlc3NdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihyID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaSA9IGd1ZXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvID0gZ3Vlc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsYXBzZWRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChvcHRfc3RyY21wQ1BPKSB7CisgICAgICAgICAgICAgICAgaW50IHIgPSAwOworICAgICAgICAgICAgICAgIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgICAgIGZvcihsb29wcyA9IDA7IGxvb3BzIDwgYWRqX2xvb3BDb3VudDsgbG9vcHMrKykgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHRlc3RzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGkgPSB0ZXN0cy5sZW5ndGgtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBsbyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZ3Vlc3MgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdHdWVzcyA9IChoaSArIGxvKSAvIDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobmV3R3Vlc3MgPT0gZ3Vlc3MpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vlc3MgPSBuZXdHdWVzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByID0gY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyLmNvbXBhcmUodGVzdHNbal0sIHRlc3RzW2d1ZXNzXSwgTm9ybWFsaXplci5DT01QQVJFX0NPREVfUE9JTlRfT1JERVIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHIgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpID0gZ3Vlc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG8gPSBndWVzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxhcHNlZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG9wdF9pY3UpIHsKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCByID0gMDsKKyAgICAgICAgICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGxvb3BzID0gMDsgbG9vcHMgPCBhZGpfbG9vcENvdW50OyBsb29wcysrKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdHMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBoaSA9IHRlc3RzLmxlbmd0aCAtIDE7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbG8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGd1ZXNzID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld0d1ZXNzID0gKGhpICsgbG8pIC8gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3R3Vlc3MgPT0gZ3Vlc3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1ZXNzID0gbmV3R3Vlc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdF91c2VrZXlzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5IHNvcnRLZXkxID0gaWN1Q29sLmdldENvbGxhdGlvbktleSh0ZXN0c1tqXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5IHNvcnRLZXkyID0gaWN1Q29sLmdldENvbGxhdGlvbktleSh0ZXN0c1tndWVzc10pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0NvdW50ICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIgPSBpY3VDb2wuY29tcGFyZSh0ZXN0c1tqXSwgdGVzdHNbZ3Vlc3NdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0NvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaSA9IGd1ZXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvID0gZ3Vlc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsYXBzZWRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob3B0X2phdmEpIHsKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCByID0gMDsKKyAgICAgICAgICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGxvb3BzID0gMDsgbG9vcHMgPCBhZGpfbG9vcENvdW50OyBsb29wcysrKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdHMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBoaSA9IHRlc3RzLmxlbmd0aCAtIDE7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbG8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGd1ZXNzID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld0d1ZXNzID0gKGhpICsgbG8pIC8gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3R3Vlc3MgPT0gZ3Vlc3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1ZXNzID0gbmV3R3Vlc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdF91c2VrZXlzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudGV4dC5Db2xsYXRpb25LZXkgc29ydEtleTEgPSBqYXZhQ29sLmdldENvbGxhdGlvbktleSh0ZXN0c1tqXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudGV4dC5Db2xsYXRpb25LZXkgc29ydEtleTIgPSBqYXZhQ29sLmdldENvbGxhdGlvbktleSh0ZXN0c1tndWVzc10pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByID0gc29ydEtleTEuY29tcGFyZVRvKHNvcnRLZXkyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0NvdW50ICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIgPSBqYXZhQ29sLmNvbXBhcmUodGVzdHNbal0sIHRlc3RzW2d1ZXNzXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAociA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAociA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGkgPSBndWVzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsbyA9IGd1ZXNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbGFwc2VkVGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnRUaW1lOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7IAorICAgICAgICB9CisgICAgICAgIGludCBucyA9IChpbnQpKChmbG9hdCkoMTAwMDAwMCkgKiAoZmxvYXQpZWxhcHNlZFRpbWUgLyAoZmxvYXQpZ0NvdW50KTsKKyAgICAgICAgaWYgKCFvcHRfdGVyc2UpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiYmluYXJ5IHNlYXJjaDogIHRvdGFsICMgb2Ygc3RyaW5nIGNvbXBhcmVzID0gIiArIGdDb3VudCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImJpbmFyeSBzZWFyY2g6ICBjb21wYXJlcyBwZXIgbG9vcCA9ICIgKyBnQ291bnQgLyBsb29wcyk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImJpbmFyeSBzZWFyY2g6ICB0aW1lIHBlciBjb21wYXJlID0gIiArIG5zKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihucyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICoKKyAgICAgKiAgIGRvS2V5R2VuKCkgICAgIEtleSBHZW5lcmF0aW9uIFRpbWluZyBUZXN0CisgICAgICoKKyAgICAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqLworICAgIHZvaWQgZG9LZXlHZW4oKSB7CisgICAgICAgIGNhbGxHQygpOworICAgICAgICAKKyAgICAgICAgLy8gQWRqdXN0IGxvb3AgY291bnQgdG8gY29tcGVuc2F0ZSBmb3IgZmlsZSBzaXplLiAgIFNob3VsZCBiZSBvcmRlciBuCisgICAgICAgIGRvdWJsZSBkTG9vcENvdW50ID0gb3B0X2xvb3BDb3VudCAqICgxMDAwLjAgLyAgKGRvdWJsZSlsaXN0LnNpemUoKSk7CisgICAgICAgIGludCBhZGpfbG9vcENvdW50ID0gKGludClkTG9vcENvdW50OworICAgICAgICBpZiAoYWRqX2xvb3BDb3VudCA8IDEpIGFkal9sb29wQ291bnQgPSAxOworCisgICAgICAgIGxvbmcgc3RhcnRUaW1lID0gMDsKKyAgICAgICAgbG9uZyB0b3RhbEtleUxlbiA9IDA7CisgICAgICAgIGxvbmcgdG90YWxDaGFycyA9IDA7CisgICAgICAgIGlmIChvcHRfamF2YSkgeworICAgICAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICBmb3IgKGludCBsb29wcz0wOyBsb29wczxhZGpfbG9vcENvdW50OyBsb29wcysrKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgbGluZT0wOyBsaW5lIDwgdGVzdHMubGVuZ3RoOyBsaW5lKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaUxvb3A9MDsgaUxvb3AgPCBvcHRfaUxvb3BDb3VudDsgaUxvb3ArKykgeworICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyArPSB0ZXN0c1tsaW5lXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVbXSBzb3J0S2V5ID0gamF2YUNvbC5nZXRDb2xsYXRpb25LZXkodGVzdHNbbGluZV0pLnRvQnl0ZUFycmF5KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbEtleUxlbiArPSBzb3J0S2V5Lmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgZm9yIChpbnQgbG9vcHM9MDsgbG9vcHM8YWRqX2xvb3BDb3VudDsgbG9vcHMrKykgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGxpbmU9MDsgbGluZSA8IHRlc3RzLmxlbmd0aDsgbGluZSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGlMb29wPTA7IGlMb29wIDwgb3B0X2lMb29wQ291bnQ7IGlMb29wKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgKz0gdGVzdHNbbGluZV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlW10gc29ydEtleSA9IGljdUNvbC5nZXRDb2xsYXRpb25LZXkodGVzdHNbbGluZV0pLnRvQnl0ZUFycmF5KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbEtleUxlbiArPSBzb3J0S2V5Lmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbG9uZyBlbGFwc2VkVGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnRUaW1lOworICAgICAgICBsb25nIG5zID0gKGxvbmcpKDEwMDAwMDAgKiBlbGFwc2VkVGltZSAvIChhZGpfbG9vcENvdW50ICogdGVzdHMubGVuZ3RoICsgMC4wKSk7CisgICAgICAgIGlmICghb3B0X3RlcnNlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNvcnQgS2V5IEdlbmVyYXRpb246ICB0b3RhbCAjIG9mIGtleXMgPSIgKyBhZGpfbG9vcENvdW50ICogdGVzdHMubGVuZ3RoKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU29ydCBLZXkgR2VuZXJhdGlvbjogIHRpbWUgcGVyIGtleSA9ICIgKyBucyArICIgbnMiKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiS2V5IExlbmd0aCAvIGNoYXJhY3RlciA9ICIgKyBuZi5mb3JtYXQodG90YWxLZXlMZW4gLyAodG90YWxDaGFycyArIDAuMCkpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQobnMgKyAiLCAgIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obmYuZm9ybWF0KHRvdGFsS2V5TGVuIC8gKHRvdGFsQ2hhcnMgKyAwLjApKSArICIsICIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqCisgICAgICogICAgZG9LZXlIaXN0KCkgICAgICAgT3V0cHV0IGEgdGFibGUgb2YgZGF0YSBmb3IgYXZlcmFnZSBzb3J0IGtleSBzaXplIHZzLiBzdHJpbmcgbGVuZ3RoLgorICAgICAqCisgICAgICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKi8KKyAgICB2b2lkIGRvS2V5SGlzdCgpIHsKKyAgICAgICAgY2FsbEdDKCk7CisgICAgICAgIGludCAgICAgbWF4TGVuID0gMDsKKworICAgICAgICAvLyBGaW5kIHRoZSBtYXhpbXVtIHN0cmluZyBsZW5ndGgKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKHRlc3RzW2ldLmxlbmd0aCgpID4gbWF4TGVuKSBtYXhMZW4gPSB0ZXN0c1tpXS5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50W10gYWNjdW11bGF0ZWRMZW4gID0gbmV3IGludFttYXhMZW4gKyAxXTsKKyAgICAgICAgaW50W10gbnVtS2V5c09mU2l6ZSAgID0gbmV3IGludFttYXhMZW4gKyAxXTsKKyAgICAgICAgCisgICAgICAgIC8vIEZpbGwgdGhlIGFycmF5cy4uLgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpbnQgbGVuID0gdGVzdHNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICBhY2N1bXVsYXRlZExlbltsZW5dICs9IGljdUNvbC5nZXRDb2xsYXRpb25LZXkodGVzdHNbaV0pLnRvQnl0ZUFycmF5KCkubGVuZ3RoOworICAgICAgICAgICAgbnVtS2V5c09mU2l6ZVtsZW5dICArPSAxOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBBbmQgd3JpdGUgb3V0IGF2ZXJhZ2VzCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RyaW5nIExlbmd0aCwgIEF2ZyBLZXkgTGVuZ3RoLCAgQXZnIEtleSBMZW4gcGVyIGNoYXIiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbWF4TGVuOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChudW1LZXlzT2ZTaXplW2ldID4gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihpICsgIiwgIiArIG5mLmZvcm1hdChhY2N1bXVsYXRlZExlbltpXSAvIChudW1LZXlzT2ZTaXplW2ldKyAwLjApKSArICIsICIgCisgICAgICAgICAgICAgICAgICAgICsgbmYuZm9ybWF0KGFjY3VtdWxhdGVkTGVuW2ldIC8gKG51bUtleXNPZlNpemVbaV0gKiBpICsgMC4wKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICB2b2lkIGRvRm9yd2FyZEl0ZXJUZXN0KCkgeworICAgICAgICBjYWxsR0MoKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG5cblBlcmZvcm1pbmcgZm9yd2FyZCBpdGVyYXRpb24gcGVyZm9ybWFuY2UgdGVzdCB3aXRoICIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInBlcmZvcm1hbmNlIHRlc3Qgb24gc3RyaW5ncyBmcm9tIGZpbGUgLS0tLS0tLS0tLS0iKTsKKyAgICAKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgPSAoKFJ1bGVCYXNlZENvbGxhdG9yKWljdUNvbCkuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKCIiKTsKKyAgICAgICAgCisgICAgICAgIGludCBnQ291bnQgPSAwOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBsb25nIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICB3aGlsZSAoY291bnQgPCBvcHRfbG9vcENvdW50KSB7CisgICAgICAgICAgICBpbnQgbGluZWNvdW50ID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChsaW5lY291bnQgPCB0ZXN0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gdGVzdHNbbGluZWNvdW50XTsKKyAgICAgICAgICAgICAgICBpdGVyLnNldFRleHQoc3RyKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXRlci5uZXh0KCkgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBnQ291bnQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbGluZWNvdW50ICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxvbmcgZWxhcHNlZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJlbGFwc2VkVGltZSAiICsgZWxhcHNlZFRpbWUgKyAiIG1zIik7CisgICAgICAgIAorICAgICAgICAvLyBlbXB0eSBsb29wIHJlY2FsY3VsYXRpb24KKyAgICAgICAgY291bnQgPSAwOworICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgb3B0X2xvb3BDb3VudCkgeyAKKyAgICAgICAgICAgIGludCBsaW5lY291bnQgPSAwOworICAgICAgICAgICAgd2hpbGUgKGxpbmVjb3VudCA8IHRlc3RzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzdHIgPSB0ZXN0c1tsaW5lY291bnRdOworICAgICAgICAgICAgICAgIGl0ZXIuc2V0VGV4dChzdHIpOworICAgICAgICAgICAgICAgIGxpbmVjb3VudCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIGVsYXBzZWRUaW1lIC09IChTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZWxhcHNlZFRpbWUgIiArIGVsYXBzZWRUaW1lICsgIiBtcyIpOworCisgICAgICAgIGludCBucyA9IChpbnQpKDEwMDAwMDAgKiBlbGFwc2VkVGltZSAvIChnQ291bnQgKyAwLjApKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUb3RhbCBudW1iZXIgb2Ygc3RyaW5ncyBjb21wYXJlZCAiICsgdGVzdHMubGVuZ3RoIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgImluICIgKyBvcHRfbG9vcENvdW50ICsgIiBsb29wcyIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkF2ZXJhZ2UgdGltZSBwZXIgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLm5leHQoKSBuYW5vIHNlY29uZHMgIiArIG5zKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJwZXJmb3JtYW5jZSB0ZXN0IG9uIHNraXBwZWQtNSBjb25jYXRlbmF0ZWQgc3RyaW5ncyBmcm9tIGZpbGUgLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyB0b3RhbFN0ciA9ICIiOworICAgICAgICBpbnQgICAgc3RybGVuID0gMDsKKyAgICAgICAgLy8gYXBwZW5kaW5nIGFsbCB0aGUgc3RyaW5ncworICAgICAgICBpbnQgbGluZWNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGxpbmVjb3VudCA8IHRlc3RzLmxlbmd0aCkgeworICAgICAgICAgICAgdG90YWxTdHIgKz0gdGVzdHNbbGluZWNvdW50XTsKKyAgICAgICAgICAgIHN0cmxlbiArPSB0ZXN0c1tsaW5lY291bnRdLmxlbmd0aCgpOworICAgICAgICAgICAgbGluZWNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVG90YWwgc2l6ZSBvZiBzdHJpbmdzICIgKyBzdHJsZW4pOworICAgICAgICAKKyAgICAgICAgZ0NvdW50ID0gMDsKKyAgICAgICAgY291bnQgID0gMDsKKyAgICAgICAgaXRlciA9ICgoUnVsZUJhc2VkQ29sbGF0b3IpaWN1Q29sKS5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IodG90YWxTdHIpOworICAgICAgICBzdHJsZW4gLT0gNTsgLy8gYW55IGxlZnQgb3ZlciBjaGFyYWN0ZXJzIGFyZSBub3QgaXRlcmF0ZWQsCisgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIHRvIGVuc3VyZSB0aGUgYmFja3dhcmRzIGFuZCBmb3J3YXJkcyBpdGVyYXRvcnMKKyAgICAgICAgICAgICAgICAgICAgIC8vIGdldHMgdGhlIHNhbWUgcG9zaXRpb24KKyAgICAgICAgaW50IHN0cmluZGV4ID0gMDsKKyAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIHdoaWxlIChjb3VudCA8IG9wdF9sb29wQ291bnQpIHsKKyAgICAgICAgICAgIGludCBjb3VudDUgPSA1OworICAgICAgICAgICAgc3RyaW5kZXggPSAwOworICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoc3RyaW5kZXgpOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXRlci5uZXh0KCkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZ0NvdW50Kys7CisgICAgICAgICAgICAgICAgY291bnQ1IC0tOworICAgICAgICAgICAgICAgIGlmIChjb3VudDUgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBzdHJpbmRleCArPSAxMDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZGV4ID4gc3RybGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpdGVyLnNldE9mZnNldChzdHJpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGNvdW50NSA9IDU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZWxhcHNlZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJlbGFwc2VkVGltZSAiICsgZWxhcHNlZFRpbWUpOworICAgICAgICAKKyAgICAgICAgLy8gZW1wdHkgbG9vcCByZWNhbGN1bGF0aW9uCisgICAgICAgIGludCB0ZW1wZ0NvdW50ID0gMDsKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgb3B0X2xvb3BDb3VudCkgeworICAgICAgICAgICAgaW50IGNvdW50NSA9IDU7CisgICAgICAgICAgICBzdHJpbmRleCA9IDA7CisgICAgICAgICAgICBpdGVyLnNldE9mZnNldChzdHJpbmRleCk7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIHRlbXBnQ291bnQgKys7CisgICAgICAgICAgICAgICAgY291bnQ1IC0tOworICAgICAgICAgICAgICAgIGlmIChjb3VudDUgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBzdHJpbmRleCArPSAxMDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0cmluZGV4ID4gc3RybGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpdGVyLnNldE9mZnNldChzdHJpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGNvdW50NSA9IDU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAgICAgZWxhcHNlZFRpbWUgLT0gKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnRUaW1lKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJlbGFwc2VkVGltZSAiICsgZWxhcHNlZFRpbWUpOworICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImdDb3VudCAiICsgZ0NvdW50KTsKKyAgICAgICAgbnMgPSAoaW50KSgxMDAwMDAwICogZWxhcHNlZFRpbWUgLyAoZ0NvdW50ICsgMC4wKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQXZlcmFnZSB0aW1lIHBlciBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IubmV4dCgpIG5hbm8gc2Vjb25kcyAiICsgbnMpOworICAgIH0KKyAgICAKKyAgICB2b2lkIGRvQmFja3dhcmRJdGVyVGVzdCgpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiXG5cblBlcmZvcm1pbmcgYmFja3dhcmQgaXRlcmF0aW9uIHBlcmZvcm1hbmNlIHRlc3Qgd2l0aCAiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJwZXJmb3JtYW5jZSB0ZXN0IG9uIHN0cmluZ3MgZnJvbSBmaWxlIC0tLS0tLS0tLS0tXG4iKTsKKyAgICAgICAgCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBpdGVyID0gKChSdWxlQmFzZWRDb2xsYXRvcilpY3VDb2wpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7CisgICAgICAgIAorICAgICAgICBpbnQgZ0NvdW50ID0gMDsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgbG9uZyBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgb3B0X2xvb3BDb3VudCkgeworICAgICAgICAgICAgaW50IGxpbmVjb3VudCA9IDA7CisgICAgICAgICAgICB3aGlsZSAobGluZWNvdW50IDwgdGVzdHMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IHRlc3RzW2xpbmVjb3VudF07CisgICAgICAgICAgICAgICAgaXRlci5zZXRUZXh0KHN0cik7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0ZXIucHJldmlvdXMoKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGdDb3VudCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsaW5lY291bnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgICAgICBsb25nIGVsYXBzZWRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZWxhcHNlZFRpbWUgIiArIGVsYXBzZWRUaW1lICsgIiBtcyIpOworICAgICAgICAKKyAgICAgICAgLy8gZW1wdHkgbG9vcCByZWNhbGN1bGF0aW9uCisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIHdoaWxlIChjb3VudCA8IG9wdF9sb29wQ291bnQpIHsKKyAgICAgICAgICAgIGludCBsaW5lY291bnQgPSAwOworICAgICAgICAgICAgd2hpbGUgKGxpbmVjb3VudCA8IHRlc3RzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzdHIgPSB0ZXN0c1tsaW5lY291bnRdOworICAgICAgICAgICAgICAgIGl0ZXIuc2V0VGV4dChzdHIpOworICAgICAgICAgICAgICAgIGxpbmVjb3VudCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIGVsYXBzZWRUaW1lIC09IChTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZWxhcHNlZFRpbWUgIiArIGVsYXBzZWRUaW1lICsgIiBtcyIpOworICAgICAgICAKKyAgICAgICAgaW50IG5zID0gKGludCkoMTAwMDAwMCAqIGVsYXBzZWRUaW1lIC8gKGdDb3VudCArIDAuMCkpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRvdGFsIG51bWJlciBvZiBzdHJpbmdzIGNvbXBhcmVkICIgKyB0ZXN0cy5sZW5ndGggCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiaW4gIiArIG9wdF9sb29wQ291bnQgKyAiIGxvb3BzIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQXZlcmFnZSB0aW1lIHBlciBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJldmlvdXMoKSBuYW5vIHNlY29uZHMgIiArIG5zKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJwZXJmb3JtYW5jZSB0ZXN0IG9uIHNraXBwZWQtNSBjb25jYXRlbmF0ZWQgc3RyaW5ncyBmcm9tIGZpbGUgLS0tLS0tLS0tLS0iKTsKKyAgICAKKyAgICAgICAgU3RyaW5nIHRvdGFsU3RyID0gIiI7CisgICAgICAgIGludCAgICBzdHJsZW4gPSAwOworICAgICAgICAvLyBhcHBlbmRpbmcgYWxsIHRoZSBzdHJpbmdzCisgICAgICAgIGludCBsaW5lY291bnQgPSAwOworICAgICAgICB3aGlsZSAobGluZWNvdW50IDwgdGVzdHMubGVuZ3RoKSB7CisgICAgICAgICAgICB0b3RhbFN0ciArPSB0ZXN0c1tsaW5lY291bnRdOworICAgICAgICAgICAgc3RybGVuICs9IHRlc3RzW2xpbmVjb3VudF0ubGVuZ3RoKCk7CisgICAgICAgICAgICBsaW5lY291bnQgKys7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUb3RhbCBzaXplIG9mIHN0cmluZ3MgIiArIHN0cmxlbik7CisgICAgICAgIAorICAgICAgICBnQ291bnQgPSAwOworICAgICAgICBjb3VudCAgPSAwOworICAgIAorICAgICAgICBpdGVyID0gKChSdWxlQmFzZWRDb2xsYXRvcilpY3VDb2wpLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcih0b3RhbFN0cik7CisgICAgICAgIGludCBzdHJpbmRleCA9IDA7CisgICAgICAgIHN0YXJ0VGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICB3aGlsZSAoY291bnQgPCBvcHRfbG9vcENvdW50KSB7CisgICAgICAgICAgICBpbnQgY291bnQ1ID0gNTsKKyAgICAgICAgICAgIHN0cmluZGV4ID0gNTsKKyAgICAgICAgICAgIGl0ZXIuc2V0T2Zmc2V0KHN0cmluZGV4KTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgaWYgKGl0ZXIucHJldmlvdXMoKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgZ0NvdW50ICsrOworICAgICAgICAgICAgICAgICBjb3VudDUgLS07CisgICAgICAgICAgICAgICAgIGlmIChjb3VudDUgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgc3RyaW5kZXggKz0gMTA7CisgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5kZXggPiBzdHJsZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoc3RyaW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgY291bnQ1ID0gNTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZWxhcHNlZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJlbGFwc2VkVGltZSAiICsgZWxhcHNlZFRpbWUpOworICAgICAgICAKKyAgICAgICAgLy8gZW1wdHkgbG9vcCByZWNhbGN1bGF0aW9uCisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgaW50IHRlbXBnQ291bnQgPSAwOworICAgICAgICBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgb3B0X2xvb3BDb3VudCkgeworICAgICAgICAgICAgaW50IGNvdW50NSA9IDU7CisgICAgICAgICAgICBzdHJpbmRleCA9IDU7CisgICAgICAgICAgICBpdGVyLnNldE9mZnNldChzdHJpbmRleCk7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICB0ZW1wZ0NvdW50ICsrOworICAgICAgICAgICAgICAgICBjb3VudDUgLS07CisgICAgICAgICAgICAgICAgIGlmIChjb3VudDUgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgc3RyaW5kZXggKz0gMTA7CisgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5kZXggPiBzdHJsZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgaXRlci5zZXRPZmZzZXQoc3RyaW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgY291bnQ1ID0gNTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAgICAgZWxhcHNlZFRpbWUgLT0gKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnRUaW1lKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJlbGFwc2VkVGltZSAiICsgZWxhcHNlZFRpbWUpOworICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImdDb3VudCAiICsgZ0NvdW50KTsKKyAgICAgICAgbnMgPSAoaW50KSgxMDAwMDAwICogZWxhcHNlZFRpbWUgLyAoZ0NvdW50ICsgMC4wKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQXZlcmFnZSB0aW1lIHBlciBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJldmlvdXMoKSBuYW5vIHNlY29uZHMgIiArIG5zKTsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICoKKyAgICAgKiAgICBkb0l0ZXJUZXN0KCkgICAgICAgSXRlcmF0aW9uIHRlc3QKKyAgICAgKgorICAgICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICovCisgICAgdm9pZCBkb0l0ZXJUZXN0KCkgeworICAgICAgICBkb0ZvcndhcmRJdGVyVGVzdCgpOworICAgICAgICBkb0JhY2t3YXJkSXRlclRlc3QoKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzZXRPcHRpb25zKCkgeworICAgICAgICAKKyAgICAgICAgaWYgKG9wdF9qYXZhKSB7CisgICAgICAgICAgICBvcHRfaWN1ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfcnVsZXMubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpY3VDb2wgPSBuZXcgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvcihnZXRDb2xsYXRpb25SdWxlcyhvcHRfcnVsZXMpKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDYW5ub3Qgb3BlbiBydWxlczoiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWN1Q29sID0gY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5nZXRJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZShvcHRfbG9jYWxlKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGphdmFDb2wgPSBqYXZhLnRleHQuQ29sbGF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUob3B0X2xvY2FsZSkpOworICAgICAgICAKKyAgICAgICAgaWYgKG9wdF9ub3JtKSB7CisgICAgICAgICAgICBqYXZhQ29sLnNldERlY29tcG9zaXRpb24oamF2YS50ZXh0LkNvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgICAgIGljdUNvbC5zZXREZWNvbXBvc2l0aW9uKGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X2ZyZW5jaCAmJiBvcHRfZnJlbmNob2ZmKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVycm9yOiBzcGVjaWZpZWQgYm90aCAtZnJlbmNoIGFuZCAtZnJlbmNob2ZmIG9wdGlvbnMuIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfZnJlbmNoKSB7CisgICAgICAgICAgICAoKGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQ29sbGF0b3IpaWN1Q29sKS5zZXRGcmVuY2hDb2xsYXRpb24odHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9wdF9mcmVuY2hvZmYpIHsKKyAgICAgICAgICAgICgoY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvcilpY3VDb2wpLnNldEZyZW5jaENvbGxhdGlvbihmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfbG93ZXIpIHsKKyAgICAgICAgICAgICgoY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRDb2xsYXRvcilpY3VDb2wpLnNldExvd2VyQ2FzZUZpcnN0KHRydWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3B0X3VwcGVyKSB7CisgICAgICAgICAgICAoKGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQ29sbGF0b3IpaWN1Q29sKS5zZXRVcHBlckNhc2VGaXJzdCh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG9wdF9zaGlmdGVkKSB7CisgICAgICAgICAgICAoKGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQ29sbGF0b3IpaWN1Q29sKS5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQodHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChvcHRfbGV2ZWwgIT0gMCkgeworICAgICAgICAgICAgc3dpdGNoIChvcHRfbGV2ZWwpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDEgOgorICAgICAgICAgICAgICAgICAgICAgICAgamF2YUNvbC5zZXRTdHJlbmd0aChqYXZhLnRleHQuQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpY3VDb2wuc2V0U3RyZW5ndGgoY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMiA6CisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhQ29sLnNldFN0cmVuZ3RoKGphdmEudGV4dC5Db2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWN1Q29sLnNldFN0cmVuZ3RoKGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMyA6CisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhQ29sLnNldFN0cmVuZ3RoKGphdmEudGV4dC5Db2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpY3VDb2wuc2V0U3RyZW5ndGgoY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDQgOgorICAgICAgICAgICAgICAgICAgICAgICAgaWN1Q29sLnNldFN0cmVuZ3RoKGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IuUVVBVEVSTkFSWSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDUgOgorICAgICAgICAgICAgICAgICAgICAgICAgamF2YUNvbC5zZXRTdHJlbmd0aChqYXZhLnRleHQuQ29sbGF0b3IuSURFTlRJQ0FMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGljdUNvbC5zZXRTdHJlbmd0aChjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yLklERU5USUNBTCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIi1sZXZlbCBwYXJhbSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgNVxuIik7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGxvYWQgY2xhc3NlcyBhdCBsZWFzdCBvbmNlIGJlZm9yZSBzdGFydGluZworICAgICAgICBqYXZhQ29sLmNvbXBhcmUoImEiLCAiYiIpOworICAgICAgICBpY3VDb2wuY29tcGFyZSgiYSIsICJiIik7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBib29sZWFuIHByb2Nlc3NPcHRpb25zKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgaW50IGFyZ051bTsKKyAgICAgICAgZm9yIChhcmdOdW0gPTA7IGFyZ051bSA8IGFyZ3MubGVuZ3RoOyBhcmdOdW0rKykgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGFyZ3NbYXJnTnVtXS5lcXVhbHNJZ25vcmVDYXNlKG9wdGlvbnNbaV0ubmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChvcHRpb25zW2ldLnR5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uc1tpXS52YWx1ZS5kZWxldGUoMCwgb3B0aW9uc1tpXS52YWx1ZS5jYXBhY2l0eSgpKS5hcHBlbmQoInRydWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ051bSsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGFyZ051bSA+PSBhcmdzLmxlbmd0aCkgfHwgKGFyZ3NbYXJnTnVtXS5jaGFyQXQoMCk9PSctJykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigidmFsdWUgZXhwZWN0ZWQgZm9yIisgb3B0aW9uc1tpXS5uYW1lICsib3B0aW9uLlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW50IHZhbHVlID0qLyBJbnRlZ2VyLnBhcnNlSW50KGFyZ3NbYXJnTnVtXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zW2ldLnZhbHVlLmRlbGV0ZSgwLCBvcHRpb25zW2ldLnZhbHVlLmNhcGFjaXR5KCkpLmFwcGVuZChhcmdzW2FyZ051bV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFeHBlY3RlZDogYSBudW1iZXIgdmFsdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ051bSsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGFyZ051bSA+PSBhcmdzLmxlbmd0aCkgfHwgKGFyZ3NbYXJnTnVtXS5jaGFyQXQoMCk9PSctJykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigidmFsdWUgZXhwZWN0ZWQgZm9yIisgb3B0aW9uc1tpXS5uYW1lICsib3B0aW9uLlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uc1tpXS52YWx1ZS5kZWxldGUoMCwgb3B0aW9uc1tpXS52YWx1ZS5jYXBhY2l0eSgpKS5hcHBlbmQoYXJnc1thcmdOdW1dKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIk9wdGlvbiB0eXBlIGVycm9yOiB7RkxBRz0wLCBOVU09MSwgU1RSSU5HPTJ9Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3B0X2ZOYW1lICAgICAgPSB0ZW1wX29wdF9mTmFtZS50b1N0cmluZygpOworICAgICAgICBvcHRfbG9jYWxlICAgICA9IHRlbXBfb3B0X2xvY2FsZS50b1N0cmluZygpOworICAgICAgICBvcHRfcnVsZXMgICAgICA9IHRlbXBfb3B0X3J1bGVzLnRvU3RyaW5nKCk7CisgICAgICAgIGlmICh0ZW1wX29wdF9oZWxwLnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfaGVscCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgb3B0X2xvb3BDb3VudCAgPSBJbnRlZ2VyLnBhcnNlSW50KHRlbXBfb3B0X2xvb3BDb3VudC50b1N0cmluZygpKTsKKyAgICAgICAgb3B0X2lMb29wQ291bnQgPSBJbnRlZ2VyLnBhcnNlSW50KHRlbXBfb3B0X2lMb29wQ291bnQudG9TdHJpbmcoKSk7CisgICAgICAgIGlmICh0ZW1wX29wdF90ZXJzZS50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X3RlcnNlID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfcXNvcnQudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9xc29ydCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X2JpbnNlYXJjaC50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X2JpbnNlYXJjaCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X2ljdS50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X2ljdSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X3VzZWtleXMudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF91c2VrZXlzID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfc3RyY21wLnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfc3RyY21wID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfc3RyY21wQ1BPLnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfc3RyY21wQ1BPID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfa2V5Z2VuLnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfa2V5Z2VuID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfbm9ybS50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X25vcm0gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0ZW1wX29wdF9mcmVuY2gudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9mcmVuY2ggPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0ZW1wX29wdF9mcmVuY2hvZmYudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9mcmVuY2hvZmYgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0ZW1wX29wdF9zaGlmdGVkLnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfc2hpZnRlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X2xvd2VyLnRvU3RyaW5nKCkuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CisgICAgICAgICAgICBvcHRfbG93ZXIgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0ZW1wX29wdF91cHBlci50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X3VwcGVyID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfY2FzZS50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X2Nhc2UgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIG9wdF9sZXZlbCAgICAgID0gSW50ZWdlci5wYXJzZUludCh0ZW1wX29wdF9sZXZlbC50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKHRlbXBfb3B0X2tleWhpc3QudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9rZXloaXN0ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfaXRlcnRlc3QudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9pdGVydGVzdCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRlbXBfb3B0X2R1bXAudG9TdHJpbmcoKS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKKyAgICAgICAgICAgIG9wdF9kdW1wID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGVtcF9vcHRfamF2YS50b1N0cmluZygpLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgeworICAgICAgICAgICAgb3B0X2phdmEgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW52b2tlIHRoZSBydW50aW1lJ3MgZ2FyYmFnZSBjb2xsZWN0aW9uIHByb2NlZHVyZSByZXBlYXRlZGx5CisgICAgICogdW50aWwgdGhlIGFtb3VudCBvZiBmcmVlIG1lbW9yeSBzdGFiaWxpemVzIHRvIHdpdGhpbiAxMCUuCisgICAgICovICAgIAorICAgIHByaXZhdGUgdm9pZCBjYWxsR0MoKSB7CisgICAgICAgIC8vIEZyb20gIkphdmEgUGxhdGZvcm0gUGVyZm9ybWFuY2UiLiAgVGhpcyBpcyB0aGUgcHJvY2VkdXJlCisgICAgICAgIC8vIHJlY29tbWVuZGVkIGJ5IEphdmFzb2Z0LgorICAgICAgICB0cnkgeworICAgICAgICAgICAgU3lzdGVtLmdjKCk7CisgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTAwKTsKKyAgICAgICAgICAgIFN5c3RlbS5ydW5GaW5hbGl6YXRpb24oKTsKKyAgICAgICAgICAgIFRocmVhZC5zbGVlcCgxMDApOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0uZ2MoKTsKKyAgICAgICAgICAgIFRocmVhZC5zbGVlcCgxMDApOworICAgICAgICAgICAgU3lzdGVtLnJ1bkZpbmFsaXphdGlvbigpOworICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDEwMCk7CisgICAgICAgIH0gY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHt9CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIG5lZWRDUkxGID0gZmFsc2U7CisgICAgCisgICAgcHVibGljIGludCBET1RNQVNLID0gMHg3RkY7CisgCisgICAgdm9pZCBkb3QoaW50IGkpIHsKKyAgICAgICAgaWYgKChpICUgRE9UTUFTSykgPT0gMCkgeworICAgICAgICAgICAgbmVlZENSTEYgPSB0cnVlOworICAgICAgICAgICAgLy8gSSBkbyBub3Qga25vdyB3aHkgcHJpbnQgdGhlIGRvdCBoZXJlCisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnQoJy4nKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBTdHJpbmcgcmVhZERhdGFMaW5lKEJ1ZmZlcmVkUmVhZGVyIGJyKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgU3RyaW5nIG9yaWdpbmFsTGluZSA9ICIiOworICAgICAgICBTdHJpbmcgbGluZSA9ICIiOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxpbmUgPSBvcmlnaW5hbExpbmUgPSBici5yZWFkTGluZSgpOworICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgcmV0dXJuIG51bGw7CisgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA+IDAgJiYgbGluZS5jaGFyQXQoMCkgPT0gMHhGRUZGKSBsaW5lID0gbGluZS5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICBpbnQgY29tbWVudFBvcyA9IGxpbmUuaW5kZXhPZignIycpOworICAgICAgICAgICAgaWYgKGNvbW1lbnRQb3MgPj0gMCkgbGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIGNvbW1lbnRQb3MpOworICAgICAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiTGluZSBcInswfVwiLCAgXCJ7MX1cIiIgKyBvcmlnaW5hbExpbmUgKyAiICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsaW5lICsgIiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGluZTsKKyAgICB9CisgICAgCisgICAgdm9pZCByZWFkRGF0YUxpbmVzKCkgeworICAgICAgICAvLyBSZWFkIGluICB0aGUgaW5wdXQgZmlsZS4KKyAgICAgICAgLy8gICBGaWxlIGFzc3VtZWQgdG8gYmUgdXRmLTE2LgorICAgICAgICAvLyAgIExpbmVzIGdvIG9udG8gaGVhcCBidWZmZXJzLiAgR2xvYmFsIGluZGV4IGFycmF5IHRvIGxpbmUgc3RhcnRzIGlzIGNyZWF0ZWQuCisgICAgICAgIC8vICAgTGluZXMgdGhlbXNlbHZlcyBhcmUgbnVsbCB0ZXJtaW5hdGVkLgorICAgICAgICAvLworICAgICAgICBGaWxlSW5wdXRTdHJlYW0gZmlzID0gbnVsbDsKKyAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0gbnVsbDsKKyAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnIgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShvcHRfZk5hbWUpOworICAgICAgICAgICAgaXNyID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpcywgIlVURi04Iik7CisgICAgICAgICAgICBicj0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGlzciwgMzIqMTAyNCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVycm9yOiBGaWxlIGFjY2VzcyBleGNlcHRpb246ICIgKyBlLmdldE1lc3NhZ2UoKSArICIhIik7CisgICAgICAgICAgICBTeXN0ZW0uZXhpdCgyKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGNvdW50ZXIgPSAwOworICAgICAgICAKKyAgICAgICAgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIFN0cmluZyBsaW5lID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbGluZSA9IHJlYWREYXRhTGluZShicik7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiUmVhZCBGaWxlIEVycm9yIiArIGUuZ2V0TWVzc2FnZSgpICsgIiEiKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgYnJlYWs7CisgICAgICAgICAgICBpZiAobGluZS5sZW5ndGgoKSA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgIGRvdChjb3VudGVyKyspOworICAgICAgICAgICAgbGlzdC5hZGQobGluZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFvcHRfdGVyc2UpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVhZCAiICsgY291bnRlciArICIgbGluZXMgaW4gZmlsZSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgc2l6ZSA9IGxpc3Quc2l6ZSgpOworICAgICAgICB0ZXN0cyA9IG5ldyBTdHJpbmcgW3NpemVdOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgICAgIHRlc3RzW2ldID0gKFN0cmluZykgbGlzdC5nZXQoaSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBDb2xsYXRvciBSdWxlcworICAgICAqIFRoZSBSdWxlIEZpbGUgZm9ybWF0OgorICAgICAqIDEuIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2VzIHdpbGwgYmUgb21pdHRlZAorICAgICAqIDIuIGxpbmVzIHdpdGggdGhlIGxlYWRpbmcgY2hhcmFjdGVyICcjJyB3aWxsIGJlIHRyZWF0ZWQgYXMgY29tbWVudHMKKyAgICAgKiAzLiBGaWxlIGVuY29kaW5nIGlzIElTTy04ODU5LTEKKyAgICAgKi8KKyAgICBTdHJpbmcgZ2V0Q29sbGF0aW9uUnVsZXMoU3RyaW5nIHJ1bGVGaWxlTmFtZSkgeworICAgICAgICBGaWxlSW5wdXRTdHJlYW0gZmlzID0gbnVsbDsKKyAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0gbnVsbDsKKyAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnIgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShvcHRfcnVsZXMpOworICAgICAgICAgICAgaXNyID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpcywiSVNPLTg4NTktMSIpOworICAgICAgICAgICAgYnI9IG5ldyBCdWZmZXJlZFJlYWRlcihpc3IpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogRmlsZSBhY2Nlc3MgZXhjZXB0aW9uOiAiICsgZS5nZXRNZXNzYWdlKCkgKyAiISIpOworICAgICAgICAgICAgU3lzdGVtLmV4aXQoMik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gIiI7CisgICAgICAgIFN0cmluZyBsaW5lID0gIiI7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGxpbmUgPSBici5yZWFkTGluZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiUmVhZCBGaWxlIEVycm9yIiArIGUuZ2V0TWVzc2FnZSgpICsgIiEiKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBjb21tZW50UG9zID0gbGluZS5pbmRleE9mKCcjJyk7CisgICAgICAgICAgICBpZiAoY29tbWVudFBvcyA+PSAwKSBsaW5lID0gbGluZS5zdWJzdHJpbmcoMCwgY29tbWVudFBvcyk7CisgICAgICAgICAgICBsaW5lID0gbGluZS50cmltKCk7CisgICAgICAgICAgICBydWxlcyA9IHJ1bGVzICsgbGluZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcnVsZXM7CisgICAgfQorICAgIAorICAgIC8vSW1wbGVtZW50aW5nIHFzb3J0CisgICAgdm9pZCBxU29ydEltcGxfamF2YV91c2VrZXlzKFN0cmluZyBzcmNbXSwgaW50IGZyb21JbmRleCwgaW50IHRvSW5kZXgsIGphdmEudGV4dC5Db2xsYXRvciBjKSB7CisgICAgICAgIGludCBsb3cgPSBmcm9tSW5kZXg7CisgICAgICAgIGludCBoaWdoID0gdG9JbmRleDsKKyAgICAgICAgU3RyaW5nIG1pZGRsZSA9ICIiOworICAgICAgICBpZiAoaGlnaCA+IGxvdykgeworICAgICAgICAgICAgbWlkZGxlID0gc3JjWyAobG93ICsgaGlnaCkgLyAyIF07CisgICAgICAgICAgICB3aGlsZShsb3cgPD0gaGlnaCkgeworICAgICAgICAgICAgICAgIHdoaWxlKChsb3cgPCB0b0luZGV4KSAmJiAoY29tcGFyZShjLmdldENvbGxhdGlvbktleShzcmNbbG93XSksIGMuZ2V0Q29sbGF0aW9uS2V5KG1pZGRsZSkpIDwgMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytsb3c7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlKChoaWdoID4gZnJvbUluZGV4KSAmJiAoY29tcGFyZShjLmdldENvbGxhdGlvbktleShzcmNbaGlnaF0pLCBjLmdldENvbGxhdGlvbktleShtaWRkbGUpKSA+IDApKSB7CisgICAgICAgICAgICAgICAgICAgIC0taGlnaDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYobG93IDw9IGhpZ2gpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN3YXAgPSBzcmNbbG93XTsKKyAgICAgICAgICAgICAgICAgICAgc3JjW2xvd10gPSBzcmNbaGlnaF07CisgICAgICAgICAgICAgICAgICAgIHNyY1toaWdoXSA9IHN3YXA7CisgICAgICAgICAgICAgICAgICAgICsrbG93OworICAgICAgICAgICAgICAgICAgICAtLWhpZ2g7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZnJvbUluZGV4IDwgaGlnaCkgeworICAgICAgICAgICAgICAgIHFTb3J0SW1wbF9qYXZhX3VzZWtleXMoc3JjLCBmcm9tSW5kZXgsIGhpZ2gsIGMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZihsb3cgPCB0b0luZGV4KSB7CisgICAgICAgICAgICAgICAgcVNvcnRJbXBsX2phdmFfdXNla2V5cyhzcmMsIGxvdywgdG9JbmRleCwgYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCBxU29ydEltcGxfaWN1X3VzZWtleXMoU3RyaW5nIHNyY1tdLCBpbnQgZnJvbUluZGV4LCBpbnQgdG9JbmRleCwgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvciBjKSB7CisgICAgICAgIGludCBsb3cgPSBmcm9tSW5kZXg7CisgICAgICAgIGludCBoaWdoID0gdG9JbmRleDsKKyAgICAgICAgU3RyaW5nIG1pZGRsZSA9ICIiOworICAgICAgICBpZiAoaGlnaCA+IGxvdykgeworICAgICAgICAgICAgbWlkZGxlID0gc3JjWyAobG93ICsgaGlnaCkgLyAyIF07CisgICAgICAgICAgICB3aGlsZShsb3cgPD0gaGlnaCkgeworICAgICAgICAgICAgICAgIHdoaWxlKChsb3cgPCB0b0luZGV4KSAmJiAoY29tcGFyZShjLmdldENvbGxhdGlvbktleShzcmNbbG93XSksIGMuZ2V0Q29sbGF0aW9uS2V5KG1pZGRsZSkpIDwgMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytsb3c7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlKChoaWdoID4gZnJvbUluZGV4KSAmJiAoY29tcGFyZShjLmdldENvbGxhdGlvbktleShzcmNbaGlnaF0pLCBjLmdldENvbGxhdGlvbktleShtaWRkbGUpKSA+IDApKSB7CisgICAgICAgICAgICAgICAgICAgIC0taGlnaDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYobG93IDw9IGhpZ2gpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN3YXAgPSBzcmNbbG93XTsKKyAgICAgICAgICAgICAgICAgICAgc3JjW2xvd10gPSBzcmNbaGlnaF07CisgICAgICAgICAgICAgICAgICAgIHNyY1toaWdoXSA9IHN3YXA7CisgICAgICAgICAgICAgICAgICAgICsrbG93OworICAgICAgICAgICAgICAgICAgICAtLWhpZ2g7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZnJvbUluZGV4IDwgaGlnaCkgeworICAgICAgICAgICAgICAgIHFTb3J0SW1wbF9pY3VfdXNla2V5cyhzcmMsIGZyb21JbmRleCwgaGlnaCwgYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGxvdyA8IHRvSW5kZXgpIHsKKyAgICAgICAgICAgICAgICBxU29ydEltcGxfaWN1X3VzZWtleXMoc3JjLCBsb3csIHRvSW5kZXgsIGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgcVNvcnRJbXBsX25va2V5cyhTdHJpbmcgc3JjW10sIGludCBmcm9tSW5kZXgsIGludCB0b0luZGV4LCBDb21wYXJhdG9yIGMpIHsKKyAgICAgICAgaW50IGxvdyA9IGZyb21JbmRleDsKKyAgICAgICAgaW50IGhpZ2ggPSB0b0luZGV4OworICAgICAgICBTdHJpbmcgbWlkZGxlID0gIiI7CisgICAgICAgIGlmIChoaWdoID4gbG93KSB7CisgICAgICAgICAgICBtaWRkbGUgPSBzcmNbIChsb3cgKyBoaWdoKSAvIDIgXTsKKyAgICAgICAgICAgIHdoaWxlKGxvdyA8PSBoaWdoKSB7CisgICAgICAgICAgICAgICAgd2hpbGUoKGxvdyA8IHRvSW5kZXgpICYmIChjb21wYXJlKHNyY1tsb3ddLCBtaWRkbGUsIGMpIDwgMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytsb3c7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlKChoaWdoID4gZnJvbUluZGV4KSAmJiAoY29tcGFyZShzcmNbaGlnaF0sIG1pZGRsZSwgYykgPiAwKSkgeworICAgICAgICAgICAgICAgICAgICAtLWhpZ2g7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGxvdyA8PSBoaWdoKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzd2FwID0gc3JjW2xvd107CisgICAgICAgICAgICAgICAgICAgIHNyY1tsb3ddID0gc3JjW2hpZ2hdOworICAgICAgICAgICAgICAgICAgICBzcmNbaGlnaF0gPSBzd2FwOworICAgICAgICAgICAgICAgICAgICArK2xvdzsKKyAgICAgICAgICAgICAgICAgICAgLS1oaWdoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGZyb21JbmRleCA8IGhpZ2gpIHsKKyAgICAgICAgICAgICAgICBxU29ydEltcGxfbm9rZXlzKHNyYywgZnJvbUluZGV4LCBoaWdoLCBjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYobG93IDwgdG9JbmRleCkgeworICAgICAgICAgICAgICAgIHFTb3J0SW1wbF9ub2tleXMoc3JjLCBsb3csIHRvSW5kZXgsIGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGludCBjb21wYXJlKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIENvbXBhcmF0b3IgYykgeworICAgICAgICBnbG9iYWxDb3VudCsrOworICAgICAgICByZXR1cm4gYy5jb21wYXJlKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICB9CisgICAgCisgICAgaW50IGNvbXBhcmUoamF2YS50ZXh0LkNvbGxhdGlvbktleSBzb3VyY2UsIGphdmEudGV4dC5Db2xsYXRpb25LZXkgdGFyZ2V0KSB7CisgICAgICAgIGdsb2JhbENvdW50Kys7CisgICAgICAgIHJldHVybiBzb3VyY2UuY29tcGFyZVRvKHRhcmdldCk7CisgICAgfQorICAgIAorICAgIGludCBjb21wYXJlKGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0aW9uS2V5IHNvdXJjZSwgY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25LZXkgdGFyZ2V0KSB7CisgICAgICAgIGdsb2JhbENvdW50Kys7CisgICAgICAgIHJldHVybiBzb3VyY2UuY29tcGFyZVRvKHRhcmdldCk7CisgICAgfSAKKyAgICAKKyAgICAvL0NsYXNzIGZvciBjb21tYW5kIGxpbmUgb3B0aW9uCisgICAgc3RhdGljIGNsYXNzIE9wdGlvblNwZWMgeworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgaW50IHR5cGU7CisgICAgICAgIFN0cmluZ0J1ZmZlciB2YWx1ZTsKKyAgICAgICAgcHVibGljIE9wdGlvblNwZWMoU3RyaW5nIG5hbWUsIGludCB0eXBlLCBTdHJpbmdCdWZmZXIgdmFsdWUpIHsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgICAgICB0aGlzLnR5cGUgPSB0eXBlOworICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL0RhdGFzZXQucG0gYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9EYXRhc2V0LnBtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlMDhlZmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9EYXRhc2V0LnBtCkBAIC0wLDAgKzEsODYgQEAKKyMvKioKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqLworcGFja2FnZSBEYXRhc2V0OwordXNlIFN0YXRpc3RpY3M6OkRlc2NyaXB0aXZlOwordXNlIFN0YXRpc3RpY3M6OkRpc3RyaWJ1dGlvbnM7Cit1c2Ugc3RyaWN0OworCisjIENyZWF0ZSBhIG5ldyBEYXRhc2V0IHdpdGggdGhlIGdpdmVuIGRhdGEuCitzdWIgbmV3IHsKKyAgICBteSAoJGNsYXNzKSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gYmxlc3MgeworICAgICAgICBfZGF0YSA9PiBcQF8sCisgICAgICAgIF9zY2FsZSA9PiAxLjAsCisgICAgICAgIF9tZWFuID0+IDAuMCwKKyAgICAgICAgX2Vycm9yID0+IDAuMCwKKyAgICB9LCAkY2xhc3M7CisKKyAgICBteSAkbiA9IEBfOworICAgIAorICAgIGlmICgkbiA+PSAxKSB7CisgICAgICAgIG15ICRzdGF0cyA9IFN0YXRpc3RpY3M6OkRlc2NyaXB0aXZlOjpGdWxsLT5uZXcoKTsKKyAgICAgICAgJHN0YXRzLT5hZGRfZGF0YShAeyRzZWxmLT57X2RhdGF9fSk7CisgICAgICAgICRzZWxmLT57X21lYW59ID0gJHN0YXRzLT5tZWFuKCk7CisKKyAgICAgICAgaWYgKCRuID49IDIpIHsKKyAgICAgICAgICAgICMgVXNlIGEgdCBkaXN0cmlidXRpb24gcmF0aGVyIHRoYW4gR2F1c3NpYW4gYmVjYXVzZSAoYSkgd2UKKyAgICAgICAgICAgICMgYXNzdW1lIGFuIHVuZGVybHlpbmcgbm9ybWFsIGRpc3QsIChiKSB3ZSBkbyBub3Qga25vdyB0aGUKKyAgICAgICAgICAgICMgc3RhbmRhcmQgZGV2aWF0aW9uIC0tIHdlIGVzdGltYXRlIGl0IGZyb20gdGhlIGRhdGEsIGFuZCAoYykKKyAgICAgICAgICAgICMgd2UgTUFZIGhhdmUgYSBzbWFsbCBzYW1wbGUgc2l6ZSAoYWxzbyB3b3JrcyBmb3IgbGFyZ2UgbikuCisgICAgICAgICAgICBteSAkdCA9IFN0YXRpc3RpY3M6OkRpc3RyaWJ1dGlvbnM6OnRkaXN0cigkbi0xLCAwLjAwNSk7CisgICAgICAgICAgICAkc2VsZi0+e19lcnJvcn0gPSAkdCAqICRzdGF0cy0+c3RhbmRhcmRfZGV2aWF0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAkc2VsZjsKK30KKworIyBTZXQgYSBzY2FsaW5nIGZhY3RvciBmb3IgYWxsIGRhdGE7IDEuMCBtZWFucyBubyBzY2FsaW5nLgorIyBTY2FsZSBtdXN0IGJlID4gMC4KK3N1YiBzZXRTY2FsZSB7CisgICAgbXkgKCRzZWxmLCAkc2NhbGUpID0gQF87CisgICAgJHNlbGYtPntfc2NhbGV9ID0gJHNjYWxlOworfQorCisjIE11bHRpcGx5IHRoZSBzY2FsaW5nIGZhY3RvciBieSBhIHZhbHVlLgorc3ViIHNjYWxlQnkgeworICAgIG15ICgkc2VsZiwgJGEpID0gQF87CisgICAgJHNlbGYtPntfc2NhbGV9ICo9ICRhOworfQorCisjIFJldHVybiB0aGUgbWVhbi4KK3N1YiBnZXRNZWFuIHsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIHJldHVybiAkc2VsZi0+e19tZWFufSAqICRzZWxmLT57X3NjYWxlfTsKK30KKworIyBSZXR1cm4gYSA5OSUgZXJyb3IgYmFzZWQgb24gdGhlIHQgZGlzdHJpYnV0aW9uLiAgVGhlIGRhdGFzZXQKKyMgaXMgZGVzcmliZWQgYXMgZ2V0TWVhbigpICsvLSBnZXRFcnJvcigpLgorc3ViIGdldEVycm9yIHsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIHJldHVybiAkc2VsZi0+e19lcnJvcn0gKiAkc2VsZi0+e19zY2FsZX07Cit9CisKKyMgRGl2aWRlIHR3byBEYXRhc2V0cyBhbmQgcmV0dXJuIGEgbmV3IG9uZSwgbWFpbnRhaW5pbmcgdGhlCisjIG1lYW4rLy1lcnJvci4gIFRoZSBuZXcgRGF0YXNldCBoYXMgbm8gZGF0YSBwb2ludHMuCitzdWIgZGl2aWRlIHsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRyaHMgPSBzaGlmdDsKKyAgICAKKyAgICBteSAkbWlucmF0aW8gPSAoJHNlbGYtPntfbWVhbn0gLSAkc2VsZi0+e19lcnJvcn0pIC8KKyAgICAgICAgICAgICAgICAgICAoJHJocy0+e19tZWFufSArICRyaHMtPntfZXJyb3J9KTsKKyAgICBteSAkbWF4cmF0aW8gPSAoJHNlbGYtPntfbWVhbn0gKyAkc2VsZi0+e19lcnJvcn0pIC8KKyAgICAgICAgICAgICAgICAgICAoJHJocy0+e19tZWFufSAtICRyaHMtPntfZXJyb3J9KTsKKworICAgIG15ICRyZXN1bHQgPSBEYXRhc2V0LT5uZXcoKTsKKyAgICAkcmVzdWx0LT57X21lYW59ID0gKCRtaW5yYXRpbyArICRtYXhyYXRpbykgLyAyOworICAgICRyZXN1bHQtPntfZXJyb3J9ID0gJHJlc3VsdC0+e19tZWFufSAtICRtaW5yYXRpbzsKKyAgICAkcmVzdWx0LT57X3NjYWxlfSA9ICRzZWxmLT57X3NjYWxlfSAvICRyaHMtPntfc2NhbGV9OworICAgICRyZXN1bHQ7Cit9CisKKzE7CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9Ob3JtYWxpemVyUGVyZm9ybWFuY2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9Ob3JtYWxpemVyUGVyZm9ybWFuY2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ5OTYzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL05vcm1hbGl6ZXJQZXJmb3JtYW5jZVRlc3QuamF2YQpAQCAtMCwwICsxLDY1MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCitwdWJsaWMgY2xhc3MgTm9ybWFsaXplclBlcmZvcm1hbmNlVGVzdCBleHRlbmRzIFBlcmZUZXN0IHsKKyAgICAKKyAgICBTdHJpbmdbXSBORkRGaWxlTGluZXM7CisgICAgU3RyaW5nW10gTkZDRmlsZUxpbmVzOworICAgIFN0cmluZ1tdIGZpbGVMaW5lczsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IE5vcm1hbGl6ZXJQZXJmb3JtYW5jZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHNldHVwKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgaWYoYnVsa19tb2RlID09IGxpbmVfbW9kZSl7CisgICAgICAgICAgICBwcmludFVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZpbGVOYW1lLmVxdWFsc0lnbm9yZUNhc2UoIiIpKXsKKyAgICAgICAgICAgIHByaW50VXNhZ2UoKTsKKyAgICAgICAgfQorICAgICAgICBmaWxlTGluZXMgPSByZWFkTGluZXMoZmlsZU5hbWUsIGVuY29kaW5nLCBidWxrX21vZGUpOworICAgICAgICBORkRGaWxlTGluZXMgPSBub3JtYWxpemVJbnB1dChmaWxlTGluZXMsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgTkZDRmlsZUxpbmVzID0gbm9ybWFsaXplSW5wdXQoZmlsZUxpbmVzLCBOb3JtYWxpemVyLk5GQyk7CisgICAgfQorICAgIAorICAgIC8vIFRlc3QgTkZDIFBlcmZvcm1hbmNlCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElDVV9ORkNfTkZEX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIubm9ybWFsaXplKE5GREZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkRGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkRGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SUNVX05GQ19ORkNfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ub3JtYWxpemUoTkZDRmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GQyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GQ0ZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJQ1VfTkZDX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ub3JtYWxpemUoZmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GQyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIGZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIC8vIFRlc3QgTkZEIFBlcmZvcm1hbmNlCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElDVV9ORkRfTkZEX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIubm9ybWFsaXplKE5GREZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkRGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkRGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SUNVX05GRF9ORkNfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ub3JtYWxpemUoTkZDRmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GQ0ZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJQ1VfTkZEX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ub3JtYWxpemUoZmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIGZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorLyoqIEkgcmVhbGx5IHdpc2ggdGhlcmUgd2FzIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGluIEphdmEgICAgICAKKyAgICAgICAgLy8gVGVzdCBORkMgUGVyZm9ybWFuY2UKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SkRLX05GQ19ORkRfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkRGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5mYyA9IHN1bi50ZXh0Lk5vcm1hbGl6ZXIubm9ybWFsaXplKE5GREZpbGVMaW5lc1tpXSwgc3VuLnRleHQuTm9ybWFsaXplci5DT01QT1NFLDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkRGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkRGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEpES19ORkNfTkZDX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZmMgPSBzdW4udGV4dC5Ob3JtYWxpemVyLm5vcm1hbGl6ZShORkNGaWxlTGluZXNbaV0sIHN1bi50ZXh0Lk5vcm1hbGl6ZXIuQ09NUE9TRSwwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZDRmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEpES19ORkNfT3JpZ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmZjID0gc3VuLnRleHQuTm9ybWFsaXplci5ub3JtYWxpemUoZmlsZUxpbmVzW2ldLCBzdW4udGV4dC5Ob3JtYWxpemVyLkNPTVBPU0UsMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIGZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIC8vIFRlc3QgTkZEIFBlcmZvcm1hbmNlCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdEpES19ORkRfTkZEX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZmMgPSBzdW4udGV4dC5Ob3JtYWxpemVyLm5vcm1hbGl6ZShORkRGaWxlTGluZXNbaV0sIHN1bi50ZXh0Lk5vcm1hbGl6ZXIuREVDT01QLDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkRGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkRGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SkRLX05GRF9ORkNfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5mYyA9IHN1bi50ZXh0Lk5vcm1hbGl6ZXIubm9ybWFsaXplKE5GQ0ZpbGVMaW5lc1tpXSwgc3VuLnRleHQuTm9ybWFsaXplci5ERUNPTVAsMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GQ0ZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RKREtfTkZEX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5mYyA9IHN1bi50ZXh0Lk5vcm1hbGl6ZXIubm9ybWFsaXplKGZpbGVMaW5lc1tpXSwgc3VuLnRleHQuTm9ybWFsaXplci5ERUNPTVAsMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIGZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIC8vIFRlc3QgRkNEIFBlcmZvcm1hbmNlCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElDVV9GQ0RfTkZEX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuZmMgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShORkRGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuRkNEKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZERmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisqKi8gICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElDVV9GQ0RfTkZDX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIubm9ybWFsaXplKE5GQ0ZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5GQ0QpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkNGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0SUNVX0ZDRF9PcmlnX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIubm9ybWFsaXplKGZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5GQ0QpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICAvLyBUZXN0IFF1aWNrIENoZWNrIFBlcmZvcm1hbmNlCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdFFDX05GQ19ORkRfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkRGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5xdWlja0NoZWNrKE5GREZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkMsMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GREZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RRQ19ORkNfTkZDX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIucXVpY2tDaGVjayhORkNGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZDLDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkNGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0UUNfTkZDX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5xdWlja0NoZWNrKGZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkMsMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIGZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RRQ19ORkRfTkZEX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIucXVpY2tDaGVjayhORkRGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZELDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkRGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkRGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0UUNfTkZEX05GQ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5xdWlja0NoZWNrKE5GQ0ZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkQsMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GQ0ZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RRQ19ORkRfT3JpZ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5xdWlja0NoZWNrKGZpbGVMaW5lc1tpXSwgTm9ybWFsaXplci5ORkQsMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIGZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RRQ19GQ0RfTkZEX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLnF1aWNrQ2hlY2soTkZERmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLkZDRCwwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZERmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdFFDX0ZDRF9ORkNfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIucXVpY2tDaGVjayhORkNGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuRkNELDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBORkNGaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBORkNGaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiBUZXN0UUNfRkNEX09yaWdfVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIucXVpY2tDaGVjayhmaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuRkNELDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgdG90YWxDaGFycyA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlTGluZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdG90YWxDaGFycyA9IHRvdGFsQ2hhcnMgKyBmaWxlTGluZXNbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbENoYXJzOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICAvLyBUZXN0IGlzTm9ybWFsaXplZCBQZXJmb3JtYW5jZQorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfTkZDX05GRF9UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoTkZERmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLk5GQywgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GREZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIE5GREZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIFRlc3RJc05vcm1hbGl6ZWRfTkZDX05GQ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5GQ0ZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLmlzTm9ybWFsaXplZChORkNGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZDLCAwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZDRmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElzTm9ybWFsaXplZF9ORkNfT3JpZ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLmlzTm9ybWFsaXplZChmaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZDLCAwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgZmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElzTm9ybWFsaXplZF9ORkRfTkZEX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLmlzTm9ybWFsaXplZChORkRGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZELCAwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZERmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElzTm9ybWFsaXplZF9ORkRfTkZDX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLmlzTm9ybWFsaXplZChORkNGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZELCAwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZDRmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElzTm9ybWFsaXplZF9ORkRfT3JpZ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLmlzTm9ybWFsaXplZChmaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuTkZELCAwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgZmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElzTm9ybWFsaXplZF9GQ0RfTkZEX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLmlzTm9ybWFsaXplZChORkRGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuRkNELCAwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZERmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZERmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElzTm9ybWFsaXplZF9GQ0RfTkZDX1RleHQoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLmlzTm9ybWFsaXplZChORkNGaWxlTGluZXNbaV0sIE5vcm1hbGl6ZXIuRkNELCAwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTkZDRmlsZUxpbmVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHRvdGFsQ2hhcnMgPSB0b3RhbENoYXJzICsgTkZDRmlsZUxpbmVzW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gVGVzdElzTm9ybWFsaXplZF9GQ0RfT3JpZ19UZXh0KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoZmlsZUxpbmVzW2ldLCBOb3JtYWxpemVyLkZDRCwgMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCB0b3RhbENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZpbGVMaW5lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gdG90YWxDaGFycyArIGZpbGVMaW5lc1tpXS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsQ2hhcnM7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgICAgCisgICAgcHJpdmF0ZSB2b2lkIHByaW50VXNhZ2UoKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVXNhZ2U6ICIgKyB0aGlzLmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiBbT1BUSU9OU10gZmlsZU5hbWVcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcdC1mIG9yIC0tZmlsZU5hbWUgIFx0ZmlsZSB0byBiZSB1c2VkIGFzIHRlc3QgZGF0YVxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0LXMgb3IgLS1zb3VyY2VEaXIgXHRzb3VyY2UgZGlyZWN0b3J5IGZvciBmaWxlcyBmb2xsb3dlZCBieSBwYXRoXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHQtZSBvciAtLWVuY29kaW5nICBcdGVuY29kaW5nIG9mIHNvdXJjZSBmaWxlc1xuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0LWIgb3IgLS1idWxrTW9kZSAgXHRub3JtYWxpemUgd2hvbGUgZmlsZSBhdCBvbmNlXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHQtbCBvciAtLWxpbmVNb2RlICBcdG5vcm1hbGl6ZSBmaWxlIG9uZSBsaW5lIGF0IGEgdGltZVxuIgorICAgICAgICAgICAgKTsKKyAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgfQorICAgIFN0cmluZ1tdIG5vcm1hbGl6ZUlucHV0KFN0cmluZ1tdIHNyYywgTm9ybWFsaXplci5Nb2RlIG1vZGUpIHsKKyAgICAgICAgU3RyaW5nW10gZGVzdCA9IG5ldyBTdHJpbmdbc3JjLmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3JjLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBkZXN0W2ldID0gTm9ybWFsaXplci5ub3JtYWxpemUoc3JjW2ldLCBtb2RlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGRlc3Q7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvUGVyZlRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL1BlcmZUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGFlZTAyZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL1BlcmZUZXN0LmphdmEKQEAgLTAsMCArMSw2ODEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudG9vbC5VT3B0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC4qOworCisvKioKKyAqIEJhc2UgY2xhc3MgZm9yIHBlcmZvcm1hbmNlIHRlc3RpbmcgZnJhbWV3b3JrLiAgVG8gdXNlLCBzdWJjbGFzcyBhbmQKKyAqIGRlZmluZSBvbmUgb3IgbW9yZSBpbnN0YW5jZSBtZXRob2RzIHdpdGggbmFtZXMgYmVnaW5uaW5nIHdpdGgKKyAqICJ0ZXN0IiAoY2FzZSBpZ25vcmVkKS4gIEVhY2ggc3VjaCBtZXRob2QgbXVzdCB0aGVuIGNhbGwgdHdvCisgKiBmdW5jdGlvbnMsIHNldFRlc3RGdW5jdGlvbigpLCBhbmQgc2V0RXZlbnRzUGVyQ2FsbCgpLiAgSW4gYWRkaXRpb24sCisgKiB0aGUgc3ViY2xhc3Mgc2hvdWxkIGRlZmluZSBhIG1haW4oKSBtZXRob2QgdGhhdCBjYWxscyBydW4oKSBhcworICogZGVmaW5lZCBoZXJlLiAgSWYgdGhlIHN1YmNsYXNzZXMgdXNlcyBhbnkgY29tbWFuZCBsaW5lIGFyZ3VtZW50cworICogKGJleW9uZCB0aG9zZSBoYW5kbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhpcyBjYWxzcykgdGhlbiBpdCBzaG91bGQKKyAqIG92ZXJyaWRlIHNldHVwKCkgdG8gaGFuZGxlIGl0cyBhcmd1bWVudHMuCisgKgorICogRXhhbXBsZSBpbnZvY2F0aW9uOgorICogamF2YSAtY3AgY2xhc3NlcyAtdmVyYm9zZTpnYyBjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmLlVuaWNvZGVTZXRQZXJmIC0tZ2MgLS1wYXNzZXMgNCAtLWl0ZXJhdGlvbnMgMTAwIFVuaWNvZGVTZXRBZGQgW1s6bDpdWzpjOl1dCisgKgorICogRXhhbXBsZSBvdXRwdXQ6CisgKiBbR0MgNTExSy0+MTkySygxOTg0SyksIDAuMDA4NjE3MCBzZWNzXQorICogW0dDIDcwNEstPjM1M0soMTk4NEspLCAwLjAwNTk2MTkgc2Vjc10KKyAqIFtGdWxsIEdDIDYxOEstPjM3MUsoMTk4NEspLCAwLjAyNDI3Nzkgc2Vjc10KKyAqIFtGdWxsIEdDIDM3MUstPjM3MUsoMTk4NEspLCAwLjAyMjg2NDkgc2Vjc10KKyAqID0gdGVzdFVuaWNvZGVTZXRBZGQgYmVnaW4gMTAwCisgKiA9IHRlc3RVbmljb2RlU2V0QWRkIGVuZCAxMTk3NyAxMTA5MDQ0CisgKiA9IHRlc3RVbmljb2RlU2V0QWRkIGJlZ2luIDEwMAorICogPSB0ZXN0VW5pY29kZVNldEFkZCBlbmQgMTIwNDcgMTEwOTA0NAorICogPSB0ZXN0VW5pY29kZVNldEFkZCBiZWdpbiAxMDAKKyAqID0gdGVzdFVuaWNvZGVTZXRBZGQgZW5kIDExOTg3IDExMDkwNDQKKyAqID0gdGVzdFVuaWNvZGVTZXRBZGQgYmVnaW4gMTAwCisgKiA9IHRlc3RVbmljb2RlU2V0QWRkIGVuZCAxMTk3OCAxMTA5MDQ0CisgKgorICogVGhlIFtdIGxpbmVzIGFyZSBlbWl0dGVkIGJ5IHRoZSBKVk0gYXMgYSByZXN1bHQgb2YgdGhlIC12ZXJib3NlOmdjCisgKiBzd2l0Y2guCisgKgorICogTGluZXMgYmVnaW5uaW5nIHdpdGggJz0nIGFyZSBlbWl0dGVkIGJ5IFBlcmZUZXN0OgorICoKKyAqID0gdGVzdFVuaWNvZGVTZXRBZGQgYmVnaW4gMTAwCisgKiBBICdiZWdpbicgc3RhdGVtZW50IGNvbnRhaW5zIHRoZSBuYW1lIG9mIHRoZSBzZXR1cCBtZXRob2QsIHdoaWNoCisgKiBkZXRlcm1pbmVzIHdoYXQgdGVzdCBmdW5jdGlvbiBpcyBtZWFzdXJlcywgYW5kIHRoZSBudW1iZXIgb2YKKyAqIGl0ZXJhdGlvbnMgdGhhdCB3aWxsIGJlIHRpbWVzLgorICoKKyAqID0gdGVzdFVuaWNvZGVTZXRBZGQgZW5kIDEyMDQ3IDExMDkwNDQKKyAqIEFuICdlbmQnIHN0YXRlbWVudCBnaXZlcyB0aGUgbmFtZSBvZiB0aGUgc2V0dXAgbWV0aG9kIGFnYWluLCBhbmQKKyAqIHRoZW4gdHdvIGludGVnZXJzLiAgVGhlIGZpcnN0IGlzIHRoZSB0b3RhbCBlbGFwc2VkIHRpbWUgaW4KKyAqIG1pbGxpc2Vjb25kcywgYW5kIHRoZSBzZWNvbmQgaXMgdGhlIG51bWJlciBvZiBldmVudHMgcGVyIGl0ZXJhdGlvbi4KKyAqIEluIHRoaXMgZXhhbXBsZSwgdGhlIHRpbWUgcGVyIGV2ZW50IGlzIDEyMDQ3IC8gKDEwMCAqIDExMDkwNDQpIG9yCisgKiAxMDguNiBucy9ldmVudC4KKyAqCisgKiBSYXcgdGltZXMgYXJlIGdpdmVuIGFzIGludGVnZXIgbXMsIGJlY2F1c2UgdGhpcyBpcyB3aGF0IHRoZSBzeXN0ZW0KKyAqIG1lYXN1cmVzLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzaW5jZSBJQ1UgMi40CisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBQZXJmVGVzdCB7CisKKyAgICAvKioKKyAgICAgKiBBIG1hcCBvZiBtdW5nZWQgbmFtZXMgdG8gTWV0aG9kIG9iamVjdHMuICBBbGwgYXZhaWxhYmxlIG1ldGhvZHMKKyAgICAgKiBpbiB0aGUgY3VycmVudCBvYmplY3QgYmVnaW5uaW5nIHdpdGggInRlc3QiIChjYXNlIGlnbm9yZWQpLgorICAgICAqLworICAgIHByaXZhdGUgTWFwIGF2YWlsYWJsZVRlc3RzOyAvLyBOT1Qgc3RhdGljCisKKyAgICAvLyBDb21tYW5kLWxpbmUgb3B0aW9ucyBzZXQgdGhlc2U6CisgICAgcHJvdGVjdGVkIGJvb2xlYW4gICAgICAgIHZlcmJvc2U7CisgICAgcHJvdGVjdGVkIFN0cmluZyAgICAgICAgIHNvdXJjZURpcjsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nICAgICAgICAgZmlsZU5hbWU7CisgICAgLy9wcm90ZWN0ZWQgU3RyaW5nICAgICAgICAgcmVzb2x2ZWRGaWxlTmFtZTsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nICAgICAgICAgZW5jb2Rpbmc7CisgICAgcHJvdGVjdGVkIGJvb2xlYW4gICAgICAgIHVzZWxlbjsKKyAgICBwcm90ZWN0ZWQgaW50ICAgICAgICAgICAgaXRlcmF0aW9uczsKKyAgICBwcm90ZWN0ZWQgaW50ICAgICAgICAgICAgcGFzc2VzOworICAgIHByb3RlY3RlZCBpbnQgICAgICAgICAgICB0aW1lOworICAgIHByb3RlY3RlZCBib29sZWFuICAgICAgICBsaW5lX21vZGU7CisgICAgcHJvdGVjdGVkIGJvb2xlYW4gICAgICAgIGJ1bGtfbW9kZTsKKyAgICBwcm90ZWN0ZWQgTG9jYWxlICAgICAgICAgbG9jYWxlOworICAgIHByb3RlY3RlZCBib29sZWFuICAgICAgICBkb1ByaW9yR0M7CisKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIG9mIFBlcmZUZXN0IHdpbGwgbmVlZCB0byBjcmVhdGUgc3ViY2xhc3NlcyBvZgorICAgICAqIEZ1bmN0aW9uIHRoYXQgZGVmaW5lIGEgY2FsbCgpIG1ldGhvZCB3aGljaCBjb250YWlucyB0aGUgY29kZSB0bworICAgICAqIGJlIHRpbWVkLiAgVGhleSB0aGVuIGNhbGwgc2V0VGVzdEZ1bmN0aW9uKCkgaW4gdGhlaXIgIlRlc3QuLi4iCisgICAgICogbWV0aG9kIHRvIGVzdGFibGlzaCB0aGlzIGFzIHRoZSBjdXJyZW50IHRlc3QgZnVuY3Rvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgc3RhdGljIGNsYXNzIEZ1bmN0aW9uIHsKKworICAgICAgICAvKioKKyAgICAgICAgICogU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCB0aGlzIG1ldGhvZCB0byBkbyB0aGUgYWN0aW9uIHRvIGJlCisgICAgICAgICAqIG1lYXN1cmVkLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgY2FsbCgpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBTdWJjbGFzc2VzIG1heSBpbXBsZW1lbnQgdGhpcyBtZXRob2QgdG8gcmV0dXJuIHBvc2l0aXZlCisgICAgICAgICAqIGludGVnZXIgaW5kaWNhdGluZyB0aGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMgaW4gYSBzaW5nbGUKKyAgICAgICAgICogY2FsbCB0byB0aGlzIG9iamVjdCdzIGNhbGwoKSBtZXRob2QuICBJZiBzdWJjbGFzc2VzIGRvIG5vdAorICAgICAgICAgKiBvdmVycmlkZSB0aGlzIG1ldGhvZCwgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyAxLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFN1YmNsYXNzZXMgbWF5IGltcGxlbWVudCB0aGlzIG1ldGhvZCB0byByZXR1cm4gZWl0aGVyIHBvc2l0aXZlCisgICAgICAgICAqIG9yIG5lZ2F0aXZlIGludGVnZXIgaW5kaWNhdGluZyB0aGUgbnVtYmVyIG9mIGV2ZW50cyBpbiBhIHNpbmdsZQorICAgICAgICAgKiBjYWxsIHRvIHRoaXMgb2JqZWN0J3MgY2FsbCgpIG1ldGhvZC4gIElmIHN1YmNsYXNzZXMgZG8gbm90CisgICAgICAgICAqIG92ZXJyaWRlIHRoaXMgbWV0aG9kLCB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIC0xLAorICAgICAgICAgKiBpbmRpY2F0aW5nIHRoYXQgZXZlbnRzIGFyZSBub3QgYXBwbGljYWJsZSB0byB0aGlzIHRlc3QuCisgICAgICAgICAqIGUuZzogTnVtYmVyIG9mIGJyZWFrcyAvIGl0ZXJhdGlvbnMgZm9yIGJyZWFrIGl0ZXJhdG9yCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgbG9uZyBnZXRFdmVudHNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ2FsbCBjYWxsKCkgbiB0aW1lcyBpbiBhIHRpZ2h0IGxvb3AgYW5kIHJldHVybiB0aGUgZWxhcHNlZAorICAgICAgICAgKiBtaWxsaXNlY29uZHMuICBJZiBuIGlzIHNtYWxsIGFuZCBjYWxsKCkgaXMgZmFzdCB0aGUgcmV0dXJuCisgICAgICAgICAqIHJlc3VsdCBtYXkgYmUgemVyby4gIFNtYWxsIHJldHVybiB2YWx1ZXMgaGF2ZSBsaW1pdGVkCisgICAgICAgICAqIG1lYW5pbmdmdWxuZXNzLCBkZXBlbmRpbmcgb24gdGhlIHVuZGVybHlpbmcgVk0gYW5kIE9TLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGZpbmFsIGxvbmcgdGltZShsb25nIG4pIHsKKyAgICAgICAgICAgIGxvbmcgc3RhcnQsIHN0b3A7CisgICAgICAgICAgICBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICAgICAgd2hpbGUgKG4tLSA+IDApIHsKKyAgICAgICAgICAgICAgICBjYWxsKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdG9wID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICByZXR1cm4gc3RvcCAtIHN0YXJ0OyAvLyBtcworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRXhjZXB0aW9uIGluZGljYXRpbmcgYSB1c2FnZSBlcnJvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFVzYWdlRXhjZXB0aW9uIGV4dGVuZHMgRXhjZXB0aW9uIHsKKyAgICAgICAgcHVibGljIFVzYWdlRXhjZXB0aW9uKFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgICAgICBzdXBlcihtZXNzYWdlKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBVc2FnZUV4Y2VwdGlvbigpIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgUGVyZlRlc3QoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogRnJhbWV3b3JrIG1ldGhvZC4gIERlZmF1bHQgaW1wbGVtZW50YXRpb24gZG9lcyBub3QgcGFyc2UgYW55CisgICAgICogZXh0cmEgYXJndW1lbnRzLiAgU3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUgdGhpcyB0byBwYXJzZSBleHRyYQorICAgICAqIGFyZ3VtZW50cy4gIFN1YmNsYXNzIGltcGxlbWVudGF0aW9ucyBzaG91bGQgTk9UIGNhbGwgdGhlIGJhc2UKKyAgICAgKiBjbGFzcyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXR1cChTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJFeHRyYSBhcmd1bWVudHMgcmVjZWl2ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZXNlIG11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggZ2V0T3B0aW9ucygpLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgSEVMUDEgPSAwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgSEVMUDIgPSAxOworICAgIHN0YXRpYyBmaW5hbCBpbnQgVkVSQk9TRSA9IDI7CisgICAgc3RhdGljIGZpbmFsIGludCBTT1VSQ0VESVIgPSAzOworICAgIHN0YXRpYyBmaW5hbCBpbnQgRU5DT0RJTkcgPSA0OworICAgIHN0YXRpYyBmaW5hbCBpbnQgVVNFTEVOID0gNTsKKyAgICBzdGF0aWMgZmluYWwgaW50IEZJTEVfTkFNRSA9IDY7CisgICAgc3RhdGljIGZpbmFsIGludCBQQVNTRVMgPSA3OworICAgIHN0YXRpYyBmaW5hbCBpbnQgSVRFUkFUSU9OUyA9IDg7CisgICAgc3RhdGljIGZpbmFsIGludCBUSU1FID0gOTsKKyAgICBzdGF0aWMgZmluYWwgaW50IExJTkVfTU9ERSA9IDEwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQlVMS19NT0RFID0gMTE7CisgICAgc3RhdGljIGZpbmFsIGludCBMT0NBTEUgPSAxMjsKKyAgICAvLyBPcHRpb25zIGFib3ZlIGhlcmUgYXJlIGlkZW50aWNhbCB0byB0aG9zZSBpbiBDOyBrZWVwIGluIHN5bmMgd2l0aCBDCisgICAgLy8gT3B0aW9ucyBiZWxvdyBoZXJlIGFyZSB1bmlxdWUgdG8gSmF2YTsgc2hpZnQgZG93biBhcyBuZWNlc3NhcnkKKyAgICBzdGF0aWMgZmluYWwgaW50IEdBUkJBR0VfQ09MTEVDVCA9IDEzOworICAgIHN0YXRpYyBmaW5hbCBpbnQgTElTVCA9IDE0OworCisgICAgVU9wdGlvbltdIGdldE9wdGlvbnMoKSB7CisgICAgICAgIHJldHVybiBuZXcgVU9wdGlvbltdIHsKKyAgICAgICAgICAgIFVPcHRpb24uSEVMUF9IKCksCisgICAgICAgICAgICBVT3B0aW9uLkhFTFBfUVVFU1RJT05fTUFSSygpLAorICAgICAgICAgICAgVU9wdGlvbi5WRVJCT1NFKCksCisgICAgICAgICAgICBVT3B0aW9uLlNPVVJDRURJUigpLAorICAgICAgICAgICAgVU9wdGlvbi5FTkNPRElORygpLAorICAgICAgICAgICAgVU9wdGlvbi5ERUYoICJ1c2VsZW4iLCAgICAgICAgJ3UnLCBVT3B0aW9uLk5PX0FSRyksCisgICAgICAgICAgICBVT3B0aW9uLkRFRiggImZpbGUtbmFtZSIsICAgICAnZicsIFVPcHRpb24uUkVRVUlSRVNfQVJHKSwKKyAgICAgICAgICAgIFVPcHRpb24uREVGKCAicGFzc2VzIiwgICAgICAgICdwJywgVU9wdGlvbi5SRVFVSVJFU19BUkcpLAorICAgICAgICAgICAgVU9wdGlvbi5ERUYoICJpdGVyYXRpb25zIiwgICAgJ2knLCBVT3B0aW9uLlJFUVVJUkVTX0FSRyksCisgICAgICAgICAgICBVT3B0aW9uLkRFRiggInRpbWUiLCAgICAgICAgICAndCcsIFVPcHRpb24uUkVRVUlSRVNfQVJHKSwKKyAgICAgICAgICAgIFVPcHRpb24uREVGKCAibGluZS1tb2RlIiwgICAgICdsJywgVU9wdGlvbi5OT19BUkcpLAorICAgICAgICAgICAgVU9wdGlvbi5ERUYoICJidWxrLW1vZGUiLCAgICAgJ2InLCBVT3B0aW9uLk5PX0FSRyksCisgICAgICAgICAgICBVT3B0aW9uLkRFRiggImxvY2FsZSIsICAgICAgICAnTCcsIFVPcHRpb24uUkVRVUlSRVNfQVJHKSwKKworICAgICAgICAgICAgLy8gT3B0aW9ucyBhYm92ZSBoZXJlIGFyZSBpZGVudGljYWwgdG8gdGhvc2UgaW4gQzsga2VlcCBpbiBzeW5jCisgICAgICAgICAgICAvLyBPcHRpb25zIGJlbG93IGhlcmUgYXJlIHVuaXF1ZSB0byBKYXZhCisKKyAgICAgICAgICAgIFVPcHRpb24uREVGKCAiZ2MiLCAgICAgICAgICAgICdnJywgVU9wdGlvbi5OT19BUkcpLAorICAgICAgICAgICAgVU9wdGlvbi5ERUYoICJsaXN0IiwgICAgIChjaGFyKS0xLCBVT3B0aW9uLk5PX0FSRyksCisgICAgICAgIH07CisgICAgfQorCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBzaG91bGQgY2FsbCB0aGlzIG1ldGhvZCBpbiB0aGVpciBtYWluKCkuICBydW4oKSB3aWxsCisgICAgICogaW4gdHVybiBjYWxsIHNldHVwKCkgd2l0aCBhbnkgYXJndW1lbnRzIGl0IGRvZXMgbm90IHBhcnNlLgorICAgICAqIFRoaXMgbWV0aG9kIHBhcnNlcyB0aGUgY29tbWFuZCBsaW5lIGFuZCBydW5zIHRoZSB0ZXN0cyBnaXZlbiBvbgorICAgICAqIHRoZSBjb21tYW5kIGxpbmUsIHdpdGggdGhlIGdpdmVuIHBhcmFtZXRlcnMuICBTZWUgdGhlIGNsYXNzCisgICAgICogZGVzY3JpcHRpb24gZm9yIGRldGFpbHMuCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgcnVuKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBBcnJheUxpc3QgbWV0aG9kTGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgTWV0aG9kIG1ldGggPSBudWxsOworCisgICAgICAgIGF2YWlsYWJsZVRlc3RzID0gbnVsbDsKKyAgICAgICAgZG9QcmlvckdDID0gZmFsc2U7CisgICAgICAgIGVuY29kaW5nID0gIiI7CisgICAgICAgIHVzZWxlbiA9IGZhbHNlOworICAgICAgICBmaWxlTmFtZSA9IG51bGw7CisgICAgICAgIHNvdXJjZURpciA9IG51bGw7CisgICAgICAgIC8vbGluZXMgPSBudWxsOworICAgICAgICBsaW5lX21vZGUgPSBmYWxzZTsKKyAgICAgICAgLy9idWZmZXIgPSBudWxsOworICAgICAgICAvL2J1ZmZlckxlbiA9IDA7CisgICAgICAgIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAgICAgYnVsa19tb2RlID0gZmFsc2U7CisgICAgICAgIHBhc3NlcyA9IGl0ZXJhdGlvbnMgPSB0aW1lID0gMDsKKyAgICAgICAgbG9jYWxlID0gbnVsbDsKKworICAgICAgICBVT3B0aW9uW10gb3B0aW9ucyA9IGdldE9wdGlvbnMoKTsKKyAgICAgICAgaW50IHJlbWFpbmluZ0FyZ2MgPSBVT3B0aW9uLnBhcnNlQXJncyhhcmdzLCBvcHRpb25zKTsKKworICAgICAgICBpZihhcmdzLmxlbmd0aD09MCB8fCBvcHRpb25zW0hFTFAxXS5kb2VzT2NjdXIgfHwgb3B0aW9uc1tIRUxQMl0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVXNhZ2VFeGNlcHRpb24oKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKG9wdGlvbnNbVkVSQk9TRV0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICB2ZXJib3NlID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKG9wdGlvbnNbU09VUkNFRElSXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIHNvdXJjZURpciA9IG9wdGlvbnNbU09VUkNFRElSXS52YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKG9wdGlvbnNbRU5DT0RJTkddLmRvZXNPY2N1cikgeworICAgICAgICAgICAgZW5jb2RpbmcgPSBvcHRpb25zW0VOQ09ESU5HXS52YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKG9wdGlvbnNbVVNFTEVOXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIHVzZWxlbiA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW0ZJTEVfTkFNRV0uZG9lc09jY3VyKXsKKyAgICAgICAgICAgIGZpbGVOYW1lID0gb3B0aW9uc1tGSUxFX05BTUVdLnZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wdGlvbnNbVElNRV0uZG9lc09jY3VyICYmIG9wdGlvbnNbSVRFUkFUSU9OU10uZG9lc09jY3VyKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVXNhZ2VFeGNlcHRpb24oIkNhbm5vdCBzcGVjaWZ5IGJvdGggdGltZSBhbmQgaXRlcmF0aW9ucyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYob3B0aW9uc1tQQVNTRVNdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgcGFzc2VzID0gSW50ZWdlci5wYXJzZUludChvcHRpb25zW1BBU1NFU10udmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgaWYob3B0aW9uc1tJVEVSQVRJT05TXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIGl0ZXJhdGlvbnMgPSBJbnRlZ2VyLnBhcnNlSW50KG9wdGlvbnNbSVRFUkFUSU9OU10udmFsdWUpOworICAgICAgICAgICAgdGltZSA9MDsKKyAgICAgICAgfQorCisgICAgICAgIGlmKG9wdGlvbnNbVElNRV0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICB0aW1lID0gSW50ZWdlci5wYXJzZUludChvcHRpb25zW1RJTUVdLnZhbHVlKTsKKyAgICAgICAgICAgIGl0ZXJhdGlvbnMgPSAwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wdGlvbnNbTElORV9NT0RFXS5kb2VzT2NjdXIgJiYgb3B0aW9uc1tCVUxLX01PREVdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVzYWdlRXhjZXB0aW9uKCJDYW5ub3Qgc3BlY2lmeSBib3RoIGxpbmUgbW9kZSBhbmQgYnVsayBtb2RlIik7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW0xJTkVfTU9ERV0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICBsaW5lX21vZGUgPSB0cnVlOworICAgICAgICAgICAgYnVsa19tb2RlID0gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW0JVTEtfTU9ERV0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICBidWxrX21vZGUgPSB0cnVlOworICAgICAgICAgICAgbGluZV9tb2RlID0gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW0xPQ0FMRV0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICBsb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKG9wdGlvbnNbTE9DQUxFXS52YWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZihvcHRpb25zW0dBUkJBR0VfQ09MTEVDVF0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICBkb1ByaW9yR0MgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaW50IGksIGo7CisgICAgICAgIGZvciAoaT0wOyBpPHJlbWFpbmluZ0FyZ2M7ICsraSkgeworCisgICAgICAgICAgICAvLyBpcyBhcmdzW2ldIGEgbWV0aG9kIG5hbWU/CisgICAgICAgICAgICBNZXRob2QgbSA9IGdldFRlc3RNZXRob2QoYXJnc1tpXSk7CisgICAgICAgICAgICBpZiAobSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbWV0aG9kTGlzdC5hZGQobSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGFyZ3NbaV0gaXMgbmVpdGhlciBhIG1ldGhvZCBuYW1lIG5vciBhIG51bWJlci4gIFBhc3MKKyAgICAgICAgICAgIC8vIGV2ZXJ5dGhpbmcgZnJvbSBoZXJlIG9uIHRocm91Z2ggdG8gdGhlIHN1YmNsYXNzIHZpYQorICAgICAgICAgICAgLy8gc2V0dXAoKS4KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1ldGhvZExpc3Quc2l6ZSgpIDwgMSB8fCBvcHRpb25zW0xJU1RdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJBdmFpbGFibGUgdGVzdHM6Iik7CisgICAgICAgICAgICBJdGVyYXRvciBtZXRob2RzID0gZ2V0QXZhaWxhYmxlVGVzdHMoKS52YWx1ZXMoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgVHJlZVNldCBtZXRob2ROYW1lcyA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgICAgICB3aGlsZSAobWV0aG9kcy5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBtZXRob2ROYW1lcy5hZGQoKChNZXRob2QpbWV0aG9kcy5uZXh0KCkpLmdldE5hbWUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJdGVyYXRvciB0ZXN0cyA9IG1ldGhvZE5hbWVzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAodGVzdHMuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCIgIiArIHRlc3RzLm5leHQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob3B0aW9uc1tMSVNUXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93IG5ldyBVc2FnZUV4Y2VwdGlvbigiTXVzdCBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBtZXRob2QgbmFtZSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gUGFzcyByZW1haW5pbmcgYXJndW1lbnRzLCBpZiBhbnksIHRocm91Z2ggdG8gdGhlIHN1YmNsYXNzCisgICAgICAgIC8vIHZpYSBzZXR1cCgpIG1ldGhvZC4KKyAgICAgICAgU3RyaW5nW10gc3ViY2xhc3NBcmdzID0gbmV3IFN0cmluZ1tyZW1haW5pbmdBcmdjIC0gaV07CisgICAgICAgIGZvciAoaj0wOyBpPHJlbWFpbmluZ0FyZ2M7ICsraikgeworICAgICAgICAgICAgc3ViY2xhc3NBcmdzW2pdID0gYXJnc1tpKytdOworICAgICAgICB9CisgICAgICAgIHNldHVwKHN1YmNsYXNzQXJncyk7CisKKyAgICAgICAgaWYgKGRvUHJpb3JHQykgeworICAgICAgICAgICAgLy8gUHV0IHRoZSBoZWFwIGluIGEgY29uc2lzdGVudCBzdGF0ZQorICAgICAgICAgICAgZ2MoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIE9iamVjdFtdIE5PX0FSR1MgPSBuZXcgT2JqZWN0WzBdOworCisgICAgICAgIC8vIFJ1biB0aGUgdGVzdHMKKyAgICAgICAgZm9yIChpPTA7IGk8bWV0aG9kTGlzdC5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgbWV0aCA9IChNZXRob2QpIG1ldGhvZExpc3QuZ2V0KGkpOworCisgICAgICAgICAgICAvLyBDYWxsIG1ldGggdG8gc2V0IHVwIHRoZSB0ZXN0CisgICAgICAgICAgIC8vIGxvbmcgZXZlbnRzUGVyQ2FsbCA9IC0xOworICAgICAgICAgICAgRnVuY3Rpb24gdGVzdEZ1bmN0aW9uID0gKEZ1bmN0aW9uKW1ldGguaW52b2tlKHRoaXMsIE5PX0FSR1MpOworICAgICAgICAgICAgaWYgKHRlc3RGdW5jdGlvbiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24obWV0aC5nZXROYW1lKCkgKyAiIGZhaWxlZCB0byByZXR1cm4gYSB0ZXN0IGZ1bmN0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGVzdEZ1bmN0aW9uLmdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSA8IDEpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihtZXRoLmdldE5hbWUoKSArICIgcmV0dXJuZWQgYW4gaWxsZWdhbCBvcGVyYXRpb25zL2l0ZXJhdGlvbigpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBuOworICAgICAgICAgICAgbG9uZyB0OworICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAvL1RoZSByZXN0IG9mIHRoaXMgbWV0aG9kIGlzIG1vZGlmaWVkIGJ5IEdDTCBTaGFuZ2hhaS4gVG8gc3luY2hyb25pemUgdGhpcyBjbGFzcyB3aXRoIElDVTRDJ3MgdXBlcmYuY3BwCisgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIGxvbmcgbG9vcHMgPSAwOworICAgICAgICAgICAgLy9mb3IgKGo9MDsgajxwYXNzZXM7ICsraikgeworICAgICAgICAgICAgICAgIGlmIChpdGVyYXRpb25zID4gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBSdW4gc3BlY2lmaWVkIG51bWJlciBvZiBpdGVyYXRpb25zCisgICAgICAgICAgICAgICAgICAgIGxvb3BzID0gaXRlcmF0aW9uczsKKy8vICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj0gIiArIG1ldGguZ2V0TmFtZSgpICsgIiBiZWdpbiAiICsgaXRlcmF0aW9ucyArICIgaXRlcmF0aW9ucyIpOworLy8gICAgICAgICAgICAgICAgICAgIHQgPSB0ZXN0RnVuY3Rpb24udGltZShpdGVyYXRpb25zKTsKKy8vICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj0gIiArIG1ldGguZ2V0TmFtZSgpICsgIiBlbmQgIiArICh0LzEwMDAuMCkgKyAiICIgKyB0ZXN0RnVuY3Rpb24uZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBSdW4gZm9yIHNwZWNpZmllZCBkdXJhdGlvbiBpbiBzZWNvbmRzCisgICAgICAgICAgICAgICAgICAgIC8vZmlyc3QgY2FsaWJyYXRlIHRvIGRldGVybWluZSBpdGVyYXRpb25zL3Bhc3MKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPSAiICsgbWV0aC5nZXROYW1lKCkgKyAiIGNhbGlicmF0aW5nICIgKyB0aW1lICsgIiBzZWNvbmRzIiApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG4gPSB0aW1lICogMTAwMDsgLy8gcyA9PiBtcworICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiIyAiICsgbWV0aC5nZXROYW1lKCkgKyAiICIgKyBuICsgIiBzZWMiKTsKKworICAgICAgICAgICAgICAgICAgICBpbnQgZmFpbHNhZmUgPSAxOyAvLyBsYXN0IHJlc29ydCBmb3IgdmVyeSBmYXN0IG1ldGhvZHMKKyAgICAgICAgICAgICAgICAgICAgdCA9IDA7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0IDwgKGludCkobiAqIDAuOSkpIHsgLy8gOTAlIGlzIGNsb3NlIGVub3VnaAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxvb3BzID09IDAgfHwgdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9vcHMgPSBmYWlsc2FmZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsc2FmZSAqPSAxMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIiMgIiArIG1ldGguZ2V0TmFtZSgpICsgIiB4ICIgKyBsb29wcyArICIgPSAiICsgdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9vcHMgPSAoaW50KSgoZG91YmxlKW4gLyB0ICogbG9vcHMgKyAwLjUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb29wcyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJVbmFibGUgdG8gY29udmVyZ2Ugb24gZGVzaXJlZCBkdXJhdGlvbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCIjICIgKyBtZXRoLmdldE5hbWUoKSArICIgeCAiICsgbG9vcHMpOworICAgICAgICAgICAgICAgICAgICAgICAgdCA9IHRlc3RGdW5jdGlvbi50aW1lKGxvb3BzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgLy99CisgICAgICAgICAgICBmb3IgKGo9MDsgajxwYXNzZXM7ICsraikgeworICAgICAgICAgICAgICAgIGxvbmcgZXZlbnRzID0gLTE7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZXJhdGlvbnMgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj0gIiArIG1ldGguZ2V0TmFtZSgpICsgIiBiZWdpbiAiICsgaXRlcmF0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj0gIiArIG1ldGguZ2V0TmFtZSgpICsgIiBiZWdpbiAiICsgdGltZSArICIgc2Vjb25kcyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI9ICIgKyBtZXRoLmdldE5hbWUoKSArICIgYmVnaW4gIiApOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHQgPSB0ZXN0RnVuY3Rpb24udGltZShsb29wcyk7ICAgLy9tcworICAgICAgICAgICAgICAgIGV2ZW50cyA9IHRlc3RGdW5jdGlvbi5nZXRFdmVudHNQZXJJdGVyYXRpb24oKTsKKworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChldmVudHMgPT0gLTEpeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI9ICIgKyBtZXRoLmdldE5hbWUoKSArICIgZW5kICIgKyAodC8xMDAwLjApICsgIiBsb29wczogIiArIGxvb3BzICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgb3BlcmF0aW9uczogIiArIHRlc3RGdW5jdGlvbi5nZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI9ICIgKyBtZXRoLmdldE5hbWUoKSArICIgZW5kICIgKyAodC8xMDAwLjApICsgIiBsb29wczogIiArIGxvb3BzICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgb3BlcmF0aW9uczogIiArIHRlc3RGdW5jdGlvbi5nZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgKyIgZXZlbnRzOiAiICsgZXZlbnRzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChldmVudHMgPT0gLTEpeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI9ICIgKyBtZXRoLmdldE5hbWUoKSArICIgZW5kICIgKyAodC8xMDAwLjApICsgIiAiICsgbG9vcHMgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiICsgdGVzdEZ1bmN0aW9uLmdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj0gIiArIG1ldGguZ2V0TmFtZSgpICsgIiBlbmQgIiArICh0LzEwMDAuMCkgKyAiICIgKyBsb29wcyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIgKyB0ZXN0RnVuY3Rpb24uZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpICsgIiAiICsgZXZlbnRzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSW52b2tlIHRoZSBydW50aW1lJ3MgZ2FyYmFnZSBjb2xsZWN0aW9uIHByb2NlZHVyZSByZXBlYXRlZGx5CisgICAgICogdW50aWwgdGhlIGFtb3VudCBvZiBmcmVlIG1lbW9yeSBzdGFiaWxpemVzIHRvIHdpdGhpbiAxMCUuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgZ2MoKSB7CisgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgbG9uZyBsYXN0OworICAgICAgICAgICAgbG9uZyBmcmVlID0gMTsKKyAgICAgICAgICAgIFJ1bnRpbWUgcnVudGltZSA9IFJ1bnRpbWUuZ2V0UnVudGltZSgpOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIHJ1bnRpbWUuZ2MoKTsKKyAgICAgICAgICAgICAgICBsYXN0ID0gZnJlZTsKKyAgICAgICAgICAgICAgICBmcmVlID0gcnVudGltZS5mcmVlTWVtb3J5KCk7CisgICAgICAgICAgICB9IHdoaWxlICgoKGRvdWJsZSlNYXRoLmFicyhmcmVlIC0gbGFzdCkpIC8gZnJlZSA+IDAuMSk7CisgICAgICAgICAgICAvLyBXYWl0IGZvciB0aGUgY2hhbmdlIGluIGZyZWUgbWVtb3J5IHRvIGRyb3AgdW5kZXIgMTAlCisgICAgICAgICAgICAvLyBiZXR3ZWVuIHN1Y2Nlc3NpdmUgY2FsbHMuCisgICAgICAgIH0KKworICAgICAgICAvLyBGcm9tICJKYXZhIFBsYXRmb3JtIFBlcmZvcm1hbmNlIi4gIFRoaXMgaXMgdGhlIHByb2NlZHVyZQorICAgICAgICAvLyByZWNvbW1lbmRlZCBieSBKYXZhc29mdC4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN5c3RlbS5nYygpOworICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDEwMCk7CisgICAgICAgICAgICBTeXN0ZW0ucnVuRmluYWxpemF0aW9uKCk7CisgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTAwKTsKKworICAgICAgICAgICAgU3lzdGVtLmdjKCk7CisgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMTAwKTsKKyAgICAgICAgICAgIFN5c3RlbS5ydW5GaW5hbGl6YXRpb24oKTsKKyAgICAgICAgICAgIFRocmVhZC5zbGVlcCgxMDApOworICAgICAgICB9IGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7fQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIG1hcCBvZiBTdHJpbmcgdG8gTWV0aG9kIG9iamVjdHMuICBFYWNoIHN0cmluZyBpcyBhCisgICAgICogbXVuZ2VkIGFsbC1sb3dlcmNhc2UgbmFtZS4gIEZvciB0aGlzIHJlYXNvbiwgdGVzdCBtZXRob2RzCisgICAgICogKGJlZ2lubmluZyB3aXRoICJ0ZXN0IiwgaWdub3JpbmcgY2FzZSkgbXVzdCBub3QgY29sbGlkZSB3aGVuCisgICAgICogY2FzZSBmb2xkZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgZ2V0QXZhaWxhYmxlVGVzdHMoKSB7CisgICAgICAgIGlmIChhdmFpbGFibGVUZXN0cyA9PSBudWxsKSB7CisgICAgICAgICAgICBhdmFpbGFibGVUZXN0cyA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICBNZXRob2RbXSBtZXRob2RzID0gZ2V0Q2xhc3MoKS5nZXREZWNsYXJlZE1ldGhvZHMoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxtZXRob2RzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBtZXRob2RzW2ldLmdldE5hbWUoKS50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgICAgIC8vIE5vdGU6IG1ldGhvZHMgbmFtZWQgInRlc3QoKSIgYXJlIGlnbm9yZWQKKyAgICAgICAgICAgICAgICBpZiAobmFtZS5sZW5ndGgoKSA+IDQgJiYgbmFtZS5zdGFydHNXaXRoKCJ0ZXN0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF2YWlsYWJsZVRlc3RzLmdldChuYW1lKSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiRHVwbGljYXRlIG1ldGhvZCBuYW1lIGlnbm9yaW5nIGNhc2U6ICIgKyBuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGVUZXN0cy5wdXQobmFtZSwgbWV0aG9kc1tpXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBhdmFpbGFibGVUZXN0czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIG5hbWUsIHJldHVybiB0aGUgYXNzb2NpYXRlZCBNZXRob2Qgb2JqZWN0LCBvciBudWxsIGlmCisgICAgICogbm90IGZvdW5kLiAgVGhlIGdpdmVuIG5hbWUgd2lsbCBtYXAgdG8gYSBtZXRob2Qgb2YgdGhlIHNhbWUKKyAgICAgKiBuYW1lLCBvciBhIG1ldGhvZCBuYW1lZCAidGVzdCIgKyBuYW1lLiAgQ2FzZSBpcyBpZ25vcmVkLgorICAgICAqLworICAgIHByaXZhdGUgTWV0aG9kIGdldFRlc3RNZXRob2QoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgTWFwIGF2YWlsID0gZ2V0QXZhaWxhYmxlVGVzdHMoKTsKKyAgICAgICAgU3RyaW5nIGtleSA9IG5hbWUudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgTWV0aG9kIG0gPSAoTWV0aG9kKSBhdmFpbC5nZXQoa2V5KTsKKyAgICAgICAgaWYgKG0gIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChNZXRob2QpIGF2YWlsLmdldCgidGVzdCIgKyBrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFByaXZhdGUgdXRpbGl0eSB0byBjb252ZXJ0IGEgTGlzdCBvZiBJbnRlZ2VyIG9iamVjdHMgdG8gaW50W10uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gdG9JbnRBcnJheShMaXN0IGxpc3QpIHsKKyAgICAgICAgaW50W10gcmVzdWx0ID0gbmV3IGludFtsaXN0LnNpemUoKV07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxsaXN0LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICByZXN1bHRbaV0gPSAoKEludGVnZXIpIGxpc3QuZ2V0KGkpKS5pbnRWYWx1ZSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgY2hhcltdIHJlYWRUb0VPUyhJbnB1dFN0cmVhbVJlYWRlciBzdHJlYW0pIHsKKyAgICAgICAgQXJyYXlMaXN0IHZlYyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgaW50IHBvcyA9IDA7CisgICAgICAgIGZpbmFsIGludCBNQVhMRU5HVEggPSAweDgwMDA7IC8vIG1heCBidWZmZXIgc2l6ZSAtIDMySworICAgICAgICBpbnQgbGVuZ3RoID0gMHg4MDsgLy8gc3RhcnQgd2l0aCBzbWFsbCBidWZmZXJzIGFuZCB3b3JrIHVwCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIHBvcyA9IDA7CisgICAgICAgICAgICBsZW5ndGggPSBsZW5ndGggPj0gTUFYTEVOR1RIID8gTUFYTEVOR1RIIDogbGVuZ3RoICogMjsKKyAgICAgICAgICAgIGNoYXJbXSBidWZmZXIgPSBuZXcgY2hhcltsZW5ndGhdOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGludCBuID0gc3RyZWFtLnJlYWQoYnVmZmVyLCBwb3MsIGxlbmd0aCAtIHBvcyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChuID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHBvcyArPSBuOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKHBvcyA8IGxlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmVjLmFkZChidWZmZXIpOworICAgICAgICAgICAgY291bnQgKz0gcG9zOworICAgICAgICB9IHdoaWxlIChwb3MgPT0gbGVuZ3RoKTsKKworICAgICAgICBjaGFyW10gZGF0YSA9IG5ldyBjaGFyW2NvdW50XTsKKyAgICAgICAgcG9zID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZWMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXJbXSBidWYgPSAoY2hhcltdKXZlYy5nZXQoaSk7CisgICAgICAgICAgICBpbnQgbGVuID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgY291bnQgLSBwb3MpOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWYsIDAsIGRhdGEsIHBvcywgbGVuKTsKKyAgICAgICAgICAgIHBvcyArPSBsZW47CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgYnl0ZVtdIHJlYWRUb0VPUyhJbnB1dFN0cmVhbSBzdHJlYW0pIHsKKworICAgICAgICBBcnJheUxpc3QgdmVjID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgZmluYWwgaW50IE1BWExFTkdUSCA9IDB4ODAwMDsgLy8gbWF4IGJ1ZmZlciBzaXplIC0gMzJLCisgICAgICAgIGludCBsZW5ndGggPSAweDgwOyAvLyBzdGFydCB3aXRoIHNtYWxsIGJ1ZmZlcnMgYW5kIHdvcmsgdXAKKyAgICAgICAgZG8geworICAgICAgICAgICAgcG9zID0gMDsKKyAgICAgICAgICAgIGxlbmd0aCA9IGxlbmd0aCA+PSBNQVhMRU5HVEggPyBNQVhMRU5HVEggOiBsZW5ndGggKiAyOworICAgICAgICAgICAgYnl0ZVtdIGJ1ZmZlciA9IG5ldyBieXRlW2xlbmd0aF07CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IG4gPSBzdHJlYW0ucmVhZChidWZmZXIsIHBvcywgbGVuZ3RoIC0gcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG4gPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcG9zICs9IG47CisgICAgICAgICAgICAgICAgfSB3aGlsZSAocG9zIDwgbGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2ZWMuYWRkKGJ1ZmZlcik7CisgICAgICAgICAgICBjb3VudCArPSBwb3M7CisgICAgICAgIH0gd2hpbGUgKHBvcyA9PSBsZW5ndGgpOworCisKKyAgICAgICAgYnl0ZVtdIGRhdGEgPSBuZXcgYnl0ZVtjb3VudF07CisgICAgICAgIHBvcyA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmVjLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBieXRlW10gYnVmID0gKGJ5dGVbXSl2ZWMuZ2V0KGkpOworICAgICAgICAgICAgaW50IGxlbiA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGNvdW50IC0gcG9zKTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmLCAwLCBkYXRhLCBwb3MsIGxlbik7CisgICAgICAgICAgICBwb3MgKz0gbGVuOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkYXRhOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmdbXSByZWFkTGluZXMoU3RyaW5nIGZpbGVOYW1lLCBTdHJpbmcgZW5jb2RpbmcsIGJvb2xlYW4gYnVsa01vZGUpIHsKKyAgICAgICAgRmlsZUlucHV0U3RyZWFtIGZpcyA9IG51bGw7CisgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG51bGw7CisgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpcyA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZU5hbWUpOworICAgICAgICAgICAgaXNyID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpcywgZW5jb2RpbmcpOworICAgICAgICAgICAgYnI9IG5ldyBCdWZmZXJlZFJlYWRlcihpc3IpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogRmlsZSBhY2Nlc3MgZXhjZXB0aW9uOiAiICsgZS5nZXRNZXNzYWdlKCkgKyAiISIpOworICAgICAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgICAgIH0KKyAgICAgICAgQXJyYXlMaXN0IGxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBTdHJpbmcgbGluZSA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGxpbmUgPSByZWFkRGF0YUxpbmUoYnIpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlJlYWQgRmlsZSBFcnJvciIgKyBlLmdldE1lc3NhZ2UoKSArICIhIik7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgIGlmIChsaW5lLmxlbmd0aCgpID09IDApIGNvbnRpbnVlOworICAgICAgICAgICAgbGlzdC5hZGQobGluZSk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgc2l6ZSA9IGxpc3Quc2l6ZSgpOworICAgICAgICBTdHJpbmdbXSBsaW5lcyA9IG51bGw7CisKKyAgICAgICAgaWYgKGJ1bGtNb2RlKSB7CisgICAgICAgICAgICBsaW5lcyA9IG5ldyBTdHJpbmdbMV07CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKFN0cmluZykgbGlzdC5nZXQoaSkpOworICAgICAgICAgICAgICAgIC8qaWYgKGkgPCAoc2l6ZSAtIDEpKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoIlxyXG4iKTsKKyAgICAgICAgICAgICAgICB9Ki8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxpbmVzWzBdID0gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsaW5lcyA9IG5ldyBTdHJpbmcgW3NpemVdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICBsaW5lc1tpXSA9IChTdHJpbmcpIGxpc3QuZ2V0KGkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGxpbmVzOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgcmVhZERhdGFMaW5lKEJ1ZmZlcmVkUmVhZGVyIGJyKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgU3RyaW5nIG9yaWdpbmFsTGluZSA9ICIiOworICAgICAgICBTdHJpbmcgbGluZSA9ICIiOworICAgICAgICB0cnkgeworICAgICAgICAgICAgbGluZSA9IG9yaWdpbmFsTGluZSA9IGJyLnJlYWRMaW5lKCk7CisgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIGlmIChsaW5lLmxlbmd0aCgpID4gMCAmJiBsaW5lLmNoYXJBdCgwKSA9PSAweEZFRkYpIGxpbmUgPSBsaW5lLnN1YnN0cmluZygxKTsKKyAgICAgICAgICAgIGludCBjb21tZW50UG9zID0gbGluZS5pbmRleE9mKCcjJyk7CisgICAgICAgICAgICBpZiAoY29tbWVudFBvcyA+PSAwKSBsaW5lID0gbGluZS5zdWJzdHJpbmcoMCwgY29tbWVudFBvcyk7CisgICAgICAgICAgICBsaW5lID0gbGluZS50cmltKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJMaW5lIFwiezB9XCIsICBcInsxfVwiIiArIG9yaWdpbmFsTGluZSArICIgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxpbmUgKyAiICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsaW5lOworICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL1JCQklQZXJmLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9SQkJJUGVyZi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmMDMyODcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9SQkJJUGVyZi5qYXZhCkBAIC0wLDAgKzEsMTU3IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEuaW8uRmlsZUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5CcmVha0l0ZXJhdG9yOworCisvKioKKyAqIEEgY2xhc3MgZm9yIHRlc3RpbmcgVW5pY29kZVNldCBwZXJmb3JtYW5jZS4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc2luY2UgSUNVIDIuNAorICovCitwdWJsaWMgY2xhc3MgUkJCSVBlcmYgZXh0ZW5kcyBQZXJmVGVzdCB7CisKKyAgICBTdHJpbmcgICAgICAgICAgICAgICAgICBkYXRhRmlsZU5hbWU7CisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAgYmk7CisgICAgQnJlYWtJdGVyYXRvciAgICAgICAgICAgamRrYmk7CisgICAgU3RyaW5nICAgICAgICAgICAgICAgICAgdGVzdFN0cmluZzsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgUkJCSVBlcmYoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0dXAoU3RyaW5nW10gYXJncykgeworICAgICAgICAvLyBXZSBvbmx5IHRha2Ugb25lIGFyZ3VtZW50LCB0aGUgcGF0dGVybgorICAgICAgICBpZiAoYXJncy5sZW5ndGggIT0gMikgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlJCQklUZXN0IHBhcmFtczogIGRhdGFfZmlsZV9uYW1lIGJyZWFrX2l0ZXJhdG9yX3R5cGUgIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgZGF0YUZpbGVOYW1lID0gYXJnc1swXTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciAgdGVzdEZpbGVCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZGF0YUZpbGVOYW1lKTsKKyAgICAgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcywgIlVURi04Iik7ICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBjOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIGMgPSBpc3IucmVhZCgpOworICAgICAgICAgICAgICAgIGlmIChjIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHRlc3RGaWxlQnVmLCBjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlc3RTdHJpbmcgPSB0ZXN0RmlsZUJ1Zi50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLnRvU3RyaW5nKCkpOyAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoYXJncy5sZW5ndGggPj0gMikgeworICAgICAgICAgICAgaWYgKGFyZ3NbMV0uZXF1YWxzKCJjaGFyIikpIHsKKyAgICAgICAgICAgICAgICBiaSAgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciljb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKTsgIAorICAgICAgICAgICAgfSBlbHNlIGlmIChhcmdzWzFdLmVxdWFscygid29yZCIpKSB7CisgICAgICAgICAgICAgICAgYmkgID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmdzWzFdLmVxdWFscygibGluZSIpKSB7CisgICAgICAgICAgICAgICAgYmkgID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmdzWzFdLmVxdWFscygiamRrbGluZSIpKSB7CisgICAgICAgICAgICAgICAgamRrYmkgID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoYmkhPW51bGwgKSB7CisgICAgICAgICAgICBiaS5zZXRUZXh0KHRlc3RTdHJpbmcpOworICAgICAgICB9CisgICAgICAgIGlmIChqZGtiaSAhPSBudWxsKSB7CisgICAgICAgICAgICBqZGtiaS5zZXRUZXh0KHRlc3RTdHJpbmcpOyAgIAorICAgICAgICB9CisgICAgICAgIAorICAgIH0KKworICAgIAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RSQkJJTmV4dCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBpbnQgbjsKKyAgICAgICAgICAgICAgICBpZiAoYmkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBuID0gYmkuZmlyc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yICg7IG4gIT0gQnJlYWtJdGVyYXRvci5ET05FOyBuPWJpLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICB9ICAgCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbiA9IGpka2JpLmZpcnN0KCk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoOyBuICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgbj1qZGtiaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgfSAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgaW50IG47CisgICAgICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBpZiAoYmkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKG49YmkuZmlyc3QoKTsgbiAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IG49YmkubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZm9yIChuPWpka2JpLmZpcnN0KCk7IG4gIT0gQnJlYWtJdGVyYXRvci5ET05FOyBuPWpka2JpLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gY291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RSQkJJUHJldmlvdXMoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgYmkuZmlyc3QoKTsKKyAgICAgICAgICAgICAgICBpbnQgbj0wOworICAgICAgICAgICAgICAgIGZvciAobj1iaS5sYXN0KCk7IG4gIT0gQnJlYWtJdGVyYXRvci5ET05FOyBuPWJpLnByZXZpb3VzKCkpIHsKKyAgICAgICAgICAgICAgICB9ICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpbnQgbjsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgICAgIGZvciAobj1iaS5sYXN0KCk7IG4gIT0gQnJlYWtJdGVyYXRvci5ET05FOyBuPWJpLnByZXZpb3VzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICB9ICAgCisgICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50OworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdFJCQklJc0JvdW5kYXJ5KCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGludCBuPXRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8bjsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGJpLmlzQm91bmRhcnkoaSk7CisgICAgICAgICAgICAgICAgfSAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIGludCBuID0gdGVzdFN0cmluZy5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKworIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvVUNoYXJhY3RlclBlcmYuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL1VDaGFyYWN0ZXJQZXJmLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVhYjU2YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL1VDaGFyYWN0ZXJQZXJmLmphdmEKQEAgLTAsMCArMSw1MzMgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmY7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CisKKy8qKgorICogQmFzZSBwZXJmb3JtYW5jZSB0ZXN0IHRoYXQgdGFrZXMgaW4gYSBtZXRob2QgbmFtZSBmb3IgdGVzdGluZyB3aXRoIEpESy4KKyAqIFRvIHVzZSAKKyAqIDxjb2RlPgorICogamF2YSBjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmLlVDaGFyYWN0ZXJQZXJmICRNZXRob2ROYW1lICRMb29wQ291bnQgLSAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRTVEFSVF9URVNUX0NIQVJBQ1RFUiAkRU5EX1RFU1RfQ0hBUkFDVEVSCisgKiA8L2NvZGU+CisgKiB3aGVyZSAkKl9URVNUX0NIQVJBQ1RFUiBhcmUgaW4gaGV4IGRlY2ltYWxzIHdpdGggYSBsZWFkaW5nIDB4CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2hhcmFjdGVyUGVyZiBleHRlbmRzIFBlcmZUZXN0IAoreworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24KKyAgICB7ICAgCisgICAgICAgIG5ldyBVQ2hhcmFjdGVyUGVyZigpLnJ1bihhcmdzKTsKKyAgICAgICAgLy8gbmV3IFVDaGFyYWN0ZXJQZXJmKCkuVGVzdFBlcmZvcm1hbmNlKCk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHNldHVwKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgLy8gV2Ugb25seSB0YWtlIG9uZSBhcmd1bWVudCwgdGhlIHBhdHRlcm4KKyAgICAgICAgTUlOXyA9IENoYXJhY3Rlci5NSU5fVkFMVUU7CisgICAgICAgIE1BWF8gPSBDaGFyYWN0ZXIuTUFYX1ZBTFVFOworICAgICAgICBpZiAoYXJncy5sZW5ndGggPj0gMSkgeworICAgICAgICAgICAgTUlOXyA9IEludGVnZXIucGFyc2VJbnQoYXJnc1swXSwgMTYpOworICAgICAgICB9CisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+PSAyKSB7CisgICAgICAgICAgICBNQVhfID0gSW50ZWdlci5wYXJzZUludChhcmdzWzFdLCAxNik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdERpZ2l0KCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5kaWdpdChjaCwgMTApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SkRLRGlnaXQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IChjaGFyKU1JTl87IGNoIDwgKGNoYXIpTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmRpZ2l0KGNoLCAxMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RHZXROdW1lcmljVmFsdWUoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0dldE51bWVyaWNWYWx1ZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RHZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRUeXBlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9ICAgCisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SkRLR2V0VHlwZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuZ2V0VHlwZShjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdElzRGVmaW5lZCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNEZWZpbmVkKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9ICAgIAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtJc0RlZmluZWQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IChjaGFyKU1JTl87IGNoIDwgKGNoYXIpTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzRGVmaW5lZChjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfSAgICAKKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RJc0RpZ2l0KCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc0RpZ2l0KGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9ICAgIAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtJc0RpZ2l0KCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5pc0RpZ2l0KGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdElzSWRlbnRpZmllcklnbm9yYWJsZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNJZGVudGlmaWVySWdub3JhYmxlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9ICAgIAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtJc0lkZW50aWZpZXJJZ25vcmFibGUoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IChjaGFyKU1JTl87IGNoIDwgKGNoYXIpTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzSWRlbnRpZmllcklnbm9yYWJsZShjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RJc0lTT0NvbnRyb2woKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmlzSVNPQ29udHJvbChjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtJc0lTT0NvbnRyb2woKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IChjaGFyKU1JTl87IGNoIDwgKGNoYXIpTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzSVNPQ29udHJvbChjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RJc0xldHRlcigpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNMZXR0ZXIoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SkRLSXNMZXR0ZXIoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IChjaGFyKU1JTl87IGNoIDwgKGNoYXIpTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzTGV0dGVyKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdElzTGV0dGVyT3JEaWdpdCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNMZXR0ZXJPckRpZ2l0KGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzTGV0dGVyT3JEaWdpdCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNMZXR0ZXJPckRpZ2l0KGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNMb3dlckNhc2UoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmlzTG93ZXJDYXNlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9ICAgIAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtJc0xvd2VyQ2FzZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNMb3dlckNhc2UoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gICAgCisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdElzU3BhY2VDaGFyKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc1NwYWNlQ2hhcihjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfSAKKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SkRLSXNTcGFjZUNoYXIoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IChjaGFyKU1JTl87IGNoIDwgKGNoYXIpTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzU3BhY2VDaGFyKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9ICAKKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNUaXRsZUNhc2UoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmlzVGl0bGVDYXNlKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEpES0lzVGl0bGVDYXNlKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5pc1RpdGxlQ2FzZShjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfSAgICAKKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNVbmljb2RlSWRlbnRpZmllclBhcnQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNoID0gTUlOXzsgY2ggPCBNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9IAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtJc1VuaWNvZGVJZGVudGlmaWVyUGFydCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gCisgICAgCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdElzVW5pY29kZUlkZW50aWZpZXJTdGFydCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBNSU5fOyBjaCA8IE1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclN0YXJ0KGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWF8gLSBNSU5fICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9IAorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtJc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IChjaGFyKU1JTl87IGNoIDwgKGNoYXIpTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydChjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfSAKKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNVcHBlckNhc2UoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IChjaGFyKU1JTl87IGNoIDwgKGNoYXIpTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc1VwcGVyQ2FzZShjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBNQVhfIC0gTUlOXyArIDE7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RKREtJc1VwcGVyQ2FzZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGNoID0gKGNoYXIpTUlOXzsgY2ggPCAoY2hhcilNQVhfOyBjaCArKykgeworICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuaXNVcHBlckNhc2UoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0gICAgCisgICAgICAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SXNXaGl0ZVNwYWNlKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IE1JTl87IGNoIDwgTUFYXzsgY2ggKyspIHsKKyAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SkRLSXNXaGl0ZVNwYWNlKCkgCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSAoY2hhcilNSU5fOyBjaCA8IChjaGFyKU1BWF87IGNoICsrKSB7CisgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5pc1doaXRlc3BhY2UoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTUFYXyAtIE1JTl8gKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogTWluaW11bSBjb2RlcG9pbnQgdG8gZG8gdGVzdC4gVGVzdCBpcyByYW4gZnJvbSBNSU5fIHRvIE1BWF8KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgTUlOXzsKKyAgICAvKioKKyAgICAgKiBNaW5pbXVtIGNvZGVwb2ludCB0byBkbyB0ZXN0LiBUZXN0IGlzIHJhbiBmcm9tIE1JTl8gdG8gTUFYXworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBNQVhfOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvVW5pY29kZVNldFBlcmYuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL1VuaWNvZGVTZXRQZXJmLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI5ZmE1MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL1VuaWNvZGVTZXRQZXJmLmphdmEKQEAgLTAsMCArMSwxNjEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworCisvKioKKyAqIEEgY2xhc3MgZm9yIHRlc3RpbmcgVW5pY29kZVNldCBwZXJmb3JtYW5jZS4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc2luY2UgSUNVIDIuNAorICovCitwdWJsaWMgY2xhc3MgVW5pY29kZVNldFBlcmYgZXh0ZW5kcyBQZXJmVGVzdCB7CisKKyAgICBTdHJpbmcgcGF0dGVybjsKKyAgICBVbmljb2RlU2V0IHRlc3RDaGFyczsKKyAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXQ7CisgICAgVW5pY29kZVNldCB1czsKKyAgICBIYXNoU2V0IGhzOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBVbmljb2RlU2V0UGVyZigpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXR1cChTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIC8vIFdlIG9ubHkgdGFrZSBvbmUgYXJndW1lbnQsIHRoZSBwYXR0ZXJuCisgICAgICAgIGlmIChhcmdzLmxlbmd0aCAhPSAxKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiUGxlYXNlIHN1cHBseSBVbmljb2RlU2V0IHBhdHRlcm4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHBhdHRlcm4gPSBhcmdzWzBdOworICAgICAgICB0ZXN0Q2hhcnMgPSBuZXcgVW5pY29kZVNldChwYXR0ZXJuKTsKKyAgICAgICAgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHRlc3RDaGFycyk7CisgICAgICAgIHVzID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgaHMgPSBuZXcgSGFzaFNldCgpOworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RVbmljb2RlU2V0QWRkKCkgeworICAgICAgICByZXR1cm4gbmV3IFBlcmZUZXN0LkZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgY2FsbCgpIHsKKyAgICAgICAgICAgICAgICB1cy5jbGVhcigpOworICAgICAgICAgICAgICAgIGl0LnJlc2V0KCk7CisgICAgICAgICAgICAgICAgaW50IG49MDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQubmV4dFJhbmdlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgY3AgPSBpdC5jb2RlcG9pbnQ7IGNwIDw9IGl0LmNvZGVwb2ludEVuZDsgKytjcCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdXMuYWRkKGNwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrbjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGVzdENoYXJzLnNpemUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0SGFzaFNldEFkZCgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgaHMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBpdC5yZXNldCgpOworICAgICAgICAgICAgICAgIGludCBuPTA7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Lm5leHRSYW5nZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGNwID0gaXQuY29kZXBvaW50OyBjcCA8PSBpdC5jb2RlcG9pbnRFbmQ7ICsrY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhzLmFkZChuZXcgSW50ZWdlcihjcCkpOworICAgICAgICAgICAgICAgICAgICAgICAgKytuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0Q2hhcnMuc2l6ZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIFBlcmZUZXN0LkZ1bmN0aW9uIHRlc3RVbmljb2RlU2V0Q29udGFpbnMoKSB7CisgICAgICAgIHVzLmNsZWFyKCk7CisgICAgICAgIHVzLnNldCh0ZXN0Q2hhcnMpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgaW50IHRlbXAgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGNwID0gMDsgY3AgPD0gMHgxMEZGRkY7ICsrY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHVzLmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcCArPSBjcDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGxvbmcgZ2V0T3BlcmF0aW9uc1Blckl0ZXJhdGlvbigpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMHgxMTAwMDA7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEhhc2hTZXRDb250YWlucygpIHsKKyAgICAgICAgaHMuY2xlYXIoKTsKKyAgICAgICAgaXQucmVzZXQoKTsKKyAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgaHMuYWRkKG5ldyBJbnRlZ2VyKGl0LmNvZGVwb2ludCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGludCB0ZW1wID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjcCA9IDA7IGNwIDw9IDB4MTBGRkZGOyArK2NwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChocy5jb250YWlucyhuZXcgSW50ZWdlcihjcCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wICs9IGNwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgbG9uZyBnZXRPcGVyYXRpb25zUGVySXRlcmF0aW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiAweDExMDAwMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBQZXJmVGVzdC5GdW5jdGlvbiB0ZXN0VW5pY29kZVNldEl0ZXJhdGUoKSB7CisgICAgICAgIHJldHVybiBuZXcgUGVyZlRlc3QuRnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjYWxsKCkgeworICAgICAgICAgICAgICAgIGludCB0ZW1wID0gMDsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgdWl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcih0ZXN0Q2hhcnMpOworICAgICAgICAgICAgICAgIHdoaWxlICh1aXQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXAgKz0gdWl0LmNvZGVwb2ludDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRlc3RDaGFycy5zaXplKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorCisgICAgUGVyZlRlc3QuRnVuY3Rpb24gdGVzdEhhc2hTZXRJdGVyYXRlKCkgeworICAgICAgICBocy5jbGVhcigpOworICAgICAgICBpdC5yZXNldCgpOworICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICBocy5hZGQobmV3IEludGVnZXIoaXQuY29kZXBvaW50KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBQZXJmVGVzdC5GdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGNhbGwoKSB7CisgICAgICAgICAgICAgICAgaW50IHRlbXAgPSAwOworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gaHMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXAgKz0gKChJbnRlZ2VyKWl0Lm5leHQoKSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBsb25nIGdldE9wZXJhdGlvbnNQZXJJdGVyYXRpb24oKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRlc3RDaGFycy5zaXplKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvY29sbGF0aW9ucGVyZi5wbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2NvbGxhdGlvbnBlcmYucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGYwNTQ4YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2NvbGxhdGlvbnBlcmYucGwKQEAgLTAsMCArMSwxMjYgQEAKKyMvKioKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqLworIworIyAgSUNVIGFuZCBXaW5kb3dzIENvbGxhdGlvbiBwZXJmb3JtYW5jZSB0ZXN0IHNjcmlwdAorIyAgICAgIFVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgY29sbHBlcmYgdGVzdCBwcm9ncmFtLgorIyAgICAgIFRoaXMgc2NyaXB0IGRlZmluZXMgdGhlIGxvY2FsZXMgYW5kIGRhdGEgZmlsZXMgdG8gYmUgdGVzdGVkLAorIyAgICAgICAgcnVucyB0aGUgY29sbHBlcmYgcHJvZ3JhbSwgYW5kIGZvcm1hdHMgYW5kIHByaW50cyB0aGUgcmVzdWx0cy4KKyMKKyMgICAgICAgIDcgSnVuZSAyMDAxICAgQW5keSBIZW5pbmdlcgorIworIyAgSUNVNEogYW5kIEphdmEgQ29sbGF0b3IgcGVyZm9ybWFuY2UgdGVzdCBzY3JpcHQKKyMgIDIwMDItMDktMjUgbW9kaWZpZWQgYnkgUmljaGFyZCBMaWFuZworCitwcmludCAiVG8gcnVuIHRoaXMgcGVyZm9ybWFuY2UgdGVzdFxuIjsKK3ByaW50ICJjZCB0byB0aGUgSUNVNEogcm9vdCBkaXJlY3RvcnksIG9uZSBkaXJlY3RvcnkgYmVsb3cgc3JjXG4iOworcHJpbnQgInJ1biBwZXJsIHNyY1xcY29tXFxpYm1cXGljdVxcZGV2XFx0ZXN0XFxwZXJmXFxjb2xsYXRpb25wZXJmLnBsXG4iOworCisjCisjIE1hcCBkZWZpbmVzIHRoZSBzZXQgb2YgZGF0YSBmaWxlcyB0byBydW4gaW4gZWFjaCBsb2NhbGUKKyMKKyVkYXRhRmlsZXMgPSAoCisgICAiZW5fVVMiLCAgICAgICAgICJUZXN0TmFtZXNfTGF0aW4udHh0IiwKKyAgICJkYV9ESyIsICAgICAgICAgIlRlc3ROYW1lc19MYXRpbi50eHQiLAorICAgImRlX0RFIiwgICAgICAgICAiVGVzdE5hbWVzX0xhdGluLnR4dCIsCisgICAiZGVfX1BIT05FQk9PSyIsICJUZXN0TmFtZXNfTGF0aW4udHh0IiwKKyAgICJmcl9GUiIsICAgICAgICAgIlRlc3ROYW1lc19MYXRpbi50eHQiLAorICAgImphX0pQIiwgICAgICAgICAiVGVzdE5hbWVzX0xhdGluLnR4dCBUZXN0TmFtZXNfSmFwYW5lc2VfaC50eHQgVGVzdE5hbWVzX0phcGFuZXNlX2sudHh0IFRlc3ROYW1lc19Bc2lhbi50eHQiLAorICAgInpoX0NOIiwgICAgICAgICAiVGVzdE5hbWVzX0xhdGluLnR4dCBUZXN0TmFtZXNfQ2hpbmVzZS50eHQiLAorICAgInpoX1RXIiwgICAgICAgICAiVGVzdE5hbWVzX0xhdGluLnR4dCBUZXN0TmFtZXNfQ2hpbmVzZS50eHQiLAorICAgInpoX19QSU5ZSU4iLCAgICAiVGVzdE5hbWVzX0xhdGluLnR4dCBUZXN0TmFtZXNfQ2hpbmVzZS50eHQiLAorICAgInJ1X1JVIiwgCSAgICAiVGVzdE5hbWVzX0xhdGluLnR4dCBUZXN0TmFtZXNfUnVzc2lhbi50eHQiLAorICAgInRoIiwgICAgICAgICAgICAiVGVzdE5hbWVzX0xhdGluLnR4dCBUZXN0TmFtZXNfVGhhaS50eHQiLAorICAgImtvX0tSIiwgICAgICAgICAiVGVzdE5hbWVzX0xhdGluLnR4dCBUZXN0TmFtZXNfS29yZWFuLnR4dCIsCisgICApOworCisKKyMKKyMgIE91dGVyIGxvb3AgcnVucyB0aHJvdWdoIHRoZSBsb2NhbGVzIHRvIHRlc3QKKyMgICAgIChFZGl0IHRoaXMgbGlzdCBkaXJjdGx5IHRvIG1ha2UgY2hhbmdlcykKKyMKKyAgIGZvcmVhY2ggJGxvY2FsZSAoCisJICAgImVuX1VTIiwKKwkgICAiZGFfREsiLAorCSAgICJkZV9ERSIsCisJICAgImRlX19QSE9ORUJPT0siLAorCSAgICJmcl9GUiIsCisJICAgImphX0pQIiwKKyAgICAgICAiemhfQ04iLAorCSAgICJ6aF9UVyIsCisJICAgInpoX19QSU5ZSU4iLAorICAgICAgICJrb19LUiIsCisJICAgInJ1X1JVIiwKKwkgICAidGgiLAorICAgICAgICAgICAgICAgICAgICkKKyAgICAgICB7CisgICAgICAgIworICAgICAgICMgSW5uZXIgbG9vcCBydW5zIG92ZXIgdGhlIHNldCBvZiBkYXRhIGZpbGVzIHNwZWNpZmllZCBmb3IgZWFjaCBsb2NhbGUuCisgICAgICAgIyAgICAoRWRpdCB0aGUgJWRhdGFmaWxlcyBpbml0aWFsaXphdGlvbiwgYWJvdmUsIHRvIG1ha2UgY2hhbmdlcy4KKyAgICAgICAjCisgICAgICAgJGZmID0gJGRhdGFGaWxlc3skbG9jYWxlfTsKKyAgICAgICBAZmYgPSBzcGxpdCgvW1xzXSsvLCAkZmYpOworICAgICAgIGZvcmVhY2ggJGRhdGEgKEBmZikgeworCisgICAgICAgICAgIworICAgICAgICAgICMgUnVuIElDVSBUZXN0IGZvciB0aGlzIChsb2NhbGUsIGRhdGEgZmlsZSkgcGFpci4KKyAgICAgICAgICAjCisgICAgICAgICAgJGlTdHJDb2wgPSBgamF2YSAtY2xhc3NwYXRoIGNsYXNzZXMgY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZi5Db2xsYXRpb25QZXJmb3JtYW5jZVRlc3QgLXRlcnNlIC1maWxlIHNyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uLyRkYXRhIC1sb2NhbGUgJGxvY2FsZSAtbG9vcCAxMDAwIC1iaW5zZWFyY2hgOworICAgICAgICAgICRpU3RyQ29sID1+cy9bLFxzXSovL2c7ICAjIHdoYWNrIG9mZiB0aGUgbGVhZGluZyAiICAsIiBpbiB0aGUgcmV0dXJuZWQgcmVzdWx0LgorICAgICAgICAgIGRvS2V5VGltZXMoImphdmEgLWNsYXNzcGF0aCBjbGFzc2VzIGNvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmYuQ29sbGF0aW9uUGVyZm9ybWFuY2VUZXN0IC10ZXJzZSAtZmlsZSBzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi8kZGF0YSAtbG9jYWxlICRsb2NhbGUgLWxvb3AgMTAwMCAta2V5Z2VuIiwKKyAgICAgICAgICAgICAgICAgICAgICRpS2V5R2VuLCAkaUtleUxlbik7CisKKworICAgICAgICAgICMKKyAgICAgICAgICAjIFJ1biBXaW5kb3dzIHRlc3QgZm9yIHRoaXMgKGxvY2FsZSwgZGF0YSBmaWxlKSBwYWlyLiAgT25seSBkbyBpZgorICAgICAgICAgICMgICAgd2UgYXJlIG5vdCBvbiBXaW5kb3dzIDk4L01FIGFuZCB3ZSBoYXZhIGEgd2luZG93cyBsYW5nSUQKKyAgICAgICAgICAjICAgIGZvciB0aGUgbG9jYWxlLgorICAgICAgICAgICMKKyAgICAgICAgICAkd1N0ckNvbCA9ICR3S2V5R2VuID0gJHdLZXlMZW4gPSAwOworICAgICAgICAgICR3U3RyQ29sID0gYGphdmEgLWNsYXNzcGF0aCBjbGFzc2VzIGNvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmYuQ29sbGF0aW9uUGVyZm9ybWFuY2VUZXN0IC10ZXJzZSAtZmlsZSBzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi8kZGF0YSAtbG9jYWxlICRsb2NhbGUgLWxvb3AgMTAwMCAtYmluc2VhcmNoIC1qYXZhYDsKKyAgICAgICAgICAkd1N0ckNvbCA9fnMvWyxcc10qLy9nOyAgIyB3aGFjayBvZmYgdGhlIGxlYWRpbmcgIiAgLCIgaW4gdGhlIHJldHVybmVkIHJlc3VsdC4KKyAgICAgICAgICBkb0tleVRpbWVzKCJqYXZhIC1jbGFzc3BhdGggY2xhc3NlcyBjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmLkNvbGxhdGlvblBlcmZvcm1hbmNlVGVzdCAtdGVyc2UgLWZpbGUgc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vJGRhdGEgLWxvY2FsZSAkbG9jYWxlIC1sb29wIDEwMDAgLWtleWdlbiAtamF2YSIsCisgICAgICAgICAgICAgICAgICAgICAkd0tleUdlbiwgJHdLZXlMZW4pOworICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgJGNvbGxEaWZmID0gJGtleUdlbkRpZmYgPSAka2V5TGVuRGlmZiA9IDA7CisgICAgICAgICAgaWYgKCR3S2V5TGVuID4gMCkgeworICAgICAgICAgICAgICAkY29sbERpZmYgICA9ICgoJHdTdHJDb2wgLSAkaVN0ckNvbCkgLyAkaVN0ckNvbCkgKiAxMDA7CisgICAgICAgICAgICAgICRrZXlHZW5EaWZmID0gKCgkd0tleUdlbiAtICRpS2V5R2VuKSAvICRpS2V5R2VuKSAqIDEwMDsKKyAgICAgICAgICAgICAgJGtleUxlbkRpZmYgPSAoKCR3S2V5TGVuIC0gJGlLZXlMZW4pIC8gJGlLZXlMZW4pICogMTAwOworICAgICAgICAgIH0KKworICAgICAgICAgIworICAgICAgICAgIyAgV3JpdGUgdGhlIGxpbmUgb2YgcmVzdWx0cyBmb3IgdGhpcyAobG9jYWxlLCBkYXRhIGZpbGUpLgorICAgICAgICAgIworICAgICAgICAgd3JpdGU7CisgICAgfQorIH0KKworIworIyAgZG9LZXlHZW5UaW1lcygkQ29tbWFuZF90b19ydW4sICR0aW1lLCAka2V5X2xlbmd0aCkKKyMgICAgICAgRG8gYSBrZXktZ2VuZXJhdGlvbiB0ZXN0IGFuZCByZXR1cm4gdGhlIHRpbWUgYW5kIGtleSBsZW5ndGgvY2hhciB2YWx1ZXMuCisjCitzdWIgZG9LZXlUaW1lcygkJCQpIHsKKyAgICMgcHJpbnQgIiRfWzBdIjsKKyAgIGxvY2FsKCR4KSA9IGAkX1swXWA7ICAgICAgICAgICAgICAgICAgIyBleGVjdXRlIHRoZSBjb2xscGVyZiBjb21tYW5kLgorICAgKCRfWzFdLCAkX1syXSkgPSBzcGxpdCgvXCwvLCAkeCk7ICAgICAjIGNvbGxwZXJmIHJldHVybnMgInRpbWUsIGtleWxlbmd0aCIgc3RyaW5nLgorfQorCisKKyMKKyMgIE91dHB1dCBGb3JtYXRzIC4uLgorIworIworZm9ybWF0IFNURE9VVF9UT1AgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLSBJQ1UgLS0tLS0tLS0gICAtLS0tLS0gSkFWQSAtLS0tLS0tICAgICAgKEpBVkEgLSBJQ1UpL0lDVQorTG9jYWxlICAgICBEYXRhIGZpbGUgICAgICAgICAgICAgICAgICBzdHJjb2xsIGtleWdlbiAga2V5bGVuICBzdHJjb2xsIGtleWdlbiAga2V5bGVuICAgIGNvbGwgIGtleWdlbiAga2V5bGVuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy4KKworZm9ybWF0IFNURE9VVCA9CitAPDw8PDw8PDw8IEA8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDx8IEAjIyMjIyMgIEAjIyMjICAgQCMuIyMgIHxAIyMjIyMgQCMjIyMjICAgQCMuIyMgfCBAIyMjJSAgQCMjIyUgICBAIyMjJQorJGxvY2FsZSwgJGRhdGEsICRpU3RyQ29sLCAkaUtleUdlbiwgJGlLZXlMZW4sICR3U3RyQ29sLCAkd0tleUdlbiwgJHdLZXlMZW4sICRjb2xsRGlmZiwgJGtleUdlbkRpZmYsICRrZXlMZW5EaWZmCisuCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfQXNpYW4udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0FzaWFuLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2I4ZjgzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0FzaWFuLnR4dApAQCAtMCwwICsxLDEwMDA4IEBACivvu78jLyoqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqDQorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqLw0KKw0KK+OBguOBjeOCguOBqCzjgoTjgZnjgYoNCivjgYLjgYTjgYvjgo8s44Gu44KK44GKDQor44GC44GL44Gk44GLLOOBi+OBmuOBsuOBkw0KK+OBguOCj+OBmizjgYLjgY3jgokNCivjgYLjgZXjga4s44KI44GX44KEDQor44GC44KJ44GNLOOCiOOBl+OBi+OBmg0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgbLjgagNCivjgYvjgajjgYYs44G+44GV44Go44GXDQor44Gq44GL44KA44KJLOOBkeOBhOOBnuOBhg0KK+OBteOBmOOCj+OCiSzjgZ/jgYvjgZMNCivjgoTjgarjgY7jga/jgoks44G/44Gp44KKDQor44GL44KP44GgLOOBquOBiuOBkw0KK+OBhOOBl+OBrizjgY3jgojjgarjgYwNCivjgZTjgajjgYYs44GL44Gk44Gu44KKDQor44GE44GX44GY44G+LOOCiuOCh+OBhuOBuOOBhA0KK+OBguOBqOOBhizjgb7jgZXjga7jgooNCivjgb/jgZfjgb4s44Gf44GL44KG44GNDQor44G/44KI44GXLOOBruOBtuOBvuOBlQ0KK+OBn+OBoeOBrizjgZjjgoXjgpMNCivjgYrjgYrjga4s44GL44Ga44GKDQor44GN44Gf44GM44KPLOOCiOOBl+OBn+OBiw0KK+OBteOCi+OBleOCjyzjgZXjgajjgZcNCivjgYrjgYrjga/jgZcs44Gy44Go44GXDQor44KI44GX44GL44KPLOOBqOOBl+OChuOBjQ0KK+OBi+OCj+OBhCzjgajjgZfjgYoNCivjgYTjgZfjgags44GT44GG44GNDQor44GE44G+44GELOOBn+OBi+OChuOBjQ0KK+OChOOBvuOBquOBiyzjgZXjgaTjgb8NCivjgbvjgorjgYvjgo8s44GL44Gk44G/DQor44GZ44Ga44GNLOOBl+OCheOCk+OBmA0KK+OBguOCj+OBiCzjgYLjgaTjgZcNCivjgarjgYzjgZss44Gf44GL44Gy44KNDQor44GT44Gw44KE44GXLOOBmOOCheOCk+OBhOOBoQ0KK+OBvuOBiOOBoCzjgbLjgo3jgZcNCivjgYvjgajjgYYs44G+44GV44GL44GaDQor44GZ44G/44GfLOOBi+OBiuOCiw0KK+OBm+OBjeOBkOOBoSzjgZ/jgYvjgobjgY0NCivjgZ/jgarjgYss44Gm44KL44Gy44GVDQor44Gy44KJ44GuLOOBn+OBi+OBlw0KK+OBr+OBvuOBkOOBoSzjgZfjgpPjgZgNCivjgZXjgYvjgYzjgb8s44Gu44KK44GL44GaDQor44GT44Gw44KE44GXLOOChOOBmeOBlw0KK+OBn+OBjeOCguOBqCzjga7jgorjgZMNCivjgbvjgZcs44Gy44KN44G144G/DQor44GK44GK44Gf44GLLOOChuOBhuOBkw0KK+OBmeOBjuOCgOOCiSzjgZfjgZLjgYoNCivjgYLjgYrjgY0s44G+44GV44KLDQor44Gq44GL44Gv44KJLOOChuOBhuOBnuOBhg0KK+OBi+OBqOOBhizjgYrjgZXjgoANCivjgb7jgYjjgZXjgYss44Go44KC44G/44GkDQor44G144GY44Gf44GrLOOBi+OBmuOBsuOBkw0KK+OBu+OBo+OBnyzjgZfjgZLjgbLjgagNCivjgYLjgY3jgoTjgb4s44KG44Gf44GLDQor44G144GY44GfLOOBvuOBleOChuOBjQ0KK+OBqOOCiOOBquOBjCzjgoTjgZnjgbLjgo0NCivjga/jgaPjgajjgoos44G+44GV44GKDQor44Gu44KA44KJLOOBl+OBkuOBig0KK+OBi+OCj+OBl+OBvizjgZ/jgYvjgZMNCivjgoDjgo3jgoQs44Gm44Gk44GKDQor44GC44GX44GL44KPLOOChOOBmeOBl+OBkg0KK+OBr+OChOOBlyzjgZ/jgYvjgYoNCivjgb/jgoTjgYzjgo8s44G144G/44Gu44KKDQor44GK44GQ44KJLOOChOOBmeOBsuOCjQ0KK+OCiOOBl+OBoCzjgajjgZfjgbLjgZMNCivjgY/jganjgYYs44Gy44KN44GXDQor44GP44G+44GM44GELOOBn+OBi+OChuOBjQ0KK+OBq+OBl+OBiizjgbLjgafjgY0NCivjgYrjgYrjgYTjgoTjgb4s44Gu44G844KLDQor44Gf44GR44Gf44GrLOOBteOBqOOBlw0KK+OBhOOBl+OBoCzjgYvjgaTjgoQNCivjgYrjgYTjgYvjgo8s44Gu44G244GC44GNDQor44Gf44GL44Gv44GXLOOBm+OBhOOBmA0KK+OCgOOCieOBnyzjgajjgYrjgosNCivjgZnjgZrjgY0s44GZ44GZ44KADQor44Gv44KE44GXLOOBl+OCk+OBoeOCh+OBhg0KK+OBj+OCjeOBi+OCjyzjgb7jgZXjgYLjgY0NCivjgoTjgZjjgb4s44Go44GK44KLDQor44GL44Gk44KJ44GELOOCj+OBn+OCiw0KK+OBguOBi+OCiizjgorjgofjgYbjgZgNCivjgYLjgZrjgb4s44Gu44G244KG44GNDQor44GC44Gk44G/LOOBl+OCheOBhuOBmA0KK+OBvuOCi+OBiizjgojjgZfjgobjgY0NCivjgYTjgZHjgYos44G/44Gu44KLDQor44Go44KK44KE44G+LOOCiuOBpOOBig0KK+OBr+OBvuOBrizjgojjgYbjgYTjgaENCivjgoTjgb7jgoLjgags44GT44GG44Gf44KN44GGDQor44GT44GG44GhLOOChuOBhuOBmeOBkQ0KK+OBquOBi+OBmOOBvizjga7jgorjgbLjgZMNCivjgYLjgoks44Gy44KN44GXDQor44G744Gd44GL44KPLOOBvuOBleOBsuOCjQ0KK+OBhOOBmuOBvyzjgYvjga3jgb/jgaQNCivjgYLjgo/jgZgs44GC44Gk44GKDQor44G/44Ga44Gy44GNLOOCiOOBl+OBig0KK+OBiuOBoOOBmOOBvizjgarjgbvjgb8NCivjgbXjgovjgYvjgo8s44GX44GS44GKDQor44G/44Ga44GQ44GhLOOBmOOCjeOBhg0KK+OBhOOBqOOBhizjgbLjgo3jgZcNCivjgbXjgY/jgYQs44GV44Go44GXDQor44G144GY44Gv44KJLOOBn+OBkeOBsuOBqA0KK+OChOOBrizjgobjgYbjgZgNCivjga/jgoTjgZfjgZDjgaEs44Gy44KN44GXDQor44G744KKLOOBqOOBl+OChuOBjQ0KK+OCiOOBl+OBhCzjgZ/jgYvjgZcNCivjgYLjgpPjganjgYYs44Gy44KN44GXDQor44Gv44GfLOOBk+OBhuOBhOOBoQ0KK+OBk+OBsOOCiizjgbLjgafjgobjgY0NCivjgYrjgaDjgZfjgb4s44GL44Gk44KN44GGDQor44GG44GI44KE44G+LOOBv+OBpOOBquOCig0KK+OCgOOBnyzjgb7jgarjgbYNCivjgZ/jgarjgYss44GX44GS44GKDQor44GT44KT44GuLOOChuOBhuOBkw0KK+OBteOBmOOCj+OCiSzjgajjgZfjga/jgosNCivjgb/jgoTjgY0s44KG44Gf44GLDQor44Gv44Gq44KPLOOBvuOBleOBsuOCjQ0KK+OBpuOBmOOBvizjgYLjgY3jgokNCivjgY/jgbws44GC44Gk44GXDQor44GK44GK44GwLOOBl+OCk+OBlA0KK+OBk+OCk+OBrizjgZ/jgY/jgoQNCivjgb7jgaTjgbDjgoks44Gy44Gn44GKDQor44Gv44GX44KC44GoLOOBmeOBv+OBkw0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgbLjgo0NCivjgZPjgZ/jgY0s44Gm44Gk44KEDQor44G144GL44KELOOCguOCguOBjQ0KK+OBvuOBpOOBhuOCiSzjgabjgaPjgbrjgYQNCivjgbXjgarjgaAs44GL44Ga44Gy44GTDQor44Gy44GM44GX44GgLOOBqOOBl+OChuOBjQ0KK+OBhOOBruOBvuOBnyzjgbLjgo3jgZcNCivjgZXjgajjgYYs44Gy44KN44G/DQor44GE44Go44GGLOOBn+OBpOOBlw0KK+OBv+OBn+OCgOOCiSzjgb7jgobjgb8NCivjgZnjgYzjga/jgoks44G/44Gk44KLDQor44Gf44GL44G/44KELOOBsuOBp+OBruOBtg0KK+OChOOBvuOBkOOBoSzjgZPjgZnjgZENCivjgYrjgZ8s44Gk44KI44GXDQor44Gb44Gu44GKLOOBr+OBmOOCgQ0KK+OBl+OBsOOBluOBjSzjgYLjgaTjgZcNCivjgarjgYvjgoDjgoks44KE44GZ44Gy44KNDQor44G144GY44GL44KPLOOBsuOCjeOChuOBjQ0KK+OBguOCieOBhCzjgorjgoXjgYbjgZgNCivjgYrjgYrjgY/jgoks44Gy44GV44Gu44KKDQor44G+44Gk44GwLOOBl+OBkuOCiw0KK+OBn+OCgeOBsuOCjSzjgoLjgajjgZMNCivjgb7jgpPjgb0s44GL44Gk44G/DQor44GT44GQ44GhLOOBn+OBi+OBlw0KK+OBn+OBq+OBkOOBoSzjgarjgYrjgZnjgZENCivjgoTjgb7jgoLjgags44Gf44GL44Gy44KNDQor44Gy44KJ44KC44GoLOOBsuOBp+OBguOBjQ0KK+OBguOCk+OCieOBjyzjgZ/jgYvjgZcNCivjgZ/jgarjgYss44Gu44KK44GTDQor44Gh44KD44GNLOOBl+OBkuOBsuOBpw0KK+OBleOBi+OBhCzjgaHjga/jgosNCivjgYTjgarjgYrjgYss44Gy44KN44GL44GaDQor44GG44GX44GY44G+LOOBl+OCk+OBhOOBoQ0KK+OBk+OBkeOBpCzjgYLjgY3jgbLjgZUNCivjgoDjgonjgZ8s44Gy44Go44GXDQor44GN44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBl+OCk+OBn+OBqyzjgorjgoXjgYbjgZgNCivjgYrjgYrjga/jgZ8s44Gu44G244GC44GNDQor44Gf44G244GhLOOChuOBn+OBiw0KK+OBmeOBv+OBoCzjgY3jgojjgZcNCivjgb/jgYbjgoks44Gq44Gq44GTDQor44KK44KF44GG44GoLOOBsuOCjeOBvw0KK+OBhOOBkeOBoCzjgbLjgo3jgarjgooNCivjgZ/jgYvjgoTjgarjgY4s44Gy44KN44G144G/DQor44GI44KT44GpLOOBkeOCk+OBhOOBoQ0KK+OBiuOBl+OBi+OCjyzjgZfjgpPjgZgNCivjgZPjgbDjgoTjgZcs44Gy44Gn44KG44GNDQor44KE44G+44GgLOOBhOOCj+OBig0KK+OBiuOBoCzjgb7jgZXjgYoNCivjgZ/jgY3jgZbjgo8s44GC44Gk44GXDQor44KC44KKLOOChOOBmeOBruOCig0KK+OBi+OBquOBluOCjyzjgZ/jgaTjgobjgY0NCivjgYrjgYrjgZ8s44Gf44GL44GC44GNDQor44GK44GK44GkLOOBpuOBpOOCjeOBhg0KK+OBteOBmOOCguOBqCzjgYvjgZrjgbLjgo0NCivjgoLjgorjgYvjgo8s44G+44GV44Gu44G2DQor44GE44Go44GGLOOBk+OBhuOBmA0KK+OBi+OBqOOBhizjgZPjgYbjgYTjgaENCivjgYbjgYjjga4s44KI44GX44Gy44GTDQor44GK44GK44GL44KPLOOBleOBi+OBiA0KK+OBvuOCi+OBhCzjgZjjgoXjgpPjgZMNCivjgYTjgo/jgYos44GX44KF44GG44GYDQor44GG44KB44GgLOOBi+OBmuOChA0KK+OCgeOBi+OBnyzjgb7jgZXjgosNCivjgaTjgZgs44Gk44GQ44Gy44GTDQor44Gf44GULOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgb7jgZXjgagNCivjgZnjgY7jgoTjgb4s44Gy44KN44KG44GNDQor44G144Gf44GwLOOBqOOBl+OBguOBjQ0KK+OBv+OChOOBsuOCiSzjgb/jgaHjgYLjgY0NCivjgavjgZfjgZbjgY0s44GZ44GZ44KADQor44Gf44Gq44GLLOOBj+OBq+OBkw0KK+OCgOOCieOCguOBqCzjgajjgoLjgYLjgY0NCivjgb7jgYjjgaAs44Gy44GV44GL44GaDQor44G/44KE44GRLOOBguOBpOOBlw0KK+OBqOOBhuOBmOOBvizjgZ/jgaTjgbLjgo0NCivjgYrjgYrjgoQs44G+44GV44KLDQor44GG44GI44GuLOOBqOOCguOBsuOCjQ0KK+OBn+OBi+OBleOBjSzjgoTjgZnjgbLjgZUNCivjgZPjgpPjga4s44KI44GX44Gy44GVDQor44Gf44GR44GKLOOBruOCiuOBi+OBmg0KK+OBi+OBquOChOOBvizjgoTjgZnjgbLjgZMNCivjgYrjgYrjgYrjgYss44Go44GX44KN44GGDQor44GT44Gw44KE44GXLOOBl+OCheOBhg0KK+OBq+OBl+OBluOBiyzjgb/jgYsNCivjgb7jgZnjgb/jgaAs44Go44KC44Gy44GTDQor44Gk44G844GELOOChOOBmeOBig0KK+OBn+OBjOOBvyzjgb7jgZXjgosNCivjgYrjgYvjgaAs44Gm44KL44GKDQor44GL44Gf44GO44KKLOOBleOBqOOBlw0KK+OBi+OCj+OBpizjgZ/jgYvjgZcNCivjgb/jgZrjgYQs44GC44KE44GKDQor44GL44GV44GK44GLLOOBqOOBl+OBsuOBkw0KK+OBsuOBjOOBl+OBn+OBqyzjgbLjgafjgbXjgb8NCivjgYbjgZfjgY0s44GL44Ga44GE44GhDQor44Gy44KJ44GV44KPLOOBquOBjOOBkw0KK+OBquOCiuOBnyzjgZfjgoXjgYbjgYTjgaENCivjgZPjgaDjgb4s44GL44Ga44Gy44KNDQor44GE44Gu44G+44GfLOOBsuOCjeOBvw0KK+OBjeOCgOOCiSzjgZfjgofjgYbjgZQNCivjgYTjgajjgYYs44G144G/44GKDQor44KP44Gf44Gq44G5LOOBpuOCi+OBguOBjQ0KK+OBpuOCieOBleOCjyzjgb/jgaTjgYoNCivjga/jgoTjgZcs44GX44KT44GE44GhDQor44GC44GV44GP44KJLOOBl+OCk+OChA0KK+OChOOBvuOBjSzjgZPjgYbjgYTjgaENCivjgarjgYvjgoDjgoks44GX44KT44GE44Gh44KN44GGDQor44GI44Gu44KC44GoLOOBsuOCjeOBv+OBoQ0KK+OBi+OBvuOBnyzjgZ/jgYvjgbLjgo0NCivjga/jgZfjgoLjgags44Gq44GK44GNDQor44GC44KJ44GELOOCiOOBl+OBvw0KK+OBi+OCiuOChCzjgZ/jgYvjgbLjgZMNCivjgZPjgpPjgaks44KI44GX44GNDQor44G+44GZ44GgLOOBsuOCjeOBig0KK+OBhOOBqOOBhizjgZHjgYTjgZnjgZENCivjgYrjgYss44G/44Gh44Gv44KLDQor44GK44GK44Gk44GLLOOBsuOBp+OBjQ0KK+OBvuOBpOOBiizjgZPjgYbjgZgNCivjgYLjgZ0s44Gm44KL44GL44GaDQor44GL44G/44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OBsOOBn+OBkSzjgZfjgZLjga7jgooNCivjgbXjgY/jgaAs44Gy44KN44KG44GNDQor44Gf44GL44Gv44GXLOOBkeOCk+OBqA0KK+OBhOOCj+OBjSzjgb7jgZPjgagNCivjgZnjgpMs44Go44KI44KG44GNDQor44GC44KT44Gp44GGLOOCiOOBl+OBig0KK+OBr+OBl+OCguOBqCzjgYvjgaoNCivjgoTjga/jgZ8s44Gy44Gn44GKDQor44G144GY44GNLOOBkeOCk+OBmA0KK+OBvuOBpOOBiizjgZXjgajjgZcNCivjgYLjgYrjgY0s44KI44GG44GE44Gh44KN44GGDQor44GU44Go44GGLOOBl+OCk+OBmA0KK+OBq+OBl+OBi+OCjyzjgbLjgajjgZcNCivjgZnjgb/jgags44G+44GV44G144G/DQor44Gy44KJ44GuLOOBk+OBhuOBmA0KK+OBhOOBqOOBhizjgZHjgYQNCivjgZPjgYTjgZrjgb8s44Gu44KK44GTDQor44GL44KP44Gw44GfLOOBruOBnuOBvw0KK+OCgOOBqOOBhizjgYvjgaTjga7jgooNCivjgYLjgaDjgaEs44G+44GV44GXDQor44GN44KJLOOBvuOBleOBlw0KK+OBguOChOOBrizjgZPjgYbjgY0NCivjgZ/jgovjgYQs44KI44GX44GKDQor44Gv44KE44GXLOOBjeOCh+OBhuOBkw0KK+OBhOOBkeOBoCzjgZjjgoXjgpMNCivjgbvjgorjgb/jgZ4s44GR44GE44GZ44GRDQor44G144KL44Gq44GMLOOBr+OCi+OBsuOBkw0KK+OBiuOBl+OBvizjgarjgZnjgYoNCivjga/jgoTjgZcs44Gy44Go44GXDQor44Gr44GXLOOChuOBjeOBv+OBpA0KK+OBk+OCgOOCjSzjgYvjgarjgoENCivjgbLjgo3jgZ/jgass44KI44GX44GKDQor44GZ44GMLOOBsuOCjeOBlw0KK+OBpOOCi+OBvyzjgYLjgY3jgbLjgZUNCivjgajjgb/jgoTjgb4s44GL44Ga44G/44GkDQor44KE44G+44GW44GNLOOCiOOBhuOBkw0KK+OBhOOBl+OBoCzjgZfjgofjgYbjgYTjgaHjgo3jgYYNCivjgYbjgaHjgajjgb8s44GC44GN44KJDQor44GK44GK44GV44KPLOOCiOOBl+OBi+OBmg0KK+OChOOBquOBjizjgbLjgafjgbLjgo0NCivjgb/jgoTjgZfjgZ8s44Gy44Gn44GNDQor44Gf44GL44Gv44GXLOOBk+OBhuOBmA0KK+OBqOOBjOOCjyzjgbLjgo3jgobjgY0NCivjgarjgYvjgoDjgoks44GX44GS44KLDQor44GG44GI44KA44KJLOOBn+OBkeOBlw0KK+OBguOBleOBrizjgobjgYbjgYTjgaENCivjgYrjgYrjgoTjgb4s44GR44KT44GYDQor44GL44KP44GuLOOBiOOBhOOBkw0KK+OBsOOBsCzjgbLjgajjgZcNCivjgYTjgajjgYYs44GX44KT44GE44GhDQor44GG44GI44GuLOOBruOBtuOChuOBjQ0KK+OBl+OCieOBhCzjgZHjgpPjgZfjgpMNCivjgYTjgYvjgb8s44Gv44KL44GKDQor44GL44KP44GX44G+LOOBqOOCguOChuOBjQ0KK+OBv+OChOOBkSzjgZ/jgYvjgbLjgo0NCivjgZXjgY/jgonjgYQs44GR44KT44GYDQor44Gf44GR44Gu44GX44GfLOOBl+OCheOBhuOBuOOBhA0KK+OBq+OBl+OBiuOBiyzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgY/jgo3jgY0s44G+44GV44KI44GXDQor44Gf44Gq44GLLOOBv+OBruOCiw0KK+OBhOOBhOOBmOOBvizjgZ/jgYvjgZcNCivjgZXjgajjgYYs44Gy44KN44GC44GNDQor44GV44GP44KJ44GELOOBi+OBmuOBl+OBkg0KK+OChOOBquOBjuOBleOCjyzjga7jgbbjgYoNCivjgYbjgaHjgoTjgb4s44GX44GS44KI44GXDQor44GK44GP44GkLOOBi+OBmuOBqOOBlw0KK+OBq+OBl+OChOOBvizjgZvjgYTjgZgNCivjgZ/jgZHjgaAs44Gf44GL44GTDQor44G144KK44Gv44KJLOOBi+OBmuOBig0KK+OChOOBtuOBjSzjgb7jgZXjgbLjgo0NCivjgarjgYss44GL44Ga44Gy44KNDQor44KI44GX44GK44GLLOOBi+OBmuOChA0KK+OCguOBoeOBmuOBjSzjgZ/jgYvjgobjgY0NCivjgZnjgY7jgoTjgb4s44Gy44Gn44Gy44KNDQor44GE44KP44Gq44GMLOOBkeOBhOOBhOOBoQ0KK+OBv+OCjyzjga/jgovjgYvjgZoNCivjgbvjgorjgYvjgo8s44GL44Gk44GNDQor44Gf44GL44GgLOOBk+OBhuOBmA0KK+OBhOOBl+OBvuOCiyzjgZfjgZLjgoTjgZkNCivjgYrjgoDjgoks44Gy44Gn44GKDQor44GN44Gf44KA44KJLOOCiuOBiw0KK+OBmeOBjuOBjSzjgZ/jgYvjgY0NCivjgavjgZfjgoDjgoks44Gh44GI44GTDQor44Gq44GL44Gv44KJLOOBk+OBhuOBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgYLjgY3jgokNCivjgbXjgY/jgZfjgb4s44G+44GV44KLDQor44GL44GY44GK44GLLOOBguOBjeOBsuOBqA0KK+OBquOBi+OBluOCjyzjga7jgbzjgosNCivjgb7jgZnjgZbjgY0s44Gf44GL44GXDQor44Gq44GLLOOBqOOBl+OBn+OBiw0KK+OBiuOBleOBoCzjga/jgZjjgoENCivjgYvjgo/jgZ8s44Gq44GK44G/DQor44KI44GX44GgLOOBk+OBhuOBmA0KK+OBquOBiyzjgajjgZfjgbLjgo0NCivjgYjjgYTjganjgoEs44Gy44Gn44GL44GaDQor44G+44Gk44KC44GoLOOCiOOBl+OBvuOBlQ0KK+OBquOBjOOBleOBiyzjgojjgZfjgYLjgY0NCivjgbXjgZjjgZXjgo8s44GL44Gk44Gy44GTDQor44GN44KI44Gf44GrLOOBpOOBqOOCgA0KK+OBguOCiuOCguOBqCzjgZvjgYTjgZMNCivjgYjjgZ7jgYgs44GR44GE44GE44GhDQor44Gk44Gh44KELOOBi+OBmuOChA0KK+OBteOBmOOBiuOBiyzjgoTjgZnjgZMNCivjgaTjgYvjgoLjgags44G144G/44GKDQor44Gf44GL44Gv44GXLOOBqOOCiOOBsuOBkw0KK+OBleOBi+OBhOOBoCzjgoTjgZnjgbLjgo0NCivjgZnjgZrjgY0s44GT44GG44GYDQor44GK44GX44G+LOOChOOBmeOBqOOBlw0KK+OBvuOBjeOBhuOBoSzjgZ/jgY/jgoQNCivjga/jgonjgaAs44Gy44GV44GL44GaDQor44G+44GV44GNLOOBguOBjeOCiQ0KK+OBiuOBjOOCjyzjga7jgbbjgYLjgY0NCivjgYbjgZfjgb7jgoss44GR44KTDQor44GE44GX44GgLOOBruOBtuOBn+OBiw0KK+OBr+OBquOBtuOBlSzjgYLjgaTjgZMNCivjgojjgZfjgoDjgoks44KI44GX44Gy44GVDQor44Gf44Gr44GM44KPLOOBvuOCiuOBig0KK+OBleOBqOOBhizjgZ/jgaTjgZcNCivjgYvjgaQs44Gf44GL44GXDQor44KE44G+44GQ44GhLOOBsuOCjeOBjQ0KK+OBr+OBj+OBoeOCh+OBhizjgYTjgZXjgYoNCivjgYTjgajjgYYs44Gf44GL44GXDQor44GV44GL44GELOOBi+OBmuOBruOCig0KK+OBn+OCk+OBlCzjgbLjgafjgYoNCivjgZPjgYTjgZrjgb8s44GR44KT44GZ44GRDQor44KP44GL44GZ44GOLOOBn+OBoOOBn+OBiw0KK+OBhuOBiOOBrizjgZfjgpPjgYTjgaENCivjgYbjgYjjgaAs44Go44KC44GNDQor44GZ44Ga44GNLOOBsuOBleOBiA0KK+OBiuOBiuOBrizjgojjgZfjga7jgooNCivjgYLjgbks44GR44KT44GE44GhDQor44GX44GE44GNLOOBsuOCjeOBlw0KK+OBguOCieOBjSzjgY3jgojjga/jgosNCivjgYLjgZrjgb4s44Gy44KN44KI44GXDQor44Gn44GQ44GhLOOBsuOCjeOBruOCig0KK+OBiOOCiuOBi+OCjyzjgobjgYbjgZMNCivjgbXjgYvjgoTjgb4s44Gu44G244KG44GNDQor44G144Gq44GNLOOBleOBi+OBiA0KK+OBhOOBoeOCgOOCiSzjgb7jgZPjgagNCivjga/jgZfjgoLjgags44Gu44KK44GC44GNDQor44Gy44GM44GXLOOBjeOCiOOBn+OBiw0KK+OBsuOCjeOBleOCjyzjgYLjgaTjgZcNCivjgbvjgorjgZDjgaEs44KG44GG44GE44GhDQor44GE44Gw44KJ44GNLOOChuOBhuOBhOOBoQ0KK+OBhOOBquOCgOOCiSzjgZPjgYbjgYTjgaENCivjgYTjgZfjgYvjgo8s44G/44GN44GKDQor44GE44Go44GELOOBn+OBoOOBlw0KK+OBi+OBquOBluOBlyzjga7jgorjgZMNCivjgYvjgZ/jgY7jgZcs44G+44GV44GXDQor44GL44Go44GGLOOChOOBmeOBlw0KK+OBi+OCj+OBoCzjgZHjgpPjgZnjgZENCivjgY3jga7jgZfjgZ8s44KE44GZ44Gy44KNDQor44GT44Gw44KE44GXLOOBi+OBpOOBruOCig0KK+OBk+OBvuOBpCzjgoTjgZnjgZ/jgYsNCivjgZPjgZ/jgass44Gy44Gn44GNDQor44GP44KN44GbLOOBiuOBleOCgA0KK+OBvuOBiOOBoCzjgobjgYbjgZgNCivjgb7jgpPjgZ/jgass44KI44GG44GE44GhDQor44G+44Gk44KC44GoLOOChOOBmeOBguOBjQ0KK+OBv+OCgOOCiSzjgZfjgZLjga7jgbYNCivjgb/jgo8s44G+44GV44Gy44KNDQor44KC44KK44GfLOOBguOBjeOBsuOBkw0KK+OCgOOBreOCgOOCiSzjgajjgZfjgb/jgaQNCivjgarjgYzjgZ8s44GR44KT44GYDQor44Gq44GL44GT44GYLOOBn+OBpOOChA0KK+OBquOBi+OCgOOCiSzjgojjgYbjgYTjgaENCivjgarjgYvjgoTjgb4s44Gf44GL44GXDQor44Gr44KA44KJLOOBmeOBmeOCgA0KK+OChOOBmOOBvizjgojjgZfjgYgNCivjga7jgb4s44Go44KI44G/DQor44Gs44GN44GELOOBi+OBpOOBvw0KK+OBiuOBjOOBleOCj+OCiSzjgZfjgoXjgYbjgZgNCivjgYrjgYrjgZXjgo8s44Gy44Gn44Gf44GLDQor44G+44Gk44Gq44GMLOOCiOOBl+OBguOBjQ0KK+OBiuOBi+OCguOBqCzjgbLjgo3jgobjgY0NCivjgYrjgZXjgaAs44KA44Gk44G/DQor44GV44GE44Go44GGLOOBguOBjeOBsuOCjQ0KK+OBleOBj+OCieOBhCzjgZfjgZLjga7jgooNCivjgZXjgajjgYYs44KI44GX44Gu44KKDQor44Gb44GW44GELOOBi+OBmuOChOOBmQ0KK+OBl+OBv+OBmizjgYLjgY3jgajjgZcNCivjgZfjgofjgYbjgb/jgaQs44KI44GX44Gy44KNDQor44GZ44GO44GV44KPLOOBruOBtuOChuOBjQ0KK+OBmeOBmuOBjSzjgobjgYbjgZgNCivjgZnjgZrjgY0s44KG44GG44GTDQor44Gf44GL44Gv44GXLOOBn+OBi+OChuOBjQ0KK+OBn+OBi+OBleOBiyzjga/jgZjjgoENCivjgbXjgZjjgYQs44GC44Gk44GTDQor44Gf44G+44GNLOOBleOBqOOBkw0KK+OBn+OBqyzjgYvjgZrjgbLjgZMNCivjgajjgY3jgZ7jga4s44GX44GS44GKDQor44Go44KK44GW44KPLOOBiOOBvw0KK+OBpOOCi+OBi+OCjyzjgYjjgYTjgZgNCivjgYbjgaAs44Gy44GV44KI44GXDQor44GG44KB44KA44KJLOOBjeOBv+OBsuOCjQ0KK+OCj+OBn+OCiizjgoTjgZnjgojjgZcNCivjgoTjgb7jgoLjgags44Gm44Gk44KEDQor44KE44G+44KC44GoLOOBvuOBleOCiOOBlw0KK+OChOOBrizjgobjgY3jgYoNCivjgojjgaAs44GE44GV44GKDQor44KE44G+44GQ44GhLOOBi+OBmuOCiOOBlw0KK+OBuyzjgYLjgY3jgokNCivjgb7jgaTjgb/jgoQs44KG44GG44GE44GhDQor44GV44KP44GgLOOBsuOCjeOBlw0KK+OBk+OBr+OCiSzjgb7jgZXjga7jgooNCivjgZXjgYTjgajjgYYs44G/44Gk44KLDQor44KE44GuLOOBv+OBpOOBig0KK+OBteOBmOOCguOCiizjga7jgorjgZMNCivjgoTjgb7jgZDjgaEs44KE44GZ44Gy44KNDQor44KE44G+44GgLOOBn+OBi+OBlw0KK+OBteOBmOOBnyzjgajjgZfjgY0NCivjgY3jgoDjgoks44Gf44GR44GKDQor44Gv44KE44GXLOOBvuOBleOBsuOCjQ0KK+OBvuOBiOOBluOCjyzjgYTjgZrjgb8NCivjgZfjgbbjgYvjgo8s44GN44KI44Gy44GVDQor44G/44G7LOOBvuOBleOBruOCig0KK+OBmeOBjuOChOOBvizjgZfjgpPjgYTjgaENCivjgbXjgovjgYvjgo8s44KI44GX44G144G/DQor44Gu44Gh44GbLOOBi+OBmuOBsuOBkw0KK+OBvuOBpOOCguOBqCzjgbLjgafjgYLjgY0NCivjgYrjgY/jga4s44KG44GN44GKDQor44KE44G+44GW44GNLOOChOOBmeOBsuOCjQ0KK+OBhOOBl+OBkizjgYLjgY3jgZMNCivjgb/jgYbjgoks44KK44KF44GG44Ge44GGDQor44Gw44GwLOOBn+OBj+OChA0KK+OCguOBoeOBmuOBjSzjgYjjgb/jgZMNCivjgajjgY/jgarjgYws44G144G/44Gy44GoDQor44GP44KN44GL44KPLOOBsuOCjeOBlw0KK+OBhOOBkeOBrizjgoHjgZDjgb8NCivjgoTjgb7jgYvjgZIs44KI44GG44GYDQor44KE44GO44Gv44GXLOOBl+OCheOBhuOBhOOBoQ0KK+OBjeOCiOOBv+OBpCzjgZHjgpPjgZgNCivjgoDjgonjgoTjgb4s44GI44GE44GY44KFDQor44GK44GK44Gk44GLLOOBsuOBp+OBsuOBkw0KK+OBiuOChOOBvuOBoCzjgZ/jgYvjgZcNCivjgYLjgZLjgZ8s44GY44KF44KT44GE44GhDQor44GC44KC44GGLOOBguOBjeOBig0KK+OBguOCieOBi+OCjyzjgbLjgafjgZcNCivjgbDjgpPjga4s44G+44GV44GN44KIDQor44GI44GV44GNLOOBl+OCk+OBhOOBoQ0KK+OBteOBi+OBluOCjyzjgajjgoLjgbLjgagNCivjgbXjgarjgbDjgZcs44G+44GV44KG44GNDQor44Gv44Gq44GgLOOBi+OBpOOBruOCig0KK+OBr+OBl+OCguOBqCzjgYjjgb/jgZMNCivjgbLjgZjjgY/jgo0s44Gq44GK44KG44GNDQor44G744GG44KELOOBi+OBmuOBsuOBkw0KK+OBu+OBneOBoCzjgaHjgYjjgb8NCivjgYTjgZHjgZbjgo8s44Gu44G244KE44GZDQor44GE44Gs44Gk44GLLOOBquOBiuOBjQ0KK+OBi+OBmOOBn+OBqyzjgYrjgZXjgoANCivjgYTjgajjgYYs44Gh44GP44GVDQor44GE44KP44GX44GfLOOBl+OBkw0KK+OBi+OBv+OChCzjgY/jgavjgYLjgY0NCivjgYvjgZnjgoQs44GC44GN44KJDQor44GL44KP44Gw44GfLOOBoOOBhA0KK+OBi+OCj+OBj+OBvCzjgYvjgZrjgajjgZcNCivjgY3jgbDjgZcs44Gy44Gn44Gy44GTDQor44GN44KK44GV44KPLOOBhOOBoeOCjeOBhg0KK+OBk+OBoOOBvizjgYrjgZXjgoANCivjgajjgYbjganjgYYs44GT44GG44GYDQor44GT44KE44GE44GXLOOBv+OBiw0KK+OBj+OCieOBnyzjgZPjgZnjgZENCivjgY/jgo/jga4s44Gy44KN44Gf44GLDQor44G+44GZ44GgLOOBmOOCheOCkw0KK+OBvuOBpOOBl+OBnyzjgZ/jgaDjgZcNCivjgb/jgoTjgZEs44GC44Gk44GXDQor44G/44KI44GgLOOBn+OBi+OBsuOBlQ0KK+OBv+OBmuOBn+OBqyzjgaTjgojjgZcNCivjgoLjgorjgo/jgY0s44GX44KT44GE44Gh44KN44GGDQor44KA44Go44GGLOOBi+OBpOOBjQ0KK+OBquOBjOOCjyzjgZfjgpPjgYTjgaENCivjgarjgYvjgZfjgb4s44Gy44GV44KI44GXDQor44Gr44GX44GgLOOBsuOCjeOCiOOBlw0KK+OBq+OBl+OBiizjgb7jgZXjgagNCivjga7jgoDjgoks44Gm44Gk44KEDQor44GK44Gg44GK44GK44Gv44KJLOOBl+OCk+OBlA0KK+OBiuOBiuOBsuOCiSzjgYTjgaHjgo3jgYYNCivjgYrjgYrjgazjgb4s44Gq44KL44GXDQor44GK44GK44KE44GOLOOBvuOBleOBsuOCjQ0KK+OBiuOBi+OBrSzjgZ/jgYvjgZcNCivjgYrjgY/jga4s44GL44Gk44GXDQor44GV44GE44Go44GGLOOCiOOBl+OBvw0KK+OBleOBi+OBhuOBiCzjgoTjgZnjgobjgY0NCivjgZXjgajjgYYs44Gf44GR44GXDQor44Gb44GN44KC44GoLOOBqOOBl+OChuOBjQ0KK+OBl+OBhOOBqizjgbXjgb/jga/jgosNCivjgZfjgb/jgZos44Gy44Gn44Go44GXDQor44GX44KJ44GV44GNLOOCiOOBhuOBkw0KK+OBmeOBqeOBhizjgZXjgajjgZMNCivjgZnjgZrjgY0s44Gy44KN44GXDQor44G744Gd44GL44KPLOOChuOCig0KK+OChOOBvuOBluOBjSzjgarjgYrjgY0NCivjgZ/jgYvjgZks44GL44Ga44KIDQor44Gf44GR44GgLOOBsuOCjeOChuOBjQ0KK+OBn+OBvuOBn+OBqyzjgYvjgZrjgYLjgY0NCivjgZ/jgavjgoLjgags44GX44KT44GE44GhDQor44Go44G/44Gq44GMLOOBsuOCjeOBsuOBlQ0KK+OBpOOBi+OBoCzjgbLjgafjgY0NCivjgYbjgonjgYvjgo8s44KG44GG44GYDQor44KP44Gf44KKLOOBk+OBhuOBmA0KK+OChOOBvuOCguOBqCzjgYLjgaTjgZcNCivjgoTjgb7jgZfjgZ8s44Go44GX44Gy44GnDQor44KE44GW44GNLOOBn+OBkeOBlw0KK+OCiOOBk+OBnyzjgobjgYbjgZMNCivjgojjgZfjgYvjgo8s44G/44Gk44Gy44KNDQor44GC44GV44GuLOOBv+OBoeOBkw0KK+OBiuOBj+OBoCzjgbLjgZXjgZMNCivjgYTjgarjgaAs44G+44GV44Gk44GqDQor44GX44KC44GL44KPLOOBteOBv+OBsuOBkw0KK+OBpOOBvOOBnyzjga7jgorjgYoNCivjgYrjgYrjgY/jgbws44Gf44GR44GXDQor44GV44GE44Go44GGLOOBl+OCheOBhuOBhOOBoQ0KK+OBteOBmOOBnyzjgaTjga3jgYoNCivjgb7jgY3jgoDjgoks44Gf44GR44GKDQor44Gr44Gu44G/44KELOOBi+OBmuOBig0KK+OBn+OBsOOBnyzjgojjgZfjgZ/jgYsNCivjgoDjgonjgYvjgb8s44Gy44KN44GNDQor44GE44G+44Gr44GXLOOBn+OBkeOBig0KK+OBn+OBjeOBjOOCjyzjgZfjgZLjgojjgZcNCivjgYrjgpPjgZrjgYss44Gy44KN44GXDQor44Go44Gu44GL44KPLOOBn+OBkeOBlw0KK+OBhOOBkeOBoCzjgajjgY3jgYoNCivjgZTjgajjgYYs44GL44Ga44KEDQor44Gd44GgLOOBkeOCk+OBmA0KK+OCguOCiuOBnyzjgb7jgZXjgobjgY0NCivjgZ/jgpPjga4s44GI44GE44GE44GhDQor44GU44GG44GgLOOBjeOCh+OBhuOBkw0KK+OChOOBvuOBkOOBoSzjgbLjgo3jgYvjgZoNCivjgYrjgZXjgarjgYQs44GC44Gk44GXDQor44Gy44GM44GXLOOBl+OCh+OBhuOBkw0KK+OChOOBvuOCguOBqCzjgbLjgafjgYLjgY0NCivjgZXjgajjgYYs44Gf44GL44GKDQor44G/44Ge44GQ44GhLOOBqOOBl+OChuOBjQ0KK+OBjeOBn+OBjOOCjyzjgbLjgo3jgZcNCivjgYrjgYrjgavjgZcs44Gd44GG44GE44GhDQor44GC44GE44Gv44KJLOOBsuOBp+OBig0KK+OBguOBjeOBsCzjgaTjgajjgoANCivjgYLjgb7jga4s44Go44GK44KLDQor44GC44GK44KE44GOLOOBn+OBi+OBig0KK+OBguOCiSzjgYLjgY3jgYoNCivjgYLjgZXjga4s44KI44GX44Gy44KNDQor44Gw44KTLOOBk+OBhuOBn+OCjeOBhg0KK+OBiOOBs+OBrOOBvizjgYLjgZHjgb8NCivjgbXjgZjjgYjjgaAs44GY44KF44KTDQor44G144GY44GELOOBl+OBkuOBruOCig0KK+OBiuOBkOOCiSzjgYLjgoTjgZMNCivjgbXjgYvjgYos44G/44Gk44Gy44KNDQor44G144GP44GgLOOBv+OBiw0KK+OBteOBj+OBiuOBiyzjgZfjgpPjgZQNCivjgZTjgYbjgaAs44KI44KK44GTDQor44Gv44GO44KP44KJLOOBjeOBj+OBig0KK+OBr+OBquOBv+OBpCzjgojjgZfjgZ/jgYsNCivjga/jgoks44G/44KG44GNDQor44Gv44Gk44GX44G+LOOBkeOCkw0KK+OBr+OBo+OBqOOCiizjgojjgZfjga7jgooNCivjga/jgoTjgZcs44GL44Gk44G/DQor44Gy44Gq44GfLOOBmOOCheOCkw0KK+OBsuOCieOBleOCjyzjgYvjgZrjgbLjgo0NCivjgbLjgo3jgZss44Gy44GV44KG44GNDQor44GZ44GO44KC44GoLOOBm+OBhOOBhOOBoQ0KK+OBu+OCiizjgYvjgZrjgYoNCivjgbvjgZ0s44GL44Ga44G/DQor44GE44Gn44GELOOBvuOBleOBi+OBmg0KK+OBhOOBhOOCgOOCiSzjgojjgZfjga7jgbYNCivjgYTjgZHjgaAs44GP44Gr44Gy44KNDQor44GE44G+44GELOOBn+OBoOOBlw0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgZ/jgYsNCivjgYTjgZfjgZDjgo0s44Gy44KN44GXDQor44GE44GX44GL44KPLOOCiOOBhuOBkw0KK+OBhOOBl+OCj+OBnyzjgarjgYrjgbLjgZUNCivjgYTjgajjgYYs44Gm44Gk44KEDQor44GE44Go44GGLOOBn+OBi+OBlw0KK+OBhOOCj+OBj+OBvCzjgZ/jgYvjgobjgY0NCivjgYTjgo/jgZXjgY0s44Gf44Gk44Gy44GTDQor44GL44GM44G/LOOBl+OBkuOCiOOBlw0KK+OBi+OBvuOCguOBqCzjgZ/jgYjjgZMNCivjgYvjgb8s44G+44GT44GoDQor44GL44Gq44GW44KPLOOBleOBoOOBhOOBoQ0KK+OBi+OBreOBkyzjgoTjgYgNCivjgYvjgZfjgo/jgY4s44Gy44KN44GXDQor44GL44Gf44GK44GLLOOBguOBpOOBlw0KK+OBlOOBqOOBhizjgbLjgo3jgYvjgZoNCivjgYvjgo/jga/jgoks44Gy44KN44GC44GNDQor44GL44KP44GN44GfLOOChOOBmeOBkw0KK+OBjeOBoCzjgojjgZfjgbXjgb8NCivjgY3jgoDjgoks44G/44Gu44KLDQor44GK44GL44GW44GNLOOBn+OBkeOBig0KK+OBjeOBn+OCgOOCiSzjgYLjgY3jgYoNCivjgZPjgbDjgoTjgZcs44G/44KI44GTDQor44Gy44KN44GbLOOBr+OCi+OBig0KK+OBk+OBleOBiyzjgojjgZfjgobjgY0NCivjgZPjgY/jgb7jgYQs44G/44GI44GTDQor44GT44KC44GK44GLLOOBteOBv+OBig0KK+OBk+OCk+OBqeOBhizjgZ/jgaTjgagNCivjgY/jgbws44Gf44GL44KG44GNDQor44GP44G+44KC44GoLOOBguOBjeOBsuOBkw0KK+OBj+OCiuOChOOBvizjgobjgY3jgYgNCivjgY/jgZfjgaAs44KP44Gf44KLDQor44G+44GI44GL44KPLOOBsuOBp+OBn+OBiw0KK+OBvuOBmeOBoCzjgb/jgY3jgYoNCivjgb7jgaTjgaAs44GX44GS44GKDQor44GL44Gu44GGLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBquOBvyzjgbLjgo3jgobjgY0NCivjgb7jgaTjgZbjgY0s44Gf44Gg44GXDQor44G/44KC44KKLOOBsuOCjeOBlw0KK+OBv+OBhuOCiSzjgojjgYbjgYTjgaENCivjgb/jgoTjga/jgZcs44GN44KH44GG44GTDQor44G/44KE44Gf44GRLOOBl+OBkuOBvw0KK+OBv+OBmuOBk+OBlyzjgajjgZfjgYoNCivjgoLjgorjgY0s44KE44GZ44Gy44KNDQor44KC44KKLOOBleOBqOOCiw0KK+OCgOOBi+OBhCzjgZ/jgaTjgb8NCivjgoDjgonjgZ8s44GV44Go44GXDQor44KA44Gk44GX44GLLOOBiOOBhOOBhOOBoQ0KK+OBquOBjOOBleOCjyzjgYvjgZrjgagNCivjgarjgYzjgYgs44Gf44GL44KG44GNDQor44Gq44GL44GY44G+LOOBi+OBpOOBqOOCgg0KK+OBquOBi+OBvuOBnyzjga7jgorjgbLjgo0NCivjgarjgYvjgoDjgoks44Gv44GY44KBDQor44GK44GK44Gr44GXLOOBvuOBleOBruOCig0KK+OBquOBi+OBrizjgoLjgYjjgZMNCivjgarjgYvjgZ8s44GX44GS44GTDQor44Gq44GL44KE44G+LOOBi+OBpOOBsuOBkw0KK+OBquOBpOOChOOBvizjgobjgYbjgZMNCivjgoLjgoos44KG44GN44GTDQor44Gr44KPLOOBvuOBleOBjQ0KK+OBruOBvizjgZXjgajjgZcNCivjga7jgorjgYvjga0s44G+44GV44KLDQor44GK44Gg44GtLOOCiOOBl+OBi+OBmg0KK+OBiuOBiuOBsOOChOOBlyzjgoTjgZnjgobjgY0NCivjgYrjgY0s44KI44GX44KG44GNDQor44GK44KJ44GELOOBmeOBmeOCgA0KK+OBiuOBiuOBqOOCgizjgYLjgY3jgYoNCivjgYrjgbLjgoMs44GP44Gr44Gy44GTDQor44GK44GL44KC44GoLOOCiOOBl+OBig0KK+OBhuOBiOOBoCzjgajjgojjgYvjgZoNCivjgavjgZcs44GC44Gk44GNDQor44Gf44GgLOOBn+OBi+OChuOBjQ0KK+OChOOBvuOBl+OBnyzjgZHjgpPjgZgNCivjgZXjgZXjgoLjgoos44KG44Gf44GLDQor44Gv44Gb44GM44KPLOOBqOOCguOChuOBjQ0KK+OBhOOBvuOBhCzjgb/jgobjgY0NCivjgojjgZPjgoTjgb4s44GR44KT44GYDQor44GZ44GO44KE44G+LOOCiOOBl+OBvuOBlQ0KK+OBguOCieOBhCzjgajjgoLjgZMNCivjgYLjgb7jgYzjgoQs44KG44KB44GuDQor44Gk44KLLOOBv+OBruOCiw0KK+OChOOBhOOBnyzjgb7jgY0NCivjgZvjgY0s44G+44KKDQor44Gv44KJLOOCiOOBl+OBruOCig0KK+OBv+OBhuOCiSzjgZnjgZnjgoANCivjgZXjgZUs44KG44GN44GTDQor44Gf44GL44GV44GNLOOBvuOBjeOBkw0KK+OBr+OCieOBoCzjgYjjgb/jgZMNCivjgY/jgonjgZ8s44KE44GZ44Gy44KNDQor44GC44GS44G+44GkLOOBsuOCjeOBv+OBoQ0KK+OBteOBj+OCguOBqCzjgb/jgY3jgYoNCivjgYrjgY/jgoDjgoks44Gg44GEDQor44GK44Gd44GI44GM44KPLOOChOOBmeOBquOCig0KK+OBleOBhOOBnyzjgb7jgZXjgbLjgo0NCivjgZXjgYvjgYQs44Gy44KN44G/DQor44GV44GL44KKLOOBruOBtuOBsuOCjQ0KK+OBleOBrizjgobjgZ/jgYsNCivjgZXjgajjgYYs44KI44GX44Gy44GTDQor44GV44Go44GGLOOBguOBjeOBig0KK+OBleOBqOOBhizjgZXjgajjgZcNCivjgZvjgY3jgYvjgo8s44GC44GN44KJDQor44Gb44GX44KCLOOBk+OBhuOBmA0KK+OBl+OBtuOChCzjgb7jgZXjga7jgooNCivjgZfjgb7jgoLjgoos44G+44GV44Gy44GTDQor44GX44KC44GgLOOBkeOBhOOBv+OCkw0KK+OBl+OCk+OBn+OBqyzjgobjgYbjgZgNCivjgZfjgonjgYQs44GX44GS44GNDQor44GX44KF44GGLOOBlOOBhOOBoQ0KK+OBmeOBoCzjgarjgYrjgY0NCivjgZnjgY7jgZ8s44KG44GG44GE44Gh44KNDQor44GZ44GW44GNLOOBpuOBpOOChA0KK+OBmeOBmuOBjSzjgajjgZfjgoQNCivjgZnjgZrjgY0s44Gu44KK44KG44GNDQor44Gf44GM44GELOOChOOBmeOBlw0KK+OBn+OBi+OBjizjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgYvjga/jgZcs44G+44GV44GTDQor44Gf44GL44GE44GXLOOBqOOCguOBguOBjQ0KK+OBn+OBi+OBiuOBiyzjgZ/jgYvjgY0NCivjgZ/jgYvjgoTjgb4s44GX44KT44GE44GhDQor44Gf44GR44KC44GoLOOBruOBnuOBvw0KK+OBn+OBvuOBoSzjgbLjgo3jgZcNCivjgZ/jgarjgYss44Gy44KN44G144G/DQor44Gf44GrLOOBsuOCjeOBtuOBvw0KK+OBpuOCieOBleOBjSzjgbLjgo3jgobjgY0NCivjgZXjgY/jgonjgY4s44Gu44KK44Gy44GVDQor44Go44KI44GV44GoLOOBsuOCjeOBlw0KK+OBpOOBmOOCguOBqCzjgobjgY3jgYoNCivjgaTjgovjgZ8s44GX44Gu44G2DQor44GG44Gh44KE44G+LOOBn+OBkeOBlw0KK+OBjeOBjeOCh+OBhizjgojjgZfjgZ/jgYsNCivjgYbjgYjjga4s44KI44GX44GTDQor44Gq44GM44GfLOOBruOCiuOBkw0KK+OCj+OBoCzjgZfjgZrjgYoNCivjgYTjgajjgYQs44KI44GX44Gy44GVDQor44KP44Gf44Gq44G5LOOBsuOBp+OBqOOBlw0KK+OChOOBtuOBhuOBoSzjgZfjgofjgYbjgbjjgYQNCivjgoTjgb7jgaAs44GC44GN44GKDQor44KE44G+44KC44GoLOOBguOBjeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgb7jgZXjgajjgZcNCivjgoTjgb7jgZfjgZ8s44Gk44Go44KADQor44KE44G+44GX44GfLOOBguOBjeOCiQ0KK+OChOOBrizjgajjgoLjgobjgY0NCivjgojjgZPjgZ8s44G/44Gq44GTDQor44KI44Gt44KA44KJLOOBn+OBoOOBlw0KK+OCiOOBl+OCgOOCiSzjgbLjgo3jgb8NCivjgb7jgaTjgaAs44KI44GX44Gk44GQDQor44G744Gd44KELOOBl+OCh+OBhuOBmA0KK+OBv+OChOOBl+OBnyzjgZfjgZLjgajjgoINCivjgZfjgYws44G+44GV44G/44GkDQor44KE44G+44GgLOOChuOBhuOBhOOBoQ0KK+OBr+OChOOBlyzjgZXjgbvjgooNCivjgYTjgZHjgaAs44Gk44KI44GXDQor44GG44GI44GuLOOBi+OBmuOBn+OBiw0KK+OBleOBhOOBqOOBhizjgabjgovjgojjgZcNCivjgarjgYzjgoTjgZks44GT44GG44GYDQor44Gv44GO44GKLOOBqOOCguOBsuOBkw0KK+OBr+OBvuOBoCzjgb7jgZXjgZgNCivjgoDjgonjgYvjgb8s44Gu44KK44Gy44KNDQor44GC44G5LOOBl+OCheOCk+OBmA0KK+OBguOBjeOChOOBvizjgajjgZfjgobjgY0NCivjgYLjgpPjganjgYYs44Gm44KT44Gb44GEDQor44GC44KJ44GNLOOBl+OBkuOBv+OBpA0KK+OBguOBnSzjgY/jgavjgYvjgZoNCivjgbDjgbAs44KG44GG44GZ44GRDQor44GI44Gz44GV44KPLOOBsuOCjeOBlw0KK+OBteOBmOOBhCzjgojjgZfjga7jgooNCivjgbXjgZjjgYQs44Gf44Gk44KEDQor44G144GY44GfLOOBsuOCjeOBlw0KK+OBteOBmOOCj+OCiSzjgbLjgo3jgoANCivjgbXjgY/jgaAs44GY44KF44KTDQor44G144GP44GK44GLLOOBhOOBleOBig0KK+OBteOCi+OChCzjgajjgZfjgobjgY0NCivjgYzjgaks44Gy44GV44GXDQor44Gv44GMLOOBguOBpOOBlw0KK+OBr+OBvuOBl+OBvizjgobjgb8NCivjga/jgZss44KG44Gf44GLDQor44Gv44GX44Ga44KBLOOBquOBiuOBjQ0KK+OBpOOBoCzjgbLjgo3jgZMNCivjga/jgoTjgZcs44Go44GX44KN44GGDQor44Gy44KJ44GELOOChuOBhuOBhOOBoQ0KK+OBsuOCieOBleOBiyzjgbLjgo3jgobjgY0NCivjgbLjgo3jgo/jgZ/jgoos44Gf44GL44Gy44KNDQor44GZ44Ga44GNLOOBsuOBp+OBjQ0KK+OBu+OBneOBvyzjgbLjgo3jgYLjgY0NCivjgYTjgaAs44Gh44Gv44KLDQor44GE44GM44KJ44GXLOOChuOBjeOChA0KK+OBhOOBhOOBmOOBvizjgZ/jgZHjgZcNCivjgYTjgb7jgoDjgoks44GT44GG44GE44GhDQor44GE44KM44GELOOBvuOBleOCiw0KK+OBhOOBl+OBhCzjgajjgoLjgobjgY0NCivjgYTjgZ3jga4s44G/44Gk44Go44GXDQor44GE44Go44GGLOOCiOOBl+OBvuOBlQ0KK+OBhOOCj+OBlSzjgajjgZfjgb8NCivjgYTjgZrjgb/jgZXjgo8s44Gb44GE44GYDQor44GL44GE44GgLOOBk+OBhuOBmA0KK+OBi+OBvuOBnyzjgajjgZfjgYgNCivjgYvjgpPjgbks44Gf44GL44Gy44KNDQor44GL44Gt44GTLOOBguOBjeOCiQ0KK+OCiOOBreOCguOBoSzjgarjgYrjgZcNCivjgYvjgZ/jgYrjgYss44GL44Ga44Gy44GTDQor44GL44Go44GGLOOChOOBmeOBsuOCjQ0KK+OBi+OBqOOBhizjgobjgYbjgZgNCivjgZ/jgb7jgYzjgo8s44GT44GG44GE44Gh44KN44GGDQor44Gq44KL44GRLOOBn+OBi+OBlw0KK+OBjeOBqSzjgZ/jgYvjgbXjgb8NCivjgY3jgY/jgoks44GL44Gk44G/DQor44GN44KA44KJLOOBvuOBleOBjQ0KK+OBjeOBruOBl+OBnyzjgoTjgZnjgbLjgo0NCivjgY3jgZ/jgYLjgY0s44Gy44KN44KG44GNDQor44GT44Gw44KE44GXLOOBi+OBmuOBsuOCjQ0KK+OBk+OBsOOChOOBlyzjgajjgZfjgY0NCivjgZPjgpPjga4s44KI44GGDQor44GT44G/44KE44G+LOOCiOOBl+OBsuOCjQ0KK+OBk+OBq+OBlyzjgYLjgY3jga7jgooNCivjgZPjgoTjgb4s44Gy44KN44G/DQor44GP44Gp44GGLOOBmOOCheOCkw0KK+OBj+OCiuOChCzjgobjgYbjgYTjgaENCivjgojjgZfjgaAs44GV44Go44KLDQor44G+44GN44GuLOOBqOOBl+OBig0KK+OBvuOBleOBjSzjgbLjgafjgogNCivjgb7jgaTjgYQs44KE44GZ44Gy44KNDQor44G+44Gk44KC44GoLOOBn+OBkeOBlw0KK+OBvuOBpOOChOOBvizjgZjjgoXjgpMNCivjgb/jgZ/jgoDjgoks44GY44KF44KTDQor44G/44KP44GfLOOBquOBiuOBjQ0KK+OBv+OChOOCguOBqCzjgbLjgajjgb8NCivjgoLjgaHjgZrjgY0s44GX44KF44GG44GE44GhDQor44KC44KKLOOBvuOBleOChuOBjQ0KK+OBvuOBpOOBoCzjgZHjgpPjgZgNCivjgoLjgorjgo/jgY0s44Gu44G244KG44GNDQor44KA44KJ44GL44G/LOOBn+OBkeOBig0KK+OCgOOCieOChOOBvizjgZXjgajjgZcNCivjgarjgYzjgZfjgb4s44G/44Gh44Gu44KKDQor44GG44Gh44Ge44GuLOOBn+OBi+OBlw0KK+OBquOBi+OBmOOBvizjgbLjgo3jgYLjgY0NCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44Gq44GL44KA44KJLOOCiOOBl+OBsuOBkw0KK+OBquOBi+OBl+OBvizjga7jgorjgYoNCivjgarjgonjga/jgoks44GV44Go44GXDQor44Gr44GX44G2LOOBguOChOOBkw0KK+OBq+OBl+OCguOBqCzjgarjgYrjgZMNCivjgavjgZfjgZbjgo8s44Gg44GE44GZ44GRDQor44Gu44GY44G+LOOBruOCiuOBig0KK+OBrOOCjyzjgZ/jgZHjgZcNCivjgYrjgYzjgo8s44GR44KT44GE44GhDQor44GK44GK44GM44GNLOOBi+OBmuOBsuOCjQ0KK+OBiuOBjSzjgb7jgZXjgbLjgZMNCivjgYrjgYrjgoLjgoos44Gy44KN44GC44GNDQor44GK44GK44Gs44G+LOOBvuOBleOBig0KK+OBiuOBiuOBn+OBkSzjgZXjgYjjgZMNCivjgZXjgZPjgaAs44GX44KF44GG44GE44GhDQor44GK44GL44GgLOOBpuOBpOOBmA0KK+OBiuOBjeOBnyzjgZXjgajjgZMNCivjgYrjgYrjga4s44Gf44GL44GXDQor44GK44KK44GELOOBl+OCheOCk+OBmA0KK+OBiuOBluOCjyzjgoTjgZnjgbLjgo0NCivjgZXjgYTjgajjgYYs44GR44GE44GYDQor44GV44GL44KC44GoLOOCiOOBl+OBig0KK+OBleOBi+OBnyzjgb7jgZXjgbLjgo0NCivjgZXjgarjgY4s44KI44GX44GNDQor44GV44GV44GNLOOBquOBjOOBvuOBlQ0KK+OBleOBqOOBhizjgb7jgoLjgosNCivjgZXjgajjgYYs44Gy44Gn44GNDQor44Gb44GN44GuLOOBruOCiuOBsuOCjQ0KK+OBl+OBvuOBoCzjgYLjgaTjgZcNCivjgZfjgb/jgZos44Gf44GL44GC44GNDQor44GX44KC44GgLOOBsuOCjeOChuOBjQ0KK+OBl+OBruOBluOBjSzjgYLjgaTjgZcNCivjgZfjgofjgYbjgaAs44GR44KT44GYDQor44GZ44GM44GuLOOBsuOCjeOChuOBjQ0KK+OBmeOBjuOBleOBjSzjgojjgYbjgZMNCivjgZnjgY7jgoTjgb4s44Gf44GR44GXDQor44GZ44Ga44GNLOOBsuOBp+OChuOBjQ0KK+OBmeOBmuOBjSzjgb7jgZXjga7jgooNCivjgZ/jgZDjgaEs44GX44KTDQor44Gf44GL44Gv44GXLOOBi+OBmuOBruOCig0KK+OBn+OBi+OBr+OBlyzjgYrjgZXjgoANCivjgZ/jgYvjga/jgZcs44Gy44Gn44GNDQor44Gf44GL44KE44Gq44GOLOOBl+OBkuOCiw0KK+OBn+OBkeOBhCzjga7jgbbjgYoNCivjgZ/jgZHjgZfjgb4s44GL44Gk44GX44KN44GGDQor44Gf44KA44KJLOOBl+OCh+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgoTjgZnjgZgNCivjgZXjga4s44Gy44KN44G144G/DQor44Gm44KJ44G+44GILOOBvuOBjQ0KK+OBqOOBkOOBoSzjgZ/jgZHjgZcNCivjgajjgb/jgYQs44G+44GV44Gy44KNDQor44Go44Gj44Go44KKLOOBguOBjeOBsuOBkw0KK+OBpOOBmCzjgb7jgZXjgbLjgZMNCivjgaTjgY3jgZbjgo8s44GT44GG44GYDQor44Gk44KL44GfLOOBruOCiuOBkw0KK+OBhuOBoeOBoCzjgZfjgofjgYbjgZMNCivjgYbjgYjjgaAs44KI44GG44GZ44GRDQor44GG44GI44GuLOOBmOOCheOCk+OBmA0KK+OBiOOBjOOBl+OCiSzjgZ/jgaDjgZcNCivjgY3jgZ/jgo/jgY0s44Gb44GE44GNDQor44KP44Gf44Gq44G5LOOBn+OBi+OBlw0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgobjgY0NCivjgo/jgZ/jgonjgYQs44GY44KN44GGDQor44KE44G+44GgLOOBguOBpOOBlw0KK+OBteOBmOOBnyzjgb7jgZXjgajjgZcNCivjgoTjgb7jgoLjgags44KE44GZ44GXDQor44KE44G+44GtLOOBv+OBoeOCiw0KK+OChOOBvuOBl+OBnyzjgZfjgZLjgb8NCivjgoTjgb7jgZbjgY0s44Gf44Gg44GXDQor44KI44GgLOOBl+OCheOCk+OBmeOBkQ0KK+OCiOOBl+OBoCzjgYvjgZrjgojjgZcNCivjgojjgZfjgoDjgoks44GV44Go44KLDQor44GK44GW44KPLOOBi+OBpOOChuOBjQ0KK+OChOOBvuOBoCzjgY3jgojjgZcNCivjgZXjgZXjgY0s44Gu44G244KG44GNDQor44GC44Gc44GM44G/LOOBl+OBkuOBi+OBmg0KK+OBteOBj+OBr+OCiSzjga7jgbbjgobjgY0NCivjga/jgZfjgoLjgags44KI44GX44Gy44KNDQor44GE44Gd44GgLOOBk+OBhuOBhOOBoQ0KK+OBi+OBvuOBnyzjgZ/jgaTjgoQNCivjgY3jgoDjgoks44KI44GX44Gy44KNDQor44GT44Gw44KE44GXLOOBkuOCkw0KK+OBj+OBvuOBleOBjSzjgojjgZfjgYLjgY0NCivjgb/jgY/jgass44Go44G/44GKDQor44GI44GgLOOBn+OBi+OBlw0KK+OBreOCguOBqCzjgb7jgZXjgobjgY0NCivjgYrjga4s44Gf44GP44GYDQor44GV44GI44GNLOOBruOCiuOChuOBjQ0KK+OBm+OBjSzjgobjgY3jgYoNCivjgZnjgoTjgb4s44Gy44KN44GTDQor44Gf44Gq44GLLOOBkeOCk+OBlA0KK+OBn+OBluOCjyzjgb/jgY3jgYoNCivjgYjjgpPjgaks44GY44KF44KT44GTDQor44KE44G+44GQ44GhLOOBruOCiuOBig0KK+OChOOBmeOBoCzjgZXjgajjgZcNCivjgZnjgZrjgY0s44Gf44GR44GXDQor44Gy44KN44Gv44GXLOOChOOBmeOBig0KK+OBi+OBqOOBhizjgbLjgo3jgojjgZcNCivjgYbjgYjjga/jgb4s44G/44Gu44KLDQor44G+44Go44GwLOOBoeOBsuOCjQ0KK+OCj+OBn+OBquOBuSzjgajjgYrjgosNCivjgYvjgo/jgZfjgb4s44Gm44Gk44GKDQor44G144GY44GL44GfLOOBv+OBpOOBig0KK+OBk+OBhOOBkSzjgYrjgZXjgoANCivjgZ/jgarjgYss44KK44KH44GG44Ge44GGDQor44Gg44GR44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBj+OBl+OBs+OBjSzjgZnjgZHjgbLjgacNCivjgZnjgYzjga/jgoks44Gm44Gk44GKDQor44Gy44GM44GXLOOBteOBv+OBsuOCjQ0KK+OBu+OBiyzjgZHjgpPjgZ/jgo3jgYYNCivjgYTjgo/jgZ8s44Gf44GL44KG44GNDQor44GZ44GM44KP44KJLOOBvuOBmeOBkw0KK+OBmeOBqCzjgb7jgZXjgb8NCivjgb7jgaTjgZbjgY0s44G+44GV44Gu44KKDQor44GC44GL44G+44KLLOOBiuOBleOCgA0KK+OBguOBueOBi+OCjyzjgozjgYTjgZgNCivjgojjga3jgaAs44G+44GV44GKDQor44Gd44GM44G5LOOChuOBjeOBig0KK+OCj+OBi+OBsOOChOOBlyzjga/jgozjgYoNCivjgZnjgb/jgZ8s44Gm44Gk44KEDQor44GE44Gu44GG44GILOOBn+OBi+OCiOOBlw0KK+OBv+OChOOCguOBqCzjgaTjgajjgoANCivjgbXjgZjjgYvjgo8s44Gq44GK44GoDQor44GV44GE44Go44GGLOOBteOBv+OBig0KK+OBn+OBquOBuSzjgZHjgpPjgZgNCivjgZfjgb/jgZos44Gb44GE44GYDQor44Gu44GQ44GhLOOBl+OBkuOBguOBjQ0KK+OBi+OCj+OBquOBvyzjgb7jgZXjgYLjgY0NCivjgbXjgY/jgZfjgb4s44GC44GN44KJDQor44GK44Gg44KP44KJLOOBv+OBoeOBig0KK+OBiuOBiuOBnyzjgojjgYbjgZgNCivjgYvjgo/jga4s44Gf44Gg44KI44GXDQor44GP44Gr44KG44GNLOOChOOBmeOBsuOCjQ0KK+OBl+OBvuOBoCzjgb/jgaTjgosNCivjgZ/jgYvjgZfjgb4s44G/44Gk44GODQor44Gk44KELOOBvuOBk+OBqA0KK+OBquOBi+OBl+OBvizjgb7jgZXjgYoNCivjgoTjgY7jgZfjgZ8s44Go44GX44GKDQor44GN44GX44KC44GoLOOBvuOBk+OBqA0KK+OBj+OBkizjgZHjgpPjgZgNCivjgYLjgZXjga4s44KI44GX44GC44GNDQor44GL44KP44GL44G/LOOBpOOBreOBig0KK+OBl+OBvuOBoCzjgZfjgoXjgYbjgYTjgaENCivjgbXjgZjjgYQs44GX44KF44KT44GE44GhDQor44Gy44GMLOOBmOOCheOCk+OBjQ0KK+OBn+OBquOBuSzjgYLjgY3jgokNCivjgY/jgonjgoQs44GN44G444GEDQor44Gq44GL44GW44KPLOOBvuOBleOBsuOBqA0KK+OBguOCj+OBnyzjgZfjgZLjgosNCivjgZjjgaAs44GC44GN44GKDQor44G744Gd44GL44KPLOOBqOOBl+OBig0KK+OBl+OBtuOChCzjgojjgZfjgYvjgZoNCivjgZPjgbDjgoTjgZcs44GN44KI44GXDQor44GN44Gf44GM44KPLOOCiOOBl+OBpuOCiw0KK+OBv+OBmuOBn+OBqyzjgYLjgY3jgokNCivjgZ/jgYvjgZss44Go44GX44GKDQor44G/44KE44KA44KJLOOBqOOBiuOCiw0KK+OCiOOBk+OBr+OBnyzjgajjgZfjgbLjgZMNCivjgarjgorjgZ8s44G/44Gk44KI44GXDQor44GC44G5LOOBleOBoOOBsuOCjQ0KK+OBquOBvuOBiCzjgZHjgpPjgZgNCivjgY3jgoDjgoks44KG44Gf44GLDQor44Gq44GU44GXLOOBsuOBp+OBguOBjQ0KK+OBqOOBv+OBquOBiyzjgojjgZfjgYoNCivjgarjgYvjga4s44Gk44KC44KLDQor44GK44GK44GV44GPLOOBi+OBmuOBig0KK+OBr+OChOOBlyzjgZfjgZLjgYLjgY0NCivjgYrjgYrjgZUs44Gf44GL44GXDQor44KE44G+44GG44GhLOOBmA0KK+OBiuOBoCzjgorjgofjgYbjgZgNCivjgoHjgZDjgo0s44Gy44KN44KI44GXDQor44GL44Gq44GV44GNLOOBqOOBv+OBig0KK+OBiuOBi+OBrizjgoTjgZnjgYoNCivjgY/jgZXjgYvjgo8s44Gq44GK44GNDQor44GE44Gu44GG44GILOOBn+OBkeOBlw0KK+OChOOBoCzjgYvjgZrjgYrjgb8NCivjgb7jgaTjgYrjgYss44KG44GN44GKDQor44GZ44Ga44GNLOOChuOBhuOBmA0KK+OBn+OBjeOCguOBqCzjgY/jgavjgYoNCivjgbLjgYzjgZfjgbDjgZ8s44Gy44Gn44GKDQor44GE44GE44GgLOOBkeOCk+OBlw0KK+OBi+OCk+OBrizjgb7jgZXjgbLjgo0NCivjgZ/jgarjgYss44GX44GS44KLDQor44GE44GP44GfLOOChOOBmeOBsuOBlQ0KK+OBleOBrizjgbLjgafjgb7jgZUNCivjgZnjgYzjgo/jgoks44KE44GZ44Gy44KNDQor44Gq44GM44GfLOOChuOBjeOBig0KK+OBhuOCieOBrizjgZXjgajjgZcNCivjgZnjgY7jgoTjgb4s44GL44Gk44KG44GNDQor44GK44GL44G5LOOBteOBv+OBig0KK+OBk+OBhOOBpyzjgZ/jgYvjgZcNCivjgYTjgZfjgZ/jgass44GV44Go44GXDQor44KC44KKLOOBiOOBhOOBmA0KK+OBjeOBn+OCgOOCiSzjgZ/jgYvjgZcNCivjgYTjgo/jgb8s44KE44GZ44GKDQor44G144GL44GgLOOBn+OBi+OBlw0KK+OBhuOBiOOBoCzjgobjgYbjgZgNCivjgbXjgovjgZ/jgass44Gf44GL44G+44GVDQor44Gp44GELOOBn+OBi+OBlw0KK+OBquOBjOOBrizjgajjgZfjga7jgooNCivjgY3jgoDjgoks44GC44GN44KJDQor44GL44Gp44KELOOChuOBhuOBlA0KK+OBiuOBiuOBnyzjgY/jgavjgYoNCivjgZ/jgZHjgYbjgaEs44GR44KT44GE44Gh44KNDQor44Go44GP44KC44GoLOOBn+OBi+OBguOBjQ0KK+OBhOOBqOOBhizjgZfjgbXjgb8NCivjgoTjgb7jgZbjgY0s44Go44GN44GKDQor44GC44GK44GNLOOCiOOBl+OBvw0KK+OBoeOBjuOCiizjgYjjgYTjgZjjgo3jgYYNCivjgojjgZfjgarjgYws44Gh44GL44GIDQor44Gy44KJ44Gw44KE44GXLOOBsuOCjeOBi+OBmg0KK+OBquOBi+OBr+OCiSzjgZHjgpPjgZgNCivjgbLjgo3jgoQs44Gu44KK44Gy44KNDQor44GL44Gq44GELOOBi+OCk+OBm+OBhA0KK+OBqOOBiuOChOOBvizjgZ/jgYvjgZcNCivjgYbjga4s44GN44KT44GUDQor44GX44Gw44GfLOOBqOOBl+OBig0KK+OBjeOBn+OBjOOCjyzjgY3jga/jgaHjgo3jgYYNCivjga/jgonjgaAs44Gy44Gn44KG44GNDQor44KE44G+44KA44KJLOOBkeOCk+OBmA0KK+OBj+OBvuOBvyzjgobjgYbjgZ7jgYYNCivjgYTjgZfjgbDjgZcs44Go44GX44KG44GNDQor44GX44Gw44GfLOOBr+OCi+OBjQ0KK+OBleOBj+OChOOBvizjgYvjgZrjgYoNCivjgYTjgZHjgaAs44Gb44GE44GE44GhDQor44Gf44GR44KC44GoLOOBi+OBmuOBig0KK+OBn+OCguOBqCzjgajjgb/jgYoNCivjgZPjgoDjgo0s44KK44KH44GG44GE44GhDQor44Gf44Gq44GLLOOBvuOBleOBqOOBlw0KK+OBi+OBvuOBoCzjgbLjgo3jgZcNCivjgZ/jgbDjgZ8s44GR44GE44GE44GhDQor44Gy44KJ44GL44GfLOOBi+OBmuOBig0KK+OBn+OBkeOBhuOBoSzjgabjgaTjgYoNCivjgYTjgb7jgZos44KE44GZ44Gf44GgDQor44G144GY44GfLOOBqOOBl+OBv+OBoQ0KK+OChOOBvuOCguOBqCzjgaTjgajjgoANCivjgoTjgb7jgY0s44KG44GG44GYDQor44GX44KJ44GE44GhLOOBvuOBleOCiw0KK+OBleOBleOBjSzjgoDjgaTjgb8NCivjgb/jgoTjgYvjgo8s44G+44GV44Gf44GLDQor44GP44Gp44GGLOOBkeOBhOOBkw0KK+OBguOCieOBvuOBjSzjga7jgbbjgYoNCivjgY3jga/jgoks44Gq44GK44GNDQor44GK44GLLOOBjeOCh+OBhg0KK+OBk+OBq+OBlyzjgZfjgZLjgb8NCivjgZ/jgZHjgYbjgaEs44GV44Gh44GTDQor44Gf44Gq44GLLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBleOBi+OCguOBqCzjgb7jgoLjgosNCivjgb7jgaTjgaDjgYTjgoks44GI44GE44GYDQor44GE44GuLOOBn+OBpOOCjeOBhg0KK+OBiuOBsOOBqizjgZfjgZLjgoTjgZkNCivjgYrjgYrjgY/jgo8s44GN44KI44GXDQor44GU44Go44GGLOOBl+OCk+OBmA0KK+OBmeOBmuOBjSzjgY3jgojjgZcNCivjgavjgZfjgYrjgYss44GV44G244KN44GGDQor44GV44GV44GNLOOBsuOBp+OBig0KK+OBr+OCiSzjgYTjgY/jgYoNCivjgZvjgY0s44Gy44KN44GXDQor44GV44GE44Go44GGLOOBsuOBqOOBlw0KK+OBteOBmOOBnyzjgZfjgoXjgpPjgZnjgZENCivjgZXjgYvjgZ8s44GT44GG44GE44GhDQor44G+44GI44GW44GNLOOBhOOBleOBig0KK+OBl+OBiuOBvyzjgb/jgaTjgYoNCivjgZ/jgYvjgY/jgo8s44G+44GV44Gu44G2DQor44GE44GX44Gv44KJLOOBoeOBiOOBkw0KK+OBk+OBj+OBvCzjgZHjgYTjgZMNCivjgb/jgoTjgZbjgY0s44GX44GS44GKDQor44GC44KK44G+LOOBkeOBhOOBkw0KK+OBhuOBoeOChOOBvizjgZ/jgYvjgZcNCivjgarjgZfjgY0s44GL44GK44KLDQor44G144GY44GfLOOChuOBv+OBkw0KK+OBn+OBi+OBjuOCjyzjgYTjgZXjgoANCivjgavjgZfjgaAs44Gy44Go44GXDQor44GN44GP44GhLOOBsuOBp+OBteOBvw0KK+OBquOBi+OBhCzjgb7jgZXjgb8NCivjgYTjgYTjgaAs44KE44GZ44GXDQor44KE44G+44GQ44GhLOOBruOBtuOBsuOCjQ0KK+OChOOBrizjgobjgYbjgYTjgaENCivjgoTjgb7jgoLjgags44Gy44GV44GXDQor44G744KK44KA44GNLOOCiOOBl+OBvg0KK+OBguOBoOOBoSzjgbXjgb/jga7jgooNCivjgYbjgonjga4s44GT44GG44GE44GhDQor44Gf44GR44GgLOOBv+OBoeOBkw0KK+OBleOBhOOBqOOBhizjgbLjgo3jgaTjgZANCivjgZfjgb7jgoDjgoks44GT44GG44GYDQor44G144GP44GgLOOBpOOCiOOBlw0KK+OBjeOCgOOCiSzjgYjjgYTjgZMNCivjgoTjgb7jgoLjgags44GI44KK44GTDQor44GX44GS44KE44GZLOOBiOOBhOOBhOOBoQ0KK+OBi+OBruOBhizjgbLjgo3jgYLjgY0NCivjgZnjgo8s44G144G/44GKDQor44GK44GL44GW44GNLOOBruOCiuOBig0KK+OBteOBi+OChCzjgb7jgZXjgbLjgo0NCivjgZPjgZbjgYQs44G/44Gk44KLDQor44G744Gp44KE44G+LOOBsuOBp+OBig0KK+OBj+OBvOOBnyzjgY3jgojjgZcNCivjgYTjgYTjgZrjgYss44KK44KH44GG44GTDQor44Gf44GL44GOLOOBn+OBkeOBruOCig0KK+OBhOOCj+OBiizjgb7jgZXjgZcNCivjgYTjgZfjgYQs44GE44GV44KADQor44KP44GL44Gw44KE44GXLOOBqOOBl+OBsuOBpw0KK+OBnOOCk+OBkSzjgajjgZfjgYoNCivjgo/jgZ/jgbks44KI44GX44G/DQor44G+44Gk44KC44GoLOOBsuOCjeOBl+OBkg0KK+OBvuOCi+OChOOBvizjgZHjgYTjgZgNCivjgarjgYvjga4s44Gy44Gn44Gu44KKDQor44GK44GK44GP44G8LOOBi+OBmuOBr+OCiw0KK+OBj+OBvOOBnyzjgb7jgZXjgagNCivjgavjgZfjgYvjgo8s44Gy44KN44GXDQor44Gr44Gj44GfLOOBteOBv+OBkw0KK+OBhOOBl+OBoCzjgbLjgafjgbLjgZMNCivjgYvjgb7jgZks44GR44KT44Ge44GGDQor44GL44GS44KE44G+LOOBv+OBruOCiw0KK+OBvuOBpOOCgOOCiSzjgajjgZfjgb/jgaENCivjgZXjgZXjgY0s44GZ44GZ44KADQor44Gy44KJ44GuLOOCiOOBl+OBi+OBmg0KK+OBmeOBmuOBjSzjgYTjgaHjgo3jgYYNCivjgavjgZfjga/jgoks44GR44GEDQor44GP44KN44GE44KPLOOBn+OBi+OBlw0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgZcNCivjgZ/jgZHjgYbjgaEs44Gy44Gn44GC44GkDQor44GX44G/44GaLOOBguOBjeOBsuOBpw0KK+OBleOBn+OBkSzjgZfjgpPjgZgNCivjgZPjgZ/jgass44Gf44GP44KC44KKDQor44GT44Gn44KJLOOBvuOBleOBqA0KK+OBr+OBvuOBrizjgb/jgaHjgYoNCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44KG44GC44GVLOOBkeOCk+OBmA0KK+OBiuOBi+OBoCzjgojjgZfjgbLjgo0NCivjgZPjgbDjgoTjgZcs44KI44GX44Gv44KLDQor44G144GP44GgLOOBmOOCheOCk+OBhOOBoQ0KK+OBi+OBv+OCgOOCiSzjgZ/jgYvjgZcNCivjgYTjgb7jgaAs44G+44GV44Gy44KNDQor44Gd44GtLOOBteOBv+OBig0KK+OBv+OBruOBkOOBoSzjgojjgZfjga7jgooNCivjgY/jgaDjgarjgb8s44G+44GV44KG44GNDQor44GE44Gu44GG44GILOOBv+OBqeOCig0KK+OBhuOBiOOCgOOCiSzjga7jgbzjgosNCivjgb/jgYbjgoks44GK44GV44KADQor44GZ44GM44KP44KJLOOBleOBqOOBlw0KK+OCj+OBn+OBquOBuSzjgarjgYrjgobjgY0NCivjgavjgZfjgo/jgY0s44KI44GG44GYDQor44GK44GK44Gf44GrLOOBvuOBleOBguOBjQ0KK+OBj+OCjeOBi+OCjyzjgY3jgojjgZcNCivjgY/jgbzjgZ8s44Gu44G244GKDQor44Gf44KA44KJLOOBsuOCjeOBsuOBkw0KK+OBiOOBs+OBr+OCiSzjgY3jgYTjgaENCivjgarjgYvjgoDjgoks44KI44GG44GTDQor44KE44G+44GtLOOCiOOBl+OBqA0KK+OBguOBleOBvizjgb7jgZXjgbLjgo0NCivjgb/jgYbjgoks44KE44GZ44Gu44G2DQor44GC44KJ44GL44KPLOOBl+OCk+OBmA0KK+OBk+OBmOOBvizjgojjgZfjgYLjgY0NCivjgZXjgYvjgZ8s44GT44GG44G444GEDQor44GT44Gw44KE44GXLOOBiuOBleOBteOBvw0KK+OBiuOBjOOCjyzjgojjgZfjgYoNCivjgYvjgajjgYYs44Gf44GL44KG44GNDQor44G/44Gk44GELOOBkeOBhOOBhOOBoQ0KK+OBpuOBl+OBvizjgYvjgZrjgb7jgZUNCivjgYLjgZ0s44Gy44KN44GE44GhDQor44KC44KK44KELOOBsuOBqOOBlw0KK+OChOOBqizjgYvjgZrjgYoNCivjgZXjgYTjgajjgYYs44Gy44KN44KG44GNDQor44GE44Gh44GNLOOBsuOCjeOBlw0KK+OBiuOBiuOBnyzjgbLjgo3jgZcNCivjgbvjgorjgYbjgaEs44GR44GE44GE44GhDQor44Gf44Gr44GQ44GhLOOCiOOBl+OBig0KK+OBq+OBl+OBrizjgZ3jgYbjgYTjgaHjgo3jgYYNCivjgbXjgovjga/jgZcs44GT44GG44Ge44GGDQor44GC44GN44GfLOOBqOOBl+OBig0KK+OBiuOBj+OBl+OBvizjgZ/jgYvjgZcNCivjgYrjgYrjgZ/jgass44Gf44Gg44Gy44KNDQor44GL44KB44GK44GLLOOCiOOBl+OBig0KK+OBr+OCieOBiuOBiyzjgYvjgaTjgoTjgZkNCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44GC44KJ44GX44G+LOOChuOBjeOBig0KK+OBquOBjOOBleOCjyzjgojjgZfjgo3jgYYNCivjgoTjgb7jgYrjgYss44GN44KI44GXDQor44Gv44GbLOOBvuOBleOBi+OBpA0KK+OBjeOBl+OCguOBqCzjgY/jgavjgYoNCivjgZnjgZrjgY0s44KI44GX44GKDQor44GL44KB44KELOOBi+OBpOOBvw0KK+OBvuOBmeOBoCzjgb7jgZXjga/jgosNCivjgYjjgpPjgaks44GR44KT44GE44GhDQor44GV44GP44KJ44GELOOBn+OBi+OBguOBjQ0KK+OBteOCi+OBl+OCh+OBhizjgbXjgZjjgYoNCivjgYbjgZfjgY0s44GL44Ga44G/DQor44GT44GE44GRLOOBsuOCjeOBlw0KK+OBqOOBhuOBvizjgZXjgaHjgbLjgo0NCivjgarjgYvjgZbjgags44Gy44KN44GXDQor44KE44G+44GK44GLLOOCiOOBl+OBruOBtg0KK+OBquOBi+OBrSzjga7jgbbjga/jgosNCivjgajjgb/jgZ8s44Gu44KK44GL44GaDQor44GV44Go44KA44KJLOOBkeOBhOOBmA0KK+OBsuOBleOBvuOBpCzjgajjgojjgajjgZcNCivjgYrjgYzjgo8s44G+44GV44GoDQor44GV44GL44GELOOBn+OBkeOBlw0KK+OBquOBi+OBjizjgobjgb8NCivjgZXjgo/jgZDjgaEs44G+44GV44GP44GrDQor44G+44Gk44KC44GoLOOBqOOBl+OBig0KK+OBteOCi+OBi+OCjyzjgZPjgYbjgYTjgaENCivjgbXjgZ/jgb8s44GN44KI44GXDQor44Gf44Gq44GLLOOBteOBj+OCgA0KK+OBsuOBs+OBrizjgbLjgo3jgZcNCivjgZnjgarjga/jgoks44GX44KH44GG44GYDQor44GE44GR44GgLOOBn+OBi+OBlw0KK+OBlOOBqOOBhizjga7jgbbjgobjgY0NCivjgYTjgZfjga4s44Gk44Go44KADQor44GN44KA44KJLOOBl+OBkuOCiw0KK+OChOOBvuOBoCzjgb/jgaTjgYoNCivjgoLjgorjgoLjgags44G+44GV44KLDQor44GK44GL44KC44GoLOOBvuOBpOOBig0KK+OBquOBi+OBmOOBvizjgZXjgYvjgYgNCivjgY3jgZ/jgoDjgoks44G+44GZ44G/DQor44Gq44GL44GE44GXLOOBn+OBkeOChuOBjQ0KK+OCj+OBlSzjgbLjgafjgYoNCivjgZPjgZfjgoDjgoks44G+44GV44GXDQor44Gy44Gq44GfLOOBjeOCh+OBhuOBuOOBhA0KK+OBquOBi+OCgOOCiSzjga7jgbbjgYoNCivjgbXjgY/jgYQs44Gf44Gk44Gy44GTDQor44Gf44GL44GgLOOBi+OBmuOBig0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgavjgZfjgoTjgb4s44G+44GV44Gy44KNDQor44Gq44GL44KE44G+LOOBn+OBi+OChOOBmQ0KK+OBr+OCiuOBjOOChCzjgbLjgo3jgYLjgY0NCivjgb7jgZnjgoLjgags44KI44GX44GKDQor44Gm44KJ44Gr44GXLOOBvuOBleOBruOBtg0KK+OBquOBjOOBj+OBvCzjgYrjgZXjgoANCivjgojjgZfjga4s44Gf44GL44GXDQor44KC44KK44GfLOOBruOBvOOCiw0KK+OBpuOCieOBiizjgb/jgaTjgbLjgo0NCivjgojjgZfjgoDjgoks44GN44KI44GYDQor44KP44Gf44Gq44G5LOOBkeOCk+OBmA0KK+OBvuOBpOOCguOBqCzjgY3jgojjgZcNCivjgYrjgZbjgY0s44KI44GX44GC44GNDQor44Gy44GQ44GhLOOBteOBmOOBjQ0KK+OBv+OChOOCguOBqCzjgb/jgZXjgYoNCivjgoTjgb7jgZDjgaEs44G+44GZ44G/DQor44KE44G+44KC44GoLOOBiOOBpOOBkw0KK+OBi+OBqOOBhizjgZPjgYbjgYTjgaENCivjgarjgYvjgYQs44GL44Ga44G/DQor44G144GY44GfLOOBsuOCjeOBlw0KK+OBmeOBjOOCj+OCiSzjgZPjgYbjgZjjgofjgYYNCivjgYTjgZfjgZbjgY0s44Gf44GL44KG44GNDQor44Gf44Gk44G/LOOCiOOBl+OBguOBjQ0KK+OBquOBi+OBl+OBnyzjgb7jgZPjgagNCivjgYrjgZjjgb4s44Gy44KN44GC44GNDQor44GC44GV44GX44GfLOOBvuOBleOBteOBvw0KK+OBu+OCiuOBhCzjgb/jgojjgZcNCivjgYTjgoos44GR44KT44GE44GhDQor44G144GY44G+44GNLOOBn+OBoOOBguOBjQ0KK+OBi+OBmOOCj+OCiSzjgZfjgoXjgYbjgYTjgaENCivjga/jgZvjgYzjgo8s44G/44Gk44GKDQor44G144Gq44KE44G+LOOBiOOBpOOBig0KK+OBjeOBr+OCiSzjgZ/jgYvjgZcNCivjgZ/jgZHjgaAs44GR44GE44GTDQor44GE44GE44GgLOOBi+OBquOBiA0KK+OBteOCi+OBqSzjgb7jgZXjgYoNCivjgoLjgoos44GX44KF44GG44GE44GhDQor44G144GP44GoLOOBquOBiuOChA0KK+OBiuOBiuOBr+OBlyzjgYLjgY3jgbLjgagNCivjgYLjgYrjgY0s44Gy44Gn44GXDQor44Gf44GY44G+LOOBsuOCjeOBlw0KK+OBiuOBiuOBpOOBiyzjgajjgoLjgbLjgo0NCivjgYLjgYrjga4s44GY44KT44GE44GhDQor44GE44Gu44GG44GILOOBsuOBqOOBlw0KK+OBiOOCk+OBqSzjgb7jgZXjgbLjgo0NCivjgbLjgo3jgZss44KI44GX44GL44GkDQor44GI44KT44GpLOOBguOBjeOBig0KK+OBi+OCj+OBhCzjgb/jgaHjgosNCivjgYLjgYTjgZbjgo8s44G144Go44GXDQor44GT44GE44Gf44Gw44GXLOOBjeOCiOOBsuOCjQ0KK+OBleOBqOOBhizjgoTjgZnjgbLjgo0NCivjgYvjga7jgYYs44GX44GS44GNDQor44GG44GI44KA44KJLOOBvuOBleOBqOOBlw0KK+OBmeOBv+OCiOOBlyzjgbLjgafjgYoNCivjgbLjgo3jgZ8s44GV44Go44KLDQor44GE44Gq44Go44G/LOOBi+OBmuOCiOOBlw0KK+OBhOOBqOOBhizjga7jgorjgYvjgaQNCivjgY/jgbws44Gy44Gn44GC44GNDQor44GL44G244KJ44GOLOOBqOOBl+OBsuOCjQ0KK+OBhOOBkeOBoCzjgojjgZfjga7jgooNCivjgZ/jgYvjga/jgZcs44GL44Ga44GKDQor44GV44GL44GELOOBvuOBleOBsuOCjQ0KK+OBi+OBqOOBhizjgoTjgZnjgY/jgasNCivjgZ/jgZHjgYQs44KE44GZ44KG44GNDQor44Gv44KT44GgLOOBqOOBiuOCiw0KK+OBquOBjOOChCzjgYvjgaTjgb8NCivjga/jgaPjgajjgoos44Gy44KN44Gu44KKDQor44GX44G/44GaLOOCiOOBl+OBquOBig0KK+OBhOOBvuOBq+OBlyzjgb7jgZXjgagNCivjgY/jgb7jgbks44G+44GV44GKDQor44G+44Gh44GgLOOBpOOBi+OBlQ0KK+OChOOBjizjgaHjga/jgosNCivjgYrjgaDjgb4s44KG44GN44GKDQor44GN44Gf44GY44G+LOOBmOOCheOCk+OBkw0KK+OBn+OBoeOBsOOBqizjgZ/jgY/jgo3jgYYNCivjgbXjgZjjgoLjgags44GX44KF44GG44GYDQor44G/44Ga44GuLOOBhOOBj+OBig0KK+OBiOOBkOOBoSzjgYvjgaTjgb8NCivjgYvjgo/jgbks44GV44Gk44GTDQor44Gq44GL44KA44KJLOOBoeOBguOBjQ0KK+OBguOBmeOBvizjgY3jgojjgYvjgZoNCivjga/jgoDjgoks44Gk44Go44KADQor44GE44Go44GGLOOChuOBhuOBmA0KK+OBhOOBkeOBluOBjSzjgZ/jgZHjgZcNCivjgoTjgb7jgZXjgY0s44Gu44KK44KG44GNDQor44Gr44GX44GW44KPLOOBneOBhuOBmA0KK+OBq+OCjyzjgYjjgYTjgbLjgZMNCivjgb/jgYbjgoks44Gy44GV44GXDQor44GL44Gf44GK44GLLOOBguOBkeOBvw0KK+OBr+OChOOBlyzjgb7jgY3jgZMNCivjgb/jgZXjgY0s44Gf44GR44GXDQor44GK44Gg44GP44KJLOOBsuOCjeOBv+OBoQ0KK+OBteOBl+OBvyzjgaHjgYvjgagNCivjgbLjgo3jgZ8s44Gf44GL44GXDQor44Gv44Gf44KELOOBqOOBl+OChuOBjQ0KK+OBleOBi+OBhCzjgobjgYbjgZgNCivjgYTjgaAs44GE44Gh44KN44GGDQor44GV44Go44GGLOOBn+OBoOOBlw0KK+OBu+OBl+OBrizjga7jgbzjgosNCivjgYrjgYzjgo8s44Gq44Gk44GC44GNDQor44G144GP44GW44GoLOOCiuOCheOBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgZvjgYTjgZgNCivjgZXjgZXjgY0s44GN44KH44GG44GTDQor44GK44Ga44GhLOOBv+OBpOOBig0KK+OBteOCjeOCguOBqCzjgb/jga7jgosNCivjgavjgZfjgoDjgoks44GX44KT44KEDQor44Gf44GR44GgLOOBqOOBv+OBkw0KK+OBn+OBkeOBqOOBvyzjgZPjgYbjgYTjgaENCivjgYrjgYvjgaAs44G/44Gh44GKDQor44G+44GoLOOBi+OBmuOChuOBjQ0KK+OBmeOBmuOBjSzjgYLjgY3jgojjgZcNCivjgoDjgYvjgYQs44KI44GG44GE44GhDQor44GT44GMLOOChOOBmeOBig0KK+OBi+OBqOOBhizjgYvjgZrjgb8NCivjgojjgZPjgYQs44G144G/44Go44GXDQor44GG44GX44GU44KBLOOBvuOBleOBn+OBiw0KK+OBk+OBvuOBpCzjgojjgZfjgZ/jgYsNCivjgYTjgajjgYYs44Gy44GV44GC44GNDQor44GV44Go44GGLOOBl+OCheOCk+OBmeOBkQ0KK+OBsuOCjeOBmyzjga7jgorjgojjgZcNCivjgZTjgb8s44GY44KF44KTDQor44Gf44Gq44GLLOOBn+OBpOOBig0KK+OBvuOBpOOCguOBqCzjgZ/jgYTjgYTjgaENCivjga/jgoTjgZcs44Gb44GE44GYDQor44Gf44GL44Gv44GXLOOBi+OBpOOBsuOCjQ0KK+OBguOCieOBhCzjgajjgZfjgobjgY0NCivjgbvjgZcs44GN44KI44GXDQor44Gm44KJ44GgLOOBl+OBkuOCiw0KK+OBhOOBmuOBryzjga/jgovjgYoNCivjgZnjgarjgaAs44KE44GZ44GY44KN44GGDQor44GE44GY44G+LOOBteOBv+OBig0KK+OBn+OBi+OBoCzjgajjgZfjga/jgosNCivjgo/jgYvjgb7jgaQs44GT44GG44GYDQor44Gk44GgLOOBqOOBl+OChuOBjQ0KK+OBu+OBl+OBj+OBvizjgb7jgZXjga/jgosNCivjgbvjgpPjgaAs44Gy44KN44G/DQor44GL44G+44GgLOOBiOOBhOOBmA0KK+OBr+OChOOBlyzjgb/jgaTjgbLjgo0NCivjgYTjgb7jgYQs44Gf44Gk44KLDQor44Gk44Gh44KELOOBhOOBmuOBvw0KK+OCj+OBoCzjgYTjgY/jgagNCivjgojjgZfjgaAs44GN44G/44Gy44KNDQor44Gg44GmLOOBmOOCheOCkw0KK+OBr+OBmeOBkyzjgojjgZfjga7jgooNCivjgZ/jgZHjgarjgYss44Gy44KN44GC44GNDQor44GK44GP44GgLOOBi+OBmuOBig0KK+OBu+OBlyzjgobjgYbjgZnjgZENCivjgYvjgoHjgaAs44GL44GK44KLDQor44Gy44GX44Gs44G+LOOBsuOCjeOBteOBvw0KK+OBiuOBiuOBq+OBlyzjgbLjgo3jgYLjgY0NCivjgZXjgajjgYYs44G+44GV44GC44GNDQor44G744Gd44GL44KPLOOBguOBjeOCiQ0KK+OCiOOBl+OBluOCjyzjgbLjgafjgYoNCivjga/jgonjgaAs44KI44GX44Gf44GLDQor44GV44GV44GNLOOBqOOCguOChuOBjQ0KK+OBhOOBhOOBoCzjgbLjgafjgb8NCivjgY3jgYzjgo8s44GT44GG44GE44GhDQor44GE44GR44GKLOOBsuOCjeOChuOBjQ0KK+OBguOCieOBhCzjgoTjgZnjgYoNCivjgYvjgY3jgYvjgo8s44GY44KF44KT44GE44GhDQor44GU44Go44GGLOOBj+OBq+OBqOOBlw0KK+OBv+OChOOBk+OBlyzjgoTjgZnjgYgNCivjgbXjgZjjgZ8s44GC44Gk44G/DQor44GP44KJ44GfLOOBsuOCjeOChuOBjQ0KK+OCguOCiuOBiuOBiyzjgobjgb/jgZMNCivjgoTjgb7jgYbjgoks44KE44GZ44KI44GXDQor44GP44KN44GvLOOCiOOBhuOBkw0KK+OBhOOBmuOBr+OCiSzjgarjgYrjgYvjgZoNCivjgZfjgZLjgajjgoEs44KI44GX44GC44GNDQor44Gr44GXLOOChOOBmeOBteOBvw0KK+OBguOBjeOChOOBvizjgajjgb/jgYoNCivjgYTjgZHjgaAs44GL44Ga44GN44GhDQor44KC44KKLOOChOOBmeOBvw0KK+OBsuOCjeOBi+OCjyzjgobjgYbjgZgNCivjgZ3jgoHjgoQs44GC44GN44GKDQor44GV44GP44KJ44GELOOBiOOBv+OBkw0KK+OBv+OBmuOBrizjgYTjgZXjgoANCivjgabjgonjgaAs44Go44GX44GL44GaDQor44Gy44KJ44G+44GkLOOBl+OBkuOCiw0KK+OBiuOBiuOBnyzjgZTjgo3jgYYNCivjgbLjgonjgb7jgaQs44GI44Gk44GKDQor44Gr44GX44GgLOOChuOBjeOBig0KK+OCgOOCieOBnyzjgbLjgafjgobjgY0NCivjgb/jgZrjgZPjgZcs44GR44KT44GE44GhDQor44Go44G/44GfLOOBn+OBi+OBig0KK+OBi+OCj+OBvyzjgZvjgYTjgYTjgaENCivjgZfjgYTjga4s44GX44GS44GKDQor44Gq44GL44KA44KJLOOBruOBtuOBig0KK+OBhOOBl+OBi+OCjyzjgZPjgYbjgYTjgaENCivjgYvjga3jgZ/jgZEs44GL44Gq44KBDQor44GK44GX44GSLOOBn+OBhOOBoQ0KK+OBk+OBmOOBvizjgobjgYbjgZ7jgYYNCivjgajjgbAs44G+44GT44GoDQor44GE44KP44GfLOOBsuOBp+OBguOBjQ0KK+OBiuOBrizjgZHjgpPjgZgNCivjgZPjgZXjgYss44Gy44GV44Gf44GRDQor44GL44KT44GuLOOBguOBjeOBig0KK+OBhOOBqOOBhizjgajjgZfjgaTjgZANCivjgZ/jgYvjgY4s44G/44Gh44GTDQor44Gf44GL44GuLOOBl+OCk+OBhOOBoQ0KK+OBhOOBquOBjOOBjSzjgabjgaTjgYoNCivjga7jgZbjgY0s44GY44KF44KTDQor44Gf44GR44GgLOOBteOBv+OBkw0KK+OBlOOBqOOBhizjgZfjgpPjgZgNCivjgbvjgorjgYvjgo8s44GL44Ga44Gy44KNDQor44GZ44GO44KC44GoLOOCiuOCh+OBhg0KK+OBguOCieOBhCzjgZvjgYTjgZgNCivjgbXjgZjjgo/jgoks44Gy44Gn44GZ44GODQor44KI44GX44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBiuOBl+OBvizjgZ/jgZHjgZcNCivjgZTjgajjgYYs44Gg44GE44GY44KN44GGDQor44GE44Ga44G/44GV44KPLOOCiOOBl+OBqOOCgg0KK+OBhOOCj+OBtuOBoSzjgb7jgZXjgaTjgZANCivjgYTjgb7jgY3jgZ8s44GX44KH44GG44GYDQor44KA44KJ44GfLOOBl+OCh+OBhuOBkw0KK+OBl+OCguOBrizjgYvjgZrjgbLjgo0NCivjgZTjgYvjgYTjgaEs44GT44GG44GYDQor44KE44G+44KC44GoLOOBruOBvOOCiw0KK+OBquOBjOOBl+OBvizjgZjjgo3jgYYNCivjgb/jgZfjgb4s44KI44GX44Gy44KNDQor44KE44GZ44Gq44GMLOOBi+OBpOOBvw0KK+OBiuOBteOBoSzjgZjjgo3jgYYNCivjgZPjgoDjgYvjgYQs44GN44KI44G/DQor44Gq44GM44GV44KPLOOBn+OBhOOBm+OBhA0KK+OBjeOBn+OBiuOBiyzjgYvjgZrjgbLjgZMNCivjga/jgoks44GL44Ga44KEDQor44G144GL44GgLOOBruOCiuOBteOBvw0KK+OBjeOBn+OBjOOCjyzjgZ/jgYvjgYLjgY0NCivjgYrjgYrjgoLjgoos44KM44GE44GTDQor44Gv44G244GhLOOBsuOBp+OBi+OBmg0KK+OBv+OChOOBluOBjSzjgbLjgo3jgoANCivjgZfjgo3jgZ8s44G+44GV44KG44GNDQor44GT44G/44KELOOBk+OBhuOBmA0KK+OBpuOCieOBiizjgZjjgo3jgYYNCivjgavjgZfjgZDjgaEs44Go44GX44GC44GNDQor44GL44Gt44Ga44GLLOOBsuOCjeOBguOBjQ0KK+OBmeOBjuOChOOBvizjgabjgaTjgZgNCivjgZ/jgaHjgbDjgarjgY0s44Gv44KL44GC44GNDQor44KC44KK44GK44GLLOOBvuOBleOBi+OBmg0KK+OCiOOBruOCguOBqCzjgbLjgafjgY0NCivjgY/jgZnjgaAs44GL44Ga44GE44GhDQor44GC44KK44KE44GZLOOBiOOBpOOBig0KK+OBpOOBmOOCguOBqCzjgbLjgZXjgagNCivjgbXjgYvjgb8s44GY44KF44KT44GE44GhDQor44GC44GN44KE44G+LOOBjeOCiOOBlw0KK+OCguOBoeOBmuOBjSzjgojjgZfjgZ/jgYsNCivjga7jgoDjgoks44GX44KF44KT44GYDQor44KP44GgLOOBjeOCiOOBlw0KK+OBiuOBoSzjgbLjgo3jgZcNCivjgoDjgonjgb7jgaQs44Gh44GI44GTDQor44KE44GuLOOBiuOBleOCgA0KK+OCguOBoeOBmuOBjSzjgY3jgojjgZcNCivjgbLjgonjgZ8s44Gq44GK44GNDQor44KP44GL44G+44GkLOOBqOOBl+OBleOBoA0KK+OBleOBi+OCguOCiizjgYvjgojjgZMNCivjgZPjgbDjgoTjgZcs44GC44GN44Gy44GTDQor44GE44G+44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBiuOBiuOBmeOBjCzjgYvjgYjjgacNCivjgZ/jgYvjgoTjgb4s44Gf44GL44Go44KJDQor44GN44Gf44G/LOOBsuOCjeOBsuOBpw0KK+OBvuOBiOOBoCzjgZ/jgYjjgZMNCivjgajjgoLjga4s44GR44KT44GE44GhDQor44GL44G244KJ44GOLOOBvuOBleOChuOBjQ0KK+OBreOBjuOBlyzjgZHjgYTjgZ7jgYYNCivjgo/jgaAs44KG44G/44GTDQor44GZ44Ga44GNLOOChOOBmeOChuOBjQ0KK+OBleOBquOBiCzjgYvjgZrjgb7jgZUNCivjga4s44Gf44Gk44KEDQor44GE44GX44Gw44GXLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOBl+OBnyzjgaTjga3jgYoNCivjgZnjgZrjgY0s44GL44Ga44Gy44KNDQor44G/44KE44KP44GNLOOBqOOBl+OBsuOBkw0KK+OBvuOBpOOBhuOCiSzjgojjgZfjgYLjgY0NCivjgY3jgZ/jgoTjgb4s44KI44GX44Gy44KNDQor44KE44G+44GQ44GhLOOBmOOCheOCk+OBmA0KK+OBq+OBl+OChOOBvizjgYvjgaTjgZgNCivjgYvjgo/jgbDjgZ8s44G+44GV44Gy44GTDQor44G/44GL44G/LOOBmOOCheOCkw0KK+OBmeOBjuOChOOBvizjgYTjgZXjgYoNCivjgY3jgZjjgb4s44Gu44KK44GKDQor44Gy44GM44GXLOOBl+OCheOBhuOBmA0KK+OBguOBuSzjgb7jgZXjgagNCivjgYTjga7jgYbjgYgs44KI44GG44GTDQor44G144GL44GgLOOBguOBjeOBig0KK+OCgOOCieOBvuOBpCzjgZjjgoXjgpMNCivjgbLjgonjgbDjgoss44Gf44GR44GKDQor44Gh44KH44GG44Gq44KTLOOCiOOBl+OBvuOCjQ0KK+OBi+OCj+OCgOOCjSzjgZXjgajjgZcNCivjgaTjgY/jgaAs44G/44Gu44KLDQor44G/44KE44KC44GoLOOBqOOBl+OBsuOCjQ0KK+OBmeOBiOOBsuOCjSzjgZjjgoXjgpPjgYTjgaENCivjgZfjgonjgYvjgo8s44GT44GG44GYDQor44Gf44Gq44GLLOOBkeOBhOOBlw0KK+OChOOBmeOBhCzjgojjgZfjga7jgbYNCivjgY3jgoDjgoks44GL44Gk44GTDQor44Gq44GL44GM44KPLOOBi+OBpOOCiOOBlw0KK+OBj+OBleOBrizjgajjgZfjgbLjgo0NCivjgYLjgaDjgaEs44KI44GX44Gy44KNDQor44Gq44GL44Go44KCLOOCgOOBpOOBvw0KK+OBvuOBmeOCguOBqCzjgaTjgajjgoANCivjgo/jgZ/jgazjgY0s44KE44GZ44Gy44KNDQor44Gf44GL44Gv44GXLOOBi+OBpOOBmA0KK+OBk+OBvOOCiizjgb/jgY3jgYoNCivjgYrjgYzjgo8s44GT44GG44GE44GhDQor44G144GY44KC44KKLOOBv+OBjeOBig0KK+OBhOOBr+OCiSzjgYjjgb8NCivjgo/jgZ/jgarjgbks44KG44GG44GTDQor44GG44KJ44G5LOOBhOOBleOCgA0KK+OBv+OBhuOCiSzjgb/jgaTjgosNCivjgarjgYvjgYQs44GR44GE44GE44GhDQor44KP44KJ44GX44GqLOOBl+OBkuOCiw0KK+OBteOBj+OBquOBjCzjgojjgZfjgYvjgZoNCivjgYrjgYrjgaTjgbws44KI44GX44GC44GNDQor44KI44GX44GgLOOBv+OBruOCiw0KK+OBr+OChOOBvyzjgYvjgaTjgbLjgZMNCivjga7jgoDjgoks44G+44GV44GL44GaDQor44Gy44KJ44GELOOCiOOBl+OChuOBjQ0KK+OBl+OBvuOBoCzjgb7jgZXjgYgNCivjgZnjgZrjgY0s44Gq44GK44Go44GXDQor44Gm44KJ44GX44G+LOOBjeOBv+OBsuOBkw0KK+OBl+OBmuOBr+OCiSzjgozjgYTjgZMNCivjgoTjgb7jgajjgoQs44GL44Ga44Gy44GTDQor44GK44GO44GuLOOBsuOCjeOBig0KK+OBvuOBpOOBkOOBvizjgZfjgZLjgbsNCivjgY3jgZ/jgYQs44Go44GX44Gy44GTDQor44GC44GL44GgLOOBl+OBmuOBig0KK+OBn+OBkeOCiOOBlyzjgZvjgYTjga7jgZnjgZENCivjgbLjgo3jga4s44Gd44GK44GY44KDDQor44GX44G+44KA44KJLOOBqOOBvuOBlQ0KK+OCiuOCheOBhuOBlCzjgZfjgoXjgpPjgYTjgaENCivjgY/jgavjgYjjgaAs44G+44GN44GKDQor44GK44GK44Gk44GLLOOBu+OBk+OBjw0KK+OBhOOBkeOBjOOBvyzjgbLjgafjgajjgZcNCivjgYvjga3jgb7jgaQs44GL44Gt44Gy44GnDQor44GK44GK44GM44KP44KJLOOCiOOBl+OBruOBtg0KK+OBmeOBmuOBjSzjgZ/jgYvjgZcNCivjgabjgonjgaAs44Gb44Gk44GTDQor44GL44KP44GV44GNLOOBpuOBpOOBmA0KK+OBiuOBl+OChOOBvizjgojjgZfjgbLjgZUNCivjgYvjgo/jgYvjgb8s44GX44GS44GNDQor44Gq44GL44KA44KJLOOBqOOBl+OBguOBjQ0KK+OBv+OBn+OBqyzjgajjgZfjgbLjgZMNCivjgZPjgb7jgaQs44Gy44KN44Gf44GLDQor44GC44GL44GE44KPLOOBqOOBl+OBsuOBkw0KK+OBhOOBoeOBhCzjgbXjgb/jgoQNCivjgbXjgY/jgoTjgb4s44G+44GV44GC44GNDQor44GP44Gp44GGLOOCiOOBl+OBpuOCiw0KK+OBvuOBpOOBl+OBnyzjgZfjgpPjgZgNCivjgavjgZfjgYvjgo8s44KG44GN44Gy44KNDQor44GC44G+44GM44G/LOOBl+OCkw0KK+OChOOBl+OBjSzjgYLjgYTjgYTjgaHjgo3jgYYNCivjgo/jgaAs44GC44Gk44GTDQor44G+44GZ44GgLOOBqOOCguOBkw0KK+OCiOOBl+OCgOOCiSzjgobjgYbjgZgNCivjgYrjgaAs44GX44KT44GYDQor44KI44GT44KE44G+LOOBn+OBi+OBteOBvw0KK+OBhOOBqOOBhCzjgobjgorjgZMNCivjgZnjgZrjgY0s44GL44Gk44Gy44KNDQor44Gq44GM44Gv44G+LOOBsuOCjeOChuOBjQ0KK+OChOOBluOBjSzjgabjgYTjgZ7jgYYNCivjgoTjgZjjgb4s44GN44KI44GXDQor44KA44GL44GI44GgLOOBleOBqOOCiw0KK+OBquOBi+OCgOOCiSzjgZ/jgaTjgYLjgY0NCivjgoTjgb7jgoDjgoks44GT44GG44GE44GhDQor44Gu44KC44GoLOOBqOOBl+OChuOBjQ0KK+OChOOBvuOBluOBjSzjgajjgZfjgbLjgZMNCivjgZXjgajjgYYs44Go44GX44KEDQor44GE44Gu44GG44GILOOBsuOCjeOChuOBjQ0KK+OBiuOBi+OBrizjgbLjgafjgYoNCivjgarjgYvjgavjgZcs44Gv44KL44Gy44GVDQor44GG44GI44GgLOOBsuOCjeOBvw0KK+OBguOBhOOBluOCjyzjgYLjgY3jgYoNCivjgYLjgonjgYQs44Go44KC44Gq44KKDQor44Gq44GM44GE44GXLOOBi+OBpOOBvw0KK+OBr+OBk+OBhCzjgb7jgZXjgYoNCivjgY/jgZnjgoLjgags44Gf44GL44KI44GXDQor44GC44KK44Go44G/LOOBmOOBpOOCjeOBhg0KK+OBr+OCiSzjgZ/jgb/jgYoNCivjgbvjgpPjgb4s44G+44GV44Gv44KLDQor44Gv44GX44KC44GoLOOBv+OBoeOBr+OCiw0KK+OBr+OBl+OCguOBqCzjgb7jgZXjgYoNCivjgYrjgYrjgazjgb4s44GE44GV44GKDQor44Gv44Gq44GNLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBr+OBl+OCguOBqCzjgYLjgY3jgZMNCivjgZXjgY/jgonjgZbjgo8s44Gy44Gn44Go44GXDQor44GC44GL44GOLOOChOOBmeOBsuOBqA0KK+OBguOBjeOBmuOBjSzjgb7jgZXjgajjgZcNCivjgYLjgpPjganjgYYs44Gy44KN44GNDQor44GC44KJ44GELOOBn+OBvuOBig0KK+OBguOBleOCgOOCiSzjgYvjgaTjgb8NCivjgaHjgbAs44GC44GTDQor44GI44GQ44GhLOOChuOBjeOBn+OBiw0KK+OBteOBoeOBrizjgajjgYrjgosNCivjgbXjgZjjgb7jgoss44Gy44GV44GoDQor44G144GY44GV44KPLOOBruOCiuOBig0KK+OBteOBi+OBoCzjgbXjgb/jgbLjgo0NCivjgbXjgY/jgYQs44Gy44KN44GXDQor44G144GP44Go44G/LOOCiuOCheOBhuOBleOBjw0KK+OBjuOBvizjgYvjgZrjgojjgZcNCivjga/jgY7jgo/jgoks44GE44Gh44KN44GGDQor44Gv44KJLOOBjeOCiOOBn+OBiw0KK+OBr+OCi+OBqizjgZ/jgYvjgYLjgY0NCivjga/jgaTjgb8s44GC44Ga44GVDQor44Gv44KE44GbLOOBl+OCk+OBlA0KK+OBr+OChOOBpCzjgbLjgo3jgZcNCivjgbLjgonjgYrjgYss44G+44KG44G/DQor44Gy44KN44GXLOOBruOBtuOBkw0KK+OBu+OBl+OBkyzjgb7jgZXjgbLjgo0NCivjgYTjgaHjgYvjgo8s44G+44GV44KLDQor44GE44GM44KPLOOBjeOCiOOBlw0KK+OBhOOBhOOBmuOBiyzjgYLjgorjgZUNCivjgb/jgaTjgoLjgags44Gy44KN44Gf44GLDQor44GE44G+44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBhOOBquOBvyzjgbLjgo3jgb/jgaENCivjgYTjga7jgYbjgYgs44Gf44GR44GXDQor44GE44GbLOOChuOBjeOBig0KK+OBmeOBjuOBr+OCiSzjgbLjgo3jgZ/jgYsNCivjgYTjgZfjgoLjgags44GR44KT44GYDQor44GE44GX44Ga44GLLOOBqOOBiuOCiw0KK+OBhOOBqOOBhizjgojjgYbjgZgNCivjgYvjgb/jgYvjgo8s44Gf44Gg44G/44GkDQor44GE44KP44GV44GNLOOBkeOBhOOBkw0KK+OBhOOBmuOBvyzjgb/jgo8NCivjgYvjgb7jgaAs44Gf44GL44Gy44KNDQor44Gf44GR44GG44GhLOOBv+OBjQ0KK+OBruOCgOOCiSzjgYjjgb/jgZMNCivjgYvjgZ/jga4s44Gm44KL44Gy44GVDQor44GL44Go44GGLOOBn+OBi+OBlw0KK+OBi+OCj+OBoCzjgbLjgo3jgobjgY0NCivjgYTjgZfjgYQs44KE44GZ44GNDQor44GL44KP44GX44G+LOOBiOOBhOOBkw0KK+OBjeOBj+OBi+OCjyzjgobjgYvjgooNCivjgY3jgZcs44Gf44GP44GXDQor44GT44Gw44KE44GXLOOBpuOBpOOChA0KK+OBk+OBsOOChOOBlyzjgYvjgZrjgbLjgZMNCivjgZPjgoTjgb4s44GC44GN44KJDQor44GT44GP44G8LOOCiOOBhuOBkw0KK+OBk+OCk+OBqSzjgb/jgYgNCivjgZPjgZfjgYos44G+44GV44Go44GXDQor44GP44G8LOOBpOOBqOOCgA0KK+OBu+OBl+OBrizjgajjgZfjgoQNCivjgY/jgZXjgYvjgo8s44GR44GE44GE44GhDQor44GP44GZ44G/LOOChuOBn+OBiw0KK+OBvuOBjeOBrizjgaHjgbLjgo0NCivjgb7jgovjgoTjgb4s44G+44GT44GoDQor44Gq44GL44KA44KJLOOBoeOBqOOBmw0KK+OBvuOBpOOCguOBqCzjgYLjgaTjgZcNCivjgoHjgZbjgo8s44Gy44Go44GXDQor44G/44GtLOOBvuOBleOChOOBmQ0KK+OBv+OBqCzjga7jgbbjgYoNCivjgb/jgoTjgoLjgags44GX44GS44KLDQor44G/44KE44GW44KPLOOBi+OBpOOBvw0KK+OBv+OBmuOBnyzjgZHjgpPjgZgNCivjgoLjgoos44Gv44Ga44GNDQor44KC44KK44KC44GoLOOBvuOBquOBtg0KK+OCguOCjeOBiuOBiyzjgb/jgaTjgbLjgo0NCivjgYLjgpPjganjgYYs44GE44KP44GKDQor44G/44KH44GG44GMLOOBn+OBi+OChuOBjQ0KK+OBquOBjOOBiizjgYLjgY3jgbLjgo0NCivjgarjgYzjgZss44GZ44GZ44KADQor44Gq44GE44Go44GGLOOBleOBoOOBv+OBpA0KK+OBquOBi+OBmOOBvizjgajjgYrjgosNCivjgarjgYvjgb7jgoss44Go44GX44GTDQor44Gq44GL44KA44KJLOOCiuOCheOBhuOBhOOBoQ0KK+OBquOBi+OBq+OBlyzjgbLjgafjgagNCivjgarjgYvjga4s44Gk44GL44GVDQor44GX44Gq44GgLOOBguOBjeOCiQ0KK+OBquOCiuOBnyzjgZ/jgY/jgZgNCivjgavjgYTjgoTjgb4s44Gy44KN44GXDQor44Gr44GX44GL44KPLOOBguOBjeOCiQ0KK+OBq+OBl+OBmuOBiyzjgajjgZfjgoQNCivjgbLjga4s44GL44Ga44KG44GNDQor44Gv44Gb44GM44KPLOOBv+OBpOOBguOBjQ0KK+OBiuOBjOOBnyzjgbLjgajjgZcNCivjgoDjgZXjgZcs44G/44Gk44KLDQor44GK44GK44GP44G8LOOBr+OCi+OBlw0KK+OBiuOBiuOBleOCjyzjgbLjgafjgY0NCivjgYrjgYrjgZ8s44GX44KT44GYDQor44GK44GK44KP44GgLOOBsuOCjeOBruOCig0KK+OBiuOBi+OBoCzjgZ/jgYvjgojjgZcNCivjgYrjgYvjgoLjgags44Gy44KN44GXDQor44GK44GN44KC44GoLOOBvuOBleOBsuOBkw0KK+OBiuOBq+OBpOOBiyzjgb7jgZXjgYLjgY0NCivjgYrjgZXjgY0s44Gf44GL44GXDQor44GV44GI44GNLOOCiOOBl+OBsuOCjQ0KK+OBleOBi+OBhCzjgorjgofjgYbjgZgNCivjgZXjgYvjgY0s44GN44KH44GG44GTDQor44GV44GL44GG44GILOOBn+OBi+OChuOBjQ0KK+OBleOBrizjgajjgZfjgbXjgb8NCivjgZXjgajjgYYs44KE44GZ44GXDQor44GV44Go44GGLOOBleOBqOOBlw0KK+OBleOCj+OBhCzjgb/jgaHjgbLjgo0NCivjgZvjgY3jga/jgoks44GC44GN44KJDQor44Gb44GX44KCLOOBl+OCheOBhuOBhOOBoQ0KK+OBl+OBsOOBnyzjgabjgaTjgo3jgYYNCivjgoDjgonjgZ8s44KK44KF44GG44Gf44KN44GGDQor44GX44G/44GaLOOBr+OChOOBqOOBlw0KK+OBl+OCguOBiuOBlSzjgZ/jgZHjgZcNCivjgZfjga7jgaAs44Gv44Gk44GIDQor44GX44KJ44GELOOBi+OBmuOBsuOBkw0KK+OBmeOBqeOBhizjgoLjgajjgobjgY0NCivjgZnjgY7jgZfjgb4s44G+44GV44KLDQor44GZ44KE44G+LOOBqOOCguOBruOCig0KK+OBmeOBmuOBjSzjgobjgZ/jgYsNCivjgZfjgoXjgY/jgoQs44GY44KF44KT44GE44GhDQor44Gf44GQ44GhLOOBquOBiuOChuOBjQ0KK+OBv+OChOOCguOBqCzjgZ/jgYvjgZcNCivjgZ/jgYvjga/jgZcs44GR44KT44KK44KF44GGDQor44Gf44GL44Gv44GXLOOChuOBjeOBiA0KK+OBn+OBi+OBr+OBlyzjgYTjgaHjgo3jgYYNCivjgZ/jgYvjgZss44GX44GS44GNDQor44G/44GL44G/LOOBkeOBhOOBmeOBkQ0KK+OBn+OBkeOChOOBvizjgajjgZfjgYLjgY0NCivjgZ/jgarjgbks44Gy44KN44KG44GNDQor44Gf44Gq44GLLOOBsuOCjeOBkw0KK+OBn+OBquOBiyzjga7jgorjgYLjgY0NCivjgZ/jgavjgZDjgaEs44GY44KF44KT44GTDQor44Gf44Gm44GE44GXLOOBquOBiuOChA0KK+OBpuOCi+OBjeOBqizjgYLjgY3jgogNCivjgajjgb/jgYrjgYss44Gq44GK44GNDQor44Go44KI44GgLOOBvuOBleOBsuOBkw0KK+OBpOOBoeOChCzjgojjgZfjgbLjgo0NCivjgaTjgZgs44Gy44KN44GXDQor44Gk44Gu44GM44GELOOChOOBmeOBruOCig0KK+OBhuOBoeOBoCzjgb7jgZXjgbXjgb8NCivjgYbjgaAs44GR44GE44GYDQor44GG44GI44Gv44KJLOOBl+OCk+OBmA0KK+OBhuOBiOOBrizjgobjgYbjgZgNCivjgYbjgoHjga/jgoks44G+44GT44GoDQor44GG44GZ44GELOOBk+OBhuOBuOOBhA0KK+OCj+OBoCzjgojjgZfjgYLjgY0NCivjgo/jgZ/jgarjgbks44GV44Go44GXDQor44KE44Gv44GOLOOBquOBiuOBteOBvw0KK+OChOOBvuOBoCzjgajjgZfjgYoNCivjgoTjgb7jgZDjgaEs44Go44KC44GL44GaDQor44KE44G+44KC44GoLOOBkeOCk+OBmOOCjeOBhg0KK+OChOOBvuOCguOBqCzjgb7jgarjgbYNCivjgoTjgb7jgZfjgZ8s44KK44KT44GY44KFDQor44KE44G+44GW44GNLOOBsuOBqOOBlw0KK+OChOOBmeOBoCzjgb7jgZXjgb8NCivjgojjganjgYzjgo8s44Gu44KK44GKDQor44KI44KN44Ga44KELOOBquOBiuOBsuOBlQ0KK+OCiOOBl+OBvuOBpCzjgaHjga/jgosNCivjgYjjgaDjgbLjgo0s44G/44Gp44KKDQor44GT44GY44G+LOOChOOBmeOBsuOBlQ0KK+OBiuOBjOOCjyzjgoHjgZDjgb8NCivjgZ/jgYvjgZss44G+44G/44GTDQor44G144GP44GfLOOBi+OBmuOBvw0KK+OBn+OBkOOBoSzjgbLjgo3jgoANCivjgYLjgZXjga4s44Go44GX44Gy44GTDQor44G144GY44GELOOBkeOCk+OBmA0KK+OBteOBmOOCj+OCiSzjgZPjgYbjgZgNCivjgZTjgajjgYYs44Gy44KN44GL44GaDQor44Gv44KE44GXLOOBqOOBl+OBguOBjQ0KK+OBsuOCieOBhCzjgbLjgo3jgZ/jgYsNCivjgYTjgaHjgYQs44GX44GS44KG44GNDQor44GE44GR44GgLOOBhOOBj+OBmOOCjeOBhg0KK+OBhOOBl+OBvuOCiyzjgb/jgo8NCivjgYTjgajjgYYs44Gm44Gk44KEDQor44GL44GS44KE44G+LOOBpOOCiOOBlw0KK+OBi+OBleOBvizjga7jgorjgb7jgZUNCivjgYvjgajjgYYs44GT44GG44GfDQor44GN44GP44GhLOOBqOOCguOBguOBjQ0KK+OBjeOBn+OBjOOCjyzjgb/jgaHjga/jgosNCivjgZPjgbDjgoTjgZcs44GT44GG44Gf44KN44GGDQor44GT44KT44GpLOOBruOCiuOBkw0KK+OBj+OBqeOBhizjga/jgoTjgagNCivjgY/jgZXjgbXjgYss44GX44Gu44G2DQor44G+44Gk44Gg44GE44KJLOOBvuOBjQ0KK+OBv+OBj+OBqyzjgoTjgZnjgZcNCivjgb/jgoTjgaEs44Gf44GL44G144G/DQor44G/44KE44GW44KPLOOBsuOCjeOBjQ0KK+OCguOCiuOBnyzjgY/jgovjgb8NCivjgoDjgo3jgZ7jga4s44Gy44KN44GC44GNDQor44Gq44GL44G/44GhLOOBl+OCh+OBhg0KK+OBq+OBl+OCgOOCiSzjgZfjgpPjgoQNCivjgYrjgYzjgo8s44Gf44GL44GXDQor44GK44GK44GILOOBvuOBleOBv+OBoQ0KK+OBiuOBiuOBnyzjgZ/jgYvjgZcNCivjgYrjgYvjgoTjgb4s44G/44Gk44KI44KKDQor44GV44GE44Go44GGLOOBn+OBi+OBruOBtg0KK+OBleOBrizjgZ/jgY/jgoQNCivjgZXjgajjgYYs44Gf44GL44GXDQor44GX44GELOOBv+OBleOBkw0KK+OBl+OCk+OBjeOCheOBhizjgb7jgZXjgobjgY0NCivjgZnjgY7jgoTjgb4s44GN44KI44Gf44GLDQor44Gf44GL44GOLOOCiOOBl+OBig0KK+OBn+OBkeOBhuOBoSzjgYvjgbvjgosNCivjgZ/jgarjgYss44Gu44G244GTDQor44Gf44KL44GV44KPLOOBguOBjeOBkw0KK+OBqOOCguOBrizjgYvjgZrjgb8NCivjgo/jgZ/jgarjgbks44G+44GV44Go44GXDQor44KE44G+44KC44GoLOOBsuOBp+OBqA0KK+OChOOBvuOBluOBjSzjgbXjgb/jga4NCivjgojjga3jgb/jgaQs44G+44GT44GoDQor44KG44KKLOOBqOOCguOBig0KK+OBvuOBpOOBkOOBvizjgbXjgb/jgZMNCivjgYLjgZjjgb4s44KE44GZ44GC44GNDQor44GC44G+44GuLOOBoeOBguOBjQ0KK+OBguOBiuOBjSzjgojjgZfjgZMNCivjgYLjgYrjgY0s44Gq44GK44Gy44GVDQor44GC44KJ44GNLOOBi+OBpOOBmA0KK+OBguOBleOBj+OCiSzjgZ/jgaTjgYoNCivjgYLjgZrjgb4s44KK44GIDQor44GV44Gf44GRLOOBkeOBhOOBkw0KK+OBoOOBhOOBiizjgbLjgafjgY0NCivjgarjgYvjgoDjgoks44Gf44GL44GTDQor44G144GY44GELOOBn+OBpOOBruOCig0KK+OBteOBmOOBiuOBiyzjgabjgaTjgo3jgYYNCivjgbXjgY/jgYQs44GT44GG44GYDQor44G144Gq44GgLOOChuOBhuOBkw0KK+OBlOOBqOOBhizjgYvjgYTjgaHjgo3jgYYNCivjga/jgb7jgaAs44KI44GX44G/DQor44GV44Go44GGLOOBm+OBhOOBlA0KK+OBr+OCiuOBvizjgarjgYrjgY0NCivjga/jgZvjgYzjgo8s44GC44GN44Gy44GTDQor44Gv44GfLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBr+OBo+OBqOOCiizjgobjgY0NCivjga/jgoTjgb8s44GZ44G/44Gy44GoDQor44Gv44KE44GXLOOBvuOBleOBruOCig0KK+OBsuOBiOOBoCzjgb/jgaHjgYvjgZoNCivjgbLjgYrjgY0s44Go44GG44KB44GEDQor44G744GgLOOBsuOCjeOBjQ0KK+OBsuOCjeOBmeOBiCzjgZjjgoXjgpPjgZMNCivjgbLjgZfjgaAs44Gy44KN44GXDQor44G744KT44GU44GGLOOBvuOBleOBqA0KK+OBu+OCiuOBiCzjgYLjgY3jga7jgooNCivjgbvjgZfjgaos44GT44GG44GE44GhDQor44GE44Gh44GL44KPLOOBsuOBqOOBlw0KK+OBhOOBjOOBnyzjgYjjgYTjgYTjgaHjgo3jgYYNCivjgYTjgYTjgZrjgYss44G+44GT44GoDQor44GE44GR44GgLOOBn+OBi+OChuOBjQ0KK+OBu+OBneOBhCzjgZHjgpPjgZ/jgo3jgYYNCivjgYTjga4s44GY44KF44KTDQor44GE44Gu44GG44GILOOBteOBv+OBruOCig0KK+OBiuOBiuOCguOCiizjgZHjgpPjgYTjgaHjgo0NCivjgYTjgZfjgYQs44GR44GE44GY44KN44GGDQor44GE44GX44GELOOChOOBmeOBlw0KK+OBhOOBl+OBpOOBiyzjgajjgZfjgobjgY0NCivjgYTjgZ3jgYzjgYQs44KG44GG44GTDQor44GE44Go44GGLOOBleOBqOOBlw0KK+OBhOOCj+OBr+OBlyzjgobjgYbjgZMNCivjgYTjgo/jgZXjgY0s44Gy44KN44KG44GNDQor44GL44GM44G2LOOBl+OCk+OBmOOCjeOBhg0KK+OBi+OBvuOBu+OCiizjgajjgoLjgbLjgZMNCivjgYvjgb/jgoQs44Gu44G244KG44GNDQor44GL44Gq44GELOOBruOCiuOBkw0KK+OBi+OCk+OBoCzjgaHjgYgNCivjgYvjga7jgYYs44Gf44GR44GXDQor44Gf44G+44Gf44GrLOOBl+OBvg0KK+OBi+OBqOOBhizjgbLjgo3jgY0NCivjgYvjgajjgYYs44GY44KF44KT44GTDQor44GL44KP44GQ44GhLOOBk+OBhuOBmA0KK+OBi+OCj+OCgOOCiSzjgZfjgoXjgYbjgZgNCivjgYvjgo/jgZfjgb4s44Gu44G244GTDQor44GN44GP44GhLOOBhOOBoeOCjeOBhg0KK+OBjeOCgOOCiSzjgZ/jgYvjgbLjgZUNCivjgY3jgZcs44Gq44GK44GNDQor44GN44Gf44GM44KPLOOBquOBiuOBvw0KK+OBjeOCiOOBr+OCiSzjgaTjgajjgoANCivjgZPjgbDjgoTjgZcs44GR44KT44GYDQor44GT44Gg44G+LOOChOOBmeOBsuOCjQ0KK+OBk+OBhOOCjyzjgajjgoLjgobjgY0NCivjgZPjgZjjgb4s44GV44Go44GXDQor44GT44KT44GpLOOBkeOCk+OBhOOBoQ0KK+OBj+OBvCzjgarjgYrjgY0NCivjgY/jgb7jgY/jgoks44GR44KT44GE44GhDQor44Gy44KJ44GELOOBk+OBhuOBmA0KK+OBj+OCjeOBoCzjgYLjgaTjgZcNCivjgY/jgo3jgZXjgo8s44GI44GE44GY44KN44GGDQor44G+44GI44GgLOOBleOBqOOBlw0KK+OBl+OBtuOBn+OBqyzjgZPjgYbjgZgNCivjgb7jgZnjgaAs44KG44GG44GTDQor44Gv44KJLOOBkeOCk+OBmA0KK+OBvuOBpOOBhCzjgZfjgpPjgZgNCivjgb7jgaTjgoLjgags44Gy44KN44GXDQor44G+44Gk44Gq44G/LOOCiOOBl+OBkw0KK+OBvuOBpOOBiuOBiyzjgZfjgpPjgZQNCivjgb7jgaTjgoTjgb4s44GC44GN44KJDQor44G/44GL44G/LOOBsuOBp+OBig0KK+OBv+OBquOBvyzjgYLjgY3jgokNCivjgb/jgZ/jgoDjgoks44G+44GV44Go44GXDQor44G/44Gk44G+LOOBi+OBmuOBsuOBqA0KK+OBv+OChOOBl+OBnyzjgbLjgo3jgobjgY0NCivjga/jgZfjgZDjgaEs44GX44GS44GNDQor44G/44Ga44GuLOOBqOOBl+OChuOBjQ0KK+OCguOCiizjgb7jgZXjgZcNCivjgoLjgoos44Gy44KN44GL44GaDQor44KC44KK44KELOOCgOOBpOOBig0KK+OCgOOBreOBi+OBnyzjgYvjgZrjgojjgZcNCivjgoDjgonjgZ8s44KG44GN44KC44GoDQor44G/44KH44GG44GY44KTLOOBv+OBoeOBig0KK+OBquOBjOOBl+OBvizjgojjgZfjgYvjgZoNCivjgarjgYTjgajjgYYs44G+44GV44GNDQor44Gq44GL44GY44G+LOOBpuOCi+OBvw0KK+OBquOBi+OCguOBqCzjgbLjgo3jgYvjgZoNCivjgarjgYvjgoDjgoks44KG44GG44GYDQor44Gq44GL44KA44KJLOOBkeOCk+OBnw0KK+OBquOBi+OChCzjgo/jgZ/jgosNCivjgarjgpMs44GR44GE44GZ44GRDQor44Gq44Go44KKLOOBkeOCk+OChA0KK+OBq+OBhOOBluOCjyzjgojjgZfjga7jgooNCivjgavjgZfjgaAs44KE44GZ44GKDQor44Gr44GX44GqLOOBjeOCiOOBlw0KK+OBq+OBl+OBluOCjyzjgojjgZfjgbLjgo0NCivjga7jgYzjgo8s44Gy44KN44KEDQor44Gu44KA44KJLOOBvuOBleOBsuOCjQ0KK+OBiuOBjOOBleOCj+OCiSzjgYvjgZrjgabjgosNCivjgYrjgYzjgo8s44KE44GZ44Gu44KKDQor44GK44Gv44GXLOOBleOBqOOBlw0KK+OBiuOBiuOBrizjgbLjgo3jgoTjgZkNCivjgYrjgZfjgb4s44Gk44Go44KADQor44GK44GK44Gf44GNLOOBteOBqOOBlw0KK+OBiuOBiuOBpOOBiyzjgYjjgYTjgY0NCivjgYrjgYrjgoQs44KA44Gt44GKDQor44GK44GL44GgLOOBsuOCjeOChuOBjQ0KK+OBiuOBi+OBluOBjSzjgZPjgYbjgZ/jgo3jgYYNCivjgYrjgYrjgb8s44GC44KE44GTDQor44GK44Gu44Gn44KJLOOBvuOBleOBsuOBkw0KK+OBiuOBrizjgZ/jgYvjgYLjgY0NCivjgYrjgZbjgY0s44KI44GX44G+44GVDQor44GV44GE44GgLOOCguOCguOBkw0KK+OBleOBi+OBkOOBoSzjgZPjgYbjgZgNCivjgZXjgYvjgYQs44Gq44GK44GNDQor44GV44GTLOOBguOBi+OBlw0KK+OBleOCk+OBuSzjgb7jgZPjgagNCivjgZXjgZXjgY0s44KG44Gf44GLDQor44GV44Gf44GRLOOBqOOBl+OBjQ0KK+OBleOBqOOBhizjgobjgY3jgZ/jgYsNCivjgbLjgonjga4s44Gy44KN44GC44GNDQor44GV44KP44KA44KJLOOBsuOCjeOBlw0KK+OBm+OBjeOBrSzjgYvjgZrjgYLjgY0NCivjgZfjgbDjga/jgoks44GL44Ga44GuDQor44GX44Gw44GW44GNLOOBvuOBleOBkw0KK+OBl+OBvizjgZPjgZnjgZENCivjgZfjgb/jgZos44GR44GE44GZ44GRDQor44GX44KC44GL44KP44G5LOOBguOBjeOBsuOCjQ0KK+OBl+OBruOBluOBjSzjgbLjgo3jgZcNCivjgZfjgonjga/jgb4s44G/44Gh44Gy44GVDQor44GX44KH44GG44Gq44GULOOBn+OBi+OBl+OBkg0KK+OBmeOBoCzjgoHjgYTjgZjjgo3jgYYNCivjgZnjgY7jgoLjgags44G/44GLDQor44GZ44GO44GfLOOBn+OBi+OChuOBjQ0KK+OBmeOBv+OBoCzjgYLjgaTjgZcNCivjgZnjgZrjgY0s44G+44GV44G144G/DQor44GZ44Ga44GNLOOBl+OBkuOCiw0KK+OBmeOBmuOBrizjgYvjgaTjgbXjgb8NCivjgZ/jgZDjgaEs44G/44KG44GNDQor44Gf44GL44GOLOOBqOOBl+OBi+OBmg0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgb/jgaENCivjgZ/jgYvjga/jgZcs44Gy44Gn44Gu44KKDQor44Gf44GL44Gv44GXLOOBkeOCk+OBhOOBoQ0KK+OBn+OBi+OBrizjgb/jgY3jgZMNCivjgZ/jgYvjgZfjgb4s44Gf44Gg44GXDQor44Gf44GR44GgLOOBhOOBmuOBvw0KK+OBn+OBkeOBquOBiyzjgZHjgpPjgYTjgaENCivjgZ/jgZHjgoTjgZks44KM44GE44GYDQor44Gf44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBn+OBquOBiyzjgZPjgYbjgYTjgaENCivjgZ/jgarjgYss44Gf44GL44KI44GXDQor44Gf44Gq44GLLOOBqOOBiuOCiw0KK+OBn+OBq+OBkOOBoSzjgYvjgaTjgbLjgZMNCivjgabjgonjgb7jgYgs44Gb44GE44GE44Gh44KN44GGDQor44Go44GN44KPLOOBoeOBiOOBkw0KK+OBqOOCiuOBlOOBiCzjgZXjgaDjgobjgY0NCivjgaTjgaHjgZ/jgass44Gy44Gn44GNDQor44Gk44GY44KA44KJLOOBn+OBi+OBlw0KK+OBpOOBi+OCguOBqCzjgZHjgpPjgZ/jgo3jgYYNCivjgaTjgaTjgb8s44G+44GV44Gu44KKDQor44GG44Gh44GuLOOBleOBqOOBlw0KK+OBreOBmizjgajjgZfjgYLjgY0NCivjgYbjgYjjgaTjgbws44KI44GX44Gf44GLDQor44GG44GK44Ga44G/LOOBleOCk+OBuuOBhA0KK+OCj+OBoCzjgb/jgaTjga7jgooNCivjgo/jgZ/jgarjgbks44KI44GX44GNDQor44KE44G2LOOBk+OBhuOBmA0KK+OChOOBvuOBoCzjgobjgYbjgZMNCivjgbLjgZXjga4s44KK44GLDQor44KE44G+44GQ44GhLOOBruOCiuOChuOBjQ0KK+OChOOBvuOBi+OCjyzjgobjgY3jgZMNCivjgoTjgb7jgoLjgags44Gq44GK44GoDQor44KE44G+44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OChOOBvuOBhuOBoSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgoTjgb7jgZbjgY0s44Gf44GL44GKDQor44Gv44GO44KP44KJLOOBv+OBjeOBig0KK+OCiOOBreOBluOCjyzjgYjjgooNCivjgojjgZfjgaAs44GV44Gh44GTDQor44KI44GX44G+44GkLOOBkeOCk+OBn+OCjeOBhg0KK+OBmuOBlyzjgobjgY3jgYoNCivjgYTjgo/jgYvjgo8s44Gd44GG44Gf44KN44GGDQor44GE44GX44G+44GkLOOBsuOCjeOChOOBmQ0KK+OBguOBuSzjgYjjgYTjgYTjgaENCivjgYLjgYvjgYTjgZcs44GI44GE44GhDQor44GC44G+44GM44GfLOOBn+OBi+OBlw0KK+OBguOCk+OBluOBhCzjgb7jgZXjgbLjgacNCivjgYLjgonjgY0s44Go44GX44G/44GkDQor44GC44GX44GgLOOBleOBqOOBlw0KK+OBoeOCh+OBhizjgYjjgYTjgZgNCivjganjgYQs44GR44KT44GE44GhDQor44GI44Gu44KC44GoLOOBjeOCiOOBvw0KK+OBteOBmOOBhCzjgZXjgaTjgY0NCivjgbXjgZjjgZ8s44Gf44GL44GXDQor44G144GP44KA44KNLOOBn+OBi+OBlw0KK+OBteOBquOBjSzjgarjgYrjgY0NCivjgbXjgovjgoQs44Go44KC44KEDQor44GE44KP44GV44GNLOOBleOBiOOBkw0KK+OBhOOBqOOBhizjgZfjgo3jgYYNCivjga/jgaAs44Gy44Gn44GC44GNDQor44Gv44Gq44GpLOOBv+OBruOCiw0KK+OBr+OCieOBoCzjgZ/jgZHjgZcNCivjga/jgonjgZ7jga4s44Gu44G244Gy44KNDQor44Gv44GX44KC44GoLOOBleOBqOOBlw0KK+OBr+OBo+OBqOOCiizjgb7jgZPjgagNCivjga/jgoTjgZcs44Gf44GL44KI44GXDQor44Gy44GM44GXLOOBi+OBmuOBig0KK+OBsuOCieOBrizjgbLjgo3jgZMNCivjgbLjgorjgY0s44GR44KT44GE44Gh44KNDQor44G744KT44GgLOOBleOBquOBiA0KK+OBu+OBl+OChOOBvizjgb/jgY7jgbXjgb8NCivjgYTjgaHjga/jgoks44Gf44GL44GXDQor44GE44GM44KJ44GXLOOBi+OBpOOBruOBtg0KK+OBhOOBkeOBoCzjgorjgofjgYYNCivjgYTjgb7jgoDjgoks44GK44GV44KADQor44GE44Gq44KA44KJLOOBqOOCguOBruOCig0KK+OBhOOBruOBhuOBiCzjgoTjgZnjgbLjgo0NCivjgYTjgZXjgYss44GX44GS44KLDQor44GE44GX44GgLOOBkeOBhOOBhOOBoQ0KK+OBhOOBl+OBhCzjga7jgbzjgosNCivjgYTjgZfjgZrjgYss44KG44GN44GKDQor44GE44Go44GGLOOBl+OCh+OBhuOBkw0KK+OBhOOBqOOBhizjgb7jgZXjgb8NCivjgYTjgajjgYYs44GI44GE44GYDQor44GE44KP44Gq44GMLOOBquOBiuOBkw0KK+OBmOOCk+OBsCzjgaTjga3jga7jgooNCivjgYvjgZjjgoLjgags44Gf44GP44KEDQor44GL44GTLOOBqOOBl+OBsuOBkw0KK+OBi+OCkyzjgZ/jgY/jgoQNCivjgYvjga7jgYYs44G+44KG44G/DQor44GL44GZ44KELOOBvuOBleOBquOCig0KK+OBi+OBqOOBhizjgZHjgpPjgZgNCivjgYvjgo/jgbks44KI44GX44KG44GNDQor44GL44KP44GL44G/LOOBkeOCk+OBhOOBoQ0KK+OBi+OCj+OBrizjgb7jgZXjgbLjgZMNCivjgYvjgo/jgZfjgb4s44KE44GZ44Gu44G2DQor44GN44GP44GhLOOBvuOCguOCiw0KK+OBjeOCgOOCiSzjgYLjgaTjgZcNCivjgY3jga4s44GC44GNDQor44GN44Gf44GM44KPLOOBiuOBleOCgA0KK+OBk+OBsOOChOOBlyzjgajjgZfjgbLjgo0NCivjgYTjgajjgYYs44GX44KT44GYDQor44GT44GP44GX44KH44GGLOOBvuOBleOCiw0KK+OBk+OCk+OBqSzjgb7jgZXjgobjgY0NCivjgZPjgoTjgb4s44Gy44KN44Gf44GLDQor44GP44KM44G+44GkLOOBn+OBi+OBsuOBpw0KK+OBj+OCiuOCheOBhizjgojjgZfjgYgNCivjgb7jgaHjgZ8s44G+44GV44GNDQor44G+44KL44GE44GhLOOBvuOBleOChuOBjQ0KK+OBvuOBmeOBoCzjgobjgY3jgZMNCivjgb7jgaTjgYQs44Gy44Gn44GXDQor44G+44Gk44KC44GoLOOCiOOBl+OBjQ0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgb7jgaTjgYrjgYss44Gf44GR44GXDQor44G+44Gk44KE44G+LOOBk+OBhuOBn+OCjeOBhg0KK+OBv+OBl+OBvizjgYvjgZrjgb8NCivjgb/jgaTjgoLjgags44GN44KI44G/DQor44G/44KE44KC44GoLOOBqOOBl+OBguOBjQ0KK+OBhuOBoeOChOOBvizjgb/jgY3jgZMNCivjgb/jgZrjga4s44G+44GV44KI44GXDQor44KC44GOLOOCguOChuOCiw0KK+OCguOCiizjgb7jgZXjgbLjgo0NCivjgoLjgorjgZ8s44GL44Ga44Gy44GVDQor44KC44Go44Gw44KE44GXLOOBleOBqOOCiw0KK+OCgOOCieOBi+OBvyzjgbLjgo3jgYLjgY0NCivjgoDjgonjgZ8s44Go44KC44Gu44KKDQor44Gq44GwLOOBsuOCjeOChuOBjQ0KK+OBquOBjOOBiuOBkSzjgZXjgajjgZcNCivjgarjgYzjgZ8s44GX44KH44GG44G444GEDQor44Gq44GL44GM44KPLOOCiOOBl+OChuOBjQ0KK+OBquOBi+OBmOOBvizjgZ/jgYvjgZcNCivjgarjgYvjgoDjgoks44Gf44Gk44KEDQor44Gq44GL44Gr44GXLOOBhOOBmuOCiw0KK+OBquOBi+OBiizjgYLjgY3jgZMNCivjgarjgYvjgoTjgb4s44G144G/44GKDQor44Gt44KC44GoLOOBv+OBpOOBguOBjQ0KK+OBq+OBl+OBoCzjgojjgZfjgoQNCivjgavjgZfjgoDjgoks44GN44KP44KADQor44Gu44G244Gv44KJLOOBk+OBhuOBmA0KK+OBruOBnuOBiCzjga/jgZjjgoENCivjgYrjgYrjgY4s44Gf44GR44GXDQor44GK44GK44GILOOCiOOBhuOBhOOBoQ0KK+OBiuOBiuOBj+OBvCzjgbLjgo3jgbXjgb8NCivjgYrjgYrjgoLjgoos44Gq44GK44GNDQor44GK44GuLOOBguOBjeOCiQ0KK+OBiuOBiuOBnyzjgYLjgZXjgZMNCivjgYrjgYrjgZ/jgass44KE44GZ44Gy44KNDQor44GK44GLLOOBteOBv+OBkw0KK+OBiuOBi+OBvuOBpCzjgZ/jgYvjgbLjgo0NCivjgYrjgYvjgoLjgags44Gu44KK44GKDQor44GK44GK44GuLOOBquOBiuOBjQ0KK+OBqOOBj+OBv+OChCzjgabjgaTjgoQNCivjgZXjgYTjgajjgYYs44KG44Gf44GLDQor44GV44GL44GN44Gw44KJLOOBn+OBi+OBig0KK+OBv+OBn+OBqyzjgZHjgpPjgYTjgaENCivjgZXjga4s44GX44KF44GG44Ge44GGDQor44GV44GV44GNLOOBm+OBhOOBmA0KK+OBleOBqOOBhizjgZ/jgYvjgYvjgZoNCivjgZXjgajjgYYs44Gu44G844KLDQor44GV44Go44GGLOOBqOOCguOBjQ0KK+OBleOChOOBrizjgYTjgY/jgoQNCivjgZvjgpPjgaos44Go44GX44G/44GkDQor44GX44G244Gf44GrLOOBjeOCh+OBhuOBkw0KK+OBl+OBvuOCgOOCiSzjgojjgZfjgb/jgaQNCivjgZfjgarjgaAs44GL44Gk44G/DQor44GX44KJ44Gv44G+LOOBn+OCjeOBhg0KK+OBl+OCheOBqOOBhizjgobjgb/jgZMNCivjgZnjgaAs44Gq44GK44Gy44KNDQor44GZ44GO44KE44G+LOOBsuOBp+OBvuOBlQ0KK+OBmeOBv+OBiuOBiyzjgajjgoLjgoQNCivjgZnjgZrjgY0s44Gy44Gn44Gy44KNDQor44Gf44Gw44GTLOOBj+OBv+OBkw0KK+OBn+OBjOOCjyzjgb7jgZPjgagNCivjgZ/jgYvjga/jgZcs44GX44KT44KEDQor44KP44Gf44Gq44G5LOOBvuOBjQ0KK+OBn+OBi+OBj+OCiSzjgZHjgpPjgZnjgZENCivjgZ/jgYvjgYrjgYss44GU44GGDQor44Gf44GR44Gv44GqLOOBvuOBleOBi+OBpA0KK+OBn+OBkeOBhuOBoSzjgZXjgajjgZcNCivjgZ/jgarjgYss44GR44KT44Gf44KN44GGDQor44Gf44Gq44GLLOOBm+OBhOOBmA0KK+OBn+OBquOBiyzjga7jgorjgbLjgo0NCivjgZ/jgavjgYQs44KG44KK44GTDQor44Gf44GX44KNLOOBkeOCk+OBhOOBoQ0KK+OBpuOCieOCguOBqCzjgYjjgYTjgZgNCivjgajjgY3jgYrjgYss44Gf44GL44GX44GSDQor44Go44G/44GL44KPLOOBruOCiuOBkw0KK+OBqOOCiuOBi+OBhCzjgarjgYrjgY0NCivjgaTjgaAs44GT44GG44GE44GhDQor44GV44GL44GELOOBv+OBu+OBkw0KK+OBhuOBoCzjgYLjgaTjgZMNCivjgYbjgYjjga4s44GK44GV44KADQor44GG44KB44Gv44KJLOOBqOOBl+OBig0KK+OBhuOBl+OBsCzjgb/jga7jgosNCivjgo/jgYvjgYos44GR44GE44GYDQor44KP44Gf44G5LOOBvuOBleOBqOOBlw0KK+OCj+OBn+OBquOBuSzjgaDjgYTjgaENCivjgajjgb/jgoTjgZks44Go44GX44Gy44GVDQor44KE44G+44GgLOOBvuOBjQ0KK+OChOOBvuOBk+OBlyzjgaDjgYTjgZnjgZENCivjgoTjgb7jgoLjgags44GY44KF44KTDQor44KE44G+44GX44GfLOOBquOBiuOBkw0KK+OChOOBquOBjizjgajjgZfjgYLjgY0NCivjgojjgZPjgZXjgo8s44Gf44GP44KEDQor44KI44GT44KE44G+LOOBi+OBmuOBruOBtg0KK+OCiOOBl+OBoCzjgarjgYrjgagNCivjgojjgZfjgb8s44Gf44GE44GNDQor44KI44GX44GW44KPLOOBqOOBl+OBi+OBpA0KK+OBhOOBvizjgb7jgZXjgbLjgo0NCivjgY/jgbws44G+44GV44Gy44GTDQor44Gq44GL44Gv44KJLOOBn+OBj+OChA0KK+OBiuOBkOOCiSzjgajjgYrjgosNCivjgZ/jgYvjgb7jgaQs44GR44KT44GE44GhDQor44GE44Gu44GG44GILOOCgOOBreOBsuOCjQ0KK+OBguOBhOOBsCzjgZXjgajjgZcNCivjgYLjgb7jga4s44Gq44GK44GTDQor44GC44KK44GfLOOBsuOBp+OBguOBjQ0KK+OBguOBn+OBkOOBoSzjgbLjgo3jgZcNCivjgaDjgaYs44GX44GS44Gy44GTDQor44GI44GW44KPLOOBquOCiuOBsuOBpw0KK+OBteOBmOOCguOBqCzjgb/jgY3jgYoNCivjgbXjgY/jganjgoEs44Gf44GL44GXDQor44G144KL44GL44KPLOOBguOBkeOBvw0KK+OBr+OBjuOCj+OCiSzjgorjgoXjgYbjgZ8NCivjga/jgarjgZ8s44Gy44KJ44GPDQor44Gv44Gb44GM44KPLOOChuOBn+OBiw0KK+OBi+OBmOOCj+OCiSzjgojjgZfjgZMNCivjga/jgaPjgajjgoos44Gf44GL44KG44GNDQor44Gy44GM44GXLOOCiuOCheOBhuOBmeOBkQ0KK+OBsuOCieOBiizjgb7jgZXjgobjgY0NCivjgbLjgo3jgZss44G/44Gk44KLDQor44G744KT44G+LOOBn+OBkeOBlw0KK+OBteOBj+OCjeOBhCzjgZHjgpPjgZgNCivjgYTjgaHjga7jgZvjgY0s44Go44GX44Gy44KNDQor44GE44GR44GgLOOChuOBn+OBiw0KK+OBhOOBvuOCgOOCiSzjgZHjgpPjgZnjgZENCivjgYTjga7jgYbjgYgs44GL44Ga44GKDQor44GE44GX44GgLOOBk+OBhuOBmA0KK+OBhOOBl+OBi+OCjyzjgYLjgY3jgokNCivjgYTjgo/jgZXjgY0s44Gf44GR44GXDQor44GL44GE44Ga44GLLOOBsuOCjeOBkw0KK+OBi+OBv+OBjOOBjSzjga7jgorjgbLjgacNCivjgYvjga3jgZMs44GP44Gr44Gy44GTDQor44GL44Gf44GO44KKLOOBquOBiuOChuOBjQ0KK+OBi+OBqOOBhizjgZHjgpPjgZgNCivjgYvjgo/jgYvjgb8s44GT44GG44GYDQor44GL44Gk44GNLOOBguOBjeOBqOOCgg0KK+OBjeOCgOOCiSzjgZXjgajjgosNCivjgY3jga7jgZfjgZ8s44KG44GL44KKDQor44GN44Gf44KE44G+LOOBoeOBsuOCjQ0KK+OBguOCgeOBl+OBnyzjgarjgYrjgY0NCivjgZPjgbDjgoTjgZcs44Gf44GL44Gy44KNDQor44GT44GMLOOBruOCiuOChuOBjQ0KK+OBk+OBhOOBkSzjgYLjgY3jgYoNCivjgZPjgpPjgaks44Go44KC44Gu44KKDQor44GP44G844GNLOOBhOOBj+OBkw0KK+OBj+OCieOBl+OBqizjgYvjgaTjgbLjgagNCivjgY/jgo3jgY0s44Gk44KI44GXDQor44G+44GI44GgLOOChOOBmeOBsuOCjQ0KK+OBvuOBleOBoCzjgbLjgo3jgobjgY0NCivjgb7jgaTjgaAs44Gq44GK44G/DQor44G+44Gk44KC44GoLOOBl+OCheOBhuOBhOOBoQ0KK+OCgeOBi+OBnyzjgbLjgo3jgY0NCivjgb/jgoTjgoLjgags44GC44GN44Gy44KNDQor44KC44KKLOOChuOBiw0KK+OCguOCiuOBnyzjgYvjgZrjgojjgZcNCivjgoDjgonjgYvjgb8s44G+44GV44GC44GNDQor44KA44GfLOOBsuOBleOBlw0KK+OBquOBjOOChOOBvizjgabjgaTjgoQNCivjgarjgYvjga/jgoks44Gf44GL44GTDQor44Gq44GL44KA44KJLOOBguOBjeOBruOBtg0KK+OBquOBi+OCgOOCiSzjgb7jgooNCivjgarjgYvjgZ8s44GT44GG44GE44GhDQor44Gq44GL44GW44KPLOOBkeOBhOOBmeOBkQ0KK+OBq+OBlyzjgYvjga3jga7jgbYNCivjgavjgZfjgoTjgb4s44G/44Gq44GTDQor44Gu44GoLOOBmOOCheOCk+OBhOOBoQ0KK+OBiuOBjOOCjyzjgojjgYbjgZgNCivjgYrjgYrjgbAs44G+44GV44Gy44GnDQor44GK44KA44KJLOOBvuOChg0KK+OBhOOBkeOBvuOBpCzjgZ/jgYvjgZMNCivjgYrjgYTjgaAs44Gy44Go44GXDQor44GK44GL44GW44KPLOOBsuOBqOOBlw0KK+OBiuOBrizjgarjgYrjgb8NCivjgZXjgYTjgajjgYYs44GC44GN44Gy44GVDQor44GV44GL44GELOOBruOBtuOChOOBmQ0KK+OBleOBj+OBnyzjgojjgZfjgYLjgY0NCivjgZXjgajjgYYs44G+44GV44Gy44GTDQor44GV44Go44GGLOOBk+OBhuOBmA0KK+OBleOCj+OBr+OBlyzjgZ/jgaTjgobjgY0NCivjgZfjgbDjgZ8s44GC44KE44GTDQor44GX44G/44GaLOOBi+OBpOOChuOBjQ0KK+OBl+OBiuOBvyzjgZfjgpPjgZgNCivjgZfjgZ/jgoks44Gy44GV44GXDQor44GZ44GO44GfLOOBi+OBpOOBsuOBkw0KK+OBmeOBkeOBjOOCjyzjga7jgbbjgojjgZcNCivjgZnjgZrjgY0s44GC44GN44Gy44KNDQor44GX44KH44GGLOOBl+OCh+OBhuOBn+OCjeOBhg0KK+OBn+OBhCzjgb7jgZXjgabjgosNCivjgZ/jgYvjgY4s44Gm44Gk44KN44GGDQor44Gf44GL44Gv44GXLOOBqOOBl+OBig0KK+OBn+OBi+OChOOBvizjgbLjgafjgaTjgZANCivjgZ/jgZHjgZfjgZ8s44GX44KH44GG44Ge44GGDQor44Gf44GTLOOCiOOBl+OBjQ0KK+OBn+OBquOBiyzjgY3jgofjgYbjgbjjgYQNCivjgZ/jgass44GL44Ga44Gq44KKDQor44Gf44Ga44GRLOOBm+OBhOOBhOOBoQ0KK+OBqOOCguOBqOOBlyzjgZHjgpPjgZgNCivjgaTjgaHjgoLjgags44G144G/44GKDQor44Gk44Gu44GgLOOBl+OCh+OBhuOBmA0KK+OBhuOBoeOBoCzjgZXjgajjgosNCivjgYbjgYjjgaAs44GC44GN44Gu44KKDQor44GG44Gu44GNLOOBruOBtuOBsuOBkw0KK+OCj+OBoCzjgbLjgo3jgZ/jgaQNCivjgo/jgZfjgZos44GX44KH44GGDQor44KP44Gf44Gq44G5LOOBk+OBhuOBm+OBhA0KK+OChOOBvuOBoCzjgZ/jgYvjgagNCivjgoTjgb7jgZDjgaEs44KI44GG44GYDQor44KE44G+44KC44GoLOOBv+OBpOOBnuOBhg0KK+OChOOBvuOBqizjgZvjgYTjgYTjgaHjgo3jgYYNCivjgoTjgZfjgo0s44Gf44GR44GXDQor44KI44GT44KE44G+LOOBvuOBleOBsuOBkw0KK+OCiOOBl+OBoCzjgajjgoLjgb8NCivjgobjgY0s44Gb44Gk44GTDQor44Gy44KJ44GL44KPLOOBvuOBquOBtg0KK+OCguOCiuOBhOOBoSzjgYjjgYTjgZjjgo3jgYYNCivjgZfjgb/jgZos44GR44GEDQor44G144GY44KF44GGLOOBl+OCk+OBhOOBoQ0KK+OBr+OBjOOCjyzjgZ/jgYvjgZcNCivjga/jgZvjgYzjgo8s44Gy44Gn44GC44GNDQor44Gy44KJ44GuLOOBn+OBj+OChA0KK+OBu+OCk+OBlOOBhizjgabjgovjgbLjgZMNCivjgYTjgZHjgaAs44Go44GX44KG44GNDQor44GE44GX44GL44KPLOOBsuOCjeOBjQ0KK+OBhOOBqOOBhizjgojjgZfjgb8NCivjgYvjgarjgoTjgb4s44GT44GG44GYDQor44GL44Gf44GO44KKLOOBl+OCk+OBmeOBkQ0KK+OBjeOCguOBqCzjgZ/jgY/jgoQNCivjgY3jgoTjgb4s44Gb44GE44GYDQor44GT44GY44GqLOOBkeOCkw0KK+OBk+OCk+OBqSzjgbLjgo3jgbLjgZMNCivjgY/jgorjgZ8s44GV44Go44GXDQor44G+44GZ44GgLOOBoOOBhOOBoQ0KK+OBv+OBi+OBvyzjgb/jgaTjgYoNCivjgb/jgo8s44Gf44GL44Gu44G2DQor44KC44Gh44Ga44GNLOOBruOBtuOChuOBjQ0KK+OCguOCiuOChOOBvizjgajjgZfjgYoNCivjgarjgYzjgbXjgZgs44GN44G/44Gy44GoDQor44Gq44GL44GY44G+LOOBvuOBleOBsuOBkw0KK+OBquOBi+OCgOOCiSzjgbLjgZXjgagNCivjgarjgZnjga4s44Gq44GK44GNDQor44Gu44GgLOOChuOBhuOBkw0KK+OBiuOBjOOCjyzjgorjgofjgYbjgZMNCivjgYrjgYrjgYvjgo8s44GY44KF44KT44GTDQor44GK44GK44Gf44GrLOOBkeOCkw0KK+OBiuOBj+OCgOOCiSzjgb7jgarjgb8NCivjgYTjgY4s44GC44GN44Gu44KKDQor44GV44Gq44GgLOOCiOOBl+OBsuOCjQ0KK+OBleOBqOOBhizjgbLjgafjgbLjgZUNCivjgZvjgY0s44KI44GG44GE44GhDQor44GX44Gw44GfLOOChuOBjeOBruOCig0KK+OBl+OBvuOBi+OCjyzjgZfjgZLjgosNCivjgZfjgYrjgZjjgoos44Gy44KN44GXDQor44GZ44GgLOOBqOOCguOBr+OCiw0KK+OBmeOBmuOBjSzjgZPjgYbjgZgNCivjgZ/jgYvjgaAs44Gf44GL44Gu44KKDQor44Gf44GL44Gv44GXLOOBjeOCh+OBhuOBkw0KK+OBn+OBi+OBmSzjgaTjgojjgZcNCivjgZ/jgavjgZDjgaEs44Gq44GK44GNDQor44Gk44Gt44GL44KPLOOBsuOCjeOBteOBvw0KK+OBhuOBiOOBr+OCiSzjgbLjgafjgYLjgY0NCivjgoTjgY7jgoLjgags44Gy44KN44GXDQor44KE44G+44GQ44GhLOOBqOOCguOBkw0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgY0NCivjgoTjgZbjgY0s44Gq44GK44GNDQor44KI44GX44GgLOOBr+OCi+OBsuOBkw0KK+OBguOBhOOBi+OCjyzjgbLjgo3jgbXjgb8NCivjgaHjgYvjga/jgoks44GK44GV44KADQor44KP44Gf44Gq44G5LOOBn+OBi+OBiA0KK+OBruOBluOBjSzjgabjgovjgYLjgY0NCivjgYLjgYvjgavjgZcs44Gq44GK44Gy44KNDQor44GX44G+44KC44GoLOOBguOBqOOCgA0KK+OBguOBquOBluOCjyzjgb/jga7jgosNCivjgYTjgYbjgaEs44G+44GT44GoDQor44GE44GX44GL44KPLOOBk+OBhuOBhOOBoQ0KK+OBhOOBoeOBi+OCjyzjgZ3jgogNCivjgYTjgb7jga/jgoTjgZcs44GX44KT44GE44GhDQor44GG44Gh44KE44G+LOOCiOOBl+OBn+OBiw0KK+OBiuOBhuOBleOBiyzjgb7jgZXjgZ/jgYsNCivjgYrjgYrjgZ/jgass44Gy44Gn44GNDQor44GK44GK44Gw44KE44GXLOOBl+OCk+OBmA0KK+OBiuOBkOOCiSzjgbLjgo3jgZMNCivjgYvjgY3jgoLjgags44Gy44KN44GXDQor44GL44Go44GGLOOBl+OBkuOBruOCig0KK+OBi+OBv+OChOOBvizjgbLjgo3jgYvjgZoNCivjgYvjgo/jgZss44Gq44GK44GNDQor44GN44Gf44GY44G+LOOBguOBjeOBsuOCjQ0KK+OBj+OBleOBi+OBuSzjgb7jgYjjgZMNCivjgZPjgYTjgacs44Gy44Gn44GNDQor44GT44G+44GkLOOBkeOBhOOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgbLjgafjgY0NCivjgZXjgajjgYYs44GY44KF44KTDQor44GX44KF44GGLOOBvuOBleOChA0KK+OBl+OBruOBoCzjgb7jgZnjgb8NCivjgZfjgb/jgZos44GV44Go44GXDQor44GZ44GM44KP44KJLOOBl+OBkuOBteOBvw0KK+OBmeOBv+OBi+OCjyzjgYvjgaTjgYLjgY0NCivjgZ/jgYvjgZss44GN44KI44Gf44GLDQor44Gf44GR44GgLOOBkeOBhOOBhOOBoQ0KK+OBn+OBquOBiyzjgZHjgpPjgZgNCivjgZ/jgbDjgZ8s44G/44KP44GTDQor44Gk44Gh44Gv44GXLOOCgOOBreOBsuOCjQ0KK+OBqOOCgOOCjSzjgarjgaTjgbLjgZMNCivjgarjgYvjgYzjgo8s44Gf44GL44GTDQor44Gq44GZLOOBsuOCjeOBlw0KK+OBq+OBl+OBr+OCiSzjgarjgYrjgY0NCivjga7jgoDjgoks44GL44Ga44Gy44GTDQor44Gv44Gb44GM44KPLOOBkeOCk+OBhOOBoQ0KK+OBr+OCieOBoCzjgajjgoLjgZMNCivjgbLjgZjjgoos44GI44KKDQor44G144GY44GfLOOBruOBtuOBkw0KK+OBu+OBneOBi+OCjyzjgZ/jgaTjgYoNCivjgb7jgZnjgbbjgaEs44Gf44GL44GXDQor44G+44Gk44Gq44GMLOOChuOBjQ0KK+OBvuOBpOOChOOBvizjgabjgaTjgoQNCivjgb/jgZ8s44G/44Gu44KLDQor44G/44KI44GXLOOCiOOBhuOBkw0KK+OCgOOCieOChOOBvizjgb7jgZPjgagNCivjgoLjgorjgZfjgZ8s44GL44Ga44Gy44KNDQor44KE44GY44G+LOOBquOBiuOBkw0KK+OChOOBvuOBluOBjSzjgbLjgo3jgobjgY0NCivjgY/jgorjga/jgoks44G+44GV44GNDQor44KI44GT44KE44G+LOOCiOOBhuOBkw0KK+OCj+OBn+OBquOBuSzjgojjgZfjgbLjgagNCivjgY/jgo/jgZfjgb4s44GZ44GQ44KLDQor44GV44GL44KC44GoLOOBsuOBp+OBruOBtg0KK+OBhOOBqOOBhizjgZ/jgaDjgbLjgo0NCivjgYbjgoHjgarjgYQs44GZ44GZ44KADQor44GK44GL44GX44KNLOOBl+OCjeOBhg0KK+OBi+OCj+OBiuOBiyzjgbLjgafjgY0NCivjgY/jgbAs44Gf44GL44GXDQor44GT44GG44GgLOOBvuOBleOBn+OBkQ0KK+OBleOBqOOBhizjgb7jgobjgb8NCivjgYLjgbks44G+44GV44Gv44KLDQor44Gf44GL44Gv44GXLOOBsuOBleOBvw0KK+OBn+OBsOOBnyzjgYvjgaTjgobjgY0NCivjgarjgYvjgYzjgo8s44GT44GG44GE44GhDQor44Gv44GX44KC44GoLOOBqOOBiuOCiw0KK+OBsuOCieOBrizjgb7jgZXjgZ/jgYsNCivjgbvjgZ3jga4s44GC44GN44Gy44GoDQor44KA44KJ44GL44G/LOOBkeOBhOOBkw0KK+OCiOOBl+OCgOOCiSzjgYjjgooNCivjgYLjgb7jgoQs44G+44GV44KLDQor44Gh44KH44GGLOOBoOOBhOOBmeOBkQ0KK+OBlOOBhuOBoCzjgY3jgojjga7jgbYNCivjga/jgoTjgYvjgo8s44Gy44KN44GNDQor44G144KL44GfLOOBquOCi+OBjQ0KK+OBhOOBhOOBoCzjgZ/jgYvjgbLjgo0NCivjgYTjgZfjgo/jgZ/jgoos44Gy44KN44GL44GkDQor44GL44Gw44KE44G+LOOBvuOBleOBjQ0KK+OBi+OCk+OBoCzjgoTjgZnjgbLjgagNCivjgY3jgZ/jgoDjgoks44KI44GX44GKDQor44GT44KT44GuLOOBk+OBhuOBhOOBoQ0KK+OBvuOBoeOBoCzjga/jgovjgb8NCivjgb7jgaTjgYQs44Gf44GR44GXDQor44G/44GG44KJLOOBkeOBhOOBlA0KK+OBn+OBr+OCiSzjga7jgorjgZMNCivjgoDjgonjgYvjgb8s44Gf44Gk44Gy44GTDQor44Gq44GL44G/44GtLOOBvuOCguOCiw0KK+OBquOBi+OBluOCjyzjgY3jgojjgZcNCivjgYrjgYrjgZ8s44GX44GS44GC44GNDQor44GE44GX44GL44KPLOOCiOOBhg0KK+OBhOOBqOOBhizjgajjgoLjgoQNCivjgZXjgajjgYYs44Gk44GQ44Gy44GnDQor44GX44Gw44GfLOOBquOBiuOBjQ0KK+OBneOCgeOChCzjgYLjgY3jgbLjgZMNCivjgZ/jgZHjgaAs44GC44GN44KJDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBn+OBq+OBl+OBnyzjgbXjgb/jga4NCivjgaTjgaHjgoQs44KI44GX44GTDQor44KP44GY44G+LOOCiuOBkw0KK+OChOOBvuOBoCzjgbLjgo3jgY0NCivjgoTjgb7jgZbjgY0s44KG44Gf44GLDQor44Gf44GL44Gv44GXLOOBvuOBleOBjQ0KK+OBguOCk+OBqeOBhizjgobjgY0NCivjgYTjgZfjgoLjgags44KK44KH44GG44GZ44GRDQor44GE44KP44GV44GNLOOBv+OBmuOBvuOBlQ0KK+OBhuOCgeOBr+OCiSzjgZ/jgYvjgZcNCivjgYrjgYzjgZ8s44KE44GZ44GXDQor44GK44Gr44GW44KPLOOBl+OBkuOBjQ0KK+OBi+OBmCzjgYrjgZXjgoANCivjgYvjga3jgZMs44Gu44G244GL44GkDQor44GL44KP44G+44GfLOOBsuOCjeOBjQ0KK+OBj+OBvCzjgajjgoLjga7jgooNCivjgZPjgYbjgZXjgY0s44GT44GG44GE44GhDQor44GV44GE44G7LOOBquOCi+OBsuOCjQ0KK+OBleOBquOBoCzjgYrjgZXjgoANCivjgZfjgZfjgaks44GP44Gr44GKDQor44GZ44GO44Gv44KJLOOBjeOCiOOBl+OBkg0KK+OBn+OBi+OBiuOBiyzjgobjgb8NCivjgYTjgajjgYYs44GY44KF44KT44GYDQor44Gq44GL44GKLOOBl+OCk+OBmA0KK+OBquOBi+OBrizjgZgNCivjgavjgZfjgYvjgYQs44Go44GX44G/44GkDQor44Gt44KN44KBLOOBsuOCjeOBlw0KK+OBr+OBtizjgb7jgZPjgagNCivjgbLjgonjgYQs44GL44GK44KKDQor44G144GY44KP44KJLOOBqOOBiuOCiw0KK+OBu+OCk+OBvizjgobjgY3jga7jgbYNCivjgb7jgaTjgZbjgo8s44Gh44GL44KJDQor44G/44KE44KC44GoLOOChOOBmeOBmA0KK+OCguOCiuOChCzjgbvjgb7jgowNCivjgoTjga4s44Gy44KN44GXDQor44KE44G+44GX44GfLOOBvuOBhOOBkw0KK+OCiOOBoCzjgZ/jgYvjgbLjgo0NCivjgo/jgZ/jgbks44Gf44GL44GXDQor44GC44GN44GwLOOBkeOBhOOBhOOBoQ0KK+OBguOBuSzjgb7jgobjgb8NCivjgYTjgajjgYYs44KI44GG44GYDQor44GE44GX44KA44KJLOOChuOBv+OBkw0KK+OBhOOBqOOBhizjgb7jgZXjgosNCivjgYTjgb7jgYQs44Gf44GR44GXDQor44GG44GI44Gv44KJLOOCguOBqOOBkw0KK+OBhuOCgeOBpCzjgYLjgY3jgbLjgZMNCivjgYTjgb7jgavjgZcs44Gy44KN44KG44GNDQor44GK44GK44GE44GXLOOBvuOBleOBr+OCiw0KK+OBiuOBi+OBrizjgobjgY0NCivjgYrjgYzjgo8s44Go44GK44KLDQor44GL44GM44G/LOOBiOOCiuOBiw0KK+OBi+OBn+OChOOBvizjgb/jgaTjgZMNCivjgYvjgb8s44KI44GX44Gm44KLDQor44GL44KP44GV44GNLOOBsuOBqOOBlw0KK+OBi+OCj+OCguOBqCzjgb/jgaHjgYoNCivjgY3jgZ/jgoLjgags44Gk44Go44KADQor44GO44KH44GG44G2LOOBsuOCjeOBkw0KK+OBk+OBhOOBkeOBoCzjgZ/jgaTjgo3jgYYNCivjgZPjgaDjgb4s44Gf44GE44Gh44KN44GGDQor44GT44Gw44KE44GXLOOBsuOBp+OBsuOBqA0KK+OBleOBhOOBlOOBhizjgb/jgo/jgZMNCivjgZXjgYvjgYzjgb8s44GE44Gh44KN44GGDQor44GV44GV44GNLOOBquOBquOBiA0KK+OBleOCjyzjgZHjgpPjgZQNCivjgZfjgb/jgZos44KG44GN44GKDQor44GX44KH44GG44GgLOOBl+OBkuOBruOCig0KK+OBmeOBmuOBjSzjgYvjgZrjgbLjgokNCivjgYTjgZfjga/jgb4s44GR44KT44GoDQor44Gf44GL44Gv44GXLOOBvuOBjeOBkw0KK+OBn+OBkeOCjyzjgZfjgpPjgZgNCivjgZ/jga/jgoks44GV44Go44GXDQor44Gk44Gk44G/LOOBvuOBk+OBqA0KK+OBquOBhOOBqOOBhizjgZPjgYbjgZgNCivjgarjgYvjgZjjgb4s44Gu44Ge44KADQor44Gq44GL44KA44KJLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBhOOBkeOBoCzjgb7jgZXjgZ/jgYsNCivjgavjgZcs44Gk44Gt44GC44GNDQor44Gu44Gu44GE44Gh44KELOOBvuOBmeOBig0KK+OBr+OBl+OBmuOCgSzjgobjgYbjgZMNCivjga/jgaPjgajjgoos44KG44GGDQor44GE44Gu44GQ44GhLOOBi+OBpOOBteOBvw0KK+OBsuOBvuOBjSzjgajjgoLjga7jgooNCivjgbXjgYvjgZbjgo8s44KK44GIDQor44G144GY44Gq44GMLOOBteOBv+OBkw0KK+OBteOCi+OChCzjgb7jgorjgZMNCivjgbvjgorjgYvjgo8s44Go44KC44Gy44KNDQor44GE44GQ44GhLOOBn+OBi+OBsuOCjQ0KK+OBv+OBpOOBr+OBlyzjgYjjgYTjgYTjgaENCivjgb/jgoTjgZfjgZ8s44KI44GG44GTDQor44KA44KJ44G+44GkLOOBvuOBleOChuOBjQ0KK+OBhOOBruOBhuOBiCzjgYLjgY3jga7jgooNCivjgoTjga4s44Gf44Gg44Gf44GLDQor44KE44G+44GgLOOBn+OBpOOBig0KK+OChOOBvuOCguOBqCzjgoDjga3jgZ/jgYsNCivjgojjgZfjgaAs44KK44KH44GGDQor44KP44Gf44Gq44G5LOOBsuOBp+OChuOBjQ0KK+OCj+OBn+OBquOBuSzjgajjgZfjgYgNCivjgZPjgYbjgaAs44GV44Go44KLDQor44GK44GM44KPLOOBsuOCjeOBguOBjQ0KK+OBguOBjeOCguOBqCzjgZnjgZnjgoANCivjgYLjgZXjga4s44Go44KC44Gy44GTDQor44GC44G5LOOBvuOBleOBiuOBvw0KK+OBhOOBpOOBrizjgb/jgY3jgYoNCivjgYTjgaHjga7jgZss44GT44Ga44GIDQor44GE44KK44GfLOOChOOBmeOBguOBjQ0KK+OBhOOBl+OBiuOBiyzjgZfjgpPjgYTjgaENCivjgYTjgaHjgY0s44G+44GV44GoDQor44GE44Gv44KJLOOBjeOCiOOBn+OBiw0KK+OBhOOBvuOBmizjgaTjgojjgZcNCivjgYTjgo/jgZnjgY4s44G/44GLDQor44GG44GZ44GELOOBvuOBleOBsuOCjQ0KK+OBiOOBqOOBhizjgZHjgpPjgZgNCivjgYrjgYYs44KI44GX44Gy44KNDQor44GE44KP44GN44KKLOOCj+OBn+OCiw0KK+OBiuOBiuOBpOOBjSzjgZjjgoXjgpMNCivjgYrjgoDjgoks44GP44G/DQor44GK44GL44GW44GNLOOBqOOCguOBv+OBoQ0KK+OBiuOBjOOCjyzjgYLjgY3jgokNCivjgY3jgZ/jgoDjgoks44G+44KK44GTDQor44GK44GK44KE44G+LOOBoeOBmuOCiw0KK+OBi+OBleOBluOBjSzjgojjgZfjgbLjgo0NCivjgYvjgaTjga4s44Gf44GL44Gu44KKDQor44GL44Go44KKLOOBkeOCk+OBmA0KK+OBjOOBvyzjgbLjgo3jgZcNCivjgYvjgo/jgYvjgb8s44G+44GV44G/DQor44GL44KP44G/LOOBl+OCk+OBmA0KK+OBjeOBn+OBl+OCjSzjgYvjgZrjgojjgZcNCivjgY3jgoDjgoks44GX44GS44KLDQor44GP44GY44KJ44GK44GLLOOBoOOBhOOBjQ0KK+OBhOOBl+OBkOOCjSzjgZ/jgo3jgYYNCivjgYTjgarjgajjgb8s44Gg44GE44GZ44GRDQor44GT44Ga44G+LOOBvuOBhOOBkw0KK+OBk+OBl+OBhCzjgajjgoLjgbLjgo0NCivjgZPjgavjgZcs44Gf44Gg44GXDQor44GT44Gw44KE44GXLOOCiOOBl+OBig0KK+OBleOBhOOBqOOBhizjgajjgoLjgYgNCivjgZXjgYvjgYQs44G/44Gt44GKDQor44GV44GL44KC44GoLOOBmOOCheOCk+OBkw0KK+OBleOBqOOBhizjgZfjgpPjgYTjgaHjgo3jgYYNCivjgYTjgZfjgZDjgo0s44Gy44Gn44Gf44GLDQor44GX44Gq44GgLOOCiOOBl+OBkw0KK+OBl+OBvuOBoCzjgojjgZfjgZXjgaANCivjgYTjgajjgYYs44GN44KH44GG44GTDQor44GZ44GO44KE44G+LOOBi+OBmuOBqg0KK+OBmeOBmuOBjSzjgZPjgYbjgZgNCivjgZvjgY3jgZDjgaEs44GR44GE44GTDQor44GL44G/44KELOOBi+OBmeOBvw0KK+OBn+OBi+OBrizjgZHjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44GT44GG44GE44Gh44KN44GGDQor44Gf44GL44G/44GW44KPLOOCiuOCheOBhuOBjQ0KK+OBn+OBkeOBhuOBoSzjgZ/jgYvjgY3jgogNCivjgZ/jgZHjgoLjgags44GL44Ga44Gy44GTDQor44Gf44Gh44Gw44GqLOOBguOChOOBkw0KK+OBn+OBquOBiyzjgarjgYrjgZMNCivjgZ/jgarjgb8s44Gk44Gt44GKDQor44Gf44Gu44GK44GLLOOBv+OBiOOBkw0KK+OBoeOCheOBhizjgZXjgoTjgYsNCivjgaTjgaHjgoQs44Gb44KM44GqDQor44Go44GYLOOBvuOBleOBkw0KK+OBqOOCiOOBoCzjgZ/jgY/jgoQNCivjgarjgYvjgZjjgb4s44Go44KC44GTDQor44Gq44GM44GfLOOCiOOBl+OBsuOBkw0KK+OBquOBjOOBr+OCiSzjgojjgZfjgobjgY0NCivjgarjgYvjgoDjgoks44G+44GV44GL44GkDQor44Gr44GX44GL44KPLOOBhOOCj+OBig0KK+OBq+OCjyzjgobjgY3jgYgNCivjga7jgYzjgb8s44KG44GLDQor44Gv44GX44Ga44KBLOOBn+OBi+OBlw0KK+OBr+OBm+OBuSzjgojjgYbjgbjjgYQNCivjga/jgarjgbbjgZUs44GK44GV44KADQor44Gv44KE44GXLOOBvuOBk+OBqA0KK+OBr+OCi+OBn+OBqyzjgZ/jgYvjgbLjgo0NCivjgbLjgofjgYbjgYgs44Go44KC44Gy44KNDQor44Gy44KJ44Gs44G+LOOBi+OBmuOBig0KK+OBteOBj+OBoCzjgZ/jgYvjgbLjgo0NCivjgbXjgZjjgYos44Gf44GL44KG44GNDQor44GE44Gu44GG44GILOOBruOCiuOBig0KK+OBteOCi+OBi+OCjyzjgb7jgZXjgb/jgaQNCivjgbXjgo8s44G/44GKDQor44G+44GI44GL44KPLOOCi+OBvw0KK+OBvuOBjeOBnyzjgYvjgaTjgobjgY0NCivjgb7jgaTjgYbjgoks44GI44KK44GTDQor44G+44Gk44GgLOOBn+OBi+OBlw0KK+OBvuOBpOOBv+OChCzjgZHjgpPjgYTjgaENCivjgb7jgarjgbks44KK44KH44GG44GZ44GRDQor44G/44Gq44GoLOOBsuOCjeOChuOBjQ0KK+OCgOOCieOBi+OBvyzjgb7jgZXjgb8NCivjgoLjgajjgojjgZcs44G+44GT44GoDQor44KC44KK44GfLOOBkeOCk+OBmA0KK+OChOOBjizjgZHjgYTjgZnjgZENCivjgYzjgpMs44Gv44Gq44GIDQor44KE44G+44GQ44GhLOOChOOBmeOBvuOBlQ0KK+OChOOBvuOBleOBjSzjgZjjgoXjgpMNCivjgoTjgb7jgaAs44Gf44Gk44GYDQor44KE44G+44Gr44GXLOOBquOBiuOBjQ0KK+OCiOOBk+OBnyzjgajjgoLjgbXjgb8NCivjgojjgZfjgYvjgo8s44Gf44GP44KEDQor44KI44GX44KA44KJLOOBj+OBq+OBsuOBkw0KK+OCj+OBjeOBnyzjgajjgYrjgosNCivjgo/jgZ/jgarjgbks44Gd44GGDQor44GC44G+44GTLOOCiOOBl+OBig0KK+OBvuOBrizjgYLjgY0NCivjgYbjgaHjgoDjgoks44Gh44Gq44GkDQor44GV44GP44KJ44GELOOBvuOBvw0KK+OBl+OCieOBhCzjgobjgZ/jgYsNCivjgabjgonjgY/jgoks44KI44GG44GYDQor44GK44GL44GgLOOBn+OBpOOBlw0KK+OBlOOBqOOBhizjgYLjgY3jgbLjgo0NCivjgaTjgbDjgY0s44Gb44GE44GE44Gh44KN44GGDQor44GE44Gq44GM44GNLOOBsuOBp+OBqOOBlw0KK+OBu+OCiuOBuSzjgoLjgajjgZgNCivjgYvjgYQs44KI44GX44GIDQor44Gf44GL44GgLOOBqOOBj+OBsuOBkw0KK+OBk+OBn+OBqyzjgbXjgb/jgbLjgZMNCivjgYTjga/jgoks44GR44GE44GTDQor44GC44GN44Gv44KJLOOBl+OCheOCk+OBmeOBkQ0KK+OBguOBuSzjgobjgY0NCivjgYLjgonjgY0s44Gy44KN44GXDQor44GE44GX44GELOOBruOBtuOChOOBmQ0KK+OBhOOBl+OBnOOBjSzjgaDjgYTjgZnjgZENCivjgYTjgZ/jgass44Gf44GL44GXDQor44GE44Go44GGLOOBl+OBmuOBkw0KK+OBhOOBrizjgb/jgY0NCivjgYTjgo/jgZbjgY0s44Gy44KN44Gf44GLDQor44GG44GI44GuLOOBkeOCk+OBmA0KK+OBhuOCgeOBr+OCiSzjgarjgaTjgZMNCivjgYrjgYrjgYgs44Gg44GE44GZ44GRDQor44GK44GK44GkLOOBoeOBiA0KK+OBiuOBiuOBpOOBvCzjgb7jgZXjgb/jgaQNCivjgYrjgYvjgaAs44Gf44Gk44KEDQor44GK44GL44KC44GoLOOBsuOBleOBlw0KK+OBiuOBj+OBquOBiyzjgZvjgYTjgZcNCivjgYrjgbDjgoks44KG44KK44GTDQor44GL44GY44Gq44GMLOOChuOBn+OBiw0KK+OBi+OBqOOBhizjgorjgofjgYYNCivjgYvjgajjgYYs44KP44Gf44KLDQor44GL44KP44GELOOBk+OBhuOBmA0KK+OBi+OCj+OBkOOBoSzjgZnjgZnjgoANCivjgY3jgZcs44KM44GE44GTDQor44GN44Gp44GT44KNLOOBguOBpOOBlw0KK+OBj+OBvOOBnyzjgb7jgobjgb8NCivjgY/jgo/jgbDjgoks44KG44GL44KKDQor44GT44GP44G8LOOCguOCguOBiA0KK+OBlOOBqOOBhizjgZHjgYTjgZMNCivjgZPjgb/jgoTjgb4s44G+44GV44KI44GXDQor44GV44GE44Go44GGLOOBl+OBkuOCiw0KK+OBleOBi+OCguOBqCzjgaHjgYvjgokNCivjgZXjgZXjga4s44GC44GL44GODQor44GV44Gq44GgLOOBvuOBleOChuOBjQ0KK+OBl+OBvuOBoCzjgZ/jgZHjgZcNCivjgZfjgoLjgbXjgZgs44Gu44G244Gy44GTDQor44GX44KPLOOBkeOCk+OBhOOBoQ0KK+OBmeOBjuOBr+OCiSzjgbLjgo3jga7jgbYNCivjgZnjgZrjgY0s44G+44GV44KEDQor44Gb44GNLOOBguOBpOOBquOCig0KK+OBn+OBi+OBjizjgYvjgogNCivjgZ/jgYvjga/jgZcs44Gy44KN44Gq44GKDQor44Gf44GN44GW44KPLOOBleOBqOOBlw0KK+OBn+OBkeOBoCzjgobjgYbjgYTjgaHjgo0NCivjgZ/jgarjgYss44Gb44GE44GYDQor44Gf44Gr44GL44KPLOOCiOOBl+OBpOOBkA0KK+OBn+OBsOOBnyzjgZHjgYTjgZ/jgo3jgYYNCivjgaTjgYvjgaAs44KK44GIDQor44Gk44G844GfLOOBvuOBleOChA0KK+OBqOOBhuOBi+OBhOOCiuOCkyzjgobjgb8NCivjgajjga7jgYQs44GC44GN44GTDQor44Gq44GL44GM44KPLOOCiOOBl+OBruOCig0KK+OBquOBjOOBrizjgorjgofjgYbjgZ8NCivjgarjgYvjgoTjgb4s44Go44KC44Gy44KNDQor44Gr44GX44GK44GLLOOBl+OCk+OBhOOBoQ0KK+OBreOBjuOBlyzjgorjgYsNCivjga7jgZbjgY0s44Gg44GE44GZ44GRDQor44Gv44GX44GQ44GhLOOBqOOBl+OBsuOCjQ0KK+OBr+OBo+OBqOOCiizjgobjgYbjgYTjgaENCivjga/jgb7jgaAs44Gg44GE44GYDQor44Gy44GX44Gs44G+LOOBguOBpOOBlw0KK+OBsuOCieOBnyzjgb7jgb/jgZMNCivjgbXjgY/jgaAs44Gf44GL44GXDQor44G144GY44GI44GgLOOBsuOBleOBi+OBmg0KK+OBteOBmOOCj+OCiSzjgZ/jgY/jgagNCivjgbvjgorjgYvjgo8s44GX44KF44GG44GYDQor44G+44Gk44GKLOOBsuOBp+OBruOCig0KK+OBvuOBpOOChOOBvizjgb/jgaTjgabjgosNCivjgb/jgoQs44GC44GN44KJDQor44G/44KE44KC44GoLOOBj+OBq+OBkw0KK+OCgOOCieOBi+OBvyzjgZ/jgaTjgbLjgo0NCivjgoLjgorjgZ8s44G+44G/DQor44KE44GQ44KJLOOBl+OCk+OBmA0KK+OChOOBvuOBoCzjgb/jgZrjgbsNCivjgobjgoks44GR44KT44GE44GhDQor44KI44GX44GW44KPLOOChuOBhuOBkw0KK+OCjeOBjyzjgYLjgY3jgZMNCivjgo/jgonjgbMs44Gy44KN44Gu44KKDQor44G/44Gy44KJLOOCiuOCh+OBhuOBuOOBhA0KK+OBv+OBjuOBnyzjgb7jgaoNCivjgZ/jgZHjgYbjgaEs44KK44KH44GGDQor44GK44Gu44Gn44KJLOOBj+OBq+OBsuOCjQ0KK+OBguOBi+OBjOOCjyzjgoLjgajjgZMNCivjgYLjgZXjgazjgb4s44GC44KEDQor44GC44KJ44GELOOBpOOCiOOBlw0KK+OBhOOBluOCjyzjgaHjga/jgosNCivjgYTjgZfjgbDjgZcs44Go44GX44KG44GNDQor44GE44GnLOOBquOCi+OBvw0KK+OBhOOBruOBhuOBiCzjgb7jgZPjgagNCivjgYTjgb7jgZzjgY0s44GP44G/44GTDQor44GE44KP44GfLOOBk+OBhuOBmA0KK+OBhuOBleOBvyzjgb7jgorjgZMNCivjgYjjga7jgY3jgaks44KI44KK44GTDQor44GK44GN44GfLOOChuOBjeOBruOCig0KK+OBiuOBiuOBpOOBiyzjgoLjgajjgYQNCivjgYrjga4s44Gy44KN44GXDQor44GK44GL44GgLOOBi+OBmuOBsuOCjQ0KK+OBiuOBj+OBj+OBvCzjgZ/jgYvjgZcNCivjgYvjgarjgYQs44GR44KT44GE44GhDQor44GL44G/44KELOOBleOBoeOBkw0KK+OBi+OCj+OBleOBjSzjgbLjgo3jgY0NCivjgY3jgaAs44GI44GE44GZ44GRDQor44GN44KA44KJLOOBteOBv+OBqA0KK+OBj+OCgeOBhuOBoSzjgZHjgpPjgZgNCivjgY/jgo/jga/jgoks44GX44GuDQor44GT44GMLOOBn+OBj+OBmA0KK+OBk+OBsOOChOOBlyzjgYLjgpPjgaoNCivjgZXjgYTjgajjgYYs44GR44KT44GE44GhDQor44GV44GV44GNLOOBr+OBquOBkw0KK+OBleOBqOOBhizjgb/jgY0NCivjgZXjga/jgoks44Gf44GL44G144G/DQor44GX44GgLOOCiOOBl+OBsuOCjQ0KK+OBl+OBv+OBmizjgZ/jgaTjgYoNCivjgZfjgoLjgZbjgY0s44Gf44Gk44Gy44GTDQor44GZ44GO44GG44KJLOOBvuOBleOBruOBtg0KK+OBmeOBqCzjgZXjgajjgZcNCivjgZvjgags44GR44GE44GYDQor44Gf44GL44GOLOOBruOCiuOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgb/jgYsNCivjgZ/jgZHjgaAs44KG44GG44GYDQor44Gf44GgLOOCiOOBl+OBn+OBiw0KK+OBn+OBq+OBkOOBoSzjgZ/jgYvjga7jgooNCivjgZ/jgoDjgoks44GR44GE44GTDQor44Gk44GL44Gv44KJLOOBv+OBmuOBuw0KK+OBpOOBvOOBhuOBoSzjgYLjgY3jgbXjgb8NCivjgabjgonjgaAs44KI44GX44GNDQor44Go44G/44GELOOBmOOCheOCk+OBkw0KK+OBquOBhOOBqOOBhizjgZ/jgYvjgYoNCivjgarjgYzjgZXjgYss44GT44GG44GYDQor44Gq44GM44GuLOOChOOBmeOBig0KK+OBquOBi+OCgOOCiSzjgYjjgYTjgZgNCivjgavjgZcs44Gq44GK44KG44GNDQor44Gr44GX44GgLOOCiuOCh+OBhuOBuOOBhOOBnw0KK+OBruOBkOOBoSzjgYvjgZrjgojjgZcNCivjga7jgoDjgoks44GL44Ga44GKDQor44Gv44Gj44Go44KKLOOBleOBqOOBvw0KK+OBr+OChOOBi+OCjyzjgobjgY0NCivjga/jgonjgaAs44G/44GIDQor44Gy44Gn44GX44G+LOOBv+OBjeOBkw0KK+OBteOBi+OBiizjgb/jgobjgY0NCivjgbXjgY/jga/jgoks44KG44GN44GTDQor44G144GY44KC44GoLOOBiOOCiuOBkw0KK+OBu+OBl+OBrizjgZnjgb/jgYoNCivjgbvjgorjgZDjgaEs44GY44KF44KT44GE44GhDQor44G+44GN44GuLOOBn+OBkeOBig0KK+OBk+OBv+OChCzjga7jgbzjgosNCivjgZPjgbDjgoTjgZcs44Gy44KN44GXDQor44GL44G/44GP44G8LOOBkeOCk+OBmA0KK+OBvuOBpOOBiizjgY3jgojjgZcNCivjgarjgYvjgaEs44GN44KI44GXDQor44GT44GZ44GOLOOCiOOBl+OBvw0KK+OBi+OBpOOBvuOBnyzjgajjgZfjgYvjgZoNCivjgYvjgYzjgoTjgb4s44G+44GV44Gv44KLDQor44GP44GcLOOBv+OBjeOBig0KK+OBj+OBvuOBoCzjgb7jgZXjgYLjgY0NCivjgZPjgZjjgofjgYYs44GV44Gq44GIDQor44GL44GX44GP44G+LOOBkeOCk+OBnuOBhg0KK+OBjeOBj+OBoSzjgojjgZfjgbLjgZUNCivjgY/jgb7jga4s44G+44GV44KG44GNDQor44GT44Gw44KE44GXLOOBl+OCheOCk+OBmA0KK+OBk+OBsOOChOOBlyzjga7jgbbjgZMNCivjgZPjgavjgZcs44GR44KT44GE44GhDQor44GT44Gw44GX44GM44KPLOOBsuOBqOOBlw0KK+OBi+OBhOOBqSzjgb/jgbsNCivjgY/jgo3jgY0s44GY44KF44KTDQor44GL44Gq44Gf44GrLOOCiuOBiA0KK+OBjeOBn+OBjOOCjyzjgarjgYrjgZ/jgYsNCivjgb/jgZrjgoLjgags44Gq44KL44GNDQor44G/44KE44GK44GLLOOBkeOCk+OCjeOBhg0KK+OCgOOCieOBnyzjgZHjgpPjgZgNCivjgoLjgorjgZ8s44Gy44Gn44Go44KCDQor44KE44Gq44GO44GgLOOBiOOCiuOBkw0KK+OChOOBvuOBluOBjSzjgZHjgpMNCivjgoTjgb7jgoLjgags44KE44GZ44Gu44KKDQor44KI44GULOOBqOOCguOBruOCig0KK+OCiOOBreOBoCzjgobjgb/jgZMNCivjgo/jgZMs44KK44GIDQor44GC44GL44Gv44GtLOOBsuOCjeOBguOBjQ0KK+OBguOBleOBuSzjgYvjgogNCivjgYLjgonjgYQs44Gy44Gn44GKDQor44GE44GR44GgLOOCiOOBl+OBn+OBiw0KK+OBhOOBl+OBqSzjgobjgY3jgZMNCivjgYTjgZrjga4s44G/44Gk44Gy44KNDQor44GE44Go44GGLOOBn+OBkeOBlw0KK+OBhOOBruOBhuOBiCzjga7jgbbjgZ/jgYsNCivjgYTjgo/jgZ8s44KI44GX44Gy44KNDQor44GG44GL44GELOOBsuOBleOBquOBjA0KK+OBiOOBqOOBhizjgbLjgo3jgY0NCivjgYrjgYrjgZXjgYss44Gf44Gm44GNDQor44GK44GK44Gr44GXLOOBv+OBpOOCiw0KK+OBiuOCgOOCiSzjgajjgoLjgZMNCivjgYrjgYvjga4s44KE44GZ44G144G/DQor44GK44GM44KPLOOBn+OBj+OChA0KK+OBiuOBluOBjSzjgZ/jgYvjgobjgY0NCivjgYrjgajjgYzjgo8s44KK44KH44GG44GTDQor44GL44GV44GELOOBquOBiuOBkw0KK+OBi+OBmeOBjCzjgZXjgarjgZMNCivjgYvjgajjgYYs44GR44KT44GE44Gh44KNDQor44GL44KB44Gf44GLLOOBn+OBhOOBmeOBkQ0KK+OBi+OCj+OBkOOBoSzjgYLjgobjgb8NCivjgYvjgo/jgbDjgZ8s44GC44KG44G/DQor44GN44Gf44GM44KPLOOBn+OBkeOBlw0KK+OBjeOCgOOCiSzjgojjgZfjgYvjgZoNCivjgY3jgorjgZXjgZMs44Gm44Gj44G644GEDQor44GP44KJ44Gv44GXLOOBn+OBi+OBguOBjQ0KK+OBlOOBhuOBoCzjgZ/jgZHjgbLjgo0NCivjgZPjgabjgoks44GN44G/44Gy44KNDQor44GT44Gw44KE44GXLOOBquOBpOOBkw0KK+OBk+OBvuOBpOOBsOOCiSzjgajjgoLjgbLjgZUNCivjgZXjgYTjgajjgYYs44Gm44KL44Gy44GVDQor44GV44GL44GELOOBn+OBi+OChuOBjQ0KK+OBleOBj+OCieOBhCzjgZXjgaDjgojjgZcNCivjgZXjgajjgYYs44GC44GNDQor44GV44KP44GV44GNLOOBn+OBi+OBlw0KK+OBl+OBvuOBrizjgajjgZfjgYLjgY0NCivjgZfjgofjgYbjgaAs44GP44G/DQor44GX44KT44Gf44GrLOOBkeOCk+OBnw0KK+OBmeOBjuOChOOBvizjgZ/jgYvjga0NCivjgZvjgY3jgoLjgags44GL44Gk44GC44GNDQor44Gf44GL44Gv44GXLOOCjOOBhA0KK+OBn+OBkOOBoSzjgo/jgZ/jgosNCivjgZ/jgaHjgbDjgaos44Gq44GK44GoDQor44Gf44Gq44GLLOOBleOBoeOBiA0KK+OBn+OBvuOBjSzjgarjgYrjgZMNCivjgaTjgYvjgaAs44Gm44Gk44KEDQor44Gk44G844GP44KJLOOBn+OBj+OChA0KK+OBqeOBhCzjga7jgbbjgZ/jgYsNCivjgajjgaAs44GX44KF44KT44GZ44GRDQor44Gq44GM44GV44GLLOOBv+OBoeOBkw0KK+OBquOBi+OBl+OBvizjgYLjgY3jgbLjgo0NCivjgarjgYvjgavjgZcs44G/44Gp44KKDQor44Gq44GL44KA44KJLOOBvuOChg0KK+OBquOBi+OChOOBvizjgZ/jgZHjgZcNCivjgavjgZfjga4s44KG44GLDQor44Gu44GP44GKLOOBi+OBiuOCig0KK+OBsOOBk+OBlyzjgZfjgpPjgZQNCivjga/jgZ/jga4s44KI44GG44GTDQor44Gv44KE44GXLOOBleOBqOOBkw0KK+OBr+OCieOBoCzjgYLjgaTjgZcNCivjgbLjgonjgYQs44KG44GG44GZ44GRDQor44Gy44KN44GILOOBguOBpOOBlw0KK+OBteOBj+OBoCzjgZXjgoTjgYsNCivjgbXjgZjjgoDjgoks44GC44GN44GTDQor44G144KL44GL44KPLOOBsuOCjeOBkw0KK+OBu+OBneOBoCzjgZfjgoXjgpPjgZQNCivjgb7jgYjjgYvjgo8s44G/44KPDQor44G+44GV44Go44GG44G/LOOBvuOBhOOBkw0KK+OBvuOBpOOBiuOBiyzjgajjgoLjgZMNCivjgb7jgaTjgbDjgoks44GC44GN44GTDQor44G/44GG44KJLOOBjeOCiOOBvuOBlQ0KK+OBv+OBnuOBr+OBnyzjgaHjgYgNCivjgb/jga/jgoks44G+44GV44GNDQor44G/44KE44KA44KJLOOBguOChA0KK+OCgOOCieOBnyzjgY/jgb/jgZMNCivjgoLjgoos44GP44G/44GTDQor44KC44KN44GILOOBsuOCjeOBi+OBmg0KK+OChOOBquOBjuOBleOCjyzjgZHjgYTjgZnjgZENCivjgoTjgb7jgYzjgZ8s44G+44GT44GoDQor44KE44G+44GgLOOBruOBtuOBkw0KK+OChOOBvuOCguOBqCzjgabjgovjgbLjgZMNCivjgoTjgb7jgoLjgags44KP44Gf44KLDQor44KI44GT44KE44G+LOOBguOChuOBvw0KK+OCiOOBl+OBoCzjgarjgYrjgZMNCivjgojjgZfjgoDjgoks44Gg44GE44GZ44GRDQor44KP44GgLOOBhOOBleOCgA0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgZXjgZXjga4s44GZ44GZ44KADQor44GT44Gg44G+LOOBn+OBi+OBsuOBkw0KK+OBi+OCj+OBl+OBvizjgb7jgZXjgarjgooNCivjgYvjgo/jga4s44GT44GG44GE44GhDQor44GL44G/44GG44KJLOOBi+OBmuOBsuOBpw0KK+OBk+OCk+OBrizjgbLjgafjgY0NCivjgY/jgoTjgb4s44Gf44GR44GXDQor44GT44GELOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBi+OBleOBmOOBvizjgbLjgo3jgbXjgb8NCivjgYvjgajjgYYs44Go44KC44G/DQor44GP44G844GfLOOBsuOCjeOChuOBjQ0KK+OBkeOBjOOBleOCjyzjgbLjgZXjgZcNCivjgYvjgo/jgY7jgZcs44Gy44KN44GXDQor44GL44G+44GgLOOBn+OBi+OBlw0KK+OBjeOBj+OBoSzjgYrjgZXjgoANCivjgYvjgajjgYYs44GL44Ga44Gy44GTDQor44G+44Gh44GgLOOBi+OBmuOBig0KK+OCgOOCieOBleOBjSzjgajjgZfjgYoNCivjgb7jgaTjgoLjgags44GR44KT44GE44GhDQor44G+44GV44GNLOOBjeOBj+OBig0KK+OBv+OBmuOBn+OBqyzjgarjgYrjgbLjgZMNCivjgb7jgovjgoTjgb4s44Gb44GE44GYDQor44KA44KJ44GX44G+LOOBn+OBoOOBig0KK+OBv+OBmuOBnyzjgojjgZfjgYoNCivjgoLjgorjgYQs44GO44KH44GYDQor44G/44KE44GW44KPLOOCiOOBl+OBig0KK+OBv+OBmuOBrizjgobjgorjgZMNCivjgoDjgonjgYTjgZcs44G+44KC44KLDQor44KA44KJ44GL44G/LOOBi+OBmuOBig0KK+OCgOOCieOBvuOBpCzjgYLjgaTjgZcNCivjgb/jgZ/jgY8s44GR44GE44Ge44GGDQor44G+44GI44GgLOOBguOBjeOBig0KK+OCgOOCieOBhCzjgajjgojjgb8NCivjgb7jgaTjgaAs44GV44Go44GXDQor44G/44Gm44KJLOOChOOBmeOBig0KK+OCguOCiizjgaTjgajjgoANCivjgb7jgaTjgYQs44Gf44GL44GXDQor44G/44GG44KJLOOBj+OBq+OBig0KK+OBvuOBpOOCguOBqCzjgZ/jgZHjgZcNCivjgb7jgaTjgZbjgo8s44KI44GX44GKDQor44G/44GL44G/LOOBr+OCi+OBjQ0KK+OBn+OBtuOBoSzjgZHjgpPjgZgNCivjgarjgYvjgZjjgb4s44G+44GV44Gy44KNDQor44Gq44GE44Go44GGLOOBn+OBkeOBig0KK+OBq+OBl+OBqizjgY3jgb/jgbLjgagNCivjgarjgYvjgYzjgb8s44GX44KF44GG44GE44GhDQor44Gq44GL44Gv44GfLOOBi+OBmuOBqOOBlw0KK+OBq+OBl+OBiuOBiyzjgbLjgo3jgZcNCivjgavjgZfjgaAs44KI44GX44KN44GGDQor44Gu44KA44KJLOOBj+OBq+OBsuOBkw0KK+OBquOBi+OCgOOCiSzjgbLjgafjgobjgY0NCivjgarjgYTjgajjgYYs44GL44Ga44GC44GNDQor44Gr44Gj44GfLOOChuOBn+OBiw0KK+OBquOBi+OBmOOBvizjgYvjgaTjgYoNCivjgarjgYvjgZss44Go44GX44GC44GNDQor44Gq44GL44GM44KPLOOBruOBtuOBig0KK+OBquOBi+OBmOOBvizjgoDjga3jgZ/jgYsNCivjgarjgYvjgoDjgoks44G744Ga44G/DQor44Gq44GM44GX44G+LOOBquOBiuOBmA0KK+OBiuOBjSzjgZnjgb/jgYoNCivjgYrjgY/jgaAs44Go44GX44GKDQor44GK44GK44Gv44GXLOOBsuOCjeOBlw0KK+OBiuOBjOOCjyzjgajjgYrjgosNCivjgYrjgZbjgo8s44Gy44KN44GXDQor44GK44GK44Gv44GXLOOChuOBn+OBiw0KK+OBiuOBiuOBrizjgb/jgaTjgYoNCivjgYrjgYrjgYTjgZcs44GYDQor44GK44GK44GL44KPLOOBi+OBiuOCiw0KK+OBiuOCiuOBjOOBlSzjgoTjgZnjgZ/jgZENCivjgYrjgYrjgZ8s44KI44GX44Gy44GTDQor44GK44GW44GNLOOBmOOCheOCk+OBhOOBoQ0KK+OBiuOBoOOBl+OBvizjgZ/jgaDjgZcNCivjgYrjgYrjgbLjgoks44Gb44Gk44GYDQor44GK44GK44KELOOBsuOBp+OBuw0KK+OBiuOBi+OBrizjgYLjgY3jgZMNCivjgYrjgZDjgZcs44GC44GR44G/DQor44GK44GK44GE44GM44KPLOOBn+OBi+OBr+OCiw0KK+OBquOBi+OBn+OBqyzjgZfjgpPjgYTjgaENCivjgZfjgonjgYrjgYzjgo8s44KJ44GE44GfDQor44Gq44GL44KA44KJLOOBqOOBl+OBv+OBpA0KK+OBguOBuSzjgYjjgb/jgZMNCivjgYvjgo/jgYbjgaEs44G+44KK44GIDQor44GE44Go44GGLOOBkeOCk+OBneOBhg0KK+OBk+OBhOOBmuOBvyzjgZ/jgY/jgoQNCivjgYvjgarjgYrjgYss44Gy44KN44GXDQor44GC44KK44G+LOOChOOCiOOBhA0KK+OBhuOBvuOChOOBr+OCiSzjgoTjgZnjgb8NCivjgYvjga3jgb7jgaQs44GV44GN44GTDQor44G144GL44KELOOBj+OBq+OBguOBjQ0KK+OBlOOBqOOBhizjgobjgYbjgYTjgaHjgo3jgYYNCivjgZnjgY7jgoLjgags44GP44Gr44GKDQor44GP44KK44Gv44KJLOOBqOOCiOOBsuOBkw0KK+OBiuOBiuOBnyzjgobjgY3jgZMNCivjgZnjgZrjgY0s44Gf44GR44GXDQor44KI44GX44GgLOOBi+OBmuOBqOOBlw0KK+OBr+OBo+OBqOOCiizjgbLjgo3jgZcNCivjgYvjganjgZ8s44GC44GN44Gy44KNDQor44GE44GX44GW44KPLOOChuOBmuOBjQ0KK+OBv+OChOOCguOBqCzjgb/jganjgooNCivjgYrjgZgs44KE44GZ44Gy44KNDQor44GC44KJ44GELOOBqOOBl+OBguOBjQ0KK+OBjeOBn+OCgOOCiSzjgorjgYvjgZMNCivjgZXjgYTjgajjgYYs44KI44GX44Gy44GoDQor44GT44Gw44KE44GXLOOBjeOCh+OBhuOBnuOBhg0KK+OBq+OBl+OBi+OCjyzjgajjgoLjgb8NCivjgZ/jgarjgYss44GL44Ga44Gy44KNDQor44Ga44GXLOOChOOBmeOBig0KK+OBguOCieOBhCzjgZfjgofjgYbjgbjjgYQNCivjgb7jgYjjgafjgoks44Gm44KL44KG44GNDQor44GT44KT44GpLOOBquOBig0KK+OBquOBjOOBu+OCiizjgobjgY3jgZMNCivjgYTjgo/jgZXjgY0s44G/44KE44GzDQor44Gq44GL44Gf44GrLOOBn+OBi+OBlw0KK+OBquOBi+OBjOOBjSzjgZHjgYTjgZMNCivjgY/jgo/jga/jgoks44G+44GT44GoDQor44GZ44Ga44GNLOOChuOBjQ0KK+OBn+OBoCzjgYjjgYTjgY0NCivjgo/jgaAs44Gq44GK44GTDQor44GV44GuLOOBsuOCjeOBlw0KK+OBqOOBjeOBnyzjgarjgaTjgZMNCivjgZPjgZXjgYQs44KG44GG44GTDQor44Gb44GU44GILOOBleOBqOOBkw0KK+OBquOBi+OBhCzjgYLjgaTjgb8NCivjga/jgonjgaAs44Go44GX44G+44GVDQor44GN44Gu44GX44GfLOOBv+OBoeOBig0KK+OBv+OChOOBluOBjSzjgYvjgZrjgb8NCivjgZ/jgY3jgZbjgo8s44G+44GV44GC44GNDQor44GV44Go44GGLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBv+OBmuOBl+OBvizjgZ/jgZHjgosNCivjgZ/jgavjgZDjgaEs44Gv44KL44G/DQor44G+44Gk44GX44GfLOOBn+OBi+OBlw0KK+OBmeOBjuOBhuOCiSzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgavjgYzjgY0s44Gb44GE44GTDQor44GV44Go44GGLOOBl+OBkuOBig0KK+OChOOBvuOBi+OCjyzjgZXjgaDjga/jgosNCivjgZnjgZrjgY0s44GX44GS44Gy44KNDQor44Go44GP44GgLOOBvuOCk+OBquOCig0KK+OBhOOCj+OBvizjga7jgbbjgYLjgY0NCivjgYrjgYrjga/jgoks44KG44GN44Gq44GKDQor44GX44GK44Gs44G+LOOBsuOBp+OBqOOBlw0KK+OBmeOBmuOBjSzjgYLjgY3jgojjgZcNCivjgZnjgZrjgY0s44KI44GX44GTDQor44GZ44Ga44GNLOOBruOBtuOBguOBjQ0KK+OBm+OBjSzjgYrjgZXjgoANCivjgZnjgZrjgY0s44Gk44Go44KADQor44GZ44GM44GKLOOBpuOBpOOBmA0KK+OBmeOBmuOBjSzjgZHjgYTjgZ/jgo3jgYYNCivjgZXjganjgajjgoIs44GC44GN44KJDQor44GX44G+LOOBv+OBruOCiw0KK+OBleOBhOOBqOOBhizjgYrjgZXjgoANCivjgZnjgZrjgY0s44G+44GV44Gy44KNDQor44GV44GE44Go44GGLOOChuOBjeOBig0KK+OBneOBvizjgYrjgZXjgoANCivjgZXjgajjgYYs44GR44KT44GYDQor44GX44KN44GV44GNLOOCiOOBhuOBhOOBoQ0KK+OBmeOBmuOBjSzjgojjgYbjgZjjgo3jgYYNCivjgZnjgZrjgY0s44Gm44Gk44KN44GGDQor44GZ44GO44KC44GoLOOBvuOBleOBig0KK+OBleOBi+OBhCzjgZfjgpPjgYTjgaENCivjgZnjgZrjgY0s44GL44Ga44KG44GNDQor44GV44Go44GGLOOBn+OBpOOBmA0KK+OBl+OBiuOBnyzjgajjgojjgYoNCivjgZ3jgb4s44GL44KT44GYDQor44GX44KF44Gp44GGLOOBn+OBi+OBig0KK+OBleOBj+OCieOBhCzjgajjgZfjgYoNCivjgZ3jgYbjgoQs44Gb44GE44GYDQor44GV44KP44KA44KJLOOBquOCi+OBvw0KK+OBm+OBiizjgobjgYbjgZgNCivjgZfjgb/jgZos44Go44GX44GKDQor44GV44GN44KC44KKLOOBhOOCj+OBig0KK+OBleOBhOOBqOOBhizjgbLjgZXjgYoNCivjgZfjgb/jgZos44GI44GE44Ge44GGDQor44GX44GK44Gu44KELOOBjeOCiOOBi+OBmg0KK+OBn+OBi+OBjizjgbLjgafjgYoNCivjgZ/jgY3jgYTjgZcs44KK44KH44GG44GYDQor44Go44GwLOOBvuOBleOBlw0KK+OBn+OBkOOBoSzjgb7jgZXjgYoNCivjgZ/jgYvjga4s44KA44Gt44GKDQor44Gf44GL44KE44GZLOOBqOOCiOOBvw0KK+OBn+OBquOBiyzjgZfjgZLjgosNCivjgZ/jgYvjga/jgb4s44KI44GX44GC44GNDQor44Gk44Gh44GgLOOBvuOCguOCiw0KK+OBn+OBi+OBiizjgb7jgZnjgb8NCivjgZ/jgavjgZDjgaEs44G/44Gh44GC44GNDQor44Gk44GY44GL44KPLOOChuOBhuOBhOOBoQ0KK+OCiOOBl+OBluOCjyzjgb7jgZXjga/jgosNCivjgZ/jgarjgYss44GY44KF44KT44Ge44GGDQor44Gf44G+44KLLOOBvuOBleOBvw0KK+OBn+OBi+OBjizjgY3jgofjgYbjgZMNCivjgaTjga3jgbLjgo0s44GY44KF44KT44GYDQor44Gf44GL44Gv44GXLOOBqOOBl+OBguOBjQ0KK+OBguOBleOBhCzjgobjgYbjgZgNCivjgZ/jgYvjgZXjgY0s44GC44GN44KJDQor44Gf44GL44Gq44G/LOOBvuOBleOCiw0KK+OBqOOCguOBquOBjCzjgaTjga3jgYvjgZoNCivjgZ/jgYvjgY4s44GE44Gk44GKDQor44Gk44GL44KC44GoLOOBguOBjeOBig0KK+OBpuOCieOBhuOBoSzjgZXjgaDjgobjgY0NCivjgZ/jga7jgYrjgYss44GZ44GZ44KADQor44GG44GZ44GOLOOBi+OBmuOBsuOCjQ0KK+OBhuOBpOOBjSzjgabjgaTjgYoNCivjgYbjgaHjgaAs44GR44KT44GZ44GRDQor44GG44KB44KA44KJLOOBqOOBl+OBig0KK+OBhuOBrizjgajjgZfjgbLjgacNCivjgo/jgZ/jgarjgbks44Gy44GV44KG44GNDQor44KP44Gf44Gq44G5LOOBi+OBpOOBquOCig0KK+OCj+OBn+OBquOBuSzjgZPjgpPjgZTjgYYNCivjgo/jgaAs44Gf44GR44G/44GkDQor44GK44GK44GfLOOBvuOBk+OBqA0KK+OBquOBi+OBmOOBvizjgZHjgYTjgYTjgaENCivjgbXjgovjgZXjgo8s44Gk44KI44GXDQor44GL44GX44KP44GOLOOBkw0KK+OBr+OBnyzjgZfjgofjgYbjgZnjgZENCivjgYbjgZfjgZjjgb4s44G+44GV44GL44GaDQor44G+44Gk44GELOOBguOBjeOCiQ0KK+OBi+OCj+OBqizjgaDjgYTjgZjjgo3jgYYNCivjgb/jgoTjgoLjgags44Gf44GL44Gy44GVDQor44KI44GX44GgLOOBmeOBv+OChuOBjQ0KK+OBiuOBiuOBi+OCj+OCiSzjgZLjgpPjgZ/jgo3jgYYNCivjgZnjgoTjgb4s44GP44KT44KN44GGDQor44GZ44Ga44GNLOOChuOBhuOBmA0KK+OBj+OBq+OBjuOBnyzjgojjgYbjgYTjgaENCivjgY3jgaks44G+44GV44GXDQor44GE44GX44GELOOBoeOBi+OBqOOBlw0KK+OBhuOBiOOBoCzjgZ/jgYvjgZcNCivjgYTjgaHjgYvjgo8s44GL44Ga44GKDQor44GK44GV44GY44G+LOOBqOOBl+OChA0KK+OBhuOBiOOCgOOCiSzjgajjgZfjgbLjgacNCivjgY3jgoDjgoks44Go44GN44GhDQor44KI44GT44KE44G+LOOBsuOBleOBig0KK+OBhOOBqOOBhizjgb7jgZXjgobjgY0NCivjgb/jgoTjgbks44GL44Ga44GoDQor44Gf44G+44GELOOBi+OBmuOBv+OBoQ0KK+OBk+OCiizjgZPjgYbjgYTjgaHjgo3jgYYNCivjgYTjgo/jgZXjgo8s44G+44Gq44G2DQor44KI44GX44KE44GZLOOBlOOBhg0KK+OBvuOBn+OBjSzjgZfjgpPjgZQNCivjgoTjgb7jgoLjgoos44GL44Gk44GKDQor44Gf44GL44GfLOOBruOCiuOBig0KK+OBmeOBqeOBhizjgZfjgofjgYbjgZMNCivjgYbjgYjjgoDjgoks44KG44Gf44GLDQor44GZ44Ga44GNLOOBv+OBruOCiw0KK+OBmeOBmuOBjSzjgYLjgY3jgokNCivjgYLjgonjgY0s44Gb44GN44GtDQor44GL44GgLOOBguOBjeOCiQ0KK+OBq+OBl+OCiOOCiizjgb/jga7jgosNCivjgYTjgarjgbAs44GL44Ga44GoDQor44G744KK44GELOOBpOOBreOBig0KK+OBmeOBqeOBhizjgb7jgZXjgbLjgZMNCivjgZfjgo3jgoTjgb4s44GTDQor44Gm44KJ44GELOOBguOBjeOBkw0KK+OBvuOBpOOCguOBqCzjgarjgYrjgZ/jgZENCivjgYTjgajjgYYs44Gb44GE44GYDQor44Gd44Go44KE44G+LOOBi+OBpOOBruOCig0KK+OBsuOCieOBiuOBiyzjgoTjgZnjgZcNCivjgbLjgonjgY0s44Gf44KC44GkDQor44Gf44Gq44G5LOOChuOBhuOBmOOCjeOBhg0KK+OBn+OCgeOBoeOBiyzjgZ/jgabjgYoNCivjgojjga3jgaAs44Go44GX44Gy44GnDQor44GI44GY44G+LOOBqOOCguOBruOCig0KK+OBn+OBi+OBr+OBlyzjgb/jgZXjgZMNCivjgabjgonjgYos44Gy44KN44Gy44GVDQor44G744KT44GgLOOChuOBvw0KK+OBiuOBoeOCiizjgoTjgZnjgbLjgo0NCivjgYrjgYrjgYQs44Gq44GK44G/DQor44GL44KP44GELOOBv+OBruOCiw0KK+OCgOOCieOBi+OBvyzjgb/jgojjgZcNCivjgarjgYvjgZjjgb4s44Gy44Go44GXDQor44GE44GX44Gv44KJLOOBteOBv+OBn+OBiw0KK+OBguOBi+OBu+OCiizjgb/jgaTjga7jgbYNCivjgoTjgZnjgaAs44GC44GN44KJDQor44KI44GT44GbLOOBqOOCguOBl+OBkg0KK+OCiOOBl+OBi+OCjyzjgajjgZfjgo3jgYYNCivjgoTjgb7jgZDjgaEs44G/44Gu44KLDQor44KI44GX44KA44KJLOOBvuOBleOBsuOBkw0KK+OCiOOBreOBoCzjgYvjgYrjgosNCivjgoTjgb7jgZfjgZ8s44GX44KH44GG44Ge44GGDQor44KE44G+44GgLOOBiOOBhOOBnuOBhg0KK+OChOOBvuOBluOBjSzjgZnjgZnjgoANCivjgojjgZfjgaAs44Gy44KN44GXDQor44KE44G+44Gf44GrLOOBsuOCjeOBpOOBkA0KK+OChOOBvuOBrSzjgojjga3jgZ/jgYsNCivjgoTjgb7jgYvjgo8s44GY44KF44KT44GE44GhDQor44KI44GX44GgLOOBn+OBi+OBig0KK+OChOOBvuOBleOBjSzjga7jgorjgYoNCivjgoTjgb7jgoLjgags44Gm44KL44GKDQor44KI44GT44GfLOOBiOOBhOOBhOOBoQ0KK+OChOOBvuOBoCzjgYvjgaTjgbLjgo0NCivjgojjgZfjga4s44Gg44GE44GZ44GRDQor44KI44GX44GgLOOCgOOBpOOBig0KK+OBruOCgOOCiSzjgb7jgZXjgZ/jgYsNCivjgoTjgb7jgaAs44GV44Go44KLDQor44GE44GX44GL44KPLOOBoeOCiOOBn+OBkQ0KK+OBmeOBmuOBjSzjgbLjgo3jgbXjgb8NCivjgb7jgZnjgaAs44GR44KT44GYDQor44GE44G+44GELOOBvuOBleOBnuOBhg0KK+OBjeOCheOBhuOBneOBmOOCkyzjgZHjgpPjgZnjgZENCivjgoTjgb7jgaAs44GC44GN44KJDQor44Gy44KJ44GuLOOBn+OBhOOBjQ0KK+OBquOBi+OBq+OBlyzjgYvjgZrjgZfjgZINCivjgZ/jgaTjgZ8s44GX44GS44KLDQor44G/44KA44KJLOOBvuOBleOBig0KK+OBsuOCieOBvuOBpCzjgZXjgaDjgYoNCivjgajjgb/jgZ8s44G+44GV44Gy44KNDQor44GT44Gw44KE44GXLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBn+OBkeOBquOBiyzjgb7jgZXjgbLjgo0NCivjgYLjgb7jga4s44Gu44KK44GTDQor44GE44GX44GELOOBjeOCh+OBhuOBkw0KK+OBhOOBpyzjgZXjgY3jgZMNCivjgYrjgYvjgaAs44KK44GI44GTDQor44Gy44KJ44GE44GXLOOBvuOCig0KK+OCiOOBl+OCguOBqCzjgbLjgo3jgZMNCivjgYvjgo/jgZfjgb4s44G+44KG44G/DQor44Go44Gw44GfLOOBruOCiuOBi+OBmg0KK+OBn+OBquOBiyzjgbLjgYvjgosNCivjgYLjgpPjgbks44G+44Gq44G/DQor44Gf44GL44Gv44GXLOOBvuOBleOBsuOCjQ0KK+OBqOOBv+OChOOBvizjgojjgZfjgYLjgY0NCivjgZ/jgYvjgoTjgb4s44Go44GX44KG44GNDQor44G/44KE44GX44GfLOOBv+OBruOCiw0KK+OBr+OBl+OCguOBqCzjgb/jgY3jgYoNCivjgajjgYzjgoEs44G/44KP44GTDQor44Gu44GQ44GhLOOBi+OBmuOBvuOBlQ0KK+OBruOBkOOBoSzjgYLjgY3jgokNCivjgZ3jgYbjgb/jgoQs44GR44KT44GYDQor44GN44KA44KJLOOCiOOBhuOBmA0KK+OBi+OBqOOBhizjgajjgoLjgobjgY0NCivjgZnjgZrjgY0s44GR44KT44GYDQor44GK44GL44GgLOOBsuOCjeOBvw0KK+OChOOBrizjgZjjgoXjgpPjgZMNCivjgYrjga7jgZXjgags44Gv44KTDQor44G+44Gk44GgLOOCiOOBl+OBguOBjQ0KK+OBjeOCgOOCiSzjgZ/jgYvjgZcNCivjgZ/jgoDjgoks44Go44KC44Gu44KKDQor44GL44Go44GGLOOBqOOBl+OChA0KK+OBhOOBrOOBvuOCiyzjgbLjgo3jgZgNCivjgYrjga7jgafjgoks44Gq44GK44GTDQor44GZ44Ga44GNLOOBoeOBr+OCiw0KK+OBn+OBq+OBi+OCjyzjgbvjgZrjgYgNCivjgZXjgY/jgb4s44GX44G+DQor44GE44G+44KA44KJLOOCi+OCiuOBkw0KK+OBiOOBhOOBqeOCgSzjgobjgY0NCivjgojjgZfjgYQs44Gf44Gg44Gy44KNDQor44GK44GK44Gf44GNLOOChuOBv+OBkw0KK+OBj+OBmeOCguOBqCzjgYTjgZXjgYoNCivjgb/jgoTjgZfjgZ8s44KG44GN44GKDQor44G+44Gh44GELOOBi+OBmuOBsuOCjQ0KK+OBr+OChOOBl+OBoCzjgZ/jgYvjgajjgZcNCivjga/jgovjga/jgoks44Gf44GL44GXDQor44Gm44KJ44KC44GoLOOChuOBhuOBmOOCjeOBhg0KK+OBvuOBpOOCguOCiizjgYvjgZrjgYoNCivjgo/jgZ/jgarjgbks44GT44GG44GYDQor44GL44Gt44GTLOOChOOBmeOBlw0KK+OBiuOCiuOBjOOBlSzjgb7jgaTjga7jgooNCivjgaTjgYvjgoLjgags44Gy44KN44G/44GhDQor44KI44GX44GgLOOBv+OBqg0KK+OBq+OBl+OBoCzjgbLjgZXjgYgNCivjgbXjgovjgYvjgo8s44KK44GIDQor44KA44KJ44GL44G/LOOBn+OBi+OBig0KK+OBiuOBiuOBsOOChOOBlyzjgZPjgYbjgY3jgaENCivjgZXjgajjgYYs44GR44GE44GTDQor44KE44G+LOOBteOBv+OBkw0KK+OBv+OChOOBnyzjgZ/jgYvjgabjgosNCivvl77ombnlpoINCivkuIHlv4PltZANCivkuIHlv5flro8NCivkuIHlu7rmlocNCivkuIHlgYnmsJENCivkuIHnlKbljZcNCivkuIHntrrmhacNCivkuIHorb3nkLMNCivkuo7np4Dnvo4NCivkuo7mrr/ogZYNCivlsLnlsYXmiY0NCivlsLnmm4nmgakNCivlrZTnuYHpnJYNCivlsKToia8NCivlsKTmmJ/nrZYNCivlsKTnm5/osrQNCivlsKTokpTokLENCivmloflhIDoqaANCivmlrnmlofpi5INCivmlrnlv5fmmI4NCivmlrnlubjlrpwNCivmlrnkv4rpm4QNCivmlrnlvaXnqIsNCivmlrnoi6Xnj4oNCivmlrnlgaXliZsNCivmlrnmt5HlhJINCivmlrnnrZbmsJENCivmlrnoo5XmrL0NCivmlrnmhafnkLQNCivmlrnpupfpm4UNCivmr5vkvanlqJ8NCivmr5vmvKLmooUNCivnjovkuIDnj40NCivnjovkuIrntq0NCivnjovlpKfmmIwNCivnjovlrZDnhpkNCivnjovkuK3mhpMNCivnjovku4HlrpcNCivnjovlj4vlv5cNCivnjovlv4Plv6ANCivnjovmloflubMNCivnjovmlofpg4ENCivnjovmlofptLsNCivnjovkuJblrocNCivnjovkuJblu6MNCivnjovlvJjmr4UNCivnjovmsLjku4ENCivnjovnjonmlocNCivnjovnlJ/li7MNCivnjovlhYnpuoMNCivnjovlrofmuIUNCivnjovmnInmrIoNCivnjovkvK/pgLgNCivnjovlrZ3lkJsNCivnjovlro/lmIkNCivnjovlv5fmlocNCivnjovlv5fls7ANCivnjovlv5fmrL0NCivnjovlv5fpipgNCivnjovnp4DoiqwNCivnjovogrLlvrcNCivnjovkvp3pn7sNCivnjovkvakNCivnjovlnaTos6INCivnjovlsqHpmbUNCivnjovmgKHmlocNCivnjovmgKHmuIUNCivnjovmgKHomIsNCivnjovmmI7nj4oNCivnjovmrKPkuYsNCivnjovmsrvpgqYNCivnjovph5Hoj68NCivnjovkv6Hku4ENCivnjovkv6Hoo5UNCivnjovkv4rlvaUNCivnjovkv4rlh7ENCivnjovkv4rotoUNCivnjovkv57mlocNCivnjovliYfli50NCivnjovlpZXpiJ4NCivnjovlqIHog70NCivnjovlu7rmlocNCivnjovlu7rpm4QNCivnjovlvaXmmboNCivnjovmgJ3mvZQNCivnjovmmK3kuroNCivnjovmmLHlh7ENCivnjovmn4/loK8NCivnjovngrrokqgNCivnjovnm4jlgpENCivnjovntIANCivnjovnvo7mt5ENCivnjovnvo7mh78NCivnjovoi7Hok4kNCivnjovpg4HmrKMNCivnjovpg4Hnj7oNCivnjovlk7LogbANCivnjovmgoXlpoINCivnjovmmYLolJoNCivnjovmtanlgKsNCivnjovntKDljb8NCivnjovlgYnlt54NCivnjovlgaXmsJENCivnjovlnIvlvaUNCivnjovln7fkv6ENCivnjovltJHpvo0NCivnjovllZ/lrpcNCivnjovmlY/pipMNCivnjovmuIXptLsNCivnjovmt5HnnIkNCivnjovmt5Hpm68NCivnjovmt6jnkakNCivnjovojonmsbYNCivnjovlgpHnq4sNCivnjovlh7HokoINCivnjovljZrmlocNCivnjovlr4zmmIwNCivnjovmg6DnjrINCivnjovmlabmraMNCivnjovmma/ms4kNCivnjovmmbrps7QNCivnjovmnJ3pjbUNCivnjovnkKoNCivnjovnv5Tlr6cNCivnjovoj4HomK0NCivnjovpgLjkv64NCivnjovpm4XkvLYNCivnjovpm4Xpm68NCivnjovpm68NCivnjovli6TlloQNCivnjovmhJvlmIkNCivnjovmr5Poj4ENCivnjovnkZ7lkJ8NCivnjovnkZ7poKQNCivnjovogZYNCivnjovogZbmo4sNCivnjovoo5XmraMNCivnjovoqanlqbcNCivnjovpiYXnv5QNCivnjovlmInlkJsNCivnjovlmInovrINCivnjovlmInpvaENCivnjovnnb/lkJsNCivnjovntq3lpoINCivnjovnv6Doj68NCivnjovpipjmooUNCivnjovlvrfnmpMNCivnjovmhafoi7ENCivnjovmhafpnZwNCivnjovlhJLpmoYNCivnjovmm4npm68NCivnjovoiIjpgqYNCivnjovpjKbmhacNCivnjovniLXmmpANCivnjovorJnntq0NCivnjovnpq7orJkNCivnjovnk4rnj64NCivnjovpn7vmt5ENCivnjovpupfoiqwNCivnjovpupfpm68NCivnjovogIDmmokNCivnjovpkJjpipgNCivnjovpvaHmopMNCivnjovouo3pnJYNCivnjovmtZ/nvo4NCivnjovmo6jlvrcNCivnjovlq4bmo7sNCivnjovnrbHokLENCivnjovolo/pm68NCivkuJjnnJ/ntroNCivljIXlrq7ntq0NCivlj6Tnjonps7MNCivlj6TmmI7mmZ8NCivlj6TmoYLoj4oNCivlj6TmmbrlgYkNCivlj6Tkv7bntroNCivlj7LmmI7ljp8NCivlj7Lmm5zlvbANCivnlJjmsLjoo5UNCivnlJjpnIjpnJYNCivnlLDmspDmgakNCivnlLDoirPojLkNCivnlLDmt5HlkJsNCivnlLDnkqfoj4ANCivnmb3lpKflsLkNCivnmb3kvbPmuJ0NCivnmb3mjK/mupANCivnmb3llpzmlocNCivnmb3mpq7kv64NCivnn7PkuYPlpoINCivnn7PogrLnjp8NCivnn7PmmI7lkagNCivnn7Pls7vlubMNCivnn7PlgpHlrocNCivnn7PpjKboiKoNCivkvI3kuJbmj5oNCivkvI3lrrboqrwNCivku7vmiY3kv4oNCivku7vmlrDomK0NCivlkJHopb/pmb0NCivmiJDkuLnnjrINCivmnLHmlofnoqcNCivmnLHnjonmsbYNCivmnLHlpo3lpoINCivmnLHmspvmgKENCivmnLHlrpfolJoNCivmnLHmnbHmh4kNCivmnLHkv4rnpaUNCivmnLHlu7rms7ANCivmnLHnj43mhacNCivmnLHpg4Hluq0NCivmnLHlrrbmrKMNCivmnLHls7DoqrwNCivmnLHnj67lhIANCivmnLHlgYnlgpENCivmnLHlurfpipgNCivmnLHlr5PnkIYNCivmnLHpm4XpiLQNCivmnLHpgZTmmI4NCivmnLHps7PolocNCivmnLHpnZzmlocNCivmnLHoiq7lrpwNCivmsZ/kuK3lgaUNCivmsZ/mlofnk4oNCivmsZ/nq4vls7ANCivmsZ/lkYjpmb0NCivmsZ/np4DnjrINCivmsZ/kvbPpnJYNCivmsZ/ljZTli4cNCivmsZ/lrpflk7INCivmsZ/lsqnpgZQNCivmsZ/mmIzptLsNCivmsZ/mmI7nkosNCivmsZ/mrKPlrrkNCivmsZ/plbflo70NCivmsZ/kv4roiIgNCivmsZ/lu7rpipgNCivmsZ/mlL/lhJINCivmsZ/njrLmhacNCivmsZ/ooY3pvo0NCivmsZ/mjK/lrocNCivmsZ/ntJTnjqsNCivmsZ/llZ/ku7INCivmsZ/nm5vpvo0NCivmsZ/mmbrntq0NCivmsZ/pm4Xmg6ANCivmsZ/lmInlgKsNCivmsZ/lr6zmhYgNCivmsZ/mhrbpm68NCivmsZ/olb4NCivmsZ/lqp4NCivniZ/mmJUNCivkvZXku4HnlLANCivkvZXkuJbpm4QNCivkvZXkupnlvawNCivkvZXlkJvokI0NCivkvZXogrLmnbANCivkvZXkvbPono0NCivkvZXlhbbmvqQNCivkvZXlraPnp6YNCivkvZXlrpfnpqcNCivkvZXmgKHlkJsNCivkvZXmmI7lrpcNCivkvZXmmIflhJINCivkvZXnp4nmrKMNCivkvZXkv4rlu7cNCivkvZXlhqDpnJYNCivkvZXlvaXpp5INCivkvZXngrPos6INCivkvZXoi6XnkZwNCivkvZXls7vmnbANCivkvZXntKDlkJsNCivkvZXmlY/oj4ENCivkvZXmtrUNCivkvZXmg6DpiLoNCivkvZXpm4XnkKoNCivkvZXlmInlsZUNCivkvZXpipjlro8NCivkvZXlrbjljpoNCivkvZXpnZzlhIANCivkvZXml7vpnJwNCivkvZnlv4PovrINCivkvZnlkInnpaUNCivkvZnkvbPpn7MNCivkvZnlnaroirMNCivkvZnlrpvlhJINCivkvZnmmI7lqJ8NCivkvZnph5HlhbgNCivkvZnkv4rlhJINCivkvZnlvaXpnJYNCivkvZnnm4jpi5INCivkvZnms7DnlLcNCivkvZnlqYnokI0NCivkvZnmg6DmlocNCivkvZnnkZ7okI0NCivkvZnpvYrlqIENCivkvZnorJ3ovJ0NCivliKnnp4DomK0NCivlkLPlpKfntq0NCivlkLPku4HkvZENCivlkLPlhYPlq4gNCivlkLPmlofnjokNCivlkLPmlofnmbwNCivlkLPmlofmlowNCivlkLPkuJbpgZQNCivlkLPlubPlkowNCivlkLPmsLjmmIwNCivlkLPnjonojLkNCivlkLPnq4vmsJENCivlkLPlhYbmlocNCivlkLPlronpgqYNCivlkLPooYzkuK0NCivlkLPlppnlgKsNCivlkLPlv5flro8NCivlkLPlv5fmvKINCivlkLPmspvmmYMNCivlkLPnp4DntIsNCivlkLPogrLpnJYNCivlkLPkvp3ok5MNCivlkLPkvbPljZcNCivlkLPkvbPlrrkNCivlkLPkvbPok4kNCivlkLPkvbPnqY4NCivlkLPkvbPptLsNCivlkLPkvannj4oNCivlkLPkvanntJQNCivlkLPkvanoq60NCivlkLPlhbbpnJYNCivlkLPlnaTptLsNCivlkLPlrZ/lrpcNCivlkLPlrZ/lqJ8NCivlkLPlrZ/mhrINCivlkLPlrpflsrENCivlkLPlrpfpmoYNCivlkLPlrpfnv7ANCivlkLPlrpzoirMNCivlkLPlrpznqYYNCivlkLPlrpvnuIgNCivlkLPlsqHlhJINCivlkLPlubjnnJ8NCivlkLPlv6DpnJYNCivlkLPmgKHokI0NCivlkLPmgKHmhrINCivlkLPmib/nkosNCivlkLPmmIzluq0NCivlkLPmmI4NCivlkLPmmI7lk7INCivlkLPmmI7pgZQNCivlkLPmmI7mm4QNCivlkLPmmJXlp78NCivlkLPmnbHpnJYNCivlkLPmrKPmgKENCivlkLPmrKPlhJINCivlkLPmsrvoi7ENCivlkLPnp4nli7MNCivlkLPoirPnkZwNCivlkLPph5HnjokNCivlkLPpm6jlk7INCivlkLPkuq3oqrwNCivlkLPkv6HovJ0NCivlkLPkv4rlpYcNCivlkLPkv4rlhIANCivlkLPkv4rnt68NCivlkLPkv4roq7oNCivlkLPlhqDnvqQNCivlkLPlk4Hok4kNCivlkLPlp7/lhIANCivlkLPlrqPpi5INCivlkLPlu7roip0NCivlkLPlu7rli7MNCivlkLPlvovpipgNCivlkLPmgJ3nqY4NCivlkLPmlL/lvawNCivlkLPmlL/nqY4NCivlkLPmmKXnt6kNCivlkLPmmK3pvo0NCivlkLPmn4/lhIANCivlkLPngqvlrpcNCivlkLPnmofmrKMNCivlkLPnp4vnvo4NCivlkLPnvo7njrINCivlkLPnvo7mhacNCivlkLPoh7TpipgNCivlkLPoi7HptLsNCivlkLPph43mr4UNCivlkLPljp/lrocNCivlkLPlrrbmmI4NCivlkLPlrrbmhacNCivlkLPmjK/miJANCivlkLPmmY/lubMNCivlkLPms7DmmIwNCivlkLPnj67npo4NCivlkLPntJTmrKMNCivlkLPlgYnoqqANCivlkLPlnIvlgYkNCivlkLPloIXnkYsNCivlkLPlqYnmrYYNCivlkLPmgqANCivlkLPmlY/nnJ8NCivlkLPmt5HlpoINCivlkLPmt5HmlY8NCivlkLPmtrXlrpwNCivlkLPpm6rlpq4NCivlkLPli53npboNCivlkLPmg6DlkJsNCivlkLPmlq/nh7sNCivlkLPnioDpnYgNCivlkLPoqaDlrrgNCivlkLPpiJ7lqbcNCivlkLPpm4XltZANCivlkLPpm7LpqaUNCivlkLPmr5PnnJ8NCivlkLPnkZ7lk7INCivlkLPogZblqIENCivlkLPpvI7lgYkNCivlkLPlmInli50NCivlkLPlr6fnkYQNCivlkLPnpo/ph48NCivlkLPogofpqLANCivlkLPpipPlj4sNCivlkLPmhbbmlocNCivlkLPmhafmlY8NCivlkLPos5zlv6ANCivlkLPmm4npnZINCivlkLPmm4nolocNCivlkLPolZnntIsNCivlkLPpjKbpjrANCivlkLPpnZzoirMNCivlkLPnuL3miJANCivlkLPptLvmmIwNCivlkLPosZDlkIkNCivlkLPpn7vljYkNCivlkLPppqjmgKENCivlkLPkvbzkvbwNCivlkLPmmLbokbMNCivlkLPnkYvnkLMNCivlkYLlrZDosaoNCivlkYLmloflsIgNCivlkYLmraPlrokNCivlkYLoh6rpgZQNCivlkYLogrLoirMNCivlkYLkvbPlrrkNCivlkYLkvanntJQNCivlkYLlrpfpipgNCivlkYLlrpzpnJYNCivlkYLmgKHmhacNCivlkYLmmI7ms7ANCivlkYLoirPkv4oNCivlkYLkv53lsrgNCivlkYLljZfnlb8NCivlkYLlu7rpi5INCivlkYLmmK3lhIANCivlkYLnp4vpm7INCivlkYLoi7HnkYsNCivlkYLmoLzosaoNCivlkYLlnIvln7kNCivlkYLmt5Hljb8NCivlkYLntLnmpq4NCivlkYLoqaDnnJ8NCivlkYLpm6/mrYYNCivlkYLlmInlhYMNCivlkYLpipjmmboNCivlkYLlrbjlj6ENCivlkYLpnZzok4kNCivlkYLlu7PlmrQNCivlrovlv4PmhacNCivlrovkvK/nkZwNCivlrovkvannj4oNCivlrovmmIzpnJYNCivlrovlpZXlhJINCivlrovnprnnkakNCivlrovoiKvoh6MNCivlrovllqznjokNCivlrovnoqfnkLMNCivlrovnq4QNCivlt6vmiI7mgKENCivlt6vmmI7nv7ANCivlt6vmjK/lmIkNCivlt6vlmInoiIgNCivmnY7kuYPmlocNCivmnY7kuK3ku7sNCivmnY7ku4Hlh7ENCivmnY7lhYPoo5UNCivmnY7lv4Pku4ENCivmnY7mloflv5cNCivmnY7mlofmg6ANCivmnY7mlofpgZQNCivmnY7mnIjmmJ8NCivmnY7kuJblr6wNCivmnY7lt6fnkLMNCivmnY7mraPlvaUNCivmnY7msLjmmIwNCivmnY7njonljb8NCivmnY7nq4vku4ENCivmnY7ku7LnjoQNCivmnY7lhYbmlowNCivmnY7lpoLnj40NCivmnY7lronnkLMNCivmnY7nvr0NCivmnY7lkJvlvaUNCivmnY7lro/mlocNCivmnY7lv5fmiJANCivmnY7lv5flgYkNCivmnY7mspvmnbANCivmnY7np4DnjrINCivmnY7np4DomIUNCivmnY7ogrLnkakNCivmnY7kup7lgKsNCivmnY7kvp3mgYINCivmnY7kvbPoirMNCivmnY7kvbPnj40NCivmnY7kvbPmmYMNCivmnY7kvbPpm68NCivmnY7kvbPlhJINCivmnY7kvbPpnJYNCivmnY7kvbPok4ENCivmnY7kvanoip0NCivmnY7kvannjrINCivmnY7kvanlhIANCivmnY7kvanlrKwNCivmnY7lh73oiqwNCivmnY7lnaTmupANCivmnY7lpYfnv7ANCivmnY7lrZ/lk7INCivmnY7lrZ/nqY4NCivmnY7lrpflnaQNCivmnY7lrpfnvqkNCivmnY7lrpfnqY4NCivmnY7lrpfptLsNCivmnY7lrpzmtLINCivmnY7lrpzls7sNCivmnY7lrpzmqLoNCivmnY7lrpvnjrINCivmnY7lsJros6INCivmnY7lsrPls7ANCivmnY7lubjlqJ8NCivmnY7lv6DnqY4NCivmnY7mgKHnjrINCivmnY7mgKHmhacNCivmnY7mgKHml7sNCivmnY7mmJPkv64NCivmnY7mmIblro8NCivmnY7mmI7liKkNCivmnY7mmI7lvaUNCivmnY7mmI7ph5cNCivmnY7mmI7li7MNCivmnY7mmI7pnJ4NCivmnY7mmIfnv7ANCivmnY7mnbHpvo0NCivmnY7mrKPmgKENCivmnY7mrKPpgZQNCivmnY7ms5XmvKINCivmnY7njqXnkakNCivmnY7oirPlnLsNCivmnY7oip3ntr4NCivmnY7ph5HpiLQNCivmnY7plbfmpq4NCivmnY7pnZLpmb0NCivmnY7kv6HlvrcNCivmnY7kv4rlro8NCivmnY7kv4rlvaUNCivmnY7kv4rlvrcNCivmnY7kv4ros6INCivmnY7kv57mhacNCivmnY7lhqDnkakNCivmnY7ljZflrIwNCivmnY7lp7/lhIANCivmnY7lqIHlvrcNCivmnY7lu7rmsJENCivmnY7lu7rmmI4NCivmnY7lu7ros6INCivmnY7lu7roiIgNCivmnY7lvaXlrpwNCivmnY7lvaXpnJYNCivmnY7mgJ3okLENCivmnY7mgJ3oq60NCivmnY7mlL/lk7INCivmnY7mlL/pvo0NCivmnY7mmK3nvo4NCivmnY7mmLHmmKUNCivmnY7mn4/ok4kNCivmnY7nj4rnj4oNCivmnY7nm4jmvZQNCivmnY7np4vmooUNCivmnY7nvo7njokNCivmnY7nvo7lhIANCivmnY7og6TnkaQNCivmnY7oi7Hlv5cNCivmnY7osp7lrpwNCivmnY7pg4HlgYkNCivmnY7lgKkNCivmnY7lk7Lnt68NCivmnY7lrrbosaoNCivmnY7lrrnlqbcNCivmnY7mjK/mmIwNCivmnY7mmYnosaoNCivmnY7ms7DpnJYNCivmnY7nj67nkLMNCivmnY7npZbnj40NCivmnY7oqJPlhIQNCivmnY7lgYnmhLcNCivmnY7lgaXmupANCivmnY7lnIvlvLcNCivmnY7lnIvntq0NCivmnY7ln7rlvJgNCivmnY7lqYnnkZ4NCivmnY7lurfmraMNCivmnY7mlY/lkIkNCivmnY7muIXlkJ8NCivmnY7mt5Hosp4NCivmnY7mt5Hoj68NCivmnY7npaXnkZ4NCivmnY7pgKPls7ANCivmnY7lh7HmpagNCivmnY7mg6DoiqwNCivmnY7mg6Dpm68NCivmnY7mmbrlvLcNCivmnY7muZjmqLoNCivmnY7oqaDnp4sNCivmnY7pgLLnpo8NCivmnY7pm4XnjrINCivmnY7pm4Xmg6ANCivmnY7pm4Xnh5UNCivmnY7mhI/pm68NCivmnY7mr5PnnJ8NCivmnY7nkZ7oj68NCivmnY7ogZbnkLANCivmnY7pgZPmnpcNCivmnY7lmInlh4wNCivmnY7lmInptLsNCivmnY7mpq7pprMNCivmnY7npo/ok4kNCivmnY7ntq3mpagNCivmnY7pipjmr5MNCivmnY7lu6PnpYENCivmnY7mhbboj68NCivmnY7mhafnj6ANCivmnY7os6Lmt6YNCivmnY7mm4nlpq4NCivmnY7mm4noj4ENCivmnY7nkp/pg4ENCivmnY7olZnlpoINCivmnY7pjKbmmIcNCivmnY7pnZzmgKENCivmnY7pvo3nlJ8NCivmnY7ogbDlsrMNCivmnY7ptLvpgZQNCivmnY7pjpTpmKENCivmnY7pupfnj6ANCivmnY7ppqjmgKENCivmnY7liq3ou40NCivmnY7oi7nmhYgNCivmnY7ntZwNCivmnY7piLrpm68NCivmnY7mgZLlkJsNCivmnZzlv5fos6INCivmnZzlrpvoq60NCivmnZzoirPmlL8NCivmnZzlvaXpnJYNCivmnZznj67oqakNCivmnZzpmb3lnJMNCivmnZznh5Xoj68NCivmsojlo6vlgpENCivmsojmraPlvrcNCivmsojkvZHnv7ANCivmsojlv5fpvo0NCivmsojkvbPmhacNCivmsojlrpfmhbYNCivmsojmmIzmmI4NCivmsojnp4noqrwNCivmsojlhqDlro8NCivmsojlu7rlvrcNCivmsojmn4/lr6wNCivmsojpg4HlurcNCivmsojnm4rmib8NCivmsojmmajpkJgNCivmsojoiJLnkLMNCivmsojnkZ7mrL0NCivmsojntq3mr5MNCivmsojolZnlkJsNCivmsojnrbHpm7INCivmsarnp4Dnh5UNCivmsarpnZLok4kNCivmsarlrrbnkakNCivmsarpnZblnIsNCivosLfms5PpgZMNCivovpvlpZXmiJANCivpgqLog73mlocNCivpmK7kv6HmhrINCivpmK7mlpDnkZwNCivpmK7ptaznoqkNCivljZPlv5flv6ANCivljZPoirPlpoINCivljZPoi7Hlk7INCivljZPmt5HlqpsNCivljZPoqozpmoYNCivlkajlo6vlgpENCivlkajkuK3oiIgNCivlkajmlofpm4UNCivlkajku6PlsIkNCivlkajnjonok64NCivlkajlkInpvo0NCivlkajkvZHnpo4NCivlkajlrZ3oirMNCivlkajlv5fmuIUNCivlkajnp4DmmY8NCivlkajkup7mrKMNCivlkajkvanlrpwNCivlkajlpYfok4kNCivlkajlrpzoirMNCivlkajmgKHkvLYNCivlkajmmI7lvJgNCivlkajmnbANCivlkajnjp/okLENCivlkajph5Hnh5UNCivlkajkv4rosaoNCivlkajlqIHlkYgNCivlkajlvaXlspENCivlkajmn4/nlKsNCivlkajnp4vokI0NCivlkajpg4HmlocNCivlkajlqJ/lpoINCivlkajmjK/lh7ENCivlkajnj67lpoINCivlkajlgYnojLkNCivlkajmlY/piLoNCivlkajmg6Dok64NCivlkajoqaDoqJMNCivlkajpm7Lmo6ANCivlkajnhYzogL8NCivlkajoo5XosZANCivlkajlmInmhbYNCivlkajnv6DoiqwNCivlkajos6LlvrcNCivlkajnh5Xnm4gNCivlkajogbDlrocNCivlkajomK3oirMNCivlkajpiLrnv5QNCivlraPogrLmvqQNCivlrpjoirPlpoINCivlsJrmm7gNCivmlrzlrrbnj40NCivmmIzlrZ/nv7ANCivmnpfkuIrlv5cNCivmnpfkuo7npo4NCivmnpflo6vlipsNCivmnpflo6vlgpENCivmnpflo6vovrINCivmnpflpbPmu78NCivmnpflrZDlgpENCivmnpflrZDli6QNCivmnpflsI/nkKoNCivmnpfkuYvoj4ENCivmnpfku4vkuIANCivmnpflpKnmsJENCivmnpfmlofkuK0NCivmnpfmloflsIcNCivmnpfmlofmlq8NCivmnpfmloflvrcNCivmnpfmnKjoiIgNCivmnpfkuJboirMNCivmnpfkuJbmt4cNCivmnpfkuLvmgakNCivmnpflj6/piJ4NCivmnpflubPoi5ENCivmnpfmraPkuIANCivmnpfmraPlgYkNCivmnpfmsLjmmIwNCivmnpfmsLjnpaUNCivmnpfmsLjmmZ8NCivmnpfnjonnjrINCivmnpfnjonoj4ENCivmnpfnn7PpmoYNCivmnpfnq4vlgYkNCivmnpfku7DmnJsNCivmnpflkI7llK8NCivmnpflrojlvrcNCivmnpfnmb7mj5oNCivmnpfkvZHnj4oNCivmnpfkvK/lsrMNCivmnpfkvLbosp4NCivmnpflkYjku7sNCivmnpflkJvnv7ANCivmnpflppnlkJsNCivmnpflrZ3lhagNCivmnpflro/pn4sNCivmnpflro/lhJINCivmnpflu7flkIkNCivmnpflv5fmiJANCivmnpflv5fmnbANCivmnpflv5fnmocNCivmnpflv5floIUNCivmnpflv5fosaoNCivmnpflv5fnqY4NCivmnpflv5fptLsNCivmnpfmnZDkv4oNCivmnpfngbzpvo0NCivmnpfnp4DnjrINCivmnpfnp4DnnJ8NCivmnpfnp4DnqY4NCivmnpfogrLmsJENCivmnpfogrLlkI0NCivmnpfogrLlro8NCivmnpfogrLpgLINCivmnpfogrLmhacNCivmnpfogrLpup8NCivmnpfosLfls7ANCivmnpfkuqvnh4ENCivmnpfkvbPnlJ8NCivmnpfkvbPmgKENCivmnpfkvbPnm4gNCivmnpfkvbPntroNCivmnpfkvbPmhbYNCivmnpfkvbPmvZQNCivmnpfkvbPmqLoNCivmnpfkvbPptLsNCivmnpfkvanmgKENCivmnpfkvanpm68NCivmnpfkvanmhacNCivmnpfkvpHpnZINCivmnpfljZTmnZENCivmnpflnaTpn4sNCivmnpflpYfmqKENCivmnpflrZ/okLENCivmnpflrZ/nqY4NCivmnpflraPnh4ENCivmnpflrpfmhbYNCivmnpflrpfmvqQNCivmnpflrpzlkJsNCivmnpflrpzogZYNCivmnpflrpzmqLoNCivmnpflrpzok4ENCivmnpflrpvmqLoNCivmnpflsrHok4kNCivmnpflubjok4kNCivmnpflv6DlsrMNCivmnpfmgKHmsZ0NCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlnYcNCivmnpfmgKHoirMNCivmnpfmgKHokLENCivmnpfmgKHnpL0NCivmnpfmlrzlpq4NCivmnpfmmIzos6INCivmnpfmmI7nlJ8NCivmnpfmmI7mnbANCivmnpfmmI7mpZMNCivmnpfmmI7mr4UNCivmnpfmmI7nkrANCivmnpfmmIfpvo0NCivmnpfmnbDmrKMNCivmnpfmrKPmgKENCivmnpfmrKPmhYgNCivmnpfmrKPmr4UNCivmnpfmrKPpupcNCivmnpfniaflj7ANCivmnpfnjqvlkJsNCivmnpfnp4nnkakNCivmnpfoirPlpoINCivmnpfoirPlhIANCivmnpfoiqzoirMNCivmnpfph5Hku5UNCivmnpfph5Hpvo0NCivmnpfpnZLlv5cNCivmnpfkuq7ku4ENCivmnpfkv6Hlro8NCivmnpfkv53miJANCivmnpfkv4rkvZENCivmnpfkv4rlro8NCivmnpfkv4rnlLcNCivmnpfkv4rpgLgNCivmnpfkv4rprYENCivmnpfkv5Dkuq0NCivmnpflhqDlkJ8NCivmnpflhqDlhJINCivmnpflk4HlrpwNCivmnpflpZXnp4ANCivmnpflp7/lkL4NCivmnpflqIHlkI0NCivmnpflqIHoia8NCivmnpflu7rkuIANCivmnpflu7rlkL4NCivmnpflu7rlu7cNCivmnpflu7roia8NCivmnpflu7roj68NCivmnpflvaXmlocNCivmnpflvaXkvLYNCivmnpflvaXnlKsNCivmnpflvaXoiIgNCivmnpfmgYbnoqkNCivmnpfmlL/oia8NCivmnpfmlL/lhIANCivmnpfmmKXlubQNCivmnpfmmK3lv5cNCivmnpfmmJ/mmagNCivmnpfmn5HmnY8NCivmnpfmn4/mnZENCivmnpfmn4/nv7ANCivmnpfngrrmlocNCivmnpfnjrLoh7MNCivmnpfnm4jlkJsNCivmnpfnpYjlnYcNCivmnpfnp4vmg6ANCivmnpfnvo7lpoINCivmnpfnvo7lkJ8NCivmnpfnvo7njrINCivmnpfnvo7oj68NCivmnpfoh7TlkJsNCivmnpfoi7HnlLcNCivmnpfombnlpoINCivmnpfosp7lu7YNCivmnpfpg4HmlY8NCivmnpfpg4HomK0NCivmnpfpn4vlmIkNCivmnpflgKnlpoINCivmnpfljp/lkIgNCivmnpflk7Llro8NCivmnpflqJ/lpoINCivmnpflrrbnlJ8NCivmnpflrrbli4cNCivmnpflrrbogZYNCivmnpflrrbmhbYNCivmnpflrrnku58NCivmnpfls7vmmokNCivmnpfluq3nkYsNCivmnpfmjK/mtakNCivmnpfmmYnlhagNCivmnpfmmY/nqJoNCivmnpfmm7jmpbcNCivmnpfmoYLnj6ANCivmnpfms7Dntq0NCivmnpfnj67lpoINCivmnpfnm4rlvJgNCivmnpfnpZDnpr4NCivmnpfnqojmhI8NCivmnpfntKDoj68NCivmnpfogJjlvrcNCivmnpfotbfnv44NCivmnpflgYnmsJENCivmnpflgYnlvrcNCivmnpflnIvmrKMNCivmnpfln7nloK8NCivmnpflqYnnkZwNCivmnpflurflr6cNCivmnpfmlY/oo5UNCivmnpfmuIXpm7INCivmnpfmt5HnjrINCivmnpfmt5HlqKUNCivmnpfmt5HokI0NCivmnpfmt5HlhIANCivmnpfnm5vlgpENCivmnpfpm6rokI0NCivmnpfljZrpmoYNCivmnpfmg6DmlocNCivmnpfmg6DmlY8NCivmnpfmg6DnkIcNCivmnpfmmbrog70NCivmnpfmnJ8NCivmnpfmuZjmg6ANCivmnpfntKvoj4ENCivmnpfoppblsIoNCivmnpfpgLjmmIANCivmnpfpgLjlhJINCivmnpfpm4XlkJsNCivmnpfpm4XlgKsNCivmnpfpm4Xmg6ANCivmnpfpm4Xoj68NCivmnpfpm4XorJkNCivmnpfpoIblrokNCivmnpfltanlsbENCivmnpfmlazmlocNCivmnpfmlrDlh6ENCivmnpfmpaDmo4sNCivmnpfmr5PotoUNCivmnpfnhYzou5INCivmnpfnkZ7lrrYNCivmnpfnkZ7omK0NCivmnpfnpbrli5sNCivmnpfnvqnlgpENCivmnpfnvqTls7ANCivmnpfogZbmgakNCivmnpfogZbpiJ4NCivmnpfoo5XloIUNCivmnpfoqanlh6ENCivmnpfoqanpm68NCivmnpfpm43nv5QNCivmnpfpvI7mpI0NCivmnpflmInnj40NCivmnpflmInnvqQNCivmnpfmpq7mrL0NCivmnpfnnb/mmpgNCivmnpfnsr7muZsNCivmnpfnv6DokI0NCivmnpfpipjnhYwNCivmnpfpvYrolJoNCivmnpflu6PnvqkNCivmnpfmhaflkJsNCivmnpfmhafnvo4NCivmnpfmhafokI0NCivmnpfmhafpupcNCivmnpfnkb7omK0NCivmnpfos6LlvpcNCivmnpflrbjpmoYNCivmnpfmm4nlkJsNCivmnpfmm4noj68NCivmnpfmvqTnvqkNCivmnpfnqY4NCivmnpfoiIjph5cNCivmnpfpjKbpmoYNCivmnpfpnZzlrpwNCivmnpfpnZzoiqwNCivmnpfmh4vlt54NCivmnpfpp7/pgLgNCivmnpfptLvpgZQNCivmnpfosZDoiJwNCivmnpfpupflkJsNCivmnpfpupfoj68NCivmnpfnubzlubMNCivmnpflt43pvo0NCivmnpfoiorkuqgNCivmnpflp53lnYcNCivmnpflgKzkuJYNCivmnpfnkK7plpQNCivmnpfnhZLptLsNCivmnpfnrbHoj4ENCivmnpfpiLrlh7ENCivmnpfpqacNCivnpYHnvqnlnIsNCivliJ3oi6Xlh6ENCivpgrXlpZXpiJ4NCivpgrXmh7flvrcNCivpgrHljYPntroNCivpgrHlrZDmpZMNCivpgrHlpKnlro8NCivpgrHmlofptLsNCivpgrHlubzlqpoNCivpgrHnjonnjrINCivpgrHlronlj7ANCivpgrHlv5flhYkNCivpgrHnp4Doi7ENCivpgrHkvbPmnb4NCivpgrHlu7bpvaENCivpgrHmmIzoo5UNCivpgrHms5PlvbANCivpgrHkv6Hnm4oNCivpgrHkv4rmpq4NCivpgrHlk4Hoj68NCivpgrHlpZXnnb8NCivpgrHlu7roqqANCivpgrHmlL/muacNCivpgrHmn4/nkZwNCivpgrHnm4jmo6ANCivpgrHoh7TnqY4NCivpgrHph43mhrINCivpgrHmjK/ls7ANCivpgrHnj67ntroNCivpgrHlnIvmga0NCivpgrHlqYnlrIUNCivpgrHmuIXpvo0NCivpgrHmt5HmhacNCivpgrHlibXlhIkNCivpgrHmg6DoqakNCivpgrHmuZjpm7INCivpgrHpm4XoiqwNCivpgrHpm4XojJwNCivpgrHmr5PnjrINCivpgrHnm5/nkIcNCivpgrHoqannkIENCivpgrHlmInmhacNCivpgrHpn7bnkakNCivpgrHmhaflqbcNCivpgrHpnZzlrpwNCivpgrHosZDnpaUNCivpgrHpn7vlr6cNCivpgrHnubznkakNCivpgrHpoa/moZMNCivpgrHnkKzmt5ENCivpgrHpiLrmlpANCivph5HmmI7ovJ0NCivph5Hli6QNCivkvq/mloflk7INCivkvq/lro/mmIwNCivkvq/lsrPlro8NCivkvq/kv6HlrocNCivkvq/mn4/pnZINCivkvq/mt7XpipgNCivkvq/pm4Xpm68NCivkvq/pnZzmsZ0NCivkv57kvbPlh6ENCivkv57oiorologNCivlp5zlro/mpq4NCivlp5zoip3mgKENCivlp5zlh7HlgpENCivlp5zlop7ngqsNCivlp5zml7vlp40NCivlp5rnq4vkuIkNCivlp5rkvbPmhacNCivlp5rlqIHlrocNCivlp5rlh7HmlocNCivlp5rlvrfpup8NCivlvovmjK/mj5oNCivmlr3lj6/pmoYNCivmlr3lrofpp78NCivmlr3lrZ3lvrcNCivmlr3ogrLnkZwNCivmlr3kvanoj68NCivmlr3lrpvnm7QNCivmlr3mmI7lpo0NCivmlr3kv4rlkI0NCivmlr3lu7rlrocNCivmlr3mn4/lpoINCivmlr3pg4HolZkNCivmlr3mlY/nlLcNCivmlr3ljZrlhYMNCivmlr3mmbrli4cNCivmlr3pm4XlqJ8NCivmlr3lmInnkKoNCivmlr3mhaflkJsNCivmlr3pnZzmgKENCivmlr3nkYvnkZwNCivmn6/mlofnpaUNCivmn6/lhajnm4oNCivmn6/lv5fmmI4NCivmn6/kvanlkJsNCivmn6/lrpvlkJsNCivmn6/mrKPlhIANCivmn6/kv4rpmoYNCivmn6/nm4jlpoINCivmn6/mlY/nm5sNCivmn6/ljZrlhYMNCivmn6/mo4vmo6MNCivmn6/mr5PokI0NCivmn6/ps7PlhIANCivmn6/nk4rpjqMNCivmn7PkvanlkJsNCivmn7Pmo4vlhYMNCivmrrXmmI7lro8NCivmtKrlipvlo7kNCivmtKrlo6vogrINCivmtKrlrZDlqbcNCivmtKrmlofmmI4NCivmtKrkuJblmIkNCivmtKrmsLjmmIwNCivmtKrnjonokqgNCivmtKrlkI3ooaENCivmtKrlkJvnpaUNCivmtKrlv5fmmI4NCivmtKrmnZHpipgNCivmtKroia/mrKMNCivmtKrlnaTpjKENCivmtKrlrpzoia8NCivmtKrmgKHnnJ8NCivmtKrmmI7pvo0NCivmtKrkv4rpm4QNCivmtKrmlL/pnIgNCivmtKrnvo7okI0NCivmtKrph43ljb8NCivmtKrmjK/nm4oNCivmtKrnj67oirMNCivmtKrlgYnlk7INCivmtKrmm7znj4oNCivmtKrlnIvnv5QNCivmtKrlqYnntIsNCivmtKrlvqHlvZcNCivmtKrmuIXlgaUNCivmtKrmt5Hmt6kNCivmtKrpm6roirMNCivmtKrmg6Dmo4sNCivmtKroj4HpmoYNCivmtKrpm4Xoi5MNCivmtKrmhYjkvLYNCivmtKrnhYzlh7ENCivmtKrnkZ7ptLsNCivmtKrokLHpi5INCivmtKrpnZblh7ENCivmtKrlmInok64NCivmtKrmpq7ovJ0NCivmtKrntroNCivmtKrogoflvaUNCivmtKrpipjpjb4NCivmtKrmhbbpipgNCivmtKrnkannj40NCivmtKrpnZzmgKENCivmtKrol53oj4ENCivmtKrnubzos6INCivmtKrmmaLmg4cNCivmtKrpiLrmq7sNCivntIDmlofmrL0NCivntIDlv5fpnJYNCivntIDmgKHlqbcNCivntIDnm4jlt54NCivntIDljZrmlY8NCivntIDpoIboiIgNCivntIDomK3mvZQNCivog6HmlofnkZwNCivog6HnjonmhacNCivog6Hlu7flqIENCivog6HlrprlrocNCivog6HoirPmhYgNCivog6HnjrLlqYkNCivog6Hlrrbmpq4NCivog6HntJToj4ENCivog6Hmt5HlkJsNCivog6HljZrnoa8NCivog6HmmbrpipgNCivog6Hpm4XmmboNCivog6HnkZ7mtJkNCivog6HnoqflqpwNCivog6HpnZzoi5ENCivog6Hmh7/lv4MNCivojIPmlofmlL8NCivojIPlkInmhbYNCivojIPmmI7kuK0NCivojIPlp5zmhafmgKENCivojIPlrrboqqANCivojIPogJXprYENCivojIPljZrlvbANCivojIPmmbrmrL0NCivojIPnkZ7npaUNCivojIPntrHos6INCivojIPogIDogbANCivoqIjnq7nlrocNCivpn4vmoYLku4ENCivlgKrlqIHpgaANCivlgKrnkZ7mnJ8NCivlh4zmmI7lvrcNCivllJDljYPmg6ANCivllJDpgqbms7ANCivllJDoi7HlqJwNCivllJDmt5HoiqwNCivllJDnvqnloK8NCivllJDorb3njqsNCivlpI/mmKXpppkNCivlpI/mhafpvaENCivlravlhYPkv4oNCivlravmsLjkv6ENCivlravkvK/kuK0NCivlravljZToo5UNCivlravlu7rltLQNCivlravmjK/mtrwNCivlravlnIvmm7gNCivlravmt5HoiqwNCivlravlgrPlh7ENCivlravpgZPpmoYNCivlravosarlv5cNCivlravlrbjlhIANCivlravnkYANCivlvpDkuZnlj68NCivlvpDlo6vli5sNCivlvpDku4Hkub4NCivlvpDmlofnm4oNCivlvpDku5Xms5MNCivlvpDmsLjlhYkNCivlvpDnq4vpgZQNCivlvpDlpoLmmIcNCivlvpDlhYvpiJ4NCivlvpDlv5flgYkNCivlvpDogrLmhYgNCivlvpDkvanpjKYNCivlvpDmmIbnvr8NCivlvpDmnb7ptLsNCivlvpDkv6HkuK0NCivlvpDmgJ3ntq0NCivlvpDnvo7oj68NCivlvpDlrrbmpbcNCivlvpDmtZrlgpENCivlvpDlgYnls7sNCivlvpDlnIvlgKsNCivlvpDlqYnlhIANCivlvpDmlY/oirMNCivlvpDmt5HlqJ8NCivlvpDojonnnJ8NCivlvpDmjoznkZsNCivlvpDoqaDlqpsNCivlvpDpoIblro8NCivlvpDnkZ7mga0NCivlvpDoo5XlvawNCivlvpDlmInlro8NCivlvpDlpKLpup8NCivlvpDntq3mj5oNCivlvpDpipjorJkNCivlvpDmhaflv4MNCivlvpDpnIfmnbENCivlvpDptLvku4ENCivlvpDnubzmlL8NCivlvpDoj6HnpqcNCivlvpDpiLrntr4NCivmn7TlrbjoiJwNCivmrrfogofpmb0NCivnpZbmm4nps7MNCivnp6bmopPpipgNCivnv4Hkuo7nkKoNCivnv4HmlofojLkNCivnv4Hku7Los6INCivnv4HogrLnqJQNCivnv4HmmI7lrokNCivnv4Hmn4/ogZYNCivnv4Hnj67mgKENCivnv4HltIfluq0NCivnv4Hmt5Hoj68NCivnv4HpgLjou5INCivnv4HnvqnlrpcNCivnv4HlpKLlkJsNCivnv4HpipjpgZwNCivnv4HpnZznkZwNCivnv4HpnZrmmY8NCivoooHlpoLlsqENCivoooHlgYnlgKsNCivoooHmpq7nh6YNCivppqzkuIDmlocNCivppqznjonlqJ8NCivppqzkvbPkvLYNCivppqzoi7HlgpENCivppqzmmbrlkJsNCivppqznt5Llt50NCivpq5jkuIDpipgNCivpq5jlsI/mlocNCivpq5jkuJbmmIwNCivpq5jmraPlnIsNCivpq5jkvIrkv4oNCivpq5jlro/pipgNCivpq5jnp4DpiLQNCivpq5jlpq7nkYsNCivpq5jmmI4NCivpq5jlkrjlr6YNCivpq5jnvo7oirMNCivpq5jls7ANCivpq5jlgaUNCivpq5jln7nnnJ8NCivpq5jmlY/lqIkNCivpq5jnrJnovJQNCivpq5jnkKroiJINCivpq5jpm4XohbkNCivpq5jnhafplpQNCivpq5joqanlqIkNCivpq5jlvbDpmoYNCivpq5jnv6Dnv44NCivpq5jpipjnkIcNCivpq5jmhafokI0NCivpq5jorZzlgKsNCivpq5jmlozpkasNCivllYblvJjmmJMNCivltJTlgKnoi5MNCivlurfkuYPmnIgNCivlurfmlLjoj68NCivlurfnvo7njrINCivlurflgpHmsJENCivlurfpm4XlqbcNCivlurfmm4nolZkNCivlvLXkuIDptLsNCivlvLXlipvlpKsNCivlvLXljYPph4wNCivlvLXlsI/okI0NCivlvLXku4HmnbANCivlvLXlhYPpmoYNCivlvLXlpKnps7MNCivlvLXlv4PnkZwNCivlvLXmloflvaUNCivlvLXmlofmrL0NCivlvLXmlofosaoNCivlvLXmlofpqLANCivlvLXkuJbmmI4NCivlvLXkuJblhJINCivlvLXku5XogrINCivlvLXlj6/mrKMNCivlvLXlvJjms7ANCivlvLXmraPlv6ANCivlvLXmraPooZsNCivlvLXmsLjkv4oNCivlvLXnjoTptLsNCivlvLXnjonnkKoNCivlvLXnq4vmlocNCivlvLXkuqblr6cNCivlvLXlhYnku4ENCivlvLXljKHmnbANCivlvLXlpoLnkakNCivlvLXml63lrpcNCivlvLXoh7Pnnb8NCivlvLXkvZHnvqQNCivlvLXlhYvlgYkNCivlvLXlppnmhacNCivlvLXlro/nkZ4NCivlvLXlv5cNCivlvLXlv5fmmI4NCivlvLXlv5fnpaUNCivlvLXlv5fpgZQNCivlvLXlv5fosaoNCivlvLXmsoXnkr0NCivlvLXnp4DnkKoNCivlvLXogrLltKcNCivlvLXogrLoqqANCivlvLXogrLnkYsNCivlvLXkup7pipwNCivlvLXkvbPmg6ANCivlvLXkvannkZsNCivlvLXlrZ/lqbcNCivlvLXlrpzmlrANCivlvLXlv7XmhYgNCivlvLXmmIbnhYwNCivlvLXmmI7nhacNCivlvLXmnpfoiqwNCivlvLXmsrvlnIsNCivlvLXoip3lj4sNCivlvLXph5Hps7MNCivlvLXkv4rlgYkNCivlvLXlhqDoj68NCivlvLXlu7rosaoNCivlvLXmgYbnkYsNCivlvLXmn5TmmI4NCivlvLXnlYzogbANCivlvLXntIDlkJsNCivlvLXnvo7pm68NCivlvLXojILphpINCivlvLXpppnnkr0NCivlvLXlgKvnkYsNCivlvLXlk7LlgaUNCivlvLXlk7Lntq0NCivlvLXlrrbmjK8NCivlvLXlrrboj7ENCivlvLXlrrbnvqQNCivlvLXlrrbntroNCivlvLXlrrbosaoNCivlvLXlrrbpipgNCivlvLXlrrbnkYsNCivlvLXls7vlmIkNCivlvLXluq3mupANCivlvLXmjK/mupANCivlvLXmmYnosaoNCivlvLXmm7jntq0NCivlvLXmm7jppqgNCivlvLXmoYLps7MNCivlvLXnj67mgKENCivlvLXnm4rntq0NCivlvLXnp6boirgNCivlvLXntJTnm4oNCivlvLXogL/ltJoNCivlvLXpq5jnkZ4NCivlvLXlgaXoia8NCivlvLXlnIvlqpsNCivlvLXlqYnmmoQNCivlvLXmg5/mjbcNCivlvLXmooXlkJsNCivlvLXmuIXlh7ENCivlvLXmt5Hnj40NCivlvLXmt5HojLkNCivlvLXmt5Hpm4UNCivlvLXmt7Xlr4wNCivlvLXojonojLkNCivlvLXlh7HlrocNCivlvLXlh7HnkLMNCivlvLXli53lgpENCivlvLXljZrli5sNCivlvLXllqznv5QNCivlvLXlr4zmt7MNCivlvLXmg6DlqJ8NCivlvLXmg6Doj4ENCivlvLXmlabnvqkNCivlvLXmma/muL4NCivlvLXmmbrmuIUNCivlvLXmmbrnv5QNCivlvLXmmbrorJkNCivlvLXmuZjmgKENCivlvLXnmbvnv5QNCivlvLXntKvpiLQNCivlvLXoiJzoj68NCivlvLXoqLzojYMNCivlvLXpgLjnvqQNCivlvLXpiJ7osr0NCivlvLXpm4Xlp40NCivlvLXpm4XmlY8NCivlvLXpm4XlqbcNCivlvLXpm4Xmg6ANCivlvLXpm4XnkLQNCivlvLXpm4XpiLQNCivlvLXpm6/lhIANCivlvLXll6PmlocNCivlvLXmlrDlro8NCivlvLXmr5PlgKsNCivlvLXnkZrnj4oNCivlvLXnkZ7oirgNCivlvLXnkZ7msLYNCivlvLXnpbrmmIcNCivlvLXogZbojokNCivlvLXoqanmgKENCivlvLXpnZbmgKENCivlvLXlmInmraMNCivlvLXlmInoiqwNCivlvLXlmInmmYkNCivlvLXlmInmg6ANCivlvLXlmInogbINCivlvLXmppXlrrkNCivlvLXnnb/nqY4NCivlvLXnoqnmoZMNCivlvLXntrXoirMNCivlvLXntq3lk7INCivlvLXnv6DmlocNCivlvLXok5PokLENCivlvLXpipjlrpcNCivlvLXps7PlubMNCivlvLXmhbbmgKENCivlvLXmhaflqJ8NCivlvLXnkannj4oNCivlvLXmhrblkJsNCivlvLXmm4noj4ENCivlvLXnv7DmlocNCivlvLXpnZzlpoINCivlvLXnkrDkvIoNCivlvLXptLvmmboNCivlvLXnsKHmrKPoj68NCivlvLXosZDnkrgNCivlvLXnk4rmlocNCivlvLXol53ppqgNCivlvLXlr7bkupENCivlvLXogIDkupENCivlvLXogIDogbINCivlvLXppqjmlocNCivlvLXlt43ogIANCivlvLXoioMNCivlvLXnkIfplpQNCivlvLXnkKzoj4ENCivlvLXnkYvoirgNCivlvLXnrbHpm68NCivlvLXnppXlgKsNCivlvLXmgZLkuK0NCivmm7nlo6vmlY8NCivmm7nogb/nlLcNCivmm7nmmIznlLcNCivmm7nlk7LlmIkNCivmm7nmt5HlqpsNCivmm7nnmpPpm7INCivmm7nlmInmlocNCivmm7nnkr3nqaANCivmooHmloflrokNCivmooHmraPlv6ANCivmooHmsZ3oiJwNCivmooHlv5fpipgNCivmooHmnbHmnpcNCivmooHlvaXosaoNCivmooHlrrbmmI4NCivmooHmmYnprYENCivmooHllZ/njoQNCivmooHli53pipgNCivmooHmnJ3lh7ENCivmooHmhLfoirgNCivmooHlmInnj40NCivmooHmhafoj68NCivmooHnk4rkuLkNCivmooXlhYnlrocNCivnm5vlv4MNCivojqvmmJ/lrocNCivojorlo6vlnIsNCivojormlofmmK0NCivojorlvJjku7sNCivojornjonpup8NCivojorlv5fmpq4NCivojorkvp3lqbcNCivojorlnaTlk7INCivojorlrpfli7MNCivojormgKHou5INCivojormnbHmmI4NCivojorph5HpnZwNCivojormlL/mhrINCivojorlgInmnbANCivojorls7vmppUNCivojorntJTntJQNCivojorln7npkasNCivojormt5HoiqwNCivojormt5Hnj7oNCivojorli53liKkNCivojorlvqnosrQNCivojormg6Dok4kNCivojormmbrmtrUNCivojornmbvnmbwNCivojorpm4Xlv4MNCivojorpm4Xmg6ANCivojorpm6/pm68NCivojoroo5XmlocNCivojorpipjmma8NCivojormqLnlro8NCivojorpnZzmgKENCivojorpjpTnkp4NCivojormh7/lvLcNCivojornrbHlqbcNCivoqLHlj4jku4ENCivoqLHlo6zogIANCivoqLHmlofljpoNCivoqLHmlofosaoNCivoqLHkuJbmsJENCivoqLHliqDlro8NCivoqLHmraPlv6ANCivoqLHmsLjmr4UNCivoqLHnjonlrIsNCivoqLHlkI3kuJYNCivoqLHmsY7nqY4NCivoqLHlhYvku7INCivoqLHlro/lvrcNCivoqLHlv5fltIcNCivoqLHlv5fpgaANCivoqLHnp4Dnj4oNCivoqLHoia8NCivoqLHkvbPpm68NCivoqLHlrZ/nv5QNCivoqLHmgKHnj64NCivoqLHmnb7nrYkNCivoqLHoirPpipgNCivoqLHkv6Hmpq4NCivoqLHmgazntr4NCivoqLHnj4rnkZwNCivoqLHnvo7oj68NCivoqLHpg4HmlY8NCivoqLHlk7LnkZ4NCivoqLHlk7LnkYsNCivoqLHlrrbmmpgNCivoqLHlrrbosaoNCivoqLHls7vlk7INCivoqLHluq3nkYsNCivoqLHmmYnnhpINCivoqLHmm7jpipMNCivoqLHnj67lmIkNCivoqLHntKDoj4ENCivoqLHosqHlvpcNCivoqLHlqYnojLkNCivoqLHmooXoj4ENCivoqLHmt5HoiqwNCivoqLHmt5Hmg6ANCivoqLHojonojokNCivoqLHli53li5sNCivoqLHloKHlpoINCivoqLHmg6DlpoINCivoqLHmg6Dpm68NCivoqLHmma/piJ4NCivoqLHmmbrlh7ENCivoqLHmmbrlvrcNCivoqLHnq6Pog70NCivoqLHoj6/lgJoNCivoqLHpgLjnq6ANCivoqLHpm4XnjrINCivoqLHpm4Xmg6ANCivoqLHpm4Xpm4ENCivoqLHpm6/nkLMNCivoqLHmpajnpaUNCivoqLHnkZ4NCivoqLHnkZ7lhIANCivoqLHogZbmnbANCivoqLHlmInlhYMNCivoqLHlmInnj64NCivoqLHmppUNCivoqLHnoqnkv64NCivoqLHntq3nnJ8NCivoqLHpipjku4ENCivoqLHplqPmlocNCivoqLHmhafosp4NCivoqLHmhrboirMNCivoqLHpjKbmlocNCivoqLHltrjku4ENCivoqLHnk4rmlocNCivoqLHpupfoj68NCivoqLHppqjku4ENCivoqLHmmLboj68NCivoqLHnrbHokI0NCivoqLHmgZLpgZQNCivpgKPkvZHku4ENCivpgKPlu7rmmboNCivpgKPmoYLlro8NCivpgKPllZ/mmboNCivpgKPlmInntJQNCivpg63kuYPmpq4NCivpg63kuo7npo4NCivpg63lrZDnq4sNCivpg63ku4Hlk7INCivpg63mlofmg6ANCivpg63kuJbomK0NCivpg63msLjmmI4NCivpg63ku7Lmt7UNCivpg63lubTnnJ8NCivpg63lkJvmgKENCivpg63lv5flro8NCivpg63ogrLlhYgNCivpg63pgqblvaUNCivpg63kvbPpkasNCivpg63lrZ/ok4kNCivpg63mgKHkvLYNCivpg63mgKHnp4ANCivpg63mmI7lrpcNCivpg63mmI7nkYsNCivpg63njqXlpqYNCivpg63oip3nnb8NCivpg63kv53lkJsNCivpg63kv4rlhIQNCivpg63lk4Hnp4ANCivpg63lqIHlv5cNCivpg63lu7roia8NCivpg63mgJ3lrpwNCivpg63mmK3lrokNCivpg63mn4/np4ANCivpg63nm4jlkJsNCivpg63nvo7lloQNCivpg63osp7lrY0NCivpg63lh4zlv5cNCivpg63lrrbnpaUNCivpg63lrrjmmIANCivpg63mjK/mvKINCivpg63moYLps7MNCivpg63ntKDntr4NCivpg63lnIvmraMNCivpg63mt7vmlrANCivpg63mt5HmhacNCivpg63mg6DpnZINCivpg63mmbrnkYsNCivpg63pgLLmmIwNCivpg63pm4Xoj7ENCivpg63nkZ7mrL0NCivpg63lmInlgYkNCivpg63noqflqJ8NCivpg63mhbbnlJ8NCivpg63lhJLorJkNCivpg63nh5XnjrINCivpg63pnZznvo4NCivpg63pjq7lhYMNCivpg63njbvmlocNCivpg63nsaDmhbYNCivpg63mmpANCivpmbPkuIDoj68NCivpmbPkuYPmpq4NCivpmbPlj4jmmJUNCivpmbPljYPpjKYNCivpmbPlrZDlvaUNCivpmbPlt7HljYcNCivpmbPku4HlrpcNCivpmbPlhYPpnZYNCivpmbPlpKnos54NCivpmbPlv4PmvZQNCivpmbPmloflv6ANCivpmbPmlofmtpMNCivpmbPmlofmrL0NCivpmbPmloflvrcNCivpmbPmlofpiLoNCivpmbPkuJblrpcNCivpmbPkuJbmlL8NCivpmbPkuJbnq6ANCivpmbPkuJbmvqQNCivpmbPku6XpnZwNCivpmbPku5Xlj6ENCivpmbPlj6/mrKMNCivpmbPlt6fnj4oNCivpmbPlubzmrKMNCivpmbPlvJjoqJMNCivpmbPmnK3ln7kNCivpmbPmraPls7ANCivpmbPmraPosaoNCivpmbPmsLgNCivpmbPmsLjpnZINCivpmbPmsLjoqowNCivpmbPnjonmlocNCivpmbPnjonoiqwNCivpmbPnjonnj6ANCivpmbPnjonoj4ENCivpmbPnjonnkpgNCivpmbPnn7PogrINCivpmbPnq4vlgKsNCivpmbPnq4vntq0NCivpmbPkvIrlgKsNCivpmbPlhYnnlKsNCivpmbPlkJHmpq4NCivpmbPlpoLomIsNCivpmbPlronkvZENCivpmbPmsZ/nq4sNCivpmbPoh7Plh7ENCivpmbPkvZHluq0NCivpmbPkvK/okrwNCivpmbPlkJvoiKoNCivpmbPlnYfnoqkNCivpmbPlpo3np4ANCivpmbPlro/ku4ENCivpmbPlro/nvo4NCivpmbPlro/pgZQNCivpmbPlro/nhZINCivpmbPlv5flubMNCivpmbPlv5fmspsNCivpmbPlv5fmmI4NCivpmbPlv5flvaUNCivpmbPlv5fnpaUNCivpmbPlv5fmupANCivpmbPlv5fntq0NCivpmbPlv5fosaoNCivpmbPlv5fnqY4NCivpmbPmlLjlqbcNCivpmbPmsbbmtKUNCivpmbPnp4Doip0NCivpmbPnp4Dmg6ANCivpmbPnp4DmhacNCivpmbPogrLkvZANCivpmbPogrLoqakNCivpmbPoia/mlL8NCivpmbPphYnojLkNCivpmbPkvp3nv5QNCivpmbPkvbPlkJ8NCivpmbPkvbPnjqUNCivpmbPkvbPmg6ANCivpmbPkvbPpm68NCivpmbPkvbPnkpgNCivpmbPkvoPlqbcNCivpmbPkvankvakNCivpmbPkvannkLMNCivpmbPlhbbpiJ4NCivpmbPlnaTkvZANCivpmbPlp5Tmib8NCivpmbPlrZ/lgYkNCivpmbPlrZ/ovJ0NCivpmbPlrpflv5cNCivpmbPlrpfml5cNCivpmbPlrpzlubMNCivpmbPlrpzlp78NCivpmbPlrpznkosNCivpmbPlsJrmlocNCivpmbPlubjotrMNCivpmbPlv6Doia8NCivpmbPmgKHmlocNCivpmbPmgKHlpoINCivpmbPmgKHlpoINCivpmbPmgKHnq7kNCivpmbPmgKHkvLYNCivpmbPmgKHlkJsNCivpmbPmgKHlkJsNCivpmbPmgKHlkJsNCivpmbPmgKHmmIwNCivpmbPmgKHnnJ8NCivpmbPmgKHnkLQNCivpmbPmgKHoqqANCivpmbPmgKHmvZQNCivpmbPmgKHpnZwNCivpmbPmgKHlj6ENCivpmbPmmIzmlocNCivpmbPmmI7mraMNCivpmbPmmI7mnZANCivpmbPmmI7nj6ANCivpmbPmmI7mpbcNCivpmbPmmI7osZANCivpmbPmnbHoj68NCivpmbPmrKPlpoINCivpmbPmrKPmgKENCivpmbPmrKPomK0NCivpmbPms5Pnv5QNCivpmbPms4rovrANCivpmbPnjp/nkZsNCivpmbPnjqvoh7sNCivpmbPnp4nmlowNCivpmbPoip3lgKkNCivpmbPph5Hoia8NCivpmbPplbfmhbYNCivpmbPkuq3lkJsNCivpmbPkuq7nqY4NCivpmbPkv6HlkJ8NCivpmbPkv6HnlKsNCivpmbPkv6Hoo5UNCivpmbPkv53lhYMNCivpmbPkv4rku7ANCivpmbPkv4rlrocNCivpmbPkv4rml60NCivpmbPkv4rlro8NCivpmbPkv4rlu7cNCivpmbPkv4roia8NCivpmbPkv4rpg44NCivpmbPkv4roj68NCivpmbPkv4rmppUNCivpmbPkv4rpipgNCivpmbPkv4rmqLoNCivpmbPkv5DlrokNCivpmbPkv57ku7INCivpmbPlhqDlpKsNCivpmbPlhqDlrocNCivpmbPlhqDlro8NCivpmbPlhqDlgpENCivpmbPlhqDpipgNCivpmbPli4flnKgNCivpmbPli4HlkL4NCivpmbPlk4HlhYgNCivpmbPlpZXkuK0NCivpmbPlpZXlu7cNCivpmbPlpZXnqY4NCivpmbPlp7/mlocNCivpmbPlp7/lkJ8NCivpmbPlp7/nqY4NCivpmbPlqIHlhagNCivpmbPlqIHliqkNCivpmbPlqIHpgpENCivpmbPlqIHlhJINCivpmbPlrqPmr48NCivpmbPluKXlkI0NCivpmbPlu7rku7sNCivpmbPlu7rlrokNCivpmbPlu7rml60NCivpmbPlu7rlro8NCivpmbPlu7rlu7cNCivpmbPlu7rnlKsNCivpmbPlu7rpgqYNCivpmbPlu7rmj5oNCivpmbPlu7rpgZQNCivpmbPlu7rovJQNCivpmbPlu7rnkosNCivpmbPlu7rng5wNCivpmbPlvaXku7sNCivpmbPlvaXluIYNCivpmbPlvaXlkJsNCivpmbPlvaXlu7cNCivpmbPlvaXmmIwNCivpmbPlvaXntrgNCivpmbPlvaXli7MNCivpmbPmgJ3lubQNCivpmbPmgJ3mupANCivpmbPmgJ3nqY4NCivpmbPmlL/mlocNCivpmbPmlL/oo5UNCivpmbPmmKXlpoMNCivpmbPmmK3mlocNCivpmbPmmK3lgYkNCivpmbPmmK3nkYsNCivpmbPmmKDlhJINCivpmbPmmLHkuJ4NCivpmbPmmLHnlKsNCivpmbPmn5TlrokNCivpmbPmn4/ku70NCivpmbPmn4/lubQNCivpmbPmn4/lv5cNCivpmbPmn4/ls7ANCivpmbPmn4/lr6cNCivpmbPmn4/ovK8NCivpmbPngqvlkJsNCivpmbPngrPpjJUNCivpmbPnj43nkakNCivpmbPnm4jlhagNCivpmbPnm4jlrokNCivpmbPnm4jlrZwNCivpmbPnm4jlqbcNCivpmbPnm4jnkocNCivpmbPnprnpvYoNCivpmbPnp4vluIYNCivpmbPnp4vokI0NCivpmbPntIDotrMNCivpmbPnvo7lpoINCivpmbPnvo7lkJsNCivpmbPnvo7oip0NCivpmbPnvo7ntJQNCivpmbPnvo7nkLQNCivpmbPnvo7mhacNCivpmbPnvr/osLcNCivpmbPoh7Tnpo8NCivpmbPojILpm4QNCivpmbPoi7HlgpENCivpmbPombnmm7INCivpmbPooY3oh7MNCivpmbPosp7lpqQNCivpmbPpg4HmlocNCivpmbPpg4Hoj4ENCivpmbPph43lu7cNCivpmbPpn4vkvLYNCivpmbPpn7MNCivpmbPpppnlkJ8NCivpmbPlgJbnv6ANCivpmbPlk7LlvLcNCivpmbPlrrbnj40NCivpmbPlrrbpm68NCivpmbPlrrbmhacNCivpmbPlrrnokLENCivpmbPmjK/mnbENCivpmbPmmYLnm58NCivpmbPmoYLnjokNCivpmbPms7Dls7ANCivpmbPmtanojLkNCivpmbPnj67nj64NCivpmbPnm4roo5UNCivpmbPntKDlqKUNCivpmbPogJjlr6wNCivpmbPkub7mt6YNCivpmbPlgYnojokNCivpmbPlgaXpnJYNCivpmbPlnIvls7ANCivpmbPlnIvmpq4NCivpmbPln7nnq68NCivpmbPlqYnoj4ENCivpmbPltJHpipgNCivpmbPllZ/lrZgNCivpmbPmlY/mlrANCivpmbPmuIXlpYcNCivpmbPmt5HlkJsNCivpmbPmt5HoiqwNCivpmbPmt5HlqJ8NCivpmbPmt5HnvpoNCivpmbPmt5Hpm4UNCivpmbPmt5HpnZwNCivpmbPntLnluq0NCivpmbPoqLHmsJENCivpmbPlgpHoo5UNCivpmbPli53lmIkNCivpmbPlqbfnjp8NCivpmbPmg6DmlocNCivpmbPmg6DnjrINCivpmbPmg6DokI0NCivpmbPmg6DpvaENCivpmbPmma/ms7ANCivpmbPmmbrlgYkNCivpmbPmnJ3nhpkNCivpmbPmuZjnkLQNCivpmbPnkKbnkLMNCivpmbPogoXmrIoNCivpmbPoqaDkuq4NCivpmbPpgLjlubMNCivpmbPpgLjoj4ENCivpmbPpgLLpmoYNCivpmbPpmobmlowNCivpmbPpm4XoiqwNCivpmbPpm4Xoi5MNCivpmbPpm4Xmg6ANCivpmbPpm4XnkLQNCivpmbPpm4Xpm68NCivpmbPpm4Xpn7sNCivpmbPpoIbnmbwNCivpmbPmhI/pm68NCivpmbPmlazmlocNCivpmbPmpobmtrUNCivpmbPmr5PpiJ4NCivpmbPnhafmhYgNCivpmbPnkZ7liKkNCivpmbPnkZ7nkZwNCivpmbPnkZzoqakNCivpmbPnvqnlv6ANCivpmbPogZblrpwNCivpmbPonILngZ0NCivpmbPoo5XmmboNCivpmbPoqanlqbcNCivpmbPpgYvlvrUNCivpmbPpvI7ku4ENCivpmbPlmInlro8NCivpmbPlmInls7ANCivpmbPlmInpm4ENCivpmbPlmInnkakNCivpmbPml5fmmIwNCivpmbPmpq7nh78NCivpmbPnoqfntIUNCivpmbPnpo/mnpcNCivpmbPntq3lk7INCivpmbPogofptLsNCivpmbPpipjms4kNCivpmbPpipjogIANCivpmbPlhIANCivpmbPlu6Ppup8NCivpmbPlvrfpgaANCivpmbPmhbboj68NCivpmbPmhbbptLsNCivpmbPmhafoip0NCivpmbPmhafnvo4NCivpmbPmhafntJQNCivpmbPmhafpm68NCivpmbPmhZXlhJINCivpmbPmvZTpn7MNCivpmbPnkannkYQNCivpmbPoqrzoirMNCivpmbPpu47moYINCivpmbPmhrLlhIANCivpmbPmm4npnZINCivpmbPmm4nnraANCivpmbPmqLnlubQNCivpmbPnh5Xoj4ENCivpmbPnqY7npaUNCivpmbPolZnoirMNCivpmbPpjKbnp4ANCivpmbPpjKbptLsNCivpmbPpnZzmgKENCivpmbPpnZzmt5ENCivpmbPpnZzmhacNCivpmbPpvo3lr6wNCivpmbPolocNCivpmbPpp7/mj5oNCivpmbPptLvmuIUNCivpmbPnkr/lpoINCivpmbPnk4rmt4cNCivpmbPotIrkuK0NCivpmbPpn7vlpoINCivpmbPpn7vnq7kNCivpmbPpupLlhYMNCivpmbPpupflpoINCivpmbPpupfoiqwNCivpmbPpupflqbcNCivpmbPlr7bnjokNCivpmbPogIDnrJkNCivpmbPmq7vlrrkNCivpmbPoibfpiLQNCivpmbPml7vmlL8NCivpmbPlp7XlpoINCivpmbPmmLbmmLENCivpmbPloJwNCivpmbPnkKzoj4ENCivpmbPnkYvlhbgNCivpmbPnrbHoirMNCivpmbPpiLrnjqsNCivpmbPpiprojLkNCivpmbPngIXlpoINCivpmbPlrL/kvLYNCivpmbjmraPnvqkNCivpmbjmtKXoj68NCivpmbjps7PnjrINCivnq6Dmlofoip0NCivnq6Dnv5QNCivpuqXnm6flr7blhagNCivlgoXmlofpgLINCivlgoXkup7lh6ENCivlgoXlu7rlnIsNCivlgoXnj67mt4cNCivlgoXmt5Hpm68NCivlgoXpiZvmlocNCivlgoXnkK4NCivllqzlrpfloK8NCivlva3ku4Hlv5cNCivlva3mlofmhacNCivlva3njonoj68NCivlva3miJDlgpENCivlva3kvbPlgYkNCivlva3mnIvpm40NCivlva3kv4rnpo8NCivlva3lu7rmpq4NCivlva3oi6XmhYgNCivlva3mtanlgKsNCivlva3ltIfkv6ENCivlva3nm5sNCivlva3mu4vokI0NCivlva3pm4XntbkNCivlva3ogZbokI0NCivlva3mhaflpoINCivlva3pjKbngqsNCivlva3ppqjmhacNCivmma/pm6jnp4sNCivmm77lo6vou5INCivmm77lsI/njrINCivmm77lrZTpiLoNCivmm77mloflvawNCivmm77ku6TnkZwNCivmm77njonlpoINCivmm77ku7Lnm58NCivmm77nvr3ltroNCivmm77lv5flgpENCivmm77ogrLoj4ENCivmm77lraPmrYYNCivmm77mib/lv5cNCivmm77oip3omK0NCivmm77kv4rmmboNCivmm77lhqDmqLoNCivmm77lu7rlkowNCivmm77lu7rpnJYNCivmm77mgJ3ntq0NCivmm77mmKDpvaENCivmm77np4vmlY8NCivmm77nvo7pvaENCivmm77pg4HnqY4NCivmm77nj67nkLMNCivmm77lgYnnv5QNCivmm77lnIvmm7gNCivmm77lqYnmg6ANCivmm77mt5HoirMNCivmm77mtrXlia8NCivmm77lh7HmgowNCivmm77mg6DnjrINCivmm77mmbrnpboNCivmm77oj6/pvaENCivmm77pm4XpnZINCivmm77mhI/mlocNCivmm77muqXlhYMNCivmm77nkZvnkLMNCivmm77oo5Xlh7ENCivmm77lmInoi7ENCivmm77ntq3nvqQNCivmm77mhbbnkYQNCivmm77mhrLlv6ANCivmm77nuYHpnZINCivmm77nk4rmhacNCivmm77lr7bno4ENCivmm77ppqjlhIANCivmm77mmpDmuIUNCivmm77nno0NCivmuLjlpKfnt68NCivmuLjkuJbmlowNCivmuLjlhYblkJsNCivmuLjmnY7pm4QNCivmuLjkvanli7MNCivmuLjmmIznv7ANCivmuLjpnZLpnI8NCivmuLjnp4vmgKENCivmuLjlrrbosaoNCivmuLjlqYnpnZINCivmuLjmt5Hmg6ANCivmuLjllqzmmboNCivmuLjmmbrotoUNCivmuLjpgLLlr4wNCivmuLjpm4XnraANCivmuLjmpq7oj68NCivmuLjpjKvlrpcNCivmuLjnjbvnvqQNCivmua/kuIDnj4oNCivmua/lv5flv6ANCivmua/lrrbosaoNCivmua/lr4zmo4sNCivmua/mhbbpjJoNCivnqIvkuYvlr6cNCivnqIvlsJrliYcNCivnqIvlu7rnv7ANCivnqIvlgYnmlL8NCivnqIvpm4Xmg6ANCivnqIvnk4rokLENCivnq6XlvJgNCivnq6Xnvo7mu78NCivnq6Xpn7vlpoINCivoj6/lnIvpi5INCivos4DljprlubMNCivovpzkv6Hnpo8NCivplpTku7vpgaANCivpoIjkuIroi5ENCivppq7msLjngIUNCivppq7plbfpvo0NCivppq7lvanlqJ8NCivppq7nkZ7pmb0NCivppq7ogIDmlocNCivpu4PlipvoqIANCivpu4Pkuo7oiqwNCivpu4Pkuo7nnJ8NCivpu4PljYPlh4wNCivpu4Plo6vljp8NCivpu4Plo6vlmIkNCivpu4PlpKflgKsNCivpu4PlrZDljb8NCivpu4PlsI/lqJ8NCivpu4PkuK3lgYkNCivpu4Pku4Hoia8NCivpu4PlhYPpmoYNCivpu4PlpKnlgaUNCivpu4Plv4PmgKENCivpu4Plv4Plp64NCivpu4PmlofmgKENCivpu4PmlofnjrINCivpu4PmlofpmoYNCivpu4PmlofnkosNCivpu4PmnIjnkb4NCivpu4PkuJbmnIsNCivpu4PkuJblmIkNCivpu4Pku6XllqwNCivpu4Plt6flqbcNCivpu4PlvJjmr4UNCivpu4PmraPkvakNCivpu4PmsLjku4ENCivpu4PmsLjmvKINCivpu4Pnjonpm6gNCivpu4Pnjonoj4ENCivpu4Pnq4voiqwNCivpu4PkuqbokLENCivpu4Pku7vlu7YNCivpu4PlhYbmlY8NCivpu4PlpJnmhacNCivpu4Plroflu7cNCivpu4Pml63lvJgNCivpu4Pogb/lkJsNCivpu4PkvK/lubQNCivpu4PlppnoiqwNCivpu4Plro/pgLINCivpu4Plv5fmiJANCivpu4Plv5flvLcNCivpu4Plv5flmIkNCivpu4Plv5fpvo0NCivpu4Pnp4DlrrkNCivpu4PogrLkv6ENCivpu4Pkvp3mlocNCivpu4PkvbPlqpsNCivpu4Pkvankv5ANCivpu4PlnaTlvrcNCivpu4Plrpfln7oNCivpu4PlubjlhIANCivpu4PmgKHnj4oNCivpu4PmgKHoj4ENCivpu4PmgKHntq0NCivpu4PmmI7lv5cNCivpu4PmmI7nkZ4NCivpu4PmnbHmtbcNCivpu4PmrKPmhIkNCivpu4Pnjp/nkb4NCivpu4Poirfpm7INCivpu4PplbfmvqQNCivpu4Pkv6HmjbcNCivpu4Pkv6HlvbANCivpu4Pkv6HmlowNCivpu4Pkv4rlk7INCivpu4Pkv4rlgpENCivpu4Pkv4roiJwNCivpu4Pkv4rlmIkNCivpu4Pkv4ros6INCivpu4Pkv57mlpANCivpu4PlhqDpm4UNCivpu4Pli4fmhacNCivpu4Plk4Hmr4UNCivpu4Plp7/ntr4NCivpu4PlrqPlh7ENCivpu4Plu7rmlocNCivpu4Plu7rnqIsNCivpu4Plu7rlvbANCivpu4Plu7rli7MNCivpu4PlvaXlpKoNCivpu4PlvaXnkZwNCivpu4PlvaXmlowNCivpu4PmgJ3os6INCivpu4PmlL/mj5oNCivpu4PmmK3mmboNCivpu4PmmLHkuK0NCivpu4Pmn4/lhYMNCivpu4Pmn4/nv5QNCivpu4Pmn4/nv7ANCivpu4PngrPmhrINCivpu4Pnm4jmg6ANCivpu4Pnp4vokI0NCivpu4Pnvo7njokNCivpu4Pnvo7nvpoNCivpu4Pnvo7ok4kNCivpu4Poi6XolocNCivpu4Poi7HlgpENCivpu4Posp7nqY4NCivpu4Ppg4Hnj4oNCivpu4Ppg4Hpm68NCivpu4Ppn4vnkKoNCivpu4PlgInlvaUNCivpu4PlrrbpmoYNCivpu4Pluq3piLoNCivpu4PmjK/oqqANCivpu4Pmm7jpiLoNCivpu4PmtanpiJ4NCivpu4Pnj67oiJINCivpu4PnpZbos6INCivpu4Pog73osZANCivpu4PlgYnls7ANCivpu4PlgYnpipgNCivpu4PlgaXmuqINCivpu4PlnIvoirMNCivpu4PlnIvou5INCivpu4PlnIvoo5UNCivpu4PlnIvpkJgNCivpu4PlqYnosp4NCivpu4PltIfoqJMNCivpu4PlvanpipgNCivpu4PllZ/kv64NCivpu4PmlY/kv64NCivpu4PmooXnjrINCivpu4PmuIXpup8NCivpu4Pmt5HnjrINCivpu4Pmt5HmooUNCivpu4Pmt5Hoj68NCivpu4Pmt5HpnZwNCivpu4PnpaXmlowNCivpu4PojonlqJ8NCivpu4PpgJTlt5YNCivpu4Plh7HlqIENCivpu4Pli53oo5UNCivpu4PloK/lgYkNCivpu4Plr4zoqbMNCivpu4Pmg6DoiqwNCivpu4Pmg6DnkLQNCivpu4Pmg6DpnJ4NCivpu4Pmma/oo5UNCivpu4PmmbrlurcNCivpu4PmnJ3nkLQNCivpu4PmuZjlt6cNCivpu4PnkKrlqbcNCivpu4Pnq6PljZcNCivpu4PoiJLlvaUNCivpu4Poj4roi7ENCivpu4PpgLgNCivpu4PplpTovrINCivpu4Ppm4XmtKUNCivpu4Ppm4Xmt5ENCivpu4Ppm4XnkKoNCivpu4Ppm4XokLENCivpu4Ppm4XpvaENCivpu4PpoIblkIkNCivpu4PmhI/otoUNCivpu4PmlazmlowNCivpu4PmpoblqbcNCivpu4PmupDnkosNCivpu4PnkZ7kvLYNCivpu4PnkZ7pmb0NCivpu4Pnm5/lh7ENCivpu4PnvqnlkJsNCivpu4PogZblk7INCivpu4PogZbptLsNCivpu4Poo5Xnm5sNCivpu4PoqanoirgNCivpu4Poqanpm68NCivpu4PpiLTnkKoNCivpu4PpnZbmg6ANCivpu4PlmInli4cNCivpu4PlmInokLENCivpu4Pmpq7poIYNCivpu4Pnnb/kvLgNCivpu4Pntq3mmboNCivpu4PpipjlgYkNCivpu4PlhIDlkJsNCivpu4Pmhbboj68NCivpu4PmhafojLkNCivpu4PmvoTlgYkNCivpu4PpnIflrocNCivpu4Pmm4nkvakNCivpu4Pnh5XlqKUNCivpu4PpjJrmmokNCivpu4PpnZzlrpwNCivpu4Pmh4nnkr8NCivpu4Ppp7/pgZQNCivpu4PolrDnkakNCivpu4PngJrlvrcNCivpu4Pnk4rlhIANCivpu4Pnk4roqrwNCivpu4Ppn7vlpoINCivpu4PpupflpoMNCivpu4Ppupfok4kNCivpu4Plr7blhIANCivpu4Pnubzlop4NCivpu4PogIDnkakNCivpu4PpkJjokaYNCivpu4PppqjmhacNCivpu4PpvaHokLENCivpu4PoibfnjokNCivpu4PmmLbmlowNCivpu4Pnv4rlrrgNCivpu4PnkKzlkJsNCivpu4Poj4DpiLQNCivpu4PnkYvlr6cNCivpu4PnrbHpm4ENCivpu4PpiLrlqbcNCivpu4PpiabplpQNCivpu4PorLXoqqoNCivloZfmmYLpm6gNCivmpYrkuInos6INCivmpYrlo6vlvJgNCivmpYrlo6vos6INCivmpYrlrZDmr4UNCivmpYrkuYvmhacNCivmpYrlhYHkuK0NCivmpYrmloflro8NCivmpYrmlofnkZ4NCivmpYrkuJblh7ENCivmpYrlj6/mrYYNCivmpYrmraPlvawNCivmpYrnjonpvI4NCivmpYrku7LmsJENCivmpYrlrojln44NCivmpYrkvLbmhacNCivmpYrlv5fog70NCivmpYrlv5fpm40NCivmpYrnp4Dnj6ANCivmpYrogrLlhJINCivmpYrkvbPoj4ENCivmpYrkvannj4oNCivmpYrlnaToi7ENCivmpYrlrZ/ok4kNCivmpYrlrpfloK8NCivmpYrlrpfnv7ANCivmpYrlrpznkosNCivmpYrlsrHlhJINCivmpYrmgKHoirMNCivmpYrmib/nhrkNCivmpYrmmIbpnJYNCivmpYrmmI7lr7ANCivmpYrmnbHmlY8NCivmpYrmrKPnj64NCivmpYrnp4npoIYNCivmpYrplbfmvZQNCivmpYrkv4rovJ0NCivmpYrmgJ3pm4sNCivmpYrmmK3ovJ0NCivmpYrntIDoirgNCivmpYrnvo7ol50NCivmpYrlk7LlrokNCivmpYrlrrbpipgNCivmpYrmjK/lrpcNCivmpYrmm7josaoNCivmpYrnj67nkKYNCivmpYromZTpm4UNCivmpYrlgaXlnIsNCivmpYrln7nmgakNCivmpYrmg5/nmb0NCivmpYrmt7Pnoa8NCivmpYrmt5HkvbMNCivmpYrmt5HmlY8NCivmpYrmt5HmhacNCivmpYrnm5vmlowNCivmpYrlh7Hku7INCivmpYrli53lrocNCivmpYrljZrmrL0NCivmpYrlqbfpiJ4NCivmpYrlvqrlqbcNCivmpYrmg6DlqbcNCivmpYrmlq/lh7ENCivmpYrmma/pm68NCivmpYrmmbrlgpENCivmpYrmmbrpiJ4NCivmpYrmo67nmbwNCivmpYrnmpPnkYsNCivmpYroiJLluIYNCivmpYroj4HoiqwNCivmpYrosrTlqpsNCivmpYrplpTnv5QNCivmpYrpm4XlgKsNCivmpYrpm4XltZANCivmpYrpm4Xnv5QNCivmpYrpm4Xpm7INCivmpYrpm7Lnv5QNCivmpYrnhaXnq6ANCivmpYroo5UNCivmpYrlmInnjrINCivmpYrmp5Dpp5INCivmpYrotpnpipgNCivmpYrmhbbpmoYNCivmpYrnkosNCivmpYrmm4noj4ENCivmpYrolZnoirMNCivmpYrpnZzlpoINCivmpYrmiLTlt54NCivmpYrnpI7pgaANCivmpYrosZDpipgNCivmpYrnk4roj68NCivmpYrmm6bnkLMNCivmpYrnkIflpoINCivmpYrnkKzlqbcNCivmpYrpjqfkvIoNCivmuqvoh7Pku7sNCivmuqvmib/nv7ANCivmuqvoi6XlqbcNCivmuqvln7npnZINCivmuqvpm4XmuIUNCivmuqvmm4noj68NCivokKzkvbPmmJUNCivokKzmm4nmmI4NCivokYnlj4jlmIkNCivokYnlpKfokaYNCivokYnlpKnlsIcNCivokYnku6PmrIoNCivokYnkuqbnm5sNCivokYnlpoLpm68NCivokYnlro/lgpENCivokYnnp4DmooUNCivokYnkvbPmrKMNCivokYnkvannnJ8NCivokYnlrpfmmboNCivokYnmgKHlkJsNCivokYnmmIzlgKsNCivokYnmmI7pkasNCivokYnnjp/lkJsNCivokYnplbfpnZINCivokYnkv4rlro8NCivokYnkv57mnYkNCivokYnlu7rlkJsNCivokYnmgJ3lhIANCivokYnmmLHlv5cNCivokYnnp4vmnIgNCivokYnpg4Hoj4ENCivokYnlrrblrocNCivokYnls7vos5MNCivokYnmm7jnkYsNCivokYnogL/pvYoNCivokYnlvLXlu7oNCivokYnmt5HpiLQNCivokYnmg6Dnpo4NCivokYnoqaDmmbQNCivokYnpm4Xpm68NCivokYnnvqnmnb4NCivokYnpipjmmIwNCivokYnmvZTmgakNCivokYnolZnoirMNCivokYnpp7/pgLgNCivokYnpqLDpgaANCivokYnnkKTmgKENCivokZvlgKnlpoINCivokaPlt6fnjrINCivokaPmgKHlkJsNCivokaPlvaXlro8NCivokaPmjK/pm4QNCivokaPmhafnvo4NCivoo5jlhYPmhLcNCivoqbnlrZDmsJENCivoqbnkuJblgpENCivoqbnlro/lvawNCivoqbnkvbPmjK8NCivoqbnlrZ/mmYMNCivoqbnlv6Dmpq4NCivoqbnpnZLoibcNCivoqbnnvo7nj40NCivoqbnmtZrmmIcNCivoqbnojJfoirgNCivoqbnmt5HokI0NCivoqbnli53mrL0NCivoqbnmma/loK8NCivoqbnoqLzlr4wNCivoqbnpm4XplpQNCivoqbnlmInnkr8NCivoqbnnqY7okI0NCivoqbnnjpPnkYsNCivos4jmsrvlnIsNCivphJLkuIDku7INCivphJLmnY7mmIwNCivphJLph5HlvrcNCivphJLmlrDlhagNCivpm43mlablhYMNCivpm7fpm4Xoj4ENCivlu5bkuo7mlocNCivlu5blpKfmqJ8NCivlu5blhYPliKkNCivlu5bmlofoqZUNCivlu5bmnIjop4ANCivlu5bmraPlgYkNCivlu5bkuJ7mmZ4NCivlu5blkKvmvZQNCivlu5blv5flgYkNCivlu5bogrLoia8NCivlu5bkvanlpoINCivlu5bmgKHnjrINCivlu5bmmI7lhIANCivlu5boip3loIUNCivlu5bkv4rmrL0NCivlu5blp7/mr5MNCivlu5blvaXlh7ENCivlu5bmmLHmqLkNCivlu5bnvo7njrINCivlu5boi7HnlLcNCivlu5bov7DojIINCivlu5bljb/mg6ANCivlu5blrrbnkakNCivlu5bmganmhYgNCivlu5bmm7jnj64NCivlu5bnj67njqsNCivlu5bntKDljb8NCivlu5blgYnmiJANCivlu5blgYnptLsNCivlu5blnIvli5sNCivlu5bln7nnkZwNCivlu5blr4TokI0NCivlu5bmg4fmsrsNCivlu5bmopPojJwNCivlu5bmt5Hmg6ANCivlu5bosqvnj64NCivlu5bmg6DlqJ8NCivlu5bpgLLlubMNCivlu5bmpbfmlocNCivlu5bll74NCivlu5bpipjku4ENCivlu5bnkannkocNCivlu5bpjKbnkZwNCivlu5bpupLplpQNCivlu5bmlozlgpENCivnhornq4vmlrANCivnhorltIfnt68NCivnrqHlubzku7INCivoh7rmlofnhacNCivoo7TlgYnnqIsNCivopJrlrrblvrcNCivotpnku4HkvZENCivotpnmloflv6ANCivotpnlv4XmmIwNCivotpnlkJvmnbANCivotpnkvanoiqwNCivotpnmmI7ovJ0NCivotpnlk4HlvaUNCivotpnngqvli5sNCivotpnlrrboia8NCivotpnmoYLpnZINCivotpnlgYnlu7cNCivotpnln7npnJYNCivotpnnmo7lkJsNCivotpnpiJ7lv5cNCivotpnlu6PlhYMNCivotpnpm5npp78NCivphJ7osarovJ0NCivlionkuYPokLENCivlionlipvosaoNCivlionljYPnkZwNCivlionlpKfmpq4NCivlionlrZDpoI4NCivlionku4HmraMNCivlionlv4PlhIANCivlionmlofli50NCivlionml6XpoIYNCivlionkuJbmhbYNCivlionmraPmsrMNCivlionnjonmlocNCivlionnjonnkIcNCivlionku7LmtrUNCivlionlhajlvawNCivlionlpoLolrANCivlionml63oiqwNCivlionlkJvnpboNCivlionlu7fmpbcNCivlionlv5fmupANCivlionnp4Dpg4ENCivlionogrLlrpcNCivlionogrLnqY4NCivlionkup7oirgNCivlionkvbPoirMNCivlionkvbPpgZQNCivlionkvanpnZINCivlionlnaTnqY4NCivlionlrpfmgKENCivlionlrpzmmIYNCivlionlsqHpmbUNCivlionmgKHkvLYNCivlionmgKHlkowNCivlionmgKHpnZwNCivlionmmIzoqqANCivlionmmI7lk7INCivlionmnpznj40NCivlionmrKPojLkNCivlionnjqvlr6cNCivlionoirPomK0NCivlionph5Hps7MNCivlionkv6Hoia8NCivlionkv4rlu7cNCivlionkv4rlt5YNCivlionlhqDoia8NCivlionlk4HlrpwNCivlionlp7/lkJ8NCivlionlu7rlro8NCivlionlu7roia8NCivlionlu7rnlLoNCivlionlvaXljZoNCivlionmgarkuroNCivlionmmKDnp4ANCivlionmn4/pup8NCivlionnm4jlpoINCivlionnp4vmiJANCivlionnvo7kvpYNCivlionnvr/msZ0NCivlionou43mr4UNCivlionkv67mmI4NCivlionlk7LnkYsNCivlionlrrbmmIcNCivlionlrrbps7MNCivlionls7vkvLYNCivlionmjK/kuK0NCivlionmm7jlro8NCivlionmtZrpipgNCivlionnm4rnpo4NCivlionntJTmnY8NCivlionlgYnoqqANCivlionlnIvpvo0NCivlionlurfmpZ0NCivlionmlY/nkKoNCivlionmt5HojokNCivlionnpaXmsJENCivlionljZrmlocNCivlionmj5rpipgNCivlionmnJ3ok64NCivlionoiJLmhYgNCivlionplpTntZANCivlionpm4XokI0NCivlionli6TntpMNCivlionmupDlgKsNCivlionntpPntrgNCivlionlmInogrINCivlionlmInmqLoNCivlionnhpnmhacNCivlionogofptawNCivlionlvrfmraMNCivlionmhafnjrINCivlionnkanlqJ8NCivlionmm4noiqwNCivlionmqLnolZkNCivlionnqY7okqgNCivlionpjKbloIINCivlionpvo3lsbENCivlionptLvpnJYNCivlionngJrpmb0NCivlionlr7blqbcNCivlionmh7/mhacNCivlionlp7XlmIkNCivlionnkYvnjrINCivljrLmlozkuK0NCivmrZDlo6vmupANCivmrZDlv5fnm4gNCivmrZDmgKHnp4ANCivmrZDlu7rmsJENCivmrZDlqInlpqYNCivmrZDpgLjpnZINCivmrZDpmb3mg6DlpoINCivmrZDnqY7lkJsNCivmvZjlhYHku4ENCivmvZjnjonmg6ANCivmvZjlro/lrpcNCivmvZjkvanlkJsNCivmvZjmgKHlkJsNCivmvZjnjp/mqLoNCivmvZjlhqDlro8NCivmvZjlu7rmiJANCivmvZjmlL/nt68NCivmvZjnvo7njrINCivmvZjog73lk7INCivmvZjmg6DlqJ8NCivmvZjnkZ7pppkNCivmvZjlhIDmgawNCivmvZjptLvpipgNCivmvZjpiLrmn5QNCivolKPkuK3ooY0NCivolKPmsobnpaUNCivolKPlrpzpnZwNCivolKPplbfml7sNCivolKPmt5HmhacNCivolKPmv7Hlt54NCivolKHlo6vml7oNCivolKHku4HlgYkNCivolKHlpKnnpboNCivolKHmlofljZoNCivolKHmlofptLsNCivolKHkuJbptLsNCivolKHmraPlrpcNCivolKHnjonnp4sNCivolKHkuqbpm68NCivolKHlkI3mm7gNCivolKHml63mm5wNCivolKHkvK/ptLsNCivolKHlro/ln7kNCivolKHlv5fmmI4NCivolKHlv5fptLsNCivolKHmsbbptLsNCivolKHogrLmraMNCivolKHogrLli7MNCivolKHkvp3lrrkNCivolKHkvbPlro8NCivolKHkvbPoiqwNCivolKHkvbPlrrkNCivolKHkvbPok4kNCivolKHkvbPpnJYNCivolKHkvanlkJsNCivolKHkvannj4oNCivolKHkvanlqKUNCivolKHkvannqY4NCivolKHlhbbnj64NCivolKHlnaTpm4QNCivolKHlpYfpnJYNCivolKHlrZ/oirMNCivolKHlrZ/nnJ8NCivolKHlrZ/oq60NCivolKHlrpflv5cNCivolKHlrpfpgZQNCivolKHlrpfnv7ANCivolKHlrpzlu7cNCivolKHlrpzlgKkNCivolKHlrpzpnJYNCivolKHlsJrlsrMNCivolKHlsrPmm7gNCivolKHlubjmt7MNCivolKHlv6DnqY4NCivolKHmib/nkosNCivolKHmmJPpmZ4NCivolKHmmIzlhJINCivolKHmmI7msY4NCivolKHmmI7oirMNCivolKHmmI7ls7ANCivolKHmmI7okrINCivolKHmmI7pvo0NCivolKHmmIfnqY4NCivolKHmnbDlv5cNCivolKHmrKPmgKENCivolKHmraboq7oNCivolKHnp4nmmIYNCivolKHoirPmtLUNCivolKHph5Hpvo0NCivolKHkv6Hoia8NCivolKHlk4HlhIANCivolKHmgJ3mjbcNCivolKHmlL/lk7INCivolKHmlL/pvo0NCivolKHnjrLmtKUNCivolKHnvo7oip0NCivolKHpg4HlkJsNCivolKHlqJ/lqJ8NCivolKHmgoXnjp8NCivolKHnj67mgKENCivolKHlgYnmnbANCivolKHln7nora8NCivolKHmt7vmlocNCivolKHmt5HnjrINCivolKHmt5HolocNCivolKHli53pm4QNCivolKHlr4zosrQNCivolKHmg6Dnh5UNCivolKHmmbrmmpANCivolKHoiJLlrocNCivolKHpgLjnj4oNCivolKHpm4XoiqwNCivolKHpm4Xoj4ENCivolKHlgrPlvrcNCivolKHnkZ7mlocNCivolKHoo5XlgaUNCivolKHlmInmgYYNCivolKHmpq7mmIwNCivolKHnoqflrrkNCivolKHoo7TkvLYNCivolKHpipjos6INCivolKHmhafmsJENCivolKHos6LnmocNCivolKHmm4nnhLYNCivolKHnv7DnhooNCivolKHpnZzlrpwNCivolKHptLvmsJENCivolKHosZDmlocNCivolKHptZHlvYwNCivolKHpupfmg6ANCivolKHppqjlhIANCivolKHml7vmhrINCivolKHnkYvnq5ENCivphK3kuIDlh6ENCivphK3lipvku4ENCivphK3lrZDoposNCivphK3ku4Hlr4wNCivphK3lv4PlpoINCivphK3mloflr4wNCivphK3kuJbmmIwNCivphK3lt6fpnZINCivphK3njonkvLYNCivphK3nq4vkuqsNCivphK3ku7Llro8NCivphK3lhYnmt7MNCivphK3lkI/lrZwNCivphK3lpoLmrKMNCivphK3lrofmt6gNCivphK3miJDmo6ANCivphK3nmb7lqbcNCivphK3kvK/ljZcNCivphK3lv5flip8NCivphK3np4DlqJ8NCivphK3osp3lpoINCivphK3kvbPlhIANCivphK3lrZ/njrINCivphK3mgKHlkJsNCivphK3mmI7lv6ANCivphK3mrKPmpq4NCivphK3kv4rlro8NCivphK3lvaXpgZQNCivphK3nvo7njokNCivphK3ov6rlhYENCivphK3mjK/lrpwNCivphK3npZDpmKENCivphK3lgYnnj4oNCivphK3ln7nogbANCivphK3mooXlkJsNCivphK3mt5HnsbMNCivphK3mt5Hnh5UNCivphK3ojonpm68NCivphK3lh7HmlocNCivphK3li53ml60NCivphK3llqzpipgNCivphK3mg6DmlocNCivphK3mg6DpnJwNCivphK3mma/mlocNCivphK3mmbrlhYMNCivphK3mnJ3nh58NCivphK3nmpPkupENCivphK3nv5Tpvo0NCivphK3oqZTorJkNCivphK3pm4Xlj4sNCivphK3pm4XoiqwNCivphK3pm4XnlIQNCivphK3mhI/kuK0NCivphK3nkZznkLMNCivphK3oo5XlubQNCivphK3lmInmj5oNCivphK3ogoflv4MNCivphK3mhbblk7INCivphK3olJron6wNCivphK3mm4nolocNCivphK3pnZzoirMNCivphK3ptLvmupANCivphK3njbvmlocNCivphK3ln7UNCivphK3pnYsNCivphKfmsLjlv6ANCivphKfml63mlaYNCivphKfmmI7oirMNCivphKfmjK/oi7ENCivphKfljZrku4ENCivphKfnv5Tku4ENCivphKfnpo/pmoYNCivphKfliqblkYgNCivpu47kuJblu4kNCivpu47kv5DlnYcNCivpu47pipjku4ENCivnm6fku4HmnbANCivnm6flvJjmtbcNCivnm6flkInli4cNCivnm6fogrLogZYNCivnm6flrprlnYcNCivnm6fmgKHmtrUNCivnm6fpm6jmtrUNCivnm6fkv4rlhJINCivnm6flqIHpnJYNCivnm6fmgJ3mupANCivnm6fnvo7lpoINCivnm6flrrbpiLoNCivnm6fmt5HpupcNCivnm6fmhLfojokNCivnm6fmhaflrpwNCivnm6fpvo3nlJ8NCivnm6fnrbHnkakNCivola3lsLnosp4NCivola3mlofnrYYNCivola3ku6Xkuq4NCivola3njonosp4NCivola3lhYbnkLMNCivola3lpoLnj4oNCivola3mnInlro8NCivola3lro/oo5UNCivola3ogrLpmoYNCivola3lraPolocNCivola3mmIblu7cNCivola3pnZLokI0NCivola3nvo7lqJ8NCivola3mjK/lrokNCivola3lnIvmraMNCivola3muIXnh5UNCivola3pm6rlkJ8NCivola3ljZrku7ANCivola3mg6DoirMNCivola3mmbrmooUNCivola3oqaDmlrkNCivola3pm4XmlocNCivola3mhJvnjrINCivola3oqannkocNCivola3ntq3lgKkNCivola3mhafmgKENCivola3pnZzlrpwNCivola3ptrTou5INCivos7TkuYPpoIwNCivos7TlpKnptLsNCivos7TkuJbntq0NCivos7TmraPph44NCivos7TnjonpnJwNCivos7Tml63lvaUNCivos7Tlu7fnprkNCivos7Tlv5fntrENCivos7TogrLlu7cNCivos7TkvbPmrKMNCivos7TlrZ/oj68NCivos7TlsYXmraMNCivos7TmgKHlkJsNCivos7TmmI7lro8NCivos7TmrKPlrpwNCivos7ToirPlu7YNCivos7Tkv6HoqqANCivos7Tkv4rpgZQNCivos7Tli4flv5cNCivos7TlqIHlnYcNCivos7Tlu7rkvZENCivos7TlvaXkvZANCivos7TmgJ3pnJYNCivos7TmmK3pvo0NCivos7Tmn4/pvo0NCivos7TntIXpnJ4NCivos7TojILlu7cNCivos7Tpg4Hpm68NCivos7TmtanosZANCivos7TlnIvmgakNCivos7Tmt5HmgKENCivos7Tojonpm68NCivos7TosrTnvqkNCivos7TpoIbmjK8NCivos7TokabluIYNCivos7Tmpq7nkokNCivos7TmhbbpipgNCivos7Tpi5INCivos7TpjKblhIQNCivos7TpupcNCivos7Tmn4rmo4sNCivpgbLlsJrmrIoNCivpjKLmrKPlrpwNCivpjKLlvrfkv4oNCivpnI3ojpjnkZwNCivpp7HoirPmoqcNCivpp7HlmInmhbYNCivpvo3mmJ/lhYYNCivmiLTkuZnoj4ENCivmiLTmlofpm4QNCivmiLTlhajliKkNCivmiLTlro/kuJ4NCivmiLTkvbPlubMNCivmiLTmmI7nj6ANCivmiLTmjK/pgaANCivmiLTojokNCivmiLTlgrPlrrYNCivmiLTlmInlro8NCivmiLTos6LnpaUNCivmiLTolo/nj4oNCivolpvkuLnmoYINCivolpvlhYnnqIsNCivolpvkvp3okqgNCivolpvlpZXpvo0NCivolpvlgYnkvK8NCivolpvmma/mlocNCivolpvnkZ7nj40NCivolpvlhJLpnJkNCivorJ3kuo7mq7sNCivorJ3lv4Ppm4UNCivorJ3mlofnkZwNCivorJ3lvJjkuq4NCivorJ3njonnj6ANCivorJ3lpoLptLsNCivorJ3kvZDlrpwNCivorJ3lro/lv6ANCivorJ3lv5fmmI4NCivorJ3mibbpjKYNCivorJ3ogrLlqJ8NCivorJ3kvp3lgKsNCivorJ3kvbPlgKkNCivorJ3kvbPnqY4NCivorJ3kvanoirMNCivorJ3kvannnJ8NCivorJ3lkajnhr4NCivorJ3lrZ/oirgNCivorJ3lrZ/oiqkNCivorJ3lrpfos6INCivorJ3lrpzoirMNCivorJ3lrpzoh7sNCivorJ3lsJrlhJINCivorJ3mgKHlqbcNCivorJ3mmJPpnJYNCivorJ3mmI7lro8NCivorJ3mmI7lgKsNCivorJ3mmI7mhrINCivorJ3mmIflk7INCivorJ3mnb7mhrINCivorJ3mrKPph5cNCivorJ3np4noq7oNCivorJ3plbfljp8NCivorJ3kv4rlro8NCivorJ3lvaXlkI8NCivorJ3mn4/oiJ8NCivorJ3nvo7njrINCivorJ3lrrboj7ENCivorJ3ntKDoj7ENCivorJ3lnIvlvawNCivorJ3mopPpup8NCivorJ3mt5HlqJ8NCivorJ3lh7HlgYkNCivorJ3ltZDlsY8NCivorJ3mma/ku4ENCivorJ3nmpPmmboNCivorJ3pm4Xpm6oNCivorJ3poIbpmoYNCivorJ3okKzpvo0NCivorJ3lmInpipgNCivorJ3nv6DnkrANCivorJ3ps7PnjrINCivorJ3mhafnk4oNCivorJ3nh5XnjrINCivorJ3pnZzlrpwNCivorJ3ptLvpp78NCivorJ3nk4rmlocNCivorJ3poa/pipgNCivorJ3nhZLpoLsNCivpjb7lhYPmjK8NCivpjb7mnIjlnJMNCivpjb7lhYbmsJENCivpjb7lrZ3lhbYNCivpjb7np4DoirMNCivpjb7kvbPnqY4NCivpjb7ljZPlhJINCivpjb7lrpzoiIgNCivpjb7mib/nkosNCivpjb7mmI7mhrINCivpjb7np4noq7oNCivpjb7mlL/msJENCivpjb7nvo7nkLMNCivpjb7llYbpp78NCivpjb7mt5HokI0NCivpjb7mmbrlgpENCivpjb7pm7LlhYkNCivpjb7npo7lhYMNCivpjb7mqILlkJ8NCivpjb7olrDlq7oNCivpnqDlsrHnkKYNCivpn5Pkvanliq0NCivpn5Pnm7jlrpwNCivpn5PlmInpp78NCivnsKHlo6vnm4oNCivnsKHmlofkuqgNCivnsKHlt6flqbcNCivnsKHnq4vkuroNCivnsKHlroflsY8NCivnsKHkvLblqJ8NCivnsKHlro/lgKsNCivnsKHlv5fpm4QNCivnsKHnp4DntJQNCivnsKHkvannkKoNCivnsKHmmI7pm4ENCivnsKHmmK3okLgNCivnsKHlrrbmlrANCivnsKHlnIvmlowNCivnsKHmt5HlqbcNCivnsKHmo67kuZkNCivnsKHpoIbnq4sNCivnsKHnkZ7mo7sNCivnsKHlmInlro8NCivnsKHnpo7kvZENCivnsKHpipjovrANCivnsKHmhrblpoINCivnsKHpqarmvZQNCivogbbmnbHljZcNCivol43lhYPnmpMNCivol43ku7LlgYkNCivol43mmKXnmbwNCivol43lnIvoj68NCivol43pm4XpvaENCivol43pu5vnkakNCivpl5XpgKLmr4UNCivpoY/lpKfnpo8NCivpoY/lvJjnpaUNCivpoY/lpoLnjokNCivpoY/lkYjml60NCivpoY/lro/lj6ENCivpoY/lv5fpup8NCivpoY/lrpflubMNCivpoY/lpZXku4ENCivpoY/lrrbnpboNCivpoY/lsInlh7ENCivpoY/oj6/miJANCivpoY/nkZ7mlocNCivpoY/lmInmiJANCivpoY/npo/poIYNCivpoY/mvqTlrocNCivpoY/piLroirgNCivprY/ku4HlqIENCivprY/ku7vlu7cNCivprY/nmb7nm5sNCivprY/lrZ3lr6wNCivprY/np4DmgawNCivprY/mmI7nq6ANCivprY/oi7Hpjq4NCivprY/ltIfmoZMNCivprY/mnJ3kv6ENCivprY/nraDmlocNCivprY/lq6blpp0NCivprY/mhZXluIYNCivprY/nkYToqrwNCivnvoXlrZDou5INCivnvoXlhYPnlKsNCivnvoXlv4PlsY8NCivnvoXmnIjlh7ANCivnvoXlt6fojokNCivnvoXnjonokI0NCivnvoXlhYbntq0NCivnvoXlro/kuIANCivnvoXkup7lr6cNCivnvoXmgKHmg6ANCivnvoXoirfpnZINCivnvoXnvo7ok64NCivnvoXmjK/lu7cNCivnvoXntKDoirENCivnvoXlnIvoj68NCivnvoXlvLcNCivnvoXmt4fmlocNCivnvoXlgpENCivnvoXmg6DomK0NCivnvoXoj6/mv4MNCivnvoXpm6/nkLQNCivnvoXogZbnkLMNCivnvoXpmpvlt50NCivnvoXmm4nlqIENCivnvoXppqjlrpwNCivorZrlhYnoj68NCivorZroq6YNCivpl5zmt5Hpm7INCivlmrTlj6/lkJsNCivlmrTlqYnnjrINCivlmrTntq3lvrcNCivol7rlv4PmgKENCivomIflrZDnv5QNCivomIfmloflqJ8NCivomIflt6flr6cNCivomIfnjonkv64NCivomIfnq7nlrokNCivomIflv5floIUNCivomIfogrLlvJgNCivomIfkvbPotrMNCivomIfmgKHlpoINCivomIfmgKHppqgNCivomIfmrabpvo0NCivomIfpnZLlppkNCivomIfkv4rpipgNCivomIflpZXlgpENCivomIflu7rlv5cNCivomIfmgYboh7MNCivomIfmn4/lt54NCivomIfnmofljp8NCivomIfnvo7njrINCivomIfosp7nh5UNCivomIflgInmsLgNCivomIflrrbkv6ENCivomIfluq3nkaQNCivomIfnm4rnpb8NCivomIfou5LmsJENCivomIfloILosaoNCivomIfmuIXlrokNCivomIfljZrnjoQNCivomIfmuZjmgKENCivomIfpm4XlkJsNCivomIfpoIboqqANCivomIfnjLfnv5QNCivomIfogZbmtrUNCivomIfpnZbltZANCivomIfogZ7orLkNCivomIfmhaflqJ8NCivomIfmm4noioMNCivomIfogbLmjK8NCivomIfml7vlkJsNCivomIfnkYvnkLMNCivpkJjlo6vmrL0NCivpkJjkvbPntbkNCivpkJjmlY/mhKsNCivpkJjnoqfomK0NCivppZLkuq4NCivpu6jkuIDngroNCivpoaflgKnlpoINCivpvpTkuo7nj4oNCivpvpTkvanlkJsNCivpvpTmm7jogZYNCivpvpTpnZboqZINCivkvZjlsJrptLsNCivmtoLkuJblkowNCivmtoLmlL/nlLcNCivmtoLlr4zmmJ8NCivmtoLmhafnj40NCivnspjogrLnkYsNCivphJTlv4PmgKENCivmrJLlraPlvLcNCivugIDpipjmupANCivjgqLjgq3jg6Ljg4gs44Ok44K544KqDQor44Ki44Kk44Kr44OvLOODjuODquOCqg0KK+OCouOCq+ODhOOCqyzjgqvjgrrjg5LjgrMNCivjgqLjg6/jgros44Ki44Kt44OpDQor44Ki44K144OOLOODqOOCt+ODpA0KK+OCouODqeOCrSzjg6jjgrfjgqvjgroNCivjgqTjg47jgqbjgqgs44OS44Ot44OS44OIDQor44Kr44OI44KmLOODnuOCteODiOOCtw0KK+ODiuOCq+ODoOODqSzjgrHjgqTjgr7jgqYNCivjg5Xjgrjjg6/jg6ks44K/44Kr44KzDQor44Ok44OK44Ku44OP44OpLOODn+ODieODqg0KK+OCq+ODr+ODgCzjg4rjgqrjgrMNCivjgqTjgrfjg44s44Kt44Oo44OK44KsDQor44K044OI44KmLOOCq+ODhOODjuODqg0KK+OCpOOCt+OCuOODnizjg6rjg6fjgqbjg5jjgqQNCivjgqLjg4jjgqYs44Oe44K144OO44OqDQor44Of44K344OeLOOCv+OCq+ODpuOCrQ0KK+ODn+ODqOOCtyzjg47jg5bjg57jgrUNCivjgr/jg4Hjg44s44K444Ol44OzDQor44Kq44Kq44OOLOOCq+OCuuOCqg0KK+OCreOCv+OCrOODryzjg6jjgrfjgr/jgqsNCivjg5Xjg6vjgrXjg68s44K144OI44K3DQor44Kq44Kq44OP44K3LOODkuODiOOCtw0KK+ODqOOCt+OCq+ODryzjg4jjgrfjg6bjgq0NCivjgqvjg6/jgqQs44OI44K344KqDQor44Kk44K344OILOOCs+OCpuOCrQ0KK+OCpOODnuOCpCzjgr/jgqvjg6bjgq0NCivjg6Tjg57jg4rjgqss44K144OE44OfDQor44Ob44Oq44Kr44OvLOOCq+ODhOODnw0KK+OCueOCuuOCrSzjgrfjg6Xjg7PjgrgNCivjgqLjg6/jgqgs44Ki44OE44K3DQor44OK44Ks44K7LOOCv+OCq+ODkuODrQ0KK+OCs+ODkOODpOOCtyzjgrjjg6Xjg7PjgqTjg4ENCivjg57jgqjjg4As44OS44Ot44K3DQor44Kr44OI44KmLOODnuOCteOCq+OCug0KK+OCueODn+OCvyzjgqvjgqrjg6sNCivjgrvjgq3jgrDjg4Es44K/44Kr44Om44KtDQor44K/44OK44KrLOODhuODq+ODkuOCtQ0KK+ODkuODqeODjizjgr/jgqvjgrcNCivjg4/jg57jgrDjg4Es44K344Oz44K4DQor44K144Kr44Ks44OfLOODjuODquOCq+OCug0KK+OCs+ODkOODpOOCtyzjg6TjgrnjgrcNCivjgr/jgq3jg6Ljg4gs44OO44Oq44KzDQor44Ob44K3LOODkuODreODleODnw0KK+OCquOCquOCv+OCqyzjg6bjgqbjgrMNCivjgrnjgq7jg6Djg6ks44K344Ky44KqDQor44Ki44Kq44KtLOODnuOCteODqw0KK+ODiuOCq+ODj+ODqSzjg6bjgqbjgr7jgqYNCivjgqvjg4jjgqYs44Kq44K144OgDQor44Oe44Ko44K144KrLOODiOODouODn+ODhA0KK+ODleOCuOOCv+ODiyzjgqvjgrrjg5LjgrMNCivjg5vjg4Pjgr8s44K344Ky44OS44OIDQor44Ki44Kt44Ok44OeLOODpuOCv+OCqw0KK+ODleOCuOOCvyzjg57jgrXjg6bjgq0NCivjg4jjg6jjg4rjgqws44Ok44K544OS44OtDQor44OP44OD44OI44OqLOODnuOCteOCqg0KK+ODjuODoOODqSzjgrfjgrLjgqoNCivjgqvjg6/jgrfjg54s44K/44Kr44KzDQor44Og44Ot44OkLOODhuODhOOCqg0KK+OCouOCt+OCq+ODryzjg6TjgrnjgrfjgrINCivjg4/jg6Tjgrcs44K/44Kr44KqDQor44Of44Ok44Ks44OvLOODleODn+ODjuODqg0KK+OCquOCsOODqSzjg6Tjgrnjg5Ljg60NCivjg6jjgrfjg4As44OI44K344OS44KzDQor44Kv44OJ44KmLOODkuODreOCtw0KK+OCr+ODnuOCrOOCpCzjgr/jgqvjg6bjgq0NCivjg4vjgrfjgqos44OS44OH44KtDQor44Kq44Kq44Kk44Ok44OeLOODjuODnOODqw0KK+OCv+OCseOCv+ODiyzjg5Xjg4jjgrcNCivjgqTjgrfjg4As44Kr44OE44OkDQor44Kq44Kk44Kr44OvLOODjuODluOCouOCrQ0KK+OCv+OCq+ODj+OCtyzjgrvjgqTjgrgNCivjg6Djg6njgr8s44OI44Kq44OrDQor44K544K644KtLOOCueOCueODoA0KK+ODj+ODpOOCtyzjgrfjg7Pjg4Hjg6fjgqYNCivjgq/jg63jgqvjg68s44Oe44K144Ki44KtDQor44Ok44K444OeLOODiOOCquODqw0KK+OCq+ODhOODqeOCpCzjg6/jgr/jg6sNCivjgqLjgqvjg6os44Oq44On44Km44K4DQor44Ki44K644OeLOODjuODluODpuOCrQ0KK+OCouODhOODnyzjgrfjg6XjgqbjgrgNCivjg57jg6vjgqos44Oo44K344Om44KtDQor44Kk44Kx44KqLOODn+ODjuODqw0KK+ODiOODquODpOODnizjg6rjg4TjgqoNCivjg4/jg57jg44s44Oo44Km44Kk44OBDQor44Ok44Oe44Oi44OILOOCs+OCpuOCv+ODreOCpg0KK+OCs+OCpuODgSzjg6bjgqbjgrnjgrENCivjg4rjgqvjgrjjg54s44OO44Oq44OS44KzDQor44Ki44OpLOODkuODreOCtw0KK+ODm+OCveOCq+ODryzjg57jgrXjg5Ljg60NCivjgqTjgrrjg58s44Kr44ON44Of44OEDQor44Ki44Ov44K4LOOCouODhOOCqg0KK+ODn+OCuuODkuOCrSzjg6jjgrfjgqoNCivjgqrjg4Djgrjjg54s44OK44Ob44OfDQor44OV44Or44Kr44OvLOOCt+OCsuOCqg0KK+ODn+OCuuOCsOODgSzjgrjjg63jgqYNCivjgqTjg4jjgqYs44OS44Ot44K3DQor44OV44Kv44KkLOOCteODiOOCtw0KK+ODleOCuOODj+ODqSzjgr/jgrHjg5Ljg4gNCivjg6Tjg44s44Om44Km44K4DQor44OP44Ok44K344Kw44OBLOODkuODreOCtw0KK+ODm+ODqizjg4jjgrfjg6bjgq0NCivjg6jjgrfjgqQs44K/44Kr44K3DQor44Ki44Oz44OJ44KmLOODkuODreOCtw0KK+ODj+OCvyzjgrPjgqbjgqTjg4ENCivjgrPjg5Djg6os44OS44OH44Om44KtDQor44Kq44OA44K344OeLOOCq+ODhOODreOCpg0KK+OCpuOCqOODpOODnizjg5/jg4Tjg4rjg6oNCivjg6Djgr8s44Oe44OK44OWDQor44K/44OK44KrLOOCt+OCsuOCqg0KK+OCs+ODs+ODjizjg6bjgqbjgrMNCivjg5Xjgrjjg6/jg6ks44OI44K344OP44OrDQor44Of44Ok44KtLOODpuOCv+OCqw0KK+ODj+ODiuODryzjg57jgrXjg5Ljg60NCivjg4bjgrjjg54s44Ki44Kt44OpDQor44Kv44OcLOOCouODhOOCtw0KK+OCquOCquODkCzjgrfjg7PjgrQNCivjgrPjg7Pjg44s44K/44Kv44OkDQor44Oe44OE44OQ44OpLOODkuODh+OCqg0KK+ODj+OCt+ODouODiCzjgrnjg5/jgrMNCivjg6/jgr/jg4rjg5ks44Kr44K644OS44OtDQor44Kz44K/44KtLOODhuODhOODpA0KK+ODleOCq+ODpCzjg6Ljg6Ljgq0NCivjg57jg4Tjgqbjg6ks44OG44OD44Oa44KkDQor44OV44OK44OALOOCq+OCuuODkuOCsw0KK+ODkuOCrOOCt+ODgCzjg4jjgrfjg6bjgq0NCivjgqTjg47jg57jgr8s44OS44Ot44K3DQor44K144OI44KmLOODkuODreODnw0KK+OCpOODiOOCpizjgr/jg4TjgrcNCivjg5/jgr/jg6Djg6ks44Oe44Om44OfDQor44K544Ks44OP44OpLOODn+ODhOODqw0KK+OCv+OCq+ODn+ODpCzjg5Ljg4fjg47jg5YNCivjg6Tjg57jgrDjg4Es44Kz44K544KxDQor44Kq44K/LOODhOODqOOCtw0KK+OCu+ODjuOCqizjg4/jgrjjg6ENCivjgrfjg5Djgrbjgq0s44Ki44OE44K3DQor44OK44Kr44Og44OpLOODpOOCueODkuODrQ0KK+ODleOCuOOCq+ODryzjg5Ljg63jg6bjgq0NCivjgqLjg6njgqQs44Oq44Ol44Km44K4DQor44Kq44Kq44Kv44OpLOODkuOCteODjuODqg0KK+ODnuODhOODkCzjgrfjgrLjg6sNCivjgr/jg6Hjg5Ljg60s44Oi44OI44KzDQor44Oe44Oz44OdLOOCq+ODhOODnw0KK+OCs+OCsOODgSzjgr/jgqvjgrcNCivjgr/jg4vjgrDjg4Es44OK44Kq44K544KxDQor44Ok44Oe44Oi44OILOOCv+OCq+ODkuODrQ0KK+ODkuODqeODouODiCzjg5Ljg4fjgqLjgq0NCivjgqLjg7Pjg6njgq8s44K/44Kr44K3DQor44K/44OK44KrLOODjuODquOCsw0KK+ODgeODo+OCrSzjgrfjgrLjg5Ljg4cNCivjgrXjgqvjgqQs44OB44OP44OrDQor44Kk44OK44Kq44KrLOODkuODreOCq+OCug0KK+OCpuOCt+OCuOODnizjgrfjg7PjgqTjg4ENCivjgrPjgrHjg4Qs44Ki44Kt44OS44K1DQor44Og44Op44K/LOODkuODiOOCtw0KK+OCreODoOODqSzjg6jjgrfjg5Ljg60NCivjgrfjg7Pjgr/jg4ss44Oq44Ol44Km44K4DQor44Kq44Kq44OP44K/LOODjuODluOCouOCrQ0KK+OCv+ODluODgSzjg6bjgr/jgqsNCivjgrnjg5/jg4As44Kt44Oo44K3DQor44Of44Km44OpLOODiuODiuOCsw0KK+ODquODpeOCpuODiCzjg5Ljg63jg58NCivjgqTjgrHjg4As44OS44Ot44OK44OqDQor44K/44Kr44Ok44OK44KuLOODkuODreODleODnw0KK+OCqOODs+ODiSzjgrHjg7PjgqTjg4ENCivjgqrjgrfjgqvjg68s44K344Oz44K4DQor44Kz44OQ44Ok44K3LOODkuODh+ODpuOCrQ0KK+ODpOODnuODgCzjgqTjg6/jgqoNCivjgqrjg4As44Oe44K144KqDQor44K/44Kt44K244OvLOOCouODhOOCtw0KK+ODouODqizjg6Tjgrnjg47jg6oNCivjgqvjg4rjgrbjg68s44K/44OE44Om44KtDQor44Kq44Kq44K/LOOCv+OCq+OCouOCrQ0KK+OCquOCquODhCzjg4bjg4Tjg63jgqYNCivjg5Xjgrjjg6Ljg4gs44Kr44K644OS44OtDQor44Oi44Oq44Kr44OvLOODnuOCteODjuODlg0KK+OCpOODiOOCpizjgrPjgqbjgrgNCivjgqvjg4jjgqYs44Kz44Km44Kk44OBDQor44Km44Ko44OOLOODqOOCt+ODkuOCsw0KK+OCquOCquOCq+ODryzjgrXjgqvjgqgNCivjg57jg6vjgqQs44K444Ol44Oz44KzDQor44Kk44Ov44KqLOOCt+ODpeOCpuOCuA0KK+OCpuODoeODgCzjgqvjgrrjg6QNCivjg6Hjgqvjgr8s44Oe44K144OrDQor44OE44K4LOODhOOCsOODkuOCsw0KK+OCv+OCtCzjg5Ljg63jgrcNCivjg6Tjg57jgrfjgr8s44Oe44K144OIDQor44K544Ku44Ok44OeLOODkuODreODpuOCrQ0KK+ODleOCv+ODkCzjg4jjgrfjgqLjgq0NCivjg5/jg6Tjg5Ljg6ks44Of44OB44Ki44KtDQor44OL44K344K244KtLOOCueOCueODoA0KK+OCv+ODiuOCqyzjgq/jg4vjgrMNCivjg6Djg6njg6Ljg4gs44OI44Oi44Ki44KtDQor44Oe44Ko44OALOODkuOCteOCq+OCug0KK+ODn+ODpOOCsSzjgqLjg4TjgrcNCivjg4jjgqbjgrjjg54s44K/44OE44OS44OtDQor44Kq44Kq44OkLOODnuOCteODqw0KK+OCpuOCqOODjizjg4jjg6Ljg5Ljg60NCivjgr/jgqvjgrXjgq0s44Ok44K544OS44K1DQor44Kz44Oz44OOLOODqOOCt+ODkuOCtQ0KK+OCv+OCseOCqizjg47jg6rjgqvjgroNCivjgqvjg4rjg6Tjg54s44Ok44K544OS44KzDQor44Kq44Kq44Kq44KrLOODiOOCt+ODreOCpg0KK+OCs+ODkOODpOOCtyzjgrfjg6XjgqYNCivjg4vjgrfjgrbjgqss44Of44KrDQor44Oe44K544Of44OALOODiOODouODkuOCsw0KK+ODhOODnOOCpCzjg6TjgrnjgqoNCivjgr/jgqzjg58s44Oe44K144OrDQor44Kq44Kr44OALOODhuODq+OCqg0KK+OCq+OCv+OCruODqizjgrXjg4jjgrcNCivjgqvjg6/jg4Ys44K/44Kr44K3DQor44Of44K644KkLOOCouODpOOCqg0KK+OCq+OCteOCquOCqyzjg4jjgrfjg5LjgrMNCivjg5Ljgqzjgrfjgr/jg4ss44OS44OH44OV44OfDQor44Km44K344KtLOOCq+OCuuOCpOODgQ0KK+ODkuODqeOCteODryzjg4rjgqzjgrMNCivjg4rjg6rjgr8s44K344Ol44Km44Kk44OBDQor44Kz44OA44OeLOOCq+OCuuODkuODrQ0KK+OCpOODjuODnuOCvyzjg5Ljg63jg58NCivjgq3jg6Djg6ks44K344On44Km44K0DQor44Kk44OI44KmLOODleODn+OCqg0KK+ODr+OCv+ODiuODmSzjg4bjg6vjgqLjgq0NCivjg4bjg6njgrXjg68s44Of44OE44KqDQor44OP44Ok44K3LOOCt+ODs+OCpOODgQ0KK+OCouOCteOCr+ODqSzjgrfjg7Pjg6QNCivjg6Tjg57jgq0s44Kz44Km44Kk44OBDQor44OK44Kr44Og44OpLOOCt+ODs+OCpOODgeODreOCpg0KK+OCqOODjuODouODiCzjg5Ljg63jg5/jg4ENCivjgqvjg57jgr8s44K/44Kr44OS44OtDQor44OP44K344Oi44OILOODiuOCquOCrQ0KK+OCouODqeOCpCzjg6jjgrfjg58NCivjgqvjg6rjg6Qs44K/44Kr44OS44KzDQor44Kz44Oz44OJLOODqOOCt+OCrQ0KK+ODnuOCueODgCzjg5Ljg63jgqoNCivjgqTjg4jjgqYs44Kx44Kk44K544KxDQor44Kq44KrLOODn+ODgeODj+ODqw0KK+OCquOCquODhOOCqyzjg5Ljg4fjgq0NCivjg57jg4Tjgqos44Kz44Km44K4DQor44Ki44K9LOODhuODq+OCq+OCug0KK+OCq+ODn+ODoOODqSzjg5Ljg63jg6bjgq0NCivjgr/jgqvjg5Djgr/jgrEs44K344Ky44OO44OqDQor44OV44Kv44OALOODkuODreODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjgrHjg7Pjg4gNCivjgqTjg6/jgq0s44Oe44Kz44OIDQor44K544OzLOODiOODqOODpuOCrQ0KK+OCouODs+ODieOCpizjg6jjgrfjgqoNCivjg4/jgrfjg6Ljg4gs44Kr44OKDQor44Ok44OP44K/LOODkuODh+OCqg0KK+ODleOCuOOCrSzjgrHjg7PjgrgNCivjg57jg4Tjgqos44K144OI44K3DQor44Ki44Kq44KtLOODqOOCpuOCpOODgeODreOCpg0KK+OCtOODiOOCpizjgrfjg7PjgrgNCivjg4vjgrfjgqvjg68s44OS44OI44K3DQor44K544Of44OILOODnuOCteODleODnw0KK+ODkuODqeODjizjgrPjgqbjgrgNCivjgqTjg4jjgqYs44Kx44KkDQor44Kz44Kk44K644OfLOODjuODquOCsw0KK+OCq+ODr+ODkOOCvyzjg47jgr7jg58NCivjg6Djg4jjgqYs44Kr44OE44OO44OqDQor44Ki44OA44OBLOODnuOCteOCtw0KK+OCreODqSzjg57jgrXjgrcNCivjgqLjg6Tjg44s44Kz44Km44KtDQor44K/44Or44KkLOODqOOCt+OCqg0KK+ODj+ODpOOCtyzjgq3jg6fjgqbjgrMNCivjgqTjgrHjg4As44K444Ol44OzDQor44Ob44Oq44Of44K+LOOCseOCpOOCueOCsQ0KK+ODleODq+ODiuOCrCzjg4/jg6vjg5LjgrMNCivjgqrjgrfjg54s44OK44K544KqDQor44OP44Ok44K3LOODkuODiOOCtw0KK+ODi+OCtyzjg6bjgq3jg5/jg4QNCivjgrPjg6Djg60s44Kr44OK44OhDQor44OS44Ot44K/44OLLOODqOOCt+OCqg0KK+OCueOCrCzjg5Ljg63jgrcNCivjg4Tjg6vjg58s44Ki44Kt44OS44K1DQor44OI44Of44Ok44OeLOOCq+OCuuODn+ODhA0KK+ODpOODnuOCtuOCrSzjg6jjgqbjgrMNCivjgqTjgrfjg4As44K344On44Km44Kk44OB44Ot44KmDQor44Km44OB44OI44OfLOOCouOCreODqQ0KK+OCquOCquOCteODryzjg6jjgrfjgqvjgroNCivjg6Tjg4rjgq4s44OS44OH44OS44OtDQor44Of44Ok44K344K/LOODkuODh+OCrQ0KK+OCv+OCq+ODj+OCtyzjgrPjgqbjgrgNCivjg4jjgqzjg68s44OS44Ot44Om44KtDQor44OK44Kr44Og44OpLOOCt+OCsuODqw0KK+OCpuOCqOODoOODqSzjgr/jgrHjgrcNCivjgqLjgrXjg44s44Om44Km44Kk44OBDQor44Kq44Kq44Ok44OeLOOCseODs+OCuA0KK+OCq+ODr+ODjizjgqjjgqTjgrMNCivjg5Djg5As44OS44OI44K3DQor44Kk44OI44KmLOOCt+ODs+OCpOODgQ0KK+OCpuOCqOODjizjg47jg5bjg6bjgq0NCivjgrfjg6njgqQs44Kx44Oz44K344OzDQor44Kk44Kr44OfLOODj+ODq+OCqg0KK+OCq+ODr+OCt+ODnizjg4jjg6Ljg6bjgq0NCivjg5/jg6TjgrEs44K/44Kr44OS44OtDQor44K144Kv44Op44KkLOOCseODs+OCuA0KK+OCv+OCseODjuOCt+OCvyzjgrfjg6Xjgqbjg5jjgqQNCivjg4vjgrfjgqrjgqss44K744Kk44Kk44OB44Ot44KmDQor44Kv44Ot44KtLOODnuOCteODqOOCtw0KK+OCv+ODiuOCqyzjg5/jg47jg6sNCivjgqTjgqTjgrjjg54s44K/44Kr44K3DQor44K144OI44KmLOODkuODreOCouOCrQ0KK+OCteOCr+ODqeOCpCzjgqvjgrrjgrfjgrINCivjg6Tjg4rjgq7jgrXjg68s44OO44OW44KqDQor44Km44OB44Ok44OeLOOCt+OCsuODqOOCtw0KK+OCquOCr+ODhCzjgqvjgrrjg4jjgrcNCivjg4vjgrfjg6Tjg54s44K744Kk44K4DQor44K/44Kx44OALOOCv+OCq+OCsw0KK+ODleODquODj+ODqSzjgqvjgrrjgqoNCivjg6Tjg5bjgq0s44Oe44K144OS44OtDQor44OK44KrLOOCq+OCuuODkuODrQ0KK+ODqOOCt+OCquOCqyzjgqvjgrrjg6QNCivjg6Ljg4Hjgrrjgq0s44K/44Kr44Om44KtDQor44K544Ku44Ok44OeLOODkuODh+ODkuODrQ0KK+OCpOODr+ODiuOCrCzjgrHjgqTjgqTjg4ENCivjg5/jg68s44OP44Or44Kr44K6DQor44Ob44Oq44Kr44OvLOOCq+ODhOOCrQ0KK+OCv+OCq+ODgCzjgrPjgqbjgrgNCivjgqTjgrfjg57jg6ss44K344Ky44Ok44K5DQor44Kq44Og44OpLOODkuODh+OCqg0KK+OCreOCv+ODoOODqSzjg6rjgqsNCivjgrnjgq7jgq0s44K/44Kr44KtDQor44OL44K344Og44OpLOODgeOCqOOCsw0KK+ODiuOCq+ODj+ODqSzjgrPjgqbjgqTjg4ENCivjg57jg4Tjg6Ljg4gs44Ki44Kt44OpDQor44OV44Kv44K344OeLOODnuOCteODqw0KK+OCq+OCuOOCquOCqyzjgqLjgq3jg5Ljg4gNCivjg4rjgqvjgrbjg68s44OO44Oc44OrDQor44Oe44K544K244KtLOOCv+OCq+OCtw0KK+ODiuOCqyzjg4jjgrfjgr/jgqsNCivjgqrjgrXjg4As44OP44K444OhDQor44Kr44Ov44K/LOODiuOCquODnw0KK+ODqOOCt+ODgCzjgrPjgqbjgrgNCivjg4rjgqss44OI44K344OS44OtDQor44Ko44Kk44OJ44OhLOODkuODh+OCq+OCug0KK+ODnuODhOODouODiCzjg6jjgrfjg57jgrUNCivjg4rjgqzjgrXjgqss44Oo44K344Ki44KtDQor44OV44K444K144OvLOOCq+ODhOODkuOCsw0KK+OCreODqOOCv+ODiyzjg4Tjg4jjg6ANCivjgqLjg6rjg6Ljg4gs44K744Kk44KzDQor44Ko44K+44KoLOOCseOCpOOCpOODgQ0KK+ODhOODgeODpCzjgqvjgrrjg6QNCivjg5Xjgrjjgqrjgqss44Ok44K544KzDQor44OE44Kr44Oi44OILOODleODn+OCqg0KK+OCv+OCq+ODj+OCtyzjg4jjg6jjg5LjgrMNCivjgrXjgqvjgqTjg4As44Ok44K544OS44OtDQor44K544K644KtLOOCs+OCpuOCuA0KK+OCquOCt+ODnizjg6Tjgrnjg4jjgrcNCivjg57jgq3jgqbjg4Es44K/44Kv44OkDQor44OP44Op44OALOODkuOCteOCq+OCug0KK+ODnuOCteOCrSzjgqLjgq3jg6kNCivjgqrjgqzjg68s44OO44OW44Ki44KtDQor44Km44K344Oe44OrLOOCseODsw0KK+OCpOOCt+ODgCzjg47jg5bjgr/jgqsNCivjg4/jg4rjg5bjgrUs44Ki44OE44KzDQor44Oo44K344Og44OpLOODqOOCt+ODkuOCtQ0KK+OCv+ODi+OCrOODryzjg57jg6rjgqoNCivjgrXjg4jjgqYs44K/44OE44K3DQor44Kr44OELOOCv+OCq+OCtw0KK+ODpOODnuOCsOODgSzjg5Ljg63jgq0NCivjg4/jgq/jg4Hjg6fjgqYs44Kk44K144KqDQor44Kk44OI44KmLOOCv+OCq+OCtw0KK+OCteOCq+OCpCzjgqvjgrrjg47jg6oNCivjgr/jg7PjgrQs44OS44OH44KqDQor44Kz44Kk44K644OfLOOCseODs+OCueOCsQ0KK+ODr+OCq+OCueOCrizjgr/jg4Djgr/jgqsNCivjgqbjgqjjg44s44K344Oz44Kk44OBDQor44Km44Ko44OALOODiOODouOCrQ0KK+OCueOCuuOCrSzjg5LjgrXjgqgNCivjgqrjgqrjg44s44Oo44K344OO44OqDQor44Ki44OZLOOCseODs+OCpOODgQ0KK+OCt+OCpOOCrSzjg5Ljg63jgrcNCivjgqLjg6njgq0s44Kt44Oo44OP44OrDQor44Ki44K644OeLOODkuODreODqOOCtw0KK+ODh+OCsOODgSzjg5Ljg63jg47jg6oNCivjgqjjg6rjgqvjg68s44Om44Km44KzDQor44OV44Kr44Ok44OeLOODjuODluODpuOCrQ0KK+ODleODiuOCrSzjgrXjgqvjgqgNCivjgqTjg4Hjg6Djg6ks44Oe44Kz44OIDQor44OP44K344Oi44OILOODjuODquOCouOCrQ0KK+ODkuOCrOOCtyzjgq3jg6jjgr/jgqsNCivjg5Ljg63jgrXjg68s44Ki44OE44K3DQor44Ob44Oq44Kw44OBLOODpuOCpuOCpOODgQ0KK+OCpOODkOODqeOCrSzjg6bjgqbjgqTjg4ENCivjgqTjg4rjg6Djg6ks44Kz44Km44Kk44OBDQor44Kk44K344Kr44OvLOODn+OCreOCqg0KK+OCpOODiOOCpCzjgr/jg4DjgrcNCivjgqvjg4rjgrbjgrcs44OO44Oq44KzDQor44Kr44K/44Ku44K3LOODnuOCteOCtw0KK+OCq+ODiOOCpizjg6TjgrnjgrcNCivjgqvjg6/jg4As44Kx44Oz44K544KxDQor44Kt44OO44K344K/LOODpOOCueODkuODrQ0KK+OCs+ODkOODpOOCtyzjgqvjg4Tjg47jg6oNCivjgrPjg57jg4Qs44Ok44K544K/44KrDQor44Kz44K/44OLLOODkuODh+OCrQ0KK+OCr+ODreOCuyzjgqrjgrXjg6ANCivjg57jgqjjg4As44Om44Km44K4DQor44Oe44Oz44K/44OLLOODqOOCpuOCpOODgQ0KK+ODnuODhOODouODiCzjg6TjgrnjgqLjgq0NCivjg5/jg6Djg6ks44K344Ky44OO44OWDQor44Of44OvLOODnuOCteODkuODrQ0KK+ODouODquOCvyzjgqLjgq3jg5LjgrMNCivjg6Djg43jg6Djg6ks44OI44K344Of44OEDQor44OK44Ks44K/LOOCseODs+OCuA0KK+ODiuOCq+OCs+OCuCzjgr/jg4Tjg6QNCivjg4rjgqvjg6Djg6ks44Oo44Km44Kk44OBDQor44OK44Kr44Ok44OeLOOCv+OCq+OCtw0KK+ODi+ODoOODqSzjgrnjgrnjg6ANCivjg6Tjgrjjg54s44Oo44K344KoDQor44OO44OeLOODiOODqOODnw0KK+ODjOOCreOCpCzjgqvjg4Tjg58NCivjgqrjgqzjgrXjg6/jg6ks44K344Ol44Km44K4DQor44Kq44Kq44K144OvLOODkuODh+OCv+OCqw0KK+ODnuODhOODiuOCrCzjg6jjgrfjgqLjgq0NCivjgqrjgqvjg6Ljg4gs44OS44Ot44Om44KtDQor44Kq44K144OALOODoOODhOODnw0KK+OCteOCpOODiOOCpizjgqLjgq3jg5Ljg60NCivjgrXjgq/jg6njgqQs44K344Ky44OO44OqDQor44K144OI44KmLOODqOOCt+ODjuODqg0KK+OCu+OCtuOCpCzjgqvjgrrjg6TjgrkNCivjgrfjg5/jgros44Ki44Kt44OI44K3DQor44K344On44Km44Of44OELOODqOOCt+ODkuODrQ0KK+OCueOCruOCteODryzjg47jg5bjg6bjgq0NCivjgrnjgrrjgq0s44Om44Km44K4DQor44K544K644KtLOODpuOCpuOCsw0KK+OCv+OCq+ODj+OCtyzjgr/jgqvjg6bjgq0NCivjgr/jgqvjgrXjgqss44OP44K444OhDQor44OV44K444KkLOOCouODhOOCsw0KK+OCv+ODnuOCrSzjgrXjg4jjgrMNCivjgr/jg4ss44Kr44K644OS44KzDQor44OI44Kt44K+44OOLOOCt+OCsuOCqg0KK+ODiOODquOCtuODryzjgqjjg58NCivjg4Tjg6vjgqvjg68s44Ko44Kk44K4DQor44Km44OALOODkuOCteODqOOCtw0KK+OCpuODoeODoOODqSzjgq3jg5/jg5Ljg60NCivjg6/jgr/jg6os44Ok44K544Oo44K3DQor44Ok44Oe44Oi44OILOODhuODhOODpA0KK+ODpOODnuODouODiCzjg57jgrXjg6jjgrcNCivjg6Tjg44s44Om44Kt44KqDQor44Oo44OALOOCpOOCteOCqg0KK+ODpOODnuOCsOODgSzjgqvjgrrjg6jjgrcNCivjg5ss44Ki44Kt44OpDQor44Oe44OE44Of44OkLOODpuOCpuOCpOODgQ0KK+OCteODr+ODgCzjg5Ljg63jgrcNCivjgrPjg4/jg6ks44Oe44K144OO44OqDQor44K144Kk44OI44KmLOODn+ODhOODqw0KK+ODpOODjizjg5/jg4TjgqoNCivjg5Xjgrjjg6Ljg6os44OO44Oq44KzDQor44Ok44Oe44Kw44OBLOODpOOCueODkuODrQ0KK+ODpOODnuODgCzjgr/jgqvjgrcNCivjg5Xjgrjjgr8s44OI44K344KtDQor44Kt44Og44OpLOOCv+OCseOCqg0KK+ODj+ODpOOCtyzjg57jgrXjg5Ljg60NCivjg57jgqjjgrbjg68s44Kk44K644OfDQor44K344OW44Kr44OvLOOCreODqOODkuOCtQ0KK+ODn+ODmyzjg57jgrXjg47jg6oNCivjgrnjgq7jg6Tjg54s44K344Oz44Kk44OBDQor44OV44Or44Kr44OvLOODqOOCt+ODleODnw0KK+ODjuODgeOCuyzjgqvjgrrjg5LjgrMNCivjg57jg4Tjg6Ljg4gs44OS44OH44Ki44KtDQor44Kq44Kv44OOLOODpuOCreOCqg0KK+ODpOODnuOCtuOCrSzjg6Tjgrnjg5Ljg60NCivjgqTjgrfjgrIs44Ki44Kt44KzDQor44Of44Km44OpLOODquODpeOCpuOCvuOCpg0KK+ODkOODkCzjgr/jgq/jg6QNCivjg6Ljg4Hjgrrjgq0s44Ko44Of44KzDQor44OI44Kv44OK44KsLOODleODn+ODkuODiA0KK+OCr+ODreOCq+ODryzjg5Ljg63jgrcNCivjgqTjgrHjg44s44Oh44Kw44OfDQor44Ok44Oe44Kr44KyLOODqOOCpuOCuA0KK+ODpOOCruODj+OCtyzjgrfjg6XjgqbjgqTjg4ENCivjgq3jg6jjg5/jg4Qs44Kx44Oz44K4DQor44Og44Op44Ok44OeLOOCqOOCpOOCuOODpQ0KK+OCquOCquODhOOCqyzjg5Ljg4fjg5LjgrMNCivjgqrjg6Tjg57jg4As44K/44Kr44K3DQor44Ki44Ky44K/LOOCuOODpeODs+OCpOODgQ0KK+OCouODouOCpizjgqLjgq3jgqoNCivjgqLjg6njgqvjg68s44OS44OH44K3DQor44OQ44Oz44OOLOODnuOCteOCreODqA0KK+OCqOOCteOCrSzjgrfjg7PjgqTjg4ENCivjg5Xjgqvjgrbjg68s44OI44Oi44OS44OIDQor44OV44OK44OQ44K3LOODnuOCteODpuOCrQ0KK+ODj+ODiuODgCzjgqvjg4Tjg47jg6oNCivjg4/jgrfjg6Ljg4gs44Ko44Of44KzDQor44OS44K444Kv44OtLOODiuOCquODpuOCrQ0KK+ODm+OCpuODpCzjgqvjgrrjg5LjgrMNCivjg5vjgr3jg4As44OB44Ko44OfDQor44Kk44Kx44K244OvLOODjuODluODpOOCuQ0KK+OCpOODjOODhOOCqyzjg4rjgqrjgq0NCivjgqvjgrjjgr/jg4ss44Kq44K144OgDQor44Kk44OI44KmLOODgeOCr+OCtQ0KK+OCpOODr+OCt+OCvyzjgrfjgrMNCivjgqvjg5/jg6Qs44Kv44OL44Ki44KtDQor44Kr44K544OkLOOCouOCreODqQ0KK+OCq+ODr+ODkOOCvyzjg4DjgqQNCivjgqvjg6/jgq/jg5ws44Kr44K644OI44K3DQor44Kt44OQ44K3LOODkuODh+ODkuOCsw0KK+OCreODquOCteODryzjgqTjg4Hjg63jgqYNCivjgrPjg4Djg54s44Kq44K144OgDQor44OI44Km44OJ44KmLOOCs+OCpuOCuA0KK+OCs+ODpOOCpOOCtyzjg5/jgqsNCivjgq/jg6njgr8s44Kz44K544KxDQor44Kv44Ov44OOLOODkuODreOCv+OCqw0KK+ODnuOCueODgCzjgrjjg6Xjg7MNCivjg57jg4Tjgrfjgr8s44K/44OA44K3DQor44Of44Ok44KxLOOCouODhOOCtw0KK+ODn+ODqOODgCzjgr/jgqvjg5LjgrUNCivjg5/jgrrjgr/jg4ss44OE44Oo44K3DQor44Oi44Oq44Ov44KtLOOCt+ODs+OCpOODgeODreOCpg0KK+ODoOODiOOCpizjgqvjg4Tjgq0NCivjg4rjgqzjg68s44K344Oz44Kk44OBDQor44OK44Kr44K344OeLOODkuOCteODqOOCtw0KK+ODi+OCt+ODgCzjg5Ljg63jg6jjgrcNCivjg4vjgrfjgqos44Oe44K144OIDQor44OO44Og44OpLOODhuODhOODpA0KK+OCquODgOOCquOCquODj+ODqSzjgrfjg7PjgrQNCivjgqrjgqrjg5Ljg6ks44Kk44OB44Ot44KmDQor44Kq44Kq44OM44OeLOODiuODq+OCtw0KK+OCquOCquODpOOCrizjg57jgrXjg5Ljg60NCivjgqrjgqvjg40s44K/44Kr44K3DQor44Kq44Kv44OOLOOCq+ODhOOCtw0KK+OCteOCpOODiOOCpizjg6jjgrfjg58NCivjgrXjgqvjgqbjgqgs44Ok44K544Om44KtDQor44K144OI44KmLOOCv+OCseOCtw0KK+OCu+OCreODouODiCzjg4jjgrfjg6bjgq0NCivjgrfjgqTjg4os44OV44Of44OP44OrDQor44K344Of44K6LOODkuODh+ODiOOCtw0KK+OCt+ODqeOCteOCrSzjg6jjgqbjgrMNCivjgrnjg4njgqYs44K144OI44KzDQor44K544K644KtLOODkuODreOCtw0KK+ODm+OCveOCq+ODryzjg6bjg6oNCivjg6Tjg57jgrbjgq0s44OK44Kq44KtDQor44K/44Kr44K5LOOCq+OCuuODqA0KK+OCv+OCseODgCzjg5Ljg63jg6bjgq0NCivjgr/jg57jgr/jg4ss44Kr44K644Ki44KtDQor44K/44OL44Oi44OILOOCt+ODs+OCpOODgQ0KK+ODiOODn+ODiuOCrCzjg5Ljg63jg5LjgrUNCivjg4Tjgqvjg4As44OS44OH44KtDQor44Km44Op44Kr44OvLOODpuOCpuOCuA0KK+ODr+OCv+ODqizjgrPjgqbjgrgNCivjg6Tjg57jg6Ljg4gs44Ki44OE44K3DQor44Ok44Oe44K344K/LOODiOOCt+ODkuODhw0KK+ODpOOCtuOCrSzjgr/jgrHjgrcNCivjg6jjgrPjgr8s44Om44Km44KzDQor44Oo44K344Kr44OvLOODn+ODhOODkuODrQ0KK+OCouOCteODjizjg5/jg4HjgrMNCivjgqrjgq/jg4As44OS44K144KzDQor44Kk44OK44OALOODnuOCteODhOODig0KK+OCt+ODouOCq+ODryzjg5Xjg5/jg5LjgrMNCivjg4Tjg5zjgr8s44OO44Oq44KqDQor44Kq44Kq44Kv44OcLOOCv+OCseOCtw0KK+OCteOCpOODiOOCpizjgrfjg6XjgqbjgqTjg4ENCivjg5Xjgrjjgr8s44OE44ON44KqDQor44Oe44Kt44Og44OpLOOCv+OCseOCqg0KK+ODi+ODjuODn+ODpCzjgqvjgrrjgqoNCivjgr/jg5Djgr8s44Oo44K344K/44KrDQor44Og44Op44Kr44OfLOODkuODreOCrQ0KK+OCpOODnuODi+OCtyzjgr/jgrHjgqoNCivjgr/jgq3jgqzjg68s44K344Ky44Oo44K3DQor44Kq44Oz44K644KrLOODkuODreOCtw0KK+ODiOODjuOCq+ODryzjgr/jgrHjgrcNCivjgqTjgrHjg4As44OI44Kt44KqDQor44K044OI44KmLOOCq+OCuuODpA0KK+OCveODgCzjgrHjg7PjgrgNCivjg6Ljg6rjgr8s44Oe44K144Om44KtDQor44K/44Oz44OOLOOCqOOCpOOCpOODgQ0KK+OCtOOCpuODgCzjgq3jg6fjgqbjgrMNCivjg6Tjg57jgrDjg4Es44OS44Ot44Kr44K6DQor44Kq44K144OK44KkLOOCouODhOOCtw0KK+ODkuOCrOOCtyzjgrfjg6fjgqbjgrMNCivjg6Tjg57jg6Ljg4gs44OS44OH44Ki44KtDQor44K144OI44KmLOOCv+OCq+OCqg0KK+ODn+OCvuOCsOODgSzjg4jjgrfjg6bjgq0NCivjgq3jgr/jgqzjg68s44OS44Ot44K3DQor44Kq44Kq44OL44K3LOOCveOCpuOCpOODgQ0KK+OCouOCpOODj+ODqSzjg5Ljg4fjgqoNCivjgqLjgq3jg5As44OE44OI44OgDQor44Ki44Oe44OOLOODiOOCquODqw0KK+OCouOCquODpOOCrizjgr/jgqvjgqoNCivjgqLjg6ks44Ki44Kt44KqDQor44Ki44K144OOLOODqOOCt+ODkuODrQ0KK+ODkOODsyzjgrPjgqbjgr/jg63jgqYNCivjgqjjg5Pjg4zjg54s44Ki44Kx44OfDQor44OV44K444Ko44OALOOCuOODpeODsw0KK+ODleOCuOOCpCzjgrfjgrLjg47jg6oNCivjgqrjgrDjg6ks44Ki44Ok44KzDQor44OV44Kr44KqLOODn+ODhOODkuODrQ0KK+ODleOCr+ODgCzjg5/jgqsNCivjg5Xjgq/jgqrjgqss44K344Oz44K0DQor44K044Km44OALOODqOODquOCsw0KK+ODj+OCruODr+ODqSzjgq3jgq/jgqoNCivjg4/jg4rjg5/jg4Qs44Oo44K344K/44KrDQor44OP44OpLOODn+ODpuOCrQ0KK+ODj+ODhOOCt+ODnizjgrHjg7MNCivjg4/jg4Pjg4jjg6os44Oo44K344OO44OqDQor44OP44Ok44K3LOOCq+ODhOODnw0KK+ODkuODiuOCvyzjgrjjg6Xjg7MNCivjg5Ljg6njgrXjg68s44Kr44K644OS44OtDQor44OS44Ot44K7LOODkuOCteODpuOCrQ0KK+OCueOCruODouODiCzjgrvjgqTjgqTjg4ENCivjg5vjg6os44Kr44K644KqDQor44Ob44K9LOOCq+OCuuODnw0KK+OCpOODh+OCpCzjg57jgrXjgqvjgroNCivjgqTjgqTjg6Djg6ks44Oo44K344OO44OWDQor44Kk44Kx44OALOOCr+ODi+ODkuODrQ0KK+OCpOODnuOCpCzjgr/jg4DjgrcNCivjgqTjg47jgqbjgqgs44OS44Ot44K/44KrDQor44Kk44K344Kw44OtLOODkuODreOCtw0KK+OCpOOCt+OCq+ODryzjg6jjgqbjgrMNCivjgqTjgrfjg6/jgr8s44OK44Kq44OS44K1DQor44Kk44OI44KmLOODhuODhOODpA0KK+OCpOODiOOCpizjgr/jgqvjgrcNCivjgqTjg6/jgq/jg5ws44K/44Kr44Om44KtDQor44Kk44Ov44K144KtLOOCv+ODhOODkuOCsw0KK+OCq+OCrOODnyzjgrfjgrLjg6jjgrcNCivjgqvjg57jg6Ljg4gs44K/44Ko44KzDQor44Kr44OfLOODnuOCs+ODiA0KK+OCq+ODiuOCtuODryzjgrXjg4DjgqTjg4ENCivjgqvjg43jgrMs44Ok44KoDQor44Kr44K344Ov44KuLOODkuODreOCtw0KK+OCq+OCv+OCquOCqyzjgqLjg4TjgrcNCivjgrTjg4jjgqYs44OS44Ot44Kr44K6DQor44Kr44Ov44OP44OpLOODkuODreOCouOCrQ0KK+OCq+ODr+OCreOCvyzjg6TjgrnjgrMNCivjgq3jg4As44Oo44K344OV44OfDQor44Kt44Og44OpLOODn+ODjuODqw0KK+OCquOCq+OCtuOCrSzjgr/jgrHjgqoNCivjgq3jgr/jg6Djg6ks44Ki44Kt44KqDQor44Kz44OQ44Ok44K3LOODn+ODqOOCsw0KK+ODkuODreOCuyzjg4/jg6vjgqoNCivjgrPjgrXjgqss44Oo44K344Om44KtDQor44Kz44Kv44Oe44KkLOODn+OCqOOCsw0KK+OCs+ODouOCquOCqyzjg5Xjg5/jgqoNCivjgrPjg7Pjg4njgqYs44K/44OE44OIDQor44Kv44OcLOOCv+OCq+ODpuOCrQ0KK+OCr+ODnuODouODiCzjgqLjgq3jg5LjgrMNCivjgq/jg6rjg6Tjg54s44Om44Kt44KoDQor44Kv44K344OALOODr+OCv+ODqw0KK+ODnuOCqOOCq+ODryzjg5Ljg4fjgr/jgqsNCivjg57jgrnjg4As44Of44Kt44KqDQor44Oe44OE44OALOOCt+OCsuOCqg0KK+OCq+ODjuOCpizjg5Ljg63jg6bjgq0NCivjg57jg4Tjg4rjg58s44OS44Ot44Om44KtDQor44Oe44OE44K244KtLOOCv+ODgOOCtw0KK+ODn+ODouODqizjg5Ljg63jgrcNCivjg5/jgqbjg6ks44Oo44Km44Kk44OBDQor44Of44Ok44OP44K3LOOCreODp+OCpuOCsw0KK+ODn+ODpOOCv+OCsSzjgrfjgrLjg58NCivjg5/jgrrjgrPjgrcs44OI44K344KqDQor44Oi44Oq44KtLOODpOOCueODkuODrQ0KK+ODouODqizjgrXjg4jjg6sNCivjg6DjgqvjgqQs44K/44OE44OfDQor44Og44Op44K/LOOCteODiOOCtw0KK+ODoOODhOOCt+OCqyzjgqjjgqTjgqTjg4ENCivjg4rjgqzjgrXjg68s44Kr44K644OIDQor44OK44Ks44KoLOOCv+OCq+ODpuOCrQ0KK+ODiuOCq+OCuOODnizjgqvjg4Tjg4jjg6INCivjg4rjgqvjg57jgr8s44OO44Oq44OS44OtDQor44OK44Kr44Og44OpLOODj+OCuOODoQ0KK+OCquOCquODi+OCtyzjg57jgrXjg47jg6oNCivjg4rjgqvjg44s44Oi44Ko44KzDQor44OK44Kr44K/LOOCt+OCsuOCsw0KK+ODiuOCq+ODpOODnizjgqvjg4Tjg5LjgrMNCivjg4rjg4Tjg6Tjg54s44Om44Km44KzDQor44Oi44OqLOODpuOCreOCsw0KK+ODi+ODryzjg57jgrXjgq0NCivjg47jg54s44K144OI44K3DQor44OO44Oq44Kr44ONLOODnuOCteODqw0KK+OCquODgOODjSzjg6jjgrfjgqvjgroNCivjgqrjgqrjg5Djg6Tjgrcs44Ok44K544Om44KtDQor44Kq44KtLOODqOOCt+ODpuOCrQ0KK+OCquODqeOCpCzjgrnjgrnjg6ANCivjgqrjgqrjg4jjg6Is44Ki44Kt44KqDQor44Kq44OS44OjLOOCr+ODi+ODkuOCsw0KK+OCquOCq+ODouODiCzjg6jjgrfjgqoNCivjgqbjgqjjg4As44OI44Oo44Kr44K6DQor44OL44K3LOOCouODhOOCrQ0KK+OCv+ODgCzjgr/jgqvjg6bjgq0NCivjg6Tjg57jgrfjgr8s44Kx44Oz44K4DQor44K144K144Oi44OqLOODpuOCv+OCqw0KK+ODj+OCu+OCrOODryzjg4jjg6Ljg6bjgq0NCivjgqTjg57jgqQs44Of44Om44KtDQor44Oo44Kz44Ok44OeLOOCseODs+OCuA0KK+OCueOCruODpOODnizjg6jjgrfjg57jgrUNCivjgqLjg6njgqQs44OI44Oi44KzDQor44Ki44Oe44Ks44OkLOODpuODoeODjg0KK+ODhOODqyzjg5/jg47jg6sNCivjg6TjgqTjgr8s44Oe44KtDQor44K744KtLOODnuODqg0KK+ODj+ODqSzjg6jjgrfjg47jg6oNCivjg5/jgqbjg6ks44K544K544OgDQor44K144K1LOODpuOCreOCsw0KK+OCv+OCq+OCteOCrSzjg57jgq3jgrMNCivjg4/jg6njg4As44Ko44Of44KzDQor44Kv44Op44K/LOODpOOCueODkuODrQ0KK+OCouOCsuODnuODhCzjg5Ljg63jg5/jg4ENCivjg5Xjgq/jg6Ljg4gs44Of44Kt44KqDQor44Kq44Kv44Og44OpLOODgOOCpA0KK+OCquOCveOCqOOCrOODryzjg6Tjgrnjg4rjg6oNCivjgrXjgqTjgr8s44Oe44K144OS44OtDQor44K144Kr44KkLOODkuODreODnw0KK+OCteOCq+ODqizjg47jg5bjg5Ljg60NCivjgrXjg44s44Om44K/44KrDQor44K144OI44KmLOODqOOCt+ODkuOCsw0KK+OCteODiOOCpizjgqLjgq3jgqoNCivjgrXjg4jjgqYs44K144OI44K3DQor44K744Kt44Kr44OvLOOCouOCreODqQ0KK+OCu+OCt+ODoizjgrPjgqbjgrgNCivjgrfjg5bjg6Qs44Oe44K144OO44OqDQor44K344Oe44Oi44OqLOODnuOCteODkuOCsw0KK+OCt+ODouODgCzjgrHjgqTjg5/jg7MNCivjgrfjg7Pjgr/jg4ss44Om44Km44K4DQor44K344Op44KkLOOCt+OCsuOCrQ0KK+OCt+ODpeOCpizjgrTjgqTjg4ENCivjgrnjg4As44OK44Kq44KtDQor44K544Ku44K/LOODpuOCpuOCpOODgeODrQ0KK+OCueOCtuOCrSzjg4bjg4Tjg6QNCivjgrnjgrrjgq0s44OI44K344OkDQor44K544K644KtLOODjuODquODpuOCrQ0KK+OCv+OCrOOCpCzjg6TjgrnjgrcNCivjgr/jgqvjgq4s44Kx44Oz44K/44Ot44KmDQor44K/44Kr44OP44K3LOODnuOCteOCsw0KK+OCv+OCq+OCpOOCtyzjg4jjg6LjgqLjgq0NCivjgr/jgqvjgqrjgqss44K/44Kr44KtDQor44K/44Kr44Ok44OeLOOCt+ODs+OCpOODgQ0KK+OCv+OCseODouODiCzjg47jgr7jg58NCivjgr/jg57jg4Es44OS44Ot44K3DQor44K/44OK44KrLOODkuODreODleODnw0KK+OCv+ODiyzjg5Ljg63jg5bjg58NCivjg4bjg6njgrXjgq0s44OS44Ot44Om44KtDQor44K144Kv44Op44KuLOODjuODquODkuOCtQ0KK+ODiOODqOOCteODiCzjg5Ljg63jgrcNCivjg4Tjgrjjg6Ljg4gs44Om44Kt44KqDQor44OE44Or44K/LOOCt+ODjuODlg0KK+OCpuODgeODpOODnizjgr/jgrHjgrcNCivjgq3jgq3jg6fjgqYs44Oo44K344K/44KrDQor44Km44Ko44OOLOODqOOCt+OCsw0KK+ODiuOCrOOCvyzjg47jg6rjgrMNCivjg6/jg4As44K344K644KqDQor44Kk44OI44KkLOODqOOCt+ODkuOCtQ0KK+ODr+OCv+ODiuODmSzjg5Ljg4fjg4jjgrcNCivjg6Tjg5bjgqbjg4Es44K344On44Km44OY44KkDQor44Ok44Oe44OALOOCouOCreOCqg0KK+ODpOODnuODouODiCzjgqLjgq3jg5Ljg60NCivjg6Tjg57jg6Ljg4gs44Oe44K144OI44K3DQor44Ok44Oe44K344K/LOODhOODiOODoA0KK+ODpOODnuOCt+OCvyzjgqLjgq3jg6kNCivjg6Tjg44s44OI44Oi44Om44KtDQor44Oo44Kz44K/LOODn+ODiuOCsw0KK+ODqOODjeODoOODqSzjgr/jg4DjgrcNCivjg6jjgrfjg6Djg6ks44OS44Ot44OfDQor44Oe44OE44OALOODqOOCt+ODhOOCsA0KK+ODm+OCveODpCzjgrfjg6fjgqbjgrgNCivjg5/jg6Tjgrfjgr8s44K344Ky44OI44OiDQor44K344KsLOODnuOCteODn+ODhA0KK+ODpOODnuODgCzjg6bjgqbjgqTjg4ENCivjg4/jg6Tjgrcs44K144Ob44OqDQor44Kk44Kx44OALOODhOODqOOCtw0KK+OCpuOCqOODjizjgqvjgrrjgr/jgqsNCivjgrXjgqTjg4jjgqYs44OG44Or44Oo44K3DQor44OK44Ks44Ok44K5LOOCs+OCpuOCuA0KK+ODj+OCruOCqizjg4jjg6Ljg5LjgrMNCivjg4/jg57jg4As44Oe44K144K4DQor44Og44Op44Kr44OfLOODjuODquODkuODrQ0KK+OCouODmSzjgrfjg6Xjg7PjgrgNCivjgqLjgq3jg6Tjg54s44OI44K344Om44KtDQor44Ki44Oz44OJ44KmLOODhuODs+OCu+OCpA0KK+OCouODqeOCrSzjgrfjgrLjg5/jg4QNCivjgqLjgr0s44Kv44OL44Kr44K6DQor44OQ44OQLOODpuOCpuOCueOCsQ0KK+OCqOODk+OCteODryzjg5Ljg63jgrcNCivjg5XjgrjjgqQs44Oo44K344OO44OqDQor44OV44K444KkLOOCv+ODhOODpA0KK+ODleOCuOOCvyzjg5Ljg63jgrcNCivjg5Xjgrjjg6/jg6ks44OS44Ot44OgDQor44OV44Kv44OALOOCuOODpeODsw0KK+ODleOCr+OCquOCqyzjgqTjgrXjgqoNCivjg5Xjg6vjg6Qs44OI44K344Om44KtDQor44Ks44OJLOODkuOCteOCtw0KK+ODj+OCrCzjgqLjg4TjgrcNCivjg4/jg57jgrfjg54s44Om44OfDQor44OP44K7LOODpuOCv+OCqw0KK+ODj+OCt+OCuuODoSzjg4rjgqrjgq0NCivjg4Tjg4As44OS44Ot44KzDQor44OP44Ok44K3LOODiOOCt+ODreOCpg0KK+ODkuODqeOCpCzjg6bjgqbjgqTjg4ENCivjg5Ljg6njgrXjgqss44OS44Ot44Om44KtDQor44OS44Ot44Ov44K/44OqLOOCv+OCq+ODkuODrQ0KK+OCueOCuuOCrSzjg5Ljg4fjgq0NCivjg5vjgr3jg58s44OS44Ot44Ki44KtDQor44Kk44OALOODgeODj+ODqw0KK+OCpOOCrOODqeOCtyzjg6bjgq3jg6QNCivjgqTjgqTjgrjjg54s44K/44Kx44K3DQor44Kk44Oe44Og44OpLOOCs+OCpuOCpOODgQ0KK+OCpOODrOOCpCzjg57jgrXjg6sNCivjgqTjgrfjgqQs44OI44Oi44Om44KtDQor44Kk44K944OOLOODn+ODhOODiOOCtw0KK+OCpOODiOOCpizjg6jjgrfjg57jgrUNCivjgqTjg6/jgrUs44OI44K344OfDQor44Kk44K644Of44K144OvLOOCu+OCpOOCuA0KK+OCq+OCpOODgCzjgrPjgqbjgrgNCivjgqvjg57jgr8s44OI44K344KoDQor44Kr44Oz44OZLOOCv+OCq+ODkuODrQ0KK+OCq+ODjeOCsyzjgqLjgq3jg6kNCivjg6jjg43jg6Ljg4Es44OK44Kq44K3DQor44Kr44K/44Kq44KrLOOCq+OCuuODkuOCsw0KK+OCq+ODiOOCpizjg6Tjgrnjg5Ljg60NCivjgqvjg4jjgqYs44Om44Km44K4DQor44K/44Oe44Ks44OvLOOCs+OCpuOCpOODgeODreOCpg0KK+ODiuODq+OCsSzjgr/jgqvjgrcNCivjgq3jg4ks44K/44Kr44OV44OfDQor44Kt44Kv44OpLOOCq+ODhOODnw0KK+OCreODoOODqSzjg57jgrXjgq0NCivjgq3jg47jgrfjgr8s44Ok44K544OS44OtDQor44Kt44K/44Ki44KtLOODkuODreODpuOCrQ0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg5Ljg60NCivjgrPjg5Djg6Tjgrcs44OI44K344KtDQor44Kz44Oz44OOLOODqOOCpg0KK+OCs+ODn+ODpOODnizjg6jjgrfjg5Ljg60NCivjgrPjg4vjgrcs44Ki44Kt44OO44OqDQor44Kz44Ok44OeLOODkuODreODnw0KK+OCr+ODieOCpizjgrjjg6Xjg7MNCivjgq/jg6rjg6Qs44Om44Km44Kk44OBDQor44Oo44K344OALOOCteODiOODqw0KK+ODnuOCreODjizjg4jjgrfjgqoNCivjg57jgrXjgq0s44OS44OH44OoDQor44Oe44OE44KkLOODpOOCueODkuODrQ0KK+ODnuODhOODouODiCzjgr/jgrHjgrcNCivjg57jg4Tjg6Tjg54s44K444Ol44OzDQor44Of44K/44Og44OpLOOCuOODpeODsw0KK+ODn+ODr+OCvyzjg4rjgqrjgq0NCivjg5/jg6Tjg6Ljg4gs44OS44OI44OfDQor44Oi44OB44K644KtLOOCt+ODpeOCpuOCpOODgQ0KK+ODouODqizjg57jgrXjg6bjgq0NCivjg57jg4Tjg4As44Kx44Oz44K4DQor44Oi44Oq44Ov44KtLOODjuODluODpuOCrQ0KK+ODoOODqeOCq+ODnyzjgr/jgrHjgqoNCivjg6Djg6njg6Tjg54s44K144OI44K3DQor44OK44Ks44K344OeLOODn+ODgeODjuODqg0KK+OCpuODgeOCvuODjizjgr/jgqvjgrcNCivjg4rjgqvjgrjjg54s44OS44Ot44Ki44KtDQor44OK44Kr44Og44OpLOODkuODreOCtw0KK+ODiuOCq+ODoOODqSzjg6jjgrfjg5LjgrMNCivjg4rjgqvjgrfjg54s44OO44Oq44KqDQor44OK44Op44OP44OpLOOCteODiOOCtw0KK+ODi+OCt+ODlizjgqLjg6TjgrMNCivjg4vjgrfjg6Ljg4gs44OK44Kq44KzDQor44OL44K344K244OvLOODgOOCpOOCueOCsQ0KK+ODjuOCuOODnizjg47jg6rjgqoNCivjg4zjg68s44K/44Kx44K3DQor44Kq44Ks44OvLOOCseODs+OCpOODgQ0KK+OCquOCquOCrOOCrSzjgqvjgrrjg5Ljg60NCivjgqrjgq0s44Oe44K144OS44KzDQor44Kq44Kq44Oi44OqLOODkuODreOCouOCrQ0KK+OCquOCquODjOODnizjg57jgrXjgqoNCivjgqrjgqrjgr/jgrEs44K144Ko44KzDQor44K144Kz44OALOOCt+ODpeOCpuOCpOODgQ0KK+OCquOCq+ODgCzjg4bjg4TjgrgNCivjgqrjgq3jgr8s44K144OI44KzDQor44Kq44Kq44OOLOOCv+OCq+OCtw0KK+OCquODquOCpCzjgrfjg6Xjg7PjgrgNCivjgqrjgrbjg68s44Ok44K544OS44OtDQor44K144Kk44OI44KmLOOCseOCpOOCuA0KK+OCteOCq+ODouODiCzjg6jjgrfjgqoNCivjgrXjgqvjgr8s44Oe44K144OS44OtDQor44K144OK44KuLOODqOOCt+OCrQ0KK+OCteOCteOCrSzjg4rjgqzjg57jgrUNCivjgrXjg4jjgqYs44Oe44Oi44OrDQor44K144OI44KmLOODkuODh+OCrQ0KK+OCu+OCreODjizjg47jg6rjg5Ljg60NCivjgrfjg57jg4As44Ki44OE44K3DQor44K344Of44K6LOOCv+OCq+OCouOCrQ0KK+OCt+ODouODgCzjg5Ljg63jg6bjgq0NCivjgrfjg47jgrbjgq0s44Ki44OE44K3DQor44K344On44Km44OALOOCseODs+OCuA0KK+OCueOCrOODjizjg5Ljg63jg6bjgq0NCivjgrnjgq7jgrXjgq0s44Oo44Km44KzDQor44K544Ku44Ok44OeLOOCv+OCseOCtw0KK+OCueOCuuOCrSzjg5Ljg4fjg6bjgq0NCivjgrnjgrrjgq0s44Oe44K144OO44OqDQor44K/44Kw44OBLOOCt+ODsw0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjg47jg6oNCivjgr/jgqvjg4/jgrcs44Kq44K144OgDQor44K/44Kr44OP44K3LOODkuODh+OCrQ0KK+OCv+OCq+ODpOODiuOCrizjgrfjgrLjg6sNCivjgr/jgrHjgqQs44OO44OW44KqDQor44K/44Kx44K344OeLOOCq+ODhOOCt+ODreOCpg0KK+OCv+ODoOODqSzjgrfjg6fjgqbjgqTjg4ENCivjgr/jg4rjgqss44Ok44K544K4DQor44K144OOLOODkuODreODleODnw0KK+ODhuODqeODnuOCqCzjg57jgq0NCivjg4jjgrDjg4Es44K/44Kx44K3DQor44OI44Of44KkLOODnuOCteODkuODrQ0KK+ODiOODg+ODiOODqizjgqLjgq3jg5LjgrMNCivjg4Tjgrgs44Oe44K144OS44KzDQor44OE44Kt44K244OvLOOCs+OCpuOCuA0KK+ODhOODq+OCvyzjg47jg6rjgrMNCivjgqbjg4Hjg4As44K344On44Km44KzDQor44Km44Ko44OALOODqOOCpuOCueOCsQ0KK+OCpuOCqOODjizjgrjjg6Xjg7PjgrgNCivjgqjjgqzjgrfjg6ks44K/44OA44K3DQor44Kt44K/44Ov44KtLOOCu+OCpOOCrQ0KK+ODr+OCv+ODiuODmSzjgr/jgqvjgrcNCivjg6/jgr/jg4rjg5ks44OS44Ot44Om44KtDQor44Ov44K/44Op44KkLOOCuOODreOCpg0KK+ODpOODnuODgCzjgqLjg4TjgrcNCivjg5Xjgrjjgr8s44Oe44K144OI44K3DQor44Ok44Oe44Oi44OILOODpOOCueOCtw0KK+ODpOODnuODjSzjg5/jg4Hjg6sNCivjg6Tjg57jgrfjgr8s44K344Ky44OfDQor44Ok44Oe44K244KtLOOCv+ODgOOCtw0KK+ODqOODgCzjgrfjg6Xjg7PjgrnjgrENCivjg6jjgrfjg4As44Kr44K644Oo44K3DQor44Oo44K344Og44OpLOOCteODiOODqw0KK+OCquOCtuODryzjgqvjg4Tjg6bjgq0NCivjg6Tjg57jg4As44Kt44Oo44K3DQor44K144K144KtLOODjuODluODpuOCrQ0KK+OCouOCvOOCrOODnyzjgrfjgrLjgqvjgroNCivjg5Xjgq/jg4/jg6ks44OO44OW44Om44KtDQor44OP44K344Oi44OILOODqOOCt+ODkuODrQ0KK+OCpOOCveODgCzjgrPjgqbjgqTjg4ENCivjgqvjg57jgr8s44K/44OE44OkDQor44Kt44Og44OpLOODqOOCt+ODkuODrQ0KK+OCs+ODkOODpOOCtyzjgrLjg7MNCivjgq/jg57jgrXjgq0s44Oo44K344Ki44KtDQor44Of44Kv44OLLOODiOODn+OCqg0KK+OCqOODgCzjgr/jgqvjgrcNCivjg43jg6Ljg4gs44Oe44K144Om44KtDQor44Kq44OOLOOCv+OCr+OCuA0KK+OCteOCqOOCrSzjg47jg6rjg6bjgq0NCivjgrvjgq0s44Om44Kt44KqDQor44K544Ok44OeLOODkuODreOCsw0KK+OCv+ODiuOCqyzjgrHjg7PjgrQNCivjgr/jgrbjg68s44Of44Kt44KqDQor44Ko44Oz44OJLOOCuOODpeODs+OCsw0KK+ODpOODnuOCsOODgSzjg47jg6rjgqoNCivjg6Tjgrnjg4As44K144OI44K3DQor44K544K644KtLOOCv+OCseOCtw0KK+ODkuODreODj+OCtyzjg6TjgrnjgqoNCivjgqvjg4jjgqYs44OS44Ot44Oo44K3DQor44Km44Ko44OP44OeLOODn+ODjuODqw0KK+ODnuODiOODkCzjg4Hjg5Ljg60NCivjg6/jgr/jg4rjg5ks44OI44Kq44OrDQor44Kr44Ov44K344OeLOODhuODhOOCqg0KK+ODleOCuOOCq+OCvyzjg5/jg4TjgqoNCivjgrPjgqTjgrEs44Kq44K144OgDQor44K/44OK44KrLOODquODp+OCpuOCvuOCpg0KK+ODgOOCseODpOODnizjg5Ljg63jg6bjgq0NCivjgq/jgrfjg5Pjgq0s44K544Kx44OS44OHDQor44K544Ks44OP44OpLOODhuODhOOCqg0KK+ODkuOCrOOCtyzjg5Xjg5/jg5Ljg60NCivjg5vjgqss44Kx44Oz44K/44Ot44KmDQor44Kk44Ov44K/LOOCv+OCq+ODpuOCrQ0KK+OCueOCrOODr+ODqSzjg57jgrnjgrMNCivjgrnjg4gs44Oe44K144OfDQor44Oe44OE44K244KtLOODnuOCteODjuODqg0KK+OCouOCq+ODnuODqyzjgqrjgrXjg6ANCivjgqLjg5njgqvjg68s44Os44Kk44K4DQor44Oo44ON44OALOODnuOCteOCqg0KK+OCveOCrOODmSzjg6bjgq3jgqoNCivjg6/jgqvjg5Djg6Tjgrcs44OP44Os44KqDQor44K544Of44K/LOODhuODhOODpA0KK+OCpOODjuOCpuOCqCzjgr/jgqvjg6jjgrcNCivjg5/jg6Tjg6Ljg4gs44OE44OI44OgDQor44OV44K444Kr44OvLOODiuOCquODiA0KK+OCteOCpOODiOOCpizjg5Xjg5/jgqoNCivjgr/jg4rjg5ks44Kx44Oz44K4DQor44K344Of44K6LOOCu+OCpOOCuA0KK+ODjuOCsOODgSzjgrfjgrLjgqLjgq0NCivjgqvjg6/jg4rjg58s44Oe44K144Ki44KtDQor44OV44Kv44K344OeLOOCouOCreODqQ0KK+OCquODgOODr+ODqSzjg5/jg4HjgqoNCivjgqrjgqrjgr8s44Oo44Km44K4DQor44Kr44Ov44OOLOOCv+ODgOODqOOCtw0KK+OCr+ODi+ODpuOCrSzjg6Tjgrnjg5Ljg60NCivjgrfjg57jg4As44Of44OE44OrDQor44K/44Kr44K344OeLOODn+ODhOOCrg0KK+ODhOODpCzjg57jgrPjg4gNCivjg4rjgqvjgrfjg54s44Oe44K144KqDQor44Ok44Ku44K344K/LOODiOOCt+OCqg0KK+OCreOCt+ODouODiCzjg57jgrPjg4gNCivjgq/jgrIs44Kx44Oz44K4DQor44Ki44K144OOLOODqOOCt+OCouOCrQ0KK+OCq+ODr+OCq+ODnyzjg4Tjg43jgqoNCivjgrfjg57jg4As44K344Ol44Km44Kk44OBDQor44OV44K444KkLOOCt+ODpeODs+OCpOODgQ0KK+ODkuOCrCzjgrjjg6Xjg7Pjgq0NCivjgr/jg4rjg5ks44Ki44Kt44OpDQor44Kv44Op44OkLOOCreODmOOCpA0KK+ODiuOCq+OCtuODryzjg57jgrXjg5Ljg4gNCivjgqLjg6/jgr8s44K344Ky44OrDQor44K444OALOOCouOCreOCqg0KK+ODm+OCveOCq+ODryzjg4jjgrfjgqoNCivjgrfjg5bjg6Qs44Oo44K344Kr44K6DQor44Kz44OQ44Ok44K3LOOCreODqOOCtw0KK+OCreOCv+OCrOODryzjg6jjgrfjg4bjg6sNCivjg5/jgrrjgr/jg4ss44Ki44Kt44OpDQor44K/44Kr44K7LOODiOOCt+OCqg0KK+ODn+ODpOODoOODqSzjg4jjgqrjg6sNCivjg6jjgrPjg4/jgr8s44OI44K344OS44KzDQor44OK44Oq44K/LOODn+ODhOODqOOCtw0KK+OCouODmSzjgrXjg4Djg5Ljg60NCivjg4rjg57jgqgs44Kx44Oz44K4DQor44Kt44Og44OpLOODpuOCv+OCqw0KK+ODiuOCtOOCtyzjg5Ljg4fjgqLjgq0NCivjg4jjg5/jg4rjgqss44Oo44K344KqDQor44OK44Kr44OOLOODhOODouODqw0KK+OCquOCquOCteOCryzjgqvjgrrjgqoNCivjg4/jg6Tjgrcs44K344Ky44Ki44KtDQor44Kq44Kq44K1LOOCv+OCq+OCtw0KK+ODpOODnuOCpuODgSzjgrgNCivjgqrjg4As44Oq44On44Km44K4DQor44Oh44Kw44OtLOODkuODreODqOOCtw0KK+OCq+ODiuOCteOCrSzjg4jjg5/jgqoNCivjgqrjgqvjg44s44Ok44K544KqDQor44Kv44K144Kr44OvLOODiuOCquOCrQ0KK+OCpOODjuOCpuOCqCzjgr/jgrHjgrcNCivjg6Tjg4As44Kr44K644Kq44OfDQor44Oe44OE44Kq44KrLOODpuOCreOCqg0KK+OCueOCuuOCrSzjg6bjgqbjgrgNCivjgr/jgq3jg6Ljg4gs44Kv44OL44KqDQor44OS44Ks44K344OQ44K/LOODkuODh+OCqg0KK+OCpOOCpOODgCzjgrHjg7PjgrcNCivjgqvjg7Pjg44s44Oe44K144OS44OtDQor44K/44OK44KrLOOCt+OCsuODqw0KK+OCpOOCr+OCvyzjg6Tjgrnjg5LjgrUNCivjgrXjg44s44OS44OH44Oe44K1DQor44K544Ks44Ov44OpLOODpOOCueODkuODrQ0KK+ODiuOCrOOCvyzjg6bjgq3jgqoNCivjgqbjg6njg44s44K144OI44K3DQor44K544Ku44Ok44OeLOOCq+ODhOODpuOCrQ0KK+OCquOCq+ODmSzjg5Xjg5/jgqoNCivjgrPjgqTjg4cs44K/44Kr44K3DQor44Kk44K344K/44OLLOOCteODiOOCtw0KK+ODouODqizjgqjjgqTjgrgNCivjgq3jgr/jg6Djg6ks44K/44Kr44K3DQor44Kk44Ov44OfLOODpOOCueOCqg0KK+ODleOCq+ODgCzjgr/jgqvjgrcNCivjgqbjgqjjg4As44Om44Km44K4DQor44OV44Or44K/44OLLOOCv+OCq+ODnuOCtQ0KK+ODieOCpCzjgr/jgqvjgrcNCivjg4rjgqzjg44s44OI44K344OO44OqDQor44Kt44Og44OpLOOCouOCreODqQ0KK+OCq+ODieODpCzjg6bjgqbjgrQNCivjgqrjgqrjgr8s44Kv44OL44KqDQor44K/44Kx44Km44OBLOOCseODs+OCpOODgeODrQ0KK+ODiOOCr+ODouODiCzjgr/jgqvjgqLjgq0NCivjgqTjg4jjgqYs44K344OV44OfDQor44Ok44Oe44K244KtLOODiOOCreOCqg0KK+OCouOCquOCrSzjg6jjgrfjg58NCivjg4Hjgq7jg6os44Ko44Kk44K444Ot44KmDQor44Oo44K344OK44KsLOODgeOCq+OCqA0KK+ODkuODqeODkOODpOOCtyzjg5Ljg63jgqvjgroNCivjg4rjgqvjg4/jg6ks44Kx44Oz44K4DQor44OS44Ot44OkLOODjuODquODkuODrQ0KK+OCq+ODiuOCpCzjgqvjg7PjgrvjgqQNCivjg4jjgqrjg6Tjg54s44K/44Kr44K3DQor44Km44OOLOOCreODs+OCtA0KK+OCt+ODkOOCvyzjg4jjgrfjgqoNCivjgq3jgr/jgqzjg68s44Kt44OP44OB44Ot44KmDQor44OP44Op44OALOODkuODh+ODpuOCrQ0KK+ODpOODnuODoOODqSzjgrHjg7PjgrgNCivjgq/jg57jg58s44Om44Km44K+44KmDQor44Kk44K344OQ44K3LOODiOOCt+ODpuOCrQ0KK+OCt+ODkOOCvyzjg4/jg6vjgq0NCivjgrXjgq/jg6Tjg54s44Kr44K644KqDQor44Kk44Kx44OALOOCu+OCpOOCpOODgQ0KK+OCv+OCseODouODiCzjgqvjgrrjgqoNCivjgr/jg6Ljg4gs44OI44Of44KqDQor44Kz44Og44OtLOODquODp+OCpuOCpOODgQ0KK+OCv+ODiuOCqyzjg57jgrXjg4jjgrcNCivjgqvjg57jg4As44OS44Ot44K3DQor44K/44OQ44K/LOOCseOCpOOCpOODgQ0KK+ODkuODqeOCq+OCvyzjgqvjgrrjgqoNCivjgr/jgrHjgqbjg4Es44OG44OE44KqDQor44Kk44Oe44K6LOODpOOCueOCv+ODgA0KK+ODleOCuOOCvyzjg4jjgrfjg5/jg4ENCivjg6Tjg57jg6Ljg4gs44OE44OI44OgDQor44Ok44Oe44KtLOODpuOCpuOCuA0KK+OCt+ODqeOCpOODgSzjg57jgrXjg6sNCivjgrXjgrXjgq0s44Og44OE44OfDQor44Of44Ok44Kr44OvLOODnuOCteOCv+OCqw0KK+OCr+ODieOCpizjgrHjgqTjgrMNCivjgqLjg6njg57jgq0s44OO44OW44KqDQor44Kt44OP44OpLOODiuOCquOCrQ0KK+OCquOCqyzjgq3jg6fjgqYNCivjgrPjg4vjgrcs44K344Ky44OfDQor44K/44Kx44Km44OBLOOCteODgeOCsw0KK+OCv+ODiuOCqyzjgrfjg7PjgqTjg4Hjg63jgqYNCivjgrXjgqvjg6Ljg4gs44Oe44Oi44OrDQor44Oe44OE44OA44Kk44OpLOOCqOOCpOOCuA0KK+OCpOODjizjgr/jg4Tjg63jgqYNCivjgqrjg5Djg4os44K344Ky44Ok44K5DQor44Kq44Kq44Kv44OvLOOCreODqOOCtw0KK+OCtOODiOOCpizjgrfjg7PjgrgNCivjgrnjgrrjgq0s44Kt44Oo44K3DQor44OL44K344Kq44KrLOOCteODluODreOCpg0KK+OCteOCteOCrSzjg5Ljg4fjgqoNCivjg4/jg6ks44Kk44Kv44KqDQor44K744KtLOODkuODreOCtw0KK+OCteOCpOODiOOCpizjg5Ljg4jjgrcNCivjg5Xjgrjjgr8s44K344Ol44Oz44K544KxDQor44K144Kr44K/LOOCs+OCpuOCpOODgQ0KK+ODnuOCqOOCtuOCrSzjgqTjgrXjgqoNCivjgrfjgqrjg58s44Of44OE44KqDQor44K/44Kr44Kv44OvLOODnuOCteODjuODlg0KK+OCpOOCt+ODj+ODqSzjg4HjgqjjgrMNCivjgrPjgq/jg5ws44Kx44Kk44KzDQor44Of44Ok44K244KtLOOCt+OCsuOCqg0KK+OCouODquODnizjgrHjgqTjgrMNCivjgqbjg4Hjg6Tjg54s44K/44Kr44K3DQor44OK44K344KtLOOCq+OCquODqw0KK+ODleOCuOOCvyzjg6bjg5/jgrMNCivjgr/jgqvjgq7jg68s44Kk44K144OgDQor44OL44K344OALOODkuODiOOCtw0KK+OCreOCr+ODgSzjg5Ljg4fjg5Xjg58NCivjg4rjgqvjgqQs44Oe44K144OfDQor44Kk44Kk44OALOODpOOCueOCtw0KK+ODpOODnuOCsOODgSzjg47jg5bjg5Ljg60NCivjg6Tjg44s44Om44Km44Kk44OBDQor44Ok44Oe44Oi44OILOODkuOCteOCtw0KK+ODm+ODquODoOOCrSzjg6jjgrfjg54NCivjgqLjg4Djg4Es44OV44Of44OO44OqDQor44Km44Op44OOLOOCs+OCpuOCpOODgQ0KK+OCv+OCseODgCzjg5/jg4HjgrMNCivjgrXjgqTjg4jjgqYs44OS44Ot44OE44KwDQor44K344Oe44Og44OpLOOCs+OCpuOCuA0KK+ODleOCr+ODgCzjg4Tjg6jjgrcNCivjgq3jg6Djg6ks44Ko44Kk44KzDQor44Ok44Oe44Oi44OILOOCqOODquOCsw0KK+OCt+OCsuODpOOCuSzjgqjjgqTjgqTjg4ENCivjgqvjg47jgqYs44OS44Ot44Ki44KtDQor44K544OvLOODleODn+OCqg0KK+OCquOCq+OCtuOCrSzjg47jg6rjgqoNCivjg5Xjgqvjg6Qs44Oe44K144OS44OtDQor44Kz44K244KkLOODn+ODhOODqw0KK+ODm+ODieODpOODnizjg5Ljg4fjgqoNCivjgq/jg5zjgr8s44Kt44Oo44K3DQor44Kk44Kk44K644KrLOODquODp+OCpuOCsw0KK+OCv+OCq+OCrizjgr/jgrHjg47jg6oNCivjgqTjg6/jgqos44Oe44K144K3DQor44Kk44K344KkLOOCpOOCteODoA0KK+ODr+OCq+ODkOODpOOCtyzjg4jjgrfjg5Ljg4cNCivjgrzjg7PjgrEs44OI44K344KqDQor44Ov44K/44OZLOODqOOCt+ODnw0KK+ODnuODhOODouODiCzjg5Ljg63jgrfjgrINCivjg57jg6vjg6Tjg54s44Kx44Kk44K4DQor44OK44Kr44OOLOODkuODh+ODjuODqg0KK+OCquOCquOCr+ODnCzjgqvjgrrjg4/jg6sNCivjgq/jg5zjgr8s44Oe44K144OIDQor44OL44K344Kr44OvLOODkuODreOCtw0KK+ODi+ODg+OCvyzjg5Xjg5/jgrMNCivjgqTjgrfjg4As44OS44OH44OS44KzDQor44Kr44Oe44K5LOOCseODs+OCvuOCpg0KK+OCq+OCsuODpOODnizjg5/jg47jg6sNCivjg57jg4Tjg6Djg6ks44OI44K344Of44OBDQor44K144K144KtLOOCueOCueODoA0KK+ODkuODqeODjizjg6jjgrfjgqvjgroNCivjgrnjgrrjgq0s44Kk44OB44Ot44KmDQor44OL44K344OP44OpLOOCseOCpA0KK+OCr+ODreOCpOODryzjgr/jgqvjgrcNCivjgr/jgqvjg4/jgrcs44OS44Ot44K3DQor44K/44Kx44Km44OBLOODkuODh+OCouODhA0KK+OCt+ODn+OCuizjgqLjgq3jg5Ljg4cNCivjgrXjgr/jgrEs44K344Oz44K4DQor44Kz44K/44OLLOOCv+OCr+ODouODqg0KK+OCs+ODh+ODqSzjg57jgrXjg4gNCivjg4/jg57jg44s44Of44OB44KqDQor44OK44Kr44Og44OpLOODkuODreOCtw0KK+ODpuOCouOCtSzjgrHjg7PjgrgNCivjgqrjgqvjg4As44Oo44K344OS44OtDQor44Kz44OQ44Ok44K3LOODqOOCt+ODj+ODqw0KK+ODleOCr+ODgCzjgrjjg6Xjg7PjgqTjg4ENCivjgqvjg5/jg6Djg6ks44K/44Kr44K3DQor44Kk44Oe44OALOODnuOCteODkuODrQ0KK+OCveODjSzjg5Xjg5/jgqoNCivjg5/jg47jgrDjg4Es44Oo44K344OO44OqDQor44Kv44OA44OK44OfLOODnuOCteODpuOCrQ0KK+OCpOODjuOCpuOCqCzjg5/jg4njg6oNCivjgqbjgqjjg6Djg6ks44OO44Oc44OrDQor44Of44Km44OpLOOCquOCteODoA0KK+OCueOCrOODr+ODqSzjgrXjg4jjgrcNCivjg6/jgr/jg4rjg5ks44OK44Kq44Om44KtDQor44OL44K344Ov44KtLOODqOOCpuOCuA0KK+OCquOCquOCv+ODiyzjg57jgrXjgqLjgq0NCivjgq/jg63jgqvjg68s44Kt44Oo44K3DQor44Kv44Oc44K/LOODjuODluOCqg0KK+OCv+ODoOODqSzjg5Ljg63jg5LjgrMNCivjgqjjg5Pjg4/jg6ks44Kt44Kk44OBDQor44OK44Kr44Og44OpLOODqOOCpuOCsw0KK+ODpOODnuODjSzjg6jjgrfjg4gNCivjgqLjgrXjg54s44Oe44K144OS44OtDQor44Of44Km44OpLOODpOOCueODjuODlg0KK+OCouODqeOCq+ODryzjgrfjg7PjgrgNCivjgrPjgrjjg54s44Oo44K344Ki44KtDQor44K144Kr44K/LOOCs+OCpuODmOOCpA0KK+OCs+ODkOODpOOCtyzjgqrjgrXjg5Xjg58NCivjgqrjgqzjg68s44Oo44K344KqDQor44Kr44OI44KmLOOCv+OCq+ODpuOCrQ0KK+ODn+ODhOOCpCzjgrHjgqTjgqTjg4ENCivjg4bjgrfjg54s44Kr44K644Oe44K1DQor44Ki44K9LOODkuODreOCpOODgQ0KK+ODouODquODpCzjg5Ljg4jjgrcNCivjg6Tjg4os44Kr44K644KqDQor44K144Kk44OI44KmLOODkuODreODpuOCrQ0KK+OCpOODgeOCrSzjg5Ljg63jgrcNCivjgqrjgqrjgr8s44OS44Ot44K3DQor44Ob44Oq44Km44OBLOOCseOCpOOCpOODgQ0KK+OCv+ODi+OCsOODgSzjg6jjgrfjgqoNCivjg4vjgrfjg44s44K944Km44Kk44OB44Ot44KmDQor44OV44Or44OP44K3LOOCs+OCpuOCvuOCpg0KK+OCouOCreOCvyzjg4jjgrfjgqoNCivjgqrjgq/jgrfjg54s44K/44Kr44K3DQor44Kq44Kq44K/44OLLOOCv+ODgOODkuODrQ0KK+OCq+ODoeOCquOCqyzjg6jjgrfjgqoNCivjg4/jg6njgqrjgqss44Kr44OE44Ok44K5DQor44OK44Kr44Og44OpLOODkuODreOCtw0KK+OCouODqeOCt+ODnizjg6bjgq3jgqoNCivjg4rjgqzjgrXjg68s44Oo44K344Ot44KmDQor44Ok44Oe44Kq44KrLOOCreODqOOCtw0KK+ODj+OCuyzjg57jgrXjgqvjg4QNCivjgq3jgrfjg6Ljg4gs44Kv44OL44KqDQor44K544K644KtLOODqOOCt+OCqg0KK+OCq+ODoeODpCzjgqvjg4Tjg58NCivjg57jgrnjg4As44Oe44K144OP44OrDQor44Ko44Oz44OJLOOCseODs+OCpOODgQ0KK+OCteOCr+ODqeOCpCzjgr/jgqvjgqLjgq0NCivjg5Xjg6vjgrfjg6fjgqYs44OV44K444KqDQor44Km44K344KtLOOCq+OCuuODnw0KK+OCs+OCpOOCsSzjg5Ljg63jgrcNCivjg4jjgqbjg54s44K144OB44OS44OtDQor44OK44Kr44K244OILOODkuODreOCtw0KK+ODpOODnuOCquOCqyzjg6jjgrfjg47jg5YNCivjg4rjgqvjg40s44OO44OW44OP44OrDQor44OI44Of44K/LOODjuODquOCq+OCug0KK+OCteODiOODoOODqSzjgrHjgqTjgrgNCivjg5LjgrXjg57jg4Qs44OI44Oo44OI44K3DQor44Kq44Ks44OvLOODnuOCteODiA0KK+OCteOCq+OCpCzjgr/jgrHjgrcNCivjg4rjgqvjgq4s44Om44OfDQor44K144Ov44Kw44OBLOODnuOCteOCr+ODiw0KK+ODnuODhOODouODiCzjg4jjgrfjgqoNCivjg5Xjg6vjgqvjg68s44Kz44Km44Kk44OBDQor44OV44K/44OfLOOCreODqOOCtw0KK+OCv+ODiuOCqyzjg5Xjgq/jg6ANCivjg5Ljg5Pjg44s44OS44Ot44K3DQor44K544OK44OP44OpLOOCt+ODp+OCpuOCuA0KK+OCpOOCseODgCzjgr/jgqvjgrcNCivjgrTjg4jjgqYs44OO44OW44Om44KtDQor44Kk44K344OOLOODhOODiOODoA0KK+OCreODoOODqSzjgrfjgrLjg6sNCivjg6Tjg57jg4As44Of44OE44KqDQor44Oi44Oq44Oi44OILOODnuOCteODqw0KK+OCquOCq+ODouODiCzjg57jg4TjgqoNCivjg4rjgqvjgrjjg54s44K144Kr44KoDQor44Kt44K/44Og44OpLOODnuOCueODnw0KK+ODiuOCq+OCpOOCtyzjgr/jgrHjg6bjgq0NCivjg6/jgrUs44OS44OH44KqDQor44Kz44K344Og44OpLOODnuOCteOCtw0KK+ODkuODiuOCvyzjgq3jg6fjgqbjg5jjgqQNCivjg4rjgqvjg6Djg6ks44OO44OW44KqDQor44OV44Kv44KkLOOCv+ODhOODkuOCsw0KK+OCv+OCq+ODgCzjgqvjgrrjgqoNCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44OL44K344Ok44OeLOODnuOCteODkuODrQ0KK+ODiuOCq+ODpOODnizjgr/jgqvjg6TjgrkNCivjg4/jg6rjgqzjg6Qs44OS44Ot44Ki44KtDQor44Oe44K544Oi44OILOODqOOCt+OCqg0KK+ODhuODqeODi+OCtyzjg57jgrXjg47jg5YNCivjg4rjgqzjgq/jg5ws44Kq44K144OgDQor44Oo44K344OOLOOCv+OCq+OCtw0KK+ODouODquOCvyzjg47jg5zjg6sNCivjg4bjg6njgqos44Of44OE44OS44OtDQor44Oo44K344Og44OpLOOCreODqOOCuA0KK+ODr+OCv+ODiuODmSzjgrHjg7PjgrgNCivjg57jg4Tjg6Ljg4gs44Kt44Oo44K3DQor44Kq44K244KtLOODqOOCt+OCouOCrQ0KK+ODkuOCsOODgSzjg5Xjgrjjgq0NCivjg5/jg6Tjg6Ljg4gs44Of44K144KqDQor44Ok44Oe44Kw44OBLOODnuOCueODnw0KK+ODpOODnuODouODiCzjgqjjg4TjgrMNCivjgqvjg4jjgqYs44Kz44Km44Kk44OBDQor44OK44Kr44KkLOOCq+OCuuODnw0KK+ODleOCuOOCvyzjg5Ljg63jgrcNCivjgrnjgqzjg6/jg6ks44Kz44Km44K444On44KmDQor44Kk44K344K244KtLOOCv+OCq+ODpuOCrQ0KK+OCv+ODhOODnyzjg6jjgrfjgqLjgq0NCivjg4rjgqvjgrfjgr8s44Oe44Kz44OIDQor44Kq44K444OeLOODkuODreOCouOCrQ0KK+OCouOCteOCt+OCvyzjg57jgrXjg5Xjg58NCivjg5vjg6rjgqQs44Of44Oo44K3DQor44Kk44OqLOOCseODs+OCpOODgQ0KK+ODleOCuOODnuOCrSzjgr/jg4DjgqLjgq0NCivjgqvjgrjjg6/jg6ks44K344Ol44Km44Kk44OBDQor44OP44K744Ks44OvLOODn+ODhOOCqg0KK+ODleODiuODpOODnizjgqjjg4TjgqoNCivjgq3jg4/jg6ks44K/44Kr44K3DQor44K/44Kx44OALOOCseOCpOOCsw0KK+OCpOOCpOODgCzjgqvjg4rjgqgNCivjg5Xjg6vjg4ks44Oe44K144KqDQor44Oi44OqLOOCt+ODpeOCpuOCpOODgQ0KK+ODleOCr+ODiCzjg4rjgqrjg6QNCivjgqrjgqrjg4/jgrcs44Ki44Kt44OS44OIDQor44Ki44Kq44KtLOODkuODh+OCtw0KK+OCv+OCuOODnizjg5Ljg63jgrcNCivjgqrjgqrjg4Tjgqss44OI44Oi44OS44OtDQor44Ki44Kq44OOLOOCuOODs+OCpOODgQ0KK+OCpOODjuOCpuOCqCzjg5Ljg4jjgrcNCivjgqjjg7Pjg4ks44Oe44K144OS44OtDQor44OS44Ot44K7LOODqOOCt+OCq+ODhA0KK+OCqOODs+ODiSzjgqLjgq3jgqoNCivjgqvjg6/jgqQs44Of44OB44OrDQor44Ki44Kk44K244OvLOODleODiOOCtw0KK+OCs+OCpOOCv+ODkOOCtyzjgq3jg6jjg5Ljg60NCivjgrXjg4jjgqYs44Ok44K544OS44OtDQor44Kr44OO44KmLOOCt+OCsuOCrQ0KK+OCpuOCqOODoOODqSzjg57jgrXjg4jjgrcNCivjgrnjg5/jg6jjgrcs44OS44OH44KqDQor44OS44Ot44K/LOOCteODiOODqw0KK+OCpOODiuODiOODnyzjgqvjgrrjg6jjgrcNCivjgqTjg4jjgqYs44OO44Oq44Kr44OEDQor44Kv44OcLOODkuODh+OCouOCrQ0KK+OCq+ODluODqeOCrizjg4jjgrfjg5Ljg60NCivjgqTjgrHjg4As44Oo44K344OO44OqDQor44K/44Kr44OP44K3LOOCq+OCuuOCqg0KK+OCteOCq+OCpCzjg57jgrXjg5Ljg60NCivjgqvjg4jjgqYs44Ok44K544Kv44OLDQor44K/44Kx44KkLOODpOOCueODpuOCrQ0KK+ODj+ODs+ODgCzjg4jjgqrjg6sNCivjg4rjgqzjg6Qs44Kr44OE44OfDQor44OP44OD44OI44OqLOODkuODreODjuODqg0KK+OCt+ODn+OCuizjg6jjgrfjg4rjgqoNCivjgqTjg57jg4vjgrcs44Oe44K144OIDQor44Kv44Oe44OZLOODnuOCteOCqg0KK+ODnuODgeODgCzjg4TjgqvjgrUNCivjg6Tjgq4s44OB44OP44OrDQor44Kq44OA44OeLOODpuOCreOCqg0KK+OCreOCv+OCuOODnizjgrjjg6Xjg7PjgrMNCivjgr/jg4Hjg5Djg4os44K/44Kv44Ot44KmDQor44OV44K444Oi44OILOOCt+ODpeOCpuOCuA0KK+ODn+OCuuODjizjgqTjgq/jgqoNCivjgqjjgrDjg4Es44Kr44OE44OfDQor44Kr44Ov44OZLOOCteODhOOCsw0KK+ODiuOCq+ODoOODqSzjg4HjgqLjgq0NCivjgqLjgrnjg54s44Kt44Oo44Kr44K6DQor44OP44Og44OpLOODhOODiOODoA0KK+OCpOODiOOCpizjg6bjgqbjgrgNCivjgqTjgrHjgrbjgq0s44K/44Kx44K3DQor44Ok44Oe44K144KtLOODjuODquODpuOCrQ0KK+ODi+OCt+OCtuODryzjgr3jgqbjgrgNCivjg4vjg68s44Ko44Kk44OS44KzDQor44Of44Km44OpLOODkuOCteOCtw0KK+OCq+OCv+OCquOCqyzjgqLjgrHjg58NCivjg4/jg6Tjgrcs44Oe44Kt44KzDQor44Of44K144KtLOOCv+OCseOCtw0KK+OCquODgOOCr+ODqSzjg5Ljg63jg5/jg4ENCivjg5Xjgrfjg58s44OB44Kr44OIDQor44OS44Ot44K/LOOCv+OCq+OCtw0KK+ODj+OCv+ODpCzjg4jjgrfjg6bjgq0NCivjgrXjgqvjgqQs44Om44Km44K4DQor44Kk44OALOOCpOODgeODreOCpg0KK+OCteODiOOCpizjgr/jg4DjgrcNCivjg5vjgrfjg44s44OO44Oc44OrDQor44Kq44Ks44OvLOODiuODhOOCouOCrQ0KK+ODleOCr+OCtuODiCzjg6rjg6XjgqbjgqTjg4ENCivjgr/jg4rjgqss44K744Kk44K4DQor44K144K144KtLOOCreODp+OCpuOCsw0KK+OCquOCuuODgSzjg5/jg4TjgqoNCivjg5Xjg63jg6Ljg4gs44Of44OO44OrDQor44OL44K344Og44OpLOOCt+ODs+ODpA0KK+OCv+OCseODgCzjg4jjg5/jgrMNCivjgr/jgrHjg4jjg58s44Kz44Km44Kk44OBDQor44Kq44Kr44OALOODn+ODgeOCqg0KK+ODnuODiCzjgqvjgrrjg6bjgq0NCivjgrnjgrrjgq0s44Ki44Kt44Oo44K3DQor44Og44Kr44KkLOODqOOCpuOCpOODgQ0KK+OCs+OCrCzjg6TjgrnjgqoNCivjgqvjg4jjgqYs44Kr44K644OfDQor44Oo44Kz44KkLOODleODn+ODiOOCtw0KK+OCpuOCt+OCtOODoSzjg57jgrXjgr/jgqsNCivjgrPjg57jg4Qs44Oo44K344K/44KrDQor44Kk44OI44KmLOODkuOCteOCouOCrQ0KK+OCteODiOOCpizjgrfjg6Xjg7PjgrnjgrENCivjg5Ljg63jgrss44OO44Oq44Oo44K3DQor44K044OfLOOCuOODpeODsw0KK+OCv+ODiuOCqyzjgr/jg4TjgqoNCivjg57jg4Tjg6Ljg4gs44K/44Kk44Kk44OBDQor44OP44Ok44K3LOOCu+OCpOOCuA0KK+OCv+OCq+ODj+OCtyzjgqvjg4Tjg5Ljg60NCivjgqLjg6njgqQs44OI44K344Om44KtDQor44Ob44K3LOOCreODqOOCtw0KK+ODhuODqeODgCzjgrfjgrLjg6sNCivjgqTjgrrjg48s44OP44Or44KqDQor44K544OK44OALOODpOOCueOCuOODreOCpg0KK+OCpOOCuOODnizjg5Xjg5/jgqoNCivjgr/jgqvjg4As44OI44K344OP44OrDQor44Ov44Kr44Oe44OELOOCs+OCpuOCuA0KK+ODhOODgCzjg4jjgrfjg6bjgq0NCivjg5vjgrfjgq/jg54s44Oe44K144OP44OrDQor44Ob44Oz44OALOODkuODreODnw0KK+OCq+ODnuODgCzjgqjjgqTjgrgNCivjg4/jg6Tjgrcs44Of44OE44OS44OtDQor44Kk44Oe44KkLOOCv+ODhOODqw0KK+ODhOODgeODpCzjgqTjgrrjg58NCivjg6/jg4As44Kk44Kv44OIDQor44Oo44K344OALOOCreODn+ODkuODrQ0KK+ODgOODhizjgrjjg6Xjg7MNCivjg4/jgrnjgrMs44Oo44K344OO44OqDQor44K/44Kx44OK44KrLOODkuODreOCouOCrQ0KK+OCquOCr+ODgCzjgqvjgrrjgqoNCivjg5vjgrcs44Om44Km44K544KxDQor44Kr44Oh44OALOOCq+OCquODqw0KK+ODkuOCt+ODjOODnizjg5Ljg63jg5Xjg58NCivjgqrjgqrjg4vjgrcs44OS44Ot44Ki44KtDQor44K144OI44KmLOODnuOCteOCouOCrQ0KK+ODm+OCveOCq+ODryzjgqLjgq3jg6kNCivjg6jjgrfjgrbjg68s44OS44OH44KqDQor44OP44Op44OALOODqOOCt+OCv+OCqw0KK+OCteOCteOCrSzjg4jjg6Ljg6bjgq0NCivjgqTjgqTjg4As44OS44OH44OfDQor44Kt44Ks44OvLOOCs+OCpuOCpOODgQ0KK+OCpOOCseOCqizjg5Ljg63jg6bjgq0NCivjgqLjg6njgqQs44Ok44K544KqDQor44Kr44Kt44Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+OCtOODiOOCpizjgq/jg4vjg4jjgrcNCivjg5/jg6TjgrPjgrcs44Ok44K544KoDQor44OV44K444K/LOOCouODhOODnw0KK+OCr+ODqeOCvyzjg5Ljg63jg6bjgq0NCivjg6Ljg6rjgqrjgqss44Om44Of44KzDQor44Ok44Oe44Km44OpLOODpOOCueODqOOCtw0KK+OCr+ODreODjyzjg6jjgqbjgrMNCivjgqTjgrrjg4/jg6ks44OK44Kq44Kr44K6DQor44K344Ky44OI44OhLOODqOOCt+OCouOCrQ0KK+ODi+OCtyzjg6Tjgrnjg5Xjg58NCivjgqLjgq3jg6Tjg54s44OI44Of44KqDQor44Kk44Kx44OALOOCq+OCuuOCreODgQ0KK+ODouODqizjg6Tjgrnjg58NCivjg5Ljg63jgqvjg68s44Om44Km44K4DQor44K944Oh44OkLOOCouOCreOCqg0KK+OCteOCr+ODqeOCpCzjgqjjg5/jgrMNCivjg5/jgrrjg44s44Kk44K144OgDQor44OG44Op44OALOODiOOCt+OCq+OCug0KK+ODkuODqeODnuODhCzjgrfjgrLjg6sNCivjgqrjgqrjgr8s44K044Ot44KmDQor44OS44Op44Oe44OELOOCqOODhOOCqg0KK+ODi+OCt+ODgCzjg6bjgq3jgqoNCivjg6Djg6njgr8s44OS44OH44Om44KtDQor44Of44K644Kz44K3LOOCseODs+OCpOODgQ0KK+ODiOODn+OCvyzjgr/jgqvjgqoNCivjgqvjg6/jg58s44K744Kk44Kk44OBDQor44K344Kk44OOLOOCt+OCsuOCqg0KK+ODiuOCq+ODoOODqSzjg47jg5bjgqoNCivjgqTjgrfjgqvjg68s44Kz44Km44Kk44OBDQor44Kr44ON44K/44KxLOOCq+ODiuODoQ0KK+OCquOCt+OCsizjgr/jgqTjg4ENCivjgrPjgrjjg54s44Om44Km44K+44KmDQor44OI44OQLOODnuOCs+ODiA0KK+OCpOODr+OCvyzjg5Ljg4fjgqLjgq0NCivjgqrjg44s44Kx44Oz44K4DQor44Kz44K144KrLOODkuOCteOCv+OCsQ0KK+OCq+ODs+ODjizjgqLjgq3jgqoNCivjgqTjg4jjgqYs44OI44K344OE44KwDQor44K/44Kr44KuLOODn+ODgeOCsw0KK+OCv+OCq+ODjizjgrfjg7PjgqTjg4ENCivjgqTjg4rjgqzjgq0s44OG44OE44KqDQor44OO44K244KtLOOCuOODpeODsw0KK+OCv+OCseODgCzjg5Xjg5/jgrMNCivjgrTjg4jjgqYs44K344Oz44K4DQor44Ob44Oq44Kr44OvLOOCq+OCuuODkuODrQ0KK+OCueOCruODouODiCzjg6rjg6fjgqYNCivjgqLjg6njgqQs44K744Kk44K4DQor44OV44K444Ov44OpLOODkuODh+OCueOCrg0KK+ODqOOCt+ODgCzjgrfjg6XjgqbjgqTjg4ENCivjgqrjgrfjg54s44K/44Kx44K3DQor44K044OI44KmLOODgOOCpOOCuOODreOCpg0KK+OCpOOCuuODn+OCteODryzjg6jjgrfjg4jjg6INCivjgqTjg6/jg5bjg4Es44Oe44K144OE44KwDQor44Kk44Oe44Kt44K/LOOCt+ODp+OCpuOCuA0KK+ODoOODqeOCvyzjgrfjg6fjgqbjgrMNCivjgrfjg6Ljg44s44Kr44K644OS44OtDQor44K044Kr44Kk44OBLOOCs+OCpuOCuA0KK+ODpOODnuODouODiCzjg47jg5zjg6sNCivjg4rjgqzjgrfjg54s44K444Ot44KmDQor44Of44K344OeLOODqOOCt+ODkuODrQ0KK+ODpOOCueODiuOCrCzjgqvjg4Tjg58NCivjgqrjg5Xjg4Es44K444Ot44KmDQor44Kz44Og44Kr44KkLOOCreODqOODnw0KK+ODiuOCrOOCteODryzjgr/jgqTjgrvjgqQNCivjgq3jgr/jgqrjgqss44Kr44K644OS44KzDQor44OP44OpLOOCq+OCuuODpA0KK+ODleOCq+ODgCzjg47jg6rjg5Xjg58NCivjgq3jgr/jgqzjg68s44K/44Kr44Ki44KtDQor44Kq44Kq44Oi44OqLOODrOOCpOOCsw0KK+ODj+ODluODgSzjg5Ljg4fjgqvjgroNCivjg5/jg6Tjgrbjgq0s44OS44Ot44OgDQor44K344Ot44K/LOODnuOCteODpuOCrQ0KK+OCs+ODn+ODpCzjgrPjgqbjgrgNCivjg4bjg6njgqos44K444Ot44KmDQor44OL44K344Kw44OBLOODiOOCt+OCouOCrQ0KK+OCq+ODjeOCuuOCqyzjg5Ljg63jgqLjgq0NCivjgrnjgq7jg6Tjg54s44OG44OE44K4DQor44K/44OB44OQ44OK44KtLOODj+ODq+OCouOCrQ0KK+ODouODquOCquOCqyzjg57jgrXjgqvjgroNCivjg6jjg47jg6Ljg4gs44OS44OH44KtDQor44Kv44K544OALOOCq+OCuuOCpOODgQ0KK+OCouODquODpOOCuSzjgqjjg4TjgqoNCivjg4Tjgrjjg6Ljg4gs44OS44K144OIDQor44OV44Kr44OfLOOCuOODpeODs+OCpOODgQ0KK+OCouOCreODpOODnizjgq3jg6jjgrcNCivjg6Ljg4Hjgrrjgq0s44Oo44K344K/44KrDQor44OO44Og44OpLOOCt+ODpeODs+OCuA0KK+ODr+ODgCzjgq3jg6jjgrcNCivjgqrjg4Es44OS44Ot44K3DQor44Og44Op44Oe44OELOODgeOCqOOCsw0KK+ODpOODjizjgqrjgrXjg6ANCivjg6Ljg4Hjgrrjgq0s44Kt44Oo44K3DQor44OS44Op44K/LOODiuOCquOCrQ0KK+ODr+OCq+ODnuODhCzjg4jjgrfjgrXjg4ANCivjgrXjgqvjg6Ljg6os44Kr44Oo44KzDQor44Kz44OQ44Ok44K3LOOCouOCreODkuOCsw0KK+OCpOODnuODoOODqSzjg6jjgrfjg5Ljg60NCivjgqrjgqrjgrnjgqws44Kr44Ko44OHDQor44K/44Kr44Ok44OeLOOCv+OCq+ODiOODqQ0KK+OCreOCv+ODnyzjg5Ljg63jg5Ljg4cNCivjg57jgqjjg4As44K/44Ko44KzDQor44OI44Oi44OOLOOCseODs+OCpOODgQ0KK+OCq+ODluODqeOCrizjg57jgrXjg6bjgq0NCivjg43jgq7jgrcs44Kx44Kk44K+44KmDQor44Ov44OALOODpuODn+OCsw0KK+OCueOCuuOCrSzjg6Tjgrnjg6bjgq0NCivjgrXjg4rjgqgs44Kr44K644Oe44K1DQor44OOLOOCv+ODhOODpA0KK+OCpOOCt+ODkOOCtyzjg5Ljg63jg6bjgq0NCivjg6Tjg57jgrfjgr8s44OE44ON44KqDQor44K544K644KtLOOCq+OCuuODkuODrQ0KK+ODn+ODpOODr+OCrSzjg4jjgrfjg5LjgrMNCivjg57jg4Tjgqbjg6ks44Oo44K344Ki44KtDQor44Kt44K/44Ok44OeLOODqOOCt+ODkuODrQ0KK+ODpOODnuOCsOODgSzjgrjjg6Xjg7PjgrgNCivjg4vjgrfjg6Tjg54s44Kr44OE44K4DQor44Kr44Ov44OQ44K/LOODnuOCteODkuOCsw0KK+ODn+OCq+ODnyzjgrjjg6Xjg7MNCivjgrnjgq7jg6Tjg54s44Kk44K144KqDQor44Kt44K444OeLOODjuODquOCqg0KK+ODkuOCrOOCtyzjgrfjg6XjgqbjgrgNCivjgqLjg5ks44Oe44K144OIDQor44Kk44OO44Km44KoLOODqOOCpuOCsw0KK+ODleOCq+ODgCzjgqLjgq3jgqoNCivjg6Djg6njg57jg4Qs44K444Ol44OzDQor44OS44Op44OQ44OrLOOCv+OCseOCqg0KK+ODgeODp+OCpuODiuODsyzjg6jjgrfjg57jg60NCivjgqvjg6/jg6Djg60s44K144OI44K3DQor44OE44Kv44OALOODn+ODjuODqw0KK+ODn+ODpOODouODiCzjg4jjgrfjg5Ljg60NCivjgrnjgqjjg5Ljg60s44K444Ol44Oz44Kk44OBDQor44K344Op44Kr44OvLOOCs+OCpuOCuA0KK+OCv+ODiuOCqyzjgrHjgqTjgrcNCivjg6TjgrnjgqQs44Oo44K344OO44OWDQor44Kt44Og44OpLOOCq+ODhOOCsw0KK+ODiuOCq+OCrOODryzjgqvjg4Tjg6jjgrcNCivjgq/jgrXjg44s44OI44K344OS44OtDQor44Ki44OA44OBLOODqOOCt+ODkuODrQ0KK+ODiuOCq+ODiOODoizjg6Djg4Tjg58NCivjg57jgrnjg6Ljg4gs44OE44OI44OgDQor44Ov44K/44OM44KtLOODpOOCueODkuODrQ0KK+OCv+OCq+ODj+OCtyzjgqvjg4TjgrgNCivjgrPjg5zjg6os44Of44Kt44KqDQor44Kq44Ks44OvLOOCs+OCpuOCpOODgQ0KK+ODleOCuOODouODqizjg5/jgq3jgqoNCivjgqTjg4/jg6ks44Ko44OfDQor44Ov44K/44OK44OZLOODpuOCpuOCsw0KK+OCpuODqeODmSzjgqTjgrXjg6ANCivjg5/jgqbjg6ks44Of44OE44OrDQor44OK44Kr44KkLOOCseOCpOOCpOODgQ0KK+ODr+ODqeOCt+ODiizjgrfjgrLjg6sNCivjg5Xjgq/jg4rjgqws44Oo44K344Kr44K6DQor44Kq44Kq44OE44OcLOODqOOCt+OCouOCrQ0KK+ODqOOCt+ODgCzjg5/jg47jg6sNCivjg4/jg6Tjg58s44Kr44OE44OS44KzDQor44OO44Og44OpLOODnuOCteOCq+OCug0KK+ODkuODqeOCpCzjg6jjgrfjg6bjgq0NCivjgrfjg57jg4As44Oe44K144KoDQor44K544K644KtLOODiuOCquODiOOCtw0KK+ODhuODqeOCt+ODnizjgq3jg5/jg5LjgrMNCivjgrfjgrrjg4/jg6ks44Os44Kk44KzDQor44Ok44Oe44OI44OkLOOCq+OCuuODkuOCsw0KK+OCquOCruODjizjg5Ljg63jgqoNCivjg57jg4TjgrDjg54s44K344Ky44ObDQor44Kt44K/44KkLOODiOOCt+ODkuOCsw0KK+OCouOCq+ODgCzjgrfjgrrjgqoNCivjgr/jgrHjg6jjgrcs44K744Kk44OO44K544KxDQor44OS44Ot44OOLOOCveOCquOCuOODow0KK+OCt+ODnuODoOODqSzjg4jjg57jgrUNCivjg6rjg6XjgqbjgrQs44K344Ol44Oz44Kk44OBDQor44Kv44OL44Ko44OALOODnuOCreOCqg0KK+OCquOCquODhOOCqyzjg5vjgrPjgq8NCivjgqTjgrHjgqzjg58s44OS44OH44OI44K3DQor44Kr44ON44Oe44OELOOCq+ODjeODkuODhw0KK+OCquOCquOCrOODr+ODqSzjg6jjgrfjg47jg5YNCivjgrnjgrrjgq0s44K/44Kr44K3DQor44OG44Op44OALOOCu+ODhOOCsw0KK+OCq+ODr+OCteOCrSzjg4bjg4TjgrgNCivjgqrjgrfjg6Tjg54s44Oo44K344OS44K1DQor44Kr44Ov44Kr44OfLOOCt+OCsuOCrQ0KK+ODiuOCq+ODoOODqSzjg4jjgrfjgqLjgq0NCivjg5/jgr/jg4ss44OI44K344OS44KzDQor44Kz44Oe44OELOODkuODreOCv+OCqw0KK+OCouOCq+OCpOODryzjg4jjgrfjg5LjgrMNCivjgqTjg4HjgqQs44OV44Of44OkDQor44OV44Kv44Ok44OeLOODnuOCteOCouOCrQ0KK+OCr+ODieOCpizjg6jjgrfjg4bjg6sNCivjg57jg4Tjgrfjgr8s44K344Oz44K4DQor44OL44K344Kr44OvLOODpuOCreODkuODrQ0KK+OCouODnuOCrOODnyzjgrfjg7MNCivjg6Tjgrfjgq0s44Ki44Kk44Kk44OB44Ot44KmDQor44Ov44OALOOCouODhOOCsw0KK+ODnuOCueODgCzjg4jjg6LjgrMNCivjg6jjgrfjg6Djg6ks44Om44Km44K4DQor44Kq44OALOOCt+ODs+OCuA0KK+ODqOOCs+ODpOODnizjgr/jgqvjg5Xjg58NCivjgqTjg4jjgqQs44Om44Oq44KzDQor44K544K644KtLOOCq+ODhOODkuODrQ0KK+ODiuOCrOODj+ODnizjg5Ljg63jg6bjgq0NCivjg6Tjgrbjgq0s44OG44Kk44K+44KmDQor44Ok44K444OeLOOCreODqOOCtw0KK+ODoOOCq+OCqOODgCzjgrXjg4jjg6sNCivjg4rjgqvjg6Djg6ks44K/44OE44Ki44KtDQor44Ok44Oe44Og44OpLOOCs+OCpuOCpOODgQ0KK+ODjuODouODiCzjg4jjgrfjg6bjgq0NCivjg6Tjg57jgrbjgq0s44OI44K344OS44KzDQor44K144OI44KmLOODiOOCt+ODpA0KK+OCpOODjuOCpuOCqCzjg5Ljg63jg6bjgq0NCivjgqrjgqvjg44s44OS44OH44KqDQor44OK44Kr44OL44K3LOODj+ODq+ODkuOCtQ0KK+OCpuOCqOODgCzjg5Ljg63jg58NCivjgqLjgqTjgrbjg68s44Ki44Kt44KqDQor44Ki44Op44KkLOODiOODouODiuODqg0KK+ODiuOCrOOCpOOCtyzjgqvjg4Tjg58NCivjg4/jgrPjgqQs44Oe44K144KqDQor44Kv44K544Oi44OILOOCv+OCq+ODqOOCtw0KK+OCouODquODiOODnyzjgrjjg4Tjg63jgqYNCivjg4/jg6ks44K/44Of44KqDQor44Ob44Oz44OeLOODnuOCteODj+ODqw0KK+ODj+OCt+ODouODiCzjg5/jg4Hjg4/jg6sNCivjg4/jgrfjg6Ljg4gs44Oe44K144KqDQor44Kq44Kq44OM44OeLOOCpOOCteOCqg0KK+ODj+ODiuOCrSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg4/jgrfjg6Ljg4gs44Ki44Kt44KzDQor44K144Kv44Op44K244OvLOODkuODh+ODiOOCtw0KK+OCouOCq+OCrizjg6Tjgrnjg5Ljg4gNCivjgqLjgq3jgrrjgq0s44Oe44K144OI44K3DQor44Ki44Oz44OJ44KmLOODkuODreOCrQ0KK+OCouODqeOCpCzjgr/jg57jgqoNCivjgqLjgrXjg6Djg6ks44Kr44OE44OfDQor44OB44OQLOOCouOCsw0KK+OCqOOCsOODgSzjg6bjgq3jgr/jgqsNCivjg5Xjg4Hjg44s44OI44Kq44OrDQor44OV44K444Oe44OrLOODkuOCteODiA0KK+ODleOCuOOCteODryzjg47jg6rjgqoNCivjg5Xjgqvjg4As44OV44Of44OS44OtDQor44OV44Kv44KkLOODkuODreOCtw0KK+ODleOCr+ODiOODnyzjg6rjg6XjgqbjgrXjgq8NCivjgq7jg54s44Kr44K644Oo44K3DQor44OP44Ku44Ov44OpLOOCpOODgeODreOCpg0KK+ODj+ODqSzjgq3jg6jjgr/jgqsNCivjg4/jg6vjg4os44K/44Kr44Ki44KtDQor44OP44OE44OfLOOCouOCuuOCtQ0KK+ODj+ODpOOCuyzjgrfjg7PjgrQNCivjg4/jg6Tjg4Qs44OS44Ot44K3DQor44OS44Op44Kq44KrLOODnuODpuODnw0KK+ODkuODreOCtyzjg47jg5bjgrMNCivjg5vjgrfjgrMs44Oe44K144OS44OtDQor44Kk44OB44Kr44OvLOODnuOCteODqw0KK+OCpOOCrOODryzjgq3jg6jjgrcNCivjgqTjgqTjgrrjgqss44Ki44Oq44K1DQor44Of44OE44Oi44OILOODkuODreOCv+OCqw0KK+OCpOODnuODoOODqSzjg5Ljg63jg6bjgq0NCivjgqTjg4rjg58s44OS44Ot44Of44OBDQor44Kk44OO44Km44KoLOOCv+OCseOCtw0KK+OCpOOCuyzjg6bjgq3jgqoNCivjgrnjgq7jg4/jg6ks44OS44Ot44K/44KrDQor44Kk44K344Oi44OILOOCseODs+OCuA0KK+OCpOOCt+OCuuOCqyzjg4jjgqrjg6sNCivjgqTjg4jjgqYs44Oo44Km44K4DQor44Kr44Of44Kr44OvLOOCv+ODgOODn+ODhA0KK+OCpOODr+OCteOCrSzjgrHjgqTjgrMNCivjgqTjgrrjg58s44Of44OvDQor44Kr44Oe44OALOOCv+OCq+ODkuODrQ0KK+OCv+OCseOCpuODgSzjg5/jgq0NCivjg47jg6Djg6ks44Ko44Of44KzDQor44Kr44K/44OOLOODhuODq+ODkuOCtQ0KK+OCq+ODiOOCpizjgr/jgqvjgrcNCivjgqvjg6/jg4As44OS44Ot44Om44KtDQor44Kk44K344KkLOODpOOCueOCrQ0KK+OCq+ODr+OCt+ODnizjgqjjgqTjgrMNCivjgq3jgq/jgqvjg68s44Om44Kr44OqDQor44Kt44K3LOOCv+OCr+OCtw0KK+OCs+ODkOODpOOCtyzjg4bjg4Tjg6QNCivjgrPjg5Djg6Tjgrcs44Kr44K644OS44KzDQor44Kz44Ok44OeLOOCouOCreODqQ0KK+OCs+OCr+ODnCzjg6jjgqbjgrMNCivjgrPjg7Pjg4ks44Of44KoDQor44Kz44K344KqLOODnuOCteODiOOCtw0KK+OCr+ODnCzjg4Tjg4jjg6ANCivjg5vjgrfjg44s44OI44K344OkDQor44Kv44K144Kr44OvLOOCseOCpOOCpOODgQ0KK+OCr+OCueODnyzjg6bjgr/jgqsNCivjg57jgq3jg44s44OB44OS44OtDQor44Oe44Or44Ok44OeLOODnuOCs+ODiA0KK+ODiuOCq+ODoOODqSzjg4Hjg4jjgrsNCivjg57jg4Tjg6Ljg4gs44Ki44OE44K3DQor44Oh44K244OvLOODkuODiOOCtw0KK+ODn+ODjSzjg57jgrXjg6TjgrkNCivjg5/jg4gs44OO44OW44KqDQor44Of44Ok44Oi44OILOOCt+OCsuODqw0KK+ODn+ODpOOCtuODryzjgqvjg4Tjg58NCivjg5/jgrrjgr8s44Kx44Oz44K4DQor44Oi44OqLOODj+OCuuOCrQ0KK+ODouODquODouODiCzjg57jg4rjg5YNCivjg6Ljg63jgqrjgqss44Of44OE44OS44OtDQor44Ki44Oz44OJ44KmLOOCpOODr+OCqg0KK+ODn+ODp+OCpuOCrCzjgr/jgqvjg6bjgq0NCivjg4rjgqzjgqos44Ki44Kt44OS44OtDQor44OK44Ks44K7LOOCueOCueODoA0KK+ODiuOCpOODiOOCpizjgrXjg4Djg5/jg4QNCivjg4rjgqvjgrjjg54s44OI44Kq44OrDQor44OK44Kr44Oe44OrLOODiOOCt+OCsw0KK+ODiuOCq+ODoOODqSzjg6rjg6XjgqbjgqTjg4ENCivjg4rjgqvjg4vjgrcs44OS44OH44OIDQor44OK44Kr44OOLOODhOOCq+OCtQ0KK+OCt+ODiuODgCzjgqLjgq3jg6kNCivjg4rjg6rjgr8s44K/44Kv44K4DQor44OL44Kk44Ok44OeLOODkuODreOCtw0KK+ODi+OCt+OCq+ODryzjgqLjgq3jg6kNCivjg4vjgrfjgrrjgqss44OI44K344OkDQor44OS44OOLOOCq+OCuuODpuOCrQ0KK+ODj+OCu+OCrOODryzjg5/jg4TjgqLjgq0NCivjgqrjgqzjgr8s44OS44OI44K3DQor44Og44K144K3LOODn+ODhOODqw0KK+OCquOCquOCr+ODnCzjg4/jg6vjgrcNCivjgqrjgqrjgrXjg68s44OS44OH44KtDQor44Kq44Kq44K/LOOCt+ODs+OCuA0KK+OCquOCquODr+ODgCzjg5Ljg63jg47jg6oNCivjgqrjgqvjg4As44K/44Kr44Oo44K3DQor44Kq44Kr44Oi44OILOODkuODreOCtw0KK+OCquOCreODouODiCzjg57jgrXjg5LjgrMNCivjgqrjg4vjg4Tjgqss44Oe44K144Ki44KtDQor44Kq44K144KtLOOCv+OCq+OCtw0KK+OCteOCqOOCrSzjg6jjgrfjg5Ljg60NCivjgrXjgqvjgqQs44Oq44On44Km44K4DQor44K144Kr44KtLOOCreODp+OCpuOCsw0KK+OCteOCq+OCpuOCqCzjgr/jgqvjg6bjgq0NCivjgrXjg44s44OI44K344OV44OfDQor44K144OI44KmLOODpOOCueOCtw0KK+OCteODiOOCpizjgrXjg4jjgrcNCivjgrXjg6/jgqQs44Of44OB44OS44OtDQor44K744Kt44OP44OpLOOCouOCreODqQ0KK+OCu+OCt+ODoizjgrfjg6XjgqbjgqTjg4ENCivjgrfjg5Djgr8s44OG44OE44Ot44KmDQor44Og44Op44K/LOODquODpeOCpuOCv+ODreOCpg0KK+OCt+ODn+OCuizjg4/jg6Tjg4jjgrcNCivjgrfjg6LjgqrjgrUs44K/44Kx44K3DQor44K344OO44OALOODj+ODhOOCqA0KK+OCt+ODqeOCpCzjgqvjgrrjg5LjgrMNCivjgrnjg4njgqYs44Oi44OI44Om44KtDQor44K544Ku44K344OeLOODnuOCteODqw0KK+OCueODpOODnizjg4jjg6Ljg47jg6oNCivjgrnjgrrjgq0s44Om44K/44KrDQor44K344Ol44Kv44OkLOOCuOODpeODs+OCpOODgQ0KK+OCv+OCsOODgSzjg4rjgqrjg6bjgq0NCivjg5/jg6Tjg6Ljg4gs44K/44Kr44K3DQor44K/44Kr44OP44K3LOOCseODs+ODquODpeOCpg0KK+OCv+OCq+ODj+OCtyzjg6bjgq3jgqgNCivjgr/jgqvjg4/jgrcs44Kk44OB44Ot44KmDQor44K/44Kr44K7LOOCt+OCsuOCrQ0KK+ODn+OCq+ODnyzjgrHjgqTjgrnjgrENCivjgr/jgrHjg6Tjg54s44OI44K344Ki44KtDQor44K/44OK44OZLOODkuODreODpuOCrQ0KK+OCv+ODiuOCqyzjg5Ljg63jgrMNCivjgr/jg4rjgqss44OO44Oq44Ki44KtDQor44K/44OL44Kw44OBLOOCuOODpeODs+OCsw0KK+OCv+ODhuOCpOOCtyzjg4rjgqrjg6QNCivjg4bjg6vjgq3jg4os44Ki44Kt44OoDQor44OI44Of44Kq44KrLOODiuOCquOCrQ0KK+ODiOODqOODgCzjg57jgrXjg5LjgrMNCivjg4Tjg4Hjg6Qs44Oo44K344OS44OtDQor44OE44K4LOODkuODreOCtw0KK+ODhOODjuOCrOOCpCzjg6Tjgrnjg47jg6oNCivjgqbjg4Hjg4As44Oe44K144OV44OfDQor44Km44OALOOCseOCpOOCuA0KK+OCpuOCqOODj+ODqSzjgrfjg7PjgrgNCivjgqbjgqjjg44s44Om44Km44K4DQor44Km44Oh44OP44OpLOODnuOCs+ODiA0KK+OCpuOCueOCpCzjgrPjgqbjg5jjgqQNCivjg6/jg4As44Oo44K344Ki44KtDQor44Ov44K/44OK44OZLOOCteODiOOCtw0KK+ODpOODj+OCrizjg4rjgqrjg5Xjg58NCivjg6Tjg57jg4As44OI44K344KqDQor44Ok44Oe44Kw44OBLOODiOODouOCq+OCug0KK+ODpOODnuODouODiCzjgrHjg7Pjgrjjg63jgqYNCivjg6Tjg57jg6Ljg4gs44Oe44OK44OWDQor44Ok44Oe44K344K/LOODquODs+OCuOODpQ0KK+ODpOODnuOCtuOCrSzjg5Ljg4jjgrcNCivjg6Tjgrnjg4As44Oe44K144OfDQor44Oo44OJ44Ks44OvLOODjuODquOCqg0KK+ODqOODreOCuuODpCzjg4rjgqrjg5LjgrUNCivjg6jjgrfjg57jg4Qs44OB44OP44OrDQor44Ko44OA44OS44OtLOODn+ODieODqg0KK+OCs+OCuOODnizjg6Tjgrnjg5LjgrUNCivjgqrjgqzjg68s44Oh44Kw44OfDQor44K/44Kr44K7LOODnuODn+OCsw0KK+ODleOCr+OCvyzjgqvjgrrjg58NCivjgr/jgrDjg4Es44OS44Ot44OgDQor44Ki44K144OOLOODiOOCt+ODkuOCsw0KK+ODleOCuOOCpCzjgrHjg7PjgrgNCivjg5Xjgrjjg6/jg6ks44Kz44Km44K4DQor44K044OI44KmLOODkuODreOCq+OCug0KK+ODj+ODpOOCtyzjg4jjgrfjgqLjgq0NCivjg5Ljg6njgqQs44OS44Ot44K/44KrDQor44Kk44OB44KkLOOCt+OCsuODpuOCrQ0KK+OCpOOCseODgCzjgqTjgq/jgrjjg63jgqYNCivjgqTjgrfjg57jg6ss44Of44OvDQor44Kk44OI44KmLOODhuODhOODpA0KK+OCq+OCsuODpOODnizjg4Tjg6jjgrcNCivjgqvjgrXjg54s44OO44Oq44Oe44K1DQor44Kr44OI44KmLOOCs+OCpuOCvw0KK+OCreOCr+ODgSzjg4jjg6LjgqLjgq0NCivjgq3jgr/jgqzjg68s44Of44OB44OP44OrDQor44Kz44OQ44Ok44K3LOOCs+OCpuOCv+ODreOCpg0KK+OCs+ODs+ODiSzjg47jg6rjgrMNCivjgq/jg4njgqYs44OP44Ok44OIDQor44Kv44K144OV44KrLOOCt+ODjuODlg0KK+ODnuODhOODgOOCpOODqSzjg57jgq0NCivjg5/jgq/jg4ss44Ok44K544K3DQor44Of44Ok44OBLOOCv+OCq+ODleODnw0KK+ODn+ODpOOCtuODryzjg5Ljg63jgq0NCivjg6Ljg6rjgr8s44Kv44Or44OfDQor44Og44Ot44K+44OOLOODkuODreOCouOCrQ0KK+ODiuOCq+ODn+ODgSzjgrfjg6fjgqYNCivjg4vjgrfjg6Djg6ks44K344Oz44OkDQor44Kq44Ks44OvLOOCv+OCq+OCtw0KK+OCquOCquOCqCzjg57jgrXjg5/jg4ENCivjgqrjgqrjgr8s44K/44Kr44K3DQor44Kq44Kr44Ok44OeLOODn+ODhOODqOODqg0KK+OCteOCpOODiOOCpizjgr/jgqvjg47jg5YNCivjgrXjg44s44K/44Kv44OkDQor44K144OI44KmLOOCv+OCq+OCtw0KK+OCt+OCpCzjg5/jgrXjgrMNCivjgrfjg7Pjgq3jg6XjgqYs44Oe44K144Om44KtDQor44K544Ku44Ok44OeLOOCreODqOOCv+OCqw0KK+OCv+OCq+OCrizjg6jjgrfjgqoNCivjgr/jgrHjgqbjg4Es44Kr44Ob44OrDQor44K/44OK44KrLOODjuODluOCsw0KK+OCv+ODq+OCteODryzjgqLjgq3jgrMNCivjg4jjg6Ljg44s44Kr44K644OfDQor44Ov44K/44OK44OZLOODnuOCteODiOOCtw0KK+ODpOODnuODouODiCzjg5Ljg4fjg4gNCivjg6Tjg57jgrbjgq0s44OV44Of44OODQor44Oo44ON44Of44OELOODnuOCs+ODiA0KK+ODpuODqizjg4jjg6LjgqoNCivjg57jg4TjgrDjg54s44OV44Of44KzDQor44Ki44K444OeLOODpOOCueOCouOCrQ0KK+OCouODnuODjizjg4HjgqLjgq0NCivjgqLjgqrjgq0s44Oo44K344KzDQor44Ki44Kq44KtLOODiuOCquODkuOCtQ0KK+OCouODqeOCrSzjgqvjg4TjgrgNCivjgqLjgrXjgq/jg6ks44K/44OE44KqDQor44Ki44K644OeLOODquOCqA0KK+OCteOCv+OCsSzjgrHjgqTjgrMNCivjg4DjgqTjgqos44OS44OH44KtDQor44OK44Kr44Og44OpLOOCv+OCq+OCsw0KK+ODleOCuOOCpCzjgr/jg4Tjg47jg6oNCivjg5Xjgrjjgqrjgqss44OG44OE44Ot44KmDQor44OV44Kv44KkLOOCs+OCpuOCuA0KK+ODleODiuODgCzjg6bjgqbjgrMNCivjgrTjg4jjgqYs44Kr44Kk44OB44Ot44KmDQor44OP44Oe44OALOODqOOCt+ODnw0KK+OCteODiOOCpizjgrvjgqTjgrQNCivjg4/jg6rjg54s44OK44Kq44KtDQor44OP44K744Ks44OvLOOCouOCreODkuOCsw0KK+ODj+OCvyzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg4/jg4Pjg4jjg6os44Om44KtDQor44OP44Ok44OfLOOCueODn+ODkuODiA0KK+ODj+ODpOOCtyzjg57jgrXjg47jg6oNCivjg5Ljgqjjg4As44Of44OB44Kr44K6DQor44OS44Kq44KtLOODiOOCpuODoeOCpA0KK+ODm+ODgCzjg5Ljg63jgq0NCivjg5Ljg63jgrnjgqgs44K444Ol44Oz44KzDQor44OS44K344OALOODkuODreOCtw0KK+ODm+ODs+OCtOOCpizjg57jgrXjg4gNCivjg5vjg6rjgqgs44Ki44Kt44OO44OqDQor44Ob44K344OKLOOCs+OCpuOCpOODgQ0KK+OCpOODgeOCq+ODryzjg5Ljg4jjgrcNCivjgqTjgqzjgr8s44Ko44Kk44Kk44OB44Ot44KmDQor44Kk44Kk44K644KrLOODnuOCs+ODiA0KK+OCpOOCseODgCzjgr/jgqvjg6bjgq0NCivjg5vjgr3jgqQs44Kx44Oz44K/44Ot44KmDQor44Kk44OOLOOCuOODpeODsw0KK+OCpOODjuOCpuOCqCzjg5Xjg5/jg47jg6oNCivjgqrjgqrjg6Ljg6os44Kx44Oz44Kk44OB44OtDQor44Kk44K344KkLOOCseOCpOOCuOODreOCpg0KK+OCpOOCt+OCpCzjg6TjgrnjgrcNCivjgqTjgrfjg4Tjgqss44OI44K344Om44KtDQor44Kk44K944Ks44KkLOODpuOCpuOCsw0KK+OCpOODiOOCpizjgrXjg4jjgrcNCivjgqTjg6/jg4/jgrcs44Om44Km44KzDQor44Kk44Ov44K144KtLOODkuODreODpuOCrQ0KK+OCq+OCrOODlizjgrfjg7Pjgrjjg63jgqYNCivjgqvjg57jg5vjg6os44OI44Oi44OS44KzDQor44Kr44Of44OkLOODjuODluODpuOCrQ0KK+OCq+ODiuOCpCzjg47jg6rjgrMNCivjgqvjg7Pjg4As44OB44KoDQor44Kr44OO44KmLOOCv+OCseOCtw0KK+OCv+ODnuOCv+ODiyzjgrfjg54NCivjgqvjg4jjgqYs44OS44Ot44KtDQor44Kr44OI44KmLOOCuOODpeODs+OCsw0KK+OCq+ODr+OCsOODgSzjgrPjgqbjgrgNCivjgqvjg6/jg6Djg6ks44K344Ol44Km44K4DQor44Kr44Ov44K344OeLOODjuODluOCsw0KK+OCreOCr+ODgSzjgqTjg4Hjg63jgqYNCivjgq3jg6Djg6ks44K/44Kr44OS44K1DQor44Kt44K3LOODiuOCquOCrQ0KK+OCreOCv+OCrOODryzjg4rjgqrjg58NCivjgq3jg6jjg4/jg6ks44OE44OI44OgDQor44Kz44OQ44Ok44K3LOOCseODs+OCuA0KK+OCs+ODgOODnizjg6Tjgrnjg5Ljg60NCivjgrPjgqTjg68s44OI44Oi44Om44KtDQor44Kz44K444OeLOOCteODiOOCtw0KK+OCs+ODs+ODiSzjgrHjg7PjgqTjg4ENCivjgq/jg5ws44OK44Kq44KtDQor44Kv44Oe44Kv44OpLOOCseODs+OCpOODgQ0KK+ODkuODqeOCpCzjgrPjgqbjgrgNCivjgq/jg63jg4As44Ki44OE44K3DQor44Kv44Ot44K144OvLOOCqOOCpOOCuOODreOCpg0KK+ODnuOCqOODgCzjgrXjg4jjgrcNCivjgrfjg5bjgr/jg4ss44Kz44Km44K4DQor44Oe44K544OALOODpuOCpuOCsw0KK+ODj+ODqSzjgrHjg7PjgrgNCivjg57jg4TjgqQs44K344Oz44K4DQor44Oe44OE44Oi44OILOODkuODreOCtw0KK+ODnuODhOODiuODnyzjg6jjgrfjgrMNCivjg57jg4Tjgqrjgqss44K344Oz44K0DQor44Oe44OE44Ok44OeLOOCouOCreODqQ0KK+ODn+OCq+ODnyzjg5Ljg4fjgqoNCivjg5/jg4rjg58s44Ki44Kt44OpDQor44Of44K/44Og44OpLOODnuOCteODiOOCtw0KK+ODn+ODhOODnizjgqvjgrrjg5Ljg4gNCivjg5/jg6Tjgrfjgr8s44OS44Ot44Om44KtDQor44OP44K344Kw44OBLOOCt+OCsuOCrQ0KK+ODn+OCuuODjizjg4jjgrfjg6bjgq0NCivjg6Ljg6os44Oe44K144K3DQor44Oi44OqLOODkuODreOCq+OCug0KK+ODouODquODpCzjg6Djg4TjgqoNCivjg6Djg43jgqvjgr8s44Kr44K644Oo44K3DQor44Og44Op44K/LOODpuOCreODouODiA0KK+ODn+ODp+OCpuOCuOODsyzjg5/jg4HjgqoNCivjg4rjgqzjgrfjg54s44Oo44K344Kr44K6DQor44OK44Kk44OI44KmLOODnuOCteOCrQ0KK+ODiuOCq+OCuOODnizjg4bjg6vjg58NCivjg4rjgqvjg6Ljg4gs44OS44Ot44Kr44K6DQor44OK44Kr44Og44OpLOODpuOCpuOCuA0KK+ODiuOCq+ODoOODqSzjgrHjg7Pjgr8NCivjg4rjgqvjg6Qs44Ov44K/44OrDQor44OK44OzLOOCseOCpOOCueOCsQ0KK+ODiuODiOODqizjgrHjg7Pjg6QNCivjg4vjgqTjgrbjg68s44Oo44K344OO44OqDQor44OL44K344OALOODpOOCueOCqg0KK+ODi+OCt+ODiizjgq3jg6jjgrcNCivjg4vjgrfjgrbjg68s44Oo44K344OS44OtDQor44OO44Ks44OvLOODkuODreODpA0KK+ODjuODoOODqSzjg57jgrXjg5Ljg60NCivjgqrjgqzjgrXjg6/jg6ks44Kr44K644OG44OrDQor44Kq44Ks44OvLOODpOOCueODjuODqg0KK+OCquODj+OCtyzjgrXjg4jjgrcNCivjgqrjgqrjg44s44OS44Ot44Ok44K5DQor44Kq44K344OeLOODhOODiOODoA0KK+OCquOCquOCv+OCrSzjg5Xjg4jjgrcNCivjgqrjgqrjg4Tjgqss44Ko44Kk44KtDQor44Kq44Kq44OkLOODoOODjeOCqg0KK+OCquOCq+ODgCzjg5Ljg63jg6bjgq0NCivjgqrjgqvjgrbjgq0s44Kz44Km44K/44Ot44KmDQor44Kq44Kq44OfLOOCouODpOOCsw0KK+OCquODjuODh+ODqSzjg57jgrXjg5LjgrMNCivjgqrjg44s44K/44Kr44Ki44KtDQor44Kq44K244KtLOODqOOCt+ODnuOCtQ0KK+OCteOCpOODgCzjg6Ljg6LjgrMNCivjgrXjgqvjgrDjg4Es44Kz44Km44K4DQor44K144Kr44KkLOODiuOCquOCrQ0KK+OCteOCsyzjgqLjgqvjgrcNCivjgrXjg7Pjg5ks44Oe44Kz44OIDQor44K144K144KtLOODpuOCv+OCqw0KK+OCteOCv+OCsSzjg4jjgrfjgq0NCivjgrXjg4jjgqYs44Om44Kt44K/44KrDQor44OS44Op44OOLOODkuODreOCouOCrQ0KK+OCteODr+ODoOODqSzjg5Ljg63jgrcNCivjgrvjgq3jg40s44Kr44K644Ki44KtDQor44K344OQ44OP44OpLOOCq+OCuuODjg0KK+OCt+ODkOOCtuOCrSzjg57jgrXjgrMNCivjgrfjg54s44Kz44K544KxDQor44K344Of44K6LOOCseOCpOOCueOCsQ0KK+OCt+ODouOCq+ODr+ODmSzjgqLjgq3jg5Ljg60NCivjgrfjg47jgrbjgq0s44OS44Ot44K3DQor44K344Op44OP44OeLOODn+ODgeODkuOCtQ0KK+OCt+ODp+OCpuODiuOCtCzjgr/jgqvjgrfjgrINCivjgrnjg4As44Oh44Kk44K444Ot44KmDQor44K544Ku44Oi44OILOODn+OCqw0KK+OCueOCruOCvyzjgr/jgqvjg6bjgq0NCivjgrnjg5/jg4As44Ki44OE44K3DQor44K544K644KtLOODnuOCteODleODnw0KK+OCueOCuuOCrSzjgrfjgrLjg6sNCivjgrnjgrrjg44s44Kr44OE44OV44OfDQor44K/44Kw44OBLOODn+ODpuOCrQ0KK+OCv+OCq+OCrizjg4jjgrfjgqvjgroNCivjgr/jgqvjg4/jgrcs44OS44Ot44Of44OBDQor44K/44Kr44OP44K3LOODkuODh+ODjuODqg0KK+OCv+OCq+ODj+OCtyzjgrHjg7PjgqTjg4ENCivjgr/jgqvjg44s44Of44Kt44KzDQor44K/44Kr44K344OeLOOCv+ODgOOCtw0KK+OCv+OCseODgCzjgqTjgrrjg58NCivjgr/jgrHjg4rjgqss44Kx44Oz44Kk44OBDQor44K/44Kx44Ok44K5LOODrOOCpOOCuA0KK+OCv+ODoOODqSzjg5Ljg63jg6bjgq0NCivjgr/jg4rjgqss44Kz44Km44Kk44OBDQor44K/44OK44KrLOOCv+OCq+ODqOOCtw0KK+OCv+ODiuOCqyzjg4jjgqrjg6sNCivjgr/jg4vjgrDjg4Es44Kr44OE44OS44KzDQor44OG44Op44Oe44KoLOOCu+OCpOOCpOODgeODreOCpg0KK+ODiOOCreODryzjg4HjgqjjgrMNCivjg4jjg6rjgrTjgqgs44K144OA44Om44KtDQor44OE44OB44K/44OLLOODkuODh+OCrQ0KK+ODhOOCuOODoOODqSzjgr/jgqvjgrcNCivjg4Tjgqvjg6Ljg4gs44Kx44Oz44K/44Ot44KmDQor44OE44OE44OfLOODnuOCteODjuODqg0KK+OCpuODgeODjizjgrXjg4jjgrcNCivjg43jgros44OI44K344Ki44KtDQor44Km44Ko44OE44OcLOODqOOCt+OCv+OCqw0KK+OCpuOCquOCuuODnyzjgrXjg7Pjg5rjgqQNCivjg6/jg4As44Of44OE44OO44OqDQor44Ov44K/44OK44OZLOODqOOCt+OCrQ0KK+ODpOODlizjgrPjgqbjgrgNCivjg6Tjg57jg4As44Om44Km44KzDQor44OS44K144OOLOODquOCqw0KK+ODpOODnuOCsOODgSzjg47jg6rjg6bjgq0NCivjg6Tjg57jgqvjg68s44Om44Kt44KzDQor44Ok44Oe44Oi44OILOODiuOCquODiA0KK+ODpOODnuODouODiCzjgrfjg7PjgqTjg4ENCivjg6Tjg57jgqbjg4Es44K344Oz44Kk44OB44Ot44KmDQor44Ok44Oe44K244KtLOOCv+OCq+OCqg0KK+ODj+OCruODr+ODqSzjg5/jgq3jgqoNCivjg6jjg43jgrbjg68s44Ko44OqDQor44Oo44K344OALOOCteODgeOCsw0KK+ODqOOCt+ODnuODhCzjgrHjg7Pjgr/jg63jgqYNCivjgrrjgrcs44Om44Kt44KqDQor44Kk44Ov44Kr44OvLOOCveOCpuOCv+ODreOCpg0KK+OCpOOCt+ODnuODhCzjg5Ljg63jg6TjgrkNCivjgqLjg5ks44Ko44Kk44Kk44OBDQor44Ki44Kr44Kk44K3LOOCqOOCpOODgQ0KK+OCouODnuOCrOOCvyzjgr/jgqvjgrcNCivjgqLjg7PjgrbjgqQs44Oe44K144OS44OHDQor44Ki44Op44KtLOODiOOCt+ODn+ODhA0KK+OCouOCt+ODgCzjgrXjg4jjgrcNCivjg4Hjg6fjgqYs44Ko44Kk44K4DQor44OJ44KkLOOCseODs+OCpOODgQ0KK+OCqOODjuODouODiCzjgq3jg6jjg58NCivjg5XjgrjjgqQs44K144OE44KtDQor44OV44K444K/LOOCv+OCq+OCtw0KK+ODleOCr+ODoOODrSzjgr/jgqvjgrcNCivjg5Xjg4rjgq0s44OK44Kq44KtDQor44OV44Or44OkLOODiOODouODpA0KK+OCpOODr+OCteOCrSzjgrXjgqjjgrMNCivjgqTjg4jjgqYs44K344Ot44KmDQor44OP44OALOODkuODh+OCouOCrQ0KK+ODj+ODiuODiSzjg5/jg47jg6sNCivjg4/jg6njg4As44K/44Kx44K3DQor44OP44Op44K+44OOLOODjuODluODkuODrQ0KK+ODj+OCt+ODouODiCzjgrXjg4jjgrcNCivjg4/jg4Pjg4jjg6os44Oe44Kz44OIDQor44OP44Ok44K3LOOCv+OCq+ODqOOCtw0KK+ODkuOCrOOCtyzjgqvjgrrjgqoNCivjg5Ljg6njg44s44OS44Ot44KzDQor44OS44Oq44KtLOOCseODs+OCpOODgeODrQ0KK+ODm+ODs+ODgCzjgrXjg4rjgqgNCivjg5vjgrfjg6Tjg54s44Of44Ku44OV44OfDQor44Kk44OB44OP44OpLOOCv+OCq+OCtw0KK+OCpOOCrOODqeOCtyzjgqvjg4Tjg47jg5YNCivjgqTjgrHjg4As44Oq44On44KmDQor44Kk44Oe44Og44OpLOOCquOCteODoA0KK+OCpOODiuODoOODqSzjg4jjg6Ljg47jg6oNCivjgqTjg47jgqbjgqgs44Ok44K544OS44OtDQor44Kk44K144KrLOOCt+OCsuODqw0KK+OCpOOCt+ODgCzjgrHjgqTjgqTjg4ENCivjgqTjgrfjgqQs44OO44Oc44OrDQor44Kk44K344K644KrLOODpuOCreOCqg0KK+OCpOODiOOCpizjgrfjg6fjgqbjgrMNCivjgqTjg4jjgqYs44Oe44K144OfDQor44Kk44OI44KmLOOCqOOCpOOCuA0KK+OCpOODr+ODiuOCrCzjg4rjgqrjgrMNCivjgrjjg7Pjg5As44OE44ON44OO44OqDQor44Kr44K444Oi44OILOOCv+OCr+ODpA0KK+OCq+OCsyzjg4jjgrfjg5LjgrMNCivjgqvjg7Ms44K/44Kv44OkDQor44Kr44OO44KmLOODnuODpuODnw0KK+OCq+OCueODpCzjg57jgrXjg4rjg6oNCivjgqvjg4jjgqYs44Kx44Oz44K4DQor44Kr44Ov44OZLOODqOOCt+ODpuOCrQ0KK+OCq+ODr+OCq+ODnyzjgrHjg7PjgqTjg4ENCivjgqvjg6/jg44s44Oe44K144OS44KzDQor44Kr44Ov44K344OeLOODpOOCueODjuODlg0KK+OCreOCr+ODgSzjg57jg6Ljg6sNCivjgq3jg6Djg6ks44Ki44OE44K3DQor44Kt44OOLOOCouOCrQ0KK+OCreOCv+OCrOODryzjgqrjgrXjg6ANCivjgrPjg5Djg6Tjgrcs44OI44K344OS44OtDQor44Kk44OI44KmLOOCt+ODs+OCuA0KK+OCs+OCr+OCt+ODp+OCpizjg57jgrXjg6sNCivjgrPjg7Pjg4ks44Oe44K144Om44KtDQor44Kz44Ok44OeLOODkuODreOCv+OCqw0KK+OCr+ODrOODnuODhCzjgr/jgqvjg5Ljg4cNCivjgq/jg6rjg6XjgqYs44Oo44K344KoDQor44Oe44OB44K/LOODnuOCteOCrQ0KK+ODnuODq+OCpOODgSzjg57jgrXjg6bjgq0NCivjg57jgrnjg4As44Om44Kt44KzDQor44Oe44OE44KkLOODkuODh+OCtw0KK+ODnuODhOODouODiCzjg6jjgrfjgq0NCivjg4rjgqvjg6Djg6ks44OS44Ot44Om44KtDQor44Oe44OE44Kq44KrLOOCv+OCseOCtw0KK+ODnuODhOODpOODnizjgrPjgqbjgr/jg63jgqYNCivjg5/jgrfjg54s44Kr44K644OfDQor44Of44OE44Oi44OILOOCreODqOODnw0KK+ODn+ODpOODouODiCzjg4jjgrfjgqLjgq0NCivjgqbjg4Hjg6Tjg54s44Of44Kt44KzDQor44Of44K644OOLOODnuOCteODqOOCtw0KK+ODouOCrizjg6Ljg6bjg6sNCivjg6Ljg6os44Oe44K144OS44OtDQor44Oi44Oq44K/LOOCq+OCuuODkuOCtQ0KK+ODouODiOODkOODpOOCtyzjgrXjg4jjg6sNCivjg6Djg6njgqvjg58s44OS44Ot44Ki44KtDQor44Og44Op44K/LOODiOODouODjuODqg0KK+ODiuODkCzjg5Ljg63jg6bjgq0NCivjg4rjgqzjgqrjgrEs44K144OI44K3DQor44OK44Ks44K/LOOCt+ODp+OCpuODmOOCpA0KK+ODiuOCq+OCrOODryzjg6jjgrfjg6bjgq0NCivjg4rjgqvjgrjjg54s44K/44Kr44K3DQor44OK44Kr44Og44OpLOOCv+ODhOODpA0KK+ODiuOCq+ODi+OCtyzjgqTjgrrjg6sNCivjg4rjgqvjgqos44Ki44Kt44KzDQor44OK44Kr44Ok44OeLOODleODn+OCqg0KK+ODjeODouODiCzjg5/jg4TjgqLjgq0NCivjg4vjgrfjg4As44Oo44K344OkDQor44OL44K344Og44OpLOOCreODr+ODoA0KK+ODjuODluODj+ODqSzjgrPjgqbjgrgNCivjg47jgr7jgqgs44OP44K444OhDQor44Kq44Kq44KuLOOCv+OCseOCtw0KK+OCquOCquOCqCzjg6jjgqbjgqTjg4ENCivjgqrjgqrjgq/jg5ws44OS44Ot44OV44OfDQor44Kq44Kq44Oi44OqLOODiuOCquOCrQ0KK+OCquODjizjgqLjgq3jg6kNCivjgqrjgqrjgr8s44Ki44K144KzDQor44Kq44Kq44K/44OLLOODpOOCueODkuODrQ0KK+OCquOCqyzjg5Xjg5/jgrMNCivjgqrjgqvjg57jg4Qs44K/44Kr44OS44OtDQor44Kq44Kr44Oi44OILOODjuODquOCqg0KK+OCquOCquODjizjg4rjgqrjgq0NCivjg4jjgq/jg5/jg6Qs44OG44OE44OkDQor44K144Kk44OI44KmLOODpuOCv+OCqw0KK+OCteOCq+OCreODkOODqSzjgr/jgqvjgqoNCivjg5/jgr/jg4ss44Kx44Oz44Kk44OBDQor44K144OOLOOCt+ODpeOCpuOCvuOCpg0KK+OCteOCteOCrSzjgrvjgqTjgrgNCivjgrXjg4jjgqYs44K/44Kr44Kr44K6DQor44K144OI44KmLOODjuODnOODqw0KK+OCteODiOOCpizjg4jjg6Ljgq0NCivjgrXjg6Tjg44s44Kk44Kv44OkDQor44K744Oz44OKLOODiOOCt+ODn+ODhA0KK+OCt+ODluOCv+ODiyzjgq3jg6fjgqbjgrMNCivjgrfjg57jg6Djg6ks44Oo44K344Of44OEDQor44K344OK44OALOOCq+ODhOODnw0KK+OCt+ODqeODj+ODnizjgr/jg63jgqYNCivjgrfjg6Xjg4jjgqYs44Om44Of44KzDQor44K544OALOODiuOCquODkuODrQ0KK+OCueOCruODpOODnizjg5Ljg4fjg57jgrUNCivjgrnjg5/jgqrjgqss44OI44Oi44OkDQor44K544K644KtLOODkuODh+ODkuODrQ0KK+OCv+ODkOOCsyzjgq/jg5/jgrMNCivjgr/jgqzjg68s44Oe44Kz44OIDQor44K/44Kr44OP44K3LOOCt+ODs+ODpA0KK+ODr+OCv+ODiuODmSzjg57jgq0NCivjgr/jgqvjgq/jg6ks44Kx44Oz44K544KxDQor44K/44Kr44Kq44KrLOOCtOOCpg0KK+OCv+OCseODj+ODiizjg57jgrXjgqvjg4QNCivjgr/jgrHjgqbjg4Es44K144OI44K3DQor44K/44OK44KrLOOCseODs+OCv+ODreOCpg0KK+OCv+ODiuOCqyzjgrvjgqTjgrgNCivjgr/jg4rjgqss44OO44Oq44OS44OtDQor44K/44OL44KkLOODpuODquOCsw0KK+OCv+OCt+ODrSzjgrHjg7PjgqTjg4ENCivjg4bjg6njg6Ljg4gs44Ko44Kk44K4DQor44OI44Kt44Kq44KrLOOCv+OCq+OCt+OCsg0KK+ODiOODn+OCq+ODryzjg47jg6rjgrMNCivjg4jjg6rjgqvjgqQs44OK44Kq44KtDQor44OE44OALOOCs+OCpuOCpOODgQ0KK+OCteOCq+OCpCzjg5/jg5vjgrMNCivjgqbjg4As44Ki44OE44KzDQor44Km44Ko44OOLOOCquOCteODoA0KK+OCpuODoeODj+ODqSzjg4jjgrfjgqoNCivjgqbjgrfjg5As44Of44OO44OrDQor44Ov44Kr44KqLOOCseOCpOOCuA0KK+ODr+OCv+ODmSzjg57jgrXjg4jjgrcNCivjg6/jgr/jg4rjg5ks44OA44Kk44OBDQor44OI44Of44Ok44K5LOODiOOCt+ODkuOCtQ0KK+ODpOODnuODgCzjg57jgq0NCivjg6Tjg57jgrPjgrcs44OA44Kk44K544KxDQor44Ok44Oe44Oi44OILOOCuOODpeODsw0KK+ODpOODnuOCt+OCvyzjg4rjgqrjgrMNCivjg6Tjg4rjgq4s44OI44K344Ki44KtDQor44Oo44Kz44K144OvLOOCv+OCr+ODpA0KK+ODqOOCs+ODpOODnizjgqvjgrrjg47jg5YNCivjg6jjgrfjg4As44OK44Kq44OIDQor44Oo44K344OfLOOCv+OCpOOCrQ0KK+ODqOOCt+OCtuODryzjg4jjgrfjgqvjg4QNCivjgqTjg54s44Oe44K144OS44OtDQor44Kv44OcLOODnuOCteODkuOCsw0KK+ODiuOCq+ODj+ODqSzjgr/jgq/jg6QNCivjgqrjgrDjg6ks44OI44Kq44OrDQor44K/44Kr44Oe44OELOOCseODs+OCpOODgQ0KK+OCpOODjuOCpuOCqCzjg6Djg43jg5Ljg60NCivjgqLjgqTjg5As44K144OI44K3DQor44Ki44Oe44OOLOODiuOCquOCsw0KK+OCouODquOCvyzjg5Ljg4fjgqLjgq0NCivjgqLjgr/jgrDjg4Es44OS44Ot44K3DQor44OA44OGLOOCt+OCsuODkuOCsw0KK+OCqOOCtuODryzjg4rjg6rjg5Ljg4cNCivjg5Xjgrjjg6Ljg4gs44Of44Kt44KqDQor44OV44Kv44OJ44OhLOOCv+OCq+OCtw0KK+ODleODq+OCq+ODryzjgqLjgrHjg58NCivjg4/jgq7jg6/jg6ks44Oq44Ol44Km44K/DQor44OP44OK44K/LOODkuODqeOCrw0KK+ODj+OCu+OCrOODryzjg6bjgr/jgqsNCivjgqvjgrjjg6/jg6ks44Oo44K344KzDQor44OP44OD44OI44OqLOOCv+OCq+ODpuOCrQ0KK+ODkuOCrOOCtyzjg6rjg6XjgqbjgrnjgrENCivjg5Ljg6njgqos44Oe44K144Om44KtDQor44OS44Ot44K7LOODn+ODhOODqw0KK+ODm+ODs+ODnizjgr/jgrHjgrcNCivjg5Xjgq/jg63jgqQs44Kx44Oz44K4DQor44Kk44OB44OO44K744KtLOODiOOCt+ODkuODrQ0KK+OCpOOCseODgCzjg6bjgr/jgqsNCivjgqTjg57jg6Djg6ks44Kx44Oz44K544KxDQor44Kk44OO44Km44KoLOOCq+OCuuOCqg0KK+OCpOOCt+ODgCzjgrPjgqbjgrgNCivjgqTjgrfjgqvjg68s44Ki44Kt44OpDQor44Kk44Ov44K144KtLOOCv+OCseOCtw0KK+OCq+OCpOOCuuOCqyzjg5Ljg63jgrMNCivjgqvjg5/jgqzjgq0s44OO44Oq44OS44OHDQor44Kr44ON44KzLOOCr+ODi+ODkuOCsw0KK+OCq+OCv+OCruODqizjg4rjgqrjg6bjgq0NCivjgqvjg4jjgqYs44Kx44Oz44K4DQor44Kr44Ov44Kr44OfLOOCs+OCpuOCuA0KK+OCq+ODhOOCrSzjgqLjgq3jg4jjg6INCivjgq3jg6Djg6ks44K144OI44OrDQor44Kt44OO44K344K/LOODpuOCq+ODqg0KK+OCreOCv+ODpOODnizjg4Hjg5Ljg60NCivjgqLjg6Hjgrfjgr8s44OK44Kq44KtDQor44Kz44OQ44Ok44K3LOOCv+OCq+ODkuODrQ0KK+OCs+OCrCzjg47jg6rjg6bjgq0NCivjgrPjgqTjgrEs44Ki44Kt44KqDQor44Kz44Oz44OJLOODiOODouODjuODqg0KK+OCr+ODnOOCrSzjgqTjgq/jgrMNCivjgq/jg6njgrfjg4os44Kr44OE44OS44OIDQor44Kv44Ot44KtLOODhOODqOOCtw0KK+ODnuOCqOODgCzjg6Tjgrnjg5Ljg60NCivjg57jgrXjg4As44OS44Ot44Om44KtDQor44Oe44OE44OALOODiuOCquODnw0KK+ODnuODhOODouODiCzjgrfjg6XjgqbjgqTjg4ENCivjg6Hjgqvjgr8s44OS44Ot44KtDQor44Of44Ok44Oi44OILOOCouOCreODkuODrQ0KK+ODouODqizjg6bjgqsNCivjg6Ljg6rjgr8s44Kr44K644Oo44K3DQor44Og44Op44Kr44OfLOODnuOCteOCouOCrQ0KK+ODoOOCvyzjg5LjgrXjgrcNCivjg4rjgqzjg6Tjg54s44OG44OE44OkDQor44OK44Kr44OP44OpLOOCv+OCq+OCsw0KK+ODiuOCq+ODoOODqSzjgqLjgq3jg47jg5YNCivjg4rjgqvjg6Djg6ks44Oe44OqDQor44OK44Kr44K/LOOCs+OCpuOCpOODgQ0KK+ODiuOCq+OCtuODryzjgrHjgqTjgrnjgrENCivjg4vjgrcs44Kr44ON44OO44OWDQor44OL44K344Ok44OeLOODn+ODiuOCsw0KK+ODjuODiCzjgrjjg6Xjg7PjgqTjg4ENCivjgqrjgqzjg68s44Oo44Km44K4DQor44Kq44Kq44OQLOODnuOCteODkuODhw0KK+OCquODoOODqSzjg57jg6YNCivjgqTjgrHjg57jg4Qs44K/44Kr44KzDQor44Kq44Kk44OALOODkuODiOOCtw0KK+OCquOCq+OCtuODryzjg5Ljg4jjgrcNCivjgqrjg44s44OK44Kq44OfDQor44K144Kk44OI44KmLOOCouOCreODkuOCtQ0KK+OCteOCq+OCpCzjg47jg5bjg6TjgrkNCivjgrXjgq/jgr8s44Oo44K344Ki44KtDQor44K144OI44KmLOODnuOCteODkuOCsw0KK+OCteODiOOCpizjgrPjgqbjgrgNCivjgrXjg6/jg4/jgrcs44K/44OE44Om44KtDQor44K344OQ44K/LOOCouODpOOCsw0KK+OCt+ODn+OCuizjgqvjg4Tjg6bjgq0NCivjgrfjgqrjg58s44K344Oz44K4DQor44K344K/44OpLOODkuOCteOCtw0KK+OCueOCruOCvyzjgqvjg4Tjg5LjgrMNCivjgrnjgrHjgqzjg68s44OO44OW44Oo44K3DQor44K544K644KtLOOCouOCreODkuODrQ0KK+OCt+ODp+OCpizjgrfjg6fjgqbjgr/jg63jgqYNCivjgr/jgqQs44Oe44K144OG44OrDQor44K/44Kr44KuLOODhuODhOODreOCpg0KK+OCv+OCq+ODj+OCtyzjg4jjgrfjgqoNCivjgr/jgqvjg6Tjg54s44OS44OH44OE44KwDQor44K/44Kx44K344K/LOOCt+ODp+OCpuOCvuOCpg0KK+OCv+OCsyzjg6jjgrfjgq0NCivjgr/jg4rjgqss44Kt44On44Km44OY44KkDQor44K/44OLLOOCq+OCuuODiuODqg0KK+OCv+OCuuOCsSzjgrvjgqTjgqTjg4ENCivjg4jjg6Ljg4jjgrcs44Kx44Oz44K4DQor44OE44OB44Oi44OILOODleODn+OCqg0KK+ODhOODjuODgCzjgrfjg6fjgqbjgrgNCivjgqbjg4Hjg4As44K144OI44OrDQor44Km44Ko44OALOOCouOCreODjuODqg0KK+OCpuODjuOCrSzjg47jg5bjg5LjgrMNCivjg6/jg4As44OS44Ot44K/44OEDQor44Ov44K344K6LOOCt+ODp+OCpg0KK+ODr+OCv+ODiuODmSzjgrPjgqbjgrvjgqQNCivjg6Tjg57jg4As44K/44Kr44OIDQor44Ok44Oe44Kw44OBLOODqOOCpuOCuA0KK+ODpOODnuODouODiCzjg5/jg4Tjgr7jgqYNCivjg6Tjg57jg4os44K744Kk44Kk44OB44Ot44KmDQor44Ok44K344OtLOOCv+OCseOCtw0KK+ODqOOCs+ODpOODnizjg57jgrXjg5LjgrMNCivjg6jjgrfjg4As44OI44Oi44OfDQor44Om44KtLOOCu+ODhOOCsw0KK+ODkuODqeOCq+ODryzjg57jg4rjg5YNCivjg6Ljg6rjgqTjg4Es44Ko44Kk44K444Ot44KmDQor44K344Of44K6LOOCseOCpA0KK+ODleOCuOODpeOCpizjgrfjg7PjgqTjg4ENCivjg4/jgqzjg68s44K/44Kr44K3DQor44OP44K744Ks44OvLOODkuODh+OCouOCrQ0KK+ODkuODqeODjizjgr/jgq/jg6QNCivjg5vjg7PjgrTjgqYs44OG44Or44OS44KzDQor44Kk44Kx44OALOODiOOCt+ODpuOCrQ0KK+OCpOOCt+OCq+ODryzjg5Ljg63jgq0NCivjgqTjg4jjgqYs44Oo44K344OfDQor44Kr44OK44Ok44OeLOOCs+OCpuOCuA0KK+OCq+OCv+OCruODqizjgrfjg7PjgrnjgrENCivjgq3jg6Ljg4gs44K/44Kv44OkDQor44Kt44Ok44OeLOOCu+OCpOOCuA0KK+OCs+OCuOODiizjgrHjg7MNCivjgrPjg7Pjg4ks44OS44Ot44OS44KzDQor44Kv44Oq44K/LOOCteODiOOCtw0KK+ODnuOCueODgCzjg4DjgqTjg4ENCivjg5/jgqvjg58s44Of44OE44KqDQor44Of44OvLOOCv+OCq+ODjuODlg0KK+ODouODgeOCuuOCrSzjg47jg5bjg6bjgq0NCivjg6Ljg6rjg6Tjg54s44OI44K344KqDQor44OK44Ks44OV44K4LOOCreODn+ODkuODiA0KK+ODiuOCq+OCuOODnizjg57jgrXjg5LjgrMNCivjg4rjgqvjg6Djg6ks44OS44K144OIDQor44OK44K544OOLOODiuOCquOCrQ0KK+ODjuODgCzjg6bjgqbjgrMNCivjgqrjgqzjg68s44Oq44On44Km44KzDQor44Kq44Kq44Kr44OvLOOCuOODpeODs+OCsw0KK+OCquOCquOCv+ODiyzjgrHjg7MNCivjgqrjgq/jg6Djg6ks44Oe44OK44OfDQor44Kk44KuLOOCouOCreODjuODqg0KK+OCteODiuODgCzjg6jjgrfjg5Ljg60NCivjgrXjg4jjgqYs44OS44OH44OS44K1DQor44K744KtLOODqOOCpuOCpOODgQ0KK+OCt+ODkOOCvyzjg6bjgq3jg47jg6oNCivjgrfjg57jgqvjg68s44K344Ky44OrDQor44K344Kq44K444OqLOODkuODreOCtw0KK+OCueODgCzjg4jjg6Ljg4/jg6sNCivjgrnjgrrjgq0s44Kz44Km44K4DQor44K/44Kr44OALOOCv+OCq+ODjuODqg0KK+OCv+OCq+ODj+OCtyzjgq3jg6fjgqbjgrMNCivjgr/jgqvjgrks44OE44Oo44K3DQor44K/44OL44Kw44OBLOODiuOCquOCrQ0KK+ODhOODjeOCq+ODryzjg5Ljg63jg5Xjg58NCivjgqbjgqjjg4/jg6ks44OS44OH44Ki44KtDQor44Ok44Ku44Oi44OILOODkuODreOCtw0KK+ODpOODnuOCsOODgSzjg4jjg6LjgrMNCivjg6Tjg57jgrfjgr8s44Kr44K644KtDQor44Ok44K244KtLOODiuOCquOCrQ0KK+ODqOOCt+ODgCzjg4/jg6vjg5LjgrMNCivjgqLjgqTjgqvjg68s44OS44Ot44OV44OfDQor44OB44Kr44OP44OpLOOCquOCteODoA0KK+ODr+OCv+ODiuODmSzjgr/jgqvjgqgNCivjg47jgrbjgq0s44OG44Or44Ki44KtDQor44Ki44Kr44OL44K3LOODiuOCquODkuODrQ0KK+OCt+ODnuODouODiCzjgqLjg4jjg6ANCivjgqLjg4rjgrbjg68s44Of44OO44OrDQor44Kk44Km44OBLOODnuOCs+ODiA0KK+OCpOOCt+OCq+ODryzjgrPjgqbjgqTjg4ENCivjgqTjg4Hjgqvjg68s44K944OoDQor44Kk44Oe44OP44Ok44K3LOOCt+ODs+OCpOODgQ0KK+OCpuODgeODpOODnizjg6jjgrfjgr/jgqsNCivjgqrjgqbjgrXjgqss44Oe44K144K/44KrDQor44Kq44Kq44K/44OLLOODkuODh+OCrQ0KK+OCquOCquODkOODpOOCtyzjgrfjg7PjgrgNCivjgqrjgrDjg6ks44OS44Ot44KzDQor44Kr44Kt44Oi44OILOODkuODreOCtw0KK+OCq+ODiOOCpizjgrfjgrLjg47jg6oNCivjgqvjg5/jg6Tjg54s44OS44Ot44Kr44K6DQor44Kr44Ov44K7LOODiuOCquOCrQ0KK+OCreOCv+OCuOODnizjgqLjgq3jg5Ljg60NCivjgq/jgrXjgqvjg5ks44Oe44Ko44KzDQor44Kz44Kk44OHLOODkuODh+OCrQ0KK+OCs+ODnuODhCzjgrHjgqTjgqTjg4ENCivjgrXjgqTjg4jjgqYs44OS44OH44KtDQor44K144OI44KmLOOCuOODpeODsw0KK+OCt+ODpeOCpizjg57jgrXjg6QNCivjgrfjg47jg4As44Oe44K544OfDQor44K344Of44K6LOOCteODiOOCtw0KK+OCueOCrOODr+ODqSzjgrfjgrLjg5Xjg58NCivjgrnjg5/jgqvjg68s44Kr44OE44Ki44KtDQor44K/44Kr44K7LOOCreODqOOCv+OCqw0KK+OCv+OCseODgCzjgrHjgqTjgqTjg4ENCivjgr/jg4rjgqss44Kx44Oz44K4DQor44K/44OQ44K/LOODn+ODr+OCsw0KK+ODhOODgeODj+OCtyzjg6Djg43jg5Ljg60NCivjg4jjg6Djg60s44OK44OE44OS44KzDQor44OK44Kr44Ks44OvLOOCv+OCq+OCsw0KK+ODiuOCuSzjg5Ljg63jgrcNCivjg4vjgrfjg4/jg6ks44OK44Kq44KtDQor44OO44Og44OpLOOCq+OCuuODkuOCsw0KK+ODj+OCu+OCrOODryzjgrHjg7PjgqTjg4ENCivjg4/jg6njg4As44OI44Oi44KzDQor44OS44K444OqLOOCqOODqg0KK+ODleOCuOOCvyzjg47jg5bjgrMNCivjg5vjgr3jgqvjg68s44K/44OE44KqDQor44Oe44K544OW44OBLOOCv+OCq+OCtw0KK+ODnuODhOODiuOCrCzjg6bjgq0NCivjg57jg4Tjg6Tjg54s44OG44OE44OkDQor44Of44K/LOODn+ODjuODqw0KK+ODn+ODqOOCtyzjg6jjgqbjgrMNCivjg6Djg6njg6Tjg54s44Oe44Kz44OIDQor44Oi44Oq44K344K/LOOCq+OCuuODkuODrQ0KK+ODpOOCuOODnizjg4rjgqrjgrMNCivjg6Tjg57jgrbjgq0s44OS44Ot44Om44KtDQor44Kv44Oq44OP44OpLOODnuOCteOCrQ0KK+ODqOOCs+ODpOODnizjg6jjgqbjgrMNCivjg6/jgr/jg4rjg5ks44Oo44K344OS44OIDQor44Kv44Ov44K344OeLOOCueOCsOODqw0KK+OCteOCq+ODouODiCzjg5Ljg4fjg47jg5YNCivjgqTjg4jjgqYs44K/44OA44OS44OtDQor44Km44Oh44OK44KkLOOCueOCueODoA0KK+OCquOCq+OCt+ODrSzjgrfjg63jgqYNCivjgqvjg6/jgqrjgqss44OS44OH44KtDQor44Kv44OQLOOCv+OCq+OCtw0KK+OCs+OCpuODgCzjg57jgrXjgr/jgrENCivjgrXjg4jjgqYs44Oe44Om44OfDQor44Ki44OZLOODnuOCteODj+ODqw0KK+OCv+OCq+ODj+OCtyzjg5LjgrXjg58NCivjgr/jg5Djgr8s44Kr44OE44Om44KtDQor44OK44Kr44Ks44OvLOOCs+OCpuOCpOODgQ0KK+ODj+OCt+ODouODiCzjg4jjgqrjg6sNCivjg5Ljg6njg44s44Oe44K144K/44KrDQor44Ob44K944OOLOOCouOCreODkuODiA0KK+ODoOODqeOCq+ODnyzjgrHjgqTjgrMNCivjg6jjgrfjg6Djg6ks44Ko44OqDQor44Ki44Oe44OkLOODnuOCteODqw0KK+ODgeODp+OCpizjg4DjgqTjgrnjgrENCivjgrTjgqbjg4As44Kt44Oo44OO44OWDQor44OP44Ok44Kr44OvLOODkuODreOCrQ0KK+ODleODq+OCvyzjg4rjg6vjgq0NCivjgqTjgqTjg4As44K/44Kr44OS44OtDQor44Kk44K344Ov44K/44OqLOODkuODreOCq+ODhA0KK+OCq+ODkOODpOODnizjg57jgrXjgq0NCivjgqvjg7Pjg4As44Ok44K544OS44OIDQor44Kt44K/44Og44OpLOODqOOCt+OCqg0KK+OCs+ODs+ODjizjgrPjgqbjgqTjg4ENCivjg57jg4Hjg4As44OP44Or44OfDQor44Oe44OE44KkLOOCv+OCseOCtw0KK+ODn+OCpuODqSzjgrHjgqTjgrQNCivjgr/jg4/jg6ks44OO44Oq44KzDQor44Og44Op44Kr44OfLOOCv+ODhOODkuOCsw0KK+ODiuOCq+ODn+ODjSzjg57jg6Ljg6sNCivjg4rjgqvjgrbjg68s44Kt44Oo44K3DQor44Kq44Kq44K/LOOCt+OCsuOCouOCrQ0KK+OCpOOCt+OCq+ODryzjg6jjgqYNCivjgqTjg4jjgqYs44OI44Oi44OkDQor44K144OI44KmLOODhOOCsOODkuODhw0KK+OCt+ODkOOCvyzjg4rjgqrjgq0NCivjgr3jg6Hjg6Qs44Ki44Kt44OS44KzDQor44K/44Kx44OALOOCouOCreODqQ0KK+OCv+ODiuOCqyzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgr/jg4vjgrfjgr8s44OV44Of44OODQor44OE44OB44OkLOODqOOCt+OCsw0KK+ODr+OCuOODnizjg6rjgrMNCivjg6Tjg57jg4As44OS44Ot44KtDQor44Ok44Oe44K244KtLOODpuOCv+OCqw0KK+OCv+OCq+ODj+OCtyzjg57jgrXjgq0NCivjgqLjg7Pjg4njgqYs44Om44KtDQor44Kk44K344Oi44OILOODquODp+OCpuOCueOCsQ0KK+OCpOODr+OCteOCrSzjg5/jgrrjg57jgrUNCivjgqbjg6Hjg4/jg6ks44K/44Kr44K3DQor44Kq44Ks44K/LOODpOOCueOCtw0KK+OCquODi+OCtuODryzjgrfjgrLjgq0NCivjgqvjgrgs44Kq44K144OgDQor44Kr44ON44KzLOODjuODluOCq+ODhA0KK+OCq+ODr+ODnuOCvyzjg5Ljg63jgq0NCivjgq/jg5ws44OI44Oi44OO44OqDQor44Kz44Km44K144KtLOOCs+OCpuOCpOODgQ0KK+OCteOCpOODmyzjg4rjg6vjg5Ljg60NCivjgrXjg4rjg4As44Kq44K144OgDQor44K344K344OJLOOCr+ODi+OCqg0KK+OCueOCruODj+ODqSzjgq3jg6jjgrfjgrINCivjgr/jgqvjgqrjgqss44Om44OfDQor44Kk44OI44KmLOOCuOODpeODs+OCuA0KK+ODiuOCq+OCqizjgrfjg7PjgrgNCivjg4rjgqvjg44s44K4DQor44OL44K344Kr44KkLOODiOOCt+ODn+ODhA0KK+ODjeODreODoSzjg5Ljg63jgrcNCivjg4/jg5Ys44Oe44Kz44OIDQor44OS44Op44KkLOOCq+OCquODqg0KK+ODleOCuOODr+ODqSzjg4jjgqrjg6sNCivjg5vjg7Pjg54s44Om44Kt44OO44OWDQor44Oe44OE44K244OvLOODgeOCq+ODqQ0KK+ODn+ODpOODouODiCzjg6TjgrnjgrgNCivjg6Ljg6rjg6Qs44Ob44Oe44OsDQor44Ok44OOLOODkuODreOCtw0KK+ODpOODnuOCt+OCvyzjg57jgqTjgrMNCivjg6jjg4As44K/44Kr44OS44OtDQor44Ov44K/44OZLOOCv+OCq+OCtw0KK+OCouOCreODkCzjgrHjgqTjgqTjg4ENCivjgqLjg5ks44Oe44Om44OfDQor44Kk44OI44KmLOODqOOCpuOCuA0KK+OCpOOCt+ODoOODqSzjg6bjg5/jgrMNCivjgqTjg4jjgqYs44Oe44K144OrDQor44Kk44Oe44KkLOOCv+OCseOCtw0KK+OCpuOCqOODj+ODqSzjg6Ljg4jjgrMNCivjgqbjg6Hjg4Qs44Ki44Kt44OS44KzDQor44Kk44Oe44OL44K3LOODkuODreODpuOCrQ0KK+OCquOCquOCpOOCtyzjg57jgrXjg4/jg6sNCivjgqrjgqvjg44s44Om44KtDQor44Kq44Ks44OvLOODiOOCquODqw0KK+OCq+OCrOODnyzjgqjjg6rjgqsNCivjgqvjgr/jg6Tjg54s44Of44OE44KzDQor44Kr44OfLOODqOOCt+ODhuODqw0KK+OCq+ODr+OCteOCrSzjg5Ljg4jjgrcNCivjgqvjg6/jg6Ljg4gs44Of44OB44KqDQor44Kt44K/44Oi44OILOODhOODiOODoA0KK+OCruODp+OCpuODlizjg5Ljg63jgrMNCivjgrPjgqTjgrHjg4As44K/44OE44Ot44KmDQor44Kz44OA44OeLOOCv+OCpOODgeODreOCpg0KK+OCs+ODkOODpOOCtyzjg5Ljg4fjg5Ljg4gNCivjgrXjgqTjgrTjgqYs44Of44Ov44KzDQor44K144Kr44Ks44OfLOOCpOODgeODreOCpg0KK+OCteOCteOCrSzjg4rjg4rjgqgNCivjgrXjg68s44Kx44Oz44K0DQor44K344Of44K6LOODpuOCreOCqg0KK+OCt+ODp+OCpuODgCzjgrfjgrLjg47jg6oNCivjgrnjgrrjgq0s44Kr44K644OS44OpDQor44Kk44K344OP44OeLOOCseODs+ODiA0KK+OCv+OCq+ODj+OCtyzjg57jgq3jgrMNCivjgr/jgrHjg68s44K344Oz44K4DQor44K/44OP44OpLOOCteODiOOCtw0KK+ODhOODhOODnyzjg57jgrPjg4gNCivjg4rjgqTjg4jjgqYs44Kz44Km44K4DQor44OK44Kr44K444OeLOODjuOCvuODoA0KK+ODiuOCq+ODoOODqSzjgr3jgqbjgqTjg4Hjg63jgqYNCivjgqTjgrHjg4As44Oe44K144K/44KrDQor44OL44K3LOODhOODjeOCouOCrQ0KK+ODjuODjuOCpOODgeODpCzjg57jgrnjgqoNCivjg4/jgrfjgrrjg6Es44Om44Km44KzDQor44OP44OD44OI44OqLOODpuOCpg0KK+OCpOODjuOCsOODgSzjgqvjg4Tjg5Xjg58NCivjg5Ljg57jgq0s44OI44Oi44OO44OqDQor44OV44Kr44K244OvLOODquOCqA0KK+ODleOCuOODiuOCrCzjg5Xjg5/jgrMNCivjg5Xjg6vjg6Qs44Oe44Oq44KzDQor44Ob44Oq44Kr44OvLOODiOODouODkuODrQ0KK+OCpOOCsOODgSzjgr/jgqvjg5Ljg60NCivjg5/jg4Tjg4/jgrcs44Ko44Kk44Kk44OBDQor44Of44Ok44K344K/LOODqOOCpuOCsw0KK+ODoOODqeODnuODhCzjg57jgrXjg6bjgq0NCivjgqTjg47jgqbjgqgs44Ki44Kt44OO44OqDQor44Ok44OOLOOCv+ODgOOCv+OCqw0KK+ODpOODnuODgCzjgr/jg4TjgqoNCivjg6Tjg57jg6Ljg4gs44Og44ON44K/44KrDQor44Oo44K344OALOODquODp+OCpg0KK+ODr+OCv+ODiuODmSzjg5Ljg4fjg6bjgq0NCivjg6/jgr/jg4rjg5ks44OI44K344KoDQor44Kz44Km44OALOOCteODiOODqw0KK+OCquOCrOODryzjg5Ljg63jgqLjgq0NCivjgqLjgq3jg6Ljg4gs44K544K544OgDQor44Ki44K144OOLOODiOODouODkuOCsw0KK+OCouODmSzjg57jgrXjgqrjg58NCivjgqTjg4Tjg44s44Of44Kt44KqDQor44Kk44OB44OO44K7LOOCs+OCuuOCqA0KK+OCpOODquOCvyzjg6TjgrnjgqLjgq0NCivjgqTjgrfjgqrjgqss44K344Oz44Kk44OBDQor44Kk44OB44KtLOODnuOCteODiA0KK+OCpOODj+ODqSzjgq3jg6jjgr/jgqsNCivjgqTjg57jgros44OE44Oo44K3DQor44Kk44Ov44K544KuLOODn+OCqw0KK+OCpuOCueOCpCzjg57jgrXjg5Ljg60NCivjgqjjg4jjgqYs44Kx44Oz44K4DQor44Kq44KmLOODqOOCt+ODkuODrQ0KK+OCpOODr+OCreODqizjg6/jgr/jg6sNCivjgqrjgqrjg4Tjgq0s44K444Ol44OzDQor44Kq44Og44OpLOOCr+ODnw0KK+OCquOCq+OCtuOCrSzjg4jjg6Ljg5/jg4ENCivjgqrjgqzjg68s44Ki44Kt44OpDQor44Kt44K/44Og44OpLOODnuODquOCsw0KK+OCquOCquODpOODnizjg4Hjgrrjg6sNCivjgqvjgrXjgrbjgq0s44Oo44K344OS44OtDQor44Kr44OE44OOLOOCv+OCq+ODjuODqg0KK+OCq+ODiOODqizjgrHjg7PjgrgNCivjgqzjg58s44OS44Ot44K3DQor44Kr44Ov44Kr44OfLOODnuOCteODnw0KK+OCq+ODr+ODnyzjgrfjg7PjgrgNCivjgq3jgr/jgrfjg60s44Kr44K644Oo44K3DQor44Kt44Og44OpLOOCt+OCsuODqw0KK+OCr+OCuOODqeOCquOCqyzjg4DjgqTjgq0NCivjgqTjgrfjgrDjg60s44K/44Ot44KmDQor44Kk44OK44OI44OfLOODgOOCpOOCueOCsQ0KK+OCs+OCuuODnizjg57jgqTjgrMNCivjgrPjgrfjgqQs44OI44Oi44OS44OtDQor44Kz44OL44K3LOOCv+ODgOOCtw0KK+OCs+ODkOODpOOCtyzjg6jjgrfjgqoNCivjgrXjgqTjg4jjgqYs44OI44Oi44KoDQor44K144Kr44KkLOODn+ODjeOCqg0KK+OCteOCq+ODouODiCzjgrjjg6Xjg7PjgrMNCivjgrXjg4jjgqYs44K344Oz44Kk44OB44Ot44KmDQor44Kk44K344Kw44OtLOODkuODh+OCv+OCqw0KK+OCt+ODiuODgCzjg6jjgrfjgrMNCivjgrfjg57jg4As44Oo44K344K144OADQor44Kk44OI44KmLOOCreODp+OCpuOCsw0KK+OCueOCruODpOODnizjgqvjgrrjg4oNCivjgrnjgrrjgq0s44Kz44Km44K4DQor44K744Kt44Kw44OBLOOCseOCpOOCsw0KK+OCq+ODn+ODpCzjgqvjgrnjg58NCivjgr/jgqvjg44s44Kx44Oz44Kk44OBDQor44K/44Kr44OP44K3LOOCs+OCpuOCpOODgeODreOCpg0KK+OCv+OCq+ODn+OCtuODryzjg6rjg6Xjgqbjgq0NCivjgr/jgrHjgqbjg4Es44K/44Kr44Kt44OoDQor44K/44Kx44Oi44OILOOCq+OCuuODkuOCsw0KK+OCv+ODgeODkOODiizjgqLjg6TjgrMNCivjgr/jg4rjgqss44OK44Kq44KzDQor44K/44OK44OfLOODhOODjeOCqg0KK+OCv+ODjuOCquOCqyzjg5/jgqjjgrMNCivjg4Hjg6XjgqYs44K144Ok44KrDQor44OE44OB44OkLOOCu+ODrOODig0KK+ODiOOCuCzjg57jgrXjgrMNCivjg4jjg6jjg4As44K/44Kv44OkDQor44OK44Kr44K444OeLOODiOODouOCsw0KK+ODiuOCrOOCvyzjg6jjgrfjg5LjgrMNCivjg4rjgqzjg4/jg6ks44Oo44K344Om44KtDQor44OK44Kr44Og44OpLOODnuOCteOCq+ODhA0KK+ODi+OCt+OCq+ODryzjgqTjg6/jgqoNCivjg4vjg68s44Om44Kt44KoDQor44OO44Ks44OfLOODpuOCqw0KK+ODj+OCt+OCuuODoSzjgr/jgqvjgrcNCivjg4/jgrvjg5ks44Oo44Km44OY44KkDQor44OP44OK44OW44K1LOOCquOCteODoA0KK+ODj+ODpOOCtyzjg57jgrPjg4gNCivjg4/jg6vjgr/jg4ss44K/44Kr44OS44OtDQor44OS44On44Km44KoLOODiOODouODkuODrQ0KK+ODkuODqeODjOODnizjgqvjgrrjgqoNCivjg5Xjgq/jg4As44K/44Kr44OS44OtDQor44OV44K444KqLOOCv+OCq+ODpuOCrQ0KK+OCpOODjuOCpuOCqCzjg47jg6rjgqoNCivjg5Xjg6vjgqvjg68s44Oe44K144Of44OEDQor44OV44OvLOODn+OCqg0KK+ODnuOCqOOCq+ODryzjg6vjg58NCivjg57jgq3jgr8s44Kr44OE44Om44KtDQor44Oe44OE44Km44OpLOOCqOODquOCsw0KK+ODnuODhOODgCzjgr/jgqvjgrcNCivjg57jg4Tjg5/jg6Qs44Kx44Oz44Kk44OBDQor44Oe44OK44OZLOODquODp+OCpuOCueOCsQ0KK+ODn+ODiuODiCzjg5Ljg63jg6bjgq0NCivjg6Djg6njgqvjg58s44Oe44K144OfDQor44Oi44OI44Oo44K3LOODnuOCs+ODiA0KK+ODouODquOCvyzjgrHjg7PjgrgNCivjg6Tjgq4s44Kx44Kk44K544KxDQor44Ks44OzLOODj+ODiuOCqA0KK+ODpOODnuOCsOODgSzjg6Tjgrnjg57jgrUNCivjg6Tjg57jgrXjgq0s44K444Ol44OzDQor44Ok44Oe44OALOOCv+ODhOOCuA0KK+ODpOODnuODi+OCtyzjg4rjgqrjgq0NCivjg6jjgrPjgr8s44OI44Oi44OV44OfDQor44Oo44K344Kr44OvLOOCv+OCr+ODpA0KK+ODqOOCt+ODoOODqSzjgq/jg4vjg5LjgrMNCivjg6/jgq3jgr8s44OI44Kq44OrDQor44Ov44K/44OK44OZLOOCveOCpg0KK+OCouODnuOCsyzjg6jjgrfjgqoNCivjg57jg44s44Ki44KtDQor44Km44OB44Og44OpLOODgeODiuODhA0KK+OCteOCr+ODqeOCpCzjg57jg58NCivjgrfjg6njgqQs44Om44K/44KrDQor44OG44Op44Kv44OpLOODqOOCpuOCuA0KK+OCquOCq+ODgCzjgr/jg4TjgrcNCivjgrTjg4jjgqYs44Ki44Kt44OS44OtDQor44OE44OQ44KtLOOCu+OCpOOCpOODgeODreOCpg0KK+OCpOODiuOCrOOCrSzjg5Ljg4fjg4jjgrcNCivjg5vjg6rjg5ks44Oi44OI44K4DQor44Kr44KkLOODqOOCt+OCqA0KK+OCv+OCq+ODgCzjg4jjgq/jg5LjgrMNCivjgrPjgr/jg4ss44OV44Of44OS44KzDQor44Kk44OP44OpLOOCseOCpOOCsw0KK+OCouOCreODj+ODqSzjgrfjg6Xjg7PjgrnjgrENCivjgqLjg5ks44Om44KtDQor44Ki44Op44KtLOODkuODreOCtw0KK+OCpOOCt+OCpCzjg47jg5bjg6TjgrkNCivjgqTjgrfjgrzjgq0s44OA44Kk44K544KxDQor44Kk44K/44OLLOOCv+OCq+OCtw0KK+OCpOODiOOCpizjgrfjgrrjgrMNCivjgqTjg44s44Of44KtDQor44Kk44Ov44K244KtLOODkuODreOCv+OCqw0KK+OCpuOCqOODjizjgrHjg7PjgrgNCivjgqbjg6Hjg4/jg6ks44OK44OE44KzDQor44Kq44Kq44KoLOODgOOCpOOCueOCsQ0KK+OCquOCquODhCzjg4HjgqgNCivjgqrjgqrjg4Tjg5ws44Oe44K144Of44OEDQor44Kq44Kr44OALOOCv+ODhOODpA0KK+OCquOCq+ODouODiCzjg5LjgrXjgrcNCivjgqrjgq/jg4rjgqss44K744Kk44K3DQor44Kq44OQ44OpLOODpuODquOCsw0KK+OCq+OCuOODiuOCrCzjg6bjgr/jgqsNCivjgqvjg4jjgqYs44Oq44On44KmDQor44Kr44OI44KmLOODr+OCv+ODqw0KK+OCq+ODr+OCpCzjgrPjgqbjgrgNCivjgqvjg6/jgrDjg4Es44K544K544OgDQor44Kt44K3LOODrOOCpOOCsw0KK+OCreODieOCs+ODrSzjgqLjg4TjgrcNCivjgq/jg5zjgr8s44Oe44Om44OfDQor44Kv44Ov44OQ44OpLOODpuOCq+ODqg0KK+OCs+OCr+ODnCzjg6Ljg6LjgqgNCivjgrTjg4jjgqYs44Kx44Kk44KzDQor44Kz44Of44Ok44OeLOODnuOCteODqOOCtw0KK+OCteOCpOODiOOCpizjgrfjgrLjg6sNCivjgrXjgqvjg6Ljg4gs44OB44Kr44OpDQor44K144K144OOLOOCouOCq+OCrg0KK+OCteODiuODgCzjg57jgrXjg6bjgq0NCivjgrfjg57jg4As44K/44Kx44K3DQor44K344Oi44OV44K4LOODjuODluODkuOCsw0KK+OCt+ODryzjgrHjg7PjgqTjg4ENCivjgrnjgq7jg4/jg6ks44OS44Ot44OO44OWDQor44K544K644KtLOODnuOCteODpA0KK+OCu+OCrSzjgqLjg4Tjg4rjg6oNCivjgr/jgqvjgq4s44Kr44OoDQor44K/44Kr44OP44K3LOODkuODreODiuOCqg0KK+OCv+OCreOCtuODryzjgrXjg4jjgrcNCivjgr/jgrHjg4As44Om44Km44Kk44OB44OtDQor44K/44OK44KrLOOCu+OCpOOCuA0KK+OCv+ODi+OCq+ODryzjg6jjgrfjg4TjgrANCivjgr/jg5Djgr8s44Kx44Kk44K/44Ot44KmDQor44OE44Kr44OALOODquOCqA0KK+ODhOODnOOCvyzjg57jgrXjg6QNCivjg4jjgqbjgqvjgqTjg6rjg7Ms44Om44OfDQor44OI44OO44KkLOOCouOCreOCsw0KK+ODiuOCq+OCrOODryzjg6jjgrfjg47jg6oNCivjg4rjgqzjg44s44Oq44On44Km44K/DQor44OK44Kr44Ok44OeLOODiOODouODkuODrQ0KK+ODi+OCt+OCquOCqyzjgrfjg7PjgqTjg4ENCivjg43jgq7jgrcs44Oq44KrDQor44OO44K244KtLOODgOOCpOOCueOCsQ0KK+ODj+OCt+OCsOODgSzjg4jjgrfjg5Ljg60NCivjg4/jg4Pjg4jjg6os44Om44Km44Kk44OBDQor44OP44Oe44OALOODgOOCpOOCuA0KK+ODkuOCt+ODjOODnizjgqLjg4TjgrcNCivjg5Ljg6njgr8s44Oe44Of44KzDQor44OV44Kv44OALOOCv+OCq+OCtw0KK+ODleOCuOOCqOODgCzjg5LjgrXjgqvjgroNCivjg5Xjgrjjg6/jg6ks44K/44Kv44OIDQor44Ob44Oq44Kr44OvLOOCt+ODpeOCpuOCuA0KK+ODnuODhOOCqizjg5Ljg4fjg47jg6oNCivjg57jg4Tjg6Tjg54s44Of44OE44OG44OrDQor44Of44OkLOOCouOCreODqQ0KK+ODn+ODpOODouODiCzjgq/jg4vjgrMNCivjg6Djg6njgqvjg58s44K/44OE44OS44OtDQor44Oi44Oq44K/LOODnuODnw0KK+ODpOOCsOODqSzjgrfjg7PjgrgNCivjg6Tjg57jg4As44Of44K644ObDQor44Om44OpLOOCseODs+OCpOODgQ0KK+ODqOOCt+OCtuODryzjg6bjgqbjgrMNCivjg63jgq8s44Ki44Kt44KzDQor44Ov44Op44OTLOODkuODreODjuODqg0KK+ODn+ODkuODqSzjg6rjg6fjgqbjg5jjgqQNCivjg5/jgq7jgr8s44Oe44OKDQor44K/44Kx44Km44OBLOODquODp+OCpg0KK+OCquODjuODh+ODqSzjgq/jg4vjg5Ljg60NCivjgqLjgqvjgqzjg68s44Oi44OI44KzDQor44Ki44K144OM44OeLOOCouODpA0KK+OCouODqeOCpCzjg4Tjg6jjgrcNCivjgqTjgrbjg68s44OB44OP44OrDQor44Kk44K344OQ44K3LOODiOOCt+ODpuOCrQ0KK+OCpOODhyzjg4rjg6vjg58NCivjgqTjg47jgqbjgqgs44Oe44Kz44OIDQor44Kk44Oe44K844KtLOOCr+ODn+OCsw0KK+OCpOODr+OCvyzjgrPjgqbjgrgNCivjgqbjgrXjg58s44Oe44Oq44KzDQor44Ko44OO44Kt44OJLOODqOODquOCsw0KK+OCquOCreOCvyzjg6bjgq3jg47jg6oNCivjgqrjgqrjg4Tjgqss44Oi44OI44KkDQor44Kq44OOLOODkuODreOCtw0KK+OCquOCq+ODgCzjgqvjgrrjg5Ljg60NCivjgqrjgq/jgq/jg5ws44K/44Kr44K3DQor44Kr44OK44KkLOOCseODs+OCpOODgQ0KK+OCq+ODn+ODpCzjgrXjg4HjgrMNCivjgqvjg6/jgrXjgq0s44OS44Ot44KtDQor44Kt44OALOOCqOOCpOOCueOCsQ0KK+OCreODoOODqSzjg5Xjg5/jg4gNCivjgq/jg6Hjgqbjg4Es44Kx44Oz44K4DQor44Kv44Ov44OP44OpLOOCt+ODjg0KK+OCs+OCrCzjgr/jgq/jgrgNCivjgrPjg5Djg6Tjgrcs44Ki44Oz44OKDQor44K144Kk44OI44KmLOOCseODs+OCpOODgQ0KK+OCteOCteOCrSzjg4/jg4rjgrMNCivjgrXjg4jjgqYs44Of44KtDQor44K144OP44OpLOOCv+OCq+ODleODnw0KK+OCt+ODgCzjg6jjgrfjg5Ljg60NCivjgrfjg5/jgros44K/44OE44KqDQor44K344Oi44K244KtLOOCv+ODhOODkuOCsw0KK+OCueOCruOCpuODqSzjg57jgrXjg47jg5YNCivjgrnjg4gs44K144OI44K3DQor44K744OILOOCseOCpOOCuA0KK+OCv+OCq+OCrizjg47jg6rjg6bjgq0NCivjgr/jgqvjg4/jgrcs44Of44KrDQor44K/44Kx44OALOODpuOCpuOCuA0KK+OCv+ODgCzjg6jjgrfjgr/jgqsNCivjgr/jg4vjgrDjg4Es44K/44Kr44OO44OqDQor44K/44Og44OpLOOCseOCpOOCsw0KK+ODhOOCq+ODj+ODqSzjg5/jgrrjg5sNCivjg4Tjg5zjgqbjg4Es44Ki44Kt44OV44OfDQor44OG44Op44OALOODqOOCt+OCrQ0KK+ODiOODn+OCpCzjgrjjg6Xjg7PjgrMNCivjg4rjgqTjg4jjgqYs44K/44Kr44KqDQor44OK44Ks44K144KrLOOCs+OCpuOCuA0KK+ODiuOCrOODjizjg6TjgrnjgqoNCivjg4rjgqvjg6Djg6ks44Ko44Kk44K4DQor44OL44K3LOODiuOCquODpuOCrQ0KK+ODi+OCt+ODgCzjg6rjg6fjgqbjg5jjgqTjgr8NCivjg47jgrDjg4Es44Kr44K644Oo44K3DQor44OO44Og44OpLOOCq+OCuuOCqg0KK+ODj+ODg+ODiOODqizjgrXjg4jjg58NCivjg4/jg6Tjgqvjg68s44Om44KtDQor44OP44Op44OALOODn+OCqA0KK+ODkuODh+OCt+ODnizjg5/jgq3jgrMNCivjg5Xjgqvjgqos44Of44Om44KtDQor44OV44Kv44OP44OpLOODpuOCreOCsw0KK+ODleOCuOODouODiCzjgqjjg6rjgrMNCivjg5vjgrfjg44s44K544Of44KqDQor44Ob44Oq44Kw44OBLOOCuOODpeODs+OCpOODgQ0KK+ODnuOCreODjizjgr/jgrHjgqoNCivjgrPjg5/jg6Qs44OO44Oc44OrDQor44Kz44OQ44Ok44K3LOODkuODreOCtw0KK+OCq+ODn+OCr+ODnCzjgrHjg7PjgrgNCivjg57jg4Tjgqos44Kt44Oo44K3DQor44OK44Kr44OBLOOCreODqOOCtw0KK+OCs+OCueOCrizjg6jjgrfjg58NCivjgqvjg4Tjg57jgr8s44OI44K344Kr44K6DQor44Kr44Ks44Ok44OeLOODnuOCteODj+ODqw0KK+OCr+OCvCzjg5/jgq3jgqoNCivjgq/jg57jg4As44Oe44K144Ki44KtDQor44Kz44K444On44KmLOOCteODiuOCqA0KK+OCq+OCt+OCr+ODnizjgrHjg7Pjgr7jgqYNCivjgq3jgq/jg4Es44Oo44K344OS44K1DQor44Kv44Oe44OOLOODnuOCteODpuOCrQ0KK+OCs+ODkOODpOOCtyzjgrfjg6Xjg7PjgrgNCivjgrPjg5Djg6Tjgrcs44OO44OW44KzDQor44Kz44OL44K3LOOCseODs+OCpOODgQ0KK+OCs+ODkOOCt+OCrOODryzjg5Ljg4jjgrcNCivjgqvjgqTjg4ks44Of44ObDQor44Kv44Ot44KtLOOCuOODpeODsw0KK+OCq+ODiuOCv+ODiyzjg6rjgqgNCivjgq3jgr/jgqzjg68s44OK44Kq44K/44KrDQor44Of44K644Oi44OILOODiuODq+OCrQ0KK+ODn+ODpOOCquOCqyzjgrHjg7Pjg63jgqYNCivjg6Djg6njgr8s44Kx44Oz44K4DQor44Oi44Oq44K/LOODkuODh+ODiOODog0KK+ODpOODiuOCruODgCzjgqjjg6rjgrMNCivjg6Tjg57jgrbjgq0s44Kx44OzDQor44Ok44Oe44Oi44OILOODpOOCueODjuODqg0KK+ODqOOCtCzjg4jjg6Ljg47jg6oNCivjg6jjg43jg4As44Om44Of44KzDQor44Ov44KzLOODquOCqA0KK+OCouOCq+ODj+ODjSzjg5Ljg63jgqLjgq0NCivjgqLjgrXjg5ks44Kr44OoDQor44Ki44Op44KkLOODkuODh+OCqg0KK+OCpOOCseODgCzjg6jjgrfjgr/jgqsNCivjgqTjgrfjg4ks44Om44Kt44KzDQor44Kk44K644OOLOODn+ODhOODkuODrQ0KK+OCpOODiOOCpizjgr/jgrHjgrcNCivjgqTjg47jgqbjgqgs44OO44OW44K/44KrDQor44Kk44Ov44K/LOODqOOCt+ODkuODrQ0KK+OCpuOCq+OCpCzjg5LjgrXjg4rjgqwNCivjgqjjg4jjgqYs44OS44Ot44KtDQor44Kq44Kq44K144KrLOOCv+ODhuOCrQ0KK+OCquOCquODi+OCtyzjg5/jg4Tjg6sNCivjgqrjg6Djg6ks44OI44Oi44KzDQor44Kq44Kr44OOLOODpOOCueODleODnw0KK+OCquOCrOODryzjgr/jgq/jg6QNCivjgqrjgrbjgq0s44K/44Kr44Om44KtDQor44Kq44OI44Ks44OvLOODquODp+OCpuOCsw0KK+OCq+OCteOCpCzjg4rjgqrjgrMNCivjgqvjgrnjgqws44K144OK44KzDQor44Kr44OI44KmLOOCseODs+OCpOODgeODrQ0KK+OCq+ODoeOCv+OCqyzjgr/jgqTjgrnjgrENCivjgqvjg6/jgrDjg4Es44Ki44Om44OfDQor44Kr44Ov44OQ44K/LOOCouODpuODnw0KK+OCreOCv+OCrOODryzjgr/jgrHjgrcNCivjgq3jg6Djg6ks44Oo44K344Kr44K6DQor44Kt44Oq44K144KzLOODhuODg+ODmuOCpA0KK+OCr+ODqeODj+OCtyzjgr/jgqvjgqLjgq0NCivjgrTjgqbjg4As44K/44Kx44OS44OtDQor44Kz44OG44OpLOOCreODn+ODkuODrQ0KK+OCs+ODkOODpOOCtyzjg4rjg4TjgrMNCivjgrPjg57jg4Tjg5Djg6ks44OI44Oi44OS44K1DQor44K144Kk44OI44KmLOODhuODq+ODkuOCtQ0KK+OCteOCq+OCpCzjgr/jgqvjg6bjgq0NCivjgrXjgq/jg6njgqQs44K144OA44Oo44K3DQor44K144OI44KmLOOCouOCrQ0KK+OCteODr+OCteOCrSzjgr/jgqvjgrcNCivjgrfjg57jg44s44OI44K344Ki44KtDQor44K344On44Km44OALOOCr+ODnw0KK+OCt+ODs+OCv+ODiyzjgrHjg7Pjgr8NCivjgrnjgq7jg6Tjg54s44K/44Kr44ONDQor44K744Kt44Oi44OILOOCq+ODhOOCouOCrQ0KK+OCv+OCq+ODj+OCtyzjg6zjgqQNCivjgr/jgrDjg4Es44Ov44K/44OrDQor44K/44OB44OQ44OKLOODiuOCquODiA0KK+OCv+ODiuOCqyzjgrXjg4HjgqgNCivjgr/jg57jgq0s44OK44Kq44KzDQor44OE44Kr44OALOODhuODhOODpA0KK+ODhOODnOOCr+ODqSzjgr/jgq/jg6QNCivjg4njgqQs44OO44OW44K/44KrDQor44OI44OALOOCt+ODpeODs+OCueOCsQ0KK+ODiuOCrOOCteOCqyzjg5/jg4HjgrMNCivjg4rjgqvjgrfjg54s44Ki44Kt44OS44OtDQor44OK44Kr44OL44K3LOODn+ODieODqg0KK+ODiuOCq+ODoOODqSzjg57jg6YNCivjg4rjgqvjg6Tjg54s44K/44Kx44K3DQor44OL44K344OOLOODpuOCqw0KK+ODjuOCr+OCqizjgqvjgqrjg6oNCivjg5DjgrPjgrcs44K344Oz44K0DQor44OP44K/44OOLOODqOOCpuOCsw0KK+ODj+ODpOOCtyzjgrXjg4jjgrMNCivjg4/jg6njg4As44Ki44OE44K3DQor44OS44Op44KkLOODpuOCpuOCueOCsQ0KK+ODkuODreOCqCzjgqLjg4TjgrcNCivjg5Xjgq/jg4As44K144Ok44KrDQor44OV44K444Og44OpLOOCouOCreOCsw0KK+ODleODq+OCq+ODryzjg5Ljg63jgrMNCivjg5vjgr3jg4As44K344Ol44Oz44K0DQor44Oe44Ko44Kr44OvLOODn+ODrw0KK+ODnuOCteODiOOCpuODnyzjg57jgqTjgrMNCivjg57jg4Tjgqrjgqss44OI44Oi44KzDQor44Oe44OE44OQ44OpLOOCouOCreOCsw0KK+ODn+OCpuODqSzjgq3jg6jjg57jgrUNCivjg5/jgr7jg4/jgr8s44OB44KoDQor44Of44OP44OpLOODnuOCteOCrQ0KK+ODn+ODpOODoOODqSzjgqLjg6QNCivjg6Djg6njgr8s44Kv44Of44KzDQor44Oi44OqLOOCr+ODn+OCsw0KK+ODouODreOCqCzjg5Ljg63jgqvjgroNCivjg6Tjg4rjgq7jgrXjg68s44Kx44Kk44K544KxDQor44Ok44Oe44Ks44K/LOODnuOCs+ODiA0KK+ODpOODnuODgCzjg47jg5bjgrMNCivjg6Tjg57jg6Ljg4gs44OG44Or44OS44KzDQor44Ok44Oe44Oi44OILOODr+OCv+ODqw0KK+ODqOOCs+ODpOODnizjgqLjg6bjg58NCivjg6jjgrfjg4As44OK44Kq44KzDQor44Oo44K344Og44OpLOODgOOCpOOCueOCsQ0KK+ODr+ODgCzjgqTjgrXjg6ANCivjg6/jgr/jg4rjg5ks44OS44Ot44K3DQor44K144K144OOLOOCueOCueODoA0KK+OCs+ODgOODnizjgr/jgqvjg5LjgrMNCivjgqvjg6/jgrfjg54s44Oe44K144OK44OqDQor44Kr44Ov44OOLOOCs+OCpuOCpOODgQ0KK+OCq+ODn+OCpuODqSzjgqvjgrrjg5Ljg4cNCivjgrPjg7Pjg44s44OS44OH44KtDQor44Kv44Ok44OeLOOCv+OCseOCtw0KK+OCs+OCpCzjgrvjgqTjgqTjg4Hjg63jgqYNCivjgqvjgrXjgrjjg54s44OS44Ot44OV44OfDQor44Kr44OI44KmLOODiOODouODnw0KK+OCr+ODnOOCvyzjg5Ljg63jg6bjgq0NCivjgrHjgqzjgrXjg68s44OS44K144K3DQor44Kr44Ov44Ku44K3LOODkuODreOCtw0KK+OCq+ODnuODgCzjgr/jgqvjgrcNCivjgq3jgq/jg4Es44Kq44K144OgDQor44Kr44OI44KmLOOCq+OCuuODkuOCsw0KK+ODnuODgeODgCzjgqvjgrrjgqoNCivjg6Djg6njgrXjgq0s44OI44K344KqDQor44Oe44OE44Oi44OILOOCseODs+OCpOODgQ0KK+ODnuOCteOCrSzjgq3jgq/jgqoNCivjg5/jgrrjgr/jg4ss44OK44Kq44OS44KzDQor44Oe44Or44Ok44OeLOOCu+OCpOOCuA0KK+ODoOODqeOCt+ODnizjgr/jg4DjgqoNCivjg5/jgrrjgr8s44Oo44K344KqDQor44Oi44Oq44KkLOOCruODp+OCuA0KK+ODn+ODpOOCtuODryzjg6jjgrfjgqoNCivjg5/jgrrjg44s44Om44Oq44KzDQor44Og44Op44Kk44K3LOODnuODouODqw0KK+ODoOODqeOCq+ODnyzjgqvjgrrjgqoNCivjg6Djg6njg57jg4Qs44Ki44OE44K3DQor44Of44K/44KvLOOCseOCpOOCvuOCpg0KK+ODnuOCqOODgCzjgqLjgq3jgqoNCivjg6Djg6njgqQs44OI44Oo44OfDQor44Oe44OE44OALOOCteODiOOCtw0KK+ODn+ODhuODqSzjg6TjgrnjgqoNCivjg6Ljg6os44OE44OI44OgDQor44Oe44OE44KkLOOCv+OCq+OCtw0KK+ODn+OCpuODqSzjgq/jg4vjgqoNCivjg57jg4Tjg6Ljg4gs44K/44Kx44K3DQor44Oe44OE44K244OvLOODqOOCt+OCqg0KK+ODn+OCq+ODnyzjg4/jg6vjgq0NCivjgr/jg5bjg4Es44Kx44Oz44K4DQor44OK44Kr44K444OeLOODnuOCteODkuODrQ0KK+ODiuOCpOODiOOCpizjgr/jgrHjgqoNCivjg4vjgrfjg4os44Kt44Of44OS44OIDQor44OK44Kr44Ks44OfLOOCt+ODpeOCpuOCpOODgQ0KK+ODiuOCq+ODj+OCvyzjgqvjgrrjg4jjgrcNCivjg4vjgrfjgqrjgqss44OS44Ot44K3DQor44OL44K344OALOODqOOCt+ODreOCpg0KK+ODjuODoOODqSzjgq/jg4vjg5LjgrMNCivjg4rjgqvjg6Djg6ks44OS44OH44Om44KtDQor44OK44Kk44OI44KmLOOCq+OCuuOCouOCrQ0KK+ODi+ODg+OCvyzjg6bjgr/jgqsNCivjg4rjgqvjgrjjg54s44Kr44OE44KqDQor44OK44Kr44K7LOODiOOCt+OCouOCrQ0KK+ODiuOCq+OCrOODryzjg47jg5bjgqoNCivjg4rjgqvjgrjjg54s44Og44ON44K/44KrDQor44OK44Kr44Og44OpLOODm+OCuuODnw0KK+ODiuOCrOOCt+ODnizjg4rjgqrjgrgNCivjgqrjgq0s44K544Of44KqDQor44Kq44Kv44OALOODiOOCt+OCqg0KK+OCquOCquODj+OCtyzjg5Ljg63jgrcNCivjgqrjgqzjg68s44OI44Kq44OrDQor44Kq44K244OvLOODkuODreOCtw0KK+OCquOCquODj+OCtyzjg6bjgr/jgqsNCivjgqrjgqrjg44s44Of44OE44KqDQor44Kq44Kq44Kk44K3LOOCuA0KK+OCquOCquOCq+ODryzjgqvjgqrjg6sNCivjgqrjg6rjgqzjgrUs44Ok44K544K/44KxDQor44Kq44Kq44K/LOODqOOCt+ODkuOCsw0KK+OCquOCtuOCrSzjgrjjg6Xjg7PjgqTjg4ENCivjgqrjg4Djgrfjg54s44K/44OA44K3DQor44Kq44Kq44OS44OpLOOCu+ODhOOCuA0KK+OCquOCquODpCzjg5Ljg4fjg5sNCivjgqrjgqvjg44s44Ki44Kt44KzDQor44Kq44Kw44K3LOOCouOCseODnw0KK+OCquOCquOCpOOCrOODryzjgr/jgqvjg4/jg6sNCivjg4rjgqvjgr/jg4ss44K344Oz44Kk44OBDQor44K344Op44Kq44Ks44OvLOODqeOCpOOCvw0KK+ODiuOCq+ODoOODqSzjg4jjgrfjg5/jg4QNCivjgqLjg5ks44Ko44Of44KzDQor44Kr44Ov44Km44OBLOODnuODquOCqA0KK+OCpOODiOOCpizjgrHjg7Pjgr3jgqYNCivjgrPjgqTjgrrjg58s44K/44Kv44OkDQor44Kr44OK44Kq44KrLOODkuODreOCtw0KK+OCouODquODnizjg6Tjg6jjgqQNCivjgqbjg57jg6Tjg4/jg6ks44Ok44K544OfDQor44Kr44ON44Oe44OELOOCteOCreOCsw0KK+ODleOCq+ODpCzjgq/jg4vjgqLjgq0NCivjgrTjg4jjgqYs44Om44Km44Kk44OB44Ot44KmDQor44K544Ku44Oi44OILOOCr+ODi+OCqg0KK+OCr+ODquODj+ODqSzjg4jjg6jjg5LjgrMNCivjgqrjgqrjgr8s44Om44Kt44KzDQor44K544K644KtLOOCv+OCseOCtw0KK+ODqOOCt+ODgCzjgqvjgrrjg4jjgrcNCivjg4/jg4Pjg4jjg6os44OS44Ot44K3DQor44Kr44OJ44K/LOOCouOCreODkuODrQ0KK+OCpOOCt+OCtuODryzjg6bjgrrjgq0NCivjg5/jg6Tjg6Ljg4gs44Of44OJ44OqDQor44Kq44K4LOODpOOCueODkuODrQ0KK+OCouODqeOCpCzjg4jjgrfjgqLjgq0NCivjgq3jgr/jg6Djg6ks44Oq44Kr44KzDQor44K144Kk44OI44KmLOODqOOCt+ODkuODiA0KK+OCs+ODkOODpOOCtyzjgq3jg6fjgqbjgr7jgqYNCivjg4vjgrfjgqvjg68s44OI44Oi44OfDQor44K/44OK44KrLOOCq+OCuuODkuODrQ0KK+OCuuOCtyzjg6TjgrnjgqoNCivjgqLjg6njgqQs44K344On44Km44OY44KkDQor44Oe44Ko44OH44OpLOODhuODq+ODpuOCrQ0KK+OCs+ODs+ODiSzjg4rjgqoNCivjg4rjgqzjg5vjg6os44Om44Kt44KzDQor44Kk44Ov44K144KtLOODn+ODpOODkw0KK+ODiuOCq+OCv+ODiyzjgr/jgqvjgrcNCivjg4rjgqvjgqzjgq0s44Kx44Kk44KzDQor44Kv44Ov44OP44OpLOODnuOCs+ODiA0KK+OCueOCuuOCrSzjg6bjgq0NCivjgr/jg4As44Ko44Kk44KtDQor44Ov44OALOODiuOCquOCsw0KK+OCteODjizjg5Ljg63jgrcNCivjg4jjgq3jgr8s44OK44OE44KzDQor44Kz44K144KkLOODpuOCpuOCsw0KK+OCu+OCtOOCqCzjgrXjg4jjgrMNCivjg4rjgqvjgqQs44Ki44OE44OfDQor44OP44Op44OALOODiOOCt+ODnuOCtQ0KK+OCreODjuOCt+OCvyzjg5/jg4HjgqoNCivjg5/jg6Tjgrbjgq0s44Kr44K644OfDQor44K/44Kt44K244OvLOODnuOCteOCouOCrQ0KK+OCteODiOOCpizjgrPjgqbjgqTjg4Hjg63jgqYNCivjg5/jgrrjgrfjg54s44K/44Kx44OrDQor44K/44OL44Kw44OBLOODj+ODq+ODnw0KK+ODnuODhOOCt+OCvyzjgr/jgqvjgrcNCivjgrnjgq7jgqbjg6ks44Kx44Oz44K/44Ot44KmDQor44K/44OL44Ks44KtLOOCu+OCpOOCsw0KK+OCteODiOOCpizjgrfjgrLjgqoNCivjg6Tjg57jgqvjg68s44K144OA44OP44OrDQor44K544K644KtLOOCt+OCsuODkuODrQ0KK+ODiOOCr+ODgCzjg57jg7Pjg4rjg6oNCivjgqTjg6/jg54s44OO44OW44Ki44KtDQor44Kq44Kq44OP44OpLOODpuOCreODiuOCqg0KK+OCt+OCquODjOODnizjg5Ljg4fjg4jjgrcNCivjgrnjgrrjgq0s44Ki44Kt44Oo44K3DQor44K544K644KtLOODqOOCt+OCsw0KK+OCueOCuuOCrSzjg47jg5bjgqLjgq0NCivjgrvjgq0s44Kq44K144OgDQor44K544K644KtLOODhOODiOODoA0KK+OCueOCrOOCqizjg4bjg4TjgrgNCivjgrnjgrrjgq0s44Kx44Kk44K/44Ot44KmDQor44K144OJ44OI44OiLOOCouOCreODqQ0KK+OCt+ODnizjg5/jg47jg6sNCivjgrXjgqTjg4jjgqYs44Kq44K144OgDQor44K544K644KtLOODnuOCteODkuODrQ0KK+OCteOCpOODiOOCpizjg6bjgq3jgqoNCivjgr3jg54s44Kq44K144OgDQor44K144OI44KmLOOCseODs+OCuA0KK+OCt+ODreOCteOCrSzjg6jjgqbjgqTjg4ENCivjgrnjgrrjgq0s44Oo44Km44K444Ot44KmDQor44K544K644KtLOODhuODhOODreOCpg0KK+OCueOCruODouODiCzjg57jgrXjgqoNCivjgrXjgqvjgqQs44K344Oz44Kk44OBDQor44K544K644KtLOOCq+OCuuODpuOCrQ0KK+OCteODiOOCpizjgr/jg4TjgrgNCivjgrfjgqrjgr8s44OI44Oo44KqDQor44K944OeLOOCq+ODs+OCuA0KK+OCt+ODpeODieOCpizjgr/jgqvjgqoNCivjgrXjgq/jg6njgqQs44OI44K344KqDQor44K944Km44OkLOOCu+OCpOOCuA0KK+OCteODr+ODoOODqSzjg4rjg6vjg58NCivjgrvjgqos44Om44Km44K4DQor44K344Of44K6LOODiOOCt+OCqg0KK+OCteOCreODouODqizjgqTjg6/jgqoNCivjgrXjgqTjg4jjgqYs44OS44K144KqDQor44K344Of44K6LOOCqOOCpOOCvuOCpg0KK+OCt+OCquODjuODpCzjgq3jg6jjgqvjgroNCivjgr/jgqvjgq4s44OS44OH44KqDQor44K/44Kt44Kk44K3LOODquODp+OCpuOCuA0KK+ODiOODkCzjg57jgrXjgrcNCivjgr/jgrDjg4Es44Oe44K144KqDQor44K/44Kr44OOLOODoOODjeOCqg0KK+OCv+OCq+ODpOOCuSzjg4jjg6jjg58NCivjgr/jg4rjgqss44K344Ky44OrDQor44K/44Kr44OP44OeLOODqOOCt+OCouOCrQ0KK+ODhOODgeODgCzjg57jg6Ljg6sNCivjgr/jgqvjgqos44Oe44K544OfDQor44K/44OL44Kw44OBLOODn+ODgeOCouOCrQ0KK+ODhOOCuOOCq+ODryzjg6bjgqbjgqTjg4ENCivjg6jjgrfjgrbjg68s44Oe44K144OP44OrDQor44K/44OK44KrLOOCuOODpeODs+OCvuOCpg0KK+OCv+ODnuODqyzjg57jgrXjg58NCivjgr/jgqvjgq4s44Kt44On44Km44KzDQor44OE44ON44OS44OtLOOCuOODpeODs+OCuA0KK+OCv+OCq+ODj+OCtyzjg4jjgrfjgqLjgq0NCivjgqLjgrXjgqQs44Om44Km44K4DQor44K/44Kr44K144KtLOOCouOCreODqQ0KK+OCv+OCq+ODiuODnyzjg57jgrXjg6sNCivjg4jjg6Ljg4rjgqws44OE44ON44Kr44K6DQor44K/44Kr44KuLOOCpOODhOOCqg0KK+ODhOOCq+ODouODiCzjgqLjgq3jgqoNCivjg4bjg6njgqbjg4Es44K144OA44Om44KtDQor44K/44OO44Kq44KrLOOCueOCueODoA0KK+OCpuOCueOCrizjgqvjgrrjg5Ljg60NCivjgqbjg4Tjgq0s44OG44OE44KqDQor44Km44OB44OALOOCseODs+OCueOCsQ0KK+OCpuODoeODoOODqSzjg4jjgrfjgqoNCivjgqbjg44s44OI44K344OS44OHDQor44Ov44K/44OK44OZLOODkuOCteODpuOCrQ0KK+ODr+OCv+ODiuODmSzjgqvjg4Tjg4rjg6oNCivjg6/jgr/jg4rjg5ks44Kz44Oz44K044KmDQor44Ov44OALOOCv+OCseODn+ODhA0KK+OCquOCquOCvyzjg57jgrPjg4gNCivjg4rjgqvjgrjjg54s44Kx44Kk44Kk44OBDQor44OV44Or44K144OvLOODhOODqOOCtw0KK+OCq+OCt+ODr+OCrizjgrMNCivjg4/jgr8s44K344On44Km44K544KxDQor44Km44K344K444OeLOODnuOCteOCq+OCug0KK+ODnuODhOOCpCzjgqLjgq3jg6kNCivjgqvjg6/jg4os44OA44Kk44K444Ot44KmDQor44Of44Ok44Oi44OILOOCv+OCq+ODkuOCtQ0KK+ODqOOCt+ODgCzjgrnjg5/jg6bjgq0NCivjgqrjgqrjgqvjg6/jg6ks44Ky44Oz44K/44Ot44KmDQor44K544Ok44OeLOOCr+ODs+ODreOCpg0KK+OCueOCuuOCrSzjg6bjgqbjgrgNCivjgq/jg4vjgq7jgr8s44Oo44Km44Kk44OBDQor44Kt44OJLOODnuOCteOCtw0KK+OCpOOCt+OCpCzjg4Hjgqvjg4jjgrcNCivjgqbjgqjjg4As44K/44Kr44K3DQor44Kk44OB44Kr44OvLOOCq+OCuuOCqg0KK+OCquOCteOCuOODnizjg4jjgrfjg6QNCivjgqbjgqjjg6Djg6ks44OI44K344OS44OHDQor44Kt44Og44OpLOODiOOCreODgQ0KK+ODqOOCs+ODpOODnizjg5LjgrXjgqoNCivjgqTjg4jjgqYs44Oe44K144Om44KtDQor44Of44Ok44OZLOOCq+OCuuODiA0KK+OCv+ODnuOCpCzjgqvjgrrjg5/jg4ENCivjgrPjg6os44Kz44Km44Kk44OB44Ot44KmDQor44Kk44Ov44K144OvLOODnuODiuODlg0KK+ODqOOCt+ODpOOCuSzjgrTjgqYNCivjg57jgr/jgq0s44K344Oz44K0DQor44Ok44Oe44Oi44OqLOOCq+ODhOOCqg0KK+OCv+OCq+OCvyzjg47jg6rjgqoNCivjgrnjg4njgqYs44K344On44Km44KzDQor44Km44Ko44Og44OpLOODpuOCv+OCqw0KK+OCueOCuuOCrSzjg5/jg47jg6sNCivjgrnjgrrjgq0s44Ki44Kt44OpDQor44Ki44Op44KtLOOCu+OCreODjQ0KK+OCq+ODgCzjgqLjgq3jg6kNCivjg4vjgrfjg6jjg6os44Of44OO44OrDQor44Kk44OK44OQLOOCq+OCuuODiA0KK+ODm+ODquOCpCzjg4Tjg43jgqoNCivjgrnjg4njgqYs44Oe44K144OS44KzDQor44K344Ot44Ok44OeLOOCsw0KK+ODhuODqeOCpCzjgqLjgq3jgrMNCivjg57jg4Tjg6Ljg4gs44OK44Kq44K/44KxDQor44Kk44OI44KmLOOCu+OCpOOCuA0KK+OCveODiOODpOODnizjgqvjg4Tjg47jg6oNCivjg5Ljg6njgqrjgqss44Ok44K544K3DQor44OS44Op44KtLOOCv+ODouODhA0KK+OCv+ODiuODmSzjg6bjgqbjgrjjg63jgqYNCivjgr/jg6Hjg4Hjgqss44K/44OG44KqDQor44Oo44ON44OALOODiOOCt+ODkuODhw0KK+OCqOOCuOODnizjg4jjg6Ljg47jg6oNCivjgr/jgqvjg4/jgrcs44Of44K144KzDQor44OG44Op44KqLOODkuODreODkuOCtQ0KK+ODm+ODs+ODgCzjg6bjg58NCivjgqrjg4Hjg6os44Ok44K544OS44OtDQor44Kq44Kq44KkLOODiuOCquODnw0KK+OCq+ODr+OCpCzjg5/jg47jg6sNCivjg6Djg6njgqvjg58s44Of44Oo44K3DQor44OK44Kr44K444OeLOODkuODiOOCtw0KK+OCpOOCt+ODj+ODqSzjg5Xjg5/jgr/jgqsNCivjgqLjgqvjg5vjg6os44Of44OE44OO44OWDQor44Ok44K544OALOOCouOCreODqQ0KK+ODqOOCs+OCuyzjg4jjg6LjgrfjgrINCivjg6jjgrfjgqvjg68s44OI44K344Ot44KmDQor44Ok44Oe44Kw44OBLOODn+ODjuODqw0KK+ODqOOCt+ODoOODqSzjg57jgrXjg5LjgrMNCivjg6jjg43jg4As44Kr44Kq44OrDQor44Ok44Oe44K344K/LOOCt+ODp+OCpuOCvuOCpg0KK+ODpOODnuODgCzjgqjjgqTjgr7jgqYNCivjg6Tjg57jgrbjgq0s44K544K544OgDQor44Oo44K344OALOODkuODreOCtw0KK+ODpOODnuOCv+ODiyzjg5Ljg63jg4TjgrANCivjg6Tjg57jg40s44Oo44ON44K/44KrDQor44Ok44Oe44Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+ODqOOCt+ODgCzjgr/jgqvjgqoNCivjg6Tjg57jgrXjgq0s44OO44Oq44KqDQor44Ok44Oe44Oi44OILOODhuODq+OCqg0KK+ODqOOCs+OCvyzjgqjjgqTjgqTjg4ENCivjg6Tjg57jg4As44Kr44OE44OS44OtDQor44Oo44K344OOLOODgOOCpOOCueOCsQ0KK+ODqOOCt+ODgCzjg6Djg4TjgqoNCivjg47jg6Djg6ks44Oe44K144K/44KrDQor44Ok44Oe44OALOOCteODiOODqw0KK+OCpOOCt+OCq+ODryzjg4Hjg6jjgr/jgrENCivjgrnjgrrjgq0s44OS44Ot44OV44OfDQor44Oe44K544OALOOCseODs+OCuA0KK+OCpOODnuOCpCzjg57jgrXjgr7jgqYNCivjgq3jg6Xjgqbjgr3jgrjjg7Ms44Kx44Oz44K544KxDQor44Ok44Oe44OALOOCouOCreODqQ0KK+ODkuODqeODjizjgr/jgqTjgq0NCivjg4rjgqvjg4vjgrcs44Kr44K644K344KyDQor44K/44OE44K/LOOCt+OCsuODqw0KK+ODn+ODoOODqSzjg57jgrXjgqoNCivjg5Ljg6njg57jg4Qs44K144OA44KqDQor44OI44Of44K/LOODnuOCteODkuODrQ0KK+OCs+ODkOODpOOCtyzjgrfjg7PjgqTjg4Hjg63jgqYNCivjgr/jgrHjg4rjgqss44Oe44K144OS44OtDQor44Ki44Oe44OOLOODjuODquOCsw0KK+OCpOOCt+OCpCzjgq3jg6fjgqbjgrMNCivjgqTjg4cs44K144Kt44KzDQor44Kq44Kr44OALOODquOCqOOCsw0KK+ODkuODqeOCpOOCtyzjg57jg6oNCivjg6jjgrfjg6Ljg4gs44OS44Ot44KzDQor44Kr44Ov44K344OeLOODnuODpuODnw0KK+ODiOODkOOCvyzjg47jg6rjgqvjgroNCivjgr/jg4rjgqss44OS44Kr44OrDQor44Ki44Oz44OZLOODnuODiuODnw0KK+OCv+OCq+ODj+OCtyzjg57jgrXjg5Ljg60NCivjg4jjg5/jg6Tjg54s44Oo44K344Ki44KtDQor44K/44Kr44Ok44OeLOODiOOCt+ODpuOCrQ0KK+ODn+ODpOOCt+OCvyzjg5/jg47jg6sNCivjg4/jgrfjg6Ljg4gs44Of44Kt44KqDQor44OI44Ks44OhLOODn+ODr+OCsw0KK+ODjuOCsOODgSzjgqvjgrrjg57jgrUNCivjg47jgrDjg4Es44Ki44Kt44OpDQor44K944Km44Of44OkLOOCseODs+OCuA0KK+OCreODoOODqSzjg6jjgqbjgrgNCivjgqvjg4jjgqYs44OI44Oi44Om44KtDQor44K544K644KtLOOCseODs+OCuA0KK+OCquOCq+ODgCzjg5Ljg63jg58NCivjg6Tjg44s44K444Ol44Oz44KzDQor44Kq44OO44K144OILOODj+ODsw0KK+ODnuODhOODgCzjg6jjgrfjgqLjgq0NCivjgq3jg6Djg6ks44K/44Kr44K3DQor44K/44Og44OpLOODiOODouODjuODqg0KK+OCq+ODiOOCpizjg4jjgrfjg6QNCivjgqTjg4zjg57jg6ss44OS44Ot44K4DQor44Kq44OO44OH44OpLOODiuOCquOCsw0KK+OCueOCuuOCrSzjg4Hjg4/jg6sNCivjgr/jg4vjgqvjg68s44Ob44K644KoDQor44K144Kv44OeLOOCt+ODng0KK+OCpOODnuODoOODqSzjg6vjg6rjgrMNCivjgqjjgqTjg4njg6Es44Om44KtDQor44Oo44K344KkLOOCv+ODgOODkuODrQ0KK+OCquOCquOCv+OCrSzjg6bjg5/jgrMNCivjgq/jgrnjg6Ljg4gs44Kk44K144KqDQor44Of44Ok44K344K/LOODpuOCreOCqg0KK+ODnuODgeOCpCzjgqvjgrrjg5Ljg60NCivjg4/jg6Tjgrfjg4As44K/44Kr44OI44K3DQor44OP44Or44OP44OpLOOCv+OCq+OCtw0KK+ODhuODqeODouODiCzjg6bjgqbjgrjjg63jgqYNCivjg57jg4Tjg6Ljg6os44Kr44K644KqDQor44Ov44K/44OK44OZLOOCs+OCpuOCuA0KK+OCq+ODjeOCsyzjg6TjgrnjgrcNCivjgqrjg6rjgqzjgrUs44Oe44OE44OO44OqDQor44OE44Kr44Oi44OILOODkuODreODn+ODgQ0KK+ODqOOCt+ODgCzjg5/jg4oNCivjg4vjgrfjg4As44OS44K144KoDQor44OV44Or44Kr44OvLOODquOCqA0KK+ODoOODqeOCq+ODnyzjgr/jgqvjgqoNCivjgqrjgqrjg5Djg6Tjgrcs44Kz44Km44Kt44OBDQor44K144OI44KmLOOCseOCpOOCsw0KK+ODpOODnizjg5Xjg5/jgrMNCivjg5/jg6Tjgr8s44K/44Kr44OG44OrClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0NoaW5lc2UudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0NoaW5lc2UudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5M2EwZjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfQ2hpbmVzZS50eHQKQEAgLTAsMCArMSwxMDkwMiBAQAor77u/Iy8qKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKg0KKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKi8NCisNCivombnlpoINCivkuIHkuIDos6INCivkuIHlt53lgYkNCivkuIHlv4PltZANCivkuIHlvJjlhYkNCivkuIHku7vms5UNCivkuIHlv5flro8NCivkuIHlubjlp6wNCivkuIHkv4rlpKsNCivkuIHlu7rmlocNCivkuIHmmKDntJQNCivkuIHnvr/mlocNCivkuIHlk7INCivkuIHlgYnmsJENCivkuIHlnIvmooUNCivkuIHmt5HnjrINCivkuIHnlKbljZcNCivkuIHmr5PlvaUNCivkuIHpm43lk7INCivkuIHntrrmhacNCivkuIHmhafltZANCivkuIHnkp/mpZMNCivkuIHorb3nkLMNCivkuIHpi5DpjrANCivljZzmraPlgKsNCivkuo7lvIvnv5QNCivkuo7np4Dnvo4NCivkuo7np4nlvJgNCivkuo7muIXoj68NCivkuo7mrr/ogZYNCivlsbHlgpENCivlsLnlr7jmrKMNCivlsLnlsYXmiY0NCivlsLnmjK/lqIENCivlsLnnkZ7osZANCivlsLnmm4nmgakNCivku4flrrbnkKoNCivlrZTlrojkuK0NCivlrZTmmbrmnbANCivlrZTnuYHpnJYNCivlsKTlv4PnkZwNCivlsKTlkJ/mlocNCivlsKToia8NCivlsKTmmI7ku7INCivlsKTkv4rpn78NCivlsKTmmJ/nrZYNCivlsKTlgYnku5UNCivlsKTmt6jnupMNCivlsKTmrL3mqIINCivlsKTnm5/osrQNCivlsKTlr6zlro8NCivlsKTpn7vnkIcNCivlsKTokpTokLENCivmloflv5flv6ANCivmlofnnJ/oirENCivmloflhIDoqaANCivmlrnlo6vpipgNCivmlrnlpKnkuK0NCivmlrnmlofpi5INCivmlrnmsLjmuIUNCivmlrnmsZ3ogrINCivmlrnlrZ3lkJsNCivmlrnlv5fmmI4NCivmlrnnp4DmlY8NCivmlrnkvbPkv4oNCivmlrnlubjlrpwNCivmlrnmgKHmvZQNCivmlrnplbfmj5oNCivmlrnkv4rpm4QNCivmlrnlpZXmlowNCivmlrnlu7rmmboNCivmlrnlvaXnqIsNCivmlrnmmKDoiqwNCivmlrnmn4/mrL0NCivmlrnnp4vpjKYNCivmlrnoi6Xnj4oNCivmlrnph43lh7ENCivmlrnmmYnlvrcNCivmlrnlgaXliZsNCivmlrnlvanlrpwNCivmlrnmt5HoiqwNCivmlrnmt5HlhJINCivmlrnlh7HnjrINCivmlrnmma/lvJgNCivmlrnnrZbmsJENCivmlrnpm4XnkKoNCivmlrnmhJvnj40NCivmlrnnkZ7pgaANCivmlrnoo5XmrL0NCivmlrnlmInoiIgNCivmlrnnv6DptLsNCivmlrnmhafnkLQNCivmlrnpnZzlrpwNCivmlrnnk4rlhIANCivmlrnpupfpm4UNCivmlrnpkJjpi5INCivmlrnoj4DokI0NCivmr5vmlofli4cNCivmr5vkvanlqJ8NCivmr5vlvaXllqwNCivmr5vmt5HoiqwNCivmr5vmvKLmooUNCivmsLTnpaXoi5MNCivniZvosrTos6INCivnjovkuIDnj40NCivnjovkuYPkv5ANCivnjovlipvlubMNCivnjovkuIrntq0NCivnjovlo6vlv6ANCivnjovlo6vmpq4NCivnjovlo6vosaoNCivnjovlpKfmmIwNCivnjovlrZDmiJANCivnjovlrZDoi7ENCivnjovlrZDnhpkNCivnjovlsI/oiqwNCivnjovkuK3lubMNCivnjovkuK3mhpMNCivnjovlsLnogZYNCivnjovku4HlkJsNCivnjovku4HlrpcNCivnjovku4HoiJwNCivnjovlhYPliqkNCivnjovlhYPoiIgNCivnjovlj4vlv5cNCivnjovlpKnmlocNCivnjovlsJHmlocNCivnjovlv4Plv6ANCivnjovlv4PmgKENCivnjovlv4PmmboNCivnjovmloflubMNCivnjovmloflkJsNCivnjovmloflv5cNCivnjovmlofmnbANCivnjovmlofpg4ENCivnjovmlofnkKoNCivnjovmlofnkaQNCivnjovmlofptLsNCivnjovmlrnmgKENCivnjovmnIjlqbcNCivnjovkuJblrocNCivnjovkuJbmmI4NCivnjovkuJblgpENCivnjovkuJblu6MNCivnjovkuJXpipMNCivnjovlj6/mrKMNCivnjovlt6fnkakNCivnjovlvJjmr4UNCivnjovmraPlqIENCivnjovmraPpgZQNCivnjovmsLjku4ENCivnjovmsLjmmIcNCivnjovmsLjoqqANCivnjovnjonmlocNCivnjovnjonnj6ANCivnjovnjonpm7INCivnjovnlJ/li7MNCivnjovnq4vmooUNCivnjovnq4vnkYsNCivnjovku7LnkKYNCivnjovlhYnpuoMNCivnjovlkInkvbMNCivnjovlpoLnjokNCivnjovlrofmuIUNCivnjovlronlh7ENCivnjovml63lhagNCivnjovmnInmrIoNCivnjovoh6rlvLcNCivnjovkvZDovJQNCivnjovkvK/pgLgNCivnjovliKnnlJ8NCivnjovlkJvnkZ4NCivnjovlppnntIUNCivnjovlrZ3lkJsNCivnjovlro/ku4ENCivnjovlro/lk7INCivnjovlro/lmIkNCivnjovluo/ntrgNCivnjovlv5fku4ENCivnjovlv5fmlocNCivnjovlv5flvJgNCivnjovlv5flkYgNCivnjovlv5flv6ANCivnjovlv5fls7ANCivnjovlv5flgYkNCivnjovlv5fmuIUNCivnjovlv5fmrL0NCivnjovlv5foqqANCivnjovlv5fosaoNCivnjovlv5fpipgNCivnjovmnY/lpoINCivnjovnp4DkupENCivnjovnp4DoiqwNCivnjovnp4Dnj6ANCivnjovnp4Dpm68NCivnjovnp4DmpL8NCivnjovogrLlvrcNCivnjovosLfnpZ4NCivnjovkup7lv5cNCivnjovkvp3pn7sNCivnjovkvbPnj40NCivnjovkvbPnkKoNCivnjovkvakNCivnjovkvanpn7MNCivnjovkvanoqakNCivnjovlnaTos6INCivnjovlrZ/orJkNCivnjovlrpfmo4sNCivnjovlrpzlvaUNCivnjovlsqHpmbUNCivnjovlv7XmhYgNCivnjovmgKHku4ENCivnjovmgKHmlocNCivnjovmgKHmlrkNCivnjovmgKHnj40NCivnjovmgKHmuIUNCivnjovmgKHlqbcNCivnjovmgKHmmbQNCivnjovmgKHpm4UNCivnjovmgKHomIsNCivnjovmib/oiJwNCivnjovmmI7ku4ENCivnjovmmI7nj4oNCivnjovmmI7lr4wNCivnjovmmIDnj6kNCivnjovmrKPkuYsNCivnjovmrKPmhacNCivnjovms5Pnv5QNCivnjovmsrvpgqYNCivnjovnjqvmqLoNCivnjovoirPmhacNCivnjovpgrXpg4ENCivnjovph5Hoj68NCivnjovpm6jmuZgNCivnjovkuq3piJ4NCivnjovkv6Hku4ENCivnjovkv6Hms7ANCivnjovkv6Hlr4wNCivnjovkv6Hoo5UNCivnjovkv4rku4ENCivnjovkv4rnq4sNCivnjovkv4rlvaUNCivnjovkv4rmuIUNCivnjovkv4rlgpENCivnjovkv4rlh7ENCivnjovkv4rlh7ENCivnjovkv4rlr4wNCivnjovkv4rmrL0NCivnjovkv4rotoUNCivnjovkv4rpgZMNCivnjovkv4rpvo0NCivnjovkv57mlocNCivnjovlhqDlgKsNCivnjovlhqDnhLYNCivnjovliYfli50NCivnjovli4Hlh4wNCivnjovlk4Hmt4cNCivnjovlpZXlkJsNCivnjovlpZXpiJ4NCivnjovlp7/ku4oNCivnjovlp7/okI0NCivnjovlqIHog70NCivnjovlrqPljb8NCivnjovlu7rlsbENCivnjovlu7rmlocNCivnjovlu7rmlL8NCivnjovlu7rlh7ENCivnjovlu7rmrL0NCivnjovlu7rpm4QNCivnjovlu7rmlowNCivnjovlvaXog70NCivnjovlvaXmmboNCivnjovlvovkuYsNCivnjovmgJ3mjbcNCivnjovmgJ3mvZQNCivnjovmlL/msrsNCivnjovmlL/mrIoNCivnjovmmK3kuroNCivnjovmmK3mt5ENCivnjovmmK3mh78NCivnjovmmJ/nmpMNCivnjovmmLHlh7ENCivnjovmmLHomIsNCivnjovmn4/mrKMNCivnjovmn4/loK8NCivnjovmn4/piJ4NCivnjovmtL7ou5INCivnjovngrrokqgNCivnjovnjrLoi7ENCivnjovnm4jlv4MNCivnjovnm4jlgpENCivnjovnm4jpm4UNCivnjovnpYjpiJ4NCivnjovnp4vmg6ANCivnjovntIANCivnjovnvo7njokNCivnjovnvo7njrINCivnjovnvo7mt5ENCivnjovnvo7mg6ANCivnjovnvo7pm68NCivnjovnvo7mh78NCivnjovoh7Tmo6ANCivnjovoi6XnrZENCivnjovoi7HmlocNCivnjovoi7Hok4kNCivnjovooY3mmJMNCivnjovosp7mh78NCivnjovpg4HmrKMNCivnjovpg4HlqbcNCivnjovpg4Hoj4ENCivnjovpg4Hnj7oNCivnjovpn4vnv5QNCivnjovkv67omK0NCivnjovlk7LogbANCivnjovlrrblgYkNCivnjovlrrbnkZwNCivnjovlsZXnkYsNCivnjovmgoXlpoINCivnjovmjK/lrocNCivnjovmjK/mtakNCivnjovmmYLolJoNCivnjovmoYLlspENCivnjovmtbflpKkNCivnjovmtanlgKsNCivnjovnj67lgKsNCivnjovnj67nkocNCivnjovntKDljb8NCivnjovntJTnvo4NCivnjovojLnppqgNCivnjovlgYnmsJENCivnjovlgYnlt54NCivnjovlgYnou40NCivnjovlgYnlvrcNCivnjovlgaXmsJENCivnjovlgaXli7MNCivnjovlnIsNCivnjovlnIvlvaUNCivnjovlnIvpmoYNCivnjovlnIvpvo0NCivnjovln7fkv6ENCivnjovln7nmqLoNCivnjovlqYnnkZwNCivnjovltIfmmI4NCivnjovltJHpvo0NCivnjovlvanpnJ4NCivnjovmg4fmhacNCivnjovllZ/lrpcNCivnjovllZ/mqLUNCivnjovmlY/osp4NCivnjovmlY/pipMNCivnjovmmajmm4QNCivnjovmooXomK0NCivnjovmt7PmhacNCivnjovmuIXptLsNCivnjovmt5HmgKENCivnjovmt5HlhqANCivnjovmt5HnnIkNCivnjovmt5HlqJ8NCivnjovmt5HlqpsNCivnjovmt5Hpm68NCivnjovmt5HmhacNCivnjovmt5Hpn7sNCivnjovmt6jnkakNCivnjovnpaXlrocNCivnjovnpaXpnJYNCivnjovntLnnnJ8NCivnjovojonmsbYNCivnjovojonpm68NCivnjovpm6rlpoINCivnjovlgpHnq4sNCivnjovlh7HlvJgNCivnjovlh7HmgKENCivnjovlh7HokoINCivnjovli53lvJgNCivnjovli53pm4QNCivnjovljZrmlocNCivnjovljZrkv64NCivnjovloK/lvJgNCivnjovlqbflhIANCivnjovlr4zmmIwNCivnjovlvqnovJ0NCivnjovmg6DlkJsNCivnjovmg6DnjrINCivnjovmg6DmlY8NCivnjovmg6DmhacNCivnjovmlabmraMNCivnjovmmbTlp78NCivnjovmma/lhYMNCivnjovmma/ms4kNCivnjovmmbrlvJgNCivnjovmmbrnq4sNCivnjovmmbrnm4oNCivnjovmmbrps7QNCivnjovmmbrpvo0NCivnjovmnJ3msLgNCivnjovmnJ3pjbUNCivnjovmrL3luJ0NCivnjovmuZjpm7INCivnjovnkKoNCivnjovnkKbmnpoNCivnjovnmpPmraMNCivnjovntKvpm68NCivnjovnv5Tlr6cNCivnjovoiJLnkZwNCivnjovoiJznlJ8NCivnjovoj4HomK0NCivnjovoqaDmhacNCivnjovosrTpvo0NCivnjovpgLjkv64NCivnjovpgLLptLsNCivnjovplpTpn4sNCivnjovpm4XkvLYNCivnjovpm4Xlp78NCivnjovpm4Xosp4NCivnjovpm4Xmg6ANCivnjovpm4Xpm68NCivnjovpm4XlhIANCivnjovpm4XmhacNCivnjovpm68NCivnjovpm7LnlJ8NCivnjovpoIbptLsNCivnjovli6TlloQNCivnjovmhI/mg6ANCivnjovmhYjmhbYNCivnjovmhJvlmIkNCivnjovmlaznv5QNCivnjovmlrDmhacNCivnjovmpoblr4wNCivnjovmr5Poj4ENCivnjovmr5PnhYcNCivnjovnhafoiIgNCivnjovnkZ7lkJ8NCivnjovnkZ7ng70NCivnjovnkZ7pm7INCivnjovnkZ7poKQNCivnjovnkZ7olowNCivnjovnm5/ku4ENCivnjovnqJzpiJ4NCivnjovogZYNCivnjovogZblsKQNCivnjovogZbmt7MNCivnjovogZbmo4sNCivnjovogZbntq0NCivnjovogZbnkYsNCivnjovoo5XmraMNCivnjovoo5XmmboNCivnjovoqanpg4ENCivnjovoqanlqbcNCivnjovoqanpm4UNCivnjovoqanppqgNCivnjovpgZPku4ENCivnjovpiYXnv5QNCivnjovpnZbpm68NCivnjovpvI7lhYENCivnjovlmInlkJsNCivnjovlmInpg4ENCivnjovlmInnkKoNCivnjovlmInovrINCivnjovlmInmhacNCivnjovlmInoiIgNCivnjovlmInpvaENCivnjovlvbDmh4sNCivnjovmpq7nmbwNCivnjovmvKLnpaUNCivnjovnnb/lkJsNCivnjovnoqnmhbYNCivnjovnpo/npaUNCivnjovntq3lpoINCivnjovntq3pm68NCivnjovntq3nh6YNCivnjovnv6Doj68NCivnjovokrzpvo0NCivnjovosarlgpENCivnjovpipjmooUNCivnjovpipjptLsNCivnjovps7PlrpwNCivnjovlhIDnqY4NCivnjovlvrfnmpMNCivnjovmhbbloIINCivnjovmhaflkJsNCivnjovmhafoi7ENCivnjovmhaflh7ENCivnjovmhafpm68NCivnjovmhafpnZwNCivnjovmqJnmrL0NCivnjovnkb7nkZwNCivnjovovJ3pipgNCivnjovlhJLpmoYNCivnjovmhrLnm58NCivnjovmm4npn7MNCivnjovmm4npm68NCivnjovmm4nnkYsNCivnjovnh5XlvLcNCivnjovoiIjpgqYNCivnjovolZnlrrkNCivnjovpjKvnpb8NCivnjovpjKbmhacNCivnjovpnZzmgKENCivnjovpnZznkKoNCivnjovpnZzmhacNCivnjovniLXmmpANCivnjovoh4bpiLQNCivnjovoloflqpsNCivnjovorJnntq0NCivnjovptLvlv5cNCivnjovptLvpiJ4NCivnjovnpq7orJkNCivnjovlr7Xmg6ANCivnjovngJrln7oNCivnjovnk4rnj64NCivnjovnk4rnkaQNCivnjovnuarltZANCivnjovorYnpm4QNCivnjovpn7vmt5ENCivnjovptawNCivnjovpupLpiJ4NCivnjovpupfoiqwNCivnjovpupfmt5ENCivnjovpupfnkKYNCivnjovpupfpm68NCivnjovpupPmlq8NCivnjovlr7bpvo0NCivnjovnubzloK8NCivnjovogIDmmokNCivnjovogIDmhbYNCivnjovogIDpkLgNCivnjovpkJjpipgNCivnjovppqjmlY8NCivnjovppqjoi7kNCivnjovpvaHmopMNCivnjovlhLfnqY4NCivnjovmq7vlqJ8NCivnjovouo3pnJYNCivnjovpoa/ljYkNCivnjovoiorpm68NCivnjovlp7Xpm68NCivnjovmtZ/nvo4NCivnjovnkIflp78NCivnjovnv4ronqINCivnjovmo6jlvrcNCivnjovnkK7nkYsNCivnjovnkKHpm68NCivnjovlq4bmo7sNCivnjovnkYvpiLQNCivnjovnrbHlqbcNCivnjovnrbHokLENCivnjovpiLrmrKMNCivnjovpiLrmpI0NCivnjovok4HlhIANCivnjovolo/pm68NCivnjovlrL/mt5ENCivkuJbmvZPpnZwNCivkuJjnnJ/ntroNCivlhonlhYbnj40NCivljIXlv5fmlocNCivljIXlrq7ntq0NCivlj6TkuIDnnJ8NCivlj6TmnIjlqKUNCivlj6Tnjonps7MNCivlj6Tnp4DpiLQNCivlj6TkvannjokNCivlj6Tmib/lvJgNCivlj6TmmI7mmZ8NCivlj6Tkv4rntrENCivlj6Toi7HlsbENCivlj6TmoYLoj4oNCivlj6Tmg5/pipgNCivlj6TojonpnJwNCivlj6TmmbrlgYkNCivlj6Tpm7Lku4ENCivlj6ToqanlhIANCivlj6TlrbjmtrUNCivlj6Tkv7bntroNCivlj7jpoIblrokNCivlj7LlhYjptLsNCivlj7LmmI7ljp8NCivlj7LlnIvnpo8NCivlj7LogZbptLsNCivlj7Lmm5zlvbANCivlt6blrpflhYMNCivlt6bok4wNCivnlJjmsLjoo5UNCivnlJjlrZ/pvo0NCivnlJjmlL/lvJgNCivnlJjmg6Doj68NCivnlJjpnIjpnJYNCivnlLDkuJbos6INCivnlLDlhYbnkKoNCivnlLDmspDmgakNCivnlLDkvanngZ0NCivnlLDmgKENCivnlLDoirPojLkNCivnlLDoi7Hlv5cNCivnlLDnj67kv4MNCivnlLDmt5HlkJsNCivnlLDmrL3mlocNCivnlLDlmInnjrINCivnlLDmm4npiJ4NCivnlLDnkqfoj4ANCivnlLPlv5fmlowNCivnlLPlr4zpkasNCivnmb3lpKflsLkNCivnmb3lhajmiJANCivnmb3lspHmgKENCivnmb3kvbPmuJ0NCivnmb3lrpzpjJoNCivnmb3mrKPmnb4NCivnmb3njrLmhYgNCivnmb3mjK/mupANCivnmb3ogL/ooYwNCivnmb3mt5HnkZwNCivnmb3llpzmlocNCivnmb3oiJzlhYMNCivnmb3nhYzpupINCivnmb3mpq7kv64NCivnmb3pnZzlpoINCivnmb3pupflqJwNCivnn7PkuYPlpoINCivnn7PkuJblkI0NCivnn7Pnjonps7MNCivnn7Pml63nlJ8NCivnn7PogrLnjp8NCivnn7PkvbPok4kNCivnn7Plrpfku4ENCivnn7PmmI7lkagNCivnn7PoirPnj4oNCivnn7Pnvo7njrINCivnn7Pls7vlubMNCivnn7PntJTntroNCivnn7PlvanmhacNCivnn7PlgpHlrocNCivnn7PmnJ3lrokNCivnn7Ppm4Xmg6ANCivnn7PmhbblkowNCivnn7PpjKboiKoNCivnn7PppqXnkYQNCivnn7PnkYvpnZwNCivkvI3kuJbmj5oNCivkvI3np4Dok4kNCivkvI3lu7rmlocNCivkvI3lrrboqrwNCivkvI3lgaXptawNCivkvI3noqfnjrINCivku7vmiY3kv4oNCivku7vlkJvmlY8NCivku7vkv4rlhJINCivku7vntJTmhacNCivku7vmlrDomK0NCivku7vnrbHmuIUNCivljbHmmI7lurcNCivlkJHopb/pmb0NCivlkJHlvrflrrkNCivlronlv5flgYkNCivmiJDkuLnnjrINCivmm7LmmIzpmoYNCivmnLHkuZnnnJ8NCivmnLHlv4PmgKENCivmnLHmlofnoqcNCivmnLHkuJbpiJ4NCivmnLHmraPmlocNCivmnLHnjonmsbYNCivmnLHkuqbkuLkNCivmnLHnmb7mmZ8NCivmnLHlpo3lpoINCivmnLHluIzmjK8NCivmnLHlv5fmtIsNCivmnLHmspvmgKENCivmnLHogrLkvZENCivmnLHogrLnkakNCivmnLHkvbPnkKoNCivmnLHlrpfolJoNCivmnLHlv7Xoi7ENCivmnLHmgKHoh7sNCivmnLHmnbHmh4kNCivmnLHnp4nmhacNCivmnLHpgrHmmI4NCivmnLHkv4rnpaUNCivmnLHkv4rpvo0NCivmnLHlpY7lt54NCivmnLHlu7rms7ANCivmnLHlvaXlhJINCivmnLHmlL/lk7INCivmnLHmn4/okrwNCivmnLHnj43mhacNCivmnLHnp4vmhacNCivmnLHoi6XmooUNCivmnLHpg4Hluq0NCivmnLHljp/lro8NCivmnLHlrrbmraMNCivmnLHlrrbmrKMNCivmnLHlrrbmhacNCivmnLHlrrnnt7QNCivmnLHls7DoqrwNCivmnLHmmYLlvaUNCivmnLHmm7jos6INCivmnLHmrrflu7cNCivmnLHnj67lhIANCivmnLHnpZDlkYgNCivmnLHntJTnkakNCivmnLHlgYnlgpENCivmnLHlgaXoqqANCivmnLHln7nokLENCivmnLHlurfpipgNCivmnLHmlY/pgZMNCivmnLHmt5Hmg6ANCivmnLHpmbPllZ/mupANCivmnLHlr5PnkIYNCivmnLHmnJ3pup8NCivmnLHoqaDoga8NCivmnLHpm4XpiLQNCivmnLHll6PoiqwNCivmnLHnkZ7li4cNCivmnLHpgZTmmI4NCivmnLHmpq7lro8NCivmnLHnpo/lsbENCivmnLHps7PolocNCivmnLHmhafnnJ8NCivmnLHovJ3ogIANCivmnLHmm4nmmbQNCivmnLHpnZzmlocNCivmnLHnkr/lsLkNCivmnLHpupflqbcNCivmnLHoiq7lrpwNCivmnLHnkKzok4ENCivmrKHomK3oi7ENCivmsZ/kuK3lgaUNCivmsZ/lpKnmjogNCivmsZ/mlofmnb4NCivmsZ/mlofnk4oNCivmsZ/kuJboj68NCivmsZ/mraPlgpENCivmsZ/njonljYkNCivmsZ/nq4vls7ANCivmsZ/lkInnpaUNCivmsZ/miJDmlowNCivmsZ/lkYjpmb0NCivmsZ/lv5flro8NCivmsZ/lv5fpmoYNCivmsZ/np4DnjrINCivmsZ/ogrLpnIYNCivmsZ/kvbPoirMNCivmsZ/kvbPntJQNCivmsZ/kvbPpnJYNCivmsZ/kvannjrINCivmsZ/kvannuIgNCivmsZ/ljZTli4cNCivmsZ/lrZ/oip0NCivmsZ/lrZ/mvqQNCivmsZ/lrpflk7INCivmsZ/lrpzoirMNCivmsZ/lrpzmqLoNCivmsZ/lsqnpgZQNCivmsZ/lv6DpgaANCivmsZ/mgKHokLENCivmsZ/mgKHnppsNCivmsZ/mmIzptLsNCivmsZ/mmI7mnb4NCivmsZ/mmI7mm7gNCivmsZ/mmI7nkosNCivmsZ/mmI7ol50NCivmsZ/mnbHmh4sNCivmsZ/mrKPlrrkNCivmsZ/njqnokKkNCivmsZ/oip3mlY8NCivmsZ/plbflo70NCivmsZ/kv6HmnbENCivmsZ/kv4rmmI4NCivmsZ/kv4rlhIQNCivmsZ/kv4roiIgNCivmsZ/lk4HlhIANCivmsZ/lqIHlvrcNCivmsZ/lu7rpipgNCivmsZ/lvaXovJ0NCivmsZ/mgawNCivmsZ/mlL/lhJINCivmsZ/mmK3os6INCivmsZ/mn4/okaYNCivmsZ/njrLmhacNCivmsZ/ntIDmmI4NCivmsZ/nvo7mhacNCivmsZ/oi7Hkv6ENCivmsZ/ooY3pvo0NCivmsZ/poqjpgaANCivmsZ/lrrbpipgNCivmsZ/mjK/lrocNCivmsZ/mm7jnkakNCivmsZ/nj67lrpkNCivmsZ/ntJTnjqsNCivmsZ/lgaXmiJANCivmsZ/lnIvmhbYNCivmsZ/lr4XnlKsNCivmsZ/llZ/ku7INCivmsZ/mop3lnYcNCivmsZ/mt5Hosp4NCivmsZ/nm5vpvo0NCivmsZ/lh7HmvZQNCivmsZ/mg6Doj68NCivmsZ/mmbrntq0NCivmsZ/pgLjlrokNCivmsZ/pm4XmlocNCivmsZ/pm4Xmg6ANCivmsZ/lgrPmsZ8NCivmsZ/nkZ7npaUNCivmsZ/oo5XlnIsNCivmsZ/lmInlgKsNCivmsZ/mppXmq7sNCivmsZ/nv6DoirMNCivmsZ/lr6zmhYgNCivmsZ/mhafoirMNCivmsZ/mhZXlsY8NCivmsZ/mhrbpm68NCivmsZ/nqY7mmI4NCivmsZ/pjKbovJ0NCivmsZ/olb4NCivmsZ/osZDoia8NCivmsZ/pupflqJ8NCivmsZ/liq3lgKsNCivmsZ/lqp4NCivmsZ/mqonnmocNCivmsaDms7Dlro8NCivniZ/mmJUNCivoib7pnZLok4kNCivkvZXlpKfmlrANCivkvZXku4HnlLANCivkvZXlpKnmgakNCivkvZXmlofmlocNCivkvZXmlofokLENCivkvZXkuJbpm4QNCivkvZXmsLjnkLMNCivkvZXnjonmvZQNCivkvZXkupnlvawNCivkvZXlhYnmq7oNCivkvZXml63lubMNCivkvZXlkJvokI0NCivkvZXlv5fmtakNCivkvZXmspvnhpkNCivkvZXogrLmnbANCivkvZXkuqvok4kNCivkvZXkvbPljZcNCivkvZXkvbPnnJ8NCivkvZXkvbPono0NCivkvZXkvanoip0NCivkvZXkvanntJQNCivkvZXlhbbmvqQNCivkvZXlp43ok4kNCivkvZXlrZ/os6INCivkvZXlraPnp6YNCivkvZXlrpflvawNCivkvZXlrpfnhrkNCivkvZXlrpfnpqcNCivkvZXlrpzlgKkNCivkvZXlrpznkocNCivkvZXlsrPnj4gNCivkvZXmgKHlkJsNCivkvZXmib/ku7INCivkvZXmmJPlsZUNCivkvZXmmI7lrpcNCivkvZXmmI7mm7gNCivkvZXmmI7nqY4NCivkvZXmmIflhJINCivkvZXmnb7nkaQNCivkvZXmrKPou5INCivkvZXnp4nmrKMNCivkvZXoirfnkYQNCivkvZXpm6jpm68NCivkvZXkv6HlrpcNCivkvZXkv4rlu7cNCivkvZXkv4rpgZQNCivkvZXkv4ros6INCivkvZXlhqDpnJYNCivkvZXlqIHlvrcNCivkvZXlu7rmqIINCivkvZXlvaXpp5INCivkvZXmgJ3nqY4NCivkvZXmlL/nv7ANCivkvZXmmK3os6INCivkvZXngrPos6INCivkvZXnp4vokLENCivkvZXnvo7njrINCivkvZXoi6XnkZwNCivkvZXpppnokYkNCivkvZXlrrboj4ENCivkvZXls7vmnbANCivkvZXmjK/ntq0NCivkvZXmtZrpipgNCivkvZXntKDlkJsNCivkvZXlgaXntq0NCivkvZXlnIvmmZ8NCivkvZXltIfntq0NCivkvZXmlY/oj4ENCivkvZXmuIXpvo0NCivkvZXmt5HlqbcNCivkvZXmtrUNCivkvZXli53lkIgNCivkvZXmg6DlkJsNCivkvZXmg6DpiLoNCivkvZXoiJLltZANCivkvZXpgLjnhLYNCivkvZXpm4XnkKoNCivkvZXmhI/nkakNCivkvZXnkZ7nvo4NCivkvZXokLHnkocNCivkvZXlmInlsZUNCivkvZXmpq7mlocNCivkvZXntq3ogJUNCivkvZXpipjlro8NCivkvZXmhbboiIgNCivkvZXmhaflhIANCivkvZXlrbjljpoNCivkvZXmm4nnm4gNCivkvZXnh5XlsY8NCivkvZXpjKbpoYwNCivkvZXpnZzlhIANCivkvZXnuZQNCivkvZXpupflkJsNCivkvZXml7vpnJwNCivkvZXnv4rntroNCivkvZnlrZDpipgNCivkvZnlv4PovrINCivkvZnmlofoo5UNCivkvZnlvJjlgYkNCivkvZnlkInnpaUNCivkvZnkvLYNCivkvZnlv5fpvo0NCivkvZnov4UNCivkvZnkvbPpn7MNCivkvZnkvbPoiIgNCivkvZnkvanlqJ8NCivkvZnlnaroirMNCivkvZnlrZ/pnI8NCivkvZnlrpflhJINCivkvZnlrpvlhJINCivkvZnlv6Dnh4gNCivkvZnmmIznv7ANCivkvZnmmI7lqJ8NCivkvZnmmI7mvqQNCivkvZnmnbHmm4kNCivkvZnms5XmmIwNCivkvZnph5HlhbgNCivkvZnkv6HlgYkNCivkvZnkv4rmt7UNCivkvZnkv4rlhJINCivkvZnli4Hmr4UNCivkvZnluJ3mhbYNCivkvZnlvaXpnJYNCivkvZnmlL/pmoYNCivkvZnmmJ/mn5QNCivkvZnnm4jpi5INCivkvZnoi6XluIYNCivkvZnlh4zmmIwNCivkvZnlrrbnkakNCivkvZnms7DnlLcNCivkvZnntKDomK0NCivkvZnlnIvlrokNCivkvZnlqYnokI0NCivkvZnmmajoj68NCivkvZnnm5vmrL0NCivkvZnmg6DmlocNCivkvZnmmbrlgpENCivkvZnpm4Xmt5ENCivkvZnmhYjlrrQNCivkvZnnkZ7okI0NCivkvZnlmInls7ANCivkvZnnpo/mtakNCivkvZnpvYrlqIENCivkvZnmhrLlrpcNCivkvZnoq6cNCivkvZnorJ3ovJ0NCivkvZnpupfnkLQNCivkvZnnkKznkZwNCivliKnnp4DomK0NCivliKnlvrfntYMNCivlkLPkuYPlhYMNCivlkLPljYPmhacNCivlkLPlpKfntq0NCivlkLPlrZDosaoNCivlkLPkuK3lro8NCivlkLPku4HkvZENCivlkLPku4HosrQNCivlkLPlhYPlubMNCivlkLPlhYPlq4gNCivlkLPlsJHpiJ4NCivlkLPlv4Pmg6ANCivlkLPmlofnjokNCivlkLPmlofmgKENCivlkLPmlofnm4oNCivlkLPmloflgpENCivlkLPmlofnmbwNCivlkLPmlofpiLQNCivlkLPmlofmr4UNCivlkLPmlofmlowNCivlkLPngavlsbENCivlkLPkuJblgYkNCivlkLPkuJbpgZQNCivlkLPku5XlvLcNCivlkLPku5/kuIANCivlkLPlubPlkowNCivlkLPlv4Xli50NCivlkLPmraPlpYcNCivlkLPmraPoj68NCivlkLPmsLjmmIwNCivlkLPmsLjoo5UNCivlkLPnjonlkJ8NCivlkLPnjonojLkNCivlkLPnjonmma8NCivlkLPnjonok4kNCivlkLPnq4vmsJENCivlkLPnq4vli6QNCivlkLPkvIromIsNCivlkLPku7Lms4INCivlkLPlhYbmlocNCivlkLPlkInpvo0NCivlkLPlpoLmpaYNCivlkLPlronpgqYNCivlkLPml63ms7ANCivlkLPoh7Pku4ENCivlkLPooYzkuK0NCivlkLPkvLbpupcNCivlkLPlkJvogrINCivlkLPlppnlgKsNCivlkLPlro/ku4ENCivlkLPlro/ln7oNCivlkLPluIznpZYNCivlkLPlv5flro8NCivlkLPlv5fmgYYNCivlkLPlv5flgYkNCivlkLPlv5fmvKINCivlkLPlv5fpvo0NCivlkLPmnY/ml4sNCivlkLPmspvmmYMNCivlkLPmsbbmsbYNCivlkLPnp4DnjrINCivlkLPnp4DntIsNCivlkLPnp4DptZENCivlkLPogrLlrpcNCivlkLPogrLnoqkNCivlkLPogrLpnJYNCivlkLPkup7mrKMNCivlkLPkvp3lpq4NCivlkLPkvp3ok5MNCivlkLPkvbPlkowNCivlkLPkvbPoirMNCivlkLPkvbPljZcNCivlkLPkvbPnjrINCivlkLPkvbPnjrINCivlkLPkvbPlgKkNCivlkLPkvbPlrrkNCivlkLPkvbPnnJ8NCivlkLPkvbPmg6ANCivlkLPkvbPok4kNCivlkLPkvbPmhqwNCivlkLPkvbPmqLoNCivlkLPkvbPnqY4NCivlkLPkvbPolZkNCivlkLPkvbPpnZwNCivlkLPkvbPptLsNCivlkLPkvanlkJsNCivlkLPkvanoirMNCivlkLPkvanln44NCivlkLPkvannj4oNCivlkLPkvannjrINCivlkLPkvanlqKUNCivlkLPkvanntJQNCivlkLPkvanok4kNCivlkLPkvanlhJINCivlkLPkvanoq60NCivlkLPkvanok4ENCivlkLPkvpHluq0NCivlkLPlhbbpnJYNCivlkLPlh73ok4ENCivlkLPlj5Tpjq4NCivlkLPlnaTnpZANCivlkLPlnaTptLsNCivlkLPlpYflk7INCivlkLPlpYfpvo0NCivlkLPlrZ/lrpcNCivlkLPlrZ/oiqwNCivlkLPlrZ/osp4NCivlkLPlrZ/lqJ8NCivlkLPlrZ/ojLkNCivlkLPlrZ/ok4kNCivlkLPlrZ/mhrINCivlkLPlrZ/pjKsNCivlkLPlrZ/olY4NCivlkLPlraPnkb4NCivlkLPlrpflsrENCivlkLPlrpfnpYgNCivlkLPlrpfmoZMNCivlkLPlrpfpmoYNCivlkLPlrpflhJINCivlkLPlrpfmhrINCivlkLPlrpfnv7ANCivlkLPlrpfoiIgNCivlkLPlrpfpvo0NCivlkLPlrprnloYNCivlkLPlrpzoirMNCivlkLPlrpzosp4NCivlkLPlrpznpZANCivlkLPlrpznqYYNCivlkLPlrpzlrKoNCivlkLPlrpvmgKENCivlkLPlrpvnuIgNCivlkLPlsJrlgI0NCivlkLPlsJrlhJINCivlkLPlsqHlhJINCivlkLPlsrHpnJYNCivlkLPlsrPmoZANCivlkLPlubjmnp0NCivlkLPlubjnnJ8NCivlkLPlu7bmmYMNCivlkLPlv6DmlL8NCivlkLPlv6DpnJYNCivlkLPmgKHlkJsNCivlkLPmgKHnj4oNCivlkLPmgKHokI0NCivlkLPmgKHmhbYNCivlkLPmgKHnkakNCivlkLPmgKHmhrINCivlkLPmgKHpnZwNCivlkLPmgKHlq7oNCivlkLPmib/lk7INCivlkLPmib/nkosNCivlkLPmi5sNCivlkLPmmJPpgZwNCivlkLPmmIzluq0NCivlkLPmmIYNCivlkLPmmIbnkosNCivlkLPmmI4NCivlkLPmmI7lv6ANCivlkLPmmI7oirMNCivlkLPmmI7nj40NCivlkLPmmI7lk7INCivlkLPmmI7mga0NCivlkLPmmI7ou5INCivlkLPmmI7pgZQNCivlkLPmmI7nkosNCivlkLPmmI7li7MNCivlkLPmmI7mm4QNCivlkLPmmI7pvo0NCivlkLPmmI7poY8NCivlkLPmmJXlp78NCivlkLPmmIfmqYsNCivlkLPmnbHlkowNCivlkLPmnbHogL8NCivlkLPmnbHpnJYNCivlkLPmnb7mspsNCivlkLPmrKPkvakNCivlkLPmrKPmgKENCivlkLPmrKPlgKsNCivlkLPmrKPnoqkNCivlkLPmrKPlhJINCivlkLPmrKPptLsNCivlkLPms5PnjrMNCivlkLPmsrvoi7ENCivlkLPnjqvlp40NCivlkLPnm7TogJUNCivlkLPnp4nlgKsNCivlkLPnp4nli7MNCivlkLPnp4npp78NCivlkLPoirPpnZINCivlkLPoirPnkZwNCivlkLPoip3nt68NCivlkLPph4foirMNCivlkLPph5HnjokNCivlkLPph5Hmm4YNCivlkLPplbfmn48NCivlkLPpm6jlk7INCivlkLPpnZLogrINCivlkLPpnZLls7ANCivlkLPpnZLnkrANCivlkLPkuq3oqrwNCivlkLPkv6HlubgNCivlkLPkv6Hlr6wNCivlkLPkv6HovJ0NCivlkLPkvq/nkosNCivlkLPkv4rlro8NCivlkLPkv4rlpYcNCivlkLPkv4rmnbANCivlkLPkv4rlgpENCivlkLPkv4rpgZQNCivlkLPkv4rlhIANCivlkLPkv4rlvrcNCivlkLPkv4rmr4UNCivlkLPkv4rnt68NCivlkLPkv4ros6INCivlkLPkv4rpi5INCivlkLPkv4roq7oNCivlkLPkv4rlj6ENCivlkLPkv57nkakNCivlkLPlhqDnvqQNCivlkLPlhqDos6INCivlkLPlhqDnv6wNCivlkLPli4Hpvo0NCivlkLPlk4Hok4kNCivlkLPlpZXmiJANCivlkLPlpZXnvrINCivlkLPlp7/lhIANCivlkLPlp7/mqLoNCivlkLPlqIHoirMNCivlkLPlrqPpi5INCivlkLPlu7rnlJ8NCivlkLPlu7rnlLcNCivlkLPlu7roip0NCivlkLPlu7rpgZQNCivlkLPlu7rlvrcNCivlkLPlu7ros6INCivlkLPlu7rli7MNCivlkLPlu7rml7sNCivlkLPlvaXmhbYNCivlkLPlvovpipgNCivlkLPmgJ3okLENCivlkLPmgJ3nkakNCivlkLPmgJ3nqY4NCivlkLPmlL8NCivlkLPmlL/ml7oNCivlkLPmlL/ljp8NCivlkLPmlL/lvawNCivlkLPmlL/lvrcNCivlkLPmlL/li7MNCivlkLPmlL/nqY4NCivlkLPmlL/pnJYNCivlkLPmmKXnlJ8NCivlkLPmmKXnt6kNCivlkLPmmK3ok4kNCivlkLPmmK3mr4UNCivlkLPmmK3pvo0NCivlkLPmmLHlro8NCivlkLPmn4TlvrcNCivlkLPmn4/pnZINCivlkLPmn4/lhIANCivlkLPmn4/mr4UNCivlkLPmn4/nqY4NCivlkLPngqvlrpcNCivlkLPngrPltqINCivlkLPnjrLlqpsNCivlkLPnmofmrKMNCivlkLPnm4jmvZQNCivlkLPnpYnpvo0NCivlkLPnp4vnvo4NCivlkLPnp4vmhacNCivlkLPntIDlkJsNCivlkLPnvo7lpq4NCivlkLPnvo7njrINCivlkLPnvo7mg6ANCivlkLPnvo7npo4NCivlkLPnvo7mhacNCivlkLPnvo7onqINCivlkLPnvr/oq6ANCivlkLPoh7TpipgNCivlkLPoi6Xoj68NCivlkLPoi7Hlro8NCivlkLPoi7HptLsNCivlkLPosp7lrpwNCivlkLPosp7nkakNCivlkLPpg4HoirMNCivlkLPph43mr4UNCivlkLPpo5vpvo0NCivlkLPlgKkNCivlkLPljp/lrocNCivlkLPlk7Lpm68NCivlkLPlk7LmrIoNCivlkLPlrrbmmI4NCivlkLPlrrbnkKoNCivlkLPlrrbmpq4NCivlkLPlrrbosaoNCivlkLPlrrbmhacNCivlkLPlrrnnkakNCivlkLPluq3njYQNCivlkLPmjK/miJANCivlkLPmjK/osaoNCivlkLPmjLrpi5INCivlkLPmmY/lubMNCivlkLPmm7jmpq4NCivlkLPmoYLnrpANCivlkLPms7DmmIwNCivlkLPmtbfoiqwNCivlkLPnj67lkJsNCivlkLPnj67mhYgNCivlkLPnj67npo4NCivlkLPnm4roirMNCivlkLPntKDoiqwNCivlkLPntJTmrKMNCivlkLPou5Lou5INCivlkLPlgYnlgKsNCivlkLPlgYnoqqANCivlkLPlgaXmsJENCivlkLPlgaXpkasNCivlkLPlnIvlgYkNCivlkLPlnIvnjYUNCivlkLPlnIvnhpkNCivlkLPlnIvpipgNCivlkLPloIXnkYsNCivlkLPln7nos6INCivlkLPlqYnlqbcNCivlkLPlqYnmrYYNCivlkLPltIfpipgNCivlkLPlvanpgpENCivlkLPmgqANCivlkLPllZ/mj5oNCivlkLPllZ/mlowNCivlkLPmlY/nnJ8NCivlkLPmlY/piYUNCivlkLPmopPpgKINCivlkLPmt7vpi5INCivlkLPmt5HlpoINCivlkLPmt5HoiqwNCivlkLPmt5Hljb8NCivlkLPmt5HmlY8NCivlkLPmt5Hoj68NCivlkLPmt5Hps7MNCivlkLPmtrXlrpwNCivlkLPnpaXntq0NCivlkLPntLnoj68NCivlkLPojonlqbcNCivlkLPpm6rlpq4NCivlkLPnq5/oirMNCivlkLPlh7Hpm68NCivlkLPli53npboNCivlkLPllqzmo64NCivlkLPlvqnoiIgNCivlkLPmg6DlkJsNCivlkLPmg6DlvakNCivlkLPmg6Dpm68NCivlkLPmlq/nh7sNCivlkLPmmbrmnbENCivlkLPmmbrosaoNCivlkLPmo5/pmoYNCivlkLPnioDpnYgNCivlkLPlloTpipgNCivlkLPoj4Hoj4ENCivlkLPoqaDlrrgNCivlkLPpgLjmsJENCivlkLPpgLjnvqQNCivlkLPpiJ7lqbcNCivlkLPpm4XlnaQNCivlkLPpm4Xpg4ENCivlkLPpm4XltZANCivlkLPpm4XokI0NCivlkLPpm4Xpm68NCivlkLPpm4XntroNCivlkLPpm7LpqaUNCivlkLPlnJPmnJcNCivlkLPmlaznkKoNCivlkLPmr5PnnJ8NCivlkLPmupDnq6ANCivlkLPnkZ4NCivlkLPnkZ7lk7INCivlkLPnkZ7mrL0NCivlkLPnkZ7mhbYNCivlkLPnqJrpnIYNCivlkLPogZblqIENCivlkLPoqanlqbcNCivlkLPoqqDmmIwNCivlkLPpvI7lgYkNCivlkLPlmInkv6ENCivlkLPlmInlqJ8NCivlkLPlmInli50NCivlkLPlmInmpq4NCivlkLPlmInolZkNCivlkLPlr6fnkYQNCivlkLPmpq7ms7ANCivlkLPmvKLpipgNCivlkLPnoqfkv5ANCivlkLPnpo/ph48NCivlkLPntq3lgKkNCivlkLPntq3oo5UNCivlkLPogofpqLANCivlkLPpgaDoqqANCivlkLPpipjmjK8NCivlkLPpipPlj4sNCivlkLPps7PomK0NCivlkLPlvrflhYMNCivlkLPmhbbmlocNCivlkLPmhaflkJsNCivlkLPmhafnjrINCivlkLPmhafosp4NCivlkLPmhafmlY8NCivlkLPmhafpm68NCivlkLPmvZTnj4oNCivlkLPos5zlv6ANCivlkLPmhrLkuK0NCivlkLPmhrblsY8NCivlkLPmm4npnZINCivlkLPmm4nntJQNCivlkLPmm4noj4ENCivlkLPmm4nolocNCivlkLPnh5XoiqwNCivlkLPnqY7ou5INCivlkLPolZnlpoINCivlkLPolZnntIsNCivlkLPpgbXlhYgNCivlkLPpjKbkvbMNCivlkLPpjKbpjrANCivlkLPpnZzlrpwNCivlkLPpnZzmgKENCivlkLPpnZzoirMNCivlkLPpnZzojLkNCivlkLPpnZzpm68NCivlkLPpvo3lr7YNCivlkLPnuL3miJANCivlkLPogbLmupANCivlkLPpgoENCivlkLPptLvmmIwNCivlkLPptLvmo64NCivlkLPmm5zoh6MNCivlkLPosZDlkIkNCivlkLPpjq7liKkNCivlkLPnk4rnjokNCivlkLPpn7vljYkNCivlkLPpupfmmKUNCivlkLPpupflqbcNCivlkLPnjbvoia8NCivlkLPppqjmgKENCivlkLPmh7/lqbcNCivlkLPpoa/lrpcNCivlkLPkvbzkvbwNCivlkLPml7vlhJINCivlkLPnjqDok4kNCivlkLPmmLbokbMNCivlkLPmt6nlrokNCivlkLPnkK7lgpENCivlkLPnkYvnkLMNCivlkLPnrbHnj4gNCivlkLPnkoENCivlkLPpn57lvrcNCivlkYLlrZDosaoNCivlkYLku4HlnJgNCivlkYLlj4vlqbcNCivlkYLmloflsIgNCivlkYLmlofpiLQNCivlkYLkuJbosaoNCivlkYLmraPlrokNCivlkYLnjonnp4sNCivlkYLnq4vlgYkNCivlkYLlpoLoi7ENCivlkYLoh6rpgZQNCivlkYLlv5flro8NCivlkYLlv5fpi5INCivlkYLogrLoirMNCivlkYLogrLnkYsNCivlkYLkvbPlrpwNCivlkYLkvbPlrrkNCivlkYLkvbPmqLoNCivlkYLkvanlp40NCivlkYLkvanntJQNCivlkYLlhbbpnJYNCivlkYLlp43lp40NCivlkYLlraPoirMNCivlkYLlrpfpipgNCivlkYLlrpzoirMNCivlkYLlrpzmmY8NCivlkYLlrpzpnJYNCivlkYLlsYXli7MNCivlkYLlv6DogrINCivlkYLmgKHmhacNCivlkYLml7rpqI8NCivlkYLmmI4NCivlkYLmmI7ms7ANCivlkYLmmI7pvo0NCivlkYLmnbDnt68NCivlkYLmrKPnqY4NCivlkYLoirPkv4oNCivlkYLph5HlvaUNCivlkYLplbfppqgNCivlkYLkv53lsrgNCivlkYLkv4rlhIANCivlkYLkv5ANCivlkYLljZfnlb8NCivlkYLlqIHlvrcNCivlkYLlu7rlvaUNCivlkYLlu7rpi5INCivlkYLlvaXono0NCivlkYLmlL/lvaUNCivlkYLmlL/oq60NCivlkYLmmK3lhIANCivlkYLmn4/lro8NCivlkYLnmoflhbYNCivlkYLnp4vpm7INCivlkYLnvo7mg6ANCivlkYLnvo7pvaENCivlkYLoi7HnkYsNCivlkYLpn4vnrrQNCivlkYLlk7LmmI4NCivlkYLluq3ntq0NCivlkYLmoLzosaoNCivlkYLnpZDlkIkNCivlkYLlgYnmrL0NCivlkYLlnIvln7kNCivlkYLlqYnojLkNCivlkYLmooXpn7MNCivlkYLmt5Hljb8NCivlkYLmt5Hnpo4NCivlkYLnkIbpnJYNCivlkYLntLnmpq4NCivlkYLpm6rnkZwNCivlkYLmg6Doj4ENCivlkYLmmbrlgpENCivlkYLoqaDnnJ8NCivlkYLpm4XnjrINCivlkYLpm4XnkKoNCivlkYLpm6/mrYYNCivlkYLmu4TloK8NCivlkYLogZbnq6ANCivlkYLlmInlhYMNCivlkYLlmInosZANCivlkYLntq3njrINCivlkYLpipjmmboNCivlkYLmhafmg6ANCivlkYLlrbjlkJsNCivlkYLlrbjmmboNCivlkYLlrbjlj6ENCivlkYLnh5XmnpcNCivlkYLpjKbpoIYNCivlkYLpnZzok4kNCivlkYLptLvpup8NCivlkYLpupflqJ8NCivlkYLlu7PlmrQNCivlkYLnv4rmsJENCivlrovlpKfovrANCivlrovkuYvmj4YNCivlrovlv4PmhacNCivlrovkuJbmlocNCivlrovnjonlqbcNCivlrovkvK/nkZwNCivlrovmspvli4cNCivlrovogrLnkYsNCivlrovkvannj4oNCivlrovlrZ/nkZsNCivlrovlubjnnJ8NCivlrovmmIzpnJYNCivlrovmnbHlqIENCivlrovnp4nokLENCivlrovkv4rmtIsNCivlrovlpZXlhJINCivlrovlu7rmrKMNCivlrovmlL/pmoYNCivlrovnprnnkakNCivlrovoh7TpgaANCivlrovlrrbpnJYNCivlrovoiKvoh6MNCivlrovln7nlhYMNCivlrovmlY/oj68NCivlrovllqznjokNCivlrovmnJ3mlowNCivlrovpm7LmmI4NCivlrovlmInku4ENCivlrovnoqfnkLMNCivlrovmhafmvZQNCivlrovnh5XlhLcNCivlrovnq4QNCivlrovml7vnnJ8NCivlt6vlrZDmh78NCivlt6vmiI7mgKENCivlt6vkvannkocNCivlt6vlrpzlrbgNCivlt6vmmI7nv7ANCivlt6voirfnkYsNCivlt6vlhqDoqrwNCivlt6vmn4/mr4UNCivlt6vmjK/lmIkNCivlt6vmuIXmlocNCivlt6vlloTnpo8NCivlt6vlmInoiIgNCivlt6vmm4noiqwNCivlt6vmmZ/pgLgNCivmnY7kuYPmlocNCivmnY7lo6vkuqsNCivmnY7lrZDlhYENCivmnY7lsI/oiqwNCivmnY7kuK3ku7sNCivmnY7kuK3mhacNCivmnY7ku4Hkv64NCivmnY7ku4Hlh7ENCivmnY7ku4rpu5sNCivmnY7lhYPlnIMNCivmnY7lhYPoo5UNCivmnY7lj4vmt7MNCivmnY7lpKnmqLoNCivmnY7lv4Pku4ENCivmnY7lv4PltZANCivmnY7mlocNCivmnY7mloflkIkNCivmnY7mloflv5cNCivmnY7mlofmlL8NCivmnY7mlofojokNCivmnY7mlofmg6ANCivmnY7mlofnkKYNCivmnY7mlofmhI8NCivmnY7mlofpgZQNCivmnY7mlofos6INCivmnY7mlofmlowNCivmnY7mnIjmmJ8NCivmnY7kuJblrokNCivmnY7kuJblgYkNCivmnY7kuJblibQNCivmnY7kuJblr6wNCivmnY7ku6XmlrANCivmnY7lj6/nq4sNCivmnY7lt6fnkLMNCivmnY7lvJjmmIoNCivmnY7mraPlhYMNCivmnY7mraPlvaUNCivmnY7mraPli50NCivmnY7mraPosaoNCivmnY7msLjmmIwNCivmnY7msLjmrL0NCivmnY7msLjptLsNCivmnY7njonkvakNCivmnY7njonljb8NCivmnY7njonnkLMNCivmnY7njonpiLQNCivmnY7nq4vku4ENCivmnY7nq4vlvLcNCivmnY7kuqbmmbQNCivmnY7ku7LnjoQNCivmnY7lhYkNCivmnY7lhYnnpaUNCivmnY7lhYnlgKINCivmnY7lhYbmlowNCivmnY7lkInmlY8NCivmnY7lkI3lgKsNCivmnY7lpoLnj40NCivmnY7lroflvJgNCivmnY7lrojntq0NCivmnY7lronnkLMNCivmnY7miJDmvKINCivmnY7mnInmrL0NCivmnY7nvr0NCivmnY7oh7Pnq6ANCivmnY7kvZDlr6cNCivmnY7kvK/mr4UNCivmnY7lkJvlvaUNCivmnY7lkKvku4ENCivmnY7lpo3nkakNCivmnY7lro/mlocNCivmnY7lro/mtLINCivmnY7lu7flgYkNCivmnY7lv5fmiJANCivmnY7lv5fmmI4NCivmnY7lv5fls7ANCivmnY7lv5flgYkNCivmnY7lv5fnq6ANCivmnY7lv5fpipgNCivmnY7lv5fptawNCivmnY7mspvmnbANCivmnY7msarnm5sNCivmnY7np4DlubQNCivmnY7np4DnjrINCivmnY7np4Dljb8NCivmnY7np4Doj68NCivmnY7np4DomIUNCivmnY7ogrLmnp0NCivmnY7ogrLluq0NCivmnY7ogrLnvqQNCivmnY7ogrLnkakNCivmnY7ogrLono0NCivmnY7opovmsbYNCivmnY7kup7lgKsNCivmnY7kuqzmqLoNCivmnY7kvp3ntJQNCivmnY7kvp3mgYINCivmnY7kvbPmsbYNCivmnY7kvbPmmI4NCivmnY7kvbPoirMNCivmnY7kvbPoiqwNCivmnY7kvbPnjrINCivmnY7kvbPnjrINCivmnY7kvbPnj40NCivmnY7kvbPlgKkNCivmnY7kvbPlrrYNCivmnY7kvbPmmYMNCivmnY7kvbPnnJ8NCivmnY7kvbPoqJMNCivmnY7kvbPpm68NCivmnY7kvbPok4kNCivmnY7kvbPmhbYNCivmnY7kvbPlhJINCivmnY7kvbPmqLoNCivmnY7kvbPnqY4NCivmnY7kvbPoh7sNCivmnY7kvbPpnJYNCivmnY7kvbPpnI8NCivmnY7kvbPpjbUNCivmnY7kvbPok4ENCivmnY7kvoPmtIsNCivmnY7kvankvakNCivmnY7kvanoip0NCivmnY7kvanlp78NCivmnY7kvannj4oNCivmnY7kvannjrINCivmnY7kvanlgKkNCivmnY7kvannnJ8NCivmnY7kvanpmbUNCivmnY7kvanlhIANCivmnY7kvanmm4QNCivmnY7kvanoq60NCivmnY7kvanlrKwNCivmnY7kvpHlrqwNCivmnY7lhbbmvqcNCivmnY7lh73oiqwNCivmnY7ljZPpgZMNCivmnY7lkozmmIwNCivmnY7lnaTmmI4NCivmnY7lnaTmupANCivmnY7lnaTpnJYNCivmnY7lpYflsZUNCivmnY7lpYfnv7ANCivmnY7lrZ/lnaQNCivmnY7lrZ/nj4oNCivmnY7lrZ/lk7INCivmnY7lrZ/ou5INCivmnY7lrZ/lhJINCivmnY7lrZ/nqY4NCivmnY7lrZ/nh6YNCivmnY7lrZ/nkoENCivmnY7lraPoj68NCivmnY7lrpflnaQNCivmnY7lrpflgKsNCivmnY7lrpfmgakNCivmnY7lrpfnvqkNCivmnY7lrpfos6INCivmnY7lrpfmhrINCivmnY7lrpfnqY4NCivmnY7lrpfnv7ANCivmnY7lrpfpnJYNCivmnY7lrpfptLsNCivmnY7lrprpgaANCivmnY7lrpzmmI4NCivmnY7lrpzoirMNCivmnY7lrpzmtLINCivmnY7lrpznjrINCivmnY7lrpzlk7INCivmnY7lrpzls7sNCivmnY7lrpzntJQNCivmnY7lrpzmvZQNCivmnY7lrpzmqLoNCivmnY7lrpzpnJYNCivmnY7lrpzpn5MNCivmnY7lrpzlnJwNCivmnY7lrpvnjrINCivmnY7lrpvokI0NCivmnY7lrpvpnZwNCivmnY7lsJros6INCivmnY7lsqnmmokNCivmnY7lsrHok4ENCivmnY7lsrPls7ANCivmnY7lsrPmqLoNCivmnY7lsrPptLsNCivmnY7lubjlqJ8NCivmnY7lubjpjKANCivmnY7lv6DlkowNCivmnY7lv6DnvqkNCivmnY7lv6DnqY4NCivmnY7lv7XokqgNCivmnY7mgKHmmIwNCivmnY7mgKHnjrINCivmnY7mgKHokLENCivmnY7mgKHlr6wNCivmnY7mgKHmhacNCivmnY7mgKHnkb4NCivmnY7mgKHnqY4NCivmnY7mgKHml7sNCivmnY7mib/lrpcNCivmnY7mib/nkosNCivmnY7mib/pvo0NCivmnY7mmJPkv64NCivmnY7mmJPoq7oNCivmnY7mmIzpgZQNCivmnY7mmIblro8NCivmnY7mmIbpgZQNCivmnY7mmIbpvo0NCivmnY7mmI7liKkNCivmnY7mmI7mgKENCivmnY7mmI7mnbANCivmnY7mmI7lvaUNCivmnY7mmI7kv64NCivmnY7mmI7lk7INCivmnY7mmI7mm7gNCivmnY7mmI7ph5cNCivmnY7mmI7pgZQNCivmnY7mmI7mvZQNCivmnY7mmI7li7MNCivmnY7mmI7mqLoNCivmnY7mmI7oq60NCivmnY7mmI7pnJ4NCivmnY7mmI7lookNCivmnY7mmIDoh7sNCivmnY7mmIoNCivmnY7mmIfnv7ANCivmnY7mnbHlvaUNCivmnY7mnbHpmoYNCivmnY7mnbHpvo0NCivmnY7mnbDlpoINCivmnY7mnb7lrrYNCivmnY7mrKPmgKENCivmnY7mrKPmgKENCivmnY7mrKPlk7INCivmnY7mrKPpgZQNCivmnY7mrKPlhJINCivmnY7mrKPnqY4NCivmnY7mrKPpnJ4NCivmnY7ms5XmvKINCivmnY7msrvlrokNCivmnY7njp/njp8NCivmnY7njqXnkakNCivmnY7np4nmnJQNCivmnY7np4nnv7ANCivmnY7oirPlnLsNCivmnY7oirPlqbcNCivmnY7oirPlhIANCivmnY7oip3ntr4NCivmnY7oirjlvaUNCivmnY7omY7ls7ANCivmnY7ph5Hms5MNCivmnY7ph5HpiLQNCivmnY7ph5HmqLoNCivmnY7plbfmlocNCivmnY7plbfmpq4NCivmnY7plbfntJgNCivmnY7pnZLmnb4NCivmnY7pnZLpmb0NCivmnY7pnZ7pnI8NCivmnY7kv6HmiJANCivmnY7kv6HmnbANCivmnY7kv6HlvrcNCivmnY7kv6HnqY4NCivmnY7kv53ok4ENCivmnY7kv4rlro8NCivmnY7kv4rlpYcNCivmnY7kv4rmmIANCivmnY7kv4rlvaUNCivmnY7kv4rnpboNCivmnY7kv4rlhIQNCivmnY7kv4rlvrcNCivmnY7kv4rmr4UNCivmnY7kv4ros6INCivmnY7kv4ros6INCivmnY7kv4ros6INCivmnY7kv4rli7MNCivmnY7kv4rpjKENCivmnY7kv57mhacNCivmnY7lhqDmnIsNCivmnY7lhqDlhIANCivmnY7lhqDnkakNCivmnY7lhqDoh7sNCivmnY7li4flr6cNCivmnY7ljZflrIwNCivmnY7lk4HmhacNCivmnY7lpZXmnpoNCivmnY7lpY/pirMNCivmnY7lp7/lhIANCivmnY7lp7/nkakNCivmnY7lqIHlro8NCivmnY7lqIHlvrcNCivmnY7lqIHpnJYNCivmnY7lrqPnkakNCivmnY7lu7rmsJENCivmnY7lu7rlro8NCivmnY7lu7rpgqYNCivmnY7lu7rmmI4NCivmnY7lu7rlqIENCivmnY7lu7rokaYNCivmnY7lu7rlr6wNCivmnY7lu7ros6INCivmnY7lu7rpi5INCivmnY7lu7rmqLoNCivmnY7lu7roiIgNCivmnY7lu7rnprINCivmnY7lvaXlro8NCivmnY7lvaXlrpwNCivmnY7lvaXlhIANCivmnY7lvaXnkakNCivmnY7lvaXlhJINCivmnY7lvaXpnJYNCivmnY7lvovnkYsNCivmnY7mgJ3mgKENCivmnY7mgJ3okLENCivmnY7mgJ3lhIANCivmnY7mgJ3nkakNCivmnY7mgJ3oq60NCivmnY7mlL8NCivmnY7mlL/lv6ANCivmnY7mlL/lk7INCivmnY7mlL/pgZQNCivmnY7mlL/ovJ0NCivmnY7mlL/mm4QNCivmnY7mlL/pvo0NCivmnY7mmKXmnp0NCivmnY7mmKXnh5UNCivmnY7mmK3nvo4NCivmnY7mmK3nt68NCivmnY7mmKDokLENCivmnY7mmLHmmKUNCivmnY7mmLHnh5ANCivmnY7mn4/mnYkNCivmnY7mn4/ok4kNCivmnY7mn4/os6INCivmnY7mn4/nkoENCivmnY7ngrPlnaQNCivmnY7nj4rnj4oNCivmnY7nlYzpi5INCivmnY7nm4jnm4gNCivmnY7nm4jmvZQNCivmnY7nm4jnqY4NCivmnY7np5Hms68NCivmnY7np4vmooUNCivmnY7np4vlhIANCivmnY7np4vpup8NCivmnY7nvo7njokNCivmnY7nvo7oirMNCivmnY7nvo7lgKsNCivmnY7nvo7nkZwNCivmnY7nvo7lhIANCivmnY7nvo7nkakNCivmnY7nvo7pjKENCivmnY7og6TnkaQNCivmnY7oh7TmhacNCivmnY7ojILlhagNCivmnY7oi7Hlv5cNCivmnY7oi7HnkZ4NCivmnY7oi7HnkYsNCivmnY7ombnlhIANCivmnY7osp7lrpwNCivmnY7osp7mhacNCivmnY7ov7DnlLMNCivmnY7pg4HlgYkNCivmnY7ph43os6INCivmnY7pn7PmhacNCivmnY7lgKkNCivmnY7kv67pvYoNCivmnY7lk7LlrokNCivmnY7lk7Lnt68NCivmnY7lrrblro8NCivmnY7lrrbnj40NCivmnY7lrrbokLENCivmnY7lrrbosaoNCivmnY7lrrblhIINCivmnY7lrrboiIgNCivmnY7lrrnlqbcNCivmnY7luKvlqroNCivmnY7mgoXlmIkNCivmnY7mjK/mmIwNCivmnY7mjK/oqqANCivmnY7mjK/lhIANCivmnY7mmYnosaoNCivmnY7mm7jmtrUNCivmnY7moLnlmIkNCivmnY7moYPmo64NCivmnY7ms7DpnJYNCivmnY7mtanluq0NCivmnY7nj67lpoINCivmnY7nj67nkLMNCivmnY7nj67lmIkNCivmnY7nm4rmpq4NCivmnY7npZbnj40NCivmnY7ntKDmooUNCivmnY7ntJTmhacNCivmnY7og73pgaANCivmnY7oqJPlhIQNCivmnY7kub7mmokNCivmnY7lgYnlkIkNCivmnY7lgYnmhLcNCivmnY7lgYnlmIkNCivmnY7lgYnpoZINCivmnY7lgaXmupANCivmnY7lgaXpipgNCivmnY7lnIvlhagNCivmnY7lnIvlvLcNCivmnY7lnIvoj68NCivmnY7lnIvnkZ4NCivmnY7lnIvmpq4NCivmnY7lnIvntq0NCivmnY7lnIvpioANCivmnY7lnIvoiIgNCivmnY7ln7rlvJgNCivmnY7ln7noj68NCivmnY7lqYnnnJ8NCivmnY7lqYnnkZ4NCivmnY7ltIfku4ENCivmnY7ltIfosaoNCivmnY7lurfmraMNCivmnY7lvannkakNCivmnY7llZ/lvJgNCivmnY7llZ/mu4QNCivmnY7mlY/lkIkNCivmnY7mlY/lmIkNCivmnY7mlY/pvo0NCivmnY7muIXlkJ8NCivmnY7mt5HlkJsNCivmnY7mt5HoiqwNCivmnY7mt5Hosp4NCivmnY7mt5HojLkNCivmnY7mt5Hmg6ANCivmnY7mt5Hoj68NCivmnY7mt5Hok4kNCivmnY7mt5HpnZwNCivmnY7mtrXlr4wNCivmnY7npaXnkZ4NCivmnY7ntLnntroNCivmnY7nv47mr5MNCivmnY7pgKPls7ANCivmnY7pm6rokI0NCivmnY7lgpHlpoINCivmnY7lh7HmpagNCivmnY7li53pm4QNCivmnY7llqzpjJoNCivmnY7ltZDnkKYNCivmnY7mg6DoiqwNCivmnY7mg6Dnj6ANCivmnY7mg6DnkLMNCivmnY7mg6Dpm68NCivmnY7mmbTpm68NCivmnY7mmbrmgKENCivmnY7mmbrlvLcNCivmnY7mmbrntq0NCivmnY7mo64NCivmnY7muZjmqLoNCivmnY7nmpbnjrINCivmnY7lloTlkIwNCivmnY7oiJzoj68NCivmnY7oqaDnp4sNCivmnY7pgLjmiY0NCivmnY7pgLjnvqQNCivmnY7pgLLnpo8NCivmnY7pmoboj68NCivmnY7pm4XnjqsNCivmnY7pm4XnjrINCivmnY7pm4XmooUNCivmnY7pm4XlqbcNCivmnY7pm4Xmg6ANCivmnY7pm4Xmg6ANCivmnY7pm4XokI0NCivmnY7pm4Xpm68NCivmnY7pm4Xnh5UNCivmnY7pm6/nh5UNCivmnY7lgrPlkJsNCivmnY7mhI/pm68NCivmnY7mg7MNCivmnY7mlrDmvqQNCivmnY7mr5PnnJ8NCivmnY7mupANCivmnY7nkZ7mlocNCivmnY7nkZ7osp4NCivmnY7nkZ7oj68NCivmnY7nkZ7pqI8NCivmnY7nvqnpm4QNCivmnY7ogZbnkLANCivmnY7oqanlgYkNCivmnY7oqanmpbcNCivmnY7pgZPmnpcNCivmnY7lmIkNCivmnY7lmInmnpcNCivmnY7lmInlh4wNCivmnY7lmInou5INCivmnY7lmInoj68NCivmnY7lmInpipgNCivmnY7lmInptLsNCivmnY7lr6foirMNCivmnY7mpq7ojIINCivmnY7mpq7pprMNCivmnY7mvKLnpboNCivmnY7noqflqbcNCivmnY7npo/ok4kNCivmnY7ntq3ku4ENCivmnY7ntq3lgKsNCivmnY7ntq3mpagNCivmnY7ogofmrKMNCivmnY7oqozmmI4NCivmnY7pipjlkagNCivmnY7pipjmr5MNCivmnY7ps7TlrocNCivmnY7pvYroirMNCivmnY7lu6PnpYENCivmnY7lvrfmtbcNCivmnY7mhbblro8NCivmnY7mhbboj68NCivmnY7mhafoiqwNCivmnY7mhafnvo4NCivmnY7mhafnj6ANCivmnY7mhaflhIANCivmnY7mr4Xkv6ENCivmnY7nkanmvZQNCivmnY7os6Lmt6YNCivmnY7lrbjmmI4NCivmnY7mhrLmlowNCivmnY7mm4nlpq4NCivmnY7mm4nnjrINCivmnY7mm4nltZANCivmnY7mm4noj4ENCivmnY7mm4nmppUNCivmnY7mvqTogrINCivmnY7nh5XnjrINCivmnY7nkp/pg4ENCivmnY7nv7DpnZINCivmnY7oiIjoiJwNCivmnY7olZnlpoINCivmnY7olZnoirgNCivmnY7osavlh6ENCivmnY7pjKbmmIcNCivmnY7pjKbok64NCivmnY7pnZzlrpwNCivmnY7pnZzmgKENCivmnY7pnZzmgKENCivmnY7pnZznvo4NCivmnY7pnZzok4kNCivmnY7pvo3nlJ8NCivmnY7pvo3pup8NCivmnY7niLXoh6MNCivmnY7ogbDlsrMNCivmnY7ovL/pkasNCivmnY7ptLvlv5cNCivmnY7ptLvpgZQNCivmnY7mm5zlrZgNCivmnY7orLnluIYNCivmnY7pjpTpmKENCivmnY7ppqXlpoINCivmnY7nk4roi7ENCivmnY7pupfmnp0NCivmnY7pupfnj6ANCivmnY7lr7bnjokNCivmnY7ogIDmsJENCivmnY7ppqjmgKENCivmnY7mh7/lpoINCivmnY7mrIrlrrYNCivmnY7liq3ou40NCivmnY7ml7vmmIcNCivmnY7ml7vnkYsNCivmnY7mmLbmrKMNCivmnY7oi7nmhYgNCivmnY7mtrTmsZ0NCivmnY7loKgNCivmnY7ntZwNCivmnY7nkYvnkKoNCivmnY7nrbHpm7INCivmnY7piLrpm68NCivmnY7pnZrlrrgNCivmnY7pjqfku7sNCivmnY7mgZLlkJsNCivmnZzmloflgpENCivmnZzmsJHlgpENCivmnZzlhajmnpcNCivmnZzlv5fos6INCivmnZzkvbPosaoNCivmnZzlrZ/mlL8NCivmnZzlrpvoq60NCivmnZzmib/pkasNCivmnZzmmIfnv7ANCivmnZzoirPmlL8NCivmnZzkv4rmr4UNCivmnZzlqIHlu7cNCivmnZzlvaXpnJYNCivmnZzngrPpvo0NCivmnZznvo7mhacNCivmnZzlrrbmmIwNCivmnZznj67oqakNCivmnZzlqYnpm68NCivmnZzmt5HpjJoNCivmnZzpmb3lnJMNCivmnZzlmInnjrINCivmnZzntq3kv64NCivmnZznh5Xoj68NCivmnZzogIDku4ENCivmspnmraPmgoUNCivmsojlo6vlgpENCivmsojku4HlgpENCivmsojmlofnpaUNCivmsojkuJbplpQNCivmsojmraPlvrcNCivmsojnq4vku4ENCivmsojlpoLls7ANCivmsojkvZHnv7ANCivmsojlkJvnkpANCivmsojlv5flt50NCivmsojlv5fpvo0NCivmsojmsbbokI0NCivmsojogrLmmJ8NCivmsojkvp3nqY4NCivmsojkvbPmhacNCivmsojkvanpm68NCivmsojlnaTmmIcNCivmsojlrpfmhbYNCivmsojlrpzok4ENCivmsojmgKHkvLYNCivmsojmmIzmmI4NCivmsojmmI7okLENCivmsojmrKPlrbgNCivmsojnp4noqrwNCivmsojoirjokKkNCivmsojkv6Hlop4NCivmsojkv4rnv5QNCivmsojlhqDlro8NCivmsojlp7/mhacNCivmsojlu7rmiJANCivmsojlu7rlvrcNCivmsojmgYblhYkNCivmsojmmK3os6INCivmsojmn4/lr6wNCivmsojnm4joj4ENCivmsojnvo7lqJ8NCivmsojpg4HlurcNCivmsojlk7LmqJkNCivmsojlrrbmpq4NCivmsojmjK/oiIgNCivmsojnm4rmib8NCivmsojntJTlpoINCivmsojlnIvpipMNCivmsojmmajpkJgNCivmsojmt5Hoj68NCivmsojmg6Doj4ENCivmsojoiJLnkLMNCivmsojpm4Xmg6ANCivmsojmmonluq0NCivmsojnkZ7mrL0NCivmsojogZbltJENCivmsojpgZPoq5YNCivmsojlmInolZkNCivmsojntq3mr5MNCivmsojlvrfljpoNCivmsojlrbjmiJANCivmsojolZnlkJsNCivmsojptLvmtLINCivmsojlpo/nnJ8NCivmsojnrbHpm7INCivmsarlpKflgKsNCivmsarlt6fnjrINCivmsarnmb7ou5INCivmsarnp4Dnh5UNCivmsarlrZ/mtrUNCivmsarmgKHoj68NCivmsarpnZLok4kNCivmsarlhqDlro8NCivmsarnvo7njokNCivmsarlrrbnkakNCivmsarllZ/mlocNCivmsarpm4XokI0NCivmsarpnZblnIsNCivmsarmhbbnj40NCivmsarpupflqJ8NCivni4TlrrbmuqcNCivosLfms5PpgZMNCivou4rnm4roj68NCivovpvlrpfmva0NCivovpvlpZXmiJANCivovpvoj4HlqKUNCivovpvml7vkv64NCivpgqLog73mlocNCivpmK7mlofnpaUNCivpmK7lkYLnnJ8NCivpmK7kv6HmhrINCivpmK7mmLHlro8NCivpmK7po5vpipgNCivpmK7mt5HojLkNCivpmK7mlpDnkZwNCivpmK7pm4XlgKsNCivpmK7nnb/npaUNCivpmK7ptaznoqkNCivljZPlo6vli5sNCivljZPmsLjloIINCivljZPlv5flv6ANCivljZPkvbPmhbYNCivljZPlrpvlkJsNCivljZPmmI7lhIANCivljZPoirPlpoINCivljZPkv4rlro8NCivljZPlu7rpmoYNCivljZPoi7Hlk7INCivljZPlrrbmpaANCivljZPoqJPoia8NCivljZPmt5HlqpsNCivljZPmnJ3plpQNCivljZPnkZ7ltIcNCivljZPoqozpmoYNCivljZPpnZzlpoINCivljZPmgZLnlJ8NCivlkajkuIrmrL0NCivlkajlo6vlgpENCivlkajlpKfpiJ4NCivlkajlrZDmlawNCivlkajkuK3oiIgNCivlkajlv4PmgKENCivlkajmlofmlL8NCivlkajmlofpm4UNCivlkajmnIjpnJwNCivlkajkuJbosZANCivlkajku6PlsIkNCivlkajlvJjmlY8NCivlkajmraPlnIsNCivlkajmsLjpm4QNCivlkajnjonok64NCivlkajnq4vlgYkNCivlkajku7Llh7ENCivlkajlkInpvo0NCivlkajlubTnm5sNCivlkajoh7PoiqwNCivlkajkvZHnpo4NCivlkajkvK/pkasNCivlkajlkJvptLsNCivlkajlrZ3oirMNCivlkajlro/nkZwNCivlkajlu7fpmoYNCivlkajlv5flv6ANCivlkajlv5fmuIUNCivlkajlv5fli7MNCivlkajmsbbnj4oNCivlkajnp4DmmY8NCivlkajogrLkvLYNCivlkajogrLmvaQNCivlkajkup7mrKMNCivlkajkvbPmgKENCivlkajkvbPok4kNCivlkajkvbPpnIcNCivlkajkvanlrpwNCivlkajkvanlhIANCivlkajljZTliKkNCivlkajlpYfok4kNCivlkajlrZ/oqrwNCivlkajlrpflu7oNCivlkajlrpzoirMNCivlkajlrpvokLENCivlkajlubjok4kNCivlkajmgKHkvLYNCivlkajmgKHlkJsNCivlkajmgKHpgqYNCivlkajmgKHlhLcNCivlkajmmI7lvJgNCivlkajmmI7lvrkNCivlkajmmI7ovJ0NCivlkajmnbANCivlkajmrKPoirgNCivlkajmrKPnkakNCivlkajnjp/okLENCivlkajoirPlpoINCivlkajoip3mtrUNCivlkajph5Hnh5UNCivlkajpnZLok4kNCivlkajkv6HovJ0NCivlkajkv4rlro8NCivlkajkv4rosaoNCivlkajlhqDkvLYNCivlkajlk4Hlpo0NCivlkajlqIHlkYgNCivlkajlu7rlkYgNCivlkajlu7rpipgNCivlkajlvaXlspENCivlkajmgJ3lvq4NCivlkajmlL/nv7ANCivlkajmmJ/lkIwNCivlkajmn4/nlKsNCivlkajnjrINCivlkajnm4jmnYkNCivlkajnp4vokI0NCivlkajnvo7mmKUNCivlkajoh7TkuJ4NCivlkajpg4HmlocNCivlkajpn4vnv7ANCivlkajlh4zmgowNCivlkajlqJ/lpoINCivlkajlrrbmtakNCivlkajlrrbmhbYNCivlkajls7DmraMNCivlkajmjK/lh7ENCivlkajmm7jlqbcNCivlkajms7DlrokNCivlkajnj67lpoINCivlkajnpZDmhacNCivlkajogL/ooYwNCivlkajlgYnojLkNCivlkajlnIvpnZYNCivlkajlqYnnkLMNCivlkajmlY/piLoNCivlkajmt5HlqJ8NCivlkajmt5Hnh5UNCivlkajlh7HmhacNCivlkajmg6Dok64NCivlkajmmbrmlY8NCivlkajmuJ3nj4oNCivlkajoqaDoqJMNCivlkajpgLjomK0NCivlkajpm4XlqbcNCivlkajpm7Lmo6ANCivlkajmlazmmY8NCivlkajmpa3mrL0NCivlkajnhYzogL8NCivlkajnkZ7mpaANCivlkajnvqnls7ANCivlkajogZbmhacNCivlkajoo5XosZANCivlkajpgZPms5MNCivlkajlmInmnb4NCivlkajlmInmhbYNCivlkajmvKLmupANCivlkajnpo/ps7MNCivlkajnv6DoiqwNCivlkajlhITkv6ENCivlkajmhaflp78NCivlkajmqILlpKkNCivlkajos6LlvrcNCivlkajmhrLpgqYNCivlkajmm4nokI0NCivlkajnh5Xnm4gNCivlkajono3pp78NCivlkajpnZzpm68NCivlkajogbDlrocNCivlkajpjq7pgqYNCivlkajpupfnjrINCivlkajomK3oirMNCivlkajml7vpnZwNCivlkajml4bnkZwNCivlkajnkYsNCivlkajpiLrnv5QNCivlrZ/lpKnnpaUNCivlrZ/mhbblrokNCivlraPogrLmvqQNCivlrpjlpKflvJgNCivlrpjogrLokLENCivlrpjoirPlpoINCivlrpjoi5HlgpENCivlrpjovrLlk7INCivlsJrmm7gNCivlsYjpgZPliZsNCivlsrPntq3pi4wNCivmiL/lhYbpmoYNCivmlrzlrrbnj40NCivmmJPotrPnnJ8NCivmmJPmmbrlgaUNCivmmIzlrZ/nv7ANCivmnbHmhY7nkLMNCivmnpfkuIDnhZINCivmnpfkuIrlv5cNCivmnpfkuYXli7sNCivmnpfkuo7mraMNCivmnpfkuo7lqbcNCivmnpfkuo7npo4NCivmnpfljYPlqpoNCivmnpfljYPmr5MNCivmnpflo6vlipsNCivmnpflo6vpg4ENCivmnpflo6vmt7UNCivmnpflo6vlgpENCivmnpflo6vmj5oNCivmnpflo6votooNCivmnpflo6vovrINCivmnpflpKflhYMNCivmnpflpKfnpaUNCivmnpflpKfpiJ4NCivmnpflpbPmu78NCivmnpflrZDnjoQNCivmnpflrZDlgYkNCivmnpflrZDlgpENCivmnpflrZDmg6ANCivmnpflrZDoqaANCivmnpflrZDli6QNCivmnpflrZDntroNCivmnpflrZDnkYQNCivmnpflsI/nkKoNCivmnpflsbHpm7INCivmnpfmiY3lhYMNCivmnpfkuK3lvLcNCivmnpfkuYvoj4ENCivmnpfku4HlvaUNCivmnpfku4HlgpENCivmnpfku4vkuIANCivmnpflhYPmhLcNCivmnpfljYfmrIoNCivmnpflpKnmsJENCivmnpflv4PlpoINCivmnpflv4PltZANCivmnpfmlofkuK0NCivmnpfmloflhagNCivmnpfmlofms7MNCivmnpfmlofnp5ENCivmnpfmloflsIcNCivmnpfmlofnpaUNCivmnpfmlofli50NCivmnpfmlofmlq8NCivmnpfmlofnkKYNCivmnpfmlofpm68NCivmnpfmloflvrcNCivmnpfmlofogbANCivmnpfmloflqoQNCivmnpfmnIjoi7ENCivmnpfmnKjoiIgNCivmnpfkuJblubMNCivmnpfkuJbmmIwNCivmnpfkuJboirMNCivmnpfkuJbls7ANCivmnpfkuJblgYkNCivmnpfkuJbmt4cNCivmnpfkuJbnv5QNCivmnpfkuJblr7ANCivmnpfkuLvmgakNCivmnpfku6XmmagNCivmnpfku5XlgYkNCivmnpfliqDlhqANCivmnpflj6/piJ4NCivmnpflt6jmt5kNCivmnpflt6fmooUNCivmnpflubPoi5ENCivmnpflvJjmmIcNCivmnpflvJjnpaUNCivmnpfmraPkuIANCivmnpfmraPlrpcNCivmnpfmraPou40NCivmnpfmraPlgYkNCivmnpfmraPlh7ENCivmnpfmraPnpo8NCivmnpfmsJHln7oNCivmnpfmsLjmmIwNCivmnpfmsLjkv6ENCivmnpfmsLjmuIUNCivmnpfmsLjnpaUNCivmnpfmsLjmo64NCivmnpfmsLjmhbYNCivmnpfmsLjmmZ8NCivmnpfnjonlpoINCivmnpfnjonoirMNCivmnpfnjonnjrINCivmnpfnjonnj64NCivmnpfnjonmlY8NCivmnpfnjonlqbcNCivmnpfnjonoj4ENCivmnpfnjonpm7INCivmnpfnjonpvo0NCivmnpfnn7PpmoYNCivmnpfnq4vku7sNCivmnpfnq4vlgKsNCivmnpfnq4vlgYkNCivmnpfnq4vnvqQNCivmnpfnq4vpkasNCivmnpfku7LlqIENCivmnpfku7DmnJsNCivmnpflhYbnm4gNCivmnpflkInkvK8NCivmnpflkI7llK8NCivmnpflpoLmlY8NCivmnpflrofmmJ8NCivmnpflrojlvrcNCivmnpflronnt7kNCivmnpfmnInkv4oNCivmnpfnmb7mj5oNCivmnpfoh7Pmib8NCivmnpfooYzorJkNCivmnpfkvZHlrokNCivmnpfkvZHnj4oNCivmnpfkvZHlhJINCivmnpfkvZHpjb4NCivmnpfkvK/lsrMNCivmnpfkvK/ls7sNCivmnpfkvK/li7MNCivmnpfkvLbosp4NCivmnpflhYvlqIENCivmnpflhYvlr7ANCivmnpflkYjku7sNCivmnpflkJvlrpwNCivmnpflkJvnjrINCivmnpflkJvnkZwNCivmnpflkJvnv7ANCivmnpflkJ/lp78NCivmnpflnYfpg4ENCivmnpflppnlkJsNCivmnpflppnlqKUNCivmnpflpo3lpqQNCivmnpflrZ3lhagNCivmnpflrZ3mhrINCivmnpflro/lnaQNCivmnpflro/kuq4NCivmnpflro/pn4sNCivmnpflro/kub4NCivmnpflro/pgZQNCivmnpflro/lhJINCivmnpflro/pjKENCivmnpflspDnm4oNCivmnpflu7flkIkNCivmnpflu7fovJ0NCivmnpflv5fmsJENCivmnpflv5fmiJANCivmnpflv5foia8NCivmnpflv5flv6ANCivmnpflv5fmmI4NCivmnpflv5fmnbANCivmnpflv5foiqwNCivmnpflv5fli4cNCivmnpflv5fnmocNCivmnpflv5fls7ANCivmnpflv5flgYkNCivmnpflv5floIUNCivmnpflv5fmj5oNCivmnpflv5fmhY4NCivmnpflv5fosaoNCivmnpflv5fosaoNCivmnpflv5fpipgNCivmnpflv5flhJINCivmnpflv5fnqY4NCivmnpflv5forIANCivmnpflv5fpvo0NCivmnpflv5fptLsNCivmnpflv5fptLsNCivmnpfmnY7pipgNCivmnpfmnZDkv4oNCivmnpfmspvlkJsNCivmnpfmspvok4ENCivmnpfngbzpvo0NCivmnpfnp4DlnaoNCivmnpfnp4DoirENCivmnpfnp4Dkv5ANCivmnpfnp4DnjrINCivmnpfnp4Dnvo4NCivmnpfnp4Dljb8NCivmnpfnp4DnnJ8NCivmnpfnp4Dpm68NCivmnpfnp4Dps7MNCivmnpfnp4DnqY4NCivmnpfnp4DppqgNCivmnpfogrLku5UNCivmnpfogrLmraMNCivmnpfogrLmsJENCivmnpfogrLnlJ8NCivmnpfogrLnq4sNCivmnpfogrLlkI0NCivmnpfogrLlpoINCivmnpfogrLmiJANCivmnpfogrLlro8NCivmnpfogrLmmIANCivmnpfogrLnj4oNCivmnpfogrLpgLINCivmnpfogrLnvqQNCivmnpfogrLokLENCivmnpfogrLok5MNCivmnpfogrLmhacNCivmnpfogrLos6INCivmnpfogrLpi5INCivmnpfogrLpup8NCivmnpfoia/kv4oNCivmnpfopovmmI4NCivmnpfosLfls7ANCivmnpfosp3nj4oNCivmnpfph4znh5UNCivmnpfkuqvnh4ENCivmnpfkvp3nm4gNCivmnpfkvp3mvZQNCivmnpfkvp3nkocNCivmnpfkvbPnlJ8NCivmnpfkvbPlro8NCivmnpfkvbPoia8NCivmnpfkvbPmgKENCivmnpfkvbPmrKMNCivmnpfkvbPkuq0NCivmnpfkvbPnm4gNCivmnpfkvbPosp4NCivmnpfkvbPpmbUNCivmnpfkvbPpmb0NCivmnpfkvbPntroNCivmnpfkvbPok4kNCivmnpfkvbPlhIQNCivmnpfkvbPmhbYNCivmnpfkvbPmhacNCivmnpfkvbPmhacNCivmnpfkvbPmvZQNCivmnpfkvbPnkakNCivmnpfkvbPos6INCivmnpfkvbPmqLoNCivmnpfkvbPnh5UNCivmnpfkvbPoh7sNCivmnpfkvbPpnZwNCivmnpfkvbPptLsNCivmnpfkvbPmvZMNCivmnpfkvanlkJsNCivmnpfkvanmgKENCivmnpfkvanoiqwNCivmnpfkvanosp4NCivmnpfkvanpm68NCivmnpfkvanok4kNCivmnpfkvanok4kNCivmnpfkvanmhacNCivmnpfkvanmqLoNCivmnpfkvanpjKYNCivmnpfkvannkocNCivmnpfkvpHpnZINCivmnpflhbbkvq8NCivmnpflhbbpi5INCivmnpfljZTmnZENCivmnpflkoznp4ANCivmnpflnaTnlJ8NCivmnpflnaTpn4sNCivmnpflnaTmqJENCivmnpflnaTpnIINCivmnpflpYfmqKENCivmnpflrZ/ku5UNCivmnpflrZ/lkJsNCivmnpflrZ/kuq0NCivmnpflrZ/okLENCivmnpflrZ/lvrcNCivmnpflrZ/os6INCivmnpflrZ/nqY4NCivmnpflrZ/okbMNCivmnpflraPoi5cNCivmnpflraPnh4ENCivmnpflrpflu7cNCivmnpflrpfpoIYNCivmnpflrpflhIQNCivmnpflrpfmhbYNCivmnpflrpfos6INCivmnpflrpfovJ0NCivmnpflrpfmvqQNCivmnpflrpforKgNCivmnpflrpjpgLgNCivmnpflrpzlkJsNCivmnpflrpznjqsNCivmnpflrpznj40NCivmnpflrpzogZYNCivmnpflrpzok4kNCivmnpflrpzmhacNCivmnpflrpzos6INCivmnpflrpzmqLoNCivmnpflrpzpjJoNCivmnpflrpzpnZwNCivmnpflrpzok4ENCivmnpflrpzlq7oNCivmnpflrpvnkZwNCivmnpflrpvmqLoNCivmnpflsJroia8NCivmnpflsJrnqY4NCivmnpflsrHok4kNCivmnpflsrHono0NCivmnpflsrPlhIANCivmnpflsrPltpkNCivmnpflubjok4kNCivmnpfluprnq4sNCivmnpflvoHooZsNCivmnpflv6DlsrMNCivmnpflv6DmhbYNCivmnpfmgKENCivmnpfmgKHmsZ0NCivmnpfmgKHkvLYNCivmnpfmgKHliKkNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlnYcNCivmnpfmgKHnp4ANCivmnpfmgKHovrANCivmnpfmgKHoirMNCivmnpfmgKHpnZINCivmnpfmgKHojokNCivmnpfmgKHoj4ENCivmnpfmgKHokLENCivmnpfmgKHlr6wNCivmnpfmgKHlhJINCivmnpfmgKHnpL0NCivmnpfmib/lsrMNCivmnpfmib/mr4UNCivmnpfmlrzlpq4NCivmnpfmmJPnj4oNCivmnpfmmIzlvJgNCivmnpfmmIzos6INCivmnpfmmIbnlLANCivmnpfmmIbmqKENCivmnpfmmIbnhYcNCivmnpfmmI7nlJ8NCivmnpfmmI7lv5cNCivmnpfmmI7lrpcNCivmnpfmmI7mnbANCivmnpfmmI7lvaUNCivmnpfmmI7ojokNCivmnpfmmI7mpZMNCivmnpfmmI7oqowNCivmnpfmmI7lvrcNCivmnpfmmI7mr4UNCivmnpfmmI7nt68NCivmnpfmmI7ovJ0NCivmnpfmmI7li7MNCivmnpfmmI7nkrANCivmnpfmmIDpvo0NCivmnpfmmIfmsLgNCivmnpfmmIfpvo0NCivmnpfmnbHojIINCivmnpfmnbHmr4UNCivmnpfmnbDmrKMNCivmnpfmnb7loK8NCivmnpfmrKPnq4sNCivmnpfmrKPmgKENCivmnpfmrKPmgKENCivmnpfmrKPmgKENCivmnpfmrKPmlL8NCivmnpfmrKPmhYgNCivmnpfmrKPlhIANCivmnpfmrKPlhIANCivmnpfmrKPmr4UNCivmnpfmrKPoqrwNCivmnpfmrKPnqY4NCivmnpfmrKPpupcNCivmnpfmraboq7oNCivmnpfms5PlkJsNCivmnpfms7Hnp4ANCivmnpfniaflj7ANCivmnpfnjp/lkJsNCivmnpfnjp/lpo8NCivmnpfnjqvlkJsNCivmnpfnjqvok4kNCivmnpfnp4nms5MNCivmnpfnp4nnkakNCivmnpfoirPkuIANCivmnpfoirPlpoINCivmnpfoirPlpoINCivmnpfoirPlt54NCivmnpfoirPoirMNCivmnpfoirPmlrANCivmnpfoirPlhIANCivmnpfoip3ljYkNCivmnpfoip3lr6cNCivmnpfoiqzoirMNCivmnpfoirjmmokNCivmnpfoirfnraANCivmnpfph5Hku5UNCivmnpfph5HmmI4NCivmnpfph5Hok64NCivmnpfph5Hpvo0NCivmnpfplbflv5cNCivmnpfplbfmhbYNCivmnpfpm6jovrINCivmnpfpnZLlv5cNCivmnpfpnZLmhacNCivmnpfpnZLpnJ4NCivmnpfkuq7ku4ENCivmnpfkv6HlhagNCivmnpfkv6HkvZENCivmnpfkv6Hlro8NCivmnpfkv6Hlu7cNCivmnpfkv6Hlu7YNCivmnpfkv6HnvqkNCivmnpfkv53miJANCivmnpfkv4rku7INCivmnpfkv4rlrocNCivmnpfkv4rkvZENCivmnpfkv4rkvK8NCivmnpfkv4rlro8NCivmnpfkv4rlro8NCivmnpfkv4rlu7cNCivmnpfkv4rnlKsNCivmnpfkv4rnlLcNCivmnpfkv4roqIANCivmnpfkv4rmnbANCivmnpfkv4rlgpENCivmnpfkv4rpgLgNCivmnpfkv4rpgZQNCivmnpfkv4rosaoNCivmnpfkv4rprYENCivmnpfkv4ros6INCivmnpfkv4rpup8NCivmnpfkv5Dkuq0NCivmnpfkv57lop4NCivmnpflhqDlrocNCivmnpflhqDlkJ8NCivmnpflhqDlro8NCivmnpflhqDnp4ANCivmnpflhqDnkZsNCivmnpflhqDlhJINCivmnpfli4fmiJANCivmnpfljZflro8NCivmnpflk4HlrpwNCivmnpflpZXmiJANCivmnpflpZXkvLYNCivmnpflpZXnp4ANCivmnpflpZXltZANCivmnpflpY7lkJsNCivmnpflp7/kvLYNCivmnpflp7/lkL4NCivmnpflp7/lppkNCivmnpflp7/lqbcNCivmnpflqIHlkI0NCivmnpflqIHliKkNCivmnpflqIHlu7cNCivmnpflqIHoia8NCivmnpflrqPku7sNCivmnpflrqPpsLINCivmnpflu7rkuIANCivmnpflu7rku7INCivmnpflu7rlrocNCivmnpflu7rmiJANCivmnpflu7rlkL4NCivmnpflu7rlro8NCivmnpflu7rlro8NCivmnpflu7rlu7cNCivmnpflu7rlv5cNCivmnpflu7rnlLcNCivmnpflu7roia8NCivmnpflu7rpgqYNCivmnpflu7rmmIcNCivmnpflu7roj68NCivmnpflu7rlvbANCivmnpflu7rnkakNCivmnpflu7rli7MNCivmnpflvaXmlocNCivmnpflvaXlkI0NCivmnpflvaXkuqgNCivmnpflvaXkvLYNCivmnpflvaXlrZ0NCivmnpflvaXlro8NCivmnpflvaXnlKsNCivmnpflvaXkuqsNCivmnpflvaXlmIkNCivmnpflvaXoiIgNCivmnpfmgJ3lkJ8NCivmnpfmgJ3oj68NCivmnpfmgJ3opqoNCivmnpfmgYbnoqkNCivmnpfmgarnvqQNCivmnpfmlL/kvY0NCivmnpfmlL/oia8NCivmnpfmlL/mtakNCivmnpfmlL/oo5UNCivmnpfmlL/lhIANCivmnpfmlL/nt68NCivmnpfmlL/pi5INCivmnpfmlL/nv7ANCivmnpfmmKXlubQNCivmnpfmmKXnvo4NCivmnpfmmK3lrocNCivmnpfmmK3lv5cNCivmnpfmmK3pipgNCivmnpfmmKDmsZ0NCivmnpfmmJ/mmagNCivmnpfmmLHlkJsNCivmnpfmmLHlgYkNCivmnpfmn5HmnY8NCivmnpfmn4/lt54NCivmnpfmn4/kvLgNCivmnpfmn4/lro8NCivmnpfmn4/mnZENCivmnpfmn4/ln44NCivmnpfmn4/mpq4NCivmnpfmn4/nv7ANCivmnpfms4nmtIsNCivmnpfmtKrpnIQNCivmnpfngrrmlocNCivmnpfngrPnhYwNCivmnpfnj4rlpoINCivmnpfnjrLoh7MNCivmnpfnj43lpoINCivmnpfnmofliKkNCivmnpfnm4jmiJANCivmnpfnm4jlkJsNCivmnpfnm4jlv5cNCivmnpfnm4jokLENCivmnpfnpYjlnYcNCivmnpfnp5Hlro8NCivmnpfnp4voia8NCivmnpfnp4vmg6ANCivmnpfnp4voj4oNCivmnpfnp4vok64NCivmnpfntIDlhYMNCivmnpfnvo7lpoINCivmnpfnvo7kvLYNCivmnpfnvo7lkJsNCivmnpfnvo7lkJ8NCivmnpfnvo7np4ANCivmnpfnvo7mgKENCivmnpfnvo7njrINCivmnpfnvo7nj6ANCivmnpfnvo7mmboNCivmnpfnvo7oj68NCivmnpfnvo7mhacNCivmnpfnvo7pvaENCivmnpfnvr/lpo8NCivmnpfoh7TlkJsNCivmnpfoh7TnqY4NCivmnpfojILnm5sNCivmnpfoi7HnlLcNCivmnpfoi7HlgpENCivmnpfoi7HpipgNCivmnpfombnlpoINCivmnpfombnlro8NCivmnpfosp4NCivmnpfosp7lu7YNCivmnpfpg4HmlocNCivmnpfpg4HmrKMNCivmnpfpg4HoiqwNCivmnpfpg4HmlY8NCivmnpfpg4Hmo64NCivmnpfpg4Hpm4QNCivmnpfpg4HomK0NCivmnpfpn4vkuJ4NCivmnpfpn4vlu7cNCivmnpfpn4vlmIkNCivmnpfpppnlkJsNCivmnpflgI3kvIoNCivmnpflgKnlpoINCivmnpflgKnmhacNCivmnpfkv67msJENCivmnpflgKvml60NCivmnpfljp/lkIgNCivmnpflk7LmsJENCivmnpflk7Lku7sNCivmnpflk7Llro8NCivmnpflk7Loo5UNCivmnpflk7LovJ0NCivmnpflqJ/lpoINCivmnpflqInlrZwNCivmnpflrrblvJgNCivmnpflrrblvJgNCivmnpflrrbnlJ8NCivmnpflrrblpoINCivmnpflrrbkuqgNCivmnpflrrbli4cNCivmnpflrrbmg6ANCivmnpflrrbmmokNCivmnpflrrbogZYNCivmnpflrrbnpo4NCivmnpflrrbpipgNCivmnpflrrbmhbYNCivmnpflrrbos6INCivmnpflrrbolZkNCivmnpflrrbmlowNCivmnpflrrnku58NCivmnpflrrnogZYNCivmnpflsZXogZYNCivmnpfls7vmmokNCivmnpfls7DlubQNCivmnpfluKvnvqQNCivmnpfluq3nkYsNCivmnpfmganlhYkNCivmnpfmganpnIgNCivmnpfmjK/mtakNCivmnpfmjK/mmpgNCivmnpfmjK/mv7ENCivmnpfmmYLmlrANCivmnpfmmYnlhagNCivmnpfmmYnnlb8NCivmnpfmmY/lpoINCivmnpfmmY/nqJoNCivmnpfmm7jlvJgNCivmnpfmm7jogb8NCivmnpfmm7jmpbcNCivmnpfmm7jmr4UNCivmnpfmm7jmvqQNCivmnpfmoZPos6YNCivmnpfmoYLnj6ANCivmnpfmoLzlpoMNCivmnpfms7DlrokNCivmnpfms7Dntq0NCivmnpfmtZrlgpENCivmnpfmtannvqQNCivmnpfnj67lpoINCivmnpfnj67oj4ENCivmnpfnj67lhJINCivmnpfnm4rlvJgNCivmnpfnm4rlpoINCivmnpfnm4rpgYsNCivmnpfnnJ/ntroNCivmnpfnpZDnpr4NCivmnpfnpZDmpoYNCivmnpfnpZDnkYQNCivmnpfnqojmhI8NCivmnpfntKDlpoINCivmnpfntKDosp4NCivmnpfntKDoj68NCivmnpfntJTlpoINCivmnpfntJTmuZgNCivmnpfogJjlvrcNCivmnpfogL/lvJgNCivmnpfogL/nnJ8NCivmnpfojLUNCivmnpfotbfnv44NCivmnpfou5LpoKENCivmnpfpq5jmupANCivmnpflgYnmsJENCivmnpflgYnlvawNCivmnpflgYnmpagNCivmnpflgYnlvrcNCivmnpflgaXpnZINCivmnpfllK/lh7ENCivmnpflnIvmrKMNCivmnpflnIvnpaUNCivmnpflnIvpmoYNCivmnpflnIvli7MNCivmnpfln7nloK8NCivmnpflqYnlkJsNCivmnpflqYnlqbcNCivmnpflqYnnkZwNCivmnpfltIflrocNCivmnpfltIfmr4UNCivmnpflurflr6cNCivmnpfllZ/kuroNCivmnpfllZ/oiKoNCivmnpfllZ/osZANCivmnpfmlY/oo5UNCivmnpfmooXpmrQNCivmnpfmuIXlkIkNCivmnpfmuIXpm7INCivmnpfmt5HlkJsNCivmnpfmt5HoiqwNCivmnpfmt5HnjrINCivmnpfmt5Hosp4NCivmnpfmt5HlqJ8NCivmnpfmt5HlqKUNCivmnpfmt5HmooUNCivmnpfmt5HlqpsNCivmnpfmt5Hmg6ANCivmnpfmt5HokI0NCivmnpfmt5Hoj68NCivmnpfmt5Hpm68NCivmnpfmt5HlhIANCivmnpfmt5HpjJoNCivmnpfmtrXnkZwNCivmnpfnm5vlgpENCivmnpfojpjmgKENCivmnpfojbfoirMNCivmnpfpm6rokI0NCivmnpflgpHogZYNCivmnpflibUNCivmnpfli53lgpENCivmnpfljZrpmoYNCivmnpflqbcNCivmnpflr4znvo4NCivmnpfmg6DmlocNCivmnpfmg6DmgKENCivmnpfmg6Dnvo4NCivmnpfmg6DmlY8NCivmnpfmg6DokI0NCivmnpfmg6Dpm68NCivmnpfmg6DnkIcNCivmnpfmlabnhYwNCivmnpfmma/msJENCivmnpfmma/pm7ANCivmnpfmmbrog70NCivmnpfmmbrmuIUNCivmnpfmmbrmpa0NCivmnpfmnJ8NCivmnpfmo67nlLANCivmnpfmuK/osrQNCivmnpfmuZjmg6ANCivmnpfmubLoiJINCivmnpfnkKblnIsNCivmnpfnmbvlsbENCivmnpfntKvoj4ENCivmnpfoiJLmhacNCivmnpfoj6/kuIANCivmnpfoppblsIoNCivmnpfoqaDnv5QNCivmnpfotoUNCivmnpfpgLjmmIANCivmnpfpgLjls7ANCivmnpfpgLjoj4ENCivmnpfpgLjlhJINCivmnpfpgLLnm4oNCivmnpfpiJ7pmbYNCivmnpfpm4HmlY8NCivmnpfpm4XlkJsNCivmnpfpm4XoiqwNCivmnpfpm4XnjrINCivmnpfpm4XlgKsNCivmnpfpm4Xmt7MNCivmnpfpm4XljZoNCivmnpfpm4Xmg6ANCivmnpfpm4XnkKoNCivmnpfpm4XokI0NCivmnpfpm4Xoj68NCivmnpfpm4Xpm68NCivmnpfpm4XmhacNCivmnpfpm4XmhacNCivmnpfpm4XorJkNCivmnpfpm6/lrqMNCivmnpfpm7LmraMNCivmnpfpoIblrokNCivmnpfpoIboiIgNCivmnpfli6Tmt5kNCivmnpfltanlsbENCivmnpfmhI/lgKsNCivmnpfmhI/pqLANCivmnpfmhJvmg6ANCivmnpfmlazmlocNCivmnpfmlazmt7UNCivmnpfmlaznv5QNCivmnpfmlrDlh6ENCivmnpfmlrDnmbwNCivmnpfmmonnmpMNCivmnpfmpaDmo4sNCivmnpfmrr/kuIANCivmnpfmr5Pnj4oNCivmnpfmr5PotoUNCivmnpfmupDmsrMNCivmnpfnhafnlLcNCivmnpfnhZzluq0NCivmnpfnhYzou5INCivmnpfnhaXmrL0NCivmnpfnkZ7mmI4NCivmnpfnkZ7lrrYNCivmnpfnkZ7pm6oNCivmnpfnkZ7lvrcNCivmnpfnkZ7omK0NCivmnpfnkZzojokNCivmnpfnm5/lgpENCivmnpfnpbrli5sNCivmnpfnqJrmj5oNCivmnpfntpPntq0NCivmnpfnvqnls7ANCivmnpfnvqnlgpENCivmnpfnvqnmmboNCivmnpfnvqnpm4QNCivmnpfnvqTls7ANCivmnpfnvqTogIANCivmnpfogZbmgKENCivmnpfogZbmgakNCivmnpfogZblgpENCivmnpfogZbmmboNCivmnpfogZbpiJ4NCivmnpfogZbogIANCivmnpfokabokI0NCivmnpfoo5XmmJUNCivmnpfoo5XloIUNCivmnpfoo5Xli50NCivmnpfoo5XoiJwNCivmnpfoqanlh6ENCivmnpfoqanlgKkNCivmnpfoqanmt7UNCivmnpfoqanpm68NCivmnpfoqanoi7kNCivmnpfpgYvmtakNCivmnpfpiYnmmboNCivmnpfpm43nv5QNCivmnpfpnZbkv64NCivmnpfpoIzljZoNCivmnpfpvI7mpI0NCivmnpflmInnpr4NCivmnpflmInkv6ENCivmnpflmInnj40NCivmnpflmInlgYkNCivmnpflmInnkKoNCivmnpflmInnvqQNCivmnpflmInmhacNCivmnpflmInptLsNCivmnpfmkZHlvaUNCivmnpfmpq7mrL0NCivmnpfmvKINCivmnpfmvKLmlowNCivmnpfnnb/mmpgNCivmnpfnoqfmg6ANCivmnpfnoqnlhJINCivmnpfnsr7muZsNCivmnpfntq3nj4oNCivmnpfntq3ojokNCivmnpfnv6DokI0NCivmnpfok5PnvpoNCivmnpfosarlvaUNCivmnpfpipjmtLINCivmnpfpipjnhYwNCivmnpfpipjnhpsNCivmnpfps7Pnj40NCivmnpfpvYrolJoNCivmnpflhIDombkNCivmnpflop7lqIENCivmnpflu6PnvqkNCivmnpflvrfmmYkNCivmnpfmhbbmmIcNCivmnpfmhbbok4kNCivmnpfmhaflkJsNCivmnpfmhafmgKENCivmnpfmhafnj4oNCivmnpfmhafnvo4NCivmnpfmhafnj6ANCivmnpfmhafmt7MNCivmnpfmhafokI0NCivmnpfmhafoj68NCivmnpfmhafpm68NCivmnpfmhafpupcNCivmnpfmhqzoia8NCivmnpfmvoTmvqQNCivmnpfnkanoirMNCivmnpfnkb7omK0NCivmnpfolJrnjrINCivmnpfooZvogZYNCivmnpfos6LlvpcNCivmnpfpgankuYsNCivmnpflhJLmsJENCivmnpflrbjpmoYNCivmnpfmhrLmlL8NCivmnpfmhrbmt7MNCivmnpfmm4nlkJsNCivmnpfmm4noirMNCivmnpfmm4nnjrINCivmnpfmm4nlqbcNCivmnpfmm4noj68NCivmnpfmm4nlmIkNCivmnpfmm4nlqLgNCivmnpfmvqTnvqkNCivmnpfnh5XmooUNCivmnpfnkp8NCivmnpfnqY4NCivmnpfnqY7ojokNCivmnpfnqY7ogbANCivmnpfoiIjph5cNCivmnpfolZnmt4cNCivmnpfosavkuq0NCivmnpfpjKbkvLYNCivmnpfpjKbpmoYNCivmnpfpjKbptLsNCivmnpfpnZzlkJ8NCivmnpfpnZzlrpwNCivmnpfpnZzmgKENCivmnpfpnZzmgKENCivmnpfpnZzoiqwNCivmnpfpnZzpm68NCivmnpfpnZzlhIANCivmnpfpvo3nlJ8NCivmnpfmh4vlt54NCivmnpfogbDku4ENCivmnpforJnlppkNCivmnpfpp7/pgLgNCivmnpfptLvlkJsNCivmnpfptLvlvawNCivmnpfptLvpgZQNCivmnpfptLvpjKENCivmnpfnpq7lvLcNCivmnpfosZDoiJwNCivmnpfngJvmlocNCivmnpfnk4roirMNCivmnpfpn7vlqJ8NCivmnpfpupflkJsNCivmnpfpupfnvo4NCivmnpfpupfnj6ANCivmnpfpupfoj68NCivmnpfpupfok4kNCivmnpflr7bnp4ANCivmnpfnubzlubMNCivmnpfogIDljZcNCivmnpfol7nmlocNCivmnpflt43pvo0NCivmnpfmh7/lkJsNCivmnpfpup8NCivmnpflpIbos5MNCivmnpfoiorkuqgNCivmnpfml7vpgLgNCivmnpfngoXltpQNCivmnpflp53lnYcNCivmnpfmmLblrokNCivmnpfnj4jlpqQNCivmnpflgKzkuJYNCivmnpfntJPnkYsNCivmnpfnkIfpm68NCivmnpfmo6jku7sNCivmnpfnkK7plpQNCivmnpfnkKznkZwNCivmnpfmmpDluq0NCivmnpfnhZLptLsNCivmnpfnkYvnq6MNCivmnpfnrbHnjrINCivmnpfnrbHoj4ENCivmnpfokKnnh5UNCivmnpfpiLrluq0NCivmnpfpiLrlh7ENCivmnpfpiLrmhacNCivmnpfnkofmgKENCivmnpfpnJnnnJ8NCivmnpfpqacNCivmraboia/mlocNCivmrabmlazlkowNCivnpYHnvqnlnIsNCivoirHnvr3olocNCivoirHpm4XmlpANCivliJ3oi6Xlh6ENCivpgrXmlofms7ANCivpgrXlv5fosZANCivpgrXlpZXpiJ4NCivpgrXpg4Hmg6ANCivpgrXli53mt7sNCivpgrXmhJvnjp8NCivpgrXmh7flvrcNCivpgrHkuIDnnJ8NCivpgrHkuo7lgKkNCivpgrHljYPntroNCivpgrHlo6vmga0NCivpgrHlpKfliZsNCivpgrHlrZDmpZMNCivpgrHlsI/lq5oNCivpgrHku4HlgpENCivpgrHlpKnlro8NCivpgrHmlofnjokNCivpgrHmlofmn48NCivpgrHmlofmrL0NCivpgrHmlofptLsNCivpgrHkuJbmsJENCivpgrHku5XlgpENCivpgrHlubzlqpoNCivpgrHmraPnpaUNCivpgrHmsLjlmIkNCivpgrHnjonnjrINCivpgrHnq4vlnIsNCivpgrHku7Lpn7sNCivpgrHlkI3ku5UNCivpgrHlronlj7ANCivpgrHmnInoq5INCivpgrHlkJvmuIUNCivpgrHlv5flhYkNCivpgrHlv5flvLcNCivpgrHlv5fmlowNCivpgrHnp4Doi7ENCivpgrHnp4DpnZwNCivpgrHoia/mr4UNCivpgrHkvbPmnb4NCivpgrHkvbPmvYENCivpgrHlrZ/mnIgNCivpgrHlrprpgqYNCivpgrHlu7bpvaENCivpgrHmgKHllqwNCivpgrHmgKHnpo4NCivpgrHmmIzoo5UNCivpgrHmmI7nkKoNCivpgrHmrKPmgKENCivpgrHms5PlvbANCivpgrHoirPlrpwNCivpgrHph5HnlJ8NCivpgrHkv6Hnm4oNCivpgrHkv6HovJ0NCivpgrHkv4rmmIwNCivpgrHkv4rmmboNCivpgrHkv4rmpq4NCivpgrHkv4rpnJYNCivpgrHlhqDnkZwNCivpgrHlk4Hoj68NCivpgrHlnoLnq6ANCivpgrHlpZXmmI4NCivpgrHlpZXnnb8NCivpgrHlp7/mg6ANCivpgrHlu7rkuK0NCivpgrHlu7roqqANCivpgrHlu7rpi5ANCivpgrHlvaXnkZsNCivpgrHmgJ3lmIkNCivpgrHmlL/muacNCivpgrHmmK3mrL0NCivpgrHmmLHoh7sNCivpgrHmn4/nkZwNCivpgrHmn4/pnJYNCivpgrHnj4DnpaUNCivpgrHnm4jmo6ANCivpgrHntIDoj68NCivpgrHnvo7mg6ANCivpgrHnvo7mhacNCivpgrHoh7TnqY4NCivpgrHou43mtakNCivpgrHpg4Hmt5ENCivpgrHph43mhrINCivpgrHlk7LnkLMNCivpgrHlrrbos6INCivpgrHmjK/ls7ANCivpgrHmoYLpiLQNCivpgrHmtanlvbANCivpgrHnj67ntroNCivpgrHntJTnkYsNCivpgrHlgYnlgKsNCivpgrHlgaXpm4QNCivpgrHlnIvmga0NCivpgrHlnIvmvZQNCivpgrHln7nnkZwNCivpgrHlqYnlrIUNCivpgrHllZ/nv5QNCivpgrHmlY/olZkNCivpgrHmuIXpvo0NCivpgrHmt5HlqJ8NCivpgrHmt5HnkLQNCivpgrHmt5HmhacNCivpgrHntLnmuqINCivpgrHojonlqbcNCivpgrHlh7ENCivpgrHlibXlhIkNCivpgrHlr4zmupANCivpgrHmg6DlqKUNCivpgrHmg6DoqakNCivpgrHmma/okI0NCivpgrHmmbrlgpENCivpgrHmuZjpm7INCivpgrHntZANCivpgrHoqaDmt7MNCivpgrHpgLjnvqQNCivpgrHpm4XoiqwNCivpgrHpm4XojokNCivpgrHpm4Xpm68NCivpgrHpm4XojJwNCivpgrHlnJPmg6ANCivpgrHmlazpm68NCivpgrHmr5PnjrINCivpgrHnhaXmlocNCivpgrHnkZ7mooUNCivpgrHnm5/nkIcNCivpgrHogZbmlocNCivpgrHogZbmlowNCivpgrHoqanmt7UNCivpgrHoqannkIENCivpgrHpnZbpm68NCivpgrHlmInlgpENCivpgrHlmInmhacNCivpgrHnoqfmlr0NCivpgrHntq3lqYkNCivpgrHpn7bnkakNCivpgrHlvrflh7ENCivpgrHmhaflpoINCivpgrHmhaflqbcNCivpgrHnt6/lubMNCivpgrHmm4nnjrINCivpgrHmqLnlnIsNCivpgrHpnZzlrpwNCivpgrHpnZzpm68NCivpgrHpjb7ku4ENCivpgrHosZDnpaUNCivpgrHnk4rmg6ANCivpgrHnk4rmhacNCivpgrHpn7vlr6cNCivpgrHpupfoi7ENCivpgrHlr7bokLENCivpgrHnubznkakNCivpgrHomIrpnZwNCivpgrHppqjlhIANCivpgrHpvaHpoKQNCivpgrHpoa/moZMNCivpgrHpoa/pnJYNCivpgrHlp7Xntr4NCivpgrHnkKzmt5ENCivpgrHmpL/lh7ENCivpgrHnrbHpm68NCivpgrHpiLrmlpANCivpgrHnno0NCivph5Hlo6vngroNCivph5Hkuqzmpq4NCivph5HmmI7ovJ0NCivph5HmlL/oq7oNCivph5Hnj57nkLMNCivph5Hli6QNCivph5Hno4oNCivkvq/lipvntq0NCivkvq/mloflk7INCivkvq/mraPptLsNCivkvq/lpoLoiqwNCivkvq/lro/mmIwNCivkvq/np4DlpoINCivkvq/kvbPlhbgNCivkvq/lh73np4ANCivkvq/lsrPlro8NCivkvq/mmIbliqkNCivkvq/mrKPnv7ANCivkvq/kv6HlrocNCivkvq/lkrjku7ANCivkvq/lvaXkvLgNCivkvq/mn4/pnZINCivkvq/oh7TkuK0NCivkvq/ntKDpm7INCivkvq/mt7XpipgNCivkvq/ljZrlhYMNCivkvq/mma/li5sNCivkvq/osrTpvaENCivkvq/pm4Xpm68NCivkvq/lmInnj40NCivkvq/mhbbovrANCivkvq/pnZzmsZ0NCivkvq/pupfmhacNCivkvq/pnIjpnZINCivkv57kvbPlh6ENCivkv57ms4rpnJYNCivkv57og73mlrkNCivkv57pm4XlqbcNCivkv57oiorologNCivlp5zlhYPpiJ4NCivlp5zlkI7mgKENCivlp5zlro/mpq4NCivlp5zkvankvLYNCivlp5zmmI7lro8NCivlp5zoip3mgKENCivlp5zlu7rpipgNCivlp5zloInmvYENCivlp5zlh7HlgpENCivlp5zmmbrpiJ4NCivlp5zpm4XlqbcNCivlp5znvqnmhLcNCivlp5zlop7ngqsNCivlp5zmqLnpjKYNCivlp5znpq7osaoNCivlp5zml7vlp40NCivlp5rlj4jmlocNCivlp5rmlrnmvZQNCivlp5rnq4vkuIkNCivlp5rlhYvpiJ4NCivlp5rlv5fmhrINCivlp5rkvbPmhacNCivlp5rlrpfmqLgNCivlp5rmgKHomK0NCivlp5rph5HmupANCivlp5rlqIHlrocNCivlp5rnm4jku7sNCivlp5rntKDomK0NCivlp5rlh7HmlocNCivlp5rnkJvlr4wNCivlp5rnkZ7os6INCivlp5rlvrfpup8NCivlp5rpupfkuroNCivlrqPlv5flh4wNCivlvovmjK/mj5oNCivmlr3lpKfntq0NCivmlr3mlocNCivmlr3mlofosaoNCivmlr3lj6/pmoYNCivmlr3njonlk4ENCivmlr3lkI3njqUNCivmlr3lrofpp78NCivmlr3nmb7mqLoNCivmlr3kvK/lrpwNCivmlr3lrZ3lvrcNCivmlr3lro/mvqQNCivmlr3lv5fosaoNCivmlr3np4DlrpsNCivmlr3ogrLnkZwNCivmlr3kvbPlkJsNCivmlr3kvanlkJsNCivmlr3kvanoj68NCivmlr3lrZ/lro8NCivmlr3lrpzlkYgNCivmlr3lrpvnm7QNCivmlr3mgKHlpoINCivmlr3mgKHpiLQNCivmlr3mmI7lpo0NCivmlr3mnbDmnb4NCivmlr3njqvlkJsNCivmlr3pm6jkvZANCivmlr3kv4rlkI0NCivmlr3kv4ros6INCivmlr3lpZXmtrUNCivmlr3lu7rlrocNCivmlr3lvaXnlKsNCivmlr3mlL/osaoNCivmlr3mn4/lpoINCivmlr3nmofml60NCivmlr3nvo7nkZsNCivmlr3pg4HolZkNCivmlr3mjK/lnaQNCivmlr3ntKDljb8NCivmlr3lgaXptLsNCivmlr3mlY/nlLcNCivmlr3mt5Hmg6ANCivmlr3pm6rlp78NCivmlr3ljZrlhYMNCivmlr3lr4zmtakNCivmlr3mg6DnkKoNCivmlr3mmbrli4cNCivmlr3nqIvlh7ENCivmlr3oqaDnhLYNCivmlr3piJ7lgKsNCivmlr3pm4XlqJ8NCivmlr3pm6/nkKoNCivmlr3nvqnmu4QNCivmlr3lmInnkKoNCivmlr3mvKLltrgNCivmlr3oqozosaoNCivmlr3mhaflkJsNCivmlr3nkb7lgKsNCivmlr3mm4npm68NCivmlr3pnZzmgKENCivmlr3nk4rlpoINCivmlr3ppqjosrQNCivmlr3ml7vlrpwNCivmlr3nkYvnkZwNCivmn6/lipvosaoNCivmn6/lhYPlh7ENCivmn6/mlofnpaUNCivmn6/kuJbos6INCivmn6/msLjlv6ANCivmn6/lhajnm4oNCivmn6/kvK/lvaUNCivmn6/lro/lqIENCivmn6/lv5fmmI4NCivmn6/mspvlv5cNCivmn6/oia/olZkNCivmn6/kvbPnp4ANCivmn6/kvanlkJsNCivmn6/lnaTmmI4NCivmn6/lrpfkvK8NCivmn6/lrpvlkJsNCivmn6/mgKHnjp8NCivmn6/mmI7nv7ANCivmn6/mrKPlhIANCivmn6/ph5HmnY8NCivmn6/kv4rlkIkNCivmn6/kv4rpmoYNCivmn6/lrqPlrocNCivmn6/lvaXml60NCivmn6/mmK3nlJ8NCivmn6/nm4jlpoINCivmn6/ombnlpoINCivmn6/ms7DlkI0NCivmn6/mlY/nm5sNCivmn6/mt5Hmg6ANCivmn6/pgKPnlLANCivmn6/ljZrlhYMNCivmn6/lr4zorbANCivmn6/mg6Doj7ENCivmn6/mmbrku4ENCivmn6/mo4vmo6MNCivmn6/plpTmlocNCivmn6/pm4Xoj68NCivmn6/mr5PokI0NCivmn6/lmInmsbYNCivmn6/noqfmmK0NCivmn6/ps7PlhIANCivmn6/mhrLokrwNCivmn6/pjKbnlLcNCivmn6/nk4rpjqMNCivmn6/ml7voia8NCivmn6XmhafnkLMNCivmn7PlpoLluq0NCivmn7PkvanlkJsNCivmn7Plu7roia8NCivmn7PojLnokI0NCivmn7Pmo4vlhYMNCivmn7PlmInou5INCivmn7PptrTmnb4NCivmrrXmmI7lro8NCivmrrXpgLjou5INCivmtKrkuIDkuK0NCivmtKrlipvlo7kNCivmtKrkuo7plpQNCivmtKrljYPmg6ANCivmtKrljYPnkKYNCivmtKrlo6vogrINCivmtKrlo6vlgpENCivmtKrlpKfngroNCivmtKrlrZDlqbcNCivmtKrlsI/mg6ANCivmtKrlhYPmlowNCivmtKrmlofmmI4NCivmtKrmloflh7ENCivmtKrmlofos6INCivmtKrkuJbmmIcNCivmtKrkuJblmIkNCivmtKrliqDpgZQNCivmtKrmraPlhYkNCivmtKrmsLjmmIwNCivmtKrnjonoirMNCivmtKrnjonlqbcNCivmtKrnjonokqgNCivmtKrkuqbmvZQNCivmtKrlhYnlhIQNCivmtKrlkI3ooaENCivmtKrlronkv5ANCivmtKrnmb7os6INCivmtKrkvZHmmIcNCivmtKrlkJvnpaUNCivmtKrlro/mlL8NCivmtKrlv5fnlJ8NCivmtKrlv5fmmI4NCivmtKrlv5fpm4QNCivmtKrlv5fpipgNCivmtKrmnZHpipgNCivmtKrnp4DoirMNCivmtKrnp4DnkakNCivmtKroia/mrKMNCivmtKrkvp3nkKoNCivmtKrkvbPnkLMNCivmtKrkvankvLYNCivmtKrlnaTpjKENCivmtKrlrZ/nkaQNCivmtKrlrpfmvKINCivmtKrlrpzoia8NCivmtKrlsJrpipgNCivmtKrlv6DogZYNCivmtKrmgKHnnJ8NCivmtKrmmI7ljJYNCivmtKrmmI7lgYkNCivmtKrmmI7pvo0NCivmtKrmrKPmmIcNCivmtKroirfmvKoNCivmtKrkv6HlmIkNCivmtKrkv4rpm4QNCivmtKrlrqPnq7kNCivmtKrmgJ3nkKoNCivmtKrmlL/pnIgNCivmtKrmn4/lr6cNCivmtKrnp4voj68NCivmtKrnvo7okI0NCivmtKrojILpm4QNCivmtKroi7HlgpENCivmtKrpg4Hluq0NCivmtKrph43ljb8NCivmtKrlrrbnkKoNCivmtKrmgoXnjrINCivmtKrmjK/nm4oNCivmtKrmjK/pipgNCivmtKrmoLnoj68NCivmtKrnj67oirMNCivmtKrnj67ntroNCivmtKrogL/mmboNCivmtKrlgYnlk7INCivmtKrlgYnlgpENCivmtKrlgYnoq60NCivmtKrlgaXls7ANCivmtKrmm7znj4oNCivmtKrlnIvlk7INCivmtKrlnIvmg58NCivmtKrlnIvnv5QNCivmtKrlnIvogIANCivmtKrln7nlgKsNCivmtKrlqYnntIsNCivmtKrltIfmgakNCivmtKrltJHlgaUNCivmtKrlvqHlvZcNCivmtKrllZ/lgYkNCivmtKrmlY/oirMNCivmtKrmlY/pm4QNCivmtKrmuIXlgaUNCivmtKrmt5Hosp4NCivmtKrmt5Hmg6ANCivmtKrmt5Hmt6kNCivmtKrntLnmlocNCivmtKrnv47os5MNCivmtKrpm6roirMNCivmtKrli53lh7ENCivmtKrmg6DmlocNCivmtKrmg6Dmo4sNCivmtKrmmbTmmbQNCivmtKrmmbros6INCivmtKrnkKbmg6ANCivmtKroj4HpmoYNCivmtKroj7HntKsNCivmtKrpmobmmboNCivmtKrpm4Xoi5MNCivmtKrpm4Xpm68NCivmtKrpoIbnlLcNCivmtKrmhYjkvLYNCivmtKrmhLflu7cNCivmtKrmpajpgqYNCivmtKrmr5PlrKoNCivmtKrnhYzlh7ENCivmtKrnkZ7loIINCivmtKrnkZ7ok4kNCivmtKrnkZ7ptLsNCivmtKrokKzlvpcNCivmtKrogZbmgakNCivmtKrokLHpi5INCivmtKroo5XnhJwNCivmtKroqanpm4UNCivmtKrpnZblh7ENCivmtKrlmInlnLsNCivmtKrlmInnj4oNCivmtKrlmInnkLMNCivmtKrlmInok64NCivmtKrlmInpp78NCivmtKrlr6cNCivmtKrmpq7ovJ0NCivmtKrnlIToi6ENCivmtKrnoqnlgYkNCivmtKrntroNCivmtKrntq3oia8NCivmtKrntq3mvqQNCivmtKrogoflvaUNCivmtKroqozlvLcNCivmtKrpipjkvZANCivmtKrpipjpmb0NCivmtKrpipjpjb4NCivmtKrprYHnpqcNCivmtKrlr6zms7ANCivmtKrmhbbpipgNCivmtKrmhafnjrINCivmtKrmhafokI0NCivmtKrnkannj40NCivmtKrlhJLmmI4NCivmtKrmm4nltZANCivmtKrolZnlv4MNCivmtKrpnZzmgKENCivmtKrogbLpipMNCivmtKrnpq7lkJsNCivmtKrol53oj4ENCivmtKrpupflp78NCivmtKrpupfpiJ4NCivmtKrnubzos6INCivmtKrlhLfps7MNCivmtKrliq3lhYMNCivmtKrmmaLmg4cNCivmtKrmlozlh7ENCivmtKrmrYbmgKENCivmtKrnrbHkvakNCivmtKrpiLrmq7sNCivnm7jlrZ/osaoNCivntIDkurrnkYsNCivntIDmlofmrL0NCivntIDlkInlpoINCivntIDkvK/nkoENCivntIDlv5fpnJYNCivntIDkvbPlrpwNCivntIDlrpfpnJYNCivntIDmgKHlqbcNCivntIDms5PloK8NCivntIDplbfoiIgNCivntIDlqIHnvr0NCivntIDnm4jlt54NCivntIDnpZbosaoNCivntIDmt5HoirMNCivntIDljZrmlY8NCivntIDmmbrku4ENCivntIDpiJ7plo4NCivntIDpoIboiIgNCivntIDpipjlnaQNCivntIDmm4nmgakNCivntIDomK3mvZQNCivog6HkuIHlhYMNCivog6HlsI/okI0NCivog6Hlv4PmhacNCivog6HmlofnkZwNCivog6HkuJbono0NCivog6HmraPnv7ANCivog6HnjonmhacNCivog6HlkIzkuq4NCivog6HmiJDnq6ANCivog6Hlu7flqIENCivog6Hlv5fpipgNCivog6HogrLntq0NCivog6HkvbPnpo4NCivog6HlrprlrocNCivog6HmgKHoirMNCivog6HmnbHmmIcNCivog6HoirPmhYgNCivog6Hph5HngZ0NCivog6HluJ0NCivog6HnjrLlqYkNCivog6Hoi6XnlLcNCivog6Hkv67nkYANCivog6Hlrrbmpq4NCivog6HlsZXpipgNCivog6HmjK/kuK0NCivog6Hmm7jntr8NCivog6HntJToj4ENCivog6Hkub7pi5INCivog6Hmjojmt7MNCivog6Hmt5HlkJsNCivog6Hmt5Hpm4UNCivog6Hlh7HmmboNCivog6HljZrnoa8NCivog6Hmg6DlqbcNCivog6Hmma/pm68NCivog6HmmbrpipgNCivog6Hnq6Pnoa8NCivog6HosrTmnIgNCivog6Hpm4Xlpo0NCivog6Hpm4XmmboNCivog6HpoIbpmoYNCivog6Hmr5PnmbwNCivog6HnkZ7mtJkNCivog6Hoqanoj4ENCivog6HlmInnnJ8NCivog6HnoqflqpwNCivog6Hotavlu7cNCivog6HmhaflpoINCivog6HmhrLpnJYNCivog6HpnZzoi5ENCivog6Hnk4rmlocNCivog6HogIDku4ENCivog6Hmh7/lv4MNCivog6HnhZLnj40NCivojIPkuK3lqIENCivojIPmlofmlL8NCivojIPkuJbnkosNCivojIPnjonokLENCivojIPlkInmhbYNCivojIPlnYfmspsNCivojIPnlKvlrpcNCivojIPkvbPpm68NCivojIPmmI7kuK0NCivojIPlhqDlgYkNCivojIPlp5zlvaXlpoINCivojIPlp5zmhafmgKENCivojIPnp4vpnJ4NCivojIPpg4HlpoINCivojIPlrrboqqANCivojIPmjK/mlocNCivojIPmjK/pup8NCivojIPogJXprYENCivojIPlnIvln7oNCivojIPmt5HnjrINCivojIPojonoi5MNCivojIPljZrlvbANCivojIPmj5rlrpwNCivojIPmj5rpqLANCivojIPmmbrmrL0NCivojIPpiJ7lgpENCivojIPmr5Posp4NCivojIPnkZ7npaUNCivojIPoqanmvKoNCivojIPmvKLlkJsNCivojIPntrHos6INCivojIPmhaflpoINCivojIPmm4nmgKENCivojIPngJrmlocNCivojIPogIDogbANCivojIPnkIfnkocNCivoi5flvozlgpENCivoqIjnq7nlrocNCivpn4vkurrnkZwNCivpn4vlv5fptLsNCivpn4vmoYLku4ENCivlgJnmmLrovrANCivlgKrnjonpvo0NCivlgKrlv5fptLsNCivlgKrlqIHpgaANCivlgKrlgYnmmboNCivlgKrmt5HlqbcNCivlgKrnkZ7mnJ8NCivlgKrmhafnj4oNCivlh4zkuJboirMNCivlh4zmmI7lvrcNCivlh4zpm6rmg6ANCivlh4zmhafokI0NCivllJDljYPmg6ANCivllJDmlofos6INCivllJDmsLjoiIgNCivllJDkvZzosaoNCivllJDpgqbms7ANCivllJDmmI7lv5cNCivllJDmgJ3ntq0NCivllJDoi7HlqJwNCivllJDnj67nj4oNCivllJDlnIvlv6ANCivllJDmt5HoiqwNCivllJDmnJ3nt68NCivllJDpm4Xnh5UNCivllJDnvqnloK8NCivllJDlmInnvpoNCivllJDpn7bpnJkNCivllJDmm4nlvq4NCivllJDorb3njqsNCivlpI/mraPpgqYNCivlpI/oia/njokNCivlpI/mmKXpppkNCivlpI/mt5Hok4kNCivlpI/pgZTlgYkNCivlpI/mhafpvaENCivlpI/nv4rlgKsNCivlravkuIrpm68NCivlravlo6vng5gNCivlravlhYPkv4oNCivlravmlrnlhIANCivlravlj6/ngroNCivlravmsLjkv6ENCivlravnq4vmsJENCivlravlpoLlvawNCivlravkvK/kuK0NCivlravlv5fli4cNCivlravogrLoip0NCivlravljZToo5UNCivlravlv6Dlh7ENCivlravmmI7pp78NCivlravph4folocNCivlravlu7rltLQNCivlravnvo7oi7ENCivlravpg4HlqbcNCivlravmjK/mtrwNCivlravnj67oirMNCivlravlgYnlgKsNCivlravlnIvmm7gNCivlravltIflk7INCivlravmg5/mraMNCivlravmt5HoiqwNCivlravlgpENCivlravnkKYNCivlravpgLjnh5UNCivlravlgrPlh7ENCivlravmuqLloIINCivlravnnablgpENCivlravpgZPpmoYNCivlravlmInolK0NCivlravntrENCivlravosarlv5cNCivlravpipjptLsNCivlravmhafmtKUNCivlravlrbjlhIANCivlravpvo3nv5QNCivlravpupflqJ8NCivlravngpjlrpwNCivlravnkYANCivlrq7lp43lp40NCivluKvlrpzpnZINCivlvpDkuZnlj68NCivlvpDljYPnpZANCivlvpDljYPpm4UNCivlvpDlo6vli5sNCivlvpDlrZDlubMNCivlvpDlrZDlvLcNCivlvpDlsI/okI0NCivlvpDku4Hkub4NCivlvpDlv4PlrpwNCivlvpDmloflkJsNCivlvpDmlofnm4oNCivlvpDmnIjlqKUNCivlvpDkuJbln7oNCivlvpDku5Xms5MNCivlvpDlt6flh4wNCivlvpDmraPmgKENCivlvpDmsLjlhYkNCivlvpDmsLjps7QNCivlvpDnjonoiqwNCivlvpDnjonmhYgNCivlvpDnq4vpgZQNCivlvpDlhYnlubMNCivlvpDljKHlubMNCivlvpDlpoLmmIcNCivlvpDmnInmhbYNCivlvpDoib7kvLYNCivlvpDlhYvpiJ4NCivlvpDlro/lrocNCivlvpDlv5flrocNCivlvpDlv5flgYkNCivlvpDlv5fosaoNCivlvpDmnY7lhagNCivlvpDnp4DnjrINCivlvpDogrLmhYgNCivlvpDkvbPlpoINCivlvpDkvanlpoINCivlvpDkvanpjKYNCivlvpDlrpfmupANCivlvpDlv6DnvqkNCivlvpDmmIbnvr8NCivlvpDmmI7oj68NCivlvpDmmI7ptLsNCivlvpDmnb7ptLsNCivlvpDmrKPlpo8NCivlvpDnn6XmnKwNCivlvpDph4folocNCivlvpDkv6HkuK0NCivlvpDkv4rlgpENCivlvpDlpZXmmokNCivlvpDmgJ3ntq0NCivlvpDmn4/pn5wNCivlvpDnvo7njokNCivlvpDnvo7oj68NCivlvpDoi6XppqgNCivlvpDoi7HnoqkNCivlvpDpg4HmqLoNCivlvpDlrrbmpbcNCivlvpDmjK/mtLINCivlvpDmm7jmlL8NCivlvpDmtZrlgpENCivlvpDnj67npo4NCivlvpDlgYnlh6ENCivlvpDlgYnls7sNCivlvpDlgYnpoIYNCivlvpDlgaXpoIYNCivlvpDlnIvlgKsNCivlvpDlnIvmmboNCivlvpDlnIvogIANCivlvpDln7nmurYNCivlvpDlqYnlhIANCivlvpDltJHltJkNCivlvpDlvp7oqqUNCivlvpDmlY/oirMNCivlvpDmlY/oj68NCivlvpDmooXlh4wNCivlvpDmt5HlqJ8NCivlvpDmt5HlrKoNCivlvpDnpaXnhLYNCivlvpDojonnnJ8NCivlvpDpm6rnk4oNCivlvpDlr4zlurcNCivlvpDmg6Dnj40NCivlvpDmjoznkZsNCivlvpDmnJ3lurcNCivlvpDoiJLkup4NCivlvpDoqaDlqpsNCivlvpDpgLLlr7YNCivlvpDpm4Xmo4sNCivlvpDpoIblro8NCivlvpDmhJvlqbcNCivlvpDmr5Poia8NCivlvpDnkZrpjoINCivlvpDnkZ7mga0NCivlvpDnkZ7ogbANCivlvpDnkZzmlY8NCivlvpDoo5XlvawNCivlvpDos4foqLwNCivlvpDpnZbmg6ANCivlvpDlmInlro8NCivlvpDlmInnkLMNCivlvpDlmInpp5INCivlvpDlpKLpup8NCivlvpDmpq7ovrANCivlvpDnlITptLsNCivlvpDnpo/npaUNCivlvpDntq3mj5oNCivlvpDnv6DpgZkNCivlvpDpipjkvZsNCivlvpDpipjorJkNCivlvpDps7PmhrYNCivlvpDlvrfos6INCivlvpDmhaflv4MNCivlvpDmhaflqbcNCivlvpDmr4Xlro8NCivlvpDpnIfmnbENCivlvpDmm4nnraANCivlvpDoiIjmt6YNCivlvpDpnZzlhIANCivlvpDptLvku4ENCivlvpDotIrnmbsNCivlvpDpupfnj40NCivlvpDnubzmlL8NCivlvpDmq7voirMNCivlvpDmt68NCivlvpDoj6HnpqcNCivlvpDnkYvoiqwNCivlvpDnrbHoirgNCivlvpDpiLrntr4NCivlvpDpkavosaoNCivmm7jnmb7lt50NCivmoZHmgKHnp4sNCivmn7TlrbjoiJwNCivmrrfoirfoi6UNCivmrrfntLnplpQNCivmrrfogofpmb0NCivmtabmm4nps7MNCivnlZnkub7nhJwNCivnpZbmm4nps7MNCivnp6bkuIDlubMNCivnp6blronnq4sNCivnp6blu7rnkYsNCivnp6bmopPpipgNCivnp6bogZblgpENCivnp6bpupfpm4UNCivnv4Hkuo7nkKoNCivnv4Hlo6vou5INCivnv4HlrZDlqbcNCivnv4HmlofojLkNCivnv4Hku6Xlk7INCivnv4HnjonlqJ8NCivnv4Hku7Los6INCivnv4Hlrofpp78NCivnv4Hlro/pnJYNCivnv4Hlv5fosaoNCivnv4HogrLnqJQNCivnv4HkvbPpn7sNCivnv4Hlrpfoo5UNCivnv4HmmI7lrokNCivnv4Hmnpfpi4wNCivnv4Hkv6Hoh7oNCivnv4Hmn4/ogZYNCivnv4Hoi7HmlowNCivnv4HmjK/oirMNCivnv4Hnj67mgKENCivnv4HlgYnlgKsNCivnv4HlgaXnt68NCivnv4Hln7rmuIUNCivnv4HltIfluq0NCivnv4HllZ/kv6ENCivnv4HmmajogIANCivnv4Hmt5Hoj68NCivnv4Hlo7nlp78NCivnv4Hmu4vnj64NCivnv4HpgLjou5INCivnv4Hpm4Xmg6ANCivnv4Hmr5Pnv44NCivnv4HnkZ7nvpoNCivnv4HnvqnlrpcNCivnv4HpvI7mmIwNCivnv4HlmInnv44NCivnv4HlpKLlkJsNCivnv4Hnoqflo5UNCivnv4Hntq3oia8NCivnv4HpipjpgZwNCivnv4Hlvrfljb8NCivnv4Hmm4noiqwNCivnv4HpnZznkZwNCivnv4HpupLmmIwNCivnv4HlhLflgKkNCivnv4HnkYvlqJ8NCivnv4HpnZrmmY8NCivojYrlgYnmlL8NCivoooHlpKnoi7ENCivoooHlpoLlsqENCivoooHmgKHojLkNCivoooHmn4/lgYkNCivoooHlgYnlgKsNCivoooHllZ/pkasNCivoooHpm4Xmg6ANCivoooHmpq7nh6YNCivoooHpnZzoj68NCivoqJjkvbPpm68NCivpg53mlL/ptLsNCivppqzkuIDmlocNCivppqzkuK3pqYoNCivppqzljaDls7ANCivppqznjonlqJ8NCivppqzlronlpq4NCivppqzlv5fmmI4NCivppqzkvbPkvLYNCivppqzlsrPlro8NCivppqzljZfmrKMNCivppqzoi7HlgpENCivppqznj67lqbcNCivppqzlnIvolb4NCivppqzmt5Hljb8NCivppqzmmbrlkJsNCivppqznhYzlnaQNCivppqzlmInpmoYNCivppqznt5Llt50NCivppqzmhrblqbcNCivppqzmq7voj4ENCivpq5jkuIDpipgNCivpq5jljYPmg6ANCivpq5jlo6vmmI4NCivpq5jlrZDmt4cNCivpq5jlsI/mlocNCivpq5jlj4vmhacNCivpq5jmloflvawNCivpq5jkuJbmmIwNCivpq5jkuLvlvLcNCivpq5jlvJjlt54NCivpq5jmraPlnIsNCivpq5jnjonlpoINCivpq5jnjonppqgNCivpq5jkvIrkv4oNCivpq5jlkIjliqkNCivpq5jml63mhbYNCivpq5joh7Plr6wNCivpq5jlro/pipgNCivpq5jlv5flgYkNCivpq5jlv5fprYENCivpq5jnp4DpiLQNCivpq5jkup7omK0NCivpq5jkvanlkJ8NCivpq5jlpq7nkYsNCivpq5jlrpfnhZINCivpq5jlubjnkZwNCivpq5jmmI4NCivpq5jmmI7nkYsNCivpq5jmrKPmvZQNCivpq5jph5Hlv5cNCivpq5jlkrjlr6YNCivpq5jlvaXli5sNCivpq5jmn4/osaoNCivpq5jnvo7oirMNCivpq5joi7Hlh7ENCivpq5jpg4Hlh7ENCivpq5jls7ANCivpq5jmoKkNCivpq5jnj67ntroNCivpq5jlgYnlgKsNCivpq5jlgaUNCivpq5jlnIvlk7INCivpq5jlnIvlr6cNCivpq5jln7nnnJ8NCivpq5jlvazljp8NCivpq5jllZ/npZANCivpq5jmlY/lqIkNCivpq5jmt5HoirMNCivpq5jmt5Hmg6ANCivpq5jnrJnovJQNCivpq5jpm6rljb8NCivpq5jlqbcNCivpq5jmma/mgKENCivpq5jnkKroiJINCivpq5joqaDlvaUNCivpq5jpm4XoirMNCivpq5jpm4XohbkNCivpq5jmhI/npo4NCivpq5jmr5PovrANCivpq5jnhafplpQNCivpq5jnkZ7nkaQNCivpq5jnvqnlv6ANCivpq5joqanlqIkNCivpq5jpoIzmuIUNCivpq5jlmInoia8NCivpq5jlmInltrwNCivpq5jlvbDpmoYNCivpq5jnnb/omK0NCivpq5jnq6/njqsNCivpq5jnv6Dnv44NCivpq5jpioDnqZcNCivpq5jpipjlgpENCivpq5jpipjnkIcNCivpq5jlhIDpipgNCivpq5jmhbbmlowNCivpq5jmhafokI0NCivpq5jmhrblpoINCivpq5jpnZzmsJENCivpq5jolofolocNCivpq5jorZzlgKsNCivpq5jpupfolZkNCivpq5jpoaXlk7INCivpq5jmlozpkasNCivpq5jnrbHmhacNCivpq5jolo/mtrUNCivllYblvJjmmJMNCivllYbps7Poi7ENCivlr4fpupfpm68NCivltJTkvZHntq0NCivltJTlgKnoi5MNCivltJTnkKbmsJENCivluLjmrKPnjokNCivlurfkuYPmnIgNCivlurfku5XlrpcNCivlurflroflr6cNCivlurfmlLjoj68NCivlurflrZ/mhI8NCivlurfph5Hpi5INCivlurfnvo7njrINCivlurflrrblvbANCivlurfluq3nkZ4NCivlurfphY3lrrkNCivlurflgpHmsJENCivlurfmmbrmmIcNCivlurfnmbvlgpENCivlurfpm4XlqbcNCivlurfnqJrmmpgNCivlurflmInomK0NCivlurfmm4nolZkNCivlurfpupfosp4NCivlvLUNCivlvLXkuIDptLsNCivlvLXkuYPmlocNCivlvLXkuYPlgYkNCivlvLXlipvku4ENCivlvLXlipvlpKsNCivlvLXlj4jljYMNCivlvLXlj4jniZkNCivlvLXljYPph4wNCivlvLXlo6vos6INCivlvLXlrZDmmIwNCivlvLXlsI/okI0NCivlvLXkuK3olocNCivlvLXlsLnppqgNCivlvLXku4HmnbANCivlvLXku4HlgpENCivlvLXku4HogbANCivlvLXlhYMNCivlvLXlhYPpmoYNCivlvLXlhYPptLsNCivlvLXlj4sNCivlvLXlpKnps7MNCivlvLXlsKTlrZANCivlvLXlv4PmgKENCivlvLXlv4PnkZwNCivlvLXlv4PppqgNCivlvLXmlofogrINCivlvLXmlofmmI4NCivlvLXmloflvaUNCivlvLXmlofnjrINCivlvLXmlofou5INCivlvLXmlofmrL0NCivlvLXmlofpm68NCivlvLXmlofmpq4NCivlvLXmlofosaoNCivlvLXmlofmqLUNCivlvLXmlofniJANCivlvLXmlofpqLANCivlvLXmnIjlrrkNCivlvLXkuJbkuK0NCivlvLXkuJblsrMNCivlvLXkuJbmmI4NCivlvLXkuJboiqwNCivlvLXkuJbpm68NCivlvLXkuJblhJINCivlvLXkuJblo44NCivlvLXku6XlhagNCivlvLXku5XogrINCivlvLXku5Xml7sNCivlvLXliqDmmIcNCivlvLXlj6/mrKMNCivlvLXlpK7mmIwNCivlvLXlt6fnjrINCivlvLXlubznkYsNCivlvLXlvJjms7ANCivlvLXlv4XmmI4NCivlvLXmraPkvZkNCivlvLXmraPlv6ANCivlvLXmraPmnbANCivlvLXmraPpmoYNCivlvLXmraPooZsNCivlvLXmraPnjpcNCivlvLXmsLjmnZANCivlvLXmsLjmmIYNCivlvLXmsLjkv4oNCivlvLXmsLjmo4sNCivlvLXmsLjli7MNCivlvLXnjoTptLsNCivlvLXnjonmrKMNCivlvLXnjonnjrINCivlvLXnjonnkKoNCivlvLXnjonok4kNCivlvLXnjonml7sNCivlvLXnq4vmlocNCivlvLXnq4vmrKMNCivlvLXnq4vpiJ4NCivlvLXnq4vnt68NCivlvLXkuqblr6cNCivlvLXku7LlubMNCivlvLXku7LpipMNCivlvLXlhYnku4ENCivlvLXlhYnlgYkNCivlvLXlhYbln58NCivlvLXljKHmnbANCivlvLXlkInosZANCivlvLXlpb3npq4NCivlvLXlpoLnkakNCivlvLXlrofnq6MNCivlvLXlronlpq4NCivlvLXlvI/oia8NCivlvLXml63lrpcNCivlvLXmsY7pqI8NCivlvLXnvr3mvZQNCivlvLXoh7Pnnb8NCivlvLXoib7piLQNCivlvLXkvZHmsJENCivlvLXkvZHnvqQNCivlvLXkvZzmiJANCivlvLXkvK/pp78NCivlvLXlhYvlgYkNCivlvLXlkJvlpoINCivlvLXlkJvnkZwNCivlvLXlkJ/mhYgNCivlvLXlppnmhacNCivlvLXlrovokI0NCivlvLXlro/mmKUNCivlvLXlro/nkZ4NCivlvLXlro/pipgNCivlvLXluIzogZYNCivlvLXlv5cNCivlvLXlv5fku7ANCivlvLXlv5flrocNCivlvLXlv5foiJ8NCivlvLXlv5fmmI4NCivlvLXlv5flgYkNCivlvLXlv5floIUNCivlvLXlv5fnpaUNCivlvLXlv5fnkLMNCivlvLXlv5fmupANCivlvLXlv5fpgZQNCivlvLXlv5fosaoNCivlvLXlv5fosaoNCivlvLXlv5fosaoNCivlvLXlv5fpipgNCivlvLXlv5fptLsNCivlvLXlv5fnkYQNCivlvLXmsoXnkr0NCivlvLXnp4DnjokNCivlvLXnp4Dnj40NCivlvLXnp4DnkKoNCivlvLXnp4Dok4kNCivlvLXogrLlubMNCivlvLXogrLltKcNCivlvLXogrLoj4ENCivlvLXogrLmhY4NCivlvLXogrLoqqANCivlvLXogrLlvbANCivlvLXogrLntrgNCivlvLXogrLpipMNCivlvLXogrLnkYsNCivlvLXoia/mupANCivlvLXpgpHlpoINCivlvLXkup7pipwNCivlvLXkvbPmlocNCivlvLXkvbPpn7MNCivlvLXkvbPmg6ANCivlvLXkvbPpm68NCivlvLXkvbPok4kNCivlvLXkvanluIYNCivlvLXkvannkZsNCivlvLXlj5Tnvo4NCivlvLXlrZ/njokNCivlvLXlrZ/lqbcNCivlvLXlrpfku4ENCivlvLXlrpfos6INCivlvLXlrpzmlrANCivlvLXlsJrpiJ4NCivlvLXlu7bku7sNCivlvLXlv7XmhYgNCivlvLXmgKHmrKMNCivlvLXmgKHojokNCivlvLXmgKHmhacNCivlvLXmmIbnhYwNCivlvLXmmI7liKkNCivlvLXmmI7npaUNCivlvLXmmI7nhacNCivlvLXmmI7nkosNCivlvLXmmIfmrL0NCivlvLXmnpfoiqwNCivlvLXmrKPmgKENCivlvLXmrKPolZkNCivlvLXmsrvlnIsNCivlvLXnp4nnpboNCivlvLXoirPoj4ENCivlvLXoirPntr4NCivlvLXoip3lj4sNCivlvLXoirjmhacNCivlvLXph5HlsbENCivlvLXph5Hps7MNCivlvLXpm6jnrZENCivlvLXkv6HnmbwNCivlvLXkv4rlgYkNCivlvLXkv4rloK8NCivlvLXkv4ros6INCivlvLXlhqDoj68NCivlvLXlp7/lqpoNCivlvLXlu7rpgqYNCivlvLXlu7rnpaUNCivlvLXlu7rosaoNCivlvLXlvaXoj4ENCivlvLXmgJ3lhIANCivlvLXmgYbnkYsNCivlvLXmlL/lgpENCivlvLXmmK3lhYMNCivlvLXmn5TmmI4NCivlvLXmtLLmnJ8NCivlvLXngrrmo58NCivlvLXnjrLlqYkNCivlvLXnlYzogbANCivlvLXnm4jptLsNCivlvLXnp4vlqbcNCivlvLXntIDlkJsNCivlvLXnvo7njrINCivlvLXnvo7nvpoNCivlvLXnvo7pm68NCivlvLXnvo7pnJ4NCivlvLXoh7TokqgNCivlvLXojILphpINCivlvLXoi7HnkKYNCivlvLXpg4HoiqwNCivlvLXpg4HlqbcNCivlvLXpppnnkr0NCivlvLXlgJbnoqcNCivlvLXkv67osaoNCivlvLXlgKvnkYsNCivlvLXliZvntq0NCivlvLXljp/orIANCivlvLXlk7LlgaUNCivlvLXlk7LnkZ4NCivlvLXlk7LmppUNCivlvLXlk7Lntq0NCivlvLXlk7LpipgNCivlvLXlqJ/oj68NCivlvLXlrrbmmI4NCivlvLXlrrbmjK8NCivlvLXlrrbmt6YNCivlvLXlrrbmo58NCivlvLXlrrboj7ENCivlvLXlrrbmupANCivlvLXlrrbnkZwNCivlvLXlrrbnvqQNCivlvLXlrrbmppUNCivlvLXlrrbmpq4NCivlvLXlrrbnoqkNCivlvLXlrrbntroNCivlvLXlrrbosaoNCivlvLXlrrbosaoNCivlvLXlrrbosaoNCivlvLXlrrbotasNCivlvLXlrrbpipgNCivlvLXlrrbpipgNCivlvLXlrrbmvaQNCivlvLXlrrbmh7cNCivlvLXlrrbnkYsNCivlvLXlrrnoj7ENCivlvLXlrrjlrpcNCivlvLXls7vmnbANCivlvLXls7vlmIkNCivlvLXls7vlmrQNCivlvLXls7Dmpq4NCivlvLXluq3mupANCivlvLXluq3nkYsNCivlvLXmgannk4oNCivlvLXmjK/mupANCivlvLXmjK/pjrANCivlvLXmmYnpgJoNCivlvLXmmYnosaoNCivlvLXmmY/oqqANCivlvLXmmY/pvaENCivlvLXmm7joiKoNCivlvLXmm7jntq0NCivlvLXmm7josaoNCivlvLXmm7jpipgNCivlvLXmm7jppqgNCivlvLXmoLnmupANCivlvLXmoYLoj68NCivlvLXmoYLps7MNCivlvLXms7DpnZINCivlvLXmtanloIINCivlvLXnj67mgKENCivlvLXnj67nkKoNCivlvLXnm4rlt54NCivlvLXnm4roj68NCivlvLXnm4rntq0NCivlvLXnpZDmhYgNCivlvLXnpZDntq0NCivlvLXnp6boirgNCivlvLXntKDnp4sNCivlvLXntKDoj68NCivlvLXntJTnm4oNCivlvLXntJTnkYsNCivlvLXogL8NCivlvLXogL/ntq0NCivlvLXogL/ltJoNCivlvLXoqJPnvqkNCivlvLXou5LosaoNCivlvLXpq5jnkZ4NCivlvLXlgYnlgKsNCivlvLXlgYnpiJ4NCivlvLXlgaXoia8NCivlvLXlnIvlv5cNCivlvLXlnIvmtakNCivlvLXlnIvlqpsNCivlvLXlnIvnkr0NCivlvLXloILlh6ENCivlvLXlqYnlkJsNCivlvLXlqYnmmoQNCivlvLXltIflgYkNCivlvLXlurfomZQNCivlvLXmg5/mjbcNCivlvLXllZ/mmI4NCivlvLXmlY/oip0NCivlvLXmooXlkJsNCivlvLXmt7Pmg6ANCivlvLXmuIXmlocNCivlvLXmuIXlh7ENCivlvLXmt5HlkJsNCivlvLXmt5HoirMNCivlvLXmt5HoiqwNCivlvLXmt5Hnj40NCivlvLXmt5Hosp4NCivlvLXmt5HlqJ8NCivlvLXmt5HojLkNCivlvLXmt5HlqbcNCivlvLXmt5HnkKYNCivlvLXmt5Hpm4UNCivlvLXmt5Hlq7sNCivlvLXmt5HorLkNCivlvLXmt7Xlr4wNCivlvLXmtrXou5INCivlvLXnm5vntrENCivlvLXntLnmmokNCivlvLXojonojLkNCivlvLXpgKLmmYINCivlvLXpm6rpm7INCivlvLXlh7HlrocNCivlvLXlh7Hmt7MNCivlvLXlh7HltZANCivlvLXlh7HnkLMNCivlvLXlh7HotoUNCivlvLXlh7Hntq0NCivlvLXli53ku4ENCivlvLXli53lgpENCivlvLXli53pm4QNCivlvLXljZrlkowNCivlvLXljZrli5sNCivlvLXljZrpiJ4NCivlvLXllrsNCivlvLXllqznv5QNCivlvLXlo7nog70NCivlvLXlqbfpn7sNCivlvLXlr4zmt7MNCivlvLXlr4znpo4NCivlvLXmg6DlpoINCivlvLXmg6Dnj4oNCivlvLXmg6DlqJ8NCivlvLXmg6DlqbcNCivlvLXmg6DnkKoNCivlvLXmg6Doj4ENCivlvLXmg6Dpm68NCivlvLXmg6DomK0NCivlvLXmlabnvqkNCivlvLXmmbTmmbQNCivlvLXmma/lgKsNCivlvLXmma/muL4NCivlvLXmma/plo4NCivlvLXmmbrlrokNCivlvLXmmbrliZsNCivlvLXmmbrmuIUNCivlvLXmmbrlgpENCivlvLXmmbrltLQNCivlvLXmmbrnv5QNCivlvLXmmbrpiJ4NCivlvLXmmbrosaoNCivlvLXmmbrorJkNCivlvLXmnJ3lh7ENCivlvLXmnJ3pvo0NCivlvLXmo4vpm68NCivlvLXmuZjmgKENCivlvLXnkKroj68NCivlvLXnkKbntLkNCivlvLXnmbvnv5QNCivlvLXnmpPltLQNCivlvLXnqIvpoIYNCivlvLXntKvpiLQNCivlvLXnv5TmmboNCivlvLXoiJLnkKYNCivlvLXoiJzoj68NCivlvLXoj4HojLkNCivlvLXoj6/lgKkNCivlvLXoqaDojLUNCivlvLXoqLzojYMNCivlvLXosrTnkLMNCivlvLXpgLjlh6ENCivlvLXpgLjnvqQNCivlvLXph4/nhLYNCivlvLXpiJ7lr4wNCivlvLXpiJ7osr0NCivlvLXplpTlr4wNCivlvLXpm4HlqbcNCivlvLXpm4Xlp40NCivlvLXpm4XoiqwNCivlvLXpm4XnjrINCivlvLXpm4Xljb8NCivlvLXpm4XmlY8NCivlvLXpm4XlqbcNCivlvLXpm4XlqbcNCivlvLXpm4XlqbcNCivlvLXpm4XlqbcNCivlvLXpm4XltZANCivlvLXpm4Xmg6ANCivlvLXpm4Xmg6ANCivlvLXpm4XnkKoNCivlvLXpm4XnkLQNCivlvLXpm4XokI0NCivlvLXpm4Xpm68NCivlvLXpm4Xpm68NCivlvLXpm4XpiLQNCivlvLXpm4XnkakNCivlvLXpm6/ojLUNCivlvLXpm6/lhIANCivlvLXpoIblkIkNCivlvLXpoIbnpo8NCivlvLXll6PmlocNCivlvLXmhI/oqqANCivlvLXmhYjngZENCivlvLXmhLfmmY8NCivlvLXmlrDlro8NCivlvLXmr5MNCivlvLXmr5PoiqwNCivlvLXmr5PlgKsNCivlvLXmr5PmvZQNCivlvLXmupDpkasNCivlvLXnkZrnj4oNCivlvLXnkZ7lkJsNCivlvLXnkZ7mnbANCivlvLXnkZ7oirgNCivlvLXnkZ7lqJ8NCivlvLXnkZ7mma8NCivlvLXnkZ7mqLoNCivlvLXnkZ7msLYNCivlvLXnkZzlkJsNCivlvLXnkZzlqJ8NCivlvLXnpbrmmIcNCivlvLXnvqnlv6ANCivlvLXnvqTmnIsNCivlvLXogZbojokNCivlvLXoo5XmmIwNCivlvLXoo5Xpm68NCivlvLXoqanmgKENCivlvLXoqanpm68NCivlvLXos4fmmIoNCivlvLXpgZPmmboNCivlvLXpnZbmgKENCivlvLXpvI7piYkNCivlvLXlmInlhYMNCivlvLXlmInmraMNCivlvLXlmInlro8NCivlvLXlmInmrKMNCivlvLXlmInoiqwNCivlvLXlmInnjrINCivlvLXlmInnjrINCivlvLXlmInlk7INCivlvLXlmInmmYkNCivlvLXlmInnnJ8NCivlvLXlmInoqJMNCivlvLXlmInmg6ANCivlvLXlmInpm4QNCivlvLXlmInntq0NCivlvLXlmInogbINCivlvLXlmInnj6MNCivlvLXlr6fppqgNCivlvLXmppXlrrkNCivlvLXmpq7nm4gNCivlvLXmpq7mhrINCivlvLXnhpLnj4oNCivlvLXnnb/nqY4NCivlvLXnoqflqJ8NCivlvLXnoqnlhYMNCivlvLXnoqnmoZMNCivlvLXnpo/mlL8NCivlvLXntrHpgpENCivlvLXntrXoirMNCivlvLXntq3lhagNCivlvLXntq3nj4oNCivlvLXntq3lk7INCivlvLXntq3nnJ8NCivlvLXntq3mt7MNCivlvLXntq3mvZQNCivlvLXnv6DmlocNCivlvLXnv6DnkKoNCivlvLXogofmqJENCivlvLXok5PokLENCivlvLXosarmlocNCivlvLXpioDoirMNCivlvLXpipjlrpcNCivlvLXpipjls7ANCivlvLXpipjnv7ANCivlvLXps7PlubMNCivlvLXps7PlhIANCivlvLXlu6PmtakNCivlvLXlvrfmpoYNCivlvLXmhbbmgKENCivlvLXmhbbosZANCivlvLXmhafmgKENCivlvLXmhaflqJ8NCivlvLXmhafokI0NCivlvLXmhafnrrQNCivlvLXnkannj4oNCivlvLXooZvluIYNCivlvLXpganmgYYNCivlvLXlrbjlgKsNCivlvLXmhrblkJsNCivlvLXmm4nmmIANCivlvLXmm4nlqbcNCivlvLXmm4noj4ENCivlvLXmm4nps7MNCivlvLXnh5Xlpq4NCivlvLXnv7DmlocNCivlvLXphpLkuJYNCivlvLXpjKblqbcNCivlvLXpnZzlpoINCivlvLXpnZzmgKENCivlvLXpnZzojLkNCivlvLXpvo3ku4ENCivlvLXnkrDkvIoNCivlvLXorJnpgZQNCivlvLXptLvlpoINCivlvLXptLvmmboNCivlvLXmm5zpipMNCivlvLXnsKHmraPlgYkNCivlvLXnsKHmrKPoj68NCivlvLXnsKHlmInkuroNCivlvLXol43lsLkNCivlvLXosZDnkrgNCivlvLXmh7fmgakNCivlvLXnk4rkuYsNCivlvLXnk4rmlocNCivlvLXnk4rmlocNCivlvLXnk4rmlrkNCivlvLXnk4rmg6ANCivlvLXol53ppqgNCivlvLXpupflkJsNCivlvLXpupfmt5ENCivlvLXlr7bkupENCivlvLXnjbvlo6wNCivlvLXnub3mlocNCivlvLXnubzmmIwNCivlvLXogIDkupENCivlvLXogIDlhYENCivlvLXogIDmraMNCivlvLXogIDogbINCivlvLXph4vmlocNCivlvLXppqjmlocNCivlvLXppqjmlocNCivlvLXpqLDlhYMNCivlvLXlhLfolrANCivlvLXlt43ogIANCivlvLXorb3ppqgNCivlvLXptrTogIANCivlvLXpnL3mnIgNCivlvLXoioMNCivlvLXlgJsNCivlvLXojJzojLkNCivlvLXnkIfplpQNCivlvLXlqpzlqpwNCivlvLXnkKzlrpwNCivlvLXnkKzoj4ENCivlvLXoj4DlgKkNCivlvLXnhZLlr6cNCivlvLXnkYvoirgNCivlvLXnkYvlgKsNCivlvLXnkYvlqbcNCivlvLXnrbHlkJsNCivlvLXnrbHpm68NCivlvLXphJDmhpsNCivlvLXpiLrlvakNCivlvLXnppXlgKsNCivlvLXnkoHmlocNCivlvLXpkJnlsLkNCivlvLXmgZLkuK0NCivmiJrkuYXmmboNCivmlZbmsLjpvo0NCivmm7nlo6vmlY8NCivmm7nmloflvaUNCivmm7nkuJbmtakNCivmm7nnq4vooYwNCivmm7nogb/nlLcNCivmm7nlv5flvLcNCivmm7nkvbPlrokNCivmm7nmmIznlLcNCivmm7nmrKPoia8NCivmm7nmmKXmlocNCivmm7nlk7LlmIkNCivmm7nls7vmmIwNCivmm7nnj67mgKENCivmm7nlgYnojLkNCivmm7nmt5HlqpsNCivmm7nli53osZANCivmm7nmmbrmrKMNCivmm7nnmpPpm7INCivmm7npm4Xmg6ANCivmm7nmlrDlvaUNCivmm7nlmInmlocNCivmm7nntq3lgKsNCivmm7nmr4Xli4cNCivmm7nnkr3nqaANCivmm7nojqjos6INCivmooHkuYPlgaUNCivmooHku4Hoj68NCivmooHmloflrokNCivmooHmlofos5MNCivmooHkuJbosaoNCivmooHmraPlv6ANCivmooHnjonnjrINCivmooHku7vkuK0NCivmooHmsZ3oiJwNCivmooHlkJvpnJkNCivmooHlv5flvawNCivmooHlv5fpipgNCivmooHogrLoj68NCivmooHkvbPpgLINCivmooHmgKHoiqwNCivmooHmnbHmnpcNCivmooHkv6HlhYMNCivmooHkv5DnkKYNCivmooHlvaXosaoNCivmooHngrPpkYQNCivmooHpg4Hok4ENCivmooHlrrbmmI4NCivmooHlrrbosaoNCivmooHls7vpipgNCivmooHmmYnprYENCivmooHnj67nj64NCivmooHnp6blrpwNCivmooHlgaXlv6ANCivmooHllZ/njoQNCivmooHmt5HlqJ8NCivmooHojonlqJ8NCivmooHli53pipgNCivmooHmg6DlqbcNCivmooHmma/loK8NCivmooHmnJ3lh7ENCivmooHoiJLmgKENCivmooHpgLjoiqwNCivmooHpm4XoiJINCivmooHmhLfoirgNCivmooHnkZ7ou5INCivmooHogZbmmIwNCivmooHlmInnj40NCivmooHnoqfmhacNCivmooHnv6Dnj4oNCivmooHmhafoj68NCivmooHmm4nntq0NCivmooHpnZzlrpwNCivmooHnk4rkuLkNCivmooHnubzku4ENCivmooHmh7/lvrcNCivmooHnkYvnnJ8NCivmooXlhYnlrocNCivmooXpm4XlqbcNCivnlaLlv5foj68NCivnm5vlv4MNCivnm5vnpaUNCivnrKbogofkuK0NCivojqvmmJ/lrocNCivojorkuIDlh6ENCivojorkuo7nkakNCivojorlo6vlnIsNCivojorlrZDlh7ENCivojorku4Hlro8NCivojorlv4PokI0NCivojormlofmmK0NCivojormlofosaoNCivojorkuJbmnbANCivojorlvJjku7sNCivojormraPmj5oNCivojormsLjnpo8NCivojornjonpup8NCivojorlpoLou5INCivojorlhYvlgYkNCivojorlv5fmmI4NCivojorlv5fmpq4NCivojornp4DpiLQNCivojorogrLmppUNCivojorkvp3lqbcNCivojorkvbPmpq4NCivojorkvanpm68NCivojorlnaTlk7INCivojorlrZ/njrINCivojorlrZ/ntJMNCivojorlrpfli7MNCivojorlrpjnkocNCivojorlrpznkocNCivojorlv6Dnm4oNCivojormgKHou5INCivojormmIzmm4QNCivojormmI7pgZQNCivojormnbHmmI4NCivojormrKPlk7INCivojornjqXlrJsNCivojorph5HpnZwNCivojorkv4rlgpENCivojorlu7oNCivojormlL/mhrINCivojornp4vlrZANCivojornvo7ppqgNCivojoroi7HnkLQNCivojorlgInmnbANCivojorlrrbmmIcNCivojorlrrbpipgNCivojorls7vmppUNCivojormoZPlmIkNCivojornj67piLQNCivojorntJTntJQNCivojorlgYnku4ENCivojorlnIvovrANCivojorln7npkasNCivojorllZ/mlocNCivojormoqjpnZINCivojormuIXlr4wNCivojormt5HoiqwNCivojormt5HlqbcNCivojormt5HplpQNCivojormt5Hnj7oNCivojorojonojokNCivojorlh7HojLUNCivojorli53liKkNCivojorljZrmuIUNCivojorloK/ku7sNCivojorlr4zlgpENCivojorlvqnosrQNCivojormg6DojLkNCivojormg6DokI0NCivojormg6Dok4kNCivojormmbTpm7INCivojormma/nkIcNCivojormmbrmtrUNCivojormmbrpiJ4NCivojormnJ3piJ4NCivojornmbvnmbwNCivojorlloToirMNCivojoros4DllqwNCivojorplpTml60NCivojorpm4Xlv4MNCivojorpm4XnjrINCivojorpm4XlqbcNCivojorpm4Xmg6ANCivojorpm4XokI0NCivojorpm4Xpm7INCivojorpm6/pm68NCivojorltannt68NCivojornkZ7ljZcNCivojoroo5XmlocNCivojorlmInnjrINCivojormvKLmuIUNCivojorntq3pipgNCivojorpipjmma8NCivojormhaflv4MNCivojornkanlp78NCivojormqLnlro8NCivojorolZnokI0NCivojorpjKblubMNCivojorpnZzmgKENCivojormv7HntroNCivojormm5zml60NCivojoron6zlpoMNCivojorpjpTnkp4NCivojorppqXntrENCivojorpupfotrMNCivojormh7/lvLcNCivojormjYPlqIkNCivojormlozmmboNCivojornrbHlqbcNCivoqLHkuIDkuYsNCivoqLHkuYPnqY0NCivoqLHlj4jku4ENCivoqLHlpKflrrkNCivoqLHku4HlhagNCivoqLHlhYPpipgNCivoqLHlo6zogIANCivoqLHlv4Pnm4gNCivoqLHmloflv6ANCivoqLHmlofljpoNCivoqLHmlofmoZANCivoqLHmlofoj68NCivoqLHmlofosaoNCivoqLHmlofol40NCivoqLHml6XmmKUNCivoqLHkuJbmsJENCivoqLHkuJbmmIwNCivoqLHkuJbmgawNCivoqLHkuJbos6INCivoqLHliqDlro8NCivoqLHlubMNCivoqLHlvJjmr4UNCivoqLHmraPlv6ANCivoqLHmraPoqrwNCivoqLHmsLjmmI4NCivoqLHmsLjmr4UNCivoqLHnjonoirMNCivoqLHnjonlqJ8NCivoqLHnjonlrIsNCivoqLHnlLINCivoqLHnq4vnvqQNCivoqLHku7Los6INCivoqLHlkI3kuJYNCivoqLHlrofmnbANCivoqLHmiI7lspENCivoqLHmsY7nqY4NCivoqLHoh7PlhagNCivoqLHkvZHpipMNCivoqLHlhYvku7INCivoqLHlkJvosaoNCivoqLHlpo3luIwNCivoqLHlro/lgYkNCivoqLHlro/lvrcNCivoqLHlv5flkIwNCivoqLHlv5flro8NCivoqLHlv5fltIcNCivoqLHlv5fpm4QNCivoqLHlv5fntq0NCivoqLHlv5fpgaANCivoqLHlv5fptawNCivoqLHmsbblt54NCivoqLHnp4Dnj4oNCivoqLHnp4Dok4kNCivoqLHogrLoj4ENCivoqLHogrLoqqANCivoqLHoia8NCivoqLHosp3lpoINCivoqLHkvbPmlL8NCivoqLHkvbPpm68NCivoqLHkvanojLkNCivoqLHljZPlobUNCivoqLHlrZ/nv5QNCivoqLHlrpfmpq4NCivoqLHlubjpm68NCivoqLHmgKHnj64NCivoqLHmib/oqJMNCivoqLHmmI7lgpENCivoqLHmmI7lvrcNCivoqLHmnb7nrYkNCivoqLHms5PnkK4NCivoqLHoirPmhYgNCivoqLHoirPpipgNCivoqLHoipnnkbINCivoqLHph5HnmbwNCivoqLHkv6Hmpq4NCivoqLHkv4rpm4QNCivoqLHlp7/mgKENCivoqLHlvaXnhLYNCivoqLHmgazntr4NCivoqLHmmK3lhYMNCivoqLHmn4/mqLoNCivoqLHnj4rnkZwNCivoqLHnp4vnjrINCivoqLHnvo7oirMNCivoqLHnvo7oj68NCivoqLHoh7Tntq0NCivoqLHoi7HlgpENCivoqLHpg4HmlY8NCivoqLHkv7jmmIwNCivoqLHkv67pipgNCivoqLHljp/pipgNCivoqLHlk7LnkZ4NCivoqLHlk7LlvbANCivoqLHlk7LosaoNCivoqLHlk7LnkYsNCivoqLHlrrblrqMNCivoqLHlrrblgpENCivoqLHlrrbmmpgNCivoqLHlrrblvbANCivoqLHlrrbmpq4NCivoqLHlrrbosaoNCivoqLHlrrbosaoNCivoqLHlrrbmhbYNCivoqLHlrrjosaoNCivoqLHls7vlk7INCivoqLHls7vnkYsNCivoqLHls7DpipgNCivoqLHluq3nkYsNCivoqLHmjK/muZYNCivoqLHmmYLlmIkNCivoqLHmmYnnhpINCivoqLHmm7gNCivoqLHmm7jmpq4NCivoqLHmm7jpipMNCivoqLHmoLnlrpwNCivoqLHmoJPosaoNCivoqLHmtannkYsNCivoqLHnj67lmIkNCivoqLHnm4rou5INCivoqLHnpZDokIoNCivoqLHntKDoj4ENCivoqLHntJTnkZwNCivoqLHogL/osaoNCivoqLHosqHlvpcNCivoqLHlgYnlv6ANCivoqLHlnIvlrokNCivoqLHlnIvos6INCivoqLHlqYnojLkNCivoqLHlvannnJ8NCivoqLHllZ/mj5oNCivoqLHmooXoj4ENCivoqLHmt7PnkIcNCivoqLHmuIXmpZMNCivoqLHmt5HoiqwNCivoqLHmt5Hosp4NCivoqLHmt5HojLkNCivoqLHmt5Hmg6ANCivoqLHmt5Hoj68NCivoqLHmt5Hok64NCivoqLHnm5vmmIwNCivoqLHojonojokNCivoqLHlh7Hmg4cNCivoqLHlh7HlmIkNCivoqLHli53li5sNCivoqLHljZrngroNCivoqLHljZrmo64NCivoqLHloKHlpoINCivoqLHlr4zlv6ANCivoqLHlr4zpm4QNCivoqLHmg6DlpoINCivoqLHmg6Dnj40NCivoqLHmg6DojLkNCivoqLHmg6DnkLMNCivoqLHmg6Dpm68NCivoqLHmg6DngIUNCivoqLHmmbTmlpANCivoqLHmma/piJ4NCivoqLHmmbrnjrINCivoqLHmmbrmg58NCivoqLHmmbrlh7ENCivoqLHmmbrnv5QNCivoqLHmmbrpm4QNCivoqLHmmbrlvrcNCivoqLHmnJ3lr4wNCivoqLHmrL3osaoNCivoqLHnmbvmt7UNCivoqLHnq6Pog70NCivoqLHlloTlh7ENCivoqLHoiJLojJwNCivoqLHoj6/lgJoNCivoqLHoqaDli50NCivoqLHosrTlvbANCivoqLHpgLjnq6ANCivoqLHpgLLoiIgNCivoqLHplpTpm4QNCivoqLHpm4XmrKMNCivoqLHpm4XnjrINCivoqLHpm4Xmt5ENCivoqLHpm4XlqbcNCivoqLHpm4Xmg6ANCivoqLHpm4Xmg6ANCivoqLHpm4XokI0NCivoqLHpm4Xpm4ENCivoqLHpm4Xpm68NCivoqLHpm4XmhacNCivoqLHpm6/nkLMNCivoqLHpoIbmuIUNCivoqLHmhI/oi7kNCivoqLHmhLfnv5QNCivoqLHmpajnpaUNCivoqLHmr5PlqJ8NCivoqLHmupDms4kNCivoqLHnkZ4NCivoqLHnkZ7oirgNCivoqLHnkZ7mgakNCivoqLHnkZ7lhIANCivoqLHnkZzoirMNCivoqLHnqJ/mm7wNCivoqLHogZbmnbANCivoqLHoo5XlhIQNCivoqLHoqannraANCivoqLHpiLToi7ENCivoqLHlmInlhYMNCivoqLHlmInoirMNCivoqLHlmInlgKkNCivoqLHlmInnj64NCivoqLHlmInmg6ANCivoqLHlmInnqY4NCivoqLHmppUNCivoqLHmpq7pmoYNCivoqLHnkaTppqgNCivoqLHnoqfnj6ANCivoqLHnoqnkv64NCivoqLHnrpTmtrUNCivoqLHntq3ogrINCivoqLHntq3nnJ8NCivoqLHnv6Dnq68NCivoqLHoqpgNCivoqLHpipjku4ENCivoqLHpipjlk7INCivoqLHpipjosqENCivoqLHplqPmlocNCivoqLHps7Ppm4UNCivoqLHmhbbmlocNCivoqLHmhaflkJsNCivoqLHmhafosp4NCivoqLHmhZXosp4NCivoqLHpganmpZMNCivoqLHmhrboirMNCivoqLHmm4noj4ENCivoqLHnh5XokI0NCivoqLHpjKbmlocNCivoqLHpnZzlrpwNCivoqLHpnZzpm6oNCivoqLHltrjku4ENCivoqLHptLvmlocNCivoqLHolrDmlocNCivoqLHmh7fmlocNCivoqLHnk4rmlocNCivoqLHnk4rmnIgNCivoqLHpmrTnpboNCivoqLHpupfoj68NCivoqLHnub3lpoINCivoqLHogIDmlocNCivoqLHppqjku4ENCivoqLHpqLDlhYMNCivoqLHouo3orbANCivoqLHmmLboj68NCivoqLHnkIflqbcNCivoqLHnkK7pgqYNCivoqLHlq4jnjokNCivoqLHnrbHokI0NCivoqLHpiLrojLkNCivoqLHpi5HptLsNCivoqLHmgZLpgZQNCivpgKPku4HogZYNCivpgKPkuJblkowNCivpgKPkvZHku4ENCivpgKPnp4Dku4ENCivpgKPkvanms6ANCivpgKPoirjlh7ANCivpgKPlu7rmmboNCivpgKPnp4vml7oNCivpgKPlrrnnkKoNCivpgKPmoYLlro8NCivpgKPlgYnlgpENCivpgKPlqYnlhIANCivpgKPllZ/mmboNCivpgKPli53npaUNCivpgKPpm4Xosp4NCivpgKPlmInntJQNCivpgKPmhbbosZANCivpgKPpnZzojLkNCivpg63kuIDmqLoNCivpg63kuYPmpq4NCivpg63kurrosaoNCivpg63lipvnkYsNCivpg63kuo7npo4NCivpg63lo6voj68NCivpg63lo6vps7MNCivpg63lrZDnq4sNCivpg63lrZDnhpINCivpg63lrZDnppUNCivpg63ku4Hlk7INCivpg63lpKnnq4sNCivpg63mloflkIwNCivpg63mloflvaUNCivpg63mlofmg6ANCivpg63mlofpipMNCivpg63msLTlsbENCivpg63kuJbomK0NCivpg63ljYnpm68NCivpg63mraPlrpcNCivpg63msLjmmI4NCivpg63njonnj40NCivpg63nq4sNCivpg63nq4vpgZQNCivpg63ku7Lmt7UNCivpg63lhYbpm68NCivpg63lpJnlkJ8NCivpg63lubTnnJ8NCivpg63mnInpjq4NCivpg63oh7Plk7INCivpg63lkJvmgKENCivpg63lro/mlocNCivpg63lro/pp78NCivpg63lv5flro8NCivpg63lv5fnpaUNCivpg63mnY8NCivpg63msoLmnZENCivpg63ogrLlhYgNCivpg63ogrLmmIwNCivpg63ogrLntq0NCivpg63pgqblvaUNCivpg63kvbPmrKMNCivpg63kvbPpm68NCivpg63kvbPpkasNCivpg63kvannkKYNCivpg63lpYfmlocNCivpg63lrZ/ok4kNCivpg63lrpfmhbYNCivpg63lsJrli7MNCivpg63lv6DlkowNCivpg63mgKHkvLYNCivpg63mgKHlkJsNCivpg63mgKHlkJsNCivpg63mgKHnp4ANCivpg63mgKHpiLQNCivpg63mib/lhIANCivpg63mmI7lrpcNCivpg63mmI7ls7ANCivpg63mmI7pgZMNCivpg63mmI7nkYsNCivpg63mnb7nqY4NCivpg63mrablrokNCivpg63njp/njp8NCivpg63njqXlpqYNCivpg63oirPlkJsNCivpg63oirPpm68NCivpg63oip3nnb8NCivpg63plbfmqLkNCivpg63kv6Hlro8NCivpg63kv53lkJsNCivpg63kv4rlro8NCivpg63kv4rnlLcNCivpg63kv4rkv6ENCivpg63kv4rlhIQNCivpg63kv5DkuqgNCivpg63lhqDlu7cNCivpg63lk4Hnp4ANCivpg63lp7/kvLYNCivpg63lp7/mrKMNCivpg63lqIHlv5cNCivpg63lu7rlro8NCivpg63lu7rlu7cNCivpg63lu7roia8NCivpg63lu7rmupANCivpg63lvaXlkJsNCivpg63lvaXnlKsNCivpg63mgJ3lrpwNCivpg63mlL/lv6ANCivpg63mlL/nkosNCivpg63mmK3lrokNCivpg63mmK3poa8NCivpg63mmLHml7sNCivpg63mn4/np4ANCivpg63ngrPmiJANCivpg63njrLmhYgNCivpg63nm4jlkJsNCivpg63nnIHokLENCivpg63nvo7lkJsNCivpg63nvo7lp40NCivpg63nvo7lloQNCivpg63nvo7omK0NCivpg63ojILomZQNCivpg63osp7lrY0NCivpg63lgI3lrokNCivpg63lgJbpipMNCivpg63lh4zlv5cNCivpg63lk7LmiJANCivpg63lk7LnkYsNCivpg63lrrblro8NCivpg63lrrbnpaUNCivpg63lrrbosaoNCivpg63lrrbmhacNCivpg63lrrjmmIANCivpg63ls7DmmIcNCivpg63luq3ok4kNCivpg63mjK/mvKINCivpg63mmY/kvZENCivpg63mm7josaoNCivpg63moYLps7MNCivpg63mtanlv5cNCivpg63nm4rlhYMNCivpg63npZbkvZENCivpg63ntKDntr4NCivpg63ogL/ku7sNCivpg63ou5INCivpg63lnIvmraMNCivpg63lqYnnjrINCivpg63llZ/mspANCivpg63mt7vmlrANCivpg63mt5Hoiq8NCivpg63mt5HmlY8NCivpg63mt5HmhacNCivpg63pgKLnpaUNCivpg63li50NCivpg63llqzlubQNCivpg63mg6DpnZINCivpg63mg6Dml7sNCivpg63mmbrmmI4NCivpg63mmbrnkYsNCivpg63nkKrlqqcNCivpg63oqaDnj64NCivpg63pgLLmmIwNCivpg63pm4XmsZ0NCivpg63pm4XlqbcNCivpg63pm4Xoj7ENCivpg63pm4XolocNCivpg63mhYjnm4gNCivpg63nhZzltIcNCivpg63nkZ7mrL0NCivpg63nvqnmo6ANCivpg63oqanlsY8NCivpg63lmInlgYkNCivpg63lpKLnq7kNCivpg63mpq7mhbYNCivpg63noqflqJ8NCivpg63ntrjnm4oNCivpg63ogoflvLcNCivpg63pipjlgpENCivpg63mhbbnlJ8NCivpg63mhafnj40NCivpg63mhafoloQNCivpg63lhJLorJkNCivpg63mm4nljYkNCivpg63mm4npm68NCivpg63nh5XnjrINCivpg63olZnokI0NCivpg63pjJXpnJYNCivpg63pnZznvo4NCivpg63mv5/ntq0NCivpg63pp78NCivpg63mm5zlvbANCivpg63pjq7lhYMNCivpg63nk4rlqpsNCivpg63pupfnp4sNCivpg63njbvmlocNCivpg63omIrlv7ENCivpg63ppqjpjoINCivpg63nsaDmhbYNCivpg63ml7vnkZwNCivpg63mmZ/lrocNCivpg63mmpANCivpg63piLroirMNCivpg63mgZLlppkNCivpmbPkuIDmiJANCivpmbPkuIDoj68NCivpmbPkuIDnkYsNCivpmbPkuYPph6cNCivpmbPkuYPmpq4NCivpmbPkurrnlIQNCivpmbPlipvlh6ENCivpmbPlj4jmmJUNCivpmbPlj4jogZYNCivpmbPkuIrlgKsNCivpmbPljYPpjKYNCivpmbPlo6vlgpENCivpmbPlpKflkIwNCivpmbPlrZDku4ENCivpmbPlrZDlvaUNCivpmbPlrZDpiJ4NCivpmbPlsI/okI0NCivpmbPlt7HljYcNCivpmbPkuK3pipgNCivpmbPkuYvoq60NCivpmbPku4HlrpcNCivpmbPku4HlgpENCivpmbPku4rlh6ENCivpmbPlhYPlrZ0NCivpmbPlhYPpnZYNCivpmbPlha4NCivpmbPlpKnku4ENCivpmbPlpKnos54NCivpmbPlv4PmgKENCivpmbPlv4PmgKENCivpmbPlv4PmvZQNCivpmbPmloflt50NCivpmbPmlofmiJANCivpmbPmloflv6ANCivpmbPmlofkuq4NCivpmbPmlofmmK0NCivpmbPmlofpg44NCivpmbPmlofmtpMNCivpmbPmloflvawNCivpmbPmlofnq6ANCivpmbPmlofmrL0NCivpmbPmlofoj68NCivpmbPmlofok4kNCivpmbPmloflvrcNCivpmbPmloflrbgNCivpmbPmlofptLsNCivpmbPmlofpiLoNCivpmbPmnIjlpq4NCivpmbPmsLTms4kNCivpmbPkuJblrocNCivpmbPkuJblrpcNCivpmbPkuJbmmI4NCivpmbPkuJbmnbANCivpmbPkuJbmlL8NCivpmbPkuJbluq0NCivpmbPkuJblgYkNCivpmbPkuJbnq6ANCivpmbPkuJbmo7sNCivpmbPkuJbnm58NCivpmbPkuJbosaoNCivpmbPkuJbmvqQNCivpmbPkuJbptLsNCivpmbPkuLvmrKMNCivpmbPku6XpnZwNCivpmbPku5XoirMNCivpmbPku5XmupANCivpmbPku5Xlj6ENCivpmbPliqDmmI4NCivpmbPlip/pnJYNCivpmbPlj6/mrKMNCivpmbPlj7PmsJENCivpmbPlj7Poq60NCivpmbPlt6jptqANCivpmbPlt6fnj4oNCivpmbPlt6fmg6ANCivpmbPlt6fpoKQNCivpmbPlubzmrKMNCivpmbPlvJjmlocNCivpmbPlvJjmrKMNCivpmbPlvJjoqJMNCivpmbPlvJjmr4UNCivpmbPlvJjpjqcNCivpmbPmnK3ln7kNCivpmbPmraPlro8NCivpmbPmraPmmIwNCivpmbPmraPoirMNCivpmbPmraPls7ANCivpmbPmraPlgpENCivpmbPmraPpm4QNCivpmbPmraPosaoNCivpmbPmraPoiIgNCivpmbPmsJENCivpmbPmsLgNCivpmbPmsLjlrpcNCivpmbPmsLjmmIwNCivpmbPmsLjpnZINCivpmbPmsLjlh4wNCivpmbPmsLjlurcNCivpmbPmsLjlr4wNCivpmbPmsLjoqowNCivpmbPmsLjnqYYNCivpmbPmsLjnj6kNCivpmbPnjonmlocNCivpmbPnjonlpYcNCivpmbPnjonoirMNCivpmbPnjonoiqwNCivpmbPnjonnj4oNCivpmbPnjonnj40NCivpmbPnjonlqJ8NCivpmbPnjonnj6ANCivpmbPnjonmooUNCivpmbPnjonnkLMNCivpmbPnjonoj4ENCivpmbPnjonpm7INCivpmbPnjonlrIwNCivpmbPnjonnkpgNCivpmbPnjonppqgNCivpmbPnlJ/mnb4NCivpmbPnn7PogrINCivpmbPnq4vlh6ENCivpmbPnq4voqIANCivpmbPnq4vmrKMNCivpmbPnq4vlgKsNCivpmbPnq4vlgYkNCivpmbPnq4vnv44NCivpmbPnq4vntq0NCivpmbPnq4vnv7ANCivpmbPkuqblh6ENCivpmbPkvIrlgKsNCivpmbPku7Llv5cNCivpmbPku7Los6INCivpmbPlhYnnlKsNCivpmbPlhYnoj68NCivpmbPlhYblpZUNCivpmbPlkInliKkNCivpmbPlkJHmpq4NCivpmbPlnKjmmI4NCivpmbPlpoLoiqwNCivpmbPlpoLomIsNCivpmbPlrofmnbANCivpmbPlrofotoUNCivpmbPlronkvZENCivpmbPlronmqLgNCivpmbPml6wNCivpmbPmnInlv5cNCivpmbPmsZ/nq4sNCivpmbPnmb7lgpENCivpmbPnvr3nj4oNCivpmbPoh7Plh7ENCivpmbPkuqjmiJANCivpmbPkvZHku7sNCivpmbPkvZHluq0NCivpmbPkvLjnlLANCivpmbPkvK/mnbANCivpmbPkvK/okrwNCivpmbPlhYvlrocNCivpmbPlhYvpipgNCivpmbPlkJvlpoMNCivpmbPlkJvoiKoNCivpmbPlkJvmpq4NCivpmbPlkJvlhJINCivpmbPlnYfnoqkNCivpmbPlppnmpagNCivpmbPlpo3kvLYNCivpmbPlpo3np4ANCivpmbPlpqTolZkNCivpmbPlrZ3pipMNCivpmbPlro/ku4ENCivpmbPlro/lrokNCivpmbPlro/mmIwNCivpmbPlro/ms6INCivpmbPlro/nvo4NCivpmbPlro/lvawNCivpmbPlro/pmoYNCivpmbPlro/pgZQNCivpmbPlro/pipgNCivpmbPlro/os6INCivpmbPlro/nhZINCivpmbPlu7fkv4oNCivpmbPlv5flsbENCivpmbPlv5flubMNCivpmbPlv5fku7INCivpmbPlv5flrokNCivpmbPlv5flro8NCivpmbPlv5fmspsNCivpmbPlv5flsrMNCivpmbPlv5fmgKENCivpmbPlv5fmmI4NCivpmbPlv5fmmIcNCivpmbPlv5fmrKMNCivpmbPlv5flvaUNCivpmbPlv5fmtakNCivpmbPlv5flgYkNCivpmbPlv5flvLcNCivpmbPlv5fnpaUNCivpmbPlv5fnv5QNCivpmbPlv5fpm4QNCivpmbPlv5fmupANCivpmbPlv5fpgZQNCivpmbPlv5fmpq4NCivpmbPlv5fntq0NCivpmbPlv5fosaoNCivpmbPlv5fosaoNCivpmbPlv5fosaoNCivpmbPlv5fpgaANCivpmbPlv5fpipgNCivpmbPlv5flr6wNCivpmbPlv5fnqY4NCivpmbPlv5fptLsNCivpmbPlv5fmlowNCivpmbPmlLjlqbcNCivpmbPmnZHpvo0NCivpmbPmspvlkJ8NCivpmbPmsbbmtKUNCivpmbPnlLgNCivpmbPnp4DlkJsNCivpmbPnp4Doip0NCivpmbPnp4DnjrINCivpmbPnp4DlqJ8NCivpmbPnp4DmlY8NCivpmbPnp4Dmg6ANCivpmbPnp4Dpm4UNCivpmbPnp4DpiLQNCivpmbPnp4DmhacNCivpmbPnp4DomK0NCivpmbPogrLmraMNCivpmbPogrLkvZANCivpmbPogrLlpYcNCivpmbPogrLnq6ANCivpmbPogrLlu4kNCivpmbPogrLoqakNCivpmbPogrLnkakNCivpmbPogrLmlowNCivpmbPoia/mlL8NCivpmbPopovnp4sNCivpmbPovrDmj5oNCivpmbPphYnojLkNCivpmbPkup7piLQNCivpmbPkvp3ovrANCivpmbPkvp3nv5QNCivpmbPkvbMNCivpmbPkvbPmsZ0NCivpmbPkvbPkvLYNCivpmbPkvbPlkJ8NCivpmbPkvbPlro8NCivpmbPkvbPlpq4NCivpmbPkvbPnjqUNCivpmbPkvbPnm4gNCivpmbPkvbPnnJ8NCivpmbPkvbPmg6ANCivpmbPkvbPnkKoNCivpmbPkvbPnkKYNCivpmbPkvbPpm68NCivpmbPkvbPnvqQNCivpmbPkvbPps7MNCivpmbPkvbPmhacNCivpmbPkvbPnkpgNCivpmbPkvbPpp78NCivpmbPkvbPmgJwNCivpmbPkvoPlqbcNCivpmbPkvanlkJsNCivpmbPkvanlkJsNCivpmbPkvankvakNCivpmbPkvanoirgNCivpmbPkvannnJ8NCivpmbPkvannkLMNCivpmbPkvannkZwNCivpmbPkvannkakNCivpmbPkvpHlqKUNCivpmbPlhbbpiJ4NCivpmbPljZTmmIwNCivpmbPlkozmiJANCivpmbPlnaTkvZANCivpmbPlnaTlgpENCivpmbPlnaTpjb4NCivpmbPlp5Tmib8NCivpmbPlrZ/kvLYNCivpmbPlrZ/oia8NCivpmbPlrZ/lqIENCivpmbPlrZ/lgYkNCivpmbPlrZ/nkKoNCivpmbPlrZ/piLQNCivpmbPlrZ/ovJ0NCivpmbPlraPkvZENCivpmbPlrpfku4ENCivpmbPlrpflv5cNCivpmbPlrpfnm4gNCivpmbPlrpfpm4QNCivpmbPlrpfml5cNCivpmbPlrpfnt68NCivpmbPlrpfpvo0NCivpmbPlrproh7MNCivpmbPlrpzlubMNCivpmbPlrpzlkJsNCivpmbPlrpznp4ANCivpmbPlrpzlp78NCivpmbPlrpzln7kNCivpmbPlrpznvqQNCivpmbPlrpznkosNCivpmbPlrpzml7sNCivpmbPlrpvlp40NCivpmbPlsJrmlocNCivpmbPlsJrnkZwNCivpmbPlsYXku4ENCivpmbPlsrPlkJsNCivpmbPlubjotrMNCivpmbPlubjmu78NCivpmbPlu7bpgZMNCivpmbPlv6Doia8NCivpmbPlv6DnvqkNCivpmbPmgKENCivpmbPmgKHmlocNCivpmbPmgKHljYkNCivpmbPmgKHlhrANCivpmbPmgKHlpoINCivpmbPmgKHlpoINCivpmbPmgKHlpoINCivpmbPmgKHlpoINCivpmbPmgKHlpoINCivpmbPmgKHlpoINCivpmbPmgKHlrokNCivpmbPmgKHnq7kNCivpmbPmgKHkvLYNCivpmbPmgKHkvLYNCivpmbPmgKHkvLYNCivpmbPmgKHliKkNCivpmbPmgKHlkJsNCivpmbPmgKHlkJsNCivpmbPmgKHlkJsNCivpmbPmgKHlkJsNCivpmbPmgKHlkJsNCivpmbPmgKHlkJsNCivpmbPmgKHlkJsNCivpmbPmgKHlkJsNCivpmbPmgKHlkJsNCivpmbPmgKHlu7cNCivpmbPmgKHnp4ANCivpmbPmgKHmmIwNCivpmbPmgKHoirMNCivpmbPmgKHnj4oNCivpmbPmgKHpppkNCivpmbPmgKHnnJ8NCivpmbPmgKHlqbcNCivpmbPmgKHlqbcNCivpmbPmgKHnkLQNCivpmbPmgKHoj4ENCivpmbPmgKHpm68NCivpmbPmgKHoqqANCivpmbPmgKHnoqkNCivpmbPmgKHok4kNCivpmbPmgKHmvZQNCivpmbPmgKHlhJINCivpmbPmgKHnqY4NCivpmbPmgKHpnZwNCivpmbPmgKHpnZwNCivpmbPmgKHomIsNCivpmbPmgKHok4ENCivpmbPmgKHlj6ENCivpmbPmi5voqqANCivpmbPmmJPmnZENCivpmbPmmIzmlocNCivpmbPmmIzmuK8NCivpmbPmmIbmnbANCivpmbPmmILkvZENCivpmbPmmI7mraMNCivpmbPmmI7kvLgNCivpmbPmmI7lro8NCivpmbPmmI7mnZANCivpmbPmmI7mmIwNCivpmbPmmI7mlL8NCivpmbPmmI7nj6ANCivpmbPmmI7ojokNCivpmbPmmI7lqbcNCivpmbPmmI7mpbcNCivpmbPmmI7oo5UNCivpmbPmmI7lvrcNCivpmbPmmI7os6INCivpmbPmmI7osZANCivpmbPmmJXmlrkNCivpmbPmmIfmr4UNCivpmbPmnbHoj68NCivpmbPmnbDnm5sNCivpmbPmnb7okI0NCivpmbPmrKPlpoINCivpmbPmrKPlro8NCivpmbPmrKPlrpwNCivpmbPmrKPmgKENCivpmbPmrKPmgKENCivpmbPmrKPms7ANCivpmbPmrKPnkZwNCivpmbPmrKPomK0NCivpmbPms7Pku7sNCivpmbPms5XlhYkNCivpmbPms5Pnv5QNCivpmbPms5PpnJYNCivpmbPmsrvlrocNCivpmbPms4rovrANCivpmbPnjp/lhYkNCivpmbPnjp/kvLYNCivpmbPnjp/nkZsNCivpmbPnjqvlpoINCivpmbPnjqvlkJsNCivpmbPnjqvoirMNCivpmbPnjqvoh7sNCivpmbPnjqXnh5UNCivpmbPnp4nmt7MNCivpmbPnp4nmlowNCivpmbPoirPnj40NCivpmbPoirPokLENCivpmbPoip3lgKkNCivpmbPoip3nr4QNCivpmbPoiq/mgKENCivpmbPpgrXpkasNCivpmbPph5Hoia8NCivpmbPph5HloKQNCivpmbPph5HogbINCivpmbPplbfmhbYNCivpmbPpm6jmlrANCivpmbPpnZLnkZwNCivpmbPkuq3lkJsNCivpmbPkuq7kuJ4NCivpmbPkuq7lkJsNCivpmbPkuq7nqY4NCivpmbPkv6HkvIoNCivpmbPkv6HlrocNCivpmbPkv6Hml60NCivpmbPkv6HlkJ8NCivpmbPkv6Hlro8NCivpmbPkv6Hlro8NCivpmbPkv6HnlKsNCivpmbPkv6Hlv6ANCivpmbPkv6HmmboNCivpmbPkv6Hoo5UNCivpmbPkv6HosaoNCivpmbPkv6HlrbgNCivpmbPkv53lhYMNCivpmbPkv53lvbANCivpmbPkv4rku4ENCivpmbPkv4rmlocNCivpmbPkv4rku7ANCivpmbPkv4rlkIkNCivpmbPkv4rlpoINCivpmbPkv4rlrocNCivpmbPkv4rlrokNCivpmbPkv4rmiJANCivpmbPkv4rml60NCivpmbPkv4rkvZENCivpmbPkv4rlkYgNCivpmbPkv4rlro8NCivpmbPkv4rlro8NCivpmbPkv4rlro8NCivpmbPkv4rlro8NCivpmbPkv4rlu7cNCivpmbPkv4rnlLcNCivpmbPkv4rnlLcNCivpmbPkv4roia8NCivpmbPkv4rlkowNCivpmbPkv4rmnbANCivpmbPkv4rpg44NCivpmbPkv4rlvawNCivpmbPkv4rlgpENCivpmbPkv4rlh7ENCivpmbPkv4roj68NCivpmbPkv4rmupANCivpmbPkv4rpgZQNCivpmbPkv4rmppUNCivpmbPkv4rntq0NCivpmbPkv4rosaoNCivpmbPkv4rpipgNCivpmbPkv4rpipgNCivpmbPkv4rnkosNCivpmbPkv4rmqLoNCivpmbPkv4roq7oNCivpmbPkv4rpvo0NCivpmbPkv4rnkYsNCivpmbPkv5DlrokNCivpmbPkv5Dnp4ANCivpmbPkv5DmvZQNCivpmbPkv57ku7INCivpmbPkv57lppkNCivpmbPkv57pnZwNCivpmbPlhqDlpKsNCivpmbPlhqDku7ANCivpmbPlhqDlpoINCivpmbPlhqDlrocNCivpmbPlhqDlt54NCivpmbPlhqDoiJ8NCivpmbPlhqDlkKsNCivpmbPlhqDlro8NCivpmbPlhqDlu7cNCivpmbPlhqDnlLcNCivpmbPlhqDlgpENCivpmbPlhqDll5oNCivpmbPlhqDntq0NCivpmbPlhqDpipgNCivpmbPlhqDmqLoNCivpmbPlhqDlpo8NCivpmbPliYfmrL0NCivpmbPli4flnKgNCivpmbPli4flv5cNCivpmbPli4fpgZQNCivpmbPli4HlkL4NCivpmbPljZflsYUNCivpmbPljprpipgNCivpmbPlk4HlhYgNCivpmbPlk4Hnp4ANCivpmbPlk4HovJ0NCivpmbPlpZXkuK0NCivpmbPlpZXku7sNCivpmbPlpZXluIYNCivpmbPlpZXliKkNCivpmbPlpZXlu7cNCivpmbPlpZXnm4gNCivpmbPlpZXpgZQNCivpmbPlpZXnqY4NCivpmbPlpZXok4ENCivpmbPlpY7mr48NCivpmbPlp7/mlocNCivpmbPlp7/nmb4NCivpmbPlp7/liKkNCivpmbPlp7/lkJ8NCivpmbPlp7/lspANCivpmbPlp7/nj4oNCivpmbPlp7/ok4kNCivpmbPlp7/nqY4NCivpmbPlp7/nkocNCivpmbPlqIHkuJ4NCivpmbPlqIHlhagNCivpmbPlqIHlrocNCivpmbPlqIHmiJANCivpmbPlqIHliqkNCivpmbPlqIHlu7cNCivpmbPlqIHlv5cNCivpmbPlqIHlv5cNCivpmbPlqIHpgpENCivpmbPlqIHnv5QNCivpmbPlqIHosaoNCivpmbPlqIHlhJINCivpmbPlqIHpnJYNCivpmbPlrqPku7sNCivpmbPlrqPmr48NCivpmbPlrqXku7sNCivpmbPlrqXoq60NCivpmbPluKXlkI0NCivpmbPlu7rkuK0NCivpmbPlu7rlhYMNCivpmbPlu7rmlocNCivpmbPlu7rku7sNCivpmbPlu7rlkIwNCivpmbPlu7rlrocNCivpmbPlu7rlrokNCivpmbPlu7rlt54NCivpmbPlu7rmiJANCivpmbPlu7rml60NCivpmbPlu7rooYwNCivpmbPlu7rlkYgNCivpmbPlu7rlro8NCivpmbPlu7rlro8NCivpmbPlu7rlro8NCivpmbPlu7rlro8NCivpmbPlu7rlu7cNCivpmbPlu7rlv5cNCivpmbPlu7rlv5cNCivpmbPlu7rnlKsNCivpmbPlu7rnlLcNCivpmbPlu7roia8NCivpmbPlu7rpgqYNCivpmbPlu7rmmI4NCivpmbPlu7rlnIsNCivpmbPlu7rmj5oNCivpmbPlu7roj68NCivpmbPlu7roqZUNCivpmbPlu7rmupANCivpmbPlu7rpgZQNCivpmbPlu7rmpq4NCivpmbPlu7rok4kNCivpmbPlu7rovJQNCivpmbPlu7rpipgNCivpmbPlu7rpipgNCivpmbPlu7rnkosNCivpmbPlu7rli7MNCivpmbPlu7rmqLoNCivpmbPlu7rpvo0NCivpmbPlu7rng5wNCivpmbPlvaXlpKsNCivpmbPlvaXmlocNCivpmbPlvaXku7sNCivpmbPlvaXlkIgNCivpmbPlvaXlrocNCivpmbPlvaXluIYNCivpmbPlvaXnq7kNCivpmbPlvaXkvLgNCivpmbPlvaXlkJsNCivpmbPlvaXlo68NCivpmbPlvaXlro8NCivpmbPlvaXlro8NCivpmbPlvaXlu7cNCivpmbPlvaXnlKsNCivpmbPlvaXoia8NCivpmbPlvaXmmIwNCivpmbPlvaXlh7ENCivpmbPlvaXmhLcNCivpmbPlvaXntrgNCivpmbPlvaXosaoNCivpmbPlvaXmhbANCivpmbPlvaXli7MNCivpmbPlvaXpnJYNCivpmbPlvovlhYMNCivpmbPmgJ3lhYgNCivpmbPmgJ3lubQNCivpmbPmgJ3lpqQNCivpmbPmgJ3kuq4NCivpmbPmgJ3mupANCivpmbPmgJ3ok4kNCivpmbPmgJ3mqLgNCivpmbPmgJ3nqY4NCivpmbPmgJ3nv7ANCivpmbPmgJ3nkocNCivpmbPmlL/mlocNCivpmbPmlL/lro8NCivpmbPmlL/mmJUNCivpmbPmlL/loK8NCivpmbPmlL/oo5UNCivpmbPmlL/mr4UNCivpmbPmlL/orJkNCivpmbPmmKXlpoMNCivpmbPmmKXmmI4NCivpmbPmmKXnh5UNCivpmbPmmK3mlocNCivpmbPmmK3lrocNCivpmbPmmK3kvLYNCivpmbPmmK3lv5cNCivpmbPmmK3lgYkNCivpmbPmmK3mpq4NCivpmbPmmK3pipgNCivpmbPmmK3nkYsNCivpmbPmmKDml60NCivpmbPmmKDlv5cNCivpmbPmmKDlhJINCivpmbPmmJ/lrocNCivpmbPmmJ/nhrkNCivpmbPmmLHkuJ4NCivpmbPmmLHlhagNCivpmbPmmLHmsZ0NCivpmbPmmLHlro8NCivpmbPmmLHnlKsNCivpmbPmmLHpgZQNCivpmbPmmLHmqLoNCivpmbPmn5TlrokNCivpmbPmn4TmlrkNCivpmbPmn4/lhYMNCivpmbPmn4/ku70NCivpmbPmn4/lrocNCivpmbPmn4/lt54NCivpmbPmn4/lubQNCivpmbPmn4/oiJ8NCivpmbPmn4/lkKsNCivpmbPmn4/lro8NCivpmbPmn4/lv5cNCivpmbPmn4/msoUNCivpmbPmn4/lsrMNCivpmbPmn4/ls7ANCivpmbPmn4/lh7ENCivpmbPmn4/nkZ4NCivpmbPmn4/lr6cNCivpmbPmn4/ok4kNCivpmbPmn4/nkosNCivpmbPmn4/nv7ANCivpmbPmn4/ovK8NCivpmbPmn4/nkYsNCivpmbPmtLLmmJ8NCivpmbPngqvlkJsNCivpmbPngrPku7INCivpmbPngrPovrANCivpmbPngrPpjJUNCivpmbPngq/pjKYNCivpmbPnj4rnj4oNCivpmbPnj43nkakNCivpmbPnmoboiIgNCivpmbPnmofml60NCivpmbPnmofpvo0NCivpmbPnm4jlhagNCivpmbPnm4jlpoINCivpmbPnm4jlpoINCivpmbPnm4jlrokNCivpmbPnm4jnq7kNCivpmbPnm4jlkJsNCivpmbPnm4jlrZwNCivpmbPnm4jmnYkNCivpmbPnm4josp0NCivpmbPnm4jlqbcNCivpmbPnm4jntroNCivpmbPnm4jnkosNCivpmbPnm4joq60NCivpmbPnm4jnkocNCivpmbPnm7jpgZQNCivpmbPnpYjos5MNCivpmbPnprnpvYoNCivpmbPnp5HpoIYNCivpmbPnp4vmlrkNCivpmbPnp4vluIYNCivpmbPnp4vnp4ANCivpmbPnp4vntJQNCivpmbPnp4vokI0NCivpmbPnp4vpm68NCivpmbPnp4vnh5UNCivpmbPntIXnjokNCivpmbPntIDotrMNCivpmbPnvo7kupENCivpmbPnvo7njokNCivpmbPnvo7lpoINCivpmbPnvo7lubQNCivpmbPnvo7kvLYNCivpmbPnvo7lkJsNCivpmbPnvo7lkJ8NCivpmbPnvo7lu7cNCivpmbPnvo7np4ANCivpmbPnvo7oip0NCivpmbPnvo7njrINCivpmbPnvo7lqJ8NCivpmbPnvo7ntJQNCivpmbPnvo7llqwNCivpmbPnvo7mg6ANCivpmbPnvo7nkLQNCivpmbPnvo7oj7ENCivpmbPnvo7piLQNCivpmbPnvo7mhacNCivpmbPnvo7lhJINCivpmbPnvo7pnZwNCivpmbPnvo7piLoNCivpmbPnvr/osLcNCivpmbPoh7Tku7ANCivpmbPoh7Tlro8NCivpmbPoh7Tnpo8NCivpmbPoh7Tlj6ENCivpmbPoi6Xmm6YNCivpmbPojILpm4QNCivpmbPoi7HmnbANCivpmbPoi7HmjK8NCivpmbPoi7HlgpENCivpmbPoi7Hok5MNCivpmbPoi7HptLsNCivpmbPoi5PlqJ8NCivpmbPombnmm7INCivpmbPombnlkJ8NCivpmbPombnmvZQNCivpmbPooY3oh7MNCivpmbPooY3pnJYNCivpmbPosp7ml60NCivpmbPosp7lpqQNCivpmbPosp7ok4kNCivpmbPosp7nkYsNCivpmbPpg4Hku4ENCivpmbPpg4HmlocNCivpmbPpg4HoiqwNCivpmbPpg4HlgpENCivpmbPpg4Hoj4ENCivpmbPpg4HmpZMNCivpmbPph43lhYkNCivpmbPph43lu7cNCivpmbPph43lhJINCivpmbPpn4vlnKgNCivpmbPpn4vkvLYNCivpmbPpn4vlu7cNCivpmbPpn4vmib8NCivpmbPpn4vosaoNCivpmbPpn7MNCivpmbPpo5voia8NCivpmbPpppnlpoINCivpmbPpppnlkJ8NCivpmbPpppnlqbcNCivpmbPlgI3nlIQNCivpmbPlgJbnv6ANCivpmbPlh4znoa8NCivpmbPlk7LmsJENCivpmbPlk7LlvLcNCivpmbPlk7Los6INCivpmbPlrrbmraMNCivpmbPlrrblpYcNCivpmbPlrrbnj40NCivpmbPlrrbnpaUNCivpmbPlrrbmuZYNCivpmbPlrrbpm68NCivpmbPlrrbmvKINCivpmbPlrrblhIANCivpmbPlrrbmhacNCivpmbPlrrboiIgNCivpmbPlrrbnkK4NCivpmbPlrrnokLENCivpmbPls7Dlt54NCivpmbPmgZUNCivpmbPmganmpq4NCivpmbPmjK/mnbENCivpmbPmjK/muacNCivpmbPmjK/pipgNCivpmbPmmYLnm58NCivpmbPmm7jlhYkNCivpmbPmm7jmr5MNCivpmbPmoYLnjokNCivpmbPmoYLmhacNCivpmbPms7DlhagNCivpmbPms7DkvLYNCivpmbPms7Dls7ANCivpmbPms7DpipgNCivpmbPmtZrmrL0NCivpmbPmtanojLkNCivpmbPnj67kupENCivpmbPnj67mgKENCivpmbPnj67nj64NCivpmbPnj67nkZwNCivpmbPnj67nkYsNCivpmbPnm4roo5UNCivpmbPnpZDmgowNCivpmbPntKENCivpmbPntKDnj40NCivpmbPntKDlqKUNCivpmbPntKDnkZwNCivpmbPntJTmgKENCivpmbPogJjlr6wNCivpmbPojYPosaoNCivpmbPpg6HmgKENCivpmbPkub7mt6YNCivpmbPlgYnmsJENCivpmbPlgYnkv6ENCivpmbPlgYnojokNCivpmbPlgYnoo5UNCivpmbPlgaXkuIoNCivpmbPlgaXlsIENCivpmbPlgaXpnJYNCivpmbPlnIvlhYMNCivpmbPlnIvmmI4NCivpmbPlnIvls7ANCivpmbPlnIvmooENCivpmbPlnIvmo4sNCivpmbPlnIvmpq4NCivpmbPlnIvpi5INCivpmbPloIXmsJENCivpmbPln7nogrINCivpmbPln7nnq68NCivpmbPlqYnogrINCivpmbPlqYnljb8NCivpmbPlqYnoj4ENCivpmbPlqYnmvZQNCivpmbPltIfljp8NCivpmbPltJHpipgNCivpmbPlvanntJQNCivpmbPmjbcNCivpmbPllZ/lrZgNCivpmbPllZ/muIUNCivpmbPllZ/pipgNCivpmbPmlY/mmJ8NCivpmbPmlY/mlrANCivpmbPmopPnkYsNCivpmbPmooXppqgNCivpmbPmuIXlpYcNCivpmbPmuIXmupANCivpmbPmt5ENCivpmbPmt5HlkJsNCivpmbPmt5HmgKENCivpmbPmt5HoiqwNCivpmbPmt5HoiqwNCivpmbPmt5HnjrINCivpmbPmt5Hnp4sNCivpmbPmt5Hosp4NCivpmbPmt5HlqJ8NCivpmbPmt5HlqJ8NCivpmbPmt5HnnJ8NCivpmbPmt5HnvpoNCivpmbPmt5Hmg6ANCivpmbPmt5HokI0NCivpmbPmt5Hpm4UNCivpmbPmt5HpiLQNCivpmbPmt5HmhacNCivpmbPmt5HpnZwNCivpmbPmt7Xnp4sNCivpmbPnjJvlrpcNCivpmbPnpaXpiJ4NCivpmbPntLnluq0NCivpmbPojorlgYkNCivpmbPojonlqbcNCivpmbPoqLHmsJENCivpmbPpm6roiqwNCivpmbPpm6roj68NCivpmbPlgpHoo5UNCivpmbPlh7HnjrINCivpmbPlh7HpiL8NCivpmbPli53lpoINCivpmbPli53lmIkNCivpmbPljZrlurcNCivpmbPllqzlrocNCivpmbPlqbfnjp8NCivpmbPlr4zmsJENCivpmbPlr4zmpq4NCivpmbPmg6DmlocNCivpmbPmg6DlkJsNCivpmbPmg6DoiqwNCivpmbPmg6DnjrINCivpmbPmg6Dnvo4NCivpmbPmg6DlqJ8NCivpmbPmg6DlqbcNCivpmbPmg6DokI0NCivpmbPmg6Dpm68NCivpmbPmg6Dpm68NCivpmbPmg6DpvaENCivpmbPmj5rlk7INCivpmbPmmbbmmbYNCivpmbPmma/ms7ANCivpmbPmma/pkasNCivpmbPmmbrkuq4NCivpmbPmmbrlgYkNCivpmbPmmbrpmb0NCivpmbPmmbrlr6wNCivpmbPmnJ3mlocNCivpmbPmnJ3nhpkNCivpmbPmo4vnj40NCivpmbPmuZjkuo4NCivpmbPmuZjnkLQNCivpmbPmuJ3mlocNCivpmbPnkKrpm68NCivpmbPnkKbnkLMNCivpmbPnmbvpmoYNCivpmbPnrZHnraANCivpmbPogoXmrIoNCivpmbPoiJLmhpsNCivpmbPoj4ENCivpmbPoj6/lgYkNCivpmbPoqaDkuq4NCivpmbPos4DpiLoNCivpmbPovpzkuq4NCivpmbPpgLjlubMNCivpmbPpgLjmmI4NCivpmbPpgLjnm4gNCivpmbPpgLjoj4ENCivpmbPpgLjntq0NCivpmbPpgLjptLsNCivpmbPpgLLlv5cNCivpmbPpgLLpmoYNCivpmbPpiJ7lsY8NCivpmbPplpTpmoYNCivpmbPpmobmlowNCivpmbPpm4XlkJsNCivpmbPpm4XnjqsNCivpmbPpm4XoiqwNCivpmbPpm4XnjrINCivpmbPpm4XnjrINCivpmbPpm4Xoi5MNCivpmbPpm4Xnj64NCivpmbPpm4Xpm6oNCivpmbPpm4XlqbcNCivpmbPpm4Xmg6ANCivpmbPpm4Xmg6ANCivpmbPpm4XnkKoNCivpmbPpm4XnkLQNCivpmbPpm4Xoj4ENCivpmbPpm4Xpm68NCivpmbPpm4Xpm68NCivpmbPpm4XpiLQNCivpmbPpm4XmhacNCivpmbPpm4Xpn7sNCivpmbPpm68NCivpmbPpm6/mg6ANCivpmbPpm7LmqLgNCivpmbPpoIbnmbwNCivpmbPlgrPoiIgNCivpmbPmhI/mlocNCivpmbPmhI/pm68NCivpmbPmhYjpm4UNCivpmbPmhJvnlIQNCivpmbPmlazmlocNCivpmbPmlazlgpENCivpmbPmlrDng4gNCivpmbPmpa3ntbENCivpmbPmpobmtrUNCivpmbPmr5Poia8NCivpmbPmr5PojLkNCivpmbPmr5PpiJ4NCivpmbPmupDmraMNCivpmbPmuqvokI0NCivpmbPnhafmhYgNCivpmbPnhabmt5ENCivpmbPnhaXmo64NCivpmbPnkZ7liKkNCivpmbPnkZ7mmIwNCivpmbPnkZ7oiqwNCivpmbPnkZ7ph6cNCivpmbPnkZ7nkZwNCivpmbPnkZ7pnJYNCivpmbPnkZ7pup8NCivpmbPnkZzoqakNCivpmbPnpbrlr4wNCivpmbPntpPlnIsNCivpmbPnvqnlv6ANCivpmbPnvqnnt68NCivpmbPogZblsLkNCivpmbPogZblrpwNCivpmbPogZblgpENCivpmbPogZbmhrINCivpmbPokLHolJMNCivpmbPonILngZ0NCivpmbPoo5XljYcNCivpmbPoo5Xlu7cNCivpmbPoo5XmmboNCivpmbPoqanlubMNCivpmbPoqanms4kNCivpmbPoqanlqbcNCivpmbPoqanoqakNCivpmbPoqanomIsNCivpmbPpgYvlvrUNCivpmbPpgZToo5UNCivpmbPpm40NCivpmbPpnZbmgKENCivpmbPpvI7ku4ENCivpmbPlmInku4ENCivpmbPlmInkuqgNCivpmbPlmInlro8NCivpmbPlmInmgKENCivpmbPlmInnjrINCivpmbPlmInls7ANCivpmbPlmInojLUNCivpmbPlmInmt6YNCivpmbPlmInmg6ANCivpmbPlmInpm4ENCivpmbPlmInli6QNCivpmbPlmInlvrcNCivpmbPlmInnkakNCivpmbPlmInnh58NCivpmbPlmInnkK4NCivpmbPml5fmmIwNCivpmbPmpq7mnbANCivpmbPmpq7pgLINCivpmbPmpq7nh78NCivpmbPmvKLnj40NCivpmbPmvKLolJoNCivpmbPnkaTnnJ8NCivpmbPnoqfntIUNCivpmbPnoqfpm7INCivpmbPnoqnlgYkNCivpmbPnpo/mnpcNCivpmbPntrroj68NCivpmbPntq3pgqYNCivpmbPntq3lk7INCivpmbPntq3lhIANCivpmbPnv6DlqbcNCivpmbPogofptLsNCivpmbPok5PnjrINCivpmbPoqoznnb8NCivpmbPpipgNCivpmbPpipjms4kNCivpmbPpipjlvLcNCivpmbPpipjpm4QNCivpmbPpipjogIANCivpmbPps7PnjrINCivpmbPps7Pps7QNCivpmbPlhIANCivpmbPlhIDnj4oNCivpmbPlhIDmvZQNCivpmbPlr6zlpoINCivpmbPlu6Ppup8NCivpmbPlvrflkowNCivpmbPlvrfloIINCivpmbPlvrfpgaANCivpmbPlvrXlrpcNCivpmbPmhbbmmJ8NCivpmbPmhbboj68NCivpmbPmhbbntq0NCivpmbPmhbbnv7ANCivpmbPmhbbptLsNCivpmbPmhafnjokNCivpmbPmhaflpoINCivpmbPmhaflkJsNCivpmbPmhafoip0NCivpmbPmhafnj4oNCivpmbPmhafnjrINCivpmbPmhafnvo4NCivpmbPmhafljb8NCivpmbPmhafnnJ8NCivpmbPmhafntJQNCivpmbPmhafmlY8NCivpmbPmhafokI0NCivpmbPmhafpm68NCivpmbPmhafok4kNCivpmbPmhafmqLUNCivpmbPmhafomK0NCivpmbPmhZXlhJINCivpmbPmr4XmraMNCivpmbPmr4XptLsNCivpmbPmvZTpn7MNCivpmbPnkanoirMNCivpmbPnkanok4kNCivpmbPnkannkYQNCivpmbPnt6/mgakNCivpmbPolJrpnZINCivpmbPoqrzoirMNCivpmbPos6LlhbgNCivpmbPovJ3lkIkNCivpmbPpnIflrocNCivpmbPpu47moYINCivpmbPlrbjmmI4NCivpmbPmhrLku4ENCivpmbPmhrLlhIANCivpmbPmhrbpm68NCivpmbPmm4nlp40NCivpmbPmm4npnZINCivpmbPmm4npoqgNCivpmbPmm4nltZANCivpmbPmm4noj4ENCivpmbPmm4nnraANCivpmbPmm4nmhacNCivpmbPmm4npupcNCivpmbPmqLnlubQNCivpmbPmvqTnj4oNCivpmbPnh5XkvLYNCivpmbPnh5Xoj4ENCivpmbPnh5XmgJwNCivpmbPnqY7lkJsNCivpmbPnqY7npaUNCivpmbPnqY7mhacNCivpmbPnqYbok4kNCivpmbPnv7DnkosNCivpmbPolZnoirMNCivpmbPolZnoi7kNCivpmbPpjKvoj68NCivpmbPpjKbnp4ANCivpmbPpjKbloIINCivpmbPpjKbmhacNCivpmbPpjKbptLsNCivpmbPpnZzlpoINCivpmbPpnZzlrpwNCivpmbPpnZzmgKENCivpmbPpnZzmgKENCivpmbPpnZzmgKENCivpmbPpnZzoirMNCivpmbPpnZzmt5ENCivpmbPpnZzlr6cNCivpmbPpnZzlhIANCivpmbPpnZzmhacNCivpmbPpnZzos6INCivpmbPpvo3nlJ8NCivpmbPpvo3lr6wNCivpmbPmm5nmnbENCivpmbPogbDku4ENCivpmbPoh4bku4ENCivpmbPolocNCivpmbPoloflpoINCivpmbPorJnmr4UNCivpmbPpp7/mj5oNCivpmbPptLvmlocNCivpmbPptLvlv5cNCivpmbPptLvmuIUNCivpmbPptLvoo5UNCivpmbPptLvpnJYNCivpmbPnkr/lpoINCivpmbPosZDmjK8NCivpmbPmh7flk7INCivpmbPnkr3niK0NCivpmbPnk4rmt4cNCivpmbPnk4rmqLoNCivpmbPol53lv4MNCivpmbPotIrkuK0NCivpmbPpj5fku7sNCivpmbPpn7vlpJkNCivpmbPpn7vlpoINCivpmbPpn7vlpoINCivpmbPpn7vlpoINCivpmbPpn7vnq7kNCivpmbPpn7vlqbcNCivpmbPpn7vpnZwNCivpmbPptaznpr4NCivpmbPpupLlhYMNCivpmbPpupLlhagNCivpmbPpupfmlocNCivpmbPpupflpoINCivpmbPpupflrocNCivpmbPpupfogIwNCivpmbPpupfoiqwNCivpmbPpupfljb8NCivpmbPpupfnj6ANCivpmbPpupflqbcNCivpmbPpupfokI0NCivpmbPpupfpm68NCivpmbPpupfok64NCivpmbPlr7bnjokNCivpmbPlr7bok64NCivpmbPogIDku4ENCivpmbPogIDnrJkNCivpmbPppqjmgKENCivpmbPlhLfmlocNCivpmbPmq7vlrrkNCivpmbPorb3pvaENCivpmbPptrTkuK0NCivpmbPmh7/mmKANCivpmbPoibfpiLQNCivpmbPoiornp4ANCivpmbPmgJzlkJsNCivpmbPml7vmlL8NCivpmbPnjqDmupANCivpmbPlp67pnI8NCivpmbPlp7XlpoINCivpmbPlp7XlkJ8NCivpmbPlp7XnkbENCivpmbPmmLbmmLENCivpmbPnj4jnkKYNCivpmbPlvafppqgNCivpmbPnkIflpoINCivpmbPloJwNCivpmbPnkK7plpQNCivpmbPnkKzlqbcNCivpmbPnkKzoj4ENCivpmbPmpLjmtpMNCivpmbPnkYsNCivpmbPnkYvlhbgNCivpmbPnkYvogJgNCivpmbPnkYvmmLYNCivpmbPnrbHoirMNCivpmbPnrbHlqbcNCivpmbPnrbHnraANCivpmbPokKnoirgNCivpmbPpiLrnjqsNCivpmbPpiLrlqbcNCivpmbPpiLrnkr0NCivpmbPpiprojLkNCivpmbPpnIjlrocNCivpmbPolo/pm68NCivpmbPngIXlpoINCivpmbPngIXmt5ENCivpmbPlrL/lm6ANCivpmbPlrL/kvLYNCivpmbPpoZfmlocNCivpmbPpkavpup8NCivpmbjlsI/nh5UNCivpmbjmraPnvqkNCivpmbjlraPlro8NCivpmbjkv6Hpvo0NCivpmbjmtKXoj68NCivpmbjmooXlqbcNCivpmbjpm7Lms7ANCivpmbjps7PnjrINCivpmbjmt6/piLQNCivpmbbogrLlnYcNCivpmbbmg5/okLENCivnq6Dmlofoip0NCivnq6DkvbPpm7INCivnq6DmoLnmupANCivnq6Dnv5QNCivnq6Dnk4rmlrkNCivpuqXkvanpm68NCivpuqXnm6flr7blhagNCivlgoXkuIDpm4QNCivlgoXlrZDmgZINCivlgoXmlofpgLINCivlgoXmraPluIwNCivlgoXlhYnmmboNCivlgoXlro/mlowNCivlgoXkup7lh6ENCivlgoXmgKHoirMNCivlgoXph5Hlro8NCivlgoXlu7rlnIsNCivlgoXmmKDlhYgNCivlgoXnvo7ok4kNCivlgoXnj67mt4cNCivlgoXlnIvmo58NCivlgoXllZ/nmocNCivlgoXmt5Hpm68NCivlgoXmlq/lubMNCivlgoXpm4Xljb8NCivlgoXnhYzpjKYNCivlgoXpiZvmlocNCivlgoXlvrfmlL8NCivlgoXpjazmt7wNCivlgoXnkK4NCivllq7kuqbkv6ANCivllrvoh7PlloQNCivllqzlrpfloK8NCivlr4zlurfnv5QNCivlva3kuIrlkIkNCivlva3lo6vmgZINCivlva3ku4Hlv5cNCivlva3lj4rovrANCivlva3mloflro8NCivlva3mlofmhacNCivlva3ku6Xkv6ENCivlva3mraPoia8NCivlva3njonoj68NCivlva3kvIroiqwNCivlva3lpoLmlY8NCivlva3miJDlgpENCivlva3ml63liJ0NCivlva3lro/lkJsNCivlva3lv5fosaoNCivlva3kvbPlgYkNCivlva3lrpfmhI8NCivlva3mgKHolZkNCivlva3mnIvpm40NCivlva3np4nmraMNCivlva3kv53mrKMNCivlva3kv4rnpo8NCivlva3lhqDnkZsNCivlva3lqIHnv5QNCivlva3lu7rmpq4NCivlva3lvovlh6ENCivlva3mn4/lqIENCivlva3np4vokI0NCivlva3oi6XmhYgNCivlva3pg4Hku4ENCivlva3lk7Lku4ENCivlva3mtanlgKsNCivlva3lgYnlkJsNCivlva3lnIvls7ANCivlva3ltIfkv6ENCivlva3llZ/piJ4NCivlva3mt5Hnj40NCivlva3nm5sNCivlva3pm6rnkKYNCivlva3llpzmtakNCivlva3mmbbogbINCivlva3mu4vokI0NCivlva3oiJLlvaUNCivlva3plovmmI4NCivlva3pm4XntbkNCivlva3mhJvomIsNCivlva3nkZ7oi5MNCivlva3ogZbokI0NCivlva3lmInlkJsNCivlva3mpq7moYINCivlva3pipjmt4cNCivlva3mhaflpoINCivlva3os6LkuIANCivlva3mm4nnkKoNCivlva3pjKbngqsNCivlva3pp7/mtIENCivlva3pupfmhacNCivlva3ppqjmhacNCivlva3nkYvlvaUNCivlva3poI7omIsNCivmma/pm6jnp4sNCivmm77lh6Hlk7INCivmm77kuo7mhYgNCivmm77ljYPosaoNCivmm77lo6vou5INCivmm77lo6vmgZINCivmm77lrZDluq0NCivmm77lsI/njrINCivmm77ku4HkvZENCivmm77lhYPlv5cNCivmm77lrZTpiLoNCivmm77mlocNCivmm77mloflv6ANCivmm77mloflvawNCivmm77mlofmhacNCivmm77mlofpoZcNCivmm77kuJbnhYwNCivmm77ku6TnkZwNCivmm77lubPoqqUNCivmm77mraPogIANCivmm77njonlpoINCivmm77njonoj4ENCivmm77nq4vlvrcNCivmm77ku7Lnm58NCivmm77lkInlro8NCivmm77lpoLlkJsNCivmm77lronnkKoNCivmm77nvr3ltroNCivmm77lkJvosaoNCivmm77lv5fnjoQNCivmm77lv5flgpENCivmm77lv5fpup8NCivmm77np4DmooUNCivmm77ogrLoj4ENCivmm77kvbPnjrINCivmm77kvbPnkbENCivmm77lraPmrYYNCivmm77lsJrlv5cNCivmm77mgKHlqJ8NCivmm77mgKHlmIkNCivmm77mib/lv5cNCivmm77mmI7lvrcNCivmm77ms5PpnJYNCivmm77oip3omK0NCivmm77kv6HlgpENCivmm77kv4rlvaUNCivmm77kv4rmmboNCivmm77kv4rosaoNCivmm77kv4rnkYsNCivmm77lhqDmqLoNCivmm77lk4HlvbANCivmm77lp7/ntroNCivmm77lqIHoq60NCivmm77lu7rlkowNCivmm77lu7rljZoNCivmm77lu7rmpq4NCivmm77lu7rpnJYNCivmm77lvaXplpQNCivmm77lvaXnv7ANCivmm77mgJ3ntq0NCivmm77mlL/osaoNCivmm77mmK3nv5QNCivmm77mmKDpvaENCivmm77mn4/mtrUNCivmm77mn4/oiIgNCivmm77nmofpvo0NCivmm77np4vmlY8NCivmm77nvo7mgKENCivmm77nvo7oj68NCivmm77nvo7pvaENCivmm77oi7Hls7ANCivmm77pg4HmlocNCivmm77pg4HnqY4NCivmm77lrrbmjK8NCivmm77lsZXlhbYNCivmm77mm7jmhacNCivmm77nj67nkLMNCivmm77ntKDpiLQNCivmm77ou5LlvawNCivmm77lgYnnv5QNCivmm77lgaXpgKINCivmm77lnIvlv5cNCivmm77lnIvmm7gNCivmm77lnIvoo5UNCivmm77lnIvpi4YNCivmm77lqYnmg6ANCivmm77lurjlk7INCivmm77llZ/lvLcNCivmm77mooXnjokNCivmm77mt5HoirMNCivmm77mt5HmlY8NCivmm77mt5HokI0NCivmm77mtrXlia8NCivmm77npaXpgZQNCivmm77osqvmmboNCivmm77lh7HmgowNCivmm77ljZrlvaUNCivmm77lr4zpiLoNCivmm77mg6DnjrINCivmm77mg6Dpm68NCivmm77mlpDntIUNCivmm77mmbrlvJgNCivmm77mmbrnpboNCivmm77muZjpm7INCivmm77oiJLlubMNCivmm77oj6/pvaENCivmm77osrTnpo4NCivmm77piJ7pvI4NCivmm77pm4XpnZINCivmm77pm4Xmg6ANCivmm77pm4XpiYkNCivmm77pm7LmspANCivmm77mhI/mlocNCivmm77mhYjmg6ANCivmm77mmonmtLgNCivmm77muqXlhYMNCivmm77nhaXlgpENCivmm77nkZ7mmYMNCivmm77nkZvnkLMNCivmm77nraDlh4oNCivmm77ogZbnhLYNCivmm77oo5Xlh7ENCivmm77oqannv7ANCivmm77pnZblqJ8NCivmm77pvI7lhYMNCivmm77lmInoi7ENCivmm77mpq4NCivmm77noqfok64NCivmm77ntq3nvqQNCivmm77pipjpipwNCivmm77lvrfpvo0NCivmm77mhbbnkYQNCivmm77mhafnnJ8NCivmm77mvoTloIkNCivmm77mhrLlv6ANCivmm77mm4nnkKoNCivmm77olZnoj4ENCivmm77pnZzmgKENCivmm77nuYHpnZINCivmm77ptLvlrrYNCivmm77mh7fos6INCivmm77nk4rmhacNCivmm77pn7vnnJ8NCivmm77pupflqJ8NCivmm77lr7bno4ENCivmm77nubzlop4NCivmm77ogIDos6INCivmm77ppqjlhIANCivmm77pvaHmhacNCivmm77pg4XntZwNCivmm77nkK7lvaUNCivmm77mmpDmuIUNCivmm77nrbHlqbcNCivmm77piLroiqwNCivmm77nno0NCivmuLjlipvooYwNCivmuLjlo6vmvKINCivmuLjlpKfnt68NCivmuLjkuYvlq7sNCivmuLjmloflv5cNCivmuLjmlofogbANCivmuLjkuJbmlowNCivmuLjmnKzlqIENCivmuLjnjonlp78NCivmuLjlhYblkJsNCivmuLjlkJvoi7kNCivmuLjlv5flgYkNCivmuLjmnY7pm4QNCivmuLjkup7kv5ANCivmuLjkvbPmlY8NCivmuLjkvanli7MNCivmuLjlrpfmhrINCivmuLjlrpznvqQNCivmuLjmgKHnpaUNCivmuLjmmIznv7ANCivmuLjmmI7lhIANCivmuLjmrKMNCivmuLjpnZLpnI8NCivmuLjlpZXpnJYNCivmuLjmlL/nkosNCivmuLjnp4vmgKENCivmuLjoi7HlpoINCivmuLjlqJ/lqJ8NCivmuLjlrrbosaoNCivmuLjmganmlL8NCivmuLjnj67nraANCivmuLjpq5jmnbANCivmuLjlqYnpnZINCivmuLjllZ/ovJ0NCivmuLjmt5HlpoINCivmuLjmt5Hmg6ANCivmuLjnpaXmnbANCivmuLjlh7HlqpwNCivmuLjllqzmmboNCivmuLjmg6DnjrINCivmuLjmma/nv5QNCivmuLjmmbrotoUNCivmuLjmnJ3oiJwNCivmuLjnq6Pnm5sNCivmuLjoiJzlgpENCivmuLjpgLLlr4wNCivmuLjpm4XoirMNCivmuLjpm4XlqbcNCivmuLjpm4XnraANCivmuLjnkZ7ok64NCivmuLjoo5XlvrcNCivmuLjmpq7oj68NCivmuLjmhbboirMNCivmuLjovJ3npaUNCivmuLjmm4noirgNCivmuLjpjKvlrpcNCivmuLjpp7/lgYkNCivmuLjpjq7pgqYNCivmuLjnjbvnvqQNCivmuLjml7vmhrINCivmuLjnn57nmocNCivmua/kuIDnj4oNCivmua/ku4romK0NCivmua/njonnkLQNCivmua/lv5flv6ANCivmua/kvbPnv7ANCivmua/lsrPosYoNCivmua/msrvpgqYNCivmua/lrrbosaoNCivmua/lgaXmlocNCivmua/mt7Xlr4wNCivmua/lr4zmo4sNCivmua/oqaDnkZwNCivmua/pm4XmpZMNCivmua/mhbbpjJoNCivmua/ptLvos6INCivnhKbkv6HnpaUNCivnqIvkuYvlr6cNCivnqIvmlofpjb4NCivnqIvnq4vovJ0NCivnqIvlv5fmlocNCivnqIvlsJrliYcNCivnqIvnp4npkasNCivnqIvlpZXmrKMNCivnqIvlu7rnv7ANCivnqIvmn4/nq6ANCivnqIvnp4vomK0NCivnqIvlgYnmlL8NCivnqIvlqYnmrKMNCivnqIvmt5HnjrINCivnqIvmlpDmlocNCivnqIvpm4Xmg6ANCivnqIvoqanlqbcNCivnqIvmvZToj6ENCivnqIvnk4rokLENCivnqIvomIrpnJ4NCivnq6Xlo6voiqwNCivnq6XlvJgNCivnq6XlronkuqgNCivnq6Xkv6HlkowNCivnq6Xnvo7mu78NCivnq6Xmg5/mlrANCivnq6XmuZjoirgNCivnq6XogZblgpENCivnq6Xpn7vlpoINCivnq6XngIXok4kNCivoiJLlqbflqbcNCivoj6/lnIvpi5INCivopoPmgJ3pvYoNCivosrvpqI/okbMNCivos4DljprlubMNCivos4DnkZ7pupcNCivosrfoj4Hoj68NCivovpzkv6Hnpo8NCivovpzpg4Hku4ENCivovpzmg6DnvqQNCivovpzpnZzmgKENCivplpTku7vpgaANCivpmb3mraPlhYkNCivpm7Lmmbrli4cNCivpoIjkuIroi5ENCivppq7lhYHkuK0NCivppq7mlofmlL8NCivppq7msLjngIUNCivppq7kvZHpm4QNCivppq7kvbPnkKYNCivppq7plbfpvo0NCivppq7lu7rnrYwNCivppq7nvo7nj4oNCivppq7mmYnlmIkNCivppq7lvanlqJ8NCivppq7ljZrlgYkNCivppq7nv5TnkZwNCivppq7nkZ7pmb0NCivppq7oqozpgbUNCivppq7nhr7nhZINCivppq7ogIDmlocNCivpu4PkuIANCivpu4PkuIDlgKsNCivpu4PkuZnkuIoNCivpu4PlipvoqIANCivpu4PkuIroirMNCivpu4Plh6Hntq0NCivpu4Pkuo7oiqwNCivpu4Pkuo7nj4oNCivpu4Pkuo7lk7INCivpu4Pkuo7nnJ8NCivpu4Pkuo7npo4NCivpu4PljYPoirMNCivpu4PljYPlh4wNCivpu4PljYPoj68NCivpu4Plo6sNCivpu4Plo6vmrKMNCivpu4Plo6vljp8NCivpu4Plo6vls7ANCivpu4Plo6vph5cNCivpu4Plo6vlmIkNCivpu4Plo6vosaoNCivpu4Plo6vos6INCivpu4PlpKflgKsNCivpu4PlrZDmiY0NCivpu4PlrZDlu7oNCivpu4PlrZDljb8NCivpu4PlrZDou5INCivpu4PlrZDnqYYNCivpu4PlsI/kvakNCivpu4PlsI/lqJ8NCivpu4PlsbHls7ANCivpu4PmiY3ml7oNCivpu4PkuK3lgYkNCivpu4PkuYvkuq0NCivpu4Pku4HlvJgNCivpu4Pku4Hoia8NCivpu4Pku4Hmn48NCivpu4Pku4HnkosNCivpu4PlhYPlsbENCivpu4PlhYPpmoYNCivpu4PlhYPpp78NCivpu4Plj4vorJkNCivpu4PlpKnlgaUNCivpu4PlsJHpm6gNCivpu4Plv4PmgKENCivpu4Plv4PmgKENCivpu4Plv4PmgKENCivpu4Plv4PlhIANCivpu4Plv4Plp64NCivpu4PmlofmraMNCivpu4PmloflrZ0NCivpu4PmlofmnZENCivpu4PmlofmgKENCivpu4Pmlofkv6ENCivpu4PmloflvaUNCivpu4PmlofnjrINCivpu4Pmlofnm4oNCivpu4Pmlofli50NCivpu4PmlofpmoYNCivpu4PmlofnpboNCivpu4Pmlofmpq4NCivpu4PmlofnkosNCivpu4Pmlofpvo0NCivpu4PmlofpupINCivpu4Pml6XpnZINCivpu4PmnIjnkb4NCivpu4PkuJblrokNCivpu4PkuJblrpwNCivpu4PkuJbmnIsNCivpu4PkuJbloIUNCivpu4PkuJbmuacNCivpu4PkuJblmIkNCivpu4PkuJblop4NCivpu4PkuJbnqY4NCivpu4Pku6XllqwNCivpu4Pku5XpgZQNCivpu4PliqDmrKMNCivpu4Plj6/nlIQNCivpu4Plt6flqbcNCivpu4PlubPlrocNCivpu4PlvJjlkIkNCivpu4PlvJjmr4UNCivpu4PmraPkuIANCivpu4PmraPlrokNCivpu4PmraPkvakNCivpu4PmraPlgYkNCivpu4PmraPpoIYNCivpu4PmraPpjJUNCivpu4PmsLjku4ENCivpu4PmsLjmmIcNCivpu4PmsLjmmboNCivpu4PmsLjmvKINCivpu4PmsYDmu78NCivpu4PnjonlkJsNCivpu4Pnjonpm6gNCivpu4PnjonlqJ8NCivpu4PnjonlqbcNCivpu4Pnjonoj4ENCivpu4PnjonnkakNCivpu4PnjonomK0NCivpu4Pnq4vmlocNCivpu4Pnq4voiqwNCivpu4Pnq4vpgZQNCivpu4Pnq4vnt68NCivpu4PkuqbokLENCivpu4Pku7LmraMNCivpu4Pku7LnhaYNCivpu4Pku7vlu7YNCivpu4PlhYnnjokNCivpu4PlhYnmu78NCivpu4PlhYbmlY8NCivpu4Plhajlr4wNCivpu4PlkInlu7cNCivpu4PlkI3msaANCivpu4PlpJnmhacNCivpu4PlpoLnnJ8NCivpu4PlpoLnv7ANCivpu4Plroflu7cNCivpu4PlrojnlLANCivpu4PlronlvrcNCivpu4Pml63lvJgNCivpu4Pml63ovJ0NCivpu4PmsZ/nkZwNCivpu4Pnmb7nh6YNCivpu4Pogb/lkJsNCivpu4Poh7PmnrANCivpu4Poh7PptawNCivpu4PkvK/lubQNCivpu4PlhYvku7sNCivpu4PlkJvmgKENCivpu4PlppnoiqwNCivpu4PlrZ3lvbANCivpu4Plro/kuq4NCivpu4Plro/pgLINCivpu4Plro/pp78NCivpu4Plv5fku4ENCivpu4Plv5flubMNCivpu4Plv5fmiJANCivpu4Plv5fmmI4NCivpu4Plv5flgYkNCivpu4Plv5flvLcNCivpu4Plv5fmj5oNCivpu4Plv5fpm4QNCivpu4Plv5flmIkNCivpu4Plv5fosaoNCivpu4Plv5fpipgNCivpu4Plv5fpvo0NCivpu4PmnY/lpoINCivpu4PmspvogbINCivpu4Pnp4DnjrINCivpu4Pnp4DlrrkNCivpu4Pnp4Doj68NCivpu4Pnp4Dok4kNCivpu4PogrLkv6ENCivpu4Poia8NCivpu4PpgqblvaUNCivpu4Pkvp3mlocNCivpu4PkvbPlhYMNCivpu4PkvbPmmKUNCivpu4PkvbPlqpsNCivpu4PkvbPoj68NCivpu4PkvbPlq7sNCivpu4PkvbPolZkNCivpu4Pkvankv5ANCivpu4PkvanokLENCivpu4PljZPlkJsNCivpu4PlnaTlvrcNCivpu4PlrZ/lsIgNCivpu4PlrZ/mqLUNCivpu4Plrpfln7oNCivpu4Plrpfos6INCivpu4PlrpznjrINCivpu4Plrpvosp4NCivpu4PlubjlhIANCivpu4Plv7XoirkNCivpu4PmgKHlkJsNCivpu4PmgKHnj4oNCivpu4PmgKHojLkNCivpu4PmgKHokI0NCivpu4PmgKHoj4ENCivpu4PmgKHpm68NCivpu4PmgKHlmIkNCivpu4PmgKHntq0NCivpu4PmgKHpvaENCivpu4Pmib/lvrcNCivpu4PmmIzpvI4NCivpu4PmmI7lv5cNCivpu4PmmI7lvaUNCivpu4PmmI7nkIYNCivpu4PmmI7nkZ4NCivpu4PmmI7mhacNCivpu4PmmJXltZANCivpu4PmnbHmtbcNCivpu4Pmnb7nraANCivpu4PmrKPmgKENCivpu4PmrKPmhIkNCivpu4PmrKPolZkNCivpu4PmsrPpoIYNCivpu4PmsrvlubMNCivpu4Pnjp/nkb4NCivpu4Pnp4npiJ4NCivpu4Poip3oj68NCivpu4Poirfpm7INCivpu4Pph5Hmua8NCivpu4Pph5HmqLkNCivpu4PplbfmvqQNCivpu4Pkuq3okI0NCivpu4Pkuq7lh7ENCivpu4Pkv6HmlocNCivpu4Pkv6HmjbcNCivpu4Pkv6Hmo6ANCivpu4Pkv6HmhLcNCivpu4Pkv6HlvbANCivpu4Pkv6HpipgNCivpu4Pkv6HnqY4NCivpu4Pkv6HmlowNCivpu4Pkv53nkoENCivpu4Pkv4rnlJ8NCivpu4Pkv4rlk7INCivpu4Pkv4rmt4cNCivpu4Pkv4rlgpENCivpu4Pkv4rlgpENCivpu4Pkv4rlgpENCivpu4Pkv4rlh7ENCivpu4Pkv4rmo4sNCivpu4Pkv4roiJwNCivpu4Pkv4rpmoYNCivpu4Pkv4rnpboNCivpu4Pkv4rlmIkNCivpu4Pkv4rntq0NCivpu4Pkv4rosaoNCivpu4Pkv4ros6INCivpu4Pkv4rnqY4NCivpu4Pkv4rpvo0NCivpu4Pkv4rnh4ENCivpu4Pkv57mlpANCivpu4PlhqDmgKENCivpu4PlhqDnqIsNCivpu4PlhqDpm4UNCivpu4PlhqDos5MNCivpu4PlhqDpvo0NCivpu4Pli4fmhacNCivpu4Pljprnm5sNCivpu4Plk4HlgpENCivpu4Plk4Hmr4UNCivpu4PlpZXmj4YNCivpu4PlpZXpnJYNCivpu4Plp7/lqbcNCivpu4Plp7/ntr4NCivpu4PlqIHlh7ENCivpu4PlqIHpipgNCivpu4PlrqPlh7ENCivpu4PlrqPnqYYNCivpu4Plu7rkuK0NCivpu4Plu7rmlocNCivpu4Plu7rpnZINCivpu4Plu7rlh7ENCivpu4Plu7rmmboNCivpu4Plu7rnqIsNCivpu4Plu7rpiJ4NCivpu4Plu7rmupANCivpu4Plu7rlvbANCivpu4Plu7rosaoNCivpu4Plu7rpipgNCivpu4Plu7rli7MNCivpu4Plu7rnqY4NCivpu4Plu7rpvo0NCivpu4PlvaXlpKoNCivpu4PlvaXlvLcNCivpu4PlvaXljZoNCivpu4PlvaXnmpMNCivpu4PlvaXnkZwNCivpu4PlvaXos5MNCivpu4PlvaXmqLUNCivpu4PlvaXmlowNCivpu4PmgJ3lh7ENCivpu4PmgJ3lmIkNCivpu4PmgJ3os6INCivpu4PmgJ3nkYsNCivpu4PmlL/ljp8NCivpu4PmlL/mj5oNCivpu4PmlL/pvo0NCivpu4PmmKXloKQNCivpu4PmmK3ku4ENCivpu4PmmK3mmboNCivpu4PmmK3ntq0NCivpu4PmmKDnkYQNCivpu4PmmLHkuK0NCivpu4PmmLHmhLcNCivpu4PmmLHpvo0NCivpu4Pmn4/lhYMNCivpu4Pmn4/lvLcNCivpu4Pmn4/llqwNCivpu4Pmn4/nv5QNCivpu4Pmn4/nkZ4NCivpu4Pmn4/ntroNCivpu4Pmn4/nkosNCivpu4Pmn4/nv7ANCivpu4Pmn4/nprINCivpu4Pngrrmo58NCivpu4PngrPmhrINCivpu4Pnj4rokI0NCivpu4Pnj4DpkJgNCivpu4Pnm4jmg6ANCivpu4Pnm4jlvbANCivpu4Pnm7jlv5cNCivpu4Pnp4voirMNCivpu4Pnp4vokI0NCivpu4Pnp4vnkZsNCivpu4Pnp4vpnJ4NCivpu4Pnvo7njokNCivpu4Pnvo7njrINCivpu4Pnvo7lqJ8NCivpu4Pnvo7nvpoNCivpu4Pnvo7nrZENCivpu4Pnvo7pm68NCivpu4Pnvo7ok4kNCivpu4Pnvo7nh5UNCivpu4Poh7TmgYYNCivpu4Poh7TpgaANCivpu4Poi6XolocNCivpu4PojILmupANCivpu4Poi7HlvaUNCivpu4Poi7HlgpENCivpu4Poi7HpipgNCivpu4PooY3mrL0NCivpu4Posp7nqY4NCivpu4Ppg4Hku4ENCivpu4Ppg4HnjqsNCivpu4Ppg4Hnj4oNCivpu4Ppg4HojJcNCivpu4Ppg4HlqbcNCivpu4Ppg4Hmo6ANCivpu4Ppg4Hpm68NCivpu4Ppg4HpnZwNCivpu4Pph43lh7ENCivpu4Ppn4vnkKoNCivpu4Ppn4vli7MNCivpu4PpppnmppUNCivpu4PlgInlvaUNCivpu4Plk7LmpZMNCivpu4PlravlrocNCivpu4Plrrbnj40NCivpu4PlrrbpmoYNCivpu4Plrrbnt68NCivpu4Pls7vltKINCivpu4Pluq3piLoNCivpu4PmjK/nlKsNCivpu4PmjK/luq0NCivpu4PmjK/oqqANCivpu4PmjK/nkbINCivpu4Pmm7jlr4UNCivpu4Pmm7jpiLoNCivpu4Pms7DltJENCivpu4Pms7DpnJYNCivpu4PmtanlpKkNCivpu4PmtanpiJ4NCivpu4Pnj67oirgNCivpu4Pnj67lqJ8NCivpu4Pnj67oiJINCivpu4Pnj67nkZwNCivpu4Pnm4rlu7oNCivpu4PnpZbos6INCivpu4PntKDnnJ8NCivpu4PntJTnvo4NCivpu4Pog73osZANCivpu4Pph5fkv4oNCivpu4PlgYnlrpkNCivpu4PlgYnkv64NCivpu4PlgYnls7ANCivpu4PlgYnlgpENCivpu4PlgYnoqqANCivpu4PlgYnpipgNCivpu4PlgaXlpYcNCivpu4PlgaXmmY8NCivpu4PlgaXmuqINCivpu4Plh7DmhYgNCivpu4PlnIvlhagNCivpu4PlnIvoirMNCivpu4PlnIvlgKsNCivpu4PlnIvlsZUNCivpu4PlnIvmmYkNCivpu4PlnIvou5INCivpu4PlnIvmo58NCivpu4PlnIvpiJ4NCivpu4PlnIvoo5UNCivpu4PlnIvmpq4NCivpu4PlnIvosaoNCivpu4PlnIvpkJgNCivpu4PloILou5INCivpu4Pln7nls7sNCivpu4Pln7npipgNCivpu4PlqYnosp4NCivpu4PlqYnoj4ENCivpu4PlsInnv5QNCivpu4PltIfoqJMNCivpu4PltIfpipgNCivpu4PluLjmqLkNCivpu4PlvanpipgNCivpu4Pmg5/ogZYNCivpu4PllZ/lro8NCivpu4PllZ/kv64NCivpu4PllZ/mm7gNCivpu4PllZ/lvbANCivpu4PmlY8NCivpu4PmlY/kv64NCivpu4PmlY/oj68NCivpu4PmlY/mhacNCivpu4PmooXnjrINCivpu4Pmt7vomY4NCivpu4PmuIXms7ANCivpu4PmuIXpup8NCivpu4Pmt5HlspENCivpu4Pmt5HoiqwNCivpu4Pmt5HnjrINCivpu4Pmt5Hosp4NCivpu4Pmt5Hljb8NCivpu4Pmt5HmoYMNCivpu4Pmt5HmooUNCivpu4Pmt5HlqpsNCivpu4Pmt5HnkKoNCivpu4Pmt5Hoj68NCivpu4Pmt5Hpm68NCivpu4Pmt5HnlIQNCivpu4Pmt5HpnZwNCivpu4Pmt7Xos6INCivpu4Pnmo4NCivpu4PnpaXmgakNCivpu4PnpaXmlowNCivpu4PntLnokLENCivpu4PojokNCivpu4PojonlqJ8NCivpu4PojonnkKoNCivpu4PojonlmIkNCivpu4PpgJTlt5YNCivpu4Ppm6rps7MNCivpu4PlgpHmlocNCivpu4Plh7HlqIENCivpu4Plh7HnkKoNCivpu4Plh7Hpup8NCivpu4Pli53lv5cNCivpu4Pli53oo5UNCivpu4PljZrms7ANCivpu4Pllpzpup8NCivpu4PloK/lgYkNCivpu4PlqbflqbcNCivpu4Plr4wNCivpu4Plr4zoqbMNCivpu4PlvqnogbANCivpu4Pmg6DlkJsNCivpu4Pmg6DoiqwNCivpu4Pmg6Dnj40NCivpu4Pmg6DlqKUNCivpu4Pmg6DmlY8NCivpu4Pmg6DnkLQNCivpu4Pmg6Dli6QNCivpu4Pmg6DoqakNCivpu4Pmg6DpnJ4NCivpu4Pmj5rlkI0NCivpu4Pmlq/pp78NCivpu4Pmma/oo5UNCivpu4Pmmbrli4cNCivpu4PmmbrlgYkNCivpu4PmmbrlurcNCivpu4PmmbrpmoYNCivpu4PmmbrpipgNCivpu4PmmbrnkYsNCivpu4PmnJ3nkLQNCivpu4PmnJ3mqJENCivpu4PmpI3mh4sNCivpu4PmuZjlt6cNCivpu4PmuZjlqbcNCivpu4PmuJ3oirMNCivpu4PnkKrlqbcNCivpu4PnkLPpiJ4NCivpu4PnkKbmo7sNCivpu4PnmbvpjbUNCivpu4Pnq6PljZcNCivpu4PnrZHpiLoNCivpu4PlloTmmokNCivpu4PoiJLlvaUNCivpu4PoiJzlv6ANCivpu4Poj4HolocNCivpu4Poj4roi7ENCivpu4PoqaDnkZ4NCivpu4PosrTloIINCivpu4PpgLgNCivpu4PpgLjntJQNCivpu4PpgLjnkYsNCivpu4PpiJ7msoENCivpu4PplpTovrINCivpu4Ppm4XlkJsNCivpu4Ppm4XoirMNCivpu4Ppm4XmtKUNCivpu4Ppm4XnjrINCivpu4Ppm4Xljb8NCivpu4Ppm4Xmt5ENCivpu4Ppm4Xpm6oNCivpu4Ppm4Xmg6ANCivpu4Ppm4XnkKoNCivpu4Ppm4XnkLQNCivpu4Ppm4XokI0NCivpu4Ppm4Xpm68NCivpu4Ppm4XokLENCivpu4Ppm4XpiLQNCivpu4Ppm4XmhacNCivpu4Ppm4XpvaENCivpu4Ppm6/njokNCivpu4Ppm6/nraANCivpu4PpoIblkIkNCivpu4PlgrPlnI0NCivpu4Plu4nmmboNCivpu4PmhI/ojLkNCivpu4PmhI/otoUNCivpu4PmhYjlq7oNCivpu4PmlazlhYMNCivpu4PmlazmlowNCivpu4PmmonmlocNCivpu4PmpbfnpboNCivpu4PmpoblqbcNCivpu4Pmr5Pnv44NCivpu4Pmr5Poj68NCivpu4PmupDnkosNCivpu4Pnhaflh7ENCivpu4Pnhabpm7ANCivpu4PnkZ/oirgNCivpu4PnkZ7kvLYNCivpu4PnkZ7lsY8NCivpu4PnkZ7npaUNCivpu4PnkZ7pmb0NCivpu4PnkZ7oiIgNCivpu4PnkZzmt5ENCivpu4Pnm5/lh7ENCivpu4PnpbroiqwNCivpu4PnraDnnJ8NCivpu4PnvqnlkJsNCivpu4PnvqnpipgNCivpu4PnvqTpm4QNCivpu4PogZblnLMNCivpu4PogZblk7INCivpu4PogZblgpENCivpu4PogZbmo7sNCivpu4PogZbptLsNCivpu4Poo5XkuK0NCivpu4Poo5XlrpwNCivpu4Poo5Xnm5sNCivpu4Poo5Xnv5QNCivpu4Poo5XmmLYNCivpu4PoqanoirgNCivpu4PoqanojLkNCivpu4PoqanmtrUNCivpu4Poqanmg6ANCivpu4Poqanpm68NCivpu4PoqanomIsNCivpu4PpgZPlhagNCivpu4PpiLTnkKoNCivpu4Ppm4vnkKYNCivpu4PpnZboirgNCivpu4PpnZbmg6ANCivpu4PpnZbpm68NCivpu4PpvI7og70NCivpu4PlmInmsJENCivpu4PlmInli4cNCivpu4PlmInlgKsNCivpu4PlmInpm6oNCivpu4PlmInokLENCivpu4PlmInos6INCivpu4Pmpq7lsbENCivpu4Pmpq7poIYNCivpu4PmvKLlhYkNCivpu4PmvKLovJ0NCivpu4Pnnb/kvLgNCivpu4Pnoqfpm7INCivpu4Pnpo7mhbYNCivpu4Pntq0NCivpu4Pntq3mmboNCivpu4Pogoflro8NCivpu4PpgaDlro8NCivpu4PpipjlgYkNCivpu4PpipjovJ0NCivpu4PprYHlvawNCivpu4PlhIDlkJsNCivpu4Plvrfnp4ANCivpu4PlvrfnhZINCivpu4Pmhbboj68NCivpu4PmhafnjokNCivpu4PmhafoiqwNCivpu4PmhaflqJ8NCivpu4PmhafojLkNCivpu4Pmhafoj4ENCivpu4Pmhafnpo4NCivpu4PmvoTlgYkNCivpu4PolJrku4ENCivpu4Pos6Lnq6ANCivpu4PpnIflrocNCivpu4PmhrLlvpcNCivpu4Pmhrboj4ENCivpu4Pmm4nkvakNCivpu4Pmm4npn7MNCivpu4Pmm4noj7ENCivpu4Pmm4nolocNCivpu4Pnh5XlqKUNCivpu4PoiIjlhYMNCivpu4PolZnokI0NCivpu4PpjJrmmokNCivpu4PpjKbnq6ANCivpu4PpnZzlrZANCivpu4PpnZzlrpwNCivpu4PpnZzmgKENCivpu4PpnZzojokNCivpu4Ppvo3kuIANCivpu4Pmh4nnkr8NCivpu4PogbDnkKoNCivpu4Polofnk4oNCivpu4Ppp7/pgZQNCivpu4PptLvmmboNCivpu4Pnpq7kvLgNCivpu4PolrDnkakNCivpu4Ppm5nnjokNCivpu4Pmh7fmhbYNCivpu4PngJrlvrcNCivpu4Pnk4rlpoMNCivpu4Pnk4roj68NCivpu4Pnk4rlhIANCivpu4Pnk4rlhIANCivpu4Pnk4rmhacNCivpu4Pnk4rmhacNCivpu4Pnk4roqrwNCivpu4Pnk4rlq7oNCivpu4Ppj6HnlJ8NCivpu4Ppn7vlpoINCivpu4Ppn7vpn7sNCivpu4PptazlnJYNCivpu4PpupflpoMNCivpu4PpupfoiqwNCivpu4PpupfpppkNCivpu4PpupflrrkNCivpu4Ppupfok4kNCivpu4PpupfpjJoNCivpu4Plr7bnjokNCivpu4Plr7blhIANCivpu4Plr7bnqLkNCivpu4Pnjbvoq4QNCivpu4Pnubzlop4NCivpu4PogIDmlocNCivpu4PogIDkv4oNCivpu4PogIDlvrcNCivpu4PogIDnkakNCivpu4PogIDovJ0NCivpu4PorbDlvrcNCivpu4PpkJjokaYNCivpu4PppqjmgKENCivpu4PppqjlhIANCivpu4PppqjmhacNCivpu4Pppqjmr4UNCivpu4PppqjpnIgNCivpu4PpvaHokLENCivpu4PomK3njokNCivpu4PpkLXosaoNCivpu4Ppoa/lqbcNCivpu4PoibfnjokNCivpu4PnjqDmmZ8NCivpu4Plp7XnkYQNCivpu4PmmLbmlowNCivpu4Pli5bou5INCivpu4PnkIfoi5MNCivpu4Pnv4rlrrgNCivpu4Pmo5blkIkNCivpu4PnkK7lr4wNCivpu4PnkKzlkJsNCivpu4PnkKzlqbcNCivpu4PnkKzpm68NCivpu4PnkKznkYINCivpu4Poj4DpiLQNCivpu4PmmpDnnb8NCivpu4PnkYvmrKMNCivpu4PnkYvlr6cNCivpu4PnrbHoirgNCivpu4PnrbHllqwNCivpu4PnrbHpm4ENCivpu4PnrbHomIsNCivpu4PpiLrlqJ8NCivpu4PpiLrlqbcNCivpu4PpiLrlqbcNCivpu4PpiLrmlpANCivpu4PpiLrpm68NCivpu4PpiabplpQNCivpu4Pnno0NCivpu4Polo/mvoQNCivpu4PorLXoqqoNCivpu4PpvaANCivloZflt6fmhrYNCivloZfmmYLpm6gNCivloZflqoTpm7INCivmpYoNCivmpYrkurrnqY4NCivmpYrkuInos6INCivmpYrljYPph4wNCivmpYrljYPmhacNCivmpYrlo6vlvJgNCivmpYrlo6vmnIsNCivmpYrlo6vmr4UNCivmpYrlo6vos6INCivmpYrlpKfmr4UNCivmpYrlrZDmgYYNCivmpYrlrZDmr4UNCivmpYrlrZDnkaINCivmpYrlsI/mhacNCivmpYrkuK3lrZoNCivmpYrkuYvmhacNCivmpYrku4Hoj68NCivmpYrku4vmlocNCivmpYrlhYHkuK0NCivmpYrlv4PmgKENCivmpYrlv4PlvrcNCivmpYrmloflro8NCivmpYrmlofmnbANCivmpYrmloflqpsNCivmpYrmlofnkZ4NCivmpYrmloflhIANCivmpYrmlofnkYsNCivmpYrkuJblubMNCivmpYrkuJblh7ENCivmpYrkuJbptawNCivmpYrku5XppqgNCivmpYrlj6/mrYYNCivmpYrlvJjlhYgNCivmpYrmnKzogZYNCivmpYrmraPlvawNCivmpYrmsLjmraMNCivmpYrmsLjnkKYNCivmpYrnjonlkJsNCivmpYrnjonpvI4NCivmpYrnmb3pr6gNCivmpYrnq4vnvqQNCivmpYrku7LmsJENCivmpYrlhYbmrL0NCivmpYrlpoPlqbcNCivmpYrlrojln44NCivmpYrml6jnpaUNCivmpYroh6rpm4QNCivmpYrkvLbmhacNCivmpYrlppnmgakNCivmpYrlro/npaUNCivmpYrlv5flubMNCivmpYrlv5fog70NCivmpYrlv5flgYkNCivmpYrlv5fnpaUNCivmpYrlv5fpm40NCivmpYrlv5flrbgNCivmpYrmspvokpQNCivmpYrnp4Dnj6ANCivmpYrnp4DmhacNCivmpYrogrLnnJ8NCivmpYrogrLlhJINCivmpYrkup7nkKYNCivmpYrkvbPmrKMNCivmpYrkvbPlsZUNCivmpYrkvbPoj4ENCivmpYrkvbPmkrANCivmpYrkvbPonqINCivmpYrkvannj4oNCivmpYrkvanlhJINCivmpYrlhbbngJoNCivmpYrlnaToi7ENCivmpYrlpYfmg6ANCivmpYrlrZ/kv64NCivmpYrlrZ/ok4kNCivmpYrlrZ/nv7ANCivmpYrlrpcNCivmpYrlrpflgI0NCivmpYrlrpfloK8NCivmpYrlrpflhJINCivmpYrlrpfnqY4NCivmpYrlrpfnv7ANCivmpYrlrpfng5wNCivmpYrlrpzmlocNCivmpYrlrpznkosNCivmpYrlrpzok4ENCivmpYrlsJroqJMNCivmpYrlsJrono0NCivmpYrlsrHlhJINCivmpYrlv6Dku4ENCivmpYrlv6DmhrINCivmpYrmgKHoirMNCivmpYrmgKHokI0NCivmpYrmib8NCivmpYrmib/nhrkNCivmpYrmmJPlgKsNCivmpYrmmIzos5MNCivmpYrmmIbpnJYNCivmpYrmmI7mnbANCivmpYrmmI7ntJQNCivmpYrmmI7oqqANCivmpYrmmI7lr7ANCivmpYrmmI7npqcNCivmpYrmmIfmqLoNCivmpYrmnbHmlY8NCivmpYrmnb7pipgNCivmpYrmrKPmgKENCivmpYrmrKPnj64NCivmpYrmrKPnh5UNCivmpYrms5PopJgNCivmpYrnp4npoIYNCivmpYroirPpm4QNCivmpYroirgNCivmpYrph5HnkosNCivmpYrplbfmvZQNCivmpYrpnZLls7ANCivmpYrkv4rlro8NCivmpYrkv4rovJ0NCivmpYrlpZXmmLYNCivmpYrlu7rlvaUNCivmpYrmgJ3pm4sNCivmpYrmlL/lvawNCivmpYrmlL/li7MNCivmpYrmlL/pnJYNCivmpYrmmK3ovJ0NCivmpYrngrroiJwNCivmpYrnp4vnlLcNCivmpYrntIDoirgNCivmpYrnvo7njrINCivmpYrnvo7mg6ANCivmpYrnvo7ol50NCivmpYroi5HliKkNCivmpYrlgKkNCivmpYrlk7LlrokNCivmpYrlk7LpipgNCivmpYrlrrbmmI4NCivmpYrlrrbnpboNCivmpYrlrrbpipgNCivmpYrlrrbnkYsNCivmpYrmga3mspsNCivmpYrmjK/lrpcNCivmpYrmjK/mvKINCivmpYrmmY/oj4ENCivmpYrmm7josaoNCivmpYrmtpPmq7sNCivmpYrnj67lkJsNCivmpYrnj67nkKYNCivmpYrnnJ/nj6ANCivmpYrntKDljb8NCivmpYrojZDnv5QNCivmpYromZTpm4UNCivmpYrlgYnmlocNCivmpYrlgYnnkKoNCivmpYrlgaXlnIsNCivmpYrlnIvmnb4NCivmpYrlnIvpvI4NCivmpYrln7nmgakNCivmpYrlqYnojokNCivmpYrltIfpkasNCivmpYrmg5/nmb0NCivmpYrllZ/lro8NCivmpYrmlY/oirMNCivmpYrmorXlrZsNCivmpYrmt7Pnoa8NCivmpYrmuIXmoYMNCivmpYrmt5HlhYMNCivmpYrmt5HkvbMNCivmpYrmt5HoiqwNCivmpYrmt5Hnvo4NCivmpYrmt5HmlY8NCivmpYrmt5Hmg6ANCivmpYrmt5HokI0NCivmpYrmt5Hpm4UNCivmpYrmt5HmhacNCivmpYrmt7Xli50NCivmpYrmt6joip0NCivmpYrnm5vmlowNCivmpYrojonoirMNCivmpYrpm6rpm4UNCivmpYrlh7Hku7INCivmpYrlh7HlgpENCivmpYrlh7HpiJ4NCivmpYrli53lrocNCivmpYrli53mlpANCivmpYrli5vlh7ENCivmpYrljZrlrocNCivmpYrljZrmrL0NCivmpYrllrvplpQNCivmpYrlo7noiJINCivmpYrlqbfpiJ4NCivmpYrlr4zlrokNCivmpYrlr4znkJsNCivmpYrlvqrlqbcNCivmpYrmg6DlrocNCivmpYrmg6DnnJ8NCivmpYrmg6DlqbcNCivmpYrmg6DnkLMNCivmpYrmg6Dpm68NCivmpYrmlablgpENCivmpYrmlq/lh7ENCivmpYrmma/lhYMNCivmpYrmma/loK8NCivmpYrmma/pm68NCivmpYrmmbrlhYMNCivmpYrmmbrlro8NCivmpYrmmbrlgpENCivmpYrmmbrloK8NCivmpYrmmbrlloQNCivmpYrmmbrpiJ4NCivmpYrmmbrpvo0NCivmpYrmnJ3mlY8NCivmpYrmnJ3oiJwNCivmpYrmo67nmbwNCivmpYrmuafoqZUNCivmpYrnmbvlrokNCivmpYrnmpPnkYsNCivmpYrnrZboiKoNCivmpYrlloTmg6ANCivmpYroiJLluIYNCivmpYroiJLlqpsNCivmpYroiJLpm68NCivmpYroiJzmrL0NCivmpYroj4HoiqwNCivmpYroj7Hpm4UNCivmpYroqaDoj5gNCivmpYrosrTlqpsNCivmpYrpgLjojokNCivmpYrpiJ7nmb4NCivmpYrplpTnv5QNCivmpYrpm4XnjokNCivmpYrpm4XoirMNCivmpYrpm4XlgKsNCivmpYrpm4Xmt5ENCivmpYrpm4XlqbcNCivmpYrpm4XlqbcNCivmpYrpm4XltZANCivmpYrpm4Xmg6ANCivmpYrpm4XmmbYNCivmpYrpm4Xnv5QNCivmpYrpm4XotoUNCivmpYrpm4Xpm68NCivmpYrpm4Xpm7INCivmpYrpm4XojJwNCivmpYrpm6/mg6ANCivmpYrpm7Lnv5QNCivmpYrpoIbmo4sNCivmpYrmhYjlhIANCivmpYrmr5PnjrINCivmpYrnhaXnq6ANCivmpYrnkZ7lgpENCivmpYrokKzluIYNCivmpYroo5UNCivmpYroqanou5INCivmpYrpgZPlv6ANCivmpYrlmInnjrINCivmpYrlmInnkZwNCivmpYrlmInosZANCivmpYrmpq7lkIkNCivmpYrmp5Dpp5INCivmpYrnoqfpm68NCivmpYrntq3oj68NCivmpYrotpnpipgNCivmpYrpipjpoacNCivmpYrlvrflv5cNCivmpYrmhbbpmoYNCivmpYrmhafnjrINCivmpYrmhafnk4oNCivmpYrnkosNCivmpYrpnIflgYkNCivmpYrmhrLmmIcNCivmpYrmm4npnZINCivmpYrmm4noj4ENCivmpYrmqYvpnJYNCivmpYrnh5Xpm7INCivmpYrolZnoirMNCivmpYrolZnlmIkNCivmpYrpjKvmhrINCivmpYrpnZzlpoINCivmpYrpnZzmgKENCivmpYrpnZzpm68NCivmpYrmiLTlt54NCivmpYrniLXpp78NCivmpYrpp7/msJENCivmpYrmm5zmupYNCivmpYrnpI7pgaANCivmpYrnuaHntr4NCivmpYrosZDlhagNCivmpYrosZDpipgNCivmpYrpjq7pgaANCivmpYrppqXoqqANCivmpYrnk4roj68NCivmpYrpupflhqANCivmpYrpupfnkLQNCivmpYrmm6bnkLMNCivmpYrpkJjpiYkNCivmpYrpnYjoi5MNCivmpYrojJzljYkNCivmpYrnkIflpoINCivmpYrnkIflqpsNCivmpYrnv4rnj64NCivmpYrnkKzlqbcNCivmpYrnkYvnkKYNCivmpYrok4Hok4ENCivmpYrpjqfkvIoNCivmuqvkuIjnt68NCivmuqvlv4PltZANCivmuqvmraPpvo0NCivmuqvoh7Pku7sNCivmuqvnp4DmgKENCivmuqvlrpcNCivmuqvmib/nv7ANCivmuqvph5HnkZ4NCivmuqvlu7rogbINCivmuqvoi6XlqbcNCivmuqvlsZXoj68NCivmuqvntKDmooUNCivmuqvln7npnZINCivmuqvmt5HmgKENCivmuqvlh7ENCivmuqvmmbrpgKMNCivmuqvpm4XmuIUNCivmuqvogZblu7YNCivmuqvpipjlk7INCivmuqvmm4noj68NCivmuqvppqXpgaANCivmuqvoj5jmuJ0NCivokKzkvbPmmJUNCivokKzlu7rmmI4NCivokKzmlY/lqYkNCivokKzmm4nmmI4NCivokYnkuIHmupANCivokYnkuYPnpo4NCivokYnkurros5MNCivokYnlj4jlmIkNCivokYnljYPoj4oNCivokYnlo6vmlrANCivokYnlpKfokaYNCivokYnlrZDosaoNCivokYnlsbHoj68NCivokYnlpKnlsIcNCivokYnmloflgYkNCivokYnmlofpvo0NCivokYnkuJbmsJENCivokYnku6PmrIoNCivokYnmraPogZYNCivokYnnjonnjrINCivokYnkuqbnm5sNCivokYnlhYnmhIkNCivokYnlkJHpmb0NCivokYnlpoLpm68NCivokYnnq7nogrINCivokYnkvZDpp78NCivokYnlro/lgpENCivokYnlv5flvaUNCivokYnlv5fljZoNCivokYnmraXml7sNCivokYnnp4DmooUNCivokYnogrLls7ANCivokYnkvp3pnZINCivokYnkvbPmrKMNCivokYnkvbPoj4ENCivokYnkvbPli7MNCivokYnkvannnJ8NCivokYnlpYnmnbANCivokYnlrZ/loK8NCivokYnlrpfmmboNCivokYnlrpfpkasNCivokYnlrpvou5INCivokYnlv6DmrKMNCivokYnmgKHlkJsNCivokYnmgKHoirMNCivokYnmib/ms5MNCivokYnmmIzlgKsNCivokYnmmI7mmIcNCivokYnmmI7ml4sNCivokYnmmI7pkasNCivokYnmnb7ngqsNCivokYnmrKPmr5MNCivokYnnjp/lkJsNCivokYnoirPkvLYNCivokYnoirPokI0NCivokYnoirflppgNCivokYnplbfpnZINCivokYnkuq3lv5cNCivokYnkv6Hlu7cNCivokYnkv4rlro8NCivokYnkv4rnlKsNCivokYnkv4rmhbYNCivokYnkv57mnYkNCivokYnlhqDmhacNCivokYnlpZXntq0NCivokYnlp7/lpo8NCivokYnlu7rlkJsNCivokYnlu7rmmIcNCivokYnlvaXlv5cNCivokYnmgJ3lhIANCivokYnmlL/ovJ0NCivokYnmmK3kvLYNCivokYnmmLHlv5cNCivokYnmn4/ntrENCivokYnnjrLlspENCivokYnnp4vmnIgNCivokYnnvo7lqJ8NCivokYnoh7Tlv6ANCivokYnooY3lrZwNCivokYnpg4Hoj4ENCivokYnlgKkNCivokYnlk7LlhagNCivokYnlrrblrocNCivokYnlrrbpiLQNCivokYnlrrblhJINCivokYnls7vos5MNCivokYnmjK/npo8NCivokYnmmYnlmIkNCivokYnmm7jnkYsNCivokYnmtpPmtpMNCivokYnnm4rmmIcNCivokYnntKDntr4NCivokYnogL/pvYoNCivokYnlgaXlgYkNCivokYnlnIvos6INCivokYnlvLXlu7oNCivokYnmrLLmgZINCivokYnmt5Hnj40NCivokYnmt5HpiLQNCivokYnntLnku7sNCivokYnli53njoQNCivokYnmg6DmlocNCivokYnmg6Dnpo4NCivokYnmmbrku4ENCivokYnmo67muJ0NCivokYnoqaDmmbQNCivokYnpm4HnlIQNCivokYnpm4XlqbcNCivokYnpm4Xpm68NCivokYnpm7LptawNCivokYnmr5Pls7ANCivokYnnvqnmnb4NCivokYnpiLTnj4oNCivokYnlmInoj68NCivokYnnnb/lk7INCivokYnpipjmmIwNCivokYnlhIDoirMNCivokYnmhafmrKMNCivokYnmvZTmgakNCivokYnmm4noiqwNCivokYnmqLnplosNCivokYnolZnoirMNCivokYnpjKbps7MNCivokYnmm5nmhbYNCivokYnpp7/pgLgNCivokYnnpq7ntq0NCivokYnnk4rmlocNCivokYnlr7blo6wNCivokYnpqLDpgaANCivokYnpqaUNCivokYnnjrTosaoNCivokYnnkKTmgKENCivokYnmh4zppqgNCivokZvkuJbokLENCivokZvlgKnlpoINCivokaPkurrlro8NCivokaPlrZDpnZINCivokaPlt6fnjrINCivokaPlkIjmgakNCivokaPlv5fku4ENCivokaPkvbPosaoNCivokaPmgKHlkJsNCivokaPoirPpipgNCivokaPlp7/liKkNCivokaPlvaXlro8NCivokaPnp4vnkb4NCivokaPkv67pipgNCivokaPmjK/pm4QNCivokaPog73nkZ4NCivokaPmg6DoirMNCivokaPogZbnt6MNCivokaPmhafnvo4NCivokaPptLvmpaANCivokaPltqLms5MNCivoo5jlhYPmhLcNCivop6Pnvo7piLQNCivoqbnkuo7oirMNCivoqbnlrZDmsJENCivoqbnku4HlmIkNCivoqbnmlofnpaUNCivoqbnkuJblgpENCivoqbnmsLjnpaUNCivoqbnnq4vmiJANCivoqbnlpoLpiJANCivoqbnlro/lvawNCivoqbnlv5fptLsNCivoqbnogrLpm68NCivoqbnkvbPmjK8NCivoqbnkvbPoiIgNCivoqbnkvannqY4NCivoqbnlrZ/mmYMNCivoqbnlrpfmhrINCivoqbnlrpzntIsNCivoqbnlv6Dmpq4NCivoqbnmmIzlkIkNCivoqbnmmI7mvZQNCivoqbnmrKPlrpwNCivoqbnpnZLoibcNCivoqbnliY3ms7ANCivoqbnmlL/ls7ANCivoqbnnvo7nj40NCivoqbnljb/oi7kNCivoqbnlrrbpipMNCivoqbnmtZrmmIcNCivoqbnnm4rlgYkNCivoqbnnm4rpipgNCivoqbnojJfoirgNCivoqbnlqYnlkJsNCivoqbnllZ/nt68NCivoqbnmt5HlpoMNCivoqbnmt5HokI0NCivoqbnmt5HoiqkNCivoqbnlh7HmjbcNCivoqbnli53mrL0NCivoqbnlr4zmmboNCivoqbnmg6DlqpsNCivoqbnmma/loK8NCivoqbnmmbrlgpENCivoqbnmo64NCivoqbnnv5Tku7sNCivoqbnoqLzlr4wNCivoqbnpiJ7ntq0NCivoqbnpm4XlqbcNCivoqbnpm4XplpQNCivoqbnpm6/nkakNCivoqbnnvqTmr4UNCivoqbnlmInnkr8NCivoqbnlvrfppqgNCivoqbnli7PmmI4NCivoqbnnqY7okI0NCivoqbnnkqjltrgNCivoqbnosZDlrocNCivoqbnptZHlubQNCivoqbnnjpPnkYsNCivoqbnnkKzmuJ0NCivos4flkJvlhIANCivos4jmsrvlnIsNCivos4jmhJvnjqsNCivos4jpq5DmhpsNCivphJLkuIDku7INCivphJLmlofpmoYNCivphJLnq4vlvaUNCivphJLmnY7mmIwNCivphJLkvbPoj68NCivphJLlrpfoj68NCivphJLmmI7ljp8NCivphJLph5HlvrcNCivphJLlnIvpvo0NCivphJLmmbrku4ENCivphJLmlrDlhagNCivphJLntq3liZsNCivphJLpnZznj64NCivpm43mlablhYMNCivpm7flrpzluq0NCivpm7fooY3oiIgNCivpm7fmg6DnkKYNCivpm7fpm4Xoj4ENCivpm7fptaznqIsNCivlu5bkuIHpgLgNCivlu5bkuo7mlocNCivlu5bljYPmhacNCivlu5blo6vloK8NCivlu5blpKfmqJ8NCivlu5blsI/oj68NCivlu5bku4Hnpr4NCivlu5blhYPliKkNCivlu5blhYHpnZYNCivlu5bmloflubMNCivlu5bmlofojLkNCivlu5bmlofoqZUNCivlu5bmlofnlIQNCivlu5bmlofmvZQNCivlu5bmnIjop4ANCivlu5bku5XntroNCivlu5bmnKzlhYMNCivlu5bmraPlgYkNCivlu5bnjokNCivlu5bnjonokI0NCivlu5bkuJ7mmZ4NCivlu5blhYnovJ0NCivlu5blrojmraMNCivlu5bkvK/nkosNCivlu5blkKvmvZQNCivlu5blro/mhYgNCivlu5blv5fmsJENCivlu5blv5flgYkNCivlu5blv5fpgaANCivlu5bnp4Dljb8NCivlu5bogrLoia8NCivlu5boia/mt64NCivlu5bkvbPnjqUNCivlu5bkvanlpoINCivlu5bkvanps7MNCivlu5blrpflsbENCivlu5blrpznvqQNCivlu5bmgKHnjrINCivlu5bmgKHmma8NCivlu5bmib/mhbYNCivlu5bmmI7lhIANCivlu5bmrKPlhIANCivlu5boirPnjrINCivlu5boip3loIUNCivlu5bpnZLmnb4NCivlu5bkv6Hlr6wNCivlu5bkv4rlgpENCivlu5bkv4rmrL0NCivlu5blhqDnvo4NCivlu5blpZXku7sNCivlu5blp7/mr5MNCivlu5blu7rln44NCivlu5blu7rpiJ4NCivlu5blvaXlh7ENCivlu5bmgYbmr4UNCivlu5bmmKXoj4oNCivlu5bmmLHmqLkNCivlu5bngrPnhJwNCivlu5bnm4jlpYcNCivlu5bnp4vmgKENCivlu5bnvo7njrINCivlu5bnvo7nkLMNCivlu5bojILoia8NCivlu5boi7HnlLcNCivlu5boi7HlgpENCivlu5boi5HlkJsNCivlu5bov7DojIINCivlu5bpg4HlqbcNCivlu5blgKnlrpwNCivlu5bljb/mg6ANCivlu5blk7Loq5YNCivlu5blrrbnjrINCivlu5blrrblr6cNCivlu5blrrbnkakNCivlu5blrrblqacNCivlu5bls7vmr4UNCivlu5bmganmhYgNCivlu5bmjK/oia8NCivlu5bmjLrltLQNCivlu5bmm7jnj64NCivlu5bmoYLlkJsNCivlu5bmtZrlro8NCivlu5bnj67lkJsNCivlu5bnj67njqsNCivlu5bnj67mhJsNCivlu5bnm4rnvqQNCivlu5bntKDljb8NCivlu5bogJXovJ0NCivlu5bkub7miJANCivlu5blgYnmiJANCivlu5blgYnovrANCivlu5blgYnmlq8NCivlu5blgYnptLsNCivlu5blgaXmmI4NCivlu5blgaXpipgNCivlu5blnIvlro8NCivlu5blnIvli5sNCivlu5blnIvoj68NCivlu5bln7rlro8NCivlu5bln7nnkZwNCivlu5blqYnliKkNCivlu5blqYnmrKMNCivlu5blr4TokI0NCivlu5bltIfnoqkNCivlu5blurfpnJYNCivlu5bmg4fmsrsNCivlu5bllZ/oia8NCivlu5bmlY/msZ0NCivlu5bmlY/njrINCivlu5bmopPojJwNCivlu5bmt5HlkJsNCivlu5bmt5Hosp4NCivlu5bmt5Hmg6ANCivlu5bmt5HpupcNCivlu5bnpaXpgZQNCivlu5bosqvnj64NCivlu5bnq6Dmo4sNCivlu5blr4znlLANCivlu5bmg6DlqJ8NCivlu5bmmbrovJ0NCivlu5bnkKrnvo4NCivlu5boiJLlhIANCivlu5bpgLLlubMNCivlu5bpm4XlgKkNCivlu5bpoIbluIYNCivlu5bmpbfmlocNCivlu5bnraDmgKENCivlu5bokLHoirkNCivlu5bll74NCivlu5blmInpmb0NCivlu5bmvKLpvI4NCivlu5bntq3nj40NCivlu5bpipjku4ENCivlu5bmhbbos4ANCivlu5bmhafpm68NCivlu5bnkannkocNCivlu5bmhrLloIINCivlu5bmm4nmhacNCivlu5bpjKbnkZwNCivlu5bmk47luIYNCivlu5bmm5znkakNCivlu5bpupLplpQNCivlu5bogIDmnbENCivlu5bpoa/mhbYNCivlu5blgbLlpqQNCivlu5bmlozlgpENCivlu5bpiLrpipgNCivmvKLov7Dku4ENCivnhornq4vmlrANCivnhormnbHlop4NCivnhorlh4zpnIYNCivnhorltIfnt68NCivnhorli6TkupENCivnlITmhafmmI4NCivnrqHlubzku7INCivnrqHph5HnjrINCivnrqHnkKroirgNCivnv5/mlabmlY8NCivoh7rmlofnhacNCivokrLkv6HlhagNCivokrLpp7/mr4UNCivoo7TlgYnnqIsNCivopJrlv4PmgKENCivopJrkv4rlgYkNCivopJrlrrblvrcNCivos5PmlazmlocNCivotpnlo6vpvYoNCivotpnlrZDntq0NCivotpnku4HkvZENCivotpnlhYPlro8NCivotpnlj4vltKcNCivotpnmloflv6ANCivotpnmlrnmhLcNCivotpnkuJboo5UNCivotpnlv4XmmIwNCivotpnnjonok64NCivotpnlronnkKoNCivotpnlkJvmnbANCivotpnlro/piJ4NCivotpnlv5fosaoNCivotpnogrLnkLMNCivotpnkvanoiqwNCivotpnlrpzlkJsNCivotpnmgKHlqbcNCivotpnmmI7ovJ0NCivotpnoirfoj4ENCivotpnkv4rlh7ENCivotpnlk4HlvaUNCivotpnlu7rli50NCivotpnmgazlhIANCivotpnngqvli5sNCivotpnnp4vps7MNCivotpnoi7Hpvo0NCivotpnkv67pnJYNCivotpnlrrboia8NCivotpnlrrbos6INCivotpnmjK/lro8NCivotpnmoYLpnZINCivotpnnj67msZsNCivotpnnpZDnlIQNCivotpnlgYnlu7cNCivotpnlgYnnv5QNCivotpnlnIvlv5cNCivotpnln7npnJYNCivotpnltIfplpQNCivotpnmlY/lpoINCivotpnmt5HoirMNCivotpnnmo7lkJsNCivotpnlqbflrowNCivotpnmuZjlkJsNCivotpnpiJ7lv5cNCivotpnnkZ7mmIwNCivotpnlmInmlawNCivotpnlu6PlhYMNCivotpnmhZXnvqQNCivotpnmqLnlhIANCivotpnpvo3ln7oNCivotpnpm5npp78NCivotpnnjrnnvrINCivpgaDol6TmsLjlurcNCivphJ7osarovJ0NCivpvYrpm6rmsZ0NCivlionkuZnokLENCivlionkuYPokLENCivlionkurrosaoNCivlionlh6DokI0NCivlionlipvosaoNCivlionlj4jmhYgNCivlionkuIrml5cNCivlionkuo7oj4ENCivlionljYPnkZwNCivlionlo6voj68NCivlionlo6vosaoNCivlionlpKfmpq4NCivlionlrZDnlLENCivlionlrZDlmIkNCivlionlrZDpoI4NCivlionlsbHosaoNCivlionkuK3nkKoNCivlionku4HmraMNCivlionku4Hoo5UNCivlionlhYPps7MNCivlionlsJHntq0NCivlionlv4PlhIANCivlionmlofnjokNCivlionmlofnjrINCivlionmlofli50NCivlionmlofotoUNCivlionmlofnpo8NCivlionml6XpoIYNCivlionkuJbmlocNCivlionkuJbmuIUNCivlionkuJbmhbYNCivlionku6XnraANCivlionlj7ANCivlionlvJjlgYkNCivlionmraPmsrMNCivlionmraPpm4QNCivlionmsLjlgaUNCivlionnjonmlocNCivlionnjonlrrYNCivlionnjonokI0NCivlionnjonnkIcNCivlionnq4vlgYkNCivlionkuqbmmIcNCivlionkvIrkv64NCivlionku7LmtrUNCivlionlhYnmnbANCivlionlhYblrrkNCivlionlhajlvawNCivlionlkI3lqJ8NCivlionlpoLoirMNCivlionlpoLolrANCivlionlrofolocNCivlionlronnpaUNCivlionml63oiqwNCivlionmsZ3lqJ8NCivlionoh7PlrokNCivlionkvK/lvaUNCivlionlkJvnpboNCivlionlrZ3lgKsNCivlionlro/lgYkNCivlionlu7fmpbcNCivlionlv5fli4cNCivlionlv5fmtakNCivlionlv5fmupANCivlionlv5fnkYsNCivlionmsoLmmIANCivlionnp4Dpg4ENCivlionnp4Dpm68NCivlionogrLmiJANCivlionogrLlv5cNCivlionogrLlrpcNCivlionogrLmtLgNCivlionogrLoqqANCivlionogrLnqY4NCivlionpgqblubMNCivlionpgqbnm7gNCivlionkup7oirgNCivlionkvp3mlocNCivlionkvbPmspANCivlionkvbPmgKENCivlionkvbPoirMNCivlionkvbPmtKcNCivlionkvbPnkKoNCivlionkvbPpgZQNCivlionkvbPnqY4NCivlionkvoPlpoINCivlionkvanpnZINCivlionkvanntr4NCivlionlkozlvrcNCivlionlnaTnqY4NCivlionlrZ/kvbMNCivlionlrZ/lhqANCivlionlrZ/nv7ANCivlionlrpfmgKENCivlionlrpfokYYNCivlionlrprlrocNCivlionlrpzmmIYNCivlionlrpzlqbcNCivlionlrpvlpoINCivlionlsqHpmbUNCivlionlubjpm6oNCivlionlv6Dli7MNCivlionmgKHkvLYNCivlionmgKHlkJsNCivlionmgKHlkJsNCivlionmgKHlkJsNCivlionmgKHlkowNCivlionmgKHoiqwNCivlionmgKHmg6ANCivlionmgKHpnZwNCivlionmib/mqLoNCivlionmmIwNCivlionmmIzoqqANCivlionmmI7lkIgNCivlionmmI7mnbANCivlionmmI7lk7INCivlionmmI7pgZQNCivlionmmI7pupcNCivlionmmIfpkasNCivlionmnpznj40NCivlionmrKPlnaQNCivlionmrKPmgKENCivlionmrKPojLkNCivlionmrabmtZoNCivlionnjp/miJANCivlionnjqvlr6cNCivlionnqbnmnpcNCivlionoirPlkJ8NCivlionoirPnjrINCivlionoirPomK0NCivlionoiqzoirMNCivlionph4fnnJ8NCivlionph5Hps7MNCivlionpnZLomIsNCivlionkv6Hlro8NCivlionkv6Hoia8NCivlionkv6HptLsNCivlionkv4rlro8NCivlionkv4rlu7cNCivlionkv4roia8NCivlionkv4rmnbANCivlionkv4rmr4UNCivlionkv4rlt5YNCivlionkv5DmooUNCivlionlhqDlpo0NCivlionlhqDoia8NCivlionlhqDpoa8NCivlionli4PlvaUNCivlionlk4HlrpwNCivlionlpZXlv5cNCivlionlp78NCivlionlp7/lkJ8NCivlionlqIHmsZcNCivlionlqIHmmIwNCivlionlu7rmsJENCivlionlu7rlro8NCivlionlu7rlro8NCivlionlu7rmnZENCivlionlu7roia8NCivlionlu7rmmI4NCivlionlu7rlvrcNCivlionlu7rnlLoNCivlionlvaXlkJsNCivlionlvaXlu7cNCivlionlvaXoia8NCivlionlvaXljZoNCivlionlvovmmI4NCivlionmgJ3mvZQNCivlionmgarkuroNCivlionmlL/li7MNCivlionmmK3lpoINCivlionmmKDnp4ANCivlionmmLHovrANCivlionmn4/lro8NCivlionmn4/pup8NCivlionngrrmmI4NCivlionnj4rlpq4NCivlionnj43kvZENCivlionnm4jlpoINCivlionnm4jnp4ANCivlionnm4jomK0NCivlionnp4vmiJANCivlionnp4vnh5UNCivlionnvo7lkJsNCivlionnvo7kvpYNCivlionnvo7njrINCivlionnvo7oj68NCivlionnvr/msZ0NCivlionoi6XorLkNCivlionoi7Hpvo0NCivlionosp7kvLYNCivlionou43mr4UNCivlionpn4vmiJANCivlionlgI3lpoINCivlionkv67mmI4NCivlionlk7LlrocNCivlionlk7Lpg44NCivlionlk7LnkYsNCivlionlrrbmiJANCivlionlrrblro8NCivlionlrrbmmIcNCivlionlrrbnkLMNCivlionlrrblg5YNCivlionlrrbosaoNCivlionlrrbps7MNCivlionlrrbppqgNCivlionlrrnmh78NCivlionls7vkvLYNCivlionls7Dpg6ENCivlionmganlkIkNCivlionmjK/kuK0NCivlionmjK/osaoNCivlionmmYnogrINCivlionmmY/oqqANCivlionmm7jlro8NCivlionmoLnosaoNCivlionmoZDnm5sNCivlionmtZrpipgNCivlionnj67mgKENCivlionnm4rkvLgNCivlionnm4rnpo4NCivlionnpZblr6cNCivlionntKDnjrINCivlionntJTmnY8NCivlionogJXntq0NCivlionou5LlrocNCivlionlgYnnq4sNCivlionlgYnoqqANCivlionlnIvlubMNCivlionlnIvmo58NCivlionlnIvpvo0NCivlionlqYnnjrINCivlionltIfnkIYNCivlionlurfmpZ0NCivlionlvpflhYkNCivlionllZ/lubMNCivlionmlY/nkKoNCivlionmt7Ppm4UNCivlionmt5HoiqwNCivlionmt5Hosp4NCivlionmt5HojokNCivlionmt5Hoj68NCivlionmt5HmhacNCivlionnpaXmsJENCivlionojonnh5UNCivlionlh7HojLkNCivlionljZrmlocNCivlionlr4zmmI4NCivlionmg6DmgKENCivlionmg6DntIsNCivlionmj5rpipgNCivlionmmbrku4ENCivlionmmbrpiJ4NCivlionmnJ3ok64NCivlionmuZjnkKoNCivlionnmpPlr6cNCivlionoiJLmhYgNCivlionoqaDolocNCivlionpgLjnq7kNCivlionplpTntZANCivlionpm4XlkJsNCivlionpm4XnjrINCivlionpm4Xmg6ANCivlionpm4XokI0NCivlionpm4XmhacNCivlionpm7LpnJ4NCivlionli6TntpMNCivlionmlazmsJENCivlionmr5Pms6INCivlionmupDlgKsNCivlionnkZ7oirMNCivlionnkZ7osaoNCivlionntpPntrgNCivlionoo5Xlro8NCivlionoqanpn7sNCivlionpnZYNCivlionlmInogrINCivlionlmInmt7MNCivlionlmInpm68NCivlionlmInmqLoNCivlionlvbANCivlionmpq7lvrcNCivlionnhpnmhacNCivlionnoqnnqakNCivlionntq3ms7ANCivlionogofptawNCivlionpipjmnZENCivlionpipjovJ0NCivlionps7PoiIgNCivlionlvrfmraMNCivlionlvrfoqqANCivlionmhbbpjq4NCivlionmhafnjrINCivlionmhaflqbcNCivlionmhafnk48NCivlionnkanlqJ8NCivlionos6LnhpINCivlionpnIfptLsNCivlionmhrYNCivlionmm4noiqwNCivlionmm4nnkKoNCivlionmm4nmqLoNCivlionmqLnolZkNCivlionnh5XokI0NCivlionnkp/pi5INCivlionnqY7okqgNCivlionoiIjlrrYNCivlionolZnnkYQNCivlionpjKbloIINCivlionpjKbptLsNCivlionpnZzoirMNCivlionpnZzoj68NCivlionpvo3lsbENCivlionniLXntq0NCivlionpjb7pnJYNCivlionptLvpnJYNCivlionnkqfnkakNCivlionpjq7lmIkNCivlionngJrpmb0NCivlionpn7vnkKYNCivlionpupfmg6ANCivlionlr7blqbcNCivlionogIDljYcNCivlionora/ogbANCivlionngYzovJ0NCivlionmh7/mhacNCivlionorprlmLsNCivlionml7vnj4oNCivlionlp7XlmIkNCivlionmjJANCivlionnv4rpgqENCivlionnkYvnjrINCivlionnrbHmhacNCivlionngIXpqL8NCivljrLmlozkuK0NCivmqIrkuYPlmIkNCivmqIrkv67pvo0NCivmqILlrZDpp78NCivmrZDlo6vmupANCivmrZDkuJbmtIsNCivmrZDlpoLnqIsNCivmrZDlv5fnm4gNCivmrZDpgqboj68NCivmrZDlrpfljp8NCivmrZDmgKHnp4ANCivmrZDmmIDkv64NCivmrZDplbfmmY8NCivmrZDkv4rlvaUNCivmrZDlu7rmsJENCivmrZDmlL/oibcNCivmrZDnvo7nkakNCivmrZDlqInlpqYNCivmrZDmm7josaoNCivmrZDmt5Hlp78NCivmrZDpgLjpnZINCivmrZDpmb3mnInmhacNCivmrZDpmb3njqsNCivmrZDpmb3mg6DlpoINCivmrZDpmb3pipjmlocNCivmrZDpmb3lv7vmhrYNCivmrZDmpq7mnbANCivmrZDnqY7lkJsNCivmrZDnuZXlmIkNCivmvZgNCivmvZjlhYHku4ENCivmvZjmlofoj68NCivmvZjmraPlhYMNCivmvZjnjonmg6ANCivmvZjkuqbolb4NCivmvZjmiJDlr4wNCivmvZjlro/lrpcNCivmvZjlv5flgYkNCivmvZjnp4Dnm4gNCivmvZjkvbPlpqQNCivmvZjkvanlkJsNCivmvZjlrpfoo5UNCivmvZjlu7bovJ0NCivmvZjmgKHlkJsNCivmvZjmgKHnkb4NCivmvZjmmI7mpbcNCivmvZjnjp/mqLoNCivmvZjkuq7lpoINCivmvZjkv6Hnv7ANCivmvZjkv4roia8NCivmvZjlhqDlro8NCivmvZjlk4HmvZQNCivmvZjlqIHmrbcNCivmvZjlu7rmiJANCivmvZjlu7rlvbANCivmvZjlvaXok4kNCivmvZjmlL/nt68NCivmvZjmn5TogIMNCivmvZjnj43nkKoNCivmvZjnvo7njrINCivmvZjov7DmnbENCivmvZjlrrbpipgNCivmvZjms7DlhagNCivmvZjog73lk7INCivmvZjlqYnokI0NCivmvZjmt5Hpm68NCivmvZjmg6DlqJ8NCivmvZjpgLLnm4oNCivmvZjpm4XppqgNCivmvZjnkZ7pppkNCivmvZjoo5XmmboNCivmvZjnnb/lk7INCivmvZjlhIDmgawNCivmvZjmhafmlY8NCivmvZjlhJLnkakNCivmvZjpjKbmmIwNCivmvZjptLvpipgNCivmvZjpupfokI0NCivmvZjlp7XlpoINCivmvZjpiLrmn5QNCivmu5Xmhrbpm68NCivnt7Tlu7rkvLgNCivolKPkuK3ooY0NCivolKPmraPnpo8NCivolKPmsZ3lrokNCivolKPmsobnpaUNCivolKPkvbPnj4oNCivolKPkvanppJgNCivolKPlrZ/lhJINCivolKPlrpzpnZwNCivolKPmgKHmhacNCivolKPmmI7lhJINCivolKPplbfml7sNCivolKPmlL/nqY4NCivolKPnj67ms6ANCivolKPmt5HmhacNCivolKPokI0NCivolKPokabnq4sNCivolKPlvrfmiY0NCivolKPmv7Hlt54NCivolKPogIDmr4UNCivolKHkuIHntpPlk7INCivolKHlo6vml7oNCivolKHlrZDmgKENCivolKHkuK3piJ4NCivolKHku4HlgYkNCivolKHlhYPmraMNCivolKHlhYPpm4QNCivolKHlpKnnpboNCivolKHmlofku4ENCivolKHmloflvaUNCivolKHmloflgYkNCivolKHmlofljZoNCivolKHmlofmrL0NCivolKHmloflmIkNCivolKHmlofptLsNCivolKHmnIjnj6ANCivolKHkuJbmnbANCivolKHkuJbptLsNCivolKHlt6flpoINCivolKHlvJjljp8NCivolKHmraPlrpcNCivolKHmraPmmokNCivolKHmsLjlvawNCivolKHmsLjnkakNCivolKHnjonnp4sNCivolKHnjonoj4ENCivolKHnq4voiqwNCivolKHkuqbpm68NCivolKHku7Llr6cNCivolKHlhYbpqYoNCivolKHlkI3mm7gNCivolKHlpoLlqbcNCivolKHlroflgKsNCivolKHlronllqwNCivolKHml63mm5wNCivolKHnvr3lrrkNCivolKHooYznnJ8NCivolKHkvK/ptLsNCivolKHlkJvmr4UNCivolKHlro/mlocNCivolKHlro/ln7kNCivolKHlu7fnqY4NCivolKHlv5flro8NCivolKHlv5fmmI4NCivolKHlv5fmmYMNCivolKHlv5fmj5oNCivolKHlv5fntq0NCivolKHlv5fptLsNCivolKHmsoHnjrINCivolKHmspvlqbcNCivolKHmsbbptLsNCivolKHnp4DnjrINCivolKHnp4Dmg6ANCivolKHogrLmraMNCivolKHogrLlvaUNCivolKHogrLnnJ8NCivolKHogrLli7MNCivolKHosp3nj4oNCivolKHkuqvnv7ANCivolKHkvp3nj4oNCivolKHkvp3lrrkNCivolKHkvp3pvaENCivolKHkvbPkvLYNCivolKHkvbPlro8NCivolKHkvbPoia8NCivolKHkvbPmrKMNCivolKHkvbPoiqwNCivolKHkvbPnjrINCivolKHkvbPnj40NCivolKHkvbPlrrkNCivolKHkvbPnnJ8NCivolKHkvbPoiKoNCivolKHkvbPnkLMNCivolKHkvbPok4kNCivolKHkvbPmqLoNCivolKHkvbPnqY4NCivolKHkvbPpnJYNCivolKHkvbPnpL0NCivolKHkvanlpoINCivolKHkvanlkJsNCivolKHkvanlpqQNCivolKHkvanoirMNCivolKHkvanoiqwNCivolKHkvannj4oNCivolKHkvannj4oNCivolKHkvannjrINCivolKHkvanlqKUNCivolKHkvanntIsNCivolKHkvanok4kNCivolKHkvannqY4NCivolKHkvanpnZwNCivolKHkvpHlu7cNCivolKHlhbbnj64NCivolKHljZTnlKsNCivolKHlj5fli7MNCivolKHlnaTkvZENCivolKHlnaTpm4QNCivolKHlnaTpjKYNCivolKHlpYflnYcNCivolKHlpYfpnJYNCivolKHlrZ/lkJsNCivolKHlrZ/ogrINCivolKHlrZ/oirMNCivolKHlrZ/np4sNCivolKHlrZ/lk7INCivolKHlrZ/nnJ8NCivolKHlrZ/pm4QNCivolKHlrZ/lhJINCivolKHlrZ/mqLoNCivolKHlrZ/oq60NCivolKHlraPnjrINCivolKHlrpfkvZENCivolKHlrpflv5cNCivolKHlrpfnjqsNCivolKHlrpfnm4oNCivolKHlrpfpgZQNCivolKHlrpflhJINCivolKHlrpfmhrINCivolKHlrpfnqY4NCivolKHlrpfnv7ANCivolKHlrpfpnJYNCivolKHlrpzlkJsNCivolKHlrpzlu7cNCivolKHlrpzoirMNCivolKHlrpznj4oNCivolKHlrpzlgKkNCivolKHlrpznnJ8NCivolKHlrpzok4kNCivolKHlrpzpnJYNCivolKHlrpzok4ENCivolKHlrpvnjrINCivolKHlrpvoq60NCivolKHlsJrlsrMNCivolKHlsJrnqY4NCivolKHlsrHli7MNCivolKHlsrPmm7gNCivolKHlubjlpoINCivolKHlubjmgYYNCivolKHlubjmt7MNCivolKHlvKbosaoNCivolKHlv6Dkv6ENCivolKHlv6DnqY4NCivolKHmgKHlkJsNCivolKHmgKHokI0NCivolKHmib/mmIoNCivolKHmib/nkosNCivolKHmib/nv7ANCivolKHmmJPkuqgNCivolKHmmJPpmZ4NCivolKHmmJPmhrINCivolKHmmIzlrocNCivolKHmmIzlhJINCivolKHmmIbkvZENCivolKHmmI4NCivolKHmmI7msY4NCivolKHmmI7lro8NCivolKHmmI7mnYkNCivolKHmmI7lrpcNCivolKHmmI7oirMNCivolKHmmI7lgKsNCivolKHmmI7lk7INCivolKHmmI7ls7ANCivolKHmmI7ojLUNCivolKHmmI7mrL0NCivolKHmmI7okrINCivolKHmmI7os5wNCivolKHmmI7mhrINCivolKHmmI7nqY4NCivolKHmmI7pvo0NCivolKHmmIDnlKsNCivolKHmmIfkvK8NCivolKHmmIfnqY4NCivolKHmnbHmmI4NCivolKHmnbHnqY4NCivolKHmnbDlv5cNCivolKHmnb7mn48NCivolKHmnb7pnJYNCivolKHmrKPmgKENCivolKHmrKPlgKsNCivolKHmrKPpgZQNCivolKHmrKPnqY4NCivolKHmraboq7oNCivolKHniafli7MNCivolKHnm7Tli7MNCivolKHnp4nmmIYNCivolKHnp4nnkosNCivolKHnp4noq60NCivolKHoirPmtLUNCivolKHph4foirMNCivolKHph5Hls7ANCivolKHph5Hpvo0NCivolKHplbfmpq4NCivolKHpm6jmvZQNCivolKHpnZLls7ANCivolKHkv6Hoia8NCivolKHkv4rmmY8NCivolKHkv4ros6INCivolKHlk4HlhIANCivolKHlrqXlrpoNCivolKHlu7roo5UNCivolKHmgJ3mjbcNCivolKHmlL/lro8NCivolKHmlL/oqIANCivolKHmlL/lk7INCivolKHmlL/nvqQNCivolKHmlL/li7MNCivolKHmlL/nv7ANCivolKHmlL/pvo0NCivolKHmmK3pvo0NCivolKHmn4/mr4UNCivolKHnjrLmtKUNCivolKHnprnmrYYNCivolKHntIDmupANCivolKHnvo7oip0NCivolKHnvo7ojokNCivolKHnvo7mhacNCivolKHoi7HlrpcNCivolKHpg4HlkJsNCivolKHpn4vlv5cNCivolKHlh4zps7MNCivolKHlqJ/lqJ8NCivolKHlrrboj68NCivolKHlrrnnkZsNCivolKHmgoXnjp8NCivolKHmjK/orbANCivolKHmoKnntq0NCivolKHnj67mgKENCivolKHnnJ/nppUNCivolKHntKDnoqcNCivolKHojLnojLUNCivolKHlgYnmnbANCivolKHlnIvmiYsNCivolKHlnIvogZYNCivolKHln7nora8NCivolKHltIfmsJENCivolKHllZ/loIINCivolKHmt7vmlocNCivolKHmt5HlpoMNCivolKHmt5HmgKENCivolKHmt5HnjrINCivolKHmt5HnnJ8NCivolKHmt5Hmg6ANCivolKHmt5HnkZwNCivolKHmt5HolocNCivolKHnm5vli7MNCivolKHpm6rljb8NCivolKHli53pm4QNCivolKHljZrlhagNCivolKHllqzlrokNCivolKHlr4zosrQNCivolKHmg6DlpoINCivolKHmg6Dnvo4NCivolKHmg6DnkKoNCivolKHmg6Dnh5UNCivolKHmma/mt5ENCivolKHmmbrlro8NCivolKHmmbrmmpANCivolKHmuZjmgKENCivolKHnmpPmmI4NCivolKHoiJLlrocNCivolKHoj4Hoj4ENCivolKHoqaDnv5QNCivolKHpgLjnj4oNCivolKHpgLLmmIwNCivolKHpmobms7ANCivolKHpm4XlkJsNCivolKHpm4XoiqwNCivolKHpm4XojLkNCivolKHpm4Xmg6ANCivolKHpm4Xoj4ENCivolKHpm4XmhacNCivolKHpm6/mt4cNCivolKHlgrPlvrcNCivolKHmpajnkZwNCivolKHmr5PpnJYNCivolKHnkZ7mlocNCivolKHnkZ7ls7ANCivolKHnkZ7pupINCivolKHnvqnnm4oNCivolKHoo5XlgaUNCivolKHoqanolo8NCivolKHlmInku4ENCivolKHlmInmgYYNCivolKHlmInnq6ANCivolKHlmInmhbYNCivolKHmpq7mmIwNCivolKHmpq7os6INCivolKHmvKLnvqkNCivolKHnoqflrrkNCivolKHnpo/mmY8NCivolKHntq3njrINCivolKHntq3ok4ENCivolKHoo7TkvLYNCivolKHpipgNCivolKHpipjls7ANCivolKHpipjos6INCivolKHps7PlhIANCivolKHlvrXpnJYNCivolKHmhafmsJENCivolKHmhafosp4NCivolKHmhafokLENCivolKHmr4Xou5INCivolKHos6LnmocNCivolKHlrbjmlocNCivolKHmhrbpiLQNCivolKHmm4nnhLYNCivolKHmvqTpipgNCivolKHnqY7nrrQNCivolKHnv7DnhooNCivolKHolZnlqbcNCivolKHpjKblnaENCivolKHpnZzlrpwNCivolKHpnZzmg6ANCivolKHpvo3lhIANCivolKHnv7zlpoINCivolKHptLvmsJENCivolKHptLvmlowNCivolKHnkqflhYkNCivolKHosZDmlocNCivolKHosZDmnbANCivolKHpjq7ltr0NCivolKHptZHlvYwNCivolKHnk4rlhIANCivolKHpupfoirMNCivolKHpupfmg6ANCivolKHnjbvmr4UNCivolKHogIDnvqQNCivolKHogIDpp5INCivolKHppqjlhIANCivolKHkvbboiIgNCivolKHml7voirMNCivolKHml7vmhrINCivolKHnkITnq7kNCivolKHmrYbmgKENCivolKHnkYvnq5ENCivolKHnt7YNCivolKHpkavlu7cNCivoq4fmmK3omK0NCivphK3kuIDlh6ENCivphK3kuYPkvbMNCivphK3kurrlhYMNCivphK3lipvku4ENCivphK3lj4jku4ENCivphK3lo6vpn4sNCivphK3lrZDoposNCivphK3lsI/ltZANCivphK3lsLnmlq8NCivphK3ku4Hlr4wNCivphK3lhYPlrZ0NCivphK3lhYPnkZwNCivphK3lj4voqqANCivphK3lv4PlpoINCivphK3mlofmraMNCivphK3mloflvawNCivphK3mloflr4wNCivphK3mloflmIkNCivphK3mnIjmnp0NCivphK3kuJbmmIwNCivphK3kuJbmuZgNCivphK3ku5XpkasNCivphK3lt6fpnZINCivphK3lvJjlgYkNCivphK3mraPoqqANCivphK3msLjmtKUNCivphK3njonkvLYNCivphK3njonoi7ENCivphK3njonoj4ENCivphK3nq4vkuqsNCivphK3kupnlkJ8NCivphK3kvIrnnJ8NCivphK3ku7Llro8NCivphK3ku7Los6INCivphK3lhYnkvZENCivphK3lhYnmt7MNCivphK3lhYblnYcNCivphK3lhYjokIwNCivphK3lkInkvZENCivphK3lkI/lrZwNCivphK3lkIjkv64NCivphK3lpJnmtrUNCivphK3lpoLmrKMNCivphK3lpoLntJQNCivphK3lroflro8NCivphK3lrofmt6gNCivphK3lrojmnbENCivphK3lronoirgNCivphK3lronnv5QNCivphK3miJDmo6ANCivphK3ml63nm5sNCivphK3mnInosqENCivphK3nmb7lqbcNCivphK3nvr3mmbQNCivphK3oh7PliZsNCivphK3kvK/ljZcNCivphK3lkJvpgZQNCivphK3lro/mmI4NCivphK3lv5flip8NCivphK3lv5flgYkNCivphK3lv5fpvo0NCivphK3np4DmgKENCivphK3np4DlqJ8NCivphK3np4DmhacNCivphK3ogrLmmIcNCivphK3osp3lpoINCivphK3kvbPlrpwNCivphK3kvbPnpaUNCivphK3kvbPlhIANCivphK3kvannj4oNCivphK3lhbbpm68NCivphK3lrZ/njrINCivphK3lrpfmnbANCivphK3lrpzoirMNCivphK3lubjlrpwNCivphK3mgKHlkJsNCivphK3mgKHlqbcNCivphK3mmIzlsrMNCivphK3mmI7lv6ANCivphK3mmI7pipMNCivphK3mrKPlpoINCivphK3mrKPmpq4NCivphK3np4nms5MNCivphK3oirjoirgNCivphK3plbflv5cNCivphK3kv4rlro8NCivphK3li4fnjJsNCivphK3lu7rkvbMNCivphK3lvaXpgZQNCivphK3mmKXoj4oNCivphK3nnIHmnZENCivphK3nvo7njokNCivphK3nvo7nkLQNCivphK3oi6XnkKQNCivphK3ov6rlhYENCivphK3lgKnlpoINCivphK3lrrblhbgNCivphK3lrrbpipgNCivphK3mjK/lrpwNCivphK3mm7jpiLoNCivphK3nj67lkJsNCivphK3npZDpmKENCivphK3ntKDlvawNCivphK3ojJfogbANCivphK3lgYnnj4oNCivphK3lnIvmraMNCivphK3lnIvnpaUNCivphK3ln7nogbANCivphK3ltIfkvZENCivphK3mg5/lv4MNCivphK3llZ/mpq4NCivphK3mooXlkJsNCivphK3muIXkv4oNCivphK3mt5HkupENCivphK3mt5HnsbMNCivphK3mt5HnjrINCivphK3mt5HlqbcNCivphK3mt5Hnh5UNCivphK3mt7Xol6QNCivphK3npaXlpoINCivphK3ojonpm68NCivphK3lgpHlhYMNCivphK3lh7Hku4ENCivphK3lh7HlhYMNCivphK3lh7HmlocNCivphK3lh7HogrINCivphK3lh7HptLsNCivphK3li53ml60NCivphK3ljZrku4ENCivphK3ljZrmlocNCivphK3llqzpipgNCivphK3lqbfmlocNCivphK3lr4zku4ENCivphK3lsIrlrZ0NCivphK3mg6DmlocNCivphK3mg6DlkJsNCivphK3mg6DntIsNCivphK3mg6DpnJwNCivphK3mlq/lsLkNCivphK3mma/ku4ENCivphK3mma/mlocNCivphK3mma/pmoYNCivphK3mmbrku4ENCivphK3mmbrlhYMNCivphK3mmbrmmIwNCivphK3mmbrosaoNCivphK3mnJ3lhYMNCivphK3mnJ3nh58NCivphK3mpI3lr7ANCivphK3muZjmmIANCivphK3nmpPkupENCivphK3nqIvorbANCivphK3ntbLpm68NCivphK3nv5Tpvo0NCivphK3oiJLolYoNCivphK3oqaDku4ENCivphK3oqZTorJkNCivphK3pgLjlq7sNCivphK3plpTptLsNCivphK3pm4XkupENCivphK3pm4Xlj4sNCivphK3pm4XmlocNCivphK3pm4XlpoMNCivphK3pm4XoiqwNCivphK3pm4XlqJ8NCivphK3pm4XnkKoNCivphK3pm4XnlIQNCivphK3pm4Xpu5sNCivphK3pm7LptawNCivphK3mhI/kuK0NCivphK3mlazmqLoNCivphK3mr5PpvaENCivphK3nkZ7nvo4NCivphK3nkZznkLMNCivphK3nvqnmhrINCivphK3ogZbos6INCivphK3oo5XlubQNCivphK3oqanmhacNCivphK3lmInku4ENCivphK3lmInmj5oNCivphK3lmInml7sNCivphK3mpq7lqJ8NCivphK3npo/lkowNCivphK3ogoflv4MNCivphK3pipjms7ANCivphK3ps7PpvaENCivphK3mhbblk7INCivphK3mhafoirMNCivphK3mhafpjoINCivphK3olJron6wNCivphK3mhrLlrZgNCivphK3mm4nmgKENCivphK3mm4nolocNCivphK3nqY7pipMNCivphK3olZnnkKYNCivphK3pnJbpp78NCivphK3pnZzoirMNCivphK3mh4vlgpENCivphK3orJ3lhqANCivphK3ptLvmupANCivphK3osZDlmIkNCivphK3pupflkJsNCivphK3njbvmlocNCivphK3ml7vou5INCivphK3nkIfku4ENCivphK3ln7UNCivphK3ntZzlv4MNCivphK3nkYvpmoYNCivphK3piLrpkJgNCivphK3pnYsNCivphKfljYfmlaYNCivphKfmloflhIANCivphKfmsLjlv6ANCivphKfkvIrlrrkNCivphKflkI7nkJsNCivphKfml63mlaYNCivphKflv5fnhYwNCivphKfkvbPnjrINCivphKflrpzmrKMNCivphKfmmI7oirMNCivphKfph5HptLsNCivphKfnp4vmg6ANCivphKfmjK/oi7ENCivphKflgYnos6INCivphKfmt5HnjrINCivphKfljZrku4ENCivphKfmg6DmlocNCivphKfmma/pvo0NCivphKfnv5Tku4ENCivphKfpm4Xlv4MNCivphKfpoIblsZUNCivphKfoo5XppqgNCivphKfnpo/pmoYNCivphKfpnIflrocNCivphKfnqY7pp78NCivphKfliqblkYgNCivpra/lv6DosaoNCivpra/mhrLpm7INCivpu47kuJblu4kNCivpu47lroflrrkNCivpu47mmI7lgKsNCivpu47kv5DlnYcNCivpu47lrrbkvLYNCivpu47lqYnlhIANCivpu47nhaXlhYMNCivpu47pipjku4ENCivpu47npq7mmboNCivnm6fkuInku4ENCivnm6fku4HmnbANCivnm6fmloflv6ANCivnm6fmlofmmZ8NCivnm6flvJjmtbcNCivnm6fmsLjmmIcNCivnm6fnlLPms7ANCivnm6flkInli4cNCivnm6flkYjoirMNCivnm6flv5flv6ANCivnm6flv5fono0NCivnm6fogrLogZYNCivnm6fkvbPmg6ANCivnm6flj5TmrKMNCivnm6flrprlnYcNCivnm6flu7boj68NCivnm6fmgKHkvLYNCivnm6fmgKHmtrUNCivnm6fmib/mpa0NCivnm6fmrKPlrpwNCivnm6fnjqvlpo8NCivnm6fpm6jmtrUNCivnm6fkv53lhagNCivnm6fkv4roqIANCivnm6fkv4rlhJINCivnm6flhqDmm4QNCivnm6flpY7kvK8NCivnm6flqIHpnJYNCivnm6flu7rlro8NCivnm6flu7rpipgNCivnm6fmgJ3mupANCivnm6fmmJ/lhagNCivnm6fmn4/oia8NCivnm6fnm4jlro8NCivnm6fnvo7lpoINCivnm6foi7Hku4ENCivnm6fpn4vku4ENCivnm6flrrbpiLoNCivnm6fnpZbnv5QNCivnm6flqYnnkZwNCivnm6fmt5HpupcNCivnm6fmg6DlgpENCivnm6fotoXnvqQNCivnm6fmhLfojokNCivnm6fnvqTogrINCivnm6flmInmjK8NCivnm6flvrfoirMNCivnm6fmhaflrpwNCivnm6fovJ3lsZUNCivnm6fnqY7lv5cNCivnm6fpvo3nlJ8NCivnm6fpn7vlspENCivnm6forb3lhYENCivnm6fnrbHnkakNCivnqYbnvo7olZkNCivola3kurrosaoNCivola3lo6vms7ANCivola3lsLnosp4NCivola3lhYHms7ANCivola3mlofmrKMNCivola3mlofnrYYNCivola3mlofprYENCivola3kuJbmsJENCivola3ku6Xkuq4NCivola3mraPlubMNCivola3msLjms5MNCivola3njonosp4NCivola3nq4vpn4sNCivola3kuqbntq0NCivola3ku7Llv5cNCivola3lhYbnkLMNCivola3lkI3msoINCivola3lnK3lppkNCivola3lpoLnj4oNCivola3lrofkvK8NCivola3lronlu7cNCivola3mnInlro8NCivola3ogb/lro8NCivola3lkJvmgKENCivola3lro/oo5UNCivola3lv5fnvr0NCivola3lv5fosaoNCivola3np4Dmg6ANCivola3ogrLpmoYNCivola3kvbPmgowNCivola3kvannj4oNCivola3lraPolocNCivola3lsJrmlocNCivola3mgKHoirMNCivola3mmIblu7cNCivola3mrKPmgKENCivola3oirPnm4gNCivola3pnZLokI0NCivola3kv4ros6INCivola3lvaXlvbANCivola3mn4/ou5INCivola3nvo7lqJ8NCivola3ov7Dku4ENCivola3lpI/mlY8NCivola3mjK/lrokNCivola3nj67lpoINCivola3oqJPlnIsNCivola3lnIvmraMNCivola3lnIvlr7YNCivola3ltIfoq5YNCivola3mlY/lvaUNCivola3muIXnh5UNCivola3mt5Hnj40NCivola3mt5HnqY4NCivola3pm6rlkJ8NCivola3lh7Hmh4sNCivola3ljZrku4ENCivola3ljZrku7ANCivola3lr4zlhYMNCivola3mg6DlhYMNCivola3mg6DoirMNCivola3mg6DphIkNCivola3mlpDlpoINCivola3mma/ogbANCivola3mmbrmooUNCivola3mo4vlhYMNCivola3nq6PptLsNCivola3oqaDmlrkNCivola3pgLjlubMNCivola3pm4XkuLkNCivola3pm4XmlocNCivola3pm4XojokNCivola3pm6/lv4MNCivola3mhJvnjrINCivola3nhaXnt68NCivola3nkZvml5cNCivola3ogZbmqLoNCivola3oqannkocNCivola3lmInnkKoNCivola3lr6flkJsNCivola3ntq3lgKkNCivola3ovJTlvaUNCivola3pipjmrIoNCivola3mhafmgKENCivola3nkannnJ8NCivola3mhrbomK0NCivola3nv7Doi7ENCivola3pnZzlrpwNCivola3osZDmmboNCivola3pupflqJ8NCivola3ptrTou5INCivola3nkK7nv7ANCivola3mqonorYENCivos7TkuYPpoIwNCivos7Tlo6votoUNCivos7Tku4HnpZANCivos7TlpKnptLsNCivos7Tmlofoi7ENCivos7Tmlofoj68NCivos7TkuJbmmIwNCivos7TkuJbntq0NCivos7Tlj6/mgakNCivos7TlvJjnkpgNCivos7TmraPph44NCivos7TmsLjpiLQNCivos7TnjonllJANCivos7TnjonpnJwNCivos7Tkuqbosp4NCivos7TlpoPlkJsNCivos7Tml63lvaUNCivos7TkvK/lqIENCivos7TlppnlrqMNCivos7Tlro/mmIwNCivos7Tlu7fnprkNCivos7Tlv5fmmIwNCivos7Tlv5flgYkNCivos7Tlv5fntrENCivos7TmnY/lhJINCivos7Tnp4DmmKUNCivos7TogrLlu7cNCivos7TogrLpup8NCivos7TkvbPkvLYNCivos7TkvbPmrKMNCivos7TkvbPmhacNCivos7TkvanlkJsNCivos7Tlhbbkuq4NCivos7TlrZ/oj68NCivos7TlrpfoqqANCivos7TlrpzkvbMNCivos7TlsYXmraMNCivos7TmgKHmlocNCivos7TmgKHkvLYNCivos7TmgKHlkJsNCivos7TmgKHmrKMNCivos7TmgKHmqLoNCivos7TmmIzlvaUNCivos7TmmI7lro8NCivos7TmmI7lvrcNCivos7TmnbHlu7YNCivos7TmrKPlrpwNCivos7TmrabmuqoNCivos7TnjqvlpoINCivos7ToirPlu7YNCivos7TplbfkvZENCivos7Tkv6HlhYkNCivos7Tkv6HoqqANCivos7Tkv4rlhYYNCivos7Tkv4rlro8NCivos7Tkv4rmnbANCivos7Tkv4rpgZQNCivos7Tkv5DljYkNCivos7TlhqDlro8NCivos7Tli4flv5cNCivos7TlpZXluIYNCivos7Tlp7/lnYcNCivos7TlqIHlnYcNCivos7TlrqPlpqQNCivos7Tlu7rlkIgNCivos7Tlu7rkvZENCivos7Tlu7rlv5cNCivos7Tlu7rpm4QNCivos7Tlu7rono0NCivos7TlvaXkvZANCivos7TlvaXoia8NCivos7TlvaXmqLoNCivos7TmgJ3pnJYNCivos7TmlL/lr6wNCivos7TmmK3lhYkNCivos7TmmK3pvo0NCivos7TmmLHli5sNCivos7Tmn4/kvLgNCivos7Tmn4/pvo0NCivos7Tnj4Dos6INCivos7Tnm4jpnZINCivos7Tnp5HljbANCivos7TntIXpnJ4NCivos7Tnvo7lhqANCivos7Tnvo7pjLUNCivos7TojILlu7cNCivos7TombnkvLYNCivos7Tou43oiIkNCivos7Tpg4Hpm68NCivos7Tpn4vpgZQNCivos7TlrrblvJgNCivos7TmjK/nlJ8NCivos7TmtanosZANCivos7Tnp6nlhYkNCivos7Tpq5jlv5cNCivos7TlnIvmgakNCivos7Tln7rmt6UNCivos7TllZ/mupANCivos7Tmt5HmgKENCivos7Tmt5Hosp4NCivos7Tmt5HokI0NCivos7Tojonpm68NCivos7Tmg6DlkJsNCivos7TmhInoirMNCivos7TmrL3oqa4NCivos7TosrTnvqkNCivos7TpmoblubMNCivos7Tpm4XnkLQNCivos7TpoIbmjK8NCivos7TmupDmt7MNCivos7TnvqnkuK0NCivos7TokabluIYNCivos7TpnZblrpwNCivos7TlmInmhacNCivos7Tmpq7nkokNCivos7Tntq3lu7cNCivos7Tpipjnm7gNCivos7Tlop7ogbANCivos7TmhbbpipgNCivos7TmhaflqJ8NCivos7TmvZToirMNCivos7Tpi5INCivos7Tmm4nmpZMNCivos7TnqY7ovJ0NCivos7TpjKblhIQNCivos7TpnZznkocNCivos7TptLvpipgNCivos7Tpn7vlpoINCivos7TpupcNCivos7Tpupfpm68NCivos7ToioPlkJsNCivos7Tmn4rmo4sNCivos7TnkYvmmIANCivos7TpnIjlhJINCivpgbLlsJrmrIoNCivpjKLku6XmgawNCivpjKLoia/olZkNCivpjKLmrKPlrpwNCivpjKLlqIHono0NCivpjKLpg4HomIsNCivpjKLpgLjpnJYNCivpjKLlvrfkv4oNCivpjKHmg6Dpm68NCivplrvmg6DnjrINCivpnI3ojpjnkZwNCivpp7HmsLjlu7oNCivpp7HlraPlubMNCivpp7HoirPmoqcNCivpp7Hlu7rlkYgNCivpp7HooY3pvo0NCivpp7HlmInmhbYNCivprpHooYzku4ENCivprpHlnIvls7ANCivpvo3np4Dosp4NCivpvo3mmJ/lhYYNCivlhLLkuo7otoUNCivmh4nlv5flro8NCivmiLTkuZnoj4ENCivmiLTlpKfpiJ4NCivmiLTlhYPliKkNCivmiLTmlofpm4QNCivmiLTmraPlubMNCivmiLTnq4vkuroNCivmiLTlhajliKkNCivmiLTlrojmraMNCivmiLTkvZHmtLINCivmiLTlkYjlrokNCivmiLTlro/kuJ4NCivmiLTlv5fmmIcNCivmiLTmnY/oirMNCivmiLTkvbPlubMNCivmiLTlraPlhagNCivmiLTmgKHosp4NCivmiLTmmI7nj6ANCivmiLTkv4rnt68NCivmiLTnp4vpppkNCivmiLTpg4HoirMNCivmiLTmjK/pgaANCivmiLTlnIvoia8NCivmiLTmg5/mnIkNCivmiLTojokNCivmiLTmo67lnLANCivmiLTpm4XlpoINCivmiLTlgrPlrrYNCivmiLTnkZ7lkJsNCivmiLTnvqTls7ANCivmiLTlmInlro8NCivmiLTlmInmhrINCivmiLTntq3kvLgNCivmiLTlop7nkZwNCivmiLTos6LnpaUNCivmiLTpnZzlhIANCivmiLTlv57oh7sNCivmiLTolo/nj4oNCivnuYbkv6HlrocNCivolpvkuYPlhYENCivolpvkuLnmoYINCivolpvkuJbnhYwNCivolpvnjonpi5INCivolpvlhYnnqIsNCivolpvlpoLlkJsNCivolpvnmb7mg6ANCivolpvlv5flro8NCivolpvkvp3okqgNCivolpvlubjlmIkNCivolpvmmIfml60NCivolpvlpZXpvo0NCivolpvnvo7oirMNCivolpvlsZXnq4sNCivolpvlgYnkvK8NCivolpvmt5HpnZYNCivolpvlh7HmlocNCivolpvlnI3kuK0NCivolpvmma/mlocNCivolpvnq6PntrgNCivolpvpm4XokI0NCivolpvnkZ7nj40NCivolpvlmInpm4QNCivolpvok5PoirMNCivolpvlhJLpnJkNCivolpvpn7vlqbcNCivolpvpiLrnnJ8NCivorJ3kuo7mq7sNCivorJ3lsI/mooUNCivorJ3ku4Hlk7INCivorJ3lhYPosrQNCivorJ3lv4Ppm4UNCivorJ3mloflqJ8NCivorJ3mlofloK8NCivorJ3mlofnkZwNCivorJ3mlofmlowNCivorJ3ku6XmrKMNCivorJ3lvJjkuq4NCivorJ3mraPnm4oNCivorJ3msLjkv6ENCivorJ3njonnj6ANCivorJ3nq4vnvqQNCivorJ3lhYnkuK0NCivorJ3lkInosZANCivorJ3lpoLptLsNCivorJ3miIzlmIkNCivorJ3ogb8NCivorJ3kvZDlrpwNCivorJ3lhYvlvLcNCivorJ3lnYfmr4UNCivorJ3lro/lv6ANCivorJ3lro/nt68NCivorJ3lv5flro8NCivorJ3lv5fmmI4NCivorJ3lv5flgYkNCivorJ3lv5fpgLgNCivorJ3lv5flvrcNCivorJ3mibbpjKYNCivorJ3np4DpnZINCivorJ3np4Dok64NCivorJ3ogrLlqJ8NCivorJ3ogrLpnJYNCivorJ3kup7ltZANCivorJ3kvp3lgKsNCivorJ3kvbPmlocNCivorJ3kvbPlro8NCivorJ3kvbPoirMNCivorJ3kvbPlgKkNCivorJ3kvbPntJQNCivorJ3kvbPpm68NCivorJ3kvbPnqY4NCivorJ3kvbPmq7sNCivorJ3kvanlkJsNCivorJ3kvanoirMNCivorJ3kvannj4oNCivorJ3kvannj40NCivorJ3kvannnJ8NCivorJ3kvanok4kNCivorJ3kvpHmm7gNCivorJ3lhbbmlowNCivorJ3lkajnhr4NCivorJ3lnaTmhrINCivorJ3lrZ/lkJsNCivorJ3lrZ/oirgNCivorJ3lrZ/nnJ8NCivorJ3lrZ/mqLoNCivorJ3lrZ/oiqkNCivorJ3lrpfkvZENCivorJ3lrpflrrkNCivorJ3lrpfos6INCivorJ3lrpfmhrINCivorJ3lrpfnv7ANCivorJ3lrpwNCivorJ3lrpzoirMNCivorJ3lrpzlgKsNCivorJ3lrpzlqbcNCivorJ3lrpzoh7sNCivorJ3lrpvnjrINCivorJ3lrpvoq64NCivorJ3lsJrlhJINCivorJ3lubjlrpwNCivorJ3luprnv7ANCivorJ3lv6Dli6QNCivorJ3mgKHlqbcNCivorJ3mib/pgZQNCivorJ3mlrzlj6ENCivorJ3mmJPpnJYNCivorJ3mmIznkb4NCivorJ3mmI4NCivorJ3mmI7lro8NCivorJ3mmI7mnZENCivorJ3mmI7oirMNCivorJ3mmI7lgKsNCivorJ3mmI7mm7gNCivorJ3mmI7mg6ANCivorJ3mmI7mhqwNCivorJ3mmI7mhrINCivorJ3mmI7nv7ANCivorJ3mmI7oq7QNCivorJ3mmIflk7INCivorJ3mnbHmmIcNCivorJ3mnbHmm4kNCivorJ3mnb7mhrINCivorJ3mrKPlro8NCivorJ3mrKPmgKENCivorJ3mrKPph5cNCivorJ3mrKPpnJYNCivorJ3niafpmK4NCivorJ3np4nlrrkNCivorJ3np4noq7oNCivorJ3oip3pnZINCivorJ3ph5Hosp4NCivorJ3plbfljp8NCivorJ3pm6jpnZINCivorJ3pnZLmqLoNCivorJ3kv4rlro8NCivorJ3kv57mnrANCivorJ3lpZXlp50NCivorJ3lvaXlkI8NCivorJ3mlL/nlLcNCivorJ3mlL/pgZQNCivorJ3mlL/nv7ANCivorJ3mn4/oiJ8NCivorJ3nmofnv5QNCivorJ3np4vnh5UNCivorJ3nvo7njrINCivorJ3oh7TnvqQNCivorJ3pg4HnkYQNCivorJ3lrrboj7ENCivorJ3luq3mgakNCivorJ3mmYnos6INCivorJ3mtannhLYNCivorJ3ntKDoj7ENCivorJ3kub7pp78NCivorJ3mm7znm4gNCivorJ3lnIvlvawNCivorJ3lqYnnjrINCivorJ3llZ/mlocNCivorJ3mopPpup8NCivorJ3muIXmtLINCivorJ3mt5HoiqwNCivorJ3mt5HlqJ8NCivorJ3mt5HpiJ4NCivorJ3nmo7nm4gNCivorJ3nrKDlhYMNCivorJ3lh7HlgYkNCivorJ3ljZrnmpMNCivorJ3lqpvnkKoNCivorJ3ltZDlsY8NCivorJ3mg6DoiqwNCivorJ3mg6DokI0NCivorJ3mma/ku4ENCivorJ3mmbrmtakNCivorJ3mpI3lsqENCivorJ3nmpPmmboNCivorJ3oj4rolZkNCivorJ3pgLLlv6ANCivorJ3pm4XlpoINCivorJ3pm4Xpm6oNCivorJ3pm4XokI0NCivorJ3pm6/lh7ENCivorJ3poIbpmoYNCivorJ3mr5PnjrINCivorJ3nkZ7mooUNCivorJ3okKzpvo0NCivorJ3oqanmhacNCivorJ3lmInnj4oNCivorJ3lmInpipgNCivorJ3mpq7lk7INCivorJ3noqfoj4ENCivorJ3ntq3ku4ENCivorJ3nv6DnkrANCivorJ3pipjlv6ANCivorJ3pipjmmboNCivorJ3ps7PnjrINCivorJ3lvrfpiJ4NCivorJ3mhafnj40NCivorJ3mhafnk4oNCivorJ3olJrlhJINCivorJ3lrbjntrENCivorJ3mm4nltZANCivorJ3nh5XnjrINCivorJ3olZkNCivorJ3ono3pvYoNCivorJ3pnZzlrpwNCivorJ3pnZzlhIANCivorJ3nkqblpoINCivorJ3ptLvpp78NCivorJ3npq7miJANCivorJ3pjq7lrocNCivorJ3nk4rmlocNCivorJ3pn7vlhJINCivorJ3lr7bnkaINCivorJ3ogIDppIoNCivorJ3poa/pipgNCivorJ3ml7vojokNCivorJ3mmZ/pipgNCivorJ3nhZLpoLsNCivorJ3nh7/ogbANCivpjb7kuZnmsJENCivpjb7lhYPmjK8NCivpjb7mloflrocNCivpjb7mlofmrL0NCivpjb7mnIjlnJMNCivpjb7lubzlh4wNCivpjb7msLjpm4QNCivpjb7njonmg6ANCivpjb7lhYbmsJENCivpjb7miJDlpYcNCivpjb7kvK/lkJsNCivpjb7lrZ3lhbYNCivpjb7lv5flro8NCivpjb7lv5fosaoNCivpjb7np4DoirMNCivpjb7ogrLoq7oNCivpjb7kvp3pnZwNCivpjb7kvbPnnJ8NCivpjb7kvbPnqY4NCivpjb7kvanoirgNCivpjb7kvanlqbcNCivpjb7ljZPlhJINCivpjb7lrZ/mhqwNCivpjb7lrpzlhagNCivpjb7lrpzoiIgNCivpjb7lsJrlhJINCivpjb7lu7boj68NCivpjb7mib/nkosNCivpjb7mmJPpgZQNCivpjb7mmI7np4ANCivpjb7mmI7mmY8NCivpjb7mmI7mhrINCivpjb7mmIfnqY4NCivpjb7mrKPnv7ANCivpjb7np4noq7oNCivpjb7ph5HnkosNCivpjb7kv4rnlKsNCivpjb7mlL/msJENCivpjb7mlL/pjKYNCivpjb7nm4jmhacNCivpjb7nvo7nkLMNCivpjb7pg4Hnv44NCivpjb7mjK/ms5MNCivpjb7ntIvmmJMNCivpjb7llYbpp78NCivpjb7ltIfmooUNCivpjb7mt5HoiqwNCivpjb7mt5HokI0NCivpjb7lh7Hkvp0NCivpjb7mg6DlpoINCivpjb7mmbrlgpENCivpjb7ntaLlpoINCivpjb7pgLjnn7MNCivpjb7pm7LlhYkNCivpjb7mupDlvrcNCivpjb7oo5XmlocNCivpjb7lmInps7MNCivpjb7npo7lhYMNCivpjb7pipjmmboNCivpjb7lvrfpnJYNCivpjb7mqILlkJ8NCivpjb7mm4nltZANCivpjb7pjKbnkLMNCivpjb7olrDlq7oNCivpjb7ptazpo5sNCivpjb7mh7/oj68NCivpjb7ml7vlnJwNCivpnqDlsrHnkKYNCivpn5PmlofosZANCivpn5PlhYvlhIkNCivpn5Pkvanliq0NCivpn5PlrpzmvZQNCivpn5PmmI7lgKsNCivpn5Pnm7jlrpwNCivpn5PmooUNCivpn5Ppm4XogIwNCivpn5PlmInpp78NCivpn5Plr7bnkakNCivlj6Lmt5Hoj68NCivnsKHkuIrlk7INCivnsKHlo6vnm4oNCivnsKHlo6vmv6ANCivnsKHlsI/olZkNCivnsKHmlofkuqgNCivnsKHmlofosrQNCivnsKHkuJboo5UNCivnsKHlt6flqbcNCivnsKHmsJHpvo0NCivnsKHnjonnj40NCivnsKHnq4vkuroNCivnsKHkvIrlqZUNCivnsKHku7Dlo68NCivnsKHlkInogbANCivnsKHlroflsY8NCivnsKHnmb7mh4kNCivnsKHoh7PpnIYNCivnsKHkvLblqJ8NCivnsKHlkJvnjrINCivnsKHlpqTnjrINCivnsKHlro/lgKsNCivnsKHlu7flrokNCivnsKHlv5flrokNCivnsKHlv5fls7ANCivnsKHlv5fpm4QNCivnsKHlv5fnqY4NCivnsKHnp4DmnY8NCivnsKHnp4DntJQNCivnsKHosp3nj4oNCivnsKHkvbPnkKoNCivnsKHkvannkKoNCivnsKHlrpflvrcNCivnsKHmgKHlqbcNCivnsKHmmI7pm4ENCivnsKHnjqvnjokNCivnsKHpm6jolK0NCivnsKHlu7rkuIANCivnsKHmmK3okLgNCivnsKHnvo7lqJ8NCivnsKHombnnkKoNCivnsKHlrrbmlrANCivnsKHnj67pm4UNCivnsKHlgaXkv4oNCivnsKHlnIvmlowNCivnsKHllZ/mgYYNCivnsKHmt5HoiqwNCivnsKHmt5HlqbcNCivnsKHojonpnZwNCivnsKHljZrlvawNCivnsKHmg6DmuZgNCivnsKHmo67kuZkNCivnsKHoj6/nnJ8NCivnsKHpm4XlpoINCivnsKHpoIbnq4sNCivnsKHmlazluq0NCivnsKHmuqLlnYcNCivnsKHnkZ7mo7sNCivnsKHogZbosaoNCivnsKHoqanls7ANCivnsKHlmInlro8NCivnsKHlmInlvawNCivnsKHlmInpvaENCivnsKHmvKLnkosNCivnsKHnpo7kvZENCivnsKHntq3okLENCivnsKHpgaDnnJ8NCivnsKHpipjovrANCivnsKHps7PlhIANCivnsKHmhaflqJ8NCivnsKHmhrblpoINCivnsKHpjKvmt7UNCivnsKHpp7/osr8NCivnsKHol53ls7ANCivnsKHpqarmvZQNCivnsKHnkYvlgKsNCivnsKHmgZLogZYNCivogbbmnbHljZcNCivogbbmmpDls7sNCivol43lrZDmoZMNCivol43lhYPnmpMNCivol43mloflrZ0NCivol43lvJjlgYkNCivol43ku7LlgYkNCivol43lv5fnmbwNCivol43mgKHlubMNCivol43mmJXnt68NCivol43mmKXnmbwNCivol43ls7vlvawNCivol43lgYnku4ENCivol43lnIvoj68NCivol43mopPkvpYNCivol43mg6DokI0NCivol43pm4XpvaENCivol43lmInlk7INCivol43mhafnj4oNCivol43pu5vnkakNCivpl5XlsJHoirMNCivpl5XlkJ/lpJkNCivpl5XmmI7mhacNCivpl5XpgKLmr4UNCivpl5XngIXoiqwNCivpoY/lo6vlvawNCivpoY/lpKfnpo8NCivpoY/lsI/lh6ENCivpoY/mnIgNCivpoY/lvJjnpaUNCivpoY/msLjoirMNCivpoY/njonnkYsNCivpoY/lhYnnjpcNCivpoY/lpoLnjokNCivpoY/mnInnlLcNCivpoY/kvK/lpYcNCivpoY/lkYjml60NCivpoY/lppnoirMNCivpoY/lro/lk7INCivpoY/lro/lj6ENCivpoY/lv5fmiJANCivpoY/lv5fmj5oNCivpoY/lv5fpup8NCivpoY/np4DnnJ8NCivpoY/oia/mvqQNCivpoY/kvbPmhacNCivpoY/lrpflubMNCivpoY/mib/lgYkNCivpoY/np4nlvrcNCivpoY/lpZXku4ENCivpoY/np4vnkLQNCivpoY/oi6Xluq0NCivpoY/lrrbnpboNCivpoY/nj67ltZANCivpoY/lnIvmm7gNCivpoY/lsInlh7ENCivpoY/mmajmmpANCivpoY/mt5Hpm7INCivpoY/lqbfnjrINCivpoY/oj6/miJANCivpoY/pm4XljYkNCivpoY/pm6/pn7sNCivpoY/nkZ7mlocNCivpoY/nkZzmhacNCivpoY/ogZbptLsNCivpoY/lmInmiJANCivpoY/lmInnkLMNCivpoY/lr6fkvZENCivpoY/npo/poIYNCivpoY/pioDmoZANCivpoY/ps7TmhbYNCivpoY/nkanptawNCivpoY/mvqTlrocNCivpoY/ptLvmrL0NCivpoY/njbvkvZENCivpoY/piLroirgNCivprY/lo6vlgpENCivprY/lrZDmmbQNCivprY/ku4HlqIENCivprY/mlofntroNCivprY/lt6fmmbQNCivprY/njonpm68NCivprY/ku7vlu7cNCivprY/lkI3msY4NCivprY/lrofpgZQNCivprY/nmb7nm5sNCivprY/kvLblqJ8NCivprY/lkJvmvZQNCivprY/lrZ3lr6wNCivprY/lspHoiqwNCivprY/lv5flgKsNCivprY/np4DmgawNCivprY/oia/kvZENCivprY/kvbPljb8NCivprY/lrpzlr6wNCivprY/mmI7nq6ANCivprY/kv4rml7oNCivprY/mmKXnlJ8NCivprY/oi7Hpjq4NCivprY/mmYnkuIANCivprY/lgYkNCivprY/ltIfmoZMNCivprY/mt5HnjqsNCivprY/pgKLmr4UNCivprY/mnJ3kv6ENCivprY/pgLjnjrINCivprY/mhJvmtKUNCivprY/mu4fkvZENCivprY/nraDmlocNCivprY/piLToip0NCivprY/lmInoia8NCivprY/lq6blpp0NCivprY/noqnnqY4NCivprY/pipjmvKINCivprY/mhZXluIYNCivprY/otqjlkIkNCivprY/pupLlrrkNCivprY/nkYToqrwNCivpvpDmsLjln7kNCivmm6DlqYnlkJsNCivnvoXljYPpm68NCivnvoXlrZDou5INCivnvoXlsLnkvLYNCivnvoXku4Hli4cNCivnvoXlhYPnlKsNCivnvoXlhYHkuK0NCivnvoXlj4vogbINCivnvoXlv4PlsY8NCivnvoXmloflrpwNCivnvoXmloflvawNCivnvoXmlofpvYoNCivnvoXmnIjlh7ANCivnvoXkuJbpipgNCivnvoXku5Xmo4sNCivnvoXlt6fojokNCivnvoXmraPpgqYNCivnvoXmsLjmmboNCivnvoXnjonokI0NCivnvoXkuqbml4sNCivnvoXku7DnnJ8NCivnvoXlhYbntq0NCivnvoXlrofku7sNCivnvoXml63lkJsNCivnvoXoh7PlloQNCivnvoXlro/kuIANCivnvoXlv5fpm4QNCivnvoXnp4DnjrINCivnvoXkup7lr6cNCivnvoXkvbPnkKYNCivnvoXlrpzlkJsNCivnvoXmgKHmg6ANCivnvoXmmI7nq6ANCivnvoXmrKPmhYgNCivnvoXoirfpnZINCivnvoXkv4rlvaUNCivnvoXlvaUNCivnvoXnjrLnjrINCivnvoXnvo7ok64NCivnvoXoi5HmppUNCivnvoXlrrbmrKMNCivnvoXmjK/lu7cNCivnvoXms7DlgKsNCivnvoXnj67lqJ8NCivnvoXntKDoirENCivnvoXlgYnlk7INCivnvoXlgaXlv5cNCivnvoXllK/nkYQNCivnvoXlnIvoj68NCivnvoXlnIvmmpANCivnvoXlqYnlqKUNCivnvoXlvLcNCivnvoXmlY/mlocNCivnvoXmlY/lhIANCivnvoXmt4fmlocNCivnvoXmt5Hok4kNCivnvoXntLnmlocNCivnvoXlgpENCivnvoXlh7HpoKQNCivnvoXljZrkv4oNCivnvoXmg6DmlrkNCivnvoXmg6DomK0NCivnvoXmmbrog70NCivnvoXntKvoj4ENCivnvoXoj6/mv4MNCivnvoXpiJ7ogIANCivnvoXpm4XmlY8NCivnvoXpm6/nkLQNCivnvoXmr5PlgpENCivnvoXnkZ7mpq4NCivnvoXogZbnkLMNCivnvoXpgZQNCivnvoXlmInnjrINCivnvoXmpq7ovJ0NCivnvoXpmpvlt50NCivnvoXmhbblgpENCivnvoXnkanmo7sNCivnvoXmm4nlqIENCivnvoXoiIjlrokNCivnvoXptLvln7oNCivnvoXppqjlrpwNCivnvoXnhZLnqIsNCivorZrlj4jmsJENCivorZrlhYnoj68NCivorZrkvanltZANCivorZrmgoXppqgNCivorZrmmbrku4ENCivorZroq6YNCivpl5zkuIDlv4MNCivpl5zlv5flrocNCivpl5zmt5Hpm7INCivlmrTlrZDnrZENCivlmrTlv4PlhYMNCivlmrTlj6/lkJsNCivlmrTlv5flk7INCivlmrTmmKXps7MNCivlmrTmjK/oiIgNCivlmrTlqYnnjrINCivlmrTmt5Hoj4ENCivlmrToqaDogZYNCivlmrTntq3lvrcNCivlmrTppqUNCivnq4fnkZ7pnJ4NCivol7rlv4PmgKENCivomIfljYPku6MNCivomIflo6vosaoNCivomIflrZDnv5QNCivomIfkuK3mgKENCivomIflhYPkuZkNCivomIfmlocNCivomIfmloflqJ8NCivomIfmlofovJ0NCivomIfkuJbluq0NCivomIflt6flr6cNCivomIfmraPlrrYNCivomIfmsLjlgpENCivomIfnjonkv64NCivomIfnq4vlh7ENCivomIflpoLolZkNCivomIfnq7nlrokNCivomIflkJvpnI8NCivomIflro/ms7ANCivomIflv5flrZ8NCivomIflv5floIUNCivomIflv5fptLsNCivomIfnp4DnjrINCivomIfogrLlvJgNCivomIfogrLkv54NCivomIfogrLnkbENCivomIfkvbPotrMNCivomIfkvannkZwNCivomIflrpfkuIANCivomIflsJrnkb4NCivomIfmgKHlpoINCivomIfmgKHlkJsNCivomIfmgKHoj4ENCivomIfmgKHppqgNCivomIfmmI7kv4oNCivomIfmmI7ptLsNCivomIfmrabpvo0NCivomIfoirPmraMNCivomIfoirPnkakNCivomIfpnZLlppkNCivomIfkv6HmupANCivomIfkv4rlpKsNCivomIfkv4rnpaUNCivomIfkv4rpipgNCivomIfkv57lpoINCivomIfli4foqqANCivomIflpZXlgpENCivomIflqIHpgZQNCivomIflu7rkuK0NCivomIflu7rlv5cNCivomIflu7rosaoNCivomIflvaXnhpINCivomIfmgYboh7MNCivomIfmlL/orJkNCivomIfmmK3lkJsNCivomIfmmLHku7sNCivomIfmn4/lt54NCivomIfmn4/mqLoNCivomIfnj4rnkakNCivomIfnmofljp8NCivomIfnm4jnqZcNCivomIfntIDmlY8NCivomIfnvo7njrINCivomIfoh7Tku4ENCivomIfoi7HnmpMNCivomIfosp7nh5UNCivomIfpg4HlgKsNCivomIfpg4Hpm4UNCivomIfpppnnkKoNCivomIflgInmsLgNCivomIflk7LlhIQNCivomIflrrYNCivomIflrrbkv6ENCivomIflrrbnkakNCivomIfls7vmsJENCivomIfluq3nkaQNCivomIfmjK/pipgNCivomIfmoZPmhbYNCivomIfmtanngroNCivomIfnm4rnpb8NCivomIfnqojnkbENCivomIfntJTmhacNCivomIfou5LmsJENCivomIflgYnoqqANCivomIflnIvlhbgNCivomIfloILosaoNCivomIflqYnmg6ANCivomIfmlY8NCivomIfmuIXlrokNCivomIfmt5HlqbcNCivomIfnmo7mhacNCivomIfojonmg6ANCivomIfljZrnjoQNCivomIfmg6Dosp4NCivomIfmmbbmlrANCivomIfmuZjmgKENCivomIfoiJzljb8NCivomIfpgLjnnJ8NCivomIfpm4XlkJsNCivomIfpm4Xmg6ANCivomIfpm4XmhacNCivomIfpoIboqqANCivomIfmhI/ltZANCivomIfmlazoj7ENCivomIfmr5PlvawNCivomIfnjLfnv5QNCivomIfnnabku4ENCivomIfnvqTlgpENCivomIfogZbmtrUNCivomIfoo5XmlocNCivomIfoqanlqbcNCivomIfpnZbltZANCivomIflmInlro8NCivomIflmInptLsNCivomIfnoqfmmK0NCivomIfogZ7orLkNCivomIflhITnj40NCivomIfmhafmlocNCivomIfmhaflqJ8NCivomIfmr4UNCivomIfmm4nlpoINCivomIfmm4noioMNCivomIfpjKbmmIcNCivomIfpnZzoirMNCivomIfogbLmjK8NCivomIfptLvlhIANCivomIfptaznv7ANCivomIfpupfoj68NCivomIfml7vlkJsNCivomIfng5zmr4UNCivomIfnkKHoqZUNCivomIfnkYvnkLMNCivomIfosYrmo4sNCivomIfpiLroj4ENCivpkJjlo6vmrL0NCivpkJjmlofnp4ANCivpkJjnjonlpoINCivpkJjkvbPntbkNCivpkJjnm4jlh7ENCivpkJjmjLrosaoNCivpkJjlnIvpipgNCivpkJjmlY/mhKsNCivpkJjmg6DlrocNCivpkJjpoIbnprkNCivpkJjnoqfomK0NCivpkJjppqjoqrwNCivppZLlv5fosaoNCivppZLkuq4NCivppZLnj67pvaENCivppZLmlazlnIsNCivpu6jkuIDngroNCivpoafmlofntaINCivpoafnq4vomIsNCivpoaflrpfmspsNCivpoaflgKnlpoINCivpoafltIflvrcNCivpoafnv6Doj68NCivpvpTkuo7nj4oNCivpvpTmlofnqY4NCivpvpTlhYbnpboNCivpvpTkvanlkJsNCivpvpTpnZLpm7INCivpvpTlvaXlkI0NCivpvpTosp7lpoINCivpvpTmm7jogZYNCivpvpTmt5Hoi5cNCivpvpTpm4XmrKMNCivpvpTpnZboqZINCivpvpTosavmhacNCivkupPpmobnpaUNCivkvZjlsJrptLsNCivkvZjoga/mlowNCivpgr7kuqbljZcNCivmtoLkuJblkowNCivmtoLlkJvok4kNCivmtoLogrLmpq4NCivmtoLmrKPlro8NCivmtoLmlL/nlLcNCivmtoLmjK/msJENCivmtoLllZ/ljp8NCivmtoLlr4zmmJ8NCivmtoLpm4Xnh5UNCivmtoLlmInljp8NCivmtoLmhafnj40NCivmtoLogIDljYcNCivnspjlvJjlkIkNCivnspjogrLnkYsNCivnspjntJTlpoINCivnspjogZbpkasNCivnspjogIDku4ENCivphJTlv4PmgKENCivpnbPnq4vlgYkNCivphLrlhYnlr6cNCivmrJLlraPlvLcNCivugIDoirPnkKYNCivugIDlqYnlqbcNCivugIDpipjmupANCivuib7mlofli7MNCivuib7ps7PnkKoNCivui6fkv6HnvqkNCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfSmFwYW5lc2UudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0phcGFuZXNlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2VjZTI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0phcGFuZXNlLnR4dApAQCAtMCwwICsxLDIyODMzIEBACivvu78jLyoqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqDQorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqLw0KKw0KK+OBguOBjeOCguOBqCzjgbLjgo3jgZcNCivjgYLjgY3jgbAs44Gy44KN44GXDQor44GC44KJ44GELOOCiOOBl+OBsuOCjQ0KK+OBguOCieOBhCzjgbLjgajjgZcNCivjgYLjgYvjgYzjgo8s44GI44GE44GYDQor44GC44KJ44GNLOOBjeOCiOOBvw0KK+OBguOBhOOBi+OCjyzjgojjgZfjgbLjgo0NCivjgYLjgY3jga4s44G/44Gh44GKDQor44GC44GN44KE44G+LOOBsuOCjeOBlw0KK+OBguOBleOBhCzjgYvjgZrjgb7jgZUNCivjgYLjgbks44GN44KI44Gf44GLDQor44GC44KK44GMLOOBsuOCjeOBlw0KK+OBguOBjeOBnyzjgbLjgo3jgZcNCivjgYLjgYvjgaTjgYss44Go44KLDQor44GC44KJ44GELOOBi+OBmuOBig0KK+OBguOBleOBr+OCiSzjgaTjgajjgoANCivjgYLjgaTjgb8s44GR44KT44GE44GhDQor44GC44KP44KELOOBi+OBmuOChA0KK+OBguOBleOBi+OCjyzjgojjgZfjgobjgY0NCivjgYLjgYrjgY0s44Gy44KN44GXDQor44GC44KP44GaLOOChOOBmeOBig0KK+OBguOBjeOBj+OBlSzjgZfjgZLjgosNCivjgYLjgYrjgoTjgY4s44Gy44Gn44GC44GNDQor44GC44GY44GV44KPLOOBkeOCk+OBhOOBoQ0KK+OBguOBhOOBnSzjgajjgZfjgYoNCivjgYLjgYrjgZfjgb4s44Gb44GE44GUDQor44GC44GoLOOBruOCiuOBig0KK+OBguOBleOBrizjgobjgY3jgYoNCivjgYLjgorjgYws44Gk44KI44GXDQor44GC44GK44GNLOOBsuOBqOOBlw0KK+OBguOBhOOBi+OCjyzjgb7jgoLjgosNCivjgYLjgY3jgZ8s44Gk44Go44KADQor44GC44GV44GuLOOCiOOBl+OBpuOCiw0KK+OBguOBleOBqCzjgYvjgZrjgbLjgZMNCivjgYLjgonjgY0s44G+44GV44Gv44KLDQor44GC44KT44Gp44GGLOOBi+OBmuOBig0KK+OBguOBleOBi+OCjyzjgb7jgZXjgYLjgY0NCivjgYTjgYTjgaAs44Gy44Go44GXDQor44GE44KP44GV44KPLOOBqOOBl+OBguOBjQ0KK+OBhOOBl+OBi+OCjyzjgYrjgZXjgoANCivjgYTjga7jgYbjgYgs44GC44GN44KJDQor44GE44GX44Gv44KJLOOCiOOBmeOBkQ0KK+OBhuOBi+OBmCzjga/jgaTjgYvjgZoNCivjgYbjgoHjgZ/jgass44GX44KF44Gy44GhDQor44GK44GR44Gf44GrLOOChOOBmeOBlw0KK+OBiuOBmeOBjizjgaHjgojjgYvjgZoNCivjgYrjgYvjgo8s44G+44GV44Gy44GTDQor44GL44Go44GGLOOCiOOBl+OChA0KK+OBi+OCgizjgZ3jgbLjgaENCivjgY/jgb7jgYzjgYQs44KK44KH44G444GEDQor44GT44KT44GpLOOChuOBjeOBig0KK+OBmeOBjuOCguOBqCzjgb7jgZXjgbLjgo0NCivjga/jgb7jgZXjgY0s44Gu44KK44GC44GNDQor44Gh44GgLOOBsuOBp+OBlw0KK+OBquOBi+OCgOOCiSzjgojjgZfjgYvjgZoNCivjgarjgYzjgZ8s44KE44GZ44GXDQor44GV44KP44KA44KJLOOBsuOCjeOBlw0KK+OBquOCi+OBiizjgb7jgZPjgagNCivjgarjgorjgZ8s44G+44GV44GNDQor44Gv44Gb44GM44KPLOOBvuOBleOBig0KK+OBteOBmOOBnyzjgbLjgo3jgbLjgagNCivjgbXjgZjjgo/jgoks44KI44GX44Gu44KKDQor44G244KILOOBleOBoeOBkw0KK+OBu+OCiizjgYvjgaTjgbLjgZMNCivjgb/jgarjgb/jgoDjgoks44GR44KT44GYDQor44G/44KE44GY44G+LOOBguOBjeOBsuOCjQ0KK+OChOOBvuOBoCzjgb/jgY3jgbLjgZMNCivjgoTjgb7jgZDjgaEs44G+44GV44Go44GXDQor44KE44Gq44GO44Gv44KJLOOBvuOBleOBguOBjQ0KK+OCiOOBl+OBrizjgb7jgZXjgZcNCivjgavjgYTjgaAs44GC44GN44KJDQor44GK44Gy44KD44G+LOOBiuOBleOCgA0KK+OBi+OBquOBjOOCjyzjgojjgZfjga7jgooNCivjgY3jgoDjgoks44GX44KF44KT44GYDQor44Gk44GL44GW44GNLOOBkeOBhOOBng0KK+OBi+OCj+OBoCzjgaHjgYjjgZMNCivjgYLjgZXjgYvjgo8s44GL44Gh44GTDQor44GX44KC44GkLOOCiOOBl+OBruOBtg0KK+OBiuOBiyzjgobjgb/jgZMNCivjgYrjgYzjgo8s44Gy44KN44GTDQor44Gf44GE44KJLOOBkeOBhOOBkw0KK+OBhOOBl+OBrizjgZ/jgYvjgZMNCivjgY3jgb/jgZfjgb4s44Gm44Gk44GKDQor44GV44Go44GGLOOBk+OBhuOBmA0KK+OChOOBvuOBoCzjgaHjgYLjgY0NCivjgYrjgZ8s44Gh44KI44KKDQor44G+44GI44GgLOOBvuOCig0KK+OBi+OBluOCieOBlyzjgZ/jgYvjgZcNCivjgZTjgags44G/44Gp44KKDQor44G744GXLOOBl+OCk+OBhOOBoQ0KK+OBj+OCjeOBoCzjgY/jgavjgbLjgZMNCivjgaTjgYvjgo/jgY0s44KG44GG44GTDQor44GE44Gq44GM44GNLOOBhOOBoeOCjeOBhg0KK+OBhOOCj+OCguOBqCzjgorjgYjjgZMNCivjgaTjgovjgZ8s44G/44G7DQor44GE44GX44GY44G+LOOBquOBiuOBkw0KK+OChOOBvuOBquOBiyzjgb/jgZXjgZMNCivjgYbjgYjjgY0s44G+44GV44GC44GNDQor44Gr44GX44KA44KJLOOBn+OBi+OBsuOBqA0KK+OCj+OBhOOBoCzjgZPjgZnjgZENCivjgojjgZfjgaAs44GX44KH44Gy44GhDQor44GX44G244KELOOBjeOCiOOBquOBjA0KK+OBguOBqCzjgYLjgY3jgokNCivjgb/jgoTjgZ8s44Gm44Gk44KEDQor44GK44Gf44GNLOOBiuOBleOCgA0KK+OBjeOCiOOBiuOBiyzjgarjgYrjgb/jgaENCivjgYrjgZ/jgass44Gy44Gn44Go44GXDQor44Gr44GX44KP44GNLOOBv+OBpOOCiw0KK+OBq+OBl+OChOOBvizjgYvjgaTjga7jgooNCivjgb/jgZfjgb4s44G+44KC44KLDQor44GL44Go44GGLOOBl+OCk+OChA0KK+OBhOOBvuOBiizjgajjgZfjgoQNCivjgYrjgZbjgY0s44G+44GV44Gy44KNDQor44Gb44GN44KELOOBn+OCguOBpA0KK+OBpOOBj+OBoCzjgZ/jgYvjgZcNCivjgb/jgojjgZcs44KK44KH44G444GEDQor44KI44GX44G/LOOBsuOCjeOBqOOBlw0KK+OBleOBleOBiuOBiyzjgYLjgY3jgZMNCivjgYrjgZfjgb4s44GC44Gk44GTDQor44GP44G844GfLOOBn+OBoOOBlw0KK+OBl+OBsOOChOOBvizjgovjgb8NCivjgYrjgY/jgbws44KG44Gf44GLDQor44Gf44Gh44GuLOOBvuOBleOBruOCig0KK+OCj+OBoCzjgYvjgYrjgosNCivjgb7jgaTjgZfjgZ8s44Gk44GO44GKDQor44GT44KA44KJLOOBvuOBk+OBqA0KK+OBvuOBjeOBl+OBnyzjgZ/jgYvjgZcNCivjgYLjgYvjgYos44Gq44GK44G/DQor44Gv44GX44KC44GoLOOBn+OBi+OBlw0KK+OBiuOBrizjgZ/jgYvjgobjgY0NCivjgZvjgY3jgoLjgags44Gy44KN44GXDQor44G+44GI44GgLOOBv+OBmuOBuw0KK+OBv+OBpOOBu+OCiizjgZPjgYbjgZgNCivjgb/jgarjgb/jgZ7jga4s44G+44GV44KG44GNDQor44Gb44GM44KPLOOBruOBtuOChuOBjQ0KK+OBmeOBmuOBjSzjga7jgbbjgb7jgZUNCivjgY3jgZ/jgYzjgo8s44Gf44GL44KG44GNDQor44KI44GX44KE44GZLOOBn+OBi+OBlw0KK+OChOOBvuOCguOBqCzjgaHjga/jgosNCivjgYvjgajjgYYs44Gh44Ga44GTDQor44GL44KP44GL44G/LOOBl+OCheOBng0KK+OBvuOBjeOBrizjgajjgarjgb8NCivjgZnjgZrjgY0s44GY44KF44KTDQor44G144KL44GV44KPLOOBv+OBoeOCiA0KK+OBr+OChOOBlyzjgb7jgZXjgoLjgooNCivjgYTjgb7jgavjgZcs44KE44GZ44Gy44GTDQor44G/44KE44KC44GoLOOBkeOBhOOBkw0KK+OBvuOBjSzjgoTjgZnjgbLjgo0NCivjgZPjgYTjgacs44Gy44Go44GXDQor44KP44Gf44Gq44G5LOOBi+OBmuOBig0KK+OBiuOBr+OBlyzjgojjgZfjgYoNCivjgYLjgYvjgYos44Gh44GL44KJDQor44GC44GV44GELOOBquOBiuOBjQ0KK+OBhOOBvuOBhCzjgb7jgZXjgY0NCivjgY3jgoks44GL44GK44KKDQor44Gr44GX44KA44KJLOOBqOOCiOOBmA0KK+OCiOOBl+OBi+OCjyzjgojjgZfjgZ/jgYsNCivjgb/jgarjgb8s44GY44KNDQor44Gk44KL44GfLOOBvuOCig0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgZ/jgarjgYss44KIDQor44G+44Gk44GG44KJLOOBquOBiuOBjQ0KK+OBmeOBjuOBnyzjgb7jgZXjgYoNCivjgYvjgo/jgYQs44GV44Go44GXDQor44GT44GP44G8LOOBmOOCh+OBmA0KK+OBpOOBoCzjgajjgZfjgbLjgZMNCivjgb/jgoTjgZ/jgZEs44KG44GLDQor44GP44KN44GV44KPLOOBj+OBq+OBguOBjQ0KK+OBmeOBv+OBsuOCiSzjgZXjgbsNCivjgZ/jgYvjgY0s44G+44GV44GTDQor44GE44GX44GoLOOBsuOBqOOBlw0KK+OChOOBvuOBoCzjgYLjgY3jgYoNCivjgavjgYTjgaQs44GL44Ga44GTDQor44GE44KP44KA44KJLOOBn+OBi+OBlw0KK+OBi+OCj+OBquOBuSzjgb7jgZXjgbLjgZMNCivjgarjgYzjgYQs44Gm44KL44GNDQor44KE44G+44GtLOOBqOOBl+OChuOBjQ0KK+OBhOOBvuOBhCzjgZHjgpPjgZgNCivjgarjgYvjgYos44Gu44KK44GKDQor44GK44GX44GN44KKLOOBmOOCheOBq+OBoQ0KK+OBhOOBl+OBi+OCjyzjgZHjgpPjgZgNCivjgYrjgYvjgZjjgb4s44Gf44GR44GXDQor44GK44Gr44GXLOOBmOOCh+OBmA0KK+OBmeOBmuOBjSzjgajjgZfjgYoNCivjgoTjgb7jgarjgYss44GV44Gk44GNDQor44Gf44Gr44GQ44GhLOOBvuOBk+OBqA0KK+OBi+OCj+OBuSzjgajjgZfjgZ/jgYsNCivjgZPjgpPjga4s44KI44GX44GL44GaDQor44GV44Go44GGLOOBvuOBleOBsuOBkw0KK+OBn+OBi+OChOOBvizjgb7jgZXjgYoNCivjgoLjgorjgb/jgaEs44GT44GNDQor44G744KK44GL44KPLOOCguOBqOOBi+OBmg0KK+OBteOBj+OBhCzjga7jgbbjgYLjgY0NCivjgY3jgZ/jgoDjgoks44GL44KT44GYDQor44Gq44GL44Gv44KJLOOCiOOBl+OBsuOCjQ0KK+OBhOOBoeOBhCzjgbLjgo3jgobjgY0NCivjgYTjgo/jgZUs44Gh44GC44GNDQor44GZ44Ga44GNLOOBn+OBi+OChuOBjQ0KK+OCiOOBreOBn+OBqyzjgYTjgZXjgYoNCivjgZ/jga4s44G144G/44Gv44KLDQor44GX44Gw44GfLOOBmOOCheOCkw0KK+OBhOOBruOBhuOBiCzjgZjjgoXjgpMNCivjgYTjgZfjgYvjgo8s44G+44GV44Gv44KLDQor44GN44GXLOOBpuOBpOOBmOOChw0KK+OBguOCj+OBiCzjgZXjgaTjgb8NCivjgZ/jgZHjgYos44GL44Ga44Gy44KNDQor44GN44Gu44GX44GfLOOBqOOBjeOBig0KK+OBpOOBi+OBoCzjgb/jgY0NCivjgYLjgorjganjgoEs44KE44GZ44Gy44KNDQor44GN44Gj44GL44KPLOOBl+OCk+OBhOOBoQ0KK+OBiuOBjOOBleOCj+OCiSzjgYTjgZ/jgosNCivjgarjgYzjgZss44GL44Gk44G/DQor44Gv44KL44KE44G+LOOBn+OBvuOBkw0KK+OBiuOBmizjgYLjgY3jgokNCivjgZPjgZXjgYss44Gy44KN44G/DQor44GX44KJ44GV44GNLOOBsuOBp+OBruOCig0KK+OBn+OBquOBuSzjgYvjgojjgZMNCivjgYTjgZHjgYzjgb8s44GX44KF44KT44GYDQor44GT44Gw44KE44GXLOOBi+OBpOOBteOBvw0KK+OBvuOBpOOBsOOCiSzjgZ/jgZHjgZcNCivjgarjgYvjgYzjgo8s44Gy44Gn44KIDQor44GK44GM44KPLOOBvuOBleOBruOCig0KK+OCiOOBl+OBoCzjgajjgZfjgYoNCivjgYTjgZEs44G+44GV44G/DQor44Gf44Gr44GQ44GhLOOBguOBpOOBlw0KK+OBvuOBiOOBoCzjgojjgZfjgYLjgY0NCivjgbLjgonjga4s44GL44Ga44Gy44GTDQor44GX44G/44GaLOOBteOBv+OBguOBjQ0KK+OChOOBvuOBoCzjgajjgZfjgobjgY0NCivjgZ/jgarjgYss44Go44GX44GC44GNDQor44GT44G+44Gk44GW44GNLOOBsuOBleOBi+OBmg0KK+OBi+OBqOOBhizjgZ/jgYvjgbLjgo0NCivjgYrjgo8s44GC44Gk44Gy44GTDQor44GE44KP44KA44KJLOOChOOBmeOBig0KK+OBhOOCiuOBiCzjgajjgZfjgYvjgZoNCivjgYLjgYvjgoTjgb4s44Go44KLDQor44GC44GN44KC44GoLOOBpOOBqOOCgA0KK+OBi+OBv+OCgOOCiSzjgaTjgojjgZcNCivjgZnjgb/jgZ8s44GY44KF44Gr44GhDQor44Gv44G+44GV44GNLOOBquOBiuOBqA0KK+OChOOBmeOBoCzjgoLjgorjgbLjgo0NCivjgZ/jgZHjgoDjgoks44Gb44GE44GYDQor44KA44KJ44GL44G/LOOBvuOBleOBruOBtg0KK+OBquOBi+OBmOOBvizjgZXjgaDjga7jgbYNCivjgoLjgorjgoLjgags44G+44GV44G/44GhDQor44Gb44GN44GQ44GhLOOBsuOCjeOBlw0KK+OBquOBi+OBmOOBvizjgZ/jgYvjgobjgY0NCivjgY3jgYzjgo8s44GN44G/44GTDQor44Gf44GL44Gy44KJLOOBguOBjeOBqOOBlw0KK+OCguOBoeOBoCzjgbLjgo3jgYLjgY0NCivjgYvjgoHjgoTjgb4s44G+44KC44KLDQor44GK44KE44G+44GgLOOBvuOBleOBi+OBmg0KK+OBn+OBquOBiyzjga7jgorjgZMNCivjgbvjgpPjgb4s44Gy44KN44Gf44GgDQor44GN44Gu44GX44GfLOOBi+OBmuOChuOBjQ0KK+OBl+OBruOBpOOBiyzjgb7jgZXjgobjgY0NCivjgYLjgYTjga/jgoks44Gy44KN44GC44GNDQor44Gq44GM44G+44GkLOOBguOBjeOBsuOBkw0KK+OBqOOCiOOCgOOCiSzjgYvjgYrjgosNCivjgbLjgonjga4s44GC44Gk44GXDQor44GN44KA44KJLOOBvuOCguOCiw0KK+OBhOOBkeOBoCzjgb/jgY3jgoQNCivjgYTjgZfjga/jgoks44Go44G/44Gk44GQDQor44Gu44GQ44GhLOOBsuOBleOBqOOCgg0KK+OBk+OBkeOBpCzjgZPjgYbjgZgNCivjgYrjgY/jgoTjgb4s44Gf44GL44KG44GNDQor44Gv44G+44GQ44GhLOOBvuOBleOBsuOBkw0KK+OBpOOBmOOBleOBiyzjgbLjgo3jgbLjgZUNCivjgYTjgaHjgYvjgo8s44Gf44GL44GXDQor44KI44GX44GgLOOBguOBpOOBlw0KK+OChOOBvuOBoCzjgZ/jgYvjgZcNCivjgZfjgb/jgZos44G+44GV44Gy44GVDQor44GV44GL44GM44G/LOOBpuOCi+OBsuOBlQ0KK+OBk+OBmeOBjizjgZfjgpPjgZgNCivjgavjgZfjgaAs44KE44GZ44Gy44GTDQor44GE44GE44GgLOOBruOBtuOBl+OBkg0KK+OBhuOBoeOBoCzjgoTjgZnjgbXjgb8NCivjgoLjgajjgoTjgb4s44GI44GE44GYDQor44G/44KE44KC44GoLOOBvuOBleOBguOBjQ0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgZcNCivjgYvjgajjgYYs44GY44KF44KTDQor44GX44KJ44GELOOBm+OBhOOBmA0KK+OBr+OBjuOCj+OCiSzjgobjgYbjgZMNCivjgoTjgb7jgYbjgaEs44G+44GV44KLDQor44G/44Gk44Gv44GXLOOBv+OBpOOBvuOBlQ0KK+OCguOCk+OBmCzjgYLjgaTjgbLjgZMNCivjgZ/jgY3jgoLjgags44GX44KT44GYDQor44GK44GP44GgLOOBsuOBp+OBguOBjQ0KK+OBpOOBi+OCguOBqCzjgZXjgajjgosNCivjgoDjgZPjga/jgoks44Gb44GE44GUDQor44GV44KL44KELOOCiOOBsuOBoQ0KK+OBiuOBi+OBmOOBvizjgoTjgZnjgZcNCivjgbvjgZfjga4s44Gu44KK44GL44GaDQor44G744GXLOOBsuOBleOBsuOBkw0KK+OBteOBl+OBvyzjgZvjgYTjgZgNCivjgZ/jgYvjga/jgZcs44GL44Gk44KJDQor44Gr44GX44KE44G+LOOChOOBmeOBvw0KK+OBpOOCi+OBvuOBoSzjgaHjga/jgoQNCivjgajjgb/jgZ8s44GE44GP44KIDQor44GG44Gh44GgLOOChOOBmeOBlw0KK+OBiuOBn+OBiyzjgbLjgo3jgobjgY0NCivjgZXjgYvjgYQs44GV44Go44GXDQor44Gd44GM44G5LOOBk+OBhuOBmA0KK+OCj+OBoCzjgobjgY3jgbLjgacNCivjgZPjgZXjgYss44GL44GK44KKDQor44GC44GdLOOCiOOBsuOBoQ0KK+OBguOCieOBhCzjga7jgorjgZMNCivjgZnjgY7jgoDjgoks44GX44KF44GYDQor44GC44GN44KI44GXLOOBl+OCheOBmA0KK+OBguOBleOBi+OCjyzjgoTjgZnjgYTjgY8NCivjgo/jgaAs44G/44Gh44GKDQor44GE44GR44GgLOOBqOOBl+OBsuOBkw0KK+OBiuOBi+OCguOBqCzjgbLjgZXjgagNCivjgYLjgYrjgY0s44Gy44KN44G144G/DQor44GG44GI44GV44KPLOOBk+OBhuOBhOOBoQ0KK+OBhuOChOOBvizjgZ/jgaTjgoQNCivjgarjgYvjga/jgb4s44GX44KT44GYDQor44GL44KP44KC44GoLOOBl+OCh+OBsuOBoQ0KK+OBl+OCh+OBsuOCg+OBvizjgarjgovjgagNCivjgZnjgYjjgb7jgaQs44Go44KLDQor44Gq44GM44GELOOChuOBhuOBkw0KK+OBquOBi+OBr+OCiSzjgZ/jgYvjgbLjgZUNCivjgarjgo/jgZ8s44GL44Gk44G/DQor44GL44Gk44GW44KPLOOBkeOCk+OBmA0KK+OChOOBvuOBhuOBoSzjgb7jgZXjgb8NCivjgYLjgYvjgY7jgZcs44GC44GR44G/DQor44GP44GV44Ga44G/LOOBqOOBl+OBr+OCiw0KK+OBu+OBi+OCiizjgZfjgZLjgYoNCivjgYvjgajjgYYs44GL44Ga44GKDQor44GN44KK44GGLOOBpOOBqOOCgA0KK+OBiuOBjOOCjyzjgZXjgYvjgYgNCivjgZ/jgarjgYss44GT44GG44GE44GhDQor44GC44GE44KA44KJLOOCiuOCh+OBmA0KK+OBhOOBjOOCieOBlyzjgb7jgZXjgosNCivjgYvjgo/jgo/jgY0s44Gk44KI44GXDQor44G+44GI44GV44GLLOOBsuOBp+OBguOBjQ0KK+OBvuOBpOOBl+OBvizjgZnjgZnjgoANCivjgb7jgaTjgoLjgags44G+44GV44KG44GNDQor44GL44Gf44GELOOBsuOCjeOBjQ0KK+OBk+OBmOOBvizjgZjjgoXjgpPjgZgNCivjgaTjgZjjgoLjgags44GV44Go44GXDQor44Gq44KP44GfLOOChuOBng0KK+OBteOBmOOBn+OBqyzjgarjgorjgYLjgY0NCivjgY3jgZss44Gy44KN44GXDQor44GV44GL44GQ44GhLOOBv+OChuOBjQ0KK+OBmeOBmuOBjSzjgaTjgojjgZcNCivjga/jgb7jgZXjgY0s44Go44GX44Gy44GTDQor44KI44GX44GgLOOBsuOCjeOBlw0KK+OBu+OBo+OBnyzjgYrjgZXjgoANCivjgb7jgZnjgZMs44Gy44KN44GNDQor44Gf44GR44Gq44GLLOOBvuOBleOBqA0KK+OBhOOBl+OBhCzjgb7jgZXjgojjgZcNCivjgZ/jgZXjgYss44Gk44Go44KADQor44G+44Gk44GgLOOBvuOBleOBqA0KK+OBr+OBnyzjgZ/jgYvjgb/jgaENCivjgYLjgY3jgoTjgb4s44Go44KC44G/44GkDQor44Gf44GL44Gv44GXLOOBguOBpOOBlw0KK+OChOOBvuOBi+OCjyzjgbLjgafjgagNCivjgojjgZPjgaEs44G+44GV44Gy44KNDQor44KI44Gt44Gf44GrLOOBvuOBleOBguOBjQ0KK+OBteOBmOOBrizjgajjgosNCivjga/jgZvjgYzjgo8s44GV44Go44GXDQor44G144GY44GfLOOBi+OBmuOBsuOBkw0KK+OBguOCk+OCieOBjyzjgabjgaTjgo0NCivjga/jgZfjgoLjgags44GY44KF44Gr44GhDQor44GE44Gq44GgLOOBqOOBl+OChuOBjQ0KK+OChuOBkizjgb7jgZXjgbLjgo0NCivjgYTjgb7jgaAs44Gy44Go44GXDQor44GV44GL44KC44GoLOOBl+OBkuOBsuOBqA0KK+OBqOOCiOOBquOBjCzjgbLjgZXjgYoNCivjga/jgZfjgoLjgags44GT44GZ44GRDQor44Gv44Gq44GELOOBr+OCi+OBjQ0KK+OBl+OBv+OBmizjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44G+44GV44Gy44KNDQor44GL44GY44KA44KJLOOBn+OBi+OBlw0KK+OBhOOBl+OBjOOBjSzjgobjgZ/jgYsNCivjga/jgaPjgajjgoos44KE44GZ44Gy44GoDQor44GC44G+44GuLOOBl+OCh+OBmA0KK+OBv+OBi+OBvyzjgb7jgZXjgbLjgo0NCivjgbXjgovjgabjgoks44GN44GE44Gh44KN44GGDQor44G+44G/44KELOOChuOBmeOBkQ0KK+OBpOOCi+OBrizjgYvjgaTjgajjgZcNCivjgYLjgZXjgYQs44G+44GV44KG44GNDQor44Gu44KA44KJLOOBvuOBleOBkw0KK+OCiOOBk+OChOOBvizjga7jgbbjgobjgY0NCivjgYTjgZHjgaAs44KM44GE44GTDQor44GC44KT44Gp44GGLOOBvuOBleOCiOOBlw0KK+OBiuOBi+OChOOBmSzjgYTjgZrjgb8NCivjgZTjgags44GL44Ga44Gy44GVDQor44GL44KP44GX44G+LOOChOOBmeOBsuOCjQ0KK+OBr+OBjuOCj+OCiSzjgabjgaTjgYoNCivjgYLjgZ/jgonjgZcs44KI44GX44Gu44KKDQor44Gf44GL44KE44G+LOOBn+OBpOOBig0KK+OBq+OBl+OChOOBvizjgojjgZfjga/jgosNCivjgYjjgaHjgZQs44KI44GX44Gy44GTDQor44KE44G+44GW44GNLOOBkeOCk+OBng0KK+OCgOOCjeOChCzjgb7jgZXjgYoNCivjgY3jgoDjgoks44KK44KHDQor44Gq44GL44Gv44KJLOOBi+OBiuOCiw0KK+OBhuOBiOOBrizjgb7jgobjgb8NCivjgojjgZfjgaAs44Gy44Gn44GNDQor44Gk44GL44KC44GoLOOCgOOBpOOBkw0KK+OBiuOBluOBjSzjgoTjgZnjgY0NCivjgYLjgZfjgYvjgo8s44GX44GS44GKDQor44Gt44GO44GXLOOBl+OCk+OBmA0KK+OBjeOCheOBrizjgobjgZ/jgYsNCivjgZXjgajjgYYs44GC44GN44GKDQor44GE44Gu44GG44GILOOChOOBmeOBkw0KK+OBjeOBj+OBmuOBvyzjgbLjgafjgYLjgY0NCivjgb7jgaTjgoLjgags44Gf44GL44GTDQor44Gv44KE44GXLOOBiOOCig0KK+OBteOBj+OBiuOBmCzjgobjgb/jgZMNCivjgarjgovjgZss44Go44GX44Gy44GoDQor44G+44Gk44KC44GoLOOBqOOBl+OChuOBjQ0KK+OCguOCiizjgZfjgpPjgYTjgaENCivjgb/jgY0s44KI44GX44Gy44KNDQor44Gq44GL44Gf44GrLOOBpuOBpOOBig0KK+OBv+OChOOBjOOCjyzjgobjgY3jgYoNCivjgYLjgorjgojjgZcs44G144G/44GKDQor44GX44KJ44GELOOBn+OBi+OBlw0KK+OBv+OBquOBvyzjgZHjgpPjgZ8NCivjgajjgorjgZTjgYgs44Gf44Gg44GXDQor44GT44GZ44GMLOOBqOOBiuOCiw0KK+OBpOOBmOOBrizjgoTjgZnjgZfjgZINCivjgYrjgZDjgoks44Go44KC44Gu44KKDQor44GK44KK44GfLOOBl+OCheOBsuOBoQ0KK+OBguOBv+OCguOBqCzjgojjgZfjgbLjgacNCivjgYrjgZXjgYss44GL44Ga44Gy44GTDQor44Gv44KE44GXLOOBvuOBleOCiw0KK+OBv+OBquOBvyzjgaDjgYTjgZXjgY8NCivjgojjgZfjgaAs44Gf44GL44GKDQor44Gr44GX44Gv44KJLOOBi+OCk+OBmA0KK+OBiuOBj+OBjOOCjyzjgZHjgpPjgZ/jgo3jgYYNCivjgaTjgZgs44G+44GV44GNDQor44Gq44GL44GELOOBvuOBleOBlw0KK+OBq+OBl+OCgOOCiSzjga7jgbbjgYoNCivjgavjgZ/jgarjgYQs44KI44GX44GC44GNDQor44GP44Gp44GGLOOBteOBv+OBruOCig0KK+OBleOBhCzjgYTjgY/jgYoNCivjgZfjgocs44KI44GX44KG44GNDQor44GE44Gu44GG44GILOOBvuOBleOCiOOBlw0KK+OBn+OBq+OBkOOBoSzjgbXjgZjjgYoNCivjgarjgYvjgavjgZcs44Gf44Gg44GXDQor44GK44KC44KKLOOBi+OBmuOBsuOCjQ0KK+OBj+OBvuOBjOOBhCzjgoTjgZnjgbLjgo0NCivjgYTjgZfjgYLjgYQs44Gh44GL44GXDQor44Gv44GO44Gv44KJLOOBmOOCheOBq+OBoQ0KK+OBn+OBjOOBnyzjgajjgosNCivjgZnjgZrjgY0s44KI44GX44Gy44KNDQor44GP44G8LOOBv+OBruOCiw0KK+OBi+OBquOBhuOBoSzjgajjgZfjgbLjgZMNCivjgavjgZfjgYos44KI44GX44GKDQor44GE44Gq44GgLOOBvuOBleOBqOOCgg0KK+OBn+OBkeOBhOOBoSzjgabjgovjgobjgY0NCivjgYLjgpPjganjgYYs44Gf44GL44GXDQor44G+44Gk44Gq44G/LOOBpOOBkOOBig0KK+OBv+OBquOBj+OBoSzjgZHjgpPjgZQNCivjgYvjgarjgYbjgaEs44Gy44KN44GXDQor44GK44Gy44KD44G+LOOBn+OBi+OBig0KK+OBvuOBmeOBoCzjgb7jgarjgbYNCivjgoTjgY7jga/jgoks44GL44GK44KLDQor44G/44Ga44GuLOOBsuOCjeOBn+OBrQ0KK+OBruOBtuOBj+OBvyzjgZfjgpPjgZgNCivjgarjgaAs44Gy44KN44KG44GNDQor44Gf44GR44Gf44GrLOOBn+OBi+OChuOBjQ0KK+OBhOOBvuOBhOOBmuOBvyzjgajjgojjgYvjgZoNCivjgYTjgarjgaAs44GL44Ga44Gu44KKDQor44GE44G+44GrLOOBkeOCk+OBmA0KK+OBiuOBjSzjgb/jgaHjgYoNCivjgbXjgY/jgZfjgb4s44Gc44KT44GV44GPDQor44GE44GE44GKLOOBl+OCk+OChA0KK+OBhOOBl+OBoCzjgbLjgafjgY0NCivjgbLjgonjgZ8s44Gy44Gn44Gu44G2DQor44GE44Gf44GM44GNLOOBl+OCk+OBmA0KK+OChOOBvuOBteOBjyzjgb7jgZPjgagNCivjgZXjgajjgYYs44GX44KH44Gy44GhDQor44Gq44GL44GM44KPLOOBl+OCheOBleOBjw0KK+OBiuOBleOBiyzjgarjgYrjgY0NCivjgYrjgYTjgYvjgo8s44Gu44G844KLDQor44GL44GX44GKLOOBl+OCh+OBmA0KK+OBu+OBl+OBluOBjSzjgajjgZfjgYoNCivjgZvjgY3jgZjjgb4s44GR44KT44GYDQor44GK44GL44G+44GILOOBqOOCiw0KK+OBleOBqOOBhizjgZ/jgYvjgYLjgY0NCivjgZPjgYTjgacs44G144Go44GXDQor44Gf44GL44Gv44GXLOOBhOOBoeOCjeOBhg0KK+OBiuOBjOOCjyzjgYTjgZXjgYoNCivjgabjgonjgZfjgb4s44Gf44GL44G144G/DQor44KE44G+44GX44GfLOOBvuOBleOBsuOCjQ0KK+OBruOBmyzjgojjgZnjgZENCivjgb7jgaTjgb7jgYgs44Gy44KN44Go44KCDQor44KI44GX44GfLOOBi+OBpOOChA0KK+OCgOOCieOBnyzjgZPjgYbjgZgNCivjga/jgoks44GL44Ga44Gy44KNDQor44KE44G+44GG44GhLOOBleOBqOOBlw0KK+OBi+OBv+OBmOOChyzjga7jgorjgYoNCivjgZnjgYzjgYQs44KK44KHDQor44Gf44GL44GuLOOBl+OCheOBsuOBoQ0KK+OBqOOBk+OCjSzjga7jgbbjgYLjgY0NCivjgZnjgZrjgY0s44KI44GX44Gy44KNDQor44GV44GV44GNLOOBl+OBkuOBjQ0KK+OBpOOBruOBoCzjgZPjgYbjgZgNCivjgoTjgb7jgZXjgY0s44Gu44KK44Gy44KNDQor44G/44GG44KJLOOBn+OBi+OBlw0KK+OBiuOBoOOBjuOCiizjgZ/jgYvjgarjgYoNCivjga/jgoTjgZcs44Gb44GE44GYDQor44Go44G/44GK44GLLOOBk+OBhuOBhOOBoQ0KK+OBhOOBkOOBoSzjgZ/jgY/jgYoNCivjgZPjgpPjgaks44G+44GV44GC44GNDQor44GP44G8LOOBsuOBp+OChuOBjQ0KK+OBj+OCieOBrOOBjSzjgYLjgobjgb8NCivjgajjgb/jgb7jgaQs44Gu44KK44GC44GNDQor44GP44KN44GL44KPLOOBqOOCiw0KK+OBruOBluOCjyzjga7jgorjgbLjgZMNCivjgYvjgo/jgZXjgY0s44GR44KT44GYDQor44Gf44GR44GgLOOBi+OBpOOChuOBjQ0KK+OBl+OBruOBr+OCiSzjgZ/jgaTjgobjgY0NCivjgbXjgovjgoQs44KI44GX44Gu44G2DQor44Gq44GL44KA44KJLOOCiOOBl+OBl+OCjQ0KK+OChOOBmOOBvizjgZnjgZnjgoANCivjgavjgZfjgYzjgY0s44GC44Gk44KG44GNDQor44Gq44GL44GM44KPLOOBpuOBpOOCjQ0KK+OBsuOCieOChOOBvizjgabjgaTjgoQNCivjgoTjgb7jgZDjgaEs44GL44Gk44G/DQor44KI44GX44KA44KJLOOBguOBpOOBkw0KK+OBpOOBoCzjgZfjgpPjgaHjgocNCivjgYvjgaTjgonjgYQs44Gy44Go44GXDQor44G/44Gq44GELOOBm+OBhOOBhOOBoQ0KK+OBn+OBjeOBkOOBoSzjgZ/jgYvjgZcNCivjgo/jgZHjgbks44Gy44Gn44GKDQor44Gr44GX44GL44KPLOOBjeOCh+OBkw0KK+OBl+OCieOBjOOBjSzjgarjgYrjgZMNCivjgbDjgbAs44G+44GV44GC44GNDQor44GC44GL44KKLOOBmeOBv+OBig0KK+OBguOBuSzjgY/jgavjgYLjgY0NCivjgYvjgYQs44GL44Gk44KEDQor44GK44KC44KKLOOBguOBjeOBsuOCjQ0KK+OBmeOBmuOBjSzjgZfjgZLjgosNCivjgarjgYzjgZXjgo8s44GV44Go44KLDQor44GV44KP44GgLOOBqOOCiw0KK+OBguOBmuOBvizjgY3jgojjgZcNCivjgYrjga4s44GdDQor44GL44KP44Gr44GXLOOBl+OCheOBq+OBoQ0KK+OBvuOBquOBuSzjgoDjgaTjgbLjgo0NCivjgYLjgorjgoTjgb4s44KG44GG44GYDQor44Gr44GX44GL44KPLOOBn+OBi+OChuOBjQ0KK+OBguOBpOOBvyzjgo/jgZ/jgosNCivjgYTjgajjgYYs44Go44GX44GL44GaDQor44Gy44KN44GfLOOBi+OBmuOBig0KK+OBu+OBi+OBnuOBrizjgojjgZfjgbLjgo0NCivjgbvjgZfjga4s44G+44GV44KEDQor44KE44G+44GQ44GhLOOBsuOCjeOBguOBjQ0KK+OBguOBjOOBnyzjgb7jgZXjgYvjgZoNCivjgb7jgovjgYos44KK44KH44GYDQor44GT44GE44GnLOOBn+OBj+OChA0KK+OBi+OBv+OCgOOCiSzjgY/jgavjgbLjgo0NCivjgZXjgYTjgajjgYYs44Gy44Gn44GL44GkDQor44G144GP44G/44GkLOOBn+OBi+OBlw0KK+OBsuOCieOChOOBvizjgbLjgajjgZcNCivjgZXjgYTjgajjgYYs44GI44G/44GTDQor44GE44GR44GKLOOBruOBtuOChuOBjQ0KK+OBteOCi+OBi+OCjyzjgbLjgafjgY0NCivjgYTjgYTjgaAs44Gu44G244Gy44GnDQor44G/44KE44GW44GNLOOBi+OBmuOBsuOCjQ0KK+OCiOOBl+OBoCzjgobjgYbjgZgNCivjgY3jgY/jgZ8s44GN44KI44GXDQor44Gh44GwLOOBl+OCheOBmA0KK+OBqOOCiuOChOOBvizjgbLjgo3jgobjgY0NCivjgYjjgZbjgo8s44Go44GX44KEDQor44GK44GwLOOBi+OBmuOBqA0KK+OChOOBvuOCguOBqCzjgoTjgZnjgbLjgo0NCivjgavjgZfjgYvjgo8s44G+44GT44GoDQor44GI44KT44GpLOOBk+OBhuOBmA0KK+OBteOBj+OBhCzjgojjgZfjgobjgY0NCivjga/jgb7jga4s44Gy44KN44GC44GNDQor44GN44Gf44Gv44KJLOOBvuOBleOBsuOBpw0KK+OBleOBqOOBhizjgarjgYrjgY0NCivjgb7jgaTjgYos44GC44Gk44GXDQor44Go44KI44GfLOOBsuOBi+OCiw0KK+OBsuOCieOCguOBqCzjgabjgaTjgoQNCivjgoTjgb7jgoLjgags44G/44Gu44KLDQor44Gv44G+44GgLOOBmOOCheOBq+OBoQ0KK+OBhOOCj+OBi+OBvyzjgbLjgo3jgYLjgY0NCivjgY/jgbws44KC44Go44Gy44KNDQor44GI44KT44GpLOOChOOBmeOChuOBjQ0KK+OBi+OBkuOChOOBvizjgYjjgorjgZMNCivjgavjgYTjgoQs44Gm44Gk44GKDQor44GT44GhLOOCiuOBpOOBig0KK+OBguOBoOOBoSzjgorjgoXjgYbjgZ/jgo3jgYYNCivjga/jgoTjgZcs44KI44GX44Gf44G/DQor44Gq44GL44GuLOOBiuOBleOCgA0KK+OBhOOBl+OBr+OBvizjgb7jgZXjga7jgbYNCivjgZPjgY/jgbws44G+44GV44Gv44KLDQor44GL44KP44GuLOOBiuOBleOCgA0KK+OBquOBi+OBmOOBvizjgojjgYTjgaENCivjgZ/jgYTjgoks44GR44KT44GY44KHDQor44Gf44GR44GOLOOChuOBjeOBsuOCjQ0KK+OCguOCiuOBl+OBvizjgb7jgZXjgbXjgb8NCivjgarjgYvjgoDjgoks44Gy44Gn44KEDQor44Gu44GQ44GhLOOBqOOBl+OBsuOBpw0KK+OBguOCieOBjSzjgZPjgYbjgZ/jgo3jgYYNCivjgYLjgoks44G+44KG44G/DQor44GE44Go44GGLOOBv+OBruOCiw0KK+OBr+OChOOBleOBiyzjgabjgaTjgYoNCivjgZPjgaTjgYss44GL44Ga44Gy44KNDQor44Gf44GR44GG44GhLOOBvuOBleOBruOCig0KK+OBhOOCj+OBnyzjgajjgoLjgobjgY0NCivjgb7jgYjjgaAs44KG44GZ44GRDQor44G744Gd44GL44KPLOOBl+OBkuOChuOBjQ0KK+OBguOCieOBhCzjgZfjgoXjgpPjgZgNCivjgYrjgY/jgoks44G+44GT44GoDQor44Gf44GR44GT44GXLOOBvuOBleOBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgorjgoXjgbLjgaENCivjgZfjgb/jgZos44Gv44GY44KBDQor44GE44Go44GGLOOBruOCiuOBsuOBkw0KK+OBhOOBmuOBvyzjgaTjgojjgZcNCivjgZTjgags44KK44Gk44GKDQor44GK44Gk44G8LOOBqOOCguOBkw0KK+OBi+OBv+OBk+OBjOOCjyzjgbLjgo3jgYLjgY0NCivjgZ/jgZHjgYQs44Gy44KN44GNDQor44G/44KE44Gv44KJLOOChOOBmeOBpuOCiw0KK+OBguOCj+OBmCzjgbLjgo3jgZcNCivjgYbjgZfjgo3jgaAs44Gq44GK44GTDQor44KC44KK44GE44Ga44G/LOOBteOBqOOBlw0KK+OBquOBjOOBrizjgb7jgZXjgYvjgZoNCivjgZ/jgarjgYss44Gy44KN44GXDQor44G144GL44GILOOBn+OBi+OBlw0KK+OBteOCi+OChCzjgojjgZfjgYoNCivjgb/jgZrjgbLjgY0s44G+44GV44Gy44KNDQor44GP44G8LOOChOOBmeOBsuOCjQ0KK+OBn+OBkOOBoSzjgYvjgpPjgZgNCivjgarjgYvjgYos44GC44Gk44GXDQor44KE44G+44GX44GfLOOBkeOCk+OBmA0KK+OBj+OCjeOBjSzjgYvjgaTjgajjgZcNCivjgb7jgaTjgaAs44KI44GX44Gk44GQDQor44GK44Gg44GY44G+LOOBi+OBreOBv+OBpA0KK+OBu+OCiizjgZ3jgYbjgZ/jgo3jgYYNCivjgZ/jgavjgZDjgaEs44GL44Ga44G/DQor44GC44KJ44GELOOBl+OCk+OBhOOBoQ0KK+OBlOOBqCzjgZXjgajjgZMNCivjgajjga3jgYzjgo8s44G+44GV44GXDQor44KC44KK44GfLOOBguOBpOOBig0KK+OBteOCi+OBi+OCjyzjgYvjgYrjgosNCivjgobjgY0s44Gv44GY44KBDQor44GX44KJ44GE44GXLOOBguOBpOOBlw0KK+OBhOOBkeOChCzjgoDjga3jgobjgY0NCivjgo/jgZ/jgarjgbks44GR44KT44GYDQor44Gf44Gr44GQ44GhLOOBv+OBleOBig0KK+OBvuOBmeOBoCzjgojjgZfjgYoNCivjgb/jgZrjgZDjgaEs44G/44Gk44KI44GXDQor44Gv44KE44G/44GaLOOBteOBv+OBguOBjQ0KK+OBu+OBi+OCiizjgaTjgY7jgagNCivjgYTjgZfjgYQs44KG44Gy44GhDQor44GX44KJ44GE44GXLOOBl+OCh+OBlA0KK+OBl+OCguOBi+OCj+OCiSzjgZHjgpPjgYTjgaENCivjgoLjgorjgoLjgags44Gq44G744G/DQor44GE44Go44GGLOOChuOBjeOBig0KK+OBiuOBsuOCgyzjgaTjga3jgoTjgZkNCivjgb/jgojjgZcs44Go44GX44Gu44KKDQor44GX44Gw44GfLOOBpuOBpOOBmA0KK+OBn+OCk+OBluOCkyzjga7jgorjgobjgY0NCivjgYTjgo/jgZXjgY0s44Gf44GL44GTDQor44G144GP44GELOOBl+OBkuOBig0KK+OCguOCiuOBsOOChOOBlyzjgojjgZfjga7jgooNCivjgoTjgb7jgaAs44Gf44GL44Gy44KNDQor44G144GY44KP44KJLOOBleOBoeOBkw0KK+OBquOBpOOCgSzjgZ/jgaTjgYrjgY0NCivjgZfjga7jga/jgoks44GT44GG44GE44GhDQor44GK44GV44GgLOOBl+OBruOBtg0KK+OBteOBmOOBr+OCiSzjgZjjgo0NCivjgbXjgZjjgoLjgags44KG44G/DQor44GN44GuLOOBguOBjeOBsuOBkw0KK+OChOOBvuOCguOBqCzjga7jgorjgbLjgZMNCivjgYTjgZfjgZjjgb4s44G+44GV44Gy44GTDQor44GE44GMLOOBl+OBkuOBsuOCjQ0KK+OBquOBi+OBiCzjgajjgoLjgZMNCivjgoTjga4s44Gy44KN44GXDQor44GL44Gq44G/44GkLOOBkeOBhOOBmA0KK+OBmeOBmuOBjSzjgb/jga7jgosNCivjgZ/jgYvjgaAs44Gu44KK44Gy44KNDQor44GE44GX44Gw44GXLOOBqOOCguOBsuOBkw0KK+OBiuOBpOOBvCzjgbLjgafjgYvjgZoNCivjgZnjgY4s44GV44Go44GXDQor44Gv44KE44GX44GQ44GhLOOBi+OBmuOChA0KK+OBpuOCieOBl+OBnyzjgbLjgafjgb8NCivjgZfjgoLjgoTjgb4s44GV44Go44GXDQor44G/44KE44GW44GNLOOChOOBmeOBqA0KK+OCguOCiizjgbLjgo3jgZcNCivjgoTjgb7jgoLjgags44G+44GV44GXDQor44Gn44GC44GELOOBn+OBkeOBsuOBqA0KK+OBu+OCiizjgbLjgo3jgb8NCivjgYLjga3jgZbjgY0s44KI44GX44GKDQor44GP44G844GfLOOCguOBqOOBjQ0KK+OBlOOBmOOChyzjgoLjgorjgbLjgo0NCivjgbLjgY3jgaAs44GC44GN44KJDQor44GV44GL44GQ44GhLOOBoOOBhOOBmA0KK+OCiOOBl+OBhCzjgobjgYbjgZgNCivjgY3jgZ/jga/jgoks44GK44GV44KADQor44G144GY44GELOOBpuOCi+OBig0KK+OBquOCgeOBjSzjgorjgofjgZMNCivjgojjgZfjgoDjgoks44Gy44KN44KG44GNDQor44Gf44KA44KJLOOBv+OBpOOBr+OCiw0KK+OBhuOBv+OBrizjgZ/jgYvjgZcNCivjgYLjgpPjganjgYYs44Gy44KN44GXDQor44KI44GX44KC44GoLOOBi+OBmuOBig0KK+OBreOCguOBqCzjgojjgZfjgbXjgb8NCivjgb/jgoTjgZbjgY0s44G/44Gk44KLDQor44Gf44GL44KC44KKLOOChOOBmeOBsuOCjQ0KK+OBj+OBvuOBjOOBhCzjgbLjgajjgZcNCivjgZTjgaAs44GN44KI44Gy44KNDQor44Gv44GfLOOBqOOBl+OChuOBjQ0KK+OBj+OBmuOBvyzjgYvjgZrjgYoNCivjgarjgaTjgYQs44Gf44GL44Gy44KNDQor44GX44G+44GgLOOBvuOBleOBqOOBlw0KK+OBiuOBpOOBjSzjgbLjgo3jgZcNCivjgb7jgb/jgoQs44Gu44KK44GC44GNDQor44GV44Go44GGLOOBn+OBi+OBlw0KK+OBk+OBsOOCiizjgYvjgaTjgagNCivjgZXjgZXjgY0s44G/44Gp44KKDQor44GL44Gt44GTLOOChOOBmeOBkw0KK+OBiuOBrizjgajjgZfjgYoNCivjgYrjgbLjgoPjgb4s44Gg44GE44GZ44GRDQor44G+44Go44GwLOOBsuOCjeOBlw0KK+OBhOOBn+OBj+OCiSzjgbLjgo3jgZcNCivjgYrjgaDjgZfjgb4s44Gf44GR44GXDQor44GX44GE44GNLOOCiOOBl+OBteOBvw0KK+OBl+OBsOOBnyzjgb7jgZXjgbLjgZMNCivjgYvjgaTjgoks44Gh44GI44GTDQor44GC44KJ44GELOOBj+OBq+OBig0KK+OBleOBhOOBqOOBhizjgZPjgYbjgZ/jgo3jgYYNCivjgb7jgaTjgoLjgags44GT44GG44GE44GhDQor44GG44GI44KE44G+LOOBleOBoeOBkw0KK+OBvuOBrizjgYTjgY/jgYoNCivjgb/jgZXjgYos44Gy44Gn44GKDQor44Gd44Gu44G5LOOBi+OBmuOBsuOCjQ0KK+OBmeOBmuOBjSzjgbLjgo3jgYvjgZoNCivjgoTjgZ/jgass44GR44KT44GYDQor44KA44GfLOOBsuOBp+OChuOBjQ0KK+OBvuOCi+OChOOBvizjgoTjgZnjgobjgY0NCivjgbXjgaAs44G+44GV44GNDQor44GT44Gw44KE44GXLOOBqOOBiuOCiw0KK+OCj+OBn+OBquOBuSzjgojjgZfjgYgNCivjgYrjgaAs44G+44GV44Gv44KLDQor44GK44G144GhLOOBmOOCheOBq+OBoQ0KK+OBn+OBquOBiyzjgYvjgaTjgo0NCivjgZXjgo/jgY0s44Gu44KK44GTDQor44GV44GE44Go44GGLOOBi+OBmuOBsuOCjQ0KK+OBr+OBjuOBrizjgaHjgYvjgZMNCivjgYbjgZfjgoTjgb4s44KI44GX44Gu44KKDQor44GK44GP44Gy44KJLOOBpOOCiOOBlw0KK+OCiOOBl+OBhOOBkSzjgb7jgZXjga7jgooNCivjgZPjgpPjga4s44G/44Gk44Gq44KKDQor44Gu44GgLOOBl+OCk+OBhOOBoQ0KK+OBiOOCk+OBqSzjgarjgYrjgY0NCivjgZnjgZrjgY0s44GN44G/44KG44GNDQor44Gf44Gq44GLLOOBguOBjeOBig0KK+OBjeOBqSzjgY3jgofjgZMNCivjgYTjgajjgYYs44G+44Gq44G2DQor44G144GY44KP44KJLOOBteOBv+OBguOBjQ0KK+OBr+OBm+OBjOOCjyzjgZ/jgYvjgojjgZcNCivjgb7jgZnjgoLjgags44GR44GE44GE44Gh44KN44GGDQor44GL44GELOOBi+OBiuOCiw0KK+OBn+OBi+OBr+OBnyzjgb7jgZPjgagNCivjgbLjgafjgZfjgb4s44G+44GV44GKDQor44Gf44GL44KE44G+LOOBl+OBkuOBig0KK+OBv+OChOOBjSzjgb7jgZXjgZcNCivjgbXjgZss44Gy44KN44GXDQor44KC44KC44GELOOBruOBvOOCiw0KK+OBpOOChuOBjSzjgZ/jgYvjgZcNCivjgYvjgo/jga/jgoks44Gu44G244Gy44KNDQor44G+44Gk44GELOOBleOBquOBiA0KK+OBr+OBquOCjyzjgobjgYbjgZMNCivjgbLjgo/jgaAs44Go44GX44GKDQor44G+44GZ44GELOOBqOOBl+OChuOBjQ0KK+OBi+OBqOOBhizjgb/jgaTjgYoNCivjgZ/jgZHjgb4s44KI44GX44Gy44KNDQor44GX44KJ44GE44GXLOOBkeOBhOOBmA0KK+OBteOCi+OBi+OCjyzjgb7jgZXjga7jgbYNCivjgabjgZjjgb4s44Go44GX44Gv44KLDQor44GC44GN44KC44GoLOOBguOBjeOCiQ0KK+OBmeOBjuOChOOBvizjgZHjgYTjgZgNCivjgarjgpPjgbYs44Gy44Go44GXDQor44Gk44GY44GuLOOBqOOCguOBkw0KK+OBpuOCieOBleOBiyzjgYvjgZrjga7jgooNCivjgZXjgYvjgYQs44GX44GS44GNDQor44GP44G8LOOChuOBn+OBiw0KK+OBvuOCi+OBn+OBqyzjgYvjgZrjgbLjgZMNCivjgZ/jgYvjga/jgZcs44Gy44KN44KE44GZDQor44G+44Gk44GG44KJLOOBv+OBpOOBkA0KK+OBn+OBquOBiyzjgZfjgZLjgosNCivjgobjgZbjgo8s44GC44GN44Gy44KNDQor44Gf44GL44Gv44GXLOOBvuOBleOBsuOCjQ0KK+OBiuOBsCzjgabjgaTjgoQNCivjgb7jgYjjgYvjgo8s44Gf44GL44GXDQor44Gr44KPLOOBn+OBoOOBpOOBkA0KK+OBi+OCj+OCgOOCiSzjgbXjgb/jgYoNCivjgZPjgYTjgZEs44KI44GX44GKDQor44GP44KK44GX44GfLOOBl+OCh+OBhOOBoQ0KK+OBsuOCjeOBmyzjgYLjgY3jgokNCivjgZPjga4s44GV44Go44GXDQor44Gv44Gb44GM44KPLOOBsuOCjeOBguOBjQ0KK+OBhOOBqOOBhizjgobjgY3jgbLjgo0NCivjgY3jgZbjgY0s44GR44KTDQor44GI44Gq44G/LOOBhOOBo+OBl+OCkw0KK+OBpOOBi+OBquOBiyzjgbLjgafjgYLjgY0NCivjgZXjgYvjgoLjgags44GC44Gk44GXDQor44G+44Gk44Gw44KJLOOBvuOBleOChA0KK+OBpuOCieOBhCzjgb/jga7jgosNCivjgYrjgZfjgZ8s44GX44KT44KEDQor44Gf44Gq44GLLOOBm+OCk+OBmA0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgYLjgY0NCivjgYTjgZfjgZDjgo0s44GL44Ga44KEDQor44Gv44GX44KC44GoLOOBl+OCk+OBlA0KK+OBleOBqOOBhizjgajjgYrjgosNCivjgoTjgb7jgoLjgags44Go44GK44KLDQor44G144KL44GL44KPLOOBvuOBleOBjQ0KK+OChOOBvuOBoCzjgYvjgZrjgYgNCivjgYTjgY/jgZ8s44Go44GX44KG44GNDQor44GV44Go44GGLOOBiuOBleOCgA0KK+OCj+OBn+OBquOBuSzjgZ/jgY/jgoQNCivjgYvjgZMs44Gy44KN44Gy44GTDQor44G+44GZ44GgLOOBsuOCjeOBlw0KK+OBi+OBv+OBmCzjgYLjgaTjgZcNCivjgYTjga/jgoks44Gu44KK44GC44GNDQor44GC44GV44G/LOOBteOBv+OBguOBjQ0KK+OBquOBi+OBmOOBvizjgbLjgo3jgb8NCivjgZPjgZ/jgY0s44Gy44Gn44GKDQor44GL44KP44KC44GoLOOBl+OBkuOBguOBjQ0KK+OBi+OCj+OBl+OBvizjgZ/jgYvjgojjgZcNCivjgYLjgZrjgb4s44KI44GX44GC44GNDQor44Gq44GL44GuLOOBvuOBquOBtg0KK+OBsuOCieOBrizjgojjgZfjgagNCivjgZ/jgYvjga/jgZcs44GZ44G/44GTDQor44G144GL44KELOOChOOBmeOBsuOCjQ0KK+OBiuOBsCzjgajjgYrjgosNCivjgZXjgY/jgonjgYQs44Go44GX44Gu44G2DQor44GV44GL44GELOOBsuOCjeOBqA0KK+OBguOBiuOBjSzjgZfjgofjgZMNCivjgojjgZfjgaAs44KG44Gy44GhDQor44GT44Gv44GXLOOBi+OBmuOBsuOCjQ0KK+OBvuOBpOOBhuOCiSzjgZ/jgaTjgZgNCivjgZXjgajjgYYs44Gy44KN44Gu44KKDQor44Gr44GX44GN44GK44KKLOOBn+OBi+OChuOBjQ0KK+OBv+OCiOOBlyzjgYvjgZrjgbLjgo0NCivjgZPjgZnjgY4s44GL44Ga44Gy44KNDQor44GV44Go44GGLOOBn+OBi+OBlw0KK+OBteOBmOOBhCzjgabjgaTjgoQNCivjgbXjgarjgaAs44GI44GE44GE44GhDQor44GZ44GO44GfLOOBi+OBmuOBsuOBkw0KK+OBl+OCh+OBoCzjgorjgoXjgZgNCivjgoLjgorjgZfjgZ8s44GX44KF44GE44GhDQor44Gy44KJLOOBleOBqOOBlw0KK+OBl+OCk+OBn+OBjyzjgb7jgZXjgosNCivjgbLjgYzjgZfjgaAs44KC44KC44GNDQor44GP44KK44GfLOOBn+OBkeOBlw0KK+OBhOOBquOBoCzjgbLjgo3jgYLjgY0NCivjgavjgZfjga4s44GE44Gj44Gb44GEDQor44GE44GR44GY44KKLOOBn+OBj+OBig0KK+OBquOBi+OCgOOCiSzjgoTjgZnjgZcNCivjgarjgYvjgYvjgaks44G+44GV44Gu44KKDQor44GE44Gu44G+44GfLOOBpuOBo+OBuuOBhA0KK+OBpOOCi+OBvyzjgYrjgZXjgoANCivjgbLjgonjgoLjgags44Go44KC44GTDQor44G/44KI44GXLOOCiOOBl+OBsuOBlQ0KK+OBguOCj+OBrizjgaTjgYvjgZUNCivjgYLjgY3jgZ8s44Gf44GL44GE44GhDQor44Gy44GM44GX44KE44G+LOOCiOOBl+OBsuOCjQ0KK+OBleOBqOOBhizjgYvjgZrjgbLjgZMNCivjgYvjgo/jgZXjgY0s44Go44GK44KLDQor44G+44KL44KE44G+LOOBi+OBmuOBsuOCjQ0KK+OBmeOBquOBjCzjgajjgZfjgYoNCivjgYTjgb7jgYQs44Gy44Go44GXDQor44G144GY44GELOOBsuOCjeOChuOBjQ0KK+OBvuOBjeOBnyzjgajjgZfjgobjgY0NCivjgYTjgajjgYYs44G+44GV44KI44GXDQor44Gf44GL44Gv44GXLOOChuOBleOBjw0KK+OBjeOCiuOBvizjgajjgZfjgoQNCivjgYrjgavjgZcs44Gu44KK44GC44GNDQor44G/44Gu44GX44G+LOOBquOBiuOBsuOCjQ0KK+OBleOBqOOBhizjgojjgbLjgaENCivjgoTjgb7jgZfjgZ8s44Gy44KN44GXDQor44G/44Gf44KA44KJLOOBsuOCjeOCiOOBlw0KK+OBleOBqOOBhizjgZfjgZLjgY0NCivjgajjgb7jgaQs44G144G/44GC44GNDQor44GI44Gz44GX44G+LOOBn+OBi+OBlw0KK+OCj+OBoCzjgojjgZfjgYgNCivjgZnjgZrjgY0s44Gf44GR44GXDQor44GZ44GM44Gv44KJLOOBsuOCjeOBvw0KK+OBn+OBkOOBoSzjgZHjgYTjgYTjgaENCivjgajjgYzjgZcs44Gv44Gk44GKDQor44Gq44GM44Gv44KJLOOBsuOBp+OBjQ0KK+OChOOBvuOCguOBqCzjgZ/jgb/jgZMNCivjgZ/jgZHjgaAs44KG44GN44GKDQor44GV44Go44GGLOOBv+OBpOOBig0KK+OBn+OBi+OBv+OChCzjgZ/jgaTjgZcNCivjgYLjgYrjgY0s44KK44KF44Gy44GhDQor44GT44KE44GOLOOBl+OCk+OBmA0KK+OBiuOBruOBluOBjSzjgajjgoLjgobjgY0NCivjgoLjgorjgZ8s44Gf44GR44Gy44GoDQor44GV44GP44KJ44GOLOOBi+OBmuOBn+OBiw0KK+OBiuOBi+OBleOBiyzjgZ/jgYvjgobjgY0NCivjgoTjgb7jgZDjgaEs44G+44KG44G/DQor44GL44KP44GX44G+LOOBl+OBkuOCiw0KK+OBhOOCj+OBrizjgZ/jgb7jgb8NCivjgZTjgZMs44KE44GZ44KG44GNDQor44KC44KK44GfLOOBi+OBmuOChA0KK+OBl+OBkuOBn+OBiyzjgY3jgojjgZ/jgYsNCivjgabjgZrjgYss44G/44Gk44KLDQor44GK44GfLOOBsuOCjeOCgA0KK+OChOOBvuOBoCzjgb7jgZXjgbLjgZMNCivjgbXjgYvjgaAs44GV44Go44KLDQor44Gv44Gb44G5LOOBkeOBhOOBkw0KK+OBvuOBpOOBrizjgb7jgZXjgobjgY0NCivjgaTjgZjjgYvjgo8s44G/44Gu44KLDQor44G+44Gk44KC44GoLOOBsuOBp+OBruOBtg0KK+OBm+OBruOBiizjgZ/jgYvjgbLjgo0NCivjga7jgoDjgoks44GZ44G/44Gf44GLDQor44GC44KJ44GELOOCiuOCh+OBmeOBkQ0KK+OBiuOBkOOCiizjga7jgorjgZMNCivjgZjjgpPjga4s44KG44G/44GTDQor44Gy44KN44Ga44G/LOOBsuOCjeOBruOCig0KK+OBvuOBpOOBhCzjgZPjgZnjgZENCivjgZfjgbDjgZbjgY0s44KI44GX44Gu44KKDQor44GE44Gu44GG44GILOOBi+OBmuOBruOCig0KK+OBn+OBquOBiyzjgoTjgZnjga/jgosNCivjgZXjgZ0s44KE44GZ44GYDQor44GX44KJ44Gv44G+LOOBquOBiuOBjQ0KK+OBn+OBquOBiyzjgYjjgYTjgZXjgY8NCivjgarjgYvjgoDjgoks44Gk44KI44GXDQor44GE44GX44GM44G/LOOBvuOBleOBr+OCiw0KK+OBl+OBsOOBnyzjgbLjgZXjgobjgY0NCivjga7jgZDjgaEs44KC44Go44GC44GNDQor44GE44Gh44GwLOOBguOBpOOBlw0KK+OBi+OCj+OBkOOBoSzjgZHjgpPjgYTjgaHjgo0NCivjgojjgZfjgb8s44GL44Gk44G/DQor44G144GY44GL44KPLOOBr+OBmOOCgQ0KK+OBi+OBqOOBhizjgZXjgajjgZcNCivjgZ/jgYvjga/jgZcs44Go44KI44GX44GSDQor44G144GY44GV44KPLOOBmeOBv+OBiA0KK+OBv+OBmuOBn+OBqyzjgb7jgZXjgbLjgo0NCivjgZvjgY3jgZDjgaEs44G/44Gu44KLDQor44G+44GI44GL44KPLOOBmeOBmeOCgA0KK+OBguOCieOBhCzjgYLjgaTjgZcNCivjgoLjgoos44Gy44Gn44GKDQor44GV44Go44GGLOOBsuOBp+OBi+OBmg0KK+OBj+OCj+OBnyzjgarjgYrjgbXjgb8NCivjgYrjgZDjgoos44GC44GN44Gy44GTDQor44Gy44KJ44GELOOBquOBiuOBjQ0KK+OBq+OBl+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjgYrjgY/jgoks44KI44GX44GC44GNDQor44Gd44Gu44G5LOOBpuOBo+OBuuOBhA0KK+OBhOOBhOOBoCzjgYLjgobjgb8NCivjgZPjgZDjgaEs44GT44GG44GYDQor44KC44KN44G744GXLOOBsuOBp+OBkw0KK+OBr+OBvuOBoCzjgbLjgafjgb8NCivjgYvjgarjgZbjgo8s44Gy44KN44KG44GNDQor44G+44Gk44GwLOOBpOOCiOOBlw0KK+OBhOOCj+OBnyzjgYTjgZXjgoANCivjgYLjgZrjgaEs44GL44Ga44GKDQor44GT44KT44GpLOOBqOOCguOBteOBvw0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgo0NCivjgYLjgb7jga4s44KA44Gk44G/DQor44GL44Gf44GgLOOCiuOCheOBmA0KK+OBn+OCgeOBsuOCjSzjgZHjgYTjgZ/jgo3jgYYNCivjgb7jgaTjgaAs44Gq44GK44GTDQor44Gq44KK44GE44GXLOOBl+OCh+OBsuOBoQ0KK+OBiuOBjeOBnyzjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44GL44Gk44Gy44GTDQor44GZ44Ga44GNLOOBteOBv+OBqOOBlw0KK+OBvuOCk+OBvSzjgbLjgZXjga7jgooNCivjgYTjgaHjgYQs44GC44GN44GTDQor44GT44GE44GnLOOChOOBmeOBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgYjjgYTjgYTjgaHjgo3jgYYNCivjgarjgYvjgYzjgo8s44Gy44Gn44GL44GaDQor44GK44Gv44G+LOOBruOCiuOBi+OBpA0KK+OBn+OBi+OBr+OBnyzjgYvjgZrjgobjgY0NCivjgZPjgZDjgaEs44GX44GS44KLDQor44G/44KE44GM44KPLOOBsuOBp+OBqOOBlw0KK+OBl+OBsOOChOOBvizjgb7jgZXjgosNCivjgYLjgonjgYQs44GE44GV44GKDQor44KP44Gf44Gq44G5LOOCiOOBl+OBig0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgYLjgY0NCivjgbXjgovjga/jgZ8s44GK44GV44KADQor44Gf44Gr44GQ44GhLOOCguOBqOOBkw0KK+OBu+OCk+OBoCzjgZ/jgYvjgZcNCivjgb7jgaTjgoLjgags44KE44GZ44KI44GXDQor44Gf44GL44GNLOOCguOCiuOBv+OBoQ0KK+OBjeOBj+OBoSzjgbLjgo3jgZcNCivjgYTjga7jgYbjgYgs44KG44GG44GYDQor44Gv44KJLOOBi+OBpOOBvw0KK+OChOOBvuOCguOBqCzjgZHjgpPjgZgNCivjgoDjgonjgYvjgb8s44Go44KC44GTDQor44Gw44GwLOOBquOBiuOBkw0KK+OBr+OBm+OBjOOCjyzjgYvjgZrjgYoNCivjgZXjgZXjgY0s44Gf44GL44GXDQor44GC44Gk44GfLOOBsuOCjeOBvw0KK+OBn+OBoeOBi+OCjyzjgZ/jgYvjgZcNCivjgbLjgonjgoLjgags44GL44Ga44KEDQor44Gq44GL44KA44KJLOOBr+OBmOOCgQ0KK+OBpOOCgOOCiSzjgoTjgZnjgbLjgo0NCivjgZ/jgYvjga/jgZcs44GZ44GZ44KADQor44KI44GT44KE44G+LOOChuOBn+OBiw0KK+OBk+OBn+OBkSzjgb7jgZXjgarjgooNCivjgYLjgpPjgonjgY8s44Gq44GK44GZ44GRDQor44G/44Ga44GuLOOBmeOBmeOCgA0KK+OBiuOBrOOBjSzjgYLjgY3jgbLjgo0NCivjgZXjgYvjgYQs44Gv44KL44G/44GkDQor44GK44GfLOOBl+OCk+OChA0KK+OBr+OChOOBlyzjgZPjgYbjgYTjgaENCivjgZXjgYTjgajjgYYs44G+44GV44GKDQor44Gf44Gq44GLLOOBn+OBi+OBsuOCjQ0KK+OBr+OCi+OBr+OCiSzjgajjgoLjgoTjgZkNCivjgYrjgaTjgYss44G+44GV44Gy44GTDQor44GN44Gf44GM44KPLOOBqOOBl+OBsuOBkw0KK+OCiOOBk+OBnyzjgYLjgY3jgbXjgb8NCivjgojjgZfjgoDjgoks44Gy44Go44G/DQor44GK44Gy44KJLOOBsuOCjeOBpOOBkA0KK+OBoeOCg+OBjSzjgbLjgafjgYLjgY0NCivjgZXjgYvjgZDjgaEs44Go44GX44KEDQor44GZ44Ga44GNLOOBn+OBi+OBig0KK+OBoeOBi+OBluOCjyzjgZ3jgYbjgYTjgaHjgo3jgYYNCivjgarjgYvjgZjjgb4s44G/44Gu44KLDQor44KP44Gf44Gq44G5LOOBv+OBpOOBig0KK+OBl+OBsCzjgZ/jgYvjgZcNCivjgZXjgYvjgYQs44GX44KT44GE44GhDQor44KE44G+44G/44GV44GLLOOBguOBjeOCiQ0KK+OCiOOBl+OBjOOBvyzjga/jgZjjgoENCivjgbLjgonjgaYs44GX44KH44GeDQor44KP44GP44GX44G+LOOBruOCiuOBig0KK+OBguOBleOBvizjgYLjgY3jgbLjgo0NCivjgYLjgZrjgb8s44Gu44KK44GTDQor44GE44Gq44GK44GLLOOBqOOBlA0KK+OBleOBquOBhCzjgb7jgZXjgobjgY0NCivjgoTjgb7jgYbjgaEs44Gy44Gn44G/DQor44GE44Gv44KJLOOBi+OBo+OBuuOBhA0KK+OBn+OChOOBvizjgYLjgaTjgZMNCivjgZXjgZXjgY0s44GX44KT44GE44GhDQor44G144GY44GG44GhLOOBl+OBkuOBsuOBpw0KK+OBhuOBl+OBmOOBvizjgZPjgYbjgYTjgaENCivjga7jga7jgoDjgoks44GC44GN44Gy44KNDQor44Gr44GXLOOBvuOChuOBvw0KK+OBhOOBkeOBoCzjgb7jgZXjga7jgooNCivjgZnjgY7jgZ/jgass44Gf44Gg44GKDQor44GK44GW44GNLOOBmOOCheOCk+OBkw0KK+OBk+OBkeOBpCzjgaHjga/jgosNCivjgZXjgajjgYYs44Gm44Gk44GKDQor44Gb44KT44GwLOOBguOBjeOCiQ0KK+OBguOBmuOBvizjgb7jgZXjgobjgY0NCivjgarjgYrjgYQs44Gf44Gg44GXDQor44G744GX44GuLOOBoeOBi+OCiQ0KK+OBi+OBv+OChCzjgZ/jgaDjgZcNCivjgoDjgonjgZ8s44Gy44KN44GL44GaDQor44GE44Gh44G/44KELOOBsuOCjeOBlw0KK+OBn+OCi+OBhCzjgoTjgZnjgbLjgo0NCivjga/jgY7jga/jgoks44Go44GX44Gy44GTDQor44Gf44GL44Gv44GXLOOBiuOBleOCgA0KK+OBiuOBoeOBguOBhCzjgZfjgpPjgoQNCivjgYLjgY3jgoTjgb4s44Go44GX44GC44GNDQor44GN44KA44KJLOOBl+OCk+OBhOOBoQ0KK+OBr+OChOOBlyzjgb7jgZXjgZ/jgYsNCivjgoTjgb7jgZDjgaEs44Gf44GR44Gy44KNDQor44Go44GT44KNLOOBsuOCjeOBvw0KK+OBi+OBmeOChCzjgbLjgo3jgZcNCivjgYTjgorjgYgs44Gf44GR44GXDQor44KA44KJ44GE44GXLOOBguOBjeOBsuOBlQ0KK+OBl+OCk+OBn+OBqyzjgojjgZnjgZENCivjgYbjgYjjga4s44GC44Gk44GXDQor44GG44Gh44GgLOOBsuOBp+OBqA0KK+OBr+OBm+OBjOOCjyzjgYTjgaHjgo3jgYYNCivjgY/jgo3jgaAs44KI44GX44GNDQor44GE44Go44GGLOOChOOBmeOBsuOCjQ0KK+OBu+OCiuOBhuOBoSzjgbLjgajjgZcNCivjgYrjga/jgZ8s44GR44GE44GTDQor44G744KT44GgLOOChOOBmeOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgb/jgo/jgZMNCivjgZXjgYjjgY0s44Gf44GL44GXDQor44GC44G5LOOBsuOBqOOBlw0KK+OBhuOCgeOBoCzjgZHjgYTjgZnjgZENCivjgazjgb4s44KI44GX44Gy44KNDQor44Gf44G244GhLOOBsuOBp+OBig0KK+OBjeOCgOOCiSzjgb/jgaTjgosNCivjgYbjgaAs44Gq44GK44Gf44GLDQor44GC44GK44GNLOOBiOOBpOOBkw0KK+OBquOBi+OCgOOCiSzjgZfjgoXjgZgNCivjgbXjgZjjgZPjgZcs44G/44Gq44GTDQor44GZ44G/44GgLOOCiuOCheOBmA0KK+OBj+OBmuOBr+OCiSzjgb/jgbsNCivjgo/jgZ/jgarjgbks44GT44GG44GYDQor44GC44KJ44GfLA0KK+OCjeOBo+OBi+OBj+OChuOBjeOBsuOCjSzjgovjgorjgZMNCivjgYTjga7jgYbjgYgs44GL44Gk44Gy44KNDQor44Gk44GY44KC44GoLOOBvuOChA0KK+OBv+OBhuOCiSzjga7jgbbjgYLjgY0NCivjga3jgoLjgags44Gy44Gn44KG44GNDQor44GC44KB44G/44KELOOBmeOBmeOCgA0KK+OBquOBi+OCgOOCiSzjgYrjgY3jgoLjgooNCivjgYLjgYTjgbAs44Gm44KL44Gy44GVDQor44KI44Gt44GW44KPLOOBn+OBi+OBsuOCjQ0KK+OBteOBmOOCgOOCiSzjgb7jgZXjgobjgY0NCivjgorjgoXjgags44KG44Gf44GLDQor44KP44Gf44Gq44G5LOOBv+OBpOOCiw0KK+OBjeOBn+OBjOOCjyzjgZ/jgYvjgb8NCivjgYLjgZ/jgonjgZcs44Gu44KK44GTDQor44GN44GP44GhLOOBvuOBleOBqA0KK+OBmeOBmuOBjSzjgZXjgajjgZcNCivjgZ/jgarjgYss44GN44KI44GXDQor44GE44GR44GgLOOBruOBvOOCiw0KK+OCiOOBk+OBi+OCjyzjgbLjgo3jgZcNCivjgY/jgZXjgaTjgZAs44GV44Go44G/DQor44G/44Ga44GuLOOBvuOChuOBvw0KK+OBquOBjOOBu+OCiizjgb/jgaTjgb7jgZUNCivjgZnjgY7jgoLjgags44G+44GV44G/DQor44GC44KT44Gp44GGLOOBquOBquOBkw0KK+OBn+OBi+OChOOBquOBjizjgojjgZfjgYoNCivjgZfjgbAs44KI44GX44GL44GaDQor44GL44G/44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBiuOBsuOCiSzjga7jgbbjgZ/jgYsNCivjgbvjgpPjgb4s44GX44KT44KEDQor44Gf44Gw44GfLOOBl+OChQ0KK+OBiOOCk+OBqSzjgbLjgo3jgb8NCivjgYTjgZfjgYzjgY0s44Go44KC44G/DQor44GX44GwLOOBl+OCk+OBmA0KK+OChOOBvuOBoCzjgajjgoLjgarjgYoNCivjgZ/jgYvjga4s44GY44KF44KTDQor44KI44GX44GgLOOBguOBjeOCiQ0KK+OBguOBvuOBleOBjSzjgbLjgo3jgZcNCivjgYrjgZfjgYvjgo8s44Gy44KN44Gq44KKDQor44Gr44GX44GuLOOBv+OBpOOBsuOBkw0KK+OBi+OBqOOBhizjgZ/jgYvjgZcNCivjga/jgb7jgYrjgYss44GR44KT44GYDQor44GV44GuLOOBk+OBhuOBhOOBoQ0KK+OBmeOBiOOBl+OBkizjgZPjgYbjgZgNCivjgarjgYvjgZ8s44Gk44Gt44GKDQor44GT44Gw44KE44GXLOOBsuOCjeOBteOBvw0KK+OBmeOBqeOBhizjgb7jgZXjgZMNCivjgaTjgaTjgb8s44GL44Ga44Gy44KNDQor44G/44Gf44GrLOOBsuOCjeOBvw0KK+OBhOOBl+OBoCzjga/jgovjgobjgY0NCivjgYTjgYTjgZrjgYss44Gu44G244KI44GXDQor44GX44KJ44GELOOBkeOCk+OBhOOBoQ0KK+OChOOBvuOBoCzjgZvjgYTjgZgNCivjgaTjgZjjgYvjgaks44KG44Gy44Gh44KNDQor44G+44Gk44Gq44GMLOOBvuOBleOBsuOBqA0KK+OBn+OBquOBiyzjgYvjgaTjgYoNCivjgb/jgarjgb8s44Gf44Gk44KEDQor44GV44GL44GELOOBqOOBl+OBsuOBkw0KK+OBhuOBiOOBjSzjgZfjgpPjgZgNCivjgYrjgaAs44G/44G744GTDQor44G+44GI44GgLOOBiuOBleOCgA0KK+OBp+OBjeOBn+OBqyzjgajjgoLjgZMNCivjgYLjgb7jga4s44Gf44GL44GL44GaDQor44G/44KE44GT44GXLOOBj+OBq+OBpuOCiw0KK+OBguOCk+OBluOBhCzjgbLjgo3jgb8NCivjgYbjgoHjgaAs44Gy44Gn44KG44GNDQor44Gf44GN44GW44KPLOOChOOBmeOBlw0KK+OCgOOCieOBq+OBlyzjgY3jgojjgbLjgagNCivjgY/jgorjga/jgoks44GT44GG44GYDQor44KE44G+44GV44GNLOOChOOBmeOBteOBvw0KK+OBiuOBpOOBiyzjgobjgZ/jgYsNCivjgYLjgb/jga4s44KG44G/DQor44KC44KKLOOBhOOCj+OBig0KK+OBq+OBl+OCguOCiizjgYvjgZrjgZMNCivjgZ/jgZHjga4s44GT44GG44GE44GhDQor44GX44KT44GM44GNLOOBi+OBmuOBiA0KK+OBvuOBpOOBiizjgbLjgo3jgZcNCivjgbXjgZjjga0s44G+44GV44KG44GNDQor44GL44Gq44G+44KLLOOBl+OBiuOCig0KK+OBi+OBquOBluOCjyzjgb7jgZXjgYoNCivjgZfjgb/jgZos44Gb44GE44GYDQor44KP44GgLOOBmOOCheOCkw0KK+OBhOOBl+OBj+OCiSzjgZ/jgYvjgbLjgo0NCivjgbXjgY/jgaAs44GX44GS44GL44GaDQor44GG44GL44GELOOBqOOBl+OBv+OBoQ0KK+OBguOCiuOBvizjgobjgY3jgYoNCivjgYrjgZ8s44GC44Gk44GXDQor44KC44KK44Gf44GrLOOBjeOCiOOBlw0KK+OBguOBoOOBoSzjgajjgZfjgbLjgZMNCivjgY/jgb7jgacs44G+44KKDQor44GC44KJLOOBv+OBpOOBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgZ/jgYvjgZcNCivjgajjgojjgYrjgYss44KE44GZ44Gu44KKDQor44GK44GkLOOBl+OCk+OBmA0KK+OBv+OChOOBjSzjgb7jgZXjgYoNCivjgYTjgZfjgYvjgo8s44KI44GX44GL44GaDQor44GE44GM44KJ44GXLOOCiOOBl+OBjQ0KK+OBiuOBq+OBlyzjgb7jgZXjgY0NCivjgZfjgonjgYTjgZcs44Gy44KN44KI44GXDQor44KI44GT44KBLOOBn+OBpOOChuOBjQ0KK+OBteOBmOOCguOBqCzjgorjgoXjgZgNCivjgYvjgpPjga4s44GE44Gk44GTDQor44Gf44Gh44Gw44GqLOOBn+OBkeOBlw0KK+OChOOBvuOBoCzjgYLjgY3jgbLjgo0NCivjgYLjgZXjgb8s44KI44GX44GTDQor44G/44GG44KJLOOBiuOBleOCgA0KK+OBqOOBj+OBsuOCjSzjgZ/jgYvjgYLjgY0NCivjgoLjgorjgYvjgo8s44Gf44GL44GXDQor44GE44Go44GGLOOCiOOBl+OBsuOCjQ0KK+OBleOBrizjgb7jgZXjga7jgooNCivjgZnjgZrjgY0s44GZ44GZ44KADQor44GX44KC44Go44GuLOOBqOOBiuOCiw0KK+OBvuOBi+OBuSzjgb7jgZPjgagNCivjgYTjgajjgYYs44Gm44Gk44KNDQor44Gk44GP44GgLOOBkeOBhOOBhOOBoQ0KK+OCiOOBl+OBi+OCjyzjgZjjgoXjgavjgaENCivjgZ/jgYvjgoTjgarjgY4s44Gq44GK44Gk44GQDQor44G744KT44GgLOOBjeOCk+OChA0KK+OBq+OBl+OBrizjgZPjgYbjgYTjgaENCivjgY3jgoDjgoks44KI44GX44GC44GNDQor44GL44Go44GGLOOBi+OBmuOBsuOCjQ0KK+OBiuOBr+OBnyzjgoLjgorjgoTjgZkNCivjgYbjgaTjgb8s44G/44Gh44GKDQor44GC44KT44Gp44GGLOOBoeOBquOBvw0KK+OBr+OBvuOBn+OBqyzjgZfjgZLjgYoNCivjgY3jga7jgZfjgZ8s44KE44GZ44GXDQor44GL44KP44GbLOOBsuOCjeOBruOBtg0KK+OBhuOBiOOBrizjgb7jgZXjga7jgbYNCivjgZfjgYvjgb4s44G/44GN44Gy44GVDQor44GZ44Ga44GNLOOBqOOCguOBv+OBpA0KK+OBteOBmOOBiuOBiyzjgb7jgZPjgagNCivjgYTjga7jgYbjgYgs44G+44Gq44G2DQor44GN44Gf44GW44GNLOOBleOBqOOBvw0KK+OBguOBhOOBuSzjgZPjgYbjgZgNCivjgYrjgYvjgo8s44GY44KF44KT44GYDQor44Gf44GR44GELOOBv+OBpOOBkA0KK+OBi+OCieOBr+OBlyzjgbLjgo3jgY0NCivjgZnjgZrjgY0s44Gf44GL44KI44GXDQor44GC44KJ44GELOOChuOBhuOBmA0KK+OBhOOBruOBoCzjgojjgZfjgbLjgo0NCivjgYrjgY/jgoDjgoks44GT44GG44GE44GhDQor44G+44KL44GELOOBmOOCheOCkw0KK+OBsuOCjeOBmuOBvyzjgYvjgZrjgbLjgZMNCivjgo/jgZfjgZos44GL44Ga44Gy44GVDQor44KI44GX44KA44KJLOOBv+OBruOCiw0KK+OBi+OBpOOBvuOBnyzjgZ/jgYvjgbXjgb8NCivjgb7jgZnjgYvjgo8s44Go44GX44Gf44GLDQor44GE44KP44GKLOOCiOOBl+OBsuOBkw0KK+OChOOBvuOCguOBqCzjgorjgofjgZgNCivjgZ/jgarjgYss44G+44GV44KG44GNDQor44Gf44GR44GG44GhLOOBvuOBleOBsuOCjQ0KK+OBruOBr+OCiSzjgajjgoLjgbLjgo0NCivjgbXjgarjga/jgZcs44KE44GZ44KG44GNDQor44Gq44GU44GXLOOBsuOCjeOBlw0KK+OBhuOCgeOBoCzjgZXjgYvjgYgNCivjgYLjgY3jgoTjgb4s44KE44GZ44Gv44KLDQor44Gq44GL44GgLOOBsuOCjeOBlw0KK+OBleOBhOOBqOOBhizjgb7jgobjgb8NCivjgZ/jga/jgoks44Gy44KN44GXDQor44Gr44GX44G+44GkLOOBruOCiuOChuOBjQ0KK+OBsuOCieOBv+OBpCzjgYjjgooNCivjgoHjgYvjgZ8s44GY44KF44KT44GTDQor44Gf44GL44G/LOOBguOBjeOBsuOBlQ0KK+OBneOBruOBoCzjgZ/jgY/jgoQNCivjgb/jgoTjgZbjgY0s44Gf44GL44Gy44GVDQor44G+44KL44KE44G+LOOBn+OBi+OBlw0KK+OBpOOBruOBi+OCjyzjgYvjgaTjgokNCivjga/jgonjgaAs44GX44KF44GYDQor44Gk44GYLOOCiOOBl+OBsuOBqA0KK+OBhOOBjOOCieOBlyzjgZXjgajjgosNCivjgojjgZfjgaAs44Gu44KK44KG44GNDQor44Gf44GR44GM44GfLOOBl+OCheOBng0KK+OBguOBuSzjgYvjgZrjga7jgooNCivjgYLjgYvjgazjgb4s44GR44KT44GYDQor44GL44KP44GgLOOBi+OBmuOChA0KK+OBn+OBlCzjgbLjgajjgZcNCivjgYvjgb/jgoDjgoks44G+44GV44GoDQor44G+44Gk44KELOOCgeOBkOOBvw0KK+OBhOOCj+OBnyzjgZjjgoXjgavjgaHjgo0NCivjgb7jgYjjgYvjgo8s44KI44GX44Gy44KNDQor44KE44G+44GQ44GhLOOBvuOBk+OBqA0KK+OBl+OCjeOBl+OBnyzjgb7jgZXjgosNCivjgoTjgb7jgZfjgZ8s44KK44KF44GG44Gf44KN44GGDQor44Gk44GY44GL44KPLOOBsuOBp+OChuOBjQ0KK+OBn+OBquOBiyzjgobjgYbjgZgNCivjgb/jgarjgb8s44Gy44Gn44GC44GNDQor44GV44Go44GGLOOBvuOBleOBlw0KK+OBhuOBiuOBmuOBvyzjgYvjgaTjgb8NCivjgZnjgY7jgoTjgb4s44Gk44GQ44Gy44GTDQor44Gh44GwLOOBqOOBl+OBig0KK+OBi+OBquOBhCzjgYvjgYrjgooNCivjgb7jgaTjgoTjgb4s44GT44GNDQor44Gf44GL44GuLOOCiuOCh+OBmA0KK+OBj+OBvuOBjOOBhCzjgajjgY/jgbLjgo0NCivjgZ/jgZHjgZPjgZcs44Gy44KN44GC44GNDQor44G144Gf44GwLOOBsuOCjeOBlw0KK+OBhuOCgeOBluOBjSzjgb7jgZXjgZcNCivjgYrjgYTjgo/jgZEs44GS44KTDQor44Gq44GM44Gk44GLLOOBguOBjeOBsuOBkw0KK+OBhOOBvuOBjOOCjyzjgZXjgajjgZcNCivjga/jgZfjgoLjgags44KM44GE44GTDQor44GK44Gy44KJLOOBqOOCguOBsuOCjQ0KK+OBv+OChOOBsuOCiSzjgb7jgZXjgagNCivjga7jgZDjgaEs44GY44KF44Gr44GhDQor44GZ44GO44KC44GoLOOCiOOBl+OBteOBvw0KK+OBi+OCj+OBkOOBoSzjgajjgoLjgbLjgo0NCivjgZfjga7jgZss44KI44GX44GC44GNDQor44Gq44KK44GV44KPLOOBguOBjeOCiQ0KK+OBsuOCjeOBmyzjgbLjgo3jgobjgY0NCivjgavjgZfjgZbjgY0s44G+44GV44KG44GNDQor44KC44KKLOOBleOBqOOBlw0KK+OBteOBi+OBiizjgaTjgojjgZcNCivjgb/jgoTjgZjjgb4s44GC44GN44KJDQor44G+44Gk44GuLOOBk+OBhuOBhOOBoQ0KK+OBhOOCj+OBhCzjgoDjgaTjgbLjgZUNCivjgYvjgYQs44Go44GX44GC44GNDQor44Gf44Gq44GLLOOBi+OBmuOBn+OBoA0KK+OBoeOBsCzjgojjgZnjgZENCivjgZ3jga4s44G+44Gq44G2DQor44KI44GT44KE44G+LOOBsuOBqOOBvw0KK+OBn+OBi+OBl+OBvizjgYLjgY3jgokNCivjgYrjgYvjgoLjgags44KG44Gf44KN44GGDQor44G/44KE44GL44KPLOOBv+OBoeOBguOBjQ0KK+OCgOOCieOCguOBqCzjgZHjgYTjgZ4NCivjgY3jgoDjgoks44GL44Ga44G144G/DQor44G+44Gk44Gq44GMLOOBi+OBpOOBruOCig0KK+OBteOBj+OBoCzjgaTjgojjgZcNCivjgYrjgavjgZcs44KI44GX44Gy44GoDQor44GC44GELOOBguOBjeOBsuOCjQ0KK+OBvuOBiOOBoCzjgZnjgZnjgoANCivjgYTjga7jgYbjgYgs44Gu44G244KG44GNDQor44GE44GE44GgLOOCiOOBl+OBkw0KK+OBteOBmOOBhCzjgZHjgYTjgZ4NCivjgZXjgY/jgonjgYQs44GL44Ga44GX44GSDQor44G+44Gk44GELOOBl+OBkuOBruOBtg0KK+OBhOOBvuOBoCzjgb/jganjgooNCivjgb/jgoTjgZEs44GP44Gr44GTDQor44GV44GL44GELOOBvuOBleOBvw0KK+OBi+OBqOOBhizjgbLjgo3jgZcNCivjgYTjgo/jgZ8s44GC44GN44Gy44GVDQor44GK44GuLOOBmOOCheOCkw0KK+OBhOOBneOBuSzjgZPjgYbjgZgNCivjgYrjgoTjgb7jgaAs44Gg44GE44GZ44GRDQor44Go44GY44G+LOOBqOOCguOBguOBjQ0KK+OBn+OBkeOBhuOBoSzjgZPjgYbjgYTjgaENCivjgarjgYvjgoTjgb4s44KG44G/44GTDQor44GX44KJ44GE44GXLOOBpOOBqOOCgA0KK+OBi+OBruOBvuOBnyzjgb7jgZXjgZcNCivjgZnjganjgYYs44Gy44Gn44GL44GaDQor44GX44KJ44KE44G+LOOBsuOBleOBi+OBmg0KK+OBiuOBsuOCgyzjgojjgZfjgb8NCivjgb/jgarjgYzjgo8s44Gf44GL44Gy44GVDQor44GN44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OBjizjgZ/jgY/jgoQNCivjgZXjgajjgYYs44GG44GE44KKDQor44G144GY44KP44KJLOOBl+OCk+OBmA0KK+OBhOOCguOBqCzjgYLjgaTjgZcNCivjgYbjgYjjga4s44Gy44KN44Gy44GVDQor44GN44KH44GuLOOBiuOBleOCgA0KK+OBjeOCiuOBhizjgarjgYrjgagNCivjgY/jgbzjgZ8s44G+44GV44KEDQor44GT44Gb44GNLOOBn+OBi+OCiOOBlw0KK+OBmeOBluOBjSzjgaTjgajjgoANCivjgZ/jgYvjgZXjgY0s44Gf44Gk44Gy44KNDQor44Gk44GL44KC44GoLOOBi+OBmuOBsuOBkw0KK+OBquOBhOOBqOOBhizjgb7jgZnjgYoNCivjgarjgYvjgZTjgoEs44GK44GV44KADQor44Gq44GL44KA44KJLOOBguOBpOOBlw0KK+OBr+OBjuOCj+OCiSzjgZ/jgYvjgbLjgo0NCivjgb7jgaTjgoLjgags44GC44GN44Gy44KNDQor44GT44GuLOOBvuOBleOCiw0KK+OBleOBhOOBkOOBlSzjgajjgoLjgbLjgo0NCivjgbvjgpPjgaAs44Gf44Gk44KEDQor44Gf44Gq44GLLOOBoOOBhOOBng0KK+OBvuOBpOOBqOOBvyzjgobjgY3jgYoNCivjgYLjgYvjgZXjgYss44G/44Gk44KLDQor44Gb44KT44GM44KTLOOCiOOBhuOBnw0KK+OBn+OBkeOBiizjgajjgoLjgbLjgo0NCivjgoDjgonjgZ8s44GR44KT44GUDQor44GL44KP44GbLOOCiOOBl+OBn+OBoA0KK+OBq+OBl+OBluOBjSzjgaTjga3jgYoNCivjgbjjgYTjgajjgYYs44Gf44GL44GXDQor44GK44GV44KPLOOBvuOBleOBsuOCjQ0KK+OBhuOBiOOBoCzjgoTjgZnjgbLjgZUNCivjgYvjgarjgoTjgb4s44GX44KT44GE44GhDQor44Gv44KJ44GgLOOBkeOCk+OBmA0KK+OBquOBi+OBjOOCjyzjgbLjgo3jgYvjgZoNCivjgb/jgoTjgoLjgoos44Gy44Gn44KE44GZDQor44GL44GELOOBi+OBpOOBvw0KK+OBjeOBkOOBoSzjgYvjgojjgZMNCivjgZXjgZ/jgZEs44KI44GX44Gy44GVDQor44GK44G744GLLOOBn+OCguOBpA0KK+OBquOBi+OBluOCjyzjgobjgY3jgYoNCivjgoTjgZnjgYrjgYss44Gy44KN44GXDQor44GP44KN44G/44GkLOOBi+OCiOOBkw0KK+OBi+OBquOBoCzjgbLjgo3jgYLjgY0NCivjgb7jgovjgYvjgo8s44GC44GN44Gy44GnDQor44Gq44GM44GV44KPLOOBruOCiuOBi+OBmg0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgobjgY0NCivjgYjjgpPjgaks44Go44KC44Gy44KNDQor44GE44KT44Gq44G/LOOBn+OBpOOChuOBjQ0KK+OChOOBvuOCguOBqCzjgYjjgYTjgYTjgaENCivjgarjgYzjgY/jgoks44G+44GV44Gv44KLDQor44GG44GI44GuLOOCiOOBsuOBoQ0KK+OBq+OBl+OBluOBiyzjgoTjgZnjgbLjgZMNCivjgZXjgajjgYYs44Go44KC44KG44GNDQor44KC44KK44KE44G+LOOBguOBpOOBlw0KK+OBk+OBr+OChOOBmyzjgb7jgZPjgagNCivjganjgYTjgZ8s44GR44KT44GYDQor44G744Gd44GL44KPLOOBl+OCheOBmA0KK+OBguOBiuOBjSzjgZHjgpPjgZgNCivjgb7jgZnjgb/jgaAs44Go44GX44KNDQor44GK44GhLOOBk+OBhuOBmA0KK+OBmeOBmuOBjSzjgb7jgZXjgbLjgacNCivjgZnjgY7jgoTjgb4s44KE44GZ44Gf44GLDQor44G144GY44KP44KJLOOBsuOBp+OBjQ0KK+OBn+OBquOBuSzjgbLjgafjgY0NCivjgajjgaAs44Gf44GR44KG44GNDQor44Gk44G844GELOOBl+OChQ0KK+OBmeOBjuOBnyzjgb7jgZXjga7jgooNCivjgYLjgaDjgaEs44Gv44KL44GKDQor44G144GY44GELOOBjeOCiOOBn+OBiw0KK+OBmeOBjOOCguOCiizjgZXjgajjgZcNCivjgoTjgZnjgaAs44G+44Gh44GTDQor44Gf44GL44Gv44GXLOOBv+OBiw0KK+OBn+OBjOOBvyzjgabjgaTjgo0NCivjgajjgb/jgoTjgb4s44Gf44Gk44GKDQor44Gv44Gt44GgLOOBl+OBkuOBig0KK+OBiuOBluOBjSzjgbLjgo3jgZcNCivjgYrjgZDjgoks44Gu44G244GKDQor44Gm44KJ44GV44GNLOOBv+OBpOOBhA0KK+OBpOOBoeOChCzjgajjgoLjgbLjgZMNCivjgYrjgYvjgaAs44G+44GV44GE44GhDQor44GC44G5LOOBkeOCk+OBmA0KK+OBguOBuSzjgZHjgpPjgYTjgaENCivjgoLjgorjgo/jgY0s44Gb44GE44KEDQor44Gv44KE44GuLOOBv+OBpOOChuOBjQ0KK+OBqOOBv+OBquOBjCzjgYLjgaTjgZcNCivjgZnjgZrjgY0s44KE44GZ44GKDQor44GL44Gf44GO44KKLOOBvuOBleOBruOCig0KK+OBguOBr+OCiSzjgZHjgYTjgZ8NCivjgbvjgZcs44G+44GV44GNDQor44GE44GX44GL44KPLOOBsuOCjeOBlw0KK+OBl+OCguOCgOOCiSzjgarjgYrjgbLjgZMNCivjgo/jgY3jgoLjgags44Gy44KN44KG44GNDQor44GL44KP44GmLOOBvuOBleOCiw0KK+OBguOBtuOCieOBi+OCjyzjgobjgYbjgZgNCivjgojjgZfjgZ/jgZEs44KE44GZ44KG44GNDQor44GE44GX44GgLOOBn+OBkeOBlw0KK+OBu+OCk+OBoCzjgoTjgZnjgobjgY0NCivjgZfjgZ/jgb4s44Gu44G244KEDQor44Gu44GQ44GhLOOBiOOBpOOBkw0KK+OBv+OBmuOBhCzjgabjgovjgYoNCivjgYLjgpPjganjgYYs44Gu44G244KG44GNDQor44KI44Gt44GX44G+LOOBv+OBpOOBiA0KK+OBguOBjeOBnyzjgZPjgYbjgYTjgaHjgo0NCivjgYbjgYgs44GR44KT44GfDQor44GZ44GOLOOBmOOCheOCkw0KK+OBquOBi+OBmOOBvizjgb/jgY0NCivjgYvjgZXjgYrjgYss44GV44Go44GXDQor44Gu44GgLOOBr+OChOOBqA0KK+OBvuOBpOOBluOCjyzjgarjgarjgZMNCivjgo/jgZ/jgbks44Gf44Gk44KEDQor44GC44GE44GW44KPLOOCiOOBl+OBsuOBlQ0KK+OBhOOCj+OBlSzjgb/jgobjgY0NCivjgZPjgYws44Gf44GL44GXDQor44Gy44GM44GX44Gf44GrLOOBi+OBmuOBiuOBvw0KK+OBhOOBkeOBoCzjgZ/jgYvjgZcNCivjgYLjgY3jgarjgYss44G+44GV44KG44GNDQor44G144GY44GfLOOBqOOBl+OCjQ0KK+OChOOBvuOBiuOBiyzjgojjgZfjgYoNCivjgo/jgaEs44Gf44GR44GXDQor44GG44GI44GuLOOBguOChOOBig0KK+OBhuOBl+OBjSzjgarjgYrjgbXjgb8NCivjgoTjgb7jgoLjgags44Gq44Gk44G/DQor44GL44Go44GGLOOBmOOCheOCk+OBkw0KK+OBquOBjOOBhCzjgYLjgaTjgZcNCivjgbXjgY/jgaAs44GT44GG44GE44GhDQor44Gq44GL44Gf44GrLOOBvuOCig0KK+OBsuOCieOBleOCjyzjgajjgZfjgbLjgZMNCivjgb/jgoTjgZbjgY0s44Gm44Gk44G144G/DQor44Gm44KJ44GX44G+LOOBk+OBhuOBhOOBoeOCjQ0KK+OBguOCieOBhCzjgZ/jgaTjgYoNCivjgZ/jgarjgYss44GR44GE44GY44KNDQor44GL44Gt44GTLOOBl+OCkw0KK+OBleOBqOOBhizjgYLjgY3jgbLjgZMNCivjgarjgorjgZ8s44Gy44Gn44G144G/DQor44Gq44GM44GX44G+LOOBqOOBl+OChA0KK+OBleOBi+OBrizjgoTjgZnjga/jgosNCivjgb/jgYbjgoks44GL44Ga44KEDQor44KE44G+44GQ44GhLOOBsuOBleOBn+OBiw0KK+OBiuOBp+OCiSzjgZvjgaTjgoQNCivjgYLjgbks44GR44KT44Gf44KN44GGDQor44GT44Gg44G+LOOBi+OBmuOBhOOBoQ0KK+OChOOBvuOCguOBqCzjga/jgovjgbLjgZMNCivjgYrjgZfjgb4s44G+44GV44Go44GXDQor44GE44GX44GaLOOBn+OBoOOBsuOCjQ0KK+OBi+OCk+OBsOOChOOBlyzjgYLjgoTjgZMNCivjgYrjgYvjgo8s44GI44G/DQor44Gy44GI44GgLOOBquOBjOOBkw0KK+OBhOOBruOBvuOBnyzjgb7jgZXjgosNCivjgb7jgY3jgZ8s44KA44Gt44GL44GaDQor44GM44Gq44GvLOOBoeOBjA0KK+OBr+OChOOBi+OCjyzjgZfjgpPjgYTjgaENCivjgYLjgYvjgazjgb4s44Gf44GL44GC44GNDQor44KA44KN44GL44KPLOOBpuOBpOOBmA0KK+OBiuOBrizjgZfjgoXjgbLjgaENCivjgY3jgoDjgoks44GY44KF44Gr44Gh44KNDQor44Gv44Gf44GW44KPLOOBqOOBl+OBig0KK+OBteOBmOOBnyzjgZXjgajjgZcNCivjgYbjgYjjgaAs44GR44GEDQor44KE44G+44Gu44GG44GhLOOBquOBiuOBqOOBlw0KK+OBteOCi+OBnyzjgYLjgaTjgZcNCivjgYrjgY/jgoTjgb4s44GL44Ga44Gy44KNDQor44GE44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBiuOBleOBquOBhCzjgajjgYrjgosNCivjgZPjgZ/jgass44Gk44Go44KADQor44GK44Gk44GLLOOChuOBjeOBig0KK+OBteOBj+OBl+OBvizjgbLjgo3jgobjgY0NCivjgYTjgYTjgZrjgYss44Gf44GR44Gy44GTDQor44KP44Gf44Gq44G5LOOBsuOCjeOBvw0KK+OCguOCiuOBnyzjgajjgZfjgoQNCivjgYvjgajjgYYs44Gf44GL44KG44GNDQor44G744KT44GgLOOBsuOCjeOChuOBjQ0KK+OBi+OBqOOBhizjgabjgaTjgoQNCivjgYLjgZXjgazjgb4s44G+44GV44Gu44KKDQor44GC44Ga44G+LOOBkeOBhOOBmeOBkQ0KK+OBpuOCieOBleOCjyzjgZfjgofjgZQNCivjgYLjgYvjgZcs44KE44GZ44GTDQor44GL44Go44GGLOOBvuOBleOBjQ0KK+OBiuOBruOBleOBqCzjgaDjgYTjgZnjgZENCivjgarjgYvjgoDjgoks44GE44GV44GKDQor44Gu44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBhOOBruOBhuOBiCzjgZHjgpPjgYTjgaHjgo0NCivjga/jgoTjgZcs44G144G/44GKDQor44Gf44KA44KJLOOBm+OBhOOBhOOBoQ0KK+OBleOBi+OBhCzjgZ/jgZHjgZcNCivjgZnjgY7jgoDjgoks44Gf44Gg44GC44GNDQor44Go44G/44KE44G+LOOBk+OBmeOBkQ0KK+OBi+OBjeOBluOCjyzjgZHjgpMNCivjgavjgZfjgZ/jgass44Gm44KL44GC44GNDQor44GC44GV44GP44KJLOOBkeOCk+OBhOOBoeOCjQ0KK+OBhOOBl+OBluOBjSzjgbLjgo3jgY0NCivjgb7jgaTjgoLjgags44Go44GX44GC44GNDQor44Gq44GM44GKLOOBguOBjeOBruOCig0KK+OBjeOBrizjgoTjgZnjgbLjgo0NCivjgYLjgbks44G+44GV44GKDQor44Go44GY44KHLOOBv+OBpOOBig0KK+OChOOBvuOBjSzjgaTjga3jgYoNCivjgYLjgonjgYQs44Gq44GK44GoDQor44KE44G+44GgLOOBn+OBi+OBlw0KK+OBiuOBj+OCgOOCiSzjgbLjgo3jgaTjgZANCivjga/jgoks44Gy44Gn44G/DQor44KE44G+44KC44GoLOOBiOOBhOOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgZfjgpPjgYTjgaENCivjgYLjgonjgYQs44GM44GPDQor44GE44GR44GpLOOBmeOBiOOBruOBtg0KK+OBhOOBqOOBhizjgorjgocNCivjgYTjgajjgYYs44GR44GEDQor44GG44KK44KFLOOBqOOBl+OBguOBjQ0KK+OBhuOBoeOChOOBvizjgZfjgofjgYbjgYTjgaHjgo3jgYYNCivjgYjjga7jgoLjgags44GX44KT44KEDQor44GI44Ga44KJLOOBleOBqOOBlw0KK+OBiuOBpOOBiyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgYjjgavjgoMs44Go44GX44GKDQor44GC44GL44GKLOOCiuOBiA0KK+OBiuOBq+OBlyzjgZ/jgZnjgY8NCivjgYvjgYzjgoQs44GT44GG44GYDQor44GL44G+44GfLOOBk+OBhuOBhOOBoQ0KK+OBi+OCj+OBi+OBvyzjgZLjgpMNCivjgZXjgZXjgY0s44GR44GE44GYDQor44Gf44GL44Gv44GXLOOBi+OBmuOBiA0KK+OBn+OBoCzjgZfjgofjgZ/jgo3jgYYNCivjgavjgZfjga4s44GL44Gk44Gy44GVDQor44GC44GV44GKLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBr+OBl+OCguOBqCzjgYvjgZrjgoQNCivjga/jgaPjgajjgoos44G+44GV44Gf44GLDQor44G744GXLOOBkeOBhOOBmA0KK+OBu+OCiuOBnyzjgobjgYbjgZgNCivjgb7jgYjjgZ7jga4s44GC44GN44KJDQor44G+44GI44GY44G+LOOBn+OBoOOBlw0KK+OBv+OChOOBluOBjSzjgbLjgo3jgb/jgaENCivjgYLjgonjgYQs44Go44GK44KLDQor44KC44KKLOOBkeOBhOOBmeOBkQ0KK+OBvuOBiOOBoCzjgZnjgZnjgoANCivjgYrjgaEs44GR44GE44GZ44GRDQor44GC44GV44GP44KJLOOBl+OCh+OBmA0KK+OBhuOBleOBvyzjgYTjgarjgpMNCivjgYrjgY/jgoTjgb4s44Gf44GL44Gy44KNDQor44GL44KK44KELOOBruOBtuOBsuOBlQ0KK+OBhuOBiOOBoCzjgoTjgZnjgojjgZcNCivjgYrjgZ/jgbks44Gq44GK44Gy44GTDQor44GN44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBj+OBl+OBoCzjgb7jgZXjgojjgZcNCivjgYLjgb7jga8s44Gq44GK44GNDQor44GT44KT44GpLOOBquOBiuOBjQ0KK+OBl+OBv+OBmizjgZ/jgYvjgZMNCivjgZnjgZrjgY0s44Gf44GKDQor44GZ44KTLOOBl+OCk+OBhOOBoQ0KK+OBn+OBqeOBk+OCjSzjgarjgovjgbLjgacNCivjgajjga3jgZXjgY8s44G/44Gu44KLDQor44Gq44GL44KA44KJLOOChuOBv+OBkw0KK+OBvuOBmeOBoCzjgojjgZfjgb8NCivjgb/jgoTjgZbjgY0s44GT44GZ44GRDQor44KI44GX44Gq44GMLOOBsuOCjeOBlw0KK+OCiOOBk+OBi+OCjyzjgZHjgpMNCivjgaTjgaHjgoQs44Gu44KK44GKDQor44Gf44GL44Gv44GXLOOBguOBpOOBlw0KK+OBn+OBquOBuSzjgZ/jgYvjgZcNCivjgYTjgajjgYYs44Gf44GL44Gy44GTDQor44Gq44GM44GKLOOBsuOBp+OChuOBjQ0KK+OBleOBqOOBhizjgZHjgYTjgZ4NCivjgZ/jgaAs44GE44GV44KADQor44GC44GN44KC44GoLOOCiOOBl+OBr+OCiw0KK+OBn+OCgOOCiSzjgZPjgYbjgZgNCivjgZ/jgoDjgoks44KI44GX44GNDQor44GK44GLLOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBleOBj+OCieOBjizjgZfjgoXjgZPjgYYNCivjgZnjgZrjgY0s44GZ44G/44GKDQor44KC44KK44GK44GLLOOBsuOBqOOBlw0KK+OChOOBkOOBoSzjgYTjgZXjgoANCivjgb/jgoTjgoLjgags44Gy44KN44GXDQor44GX44KJ44GL44KPLOOBsuOCjeOBig0KK+OBiuOBpOOBiyzjgb/jga/jgosNCivjgoTjgb7jgoLjgags44GC44GN44Gy44GVDQor44Gq44GL44G+44GhLOOBn+OBj+OBvg0KK+OCj+OBi+OBr+OCiSzjgb7jgobjgb8NCivjgYLjgY0s44G+44GV44Gu44KKDQor44Gf44GN44GfLOOBvuOBleOBmA0KK+OBguOCieOBi+OCjyzjgZHjgYTjgZnjgZENCivjgb7jgaTjgYos44GX44KT44GE44GhDQor44Gh44KHLOOBn+OBkeOBlw0KK+OBj+OCjeOBoCzjgajjgoLjgbLjgo0NCivjgoTjgb7jgZfjgZ8s44GX44KF44KT44GZ44GRDQor44Go44KC44GK44GLLOOBvuOCguOCiw0KK+OBquOBi+OBiizjgYvjgZrjgobjgY0NCivjgYLjgZ0s44G/44Gh44Gv44KLDQor44G144GP44GgLOOBkeOCk+OBhOOBoQ0KK+OBguOBiuOBjSzjgbLjgo3jgZcNCivjgY/jgoss44Gf44Gg44GXDQor44KA44KJ44GL44G/LOOChuOBlw0KK+OBj+OCjeOBoCzjgZXjgajjgZcNCivjgb/jgYvjgb8s44Gy44Gn44GNDQor44GL44G/44KA44KJLOOBsuOBp+OBjQ0KK+OBjeOBn+OBmOOBvizjgajjgoLjgoTjgZkNCivjgb7jgovjgoTjgb4s44KE44GZ44G144G/DQor44GV44Gf44GRLOOChOOBmeOBig0KK+OCguOBpuOBjSzjgZ/jgYvjgZcNCivjgajjgb/jgZ8s44GL44Ga44Gy44KNDQor44Gr44KPLOOBkeOBhOOBhOOBoQ0KK+OBn+OBi+OBsOOBn+OBkSzjgZPjgYbjgZgNCivjgYLjgZrjgb4s44KG44GG44GE44GhDQor44G144KL44KELOOBl+OBkuOCiw0KK+OBquOBmSzjgZ/jgo3jgYYNCivjgZPjgoos44GI44G/44GTDQor44GE44GR44GgLOOCj+OBn+OCiw0KK+OBlOOBqCzjgabjgovjgYvjgZoNCivjgb7jgoss44Gu44G244Gf44GLDQor44G144GP44GgLOOBsuOBqOOBlw0KK+OBmeOBjOOBr+OCiSzjgbLjgZXjgagNCivjgY3jgoDjgoks44KE44GZ44Gy44KNDQor44Gf44GL44GbLOOBn+OBj+OChA0KK+OBq+OBl+OBiuOBiyzjgYLjgY3jgbLjgo0NCivjgbXjgovjgYvjgo8s44Gy44KN44KG44GNDQor44GP44Gp44GGLOOBquOBiuOBjQ0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgbLjgZUNCivjgoTjgb7jgoLjgags44GR44KT44GE44GhDQor44G/44KE44KC44GoLOOBn+OBkeOBlw0KK+OBruOBnyzjgbXjgY0NCivjgarjgYvjgoDjgoks44G144G/44GTDQor44GC44GN44GwLOOBl+OBkuOBruOCig0KK+OBhOOCj+OBjSzjgb7jgZXjgosNCivjgYvjgajjgYYs44GV44Gh44GTDQor44KC44KK44KC44GoLOOCiOOBl+OBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgb7jgooNCivjgarjgYvjgoTjgb4s44G+44GV44Gy44KNDQor44GK44Gf44GrLOOBk+OBhuOBmA0KK+OBmeOBjuOChOOBvizjgZjjgYLjgYPjgpMNCivjgZnjgpMs44Gy44KN44KG44GNDQor44KE44G+44KC44GoLOOBmOOCheOCk+OBmA0KK+OBu+OCk+OBqSzjgajjgZfjgbLjgZMNCivjga/jgYws44G+44KKDQor44GX44GK44GW44GNLOOCiuOChw0KK+OBteOBmOOBrizjgabjgaTjgYoNCivjgYrjga4s44GR44KT44GE44GhDQor44GC44KT44Gp44GGLOOBkeOCk+OBqA0KK+OChOOBvuOBkOOBoSzjgojjgZfjgbLjgo0NCivjgY/jgo3jgaAs44KK44KH44G444GEDQor44GC44KT44Gp44GGLOOChuOBjeOBsuOCjQ0KK+OBhuOBrizjgZfjga7jgbYNCivjgYTjgajjgYbjgZ/jgass44G/44KEDQor44GK44GLLOOBvuOBk+OBqA0KK+OBv+OBhuOCiSzjgZfjgbsNCivjga/jgZfjgoLjgags44G+44GV44GL44GaDQor44GI44KC44GoLOOBi+OBmuOBqOOBlw0KK+OBk+OBjCzjgYvjgZrjgoQNCivjgY3jga/jgoks44GX44GS44Gy44KNDQor44G+44Gk44GgLOOBv+OBruOCiw0KK+OChOOBvuOBoCzjgajjgojjgobjgY0NCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44KE44Gv44GfLOOChuOBn+OBiw0KK+OBn+OBluOBjSzjgYvjgY/jgZgNCivjgoTjgb7jgoLjgags44GL44Ga44Gy44GTDQor44Gf44GL44GgLOOBv+OBruOCiw0KK+OBruOBoCzjgZHjgpPjgZgNCivjgZXjgYTjgb/jgocs44KI44GX44GKDQor44GT44Gw44KE44GXLOOBqOOBl+OBguOBjQ0KK+OBteOBmOOBjSzjgZ/jgYvjgZcNCivjgZfjgonjgZXjgYss44GY44GHDQor44Gh44GH44KTLOOCiuOCh+OBsuOBoQ0KK+OBn+OBi+OBr+OBlyzjgZ/jgZHjgbLjgZMNCivjgoTjgaQs44GI44Gk44G/DQor44GG44GK44Gf44GrLOOBruOBtuOChuOBjQ0KK+OBn+OCgOOCiSzjgYvjgaoNCivjgb7jgaTjgYos44G+44GT44GoDQor44Gq44GL44GW44KPLOOBsuOCjeOBlw0KK+OBjeOBoCzjgbLjgo3jgZcNCivjgZ/jgpPjgZIs44G144G/44Gf44GgDQor44Gy44KN44GbLOOBguOBjeOBkw0KK+OBvuOBpOOBl+OBvizjgojjgbLjgaENCivjgYrjgYvjga4s44Gy44Gn44GKDQor44GC44GK44GNLOOBkeOBhOOBnw0KK+OBr+OBm+OBjOOCjyzjgorjgoXjgbLjgaENCivjgavjgZfjgbvjgoos44Gy44KN44G/DQor44GE44GX44Ga44GLLOOBvuOBleOBpOOBkA0KK+OBpOOBvOOBhCzjgYvjgYrjgosNCivjgYTjgZfjgaAs44GC44KJ44GfDQor44Gv44GX44KC44GoLOOBkeOCk+OBmA0KK+OBlOOBqCzjgbXjgb/jgYoNCivjgYLjgY3jgoTjgb4s44Gu44G244Gy44KNDQor44G/44Gk44Gv44GXLOOBqOOBiuOCiw0KK+OBlOOBl+OBvizjgYLjgaTjgYoNCivjgbXjgY/jgaAs44G144G/44Gy44GTDQor44KE44G+44GX44GfLOOBqOOBl+OBsuOBkw0KK+OBquOBi+OBluOCjyzjgZXjgajjgZcNCivjgavjgZfjgYvjgo8s44Gf44GP44KEDQor44GE44GR44GG44GhLOOChuOBjeOBkw0KK+OBn+OBjOOBvyzjgabjgaTjgo0NCivjgYvjgo/jgY3jgZ8s44GZ44GZ44KADQor44Gq44GL44KA44KJLOOBv+OBoeOChA0KK+OBk+OBvuOBhCzjgZXjgajjgosNCivjgbvjgZfjgoQs44KI44Gy44Gh44KNDQor44GZ44G/44GoLOOCiuOCheOBmA0KK+OBu+OBl+OBrizjgaHjgYvjgokNCivjgarjgYvjgoQs44Gf44GL44KEDQor44Gv44KJLOOBsuOBp+OChuOBjQ0KK+OCgOOCjeOChOOBvizjgb7jgZXjgosNCivjgZfjga7jgaAs44GV44Go44KLDQor44KC44KKLOOBl+OCk+OBmA0KK+OBl+OCieOBhOOBlyzjgbLjgo3jgY0NCivjgbLjgonjga4s44GX44GS44KLDQor44Gv44GX44KC44GoLOOBi+OBmuOBig0KK+OBguOBuSzjgbLjgo3jgZcNCivjgYTjgZfjgYvjgo8s44Gq44GK44G144G/DQor44GC44Ga44G+LOOBsuOBleOBlw0KK+OBiuOBpOOBiyzjgbLjgajjgZcNCivjgYTjgajjgYYs44GL44Ga44KG44GNDQor44GK44GX44G+LOOBn+OBi+OBig0KK+OBk+OBluOBhCzjgZHjgpPjgZjjgo0NCivjgYvjgo/jgYvjgb8s44GM44GPDQor44Gq44GL44GuLOOBk+OBmeOBkQ0KK+OBhuOBmOOCguOBqCzjgYLjgobjgoANCivjgY3jgZfjgaAs44G+44GV44G144G/DQor44GT44GE44Ga44G/LOOBi+OBmuOBig0KK+OBquOBhOOBqOOBhizjgZfjgpPjgYTjgaENCivjgojjgZfjgZrjgb8s44G/44Ga44G7DQor44GZ44GO44KC44KKLOOBi+OBmuOBsuOBkw0KK+OBguOBiuOBjSzjgYvjgZfjgoXjgY8NCivjgZ/jgYvjga/jgZcs44Gy44Gn44GNDQor44GE44GMLOOBvuOBleOBsuOCjQ0KK+OBi+OCj+OBsOOBnyzjgZPjgYbjgZgNCivjgZfjgbDjgZ8s44KG44GG44GTDQor44Gg44KT44GY44KHLOOBmOOCheOCk+OBmA0KK+OBn+OBkOOBoSzjgYLjgorjgYvjgaQNCivjgb7jgaHjgaAs44KI44GX44G/DQor44GC44GX44GgLOOBruOBtuOBig0KK+OBguOCk+OBqeOBhizjgZHjgYQNCivjgoDjgags44Gh44GL44GKDQor44GT44KE44G+LOOBjeOCiOOBsuOCjQ0KK+OBmeOBmuOBjSzjgb7jgZXjgajjgZcNCivjga7jgoDjgoks44KA44Gt44Gy44GTDQor44GE44Go44KELOOBvuOBleOBsuOBkw0KK+OBoeOBi+OBiuOBiyzjgbLjgajjgZcNCivjgZjjgpPjgbYs44Gu44KK44GTDQor44GC44Gg44GhLOOBqOOBl+OBsuOCjQ0KK+OBi+OCj+OBhCzjgojjgZfjgY0NCivjgb/jga7jgo8s44Go44GX44Gy44KNDQor44GC44GV44GyLOOBqOOCguOBr+OCiw0KK+OBiuOBnyzjgZPjgYbjgYTjgaENCivjgZ/jgarjgYss44Gu44KK44GL44GtDQor44GN44KJLOOBruOBnuOBvw0KK+OChOOBvuOBluOBjSzjgbLjgo3jgbLjgacNCivjgoTjgb7jgYbjgaEs44G+44Gq44G/DQor44G744Gj44GfLOOBi+OBmuOBsuOCjQ0KK+OBguOCieOBi+OCjyzjgajjgoLjgYoNCivjgYrjgY/jgoDjgoks44KG44GG44GTDQor44GL44Gt44GTLOOBpuOBhOOBmA0KK+OBguOChOOBrizjgYvjgaTjga7jgooNCivjga/jgoTjgYvjgo8s44GN44KI44GoDQor44GE44Go44GGLOOBkeOBhOOBhOOBoQ0KK+OBiuOBj+OCgOOCiSzjgZjjgoXjgpMNCivjgZ/jgpPjgZbjgo8s44G+44GV44Go44GXDQor44GV44GN44GuLOOBpOOBqOOCgA0KK+OBi+OCj+OBr+OCiSzjgb/jgaHjgoTjgZkNCivjgZ/jgovjgYQs44G+44GV44GXDQor44GC44KK44KC44GoLOOChOOBmeOBlw0KK+OBiOOBs+OBkyzjgZPjgYbjgYTjgaENCivjgbLjga4s44Go44GX44GC44GNDQor44KE44G+44GgLOOCiOOBl+OBguOBjQ0KK+OBiuOBrizjgY3jgojjgZcNCivjgZ/jgZHjgZfjgZ8s44G+44GV44GXDQor44Gv44KE44GXLOOBv+OBiw0KK+OBhOOBl+OBoCzjgb/jgaTjgosNCivjgZfjgYrjgoQs44KI44GX44Gu44KKDQor44GC44KT44Gp44GGLOOBl+OBkuOBig0KK+OBvuOBpOOBsOOCiSzjgZjjgoXjgpMNCivjgavjgZfjgaAs44GE44Gf44KLDQor44Gq44GL44KA44KJLOOBk+OBjQ0KK+OBhOOBkeOBoCzjgajjgoLjgarjgooNCivjga/jgoTjgb8s44G+44GV44Gy44GTDQor44GZ44Ga44GNLOOBsuOBleOBruOCig0KK+OBiuOBjOOCjyzjgZ/jgaTjgYoNCivjgYTjgZfjgYvjgo8s44KI44GX44Gy44KNDQor44GC44GV44G/LOOBqOOBiuOCiw0KK+OBr+OBn+OBkeOChOOBvizjgojjgZfjgYoNCivjgbvjgorjgb/jgZ4s44GC44Gk44GXDQor44G+44KL44Gf44GrLOOBqOOCguOBquOCig0KK+OBleOBqOOBhizjgYvjgaTjgoQNCivjgZXjgYvjgarjgYss44GX44KH44KIDQor44Gq44GL44KA44KJLOOBj+OBvw0KK+OBhOOBqOOBhizjgobjgorjgZMNCivjgbXjgovjgarjgYws44GN44KH44GTDQor44G144GP44GX44G+LOOBkeOCkw0KK+OBv+OBmuOBjOOBvyzjgZ/jgZHjgZcNCivjgZ/jgZHjgYbjgaEs44Gu44G844KLDQor44Go44KK44GG44G/LOOBvuOBleOBteOBvw0KK+OBreOBjuOBlyzjgb7jgZXjgosNCivjgZPjgoTjgb4s44G+44GV44Gu44KKDQor44GK44GX44G+LOOBmOOCheOCkw0KK+OBi+OBn+OBiuOBiyzjgbLjgafjgYoNCivjgZ/jgY3jgZDjgaEs44GX44KH44GeDQor44GT44G+44GkLOOBguOBjeOCiQ0KK+OChOOBjizjgajjgZfjgYLjgY0NCivjgZ/jgYvjgY4s44GR44KT44GYDQor44G+44GZ44GELOOBn+OBi+OBlw0KK+OBr+OChOOBlyzjgZHjgYTjgZnjgZENCivjgYLjga3jgZ/jgYQs44Gh44Gy44KNDQor44GN44Gv44KJLOOBguOBjeOBig0KK+OBleOBhOOBqOOBhizjgYvjgZrjgYoNCivjgY3jgZ/jgo/jgY0s44Go44KC44Gy44GTDQor44Gu44GQ44GhLOOBi+OBiuOCiw0KK+OBleOBi+OBkOOBoSzjga/jgovjgbLjgZMNCivjgavjgZcs44G+44GV44GoDQor44GE44GR44GgLOOCiOOBl+OChuOBjQ0KK+OBleOBqOOBhizjgb/jgaHjgYoNCivjgYTjgb7jgYQs44G/44Gu44KLDQor44KE44G+44GgLOOBl+OBkuOBjQ0KK+OBn+OBquOBiyzjgYLjgY3jga7jgooNCivjgYrjgZXjgZMs44Gq44GZ44GKDQor44GT44KA44KNLOOBn+OBi+OBlw0KK+OBleOBhOOBqOOBhizjgbLjgafjgbXjgb8NCivjgZnjgZrjgY0s44GL44Ga44GKDQor44G144Gq44Go44GM44KPLOOBn+OBi+OBlw0KK+OBhOOBl+OBhCzjgojjgZfjgYoNCivjgb7jgaTjgYQs44Gm44Gk44KNDQor44GZ44GI44Gy44KJLOOBsuOBqOOBlw0KK+OBsuOCjeOBn+OBqyzjgb7jgZXjgobjgY0NCivjgbLjgYzjgZcs44GR44KT44GE44GhDQor44GE44KA44KJLOOBl+OBkuOBig0KK+OBguOBuSzjgb/jgaHjgbLjgZMNCivjgojjga3jgY/jgoks44Gy44KN44G/44GhDQor44KP44Gf44Gq44G5LOOCguOBqOOBhA0KK+OBmeOBjCzjgobjgY3jgb/jgaQNCivjgZXjga4s44Gm44Gk44GKDQor44GX44GwLOOBn+OBi+OBlw0KK+OChOOBvuOBkOOBoSzjgb7jgZXjgbLjgagNCivjgY3jgZbjgo8s44GX44GS44GE44GPDQor44GL44GV44G+44GNLOOChOOBmeOBsuOBlQ0KK+OBjeOCgOOCiSzjgb7jgZPjgagNCivjgaTjgovjgb8s44GL44Gq44KBDQor44GC44GK44GNLOOBsuOBp+OBjQ0KK+OBhOOBl+OBoCzjgZHjgpPjgYTjgaENCivjgoLjgo0s44KG44GL44KKDQor44GK44GP44KA44KJLOOBpuOCi+OBguOBjQ0KK+OBn+OBi+OBjizjga7jgbzjgosNCivjgYTjgZHjgoQs44Gy44Go44GXDQor44Go44G/44KE44G+LOOCiOOBl+OBig0KK+OChOOBjizjgY3jgojjgZcNCivjgajjgb/jgY0s44GC44Gk44GTDQor44Go44Gu44KA44KJLOOChOOBmeOBruOCig0KK+OChOOBpOOBmuOBiyzjga7jgbbjgajjgZcNCivjgbbjgb4s44KI44GX44G/44GkDQor44Gq44GL44GW44KPLOOBsuOCjeOBlw0KK+OChOOBvuOBluOBjSzjgbLjgo3jgZcNCivjgb7jgaTjgZfjgZ8s44Go44KC44GYDQor44GE44GgLOOBl+OCheOCk+OBmA0KK+OBmeOBmuOBjSzjgojjgZfjgbLjgo0NCivjgarjgYvjga4s44KI44GX44KNDQor44GL44KP44GQ44GhLOOBkeOBhOOBmeOBkQ0KK+OBn+OBi+OBr+OBlyzjgYLjgY3jgbLjgZUNCivjgYTjgZfjgaAs44GX44KH44GTDQor44GG44GgLOOCguOBqOOBlw0KK+OBteOBmOOCj+OCiSzjgYLjgY3jgYoNCivjgZPjgYTjgacs44Gy44KN44KG44GNDQor44Gk44GL44GgLOOBk+OBhuOBmA0KK+OBsuOCieOChOOBvizjgb/jgaHjgYoNCivjgYbjgaHjgajjgb8s44GL44Ga44G/44GkDQor44GE44G+44Gv44KJLOOBn+OBi+OBig0KK+OBhuOBiOOBoCzjgabjgaTjgo0NCivjgZXjgZXjgYvjgo8s44G/44Gu44KLDQor44GC44GE44GL44KPLOOBqOOBl+OBsuOCjQ0KK+OBhuOBiOOBjSzjgZHjgpPjgZfjgocNCivjgarjgYvjgoTjgb4s44G144G/44Go44KCDQor44GK44GV44KPLOOCiOOBhuOBkw0KK+OBn+OBi+OBiuOBiyzjgZfjga7jgbYNCivjgo/jgaAs44GX44KTDQor44GE44Gs44Ga44GLLOOCiOOBl+OBsuOCjQ0KK+OBn+OBquOBiyzjgoTjgZnjgbLjgo0NCivjgZ/jgZHjgaAs44G+44GV44GKDQor44KE44G+44GgLOOBpOOBqOOCgA0KK+OChOOBquOBjizjgZfjgofjgYbjgYTjgaHjgo3jgYYNCivjgZ/jgZHjgZfjgZ8s44GV44Go44KLDQor44Gr44GXLOOCiuOCheOBmA0KK+OBiuOBn+OBkSzjgajjgZfjgZ/jgZENCivjgavjgZ/jgarjgYQs44G444GE44Gv44GhDQor44G744KT44G+LOOBsuOCjeOBlw0KK+OBquOBi+OBrizjgYLjgY3jgokNCivjgb/jgoTjgZfjgZ8s44Gy44KN44KI44GXDQor44GG44GI44GuLOOBsuOBqOOBlw0KK+OBsOOBsCzjgojjgZfjgbLjgo0NCivjgb/jgoTjgZbjgY0s44Gf44GL44GC44GNDQor44GP44Gr44GELOOBn+OBi+OCiOOBlw0KK+OBk+OBsOOChOOBlyzjgojjgZfjgb8NCivjgb7jgZnjgaAs44KI44GX44GL44GaDQor44Gf44GL44Gv44GXLOOBqOOBl+OChuOBjQ0KK+OBpOOBi+OBiizjgaTjgY7jgYoNCivjgYvjgo/jgoDjgoks44GP44Gr44Gy44GVDQor44GL44KP44Gw44GfLOOBk+OBhuOBjeOBoQ0KK+OBguOBi+OBleOBiyzjgY3jgojjgZ/jgYsNCivjgYTjgYTjgaAs44Gu44G844KLDQor44GX44KJ44Gv44G+LOOBsuOBp+OBsuOCjQ0KK+OBqOOBjOOCjyzjgojjgZfjgZ/jgZENCivjgYTjgajjgYYs44Gf44Gk44Gy44GTDQor44GK44GL44G5LOOChuOBsuOBoQ0KK+OCj+OBn+OBquOBuSzjgZfjgZLjgYoNCivjgZXjgYvjgbAs44Gu44G244Gy44GTDQor44Gy44KN44GV44KPLOOCiOOBl+OBruOCig0KK+OBquOBi+OCgOOCiSzjgbLjgafjgY0NCivjgoTjgZnjgYQs44GY44KF44KT44GY44KNDQor44Gy44KJ44GfLOOBleOBoOOCgA0KK+OBjeOBn+OBjOOCjyzjgb7jgZXjgYoNCivjgYLjgb7jga4s44Gk44Go44KADQor44Gk44GY44KA44KJLOOBkeOBhOOBmA0KK+OBi+OCj+OBleOBjSzjgbLjgo3jgZcNCivjgYbjgYjjgoDjgoks44GT44GG44GYDQor44KA44KJ44GL44G/LOOBsuOCjeOBjQ0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgobjgY0NCivjga/jgZws44GT44GeDQor44Go44GX44Gy44KNLOOBmOOCheOCk+OBkw0KK+OBk+OBsOOChOOBlyzjgabjgaTjgoQNCivjgYTjga4s44Gf44Gg44GXDQor44GC44GV44GuLOOBsuOCjeOChuOBjQ0KK+OCguOCiizjgbLjgafjgYTjgaENCivjgYTjgarjgZbjgo8s44G+44GV44GXDQor44GT44Gw44KE44GXLOOBsuOCjeOBig0KK+OBleOBi+OBjSzjgajjgZfjgbLjgo0NCivjgYbjgaHjgoTjgb4s44Gy44Go44GXDQor44G+44Gq44G5LOOBl+OBkuOCiw0KK+OBiuOBsuOCg+OBvizjgZXjgajjgZcNCivjgZfjgb/jgZos44GL44Ga44Gy44GVDQor44KI44Gt44KA44KJLOOBl+OCk+OBhOOBoQ0KK+OBsOOCieOBoCzjgabjgaTjgoQNCivjgbXjgovjgZ7jga4s44GI44Gk44KNDQor44G144GY44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OBleOBrizjgZ/jgZHjgZcNCivjgYvjgo/jga4s44GX44GS44GqDQor44G744GX44GL44KPLOOBjeOCiOOBlw0KK+OBleOBleOCguOBqCzjgZHjgpMNCivjgZnjganjgYYs44GN44G/44Gy44KNDQor44GV44Go44GGLOOBl+OBkuOChuOBjQ0KK+OBr+OChOOBlyzjgZ/jgaDjga7jgooNCivjgbDjgbAs44KG44Gy44GhDQor44Gw44GwLOOBk+OBhuOBmA0KK+OBiuOChOOBrSzjgZPjgogNCivjgarjgYzjgZXjgo8s44Gm44KL44Gy44KNDQor44GV44GL44KC44GoLOOCiOOBl+OBsuOBkw0KK+OBguOBiuOBjSzjgZvjgYTjgZgNCivjgoDjgarjgYvjgZ8s44KE44GZ44GNDQor44GE44Go44GGLOOBkeOCk+OBmA0KK+OBi+OCj+OBsOOBnyzjgb7jgZXjgbLjgZMNCivjgZnjgY7jgoLjgags44Gy44KN44KG44GNDQor44Gw44KT44GpLOOBguOBjeOBsuOBkw0KK+OBruOCgOOCiSzjgojjgZfjgYvjgZoNCivjgZPjga4s44GL44Ga44GC44GNDQor44GL44KP44GELOOBvuOCguOCiw0KK+OBhuOBiOOBrizjgYjjgYTjgZMNCivjga/jgonjgaAs44GT44GG44GYDQor44GL44GuLOOCguOBqOOBpOOBkA0KK+OBiuOBiuOBr+OBnyzjgb7jgZXjgagNCivjgZnjganjgYYs44Gf44GL44GKDQor44G+44Gk44GgLOOBsuOCjeOBlw0KK+OBhOOBkeOBjOOBvyzjgbLjgafjga7jgooNCivjgZfjgonjgYQs44Gy44Go44GXDQor44GV44Go44GGLOOBsuOBp+OBig0KK+OBleOBi+OBhCzjgoTjgZnjgobjgY0NCivjgYrjgY0s44G+44GV44Gv44KLDQor44GL44KP44KA44KJLOOBm+OBhOOBmA0KK+OChOOBvuOBoCzjgb7jgZXjga/jgosNCivjgYTjgajjgYYs44GX44KT44GE44GhDQor44GE44GL44G/LOOBsuOCjeOChuOBjQ0KK+OBguOBmuOBvuOBiizjgb/jgaHjgYoNCivjgbXjgZjjgoDjgoks44GY44KF44KTDQor44GN44Gf44KA44KJLOOBguOBjeOBsuOBkw0KK+OBqOOBjOOBvyzjgojjgZfjgb/jgaENCivjgZPjgZnjgZIs44GL44Ga44Gu44KKDQor44Gb44GNLOOBruOBtuOChuOBjQ0KK+OBi+OCj+OBl+OBvizjgbLjgo3jgZcNCivjgZ/jgYvjgYQs44GC44GN44KJDQor44GC44GN44KE44G+LOOBv+OBjeOBig0KK+OBmeOBmuOBjSzjgZ/jgYvjgZcNCivjgarjgYvjgoDjgoks44Gy44Go44GXDQor44Gr44GX44GuLOOBvuOBk+OBqA0KK+OBv+OChOOBkSzjgZHjgpPjgZfjgpMNCivjgojjga3jgoLjgaEs44Gf44GL44GC44GNDQor44Gf44GL44GX44G+LOOBn+OBkeOBlw0KK+OBleOBi+OBhCzjgajjgZfjgobjgY0NCivjgYrjgaTjgY0s44GR44KT44GYDQor44GL44KP44GV44GNLOOBsuOCjeOBig0KK+OBq+OBl+OBi+OCjyzjgYLjgY3jgbLjgZUNCivjgZXjgY/jgonjgYQs44Gv44KL44GKDQor44GZ44GOLOOBsuOBp+OBqA0KK+OBu+OCiuOBk+OBlyzjgajjgYrjgosNCivjgoLjgoos44KG44GG44GYDQor44Gv44GR44GgLOOBqOOBl+OBvw0KK+OBq+OBhOOBoCzjgb7jgZXjgYoNCivjgY3jgY/jgZ/jgass44Gy44KN44KG44GNDQor44Gf44GR44Gu44GX44GfLOOBqOOCguOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgobjgZQNCivjgZ/jgarjgbks44KG44GN44GKDQor44GE44GR44KC44GoLOOBqOOBl+OBteOBvw0KK+OBvuOBpOOChOOBvizjgZfjgoXjgYTjgaENCivjgojjgZfjgZbjgo8s44Gf44GL44KG44GNDQor44GC44GL44GELOOBn+OBi+OBsuOCjQ0KK+OBq+OBl+OBiuOBiyzjgoLjgajjgZgNCivjgZ/jgZHjgoLjgags44GX44GS44GKDQor44Go44GP44GgLOOBqOOBl+OBruOCig0KK+OBiuOCguOCiizjgYLjgY3jgajjgZcNCivjgYvjgajjgYYs44G/44GNDQor44GL44KP44GoLOOBn+OBjeOBig0KK+OBvuOBiOOBoCzjgZHjgpPjgZgNCivjgY/jgo3jgY0s44Gy44Gn44GC44GNDQor44GE44GE44GgLOOBqOOBiuOCiw0KK+OBk+OChOOBquOBjizjgYvjgaTjgoQNCivjgb7jgaTjgarjgYws44Gf44GL44GXDQor44GE44Go44GGLOOBl+OCk+OBhOOBoQ0KK+OChOOBvuOCguOBqCzjgZXjgajjgZcNCivjgaTjgaTjgYQs44GX44KF44G444GEDQor44Gf44Gq44GLLOOBsuOCjeOBvw0KK+OBteOBj+OBl+OBvizjgb7jgZXjgZMNCivjgZPjgZjjgb4s44Gu44KK44GTDQor44Gr44GX44GgLOOChuOBjeOBkw0KK+OBq+OBl+OChOOBvizjgojjgZfjgbLjgZUNCivjgZnjgZrjgY0s44G/44Gu44KLDQor44GE44GE44GY44G+LOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBn+OBvuOBhCzjga7jgbbjgYoNCivjgZPjga4s44KI44GX44GKDQor44G/44G+44GZLOOChOOBmeOBsuOCjQ0KK+OCiOOBreOBr+OCiSzjgZ/jgaTjgZcNCivjgojjgZfjgaAs44G144G/44GKDQor44G144GP44GgLOOBneOBsuOBoQ0KK+OBleOBqOOBhizjgb7jgZXjgojjgZcNCivjgoTjgb7jgoLjgags44GP44G/44GTDQor44GN44Gf44GULOOBr+OBmOOCgQ0KK+OBleOCk+OBrizjgYLjgaTjgZcNCivjgoTjgZXjgYss44KE44GZ44GC44GNDQor44KA44KJ44GfLOOBn+OBpOOBig0KK+OBquOBi+OCguOBqCzjgajjgZfjgYLjgY0NCivjgZXjgY/jgonjgYQs44G/44Gu44KLDQor44Gv44KJ44GgLOOBl+OCheOBq+OBoQ0KK+OBleOBqOOBhizjgojjgZfjgbLjgZMNCivjgZXjgYTjgajjgYYs44G/44Gk44GQDQor44Gd44GtLOOBmOOCheOCk+OBkw0KK+OBr+OBmeOBvyzjgaDjgYTjgZnjgZENCivjgbLjgonjgZ8s44Gf44GL44GXDQor44KE44Gq44GO44GV44KPLOOBmeOBmeOCgA0KK+OBn+OBoeOBsOOBqizjgYrjgZXjgoANCivjgYTjgajjgYYs44Go44GX44G/44GkDQor44Gv44KJLOOBm+OBhOOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgYvjgZrjgb8NCivjgYTjgajjgYYs44Gy44KN44GXDQor44Gf44Gq44GLLOOBsuOCjeOBguOBjQ0KK+OBhuOBoeOChOOBvizjgbLjgo3jgZcNCivjgYvjgYzjgo8s44Gu44G844KLDQor44Gf44GN44GW44KPLOOBqOOCguOBqOOBlw0KK+OBl+OBquOBjOOCjyzjgajjgZfjgYoNCivjgYvjgY3jga/jgoks44GX44GS44G/DQor44GZ44GM44Gs44G+LOOBguOBjeOBlw0KK+OBi+OCgeOBhCzjgYvjgZrjgZfjgZINCivjgYrjgY/jgaQs44KI44GX44KC44GoDQor44GE44GX44GL44KPLOOBguOBpOOBig0KK+OBmeOBjuOBhuOCiSzjgb/jgaTjgYoNCivjgYbjgoHjgaAs44GR44GE44GTDQor44G/44Gq44GQ44GhLOOBguOBjeOBsuOCjQ0KK+OBu+OBl+OBrizjgYvjgZrjgbLjgo0NCivjgavjgZfjgoTjgb4s44Gu44G244GKDQor44Gf44GR44GgLOOCiOOBhuOBkw0KK+OBleOBi+OBhCzjgb7jgZXjgZrjgb8NCivjgoTjgaTjgaAs44GC44GN44KJDQor44KC44KK44GfLOOBqOOBl+OBsuOCjQ0KK+OBleOBjeOBvizjgZPjgYbjgYTjgaENCivjgYLjgonjgYQs44GL44Ga44KEDQor44Gf44GR44GgLOOBl+OBkuOCiOOBlw0KK+OBn+OCgOOCiSzjgZHjgYTjgYTjgaENCivjgYrjgYvjgaAs44KG44GG44GY44KTDQor44KE44G+44GtLOOBj+OBq+OBsuOBkw0KK+OBquOBi+OCgOOCiSzjgZfjgo0NCivjgYLjgYrjga4s44GY44KF44Gr44GhDQor44GZ44GO44KE44G+LOOBqOOBl+OChA0KK+OBteOCiuOBr+OCiSzjgYvjgZrjgajjgZcNCivjgo/jgZ/jgarjgbks44GX44KH44GX44KF44KTDQor44GL44GkLOOCguOCiuOBig0KK+OBleOBr+OCiSzjgbLjgZXjgZcNCivjgYvjgY/jgZ8s44GE44Gh44KN44GGDQor44GI44Gu44KC44GoLOOBn+OBkeOBsuOBkw0KK+OCj+OBn+OBquOBuSzjgZvjgYTjgZgNCivjgoTjgbbjgY0s44Gf44Gk44KEDQor44GC44G+44GV44GNLOOBjeOBhOOBoeOCjeOBhg0KK+OCiOOBk+OBnyzjgZ/jgZHjgZcNCivjgbvjgorjga7jgYbjgaEs44GR44GE44GeDQor44GN44Gv44KJLOOBquOBiuOBsuOCjQ0KK+OBn+OBkeOBoCzjgobjgZ/jgYsNCivjgYTjga3jgaos44Gf44GL44GTDQor44Gq44GL44GY44KHLOOCiOOBl+OBkw0KK+OBhOOBoeOChOOBquOBjizjga/jgovjgb8NCivjgZnjgZrjgY0s44Gh44Gv44KLDQor44Gq44KL44GX44G+LOOChuOBsuOBoQ0KK+OBl+OCieOBhOOBlyzjgZ/jgaTjgYoNCivjgYrjga4s44GL44Gt44KI44GXDQor44KI44GX44GK44GLLOOBi+OBmuOBig0KK+OBvuOBpOOBhuOCiSzjga7jgbbjgagNCivjgbXjgZjjgZ8s44Gk44GL44GVDQor44GE44KP44G/LOOBsuOCjeOBvw0KK+OBqOOBj+OBl+OBkizjgYLjgY3jgbLjgZMNCivjgZ/jgarjgaAs44Gf44GL44GXDQor44GK44GL44GuLOOBvuOBk+OBqA0KK+OCguOBoeOBmuOBjSzjgb7jgZXjgbLjgo0NCivjgZ/jgYvjgZfjgb4s44GT44GG44GE44GhDQor44Go44KK44GG44G/LOOBvuOBleOBsuOBpw0KK+OBn+OBi+OBvyzjgajjgZfjgYLjgY0NCivjga/jgoTjgZss44Gk44Gt44GKDQor44Gf44GL44Gv44KJLOOBpOOCi+OBvuOBpA0KK+OBjeOCkyzjgb7jgZXjgbLjgZMNCivjgZnjgY7jgoTjgb4s44GL44Ga44Gy44KNDQor44GN44Gf44GY44G+LOOBn+OBoOOBlw0KK+OBq+OBo+OBnyzjgZfjgofjgZHjgYQNCivjgbbjgpMs44Gq44GK44GN44GhDQor44GX44KDLOOBn+OBi+OBlw0KK+OBiuOBiyzjgajjgYrjgosNCivjgYrjga/jgZcs44GL44Ga44KEDQor44Gv44KJ44GgLOOBsuOCjeOBi+OBmg0KK+OCj+OBjeOBleOBiyzjgabjgaTjgZgNCivjgYTjgo/jgarjgYws44Go44KI44Gv44KLDQor44GL44KP44GX44KKLOOBkeOBhOOBmA0KK+OBhOOBquOCguOBqCzjgY3jgb/jgbLjgZMNCivjgZXjgo8s44GL44Ga44G+44GVDQor44Gf44GR44GgLOOBn+OBi+OChuOBjQ0KK+OBhOOBhOOBoCzjgZPjgYbjgYTjgaENCivjgYvjgZjjga4s44GL44Ga44GKDQor44G/44KPLOOCiOOBl+OBn+OBiw0KK+OBteOBj+OBhCzjgajjgoLjgobjgY0NCivjgZnjgYjjgarjgYws44GI44GE44GYDQor44GP44Gr44GI44GgLOOBvuOBleOChuOBjQ0KK+OBjeOBn+OBiuOBiyzjgbLjgafjgbLjgo0NCivjgYTjgaks44GT44GG44GYDQor44GK44GP44GgLOOCiOOBl+OBruOBtg0KK+OBu+OCiuOBi+OCjyzjgZXjgajjgosNCivjgZnjgYjjgoLjgags44Gy44KN44GL44GaDQor44KI44GT44KE44G+LOOChuOBjeOBruOBtg0KK+OBteOBmOOCguOBqCzjgbLjgo3jgZcNCivjgY3jgZss44GN44Gv44Gh44KNDQor44Gr44GX44KA44KJLOOBsuOCjeOBlw0KK+OBn+OBi+OBoCzjgZHjgYTjgYTjgaENCivjgaTjgYvjgaAs44G/44Gk44GKDQor44Go44KI44GgLOOBvuOBleOBi+OBmg0KK+OBleOBrizjgbLjgo3jgobjgY0NCivjgavjgZfjgaAs44Gf44GR44Gy44GTDQor44GK44KC44KKLOOCiOOBl+OBsuOBqA0KK+OBiuOBluOBjSzjgb7jgoLjgosNCivjgYTjgZfjgb7jgoss44Gv44KL44GL44GaDQor44Gf44Gq44GLLOOBkeOBhOOBhOOBoQ0KK+OBi+OBl+OCj+OBsOOCiSzjgajjgYrjgosNCivjgYLjgZXjga4s44KG44Gf44GLDQor44Gy44KJ44GuLOOBi+OBmuOBsuOBkw0KK+OBn+OBq+OChOOBvizjgajjgYrjgosNCivjgYbjgoHjgbDjgoTjgZcs44KK44KH44GZ44GRDQor44GK44KA44KJLOOBi+OBpOOBjQ0KK+OBleOBi+OBkOOBoSzjgabjgaTjgoQNCivjgYrjgYvjgoDjgoks44Go44GX44Gy44KNDQor44KE44G+44KC44GoLOOBqOOBv+OBig0KK+OBiOOBoeOBlCzjgZfjgofjgZgNCivjgZXjgo/jgaAs44Gy44Gn44Gy44GTDQor44KI44GT44GELOOBk+OBhuOBmA0KK+OBjeOBn+OCgOOCiSzjgb7jgZXjgYvjgZoNCivjgoTjgZks44GI44GE44GYDQor44Gf44GL44GKLOOBqOOBiuOCiw0KK+OBi+OBpOOCieOBiuOBiyzjgb7jgZXjgbLjgZMNCivjgaTjgbzjgYQs44GE44Gh44KN44GGDQor44Gk44GYLOOBqOOBiuOCiw0KK+OBn+OBi+OBr+OBlyzjgZfjgZLjgoTjgZkNCivjgZnjgY7jgY0s44GT44GG44GE44GhDQor44Gf44GR44GG44GhLOOBruOBvOOCiw0KK+OBi+OBv+OBmOOChyzjgoTjgZnjgYvjgZoNCivjgZPjgbDjgoTjgYvjgo8s44GX44KT44GYDQor44GC44GK44GoLOOBpuOBpOOCjQ0KK+OBn+OBoCzjgZHjgpPjgZgNCivjgbLjgaDjgYss44Gy44Gn44GKDQor44Gr44GX44KA44KJLOOBjeOCiOOBi+OBmg0KK+OBiOOBsOOCiSzjgZfjgofjgZQNCivjgb/jgZrjgoLjgags44GC44GN44KJDQor44GZ44Ga44GNLOOBk+OCjOOBguOBjQ0KK+OBl+OBhOOBqizjgoTjgZnjgbLjgZMNCivjgZfjgYrjgZ8s44GL44Ga44KG44GNDQor44Gq44GL44Gv44KJLOOCiuOBiw0KK+OBlOOBoCzjgYvjgYrjgosNCivjgbXjgovjgZ8s44GY44KF44KT44GTDQor44G+44GZ44KC44GoLOOBl+OCk+OBng0KK+OBquOBi+OBjOOCjyzjgb7jgZXjgbLjgZMNCivjgYTjgaks44GX44GS44GKDQor44KI44KK44G144GYLOOBguOBjeOBig0KK+OBvuOBpOOCguOBqCzjgZ/jgYvjgY0NCivjgZXjgYTjgajjgYYs44Gf44GL44Gy44KNDQor44Gq44Gk44GELOOBqOOBl+OBi+OBmg0KK+OBhuOBiuOBrizjgoTjgZnjgbLjgZMNCivjgZ/jgarjgZQs44GY44Gk44GYDQor44Gf44G+44GM44KPLOOCiOOCiuOBkw0KK+OBiuOBiyzjga7jgorjgZMNCivjgbXjgY/jgZfjgb4s44Gh44GI44GTDQor44GK44GL44GgLOOBpOOBreOBig0KK+OBjeOBruOBl+OBnyzjgYvjgZrjgoQNCivjgZfjgb/jgZos44GN44KI44GXDQor44GT44Gw44KE44GXLOOBr+OCi+OCiOOBlw0KK+OBruOBoCzjgb/jgaTjgbLjgZMNCivjgYvjga4s44GT44GG44GE44GhDQor44GL44GY44GK44GLLOOBjeOCiOOBlw0KK+OBiuOBrizjgb7jgZXjgbLjgZUNCivjgYrjga/jgZcs44GY44KF44Gr44GhDQor44GT44Gw44KE44GXLOOBjeOBhOOBoQ0KK+OBk+OBhOOBmuOBvyzjgZ/jgYvjgobjgY0NCivjgZ/jgarjgYss44Gu44G844KLDQor44G144GP44GgLOOBguOBjeOCiQ0KK+OBquOBi+OBluOCjyzjgY/jgavjgYLjgY0NCivjgbvjgorjgYvjgo8s44Gy44Gn44GNDQor44GG44Gh44KE44G+LOOBi+OBiuOCig0KK+OBhOOBmuOBn+OBqyzjgZHjgYTjgZMNCivjgZ/jgY3jgYQs44Gu44KK44Gy44GoDQor44Gf44GL44GbLOOBn+OBi+OBlw0KK+OBvuOBmeOBluOBjSzjgb7jgZXjgosNCivjgYLjgpPjganjgYYs44KG44GG44GTDQor44GL44Gf44GO44KKLOOBsuOBp+OBsuOBkw0KK+OCguOCiuOChOOBvizjgYLjgY3jgokNCivjgZXjgajjgYYs44GN44KI44Gf44GLDQor44Gy44KL44GL44KPLOOBvuOBleOBlw0KK+OBhuOBiOOBoCzjgaTjgZDjgbLjgo0NCivjgarjgYss44GC44GN44Gy44GoDQor44G/44KE44GW44GNLOOBn+OBi+OBlw0KK+OBiuOBj+OBvCzjgb7jgZXjgobjgY0NCivjgZ/jgaHjgYvjgo8s44KG44Gy44GhDQor44KP44Gf44Gq44G5LOOBhOOBj+OBig0KK+OBguOBleOBi+OCjyzjgbLjgajjgZcNCivjgYvjgo/jga/jgoks44Go44GX44KEDQor44GK44GV44GgLOOBruOBvOOCiw0KK+OBleOBi+OBhCzjgZXjgajjgZcNCivjgY/jgorjgoTjgb4s44KC44KK44Gy44KNDQor44GV44GE44Go44GGLOOBmOOCheOBq+OBoQ0KK+OBmeOBjeOBjOOCiSzjgajjgZfjgZMNCivjgYLjgZHjgbIs44Gu44G244Gk44GQDQor44Gv44KE44GXLOOBn+OBi+OBlw0KK+OBi+OCj+OBnyzjgajjgYrjgosNCivjgZfjgb7jgYzjgY0s44GX44GS44GE44Gh44KN44GGDQor44G744KKLOOBqOOBl+OChA0KK+OBruOCgOOCiSzjgYLjgY3jgbLjgo0NCivjgajjgoDjgoks44GV44Go44GXDQor44GP44G8LOOBvuOBleOBig0KK+OBq+OBl+OCguOBqCzjgajjgZfjgZ/jgYsNCivjgojjgZfjgaAs44Gy44KN44GXDQor44GV44GOLOOBvuOBleOBn+OBiw0KK+OBi+OCk+OBrizjgb7jgZPjgagNCivjgoTjgbbjga4s44G/44Gh44Gq44GKDQor44KE44GZ44Gq44GMLOOBm+OBhOOBmA0KK+OBsuOBjOOBl+OBhuOBiCzjgb7jgZXjgoQNCivjgZPjgZXjgY0s44Gv44GY44KBDQor44Gq44GL44GY44KHLOOBr+OCi+OBig0KK+OBiuOBrizjgZXjgarjgYgNCivjgoDjgonjgZ8s44GT44Ga44GIDQor44GX44KH44GYLOOCiOOBl+OBkw0KK+OBi+OCj+OCguOBqCzjgY/jgb/jgZMNCivjgYjjgZXjgY0s44GN44KI44G/DQor44GI44GE44Gp44KBLOOBquOBiuOBvw0KK+OBmeOBmuOBjSzjgb/jgZXjgYgNCivjgoLjgajjgoTjgb4s44GL44Ga44KIDQor44Gv44G+44GgLOOCiOOBl+OBkw0KK+OBk+OBl+OBi+OCjyzjgZfjgpPjgYTjgaENCivjga/jgoTjgZcs44GN44KI44GTDQor44KE44G+44GW44GNLOOBruOCiuOBsuOBqA0KK+OBvuOBpOOCguOBqCzjgZPjgYbjgZgNCivjgYrjga4s44Gf44GL44KI44GXDQor44Gv44Gq44KPLOOBkeOBhOOBkw0KK+OBr+OBm+OBjOOCjyzjgb7jgZXjgY0NCivjgb/jgoTjgZ8s44Gy44KN44KG44GNDQor44GN44Gf44GW44KPLOOBsuOCjeOBsuOBqA0KK+OBiOOCk+OBqSzjgb7jgZXjgobjgY0NCivjgarjgYzjgZXjgYss44Go44GX44Gy44KNDQor44KI44GX44KC44GoLOOBqOOBiuOCiw0KK+OBj+OCjeOBleOCjyzjgZPjgZ4NCivjgb7jgovjgoTjgb4s44Gy44Gn44GC44GNDQor44Gq44GL44Gr44GXLOOBguOBjeOBsuOCjQ0KK+OCiOOBl+OBoCzjgb7jgZXjgosNCivjgbXjgY/jgZ8s44Gy44Gn44GL44GaDQor44G144GY44GV44KPLOOChuOBn+OBiw0KK+OBleOBj+OBvizjgoTjgZnjgYvjgZoNCivjga/jgZfjgoLjgags44GC44GN44KJDQor44KP44GgLOOBqOOBl+OBig0KK+OBq+OBl+OBluOBjSzjgb7jgZXjga/jgosNCivjgbXjgYvjgYzjgo8s44KG44GN44KEDQor44GC44GK44KE44G+LOOCiOOBl+OBvuOBlQ0KK+OBjeOCiOOBn+OBqyzjgZfjgpPjgYTjgaENCivjgajjgorjga/jgoks44Gf44Gg44GXDQor44Gq44GM44GuLOOBkeOBhOOBmA0KK+OBiuOBjCzjgb7jgZXjgYLjgY0NCivjgZXjgYvjga4s44G+44GV44GL44GaDQor44G/44Gk44Gv44GXLOOChOOBmeOBsuOBkw0KK+OBguOCiuOCguOBqCzjgojjgZfjgYLjgY0NCivjgojjgZfjgb7jgaQs44Gy44KN44G/44GkDQor44GC44GK44KE44GOLOOBkeOCk+OBleOBjw0KK+OChOOBvuOBoCzjgojjgZfjga/jgosNCivjgoDjgonjgZ8s44GL44Ga44KG44GNDQor44GE44KK44GILOOBkeOBhOOBhOOBoQ0KK+OChOOBvuOBluOBjSzjgbLjgafjgoQNCivjgYjjgZ7jgYgs44GL44Gk44Gy44GTDQor44GV44Go44GGLOOCiOOBl+OBr+OCiw0KK+OBiuOBnyzjgYvjgaTjgb8NCivjgYTjga7jgYYs44G+44GV44GK44G/DQor44GL44GpLOOBruOBtuOBig0KK+OBleOBleOBjSzjgYjjgaTjgZMNCivjgYvjgZHjgbIs44G+44GV44GL44GaDQor44Gk44Gh44KELOOBpOOBqOOCgA0KK+OBvuOBleOBiuOBiyzjgbLjgo3jgobjgY0NCivjgZnjgZrjgY0s44Gf44GR44GXDQor44Go44GtLOOChuOBn+OBiw0KK+OBiuOCj+OBoCzjgZ/jgYvjgZcNCivjgYbjgYjjgY0s44G+44GV44Gy44KNDQor44G+44GI44GgLOOBm+OBhOOBkw0KK+OBteOBmOOBiuOBiyzjgZ/jgYvjgYLjgY0NCivjgYbjgonjgbks44GC44GN44GKDQor44Gq44GL44KA44KJLOOBvuOBleOBsuOBkw0KK+OBhOOBleOBiyzjgobjgb/jgZMNCivjgavjgZfjgZXjgYss44GX44KT44GE44GhDQor44GE44KP44GVLOOBvuOBleOBruOCig0KK+OBn+OBj+OBl+OBvizjgZHjgYTjgYTjgaENCivjgaTjgYvjgoLjgags44Gk44KI44GXDQor44GV44GP44G+LOOBjeOCiOOBlw0KK+OBsuOCh+OBqSzjgoLjgorjgbLjgagNCivjgarjgYvjgoDjgoks44Gf44Gk44KEDQor44GV44GV44GNLOOCiOOBl+OBsuOCjQ0KK+OBteOBj+OCj+OBjSzjgojjgZfjgbLjgo0NCivjgYrjgY/jgoDjgoks44GL44Ga44KEDQor44Gf44GL44Gv44GXLOOBl+OCh+OBng0KK+OBl+OCjeOBhCzjgoTjgZnjgYoNCivjgZPjgYvjgbYs44Go44G/44Gy44KNDQor44Gu44GQ44GhLOOBruOCiuOBguOBjQ0KK+OBn+OBi+OBpCzjgb7jgZXjgagNCivjgojjga3jgZbjgo8s44GL44Ga44Gu44KKDQor44GV44GL44GE44GgLOOChOOBmeOBkw0KK+OBk+OBhOOBmuOBvyzjgarjgYrjgZMNCivjgb7jgYjjgaAs44KG44Gy44GhDQor44G+44KT44GgLOOBvuOBleOBguOBjQ0KK+OBk+OBkOOCjCzjga7jgbbjgYoNCivjgYLjgY3jgoLjgags44GI44GE44GE44GhDQor44Gf44GR44KA44KJLOOCiOOBl+OBig0KK+OBmeOBmuOBjSzjgbXjgb/jgYoNCivjgoTjgb7jgYbjgaEs44Gf44GR44Gy44GTDQor44GV44GI44GNLOOBsuOCjeOBlw0KK+OCj+OBi+OBsOOChOOBlyzjgZPjgYbjgYTjgaHjgo0NCivjgYLjgY3jgoLjgags44G+44GV44GKDQor44KI44GX44GgLOOBqOOBl+OChA0KK+OBleOBqOOBhizjgb7jgZXjgojjgZcNCivjgYrjgZfjgb4s44Go44KI44Gy44GTDQor44GV44GV44GNLOOChOOBmeOBlw0KK+OBguOCieOBhCzjgZ/jgaDjgYoNCivjgo/jgZ/jgarjgbks44Gy44KN44GNDQor44GE44GR44KC44GoLOOBsuOCjeOBi+OBmg0KK+OBjeOBj+OBhCzjgabjgaTjgoQNCivjgbLjgonjgZ8s44KE44GZ44Gy44KNDQor44G+44GN44GG44GhLOOBv+OBpOOChA0KK+OBk+OBm+OBjSzjgYvjgaTjgobjgY0NCivjgavjgZfjgYvjgo8s44Gf44Gg44GXDQor44GE44GM44KJ44GXLOOBhOOBoeOCjeOBhg0KK+OBn+OBquOBiyzjgojjgZfjgagNCivjgbvjgpPjgaAs44Go44KC44GC44GNDQor44Gv44Gj44GfLOOBk+OBhuOBmA0KK+OBr+OCieOBoCzjgZjjgoXjgavjgaENCivjgojjgZfjgaAs44KG44GG44GYDQor44KP44Gf44Gq44G5LOOBruOBtuOChuOBjQ0KK+OBk+OBhOOBmuOBvyzjgb7jgZXjgbLjgZMNCivjgZPjgZnjgaAs44Gy44KN44GC44GNDQor44G/44KE44GRLOOBpOOBreOBig0KK+OBteOBmOOChCzjgoTjgZnjgajjgZcNCivjgb7jgZXjgY0s44G+44GV44Gy44GnDQor44GV44GP44KJ44GELOOBguOBjeOBsuOBpw0KK+OBq+OBl+OChOOBvizjgabjgaTjgZgNCivjgYvjgo/jgZss44KG44GN44GKDQor44GK44GL44GW44KPLOOBk+OBhuOBhOOBoQ0KK+OBguOBleOBiyzjgbLjgo3jgb8NCivjgYrjgYzjgo8s44Gf44GP44KEDQor44Gq44GM44GV44KPLOOBl+OCjQ0KK+OBjeOBn+OCj+OBjSzjgoTjgZnjgbLjgo0NCivjgZfjgb/jgZos44G144G/44GKDQor44GT44Gw44KE44GXLOOBn+OBoOOBpOOBrQ0KK+OBn+OBoeOBsOOBqizjgYjjgYTjgYTjgaENCivjgYTjgb7jgarjgYss44Gy44KN44G/DQor44GG44GX44G+44KLLOOBsuOBleOBi+OBmg0KK+OBiuOBi+OCgOOCiSzjgYrjgZXjgoANCivjgoTjgb7jga4s44Gy44KN44GXDQor44GN44Gf44KA44KJLOOCiuOCh+OBsuOBoQ0KK+OBn+OBi+OBvuOBpCzjgarjgYrjgbLjgZUNCivjgajjgY3jgYvjgo8s44G+44GV44GC44GNDQor44GE44GR44GgLOOBn+OBkeOBlw0KK+OBhOOBl+OBoCzjgYLjgY3jgokNCivjgZ/jgavjga/jgoks44Gy44Gn44GNDQor44GK44GM44KPLOOCiOOBl+OBig0KK+OBn+OBquOBiyzjgZ/jgYvjga7jgbYNCivjgarjgYvjgZjjgocs44GX44KT44KEDQor44Go44KC44GW44KPLOOBqOOBl+OChuOBjQ0KK+OBr+OCieOBoCzjga7jgbbjgYLjgY0NCivjga/jgarjgbbjgZUs44Gv44GY44KBDQor44Go44GP44GK44GLLOOBvuOBleOBig0KK+OBueOBo+OBl+OChyzjgb7jgZXjga7jgooNCivjgarjgYvjgZfjgb4s44G+44GV44Gv44KLDQor44GC44GV44GP44KJLOOBl+OBkuOBkw0KK+OBv+OChOOBp+OCiSzjgZXjgajjgb8NCivjgZnjgZrjgY0s44GR44KTDQor44KI44GX44KA44KJLOOBkeOCk+OBhOOBoQ0KK+OBleOCjyzjgobjgYbjgYTjgaENCivjgarjgYvjgoTjgb4s44G/44Gh44GL44GaDQor44Gy44KJ44GW44KPLOOBsuOBp+OBjQ0KK+OBteOBmOOCj+OCiSzjgYvjgZrjgbLjgacNCivjgZnjgYzjgo/jgoks44Go44GX44KEDQor44Gf44Gr44GM44KPLOOBruOBtuOBn+OBiw0KK+OBu+OCk+OBoCzjgb/jgaTjgY4NCivjga/jgarjgYQs44Gy44Go44GXDQor44GI44GQ44GhLOOBl+OCh+OBmeOBkQ0KK+OBi+OBleOBhCzjgZHjgYTjgZMNCivjgY/jgo3jgZXjgo8s44Gu44G244GTDQor44Gf44GY44G+LOOBm+OBpOOBkw0KK+OBleOBqOOBhizjgYLjgaTjgZMNCivjgbLjgbPjga4s44GC44Gk44GXDQor44GZ44GM44KELOOBvuOBleOBsuOCjQ0KK+OBj+OCieOBnyzjgYvjgaTjgbLjgZMNCivjgb7jgZnjgaAs44KE44GZ44Gy44GTDQor44GZ44GO44Gv44KJLOOBsuOCjeOBlw0KK+OBi+OBreOBkyzjgarjgYrjgY0NCivjgYvjgaQs44KI44GX44Gy44GVDQor44G+44KLLOOBvuOBleOChuOBjQ0KK+OBn+OBquOBiyzjgZPjgYbjgYTjgaENCivjgajjgZfjgYrjgYss44KI44GX44Gy44KNDQor44GX44GS44GuLOOBvuOBleOBguOBjQ0KK+OChOOBvuOCguOBqCzjgajjgYrjgosNCivjgarjgYvjgYzjgo8s44G+44KK44GKDQor44KE44G+44GQ44GhLOOChOOBmeOBqA0KK+OBi+OCj+OCguOCiizjgZPjgYbjgYTjgaENCivjgoDjgonjgoTjgb4s44GV44GP44KB44GEDQor44GX44KFLOOCiOOBsuOBoQ0KK+OBhOOBkeOBoCzjgbLjgo3jgZcNCivjgZPjgaDjgb4s44GX44KTDQor44GL44Go44GGLOOBn+OBpOOBlw0KK+OBr+OBj+OBoeOChyzjgaTjga3jgYoNCivjgYvjgZLjgpMs44GX44KFDQor44Gm44Ga44GLLOOBk+OBhuOBhOOBoQ0KK+OBn+OBq+OBkOOBoSzjga/jgovjgY0NCivjgabjgonjgaAs44GR44GE44GTDQor44GL44Go44GGLOOCiOOBl+OChuOBjQ0KK+OBquOBhOOBqOOBhizjgZ/jgYvjgZcNCivjgYTjgajjgYYs44Gy44KN44KEDQor44GT44Gw44KE44GXLOOBsuOBp+OBi+OBmg0KK+OBn+OBquOBiyzjgYLjgY3jgokNCivjgZXjgZXjgY0s44KK44KH44GYDQor44G744KT44GgLOOBleOBqOOBvw0KK+OBsuOBiOOBoCzjgYvjgaTjgb8NCivjgZXjgYvjgYQs44Gy44KN44GNDQor44GL44Gk44G/LOOCiOOBl+OBsuOCjQ0KK+OBn+OBkeOBuSzjgb7jgZXjgosNCivjga7jgZDjgaEs44Gq44GK44KEDQor44KP44GgLOOBsuOCjeOChuOBjQ0KK+OBhuOBiOOChOOBvizjgZ/jgaTjgYoNCivjgYbjgYjjga4s44GV44Go44KLDQor44Gf44KT44GULOOBhOOBleOBig0KK+OCgOOCieOBi+OBvyzjgYvjgYrjgosNCivjgYLjgonjgY0s44GT44GG44GYDQor44GC44KJ44GbLOOBvuOBleOBn+OBkQ0KK+OChOOBvuOCguOBqCzjgarjgYrjgY0NCivjgo/jgZfjgYos44Gf44GL44GNDQor44KP44GR44GY44G+LOOBn+OBkeOBig0KK+OBk+OBhOOBmuOBvyzjgZ/jgYvjgZcNCivjgajjgY/jgoTjgb4s44GR44KT44GYDQor44Go44G/44Gq44GMLOOBsuOBp+OBqOOBlw0KK+OBjeOBl+OBoCzjgo/jgZ/jgosNCivjgZjjgofjgZHjgpMs44G/44Gh44GoDQor44Gy44KN44GbLOOBguOBjeOBig0KK+OBhuOBoeOChOOBvizjgYvjgZrjga7jgooNCivjgo/jgYvjgZnjgY4s44Gf44GL44GXDQor44GE44GX44GQ44KNLOOBn+OBi+OBlw0KK+OBq+OBl+OCgOOCiSzjgaTjgojjgZcNCivjgYTjga7jgb7jgZ8s44GI44GE44GYDQor44Gk44Gk44G/LOOBkeOCk+OBmA0KK+OBhOOCiuOBiCzjgZ/jgYvjgbLjgo0NCivjgZXjgYTjgajjgYYs44Gy44Gn44GKDQor44GG44GI44GuLOOBi+OBpOOBvw0KK+OBu+OCk+OBoCzjgZPjgZ4NCivjgY3jgZ/jgoDjgoks44G+44GZ44Gy44KNDQor44KE44G+44GM44G/LOOBl+OCjQ0KK+OBquOBi+OBq+OBlyzjgbLjgo3jgobjgY0NCivjgYbjgYjjgaAs44KI44GX44G144G/DQor44Gy44KN44GfLOOBkeOCk+OBmeOBkQ0KK+OBhuOBiOOBoCzjgajjgZfjgbXjgb8NCivjgYTjgZHjgaAs44GR44KT44GYDQor44Gv44Gq44G244GVLOOBm+OBhOOBmA0KK+OBk+OBoOOBvizjgb/jgaHjgbLjgo0NCivjgYrjgYvjgoLjgags44KI44GX44KG44GNDQor44GZ44Ga44GNLOOBkeOCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgZ/jgaDjgZ/jgYsNCivjgavjgYTjgY/jgoks44GL44Gk44Gu44KKDQor44Gr44GX44GgLOOBsuOCjeOBi+OBmg0KK+OBiuOBleOBuSzjgYvjgYrjgosNCivjgbvjgZ3jgYvjgo8s44Go44GX44Gy44GTDQor44GE44G+44GKLOOBguOBpOOBlw0KK+OBteOBmOOBnyzjgYvjgZrjgYoNCivjgYrjga4s44GX44KT44GE44GhDQor44Gq44GL44KE44G+LOOBiuOBleOCgA0KK+OBr+OChOOBlyzjgYvjgojjgZMNCivjgZnjgYzjga/jgoks44Gq44G/DQor44Gv44KJ44GgLOOBvuOBleOBsuOCjQ0KK+OBguOBuSzjgZ/jgYvjgZcNCivjgYLjgbks44KP44Gf44KLDQor44GC44G5LOOBqOOCguOBjQ0KK+OBguOBoOOBoSzjgbLjgo3jgZcNCivjgYLjgYTjgbAs44KI44KK44Gu44G2DQor44GC44GL44Gw44GtLOOBsuOCjeOBguOBjQ0KK+OBguOCk+OBqeOBhizjgarjgYrjgY0NCivjgYLjgpPjganjgYYs44Gy44KN44G/44GkDQor44GC44GK44GNLOOBsuOBleOBiA0KK+OBl+OBhOOBjSzjgYLjgY3jgbLjgo0NCivjgYLjgonjgYQs44Gy44KN44Gy44GVDQor44GC44KJ44GELOOBmOOCheOBq+OBoQ0KK+OBguOCieOBhCzjgZHjgpPjgYTjgaENCivjgYLjgonjgYvjgo8s44KI44Gy44GhDQor44GC44KJ44GNLOOCiOOBl+OBruOBtg0KK+OBguOCieOBjSzjgojjgZfjga7jgooNCivjgYLjgonjgY0s44KI44GX44GKDQor44GC44KJ44GNLOOBkeOBhOOBmA0KK+OBguOCieOBvuOBjSzjgYvjgZrjga7jgooNCivjgYLjgonjgoEs44GE44Gh44KN44GGDQor44GC44KK44KA44KJLOOBl+OCheOBq+OBoQ0KK+OBguOBleOBvyzjgZHjgYTjgYTjgaENCivjgYLjgZrjgb4s44GR44KT44GE44GhDQor44Gw44GwLOOBn+OBoOOBsuOCjQ0KK+OBsOOBsCzjgaDjgYTjgZnjgZENCivjgaHjgbAs44GL44Ga44GKDQor44Gh44GwLOOBiOOBhOOBuw0KK+OBoeOCkyzjgajjgoLjgobjgY0NCivjgaDjgYTjgZPjgY8s44G+44GV44GXDQor44Gn44GQ44GhLOOBsuOCjeOBlw0KK+OBp+OBjSzjgZfjgofjgbLjgaENCivjganjgYQs44Go44GK44KLDQor44GI44Gg44GV44KPLOOBn+OBkeOBlw0KK+OBiOOBkOOBoSzjgYTjgZXjgYoNCivjgYjjgpPjgaks44Gf44Gk44KEDQor44GI44KT44GpLOOBn+OBi+OChuOBjQ0KK+OBiOOCiuOBi+OCjyzjgY3jgojjga/jgosNCivjgbXjgZjjgYQs44GL44Ga44GC44GNDQor44G144GY44KC44GoLOOBvuOBjeOBig0KK+OBteOBmOOCguOBqCzjgZ/jgYvjga0NCivjgbXjgZjjga4s44Gf44GR44GXDQor44G144GL44Gv44KJLOOBl+OCheOBsuOBoQ0KK+OBteOBi+OBvyzjgbLjgo3jgojjgZcNCivjgbXjgYvjgoTjgb4s44Gy44Gn44GL44GaDQor44G144GP44GgLOOCguOBqOOBkw0KK+OBteOBj+OBhCzjga7jgbbjgYLjgY0NCivjgbXjgY/jgoLjgags44GT44GG44GE44GhDQor44G144GP44Gq44GMLOOBqOOCguOChuOBjQ0KK+OBteOBj+OBl+OBvizjgojjgZfjga7jgbYNCivjgbXjgY/jgZfjgb4s44Gy44KN44Gu44KKDQor44G144Gq44GNLOOCiOOBl+OBguOBjQ0KK+OBteOBquOBjSzjga7jgbbjgbLjgZMNCivjgbXjgovjgoQs44Gy44Gn44GNDQor44GU44Gv44KJLOOCiOOBl+OBquOCig0KK+OBlOOBqCzjgYvjgZrjgo0NCivjga/jgYws44G+44GV44GKDQor44Gv44GO44GuLOOChuOBhuOBkw0KK+OBhOOBoeOCgOOCiSzjgbLjgo3jgZcNCivjga/jgb4s44Gy44Gn44GoDQor44Gv44Gq44GgLOOBvuOChuOBvw0KK+OBhOOBsCzjgojjgZfjgYLjgY0NCivjga/jgZvjgbks44GC44GN44KJDQor44Gv44Gb44GM44KPLOOBquOBiuOBjQ0KK+OBr+OBl+OCguOBqCzjga7jgbbjgobjgY0NCivjga/jgZcs44G+44GV44KG44GNDQor44Gv44Gf44GuLOOBvuOBleOBsuOBkw0KK+OBr+OBqOOCiizjgbLjgo3jgZcNCivjga/jgoTjgZcs44G+44GV44Gy44GTDQor44Gv44KE44GXLOOBruOBtuOBig0KK+OBsuOBoOOBiyzjgYvjgZrjgZ/jgYsNCivjgbLjgYzjgZcs44GV44GL44GIDQor44G+44GuLOOChOOBmeOBteOBvw0KK+OBsuOCieOBhCzjgYTjgZXjgYoNCivjgYvjgb/jgZXjgY0s44KI44GX44Gy44GVDQor44Gy44KJ44GuLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBsuOCjeOBhCzjgZ/jgaDjgZcNCivjgbLjgo3jgoLjgoos44GL44Ga44KNDQor44Gy44KN44GV44KPLOOBvuOBk+OBqA0KK+OBsuOCjeOBleOCjyzjgarjgYrjgY0NCivjgbLjgo3jgZss44G+44GV44KI44GXDQor44G744KT44GgLOOBjeOCiOOBleOBoA0KK+OBu+OCk+OBvizjgYvjgaTjgbjjgYQNCivjgbvjgorjgbks44Go44GX44KNDQor44G744KK44GILOOBruOCiuOBguOBjQ0KK+OBu+OCiuOBkOOBoSzjgarjgYrjgYLjgY0NCivjgb7jgaTjgoLjgags44Gu44G244Gy44KNDQor44G744KKLOOBl+OCk+OBn+OCjeOBhg0KK+OBu+OCiizjgYLjgY3jgbLjgZMNCivjgbvjgZfjgYvjgo8s44GT44GG44GYDQor44G744Gd44GL44KPLOOBi+OBmuOBkw0KK+OBsuOCh+OBqSzjgY3jgojjgZ/jgYsNCivjgYTjgbDjgonjgY0s44KI44GX44GL44GaDQor44GE44Gh44GK44GLLOOCiOOBl+OBn+OBiw0KK+OBhOOBkeOBoCzjgajjgZfjgbLjgZMNCivjgYTjgb7jgYQs44G+44GV44Gy44GTDQor44GE44G+44KA44KJLOOBsuOBp+OBig0KK+OBhOOBvuOBquOBiyzjgojjgZfjga/jgosNCivjgYTjgarjgaAs44GC44Gk44GXDQor44GE44Gq44KA44KJLOOBiuOBleOCgA0KK+OBhOOBruOBhuOBiCzjgZfjgpPjgYTjgaENCivjgYLjgonjgYQs44KIDQor44GE44Gu44GG44GILOOBsuOCjeOChOOBmQ0KK+OBhOOBl+OBhCzjgZfjgZLjgosNCivjgYTjgZfjgYQs44Gy44KN44GXDQor44GE44GX44GL44KPLOOChuOBsuOBoQ0KK+OBhOOBl+OBi+OCjyzjgajjgZfjgbLjgacNCivjgYTjgZfjgYrjgYss44Gv44GY44KBDQor44GE44Gd44GgLOOBsuOCjeOBvw0KK+OBhOOBqOOBhizjga7jgorjgobjgY0NCivjgYTjgajjgYYs44GZ44GZ44KADQor44GE44Go44GGLOOBvuOBleOBr+OCiw0KK+OBhOOBqOOBhCzjgobjgbLjgaENCivjgYTjgajjgYYs44GC44Gk44G144G/DQor44GE44KP44GELOOBn+OBi+OBsuOBqA0KK+OBhOOBmuOBv+OChCzjgojjgZfjgZ/jgYsNCivjgYvjgZjjgZ8s44Gf44GL44GC44GNDQor44GL44KB44GELOOBqOOCguOChA0KK+OBi+OBquOBhCzjgbLjgo3jgZcNCivjgYvjgarjgZbjgZcs44GT44GG44GE44GhDQor44GL44Gt44GTLOOBleOBqOOCiw0KK+OBi+OBreOBkyzjgajjgZfjgb8NCivjgYvjga4s44GI44GE44GYDQor44GL44KK44GGLOOBjeOCiOOBvw0KK+OBpOOBjeOBmCzjgbLjgo3jgZcNCivjgYvjgZXjgb7jgaQs44G/44GN44GKDQor44GL44Gf44GO44GXLOOBguOBjeOCiQ0KK+OBi+OBn+OChOOBvizjgb7jgZPjgagNCivjgYvjgZ/jgoTjgb4s44G+44KK44GTDQor44GE44Gd44GgLOOBvuOBleOBsuOCjQ0KK+OBi+OBn+OChOOBvizjgaHjgZrjgZMNCivjgYvjgajjgYYs44GL44Ga44Gy44GoDQor44GL44Go44GGLOOBn+OBoOOBlw0KK+OBi+OBqOOBhizjgZfjgpPjgZgNCivjgYvjgajjgYYs44GC44GN44KJDQor44GL44Gk44G+44GfLOOBvuOBleOBruOCig0KK+OBi+OCj+OBuSzjgZXjgajjgZcNCivjgYvjgo/jgbks44GX44KT44GYDQor44GL44KP44G5LOOBvuOBleOBsuOCjQ0KK+OBi+OCj+OBoCzjga7jgorjgZMNCivjgYvjgo/jgaAs44Gf44GR44GXDQor44GL44KP44KC44GoLOOBvuOBk+OBqA0KK+OBi+OCj+OBn+OBqyzjgYTjgY/jgYoNCivjgY3jgb/jgZrjgYss44GX44GS44GYDQor44GN44KA44KJLOOBn+OBi+OBruOCig0KK+OBjeOCgOOCiSzjgbLjgo3jgobjgY0NCivjgY3jga7jgZfjgZ8s44G+44GV44GXDQor44GN44GV44GLLOOBguOBjeOCiQ0KK+OBjeOBl+OBoCzjgabjgaTjgoHjgYQNCivjgY3jgZ/jgYzjgo8s44Gf44GL44GKDQor44GN44Gf44KA44KJLOOBk+OBhuOBmA0KK+OBjeOBnyzjgZXjgaTjgYoNCivjgY3jgojjga4s44G+44GT44GoDQor44GT44Gw44KE44GXLOOChOOBmeOBlw0KK+OBk+OBoOOBvizjgaHjgYgNCivjganjgbIs44Gf44GP44KEDQor44GT44Gv44KJLOOChuOBjeOBruOBtg0KK+OBk+OBhOOBpyzjgYLjgaTjgZcNCivjgZPjgYTjgo8s44KA44Gt44Gy44GoDQor44GT44GE44Ga44G/LOOBkeOCk+OBmeOBkQ0KK+OBk+OBvuOBpCzjgYLjgY3jgbLjgZMNCivjgZPjgoHjgaAs44GC44GN44GKDQor44GT44KT44GpLOOBm+OBhOOBjQ0KK+OBk+OCk+OBqSzjgb/jgaHjgo0NCivjgZPjgavjgZcs44GL44Ga44KEDQor44GT44GV44GLLOOCiuOCh+OBn+OCjeOBhg0KK+OBk+OBn+OBjSzjgoTjgZnjgbLjgo0NCivjgZPjgZ/jgass44Gy44Gn44GKDQor44GT44Go44G244GNLOOBn+OBi+OBkw0KK+OBn+OBl+OCjSzjgY3jgofjgbLjgaENCivjgY/jgbzjgZ8s44KI44GX44Gy44KNDQor44GP44G8LOOBsuOBp+OBqA0KK+OBj+OBqeOBhizjgb7jgZXjgobjgY0NCivjgY/jgb7jgYzjgYQs44GL44Gk44Gu44KKDQor44GP44KN44GbLOOBi+OBmuOBquOCig0KK+OBj+OBl+OBvizjgbLjgonjgoTjgZkNCivjgY/jgZfjgb/jgoQs44G+44GV44GNDQor44GP44Gk44GL44GRLOOBqOOBl+OChA0KK+OBj+OCj+OBrizjgbLjgofjgZgNCivjgYfjgYgs44Gv44KL44GTDQor44G+44Gk44Gq44GMLOOChOOBmeOBn+OBiw0KK+OBvuOBiOOBoCzjgbLjgo3jgobjgY0NCivjgb7jgYjjga/jgoks44G/44GNDQor44GI44Gu44GNLOOBqOOBiuOCiw0KK+OBvuOBiOOBi+OCjyzjgZjjgoXjgpPjgZgNCivjgb7jgYjjgY0s44Gy44KN44GC44GNDQor44G+44KT44GuLOOBmOOCheOCkw0KK+OBvuOBrizjgbLjgafjgY0NCivjgb7jgpPjgZ/jgass44Gy44KN44GXDQor44G+44KL44KE44G+LOOBi+OBmuOBruOCig0KK+OBvuOBmyzjgobjgY3jgb7jgZUNCivjgb7jgZnjgZbjgo8s44Gm44Gk44KEDQor44G+44Gk44GgLOOBvuOBleOBqA0KK+OBvuOBpOOBhCzjgoTjgZnjgbLjgo0NCivjgb7jgaTjgYQs44GK44GV44KADQor44G+44Gk44KC44GoLOOChOOBmeOBkw0KK+OBvuOBpOOCgOOCiSzjgZPjgY0NCivjgb7jgaTjga4s44GX44KT44GE44GhDQor44G+44Gk44GW44GNLOOBl+OCheOBng0KK+OBv+OBjSzjgYvjgZrjgbLjgo0NCivjgb/jgZPjgaAs44Gy44Gn44GNDQor44G/44KA44KJLOOChuOBhuOBmA0KK+OBv+OCgOOCiSzjgZXjgajjgZcNCivjgb/jgarjgb8s44Go44GX44KEDQor44G/44Gq44G/LOOBk+OBhuOBmOOCjQ0KK+OBv+OBquOBqCzjgYLjgoTjgZMNCivjgb/jga3jgb7jgaQs44GX44KT44GODQor44G/44GtLOOBiOOBhOOBmA0KK+OBv+OBl+OBvizjgojjgbLjgaENCivjgb/jgo8s44KE44GZ44Gy44KNDQor44G/44KE44GQ44GhLOOBi+OBmuOBsuOBkw0KK+OBv+OCiOOBlyzjgb7jgZXjgYoNCivjgb/jgZrjgZ8s44G/44Gk44Gu44KKDQor44KC44KC44Gu44GELOOBhOOBpOOBkw0KK+OBu+OCk+OBoCzjgb7jgZXjgagNCivjgoLjgorjgZ8s44KE44GZ44GC44GNDQor44KC44KK44GfLOOBi+OBmuOBguOBjQ0KK+OCguOCiizjga7jgorjgobjgY0NCivjgoLjgoos44KM44GE44GTDQor44KC44KKLOOBl+OBkuOCiw0KK+OCguOCiizjgabjgovjgobjgY0NCivjgoLjgoos44GL44Ga44Gf44GLDQor44KA44Gt44KA44KJLOOBl+OBkuOBruOBtg0KK+OCgOOCieOBi+OBvyzjgZXjgajjgZcNCivjgoDjgonjgYrjgYss44Gu44G244Gy44KNDQor44G/44KH44GMLOOChOOBmeOBlw0KK+OBquOBjOOBv+OBrSzjga7jgorjgZMNCivjgoTjgb7jgaAs44G+44GV44Gf44GLDQor44Gq44GM44GKLOOBsuOCjeOChuOBjQ0KK+OBquOBjOOBnyzjgb7jgZXjgbLjgo0NCivjgarjgYTjgajjgYYs44Gf44GL44Gy44KNDQor44Gq44GL44GM44KPLOOChuOBhuOBkw0KK+OBquOBi+OBhOOBoSzjgZjjgoXjgpPjgZMNCivjgZXjgZXjgY0s44GR44GE44GZ44GRDQor44Gq44GL44GY44G+LOOBn+OBkeOBlw0KK+OBquOBi+OBl+OBvizjgoTjgZnjgZcNCivjgarjgYvjgZPjgZgs44GC44GN44Gy44GTDQor44Gq44GL44KA44KJLOOBguOBjeOCiQ0KK+OBquOBi+OCgOOCiSzjgYLjgaTjgZcNCivjgarjgYvjgoDjgoks44GL44Ga44Gy44KNDQor44Gq44GL44KA44KJLOOBv+OBruOCiw0KK+OBquOBi+OCgOOCiSzjgZ/jgYvjgZcNCivjgarjgYvjgoDjgoks44Go44GX44G/44GkDQor44Gq44GL44KA44KJLOOCiOOBmA0KK+OBquOBi+OCgOOCiSzjgZPjgYbjgZgNCivjgarjgYvjgavjgZcs44Gy44KN44GNDQor44Gq44GL44GuLOOBvuOBleOBlw0KK+OBquOBi+OBrizjgZfjgpPjgYTjgaENCivjgarjgYvjgZfjgYos44Go44GX44GL44GaDQor44Gq44GL44GfLOOBkeOCk+OBmA0KK+OBquOBi+OChOOBvizjgZPjgYbjgYTjgaHjgo3jgYYNCivjgarjgpPjgZEs44Gf44KN44GGDQor44Gq44KJ44GW44GNLOOBsuOCjeOBruOCig0KK+OBquOCiuOBmyzjgaTjgYvjgZUNCivjgarjgovjgYrjgYss44Gy44KN44GXDQor44Gt44KC44GoLOOBneOBhuOBn+OCjeOBhg0KK+OBq+OCgOOCiSzjgZ/jgaTjgoQNCivjgavjgoDjgoks44G+44GV44G144G/DQor44Gr44GX44KA44KJLOOBleOBqOOBlw0KK+OBq+OBl+OBrizjgajjgYrjgosNCivjgavjgZfjgZfjgZ8s44GY44KF44KTDQor44Gr44GX44GG44GhLOOBoOOBhOOBmeOBkQ0KK+OBq+OBl+OChOOBvizjgobjgYbjgZMNCivjgoTjgZjjgb4s44KI44Gy44GhDQor44Gr44GX44GW44KPLOOBj+OBv+OBkw0KK+OBq+OCjyzjgajjgZfjgobjgY0NCivjga7jgbbjgarjgYws44Gm44Gk44KEDQor44Gu44GM44G/LOOBjeOCk+OChA0KK+OBruOBkOOBoSzjgZPjgYbjgYTjgaHjgo0NCivjga7jgZDjgaEs44GL44Gq44GTDQor44Gu44G+LOOBn+OBi+OBlw0KK+OBruOBvizjgYLjgaTjgZcNCivjga7jgoDjgoks44Gf44GE44Gh44KN44GGDQor44Gu44KA44KJLOOChuOBjeOBsuOCjQ0KK+OBruOCgOOCiSzjgYTjgZXjgoANCivjga7jgZss44Gf44Gg44GXDQor44Gu44GW44KPLOOBmeOBmeOCgA0KK+OBrOOBjeOBhCzjgb7jgZXjgobjgY0NCivjgazjgb7jgYos44Gk44Go44KADQor44Gs44G+44GfLOOBi+OBmuOBvuOBlQ0KK+OBiuOBoeOBguOBhCzjgabjgaTjga7jgooNCivjgYrjgaHjgYLjgYQs44GX44KF44Gy44GhDQor44GK44Gg44Gv44KJLOOBquOBiuOBsuOBqA0KK+OBiuOBoCzjgojjgZfjgYgNCivjgYrjgYzjgZXjgo/jgoks44KG44Gf44GLDQor44GK44Gp44G+44KKLOOBguOBjeOCiQ0KK+OBiuOBi+OBqSzjgb/jgaTjgZcNCivjgYrjgb7jgZUs44G+44GT44GoDQor44GK44Gq44GMLOOBl+OCk+OBhOOBoQ0KK+OBiuOBrizjgb/jgobjgY0NCivjgYrjgZXjgY0s44Go44KI44G/DQor44GK44GV44KPLOOBk+OBhuOBhOOBoQ0KK+OBiuOBmeOBvyzjgZPjgYbjgZgNCivjgoTjgb7jgZfjgZ8s44Gu44KK44GKDQor44GK44GfLOOBl+OCheOBq+OBoeOCjQ0KK+OBiuOBnyzjgZ/jgaDjgYLjgY0NCivjgYrjgaTjgYss44KI44Gy44GhDQor44G+44Gk44Gq44GMLOOBi+OBpOOBvw0KK+OBiuOBsuOCg+OBvizjgYLjgY3jgokNCivjgYrjgYvjgaAs44GL44Ga44Gy44KNDQor44GK44GL44GgLOOBn+OBi+OChuOBjQ0KK+OBiuOBi+OBoCzjgojjgZfjgYoNCivjgYrjgYvjgaAs44GE44GP44GKDQor44GK44Gu44Gn44KJLOOBv+OBruOCiw0KK+OBiuOBi+OCguOBqCzjgZfjgoXjgZgNCivjgYrjgYvjgZbjgY0s44Go44Gy44Gh44KNDQor44GK44GP44GgLOOBteOBv+OBig0KK+OBiuOBjyzjgYLjgY3jgokNCivjgYrjga4s44Gy44KN44KG44GNDQor44GK44GuLOOBsuOBp+OChuOBjQ0KK+OBiuOCiuOBpizjgYLjgaTjgZcNCivjgYrjgZXjgaAs44Gy44Gn44Gf44GLDQor44GV44GE44Go44GGLOOBi+OBmuOChuOBjQ0KK+OBleOBhOOBqOOBhizjgb7jgZXjgosNCivjgZXjgYTjgajjgYYs44Gq44KT44Gm44GkDQor44GV44GE44Go44GGLOOBn+OBi+OBlw0KK+OBleOBhOOBqOOBhizjgZ/jgaTjgoQNCivjgZXjgYTjgajjgYYs44KI44GX44GC44GNDQor44GV44GE44Go44GGLOOBruOCiuOChuOBjQ0KK+OBleOBi+OBhCzjgorjgYgNCivjgYTjgZfjgZbjgY0s44Gf44GR44GXDQor44GV44GL44KC44GoLOOBsuOCjeOBteOBvw0KK+OBleOBi+OBruOBhuOBiCzjgojjgZfjga7jgooNCivjgZXjgYvjgYbjgYgs44Gf44GL44GKDQor44GV44GT44GgLOOBsuOCjeOChuOBjQ0KK+OBleOBj+OCieOBhCzjgZ/jgYvjgYLjgY0NCivjgZXjgY/jgonjgYQs44Go44GX44KG44GNDQor44GV44Gs44GNLOOBruOBtuOChuOBjQ0KK+OBleOBleOBjSzjgZXjgaHjgZMNCivjgajjgb/jgZ8s44GR44GE44GE44Gh44KN44GGDQor44GV44Go44GGLOOBkeOCk+OBhOOBoQ0KK+OBleOBqOOBhizjgoDjgaTjgb8NCivjgZXjgajjgYYs44KA44Gk44GKDQor44GV44Go44GGLOOBl+OCk+OBlA0KK+OBleOBqOOBhizjgZfjgoXjgZgNCivjgZXjgajjgYYs44KI44GE44GhDQor44GV44Go44GGLOOChuOBn+OBiw0KK+OBleOCj+OBoCzjgYvjgZrjgbLjgo0NCivjgZvjgYos44GC44GN44Gy44KNDQor44Gb44GW44GELOOBhOOBoeOCjeOBhg0KK+OBl+OBsOOBnyzjgobjgY3jga7jgooNCivjgZfjgbDjgZ8s44Gy44KN44GXDQor44GX44GM44GNLOOBsuOBp+OBig0KK+OBl+OBv+OBmizjgYvjgZrjgb7jgZUNCivjgZfjgb/jgZos44Gu44G244GKDQor44GX44G/44GaLOOBl+OBkuOBruOCig0KK+OBl+OBv+OBmizjgZ/jgYvjgZcNCivjgZfjgb/jgZos44KK44KF44GG44Gf44KN44GGDQor44GX44KC44KA44KJLOOBguOBjeOBqA0KK+OBl+OBruOBr+OCiSzjgajjgoLjgarjgooNCivjgZfjgonjgaQs44Gm44Gk44GKDQor44GX44KN44GX44GfLOOBquOBiuOBjQ0KK+OBl+OCh+OBmCzjgojjgZfjga7jgooNCivjgZfjgofjgb/jgaQs44G+44GV44KG44GNDQor44Gd44GgLOOBqOOBl+OChA0KK+OBneOCguOCiizjgYvjgY3jgocNCivjgZ0s44GC44Gk44GTDQor44Gq44GLLOOBvuOBleOBqA0KK+OBmeOBjuOCgOOCiSzjgZHjgpPjgZXjgY8NCivjgZnjgY7jga4s44GL44Ga44KE44GZDQor44GZ44GO44GV44KPLOOBn+OBkeOBsuOBkw0KK+OBmeOBjuOBnyzjgogNCivjgZnjgY7jgYbjgaEs44GC44GN44Gy44GTDQor44GZ44GO44KE44G+LOOBsuOCjeOCgA0KK+OBmeOBjuOChOOBvizjgojjgZfjgb8NCivjgZnjgY7jgoTjgb4s44GC44GN44KJDQor44GZ44Ga44GNLOOBguOBjeOBqOOBlw0KK+OBmeOBmuOBjSzjgbLjgafjgYoNCivjgZnjgZrjgY0s44Gy44KN44GC44GNDQor44GZ44Ga44GNLOOBi+OBmuOBsuOCjQ0KK+OBmeOBmuOBjSzjgb7jgZPjgagNCivjgZnjgZrjgY0s44GV44Go44GXDQor44GZ44Ga44GNLOOChuOBhuOBkw0KK+OBmeOBmuOBjSzjgojjgZfjgbLjgo0NCivjgZ/jgaHjgbDjgaos44GL44Gk44GZ44GRDQor44Gf44GE44KJLOOBn+OBpOOBig0KK+OBn+OBhOOCiSzjgYvjgZrjgbLjgZMNCivjgZ/jgYvjgaAs44KG44GG44GYDQor44Gf44GL44GOLOOBkeOBhOOBlw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgbLjgo0NCivjgZ/jgYvjga/jgZcs44Gu44G244KG44GNDQor44Gf44GL44Gv44GXLOOBleOChuOCig0KK+OBvuOBmeOBluOCjyzjgZfjgpPjgZnjgZENCivjgZ/jgYvjga/jgZcs44GC44GN44Gu44KKDQor44Gf44GL44G+LOOBvuOBleOBruOCig0KK+OBn+OBi+OBrizjgYvjgZrjgb8NCivjgZ/jgYvjga4s44GX44KT44KEDQor44Gf44GL44GV44GLLOOChuOBhuOBmA0KK+OBn+OBi+OBmyzjgZfjgpMNCivjgZ/jgYvjgZ8s44Gy44KN44GC44GNDQor44Gf44GL44KE44G+LOOBqOOBl+OBguOBjQ0KK+OBn+OBi+OChOOBquOBjizjgbLjgafjgagNCivjgZ/jgZHjgaAs44GT44GG44GE44GhDQor44Gf44GR44GgLOOChuOBhuOBkw0KK+OBteOBmOOBhCzjgZ/jgYvjgZcNCivjgZ/jgZHjga7jgoos44GC44GN44KJDQor44Gf44GR44GX44GfLOOBsuOBp+OBguOBjQ0KK+OBn+OBkeOBhuOBoSzjgbLjgo3jgobjgY0NCivjgZ/jgZHjgYbjgaEs44G+44GV44GL44GaDQor44Gf44GN44GW44KPLOOBruOCiuOBhOOBpA0KK+OBn+OBjeOBluOCjyzjgZ/jgYvjgobjgY0NCivjgZ/jgb7jgY0s44Gv44GY44KBDQor44Gf44KA44KJLOOBsuOBqOOBlw0KK+OBn+OCgOOCiSzjgb7jgZXjgYLjgY0NCivjgZ/jgoDjgoks44Gy44GV44GoDQor44Gf44Gq44GLLOOBv+OBiOOBkw0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgojjgZcNCivjgZ/jgavjgoTjgb4s44Gv44GY44KBDQor44Gf44GrLOOBi+OBpOOBmA0KK+OBpuOCieOBjeOBnyzjgY/jgb/jgZMNCivjgabjgZrjgYss44GC44Gk44GXDQor44Go44Gw44KKLOOBguOCiuOBsuOCjQ0KK+OBqOOBjOOBlyzjgYjjgooNCivjgoTjgb7jgaAs44GC44GN44KJDQor44Go44GN44Ge44GuLOOBguOBpOOBkw0KK+OBqOOBv+OBquOBjCzjgYTjgY/jgZcNCivjgajjgb/jgarjgYws44Gy44KN44GL44GaDQor44Go44G/44GfLOOChuOBhuOBmA0KK+OBqOOBv+OBnyzjgZ/jgYvjgajjgZcNCivjgajjgoLjgYrjgYss44G+44GV44GC44GNDQor44Go44Gu44GV44GNLOOBpOOCiOOBlw0KK+OBqOOCiuOBluOCjyzjgZXjgajjgZMNCivjgZPjgYTjgZEs44GC44GN44Gy44KNDQor44Go44KI44GL44KPLOOBpuOBpOOBrQ0KK+OBqOOCiOOBi+OCjyzjga7jgbbjgYoNCivjgaTjgbzjgYQs44GX44KH44GUDQor44Gk44GL44GgLOOBguOBjeOBsuOCjQ0KK+OBpOOBj+OBhCzjga7jgbzjgosNCivjgaTjgovjgYvjgo8s44GL44Ga44Gy44GTDQor44Gk44Gk44GELOOBquOBjOOBruOCig0KK+OBpOOBpOOBhCzjgZfjgpPjgYTjgaENCivjgYbjgaHjgaAs44GZ44GZ44KADQor44GG44Gh44GgLOOBmOOCheOBq+OBoQ0KK+OBhuOBoeOBvizjgZHjgpPjgYTjgaENCivjgYbjgaHjgoTjgb4s44GX44GS44GKDQor44GG44GgLOOCguOBqOOBsuOBlQ0KK+OBhuOBiOOBoCzjgZfjgpPjgZgNCivjgYbjgYjjga4s44GX44KT44GYDQor44GG44GI44GuLOOBpuOBpOOBig0KK+OBhuOBiOOBrizjgbLjgajjgZcNCivjgYbjgZHjgYzjgo8s44KI44GX44Gu44KKDQor44GG44G+44Ga44KBLOOBiOOBvw0KK+OBhuOCgeOCgOOCiSzjgbLjgo3jgZMNCivjgo/jgaAs44G+44GV44KI44GXDQor44KP44GgLOOBsuOBleOCiOOBlw0KK+OCj+OBn+OBquOBuSzjgZ/jgaDjgZcNCivjgYTjgYTjgaAs44Go44GK44KLDQor44KP44Gf44Gq44G5LOOBsuOBleOBlw0KK+OCj+OBn+OCiizjgYjjgYTjgZgNCivjgoTjgY4s44Go44GX44GL44GaDQor44KE44G+44GgLOOChuOBhuOBmA0KK+OChOOBvuOBjCzjgbLjgo3jgY0NCivjgoTjgb7jgZDjgaEs44GY44KF44Gr44GhDQor44KE44G+44GQ44GhLOOBl+OCheOBq+OBoQ0KK+OChOOBvuOBkOOBoSzjgYLjgY3jgbLjgo0NCivjgoTjgb7jgoLjgags44Gy44GV44KI44GXDQor44KE44G+44KC44GoLOOBi+OBmuOBruOCig0KK+OChOOBvuOCguOBqCzjgY3jgojjgZcNCivjgoTjgb7jgoLjgags44Gu44KK44GKDQor44KE44G+44KC44GoLOOBn+OBi+OBlw0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgobjgY0NCivjgoTjgb7jgoLjgags44KI44GX44Gy44KNDQor44KE44G+44KC44GoLOOBjeOBv+OBsuOCjQ0KK+OChOOBvuOBquOBiyzjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44KE44GZ44Gy44GTDQor44KE44G+44GG44GhLOOCiuOChw0KK+OChOOBvuOBluOBjSzjgZXjgajjgZcNCivjgoTjgb7jgZbjgY0s44Gf44GL44GXDQor44KE44G+44GW44GNLOOChOOBmeOCiOOBlw0KK+OChOOBrizjgojjgZfjgobjgY0NCivjgoTjga4s44Gy44KN44KG44GNDQor44KE44GZ44GgLOOBsuOBp+OBig0KK+OChOOBmeOBvuOBpCzjgb7jgZXjga7jgooNCivjgoTjgZnjgoLjgags44Gy44Gn44GKDQor44KE44GZ44Gr44KPLOOBvuOBleOBlw0KK+OCiOOBoCzjgabjgaTjgoQNCivjgojjgaAs44G+44GV44KG44GNDQor44KI44GX44GgLOOBi+OBmuOChuOBjQ0KK+OCiOOBl+OBhCzjgbLjgafjgZcNCivjgojjgZfjgarjgYws44G+44GV44Gu44KKDQor44KI44GX44GuLOOBi+OBmuOBqA0KK+OCiOOBl+OBn+OBkSzjgYvjgYrjgosNCivjgZ/jgY3jgZbjgo8s44G+44GV44KI44GXDQor44KE44G+44GQ44GhLOOBiOOBhOOBmA0KK+OBi+OBsOOBl+OBvizjgZXjgajjgosNCivjgZXjgY/jgoks44GL44Ga44GC44GNDQor44KA44KJ44KE44G+LOOBr+OCi+OBsuOBkw0KK+OBsuOBjeOBoCzjgb7jgZXjgajjgZcNCivjgoDjgonjgYQs44GR44KT44GYDQor44GY44KH44G7LOOChuOBjeOBig0KK+OBiOOCk+OBqSzjgZPjgYbjgYTjgaENCivjgabjgonjgoDjgoks44Gf44GR44GXDQor44KP44Gf44Gq44G5LOOBi+OBpOOBquOCig0KK+OBhOOBvuOBhCzjgZPjgYbjgZgNCivjgoLjgorjgoLjgags44Gf44GL44KG44GNDQor44GT44KE44KKLOOBiuOBleOCgA0KK+OBvuOBpOOBv+OChCzjgYTjgZXjgYoNCivjgZfjgbDjgZ8s44KI44GX44Gy44KNDQor44Gh44GX44KNLOOBn+OBpOOChA0KK+OBhOOBn+OBvyzjgobjgb/jgZMNCivjgYrjgZbjgY0s44Gf44Gk44G/DQor44G144GP44KC44GoLOOBguOBjeOBsuOCjQ0KK+OBiuOBi+OBoCzjgZ/jgYvjgZcNCivjgZXjgo/jgaAs44GL44Ga44KI44GXDQor44GV44GP44KJ44GELOOBi+OBmuOBsuOBlQ0KK+OBr+OChOOBlyzjgobjgZnjgZENCivjgb7jgaTjgYrjgYss44Gy44KN44KG44GNDQor44G/44KI44GXLOOBi+OBmuOBvw0KK+OChOOBvuOBquOBiyzjgY/jgavjgbLjgo0NCivjgZfjgb/jgZos44GC44GN44KJDQor44GT44Gv44KJLOOBm+OBhOOBmA0KK+OBq+OBl+OBi+OCjyzjgZ/jgaTjgYoNCivjgYTjgb7jgYQs44Gf44GL44Gy44GTDQor44G144GY44KA44KJLOOBl+OBkuOChA0KK+OBk+OBmOOBvizjgajjgZfjgYvjgZoNCivjgZPjgbDjgoTjgZcs44Gb44GE44GYDQor44GN44GP44GhLOOChuOBsuOBoQ0KK+OBleOBhOOBqOOBhizjgYvjgZrjgYoNCivjgoTjgb7jgZfjgZ8s44KI44GX44Gy44KNDQor44GC44G5LOOBsuOBp+OBig0KK+OBpuOBmuOBiyzjgbLjgajjgZcNCivjgZ/jgarjgYss44G+44GV44Gk44GQDQor44Gr44KPLOOBsuOCjeOBlw0KK+OBi+OCgeOBhCzjgbLjgo3jgZcNCivjgoTjga4s44Gf44GL44GXDQor44Gq44GL44G+44KLLOOCiOOBl+OBruOCig0KK+OBiuOBr+OBnyzjgoTjgZnjga7jgooNCivjgoTjgZnjgoTjgb4s44Gu44KK44KI44GXDQor44GL44GZ44GMLOOBk+OBhuOBmOOCjQ0KK+OBhOOBl+OBhCzjgbLjgajjgZcNCivjgbXjgZjjgoLjgoos44G+44GV44Gu44KKDQor44GE44KP44KC44GoLOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgoTjgZnjgYoNCivjgY3jgZ8s44Gy44KN44KG44GNDQor44KA44KJ44GK44GLLOOChOOBmeOChuOBjQ0KK+OBhOOBkOOBlSzjgbLjgo3jgZcNCivjgarjgYzjgZXjgo8s44GL44Gk44Gy44GTDQor44KE44G+44GQ44GhLOOBv+OBpOOCiw0KK+OBiuOBoOOBmOOBvizjgbLjgafjgYLjgY0NCivjgYrjgZ8s44GX44KT44GYDQor44Gv44GO44GuLOOBn+OBi+OBlw0KK+OChOOBtuOBjSzjgo/jgZ/jgosNCivjgYTjgY0s44G/44Gu44KLDQor44GV44GE44Go44GGLOOBv+OBmuOBuw0KK+OChOOBvuOBoCzjgb/jgaTjgYoNCivjgarjgYvjgoTjgb4s44KE44GZ44GXDQor44KA44KJ44G+44GkLOOBvuOBleOBruOCig0KK+OBn+OBl+OCjSzjgb7jgZXjgbLjgo0NCivjgYTjgZfjga/jgoks44G/44Gk44GKDQor44GX44Gw44GK44GLLOOBguOBjeOBsuOBkw0KK+OBquOBi+OBiizjga7jgorjgZMNCivjgbXjgZjjgZ8s44Gy44KN44GXDQor44GV44GP44GfLOOCi+OBv+OBkw0KK+OBr+OBnyzjgajjgoLjgb8NCivjgYrjgbLjgoPjgb4s44KG44GG44GTDQor44Gf44GULOOCiOOBl+OBmuOBvw0KK+OBvuOBpOOCgOOCiSzjgbLjgo3jgZgNCivjgYTjgajjgYYs44KE44GZ44Gy44KNDQor44GN44KA44KJLOOChuOBn+OBiw0KK+OBguOBiuOBjSzjgb7jgb8NCivjgZPjgb7jgYzjgZ8s44Gq44GK44GE44Gh44KN44GGDQor44Gq44KJ44KA44KJLOOBqOOBl+OBguOBjQ0KK+OBteOBmOOCguOBqCzjgojjgZfjgajjgZcNCivjgb/jgoTjgZXjgYss44G+44GV44GoDQor44Gv44KE44GXLOOBn+OBi+OBlw0KK+OBleOBhOOBqOOBhizjgb7jgorjgZMNCivjgYrjgYzjgZXjgo/jgoks44GL44GK44KLDQor44GK44Gk44GLLOOBl+OCh+OBsuOBoQ0KK+OBi+OCj+OBhCzjgb7jgZXjgobjgY0NCivjgZfjgb7jgZos44Gf44Gk44GKDQor44Gf44GL44Gv44GXLOOChOOBmeOBruOCig0KK+OBvuOBiOOBluOCjyzjgajjgZfjgY0NCivjga/jgaAs44G+44GV44KG44GNDQor44G+44Gk44Gy44KJLOOBmeOBmeOCgA0KK+OBmeOBjuOBr+OCiSzjgZ/jgaDjgZcNCivjgarjgYvjgZjjgb4s44GN44KH44GTDQor44Gv44Gf44GR44KE44G+LOOBi+OBmuOBig0KK+OBguOBiuOBjSzjgb7jgZXjgobjgY0NCivjgZfjgbbjgYvjgo8s44Gf44GR44GKDQor44GE44GX44GgLOOBv+OBpOOBn+OBiw0KK+OBiuOBi+OBoCzjgbLjgafjgajjgZcNCivjgYTjgajjgYYs44GL44Ga44GTDQor44GL44Go44GGLOOBvuOBleOBjQ0KK+OBk+OBsOOChOOBlyzjgajjgZfjgbLjgZMNCivjgoDjgonjgZXjgo8s44G+44GV44Gy44KNDQor44G/44G7LOOBi+OBmuOBsuOBkw0KK+OBmeOBjOOBrSzjgZfjgofjgZgNCivjgYTjgZfjgYvjgo8s44Go44GX44KG44GNDQor44GK44GLLOOBqOOCguOChuOBjQ0KK+OBhOOCj+OBvyzjgojjgbLjgaENCivjgarjgYvjgoTjgb4s44GN44GX44GTDQor44GE44Go44GGLOOBhOOBmuOBvw0KK+OBmeOBjuOChOOBvizjgYvjgYrjgosNCivjgYvjgZfjgoLjgags44GI44KKDQor44Gq44GL44KA44KJLOOBruOBvOOCiw0KK+OBguOBiuOChOOBvizjgojjgZfjga7jgbYNCivjgZfjgbDjgZ8s44Gm44Gk44KEDQor44G+44Gk44GKLOOBvuOBleOBsuOBkw0KK+OBl+OBruOCgOOCiSzjgY3jgojjgbLjgZUNCivjgbXjgovjgYvjgo8s44GX44GS44KLDQor44KC44Go44GNLOOBn+OBi+OBlw0KK+OCj+OBn+OBquOBuSzjgYLjgY3jgokNCivjgYLjgpPjganjgYYs44G+44GV44Gy44KNDQor44Gf44GR44GyLOOBquOBiuOBv+OBpA0KK+OBhOOBl+OBhCzjgb/jga7jgosNCivjga7jgaHjgZss44G+44GV44Gu44KKDQor44G/44KE44Gq44GMLOOCiOOBl+OBruOBtg0KK+OBl+OCk+OBqSzjgojjgZfjgbLjgZMNCivjgYrjgZ8s44KE44GZ44Gy44KNDQor44Gf44GrLOOChuOBv+OBkw0KK+OBk+OCgOOCjSzjgbLjgo3jgZcNCivjgYTjgo/jgZUs44GL44Ga44GNDQor44G+44Gk44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OBjeOCgOOCiSzjgojjgZfjgZMNCivjgYLjgYrjgY0s44G+44GV44KG44GNDQor44G+44Gk44Gw44KE44GXLOOBsuOBp+OBruOCig0KK+OBlOOBqCzjgZHjgpPjgYTjgaENCivjgYrjgYzjgo8s44KI44GX44Gu44KKDQor44GZ44GO44Gf44GrLOOBguOBiuOBhA0KK+OBiuOBj+OBrizjgojjgZfjgbXjgb8NCivjgZXjgY/jgonjgaAs44GX44KF44Gy44GhDQor44KA44GT44Gy44KD44G+LOOBoeOBig0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgo0NCivjgoTjgb7jgoLjgags44GV44Gh44GTDQor44KE44G+44KC44GoLOOBguOBjeOBteOBvw0KK+OBi+OBreOBkyzjgYvjgZrjgbLjgZMNCivjgoTjgb7jgZbjgY0s44Go44GX44GTDQor44Gq44GL44KA44KJLOOBsuOCjeOBvw0KK+OBv+OCjyzjgb/jgojjgZMNCivjgZXjgoDjgYvjgo8s44KI44GX44GC44GNDQor44Gq44GL44GgLOOBteOBv+OBruOCig0KK+OCiOOBl+OBqOOBvyzjgbLjgo3jgb/jgaENCivjgZ/jgYvjgZfjgb4s44Gy44Gn44GC44GNDQor44GE44GX44GSLOOBsuOBleOBqA0KK+OBmeOBiOOBr+OCiSzjgYLjgY3jgbLjgZMNCivjgYTjga7jgYbjgYgs44Gy44KN44GXDQor44Gu44GY44G+LOOBteOBv+OChuOBjQ0KK+OBleOBj+OBvizjgYLjgY3jgokNCivjgZXjga4s44Gv44KL44GKDQor44KA44KJ44GK44GLLOOChuOBjeOBig0KK+OBv+OBhuOCiSzjgZfjgpPjgbrjgYQNCivjgZXjgYvjgoLjgags44Gu44KK44GTDQor44Gq44KL44GKLOOBleOBqOOBlw0KK+OBr+OBm+OBjOOCjyzjgZ/jgaDjgZcNCivjgYrjgYvjgaAs44G+44GV44Go44GXDQor44KE44Gy44KNLOOBl+OCheOBuOOBhA0KK+OBsOOBsCzjgoTjgZnjgbLjgo0NCivjgYLjgZ8s44Go44KCDQor44Gq44GM44GbLOOBiuOBleOCgA0KK+OBi+OCj+OBiCzjgZfjgo0NCivjgb/jgYbjgoks44Go44GX44KG44GNDQor44G144GY44GfLOOBkeOCk+OBhOOBoQ0KK+OBpOOCi+OBvyzjgaTjga3jgZgNCivjgoLjgaHjgZrjgY0s44GC44GN44GTDQor44KI44GX44GgLOOBsuOCjeOChuOBjQ0KK+OBiuOBi+OCguOBqCzjgbLjgafjgb8NCivjgoTjgZnjgoLjgags44G+44KK44GTDQor44Gt44KC44GoLOOBleOBoeOBiA0KK+OBsuOBoOOBiyzjgojjgZfjgb/jgaENCivjgb7jgZnjgaAs44GL44Gk44GYDQor44Go44GP44Gq44GMLOOCiuOCheOBng0KK+OBquOBi+OBluOCjyzjgZjjgoXjgpMNCivjgbXjgZjjgarjgo8s44Gb44GE44GTDQor44KI44Gz44GL44KPLOOBv+OBpOOBsuOCjQ0KK+OBjeOBn+OBoCzjgabjgaTjgYoNCivjgojjgZfjga4s44Gu44G244KG44GNDQor44Gw44GwLOOBn+OBj+OChA0KK+OBj+OCjeOBi+OCjyzjgYLjgoTjga4NCivjgYvjgajjgYYs44GN44KI44GXDQor44KP44Gf44Gq44G5LOOBhOOBmuOBvw0KK+OBpOOBoeOBoCzjgb7jgY3jgogNCivjgZnjgZrjgY0s44GV44Go44GTDQor44G/44Ga44GuLOOCiOOBl+OBig0KK+OBn+OBq+OCguOBqCzjgYjjgb/jgZMNCivjgYTjgZHjga4s44GL44Ga44GC44GNDQor44GE44Go44GGLOOBvuOBleOBteOBvw0KK+OBn+OBkeOBoCzjgb/jgaTjga/jgosNCivjgb7jgYjjgaAs44Gf44GP44GYDQor44GP44Gp44GGLOOBhuOBiOOBv+OBpA0KK+OBi+OBkuOChOOBvizjgY/jgb/jgZMNCivjgoTjgb7jgYvjgZIs44G144G/44Gy44GoDQor44GV44GI44GQ44GVLOOBmeOBmeOCgA0KK+OBv+OBmuOBn+OBqyzjgojjgZfjga/jgosNCivjgY/jganjgYYs44GL44Ga44Gy44KNDQor44GT44GK44KK44KE44G+LOOBn+OBkeOBlw0KK+OBi+OBn+OCiOOBmyzjgoTjgZnjgbLjgo0NCivjgYrjgZXjgaAs44KI44GX44GoDQor44KE44GO44Gv44GXLOOBsuOCjeOBlw0KK+OBmeOBvyzjgZ/jgYvjgZcNCivjgZ/jgarjgYss44Go44GX44GKDQor44GP44Gp44GGLOOBguOBpOOBkw0KK+OBn+OBkeOBsizjgb/jgobjgY0NCivjgYLjgoHjgb/jgoQs44GC44GN44KJDQor44Gq44GL44KA44KJLOOBn+OBj+OBvw0KK+OBjeOCiOOBv+OBpCzjgoHjgZDjgb8NCivjgYTjgZrjgb/jgaAs44GX44KH44GTDQor44G144Gq44GNLOOBqOOBiuOCiw0KK+OBn+OBkeOBl+OBnyzjgZPjgbjjgYQNCivjgb/jgYbjgoks44GL44Gk44G/DQor44GE44GX44Gw44GXLOOBv+OBreOBig0KK+OCguOCiuOBguOBhCzjgojjgZgNCivjgoDjgonjgoTjgb4s44KM44GE44GTDQor44GK44GV44KPLOOBquOBiuOBkw0KK+OBteOBi+OBoCzjgajjgZfjgbLjgZMNCivjgoTjgb7jgaAs44G/44Ga44G7DQor44GE44Go44GGLOOCiOOBl+OBiA0KK+OBiuOBruOBp+OCiSzjgZHjgYTjgZMNCivjga/jgoTjgZXjgYss44GX44KF44Gy44GhDQor44GK44Gk44GLLOOBn+OBpOOBig0KK+OBqOOBsuOCg+OBvizjgYLjgaTjgZcNCivjgYvjgo/jga/jgoks44KG44GN44GKDQor44GI44Gz44GV44KPLOOBguOBjeOCiQ0KK+OChOOBvuOBi+OCjyzjgb/jgaHjgbLjgo0NCivjgoTjgb7jgoLjgags44Gf44GL44GXDQor44GZ44Ga44GNLOOBkeOCk+OBmA0KK+OBiuOChOOBvuOBoCzjgojjgZfjgYsNCivjgb7jgaTjgoTjgb4s44Gy44KN44GC44GNDQor44GC44G5LOOBi+OBmuOBsuOBkw0KK+OBguOBuSzjgY3jgY/jgYoNCivjgYLjgbks44Gu44G244GTDQor44GC44G5LOOBkeOBhOOBmA0KK+OBguOBkuOBnyzjgYjjgYTjgZjjgoUNCivjgYLjgYvjga/jga0s44KE44GZ44Gu44KKDQor44GC44GR44Gq44GMLOOCiOOBl+OBi+OBmg0KK+OBguOBjeOChOOBvizjgbLjgafjgbLjgZMNCivjgYLjgY3jgZbjgo8s44GC44GN44KJDQor44GC44G+44GgLOOBqOOBv+OBig0KK+OBguOBvuOBrizjgb7jgZXjgb/jgaENCivjgYLjgoIs44Gy44Gn44Gy44GTDQor44GC44KT44Gp44GGLOOBsuOCjeOBn+OBiw0KK+OBguOCk+OBqeOBhizjgb/jgaTjgosNCivjgYLjgpPjganjgYYs44G+44GV44GNDQor44GC44GK44GuLOOBpuOBpOOChA0KK+OBguOBiuOChOOBvizjgoTjgZnjgajjgoINCivjgYLjgonjgYQs44Go44GK44KLDQor44GC44KJ44GL44KPLOOBn+OBi+OBlw0KK+OBguOCiuOCguOBqCzjgorjgoXjgbLjgaENCivjgYLjgorjgYos44Gu44G244Gy44KNDQor44GC44GV44GELOOChOOBmeOBig0KK+OBguOBleOBi+OCjyzjgYvjgZrjgb7jgZUNCivjgY/jgo3jgY0s44KG44GN44GKDQor44GC44Ga44G+LOOBmOOCheOBq+OBoQ0KK+OBsOOCk+OBrizjgbLjgafjgbLjgo0NCivjgbnjgaTjgoTjgY8s44GY44KF44KTDQor44Gz44GoLOOBl+OBkuOBig0KK+OBoeOBsCzjgbLjgafjgYvjgZoNCivjgaHjgoXjgZjjgocs44G/44GN44GKDQor44GI44GgLOOBvuOBleOBlw0KK+OBiOOCk+OBqSzjgYLjgY3jgYoNCivjgYjjgZXjgY0s44Gy44Gn44GC44GNDQor44G144GY44GELOOBquOBiuOBjQ0KK+OBteOBmOOBhCzjgajjgZfjgbXjgb8NCivjgbXjgZjjgoLjgags44Gy44KN44GNDQor44G144GY44GfLOOBhOOCj+OBig0KK+OBteOBmOOBnyzjgYvjgZrjgbLjgo0NCivjgbXjgZjjgo/jgoks44Gy44Gn44GXDQor44G144GL44GW44KPLOOBsuOBp+OBjQ0KK+OBteOBj+OBoCzjgb7jgZPjgagNCivjgbXjgY/jga/jgoks44GC44GN44KJDQor44G144GP44GX44G+LOOCiOOBl+OBsuOBqA0KK+OBteOBj+OBqeOCgSzjgobjgY3jga7jgooNCivjgbXjgY/jgoTjgb4s44GX44KT44GYDQor44G144Gq44Gw44GXLOOBvuOBleOBjeOCiA0KK+OBteOCi+OBoOOBpizjgZHjgpPjgZQNCivjgbXjgovjgZXjgo8s44GY44KTDQor44G144KL44GfLOOBsuOCjeOBlw0KK+OBteOCi+OChCzjgYvjgaTjgY0NCivjgbXjgZfjgY0s44GR44KT44GE44Gh44KNDQor44Gv44G+44GgLOOBquOBiuOBvw0KK+OBr+OBquOBoCzjgZfjgpPjgYTjgaENCivjga/jgarjgb8s44Gy44KN44GXDQor44Gv44KJ44GgLOOBteOBv+OBig0KK+OBr+OCi+OBi+OCjyzjgYLjgY3jgokNCivjga/jgZvjgYzjgo8s44GN44KI44Gq44GKDQor44GK44GkLOOBguOBjeOBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgZXjgajjgZcNCivjga/jgZfjgoLjgags44Go44KC44Gy44GoDQor44Gv44GZ44KC44GoLOOBmeOBmeOCgA0KK+OBr+OBo+OBqOOCiizjgoTjgZnjgbLjgZMNCivjga/jgoTjgZXjgYss44GL44Ga44KI44GXDQor44Gy44Gg44GLLOOBi+OBmuOBsuOBlQ0KK+OBsuOBkOOBoSzjgZXjgajjgZcNCivjgbLjgZDjgaEs44G+44GV44KG44GNDQor44Gy44GY44GP44KNLOOBguOBjeOBsuOBkw0KK+OBsuOCieOBi+OCjyzjgZfjgpPjgZgNCivjgbLjgonjga4s44KK44GN44KEDQor44Gy44KJ44GfLOOBl+OCk+OBhOOBoQ0KK+OBsuOCjeOBmyzjgobjgbLjgaENCivjgbLjgZXjgaAs44GT44GG44GE44Gh44KNDQor44G744KKLOOBi+OBpOOBruOCig0KK+OBu+OBsuOCgyzjgbLjgafjgYoNCivjgbvjgpPjgaAs44GC44GN44KJDQor44G744KT44G+LOOBhOOBmuOBvw0KK+OBn+OBquOBiyzjgojjgbLjgaENCivjgbvjgZfjgZjjgb4s44KA44Gt44Gy44KNDQor44G744GX44GLLOOBguOBpOOBlw0KK+OBu+OBneOBoCzjgYjjgb/jgZMNCivjgYTjgaHjgYvjgo8s44GC44Gk44GXDQor44GE44Gh44KA44KJLOOBpOOCiOOBlw0KK+OBhOOBjOOBrizjgZ/jgYvjgYoNCivjgYTjgYTjgaAs44GR44GV44GKDQor44GE44GE44GK44GLLOOBkeOBhOOBkw0KK+OBquOBjOOBrizjgbXjgZXjgobjgY0NCivjgYTjgZHjgZbjgo8s44Gq44GK44KG44GNDQor44GE44KC44GoLOOBmOOCheOBq+OBoQ0KK+OBhOOBquOBmuOBvyzjgbLjgo3jgogNCivjgY/jgZfjgb/jgoQs44G+44GV44Gy44KNDQor44GE44Gu44GG44GILOOBleOBoeOBkw0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgZcNCivjgYTjga7jgYbjgYgs44Gu44KK44KE44GZDQor44GE44Gs44Gk44GLLOOBi+OBmuOBsuOBkw0KK+OBhOOBleOBmCzjgZfjgZLjgobjgY0NCivjgYTjgZfjgaAs44Gf44Gk44KEDQor44GE44GX44GgLOOBpOOCiOOBlw0KK+OBhOOBl+OBoCzjgZ/jgaTjgYoNCivjgYTjgZfjgYzjgY0s44Gf44GR44GXDQor44GE44GX44GM44G/LOOBoeOBiOOBvw0KK+OBi+OBmOOBn+OBqyzjgoTjgZnjgbLjgo0NCivjgYTjgZfjga/jgoks44GR44GE44GUDQor44GE44GX44KA44KJLOOBv+OBqeOCig0KK+OBhOOBl+OChOOBvizjgb7jgZXjgobjgY0NCivjgYTjgZfjgZbjgY0s44Gy44KN44GXDQor44GE44Gd44G5LOOBleOBqOOCiw0KK+OBhOOBneOBluOBjSzjga7jgbbjgoTjgZkNCivjgYTjgajjgYYs44GZ44G/44KMDQor44GE44Go44GGLOOChOOBmeOBr+OCiw0KK+OBhOOCj+OBguOBlSzjgZfjgpPjgYTjgaENCivjgYTjgo/jgYQs44GX44KT44KEDQor44GE44KP44G+LOOBguOBjeOCiQ0KK+OBhOOCj+OCguOBqCzjgajjgoLjgobjgY0NCivjgYTjgo/jgarjgYws44Gq44GK44GNDQor44GE44KP44GX44GfLOOBsuOBp+OBqA0KK+OBhOOCj+OBnyzjgZfjgoXjgbLjgaENCivjgYTjgo/jgZ8s44GE44GV44GKDQor44GL44Gp44KP44GNLOOBj+OBq+OBguOBjQ0KK+OBi+OBkuOChOOBvizjgYjjgorjgZMNCivjgo/jgZ/jgarjgbks44GY44KF44Gr44GhDQor44GL44G/44KELOOBiuOBleOCgA0KK+OBi+OBv+OChCzjgbLjgo3jgobjgY0NCivjgYvjgpPjgbDjgoTjgZcs44G+44GV44Gy44GTDQor44GL44GuLOOBl+OCheOBsuOBoQ0KK+OBi+OCiuOChCzjga7jgbbjgYoNCivjgYvjgZXjgY0s44KI44GX44Gy44GTDQor44GL44GX44G+LOOBvuOBleOBguOBjQ0KK+OBi+OBmeOChCzjgaHjgY/jgZUNCivjgYvjgajjgYYs44Gy44GV44GoDQor44GL44Go44GGLOOBkeOCk+OBn+OCjeOBhg0KK+OBi+OBqOOBhizjgarjgYrjgZ/jgYsNCivjgYvjgajjgYYs44GV44Go44GXDQor44GL44Go44GGLOOCiOOBsuOBoQ0KK+OBi+OBqOOBhizjgbLjgo3jga7jgooNCivjgYvjgo/jgbDjgZ8s44GX44GTDQor44GL44KP44Gw44GfLOOBi+OBmuOBvuOBlQ0KK+OBi+OCj+OBkOOBoSzjgYjjgYTjgZgNCivjgYvjgo/jga/jgoks44GV44Go44GXDQor44GL44KP44Gv44KJLOOBkeOCk+OBhOOBoQ0KK+OBi+OCj+OBmOOCiizjgYTjgZrjgb8NCivjgYvjgo/jgYvjgb8s44GP44Gr44GC44GNDQor44GL44KP44GP44G8LOOBkeOCk+OBhOOBoQ0KK+OBi+OCj+OBvuOBnyzjgY3jgpPjgZgNCivjgYvjgo/jgoDjgoks44Gy44KN44GXDQor44GL44KP44GuLOOBquOCiuOChOOBmQ0KK+OBi+OCj+OBleOBjSzjgZjjgoXjgpMNCivjgYvjgo/jgZfjgb4s44G+44GV44GKDQor44GL44KP44GaLOOBguOBjeOCiQ0KK+OBjeOBsOOBlyzjgZ/jgYvjgY0NCivjgY3jgb7jgaEs44GL44Ga44Gy44KNDQor44GN44KC44GoLOOBkeOCk+OBmA0KK+OBjeOCgOOCiSzjgb/jgaTjgZANCivjgY3jgpPjgbDjgoks44Gy44Gn44Gu44KKDQor44GN44Gu44GX44GfLOOBsuOCjeOChuOBjQ0KK+OBjeOBruOBl+OBnyzjgaDjgYQNCivjgY3jgorjgZXjgo8s44GC44Gk44GXDQor44GT44Gw44KE44GXLOOBsuOBp+OBv+OBoQ0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgb8NCivjgZPjgbDjgoTjgZcs44GL44Ga44G144G/DQor44GT44Gw44KE44GXLOOBv+OBoeOBig0KK+OBk+OBoOOBvizjgabjgaTjgYoNCivjgZPjgaDjgb4s44GL44Ga44Go44GXDQor44Gf44GL44KA44KJLOOBn+OBi+OBruOBtg0KK+OBk+OBsuOBquOBnyzjgbLjgajjgZcNCivjgZPjga4s44Gu44KK44GC44GNDQor44GT44GuLOOBvuOBleOBsuOBqA0KK+OBk+OBsuOCg+OBvizjgajjgZfjgbLjgZUNCivjgZPjgZrjgY0s44G+44GV44Gu44KKDQor44Go44GpLOOBsuOBp+OBsuOBkw0KK+OBk+OBmOOBvizjgb7jgZXjgY0NCivjgZPjgpPjgaks44Gf44GR44GXDQor44GT44KT44GpLOOBn+OBj+OChA0KK+OBk+OCk+OBqSzjgojjgZfjgb/jgaENCivjgZPjgpPjga4s44KE44GZ44GXDQor44GT44Gf44GNLOOBsuOCjeOBjQ0KK+OBk+OChOOBhOOBlyzjgYTjgaHjgo3jgYYNCivjgZPjgoTjgarjgY4s44GY44KF44Gr44GhDQor44GP44G8LOOBsuOCjeOBguOBjQ0KK+OBj+OBqeOBhizjgb7jgZXjgYoNCivjgY/jgb7jgYzjgYQs44G144GY44Gy44GTDQor44GP44G+44GNLOOBk+OBhuOBmA0KK+OBj+OCieOBoSzjgYrjgZXjgoANCivjgY/jgonjgZ8s44KC44Go44Gy44GTDQor44GP44KK44GfLOOChuOBmeOBkQ0KK+OBj+OCiuOChOOBvizjgbLjgo3jgZcNCivjgY/jgo3jgaAs44Gf44GL44Gy44KNDQor44GP44KN44GL44GOLOOBk+OBhuOBmA0KK+OBj+OCjeOBleOCjyzjgajjgZfjgYoNCivjgY/jgo3jgZXjgo8s44GT44GG44GYDQor44GP44KP44GuLOOBl+OCk+OBmA0KK+OBvuOBiOOBsOOBlyzjgYLjgY3jgokNCivjgb7jgYjjgZbjgo8s44Gf44GL44GXDQor44G+44GuLOOBvuOBleOBqOOBlw0KK+OBvuOCi+OCj+OBiyzjgYvjgYrjgosNCivjgYbjgaHjgoTjgb4s44Gy44Go44GXDQor44G+44GZ44GgLOOBv+OBiw0KK+OBvuOBpOOBhCzjga7jgbzjgosNCivjgb7jgaTjgYQs44GR44KT44Gf44KN44GGDQor44G+44Gk44KC44GoLOOBjeOBv+OBsuOBqA0KK+OBvuOBpOOCguOBqCzjgarjgYrjgobjgY0NCivjgb7jgaTjgarjgYws44GX44KT44GYDQor44G+44Gk44GX44G+LOOBn+OBi+OChuOBjQ0KK+OBvuOBpOOBl+OBnyzjgZPjgZnjgZENCivjgb7jgaTjgZbjgY0s44G/44GNDQor44GE44Gq44GE44GXLOOBl+OCheOCk+OBmA0KK+OBv+OBi+OBvyzjgZPjgZnjgZENCivjgb/jgarjgY4s44G+44GV44Gu44G2DQor44G/44Gk44KE44G+LOOBl+OCk+OBmA0KK+OBv+OBhuOCiSzjgZvjgYTjgY0NCivjgb/jgoTjgZEs44Gy44KN44Gf44GLDQor44G/44KE44KC44GoLOOBqOOBl+OBguOBjQ0KK+OBv+OChOOBnyzjga7jgbbjgobjgY0NCivjgb/jgoTjgYbjgaEs44KI44GX44GKDQor44G/44KE44GG44GhLOOBsuOBp+OBquOBig0KK+OBv+OChOOBluOCjyzjgZ/jgaTjgYoNCivjgb/jgoTjgZbjgo8s44GY44KF44KTDQor44G/44KI44GgLOOBl+OBkuOBjQ0KK+OBv+OBnuOBtuOBoSzjgZXjgajjgZcNCivjgb/jgZ7jgZ8s44GX44KT44GE44GhDQor44Gh44GwLOOBsuOBleOBqA0KK+OBv+OBmuOBr+OBlyzjgb7jgZXjgajjgZcNCivjgb/jgZrjgb7jgaEs44KC44KK44Gy44KNDQor44G/44Ga44Gf44GrLOOBn+OBoOOBlw0KK+OBv+OBmuOBn+OBqyzjgZ/jgZHjgZcNCivjgb/jgZrjgZ/jgass44KI44GX44GKDQor44KC44Gh44Ga44GNLOOBkeOBhOOBhOOBoQ0KK+OCguOCiuOCguOBqCzjgYLjgY3jgb/jgaQNCivjgoLjgorjgZ/jgass44GT44GG44GE44Gh44KNDQor44KC44KK44GfLOOBl+OBkuOBjQ0KK+OCguOCiuOBnyzjgYLjgaTjgZcNCivjgoLjgorjgo/jgY0s44GC44Gk44GTDQor44GK44GP44GELOOBk+OBhuOBmA0KK+OCguOCiizjgb7jgZXjgY0NCivjgoLjgoos44GE44Gh44KN44GGDQor44KA44GT44Gy44KD44G+LOOBguOBjeOCiQ0KK+OCgOOCieOBpizjgZ/jgYvjgZcNCivjgoDjgags44Gf44GL44Gy44GVDQor44Gq44GM44GELOOBkeOCk+OBmA0KK+OBquOBjOOBrizjgZ/jgZHjgYoNCivjgarjgYzjgYrjgYss44Gy44KN44Gy44GVDQor44Gq44GM44GbLOOBvuOBk+OBqA0KK+OBquOBjOOBnyzjgZvjgYTjgZgNCivjgarjgYzjgZ8s44GV44Go44GXDQor44Gq44GM44KPLOOBpOOCiOOBlw0KK+OBquOBi+OBvuOCiyzjgbLjgo3jgobjgY0NCivjgarjgYvjgoDjgoks44G/44Gu44KLDQor44Gq44GL44KA44KJLOOBquOBquOBkw0KK+OBguOBuSzjgZ/jgYvjgZcNCivjgarjgYvjgoDjgoks44Go44KI44Gy44GTDQor44Gq44GL44KA44KJLOOBn+OBi+OBlw0KK+OBquOBi+OBl+OBvizjgZfjgpPjgYTjgaHjgo3jgYYNCivjgarjgYvjgZfjgYos44Gf44GR44Gy44GTDQor44Gq44GLLOOBn+OBkeOBvw0KK+OBquOBv+OBjSzjgZ/jgYvjgobjgY0NCivjgarjgpPjgbYs44Gy44KN44KG44GNDQor44KE44G+44GQ44GhLOOBl+OCk+OBhOOBoQ0KK+OBq+OBhOOBvyzjgYvjgaTjgY0NCivjgavjgZfjgaAs44G/44Gk44Gy44KNDQor44Gr44GX44GgLOOBv+OBpOOBqOOBlw0KK+OBq+OBl+OBoCzjgZ/jgYvjgbLjgo0NCivjgavjgZfjgaAs44GL44Gk44G/DQor44Gr44GX44GP44G8LOOBsuOCjeOChuOBjQ0KK+OBq+OBl+OCgOOCiSzjgoLjgajjgY0NCivjgavjgZfjgoDjgoks44GX44KT44GE44GhDQor44Gr44GX44GKLOOCiOOBl+OBjQ0KK+OBq+OBl+OBiizjgYLjgY3jgokNCivjgavjgZfjgoTjgb4s44Go44KC44GTDQor44KE44GM44KPLOOCiOOBsuOBoeOCjQ0KK+OBq+OBo+OBnyzjgajjgZfjgoQNCivjga7jgbnjgYrjgYss44GC44GN44KJDQor44Gu44GY44KKLOOBsuOBleOCiOOBlw0KK+OBruOCgOOCiSzjgbLjgo3jgobjgY0NCivjga7jgarjgYss44Gu44KK44GTDQor44GK44Gw44GqLOOBruOCiuOBi+OBmg0KK+OBiuOBoeOBguOBhCzjgbLjgo3jgZfjgZINCivjgYrjgaHjgb/jgZos44GX44KT44GYDQor44GK44GhLOOBl+OBkuOBteOBvw0KK+OBiuOBoOOBiuOBr+OCiSzjgbLjgo3jgojjgZcNCivjgYrjgaAs44GI44GE44GYDQor44GK44GM44GfLOOBvuOBleOBguOBjQ0KK+OBiuOBjOOCjyzjgZnjgZnjgoANCivjgYrjgYzjgo8s44GC44GN44Gy44KNDQor44GK44GQ44KJLOOBn+OBi+OBguOBjQ0KK+OBiuOBsuOCiSzjgaTjgojjgZcNCivjgYrjgbLjgoks44G+44GV44GoDQor44GK44Gy44GXLOOBl+OCk+OBmA0KK+OBiuOBsuOBlyzjgZ/jgYvjgZcNCivjgYrjgY0s44GR44GE44GYDQor44GK44GP44G8LOOBsuOCjeOBvw0KK+OBiuOBrizjgYLjgY3jgbsNCivjgYrjgazjgb4s44KI44GX44Gu44G2DQor44GK44Gs44G+LOOBpuOBpOOChA0KK+OBiuOBn+OBjSzjgYvjgaTjgZcNCivjgYrjgZ8s44G/44Gu44KLDQor44GK44GfLOOBqOOBl+OChuOBjQ0KK+OBiuOBnyzjgZ/jgYvjgZcNCivjgYrjgags44G/44Gk44Gu44KKDQor44GK44Gk44G8LOOBl+OCk+OBlA0KK+OBiuOBsuOCg+OBjizjgbLjgo3jgYvjgZoNCivjgYrjgbLjgoPjgb4s44G+44GV44GNDQor44GK44GE44GILOOBvuOBleOBqOOBlw0KK+OBiuOBmOOBvizjgYjjgaTjgZMNCivjgYrjgYvjgbks44Gq44GK44KG44GNDQor44GK44GL44GgLOOBruOBtuOChuOBjQ0KK+OBiuOBi+OCguOBqCzjgYTjgaHjgo3jgYYNCivjgYrjgYvjga0s44GC44GN44KJDQor44GK44GL44GuLOOBvuOBk+OBqA0KK+OBiuOBi+OBrizjgYvjgoYNCivjgYrjgYvjgZbjgY0s44GL44Ga44GTDQor44KP44Gf44Gq44G5LOOBkeOBhOOBkw0KK+OBiuOBj+OBoCzjgZfjgZLjga7jgbYNCivjgYrjgY/jga4s44Gq44KL44GXDQor44GK44Gq44KELOOBvuOBleOBsuOBpw0KK+OBiuOBrizjgajjgYrjgosNCivjgYrjga4s44KI44GX44Gq44GMDQor44GK44GuLOOBk+OBhuOBhOOBoQ0KK+OBiuOBleOBquOBhCzjgb7jgZXjgZrjgb8NCivjgYrjgZbjgY0s44Gy44KN44G144G/DQor44GV44GE44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgYLjgaTjgZcNCivjgZXjgZgs44GL44Ga44KEDQor44GV44GYLOOBguOBjeOCiQ0KK+OBleOBi+OBhCzjgYTjgaHjgo3jgYYNCivjgZXjgYvjgYQs44Go44GK44KLDQor44GV44GL44GP44KJLOOBvuOBleOBjQ0KK+OBleOBi+OBhuOBiCzjgZ/jgYvjgZcNCivjgZXjgZXjgbks44Gy44Gn44GKDQor44GV44GV44GNLOOBvuOBleOBkw0KK+OBquOBv+OBjSzjga/jgovjgbLjgZMNCivjgZXjgZ/jgZEs44G+44GV44Go44GXDQor44GV44Gf44GRLOOBguOBpOOBsuOCjQ0KK+OBleOBqOOBhizjgYvjgaTjgZcNCivjgZXjgajjgYYs44GL44Ga44GTDQor44GV44Go44GGLOOBjeOCiOOBlw0KK+OBleOBqOOBhizjgZfjgpPjgoQNCivjgZXjgajjgYYs44KG44Gf44GLDQor44GV44Go44GGLOOBjeOCiOOBguOBjQ0KK+OBleOCj+OBoCzjgbLjgafjgYoNCivjgZvjgY3jgZDjgaEs44KI44GX44G/DQor44Gb44GN44KC44GoLOOBmOOCheOCkw0KK+OBm+OBjeOBrSzjgoTjgZnjgbLjgacNCivjgZvjgY3jgYrjgYss44GL44Ga44GKDQor44Gb44GN44KELOOBi+OBmuOBsuOBkw0KK+OBm+OBjSzjgajjgoLjgZnjgZENCivjgZvjgpPjgZ8s44Gf44GL44Gy44KNDQor44GX44Gw44GfLOOChOOBmeOChuOBjQ0KK+OBl+OBhOOBqizjgb7jgZPjgagNCivjgZfjgYTjgoQs44Gy44Gn44GL44GaDQor44GX44G+44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBl+OBvuOBoCzjgYvjgaTjgbLjgo0NCivjgZfjgb7jgaAs44KP44GNDQor44GX44G+44KA44KJLOOBl+OCheOBsuOBoQ0KK+OBl+OBv+OBmizjgZ/jgZHjgZcNCivjgZfjgb/jgZos44Gq44GK44GNDQor44GX44KC44KA44KJLOOChuOBng0KK+OBl+OBruOBoCzjgZfjgZLjgY0NCivjgZfjga7jga/jgoks44Gy44KN44GXDQor44GX44GK44GW44KPLOOBr+OBmOOCgQ0KK+OBl+OCieOBhOOBlyzjgbLjgo3jgYLjgY0NCivjgZfjgonjgZXjgY0s44Go44GX44KG44GNDQor44GX44KJ44Go44KKLOOBjeOBhOOBoQ0KK+OBl+OBleOBhCzjgb7jgoLjgosNCivjgZfjgofjgaAs44Gy44KN44GC44GNDQor44Gd44GGLOOBmOOCheOBq+OBoeOCjQ0KK+OBneOBruOBuSzjga7jgorjgYLjgY0NCivjgZnjganjgYYs44GV44Go44GXDQor44GZ44Gp44GGLOOBteOBv+OBr+OCiw0KK+OBmeOBjuOBhuOCiSzjgbLjgafjgY0NCivjgZnjgY7jgoTjgb4s44G+44KC44KLDQor44GZ44GO44KE44G+LOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBmeOBv+OBoCzjgb/jgaHjgajjgZcNCivjgZnjgb/jgYvjgo8s44GC44GN44Gy44GoDQor44GZ44Ga44GNLOOBsuOBp+OBqOOBlw0KK+OBmeOBmuOBjSzjgYTjgZ/jgosNCivjgZnjgZrjgY0s44GL44Gk44GC44GNDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBmeOBmuOBjSzjgoLjgajjgobjgY0NCivjgZnjgZrjgY0s44Gu44G244KG44GNDQor44GZ44Ga44GNLOOChuOBhuOBmA0KK+OBmeOBmuOBjSzjgojjgYbjgZMNCivjgbvjgZ3jgYvjgo8s44Gy44Gn44GYDQor44Gf44G244GXLOOBvuOBleOBsuOCjQ0KK+OBn+OBoeOBluOCjyzjgZHjgYTjgZnjgZENCivjgZ/jgaAs44Gq44GK44GNDQor44Gf44GgLOOBqOOBiuOCiw0KK+OBn+OBi+OBnyzjgZfjgoXjgavjgaENCivjgZ/jgYvjgYzjgY0s44GV44Go44GTDQor44KE44G+44GW44GNLOOBquOBiuOBjQ0KK+OBn+OBi+OBr+OBlyzjgorjgofjgbLjgaENCivjgZ/jgYvjga/jgZcs44Go44KC44GYDQor44Gf44GL44Gv44GXLOOBsuOCjeOBjQ0KK+OBn+OBi+OBrizjgbLjgajjgZcNCivjgZ/jgYvjgZXjgY0s44G/44Gt44GL44GaDQor44Gf44GL44GZLOOBsuOCjeOBlw0KK+OBn+OBi+OBqOOCiizjgYLjgaTjgZcNCivjgZ/jgYvjgoTjgb4s44Go44GX44Gq44KKDQor44Gf44GL44KE44G+LOOCiOOBl+OChuOBjQ0KK+OBn+OBi+OChOOBvizjgoTjgZnjgZ4NCivjgZ/jgYvjgoQs44Gv44GY44KBDQor44Gf44GR44GgLOOBi+OBmuOBguOBjQ0KK+OBn+OBkeOBoCzjgobjgooNCivjgb7jgaTjgYrjgYss44GE44GP44GfDQor44Gf44GR44GELOOBruOCiuOBteOBvw0KK+OBn+OBkeOBhuOBoSzjgZ/jgYvjgYLjgY0NCivjgZ/jgZHjgYbjgaEs44Gy44KN44Go44GXDQor44Gf44GRLOOChuOBmeOBkQ0KK+OBn+OBjeOBv+OChCzjgbLjgafjgYvjgZoNCivjgZ/jgb7jgZ/jgass44Gq44GK44GNDQor44Gf44KA44KJLOOCiOOBl+OBpOOBkA0KK+OBn+OCgOOCiSzjgbLjgo3jgY0NCivjgZ/jgarjgYss44G+44GV44KE44GZDQor44Gf44Gq44GLLOOBn+OBi+OBsuOCjQ0KK+OBn+OBquOBiyzjgZ/jgYvjgZcNCivjgZ/jgarjgYss44GL44Ga44KIDQor44Gf44Gr44KC44GoLOOBk+OBhuOBmA0KK+OBn+OBq+OChOOBvizjgb7jgZXjgb8NCivjgZ/jgpPjga4s44GX44GS44KLDQor44Gf44GuLOOChuOBhuOBmA0KK+OBpuOCieOBluOCjyzjgojjgZfjgYvjgZoNCivjgajjgY/jgZfjgZIs44Gf44GI44GTDQor44GU44GoLOOBsuOCjeOChuOBjQ0KK+OBqOOBv+OBquOBjCzjgojjgZfjgbLjgo0NCivjgajjgpPjgZfjgocs44Gu44G244Gy44GTDQor44Gk44G844GELOOBqOOCguOBiuOBjQ0KK+OBpOOBvOOBnyzjga7jgorjgajjgZcNCivjgaTjgZjjgoDjgoks44GR44GE44GTDQor44G+44Gk44KA44KJLOOBqOOCguOBsuOCjQ0KK+OBpOOBi+OBoCzjgYvjgZrjgYLjgY0NCivjgaTjga3jgojjgZcs44KI44GX44Gy44KNDQor44Gk44KL44GK44GLLOOBkeOCk+OBmA0KK+OBpOOCiyzjgYvjgZrjgbLjgZUNCivjgYbjgaHjgaAs44Go44KC44KE44GZDQor44GG44GI44GgLOOBguOChOOBkw0KK+OBhuOCgeOBleOBjSzjga7jgorjgbLjgo0NCivjgYbjgonjgYvjgo8s44GX44KT44GE44GhDQor44GG44KJ44GL44KPLOOBguOBjeOBsuOBkw0KK+OCj+OBoCzjgYrjgZXjgoANCivjgo/jgYvjgbDjgoTjgZcs44Gy44GV44GKDQor44KP44GL44G+44GkLOOBguOBjeOCiQ0KK+OCj+OBn+OBquOBuSzjgZXjgajjgosNCivjgo/jgZ/jgarjgbks44Gq44GK44GNDQor44KP44Gf44KKLOOBsuOCjeOBsuOBlQ0KK+OChOOBuSzjgbLjgafjgobjgY0NCivjgoTjga/jgY4s44GX44KH44Gy44GhDQor44KE44G+44GgLOOBl+OCh+OBmA0KK+OChOOBvuOBoCzjgarjgYrjgY0NCivjgoTjgb7jgZPjgZcs44GC44GN44KJDQor44KE44G+44KC44GoLOOBsuOBp+OBjQ0KK+OChOOBvuOCguOBqCzjgZXjgajjgb8NCivjgoTjgb7jgoLjgags44G+44GV44KEDQor44KE44G+44KC44GoLOOCiOOBl+OBig0KK+OChOOBvuOCguOBqCzjgbLjgafjgobjgY0NCivjgoTjgb7jgYbjgaEs44Gf44KC44GkDQor44KE44G+44GuLOOBjeOCiOOBlw0KK+OChOOBvuOBiuOBiyzjgobjgYbjgZgNCivjgoTjgb7jgZfjgZ8s44GL44Ga44GXDQor44KE44G+44GG44GhLOOBmOOCheOCkw0KK+OChOOBvuOBluOBjSzjgZHjgpPjgZgNCivjgoTjgb7jgZbjgY0s44KI44GX44GL44GaDQor44KE44Gq44GO44GX44G+LOOBguOBpOOBkw0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgZcNCivjgoTjga4s44GT44GG44GYDQor44KE44GW44GNLOOBk+OBhuOBhOOBoQ0KK+OCiOOBlCzjgZfjgpPjgZgNCivjgojjgZPjgYQs44GL44Ga44Gy44KNDQor44KI44GT44G/44GeLOOBi+OBmuOBsuOCjQ0KK+OCiOOBk+OBnyzjgb7jgZXjgobjgY0NCivjgojjgZPjgZ8s44Gd44Gy44GhDQor44KI44GT44GfLOOBguOBpOOBlw0KK+OCiOOBl+OBoCzjgojjgYTjgaENCivjgojjgZfjgaAs44GV44GhDQor44KI44GX44G144GVLOOBvuOBleOBvw0KK+OCiOOBl+OBr+OCiSzjgajjgYrjgosNCivjgojjgZfjgYTjgYgs44Gy44KN44G144G/DQor44KI44GX44GL44KPLOOBqOOCguOBn+OBiw0KK+OCiOOBl+OBi+OCjyzjgajjgZfjgbLjgacNCivjgojjgZfjgYos44Gf44GR44GXDQor44KG44GC44GVLOOBsuOCjeOBvuOBlQ0KK+OChuOBjSzjgobjgYvjgooNCivjgYLjgaDjgaEs44G+44GZ44G/DQor44GK44Gr44GXLOOBv+OBi+OBkw0KK+OBiuOBnyzjgZ/jgYvjgbLjgZMNCivjgYLjgZXjga4s44Gf44GR44GXDQor44Gr44GX44KA44KJLOOChOOBmeOBr+OCiw0KK+OChOOBvuOBoCzjgYvjgaTjgb7jgZUNCivjgZXjgYQs44Go44GX44GNDQor44G/44KE44KC44GoLOOChuOBhuOBmA0KK+OBmeOBmuOBjSzjgbLjgZXjgYoNCivjgbXjgY/jgYQs44KG44GG44GTDQor44GK44GP44GgLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBleOBhOOBqOOBhizjgb7jgaHjgZMNCivjgbXjgovjgoQs44GE44GP44G144G/DQor44KC44Go44KE44G+LOOBqOOCguOBvuOBlQ0KK+OCiOOBl+OBluOBjSzjga/jgZjjgoENCivjgarjgYvjgoDjgoks44Gh44GIDQor44Go44GN44KPLOOBv+OBpOOBsuOCjQ0KK+OBhOOBquOBoCzjgobjgYbjgZgNCivjgajjgY3jgo8s44G+44GV44KI44GXDQor44KI44GX44GgLOOBguOBjeOCiQ0KK+OBn+OBi+OBrizjgajjgZfjgobjgY0NCivjgYbjgYjjgaAs44GL44Ga44GKDQor44Gk44Gh44KELOOBv+OCj+OBkw0KK+OBl+OCguOBi+OCjyzjgb/jgaHjgZMNCivjgb7jgaTjgYQs44G/44Gk44KI44GXDQor44GZ44GM44KELOOBsuOCjeOBruOCig0KK+OBv+OBruOBkOOBoSzjgY/jgavjgYoNCivjgYbjgYjjgaAs44GL44Ga44GKDQor44GE44GuLOOBi+OBmuOBsuOBkw0KK+OBvuOBiOOBoCzjgY/jgavjgoQNCivjgaTjgbzjgZ8s44Gy44GV44GTDQor44KI44GX44G/LOOBn+OBi+OBig0KK+OBhOOBoeOBi+OCjyzjgYvjgaTjgb8NCivjgbvjgoos44Gq44GK44Gy44KNDQor44Gv44KE44GXLOOChuOBsuOBoQ0KK+OBl+OBsOOBnyzjgYLjgaTjgo0NCivjgZPjgbDjgoTjgZcs44GX44KF44Gy44GhDQor44GK44GP44G8LOOBvuOBleOBpOOBqg0KK+OBhOOCj+OBnyzjga7jgorjgobjgY0NCivjgbXjgZjjgZ8s44Gf44GL44KG44GNDQor44GN44Gf44KA44KJLOOBkeOBhOOBkw0KK+OBj+OCjeOBjSzjgajjgoLjgZMNCivjgoTjgb7jgoLjgags44KG44GG44GTDQor44KE44G+44Gw44GfLOOBteOBv+OBsuOBkw0KK+OBleOBhOOBqOOBhizjgYvjgaTjgb8NCivjgbXjgZjjgo/jgoks44KI44GX44GKDQor44GE44Go44GGLOOChOOBmeOBkw0KK+OBhOOBhOOBkSzjgbLjgYvjgosNCivjgZXjgoDjgYvjgo8s44Go44KC44GYDQor44GC44Ga44G+LOOBvuOBk+OBqA0KK+OBguOBiuOBjSzjga7jgorjgYoNCivjgbXjgZjjgZ8s44GE44GP44GKDQor44G/44KI44GXLOOBl+OBkuOBsuOCjQ0KK+OBm+OBjeOChOOBvizjgbLjgafjgoQNCivjgabjgonjgaAs44KG44Gf44GLDQor44GI44KT44GpLOOBhOOBj+OBkw0KK+OBi+OBjeOCguOBqCzjgb7jgZnjgbLjgZMNCivjgbXjgovjgoQs44Gf44GR44GXDQor44G+44GN44KA44KJLOOBruOBtuOChuOBjQ0KK+OBk+OCk+OBrizjgb7jgZXjgbLjgo0NCivjgZnjgY7jgZXjgY0s44GL44Ga44GKDQor44KI44GX44GgLOOBkeOBhOOBkw0KK+OBr+OBjuOCj+OCiSzjgZ/jgYvjgZcNCivjgoTjgZbjgY0s44KG44GN44GTDQor44Gr44Gu44G/44KELOOBl+OCheOBsuOBoQ0KK+OBk+OBleOBiyzjgZ/jgaDjgZcNCivjgZXjga4s44GL44Ga44GoDQor44GV44GE44Go44GGLOOBqOOBiuOCiw0KK+OBl+OCguOBmyzjgYLjgY3jga7jgooNCivjgZ/jgYvjga/jgZcs44G+44GV44GNDQor44Gf44Gk44GK44GLLOOBguOBpOOBlw0KK+OBn+OBsOOBnyzjgaTjga3jgYoNCivjgarjgYrjgYQs44Go44GX44GL44GaDQor44Gq44GM44GfLOOCiOOBl+OBig0KK+OBq+OBl+OBiuOBiyzjgabjgovjgbLjgZUNCivjgb7jgaTjgYvjgo8s44Gf44GR44GXDQor44G/44Ga44GuLOOBkeOCk+OBmOOCjeOBhg0KK+OBqOOBj+OBquOBjCzjgYTjgo/jgYoNCivjgoDjgonjgYvjgb8s44Gf44GR44GKDQor44KE44GZ44GL44KPLOOBsuOCjeOBlw0KK+OChOOBvuOBkOOBoSzjgajjgZfjgobjgY0NCivjgojjgZPjgYbjgYgs44GX44GS44GKDQor44GC44Ga44G+LOOBsuOCjeOBlw0KK+OBhOOBquOBoCzjgobjgYbjgZgNCivjgYTjgZfjgYQs44GL44Ga44GKDQor44GE44G+44Gr44GXLOOBsuOCjeOChOOBmQ0KK+OBiuOBi+OBrizjgZfjgpPjgZQNCivjgY3jgZcs44Gg44GE44GZ44GRDQor44GP44G844GfLOOBn+OBi+OCiOOBlw0KK+OBk+OBv+OBquOBvyzjgYvjgZrjgbLjgagNCivjgYLjgYTjgoTjgb4s44G+44GV44GNDQor44GV44GuLOOCiOOBl+OBn+OBiw0KK+OBn+OBjeOBjOOCjyzjgb7jgZXjgZMNCivjgZPjgpPjga4s44G+44GV44GKDQor44Gb44KT44Gg44GELOOBl+OBkuOCiw0KK+OBq+OCj+OBrizjgYLjgaTjgZcNCivjgZfjgZjjgocs44KG44GG44GTDQor44GL44Go44GGLOOBkeOBhOOBkw0KK+OBguOBi+OBleOBiyzjgbLjgo3jgY0NCivjgYrjgpPjgZrjgYss44Go44GX44Gu44KKDQor44GT44GMLOOChuOBjeOBig0KK+OBr+OChOOBi+OCjyzjgZ/jgaDjgZcNCivjga/jgZvjgYzjgo8s44Gu44G844KLDQor44G144KL44GL44KPLOOBv+OBpOOChuOBjQ0KK+OBteOBmOOBi+OBqSzjga7jgbzjgosNCivjgajjga7jgYvjgo8s44Gf44GR44GKDQor44G+44Gk44GKLOOBi+OBreOBv+OBpA0KK+OBjeOBv+OBmuOBiyzjgajjgZfjgZMNCivjgYrjgaEs44G+44GV44Gu44KKDQor44GE44Gh44GT44Gv44KJLOOBvuOChuOBvw0KK+OBhOOBkeOBoCzjgZfjgofjgZjjgo0NCivjgYLjgonjgZ/jgZEs44Gh44GL44KJDQor44GE44GR44GgLOOBl+OBkuOCiOOBlw0KK+OBhOOBqOOBhizjgbLjgo3jgoTjgZkNCivjgYTjgZHjgaAs44Gf44GL44GXDQor44GE44GE44GgLOOBsuOBp+OBmeOBkQ0KK+OBiuOBj+OBvizjgarjgYrjgojjgZcNCivjgY/jgZXjgbAs44GL44Ga44Gq44KKDQor44GT44Gw44KE44GXLOOBj+OBq+OBig0KK+OBlOOBqCzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44GT44GG44GE44GhDQor44Gb44GN44GtLOOBqOOCguOBvw0KK+OBn+OBi+OBoCzjgb7jgZXjgojjgZcNCivjgZPjgpPjgaks44Gf44GR44GXDQor44Gf44GR44KE44G+LOOChuOBhuOBmA0KK+OBn+OBi+OBhOOBoSzjgZ/jgZHjgZcNCivjgZ3jgaAs44KI44GX44GKDQor44Gf44GuLOOBvuOBleOBruOCig0KK+OBl+OBruOBluOBjSzjgb7jgZPjgagNCivjga/jgonjgaAs44G+44GV44KE44GZDQor44GP44Gp44GGLOOBguOBjeOBkw0KK+OBpOOBruOBoCzjgYTjgY/jgYoNCivjgbXjgovjgYvjgo8s44Go44GN44GKDQor44KC44KK44GfLOOCiOOBsuOBoQ0KK+OChOOBvuOCguOBqCzjgYjjgaQNCivjgoTjgb7jgZfjgZ8s44G+44GV44GoDQor44KG44GL44KPLOOBi+OBmuOBiA0KK+OCiOOBl+OBoCzjgb7jgZXjgY0NCivjga/jgoTjgZcs44GV44KI44GTDQor44Gf44KT44GuLOOBi+OBmuOChA0KK+OBn+OBi+OBr+OBlyzjgoLjgajjga7jgooNCivjgarjgorjgYLjgYQs44Gy44KN44GXDQor44Gf44GL44KA44KJLOOBqOOBl+OChuOBjQ0KK+OBn+OCk+OBrizjgojjgZnjgZENCivjgZPjgbDjgoTjgZcs44GR44GE44GX44KNDQor44GU44GoLOOBiuOBleOCgA0KK+OBlOOBoCzjgZHjgpPjgZgNCivjgarjgYvjgZfjgb4s44G+44GT44GoDQor44G744GX44GuLOOBleOBqOOBlw0KK+OCj+OBkyzjgYLjgoQNCivjgZnjgZrjgY0s44GL44Gk44GTDQor44KI44GX44G+44GkLOOBmOOCheOBrSDjgarjgYrjgZMNCivjgarjgb/jgYrjgYss44Go44GX44GC44GNDQor44KE44G+44GQ44GhLOOBvuOBleOChuOBjQ0KK+OBhOOBl+OBsOOBlyzjgajjgYrjgosNCivjgYTjgZfjgaAs44KI44GX44Gv44KLDQor44GG44Gh44KE44G+LOOCiOOBl+OBig0KK+OBiOOCk+OBqSzjgYjjgYTjgZMNCivjgarjgYvjga4s44Go44GX44Gf44GLDQor44GE44G+44GELOOBiOOBhOOBhOOBoQ0KK+OBiuOBleOBquOBhCzjgb7jgZPjgagNCivjgZXjgYvjgoLjgags44KI44GX44Gu44KKDQor44GX44GK44G/LOOBguOBjeOBig0KK+OBl+OBvuOBluOBjSzjgabjgaTjgYoNCivjgabjgovjgoQs44GT44GG44GE44GhDQor44Gq44GL44Gf44GrLOOBqOOBiuOCiw0KK+OBr+OBjuOCj+OCiSzjgY3jgofjgZMNCivjgbLjgYzjgZcs44G/44Gk44GKDQor44G744KK44GG44GhLOOBteOBv+OBn+OBoA0KK+OBv+OBnuOCjeOBjizjgarjgYrjgY0NCivjgoLjgoos44GX44GS44GKDQor44GE44Gu44GG44GILOOBvuOBleOBj+OBqw0KK+OBl+OBoCzjgZfjgpPjgZgNCivjgoTjgb7jgoLjgags44Gy44KN44GL44GaDQor44KE44G+44KC44GoLOOBvuOBk+OBqA0KK+OBiuOBn+OBjSzjgZvjgpPjgoQNCivjgbXjgZgs44Gb44GE44GYDQor44GC44GN44KC44GoLOOBl+OBkuOCiw0KK+OBhOOBhOOBmOOBvizjgb7jgZXjgbXjgb8NCivjgYrjgZDjgb4s44GL44Ga44GKDQor44GV44Go44GGLOOBguOBpOOBlw0KK+OBpOOBoeOChCzjgY3jgojjgZcNCivjgZXjgYTjgajjgYYs44Gh44GL44GXDQor44Gv44KJLOOBquOBiuOBjQ0KK+OBteOBmOOBvuOBjSzjgajjgZfjgoQNCivjgoDjgo3jgZ8s44Gq44GK44GNDQor44KC44KKLOOBjeOCiOOBi+OBmg0KK+OBv+OBnuOBkOOBoSzjgZfjgofjgZMNCivjgYTjgZHjga/jgZ8s44KI44GX44GKDQor44GK44GM44KPLOOBquOBiuOBjQ0KK+OBhuOBiOOBrizjgZ/jgoLjgaQNCivjgZ/jgarjgYss44Gf44GR44Gy44GTDQor44GT44Gw44KE44GXLOOBv+OBoeOCiA0KK+OBj+OCjeOBmSzjgb/jgaHjgZMNCivjgY3jgZ/jgYzjgo8s44Gy44Gn44GC44GNDQor44GX44Gu44G/LOOBi+OBmuOChA0KK+OBr+OBmyzjgZXjgarjgYgNCivjgabjgovjgazjgb4s44G+44KC44KLDQor44GN44GP44GhLOOBguOBjeOBkw0KK+OBr+OBl+OCguOBqCzjgobjgb/jgZMNCivjgYrjgYvjgo8s44Gf44GL44GKDQor44GK44Gr44GXLOOCiOOBl+OBsuOCjQ0KK+OBguOBuSzjgYvjgZrjgojjgZcNCivjgYLjgaDjgaEs44Gb44GE44GE44Gh44KN44GGDQor44GC44Gg44GhLOOBl+OCk+OChA0KK+OBguOBoOOBoSzjgb/jgaTjgb7jgZUNCivjgYLjgZQs44Go44GK44KLDQor44GC44GE44Gv44KJLOOBqOOBl+OChuOBjQ0KK+OBguOBhOOBr+OCiSzjgbLjgo3jgobjgY0NCivjgYLjgYTjgZbjgo8s44Gy44KN44Gf44GLDQor44GC44GL44G+44GkLOOBvuOBleOBqOOBlw0KK+OBguOBi+OBvizjgYvjgZrjgbLjgo0NCivjgYLjgYvjgZss44G+44GV44GL44GaDQor44GC44GL44KE44G+LOOChOOBmeOBmA0KK+OBteOBj+OBl+OBvizjgbLjgo3jgZcNCivjgYLjgY3jgbAs44G+44GV44KG44GNDQor44GC44GN44GuLOOChuOBng0KK+OBguOBjeOBl+OBiyzjgojjgYbjgZMNCivjgarjgoHjgY0s44GV44Go44GXDQor44GC44GN44Ga44GNLOOBruOCiuOChuOBjQ0KK+OBguOBvuOBoCzjgZfjgpPjgagNCivjgYLjgb7jga4s44Gd44Gy44GhDQor44GC44G/44GuLOOBvuOBleOBsuOBqA0KK+OBguOCk+OBuSzjgbLjgafjgY0NCivjgYLjgpPjganjgYYs44G+44GV44GoDQor44GC44KT44GW44GELOOBqOOBl+OChuOBjQ0KK+OBguOCk+OBluOBhCzjgYvjgYrjgooNCivjgYLjgYrjgY0s44GC44GN44Gy44GTDQor44GC44GK44KE44GOLOOBsuOBp+OBig0KK+OBguOBiuOChOOBjizjgZjjgoXjgavjgaENCivjgYLjgYrjgoTjgY4s44Gf44Gk44GKDQor44GC44KJ44GL44KPLOOBqOOCguOBvw0KK+OBguOCieOBi+OCjyzjgb7jgZXjgobjgY0NCivjgYLjgonjgY0s44GX44KT44GS44KTDQor44GC44KJ44KE44GZLOOBqOOCguOBrg0KK+OBguOCiSzjgaTjgajjgoANCivjgYLjgorjgZ8s44Gv44KL44GNDQor44GC44GV44GgLOOChuOBhuOBmA0KK+OBguOBleOBoCzjgarjgYrjgb8NCivjgYLjgZXjgYvjgo8s44GX44KT44GE44GhDQor44GC44GV44GP44KJLOOChuOBjeOBig0KK+OBquOBi+OBleOBqCzjgajjgYrjgosNCivjgYLjgZXjga4s44Gu44G244Gv44KLDQor44GC44GV44KKLOOChOOBmeOBlw0KK+OBguOBpOOBvyzjgbLjgo3jgajjgZcNCivjgYLjgo/jgYss44Gf44GL44KI44GXDQor44Gw44GwLOOBsuOCjeOBlw0KK+OBsOOCkyzjgZXjgajjgZcNCivjgbDjgpMs44Gf44GL44GKDQor44Gw44KTLOOBsuOCjeOChuOBjQ0KK+OBoeOCh+OBlSzjgbLjgZXjgZcNCivjgaDjgYTjgaks44Gf44GE44GZ44GRDQor44Gg44GE44KC44KTLOOBvuOBleOChuOBjQ0KK+OBp+OCgOOCiSzjgajjgZfjgobjgY0NCivjganjgYQs44Gy44Go44GXDQor44GI44Gz44Gs44G+LOOBguOBjeOBig0KK+OBiOOBkOOBoSzjgY3jgofjgZMNCivjgYjjga/jgoks44GP44Gr44GKDQor44GI44Gq44G/LOOBsuOCjeOBguOBjQ0KK+OBiOOBqCzjga7jgorjgYgNCivjgYTjgo/jgZXjgY0s44Go44KC44KG44GNDQor44GI44GW44GNLOOBguOBjeOCiQ0KK+OBteOBmOOBiOOBoCzjgojjgZfjgbLjgo0NCivjgbXjgZjjgYgs44GL44Ga44GNDQor44G144GY44GM44GNLOOBguOBjeOCiOOBlw0KK+OBteOBmOOBhCzjgYvjgaTjgb8NCivjgbXjgZjjgYQs44GL44Ga44Gy44KNDQor44G144GY44GELOOBkeOCk+OBng0KK+OBteOBmOOBhCzjgo/jgZ/jgosNCivjgbXjgZjjgYQs44GT44GG44Gf44KN44GGDQor44G144GY44GL44KPLOOBvuOBleOBlw0KK+OBteOBmOOCguOCiizjgZHjgYTjgZfjgpMNCivjgbXjgZjjgoLjgags44Gq44GK44Gy44GTDQor44G144GY44KC44GoLOOCiOOBl+OBqA0KK+OBteOBmOOBrizjgZ/jgYvjgZcNCivjgbXjgZjjgYrjgYss44GC44GR44G/DQor44GK44GQ44KJLOOBmOOCheOCkw0KK+OBteOBmOOBnyzjgYvjgZrjgYoNCivjgbXjgZjjgZ8s44Gq44Gk44GTDQor44G144GY44GfLOOCiOOBl+OBquOCiw0KK+OBteOBmOOBnyzjgYvjgZrjgYoNCivjgbXjgZjjgo/jgoks44KG44GG44GYDQor44G144GL44GgLOOBmOOCheOCkw0KK+OBteOBi+OBiizjgZPjgYbjgYTjgaENCivjgbXjgYvjgYos44KI44GX44Gh44GLDQor44G144GL44GbLOOBqOOBl+OChuOBjQ0KK+OBteOBj+OBoSzjgYLjgY3jgokNCivjgbXjgY/jgaAs44GY44KF44Gr44GhDQor44G144GP44GgLOOBv+OChuOBjQ0KK+OBvuOBpOOBi+OCjyzjgZfjgZLjga7jgooNCivjgbXjgY/jgaAs44GX44KT44GE44GhDQor44G144GP44GgLOOBqOOCguOBrg0KK+OBteOBj+OBoCzjgZfjgofjgZQNCivjgbXjgY/jga/jgoks44GX44GuDQor44G144GP44GELOOBn+OBi+OBlw0KK+OBteOBj+OBhCzjgoTjgZnjgZcNCivjgbXjgY/jgYrjgYss44GC44KE44GTDQor44GX44GMLOOBvuOBleOBqA0KK+OBteOBj+OBl+OBvizjgZXjgajjgosNCivjgbXjgY/jgZfjgb4s44KG44GN44GKDQor44G144GP44GX44G+LOOBl+OCh+OBmA0KK+OBiuOBrizjgbLjgo3jgZcNCivjgbXjgarjgaQs44GC44Gk44GXDQor44GU44GgLOOBv+OBpOOBsuOCjQ0KK+OBlOOBoCzjgb/jgZXjgY0NCivjgZQs44G+44KK44GTDQor44GT44GQ44KMLOOCiOOBl+OBsuOCjQ0KK+OBlOOBqCzjgobjgYbjgZMNCivjgZTjgags44G144G/44Gy44GTDQor44Gv44GMLOOBsuOBp+OBig0KK+OBr+OBjuOCj+OCiSzjgb/jgYsNCivjga/jgb7jgaAs44KG44GN44GTDQor44G+44GI44GgLOOBkeOCk+OBmA0KK+OBr+OBvuOBr+OBnyzjgobjgY3jgYoNCivjga/jgb7jga4s44Gy44KN44GXDQor44Gv44Gq44G244GVLOOBmOOCheOBq+OBoQ0KK+OBr+OBquOBnyzjgZfjgpPjgZQNCivjga/jgarjgb/jgaQs44Gq44GK44GoDQor44Gv44KT44GgLOOBguOBpOOBlw0KK+OBr+OCieOBoCzjgaHjgYvjgZMNCivjga/jgonjgaAs44Gq44GK44GNDQor44Gv44KJ44GgLOOBquOBiuOBjQ0KK+OBr+OCieOBoCzjgajjgZfjgobjgY0NCivjga/jgoks44KI44KK44GTDQor44Gv44KJLOOBsuOBp+OBguOBjQ0KK+OBr+OBm+OBjOOCjyzjgYvjgYTjgo0NCivjga/jgZfjgZDjgaEs44GN44KT44KEDQor44Gv44GX44KC44GoLOOBn+OBi+OBlw0KK+OBr+OBl+OCguOBqCzjgobjgY3jgogNCivjga/jgZ/jgZHjgoTjgb4s44KK44KH44GE44GhDQor44Gv44Gf44Gq44GLLOOBjeOBj+OBig0KK+OBr+OBpOOBl+OBvizjgYLjgY3jgYoNCivjga/jgaPjgajjgoos44GR44KT44GE44GhDQor44Gv44Gj44Go44KKLOOBruOBvOOCiw0KK+OBr+OBo+OBqOOCiizjga7jgbbjgbLjgo0NCivjga/jgaPjgajjgoos44KK44KF44Gy44Gh44KNDQor44Gv44Gj44Go44KKLOOCiOOBl+OBmA0KK+OBr+OBo+OBqOOCiizjgojjgZfjgZ/jgYsNCivjga/jgoTjgYvjgo8s44GZ44G/44GoDQor44Gv44KE44GX44GgLOOBguOChOOBkw0KK+OBi+OCk+OBoCzjgbXjgb/jgYoNCivjga/jgoTjgZcs44GY44KF44Gr44GhDQor44Gv44KE44GXLOOBvuOBleOBruOCig0KK+OBr+OChOOBlyzjgb7jgZXjgobjgY0NCivjga/jgoTjgZcs44G/44KG44GNDQor44Go44Gz44GL44KPLOOBvuOBk+OBqA0KK+OBsuOBkuOBnyzjgYTjgZXjgYoNCivjgbLjgZDjgaEs44G+44GV44Go44GXDQor44Gy44GQ44GhLOOBruOCiuOBjQ0KK+OBsuOBmOOBi+OCjyzjgZXjgajjgZcNCivjgbLjgYvjgYQs44GN44KI44GXDQor44Gy44Gq44GfLOOBkeOCkw0KK+OBsuOBrizjgojjgZfjgbLjgZUNCivjgbLjga4s44Gk44Gt44Gy44GVDQor44Gy44KJ44GOLOOBvuOBleOBkw0KK+OCiOOCguOBoCzjgbXjgb/jgYoNCivjgbLjgonjga4s44KG44GN44Gy44GTDQor44Gy44KJ44GuLOOCiOOBl+OBruOCig0KK+OBsuOCieOBleOCjyzjgYLjgY3jgokNCivjgbLjgonjgZ8s44G+44GV44KEDQor44GC44GV44GuLOOBkeOCk+OBmA0KK+OBsuOCieOBnyzjgZPjgYbjgZgNCivjgbLjgonjgaTjgYss44Gk44KI44GXDQor44Gy44KN44GL44KPLOOBsuOCjeOBlw0KK+OBsuOCjeOBquOBiyzjgYvjgaTjgb8NCivjgbLjgo3jgZss44G/44KG44GNDQor44Gf44GX44KNLOOCiOOBsuOBoQ0KK+OBsuOCjeOBmyzjgb/jgaTjgbLjgo0NCivjgbLjgZfjgazjgb4s44KG44GG44GTDQor44GE44KP44KC44GoLOOCiOOBl+OBruOCig0KK+OBsuOBhuOCiSzjgb7jganjgYsNCivjgZnjgY7jgoLjgags44GY44KF44KTDQor44G744KT44G+LOOBl+OCh+OBsuOBoQ0KK+OBu+OCk+OBvizjgZ/jgYvjgobjgY0NCivjgbvjgpPjgb4s44KE44GZ44GXDQor44G744KT44G+LOOBi+OBmuOBqA0KK+OBu+OCiuOBi+OCjyzjgb7jgZXjga7jgbYNCivjgbvjgorjgYos44Gy44KN44KG44GNDQor44G744KKLOOBi+OBmuOBsuOCjQ0KK+OBu+OCiizjgb7jgZXjgbLjgo0NCivjgbvjgoos44Gy44KN44GXDQor44G744GX44GuLOOBsuOBleOBig0KK+OBu+OBl+OBrizjgZ/jgZHjgZcNCivjgbvjgZfjga4s44G144G/44GC44GNDQor44G744GXLOOBi+OBmuOBsuOBlQ0KK+OBu+OBnSzjgbLjgZXjgobjgY0NCivjgbvjgZ/jgaYs44GN44G/44GTDQor44GE44Gh44GL44KPLOOBvuOBk+OBqA0KK+OBhOOBoeOBi+OCjyzjgbLjgo3jga7jgbYNCivjgYTjgaHjgY0s44GY44KF44KTDQor44GE44Gh44Gu44GbLOOBsuOBqOOBlw0KK+OBhOOBoCzjgZvjgYTjgYTjgaENCivjgYTjgafjgYQs44KE44GZ44KG44GNDQor44GE44GM44KJ44GXLOOBpOOCiOOBlw0KK+OBhOOBkOOBoSzjgZ/jgYTjgokNCivjgYTjgYTjgaAs44Gf44Gk44KNDQor44GE44GE44GgLOOBmOOCheOBq+OBoQ0KK+OBhOOBhOOBmOOBvizjgYvjgaTjgojjgZcNCivjgYTjgYTjgZjjgb4s44GL44Ga44GKDQor44GE44GE44KA44KJLOOBguOBpOOBlw0KK+OBhOOBhOOBrizjgZPjgYbjgYTjgaENCivjgYTjgYTjgZrjgYss44GX44KT44GYDQor44GE44GE44Ga44GLLOOBguOBjeOBkw0KK+OBr+OCi+OBnyzjgbXjgajjgZcNCivjgYTjgZHjgaAs44Gy44KN44GTDQor44GZ44Ga44GNLOOBi+OBmuOBvw0KK+OBhOOBkeOBoCzjgobjgYsNCivjgYTjgZ3jgbks44KG44G/44GTDQor44GE44GR44KE44G+LOOBleOBqOOBlw0KK+OBhOOBj+OBnyzjgZ/jgZHjgZcNCivjgYTjgb7jgYTjgZrjgb8s44GC44KKDQor44KC44KK44GX44GfLOOBquOBiuOBjQ0KK+OBhOOBvuOBhCzjgb7jgZXjgYvjgZoNCivjgYTjgb7jgoDjgoks44KG44GG44GYDQor44GE44G+44KA44KJLOOBlA0KK+OBhOOBquOBvyzjgYjjgYTjgZbjgbbjgo0NCivjgYTjga7jgYbjgYgs44G144GY44GKDQor44GE44Gu44GG44GILOOBsuOCjeOChuOBjQ0KK+OBhOOBruOBhuOBiCzjgYvjgZrjga7jgooNCivjgYTjga7jgYbjgYgs44KI44GX44Gu44G2DQor44GE44Gu44GG44GILOOBsuOBp+OBjQ0KK+OBhOOBrOOBhCzjgbLjgo3jgZcNCivjgYTjgZfjgaAs44GL44Gk44Gy44GTDQor44GE44GX44GgLOOBqOOBl+OBkw0KK+OBhOOBl+OBoCzjgarjgYrjgbLjgo0NCivjgYTjgZfjgZDjgo0s44Go44GK44KLDQor44GE44GX44GQ44KNLOOBj+OBq+OBsuOCjQ0KK+OBhOOBl+OBr+OCiSzjgZPjgYbjgZgNCivjgYTjgZfjgYQs44GZ44GO44GKDQor44GE44GX44GELOOBqOOBl+OBguOBjQ0KK+OBhOOBl+OBhCzjgaHjgZrjgZMNCivjgobjgY3jgb7jgZUs44GX44GS44GNDQor44GE44GX44GL44KPLOOBn+OBoOOBlw0KK+OBhOOBl+OBi+OCjyzjgb7jgarjgbYNCivjgYTjgZfjgY/jgoks44Gu44KK44KG44GNDQor44GE44GX44KC44KKLOOBkeOCk+OChA0KK+OBhOOBl+OCguOBqCzjgoTjgZnjgbLjgacNCivjgYTjgZfjgoLjgags44Gy44KN44GXDQor44GE44GX44GK44GLLOOBsuOCjeOBlw0KK+OBhOOBl+OBiuOBiyzjgbLjgo3jgZ/jgYsNCivjgYTjgZfjgo/jgZ8s44G/44Gk44GTDQor44GL44KTLOOChuOBjeOBqOOBlw0KK+OBhOOBl+OBluOBiyzjgb7jgarjgbYNCivjgYTjgZ3jgYzjgYQs44Go44GX44Gy44KNDQor44GE44Gf44Gw44GXLOOChuOBn+OBiw0KK+OBhOOBn+OBsOOBlyzjgb7jgooNCivjgZXjgY7jgoQs44Gy44KN44GXDQor44GE44Go44GGLOOBmOOCheOBq+OBoQ0KK+OBhOOBqOOBhizjgYvjgYrjgosNCivjgYTjgajjgYYs44GR44GE44GE44GhDQor44GE44Go44GGLOOBk+OBhuOBmA0KK+OBhOOBqOOBhizjgb7jgZXjgajjgZcNCivjgYTjgajjgYYs44Gf44GL44GXDQor44GE44Go44GGLOOCiOOBhuOBkw0KK+OBleOBi+OBhCzjgobjgZ/jgYsNCivjgYTjgajjgYYs44Gy44KN44GC44GNDQor44GE44KP44GELOOCiuOBiA0KK+OBl+OBvuOCgOOCiSzjgZXjgaHjgZMNCivjgYTjgo/jgYQs44KG44GLDQor44GL44KP44Gq44GLLOOBruOBtuOBig0KK+OBhOOCj+OBj+OBvCzjgarjgYrjgbLjgZUNCivjgYTjgo/jgoLjgags44KI44Gy44Gh44KNDQor44GE44KP44KC44GoLOOBi+OCiOOBkw0KK+OBn+OBkeOBoCzjgZ/jgYvjgbLjgo0NCivjgYTjgo/jgoDjgoks44GX44KT44GE44GhDQor44GE44KP44Gq44GMLOOBl+OBkuOBjQ0KK+OBhOOCj+OBiizjgbLjgafjgYLjgY0NCivjgYTjgo/jgZXjgY0s44Gm44Gk44KEDQor44GE44KP44GV44GNLOOBguOBkeOBvw0KK+OBm+OBjOOCjyzjga7jgZ7jgoANCivjgYTjgo/jgZfjgo0s44Gq44GK44KI44GXDQor44GE44Ga44G/LOOBi+OBmuOBl+OBkg0KK+OBi+OBiOOCiuOChOOBvizjgarjgYrjgobjgY0NCivjgYvjgYzjgb8s44Gf44GL44GXDQor44GL44GM44G/LOOBk+OBhuOBhOOBoQ0KK+OBi+OBmOOBn+OBqyzjgYvjgZrjgobjgY0NCivjgoTjgb7jgoLjgags44GL44GK44KLDQor44GL44GN44Gs44G+LOOBteOBleOBoeOBiw0KK+OBi+OBjyzjgY3jgofjgZMNCivjgYvjgb7jgaAs44GL44Ga44G/DQor44GE44Gq44GM44GNLOOBn+OBi+OChuOBjQ0KK+OBi+OBvuOCguOBqCzjgZXjgoTjgYsNCivjgYvjgb7jgZ/jgass44Gy44Gn44GC44GNDQor44GL44G+44GfLOOBleOBoeOBkw0KK+OChOOBvuOBoCzjgbLjgo3jgobjgY0NCivjgYvjgoHjgaAs44Gy44Gn44GKDQor44GL44KB44KELOOBk+OBhuOBhOOBoQ0KK+OBi+OBv+OBmOOChyzjgZ/jgaTjgbLjgZMNCivjgYvjgb/jgYos44Go44KJ44Gy44GTDQor44GL44G/44KELOOBvuOBleOBn+OBiw0KK+OBi+OCguOBqCzjgojjgZfjgbLjgZUNCivjgYvjgarjgaAs44G+44GT44GoDQor44GL44Gq44GELOOBquOBiuOBjQ0KK+OBi+OBquOBhCzjgYTjgY/jgYoNCivjgYvjgarjgZbjgo8s44GX44GS44KI44GXDQor44GL44KT44GgLOOBi+OBmuOBsuOBkw0KK+OBi+OBreOBhOOBoSzjgYjjgYTjgYTjgaENCivjgYvjga3jgZMs44Gy44KN44GC44GNDQor44GL44Gt44GTLOOBsuOCjeOChuOBjQ0KK+OBi+OBreOBkyzjgb7jgZPjgagNCivjgYvjga3jgZMs44G+44GV44GIDQor44GL44Gt44GTLOOBn+OBiOOBkw0KK+OBi+OBreOBkyzjgarjgYrjgbXjgb8NCivjgYvjga3jgb7jgoss44Go44KC44GTDQor44GL44KK44KELOOBiOOBhOOBmA0KK+OBi+OCi+OBuSzjgYLjgY3jgZMNCivjgYvjgZfjgb4s44Gy44Gn44GNDQor44GL44GX44KP44GOLOOBvuOBk+OBqA0KK+OBi+OBl+OCj+OBjizjgb7jgarjgb8NCivjgYvjgZnjgoQs44G+44GV44Gu44KKDQor44GL44GZ44KELOOCiOOCiuOBkw0KK+OBi+OBmeOChCzjgb7jgZXjgZ/jgYsNCivjgYvjgZ/jga4s44GN44KH44GTDQor44GX44KJ44GNLOOCiuOBiOOBkw0KK+OBi+OBn+OBiuOBiyzjgZXjgaDjgYTjgaENCivjgYvjgZ/jgYrjgYss44Gf44GL44Gy44KNDQor44GL44Gf44KE44G+LOOBguOBjeOBig0KK+OBi+OBqOOBhizjgbLjgo3jgbbjgb8NCivjgYvjgajjgYYs44G+44GZ44GKDQor44GL44Go44GGLOOBl+OCheOBmA0KK+OBi+OBqOOBhizjgZ/jgZHjgbLjgZMNCivjgYvjgajjgYYs44KE44GIDQor44GU44GoLOOBsuOBleOBlw0KK+OBi+OBpOOChCzjgYLjgaTjgZcNCivjgYvjgo/jgaAs44KI44GX44Gu44G2DQor44GL44KP44GgLOOBjeOCh+OBmA0KK+OBi+OCj+OBkOOBoSzjgbLjgo3jgobjgY0NCivjgYvjgo/jga/jgoks44KI44GX44KG44GNDQor44GL44KP44Gv44KJLOOBsuOCjeOBlw0KK+OBi+OCj+OBr+OBnyzjgZHjgYTjgZQNCivjgYvjgo/jgYQs44GX44KH44GTDQor44GL44KP44GELOOBn+OBi+OBlw0KK+OBi+OCj+OBhCzjgZHjgpPjgYTjgaENCivjgYvjgo/jgYvjgb8s44GL44Gk44GKDQor44GL44KP44GN44GfLOOCiOOBsuOBoeOCjQ0KK+OBi+OCj+OBjeOBnyzjgYLjgaTjgZcNCivjgYvjgo/jgoDjgoks44G+44KK44GTDQor44GL44KP44KA44KJLOOBn+OBpuOBig0KK+OBi+OCj+OCgOOCiSzjgbLjgo3jgZcNCivjgYvjgo/jgZ7jgYgs44Gy44KN44GTDQor44G144Gf44GP44GhLOOBsuOCjeOChA0KK+OBjeOBoCzjgZ/jgZHjgZcNCivjgY3jgaAs44Gy44KN44GL44GaDQor44GN44GpLOOBsuOCjeOBlw0KK+OBjeOBr+OCiSzjgb/jgaHjgYoNCivjgY3jgY/jgaEs44GV44Gh44GTDQor44GN44GP44GhLOOBleOBqOOBlw0KK+OBjeOBj+OBnyzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgY3jgoLjgags44Gy44KN44GC44GNDQor44GN44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBjeOCgOOCiSzjgZjjgoXjgavjgaENCivjgY3jgoDjgoks44GL44KI44GTDQor44GN44KA44KJLOOBv+OBuw0KK+OBvuOBpOOCguOBqCzjgZ/jgZHjgZcNCivjgY3jgoDjgoks44Go44KC44GC44GNDQor44GN44KA44KJLOOChOOBmeOBkw0KK+OBiuOBi+OBluOBjSzjgobjgY3jgb7jgZUNCivjgY3jgoDjgoks44KG44GNDQor44GN44KA44KJLOOBvuOBleOChuOBjQ0KK+OBjeOBruOBl+OBnyzjgb/jgaoNCivjgY3jgZcs44Gf44Gg44GXDQor44GN44GZLOOChOOBmeOBsuOCjQ0KK+OBjeOBn+OBi+OBnCzjgojjgZfjgbXjgb8NCivjgY3jgZ/jgoDjgoks44GC44GN44GKDQor44GN44GG44GhLOOBi+OBpOOBqOOBlw0KK+OBjeOBhuOBoSzjgZPjgYbjgZgNCivjgY3jgojjgZ8s44GC44GE44GTDQor44GT44Gw44KE44GXLOOBhOOBleOBig0KK+OBk+OBsOOChOOBlyzjgYvjgZrjgb7jgZUNCivjgZPjgbDjgoTjgZcs44G/44Gu44KLDQor44GT44Gw44KE44GXLOOBquOBu+OBvw0KK+OBk+OBsOOChOOBlyzjgZfjgoXjgavjgaENCivjgZPjgbDjgoTjgZcs44GZ44G/44Gy44KNDQor44GT44Gw44KE44GXLOOBn+OBj+OCjQ0KK+OBk+OBsOOChOOBlyzjgajjgZfjgYoNCivjgZPjgbDjgoTjgZcs44GY44KF44KT44GTDQor44Gy44KN44GbLOOBn+OBkeOBig0KK+OBk+OBp+OCiSzjgobjgYsNCivjgZPjgYzjgYQs44GC44Gk44GXDQor44GT44GQ44KMLOOBkeOBhOOBkw0KK+OCguOCiuOBnyzjgY3jgb/jgbLjgZMNCivjgZPjgoLjgags44GY44KF44KT44GTDQor44GT44GuLOOBruOBtuOBjQ0KK+OBk+OBleOBiyzjgYLjgY3jgYoNCivjgZPjgYTjgZEs44Gq44GK44GoDQor44GT44GE44GRLOOBn+OBi+OBng0KK+OBk+OBhOOBlyzjgaDjgYTjgZnjgZENCivjgZPjgZjjgb4s44G+44GV44Gv44KLDQor44GT44GY44G+LOOBkeOCk+OBmA0KK+OBk+OBj+OBuyzjgb/jgojjgZMNCivjgZPjgY/jgb7jgYQs44KI44GX44KG44GNDQor44GT44G+44GM44GfLOOBn+OBi+OBlw0KK+OBk+OBvuOBjSzjgbLjgafjgYLjgY0NCivjgZPjgb7jgaQs44KG44Gy44GhDQor44GT44G+44GkLOOCiOOBl+OBig0KK+OBk+OBv+OBrSzjgbLjgo3jgbLjgacNCivjgZPjgb/jgoTjgb4s44Gv44KL44GKDQor44GT44KC44GK44GLLOOBguOBjeOBsuOCjQ0KK+OBk+OCguOCiizjgbLjgZXjgZ/jgYsNCivjgZPjgpPjgaks44GL44Ga44GKDQor44GT44KT44GpLOOBv+OBoeOBsuOBkw0KK+OBk+OCk+OBqSzjgojjgZnjgZENCivjgZPjgpPjgaks44GC44GN44Gy44KNDQor44GT44KT44Gp44GGLOOCiOOBl+OChuOBjQ0KK+OBk+OCk+OBrizjgY3jgojjgZcNCivjgZPjgZnjgY4s44KI44Gy44GhDQor44GT44GgLOOBguOBjeOBig0KK+OBk+OChOOBquOBjizjgYvjgZrjgZ/jgYsNCivjgY/jgbzjgZ8s44Gm44GkDQor44GP44G844GfLOOBi+OBpOOChA0KK+OBj+OBvCzjgb/jgYjjgZMNCivjgY/jganjgYYs44G+44GT44GoDQor44GP44GMLOOBi+OBmuOChuOBjQ0KK+OBj+OBmOOBvizjgojjgbLjgaENCivjgY/jgb7jgaAs44GC44Gk44GXDQor44GP44G+44GNLOOBi+OBpOOBruOCig0KK+OBj+OBvuOBj+OCiSzjgojjgZfjga7jgbYNCivjgY/jgb7jgoLjgags44G144G/44GKDQor44GP44KC44GL44KPLOOBl+OBkuOBruOCig0KK+OBj+OCieOBl+OBvizjgbLjgo3jgZcNCivjgY/jgorjga/jgoks44G/44GN44GKDQor44GP44KK44Gv44KJLOOCiOOBl+OBng0KK+OBj+OCiuOCgOOCiSzjgZ/jgYvjgobjgY0NCivjgY/jgorjgZks44Gf44Gk44GoDQor44GP44KK44KE44G+LOOBpuOBpOOBig0KK+OBj+OCiuOChOOBvizjgojjgbLjgaENCivjgY/jgo3jgaAs44Go44GX44KG44GNDQor44GP44KN44GL44KPLOOBruOBtuOBsuOBkw0KK+OBj+OCjeOBjSzjgbLjgo3jgobjgY0NCivjgY/jgo3jgZXjgY0s44Gq44GK44GNDQor44GP44KN44GZLOOBn+OBi+OChuOBjQ0KK+OBj+OBl+OBoCzjgZQNCivjgY/jgZnjgaAs44GX44GS44KLDQor44GP44KP44Gw44KJLOOBiOOCig0KK+OBhuOBoeOBoCzjgbLjgo3jgZcNCivjgb7jgYjjgaAs44G+44GNDQor44Gr44KPLOOBi+OBpOOBqA0KK+OBvuOBiOOBsuOCiSzjgYLjgY3jgbLjgZMNCivjgb7jgYjjgYvjgo8s44Gy44KN44Gu44KKDQor44G+44GN44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBvuOBjeOBrizjgZPjgYbjgZgNCivjgb7jgY3jga4s44KG44G/44GTDQor44KI44GG44GT44GfLOOBl+OCheOBmA0KK+OBvuOCi+OChOOBvizjgbLjgo3jgZcNCivjgb7jgZnjgaAs44KG44GN44GIDQor44G+44GZ44GgLOOBmOOCheOBq+OBoQ0KK+OBvuOBmeOBsuOCjSzjgYLjgY3jgokNCivjgb7jgZnjgoTjgb4s44Gy44KN44GXDQor44G+44Gk44Gw44KJLOOBruOBtuOChA0KK+OBvuOBpOOBsOOCiSzjga7jgbbjgYLjgY0NCivjgb7jgaTjgaDjgYTjgoks44Gy44KN44GXDQor44G+44Gk44GgLOOCj+OBn+OCiw0KK+OBleOBleOCguOBqCzjgojjgZfjgZMNCivjgb7jgaTjgaAs44GE44Gh44KN44GGDQor44G+44Gk44G144GVLOOBkeOBhOOBhOOBoQ0KK+OBvuOBpOOBhCzjgoTjgZnjgbLjgZMNCivjgb7jgaTjgYQs44GX44GS44G/44GkDQor44G+44Gk44GNLOOBvuOBleOBqA0KK+OBi+OBrizjgbLjgafjgZ/jgYsNCivjgb7jgaTjgoLjgags44Gy44KN44G/44GkDQor44G+44Gk44KC44GoLOOChuOBhuOBmA0KK+OBvuOBpOOCguOBqCzjgb7jgooNCivjga/jgZfjgoLjgags44G/44Gh44KE44GZDQor44G+44Gk44KA44KJLOOBn+OBoOOBlw0KK+OBvuOBpOOCgOOCiSzjgb/jgY3jgYoNCivjgb7jgaTjgarjgb8s44Gm44KL44GC44GNDQor44G+44Gk44Gq44G/LOOBjeOBvw0KK+OBoeOBsCzjgZ/jgY/jgZgNCivjgb7jgaTjgZfjgbAs44GT44GG44GYDQor44G+44Gk44GX44GfLOOChOOBmeOBquOCig0KK+OBvuOBpOOBl+OBnyzjgb7jgZXjgagNCivjgb7jgaTjgYbjgoks44GX44GS44GKDQor44G+44Gk44GW44GNLOOBleOChuOCig0KK+OBhOOBvuOBhCzjgajjgZfjgb8NCivjgb7jgobjgoTjgb4s44GL44Gk44GYDQor44KB44KT44GY44KHLOOBqOOBiuOCiw0KK+OBv+OBoeOBjOOBvyzjgZjjgoXjgavjgaENCivjgb/jga/jgoks44GC44GN44Gy44GTDQor44G/44GNLOOBsuOCjeOChuOBjQ0KK+OBv+OCguOCiizjgobjgbLjgaENCivjgb/jgarjgb/jgZDjgaEs44Go44GX44KG44GNDQor44G/44Gq44Ga44GNLOOBteOBmOOBig0KK+OBv+OBreOCgOOCiSzjgZfjgofjgZgNCivjgb/jgZfjgaos44GN44Gr44GhDQor44G/44Gk44GELOOBsuOCjeOChuOBjQ0KK+OBv+OBhuOCiSzjgbLjgo3jgobjgY0NCivjgb/jgYbjgoks44KG44GN44GKDQor44KA44KJ44GL44G/LOOBpuOBpOOChA0KK+OBv+OCjyzjgZPjgYbjgYTjgaENCivjgb/jgoTjgYzjgo8s44Gy44KN44GXDQor44G/44KE44GOLOOBiOOBhOOBhOOBoQ0KK+OBv+OChOOBr+OCiSzjgYTjgaHjgo3jgYYNCivjgb/jgoTjga/jgZcs44Gf44Gg44GXDQor44G/44KE44GL44KPLOOBvuOBleOChuOBjQ0KK+OBv+OChOOBjSzjgYLjgaTjgZcNCivjgb/jgoTjgoLjgags44G+44GV44GoDQor44G/44KE44KC44GoLOOBruOCiuOBig0KK+OBv+OChOOCguOBqCzjga/jgovjgZMNCivjgb/jgoTjgZXjgYss44GC44Gk44GXDQor44G/44KE44Gf44GRLOOBsuOCjeOBlw0KK+OBv+OChOOBnyzjgYvjgarjgoENCivjgb/jgoTjgZ8s44Gq44GK44KG44GNDQor44G/44KE44GfLOOChuOBi+OCig0KK+OBj+OCjeOBoCzjgYvjgZrjgbLjgo0NCivjgb/jgojjgZcs44Gf44GR44Gv44KLDQor44G/44Ga44GT44GXLOOCiOOBsuOBoQ0KK+OBv+OBmuOBk+OBlyzjgZHjgpPjgYTjgaENCivjgb/jgZrjga4s44G+44GV44Gv44KLDQor44G/44Ga44GuLOOBl+OBkuOChuOBjQ0KK+OBv+OBmuOBn+OBqyzjgb7jgZXjgYoNCivjgoLjgoos44G/44Gh44GTDQor44KC44KKLOOBqOOBl+OBig0KK+OCguOCiuOBi+OCjyzjgY3jgofjgZMNCivjgoLjgorjgY0s44G+44GV44Go44GXDQor44KC44KK44GX44GfLOOBvuOBleOBmuOBvw0KK+OCguOCiuOBnyzjgZvjgYTjgZgNCivjgoLjgorjgZ8s44Gy44KN44GXDQor44KC44KK44KE44G+LOOBvuOBleOBsuOCjQ0KK+OCguOCiuOBnuOBrizjgarjgYrjgY0NCivjgoLjgoos44GX44GS44G/DQor44KC44KKLOOBqOOBl+OBsuOCjQ0KK+OCguOCiizjgobjgYbjgZgNCivjgoLjgoos44G+44GV44G/44GhDQor44KC44KN44Ga44G/LOOBkeOBhOOBkw0KK+OBhOOBruOBr+OBqizjgarjgYrjgZMNCivjgZPjgZjjgb4s44G+44GN44GKDQor44KA44GL44GELOOBqOOBl+OBig0KK+OCgOOBi+OBhCzjgZ/jgaTjgoQNCivjgoDjgonjgYQs44Gu44G244Gv44KLDQor44KA44KJ44GL44G/LOOBl+OCk+OBmA0KK+OCgOOCieOBi+OBvyzjgZfjgofjgZgNCivjgoDjgonjgb7jgaQs44Gu44KK44GTDQor44Gr44KPLOOBguOBjeOBkw0KK+OCgOOCieOBnyzjgoTjgZnjgbLjgo0NCivjgoDjgonjgZ8s44KI44GX44G/DQor44GK44GuLOOBn+OBoOOBlw0KK+OCgOOCieOChOOBvizjgYvjgZrjgbLjgo0NCivjgoDjgags44Go44GX44GKDQor44KA44GoLOOBpOOCiOOBlw0KK+OCgOOBqCzjgZXjgajjgosNCivjgoDjgaTjgZfjgYss44GL44Gk44Go44G/DQor44Gq44GM44GELOOChOOBmeOBig0KK+OBquOBjOOBhCzjgbLjgo3jga7jgooNCivjgarjgYzjgoLjgags44Gu44G844KLDQor44GC44KJ44GELOOBi+OBmuOBig0KK+OBquOBjOOBiizjgZfjgpPjgZQNCivjgarjgYzjgZXjgo8s44Gf44Gk44G/DQor44Gq44GM44GV44KPLOOBleOBoeOBig0KK+OBquOBjOOChOOBvizjgaHjgarjgaQNCivjgarjgYTjgajjgYYs44Go44GK44KLDQor44Gq44GE44Go44GGLOOBoeOBr+OCiw0KK+OBquOBi+OBsOOChOOBlyzjgb7jgZXjgYvjgZoNCivjgarjgYvjgaDjgaYs44GL44Gk44Gy44KNDQor44Gq44GL44GM44GNLOOBleOBqOOBlw0KK+OBquOBjOOBiCzjgYTjgaHjgo3jgYYNCivjgarjgYvjgYzjgo8s44Gf44GL44GXDQor44Gq44GL44GM44KPLOOBoeOBr+OCiw0KK+OBquOBi+OBlOOCgSzjgbLjgo3jgoQNCivjgarjgYvjgbLjgoks44Gf44GL44GXDQor44Gq44GL44GELOOBguOBvuOBrQ0KK+OBquOBi+OBmOOBvizjgYjjgYTjgYTjgaENCivjgarjgYvjgZjjgb4s44Gy44KN44GXDQor44Gq44GL44GY44G+LOOBi+OBpOOChuOBjQ0KK+OBquOBi+OBmOOBvizjgZHjgpPjgYTjgaENCivjgarjgYvjgZjjgb4s44Gf44GR44Go44GXDQor44Gq44GL44GY44G+LOOChOOBmeOBquOCig0KK+OBquOBi+OBmOOBvizjgYLjgaTjgZcNCivjgarjgYvjgb7jgZ8s44GL44Ga44GoDQor44Gq44GL44G/44GhLOOBguOBjeOBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgbXjgZXjga7jgbYNCivjgarjgYvjgoDjgoks44GL44Gk44GKDQor44Gq44GL44KA44KJLOOBi+OBmuOBsuOBlQ0KK+OBquOBi+OCgOOCiSzjgZPjgYbjgYTjgaENCivjgarjgYvjgoDjgoks44G+44GV44Gu44KKDQor44Gq44GL44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBquOBi+OCgOOCiSzjgabjgovjgZgNCivjgarjgYvjgoDjgoks44Go44GX44KG44GNDQor44Gq44GL44KA44KJLOOCiOOBl+OBquOCig0KK+OBquOBi+OCgOOCiSzjgobjgZ/jgYsNCivjgarjgYvjgoDjgoks44GI44G/44GTDQor44Gq44GL44Gr44GXLOOBi+OBpOOBqOOCgg0KK+OBiuOBiuOBq+OBlyzjgb/jgYjjgZMNCivjgarjgYvjgavjgZcs44Gq44GK44KEDQor44Gq44GL44Gr44GXLOOBiOOCig0KK+OBquOBi+OBrizjgaTjga3jgYLjgY0NCivjgYrjgYvjgZbjgo8s44GR44GE44GE44GhDQor44Gq44GL44GuLOOBquOBiuOBsuOBpw0KK+OBquOBi+OBrizjga7jgorjgbLjgo0NCivjgarjgYvjga4s44GX44KF44Gr44Gh44KNDQor44Gq44GL44GK44GLLOOBvuOBleOBjQ0KK+OBquOBi+OBiizjgajjgZfjgYLjgY0NCivjgarjgYvjgYos44G+44GT44GoDQor44Gq44GL44GbLOOBpuOCi+OBsuOCjQ0KK+OBquOBi+OBneOBjizjgZfjgpPjgZgNCivjgarjgYvjgZ8s44Gv44GY44KBDQor44Gq44GL44Gk44GLLOOBruOCiuOBguOBjQ0KK+OBquOBi+OBpOOBiyzjgbLjgo3jgobjgY0NCivjgarjgYvjgoTjgb4s44GL44Ga44Gy44GTDQor44Gq44GL44KE44G+LOOBvuOBleOChuOBjQ0KK+OBquOBi+OChOOBvizjgarjgYrjgY0NCivjgarjgYvjgoTjgb4s44Go44GX44GC44GNDQor44Gq44GL44KE44G+LOOBvuOBleOBruOCig0KK+OBquOBi+OBluOCjyzjgajjgZfjgobjgY0NCivjgarjgb/jgY0s44Gu44G244KE44GZDQor44Gq44KJ44GX44G+LOOBjeOCiOOBn+OBiw0KK+OBquOCiSzjgYvjgojjgZMNCivjgY/jganjgYYs44Gu44Ge44G/DQor44Gq44Gk44GuLOOCiOOBl+OBteOBvw0KK+OBquOBpOOChOOBvizjgoLjgYjjgZMNCivjgYjjgags44Gm44Gk44KEDQor44Gr44G444GELOOBteOBv+OBkw0KK+OBiuOBj+OBrizjgYjjgYTjgZgNCivjgb7jgYjjgbvjgoos44GT44GXDQor44Gr44GX44GgLOOBvuOBleOBqOOBvw0KK+OBq+OBl+OBkOOBoSzjgZfjgZLjgZMNCivjgoLjgoos44Gf44GL44GXDQor44Gr44GX44GL44KPLOOBvuOBk+OBqA0KK+OBq+OBl+OBj+OCiSzjgbLjgafjgY0NCivjgavjgZfjgoLjgags44GC44Gk44GXDQor44Gr44GX44GKLOOBn+OBpOOChA0KK+OBq+OBl+OCj+OBjSzjgZPjgbjjgYQNCivjgavjgZcs44GL44Gk44Gy44GTDQor44Gr44KPLOOBv+OBpOOBkA0KK+OBruOBtuOBvuOBlSzjgY/jgavjgYoNCivjga7jgaAs44G+44GV44GC44GNDQor44Gu44GQ44GhLOOBn+OBkeOBsuOBkw0KK+OBruOBkOOBoSzjgbLjgZXjgZcNCivjga7jgbvjgoos44G/44Gh44Gv44KLDQor44Gu44Gf44GrLOOChuOBhuOBkw0KK+OBruOBvizjgbLjgo3jgZcNCivjga7jgb/jgoTjgb4s44Gf44GL44GXDQor44Gu44KC44GoLOOBleOChuOCig0KK+OBn+OCk+OBluOCkyzjgbLjgo3jgb8NCivjgYrjgYvjgo8s44Gy44Go44GXDQor44Gu44Gu44KE44G+LOOBn+OBpOOBig0KK+OBruOCiuOBi+OBrSzjgobjgY3jgZMNCivjga7jgo0s44G+44GV44GXDQor44GuLOOBl+OBkuOCiw0KK+OBiuOBsOOBqizjgb7jgZXjgY0NCivjgYrjgbPjgarjgZ8s44Go44GX44Gy44GTDQor44GK44Gh44GC44GELOOBkeOBhOOBkw0KK+OBl+OBvuOCgOOCiSzjgb7jgZXjgosNCivjgYrjgaDjga0s44G+44GV44GNDQor44GK44GM44KPLOOBv+OBleOBqA0KK+OBiuOBkOOCiSzjgoLjgajjgbLjgZMNCivjgYrjgZDjgoks44Gf44GL44GXDQor44GK44GQ44KJLOOBkeOCkw0KK+OBiuOBkOOCjSzjgbLjgafjgobjgY0NCivjgYrjgbDjgoTjgZcs44G+44GV44Gf44GRDQor44GK44Gw44KE44GXLOOBleOBqOOBlw0KK+OBiuOBsCzjgajjgZfjgo0NCivjgYrjgaEs44Go44GX44GC44GNDQor44GK44GnLOOBv+OBoeOBig0KK+OBiuOBu+OCiizjgYvjgZrjgbLjgZMNCivjgYrjgbss44G+44GV44GNDQor44GK44Gy44GXLOOBvuOBleOCiw0KK+OBiuOBjSzjgZvjgYTjgYTjgaENCivjgYrjgY/jgbws44GX44KT44GE44GhDQor44GK44GP44G8LOOBsuOCjeOBlw0KK+OBiuOBv+OBoSzjgYLjgY3jgbLjgZMNCivjgYrjgoDjgoks44KI44GX44Gu44KKDQor44GK44GK44Gr44GXLOOBsuOCjeOBlw0KK+OBiuOBrizjgojjgZfjgYvjgZoNCivjgYrjgonjgYQs44Gq44GK44G/DQor44GK44GV44GNLOOBsuOBp+OBqOOBlw0KK+OBiuOBleOCjyzjgZvjgYTjgZgNCivjgYrjgZXjgo8s44GX44KT44GZ44GRDQor44GK44GV44KPLOOBhOOCj+OBig0KK+OBiuOBn+OBqyzjgZHjgYTjgZ4NCivjgYrjgZ8s44KE44GZ44KG44GNDQor44GK44Go44KCLOOBiOOCiuOBkw0KK+OBiuOBluOBjSzjgZfjgpPjgZQNCivjgYrjgaTjgYss44Go44GX44Gy44GTDQor44GK44Gk44GLLOOBruOCiuOBig0KK+OBiuOBpOOBjSzjgZPjgZnjgZENCivjgYrjgbLjgoMs44KC44Go44GE44GhDQor44GK44Gy44KDLOOCiOOBl+OChuOBjQ0KK+OBiuOBsuOCgyzjgb7jgZXjgbLjgo0NCivjgYrjgYvjgaAs44G+44GV44GP44GrDQor44GK44GL44GgLOOBn+OBkeOBruOCig0KK+OBiuOBi+OBoCzjgaTjga3jgYLjgY0NCivjgYrjgYvjgaAs44GE44GV44GKDQor44GK44GL44Gv44KJLOOBk+OBhuOBhOOBoeOCjQ0KK+OBiuOBi+OCguOBqCzjgZnjgZnjgoANCivjgY/jgZXjgbAs44GV44Go44GXDQor44GK44GL44KA44KJLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBiuOBi+OCgOOCiSzjgZ/jgaDjgZcNCivjgYrjgYvjga4s44KK44KF44GYDQor44Go44Gz44GfLOOBkeOCk+OBmA0KK+OBu+OBneOBi+OCjyzjgarjgYrjgY0NCivjgYbjgYjjgaAs44GC44GN44GKDQor44GT44Gb44GNLOOBk+OBhuOBmA0KK+OBn+OBluOCjyzjgZ/jgZHjgZcNCivjgoTjgb7jgZbjgY0s44Go44GX44KNDQor44GI44GQ44GhLOOBpuOBpOOChA0KK+OCguOBoeOBoCzjgb7jgZXjgbLjgo0NCivjgYLjgY3jgoLjgags44GP44Gr44Gy44GTDQor44Gr44GXLOOBmeOBkOOCiw0KK+OBhOOBvuOBhOOBlyzjgaTjgZDjgYoNCivjgZ/jgYvjgoTjgZks44KI44GX44Gy44KNDQor44Gv44GfLOOBqOOBl+OBsuOCjQ0KK+OBteOBmOOBleOCjyzjgZfjgpPjgYTjgaENCivjgoDjgags44Gy44KN44GNDQor44KC44Gf44GELOOCiOOBl+OBig0KK+OBn+OBoCzjgbLjgo3jgZcNCivjgZPjgYTjgZrjgb8s44G+44GV44GL44GaDQor44Gk44G844GP44KJLOOBvuOBleOBjQ0KK+OBsuOCieOBsOOChOOBlyzjgbLjgo3jgZcNCivjgaTjgZjjgYvjgo8s44GX44KF44G444GEDQor44G/44Gk44GE44GXLOOBk+OBhuOBmA0KK+OChOOBvuOBl+OBnyzjgajjgojjgYvjgZoNCivjgb7jgovjgYrjgYss44KG44G/DQor44G144GL44GKLOOBl+OCheOCk+OBmA0KK+OBpOOCgOOCiSzjgojjgZfjgYvjgZoNCivjgb7jgobjgb8s44Gy44KN44KG44GNDQor44GC44KJ44GL44KPLOOBmeOBmeOCgA0KK+OBiuOBteOBoSzjgY3jgYjjgYQNCivjgZXjgZXjgoLjgoos44GC44Gk44GNDQor44GV44Go44GGLOOBl+OBkuOBqOOBlw0KK+OBn+OBi+OBjizjga7jgbbjgojjgZcNCivjgZ/jgarjgYss44G+44GV44KG44GNDQor44Gk44G844GULOOBguOBjeOCiQ0KK+OBqOOCiuOBleOCjyzjgbLjgZXjgZcNCivjgarjgYvjgZDjgY0s44GX44KT44GE44GhDQor44Gv44Gb44GM44KPLOOBn+OBi+OChuOBjQ0KK+OBr+OChOOBlyzjgYvjgZrjgojjgZcNCivjgbLjgonjgoTjgb4s44GT44GeDQor44G144GP44GX44G+LOOBsuOCjeOBmA0KK+OBvuOBpOOBl+OBvizjgbLjgo3jgYvjgZoNCivjgojjgZfjgYQs44Gb44GE44GE44GhDQor44GE44GX44GELOOBkeOCk+OBmA0KK+OBhOOBvuOBhCzjga7jgbbjgZ/jgYsNCivjgarjgYvjgaTjgZgs44Go44GK44KLDQor44G744GE44GgLOOBi+OBquOBkw0KK+OBleOCj+OBr+OBnyzjgajjgZfjgYgNCivjgZ/jga/jgoks44G/44Gp44KKDQor44Gf44GL44Gv44GXLOOBmOOCheOCkw0KK+OBmeOBmuOBjSzjgobjgZ/jgYsNCivjgojjgZPjgoTjgb4s44GC44GN44KJDQor44GE44GX44GL44KPLOOBvuOBk+OBqA0KK+OBguOBleOBrizjgb7jgZXjgb/jgaQNCivjgYvjga3jgZMs44G144G/44Gy44GTDQor44GP44KN44GbLOOBsuOCjeOChuOBjQ0KK+OBleOBi+OBjeOBsOOCiSzjgZHjgYTjgZQNCivjgYvjgZXjgb4s44Go44KC44KG44GNDQor44GZ44GO44KE44G+LOOBk+OBhuOBmA0KK+OBmeOBoCzjgZfjgZLjgosNCivjgZ/jgarjgYss44Go44GX44GNDQor44Gk44G844GELOOBi+OBmuOBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgbLjgafjgY0NCivjgbXjgY/jgaEs44Gu44KK44GTDQor44GC44KJ44GELOOBv+OChuOBjQ0KK+OBn+OBquOBiyzjgobjgY3jgYgNCivjgoTjgZfjgb4s44Gk44Gt44GKDQor44GL44KP44G+44GfLOOBv+OBpOOCiw0KK+OBmeOCk+OBoCzjgZfjgofjgYbjgZgNCivjgb/jgZrjgZ/jgass44G/44Gt44G+44GVDQor44KE44G+44GT44GXLOOBsuOBp+OBguOBjQ0KK+OBguOBvuOBjOOChCzjgZHjgpPjgZgNCivjgYLjgonjgY0s44GR44KT44GYDQor44GE44G+44GELOOCiOOBl+OBn+OBiw0KK+OBhOOBvuOBluOBjSzjgZfjgoXjgYbjgZgNCivjgY3jgoDjgoks44KI44GG44GZ44GRDQor44GZ44GO44KE44G+LOOBguOCieOBnw0KK+OBmeOBmuOBjSzjgZHjgYTjgZMNCivjgaTjgoss44KI44GX44G+44GVDQor44Gv44GT44GW44GNLOOBpuOBpOOChA0KK+OBn+OBjeOBluOCjyzjgYLjgoQNCivjgYTjgajjgYYs44GI44Gk44GTDQor44G+44GZ44GgLOOBoeOBiOOBkw0KK+OBpOOBsOOBjSzjgZXjgajjgb8NCivjgb/jgZnjgb8s44Go44KC44GTDQor44KE44GE44GfLOOBkeOCk+OBmA0KK+OBi+OCj+OBpCzjgarjgYrjgobjgY0NCivjgaTjgYvjgaAs44Gf44GR44Gu44KKDQor44Gq44GL44KC44GoLOOBguOBpOOChA0KK+OBteOBquOBs+OBjSzjgb/jga7jgosNCivjgojjgZfjgZbjgo8s44Gu44KK44KG44GNDQor44Go44G+LOOChuOCgeOBrg0KK+OBm+OBjSzjgbLjgZXjgogNCivjgoDjgonjgZ8s44Go44GX44Gv44KLDQor44GL44Gf44KE44G+LOOBn+OBi+OBsuOBlQ0KK+OBjeOBqSzjgYvjgaTjgbLjgacNCivjgZPjgbDjgoTjgZcs44GE44GV44GKDQor44GX44Gu44G/44KELOOBoOOBhOOBmeOBkQ0KK+OBn+OBquOBiyzjgb/jga7jgosNCivjga/jgoks44GC44GN44KJDQor44KC44KK44Gf44GrLOOBpOOCiOOBlw0KK+OBhOOBoeOBruOBmyzjgYvjgZrjga7jgbYNCivjgbXjgZjjgoLjgags44KI44GX44Gu44KKDQor44GG44GI44GuLOOBoeOBguOBjQ0KK+OBl+OBl+OBqSzjgaHjgYvjgZMNCivjgb/jgYbjgoks44G+44GNDQor44GG44Gh44GgLOOBsuOBqOOBlw0KK+OBqeOBhCzjgZ/jgZHjgbLjgZMNCivjgZ3jgZnjgb8s44G144G/44GTDQor44KI44GX44GgLOOBleOBquOBiA0KK+OBn+OBi+OBr+OBlyzjgY3jgofjgZMNCivjgoTjgb7jgZDjgaEs44KI44GG44GTDQor44GV44GVLOOBvuOCig0KK+OBr+OBm+OBjOOCjyzjgarjgYrjgY0NCivjgYLjgaTjgZ8s44G+44GV44Gy44KNDQor44GE44Gh44GL44KPLOOBl+OCheOBmA0KK+OBhuOBrizjgZPjgYbjgZgNCivjgYrjgYzjgo8s44Go44KC44GL44GaDQor44GK44GgLOOBi+OBmuOChuOBjQ0KK+OBn+OBi+OBleOBjSzjgojjgZfjga7jgooNCivjgZ/jgYvjga/jgZcs44GX44KH44G444GEDQor44Gf44GgLOOBi+OBmuOChuOBjQ0KK+OBn+OBquOBiyzjgYvjgaTjgobjgY0NCivjgajjgY/jgarjgYws44GT44GG44GYDQor44Go44G/44GfLOOBqOOBl+OBruOCig0KK+OBquOBhOOBqOOBhizjgZnjgZnjgoANCivjga/jgonjgaAs44KL44G/44GTDQor44Gy44KJ44GL44KPLOOBk+OBhuOBhOOBoQ0KK+OBteOBquOCguOBqCzjgajjgZfjgobjgY0NCivjganjgbDjgZcs44G+44GV44KG44GNDQor44G/44GG44KJLOOBqOOBl+OBig0KK+OCiOOBl+OBoCzjgarjgYjjgZMNCivjgYrjgZ/jgZEs44KG44GN44GTDQor44GP44KJ44GfLOOBi+OBiuOCig0KK+OBj+OCiuOBnyzjgojjgZfjgYoNCivjgaDjgpPjgZjjgocs44G+44GV44GC44GNDQor44KC44KK44GX44G+LOOBleOBqOOBvw0KK+OCiOOBl+OBoCzjgobjgY3jgZMNCivjgo/jgYvjgbDjgoTjgZcs44Gy44KN44GL44GaDQor44GC44GS44G+44GkLOOBvuOBjeOBkw0KK+OBhOOBl+OBkOOCjSzjgaTjgojjgZcNCivjgYvjgajjgYYs44Gf44Gg44GXDQor44GV44GE44Go44GGLOOBsuOCjeOBlw0KK+OBquOBhOOBqOOBhizjgbLjgo3jgZcNCivjgb/jgoTjgb7jgYgs44GY44KF44KT44GTDQor44GL44Gp44KP44GNLOOCiuOBiA0KK+OBteOBj+OCguOBqCzjgYjjgb/jgZMNCivjgavjgZfjga/jgoks44Go44KC44GTDQor44GK44GL44KE44G+LOOBsuOCjeOBn+OBiw0KK+OBiuOBi+OChOOBmSzjgobjgY0NCivjgY/jgo3jgYvjgo8s44Gh44GTDQor44GK44GN44GfLOOBsuOCjeOBguOBjQ0KK+OBiuOBj+OBv+OChCzjgZjjgoXjgpPjgZgNCivjgYrjgY/jgoDjgoks44KE44GZ44Gy44KNDQor44GK44Gu44GgLOOBleOBqOOBlw0KK+OBiuOBruOBp+OCiSzjgb7jgZPjgagNCivjgYrjga4s44GX44KT44GYDQor44GK44GuLOOCiOOBmA0KK+OBiuOBrizjgobjgb/jgZMNCivjgb7jgaTjgYQs44Gy44KN44G/44GhDQor44GK44Gd44GI44GM44KPLOOBk+OBmeOBkQ0KK+OBiuOBluOBjSzjgYvjgZrjgbLjgo0NCivjgYrjgZzjgY0s44GX44KT44GE44GhDQor44Gf44GL44GuLOOBv+OBoeOCiA0KK+OCiuOCh+OBi+OBhCzjgajjgZfjgoQNCivjgZXjgZLjgZXjgYss44GC44Gk44GXDQor44GV44GO44KELOOBv+OBjeOBig0KK+OBleOBhOOBnyzjgYLjgY3jgokNCivjgZXjgYTjgajjgYYs44GL44Ga44Gq44KKDQor44GV44GE44Go44GGLOOBv+OBiOOBkw0KK+OBleOBhOOBqOOBhizjgajjgYrjgosNCivjgZXjgYTjgajjgYYs44KI44GX44Gy44GVDQor44GV44GE44Go44GGLOOBvuOBleOBi+OBmg0KK+OBleOBi+OBkOOBoSzjgaDjgYQNCivjgZXjgYvjgYQs44Gq44KL44G/DQor44GX44G+44GgLOOBsuOBqOOBlw0KK+OBleOBi+OBjeOBsOOCiSzjga/jgovjgobjgY0NCivjgZXjgYvjgoLjgags44Gq44GK44G144G/DQor44GV44GL44KC44GoLOOCiOOBl+OBteOBvw0KK+OBleOBi+OCguOBqCzjgabjgovjgYoNCivjgZXjgYvjgoos44KE44GZ44Gq44KKDQor44GV44GL44GfLOOBruOBtuOChuOBjQ0KK+OBleOBj+OBvizjgbLjgo3jgobjgY0NCivjgZXjgY/jgonjgYQs44GE44GV44GKDQor44GV44GP44KJ44GELOOCiOOBl+OBjQ0KK+OBleOBj+OCieOBhCzjgorjgoXjgbLjgaENCivjgZXjgpPjga7jgb7jgoss44GN44KH44Gy44GhDQor44GV44GuLOOBvuOBleOBsuOCjQ0KK+OBleOBleOBuSzjgYLjgY3jgb/jgaQNCivjgZXjgZXjgY0s44GU44KNDQor44GV44GV44GNLOOBsuOCjeOChuOBjQ0KK+OBleOBleOBjSzjgaTjga3jgYoNCivjgZXjgZXjgY0s44KK44GLDQor44KI44GX44GgLOOBsuOBp+OBguOBjQ0KK+OBleOBqOOBhizjgbLjgo3jgb8NCivjgZXjgajjgYYs44Gy44KN44GXDQor44GV44Go44GGLOOBhOOBpOOCjQ0KK+OBleOBqOOBhizjgZHjgpPjgZgNCivjgZXjgajjgYYs44G+44GV44GNDQor44GV44Go44GGLOOCgOOBreOBsuOCjQ0KK+OBleOBqOOBhizjga7jgbbjgbLjgo0NCivjgZXjgajjgYYs44GV44Go44KLDQor44GV44Go44GGLOOBl+OCk+OBmA0KK+OBleOBqOOBhizjgZ/jgYvjga7jgbYNCivjgZXjgajjgYYs44Gf44GL44GXDQor44GV44Go44GGLOOCiOOBl+OBsuOCjQ0KK+OBleOBqOOBhizjgobjgY3jgYoNCivjgZXjgajjgYYs44KG44Gf44GLDQor44GV44Go44GGLOOBn+OBpOOCjQ0KK+OBleOCj+OBhOOBpyzjgZfjgpPjgZQNCivjgZXjgo/jgYQs44Go44KC44Gy44KNDQor44GV44KE44Gq44GOLOOBn+OBkeOBlw0KK+OBm+OBjOOCjyzjgarjgYrjgagNCivjgZvjgYTjgb/jgoQs44Gy44KN44GXDQor44Gb44GE44KE44G+LOOCiOOBl+OBsuOBkw0KK+OBm+OBjeOBi+OCjyzjgYvjgZrjga7jgooNCivjgZvjgY0s44Gf44GL44Gu44KKDQor44Gb44GNLOOBr+OChOOBqA0KK+OBm+OCk+OBoCzjgoTjgZnjgbLjgZMNCivjgZvjgpPjgZTjgY8s44KI44GX44KG44GNDQor44Gb44GuLOOCiOOBl+OBqA0KK+OBm+OBl+OCgizjgYLjgY3jgYoNCivjgZvjgZ/jgYss44G+44GV44GTDQor44GZ44GMLOOBqOOCguOBkw0KK+OBv+OBquOBvyzjgobjgbLjgaENCivjgZfjgbDjgZ8s44Gh44GC44GNDQor44GX44G244KELOOBi+OBmuOChA0KK+OBl+OBtuOChCzjgb7jgZXjgb8NCivjgZfjgbbjgoQs44GV44Go44GXDQor44GX44GE44GuLOOChuOBsuOBoQ0KK+OBl+OBi+OBnyzjgZPjgYbjgYTjgaHjgo0NCivjgZfjgY3jgbYs44G+44KKDQor44GX44G+44GgLOOCiOOBl+OBsuOCjQ0KK+OBl+OBvuOBoCzjgbLjgo3jgZcNCivjgZfjgb7jgYzjgb8s44GX44GS44GNDQor44GX44G+44KC44KKLOOBguOBjeOCiQ0KK+OBl+OBvuOCgOOCiSzjgZPjgYbjgZgNCivjgZfjgb7jgZbjgY0s44Gf44GR44GXDQor44GX44G+44GW44GNLOOBsuOCjeOBn+OBiw0KK+OBl+OBv+OBmizjgY3jgofjgZMNCivjgZfjgb/jgZos44Go44GX44GC44GNDQor44GX44G/44GaLOOBk+OBhuOBmA0KK+OBl+OCguOBoCzjgZHjgYQNCivjgZfjgoLjgbLjgoks44KK44KH44Gy44GhDQor44GX44Gu44Gv44KJLOOChOOBmeOBlw0KK+OBl+OBruOBr+OCiSzjgaHjgYLjgY0NCivjgZfjga7jgZbjgY0s44Gy44KN44G/44GhDQor44GX44Gu44GW44GNLOOBpOOCiOOBlw0KK+OBl+OCk+OBvSzjgb7jgZXjga7jgooNCivjgZfjgpPjgZ/jgass44Gy44KN44GTDQor44GK44GN44GpLOOBn+OBi+OBsuOCjQ0KK+OBl+OBiuOBrOOBvizjgbLjgo3jgZcNCivjgZfjgYrjgZ8s44G+44GV44Gy44KNDQor44GX44GK44KELOOBsuOCjeOBlw0KK+OBl+OBiuOBluOCjyzjgajjgZfjgYLjgY0NCivjgZfjgonjgYQs44G+44GV44Gy44GTDQor44GX44KJ44GV44GNLOOChuOBjeOBruOCig0KK+OBl+OCieOBleOBjSzjgZMNCivjgZfjgonjgajjgoos44Gf44GL44GC44GNDQor44GX44KJ44Go44KKLOOBiOOBhOOBng0KK+OBl+OCjeOBjSzjgorjgYgNCivjgZfjgo3jgZfjgZ8s44Gy44KN44GXDQor44GL44GX44G+LOOBkeOBhOOBv+OCkw0KK+OBl+OChSzjgZPjgYbjgZ/jgo3jgYYNCivjgYTjgb7jgYQs44GC44GN44Gy44KNDQor44Gd44GI44GgLOOBvuOBquOBtg0KK+OBneOBjCzjga7jgbbjgZMNCivjgZ3jgo8s44Gy44KN44GNDQor44GZ44GgLOOBi+OBmeOBvw0KK+OBmeOBoCzjgobjgYbjgZgNCivjgZnjgaAs44Gd44Go44Gy44KNDQor44GZ44GI44GgLOOBjeOCiOOBvw0KK+OBmeOBiOOCguOCiizjgY/jgavjgYLjgY0NCivjgZnjgYjjgYrjgYss44G+44GV44Gy44KNDQor44GZ44GM44KP44KJLOOBhOOBleOBig0KK+OBmeOBkuOBrizjgZfjgZLjgY0NCivjgZnjgY7jgoLjgags44Gy44KN44GXDQor44GZ44GO44GfLOOBk+OBsuOChw0KK+OBmeOBjuOChOOBvizjgb7jgZXjgajjgZcNCivjgZnjgY7jgoTjgb4s44Gf44GL44Gy44KNDQor44GZ44GO44KE44G+LOOBsuOBqOOBlw0KK+OBmeOBv+OBqOOCgizjgZfjgZLjgY0NCivjgZnjgb8s44KI44GX44GKDQor44GZ44Gq44GMLOOBlOOBhOOBoQ0KK+OBmeOBluOBjSzjgbLjgafjga/jgosNCivjgZnjgZrjgY0s44Gy44KN44GTDQor44GZ44Ga44GNLOOBhOOBmuOCiw0KK+OBmeOBmuOBjSzjgYvjgZrjgarjgooNCivjgZnjgZrjgY0s44GT44GG44GE44GhDQor44GZ44Ga44GNLOOBvuOBleOCiw0KK+OBmeOBmuOBjSzjgarjgYrjgY0NCivjgZnjgZrjgY0s44Gu44KK44KI44GXDQor44GZ44Ga44GNLOOBleOBjeOBkw0KK+OBmeOBmuOBjSzjgZfjgofjgbLjgaENCivjgZnjgZrjgY0s44GX44KT44GYDQor44GK44GK44Gr44GXLOOChOOBmeOBsuOCjQ0KK+OBmeOBmuOBjSzjgoTjgZnjgYoNCivjgZnjgZrjgY0s44KG44Gy44Gh44KNDQor44GZ44Ga44GNLOOBv+OBpOOBig0KK+OBn+OBvCzjgZHjgYTjgYTjgaHjgo3jgYYNCivjgZ/jgbbjgaEs44GI44GE44GYDQor44Gf44G244GVLOOBruOBvOOCiw0KK+OBn+OBoeOBi+OCjyzjgobjgY0NCivjgbLjgonjgY0s44Gy44Gn44KG44GNDQor44Gf44GM44GELOOBpuOBpOOChA0KK+OBn+OBjOOCjyzjgabjgovjgb8NCivjgZ/jgYws44GC44GN44KJDQor44Gf44GQ44GhLOOChOOBmeOBlw0KK+OBn+OBkOOBoSzjgobjgY3jgYoNCivjgZ/jgZDjgaEs44GX44Gu44G2DQor44Gf44GL44Gw44Gf44GRLOOBl+OCk+OBhOOBoQ0KK+OBn+OBi+OBjizjgajjgZfjgoQNCivjgZ/jgYvjga/jgoks44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOBi+OBmuOBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgZHjgYTjgZgNCivjgZ/jgYvjga/jgZcs44G+44GV44Gv44KLDQor44Gf44GL44Gv44GXLOOBruOBtuOBig0KK+OBn+OBi+OBr+OBlyzjga7jgorjgobjgY0NCivjgZ/jgYvjga/jgZcs44KK44KH44GZ44GRDQor44Gf44GL44Gv44GXLOOBl+OCkw0KK+OBn+OBi+OBr+OBlyzjgZ/jgaTjgoQNCivjgZ/jgYvjga/jgZcs44Go44GX44G144G/DQor44Gf44GL44Gv44GXLOOChOOBmeOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgobjgbLjgaENCivjgZ/jgYvjga/jgZcs44KE44GZ44GXDQor44Gf44GL44GE44GXLOOBv+OBuw0KK+OBk+OBsOOChOOBlyzjga7jgbbjgZ/jgYsNCivjgZ/jgYvjgb8s44G/44GV44GKDQor44Gf44GL44KA44KJLOOBl+OCkw0KK+OBn+OBi+OBquOBlyzjgb/jgarjgZMNCivjga/jgZvjgYzjgo8s44KI44GE44GhDQor44Gf44GL44GuLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBi+OBiuOBiyzjgajjgZfjgoQNCivjgZ/jgYvjgYrjgYss44Go44GX44KG44GNDQor44Gf44GL44Gf44GrLOOBsuOCjeOBlw0KK+OBn+OBi+OBpOOBmCzjgZvjgYTjgYTjgaENCivjgZ/jgYvjgaTjgYss44KI44GX44Gy44GVDQor44Gf44GL44GkLOOBr+OCi+OBleOBoA0KK+OBn+OBi+OChOOBvizjgb7jgZXjgZMNCivjgZ/jgYvjgoTjgb4s44G+44GV44KG44GNDQor44Gf44GL44KE44G+LOOBsuOBp+OBig0KK+OBn+OBkeOBoCzjgYvjgZrjgZfjgZINCivjgZ/jgZHjgaAs44Gu44KK44Gy44GTDQor44Gf44GR44GgLOOBqOOCiOOBvw0KK+OBn+OBkeOBoCzjgb/jga7jgosNCivjgZ/jgZHjgoLjgags44Go44KC44GC44GNDQor44Gf44GR44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OBn+OBkeOBhuOBoSzjgb/jga7jgosNCivjgZ/jgZHjgYbjgaEs44GX44KNDQor44Gf44GR44GG44GhLOOCiOOBl+OBruOCig0KK+OBn+OBkeOBhuOBoSzjgbLjgo3jgobjgY0NCivjgZ/jgY3jgoLjgags44GN44KH44GTDQor44Gf44G+44GhLOOBn+OBi+OBjQ0KK+OBn+OCgOOCiSzjga7jgbbjgobjgY0NCivjgZ/jgarjgbks44GC44GN44KJDQor44Gf44Gq44GLLOOBi+OBpOOBmA0KK+OBn+OBquOBiyzjgY3jgojjgZcNCivjgZ/jgarjgYss44G+44GV44G/DQor44Gf44Gq44GLLOOBl+OCk+OBhOOBoQ0KK+OBn+OBquOBiyzjgajjgYrjgosNCivjgZ/jgarjgYss44KE44GZ44GXDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoQ0KK+OBn+OCk+OBoCzjgoTjgZnjga7jgooNCivjgZ/jgavjgaAs44Gf44GL44GL44GaDQor44Gf44Gr44GM44KPLOOBquOBiuOBsuOBqA0KK+OBn+OBq+OCgOOCiSzjga7jgZ7jgb8NCivjgZ/jgass44GL44Gk44GXDQor44Gf44GX44KNLOOBn+OBi+OBkw0KK+OBsuOCieOBleOBiyzjgbLjgo3jgYvjgZoNCivjgZ/jgo/jgaAs44KG44Gy44GhDQor44Gf44KP44KJLOOBqOOBiuOCiw0KK+OBpuOCieOBoCzjgZ/jgYvjgbLjgo0NCivjgabjgonjgZXjgY0s44Gy44KN44GXDQor44Gm44KJ44GX44G+LOOBqOOBl+OBsuOCjQ0KK+OBk+OBsOOChOOBlyzjgaTjgYvjgZUNCivjgabjgonjgYbjgaEs44GR44GE44GTDQor44KP44Gf44Gq44G5LOOBquOBjuOBlQ0KK+OBqOOBjeOBqOOCgizjgZ/jgYvjgobjgY0NCivjgajjgY/jgaAs44G+44GNDQor44GV44GP44KJ44GOLOOBsuOCjeOBteOBvw0KK+OBqOOBv+OCguOBqCzjgY/jgavjgbLjgZMNCivjgajjgb/jgZ8s44GL44GK44KKDQor44Go44KC44G/LOOBv+OBjeOBkw0KK+OBqOOCk+OBkCzjgY3jgb/jgbsNCivjgajjgorjgYbjgb8s44KI44GX44Gf44GLDQor44Go44KI44GgLOOCiOOBl+OBquOCig0KK+OBqOOCiOOBleOBqCzjgbLjgo3jgbbjgb8NCivjgajjgojjgZfjgb4s44KG44GN44GKDQor44Gk44Gh44GgLOOBruOBtuOChuOBjQ0KK+OBpOOBoeOCguOBqCzjgYjjgYTjgYjjgaQNCivjgaTjgaHjgoQs44GX44KT44GYDQor44Gk44GgLOOBqOOCiOOBsuOBlQ0KK+OBpOOBoCzjgbLjgo3jgobjgY0NCivjgaTjgZjjgoLjgags44Gy44Gn44GTDQor44Gk44GYLOOBn+OBhOOBng0KK+OBpOOBmCzjgoTjgZnjgb/jgaQNCivjgaTjgYvjgZTjgZcs44GX44KT44GE44GhDQor44Gk44GL44KC44GoLOOBvuOBleOBruOCig0KK+OBpOOBjeOBoOOBpizjgZ/jgYvjgobjgY0NCivjgoLjgorjgZ8s44Gu44KK44Gy44GVDQor44Gk44KL44GfLOOBvuOBleOBsuOBkw0KK+OBpOOBl+OBvizjgbLjgafjgYoNCivjgaTjgZcs44Gy44KN44G/44GkDQor44Gk44Gk44G/LOOBvuOBleOBlw0KK+OBpOOChOOBvizjgbLjgo3jgZnjgZENCivjgYbjgaHjgaAs44GL44Gk44Gy44GVDQor44GG44Gh44GgLOOBsuOCjeOBlw0KK+OBhuOBoeOChOOBvizjgabjgaTjgoQNCivjgYbjgaAs44GY44KF44KTDQor44GG44GI44GgLOOBvuOBk+OBqA0KK+OBhuOBiOOBoCzjgoHjgZDjgb8NCivjgaTjgYvjgoLjgags44Gf44Gk44KNDQor44GG44GI44GgLOOChuOBiw0KK+OBjeOBjeOChyzjgobjgY3jgYoNCivjgYbjgYjjgaAs44Gu44KK44GKDQor44GG44GI44GQ44KKLOOBsuOCjeOBlw0KK+OBhuOBiOOBr+OCiSzjgajjgZfjgYvjgZoNCivjgYbjgYjjgb7jgaQs44GR44GE44GYDQor44GV44Go44GGLOOBsuOCjeOBlw0KK+OBhuOBiOOBrizjgZPjgZ4NCivjgYbjgYjjga4s44GX44Gu44G2DQor44GG44GI44GuLOOBqOOCguOBguOBjQ0KK+OBhuOBiOOBrizjgajjgZfjgbLjgZMNCivjgYbjgYjjga4s44GZ44G/44GoDQor44GG44GI44KE44G+LOOChOOBmeOBjQ0KK+OBhuOCgeOBoCzjgobjgY3jgYoNCivjgYbjgoHjgYvjgo8s44KI44GG44GTDQor44Gq44GM44GfLOOBn+OBkeOBlw0KK+OBhuOCieOBlCzjgobjgYvjgooNCivjgYbjgovjgZfjgZbjgYss44GV44GK44KKDQor44Gf44GL44Gv44GXLOOBsuOCjeOBlw0KK+OBhuOBpOOBruOBv+OChCzjgaHjgYjjgb8NCivjgo/jgaAs44Gy44Gn44GKDQor44KP44GgLOOCiOOBl+OBn+OBiw0KK+OCj+OBoCzjgYTjgY/jgYgNCivjgo/jgYvjgbDjgoTjgZcs44Go44GK44KLDQor44KP44GL44Gw44KE44GXLOOBsuOCjeOChuOBjQ0KK+OCj+OBi+OBvuOBpCzjgYvjgaTjgoQNCivjgo/jgYvjgb7jgaQs44GL44Ga44Gy44GTDQor44KP44GN44KC44GoLOOBsuOBp+OBn+OBiw0KK+OCj+OBj+OBhCzjgojjgZfjgZMNCivjgYTjgajjgYQs44Gy44KN44KG44GNDQor44KP44Gf44G5LOOBl+OBkuOBjQ0KK+OCj+OBn+OBuSzjgbLjgafjgY0NCivjgo/jgZ/jgarjgbks44Gy44KN44Gu44KKDQor44KP44Gf44Gq44G5LOOBi+OBquOBhg0KK+OCj+OBn+OBquOBuSzjgYvjgogNCivjgo/jgZ/jgarjgbks44Gu44KK44GTDQor44KP44Gf44Gq44G5LOOBqOOCiOOBsuOCjQ0KK+OCj+OBn+OBquOBuSzjgobjgY3jgYoNCivjgo/jgZ/jgarjgbks44GX44KH44Gy44GhDQor44KP44Gf44Gs44GNLOOBl+OCk+OBuuOBhA0KK+OChOOBtuOBl+OBnyzjgYvjgZrjgbLjgo0NCivjgoTjgbbjgZ8s44G/44GN44GIDQor44KE44G244GG44GhLOOBl+OBmuOBig0KK+OChOOBmOOBvizjgobjgb/jgZMNCivjgoTjgY/jgZfjgZgs44GL44Ga44Gy44GTDQor44KE44G+44GgLOOBi+OBmuOBjQ0KK+OChOOBvuOBoCzjgZPjgYbjgZgNCivjgoTjgb7jgaAs44Gq44KK44GoDQor44KE44G+44GgLOOBl+OCheOBmA0KK+OChOOBvuOBoCzjgojjgZfjgbLjgZUNCivjgoTjgb7jgaAs44GL44Gk44KEDQor44KE44G+44GM44G/LOOBquOBiuOBn+OBiw0KK+OChOOBvuOBkOOBoSzjgZfjgoXjgavjgaENCivjgoTjgb7jgZDjgaEs44Gy44KN44GXDQor44KE44G+44GL44KPLOOBn+OBoOOBlw0KK+OChOOBvuOBk+OBlyzjgYjjgYTjgYTjgaENCivjgoTjgb7jgoLjgags44Gy44Gn44Go44GXDQor44KE44G+44KC44GoLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOCguOBqCzjgbLjgo3jgobjgY0NCivjgoTjgb7jgoLjgags44G+44GV44KLDQor44KE44G+44KC44GoLOOBv+OBqeOCig0KK+OChOOBvuOCguOBqCzjgb/jgaTjgojjgZcNCivjgoTjgb7jgoLjgags44GX44KH44G444GEDQor44KE44G+44KC44GoLOOCiOOBhuOBkw0KK+OBi+OCj+OBkOOBoSzjgbXjgb/jgbLjgo0NCivjgoTjgb7jgoDjgo0s44KG44GN44GTDQor44GE44KP44GfLOOBsuOCjeOBiA0KK+OChOOBvuOBiuOBiyzjgbLjgZUNCivjgoTjgb7jgZXjgY0s44GC44GN44Gu44G2DQor44KE44G+44GX44GfLOOBguOBjeOBig0KK+OChOOBvuOBl+OBnyzjgYjjgYTjgZnjgZENCivjgoTjgb7jgZfjgZ8s44Gy44KN44G144G/DQor44KE44G+44GX44GfLOOBmOOCjQ0KK+OChOOBvuOBl+OBnyzjgZPjgYbjgZgNCivjgoTjgb7jgZfjgZ8s44GX44KTDQor44KE44G+44GX44GfLOOBn+OBi+OBlw0KK+OChOOBvuOBl+OBnyzjgYLjgY3jgbLjgo0NCivjgoTjgb7jgZbjgY0s44GR44GEDQor44KE44G+44GW44GNLOOBvuOBleOBv+OBoQ0KK+OChOOBvuOBluOBjSzjgbLjgo3jgobjgY0NCivjgoTjgarjgYzjgo8s44GI44GE44GYDQor44Gf44GL44GK44GLLOOBsuOCjeOBteOBvw0KK+OChOOBquOBmyzjgb7jgZXjga7jgooNCivjgoTjga4s44G+44GV44Go44GXDQor44KE44GKLOOBguOBjeOCiQ0KK+OChOOBmeOBoCzjgbLjgo3jgb/jgaENCivjgoTjgZnjgYvjgo8s44Gf44GR44GXDQor44KI44GM44GELOOBi+OBmuOBsuOCjQ0KK+OCiOOBk+OBjOOCjyzjgbLjgafjgY/jgasNCivjgojjgZPjgZXjgo8s44Gy44KN44GXDQor44KI44GT44GfLOOBpOOBqOOCgA0KK+OCiOOBk+OBnyzjgajjgZfjgYLjgY0NCivjgojjgZPjgYbjgaEs44GC44GN44GTDQor44Gq44GL44KE44G+LOOBsuOCjeOChuOBjQ0KK+OCiOOBk+OChOOBvizjgYvjgZrjgbLjgacNCivjgojjgZPjgoTjgb4s44GL44Gk44KG44GNDQor44KI44Gt44Gv44KJLOOBguOBjeOCiQ0KK+OCiOOBreOCgOOCiSzjgbLjgo3jgobjgY0NCivjgojjgZfjgaAs44GL44GK44KLDQor44G/44KE44KA44KJLOOBk+OBhuOBmA0KK+OCiOOBl+OBoCzjgb7jgZXjgbLjgo0NCivjgojjgZfjgaAs44Gy44GL44KLDQor44Gq44GLLOOCiuOCh+OBsuOBoQ0KK+OCiOOBl+OCgOOCiSzjgajjgoLjgobjgY0NCivjgojjgZfjgoDjgoks44GI44KK44GTDQor44Gs44G+44GKLOOBqOOBl+OBteOBvw0KK+OCiOOBl+OBluOBjSzjgbLjgajjgb8NCivjgarjgYvjgoDjgoks44GT44GG44GE44GhDQor44KG44GC44GVLOOBm+OBhOOBmA0KK+OChuOBkizjgb7jgZXjgobjgY0NCivjgobjgYvjgo8s44G/44Gq44GTDQor44G+44Gk44GgLOOChOOBmeOBlw0KK+OBguOBuSzjgaTjgajjgoANCivjga/jgZvjgYzjgo8s44GC44Gk44GXDQor44Gv44GX44KC44GoLOOBr+OCi+OBsuOBkw0KK+OBsuOCieOBpOOBiyzjgb7jgZXjgYoNCivjgbvjgZfjgYvjgo8s44Go44GX44KG44GNDQor44G744Gd44KELOOBn+OBoOOBlw0KK+OBhOOBl+OBr+OCiSzjgb7jgZXjgajjgZcNCivjgYTjgo/jgY0s44Gk44Go44KADQor44GL44Gt44GgLOOBjeOBv+OBguOBjQ0KK+OBjeOCgOOCiSzjgb7jgZXjgYvjgaQNCivjgZPjgpPjga4s44KI44GX44Gy44KNDQor44G+44Gk44GgLOOCiOOBsuOBoQ0KK+OBv+OChOOBl+OBnyzjgbLjgo3jgb8NCivjgZXjgYvjgoLjgags44G/44Gt44GKDQor44Gu44KA44KJLOOBiOOBhOOBmA0KK+OBiuOBsOOChOOBlyzjgZHjgpPjgZgNCivjgZXjgYTjgajjgYYs44KK44KH44GfDQor44GV44GV44GM44KPLOOBn+OBi+OBsuOCjQ0KK+OBleOBqOOBhizjgojjgZfjgZ/jgYsNCivjgZfjgYws44KI44GX44Gk44GQDQor44GX44Gu44Gv44KJLOOChOOBmeOBsuOCjQ0KK+OBl+OChyzjgYvjgaTjgb7jgZUNCivjgZ/jgZHjgYzjgo8s44Gy44Go44GXDQor44Gf44Gk44G/LOOBn+OCguOBpA0KK+OBqOOBv+OBiCzjgb/jga7jgosNCivjgo/jgZ/jgarjgbks44GX44KH44GYDQor44KE44G+44GgLOOBn+OBi+OBlw0KK+OChOOBvuOBoCzjgZ/jgaHjga/jgosNCivjgoTjgb7jgoLjgags44GT44GG44GYDQor44KE44G+44GW44GNLOOBn+OBkeOBlw0KK+OBk+OBvuOBpOOBluOBjSzjgb7jgZPjgagNCivjgbXjgaHjgaAs44KI44GX44Gy44GVDQor44Gf44Gq44GLLOOBl+OBkuOBqOOCgg0KK+OBr+OChOOBlyzjgb7jgooNCivjgarjgYzjgZ8s44GX44KT44GE44GhDQor44Gw44GwLOOBiOOBpOOBkw0KK+OBguOBi+OBvizjgobjgY3jgYgNCivjgYvjgZbjgb4s44KG44GG44GTDQor44GZ44Ga44GNLOOChOOCiOOBhA0KK+OCguOCiizjgb7jgZXjgb/jgaQNCivjgYTjgZHjgaAs44G+44GV44GXDQor44KP44Gf44Gq44G5LOOCgeOBkOOBvw0KK+OBv+OBvizjgb/jgYjjgZMNCivjgYLjgpPjganjgYYs44KG44Gf44GLDQor44G+44GI44Ge44GuLOOBruOCiuOBsuOBkw0KK+OBiuOBn+OBiyzjgb7jgoLjgosNCivjga/jgoTjgZcs44KG44GG44GE44GhDQor44GG44GI44GuLOOBqOOBv+OBsuOCjQ0KK+OBpOOBruOBoCzjgZ/jgZHjgZcNCivjgZnjganjgYYs44G+44GV44GKDQor44GV44GL44KC44GoLOOBoeOBguOBjQ0KK+OBn+OBquOBiyzjgb7jgZXjgbLjgZMNCivjgZPjgajjgYbjgaAs44GL44Ga44KG44GNDQor44GL44KL44G5LOOBleOBu+OCig0KK+OBleOBhOOBqOOBhizjgZvjgYTjgYTjgaENCivjgbLjgonjga4s44G+44GT44GoDQor44GV44Go44GGLOOBn+OBi+OBlw0KK+OBquOBi+OChOOBvizjgYvjgZrjgZfjgZINCivjga7jgaAs44GY44KF44GELeOBoeOBh+OCkw0KK+OBvizjgbLjgo3jgYLjgY0NCivjgZfjgarjgYzjgo8s44Gk44KI44GXDQor44Gq44GM44KE44GZLOOBi+OBpOOBqA0KK+OBguOBiuOBjSzjgbXjgb/jgYoNCivjgarjgYvjgZ8s44Go44KC44Gy44KNDQor44G/44GP44KK44KELOOBv+OBpOOBsuOCjQ0KK+OBvuOCi+OChOOBvizjgZPjgYbjgYTjgaENCivjgYjjgaHjgZzjgpMs44G+44GV44Gy44KNDQor44Gq44GL44Gr44GXLOOBi+OBmuOBn+OBiw0KK+OBr+OBjuOBiizjgZHjgYTjgYTjgaENCivjgZ/jgoDjgoks44Gf44GL44Go44GXDQor44Gf44GQ44GhLOOBv+OBpOOBguOBjQ0KK+OBiuOBluOCjyzjgoLjgorjgZfjgZINCivjgoTjgYrjgYTjgZ8s44KG44GN44Gu44KKDQor44GC44GV44GuLOOBteOBv+OBsuOCjQ0KK+OBj+OBleOBrizjgabjgovjgojjgZcNCivjga/jgb7jgaAs44Gy44KN44GTDQor44GE44KK44KE44G+LOOBsuOCjeOBvuOBlQ0KK+OCgOOCieOBnyzjgZHjgpPjgYTjgaENCivjgYLjgZXjga4s44KG44KK44GTDQor44Gf44GL44GuLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgaHjgYvjgokNCivjgoDjgonjgYvjgb8s44GT44GG44GYDQor44Gf44Gq44GLLOOBk+OBhuOBmA0KK+OBn+OBi+OBiuOBiyzjga/jgoTjgagNCivjgZnjgZrjgY0s44Gm44KL44KG44GNDQor44G/44Gt44GO44GXLOOBsuOBp+OBqOOBlw0KK+OBguOBuSzjgbLjgZXjgZcNCivjgYLjgbks44GX44KH44Gy44GhDQor44GC44G5LOOBqOOCguOBsuOBkw0KK+OBguOBuSzjgb7jgZXjgYLjgY0NCivjgYLjgYzjgaTjgb4s44KI44GX44Go44GXDQor44GC44GE44GW44KPLOOBiuOBleOCgA0KK+OBguOBi+OBhOOBkSzjgajjgZfjgbLjgo0NCivjgYLjgY3jgoLjgags44Gu44KK44KE44GZDQor44GC44GN44Gf44KELOOBpuOCi+OBsuOCjQ0KK+OBguOBjeOChOOBvizjgb7jgZXjgZgNCivjgYLjgY/jgaQs44Gv44Gq44GTDQor44GC44G+44GuLOOBquOBiuOChA0KK+OBguOBvuOBrizjgojjgZgNCivjgYLjgb7jga4s44GR44KT44GE44GhDQor44GC44KB44G/44KELOOBguOBjeOBqOOBlw0KK+OBguOCk+OBqeOBhizjga7jgorjgbLjgo0NCivjgYLjgpPjganjgYYs44GL44Gk44GYDQor44GC44KT44GW44GELOOBmOOCheOBq+OBoQ0KK+OBguOBiuOBjSzjgb/jgZXjgbsNCivjgYLjgYrjgY0s44Gq44GK44KEDQor44GC44GK44GNLOOBruOCiuOBguOBjQ0KK+OBguOCieOBhCzjgb/jgZrjgbsNCivjgYLjgonjgY0s44GX44KF44KT44GYDQor44GC44KJ44GNLOOBsuOBp+OBjQ0KK+OBguOCieOChCzjgYLjgY3jgokNCivjgYLjgorjgojjgZcs44Gf44GL44GXDQor44GC44GV44Gy44GqLOOBmOOCheOCk+OBkw0KK+OBguOBleOBhCzjgojjgZfjga7jgbYNCivjgYLjgZXjgb8s44KG44GN44GKDQor44GC44GV44Gk44GRLOOBqOOBl+OChuOBjQ0KK+OBguOBnSzjgZfjgZLjgY0NCivjgYLjgZrjgb4s44Gf44Gg44GL44GkDQor44GC44Ga44G+LOOBguOBpOOBruOCig0KK+OBsOOBsCzjgbXjgb/jgYgNCivjgbDjgbAs44GL44Ga44G/DQor44GL44GMLOOBvuOBleOBsuOCjQ0KK+OBsOOBsCzjgabjgpPjgZvjgYQNCivjgbDjgpMs44KG44GG44GYDQor44Gz44KL44GL44KPLOOCiuOBpOOBkw0KK+OBvCzjgZ/jgYvjgobjgY0NCivjgaDjgYTjgZQs44GV44Gg44Gv44KLDQor44Gg44GE44GU44GPLOOBr+OCi+OBsuOBqA0KK+OBqeOBsOOBlyzjgojjgbLjgaENCivjgYjjgbPjgZXjgo8s44GX44GS44G/44GkDQor44GI44Gv44KJLOOCiOOBl+OBn+OBiw0KK+OBiOOCk+OBq+OChSzjgajjgoLjga7jgbYNCivjgbXjgaHjgYzjgb8s44KI44Gy44GhDQor44G144GY44Gw44KE44GXLOOBquOCiuOBqA0KK+OBteOBmOOBiOOBoCzjgbLjgo3jgobjgY0NCivjgbXjgZjjgYQs44GL44Ga44KG44GNDQor44G144GY44GELOOBj+OBq+OBi+OBmg0KK+OBteOBmOOBhCzjgb7jgZPjgagNCivjgbXjgZjjgYQs44GV44Go44GTDQor44G144GY44GELOOBmeOBv+OBkw0KK+OBleOBi+OCguOBqCzjgajjgoLjgZMNCivjgY3jgZ/jgaAs44KI44GX44GNDQor44G144GY44GELOOChuOBmeOBkQ0KK+OBteOBmOOBhCzjgobjgYsNCivjgbXjgZjjgYQs44KM44GE44GTDQor44G144GY44GL44KPLOOBteOBj+OBig0KK+OBteOBmOOCguOCiizjgZfjgoXjgpPjgZnjgZENCivjgbXjgZjjgoLjgags44GY44KF44Gr44GhDQor44G144GY44GuLOOBqOOBiuOCiw0KK+OBteOBmOOBleOCjyzjgbLjgo3jgZcNCivjgbXjgZjjgZ8s44Gy44KN44Go44GXDQor44G144GY44GfLOOBleOBqOOBkw0KK+OBteOBmOOBnyzjgorjgoXjgYbjgZ/jgo3jgYYNCivjgY/jgZnjgoLjgags44Gy44KN44GXDQor44G144GY44KP44KJLOOCiuOCh+OBsuOBoQ0KK+OBteOBmOOCj+OCiSzjgZvjgYTjgZQNCivjgbXjgZjjgo/jgoks44GX44KT44GYDQor44G144GY44KP44KJLOOCiOOBl+OBruOCig0KK+OBteOBmOOCj+OCiSzjgb7jgZXjgoQNCivjgbXjgYvjgbzjgoos44Gy44Gn44GC44GNDQor44G144GL44G/LOOBl+OCheOBuOOBhA0KK+OBteOBi+OBvyzjgYjjgYTjgYTjgaENCivjgbXjgY/jgaAs44GL44GK44KLDQor44G144GP44GgLOOBl+OCk+OBhOOBoQ0KK+OBteOBj+OBoCzjgZ/jgaTjgoQNCivjgbXjgY/jgaAs44GL44Ga44Gy44GTDQor44G144GP44GELOOBjeOCh+OBkw0KK+OBteOBj+OBhCzjgbLjgo3jgZcNCivjgbXjgY/jgarjgYws44Gb44GE44GYDQor44G144GP44Gq44GMLOOBsuOCjeOBn+OBiw0KK+OBteOBj+OBiuOBiyzjgajjgZfjgoQNCivjgbXjgY/jgYrjgYss44Gy44KN44GXDQor44G144GP44GXLOOBkeOBhOOBmA0KK+OBteOBj+OBl+OBvizjgbLjgo3jgbXjgb8NCivjgbXjgY/jgajjgoEs44Gy44KN44GXDQor44G144GP44KE44G+LOOBkeOBhA0KK+OBteOBquOBsOOBlyzjgb7jgZPjgagNCivjgbXjgovjga4s44Gy44KN44KADQor44G144KL44KELOOBqOOBl+OBjQ0KK+OBteOCi+OChCzjgbLjgafjgYoNCivjgbXjgovjgoTjgb4s44GV44Gq44GIDQor44G144Gf44GwLOOBsuOBleOBkw0KK+OBguOBquOBvyzjgobjgYbjgZMNCivjgbXjgZ/jgb8s44GV44Go44G/DQor44G144Gf44KA44KJLOOBmOOCheOCkw0KK+OBjOOBqSzjgobjgYsNCivjgZQs44Gu44KK44Gh44GLDQor44GU44GgLOOBqOOCguOBmA0KK+OBlOOBiyzjgZHjgpPjgZgNCivjgZTjgags44G+44GV44KE44GZDQor44GU44GoLOOBv+OBruOCiw0KK+OBr+OBtizjgYTjgZXjgYoNCivjga/jgYws44KE44GZ44Gu44KKDQor44Gv44GOLOOBqOOBl+OChuOBjQ0KK+OBr+OBvizjgZvjgYTjgZgNCivjga/jgb7jgaAs44GL44Gk44Gy44GoDQor44Gv44G+44GuLOOBqOOBiuOCiw0KK+OBr+OBvuOBrizjgYLjgY3jgokNCivjga/jgb7jgZfjgb4s44Go44GX44KG44GNDQor44Gv44G+44GX44G+LOOBsuOCjeOChuOBjQ0KK+OBr+OBquOBhCzjgb/jga7jgosNCivjga/jgoks44KG44G/44GTDQor44GK44GfLOOBsuOBleOBruOCig0KK+OBr+OCieOBoCzjgbXjgZjjgYoNCivjga/jgonjgZMs44Go44KC44GTDQor44Gv44GbLOOBsuOBleOBlw0KK+OBr+OBm+OBjOOCjyzjgorjgofjgZMNCivjga/jgZvjgYzjgo8s44GX44KTDQor44Gv44GX44KC44GoLOOBn+OBpOOChA0KK+OBr+OBl+OCguOBqCzjgajjgZfjgZ/jgYsNCivjga/jgZfjgoLjgags44GX44Gu44G2DQor44Gv44GX44Ga44KBLOOBl+OCh+OBmA0KK+OBr+OBl+OBmuOCgSzjgYLjgaTjgZcNCivjga/jgZ8s44GR44KT44GYDQor44Gv44GfLOOBn+OBoOOBsuOCjQ0KK+OBr+OBnyzjgb7jgZXjgosNCivjga/jgZ/jga4s44GK44GV44KADQor44Gv44Gf44GuLOOBn+OBpOOChA0KK+OBr+OBn+OBrizjgobjgb8NCivjgaTjgaAs44GV44Gg44G/44GkDQor44Gv44KE44GL44KPLOOBpuOBpOOBig0KK+OBr+OChOOBrizjgZ/jgaTjgY0NCivjga/jgoTjgZcs44GT44GG44GE44GhDQor44Gv44KE44GXLOOBquOBiuOBjQ0KK+OBr+OChOOBlyzjgZ/jgaTjgbLjgo0NCivjga/jgoTjgZcs44KG44Gf44GLDQor44Gv44KE44GXLOOBsuOCjeOBlw0KK+OBr+OChOOBl+OBn+OBqyzjgZfjgofjgZgNCivjgbLjgYzjgZfjga4s44GV44Go44GXDQor44Gy44GQ44GhLOOBm+OBpOOBig0KK+OBsuOBkOOBoSzjgYLjgZHjgb8NCivjgbLjgoHjga4s44G+44GV44GNDQor44Gy44KJ44Gw44KE44GXLOOBquOBiuOBjQ0KK+OBsuOCieOBhCzjgZfjgpPjgYTjgaENCivjgbLjgonjgYvjgo8s44KI44GX44Gy44GTDQor44Gy44KJ44GNLOOBn+OBkeOBsuOBkw0KK+OBsuOCieOBrizjgY3jgofjgZMNCivjgYLjgYrjgY0s44KE44GZ44KG44GNDQor44Gy44KJ44GK44GLLOOCiOOBl+OBsuOCjQ0KK+OBsuOCieOBleOBiyzjgbLjgo3jgZMNCivjgbLjgonjgoTjgb4s44KI44GX44Gu44KKDQor44Gy44KN44Gv44GfLOOBi+OBquOBkw0KK+OBvuOBiOOBi+OCjyzjgZXjgYrjgooNCivjgbLjgo3jgZss44GZ44GZ44KADQor44Gy44KN44GbLOOBruOBtuOChuOBjQ0KK+OBsuOCjeOBnyzjgbLjgo3jgobjgY0NCivjgbLjgo3jgo/jgZ/jgoos44Go44GX44KNDQor44Gy44KN44G/44GkLOOBguOBjeOCiQ0KK+OBsuOBhuOCiSzjgY3jgb/jgZ/jgZENCivjgbvjgbws44GL44Ga44Gy44GTDQor44G744GP44KJLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBu+OCk+OBoCzjgoTjgZnjgZcNCivjgbvjgpPjgaAs44KG44GG44GTDQor44GZ44Ga44GNLOOChuOBsuOBoQ0KK+OBu+OCk+OBlCzjgbLjgo3jgZcNCivjgbvjgorjgZDjgaEs44Gy44KN44GXDQor44G744KK44GELOOBm+OBhOOCiuOChw0KK+OBu+OCiuOBi+OCjyzjgb/jgaHjgZMNCivjgbvjgZfjga4s44G+44GV44KEDQor44G744Gd44GL44KPLOOBsuOCjeOChuOBjQ0KK+OBu+OBneOBvyzjgojjgZfjga7jgooNCivjgbvjgaPjgZ8s44KG44Gy44Gh44KNDQor44GE44G244GLLOOChOOBmeOBsuOCjQ0KK+OBhOOBtuOBjSzjgb7jgarjgbYNCivjgYTjgaHjgYvjgo8s44Gy44KN44KI44GXDQor44GE44Gh44KA44KJLOOBvuOBleOBruOBtg0KK+OBhOOBoCzjgZ/jgYvjgbLjgo0NCivjgYTjgaAs44Gy44KN44GXDQor44GE44GnLOOBvuOCguOCiw0KK+OBhOOBpyzjgZ/jgYTjgZnjgZENCivjgYTjgacs44G+44GT44GoDQor44GE44Gn44GfLOOBhOOBleOBig0KK+OBhOOBjOOCieOBlyzjgojjgYbjgZMNCivjgYTjgYzjgonjgZcs44Gy44Gn44GNDQor44GE44GSLOOBi+OBmuOBn+OBiw0KK+OBhOOBhOOBoCzjgY3jgYTjgaHjgo3jgYYNCivjgYTjgYTjgaAs44GN44Gr44GhDQor44GE44GE44GgLOOBpuOCi+OBig0KK+OBhOOBhOOBoCzjgoTjgZnjgbLjgo0NCivjgYTjgYTjga/jgoks44Gy44Gn44KG44GNDQor44GE44GE44GY44G+LOOBsuOCjeOBguOBjQ0KK+OBhOOBkeOBoCzjgYvjgZrjgYLjgY0NCivjgYTjgZHjgaAs44Gu44G244G/44GhDQor44GE44GT44G+LOOBsuOBp+OChuOBjQ0KK+OBhOOBvuOBhCzjgbLjgo3jgZcNCivjgYTjgb7jgYQs44GN44G/44GIDQor44Gf44Gq44GLLOOBi+OBquOCgQ0KK+OBhOOBvuOCgOOCiSzjgaHjga/jgosNCivjgYTjgb7jgarjgoos44KE44GZ44Gy44GnDQor44GE44G+44Gc44GNLOOBjeOCiOOBn+OBiw0KK+OBhOOBquOBoCzjgarjgYrjgobjgY0NCivjgYTjgarjgb7jgZks44Gf44GL44GXDQor44GE44Gu44GG44GILOOBkeOBhOOBkw0KK+OBhOOBpyzjgobjgY3jgoQNCivjgYTjgozjgYQs44GV44Gk44GNDQor44GE44GX44Gv44KJLOOBl+OCh+OBng0KK+OBhOOBl+OBr+OCiSzjgZ/jgYvjgobjgY0NCivjgYTjgZfjga/jgoks44Gf44G+44G/DQor44GE44GX44Gv44KJLOOCiOOBl+OBsuOBlQ0KK+OBhOOBl+OBr+OCiSzjgbLjgo3jgZcNCivjgYTjgZfjgYQs44Gf44GR44GXDQor44GE44GX44GELOOBi+OBpOOChA0KK+OBhOOBl+OBi+OCjyzjgb7jgZXjgYLjgY0NCivjgYTjgZfjgYvjgo8s44Gu44G244G+44GVDQor44GE44GX44KA44KJLOOBjeOCiOOBsuOBqA0KK+OBhOOBl+OCj+OBn+OCiizjgb7jgZPjgagNCivjgYTjgZfjgZbjgY0s44GN44KH44GTDQor44GE44GX44Ga44GLLOOBk+OBhuOBhOOBoQ0KK+OBhOOBneOBrizjgZ/jgaTjgoQNCivjgYTjgZ3jgoTjgb4s44GY44KF44KT44GYDQor44GE44GZ44GgLOOBvuOChuOBvw0KK+OBhOOBn+OBj+OCiSzjgbLjgo3jgZcNCivjgYTjgajjgYYs44Gy44KN44KG44GNDQor44GE44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBhOOBqOOBhizjgb7jgZXjgosNCivjgYTjgajjgYYs44G/44Gk44G/DQor44G+44Gk44GELOOBv+OChuOBjQ0KK+OBhOOBqOOBhizjgarjgYrjgY0NCivjgYTjgajjgYYs44GZ44GZ44KADQor44GE44Go44GGLOOBmOOCheOBq+OBoQ0KK+OBhOOCj+OBi+OBvyzjgZ/jgYvjgobjgY0NCivjgYTjgo/jgZUs44Go44KC44KG44GNDQor44GE44KP44GV44GNLOOChuOBhuOBmA0KK+OBhOOCj+OBleOBjSzjgarjgYrjgbXjgb8NCivjgYTjgo/jgZfjgZ8s44Gy44KN44KG44GNDQor44GE44Ga44G/LOOBvuOBmeOBvw0KK+OBhOOBqOOBhizjga7jgorjgojjgZcNCivjgYTjgZrjgb8s44Gq44GK44Go44GPDQor44GE44Ga44G/44GV44KPLOOBv+OBpOOBqOOBlw0KK+OBmOOCk+OBrizjgb/jgaTjga7jgbYNCivjgZjjgofjgb/jgaks44GX44GS44GKDQor44GL44GMLOOBvuOBleOBsuOCjQ0KK+OBi+OBjOOBvyzjgb7jgZXjgbLjgo0NCivjgYvjgZLjgoTjgb4s44Gy44KN44G144G/DQor44GL44GELOOCiOOBl+OBvuOBlQ0KK+OBi+OBhOOBoCzjga/jgovjgYoNCivjgYvjgYTjgZos44Gf44GR44Gy44GTDQor44GL44GY44GfLOOBn+OBkeOBsuOBkw0KK+OBi+OBkeOBsizjgb7jgZXjgaHjgYsNCivjgYvjgY3jgoLjgags44G+44GV44Gy44GTDQor44GL44GN44Gs44G+LOOBpOOBqOOCgA0KK+OBi+OBjeOBrOOBvizjgajjgZfjgb8NCivjgYvjgb7jgZ8s44KG44GG44GYDQor44GL44G+44GfLOOBquOBiuOChuOBjQ0KK+OBi+OBv+OBkOOBoSzjgb/jgaHjgZ/jgYsNCivjgYvjgb/jgoDjgoks44Go44GK44KLDQor44GL44Gt44GTLOOBguOBpOOBlw0KK+OBi+OBquOBvuOCiyzjgajjgbjjgYQNCivjgYvjgarjgZbjgo8s44Gb44GE44GYDQor44GL44KT44G5LOOChOOBmeOBlw0KK+OBi+OCk+OBoCzjgorjgoXjgZgNCivjgYvjga3jga/jgoks44GC44GR44G/DQor44GU44GoLOOBteOBleOBig0KK+OBi+OBreOBkyzjgbLjgZXjgarjgYwNCivjgYvjga3jgZMs44Gy44Go44GXDQor44GL44Gt44GTLOOBk+OBhuOBmA0KK+OBi+OBreOBkyzjgZ/jgZHjgbLjgagNCivjgYvjga3jgZMs44GY44KH44GYDQor44GL44Gt44G/44GkLOOBguOBkeOBvw0KK+OBi+OBreOCgOOCiSzjgajjgoLjgbLjgo0NCivjgYvjga3jgZ8s44GV44Gh44GTDQor44Gf44Gq44GLLOOBl+OBmuOBiw0KK+OCiOOBreOCguOBoSzjgajjgZfjgYgNCivjgYvjgpPjga4s44GR44KT44GE44GhDQor44GL44GV44GELOOBv+OBiOOBkw0KK+OBi+OBl+OBvizjgojjgZfjgYoNCivjgZ/jgYvjgY4s44G+44GV44Gu44KKDQor44GN44Gf44KA44KJLOOBmOOCh+OBmA0KK+OBi+OBn+OBiuOBiyzjgb7jgoLjgosNCivjgYvjgZ/jgYrjgYss44Gf44GL44Gy44KNDQor44GL44Gf44GK44GLLOOBk+OBng0KK+OBi+OBn+OBmyzjgZHjgpMNCivjgYvjgZ/jgoTjgb4s44GX44GS44GL44GaDQor44GL44Gf44KE44G+LOOBn+OBkeOBlw0KK+OBi+OBn+OChOOBvizjgoTjgZnjgarjgYoNCivjgYvjgZ/jgoTjgb4s44GC44GN44KJDQor44GL44Go44GGLOOBsuOBp+OBqOOBlw0KK+OBi+OBqOOBhizjgbLjgo3jgbXjgb8NCivjgYvjgajjgYYs44Gy44KN44G/44GkDQor44GL44Go44GGLOOBi+OBmuOBig0KK+OBi+OBqOOBhizjgZPjgYbjgYTjgaENCivjgYvjgajjgYYs44G+44GV44KI44GXDQor44GL44Go44GGLOOBquOBiuOBlw0KK+OBi+OBqOOBhizjgoTjgZnjgb7jgZUNCivjgYvjgajjgYYs44KG44GL44KKDQor44Gd44KB44KELOOBk+OBhuOBmOOCjQ0KK+OBi+OCj+OBsOOBnyzjgbLjgafjgY0NCivjgYvjgo/jgZDjgaEs44G+44GV44G/DQor44GL44KP44GQ44GhLOOChOOBmeOChuOBjQ0KK+OBn+OBvuOBjOOCjyzjgYvjgZrjgbLjgZMNCivjgYvjgo/jga/jgoks44GX44GS44KG44GNDQor44GL44KP44Gv44KJLOOChOOBmeOBquOCig0KK+OBi+OCj+OBsuOBqCzjgb/jgaHjgZMNCivjgYvjgo/jgYQs44Gq44GK44KG44GNDQor44GL44KP44GELOOChuOBhuOBkw0KK+OBr+OBjuOCj+OCiSzjgY3jgofjgZMNCivjgarjgovjgZEs44KE44GZ44Gy44KNDQor44GL44KP44GV44GNLOOBsuOCjeOBguOBjQ0KK+OBi+OCj+OBl+OBvizjgZfjgpPjgYTjgaENCivjgYvjgo/jgZfjgb4s44Gk44Go44KADQor44GL44KP44GfLOOBsuOCjeOChuOBjQ0KK+OBi+OChOOBvizjgajjgZfjgbLjgo0NCivjgYvjgZbjgb7jgaTjgoos44KI44GX44G/DQor44GN44GpLOOChuOBhuOBmA0KK+OBjeOBjOOBvyzjgaTjgajjgoANCivjgY3jgZTjgZcs44GY44KF44KT44GTDQor44KC44KK44GV44KPLOOBvuOBk+OBqA0KK+OBjeOBj+OBoSzjgb7jgZXjgYTjgaENCivjgY3jgY/jgaEs44GX44KT44KEDQor44GN44GP44GhLOOBk+OBhuOBhOOBoeOCjQ0KK+OBjeOBj+OCiSzjgbLjgZXjgZcNCivjgY3jgoDjgoks44GY44KF44KT44GYDQor44GN44KA44KJLOOBi+OBpOOBsuOBlQ0KK+OBjeOCgOOCiSzjga7jgorjgbLjgZUNCivjgY3jgoDjgoks44Gu44KK44GTDQor44GN44KA44KJLOOBl+OBkuOBjQ0KK+OBjeOCgOOCiSzjgZ/jgYvjgZcNCivjgY3jgoDjgoks44KI44GX44Gy44KNDQor44GN44KA44KJLOOChuOBi+OCig0KK+OBjeOCgOOCiSzjgobjgY3jgZMNCivjgY3jgoDjgoks44KG44Gf44GLDQor44GN44KA44KJLOOBsuOCjeOBi+OBmg0KK+OBjeOBruOBl+OBnyzjgbLjgo3jgZMNCivjgY3jga7jgZfjgZ8s44Gf44GL44G144G/DQor44GN44Gu44GX44GfLOOBvuOBquOBtg0KK+OBjeOBl+OBuSzjgbLjgZXjgoQNCivjgY3jgZfjgaAs44GN44KI44GXDQor44GN44GX44KC44GoLOOBv+OBpOOBkA0KK+OBjeOBl+OCguOBqCzjgY3jgYTjgaENCivjgY3jgZ8s44Gu44KK44GKDQor44GN44Gf44GC44GNLOOBi+OBpOOBvw0KK+OBjeOBn+OBoCzjgaTjga3jgYoNCivjgY3jgZ/jgYzjgo8s44Gy44KN44GNDQor44GN44Gf44G744KKLOOBguOBkeOBvw0KK+OBjeOBn+OBmOOBvizjgajjgoLjgbLjgZUNCivjgY3jgZ/jgoDjgoks44GL44Gk44Gu44KKDQor44GT44Gw44KE44GXLOOBkeOBhOOBhOOBoQ0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgY0NCivjgZPjgbDjgoTjgZcs44G+44GV44KG44GNDQor44GT44Gw44KE44GXLOOBkeOCk+OBhOOBoQ0KK+OBl+OCieOBhCzjga7jgorjgZMNCivjgZPjgbDjgoTjgZcs44GX44KT44GN44GhDQor44GT44Gw44KE44GXLOOBn+OBhOOBkw0KK+OBk+OBsOOChOOBlyzjgajjgZfjgbLjgZMNCivjgZPjgbDjgoTjgZcs44KE44GZ44Gy44KNDQor44GT44Gw44KE44GXLOOBsuOCjeOBjQ0KK+OBk+OBoOOBvizjgojjgZfjga7jgooNCivjgZPjgY7jgZ8s44Gf44GR44GXDQor44GT44GQ44KMLOOBn+OBpOOChA0KK+OBk+OBr+OBlyzjgZ/jgYvjgb/jgaENCivjgZPjgZQs44Gy44KN44KG44GNDQor44GT44GuLOOBsuOCjeOChuOBjQ0KK+OBk+OBrizjgajjgZfjgobjgY0NCivjgZPjga4s44Gy44KN44KG44GNDQor44GT44Gu44GZLOOBn+OBpOOChA0KK+OBk+OBhOOBpyzjgbLjgo3jgZcNCivjgZPjgb7jgaTjgbDjgoks44GX44GS44KI44GXDQor44GT44G/44KELOOBi+OBmuOBsuOCjQ0KK+OBk+OBv+OChOOBvizjgaHjgbXjgoYNCivjgZPjgoLjgaAs44KE44GZ44KG44GNDQor44GT44KT44GpLOOBoOOBhOOBmeOBkQ0KK+OBk+OCk+OBqSzjgbLjgo3jgobjgY0NCivjgZPjgpPjgaks44GX44KT44GE44GhDQor44GT44KT44GpLOOBqOOBl+OChA0KK+OBk+OCk+OBqSzjgajjgZfjgY0NCivjgZPjgavjgZcs44Gq44GK44G144G/DQor44GT44GVLOOBsuOCjeOChuOBjQ0KK+OBk+OBmeOBjizjgZHjgYTjgYTjgaENCivjgZPjgZ/jgY0s44KI44GX44GL44GaDQor44GT44Gf44GrLOOBruOCiuOBl+OBkg0KK+OBk+OChOOBvizjgZ/jgYvjgbLjgacNCivjgZPjgoTjgb4s44KIDQor44GT44KE44G+LOOBjeOCk+OChA0KK+OBk+OBluOCjyzjgoTjgZnjgbLjgo0NCivjgZPjgZrjgoss44Gy44KN44GL44GaDQor44GP44G844GfLOOBk+OBhuOBmA0KK+OBj+OBvOOBnyzjgbLjgafjgajjgZcNCivjgY/jgbzjgoQs44GK44GV44KADQor44GP44Gp44GGLOOCiOOBl+OBsuOCjQ0KK+OBm+OBruOBiizjgZ/jgYvjgZcNCivjgY/jgb7jgYzjgYQs44GL44Ga44G+44GVDQor44GP44KJ44Gp44G/LOOBvuOBleOBqA0KK+OBj+OCieOCguOBqCzjgbLjgajjgZcNCivjgY/jgonjgajjgb8s44GL44Gk44KEDQor44GP44KK44GuLOOBi+OBmuOBqOOBlw0KK+OBj+OCiuOChCzjgYLjgY3jga7jgooNCivjgY/jgo3jgaAs44G+44GV44GoDQor44GP44KN44GL44KPLOOBkeOCk+OBhOOBoeOCjQ0KK+OBj+OBleOBi+OCjyzjgb7jgZXjgobjgY0NCivjgY/jgZXjga4s44GR44GE44GE44GhDQor44GP44KP44Gw44KJLOOBv+OBjQ0KK+OBj+OCj+OBrizjgbLjgo3jgb8NCivjgojjgZfjgaAs44GL44Gk44Gy44GTDQor44GP44Ga44GuLOOBvuOBleOBruOCig0KK+OBvuOBoeOBoCzjgojjgZfjgYLjgY0NCivjgb7jgYjjgaAs44Gy44KN44GXDQor44G+44GI44GL44KPLOOBmOOCheOCk+OBkw0KK+OBiuOBn+OBqyzjgajjgoLjgZMNCivjgb7jgY0s44GY44KF44KTDQor44G+44GN44GuLOOBsuOBqOOBlw0KK+OBvuOCi+OBiuOBiyzjgYvjgZrjga7jgooNCivjgb7jgovjgoTjgb4s44GN44KI44G144G/DQor44G+44KL44KE44G+LOOBruOCiuOChuOBjQ0KK+OBvuOCi+OChOOBvizjgZHjgYTjgZnjgZENCivjgb7jgZXjgYQs44KE44GZ44Gy44KNDQor44G+44GV44GNLOOChuOBsuOBoQ0KK+OBvuOBmyzjgbLjgo3jgZcNCivjgb7jgZnjgaAs44G/44Gk44GC44GNDQor44G+44Go44GwLOOBruOBtuOBv+OBpA0KK+OBvuOBqOOBsCzjgZXjgajjgZcNCivjgb7jgaTjgbDjgoks44Go44GX44Gy44KNDQor44G+44Gk44GELOOChOOBmeOBsuOCjQ0KK+OBvuOBpOOBhCzjgZXjgajjgosNCivjgb7jgaTjgYvjgo8s44Gy44KN44GL44GaDQor44G+44Gk44KC44KKLOOBsuOCjeOBlw0KK+OBvuOBpOOCguOBqCzjgZHjgpPjgYTjgaENCivjgb7jgaTjgoLjgags44G/44Gt44GL44GaDQor44G+44Gk44KC44GoLOOBn+OBoOOBl+OBkg0KK+OBvuOBpOOCguOBqCzjgZ/jgY/jgoQNCivjgb7jgaTjgoLjgags44Go44GX44GKDQor44G+44Gk44KC44GoLOOChOOBmeOBsuOCjQ0KK+OBvuOBpOOCguOBqCzjgZjjgoXjgpPjgZPjgYYNCivjgYfjgYgs44Gu44KK44Gy44KNDQor44G+44Gk44GKLOOBv+OBruOCiw0KK+OBvuOBpOOBiuOBiyzjgZfjgpPjgZQNCivjgb7jgaTjgZfjgb4s44Gy44Gn44KIDQor44Gq44GL44Gr44KPLOOBn+OBi+OBlw0KK+OBvuOBpOOChOOBvizjgobjgZ/jgYsNCivjgb7jgaTjgoTjgb4s44Gf44GL44Go44GXDQor44G+44Gk44GW44KPLOOBj+OBq+OBsuOBkw0KK+OBv+OCgOOCiSzjgZ/jgYvjgYLjgY0NCivjgb/jgavjgoUs44Gy44GV44GXDQor44G/44GfLOOChOOBmeOBsuOCjQ0KK+OBv+OBnyzjgZvjgYTjgYTjgaENCivjgb/jgZ/jgoDjgoks44GX44KH44GeDQor44G/44Gk44GgLOOBn+OBi+OBlw0KK+OBv+OBpOOBoCzjgb7jgZXjgojjgZcNCivjgb/jgaTjgb7jgZ8s44GX44GS44KLDQor44G/44Gk44GK44GLLOOBmOOCheOCk+OBkw0KK+OBv+OBhuOCiSzjgZ/jgZHjgZcNCivjgb/jgYbjgoks44Go44GK44KLDQor44G/44KP44GfLOOBleOBoOOBig0KK+OBquOBjOOBmyzjgYjjgYTjgYTjgaENCivjgb/jgoTjgZEs44GL44Ga44KI44GXDQor44G/44KE44GRLOOBn+OBkeOBqOOBlw0KK+OBv+OChOOBvizjgZ/jgYvjgbLjgo0NCivjgb/jgoTjgoLjgags44Go44GX44KNDQor44G/44KE44KC44GoLOOBmOOCheOCkw0KK+OBv+OChOOBquOBjCzjgZjjgoXjgpPjgZgNCivjgb/jgoTjgZbjgY0s44Gy44Gn44KIDQor44G/44Ga44GwLOOBl+OCheOBq+OBoQ0KK+OBv+OBmuOBrOOBvizjgZPjgYbjgYTjgaENCivjgb/jgZrjgZXjgY0s44G+44Gq44G2DQor44G/44Ga44GfLOOBsuOCjeOBi+OBmg0KK+OCguOBoeOBmuOBjSzjgZjjgoXjgpMNCivjgoLjgaHjgZrjgY0s44GK44GV44KADQor44KC44Gh44Ga44GNLOOBmOOCheOBq+OBoQ0KK+OCguOBjizjgojjgZfjga7jgooNCivjgoLjgoLjgZss44GC44KE44GTDQor44Gy44KJ44GuLOOBjeOCh+OBkw0KK+OCguOCiizjgb/jganjgooNCivjgoLjgoos44Gq44GK44GNDQor44KC44KKLOOBn+OBi+OBlw0KK+OCguOCiizjgYLjgY3jgYoNCivjgoLjgorjgYvjgo8s44KG44GL44KKDQor44KE44GO44GX44GfLOOBm+OBhOOBmA0KK+OCguOCiuOCguOBqCzjgabjgaTjgYoNCivjgoLjgorjgoLjgags44Gy44Go44G/DQor44G+44Gk44GgLOOBvuOBleOBi+OBpA0KK+OCguOCiuOBiuOBiyzjgoLjgajjgbXjgb8NCivjgoLjgorjgZfjgZ8s44Gy44KN44GXDQor44KC44KK44GfLOOBi+OBpOOBvw0KK+OCguOCiuOBnyzjgb/jgo8NCivjgYvjga3jgZMs44Gu44KK44GC44GNDQor44KC44KK44GfLOOBl+OCheOBsuOBoQ0KK+OCguOCiuOCj+OBjSzjgYLjgaTjgY0NCivjgoLjgo3jganjgb8s44Gh44GL44KJDQor44KC44Go44Gv44GXLOOBsuOCjeOBlw0KK+OCguOBqOOBmOOBvizjgaTjgojjgZcNCivjgoLjgajjgY0s44GC44GN44Gy44GnDQor44KC44KKLOOChuOBhuOBjQ0KK+OBhuOBmeOBhCzjgb7jgZXjgobjgY0NCivjgoDjgonjgYvjgb8s44G+44GV44KG44GNDQor44KA44KJ44GL44G/LOOBl+OBkuOBig0KK+OCgOOCieOBi+OBvyzjgZfjgpPjgZgNCivjgoDjgonjgYvjgb8s44GE44GV44GKDQor44KA44KJ44GfLOOBk+OBhuOBhOOBoeOCjQ0KK+OCgOOCieOBnyzjgZPjgYbjgZgNCivjgoDjgonjgoTjgb4s44GR44KT44GYDQor44KA44GoLOOBguOBjeOBsuOBkw0KK+OBquOBoOOBkOOBoSzjgorjgYgNCivjgarjgYzjga/jgZcs44GP44Gr44Gy44KNDQor44Gq44GM44GELOOBjeOCiOOBiOOBhA0KK+OBquOBjOOCgOOCiSzjgYvjgZrjgYLjgY0NCivjgarjgYzjgYos44G+44GV44KG44GNDQor44Gq44GM44GX44G+LOOBruOBtuOChuOBjQ0KK+OBquOBjOOBl+OBvizjgojjgbLjgaENCivjgarjgYzjgZ8s44KI44GX44Gy44GnDQor44Gq44GM44GfLOOBpuOBpOOBig0KK+OBquOBjOOBpOOBiyzjgZHjgYTjgZMNCivjgarjgYzjgoTjgb4s44G/44KPDQor44GG44Gh44GgLOOBi+OBiuOCiw0KK+OBhuOBoeOBnuOBrizjgZ/jgZHjgYoNCivjgarjgYvjgaAs44Gg44GE44Gb44GEDQor44Gq44GL44GM44KPLOOBsuOBp+OBlw0KK+OBquOBi+OBjOOCjyzjgbLjgajjgZcNCivjgarjgYvjgYzjgo8s44KI44GX44GKDQor44Gq44GL44GM44KPLOOBjeOCiOOBsuOBkw0KK+OBquOBi+OBmOOBvizjgZXjgajjgZcNCivjgarjgYvjgZjjgb4s44KI44GX44Gy44KNDQor44Gq44GL44GY44G+LOOBmeOBv+OBqA0KK+OBquOBi+OBv+OBoSzjgYTjgZXjgYoNCivjgarjgYvjgoLjgags44G+44GV44Gy44KNDQor44Gq44GL44KC44GoLOOBvuOBk+OBqA0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgb8NCivjgarjgYvjgoDjgoks44G/44Gh44Gu44KKDQor44Gq44GL44KA44KJLOOBv+OCiOOBkw0KK+OBguOBjeOChOOBvizjgarjgYrjgooNCivjgarjgYvjgoDjgoks44Gu44G844KLDQor44Gq44GL44KA44KJLOOBruOCiuOChuOBjQ0KK+OBquOBi+OCgOOCiSzjgZXjgarjgYgNCivjgarjgYvjgoDjgoks44Gf44GL44Gy44GnDQor44Gq44GL44KA44KJLOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgajjgZfjgoQNCivjgarjgYvjgoDjgoks44KE44GZ44Gy44KNDQor44Gq44GL44KA44KJLOOChuOBjeOBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgaHjga/jgosNCivjgarjgYvjga4s44Gq44GK44KG44GNDQor44Gq44GL44GuLOOBk+OBhuOBhOOBoeOCjQ0KK+OBquOBi+OBl+OBvizjgbLjgo3jgYLjgY0NCivjgarjgYvjgaTjgbws44GN44KH44GTDQor44Gq44GL44Gk44GLLOOCiuOCheOBsuOBoQ0KK+OBquOBi+OChOOBvizjgoTjgZnjgajjgoINCivjgarjgYvjgoTjgb4s44Gy44KN44GXDQor44Gq44GL44GW44KPLOOBsuOCjeOBlw0KK+OBquOBiuOBpOOBiyzjgobjgb/jgZMNCivjgarjgonjga/jgoks44Gy44KN44GXDQor44Gq44KL44GX44G+LOOBn+OBi+OBmA0KK+OBquOBqOOCiizjgbLjgafjgagNCivjgavjgYTjgZjjgb4s44Gk44Go44KADQor44Gr44GE44KELOOBn+OBi+OBkw0KK+OBq+OBlyzjgobjgY3jgZMNCivjgavjgZcs44KI44GX44Gy44GTDQor44Gr44GX44G2LOOBm+OBhOOBmA0KK+OBq+OBl+OBoCzjgobjgbLjgaENCivjgavjgZfjga/jgoks44Gy44KN44G/DQor44Gr44GX44GL44KPLOOBleOBqOOBlw0KK+OBn+OBquOBiyzjgZ/jgYvjgZcNCivjgavjgZfjgYvjgo8s44GR44GE44GYDQor44Gr44GX44KC44GoLOOBruOCiuOBig0KK+OBq+OBl+OCguOBqCzjgb7jgZXjgbLjgZMNCivjgavjgZfjgoDjgoks44Gm44Gk44KNDQor44Gr44GX44KA44KJLOOBvuOBk+OBqA0KK+OBq+OBl+OBrizjgb7jgZXjgbLjgZMNCivjgavjgZfjga4s44GK44GV44KADQor44Gr44GX44GK44GLLOOBguOBjeOBkw0KK+OBq+OBl+OBluOBjSzjgZXjgajjgZcNCivjgavjgZfjgZbjgo8s44G+44GV44GTDQor44Gr44KPLOOBsuOCjeOBn+OBiw0KK+OBruOBtizjgobjgYsNCivjga7jgYzjgYTjgags44KK44GLDQor44Gu44GQ44GhLOOBqOOBl+OBsuOBlQ0KK+OBruOBmCzjgb7jgZXjgbLjgo0NCivjga7jgZjjgb4s44GC44KE44GTDQor44Gu44KA44KJLOOBn+OBpOOChA0KK+OBruOCgOOCiSzjgZ/jgYvjgYLjgY0NCivjga7jgarjgYss44G+44GV44GTDQor44Gq44GL44GY44G+LOOBhOOBleOBig0KK+OBruOBluOBjSzjgb7jgZXjgagNCivjga7jgZbjgY0s44Gy44Gn44GC44GNDQor44Gs44KPLOOBquOBiuOBkw0KK+OBiuOBoSzjgZ/jgYvjgZcNCivjgYrjgaHjgYLjgYQs44GT44GeDQor44GK44GgLOOBkeOCk+OBmA0KK+OBiuOBjOOBleOCj+OCiSzjgZfjgpPjgoQNCivjgYrjgYzjgZXjgo/jgoks44G+44GV44Gu44G2DQor44GK44GM44GfLOOBkeOCk+OBmA0KK+OBiuOBjOOCjyzjgaDjgYTjgZnjgZENCivjgYrjgY7jga/jgoks44KC44KK44KI44GXDQor44GK44Gv44KJLOOBv+OBruOCiw0KK+OBiuOBsCzjga7jgbbjgobjgY0NCivjgYrjgbAs44KI44GG44GTDQor44G+44Gk44GgLOOBsuOCjeOChuOBjQ0KK+OBiuOBuCzjga7jgorjgYoNCivjgYrjgYzjgY0s44GC44GN44GTDQor44GX44KH44GY44G+LOOBl+OCk+OBhOOBoQ0KK+OBiuOBr+OBvizjgobjgY3jga7jgooNCivjgYrjga/jgZcs44Gh44G144KGDQor44GK44GO44GuLOOBv+OBjeOBig0KK+OBiuOBi+OCjyzjgojjgZfjgobjgY0NCivjgYrjgYvjgo/jgoks44Gf44GR44GXDQor44GK44GNLOOBn+OBi+OBlw0KK+OBreOCguOBqCzjgajjgZfjgobjgY0NCivjgYrjgY/jgbws44GC44Gk44GXDQor44GK44GP44KJLOOCiOOBl+OChuOBjQ0KK+OBiuOBvizjgajjgb/jgYoNCivjgYrjgb/jgYss44GL44Ga44Gv44KLDQor44GK44KC44KKLOOBkeOCk+OBhOOBoQ0KK+OBiuOCguOCiizjgbLjgo3jgY0NCivjgo/jgZ/jgarjgbks44GL44Gk44G/DQor44GK44GK44Gr44GXLOOChuOBv+OBkw0KK+OBiuOBiuOBq+OBlyzjgYjjgYTjgZgNCivjgYrjga4s44GX44GS44KG44GNDQor44GK44GuLOOChuOBhuOBmA0KK+OBiuOBrOOBvizjgYvjgZrjgbLjgo0NCivjgYrjgZfjgb4s44Go44GX44Gy44GnDQor44GK44GX44G+LOOBsuOCjeOChuOBjQ0KK+OBiuOBnyzjgZHjgYTjgZMNCivjgYrjgZ8s44GX44GS44GNDQor44GK44GfLOOBk+OBhuOBhOOBoQ0KK+OBiuOBn+OBiyzjgb7jgarjgbYNCivjgYrjgZ/jgZEs44G+44GV44Gy44GTDQor44GK44Gf44GRLOOBmOOCheOCkw0KK+OBiuOBn+OBqyzjga7jgbbjgobjgY0NCivjgYrjgaTjgbws44Go44KC44Gy44GTDQor44GK44Gk44GLLOOBqOOCguOBsuOBlQ0KK+OBiuOBpOOBiyzjgabjgaTjgZcNCivjgYrjgaTjgY0s44Gy44Gn44G/DQor44GV44GT44GgLOOBsuOCjeOBguOBjQ0KK+OBiuOCjyzjgYvjgZrjgYLjgY0NCivjgYrjgbLjgoMs44G/44Gk44KLDQor44GK44GE44GL44KPLOOBvuOBleOBsuOBpw0KK+OBiuOBi+OBuSzjgZXjgarjgYgNCivjgZPjgbDjgoTjgZcs44GY44KF44KT44GTDQor44GK44GL44GgLOOBvuOBleOBig0KK+OBiuOBi+OBoCzjgZ/jgYvjgobjgY0NCivjgYrjgYvjgaAs44G+44GV44GXDQor44GK44GL44KC44GoLOOBvuOBleOChuOBjQ0KK+OBiuOBi+OCguOBqCzjgoLjgajjgYQNCivjgoHjgoks44GL44GK44KLDQor44GK44GL44GuLOOBqOOBl+OBguOBjQ0KK+OBiuOBi+OBluOBjSzjgZXjgYjjgZMNCivjgYrjgY3jgZ8s44Gy44Gn44G144G/DQor44GK44GP44GgLOOBj+OBq+OBig0KK+OBiuOBj+OBrOOBjSzjgYLjgaTjgobjgY0NCivjgYrjgpPjgaAs44Gm44Gk44GKDQor44GK44KT44GgLOOBqOOBl+OBsuOBkw0KK+OBhuOBpOOBvyzjgYTjgZrjgb8NCivjgYrjga4s44GX44KF44Gy44GhDQor44GK44GuLOOBleOBqOOBlw0KK+OBi+OCj+OCguOBqCzjgZjjgoXjgpPjgZvjgYQNCivjgYvjgaks44G+44GV44GNDQor44GK44GX44G+LOOBvuOBquOBtg0KK+OBiuOBmeOBvyzjgZ0NCivjgYrjgZ8s44KE44GZ44G/44GkDQor44GK44KK44GELOOBpuOBpOOBmA0KK+OBiuOCiuOBnyzjgabjgaTjgoQNCivjgYrjgZXjgYss44Gy44Gn44GC44GNDQor44GK44Gd44Gu44GELOOBsuOBp+OBruOBtg0KK+OBiuOBluOBlSzjgbLjgo3jgobjgY0NCivjgYrjgZbjgo8s44GL44Ga44Gu44KKDQor44GK44GW44KPLOOBi+OBmuOChuOBjQ0KK+OBiuOBluOCjyzjgZXjgajjgZMNCivjgZfjgonjgajjgoos44GI44GE44GE44Gh44KN44GGDQor44GK44Ge44GtLOOBvuOBleOBi+OBmg0KK+OBleOBrizjgaHjgZrjgZMNCivjgZXjgYTjgajjgYYs44Gy44KJ44Gf44GLDQor44GV44GE44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgZ/jgYvjgZcNCivjgZXjgYTjgajjgYYs44KG44GN44Gy44KNDQor44GV44GE44Go44GGLOOBsuOBp+OChuOBjQ0KK+OBleOBi+OBhCzjgY/jgavjgbLjgo0NCivjgZXjgYvjgYQs44GX44KNDQor44GV44GL44GELOOBguOBjeOCiQ0KK+OBleOBi+OBjeOBsOOCiSzjgYvjgZrjgobjgY0NCivjgZXjgYvjgoLjgags44GX44KF44KT44GYDQor44GV44GL44KC44GoLOOBl+OCheOBsuOBoQ0KK+OBleOBi+OCguOBqCzjgajjgojjgbLjgacNCivjgZXjgYvjgoLjgags44KG44GN44GKDQor44GV44GL44KC44GoLOOChuOBjeOBruOBtg0KK+OBleOBi+OCgOOCiSzjgZ/jgaTjgZgNCivjgZXjgYvjga0s44Gq44GK44Gu44KKDQor44GV44GL44GfLOOChOOBmeOBsuOCjQ0KK+OBleOBi+OBnyzjgZjjgoXjgpMNCivjgYLjgY/jgZ/jgYzjgo8s44GC44GN44GKDQor44GV44GP44KJ44GELOOBsuOCjeOBsuOBlQ0KK+OBleOBj+OCieOBhCzjgb7jgZXjgb8NCivjgb7jgaTjgbDjgoks44Gq44GK44GNDQor44GV44GP44KJ44GELOOBv+OBiOOBkw0KK+OBleOBquOBjizjgZHjgYTjgZgNCivjgZXjga4s44Gh44GL44GTDQor44GK44GM44GNLOOBsuOCjeOBvw0KK+OBleOBleOBjSzjgZHjgpPjgZgNCivjgZXjgZXjgY0s44G+44GT44GoDQor44GV44GV44GNLOOBv+OBpOOBguOBjQ0KK+OBleOBleOBjSzjgozjgYTjgZMNCivjgZXjgZXjgY0s44KI44GX44GKDQor44GV44GV44GNLOOBqOOCguOBkw0KK+OBleOBn+OBkSzjgZjjgoXjgpPjgbrjgYQNCivjgZPjgaDjgb4s44GL44GK44KLDQor44GV44Go44GGLOOBkeOCk+OBmA0KK+OBleOBqOOBhizjgZPjgYbjgZgNCivjgZXjgajjgYYs44G+44GV44Gy44GTDQor44GV44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBleOBqOOBhizjgb7jgZXjgbLjgo0NCivjgZXjgajjgYYs44G+44GV44GoDQor44GV44Go44GGLOOCi+OCiuOBkw0KK+OBleOBqOOBhizjgorjgofjgZMNCivjgZXjgajjgYYs44GV44Go44KLDQor44GV44Go44GGLOOCiOOBl+OBjQ0KK+OBleOBqOOBhizjgobjgY3jgZMNCivjgZXjgYvjgYQs44Gh44Gy44KNDQor44GV44KP44GgLOOBteOBv+OBsuOCjQ0KK+OBm+OBjOOCjyzjgajjgYrjgosNCivjgZvjgYTjga4s44Gy44Gn44KG44GNDQor44Gb44GNLOOBhOOBj+OBteOBvw0KK+OBm+OBjeOBqSzjgarjgYzjgb7jgZUNCivjgZvjgY3jga4s44Go44KC44GTDQor44Gb44GKLOOBn+OBi+OChuOBjQ0KK+OBm+OCiuOBi+OCjyzjgb7jgZXjgbLjgo0NCivjgZfjgbDjgZXjgY0s44Go44GK44KLDQor44GX44GMLOOBteOBmOOBig0KK+OBl+OBkuOCiyzjgbLjgafjga/jgosNCivjgZfjgb7jgaAs44G+44KC44KLDQor44GX44G+44GgLOOBvuOChuOBvw0KK+OBl+OBvuOBoCzjgZfjgo0NCivjgZfjgb7jgaAs44GR44KT44GYDQor44GX44G+44KC44GoLOOBsuOBp+OBruOCig0KK+OBl+OBvuOCgOOCiSzjgZHjgYTjgYTjgaENCivjgZfjgb7jga4s44GC44GN44Gy44KNDQor44GX44G/44GaLOOBsuOBp+OBjQ0KK+OBl+OBv+OBmizjgZHjgpPjgZgNCivjgZfjgb/jgZos44GT44GG44Gf44KN44GGDQor44GX44G/44GaLOOBleOBqOOCiw0KK+OBl+OBv+OBmizjgZfjgofjgZgNCivjgZfjgb/jgZos44Gk44Go44KADQor44GX44G/44GaLOOBl+OCk+OBmA0KK+OBl+OCguOBoCzjga7jgorjgbLjgo0NCivjgZfjgoLjgYzjgY0s44Gf44GL44KG44GNDQor44GX44KC44Gv44GfLOOBiuOBleOCgA0KK+OBl+OCguOCgOOCiSzjgbLjgo3jga7jgooNCivjgZfjgoLjgYrjgYss44GL44Gq44G/DQor44GX44KA44KJLOOCiOOBl+OBkw0KK+OChOOBiOOBjOOBlyzjgYLjgaTjgZcNCivjgZfjga7jgZbjgY0s44G/44Gk44GIDQor44Gv44GO44KP44KJLOOBvuOBk+OBqA0KK+OBl+OBiuOBoCzjgYvjgYrjgosNCivjgZfjgYrjgZ8s44G/44Gk44KE44GZDQor44GX44GK44GW44KPLOOBn+OBpOOChA0KK+OBl+OCieOBhCzjgZ/jgYvjgZcNCivjgZfjgonjgYTjgZcs44Gf44GL44GC44GNDQor44GX44KH44GgLOOBqOOBl+OBsuOCjQ0KK+OBl+OChSzjgZ/jgaDjgZcNCivjgZ3jgoHjgoQs44Gk44Go44KADQor44GZ44GgLOOBk+OBhuOBmOOCjQ0KK+OBmeOBiCzjgZXjgajjgosNCivjgZnjgYjjgZ8s44G/44Ga44GNDQor44GX44G244GE44GhLOOBsuOCjeOChuOBjQ0KK+OBmeOBjOOBrizjgZHjgpPjgoQNCivjgZnjgYzjgo/jgoks44Gy44KN44KG44GNDQor44GZ44GO44GILOOBruOBtuOBsuOCjQ0KK+OBmeOBjuOBvuOBlSzjgajjgZfjgYLjgY0NCivjgZnjgY7jgoLjgoos44GX44KH44Gy44GhDQor44GZ44GO44KC44GoLOOBguOBpOOBkw0KK+OBmeOBjuOBleOBjSzjgYLjgaTjgZcNCivjgZnjgY7jgYbjgoks44Gy44Gn44GKDQor44GZ44GO44GG44KJLOOBvuOBleOBsuOBqA0KK+OBv+OBmuOBiuOBoSzjgbLjgZXjgojjgZcNCivjgZnjgY7jgoTjgb4s44GR44KT44GE44GhDQor44GZ44GO44KE44G+LOOBn+OBkeOBlw0KK+OBmeOBjuOChOOBvizjgajjgoLjgbLjgZUNCivjgZnjgY7jgoTjgb4s44GR44KT44GYDQor44GZ44G/LOOBqOOCguOBkw0KK+OBn+OBueOBhCzjgb7jgZXjgZcNCivjgZnjgarjgb8s44GP44G/44GTDQor44GZ44GV44KPLOOBsuOBp+OBig0KK+OBmeOBmuOBjSzjgbLjgafjgYoNCivjgZnjgZrjgY0s44Gy44Gn44KG44GNDQor44GZ44Ga44GNLOOBsuOCjeOChuOBjQ0KK+OBmeOBmuOBjSzjgbLjgZXjgZ/jgYsNCivjgZnjgZrjgY0s44GL44Gk44Go44GXDQor44GZ44Ga44GNLOOBkeOBhOOBnw0KK+OBmeOBmuOBjSzjga7jgbbjgobjgY0NCivjgZnjgZrjgY0s44Go44GK44KLDQor44GZ44Ga44GNLOOCiOOBhuOBkw0KK+OBmeOBmuOBjSzjgobjgY3jgYoNCivjgZnjgZrjgY0s44GY44KF44Gr44GhDQor44Gf44G5LOOBn+OBi+OBlw0KK+OBn+OBoeOBr+OCiSzjgb7jgZXjgoQNCivjgZ/jgZIs44G+44Gq44G2DQor44Gf44GQ44GhLOOBkeOCkw0KK+OBquOBi+OBnyzjgZ/jgZHjgZcNCivjgZ/jgZDjgaEs44G+44GV44KC44GoDQor44Gf44GY44G+LOOCiOOBl+OBruOCig0KK+OBn+OBmOOBvizjgbLjgo3jgZMNCivjgZ/jgYvjgaAs44GK44GV44KADQor44Gf44GL44GO44KPLOOBguOBjeOBkw0KK+OBn+OBi+OBr+OBlyzjgYjjgYTjgZgNCivjgZ/jgYvjga/jgZcs44Gy44Gn44KG44GNDQor44Gf44GL44Gv44GXLOOBsuOCjeOBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgYvjgarjgZMNCivjgZ/jgYvjgY/jgoks44GL44Gq44GTDQor44Gf44GL44GP44KJLOOBi+OBmuOCiOOBlw0KK+OBn+OBi+OBr+OBlyzjgZHjgpPjgZ8NCivjgZ/jgYvjga/jgZcs44GT44GG44GYDQor44Gf44GL44Gv44GXLOOBvuOBleOBruOCig0KK+OBn+OBi+OBr+OBlyzjgarjgorjgb7jgZUNCivjgZ/jgYvjga/jgZcs44KK44KF44Gy44Gh44KNDQor44Gf44GL44Gv44GXLOOBn+OBi+OBlw0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgY0NCivjgZ/jgYvjga/jgZcs44KP44Gf44KLDQor44Gf44GL44Gv44GXLOOCj+OBn+OCiw0KK+OBn+OBi+OBr+OBlyzjgZfjgpMNCivjgZ/jgYvjgY/jgoks44GC44GN44KJDQor44Gf44GL44G/44KELOOBvuOBk+OBqA0KK+OBn+OBi+OBleOBlCzjgZPjgYbjgYTjgaENCivjgZ/jgYvjgZXjgY0s44G/44Gk44Gy44KNDQor44Gf44GL44GbLOOBi+OBmuOCiOOBlw0KK+OBn+OBi+OBpOOBiyzjgbLjgo3jgoTjgZkNCivjgZ/jgYvjgoTjgarjgY4s44GL44Ga44Gu44KKDQor44Gf44GL44KE44Gq44GOLOOBv+OBpOOBqOOBlw0KK+OBn+OBkeOBoSzjgZPjgYbjgZgNCivjgZ/jgZHjgaAs44KE44GZ44G+44GVDQor44Gf44GR44GgLOOChOOBsuOCjQ0KK+OBn+OBkeOBjOOBvyzjgYLjgY3jgbXjgb8NCivjgZ/jgZHjgbLjgZUs44GK44GV44KADQor44Gf44GR44GELOOChuOBhuOBmA0KK+OBn+OBkeOBhCzjgbLjgo3jgobjgY0NCivjgZ/jgZHjgYvjgo8s44Gk44GL44GVDQor44Gf44GR44KA44KJLOOBl+OCk+OBhOOBoQ0KK+OBn+OBkeOBquOBiyzjgobjgYbjgZMNCivjgYTjgb7jgYQs44G+44GT44GoDQor44Gf44GR44GV44GTLOOBsuOBp+OBjQ0KK+OBn+OBkeOBl+OBvizjgaTjgajjgoANCivjgZ/jgZHjgYbjgaEs44Gf44G+44G/DQor44Gy44Gg44GLLOOBj+OBq+OBsuOBkw0KK+OBn+OBjeOCguOBqCzjgb7jgZXjgagNCivjgZ/jgY3jgZbjgo8s44G+44GV44Gy44GoDQor44Gf44G+44GELOOBl+OCk+OBhOOBoQ0KK+OBn+OCgOOCiSzjgZfjgZLjgosNCivjgZ/jgarjgbks44KE44GI44GN44GhDQor44Gf44Gq44G5LOOBsuOBp+OBguOBjQ0KK+OBn+OBquOBiyzjgbLjgo3jgZcNCivjgZ/jgarjgYss44GE44Gk44Gy44GoDQor44Gf44Gq44GLLOOBi+OBpOOBvw0KK+OBn+OBquOBiyzjgb7jgZPjgagNCivjgZ/jgarjgYss44Gu44G244GKDQor44Gf44Gq44GLLOOBn+OBoOOChuOBjQ0KK+OBn+OBquOBiyzjgZ/jgZHjgbLjgZMNCivjgZ/jgarjgYss44Go44GX44Gy44GnDQor44Gf44Gq44GLLOOBqOOBl+OBsuOCjQ0KK+OBn+OBquOBiyzjgojjgbLjgaENCivjgZ/jgarjgYss44KI44Gy44GhDQor44GV44GuLOOBi+OBpOOBl+OCjQ0KK+OBn+OBqyzjgbLjgo3jgajjgZcNCivjgZ/jgavjgoDjgoks44Go44GK44KLDQor44Gf44Gr44KE44G+LOOBv+OBqeOCig0KK+OBn+OBleOBiyzjgY3jgY/jgb8NCivjgYvjgajjgYYs44G+44GV44KLDQor44Gm44KJ44GgLOOBl+OCh+OBsuOBoQ0KK+OBpuOCieOBvuOBiCzjgYjjgYTjgZgNCivjgabjgonjgavjgZcs44KI44G444GEDQor44Gm44KJ44Gr44GXLOOBguOBjeOBqA0KK+OBpuOCieOBnuOBrizjgYTjgZXjgoANCivjgajjgbPjgZ8s44G/44Gp44KKDQor44GE44Ga44G/44GV44KPLOOCiOOBl+OBquOCig0KK+OBqOOBoCzjgoTjgZnjgZgNCivjgajjgZDjgaEs44Gf44GL44GXDQor44Go44G+44GkLOOBguOCiuOBsuOBqA0KK+OBguOBjeOCgOOCiSzjgZfjgpPjgZQNCivjgajjgY3jgZ/jgZEs44GX44KF44Gy44GhDQor44Go44GP44G+44GZLOOBsuOCjeOChuOBjQ0KK+OBqOOBj+OBn+OBkSzjgZ/jgYvjgZcNCivjgajjgb7jgY0s44Gy44KN44G144G/DQor44Go44G/44GELOOBiOOBhOOBhOOBoeOCjeOBhg0KK+OBqOOBv+OBnyzjgojjgZfjgbXjgb8NCivjgajjgb/jgoTjgb4s44Gg44GE44GZ44GRDQor44Go44KC44GgLOOChOOBmeOBvuOBlQ0KK+OBqOOCguOBquOBjCzjgYjjgYTjgZgNCivjgajjgZXjgYss44KI44GX44KG44GNDQor44Go44Gj44Go44KKLOOBvuOBjQ0KK+OBvuOBpOOBiizjga7jgbbjgobjgY0NCivjgajjgojjgaAs44Gy44KN44G/44GkDQor44Gk44G844GELOOBi+OBiuOCig0KK+OBi+OBqOOBhizjgb7jgZXjgb8NCivjgaTjgaHjgoQs44Gy44Gn44GNDQor44Gk44GgLOOBleOBqOOBlw0KK+OBpOOBmCzjgZ/jgZHjgZcNCivjgaTjgZgs44Go44KC44GC44GNDQor44Gk44GY44GuLOOBruOBtuOChuOBjQ0KK+OBpOOBi+OBk+OBlyzjgZ/jgZHjgZcNCivjgaTjgYvjgoLjgags44GC44GN44Gy44KNDQor44Gk44GL44GW44GNLOOBguOBjeOBsuOBkw0KK+OBpOOBjeOBguOBlyzjgYvjgZrjgoQNCivjgaTjgY3jgZbjgo8s44G+44GV44Gy44KNDQor44Gk44G/44GfLOOBjeOBv+OBig0KK+OBiOOCk+OBqSzjgb7jgZXjgagNCivjgaTjgags44GP44G/44GTDQor44Gk44KA44KJLOOBvuOBleOBruOCig0KK+OBpOOBreOBi+OCjyzjgarjgYrjgagNCivjgaTjgovjgYrjgYss44GC44GN44Gy44GTDQor44Gk44KL44GfLOOCiOOBl+OChuOBjQ0KK+OBpOOCi+OBnyzjgojjgZfjgobjgY0NCivjgaTjgovjgZ8s44GC44GN44KJDQor44Gk44Gk44G/LOOBqOOBl+OBsuOCjQ0KK+OBpOOBpOOBvyzjgYvjgZrjgZcNCivjgaTjgo/jgZMs44GX44KT44GUDQor44Gk44KE44G+LOOBvuOBleOBsuOBkw0KK+OBhuOBoeOBoCzjgojjgbLjgaENCivjgYbjgaHjgaAs44KI44GZ44GRDQor44GG44Gh44GgLOOBguOBjeOCiQ0KK+OBhuOBoeOChOOBvizjgZfjgZLjgbLjgo0NCivjgYbjgaHjgoTjgb4s44G144G/44Gy44KNDQor44GG44GpLOOBguOBjeOCiQ0KK+OBhuOBiOOBoCzjgZPjgYbjgZgNCivjgYbjgYjjgaAs44GI44GE44GE44GhDQor44G+44Gk44KA44KJLOOBn+OBoOOBsuOBkw0KK+OBhuOBiOOBoCzjgajjgZfjgbLjgo0NCivjgYbjgYjjgaAs44KI44GX44GKDQor44GG44GI44G+44GkLOOBneOBruOBmeOBkQ0KK+OBhuOBiOOBrizjgojjgZfjgbLjgZMNCivjgYbjgYjjga4s44Gu44KK44GTDQor44GE44GX44GgLOOCguOBqOOChuOBjQ0KK+OBhuOCgeOBoCzjgZ/jgaTjgobjgY0NCivjgYbjgoHjgYzjgY0s44GX44KF44KT44KEDQor44GG44GuLOOBi+OBpOOBvw0KK+OBhuOCieOBr+OBlyzjgobjgYsNCivjgZfjgb/jgZos44GN44KI44G144GVDQor44GI44GM44GX44KJLOOBl+OCh+OBkw0KK+OBmeOBiOOBi+OBrSzjgb7jgZXjgbLjgo0NCivjgYbjgaQs44Gb44Gk44GTDQor44GG44Gk44Gv44GXLOOBl+OCk+OBlA0KK+OBhuOBpOOBvyzjgbLjgafjgYoNCivjgo/jgaAs44GN44KI44G/DQor44KP44GgLOOBr+OCi+OBjQ0KK+OBjeOBn+OCj+OBjSzjgojjgZnjgZENCivjgo/jgZfjgZos44Gg44GE44GY44KNDQor44KP44Gf44G5LOOBguOBkeOBvw0KK+OCj+OBn+OBquOBuSzjgYLjgY3jgYoNCivjgo/jgZ/jgarjgbks44Gy44Gn44GKDQor44KP44Gf44Gq44G5LOOBsuOCjeOBvw0KK+OCj+OBn+OBquOBuSzjgZjjgoXjgpPjgZgNCivjgo/jgZ/jgarjgbks44GL44Ga44Gy44GTDQor44KP44Gf44Gq44G5LOOBk+OBm+OBhA0KK+OCj+OBn+OBquOBuSzjgY/jgavjgZMNCivjgo/jgZ/jgarjgbks44G+44KC44KLDQor44KP44Gf44Gq44G5LOOBvuOCiuOBkw0KK+OCj+OBn+OBquOBuSzjgZXjgajjgZcNCivjgo/jgZ/jgarjgbks44Gf44Gg44GXDQor44KP44Gf44Gq44G5LOOBpuOCi+OChuOBjQ0KK+OCj+OBn+OBquOBuSzjgajjgYrjgosNCivjgo/jgZ/jgarjgbks44Go44GX44Gy44KNDQor44KP44Gf44Gq44G5LOOBkeOBhOOBhOOBoQ0KK+OBiOOBr+OCiSzjgaTjga3jgbXjgb8NCivjgo/jgZ/jgarjgbks44Gf44Gk44G/DQor44KP44Gf44KJ44GELOOBm+OBhOOBjQ0KK+OChOOBiOOBjOOBlyzjga/jgovjgarjgYwNCivjgoTjga/jgY4s44G144G/44KIDQor44KE44G+44GgLOOBsuOCjeOBlw0KK+OChOOBvuOBoCzjgb7jgZXjgoQNCivjgoTjgb7jgaAs44GV44Go44G/DQor44GT44KT44GpLOOBl+OCk+OBhOOBoQ0KK+OChOOBvuOBoCzjgZ/jgYvjgZcNCivjgoTjgb7jgaAs44Gk44Go44KADQor44KE44G+44GgLOOCiOOBl+OBguOBjQ0KK+OChOOBvuOBoCzjgaTjga3jgYoNCivjgYjjga7jgoLjgags44G+44GV44KIDQor44GV44GE44Go44GGLOOBiOOBhOOBmA0KK+OChOOBvuOBkOOBoSzjgbLjgo3jgZMNCivjgbXjgZjjgZ8s44Gy44KN44KG44GNDQor44KE44G+44GQ44GhLOOBi+OBpOOBlw0KK+OChOOBvuOBkOOBoSzjgobjgYbjgZjjgo0NCivjgYjjgZbjgY0s44KE44GZ44GKDQor44KE44G+44GQ44GhLOOBguOBpOOBlw0KK+OChOOBvuOCguOBqCzjgbLjgafjgYLjgY0NCivjgoTjgb7jgoLjgags44GY44KNDQor44KE44G+44KC44GoLOOBiuOBleOCgA0KK+OChOOBvuOCguOBqCzjgZfjga7jgbYNCivjgoTjgb7jgoLjgags44GX44KF44Gy44GhDQor44KE44G+44KC44GoLOOBn+OBkeOBlw0KK+OChOOBvuOCguOBqCzjgojjgZgNCivjgoTjgb7jgoLjgags44Go44GX44KEDQor44KE44G+44Gq44GLLOOBguOBpOOBlw0KK+OChOOBvuOBrSzjgYrjgZXjgoANCivjgoTjgb7jga7jgY/jgaEs44G/44GNDQor44KE44G+44GV44GNLOOBguOBjeOBsuOCjQ0KK+OChOOBvuOBl+OBnyzjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44Gy44KN44KG44GNDQor44KE44G+44GX44GfLOOBjeOCk+OChA0KK+OChOOBvuOBl+OBnyzjgb7jgZXjgajjgZcNCivjgoTjgb7jgZfjgZ8s44GV44Go44GTDQor44GX44GV44GELOOChOOBmeOBsuOCjQ0KK+OChOOBvuOBl+OBnyzjgbLjgajjgZcNCivjgoTjgb7jgYbjgaEs44GV44Go44KLDQor44KE44G+44GG44GhLOOBleOBqOOBlw0KK+OChOOBvuOBluOBjSzjgajjgYrjgosNCivjgoTjgb7jgZbjgY0s44KE44GZ44GXDQor44KE44G+44GW44GNLOOBn+OBkeOBlw0KK+OChOOBquOBjuOCguOBqCzjgZPjgYbjgYTjgaENCivjgoTjga4s44GT44GNDQor44KE44GuLOOBqOOBl+OChuOBjQ0KK+OChOOBl+OCjSzjgb7jgZXjgosNCivjgoTjgZbjgo8s44Gy44KN44GXDQor44KI44GgLOOBv+OBoeOCiw0KK+OCiOOBjizjgZXjgajjgZcNCivjgojjgZPjgYQs44Gf44GL44GXDQor44KI44GT44KE44G+LOOBvuOBleOBi+OBmg0KK+OCiOOBreOBluOBjSzjgbLjgo3jgY0NCivjgojjgZfjgaAs44GR44GE44GE44Gh44KN44GGDQor44KI44GX44GgLOOBk+OBjQ0KK+OCiOOBl+OBoCzjgZfjgZLjgb8NCivjgojjgZfjgaAs44G+44GV44KG44GNDQor44GI44Gz44GqLOOBqOOBl+OBsuOCjQ0KK+OCiOOBl+OBoCzjgajjgZfjgobjgY0NCivjgojjgZfjgaAs44G+44GT44GoDQor44KI44GX44GE44GRLOOBsuOBp+OBig0KK+OCiOOBl+OCgOOCiSzjgZ/jgaDjgZcNCivjgojjgZfjgoDjgoks44KA44Gk44G/DQor44KI44GX44GuLOOBn+OBkeOBlw0KK+OCiOOBl+OBiizjgorjgofjgZgNCivjgojjgZfjgZ/jgZEs44Gy44KN44GNDQor44KG44GC44GVLOOChOOBmeOBlw0KK+OBiuOCj+OBoCzjgb7jgZPjgagNCivjgYjjgZDjgaEs44GX44KF44KT44GZ44GRDQor44GK44GW44KPLOOBteOBv+OChuOBjQ0KK+OBleOBqOOBhizjgZPjgYbjgZgNCivjgZfjgpPjgZ/jgass44GR44KT44GX44KHDQor44GZ44GO44Gf44GrLOOBteOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgZjjgoXjgpMNCivjgZ/jgY3jgZbjgo8s44KK44GI44GTDQor44G/44KI44GgLOOBi+OBmuOCiOOBlw0KK+OChOOBvuOBoCzjgZjjgoXjgpPjgZMNCivjgoTjga/jgY4s44Gb44GE44GE44GhDQor44GN44KELOOBn+OBoOOBlw0KK+OBv+OBm+OBjSzjgZ/jgaTjgYoNCivjgYjjga7jgoLjgags44KE44GZ44Gu44KKDQor44GV44GP44KJ44GgLOOBv+OBpOOChuOBjQ0KK+OBleOBleOBjSzjgZXjgajjgosNCivjgbDjgbAs44GX44KT44GE44GhDQor44GC44G8LOOBruOBvOOCiw0KK+OBguOBoOOBoSzjgZfjgZLjgojjgZcNCivjgYLjgYvjgZXjgYss44Gm44Gk44GYDQor44GC44G+44GV44GNLOOBl+OCh+OBmA0KK+OBguOBiuOBjSzjgZXjgajjgosNCivjgYLjgZzjgYzjgb8s44GL44Gk44KG44GNDQor44GI44Gp44GuLOOBv+OBpOOBguOBjQ0KK+OBqeOBhCzjgZ/jgZHjgb8NCivjgbXjgZjjgYQs44KI44GX44Gy44GTDQor44G144GY44GELOOBhOOBmuOBvw0KK+OBteOBmOOCguOBqCzjgarjgYrjgY0NCivjgbXjgZjjgoLjgags44GR44KT44GYDQor44G144GP44Gv44KJLOOBjeOCiOOBlw0KK+OBteOBj+OBiuOBiyzjgZXjgajjgZcNCivjgbXjgY/jgZfjgb4s44Gf44Gg44GXDQor44G144GV44KE44G+LOOBruOCiuOBi+OBmg0KK+OBlOOBqCzjgZHjgpPjgZ/jgo3jgYYNCivjga/jgb7jgbks44G+44GV44GNDQor44Gv44Gq44GgLOOBruOBtuOChuOBjQ0KK+OBr+OBl+OCguOBqCzjgZ/jgZHjgYoNCivjgbLjgbMs44GL44GK44KKDQor44Gy44KJ44Gk44GLLOOBk+OBuOOBhA0KK+OBhOOBi+OCiizjgb7jgZXjgbLjgo0NCivjgYTjgY/jgZ8s44Gy44Gn44GoDQor44GE44G+44GELOOBi+OCk+OBmA0KK+OBhOOBl+OBr+OCiSzjgZfjgZLjgYvjgZoNCivjgYTjgZ3jgaAs44G144G/44Gy44KNDQor44GE44Gd44GW44GNLOOBi+OBmuOBig0KK+OBmOOCk+OBkCzjgajjgoLjgbLjgagNCivjgZjjgofjgarjgYQs44GV44KG44KKDQor44GY44KH44Gr44GXLOOBsuOCjeOBjQ0KK+OBi+OBmOOBr+OCiSzjgZ/jgZHjgZcNCivjgYvjgb7jgZ8s44Gu44G244KG44GNDQor44GL44KB44GELOOBpuOBpOOChA0KK+OBi+OBv+OChOOBvizjgZHjgpPjgYTjgaENCivjgYvjgajjgYYs44GT44GG44GE44GhDQor44GL44Go44GGLOOCiOOBl+OBsuOCjQ0KK+OBiOOBvyzjgYjjgYTjgZgNCivjgYvjgo/jgoLjgoos44GR44GE44GZ44GRDQor44GN44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBjeOCgOOCiSzjgZXjgYvjgYgNCivjgY3jgZfjgbks44GL44Ga44KG44GNDQor44GN44GX44GL44KPLOOBn+OBi+OChuOBjQ0KK+OBjeOBn+OBjOOCjyzjgYLjgY3jgbLjgZMNCivjgY3jgZ/jgarjgYss44Gm44Gk44GXDQor44GT44Gw44KE44GXLOOChOOBmeOBsuOCjQ0KK+OBk+OBsOOChOOBlyzjgZPjgYbjgYTjgaENCivjgZPjgYTjgZEs44KI44GX44Gf44GLDQor44GT44GE44Ga44G/LOOCiOOBl+OBguOBjQ0KK+OBk+OBmOOBvizjgb/jga7jgosNCivjgZPjgavjgZcs44GK44GV44G/DQor44GT44KE44G+LOOCiOOBl+OBguOBjQ0KK+OBj+OBqeOBhizjgZ/jgaTjgoQNCivjgY/jgb7jgZXjgY0s44GC44GN44KJDQor44GP44KN44GgLOOBpuOBpOOChA0KK+OBj+OBleOBiyzjgZ/jgaTjgZgNCivjgYjjgpPjgaks44Go44GX44KG44GNDQor44G+44GI44GL44KPLOOBsuOBp+OBguOBjQ0KK+OBvuOCi+OBnyzjgb7jgoLjgosNCivjgb7jgaTjgZfjgZ8s44KI44GX44Gy44KNDQor44G/44GP44GrLOOBi+OBmuOBig0KK+OBiOOCk+OBqSzjgY/jgavjgbLjgZMNCivjgb/jga0s44GL44Ga44KI44GXDQor44G/44GG44KJLOOBl+OCk+OBhOOBoQ0KK+OBv+OBnuOBkOOBoSzjgoHjgZDjgb8NCivjgbvjgpPjgZjjgocs44G+44GV44KG44GNDQor44G/44Ga44GX44G+LOOBkuOCkw0KK+OBiOOBoCzjgajjgZ8NCivjgarjgYzjgYos44GL44Ga44KEDQor44Gq44GL44KA44KJLOOBn+OBi+OBsuOBlQ0KK+OBquOBi+OBq+OBlyzjgY3jgojjgYvjgZoNCivjgarjgYvjga4s44Gf44GP44KEDQor44Gq44GL44GKLOOBi+OBmuOChA0KK+OBreOCguOBqCzjgojjgZfjgYLjgY0NCivjgavjgZfjgYvjgo8s44Gy44KN44GL44GaDQor44Gr44GX44KP44GNLOOBl+OCk+OBlA0KK+OBruOBoCzjgZHjgpPjgZgNCivjga7jgZDjgaEs44G+44GV44Gy44KNDQor44GK44Gh44GC44GELOOBsuOBp+OBjQ0KK+OBiuOBr+OBlyzjgZfjgpPjgZQNCivjgYrjga4s44Go44G/44GKDQor44GI44G/LOOCiOOBl+OBruOCig0KK+OBiuOBj+OCgOOCiSzjgoTjgZnjgZ/jgYsNCivjgYrjgY/jga4s44GX44KF44Gy44GhDQor44GI44KT44GpLOOBl+OCh+OBmA0KK+OBiuOBiuOBq+OBlyzjgojjgZfjgYLjgY0NCivjgYrjgZbjgY0s44GX44GS44KLDQor44GV44GI44GNLOOBn+OBi+OBlw0KK+OBleOBjOOCjyzjgYLjgaTjgZcNCivjgZXjgY/jgb4s44Go44GK44KLDQor44GV44Go44GGLOOChuOBhuOBmA0KK+OBleOBqOOBhizjgojjgYbjgZMNCivjgZXjgo8s44GL44Gk44KEDQor44Gb44GM44KPLOOBvuOBleOChuOBjQ0KK+OBm+OBjSzjgZPjgYbjgZgNCivjgZvjgpPjgaAs44GR44KT44GE44GhDQor44GX44G244KELOOBn+OBi+OBkw0KK+OBl+OBv+OBmizjgb/jgajjgZcNCivjgZfjgpPjgafjgpMs44GT44GG44GYDQor44GX44GK44GfLOOChOOBmeOCiOOBlw0KK+OBl+OCheOBj+OBn+OBqyzjgZ/jgY/jgZgNCivjgZnjgoTjgb4s44Gy44Gn44GKDQor44GZ44Ga44KA44KJLOOBvuOBleOBsuOCjQ0KK+OBn+OBi+OBiuOBiyzjgbLjgafjgb/jgaQNCivjgZ/jgZHjgYbjgaEs44KI44GX44Gf44GgDQor44Gf44GR44GG44GhLOOBguOBjeOCiQ0KK+OBn+OBvuOBhCzjgY/jgavjga/jgosNCivjgZ/jgpMs44Gu44KK44KG44GNDQor44Gf44Gq44GLLOOBruOBvOOCiw0KK+OBiOOBqCzjgb7jgZXjgbsNCivjgZ/jgavjgbLjgoks44GX44GS44GC44GNDQor44Gf44Gr44KE44G+LOOBv+OBpOOBsuOCjQ0KK+OBn+OBiuOBiyzjgY3jgojjgZ/jgYsNCivjgZ/jgZfjgb4s44GT44GG44GYDQor44Gf44GW44KPLOOChuOBjeOBig0KK+OBqOOBjeOBnyzjgZHjgpPjgZgNCivjgajjgb/jgZ8s44GX44KF44Gy44GhDQor44Go44G/44GfLOOCiOOBl+OBr+OCiw0KK+OBqOOBv+OBnyzjgYLjgY3jgojjgZcNCivjgaTjgZjjgbks44Gy44Go44GXDQor44Gk44GY44GL44KPLOOBqOOBl+OBig0KK+OBiOOCk+OBqSzjgbLjgo3jgZMNCivjgb/jgoTjgZbjgY0s44GE44GV44GKDQor44KP44GgLOOCiOOBl+OChuOBjQ0KK+OCj+OBn+OBquOBuSzjgYvjgaTjga7jgooNCivjgoTjgb7jgaAs44GL44Ga44GXDQor44KE44G+44GgLOOBvuOBleOBsuOCjQ0KK+OChOOBvuOBoCzjgYvjgZrjgbLjgo0NCivjgoTjgb7jgZDjgaEs44GR44KT44GUDQor44KE44G+44KC44GoLOOBpuOCi+OBguOBjQ0KK+OChOOBvuOBiuOBiyzjgYvjgZrjgbLjgo0NCivjgoTjgb7jgZfjgZ8s44GN44GP44GKDQor44KE44G+44GX44GfLOOBl+OBkuOBjQ0KK+OChOOBvuOBnuOBiCzjgb7jgZXjgobjgY0NCivjgoTjgYos44G/44GN44GKDQor44KE44GZ44GgLOOBi+OBpOOCiOOBlw0KK+OCiOOBpOOBn+OBqyzjgZfjgZLjgY0NCivjgojjgZfjga/jgoks44GR44KT44GYDQor44KI44GT44GG44KJLOOBguOBjeOBig0KK+OBsuOCieOBmyzjgbLjgo3jgZMNCivjgb7jgaTjgYQs44GR44KT44GE44GhDQor44GT44Gw44KE44GXLOOBmOOCheOCk+OBkw0KK+OBmeOBmuOBjSzjgb7jgY3jgZMNCivjgYvjgajjgYYs44KI44GX44Gf44GLDQor44GP44Gr44Go44KCLOOBsuOCjeOBvw0KK+OBiOOCk+OBqSzjgarjgYrjgoQNCivjgYTjgajjgYYs44Gf44Gg44GXDQor44GK44GL44GW44GNLOOBleOChOOBiw0KK+OBsuOCjeOBr+OBlyzjga7jgorjgYoNCivjgZXjgYvjgY0s44Gf44GL44GTDQor44G/44GNLOOBi+OBpOOBruOCig0KK+OBj+OBvuOBjSzjga7jgbbjgYoNCivjgZ/jgoTjgb4s44GL44Ga44Gy44GVDQor44GK44KP44GNLOOBsuOCjeOBvuOBlQ0KK+OBv+OCh+OBqSzjgoTjgZnjga/jgosNCivjgYvjgajjgYYs44GV44Go44GXDQor44Gw44GwLOOCiOOBl+OBig0KK+OBi+OBreOBkyzjgbLjgafjgYoNCivjgZPjgZDjgows44G+44GV44GKDQor44Gf44GR44GgLOOBl+OBkuOBig0KK+OBhOOBoeOCgOOCiSzjgYTjgaHjgZ/jgo3jgYYNCivjgYTjgajjgYYs44GL44Ga44Gy44GVDQor44GG44GI44Gv44G+LOOBn+OBkeOBlw0KK+OBquOBi+OBhCzjgajjgZfjgY/jgasNCivjgZPjgbDjgoTjgZcs44Gu44G244KG44GNDQor44GX44G+44GgLOOBlA0KK+OCgeOBkOOCjSzjgZXjgajjgosNCivjgoTjgb7jgoQs44Gy44Gn44GKDQor44G144GY44GfLOOChOOBmeOBig0KK+OBvuOBqOOBsCzjgojjgYbjgZMNCivjgYTjgajjgYYs44Go44GN44GTDQor44Gq44GL44GELOOBvuOBleOBig0KK+OBiuOBi+OBoCzjgabjgaTjgYoNCivjga7jgoLjgags44GN44Gv44GhDQor44Gq44GM44GX44G+LOOBvuOBleOBqA0KK+OCiOOBreOBi+OCjyzjgbLjgo3jgojjgZcNCivjgo/jgZ/jgarjgbks44G/44GN44GKDQor44KA44KJ44G+44GkLOOBr+OCi+OBsuOBkw0KK+OBjeOBn+OBqyzjgbLjgo3jgYLjgY0NCivjgb/jgYvjgb8s44KI44GX44Gu44KKDQor44GC44Gg44GhLOOBvuOCguOCiw0KK+OBhOOBruOBhuOBiCzjga7jgbzjgosNCivjgYrjgYvjgaAs44G/44Gu44KLDQor44GL44KP44GX44G+LOOBk+OBhuOBmA0KK+OBm+OBjSzjgb7jgZXjgYoNCivjgZ/jgYvjga/jgZcs44G+44Gq44GKDQor44KP44Gf44Gq44G5LOOBl+OBkuOCiw0KK+OBj+OCiuOBr+OCiSzjgbLjgo3jgZcNCivjgo/jgZ/jgarjgbks44G/44Gk44GQDQor44G144GY44GL44GfLOOBoeOBsuOCjQ0KK+OCiOOBl+OBqCzjgoLjgajjgYvjgZoNCivjgYvjgo/jgZss44GX44Ga44GKDQor44Gf44Gq44GLLOOBvuOBleOBsuOBqA0KK+OBhOOBvuOBhCzjgajjgZfjgY0NCivjgZPjgoDjgo0s44KI44GYDQor44G+44GI44GgLOOBn+OCguOBpA0KK+OBk+OBhOOBkSzjgajjgYrjgosNCivjgo/jgZ/jgarjgbks44Go44KC44Gh44GLDQor44GT44KT44GpLOOChuOBsuOBoeOCjQ0KK+OBhOOBl+OBhCzjgbLjgo3jgZcNCivjgb/jgZfjgb4s44G/44Gk44GKDQor44GT44Gw44KE44GXLOOBvuOBleOBguOBjQ0KK+OChOOBvuOBl+OBnyzjgZ/jgYvjgYLjgY0NCivjgZ/jgarjgYss44Gm44Gk44GKDQor44KE44G+44GgLOOBguOBjeOCiQ0KK+OBi+OBv+OChCzjgojjgZfjgZgNCivjgoTjgb7jgoLjgags44G+44GV44KLDQor44GX44GK44GW44GNLOOBoeOBr+OCiw0KK+OBquOBi+OCgOOCiSzjgZHjgYTjgZnjgZENCivjgZ/jgZHjgoLjgags44G/44Gk44GKDQor44Gg44GR44KE44G+LOOBruOCiuOBig0KK+OBguOCieOBi+OCjyzjgYrjgZXjgoANCivjgojjgZPjgZ8s44G+44GT44GoDQor44Gq44GL44KA44KJLOOBkeOCk+OBmA0KK+OBguOCieOBi+OCjyzjgobjgY3jgajjgZcNCivjgYrjgb/jgaEs44GI44GE44GUDQor44G+44Gk44GNLOOBiuOBleOCgA0KK+OBj+OBl+OBs+OBjSzjgb/jgaHjgYLjgY0NCivjgavjgaPjgZ8s44Gy44GV44Go44GXDQor44Gk44G844GG44GhLOOBsuOBleOChA0KK+OBleOBhOOBqOOBhizjgZ/jgYvjgZcNCivjgZ/jgZHjgoDjgoks44KI44GX44GL44GaDQor44Gf44Gq44G5LOOBkeOCk+OBmA0KK+OBvuOBiOOBoCzjgorjgofjgZ4NCivjgZnjgYzjga/jgoks44G+44GV44Go44GXDQor44GL44Gt44GTLOOBv+OBoeOChOOBmQ0KK+OChOOBvuOBhuOBoSzjgorjgY3jgYoNCivjgYvjgb/jgZbjgo8s44Go44GK44KLDQor44GT44GMLOOBoeOBi+OBlw0KK+OBpOOCi+OBleOBjSzjgZXjgaHjgYoNCivjgbLjgYzjgZcs44Gy44KN44KG44GNDQor44GE44GX44GgLOOBnOOCk+OBmA0KK+OBquOBi+OBjOOCjyzjgb7jgZXjgobjgY0NCivjgabjgonjgZfjgb4s44GL44Ga44Gy44GTDQor44GN44Gf44KA44KJLOOBqOOBl+OBig0KK+OBr+OBo+OBqOOCiizjgb7jgZPjgagNCivjgZXjgZXjgY0s44GI44GE44GNDQor44G744GLLOOBmeOBkeOBsuOBpw0KK+OBruOCgOOCiSzjgabjgovjgbLjgZMNCivjga/jgoTjga4s44G/44GN44GKDQor44GC44KT44GW44GELOOBsuOCjeOChuOBjQ0KK+OBteOCi+OBrizjgajjgZfjgbLjgo0NCivjgavjgZfjgo/jgY0s44GL44Ga44GKDQor44Gv44Gb44GM44KPLOOCguOBqOOBj+OBqw0KK+OBhOOCj+OBnyzjgabjgaTjgYoNCivjgajjgaAs44GX44KH44GYDQor44Gq44GL44KA44KJLOOBvuOBleOBsuOBkw0KK+OBteOCi+OBhOOBlyzjgbLjgo3jgbXjgb8NCivjgarjgYvjgoDjgoks44Go44GP44Gy44KNDQor44Gq44GL44GM44KPLOOBmeOBquOBig0KK+OBquOBi+OBvizjgbXjgb/jgbLjgo0NCivjgZnjgYzjgo/jgoks44KE44GZ44Gy44KNDQor44G+44Gk44KC44GoLOOBr+OCi+OBig0KK+OBr+OBl+OCguOBqCzjgbLjgZXjga/jgosNCivjgarjgYvjgaQs44GX44KF44KT44GYDQor44GV44Go44GG44KKLOOBsuOBp+OBvw0KK+OBhOOBjeOBnyzjgojjgZfjgbLjgo0NCivjgoTjgb7jgaAs44GR44KT44Gf44KN44GGDQor44GN44GP44GhLOOBpuOCi+OBig0KK+OBmeOBqCzjgYvjgZrjgYoNCivjgZfjgbDjgZ8s44GX44KT44GE44GhDQor44Gq44GE44Go44GGLOOBjeOCiOOBsuOBpw0KK+OCguOCiizjgY/jgasNCivjgYTjgajjgYQs44G+44GV44GKDQor44GE44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBvuOBpOOBluOBjSzjgbLjgo3jgYLjgY0NCivjgYbjgYjjga4s44G+44GV44GoDQor44GL44Gf44GK44GLLOOBvuOBmeOBvw0KK+OBsOOCk+OBqSzjgbXjgZjjgYoNCivjgZXjgYTjgajjgYYs44Gy44Gn44GKDQor44GE44KP44GELOOBn+OBpOOChA0KK+OBl+OCguOChOOBvizjgb7jgZnjgZMNCivjgYLjgYvjgb7jgoss44Gk44Go44KADQor44GU44GoLOOCiOOBhuOBn+OCjeOBhg0KK+OBvuOBpOOBoCzjgoTjgZnjgYvjgZoNCivjga3jgYzjgb8s44GC44GN44KJDQor44KE44G+44GX44GfLOOChuOBjeOBruOBtg0KK+OCiOOBreOChOOBvizjgZfjgofjgbjjgaQNCivjgYTjgZfjgoTjgb4s44Gf44GR44GXDQor44GC44G544GL44KPLOOBvuOBleOBvw0KK+OBhOOBvuOCgOOCiSzjgbLjgZXjga7jgooNCivjgYTjgo/jgarjgYws44GT44GG44GYDQor44GG44GI44GgLOOBi+OBmuOBkw0KK+OBteOBmOOBi+OCjyzjgYLjgY3jgokNCivjgZ/jgoDjgoks44GR44KT44GYDQor44GL44GX44GELOOBvuOBleOBruOCig0KK+OCiOOBreOBoCzjgb/jgaTjga7jgooNCivjgojjgZPjgaQs44GN44KI44GL44GaDQor44GC44GV44GKLOOBn+OBpOOBig0KK+OBn+OBquOBiyzjgZjjgoXjgpPjgZgNCivjgZ/jgarjgYss44GX44GS44KLDQor44KE44GX44GNLOOBv+OBruOCiw0KK+OBi+OBhOOBjOOBhCzjgYrjgZXjgoANCivjgZ3jgYzjgbks44Gv44GY44KBDQor44G144KL44GL44KPLOOBmeOBmeOCgA0KK+OBi+OCj+OBhuOBoSzjgajjgZfjgYoNCivjgbXjgZjjgYQs44G+44GV44GK44G/DQor44GE44GR44Gu44KELOOCiuOCheOBuOOBhA0KK+OBiuOBoSzjgbLjgZXjgYoNCivjgarjgYvjgoLjgags44KM44GE44GYDQor44KP44GL44Gw44KE44GXLOOBl+OBkuOCiw0KK+OBguOCieOBjSzjgb/jga7jgosNCivjgoTjgbks44GP44Gr44Gy44GTDQor44Gf44GL44Gv44GXLOOChuOBjeOBig0KK+OBl+OBsOOBrizjgojjgZfjgbLjgZUNCivjgZ/jgYzjgZfjgoks44G+44GV44GoDQor44GZ44G/44GfLOOBvuOBleOBig0KK+OBleOBqOOBhizjgYLjgY3jgYoNCivjgaHjga4s44KG44GG44GYDQor44KE44G+44GgLOOBkeOBhOOBmA0KK+OBhOOBjOOCieOBlyzjgZ/jgaDjgb8NCivjgYTjgZHjgYzjgb8s44KE44GZ44KG44GNDQor44G144Gq44GgLOOBn+OBkeOBlw0KK+OBhOOBruOBhuOBiCzjgobjgY3jgYoNCivjgavjgZfjgoTjgb4s44GR44KT44GYDQor44GE44GX44Gv44KJLOOChuOBsuOBoQ0KK+OBmeOBmuOBjSzjga7jgorjgobjgY0NCivjgZPjgoLjgorjgoQs44Gf44Gk44GKDQor44Gh44KF44GULOOBruOCiuOBig0KK+OBk+OBsOOChOOBlyzjgarjgYrjga/jgosNCivjgb/jgoTjgoLjgags44Gv44KM44GKDQor44Gq44GL44GfLOOBteOBv+OBig0KK+OBhOOCiuOBn+OBqyzjgbLjgafjgYoNCivjgYrjgYzjgo8s44KE44GZ44Gy44KNDQor44GK44GtLOOBv+OBpOOBig0KK+OBk+OBvuOBpCzjgajjgZfjgYoNCivjgb/jga7jgo8s44Gm44Gk44KEDQor44G144GY44GL44KPLOOBk+OBhuOBmOOCjQ0KK+OBi+OCj+OBkOOBoSzjgZfjgZLjgagNCivjgaHjgbAs44KE44GZ44Gy44KNDQor44Gq44GL44Gr44GXLOOBruOCiuOCiOOBlw0KK+OBleOBj+OBvizjgZHjgpPjgYTjgaENCivjgZ/jgZHjgb7jgZUs44Gf44GL44KG44GNDQor44Gb44GNLOOBn+OBi+OCiOOBlw0KK+OBleOBhOOBqOOBhizjgbLjgo3jgZcNCivjgbXjgZjjgoLjgags44Go44GX44Gf44GLDQor44GK44GQ44KKLOOBn+OBhOOBoQ0KK+OBhOOBl+OBsOOBlyzjgYvjgZrjgYoNCivjgYLjgZbjgb8s44Gy44KN44GXDQor44GK44GM44GV44KP44KJLOOBiuOBleOCgA0KK+OBleOBhOOBqOOBhizjgaTjgajjgoANCivjgZ/jgarjgbks44Gf44GL44KG44GNDQor44KC44KK44KE44G+LOOBn+OBj+OBig0KK+OBjeOBn+OBluOCjyzjgobjgY3jgaENCivjgYvjgarjgZbjgo8s44GR44KT44GYDQor44Gv44KJ44GgLOOBvuOBleOBguOBjQ0KK+OBiuOBj+OChOOBvizjgbLjgo3jgZcNCivjgZfjgb/jgZos44Gq44GK44GoDQor44GE44Gu44G+44GfLOOChOOBmeOBsuOCjQ0KK+OBteOCi+OBleOCjyzjgajjgZfjgbLjgZMNCivjgZ/jgZHjgYbjgaEs44GV44Gg44GKDQor44GK44GuLOOBsuOBqOOBlw0KK+OCguOCjeOBiuOBiyzjgajjgZfjgobjgY0NCivjgZfjga7jgZbjgY0s44KI44Gy44GhDQor44Gu44GQ44GhLOOBteOBv+OBig0KK+OBl+OBvuOBoCzjgoTjgZnjgYoNCivjgYvjgo/jgZXjgY0s44Gf44Gk44GYDQor44GK44GL44KPLOOBjeOCiOOBlw0KK+OBleOCgeOBl+OBvizjgZfjgZLjgosNCivjgbvjgZ3jgZjjgb4s44Gq44GK44GE44GhDQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OBi+OCj+OBquOBvyzjgZHjgpPjgZgNCivjgY/jgZXjga4s44GX44KF44G444GEDQor44Gk44Gh44GfLOOBsuOBp+OBqOOBlw0KK+OBiuOBr+OBlyzjgYvjgaTjgYoNCivjga7jgaAs44G+44GV44GoDQor44KP44Gf44Gq44G5LOOBleOBqOOBlw0KK+OCiOOBl+OBn+OBkSzjgZvjgYTjgZgNCivjgbXjgY/jgZfjgb4s44KG44GN44GKDQor44GE44KP44KELOOBm+OBhOOBjQ0KK+OBleOBi+OCguOBqCzjgZfjgo0NCivjgY/jgbzjgZ8s44Gk44Go44KADQor44GE44Gd44KE44G+LOOBkeOCk+OBmA0KK+OBiuOBrizjgbXjgb/jgYLjgY0NCivjgYLjgbks44GX44GS44GC44GNDQor44GK44Gg44KP44KJLOOBk+OBhuOBmA0KK+OBjeOBhuOBoSzjgobjgZ/jgYsNCivjgYTjgZfjgYvjgo8s44G+44GT44GoDQor44KI44GX44GgLOOBvuOBleOBsuOCjQ0KK+OBoeOCg+OBsOOBn+OBkSzjgYvjgZrjgbLjgZMNCivjgZXjgYvjgYQs44Go44G/44GKDQor44GK44GfLOOBvuOBleOBguOBjQ0KK+OBquOBi+OBrizjgZHjgYTjgZXjgY8NCivjga/jgaAs44Go44KC44GC44GNDQor44Gq44GL44KE44G+LOOBk+OBhuOBmA0KK+OBleOBi+OBkOOBoSzjgb/jgY3jgYoNCivjgarjgYzjgZfjgb4s44Gy44GV44GKDQor44GV44GM44KJLOOChOOBmeOBsuOCjQ0KK+OBi+OCj+OBrizjgYLjgY3jgokNCivjgYvjga3jgZMs44Gf44GL44GKDQor44Gq44GL44GgLOOCguOBqOOBr+OCiw0KK+OBguOBvuOBrizjgZfjgofjgZgNCivjgoTjgZbjgY0s44GT44GG44GE44GhDQor44Gy44KJ44GO44GuLOOBv+OBpOOBguOBjQ0KK+OBn+OBsOOBnyzjgZ/jgaTjgYoNCivjgY/jgavjgobjgY0s44G/44Gh44GKDQor44GK44GP44GG44GhLOOBkeOCk+OBmA0KK+OBmeOBjuOCguOBqCzjgajjgZfjgbXjgb8NCivjgarjgYvjgoDjgoks44Gf44Gk44GKDQor44GZ44GO44GV44GNLOOBvuOBleOBteOBvw0KK+OChOOBvuOBl+OBnyzjgojjgZfjgYoNCivjga7jgoDjgoks44KI44GYDQor44GX44G+44GgLOOBvuOBleOBvw0KK+OBteOBj+OBoCzjgZ/jgYvjgZcNCivjgZXjgajjgYYs44GY44KF44KT44GYDQor44GK44GP44G844KKLOOBkeOCk+OBmA0KK+OCiOOBk+OBi+OCjyzjgoTjgZnjgYoNCivjgafjgpPjgaAs44Go44GX44Gy44KNDQor44G144GP44Gq44GMLOOBn+OBoOOCiOOBlw0KK+OBn+OBi+OBl+OBvizjgYTjgZXjgYoNCivjgYvjgajjgYYs44G/44Gk44KLDQor44GE44GX44GQ44KNLOOBn+OBi+OBlw0KK+OBhOOBkeOBuSzjgZfjgoXjgZgNCivjgYrjgaTjgYss44GL44Ga44GKDQor44GX44G/44GaLOOBhOOBoeOBig0KK+OBmeOBmuOBjSzjgoTjgZnjgbLjgo0NCivjgaTjgoQs44Gy44KN44Gu44KKDQor44GG44Gh44GgLOOBsuOBp+OBmA0KK+OBiuOBoSzjgorjgofjgZgNCivjgYLjgorjgYws44KP44Gf44KLDQor44Gq44GL44GX44G+LOOBn+OBi+OBpuOCiw0KK+OBvuOBleOBjSzjgYvjgZrjgb8NCivjgarjgYvjgZfjgb4s44G/44Gk44KLDQor44GC44GV44Gv44KJLOOBi+OBmuOBruOCig0KK+OBlOOBqCzjgbLjgafjgYoNCivjgYbjgYjjgb7jgaQs44Gy44KN44GXDQor44GV44GN44KC44KKLOOBvuOBleOBvw0KK+OCiOOBl+OBoCzjgY3jgojjgZcNCivjgbXjgZjjgZ8s44GZ44GZ44KADQor44KE44GO44GX44GfLOOBv+OBpOOBjg0KK+OCgOOCjeOBteOBlyzjgabjgaTjgYoNCivjgYvjgoHjgaAs44GC44GN44Gu44KKDQor44GE44GL44KPLOOBj+OBq+OChuOBjQ0KK+OChOOBvuOBluOBjSzjgZnjgZnjgoANCivjgaTjgovjga/jgZcs44KI44GX44Gu44KKDQor44G/44Gu44GX44G+LOOBn+OBi+OBig0KK+OBjeOBl+OCguOBqCzjgb7jgZPjgagNCivjgZ/jgZHjgZfjgZ8s44G+44GV44Gf44GLDQor44Gq44GL44GfLOOBkeOCk+OBhOOBoQ0KK+OBiOOCk+OBqSzjgZ/jgZHjgZcNCivjgoLjgorjgoQs44GL44Gk44GYDQor44GP44G844GfLOOBvuOBpOOBvw0KK+OBquOBiuOBr+OCiSzjgb7jgZXjgYoNCivjgY/jgZIs44G+44GV44KI44GXDQor44GL44GV44GuLOOBsuOBleOBig0KK+OBhOOBhOOCgOOCiSzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44KI44GX44GC44GNDQor44GK44GfLOOBpOOBqOOCgA0KK+OBn+OBkeOBkyzjgoTjgZnjgojjgZcNCivjgoDjgonjgZPjgZcs44Go44GX44GKDQor44KI44GX44GgLOOBvuOBleOBsuOCjQ0KK+OBguOBleOBrizjgYjjgYTjgYTjgaENCivjgojjgZfjgaAs44Gy44KN44Gf44GgDQor44Gv44KE44GXLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgb7jgZPjgagNCivjgYrjgaAs44Gu44KK44GKDQor44KE44G+44GG44GhLOOBvuOBk+OBqA0KK+OBi+OCj+OBi+OBvyzjgb7jgZXjgZcNCivjgYbjgZnjgaAs44GX44KT44GE44GhDQor44GV44Go44GGLOOBjeOCiOOBlw0KK+OBj+OCieOBl+OBvizjgZHjgYTjgoHjgYQNCivjgb7jgZss44GZ44G/44GKDQor44GT44GuLOOBsuOCjeOBlw0KK+OBvuOBpOOBluOCjyzjgZHjgpPjgZgNCivjgZfjgb7jgaAs44G+44GV44Gv44KLDQor44KE44G+44KC44GoLOOBn+OBi+OBlw0KK+OBiuOBj+OBvCzjgZHjgavjgaQNCivjgYrjgZDjgoks44G+44GV44KG44GNDQor44GV44GP44G+LOOBsuOCjeOBteOBvw0KK+OBruOBkOOBoSzjgajjgZfjgYoNCivjgbLjgarjgZ8s44GR44KT44GYDQor44G144GY44GELOOCiOOBl+OBguOBjQ0KK+OBmeOBjuOCguOBqCzjgb7jgZXjgajjgZcNCivjgaTjgYvjga/jgoks44Gm44Gk44KNDQor44G/44Gk44Gq44GMLOOBn+OBpOOChA0KK+OBquOBi+OCgOOCiSzjgorjgofjgbLjgaENCivjgoTjgZjjgb4s44GN44KI44GXDQor44GL44G/44GfLOOBpOOBreOBig0KK+OBsuOBjCzjgZPjgYbjgZgNCivjgb/jgarjgYzjgo8s44GX44KT44GE44GhDQor44Go44G/LOOBl+OCk+OBmA0KK+OBleOBi+OBjeOBsOOCiSzjga7jgbzjgosNCivjgYvjgY/jgZ8s44Gy44KN44GXDQor44Gk44Gh44KELOOBguOBjeOCiQ0KK+OCgOOCieOBnyzjgZfjgoXjgbLjgaENCivjgZ/jgarjgbks44KI44GX44Gu44KKDQor44GX44KC44GgLOOBkeOCk+OBmA0KK+OBpOOBi+OCguOBqCzjgYvjgZrjga7jgooNCivjga/jgarjga/jgZ8s44GI44GE44GYDQor44GL44KT44GgLOOBsuOCjeOBruOCig0KK+OBi+OCj+OBoCzjgZPjgYbjgYTjgaENCivjgojjgZfjgYQs44GX44KF44Gr44GhDQor44GP44KJ44KELOOBvuOBleOBlw0KK+OBpuOCieOBl+OBvizjgZTjgo0NCivjgY3jgZ/jgYzjgo8s44G+44GV44GC44GNDQor44GE44GnLOOBvuOBleOCiOOBlw0KK+OBpOOCiyzjgZ/jgZHjgZcNCivjgYbjgaTjga7jgb/jgoQs44GZ44GZ44KADQor44Gq44GL44GW44KPLOOBmOOCheOCk+OBjQ0KK+OBsuOBoCzjgojjgZfjgabjgosNCivjgbvjgZ3jgYvjgo8s44Gf44GL44GKDQor44Gh44GQ44GVLOOBsuOCjeOBlw0KK+OBneOBsuOCgyzjgYLjgY3jgbLjgo0NCivjgoTjgb7jgZDjgaEs44Gy44Gn44KG44GNDQor44GV44GL44GmLOOBkeOCkw0KK+OBguOCj+OBnyzjgYLjgY3jgokNCivjgo/jgYvjgbDjgoTjgZcs44KI44GX44Gu44KKDQor44GI44KT44GY44KF44GYLOOBj+OCieOBmA0KK+OBruOBkOOBoSzjgbLjgafjgYoNCivjgYvjgo/jgoDjgoks44GX44KT44GYDQor44KC44KK44KC44GoLOOChuOBjeOBig0KK+OCiOOBreOBr+OBqizjgaTjga3jgYoNCivjgZjjgaAs44GN44G444GEDQor44GG44GI44GgLOOBsuOBp+OChuOBjQ0KK+OBl+OBruOBr+OCiSzjgojjgZfjgYoNCivjgZ/jgYvjgoTjgb4s44Go44GX44Gy44KNDQor44KE44G+44KA44KNLOOBsuOBleOBig0KK+OCj+OBjSzjgajjgZfjgYvjgZoNCivjgYLjgb7jga4s44G+44GV44Gy44GoDQor44G744Gd44GL44KPLOOCiOOBl+OBruOBtg0KK+OBqOOBlCzjgbLjgafjgZgNCivjgarjgYss44Gb44GE44GYDQor44Gu44GgLOOBsuOCjeOBvw0KK+OChOOBvuOBl+OBnyzjgZPjgbjjgYQNCivjgarjgYvjgZjjgb4s44G144G/44GKDQor44Gq44GM44GK44GLLOOBl+OBkuOCiw0KK+OBl+OBtuOChCzjgYvjgZrjgbLjgZMNCivjgZvjgorjgZbjgo8s44G+44GT44GoDQor44G144GY44KC44KKLOOBk+OBhuOBhOOBoQ0KK+OBteOBj+OBoCzjgb7jgZXjgYoNCivjgbXjgZjjgZ8s44G/44GN44GKDQor44KE44G+44GYLOOBn+OBoOOBsuOCjQ0KK+OBk+OBsOOChOOBlyzjgYLjgY3jgYoNCivjgZPjgbDjgoTjgZcs44GR44KT44GYDQor44GX44GX44GP44KJLOOBhOOBleOCgA0KK+OBk+OBkOOCjCzjgb7jgZXjgYvjgZoNCivjgoLjgoos44G+44GV44Gu44G2DQor44Gq44GL44KA44KJLOOBmOOCheOCk+OBkw0KK+OBhOOBhOOBmOOBvizjgb7jgaTjgYoNCivjgY3jgZ/jgYzjgo8s44Go44GX44GKDQor44Gf44KA44KJLOOBsuOCjeOBsuOBlQ0KK+OBquOBjOOBl+OBvizjgajjgb/jgYoNCivjgYjjga7jgY0s44Gf44GL44Gu44KKDQor44GV44Go44GGLOOBoeOBiOOBkw0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgZcNCivjgYbjgYjjgaAs44GT44GG44GYDQor44G/44Ga44Gf44GrLOOCiOOBl+OBi+OBmg0KK+OBmOOCheOBrizjgZPjgZ4NCivjgYLjgYvjgZcs44Gb44GE44GYDQor44Gq44GL44KC44GoLOOBn+OBpOOBsuOCjQ0KK+OBquOBi+OChOOBvizjgZ/jgYvjgbLjgZUNCivjgbXjgZjjgYQs44Gy44Gn44GC44GNDQor44Gq44GL44KE44G+LOOBhOOBmuOBvw0KK+OCiOOBreOBv+OBpCzjgY3jgojjgZcNCivjgZ/jgYvjgZss44KI44GX44GC44GNDQor44KP44Gf44Gq44G5LOOBvuOBleOBr+OCiw0KK+OBteOBi+OBluOCjyzjgojjgbLjgaENCivjgYvjgZLjgYbjgoks44Gu44KK44Gf44GLDQor44GX44KT44GpLOOBruOCiuOChuOBjQ0KK+OBl+OBv+OBmizjgojjgZfjgabjgosNCivjgZXjgYvjgZfjgZ8s44Gf44Gg44KI44GXDQor44G/44KE44KA44KJLOOChOOBmeOBiA0KK+OBn+OBquOBiyzjgYTjgZrjgb8NCivjgZ/jgYvjgYTjgZcs44KI44GX44Gu44G2DQor44GE44GX44GM44GNLOOCiOOBl+OBig0KK+OBn+OBi+OBoCzjgbLjgo3jgYoNCivjgZ/jgabjgYTjgZcs44GC44GN44KJDQor44GV44GL44GfLOOBqOOBj+OCiOOBlw0KK+OCiOOBk+OBr+OBnyzjgZ/jgaTjgYoNCivjgY/jgoQs44GK44GV44KADQor44KI44GX44GgLOOBsuOCjeOBruOBtg0KK+OBjeOBn+OBoCzjgoTjgZnjgbLjgo0NCivjgojjgZfjgaAs44GX44KH44Gy44GhDQor44GT44Gw44KE44GXLOOBpuOBpOOBig0KK+OBquOCiuOBnyzjgajjgZfjgYoNCivjgYTjgazjgYQs44Gy44Go44GXDQor44KE44GZ44GL44KPLOOBqOOBl+OBruOBtg0KK+OBruOBkOOBoSzjgb7jgZXjgb8NCivjgZfjgofjgaAs44GL44Gk44GYDQor44KE44G+44GgLOOBn+OBpOOBvw0KK+OCj+OBj+OBoCzjgojjgZfjga4NCivjgYLjgbks44Go44GK44KLDQor44Gf44GR44GL44KPLOOBvuOBleOBqOOBlw0KK+OBleOBqOOBhizjgZnjgZnjgoANCivjga/jgarjgYrjgYss44GR44KT44GYDQor44GK44GuLOOCiOOBl+OBi+OBmg0KK+OBn+OBquOBiyzjgYvjgZrjgarjgYsNCivjgaTjga7jgaAs44Gy44Gn44GKDQor44Gq44G+44GILOOBqOOBl+OBsuOBkw0KK+OBn+OBi+OBr+OBlyzjgZ/jgoLjgaQNCivjgarjgYvjgZjjgb4s44G+44GV44Gy44GnDQor44Gq44GL44KA44KJLOOBr+OCi+OBig0KK+OBhuOCiuOBhizjgZfjgpPjgZjjgo0NCivjgbXjgZjjgYTjgo8s44GL44Ga44G/DQor44GV44GV44GNLOOBv+OBpOOCiOOBlw0KK+OBjeOCgOOCiSzjgb7jgZXjgojjgZcNCivjgZ/jgYvjgY4s44G144G/44GKDQor44GL44Gf44KE44G+LOOBmeOBquOBig0KK+OBhOOBkOOBoSzjgYTjgaHjgZ4NCivjgYLjgbks44Gm44KL44Gy44GVDQor44GZ44Ga44GNLOOBpOOBqOOCgA0KK+OBsuOCiSzjgZXjgaDjgbLjgo0NCivjgarjgZTjgZcs44Gf44GL44GKDQor44GC44Gg44GhLOOBsuOBp+OBjQ0KK+OCgOOCieOChOOBvizjgojjgZfjgYoNCivjgY/jgavjgYvjgZ8s44Gy44Gn44GKDQor44G+44Gk44GELOOBkeOCk+OBng0KK+OBk+OBhOOBpyzjgYLjgY3jgYoNCivjgbLjgo3jgZ8s44GR44KT44GYDQor44Go44G/44Gq44GLLOOBn+OBoOOBsuOBlQ0KK+OCj+OBjeOBnyzjgZfjgZLjgosNCivjgYbjgoHjgoDjgoks44GN44G/44GTDQor44G144GRLOOBr+OCi+OBn+OBkQ0KK+OBhuOBiOOBvuOBpCzjgbXjgb/jgbLjgZMNCivjgb7jgaTjgZbjgY0s44Gf44GL44GXDQor44Gq44GL44GuLOOChuOBn+OBiw0KK+OBk+OBoOOBiyzjgZfjgoXjgbLjgaENCivjgbLjgo3jgZ/jgass44Gy44KN44GoDQor44Gf44GL44Gv44GXLOOBiuOBleOCgA0KK+OBleOBrizjgabjgovjgYoNCivjgZfjgb/jgZos44Gf44GL44Gy44KNDQor44GL44KT44GW44GNLOOBi+OBmuOBsuOCjQ0KK+OBiuOBleOBjyzjgbLjgafjgYLjgY0NCivjgo/jgZfjgaAs44GR44KT44GYDQor44GP44Gr44KC44GoLOOBvuOCguOCiw0KK+OBl+OCjeOBi+OCjyzjgZnjgZnjgoANCivjgYvjgo/jga/jgoks44G+44GT44GoDQor44GK44GLLOOBv+OBpOOBig0KK+OBk+OCguOCiizjgbLjgo3jgoTjgZkNCivjga/jgoTjgZcs44KI44GX44GKDQor44GL44Gt44GTLOOBteOBmOOBig0KK+OBi+OBqeOBhOOBkSzjgZfjgofjgZgNCivjgYrjgYvjgoDjgoks44KI44Gy44GhDQor44GK44GL44KA44KNLOOBi+OBpOOBvw0KK+OBn+OBtuOBoSzjgoTjgZnjgbLjgo0NCivjgoTjgb7jgoLjgags44Gk44KC44KLDQor44GK44GVLOOBn+OBkeOBig0KK+OBhOOCiuOBiCzjgZHjgpPjgZgNCivjgZ/jgYvjga8s44GT44GG44GE44GhDQor44Gf44GE44KJLOOBmOOCheOBq+OBoeOCjQ0KK+OBv+OBquOBvyzjgojjgZfjgYvjgZoNCivjgYTjgZHjgaAs44Gm44KL44KI44GXDQor44GC44GK44GNLOOBi+OBmuOBig0KK+OChOOBvuOBhuOBoSzjgb7jgZXjgbLjgacNCivjgojjgZfjga/jgoks44KE44GZ44G+44GVDQor44GV44GV44GNLOOBvuOBk+OBqA0KK+OBv+OBmuOBn+OBqyzjgZHjgpPjgYTjgaENCivjgbLjgonjga4s44Gk44Gt44GL44GaDQor44Gq44GM44GfLOOCiOOBl+OBguOBjQ0KK+OBi+OBn+OChOOBvizjgZfjgZLjgYLjgY0NCivjgYrjgaAs44GE44GP44GKDQor44GI44Gu44KC44GoLOOBquOBiuOBv+OBoQ0KK+OBn+OBkeOBquOBiyzjgZjjgoXjgavjgaENCivjgb7jgaTjgZbjgY0s44GY44KF44Gr44Gh44KNDQor44G+44Gk44Gw44KJLOOBquOBiuOBkw0KK+OChOOBvuOBl+OBnyzjgYLjgY3jga7jgooNCivjgoHjgZDjgo0s44Gf44GL44GXDQor44GK44GW44GNLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBiuOBjOOBvyzjgYvjgZrjgbLjgZMNCivjgYrjgb7jgYgs44Gv44KL44GKDQor44GN44GgLOOChOOBmeOBvuOBlQ0KK+OBhuOBiOOBrizjgZfjgZLjgosNCivjgYrjgYvjgaAs44G144G/44GKDQor44GL44Gq44GV44GNLOOBmOOCh+OBmA0KK+OChOOBi+OBuSzjgb7jgZXjgbXjgb8NCivjgarjgoDjgoks44GC44GN44Gy44GoDQor44GE44GE44GY44G+LOOBqOOBl+OBhOOBoQ0KK+OBleOBleOBjSzjgYvjgaTjgobjgY0NCivjgoLjgaHjgZrjgY0s44GC44GN44KJDQor44G244KT44KELOOBkeOBhA0KK+OBiuOBi+OBrizjgorjgofjgZgNCivjgZ/jgZHjgYbjgaEs44KG44GG44GNDQor44GG44GI44GuLOOBleOBi+OBiA0KK+OBteOBmOOCguOBqCzjgbLjgo3jgZcNCivjgYvjgo/jgZDjgaEs44GT44GG44GYDQor44Gf44GN44KC44GoLOOBm+OBpOOBkw0KK+OBi+OBn+OBiuOBiyzjgbLjgo3jgojjgZcNCivjgY/jgZXjgYvjgo8s44Gy44Gn44KG44GNDQor44GC44GV44GELOOBk+OBhuOBhOOBoQ0KK+OCguOCiizjgZfjgpPjgYTjgaENCivjgY/jgbws44GL44KT44GYDQor44GC44KT44Gp44GGLOOBiuOBleOCgA0KK+OBhuOCieOChOOBvizjgYvjgaTjgobjgY0NCivjgY/jgorjgZ8s44Go44G/44GKDQor44GE44Gu44GG44GILOOBsuOCjeOChuOBjQ0KK+OBi+OBreOBi+OCjyzjgobjgb/jgZMNCivjgYbjgYjjgoLjgags44KC44Go44GC44GNDQor44Gq44GL44GKLOOBruOBtuOChuOBjQ0KK+OBiuOBi+OCguOBqCzjgojjgZfjga7jgbYNCivjgavjgZfjgoDjgoks44Go44GX44GKDQor44KE44GgLOOChOOBmeOBig0KK+OBjeOBqSzjgZXjgajjgZcNCivjgYrjgYvjgbDjgoTjgZcs44Go44GK44KLDQor44GL44KP44GX44G+LOOBsuOBp+OBqA0KK+OBr+OBl+OBjSzjgb/jgaTjga/jgosNCivjgb/jgoTjgoLjgags44G+44GV44Gu44KKDQor44Gq44GL44GKLOOBl+OBkuOCiw0KK+OBvuOBpOOBiuOBiyzjgarjgYrjgY0NCivjgbLjgbPjga4s44Gy44Go44GXDQor44Gr44GX44GL44KPLOOBiOOBhOOBhOOBoQ0KK+OBi+OBtuOBnyzjgojjgZfjgY/jgasNCivjgo/jgZ/jgarjgbks44GE44Gh44KN44GGDQor44KE44G+44GuLOOBiuOBleOCgA0KK+OBleOBhOOBqOOBhizjgojjgZfjgYoNCivjgZnjgZrjgY0s44Gf44GR44GXDQor44GP44KP44Gv44KJLOOBsuOBp+OBig0KK+OCguOCiuOBnyzjgorjgofjgZ4NCivjgbXjgZjjgYQs44GR44KT44GE44GhDQor44Gq44GM44GX44G+LOOBr+OCi+OBig0KK+OBhOOBquOCgOOCiSzjgY3jgojjgZcNCivjgYrjgZbjgo8s44GL44Ga44GK44G/DQor44Gf44GN44KC44GoLOOBiuOBleOCgA0KK+OBv+OChOOBl+OBnyzjgb/jgaTjgbLjgo0NCivjgoLjgYbjgoos44GY44KF44KT44GeDQor44GE44Gu44GG44GILOOBn+OBi+OBv+OBoQ0KK+OBquOBjOOBrizjgYTjgaHjgo3jgYYNCivjga/jgonjgags44Gf44GL44Gy44GTDQor44G+44G/44KELOOChuOBjeOBig0KK+OBsuOBjOOBl+OBsOOBnyzjgbLjgo3jgb8NCivjgavjgZfjgZ/jgass44GL44GK44KLDQor44Gf44GL44GPLOOBkeOCk+OBmA0KK+OBr+OBquOBoCzjgY3jgojjgZcNCivjgYLjgZXjga4s44GT44GG44GE44GhDQor44Gw44GwLOOBl+OBkuOBv+OBpA0KK+OBhOOBqOOBhizjgobjgYbjgZgNCivjgYTjgYTjgaAs44GV44Go44GXDQor44GT44Gv44KE44GL44KPLOOBqOOBl+OBsuOCjQ0KK+OBteOBmOOCj+OCiSzjgZnjgb/jgojjgZcNCivjgZfjgoXjgY/jgoos44Gk44Gt44KG44GNDQor44KG44Gf44GrLOOBvuOBleOBsuOCjQ0KK+OCgOOBreOBi+OCjyzjgbLjgajjgZcNCivjgYvjgpPjga4s44GP44Gr44GKDQor44Gr44GoLOOBsuOBleOBlw0KK+OBn+OCgOOCiSzjgb7jgZXjgobjgY0NCivjgarjgYvjgZfjgb4s44G/44Gk44GKDQor44GK44GfLOOCguOBqOOBguOBjQ0KK+OBhOOBruOBhuOBiCzjgojjgZfjgYoNCivjgY/jgb7jgb7jgoss44Go44GX44GL44GaDQor44Gf44Gq44GLLOOBsuOBp+OBig0KK+OBvuOBiOOBoCzjgZXjgajjgZcNCivjgYLjgb8s44Gu44G244KG44GNDQor44G/44Gq44GoLOOBv+OBruOCiw0KK+OBq+OBl+OBoCzjgb/jgaHjgYoNCivjgYTjgZfjga/jgoks44Gy44KN44GXDQor44Gq44GL44GX44G+LOOBl+OCk+OBjeOBoQ0KK+OBhOOBj+OBnyzjgZHjgpPjgZcNCivjgYrjgY0s44Gf44GR44Gy44GTDQor44GL44GM44KPLOOBi+OBpOOBvw0KK+OBsuOCieOBi+OCjyzjgoTjgZnjgbLjgZMNCivjgoTjgb7jgZbjgY0s44GR44KTDQor44GP44G+44GM44GELOOBhOOBj+OBkw0KK+OBn+OBl+OCjSzjgb7jgZXjgbLjgo0NCivjgZXjga4s44GL44Gk44G/DQor44G/44Gp44KK44GL44KPLOOCiOOBl+OBguOBjQ0KK+OBquOBi+OCgOOCiSzjgZXjgajjgZcNCivjgojjgZfjgb8s44Gh44GL44GTDQor44GE44Gq44G/LOOCiOOBl+OBkw0KK+OCj+OBn+OBquOBuSzjgZHjgpPjgZgNCivjgZPjgYws44GX44GS44KLDQor44GZ44GM44KP44KJLOOBvuOBleOBguOBjQ0KK+OBn+OBkeOBhuOBoSzjga7jgbbjgYoNCivjgYjjgaAs44GC44GN44KJDQor44GC44KT44Gp44GGLOOBi+OBmuOBig0KK+OBn+OCi+OBhCzjgZXjgbbjgo0NCivjgZTjgags44Go44GX44GKDQor44GX44KC44GM44GNLOOChOOBmeOBsuOBlQ0KK+OBquOBjOOBnyzjgZ/jgaDjgYoNCivjgbvjgZfjgYvjgo8s44GX44KF44Gy44Gh44KNDQor44GT44G/44Gq44G/LOOBqOOBl+OBig0KK+OBi+OBjCzjgajjgZfjga7jgooNCivjga/jgZzjgYvjgo8s44GT44GG44GY44KNDQor44Gh44GwLOOBv+OBpOOBl+OBkg0KK+OBhuOCieOBrizjgbLjgafjgb7jgZUNCivjgZPjga4s44G144G/44Gy44GTDQor44GT44Gw44KE44GXLOOBvuOBleOBruOCig0KK+OCguOCguOBmyzjgbLjgo3jgZMNCivjgaTjgZIs44Gy44Gn44GoDQor44KE44GZ44GT44GhLOOBjeOCiOOBlw0KK+OBu+OBneOBluOCjyzjgajjgoLjgbLjgacNCivjgZnjgY7jgoTjgb4s44KE44GZ44Gy44KNDQor44GC44G5LOOCiOOBsuOBoQ0KK+OBn+OBquOBiyzjgojjgZfjgo0NCivjgZvjgYTjgZEs44Gy44KN44GKDQor44Gk44GSLOOChuOBn+OBiw0KK+OCj+OBi+OBsOOChOOBlyzjgbLjgo3jgZcNCivjgYrjgY/jgbws44GX44GS44KLDQor44GK44GL44G5LOOChuOBjeOBig0KK+OBhOOCj+OBhCzjgZjjgoXjgavjgaENCivjgZ/jgarjgYss44G+44GV44GKDQor44KE44G+44KC44GoLOOCiA0KK+OBn+OBi+OChOOBvizjga7jgbbjgYoNCivjgZ/jgZjjgb4s44GX44Ga44GLDQor44GL44Ga44GX44KNLOOBleOBqOOBlw0KK+OBk+OBhOOBpyzjgajjgZfjgY0NCivjgYvjgoIs44GL44Ga44KI44GXDQor44GN44Gf44GY44G+LOOChuOBhuOBkw0KK+OBr+OBvuOBrizjgZjjgoXjgpPjgZgNCivjgYTjgYTjgoTjgb4s44KE44GZ44Gf44GLDQor44KE44G+44GX44GfLOOBl+OCh+OBsuOBoQ0KK+OBjeOBnyzjgYvjgaTjgobjgY0NCivjgYTjgZfjgZ/jgass44Gf44GR44KG44GNDQor44GP44GY44KBLOOBruOBtuOChuOBjQ0KK+OBjeOBl+OBi+OCjyzjgoTjgZnjgbLjgo0NCivjgarjgYzjga4s44G+44GV44Gu44G2DQor44KI44KA44KJLOOBguOBjeOBig0KK+OBquOBi+OBl+OBvizjgZ/jgYvjgYoNCivjgoLjgoos44G144G/44GKDQor44KE44G+44GYLOOBsuOBleOBig0KK+OBiuOBnOOBjSzjgabjgovjgobjgY0NCivjgYTjgarjgaAs44G/44Gk44GKDQor44Gv44KE44GbLOOBquOBiuOBjQ0KK+OBu+OCk+OBvSzjgbLjgafjga7jgooNCivjgYrjgbLjgoMs44G+44GV44Gv44KLDQor44GN44Gf44KA44KJLOOBn+OBi+OBlw0KK+OBqOOBl+OCkyzjgZ/jgaTjga7jgooNCivjgZ/jgZHjgYQs44KI44GX44KG44GNDQor44GK44GL44KE44G+LOOBl+OBkuOCiw0KK+OBhOOBl+OBmuOBiyzjgajjgZfjgobjgY0NCivjga/jgZ8s44GX44KH44Gy44GhDQor44GZ44GM44Gv44KJLOOBl+OBkuOChuOBjQ0KK+OBhOOCj+OBvyzjgZXjgajjgZcNCivjgobjgoLjgags44GV44Gg44GKDQor44GN44Gf44GM44KPLOOBi+OBmuOBig0KK+OBhOOBr+OCiSzjgb7jgZXjgbLjgo0NCivjga7jgoDjgoks44Gf44Gg44Gu44KKDQor44G/44KE44GV44GLLOOBqOOBl+OChuOBjQ0KK+OCiOOBl+OBoCzjgYjjgYTjgZgNCivjgbXjgYvjgaAs44KI44GX44GL44GaDQor44G144GY44KP44KJLOOBvuOBleOBn+OBiw0KK+OBjeOBqCzjgoTjgZnjgZcNCivjgYbjgYjjgoLjgoos44Gf44GL44GXDQor44KE44G+44GL44KPLOOBmeOBmeOCgA0KK+OBj+OCjeOBoCzjgYvjgpPjgZgNCivjgYrjgaTjgYss44Gf44GL44GXDQor44GG44GI44GgLOOBleOBqOOBiuOCiw0KK+OBneOBrizjgoTjgZnjgbXjgb8NCivjgZjjgofjgaDjgYQs44Gu44G244GKDQor44GX44KT44GeLOOBk+OBhuOBn+OCjeOBhg0KK+OBhuOBiOOBoCzjgajjgZfjgYLjgY0NCivjgo/jgYvjgb/jgoQs44KG44GG44GYDQor44GL44KA44KJLOOChOOBmeOBig0KK+OBteOCi+OBn+OBqyzjgbLjgafjgYoNCivjgYvjgaTjgYbjgoks44KG44Gf44GLDQor44GP44G+44GELOOChuOBng0KK+OBsOOBsCzjgYTjgaHjgo3jgYYNCivjgYvjga3jgajjgoIs44GR44KT44GYDQor44KA44KJ44Gv44GXLOOBqOOCguOCiOOBlw0KK+OBqeOBhCzjgZ/jgYvjgZcNCivjgarjgb/jgYvjgo8s44GL44Ga44G/44GkDQor44Gf44GL44GK44GLLOOBqOOBl+OBguOBjQ0KK+OBvuOBpOOCguOBqCzjgYTjgZXjgYoNCivjgo/jgZ/jgarjgbks44G+44GV44G/DQor44Gf44GgLOOBv+OBoeOCjQ0KK+OBguOCiuOBvizjgbLjgo3jgZcNCivjgarjgYzjga4s44KG44GG44GYDQor44KE44GuLOOBv+OBjeOBig0KK+OBhOOBleOBiyzjgajjgoLjgb/jgaENCivjgYTjgajjgYYs44Gy44KN44GL44GaDQor44KE44G+44GW44GNLOOChuOBn+OBiw0KK+OBj+OBrizjgYvjgZrjgb8NCivjgZfjgbAs44G144G/44Gk44GQDQor44GN44KA44KJLOOBn+OBi+OBvuOBlQ0KK+OBmeOBv+OBoCzjgYvjgaTjgb8NCivjgoLjgajjgYzjgYTjgags44Gb44GE44GYDQor44Gr44KPLOOBr+OCi+OBpOOBkA0KK+OBn+OBkeOBhuOBoSzjgZ/jgaTjgb8NCivjgZ/jgoDjgoks44Go44GK44KLDQor44G844GfLOOBn+OBi+OBlw0KK+OBi+OBqeOChCzjgZfjgZLjga/jgosNCivjga/jgonjgaAs44GR44KT44GYDQor44G/44Gk44GE44GXLOOCiuOCheOBsuOBoeOCjQ0KK+OBhOOBruOBhuOBiCzjgojjgZ4NCivjgoDjgonjga/jgZcs44G+44GV44Gy44KNDQor44Gr44GX44GL44KPLOOCiOOBl+OBpuOCiw0KK+OBvuOBmeOBoCzjgajjgZfjga7jgooNCivjgYrjgZ8s44Gm44KL44KG44GNDQor44G144GP44GELOOChuOBjeOBsuOCjQ0KK+OBi+OBkuOChOOBvizjgajjgY/jgYTjgaENCivjgarjgYzjgaTjgYss44GZ44G/44GKDQor44GP44GV44GuLOOBi+OBmuOBig0KK+OBk+OBmOOBvizjgZHjgpPjgZgNCivjgY/jgonjgZ8s44GC44GN44KJDQor44Gf44GR44GG44GhLOOBi+OBmuOBig0KK+OBhOOBkeOBoCzjgbLjgo3jgYvjgZoNCivjgZ/jgYvjga4s44GX44GS44GTDQor44GP44KJ44KELOOChuOBhuOBmA0KK+OBiuOBrizjgYvjgZrjgojjgZcNCivjgarjgYvjgaAs44GR44GE44GZ44GRDQor44Go44GP44KC44GoLOOChuOBlA0KK+OBiuOBr+OBlyzjgojjgZfjga7jgbYNCivjgoTjgb7jgaAs44Gy44KN44GXDQor44Gv44KT44GgLOOBkeOBhOOBmeOBkQ0KK+OBhOOBl+OBr+OCiSzjgb7jgZPjgagNCivjgojjgZfjga/jgoks44GX44KT44GE44GhDQor44Gf44Gm44GE44GXLOOBk+OBhuOBmA0KK+OBhOOBqOOBhizjgY/jgavjgYoNCivjgZXjgajjgYYs44G+44GV44GKDQor44GK44GP44KJLOOBkeOCk+OBmA0KK+OBquOBi+OBmeOBmCzjgZ/jgaDjgobjgY0NCivjgZ/jgYTjgoks44GX44GS44GKDQor44GN44Gy44KJLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OBmOOBvizjgZ/jgaDjgZcNCivjgoTjgb7jgZbjgY0s44GR44KT44GE44Gh44KNDQor44Go44Gz44GfLOOBguOBpOOBig0KK+OBquOBi+OBluOCjyzjgobjgZ/jgYsNCivjgavjgZfjga/jgoks44GX44KT44GE44GhDQor44KB44GQ44KNLOOBpOOBqOOCgA0KK+OBvuOCi+OChOOBvizjgZjjgoXjgpPjgZ4NCivjgY3jgY/jgaEs44Gf44GL44GC44GNDQor44GC44GK44GNLOOBqOOBl+OBteOBvw0KK+OBjeOBo+OBn+OBiyzjgYLjgY3jgokNCivjgoTjgZnjgYQs44Gm44Gk44GKDQor44GE44Gh44G+44KLLOOBm+OBhOOBmA0KK+OChOOBvuOBluOBjSzjgZXjgajjgZcNCivjgZnjgYzjga/jgoks44Go44GX44Gy44GTDQor44Go44G/44Gq44GMLOOBl+OBteOBvw0KK+OBoeOBjuOCiizjgZ/jgYvjgYoNCivjgYrjgbAs44GX44KH44GY44KNDQor44G+44Gk44GELOOCiOOBsuOBoQ0KK+OBsuOCieOChOOBvizjgbLjgo3jgZcNCivjgoTjgb7jgoDjgoks44Gv44KL44Gy44GTDQor44GK44GnLOOBsuOBp+OBpOOBrQ0KK+OCiOOBl+OBquOBjCzjgajjgY3jgYoNCivjgZPjgZjjgb4s44GC44GN44KJDQor44Go44G/44Gq44GMLOOBr+OCi+OBig0KK+OBleOBjCzjgYvjgZrjgYoNCivjga/jgoks44GY44KF44KT44GYDQor44Go44G/44KI44GXLOOBk+OBng0KK+OCiOOBl+OBoCzjgbLjgZXjga7jgooNCivjgbLjgonjgbDjgoTjgZcs44KI44GX44G/DQor44G+44Gk44GpLOOBn+OBv+OBig0KK+OBhOOBvuOBteOBjyzjgobjgY3jgZMNCivjgY3jgojjgZss44KI44GX44GC44GNDQor44Gv44Gq44G244GVLOOBqOOBl+OChuOBjQ0KK+OBoeOBsCzjgZjjgoXjgavjgaENCivjgoTjgb7jgZbjgY0s44KI44GX44Gy44GTDQor44Gq44GL44Gv44KJLOOBiOOBhOOBmOOCjQ0KK+OBiuOBrizjgobjgorjgZMNCivjgYbjgYjjgb7jgaQs44G144GP44G/DQor44GC44GN44KE44G+LOOBvuOBleOBsuOCjQ0KK+OBqOOBn+OBqyzjgb/jgaTjga7jgbYNCivjgojjga3jgaAs44G+44GV44G/DQor44G144KL44GP44GVLOOBoeOBi+OBiA0KK+OBsuOCjeOChCzjgZ/jgZHjga7jgooNCivjgojjgZfjgaAs44Gh44GI44GTDQor44GL44Gt44GTLOOBpuOBpOOChA0KK+OBquOBjOOBnyzjgobjgYbjgZjjgo0NCivjgYTjgbks44Gf44GL44GXDQor44Gb44GN44GtLOOBneOBruOBiA0KK+OBiuOBi+OBoCzjgbLjgo3jgYvjgZoNCivjgYvjgarjgYQs44Gy44Gn44GKDQor44GV44Go44GGLOOChuOBlw0KK+OBleOBi+OBjeOBsOOCiSzjgZfjgpPjgoQNCivjgYTjgb7jgYQs44GZ44GZ44KADQor44Gy44KB44GYLOOBqOOBl+OBruOCig0KK+OBiuOBjuOBr+OCiSzjgorjgoXjgZgNCivjgZ/jgZHjgoDjgoks44GR44KT44GYDQor44Go44Gy44KD44G+LOOBk+OBuOOBhA0KK+OBjeOBn+OBr+OCiSzjgYvjgojjgZMNCivjgYrjgZXjgYss44G+44GV44GC44GNDQor44GK44GT44GhLOOCiOOBhOOBoQ0KK+OBn+OBi+OBiizjgb7jgZXjgbLjgo0NCivjgYbjgaks44GV44GL44GIDQor44GG44GuLOOBruOCiuOBsuOCjQ0KK+OBteOBmOOBjSzjgZfjgpPjgZXjgY8NCivjgZXjgajjgYYs44GX44GS44KLDQor44GE44Gd44GM44GELOOBvuOBleOBr+OCiw0KK+OBi+OCieOBleOBjSzjgZfjgpPjgZgNCivjgoTjgb7jgaAs44G+44GV44KG44GNDQor44KP44GgLOOBvuOBleOBr+OCiw0KK+OBl+OBsOOBnyzjgYvjgpPjgZvjgYQNCivjgZfjgYrjgZbjgY0s44Gy44Go44GXDQor44GX44GMLOOCiOOBl+OBig0KK+OBj+OCiuOBnyzjgb/jga/jgosNCivjga/jgZfjgoLjgags44GX44KT44GeDQor44KI44GX44KA44KJLOOBvuOBleOCiOOBlw0KK+OBv+OChOOBluOBjSzjgZ/jgYvjga7jgooNCivjgY3jgZ/jgYzjgo8s44Gf44GL44GXDQor44GK44Gg44GRLOOBn+OBi+OBsuOBlQ0KK+OBmeOBmuOBjSzjgYvjgaTjgbLjgZMNCivjgoTjgb7jgYTjgZcs44GL44Ga44G+44GVDQor44GK44Gc44GNLOOBruOCiuOBkw0KK+OBn+OBi+OBhCzjgajjgZfjgo0NCivjgYvjga3jgZMs44GN44KT44GUDQor44Gv44KJ44GgLOOBsuOCjeOBvw0KK+OBl+OBvuOBoCzjgajjgZfjgYoNCivjgoTjgarjgY4s44G+44GV44G/DQor44GZ44Ga44GNLOOCiOOBl+OBig0KK+OBn+OBi+OBr+OBlyzjgZ/jgoLjgaQNCivjgYrjgZDjgorjgoTjgb4s44GI44Gk44GKDQor44KP44Gf44Gq44G5LOOBqOOBl+OBig0KK+OChOOBvuOCgOOCiSzjgZ/jgaTjgYoNCivjgZ/jgYvjga/jgZcs44G/44Gk44Gu44G2DQor44GX44GK44GY44G+LOOBv+OBoeOBig0KK+OBpOOCi+OBiuOBiyzjgojjgZfjgo0NCivjgYTjgajjgYYs44Gf44GL44GXDQor44G+44Gk44GG44KJLOOBsuOCjeOBruOCig0KK+OChOOBvuOCguOBqCzjgY3jga/jgaHjgo0NCivjgY/jgb7jgb8s44Gh44GL44KJDQor44GR44KT44KI44GXLOOBguOBjeOCiQ0KK+OChOOBvuOBi+OBkizjgY3jgojjgYLjgY0NCivjgZTjgags44Gy44KN44GXDQor44Gf44GR44GG44GhLOOBleOBqOOBvw0KK+OBr+OChOOBlyzjgZHjgpPjgZgNCivjgYTjgZfjgbDjgZcs44Gy44Gn44KG44GNDQor44GE44GqLOOBkeOCk+OBleOBjw0KK+OBhOOBruOBhuOBiCzjgZ/jgZHjgYoNCivjgavjgZfjgYvjgo8s44Gf44GL44Gy44GoDQor44Gv44KT44GgLOOChOOBmeOBig0KK+OBn+OBpuOBsOOChOOBlyzjgajjgYrjgosNCivjgYrjgZfjgb4s44Gu44G244KG44GNDQor44GX44Gw44GfLOOBkeOCk+OBmA0KK+OBv+OBhuOCiSzjgZ/jgaDjgbLjgacNCivjgZPjgYvjgZQs44GL44GK44KLDQor44GE44GE44GgLOOBqOOBiuOCiw0KK+OBn+OBkeOBmeOBiCzjgajjgZfjgb/jgaENCivjgYTjgYzjgonjgZcs44Gb44GE44GNDQor44G+44GZ44KE44G+LOOBn+OBi+OBig0KK+OBleOBj+OChOOBvizjgobjgZ4NCivjgZXjgY/jgonjgYQs44Gf44GL44GXDQor44Gf44G+44KKLOOCiOOBl+OBguOBjQ0KK+OBhOOBvuOBq+OBlyzjgbLjgo3jgYoNCivjgYrjgYzjgo8s44G+44GV44Go44GXDQor44Gv44GO44KP44KJLOOBi+OBmuOChuOBjQ0KK+OBiuOBj+OBqyzjgajjgZfjgobjgY0NCivjgYTjgZHjgaAs44KK44KHDQor44G+44GI44GY44G+LOOBn+OBi+OChuOBjQ0KK+OBhOOCj+OBhCzjgbLjgafjgYoNCivjgoTjgb7jgaAs44GN44KI44GYDQor44GZ44GgLOOBi+OBmuOCiOOBlw0KK+OBqOOBjeOCjyzjgY/jgavjgbLjgZMNCivjga/jgoTjgZcs44Gv44KL44GNDQor44Gf44GR44KC44GoLOOBguOBpOOBlw0KK+OBi+OCk+OBsOOChOOBlyzjgYvjgZrjga7jgooNCivjgajjgZbjgo8s44KG44Gf44GLDQor44Gf44Gm44GuLOOBi+OBmuOBvw0KK+OBi+OCk+OBuSzjgabjgaTjgoQNCivjgYrjgY/jgaAs44KI44GX44GKDQor44Gf44KC44GoLOOBi+OBmuOBig0KK+OBquOBjOOBhCzjgZHjgpMNCivjgYrjgZbjgo8s44G+44GV44GKDQor44GV44Go44GGLOOBv+OBruOCiw0KK+OBk+OCk+OBqSzjgb7jgZXjgbLjgagNCivjga3jgY7jgZcs44GN44KI44GXDQor44Gf44Gq44GLLOOBsuOBp+OBsuOBkw0KK+OBk+OCgOOCjSzjgZvjgYTjgYTjgaENCivjgojjgZfjgaAs44GC44GN44KJDQor44GE44GE44GY44G+LOOBi+OBpOOBvw0KK+OBq+OBhOOBu+OCiizjgb7jgZXjgY0NCivjgZPjgoLjgorjgoQs44G+44GV44GoDQor44GX44KT44GpLOOBiuOBleOCgA0KK+OChOOBrizjgobjgbLjgaENCivjgZ/jgarjgYss44GL44Ga44GKDQor44Gv44GO44Gf44GrLOOBvuOBleOBig0KK+OBk+OBmeOBjizjgaTjgajjgoANCivjgYTjgbks44GX44KT44GUDQor44GL44Gq44GW44KPLOOBkeOBhOOBkw0KK+OBn+OBoCzjgojjgZfjgagNCivjgarjgYzjgZ8s44Go44G/44GKDQor44GL44G+44GgLOOBruOBtuOBn+OBiw0KK+OBn+OBi+OBr+OBlyzjgZfjgpPjgYTjgaENCivjgYrjgYTjgacs44KE44GZ44Gq44KKDQor44Gf44GL44GP44KJLOOBguOBjeOBig0KK+OChOOBmeOBvuOBpCzjgZ/jgaDjgZcNCivjgb7jgoss44Gm44Gk44GKDQor44GP44G844GfLOOCiuOCh+OBsuOBoQ0KK+OBn+OBsOOBnyzjgajjgojjgbXjgb8NCivjgoLjgorjgZ8s44Gy44KN44G/DQor44GP44Gr44Go44KCLOOBi+OBmuOBig0KK+OBguOBleOBrOOBvizjgojjgZfjgZ/jgYsNCivjgbvjgZfjgaos44Gy44Gn44Ga44G/DQor44Gu44GW44KPLOOCiOOBsuOBoQ0KK+OBvuOBpOOCgOOCiSzjgb7jgZXjgajjgZcNCivjgbLjgonjgYvjgZ8s44KN44GP44KNDQor44Gy44KJ44G+LOOBoOOBhOOBjeOBoQ0KK+OBl+OBv+OBmizjga7jgorjgYoNCivjgojjgZPjgYvjgo8s44Gy44KN44GXDQor44GN44GP44GhLOOBn+OBoOOBsuOBlQ0KK+OBj+OCjeOBleOCjyzjgorjgoXjgZnjgZENCivjgZ/jgZHjgYbjgaEs44Gy44KN44GXDQor44Gy44KJ44GMLOOCiOOBl+OBig0KK+OBleOBhOOBqOOBhizjgb7jgZPjgagNCivjgYbjgaHjgbzjgoos44Gy44KN44GXDQor44GE44Gq44KA44KJLOOBmeOBmeOCgA0KK+OBiuOBleOBoCzjgojjgZfjgbLjgZUNCivjgZnjgY7jgoTjgb4s44Gu44G844KLDQor44GE44G+44GaLOOBkeOBhOOBhOOBoQ0KK+OBhuOCieOBrizjga7jgorjgYoNCivjgoLjgaHjgZrjgY0s44Gk44Gt44GYDQor44GZ44GM44KPLOOBsuOCjeOBi+OBmg0KK+OBhOOBkeOBoCzjgoTjgZnjgYoNCivjgZ/jgarjgYss44Gv44KL44Gy44GVDQor44GV44GE44Go44GGLOOBl+OCk+OBhOOBoQ0KK+OBteOBmOOBnyzjgYvjgZrjgYoNCivjgb/jgoTjga0s44Gv44KL44GKDQor44GL44G+44GgLOOBn+OBi+OBlw0KK+OBreOBjuOBlyzjgo/jgZ/jgosNCivjgYrjgY/jgYzjgo8s44GC44Gk44GXDQor44Gv44KE44GXLOOBhOOBleOCgA0KK+OBsOOBsCzjgabjgaTjgYoNCivjgoTjgb7jgoLjgags44KI44GYDQor44GI44KT44GpLOOBruOCiuOBig0KK+OBneOCgeOChCzjgZPjgYbjgYTjgaENCivjgYLjgonjgYQs44KI44GX44Gv44KLDQor44GC44G5LOOBn+OBi+OBlw0KK+OBoeOBsCzjgZ/jgYvjgajjgZcNCivjgZ/jgYvjgoTjgb4s44KE44GZ44Gf44GgDQor44KE44G+44GNLOOBvuOBleOCiOOBlw0KK+OBn+OBkeOBhuOBoSzjgYvjgZrjgYoNCivjgZ/jgZHjgbks44GX44GS44KLDQor44GC44Gg44GhLOOBqOOBl+OBig0KK+OBn+OBi+OBl+OBvizjga/jgovjgYoNCivjgojjgZPjgoTjgb4s44Gf44Gk44GYDQor44GX44KJ44GE44GhLOOBqOOBl+OBv+OBoQ0KK+OBj+OBqeOBhizjgaTjgajjgoANCivjgZnjgZrjgY0s44G/44Gu44KLDQor44Gf44GL44GX44G+LOOCiOOBl+OBruOCig0KK+OChOOBvuOBjOOBnyzjgobjgY3jgYoNCivjgojjgZfjgaAs44Gy44GV44GXDQor44G/44KE44GL44KPLOOBruOBtuOBsuOBkw0KK+OBleOBleOBjSzjgaTjgajjgoANCivjgYTjgafjgYbjgoks44Gu44G844KLDQor44Gf44Gq44GLLOOBiuOBleOCgA0KK+OBhOOBqOOBhizjgojjgZfjgobjgY0NCivjgYrjgaQs44GC44GN44KJDQor44G144GI44GNLOOBn+OBpOOBig0KK+OBl+OCguOBteOBlSzjgb/jga7jgosNCivjgb/jgoTjgYvjgo8s44KG44GG44GYDQor44Gv44GX44KC44GoLOOBl+OBkuOBteOBlQ0KK+OChOOBvuOBnuOBiCzjgZ/jgYvjgYoNCivjgavjgYTjgY/jgoks44KI44GX44GC44GNDQor44KP44Gf44Gq44G5LOOBguOBjeOCiQ0KK+OCgOOCjeOBteOBlyzjga7jgorjgarjgYoNCivjgYvjgpPjgaAs44G+44GV44KLDQor44GP44Gp44GGLOOBl+OBkuOBig0KK+OBn+OBi+OBr+OCiSzjgY3jgojjgZcNCivjgYrjgYvjgaAs44Gf44GL44GXDQor44Gp44GELOOBv+OBruOCiw0KK+OBn+OBquOBuSzjgZ/jgY/jgYoNCivjgZPjgoDjgo0s44GR44KT44GYDQor44KC44KK44KE44G+LOOCgOOBpOOBvw0KK+OBguOCieOBvuOBjSzjgYvjgZrjgZMNCivjgZPjgZfjgbks44Gy44KN44GXDQor44GV44GuLOOBguOBpOOBsuOBkw0KK+OBiuOBi+OBoCzjgZ/jgZHjgZcNCivjgbXjgZjjgo/jgoks44Go44GX44GL44GaDQor44G+44Gk44GKLOOBguOBpOOBlw0KK+OBn+OBquOBiyzjgb7jgZXjgZ/jgYsNCivjgY3jga/jgoks44Gf44GL44GXDQor44Gr44GX44Gv44GfLOOBk+OBhuOBmA0KK+OBq+OBl+OCj+OBjSzjga7jgbbjgYoNCivjgYrjgYvjgZbjgY0s44Go44GX44Gu44KKDQor44G144GY44KP44KJLOOBi+OBqg0KK+OChOOBmeOBoCzjgYvjgaTjgb7jgZUNCivjgYrjgYss44GR44GE44GTDQor44G744Gd44GuLOOCj+OBn+OCiw0KK+OBguOBi+OBlyzjgZHjgYTjgZgNCivjgarjgYvjgYQs44GV44Go44KLDQor44KE44GZ44GgLOOBvuOCguOCiw0KK+OBpuOCieOCgOOCiSzjgZHjgpPjgYTjgaENCivjgY/jgbzjgZ8s44G144G/44GTDQor44GT44Gr44GXLOOBruOBtuOBig0KK+OBruOCgOOCiSzjgYvjgZrjgo0NCivjgYTjga7jgZss44Gu44G244Gy44KNDQor44KP44Gf44Gq44G5LOOCiOOBl+OBvuOBlQ0KK+OBq+OBl+OBiizjgY3jgofjgZMNCivjgoLjgb/jgY0s44GL44Ga44G/DQor44GZ44Gq44GgLOOBv+OBreOBig0KK+OBn+OBkeOBhuOBoSzjgarjgYrjgY0NCivjgYLjgY3jgZss44KGDQor44GX44GK44GfLOOCiOOBl+OBn+OBiw0KK+OBjeOBqSzjgbLjgo3jgYvjgZoNCivjgYTjgZfjgo/jgZ/jgoos44GK44GV44KADQor44GX44KJ44GM44G/LOOChuOBi+OBkw0KK+OBhuOBoeOBquOBjCzjgY3jgocNCivjgZ/jgarjgYss44GX44GS44GKDQor44GP44KN44GV44GNLOOBn+OBj+OBvg0KK+OBiuOBqOOBlyzjgZPjgYbjgYTjgaENCivjgZXjgajjgYYs44GN44GP44GYDQor44GZ44Ga44GNLOOBteOBv+OBn+OBiw0KK+OBsuOCjeOBnyzjgojjgZfjgobjgY0NCivjgoTjga7jgYvjgo8s44GX44GS44G/DQor44GV44GL44KC44GoLOOBguOBjeOCiQ0KK+OBk+OCgOOCjSzjgY/jgavjgZMNCivjgYTjgb7jgZ8s44KE44GZ44Gy44GTDQor44G744Gd44KELOOBi+OBmuOBsuOBlQ0KK+OBpuOCieOBleOBiyzjgZPjgZnjgZENCivjgbvjgpPjgb4s44Gy44KN44Gf44GLDQor44GL44GZ44GMLOOBleOBoeOBkw0KK+OBvuOBpOOBoOOBhOOCiSzjgbLjgo3jgZcNCivjgYvjgo/jgYvjgb8s44KI44GX44Gy44GTDQor44Gt44GU44KNLOOCiOOBl+OBguOBjQ0KK+OBteOBj+OBoCzjgajjgZfjgYoNCivjgZnjgZrjgY0s44Gf44GL44Gy44KNDQor44Go44G+44GkLOOBsuOBp+OChA0KK+OBhOOBrizjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZnjgZrjgY0s44Gm44Gk44GKDQor44GC44GV44GELOOChuOBsuOBoQ0KK+OBr+OCiSzjgb7jgZXjgYoNCivjgbvjgZcs44G+44GV44KG44GNDQor44Gq44KL44GL44KPLOOBleOBhOOBmA0KK+OBiuOBoCzjgZjjgoXjgavjgaENCivjgYrjgbDjgaos44G+44KC44KLDQor44Gf44Gr44GW44KPLOOBvuOBleOBqA0KK+OBteOBmOOBiuOBiyzjgojjgbLjgaENCivjgZTjgags44GL44Ga44Gf44GLDQor44GT44KM44Gq44GMLOOBvuOBleOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgYgNCivjgZ/jgYvjgoks44Gy44KN44GX44GSDQor44GK44GP44KPLOOBiOOBhOOBmA0KK+OBn+OBquOBiyzjgZfjgoXjgZgNCivjgZXjgajjgYYs44GX44KT44GYDQor44GX44G+44Gs44GNLOOBiOOBhOOBng0KK+OBneOBrSzjgbLjgo3jgZcNCivjgZ/jgarjgYss44KI44GX44GYDQor44G144GY44KA44KJLOOBn+OBpOOCjQ0KK+OBlOOBqCzjgZjjgoXjgpPjgZgNCivjga/jgZfjgoLjgags44GL44Ga44GKDQor44Gy44KL44G+LOOBn+OBi+OBruOCig0KK+OBu+OBl+OBsCzjgY/jgavjgYvjgaQNCivjgYvjgoHjgo/jgoos44GL44Ga44Gu44KKDQor44GK44GP44GELOOBn+OBi+OBguOBjQ0KK+OBsuOBleOCguOBqCzjgZfjgZLjgoTjgZkNCivjgZnjgZrjgY0s44G+44GV44Gy44KNDQor44Gy44KJ44GV44KPLOOBn+OBi+OBlw0KK+OBjeOBn+OBpyzjgZ/jgYvjgZgNCivjgbXjgY/jgaAs44Go44GX44GC44GNDQor44GX44GK44GW44GNLOOBoOOBhOOBmeOBkQ0KK+OCgOOBqCzjgb/jgaTjga/jgosNCivjgavjgZfjgYrjgYss44GN44KI44GXDQor44Gk44G844GuLOOBsuOBp+OBi+OBmg0KK+OBquOBpOOBhuOCgSzjga7jgorjgYoNCivjgZ/jgavjgYzjgY0s44GR44KTDQor44GK44GZ44GMLOOBsuOCjeOBlw0KK+OBhuOBoeOBoCzjgYvjgZrjgYoNCivjgYvjgajjgYYs44GT44GG44GYDQor44GV44GV44GNLOOBl+OCk+OBmA0KK+OBi+OBl+OBvizjgoTjgZnjgZ/jgYsNCivjgYLjgYvjgZXjgYss44GC44GN44KJDQor44GL44KP44GL44G/LOOBsuOBp+OCiA0KK+OBl+OBqSzjgbLjgo3jgb8NCivjgoTjgb7jgYbjgaEs44Gy44KN44GXDQor44GL44GuLOOBiuOBleOCgA0KK+OBr+OCiSzjgY3jgojjgZcNCivjgb7jgaTjgbDjgoks44KI44GX44Gf44GLDQor44Gm44KJ44GL44GpLOOBruOCiuOBguOBjQ0KK+OBl+OBiuOBnyzjgYvjgZrjgbLjgZUNCivjgYrjgYvjgaAs44GR44GE44GYDQor44GP44KN44GgLOOChuOBn+OBiw0KK+OCguOCiuOCguOBqCzjgZXjgbbjgo0NCivjgZvjgY0s44Gy44KN44Gy44GVDQor44GZ44Ga44GNLOOBqOOBl+OBvuOBlQ0KK+OBn+OBkeOBj+OBlSzjgbLjgo3jgYLjgY0NCivjgZ/jgYzjgZfjgoks44GL44Ga44GKDQor44GT44Gw44KE44GXLOOBsuOBp+OBig0KK+OBleOBiOOBjSzjgYjjgYTjgZgNCivjgZ/jgaTjgZbjgo8s44Gy44Gn44GKDQor44GV44GE44Go44GGLOOBruOCiuOBig0KK+OBteOCi+OBi+OCjyzjgYvjgZrjgYoNCivjgZ/jgoDjgoks44KI44Gy44GhDQor44Gk44KK44KELOOBn+OBpOOChA0KK+OBleOBi+OBkOOBoSzjgojjgZfjgbLjgacNCivjgbXjgY/jgZfjgb4s44KG44Gf44GLDQor44GK44GL44KPLOOBhOOBj+OBig0KK+OBteOBmOOBnyzjgZHjgpPjgZgNCivjgYvjgo/jgZDjgaEs44GL44Ga44Gy44KNDQor44Go44GN44GK44GLLOOCiOOBl+OBruOCig0KK+OBquOBi+OBrizjgbLjgajjgZcNCivjgYTjga7jgYbjgYgs44KK44KHDQor44GP44Gr44Go44GXLOOBteOBmOOBig0KK+OBleOBi+OBnyzjgbLjgo3jgZcNCivjgoLjgorjgYvjgo8s44GC44GN44KJDQor44Gu44GQ44GhLOOBsuOCjeOBlw0KK+OBj+OBvOOBnyzjga7jgbbjgYoNCivjgarjgYvjgYrjgYss44GK44GV44KADQor44Gu44G144GYLOOBkeOBhOOBmA0KK+OCguOBjOOCiizjgY3jgb/jgYLjgY0NCivjgb7jgYjjgZbjgY0s44Gy44Go44GXDQor44GK44Gk44GLLOOBjeOCiOOBlw0KK+OBv+OBmuOBnyzjgbXjgb/jgagNCivjgZnjgY7jgoTjgb4s44G+44Gh44GKDQor44GL44GM44KPLOOBteOBv+OBqOOBlw0KK+OBq+OBl+OBr+OCiSzjgojjgbLjgaENCivjgabjgZrjgYss44Gy44KN44GXDQor44GX44GK44G/LOOBl+OCheOCk+OBmeOBkQ0KK+OBiuOBr+OCiSzjgYvjgaTjga7jgooNCivjgYLjgZXjgY/jgoks44Gm44KL44GKDQor44GX44G+44GgLOOBqOOBv+OBig0KK+OBl+OBvuOBi+OCjyzjgb7jgZXjgobjgY0NCivjga/jgZfjgoLjgags44Gf44GP44KNDQor44GG44GaLOOBk+OBhuOBhOOBoQ0KK+OBn+OBi+OBj+OCjyzjgaTjga3jgYoNCivjgb/jgaHjgZ8s44Gy44KN44GXDQor44GG44GI44GgLOOCgOOBpOOBvw0KK+OBl+OBjCzjgZ/jgaTjgYoNCivjgYTjgZHjgb8s44GR44GE44GYDQor44KC44KKLOOBiOOBhOOBmA0KK+OBi+OBl+OCguOBqCzjgYTjgZXjgYoNCivjgYTjgZfjga/jgoks44GX44GS44KI44GXDQor44GL44Gt44GTLOOBkeOCk+OBruOBmeOBkQ0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgbLjgZUNCivjgoLjgajjgYQs44KI44GX44Gf44GLDQor44GT44Gf44GRLOOCiOOBl+OBteOBvw0KK+OBi+OBleOBhCzjgZfjgpPjgYTjgaENCivjgYvjgajjgYYs44G/44Gk44GKDQor44GT44GP44G8LOOBn+OBoOOBguOBjQ0KK+OCj+OBi+OChOOBvizjgYLjgY3jgbLjgo0NCivjgZXjgarjgaAs44Gm44Gk44KEDQor44GV44GL44GfLOOBmeOBmeOCgA0KK+OBruOCgOOCiSzjgbLjgajjgZcNCivjga/jgoTjgYvjgo8s44GX44Ga44GKDQor44G/44KE44GW44GNLOOBvuOBleOBruOBtg0KK+OBiuOBq+OBpOOBiyzjgZfjgoXjgavjgaENCivjgYTjgacs44GG44GE44KKDQor44Gq44GM44GV44GTLOOBn+OBi+OBpOOBkA0KK+OBhOOBqOOBhizjgb/jgaTjgZANCivjgYvjga3jgZ/jgZEs44G+44GV44GC44GNDQor44GP44G844GfLOOBvuOBmeOBvw0KK+OBguOCiuOBvizjgaHjgYjjgZMNCivjgo/jgYvjgYos44Gh44GI44GTDQor44GE44GX44GW44GLLOOBqOOBl+OBig0KK+OBiuOBnyzjgb7jgZXjgYoNCivjgZXjgYvjgoLjgags44G/44Gh44GKDQor44GK44G744KKLOOBmeOBiOOBkw0KK+OBl+OCk+OBn+OBqyzjga7jgorjgZMNCivjgYbjgaHjgoTjgb4s44GR44GE44GTDQor44Gy44KJ44GfLOOBl+OBkuOChA0KK+OBguOCiuOBnuOBrizjgb7jgZXjgbLjgZMNCivjgYTjgajjgYYs44Go44G/44KI44GXDQor44GC44GK44KE44GOLOOBv+OBpOOBig0KK+OBquOBi+OCgOOCiSzjgYvjgZrjgb8NCivjgYTjgYTjgaAs44GX44GS44GKDQor44Gq44GX44GNLOOBkeOCk+OBmA0KK+OCgOOCieOBmyzjgYrjgZXjgoANCivjgb7jgaTjgYos44Gf44GL44Gu44KKDQor44GV44Go44GGLOOBv+OBoeOBn+OBiw0KK+OBguOBleOBrOOBvizjgabjgovjgYLjgY0NCivjgbXjgZ/jgb8s44GN44KI44KG44GNDQor44G144Gq44GoLOOBkeOBhOOBkw0KK+OBteOBmOOBnyzjgbLjgo3jgZcNCivjgbXjgovjgYvjgo8s44Gf44GL44KG44GNDQor44G144Gq44Gv44GXLOOBnOOCk+OBr+OBoeOCjQ0KK+OBtuOBqCzjgZHjgYTjgZQNCivjgYvjga4s44KG44GN44GKDQor44GK44GN44GkLOOBqOOBl+OBguOBjQ0KK+OBn+OBi+OBjuOCjyzjgZ/jgYvjgZcNCivjgbvjgZfjga4s44G/44Gq44GTDQor44Gr44GX44GY44G+LOOBleOBqOOBkw0KK+OBi+OBvuOBnyzjgZ/jgYvjgZcNCivjgaTjgZjjgoLjgags44G+44GV44GC44GNDQor44Gv44Gq44GgLOOBleOBoOOBig0KK+OBsuOCjeOBmyzjgb/jgaHjgYoNCivjgavjgZfjgaAs44GL44GK44KLDQor44GG44GI44GNLOOBi+OBmuOBig0KK+OCiOOBl+OBrizjgZHjgYTjgZQNCivjgY3jgZ/jgoDjgoks44GX44KNDQor44GX44G/44GaLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBhOOBl+OBluOBjSzjgoTjgZnjgb7jgZUNCivjga/jgoTjgZcs44GP44Gr44G/DQor44GN44GP44GhLOOChuOBv+OBkw0KK+OBiuOBi+OBqSzjgZ/jgZHjgYoNCivjgZPjgoDjgoks44Gy44GV44KEDQor44Gv44GX44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OBpOOBiyzjgYvjgaTjgbLjgo0NCivjgYrjgbLjgZcs44Gy44KN44Gf44GLDQor44GP44KN44GgLOOBhOOBleOCgA0KK+OBquOBi+OBhCzjgaHjgYjjgZMNCivjgY3jgZ/jgZbjgo8s44GP44Gr44Gy44KNDQor44GN44GX44GgLOOBoeOBguOBjQ0KK+OBi+OBquOBvuOCiyzjgajjgZfjgYTjgaENCivjgYLjgonjgYQs44GX44KT44GYDQor44G144Gf44Gk44GOLOOBvuOBleOBig0KK+OBjeOBj+OBoSzjgbLjgajjgZcNCivjgYTjgYTjgaAs44Go44GX44GL44GaDQor44Gq44GL44GILOOBjeOCiOOBig0KK+OBsuOCieOBvuOBpCzjgZvjgYTjgYTjgaENCivjgavjgZfjgYrjgYss44G/44Gh44GTDQor44GV44Go44GGLOOBsuOBleOBlw0KK+OCguOCiizjgb/jgaTjga7jgbYNCivjgbvjgZfjga4s44Gy44Gn44G144G/DQor44KE44G+44GQ44GhLOOBpOOBkOOBig0KK+OBhuOBmeOBhCzjgZfjgZLjgosNCivjgb7jgaTjgbDjgoks44Gk44Go44KADQor44GC44KK44GV44GLLOOBn+OBkeOBlw0KK+OBq+OBl+OBiizjgb7jgZnjgojjgZcNCivjgY3jgaAs44G+44GV44KI44GXDQor44KE44GuLOOBvuOBleOBvw0KK+OBi+OBqOOBhizjga7jgorjgYLjgY0NCivjgo/jgZ/jgarjgbks44GX44GS44KLDQor44Gv44KE44GXLOOBvuOBk+OBqA0KK+OCj+OBn+OBuSzjgZfjgZrjgYoNCivjgo/jgZ/jgarjgbks44Gv44KL44GKDQor44KG44GQ44GhLOOBqOOBl+OBig0KK+OChOOBvuOCguOBqCzjgoTjgZnjgZcNCivjgZXjgYTjgajjgYYs44GC44GN44GKDQor44GL44GE44GaLOOBv+OBruOCiw0KK+OBu+OBl+OBrizjgZjjgoXjgpPjgZ4NCivjgZfjga7jga/jgoks44GR44GE44GNDQor44GK44Gs44G+LOOBr+OCi+OBig0KK+OBv+OCjyzjgYTjgZXjgYoNCivjgbvjgorjgoDjgY0s44Gu44G244Gy44KNDQor44GE44GX44Gf44GmLOOCiOOBsuOBoQ0KK+OBv+OBteOBrSzjgYjjgYTjgYTjgaENCivjgoLjgb/jgY0s44G+44GV44GNDQor44Gv44Gb44GM44KPLOOBiOOBhOOBmA0KK+OBmeOBjuOChOOBvizjgabjgaTjgYoNCivjgaTjgY/jgaAs44KG44Gy44GhDQor44GC44Gg44GhLOOBkeOCk+OBnw0KK+OBp+OBluOCjyzjgaHjgbLjgo0NCivjgYrjgZ8s44KE44GZ44GKDQor44GV44Go44GGLOOCiOOBsuOBoQ0KK+OBm+OBjeOBkOOBoSzjgb7jgZXjgYoNCivjgZPjgY/jgbbjgpMs44Gy44KN44GTDQor44G744GX44GqLOOBsuOBleOBlw0KK+OBhuOCieOBrizjgbXjgb/jgYoNCivjgZ/jgZHjgoDjgoks44GR44KT44GE44GhDQor44Go44GP44Gq44GMLOOBsuOBp+OBig0KK+OBj+OCiuOBr+OCiSzjga7jgbbjgbLjgo0NCivjgYrjgY/jgoDjgoks44G+44KC44KLDQor44GV44GE44Go44GGLOOBn+OBkeOBlw0KK+OBvuOBpOOBl+OBnyzjgojjgZfjgb4NCivjgZ/jgZHjgaAs44GX44KT44GE44Gh44KN44GGDQor44Gr44GX44GNLOOBjeOCiOOBlw0KK+OBhuOCgeOBoCzjgb7jgZPjgagNCivjgbvjgpPjgaAs44Gm44KL44GKDQor44GL44KCLOOBl+OCheOCk+OBmA0KK+OBhuOBl+OBoCzjgZ/jgaDjgZcNCivjgZXjgYTjgajjgYYs44G144G/44Gu44KKDQor44Gv44GZ44GgLOOBn+OBoOOCiOOBlw0KK+OBv+OBi+OCjyzjgY3jgojjgZcNCivjgYbjgaHjgaAs44GC44GN44KJDQor44Gr44GX44GW44GNLOOBv+OBpOOBruOCig0KK+OBhOOBjOOCieOBlyzjgojjgZfjgY0NCivjgo/jgZ/jgarjgbks44KG44GN44G144G/DQor44GX44G+44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBi+OBqOOBhizjgoTjgZnjgbLjgo0NCivjgYvjgo/jgbks44Gy44Go44GXDQor44GV44GL44KC44GoLOOBsuOBp+OBqA0KK+OCguOCiuOBl+OBnyzjgZjjgoXjgavjgaENCivjgZnjgYzjga/jgoks44GX44KT44GE44Gh44KN44GGDQor44Go44G/44KE44G+LOOBkeOBhOOBng0KK+OBteOBj+OBoCzjgb/jgaHjgZMNCivjgYrjgajjgZbjgY0s44KC44Go44KI44GXDQor44G144GY44KC44KKLOOBleOBi+OBiA0KK+OBk+OCguOCiizjgYTjgY/jgYoNCivjgbXjgY/jgarjgYws44GL44Ga44GG44G/DQor44G/44KE44Gv44KJLOOBpOOCiOOBlw0KK+OBmOOCk+OBrizjgbLjgo3jgaTjgZANCivjgY3jgoDjgoks44G+44GZ44GKDQor44GE44Gq44GM44GNLOOCiOOBhuOBkw0KK+OCguOCiizjgY/jgavjgbLjgZMNCivjgo/jgZ/jgarjgbks44GX44KH44Gy44GhDQor44Gk44GY44KC44GoLOOBl+OCh+OBmA0KK+OCguOCk+OBnOOCkyzjgYLjgZXjgZMNCivjgarjgoDjgoks44GT44GG44GYDQor44KE44G+44KC44GoLOOBruOCiuOBkw0KK+OBr+OBl+OCguOBqCzjgZfjgofjgZMNCivjgoTjgb7jgYbjgaEs44KI44GYDQor44GC44KJ44GELOOCguOBqOOCiOOBlw0KK+OBteOBmOOBhCzjgorjgocNCivjgo/jgZ/jgarjgbks44GL44Gk44Gy44GTDQor44Gv44Gb44GM44KPLOOBpOOCiOOBlw0KK+OBl+OBkuOChOOBmSzjgYLjgaTjgbLjgZMNCivjgoTjgb7jga7jgYQs44Gf44GL44GKDQor44GT44Gw44KE44GXLOOBjeOCiOOChuOBjQ0KK+OBquOBjOOBhCzjgb7jgZXjgYLjgY0NCivjgZXjgo8s44GL44Gk44Gu44KKDQor44G+44Gk44KI44GXLOOBv+OBpOOBig0KK+OBleOBhOOBqOOBhizjgYjjgYTjgZMNCivjgYvjga4s44KG44GN44GTDQor44GG44GX44GU44KBLOOBruOCiuOBig0KK+OBhOOBl+OBhCzjgYvjgaTjga7jgooNCivjgYbjgZnjgY0s44GC44GN44GKDQor44GZ44Gp44GGLOOBsuOCjeOChuOBjQ0KK+OBi+OBmOOChOOBvizjgb7jgorjgZMNCivjgYrjgbAs44GI44KK44GTDQor44GZ44KPLOOBsuOCjeOBjQ0KK+OBhOOCj+OBnyzjgYbjgpMNCivjgags44KE44GZ44Gu44KKDQor44GK44GE44GL44KPLOOBsuOCjeOBlw0KK+OBsuOCieOBhCzjgabjgaQNCivjgZ/jgYvjgZfjgb4s44Go44KI44GL44GaDQor44G144G/44GuLOOBiOOBhOOBhOOBoQ0KK+OBiuOBi+OBluOBjSzjgZ/jgY/jgb4NCivjgZfjgonjgY0s44G+44GV44KLDQor44Gf44GR44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBvuOBpOOCguOBqCzjga7jgbbjgYoNCivjgb7jgaTjgbDjgoks44G/44Gh44GKDQor44GI44Gz44Gv44KJLOOBi+OBiuOCiw0KK+OBteOBmOOBrizjgbLjgo3jgYLjgY0NCivjgbXjgYvjgoQs44KE44GZ44GKDQor44G744GX44GuLOOBk+OBhuOBmA0KK+OBi+OBn+OChOOBvizjgYTjgZrjgosNCivjgYLjgonjgYvjgo8s44KI44GX44GKDQor44Gf44GL44GuLOOBn+OBi+OBjeOBvw0KK+OBj+OCjeOBoCzjgbLjgafjgY0NCivjgYTjgajjgYYs44G144G/44GKDQor44GT44GW44GELOOChOOBmeOBqA0KK+OBhuOBiOOChOOBvizjga/jgZjjgoENCivjga/jgaPjgajjgoos44Gy44Go44GXDQor44Gr44GX44KA44KJLOOBiOOBhOOBkw0KK+OBteOCi+OBi+OCjyzjgajjgZfjgYoNCivjgoTjgZfjgY0s44Gy44KN44GXDQor44G744Gp44KE44G+LOOBruOCiuOBig0KK+OBiOOBqCzjgb7jgZXjgaTjga0NCivjgoTjgb7jgoLjgags44KG44GG44GYDQor44Gb44GN44GQ44GhLOOBruOCiuOBsuOBkw0KK+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgZ/jgZHjgaAs44GT44GG44GYDQor44GX44KT44Gf44GrLOOChOOBmeOBig0KK+OBj+OBvOOBnyzjgb7jgZXjgbLjgo0NCivjgZnjgY7jgYrjgYss44Gf44GL44GXDQor44KE44G+44GW44GNLOOBleOBoeOBkw0KK+OBleOBhOOBqOOBhizjgb7jgZXjgobjgY0NCivjgYbjgYjjga4s44GL44Ga44GKDQor44GX44G+44KC44GoLOOChOOBmeOBsuOCjQ0KK+OBjeOBn+OBrizjgZjjgoXjgpPjgZMNCivjgYTjgYTjgZrjgYss44G/44Gk44KLDQor44GE44Ga44G/LOOBjeOCiOOBlw0KK+OBr+OCieOBoCzjgajjgZfjgY0NCivjgYrjgaHjgYLjgYQs44Go44GX44Gf44GLDQor44KE44G+44GG44GhLOOBn+OBi+OBig0KK+OBiOOBkOOBoSzjgZfjgZLjgY0NCivjga/jgY7jgo/jgoks44Gy44Gn44GKDQor44Gf44GL44GOLOOBqOOCguOBsuOBkw0KK+OBiuOBj+OCguOBqCzjgb7jgZXjgajjgZcNCivjgb7jgaTjgZbjgY0s44GE44GV44KADQor44GE44Gh44KA44KJLOOBsuOBp+OBqOOBlw0KK+OBv+OChOOBleOBiyzjgajjgZfjgobjgY0NCivjgb/jgoTjgZ8s44GL44Gf44GXDQor44Gq44GM44GKLOOBjeOCiOOBlw0KK+OBhOOCj+OBiizjgZXjgajjgb8NCivjgbXjgYvjgZbjgo8s44GV44Gg44Gu44KKDQor44Gf44KA44KJLOOBsuOBp+OBjQ0KK+OBjeOCiuOChSzjgajjgZfjgZ/jgZENCivjgb7jgaTjgZbjgY0s44GT44GZ44GRDQor44GL44Go44GGLOOBvuOBleOBvw0KK+OBv+OBnyzjgorjgofjgZMNCivjgYTjgZfjgYQs44GN44KH44GYDQor44GK44GL44KC44GoLOOBn+OBi+OChuOBjQ0KK+OBhuOBiOOBiuOBiyzjgZXjgajjgZcNCivjgY3jgofjga4s44GC44GN44Gy44KNDQor44GL44Gt44GTLOOBsuOBp+OBpOOBrQ0KK+OBleOBj+OCieOBhCzjgZ/jgZHjgZcNCivjgo/jgYvjgbDjgoTjgZcs44Gf44GR44Gu44KKDQor44KP44Gf44Gq44G5LOOBvuOBquOBtg0KK+OBguOBleOBhCzjgorjgofjgbLjgaENCivjgYvjganjga4s44KG44KK44GTDQor44KE44G+44GW44GNLOOBqOOCguOBkw0KK+OBguOCj+OBrizjgZvjgYTjgYTjgaENCivjgYrjgYzjgo8s44GX44KH44GN44GhDQor44Gc44KT44GRLOOBvuOBleOBlw0KK+OBteOBj+OCguOBqCzjgZfjgZLjgosNCivjgYrjgaks44G+44GV44GKDQor44KC44KK44KC44GoLOOBn+OBoOOBig0KK+OBqOOBvCzjgojjgZfjgYoNCivjgYvjgZ/jgoTjgb4s44Gm44KL44G/44GkDQor44Gq44GM44G+44GkLOOBquOBiuOBqA0KK+OCj+OBn+OBuSzjgYTjgZXjgoANCivjgYTjgZfjgY0s44Gm44Gk44GKDQor44GE44Gq44GM44KPLOOBruOBtuOBig0KK+OBquOBi+OBrizjgb7jgZXjgagNCivjgavjgZfjgoTjgb4s44KG44GeDQor44GX44KC44GgLOOBjeOCh+OBkw0KK+OBl+OBkuOBnyzjgajjgZfjgbLjgacNCivjgb7jgaTjgoLjgags44KI44GX44Gy44KNDQor44GL44Gf44KE44G+LOOBq+OBmeOBkQ0KK+OBneOBrizjgobjgYbjgZgNCivjgYTjgZvjgY0s44Go44KI44Gy44KNDQor44GE44Go44GGLOOBqOOBl+OChuOBjQ0KK+OBm+OBjeOBrSzjgZ/jgYvjga7jgooNCivjgoDjgonjgoTjgb4s44Go44GX44GKDQor44G+44KL44KE44G+LOOBqOOCguOBsuOBkw0KK+OBj+OCjeOBleOCjyzjgYvjgZrjga7jgooNCivjgZnjgb8s44Gf44GL44GKDQor44Gu44GQ44GhLOOBi+OBmuOBvw0KK+OBleOBqOOBhuOBvyzjgb7jgZXjgZcNCivjgYrjgYvjgo8s44Gf44GL44GC44GNDQor44Gq44GL44GuLOOCiOOBl+OBvw0KK+OBiuOBsuOBlyzjgoYNCivjga/jgbYs44KG44GG44GTDQor44GG44Gh44GgLOOBn+OBi+OBr+OCiw0KK+OBv+OBjSzjgoTjgZnjgojjgZcNCivjgZnjgZrjgY0s44G/44KI44GTDQor44GL44GV44Gv44KJLOOBn+OBi+OBig0KK+OBiuOBj+OBvCzjgbLjgo3jgZfjgZINCivjgYvjgZ/jgYvjgb8s44KGDQor44Gf44GL44Gv44GXLOOBi+OBpOOBvw0KK+OBhOOBl+OBi+OCjyzjgobjgY3jgYoNCivjgZ/jgYvjgajjgoos44KI44GX44GL44GaDQor44Gf44Gr44GQ44GhLOOBvuOBleOBig0KK+OBm+OBjSzjgbXjgZjjgYoNCivjgY/jgbzjgZ8s44GR44GE44GYDQor44GC44G544GL44KPLOOCiOOBl+OBteOBvw0KK+OBteOBmOOBvuOBjSzjgajjgYrjgosNCivjgYvjgZ/jgoTjgb4s44KG44GG44GYDQor44GT44KE44G+LOOBsuOBp+OBjQ0KK+OBr+OBl+OCguOBqCzjgaTjgZDjgbLjgagNCivjgZnjgb8s44Gy44Gn44Gu44KKDQor44Gr44GX44GL44KPLOOBmOOCh+OBmA0KK+OBleOCj+OBvizjgYLjgY3jgokNCivjga/jgZfjgoLjgags44Gu44KK44G+44GVDQor44Gq44GL44GfLOOBteOBv+OBruOBtg0KK+OBhuOBoeOChOOBvizjgaTjga3jgobjgY0NCivjgZXjgZXjgY0s44GE44Ga44G/DQor44GC44GV44Gv44KJLOOBi+OBmuOBr+OCiw0KK+OBq+OBo+OBnyzjga7jgorjgYvjgZoNCivjgaDjgpMs44Go44GX44Gy44GTDQor44GZ44GO44GfLOOBi+OBmuOChA0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgYoNCivjgYrjgbXjgaEs44GX44KT44GYDQor44GT44Gw44KE44GXLOOChuOBjeOBvuOBlQ0KK+OBv+OCiOOBlyzjgb7jgZXjgagNCivjgYTjgZfjgaAs44KA44Gk44GKDQor44GK44Gr44GNLOOBn+OBkeOBlw0KK+OBj+OCiuOBr+OCiSzjgb7jgZXjgobjgY0NCivjgZfjgonjgYQs44GR44KT44GYDQor44GV44GL44Gr44GXLOOBguOBkeOBvw0KK+OBiuOBoCzjgb/jgaHjgYoNCivjgYvjgb7jgZks44Gy44KN44GXDQor44Gq44GL44GM44KPLOOBguOChOOBkw0KK+OBi+OBl+OCguOBqCzjgobjgYbjgZMNCivjgbDjgpPjgaks44KE44GZ44G+44GVDQor44G144Gf44G/LOOBsuOCjeOBlw0KK+OChOOBvuOBl+OBnyzjgb7jgooNCivjga/jgoTjgZcs44G/44Gk44Gy44KNDQor44GL44GS44KE44G+LOOBteOBv+OBkw0KK+OBguOBmeOBvizjgovjgorjgZMNCivjgZfjgoLjgoDjgoks44Gm44Gk44GXDQor44KE44G+44GQ44GhLOOBl+OCk+OBhOOBoQ0KK+OChOOBvuOBqCzjgb/jgY0NCivjgZXjgajjgYYs44G/44KP44GTDQor44G+44Gk44Gg44GE44KJLOOBk+OBhuOBjeOBoQ0KK+OBvuOBpOOCgOOCiSzjgbLjgafjgbLjgZMNCivjgZPjga4s44Gu44G844KLDQor44GK44Gv44GXLOOBn+OBv+OBig0KK+OBjeOBj+OBnyzjgaTjgYvjgZUNCivjgojjgZfjgYrjgYss44GR44KT44GE44GhDQor44GV44GuLOOBsuOBleOBlw0KK+OBn+OBquOBiyzjgZHjgpPjgZ4NCivjgZXjgZXjgY0s44G+44GV44KI44GXDQor44GL44KP44GQ44GhLOOBjeOCh+OBsuOBoQ0KK+OChOOBvuOBl+OBnyzjgobjgZrjgosNCivjgZ/jgZHjgoDjgoks44G+44GV44GXDQor44G144GP44GhLOOBn+OBi+OBlw0KK+OBvuOBquOBiyzjgobjgYbjgZgNCivjgYLjgonjgY0s44G/44Gu44KLDQor44Gy44KJ44GuLOOBruOBtuOBig0KK+OBquOBi+OCgOOCiSzjgobjgbLjgaENCivjga/jgZfjgoLjgags44Gf44Gg44GXDQor44GL44Go44GGLOOBsuOCjeOBlw0KK+OBr+OBvuOBi+OCjyzjgZfjgZLjgosNCivjga/jgoTjgZcs44GL44Ga44KEDQor44GE44Go44GGLOOBqOOBl+OBv+OBoQ0KK+OBmeOBmuOBjSzjgojjgZfjgoQNCivjgZ/jgZHjgYbjgaEs44KE44GV44G244KNDQor44Gr44GXLOOBl+OBkuOBjQ0KK+OBhOOCj+OBu+OCiizjgbLjgo3jgZcNCivjgYTjgb7jgYQs44KI44GX44GKDQor44KC44KK44GuLOOChuOBjeOBruOCig0KK+OBq+OBl+OBr+OCiSzjgZnjgZnjgoANCivjgY3jgorjgoQs44GC44Gk44GXDQor44GV44Go44GGLOOBn+OBpOOBig0KK+OBu+OBneOBoCzjgbXjgb/jgYoNCivjgZ/jgYvjga/jgZcs44GL44Ga44GIDQor44Gq44GL44GY44G+LOOBqOOBv+OBiA0KK+OChOOBmeOBr+OCiSzjgZ/jgYvjga7jgbYNCivjgY/jgo3jgYTjgo8s44KI44GX44GL44GaDQor44GL44KCLOOBpOOBqOOCgA0KK+OBguOBi+OBvuOBpCzjgajjgZfjgYvjgaQNCivjgY3jgZ/jgoDjgoks44GE44GP44GTDQor44Gr44GX44GgLOOBj+OBq+OBig0KK+OBiuOBi+OBoCzjgZHjgYTjgZMNCivjgZXjgZXjgY0s44GR44KT44GE44GhDQor44Gf44GL44Gv44GXLOOBhOOBoeOCjeOBhg0KK+OBl+OBv+OBmizjgYvjgZrjgbLjgZMNCivjgYjjgpPjgaks44GT44GG44GE44GhDQor44GG44Gg44GM44KPLOOBqOOBl+OBvuOBlQ0KK+OBl+OBv+OBmizjgY/jgb/jgZMNCivjgYLjgYrjgoTjgY4s44Gf44GL44GXDQor44Gv44GX44KC44GoLOOBkeOBhA0KK+OBn+OBkeOBhuOBoSzjgbLjgZXjgagNCivjgYLjgonjgYQs44Go44KI44GTDQor44GE44GX44GY44G+LOOBsuOBleOBkw0KK+OBk+OBjOOBrSzjgZ/jgaDjgZcNCivjgZXjgo/jgZfjgb4s44GX44GS44KLDQor44Gf44GL44KE44Gq44GOLOOBquOCi+OChuOBjQ0KK+OBvuOBleOBoCzjgZ/jgYvjgZcNCivjgZfjgb/jgZos44Gy44KN44GXDQor44GK44Gu44Gn44KJLOOBj+OBq+OBguOBjQ0KK+OBn+OBquOBiyzjgb7jgobjgb8NCivjga7jgoDjgoks44KG44GN44GTDQor44KI44GX44GgLOOBl+OCk+OBhOOBoQ0KK+OCiOOBl+OBoCzjgajjgZfjgobjgY0NCivjgZXjgZ/jgZEs44Gy44KN44GXDQor44GV44GE44Go44GGLOOBhOOBleOCgA0KK+OBv+OChOOBjizjgZfjgpPjgZnjgZENCivjgZ/jgYvjgZfjgb4s44Gm44KL44GKDQor44GL44Gw44KELOOBruOCiuOBteOBvw0KK+OBhOOBl+OBluOBjSzjgZvjgYTjgZ4NCivjgYvjgYzjgoQs44GL44Ga44GKDQor44GT44Gf44GrLOOBsuOBp+OBguOBpA0KK+OBk+OBmeOBoCzjgoTjgZnjgZcNCivjgYTjgZjjgoos44GE44GV44GKDQor44G+44KL44KE44G+LOOBsuOBp+OBig0KK+OBi+OBquOBhCzjgZfjgpPjgYTjgaENCivjgoTjgY4s44G/44Gu44KLDQor44G144GY44GuLOOBsuOCjeOBv+OBoQ0KK+OBk+OBp+OCiSzjgYLjgY3jgbLjgacNCivjgZnjgY7jgYos44Gf44GL44GKDQor44GZ44GM44Gv44KJLOOBv+OBpOOCiw0KK+OBleOBhOOBqOOBhizjga7jgbbjgYoNCivjgYrjgYss44Gy44KN44GXDQor44GE44GX44G+44KLLOOBqOOBl+OBmeOBkQ0KK+OBv+OChOOBluOBjSzjgZfjgpPjgZgNCivjga/jgb7jga4s44G+44KC44KLDQor44GT44Gf44GY44G+LOOBsuOCjeOBlw0KK+OBn+OBi+OBl+OBvizjgZHjgYTjgZgNCivjgaTjgYvjgaAs44Gy44KN44G144G/DQor44Gq44GL44KA44KJLOOBl+OCk+OBhOOBoQ0KK+OBn+OBkeOBoCzjgojjgbLjgaENCivjgoTjgZnjgoDjgo0s44Gf44GP44KC44KKDQor44Gq44GL44KA44KJLOOChOOBmeOBguOBjQ0KK+OBteOBmOOBl+OBvizjgobjgZ/jgYsNCivjgYrjgYvjgaAs44Gf44G/44KEDQor44GC44KELOOCiOOBl+OBig0KK+OBquOBi+OCgOOCiSzjgb/jgaTjgZANCivjgZ/jgYvjga/jgZcs44GV44Go44GXDQor44GZ44GM44Gv44KJLOOBvuOBleOBqA0KK+OChuOBguOBlSzjgb7jgZXjgobjgY0NCivjgYTjgZfjgYQs44GT44GG44GE44GhDQor44GK44GP44G8LOOBv+OBpOOChOOBmQ0KK+OBiuOBleOCjyzjga/jgovjgoTjgZkNCivjgoTjgb7jgoLjgags44GK44GV44KADQor44GE44G+44GE44Ga44G/LOOBk+OBng0KK+OBiuOBi+OBoCzjgb/jgaHjgYoNCivjgarjgYvjgoDjgoks44KI44GX44Gu44KKDQor44Gf44Gq44GLLOOBguOBkeOBteOBvw0KK+OBquOBi+OBrizjgZvjgYTjgYTjgaENCivjgYrjgoLjgoos44GL44Gk44G144G/DQor44KE44G+44KC44GoLOOBvuOBleOBruOCig0KK+OBquOBjOOBhCzjga/jgovjgbLjgZMNCivjgZPjgbDjgoTjgZcs44Gy44KN44GXDQor44Gy44GN44GhLOOBl+OBkuOBvuOBlQ0KK+OChOOBvuOBoCzjgZ/jgZHjgZcNCivjgaTjgYvjgoLjgags44G/44Gk44G+44KLDQor44GE44Gu44GG44GILOOBv+OBpOOBvuOCiw0KK+OBhOOBruOBhuOBiCzjgZ/jgZHjgbLjgo0NCivjgZnjgb/jgYvjgo8s44GX44GS44Gf44GgDQor44G144GP44GgLOOBkeOCk+OBmA0KK+OChOOBvuOCguOBqCzjgoDjga3jgojjgZcNCivjgZXjgYTjgajjgYYs44Gy44KN44Go44GXDQor44GL44KT44GwLOOBvuOBleOBn+OBkQ0KK+OBleOCieOBhCzjgb/jgY3jgYoNCivjgZXjgYvjgY0s44GL44Ga44Gy44GTDQor44KE44GZ44GELOOCiOOBl+OBsuOCjQ0KK+OBi+OBv+OCgOOCiSzjgY/jgavjgYoNCivjgZvjgbks44GN44KI44GXDQor44KI44GX44GgLOOBn+OBj+OBig0KK+OBquOBjOOBmyzjgYvjgZrjgbLjgZMNCivjgbXjgY/jgaEs44GL44Ga44GKDQor44G144GP44GgLOOChuOBjeOBvuOBlQ0KK+OBruOBquOBiyzjgojjgZfjga/jgosNCivjgYTjgb7jgaAs44Gy44GV44GXDQor44Gr44GX44GL44KPLOOBqOOBl+OBig0KK+OBk+OChOOBrizjgaTjgajjgoANCivjgarjgYvjgZbjgo8s44G+44GV44GoDQor44GK44GM44KPLOOBguOBjeOCiQ0KK+OBquOBi+OChOOBvizjgYvjgYrjgosNCivjgazjga7jgYvjgo8s44GY44KF44Gr44GhDQor44Gd44GtLOOBm+OBpOOBkw0KK+OBv+OBnuOBkOOBoSzjgobjgYbjgZMNCivjgZPjgbDjgoTjgZcs44KI44GX44G/44GkDQor44KI44GX44G+44GkLOOBvuOBleOBguOBjQ0KK+OBiuOBr+OCiSzjgZfjgofjgZgNCivjgoTjgb7jgaAs44Gf44GL44GXDQor44G/44Gu44GQ44GhLOOBn+OBi+OBlw0KK+OBl+OCk+OCgeOCkyzjgojjgZfjgZ/jgYsNCivjga7jgZss44Go44GX44GL44GaDQor44GE44KP44Gv44GXLOOBn+OBoOOBlw0KK+OBguOBi+OBhCzjgYTjgZrjgb8NCivjgaTjgZ/jgoLjgags44GY44KH44GYDQor44Gq44GL44KC44GoLOOBruOBtuOBsuOBkw0KK+OBj+OBoOOBquOBvyzjgb7jgZXjgbLjgo0NCivjgYTjgaHjgaAs44G+44GZ44GTDQor44KE44GuLOOBsuOBp+OBig0KK+OBvuOBpOOBjSzjgYLjgY3jgYoNCivjgZXjgZXjgY0s44Gf44GL44GXDQor44G144KL44GuLOOBr+OCi+OBsuOBlQ0KK+OBteOBmOOBnyzjgZHjgYTjgZMNCivjgYTjga7jgYbjgYgs44G144G/44GKDQor44Gf44KELOOChuOBjeOBig0KK+OBv+OChOOBluOCjyzjgYTjgo/jgYoNCivjgo/jgZ/jgarjgbks44G+44GV44GKDQor44GC44GP44GtLOOBvuOBleOBiuOBvw0KK+OBu+OBl+OBrizjgZfjgpPjgZgNCivjgojjgZfjgaAs44KI44GX44Gu44KKDQor44GG44GI44KA44KJLOOBn+OBi+OBteOBvw0KK+OBi+OBv+OChCzjgb7jgZXjgYoNCivjgZnjgZrjgY0s44KK44KH44Gy44GhDQor44GC44KT44Gp44GGLOOBn+OBkeOBlw0KK+OBqOOCiOOBhOOBmuOBvyzjgb7jgZXjga/jgosNCivjgY/jgo/jgaos44G/44Gu44KLDQor44Gr44GE44G/LOOBvuOBleOChuOBjQ0KK+OBv+OBhuOCiSzjgZ/jgYvjgZcNCivjga7jgoDjgoks44GI44GE44GYDQor44GK44GL44GgLOOBjeOBv+OBig0KK+OBguOBleOBrOOBvizjgojjgZfjgZfjgZINCivjgZXjgZXjgYos44GL44GK44KLDQor44GE44Gq44GM44GNLOOBguOBjeOCiQ0KK+OBmeOBjOOCj+OCiSzjgb/jganjgooNCivjgZfjgofjgZgs44G/44Gk44KE44GZDQor44Gf44GM44KPLOOBn+OCjeOBhg0KK+OBneOBjCzjgojjgYbjgZMNCivjgZfjgofjgo8s44Go44GX44KNDQor44G+44Gk44GL44KPLOOBl+OCk+OBhOOBoQ0KK+OBl+OCguOCgOOCiSzjgYvjgZrjgYoNCivjgo/jgZ/jgarjgbks44Gu44G844KLDQor44GT44Gw44KE44GXLOOBkeOCk+OBmA0KK+OBhOOBhOOBoCzjgZ/jgZHjgZcNCivjgbXjgY/jgoLjgags44Gf44GL44Gv44KLDQor44KA44KJ44KE44G+LOOBqOOBl+OBig0KK+OBu+OCiizjga7jgorjgZMNCivjgoTjgb7jga4s44GL44Gk44GXDQor44Gr44GX44KP44GNLOOBiuOBleOCgA0KK+OBvuOBpOOBiizjgYLjgY3jgokNCivjgYrjgYvjgoLjgags44GY44KF44KTDQor44GK44GV44GNLOOBi+OBmuOBsuOCjQ0KK+OBhuOCgeOCguOBqCzjgbLjgafjgobjgY0NCivjgYrjgYvjgoDjgoks44G+44GV44GoDQor44GT44GE44GRLOOBleOBqOOBlw0KK+OBiuOBn+OBqyzjgZ/jgZHjgZXjgaANCivjgYvjgZ/jgYrjgYss44G/44Gu44KLDQor44GK44GL44GgLOOBruOBtuOBqOOCgg0KK+OBteOBj+OBl+OBvizjgY3jgojjgb8NCivjgYjjgaDjgarjgYss44Gy44KN44KG44GNDQor44GZ44Ga44GNLOOChuOBhuOBmA0KK+OBhOOBoeOBi+OCjyzjgarjgYrjgobjgY0NCivjgY/jgo3jgYvjgo8s44GX44KT44GYDQor44GV44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBiuOBleOCjyzjgZHjgpPjgYTjgaENCivjgoLjgaHjgZrjgY0s44Gy44KN44GNDQor44KE44G+44GX44GfLOOBvuOBleOBguOBjQ0KK+OBhOOBoeOBi+OCjyzjgbLjgafjgYoNCivjgbXjgYvjgZbjgo8s44KI44GYDQor44GP44G844GfLOOBvuOBleOBqg0KK+OBq+OBl+OCgOOCiSzjgb7jgZPjgagNCivjga3jgY7jgZcs44GR44KT44GE44GhDQor44GT44KT44GpLOOBquOBiuOBteOBvw0KK+OBteOCi+OChCzjgYLjgZ/jgosNCivjgZPjgbDjgoTjgZcs44GT44Gb44GEDQor44Gf44KA44KJLOOBvuOBleOBguOBjQ0KK+OBv+OBpOOBr+OBlyzjgb7jgZXjgY0NCivjgY/jgb7jgZbjgo8s44GX44Gh44KNDQor44KE44G+44GgLOOCiOOBl+OBig0KK+OBsuOCjeOBpCzjgoTjgZnjga7jgooNCivjgYvjga3jgaAs44GX44GS44KLDQor44GC44GdLOOBm+OBhOOBhOOBoQ0KK+OBiOOBs+OBr+OCiSzjgY3jgojjgZcNCivjgoTjgZnjgYQs44GN44KI44Gy44GVDQor44GZ44Gp44GGLOOBi+OBmuOBsuOBkw0KK+OChOOBr+OBnyzjgZnjgYjjgbLjgo0NCivjgZXjgYvjgYQs44GR44GE44GE44Gh44KN44GGDQor44GV44GMLOOBn+OBi+OBlw0KK+OChOOBvuOBluOBjSzjgYvjgZrjgbsNCivjgarjgYvjgoDjgoks44Gu44G244GKDQor44GE44GW44KPLOOBk+OBhuOBmA0KK+OBguOCieOBhCzjgbLjgZXjgobjgY0NCivjgYbjgbbjgYvjgZ8s44GR44KT44GYDQor44KP44Gf44Gs44GNLOOBv+OBpOOBjg0KK+OBsuOBl+OBnyzjgZ/jgaTjgYoNCivjgYvjgajjgYYs44Gy44KN44Gy44GTDQor44KE44G+44GtLOOBoOOBhOOBr+OBoeOCjQ0KK+OChOOBvuOBl+OBnyzjgYvjgaTjgb8NCivjga7jgoDjgoks44KI44GX44GKDQor44KE44Gq44GELOOBi+OBmuOBv+OBpA0KK+OCgOOCieOBi+OBvyzjgobjgZ/jgYsNCivjgYLjgYrjgY0s44KG44GN44GKDQor44KE44GX44KNLOOBjeOBhOOBoQ0KK+OBguOBleOBvizjgY/jgavjgYoNCivjgYrjgY/jgaAs44Gy44KN44GTDQor44GE44GX44Gw44GXLOOBvuOBleOBruOCig0KK+OBv+OBquOBv+OBpyzjgajjgoLjgbLjgo0NCivjgYTjgazjgZrjgYss44KI44GX44GKDQor44Go44GN44KPLOOBiOOBv+OBkw0KK+OBv+OBhuOCiSzjgojjgYbjgZMNCivjgb7jgbbjgaEs44Gy44KN44Gh44GLDQor44GK44Gw44KJLOOBkeOCk+OBhOOBoQ0KK+OBvuOBpOOBjSzjgZXjgaDjgb8NCivjgYjjgZDjgaEs44Gf44Gg44KG44GNDQor44GK44G/LOOBruOBvOOCiw0KK+OCj+OBn+OBquOBuSzjgobjgYbjgZMNCivjgYLjgonjgYvjgo8s44KI44GX44GoDQor44GZ44GM44GuLOOBsuOCjeOBlw0KK+OChOOBmeOBhCzjgojjgZfjgo0NCivjgb/jgoTjgoLjgags44G+44GV44KG44GNDQor44G144GY44GO44KPLOOBvuOBleOBv+OBoQ0KK+OBjeOBn+OBjOOCjyzjgYLjgY3jgokNCivjgZ/jgavjgZDjgaEs44GZ44GZ44KADQor44GT44GY44G+LOOBvuOBleOBsuOCjQ0KK+OBguOBvuOBi+OCjyzjgbXjgb/jgYoNCivjgYrjgazjgY0s44KG44GG44GYDQor44Gf44Gq44G5LOOBsuOBp+OBguOBjQ0KK+OBvuOCi+OBr+OBlyzjgZPjgbjjgYQNCivjgoTjganjgoQs44KI44GX44Gv44KLDQor44GK44GM44GPLOOChOOBmeOBruOBtg0KK+OBleOBi+OBnyzjgajjgZfjga/jgosNCivjga/jgoks44Gy44KN44KG44GNDQor44Gf44GL44GOLOOBsuOCjeOBlw0KK+OBguOBhOOBr+OCiSzjgZHjgpPjgYTjgaENCivjgYrjgZ8s44Gf44GR44GXDQor44GC44GN44KE44G+LOOBn+OBkeOBlw0KK+OBl+OBv+OBmizjgZfjgpPjgZgNCivjgZPjgbDjgoTjgZcs44GC44GN44KJDQor44Gv44Gf44KC44GoLOOBk+OBuOOBhA0KK+OBhuOBmeOBoCzjgbLjgo3jgoTjgZkNCivjgZ/jgYvjga/jgZcs44GT44GG44GE44GhDQor44Gq44GL44GM44KPLOOBv+OBjeOBig0KK+OBvuOBpOOBsOOCiSzjgb/jgaTjgosNCivjgY/jgazjgY4s44KI44GX44GC44GNDQor44GK44GM44KPLOOChuOBn+OBiw0KK+OBpOOBmCzjgobjgZ/jgYsNCivjgYvjgo/jgYQs44GT44GG44GYDQor44GZ44GM44KP44KJLOOBhOOBleOBig0KK+OCgOOBqCzjgZjjgoXjgavjgaENCivjgYrjgbDjgoks44KI44GX44Gy44KNDQor44GL44Go44GGLOOBk+OBuOOBhA0KK+OBi+OBtuOCieOBjSzjgbLjgafjgb8NCivjgo/jgYvjgZ/jgbks44Gy44Gn44GKDQor44GK44GM44KPLOOBguOBjeOCiQ0KK+OBhOOCj+OBleOBjSzjgajjgYrjgosNCivjgarjgorjgZ8s44KI44GX44Gy44KNDQor44GC44GN44KE44G+LOOBn+OBi+OBig0KK+OBv+OBpOOBhCzjgYrjgZXjgbXjgb8NCivjgYjjgpPjgaks44GR44KT44GYDQor44KI44Gt44GfLOOBn+OBi+OBruOBtg0KK+OBguOBiuOBhCzjgYvjgZrjgYoNCivjgYrjgYvjgoLjgags44Gm44Gk44GKDQor44GK44Gk44GLLOOBr+OCi+OBig0KK+OBteOBj+OCguOCiizjgobjgZ/jgYsNCivjgabjgZfjgb4s44KI44GX44GKDQor44Gv44G+LOOBi+OBmuOBn+OBiw0KK+OCiOOBl+OBoCzjgZHjgYTjgYTjgaHjgo3jgYYNCivjgYvjgo/jgbks44GX44KF44Gy44GhDQor44Gf44Gq44GLLOOBi+OBmuOBig0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjgajjgZcNCivjgZ/jgarjgbks44Gf44GL44KG44GNDQor44GC44GdLOOChuOBjeOBig0KK+OBn+OBi+OBoCzjgaTjgajjgoANCivjgb/jgoTjga4s44GT44GX44KNDQor44GG44GI44Ga44G/LOOBsuOCjeOChuOBjQ0KK+OBhOOBoeOBi+OCjyzjgYrjgZXjgoANCivjgYLjgZXjgo8s44Gf44GL44GXDQor44GE44Gq44KC44GoLOOBkeOBhOOBhOOBoQ0KK+OCguOCiuOChCzjgobjgZ/jgYsNCivjgarjgYvjgZ/jgass44GC44GN44GKDQor44G/44KE44KC44GoLOOBjeOCiOOBlw0KK+OBv+OBj+OBqyzjgojjgZfjgbLjgZUNCivjgY3jgZ/jgoDjgoks44GX44KT44GE44GhDQor44KE44Gf44G5LOOBleOBi+OBiA0KK+OBquOBjOOBi+OCjyzjgYvjgZrjgb7jgZUNCivjgoTjgaos44Gy44Gn44GNDQor44GV44GP44G+LOOBr+OBmOOCgQ0KK+OBguOCieOBhCzjgojjgZfjga/jgosNCivjgZfjgb7jgaAs44KE44GZ44Gu44KKDQor44Gm44Ga44GLLOOBjeOCh+OBsuOBoQ0KK+OBhuOBiOOBrizjgbXjgb/jgYLjgY0NCivjgZXjgYTjgajjgYYs44Gy44KN44GE44GhDQor44GK44GP44KP44GgLOOBsuOCjeOBlw0KK+OCiOOBk+OChOOBvizjgajjgZfjgYoNCivjgo/jgZ/jgarjgbks44Gy44Go44GXDQor44Gr44GX44KA44KJLOOChOOBmeOBguOBjQ0KK+OBn+OBi+OBvuOBpCzjgajjgoLjgbXjgb8NCivjgavjgZfjgoDjgoks44GL44Ga44GKDQor44GE44Gh44GNLOOBsuOBqOOBlw0KK+OBhOOCj+OBl+OBnyzjgZHjgpMNCivjgYrjga4s44GE44Gh44GeDQor44Gr44GX44GNLOOBiOOBhOOBhOOBoQ0KK+OBleOCjyzjgZ/jgaDjgb7jgZUNCivjgZ/jgYvjgb8s44G+44GV44Gy44GnDQor44KE44GZ44G144GPLOOCiuOCh+OBsuOBoQ0KK+OBiuOBnyzjgYvjgZrjgYoNCivjgYrjgYvjgoLjgags44G/44Gk44KLDQor44GV44GL44GELOOBqOOBl+OBig0KK+OBteOBmOOCguOBqCzjgarjgYrjgZMNCivjgb7jgaTjgoLjgags44GX44KF44Gr44GhDQor44GK44Gy44KD44G2LOOBl+OCheOBq+OBoQ0KK+OBq+OBl+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgbvjgorjgYbjgaEs44G+44Gq44G2DQor44GE44GX44KC44GoLOOCiOOBl+OBiuOBvw0KK+OBvuOBpOOCguOBqCzjgojjgbLjgaENCivjgZ/jgZHjgYbjgaEs44GC44GN44Gu44KKDQor44KC44Go44KE44G+LOOBk+OBhuOBhOOBoQ0KK+OCiOOBl+OBquOBjCzjgZ/jgaTjgb4NCivjgbXjgovjgYvjgo8s44Gy44KN44GXDQor44Gf44Gr44GQ44GhLOOBruOBtuOBpOOBqg0KK+OBn+OBkeOBk+OBlyzjgajjgZfjgYoNCivjgaTjgoDjgoks44Gf44Gk44GKDQor44GK44GuLOOBi+OBmuOBig0KK+OBiuOBi+OCguOBqCzjgYrjgZXjgoANCivjgbXjgovjgZ8s44GR44KT44GYDQor44Gr44GX44GuLOOBsuOCjeOBlw0KK+OBv+OBmuOBn+OBqyzjgbLjgo3jgb7jgZUNCivjgZPjgoTjgb4s44KE44GZ44GKDQor44GN44GP44GhLOOBqOOBjeOBig0KK+OBiuOBk+OBhuOBoSzjgZfjgZLjga7jgooNCivjgYvjgo/jgZ8s44GL44Ga44KEDQor44GP44Gv44KJLOOBl+OCheOBsuOBoQ0KK+OBteOCi+OBr+OBlyzjgZHjgYTjgYTjgaENCivjgZ/jgYvjgojjgZcs44GX44KF44Gy44GhDQor44GL44GZLOOBquOCiuOBig0KK+OBguOBv+OCguOBqCzjgZfjgpPjgYTjgaHjgo3jgYbjgYYNCivjgoDjga3jgajjgYYs44GT44GX44KNDQor44G+44Gk44KC44GoLOOBk+OBhuOBmA0KK+OBn+OBi+OBquOBlyzjgb/jgaHjgYoNCivjgYLjgY3jgZ8s44KI44GX44GKDQor44Gf44GL44Gv44GXLOOBvuOBleOBqOOBlw0KK+OBquOBjOOBhCzjgZPjgZvjgYQNCivjgojjgZfjgaAs44GX44GS44GKDQor44G+44Gk44KC44GoLOOBleOBqOOBlw0KK+OBqOOBj+OBoCzjgb7jgZXjgbLjgo0NCivjgbLjgonjgYQs44Gd44GG44GE44Gh44KN44GGDQor44GK44GP44GX44G+LOOBsuOCjeOChuOBjQ0KK+OBvuOBl+OBnyzjgbLjgZXjgZcNCivjgoTjgb7jgaAs44GR44KT44GE44GhDQor44GV44GP44KJ44GELOOBvuOBleOBguOBjQ0KK+OBn+OBjeOBluOCjyzjgZ/jgYvjgZcNCivjgb7jgZnjgZMs44KI44GX44KG44GNDQor44GX44KT44GL44KPLOOBk+OBng0KK+OBiuOBn+OBqyzjgbXjgb/jgajjgogNCivjgYvjgo/jga4s44Gu44G244KG44GNDQor44GC44KJ44GL44KPLOOBmeOBmeOCgA0KK+OBguOBoOOBoSzjgajjgZfjgYoNCivjgYbjgaHjgaAs44GZ44GZ44KADQor44GT44Gv44KJLOOBvuOBleOBguOBjQ0KK+OBiuOBr+OBlyzjgajjgZfjgYoNCivjgYvjgoHjgYrjgYss44KE44GZ44G/44GhDQor44G/44KA44KJLOOBn+OBi+OBlw0KK+OBhOOBjSzjgaTjgYvjgZUNCivjgYLjgZfjgZrjgYss44KE44GZ44GC44GNDQor44KE44G+44KC44GoLOOBv+OBoeOBig0KK+OCiOOBl+OBoCzjga7jgZ7jgoANCivjga/jgonjgYrjgYss44Gf44GL44GXDQor44GG44KL44KP44GXLOOBl+OBkuOBig0KK+OBiuOCk+OBoCzjgY3jgb/jgbLjgo0NCivjgYTjgpPjgaks44Go44KC44GKDQor44Gf44GR44Gq44GLLOOBleOBqOOBlw0KK+OBteOBmOOBleOCjyzjgobjgYbjgZgNCivjgYrjgoLjgoos44Gy44KN44GIDQor44Gq44GL44KA44KJLOOBn+OBoOOBsuOCjQ0KK+OBl+OCh+OBmCzjgojjgZfjgb/jgaQNCivjgY3jgZ/jgZjjgb4s44Gm44Gk44GKDQor44GE44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBsuOCieOBiizjgZHjgpPjgZgNCivjgZnjgb/jgoLjgags44Go44GX44Gy44GTDQor44Gq44GL44Gf44GrLOOBi+OBmuOBsuOBkw0KK+OBguOCieOBl+OBvizjgojjgZfjgYoNCivjgYvjgZ/jgoTjgb4s44Go44G/44GKDQor44GG44GI44GgLOOCiOOBng0KK+OBteOBmOOCguOBqCzjgbLjgo3jgZcNCivjgoTjgb7jga/jgZ8s44Gy44KN44Gu44KKDQor44GK44Gf44GrLOOBiuOBleOCgA0KK+OBhOOBhOOBrOOBvizjgYvjgaTjgoTjgZkNCivjgarjgYzjgZXjgo8s44Gy44KN44GXDQor44KE44GZ44GgLOOBkeOCk+OBmA0KK+OBteOBj+OBl+OBvizjgb7jgZXjgYoNCivjgZXjgYvjgY3jgbDjgoks44G+44GV44Go44GXDQor44GL44Go44GGLOOBvuOCguOCiw0KK+OCiOOBk+OBluOCjyzjgb7jgZXjgobjgY0NCivjgYvjganjga4s44Gy44KN44GXDQor44KE44G+44GK44GLLOOCiOOBl+OBruOCig0KK+OBi+OBv+OBn+OBqyzjgojjgZfjgYLjgY0NCivjgYvjgajjgYYs44GC44GN44KJDQor44Gu44KC44GoLOOBi+OBmuOBn+OBiw0KK+OBmeOBjuOCguOBqCzjga7jgbbjgoQNCivjgbXjgZjjga4s44Gy44KN44GXDQor44GE44Gu44GG44GILOOChuOBjeOBig0KK+OBr+OBmyzjgobjgY3jga7jgbYNCivjgoLjgoos44G+44GV44Gy44KNDQor44GL44KP44Gw44GfLOOBsuOCjeOBteOBvw0KK+OBi+OCj+OBnuOBiCzjgorjgoXjgZgNCivjga/jgZfjgoLjgags44Gk44Go44KADQor44Gy44KN44G+44GVLOOCiOOBl+OBsuOCjQ0KK+OBjeOBl+OCguOBqCzjgojjgZfjgo0NCivjgbLjgonjgaTjgYss44GX44KF44GYDQor44GG44GI44GgLOOCiuOCh+OBsuOBoQ0KK+OBguOCieOBhCzjgYLjgoTjgZMNCivjgYTjgYTjgaAs44Gf44GL44GXDQor44Gy44KN44GX44G+LOOBteOBv+OBn+OBiw0KK+OBhOOBleOBiyzjgYvjgZrjgb8NCivjgZnjgZrjgY0s44GN44KI44GXDQor44GP44KJ44KC44GhLOOBsuOCjeOBjQ0KK+OBleOBhOOBqOOBhizjgYjjgaTjgo0NCivjgZnjgZrjgY0s44Go44GX44GL44GaDQor44G144GL44KELOOBm+OBhOOBhOOBoQ0KK+OBleOBi+OBhCzjgZPjgYbjgZgNCivjgYrjgo/jgaAs44GX44KH44GYDQor44GL44KB44KELOOBvuOBleOBi+OBpA0KK+OBj+OBleOBhuOCiSzjgYjjgonjgbYNCivjgo/jgaAs44Gy44Gn44GKDQor44GU44GoLOOBl+OCh+OBsuOBoQ0KK+OBsuOCieOBteOBjyzjgaDjgYTjgZfjgpMNCivjgoLjgo3jgoQs44KE44GZ44Gy44KNDQor44GE44GR44GgLOOBj+OBq+OBig0KK+OBvuOBmeOBoCzjgb/jga7jgosNCivjgb/jgZrjga4s44KI44GX44KG44GNDQor44Gv44KE44GXLOOBqOOBl+OBsuOBkw0KK+OBguOBiuOBjSzjgb7jgZXjgobjgY0NCivjgZPjgbDjgoos44GX44KH44GeDQor44G/44GV44KPLOOBi+OBpOOBsuOCjQ0KK+OBn+OBi+OBjizjgojjgZfjgYoNCivjgYjjgpPjgaks44Gf44GL44GKDQor44GZ44GM44GV44KPLOOBvuOBleOBig0KK+OBiuOCiuOBr+OCiSzjgb/jgaTjgZANCivjgb7jgaTjgarjgYws44Gm44Gk44GYDQor44GL44GV44GELOOBqOOBl+OCjQ0KK+OBm+OCgOOCiSzjgajjgZfjgYoNCivjgZXjgY/jgonjgYQs44GL44Gk44G/DQor44Gm44KJ44GL44GpLOOBqOOBl+OBig0KK+OBteOBmOOBnyzjgYvjgZrjgYoNCivjgYvjgo/jga7jgbks44GN44KH44Gy44GhDQor44GC44GK44GwLOOBguOBjeOCiQ0KK+OCgOOCieOCguOBqCzjgbLjgafjgajjgZcNCivjgaTjgbzjgYbjgaEs44GV44Gg44KG44GNDQor44G144KL44GX44KHLOOBvuOBleOBr+OCiw0KK+OBl+OBsOOChOOBvizjgajjgZfjgZ/jgYsNCivjgoTjgb7jgoLjgags44GN44KI44Go44GXDQor44GG44Gh44GgLOOBqOOBl+OBsuOBkw0KK+OBvuOBiOOBluOCjyzjgb7jgZXjgobjgY0NCivjgZPjgoDjgoks44GV44G244KNDQor44KE44G+44GV44GNLOOBpuOBpOOBig0KK+OBhuOBl+OBjSzjgZHjgpPjgYTjgaENCivjgb7jgaHjgoTjgb4s44Gb44GE44GYDQor44G144GY44Gs44GNLOOBqOOCiOOBvw0KK+OBquOBi+OCgOOCiSzjgZ/jgYvjgbXjgb8NCivjgY/jgZnjgoLjgags44GN44KI44GC44GNDQor44GZ44Ga44GNLOOBn+OBi+OBlw0KK+OBhuOBiOOChOOBvizjgZ/jgYvjgYLjgY0NCivjgZPjgYTjgZEs44KI44GX44KG44GNDQor44Gv44Gb44GM44KPLOOChOOBmeOBguOBjQ0KK+OBteOCi+OBi+OCjyzjgYvjgYTjgaENCivjgoTjgb7jgaAs44G+44GV44KLDQor44KG44Gv44KJ44GOLOOChuOBjeOCiOOBlw0KK+OBiuOBl+OBvizjgZ/jgYvjgZcNCivjgZ3jga0s44G144GY44GKDQor44Go44G+LOOBteOBv+OBig0KK+OBn+OBi+OBr+OBlyzjgZ/jgYvjgbLjgo0NCivjgYvjgZHjga/jgZ8s44Gy44KN44G144G/DQor44GE44GX44GELOOBqOOBv+OBig0KK+OBleOBqOOBhizjgYLjgY3jga7jgbYNCivjgoDjgonjgoTjgb4s44KI44GX44GYDQor44G744KK44GQ44GhLOOBi+OBmuOBvw0KK+OBquOBi+OBluOBqCzjgZfjgofjgZgNCivjgZXjgajjgYYs44GZ44GZ44KADQor44GL44Gt44GTLOOBvuOBpOOBvw0KK+OBi+OBl+OBvizjgabjgovjgYoNCivjgajjgZDjgaEs44KI44GX44GKDQor44GT44G/44KE44G+LOOBqOOBl+OChuOBjQ0KK+OChOOBvuOBiuOBiyzjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44G/44Gk44GC44GNDQor44KC44KK44GfLOOChOOBmeOBsuOCjQ0KK+OCiOOBk+OBhCzjgYLjgY3jgYoNCivjgbLjgonjgYQs44G/44Gk44KI44GXDQor44GX44GE44Gw44GXLOOBruOCiuOChuOBjQ0KK+OBi+OBreOBkyzjgb7jgZXjgbLjgo0NCivjgarjgYvjga0s44GV44Gh44Gy44KNDQor44Gb44GN44GQ44GhLOOBl+OBmuOBig0KK+OBv+OCguOCiizjgb7jgZXjgYoNCivjgY3jgY/jgaEs44GX44GS44KLDQor44KE44G+44KC44GoLOOBruOCiuOChuOBjQ0KK+OBguOCieOBi+OCjyzjgZHjgpPjgZgNCivjgajjgoLjgY/jgass44G+44GT44GoDQor44Go44G/44GfLOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgb7jgZPjgagNCivjgajjgYzjgZcs44KK44KF44GeDQor44GL44KP44KA44KJLOOBqOOBl+OBruOBtg0KK+OBteOBj+OBquOBjCzjgbLjgo3jgoANCivjgb7jgY3jgZ8s44GN44G/44GC44GN44KJDQor44GV44GuLOOCiOOBl+OBruOBtg0KK+OBleOBqOOCgOOCiSzjgZHjgYTjgYTjgaENCivjgZXjgYvjga4s44GR44GE44GE44GhDQor44Gk44Gh44Gv44GXLOOCiOOBl+OBruOBtg0KK+OBhuOBiOOBrizjgZHjgYTjgYTjgaENCivjgarjgYvjgYzjgo8s44G+44GV44Gf44GRDQor44Go44GP44Gq44GMLOOBvuOBleOBteOBvw0KK+OBhOOBqOOBhizjga7jgbbjga/jgosNCivjgbLjgZXjgb7jgaQs44Gm44Gk44GKDQor44GK44Gk44GLLOOBn+OBi+OBsuOBkw0KK+OBi+OCj+OCguOBqCzjgb7jgZXjgZ/jgYsNCivjga7jgoDjgoks44GL44Gk44GYDQor44GL44GuLOOBn+OBi+OBig0KK+OBhuOBiOOBleOBiyzjgb7jgZXjgY0NCivjgbXjgZjjgo/jgoks44Gu44KK44GL44GaDQor44GK44GM44KPLOOBl+OCheOBuOOBhA0KK+OBj+OCieOBnyzjga7jgbbjgYoNCivjga/jgarjgZ3jgags44Go44GX44Gy44KNDQor44Gr44GX44GL44KPLOOBkeOBhOOBmA0KK+OBiOOBs+OBmSzjgajjgY/jgb8NCivjgoTjgZnjga7jgoos44G/44Gu44KLDQor44GV44GL44GELOOBkeOBhOOBmA0KK+OBvuOBiOOBoCzjgZjjgoXjgpPjgoQNCivjgbXjgY/jgaAs44GX44GS44GC44GNDQor44KE44G+44KC44GoLOOBkeOCk+OBng0KK+OBl+OBiuOBnyzjgbLjgafjgYLjgY0NCivjgoDjgonjgYvjgb8s44GR44KT44GYDQor44GE44GP44G/LOOBi+OBmuOBig0KK+OBquOBi+OBjizjgajjgojjgajjgZcNCivjgajjgY/jgb7jgaQs44GL44KB44GKDQor44Gf44Gr44GELOOBl+OBkuOBjQ0KK+OBiuOBsuOCg+OBvizjgojjgZfjgYTjgaENCivjgZ/jga4s44KG44Gf44GLDQor44GK44GfLOOChuOBhuOBmA0KK+OBj+OBvuOBrizjgbLjgonjgYoNCivjgZXjgo/jgZDjgaEs44G+44GV44GoDQor44GC44GV44GuLOOBqOOCguOBteOBvw0KK+OBleOBi+OBkOOBoSzjgajjgojjgbXjgb8NCivjgo/jgZ/jgarjgbks44Gf44GL44KI44GXDQor44GL44Go44GGLOOBsuOBp+OBig0KK+OBvuOBiOOBi+OCjyzjgojjgZfjga/jgosNCivjgb7jgaTjgoLjgags44Gf44GR44GXDQor44G+44Gk44KC44GoLOOCiOOBl+OBguOBjQ0KK+OChOOBvuOBquOBiyzjgZfjgZLjgZ/jgYsNCivjgZPjgbDjgoTjgZcs44G+44GV44Ga44G/DQor44G144GY44GfLOOChOOBmeOBvuOBlQ0KK+OChOOBjizjgajjgoLjgogNCivjgYTjgo/jgYQs44Gf44GL44GXDQor44G144GP44GX44G+LOOChuOBvw0KK+OBteOCi+OBi+OCjyzjgZ/jgYvjgYoNCivjgYrjgYzjgZ8s44Go44GX44KG44GNDQor44GZ44Ga44GNLOOBkeOCk+OBmA0KK+OBl+OBi+OBvizjgZ/jgYvjgaHjgbsNCivjgY3jgZfjgoLjgags44Gy44KN44Gu44G2DQor44GT44KN44GOLOOBguOBjeOBig0KK+OBteOBn+OBvyzjgb7jgZXjgY/jgasNCivjgoTjgZfjgo0s44GL44Ga44GKDQor44Gv44KK44GE44GRLOOBruOCiuOChuOBjQ0KK+OBl+OCgOOCiSzjgaTjgajjgoANCivjgarjgYzjgY/jgoks44GL44Ga44GKDQor44G/44Gq44G/LOOBn+OBi+OBlw0KK+OBqOOBj+OBquOBjCzjgYvjgZrjgYoNCivjgZ/jgarjgYss44Go44GX44GKDQor44Gm44KJ44GV44GNLOOBiOOBhOOBmA0KK+OBi+OBqOOBhizjgZPjgYbjgZgNCivjgb/jgZrjga4s44Gf44Gk44GKDQor44Gf44KC44GoLOOBvuOBleOBvw0KK+OBhuOBoeOBoCzjgb7jgZXjgZ/jgYsNCivjgZ/jgZHjgYTjgaEs44Gy44Gn44G/DQor44Gy44Gz44GuLOOBk+OBhuOBhOOBoQ0KK+OBk+OBsOOChOOBlyzjgb7jgZXjga7jgooNCivjgo/jgZ/jgarjgbks44Gf44Gg44Gy44GTDQor44G144GL44GgLOOBn+OBi+OBlw0KK+OBhOOBl+OBn+OBqyzjgZfjgoXjgavjgaENCivjgYTjgacs44GL44Gk44G/DQor44Gr44GE44GV44GoLOOBjeOCiOOBlw0KK+OBmeOBquOBr+OCiSzjgajjgZfjgYoNCivjgZfjgb/jgZos44KI44GX44Gv44KLDQor44GL44Go44GGLOOBguOCiuOBvuOBlQ0KK+OBquOBhOOBqOOBhizjgYTjgaHjgo3jgYYNCivjgZPjgYTjgZEs44GT44GG44GYDQor44GN44Gf44KA44KJLOOBjeOCiOOBlw0KK+OBi+OBjOOCjyzjgbXjgY/jgoANCivjgYTjgZHjgaAs44GX44KNDQor44GL44GuLOOBqOOBiuOCiw0KK+OBiuOBi+OCguOBqCzjgojjgZfjgYLjgY0NCivjgZPjgbDjgoTjgZcs44Gy44Go44GXDQor44GE44GX44GELOOBsuOCjeOBi+OBmg0KK+OBleOBiOOBjSzjgojjgZfjgobjgY0NCivjgZXjgo/jgaAs44Gy44KN44GXDQor44GU44GoLOOCiuOCh+OBuOOBhA0KK+OBiuOBrizjgbLjgo3jgZ/jgaANCivjgbXjgarjgYrjgYss44G+44GV44Gy44KNDQor44GX44KT44KELOOBi+OBmuOBsuOBlQ0KK+OBu+OCk+OBluOCjyzjgojjgZfjgobjgY0NCivjgoTjgb7jgYbjgaEs44G+44GV44KG44GNDQor44GE44GX44GuLOOBl+OCh+OBmA0KK+OBhOOBiuOBjyzjgb7jgZXjgYoNCivjgYLjgonjgY0s44Gu44KK44KG44GNDQor44G144GY44KP44GNLOOBmOOCheOCk+OBmA0KK+OBhOOBoeOCgOOCiSzjgajjgZnjgZENCivjga/jgoTjgZcs44Go44KI44Gy44GTDQor44KC44KKLOOBqOOBl+OChuOBjQ0KK+OBjeOCgOOCiSzjgZ/jgYvjgZcNCivjgobjgY3jgbXjgY0s44Gf44GL44GXDQor44Gv44GO44KC44GoLOOBneOBmA0KK+OBr+OBl+OCguOBqCzjgZXjgaDjgbLjgo0NCivjgY3jgZ/jgoTjgb4s44G+44GV44Gy44KNDQor44G144GY44KC44KKLOOBvuOBmeOChuOBjQ0KK+OBiuOBj+OBrizjgZ/jgYvjgZcNCivjgoTjgb7jgaAs44Gu44G244KG44GNDQor44Gf44GULOOBvuOBleOBsuOCjQ0KK+OBguOBleOBhCzjgb7jgZXjgYLjgY0NCivjgoLjgorjga4s44G+44GV44GL44GaDQor44G/44Gq44GELOOBsuOBi+OCiw0KK+OCguOCiuOBleOCjyzjgZfjgZLjgZgNCivjgarjgorjgZXjgo8s44Gk44Go44KADQor44KC44KK44KC44GoLOOBsuOBp+OBqOOBlw0KK+OBk+OBsOOChOOBlyzjgojjgYbjgZMNCivjgZfjgb7jgaAs44G/44Gu44KLDQor44GZ44Ga44GNLOOBvuOBleOBjQ0KK+OBteOBj+OBoCzjgojjgZfjgZXjgaANCivjgYLjgonjgYQs44Gf44GP44GYDQor44Gf44Gr44KE44G+LOOBl+OBkuOCiw0KK+OBiuOBi+OCguOBqCzjgb7jgZXjgbLjgZUNCivjgaDjgYTjgoLjgpMs44GE44KP44GKDQor44Gv44KE44GXLOOBsuOBp+OBig0KK+OBhOOBl+OBoCzjgojjgZfjgabjgosNCivjgbLjgo3jgZXjgo8s44GR44KT44GYDQor44KI44GX44GK44GLLOOBiuOBleOCgA0KK+OBvuOBpOOCguOBqCzjgb/jgaTjgYoNCivjgarjgYvjgZjjgb4s44Gf44GL44GXDQor44GN44GfLOOCiOOBl+OBsuOCjQ0KK+OBq+OBl+OCgOOCiSzjgbLjgo3jgZcNCivjga/jgaPjgajjgoos44GR44GE44GTDQor44KE44G+44KC44GoLOOBqOOCiOOBkw0KK+OBhOOBqOOBhizjgbXjgb/jgZMNCivjgY3jgZ/jgoDjgoks44G+44GV44KLDQor44Gf44Gq44GLLOOCiOOBl+OBruOCig0KK+OBhOOBiuOBjSzjgbLjgafjgY0NCivjgYvjgb7jgZ8s44G/44GV44GTDQor44GX44G/44GaLOOBkeOBhA0KK+OBvuOBmeOBiuOBiyzjgYLjgY3jga7jgbYNCivjgZXjgo/jgaAs44GX44KF44Gy44GhDQor44Gq44GL44GE44GXLOOBvuOBpOOBig0KK+OCj+OBn+OBquOBuSzjgb/jga7jgosNCivjgojjgZfjgZbjgo8s44KI44GX44Gq44GKDQor44GV44GV44GK44GLLOOBteOBj+OBig0KK+OBn+OBi+OBvyzjgojjgZfjgb/jgaENCivjgoTjgb7jgZDjgaEs44G+44GV44Ga44G/DQor44GE44G+44G144GPLOOBl+OCk+OBhOOBoQ0KK+OBi+OBv+OChCzjgZXjgYvjgYgNCivjgo/jgZUs44GV44Gq44GIDQor44GN44GP44GhLOOBl+OBkuOBi+OBmg0KK+OBhuOBi+OBhCzjgbLjgafjgYoNCivjgYTjgo/jgb4s44GL44Ga44GKDQor44Gk44GYLOOBguOBjeOCiQ0KK+OBn+OBkeOBoCzjgb7jgZnjgb8NCivjgZvjgajjgYzjgo8s44Go44G/44GKDQor44GT44GX44KA44KJLOOBqOOBv+OChOOBmQ0KK+OCj+OBn+OBquOBuSzjgZPjgYbjgZgNCivjgYbjgZXjgb8s44Gy44KN44GXDQor44GK44GL44GgLOOBsuOBp+OBig0KK+OBteOBmOOCj+OCiSzjgZfjgofjgZMNCivjgYvjgajjgYYs44Gf44GR44KG44GNDQor44GE44GX44Gv44KJLOOBvuOBleOBsuOCjQ0KK+OBsuOBquOBnyzjgYLjgY3jgYoNCivjgYbjgYjjgZnjgY4s44Gu44KK44GC44GNDQor44GX44Gw44GfLOOBl+OCh+OBsuOChw0KK+OBiuOBj+OBoCzjgajjgZfjgYoNCivjgZnjgarjgoTjgb4s44Gf44Gg44GXDQor44GE44G+44GELOOBqOOBv+OBiA0KK+OBquOBi+OCgOOCiSzjgbLjgafjgYoNCivjgarjgYvjgoLjgoos44GC44GN44Gy44GTDQor44G144GL44GV44KPLOOBv+OBjeOBig0KK+OBv+OBmuOBnyzjgZvjgYTjgYTjgaENCivjgYrjga4s44G244KT44GYDQor44GV44GE44Go44GGLOOBleOBoOOBpOOBkA0KK+OBl+OCheOBqSzjgZfjgZLjgajjgZcNCivjgbXjgY/jgYQs44G+44GV44GXDQor44Gu44GgLOOBmOOCheOBq+OBoQ0KK+OBiuOBrizjgb/jgaTjga7jgbYNCivjgZPjgYzjgb8s44Go44GX44Gy44GTDQor44G/44GNLOOBl+OCh+OBmA0KK+OBhOOBkeOBoCzjgoTjgZnjgobjgY0NCivjgbXjgZjjgoLjgoos44G+44GV44KLDQor44Gf44GL44GgLOOBjeOCh+OBuOOBhA0KK+OBhOOBkeOBoCzjgZfjgZLjgbLjgo0NCivjgYTjgajjgYYs44Gu44G244GL44GaDQor44KP44Gf44Gq44G5LOOBvuOBleOCiw0KK+OBleOCj+OBoCzjgojjgZfjgYoNCivjgb7jgYjjgZjjgb4s44GC44GN44Gy44GTDQor44GE44Gq44KA44KJLOOBruOBtuOBig0KK+OBquOBi+OCgOOCiSzjgZPjgYbjgZgNCivjgarjgYvjgZjjgb4s44KA44Gt44Gy44GVDQor44GE44KP44G+LOOBl+OCk+OBhOOBoQ0KK+OCj+OBi+OBpOOBjSzjgYvjgZrjgZcNCivjga/jgZvjgYzjgo8s44Gy44KN44GXDQor44GE44Gu44GG44GILOOBv+OBruOCiw0KK+OBi+OBleOBr+OCiSzjgZ/jgaTjgbLjgZMNCivjgavjgZfjgoTjgb4s44GL44Gq44GIDQor44GZ44Gp44GGLOOBr+OCi+OBjQ0KK+OBiuOBi+OBuSzjgojjgZfjgb7jgZUNCivjgbXjgY/jgbAs44G+44GV44KG44GNDQor44G+44Gk44Gq44GMLOOBteOBv+OBig0KK+OBleOBi+OBhCzjgajjgZfjgbLjgZMNCivjgbXjgZjjgZ8s44GL44Ga44GKDQor44Gq44GL44KE44G+LOOBruOBtuOBng0KK+OCiOOBreOBoCzjga7jgbbjgZ/jgYsNCivjgY/jgb7jgZ8s44GL44Ga44Gy44KNDQor44GT44KE44G+LOOBvuOBleOBteOBvw0KK+OCiOOBreOChOOBvizjgb7jgZPjgagNCivjgbXjgZjjgYvjgo8s44GZ44GZ44KADQor44Gv44KK44GM44KELOOBsuOCjeOBlw0KK+OBr+OBm+OBjOOCjyzjgZfjga7jgbYNCivjgojjgZfjgaAs44KI44GX44KG44GNDQor44GP44GZ44Gu44GNLOOBsuOBp+OBjQ0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgo0NCivjgarjgYzjgZ8s44Gf44GL44GXDQor44Gd44Gu44GP44KJLOOBk+OBhuOBmA0KK+OBvuOBmeOCguOBqCzjgb7jgZXjgbLjgo0NCivjgYrjgY7jga/jgoks44GY44KF44Gy44GhDQor44KI44GX44GgLOOBqOOBl+OBsuOCjQ0KK+OBn+OBquOBiyzjgZHjgpPjgZgNCivjgYjjgaAs44KE44GZ44GKDQor44Gq44GL44GY44KHLOOBsuOCjeOBsuOBkw0KK+OBhOOBhOOBmuOBiyzjgobjgY3jgYoNCivjgabjgonjgavjgZcs44Gf44GL44KE44GZDQor44G144GP44GELOOBkeOCk+OBng0KK+OBp+OCgOOCiSzjgZPjgYbjgYTjgaENCivjgZXjgYjjgY0s44Gy44KN44KG44GNDQor44GG44Gh44GgLOOBn+OBkeOBlw0KK+OBl+OBhOOBqizjgZHjgpPjgZgNCivjgbXjgovjgoQs44Gy44KN44GC44GNDQor44Gq44GM44GP44G8LOOBi+OBmuOBsuOBqA0KK+OBpuOCieOBhuOBoSzjgZ/jgaDjgZcNCivjgYrjgZ/jgYss44KI44GX44G144G/DQor44G144GY44KI44GXLOOBleOBoeOBkw0KK+OBleOBhOOBqOOBhizjgZfjgpPjgZgNCivjgY/jgo3jgZXjgo8s44Gy44KN44GXDQor44GE44GX44GL44KPLOOCiOOBl+OBig0KK+OCiOOBl+OBrizjgbLjgo3jgZcNCivjgZPjgb/jgoQs44G+44Gq44G2DQor44KE44G+44GM44GfLOOBvuOBleOBsuOBkw0KK+OBpOOChCzjgZvjgYTjgYTjgaENCivjgavjgZfjga4s44Gf44KC44GkDQor44GG44Gh44GgLOOBruOBvOOCiw0KK+OCj+OBn+OBquOBuSzjgb7jgZXjga7jgbYNCivjgoLjgorjgZ8s44Gb44GE44GYDQor44GT44GX44GgLOOBi+OBmuOBsuOBkw0KK+OBsuOCjeOBmyzjgZfjgZLjga/jgosNCivjgojjgZfjgoDjgoks44Gy44Gn44Gu44KKDQor44G/44GG44KJLOOBruOBtuOBig0KK+OBk+OBhOOBmuOBvyzjgojjgZfjga/jgosNCivjgabjgonjgYos44GK44GV44KADQor44Gb44GM44KPLOOBsuOBp+OBguOBjQ0KK+OBi+OBhOOBmuOBiyzjgb7jgZXjgYLjgY0NCivjgbXjgY/jgb7jgZks44Go44GK44KLDQor44GE44Go44GG44GaLOOBvuOBleOBig0KK+OBm+OBjeOBjOOBvyzjgbXjgZXjgYgNCivjgbXjgZgs44GR44KT44GdDQor44KI44GX44KA44KJLOOBn+OBi+OBlw0KK+OBteOCi+OCguOBqCzjgYvjgZrjgojjgZcNCivjgZ/jgY3jgZ8s44Go44GX44GKDQor44GK44GL44GgLOOBi+OBiuOCiw0KK+OBn+OBi+OBr+OBlyzjga7jgorjgobjgY0NCivjgZ/jgavjgbXjgZgs44Gy44GV44GKDQor44GE44G+44GK44GLLOOBi+OBmuOBv+OBoQ0KK+OCj+OBn+OBquOBuSzjga7jgbzjgosNCivjgoTjgb7jgoLjgags44GT44GeDQor44KI44GgLOOCiuOCh+OBuOOBhA0KK+OBteOBi+OChOOBvizjgYvjgaTjgajjgZcNCivjgoTjgb7jgZDjgaEs44KI44GX44GL44GaDQor44GV44GuLOOBsuOBp+OBruOBtg0KK+OBn+OBi+OBr+OBlyzjgb/jgaTjgbLjgo0NCivjgb7jgaTjgoLjgags44G/44Gh44GKDQor44KE44GuLOOBguOBjeOCiQ0KK+OBguOBjeOBsCzjgZnjgZrjgogNCivjgb/jganjgorjgYvjgo8s44GY44KH44GYDQor44Gf44GL44GXLOOBsuOCjeOBlw0KK+OBteOCi+OBi+OCjyzjgYTjgZrjgb8NCivjgbLjgY3jgZ8s44GN44KI44GYDQor44GK44GW44GNLOOCiOOBl+OChuOBjQ0KK+OBguOBiuOBjSzjgb7jgarjgbYNCivjgZXjgYjjgZDjgZUs44Gy44KN44Gy44GVDQor44G144GY44KC44GoLOOBguOBjeOCiQ0KK+OBk+OBq+OBlyzjgb7jgZXjgYLjgY0NCivjgYrjgavjgZcs44GL44Ga44Gy44KNDQor44Gy44GQ44GhLOOBkeOCk+OBmA0KK+OBj+OBvOOBnyzjgYvjgYrjgosNCivjgoTjgb7jgZDjgaEs44KE44GZ44GKDQor44G144KL44GL44KPLOOBsuOCjeOBlw0KK+OBquOCiuOBnyzjgbLjgZXjgYoNCivjgZ/jgarjgYss44GN44G/DQor44Gv44Gf44GR44KE44G+LOOChuOCig0KK+OBv+OChOOCguOBqCzjgY3jgojjgZcNCivjga7jgZbjgY0s44Gy44GV44GXDQor44Gv44Gb44GM44KPLOOBi+OBmuOCiOOBlw0KK+OBl+OCieOBi+OCjyzjgbLjgo3jgb/jgaQNCivjgYLjgYTjgaAs44G/44KI44GTDQor44Gy44KN44GL44KPLOOBv+OBruOCiw0KK+OCiuOCheOBi+OCjyzjgYjjgYTjgZgNCivjgoTjgb7jgZDjgaEs44KI44GX44GC44GNDQor44GP44KK44GV44GNLOOBl+OBkuOBiuOBvw0KK+OCguOCiuOCguOBqCzjgb7jgZXjgbLjgo0NCivjgY/jgbzjgZ8s44Gy44KN44GXDQor44GP44G+44GV44GTLOOChuOBhuOBmA0KK+OBguOBoOOBoSzjgZfjgoXjgpPjgZnjgZENCivjgZPjga4s44G144GY44GNDQor44KE44G+44KC44GoLOOBmOOCheOBq+OBoQ0KK+OBhOOCj+OBhCzjgZfjgo0NCivjgYrjga/jgoks44G+44GV44GoDQor44GE44GX44Gv44KJLOOBhOOBoeOCjeOBhg0KK+OBguOBiuOBjSzjgbXjgZXjgYTjgaENCivjgoLjgoos44Gm44Gk44GKDQor44KN44Gj44G944KT44GOLOOBv+OBleOBig0KK+OBi+OBqOOBhizjgoTjgZnjga/jgosNCivjgZXjgajjgYYs44Gh44KH44GX44KNDQor44G+44GI44Ge44GuLOOCiOOBl+OBsuOBkw0KK+OBteOBmOOCguOBqCzjgZPjgbjjgYQNCivjgZ/jgavjgoDjgoks44Gy44KN44GXDQor44Gq44GL44Gr44GXLOOBpOOCiOOCgA0KK+OBn+OBi+OBr+OBlyzjgb7jgZnjgb8NCivjgarjgYvjgYQs44Gy44Gn44GKDQor44Gf44GL44Gv44GXLOOCiOOBl+OBv+OBoQ0KK+OBl+OCgizjgb7jgZXjgYLjgY0NCivjgZfjgbDjgZ8s44KC44KK44GX44GSDQor44G144KL44G/44GhLOOBkeOCk+OBnw0KK+OBn+OBkeOBoCzjgbLjgo3jgYLjgY0NCivjgbXjgZjjgZ8s44GI44Gk44GTDQor44GL44GO44KE44G+LOOCiuOCh+OBnw0KK+OCj+OBoSzjgbLjgafjgYoNCivjgbXjgZjjgZ8s44Go44KC44Gu44KKDQor44GT44KT44GpLOOBn+OBkeOBlw0KK+OBvuOBpOOCguOBqCzjgojjgorjgZMNCivjgbXjgY/jgYQs44G+44GV44GC44GNDQor44GZ44GM44KP44KJLOOBk+OBhuOBhOOBoQ0KK+OBteOBi+OChOOBvizjgoTjgZnjgYoNCivjgYTjgb7jgYQs44GI44GE44GY44KNDQor44GV44Go44GGLOOBsuOBp+OBruOBtg0KK+OBi+OBquOBluOCjyzjgbLjgo3jgZcNCivjgbXjgaHjgZbjgY0s44KG44Gf44GLDQor44Gk44GL44GgLOOBl+OCk+OBmA0KK+OBhOOBl+OBluOBjSzjgYvjgZrjgb8NCivjgajjgY/jgoks44Gf44GR44G144G/DQor44Go44Gu44GV44GNLOOChuOBsuOBoeOCjQ0KK+OBn+OBi+OBjSzjgYTjgZXjgoANCivjgbXjgZjjgZ8s44KI44GX44GKDQor44Gq44GM44GbLOOBguOBjeOCiQ0KK+OBn+OBquOBiyzjgbLjgo3jgZcNCivjgZ/jgaTjgb8s44Gm44Gk44KEDQor44KE44G+44KC44GoLOOBvuOBleOBruOCig0KK+OBteOBj+OBnyzjgbLjgajjgZcNCivjgY/jgo/jga/jgoks44GX44GS44Gu44KKDQor44G144GY44GfLOOBn+OBi+OBlw0KK+OBhOOBquOBj+OBvizjgbLjgafjgobjgY0NCivjgb/jgZXjgYos44GT44GG44GY44KHDQor44Gq44GL44GX44GfLOOBguOBjeOCiQ0KK+OBiuOBj+OChOOBvizjgb7jgZXjgZ/jgYsNCivjgarjgYzjgYgs44GP44Gr44Gy44GTDQor44Gq44GM44GELOOBi+OBmuOBig0KK+OChOOBvuOBluOBjSzjgYrjgZXjgoANCivjgZfjgonjgYTjgZcs44GX44KH44Gy44GhDQor44GG44GI44GgLOOBn+OBi+OChuOBjQ0KK+OBiuOBmOOBvizjgb/jgY3jgYoNCivjgbLjgo3jgZss44KC44Go44KI44GXDQor44Gy44KJ44GuLOOBsuOBp+OBig0KK+OBteOCi+OBnyzjgbLjgo3jgobjgY0NCivjgZPjgazjgb4s44KM44GE44GTDQor44Gf44GL44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBguOBleOBl+OBnyzjgojjgZfjgYLjgY0NCivjgojjgaTjga/jgZcs44KG44Gy44GhDQor44Gk44Gh44KELOOBn+OBi+OBquOBig0KK+OBiuOBq+OBlyzjgojjgZfjgobjgY0NCivjgoTjgb7jgZDjgaEs44GI44GE44GeDQor44GX44Ga44GuLOOBqOOBl+OBkw0KK+OBr+OBl+OBuSzjgZPjgZ4NCivjgbvjgorjgYQs44G+44GT44GoDQor44Gq44GM44GK44GLLOOChuOBhuOBmA0KK+OBj+OCiuOBnyzjgYvjgZrjgbLjgo0NCivjgY3jgbAs44GX44KH44GUDQor44GE44GgLOOBvuOBleOCiw0KK+OBteOBj+OBqOOBvyzjgZfjgofjgbLjgaENCivjgZPjgbDjgoTjgZcs44GX44GS44KLDQor44GE44KKLOOBsuOCjeOBguOBjQ0KK+OBleOBnyzjgb7jgZXjga7jgbYNCivjgb7jgovjgoTjgb4s44G+44GV44KLDQor44GC44GK44KE44G+LOOBn+OBi+OBig0KK+OBl+OCk+OBqSzjgYvjgYrjgosNCivjgYLjgYTjgYvjgo8s44Go44KC44Gv44KLDQor44GV44GL44Gu44GG44GILOOBvuOBleOBteOBvw0KK+OBteOBmOOBvuOBjSzjgbLjgo3jgZcNCivjgYvjgo/jga/jgoks44Gf44GL44G/DQor44KA44KJ44GfLOOBhOOBleOBig0KK+OCiOOBl+OBoCzjgZfjgofjgZgNCivjgYTjgZ/jgY/jgoks44GE44GV44KADQor44GY44Ge44Gw44KJLOOCiuOCh+OBsuOBoQ0KK+OBn+OBquOBiyzjgb/jgojjgZcNCivjgYvjgZjjgo/jgoks44Gu44KK44GTDQor44Gf44Gq44GLLOOBl+OCh+OBuOOBhA0KK+OBr+OBmeOBhOOBkSzjgZXjgarjgYgNCivjgajjgb4s44G+44Gh44GTDQor44GL44KP44GN44GfLOOBi+OBmuOBvw0KK+OBvuOBpOOCguOBqCzjga7jgbzjgosNCivjga/jgZvjgYzjgo8s44GR44KT44GE44GhDQor44G144GY44GELOOBvuOBmeOBkA0KK+OBruOCgOOCiSzjgbLjgo3jgbXjgb8NCivjgojjgYbjgZPjgZ8s44GX44GS44KLDQor44GL44Gq44GW44KPLOOChOOBmeOBig0KK+OBvuOBmeOChOOBvizjgY3jgofjgZgNCivjgYvjga4s44GR44KT44GE44GhDQor44G144Gq44KE44G+LOOBn+OBoOOBguOBjQ0KK+OChOOBvuOBl+OBnyzjgb7jgZPjgagNCivjgZXjgajjgYYs44Gy44Gn44KG44GNDQor44GL44KB44KC44GoLOOChuOBsuOBoQ0KK+OBhOOBqOOBhizjgabjgaTjgoQNCivjgYrjgY/jgoDjgoks44KIDQor44G144GY44GELOOBqOOBl+OBig0KK+OBjeOBr+OCiSzjgZfjgoXjgbLjgaENCivjga7jgoDjgoks44GK44GV44KADQor44GC44GP44Gf44GM44KPLOOBl+OCheOBmA0KK+OBhOOBl+OBoCzjgobjgb/jgZMNCivjgYbjgoHjga/jgoks44GC44GN44KJDQor44GK44GOLOOChOOBmeOBsuOBkw0KK+OBk+OCk+OBqSzjgb/jgaTjgYoNCivjgZ/jgZHjgaAs44Go44GK44KLDQor44G+44Gk44GELOOBv+OBoeOBn+OBiw0KK+OBi+OBv+OBiuOBiyzjgbLjgafjgYoNCivjgYvjgoLjgZfjgZ8s44GT44GeDQor44KE44Gq44GO44GV44KPLOOBl+OCk+OBhOOBoQ0KK+OBn+OBkeOBhuOBoSzjgbLjgo3jgZcNCivjgoLjgpPjgb4s44GI44Gk44GKDQor44GE44GE44GgLOOBjeOBoeOBsuOBkw0KK+OBr+OBm+OBjOOCjyzjgb7jgZXjgYvjgZoNCivjgarjgYzjgbvjgoos44KI44GX44G144G/DQor44KC44KK44GK44GLLOOBjeOCiOOBlw0KK+OBq+OBl+OChOOBvizjgZfjgZLjgYoNCivjgoTjgb7jgoLjgags44Gm44KL44GKDQor44GE44GX44GgLOOBn+OBi+OBlw0KK+OBteOCi+OBqSzjgorjgZXjgY8NCivjgYvjgpPjgaAs44Gk44Go44KADQor44GE44GX44GgLOOBj+OBq+OBig0KK+OBleOBhOOBqOOBhizjgZfjgZLjgosNCivjgY3jgoDjgoks44Gq44GK44KG44GNDQor44GE44KP44G/LOOBr+OCi+OBig0KK+OCguOCiizjgZHjgYTjgZMNCivjgZ/jgYvjgoTjgb4s44G144G/44GI44GEDQor44Gv44KE44GX44GQ44GhLOOBvuOBleOCiw0KK+OBleOBhOOBqOOBhizjgbLjgo3jgb8NCivjgZfjgbDjgZ/jgY0s44Gf44GR44Gy44KNDQor44GK44GO44Gv44KJLOOBvuOCguOCiw0KK+OBi+OBqOOBhizjgb/jga7jgosNCivjgbXjgY/jgags44GL44Gq44GIDQor44GK44GgLOOBqOOBl+OBmA0KK+OBleOBqOOBhizjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44Gf44Gg44Gu44KKDQor44Gv44G+44GgLOOBguOBjeOBig0KK+OBiuOBjOOBleOCj+OCiSzjgoTjgZnjgYoNCivjgoDjgonjgY0s44Go44GX44GKDQor44GK44Gv44GXLOOBvuOBleOBig0KK+OBn+OBi+OBrizjgb7jgZXjgYLjgY0NCivjgarjgYvjgZbjgo8s44GX44GS44KLDQor44G/44KE44GYLOOBn+OBi+OBsuOCjQ0KK+OBmeOBiOOBquOBjCzjgbLjgajjgZcNCivjgZ/jgZ/jgY0s44KE44GZ44Gu44G2DQor44KI44GX44GgLOOBl+OCheOBhOOBoQ0KK+OBguOBiuOBjSzjgZfjgofjgZ4NCivjgZnjgY7jgoDjgoks44GC44GN44Gy44GTDQor44GE44Go44GGLOOChOOBmeOBig0KK+OBn+OBi+OBr+OBlyzjgY/jgavjgYLjgY0NCivjgZnjgZrjgY0s44KI44GX44Gv44KLDQor44GL44Gf44KE44G+LOOBhOOBleOBvw0KK+OBleOBhOOBqOOBhizjgarjgYrjgoQNCivjgZ/jgZjjgb4s44Gy44Gn44GC44GNDQor44GC44G5LOOBvuOBleOBsuOCjQ0KK+OBquOBi+OBmOOBvizjgobjgZ/jgYsNCivjgoTjgb7jgZDjgaEs44Gf44GL44Gy44KNDQor44KP44GN44GW44GLLOOBpuOBpOOChA0KK+OBleOBkyzjgYvjgZrjgbLjgZMNCivjgYrjgaTjgYss44GC44GN44Gy44GoDQor44Gk44GL44KC44GoLOOBn+OBi+OBlw0KK+OBhOOBruOBhuOBiCzjgYvjgZrjgajjgZcNCivjgarjgYzjgYos44GC44GN44Gy44KNDQor44GG44KJ44GwLOOChOOBmeOBig0KK+OBk+OBmOOBvizjgYLjgY3jgokNCivjgZ/jgZHjgaAs44GE44KP44GKDQor44GC44GK44GuLOOBsuOBp+OBlw0KK+OBhOOBmuOBi+OCjyzjgYvjgYrjgosNCivjgY/jganjgYYs44G+44GV44Go44GXDQor44Gq44GL44KA44KJLOOBl+OCk+OBhOOBoQ0KK+OBvuOBpOOBiizjgYTjgZXjgoANCivjgYTjgarjgYzjgY0s44Go44GX44Gy44GTDQor44Gr44GX44KC44GoLOOBvuOBleOBlw0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgZcNCivjgYrjga7jgafjgoks44KI44Gy44Gh44KNDQor44GE44GX44GW44GLLOOBl+OBkuOBjQ0KK+OBr+OBjuOCj+OCiSzjgb7jgZPjgagNCivjgbXjgovjgZ8s44G+44GV44Gy44GTDQor44GG44GI44GY44G+LOOBleOBoOOBqA0KK+OBrOOBvuOBnyzjgajjgoLjgbLjgo0NCivjgYjjgpPjgaks44GZ44GZ44KADQor44GL44GM44KE44G+LOOBteOBv+OBig0KK+OChuOCiuOCguOBqCzjgajjgYrjgosNCivjgbXjgaEs44G+44GV44GKDQor44G144GY44GK44GNLOOChOOBmeOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgobjgYbjgZgNCivjgb7jgaTjgoLjgags44GY44Gr44GhDQor44Gy44KN44GbLOOBruOBtuOBig0KK+OBsOOBsCzjgYvjgZrjgYLjgY0NCivjgZPjgbDjgoTjgZcs44Go44GX44KG44GNDQor44GZ44Ga44GNLOOBvuOBleOBteOBvw0KK+OBquOBi+OChOOBvizjgZfjgpPjgYTjgaENCivjgY3jgZcs44GX44KH44Gy44GhDQor44GC44GV44GuLOOBsuOBqOOBlw0KK+OBiOOCk+OBqSzjgabjgaTjgoQNCivjgYTjgZfjgbDjgZcs44Go44GX44Gy44GTDQor44GL44GE44GgLOOBkeOCk+OBng0KK+OBhOOBkeOBmOOBvizjgb7jgZXjgosNCivjga/jgonjgaAs44Go44G/44GKDQor44Gv44G+44GuLOOBl+OCheOBsuOBoQ0KK+OBi+OCj+OBhCzjgb7jgZXjgbLjgo0NCivjgo/jgaAs44GX44KT44KEDQor44GV44Go44GGLOOBsuOBqOOBlw0KK+OBn+OBquOBiyzjgZ/jgaDjgYoNCivjgYLjgY/jgaQs44Gy44KN44Gu44G2DQor44GE44Go44GGLOOBvuOBleOBqOOBlw0KK+OBguOCk+OBqeOBhizjgb/jgaTjgYLjgY0NCivjgYLjgYTjgZbjgo8s44KI44GX44GL44GkDQor44GP44G844GfLOOBmOOCheOBsuOBoeOCjQ0KK+OBteOBi+OBhuOBvyzjgbLjgo3jgobjgY0NCivjgZfjgb/jgZos44G+44GV44G/DQor44Gf44GL44Gv44GXLOOBi+OBmuOBig0KK+OBquOBv+OBjSzjgbLjgo3jgZcNCivjga7jgZbjgo8s44G+44GV44GL44GaDQor44GT44GE44Gf44Gw44GXLOOBguOBjeOBig0KK+OBn+OBpuOBhOOBlyzjgaDjgYTjgZQNCivjgYvjgo/jgYvjgb8s44G/44Gk44GKDQor44GT44Gw44KE44GXLOOBsuOBp+OBguOBjQ0KK+OBiuOBruOBmuOBiyzjgajjgZfjgYoNCivjgZ/jgZDjgaEs44GT44Gu44KADQor44Gf44GL44Gv44GXLOOBv+OBoeOCiw0KK+OBleOBqOOBhizjgajjgZfjgb7jgZUNCivjgY/jgo/jga/jgoks44Gy44KN44GXDQor44Gb44GoLOOBm+OBhOOBmA0KK+OBlOOBkSzjgojjgZfjga7jgooNCivjgojjgZfjgoDjgoks44GN44KI44G/DQor44Gf44GL44KE44G+LOOBhOOCj+OBmA0KK+OBleOBleOBjSzjgbXjgajjgZcNCivjgYvjga4s44GN44KI44GXDQor44Gf44GL44Gv44GXLOOBleOBqOOBlw0KK+OBquOBjOOBiuOBiyzjgbLjgajjgZcNCivjgZnjgZrjgY0s44GV44Go44GXDQor44KE44G+44GQ44GhLOOBpuOBpOOCjQ0KK+OCguOCiizjgoTjgZnjgZcNCivjgZnjgZrjgY0s44GN44KI44Gy44KNDQor44GG44GI44KA44KJLOOBsuOCjeOBvw0KK+OChOOBtuOBr+OCiSzjgYvjgZrjgYoNCivjgZfjgonjgYTjgZcs44GL44Ga44Gu44KKDQor44GN44GP44GfLOOBsuOBp+OBig0KK+OBquOBi+OBhCzjgb/jgaTjgZANCivjgY/jgonjgoLjgags44G+44GV44GC44GNDQor44GZ44G/44KI44GXLOOChOOBmeOBsuOCjQ0KK+OBn+OBi+OBjizjgZfjgo0NCivjgZfjgofjgZgs44GV44Go44GXDQor44GK44GV44GgLOOBsuOBp+OBjQ0KK+OBguOBleOBrizjgY3jgojjgZcNCivjgYTjgo/jgZUs44Gu44G244KG44GNDQor44Gw44GwLOOChuOBjeOBig0KK+OBsuOCjeOBnyzjgZfjgZLjgY0NCivjgbXjgZjjgoLjgags44GX44GS44Gv44KLDQor44GV44GuLOOBqOOCguOChuOBjQ0KK+OCguOBqOOBjSzjgbLjgafjgY0NCivjgYTjgajjgYYs44GC44GN44KJDQor44GG44GR44GM44KPLOOBleOBqOOCiw0KK+OBhuOCgeOBsOOChOOBlyzjgYTjgaTjgYoNCivjgYTjgarjgajjgb8s44G+44GV44Go44GXDQor44Gf44GL44KE44Gq44GOLOOBv+OBpOOCiOOBlw0KK+OBr+OCiSzjgYvjgZrjgY0NCivjgarjgYvjga/jgoks44G+44GV44Gu44G2DQor44GV44GE44Gf44GRLOOBv+OBpOOBruOCig0KK+OBi+OBl+OChOOBvizjgobjgZ/jgYsNCivjgZXjgYvjgYQs44Gy44Gn44GKDQor44GE44Go44GGLOOBsuOCjeOBsuOBlQ0KK+OBquOBi+OCgOOCiSzjga7jgorjgYoNCivjgYrjga7jgY4s44G+44GV44KG44GNDQor44GE44GL44G/LOOBleOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgY3jgojjgZcNCivjgZfjgYTjgaos44KG44Gf44GLDQor44Gf44G+44Gu44GELOOBleOBqOOBiuOCiw0KK+OBj+OBvCzjgb/jgZXjgZMNCivjgY3jgoDjgoks44G+44GV44KLDQor44G744Gj44GfLOOChOOBmeOChuOBjQ0KK+OBu+OBi+OCiizjgb7jgZXjga7jgooNCivjgZXjgajjgYYs44G144G/44GKDQor44G744GX44GuLOOBhOOBleOBig0KK+OBi+OBtuOCieOBjizjgYvjgZrjgojjgZcNCivjgYrjgZXjgaAs44G+44GV44GC44GNDQor44GZ44GI44Gy44KNLOOBhOOBleOBig0KK+OCgOOCieOBi+OCjyzjgbbjgpPjgo0NCivjgYTjgo/jgZXjgY0s44Gb44GE44GYDQor44KE44G+44KA44KJLOOBsuOCjeOBlw0KK+OCguOCiuOBnyzjgajjgoLjgobjgY0NCivjgYTjgZHjgaAs44Gu44KK44GL44GkDQor44KE44GG44GhLOOCiOOBl+OBruOBtg0KK+OChOOBvuOBl+OBnyzjgZ/jgZHjgZcNCivjgo/jgZ/jgarjgbks44KG44Gf44GLDQor44GC44Gq44KTLOOBl+OCk+OBhOOBoQ0KK+OBq+OBl+OBrizjgajjgb/jgYoNCivjgZPjgZfjgb/jgZos44GX44KH44Gy44GhDQor44Gf44GL44Gv44GXLOOBsuOBp+OBguOBjQ0KK+OBiOOBjOOCjyzjgZ/jgYvjgZcNCivjgoTjgb7jgZbjgY0s44Gy44Go44GXDQor44GE44G+44Gc44GNLOOBn+OBi+OChuOBjQ0KK+OBmeOBmuOBjSzjgYLjgY3jgYoNCivjgavjgZfjga/jgoks44GX44KF44Gy44GhDQor44GK44GL44G5LOOBqOOBl+OBsuOCjQ0KK+OBleOBi+OBhCzjgajjgZfjgbXjgb8NCivjgZ/jgaAs44Gf44GL44GKDQor44GZ44GI44KI44GXLOOCiOOBl+OBvw0KK+OBr+OChOOBlyzjgZHjgpPjgZgNCivjgZ/jgYvjga/jgZcs44GX44KT44GYDQor44GT44GC44GXLOOBn+OBpOOBig0KK+OCguOCiuOBi+OCjyzjgojjgZfjga7jgooNCivjgYvjgajjgYYs44Gy44KN44GXDQor44G+44GI44GwLOOBi+OBmuOBsuOBpw0KK+OChOOBrizjgbLjgo3jgZcNCivjgYTjgajjgYYs44GI44Gk44GYDQor44Gq44GL44GELOOBn+OBpOOCjQ0KK+OBiuOBoOOBjuOCiizjgoTjgZnjgYoNCivjgYjjgpPjgaks44GL44Ga44GKDQor44Gf44GR44GELOOBqOOBl+OBig0KK+OBquOBi+OBn+OBqyzjgZ/jgaTjgbLjgo0NCivjgYTjgo/jgZXjgY0s44KI44GX44G144KGDQor44GL44KJ44GL44GVLOOBsuOBp+OBjQ0KK+OBguOBleOBrizjgobjgbLjgaENCivjgYTjgo/jgbbjgaEs44GE44GV44KADQor44Gv44KT44GgLOOBvuOBleOBsuOCjQ0KK+OBpuOCieOBiizjgajjgZfjgYoNCivjgZ/jgZHjgYQs44G/44GN44GKDQor44Gv44GX44KC44GoLOOBhOOBn+OCiw0KK+OBv+OChOOBleOBiyzjgZHjgpPjgZgNCivjgabjgonjgaAs44Gv44GY44KBDQor44GV44GL44GfLOOBiOOBhOOBlw0KK+OBquOBjOOChCzjgoTjgZnjgY/jgasNCivjga/jgZfjgoLjgags44G+44GV44Gy44KNDQor44GK44GP44KJLOOBn+OBpOOBig0KK+OBquOBi+OBleOBjSzjgojjgZfjga/jgosNCivjgY3jgorjga/jgoks44Gy44KN44GXDQor44GC44KJ44GELOOBi+OBmuOBig0KK+OBhOOCj+OBrizjgabjgaTjgYoNCivjga/jgaPjgajjgoos44KE44GZ44KG44GNDQor44GZ44Ga44GNLOOBv+OBoeOBruOCig0KK+OBq+OBl+OBr+OCiSzjgajjgoLjgbLjgo0NCivjgZXjgZXjgY0s44GC44GN44Gy44KNDQor44Gv44Gq44G144GVLOOBkeOCk+OBhOOBoQ0KK+OBruOBqeOBrizjgb7jgZXjgosNCivjgYvjgo/jgbDjgZ8s44Go44GK44KLDQor44GX44G/44GaLOOCiOOBl+OChuOBjQ0KK+OBquOBjOOBl+OBvizjgojjgZfjgoLjgagNCivjgoLjgoos44KI44GX44G/DQor44GX44G/44GaLOOBpOOBqOOCgA0KK+OBsuOBleOChOOBmSzjgYTjgaHjgo3jgYYNCivjgYvjgZ/jgYbjgoks44KE44GZ44KG44GNDQor44Gf44GR44KA44KJLOOBi+OBpOOBvw0KK+OBhOOBvuOBq+OBlyzjgZHjgpPjgZgNCivjgYrjgYvjgaAs44Gk44Go44KADQor44Gq44GL44GILOOBv+OBpOOBkA0KK+OBl+OCjeOBrizjgajjgZfjgobjgY0NCivjgojjgZPjgoTjgb4s44GX44KF44KT44GYDQor44GK44GL44GW44KPLOOBsuOCjeOChuOBjQ0KK+OBi+OBv+OBmOOChyzjgbLjgo3jga7jgooNCivjgY/jgb7jgbks44Go44GK44KLDQor44GX44G/44GaLOOBsuOCjeOBlw0KK+OChOOBquOBjuOBleOCjyzjgZfjgZrjgYoNCivjgb7jgY3jga4s44Gk44Go44KADQor44GV44KPLOOBn+OBpOOChuOBjQ0KK+OBhuOBl+OCjeOBoCzjgY/jgavjgYoNCivjgb7jgaHjgaAs44KI44GX44Gq44GKDQor44GT44Gw44KE44GXLOOBpOOBkOOBsuOBkw0KK+OBl+OBkuOCgOOCiSzjgYvjgZrjgYoNCivjgbLjgZDjgaEs44GX44GS44GC44GNDQor44GE44GE44Gs44G+LOOBkeOBhOOBng0KK+OBhOOBmuOBvyzjgZfjgZLjgobjgY0NCivjga/jgoTjgZcs44GC44GN44G/44GkDQor44KE44GOLOOBvuOBleOBqA0KK+OBiuOBi+OCj+OCiSzjgYLjgY3jgbLjgZMNCivjgbXjgY/jgYrjgZgs44GK44GV44KADQor44GG44GM44GY44KTLOOBmOOCheOBq+OBoQ0KK+OBn+OBquOBuSzjga7jgbbjgYoNCivjgZTjgZfjgb4s44G+44GV44Gy44GTDQor44GC44KT44Gp44GGLOOBruOCiuOBqOOBlw0KK+OBiuOBoOOBvizjgb7jgZXjgYoNCivjgYrjgYvjgZbjgY0s44Gf44Gk44KNDQor44GE44GX44GL44KPLOOBl+OCh+OBsuOBoQ0KK+OCgOOCieOChOOBvizjgobjgYbjgZgNCivjga/jgoTjgZXjgYss44KP44Gf44KLDQor44Gq44GL44GY44G+LOOBj+OBq+OBig0KK+OBn+OBkeOCguOBqCzjgaTjgYvjgZUNCivjgY3jgZ/jgZjjgb4s44Gf44GL44GKDQor44G/44GL44G/LOOBqOOBl+OBr+OCiw0KK+OCj+OCieOBl+OBqizjgZ/jgYvjgZcNCivjgY3jgoDjgoks44G+44GV44KG44GNDQor44GK44GW44KPLOOBv+OBruOCiw0KK+OChOOBvuOCgOOCiSzjgbLjgo3jgajjgZcNCivjgojjgZfjgaAs44Gh44Gv44KLDQor44Gf44Gh44Gw44GqLOOBjeOCiOOBn+OBkQ0KK+OBvuOBpOOCguOBqCzjgYrjgZXjgoANCivjgb/jgZfjgb4s44G+44GV44G/DQor44Gb44GNLOOBl+OCkw0KK+OBp+OBkOOBoSzjgb7jgZXjgbLjgacNCivjgZ/jgYvjga/jgZcs44Gy44KN44GXDQor44GK44Gy44GRLOOChuOBjeOBig0KK+OBteOBmOOCguOBqCzjgYTjgo/jgYoNCivjgojjgZfjgoDjgoks44G144G/44KG44GNDQor44GT44Gw44KE44GXLOOBvuOBleOBkw0KK+OBiuOBjOOBvyzjgZHjgYTjgZgNCivjgYvjgYQs44Gf44GPDQor44GL44GI44GkLOOCiOOBl+OBvw0KK+OCguOCjeOBhCzjgZjjgoXjgpPjgZMNCivjgb/jgZrjga4s44Gq44G/DQor44GK44Gk44GLLOOBmOOCheOCk+OChA0KK+OBiuOBnyzjgZfjgpMNCivjgZvjgY3jga0s44KI44GX44GL44GaDQor44G/44KE44GQ44GhLOOBsuOBqOOBlw0KK+OCiOOBreOBoCzjgZfjgZLjgY0NCivjgbvjgorjgYbjgaEs44Gf44GP44KNDQor44GI44GQ44GhLOOBruOCiuOBruOBmeOBkQ0KK+OBhuOBl+OCjeOBvuOBpCzjgbLjgafjgYLjgY0NCivjgYTjgYTjgaAs44Gy44KN44GXDQor44KI44GX44GgLOOBmOOCheOCk+OBqQ0KK+OBquOBi+OBmyzjgoTjgZnjgbLjgZUNCivjgZnjgZrjgY0s44G+44GV44GXDQor44GK44GE44GL44KPLOOBl+OCheOBmA0KK+OBi+OCj+OBuSzjga7jgbbjgbLjgZMNCivjgZ/jgavjgZbjgo8s44KB44GE44GYDQor44GL44Gt44GTLOOCiOOBl+OChuOBjQ0KK+OBteOBmOOBiuOBiyzjgZfjgofjgZ/jgo3jgYYNCivjgoDjgonjgYrjgYss44G+44GV44Gv44KLDQor44GG44Gs44G+LOOBn+OBi+OBsuOCjQ0KK+OBv+OChOOBkSzjgYTjgY/jgYoNCivjgarjgYvjgoDjgoks44GC44GN44Gy44GTDQor44GK44KPLOOBi+OBiuOCiw0KK+OBreOCguOBqCzjgorjgoXjgZgNCivjgavjgZfjgoDjgoks44GL44Ga44Gf44GLDQor44Gf44Gk44G/LOOBquOBu+OBkw0KK+OBleOBqOOBhizjgb7jgZXjgZMNCivjgZnjga7jga/jgoks44GL44Gk44G/DQor44GC44GZ44G+LOOBi+OBmuOBvw0KK+OBn+OBi+OBsCzjgobjgY3jgbLjgo0NCivjgojjgZfjgoDjgoks44KI44GX44G/DQor44GC44G5LOOBguOBjeOBig0KK+OBjeOBj+OBoSzjgobjgYbjgZMNCivjgarjgYvjgoDjgoks44GI44GE44GTDQor44Gv44KA44KJLOOBleOBpOOBkw0KK+OBmeOBmuOBjSzjgZ/jgYvjgYoNCivjgYvjgo/jgoDjgoks44Gv44KL44KIDQor44Gy44Gz44GuLOOBkeOBhOOBkw0KK+OBjeOBn+OBoCzjgaTjgojjgZcNCivjgZXjgajjgYYs44GR44GE44GTDQor44GL44Go44GGLOOBteOBjeOBkw0KK+OBhOOBqOOBhizjgaHjgYLjgY0NCivjgbXjgY/jgajjgb8s44G+44GV44Gv44KLDQor44KA44KN44Ga44G/LOOBhOOBoeOCjeOBhg0KK+OChOOBvuOBquOBiyzjgajjgoLjgbLjgZUNCivjgYrjgYvjgaAs44GE44KP44GKDQor44Go44GULOOBguOBjeOBig0KK+OBquOCiuOBnyzjgajjgZfjgbLjgZMNCivjgYTjgZHjgZbjgY0s44GN44KI44GL44GaDQor44GL44KP44Gw44GfLOOBruOBtuOBguOBjQ0KK+OBvuOBpOOBiuOBiyzjgZXjgajjgZcNCivjgarjgYvjgaAs44Gq44GK44GoDQor44GV44Go44GGLOOBkeOBhOOBmA0KK+OBn+OBkeOBluOCjyzjgYvjgZrjgb7jgZUNCivjgoTjgarjgYzjgo8s44Gk44Go44KADQor44KE44G+44GV44GNLOOBruOBtuOBsuOBqA0KK+OBl+OBjOOBjSzjgajjgZfjgoQNCivjgobjgb8s44Gy44GV44GIDQor44GK44GW44GNLOOBvuOBleOBsuOCjQ0KK+OBquOBjOOBl+OBvizjgaTjga3jgYoNCivjgoTjgbbjgYbjgaEs44GL44Ga44GKDQor44G744Gd44KELOOChuOBhuOBmA0KK+OBq+OBl+OBluOCjyzjgb7jgZXjgosNCivjga/jgoTjgb8s44G+44GV44Gy44KNDQor44Gv44Gb44GM44KPLOOBmOOCheOBq+OBoQ0KK+OBi+OCj+OBleOBjSzjgZHjgpPjgYTjgaENCivjgajjgojjgYTjgZrjgb8s44Gf44GR44GXDQor44GK44GP44KA44KJLOOBn+OBi+OBlw0KK+OChOOBvuOBoCzjgZ/jgZHjgZcNCivjgavjgo8s44GX44KNDQor44Gr44GX44GW44GNLOOBruOBtuOBig0KK+OBmeOBjuOCguOBqCzjgbLjgo3jgZcNCivjgYrjgZXjgo8s44GX44KT44KEDQor44Go44GgLOOCiOOBl+OBsuOCjQ0KK+OBquOBi+OBrizjgbLjgo3jgZcNCivjgb/jgYbjgoks44Gu44KK44KG44GNDQor44KE44G+44GW44GNLOOBruOCiuOBguOBjQ0KK+OBleOBi+OCguOBqCzjgZ/jgZHjgZcNCivjgoTjgb7jgaAs44Gk44Go44KADQor44GE44Gu44GG44GILOOBn+OBhOOBmeOBkQ0KK+OChOOBmeOBhCzjgbLjgZXjgYoNCivjgb7jgaTjgaAs44Gy44GV44GXDQor44GL44Gf44GK44GLLOOBneOBmA0KK+OBmeOBmuOBjSzjgojjgZfjgYoNCivjga/jgoTjgZcs44Gq44GK44G/DQor44Gv44G+44G+44GkLOOBi+OBpOOBsuOBkw0KK+OBr+OBvuOBrizjgZ/jgYvjgobjgY0NCivjgb/jgZrjgZ/jgass44G+44GV44GoDQor44GZ44G/44GfLOOBruOBtuOBsuOCjQ0KK+OBr+OChOOBlyzjgYjjgYTjgbLjgZMNCivjgajjgY/jgarjgYws44Gy44KN44GXDQor44GL44Go44GGLOOBl+OBkuOCiw0KK+OBvuOBpOOBhuOCiSzjgajjgoLjgarjgYoNCivjgbLjgoPjgY/jgaos44Go44GX44GC44GNDQor44GC44KT44GW44GELOOCiOOBl+OBi+OBpA0KK+OBteOBi+OBvuOBoSzjgbLjgZXjgZcNCivjgb/jgZXjgY0s44Gq44GK44KG44GNDQor44KC44Gh44Ga44GNLOOBsuOCieOBjw0KK+OBguOBiuOChOOBjizjgb/jgaHjgZMNCivjgZ/jgYvjga/jgZcs44GL44KI44GTDQor44GN44GbLOOBvuOBleOCiA0KK+OBhuOBiOOCguOCiizjgobjgb8NCivjgYLjgZrjgb4s44GC44GR44G/DQor44GK44Gg44GP44KJLOOBkeOBhOOBkw0KK+OBn+OBquOBiyzjgZHjgYTjgZMNCivjgajjgYTjgZ/jgass44KE44GZ44GTDQor44KE44G+44GW44GNLOOBiOOCig0KK+OBr+OBl+OCguOBqCzjgb/jgojjgZMNCivjgb7jgaTjgb/jgoQs44KC44Go44Gh44GLDQor44G144GX44G/LOOBvuOBjeOBkw0KK+OBjeOCh+OBsuOCg+OBvizjgobjgb/jgZMNCivjgojjgZfjgaAs44Gu44G244GTDQor44GG44KL44GX44GpLOOBv+OBiOOBkw0KK+OBm+OBiizjgbLjgafjgZMNCivjgb/jgarjgYvjgo8s44KI44GG44GTDQor44G144GY44GuLOOBmeOBv+OBig0KK+OBsuOCjeOBnyzjgZ/jgZHjgZcNCivjgYrjgZ8s44Go44KI44Gy44GTDQor44GK44GMLOOBguOBjeOCiQ0KK+OBquOBjOOBr+OBvizjgobjgY3jgbLjgacNCivjgZjjgpPjga4s44GC44GN44KJDQor44GE44Gh44GL44KPLOOBl+OBkuOCiw0KK+OBr+OChOOBlyzjgb/jgYjjgZMNCivjga/jgZ/jgoQs44Gy44KN44G/44GhDQor44G744KK44GT44GXLOOBsuOBleOBig0KK+OBi+OBqyzjgYvjgaTjgo0NCivjgbvjgpPjgaAs44GR44KT44GE44GhDQor44Gk44Gh44KELOOBn+OBi+OBlw0KK+OBn+OBvuOBpizjgb7jgZXjgbLjgZMNCivjgobjgYvjgo8s44Gh44GL44GoDQor44GV44GL44GELOOBpuOCi+OBig0KK+OBv+OChOOBmCzjgZHjgYTjgZMNCivjgZ/jgoDjgoks44GC44Gk44GTDQor44GL44KP44GQ44GhLOOBv+OBiOOBkw0KK+OBleOBrizjgaTjgY3jgZMNCivjgarjgYvjgoDjgoks44GL44Ga44KG44GNDQor44GT44Gw44KE44GXLOOBn+OBi+OBlw0KK+OBhOOBoCzjgojjgZfjgb8NCivjgZvjgY3jgoLjgags44G+44GV44Gu44KKDQor44GL44KP44G+44GfLOOBn+OBpOOBig0KK+OBj+OBvCzjgoTjgZnjgY0NCivjgZ/jgYvjga4s44Gv44GY44KBDQor44KP44Gf44Gq44G5LOOBn+OBoOOBlw0KK+OBhOOBi+OCi+OBjizjgajjgZfjgobjgY0NCivjgZXjgajjgYYs44Gu44G244Gy44GTDQor44Gy44Gg44GLLOOBguOBjeOBig0KK+OCiOOBl+OBhCzjgoLjgajjgbLjgZUNCivjgZfjgb7jgoDjgoks44Go44G/44GKDQor44GK44GzLOOBv+OBpOOCiw0KK+OBquOBi+OBmOOBvizjgYjjgYTjgZgNCivjgbvjgZfjga4s44KG44GG44GYDQor44GL44KP44KC44GoLOOChuOBsuOBoQ0KK+OBq+OBl+OBoCzjgbLjgajjgZcNCivjgZfjgb/jgZos44Gy44Gn44G+44KLDQor44Gf44KA44KJLOOBvuOBleOBi+OBmg0KK+OBqOOCiOOBl+OBvizjgobjgbLjgaENCivjgYjjgpPjgaks44KG44GN44GKDQor44GK44GM44KPLOOBhOOBoeOCjeOBhg0KK+OBjeOBn+OBr+OCiSzjgojjgZfjgbLjgo0NCivjgYrjgZDjgass44GL44Ga44GKDQor44GK44G244GhLOOBsuOCjeOBlw0KK+OBv+OCiOOBlyzjgoTjgZnjgbLjgo0NCivjgYTjgZHjga4s44KE44KI44GEDQor44GG44GI44G+44GkLOOBv+OBruOCiw0KK+OBteOBj+OBluOBqCzjgZ/jgaDjgZcNCivjgYLjgYrjgY0s44KI44GX44Gy44GTDQor44GV44KB44GY44G+LOOBk+OBng0KK+OBjeOBqeOBvizjgYjjgYTjgo0NCivjgZPjgaDjgYTjgoks44Go44GX44GKDQor44Gy44GQ44GhLOOBqOOBj+OBruOBtg0KK+OBvuOBiOOBl+OCjSzjga7jgbzjgosNCivjgZ/jgarjgYss44GY44KF44KT44GYDQor44Gq44GL44GM44KPLOOChOOBmeOBsuOBpw0KK+OBhOOBruOBhuOBiCzjgb7jgZXjgYLjgY0NCivjgajjgorjgYYs44GY44KF44KTDQor44G+44KL44KE44G+LOOCiOOBl+OBv+OBpA0KK+OBvuOBpOOBhuOCiSzjgZ/jgYvjgYoNCivjgZ/jgoHjgaHjgYss44Gq44Gk44GC44GNDQor44GV44GV44GNLOOBteOBv+OBig0KK+OBiuOBn+OBjSzjgZHjgpPjgZgNCivjgYrjgYzjgo8s44GR44GE44GeDQor44G+44Gk44G/LOOBi+OBmuOBig0KK+OBguOCiuOBvuOBpCzjgZfjgpPjgYTjgaENCivjgZPjgonjgY8s44GL44Gk44GC44GNDQor44G/44KE44GX44GfLOOCiuOCheOBsuOBoQ0KK+OBiuOBmuOBoSzjgZ/jgYvjgZcNCivjgZXjgYvjgY3jgbDjgoks44GV44Gh44GKDQor44GV44Go44GGLOOBkeOCk+OBmA0KK+OBsuOCjeOBmyzjgY3jgY/jgYoNCivjgaTjgaHjgaAs44Gf44Gk44GKDQor44Gv44GX44KJLOOBi+OBmuOBsuOCjQ0KK+OBteOCjeOCguOBqCzjgZvjgYTjgZgNCivjgZPjgZXjgYss44KI44GZ44GRDQor44Gf44GR44GE44GhLOOChOOBmeOBsuOBpw0KK+OBpuOCieOBoCzjgb7jgZXjgYLjgY0NCivjgZPjgYTjgacs44Gq44GK44GNDQor44GV44GE44Go44GGLOOBkeOCk+OBmA0KK+OBv+OChOOBquOBjCzjgYvjgYrjgosNCivjgavjgZfjgoDjgoks44GN44KH44GTDQor44Gf44Gq44GLLOOBl+OCk+OBmeOBkQ0KK+OBmOOChyzjgb7jgZPjgagNCivjgobjgY/jgbLjgo0s44G+44GZ44GIDQor44KI44GX44KP44KJLOOBl+OBkuOBig0KK+OBguOBiuOBjSzjgobjgZ4NCivjgZ/jgabjgYTjgZcs44G/44Gu44KLDQor44Gf44GR44GgLOOBv+OBpOOBig0KK+OChOOBmeOBoCzjgZ/jgYvjgZMNCivjgYLjgYrjgY0s44GC44GN44KJDQor44KI44GX44GgLOOBqOOCguOBkw0KK+OBguOBoOOBoSzjgajjgZfjgYLjgY0NCivjga7jgZDjgaEs44Gh44KIDQor44KP44Gf44Gq44G5LOOBv+OBruOCiw0KK+OBn+OBkeOBqOOBvyzjgYLjgY3jgbLjgo0NCivjgY/jgorjgo/jgY0s44KI44GE44GhDQor44GN44Gf44Ga44KBLOOCiOOBl+OBi+OBmg0KK+OBteOBquOBsOOBlyzjgbLjgafjgY0NCivjgYrjgZXjgaAs44GX44KH44Gy44GhDQor44GC44GX44GM44GELOOBruOCiuOBsuOBkw0KK+OBleOBi+OBl+OBnyzjgZfjgpPjgoQNCivjgaTjgaHjgaAs44KG44GG44GeDQor44GK44GL44GgLOOChuOBv+OBkw0KK+OBn+OBquOBiyzjgozjgYTjgZMNCivjgYrjgZ/jgZTjgZcs44GY44KF44KTDQor44GP44KN44GV44GLLOOCi+OBv+OBkw0KK+OBmeOBluOBjSzjgobjgorjgZMNCivjgYvjga3jgb/jgaQs44Go44G/44GTDQor44G+44GoLOOBteOBmOOBkw0KK+OBqOOCiOOBteOBjyzjgbLjgafjgobjgY0NCivjgYLjgonjgYQs44Gq44GK44GTDQor44G144GY44GL44KPLOOBguOBjeOBkw0KK+OCiOOBk+OBiizjgojjgZfjga7jgbYNCivjgYLjgb7jga4s44GX44GS44KG44GNDQor44GK44GuLOOBk+OBhuOBhOOBoQ0KK+OBmeOBmuOBjSzjgb7jgZXjgY0NCivjgYvjgajjgYYs44KC44Go44Gy44GTDQor44GV44GE44Go44GGLOOBl+OCheOCjOOBhA0KK+OBiuOBhizjgajjgZfjgYoNCivjgb/jgoTjgZbjgY0s44KI44GX44Gf44GLDQor44GN44KELOOBjeOCiOOBlw0KK+OBteOBmOOBnyzjgZfjgoXjgavjgaENCivjgoDjgYvjgYQs44G/44Gh44GKDQor44G+44Gk44KC44GoLOOBsuOBp+OBoeOBiw0KK+OBi+OCj+OBhCzjgZPjgZ4NCivjgb7jgaTjgoLjgags44GI44GE44GYDQor44Gf44GR44GG44GhLOOBguOBpOOBlw0KK+OBk+OBmOOBvizjgbLjgo3jgobjgY0NCivjga/jgZvjgYzjgo8s44GL44Ga44KG44GNDQor44GT44GMLOOBvuOBleOBig0KK+OChOOBvuOBoCzjgbLjgo3jgYvjgZoNCivjgYrjgZ8s44Gu44G244GC44GNDQor44KE44G+44KC44GoLOOBn+OBi+OCiOOBlw0KK+OBleOBj+OCieOCguOBqCzjga/jgovjgYoNCivjgoTjgarjgY7jgZXjgo8s44Gf44GL44G144G/DQor44G144GP44GELOOBguOBjeOCiOOBlw0KK+OBi+OBqOOBhizjgb7jgZXjgobjgY0NCivjgYTjgo/jgZ8s44G/44Gk44GKDQor44G144GY44KC44GoLOOBi+OBpOOBvw0KK+OBjeOBruOBl+OBnyzjgYTjgZXjgYoNCivjgoTjgb7jgaAs44G144G/44Gf44G+DQor44GP44KJ44G+44GILOOBi+OBmuOBsuOBkw0KK+OBj+OCieOBnyzjgojjgbLjgaENCivjgojjgZPjgYQs44GL44GK44KLDQor44GT44Gw44KE44GXLOOChuOBjeOBig0KK+OBi+OBqOOBhizjgY3jgojjgZ/jgYsNCivjgb7jgZnjgYQs44KK44KH44GYDQor44GG44KJ44GfLOOBsuOBp+OBig0KK+OBn+OBi+OBr+OBlyzjgZ/jgaTjgYoNCivjgYbjgZfjgZTjgoEs44KE44GZ44GKDQor44Gv44KJ44GELOOBk+OBhuOBhOOBoQ0KK+OBhuOBoOOBjOOCjyzjgb/jga7jgosNCivjgZ/jgYvjgY4s44GX44KT44GZ44GRDQor44G/44KE44GW44GNLOOBteOBmOOBqA0KK+OChOOBvuOCgOOCiSzjgY/jgavjgYoNCivjgoTjgb7jgY7jgZcs44GT44GG44GYDQor44GT44G+44GkLOOBi+OBmuOBvw0KK+OBr+OBvuOBkOOBoSzjgoTjgZnjgobjgY0NCivjgoLjgoos44Gf44Gg44G144GVDQor44KE44G+44GgLOOBguOBjeOBsuOBkw0KK+OBi+OBjOOCjyzjgZjjgo0NCivjgY3jgY/jgaEs44GT44GG44GYDQor44GP44GYLOOBn+OBi+OBlw0KK+OBhOOBqOOBhizjgbXjgb/jgajjgZcNCivjgYvjgo/jgZDjgaEs44Gy44Gn44KEDQor44GC44KJ44GNLOOCguOCiuOCiOOBlw0KK+OBiuOBi+OBuSzjgbLjgajjgZcNCivjgZPjgbzjgoos44Gm44KL44GC44GNDQor44GK44GhLOOBvuOBleOBsuOCjQ0KK+OBvuOCi+OBiizjgb7jgZXjgZ/jgYsNCivjgZXjgajjgYYs44GX44KT44GYDQor44Gf44Gq44GLLOOBqOOBl+OCjQ0KK+OBvuOBpOOChOOBvizjgYvjgZrjgobjgY0NCivjgYrjgaTjgYss44GV44Go44G/DQor44KE44G+44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBteOBmOOBiizjgorjgoXjgbLjgaENCivjga7jgoDjgoks44KI44GX44Gf44GLDQor44Gy44KN44GbLOOChuOBiw0KK+OBguOCk+OBluOBhCzjgbLjgo3jgYvjgZoNCivjgYrjgaTjgbws44KE44GZ44Gu44KKDQor44GV44GE44Go44GGLOOBv+OBoeOBig0KK+OBhOOBqOOBhizjgbXjgb/jgY0NCivjgo/jgonjgZXjgo8s44KE44GZ44GXDQor44GC44KJ44GL44KPLOOBsuOBleOBguOBjQ0KK+OBlOOBvyzjgojjgZfjgYvjgZoNCivjgYjjgpPjgaks44GX44KT44GZ44GRDQor44KI44GX44GgLOOBsuOCjeOBvw0KK+OBhuOBoeOBoCzjgZfjgpPjgYTjgaENCivjgYLjgZXjgYTjga0s44GK44GV44KADQor44GK44GX44G+LOOBr+OBmOOCgQ0KK+OBn+OBquOBiyzjgZfjgoXjgpPjgZnjgZENCivjgYrjgZMs44Gy44Gn44Gu44KKDQor44GE44Ga44GkLOOBqOOBl+OBig0KK+OBr+OChOOBlyzjgY/jgavjgYoNCivjgbXjgZjjgY0s44GR44KT44GYDQor44GX44GK44GL44GELOOBv+OBpOOBiA0KK+OBquOBjOOBteOBoSzjgbLjgZXjgZ/jgYsNCivjgb7jgaTjgoLjgags44Gu44KK44KI44GXDQor44GL44Go44GGLOOBl+OBkuOBruOCig0KK+OCj+OBn+OBquOBuSzjgb/jgaHjgo0NCivjga/jgb7jgZDjgaEs44KK44KF44GYDQor44GL44Gt44GTLOOBleOBqOOBlw0KK+OBleOBqOOBhizjgY3jgY/jgYoNCivjgYrjgbIs44KE44GZ44Gq44KKDQor44Gv44KE44GXLOOBmOOCheOCkw0KK+OBjeOBv+OBpOOBiyzjgZXjgaHjgYoNCivjgbXjgY/jgaAs44G+44GV44Gv44KLDQor44Gq44GL44KA44KJLOOBsuOBp+OBig0KK+OChOOBsOOBlyzjgabjgaTjgoQNCivjgZPjgbDjgoTjgZcs44GX44GS44GKDQor44Go44GP44GgLOOBn+OBpOOBig0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgo0NCivjgYTjgajjgYYs44Gq44GK44KLDQor44Gu44GQ44GhLOOBvuOBleOChuOBjQ0KK+OBi+OCj+OBqizjgajjgYrjgosNCivjgarjgYvjga4s44GL44Ga44Gy44GTDQor44KE44G+44GgLOOBjeOCiOOBpOOBkA0KK+OBsuOCieOBvuOBpCzjgZ/jgYTjgYTjgaENCivjgYLjgonjgYQs44Gy44KN44GXDQor44KI44GX44GuLOOBkeOBhOOBmA0KK+OBr+OBvuOBoCzjgorjgoXjgbLjgaENCivjgYrjgZ8s44KG44Gf44GLDQor44GX44Gw44GfLOOBqOOBl+OBig0KK+OCj+OBi+OChOOBvizjgb7jgZXjgY0NCivjgbvjgZcs44Gb44GE44GYDQor44G/44KPLOOBvuOBleOBig0KK+OBn+OBquOBiyzjgb7jgoLjgosNCivjgYvjgarjgoQs44Gf44Gg44GXDQor44Gf44GR44Gq44GLLOOBkeOCk+OBmA0KK+OBleOBqOOBhizjgZ/jgYvjgobjgY0NCivjgb/jgZrjgZfjgb4s44Go44KC44GL44GaDQor44Gm44KJ44GgLOOBi+OBpOOBsuOCjQ0KK+OCguOCiuOChCzjgb/jgaTjgYoNCivjgZnjgY7jgoTjgb4s44KI44Gy44Gh44KNDQor44GG44G/LOOBruOCiuOBig0KK+OBjeOBkOOBoSzjgaTjgoTjgZMNCivjgYbjgovjgo/jgZcs44G+44GV44GTDQor44Gy44KJ44G+44GkLOOBneOBhuOBn+OCjeOBhg0KK+OBhOOBmuOBryzjgajjgZfjgobjgY0NCivjgYTjgajjgYYs44GL44GK44KKDQor44GV44Go44GGLOOBi+OBmuOBig0KK+OBl+OBkuOBruOBtizjgajjgZfjgbLjgZMNCivjgojjgZfjgoLjgags44G+44GZ44GC44GNDQor44GX44Gw44GfLOOBguOBjeOBsuOCjQ0KK+OBteOBquOBk+OBlyzjgY3jgojjgZcNCivjgZnjgarjgaAs44G+44GV44GKDQor44G+44KK44GTLOOChuOBhuOBmA0KK+OBjeOBj+OBvizjga7jgorjgbLjgZMNCivjgZnjgags44GY44KTDQor44Gr44GX44GW44KPLOOBqOOBl+OChuOBjQ0KK+OBk+OBsOOChOOBlyzjgajjgojjgYTjgaENCivjgYvjgo/jgZTjgYgs44GX44GS44KLDQor44GE44GY44G+LOOBn+OBoOOChuOBjQ0KK+OBq+OBl+OBiizjgoLjgajjga/jgosNCivjgavjgZfjgoTjgb4s44Gv44KL44GKDQor44GV44GE44Go44GGLOOCiOOBsuOBoeOCjQ0KK+OBi+OBqeOCj+OBjSzjgZ/jgZHjgZcNCivjgbLjgo3jgZss44G/44Gh44GK44GNDQor44Gf44GQ44GhLOOBr+OCi+OBig0KK+OBn+OBi+OBoCzjgb7jgZPjgagNCivjgo/jgZ/jgarjgbks44G+44GZ44GKDQor44GL44Go44GGLOOBkeOCk+OBmA0KK+OBquOBi+OBr+OCiSzjgYvjgZrjgYoNCivjgYTjgZfjgY/jgbws44Gk44KI44GXDQor44KE44G+44GgLOOBhOOBoeOBng0KK+OCj+OBi+OBvuOBpCzjgoTjgZnjgZjjgo0NCivjgYvjgo/jgZfjgb4s44KE44GZ44GKDQor44GL44Gf44KC44GoLOOBquOBiuOBsuOBkw0KK+OBn+OBi+OChOOBvizjgZXjgajjgZcNCivjgaTjgaHjgaAs44Gy44Gn44GKDQor44Gf44Gh44Gw44GqLOOBv+OBpOOBkw0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgbLjgZMNCivjgaTjgaAs44G144G/44GKDQor44KC44KK44GL44KPLOOBsuOCjeOBlw0KK+OBiuOBj+OBrizjga7jgbbjgobjgY0NCivjgYTjgb7jgYQs44KI44GX44GC44GNDQor44KA44KJ44GKLOOBsuOCjeOBvw0KK+OBl+OCguOCgOOCiSzjgZ/jgYvjgYoNCivjgYjjgpPjgaks44Gf44GL44KI44GXDQor44G744GX44GP44G+LOOBqOOBl+OBr+OCiw0KK+OBi+OCj+OBmyzjgZHjgpPjgZgNCivjgb7jgaHjgaAs44GX44GS44GC44GNDQor44GT44Gw44KE44GXLOOBj+OBq+OBig0KK+OBr+OBoCzjgorjgoXjgbLjgaENCivjgaTjgY/jgaAs44KI44GX44GKDQor44Gr44GX44GL44KPLOOBk+OBhuOBmA0KK+OBu+OCk+OBoCzjgbLjgo3jgobjgY0NCivjgo/jgZfjgYrjgYss44GR44KT44GYDQor44KA44KN44GELOOBjeOBv+OBsuOBkw0KK+OChOOBmeOBoCzjgZ/jgaTjgZcNCivjgojjgZfjgaAs44Gy44Gn44GKDQor44G744KKLOOBguOBjeOCiQ0KK+OBk+OBoCzjgajjgZfjgobjgY0NCivjgYvjgb7jgaAs44KG44GN44GKDQor44GG44GI44KA44KJLOOCiOOBl+OBig0KK+OBvuOBpOOBsOOCiSzjgb7jgoLjgosNCivjgb/jgarjgajjgZDjgaEs44Gf44Gg44GXDQor44GP44GM44Gm44KTLOOBmOOCjQ0KK+OBhOOCj+OBmyzjgajjgZfjga7jgbYNCivjga/jgoTjgZcs44G+44GV44Gv44KLDQor44GE44GP44Gq44G/LOOBl+OCk+OBleOBjw0KK+OBhOOBqOOBhizjgoDjga3jgZcNCivjgZPjgoTjgb4s44Gf44Gk44GKDQor44GK44Go44G+44KLLOOBsuOCjeOBlw0KK+OBquOBjOOBhCzjgb7jgZXjga/jgosNCivjgYTjgajjgYYs44GX44KHDQor44GE44G+44GELOOBsuOCjeOBvw0KK+OBvuOBmeOBoCzjgajjgZfjgbLjgo0NCivjgYvjgo/jgbks44KIDQor44GV44Go44GGLOOBvuOBleOBlw0KK+OBleOBkyzjgbLjgo3jgobjgY0NCivjgoDjgYvjgYQs44GC44Gk44GTDQor44GK44GX44G+LOOBk+OBhuOBiA0KK+OBpOOBoeOChCzjgYjjgYTjgZgNCivjga/jgoTjgZfjgZDjgaEs44Gy44KN44G/DQor44GV44Go44GGLOOBi+OBmuOChA0KK+OCgOOCieOBleOBqCzjgZfjgZLjgosNCivjga/jgovjgoTjgb4s44KE44GZ44GXDQor44GX44GS44KC44KKLOOBruOBtuOBsuOCjQ0KK+OBteOBquOBjSzjgb/jgaTjgbLjgo0NCivjgo/jgaAs44GX44KT44GYDQor44Gk44G844GLLOOBn+OBi+OBlw0KK+OBqOOBoCzjgbLjgo3jgb/jgaENCivjgoTjgb7jgoDjgoks44KI44GX44Gy44GoDQor44GE44GX44GQ44KNLOOCguOBqOOBr+OCiw0KK+OBteOBquOBr+OBlyzjgb7jgZPjgagNCivjgZnjgZrjgY0s44Gf44Gk44KLDQor44KI44GX44GgLOOBn+OBi+OBsuOCjQ0KK+OCj+OBn+OBquOBuSzjgorjgofjgZ8NCivjgarjgYvjgavjgZcs44GR44GE44GYDQor44KE44G+44KC44GoLOOBvuOBleOBr+OCiw0KK+OBhOOBl+OBi+OCjyzjgZjjgoXjgavjgaENCivjgZ/jgZHjgYbjgaEs44GP44GZ44Gf44GLDQor44GK44GP44GuLOOBhOOBmuOBvw0KK+OBoOOBpizjgajjgZfjgYLjgY0NCivjgZ/jgbks44Gb44GE44GE44GhDQor44KE44GOLOOChuOBjeOBsuOBkw0KK+OCiOOBl+OBoCzjgb7jgZXjgYoNCivjgbXjgovjgZ8s44GX44KF44Gr44GhDQor44GL44KP44GQ44GhLOOBsuOBleOBig0KK+OBr+OBmeOBkyzjgYTjgY/jgagNCivjgarjgYzjgb/jga0s44GX44KT44GZ44GRDQor44Gf44GR44GX44GfLOOBmOOCheOBq+OBoeOCjQ0KK+OBguOBi+OBiizjgZ/jgaDjgYLjgY0NCivjgo/jgY3jgoLjgags44GX44KT44GE44GhDQor44Gf44GV44GLLOOChuOBjQ0KK+OBquOBi+OBl+OBvizjgojjgZfjgYoNCivjgZ/jgZHjgarjgYss44GN44G/44Gy44KNDQor44KE44G+44GX44GfLOOBpOOBjuOBig0KK+OBj+OBvOOBiCzjgZ/jgYvjgb/jgaQNCivjgYrjgZDjgZcs44GY44KF44KT44GYDQor44GC44GV44GLLOOBvuOBleOChuOBjQ0KK+OBiOOBkOOBoSzjgZPjgYbjgYTjgaENCivjgYrjgZXjgY0s44GV44Go44GXDQor44GK44GP44GgLOOBmOOCheOCkw0KK+OBiuOBj+OCgOOCiSzjgb7jgZXjgajjgZcNCivjgYvjgarjgb7jgoss44KK44KH44Gy44GhDQor44GN44Gu44GX44GfLOOBi+OBmuOBig0KK+OBleOBleOBjSzjgZ/jgYvjgobjgY0NCivjgZ/jgYvjga4s44KK44KF44GG44Gf44KN44GGDQor44Gv44GX44GgLOOCiOOBl+OBruOCig0KK+OBu+OBlyzjgZfjgoXjgpPjgZgNCivjgb/jgZrjga4s44GV44Go44GXDQor44G/44Gk44Gv44GXLOOBi+OBmuOChuOBjQ0KK+OCguOBqOOBr+OBlyzjgZ/jgYvjgZcNCivjgoTjgb7jgaAs44GR44KT44GYDQor44Gq44GM44GuLOOChOOBmeOCiOOBlw0KK+OBhOOBl+OBhCzjgbLjgo3jgYLjgY0NCivjgYvjgoHjgaAs44Gq44GK44Gy44GTDQor44GN44Gv44GfLOOBpuOCi+OBig0KK+OBk+OBsOOChOOBlyzjgZfjgofjgbLjgaENCivjgZfjgonjgbXjga0s44GX44GS44Go44GXDQor44Gq44Gk44Gv44KJLOOBsuOCjeOCiOOBlw0KK+OBq+OBl+OBr+OCiSzjgb7jgZPjgagNCivjga/jgZfjgbAs44GL44Ga44GKDQor44Gy44GX44Gs44G+LOOBi+OBmuOCjQ0KK+OBsuOBs+OChCzjgojjgZfjgbLjgZMNCivjgb/jgoQs44GK44GV44KADQor44KA44KJ44GL44G/LOOBjeOCiOOBsuOBpw0KK+OCgOOCieOBnyzjgZ/jgaTjgYoNCivjgo/jgZ/jgarjgbks44GX44GS44KLDQor44GK44Gr44GXLOOChuOBmeOBkQ0KK+OBn+OBkeOBl+OBnyzjgYvjgaTjgbLjgZMNCivjgaTjgbDjgY3jgoLjgags44Gf44Gk44KEDQor44Gv44G+44GK44GLLOOBvuOBleOBlw0KK+OBv+OBmuOBrizjgabjgaTjgZgNCivjgYLjgbks44G+44GV44KG44GNDQor44GC44KJ44GE44GXLOOChuOBjeOBsuOCjQ0KK+OBleOBqOOBhizjgYvjgYrjgosNCivjgZXjgo/jga4s44Gf44GR44Gy44GnDQor44GX44KC44GY44KH44GGLOOBiuOBleOCgA0KK+OBn+OBi+OBoCzjgZ/jgYvjgojjgZcNCivjgarjgYzjgZ8s44Gy44KN44GC44GNDQor44Gr44GX44Gv44GfLOOChOOBmeOBsuOBlQ0KK+OBr+OChOOBlyzjgZ/jgY/jgYoNCivjgbvjgZ3jgYvjgo8s44Gy44KN44G144G/DQor44GC44GK44GNLOOBl+OCk+OBn+OCjeOBhg0KK+OCiOOBl+OBoCzjgbLjgafjga/jgosNCivjgo/jgZ/jgarjgbks44G144G/44GKDQor44GE44KP44GV44KPLOOBr+OBmOOCgQ0KK+OBruOBmyzjgZfjgofjgbLjgaENCivjgbLjgonjgZfjgZ8s44Gy44KN44GC44GNDQor44KI44GX44GW44KPLOOBsuOCjeOBlw0KK+OCgOOBqCzjgoTjgZnjgZcNCivjgb/jgo/jgYbjgoks44Gf44GR44GKDQor44GN44GP44GhLOOBqOOCiOOBn+OBiw0KK+OBiOOBnuOBiCzjgbLjgo3jgb8NCivjgYTjgZfjgYvjgo8s44G+44GV44G/DQor44GE44Gh44GL44KPLOOBvuOBleOBguOBjQ0KK+OBr+OCieOBoCzjgZvjgYTjgZbjgbbjgo0NCivjgoDjgonjgZ8s44Gf44Gg44G/DQor44GE44Go44GGLOOBi+OBmuOBsuOBpw0KK+OBu+OBl+OBqizjgoTjgZnjgbLjgo0NCivjgajjgY/jgaAs44G+44GV44G144G/DQor44Gf44GQ44KKLOOBneOBsuOBoQ0KK+OBleOBleOBjSzjgYLjgY3jgokNCivjgZ/jgb7jgoss44G/44GN44Go44GXDQor44Gr44GX44Gv44GXLOOBsuOCjeOBqOOBlw0KK+OBmOOBpOOBi+OCjyzjgZ/jgYvjgYoNCivjgZnjgZrjgY0s44Gf44GL44Gv44KLDQor44GK44Gr44GXLOOBmeOBiOOBig0KK+OBquOBjOOBleOBjSzjgbLjgo3jgoTjgZkNCivjgYTjgYTjgaAs44Gy44Gn44GKDQor44Gf44GL44GuLOOBkeOBhOOBng0KK+OBsuOBleOBrizjgbLjgafjgYLjgY0NCivjgYTjga7jgYbjgYgs44Gv44GY44KBDQor44GE44GX44GP44KJLOOBsuOCjeOBvw0KK+OBguOBjeOChOOBvizjgZ/jgZHjgZcNCivjgYTjgaHjgYvjgo8s44Gf44GL44GXDQor44GN44GM44KPLOOCiOOBl+OBn+OBiw0KK+OBleOBhOOBqOOBhizjgojjgZfjgagNCivjgojjgaAs44G/44GN44GKDQor44GC44KJ44GNLOOBkeOBhOOChA0KK+OBmeOBjuOBr+OCiSzjga7jgorjgYoNCivjgYvjgo/jgZDjgaEs44GL44Ga44KI44GXDQor44G/44KELOOBqOOCguOChuOBjQ0KK+OBhOOBkeOBiizjga/jgovjgYoNCivjgZXjgY/jgonjgYQs44GX44GS44GKDQor44GT44GX44GuLOOBi+OBmuOBsuOBkw0KK+OBjeOBj+OBi+OCjyzjgZXjgYTjgaENCivjgobjgYLjgZUs44GN44G/44GTDQor44GZ44Ga44GNLOOChuOBhuOBkw0KK+OBvuOBmeOBoCzjgbLjgafjgb8NCivjgYLjgonjgYQs44G+44GV44Gy44KNDQor44GE44GR44GgLOOBqOOBl+OBpOOBkA0KK+OBjeOBmSzjgbLjgafjgY0NCivjgYbjgZfjgoTjgb4s44G+44GV44KG44GNDQor44GL44G+44GfLOOBk+OBhuOBmA0KK+OBhuOBleOBvyzjgZvjgpPjgooNCivjgarjgYvjga4s44GT44GG44GE44GhDQor44GL44GN44GL44KPLOOBsuOCjeOChuOBjQ0KK+OBjeOBmOOBvizjgb/jgY3jgYoNCivjgoDjgYvjgYQs44KG44GG44GYDQor44Gq44GM44KE44G+LOOBsuOBp+OBsuOBlQ0KK+OBr+OBo+OBqOOCiizjgabjgYTjgZgNCivjgb/jgZfjgb4s44G+44GV44Gy44GTDQor44GU44GoLOOBsuOCjeOChuOBjQ0KK+OBhOOBqOOBhizjgbXjgZjjgYoNCivjgYrjgYzjgZ8s44KI44GZ44GRDQor44GP44GV44GwLOOBi+OBmuOBig0KK+OBpuOCieOBiCzjgZ/jgYvjgZcNCivjgbvjgpPjgaAs44KG44GG44GYDQor44GC44GP44Gf44GM44KPLOOBl+OCk+OBn+OCjeOBhg0KK+OBv+OChOOBk+OBlyzjgoTjgZnjgYoNCivjgbXjgY/jgZfjgb4s44Go44GX44GKDQor44GX44Gu44Ga44GLLOOBguOBjeOCiQ0KK+OBiuOBn+OBjSzjgozjgYQNCivjgarjgYzjgb7jgaQs44GI44Gk44GXDQor44GC44KJ44GELOOBjeOCiOOBlw0KK+OBvuOBpOOBoCzjgZ/jgZHjgZcNCivjgbXjgZjjgZ8s44GY44KF44Gr44GhDQor44GL44G/44GQ44GhLOOBsuOCjeOChuOBjQ0KK+OBi+OBqOOBhizjgb7jgZXjgojjgZcNCivjgoTjgb7jgZbjgY0s44G+44GV44GTDQor44GG44KB44Gf44GrLOOBvuOBleOBig0KK+OBquOCi+OBmyzjgaTjgojjgZcNCivjgY/jgbws44GP44Gr44Go44GXDQor44GP44KJ44GfLOOBsuOCjeOChuOBjQ0KK+OBk+OCk+OBqSzjgYvjgojjgZMNCivjgZ/jgZHjgYbjgaEs44Gv44KL44KG44GNDQor44GE44Gu44GG44GILOOBsuOBleOBqA0KK+OBn+OBi+OBoCzjga7jgorjgYoNCivjgYLjgY/jgaQs44G/44Gu44KLDQor44Go44KK44GELOOChOOBmeOBiA0KK+OCguOCiuOBiuOBiyzjgZHjgYTjgZnjgZENCivjgYvjgY/jgZ/jgass44Go44KC44GTDQor44Gf44GR44GE44GhLOOBl+OCh+OBmA0KK+OBn+OBhCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgaTjgaHjgoQs44G+44GV44KLDQor44G+44GZ44GgLOOBleOBoeOCiA0KK+OBi+OCk+OBoCzjgYLjgaTjgb8NCivjgoTjgb7jgYbjgoks44Gy44KN44GC44GNDQor44GN44Gu44GX44GfLOOBsuOBqOOBlw0KK+OBu+OBleOBiyzjgZ/jgZHjga7jgooNCivjgb7jgovjgYrjgYss44GC44Gk44GTDQor44GL44G+44GfLOOBmOOCheOCk+OBkw0KK+OBr+OBn+OBquOBiyzjgY/jgavjgYoNCivjgY/jgo3jga8s44Gy44KN44KG44GNDQor44Go44Gk44GLLOOBpuOCi+OBig0KK+OBhOOBl+OBhCzjgb/jgY3jgoQNCivjgoLjgorjgZ8s44Gu44KK44GKDQor44G744KT44G+LOOCiOOBl+OBi+OBmg0KK+OBguOCieOBi+OBjSzjgYvjgaTjgobjgY0NCivjgZ/jgZEs44Gy44KN44G/DQor44GE44Ga44Gv44KJLOOChuOBv+OBkw0KK+OBsuOBleOBqOOBvyzjgb7jgarjgbYNCivjgZnjgZrjgY0s44Gh44GI44GTDQor44Gr44GX44Gq44GLLOOBkeOBhOOBkw0KK+OBv+OBmuOBrizjgb7jgZXjgbXjgb8NCivjgoLjgorjgoDjgoks44G+44GV44Gf44GLDQor44Gf44GL44Gv44GXLOOBsuOBleOBig0KK+OBl+OBkuOBqOOCgSzjgoTjgZnjgojjgZcNCivjgbLjgo3jgYvjgo8s44GX44GS44G/44GkDQor44GV44Go44GGLOOBj+OBq+OBig0KK+OBvuOBiOOBi+OCjyzjgbLjgafjgobjgY0NCivjgojjgZfjgYQs44Gy44KN44GXDQor44G744Gd44KELOOBvuOBleOBvw0KK+OBleOBi+OCguOBqCzjgojjgYbjgZMNCivjgZPjgYTjgZrjgb8s44KI44GG44GTDQor44Gr44GXLOOBteOCiA0KK+OBi+OBreOBkyzjgb7jgaENCivjgZnjgb/jgY/jgoks44GX44GS44KLDQor44KI44GT44GKLOOCiOOBl+OBqOOCgg0KK+OBleOBleOBjSzjgZ/jgZHjgbLjgZMNCivjga/jgoTjgZcs44Gq44GK44GL44GaDQor44Gf44Gq44GLLOOBn+OCjeOBhg0KK+OBguOBjeOChOOBvizjgojjgZfjgbLjgo0NCivjgZXjgYTjgZks44Gy44GV44Gu44KKDQor44Gu44GM44G/LOOBk+OBng0KK+OBqOOCiOOBl+OBvizjgYLjgY3jgokNCivjgZfjgpPjgZjjgocs44Go44GX44GL44GaDQor44G144GN44GuLOOCiOOBl+OBguOBjQ0KK+OBhOOBkeOBoCzjgZHjga4NCivjgYrjgaDjgo/jgoks44KG44GG44GYDQor44Gf44GL44Gv44GXLOOBvuOBleOBvw0KK+OBkeOBhOOBvizjgajjgZfjga7jgooNCivjgZfjgb/jgZos44Gy44Gn44Gy44GTDQor44GE44G+44GE44Ga44G/LOOBi+OBmuOBig0KK+OCguOCiuOBnyzjgZfjgZLjgb8NCivjgoLjgoos44KE44GZ44G144G/DQor44G+44GI44GL44KPLOOBguOBjeOCiQ0KK+OChOOBquOBjuOBoCzjgZfjgofjgbjjgYQNCivjgoDjgonjgoLjgags44Gf44GL44GKDQor44GZ44Ga44GNLOOBi+OBmuOBig0KK+OBu+OBneOBiCzjgYLjgY3jgokNCivjgYTjgZfjgY/jgoks44GN44KI44GXDQor44Gy44KN44GL44KPLOOBqOOBv+OBig0KK+OBi+OCieOBl+OBvizjgojjgZfjgYvjgZoNCivjgb7jgaHjgaAs44Gb44GE44GYDQor44KC44KK44KE44G+LOOBl+OCheOBhOOBoeOCjeOBhg0KK+OBn+OBkeOCgOOCiSzjgZ/jgYvjgZcNCivjgaTjgYvjgoLjgags44KC44KK44KI44GXDQor44KE44G+44GQ44GhLOOBi+OBmuOBjeOBoQ0KK+OBneOCgeOChCzjgorjgaQNCivjgarjgYvjgZTjgoEs44Go44GX44GL44GkDQor44GE44KP44Gq44GMLOOBmOOCheOCkw0KK+OBm+OBjeOChCzjgZPjgYbjgZgNCivjgabjgonjgYQs44Go44KC44GYDQor44Gf44Gq44GLLOOChuOBv+OBkw0KK+OBm+OBjeOChCzjgoTjgZnjgb8NCivjgZXjgY/jgonjgYQs44KE44GZ44GL44GaDQor44GE44Gd44G5LOOBmeOBmeOCgA0KK+OBvuOBpOOBiuOBiyzjgbLjgo3jgZcNCivjgYTjgaHjgZjjgocs44Gy44KN44GXDQor44KE44G+44KC44GoLOOBvuOBleOBsuOBkw0KK+OBp+OBkOOBoSzjgZvjgYTjgZgNCivjgbLjgonjgb7jgaQs44KG44GG44GYDQor44G/44Ga44GuLOOBn+OBi+OBlw0KK+OBqOOBv+OBquOBjCzjgZfjgpPjgYTjgaENCivjgZ/jgYvjgZfjgb4s44Gy44GV44Gu44KKDQor44Gu44GM44G/LOOBpuOBpOOBng0KK+OBiuOBpCzjgYLjgY3jgbXjgb8NCivjgZPjgbDjgoTjgZcs44Gy44KN44Gy44GoDQor44Gm44KJ44GgLOOBguOBjeOBig0KK+OBleOBhOOBqOOBhizjgbLjgafjgYoNCivjgYLjgZXjga4s44GR44GE44GZ44GRDQor44GX44KC44KA44KJLOOBkeOCk+OBmA0KK+OBiuOBsuOBlyzjgYvjgZrjgbLjgo0NCivjgZ/jgarjgYss44Gy44Gn44GKDQor44G+44Gk44KC44GoLOOBmOOCheOCk+OCjQ0KK+OBsuOCieOBvuOBpCzjgYjjgb/jgZMNCivjgZ/jgZHjgYbjgaEs44G+44Gk44Gf44KN44GGDQor44GX44GS44Gv44KJLOOBn+OBi+OBsuOBkw0KK+OBiuOBi+OCguOBqCzjgb7jgZXjga7jgooNCivjgoDjgonjgoTjgb4s44GX44KNDQor44GT44G+44Gk44Gw44KJLOOBn+OBi+OBqOOBlw0KK+OBiOOBsOOBnyzjgojjgZfjgYoNCivjgYrjgZ8s44GE44GV44KADQor44Gm44KJ44GKLOOBvuOBleOBsuOCjQ0KK+OBiuOBleOCjyzjgbLjgajjgZcNCivjgYvjgo/jgZfjgb4s44Gy44KN44GXDQor44GC44KJ44GELOOBsuOCjeOBteOBvw0KK+OBr+OBl+OBmuOCgSzjgZHjgpPjgYTjgaENCivjgb/jgZrjgZfjgb4s44Go44GX44GL44GaDQor44Gy44KJ44G+44GkLOOBn+OBpOOChA0KK+OBiuOBj+OCgOOCiSzjgZ/jgYvjgoQNCivjgb/jgZrjgarjgYss44Gu44KK44Go44GXDQor44G744KK44GG44GhLOOBruOCiuOCiOOBlw0KK+OBn+OBjeOCguOBqCzjgaTjga3jgYoNCivjgoTjgZnjgbAs44GN44KI44GXDQor44GN44Gf44GuLOOBl+OBkuOCiw0KK+OBq+OBl+OBoCzjgb/jga7jgosNCivjgYTjgZfjgYvjgo8s44Gm44KL44G+44GVDQor44GK44GwLOOBr+OBmOOCgQ0KK+OBi+OBl+OCj+OBjizjgoLjgajjgZMNCivjgZXjgajjgYYs44GX44Ga44GKDQor44G+44Gk44GgLOOBkeOCk+OBmA0KK+OBk+OCgOOCjSzjgZTjgo0NCivjgoDjgonjgZ8s44Gy44KN44KG44GNDQor44GV44GV44GM44KPLOOBvuOBleOCiw0KK+OBleOBn+OBkSzjgZ/jgaTjgb8NCivjgY/jgo/jga4s44G+44GV44GXDQor44GU44GoLOOBguOBjeOCiQ0KK+OBteOBmOOBhCzjgZPjgYbjgZgNCivjgb/jgZrjgZPjgZcs44GI44Gk44GKDQor44G144GY44G+44GNLOOCiOOBl+OBkw0KK+OBhOOBp+OBnyzjgZPjgZcNCivjgarjgYvjgaTjgYss44GX44KF44Gy44GhDQor44GG44KT44GuLOOBqOOBl+OBig0KK+OBmeOBmuOBjSzjgZPjgYbjgZgNCivjga/jgb4s44KC44Go44Gu44G2DQor44Go44G/44GfLOOChuOBjeOBig0KK+OBn+OBq+OBpCzjgajjgZfjgb8NCivjgZnjgZrjgY0s44Gy44GV44GKDQor44GK44GP44KA44KJLOOBi+OBmuOChuOBjQ0KK+OBteOBj+OBl+OBvizjgYrjgZXjgoANCivjgYrjga/jgZcs44GC44GN44GKDQor44KE44G+44GX44GfLOOBquOBiuOBjQ0KK+OBi+OCj+OBvyzjgbLjgafjgobjgY0NCivjga/jgovjgZ8s44GL44Ga44GKDQor44G/44KE44KC44GoLOOBr+OCi+OBqOOBlw0KK+OBpOOBmOOBnyzjgbLjgZXjgYoNCivjgYTjgb7jgoDjgoks44GL44Gk44G/DQor44GV44Go44GGLOOBl+OCk+OBhOOBoQ0KK+OBquOBi+OBmOOBvizjgZHjgpPjgYTjgaENCivjgZfjgYTjga4s44GL44Ga44KEDQor44GU44GoLOOBsuOBqOOBlw0KK+OBi+OBqOOBhizjgZ/jgYvjgZcNCivjgarjgYzjgYQs44Gf44GR44G/DQor44GG44Gh44GuLOOBi+OBmuOBsuOCjQ0KK+OBiOOBhOOBmOOBvizjgbLjgo3jgZcNCivjgoTjgb7jgarjgYss44Gf44GL44GKDQor44Gq44GL44KA44KJLOOChuOBlA0KK+OBmeOBmuOBjSzjgb7jgZXjgb/jgaENCivjgZvjgoDjgoks44Gh44KI44GYDQor44Gq44GL44GM44KPLOOBi+OBmuOBsuOBkw0KK+OBn+OChCzjgbLjgYvjgosNCivjgoDjgonjgYvjgb8s44Gf44GL44GKDQor44GE44GX44GL44KPLOOBm+OBhOOBhOOBoQ0KK+OBm+OBjeOBkOOBoSzjgZHjgpPjgYTjgaHjgo0NCivjgYrjga4s44Gy44KN44GXDQor44GK44GE44GL44KPLOOChuOBhuOBkw0KK+OBhOOCj+OBhCzjgb7jgZXjgYoNCivjgYLjgZXjgbIs44GV44G244KNDQor44GU44GoLOOChuOBjeOBkw0KK+OBi+OBreOBn+OBkSzjgZfjgZLjgYoNCivjgYbjgYjjgb7jgaQs44G/44Gu44KLDQor44G144GP44GX44G+LOOCguOBqOOBr+OCiw0KK+OBteOBj+OBoCzjgaHjgYjjgZMNCivjgZnjgZrjgY0s44GC44Gk44GXDQor44GK44GQ44KJLOOBiuOBleOCgA0KK+OBsuOCieOBpyzjgZPjgYbjgZgNCivjgYrjgZfjgZIs44Gu44G244GKDQor44G+44Gk44KC44GoLOOChOOBmeOChuOBjQ0KK+OBleOBleOBjSzjgorjgoXjgbLjgaENCivjgZTjgpPjgaAs44GL44Gk44Gy44KNDQor44G+44Gk44GK44GLLOOBn+OBi+OBlw0KK+OBhuOCgeOBluOCjyzjgbLjgo3jga7jgooNCivjgavjgZfjgYos44GT44GG44GE44GhDQor44GT44GY44G+LOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBn+OBq+OBkOOBoSzjgojjgZfjgobjgY0NCivjgYrjgY7jgZks44Go44GX44KEDQor44GV44Gg44Gy44GVLOOBj+OBq+OChOOBmQ0KK+OBteOBmOOCj+OCiSzjgZHjgpPjgZgNCivjga/jgaPjgajjgoos44GL44GK44KLDQor44GL44G+44GfLOOBi+OBquOCgQ0KK+OBqOOBsCzjgajjgZfjga7jgooNCivjgoTjgb7jgaAs44Gy44KN44GYDQor44KE44G+44KC44GoLOOBn+OBi+OChuOBjQ0KK+OBn+OBkeOBhuOBoSzjgY3jgofjgZMNCivjgYLjgonjgY0s44KG44GN44Gy44GTDQor44Gr44GX44GKLOOBruOBtuOBi+OBmg0KK+OCguOCiuOBhuOBoSzjgZ/jgYTjgaENCivjgYTjgo/jgZ8s44GI44KK44GTDQor44GV44GV44GNLOOBiOOBpOOBig0KK+OBvuOBiOOBjOOCjyzjgb7jgZXjgosNCivjgbXjgY/jgavjgZcs44Gb44GE44GYDQor44GG44GI44GgLOOBvuOBleOBpOOBkA0KK+OChOOBvuOBjuOBlyzjgYvjgZrjgarjgooNCivjgYrjga4s44KG44GeDQor44G144GY44GfLOOCiOOBl+OBpOOBkA0KK+OBjeOBn+OCgOOCiSzjgbLjgo3jgZcNCivjgojjgZfjga/jgoks44GT44GG44GE44GhDQor44GE44KP44GV44KPLOOCguOCiuOBig0KK+OBk+OBvuOBpCzjgarjgYrjgobjgY0NCivjgZ/jgavjgoDjgoks44Go44GX44GKDQor44GT44GV44GLLOOBvuOBk+OBqA0KK+OBn+OBl+OBvizjgZ/jgaDjgbLjgo0NCivjgavjgZfjgYrjgYss44G/44GN44GKDQor44GZ44Ga44GNLOOBn+OBkeOBlw0KK+OBlOOBqCzjgbLjgafjgbXjgb8NCivjgYvjgo/jga/jgoks44Gb44Gk44GTDQor44Gf44GY44G+LOOBleOBquOBiA0KK+OBi+OCk+OBrizjgbLjgafjgYLjgY0NCivjgYvjgZ/jgZfjgb4s44G+44GV44KNDQor44Gv44GX44KC44GoLOOChOOBmeOBpOOBkA0KK+OBquOBi+OBoCzjgYvjgZrjga7jgbYNCivjgYvjgZXjga/jgoks44Go44KC44KIDQor44Gm44KJ44KC44GoLOOBvuOBk+OBqA0KK+OCj+OBi+OBvuOBpCzjgZHjgpPjgZgNCivjgYTjgajjgYYs44G144GP44GN44GhDQor44KP44GgLOOCiOOBl+OBv+OBpA0KK+OBn+OCk+OBmCzjgobjgorjgZMNCivjgYrjgaTjgYss44Gf44GP44G/DQor44Gk44GY44KC44GoLOOBn+OBpOOCiOOBlw0KK+OBm+OCiuOBluOCjyzjgbLjgo3jgYLjgY0NCivjgajjga7jgZXjgY0s44Gy44GV44Gf44GRDQor44Gf44GL44GOLOOBvuOBleOChuOBjQ0KK+OBiuOBteOBoSzjgYvjgaTjgobjgY0NCivjgYLjgb7jga4s44Go44GX44GKDQor44Gq44GL44KA44KJLOOChOOBmeOBsuOCiQ0KK+OBn+OBsOOBnyzjgZjjgoXjgavjgaENCivjgajjgojjgZrjgb8s44GX44KH44GYDQor44GX44KF44GP44KELOOBguOBjeOBig0KK+OBn+OBi+OBrizjgZfjgpPjgoQNCivjgoDjgonjgYvjgb8s44G/44GZ44GaDQor44GE44GX44Ga44GLLOOBsuOCjeOBlw0KK+OBhOOBhOOBmuOBiyzjgZvjgYTjgYTjgaENCivjgZfjgonjgYQs44Gf44GL44GC44GNDQor44G144GP44Gv44KJLOOBvuOBquOBvw0KK+OBhOOBquOBjOOBjSzjgajjgZfjgaTjgZANCivjgbLjgonjgZfjgb4s44Gy44Gn44G/DQor44Gk44GY44Gw44KE44GXLOOBsuOCjeOBguOBjQ0KK+OBvuOBpOOBiizjgoHjgZDjgb8NCivjgoTjgb7jgoLjgags44GR44GE44GE44GhDQor44KC44KK44GuLOOBruOBtuOBr+OCiw0KK+OBn+OBmOOBvizjgbXjgb/jgYgNCivjga7jgZbjgY0s44G/44Gh44GTDQor44GC44Gg44GhLOOBi+OBpOOBquOCig0KK+OBn+OBi+OChCzjgb/jgaHjgYoNCivjgYrjga4s44GC44GN44KJDQor44G+44Gk44KC44GoLOOChuOBhuOBmA0KK+OBr+OBl+OCguOBqCzjgb7jgZXjgYLjgY0NCivjgYvjga4s44KI44GX44KNDQor44Gf44GR44GgLOOBl+OCk+OBhOOBoQ0KK+OBjeOCiuOBr+OCiSzjgbLjgajjgZcNCivjgZ/jgarjgYss44Gu44G244KI44GXDQor44Go44KK44GELOOBqOOBl+OBsuOBkw0KK+OBquOBi+OBl+OBvizjgYLjgY3jgokNCivjgZvjgZnjgb8s44GZ44GI44Gv44KLDQor44G+44GI44Gu44Gd44GuLOOBpuOBpOOBig0KK+OBlOOBqCzjgbLjgajjgZcNCivjgbvjgoos44GC44Gk44GXDQor44Gf44GL44GE44KJLOOBvuOBleOBvw0KK+OBn+OBq+OBoCzjgb7jgarjgbYNCivjgbXjgovjganjgYQs44Gf44GL44GKDQor44GK44GO44KELOOBqOOBl+OBig0KK+OBquOBi+OBmOOBvizjgZjjgoXjgpMNCivjgbvjgorjgYvjgo8s44Gu44G244Gf44GLDQor44GZ44Ga44GNLOOBn+OBi+OBlw0KK+OBguOBiuOBjSzjgb7jgZXjgYoNCivjgYrjgY/jga/jgZ8s44GL44Gk44GC44GNDQor44GP44KP44Gw44KJLOOBi+OBmuOBsuOBpw0KK+OBi+OCk+OBoCzjgoTjgZnjgZcNCivjgZnjgY7jgoLjgags44G144G/44GTDQor44KE44G+44KC44GoLOOBkeOBhOOBkw0KK+OBi+OBreOBkyzjgoTjgZnjgbLjgZMNCivjgarjgorjgZ8s44GC44GN44Gu44G2DQor44Gr44GX44GKLOOBvuOBleOBig0KK+OBhOOBi+OCiizjgZjjgoXjgpMNCivjgbXjgovjgYvjgo8s44GL44Ga44Gq44KKDQor44GC44KJ44GELOOBl+OCk+OBmA0KK+OBj+OBmuOBi+OBvyzjgobjgY3jgojjgZcNCivjgZTjgags44GN44KH44Gy44GhDQor44KE44G+44Gv44KJLOOBguOBjeOBsuOCjQ0KK+OChOOBvuOBoCzjgZfjgoXjgbLjgaHjgo0NCivjgYTjgZgs44G+44GV44Gq44GKDQor44GP44KJ44KC44GhLOOBruOBtuOCiOOBlw0KK+OBteOBmOOCj+OCiSzjgYvjgZrjgbLjgo0NCivjgZ/jgZHjgaAs44G+44GT44GoDQor44Gf44GL44Gu44GbLOOBruOBtuOChuOBjQ0KK+OBqOOCguOCgOOCiSzjgb7jgZXjgbLjgo0NCivjgZXjgajjgYYs44KG44GZ44GRDQor44GV44GL44GN44Gw44KJLOOBsuOCjeOBv+OBpA0KK+OBv+OChOOBluOBjSzjgorjgocNCivjgojjgZfjgaAs44Gy44Gn44GC44GNDQor44Gf44Gq44GLLOOBvuOBleOCiw0KK+OBlOOBqCzjgoLjgajjgobjgY0NCivjgavjgZfjgaAs44Gf44GR44Gy44KNDQor44Gq44GL44GX44G+LOOBr+OCi+OBig0KK+OBjeOCgOOCiSzjgZHjgpPjgYTjgaENCivjgYTjga7jgYbjgYgs44Gb44GE44GYDQor44GK44GX44G+LOOBsuOCjeOBlw0KK+OBiuOBsuOCgyzjgZfjgoXjgbLjgaENCivjgb/jgoTjgoLjgags44G+44GZ44G/DQor44KE44G+44GX44GfLOOBl+OBkuOCiw0KK+OBn+OBquOBiyzjgajjgZfjgo0NCivjgoLjgoos44G/44GN44GKDQor44Gq44KL44G/LOOBsuOBp+OBmeOBjg0KK+OBlOOBqCzjgZXjgajjgZcNCivjgoTjgb7jgaHjgYss44GI44Gk44GKDQor44GV44GV44GNLOOBl+OBkuOBteOBvw0KK+OBjeOBl+OBoCzjga/jgZjjgoENCivjgYrjgbLjgoPjgb4s44G+44GV44KG44GNDQor44GX44GE44GuLOOChuOBhuOBmA0KK+OBhOOBmuOBv+OBleOCjyzjgZfjgoXjgbLjgaENCivjgYvjgb/jgoDjgoks44KI44GX44Gy44GTDQor44GV44GL44GELOOBv+OBoeOBig0KK+OBlOOBqCzjgZHjgYTjgYTjgaENCivjgYvjgajjgYYs44G/44Gk44Gy44KNDQor44Gf44GL44Gv44GXLOOBl+OBkuOChuOBjQ0KK+OBj+OBrizjgb7jgZXjgajjgZcNCivjgYTjgo/jgbbjgaEs44Gf44GR44GXDQor44G744KT44G2LOOBvuOCguOCiw0KK+OCguOCiuOBnyzjgb7jgZXjga7jgooNCivjgZvjgY3jgoQs44GK44GV44KADQor44Gs44G+44GfLOOBvuOBmeOBvw0KK+OBlOOBqCzjgYLjgaTjgZcNCivjgb7jgarjgbks44GK44GV44KADQor44GE44G+44GN44GfLOOBoOOBhOOBmOOCjQ0KK+OBk+OBoOOBiyzjgYLjgY3jgokNCivjgojjgZfjgaAs44G+44GV44Gy44GoDQor44GV44Go44GGLOOBv+OBoeOBig0KK+OBj+OBmeOBvyzjgojjgZnjgZENCivjga/jgY7jgo/jgoks44GL44Gk44KEDQor44G144KL44GbLOOCiOOBl+OBqOOCgg0KK+OCgOOCieOBnyzjgaDjgYTjgasNCivjgYrjgY/jgoDjgoks44GR44KT44GE44GhDQor44Gf44Gr44GM44G/LOOBi+OBmuOBig0KK+OBquOBi+OCgOOCiSzjgY3jgYTjgaHjgo3jgYYNCivjgZPjgYTjgZrjgb8s44GT44GG44GYDQor44GZ44Gp44GGLOOBn+OBpOOBsuOBkw0KK+OBhOOBpyzjgb7jgZXjgaTjgZANCivjgZfjgoLjga4s44G+44GV44G144G/DQor44Gf44GL44GOLOOBmOOCheOCkw0KK+OBleOBi+OBhCzjgZMNCivjgYTjga7jgYbjgYgs44GL44Ga44KEDQor44G144KL44GfLOOCgeOBhOOBleOBhA0KK+OBguOBleOBhCzjgb7jgZXjgosNCivjgbXjgYvjgZXjgo8s44GX44KH44GYDQor44GU44GL44GE44GhLOOBkeOCk+OBmA0KK+OBiuOBpOOBiyzjgZ/jgZHjgbLjgZUNCivjgZXjgajjgYYs44Gf44GR44GXDQor44GE44Gu44GG44GILOOBi+OBmuOChuOBjQ0KK+OBn+OBkeOBoCzjgajjgZfjgYvjgZoNCivjgb7jgZnjgaAs44Gm44KL44Gy44GTDQor44KE44G+44KC44GoLOOBl+OCh+OBkw0KK+OBiuOBr+OCiSzjgb7jgZXjgbLjgZMNCivjgbXjgarjgaQs44Gf44GE44GhDQor44GT44KE44G+LOOBl+OCk+OBmA0KK+OChOOBvuOBluOBjSzjgb7jgZXjgbLjgZMNCivjgZ/jgZjjgoos44Gy44KN44GXDQor44GV44Go44GGLOOBpuOBpOOChA0KK+OBquOBjOOBl+OBvizjgYvjgZrjgbLjgo0NCivjgaTjgaAs44KI44GX44GC44GNDQor44Gq44GM44GKLOOBguOBpOOBlw0KK+OBiuOBmeOBjizjgYvjgZrjgYoNCivjgYTjgajjgYYs44G/44Gh44Gu44G2DQor44Gf44G+44GELOOBjeOCiOOBlw0KK+OBv+OChOOBl+OBnyzjgY/jgavjgbLjgZMNCivjgb/jgZfjgb4s44GT44GG44GYDQor44G744KK44GELOOChOOBmeOBruOCig0KK+OBlOOBqCzjgZXjgajjgZcNCivjgoTjgYos44GX44GS44KLDQor44Gy44GY44KELOOBvuOBleOChuOBjQ0KK+OBu+OCiuOBhCzjgojjgZfjgbLjgZMNCivjgZ/jgZHjgaAs44Gu44G844KLDQor44KE44GZ44Gq44GMLOOBvuOBquOBtg0KK+OChOOBvuOBluOBjSzjgYvjgZrjgbLjgZMNCivjgoTjga4s44GY44KF44KT44GeDQor44GX44KP44GPLOOBqOOBl+OBsuOCjQ0KK+OBi+OBv+OBrizjgb/jga3jga/jgosNCivjgarjgYvjgZjjgb4s44Gk44KI44GXDQor44G+44GZ44GgLOOBmOOCjQ0KK+OBiuOBteOBoSzjgZ/jgYvjgZcNCivjgbXjgY/jgZbjgY0s44Go44KC44G/DQor44GE44Gf44GM44GNLOOBsuOCjeOChuOBjQ0KK+OBl+OCgizjgajjgoLjgarjgooNCivjgbXjgY/jgYQs44KG44Gf44GLDQor44GE44GzLOOCiOOBsuOBoeOCjQ0KK+OBk+OCgOOBi+OBhCzjgojjgZfjgbLjgo0NCivjgbXjgZjjgYgs44Gq44GK44GC44GNDQor44G+44Gk44GNLOOBvuOBk+OBqA0KK+OBk+OBsOOChOOBlyzjgZjjgoXjgYTjgaENCivjgZTjgaEs44Gf44Gk44KEDQor44Gv44Gb44GM44KPLOOBsuOBp+OBmA0KK+OBi+OCj+OBlOOBiCzjgZ/jgYvjgojjgZcNCivjgarjgYzjgZXjgo8s44GL44Gk44G/DQor44KE44G+44GX44GfLOOBsuOBp+OBsuOBqA0KK+OBhOOBl+OBluOBjSzjgYLjgY3jgokNCivjgYrjgaAs44G/44Gu44KLDQor44GX44KT44GpLOOBguOBjeOCiQ0KK+OBl+OCguOBleOBkyzjgZ/jgYTjgZjjgo0NCivjgaTjgaTjgb8s44GP44Gr44Gy44GTDQor44GN44Gf44GK44GLLOOBmOOCjQ0KK+OBjeOBn+OBluOCjyzjgozjgYTjgZMNCivjgarjgYvjgYrjgYss44GX44GS44GNDQor44GE44GX44Gw44GXLOOBoeOBiA0KK+OBr+OBl+OBkOOBoSzjga7jgbbjgYLjgY0NCivjgo/jgZ/jgarjgbks44GY44Gr44GhDQor44GK44GwLOOBjeOCiOOBvw0KK+OBr+OCiSzjga7jgbbjgobjgY0NCivjgZfjgb/jgZos44GL44Ga44Gy44GTDQor44GE44GW44KPLOOBi+OBmuOCiOOBlw0KK+OCiOOBl+OChOOBvizjgYvjgZrjgajjgZcNCivjgZnjgY7jgoLjgags44GR44KTDQor44GT44G+44GkLOOBqOOCguOBteOBvw0KK+OBuOOCk+OBvyzjgZ/jgYTjgZvjgYQNCivjgbXjgYvjgaAs44GV44GL44GIDQor44GT44Gw44KE44GXLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBmeOBjuOCguOBqCzjgb/jgaHjgbLjgo0NCivjgojjgZPjgoTjgb4s44Gf44GL44GC44GNDQor44Gf44Gq44GLLOOBr+OCi+OBsuOBlQ0KK+OBv+OChOOBn+OBqyzjgY3jgojjgZcNCivjga/jgZvjgYzjgo8s44GL44Ga44Gy44GTDQor44GN44Gf44GM44KPLOOBk+OBhuOBmA0KK+OBteOBj+OBiuOBiyzjgYjjgYTjgZgNCivjgYrjgoDjgoks44G/44KG44GNDQor44GE44GQ44GhLOOBv+OCj+OBkw0KK+OBr+OChOOBlyzjgYLjgY3jgbLjgo0NCivjgbLjgonjgYQs44GL44Gq44KBDQor44GK44KC44KKLOOBi+OBmuOChA0KK+OBiuOBjuOBrizjgZPjgb/jgaoNCivjgZ/jgoDjgoks44KI44GX44Gy44GTDQor44Gf44GR44GgLOOBguOBjeOCiQ0KK+OBv+OChOOBquOBjCzjgbLjgo3jgobjgY0NCivjgbLjgonjgYQs44GT44GG44GE44GhDQor44Gr44GX44KA44KJLOOBk+OBng0KK+OBr+OBtuOBoSzjga7jgorjgbXjgb8NCivjgYrjgY/jgoks44KI44GX44Gy44GVDQor44Gv44Gj44GfLOOBkeOCk+OBmA0KK+OBhOOBk+OBvizjgaTjgajjgoANCivjgYLjgZXjgbLjgaos44Gu44KK44Gy44GTDQor44GL44GuLOOBleOBqOOCiw0KK+OBquOBi+OBq+OBlyzjgYLjgaTjgZcNCivjgb/jgoTjgZbjgY0s44Gf44GL44GC44GNDQor44GE44Gh44GL44GpLOOBsuOCjeOChuOBjQ0KK+OBquOBjOOBleOCjyzjgZXjgajjgosNCivjga/jgb7jgZDjgaEs44G+44GT44GoDQor44KE44GX44KNLOOBvuOCiuOBkw0KK+OCgOOCieOBiizjgYvjgYjjgZMNCivjgYrjgY7jgb7jgaEs44KM44GE44GTDQor44GX44KN44GfLOOBhOOBoeOCjeOBhg0KK+OBpuOBl+OBvizjgb/jgaTjgYoNCivjgYvjgo/jgZXjgY0s44Gy44Gn44GC44GNDQor44KE44G+44GgLOOBk+OBhuOBhOOBoeOCjQ0KK+OBu+OCk+OBoCzjga7jgorjgb7jgZUNCivjgYvjga3jgZMs44Gy44KN44KG44GNDQor44G+44Gk44GX44G+LOOBsuOBp+OBi+OBmg0KK+OBk+OBv+OChCzjgojjgZfjgYLjgY0NCivjgo/jgaAs44GI44GE44GYDQor44KI44GX44GgLOOBsuOCjeOChuOBjQ0KK+OCguOCiuOBleOBjSzjgZ/jgYvjgZcNCivjgYTjgb7jgbLjgYzjgZcs44GX44KT44GUDQor44GP44KJ44KC44GhLOOBl+OCheOBmA0KK+OChuOBi+OCjyzjgbLjgo3jgoANCivjgabjgonjgYos44Go44KI44GC44GNDQor44GT44KT44GpLOOBguOBjeOBruOBtg0KK+OBleOBhOOBqOOBhizjga/jgovjgYoNCivjgojjgZfjgarjgYws44Gy44KN44Gu44KKDQor44KG44GC44GVLOOBvuOBjQ0KK+OBqOOBueOBo+OBqCzjgYLjgY3jgokNCivjgZvjgpPjgYws44G+44GV44KG44GNDQor44Gr44GX44GQ44GhLOOBv+OBpOOBig0KK+OBhuOBiOOBoCzjgoTjgZnjgobjgY0NCivjgoTjgb7jgYrjgYss44GK44GV44KADQor44KE44G+44KC44GoLOOBvuOBleOBsuOBpw0KK+OBteOBmOOBi+OCjyzjgZfjgZLjgosNCivjgYrjgZDjgoks44Gy44KN44Ga44G/DQor44GL44KP44GuLOOBk+OBhuOBmA0KK+OBi+OBreOBmuOBiyzjgaTjgojjgZcNCivjgYrjgYvjgoLjgags44Gf44GL44GXDQor44GL44KP44Gk44GNLOOChuOBhuOBmA0KK+OBmeOBiOOCiOOBlyzjgbLjgafjgYoNCivjgYvjgo/jgbks44KP44Gf44KLDQor44Gf44GL44Gv44GXLOOBleOBqOOBlw0KK+OCguOCiizjgZjjgo0NCivjgZnjgY7jgoTjgb4s44G+44GNDQor44G+44GI44KE44G+LOOBvuOBleOChuOBjQ0KK+OBk+OCgeOBn+OBqyzjgbLjgo3jgZcNCivjgbXjgZjjgo/jgoks44Gv44KL44KG44GNDQor44GC44Gn44GM44KPLOOBi+OBmuOBvg0KK+OBqOOBv+OBluOCjyzjgojjgZfjgYoNCivjgarjgYvjgZ8s44Go44GX44GC44GNDQor44Gf44Gh44Gw44Gq44GNLOOBquOBiuOBjQ0KK+OBk+OBoOOBvizjgajjgZfjgYoNCivjga/jgarjgYQs44GL44Ga44GKDQor44Gh44Gu44GtLOOBqOOBl+OBn+OBkQ0KK+OBl+OBv+OBmizjgZ/jgYvjgZcNCivjgZ/jgY3jgZbjgo8s44Gy44Gn44GKDQor44GP44Gp44GGLOOBsuOCjeOBguOBjQ0KK+OCguOCiuOBiuOBiyzjgobjgZnjgZENCivjgYvjga3jgbLjgoks44GL44Ga44GKDQor44GV44Go44GGLOOBn+OBpOOChA0KK+OChOOBsOOBqizjgZfjgZLjgobjgY0NCivjgZXjgYvjgZrjgoEs44Gf44GL44KG44GNDQor44Gv44GX44KC44GoLOOBl+OCk+OBmeOBkQ0KK+OCiOOBruOCguOBqCzjgabjgaTjgZgNCivjgbDjgpPjgZfjgocs44GN44KI44GXDQor44G144Gh44GILOOChuOBhuOBmA0KK+OBmeOBmuOBjSzjgY3jgojjgZcNCivjgZnjgZrjgY0s44Gy44KN44KG44GNDQor44GT44Gw44KE44GXLOOBiuOBleOCgA0KK+OBi+OBqOOBhizjgb7jgZXjgYLjgY0NCivjgY/jgZnjgaAs44Gv44KL44GC44GNDQor44G/44KE44Gf44GRLOOBl+OCh+OBlA0KK+OBleOBrizjgaHjgbsNCivjgb7jgovjgZ8s44GL44Ga44GKDQor44G+44GN44GfLOOBk+OBhuOBhOOBoQ0KK+OBi+OBl+OCj+OBjizjgb7jgZXjgagNCivjgZ/jgass44GR44KT44GYDQor44GC44KK44KE44GZLOOBvuOBleOBi+OBmg0KK+OBi+OBqOOBhizjgYLjgY3jgYoNCivjgZ/jgarjgYss44Gy44KN44Gu44G2DQor44Gk44GY44GfLOOBqOOBl+OBig0KK+OBiuOBjOOCj+OCiSzjgbLjgo3jgobjgY0NCivjgoDjgonjgZXjgo8s44GN44KIDQor44Gb44GN44KC44GoLOOBsuOBp+OBjQ0KK+OBpOOBmOOCguOBqCzjgY/jgavjgYoNCivjgZfjgYrjgZ/jgass44GL44Ga44GKDQor44G/44KPLOOBhOOBj+OBig0KK+OBquOBjOOBleOBiyzjgobjgY3jga7jgooNCivjgZPjgYTjgacs44GL44Ga44Gy44KNDQor44GK44GQ44KJLOOBn+OBi+OBpOOBkA0KK+OBpOOBpOOBvyzjgYvjgZrjgYTjgaENCivjgbXjgYvjgb8s44KI44GX44Gy44KNDQor44KI44GX44GgLOOBsuOBp+OBmA0KK+OCguOCjeOBu+OBlyzjgajjgZfjgYLjgY0NCivjgZfjgYrjga4s44G+44KK44GTDQor44KE44G+44GQ44GhLOOBr+OBmOOCgQ0KK+OBvuOBv+OChCzjgojjgZfjgb8NCivjgZXjgYTjgajjgYYs44GI44Gk44GKDQor44GC44GN44KE44G+LOOBl+OCheOBmA0KK+OBguOBoOOBoSzjgb7jgZXjgbLjgagNCivjgYvjgo/jga4s44Gy44KN44GXDQor44Gq44GL44KA44KJLOOBn+OBoOOBig0KK+OChOOBvuOBkOOBoSzjgajjgZfjgbLjgo0NCivjgZXjgY/jgb4s44Gy44GV44GXDQor44KC44Gh44Ga44GNLOOBsuOBleOBqA0KK+OCj+OBn+OBquOBuSzjgojjgbLjgaHjgo0NCivjgZPjgbDjgoTjgZcs44Go44GX44GKDQor44GN44GXLOOBm+OBhOOBmA0KK+OBr+OChOOBleOBiyzjgYLjgY3jgokNCivjgZPjgbXjgZgs44Gk44Go44KADQor44GV44GE44Go44GGLOOBn+OBi+OBruOCig0KK+OBruOCgOOCiSzjgZjjgoXjgavjgaENCivjgb7jgaTjgYQs44Gf44GL44GXDQor44Gv44KE44GX44GgLOOBmeOBmeOCgA0KK+OBiuOBjOOCjyzjgZ/jgaDjgbLjgacNCivjgbvjgpPjgaAs44Gu44G244G/44GhDQor44GT44GW44KPLOOBpOOBi+OBlQ0KK+OBleOBleOBjSzjgZfjgZLjgobjgY0NCivjgo/jgaAs44GN44KI44GXDQor44KE44G+44KP44GNLOOBi+OBmuOBsuOCjQ0KK+OBteOBmOOBhCzjgajjgZfjgb/jgaQNCivjgZ/jgY3jgZbjgo8s44GC44GN44Gy44KNDQor44GV44Go44GGLOOBqOOBl+OBjQ0KK+OBv+OBi+OBvyzjgbLjgafjgb8NCivjgb/jgo8s44KI44GX44Gf44GLDQor44GK44GhLOOCiOOBmA0KK+OBteOBmOOBnyzjgZvjgYTjgZgNCivjgarjgYzjgZ8s44G/44KM44GEDQor44GP44G844GfLOOBv+OBoeOCiA0KK+OBguOBiuOBjOOBjSzjgb7jgZXjga7jgbYNCivjgYvjgorjgoTjgaks44GC44GN44GTDQor44G/44Gv44GXLOOBl+OCheOCk+OBmA0KK+OCgOOCieOBvuOBpCzjgobjgY3jgYoNCivjgYvjgZ/jgoTjgb4s44G+44GV44GIDQor44KE44G+44GW44GNLOOBn+OBi+OBlw0KK+OBiuOBjuOBnSzjgZ/jgYvjgZcNCivjgbDjgbAs44KI44GX44KC44GoDQor44G/44GX44G+LOOBsuOBp+OBguOBjQ0KK+OChOOBrizjgY3jgojjgZcNCivjgarjgYvjgZjjgb4s44Gf44G/DQor44Gf44GR44GX44GfLOOBr+OCi+OCiA0KK+OBquOBi+OBrizjgoTjgZnjgbLjgZMNCivjgZ/jgYvjga4s44GT44GG44GYDQor44GL44KP44GgLOOBleOBqOOBlw0KK+OBn+OBmOOBvizjga7jgbzjgosNCivjgoLjgaHjgZrjgY0s44Gy44KN44GXDQor44GN44KA44KJLOOBkeOBhOOBmA0KK+OBguOBjeOBuyzjgYTjgaHjgo3jgYYNCivjgoTjgb7jgoLjgags44KI44GG44GTDQor44GL44KP44GbLOOBkuOCkw0KK+OBleOBlSzjgarjgYrjgZMNCivjga7jgZss44GX44KT44GE44GhDQor44Gy44KJ44GfLOOBoeOBiOOBkw0KK+OBk+OBsOOChOOBlyzjgYrjgZXjgoANCivjgYLjgYzjgo8s44Go44GX44Gy44GTDQor44Gm44KJ44KC44GoLOOBjeOCiOOBn+OBiw0KK+OBiuOBluOBjSzjgb7jgZXjgYvjgZoNCivjgoLjgoos44G+44GV44Gy44GTDQor44GG44GkLOOBiuOBleOCgA0KK+OCj+OBi+OBvuOBpCzjgYLjgY3jgbLjgZMNCivjgYTjgb7jgYQs44GN44KH44GTDQor44GP44G8LOOBv+OBruOCiw0KK+OBn+OBi+OBrizjgobjgY0NCivjgbLjgbPjga4s44GL44Ga44G+44GVDQor44GZ44Ga44GNLOOBk+OBhuOBn+OCjeOBhg0KK+OBn+OBquOBiyzjgY3jgojjgZcNCivjgZXjgYvjgoLjgoos44GL44Gk44G/DQor44Gf44GN44GW44KPLOOBqOOBv+OCguOBqA0KK+OCiOOBl+OBi+OCjyzjgYLjgY0NCivjgajjgojjgaAs44KG44Gf44GLDQor44GG44KJ44GX44G+LOOBsuOBleOBig0KK+OBk+OCk+OBrizjgYvjgZrjgarjgooNCivjgabjgonjgYvjgo8s44Gq44GK44GNDQor44GT44Gw44KE44GXLOOBl+OCheOBsuOBoQ0KK+OBjeOCgOOCiSzjgobjgZnjgZENCivjgYvjgb/jgYos44Gy44KN44G144G/DQor44GP44KM44Gw44KE44GXLOOBleOBi+OBiA0KK+OBi+OBreOBoCzjgY3jgofjgZMNCivjgYvjgo/jgoLjgags44Gy44Go44GXDQor44GE44G+44KA44KJLOOBqOOBl+OBleOBoA0KK+OBk+OBr+OBjuOBluOCjyzjgbXjgb/jgZMNCivjgZfjga7jgZbjgY0s44Gf44GL44Gy44KNDQor44KB44GQ44KNLOOBmOOCheOCk+OBmA0KK+OBj+OBq+OBleOBoCzjgbLjgafjgYoNCivjgoLjgoos44Gv44KL44GNDQor44GL44KP44GO44GXLOOBn+OBi+OBr+OCiw0KK+OBiuOBmeOBjCzjgYvjgojjgZMNCivjgZnjgaAs44Gm44GkDQor44Gq44GL44KA44KJLOOBn+OBiOOBkw0KK+OBhOOBl+OBkyzjgorjgoXjgbLjgaENCivjgZnjgZrjgY0s44KG44GG44GYDQor44GN44GP44GhLOOCguOBqOOBsuOCjQ0KK+OBiuOBjuOBnyzjgZ/jgZHjgarjgYwNCivjgZ/jgYvjgoTjgb4s44GC44GN44Gy44GTDQor44Gq44GL44GX44G+LOOBn+OBi+OBkw0KK+OBpOOBmOOCguOBqCzjgozjgYQNCivjga/jgoTjgb4s44GN44KI44G/DQor44GE44Gf44GM44GNLOOBsuOCjeOBkw0KK+OChOOBvuOCguOBqCzjgZPjgbjjgYQNCivjgYLjgaDjgaEs44KI44GX44Gy44KNDQor44GN44Gf44G/LOOBv+OBruOCiw0KK+OBn+OBvuOBjSzjgZfjgoXjgbLjgaHjgo0NCivjgb7jgYjjgaAs44GV44Go44GXDQor44GC44Gg44GhLOOBvuOBleOBr+OCiw0KK+OBn+OBvuOBoCzjgY3jgogNCivjgoLjgorjgZDjgaEs44Gf44GL44KG44GNDQor44KI44GX44Gq44GMLOOBi+OBiOOBpw0KK+OBvuOBiOOBoCzjgbLjgo3jgZcNCivjgo/jgZ/jgarjgbks44GN44KI44GL44GaDQor44Gf44GL44Gv44GXLOOBmOOCheOCkw0KK+OBhOOBl+OBkyzjgarjgYrjgoQNCivjgYrjgZjjgb4s44GL44Ga44Gy44GTDQor44GX44Gw44KE44G+LOOBguOBjeOCiQ0KK+OBl+OBsCzjgZ/jgYvjgajjgokNCivjgajjgoLjga4s44GN44KI44GXDQor44GZ44G/LOOBsuOCjeOBlw0KK+OBv+OBpOOBquOBjCzjgY/jgavjgbLjgo0NCivjgYbjgonjga4s44G+44GV44GC44GNDQor44KI44GT44Ga44GLLOOBsuOCjeOBguOBjQ0KK+OBteOBmOOBi+OCjyzjgbLjgo3jgZcNCivjgYvjgbbjgonjgY4s44Gy44KN44Gy44GnDQor44KI44GX44GgLOOBv+OBoeOBig0KK+OBleOBhOOBqOOBhizjgobjgYbjgZgNCivjgoTjga4s44GX44KH44GeDQor44KI44GT44GfLOOBkOOCk+OBmA0KK+OBquOBi+OCgOOCiSzjgobjgYbjgZgNCivjgarjgb/jgZXjgags44Gu44KK44GTDQor44Gt44GO44GXLOOBn+OBiOOBkw0KK+OBjeOBrizjgZ/jgb7jgY0NCivjgarjgYvjgZjjgb4s44KI44KK44Gf44GLDQor44Gk44Gk44G/LOOBpuOBpOOCjQ0KK+OBk+OBoCzjgYvjgaTjgZgNCivjgbvjgoos44KI44GX44GC44GNDQor44GT44GuLOOBn+OBkeOBsuOBkw0KK+OCj+OBoCzjgZHjgpPjgYTjgaENCivjgb7jgaTjgarjgYws44G+44GV44G144G/DQor44Gr44GX44KA44KJLOOBguOBjeOBkw0KK+OBhOOBhCzjgb7jgZXjgY0NCivjgoTjgZnjgYQs44GV44Go44GXDQor44GT44Gw44KE44GXLOOBr+OCi+OBsuOCjQ0KK+OChOOBvuOBleOBjSzjgb7jgZXjgobjgY0NCivjgZnjgZrjgY0s44KG44Gf44GLDQor44GE44KP44GfLOOCiOOBl+OBguOBjQ0KK+OBl+OBkuOCguOCiizjgZ/jgYvjgbLjgZUNCivjgYTjgb7jgoDjgoks44Gq44GK44G/DQor44Gk44GL44KC44GoLOOBguOBpOOBlw0KK+OBhOOBqOOBhizjgb7jgZXjgYvjgZoNCivjgY/jgbws44GR44GE44GeDQor44GV44Gq44GILOOBruOBvOOCiw0KK+OBk+OBoOOBvizjgYLjgY3jgokNCivjgYTjgajjgYYs44GX44KF44Gy44GhDQor44GC44GP44GkLOOChOOBmeOBsuOBkw0KK+OBguOBn+OCieOBlyzjgb/jgobjgY0NCivjgZ/jgZDjgoos44GL44Ga44KEDQor44GY44KH44GuLOOChuOBv+OBkw0KK+OBguOBi+OBvuOBpCzjgZXjgaDjgYoNCivjgYLjgZXjga4s44Go44GX44KG44GNDQor44Gq44GL44GM44KPLOOChOOBmeOBsuOCjQ0KK+OBi+OCj+OBl+OBvizjgarjgYrjgY0NCivjgZXjgajjgYYs44GX44KF44Gy44GhDQor44GK44GQ44KJLOOBvuOBleOBsuOCjQ0KK+OBhOOBl+OBsOOBlyzjgoTjgZnjgobjgY0NCivjgb7jgaTjgYrjgYss44Gv44KL44Gy44GTDQor44Gf44GN44GW44KPLOOBn+OBi+OBlw0KK+OBhOOBn+OBj+OCiSzjga7jgbbjgZ/jgYsNCivjgbvjgpPjgZQs44GC44GN44KIDQor44Gq44GM44KE44GZLOOBl+OCk+OBmeOBhA0KK+OBhuOBoeOBoCzjgZjjgo0NCivjgoTjgb7jgZfjgZ8s44GL44Ga44G+44GVDQor44GE44GX44GQ44KNLOOBguOBjeOBig0KK+OCguOCiizjgYvjgaTjgZcNCivjgZ/jgarjgYss44KI44GG44GTDQor44Gy44GQ44GhLOOBv+OBiOOBkw0KK+OBjeOBqCzjgZjjgoXjgpPjgZMNCivjgZ/jgarjgYss44Gf44Gk44KEDQor44GZ44Ga44GNLOOBkeOCk+OBmOOCjQ0KK+OBmeOBjOOBhCzjgZHjgpPjgZgNCivjgojjga3jgZbjgo8s44G+44GV44GC44GNDQor44GC44KJ44GL44KPLOOBguOBleOBkw0KK+OBhOOBruOBoCzjgbLjgafjgYoNCivjgYvjgajjgYYs44Gb44GE44GYDQor44GL44GS44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBv+OChOOCj+OBjSzjgZ/jgYvjgojjgZcNCivjgb/jgaHjgoTjgb4s44G+44GV44KI44GXDQor44KC44KKLOOBleOBqOOBlw0KK+OCguOCiuOBleOCjyzjgojjgZfjgYvjgZoNCivjgavjgZfjgoDjgoks44Gf44GL44KG44GNDQor44GV44GE44Go44GGLOOBsuOCjeOBlw0KK+OChOOBvuOCguOBqCzjgaTjga3jgYoNCivjgb7jgaTjgYbjgoks44Gy44KN44GXDQor44Gv44Gb44GM44KPLOOBqOOCiOOBsuOBkw0KK+OBhuOBoeOBoCzjgZPjgYbjgYTjgaENCivjgoTjgZnjgaAs44GX44GS44GoDQor44GE44GX44GgLOOBl+OCk+OBhOOBoQ0KK+OCguOCiuOBrizjgYvjgZrjgobjgY0NCivjgY3jgZ/jgoTjgb4s44GL44Ga44Gy44KNDQor44GV44GL44KC44GoLOOBkeOCk+OBmA0KK+OBneOBhuOBv+OChCzjgojjgZfjgYvjgZoNCivjgY3jgY/jgaEs44KK44KF44GYDQor44GX44G244GELOOChOOBmeOBsuOBlQ0KK+OBqOOBv+OBnyzjgb7jgZXjgYoNCivjgoLjgoos44G+44GV44GXDQor44KE44G+44GQ44GhLOOBqOOBl+OBsuOBkw0KK+OBjeOBn+OChOOBvizjgZ/jgaDjgoTjgZkNCivjgb7jgpPjgoLjgags44Go44GX44GC44GNDQor44Gf44Gq44GLLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OCguOCiizjgYvjgaTjgobjgY0NCivjgYTjgZ/jgY/jgoks44KE44GZ44Gu44KKDQor44GE44Gh44G/44KELOOCiOOBmeOBkQ0KK+OBq+OBl+OChOOBvizjgojjgZfjgYLjgY0NCivjgo/jgZ/jgarjgbks44Gk44Go44KADQor44Gv44KT44GM44GELOOBmOOCheOBq+OBoQ0KK+OBquOBjOOBrizjgZPjgYbjgYTjgaENCivjgZfjgbAs44Go44GK44KLDQor44GT44GY44G+LOOBi+OBpOOBvuOBlQ0KK+OBn+OBn+OBrizjgojjgZfjgbLjgo0NCivjgYvjgo/jgbDjgZ8s44KI44GX44Gu44KKDQor44Gf44GR44GgLOOBsuOCjeOChuOBjQ0KK+OBiuOCgOOCiSzjgZfjgpPjgYTjgaENCivjgZXjgZMs44GT44GG44GYDQor44GE44GX44Gv44KJLOOBguOBpOOBlw0KK+OBhOOBoeOBruOBmyzjgZPjgYbjgZgNCivjgY3jgZfjgaAs44GY44KF44KT44GYDQor44G/44GL44G/LOOCiOOBl+OBsuOCjQ0KK+OBr+OChOOBlyzjgYLjgY3jgokNCivjgZXjgZXjgY0s44KG44Gf44GLDQor44KI44Gt44G/44GkLOOBi+OBmuOBsuOCjQ0KK+OBm+OBjeOBrSzjgYTjgZXjgoANCivjgYTjgb7jgavjgZcs44G+44GV44GXDQor44GC44GK44GNLOOBi+OBpOOBmA0KK+OBmeOBjuOChOOBvizjgbLjgo3jgZcNCivjgarjgYvjgoLjgoos44Gv44KL44GKDQor44GX44G+44GgLOOBkeOBhOOBhOOBoeOCjeOBhg0KK+OBvuOBmeOBoCzjgZHjgpPjgZgNCivjgaTjgbzjgYQs44GZ44GZ44KADQor44Gb44GN44KELOOBleOBqOOBlw0KK+OBjeOBmOOBvizjgb7jgZXjgbLjgZMNCivjgojjgZfjgZrjgb8s44Gf44KN44GGDQor44KE44Gq44GO44Gg44GmLOOBhOOBj+OCjQ0KK+OBl+OBkuOBvuOBpCzjgbLjgo3jgZcNCivjgYTjga7jgYbjgYgs44G/44Gu44KLDQor44Gf44GR44GG44GhLOOBmeOBmeOCgA0KK+OBn+OBquOBiyzjgojjgZfjgb8NCivjgbLjgYzjgZcs44GY44KF44KTDQor44Gf44GL44GfLOOBn+OBj+OBmA0KK+OBquOBi+OBhCzjgYLjgobjgb8NCivjga/jgZvjgYzjgo8s44GL44Ga44Gq44KKDQor44Gf44GrLOOCiOOBl+OBquOCig0KK+OBk+OBsOOChOOBlyzjgY3jgojjgZ/jgaANCivjgZ/jgYvjga/jgZcs44Gf44Gg44GXDQor44GC44G5LOOBhOOBleOBig0KK+OBk+OBsOOChOOBlyzjgojjgZfjgbXjgb8NCivjgYrjga4s44G+44GV44Gy44GTDQor44Gf44GL44Gv44GXLOOBteOBleOBig0KK+OBj+OCjeOBoCzjgbLjgo3jgZcNCivjgo/jgZ/jgarjgbks44GZ44GZ44KADQor44GC44G5LOOBruOCiuOBig0KK+OBhOOBruOBhuOBiCzjgbLjgafjgZ/jgYsNCivjgYjjgpPjgaks44GX44KT44KEDQor44Gu44Gu44GX44GfLOOBr+OCi+OChOOBmQ0KK+OBi+OBquOBhCzjgarjgYrjgY0NCivjgZPjgZ/jgY0s44GR44GE44GTDQor44Gf44GL44Gv44GXLOOBn+OBkeOBlw0KK+OBl+OBkuOChOOBvizjgZfjgoXjgZgNCivjgbXjgYvjgaAs44Gq44GK44Gy44KNDQor44GX44GK44GYLOOBpOOBjuOBig0KK+OCguOCiuOChCzjgZjjgoXjgavjgaENCivjgYrjgaTjgYss44Gf44GL44GXDQor44GC44G5LOOBv+OBjeOBqOOCiA0KK+OBsuOCieOBhCzjgYLjgZXjgZMNCivjgoDjgonjgb7jgaQs44G+44GV44GoDQor44G/44Ga44GfLOOCiOOBl+OBng0KK+OBu+OCiuOBiCzjgYTjgY/jgoQNCivjgbLjgYvjgZUs44KG44GN44Gy44KNDQor44GK44GX44Gf44GrLOOBguOBpOOBlw0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgZcNCivjgY/jgonjga/jgZcs44GX44KT44GYDQor44Gy44KJ44Gw44KLLOOCiOOBhuOBkw0KK+OBteOBmOOBiOOBoCzjgojjgZfjgYoNCivjgajjgZbjgo8s44GX44GS44G144G/DQor44KE44Gq44GbLOOBj+OBv+OBkw0KK+OBj+OBvOOBnyzjgZjjgofjgZgNCivjgb7jgb/jgoQs44KI44GG44GTDQor44KG44Gv44KJ44GOLOOBqOOBv+OBig0KK+OBoeOCh+OBquOCkyzjgYLjgY3jgYoNCivjgb/jgojjgZcs44GL44Gk44KG44GNDQor44Gu44GY44G+LOOBteOBv+OBsuOCjQ0KK+OCguOCiuOBleOBjSzjgb7jgZXjgoQNCivjgZPjgoTjgb4s44G+44GV44Gf44GLDQor44GL44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBjeOBruOBl+OBnyzjgZjjgoXjgpMNCivjgYvjgo/jgoDjgo0s44G+44GV44G/DQor44KC44KKLOOBi+OBmuOChuOBjQ0KK+OBsuOCieOBl+OBnyzjgb7jgZXjgZ/jgYsNCivjgYvjgo/jgZfjgb4s44G+44GT44GoDQor44G144KL44GL44KPLOOBi+OBpOOBvw0KK+OBhOOCk+OBp+OCkyzjgbLjgafjgobjgY0NCivjgoTjgb7jgaAs44Gf44GR44GKDQor44Gk44GP44GgLOOBvuOBk+OBqA0KK+OBhOOCj+OBleOBjSzjgYvjgaTjgb8NCivjgYrjgb7jgYgs44GX44GS44KLDQor44GZ44Ga44GNLOOCiOOBl+OBig0KK+OBr+OCiSzjgb7jgZXjgY0NCivjgZXjgYvjgYQs44G+44GV44G/DQor44KC44KK44KELOOCiOOBl+OBvuOCjQ0KK+OBv+OChOOCguOBqCzjgajjgYrjgosNCivjgZfjgZLjgZ8s44KI44GX44Gu44KKDQor44GE44GX44GL44KPLOOBvuOBk+OBqA0KK+OBn+OBluOBjSzjgajjgZfjgYLjgY0NCivjgZnjgYjjgbLjgo0s44Gy44KN44GNDQor44GL44Gt44GgLOOChOOBoeOCiA0KK+OBmeOBiOOBsuOCjSzjgZXjgajjgZcNCivjgZXjgZXjgY0s44GR44GE44GE44GhDQor44Gy44KE44G+LOOBleOBoOOBjQ0KK+OBjeOBqeOBkOOBoSzjgorjgocNCivjgZfjgb7jgaAs44GC44GN44GoDQor44G/44KE44GRLOOBvuOBleOBsuOBkw0KK+OCguOCiizjgoTjgZnjgobjgY0NCivjgZfjgonjgYvjgo8s44G/44Gu44KLDQor44KP44GL44Gw44KE44GXLOOBvuOBleOBsuOBqA0KK+OChOOBvuOBl+OBnyzjgYrjgZXjgoANCivjgYLjgb7jga4s44G+44GV44KG44GNDQor44Gf44GR44GE44GhLOOBvuOBleOBsuOBkw0KK+OBl+OCk+OBmOOChyzjgZ/jgaTjgoDjga0NCivjgYvjgZXjga/jgoks44GL44Ga44G+44GVDQor44Gf44Gq44GLLOOBqOOBl+OBsuOCjQ0KK+OBiuOBj+OBoCzjgb7jgZXjgbLjgo0NCivjgYvjgajjgYYs44Gy44Gn44Gu44KKDQor44GL44KP44GV44GNLOOBleOBoOOCgA0KK+OBi+OBqOOBhizjgoDjga3jgoQNCivjgYTjgaHjgZss44GT44GG44GE44GhDQor44GN44Gf44GM44KPLOOBmOOCheOBq+OBoQ0KK+OChOOBmeOBhCzjgorjgoXjgZXjgY8NCivjgYjjgaAs44Gf44Gk44Gv44KLDQor44Gv44KE44GXLOOCiOOBl+OBsuOCjQ0KK+OBquOBjOOBhCzjgajjgZfjgobjgY0NCivjgajjga7jgoDjgoks44Gy44Go44G/DQor44Gf44Gq44GLLOOBmOOCjQ0KK+OBj+OCiuOBsOOChOOBlyzjgZPjgYbjgZgNCivjgY3jgoDjgoks44GX44KT44GE44Gh44KN44GGDQor44Gv44Gc44GNLOOBi+OBmuOBig0KK+OBguOCk+OBrizjgZjjgoXjgpPjgZgNCivjgZ/jgYvjgojjgZcs44Gy44KN44Gf44GLDQor44GC44KT44GW44GELOOBkeOBhOOBkw0KK+OBn+OBi+OBr+OBlyzjgabjgaTjgoQNCivjga/jgonjga4s44GR44GE44GXDQor44Gq44GL44GM44KPLOOBguOBjeOCiQ0KK+OBq+OBl+OBi+OCjyzjgajjgoLjgZMNCivjgZfjgbbjgoQs44G+44GV44GTDQor44GL44Go44GGLOOBi+OBmuOBig0KK+OBguOBoOOBoSzjgb7jgZXjgYLjgY0NCivjgZXjgY/jgonjgYQs44GS44KT44G444GEDQor44GP44GV44GuLOOCiOOBl+OBruOBtg0KK+OBv+OBquOBv+OBnuOBrizjgajjgb/jgYvjgZoNCivjgaTjgZjjgoDjgoks44Gf44Gk44GYDQor44KE44G+44GgLOOBleOBqOOBlw0KK+OBi+OBpOOBl+OBvizjgb7jgZXjga7jgooNCivjgZPjgoTjgarjgYss44Gu44G244KG44GNDQor44Gf44Gw44GfLOOCiOOBl+OBruOCig0KK+OBguOBoOOBoSzjgYvjgaTjgZMNCivjgbLjgo3jga4s44Gu44G244KG44GNDQor44Gk44GW44GNLOOBguOBpOOBlw0KK+OBn+OBoeOBsOOBqizjgojjgZfjgZXjgagNCivjgbnjgaPjgZfjgocs44GX44KH44GY44KNDQor44G+44Gk44GX44GfLOOBiuOBleOCgA0KK+OBn+OBq+OBkOOBoSzjgaTjga3jgYoNCivjgarjgYvjgajjgoIs44GL44Gk44KI44GXDQor44Gr44GX44KA44KJLOOChuOBjeOBig0KK+OBv+OBhuOCiSzjgYvjgZrjgbLjgo0NCivjgZPjgpPjgaks44Gu44G244Gy44KNDQor44G+44Gk44GELOOBqOOBl+OBsuOCjQ0KK+OBvuOBpOOCguOBqCzjgoTjgZnjgZ/jgYsNCivjgbvjgorjgYQs44Go44GX44Gy44KNDQor44G+44GZ44KC44GoLOOBv+OBruOCiw0KK+OBquOBi+OBmOOBvizjgYLjgY3jgajjgZcNCivjgY3jgoDjgoks44GE44GV44KADQor44G/44KPLOOBl+OBkuOBvw0KK+OBhOOBl+OBsOOBlyzjgbLjgo3jgobjgY0NCivjgYjjgZDjgaEs44GC44GN44KJDQor44GE44Gq44G144GPLOOCiOOBl+OBsuOCjQ0KK+OCj+OBn+OBrOOBjSzjgZvjgYTjgYTjgaENCivjgbLjgZDjgaEs44Gy44KN44GC44GNDQor44GE44GR44GuLOOBl+OBkuOBguOBjQ0KK+OBhuOCgeOBr+OCiSzjgYvjgZrjgb8NCivjga7jgZbjgo8s44Gh44KF44GeDQor44GE44G+44GELOOBkeOCk+OBl+OChQ0KK+OBn+OBi+OBr+OBlyzjgoDjgaTjgb8NCivjgYTjgYTjgaAs44Gy44KN44GXDQor44G144GY44GL44KPLOOBvuOBk+OBqA0KK+OBq+OBl+OBiCzjgYrjgZXjgoANCivjgZPjgZnjgZIs44G+44GV44GNDQor44GK44GfLOOBsuOCjeOBi+OBmg0KK+OBruOBmCzjgbLjgo3jgZcNCivjgZPjgbzjgoos44Gk44Go44KADQor44GZ44GO44KE44G+LOOBoeOBi+OBlw0KK+OBi+OCj+OBnyzjgZHjgpPjgYTjgaENCivjgZXjgoHjgZfjgb4s44Gy44KN44KG44GNDQor44GT44KE44G+LOOChOOBmeOBlw0KK+OBiOOCk+OBi+OBhCzjga7jgorjgbLjgZUNCivjgZPjgoLjgaAs44GY44KF44KTDQor44GK44GM44KPLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOCgOOCiSzjgojjgZfjgbLjgZMNCivjgYjjga7jgoLjgags44GN44GP44GKDQor44Gf44GL44GgLOOBvuOBquOBtg0KK+OBquOBi+OBv+OBnizjgZ/jgaDjgZcNCivjgYrjgYvjgoDjgoks44G+44GV44GNDQor44GL44G/44Gw44KE44GXLOOBi+OBpOOBmA0KK+OBteOBmOOCguOCiizjga/jgovjgbLjgZUNCivjgY/jgo3jgaAs44GL44GK44KLDQor44GV44Go44GGLOOBn+OBoOOBsuOBkw0KK+OCiOOBl+OCgOOCiSzjgbLjgo3jgZcNCivjgoLjgZ/jgYQs44GY44KF44KT44GTDQor44KA44KJ44GfLOOBj+OBq+OBsuOBkw0KK+OBv+OCjyzjgb/jgY3jgYoNCivjgYTjga/jgoks44KI44GX44GC44GNDQor44GE44G+44GELOOBpuOBpOOBsuOBkw0KK+OBsuOBrizjgb/jga3jgYoNCivjgb7jgaTjgoLjgags44GN44KI44Gf44GLDQor44Gb44GoLOOBn+OBi+OBlw0KK+OBj+OBvuOBjOOBhCzjgaTjgajjgoANCivjgoTjgb7jgaAs44GT44GG44GE44GhDQor44KP44Gf44Gq44G5LOOBi+OBmuOBvuOBlQ0KK+OChOOBleOBiyzjgozjgYTjgZgNCivjgZXjgajjgYYs44Gy44GV44Gf44GgDQor44G/44KE44Gf44GRLOOChuOBv+OBkw0KK+OBvuOBpOOBhuOCiSzjgbLjgo3jgZcNCivjgb7jgaTjgZfjgZ8s44Gb44GE44GYDQor44GG44KJ44G5LOOBv+OBjeOBig0KK+OBl+OBjOOBjSzjgZfjgpPjgYTjgaENCivjgabjgonjgaAs44KI44KK44GIDQor44GE44KP44KC44GoLOOBn+OBjeOBig0KK+OBhOOBruOBhuOBiCzjgZ/jgY/jgZgNCivjgoLjgaHjgZrjgY0s44Go44GK44KLDQor44KI44GX44Ga44G/LOOBquOBiuOBqA0KK+OBv+OBhuOCiSzjgYjjgb8NCivjgb/jgZrjga4s44Gf44GL44GXDQor44KI44GX44GELOOBi+OBmuOBig0KK+OBteOCi+OBhCzjgZ/jgYvjgZcNCivjga/jgoTjgZcs44KI44GYDQor44GX44KJ44GE44GXLOOChOOBmeOBsuOCjQ0KK+OBmeOBjOOCj+OCiSzjgojjgZfjgYoNCivjgarjgYvjgYQs44KG44GG44GTDQor44Gu44G144GYLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgYLjgY3jgbLjgo0NCivjgY/jgo3jgaAs44Gy44KN44Gu44G2DQor44GE44GR44GgLOOBsuOBqOOBlw0KK+OBleOBjCzjgb7jgZPjgagNCivjgb/jgoTjgYvjgo8s44GE44GV44KADQor44KP44KJ44GX44GqLOOBvuOBleOCiOOBlw0KK+OBjeOBn+OBjOOCjyzjgojjgZfjgbLjgagNCivjgYTjgb7jgYQs44KI44GX44GC44GNDQor44G/44GV44GNLOOBmOOCjQ0KK+OBhOOBl+OBoCzjgobjgY3jgYoNCivjgorjgY/jgoks44GI44GE44GE44GhDQor44GX44KH44GYLOOBv+OBpOOCiw0KK+OBteOBj+OBquOBjCzjgZ/jgYvjgobjgY0NCivjgY/jgo3jgY0s44GY44KF44Gr44GhDQor44G+44Gf44GNLOOCiOOBl+OBsuOCjQ0KK+OBm+OBjeOBrSzjgZfjgZLjgYLjgY0NCivjgoTjgb7jgZfjgZ8s44Gy44Gn44GKDQor44Gf44Gq44GLLOOBn+OBpOOBig0KK+OBiuOBiuOBr+OBvizjgZHjgYTjgYTjgaENCivjgYrjgaTjgbws44KI44GX44Gv44KLDQor44Gf44GELOOBsuOCjeOBi+OBmg0KK+OBpOOCi+OChCzjgY3jgYTjgaENCivjgojjgZfjgaAs44Gf44GL44GXDQor44G+44GZ44G/44GkLOOBkeOBhOOBlw0KK+OBi+OBmeOChCzjgYTjgY/jgbLjgZUNCivjgojjgZfjgaAs44GX44GS44KLDQor44GL44KP44KA44KJLOOBruOBtuOChuOBjQ0KK+OBr+OChOOBlyzjgbXjgb/jgYLjgY0NCivjgY/jgavjgoLjgags44Gy44KN44Gu44G2DQor44GC44KJ44GL44KPLOOBn+OBkeOBlw0KK+OBquOBi+OCgOOCiSzjgbLjgafjgYLjgY0NCivjgYTjgZfjgZDjgo0s44GT44GG44GE44Gh44KNDQor44Gv44KE44G/LOOCiOOBl+OBi+OBmg0KK+OBv+OBquOBv+OBnuOBrizjgZ/jgYvjgYoNCivjgZXjgYvjgZ8s44GX44KH44GW44KTDQor44GL44KP44KC44GoLOOBvuOBleOBr+OCiw0KK+OCgOOCieOBiuOBiyzjgb/jgaTjgbLjgo0NCivjgYTjgajjgYYs44KI44GX44GC44GNDQor44KP44Gf44Gq44G5LOOBvuOBleOBsuOCjQ0KK+OBruOCgOOCiSzjgojjgZfjgYLjgY0NCivjgZXjgajjgYYs44Gy44GV44Gv44KLDQor44KP44Gf44Gq44G5LOOBvuOBleOBruOCig0KK+OBk+OBsOOChOOBlyzjgojjgbLjgaENCivjgazjgovjgY0s44Gf44GL44GXDQor44KI44GX44GgLOOBl+OBkuOBig0KK+OBleOBhOOBqOOBhizjgb/jga7jgosNCivjgbLjgonjgYQs44Gy44Gn44GNDQor44GN44KA44KJLOOBj+OBq+OBsuOBkw0KK+OBiuOBjyzjgb7jgZXjgobjgY0NCivjga/jgoTjgZXjgYss44Gy44Gq44GTDQor44GC44GV44GuLOOBvuOBleOBruOCig0KK+OBteOBmOOBleOBjSzjgZvjgYTjgZgNCivjgYLjgY3jgoLjgags44GL44Gk44Gy44GTDQor44GX44G+44GgLOOBjeOCk+OBmA0KK+OBv+OBmuOBi+OBvyzjgb/jga7jgosNCivjgarjgYvjgYzjgo8s44G144G/44GL44GaDQor44GV44Go44GGLOOChOOBmeOBruOCig0KK+OBk+OBsOOBl+OCiizjgojjgZfjgYoNCivjgYLjgonjgY0s44G/44Gh44GKDQor44GZ44Ga44GNLOOBvuOBleOBi+OBmg0KK+OBq+OBl+OBpyzjga/jgovjgaoNCivjgYrjgaHjgYLjgYQs44Gy44KN44GXDQor44Gu44Gq44GLLOOBvuOBleOBi+OBpA0KK+OChOOBmeOBhCzjgbLjgafjgbLjgZMNCivjgZPjga/jgZ8s44KI44Gy44GhDQor44G/44Gu44GX44G+LOOBsuOCjeOBlw0KK+OBpuOCieOBl+OBvizjgojjgZfjgobjgY0NCivjgoTjgY/jgo8s44Gf44GL44GXDQor44GZ44GM44KP44KJLOOCjQ0KK+OBv+OBpOOBr+OBlyzjgoTjgZnjgZMNCivjga7jgoDjgoks44GR44KT44GYDQor44Gh44KHLOOBl+OCk+OChA0KK+OBleOBqOOBhizjgorjgYsNCivjgZfjgZrjga/jgoks44G+44GV44GIDQor44Gv44KE44GX44GL44KPLOOBvuOBleOBr+OCiw0KK+OBq+OCjyzjgajjgYrjgosNCivjgb/jgYjjga4s44Gm44Gk44KEDQor44GX44G+44GgLOOBkeOCk+OBmA0KK+OBquOBi+OCgOOCiSzjgojjgZfjgYoNCivjgbLjgonjga4s44Gq44GK44Go44GXDQor44KE44G+44Go44KELOOBm+OBpA0KK+OBpOOBruOBoCzjgojjgZfjgbLjgZUNCivjgZPjgbDjgoTjgZcs44Gf44GL44GXDQor44GV44GL44GP44KJLOOCiuOCheOBmA0KK+OBvuOBpOOBoCzjgZHjgpPjgYTjgaENCivjgYTjgb7jgoDjgoks44GC44Gk44GKDQor44KE44GO44Gv44GXLOOBjeOBv+OBsuOBkw0KK+OBiuOBjuOBrizjgojjgZfjgYoNCivjgZ/jgarjgYss44G/44Gh44GKDQor44Gy44GMLOOBpuOBpOOCjQ0KK+OBleOBkyzjga7jgorjgZMNCivjgZ/jgZbjgY0s44GC44Ga44G/DQor44GE44GE44GgLOOCiuOCh+OBkw0KK+OBhOOBhOOBoCzjgozjgYTjgZMNCivjgb7jgaTjgZDjgb4s44GR44KT44GYDQor44KA44KJ44GfLOOCiOOBl+OBig0KK+OChOOBmeOCguOBqCzjgZHjgpPjgYTjgaENCivjgZfjgb/jgZos44Gy44Gn44GoDQor44KP44GP44GELOOBqOOBl+OBig0KK+OBn+OBi+OBr+OBlyzjgorjgofjgbLjgaENCivjgY3jgZ/jgYQs44GL44Ga44Gy44GTDQor44GC44Gg44GhLOOChOOBmeOBruOCig0KK+OBr+OBquOBtuOBoSzjga7jgbbjgYLjgY0NCivjgZXjgajjgYYs44GN44KH44GTDQor44GC44KJ44GELOOBvuOBleOBguOBjQ0KK+OBn+OBkeOBquOBiyzjgZvjgYTjgZcNCivjgYvjgYQs44Gq44GK44GTDQor44GC44GL44GgLOOBsuOCjeOBig0KK+OBj+OBq+OBmeOBiCzjgojjgZfjgb7jgZUNCivjgb7jgYjjgYvjgo8s44KI44GX44GL44GaDQor44G/44Gq44G/LOOBpOOBqOOCgA0KK+OBn+OBjeOBjOOBvyzjgZ/jgoLjgaQNCivjgb7jgaTjgYQs44G+44GV44Gv44KLDQor44GX44KJ44GELOOCiuOCh+OBmeOBkQ0KK+OBn+OBkeOCiOOBlyzjgZfjgZLjgbsNCivjgZ/jgYvjgaAs44GR44KTDQor44Gf44GL44GOLOOBvuOBk+OBqA0KK+OBj+OBqeOBhizjgbLjgo3jgZcNCivjgZfjgb7jgaAs44KI44GX44Gf44GLDQor44GL44Go44GGLOOCiOOBl+OBig0KK+OBl+OBjuOChyzjgajjgZfjgbLjgZMNCivjgbLjgo3jga4s44GX44KH44GG44GE44Gh44KN44GGDQor44GN44Gu44GX44GfLOOBr+OBmOOCgQ0KK+OBl+OBv+OBmizjgY/jgavjgbLjgo0NCivjgZfjgoDjgoks44Go44GX44Gy44GTDQor44GP44GV44GL44KKLOOBleOBqOOBlw0KK+OBi+OCi+OBuSzjgb/jgbvjgZMNCivjgb7jgaTjgoLjgags44GX44Ga44GKDQor44GX44G+44KA44KJLOOBsuOCjeOBguOBjQ0KK+OBi+OBpOOBi+OCjyzjgYLjgY3jgokNCivjgYTjgZos44G/44Gk44GXDQor44GV44GP44KJ44KC44GoLOOBsuOBp+OChuOBjQ0KK+OCguOCiuOBnyzjgb7jgZPjgagNCivjgZ/jgarjgbks44G+44GV44G/44GhDQor44Gv44Gj44Go44KKLOOBm+OBhOOBruOBmeOBkQ0KK+OCiuOCheOBlCzjgY3jgojjgZ/jgYsNCivjgYrjgb7jgaTjgZbjgo8s44Gf44GL44Gy44GTDQor44GK44Go44KPLOOBjeOCiOOBn+OBiw0KK+OBk+OBoOOBvizjga7jgbbjgZMNCivjgYvjgoTjgZfjgb4s44GL44Ga44GKDQor44GT44Gw44KE44GXLOOBsuOBp+OBguOBjQ0KK+OBj+OBq+OBiOOBoCzjgZ3jgYrjgZjjgoMNCivjgZMs44KI44GX44GIDQor44Gr44GX44KE44G+LOOBl+OCh+OBng0KK+OCj+OBoCzjgbLjgo3jgYLjgY0NCivjgavjgZfjgoLjgags44G/44G7DQor44GV44GE44Go44GGLOOBqOOBl+OBr+OCiw0KK+OBqOOBl+OBvizjgarjgYrjgobjgY0NCivjgYrjgaTjgYss44Go44G+44GVDQor44GK44GuLOOBn+OBi+OBig0KK+OBmeOBmuOBjSzjgYTjgZXjgYoNCivjgZXjgY/jgonjgYQs44GE44Gk44GYDQor44GK44Gc44GNLOOBmOOCjQ0KK+OBiuOBi+OBoCzjgY/jgavjgYTjgaENCivjgYrjgYzjgo8s44G144G/44GoDQor44GE44GR44GM44G/LOOBl+OCheOBq+OBoQ0KK+OBk+OBvuOBpCzjgb7jgZXjga/jgosNCivjgojjgZfjgYQs44KG44GN44KI44GXDQor44Gy44KJ44GuLOOBm+OBhOOBhOOBoQ0KK+OBn+OBi+OBmeOBiyzjgobjgYbjgZgNCivjga/jgZfjgoLjgags44GX44GS44KLDQor44GP44KP44GILOOBvuOBjeOBig0KK+OBi+OBreOBvuOBpCzjgYvjgZrjgarjgooNCivjgb7jgaTjgYos44Gy44Go44G/DQor44GE44GpLOOBsuOCjeOChA0KK+OBhOOBrizjgZ/jgYvjgZcNCivjgZXjgYTjgajjgYYs44GL44Gk44Gu44KKDQor44GL44G/44KE44G+LOOCiOOBsuOBoQ0KK+OBk+OBl+OCguOBqCzjgbvjgZPjgY8NCivjgYrjgYzjgo/jgoks44G+44GV44KLDQor44Gf44GL44Gv44GXLOOBn+OBi+OBlw0KK+OBquOBjOOBvuOBpCzjgZ/jgYvjgZcNCivjgZnjgZrjgY0s44Gf44GL44GXDQor44Gm44KJ44GKLOOBvuOBleOBv+OBpA0KK+OBu+OCiuOBkSzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44Gy44Gn44Go44GXDQor44GK44GM44KPLOOBn+OBi+OBruOCig0KK+OBv+OChOOCguOBqCzjgojjgZfjgYLjgY0NCivjgYrjgZnjgb8s44GX44KH44GE44GhDQor44GE44KP44G244GhLOOBsuOCjeOBlw0KK+OBvuOBpOOBhuOCiSzjgoTjgZnjgobjgY0NCivjgZXjgo/jgaEs44GN44GP44GKDQor44Gm44KJ44GgLOOBi+OBreOBsuOBpw0KK+OBhOOBsOOChOOBlyzjgZHjgYTjgYTjgaENCivjgYTjgo/jgZss44Gf44GL44Gy44GTDQor44GK44GM44KPLOOBmOOCheOBq+OBoQ0KK+OBguOBnSzjgZ/jgZHjgZcNCivjgbXjgY/jgoLjgags44GT44GG44GYDQor44GE44GnLOOBk+OBhuOBhOOBoQ0KK+OBi+OCj+OBleOBjSzjgojjgZfjga7jgbYNCivjga/jgovjgaos44G+44GT44GoDQor44Gf44GY44G+LOOBl+OCk+OBhOOBoQ0KK+OBi+OBquOChOOBvizjgZTjgo0NCivjgZ/jgarjgYss44KI44GYDQor44G+44Gk44GW44GNLOOBi+OBiuOCiw0KK+OBhOOBruOBleOBiyzjgZ/jgYvjgZcNCivjgYrjgZfjgoTjgb4s44GT44GG44GE44GhDQor44Gf44GR44GG44GhLOOBruOBtuOBig0KK+OBleOBleOBiuOBiyzjgbLjgo3jgobjgY0NCivjgZPjgoLjgoos44Gu44G244KE44GZDQor44Gf44GY44G+LOOBn+OBpOOBig0KK+OBhOOBkeOBjOOBvyzjgaHjgYvjgYoNCivjgoTjgb7jgZDjgaEs44Gb44Gk44GTDQor44GL44KP44GL44G/LOOChuOBn+OBiw0KK+OBhOOBm+OBjSzjgZjjgoXjgavjgaHjgo0NCivjgZ/jgZHjgaAs44Gb44GE44GYDQor44Gf44GL44KE44GZLOOChOOBmeOBqOOCgg0KK+OBi+OCgeOBoCzjgZXjgobjgooNCivjgbXjgZjjga4s44G144G/44Gf44GLDQor44G/44GV44GNLOOBpuOBpOOBmA0KK+OBquOBi+OCgOOCiSzjgb7jgZXjga7jgooNCivjgYrjgYzjgo8s44KG44GN44G144G/DQor44Gq44GL44GW44KPLOOCiOOBmA0KK+OBm+OBjSzjgo/jgZ/jgosNCivjgojjgZfjgYvjgo8s44G+44GV44GKDQor44Gf44GM44KPLOOBk+OBhuOBmA0KK+OBv+OBn+OBqyzjgojjgZfjgbLjgZUNCivjgZnjgYjjgZ8s44Gf44GL44GXDQor44GE44Gs44GELOOBqOOBl+OChuOBjQ0KK+OBiuOBleOBoCzjgb7jgZXjgYLjgY0NCivjgbXjgovjgYvjgo8s44Gy44KN44GC44GNDQor44GZ44Ga44GNLOOBkeOCk+OBmA0KK+OBjeOBn+OCgOOCiSzjgb7jgZXjgYLjgY0NCivjgZPjgb7jgaQs44GX44GS44GNDQor44GC44GV44GgLOOBiOOBhOOBmeOBkQ0KK+OBi+OCk+OBluOBjSzjgbLjgafjgobjgY0NCivjgYbjgZnjgYQs44G+44Gq44G2DQor44G144KL44KELOOBn+OBkeOBqOOBlw0KK+OCiOOBkeOCgOOCiSzjgb7jgZPjgagNCivjgojjgZPjgYgs44KE44GZ44Gu44KKDQor44GC44GL44GE44KPLOOBqOOBl+OBguOBjQ0KK+OBteOBj+OBl+OBvizjgZPjgYbjgZgNCivjgoTjgZjjgb4s44Gy44Gn44Go44GXDQor44Gv44KJLOOChOOBmeOBj+OBqw0KK+OBjeOBl+OBoCzjgZ/jgY/jgoQNCivjgY/jgbws44Gf44GL44GXDQor44GL44Gf44GO44KKLOOBqOOBl+OBsuOBkw0KK+OBhOOBoeOBhCzjgYLjgY3jgbLjgagNCivjgb7jgaTjgY0s44GR44KTDQor44KP44GR44G5LOOBleOBqOOBlw0KK+OBvuOCi+OChOOBvizjgYvjgaTjgYoNCivjgaTjgbDjgY0s44G+44GT44GoDQor44GV44GuLOOCiuOCh+OBmeOBkQ0KK+OBv+OChOOCguOBqCzjgbLjgo3jgZ/jgYsNCivjgbXjgY/jgoTjgb4s44KI44Gy44Gh44KNDQor44GG44GI44KA44KJLOOChOOBmeOBvuOBlQ0KK+OBj+OCj+OBi+OBqSzjgojjgZfjgbXjgb8NCivjgY/jgavjgb7jgaQs44Go44GX44Gy44GTDQor44GL44Gf44GK44GLLOOBteOBv+OCiOOBlw0KK+OBqOOBv+OBnyzjgojjgZfjgY0NCivjgarjgYvjgoDjgoks44Go44GX44Gy44GTDQor44GP44Gp44GGLOOBsuOCjeOChOOBmQ0KK+OBiuOBtuOBoSzjgoTjgZnjgZcNCivjgojjgZfjgYvjgo8s44G/44KG44GNDQor44GL44GS44KE44G+LOOChuOBng0KK+OBqOOBoCzjgb/jgaTjgosNCivjgZ/jgYvjga/jgoks44KE44GZ44Gu44KKDQor44G+44Gk44GX44GfLOOBteOBv+OChA0KK+OBk+OBoOOBhOOCiSzjgajjgZfjgYLjgY0NCivjgZfjgpPjgYvjgYQs44GR44KT44GYDQor44Gm44KJ44GgLOOBsuOBp+OBig0KK+OBi+OCj+OBjeOBnyzjgZfjgZLjgosNCivjgb/jgYbjgoks44Gy44KN44GXDQor44GC44G5LOOBvuOBleOBqOOBlw0KK+OBq+OBl+OBi+OCjyzjgb7jgZXjgYLjgY0NCivjgbvjgZ3jgaAs44G+44GV44KLDQor44G+44GZ44GgLOOCiuOBjQ0KK+OBi+OBluOBvizjgb7jgZXjgosNCivjgYLjgonjgb7jgY0s44Gu44KK44KG44GNDQor44KP44Gf44Gs44GNLOOBi+OBmuOBruOCig0KK+OBleOBi+OCguOBqCzjgYLjgaTjgbLjgZMNCivjgYLjgb7jgYzjgb8s44KI44GX44Gm44KLDQor44GT44GuLOOBpuOCi+OBsuOBkw0KK+OBiuOBj+OBoCzjgajjgYrjgosNCivjgYrjga/jgY8s44G+44GT44GoDQor44Gq44GL44KA44KJLOOBkeOBhOOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgZXjgajjgZcNCivjgYbjgZfjgoTjgb4s44GX44KT44GYDQor44KE44GX44GNLOOBsuOBp+OBlw0KK+OBjeOBruOBmyzjgoLjgajjgYoNCivjgo/jgYvjgoTjgb4s44G+44GV44Gy44GoDQor44GE44G+44GELOOBr+OBmOOCgQ0KK+OBvuOBiOOBoCzjgZXjgarjgYgNCivjgb7jgaTjgZfjgZ8s44Gy44Go44GXDQor44Gy44KJ44GQ44GhLOOChuOBjeOBsuOCjQ0KK+OCj+OBoCzjgYTjgo/jgYoNCivjgo/jgZ/jgarjgbks44KI44GX44GKDQor44G+44Gk44GELOOBn+OBkeOBlw0KK+OBvuOBpOOCguOBqCzjgYvjgZrjgYoNCivjgarjgYvjgoDjgoks44G/44Gk44GODQor44Gf44GN44GfLOOBpOOCiOOBlw0KK+OBvuOBmeOBoCzjgZfjgpMNCivjgb/jgoTjgYbjgaEs44GE44GV44GKDQor44GX44KA44KJLOOCiOOBl+OBruOCig0KK+OBvuOBpOOBhCzjgb/jgaTjgYoNCivjga/jgonjga/jgZ8s44KI44GX44G144G/DQor44Gy44GV44Gf44GrLOOChuOBsuOBoQ0KK+OBi+OBjOOBvyzjgobjgY3jgYoNCivjgojjgZfjgoDjgoks44GC44GE44GE44Gh44KN44GGDQor44GK44Gk44GLLOOBl+OCheOBq+OBoQ0KK+OBn+OBquOBiyzjgZPjgYbjgYTjgaENCivjgbLjgonjga4s44G+44GV44KG44GNDQor44Gf44GR44GZ44GILOOBjeOCiOOBlw0KK+OBq+OBl+OBrizjgYjjgYTjgZgNCivjgYrjgaTjgYss44Gy44KN44GXDQor44GK44GgLOOBguOBpOOBkw0KK+OBl+OBv+OBmizjgZ3jgbLjgaENCivjga/jgb7jgoLjgags44GX44KT44GE44GhDQor44G/44KE44G+44GILOOBv+OBjeOBig0KK+OBquOBjOOBl+OBvizjgZjjgoXjgavjgaHjgo0NCivjgb/jgaTjgoEs44KI44GX44GoDQor44GL44GU44Gf44GrLOOBqOOCguOBkw0KK+OCiOOBk+OChOOBvizjgb7jgobjgb8NCivjgZXjgYvjgZ8s44GV44GL44GIDQor44GK44GE44GP44G8LOOBn+OBjeOBkw0KK+OBj+OCieOCguOBoSzjgajjgb/jgZ/jgo3jgYYNCivjgYLjgpPjgZbjgYQs44GC44Gk44GXDQor44G144GP44GX44G+LOOBvuOBleOBpOOBkA0KK+OBquOBi+OCgOOCiSzjgobjgYbjgZgNCivjgYTjgajjgYQs44GR44GE44GUDQor44G744GX44GuLOOBl+OCk+OBhOOBoQ0KK+OBk+OBhOOBpyzjgZfjgoUNCivjgYrjgZbjgY0s44Gm44Gk44KEDQor44Gb44GY44KCLOOCiOOBl+OChuOBjQ0KK+OBmeOBqeOBhizjgoHjgZDjgb8NCivjgYvjgZjjgo/jgoks44GX44KT44GYDQor44GZ44Ga44GNLOOChuOBn+OBiw0KK+OBu+OBl+OBrizjgZ/jgYvjgojjgZcNCivjgarjgYvjgoDjgoks44G+44GV44Gq44KKDQor44KC44KK44GfLOOBiOOBhOOBmA0KK+OChOOBvuOBluOBjSzjgZPjgYbjgZgNCivjgYrjgY/jgYzjgo8s44KI44GX44GL44GaDQor44Gq44GM44Gv44G+LOOBn+OBi+OBteOBvw0KK+OCiOOBl+OCgOOCiSzjgZHjgpPjgZgNCivjgb7jgaTjgaAs44GC44GN44Gy44GnDQor44G744GL44Ge44GuLOOBsuOCjeOChA0KK+OBguOBuSzjgb7jgZXjgobjgY0NCivjgarjgYzjgYQs44KK44GIDQor44Go44GM44GXLOOBsuOBqOOBvw0KK+OChOOBluOBjSzjgobjgorjgZMNCivjgoTjgb7jgYbjgaEs44G/44Gh44GTDQor44G/44GV44GNLOOBsuOCjeOBsuOBkw0KK+OCiOOBl+OBoCzjgZjjgoXjgpMNCivjgarjgYvjgoLjgags44G+44GV44G/44GhDQor44GX44Gu44Gv44KJLOOBvuOBleOBv+OBpA0KK+OBquOBi+OBq+OBlyzjgb/jganjgooNCivjgoTjgZjjgb4s44GL44Gk44Gy44KNDQor44Go44KI44G144GPLOOBr+OCi+OBkw0KK+OBn+OBi+OBl+OBvizjgojjgZfjgYLjgY0NCivjgbXjgZfjgavjgZcs44GC44GN44GL44GaDQor44KA44GL44GELOOBqOOBl+OBsuOBkw0KK+OBq+OBl+OCgOOCiSzjgb7jgZXjgbLjgZMNCivjgYvjgo/jgbDjgZ8s44Gy44KN44KG44GNDQor44KA44GL44GI44GgLOOBguOBjeOBv+OBpA0KK+OBl+OBm+OBjSzjgZ/jgYvjgajjgZcNCivjgYvjgZ/jgYrjgYss44GC44Gk44Gy44GVDQor44Gq44GE44Go44GGLOOBqOOBl+OBpOOBkA0KK+OBv+OBqCzjgZPjgYbjgZgNCivjgYrjgavjgZcs44Go44GX44Gy44GoDQor44KI44GT44KE44G+LOOBpuOBhOOBng0KK+OBquOBi+OCgOOCiSzjgbLjgafjgY0NCivjgYTjgZbjgo8s44Gq44GK44GNDQor44Gf44Gr44GM44KPLOOBl+OCk+OBmA0KK+OBmeOBjuOBnyzjgZfjgZLjgosNCivjgYrjgZfjgZ8s44Gk44Gt44GL44GaDQor44GX44G+44GgLOOBguOBjeOCiQ0KK+OChOOBvuOCgOOCiSzjgY3jgojjgZcNCivjgbXjgY/jgYrjgYss44KG44GG44GYDQor44KE44Gq44KKLOOBi+OBpOOBmA0KK+OBmeOBmuOBjSzjgY3jgb/jgYgNCivjgZXjgYvjgYQs44Gm44Gk44KEDQor44KE44G+44GgLOOBsuOCjeOChuOBlw0KK+OChOOBvuOBk+OBlyzjgZXjgajjgZcNCivjga7jgoLjgags44GV44Go44KLDQor44Gf44GR44GX44GfLOOBhOOBo+OBl+OCkw0KK+OBv+OBruOBoCzjgojjgZfjgbLjgacNCivjgYLjgZXjgYQs44Gy44KN44GNDQor44KA44Gt44KE44GZLOOChOOBmeOBqA0KK+OBi+OCj+OBq+OBlyzjgajjgZfjgo0NCivjgZXjgYvjgZDjgaEs44Gf44GL44GXDQor44KE44G+44GW44GNLOOBn+OBpOOBguOBjQ0KK+OBguOBleOBiuOBiyzjgbLjgZXjga7jgooNCivjgY3jga7jgZfjgZ8s44Go44G/44GIDQor44G/44G+LOOChuOBiw0KK+OBteOBj+OCguOCiuOBnyzjgb7jgZXjgobjgY0NCivjgYvjgZjjgoTjgb4s44Go44KC44GTDQor44KE44G+44GW44GNLOOBk+OBhuOBhOOBoQ0KK+OBleOBqOOBhizjgb7jgZXjgZcNCivjgYvjgo/jgbks44Gy44KN44GC44GNDQor44G+44KL44KE44G+LOOBl+OCk+OBmA0KK+OBiuOBjOOCieOBrSzjgZXjgajjgosNCivjganjgYQs44KG44GN44Gy44KNDQor44Gf44Gq44GLLOOBl+OBkuOCiw0KK+OBiuOBjuOBl+OBvizjgajjgZfjgobjgY0NCivjgYTjga7jgYbjgYgs44KC44Go44GNDQor44G144KL44KELOOBl+OBkuOChuOBjQ0KK+OBteOBj+OBhCzjgZfjgbsNCivjgb7jgZnjgaAs44Gy44Gn44KG44GNDQor44G744KT44GgLOOBvuOBk+OBqA0KK+OBquOBi+OBq+OBlyzjgoTjgZnjgbLjgZUNCivjgb/jgoTjgb7jgYgs44Go44GX44Gy44GTDQor44GK44GL44GuLOOBsuOBp+OBruOBtg0KK+OBsOOBsCzjgb/jgY3jgZ4NCivjgaDjgZHjgoTjgb4s44GN44KI44G/DQor44KE44G+44GQ44GhLOOBl+OBkuOBig0KK+OBr+OChOOBlyzjgojjgZfjgZMNCivjgajjgb/jgZrjgYss44GY44KF44Gr44GhDQor44Gq44GL44Gr44GXLOOBqOOBl+OChA0KK+OBguOBuSzjgb/jgaTjgbLjgZMNCivjgYLjgYrjgoTjgY4s44Gu44G244KI44GXDQor44Gm44KJ44KP44GNLOOBruOBtuOBkw0KK+OBi+OBn+OBjuOCiizjgobjgZ4NCivjgarjgYvjgYzjgo8s44G/44Gk44GKDQor44GT44Gw44KE44GXLOOBiuOBleOCgA0KK+OBhuOBiOOBoCzjgbLjgo3jgobjgY0NCivjgbXjgZjjgo/jgoks44Gy44KN44Gu44KKDQor44Gv44KE44GV44GLLOOBpOOCiOOBlw0KK+OBjeOCgOOCiSzjgZ/jgYvjgbLjgo0NCivjgZTjgags44KG44G/44GTDQor44GX44KA44KJLOOBquOBiuOBn+OBiw0KK+OBm+OBjSzjgarjgYrjgbLjgZMNCivjgYLjgYTjgZbjgo8s44Gy44Gn44GKDQor44Gu44KA44KJLOOCiOOBsuOBoeOCjQ0KK+OBi+OCk+OBoCzjgZXjgY/jgZMNCivjgYbjgonjgYQs44KE44GZ44GKDQor44KC44Go44KE44G+LOOBqOOBl+OCjQ0KK+OBi+OBv+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjgbLjgonjgYQs44Gv44KL44Gy44GVDQor44GC44KJ44GELOOBr+OBmOOCgQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgZMNCivjgb7jgY3jga/jgoks44GN44KI44GTDQor44GK44KP44GPLOOBruOBvOOCiw0KK+OCguOBoeOBmuOBjSzjgb7jgZXjgYoNCivjga/jgpPjgYzjgYQs44GL44Ga44Gy44KNDQor44GE44Gu44GG44GILOOBsuOCjeOBvw0KK+OBquOBjOOBhOOBlyzjgYLjgY3jgbLjgo0NCivjgavjgZfjgoLjgags44Gf44Gk44G/DQor44Gk44Gh44KELOOBsuOCjeOBlw0KK+OBvuOBpOOCguOBqCzjgb7jgZXjgbLjgo0NCivjgbvjgpPjgZjjgocs44GR44GE44GeDQor44GE44KP44GELOOBqOOBl+OBi+OBmg0KK+OBj+OBvCzjgYLjgY3jgYoNCivjga/jgZPjgYQs44GT44GZ44GRDQor44KP44Gf44Gq44G5LOOBl+OCheOBmA0KK+OBmeOBjuOBnyzjgb7jgZnjgb8NCivjgarjgYvjgoDjgoks44KI44GX44Gv44KLDQor44GL44KJ44GV44GNLOOBpuOBpOOBig0KK+OBruOCiuOBvuOBpCzjgb7jgZXjgobjgY0NCivjgY/jgZnjgoLjgags44Go44KC44Gq44KKDQor44Gr44GX44KA44KJLOOCiOOBsuOBoQ0KK+OBk+OBmeOBkizjgb7jgZXjgZcNCivjgbXjgY/jgb/jgaQs44GK44GV44KADQor44KE44G+44GQ44GhLOOBvuOBleOBsuOCjQ0KK+OBhOOBl+OBkOOCjSzjgojjgZfjgbLjgo0NCivjgajjgY/jgaAs44GL44Ga44Gy44GoDQor44GC44KK44Go44G/LOOBi+OBpOOBvw0KK+OBsuOChOOBvizjgYLjgY3jgokNCivjgbLjgo3jgZss44GX44KH44Gy44GhDQor44Gr44GX44GgLOOBn+OBi+OBlw0KK+OBr+OBo+OBqOOCiizjgZfjgofjgZQNCivjgbLjgonjgbDjgoTjgZcs44Gf44Gk44KEDQor44Gv44KJ44GX44G+LOOBvuOBleOBig0KK+OBr+OCiSzjgb7jgZXjgYoNCivjga/jgb7jga4s44Gu44KK44GKDQor44Gv44G+44GgLOOBqOOBl+OBv+OBpA0KK+OBr+OBl+OCguOBqCzjgYvjgZrjgbLjgo0NCivjga/jgoTjgZcs44GT44GG44GE44GhDQor44Gy44GQ44GhLOOBv+OBpOOBsuOBkw0KK+OBsuOCieOBrizjgZ/jgYvjgojjgZcNCivjgbvjgpPjgb4s44GV44Go44GXDQor44Gv44KL44G+44GXLOOBvuOBleOBqg0KK+OBr+OBl+OCguOBqCzjgoTjgZnjgb8NCivjgbLjgaAs44GV44G244KNDQor44Gy44KJ44GZ44GLLOOBi+OBmuOBvw0KK+OBr+OBjuOCj+OCiSzjgarjgYrjgoQNCivjga/jgb7jgaAs44GY44Gk44KNDQor44Gv44GX44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OBu+OCk+OBvizjgb7jgZXjgajjgZcNCivjgbvjgYvjgoos44Go44GK44KLDQor44Gv44KJ44GgLOOCiOOBl+OBvw0KK+OBr+OChOOBlyzjgZHjgpPjgYTjgaENCivjgbvjgorjgbks44GI44GE44GYDQor44Gv44GX44KC44GoLOOBn+OBv+OBig0KK+OBr+OBm+OBjOOCjyzjgYvjgZrjgobjgY0NCivjgbLjgo3jgbks44G+44GV44Go44GXDQor44Gv44GX44KC44GoLOOBi+OBpOOBsuOBkw0KK+OBsuOCieOBrizjgbLjgZXjgZgNCivjga/jgZfjgoLjgags44G+44GV44G/DQor44Gy44GY44GL44GfLOOChuOBn+OBiw0KK+OBiuOBrOOBvizjgb7jgZXjga/jgosNCivjga/jgbbjgaQs44KI44GX44G+44GVDQor44Gy44Gg44GLLOOChOOBmeOBig0KK+OBr+OBl+OCguOBqCzjgZ/jgYvjgZcNCivjga/jgb7jga4s44Gh44KH44GYDQor44Gy44GX44Gs44G+LOOBk+OBhuOBhOOBoQ0KK+OBr+OCiSzjgY3jgb/jgYgNCivjga/jgarjgY0s44G/44Gh44Gv44KLDQor44Gv44KJLOOBv+OCiOOBlw0KK+OBr+OBjCzjgoTjgZnjgbLjgo0NCivjga/jgarjgaAs44G/44Gh44GTDQor44Gy44KJ44KE44Gq44GOLOOBkeOCk+OBmA0KK+OBu+OCiuOBi+OCjyzjgYvjgZrjgYoNCivjgbvjgorjgYvjgo8s44G+44GV44GKDQor44Gv44GX44KC44GoLOOBn+OBoOOBi+OBmg0KK+OBr+OBnyzjgb/jgY3jgYoNCivjgbLjgonjgYQs44GL44Ga44G/DQor44Gv44KJ44GQ44GhLOOBvuOBleOChuOBjQ0KK+OBsuOCieOBiizjgZHjgpMNCivjga/jgZfjgZrjgoEs44Gk44GO44GIDQor44Gk44GYLOOBhOOBleOBig0KK+OBleOBj+OCieOBluOCjyzjgbLjgo3jgobjgY0NCivjgYLjgbks44GL44Ga44Gy44KNDQor44GC44G5LOOBjeOCk+OChA0KK+OBguOBuSzjgarjgYrjgY0NCivjgYLjgbks44Gu44G244KG44GNDQor44GC44G5LOOCiOOBl+OBvw0KK+OBguOBuSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgYLjgYvjgY4s44GR44KT44GYDQor44GK44GL44KC44GoLOOBn+OBkeOBig0KK+OBiOOCk+OBqSzjgb7jgZXjga7jgooNCivjgYLjgYvjgYTjgZcs44Gu44G244Gf44GLDQor44Gr44GX44GqLOOBv+OBpOOBruOCig0KK+OBguOBjeOCguOBqCzjgZHjgpMNCivjgYLjgY3jgZrjgY0s44GC44GN44GTDQor44Gy44KJ44Gw44KE44GXLOOBqOOBl+OBsuOBkw0KK+OBguOCgeOBv+OChCzjgZjjgoXjgpMNCivjgYLjgb/jga4s44KE44GZ44G+44GVDQor44GC44Gq44G/LOOChuOBsuOBoQ0KK+OBguOBquOBluOCjyzjgYvjgpPjgZ8NCivjgYLjgpPjganjgYYs44G+44Gq44G2DQor44GC44KT44Gp44GGLOOBsuOBp+OBqOOBlw0KK+OBguOBiuOChOOBvizjgZPjgYbjgYTjgaENCivjgYLjgYrjgoTjgb4s44G+44GV44Gy44KNDQor44GC44GK44KE44G+LOOBsuOCjeOBnw0KK+OBguOCieOBhCzjgZPjgYbjgZgNCivjgYLjgonjgYQs44GK44GV44KADQor44GC44KJ44GELOOBn+OBi+OBig0KK+OBguOCieOBhCzjgoTjgZnjgbLjgagNCivjgYLjgonjgYQs44GX44Ga44GKDQor44GC44KJ44GNLOOBv+OBoeOBkw0KK+OBmeOBjOOCj+OCiSzjgaTjga3jga/jgosNCivjgYLjgZXjgbIs44G+44GT44GoDQor44GC44GV44GP44KJLOOBqOOBl+OBig0KK+OBguOBleOBvyzjgb7jgZXjgajjgZcNCivjgYLjgZXjgoDjgoks44GX44GS44G+44GVDQor44KE44G+44GX44GqLOOBguOBjeOCiQ0KK+OBguOBleOCiizjgYLjgY3jgbLjgo0NCivjgYLjgZXjgZos44G+44GV44GL44GaDQor44GC44Gk44G/LOOBi+OBiuOCiw0KK+OBsOOCkyzjgobjgYbjgZ7jgYYNCivjgbnjgaPjgZfjgocs44Gy44KN44GNDQor44Gh44GwLOOBvuOBleOBjQ0KK+OBoeOBi+OBjeOCiCzjgZPjgYbjgZgNCivjgaHjgoDjgoks44GX44KT44GE44GhDQor44Gp44Gw44GXLOOBk+OBhuOBhOOBoQ0KK+OBiOOBsOOBlyzjgb7jgZXjgZcNCivjgYjjgbPjga/jgoks44G+44GT44GoDQor44GI44GM44G/LOOBn+OBvuOBig0KK+OBiOOBkOOBoSzjgb7jgZXjgoTjgZkNCivjgYjjgZDjgaEs44G/44KG44GNDQor44GI44GY44KKLOOBqOOCguOBvw0KK+OBiOOCk+OBqSzjgZfjgZLjgosNCivjgYjjgpPjgaks44Gf44GL44GXDQor44GI44Gu44KC44GoLOOBteOBv+OBqOOBlw0KK+OBteOBoeOBrizjgYvjgaTjgb8NCivjgbXjgZjjgYQs44GL44Ga44GKDQor44G144GY44GELOOBvuOBleOBkw0KK+OBhOOBl+OBhCzjgajjgoLjgZMNCivjgoDjgonjgoTjgb4s44KI44GX44KG44GNDQor44G144GY44GL44GfLOOBsuOCjeOChOOBmQ0KK+OBteOBmOOBi+OCjyzjgZHjgYTjgYTjgaENCivjgbXjgZjjgb7jgoss44GC44GTDQor44G144GY44KC44GoLOOBquOBiuOBsuOBlQ0KK+OBteOBmOOCguOBqCzjgZ/jgb/jgYgNCivjgbXjgZjjgoLjgags44Gf44GR44GKDQor44G144GY44GuLOOBl+OCh+OBuOOBhA0KK+OBteOBmOOBiizjgojjgZfjgbXjgb8NCivjgbXjgZjjgZXjgYss44KG44GN44GKDQor44G144GY44GV44KPLOOChuOBjeOBn+OBiw0KK+OBteOBmOOBleOCjyzjgZXjgajjgZcNCivjgbXjgZjjgZ8s44GZ44GQ44KLDQor44G144GY44GfLOOBvuOChuOBvw0KK+OBteOBmOOCj+OCiSzjgZ/jgaTjgYoNCivjgbXjgZjjgo/jgoks44KI44GX44Gk44GQDQor44G144GY44KP44KJLOOBqOOBiuOCiw0KK+OBteOBi+OBoCzjgYrjgZXjgoANCivjgbXjgYvjgYzjgo8s44Gm44GkDQor44G144GL44GuLOOBmOOCheOCkw0KK+OBteOBi+OCjyzjgajjgZfjgbLjgZUNCivjgbXjgYvjgoQs44Gf44Gk44KEDQor44G144GL44GW44KPLOOBi+OBmuOBqOOCgg0KK+OBteOBj+OBoCzjgbLjgZXjgagNCivjgbXjgY/jgYQs44GP44Gr44Gy44KNDQor44G144GP44KC44GoLOOBn+OBoOOCiOOBlw0KK+OBteOBj+OCguOBqCzjgajjgZfjgYvjgZoNCivjgbXjgY/jgoLjgags44KE44GZ44Go44KCDQor44G144GP44KC44GoLOOBqOOBl+OBguOBjQ0KK+OBteOBj+OBl+OBvizjgZXjgajjgZcNCivjgbXjgY/jgajjgb8s44Gu44KK44GKDQor44G144Gq44GNLOOBn+OBi+OBsuOCjQ0KK+OBteOCi+OBleOCjyzjgb7jgZXjgobjgY0NCivjgYLjgbPjgZMs44G+44GV44KG44GNDQor44G144GbLOOBqOOBiuOCiw0KK+OBteOBm+OBjOOCjyzjgb7jgZXjgobjgY0NCivjgbXjgZfjgb8s44GX44KT44GX44KHDQor44GO44G+LOOBteOBv+OBsuOCjQ0KK+OBlOOBvyzjgYLjgaTjgbLjgo0NCivjgZTjgags44GR44GEDQor44GU44GoLOOBm+OBhOOBmA0KK+OBlOOBqCzjgajjgZfjgYvjgZoNCivjgZDjgpPjgZgs44Gy44Go44GXDQor44Gv44GO44KP44KJLOOBk+OBhuOBmA0KK+OBr+OBjuOCj+OCiSzjgbLjgo3jgZcNCivjga/jgYTjga4s44Gy44KN44Gf44GLDQor44Gv44GL44G+44GgLOOBsuOCjeOBguOBjQ0KK+OBr+OBvuOBoCzjgb7jgZXjgbLjgZMNCivjga/jgb7jgaAs44GZ44GZ44KADQor44Gv44G+44GQ44GhLOOBsuOCjeOChuOBjQ0KK+OBr+OCiSzjgorjgoXjgZXjgY8NCivjga/jgoks44GX44KT44GYDQor44Gv44KJLOOBn+OCjeOBhg0KK+OBr+OCiSzjgb7jgZXjgobjgY0NCivjga/jgonjgaAs44Gu44KK44GKDQor44Gv44KJ44GgLOOCiOOBl+OBquOBig0KK+OBr+OCieOBoCzjgarjgYrjgbLjgZUNCivjga/jgonjgZMs44GL44Ga44KI44GXDQor44Gv44KL44GqLOOBvuOBk+OBqA0KK+OBr+OBm+OBjOOCjyzjga7jgorjgZMNCivjgYrjgZfjgb4s44Go44KC44GC44GNDQor44Gv44GX44KC44GoLOOBsuOBleOBruOCig0KK+OBr+OBn+OBrizjgb/jgogNCivjga/jgZ/jgZbjgo8s44KI44GX44GTDQor44Gv44GoLOOBhOOBoeOCjeOBhg0KK+OBr+OBpOOBvyzjgbLjgZXjgojjgZcNCivjga/jgaPjgajjgoos44Gu44KK44KG44GNDQor44Gv44KE44GL44KPLOOChuOBjQ0KK+OBr+OChOOBi+OCjyzjgobjgY3jgYoNCivjga/jgoTjgYvjgo8s44GR44KT44GYDQor44Gv44KE44GuLOOBl+OCk+OBhOOBoQ0KK+OBr+OChOOBmyzjgY3jgojjgZ/jgYsNCivjga/jgoTjgZcs44GP44Gr44Gy44GTDQor44Gv44KE44GXLOOBvuOBleOBquOCig0KK+OBr+OChOOBlyzjgb7jgZnjgb8NCivjga/jgoTjgZcs44G/44Gq44GTDQor44Gv44KE44GXLOOBruOCiuOBkw0KK+OBhOOCguOBqCzjgZ/jgYvjgbLjgo0NCivjga/jgoTjgaQs44Gf44GL44GC44GNDQor44Gy44GM44GNLOOBn+OBj+OChA0KK+OBsuOBjOOBlyzjgYLjgY3jgokNCivjgbLjga4s44Gf44GL44GXDQor44Gy44KJ44Gw44KE44GXLOOBi+OBmuOBsuOCjQ0KK+OBsuOCieOBrizjgYvjgZrjgb/jgaENCivjgbLjgonjga4s44G+44GV44GXDQor44Gy44KJ44GK44GLLOOBguOBmuOBlQ0KK+OBr+OCieOBleOBjSzjgajjgoLjgobjgY0NCivjgbLjgonjgaYs44Go44GX44Gy44KNDQor44Gy44KJ44KE44G+LOOBguOBpOOCjQ0KK+OBsuOCjeOBiCzjgajjgZfjgbLjgZMNCivjgbLjgo3jgYvjgo8s44GC44Gk44GXDQor44Gy44KN44GbLOOBl+OCk+OBlA0KK+OBsuOCjeOBlyzjgZ/jgYvjga/jgosNCivjgbLjgZXjgoDjga0s44GL44GK44KKDQor44G744KT44GgLOOCiOOBl+OBsuOCjQ0KK+OBu+OCiuOBi+OCjyzjgZHjgYTjgZgNCivjgbvjgorjgZPjgZcs44Gb44GE44GfDQor44G744KK44GT44GXLOOBvuOBleOCiOOBlw0KK+OBu+OBlyzjgbLjgo3jgZcNCivjgbvjgZfjgZMs44Gy44Gn44GC44GNDQor44Gy44KJ44GV44KPLOOBmeOBv+OBkw0KK+OBu+OBneOBhCzjgZHjgpPjgZgNCivjgbLjgofjgaks44Gq44GK44GoDQor44Gy44KH44GpLOOBi+OBmuOBsuOCjQ0KK+OBhOOBuSzjgZHjgYTjgYTjgaENCivjgYTjgaHjgYvjgo8s44G+44KG44G/DQor44GE44Gh44GL44KPLOOBn+OBpOOChA0KK+OBhOOBoeOBi+OCjyzjgbLjgafjgYoNCivjgYTjgaHjga7jgb/jgoQs44Go44GK44KLDQor44GE44GnLOOCiOOBl+OBi+OBmg0KK+OBhOOBpyzjgZfjgoXjgbLjgaENCivjgYTjgYzjgonjgZcs44Gy44Gn44Gf44GLDQor44GE44GM44KPLOOBruOBtuOBkw0KK+OBhOOBkOOBoSzjgZHjgYTjgZMNCivjgYTjgYTjgaAs44GT44GG44GE44GhDQor44GE44GE44GgLOOBruOCiuOBguOBjQ0KK+OBhOOBhOOBmOOBvizjgZfjgpPjgYTjgaENCivjgYTjgYTjgaTjgYss44Gy44KN44KG44GNDQor44GE44GE44Ga44GLLOOChuOBjeOBig0KK+OBhOOBhOOBmuOBiyzjgb7jgZXjgbLjgo0NCivjgYTjgYvjgonjgZcs44GV44Gg44KG44GNDQor44GE44GR44GgLOOBl+OCk+OBhOOBoQ0KK+OBhOOBkeOBoCzjgZ/jgYvjgZcNCivjgYTjgZHjgaAs44KG44GZ44GRDQor44GE44GR44GgLOOBl+OCk+OBhOOBoQ0KK+OBhOOBkeOBquOBjCzjgb7jgZXjgbLjgo0NCivjgb/jgaTjgoLjgags44G+44GV44KLDQor44GE44GR44KE44G+LOOChuOBvw0KK+OBhOOBkeOBlizjgb/jgaTjgosNCivjgYTjgZHjgZbjgY0s44G/44Gk44KG44GNDQor44GE44GP44GfLOOChuOCig0KK+OBhOOBvuOBhCzjgoTjgZnjgobjgY0NCivjgYTjgb7jgYTjgZrjgb8s44GN44KI44GXDQor44GE44G+44KA44KJLOOBl+OCk+OChA0KK+OBhOOBvuOCgOOCiSzjgZfjgoXjgbLjgaENCivjgYTjgb7jgavjgZcs44Gy44KN44GXDQor44GE44Gq44GM44GNLOOBk+OBhuOBhOOBoQ0KK+OBhOOBquOBjOOBjSzjga7jgbbjgYoNCivjgYTjgarjgYzjgo8s44GL44Ga44Gu44KKDQor44GE44Gq44G7LOOBguOCiuOBlQ0KK+OBhOOBquOBvyzjgajjgoLjgY0NCivjgYTjgarjgaTjgZAs44Gq44GK44GNDQor44GE44Gq44KI44GXLOOBvuOBleOBteOBvw0KK+OBhOOBrizjgZjjgoXjgpMNCivjgYTjga7jgYrjgYss44Gy44Gn44GoDQor44GE44Gu44GG44GILOOBsuOCjeOBig0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgZ/jgYsNCivjgYTjga7jgYbjgYgs44Gy44KN44KG44GNDQor44GE44Gu44GG44GILOOBsuOBqOOBlw0KK+OBhOOBruOBhuOBiCzjgYrjgZXjgoANCivjgYTjga7jgYbjgYgs44Gm44KL44KG44GNDQor44GE44Gu44GG44GILOOCiOOBl+OBruOCig0KK+OBhOOCiuOBleOCjyzjga7jgorjgbLjgo0NCivjgYTjgZss44Gy44KN44KG44GNDQor44GE44Gb44GNLOOBiOOBhOOCig0KK+OBhOOBl+OBoCzjgajjgoLjgbLjgo0NCivjgYTjgZfjgaAs44GL44GK44KKDQor44GK44GL44GgLOOBi+OBpOOChuOBjQ0KK+OBhOOBl+OBhCzjgZ/jgaTjgoQNCivjgoTjgb7jgaAs44G+44GV44KLDQor44GZ44GO44Gv44KJLOOBsuOCjeOBv+OBoQ0KK+OBhOOBl+OBi+OCjyzjgb/jgZXjgYoNCivjgYTjgZfjgYvjgo8s44Gf44Gk44GKDQor44GE44GX44GL44KPLOOBi+OBmuOBqA0KK+OBhOOBl+OBvuOCiyzjgZfjgpPjgoQNCivjgYTjgZfjgoLjgags44Gf44GL44KG44GNDQor44GE44GX44KC44GoLOOBn+OBkeOBlw0KK+OBhOOBl+OCguOBqCzjgbLjgafjgYvjgZoNCivjgYTjgZfjga4s44Gf44GL44GXDQor44GE44GX44Gk44GLLOOBn+OBi+OBguOBjQ0KK+OBhOOBl+OCj+OBnyzjgobjgbLjgaENCivjgYTjgZfjgo/jgZ8s44GN44GP44GKDQor44Gy44KJ44Gw44KE44GXLOOBguOBjeOBsuOBkw0KK+OBhOOBl+OBluOBjSzjgobjgY3jgYoNCivjgYTjgZfjgZrjgYss44GL44Gk44KEDQor44GE44Gd44GgLOOChOOBmeOBruOCig0KK+OBqOOBiuOBiyzjgaTjgojjgZcNCivjgY/jgorjga/jgoks44Gv44KL44G/DQor44GE44Go44GGLOOBiOOBhOOBmA0KK+OBhOOBqOOBhizjgbLjgo3jgbbjgb8NCivjgYTjgajjgYYs44Gy44KN44Gf44GLDQor44GE44Go44GGLOOBi+OBpOOCiQ0KK+OBhOOBqOOBhizjgb7jgZXjgZMNCivjgYTjgaHjgoTjgarjgY4s44G+44GV44G/DQor44GE44Go44GGLOOBruOCiuOBkw0KK+OBquOBjOOBnyzjgZ/jgaTjgYoNCivjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GL44G/44GL44KPLOOBkeOCk+OBmA0KK+OBhOOCj+OBhCzjgYvjgY/jgYTjgaHjgo3jgYYNCivjgYTjgo/jgYvjgo8s44GV44Go44GXDQor44GE44KP44G/LOOBn+OBj+OChA0KK+OBhOOCj+OBvyzjgobjgYbjgZgNCivjgYTjgo/jgoLjgags44GI44GE44GYDQor44GE44KP44Gq44GMLOOCguOBqOOBruOCig0KK+OBhOOCj+OBleOBjSzjgajjgYrjgosNCivjgYTjgo/jgZXjgY0s44Gf44GR44GXDQor44GE44KP44GbLOOBqOOBl+OChuOBjQ0KK+OBhOOCj+OBl+OBnyzjgZHjgYTjgZgNCivjgYTjgo/jgZ8s44GR44KT44GE44GhDQor44GE44KP44GfLOOCiOOBl+OBguOBjQ0KK+OBhOOCj+OBn+OBpizjgYjjgaTjgY0NCivjgYTjgZrjgb8s44KI44GG44GYDQor44GY44KT44GuLOOBleOBqOOBlw0KK+OBi+OBjOOCjyzjgZfjgZLjgbLjgagNCivjgYvjgYTjgazjgb4s44Gk44Gt44Gy44KNDQor44GL44GY44GfLOOBi+OBpOOBvw0KK+OBi+OBkeOBjOOCjyzjgZ/jgYvjga/jgosNCivjgYvjgY3jgazjgb4s44Gf44Gg44G/44GkDQor44GL44G+44GgLOOBruOBvOOCiw0KK+OBi+OBvuOBnyzjgabjgovjgbLjgZUNCivjgYvjgoHjgZ/jgass44Go44GX44Gy44GTDQor44GL44G/44GY44KHLOOBn+OBi+OBlw0KK+OBi+OBv+OCgOOCiSzjgajjgoLjgZMNCivjgYvjgb/jgoTjgb4s44G+44GV44Gy44KNDQor44GL44Gq44GG44GhLOOBkeOBhOOBkw0KK+OBn+OBkeOBhuOBoSzjgbXjgb/jgYvjgZoNCivjgYvjga3jgZMs44Gy44KN44KG44GNDQor44GL44Gt44GTLOOBiuOBleOCgA0KK+OBi+OCk+OBrOOBjSzjgZPjgZvjgYQNCivjgYvjga4s44GV44Go44GXDQor44GL44KJ44Gv44GXLOOBsuOBp+OBjQ0KK+OBi+OBleOBhCzjgb/jgo8NCivjga7jgoDjgoks44Gf44GL44KE44GZDQor44GL44GV44GELOOBsuOBp+OBig0KK+OBi+OBmyzjga7jgbbjgYoNCivjgYvjgZfjgY/jgoks44Gf44GL44G/44GhDQor44GL44GX44KA44KJLOOBi+OBmuOBn+OBiw0KK+OBi+OBl+OCj+OBjizjgarjgYrjgY0NCivjgYvjgZ/jga4s44Gf44GL44Gy44KNDQor44GL44Gf44GK44GLLOOBsuOCjeOBjQ0KK+OBi+OBqOOBhizjgY/jgavjgYLjgY0NCivjgYvjgajjgYYs44G+44GV44Gu44KKDQor44GL44Go44GGLOOBvuOBleOBlw0KK+OBi+OBqOOBhizjgb7jgZXjgobjgY0NCivjgYvjgajjgYYs44Gf44GL44KG44GNDQor44GL44Go44GGLOOBv+OBjQ0KK+OBi+OBqOOBhuOBiuOBiyzjgoTjgZnjga7jgbYNCivjgYvjgaTjgYQs44KE44GZ44GNDQor44GL44Gk44G+44GfLOOBm+OBhOOBhOOBoQ0KK+OBi+OCj+OBsOOBnyzjgY3jgojjgY/jgasNCivjgYvjgo/jgaHjgoQs44Gy44KN44GC44GNDQor44GL44KP44GgLOOBv+OBruOCiw0KK+OBi+OCj+OBoCzjgYjjgb/jgZMNCivjgYTjgorjgZXjgo8s44KC44KC44GTDQor44GL44KP44GELOOBmOOCheOBq+OBoQ0KK+OBi+OCj+OBi+OBvyzjgojjgZfjgo0NCivjgYvjgo/jgYvjgb8s44GV44Go44GXDQor44GL44KP44G/LOOBi+OCiOOBkw0KK+OBi+OCj+OCgOOCiSzjgabjgovjgbLjgZUNCivjgYTjgZfjgYQs44KE44GZ44GXDQor44GL44KP44GuLOOBiuOBleOCgA0KK+OBi+OCj+OCgOOCiSzjgarjgYrjgY0NCivjgYvjgo/jgZXjgY0s44GR44GEDQor44GL44KP44GbLOOBvuOBleOBr+OCiw0KK+OBi+OCj+OBmyzjgZ/jgYvjgYLjgY0NCivjgYvjgo/jgZss44Gf44GL44GXDQor44GL44KP44GX44G+LOOChuOBi+OCig0KK+OBi+OCj+OBn+OBqyzjgZjjgofjgZgNCivjgZHjgYTjgaAs44G/44Gu44KLDQor44GN44GgLOOBn+OBi+OBig0KK+OBjeOBoOOBoSzjgajjgZfjgYLjgY0NCivjgY3jga/jgoks44KK44Gb44GEDQor44GN44GP44GL44KPLOOBsuOCjeOChuOBjQ0KK+OBjeOCguOBqCzjgbXjgb/jgYoNCivjgY3jgoDjgoks44G/44KPDQor44GL44G+44GfLOOBkeOCk+OBmA0KK+OBhOOBj+OBvyzjgb/jga7jgosNCivjgY3jga7jgZfjgZ8s44GC44GN44KJDQor44GN44Gu44GG44GhLOOBkeOCk+OBmA0KK+OBjeOBlyzjgoTjgZnjgY0NCivjgY3jgZfjgoLjgags44G+44GV44Gy44KNDQor44GN44GG44GhLOOBjeOCiOOBsuOCjQ0KK+OBk+OBsCzjga7jgbbjgobjgY0NCivjgoLjgoos44Gq44GK44GNDQor44GT44Gw44KE44GL44KPLOOBsuOCjeOBlw0KK+OBj+OBvOOBnyzjgYjjgYTjgZgNCivjgZPjgbDjgoTjgZcs44GI44GE44GTDQor44GK44GL44KPLOOBj+OBq+OBsuOBkw0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgYLjgY0NCivjgZPjgbDjgoTjgZcs44GX44GS44GTDQor44GT44G+44GfLOOBl+OBkuOBig0KK+OBk+OBsOOChOOBlyzjgajjgoLjgYgNCivjgZPjgbDjgoTjgZcs44KG44GL44KKDQor44GT44Gw44KE44GXLOOBvuOBleOBsuOBpw0KK+OBk+OBoOOBvizjgZHjgpPjgYTjgaENCivjgZPjgYjjgZgs44Gy44KN44KG44GNDQor44GT44GQ44GhLOOBvuOChuOBvw0KK+OBk+OBr+OBnyzjgZfjgZLjgYvjgZoNCivjgZPjgbLjgoks44G+44GNDQor44Gq44GL44GM44KPLOOBn+OBj+OBlw0KK+OBk+OBsuOCg+OBvizjgYvjgZrjgbLjgo0NCivjgZPjgYTjgacs44Go44KI44GC44GNDQor44GT44GE44GnLOOBsuOCjeOChuOBjQ0KK+OBk+OBhOOBkSzjgbLjgafjgY0NCivjgZPjgYTjgZrjgb8s44Gf44GR44GXDQor44GT44GY44G+LOOBsuOBqOOBlw0KK+OBk+OBkeOBkOOBoSzjgabjgaTjgoQNCivjgZPjgY/jgbws44GX44KTDQor44GT44G+44GkLOOBpuOBpOOBmA0KK+OBk+OBvuOBpCzjgY3jgojjga7jgooNCivjgZPjgb/jgoQs44GI44GE44Gf44GkDQor44GT44KT44GpLOOBi+OBpOOBvw0KK+OBk+OCk+OBqSzjgYvjgaTjgobjgY0NCivjgZPjgpPjgaks44GL44Ga44Gy44GTDQor44GT44KT44GpLOOChOOBmeOBlw0KK+OBk+OCk+OBqSzjgaTjgajjgoANCivjgZPjgavjgZcs44GR44KT44GYDQor44GT44GV44GLLOOBqOOBl+OBsuOBkw0KK+OBk+OBm+OBjSzjgY3jgb/jgYoNCivjgZPjgZfjgYTjgZcs44KK44GI44GTDQor44GT44GX44GKLOOBguOBjeOCiQ0KK+OBk+OBmeOBkizjgojjgZfjgo0NCivjgZPjgbLjgoMs44GY44KF44KTDQor44GT44KE44G+LOOBl+OBkuOCiw0KK+OBk+OChOOBvizjgoLjgajjgZMNCivjgZ/jgZHjgaEs44Gf44GP44KEDQor44GP44G8LOOChOOBmeOBvuOBlQ0KK+OBj+OBvCzjgojjgYbjgZMNCivjgY/jgbws44Gf44GL44GTDQor44GP44GM44GELOOChuOBv+OBkw0KK+OBhOOBi+OCieOBlyzjgojjgZgNCivjgY/jgb7jgZbjgo8s44GL44Ga44Go44GXDQor44GP44Gr44G/44GkLOOBguOBjeOCiQ0KK+OBj+OBrizjgb/jgYgNCivjgbvjgZfjga4s44Gf44GL44KG44GNDQor44GP44KJ44GX44GSLOOBn+OBpOOBig0KK+OBj+OCiuOBr+OCiSzjgZ/jgYvjgZMNCivjgarjgYvjgYzjgo8s44G+44GV44Gy44KNDQor44KE44Gq44GO44GgLOOBqOOBl+OBsuOBkw0KK+OBj+OCiuOChOOBvizjgZ/jgaTjgoQNCivjgY/jgo3jgYvjgo8s44G+44GV44Go44GXDQor44GP44GV44GL44KPLOOBqOOBl+OBguOBjQ0KK+OBj+OBleOBquOBjizjgb7jgZXjga7jgooNCivjgY/jgZXjga4s44GL44Ga44GXDQor44GP44GbLOOBiuOBleOCgA0KK+OBj+OBl+OBoCzjgZfjgoXjgZ4NCivjgY/jgZnjgaAs44Go44GX44KEDQor44GP44GZ44GNLOOBpOOBqOOCgA0KK+OBj+OBmeOBvyzjgbXjgb/jgY0NCivjgb7jgYjjgaAs44Gf44GL44KG44GNDQor44G+44GI44GgLOOBi+OBmuOBsuOCjQ0KK+OBvuOBiOOBi+OCjyzjga7jgbbjgZMNCivjgb7jgYjjgYvjgo8s44Gy44GV44KI44GXDQor44G+44GM44KK44G144GhLOOBm+OBhOOBlw0KK+OBvuOBjeOBrizjgajjgZfjgoQNCivjgb7jgY3jga4s44GT44GG44GYDQor44G+44Gq44G5LOOBv+OBiw0KK+OBguOBjOOBpOOBvizjgZfjgofjgbLjgaENCivjgb7jgovjgYos44KG44GN44GKDQor44G+44KL44GfLOOBsuOBp+OBguOBjQ0KK+OBvuOCi+OChOOBvizjgbLjgafjgobjgY0NCivjgb7jgovjgoTjgb4s44GR44GE44GE44GhDQor44G+44KL44KE44G+LOOBiuOBleOCgA0KK+OBvuOCi+OChOOBvizjgbLjgafjgbLjgZMNCivjgb7jgZnjgaAs44GV44Go44KLDQor44G+44GZ44GgLOOBoeOBiA0KK+OBi+OCk+OBsOOCiSzjgZPjgYbjgYTjgaHjgo0NCivjgb7jgaTjgbDjgoks44Gh44GI44GTDQor44Gq44GL44KA44KJLOOChuOBn+OBiw0KK+OBvuOBpOOBoCzjgZ/jgaTjgoQNCivjgb7jgaTjgaAs44GC44GN44GKDQor44G+44Gk44GELOOBsuOCjeOBkw0KK+OBvuOBpOOBhCzjgZ/jgYvjgYoNCivjgb7jgaTjgYQs44KI44GX44GKDQor44G+44Gk44GELOOBoeOBsuOCjQ0KK+OBvuOBpOOCguOBqCzjgZHjgpPjgZgNCivjgb7jgaTjgoLjgags44G+44GV44KIDQor44G+44Gk44KC44GoLOOBn+OBpOOChuOBjQ0KK+OBvuOBpOOCguOBqCzjgZfjgZLjgosNCivjgb7jgaTjgYrjgYss44Gq44GK44GNDQor44Gq44KL44GbLOOChuOBiw0KK+OBvuOBpOOChCzjgb7jgZPjgagNCivjgoHjgZbjgo8s44Gf44GL44Gy44KNDQor44G/44GI44GuLOOChuOBhuOBmA0KK+OBv+OBjuOBnyzjgabjgovjgb/jgaQNCivjgb/jgYvjgb8s44Go44GX44KEDQor44G/44KA44KJLOOBhOOBmuOBvw0KK+OChOOBquOBjizjgbLjgo3jgZcNCivjgb/jgarjgYvjgZ8s44Gh44Go44GbDQor44G/44GtLOOBj+OBq+OBruOCig0KK+OBv+OBrSzjgb7jgZXjgobjgY0NCivjgb/jga7jgo8s44Gy44KN44KG44GNDQor44G/44GV44KPLOOCiOOBl+OBruOCig0KK+OBv+OBleOCjyzjgZfjgoXjgbLjgaHjgo0NCivjgb/jgZfjgb4s44Gh44KI44GTDQor44G/44Gf44KA44KJLOOBguOBpOOBlw0KK+OBv+OBqCzjgZHjgpPjgZgNCivjgb/jgaTjgbLjgoks44G+44GV44GL44GkDQor44G/44Gk44GE44GXLOOBl+OCk+OChA0KK+OBv+OBpOOBquOCiizjgb/jgbsNCivjgb/jgYbjgoks44KK44KF44GYDQor44G/44KE44G5LOOBruOBtuOBsuOBkw0KK+OBv+OChOOBmOOBvizjgbLjgajjgZcNCivjgb/jgoTjgoLjgags44GN44KF44Gy44KDDQor44G/44KE44KC44GoLOOBvuOChuOBvw0KK+OBv+OChOOBleOBiyzjgZfjgofjgZgNCivjgb/jgoTjgZXjgYss44GL44Ga44KEDQor44G/44KE44GX44GfLOOBk+OBhuOBhOOBoQ0KK+OBv+OChOOBl+OBnyzjgb7jgZXjgobjgY0NCivjgb/jgoTjgZbjgY0s44G+44GV44KE44GZDQor44G/44KE44GW44KPLOOChOOBmeOBiOOBhA0KK+OBv+OChOOBluOCjyzjgY3jgojjgYgNCivjgb/jgZ7jga/jgZcs44G+44GN44GTDQor44GV44GL44GELOOBn+OBi+OBsuOCjQ0KK+OBv+OBmuOBrizjgaTjgojjgZcNCivjgb/jgZrjgYrjgaEs44Go44KC44Gy44KNDQor44G/44Ga44GX44G+LOOBruOBtuOBig0KK+OBv+OBmuOBnyzjgb7jgorjgZMNCivjgoLjgaHjga/jgoks44G+44GV44G144G/DQor44KC44Gh44Ga44GNLOOBn+OBi+OBiA0KK+OCguOCguOBmyzjgbLjgo3jgYvjgZoNCivjgoLjgoos44GR44KT44GYDQor44KC44KKLOOBl+OBkuOBjQ0KK+OCguOCiizjgZfjgZLjgosNCivjgoLjgoos44Go44KC44G/DQor44KC44KKLOOChuOBsuOBoeOCjQ0KK+OCguOCiizjgZHjgpPjgYTjgaHjgo0NCivjgoLjgorjgYvjgo8s44Gy44KN44GLDQor44KC44KK44KC44GoLOOBmOOCheOCk+OBkw0KK+OCguOCiuOCguOBqCzjga7jgorjgZfjgZINCivjgoLjgorjgoLjgags44GL44Gk44G/DQor44KC44KK44KA44KJLOOBn+OBi+OChuOBjQ0KK+OCguOCiuOBrizjgZ/jgZHjgbLjgZMNCivjgoLjgorjgZXjgo8s44Gy44KN44GXDQor44GX44G+44GK44GLLOOBsuOCjeOBguOBjQ0KK+OCguOCiuOBl+OBnyzjgZ/jgYvjgYoNCivjgoLjgorjgoTjgb4s44GR44KT44GYDQor44KC44KN44GK44GLLOOBkeOCk+OBmA0KK+OCguOCjeOBqOOBvyzjgY/jgasNCivjgoLjgajjgY0s44GT44GG44GE44GhDQor44KC44Go44GuLOOBl+OCheOBsuOBoQ0KK+OCguOBqOOBn+OBiyzjgbLjgo3jgY0NCivjgoDjgZDjgovjgb4s44GC44GN44Gy44KNDQor44KA44GL44GELOOBoeOBiA0KK+OBguOCk+OBqeOBhizjga/jgZrjgY0NCivjga/jga0s44Gy44Gn44GNDQor44KA44KJ44GL44G/LOOBvuOCguOCiw0KK+OCgOOCieOBvuOBpCzjgb7jgZXjgogNCivjgoDjgonjgZfjgZIs44KE44GZ44Gy44KNDQor44GX44KC44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OCgOOCieOBnyzjgb7jgarjgbYNCivjgb/jgofjgYws44GX44KT44GE44GhDQor44Gq44GM44Gv44KJLOOBi+OBmuOBvw0KK+OBhOOBqOOBhizjgY/jgavjgYvjgZoNCivjgarjgYzjgYQs44GK44GV44KADQor44Gq44GM44GELOOChuOBiw0KK+OBhOOCj+OBqCzjgbLjgo3jgZMNCivjgZ/jgZHjgZfjgZIs44G/44Gk44Gy44KNDQor44Gq44GM44GKLOOBquOBiuOBjQ0KK+OBquOBjOOBiizjgZ/jgaDjgajjgZcNCivjgarjgYzjgYos44GL44Gk44KG44GNDQor44G144GP44Gk44GLLOOBsuOBp+OBjQ0KK+OBquOBjOOBleOCjyzjgZ/jgY/jgZgNCivjgarjgYzjgZXjgo8s44KI44GX44G/DQor44Gq44GM44GbLOOBhOOCj+OBig0KK+OBquOBjOOBl+OBvizjgZPjgY0NCivjgarjgYzjgZ/jgass44Go44GX44GL44GaDQor44Gq44GM44KP44GNLOOBpOOBqOOCgA0KK+OBquOBjOOChOOBvizjgYvjgZrjgobjgY0NCivjgarjgZTjgoQs44GY44KF44KTDQor44Gq44GE44Go44GGLOOBvuOBk+OBqA0KK+OBquOBhOOBqOOBhizjgZ/jgYvjgobjgY0NCivjgarjgYvjgaAs44Gy44KN44GXDQor44Gq44GL44GM44GNLOOBi+OBpOOBvw0KK+OBquOBi+OBjOOCjyzjgZHjgYTjgZ8NCivjgarjgYvjgYzjgo8s44Go44GK44KLDQor44Gq44GL44GM44KPLOOCiOOBl+OBjQ0KK+OBquOBi+OBjOOCjyzjgaHjgbvjgZMNCivjgarjgYvjgZjjgb4s44GC44GN44Gy44KNDQor44G744KK44GG44GhLOOBv+OBoeOBruOCig0KK+OBquOBi+OBr+OCiSzjgYTjgZXjgYgNCivjgarjgYvjgZjjgb4s44GR44GE44GTDQor44Gq44GL44GY44G+LOOBsuOBp+OBjQ0KK+OBjeOBj+OBnyzjgoTjgZnjgbLjgo0NCivjgarjgYvjgZjjgb4s44GZ44GZ44KADQor44Gq44GL44G+44KLLOOBguOBjeOBig0KK+OBquOBi+OCgOOCiSzjgbXjgb/jgbLjgZMNCivjgarjgYvjgoDjgoks44Gy44KN44KE44GZDQor44Gq44GL44KA44KJLOOBvuOBleOBsuOBpw0KK+OBquOBi+OCgOOCiSzjgoLjgorjgYoNCivjgarjgYvjgoDjgoks44Gu44G244KG44GNDQor44Gq44GL44KA44KJLOOBleOBoOOBv+OBpA0KK+OBquOBi+OCgOOCiSzjgZ/jgY/jgoQNCivjgarjgYvjgoDjgoks44Gy44KN44GC44GNDQor44Gv44Gj44Go44KKLOOBpuOCi+OBruOBtg0KK+OBquOBi+OCgOOCiSzjgajjgZfjgbLjgo0NCivjgarjgYvjgoDjgoks44KE44GZ44Gy44KNDQor44Gq44GL44KA44KJLOOBvuOBleOBlw0KK+OBv+OChOOCguOBqCzjgajjgYrjgosNCivjgarjgYvjgavjgZcs44Go44KI44GYDQor44Gq44GL44Gr44GXLOOBi+OBmuOBsuOBqA0KK+OBquOBi+OBrizjgYvjgZrjgobjgY0NCivjgarjgYvjga4s44GT44GG44GYDQor44Gq44GL44GuLOOBv+OBiw0KK+OBquOBi+OBrizjgajjgZfjgYLjgY0NCivjgarjgYvjga4s44Go44GX44GTDQor44Gq44GL44GuLOOCiOOBlw0KK+OBquOBi+OBrizjgb7jgZPjgagNCivjgarjgYvjgYos44Gh44GIDQor44Gq44GL44GK44GLLOOBruOCiuOBkw0KK+OBquOBi+OBl+OBvizjgZ/jgYvjgYoNCivjgarjgYvjgZfjgb4s44Gf44GL44GXDQor44GX44Gq44GgLOOCiuOCheOBsuOBoQ0KK+OBquOBi+OBnyzjgZfjgZLjgYvjgZoNCivjgarjgYvjgoQs44G+44Gq44G2DQor44GV44GE44GL44KPLOOBleOBtuOCjQ0KK+OBr+OBm+OBjOOCjyzjgajjgYrjgosNCivjgarjgYvjgZbjgo8s44Gf44Gk44GYDQor44Gq44G+44GkLOOBhOOBmuOCiw0KK+OBquOCiuOBnyzjgbLjgafjgagNCivjgarjgZnjga4s44GZ44Gq44GKDQor44Gt44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBreOBiuOBhCzjgaHjgobjgY0NCivjga3jgZos44KE44GZ44Gy44GnDQor44Gr44GE44KA44KJLOOBiuOBleOCgA0KK+OBq+OBhOOChOOBvizjgaTjgYvjgZUNCivjgavjgYTjgoTjgb4s44GR44GEDQor44Gr44Gu44G/44KELOOCiOOBl+OBruOBtg0KK+OBq+OBruOBv+OChCzjgZ/jgYvjgbLjgo0NCivjgavjgZcs44G+44GV44GL44GkDQor44Gr44GX44GgLOOBl+OCk+OBhOOBoQ0KK+OBq+OBl+OBoCzjgYvjgZrjgarjgooNCivjgavjgZfjganjga4s44GC44GN44KJDQor44Gr44GX44GL44KPLOOBi+OBmuOBquOCig0KK+OBq+OBl+OBjeOBqSzjgZ/jgY/jgZgNCivjgavjgZfjgoDjgoks44Gy44Go44GXDQor44Gr44GX44GqLOOBsuOCjeOBlw0KK+OBq+OBl+OBiizjgb7jgb8NCivjgYTjga7jgYbjgYgs44G+44G/DQor44Gr44GX44GW44KPLOOBn+OBj+OBmA0KK+OBq+OBl+OBmuOBiyzjgZ/jgYvjgYLjgY0NCivjgavjgaPjgZ8s44G/44Gt44GC44GNDQor44Gu44GgLOOBvuOBk+OBqA0KK+OBruOCgOOCiSzjgarjgYrjgY0NCivjga7jga7jgoDjgoks44GL44Ga44G+44GVDQor44Gu44KK44Gv44GXLOOBoeOBi+OBkg0KK+OBsuOBrizjgbLjgo3jgZcNCivjga7jgZbjgY0s44Gy44KN44GXDQor44Gu44GW44KPLOOBi+OBmuOBguOBjQ0KK+OBrOOBvuOBrizjgZ/jgYvjgYoNCivjgYrjgbPjgZss44G+44GV44Gu44KKDQor44GK44G844GL44GfLOOBvuOBleOBlw0KK+OBiuOBoSzjgojjgZfjga7jgooNCivjga/jgZvjgYzjgo8s44GC44GN44KJDQor44G+44Gq44G5LOOBguOBjeOBsuOBkw0KK+OBiuOBoCzjgYLjgY3jgokNCivjgYrjgaAs44Gg44GE44GE44GkDQor44GK44GgLOOBmOOCheOCk+OBmA0KK+OBiuOBoCzjgYvjgZrjgajjgZcNCivjgYrjgaDjgY/jgoks44Gf44GL44GC44GNDQor44GK44GM44GfLOOBqOOBl+OChA0KK+OBiuOBjOOCjyzjgbLjgajjgb8NCivjgYLjgbks44KP44GL44GTDQor44GK44GQ44GhLOOBleOBqOOBlw0KK+OBiuOBkOOBvizjgbLjgo3jgobjgY0NCivjgYrjgZDjgoks44GE44GV44GKDQor44GK44GQ44KJLOOBi+OBmuOChuOBjQ0KK+OCgOOBleOBlyzjgZfjgpMNCivjgYrjgZDjgoks44G+44GV44Gy44KNDQor44GK44GQ44KKLOOBruOBtuOBkw0KK+OBiuOBsCzjgbLjgo3jgY0NCivjgYrjga/jgZcs44GR44KT44GZ44GRDQor44GK44GyLOOBguOBjeOBsuOCjQ0KK+OBiuOBsuOBiCzjgb/jgaTjgYLjgY0NCivjgYrjgY/jgbws44Gy44KN44KG44GNDQor44GK44GP44G+LOOBi+OBpOOBvw0KK+OBiuOBj+OBvizjgZfjgpPjgZnjgZENCivjgYrjga4s44Gy44Gn44Gy44KNDQor44GK44Gs44G+LOOBmOOCheOCk+OBkw0KK+OBn+OBi+OBmyzjgY7jgocNCivjgYrjgZXjgo8s44Gy44Go44GXDQor44GK44GV44KPLOOBqOOBl+OBsuOBkw0KK+OBiuOBleOCjyzjgojjgZnjgZENCivjgYrjgZXjgo8s44GT44GNDQor44GK44GX44G+LOOBvuOBleOCiOOBlw0KK+OBiuOBl+OBvizjgZ/jgb7jgY0NCivjgYrjgZfjgb4s44Gy44Gn44GKDQor44GK44GfLOOBv+OBpOOCiw0KK+OBiuOBn+OBiyzjgb7jgZXjgbLjgZMNCivjgYrjgZ/jgY0s44G+44GT44GoDQor44GK44Gf44GrLOOBkeOCk+OBmA0KK+OBiuOBpOOBiyzjgojjgbLjgaENCivjgYrjgaTjgYss44Gy44KN44GL44GaDQor44GK44KPLOOBkeOCk+OBmA0KK+OBiuOCj+OBoCzjga/jgovjgZcNCivjgYrjgbLjgoPjgb4s44GE44GV44KADQor44GK44Ge44GtLOOBsuOCjeOBlw0KK+OBiuOBiyzjgYvjgaTjgb8NCivjgYrjgYss44GL44KI44GTDQor44GK44GLLOOCiOOBl+OBsuOBpw0KK+OBiuOBiyzjgbLjgafjgY0NCivjgYrjgYvjgaAs44Gy44KN44GXDQor44GK44GL44GgLOOBkeOCk+OBmA0KK+OBiuOBi+OBoCzjgZ3jgZnjgZENCivjgYrjgYvjgaAs44G+44KK44GTDQor44GK44GL44Gp44KBLOOBsuOCjeOBig0KK+OBiuOBi+OCguOBqCzjgb/jgaTjgbLjgo0NCivjgYrjgYvjgoLjgags44GX44KT44GYDQor44GK44GL44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBiuOBi+OCgOOCiSzjgZ/jgZHjgZcNCivjgYrjgYvjga4s44KI44GYDQor44GK44GL44Gu44KELOOBsuOCjeOBruOBtg0KK+OBiuOBi+OBiizjgabjgaTjgYoNCivjgYrjgYvjgZbjgY0s44G+44GT44GoDQor44GK44GNLOOBsuOCjeOBruOCig0KK+OBiuOBjeOCguOBqCzjgbLjgajjgZcNCivjgYrjgY/jgoDjgoks44Gu44G244KG44GNDQor44GK44GP44KA44KJLOOChOOBmeOBlw0KK+OBiuOBj+OBrizjgbLjgo3jgYLjgY0NCivjgYrjgb7jgZ8s44GL44Ga44GX44GSDQor44GK44Gr44GNLOOBn+OBi+OBruOCig0KK+OBiuOBq+OBpOOBiyzjgZ/jgYvjgojjgZcNCivjgYrjga7jgafjgoks44Gy44Go44GXDQor44GK44Gu44GW44KPLOOBvuOBleOChuOBjQ0KK+OBiuOBq+OBlyzjgajjgojjgYLjgY0NCivjgYrjgavjgZcs44GN44KI44GL44GkDQor44GK44Gk44GLLOOChOOBmeOBlw0KK+OBiuOBleOBoCzjgZPjgYbjgZgNCivjgYrjgZXjgY0s44Gy44KN44GXDQor44GK44GV44Gq44G/LOOCiuOBiw0KK+OBiuOChOOBvuOBoCzjgYLjgY3jgokNCivjgYrjgZbjgo8s44G/44Gk44KLDQor44GK44GW44KPLOOChOOBmeOBmA0KK+OBiuOBluOCjyzjgbLjgafjgYoNCivjgo0s44Gy44KN44KG44GNDQor44GV44GI44GQ44GVLOOBvuOBleOBsuOBkw0KK+OBleOBiOOBjSzjgajjgoLjgZMNCivjgarjgYvjgZjjgb4s44KG44GN44Gy44GTDQor44GV44GE44GfLOOBguOBhA0KK+OBiuOBjOOCjyzjgYLjgY3jgojjgZcNCivjgZXjgYTjgajjgYYs44Gy44KN44KG44GNDQor44GV44GE44Go44GGLOOBvuOBleOBguOBjQ0KK+OBleOBhOOBqOOBhizjgYLjgY3jgokNCivjgZXjgYvjgYQs44Gy44Gn44Gk44GQDQor44GV44GL44GELOOBkeOCkw0KK+OBleOBi+OBhCzjgY/jgavjgojjgZcNCivjgZXjgYvjgYQs44Gq44GK44Gy44GVDQor44GV44GL44GELOOBqOOCguOBruOBtg0KK+OBleOBi+OBhCzjgZ/jgYvjgZcNCivjgZXjgYvjgYTjgoos44GX44Ga44KI44GXDQor44GV44GL44GNLOOChOOBmeOBruOCig0KK+OBleOBi+OBvizjgZPjgYbjgZjjgo0NCivjgZXjgYvjgb7jgY0s44GX44KNDQor44GV44GL44KC44GoLOOChOOBmeOBruOCig0KK+OBleOBi+OCguOBqCzjgojjgorjgagNCivjgZXjgYvjgoLjgags44KE44GZ44Gu44KKDQor44GV44GL44GfLOOCiOOBl+OBsuOCjQ0KK+OBleOBi+OBhuOBiCzjgZ/jgZHjgZcNCivjgZXjgYvjgZrjgoEs44Gh44GI44GTDQor44Gq44GL44GuLOOChOOBmeOBr+OCiw0KK+OBleOBj+OBvizjgYvjgZrjgbLjgZUNCivjgZXjgpPjgbzjgpPjgb7jgaQs44Gf44GL44Gy44GTDQor44GV44GuLOOCiOOBl+OBruOCig0KK+OBleOBrizjgorjgofjgZgNCivjgZXjgZXjgYzjgo8s44Gy44Gn44Gu44KKDQor44GV44GV44GNLOOBkeOBhOOBmA0KK+OBleOBleOBjSzjgZ/jgZHjgZcNCivjgZXjgZXjgY0s44Gf44GPDQor44GV44GV44GNLOOBl+OCh+OBlA0KK+OBleOBleOBluOCjyzjgbLjgo3jgobjgY0NCivjgZXjgajjgYYs44GN44KH44GTDQor44GV44Go44GGLOOBvuOBleOBruOCig0KK+OBleOBqOOBhizjgb7jgZXjgajjgoINCivjgZXjgajjgYYs44G+44GV44Go44GXDQor44GV44Go44GGLOOBleOBqOOCiw0KK+OBleOBqOOBhizjgZfjgoXjgbLjgaENCivjgZXjgajjgYYs44Gf44GL44GXDQor44GV44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBleOBqOOBhizjgZ/jgY/jgb8NCivjgZXjgajjgYYs44Go44KC44Gy44KNDQor44GV44Go44GGLOOCiOOBl+OBsuOBkw0KK+OBleOBqOOBhizjgYvjgZrjgbLjgo0NCivjgZXjgaTjgb4s44Gf44GR44GXDQor44GV44KP44GQ44GhLOOBqOOBl+OBteOBvw0KK+OBleOCj+OBhCzjgobjgZ/jgYsNCivjgZXjgo/jgonjgY4s44KG44KK44GTDQor44GV44KP44Gf44GrLOOChOOBmeOChuOBjQ0KK+OBm+OBhOOBnyzjgYvjgZrjgojjgZcNCivjgZvjgY0s44GT44GG44GYDQor44Gb44GNLOOBqOOBl+OChuOBjQ0KK+OBm+OBjSzjgoTjgZnjgZcNCivjgZvjgY3jga/jgoks44GL44Gk44Gy44GoDQor44Gb44GN44GtLOOCiOOBl+OBn+OBiw0KK+OBm+OBjeOBrSzjgZ/jgYvjgobjgY0NCivjgZfjgonjgYTjgZcs44Gu44G244Gf44GLDQor44Gb44KT44GMLOOChuOBmeOBkQ0KK+OBm+OBrizjgbLjgafjgobjgY0NCivjgZvjgZfjgoIs44GV44Go44GXDQor44Gb44GoLOOBiuOBleOCgA0KK+OBm+OBqOOBkOOBoSzjgb7jgobjgb8NCivjgabjgovjgoQs44Gu44G244GKDQor44GX44GE44GwLOOBsuOBp+OBruOCig0KK+OBl+OBsOOBrizjgb/jgo/jgZMNCivjgZfjgbDjgZXjgY0s44Gq44GK44GoDQor44GX44Gw44GfLOOBv+OBoeOBsuOCjQ0KK+OBl+OBtuOBleOCjyzjgoTjgZnjgYoNCivjgZfjgbbjgZXjgo8s44GP44Gr44GKDQor44GX44GhLOOBguOBpOOBlw0KK+OBl+OBoeOBnyzjgb7jgZXjgb7jgo0NCivjgZfjgZLjgbLjgZUs44Gu44G244Gy44KNDQor44GX44GS44GV44KPLOOBruOCiuOChOOBmQ0KK+OCgOOCieOBnyzjgYLjgY3jgokNCivjgZfjgb7jgZos44KG44GZ44GRDQor44GX44G+44GaLOOBsuOCjeOChuOBjQ0KK+OBjeOBl+OBoCzjgb7jgZXjgbLjgo0NCivjgZfjgb/jgZos44Gu44G244GKDQor44GX44G/44GaLOOBruOCiuOChuOBjQ0KK+OBl+OBv+OBmizjgZfjgoXjgbLjgaENCivjgZfjgb/jgZos44Gf44Gk44GKDQor44GX44G/44GaLOOBn+OBpOOChA0KK+OBl+OBv+OBmizjgobjgbLjgaENCivjgZfjgb/jgZos44KK44GLDQor44G/44KE44GT44GXLOOBqOOCguOChuOBjQ0KK+OBl+OCguOBv+OBoSzjgYTjgY/jgZMNCivjgarjgYvjgbDjgoTjgZcs44Gm44Gk44KNDQor44GX44KC44GK44GVLOOBvuOBleOBteOBvw0KK+OBl+OCguOBpOOBmCzjgojjgZfjgbLjgo0NCivjgZfjgarjgaAs44Gg44GE44GI44GEDQor44GX44Gq44GM44KPLOOBn+OBi+OChuOBjQ0KK+OBl+OCk+OCguOBqCzjgajjgYrjgosNCivjgZfjga4s44G/44KG44GNDQor44GX44Gu44GgLOOCiuOCheOBhuOBn+OCjeOBhg0KK+OBl+OBruOBoCzjgZ/jgYvjgaTjgZANCivjgZfjga7jgZbjgY0s44Gf44Gk44GXDQor44GX44GK44Gf44GrLOOBn+OBi+OBlw0KK+OBl+OBiuOChCzjgb/jgaHjgYoNCivjgZfjgonjgbks44GI44GE44GE44GhDQor44GX44KJ44GM44GNLOOBsuOCjeOBlw0KK+OBl+OCieOBhCzjga/jgoTjgajjgZcNCivjgZfjgonjgYTjgZcs44GP44KT44GYDQor44GX44KJ44GE44GXLOOBkeOBhOOBkw0KK+OBl+OCieOBjSzjgbLjgo3jgZfjgZINCivjgZfjgZrjgZ8s44Go44GX44Gy44KNDQor44GX44KH44GYLOOBvuOCiuOBkw0KK+OBneOBruOBoCzjgYvjgYrjgosNCivjgZnjganjgYYs44Gf44GR44GXDQor44GZ44GI44GgLOOBl+OCk+OBmA0KK+OBmeOBiOOBpOOBkCzjgaHjgYvjgZcNCivjgZnjgYzjgZ8s44Gu44G244GKDQor44GZ44GM44KP44KJLOOBvuOBleOBsuOCjQ0KK+OBmeOBjuOBrizjgojjgZfjga7jgooNCivjgZnjgY7jgZXjgY0s44KK44KF44GG44Gf44KN44GGDQor44GZ44GO44GX44G+LOOBr+OBpOOBiA0KK+OBquOBjOOBhCzjgZfjgofjgZgNCivjgZnjgY7jgoTjgb4s44Gm44Gk44Gy44KNDQor44GZ44G/LOOBpOOBi+OBlQ0KK+OBmeOBv+OBn+OBqyzjgYTjgaPjgZvjgYQNCivjgZnjgZXjgY0s44KI44GX44Gv44KLDQor44GZ44GZ44GNLOOBi+OBmuOBsuOBkw0KK+OBmeOChOOBvizjgYjjgaTjgbLjgo0NCivjgZnjgZrjgY0s44Gy44KN44GXDQor44GZ44Ga44GNLOOBi+OBmuOBsuOCjQ0KK+OBmeOBmuOBjSzjgZHjgYTjgZMNCivjgZ/jgZjjgb4s44GR44GE44GfDQor44GZ44Ga44GNLOOBv+OBqeOCig0KK+OBmeOBmuOBjSzjgoLjgajjgobjgY0NCivjgZnjgZrjgY0s44Gb44GE44GTDQor44GZ44Ga44GNLOOBn+OBi+OBlw0KK+OBmeOBmuOBjSzjgoTjgZnjgZnjgZENCivjgZnjgZrjgY0s44KI44GX44GC44GNDQor44GZ44Ga44GNLOOCiOOBl+OBruOBtg0KK+OBmeOBmuOBjSzjgobjgYbjgZgNCivjgZnjgZrjgY0s44G+44GV44KLDQor44GX44KF44GP44KELOOBvuOCiuOBkw0KK+OBn+OBoeOBsOOBqizjgajjgZfjgbLjgo0NCivjgZ/jgaHjgoTjgb4s44GL44Gk44Gy44KNDQor44Gf44Gp44GT44KNLOOBl+OCk+OBhOOBoQ0KK+OBn+OBjOOCjyzjgbLjgo3jgobjgY0NCivjgZ/jgZDjgaEs44GT44GG44GE44GhDQor44Gf44GQ44GhLOOBqOOCguOBruOCig0KK+OBn+OBkOOBoSzjgb/jgaHjgYoNCivjgZ/jgYQs44GR44KT44GE44GhDQor44Gf44GY44G+LOOBk+OBhuOBhOOBoQ0KK+OBn+OBi+OBoCzjgZXjgajjgY0NCivjgZ/jgYvjgaAs44Gf44GP44KEDQor44Gf44GL44GOLOOChOOBmeOBkw0KK+OBv+OChOOCguOBqCzjgobjgZ/jgYsNCivjgZ/jgYvjga/jgb4s44GC44GN44GTDQor44Gf44GL44Gv44GXLOOBguOBpOOBlw0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgajjgoINCivjgZ/jgYvjga/jgZcs44Gy44Gn44Go44GXDQor44Gf44GL44Gv44GXLOOBsuOBp+OBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgY0NCivjgZ/jgYvjga/jgZcs44GY44KF44Gr44GhDQor44Gf44GL44Gv44GXLOOBi+OCiA0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgYTjgaENCivjgZ/jgYvjga/jgZcs44G+44GV44GC44GNDQor44Gf44GL44Gv44GXLOOBvuOBleOBsuOBqA0KK+OBn+OBi+OBr+OBlyzjgoLjgajjgYvjgZoNCivjgZ/jgYvjga/jgZcs44Gq44GK44KG44GNDQor44Gf44GL44Gv44GXLOOBruOBtuOBsuOBlQ0KK+OBn+OBi+OBr+OBlyzjga7jgorjgYoNCivjgZ/jgYvjga/jgZcs44GV44Gh44GIDQor44Gf44GL44Gv44GXLOOBleOBqOOCiw0KK+OBn+OBi+OBr+OBlyzjgZfjgZLjga7jgbYNCivjgZ/jgYvjga/jgZcs44GZ44GZ44KADQor44Gf44GL44Gv44GXLOOBn+OBi+OBlw0KK+OBn+OBi+OBr+OBlyzjgabjgaTjgYoNCivjgZ/jgYvjga/jgZcs44KE44GZ44GC44GNDQor44Gf44GL44Gv44GXLOOBvuOBleOBruOCig0KK+OBn+OBi+OBquOBlyzjgaTjgajjgoANCivjgZ/jgYvjga4s44G+44GV44KG44GNDQor44Gf44GL44GK44GLLOOBvuOBk+OBqA0KK+OBn+OBi+OBmyzjgZHjgpPjgorjgoUNCivjgZ/jgYvjgZfjgaos44Go44GX44Gy44GVDQor44Gf44GL44GX44GqLOOChOOBmeOBlw0KK+OBn+OBi+OBnyzjgbLjgo3jgobjgY0NCivjgZ/jgYvjgoTjgb4s44KE44GZ44Gu44KKDQor44Gf44GL44KE44Gq44GOLOOBsuOCjeOBlw0KK+OBn+OBkeOBsOOChOOBlyzjgoLjgajjgoTjgZkNCivjgb/jgYvjgb8s44KG44GN44GIDQor44Gf44GR44GELOOChOOBmeOBkw0KK+OBn+OBkeOBjSzjgZ/jgYvjgZcNCivjgZ/jgZHjgoLjgoos44KI44GX44Gy44GVDQor44Gf44GR44KA44KJLOOBqOOBl+OChuOBjQ0KK+OBn+OBkeOBhuOBoSzjgZXjgajjgZMNCivjgZ/jgZHjgoQs44Gy44Gn44GNDQor44Gf44GR44KE44G+LOOBhOOBoeOCjeOBhg0KK+OBn+OBjeOBkOOBoSzjga7jgbbjgYLjgY0NCivjgZ/jgY3jgZfjgZ8s44G/44Gk44KLDQor44Gf44GN44GW44KPLOOBl+OCkw0KK+OBn+OBvuOBhCzjgYvjgaTjga7jgooNCivjgZ/jgb/jgoQs44Gm44Gk44KEDQor44Gf44KA44KJLOOBl+OBkuOBjQ0KK+OBn+OBquOBuSzjgZPjgZvjgYQNCivjgZ/jgarjga/jgZcs44Gg44GE44GV44GPDQor44Gf44Gq44GLLOOBsuOCjeOBguOBjQ0KK+OBn+OBquOBiyzjgbLjgo3jgobjgY0NCivjgZ/jgarjgYss44GY44KF44KTDQor44Gf44Gq44GLLOOBi+OBpOOBvw0KK+OBn+OBquOBiyzjgZHjgYTjgZnjgZENCivjgZ/jgarjgYss44G+44GT44GoDQor44Gf44Gq44GLLOOBvuOBl+OChQ0KK+OBn+OBquOBiyzjga7jgbbjgbLjgZMNCivjgZ/jgarjgYss44GK44GV44KADQor44Gf44Gq44GLLOOBkeOCkw0KK+OBk+OBoOOBvizjgZfjgofjgbLjgaENCivjgZ/jgarjgYss44Go44GX44GC44GNDQor44Gf44Gq44GLLOOBqOOBl+OBi+OBmg0KK+OBn+OBquOBiyzjgajjgZfjgobjgY0NCivjgZ/jgarjgYss44GC44GN44KJDQor44Gf44Gq44KA44KJLOOBl+OBkuOCiw0KK+OBn+OCk+OBsCzjgYLjgY3jgZMNCivjgZ/jgavjgZDjgaEs44KI44GZ44GRDQor44Gf44Gr44GQ44GhLOOBsuOCjeOChuOBjQ0KK+OBn+OBq+OBhCzjgojjgZfjgobjgY0NCivjgZ/jgavjgoDjgoks44GX44GS44GoDQor44Gf44Gr44KP44GNLOOBsuOBp+OBruOCig0KK+OBn+OCi+OBhCzjgbLjgo3jgobjgY0NCivjgZ/jgZXjgY0s44Gy44KN44GNDQor44Gf44GX44KNLOOChuOBjeOBkw0KK+OBn+OBpuOBhOOBlyzjgbLjgo3jgZMNCivjgZ/jgYbjgaEs44GY44KF44Gr44GhDQor44Gf44GG44KJLOOBl+OCkw0KK+OBpuOCieOBoCzjgb7jgZXjgYvjgZoNCivjgZXjgajjgYYs44GY44KF44KT44GTDQor44Gm44KJ44Gr44GXLOOCiOOBl+OBsuOBkw0KK+OBpuOCieOBl+OBnyzjgYLjgZXjgYoNCivjgabjgovjgY3jgaos44Gu44KK44GC44GNDQor44Go44G5LOOBleOBqOOBlw0KK+OBqOOBlCzjgYrjgZXjgoANCivjgajjgZDjgaEs44GV44Go44GXDQor44Go44GYLOOBi+OBmuOBquOCig0KK+OBqOOBv+OBquOBjCzjgZHjgYTjgZgNCivjgajjgb/jgarjgYws44GY44KF44KT44GTDQor44Go44G/44GK44GLLOOBkuOCkw0KK+OBqOOBv+OBnyzjgajjgoLjga7jgooNCivjgajjgb/jgoTjgb4s44GK44GV44KADQor44Go44Gt44GM44KPLOOBl+OCh+OBmA0KK+OBqOOBl+OBquOCiizjgYvjgZrjgobjgY0NCivjgajjgojjgaAs44G+44GV44KEDQor44Go44KI44GgLOOBquOBiuOChA0KK+OBqOOCiOOBoCzjgorjgofjgZMNCivjgYrjgoLjgoos44Gy44KN44GC44GNDQor44Go44Ga44GLLOOCiOOBl+OBig0KK+OChOOBvuOBi+OCjyzjgYLjgY3jgokNCivjgaTjgbzjgYQs44KC44KK44KG44GNDQor44Gk44Gh44Gv44GXLOOBsuOCjeOBlw0KK+OBpOOBoeOBrizjgYLjgY3jgogNCivjgaTjgaHjgoQs44GI44KK44GTDQor44G+44GNLOOBn+OBi+OBr+OCiw0KK+OBpOOBoCzjgYjjgYTjgZgNCivjgaTjgYzjgo8s44GL44Gk44Gu44KKDQor44Gk44GYLOOBvuOBleOBqA0KK+OBpOOBmCzjgoTjgZnjgb7jgZUNCivjgaTjgZgs44Gq44GK44GNDQor44Gk44GL44GgLOOBmeOBkOOCiw0KK+OBpOOBi+OCguOBqCzjgbLjgo3jgZ/jgYsNCivjgaTjgoDjgoks44GC44GN44KJDQor44Gk44Gq44GX44G+LOOBmOOCheOCk+OBkw0KK+OBiuOBj+OChOOBvizjgZPjgYbjgZgNCivjgaTjga7jgaAs44GL44Gk44KEDQor44Gk44Gu44GM44GELOOBvuOBleOBsuOBkw0KK+OBpOOBl+OBvizjgojjgbLjgaHjgo0NCivjgaTjgaTjgb8s44Gy44Gn44GKDQor44Gk44Ga44GNLOOCiuOCheOBuOOBhA0KK+OBpOOCi+OBiuOBiyzjgZjjgoXjgpPjgZMNCivjgYbjgaHjgaAs44GL44Gk44G/DQor44GG44Gh44GgLOOBv+OBruOCiw0KK+OBhuOBoeOBoCzjgojjgZfjgbLjgo0NCivjgYbjgaHjgaAs44Gy44Gn44Gu44KKDQor44GG44Gh44GuLOOBv+OBpOOBruOBtg0KK+OBhuOBoeOBruOBj+OCiSzjgZHjgpPjgZgNCivjgYbjgaHjgoTjgb4s44GV44Go44GXDQor44GG44Gh44KE44G+LOOBqOOCiOOBi+OBmg0KK+OBhuOBoeOChOOBvizjgbLjgo3jgZcNCivjgYbjgaAs44Gy44KN44KG44GNDQor44GG44GI44GgLOOBjeOCiOOBlw0KK+OBhuOBiOOBoCzjgZ/jgYvjgobjgY0NCivjgYbjgYjjgaAs44KG44GN44GKDQor44GG44GI44GgLOOBvuOCguOCiw0KK+OBhuOBiOOBr+OCiSzjgZXjgaDjga/jgosNCivjgYbjgYjjga/jgoks44KE44GZ44Gu44KKDQor44GG44GI44Gv44KJLOOBruOBvOOCiw0KK+OBhuOBiOOBmOOBvizjgbLjgo3jgZcNCivjgYbjgYjjgY0s44GL44Gk44G/DQor44GG44GI44KA44KJLOOBsuOBp+OBqA0KK+OBhuOBiOOBrizjgbLjgZXjgZcNCivjgYbjgYjjga4s44G+44GV44KLDQor44GG44GI44GuLOOBvuOBleOBteOBvw0KK+OBhuOBiOOChOOBvizjgoTjgZnjgZcNCivjgYbjgYQs44GC44GN44Gy44GTDQor44GG44KB44GgLOOCgeOBkOOBvw0KK+OBhuOCgeOBoCzjgb/jgaHjga/jgosNCivjgYbjgoHjgaAs44Gf44GL44Gu44KKDQor44GG44KB44GgLOOBruOBtuOBsuOCjQ0KK+OBhuOCgeOBr+OCiSzjgZHjgYTjgZgNCivjgYbjgoHjgYvjgo8s44GX44GS44KLDQor44GG44KL44GX44Gg44GrLOOBquOBpOOBkw0KK+OBhOOBruOBhuOBiCzjgojjgZfjgagNCivjgYbjgZXjgb8s44Go44GX44Gv44KLDQor44GG44GX44G+44KLLOOBl+OBkuOCiw0KK+OBhuOBl+OChOOBvizjgb7jgZXjgYoNCivjgYbjgZnjgYQs44GX44KT44GYDQor44GG44GZ44GELOOBsuOCjeOChuOBjQ0KK+OBhuOBpOOBvyzjgYjjgorjgZMNCivjgZXjgZXjgYzjgo8s44GP44Gr44Gy44KNDQor44Gd44KB44KELOOBn+OBi+OBsuOBpw0KK+OCj+OBoCzjgajjgY/jgbLjgo0NCivjgo/jgaAs44KG44GG44GYDQor44KP44GgLOOCiOOBl+OBkw0KK+OBn+OBruOBhuOBiCzjgZHjgYTjgZnjgZENCivjgo/jgZfjgaAs44GX44KH44Gy44GhDQor44KP44Gf44GELOOBguOBpOOBlw0KK+OCj+OBn+OBquOBuSzjgaHjga/jgosNCivjgo/jgZ/jgarjgbks44GR44KT44GYDQor44KP44Gf44Gq44G5LOOBvuOBk+OBqA0KK+OCj+OBn+OBquOBuSzjgb7jgZXjga7jgooNCivjgo/jgZ/jgarjgbks44G+44GV44KG44GNDQor44KP44Gf44Gq44G5LOOBn+OBkeOBlw0KK+OCj+OBn+OBquOBuSzjgobjgYbjgZMNCivjgo/jgZ/jgarjgbks44Gf44Gk44Gy44KNDQor44KE44GOLOOBi+OBpOOChuOBjQ0KK+OChOOBlCzjgZPjgbjjgYQNCivjgoTjga/jgY4s44GK44GV44KADQor44KE44GP44GXLOOBmOOCjQ0KK+OChOOBvuOBoCzjgYvjgZrjgYLjgY0NCivjgoTjgb7jgaAs44GR44KT44GYDQor44KE44G+44GgLOOBvuOBleOBig0KK+OChOOBvuOBoCzjgb7jgZXjgojjgZcNCivjgoTjgb7jgaAs44KI44GX44GC44GNDQor44KE44G+44GgLOOChuOBsuOBoQ0KK+OChOOBvuOBoCzjgbLjgafjgYLjgY0NCivjgoTjgb7jgYzjgZ8s44G/44Gh44GC44GNDQor44KE44G+44GO44GXLOOBvuOBleOChuOBjQ0KK+OBr+OCiizjgYLjgY3jgYoNCivjgoTjgb7jgZDjgaEs44GL44Ga44Gy44GVDQor44KE44G+44GQ44GhLOOBleOBqOOBlw0KK+OChOOBvuOBkOOBoSzjgbLjgafjgY0NCivjgYLjgYrjgaTjgYss44Go44GK44KLDQor44KE44G+44GQ44GhLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOBmCzjgYLjgY3jgokNCivjgoTjgb7jgoLjgags44GL44Ga44GKDQor44KE44G+44KC44GoLOOBvuOBleOBsuOBkw0KK+OChOOBvuOCguOBqCzjgarjgYrjgbXjgb8NCivjgoTjgb7jgoLjgags44GK44GV44KADQor44KE44G+44KC44GoLOOCjOOBhOOBjQ0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgZcNCivjgoTjgb7jgoLjgags44Go44G/44KE44GZDQor44KE44G+44KC44GoLOOBqOOBl+OBsuOCjQ0KK+OChOOBvuOCguOBqCzjgajjgZfjgYoNCivjgoTjgb7jgoLjgags44KI44GX44GKDQor44KE44G+44KC44GoLOOChuOBiw0KK+OChOOBvuOCguOBqCzjgZ/jgZHjgZcNCivjgoTjgb7jgoDjgoks44G+44GV44GIDQor44KE44G+44Gq44GLLOOBvuOBleOChuOBjQ0KK+OChOOBvuOBl+OBqizjgYvjgaTjgZcNCivjgoTjgb7jgZfjgZ8s44Go44KC44GL44GaDQor44KE44G+44GX44GfLOOBqOOCguOBvw0KK+OChOOBvuOBl+OBnyzjgojjgZfjgZXjgagNCivjgoTjgb7jgZfjgZ8s44G+44GV44Gu44KKDQor44KE44G+44GmLOOBv+OBoeOBig0KK+OChOOBvuOBhuOBoSzjgbLjgo3jga7jgooNCivjgoTjgb7jgZbjgY0s44GY44KF44Gr44GhDQor44KE44G+44GW44GNLOOBkeOCk+OBmOOCjQ0KK+OChOOBvuOBluOBjSzjgYvjgZrjgbLjgo0NCivjgoTjgarjgY4s44Gy44KN44G144G/DQor44KE44Gq44GO44GgLOOBn+OBi+OChuOBjQ0KK+OChOOBquOBjuOBoCzjgYLjgY3jgbLjgacNCivjgoTjgarjgYQs44Go44GX44Gu44KKDQor44KE44Gq44GLLOOBiOOBhOOBmA0KK+OChOOBmeOBoCzjgb7jgarjgbYNCivjgoTjgZnjgaAs44Go44GX44KG44GNDQor44KE44GZ44GgLOOBquOBiuOBteOBvw0KK+OChOOBmeOCguOBqCzjgajjgoLjgYvjgZoNCivjgoTjgaTjgYss44KG44Gf44GLDQor44KE44GW44KPLOOBl+OCk+OBmA0KK+OCiOOBoCzjgobjgY3jgbLjgo0NCivjgojjganjgYzjgo8s44KK44KT44GY44KFDQor44KI44GgLOOBkeOCk+OBmA0KK+OCiOOBk+OBr+OBnyzjgbLjgajjgZcNCivjgojjgZPjgoTjgb4s44GR44GEDQor44KI44GT44KE44G+LOOBguOBjeOCiQ0KK+OCiOOCguOCiizjgobjgY3jgbLjgZUNCivjgojjga3jgoLjgaEs44Gu44G844KLDQor44KI44KN44Ga44KELOOBsuOBqOOBlw0KK+OCiOOBl+OBoCzjgYvjgZrjgYoNCivjgojjgZfjgaAs44GT44GG44GE44Gh44KNDQor44KI44GX44GgLOOBv+OBuw0KK+OBteOBmOOBleOBjSzjgZXjgajjgZcNCivjgojjgZfjgaAs44Gf44Gg44GXDQor44KI44GX44GgLOOBvuOBleOBvw0KK+OCiOOBl+OBvuOBpCzjgYTjgo/jgYoNCivjgojjgZfjgoLjgags44Gb44GN44GTDQor44KI44GX44KA44KJLOOBi+OBmuOChA0KK+OBhOOBl+OBsOOBlyzjgarjgYrjgY0NCivjgojjgZfjga4s44G/44Ga44G7DQor44Gf44GL44GuLOOBpuOBpOOChA0KK+OChuOBr+OBlyzjga7jgorjgYoNCivjgYjjgaDjgbLjgo0s44Gy44KN44Gu44KKDQor44Gv44KJ44GgLOOBsuOCjeOChA0KK+OBr+OChOOBleOBiyzjgYTjgo/jgYoNCivjgYTjgarjgYzjgY0s44GX44GS44KLDQor44GE44Gu44GG44GILOOBguOBjeOCiOOBlw0KK+OBhOOBl+OBr+OCiSzjgojjgZfjgaTjgZANCivjgZPjgZjjgb4s44Gq44GK44Gy44GVDQor44GT44GZ44GOLOOBn+OBpOOBng0KK+OBj+OBvOOBnyzjgZ/jgYvjgZcNCivjgoLjgoos44Gu44KK44GKDQor44Gq44GL44Gw44KE44GXLOOBk+OBhuOBhOOBoQ0KK+OBreOCguOBqCzjgbLjgajjgZcNCivjgavjga7jgb/jgoQs44Gm44Gk44GKDQor44GK44GM44KPLOOBoeOBr+OCiw0KK+OBiuOBn+OBqyzjgobjgZnjgZENCivjgZvjgY0s44GL44Gk44KEDQor44GX44G244Gf44GrLOOBn+OBoOOBlw0KK+OBl+OCk+OBqCzjgZ/jgaTjgoQNCivjgZ3jgbbjgYgs44GR44GE44GUDQor44Gf44GL44Gv44GXLOOBl+OCh+OBkw0KK+OBn+OBi+OBmyzjgb/jganjgooNCivjgajjgojjgaAs44G+44GV44KG44GNDQor44GG44GI44GgLOOCiuOCheOBm+OBhA0KK+OChOOBvuOCguOBqCzjgb7jgZXjgY0NCivjgoTjgb7jgZrjgb8s44GV44Go44GXDQor44KI44GX44GgLOOBn+OBi+OBlw0KK+OBguOBleOBi+OBhCzjgoTjgZnjgbLjgZUNCivjgbXjgY/jgZ8s44GX44KT44GUDQor44GL44KP44GV44GNLOOBquOCi+OBvw0KK+OBsuOCjeOBmyzjgZ/jgYvjgZcNCivjga/jgoks44Gq44GK44Gy44GVDQor44GL44GV44Gv44KJLOOBn+OBi+OBlw0KK+OBiuOBluOCjyzjgZHjgYQNCivjgYvjgajjgYYs44KB44GQ44G/DQor44Gq44GL44KA44KJLOOBvuOBleOBkw0KK+OBn+OBkOOBoSzjgY/jgb8NCivjgYLjgaDjgaEs44Gk44Go44KADQor44GC44GL44GXLOOBsuOCjeOChuOBjQ0KK+OBguOBjeOChOOBvizjgbLjgajjgZcNCivjgYLjgYrjgY0s44Gf44GR44GXDQor44GC44KJ44GNLOOBvuOBv+OBkw0KK+OBguOBleOBsizjgbLjgo3jgbLjgacNCivjgYLjgZXjga4s44GX44KT44Gf44KN44GGDQor44GC44KP44GuLOOChOOBmeOChuOBjQ0KK+OBguOCj+OBrizjgbLjgo3jgZcNCivjganjgZgs44GT44GG44GYDQor44Gp44Ge44GuLOOBquOCi+OBqOOBlw0KK+OBteOBoeOBi+OBvyzjgYvjgZrjgb8NCivjgbXjgZjjgYQs44GL44Ga44GKDQor44G144GY44GELOOCiOOBl+OBi+OBmg0KK+OBteOBmOOBhOOBiCzjgYvjgYwNCivjgZPjgo8s44Gb44Gk44GTDQor44G144GY44GX44KNLOOBkeOBhOOBhOOBoQ0KK+OBteOBmOOBnyzjgZHjgYTjgYTjgaENCivjgbXjgZjjgZ8s44Gb44GE44GI44GEDQor44G144GY44KP44KJLOOBsuOCjeOCgA0KK+OBteOBj+OBoCzjgorjgofjgZvjgYQNCivjgbXjgY/jgaAs44KI44GX44Gy44GVDQor44G144GP44GgLOOBiOOBvw0KK+OBleOBhOOBqOOBhizjgZfjgofjgZgNCivjgbXjgY/jgoTjgb4s44Go44KC44Gf44GRDQor44G144KL44Gv44GfLOOBteOBv+OBruOCig0KK+OBlOOBqCzjgajjgZfjgbLjgZMNCivjga/jgoDjgo0s44GK44GV44KADQor44Gv44GbLOOBmOOCheOCk+OBmOOCjQ0KK+OBr+OBl+OCguOBqCzjgarjgYrjgobjgY0NCivjga/jgZfjgoLjgags44Gb44GE44KEDQor44Gv44Gj44Go44KKLOOBi+OBpOOCjQ0KK+OBr+OChOOBlyzjgZHjgpPjgZgNCivjga/jgoTjgZcs44GT44GG44GE44GhDQor44Gv44KE44GXLOOBruOBtuOChA0KK+OBr+OChOOBlyzjgZfjgoXjgavjgaENCivjga/jgoTjgZcs44G+44GV44GKDQor44Gv44KE44GXLOOCiOOBhuOBkw0KK+OBsuOBsyzjgbLjgo3jgobjgY0NCivjgbLjgZDjgb4s44GT44GG44GYDQor44Gy44KJ44GELOOBquOBiuOChuOBjQ0KK+OBsuOCieOBi+OCjyzjgZ/jgaTjgYoNCivjgbLjgonjga4s44GR44KTDQor44Gy44KN44Gq44GLLOOBiuOBleOBvw0KK+OBu+OCiuOBkOOBoSzjgZjjgoXjgavjgaENCivjgbvjgZXjgYss44GT44GG44GYDQor44G744Gd44KELOOBsuOCjeOBi+OBmg0KK+OBhOOBoeOBhCzjgYrjgZXjgoANCivjgYTjgaHjgYvjgo8s44Gf44GP44Gy44GVDQor44GE44GQ44G+LOOBvuOBleOBsuOCjQ0KK+OBhOOBhOOBleOBiyzjgZjjgoXjgavjgaENCivjgYTjgYvjgo8s44GY44KF44KTDQor44GE44GR44GgLOOBi+OBpOOBsuOBkw0KK+OBhOOBkeOBoCzjgajjgZfjgYLjgY0NCivjgYTjgZHjgYzjgb8s44G+44GV44GL44GaDQor44GE44Gu44GG44GILOOBl+OBkuOBv+OBpA0KK+OBhOOBruOBhuOBiCzjgoHjgYQNCivjgZPjgbDjgoTjgZcs44G+44GV44Gk44GQDQor44GE44GX44Gw44GXLOOBsuOCjeOChuOBjQ0KK+OBhOOBl+OBoCzjgZ/jgY/jgoQNCivjgYTjgZfjgb7jgoss44Gy44KN44Gf44GLDQor44GE44GX44Ga44GLLOOBpOOBreOBqOOCgg0KK+OBhOOBnSzjgYvjgZrjgbLjgZMNCivjgYTjgajjgYYs44G/44Gu44KLDQor44GE44Go44GGLOOBruOBtuOBguOBjQ0KK+OBhOOBqOOBhizjgZXjgajjgZcNCivjgYTjgajjgYYs44Gb44GE44GYDQor44GE44Go44GGLOOBl+OBkuOChuOBjQ0KK+OBhOOBqOOBhizjgoLjgajjgbLjgo0NCivjgYTjgajjgYYs44GI44GE44GE44GhDQor44GE44KP44GfLOOBvuOChuOBvw0KK+OBi+OCiuOChCzjgYTjgo/jgYoNCivjgZjjgofjgYzjgZXjgY0s44GC44KG44GTDQor44GL44GMLOOBhOOBj+OBmOOCjQ0KK+OBi+OBkuOChOOBvizjgb7jgoLjgosNCivjgYvjgZjjgarjgb8s44GX44KNDQor44GL44G/44Gy44KJ44GfLOOBsuOBleOBguOBjQ0KK+OBi+OBquOCguOCiizjgajjgY/jgZjjgo0NCivjgYvjga3jgZMs44KE44GZ44Gy44GVDQor44GL44Gt44GTLOOCiOOBl+OChuOBjQ0KK+OBi+OBq+OCjyzjgb/jgo8NCivjgYvjgZXjgb4s44Go44GX44KG44GNDQor44GL44GbLOOBsuOBp+OBguOBjQ0KK+OBi+OBl+OCgOOCiSzjgbLjgafjgYLjgY0NCivjgYvjgZ/jgYrjgYss44GC44GN44Gy44GTDQor44GL44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBi+OBqOOBhizjgZXjgo/jgZMNCivjgYvjgajjgYYs44Gm44Gk44KEDQor44GL44Go44GGLOOCiOOBl+OBv+OBrQ0KK+OBi+OBqOOBhizjgZHjgpPjgYTjgaENCivjgYvjgo/jgaEs44GV44Go44GXDQor44GL44KP44GQ44GhLOOBm+OBhOOBhOOBoQ0KK+OBi+OCj+OBrizjgZfjgZLjgYoNCivjgYvjgo/jgZfjgb4s44GL44Ga44Gy44GVDQor44GN44GP44GhLOOBpOOCiOOBlw0KK+OBjeOCguOBqCzjgZ/jgYvjgobjgY0NCivjgY3jgoDjgoks44Gy44KN44KG44GNDQor44GN44Gu44GX44GfLOOBn+OBpOOChA0KK+OBjeOBl+OBr+OCiSzjgabjgovjgYoNCivjgY3jgZfjgYvjgo8s44KI44GX44GKDQor44GN44GfLOOBguOBjeOCiQ0KK+OBjeOBn+OBjOOCjyzjga7jgorjgb7jgZUNCivjgY3jgZ/jga4s44Gy44KN44KG44GNDQor44GN44Gf44KE44G+LOOBteOBv+OBqOOBlw0KK+OBjeOCiOOBiuOBiyzjgZHjgpPjgZgNCivjgY3jgojjgZss44GY44KF44KT44GTDQor44GT44Gw44KKLOOBkeOBhOOBmA0KK+OBk+OBsOOChOOBlyzjgZPjgZ8NCivjgZPjgbDjgoTjgZcs44GC44GN44Gy44GTDQor44GT44G844KKLOOBruOBtuOBsuOBpw0KK+OBk+OBhOOCjyzjgZHjgYTjgZMNCivjgZPjgZjjgb4s44Gh44GV44GoDQor44Gv44GX44KC44GoLOOBv+OBpOOBig0KK+OBk+OBv+OChOOBvizjgabjgaTjgZgNCivjgZPjgpPjgaks44Go44KC44GC44GNDQor44GT44KT44GpLOOCiOOBl+OBsuOCjQ0KK+OBk+OCk+OBqSzjgYvjgaTjgoQNCivjgZPjgZfjgYvjgo8s44Gm44GkDQor44GT44Gm44GM44KPLOOBpOOBkOOBguOBjQ0KK+OBk+OCjyzjgbLjgafjgobjgY0NCivjgY/jgbzjgZ8s44KK44GIDQor44GP44G844GfLOOBv+OBoeOBr+OCiw0KK+OBj+OBqeOBhizjgorjgYjjgZMNCivjgY/jgYws44Gb44GE44GTDQor44KC44KKLOOBvuOBleOCiA0KK+OBj+OBq+OBn+OBkSzjgaTjgYvjgZUNCivjgY/jgonjgYvjgZEs44Gf44Gm44GNDQor44GP44KKLOOBi+OBiuOCiw0KK+OBj+OBleOBteOBiyzjgZPjgYbjgZ/jgo3jgYYNCivjgY/jgo/jgbDjgoks44Gf44G+44G/DQor44G+44Gh44GgLOOBn+OBkeOBlw0KK+OBvuOCi+OChOOBvizjgbXjgb/jgogNCivjgZ/jgZHjgYbjgaEs44GT44GG44GE44GhDQor44G+44Gk44GwLOOBn+OBi+OBsuOCjQ0KK+OBvuOBpOOBsOOCiSzjgajjgoLjgobjgY0NCivjgb7jgaTjgaDjgYTjgoks44Gu44KK44GTDQor44G+44Gk44KC44GoLOOCiOOBmeOBkQ0KK+OBvuOBpOOCguOBqCzjgYLjgY3jgbXjgb8NCivjgb7jgaTjgarjgYws44GR44KT44GYDQor44G+44Gk44GKLOOBruOBtuOChuOBjQ0KK+OBvuOBpOOBiizjgZfjgofjgbLjgaENCivjgb7jgaTjgYos44Gy44KN44KG44GNDQor44G/44GP44GrLOOBr+OChOOBqA0KK+OBv+OBquOBjOOCjyzjgojjgZfjgbLjgo0NCivjgb/jgarjgYzjgo8s44KG44GN44Gy44KNDQor44G/44Gu44GmLOOBr+OBmOOCgQ0KK+OBv+OBnyzjgbLjgo3jgYvjgZoNCivjgb/jgajjgoEs44G+44GV44Gy44GoDQor44G/44Gk44KE44G+LOOBl+OBruOBtg0KK+OBv+OChOOBoSzjgajjgYrjgosNCivjgb/jgoTjgZgs44Gy44KN44KG44GNDQor44G/44KE44GY44G+LOOChuOBjQ0KK+OBv+OChOOBnyzjgYLjgY3jgYoNCivjgb/jgoTjgZbjgY0s44GC44Gk44GXDQor44G/44KE44GW44GNLOOBn+OBkeOCjQ0KK+OBv+OChOOBluOBqCzjgb7jgY0NCivjgb/jgoTjgZbjgo8s44KI44KK44GTDQor44G/44Ge44GQ44GhLOOCiOOBl+OBguOBjQ0KK+OBv+OBmuOBhCzjgb/jgbsNCivjgoLjgpPjga4s44G+44GV44KEDQor44KC44KKLOOBruOCiuOChuOBjQ0KK+OCguOCiizjgZfjgpPjgoQNCivjgoLjgorjgZ8s44KE44GZ44GXDQor44KC44KK44GfLOOCj+OBn+OCiw0KK+OCguOCiuOChOOBvizjgZfjgZLjgosNCivjgoDjgonjgYvjgb8s44Go44KC44GC44GNDQor44KA44KJ44GL44G/LOOCiOOBl+OBj+OBqw0KK+OCgOOCieOBi+OBvyzjgZ/jgZHjgZcNCivjgoDjgonjgb7jgaQs44GX44KF44GE44GhDQor44KA44KN44Ge44GuLOOBn+OBi+OBteOBvw0KK+OBquOBjOOBtuOBoSzjgZPjgYbjgZgNCivjgarjgYzjga4s44G/44Gk44GKDQor44Gq44GM44GbLOOBkeOBhOOBkw0KK+OBquOBjOOBn+OBqyzjgY3jgojjgYLjgY0NCivjgarjgZTjgoQs44G+44GT44GoDQor44Gq44GL44GM44KPLOOCiOOBl+OBquOCig0KK+OBquOBi+OBv+OBoSzjgbLjgo3jgY0NCivjgarjgYvjgoDjgoks44KC44Go44GTDQor44Gq44GL44KA44KJLOOBvuOBleOCiOOBlw0KK+OBquOBi+OBrizjgYjjgYTjgZgNCivjgarjgYvjgZfjgb4s44G/44Gk44Gy44KNDQor44Gr44GX44GgLOOBruOCiuOBmeOBvw0KK+OBq+OBl+OBr+OCiSzjgY/jgovjgb8NCivjgavjgZfjgoDjgoks44Go44GX44GC44GNDQor44Gr44GX44GK44GLLOOBvuOCiuOBkw0KK+OBruOBkOOBoSzjgorjgoXjgbLjgaENCivjga7jgZss44GT44GG44GE44Gh44KNDQor44GK44Gw44GfLOOBv+OBruOCiw0KK+OBiuOBoeOBguOBhCzjgZfjgpPjgZnjgZENCivjgYrjgaHjgYLjgYQs44Gy44KN44GC44GNDQor44GK44GM44KPLOOBsuOCjeOBlw0KK+OBiuOBjOOCjyzjgb/jgaTjgosNCivjgYrjgYzjgo8s44KK44KF44Gy44GhDQor44GK44GM44KPLOOBl+OBuw0KK+OBiuOBjuOBrizjgbLjgo3jgYLjgY0NCivjgYrjgZDjgoks44GL44GK44KKDQor44GT44KT44GpLOOBl+OChw0KK+OBiuOBuCzjgZjjgoXjgavjgaHjgo0NCivjgYrjgYzjgY0s44G+44GV44Gu44KKDQor44GK44Gr44GXLOOBsuOCjeOBlw0KK+OBiuOBrizjgbLjgo3jga7jgooNCivjgYrjgZ8s44GY44KF44KTDQor44GK44GX44KNLOOBguOBpOOBqA0KK+OBiuOBnyzjgZfjgpPjgoQNCivjgYrjgZ/jgZfjgo0s44GL44Ga44Gy44GTDQor44GK44GkLOOBruOBvOOCiw0KK+OBiuOBpCzjgb7jgZXjgZrjgb8NCivjgYrjgbLjgoPjgY4s44KG44GG44GYDQor44GK44Gy44KD44G+LOOBhOOBj+OBkw0KK+OBiuOBi+OCguOBqCzjgbLjgafjgbLjgZMNCivjgYrjgYvjgoTjgb4s44Gf44GL44GXDQor44GK44GR44Gf44GrLOOBvuOBleOBqA0KK+OBiuOBj+OChOOBvizjgZ/jgb/jgoQNCivjgYrjga7jgafjgoks44GL44Gk44Go44GXDQor44GK44GW44KPLOOBvuOChuOBvw0KK+OBleOBhOOBqOOBhizjgZ/jgYvjgYLjgY0NCivjgZXjgYTjgajjgYYs44KE44GZ44KG44GNDQor44GV44GE44Go44GGLOOBvuOBleOBv+OBoQ0KK+OBleOBi+OBkOOBoSzjgZjjgo0NCivjgZXjgYvjgarjgYss44Gu44KK44GC44GNDQor44GV44GL44Gr44KPLOOBvuOBleOBv+OBoQ0KK+OBleOBi+OBhuOBoSzjgbLjgo3jgZcNCivjgZXjgY/jgonjgYQs44GL44Ga44GX44GSDQor44GV44GP44KJ44GELOOBn+OBi+OBlw0KK+OBleOBrizjgbLjgafjgY0NCivjgZXjgZXjgY0s44G+44GV44GL44GaDQor44GV44GV44GNLOOCgeOBkOOBvw0KK+OBleOBleOBjSzjgYjjgYTjgZgNCivjgZXjgZXjgb4s44Gh44Gv44KLDQor44GV44Go44GGLOOBsuOCjeOBtuOBvw0KK+OBleOBqOOBhizjgb/jgaTjgojjgooNCivjgZXjgajjgYYs44Gf44Gk44GTDQor44GV44Go44GGLOOBj+OBv+OBkw0KK+OBq+OBl+OBvuOBnyzjgbLjgafjgajjgZcNCivjgZXjgo/jgaAs44G/44Gu44KLDQor44Gb44KT44GwLOOBi+OBmuOBsuOBpw0KK+OBm+OBqCzjgabjgovjgYoNCivjgZfjgbbjgoQs44Gf44GL44Gu44G2DQor44GX44GELOOBsuOCjeOBi+OBmg0KK+OBl+OBvuOBoCzjgoLjgajjgoANCivjgZfjgb7jgaAs44KI44KK44GTDQor44GK44GL44KC44GoLOOBqOOBl+OBn+OBiw0KK+OBl+OBquOBjOOCjyzjgaTjgajjgoANCivjgZfjgpPjgYvjgo8s44G+44GV44KG44GNDQor44GX44KT44GN44KFLOOBn+OBj+OChA0KK+OBl+OBruOBoCzjgb7jgZXjgb8NCivjgZfjga7jga/jgoks44GI44KKDQor44GC44GV44GL44KPLOOCiuOBiA0KK+OBl+OBiuOBr+OCiSzjgb7jgZXjgYvjgZoNCivjgZfjgo3jgZ8s44Gf44GR44KEDQor44GZ44GO44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBmeOBjuOChOOBvizjgZ/jgYvjgZcNCivjgZnjgZDjgaEs44G/44KPDQor44KC44KN44Go44G/LOOBpuOBpOOBig0KK+OBmeOBmuOBjSzjgb7jgZXjgbLjgZUNCivjgZ/jgZDjgaEs44KG44Gy44GhDQor44Gf44GQ44GhLOOCiOOBl+OBruOCig0KK+OBn+OBr+OCiSzjgobjgY3jgYoNCivjgZ/jgYvjgY4s44G/44GV44GTDQor44Gf44GL44Gv44GXLOOBk+OBuOOBhA0KK+OBn+OBi+OBhCzjgb/jgYgNCivjgZ/jgYvjgoTjgb4s44G+44GV44Go44GXDQor44Gf44GRLOOBleOBoeOBiA0KK+OBn+OBkeOBsOOChOOBlyzjgbLjgZXjgoQNCivjgZ/jgZHjgYvjgo8s44G+44GV44KG44GNDQor44Gf44GR44GG44GhLOOBpuOCi+OBiA0KK+OCj+OBn+OBquOBuSzjgZvjgYTjgYTjgaENCivjgZ/jgZHjgYbjgaEs44GL44GK44KLDQor44Gf44G/44KELOOBvuOBleOBqA0KK+OBn+OCgOOCiSzjgYvjgaTjgbLjgo0NCivjgZ/jgarjgbks44GL44Ga44Gy44GnDQor44Gf44Gq44GLLOOBjeOCiOOBn+OBiw0KK+OBn+OBquOBiyzjga7jgbbjgZMNCivjgZ/jgarjgYss44Gv44KL44GTDQor44Gf44Gr44GQ44GhLOOBvuOBleOBteOBvw0KK+OBn+OBq+OBkOOBoSzjgYLjgY3jgYoNCivjgZ/jgavjgoDjgoks44KG44GG44GYDQor44Gf44Gu44GG44GILOOBsuOCjeOChuOBjQ0KK+OBn+OCi+OBleOCjyzjgojjgZfjgYoNCivjgZ/jgZfjgo0s44GL44Ga44GKDQor44Gm44KJ44GgLOOBkeOCk+OBmA0KK+OBqOOBjCzjgYvjgZrjgZMNCivjgajjgYzjgZcs44Gq44GK44GNDQor44Go44GULOOCiuOCheOBmA0KK+OBqOOBj+OBquOBjCzjgZjjgoXjgpPjgZMNCivjgajjgoLjga4s44GL44G744KLDQor44Go44KI44GgLOOBk+OBhuOBmA0KK+OBpOOBoeOChCzjgbLjgafjgY0NCivjgaTjgYvjga/jgoks44G+44GV44GL44GaDQor44GG44KJ44GV44GNLOOBsuOCjeOBlw0KK+OCj+OBoCzjgb7jgZXjgbLjgo0NCivjgo/jgaAs44GR44GE44GTDQor44KP44Gf44Gq44G5LOOBruOBtuOBkw0KK+OCj+OBn+OBquOBuSzjgaTjgojjgZcNCivjgoTjgY7jgazjgb4s44GC44Gk44GXDQor44KE44G+44GgLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOBoCzjgZ/jgaTjgYoNCivjgoTjgb7jgaAs44GC44GN44Gy44KNDQor44KE44G+44KC44GoLOOBguOBjeOBkw0KK+OChOOBvuOCguOBqCzjgajjgZfjga/jgosNCivjgoTjgb7jgoLjgags44KG44GN44Gy44GTDQor44KE44G+44KC44GoLOOBsuOBp+OBv+OBrQ0KK+OChOOBvuOBquOBiyzjgZfjgZLjgYoNCivjgoTjgb7jgarjgYss44GX44KT44KEDQor44KE44G+44GX44GfLOOBguOChOOBkw0KK+OBsuOBkOOBoSzjgYvjgZrjgb8NCivjgoTjgb7jgZbjgY0s44KI44GY44KNDQor44KE44Gq44GOLOOBsuOCjeOBguOBjQ0KK+OChOOBmeOBoCzjga7jgbbjgbLjgo0NCivjgoTjgZnjgYgs44KG44GG44GYDQor44KI44GT44GILOOBqOOCguOChOOBmQ0KK+OCiOOBk+OChOOBvizjgozjgYTjgZMNCivjgojjga3jga/jgoks44G+44GV44Go44GXDQor44KI44Gt44G/44GkLOOBteOBv+OBig0KK+OCiOOCiuOBvuOBpCzjgZHjgYTjgZMNCivjgojjgZfjgaAs44Go44GX44GC44GNDQor44KI44GX44GuLOOBsuOBleOBlw0KK+OCiOOBl+OBn+OBjSzjgZHjgYTjgZgNCivjgobjgYvjgo8s44G+44GV44GC44GNDQor44KG44KKLOOBsuOBp+OBqA0KK+OCguOCiizjgZ/jgaTjgoQNCivjgZXjgZXjgY0s44KG44GN44Gy44KNDQor44GX44KJ44Gv44G+LOOBoeOBsuOCjQ0KK+OBpuOCk+OBseOBjyzjgYvjgYrjgosNCivjgYbjgaHjgaAs44G+44GV44Gy44KNDQor44KE44G+44GG44KJLOOBmOOCheOCk+OBmA0KK+OBvuOBpOOBkOOBvizjgbXjgb/jga4NCivjgYLjgbks44Gy44KN44GXDQor44GC44G5LOOBruOBtuOChuOBjQ0KK+OBguOBuSzjgajjgZfjgoQNCivjgYLjgbks44Gu44G244GC44GNDQor44GC44Gg44GhLOOCiuOBiOOBkw0KK+OBguOBhOOBr+OCiSzjgZPjgYbjgYTjgaENCivjgYLjgZjjgb4s44G+44GT44GoDQor44GC44GL44GV44GLLOOBqOOCguOBkw0KK+OBguOBjeOCguOBqCzjgbXjgb/jgbLjgo0NCivjgYLjgY3jgoTjgb4s44G/44Gk44Gy44KNDQor44GC44GN44KE44G+LOOBiuOBleOCgA0KK+OBguOBj+OBrSzjgZjjgoXjgpPjgoQNCivjgYLjgb7jga4s44Go44KC44GKDQor44GC44G+44GuLOOBn+OBi+OBsuOBlQ0KK+OBguOCgeOBv+OChCzjgYvjgaTjgbLjgZMNCivjgYLjgpPjganjgYYs44Gf44GR44Gy44KNDQor44GC44KT44Gp44GGLOOChuOBsuOBoeOCjQ0KK+OBguOCk+OBqeOBhizjgarjgYrjgoQNCivjgYLjgpPjgZjjgY0s44Go44KLDQor44GC44KT44G644GE44GYLOOBteOBv+OBkw0KK+OBguOBiuOBjSzjgbLjgo3jgobjgY0NCivjgYLjgYrjgY0s44GL44Gk44G/DQor44GC44GK44GNLOOBi+OBmuOBig0KK+OBguOBiuOBjSzjgarjgYrjgYLjgY0NCivjgYLjgYrjgY0s44Gq44Gq44GKDQor44Gv44KJ44GX44G+LOOBpOOCiOOBlw0KK+OBguOBiuOBjSzjgoTjgZnjgYLjgY0NCivjgYLjgYrjgY0s44Go44GK44KLDQor44GC44GK44KE44GOLOOBk+OBng0KK+OBguOBiuOChOOBvizjgZ/jgYvjgZcNCivjgYLjgYrjgoTjgb4s44Gf44Gk44KEDQor44GC44KJ44GELOOBsuOCjeOBlw0KK+OBguOCieOBjSzjgb7jgarjgbYNCivjgYLjgonjgY0s44Gh44GC44GNDQor44GC44KJ44GfLOOBvuOBleOBpOOBkA0KK+OBguOCieOChCzjgb/jgY0NCivjgZPjgbDjgoTjgYvjgo8s44G/44KPDQor44GC44KK44GfLOOBi+OBmuOBig0KK+OBguOBleOBsCzjgobjgYbjgZMNCivjgYLjgZXjgYjjgaAs44GX44KF44Gr44GhDQor44GC44GV44GLLOOCiOOBl+OBkw0KK+OBguOBleOBj+OCiSzjgZfjgZLjga/jgosNCivjgYLjgZXjga4s44KG44GN44GTDQor44GC44GV44GuLOOBmOOCheOCkw0KK+OBguOBl+OBuSzjgajjgZfjgYLjgY0NCivjgYLjgo/jgb/jgoQs44KK44GLDQor44GC44GW44G/LOOBpOOBqOOCgA0KK+OBguOBnOOChOOBquOBjizjgarjgYrjgbLjgZUNCivjgYLjgZrjgb4s44Gf44GL44KG44GNDQor44GC44Ga44G+LOOCiOOBsuOBoQ0KK+OBguOBmuOBvizjgZHjgYTjgZnjgZENCivjgbDjgbAs44GT44GG44GE44GhDQor44Gw44GwLOOBvuOBk+OBqA0KK+OBsOOBsCzjgYvjgaTjgZgNCivjgbDjgarjgYss44G/44GNDQor44GV44Gf44GRLOOBl+OCk+OBhOOBoQ0KK+OBoeOBsCzjgoTjgZnjgbLjgo0NCivjgaHjgY7jgoks44Gq44KL44Gy44GoDQor44Gh44Gv44KJLOOCiOOBl+OChuOBjQ0KK+OBoeOBi+OBhCzjgarjgoDjgZkNCivjgaHjgofjgpMs44Go44KC44Gh44GLDQor44Gh44KF44G+LOOBn+OBpOOBig0KK+OBoOOBhCzjgZfjgoXjgZgNCivjgaDjgYTjgYos44Go44KC44GC44GNDQor44Gg44GmLOOBvuOBleOBsuOBkw0KK+OBp+OBkOOBoSzjgbLjgo3jgobjgY0NCivjgafjgo8s44Gk44Go44KADQor44Gp44GELOOBsuOCjeOBvw0KK+OBiOOBs+OBleOCjyzjgorjgYgNCivjgarjgYvjgoDjgoks44Gf44GL44KG44GNDQor44GI44GE44KC44KKLOOBquOBiuOChuOBjQ0KK+OBiOOCk+OBqSzjgojjgZfjgYvjgZoNCivjgYjjgpPjgaks44GL44Gk44KG44GNDQor44GI44Gu44KC44GoLOOBoOOBhOOBmeOBkQ0KK+OBteOBmOOBhCzjgYvjgZrjgoQNCivjgbXjgZjjgYQs44GR44GE44GTDQor44G144GY44GELOOCguOBqOOBr+OCiw0KK+OBteOBmOOBhCzjga7jgbbjgbLjgZMNCivjgbXjgZjjgYQs44Gf44GL44G144G/DQor44G144GY44GL44KPLOOBguOBpOOBlw0KK+OBteOBmOOCguOCiizjgYLjgaTjgZMNCivjgYLjgYrjgY0s44Gf44GR44GXDQor44G144GY44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBteOBmOOBiuOBiyzjgbLjgafjgY0NCivjgbXjgZjjgZ8s44Gy44KN44GXDQor44G144GY44GfLOOBk+OBhuOBmA0KK+OBteOBi+OBiizjgYjjgb/jgZMNCivjgbXjgY/jgaAs44Gf44GE44GeDQor44G144GP44GgLOOBsuOCjeOBv+OBpA0KK+OBteOBj+OBhCzjgZ/jgYvjgZMNCivjgbXjgY/jgYQs44Gv44KL44G/DQor44G144GP44KC44GoLOOBquOBiuOBjQ0KK+OBteOBj+OBl+OBvizjgZ/jgYvjgYoNCivjgbXjgY/jgZfjgb4s44GR44GE44GTDQor44Gy44GuLOOBsuOCjeOBi+OBmg0KK+OBteOBj+OBluOCjyzjgZHjgpPjgYTjgaHjgo0NCivjgbXjgY/jgZbjgo8s44Gf44Gk44Gu44KKDQor44G144Gq44GgLOOBv+OBpOOCiOOBlw0KK+OBteOCi+OBoOOBpizjgajjgZfjgYLjgY0NCivjgbXjgovjgoQs44GX44Gu44G2DQor44G144Gf44KA44KJLOOBguOBjeOBkw0KK+OBquOBi+OCgOOCiSzjgYLjgY3jgokNCivjgZTjgags44Gq44GK44KEDQor44GU44GoLOOBpuOBpOOCjQ0KK+OBlOOBqCzjgoTjgZnjgbLjgZUNCivjgZTjgags44KA44Gk44GKDQor44Gv44GwLOOBl+OCk+OBhOOBoQ0KK+OBr+OBoeOChOOBvizjgYvjgaTjgbLjgZMNCivjga/jgY7jgo/jgoks44Gy44KN44GXDQor44Gv44G+44G5LOOBsuOBp+OBig0KK+OBr+OBvuOBoCzjgZPjgYbjgZgNCivjga/jgb7jgaAs44Gy44Gn44Gf44GLDQor44G+44GI44GK44GLLOOBsuOBp+OBruOBtg0KK+OBr+OBquOBvyzjga7jgbbjgZMNCivjga/jgarjgYrjgYss44GV44GhDQor44Gb44GW44GELOOBjeOCh+OBkw0KK+OBr+OCiSzjgb/jgY3jgZMNCivjgZXjgajjgYYs44KG44GG44GTDQor44Gv44KJLOOBkeOBhOOBkw0KK+OBr+OCieOBoCzjgZHjgYTjgZnjgZENCivjga/jgonjgaAs44G/44GN44KEDQor44Gv44KJ44GgLOOCguOBqOOBsuOBlQ0KK+OBr+OCieOBoCzjgZfjgZLjgY0NCivjga/jgonjgaAs44GL44Ga44KEDQor44Gv44KK44G+LOOBi+OBhOOBoeOCjeOBhg0KK+OBu+OCk+OBvizjgojjgYbjgZMNCivjga/jgovjgoTjgb4s44KI44GG44GTDQor44Gv44GbLOOBvuOBleOBvw0KK+OBr+OBm+OBjOOCjyzjgZfjgpMNCivjga/jgZvjgYzjgo8s44Gf44GL44KG44GNDQor44Gv44Gb44GM44KPLOOCiOOBl+OBvw0KK+OBr+OBm+OBjOOCjyzjgZ/jgYvjgbLjgacNCivjga/jgZfjgZDjgaEs44Gy44Go44GXDQor44Gv44GX44KC44GoLOOChOOBmeOBsuOBpw0KK+OBr+OBl+OCguOBqCzjgYLjgY3jgZMNCivjga/jgZfjgZrjgoEs44Gq44GK44GNDQor44Gv44GX44Ga44KBLOOCiuOCh+OBmA0KK+OBr+OBl+OBmuOCgSzjgZvjgYTjgZQNCivjga/jgZ8s44GC44Gk44GXDQor44Gv44Gf44GuLOOBquOBpOOBvw0KK+OBr+OBn+OBrizjgYjjgYTjgYTjgaENCivjga/jgajjgoos44GL44Ga44Gy44GTDQor44Gv44Gj44Go44KKLOOBvuOBleOBguOBjQ0KK+OBr+OBo+OBqOOCiizjgb/jgaTjga7jgooNCivjga/jgaPjgajjgoos44Gq44GK44GNDQor44Gv44Gj44Go44KKLOOBruOBtuOBguOBjQ0KK+OBr+OBo+OBqOOCiizjgZfjgZLjgosNCivjga/jgaPjgajjgoos44KI44Gy44GhDQor44Gv44Gj44Go44KKLOOBn+OBpOOBig0KK+OBr+OChOOBi+OCjyzjgoTjgojjgYQNCivjga/jgoTjgYvjgo8s44GR44KT44Gf44KN44GGDQor44Gv44KE44G/LOOBguOBjeOBsuOBkw0KK+OBr+OChOOBlyzjgbLjgajjgZcNCivjga/jgoTjgZcs44GL44Gk44GTDQor44Gv44KE44GXLOOBi+OBmuOChA0KK+OBr+OChOOBlyzjgZPjgYbjgZ/jgo3jgYYNCivjga/jgoTjgZcs44G/44KPDQor44GV44GV44Gf44GrLOOBl+OCheOCk+OBmeOBkQ0KK+OBr+OChOOBlyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjga/jgZbjgb4s44Gh44GL44KJDQor44G444KT44G/LOOBi+OBmuOBqOOCgg0KK+OBsuOBsyzjgarjgYrjgY0NCivjgbLjgaDjgYss44Gf44GR44GXDQor44Gy44Gg44GLLOOCiOOBhOOBoQ0KK+OBsuOBoOOBiyzjgYLjgY3jgbLjgZMNCivjgbLjgYjjgaAs44KG44GNDQor44Gy44GM44GNLOOBleOBqOOBlw0KK+OBsuOBjOOBlyzjgb7jgZXjgY0NCivjgbLjgYTjganjgoEs44KP44Gf44KLDQor44Gy44GY44GP44KNLOOBkeOBhOOBkw0KK+OBteOBj+OBhCzjgarjgYrjgb8NCivjgbLjgb4s44GZ44G/44Gy44GoDQor44Gy44GK44GNLOOBsuOBp+OBguOBjQ0KK+OBsuOCieOBhCzjgobjgb/jgZMNCivjgb/jgY0s44G+44GV44Gf44GLDQor44Gy44KJ44GuLOOBvuOChuOBvw0KK+OBsuOCieOBrizjgoTjgZnjgbLjgo0NCivjgbLjgonjgZ8s44GC44GN44KJDQor44Gy44KJ44Gk44GLLOOBvuOBleOBruOCig0KK+OBu+OBoCzjgZvjgYTjgYTjgaENCivjgbLjgonjgoTjgb4s44GL44Gq44GTDQor44Gy44KN44G5LOOBqOOCguOBvw0KK+OBsuOCjeOBhCzjgajjgZMNCivjgbLjgo3jgZXjgo8s44KG44GG44GTDQor44Gy44KN44GV44KPLOOBn+OCjeOBhg0KK+OBsuOCjeOBmeOBiCzjgb/jgaHjgYvjgZoNCivjgbLjgo3jgZ8s44GX44KH44GYDQor44Gv44KE44G+LOOCiOOBl+OBsuOBlQ0KK+OBsuOCjeOCj+OBn+OCiizjgbLjgo3jgb/jgaENCivjgbLjgZXjgoLjgags44Gb44GE44GE44GhDQor44Gy44GV44GuLOOBhOOBleOBig0KK+OBsuOBleOChuOBjSzjgojjgZfjgY0NCivjgbLjgZfjgaAs44Go44KB44GEDQor44Gy44GX44Gf44GrLOOBvuOCig0KK+OCj+OBoCzjgb7jgZXjgobjgY0NCivjgbLjgoTjgb4s44G144GN44KIDQor44GC44KK44GP44KJLOOBi+OBmuOBsuOCjQ0KK+OBu+OCk+OBoCzjgZfjgo0NCivjgbvjgpPjgaAs44G144G/44GL44GaDQor44G744KT44GULOOBsuOCjeOBjQ0KK+OBu+OCk+OBvizjgarjgYrjgZMNCivjgbvjgpPjgb4s44GN44GP44G/DQor44G+44Gk44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBu+OCiizjgb7jgZXjgbLjgo0NCivjgbvjgoos44Gq44GK44GTDQor44G744KK44G5LOOBmOOCheOCk+OBkw0KK+OBu+OCiuOBiCzjgYrjgZXjgoANCivjgbvjgorjgYgs44KG44GG44GTDQor44G744KK44GILOOBleOChuOCig0KK+OBu+OCiuOBhuOBoSzjgb/jgYvjgZMNCivjgbvjgZfjgbAs44KI44GX44GC44GNDQor44G744GX44GL44KPLOOChuOBi+OCig0KK+OBi+OBqOOBhizjgbLjgo3jgZcNCivjgbvjgZfjgaos44KE44GZ44GXDQor44G744KKLOOBteOBv+OBiA0KK+OBu+OBl+OBrizjga7jgbbjgbLjgZMNCivjgbvjgZ3jgaAs44KG44Gf44GLDQor44G744Gj44GfLOOBv+OBruOCiw0KK+OBu+OBoeOBqSzjgZHjgYTjgZnjgZENCivjgYTjgbbjgYss44G+44GV44GoDQor44GE44Gh44GL44KPLOOChuOBsuOBoQ0KK+OBhOOBoeOBi+OCjyzjgYLjgY3jga7jgbYNCivjgYTjgaHjgb7jgZks44GR44KT44GfDQor44GE44Gh44Gu44GbLOOBvuOBquOBtg0KK+OBhOOBpyzjgYLjgY3jgagNCivjgYTjgYzjgonjgZcs44Go44GX44KG44GNDQor44GE44GM44GfLOOBguOBjeOBruOCig0KK+OBhOOBhCzjgb7jgZXjgbLjgZMNCivjgYTjgYTjgaAs44Gf44Gg44GXDQor44GE44GE44GgLOOCiOOBl+OBteOBvw0KK+OBhOOBhOOBoCzjgajjgYrjgosNCivjgYTjgYTjga4s44Gy44Gn44GKDQor44GE44GE44KI44KKLOOBquOBiuOBjQ0KK+OBhOOBhOOBmuOBiyzjgZPjgYbjgYTjgaENCivjgYTjgYvjgovjgY4s44Gu44KK44KG44GNDQor44GE44GL44KPLOOBn+OBi+OBlw0KK+OBhOOBkeOBoSzjga7jgbbjgYoNCivjgYTjgZHjgaAs44GV44GK44KKDQor44GE44GR44GgLOOBn+OBi+OChA0KK+OBhOOBkeOBoCzjgojjgZfjgabjgosNCivjgYTjgZHjgaAs44Gy44Go44GXDQor44GE44GR44GM44G/LOOBvuOCiuOBkw0KK+OBhOOBkeOBmOOCiizjgaTjgajjgoANCivjgYTjgZHjgZ/jgY0s44GL44Gk44G/DQor44GE44GP44KC44GoLOOBvuOBleOBsuOBkw0KK+OBhOOBvuOBhCzjgb7jgZXjgagNCivjgYTjgb7jgYQs44GI44GE44GE44Gh44KN44GGDQor44G744Gd44GELOOChuOCiuOBkw0KK+OBhOOBvuOBhCzjgb7jgZXjgojjgZcNCivjgYTjgb7jgavjgZcs44G+44GV44KG44GNDQor44GE44Gq44GgLOOBl+OCk+OBmA0KK+OBhOOBquOBjOOBjSzjgYTjgaHjgo3jgYYNCivjgYTjgarjgZIs44G/44Gh44Gv44KLDQor44Gv44GW44G+LOOBvuOBk+OBqA0KK+OBhOOBrizjgYvjgaTjgoQNCivjgYTjga7jgb7jgZ8s44GR44GE44GZ44GRDQor44GE44Gu44GG44GILOOBvuOBvw0KK+OChOOBmeOBi+OCjyzjgZPjgYbjgYTjgaHjgo0NCivjga/jgoss44KC44Go44Gv44KLDQor44GE44Gu44GG44GILOOBn+OBi+OBkw0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgobjgY0NCivjgYTjga7jgYbjgYgs44Go44KC44Gy44KNDQor44GE44Gu44GG44GILOOBi+OBmuOChA0KK+OBhOOBiuOBjSzjgY/jgavjgYrjgb8NCivjgYTjgorjgYgs44GX44KTDQor44GE44GV44GLLOOBn+OBkeOBlw0KK+OBhOOBleOBiyzjgozjgYTjgZMNCivjgYrjgoLjgoos44GR44KT44Gf44KN44GGDQor44GE44GX44Gw44GXLOOBleOBtuOCjQ0KK+OBhOOBl+OBoCzjgZ/jgZHjgZcNCivjgYTjgZfjgaAs44Gv44GY44KBDQor44GE44GX44Gv44KJLOOBvuOBquOBtg0KK+OBhOOBl+OBr+OCiSzjgZHjgpPjgYTjgaENCivjgbLjgonjgags44Gy44GV44KC44GoDQor44GE44GX44GELOOBmOOCheOCkw0KK+OBhOOBl+OBhCzjgZHjgYTjgZ/jgo3jgYYNCivjgYTjgZfjgYQs44KK44GIDQor44GE44GX44GELOOBn+OBi+OBsuOBqA0KK+OBhOOBl+OBhCzjgajjgYrjgosNCivjgYTjgZfjgYQs44Gm44KL44GKDQor44Gv44Gt44GE44GXLOOBpOOBqOOCgA0KK+OBhOOBl+OBhCzjgbXjgb/jga7jgooNCivjgYTjgZfjgYvjgo8s44Gy44KN44Gy44GVDQor44GE44GX44GL44KPLOOBvuOBleOBv+OBoQ0KK+OBhOOBl+OBi+OCjyzjga7jgbbjgobjgY0NCivjgYTjgZfjgYvjgo8s44Go44GK44KLDQor44GE44GX44GL44KPLOOCj+OBn+OCiw0KK+OBhOOBl+OBiuOBiyzjgZHjgpPjgYTjgaHjgo0NCivjgYTjgZfjgaTjgYss44G+44Gq44G2DQor44GE44GX44KP44GfLOOBkeOBhOOBhOOBoQ0KK+OBhOOBl+OBluOBiyzjgYbjgonjgokNCivjgYTjgZfjgZbjgYss44KI44GX44GoDQor44GE44GX44GW44GNLOOBr+OCi+OBig0KK+OBhOOBl+OBmuOBjSzjgbLjgafjgYoNCivjgYTjgZ0s44GR44GE44GY44KNDQor44GE44Gd44GM44GELOOBv+OBjeOBig0KK+OBhOOBn+OBsCzjgYLjgaTjgZcNCivjgYTjgajjgYYs44Gv44KL44GKDQor44GE44Go44GGLOOBkeOBhOOBmA0KK+OBhOOBqOOBhizjgb7jgZXjgZMNCivjgYTjgajjgYYs44GX44KT44GZ44GRDQor44GE44Go44GGLOOChOOBmeOBlw0KK+OBhOOBqOOBhizjgojjgYbjgZMNCivjgbLjgaDjgYss44KI44GZ44GRDQor44GE44Go44GGLOOCiOOBl+OBsuOBkw0KK+OBhOOBqOOBhizjgobjgYsNCivjgavjgZcs44Gu44KK44GTDQor44GE44KP44Gg44KMLOOCiOOBl+OChuOBjQ0KK+OBhOOCj+OBr+OBlyzjgajjgZfjgobjgY0NCivjgYTjgo/jgY0s44GC44KK44Gy44KNDQor44GE44KP44KC44GoLOOBk+OBhuOBmA0KK+OBhOOCj+OBleOBjSzjgYjjgYTjgYTjgaENCivjgbLjgonjgaTjgYss44GT44GG44GYDQor44GE44KP44GV44GNLOOBquOBiuOBqA0KK+OBhOOCj+OBleOBjSzjgZfjgZLjgbLjgagNCivjgYTjgo/jgZXjgY0s44KG44GG44GTDQor44GY44KT44GQLOOChuOBhuOBmA0KK+OBhOOCj+OBl+OBkizjgYTjga7jgooNCivjgYTjgo/jgZ8s44G+44GV44Gy44KNDQor44GY44KT44GQLOOBvuOBleOBsuOCjQ0KK+OBmOOCh+OBlCzjgbDjgpMNCivjgYvjgYws44GV44Go44GXDQor44GL44GM44G2LOOBguOBpOOBlw0KK+OBi+OBjuOChOOBvizjgbLjgafjgaTjgZANCivjgYvjgYQs44G+44GV44Gy44KNDQor44GL44GE44GgLOOChuOBjQ0KK+OBi+OBhOOBoCzjgZfjgpPjgYTjgaENCivjgYvjgb7jgaEs44KI44GX44Gu44KKDQor44GL44G+44GgLOOChuOBhuOBkw0KK+OBi+OBvuOBu+OCiizjgb/jgZrjgbsNCivjgYvjgb7jgZ8s44KI44GX44Gu44KKDQor44GL44KB44GgLOOBruOBtuOBi+OBmg0KK+OBi+OCgeOBhCzjgbLjgo3jgZcNCivjgYvjgb/jga4s44Gy44KN44KG44GNDQor44GL44G/44GuLOOBvuOBleOChuOBjQ0KK+OBi+OBv+OBqOOBrizjgbLjgo3jgobjgY0NCivjgYvjgb/jgoQs44GV44Go44GTDQor44GL44G/44KELOOBvuOBk+OBqA0KK+OBi+OBv+OChOOBvizjgbLjgo3jgZcNCivjgYvjgoLjgpMs44KI44GX44Gu44KKDQor44GL44KC44KTLOOChOOBmeOBi+OBmg0KK+OBi+OCkyzjgYvjgaTjgoQNCivjgYvjgarjgYQs44GX44KT44GY44KNDQor44GL44Gq44GELOOBsuOBp+OBig0KK+OBi+OBquOBmCzjgobjgZ4NCivjgYvjgarjgYrjgYss44Gu44KK44KG44GNDQor44GL44Gq44GW44KPLOOBruOCiuOBvuOBlQ0KK+OBi+OCk+OBuSzjgbLjgo3jgobjgY0NCivjgYvjgpPjgaAs44G+44GV44GTDQor44GL44KT44GgLOOBqOOCguOBsuOBkw0KK+OBi+OBreOBjSzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgYvjga3jgY3jgogs44G+44KG44G/DQor44GL44Gt44GTLOOBteOBv+OBsuOBkw0KK+OBi+OBreOBl+OBnyzjgZ/jgZHjgZcNCivjgYvjga3jgoTjgZks44Gy44Go44GXDQor44GL44GuLOOCiuOCheOBmA0KK+OBi+OBrizjga7jgbbjgobjgY0NCivjgYvjgpPjgZrjgYQs44Gh44GC44GNDQor44GL44GV44Gv44KJLOOBkeOCk+OBjg0KK+OBi+OBleOBr+OCiSzjgbLjgafjgY0NCivjgYvjgZXjgYQs44GI44GE44Gf44KN44GGDQor44GL44GV44G+44GkLOOBqOOCguOBruOCig0KK+OBi+OBleOCgizjga7jgorjgZMNCivjgZ/jgb7jgZ/jgass44GZ44G/44GTDQor44GL44GX44KP44GOLOOBvuOBleOChuOBjQ0KK+OBi+OBl+OCj+OBkOOCiSzjgZ/jgb/jgYoNCivjgYvjgZ/jgaAs44GL44Gk44Gy44GVDQor44GL44Gf44GK44GLLOOBleOBiuOCig0KK+OBu+OBlyzjgoTjgZnjgZ/jgYsNCivjgYvjgZ/jgYrjgYss44Gh44GIDQor44GL44Go44GGLOOBiOOBhOOBmeOBkQ0KK+OBi+OBqOOBhizjgbLjgo3jgagNCivjgYvjgajjgYYs44Gy44KN44KG44GNDQor44GL44Go44GGLOOBi+OBmuOBsuOCjQ0KK+OBi+OBqOOBhizjgarjgYrjgoQNCivjgYvjgajjgYYs44GX44KT44GYDQor44GL44Go44GGLOOBn+OBkeOBlw0KK+OBi+OBqOOBhizjgZ/jgb/jgobjgY0NCivjgYvjgajjgYYs44Gq44Gq44GTDQor44GL44Go44GuLOOBsuOBp+OBsuOBlQ0KK+OBi+OBpOOCgOOCiSzjgYjjgYTjgYTjgaENCivjgYvjgo/jgbDjgZ8s44GP44Gr44Go44GXDQor44GL44KP44GU44GILOOBkeOCk+OBhOOBoeOCjQ0KK+OBi+OCj+OBkOOBoSzjgZfjgb4NCivjgYvjgo/jga/jgoks44KG44KK44G/DQor44GL44GX44KA44KJLOOBsuOBp+OChuOBjQ0KK+OBi+OCj+OBhCzjgZXjgaHjgZMNCivjgYvjgo/jgYQs44Gq44GK44GNDQor44GL44KP44KC44GoLOOBsuOCjeOBqA0KK+OBi+OCj+OCgOOCiSzjgZfjgoXjgZgNCivjgYvjgo/jgoDjgoks44Gy44KN44GNDQor44GL44KP44GqLOOChOOBmeOChuOBjQ0KK+OBi+OCj+OBqizjgoLjgorjgbLjgo0NCivjgYvjgo/jgarjgb8s44GX44KT44GE44GhDQor44GL44KP44GuLOOCiuOCh+OBnw0KK+OBi+OCj+OBmyzjgZHjgYTjgZMNCivjga/jgonjgaAs44Gm44KL44Gy44GTDQor44GL44KP44GX44G+LOOBmOOCheOCk+OBkw0KK+OBi+OBluOBvyzjgb/jgaHjgoQNCivjgYvjgZrjgZXjgo8s44GN44KI44GXDQor44GN44Gw44KE44GXLOOBsuOBp+OBjQ0KK+OBjeOBoCzjgYTjgaHjgo3jgYYNCivjgY3jga/jgoks44GC44GN44KJDQor44GN44GP44GhLOOBk+OBhuOBmA0KK+OBjeOBj+OBoSzjgb7jgZnjgb8NCivjgZXjgYTjgajjgYYs44KG44GG44GTDQor44GN44GP44GELOOBquOBiuOBvw0KK+OBjeOCguOBqCzjgbLjgo3jgobjgY0NCivjgY3jgoDjgoks44G+44Gq44G2DQor44GN44KA44KJLOOBleOBqOOCiw0KK+OBjeOCgOOCiSzjgZfjgoXjgZgNCivjgY3jgoDjgoks44KG44GN44Gy44GoDQor44GN44KA44KJLOOBvuOBleOBi+OBmg0KK+OBjeOBrizjgbLjgafjgbLjgZMNCivjgY3jgorjga4s44GX44KT44GYDQor44GN44GV44Gs44GNLOOBmOOCheOBq+OBoeOCjQ0KK+OBjeOBlyzjgZfjgoXjgZMNCivjgY3jgZcs44Gu44G244GTDQor44GN44GX44GgLOOBquOBiuOBqA0KK+OBjeOBl+OBi+OCjyzjgoTjgZnjgbLjgo0NCivjgbLjgonjgaYs44KG44Gy44GhDQor44GN44GX44Gq44G/LOOBn+OBkeOBlw0KK+OBjeOBnSzjgojjgZfjgbLjgZMNCivjgY3jgZ8s44Gy44KN44GXDQor44GN44Gf44GM44KPLOOBhOOBoeOCjeOBhg0KK+OBjeOBn+OBmOOBvizjgZHjgpPjgZgNCivjgY3jgZ/jgZjjgb4s44Gk44KI44GXDQor44GN44Gf44KA44KJLOOCiOOBhuOBkw0KK+OBjeOBn+OBrizjga7jgbbjgobjgY0NCivjgY3jgZ/jgZbjgY0s44Gk44KI44GXDQor44GN44Gf44GW44KPLOOBqOOBl+OBpOOBkA0KK+OBjeOCiOOBr+OCiSzjgZ/jgYvjgbLjgZUNCivjga/jgZfjgoLjgags44Gv44KL44G/DQor44Gu44GW44GNLOOBi+OBmuOBvuOBlQ0KK+OBk+OBsOOChOOBlyzjgYvjgZrjgoQNCivjgZPjgbDjgoTjgZcs44G+44GT44GoDQor44GT44Gw44KE44GXLOOBvuOBleOBjQ0KK+OBk+OBsOOChOOBlyzjgarjgYrjgY0NCivjgZPjgbDjgoTjgZcs44GV44Go44GXDQor44GT44Gw44KE44GXLOOBl+OCkw0KK+OBk+OBsOOChOOBlyzjgZfjgpPjgZgNCivjgZPjgbDjgoTjgZcs44KE44GZ44G+44GVDQor44GT44Gw44KE44GXLOOCiOOBl+OBig0KK+OBk+OBsOOChOOBlyzjgbLjgafjgYLjgY0NCivjgZPjgaEs44Gq44GK44G/DQor44GT44Gg44G+LOOBsuOCjeOChuOBjQ0KK+OBk+OBjCzjgZvjgYTjgYsNCivjgajjgaks44Gu44KK44GTDQor44GT44Gv44KJLOOBqOOBl+OChuOBjQ0KK+OBk+OBsizjgZ/jgaDjgZcNCivjgZPjga4s44Gf44Gk44GXDQor44GT44GE44GRLOOBpOOBqOOCgA0KK+OBk+OBhOOCjyzjgYrjgZXjgoANCivjgZPjgYTjgZrjgb8s44G144G/44GN44KIDQor44GT44GY44GLLOOBteOBv+OBig0KK+OBk+OBmOOBvizjgb7jgZXjgobjgY0NCivjgZPjgZjjgb4s44Gq44GK44GNDQor44GT44GY44G+LOOBn+OBi+OBr+OCiw0KK+OBk+OBmOOBvizjgZHjgpPjgZgNCivjgZPjgb7jgaTjgbDjgoks44GC44Gk44GXDQor44GT44G/44KELOOBiOOBhOOBmA0KK+OBk+OCguOBoCzjgZXjgaHjgZMNCivjgZPjgoDjgo0s44GX44KH44GYDQor44GT44KT44GpLOOBqOOCguOBsuOCjQ0KK+OBk+OCk+OBqSzjgobjgY0NCivjgZPjgpPjgaks44KE44GZ44Gy44KNDQor44GT44GV44GRLOOBguOBjeOBsuOCjQ0KK+OBk+OBmyzjgZfjgoXjgbLjgaENCivjgZPjgZnjgY4s44Gq44GK44GZ44G/DQor44GT44Ga44GLLOOBr+OCi+OBvw0KK+OBj+OBvCzjgbLjgo3jgbXjgb8NCivjgY/jgbws44Go44GK44KLDQor44GP44G8LOOBqOOCguOChuOBjQ0KK+OBj+OBvCzjgZfjgoXjgZQNCivjgY/jgbzjgZjjgocs44G/44GI44GTDQor44GP44Gp44GGLOOBquOBjOOBig0KK+OBj+OBqeOBhizjgorjgaHjgZMNCivjgY/jganjgYYs44GL44Ga44Gy44GTDQor44GP44G+44GL44KPLOOBleOBqOOBlw0KK+OBj+OBvuOBj+OCiSzjgorjgoXjgZ8NCivjgY/jgb7jgZfjgo0s44GN44KI44GXDQor44GP44G+44GfLOOBguOBjeOCiOOBlw0KK+OBj+OBq+OCguOBqCzjgajjgZfjgobjgY0NCivjgY/jgonjgoLjgaEs44Gq44Gk44G/DQor44GP44KJ44GX44G+LOOBkeOCk+OBmA0KK+OBj+OCiuOBr+OCiSzjgZHjgpPjgYTjgaENCivjgbLjgonjgYQs44GT44GG44GE44GhDQor44GP44KK44Gv44KJLOOBn+OBi+OBlw0KK+OBj+OCiuOBr+OCiSzjgZ/jgZHjgZcNCivjgY/jgorjga/jgoks44KE44GZ44Gu44KKDQor44GP44KK44Gv44KJLOOBr+OCi+OBvw0KK+OBj+OCiuOBr+OBlyzjgZ/jgZHjgbLjgo0NCivjgY/jgorjgZks44Gq44GK44GNDQor44GP44KN44GgLOOBl+OBkuOBig0KK+OBj+OCjeOBoCzjgbLjgo3jgZcNCivjgY/jgo3jgY0s44G+44KKDQor44GP44KN44GNLOOBm+OBhOOBhOOBoQ0KK+OBj+OCjeOBjSzjgb7jgZXjgY0NCivjgY/jgo3jgoEs44GR44KT44GYDQor44GP44KN44GV44KPLOOBkeOCk+OBhOOBoQ0KK+OBj+OCi+OBv+OChCzjgZvjgYTjgYTjgaENCivjgY/jgZXjgoTjgarjgY4s44GX44KNDQor44GP44GZ44Gu44GbLOOBmOOCheOCk+OBmA0KK+OBj+OCj+OBr+OCiSzjgZfjgoXjgbLjgaENCivjgb7jgaHjgaAs44Gy44KN44GXDQor44G+44Gg44KJ44KBLOOBi+OBmuOBsuOCjQ0KK+OBvuOBiOOBoCzjgZPjgYbjgZgNCivjgb7jgYjjgaAs44KI44GX44KG44GNDQor44G+44GI44GgLOOBi+OBpOOCiA0KK+OBvuOBiOOBjOOCjyzjgobjgYbjgZgNCivjgb7jgYjjga/jgoks44Gm44Gk44GKDQor44G+44GI44GN44GfLOOBv+OBpOOBruOBtg0KK+OBvuOBjeOBrizjgojjgYbjgZMNCivjgZfjgbbjgZ/jgass44GC44Gk44GXDQor44G+44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OBvuOCi+OChOOBvizjgZ/jgYvjgbLjgo0NCivjgb7jgovjgoTjgb4s44Go44KC44GTDQor44G+44KL44KE44G+LOOBiOOBhOOBmA0KK+OBvuOBleOBiuOBiyzjgb7jgZPjgagNCivjgb7jgZnjgbbjgaEs44GI44GE44GY44KNDQor44G+44GZ44GgLOOBk+OBjQ0KK+OBvuOBmeOBoCzjgb7jgZXjgajjgZcNCivjgb7jgZnjgaAs44Gq44GK44GK44G/DQor44G+44GZ44GgLOOBl+OCk+OBmA0KK+OBvuOBmeOBoCzjgojjgYbjgZMNCivjgb7jgZnjgaAs44Go44GX44Gf44GLDQor44G+44Gk44GwLOOBleOBqOOBlw0KK+OBr+OCiSzjgZXjgajjgosNCivjgb7jgaTjgaAs44GX44KT44GE44Gh44KN44GGDQor44G+44Gk44GgLOOBteOBv+OBsuOBpw0KK+OBvuOBpOOBteOBmCzjgY7jgpPjgZgNCivjgb7jgaTjgbXjgZgs44GL44Ga44GTDQor44Gf44Gh44GP44GELOOBn+OBi+OBsuOCjQ0KK+OBvuOBpOOBhCzjgZPjgYbjgZgNCivjgb7jgaTjgYvjgo8s44KI44GX44Gu44KKDQor44G+44Gk44G+44KLLOOBguOBjeOCiQ0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgobjgY0NCivjgb7jgaTjgoLjgags44GR44GE44GE44GhDQor44G+44Gk44KC44GoLOOBn+OBi+OBlw0KK+OBvuOBpOOCguOBqCzjgojjgZfjga7jgooNCivjgb7jgaTjgoLjgags44KG44GG44GTDQor44G+44Gk44KC44GoLOOCiOOBl+OBr+OCiw0KK+OBl+OBiuOBsOOCiSzjgZ/jgYvjgajjgZcNCivjgb7jgaTjgoDjgoks44Gf44GP44KEDQor44G+44Gk44KA44KJLOOBsuOCjeOBi+OBmg0KK+OBvuOBpOOBquOBjCzjgbLjgo3jgY0NCivjgb7jgaTjgarjgYws44Gu44Ge44G/DQor44G+44Gk44Gq44G/LOOBkeOCk+OBmA0KK+OBvuOBpOOBiizjgZHjgpPjgZgNCivjgb7jgaTjgYos44Gg44GE44GZ44GRDQor44G+44Gk44GK44GLLOOBguOBjeOBig0KK+OBr+OChOOBl+OBoCzjgYvjgZrjgarjgooNCivjgb7jgaTjgYrjgYss44G/44GNDQor44GC44Gc44KE44Gq44GOLOOBl+OCk+OBmA0KK+OBvuOBpOOBiuOBiyzjgZ/jgYvjgbLjgo0NCivjgb7jgaTjgYrjgYss44GX44KF44GV44GPDQor44G+44Gk44GbLOOBguOBjeOBig0KK+OBvuOBpOOBl+OBvizjgYvjgZrjga7jgooNCivjgb7jgaTjgZfjgZ8s44GC44GN44Gy44GTDQor44G+44Gk44Gf44GrLOOBruOCiuOBkw0KK+OBvuOBpOOCj+OBiyzjgbLjgo3jgZcNCivjgb7jgaTjgoTjgb4s44Gk44Go44KADQor44G+44Gk44GW44GNLOOBl+OCk+OBhOOBoQ0KK+OBvuOBpOOBquOBjCzjgZfjgoXjgavjgaENCivjgbvjgpPjgaos44KI44GX44Gu44KKDQor44KB44GL44GfLOOChuOBjeOBkw0KK+OBv+OBi+OBmOOCiizjgb7jgZXjgbLjgo0NCivjgb/jgYvjgb8s44KI44GX44GTDQor44G/44GL44G/LOOBqOOBl+OChA0KK+OBv+OBjSzjgajjgoLjgbLjgo0NCivjgb/jgb/jgZ8s44GI44GE44GTDQor44G/44Gq44GP44GhLOOBi+OBmuOBsuOCjQ0KK+OBv+OBquOBvyzjgZvjgYTjgYTjgaENCivjgb/jgarjgb8s44Gb44GE44GYDQor44G/44Gq44G/LOOBl+OCk+OBlA0KK+OBv+OBquOBqCzjgbLjgo3jgYLjgY0NCivjgb/jga0s44Gf44GL44KG44GNDQor44G/44GtLOOBkeOCk+OBmA0KK+OBv+OBl+OBvizjgZPjgYbjgZgNCivjgb/jgZfjgb4s44GX44KT44GYDQor44G/44Gd44GuLOOBleOBqOOBlw0KK+OBv+OBn+OCgOOCiSzjgYLjgY3jgokNCivjgb/jgZ/jgpPjgaAs44GN44GP44GKDQor44G/44Gk44G8LOOBvuOBk+OBqA0KK+OBv+OBpOOBvOOBlyzjgY3jgo/jgoANCivjga/jgZnjgoDjgoks44GR44KT44GYDQor44G/44Gk44Gv44GXLOOBjeOCh+OBkw0KK+OBl+OBquOBoCzjgZfjgpPjgZnjgZENCivjgb/jgaTjgb4s44Gy44Gn44GKDQor44G/44KE44Gv44KJLOOBvuOBleOChuOBjQ0KK+OBv+OChOOBr+OCiSzjgb/jgaHjgo0NCivjgb/jgoTjgYQs44G144G/44Gv44KLDQor44G/44KE44GY44G+LOOBleOBqOOBlw0KK+OBv+OChOOCguOBqCzjgajjgoLjgobjgY0NCivjgb/jgoTjgoLjgags44GC44GN44KJDQor44G/44KE44GX44GfLOOBl+OCh+OBmA0KK+OBv+OChOOBnyzjgojjgZfjgZ/jgYsNCivjgb/jgoTjgZ8s44GC44Gk44GXDQor44G/44KE44GG44GhLOOBk+OBhuOBmA0KK+OBv+OChOOBhuOBoSzjgYrjgZXjgoANCivjgb/jgoTjgYbjgoks44Gy44KN44Gy44GVDQor44G/44KE44GW44GNLOOBvuOBleOBqOOBlw0KK+OBr+OBl+OBkOOBoSzjgZHjgpPjgYTjgaENCivjgb/jgoTjgZbjgo8s44KI44GX44GL44GaDQor44G/44KE44GW44KPLOOBqOOBl+OBsuOCjQ0KK+OBv+OChOOBmizjgajjgZfjgbXjgb8NCivjgb/jgZ7jgYvjgb8s44Gy44KN44G/44GkDQor44G/44Ga44GuLOOBsuOCjeOChuOBjQ0KK+OBv+OBmuOBrizjgYvjgZrjgbLjgagNCivjgb/jgZrjgZ/jgass44GY44Gk44KEDQor44KC44Gh44GgLOOBsuOBp+OBr+OCiw0KK+OCguOBoeOBmuOBjSzjgb/jgYjjgZMNCivjgoLjgaHjgZrjgY0s44KG44GL44GTDQor44G/44KI44GXLOOBi+OBmuOBquOCig0KK+OCguOCiizjgbLjgafjga7jgooNCivjgoLjgoos44Gy44KN44KG44GNDQor44KC44KKLOOBsuOCjeOChuOBjQ0KK+OCguOCiizjgYvjgYrjgosNCivjgoLjgoos44GR44KT44GYDQor44KC44KKLOOBiuOBleOCgA0KK+OCguOCiizjgZ/jgZHjgbLjgZUNCivjgoLjgoos44Gf44GR44GXDQor44KC44KKLOOBl+OBkuOBjQ0KK+OCguOCiuOBkOOBoSzjgZPjgYbjgZgNCivjgoLjgorjgYvjgo8s44GC44GN44GKDQor44KC44KK44Gq44GMLOOChOOBmeOBsuOBqA0KK+OCguOCiuOBleOBjSzjgZjjgoXjgavjgaENCivjgoLjgorjgZ8s44Gm44Gk44Gy44GTDQor44KC44KK44GfLOOBqOOBl+OChuOBjQ0KK+OCguOCiuOChCzjga7jgbbjgobjgY0NCivjgoLjgorjgoTjgb4s44GC44GN44Gy44KNDQor44KC44Gm44GOLOOBguOBjeOBig0KK+OCguOBqOOBjSzjgZjjgo0NCivjga/jgY7jgo/jgoks44Gf44GL44GXDQor44KA44GL44GE44GgLOOBvuOBleOBjQ0KK+OCgOOBreOBsuOCjSzjgb7jgZXjgZcNCivjgoDjga3jgYvjgZ8s44Gg44GE44GE44GhDQor44KA44KJ44GL44G/LOOBvuOBleOChuOBjQ0KK+OCgOOCieOBi+OBvyzjgabjgaTjgoQNCivjgoDjgonjgYvjgb8s44Gy44KN44GL44GaDQor44KA44KJ44GT44GXLOOBpOOBreOBguOBjQ0KK+OCgOOCieOBvuOBpCzjgYTjgZrjgb8NCivjgoDjgonjgazjgY0s44Gy44KN44GL44GaDQor44KA44KJ44GfLOOBsuOCjeOBjQ0KK+OCgOOCieOBnyzjgZPjgYbjgZgNCivjgoDjgonjgZ8s44G+44GV44GXDQor44KA44KJ44KE44G+LOOBguOBkeOBvw0KK+OChOOBvuOBl+OBnyzjgojjgbLjgaENCivjgoDjgo3jgZ8s44GI44GE44GYDQor44G/44KH44GY44KTLOOCgOOBpOOBig0KK+OBquOBjOOBhCzjgbLjgafjgYoNCivjga/jgZfjgoLjgags44G/44Gk44Gy44KNDQor44Gq44GM44Gs44G+LOOBj+OBq+OBsuOCjQ0KK+OBquOBjOOBiizjga7jgbbjgojjgZcNCivjgarjgYzjgYrjgYss44GX44GTDQor44Gq44GM44GV44KPLOOBsuOBp+OChuOBjQ0KK+OBquOBjOOBl+OBvizjgYvjgZrjgojjgZcNCivjgarjgYzjgZfjgb4s44Gk44KI44GXDQor44Gq44GM44GfLOOChOOBmeOBsuOCjQ0KK+OBquOBjOOBnyzjgoTjgZnjgYoNCivjga/jgZvjgYzjgo8s44Gy44KN44GTDQor44GE44GM44KJ44GXLOOBvuOBleOBqA0KK+OBquOBjOOChOOBvizjgZHjgYTjgZgNCivjgarjgYzjgojjgZcs44KG44GN44KC44GoDQor44Gq44GE44Go44GGLOOBvuOBleOBjQ0KK+OBquOBi+OBsOOChOOBlyzjgZvjgYTjgZgNCivjgarjgYvjgYzjgo8s44KI44GX44Gv44KLDQor44Gq44GL44GU44KBLOOBguOBjeOBsuOCjQ0KK+OBquOBi+OBl+OBvizjgbLjgo3jgYvjgZoNCivjgarjgYvjgZjjgb4s44G/44Gh44GKDQor44Gq44GL44GY44G+LOOBruOCiuOBkw0KK+OBquOBi+OBmOOBvizjgYrjgZMNCivjgarjgYvjgZjjgb4s44KG44GN44GKDQor44Gq44GL44GY44G+LOOBiOOCig0KK+OBquOBi+OBj+OBjSzjgb/jgbsNCivjgarjgYvjgb7jgoss44GL44GK44KLDQor44Gq44GL44G/44GhLOOBn+OBi+OBlw0KK+OBquOBi+OCguOBqCzjgojjgZfjgYvjgZoNCivjgarjgYvjgoLjgags44KI44GX44KE44GZDQor44Gq44GL44KC44GoLOOBoeOBiOOBkw0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgYLjgY0NCivjgarjgYvjgoDjgoks44GL44Ga44Gy44KNDQor44Gq44GL44KA44KJLOOBkeOCk+OBmA0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgYvjgaQNCivjgarjgYvjgoDjgoks44G+44GV44GNDQor44Gq44GL44KA44KJLOOBvuOBleOBruOCig0KK+OBquOBi+OCgOOCiSzjgZfjgpPjgYTjgaENCivjga/jgY7jgo/jgoks44GV44Go44GXDQor44Gq44GL44KA44KJLOOBqOOBl+OBguOBjQ0KK+OBquOBi+OCgOOCiSzjgoTjgZnjgb7jgZUNCivjgarjgYvjgoDjgoks44KG44GG44GTDQor44Gq44GL44KA44KJLOOBpuOCi+OBvw0KK+OBquOBi+OBrizjgY/jgonjgagNCivjgarjgYvjgYos44KG44GG44GYDQor44Gq44GL44GKLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBquOBi+OBiuOBiyzjgorjgYsNCivjgarjgYvjgZfjgb4s44G/44GLDQor44Gr44GX44GY44G+LOOChuOBjeOBsuOCjQ0KK+OBquOBi+OChCzjgbLjgo3jgYvjgZoNCivjgarjgYvjgoTjgb4s44Gy44KN44KG44GNDQor44Gq44GL44GW44GoLOOBsuOCjeOBteOBvw0KK+OBquOBvuOBn+OCgSzjgb7jgZXjgarjgooNCivjgarjgoHjgoks44GX44KT44GE44Gh44KN44GGDQor44Gq44Gq44G/LOOBm+OBhOOBmA0KK+OBquOCk+OBsCzjgYvjgZrjga7jgooNCivjgarjgpPjgZjjgocs44KG44GG44GYDQor44Gq44KT44G9LOOBpuOCi+OChuOBjQ0KK+OBquOCieOBtizjgZXjgajjgZMNCivjgarjgorjga/jgoks44G+44GN44GTDQor44Gq44KK44Go44G/LOOBsuOBp+OChuOBjQ0KK+OBquOCi+OBl+OBvizjgabjgaTjgoQNCivjgarjgZnjgYvjgo8s44GR44KT44GfDQor44Gq44Go44KKLOOChOOBmeOBlw0KK+OBreOBjuOBlyzjgobjgYbjgZMNCivjga3jgoLjgags44Gy44KN44KG44GNDQor44Gr44GI44GgLOOBqOOCguOChuOBjQ0KK+OBq+OBhOOBmOOBvizjgZXjgajjgZcNCivjgavjgYTjgY/jgoks44Gf44GL44GXDQor44Gr44GE44Gk44G+LOOCj+OBn+OCiw0KK+OBq+OBhOOBluOCjyzjgbLjgo3jgZcNCivjgavjgZfjgaAs44GL44Gk44GC44GNDQor44Gr44GX44GgLOOBvuOCguOCiw0KK+OBq+OBl+OBoCzjgoLjgorjgbLjgagNCivjgavjgZfjgaAs44Gf44Gg44Go44GXDQor44Gy44Gg44GLLOOBn+OBi+OBig0KK+OBq+OBl+OBoCzjgZHjgYTjgZnjgZENCivjgavjgZfjgYvjgaks44GC44GN44KJDQor44Gr44GX44GL44KPLOOBsuOBp+OBjQ0KK+OBq+OBl+OBi+OCjyzjgbLjgo3jgb8NCivjgavjgZfjgYvjgo8s44Gq44GK44GNDQor44Gr44GX44KC44GoLOOBvuOBk+OBqA0KK+OBq+OBl+OCgOOCiSzjgZjjgoXjgpPjgoQNCivjgavjgZfjgaos44GR44KT44KEDQor44Gr44GX44GuLOOBiOOBv+OBkw0KK+OBq+OBl+OBnyzjgYTjgZrjgb8NCivjgbXjgYvjgb8s44Go44GK44KLDQor44Gr44GX44KP44GNLOOBvuOBk+OBqA0KK+OBq+OBl+OChOOBvizjgb7jgZXjgosNCivjgavjgZfjgoTjgb4s44GR44KT44GYDQor44Gr44GX44GW44KPLOOCiOOBl+OBruOCig0KK+OBq+OBo+OBnyzjgbLjgo3jgbLjgagNCivjgavjgo/jgZ8s44Gf44GR44GXDQor44Gr44KP44KE44G+LOOBiOOBhOOBmA0KK+OBruOBguOBvyzjgbLjgafjgagNCivjga7jgbzjgorjgZ/jgaYs44KG44GN44G+44GVDQor44Gu44GgLOOChOOBmeOBig0KK+OBruOBjOOCjyzjgYLjgaTjgZcNCivjga7jgZDjgaEs44GI44GE44GY44KFDQor44Gu44GQ44GhLOOBqOOCguOBguOBjQ0KK+OBruOBmOOCiizjgb7jgZXjga7jgbYNCivjga7jgoLjgags44Gy44Gn44KEDQor44Gu44KA44KJLOOBvuOBleOBruOCig0KK+OBr+OChOOBleOBiyzjgY3jgojjgZcNCivjga7jgoDjgoks44Gy44KN44GL44GaDQor44Gu44GoLOOBv+OBjQ0KK+OBruOBluOBjSzjgYvjgZrjgogNCivjgZPjgZXjgYss44Gf44GR44Gy44GTDQor44GK44Gw44GqLOOBi+OBpOOBlw0KK+OBiuOBoSzjgbLjgajjgZcNCivjgYrjgaAs44KI44GX44Gy44KNDQor44GK44GM44GV44KP44KJLOOBsuOCjeOCiOOBlw0KK+OBiuOBjOOBnyzjgbvjgZrjgb8NCivjgY/jgY0s44Gh44GaDQor44GK44GL44GgLOOBj+OBq+OBkw0KK+OBiuOBjOOCjyzjgb7jgarjgbYNCivjgYrjgYzjgo8s44Gf44GL44KG44GNDQor44GK44GM44KPLOOBsuOCjeOChA0KK+OBiuOBjuOBr+OCiSzjgajjgoLjgYLjgY0NCivjgYrjgY7jga4s44Gf44GL44GXDQor44GK44G2LOOBsuOCjeOChuOBjQ0KK+OBiuOBr+OCiSzjgobjgYbjgZMNCivjga/jgb7jgoLjgags44G/44GN44GTDQor44GK44Gv44KJLOOBi+OBmuOBsuOCjQ0KK+OBiuOBr+OBlyzjgb7jgZXjgbLjgo0NCivjgYrjgYvjgo8s44Gd44Gu44G/DQor44GK44GP44G8LOOBqOOBl+OChA0KK+OBiuOBv+OChCzjgoTjgZnjgZcNCivjgYrjgoLjgoos44GC44KE44GTDQor44GK44KA44KJLOOBvuOBleOBpuOCiw0KK+OBiuOBq+OBlyzjga/jgovjga7jgbYNCivjgYrjga4s44GL44Ga44Gm44KLDQor44GK44Gs44GNLOOBsuOCjeOChOOBmQ0KK+OBiuOBleOBjSzjgobjgZ/jgYsNCivjgYrjgZXjgY0s44Gy44KN44GC44GNDQor44GK44GV44KPLOOBsuOCjeOChuOBjQ0KK+OBiuOBl+OBvizjgb7jgZXjgobjgY0NCivjgYrjgZfjgb4s44KE44GZ44Gu44KKDQor44GK44GX44G+LOOBi+OBmuOBqOOBlw0KK+OBiuOBnyzjgZPjgYbjgYTjgaENCivjgYrjgZ8s44G/44GLDQor44GK44GfLOOBn+OBoOOBsuOBkw0KK+OBiuOBnyzjgoTjgZnjgZMNCivjgYLjgpPjganjgYYs44KG44GG44GYDQor44GK44GfLOOBleOBqOOBlw0KK+OBiuOBn+OBiyzjgb7jgZXjgagNCivjgYrjgZ/jgY0s44G+44GV44GC44GNDQor44GK44Gf44GrLOOBm+OBhOOBmA0KK+OBiuOBn+OBqyzjgabjgaTjgoQNCivjgYrjgZ/jgass44KK44KH44Gy44GhDQor44Gv44KE44GXLOOBvuOBleOBn+OBiw0KK+OBiuOBpOOBvCzjgbLjgo3jgoTjgZkNCivjgYrjgaTjgYss44GL44Ga44GKDQor44GK44Gk44GLLOOBleOBqOOBlw0KK+OBiuOBpOOBiyzjgobjgYbjgZMNCivjga/jgoTjgZcs44GX44KNDQor44GK44Gk44KLLOOBn+OBkeOBlw0KK+OBiuOBteOBoSzjgZ/jgYvjgYoNCivjgYrjgo8s44Gk44Go44KADQor44GK44Gy44KDLOOChOOBmeOBig0KK+OBiuOBmOOBiizjga7jgbbjgbLjgo0NCivjgYrjgYss44G/44GLDQor44GK44GL44G5LOOBsuOCjeOBlw0KK+OBiuOBi+OBoCzjgZHjgpPjgYTjgaENCivjgYrjgYvjgaAs44GK44GfDQor44GK44GL44GgLOOBn+OBi+OBguOBjQ0KK+OBiuOBi+OBoCzjgbXjgajjgZcNCivjgYrjgYvjgoLjgags44GL44Ga44Gy44GTDQor44GK44GL44KC44GoLOOBruOCiuOBsuOBlQ0KK+OBiuOBi+OCguOBqCzjgb7jgZXjgYvjgZoNCivjgYrjgYvjgoDjgoks44KG44GN44GTDQor44GK44GL44KA44KJLOOBn+OBkeOBsuOBlQ0KK+OBiuOBi+OBluOBjSzjgojjgZfjga7jgooNCivjgYrjgYvjgZbjgY0s44GI44GE44GNDQor44GK44GN44GuLOOBguOBpOOBlw0KK+OBiuOBj+OBoCzjgYjjgb/jgZMNCivjgYrjgY/jgaAs44G/44Gh44GIDQor44GK44GP44GM44KPLOOBqOOBl+OBkw0KK+OBr+OBjuOBr+OCiSzjgZ/jgZHjgZcNCivjgYrjgY/jgYbjgaEs44KA44Gt44GKDQor44GK44G/LOOBteOBv+OBruOBtg0KK+OBiuOCgOOCiSzjgb7jgZXjgajjgZcNCivjgYrjgpPjgaAs44GC44KG44KADQor44GK44GuLOOBvuOBleOBjQ0KK+OBiuOBrizjgZ/jgYvjgoQNCivjgYrjga4s44Go44GK44KLDQor44GK44GuLOOBsuOCjeOChuOBjQ0KK+OBiuOBruOBp+OCiSzjgZ/jgYvjgobjgY0NCivjgYrjga7jgafjgoks44KGDQor44GK44Gu44Gn44KJLOOBqOOCguOChuOBjQ0KK+OBiuOBruOCgOOCiSzjgbLjgo3jgY/jgasNCivjgYrjga7jgZbjgo8s44GR44GE44GE44GhDQor44GK44Gs44GNLOOBsuOCjeOBqOOBlw0KK+OBiuOBrizjgZPjgYbjgZ/jgo3jgYYNCivjgYrjgbLjgoPjgb4s44GL44GK44KLDQor44GK44KK44GpLOOBr+OBmOOCgQ0KK+OBiuOCiuOBl+OBjeOBoCzjgb7jgZXjga7jgooNCivjgYrjgZXjgYss44GY44KF44Gr44GhDQor44GK44KE44G+LOOBkeOCk+OBmA0KK+OBiuOBluOBjSzjgoDjga3jgZcNCivjgYrjgZbjgY0s44GC44KE44GTDQor44GK44GW44KPLOOBsuOBqOOBlw0KK+OBk+OBluOCjyzjgYvjgZrjgbLjgo0NCivjgYrjgZbjgo8s44KG44Gf44GLDQor44GK44GW44KPLOOBsuOCh+OBneOBig0KK+OBh+OBiCzjgb/jga7jgosNCivjga/jgZ/jgarjgYss44GX44KF44KT44GZ44GRDQor44GV44GI44GNLOOBvuOBleOBsuOBkw0KK+OBleOBhOOBoCzjgojjgZfjga7jgooNCivjgZXjgYTjgZDjgZUs44Go44GX44GKDQor44Gv44KT44GgLOOBv+OBruOCiw0KK+OBleOBhOOBqOOBhizjgZfjgpPjgoQNCivjgZXjgYTjgajjgYYs44Gm44Gk44KNDQor44GV44GE44Go44GGLOOBn+OBi+OBguOBjQ0KK+OBleOBi+OBoSzjgbLjgajjgZcNCivjgZXjgYvjgZDjgaEs44Gy44Gn44GC44GNDQor44GV44GL44GELOOBk+OBhuOBhOOBoQ0KK+OBleOBi+OBhCzjgZ/jgaDjgYoNCivjgbLjgonjga4s44Gf44GE44GhDQor44GV44GL44GELOOBn+OBpOOChA0KK+OBleOBi+OBhCzjgojjgZfjgb7jgZUNCivjgZXjgYvjgYQs44KG44GZ44GRDQor44GV44GL44GELOOBsuOCjeOBlw0KK+OBleOBi+OCguOBqCzjgb7jgZXjga/jgosNCivjgZXjgYvjgoLjgags44Gf44GR44GXDQor44Gy44KN44GbLOOBvuOBleOBlw0KK+OBleOBi+OCguOBqCzjgb/jgaTjgbLjgo0NCivjgZXjgYvjgZ8s44KK44KH44GTDQor44GN44GX44GgLOOCguOCguOBkw0KK+OBleOBkyzjgbLjgo3jgZcNCivjgZXjgY/jgb4s44Gf44GR44GXDQor44GV44GP44KJ44GwLOOChOOBmeOBqOOCgg0KK+OBleOBj+OCieOBhCzjgb7jgZXjgbLjgZUNCivjgZXjgY/jgonjgoTjgb4s44GX44GS44Gy44GoDQor44GV44KB44GX44G+LOOBvuOBleOBig0KK+OBleOCk+OBuSzjgZPjgYbjgZgNCivjgZXjgovjgo/jgZ/jgoos44G/44Gu44KLDQor44Gv44Gb44GM44KPLOOBk+OBng0KK+OBleOBleOBiCzjgYLjgY3jgbLjgo0NCivjgZXjgZXjga/jgoks44GC44GN44KJDQor44GV44GV44GNLOOBsuOCjeOBvw0KK+OBleOBleOBjSzjgb/jgY3jgYoNCivjgZXjgZXjgY0s44Gq44GK44GNDQor44GV44GV44GNLOOBn+OBi+OBlw0KK+OBr+OBs+OCjSzjgoTjgZnjgbLjgo0NCivjgZXjgZXjgYos44KI44GX44GC44GNDQor44GV44GV44GK44GLLOOCiOOBjeOBoQ0KK+OBleOBleOBn+OBqyzjgajjgoLjgZgNCivjgZXjgZ8s44Gy44KN44GC44GNDQor44GV44Gf44GRLOOBguOBi+OBlw0KK+OBleOBqOOBhizjgb7jgZXjgosNCivjgbvjgZfjga4s44GI44G/DQor44GV44Go44GGLOOBr+OCi+OBvw0KK+OBr+OBo+OBqOOCiizjgbLjgo3jgZcNCivjgZXjgajjgYYs44GL44Ga44KI44GXDQor44GV44Go44GGLOOBvuOBk+OBqA0KK+OBleOBqOOBhizjgb7jgZXjgY0NCivjgZXjgajjgYYs44G+44GV44GoDQor44GV44Go44GGLOOBquOBiuOBjQ0KK+OBleOBqOOBhizjgorjgofjgZgNCivjgZXjgajjgYYs44Gf44GL44G+44GVDQor44GV44Go44GGLOOBn+OBi+OBlw0KK+OBleOBqOOBhizjgobjgZ/jgYsNCivjgbLjgonjga4s44KG44GN44GTDQor44GV44Go44GGLOOChuOBn+OBiw0KK+OBleOBqOOBhizjgYvjgZrjgZfjgZINCivjgZXjgo/jgaAs44Go44KC44GTDQor44GV44KP44GgLOOCiOOBl+OBvw0KK+OBleOCj+OBteOBmCzjgajjgoLjgb8NCivjgZXjgo/jgY0s44Go44GX44GNDQor44GV44KP44KA44KJLOOBmOOCheOCkw0KK+OBm+OBjOOCjyzjgZHjgYTjgZgNCivjgZvjgYzjgo8s44G+44GV44Gv44KLDQor44Gb44GNLOOBl+OCk+OChA0KK+OBm+OBjSzjgajjgYrjgosNCivjgZvjgY3jgZDjgaEs44GX44GS44GNDQor44Gb44GN44GtLOOChuOBjeOBn+OBiw0KK+OBm+OBjeOBrSzjgorjgofjgbLjgaENCivjgbLjgonjga4s44Gf44Gk44GNDQor44Gb44KT44GU44GPLOOBkeOBhOOBmA0KK+OBm+OBiizjgb7jgorjgYoNCivjgZvjgoks44Go44GX44GC44GNDQor44Gb44KJLOOBkeOBhOOBhOOBoQ0KK+OBl+OBsOOBr+OCiSzjgbLjgo3jgYLjgY0NCivjgZfjgbDjgZ8s44Gy44KN44KG44GNDQor44GX44Gw44GfLOOChOOBmeOBruOCig0KK+OBr+OBm+OBjOOCjyzjgZHjgYTjgYTjgaENCivjgZfjgbDjgZ8s44GT44G444GEDQor44GX44Gw44GfLOOBn+OBi+OBsuOCjQ0KK+OBl+OBsOOBnyzjgZPjgbjjgYQNCivjgZfjgbDjgZbjgY0s44Gy44KN44GXDQor44GX44G244Gf44GrLOOBl+OCk+OBn+OCjeOBhg0KK+OBl+OBtuOChCzjgYvjgZrjgY0NCivjgZfjgaHjgbLjgocs44KK44Gk44GTDQor44GX44GNLOOBn+OBhOOBoQ0KK+OBl+OBjeOBl+OBvizjgbLjgZXjgZcNCivjgZfjgb4s44GL44Ga44GC44GNDQor44GX44G+LOOBi+OBpOOBvw0KK+OBl+OBvuOBoCzjgYjjgYTjgYTjgaENCivjgZfjgb7jgazjgY0s44KE44GZ44GXDQor44GX44G+44GK44GLLOOBsuOCjeOBlw0KK+OBl+OBvuOBl+OBnyzjgZ/jgaDjgZcNCivjgZfjgb7jgZos44Gy44KN44GL44GkDQor44GX44G/44GaLOOBi+OBmuOBrg0KK+OBl+OBv+OBmizjgYvjgZrjgbLjgZMNCivjga/jgZvjgYzjgo8s44Go44KC44Gy44KNDQor44GX44G/44GaLOOBqOOCguOBv+OBpA0KK+OBl+OBv+OBmizjgobjgZ/jgYsNCivjgZfjgb/jgZos44G+44GV44Gf44GRDQor44GX44KC44GM44GELOOBvuOBleOChuOBjQ0KK+OBl+OCguOBi+OCj+OBuSzjgb7jgZXjgZMNCivjgZfjgoLjgYrjgYss44Go44KC44Gv44KLDQor44GX44KC44GV44GLLOOBqOOCguOBi+OBpA0KK+OBl+OCguOChOOBvizjgY3jgb/jgYLjgY0NCivjgZfjgpPjgbzjgoos44G+44GV44KLDQor44GX44Gu44Gv44KJLOOBn+OBkeOBlw0KK+OBl+OBruOBr+OCiSzjgYLjgY3jgZMNCivjgZfjga7jgZbjgY0s44GT44GZ44GRDQor44GX44Gu44GW44GNLOOBi+OBpOOBsuOCjQ0KK+OBl+OBruOBmuOBiyzjgZ/jgYvjgZcNCivjgZfjgpPjgoQs44KE44GZ44Gf44GLDQor44GX44GK44GfLOOBquOBiuOBsuOCjQ0KK+OBl+OBiuOBn+OBqyzjgZHjgYTjgYTjgaENCivjgZfjgYrjgoQs44Gy44Gn44GNDQor44GX44KJ44Gv44G+LOOBkeOBhOOBmeOBkQ0KK+OBl+OCieOBhCzjgaHjgYjjgZMNCivjgZfjgonjgYTjgZcs44G+44GV44GKDQor44GX44KJ44GE44GXLOOChuOCiuOBkw0KK+OBl+OCieOBhOOBlyzjgYvjgZrjgbLjgZUNCivjgZfjgonjgY0s44Go44GX44GTDQor44GX44KJ44GV44GNLOOBguOBjeOBsuOCjQ0KK+OBl+OCh+OBquOBlCzjgYLjgY3jgbLjgo0NCivjgYrjgbLjgoPjgb4s44Gy44Gn44KG44GNDQor44GX44KF44GoLOOBpuOBpOOChA0KK+OBl+OCguOBhOOBmizjgbLjgo3jgYgNCivjgZ3jgYjjgaAs44Gq44GK44Gf44GLDQor44G744KK44GuLOOBsuOBleOBqOOBlw0KK+OBneOBqOOBmOOBvizjgbLjgo3jgZcNCivjgZnjgaAs44KI44GX44GTDQor44GZ44GgLOOBkeOCk+OBhOOBoQ0KK+OBmeOBqeOBhizjgbLjgafjgZMNCivjgZnjgYws44GY44KF44KT44GN44GhDQor44GZ44GM44Gs44G+LOOBkeOCk+OBmA0KK+OBmeOBjOOCj+OCiSzjgajjgYrjgosNCivjgZnjgY7jgbDjgoTjgZcs44G/44Gh44Gy44GVDQor44GZ44GO44KC44GoLOOBv+OBiw0KK+OBmeOBjuOCguOBqCzjgb/jgZUNCivjgZnjgY7jgoDjgoks44KE44GZ44Gy44GoDQor44GZ44GO44GuLOOBpOOBqOOCgA0KK+OBmeOBjuOBleOBjSzjgZHjgYTjgZnjgZENCivjgZnjgY7jgZXjgo8s44GL44Ga44KG44GNDQor44GZ44GO44GfLOOBn+OBi+OBl+OBkg0KK+OBr+OChOOBlyzjgb/jgYsNCivjgZnjgY7jgYbjgoks44Gy44KN44GNDQor44GZ44GO44KE44G+LOOCiOOCiuOBqA0KK+OBmeOBjuOChOOBvizjgZ/jgY/jgb8NCivjgZnjgZQs44Gy44KN44GL44GkDQor44GZ44GE44GfLOOBteOBqOOBlw0KK+OBmeOBv+OBoCzjgoHjgYTjgZjjgo0NCivjgZnjgb/jgYvjgo8s44GT44GTDQor44GZ44Gq44GMLOOBsuOBp+OBsuOBqA0KK+OBmeOBruOBr+OCiSzjga/jgZjjgoENCivjgZnjgZrjgY0s44Gy44KN44GL44GaDQor44GZ44Ga44GNLOOBkeOBhA0KK+OBmeOBmuOBjSzjgb7jgZXjgajjgZcNCivjgZnjgZrjgY0s44G/44GLDQor44GZ44Ga44GNLOOBruOBtuOBkw0KK+OBmeOBmuOBjSzjga7jgorjgbLjgZMNCivjgZnjgZrjgY0s44GV44Go44KLDQor44GZ44Ga44GNLOOBl+OCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgZ/jgYvjgYoNCivjgZnjgZrjgY0s44Gf44GL44KG44GNDQor44GZ44Ga44GNLOOBn+OBvw0KK+OChOOBvuOBi+OCjyzjgajjgYrjgosNCivjgZnjgZrjgY0s44Go44GX44KEDQor44GZ44Ga44GNLOOBl+OCk+OBmA0KK+OBr+OBjCzjgoTjgZnjgYoNCivjgZnjgZrjgY0s44KI44GX44Gy44GVDQor44GZ44Ga44GNLOOBguOBpOOBlw0KK+OBmeOBmuOBrizjgZXjgajjgZcNCivjgZfjgoXjgags44Go44GK44KLDQor44Gf44Gw44KJLOOBvuOBleOBvw0KK+OBn+OBoCzjgYLjgY3jgokNCivjga/jgorjgYzjgYQs44Go44KC44KG44GNDQor44Gf44GgLOOCiOOBl+OChuOBjQ0KK+OBn+OBjOOBl+OCiSzjgb7jgZXjgbXjgb8NCivjgZ/jgZDjgaEs44GX44KH44GUDQor44Gf44GQ44GhLOOBn+OBkeOBsuOCjQ0KK+OBn+OBmOOBvizjgojjgZfjga7jgooNCivjgZ/jgZjjgb4s44GL44Ga44G1DQor44G744Gj44GfLOOBguOBjeOBkw0KK+OBn+OBi+OBoCzjgYvjgaTjgbLjgZMNCivjgZ/jgYvjgY4s44GX44GS44KLDQor44Gf44GL44GOLOOBn+OBpOOBig0KK+OBn+OBi+OBjizjgYLjgZXjgZMNCivjgZ/jgYvjga/jgZcs44GC44GN44Gy44GTDQor44Gv44GX44GQ44GhLOOBsuOCjeOBi+OBmg0KK+OBn+OBi+OBr+OBlyzjgYTjgZXjgagNCivjgZ/jgYvjga/jgZcs44GL44GK44KKDQor44Gf44GL44Gv44GXLOOBi+OBpOOBteOBvw0KK+OBn+OBi+OBr+OBlyzjgY/jgavjgbLjgacNCivjgZ/jgYvjga/jgZcs44G+44GTDQor44Gf44GL44Gv44GXLOOBvuOBleOCiw0KK+OBn+OBi+OBr+OBlyzjgZ/jgYvjga7jgbYNCivjga/jgZvjgYzjgo8s44G+44GV44KG44GNDQor44Gf44GL44Gv44GXLOOBv+OBquOBkw0KK+OBn+OBi+OBr+OBlyzjgb/jgobjgY0NCivjgZ/jgYvjga/jgZcs44Gu44G244GC44GNDQor44Gf44GL44Gv44GXLOOBl+OCk+OBmA0KK+OBn+OBi+OBr+OBlyzjgZfjgpPjgZgNCivjgZ/jgYvjga/jgZcs44GX44KF44Gr44GhDQor44Gf44GL44Gv44GXLOOBqOOCguOBruOCig0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgYvjgZoNCivjgZ/jgYvjga/jgZcs44KI44Gy44GhDQor44Gf44GL44Gv44GXLOOChuOBhuOBkw0KK+OBiuOBvyzjgYjjgYTjgZMNCivjgZ/jgYvjgbLjgoks44Gy44KN44GC44GNDQor44Gf44GL44GELOOBsuOCjeOBlw0KK+OBn+OBi+OBv+OChCzjgarjgYrjgb8NCivjgZ/jgYvjgarjgZcs44Gy44KN44G/44GhDQor44Gf44GL44GuLOOBi+OBpOOBqOOBlw0KK+OBn+OBi+OBrizjgYvjgZrjgZMNCivjgZ/jgYvjga4s44GL44Ga44GKDQor44Gf44GL44GuLOOBqOOCguOBsuOCjQ0KK+OBn+OBi+OBrizjgabjgovjgYoNCivjga/jgoTjgYvjgo8s44GR44KT44Gf44KN44GGDQor44Gf44GL44GKLOOBsuOBp+OBruOCig0KK+OBn+OBi+OBl+OBvizjgYvjgaTjgb8NCivjgZ/jgYvjgZks44GX44KT44GE44GhDQor44Gf44GL44Go44GG44KKLOOCiOOBl+OBv+OBpA0KK+OBn+OBi+OBqOOCiizjgYvjgZrjgbLjgo0NCivjgZ/jgYvjgoQs44GE44Gh44Gf44KN44GGDQor44Gf44GRLOOBguOBpOOBruOCig0KK+OBn+OBkeOBoCzjgZHjgpPjgYTjgaENCivjgZ/jgZHjgaAs44G144GV44Gy44GTDQor44G744KKLOOBkeOCk+OBmA0KK+OBn+OBkeOBoCzjgb/jga7jgosNCivjgZ/jgZHjga/jgoks44KI44GX44Go44KCDQor44Gf44GR44GELOOBk+OBhuOBmA0KK+OBn+OBkeOCguOBqCzjgorjgbsNCivjgZ/jgZHjgoLjgags44G/44GN44GTDQor44Gf44GR44Gq44GLLOOCiOOBl+OBsuOCjQ0KK+OBr+OChOOBlyzjgZ/jgb7jgogNCivjgZ/jgYvjgY4s44KI44GX44Gy44GoDQor44Gf44GR44Go44G/LOOBguOBjeOBsuOCjQ0KK+OBn+OBkeOBhuOBoSzjgoLjgajjgbLjgo0NCivjgZ/jgZHjgYbjgaEs44GX44KF44Gy44KDDQor44Gf44GR44GG44GhLOOBn+OBoOOBlw0KK+OBn+OBkeOChOOBmSzjgYvjgaTjga7jgooNCivjgZ/jgZHjgZbjgo8s44Gy44Gn44Gy44GTDQor44Gf44GN44GwLOOBteOBleOBvw0KK+OBn+OBj+OBvCzjga7jgorjgYLjgY0NCivjga/jgavjgoXjgYYs44GC44GN44Gy44KNDQor44Gf44G+44KI44KKLOOBm+OBhOOBmA0KK+OBn+OCguOBpCzjgYTjgZrjgb8NCivjgZ/jgoDjgoks44GT44GeDQor44Gf44KA44KJLOOBl+OCk+OBhOOBoQ0KK+OBn+OCgOOCiSzjgbLjgYvjgosNCivjgZ/jgarjgbks44GX44KT44GE44GhDQor44Gf44Gq44G5LOOBguOBjQ0KK+OBn+OBquOBiyzjgYLjgY3jgZnjgZENCivjgZ/jgarjgYss44GR44KT44GE44GhDQor44Gf44Gq44GLLOOBvuOBleOBsuOBkw0KK+OBn+OBquOBiyzjgb7jgZXjgY0NCivjgZ/jgZHjgaAs44G+44GV44Gu44KKDQor44Gf44Gq44GLLOOBv+OBuw0KK+OBr+OBm+OBjOOCjyzjgb/jgaTjgYoNCivjgZ/jgarjgYss44Gu44G244KI44GXDQor44Gf44Gq44GLLOOCjOOBhOOBmA0KK+OBn+OBquOBiyzjgorjgofjgZgNCivjgZ/jgarjgYss44GV44Go44GXDQor44Gf44Gq44GLLOOBn+OBi+OBruOCig0KK+OBn+OBquOBiyzjgaTjgojjgZcNCivjgZ/jgarjgYss44KG44GG44GTDQor44Gf44Gq44GLLOOChuOBnw0KK+OBn+OBquOBiyzjgbLjgo3jgobjgY0NCivjgZ/jgass44GC44GR44G/DQor44G/44Gf44GrLOOBguOBjeOCiQ0KK+OBn+OBq+OBkOOBoSzjgoTjgZnjga7jgooNCivjga/jgaPjgajjgoos44Gy44Gn44Gy44GTDQor44Gf44Gr44GQ44GhLOOBsuOCjeOChuOBjQ0KK+OBn+OBq+OBkOOBoSzjgojjgZfjgobjgY0NCivjgZ/jgavjgZDjgaEs44GT44GG44GE44GhDQor44Gf44Gr44GL44KPLOOBguOBpOOBlw0KK+OBn+OBleOBiyzjgojjgZfjgZMNCivjgZ/jgZfjgb4s44Gf44Gg44GXDQor44Gf44Gm44GL44KPLOOBvuOBleOCiw0KK+OBn+OBpuOBrizjgbLjgafjgobjgY0NCivjgabjgonjgZjjgb4s44Gf44GL44KI44GXDQor44Gm44KJ44G+44GILOOBvuOBquOBtg0KK+OBpuOCieOBleOCjyzjgYvjgaTjgY0NCivjgabjgonjgoTjgb4s44G+44GT44GoDQor44Gm44GX44G+LOOChuOBhuOBkw0KK+OBqOOBoCzjgZPjgYbjgYTjgaENCivjgajjgajjgb8s44KI44GX44GKDQor44Go44Gy44KD44G+LOOBqOOBiuOCiw0KK+OBqOOBjeOCjyzjgbLjgo3jgZMNCivjgbXjgY/jgoTjgb4s44G444GE44GUDQor44Go44GP44GW44KPLOOBsuOBp+OBguOBjQ0KK+OBqOOBv+OBquOBjCzjgbLjgo3jgZMNCivjgajjgb/jgZ8s44GR44KT44GE44GhDQor44Go44G/44KE44G+LOOChuOBhuOBkw0KK+OBleOCj+OCgOOCiSzjgYvjgaTjgbLjgZMNCivjgajjgorjgZTjgYgs44GR44KT44GXDQor44Go44KK44Gf44GrLOOBvuOBk+OBqA0KK+OBqOOBleOBiyzjgZHjgYTjgZnjgZENCivjgaTjgbzjgYQs44G+44GV44KLDQor44Gy44KJ44Gw44KE44GXLOOBk+OBhuOBmA0KK+OBpOOBoeOBoCzjga/jgZjjgoENCivjgaTjgaHjgZ/jgass44Gb44GE44GE44Gh44KN44GGDQor44Gk44Gh44KELOOBvuOBk+OBqA0KK+OBpOOBoCzjgb/jgojjgZMNCivjgaTjgaAs44GI44Gk44G+44GVDQor44Gk44GYLOOCguOBqOOChuOBjQ0KK+OBpOOBmOOBhCzjgZ/jgZHjgbLjgZMNCivjgaTjgZjjgoDjgoks44KG44GN44Gy44GTDQor44Gk44GY44KA44KJLOOBoeOBiOOBkw0KK+OBpOOBmOOBrizjgZHjgpPjgZgNCivjgaTjgZjjgZXjgo8s44G+44GV44KLDQor44Gk44GL44GgLOOBk+OBhuOBmA0KK+OBpOOBi+OBr+OCiSzjgbLjgafjgZcNCivjgaTjgYvjgoLjgags44GL44Ga44Gu44KKDQor44Gk44GL44KC44GoLOOBn+OBpOOBvw0KK+OBpOOBi+OCguOBqCzjgZXjgaDjgobjgY0NCivjgaTjga3jgaAs44Gy44Gn44Gu44KKDQor44Gk44Gu44GgLOOBl+OCheOBmA0KK+OBpOOBruOBoCzjgb7jgZXjgbLjgZMNCivjgaTjgovjgb7jgoss44Go44KC44Gq44KKDQor44Gk44GV44GLLOOBsuOCjeOChuOBjQ0KK+OBpOOBpOOBhCzjgbLjgafjgY0NCivjgaTjgaTjgb8s44GX44GS44GoDQor44Gk44Gk44G/LOOBsuOCjeOBlw0KK+OBpOOBpOOBv+OBr+OCiSzjgYLjgaTjgojjgZcNCivjgYbjgaHjgaAs44Gy44KN44GXDQor44GG44Gh44GgLOOBi+OBmuOBig0KK+OBr+OChOOBlyzjgarjgovjgagNCivjgYbjgaHjgaAs44Gf44GL44GXDQor44GG44Gh44GuLOOBl+OCheOBsuOBoQ0KK+OBhuOBoeOChOOBvizjgobjgb8NCivjgYbjgaDjgYzjgo8s44Gf44GE44GeDQor44GG44GI44GgLOOBpuOBpOOBig0KK+OBhuOBiOOBoCzjgoTjgZnjgY0NCivjgYbjgYjjgaAs44KI44GX44G/DQor44Gt44GaLOOBkeOCk+OBn+OCjeOBhg0KK+OBhuOBiOOCgOOCiSzjgb7jgZXjgbLjgo0NCivjgYbjgYjjgoDjgoks44Gf44GR44GXDQor44GG44GI44KA44KJLOOBkeOCk+OBhOOBoeOCjQ0KK+OBhuOBiOOBrizjgZ/jgYvjgZcNCivjgYbjgYjjga4s44GR44KTDQor44GG44GI44GV44KPLOOBn+OBi+OBl+OBkg0KK+OBhuOBiOOBpOOBvCzjgb7jgZXjga7jgooNCivjgYbjgYjjgaTjgY0s44G+44GV44Gv44KLDQor44GG44GR44GuLOOBn+OBi+OBig0KK+OBhuOBvuOBr+OBlyzjgb7jgZPjgagNCivjgYbjgoHjgaAs44GV44Gg44KG44GNDQor44GG44KB44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBhuOBv+OBoCzjgZ/jgaTjgoQNCivjgYbjgYrjgZrjgb8s44GV44Go44GXDQor44GG44KJ44GfLOOBguOChOOBrg0KK+OBhuOBl+OBj+OBlSzjgZfjgpPjgYTjgaENCivjgYbjgZnjgarjgb8s44Gy44KN44KG44GNDQor44KP44GgLOOBkeOCk+OBmA0KK+OCj+OBoCzjgZ/jgZHjgZcNCivjgo/jgaAs44Go44GX44GC44GNDQor44KP44GgLOOBleOBqOOBlw0KK+OCj+OBi+OBmyzjgZfjgofjgZ8NCivjgo/jgY0s44GR44KT44GE44GhDQor44KP44Gf44Gq44G5LOOBl+OCk+OChA0KK+OCj+OBn+OBquOBuSzjgajjgoLjgbXjgb8NCivjgo/jgZ/jgarjgbks44Go44GX44Gy44KNDQor44KP44Gf44Gq44G5LOOCiOOBl+OBn+OBiw0KK+OCj+OBn+OBquOBuSzjgojjgZfjgabjgosNCivjgo/jgZ/jgarjgbks44KG44GZ44GRDQor44KP44Gf44Gq44G5LOOBsuOBp+OBteOBvw0KK+OCj+OBn+OBrOOBjSzjgoTjgZnjgZ/jgYsNCivjgo/jgZ/jgazjgY0s44GL44GK44KLDQor44KP44Gf44KKLOOBk+OBhuOBjeOBoQ0KK+OBr+OBl+OBkOOBoSzjgZXjgpPjgbrjgYQNCivjgoTjgbYs44Gb44KT44GfDQor44KE44GO44Gs44G+LOOBqOOBl+OChuOBjQ0KK+OChOOBmOOBvizjgZjjgoXjgpMNCivjgoTjgb7jgaAs44GY44KF44Gr44GhDQor44KE44G+44GgLOOBi+OBiuOCig0KK+OChOOBvuOBoCzjgb/jgY0NCivjgoTjgb7jgaAs44G/44Gk44Gu44KKDQor44KE44G+44GgLOOBleOBqOOCiOOBlw0KK+OChOOBvuOBoCzjgZ/jgaDjgZcNCivjgoTjgb7jgaAs44Gf44GR44GXDQor44KE44G+44GgLOOBqOOCguOBguOBjQ0KK+OChOOBvuOBoCzjgojjgZfjgbLjgZUNCivjgoTjgb7jgaAs44Gm44GE44GYDQor44Gy44GV44GuLOOCiOOBl+OBjQ0KK+OChOOBvuOBoCzjgojjgZfjgobjgY0NCivjgoTjgb7jgaAs44GL44Ga44GoDQor44KE44G+44G144GYLOOCiOOBl+OBsuOBlQ0KK+OChOOBvuOBjuOCjyzjgbLjgafjgYoNCivjgoTjgb7jgZDjgaEs44Gy44KN44G/44GkDQor44KE44G+44GQ44GhLOOBmOOCheOCk+OChA0KK+OChOOBvuOBkOOBoSzjgZPjgYbjgZgNCivjgoTjgb7jgZDjgaEs44G/44Gk44GC44GNDQor44KE44G+44GQ44GhLOOBquOBiuOBjQ0KK+OChOOBvuOBkOOBoSzjgZfjgZLjgbXjgb8NCivjgoTjgb7jgZDjgaEs44KI44GX44Gf44GLDQor44KE44G+44GQ44GhLOOChuOBmeOBkQ0KK+OChOOBvuOBkOOBoSzjgobjgYbjgZMNCivjgoTjgb7jgYvjgo8s44GC44GN44GC44GkDQor44KE44G+44KC44GoLOOBguOBjeOCiQ0KK+OChOOBvuOCguOBqCzjgaHjgYgNCivjgb/jgZrjgZ/jgass44Gy44KN44GTDQor44KE44G+44KC44GoLOOBi+OBmuOBvw0KK+OChOOBvuOCguOBqCzjgb7jgZXjgojjgZcNCivjgoTjgb7jgoLjgags44KK44GLDQor44KE44G+44KC44GoLOOBleOBqOOBlw0KK+OChOOBvuOCguOBqCzjgZXjgoTjgYsNCivjgoTjgb7jgoLjgags44Gf44Gk44KEDQor44KE44G+44KC44GoLOOChOOBmeOBsuOBkw0KK+OChOOBvuOCguOBqCzjgoTjgZnjgbLjgo0NCivjgoTjgb7jgoLjgags44KI44GX44Gy44KNDQor44KE44G+44KC44GoLOOBruOCiuOChuOBjQ0KK+OChOOBvuOBrSzjgobjgYQNCivjgoTjgb7jga0s44GE44GV44GKDQor44KE44G+44GX44GfLOOBpuOBpOOChA0KK+OChOOBvuOBl+OBnyzjgZ/jgZHjga/jgosNCivjga/jgpPjgaAs44GC44GN44KJDQor44KE44G+44GG44GhLOOBn+OBi+OBsuOCjQ0KK+OChOOBvuOBhuOBoSzjgobjgY3jgZMNCivjgoTjgb7jgYbjgoks44Gy44KN44GXDQor44KE44G+44GW44GNLOOBi+OBquOBkw0KK+OChOOBvuOBluOBjSzjgY3jgb/jgYoNCivjgoTjgb7jgZbjgY0s44G/44Gp44KKDQor44Gf44KA44KJLOOBv+OBpOOBsuOCjQ0KK+OChOOBvuOBluOBjSzjgojjga7jgZnjgZENCivjgoTjgb7jgZbjgY0s44Gq44GK44GoDQor44KE44G+44Ge44GILOOBn+OBi+OBlw0KK+OChOOBquOBjuOBleOCjyzjgYvjgaTjgZgNCivjgoTjga4s44GL44GaDQor44KE44GZ44GgLOOBi+OBmuOBguOBjQ0KK+OChOOBmeOBr+OCiSzjgbLjgarjgZMNCivjgZPjgZfjgoLjgags44GX44KT44GE44GhDQor44Gv44GO44KP44KJLOOBvuOBk+OBqA0KK+OCiOOBk+OBnyzjgoTjgZnjgbLjgZUNCivjgojjgZPjgoTjgb4s44Go44GX44GKDQor44KI44KC44GgLOOBi+OBmuOBsuOBlQ0KK+OCiOOBquOBjCzjgYTjgZXjgYoNCivjgojjga3jgaAs44KI44GX44KEDQor44KI44Gt44KE44G+LOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OCiOOBreOBluOCjyzjgZ/jgYvjgZcNCivjgojjga3jgZbjgo8s44Gy44KN44GoDQor44KI44GX44GgLOOBi+OBmuOCiOOBlw0KK+OCiOOBl+OBoCzjgZHjgpPjgYTjgaENCivjgojjgZfjgaAs44G+44GV44Go44GXDQor44KI44GX44GgLOOBleOBqOOBlw0KK+OCiOOBl+OBoCzjgZ/jgYvjgYoNCivjgojjgZfjgaAs44Gf44GL44GXDQor44KI44GX44GgLOOChuOBv+OBkw0KK+OCiOOBl+OBoCzjgZ/jgZHjgZcNCivjgojjgZfjgZDjgaEs44Gy44Gn44GNDQor44KI44GX44GELOOBkeOBhOOBkw0KK+OCiOOBl+OBhOOBkSzjgoLjgagNCivjgojjgZfjgb7jgaQs44G/44GN44GKDQor44KI44GX44GuLOOBpuOCi+OBsuOBlQ0KK+OCiOOBl+OBrizjgZ/jgZHjgZcNCivjgojjgZfjgZbjgo8s44GC44GN44KJDQor44KI44Gk44Gf44GrLOOBleOBqOOBlw0KK+OChuOBjeOBluOBrSzjgbLjgo3jgZ/jgZENCivjgobjgoTjgb4s44GV44Gh44KIDQor44Ga44GXLOOBiOOCig0KK+OBguOCieOBhCzjgajjgoLjgbLjgZUNCivjgbXjgZjjgY0s44G+44KG44G/DQor44Gy44KJ44GuLOOBpuOCi+OChOOBmQ0KK+OBi+OCgeOChOOBvizjgYvjgaTjgbLjgo0NCivjgZPjgZjjgb4s44G+44GV44GoDQor44Gq44GL44GKLOOBguOBjeOBsuOBlQ0KK+OBhOOCj+OBi+OCjyzjgZXjgaHjgZMNCivjgaTjgaHjgoQs44GR44KT44GUDQor44GE44GY44KNLOOBjeOCiOOBsuOBqA0KK+OBj+OBqeOBhizjga7jgbbjgZMNCivjgarjgYzjgZfjgb4s44KG44GN44GKDQor44Gv44GX44GQ44GhLOOBjeOCiOOChuOBjQ0KK+OBpOOBoeOChCzjgZHjgpPjgZ/jgo3jgYYNCivjgYTjgZfjgb7jgaQs44Gy44GV44KI44GXDQor44Gv44KJ44GgLOOBl+OBkuOBig0KK+OBv+OBmuOBrizjgYrjgZXjgoANCivjgbvjgZfjga4s44G/44Gk44Gy44KNDQor44GC44G5LOOBm+OBhOOBmA0KK+OBguOBuSzjgojjgZfjgbLjgZUNCivjgYLjgbks44KG44GN44GKDQor44GC44G5LOOBvuOBleOBqA0KK+OBguOBtuOBi+OCjyzjgobjgbLjgaENCivjgYLjgaDjgaEs44GX44GS44KLDQor44GC44GE44GW44KPLOOBsuOBp+OBruOBtg0KK+OBguOBmOOCjSzjgYvjgZrjgYoNCivjgYLjgYvjgYQs44KB44GQ44G/DQor44Gf44KC44GoLOOBneOBhuOBn+OCjeOBhg0KK+OBguOBi+OBhOOBlyzjgZ/jgaTjgoQNCivjgYLjgYvjgZcs44GT44GG44GYDQor44GC44GN44GE44GRLOOBqOOCguOBkw0KK+OBguOBjeOBnyzjgYvjgZrjgbLjgagNCivjgYLjgY3jgoTjgb4s44GL44Gk44KG44GNDQor44GC44G+44GM44GELOOBkeOBhOOBkw0KK+OBguOBvuOBjOOBnyzjgbLjgo3jgoTjgZkNCivjgYLjgb7jga4s44Gy44KN44Gf44GLDQor44GC44KB44G/44KELOOBteOBv+OBig0KK+OBguOCk+OBqeOBhizjga/jgovjgYoNCivjgYLjgpPjganjgYYs44GX44GS44Gu44KKDQor44GC44KT44Gp44GGLOOBn+OBi+OBkw0KK+OBguOCk+OBqeOBhizjgobjgZ/jgYsNCivjgYLjgpPjgZbjgYQs44GI44GE44GE44GhDQor44GC44GK44GNLOOBv+OBlQ0KK+OBguOBiuOBjSzjgZHjgpPjgZ/jgo3jgYYNCivjgYLjgYrjgoTjgY4s44GN44KK44GTDQor44GC44GK44KE44G+LOOBvuOBleOChuOBjQ0KK+OBguOCieOBhCzjgajjgZfjgYLjgY0NCivjgYLjgonjgYQs44G/44GN44GKDQor44GC44KJ44GNLOOBiOOBhOOBoQ0KK+OBguOCieOChCzjgb7jgobjgb8NCivjgYLjgorjgb4s44KE44GZ44Gy44KNDQor44GC44KK44Gf44GRLOOBruOCiuOBoeOBiw0KK+OBguOBleOBoCzjgoDjgaTjgb8NCivjgYLjgZXjgbIs44Gy44Gn44G144G/DQor44GC44GV44GuLOOBn+OBi+OBlw0KK+OBguOBl+OBoCzjgb/jgbsNCivjgYLjgZfjgYvjgo8s44GL44Gk44G/DQor44Gw44GwLOOBi+OBmuOBsuOCjQ0KK+OBsOOBsCzjgZ/jgYvjgobjgY0NCivjgbDjgbAs44Gg44GE44GUDQor44Gh44GwLOOBl+OCk+OBlA0KK+OBlOOBqCzjgb7jgZXjgbLjgacNCivjgaHjgocs44G+44GV44Go44GXDQor44Gg44GE44GpLOOBguOBjeOBteOBvw0KK+OBqeOBguOBhCzjgYLjgaTjgagNCivjganjgYQs44KG44GG44GTDQor44G744Gd44GELOOBvuOBleOBlw0KK+OBqeOBhCzjgajjgoLjgarjgooNCivjganjgYQs44Go44GX44G/44GkDQor44GI44GM44GX44KJLOOBsuOCjeOBguOBjQ0KK+OBiOOBkOOBoSzjgZfjgpPjgYTjgaENCivjgYjjgbDjgoks44Gb44GE44GYDQor44GI44KT44GpLOOBn+OBkeOBig0KK+OBiOOCk+OBqSzjgobjgYbjgZgNCivjgYLjgb7jgoos44GY44KF44KT44GTDQor44GI44Gu44KC44GoLOOBleOBqOOBlw0KK+OBiOOBruOCguOBqCzjgZXjgajjgZcNCivjgYjjga7jgoLjgags44KE44GZ44KG44GNDQor44GI44Gu44KC44GoLOOBn+OBi+OBr+OCiw0KK+OBiOOBluOBjSzjgZHjgpPjgZgNCivjgbXjgZjjga/jgoks44GY44KF44KT44GTDQor44G144GY44GELOOBvuOBleOBsuOBkw0KK+OBteOBmOOBhCzjgYjjgYTjgZgNCivjgbLjgovjgYvjgo8s44KG44GG44GTDQor44G144GY44GELOOBk+OBhuOBmA0KK+OBteOBmOOBleOCjyzjgajjgoLjgbLjgo0NCivjgbXjgZjjgZXjgo8s44Gf44GP44GYDQor44Gy44GULOOBhOOBleOBig0KK+OBteOBmOOBnyzjgZHjgpPjgYTjgaENCivjgbXjgZjjgZ8s44Gy44Gn44Gf44GLDQor44G144GY44KP44KJLOOChOOBmeOBsuOCjQ0KK+OBteOBi+OBvyzjgaTjgajjgoANCivjgbXjgYvjgZbjgo8s44GX44KT44GE44GhDQor44Gv44Gb44GM44KPLOOBleOBqOOBlw0KK+OBteOBj+OBoCzjgZHjgpPjgZgNCivjgbXjgY/jgoLjgags44GN44KI44G/DQor44G144GP44KA44KNLOOBvuOBleOBvw0KK+OBteOBj+OCjSzjgYLjgY3jgokNCivjgbXjgY/jgZcs44Gh44GL44KJDQor44G144GP44GX44G+LOOBi+OBmuOBsuOBqA0KK+OBteOBj+OBl+OBvizjgb7jgZXjga/jgosNCivjga/jgY7jgo/jgoks44Gf44GL44GXDQor44G144GP44GX44G+LOOBleOBpOOBjQ0KK+OBteOBquOBjSzjgZHjgpMNCivjgbXjgarjgY/jgbws44G+44GV44Gy44GTDQor44Gv44KJ44GgLOOBr+OCi+OBvw0KK+OBteOCi+OBr+OBnyzjgbLjgo3jgobjgY0NCivjgbXjgovjgYvjgo8s44GL44Gk44KG44GNDQor44G144KL44KC44GoLOOBpOOCiOOBlw0KK+OBteOCi+OChCzjgZ/jgYvjgZcNCivjgbXjgZfjgb8s44Go44GK44KLDQor44GU44GgLOOChOOBmeOChuOBjQ0KK+OBhOOCiuOBiCzjgZ/jgZHjgZcNCivjgYTjgZfjga/jgoks44KI44GZ44GRDQor44GE44Gh44GL44KPLOOBmOOCheOCk+OBkw0KK+OBhOOBsCzjgb/jgaTjgYoNCivjgYTjgo/jgZXjgY0s44Gf44GL44GXDQor44GE44Gu44GG44GILOOChOOBmeOBkw0KK+OBhOOBhOOCguOCiizjgbLjgo3jgb8NCivjgYTjga/jgoks44Gf44GL44G/DQor44GE44KP44KA44KJLOOBl+OCk+OBhOOBoQ0KK+OBhOOBquOBjOOBjSzjgajjgZfjgYoNCivjgYTjgZfjgZjjgb4s44GC44GN44KJDQor44GE44Go44GGLOOBquOBiuOBjQ0KK+OBlOOCk+OBqSzjgbXjgb/jgYoNCivjgZTjgags44G/44Gu44KLDQor44GE44GX44GL44KPLOOCguOBqOOBteOBvw0KK+OBhOOBqOOBhizjgb7jgaHjgZMNCivjgYTjgZvjgY0s44Gf44GL44GXDQor44GU44GoLOOBqOOCguOChA0KK+OBr+OBoCzjgbLjgo3jgb8NCivjga/jgY7jgo/jgoks44G/44GN44GKDQor44Gv44GO44KP44KJLOOBl+OCk+OBmA0KK+OBr+OBhOOBmOOBvizjgYLjgY3jgokNCivjga/jgb7jgaAs44G+44GV44KG44GNDQor44Gv44G+44GuLOOBvuOBvw0KK+OBr+OBvuOBiuOBiyzjgZXjgYjjgZMNCivjga/jgarjgaks44GC44KE44GTDQor44Gv44Gq44GfLOOBvuOBleOBsuOCjQ0KK+OBr+OCiSzjgZvjgYTjgZgNCivjga/jgoks44GX44KH44GfDQor44Gv44KJLOOChuOBjeOBig0KK+OBr+OCiSzjgYvjgZrjgbLjgo0NCivjga/jgonjgaAs44GX44KNDQor44Gv44KJ44GgLOOBl+OCheOBmA0KK+OBr+OCieOBoCzjgZnjgb/jgowNCivjgZnjgZrjgY0s44G+44GV44Gy44GTDQor44Gv44KJ44GMLOOBvuOBleOBruOBtg0KK+OBr+OCieOBvyzjgorjgZMNCivjga/jgonjgoTjgb4s44Gy44KN44KG44GNDQor44Gv44KJ44Ge44GuLOOBsuOBp+OBguOBjQ0KK+OBr+OBm+OBuSzjgb/jgo/jgZMNCivjgYvjga3jgZMs44Go44KC44GTDQor44Gk44Gh44GgLOOBguOBhOOBkw0KK+OBr+OBl+OCguOBqCzjgbLjgo3jgZcNCivjga/jgZfjgoLjgags44Gy44KN44Gk44GQDQor44Gv44GX44KC44GoLOOBk+OBmeOBkQ0KK+OBr+OBl+OCguOBqCzjgb/jga7jgosNCivjga/jgZfjgoLjgags44Gm44Gk44KEDQor44Gv44GX44KC44GoLOOBqOOCguOBsuOBkw0KK+OBr+OBl+OCguOBqCzjgobjgYbjgZgNCivjga/jgZfjgoLjgags44Gf44GR44GXDQor44Gv44GfLOOBjeOCh+OBkw0KK+OBr+OBo+OBqOOCiizjgZfjgpMNCivjga/jgaPjgajjgoos44Gf44GR44GXDQor44Gv44Gj44Go44KKLOOBguOBjeOBsuOBqA0KK+OBr+OChOOBi+OCjyzjgZ/jgZHjgo0NCivjga/jgoTjgYvjgo8s44Gf44Gk44KEDQor44Gv44KE44GV44GLLOOBkeOCk+OBn+OCjeOBhg0KK+OBr+OChOOBleOBjSzjga7jgbbjgbLjgZMNCivjga/jgoTjgZcs44Gu44G244Gy44KNDQor44Gv44KE44GXLOOBn+OBj+OBmA0KK+OBr+OChOOBlyzjgajjgoLjgYLjgY0NCivjga/jgoTjgZcs44KI44Gy44GhDQor44Gv44KE44GXLOOCiuOBiA0KK+OBr+OChOOBl+OBoCzjgbXjgb/jgbLjgo0NCivjgbLjgbMs44GL44Gq44GIDQor44Gy44GM44GXLOOBleOBqOOBlw0KK+OBsuOBjOOBlyzjgZ/jgYvjgYLjgY0NCivjgbLjgZDjgaEs44Gy44Gn44GNDQor44Gy44GY44GL44GfLOOBsuOBp+OBjQ0KK+OBsuOBmOOChCzjgojjgZfjgbLjgZMNCivjgbLjgarjgYws44GR44GE44GTDQor44Gy44KJ44GL44KPLOOBsuOBp+OBguOBjQ0KK+OBsuOCieOBrizjgb7jgZPjgagNCivjgbLjgonjga4s44Gb44GE44GYDQor44Gy44KJ44GuLOOBjeOCiOOBlw0KK+OBsuOCieOBiizjgbLjgafjga/jgosNCivjgbLjgonjgZfjgb4s44KI44GX44GL44GaDQor44Gy44KJ44KE44G+LOOBm+OBhOOBlA0KK+OBsuOCieOChOOBmSzjgajjgZfjgbLjgZMNCivjgbLjgorjgY0s44Gf44GL44KI44GXDQor44Gy44KN44G+44GVLOOBn+OBi+OBquOCig0KK+OBsuOCjeOCguOBqCzjgoTjgZnjgY0NCivjgbLjgo3jgYrjgYss44GC44GN44KJDQor44Gy44KN44GbLOOBkeOCk+OBng0KK+OBsuOCjeOBmyzjgYvjgZrjga7jgbYNCivjgYbjgoHjgaAs44KE44GZ44Gy44KNDQor44G744KT44GgLOOBi+OBmuOBig0KK+OBu+OCk+OBqSzjgZPjgYbjgYTjgaHjgo0NCivjgbvjgorjgoLjgags44GR44KT44GYDQor44G744KK44GuLOOCiOOBl+OBig0KK+OBu+OCiuOBhuOBoSzjgZ/jgZHjgZcNCivjgbvjgZXjgYss44Gy44Gn44GC44GNDQor44G744GX44GuLOOBsuOCjeOBkw0KK+OBu+OBl+OChOOBvizjgYTjgZ/jgosNCivjgbvjgZ3jgYvjgo8s44Gf44Gg44GKDQor44G744Gd44GL44KPLOOBn+OBi+OBsuOBqA0KK+OBu+OBneOBi+OCjyzjgarjgYrjgY0NCivjgbvjgZ3jgoQs44Go44GX44KNDQor44GE44Gw44KJ44GNLOOBsuOBqOOBlw0KK+OBhOOBoeOBr+OCiSzjgZHjgpPjgYTjgaHjgo0NCivjgYTjgaHjga/jgoks44KP44Gf44KLDQor44GE44Gh44Gv44KJLOOBl+OCk+OBmA0KK+OBhOOBoeOBi+OCjyzjgb7jgarjgbYNCivjgYTjgaHjga7jgZss44KG44G/44GTDQor44GE44GgLOOBvuOBpOOBn+OCjeOBhg0KK+OBhOOBp+OBkOOBoSzjgorjgofjgbLjgaENCivjgYTjgaks44GV44Gq44GIDQor44GE44GM44KJ44GXLOOBn+OBkeOBlw0KK+OBhOOBjOOCieOBlyzjgoTjgZnjgobjgY0NCivjgYTjgYzjgonjgZcs44GL44Ga44GX44GSDQor44GE44GE44GgLOOBn+OBi+OBrQ0KK+OBhOOBhOOBoCzjgYLjgY3jgZMNCivjgYTjgYTjgZjjgb4s44G+44GT44GoDQor44GE44GR44GgLOOBv+OBjuOBteOBvw0KK+OBhOOBkeOBoCzjgabjgaTjgoQNCivjgYTjgZHjgaAs44KI44GX44Gy44KNDQor44GE44GR44GgLOOBl+OBkuOBig0KK+OBhOOBvuOBhCzjgbLjgo3jgZcNCivjgYTjgb7jgYTjgZrjgb8s44Gu44G244GKDQor44GE44G+44GE44Ga44G/LOOBsuOBleOBv+OBpA0KK+OBhOOBvuOCgOOCiSzjgZ/jgYvjgZcNCivjgYTjgb7jgoDjgoks44Gu44G244GTDQor44GE44KC44KTLOOBkeOCk+OBhOOBoQ0KK+OBhOOBquOBoCzjgZXjgajjgZcNCivjgYTjgarjgYzjgY0s44Gf44GR44GXDQor44GE44Gq44GM44GNLOOBi+OBmuOBsuOBqA0KK+OBhOOBquOCgOOCiSzjgb7jgZXjgZcNCivjgYTjgarjgoDjgoks44GL44Gk44Gu44G2DQor44GE44GuLOOChuOBjeOBsuOBkw0KK+OBhOOBruOBi+OCjyzjgbLjgo3jgZcNCivjgYTjga7jgb7jgZ8s44Gy44KN44GKDQor44GE44Gu44GG44GILOOBi+OBpOOBqOOBlw0KK+OBhOOBruOBhuOBiCzjgZPjgYbjgZgNCivjgYTjga7jgYbjgYgs44KK44KHDQor44GE44Gu44GG44GILOOBqOOCguOBvw0KK+OBhOOBruOBhuOBiCzjgajjgoLjgb8NCivjgYTjga7jgYbjgYgs44KI44GG44GTDQor44GE44Gu44GG44GILOOBk+OBjQ0KK+OBhOOBrOOBhCzjgZHjgYTjgZMNCivjgYTjgazjgZfjgb4s44G/44KPDQor44GE44KK44GILOOBiuOBleOCgA0KK+OBhOOBleOBiyzjgb/jga7jgosNCivjgYTjgZfjgbAs44GL44Ga44KG44GNDQor44GE44GX44Gw44GXLOOBvuOBmeOBvw0KK+OBhOOBl+OBsOOBlyzjgYvjgZrjgoQNCivjgYTjgZfjgaAs44G/44Gk44KEDQor44GE44GX44GgLOOBn+OBi+OBlw0KK+OBhOOBl+OBoCzjgajjgoLjga7jgooNCivjgYTjgZfjgaAs44Gb44GE44GE44Gh44KN44GGDQor44GE44GX44GM44G/LOOBguOBmeOBkw0KK+OBhOOBl+OBkOOCjSzjgYvjgZrjgbLjgagNCivjgYTjgZfjga/jgoks44Gy44KN44GL44GaDQor44GE44GX44GELOOBleOBqOOBlw0KK+OBhOOBl+OBhCzjgZfjgbsNCivjgYTjgZfjgYQs44KE44GZ44Gy44KNDQor44GE44GX44GELOOChuOBhuOBmA0KK+OBhOOBl+OBhCzjgobjgYbjgZ8NCivjgYTjgZfjgYQs44GT44GG44GE44Gh44KNDQor44GE44GX44GL44KPLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBhOOBl+OBvuOCiyzjgb7jgobjgb8NCivjgYvjgo/jgZos44G+44GV44Gu44KKDQor44GE44GX44Ga44GLLOOBl+OBkuOCiw0KK+OBhOOBn+OChCzjgaHjgbLjgo0NCivjgYTjgYTjgaAs44Gg44GE44GZ44GRDQor44GE44Go44GGLOOBsuOBp+OBjQ0KK+OBhOOBqOOBhizjgbLjgo3jgb/jgaQNCivjgYTjgajjgYYs44Gy44KN44GXDQor44GE44Go44GGLOOBi+OBpOOBsuOCjQ0KK+OBhOOBqOOBhizjgZHjgYTjgYTjgaENCivjgYTjgajjgYYs44GT44GG44GE44GhDQor44GE44Go44GGLOOBk+OBhuOBmA0KK+OBhOOBqOOBhizjgb7jgorjgZMNCivjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GE44Go44GGLOOBquOBiuOBvw0KK+OBhOOBqOOBhizjga7jgbzjgosNCivjgYTjgajjgYYs44Gb44Gk44GTDQor44GE44Go44GGLOOBn+OBoOOBlw0KK+OBhOOBqOOBhizjgZ/jgYvjga/jgosNCivjgYTjgajjgYYs44Go44GX44GKDQor44GE44Go44GGLOOBpOOCiOOBlw0KK+OBhOOBqOOBhizjgojjgbLjgaENCivjgYTjgajjgYYs44KG44GN44GKDQor44GE44Go44GGLOOBruOCiuOBsuOBlQ0KK+OBhOOBqOOBhizjgYLjgY3jgbLjgo0NCivjgYTjgo/jgYQs44Gy44KN44G/44GhDQor44GE44KP44GELOOBsuOCjeOBlw0KK+OBhOOCj+OBvyzjgYTjgY/jgYoNCivjgYTjgo/jgoDjgoks44GL44Ga44KEDQor44GE44KP44Gq44GMLOOBl+OCh+OBkw0KK+OBhOOCj+OBiizjgYvjgZrjgbLjgo0NCivjgYTjgo/jgZXjgY0s44GY44KF44KTDQor44GE44KP44GfLOOBvuOBk+OBqA0KK+OBhOOCj+OBnyzjgYrjgZXjgoANCivjgYTjgo/jgZ8s44KI44GX44G+44GVDQor44GE44Ga44G/LOOBvuOBleOChuOBjQ0KK+OBmOOCk+OBsCzjgb7jgZXjgb8NCivjgZjjgofjga7jgYbjgaEs44Gy44KN44GC44GNDQor44GY44KH44KJ44GPLOOBn+OBvuOBjQ0KK+OBi+OBjOOBvyzjgY3jgojjgZ/jgYsNCivjgYvjgYzjgo8s44G+44GV44G144G/DQor44GL44GS44KE44G+LOOBsuOCjeOBi+OBmg0KK+OBi+OBhCzjgobjgY3jgYoNCivjgYvjgZjjgoLjgags44GI44GE44GYDQor44GL44GY44KP44KJLOOBv+OBu+OBkw0KK+OBj+OCiuOBr+OCiSzjgZ/jgYvjgobjgY0NCivjgYvjgY3jgoDjgoks44GL44Ga44GX44GSDQor44GL44GN44Gu44GNLOOBjeOCiOOBlw0KK+OBi+OBjeOBhuOBoSzjgojjgZfjgZ/jgYsNCivjgYvjgY3jgZbjgY0s44Gq44GK44GTDQor44GL44GTLOOBi+OBmuOBguOBjQ0KK+OBi+OCgeOBl+OBvizjgorjgoXjgZMNCivjgYvjgb/jgYjjgZks44GN44KI44GTDQor44GL44G/44GP44KJLOOBv+OBpOOBsuOCjQ0KK+OBi+OBv+OCgOOCiSzjgZfjgpPjgZgNCivjgYvjgb/jgZ/jgY0s44Gu44Ge44KADQor44GL44G/44KI44GX44GL44KPLOOBpOOBreOBruOCig0KK+OBi+OCkyzjgorjgYgNCivjgYvjgarjgYQs44KI44GX44Gu44KKDQor44GL44KT44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBi+OCk+OBoCzjgZHjgYTjgZ8NCivjgYvjga3jgZMs44Gf44G+44GNDQor44GL44Gt44GTLOOBmOOCheOCkw0KK+OBi+OBreOBnyzjgZ/jgY/jgoQNCivjgYvjga4s44Gb44GE44GYDQor44GL44KK44GuLOOBiOOBhOOBmA0KK+OBi+OBleOBvyzjgZjjgoXjgpMNCivjgYvjgZXjgarjgb8s44Gf44GL44GC44GNDQor44GL44GbLOOBsuOCjeOChuOBjQ0KK+OBi+OBmeOBjCzjgZPjgYbjgZgNCivjgYvjgZnjgoQs44Go44GX44Gy44GTDQor44GL44Gf44GK44GLLOOBoOOBhOOBmeOBkQ0KK+OBi+OBqOOBhizjgYjjgYTjgYTjgaENCivjgYvjgajjgYYs44Gy44KN44GXDQor44GL44Go44GGLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBi+OBqOOBhizjgb7jgZXjgZgNCivjgYvjgajjgYYs44G+44GV44KG44GNDQor44GL44Go44GGLOOBn+OBj+OChA0KK+OBi+OBqOOBhizjgajjgZfjgYvjgZoNCivjgYvjgajjgYYs44GE44Gh44KN44GGDQor44GL44Go44GGLOOCiOOBl+OBsuOBqA0KK+OBi+OBqOOBhizjgZ/jgYvjgobjgY0NCivjgYvjgaTjgb7jgZ8s44KE44GZ44KG44GNDQor44GL44Gk44KJLOOBn+OBi+OBlw0KK+OBi+OCj+OBuSzjgb7jgobjgb8NCivjgYvjgo/jgaAs44Gy44KN44GXDQor44GL44KP44GQ44GhLOOBi+OBquOBiA0KK+OBleOBhOOBqOOBhizjgZ/jgYvjgagNCivjgYvjgo/jgZDjgaEs44G+44KC44KLDQor44GL44KP44Gv44GfLOOBsuOCjeOBlw0KK+OBi+OCj+OBi+OBvyzjgb7jgZXjgarjgooNCivjgYvjgo/jgYvjgb8s44Gu44KK44GTDQor44KE44GY44G+LOOBquOBiuOBkw0KK+OBi+OCj+OCguOBqCzjgbLjgo3jgZcNCivjgYvjgo/jgoDjgoks44G+44GV44KG44GNDQor44GL44KP44KA44KJLOOBruOCiuOBguOBjQ0KK+OBi+OCj+OCgOOCiSzjgZ/jgaDjgYLjgY0NCivjgYvjgo/jgoDjgoks44GR44KT44GYDQor44GL44KP44GuLOOBkeOCk+OBmA0KK+OBi+OCj+OBrizjgZ/jgYvjgobjgY0NCivjgYvjgo/jgZXjgY0s44GC44GN44Gy44GoDQor44GL44KP44GbLOOBmOOCjQ0KK+OBi+OCj+OBl+OBvizjgY/jgb8NCivjgYvjgo/jgZfjgb4s44G+44GV44GNDQor44GL44KP44GX44G+LOOCiOOBl+OChuOBjQ0KK+OBi+OCj+OBl+OBvizjgZ/jgZHjgZcNCivjgY3jgaAs44Gy44Gn44GNDQor44GN44GP44GhLOOBsuOBp+OBn+OBiw0KK+OBjeOBj+OBoSzjgYTjgY/jgZMNCivjgoTjgb7jgoLjgags44GL44GK44KKDQor44GC44GN44KI44GXLOOBi+OBmuOCiOOBlw0KK+OBjeOBj+OBoSzjgZHjgpPjgYTjgaENCivjgY3jgY/jgaEs44G/44Gk44KIDQor44GN44GP44GhLOOBpOOCiOOBlw0KK+OBjeOBj+OBoSzjgbLjgafjgYLjgY0NCivjgY3jgoDjgoks44Gy44KN44GXDQor44GN44KA44KJLOOBmOOCheOBq+OBoQ0KK+OBjeOCgOOCiSzjgb7jgooNCivjgY3jgoDjgoks44G+44GV44Gy44GTDQor44GN44KA44KJLOOBvuOBleOBi+OBpA0KK+OBjeOCgOOCiSzjgZfjgZLjgobjgY0NCivjgY3jgoDjgoks44GR44KT44GYDQor44GL44Go44GGLOOBqOOBl+OChA0KK+OBjeOBquOBmyzjgojjgZfjga/jgosNCivjgY3jga0s44Gy44Gn44GNDQor44GN44GuLOOChOOBmeOBruOBtg0KK+OBjeOBrizjgb/jga7jgosNCivjgY3jga7jgZfjgZ8s44GL44Ga44KEDQor44GN44KJLOOBn+OBi+OBsuOBpw0KK+OBjeOBl+OCguOBqCzjgoTjgZnjgbLjgo0NCivjgY3jgZ/jgbDjgZ/jgZEs44KE44GZ44Gy44KNDQor44GN44Gf44Gw44Gf44GRLOOBvuOCguOCiw0KK+OBjeOBn+OBjOOCjyzjgZ/jgaTjgoQNCivjgY3jgZ/jgYzjgo8s44G/44Gk44KLDQor44GN44Gf44KA44KJLOOBguOBjeOBkw0KK+OBn+OBi+OBr+OBlyzjgbXjgb/jgbLjgZMNCivjgY3jgZ/jgoTjgb4s44G+44GV44Gy44GTDQor44GN44KI44Gq44KKLOOBguOBjeOBsuOBkw0KK+OBk+OBsOOChOOBlyzjgYLjgaTjgZcNCivjgZPjgbDjgoTjgZcs44Gy44KN44GXDQor44GT44Gw44KE44GXLOOBvuOBleOBjQ0KK+OBk+OBsOOChOOBlyzjgb/jga7jgosNCivjgZPjgbDjgoTjgZcs44GX44KH44GYDQor44GT44Gw44KE44GXLOOChuOBhuOBmA0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgZMNCivjgYTjgajjgYYs44GC44GNDQor44GT44GuLOOBi+OBmuOBsuOCjQ0KK+OBk+OBrizjgZHjgYTjgZ8NCivjgZPjga4s44KI44GG44GTDQor44GT44GuLOOBqOOBiuOCiw0KK+OBk+OBhOOBkSzjgYLjgY3jgYoNCivjgZPjgZjjgb4s44Gf44GL44Gy44GTDQor44GT44GP44GX44KHLOOBiuOBleOCgA0KK+OBk+OBvuOBjSzjgaHjgYvjgZMNCivjgb7jgYvjgbks44Gy44KN44GC44GNDQor44GT44G+44GkLOOCgeOBkOOBvw0KK+OBk+OBvuOBpCzjgYjjgYTjgZgNCivjgZPjgpPjgaks44Gy44KN44GXDQor44GT44KT44GpLOOBjeOCiOOBlw0KK+OBk+OCk+OBqSzjgajjgZfjgbLjgo0NCivjgZPjgZfjgbAs44GC44GN44GTDQor44KI44GT44GILOOBn+OBi+OBlw0KK+OBk+OBpuOBjOOCjyzjgbLjgo3jgZcNCivjgZPjga4s44Gy44KN44GC44GNDQor44GT44KE44G+LOOBquOBiuOBjQ0KK+OBk+OChOOBvizjgZfjgpPjgZgNCivjgZPjgoTjgb4s44KI44Gy44GhDQor44GT44GW44GZLOOBn+OBi+OBv+OBpA0KK+OBj+OBoeOBhOOBlyzjgbLjgo3jgZcNCivjgY/jgY7jgb/jgoQs44GL44Ga44GC44GNDQor44GP44GY44KJ44GELOOBqOOCguOBteOBvw0KK+OBj+OBvuOBruOBv+OBqSzjgo/jgZ/jgosNCivjgY/jgb7jgZbjgY0s44G+44GV44KLDQor44GP44KM44G+44GkLOOBi+OBmuOChA0KK+OBj+OCiuOBjSzjgZXjgbbjgo0NCivjgY/jgorjgoTjgb4s44Gf44GR44GXDQor44GP44KK44KE44G+LOOBsuOCjeOBiA0KK+OBj+OCjeOBuSzjgZfjgpMNCivjgY/jgo3jgZXjgo8s44Gf44GP44G/DQor44GP44KN44GV44KPLOOBvuOBleOChuOBjQ0KK+OBj+OCiuOChSzjgb/jgY0NCivjgY/jgZXjga4s44KE44GZ44Gu44KKDQor44GP44KP44Gv44KJLOOBvuOBleOBruOCig0KK+OBj+OBmuOBrizjgYvjgZrjgYLjgY0NCivjgY3jgoXjgaAs44KM44GE44GTDQor44G+44G244GhLOOCguOBqOOBj+OBqw0KK+OBvuOBoeOBnyzjgbLjgo3jgZ/jgYsNCivjgb7jgYjjgaAs44Go44GX44Gu44KKDQor44G+44GI44GE44GILOOBi+OBmuOBqOOBlw0KK+OBvuOBiOOBi+OCjyzjgorjgoXjgZnjgZENCivjgb7jgb7jgaAs44GC44Gk44GXDQor44G+44Gq44G5LOOBsuOCjeOBlw0KK+OBvuOBquOBuSzjgajjgoLjgY0NCivjgb7jgovjgYTjgaEs44Gf44GL44Gy44GnDQor44G+44KL44Gf44GrLOOBvuOBleOChuOBjQ0KK+OBvuOCi+OChOOBvizjgajjgZfjgo0NCivjgb7jgZXjgYrjgYss44Gy44KN44GXDQor44G+44GZ44GgLOOBquOBiuOBqA0KK+OBvuOBmeOBoCzjgajjgoLjgYLjgY0NCivjgb7jgZnjgaAs44KE44GZ44KG44GNDQor44G+44GZ44GgLOOCiOOBl+OBiA0KK+OBvuOBmeOBoCzjgYvjgaTjgobjgY0NCivjgb7jgaTjgbDjgoks44GY44KF44KTDQor44G+44Gk44GgLOOCiOOBl+OBn+OBiw0KK+OBvuOBpOOBoCzjgZ/jgY/jgoQNCivjgb7jgaTjgaDjgYTjgoks44GR44KT44GE44GhDQor44G+44Gk44GI44GgLOOBvuOBleOBjQ0KK+OBvuOBpOOBhCzjgojjgbLjgaENCivjgb7jgaTjgYQs44GC44GN44G144G/DQor44G+44Gk44KC44GoLOOBoeOBguOBjQ0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgZcNCivjgb7jgaTjgoLjgags44Gy44KN44Gf44GLDQor44G+44Gk44KC44GoLOOBi+OBmuOBig0KK+OBvuOBpOOCguOBqCzjgb7jgZXjgobjgY0NCivjgb7jgaTjgoLjgags44Gf44GL44Gy44GnDQor44G+44Gk44KC44GoLOOBn+OBi+OBkw0KK+OBvuOBpOOCguOBqCzjgZ/jgYvjgobjgY0NCivjgb7jgaTjgoLjgags44Gf44Gk44G/DQor44G+44Gk44KC44GoLOOBpOOCiOOBlw0KK+OBvuOBpOOCguOBqCzjgojjgZfjgbbjgb8NCivjgb7jgaTjgoLjgags44KG44GN44GTDQor44Gq44GL44KA44KJLOOBsuOCjeOBi+OBmg0KK+OBvuOBpOOCgOOCiSzjgZPjgZ4NCivjgb7jgaTjgarjgYws44GL44Gk44KEDQor44G+44Gk44GuLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBiizjgajjgZfjgbXjgb8NCivjgb7jgaTjgYos44GC44KG44G/DQor44G+44Gk44GK44GLLOOBsuOBp+OBlw0KK+OBvuOBpOOBiuOBiyzjgbLjgo3jgY0NCivjgb7jgaTjgYrjgYss44Gu44G244GKDQor44G+44Gk44GK44GLLOOBm+OBhOOBhOOBoQ0KK+OBvuOBpOOBiuOBiyzjgYvjgZrjgbLjgo0NCivjgb7jgaTjgZfjgb4s44GN44KI44GL44GaDQor44G+44Gk44Gf44GrLOOBjeOCh+OBkw0KK+OBvuOBpOOChOOBvizjgojjgZfjgY0NCivjgb/jgaHjgoLjgags44Gq44KK44GC44GNDQor44G/44GI44GNLOOBguOBjeOBruOCig0KK+OBv+OBi+OBvyzjgZHjgpMNCivjgb/jgYvjgb8s44Go44GX44GL44GaDQor44G/44Gq44GM44KPLOOBkeOCkw0KK+OBv+OBquOBi+OCjyzjgaDjgYQNCivjgb/jgZfjgb4s44Gy44KN44KG44GNDQor44G/44GX44G+LOOBj+OBvw0KK+OBv+OBl+OBvizjgZHjgpPjgZjjgo0NCivjgb/jgZ/jgaEs44GL44Ga44GoDQor44G/44Gk44GgLOOCiuOCheOBhOOBoQ0KK+OBv+OBpOOBr+OBlyzjgZ/jgYvjgYoNCivjgb/jgaTjgYQs44Gf44GR44GXDQor44G/44Gk44KC44GoLOOBi+OBmuOBruOCig0KK+OBv+OBhuOCiSzjgZ/jgaDjgYLjgY0NCivjgb/jgYbjgoks44Gy44KN44GXDQor44G/44KE44G5LOOBguOBpOOBlw0KK+OBv+OChOOBoSzjgY3jgb/jgYoNCivjgb/jgoTjgZjjgb4s44GC44KEDQor44Gw44KTLOOBk+OBhuOBn+OCjeOBhg0KK+OBv+OChOOCguOBqCzjgb7jgobjgb8NCivjgojjgZPjgYgs44Gf44GP44KNDQor44G/44KE44GV44GLLOOBi+OBmuOBvw0KK+OBv+OChOOBnyzjgojjgZfjgZ/jgYsNCivjgb/jgoTjgZ8s44Gk44KI44GXDQor44G/44KE44GG44GhLOOBl+OCh+OBkw0KK+OBhuOBoeOChOOBvizjgYvjgZrjgb8NCivjgZXjgYvjgYQs44GX44Gu44G2DQor44G/44KE44GW44KPLOOBsuOCjeOBguOBjQ0KK+OBv+OBnuOBtuOBoSzjgZPjgYbjgZgNCivjgb/jgZ7jgZDjgaEs44Gq44GK44GNDQor44G/44Ge44GQ44GhLOOBmOOCheOCkw0KK+OBv+OBmuOCguOBqCzjgbLjgo3jgZcNCivjgb/jgZrjga4s44GN44KI44G/DQor44G/44Ga44GuLOOBjeOCh+OBmA0KK+OBv+OBmuOBrizjgb7jgZXjgbLjgo0NCivjgb/jgZrjgZfjgb4s44GC44GN44KJDQor44G/44Ga44GfLOOBvuOBleOChuOBjQ0KK+OBv+OBmuOBn+OBqyzjgYLjgY3jga7jgooNCivjgoLjgY4s44G+44Gq44G2DQor44KC44GOLOOBqOOBl+OBguOBjQ0KK+OCguOBjizjgZPjgZ4NCivjgoLjgoLjgZss44GR44GE44GE44GhDQor44KC44KT44G+LOOBsuOCjeOChuOBjQ0KK+OCguOCiizjgYvjgZrjgYoNCivjgoLjgoos44G+44GV44Gy44KNDQor44KC44KKLOOBv+OBjeOBkw0KK+OCguOCiizjgorjgofjgZnjgZENCivjgoLjgoos44Go44GX44GC44GNDQor44KC44KKLOOBiOOBhOOBkw0KK+OCguOCiuOCguOBqCzjgYLjgY3jgokNCivjgoLjgorjga4s44GE44Ga44G/DQor44KI44GX44GgLOOBguOBpOOBsuOBkw0KK+OCguOCiuOBnyzjgb7jgZXjgojjgZcNCivjgoLjgorjgZ8s44G+44GV44KG44GNDQor44KC44KK44GfLOOChuOBhuOBmA0KK+OCguOCiuOBnyzjgobjgY3jgYoNCivjgoLjgorjgZ8s44KG44Gf44GLDQor44KC44KK44KP44GNLOOBsuOBleOBqA0KK+OCguOCjSzjgYvjgZrjga7jgooNCivjgoLjgZ/jgYQs44KC44KG44KLDQor44KC44Go44Gw44KE44GXLOOBsuOCjeOBlw0KK+OCguOBqOOBr+OBlyzjgaDjgYTjgZnjgZENCivjgoLjgajjgoTjgb4s44KG44GG44GYDQor44KC44Go44GW44KPLOOCjOOBhOOBkw0KK+OCgOOBi+OCjyzjgZHjgYTjgZnjgZENCivjgoDjgarjgYvjgZ8s44GR44KT44GE44GhDQor44KA44KJ44GL44G/LOOBvuOBleOBsuOCjQ0KK+OCgOOCieOBi+OBvyzjgorjgYsNCivjgoDjgonjgYvjgb8s44Gk44Go44KADQor44KA44KJ44GL44G/LOOChuOBjeOBsuOCjQ0KK+OCgOOCieOBi+OBvyzjgojjgZnjgZENCivjgoDjgonjgYvjgo8s44Gq44GK44G144G/DQor44KA44KJ44Gq44GLLOOBsuOBp+OBruOBtg0KK+OCgOOCieOBnyzjgYvjgZrjgbLjgZUNCivjgoDjgonjgZ8s44GL44Gk44G/DQor44KA44KJ44KE44G+LOOCiOOBl+OChA0KK+OCgOOCieOChOOBvizjgZfjgZLjgYoNCivjgoDjgo3jga/jgZcs44Gf44GP44GKDQor44KA44GoLOOCiOOBl+OCjQ0KK+OCgOOBqCzjgbLjgo3jgZcNCivjgarjgbAs44GV44Go44KLDQor44Gq44GM44GELOOBl+OBkuOBvuOBlQ0KK+OBquOBjOOBhCzjgb7jgZXjga7jgooNCivjgarjgYzjga4s44KG44GG44GYDQor44Gq44GM44GuLOOBhOOBpOOBkw0KK+OBquOBjOOBiizjgbXjgb/jgZMNCivjgoTjgb7jgoLjgags44Gy44KN44GC44GNDQor44Gq44GM44GK44GRLOOCiOOBl+OBjQ0KK+OBquOBjOOBiuOBlSzjgbLjgo3jgobjgY0NCivjgarjgYzjgZfjgb4s44KE44GZ44GTDQor44Gq44GM44GX44G+LOOBguOBjeOBsuOBlQ0KK+OBquOBjOOBnyzjgb7jgZXjgZMNCivjgYrjgbAs44G+44KG44GTDQor44Gq44GM44GfLOOBqOOCguOBruOCig0KK+OBquOBjOOBnyzjgbLjgo3jgY0NCivjgarjgYzjgZ/jgass44GR44KT44GYDQor44Gq44GE44Go44GGLOOBsuOCjeOBlw0KK+OBquOBi+OBoSzjgZPjgYbjgZgNCivjgarjgYvjgaAs44GL44GK44KLDQor44Gq44GL44Gg44GELOOBguOBjeOBkw0KK+OBquOBi+OBjOOCjyzjgbLjgo3jgobjgY0NCivjgarjgYvjgYzjgo8s44G+44GV44KLDQor44Gq44GL44GM44KPLOOBquOBiuOBguOBjQ0KK+OBquOBi+OBjOOCjyzjgYvjgaTjgoQNCivjgarjgYvjga/jgoks44Gf44G+44G/DQor44Gq44GL44GELOOChOOBmeOBsuOCjQ0KK+OBquOBi+OBhCzjgYvjgZrjgbLjgo0NCivjgarjgYvjgZjjgb4s44GV44Go44GXDQor44Gq44GL44GY44G+LOOBguOBjeOBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgYvjgaTjgoQNCivjgarjgYvjgoDjgoks44GP44G/DQor44GN44G/44Gy44KJLOOBv+OBjQ0KK+OBhOOBqOOBhizjgZXjgajjgZcNCivjgarjgYvjgoDjgoks44GX44KT44GYDQor44Gq44GL44KA44KJLOOBl+OCh+OBuOOBhA0KK+OBquOBi+OCgOOCiSzjgaTjgojjgZcNCivjgarjgYvjgoDjgoks44KE44GZ44Gu44KKDQor44Gq44GL44KA44KJLOOCiOOBl+OBr+OCiw0KK+OBquOBi+OCgOOCiSzjgojjgZfjgobjgY0NCivjgarjgYvjgoDjgoks44KG44Gy44GhDQor44Gq44GL44KA44KJLOOBquOBiuOChuOBjQ0KK+OBquOBi+OBq+OBlyzjgojjgZfjgobjgY0NCivjgarjgYvjgavjgZcs44GC44Gk44GXDQor44Gq44GL44GuLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OBrizjgZjjgoXjgpMNCivjgarjgYvjga4s44GR44GE44GE44GhDQor44Gq44GL44GuLOOBl+OBrg0KK+OBquOBi+OBrizjgZ/jgYvjgZcNCivjgarjgYvjgYos44GT44GG44GYDQor44Gq44GL44GV44GPLOOBl+OCheOBlA0KK+OBquOBi+OBmyzjgb7jgZXjgobjgY0NCivjgarjgYvjgZ8s44G/44GLDQor44Gq44GL44GfLOOBn+OBi+OBsuOBlQ0KK+OBquOBi+OBnyzjgZPjgYbjgZgNCivjgarjgYvjgZ/jgZEs44Gf44Gk44KEDQor44Gq44GL44KE44G+LOOBi+OBmuOChuOBjQ0KK+OBquOBv+OBjSzjga/jgZjjgoENCivjgarjgarjgZXjgo8s44G+44GV44GC44GNDQor44Gq44KT44GwLOOBsuOCjeOBjQ0KK+OBquOCk+OCguOBjyzjgb/jgY0NCivjga3jgoLjgags44Go44KC44GKDQor44Gt44KC44GoLOOBhOOBmuOCiw0KK+OBq+OBhCzjgZ/jgYvjgbLjgo0NCivjgavjgYTjgacs44KG44GG44GTDQor44Gr44GE44GP44KJLOOChOOBmeOBguOBjQ0KK+OBq+OBhOOBmuOBvizjgabjgaTjgoQNCivjgavjgYvjgb8s44GL44Ga44Gu44KKDQor44Gr44GX44Gw44KE44GXLOOBguOBpOOBlw0KK+OBq+OBl+OBoCzjgYLjgY3jgZMNCivjgavjgZfjga/jgoks44GX44KH44Gf44GkDQor44Gr44GX44Gv44KJLOOBsuOCjeOBn+OBiw0KK+OBq+OBl+OBi+OCjyzjgY/jgovjgb8NCivjgavjgZfjgYvjgZws44Gy44KN44G/DQor44Gr44GX44G/44KELOOChOOBmeOBsuOCjQ0KK+OBq+OBl+OCgOOCiSzjgZ/jgY/jgYoNCivjgavjgZfjgoDjgoks44G144G/44GKDQor44Gr44GX44KE44G+LOOBkeOBhOOBlw0KK+OBq+OBl+OChOOBvizjgarjgb/jgZgNCivjgavjgaPjgZ8s44Gg44GE44GZ44GRDQor44Gr44KPLOOBiOOBv+OBkw0KK+OBqOOBlCzjgarjgaTjgZMNCivjgavjgo8s44G/44Gk44GC44GNDQor44Gu44G244Gv44KJLOOCiOOBl+OBkw0KK+OBiuOBjOOCjyzjgbLjgafjgaTjgZANCivjga7jgYzjgb8s44Gy44Gn44KEDQor44Gu44GM44G/LOOBn+OBhOOBoeOCjeOBhg0KK+OBruOCguOBqCzjgYLjgY3jgokNCivjga7jgoDjgoks44G+44GV44Gy44GTDQor44Gu44KA44KJLOOCiOOBl+OChA0KK+OBruOBnuOBiCzjgZfjgY3jgZMNCivjgazjgb7jgZ8s44GV44Go44GXDQor44GK44Gg44GY44G+LOOBn+OBi+OBsuOCjQ0KK+OBiuOBjOOBiOOCiizjgYvjgZrjga7jgooNCivjgYrjgYzjgZ8s44GV44Go44GXDQor44GK44GM44KPLOOBl+OCk+OBhOOBoQ0KK+OBiuOBjOOCjyzjgY3jgo/jgoANCivjgYrjgY4s44Gy44Go44GXDQor44GK44GO44GP44G8LOOCguOBqOOBguOBjQ0KK+OBiuOBlCzjgYvjgaTjgYLjgY0NCivjgYrjgZDjgoks44GN44KI44GXDQor44GK44GwLOOBvuOBquOBtg0KK+OBiuOBsOOChOOBlyzjgYvjgaTjgoQNCivjgYrjgbgs44GT44GG44GYDQor44GK44GM44G+LOOChuOBhuOBkw0KK+OBiuOBr+OBlyzjgYrjgZXjgoANCivjgYrjgbLjgZcs44GY44KF44Gr44GhDQor44GK44GL44KPLOOBv+OBiw0KK+OBiuOBjeOBqSzjgb7jgarjgbYNCivjgYrjgY/jgbws44Gf44GL44Gy44KNDQor44GK44GP44G8LOOBr+OBmOOCgQ0KK+OBiuOBj+OBvizjgabjgaQNCivjgYrjgb4s44GI44KKDQor44GK44G+44GILOOBqOOBiuOCiw0KK+OBiuOBvuOBiCzjgbLjgafjgY0NCivjgYrjgoLjgoos44GX44GS44KLDQor44GK44KC44KKLOOBn+OBkeOBig0KK+OBiuOCguOCiizjgZ/jgZHjgZcNCivjgYrjgoLjgoos44KI44GY44KNDQor44GK44KC44KKLOOBqOOCguOBjQ0KK+OBiuOCguOBqCzjgbLjgo3jgobjgY0NCivjgYrjgavjgZcs44Go44KC44Gy44KNDQor44GK44Gr44GXLOOCiOOCiuOBkw0KK+OBiuOBq+OBlyzjgojjgbLjgaENCivjgYrjga4s44GT44GG44GE44GhDQor44GK44Gs44G+LOOBquOBiuOBjQ0KK+OBiuOBleOBiyzjgZHjgpPjgZgNCivjgYrjgZXjgo8s44KE44GZ44Gy44GTDQor44GK44GV44KPLOOBvuOBleOBig0KK+OBiuOBl+OBvizjgbLjgo3jgobjgY0NCivjgYrjgZfjgo0s44Gy44KN44G144G/DQor44GK44GfLOOBvuOBk+OBqA0KK+OBiuOBnyzjgb7jgoLjgosNCivjgYrjgZ8s44KA44Gk44KNDQor44GK44GfLOOBn+OBi+OBlw0KK+OBiuOBnyzjgajjgoLjgbLjgo0NCivjgYrjgZ8s44G/44Gk44KI44GXDQor44GK44Gf44GrLOOBquOBiuOBjQ0KK+OBiuOBpCzjgbLjgo3jgY0NCivjgYrjgaTjgYss44G+44GV44KE44GZDQor44GK44Gk44GNLOOBv+OBpOOCiw0KK+OBiuOBhOOBi+OCjyzjgYLjgYTjgZMNCivjgYrjgYss44GR44KT44GYDQor44GK44GLLOOBvuOBleOBpuOCiw0KK+OBiuOBiyzjgYLjgY3jgokNCivjgYrjgYvjgaAs44Gy44KN44GNDQor44GK44GL44GgLOOCiuOBlQ0KK+OBiuOBi+OBoCzjgZ/jgYvjgbLjgo0NCivjgYrjgYvjgaAs44GZ44G/44GTDQor44GK44GL44GQ44GhLOOBn+OBi+OBlw0KK+OBiuOBi+OBhCzjgZfjgpPjgYTjgaENCivjgYrjgYvjgb7jgaQs44GC44GV44GTDQor44GK44GL44KC44GoLOOBguOBpOOBig0KK+OBiuOBi+OCguOBqCzjgbLjgafjgobjgY0NCivjgYrjgYvjgoLjgags44G+44GV44G/DQor44GK44GL44KC44GoLOOCgOOBreOChOOBmQ0KK+OBiuOBi+OCguOBqCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgYrjgYvjgoLjgags44KE44GZ44Gy44KNDQor44GK44GL44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBiuOBi+OBrizjgZ/jgYvjgZcNCivjgYrjgYvjgZbjgY0s44GC44GN44Gy44KNDQor44GK44GN44KC44GoLOOBv+OBoeOBig0KK+OBiuOBj+OBrizjgojjgZfjgbLjgZUNCivjgYrjgY/jgoTjgb4s44Gy44Gn44GNDQor44GK44G/LOOBteOBv+OBkw0KK+OBiuOBrizjgb/jgY0NCivjgYrjga4s44KE44GZ44GXDQor44GK44GuLOOChuOBsuOBoQ0KK+OBiuOBruOBmyzjgZXjgajjgosNCivjgYrjga7jgZbjgY0s44Gu44G244Gy44KNDQor44GK44KK44GILOOChuOBn+OBiw0KK+OBiuOBluOBjSzjgZ/jgYvjgbLjgo0NCivjgajjgY/jgb/jgoQs44KI44GX44GC44GNDQor44GV44GE44GhLOOBiOOBhOOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgbLjgafjgYoNCivjgZXjgYTjgajjgYYs44G+44GV44G244G/DQor44GV44GE44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgb/jgaHjga/jgosNCivjgZXjgYTjgajjgYYs44Gu44KK44GKDQor44GV44GE44Go44GGLOOBqOOCguOBsuOCjQ0KK+OBleOBhOOBqOOBhizjgobjgY3jgagNCivjgZXjgYTjgajjgYYs44GI44Gk44GTDQor44Gv44GL44G+44GgLOOCiOOBl+OBn+OBvw0KK+OBleOBi+OBkOOBoSzjgoTjgZnjgYoNCivjgZXjgYvjgYQs44GX44GS44KLDQor44GV44GL44GN44Gw44KJLOOBquOBiuOBjQ0KK+OBleOBi+OBjeOCguOBqCzjgbLjgo3jgbXjgb8NCivjgZXjgYvjgoLjgags44Gy44KN44GXDQor44GV44GL44KC44GoLOOBmOOCheOCk+OBkw0KK+OBleOBi+OCguOBqCzjgZ/jgYvjgZcNCivjgZXjgYvjgoLjgags44KI44GX44GTDQor44GV44GL44KC44GoLOOBvuOBleOBkw0KK+OBv+OBn+OBqyzjgabjgaTjgoQNCivjgZXjgYvjgYbjgaEs44GL44GK44KKDQor44GV44GN44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OBleOBj+OBvizjgbLjgajjgY0NCivjgZXjgY/jgonjgYQs44Gy44Gn44GC44GNDQor44GV44GuLOOBsuOCjeOBn+OBiw0KK+OBleOBrizjgobjgZ/jgYsNCivjgZXjga4s44KE44GZ44Gy44GTDQor44GV44GV44GgLOOBn+OBhOOBlw0KK+OBleOBleOBr+OCiSzjgYvjgYrjgosNCivjgZXjgZXjgY0s44GL44KIDQor44GV44GV44GNLOOBk+OBhuOBmA0KK+OBleOBleOBjSzjgb7jgorjgZMNCivjgajjgaDjgass44Gf44GL44GKDQor44GV44GV44GNLOOCiOOBl+OBiA0KK+OBleOBn+OBkSzjgYjjgYTjgZgNCivjgZXjgajjgYYs44GI44KKDQor44GV44Go44GGLOOBsuOBp+OBsuOCjQ0KK+OBleOBqOOBhizjgYTjgZrjgb8NCivjgZXjgajjgYYs44GR44GE44GE44GhDQor44GV44Go44GGLOOBkeOCk+OBhOOBoQ0KK+OBleOBqOOBhizjgY/jgavjgbLjgZMNCivjgZXjgajjgYYs44G+44GV44Gy44GTDQor44GV44Go44GGLOOBv+OBpOOCiw0KK+OBleOBqOOBhizjgoLjgajjga7jgooNCivjgZXjgajjgYYs44KK44GN44KEDQor44GV44Go44GGLOOCiuOCheOBsuOBoQ0KK+OBleOBqOOBhizjgZfjgoXjgZ4NCivjgZXjgajjgYYs44GX44KF44KT44GZ44GRDQor44GV44Go44GGLOOBmeOBmeOCgA0KK+OBleOBqOOBhizjgZ/jgYvjgbLjgagNCivjgZXjgajjgYYs44Go44GX44Gy44GTDQor44GV44Go44GGLOOChOOBmeOBteOBvw0KK+OBleOBqOOBhizjgaTjgojjgZcNCivjgZXjgajjgYYs44Gb44GE44GYDQor44GV44KP44GgLOOBpOOBreOBruOCig0KK+OBleOCj+OBoCzjgoTjgZnjgbLjgo0NCivjgZXjgo/jgaAs44GX44KT44GUDQor44GE44KP44GfLOOBsuOBleOBr+OCiw0KK+OBleOCj+OBhCzjgobjgbLjgaENCivjgZXjgo/jgYQs44KI44GX44GC44GNDQor44GV44KE44GuLOOBn+OBi+OBi+OBmg0KK+OBm+OBjSzjgorjgYjjgZMNCivjgZvjgY3jgZDjgaEs44Go44GK44KLDQor44Gb44GN44GQ44GhLOOChuOBsuOBoQ0KK+OBm+OBjeOBkOOBoSzjga/jgovjgYoNCivjgZvjgY3jga0s44GX44KT44GE44Gh44KN44GGDQor44Gb44GN44GuLOOBruOBvOOCiw0KK+OBm+OCk+OBqizjgZPjgYbjgZgNCivjgZvjgorjgZbjgo8s44Gg44GE44GZ44GRDQor44Gb44GoLOOBguOBjeOCiQ0KK+OBl+OBsOOBnyzjgZHjgYTjgZ/jgo3jgYYNCivjgZfjgbDjgZ8s44Go44KC44GTDQor44GX44Gw44GfLOOBmOOCheOCk+OBmA0KK+OBl+OBsOOBn+OBqyzjgajjgoLjgY0NCivjgZfjgbbjgZ/jgass44GR44GE44Gf44KN44GGDQor44GX44GMLOOBvuOBkw0KK+OBl+OBkuOBruOBtizjgb/jgaHjgogNCivjgZfjgb4s44G+44KG44G/DQor44GX44G+44GgLOOBqOOBl+OBsuOBkw0KK+OBl+OBvuOBoCzjgZ3jgYbjgYTjgaHjgo3jgYYNCivjgZfjgb7jgoDjgoks44GE44GP44KEDQor44GX44G/44GaLOOBn+OBkeOBlw0KK+OBl+OBv+OBmizjgb7jgZXjgojjgZcNCivjgZfjgoLjgbDjgoTjgZcs44G/44GLDQor44GX44KC44GM44KPLOOBguOBjeOCiQ0KK+OBl+OCguOBsuOBlOOBlyzjgYLjgY3jgbLjgo0NCivjgZfjgoLjgYTjgacs44Gf44GL44GXDQor44GX44Gq44GgLOOBqOOBl+OBv+OBpA0KK+OBl+OBreOBhCzjgbLjgo3jgobjgY0NCivjgZfjgpPjgYzjgYQs44GL44Gk44KEDQor44GX44Gu44GgLOOBk+OBhuOBhOOBoQ0KK+OBl+OBruOBr+OCiSzjgb7jgZXjgbLjgacNCivjgZfjga7jgZbjgY0s44GR44GE44GZ44GRDQor44GX44GK44KELOOBleOBqOOBlw0KK+OBl+OCieOBr+OBvizjgY3jgofjgZMNCivjgZfjgonjgYTjgZcs44GV44Go44KLDQor44GX44KJ44GE44GXLOOBi+OBmuOCiOOBlw0KK+OBl+OBn+OCiSzjgb/jgY3jgZMNCivjgZfjgofjgZgs44KM44GE44GY44KNDQor44GX44KH44GYLOOBleOBqOOBkw0KK+OBvuOBmeOChOOBvizjgojjgZfjgb/jgaQNCivjgZfjgoXjgags44Gf44GR44GL44GaDQor44Gd44GI44GgLOOBleOBoOOBv+OBoQ0KK+OBneOBrSzjgY3jgojjgZcNCivjgZ3jga3jgaAs44GT44GG44GYDQor44Gd44Gu44G5LOOBpuOBpOOBsuOBlQ0KK+OBneOBruOBuSzjgZ/jgYTjgZcNCivjgZ3jgonjga4s44GL44Gk44G/DQor44GZ44GgLOOChuOBiw0KK+OBmeOBjOOBhCzjgZ/jgaDjgZcNCivjgZnjgYzjgo/jgoks44GT44GG44GYDQor44GZ44GO44KC44GoLOOBn+OBi+OBsuOCjQ0KK+OBmeOBjuOCguOBqCzjgajjgoLjgojjgZcNCivjgZnjgY7jgYbjgoks44Gf44GP44KEDQor44GZ44GO44KE44G+LOOBn+OCjeOBhg0KK+OBmeOBjuOChOOBvizjgobjgbLjgaENCivjgZnjgY7jgoTjgb4s44Gf44GL44GXDQor44GZ44GY44KD44GPLOOBn+OBkeOBlw0KK+OBmeOBiyzjgbLjgo3jgobjgY0NCivjgZnjgZHjgYzjgo8s44GX44KTDQor44GZ44G/44Gq44GMLOOBvuOBleOBsuOBpw0KK+OBmeOBv+OBiuOBiyzjgobjgb/jgZMNCivjgZnjgarjgoTjgb4s44Gy44Gn44GL44GaDQor44GZ44Ga44GNLOOBsuOBp+OBjQ0KK+OBmeOBmuOBjSzjgZ/jgY/jgYoNCivjgYTjgZfjgYQs44G+44GV44Gy44KNDQor44GZ44Ga44GNLOOBvuOBleOBlw0KK+OBmeOBmuOBjSzjgb/jgbsNCivjgZnjgZrjgY0s44Gq44GK44Gy44KNDQor44KE44G+44GX44KNLOOBruOCiuOChuOBjQ0KK+OBmeOBmuOBjSzjgZvjgYTjgb4NCivjgZnjgZrjgY0s44Gf44GL44Gy44KNDQor44GZ44Ga44GNLOOBn+OBi+OBvuOBlQ0KK+OBmeOBmuOBjSzjgojjgZfjga7jgooNCivjgZnjgZrjgY0s44G+44GV44Gy44KNDQor44Gf44Gw44GTLOOBsuOBp+OBvuOBlQ0KK+OBn+OBsOOBnyzjgozjgYTjgZMNCivjgarjgYvjgZjjgb4s44Gf44GL44KE44GZDQor44Gf44Gw44GfLOOBqOOBiuOCiw0KK+OBn+OBoeOBsOOBqizjgbLjgo3jgobjgY0NCivjgZ/jgYzjgb8s44GN44G/44GTDQor44G+44G+44GgLOOBqOOCguOChA0KK+OBn+OBjOOCjyzjgZHjgpPjgYTjgaENCivjgZ/jgZjjgb4s44G+44GV44KEDQor44Gf44GL44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBn+OBi+OBoCzjgoTjgZnjgbLjgZMNCivjgZ/jgYvjgaAs44GX44GS44KLDQor44Gf44GL44GOLOOBn+OBi+OChuOBjQ0KK+OBn+OBi+OBjizjgbLjgafjgbLjgo0NCivjgZ/jgYvjga/jgZcs44Gy44Gn44GNDQor44Gf44GL44Gv44GXLOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgZjjgocNCivjgZ/jgYvjga/jgZcs44GL44Gk44KG44GNDQor44Gf44GL44Gv44GXLOOBi+OBmuOBruOCig0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgYTjgaENCivjgZ/jgYvjga/jgZcs44GP44G/44GTDQor44KP44Gf44Gq44G5LOOBvuOBleOBjQ0KK+OBn+OBi+OBr+OBlyzjgabjgovjgobjgY0NCivjgZ/jgYvjga/jgZcs44KI44GX44Gk44GQDQor44Gf44GL44Gv44GXLOOBqOOBl+OChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgZ/jgYTjgZvjgYQNCivjgZ/jgYvjgYQs44GR44KT44GYDQor44Gf44GL44GP44KJLOOBvuOBk+OBqA0KK+OBn+OBi+OBj+OCiSzjgoLjgajjgbLjgo0NCivjgZ/jgYvjgb7jgaEs44KG44GNDQor44Gf44GL44G+44GkLOOBqOOCguOCiA0KK+OBvuOBpOOBquOBjCzjgZ/jgYvjgbLjgo0NCivjgZ/jgYvjgoLjgags44GI44G/DQor44Gf44GL44KA44KJLOOBoOOBhOOBmeOBkQ0KK+OBn+OBi+OBiuOBiyzjgZfjgpPjgoQNCivjgZ/jgYvjgZnjgY4s44KG44GN44GKDQor44Gf44GL44KELOOBsuOCjeOBjQ0KK+OBn+OBi+OChOOBvizjgbLjgo3jgZMNCivjgY3jgZ/jga/jgoks44GE44Ga44KLDQor44Gf44GR44GgLOOBvuOBleOBjQ0KK+OBn+OBkeOBoCzjgb/jgZfjgocNCivjgZ/jgZHjga/jgaos44G+44GNDQor44Gf44GR44G+44GkLOOChOOBmeOBlw0KK+OBn+OBkeOBiuOBiyzjgobjgZ/jgYsNCivjgYTjgZfjgYvjgo8s44GT44G444GEDQor44Gf44GR44GX44GfLOOBvuOBleOBteOBvw0KK+OBn+OBkeOBn+OBqyzjgbLjgafjgY0NCivjgZ/jgZHjgYbjgaEs44GR44KT44GZ44GRDQor44Gf44GR44GG44GhLOOBl+OBuw0KK+OBn+OBkeOChOOBvizjgYvjgaTjga7jgooNCivjgZ/jgZHjgZbjgo8s44GC44GN44KI44GXDQor44Gf44GN44GW44KPLOOChOOBmeOBsuOCjQ0KK+OBn+OBjeOBluOCjyzjgojjgZfjgY0NCivjgZ/jgb7jgYQs44Gu44G244GL44GkDQor44Gf44Gq44Gv44GXLOOBlA0KK+OBn+OBquOBiyzjga/jgovjgZMNCivjgZ/jgarjgYss44Gy44Gn44GC44GNDQor44Gf44Gq44GLLOOBsuOCjeOChuOBjQ0KK+OBn+OBquOBiyzjgZHjgpPjgYTjgaENCivjgZ/jgarjgYss44GP44Gr44Gy44GnDQor44Gf44Gq44GLLOOBvuOBleOBsuOCjQ0KK+OBn+OBquOBiyzjgb7jgZXjgYvjgaQNCivjgZ/jgarjgYss44G+44GV44G/DQor44Gf44Gq44GLLOOBv+OBruOCiw0KK+OBn+OBquOBiyzjgoLjgajjgbXjgb8NCivjgZ/jgarjgYss44Gq44GK44GNDQor44Gf44Gq44GLLOOBruOBtuOChuOBjQ0KK+OBn+OBquOBiyzjgZXjgajjgZcNCivjgZ/jgarjgYss44GV44Go44GXDQor44Gf44Gq44GLLOOBn+OBkeOBlw0KK+OBn+OBquOBiyzjgY3jgojjgZgNCivjgYTjgZfjgaAs44Gk44Go44KADQor44Gf44Gq44GLLOOBoeOBi+OCiQ0KK+OBn+OBq+OBkOOBoSzjgajjgoLjgobjgY0NCivjgZ/jgavjgZDjgaEs44Gu44G244KG44GNDQor44Gf44Gr44GELOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBq+OCgOOCiSzjgZPjgZnjgZENCivjgZ/jgavjgYrjgYss44Gy44KN44KG44GNDQor44Gf44KT44GuLOOBsuOCjeOBlw0KK+OBn+OBrOOBvizjgZHjgYTjgZMNCivjgojjgZPjgoTjgb4s44KC44Go44GNDQor44Gf44GX44KNLOOBm+OBhOOBmA0KK+OBn+OBl+OCjSzjgYvjgZrjgbLjgagNCivjgZ/jgaYs44KG44GG44GTDQor44Gf44GG44KJLOOBiOOBhOOBhOOBoQ0KK+OBn+OBnuOBiCzjgYjjgYTjgZgNCivjgZ/jgZrjgZEs44Gk44Gt44Gy44KNDQor44Gm44KT44KCLOOBvuOBleOBsuOCjQ0KK+OBpuOCieOBoCzjga7jgorjgbLjgo0NCivjgabjgonjgoLjgags44GL44Ga44Gq44GKDQor44Gm44KJ44GK44GLLOOBruOBvOOCiw0KK+OBpuOBmuOBiyzjgZHjgpPjgoQNCivjgajjgZDjgaEs44GL44Ga44GKDQor44Go44G+LOOBl+OBkuOCiw0KK+OBqOOBvizjgZHjgpPjgYTjgaENCivjgajjgbLjgoPjgb4s44KG44KK44GTDQor44Go44GN44GK44GLLOOBv+OBoeOCiA0KK+OBn+OBq+OChOOBvizjgajjgoLjgZMNCivjgb/jgYbjgoks44KG44GN44GKDQor44Go44GP44KJLOOBvuOCguOCiw0KK+OBqOOBj+OChOOBvizjgo/jgZ/jgosNCivjgajjgb/jgYTjgZcs44GC44GN44KJDQor44Go44G/44GL44KPLOOBkeOCk+OBhOOBoQ0KK+OBqOOBv+OBquOBjCzjgbLjgafjgagNCivjgajjgb/jgZ8s44G+44GT44GoDQor44Go44G/44GfLOOChuOBhuOBkw0KK+OBiuOCguOCiizjgb7jgZPjgagNCivjgajjgoLjgZ8s44GL44KI44GTDQor44Go44KC44GuLOOBoeOBiOOBkw0KK+OBqOOCiuOBi+OBhCzjgYjjgYTjgZgNCivjgajjgorjgYbjgb8s44GR44GEDQor44Go44Gk44GLLOOBsuOCjeOChuOBjQ0KK+OBqOOCiOOBoCzjgZjjgoXjgpPjgZMNCivjgajjgojjgaAs44GT44GG44GE44GhDQor44Go44KI44GK44GLLOOBsuOCjeOChOOBmQ0KK+OBpOOBoeOBoCzjgYvjgZrjgobjgY0NCivjgaTjgaAs44Gf44GL44GX44GSDQor44Gk44GY44Gf44GrLOOBsuOBp+OBguOBjQ0KK+OBpOOBi+OCguOBqCzjgZ3jgbLjgaENCivjgaTjgYvjgoLjgags44GL44Ga44GKDQor44Gk44GL44KP44GNLOOBsuOCjeOChA0KK+OBpOOCi+OBvuOBjSzjgY/jgavjgbLjgZMNCivjgYTjgaHjgbDjgpPjgYzjgZss44Gu44KK44GTDQor44GV44GL44GELOOBguOBpOOBlw0KK+OBhuOBoeOBoCzjgbXjgb/jgYgNCivjgYvjgarjgYrjgYss44KC44Go44KI44GXDQor44GG44Gh44GgLOOBvuOBleOChuOBjQ0KK+OBhuOBoeOBhuOBvyzjgbLjgafjgbLjgZMNCivjgYbjgaHjgoTjgb4s44GR44GE44GYDQor44GG44Gh44KE44G+LOOBquOBiuOBjQ0KK+OBhuOBoCzjgojjgZfjga7jgbYNCivjgYbjgaDjgYzjgo8s44GC44KE44GTDQor44GK44GX44G+LOOBkeOBhOOBhOOBoQ0KK+OBhuOBiOOBoCzjgb/jgY3jgbLjgo0NCivjgYbjgYjjgaAs44Gf44GP44Gu44G2DQor44GG44GI44Gv44KJLOOBk+OBhuOBmA0KK+OBhuOBiOOCgOOCiSzjgZPjgYbjgYTjgaENCivjgYbjgYjjga4s44G+44GV44Gk44GQDQor44GG44GI44GuLOOCiOOBl+OBpuOCiw0KK+OBhuOBiOOBmeOBjizjgbLjgo3jgYLjgY0NCivjgYbjgYjjgaTjgY0s44G+44GV44Gf44GLDQor44GG44GL44KPLOOCiOOBhuOBkw0KK+OBhuOBvuOBmuOCgSzjgobjgY3jgZMNCivjgYbjgoHjga/jgoks44G/44G744GTDQor44GG44KB44KA44KJLOOBi+OBmuOBsuOCjQ0KK+OBhuOCgeOBluOCjyzjgZPjgbjjgYQNCivjgYbjga4s44Gf44Gk44KEDQor44GG44GuLOOBquOBiuOBsuOBkw0KK+OBhuOCieOCguOBqCzjgbXjgb/jgZ/jgYsNCivjgYbjgovjgb4s44KG44GNDQor44GG44GX44GwLOOBguOBpOOBkw0KK+OBquOBjOOBnyzjgZ/jgo3jgYYNCivjgYbjgZfjgZDjgZUs44GC44Gk44GTDQor44Gv44Gb44GM44KPLOOBiOOBhOOBiw0KK+OBleOBi+OBvuOBjSzjgojjgZfjgb/jgaQNCivjgYbjgo/jgbks44Gy44Gn44KG44GNDQor44KP44GgLOOBvuOBleOBjQ0KK+OCj+OBi+OBiizjgYrjgZXjgoANCivjgo/jgYvjgYos44Gy44KN44Gu44KKDQor44KP44GN44GfLOOBvuOBleOBvw0KK+OBhOOBruOBvuOBnyzjgZ/jgYTjgaENCivjgo/jgY/jgYQs44G+44GV44Gy44GnDQor44KP44GX44GW44KPLOOBl+OCk+OChA0KK+OCj+OBl+OBmuOBiyzjgajjgZfjgYoNCivjgo/jgZ/jgbks44Gy44KN44G144G/DQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgo/jgZ/jgarjgbks44Gy44GV44KEDQor44KP44Gf44Gq44G5LOOBkeOBhA0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgbXjgb8NCivjgo/jgZ/jgarjgbks44G/44Gu44KLDQor44KP44Gf44Gq44G5LOOCiuOCheOBnw0KK+OCj+OBn+OBquOBuSzjgajjgZfjgYLjgY0NCivjgo/jgZ/jgarjgbks44KI44GX44GC44GNDQor44KP44Gf44Gq44G5LOOChuOCig0KK+OBqOOCiOOBnyzjgb7jgZXjgobjgY0NCivjgo/jgZ/jgoos44GC44GN44GTDQor44Go44G/44KE44GZLOOBkeOBhOOBmA0KK+OChOOBiOOBjOOBjSzjgozjgYTjgZMNCivjgoTjgY4s44KI44GG44GTDQor44KE44GOLOOBsuOCjeOBvw0KK+OChOOBjuOBrOOBvizjgb7jgZXjgoQNCivjgoTjgY8s44GR44GE44GTDQor44KE44G+44GgLOOBk+OBhuOBmA0KK+OChOOBvuOBoCzjgb7jgZXjgajjgZcNCivjgoTjgb7jgaAs44Gu44KK44KG44GNDQor44KE44G+44GO44GXLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgZfjgZLjgosNCivjgoTjgb7jgZDjgaEs44Gf44GL44GKDQor44KE44G+44GQ44GhLOOBpOOCiOOBlw0KK+OChOOBvuOBkOOBoSzjgajjgoLjgobjgY0NCivjgoTjgb7jgZPjgZcs44Gg44GE44GhDQor44KE44G+44KC44GoLOOBsuOBp+OBjQ0KK+OChOOBvuOCguOBqCzjgbLjgo3jgYvjgZoNCivjgoTjgb7jgoLjgags44Gy44KN44G/DQor44KE44G+44KC44GoLOOBsuOBqOOBlw0KK+OChOOBvuOCguOBqCzjgZHjgYTjgZMNCivjgZ/jgaHjgbDjgaos44Go44GX44Gy44GVDQor44KE44G+44KC44GoLOOCiOOBl+OBguOBjQ0KK+OChOOBvuOCguOBqCzjgb/jgojjgZMNCivjga/jgonjgZ/jgass44KI44GX44G+44GVDQor44KE44G+44Gq44GLLOOBoOOBhOOBmeOBkQ0KK+OChOOBvuOBrSzjgYLjgY3jgagNCivjgoTjgb7jgZfjgZ8s44GL44Ga44Gy44GTDQor44KE44G+44GX44GfLOOBvuOBjQ0KK+OChOOBvuOBl+OBnyzjgojjgYbjgZMNCivjgoTjgb7jgZ/jgass44GC44Gk44GXDQor44KE44G+44GG44GhLOOBk+OBhuOBhOOBoQ0KK+OChOOBvuOBluOBjSzjgajjgZfjgobjgY0NCivjgoTjgaos44GL44GK44KLDQor44KE44Gq44G5LOOBguOBjeOCiQ0KK+OChOOBquOBjOOCjyzjgaDjgYTjgZnjgZENCivjgoTjgarjgY4s44G+44GV44Gy44KNDQor44KE44Gq44GO44GgLOOBkeOCk+OBmA0KK+OChOOBleOBiyzjgZ/jgZHjgYoNCivjgoTjgZnjgaAs44Gb44GE44GE44GhDQor44KE44GZ44G144GPLOOBl+OCheOBmA0KK+OChOOBmeOBi+OCjyzjgb7jgZXjgajjgZcNCivjgojjgZPjgZXjgo8s44GY44KF44KTDQor44KI44GT44GfLOOBkeOCk+OBhOOBoQ0KK+OCiOOBk+OBnyzjgajjgoLjgZMNCivjga/jgonjgaAs44Gf44GL44GXDQor44KI44GT44GG44GhLOOCiOOBl+OBteOBvw0KK+OCiOOBk+OBhuOBoSzjgYLjgY3jgbLjgZMNCivjgojjgZPjgoTjgb4s44Gy44KN44GXDQor44KI44GT44KE44G+LOOBquOBiuOBkw0KK+OCiOOBreOBoCzjgZ/jgYvjgZcNCivjgojjga3jga4s44Go44KC44GTDQor44GL44GV44Gv44KJLOOBguOBjeOCiQ0KK+OCiOOBl+OBoCzjgbLjgo3jgYLjgY0NCivjgojjgZfjgaAs44Gy44KN44GNDQor44KI44GX44GgLOOCiuOChw0KK+OCiOOBl+OBoCzjgajjgZfjgYLjgY0NCivjgojjgZfjgaAs44KK44KF44Gy44GhDQor44KI44GX44Gp44KBLOOBi+OBmuOBsuOBpw0KK+OCiOOBl+OBr+OCiSzjgb7jgZXjgb/jgaQNCivjgojjgZfjgYQs44KG44Gf44GLDQor44KI44GX44GELOOBjeOCiOOBi+OBmg0KK+OCiOOBl+OBi+OCjyzjgZ/jgY/jgoQNCivjgojjgZfjgb8s44Gy44KN44GXDQor44KI44GX44GuLOOBi+OBmuOBsuOCjQ0KK+OCiOOBl+OBrizjgZPjgZnjgZENCivjgojjgZfjga4s44G+44GV44Gy44KNDQor44KI44GX44GK44GLLOOBl+OCk+OBmeOBkQ0KK+OCiOOBl+OBiuOBiyzjgb7jgZPjgagNCivjgojjgZfjgZ/jgZEs44GL44Ga44Gu44G2DQor44KI44GX44GW44KPLOOBquOBiuOBjQ0KK+OChuOBmuOBr+OCiSzjgarjgYrjgb8NCivjgZzjgpPjgZIs44GV44Go44G/DQor44Ga44GXLOOBsuOBp+OBig0KK+OBlOOBvyzjgZjjgoXjgpMNCivjgZTjgags44Gy44KN44GXDQor44GE44GR44GgLOOBquOBiuOBqA0KK+OBhOOBvuOBmOOChyzjgbLjgo3jgZcNCivjgYLjgbks44GX44Ga44GLDQor44GL44Go44GGLOOBn+OBi+OBsuOCjQ0KK+OBi+OCj+OBsOOBnyzjgZXjgajjgosNCivjgZPjgbDjgoTjgZcs44G+44GT44GoDQor44GT44KT44GpLOOBl+OBiuOCig0KK+OBj+OBvCzjgZ/jgYTjgY0NCivjgY/jgonjgoLjgaEs44G144G/44GKDQor44G+44KL44KE44G+LOOChOOBmeOBlw0KK+OCguOCiuOBi+OBjyzjgajjgoLjgZMNCivjgoDjgonjgYrjgYss44GR44KT44GE44GhDQor44Gq44GM44GX44G+LOOBk+OBhuOBhOOBoeOCjQ0KK+OBquOBiyzjgZ/jgaDjgZcNCivjgarjgYvjga/jgoks44Go44GX44GL44GkDQor44Gq44GL44KA44KJLOOBk+OBhuOBmA0KK+OBquOBi+OBmyzjgYvjgZrjgZ/jgYsNCivjgarjgorjgZ8s44G/44GKDQor44Gr44GX44KA44KJLOOBsuOCjeOBjQ0KK+OBruOBquOBiyzjgbLjgo3jgZcNCivjgYrjgYzjgo8s44Gf44GR44Gv44KLDQor44GK44GQ44KJLOOBvuOBleOBsuOCjQ0KK+OBiuOBvyzjgb7jgarjgbYNCivjgYrjgYvjga4s44GX44GS44KLDQor44GX44G+44GgLOOBl+OBkuOCiw0KK+OBl+OBv+OBmizjgobjgY3jgbLjgZMNCivjgZfjgoDjgoks44GP44Gr44KA44GtDQor44Gf44GL44Gv44GXLOOBvuOBleOBsuOBkw0KK+OBn+OBi+OBvuOBpCzjgojjgYbjgZMNCivjgYbjgYjjgaAs44KI44GX44GC44GNDQor44GG44GYLOOChuOBjeOBig0KK+OBhuOBpOOBvyzjgbLjgo3jgobjgY0NCivjgYLjgbks44KI44GG44GTDQor44GT44KT44GpLOOBqOOBl+OChA0KK+OBn+OBi+OBruOBhuOBoSzjgZ/jgY/jgoQNCivjgYTjga7jgYbjgYgs44Gk44KI44GXDQor44Gq44GL44Gv44KJLOOBqOOBvw0KK+OBguOBoOOBoSzjgbLjgZXjgYgNCivjgarjgYvjga4s44GI44G/44GTDQor44GC44GE44GwLOOBsuOBp+OBquOBig0KK+OBguOBhOOBsCzjgojjgZfjgYoNCivjgYLjgYTjgbAs44Go44GK44KLDQor44GC44GE44GgLOOBvuOBk+OBqA0KK+OBguOBhOOBr+OCiSzjgb7jgZXjgoQNCivjgYLjgYvjgYTjgZcs44GY44KF44KT44GYDQor44GC44GL44GE44KPLOOBi+OBmuOBruOBl+OCkw0KK+OBguOBi+OBiuOBjizjgbLjgafjgobjgY0NCivjgYLjgY3jgZ8s44G/44Gk44G+44GVDQor44GC44G+44GuLOOBkeOCk+OBhOOBoQ0KK+OBguOBiuOBjSzjgoDjgaTjgYoNCivjgYLjgYrjgY0s44GUDQor44GC44GK44Gs44G+LOOBl+OCheOBsuOBoQ0KK+OBguOBiuOChOOBjizjgojjgbLjgaENCivjgYLjgonjgY0s44Gf44GL44GXDQor44GC44KK44G+44GhLOOBkeOCk+OBleOBjw0KK+OBguOCiuOBnyzjgoDjga3jgbLjgo0NCivjgYLjgZXjgaAs44Gy44Go44GXDQor44GC44GV44GI44GgLOOChuOBn+OBiw0KK+OBguOBleOBr+OCiSzjgbLjgo3jgY0NCivjgYLjgZXjgYvjgo8s44Gu44KK44GC44GNDQor44GC44GV44KC44GoLOOBn+OBkeOBlw0KK+OBguOBleOBrizjgZXjgajjgZcNCivjgYLjgZ/jgZDjgaEs44G+44GV44Gy44KNDQor44GC44KE44GNLOOBguOBpOOBlw0KK+OBsOOBsCzjgb7jgZXjgYrjgb8NCivjgbDjgbAs44KI44GX44Gy44KNDQor44Gw44GwLOOBqOOBl+OBsuOBpw0KK+OBsOOCkyzjgaTjgojjgZcNCivjgaDjgYTjgZPjgY8s44Gq44GK44GTDQor44Gg44GmLOOBsuOCjeOBkw0KK+OBleOBrizjgobjgY3jgZMNCivjgb/jgaTjgYrjgYss44Gy44Go44GXDQor44Gn44KT44GgLOOBiOOBhOOBmA0KK+OBqeOBhCzjgYLjgY3jgokNCivjgYjjgpPjgaks44Go44GX44Gu44G2DQor44GI44KT44GpLOOBsuOBp+OBguOBjQ0KK+OBiOOBluOCjyzjgabjgaTjgoQNCivjgbXjgZjjgYgs44Gf44GL44Gy44KNDQor44G144GY44GELOOCiOOBl+OBr+OCiw0KK+OBteOBmOOBhCzjgYvjgZrjgbLjgZMNCivjgbXjgZjjgb7jgY0s44Gk44Go44KADQor44G144GY44KC44GoLOOChuOBn+OBiw0KK+OBteOBmOOCguOBqCzjgbLjgo3jgZcNCivjgbXjgZjjgoDjgo0s44Gv44KL44GTDQor44KC44KN44Ga44G/LOOBl+OCheOCk+OBmeOBkQ0KK+OBteOBmOOBleOCjyzjgYvjgYrjgosNCivjgbXjgZjjgZ8s44Gq44Gq44GTDQor44G144GL44GbLOOBn+OBkeOBlw0KK+OBteOBj+OBoCzjgb/jgaHjgogNCivjgbXjgY/jganjgoEs44GX44GS44Gy44GTDQor44G144GP44GELOOBmOOCheOBq+OBoQ0KK+OBteOBj+OBquOBjCzjgZfjgZLjgY0NCivjgbXjgY/jgZfjgb4s44GL44Ga44Gy44GTDQor44G144GP44GW44KPLOOBiOOBvw0KK+OBteOCi+OBsOOChOOBlyzjgajjgoLjgbLjgZMNCivjgbXjgovjgYvjgo8s44KI44Gy44Gh44KNDQor44G144KL44GL44KPLOOBquOCiuOBsuOBpw0KK+OBlCzjgZ/jgZHjgbXjgb8NCivjgZTjgb7jgoss44GL44Ga44Gy44KNDQor44GU44GoLOOBvuOBleOBguOBjQ0KK+OBlOOBqCzjgb7jgZXjgYvjgaQNCivjgZTjgags44G/44KPDQor44Gu44KC44GoLOOBv+OBjeOBig0KK+OBr+OBjuOCj+OCiSzjgZPjgYbjgZgNCivjga/jgYTjgoTjgb4s44GL44KT44GYDQor44Gv44G+LOOBkeOCk+OBmA0KK+OBr+OBvuOBoSzjgbLjgo3jgobjgY0NCivjga/jgb7jgaAs44Gf44Gk44KEDQor44Gv44G+44Gf44GrLOOBl+OBm+OBhA0KK+OBr+OBquOBhCzjgZ/jgYvjgZcNCivjga/jgarjgZ8s44Gy44GV44GXDQor44Gv44Gt44GYLOOBteOBv+OBsuOBlQ0KK+OBr+OCk+OBluOCjyzjgbLjgafjgYoNCivjga/jgoks44G+44KK44GLDQor44Gv44KJLOOBguOBjeOCiQ0KK+OBr+OCieOBoCzjgbLjgafjgY0NCivjga/jgonjgaAs44GC44GR44G/DQor44Gv44Gb44GM44KPLOOBr+OBqg0KK+OBr+OBm+OBjOOCjyzjgZnjgZnjgoANCivjga/jgZvjgYzjgo8s44GX44KHDQor44Gv44GX44GQ44GhLOOBn+OBpOOChA0KK+OBr+OBl+OCguOBqCzjgaHjgZrjgYsNCivjgZTjgags44GL44GK44KLDQor44GL44GY44KP44KJLOOCiuOCheOBnw0KK+OBr+OBmeOBvyzjgY3jgofjgZMNCivjgYvjgZ/jgoTjgarjgY4s44GL44Ga44G/44GhDQor44Gv44Gf44GR44KE44G+LOOBl+OCheOBsuOBoQ0KK+OCgOOCieOBhCzjgarjgYrjgbLjgZUNCivjga/jgZ/jgass44GX44GS44GKDQor44Gv44Gj44Go44KKLOOChOOBmeOBsuOBqA0KK+OBr+OBo+OBqOOCiizjgbLjgonjgY8NCivjga/jgoTjgZcs44Gy44KN44GTDQor44GK44GZ44G/LOOBvuOBleOBsuOBkw0KK+OBr+OChOOBlyzjgb/jgbsNCivjga/jgoTjgZcs44GX44KT44GYDQor44Gv44KE44GX44GgLOOBi+OBmuOBsuOBpw0KK+OBsuOBjCzjgY3jgojjgZcNCivjgbLjgYzjgZcs44KG44Gf44GLDQor44Gy44GM44GX44GgLOOBquOBiuOBkw0KK+OBqOOCiOOBoCzjgabjgaTjgoQNCivjgbLjga4s44G+44GV44KI44GXDQor44Gy44KJLOOChOOBmeOChuOBjQ0KK+OBsuOCieOCguOBqCzjgZHjgYQNCivjgbLjgonjgYos44KI44GX44GTDQor44Gy44KJ44GKLOOBpOOBkOOBruOCig0KK+OBsuOCieOBnyzjgYjjgYTjgYTjgaENCivjgbLjgonjgoTjgb4s44GX44KT44GE44GhDQor44Gy44KN44GELOOBv+OBpOOChuOBjQ0KK+OBsuOCjeOBi+OCjyzjgorjgoXjgbLjgaENCivjgbLjgo3jgYvjgo8s44KE44GZ44Gu44G2DQor44Gy44KN44G+44GZLOOBn+OBi+OChuOBjQ0KK+OBsuOCjeOBmyzjgZ/jgYvjgobjgY0NCivjgbLjgo3jgZss44G+44GV44GTDQor44Gy44GX44KELOOBi+OBmuOBquOCig0KK+OBu+OBl+OChyzjgojjgZfjga7jgbYNCivjgbvjgpPjgaAs44GV44GNDQor44Gv44KE44GXLOOBn+OBkeOBig0KK+OBu+OCk+OBvizjgorjgoXjgZnjgZENCivjgbvjgorjgZDjgaEs44GX44KF44Gy44GhDQor44G744KK44GELOOChuOBsuOBoeOCjQ0KK+OBu+OBlyzjgZ/jgZHjgbLjgZMNCivjgbvjgZ3jgYQs44Gm44Gk44KEDQor44G744Gd44G/LOOBmOOCheOCk+OBkw0KK+OBu+OBo+OBnyzjgb7jgZXjgagNCivjgbXjgY/jgo3jgYQs44G+44GV44KG44GNDQor44G144KL44KELOOBquOBiuOBvw0KK+OBhOOBtuOBiyzjgZ/jgZHjgZcNCivjgYTjgaHjgbAs44Gf44GL44GXDQor44GE44Gh44Gv44KJLOOBruOCiuOBi+OBmg0KK+OBhOOBoeOBi+OCjyzjgojjgZ/jgo3jgYYNCivjgYTjgaHjgoDjgoks44GL44Ga44KG44GNDQor44GE44Gh44Gu44Gb44GNLOOBv+OBpOOCiw0KK+OBhOOBhOOBoCzjgZ/jgYvjgYoNCivjgYTjgYTjgaAs44GV44Go44GXDQor44GE44GE44GY44G+LOOBguOBjeOBkw0KK+OBl+OBruOBr+OCiSzjgb/jgbvjgZMNCivjgYTjgZHjgaAs44Gu44Ge44KADQor44GE44GR44GgLOOBn+OBkeOBlw0KK+OBhOOBkeOBoCzjgabjgovjgYoNCivjgYTjgZHjgaAs44Gy44KN44G/DQor44GE44GR44GW44KPLOOBguOBjeOBsuOBkw0KK+OBhOOBvuOBhCzjgYvjgaTjgoQNCivjgYTjgb7jgYQs44KE44GZ44GKDQor44GE44G+44GELOOBvuOBleOBsuOBpw0KK+OBhOOBvuOBjSzjgZHjgpPjgZgNCivjgYTjgb7jgoDjgoks44GC44GN44Gy44GoDQor44GE44KC44GoLOOBneOBsuOBoQ0KK+OBguOBuSzjgZ/jgYvjgZcNCivjgYTjgarjgaAs44Gy44KN44GXDQor44GE44Gu44GG44GILOOBsuOCjeOBlw0KK+OBhOOBruOBhuOBiCzjgZjjgoXjgavjgaHjgo0NCivjgYTjga7jgYbjgYgs44Go44GX44Gy44KNDQor44GE44Gu44GG44GILOOBqOOBl+OChA0KK+OBhOOCiuOBiCzjgZjjgoXjgpPjgZMNCivjgaTjgovjgYrjgYss44KI44GG44GTDQor44GK44Gv44GXLOOBr+OBmOOCgQ0KK+OBhOOBl+OBoCzjgorjgYgNCivjgYTjgZfjgaAs44KG44GNDQor44GE44GX44GgLOOChuOBn+OBiw0KK+OBhOOBl+OBoCzjgojjgYbjgZMNCivjgYTjgZfjgZDjgo0s44GL44Ga44Gf44GLDQor44GE44GX44Gv44KJLOOBvuOChuOBvw0KK+OBhOOBl+OBr+OCiSzjgZHjgYTjgZ8NCivjgYTjgZfjgYQs44GP44Gr44Gy44GTDQor44GE44GX44GL44KPLOOBv+OBruOCiw0KK+OBhOOBl+OBi+OCjyzjgZHjgpPjgZnjgZENCivjgYTjgZfjgo/jgZ8s44GX44KH44Gy44GhDQor44GE44Go44GGLOOCiOOBl+OChOOBmQ0KK+OBhOOBqOOBhizjgobjgY3jgZMNCivjgYTjgajjgoTjgb4s44Go44KC44Gy44KNDQor44GE44Gk44GNLOOBn+OBi+OBlw0KK+OBhOOCj+OBjSzjgb7jgZXjgbLjgZMNCivjgYTjgo/jgZXjgY0s44GL44Ga44GKDQor44GE44Ga44GkLOOCiOOBl+OBsuOBkw0KK+OBmOOBtizjgbLjgajjgZcNCivjgYvjganjgYQs44Gy44GV44Go44GXDQor44GC44Gg44GhLOOChuOBhuOBmA0KK+OBi+OBhCzjgZHjgpPjgZgNCivjgYvjgYTjgZss44GT44GG44GYDQor44GL44GE44Ga44GLLOOBr+OBmOOCgQ0KK+OBi+OBmOOCj+OCiSzjgojjgZfjgY0NCivjgYvjgY0s44GX44GS44GKDQor44GL44GN44G/LOOBmOOCheOCk+OBkw0KK+OBmeOBjuOBnyzjgb/jgaTjgbLjgZMNCivjgYvjgY/jgZ/jgass44G+44GV44Gu44KKDQor44GL44G/44Gw44KE44GXLOOBguOBjeOCiQ0KK+OBi+OBv+OBjOOBjSzjgb7jgZXjga7jgooNCivjgYvjgb/jgoQs44Gf44GL44GXDQor44GL44KC44GgLOOBguOBjeOBkw0KK+OBi+OCguOBqCzjgajjgZfjgYoNCivjgYvjgpPjgbDjgoTjgZcs44GL44Ga44Gy44KNDQor44GL44Gt44GTLOOBk+OBhuOBn+OCjeOBhg0KK+OBi+OBreOBkyzjgZ/jgZHjgZcNCivjgYvjga3jgZMs44KG44GG44GYDQor44GL44Gt44GTLOOBiOOBv+OBkw0KK+OBi+OBq+OBleOCjyzjgabjgovjgoTjgZkNCivjgYvjgoss44GR44KT44GYDQor44GL44GX44KP44GOLOOBn+OBi+OChuOBjQ0KK+OBi+OBmeOBvyzjgbLjgo3jgYLjgY0NCivjgYvjgZ/jgY7jgoos44Gy44KN44GTDQor44GL44Go44GGLOOBsuOCjeOBlw0KK+OBi+OBqOOBhizjgYvjgaTjgajjgZcNCivjgYvjgajjgYYs44GT44GG44GYDQor44GL44Go44GGLOOCjOOBhOOBjQ0KK+OBi+OBqOOBhizjgoTjgZnjgZMNCivjgZ/jgZDjgaEs44GL44Gk44Gy44GTDQor44GL44Go44GGLOOBruOCiuOBsuOBpw0KK+OBi+OBqOOBhizjgZXjgajjgZcNCivjgYvjgajjgYYs44GT44GG44GE44GhDQor44GL44Gk44KJLOOBn+OCguOBpA0KK+OBneOBlCzjgoLjgajjgbLjgo0NCivjgYvjgo/jgbLjgags44GX44KT44GUDQor44GL44KP44GELOOBv+OBpOOChA0KK+OBi+OCj+OBi+OBvyzjgY/jgavjgbLjgZMNCivjgYvjgo/jgb8s44G/44Gk44GKDQor44GL44KP44KA44KJLOOBn+OBpOOChA0KK+OBi+OCj+OCgOOCiSzjgZ/jgYvjgobjgY0NCivjgYvjgo/jgZXjgY0s44Gm44Gk44KEDQor44GL44KP44GV44GNLOOCiOOBsuOBoeOCjQ0KK+OBi+OCj+OBhuOBoSzjgarjgYrjgobjgY0NCivjgYvjgaTjgY0s44G/44Gk44Gy44KNDQor44GN44GgLOOBguOBpOOBlw0KK+OBjeOBqeOBk+OCjSzjgobjgYbjgZMNCivjgoLjgoos44Gu44G244GKDQor44GN44GP44GhLOOBn+OBpOOCjQ0KK+OBjeOBj+OBjOOCjyzjgZjjgoXjgpPjgZMNCivjgY3jgoDjgoks44GR44KT44GYDQor44GN44KA44KJLOOBk+OBhg0KK+OBjeOCgOOCiSzjgZfjgpMt44GE44GhDQor44GN44KA44KJLOOBguOBjeOCiQ0KK+OBjeOBruOBl+OBnyzjgZHjgpMNCivjgY3jga7jgZfjgZ8s44G+44GT44GoDQor44GN44Gu44GX44GfLOOCiuOBiOOBkw0KK+OBjeOBruOBl+OBnyzjgZPjgYbjgZgNCivjgY3jgZfjgaAs44GX44GS44KLDQor44GN44GX44GL44KPLOOBl+OCk+OBmA0KK+OBjeOBnyzjgabjgovjgY0NCivjgY3jgZ/jgZDjgaEs44Gy44KN44GXDQor44GC44G+44GuLOOBqOOCguOBi+OBmg0KK+OBjeOBn+OCgOOCiSzjgb7jgZXjgYLjgY0NCivjgY3jgZ/jgoTjgb4s44GC44GN44Go44KCDQor44GT44Gw44KE44GXLOOBuOOBhOOBmA0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgZcNCivjgZPjgbDjgoTjgZcs44GR44KT44GYDQor44GT44Gw44KE44GXLOOBvuOBk+OBqA0KK+OBk+OBsOOChOOBlyzjgb/jgYgNCivjgZPjgbDjgoTjgZcs44G/44Gk44Gy44KNDQor44GC44KB44GX44GfLOOBleOBqOOCiw0KK+OBk+OBsOOChOOBlyzjgZ/jgZHjgZcNCivjgZPjgbDjgoTjgZcs44Gf44GP44G/DQor44GT44Gw44KE44GXLOOBqOOCiOOBjQ0KK+OBk+OBsOOChOOBlyzjgojjgZfjgYLjgY0NCivjgZPjgbDjgoTjgZcs44KI44GX44Gv44KLDQor44GT44Gw44KE44GXLOOChuOBi+OCig0KK+OBk+OBsOOChOOBlyzjgobjgY3jgZMNCivjgYrjgaAs44G+44GV44Gy44GTDQor44GT44G844KKLOOBqOOBl+OBig0KK+OBk+OBoOOBhOOCiSzjgZHjgYTjgZnjgZENCivjgZPjgaDjgb4s44G/44Gh44KIDQor44GL44KP44GQ44GhLOOBvuOBquOBtg0KK+OBk+OBoOOBpizjgaHjgbLjgo0NCivjgZPjgYws44Gq44GK44GoDQor44GT44GMLOOCguOBqOOBruOCig0KK+OBk+OBjOOBreOBvuOCiyzjgbLjgo3jgobjgY0NCivjgZPjga/jgoks44KE44GZ44Gm44KLDQor44GT44GgLOOBqOOCguOBguOBjQ0KK+OBk+OBrizjgZjjgoXjgpPjgZgNCivjgZPjgZbjgYQs44Gq44GK44GNDQor44GT44GE44GRLOOBk+OBhuOBhOOBoQ0KK+OBk+OBhOOBmuOBvyzjgbLjgo3jgb8NCivjgZPjgZjjgb4s44GR44KT44GYDQor44GT44GY44G+LOOBjeOCiOOBn+OBiw0KK+OBk+OBvuOBpCzjgb7jgobjgb8NCivjgZPjgoLjgoos44Gg44GE44GZ44GRDQor44GT44KT44GpLOOBn+OBi+OBsuOCjQ0KK+OBk+OCk+OBqSzjgb7jgZXjgbLjgZMNCivjgZPjgpPjgZ8s44Gy44Gn44G/DQor44GT44Gf44GLLOOBruOBtuOBsuOCjQ0KK+OBk+OBn+OBkSzjgZvjgYTjgZgNCivjgZPjgoTjgb4s44GC44Gk44GXDQor44GP44G8LOOBv+OBpOOCiw0KK+OBj+OBvOOBjSzjga7jgorjgobjgY0NCivjgY/jgbzjgZ8s44GC44GN44KJDQor44GP44GMLOOBvuOBleOBvw0KK+OBj+OBvuOBjOOBhCzjgajjgoLjgarjgooNCivjgY/jgavjgoLjgoos44GR44KT44GE44GhDQor44GP44KJ44KC44GoLOOBvuOBquOBtg0KK+OBj+OCieOBleOCjyzjgZPjgYbjgYTjgaENCivjgY/jgonjgZfjgaos44GC44GN44GKDQor44GP44KJ44GfLOOBvuOBleOBig0KK+OBj+OCiuOCguOBqCzjgoTjgZnjgo0NCivjgY/jgorjgZ8s44GR44KTDQor44GP44KN44GgLOOBn+OBi+OBlw0KK+OBj+OCjeOBoCzjgojjgZfjgZ/jgYsNCivjgY/jgo3jgYvjgo8s44Go44KC44Gu44KKDQor44GP44KN44GNLOOBhOOBleOCgA0KK+OBj+OCjeOBleOBjSzjgZHjgpPjgYTjgaENCivjgY/jgo3jgZXjgo8s44G/44Gk44Gu44KKDQor44GP44KK44KFLOOBvuOBleOBjQ0KK+OBj+OCj+OBnyzjgajjgo3jgY8NCivjgY/jgZrjgb8s44Gy44KN44GXDQor44G+44G244GhLOOBhOOBj+OBkw0KK+OBvuOBiOOBoCzjgojjgbLjgaENCivjgb7jgYjjgaAs44Gf44Gk44GYDQor44G+44GI44GM44KPLOOChOOBmeOBquOCig0KK+OBvuOBiOOBi+OCjyzjgojjgbLjgaENCivjgb7jgY3jgYos44GY44KF44KTDQor44G+44KB44Gv44KJLOOBguOBpOOBlw0KK+OBvuOBleOBoCzjgYvjgaTjgbLjgagNCivjgb7jgZnjgaAs44GV44Go44GXDQor44G+44GZ44GgLOOBn+OBkeOBig0KK+OBvuOBmeOBoCzjgojjgZfjgb7jgZUNCivjgb7jgZnjgaAs44Go44GX44GL44GaDQor44G+44GZ44KE44G+LOOBsuOBp+OBguOBjQ0KK+OBvuOBpOOBoCzjgZfjgpPjgZQNCivjgb7jgaTjgaAs44Gk44KI44GXDQor44G+44Gk44GI44GgLOOCiuOCh+OBsuOBoQ0KK+OBvuOBpOOBhCzjgbLjgo3jgobjgY0NCivjgb7jgaTjgoLjgags44GR44KT44GYDQor44G+44Gk44KC44GoLOOBvuOBleOBsuOBkw0KK+OBvuOBpOOCguOBqCzjgZ/jgYvjgbLjgo0NCivjgb7jgaTjgoLjgags44Gf44GP44G/DQor44G+44Gk44KC44GoLOOChOOBmeOBsuOCjQ0KK+OBvuOBpOOCguOBqCzjgZHjgYTjgZcNCivjgb7jgaTjgarjgYws44GC44GN44Gy44GTDQor44G+44Gk44GuLOOChOOBmeOBqOOBlw0KK+OBvuOBpOOBrizjgZvjgYTjgYTjgaENCivjgb7jgaTjgYrjgYss44GC44GN44Gy44KNDQor44G+44KG44G/LOOBsuOCjeOChuOBjQ0KK+OCgeOBi+OBnyzjgojjgZnjgZENCivjgoHjgoks44Gy44KN44GXDQor44G/44Gf44GrLOOBn+OBi+OBlw0KK+OBv+OBn+OBqyzjgajjgoLjgZMNCivjgb/jgags44KK44Gk44GTDQor44G/44KE44GM44G/LOOCgOOBpOOBvw0KK+OBhOOBiuOBjSzjgarjgYrjgb8NCivjgb/jgoTjgoLjgags44Gk44KI44GXDQor44G/44KE44KA44KJLOOBn+OBi+OBvuOBlQ0KK+OBv+OChOOBrizjgZHjgpPjgZ/jgo3jgYYNCivjgb/jgoTjgYbjgaEs44GR44GE44GYDQor44G/44KE44GW44GNLOOBm+OBhOOBhOOBoQ0KK+OCguOBoeOBmuOBjSzjgobjgbLjgaENCivjgoLjgoLjgYQs44GX44KF44Gy44GhDQor44KC44KKLOOCiOOBhuOBn+OCjeOBhg0KK+OCguOCiizjgb7jgZXjgobjgY0NCivjgoLjgorjgoLjgags44KE44GZ44Gy44GTDQor44KC44KK44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OCguOCiuOBiuOBiyzjgb/jgaHjgZMNCivjgoLjgorjgZXjgo8s44GC44GN44KJDQor44KC44KK44GfLOOBsuOCjeOBjQ0KK+OCguOCiuOBnyzjgZPjgYbjgZgNCivjgoLjgorjgZ8s44Gf44KN44GGDQor44KC44KK44GfLOOBv+OBoeOBsuOBqA0KK+OCguOCiuOChOOBvizjgobjgb/jgZMNCivjgoLjgorjgoTjgb4s44GX44GS44Gy44GVDQor44KC44Gm44GOLOOBvuOBleOBguOBjQ0KK+OCgOOCieOBi+OBvyzjgYLjgY3jgbLjgo0NCivjgYLjgZXjga4s44Go44KC44KG44GNDQor44GC44KG44GL44KPLOOBn+OBi+OBguOBjQ0KK+OCgOOCieOBiizjgb7jgZXjga/jgosNCivjgoDjgonjgYrjgYss44G+44GV44GL44GkDQor44KA44KJ44GfLOOChuOBjQ0KK+OCgOOBl+OBguOBkSzjgbLjgafjgb7jgZUNCivjgoDjgZ8s44KG44GLDQor44Gq44G544GELOOBj+OBv+OBkw0KK+OBquOBjOOBhCzjgojjgbLjgaENCivjgarjgYzjgYQs44KA44Gk44GTDQor44Gq44GM44G/44GtLOOBkeOCk+OBmA0KK+OBquOBjOOBleOCjyzjgajjgoLjgbLjgo0NCivjgarjgYzjgZ8s44GL44Ga44KI44GXDQor44Gq44GM44KE44G+LOOBsuOCjeOBruOBtg0KK+OBquOBkOOCiSzjgYLjgY3jgbLjgZMNCivjgarjgYTjgajjgYYs44GX44KT44KEDQor44Gq44GL44GM44KPLOOBn+OBi+OBlw0KK+OBquOBi+OBjOOCjyzjgZ/jgaTjgbLjgZMNCivjgarjgYvjgYzjgo8s44Go44GK44KLDQor44Gq44GL44GM44KPLOOBvuOBleOBguOBjQ0KK+OBquOBi+OBr+OCiSzjgZHjgpPjgZQNCivjgarjgYvjgYQs44GV44Go44GXDQor44Gq44GL44GELOOBoOOBhOOBmeOBkQ0KK+OBquOBi+OBmOOBvizjgZfjgZLjgosNCivjgarjgYvjgZjjgb4s44Go44KC44GL44GaDQor44Gq44GL44GY44G+LOOBiOOBv+OBkw0KK+OBleOCj+OBoCzjgbLjgZXjgZcNCivjgarjgYvjgoDjgoks44G+44GV44Gy44KNDQor44Gw44KT44GwLOOBk+OBhuOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgZMNCivjgarjgYvjgoDjgoks44GV44KG44KKDQor44Gq44GL44KA44KJLOOBn+OBoOOBlw0KK+OBquOBi+OCgOOCiSzjgabjgaTjgYoNCivjgarjgYvjgoDjgoks44Gm44Gk44KEDQor44Gq44GL44KA44KJLOOChuOBv+OBkw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgarjgYvjga4s44KK44KF44GYDQor44Gq44GL44GuLOOChuOBv+OBkw0KK+OBquOBi+OBiizjgoTjgZnjgZcNCivjgarjgYvjgZfjgb4s44G+44GV44Gy44KNDQor44Gq44GL44GfLOOBn+OBi+OBkw0KK+OBquOBi+OBnyzjgZfjgZLjgosNCivjgarjgYvjgoTjgb4s44Gf44GL44Gy44KNDQor44Gq44GL44KE44G+LOOBqOOBiuOCiw0KK+OBquOBi+OChOOBvizjgobjgb/jgZMNCivjgarjgYvjgoTjgb4s44GL44Gk44KEDQor44Gq44GL44GW44KPLOOBv+OBiOOBkw0KK+OBquOBi+OBluOCjyzjgYLjgY3jga7jgbYNCivjgarjgYzjgYrjgYss44Gm44Gk44KEDQor44Gq44Gq44GX44KDLOOBsuOBp+OBsuOBqA0KK+OBquOCiuOBnyzjgZPjgYbjgYTjgaENCivjgarjgorjgZ8s44G+44GV44Gu44KKDQor44Gq44GZLOOBi+OBmuOBig0KK+OBquOBmeOBnyzjgb7jgooNCivjgavjgZcs44Gf44GR44GXDQor44Gr44GX44GgLOOBguOBjeOBsuOCjQ0KK+OBq+OBl+OCgOOCiSzjgbXjgb/jgZMNCivjgb7jgZXjgaAs44Gy44KN44GL44GaDQor44Gr44GX44KA44KJLOOBruOBtuOChuOBjQ0KK+OBq+OBl+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjgavjgZfjgYos44GT44GG44GE44GhDQor44Gr44GX44KE44G+LOOBguOBjeOBkw0KK+OBq+OBo+OBnyzjgarjgYrjgoTjgZkNCivjga7jgYzjgb8s44Gy44KN44G144G/DQor44Gu44Gq44GLLOOBguOBjeOBsuOCjQ0KK+OBruOBmyzjgZHjgYTjgZMNCivjga7jgZ/jgbks44GL44Gk44KEDQor44Gu44GoLOOBkeOBhOOBmeOBkQ0KK+OBruOBpizjgobjgZ/jgYsNCivjgazjgY/jgYQs44KI44GX44Gy44KNDQor44GK44GhLOOBpOOCiOOBlw0KK+OBiuOBoeOBguOBhCzjgb7jgZPjgagNCivjgYrjgaAs44Gf44GR44GXDQor44GK44GM44GV44KP44KJLOOBsuOCjeOBlw0KK+OBiuOBjOOCjyzjgYvjga3jga7jgbYNCivjgYrjgYzjgo8s44Gu44G244KG44GNDQor44GK44GM44KPLOOBleOBoeOBig0KK+OBiuOBjOOCjyzjgZ/jgZHjgbLjgZMNCivjgYrjgYzjgo8s44Go44KC44GTDQor44GK44GM44KPLOOBvuOBleOChuOBjQ0KK+OBiuOBjuOBrizjgojjgZfjgZ/jgaANCivjgYrjgbAs44G/44Gq44GTDQor44Gf44GN44G/44KELOOBi+OBiuOCig0KK+OBiuOBr+OBlyzjgoTjgZnjgbLjgo0NCivjgYrjga/jgZcs44Gf44GL44Gy44KNDQor44GK44GyLOOBsuOBp+OBig0KK+OBiuOBi+OCjyzjgZfjgpPjgZQNCivjgYrjgoLjgoos44GY44KF44Gr44GhDQor44GK44KA44KJLOOBsuOCjeOBjQ0KK+OBiuOBquOBi+OBr+OCiSzjgb7jgZXjgbLjgo0NCivjgYrjgavjgZcs44GC44GN44Gy44GTDQor44GK44GuLOOBqOOBl+OChuOBjQ0KK+OBiuOBu+OBiyzjgojjgZfjgYvjgZoNCivjgYrjgZfjgb4s44KG44GG44GYDQor44GK44GX44G+LOOCiOOBmA0KK+OBhOOBkeOBvuOBpCzjgZPjgYbjgZgNCivjgYrjgZ8s44G+44GV44Gy44GTDQor44GK44GfLOOBvuOBleOChA0KK+OBiuOBnyzjgarjgYrjgZ/jgZENCivjgYrjgZ8s44Go44KC44G/DQor44G144GP44GgLOOBvuOBk+OBqA0KK+OBiuOBnOOBjSzjgb7jgZXjgbLjgacNCivjgYrjgYTjgaAs44KG44GN44GKDQor44GK44GE44GYLOOBn+OBoOOChuOBjQ0KK+OBiuOBi+OBoCzjgZ/jgY/jgb/jgpMNCivjgZnjgY7jgoLjgags44Gh44GV44GoDQor44GK44GL44GW44GNLOOBiOOBvw0KK+OBiuOBi+OBluOBjSzjgZjjgoXjgpPjgYsNCivjgYrjgYvjgZbjgo8s44G+44KGDQor44GK44GP44GgLOOBn+OBkeOBpOOBkA0KK+OBiuOBj+OBoCzjgojjgZfjga7jgooNCivjgYrjgY/jgaAs44GC44GN44GTDQor44GK44GP44KA44KJLOOBn+OBi+OBlw0KK+OBiuOBj+OCgOOCiSzjga7jgbYNCivjgYrjgY/jga4s44GR44KT44GE44GhDQor44GK44GP44KE44G+LOOBn+OBi+OBkw0KK+OBiuOBrizjgZ/jgZHjgZcNCivjgYrjgazjgY0s44Gf44GL44GXDQor44GK44Gv44GXLOOBleOBoeOBkw0KK+OBqOOBsuOCgyzjgZ/jgb/jgZMNCivjgYrjgajjgZDjgo0s44G/44GIDQor44GH44GILOOBkeOBhOOBhOOBoQ0KK+OBleOBhOOBlCzjgbLjgajjgZcNCivjgZXjgYTjgajjgYYs44GP44Gr44Gy44KNDQor44GV44GE44Go44GGLOOBl+OCk+OBmA0KK+OBleOBhOOBqOOBhizjgZ/jgYvjgobjgY0NCivjgZXjgYTjgajjgYYs44KE44GZ44Gy44KNDQor44GV44GE44Go44GGLOOChOOBmeOBlw0KK+OBleOBhOOBqOOBhizjgbLjgajjgZcNCivjgZXjgYTjgajjgYYs44Gm44Gk44KEDQor44GV44GL44GI44Gg44GrLOOBoeOCheOCk+OBgeOCkw0KK+OBoeOBh+OCkyzjgb7jgZXjgY0NCivjgZXjgYvjgYQs44GX44GS44KLDQor44GV44GL44GELOOBsuOBp+OBsuOBqA0KK+OBleOBi+OBnyzjgZPjgYbjgZ/jgo3jgYYNCivjgZXjgYvjgZ8s44GC44GN44Gy44KNDQor44GV44GP44G+LOOBquOBiuOBvw0KK+OBleOBj+OCieOBsOOChOOBlyzjgbLjgafjga7jgooNCivjgZXjgY/jgonjgYQs44Go44GX44GKDQor44GV44GP44GfLOOBvuOBleOBsuOCjQ0KK+OBleOBleOBjSzjga7jgbbjgobjgY0NCivjgZXjgZXjgY0s44Gf44GL44GC44GNDQor44GV44GV44GNLOOBn+OBkeOBsuOCjQ0KK+OBleOBleOBjSzjgojjgZfjgZ/jgo3jgYYNCivjgZXjgZXjgoEs44GC44GN44Gy44GVDQor44GV44Go44GGLOOBteOBv+OBsuOBkw0KK+OBleOBqOOBhizjgbLjgo3jgY0NCivjgZXjgajjgYYs44Gy44KN44GXDQor44GV44Go44GGLOOBmOOCheOCkw0KK+OBleOBqOOBhizjgYvjgpPjgZgNCivjgZXjgajjgYYs44G/44GLDQor44GV44Go44GGLOOCguOBqOOChuOBjQ0KK+OBleOBqOOBhizjga7jgbbjgoTjgZkNCivjgZXjgajjgYYs44Go44GP44GY44KNDQor44GV44Go44GGLOOBpOOCiOOBlw0KK+OBleOBqOOBhizjgYvjgZrjgbLjgZMNCivjgZXjgajjgYYs44Gf44GL44Gy44KNDQor44GV44Go44GGLOOBguOBpOOBlw0KK+OBleOCj+OBoCzjgb7jgaTjgYoNCivjgZXjgo/jga/jgZcs44KI44GX44GC44GNDQor44GV44KP44GuLOOBvuOBleOBi+OBmg0KK+OBm+OBkOOBoSzjgYLjgY3jgokNCivjgZvjgY0s44GV44Gh44GTDQor44Gb44GN44GQ44GhLOOCiOOBl+OChuOBjQ0KK+OBm+OBjeOBkOOBoSzjgojjgbLjgaENCivjgZfjgbAs44GL44Ga44Gu44KKDQor44GX44Gw44GfLOOBvuOBleOBsuOBkw0KK+OBl+OBsOOBnyzjgojjgZfjgbLjgo0NCivjgZfjgbbjgoQs44KI44GX44KNDQor44GX44G+44GgLOOBr+OBmOOCgQ0KK+OBl+OBv+OBmizjgbLjgo3jgb8NCivjgYTjgZfjgYvjgo8s44Gy44KN44GXDQor44GX44G/44GaLOOBk+OBhuOBmA0KK+OBl+OBv+OBmizjgZfjgofjgZgNCivjgZfjgb/jgZos44KE44GIDQor44GX44G/44GaLOOBj+OBv+OBkw0KK+OBteOBmOOBiOOBoCzjgbLjgo3jgoTjgZkNCivjgZfjgoLjgoTjgb7jgaAs44KK44GIDQor44GX44Gq44GM44KPLOOBn+OBi+OBrQ0KK+OBl+OCk+OChCzjgZ/jgaTjgobjgY0NCivjgZfjgYrjgb8s44GL44Ga44Gy44KNDQor44GX44GK44GkLOOBl+OCheOBuOOBhA0KK+OBm+OBjeOBkOOBoSzjgajjgoLjgZMNCivjgaTjga7jgaAs44KI44GX44Gy44KNDQor44GX44KJ44GV44GLLOOBleOBqOOBlw0KK+OBl+OCjeOBl+OBnyzjgYvjgYrjgooNCivjgZfjgZ/jgoks44GC44KE44GTDQor44GX44KHLOOBvuOBleOBr+OCiw0KK+OBmeOBjOOCj+OCiSzjgZ/jgYvjgZcNCivjgZnjgYzjgo/jgoks44GX44KF44GYDQor44GZ44GO44KC44GoLOOBi+OBpOOChuOBjQ0KK+OBmeOBjuOBnyzjgZ/jgYvjgobjgY0NCivjgZnjgY7jgZ8s44Go44KC44Gy44KNDQor44GZ44GO44GfLOOBi+OBpOOChuOBjQ0KK+OBmeOBjuOBhuOCiSzjgZHjgpPjgZgNCivjgZnjgY7jgYbjgoks44GR44KT44Gf44KN44GGDQor44GZ44GO44KE44G+LOOBk+OBhuOBhOOBoeOCjQ0KK+OBhOOBkeOBnuOBiCzjgZfjgpPjgYTjgaENCivjgZnjgY7jgoTjgb4s44Go44KC44Gy44GnDQor44GZ44GLLOOBv+OBpOOBruOCig0KK+OBmeOBkeOBjOOCjyzjgZfjgpPjgZgNCivjgZnjgb/jga7jgYbjgYgs44GL44Gk44Gy44GTDQor44GZ44G/44KI44GXLOOBqOOBiuOCiw0KK+OBmeOBv+OCiOOBlyzjgZ/jgYvjgZcNCivjgZnjgarjgb8s44GC44Gk44GKDQor44GZ44Ga44GNLOOBsuOCjeOChuOBjQ0KK+OBmeOBmuOBjSzjgbLjgZXjgZcNCivjgZnjgZrjgY0s44GY44KG44Gr44GhDQor44GZ44Ga44GNLOOBv+OBuw0KK+OBmeOBmuOBjSzjgZXjgajjgZcNCivjgZnjgZrjgY0s44GX44KH44Gy44GhDQor44GZ44Ga44GNLOOBqOOCguOBi+OBmg0KK+OBmeOBmuOBjSzjgb7jgZXjgojjgooNCivjgZfjgofjgZgs44GL44Gk44Gy44GTDQor44GX44KH44GY44KHLOOBleOBqOOBkw0KK+OBn+OBsOOBnyzjgajjgojjgbLjgZUNCivjgZ/jgaAs44G/44Ga44G7DQor44Gf44Gp44GT44KNLOOBvuOBleOBqOOBlw0KK+OBn+OBjOOBvyzjgbLjgo3jgYLjgY0NCivjgZ/jgZDjgaEs44Go44KC44KG44GNDQor44Gf44GQ44GhLOOBruOBtuOCiOOBlw0KK+OBn+OBhCzjgbLjgafjgY0NCivjgZ/jgYTjgoks44Gf44Gt44GL44GaDQor44Gf44GE44GVLOOBqOOBl+OBv+OBpA0KK+OBn+OBmOOBvizjgbLjgo3jgobjgY0NCivjgZ/jgYvjgaAs44KE44Gh44KIDQor44Gf44GL44GgLOOBvuOCguOCiw0KK+OBn+OBi+OBjizjgYLjgY3jgbLjgo0NCivjgZ/jgYvjga/jgZcs44GC44GN44KJDQor44Gf44GL44Gv44GXLOOBsuOCjeOBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgYTjgaPjgbrjgYQNCivjgZ/jgYvjga/jgZcs44G+44GV44GoDQor44Gf44GL44Gv44GXLOOBruOBtuOBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgZfjgZoNCivjgZ/jgYvjga/jgZcs44GX44KH44Gf44KN44GGDQor44Gf44GL44Gv44GXLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgYoNCivjgZ/jgYvjga/jgZcs44Gy44Gn44KG44GNDQor44Gf44GL44GELOOBk+OBhuOBmA0KK+OBn+OBi+OBrizjgZ/jgYvjgZcNCivjgZ/jgYvjgZfjgb4s44Gy44KN44GC44GNDQor44Gf44GL44KE44G+LOOBvuOBleOBpuOCiw0KK+OBn+OBkeOBoCzjgYLjgaTjgZcNCivjgZ/jgZHjgYTjgaEs44G/44Gk44Gy44KNDQor44Gf44GR44G+44GVLOOBjeOCiOOBlw0KK+OBn+OBkeOCgOOCiSzjgZ/jgaDjgarjgYoNCivjgZ/jgZHjgoDjgoks44GI44Gk44KNDQor44Gf44GR44Gq44GLLOOBpuOBpOOCjQ0KK+OBn+OBkeOBl+OBnyzjgYLjgaTjgoQNCivjgZ/jgZHjgYbjgaEs44Gy44KN44GXDQor44Gf44GR44GG44GhLOOBqOOBiuOCiw0KK+OBn+OBkeOBhuOBoSzjgarjgYrjgY0NCivjgZ/jgY3jgYvjgo8s44GV44Go44GXDQor44Gf44GN44GN44GfLOOChuOBhuOBmA0KK+OBn+OBjeOBluOCjyzjgajjgZfjgYoNCivjgZ/jgZMs44KG44GZ44GRDQor44Gf44GL44GuLOOBquOBiuOBjQ0KK+OBn+OBvuOBjOOCjyzjgojjgZfjgbXjgb8NCivjgZ/jgb7jgY0s44GX44Gu44G2DQor44Gf44KA44KJLOOBi+OCk+OBkw0KK+OBn+OBquOBuSzjgarjgYrjgoQNCivjgZ/jgarjgbks44Gy44Gn44Gk44GQDQor44Gf44Gq44GLLOOBi+OBmuOCiOOBlw0KK+OBn+OBquOBiyzjgZHjgYTjgZnjgZENCivjgZ/jgarjgYss44GR44KT44GE44GhDQor44Gf44Gq44GLLOOBl+OBuw0KK+OBn+OBquOBiyzjgZfjgoXjgpPjgZnjgZENCivjgZ/jgarjgYss44Gq44GK44GoDQor44Gf44GrLOOBl+OCh+OBng0KK+OBn+OBq+OBkOOBoSzjgYLjgaTjgagNCivjgZ/jgavjgZfjgocs44Gy44Go44GXDQor44Gf44Gm44KE44G+LOOBiOOBhOOBhOOBoeOCjeOBhg0KK+OBn+OBpOOBvyzjgYLjgaTjgZcNCivjgZ/jgYbjgoks44Gf44GL44GXDQor44Gf44GW44KPLOOBsuOBp+OBqA0KK+OBn+OBmuOBkSzjgojjgZfjgY0NCivjgabjgonjgaAs44KC44Go44KG44GNDQor44Go44G+LOOBsuOCjeOChuOBjQ0KK+OBqOOBsuOCg+OBvizjgYrjgZXjgoANCivjgajjgoHjgYrjgY8s44GL44Ga44Gf44GLDQor44Go44G/44GE44GILOOBsuOCjeOBruOBtg0KK+OBteOBn+OBpOOBjizjgbXjgb/jgYoNCivjgajjgoLjgajjgZcs44GN44KH44G444GEDQor44Go44Gt44GM44KPLOOBjeOCh+OBkw0KK+OBiuOBj+OCgOOCiSzjgb/jgbsNCivjgajjgZfjgZfjgZIs44KI44GX44Gy44GVDQor44Go44KI44GgLOOCiOOBhuOBkw0KK+OBqOOCiOOBquOBiyzjgb7jgZXjgojjgZcNCivjgaTjgbDjgY0s44GL44Ga44Gq44KKDQor44Gk44Gh44KC44GoLOOBruOBtuOBsuOCjQ0KK+OBpOOBoCzjgZfjgpPjgZQNCivjgaTjgaAs44KI44GX44G144G/DQor44Gk44GgLOOBvuOBmeOBvw0KK+OBpOOBmOOBhCzjgZ/jgYvjgajjgZcNCivjgaTjgZjjgoDjgoks44Go44KC44KG44GNDQor44Gk44GL44Gv44KJLOOBm+OBhOOBhOOBoQ0KK+OBpOOBruOBoCzjgZHjgYTjgZMNCivjgaTjgovjgY4s44GL44Ga44Gy44KNDQor44Gk44KL44GfLOOBi+OBmuOBsuOCjQ0KK+OBpOOBl+OBvizjgYLjgY3jgYoNCivjgaTjgaTjgYQs44Gv44KE44GoDQor44Gk44Gh44GgLOOBsuOCjeOBlw0KK+OBhuOBoeOBoCzjgZHjgpPjgZgNCivjgYbjgaHjgaAs44GC44GN44GTDQor44GG44Gh44GP44KJLOOBruOCiuOBsuOBkw0KK+OBhuOBoeOBn+OBqyzjgbLjgo3jgZcNCivjgYbjgYjjgaAs44GL44Ga44Gq44KKDQor44GG44GI44GgLOOBvuOBleOChA0KK+OBhuOBiOOBoCzjgabjgaTjgoQNCivjgYbjgYjjgaAs44G144G/44GKDQor44GG44GI44KA44KJLOOBleOBqOOBlw0KK+OBhuOBiOOBrizjgYvjgogNCivjgYbjgYjjgaTjgY0s44Go44GX44GIDQor44GE44GRLOOBqOOCguOBn+OBiw0KK+OBhuOCgeOBoCzjga7jgorjgZMNCivjgYbjgoHjgoDjgoks44Go44GX44KNDQor44GG44Gu44GNLOOBl+OCh+OBmA0KK+OBhuOCieOBl+OBnyzjga/jgovjgbLjgZMNCivjgYbjgonjgZ8s44Gm44KL44Gy44GTDQor44GG44GX44GKLOOBjeOBrOOCiA0KK+OBhuOBn+OBjOOCjyzjgbLjgo3jgobjgY0NCivjgo/jgaAs44GL44Gk44KG44GNDQor44KP44GgLOOBleOBqOOCiw0KK+OCj+OBoCzjgZ/jgY/jgZgNCivjgo/jgaAs44Gf44GR44GXDQor44KP44GM44Gk44G+LOOBi+OBpOOBkw0KK+OCj+OBi+OBvuOBpCzjgZXjgY3jgZMNCivjgo/jgY3jgZ8s44Gh44GIDQor44KP44GTLOOBjOOBjw0KK+OCj+OCiuOBi+OBnyzjgYLjgY3jga7jgooNCivjgo/jgZfjgZos44Gy44KN44GTDQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgb7jgY0NCivjgo/jgZ/jgarjgbks44G+44GV44KLDQor44KP44Gf44Gq44G5LOOBv+OBuw0KK+OCj+OBn+OBquOBuSzjgarjgaTjgZMNCivjgYrjgoDjgoks44Gu44G244Gy44GTDQor44KP44Gf44Gq44G5LOOBqOOCguOBkw0KK+OCj+OBn+OBquOBuSzjgajjgoLjgobjgY0NCivjgo/jgZ/jgarjgbks44KI44GX44GKDQor44KP44Gf44Gq44G5LOOBpuOBpOOChA0KK+OChOOBjizjgajjgoLjgZMNCivjgoTjgY4s44GC44GN44Gy44GoDQor44KE44G+44GgLOOBsuOCjeOBn+OBpA0KK+OChOOBvuOBoCzjgb7jgZXjgbLjgo0NCivjgoTjgb7jgaAs44GX44KH44Gy44GhDQor44KE44G+44GgLOOChuOBhuOBmA0KK+OChOOBvuOBoCzjgbLjgo3jgYLjgY0NCivjgoTjgb7jgbXjgY8s44Gy44KN44GL44GaDQor44KE44G+44GQ44GhLOOBquOBiuOChuOBjQ0KK+OChOOBvuOBkOOBoSzjgZfjgocNCivjgoTjgb7jgZDjgaEs44GX44KF44KT44GYDQor44KE44G+44GQ44GhLOOCiOOBl+OChuOBjQ0KK+OChOOBvuOBmCzjgajjgZfjgYoNCivjgoTjgb7jgYvjgo8s44GM44GPDQor44KE44G+44KC44GoLOOBsuOCjeOBteOBvw0KK+OChOOBvuOCguOBqCzjgbLjgo3jgbLjgacNCivjgoTjgb7jgoLjgags44GT44Gb44GEDQor44KE44G+44KC44GoLOOBquOBiuOBkw0KK+OChOOBvuOCguOBqCzjgorjgoXjgbLjgaENCivjgoTjgb7jgoLjgags44Gm44Gk44KNDQor44KE44G+44KC44GoLOOBqOOCguOBvw0KK+OChOOBvuOCguOBqCzjgobjgYbjgZMNCivjgoTjgb7jgoLjgags44Gf44GL44GoDQor44KE44G+44GqLOOBruOCiuOBqOOBlw0KK+OChOOBvuOBleOBjSzjgbLjgafjgbXjgb8NCivjgoTjgb7jgZfjgZ8s44GX44GS44GKDQor44KE44G+44GX44GfLOOBn+OBkeOBsuOCjQ0KK+OChOOBvuOBluOBjSzjgbLjgafjgYoNCivjgoTjgarjgY4s44G+44KK44GTDQor44KE44GuLOOCiOOBmA0KK+OChOOBl+OCjSzjgojjgYbjgZMNCivjgoTjgZnjgYQs44Gy44KN44GL44GaDQor44KE44GZ44KA44KNLOOBqOOBiuOCiw0KK+OChOOBmeOBhuOBmCzjgZPjgYbjgZgNCivjgojjgZPjgYgs44Gf44GL44Gu44KKDQor44KI44GT44GELOOBkeOCk+OBhOOBoQ0KK+OCiOOBk+OBv+OBnizjgb/jgaTjgZ4NCivjgojjgZPjgoTjgb4s44KG44GN44GTDQor44KI44Gt44GW44KPLOOBsuOCjeOChOOBmQ0KK+OCiOOBl+OBoCzjgZPjgYbjgZgNCivjgojjgZfjgaAs44G+44GV44GNDQor44KI44GX44GgLOOChuOBhuOBmA0KK+OCiOOBl+OBoCzjgobjgZ/jgYsNCivjgojjgZfjgaAs44Gb44GE44GE44Gh44KN44GGDQor44KI44GX44GELOOBi+OBpOOBvw0KK+OCiOOBl+OCgOOCiSzjga7jgorjgajjgZcNCivjgojjgZfjgoTjgb4s44Go44GK44KLDQor44KI44GX44GW44KPLOOBsuOCjeOBlw0KK+OBteOBmOOBl+OBvizjgorjgocNCivjgobjgYLjgZUs44GR44KT44Gf44KN44GGDQor44KG44GNLOOBn+OBkeOBlw0KK+OChuOBjSzjgbXjgajjgZcNCivjgobjgYQs44Gf44GL44GXDQor44GC44Gg44GhLOOCiOOBl+OChuOBjQ0KK+OBsOOCkyzjgbLjgafjga7jgooNCivjgbXjgovjgYQs44G+44KEDQor44Gv44Gb44GM44KPLOOBjeOCiOOBl+OBkg0KK+OBsuOCieOBi+OCjyzjgb7jgZXjgbLjgZMNCivjgYTjgajjgYYs44GL44Ga44Gy44GTDQor44GE44KP44GV44GNLOOBkeOCk+OChA0KK+OBi+OBqOOBhizjga7jgbbjgbLjgo0NCivjgYvjgo/jga/jgoks44GL44Gk44KEDQor44G+44GI44Gv44KJLOOBi+OBmuOBguOBjQ0KK+OBvuOBpOOBn+OBqyzjgajjgoLjgb8NCivjgoLjgorjgYTjgaEs44GX44GS44GoDQor44Gr44GX44GG44GhLOOBpuOCi+OBi+OBmg0KK+OBteOBmOOBvuOBjSzjgYjjgYTjgZgNCivjgYrjga/jgoks44GV44Gh44GTDQor44GV44Gq44GgLOOBkeOCk+OBn+OCjeOBhg0KK+OBneOBrSzjgZHjgYQNCivjgajjga7jgoDjgoks44Gb44Gk44GTDQor44GX44G/44GaLOOBguOBjeOCiA0KK+OBv+OBl+OBvizjgaDjgYTjgZnjgZENCivjgbXjgZjjgZ8s44Gq44GK44Gf44GRDQor44G144GY44GfLOOBn+OBi+OBlw0KK+OBteOBmOOBnyzjgojjgZfjga7jgooNCivjgbXjgZjjgo/jgoks44Gv44GY44KBDQor44G144GY44KFLOOBvuOBquOBtg0KK+OBteOBi+OBoCzjgajjgZfjgbLjgZMNCivjgbXjgY/jgaAs44KK44KH44GYDQor44G144GP44Gy44GVLOOBkeOCk+OBmA0KK+OBteOBj+OBluOBqCzjgojjgZfjgb/jgaQNCivjgbXjgY/jgZbjgo8s44GK44GV44KADQor44G144KL44GV44KPLOOBl+OBkuOBig0KK+OBr+OBjOOCjyzjgYjjgYTjgZjjgo0NCivjga/jgY4s44Gu44G244KG44GNDQor44Gv44KJ44GgLOOBn+OBhOOBng0KK+OBr+OCieOBoCzjgZ/jgYvjgZcNCivjga/jgonjgaAs44Gy44Gn44GC44GNDQor44Gv44KJ44G+44GNLOOBpOOBqOOCgA0KK+OBr+OBm+OBjOOCjyzjgojjgZfjgobjgY0NCivjga/jgZvjgYzjgo8s44GR44GEDQor44Gv44GX44GKLOOBvuOCiuOBkw0KK+OBr+OBmeOBvyzjgZ/jgo3jgYYNCivjga/jgZnjgb8s44Gy44Gn44GNDQor44Gv44Gj44Go44KKLOOCiA0KK+OBhOOBl+OBi+OCjyzjgZPjgYbjgZjjgo0NCivjga/jgoTjgZcs44GX44KT44GE44GhDQor44Gy44KJ44GuLOOBn+OBj+OChA0KK+OBsuOCieOBrizjgobjgZ/jgYsNCivjgbLjgonjga4s44Gq44GK44Gf44GLDQor44Gy44KN44G5LOOBguOChA0KK+OBl+OBruOBoCzjgZ/jgYvjgZcNCivjgbLjgZXjgaAs44GN44Gv44KLDQor44G744GY44KHLOOBn+OBi+OBlw0KK+OBu+OCk+OBlCzjgbLjgo3jgZ/jgYsNCivjgbvjgZcs44G/44Gk44KLDQor44G744GX44GuLOOBruOBtuOBsuOCjQ0KK+OBu+OBneOBi+OCjyzjgb7jgY0NCivjgbvjgZ3jga4s44Gq44GK44GTDQor44GL44Go44GGLOOCiuOBiA0KK+OBhOOBjizjgbLjgafjgYLjgY0NCivjgYTjgZHjgaAs44KG44GLDQor44GE44GP44KNLOOBsuOCjeOBlw0KK+OBhOOBvuOBhCzjgZHjgpPjgYTjgaHjgo0NCivjgYTjgarjgaAs44KI44KK44GTDQor44GE44Gu44GQ44GhLOOBtuOCk+OBuuOBhA0KK+OBhOOBl+OBkOOCjSzjgZ/jgYvjgZMNCivjgYTjgZfjgYvjgo8s44Gf44GP44KEDQor44GE44GX44GL44KPLOOBi+OBmuOBguOBjQ0KK+OBhOOBl+OBluOBjSzjgajjgZfjgYLjgY0NCivjgYTjgZfjgZzjgY0s44Gy44Gn44GNDQor44GE44Go44GGLOOBkeOCk+OBmA0KK+OBhOOBqOOBhizjgZ/jgYvjgobjgY0NCivjgYTjgajjgYYs44Gf44GR44GXDQor44GE44Go44GGLOOBpuOCi+OBsuOBkw0KK+OBhOOBvuOBjOOCjyzjgb/jgaHjgZMNCivjgYTjgZbjgo8s44G+44GV44GNDQor44GE44Ga44G/LOOBsuOCjeOBi+OBmg0KK+OBhOOBmuOBv+OBoOOBpizjgobjgb8NCivjgYvjgbbjgonjgY4s44KI44GX44KNDQor44GL44G/44KE44G+LOOCiOOBhuOBkw0KK+OBi+OBquOChOOBvizjgajjgZfjgobjgY0NCivjgYvjgarjgZbjgo8s44Gu44KK44Gy44KNDQor44GL44KT44Gw44KJLOOBi+OBmuOCiOOBlw0KK+OBi+OCk+OBoCzjgZPjgbjjgYQNCivjgYvjgpPjgaAs44Gf44GL44KG44GNDQor44GL44Gt44GTLOOBpOOBkOOBi+OBmg0KK+OBi+OBl+OCgOOCiSzjgbLjgo3jgY0NCivjgYvjgZ/jgY7jgoos44GR44KT44GYDQor44GL44Go44GGLOOChuOBi+OCig0KK+OBi+OBqOOBhizjgojjgZfjgagNCivjgYvjgo/jgaAs44Gm44Gk44KEDQor44GL44KP44GZ44G/LOOBvuOBleOCiOOBlw0KK+OBjeOBqSzjgarjgYrjgY0NCivjgY3jgY/jgaEs44KI44GX44G/DQor44GN44KC44GoLOOBkeOBhA0KK+OBjeOCgOOCiSzjgZPjgYbjgZgNCivjgY3jgpPjgaks44GX44KH44GYDQor44GN44Gf44KA44KJLOOBruOCiuOBqOOBlw0KK+OBjeOBn+OBrizjgYvjgYrjgooNCivjgY3jgZ/jgo/jgZ/jgZss44Go44GK44KLDQor44GN44Gj44GfLOOBk+OBhuOBmA0KK+OBjeOChOOBvizjgZjjgo0NCivjgY3jgojjgZ8s44GL44Gk44KI44GXDQor44GT44Gw44KE44GXLOOChuOBhuOBkw0KK+OBk+OBsOOChOOBlyzjgb/jgZnjgb7jgosNCivjgZPjgYws44Gq44KK44Go44KCDQor44GT44Gv44KJLOOBsuOCjeOBlw0KK+OBk+OBmOOBqizjgZfjgpPjgZnjgZENCivjgZPjga4s44Gy44KN44Gu44KKDQor44GT44Ga44GLLOOBruOBtuOBsuOBlQ0KK+OBk+OBhOOBpyzjga/jgovjgb8NCivjgZPjgb7jgaQs44KI44GG44GTDQor44GT44G/44Gq44GoLOOBl+OCheOBq+OBoQ0KK+OBk+OCguOCiizjga7jgbbjgbLjgo0NCivjgZPjgpPjgaks44Gf44GP44KEDQor44GT44Gr44GXLOOBkeOCk+OBnw0KK+OBj+OBvOOChOOBvizjgb/jgaHjga/jgosNCivjgY/jgb7jgYzjgYQs44G/44G7DQor44GP44G+44GfLOOBleOBoOOBig0KK+OBj+OCiuOBr+OCiSzjgZnjgZnjgoANCivjgY/jgorjga/jgoks44KE44GZ44GTDQor44GP44KK44GfLOOBm+OBhOOBmA0KK+OBj+OBleOBrizjgbLjgo3jgobjgY0NCivjgY/jgZfjgaAs44GY44KF44KT44GYDQor44G+44GI44GgLOOCiOOBhuOBkw0KK+OBvuOBjSzjgYLjgaTjgoQNCivjgb7jgY3jgZ8s44Gf44GL44KG44GNDQor44G+44KL44KE44G+LOOBkeOCkw0KK+OBvuOBmeOBoCzjgZHjgYTjgZQNCivjgb7jgaTjgbDjgoks44G+44GV44GNDQor44G+44Gk44Gw44KJLOOBl+OCk+OBmA0KK+OBvuOBpOOBhCzjgorjgoXjgZnjgZENCivjgb7jgaTjgoLjgags44GX44KF44GG44GYDQor44G+44Gk44KA44KJLOOBleOBqOOBkw0KK+OBvuOBpOOBiizjgbLjgo3jgbLjgZMNCivjgb/jgYvjgb8s44Gu44KK44GTDQor44G/44GNLOOBn+OBoOOBguOBjQ0KK+OBv+OBruOBhuOCiSzjgorjgofjgZgNCivjgb/jgZfjgb4s44Gf44GL44GTDQor44G/44Gk44Gq44GMLOOBn+OBkeOBlw0KK+OBv+OBhuOCiSzjgZHjgYTjgZMNCivjgb/jgo8s44GV44Go44GXDQor44G/44KE44GKLOOBsuOCjeOBteOBvw0KK+OBv+OChOOBnyzjgYLjgY3jgbLjgZMNCivjgb/jgZrjgZ/jgass44KG44GNDQor44G/44Ga44Gf44GrLOOBkeOBhOOBmeOBkQ0KK+OCguOBoeOBmuOBjSzjgZfjgpPjgZgNCivjgoLjgaHjgZrjgY0s44Gk44Gt44GKDQor44KC44Gh44Ga44GNLOOBoOOBhOOBoQ0KK+OCguOBjizjgaHjgYvjgokNCivjgoLjgoos44Gy44Gn44Go44GXDQor44KC44KKLOOBkeOBhOOBkw0KK+OCguOCiizjgb7jgZXjgobjgY0NCivjgoLjgoos44GX44KT44Gf44KN44GGDQor44KC44KKLOOBi+OBmuOBsuOCjQ0KK+OCguOCiuOChOOBvizjgb/jgaTjgYoNCivjgoLjgo3jgYrjgYss44Gf44GL44GC44GNDQor44KC44Go44GwLOOBm+OBhOOBmA0KK+OCgOOBreOBqCzjgZHjgpPjgYTjgaENCivjgoDjgonjgYQs44KI44GX44KG44GNDQor44KA44KJ44GK44GLLOOBvuOBleOBruOCig0KK+OCgOOCjeOBhCzjgZ/jgYvjga7jgbYNCivjgarjgYzjgbXjgZgs44KE44GZ44Gv44KLDQor44Gq44GM44GELOOBi+OBquOBhg0KK+OBquOBhOOBqOOBhizjgYvjgZrjgbLjgZMNCivjgarjgYTjgajjgYYs44Gy44Gn44Gu44G2DQor44Gq44GL44GM44KPLOOBv+OBpOOCiw0KK+OBquOBi+OBr+OCiSzjgY/jgb/jgZMNCivjgarjgYvjgZjjgb4s44Gu44G244KG44GNDQor44Gq44GL44GY44G+LOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgZXjgajjgosNCivjgarjgYvjgoDjgoks44Gf44Gg44Gy44GTDQor44Gq44GL44KA44KJLOOBn+OBoOOChuOBjQ0KK+OBquOBi+OCgOOCiSzjgajjgoLjgbLjgZUNCivjgarjgYvjgoDjgoks44Go44GX44GNDQor44Gq44GL44KA44KJLOOBqOOBl+OBig0KK+OBquOBi+OCgOOCiSzjgobjgY0NCivjgoTjgb7jgaAs44Gg44GE44GV44GPDQor44Gq44GL44GKLOOBi+OBpOOBvuOBlQ0KK+OBquOBi+OBpOOBi+OBlSzjgojjgZfjgZMNCivjgarjgYvjgoTjgb4s44GR44KTDQor44Gq44KA44KJLOOBsuOBp+OBsuOCjQ0KK+OBquOBmeOBrizjgY3jgb/jgbLjgagNCivjgavjgYTjgZzjgY0s44GC44GN44KJDQor44Gr44GX44GL44KPLOOChuOBjeOBkw0KK+OBq+OBl+OBjeOBiuOCiizjgZ/jgo3jgYYNCivjgavjgZfjgZbjgo8s44G/44Gu44KLDQor44Gu44GC44GNLOOBv+OChOOBkw0KK+OBruOBoCzjgobjgZ/jgYsNCivjga7jgaAs44G+44GV44Gy44GTDQor44Gu44GQ44GhLOOBn+OBkeOBlw0KK+OBruOCgOOCiSzjgbLjgo3jgZcNCivjgYrjgaHjgYLjgYQs44GC44KEDQor44KC44KKLOOBguOBjeOCiQ0KK+OBiuOBjOOBleOCj+OCiSzjgYLjgY3jgokNCivjgYrjgYzjgZXjgo/jgoks44GC44Gk44GXDQor44GK44GM44KPLOOBsuOBleOBqA0KK+OBiuOBjOOCjyzjgZ/jgYvjgZcNCivjgYrjgYzjgo8s44GI44GE44GYDQor44GK44GQ44KJLOOBjeOCiOOBlw0KK+OBiuOBkOOCiSzjgb7jgooNCivjgYrjgbLjgZcs44KA44Gt44KG44GNDQor44GK44GL44KPLOOBquOBiuOBjQ0KK+OBiuOBi+OCjyzjgajjgZfjga/jgosNCivjgYrjgYvjgZws44GT44GeDQor44GK44GNLOOCiOOBl+OBguOBjQ0KK+OBiuOCgOOCiSzjgYvjgaTjga7jgooNCivjgYrjgZnjgb8s44KI44GG44GTDQor44GK44GfLOOBkeOCk+OBn+OCjeOBhg0KK+OBiuOBn+OBkSzjgobjgYbjgZMNCivjgYrjgZ/jgass44Gy44GV44GXDQor44GK44Gy44KD44G+LOOBsuOBp+OBjQ0KK+OBiuOBnOOBjSzjgZPjgZnjgZENCivjgYrjgYvjgoLjgags44G+44KK44GTDQor44GK44GL44KA44KJLOOBv+OBpOOBsuOBlQ0KK+OBiuOBi+OCgOOCiSzjgZ/jgaTjgZcNCivjgYrjgY/jgoDjgoks44KK44KH44GTDQor44GK44KT44GgLOOBn+OBi+OBsuOCjQ0KK+OBiuOBruOBp+OCiSzjgoTjgZnjgbLjgZUNCivjgYrjgoTjgbks44G144G/44Gu44KKDQor44GV44GMLOOBvuOBleOBjQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgoQNCivjgZXjgYvjgYQs44Go44GX44GC44GNDQor44GE44GOLOOBmOOCheOCk+OBkw0KK+OBleOBi+OCguOBqCzjgarjgYrjgY0NCivjgZXjgYvjgoLjgags44Gm44Gk44KEDQor44GV44GL44Gk44GOLOOBguOBpOOBlw0KK+OBleOBi+OBhuOBiCzjgb7jgZXjgbLjgo0NCivjgZXjgY/jgb4s44G144G/44Gy44GTDQor44GV44GP44KJLOOBpuOBpOOBmA0KK+OBleOBquOBoCzjgZHjgpMNCivjgZXjgZXjgY0s44GR44KT44GYDQor44GV44GV44GNLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgZjjgoXjgpMNCivjgZXjgajjgYYs44GT44GX44KTDQor44GV44Go44GGLOOBvuOCguOCiw0KK+OBleOBqOOBhizjgb7jgarjgb8NCivjgZXjgajjgYYs44Gu44KK44Gy44GTDQor44GV44Go44GGLOOBruOCiuOChuOBjQ0KK+OBleOBqOOBhizjgZ/jgYvjga7jgooNCivjgZXjgajjgYYs44Go44GX44GC44GNDQor44GV44Go44GGLOOChuOBhuOBkw0KK+OBleOBqOOBhizjgZXjgarjgYgNCivjgZvjgYTjgZEs44GC44GN44Gu44KKDQor44Gb44GNLOOBsuOBleOBrQ0KK+OBm+OBjSzjgojjgZfjgbLjgo0NCivjgZvjgY0s44GL44Ga44GKDQor44Gb44GN44GQ44GhLOOBkeOCk+OBmA0KK+OBm+OBnyzjgb7jgorjgZMNCivjgZfjgpPjgYzjgYQs44GI44GE44GNDQor44GX44Gw44GfLOOCiOOBl+OBsuOCjQ0KK+OBl+OBsOOBnyzjgZ/jgZHjgYoNCivjgZfjgbbjgY0s44Gq44GK44KEDQor44GX44GS44Go44G/LOOBi+OBpOOChuOBjQ0KK+OBl+OBjCzjgZ/jgYvjgbLjgo0NCivjgZfjgYTjgbAs44Go44GX44GC44GNDQor44GX44G+44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBl+OBvuOBi+OCjyzjgbLjgafjgbLjgZUNCivjgZfjgb/jgZos44GL44Gk44Gy44KNDQor44GX44G/44GaLOOBjeOCh+OBkw0KK+OBl+OBv+OBmizjgoTjgZnjgbLjgagNCivjgZfjgb/jgZos44GL44Ga44Gy44GnDQor44GX44KC44KA44KJLOOBleOBqOOBvw0KK+OBl+OCguOCgOOCiSzjgb7jgZXjga7jgooNCivjgZfjgYrjgZjjgoos44KI44GG44GE44GhDQor44GX44GK44GW44KPLOOBpuOBpOOChA0KK+OBl+OCieOBhCzjgabjgaQNCivjgZfjgonjgYvjgo8s44Gf44GR44GXDQor44Gd44G+44KTLOOBqOOBl+OBig0KK+OBneOBsuOCgyzjgYLjgY3jgZMNCivjgZ3jga7jgaAs44KI44GX44GTDQor44GZ44GgLOOChuOBjeOBruOCig0KK+OBmeOBjOOBrizjgZjjgo0NCivjgZnjgYzjgazjgb4s44GL44Ga44G/44GkDQor44GZ44GM44KPLOOBsuOCjeOBlw0KK+OBmeOBjuOBhuOCiSzjgb/jgYsNCivjgZnjgY7jgoTjgb4s44GE44Gh44KN44GGDQor44GZ44Ga44GNLOOBl+OBkuOCiw0KK+OBmeOBmuOBjSzjgZnjgZnjgoANCivjgZnjgZrjgY0s44Gf44GL44Gk44GqDQor44GZ44Ga44GNLOOBiuOBleOCgA0KK+OBl+OCh+OBmCzjgZ/jgYvjgZcNCivjgZ/jgZDjgaEs44Gf44GL44GXDQor44Gf44GE44KJLOOBguOBjeOCiQ0KK+OBn+OBmOOBvizjgbLjgo3jgZcNCivjgZ/jgYvjgaAs44GC44KE44GTDQor44GK44GL44KE44G+LOOChuOBhuOBkw0KK+OBn+OBi+OBjuOBlyzjgbXjgb/jgYgNCivjgZ/jgYvjga/jgZcs44GY44KTDQor44Gf44GL44Gv44GXLOOBvuOBleOBqA0KK+OBn+OBi+OBr+OBlyzjgb7jgobjgb8NCivjgZ/jgYvjga/jgZcs44Go44KC44Gv44KLDQor44Gf44GL44Gv44GXLOOBkeOCk+OBhOOBoQ0KK+OBn+OBi+OBjSzjgZXjgajjgZcNCivjgZ/jgYvjgYrjgYss44Gb44GE44GE44GhDQor44Gf44GL44GK44GLLOOBjeOCh+OBmeOBkQ0KK+OBhOOBvuOBhOOBmuOBvyzjgajjgoLjgbLjgo0NCivjgZ/jgYvjgZXjgo8s44GR44KTDQor44Gf44GL44GZLOOBk+OBhuOBmA0KK+OBn+OBkeOBhCzjgYLjgaTjgZcNCivjgZ/jgZHjgarjgYss44GX44KT44GE44Gh44KN44GGDQor44Gf44GR44GW44GNLOOBpuOBpOOChA0KK+OBn+OBvuOBhOOBlyzjgYvjgaTjgoQNCivjgZ/jgb7jgY0s44Gf44Gg44GoDQor44Gf44Gq44GLLOOCiuOBiA0KK+OBn+OBq+OBkOOBoSzjgZ/jgYvjga7jgooNCivjgZ/jgYbjgaEs44GC44GV44GTDQor44Gm44KJ44G/44GkLOOBv+OBi+OBkw0KK+OBqOOBoCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgajjgb/jgarjgYws44KE44GZ44GXDQor44Go44G/44GfLOOBvuOBleOCiOOBlw0KK+OBqOOCk+OBkCzjgajjgYrjgosNCivjgaTjga3jgYvjgo8s44GN44KH44GTDQor44Gk44Gk44GELOOCiOOBhOOBoQ0KK+OBhuOBoeOBoCzjgZ/jgY/jgoQNCivjgYbjgaHjga/jgZcs44Gy44KN44KG44GNDQor44GG44GI44GgLOOCiOOBl+OBig0KK+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgYbjgYjjgaAs44Gk44KI44GXDQor44GG44GI44Gv44KJLOOBm+OBpOOBkw0KK+OBteOBmOOBnyzjgZ/jgZHjgZcNCivjgYbjgoHjgaAs44KI44GX44GTDQor44GG44KB44Gv44KJLOOBsuOBp+OBguOBjQ0KK+OBhuOCieOBuSzjgZfjgZLjgosNCivjgo/jgZ/jgbks44GC44GN44KJDQor44KE44GM44GV44GNLOOBquOBiuOBjQ0KK+OChOOBjuOCguOBqCzjgbLjgo3jgarjgYoNCivjgoTjgZjjgb4s44Gg44GE44GZ44GRDQor44KE44G+44GgLOOBvuOChA0KK+OChOOBvuOBoCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgoTjgb7jgaAs44GC44GN44KIDQor44KE44G+44GQ44GhLOOBsuOBp+OBqOOBlw0KK+OChOOBvuOBkOOBoSzjgbLjgo3jgbXjgb8NCivjgoTjgb7jgoLjgags44GL44Gk44KI44GXDQor44KE44G+44KC44GoLOOBn+OBkeOBlw0KK+OChOOBvuOCguOBqCzjgZ/jgY/jgYoNCivjgoTjgb7jgoLjgags44G+44GV44Gy44GTDQor44KE44G+44GtLOOCiOOBsuOBoQ0KK+OChOOBvuOBleOBjSzjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44Gy44Gn44GC44GNDQor44KE44G+44GW44GNLOOBl+OBuw0KK+OChOOBvuOBleOBjSzjgabjgaTjgoQNCivjgoTjgarjgYzjgo8s44KE44KI44GEDQor44KE44Gq44GO44GgLOOBsuOBleOBkw0KK+OBiuOBrizjgoTjgZnjgZcNCivjgoTjgarjgY7jgZXjgo8s44GZ44G/44GLDQor44KE44GW44GNLOOBsuOCjeOBlw0KK+OChOOBluOCjyzjgYvjgaTjgb8NCivjgojjgZPjgoTjgb4s44G/44Gh44GTDQor44KI44GT44KE44G+LOOBn+OBi+OBlw0KK+OCiOOCgizjgb/jgYvjgZMNCivjgojjgZfjgaAs44GV44Go44GTDQor44KI44GX44GgLOOBqOOCguOBkw0KK+OCiOOBl+OBoCzjgoTjgZnjgbLjgo0NCivjgojjgZfjga/jgoks44KE44GZ44Gy44KNDQor44KI44GX44Gv44KJLOOBquOBiuOBjQ0KK+OCiOOBl+OCguOCiizjgZPjgYbjgZgNCivjgZzjgaPjgaQs44GL44Ga44Gy44KNDQor44GC44G5LOOBr+OCi+OBruOCig0KK+OBguOBoOOBoSzjgYvjgZrjgY0NCivjgYLjgYTjgYvjgo8s44G+44GV44KG44GNDQor44GC44GL44GILOOBqOOBl+OChA0KK+OBguOCk+OBqeOBhizjgZ/jgZHjgZcNCivjgYLjgZXjgb8s44KE44GZ44GKDQor44GE44G+44Gq44GLLOOBsuOBp+OBruOBtg0KK+OBueOBo+OBtyzjgoTjgZnjgZcNCivjgbnjgaPjgbcs44Gq44GK44GNDQor44Gh44GL44Gv44KJLOOBm+OBhOOBmA0KK+OBteOBmOOBhCzjgbLjgo3jgZMNCivjgbXjgZjjgZXjgY0s44Gf44GR44GXDQor44G144GP44GX44G+LOOBjeOCh+OBmA0KK+OBj+OCjeOBoCzjgbLjgafjgYoNCivjgoLjgoos44KG44GG44GYDQor44Gq44GL44KA44KJLOOBr+OCi+OBsuOBkw0KK+OCj+OBn+OBquOBuSzjgYLjgobjgb8NCivjgY/jgo3jgaAs44G+44GV44Gy44GnDQor44G/44KE44GG44GhLOOBn+OBi+OBlw0KK+OBhOOBqOOBhizjgbLjgafjgogNCivjgYTjgYTjgaAs44KI44GX44Gf44GgDQor44GL44KP44GuLOOBk+OBhuOBmA0KK+OBguOBhOOBhuOCiSzjgbLjgo3jgbXjgb8NCivjga7jgZbjgY0s44G/44Gh44GTDQor44Gz44Gf44GrLOOBvuOBjQ0KK+OBn+OBq+OBguOBhCzjgb/jgZUNCivjgYLjgYrjgY0s44Gv44KL44KIDQor44GK44GNLOOChuOBmeOBkQ0KK+OBguOBiuOBjSzjgbLjgo3jgYLjgY0NCivjgYLjgYrjgoTjgY4s44GK44GV44KADQor44GC44GL44Gr44GXLOOBv+OBpOOBqOOBlw0KK+OBguOBleOBiizjgZ/jgYvjgobjgY0NCivjgYLjgZXjgY/jgoks44GC44Ga44GVDQor44GC44GX44GW44KPLOOBqOOBl+OBvw0KK+OBguOBn+OBjyzjgb7jgZXjgbLjgacNCivjgYLjgaDjgaEs44GX44KF44Gy44KHDQor44GE44Go44GGLOOBn+OBi+OBiA0KK+OBl+OBvuOCguOBqCzjgYLjgZXjgZMNCivjgZXjgYTjgajjgYYs44GY44KF44KT44GTDQor44GX44Gu44Gv44KJLOOBjeOBj+OBkw0KK+OBiuOBi+OBrizjgb7jgobjgb8NCivjgYrjgYvjgoLjgags44G+44GEDQor44Gy44KJ44GL44KPLOOBqOOBl+OBig0KK+OBmeOBjOOBrOOBvizjgabjgovjgYLjgY0NCivjgYLjgarjgZbjgo8s44GC44KE44G/DQor44GC44KJ44GELOOBoOOBhOOBmeOBkQ0KK+OBguOCieOBhCzjgZjjgoXjgavjgaENCivjgYLjgonjgYvjgo8s44GN44GV44GPDQor44GC44KJ44GL44GtLOOBi+OBmuOChuOBjQ0KK+OBguOCieOBjSzjgZHjgpPjgZ8NCivjgYLjgpPjganjgYYs44Gq44GK44Gy44KNDQor44GE44GG44GhLOOBvuOBleOBsuOBkw0KK+OBhOOBkeOBoCzjgYvjgYgNCivjgYTjgZHjgoQs44GL44Ga44GNDQor44GE44GX44GL44KPLOOBsuOCjeOBlw0KK+OBhOOBl+OBi+OCjyzjgobjgYbjgZMNCivjgYTjgZfjgYvjgo8s44KG44KKDQor44GE44GX44GL44KPLOOBguOBqOOCgA0KK+OBhOOBl+OBjOOBjSzjgb7jgZXjgosNCivjgYTjgZfjgZDjgo0s44GL44Gk44G/DQor44GE44GX44Gv44KJLOOBsuOBp+OBkw0KK+OBhOOBneOCgOOCiSzjgbLjgo3jgZcNCivjgYTjgZ/jgYzjgY0s44KI44GU44KNDQor44GE44GE44GgLOOBqOOCguOBv+OBoQ0KK+OBhOOBoeOBi+OCjyzjgb/jga7jgosNCivjgYTjgaHjgYvjgo8s44Go44GX44GL44GaDQor44GE44GnLOOBjeOCk+OChA0KK+OBhOOBqOOBhizjgobjgb/jgZMNCivjgYTjgazjgYQs44GC44GN44GTDQor44GE44Gu44GG44GILOOBl+OBkuOBruOCig0KK+OBhOOBvuOBq+OBlyzjgbLjgo3jgbLjgZUNCivjgYTjgb7jga/jgoTjgZcs44G+44GT44GoDQor44GE44KP44GV44GNLOOChOOBmeOBsuOCjQ0KK+OBhOOCj+OBleOBjSzjgb7jgZXjgY0NCivjgYTjgo/jgoLjgags44Gy44KN44GXDQor44GG44GI44GuLOOBvuOBleOBvw0KK+OBhuOBiOOBrizjgbLjgo3jgZcNCivjgYbjgaHjgYTjgZEs44GT44GG44GE44GhDQor44GG44Gh44KE44G+LOOBsuOCjeOBlw0KK+OBhuOCgeOBoCzjgYvjgYrjgosNCivjgYbjgoHjgoDjgoks44G+44GV44GNDQor44GG44KB44KC44GoLOOBj+OBv+OBkw0KK+OBhuOCi+OBl+OBsOOCiSzjgY3jgojjgb8NCivjgYjjgZDjgb4s44GX44KNDQor44GI44KJLOOBneOCiA0KK+OBiuOBhuOBleOBiyzjgojjgZfjgajjgZcNCivjgYrjgYvjgo8s44GE44Gf44KLDQor44GK44GV44KPLOOBsuOCjeOBteOBvw0KK+OBiuOBl+OBvizjgb7jgY3jgagNCivjgYrjgZfjgb4s44Gu44G244Gy44KNDQor44GK44GZ44GMLOOCgOOBreOBn+OBiw0KK+OBiuOBn+OBqyzjgZfjgpPjgYTjgaENCivjgYrjgaQs44G+44GV44Gk44GQDQor44GK44Gk44GLLOOBvuOChuOBvw0KK+OBiuOBrSzjgZHjgYTjgYTjgaENCivjgYrjga4s44GI44GE44GYDQor44GK44Gv44GXLOOBi+OBmuOBruOCig0KK+OBiuOBr+OBlyzjgojjgZfjgYLjgY0NCivjgYrjgbDjgoTjgZcs44KI44GX44Gf44GLDQor44GK44Gy44KH44GXLOOBl+OCheOBmA0KK+OBiuOBi+OCguOBqCzjgZXjgogNCivjgYrjgYzjgZXjgo/jgoks44Gh44G744GTDQor44GK44GM44KPLOOCiOOBl+OBsuOBkw0KK+OBiuOBj+OBn+OBqyzjgYjjgooNCivjgYrjgY/jgoDjgoks44Gq44GK44KEDQor44GK44GQ44KJLOOBvuOBleOBn+OBiw0KK+OBhOOBhOOBi+OCjyzjgb7jgZXjgb/jgaQNCivjgYrjgZDjgoks44G+44GV44Gy44GTDQor44GK44GW44KPLOOCiOOBl+OBn+OBiw0KK+OBiuOBluOCjyzjgb7jgarjgbYNCivjgYrjga4s44Gf44Gk44Gy44GTDQor44GL44GN44KC44GoLOOBsuOBp+OBjQ0KK+OBi+OBjeOCguOBqCzjgb7jgZXjgbXjgb8NCivjgYvjgZLjgoTjgb4s44Gf44Gg44Gy44GVDQor44GE44GX44GL44KPLOOBvuOBleOChuOBjQ0KK+OBi+OBneOCiizjgYLjgY3jgokNCivjgYvjgaTjgb8s44GR44KT44GE44GhDQor44GL44Go44GGLOOBkeOCk+OBlA0KK+OBi+OBqOOBhizjgZfjgpPjgZgNCivjgYvjgajjgYYs44Gf44GL44KG44GNDQor44GL44Go44GGLOOBn+OBoOOChuOBjQ0KK+OBi+OBqOOBhizjgojjgZfjgZMNCivjgZHjgZrjgYss44Gy44Gn44Gu44KKDQor44GL44Gp44KP44GNLOOBlA0KK+OBi+OBreOBkyzjgobjgYbjgZMNCivjgYvjga4s44Gy44KN44GTDQor44GL44G/44KE44G+LOOBkeOCk+OBhOOBoeOCjQ0KK+OBi+OCj+OBl+OBvizjgZXjgajjgZcNCivjgYvjgo/jgZss44Gf44GL44Gu44KKDQor44GL44KP44GuLOOBsuOBp+OBsuOBkw0KK+OBi+OCj+OCguOBqCzjgoTjgZnjga7jgooNCivjgYvjgo/jgoLjgags44KM44GE44GTDQor44GL44KP44GbLOOBsuOCjeOBlw0KK+OBi+OCk+OBoCzjgajjgoLjgb8NCivjgY3jgY/jgaEs44Gy44KN44GXDQor44GN44GP44GhLOOChOOBmeOBsuOBqA0KK+OBjeOBj+OBoSzjgarjgYrjgY0NCivjgY3jgZ/jgYLjgonjgZcs44Gq44GK44GTDQor44GN44Gf44GK44GLLOOBruOCiuOBkw0KK+OBjeOBn+OBmOOBvizjgZfjgZLjga7jgooNCivjgY3jgZ/jgoDjgoks44Gg44GE44GZ44GRDQor44GN44Gf44KA44KJLOOBkeOBhOOBmA0KK+OBjeOBpuOCiSzjgYLjgY3jgokNCivjgY3jga7jgZfjgZ8s44G/44Gk44GX44KNDQor44GN44KA44KJLOOBguOBjeOBsuOCjQ0KK+OBjeOCiuOBhizjga7jgorjgZMNCivjgY/jgZXjgYvjgbks44Gy44KN44GL44GaDQor44GP44G844GfLOOBsuOCjeOChuOBjQ0KK+OBj+OBvuOBjOOBhCzjgZXjgajjgosNCivjgY/jgb7jga4s44GL44Ga44GNDQor44GP44KK44Gv44KJLOOBvuOBleOBn+OBiw0KK+OBj+OCi+OBl+OBvizjgZfjgpMNCivjgarjgYvjgYzjgo8s44Gq44GK44GNDQor44GT44GE44GnLOOBsuOBp+OBqOOBlw0KK+OBk+OBrizjgbLjgZXjgobjgY0NCivjgZPjgoLjgags44GC44GN44GTDQor44GT44GMLOOBruOBtuOBig0KK+OBk+OBmOOBvizjgb7jgYTjgZMNCivjgZPjgavjgZcs44G/44KG44GNDQor44GT44Gw44KE44GXLOOBguOBjeOBsuOCjQ0KK+OBk+OBvuOBpCzjgZ/jgZHjgb8NCivjgZPjgb/jgoQs44GC44Gk44GXDQor44GT44KT44GpLOOBleOBqOOBlw0KK+OBk+OCk+OBqSzjgZjjgoXjgpPjgZMNCivjgZTjgags44Gf44GL44Gy44KNDQor44GV44GE44Go44GGLOOBn+OBkeOBlw0KK+OBleOBhOOBqOOBhizjgb7jgYjjgZMNCivjgZXjgYTjgajjgYYs44GT44GZ44GRDQor44GV44GL44KC44GoLOOBkeOCk+OBmOOCjQ0KK+OBleOBj+OBvizjgZXjgooNCivjgZfjgb/jgZos44G+44GV44GoDQor44GV44Gg44Gh44GLLOOBguOBjeOCiOOBlw0KK+OBleOBqCzjgaHjgYsNCivjgZXjgajjgYYs44Gy44Gn44GNDQor44GV44Go44GGLOOBvuOBleOBlw0KK+OBleOBqOOBhizjgobjgYbjgZMNCivjgZXjgajjgYYs44GP44Gr44Gv44KLDQor44GV44KP44GgLOOBn+OBhOOBmA0KK+OBhOOBneOCjyzjgYvjgojjgZMNCivjgZfjgoLjgZjjgocs44Gb44GE44GGDQor44GX44KFLOOBkeOBhOOBhOOBoQ0KK+OBl+OBiuOBi+OCjyzjgZfjgpPjgoQNCivjgZfjgYrjgZbjgo8s44GV44Go44GXDQor44GX44GL44GG44GhLOOBpOOBqOOCgA0KK+OBl+OBmuOCiizjgaDjgYTjgZnjgZENCivjgZfjga4s44Gf44Gk44KEDQor44GX44Gu44GW44GNLOOBk+OBhuOBmA0KK+OBl+OBruOBoCzjgbLjgafjgY0NCivjgZfjga7jgaAs44Gf44GR44GKDQor44GX44Gw44GW44GNLOOBqOOBl+OBi+OBmg0KK+OBl+OBsOOBnyzjgarjgYrjgY0NCivjgZfjgb7jgoDjgoks44GR44GE44GY44KFDQor44GX44G/44GaLOOBleOCiOOBkw0KK+OBl+OBv+OBmizjgZjjgoXjgpMNCivjgZfjgb/jgZos44Gy44Go44G/DQor44GX44G/44GaLOOBv+OBiw0KK+OBn+OBjeOBn+OBqyzjgYvjgaTjgobjgY0NCivjgZfjgonjga4s44GY44KF44KT44GYDQor44GZ44GI44Gy44KNLOOBvuOBleOBsuOBkw0KK+OBmeOBjOOBhCzjgZ/jgYvjgYLjgY0NCivjgZnjgYzjgojjgZcs44G+44GV44KEDQor44GZ44GM44KP44KJLOOBguOChOOBrg0KK+OBmeOBjuOBhuOCiSzjgb7jgZXjgbLjgZMNCivjgZnjgY7jgZfjgb4s44G/44Gk44KLDQor44GZ44GO44KC44GoLOOBn+OBkeOBlw0KK+OBmeOBmuOBi+OCjyzjgabjgaTjgZgNCivjgZnjgaAs44GY44KF44KT44GY44KNDQor44GZ44G/44GL44KPLOOBvuOBmeOBvw0KK+OBmeOBv+OBrizjgobjgY3jgZMNCivjgZvjgY3jgZDjgaEs44GC44GN44Gy44GoDQor44Gd44GI44GY44G+LOOBleOBiuOCig0KK+OBn+OBiuOBiyzjga7jgbzjgosNCivjgZ/jgYvjgY0s44G/44G+44GTDQor44Gf44GL44GX44G+LOOChuOBhuOBmA0KK+OBn+OBi+OBmyzjgZXjgajjgZcNCivjgZ/jgYvjga/jgZcs44GX44KT44GE44Gh44KN44GGDQor44Gf44GL44Gv44GXLOOChuOBsuOBoQ0KK+OBn+OBi+OBr+OBlyzjgZ/jgYvjgobjgY0NCivjgZ/jgY3jgZ/jgass44GR44KTDQor44Gf44GR44GG44GhLOOBv+OBjeOBig0KK+OBn+OBkeOBhuOBoSzjgZHjgpPjgZgNCivjgZ/jgZHjgaAs44GX44GS44G144G/DQor44Gf44GR44GgLOOBruOCiuOBguOBjQ0KK+OBn+OBkeOBoCzjgZfjgoXjgpPjgZnjgZENCivjgZ/jgZHjgoDjgoks44Gy44GV44GXDQor44Gf44GULOOCiOOBl+OBiA0KK+OBn+OBjeOBluOCjyzjgYLjgY3jgojjgZcNCivjgZ/jgarjgYss44GL44Gk44GC44GNDQor44Gf44Gq44GLLOOBk+OBhuOBmA0KK+OBn+OBquOBiyzjgZfjgZLjgb8NCivjgYTjgo/jga4s44KE44GZ44Gq44KKDQor44Gf44Gq44GLLOOBn+OBoOOBlw0KK+OBn+OBq+OBiCzjgY3jgofjgZMNCivjgZ/jgavjgZDjgaEs44GX44KT44GE44GhDQor44Gf44Gr44GQ44GhLOOBjeOCiOOBn+OBiw0KK+OBn+OBq+OBvuOBpCzjgYvjgaTjgoQNCivjgZ/jgbDjgZ8s44Gf44Gk44KEDQor44Gf44G+44GNLOOBiOOBhOOBhOOBoQ0KK+OBhOOBm+OCguOBqCzjgarjgaoNCivjgZ/jgb/jgoQs44Gy44KN44G244G/DQor44Gh44KD44KC44GoLOOBkeOCk+OCjw0KK+OBoeOCkyzjgZ/jgaDjgobjgY0NCivjgaTjgYvjgoLjgags44GR44GE44GE44GhDQor44Gk44Gh44Gv44GXLOOBhOOBj+OBsuOBkw0KK+OBpuOCieOBleOCjyzjgarjgYrjgbLjgZUNCivjgajjgZjjgocs44G+44GV44GTDQor44G144GP44GX44G+LOOBoeOBi+OBkw0KK+OBqOOBsCzjgojjgYbjgZMNCivjgajjgb/jgojjgZcs44KK44KH44GZ44GRDQor44Go44KA44KNLOOBkeOCk+OBmA0KK+OBqOOCiOOBl+OBvizjgYvjgZrjgZfjgZINCivjgajjgorjgoTjgb4s44Gy44KN44GXDQor44Gq44GE44Go44GGLOOBleOBoOOCiOOBlw0KK+OBhOOBpyzjgYvjgZrjgYgNCivjga/jgZ8s44GY44KH44GYDQor44Gq44GL44GM44GNLOOBsuOCjeOBlw0KK+OBquOBi+OBjOOCjyzjgb/jgo/jgZMNCivjgarjgYvjgZbjgo8s44Gf44Gk44KEDQor44Gq44GL44GnLOOBmOOChw0KK+OBquOBi+OBr+OCiSzjgYLjgY0NCivjgZ/jgZHjgYbjgaEs44G144GV44GXDQor44Gq44GL44KA44KJLOOCiOOBsuOBoeOCjQ0KK+OBquOBi+OCgOOCiSzjgojjgYbjgZMNCivjgarjgZks44KA44Gt44Gy44KNDQor44Gr44GE44KA44KJLOOBn+OBpOOChA0KK+OBq+OBl+OBiuOBiyzjgb/jgaHjgZMNCivjgavjgZfjgYvjgo8s44Gq44GK44GXDQor44Gr44GX44GW44KPLOOBjeOCh+OBkw0KK+OBq+OBl+OBqCzjgbLjgajjgY0NCivjgavjgZfjga4s44Gq44Gk44Gy44GTDQor44Gr44GX44Gv44KJLOOBmOOCheOBq+OBoQ0KK+OBq+OBl+OCgOOCiSzjgarjgYrjgobjgY0NCivjga3jgoLjgags44Gy44KN44KG44GNDQor44Gu44GQ44GhLOOBv+OBoeOBi+OBmg0KK+OBruOBkOOBoSzjgbXjgZXjgYoNCivjga7jgZjjgoos44G/44GNDQor44Gu44GY44KKLOOBn+OBi+OBkw0KK+OBruOCgOOCiSzjgojjgZfjgZMNCivjga/jgaPjgZ8s44GX44KH44GTDQor44Gv44GX44GwLOOBguOBpOOBlw0KK+OBr+OBl+OCguOBqCzjgYvjgaTjgbLjgZUNCivjga/jgZfjgoLjgags44GV44Go44GXDQor44GE44Gu44GG44GILOOBn+OBkeOBlw0KK+OBr+OBl+OCguOBqCzjgbLjgo3jgZcNCivjga/jgZvjgYzjgo8s44Go44GX44Gy44KNDQor44Gv44GfLOOBsuOBp+OBguOBjQ0KK+OBr+OBnyzjgYLjgY3jgokNCivjga/jgZ/jga4s44GX44GS44KLDQor44Gv44KE44GXLOOChOOBmeOBkw0KK+OBr+OChOOBlyzjgZPjgYbjgZgNCivjga/jgonjgaAs44Gq44GK44GNDQor44Gv44KJ44GgLOOBj+OBq+OCguOCig0KK+OBsOOBsCzjgZXjgaHjgogNCivjgbDjgbAs44GI44G/DQor44Gy44GQ44GhLOOBvuOBleOChA0KK+OBsuOBkOOBoSzjgojjgZfjgarjgYoNCivjgbLjgZXjgY0s44Gf44GL44Gy44KNDQor44Gy44GY44KKLOOBi+OBmuOBsuOBkw0KK+OBsuOCieOChOOBvizjgYLjgY3jgZMNCivjgbXjgY/jgaAs44Gh44GL44GTDQor44G144GY44GELOOChuOBiw0KK+OBmeOBjOOBhCzjgYTjgaHjgo3jgYYNCivjgbXjgZjjgZ8s44GN44KI44GXDQor44G144GY44GfLOOBn+OBi+OBkw0KK+OBteOBmOOBnyzjgZHjgpPjgYTjgaENCivjgbXjgZjjgZ/jgass44GL44Ga44GNDQor44G144GY44Gq44G/LOOCiOOBl+OBi+OBpA0KK+OBteOBmOOBrizjgb7jgYTjgZMNCivjga7jga7jgoDjgoks44Gy44KN44KG44GNDQor44G144GbLOOBj+OBv+OBkw0KK+OBmeOBjuOCguOBqCzjgajjgoLjgZMNCivjgbvjgZ3jgYvjgo8s44GR44KT44GE44GhDQor44G744KK44GG44GhLOOBsuOCjeOBteOBvw0KK+OBu+OCiuOBi+OCjyzjgYLjgZnjgYsNCivjgb7jgY3jga4s44Gu44G244Gy44GTDQor44G+44GN44GuLOOBjeOCh+OBkw0KK+OBvuOBl+OBkyzjgZTjgZgNCivjgb7jgZnjgaAs44GI44KKDQor44G+44GZ44G244GhLOOBn+OBi+OChuOBjQ0KK+OBvuOBmeOBtuOBoSzjgb7jgobjgb8NCivjgb7jgaTjgYQs44Gy44KN44G144G/DQor44G+44Gk44GW44KPLOOBleOBqOOBvw0KK+OBqOOBv+OBquOBjCzjgYvjgZrjgoQNCivjgb7jgaTjgarjgYws44KG44GN44GTDQor44G+44Gk44Gq44GMLOOBruOBtuOBkw0KK+OBmeOBmuOBjSzjgZXjgajjgZcNCivjgb7jgaTjgoDjgoks44GX44GS44KG44GNDQor44G+44Gk44KC44GoLOOBn+OBpOOChuOBjQ0KK+OBvuOBpOOCguOBqCzjgYvjgaTjgZgNCivjgb7jgaTjgoTjgb4s44Gf44Gm44KLDQor44G+44Gk44KE44G+LOOCiOOBsuOBoeOCjQ0KK+OBvuOBpOOChOOBvizjgZ/jgaTjgYoNCivjgb7jgaTjgojjgZcs44Gq44GK44G/DQor44G+44GuLOOBsuOCjeOBguOBjQ0KK+OBvuOCi+OBiuOBiyzjgYTjgY/jgZMNCivjgb/jgYvjgb8s44Gu44KK44Gy44GTDQor44G/44GNLOOBqOOBl+OBsuOBkw0KK+OBv+OBnuOBkOOBoSzjgYvjgZrjgoQNCivjgb/jgZ8s44Gf44GL44GXDQor44G/44GtLOOBguOBjeOBsuOCjQ0KK+OBv+OBreOBiizjgb7jgY3jgZMNCivjgZXjgajjgYYs44G+44GV44GoDQor44GE44GP44GfLOOBn+OBi+OBlw0KK+OBv+OChOOBluOBjSzjgojjgZfjgZMNCivjgZ/jgYvjgY7jgo8s44KG44GNDQor44G/44KI44GXLOOChOOBmeOBmA0KK+OCgOOBi+OBhCzjgZHjgYTjgYTjgaENCivjgoDjgonjgYvjgb8s44Gy44Gn44G144G/DQor44GE44GX44GgLOOBqOOCguOBsuOBlQ0KK+OCgOOCieOBi+OBvyzjga7jgorjgZMNCivjgoDjgonjgYvjgb8s44GT44GG44GYDQor44KA44KJ44KE44G+LOOBpuOBpOOChA0KK+OCgOOCieOChOOBvizjgYLjgY3jgZMNCivjgoDjgo3jgYQs44Gb44GE44GYDQor44KC44Gf44GELOOBqOOBl+OChOOBmQ0KK+OCguOBqOOBjSzjgojjgYbjgZMNCivjgoLjgajjgoDjgoks44Gy44KN44GNDQor44KC44KKLOOBvuOBleOBvw0KK+OBi+OBmyzjgb/jga7jgosNCivjgoLjgorjgZfjgZ8s44Gh44GC44GNDQor44KC44KK44GfLOOBleOBqOOCiw0KK+OCguOCjeOBqOOBvyzjgYvjgaTjga7jgooNCivjgoLjgo3jga/jgZcs44GC44KEDQor44GL44KP44KC44GoLOOBsuOBp+OBjQ0KK+OChOOBkOOBoSzjgZfjgZLjgosNCivjgoTjgZjjgb4s44KI44GG44GTDQor44KE44GZ44GL44KPLOOBv+OBpOOBn+OBiw0KK+OChOOBmeOBoCzjgb7jgZXjgYLjgY0NCivjgoTjgaTjgZrjgYss44Gk44GL44GVDQor44KE44Gq44GO44GV44KPLOOBleOBqOOBlw0KK+OChOOBvuOBkOOBoSzjgYvjgZrjgZ/jgYsNCivjgoTjgb7jgZXjgY0s44GT44GG44GYDQor44KE44G+44GW44GNLOOBvuOBk+OBqA0KK+OChOOBvuOBluOBjSzjgb7jgZXjgZ/jgYsNCivjgoTjgb7jgZbjgY0s44GL44Ga44G+44GVDQor44KE44G+44GgLOOBi+OBmuOChA0KK+OChOOBvuOBoCzjgZPjgYbjgZgNCivjgoTjgb7jgaAs44GL44Gk44Gy44KNDQor44KE44G+44Gq44GLLOOBguOBjeOCiOOBlw0KK+OBj+OCiuOBr+OCiSzjgYvjgZrjgbLjgo0NCivjgoTjgb7jgoLjgags44Gq44GK44GNDQor44KE44G+44KC44GoLOOBsuOBp+OBruOBtg0KK+OChOOBvuOCguOBqCzjgobjgY3jgZMNCivjgb7jgaTjgYos44Gy44KN44Gu44KKDQor44KI44GOLOOBpuOCi+OBsuOBkw0KK+OCiOOBk+OChOOBvizjgarjgYrjgZMNCivjgojjgZPjgoTjgb4s44Gy44KN44GXDQor44KI44GX44GL44KPLOOBvuOBleOBsuOBqA0KK+OCiOOBl+OBi+OCjyzjgb7jgorjgZMNCivjgojjgZfjgaAs44KG44GNDQor44KP44GP44GELOOBjeOCk+OChA0KK+OCj+OBn+OBquOBuSzjgZ/jgYvjgoQNCivjgo/jgZ/jgarjgbks44Gy44KN44KG44GNDQor44KP44Gf44Gq44G5LOOCiOOBl+OBkw0KK+OCj+OBn+OBquOBuSzjgZvjgYTjgZjjgo0NCivjga/jgoTjgZcs44GR44KT44Gf44KN44GGDQor44KE44G+44GgLOOBquOBiuOBjQ0KK+OCj+OBi+OBsOOChOOBlyzjgZ/jgYvjga7jgooNCivjgYTjgo/jgoDjgoks44GX44KF44Gy44GhDQor44KP44Gf44Gq44G5LOOBvuOBleOBjQ0KK+OBj+OCj+OBl+OBvizjgb7jgZXjgZMNCivjgYrjgbDjgZ8s44GX44KT44Gf44KN44GGDQor44GC44Gq44GW44KPLOOChOOBmeOBlw0KK+OChOOBjizjgb7jgZnjgb8NCivjgYLjgYvjgYos44Gh44Go44GbDQor44GX44G/44GaLOOBsuOBp+OBjQ0KK+OBleOBi+OCguOBqCzjgojjgYbjgZMNCivjgYLjgYrjgY0s44Gq44GK44Gy44GnDQor44GC44Ga44G+LOOCiOOBl+OBkw0KK+OBhOOBhOOBoCzjgZPjgYbjgZgNCivjgYTjgZHjgYbjgaEs44Gm44Gk44KEDQor44GE44GX44GL44KPLOOBkeOCk+OBn+OCjeOBhg0KK+OBhOOBneOBjOOBhCzjgZfjgbsNCivjgYTjgajjgYYs44KI44GX44Gy44GoDQor44GE44GwLOOBvuOBquOBtg0KK+OBhOOCj+OCguOBqCzjgZ/jgYvjgZcNCivjgYbjgYjjgZXjgYss44Gu44G244KEDQor44GG44GI44GuLOOBleOBqOOBlw0KK+OBhuOBiOOBsuOCiSzjga7jgorjgb7jgZUNCivjgYbjgaHjgoTjgb4s44Gu44G844KLDQor44GG44KB44Gq44GELOOBmeOBkOOCiw0KK+OBiOOCgOOCiSzjgZXjgajjgb8NCivjgYrjgY3jgZ8s44Gy44GL44KLDQor44GK44GP44G8LOOBk+OBmeOBkQ0KK+OBiuOBn+OBqyzjgajjgoLjgYvjgZoNCivjgYrjgaQs44Gq44Gk44GTDQor44GK44Gk44GLLOOBsuOBp+OBruOBtg0KK+OBiuOBi+OBl+OCjSzjgZfjgZLjgYLjgY0NCivjgYrjgaAs44GT44GG44GE44GhDQor44GK44GuLOOBiOOBqg0KK+OBi+OBqOOBhizjgoHjgbDjgYgNCivjgYvjga3jgbLjgZUs44Gm44Gk44GKDQor44GL44G/44KELOOBvuOBk+OBqA0KK+OBi+OCj+OBhCzjgZ/jgaDjgbLjgo0NCivjgYvjgo/jgYrjgYss44GC44Ga44GVDQor44GN44Gf44GuLOOBl+OCk+OBmA0KK+OBjeOBtuOBlyzjgZ/jgZHjgbLjgo0NCivjgY3jgoDjgoks44G+44KC44KLDQor44GN44KA44KJLOOBkeOCk+OBlA0KK+OBj+OBleOBiyzjgZHjgpPjgZgNCivjgY/jgbAs44GZ44GZ44KADQor44GP44G844GfLOOBn+OBi+OBsuOCjQ0KK+OBj+OCjeOBhOOCjyzjgZjjgoXjgavjgaENCivjgY/jgo/jgbDjgoks44Gy44KN44GXDQor44GT44GE44GRLOOBguOChA0KK+OBk+OBhOOBn+OBsOOBlyzjgbLjgo3jgZMNCivjgZPjgaAs44KI44GX44G/DQor44GT44GgLOOBl+OCjQ0KK+OBk+OBl+OCgOOCiSzjgYLjgaTjgZcNCivjgZPjgoTjgarjgY4s44Gy44KN44G/DQor44Gv44Go44KKLOOCiOOBl+OChuOBjQ0KK+OBleOBi+OBhuOBiCzjgarjgYrjgZMNCivjgYLjgbks44GK44GV44KADQor44GV44Go44GGLOOBn+OBj+OCiOOBlw0KK+OBleOBqOOBhizjgbLjgafjgY0NCivjgZXjgajjgYYs44GY44KF44Gr44GhDQor44GX44G+44GgLOOBpOOBuA0KK+OBhOOBvuOBhCzjgb7jgZXjgZ/jgYsNCivjgZnjgYzjgazjgb4s44G+44GV44GTDQor44Gb44GNLOOBleOBqOOBvw0KK+OBm+OBrizjgZ/jgYvjgZcNCivjgYLjgbks44GX44KNDQor44Gf44GL44GZ44GMLOOBl+OCk+OBmA0KK+OBn+OBi+OBmeOBjizjgYjjgYTjgZgNCivjgZ/jgYvjga/jgZcs44GZ44G/44GKDQor44Gf44GL44Gv44GXLOOBpOOBi+OBlQ0KK+OBn+OBi+OBr+OBlyzjgbLjgafjgYoNCivjgZ/jgYvjga/jgZcs44G+44GV44Gf44GRDQor44Gf44GL44Gv44GXLOOBguOBpOOBlw0KK+OBn+OBjeOCguOBqCzjgbLjgZXjgZMNCivjgZ/jgY/jgbws44KG44GG44GTDQor44Gf44GR44GG44GhLOOBleOCjw0KK+OBn+OBkeOBquOBiyzjgZPjgYbjgYTjgaENCivjgZ/jgarjgYss44KE44GZ44G/44GkDQor44Gf44Gq44GLLOOBvuOChuOBvw0KK+OBn+OBsOOBnyzjgojjgZfjgYoNCivjgZ/jgb/jgoQs44KK44GIDQor44Gf44KA44KJLOOBi+OBpOOBguOBjQ0KK+OBoeOCheOBvizjgaHjgogNCivjgbvjgpPjgZQs44GC44GN44Gy44KNDQor44Gq44GL44GKLOOBn+OBi+OChOOBmQ0KK+OBquOBi+OBjOOCjyzjgb7jgZXjga/jgosNCivjgarjgYvjgZ7jga4s44G+44KG44G/DQor44Gq44GL44GuLOOBruOBtuOBkw0KK+OBq+OBo+OBnyzjgajjgoLjgb8NCivjgavjgo8s44GR44KT44Gf44KN44GGDQor44Gu44GYLOOBguOBjeOBsuOBqA0KK+OBr+OBluOBrizjgZPjgYbjgZgNCivjga/jgZfjgoLjgags44Gy44GV44G/DQor44Gv44GX44KC44GoLOOChuOBhuOBnw0KK+OBr+OChOOBlyzjgojjgZfjgobjgY0NCivjga/jgoTjgZcs44Go44KC44GTDQor44Gv44KJ44GQ44GhLOOChuOBjeOBsuOBkw0KK+OBr+OCi+OBkOOBoSzjgoLjgajjgYTjgaENCivjgbLjgonjgacs44Gh44Ga44KLDQor44Gy44KJ44GuLOOBi+OBpOOChuOBjQ0KK+OBsuOCieOChOOBvizjgZ/jgZHjgZcNCivjgbXjgYvjgZbjgo8s44KM44GE44GTDQor44G144GP44G+44GZLOOBsuOCjeOBn+OBiw0KK+OBteOBj+OCguOCiizjgobjgYbjgZMNCivjgbXjgZjjgYvjgo8s44Gu44G244GC44GNDQor44G744GX44GuLOOBk+OBhuOBhOOBoQ0KK+OBu+OBneOBrizjgbLjgafjga7jgooNCivjgb7jgaTjgYrjgYss44G/44Gk44Gy44KNDQor44G+44Gk44KA44KJLOOBr+OBqg0KK+OBv+OBmuOBi+OBvyzjgorjgofjgbLjgaENCivjgb/jgaTjgYQs44Gy44KN44GC44GNDQor44G/44Gu44GL44G/LOOBn+OBi+OBlw0KK+OBv+OChOOCguOBqCzjgajjgYrjgosNCivjgoDjgonjgYvjgb8s44KG44GG44GTDQor44KA44KJ44GL44G/LOOBoeOBiuOCig0KK+OChOOBnyzjgajjgZMNCivjgoTjgarjgY7jgZ8s44Gf44GL44GXDQor44KE44G+44GQ44GhLOOBqOOBl+OBig0KK+OChOOBvuOBl+OBnyzjgYTjgZXjgoANCivjgoTjgb7jgoLjgags44G+44GV44Gf44GLDQor44KI44GX44Gf44GRLOOChuOBjQ0KK+OCiOOBl+OCgOOCiSzjgbLjgo3jgb8NCivjgbLjgZDjgaEs44GL44KIDQor44Gv44GX44KC44GoLOOBvuOBleOCiw0KK+OCj+OBn+OBquOBuSzjgZfjgZLjgosNCivjgYLjgY3jgbAs44Gu44KK44GTDQor44GC44GN44KC44GoLOOBguOBjeOBsuOBqA0KK+OBguOBvuOChCzjgojjgZfjgarjgooNCivjgYLjgpPjganjgYYs44Gq44G/44GTDQor44GC44KT44GW44KPLOOBpuOBpOOCjQ0KK+OBguOBleOBr+OBnyzjgZ/jgYTjgZnjgZENCivjgbDjgbAs44Go44GX44KG44GNDQor44G544Gj44GX44KHLOOBn+OBpOOBlw0KK+OBoeOBi+OCguOBqCzjgY3jgofjgbLjgocNCivjgaHjgocs44GR44GE44GTDQor44G144GY44Gy44KJLOOBquOBiuOBkw0KK+OBteOBmOOBhCzjgb/jga7jgosNCivjgbXjgZjjgZ/jgass44GT44GG44GYDQor44G144GL44GgLOOBv+OBoeOBig0KK+OBteOCi+OBoOOBpizjgobjgbLjgaHjgo0NCivjgbXjgovjgoTjgb4s44Gy44Gn44Gu44KKDQor44GU44GgLOOBiOOCig0KK+OBk+OBhOOBkSzjgZ/jgZHjgZcNCivjga/jgYvjgb7jgaAs44GC44Gk44GXDQor44Gv44Gb44GM44KPLOOChuOBjQ0KK+OBr+OBl+OCguOBqCzjgZ/jgZHjgbLjgZMNCivjga/jgaPjgZ8s44G/44Gk44KIDQor44Gv44Gj44Go44KKLOOBvuOBleOCiw0KK+OBr+OChOOBi+OCjyzjgabjgaTjgo0NCivjga/jgoTjgYvjgo8s44Gu44G244Gy44KNDQor44Gy44Gs44G+LOOBi+OBmuOBsuOBqA0KK+OBsuOCjeOBjSzjgb/jgaHjgbLjgagNCivjgbvjgorjga7jgYbjgaEs44Gm44KL44Gy44GoDQor44G744Gd44GuLOOBleOBiuOCig0KK+OBteOBmOOBiuOBiyzjgaDjgYTjgZnjgZENCivjgbXjgovjgZ8s44G/44KP44GTDQor44G144GV44GuLOOBkeOBhOOBkw0KK+OBteOBl+OBvyzjgojjgZfjgYvjgaQNCivjgYTjgZ/jgaks44G+44GV44GC44GNDQor44GE44GgLOOBquOBiuOBjQ0KK+OBhOOBr+OCiSzjgbLjgo3jgobjgY0NCivjgYTjgYTjgaAs44GN44KI44Gu44G2DQor44GE44Gq44KE44G+LOOCiOOBl+OChuOBjQ0KK+OBhOOBrizjgZPjgZ4NCivjgYTjga7jgYbjgYgs44Gf44GL44GKDQor44GE44GX44GgLOOBk+OBhuOBhOOBoQ0KK+OBhOOBl+OCguOBqCzjgZHjgpPjgYTjgaENCivjgYTjgZfjgo8s44Gf44GL44Gy44KNDQor44GE44GX44KP44Gf44KKLOOBsuOCjeOBjQ0KK+OBhOOBn+OBj+OCiSzjgarjgovjgaTjgZANCivjgYTjgajjgYYs44Gf44GP44KEDQor44GE44Go44GGLOOBqOOCguOBsuOBpw0KK+OBhOOCj+OBhCzjgobjgYbjgZgNCivjgYTjgZbjgo8s44GC44Gk44GTDQor44GY44G2LOOBsuOBp+OBjQ0KK+OBi+OBsOOChOOBvizjgarjgovjgY0NCivjgYvjgYQs44GR44KTDQor44GL44GN44Gs44G+LOOBiuOBleOCgA0KK+OBi+OBjeOBluOBjSzjgbLjgajjgZcNCivjgYvjgY/jgaAs44G+44GV44Gy44KNDQor44GL44Gq44GM44KPLOOBkeOBhA0KK+OBi+OCk+OBuSzjgZ/jgYvjgbLjgo0NCivjgYvjgpPjgaAs44Gy44KN44GL44GaDQor44GL44GV44GgLOOBmOOCheOBq+OBoQ0KK+OBi+OCj+OBhCzjgoHjgZDjgb8NCivjgZXjgZXjgY0s44KI44GX44Gk44GQDQor44GL44KP44GbLOOChOOBmeOCiOOBlw0KK+OBjeOCguOBqCzjgb/jgaTjgosNCivjgY3jgZ/jga/jgoks44Gy44KN44GL44GkDQor44GN44Gf44KA44KJLOOBquOBu+OBkw0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgbLjgo0NCivjgZPjgbbjgZEs44GX44KF44Gy44GhDQor44GT44GE44Ga44G/LOOBquOBquOBkw0KK+OBk+OBv+OChOOBviwNCivjgZPjgpPjga7jgYvjgZrjgbLjgo0s44GZ44GQ44KLDQor44GT44GX44GL44KPLOOBvuOBleOBjQ0KK+OBk+OBrizjgobjgYbjgZMNCivjgY/jgbws44GY44KF44KTDQor44GP44G844GL44KPLOOBvuOBleOBjQ0KK+OBj+OBqeOBhizjgZfjgoXjgZnjgZENCivjgY/jgorjga/jgoks44GX44KTDQor44GP44KN44GOLOOBn+OBkeOBig0KK+OBvuOBoeOBoCzjgoTjgZnjgbLjgagNCivjgb7jgZjjgb4s44G/44Gh44Gf44GLDQor44GE44GX44GaLOOBqOOCguOBkw0KK+OBvuOBi+OBuSzjgYTjgY/jgYgNCivjgb7jgovjgoTjgb4s44GV44G7DQor44G+44GZ44GgLOOBv+OBjeOBrQ0KK+OBvuOBpOOBjOOBleOBjSzjga7jgbbjgYoNCivjgb7jgaTjgYQs44KI44GX44GKDQor44G+44Gk44GELOOBsuOCjeOBiA0KK+OBvuOBpOOCguOBqCzjgobjgYbjgZMNCivjgb7jgo/jgZ/jgoos44GL44Gq44GTDQor44G/44Gh44KC44GoLOOBvuOCiuOBkw0KK+OBv+OBjSzjgoTjgZnjgbLjgagNCivjgb/jgaTjgb4s44Gf44GL44KG44GNDQor44G/44GG44KJLOOBk+OBhuOBhOOBoQ0KK+OBv+OCjyzjgb7jgZXjga7jgbYNCivjgb/jgoTjgoLjgags44Gq44Gk44GNDQor44G/44KE44KC44GoLOOBqOOCguOBiw0KK+OBv+OChOOCguOBqCzjgYvjgaTjgYTjgaENCivjgb/jgoTjgZ8s44GV44GI44GTDQor44KA44KJ44GL44G/LOOBr+OCi+OBvw0KK+OBn+OBr+OCiSzjgoTjgZnjgZMNCivjgb/jgZrjgZ/jgass44Gu44KK44KG44GNDQor44KC44KKLOOBsuOCjeOCiA0KK+OCguOCiuOBkOOBoSzjgbLjgafjgYLjgY0NCivjgoLjgorjgYvjgo8s44GL44KIDQor44KC44KK44KC44GoLOOBguOBjeOCiQ0KK+OCguOCiuOBnyzjgZ/jgZHjgZcNCivjgoDjgonjgYvjgb8s44GV44GK44KKDQor44GC44Gn44GM44KPLOOBkeOCk+OBmA0KK+OBquOBjOOBleOBiyzjgYvjgpPjgZgNCivjgarjgYzjgZ8s44Go44GX44Gy44KNDQor44Gq44GM44GfLOOBmeOBv+OBkw0KK+OBhOOBluOCjyzjgZ/jgYvjga7jgooNCivjgarjgYvjgb/jga0s44GR44GE44GUDQor44Gq44GL44KA44KJLOOBvuOBk+OBqA0KK+OBquOBi+OCgOOCiSzjgYvjgaTjgbLjgZUNCivjgYTjgoLjgags44KE44GZ44Gu44G2DQor44Gq44GL44KA44KJLOOBn+OBkeOBruOBtg0KK+OBquOBi+OBiizjgb7jgZXjgZcNCivjgarjgYvjgoTjgb4s44Go44GK44KLDQor44Gq44GL44GW44KPLOOBruOCiuOBkw0KK+OBquOBv+OBjSzjgajjgoLjgYsNCivjgavjgYTjgb8s44KG44GNDQor44Gr44GE44Gc44GNLOOBvuOBleOBsuOBkw0KK+OBq+OBl+OBpyzjgbLjgo3jgZcNCivjgavjgo8s44GL44Ga44G/DQor44Gu44G5LOOCjOOBhOOBkw0KK+OBiuOBnyzjgZ/jgaTjgbLjgZMNCivjgYrjgYzjgo8s44GC44GEDQor44GK44GQ44GZLOOBsuOBi+OCiw0KK+OBiuOCguOBqCzjgZjjgoXjgooNCivjgYrjgZfjgb4s44GL44Gk44Gu44G2DQor44GK44GfLOOBi+OBiuOCig0KK+OBiuOBsuOCgyzjgb7jgoLjgosNCivjgYTjgZfjgYvjgo8s44Gy44KN44Gu44KKDQor44GK44GL44GgLOOBn+OBpOOChA0KK+OBiuOBjyzjgZPjgYbjgYTjgaHjgo0NCivjgYrjgY/jgaAs44Gf44GR44GXDQor44GK44GX44GP44G8LOOChuOBhuOBmA0KK+OBiuOBnOOBjSzjgYbjgZfjgpMNCivjgonjgYQs44GN44KI44GXDQor44GE44Go44GGLOOBr+OCi+OCiOOBlw0KK+OBleOBhOOBjSzjgYLjgY3jgbLjgo0NCivjgZXjgYTjgajjgYYs44GL44GK44KKDQor44KI44GX44GgLOOBsuOBp+OBguOBjQ0KK+OBleOBkyzjgbLjgafjgY0NCivjgZXjgZXjgZjjgb4s44G/44GVDQor44GV44GV44GNLOOBl+OBkuOBguOBjQ0KK+OBleOBqOOBhizjgb7jgZXjgojjgZcNCivjgYTjgo/jgoLjgags44KG44GZ44GRDQor44GV44Go44GGLOOBl+OCh+OBmA0KK+OBleOCj+OBoCzjgZ/jgYvjga7jgooNCivjgZvjgY3jgYvjgo8s44GR44KT44GE44GhDQor44Gb44GN44GtLOOBsuOBv+OBkw0KK+OBl+OBsOOBnyzjgogNCivjgZfjgZLjga/jgoks44Gf44GR44GXDQor44GX44G+44GK44GLLOOBteOBv+OChuOBjQ0KK+OBl+OBv+OBmizjgb7jgZXjgY0NCivjgZfjgoLjgZjjgocs44GR44KT44GE44GhDQor44GX44KC44KA44KJLOOBi+OBpOOBsuOBkw0KK+OBl+OCgOOCiSzjgobjgYbjgZgNCivjgZ3jgoHjgoQs44Go44KC44KEDQor44GZ44GI44KI44GXLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgZ/jgaTjgoQNCivjgZnjgZrjgY0s44G/44Gh44KE44GZDQor44Gf44GL44GgLOOBl+OBkuOBv+OBpA0KK+OBn+OBi+OBr+OBlyzjgZjjgoXjgpPjgoQNCivjgZ/jgYvjgZss44KG44GN44GTDQor44Gf44GR44GgLOOBpOOBkOOBsuOBpw0KK+OBn+OBkeOBhCzjgYvjgZrjgbLjgZMNCivjgZ/jgZHjgoLjgags44Gh44GI44GTDQor44Gf44G+44GELOOBsuOBp+OChOOBmQ0KK+OBn+OCgOOCiSzjgYTjgZrjgb8NCivjgZ/jgoDjgoks44G/44Gk44GKDQor44GE44GX44GL44KPLOOBquOBiuOBjQ0KK+OBn+OBquOBiyzjgZfjgpPjgoQNCivjgZ/jgarjgYss44GC44GN44Gy44GTDQor44Gf44Gr44GQ44GhLOOBi+OBmuOBsuOCjQ0KK+OBn+OBq+OBkOOBoSzjgb7jgZXjgYLjgY0NCivjgZ/jgavjgZDjgaEs44Gf44GL44GXDQor44Gf44Gr44GQ44GhLOOBn+OBi+OBsuOBlQ0KK+OBhOOBl+OBoCzjgYLjgY3jgbLjgZMNCivjgZ/jgavjgZfjgZ8s44GR44KT44GE44GhDQor44Gm44KJ44Gr44GXLOOBsuOBp+OChuOBjQ0KK+OBqOOBsuOCg+OBvizjgarjgYrjgY0NCivjgajjgb/jgZ8s44GE44Gh44KN44GGDQor44Go44Gt44GM44KPLOOBmOOChw0KK+OBqOOCiOOBoCzjgb7jgarjgbYNCivjgajjgojjgZ8s44GC44GN44KJDQor44Gk44Gh44KELOOBsuOBleOCiOOBlw0KK+OBhOOBl+OBi+OCjyzjga/jgZjjgoENCivjgaTjgoDjgoks44Go44GX44Gy44GTDQor44Gk44Gu44GL44KPLOOBn+OBi+OChuOBjQ0KK+OBhuOBoeOBoCzjgZXjgajjgosNCivjgYbjgZXjgb8s44Gy44Go44GXDQor44KP44GY44G+LOOBk+OBhuOBhOOBoeOCjQ0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgbLjgo0NCivjgo/jgZ/jgarjgbks44Gf44GR44Gu44KKDQor44KP44Gf44Gq44G5LOOBsuOCjeOBn+OBiw0KK+OChOOBjizjgZHjgpPjgZgNCivjgoTjgY4s44GR44KTDQor44KE44GP44KPLOOBguOBpOOBlw0KK+OChOOBvuOBoCzjgbXjgb/jga4NCivjgoTjgb7jgaAs44Gk44KI44GXDQor44KE44G+44GQ44GhLOOBjeOCh+OBkw0KK+OChOOBvuOBruOBj+OBoSzjgb/jgo8NCivjgoTjgb7jgZfjgZ8s44Gf44GPDQor44KE44G+44GX44GfLOOBruOCiuOBkw0KK+OChOOBvuOBluOBjSzjgZfjgoXjgZgNCivjgoTjgb7jgZbjgY0s44KI44GX44GTDQor44KE44Gq44GM44KPLOOBquOBiuOBjQ0KK+OChOOBmeOBoCzjgajjgZfjgYLjgY0NCivjgoTjgZnjgYgs44KI44GX44G/DQor44GE44Gd44GM44GELOOBsuOBqOOBlw0KK+OChOOBn+OBjOOBhCzjgZ/jgZHjgZcNCivjgojjgZfjgaAs44KK44GTDQor44Gf44GL44Gv44GXLOOBvuOBjQ0KK+OBiuOBi+OBoCzjgojjgbLjgaENCivjgYLjgYrjgY0s44KE44KI44GEDQor44GC44GN44GwLOOBkeOBhOOBhOOBoQ0KK+OBguOBuSzjgY3jgofjgZMNCivjgYLjgb7jga4s44Gy44KN44G144G/DQor44GC44KK44KC44GoLOOBsuOCjeOBjQ0KK+OBguOCk+OBqeOBhizjgZ/jgYvjgobjgY0NCivjgYTjgYvjgo8s44Go44GX44KG44GNDQor44GE44GX44GELOOBvuOBleOBkw0KK+OBhOOBl+OBi+OCjyzjgZPjgYbjgYTjgaENCivjgYTjgZfjgZrjgYss44Gq44GK44KG44GNDQor44GE44GX44Gw44GXLOOBsuOBp+OChuOBjQ0KK+OBhOOBl+OCguOBqCzjgobjgZ/jgYsNCivjgYTjgacs44Gf44Gk44KNDQor44GE44Gh44Gu44GbLOOBqOOCiOOBguOBjQ0KK+OBhOOBquOBoCzjgajjgoLjgobjgY0NCivjgYTjgazjgYQs44Gf44Gg44Gu44G2DQor44GE44Gu44GG44GILOOBiOOCig0KK+OBhOOChOOBvizjgorjgofjgZMNCivjgYTjgo/jgZXjgY0s44G+44GV44GNDQor44GE44KP44G+LOOBl+OCheOBsuOBoQ0KK+OBhOOCj+OBvuOBpCzjgb7jgZXjgosNCivjgYbjgYjjgaAs44GC44GN44GTDQor44GG44GI44GuLOOBguOBjeOBkw0KK+OBhuOBoeOBoCzjgb7jgZXjgYoNCivjgYbjgaks44GX44KF44GYDQor44GG44KB44Gv44KJLOOChuOBjQ0KK+OBiOOBkOOBoSzjgZ/jgYTjgbjjgYQNCivjgYjjga7jgY0s44Gu44KK44Gy44KNDQor44GI44KC44GoLOOBquOBiuOBkw0KK+OBiOOCguOCiizjgobjgb8NCivjgarjgYvjgYzjgo8s44GX44KF44KT44GZ44GRDQor44GK44GfLOOCiuOCh+OBmeOBkQ0KK+OBiuOBjOOBnyzjgZXjgajjgZMNCivjgYrjgYzjgo8s44GV44Go44GXDQor44GK44GM44KPLOOBvuOBquOBtg0KK+OBiuOBj+OBhCzjgoTjgZnjgogNCivjgYrjgY/jgoDjgoks44G+44G/44GTDQor44GK44Gf44GrLOOBk+OBhuOBmA0KK+OBiuOBpOOBqOOCgizjgb/jgZrjgb7jgZUNCivjgYrjgavjgZbjgo8s44GL44Ga44GTDQor44GK44GuLOOBiuOBleOBquOBig0KK+OBiuOBsOOBqizjgbLjgo3jgZMNCivjgYrjgb7jgYzjgoos44Gy44KN44GNDQor44GL44GN44GW44KPLOOBn+OBi+OBig0KK+OBi+OBkeOBsizjgZHjgpPjgZgNCivjgYvjgZXjga/jgoks44Gf44GL44GXDQor44GL44GYLOOBqOOBv+OBleOBtg0KK+OBi+OBmOOBnyzjgojjgZfjgZMNCivjgYvjgZjjgZ8s44G/44Gk44KC44GoDQor44GL44GY44KE44G+LOOBm+OBhOOChA0KK+OBi+OBqOOBhizjgarjgYrjgYLjgY0NCivjgYvjgarjgaAs44Gy44Gn44KG44GNDQor44GL44Gt44GTLOOChOOBmeOBlw0KK+OBi+OBreOBkyzjga7jgbbjgZ/jgYsNCivjgYTjgZ/jga4s44KM44GE44GTDQor44Gq44GM44Gk44G+LOOBn+OBj+OBmA0KK+OBi+OBrizjgoLjgajjgZMNCivjgYvjgb7jgYgs44Gm44KL44GC44GNDQor44GL44KP44GELOOChuOBjeOBkw0KK+OBi+OCj+OBvuOBnyzjgZfjgZLjgY0NCivjgYvjgpPjga4s44Gu44KK44GC44GNDQor44GN44GG44GhLOOBm+OBhOOBhOOBoeOCjeOBhuOBhg0KK+OBjeOBlyzjgb7jgZXjgoQNCivjgY3jgZ/jgYzjgo8s44Gm44Gk44Gy44KNDQor44GN44Gu44GX44GfLOOBiOOCiuOBkw0KK+OBjeOCh+OBjOOBjyzjgb7jganjgYsNCivjgY/jgbws44GK44GV44KADQor44GP44G844GfLOOBn+OBi+OBig0KK+OBj+OBvOOBnyzjgZ/jgYvjgYoNCivjgY/jgorjga/jgoks44G/44Gu44KLDQor44GP44KK44KE44G+LOOCiOOBl+OBruOBtg0KK+OBhOOBl+OBjOOBjSzjgZHjgYQNCivjgY/jgo3jgYQs44Gu44G244GL44GkDQor44GT44GG44GV44GNLOOCiuOCh+OBnw0KK+OBk+OBoCzjgZHjgpPjgZnjgZENCivjgZPjgbDjgoTjgZcs44GX44KF44G444GEDQor44GT44Gw44KE44GXLOOBm+OBhOOBmA0KK+OBk+OBsOOChOOBlyzjgarjgYrjgY0NCivjgZPjgbDjgoTjgZcs44Gm44Gk44GKDQor44GE44Gu44GG44GILOOBsuOCjeOBjQ0KK+OBleOBhOOBuyzjgb7jgYTjgZMNCivjgZXjgYvjgYzjgo8s44GE44Ga44G/DQor44GL44KP44KA44KJLOOCiOOBhuOBkw0KK+OBleOBleOBiuOBiyzjgajjgoLjga7jgbYNCivjgZXjgZXjgY0s44Gq44KK44Go44GXDQor44GV44Go44GGLOOBvuOBk+OBqA0KK+OBleOBqOOBhizjgajjgoLjga7jgooNCivjgZXjgarjgaAs44Gf44GP44KEDQor44GV44KL44KE44G+LOOBl+OCk+OBuuOBhA0KK+OBl+OBiuOBpCzjgorjgYgNCivjgZfjgYrjga7jgoQs44GR44GE44GTDQor44GX44GK44KE44G+LOOBqOOBl+OBteOBlQ0KK+OBl+OBjuOBr+OCiSzjgYTjgaTjgo0NCivjgZfjgZfjgaks44GT44GG44GE44GhDQor44GX44Gu44GW44GNLOOBguOBpOOBlw0KK+OBl+OBsOOBnyzjga7jgbbjgYLjgY0NCivjgZfjgb/jgZos44Gm44Gk44KEDQor44GX44KH44GuLOOChuOBmeOBkQ0KK+OBl+OCieOBjSzjgZPjgYbjgZgNCivjgZnjgY7jgYrjgYss44Gu44G244GC44GNDQor44GZ44GO44Gv44KJLOOBquOCi+OBsuOCjQ0KK+OBmeOBmuOBjSzjgojjgYbjgbjjgYQNCivjgZnjgZrjgY0s44KG44Gf44GLDQor44GZ44G/44KE44G+LOOCiOOBhuOBkw0KK+OBm+OBo+OBnyzjga7jgbzjgosNCivjgYTjgZfjgo/jgZ8s44Gu44KK44GL44GaDQor44Gb44KT44GU44GPLOOBvuOBquOBtg0KK+OBn+OBi+OBiuOBiyzjgYrjgZXjgoANCivjgZ/jgYvjgZbjgo8s44GR44KT44GE44GhDQor44Gf44GL44Gv44GXLOOBiOOBhOOBmeOBkQ0KK+OBn+OBi+OCgOOCiSzjgZfjga7jgbYNCivjgZ/jgY3jgags44Gu44G844KLDQor44Gf44Gq44GLLOOBsuOCjeOChuOBjQ0KK+OBn+OBquOBiyzjgY/jgavjgYoNCivjgYTjgajjgYYs44GL44Ga44Gy44GoDQor44Gf44Gq44G5LOOBv+OBruOCiw0KK+OBn+OBq+OBkOOBoSwNCivjgaHjgoPjgo/jgpPjgoTjgZ/jgZHjgZcs44GX44KT44GE44GhDQor44Gm44KJ44GV44GLLOOBsuOCjeOChuOBjQ0KK+OBqOOBk+OCjSzjgb/jgaTjgYvjgZoNCivjgarjgYvjgYQs44GN44KI44GX44GSDQor44Gq44GL44GKLOOBsuOBleOBpuOCiw0KK+OBquOBjOOBiuOBiyzjgZfjgZLjgobjgY0NCivjgarjgYvjgYzjgo8s44Gb44GE44GYDQor44Gq44GL44GY44G+LOOBvuOBleOBjQ0KK+OBquOBjOOBmyzjgaDjgYTjgZjjgoUNCivjgarjgYvjga4s44G/44Gu44KLDQor44Gq44GL44GuLOOChuOBvw0KK+OBquOBjOOBrizjgZ/jgYvjgZfjgZINCivjgYTjgZHjgaAs44GC44KE44GTDQor44Gq44GL44KA44KJLOOBn+OBi+OChuOBjQ0KK+OBquOBi+OChOOBvizjgbLjgafjgY0NCivjgavjgYos44GL44GaDQor44Gr44GX44GKLOOBguOBjeOBkw0KK+OBq+OBl+OBi+OBhCzjgZjjgoXjgpPjgZgNCivjgavjgZfjgZbjgYss44GR44KT44GYDQor44Gr44GX44GgLOOBvuOBquOBtg0KK+OBq+OBl+OBoCzjgojjgZfjga/jgosNCivjgYTjgYTjgZjjgb4s44Gy44KN44GNDQor44Gr44GX44Gv44KJLOOBmOOCheOBq+OBoQ0KK+OBq+OBl+OCgOOCiSzjgZ/jgYvjgZcNCivjga3jgo3jgoEs44GX44KT44GYDQor44Gu44GY44G+LOOBv+OBuw0KK+OBruOBquOBiyzjgoLjgajjgYLjgY0NCivjga/jgZfjgbAs44GZ44Gy44GhDQor44Gv44Gh44KELOOBn+OBpOOChA0KK+OBr+OBo+OBqOOCiizjgZvjgYTjgZ8NCivjgYTjgYTjgaAs44GY44KH44GYDQor44Gv44G2LOOChuOBhuOBkw0KK+OBr+OChOOBi+OCjyzjgYLjgY3jgZMNCivjga/jgoTjgZcs44G+44KK44GTDQor44Gv44KE44GX44G+LOOBi+OBpOOBqOOBlw0KK+OBr+OCiSzjgZjjgoXjgavjgaENCivjgbLjgYzjgZfjgaAs44Gu44KK44GTDQor44Gb44GN44GQ44GhLOOBqOOBl+OBv+OBpA0KK+OBsuOCieOBhCzjgojjgZfjgZMNCivjgbLjgo3jgZnjgYgs44Gg44GE44GZ44GRDQor44Gy44KN44Gv44GfLOOBn+OBi+OBlw0KK+OBteOBj+OBl+OBvizjgb7jgZXjgY0NCivjgbXjgZjjgYos44GL44Ga44KG44GNDQor44G144GY44GfLOOBi+OBmuOChA0KK+OBteOBmOOBvuOBjSzjgbLjgo3jgZcNCivjgbXjgZjjgo/jgoks44GV44Gt44Gy44KNDQor44G144KL44GE44GhLOOBoOOBhOOBmeOBkQ0KK+OBu+OBleOBiyzjga7jgorjgYvjgZoNCivjgbvjgZfjga4s44Gf44GL44Gy44KNDQor44G744KKLOOBkw0KK+OBu+OCiuOCguOBqCzjgbLjgo3jgobjgY0NCivjgbvjgpPjgb4s44G+44GT44GoDQor44G+44GI44GL44KPLOOBpuOBpOOCjQ0KK+OBvuOBiOOBoCzjgarjgYrjgZMNCivjgb7jgYjjgaAs44Gy44Gn44GXDQor44G+44GI44GgLOOBn+OBj+OBvw0KK+OBvuOBleOBhCzjgb7jgZXjgosNCivjgb7jgaTjgYQs44GN44KH44Gy44GhDQor44G+44Gk44GW44KPLOOBi+OBiuOCig0KK+OBvuOBpOOBoCzjgbLjgo3jgobjgY0NCivjgb7jgaTjgajjgoIs44Gf44GP44KEDQor44G+44Gk44Gq44GMLOOBv+OBpOOBig0KK+OBvuOBpOOCguOBqCzjgabjgpPjgbrjgYQNCivjgb/jgZrjgZDjgaEs44KG44GG44GE44Gh44KN44GGDQor44G/44KE44KC44GoLOOChuOBjeOBsuOBkw0KK+OBv+OChOOCguOBqCzjgajjgYrjgosNCivjgoDjgonjgYvjgb8s44KG44GZ44GRDQor44KA44KJ44GL44G/LOOBn+OBkeOBlw0KK+OCgOOCieOBquOBiyzjgZPjgYbjgZgNCivjgoLjgaHjgZrjgY0s44KG44GN44GTDQor44KC44Go44GP44KJLOOChuOBhuOBmA0KK+OCguOCiizjgobjgY3jga7jgbYNCivjgoLjgorjgoQs44Gf44GR44Gv44KLDQor44KE44GZ44GELOOBn+OBi+OBsuOBqA0KK+OChOOBmeOBoCzjgb/jgY3jgYoNCivjgoTjgZnjgaAs44Gf44Gk44KEDQor44KE44GfLOOBj+OBvw0KK+OChOOBn+OBjSzjgbLjgafjga7jgbYNCivjgoTjgaEs44Gh44GL44KJDQor44KE44GuLOOBn+OBi+OChuOBjQ0KK+OChOOBvuOBhOOBmuOBvyzjgb7jgZXjgarjgYoNCivjgoTjgb7jgYrjgYss44GR44KT44GYDQor44KE44G+44GQ44GhLOOCiOOBmeOBkQ0KK+OChOOBvuOBkOOBoSzjgajjgoLjgZ/jgYsNCivjgoTjgb7jgZbjgY0s44G+44KG44G/DQor44KE44G+44GW44GNLOOChOOBmeOBmA0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgbLjgacNCivjgoTjgb7jgoLjgags44G+44GV44Gy44KNDQor44KI44GT44Gc44GNLOOBleOBqOOBlw0KK+OCiOOBl+OBoCzjgZ/jgY/jgoQNCivjgojjgZfjga4s44Go44KC44GTDQor44KI44GX44G/LOOBj+OBq+OBi+OBmg0KK+OCiOOBoCzjgbvjgb7jgowNCivjgojjgaAs44Gf44GE44GS44KTDQor44KJLOOBv+OBjeOBkw0KK+OCjeOBmCzjgY3jgojjgbLjgagNCivjgo/jgaAs44GL44Ga44Gy44KNDQor44KP44Gf44Gq44G5LOOBruOBtuOBig0KK+OCj+OBn+OBquOBuSzjgbXjgb/jgbLjgZMNCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44KP44Gf44G5LOOCiOOBl+OBguOBjQ0KK+OBi+OBrizjgb7jgZXjgY0NCivjgavjgaPjgZ8s44KE44GZ44Gy44KNDQor44GC44GK44GNLOOCiOOBl+OBruOCig0KK+OBguOBiuOBjSzjgYLjgY3jgYoNCivjgYLjgYrjgoTjgb4s44Gq44GqDQor44GC44GK44KE44G+LOOBvuOBhOOBkw0KK+OBguOBjeOBsCzjgZHjgpMNCivjgYLjgZXjgaAs44Gf44GE44GhDQor44GC44Gg44GhLOOBquOBiuOBqA0KK+OBguOBoOOBoSzjgoTjgZnjgYoNCivjgYLjgajjgbks44Gf44GL44GXDQor44GC44G5LOOBn+OBi+OBsuOCjQ0KK+OBguOBuSzjgbLjgo3jgYLjgY0NCivjgYLjgbks44Go44KC44GNDQor44GC44G+44GuLOOBteOBv+OBguOBjQ0KK+OBguOBvuOBrizjgb7jgb8NCivjgYLjgonjgYvjgo8s44KG44GN44GKDQor44GC44KK44GfLOOBsuOBp+OBjQ0KK+OBguOCiuOBqOOCgizjgYvjgZrjgYoNCivjgYLjgpPjgZbjgYQs44Gf44GL44GXDQor44GE44Go44GGLOOBn+OBi+OBqOOBlw0KK+OBguOCk+OBqeOBhizjgYrjgZXjgoANCivjgYTjgYzjgonjgZcs44GX44KF44GGDQor44GE44GR44GgLOOBr+OBquOBkw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgYLjgY0NCivjgYTjgZfjgbDjgZcs44Gs44GEDQor44GE44GX44KA44KJLOOBkeOBhOOBhOOBoQ0KK+OBhOOBl+OCguOBqCzjgb7jgorjgZMNCivjgYTjgaHjgYQs44Go44KC44G/DQor44GE44Gh44GL44KPLOOChuOBhuOBkw0KK+OBhOOBoeOBi+OCjyzjga/jgovjgagNCivjgYTjgaHjga7jgZss44GL44Gk44Gy44GTDQor44GE44Go44GGLOOBruOBtuOBig0KK+OBhOOBqOOBhizjgb7jgobjgb8NCivjgYTjgajjgYYs44G+44GNDQor44GE44Gq44GK44GLLOOBmOOCheOBq+OBoeOCjQ0KK+OBhOOBquOBsCzjgorjgofjgYbjgZnjgZENCivjgYTjgazjgZrjgYss44KI44GG44G444GEDQor44GE44Gu44GG44GILOOBsuOCjeOBlw0KK+OBhOOBruOBi+OCjyzjgbLjgafjgYLjgY0NCivjgYTjgb7jgYQs44KI44GYDQor44GE44G+44GX44KF44GPLOOCiuOBiOOBkw0KK+OBhOOCj+OBhCzjgb/jgYrjgZMNCivjgYTjgo/jgZfjgb4s44GE44Ga44G/DQor44GG44GI44Ge44GuLOOBguOBpOOBig0KK+OBhuOBiOOBoCzjgZ/jgaDjgZcNCivjgYbjgYjjga/jgoks44KG44G/44GTDQor44GG44GI44Gv44KJLOOBvuOCiuOBkw0KK+OBi+OBjeOBnyzjgZHjgYTjgZMNCivjgYbjgZXjgb8s44Gy44KN44GoDQor44GG44Gh44GgLOOBvuOBjeOBkw0KK+OBhuOBoeOBoCzjgY3jgojjgZcNCivjgYbjgaHjgbzjgoos44GC44GN44Gy44KNDQor44GG44KB44GM44GELOOBvuOBleOCiw0KK+OBhuOCgeOBpCzjgorjgZUNCivjgYbjgoHjga4s44G+44GV44G144G/DQor44GG44KJ44GL44KPLOOBsuOCjeOBn+OBkQ0KK+OBhuOCieOBuSzjgb7jgobjgb8NCivjgYjjgZDjgaEs44Gy44Gn44GK44G/DQor44GI44Ga44G/LOOBl+OCheOCk+OBmeOBkQ0KK+OBiOOBruOCguOBqCzjgZ/jgZHjgZcNCivjgYTjgb7jgavjgZcs44KK44KHDQor44GI44Gu44KC44GoLOOBqOOCguOBsuOBkw0KK+OBiOOCk+OBqSzjgZfjgoXjgYTjgaENCivjgYrjgYTjgYvjgo8s44KB44GQ44G/DQor44GK44GE44GL44KPLOOBn+OBi+OBsuOCjQ0KK+OBiuOBsizjgZ/jgYvjgobjgY0NCivjgYrjgbLjgZcs44KC44Go44GTDQor44GK44GfLOOBkeOCkw0KK+OBiuOBpOOBiyzjgbLjgZjjgooNCivjgYrjgavjgZcs44Gy44KN44GNDQor44GK44Gr44GXLOOBguOChOOBkw0KK+OBiuOBi+OBoCzjgb/jgZXjgagNCivjgYrjgYvjgaAs44GL44Ga44GIDQor44GK44GL44GuLOOBguOBjeOBsuOBkw0KK+OBiuOBi+OBuSzjgZ/jgZHjgZcNCivjgYrjgYvjgbks44KG44GNDQor44GK44GL44KA44KJLOOBl+OBkuOBsuOBlQ0KK+OBiuOBi+OCguOBqCzjgZ/jgaDjgZcNCivjgYrjgYvjgoLjgags44GE44GP44KIDQor44GK44GM44KPLOOBn+OCjeOBhg0KK+OBiuOBjOOCjyzjgbLjgo3jgobjgY0NCivjgYrjgY/jgaAs44G144G/44GTDQor44GK44GP44GgLOOCiOOBl+OBjQ0KK+OBiuOBluOBjSzjgb7jgZXjgY0NCivjgYrjga4s44KG44GN44G144G/DQor44GK44KE44G+LOOCiOOBmA0KK+OBi+OBhOOBmuOBiyzjgb7jgZXjga/jgosNCivjgYvjgYzjgb8s44G144G/44GL44GaDQor44GL44GN44GfLOOBl+OCk+OBmeOBkQ0KK+OBi+OBjyzjgYvjgaTjgYLjgY0NCivjgYvjgZXjgYQs44G/44Gh44GIDQor44GL44GY44GELOOChOOBmeOBig0KK+OBi+OBmOOBnyzjgb7jgZXjgosNCivjgYvjgZ/jgYgs44KG44GNDQor44GL44Gf44KE44G+LOOCiOOBl+OBsuOCjQ0KK+OBi+OBpCzjgbLjgafjgYLjgY0NCivjgYvjgajjgYYs44KK44KH44GGDQor44GL44Go44GGLOOBv+OBjQ0KK+OBi+OBv+OBmOOChyzjgb/jgobjgY0NCivjgYvjga3jgZMs44Gf44GI44GTDQor44GL44G+44GgLOOBqOOBiuOCiw0KK+OBi+OBv+OBmOOChyzjgZHjgpMNCivjgYvjgb/jgbLjgZUs44Gm44Gk44KEDQor44GL44G/44KC44GoLOOBvuOBv+OBkw0KK+OBi+OBv+OChCzjgarjgYrjgZMNCivjgYvjgb/jgoTjgb4s44Gf44GL44GXDQor44GL44KP44GL44G/LOOBqOOBl+OBteOBvw0KK+OBi+OCj+OBleOBjSzjgYjjgorjgYsNCivjgYvjgo/jgZss44GL44GK44KLDQor44GL44KP44Gv44GfLOOBk+OBhuOBmA0KK+OBi+OCj+OBr+OCiSzjgobjgY3jga7jgooNCivjgYvjgo/jgoDjgoks44GC44GL44GtDQor44GL44KP44KC44GoLOOBquOBiuOChA0KK+OBi+OCj+OCguOBqCzjgobjgYbjgZjjgpMNCivjgYvjgo/jgoLjgags44G/44Gk44GTDQor44GL44KT44GgLOOBqOOBiuOCiw0KK+OBjeOBj+OBoSzjgZ/jgY8NCivjgY3jgZ/jgYzjgo8s44Gg44GE44GZ44GRDQor44GN44Gf44Gq44GMLOOBguOBpOOBkw0KK+OBjeOBn+OBrizjgY/jgavjgbLjgagNCivjgY3jgZ/jgoDjgoks44GL44Ga44Gy44KNDQor44GN44Gf44KC44GoLOOCiOOBl+OBpuOCiw0KK+OBjeOBruOBiCzjgobjgYbjgZgNCivjgY3jgbbjgZss44GL44GK44KKDQor44GN44KA44KJLOOBi+OBmuOBig0KK+OBjeOCgOOCiSzjgb7jgY0NCivjgY3jgoLjgags44G+44GZ44G/DQor44GN44KC44GoLOOBsuOBqOOBlw0KK+OBjuOCh+OBhuOBtizjgbLjgo3jgYvjgZoNCivjgY/jgass44Gf44GR44Gh44GLDQor44GP44Gr44G+44GVLOOBmOOCheOCk+OBkw0KK+OBj+OBvuOBleOBiyzjgYvjgZrjgbLjgo0NCivjgY/jgonjgZfjgZIs44GR44GE44GZ44GRDQor44GP44KK44GfLOOBsuOCjeOBlw0KK+OBj+OCiuOBr+OCiSzjgb/jgaHjgYoNCivjgZPjgYTjgZEs44Gf44GR44GXDQor44GT44GE44GR44GgLOOBiOOCig0KK+OBk+OBhOOBmuOBvyzjgb7jgZXjgbbjgb8NCivjgZPjgYTjgazjgb4s44GV44GL44GIDQor44GT44Gk44GLLOOBl+OCk+OBlA0KK+OBk+OBjCzjgZ/jgaTjgoQNCivjgZPjgZfjgoLjgags44Gk44Go44KADQor44GT44Gg44G+LOOBsuOCjeOBlw0KK+OBk+OBoOOBvizjgZ/jgYvjgYgNCivjgZTjgags44GY44KF44Gr44GhDQor44GT44Gr44GXLOOBqOOCguOBjQ0KK+OBk+OBsOOChOOBlyzjgbLjgafjgobjgY0NCivjgZPjgbDjgoTjgZcs44KG44KKDQor44GT44Gw44KE44GXLOOBsuOCjeOBkw0KK+OBk+OBsOOChOOBlyzjgb/jgbsNCivjgZPjgb7jgY0s44G/44GI44GTDQor44GT44G+44GwLOOBn+OBhOOBm+OBpA0KK+OBk+OBv+OChCzjgYLjgY3jgYoNCivjgZPjgoTjgb4s44GT44Gy44KDDQor44GT44KE44G+LOOBn+OBkeOBlw0KK+OBleOBhOOBjSzjgoHjgZDjgb8NCivjgZXjgYTjgZQs44Gf44Gk44KNDQor44GV44GE44Go44GGLOOBsuOCjeOBlw0KK+OBleOBhOOBqOOBhizjgb/jgaHjgZMNCivjgZXjgYTjgajjgYYs44GL44Ga44GC44GNDQor44GE44GM44KJ44GXLOOBl+OBkuOBjQ0KK+OBleOBiOOBkOOBlSzjgbLjgo3jgb/jgaQNCivjgZXjgYvjgYQs44Gf44GE44Gh44KN44GG44GGDQor44GV44GL44GM44G/LOOBvuOBleOBi+OBmg0KK+OBleOBi+OBrSzjgYLjgorjgojjgZcNCivjgZXjgYvjgoLjgags44Go44KC44GTDQor44GV44GL44KC44GoLOOCiOOBl+OBmA0KK+OBleOBj+OCieOBhCzjgb7jgZXjgY0NCivjgZXjgY/jgonjgaAs44KE44GZ44Gf44GLDQor44GV44GT44KTLOOBsuOBp+OBsuOBqA0KK+OBleOBleOBjSzjgZ/jgaTjgoQNCivjgZXjgZXjga/jgoks44GL44Ga44Gu44KKDQor44GV44Go44GGLOOBi+OBpOOBsuOBkw0KK+OBleOBqOOBhizjgb7jgZXjga7jgooNCivjgZXjgajjgYYs44KE44GZ44Gu44KKDQor44GV44Go44GGLOOBqOOCguOBsuOBlQ0KK+OBleOBrizjgb/jgo/jgZMNCivjgZXjgo8s44GR44KT44GYDQor44GX44G244KELOOBpuOBpOOBig0KK+OBl+OBtuOChCzjgYTjgZXjgoANCivjgZfjgb7jgaAs44GX44KH44GG44GUDQor44GX44G+44GgLOOBquOBvw0KK+OBl+OBvuOBoCzjgYLjgY3jgokNCivjgZfjgb/jgZos44GE44Gh44KN44GGDQor44GX44G/44GaLOOBoOOBhOOBjQ0KK+OBl+OBv+OBmizjgajjgoLjga7jgooNCivjgZfjgb/jgZos44G+44GT44GoDQor44GX44G/44GaLOOBsuOCjeOBvw0KK+OBhOOBruOBhuOBiCzjgorjgofjgYbjgZgNCivjgZfjgoIs44G+44GV44Gy44KNDQor44GX44KH44GgLOOBquOBquOBiA0KK+OBmOOCk+OBrizjgo/jgYvjgZMNCivjgZjjgpPjga4s44GS44KTDQor44GX44KT44G+44GhLOOBmOOCheOBq+OBoQ0KK+OBmeOBjuOBhCzjgZHjgpPjgZQNCivjgZnjgY7jgYrjgYss44Gq44GK44GoDQor44GZ44GO44KC44GoLOOBsuOBp+OBguOBjQ0KK+OBmeOBmuOBjSzjgZHjgpPjgZQNCivjgZnjgZrjgY0s44Gf44Gg44GXDQor44GZ44Ga44GNLOOBsuOBp+OBig0KK+OBmeOBmuOBjSzjgb7jgarjgYgNCivjgZnjgZrjgY0s44Gy44Gn44Gf44GRDQor44Gb44GKLOOChOOCiOOBhA0KK+OBm+OBjSzjgobjgY3jgYoNCivjgYTjgZfjga/jgb4s44Gg44GE44GZ44GRDQor44Gd44Gu44GgLOOBsuOBp+OBjQ0KK+OBn+OBhCzjgYLjgY3jga4NCivjgZ/jgYvjgYTjgo8s44Gq44GK44KG44GNDQor44Gf44GL44GOLOOBkeOBhOOBmeOBkQ0KK+OBn+OBi+OBr+OBlyzjgZXjgajjgZcNCivjgZ/jgYvjga/jgZcs44GX44GS44Gu44KKDQor44Gf44GL44Gv44GXLOOBvuOBk+OBqA0KK+OBn+OBi+OBr+OBlyzjgorjgoXjgYbjgZgNCivjgZ/jgYvjga/jgZcs44Gf44GR44GXDQor44Gf44GL44KA44GPLOOBvuOBleOBquOBig0KK+OBn+OBkOOBoSzjgZ/jgYvjgbLjgZMNCivjgZ/jgZHjgYbjgaEs44G/44Gh44Gu44KKDQor44Gf44GR44GL44KPLOOBi+OBmuOBsuOCiQ0KK+OBn+OBkeOCjyzjgaDjgYTjgZnjgZENCivjgZ/jgaDjgb7jgaQs44GL44Ga44Gy44KNDQor44Gf44Gf44KJLOOBsuOCjeOBl+OBkg0KK+OBn+OBquOBiyzjgobjgYbjgYTjgaHjgo3jgYYNCivjgZ/jgavjgoLjgags44Gu44KK44GTDQor44Gf44Gt44KA44KJLOOBneOBhg0KK+OBn+OBr+OCiSzjgZHjgpPjgagNCivjgZ/jgoDjgoks44GT44GG44Gf44KN44GGDQor44Gg44KTLOOCiOOBl+OBguOBjQ0KK+OBhOOBhOOBoCzjgY3jgojjgZcNCivjgaHjgbAs44KG44GG44GYDQor44Gh44KH44Go44GPLOOBvuOBjeOBkw0KK+OBpOOBi+OBr+OCiSzjga7jgbbjgobjgY0NCivjgaTjgaTjgb8s44G+44GN44GTDQor44Gk44KC44KKLOOBn+OBkeOBlw0KK+OBpuOCieOBl+OBnyzjgYLjgY3jgbLjgZMNCivjganjgYQs44GR44KT44GXDQor44Gp44GELOOBsuOCjeOBkw0KK+OBqeOBhCzjgojjgZfjgZMNCivjgajjgZfjgb4s44G+44GV44GXDQor44Gq44GE44Go44GGLOOBl+OCk+OBmA0KK+OBquOBi+OBhCzjgbLjgafjgY0NCivjgarjgYvjgYQs44GT44GG44GYDQor44Gq44GL44GKLOOBn+OBi+OBlw0KK+OBquOBi+OBjOOCjyzjgobjgYbjgZgNCivjgarjgYzjgZXjgY0s44GC44GN44G144G/DQor44Gq44GL44GY44G+LOOBleOBqOOBlw0KK+OBquOBi+OBmOOBvizjgbLjgo3jgZcNCivjgarjgYvjgZfjgb4s44Gf44GL44KG44GNDQor44Gq44GL44GgLOOCgOOBreOBruOCig0KK+OBquOBi+OBr+OCiSzjgYjjgYTjgZnjgZENCivjgarjgYvjgoDjgoks44Gy44Gn44KG44GNDQor44Gq44GL44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBquOBi+OCgOOCiSzjgb7jgZPjgagNCivjgarjgYvjgoDjgoks44G+44KK44GTDQor44Gq44GL44KA44KJLOOChuOBhuOBhOOBoeOCjeOBhg0KK+OBquOBi+OCgOOCiSzjgobjgZ/jgYsNCivjgarjgYvjgoDjgoks44KI44GX44GIDQor44G744GX44GuLOOCiOOBhuOBhOOBoQ0KK+OBquOBi+OCguOBqCzjgZPjgbjjgYQNCivjgYTjgZHjgaAs44GT44GG44GYDQor44Gq44GL44KC44KKLOOBvuOBleOBsuOCjQ0KK+OBquOBjOOCiOOBlyzjgZfjgoXjgbjjgYQNCivjgarjgafjga/jgoks44GN44G744GTDQor44Gq44Gq44KC44KKLOOBoeOBguOBjQ0KK+OBquOCieOBleOBiyzjgYvjgYrjgooNCivjgarjgpPjgbAs44Gf44GL44G144G/DQor44Gr44GXLOOBruOBnuOCgA0KK+OBq+OBl+OBi+OCjyzjgZXjgarjgYgNCivjgavjgZfjgaAs44GN44KI44GTDQor44Gr44GX44KA44KJLOOBv+OBquOBkw0KK+OBruOBkOOBoSzjgZjjgoXjgpPjgZ7jgYYNCivjga7jgaAs44GX44KF44GG44Gf44KN44GGDQor44Gu44Gq44G/LOOChuOCig0KK+OBruOBruOBhOOBoeOChCzjgZ3jgYbjgYTjgaHjgo3jgYYNCivjga7jgoDjgoks44G/44Gk44Gy44KNDQor44Gu44KC44GoLOOBi+OBpOOBsuOBkw0KK+OBr+OBjOOChCzjgbLjgafjgoQNCivjga/jgY7jgo/jgoks44Go44GX44Gv44KLDQor44Gv44GPLOOBguOBjeOBkw0KK+OBr+OBlyzjgb7jgZXjgZ/jgYsNCivjga/jgZfjgZrjgoEs44Go44GK44KLDQor44Gv44GX44GwLOOBn+OBi+OBvuOBlQ0KK+OBr+OBm+OBuSzjgbLjgo3jgZcNCivjga/jgZ8s44Gk44Go44KADQor44Gv44Gf44GILOOBsuOCjeOBlw0KK+OBr+OBn+OBrizjgobjgY0NCivjga/jgaHjga4s44Gk44Gt44GC44GNDQor44Gv44Gj44Go44KKLOOBsuOBp+OBguOBjQ0KK+OBr+OChOOBlyzjgZHjgpPjgZcNCivjga/jgoTjgZfjgaAs44KG44GNDQor44Gv44KE44G144GtLOOBleOBqOOBlw0KK+OBr+OCiSzjgZHjgpPjgYTjgaENCivjga/jgonjgaAs44GZ44GQ44KLDQor44Gv44KJ44GgLOOBvuOBmeOBig0KK+OBhOOBruOBkOOBoSzjgajjgoLjgbLjgZMNCivjga/jgonjgaAs44KG44GG44GE44GhDQor44Gy44GM44GX44KE44G+LOOBquOBiuOChuOBjQ0KK+OBsuOBkOOBoSzjgoTjgZnjgobjgY0NCivjgbLjgZQs44Go44KC44Gy44GoDQor44Gy44Gg44GuLOOBn+OBi+OBlw0KK+OBsuOBvuOBjSzjgobjgYbjgZMNCivjgY/jgonjgZfjgZIs44G+44GT44GoDQor44GE44GX44Gv44KJLOOBn+OBi+OBvuOBlQ0KK+OBsuOCieOBnyzjgb7jgZXjgb/jgaENCivjgbLjgo3jgZXjgo8s44G/44GN44GoDQor44Gy44KN44GfLOOBguOBjeOCiOOBlw0KK+OBteOBi+OBleOCjyzjgZnjgZnjgoANCivjgbXjgYvjgZbjgo8s44KG44GGDQor44G144GL44GW44KPLOOCjOOBhOOBkw0KK+OBteOBj+OCgOOCjSzjgYLjgY3jgokNCivjgbXjgZjjgYQs44KI44GX44GC44GNDQor44GE44Go44GGLOOBn+OBpOOBmA0KK+OBteOBmOOBhCzjgY/jgb/jgZMNCivjgbXjgZjjgarjgYws44G+44GV44GTDQor44G144GY44Gq44GMLOOBi+OBpOOBteOBvw0KK+OBteOBmOOCj+OCiSzjgZ/jgYvjgobjgY0NCivjgbXjgZjjgo/jgoks44KI44GG44GTDQor44G144GY44KP44KJLOOBsuOBp+OBjQ0KK+OBteOBn+OBpOOBjizjgbLjgo3jgZcNCivjgbXjgZ/jgaTjgoLjgoos44Go44KC44KEDQor44G144KL44Gv44GfLOOBqOOCguOBruOCig0KK+OBteOCi+OChCzjgYvjgZrjgobjgY0NCivjgbjjgpPjgb8s44KM44GE44GTDQor44G744GXLOOBl+OBkuOBig0KK+OBu+OBl+OBrizjgobjgY3jgZMNCivjgbvjgoos44GR44GE44GTDQor44G744KK44GILOOBv+OBjeOBkw0KK+OBu+OCiuOBiuOBiyzjgorjgYgNCivjgbvjgorjgYvjgo8s44Gf44GL44GXDQor44G+44GI44G144GtLOOBvuOBleOBqOOCgg0KK+OBvuOBjeOBrizjgabjgaTjgoQNCivjgb7jgZnjgaAs44GR44GE44GTDQor44G+44Gk44GG44KJLOOBv+OBiuOBkw0KK+OBvuOBpOOBl+OBnyzjgZHjgYTjgZgNCivjgb7jgaTjgoLjgags44G144G/44GTDQor44GE44GQ44GhLOOBruOCiuOBsuOCjQ0KK+OBvuOBpOOChOOBvizjgorjgYgNCivjgb7jgarjgbks44Gq44GK44KG44GNDQor44G+44KL44KE44G+LOOBpOOCiOOBlw0KK+OBv+OBhuOCiSzjgZfjgZrjgYsNCivjgb/jgY0s44Gu44G244GC44GNDQor44G/44Gk44Gv44GXLOOBvuOCiuOBkw0KK+OBv+OBpOOBuSzjgb7jgZXjgosNCivjgb/jgajjgbks44G+44GE44GTDQor44Gh44KH44Go44GPLOOBi+OBpOOBguOBjQ0KK+OBhOOBkeOBteOBmCzjgY3jgb/jgbLjgo0NCivjgb/jgoTjgZbjgY0s44GX44KT44GYDQor44G/44KE44GW44GNLOOBguOBpOOBkw0KK+OBv+OChOOBl+OBnyzjgajjgoLjgbLjgo0NCivjgb/jgoTjgZ8s44Gq44G/44GTDQor44KA44GT44GG44KE44G+LOOChOOBmeOBruOCig0KK+OCgOOCieOBhCzjgYrjgY/jgagNCivjgoDjgonjgYvjgb8s44Gf44GR44GXDQor44KA44KJ44GL44G/LOOBguOBjeOBlw0KK+OCgOOCieOBnyzjgbLjgafjgZ/jgYsNCivjgoDjgonjgb7jgaQs44Gf44GL44Gy44KNDQor44KC44Go44GNLOOBvuOBleOBsuOCjQ0KK+OCguOBqOOCiOOBlyzjgaHjga4NCivjgoLjgb/jgoTjgb4s44Gq44GK44KG44GNDQor44KC44KKLOOBv+OBoeOCiw0KK+OCguOCiizjgZ/jgYvjgobjgY0NCivjgoLjgorjgYbjgYgs44GI44GE44GE44GhDQor44GE44Gu44GG44GILOOBvuOBleOBqA0KK+OCguOCiuOBhuOBoSzjgbLjgZXjgoQNCivjgoLjgorjgZ8s44Gf44G+44GNDQor44KE44GO44GV44KPLOOBruOBtuOCiOOBlw0KK+OChOOBl+OBvizjgb7jgZXjga/jgosNCivjgoTjgZnjgaAs44GC44GN44KJDQor44KE44GuLOOCiOOBhuOBkw0KK+OChOOBrizjgZ/jgYvjgZcNCivjgoTjgb7jgZDjgaEs44G/44Gh44Gy44GnDQor44KE44G+44GV44GNLOOBv+OBuw0KK+OChOOBvuOBluOBjSzjgb7jgb8NCivjgoTjgb7jgZfjgZ8s44G/44Gk44GC44GNDQor44KE44G+44GX44GfLOOBqOOCguOChuOBjQ0KK+OChOOBvuOBoCzjgb7jgZXjgobjgY0NCivjgoTjgb7jgaos44GY44KF44KT44GfDQor44KE44G+44G/44GhLOOBm+OBhOOBhOOBoQ0KK+OBhOOBquOBiyzjgYjjgYTjgZgNCivjgoTjgb7jgoLjgags44Gf44GL44GXDQor44KE44G+44KC44GoLOOBn+OBkeOChA0KK+OChOOBvuOCguOBqCzjgojjgZfjgZ/jgYsNCivjgoTjgb7jgoLjgags44GC44GN44Gu44KKDQor44KG44GwLOOBl+OCk+OBn+OCjeOBhg0KK+OCiOOBk+OBn+OBqyzjgobjgYbjgY0NCivjgojjgZPjgoTjgb4s44GL44Ga44G/DQor44KI44GX44GgLOOBk+OBhuOBmA0KK+OCiOOBl+OBoCzjgbXjgb/jgbLjgZMNCivjgYTjgo/jgZXjgY0s44G/44GNDQor44KI44GX44GgLOOBn+OBoOOBn+OBiw0KK+OCiOOBoCzjgZjjgoXjgpMNCivjgYXjgYos44G144G/44Gy44GTDQor44KP44GL44G+44GkLOOBruOBtuOBsuOBkw0KK+OCj+OBlSzjgZHjgYTjgZgNCivjgo/jgaAs44GC44Gk44GXDQor44KP44Gf44Gq44G5LOOBn+OBpOOBig0KK+OBhOOCj+OBj+OCiSzjgYvjgaoNCivjgo/jgZ/jgarjgbks44GR44GE44GZ44GRDQor44KP44Gf44Gq44G5LOOBkuOCk+OBnw0KK+OCj+OBn+OBquOBuSzjgZPjgYbjgZgNCivjgo/jgZ/jgarjgbks44Gf44GP44KEDQor44KP44Gf44Gq44G5LOOBsuOBp+OBig0KK+OCj+OBn+OBquOBuSzjgoDjga3jgZ/jgYsNCivjgo/jgZ/jgarjgbks44KG44Gf44GLDQor44KP44Gf44Gq44G5LOOBvuOBk+OBqA0KK+OBiuOBsizjgojjgZfjgYoNCivjgYTjgYTjgaAs44GL44Ga44Gy44KNDQor44KA44GL44GELOOBqOOBl+OBi+OBmg0KK+OBteOBv+OBr+OCiSzjgajjgZfjgYvjgZoNCivjgYvjgo/jgZTjgYgs44KK44KH44GGDQor44GP44KN44GL44KPLOOBiOOBvw0KK+OBk+OBhuOBoCzjgYLjgY3jgbLjgZMNCivjgbXjgZjjgZ8s44G/44Gh44GIDQor44GT44Gw44KE44GXLOOCiuOCh+OBkw0KK+OBr+OBvuOCgOOCiSzjgYvjgYrjgosNCivjgYTjgo/jgZss44GR44GE44GeDQor44Gf44GR44GgLOOBiOOBhOOBhOOBoQ0KK+OBiuOBjOOCjyzjgbLjgafjgobjgY0NCivjgb/jgZrjgZ8s44GL44Ga44G/44GtDQor44GE44GE44GgLOOBl+OCh+OBn+OCjeOBhg0KK+OBguOBhOOBr+OCiSzjgobjgY0NCivjgYLjgYrjgYYs44GX44GS44KLDQor44GC44GK44GNLOOBsuOCjeOChuOBjQ0KK+OBguOBiuOBsCzjgY3jgojjgYvjgZoNCivjgYLjgY3jgoLjgags44Go44GX44GIDQor44GC44GV44GELOOBruOBtuOBsuOCjQ0KK+OBhOOBl+OChOOBvizjgobjgY3jgZMNCivjgYLjgZXjgYos44Gf44GL44GXDQor44GC44GV44GgLOOBi+OBiuOCig0KK+OBguOBleOBoCzjgb7jgZXjga/jgosNCivjgYLjgZXjga4s44Gy44KN44G/DQor44GC44GV44GuLOOBleOBqOOCiw0KK+OBguOBluOBvyzjgobjgYbjgZMNCivjgYLjgZnjgb4s44Gf44GR44GXDQor44GC44Gd44GGLOOBi+OCiA0KK+OBguOBoOOBoSzjgoTjgZnjgbLjgo0NCivjgYLjgajjgb8s44G+44GV44KLDQor44GC44Gq44G/LOOBsuOCjeOBguOBjQ0KK+OBguOBuSzjgZXjgajjgosNCivjgYLjgbks44GC44Gk44GXDQor44GC44G5LOOChOOBmeOBkw0KK+OBguOBvuOBrizjgajjgZfjgY0NCivjgYLjgoTjgbks44GX44KT44GTDQor44Gf44GR44GN44GfLOOBsuOCjeOCiOOBlw0KK+OBguOCieOBhCzjgZnjgZnjgoANCivjgYTjgaTjga4s44KG44GG44GTDQor44GC44KK44GL44KPLOOBl+OCheOCk+OBmeOBkQ0KK+OBguOCiuOBnyzjgYjjgb/jgZMNCivjgYLjgpPjgZjjgoUs44Go44GX44GNDQor44GC44KT44Gp44GGLOOBkeOCk+OBn+OCjeOBhg0KK+OBguOCk+OBqeOBhizjgbXjgZjjgYoNCivjgYTjgaHjga7jgZss44Go44KC44Gy44GTDQor44GE44GE44Gs44G+LOOBqOOBl+OChuOBjQ0KK+OBhOOBhuOBiCzjgZfjgoXjgbjjgYQNCivjgYTjgYzjgonjgZcs44KG44GLDQor44GE44GR44GG44GhLOOBjeOCh+OBhuOBhOOBoQ0KK+OBhOOBkeOBjOOBvyzjga7jgorjgbLjgo0NCivjgYTjgZHjgaAs44KE44GZ44Gy44GVDQor44GE44KK44GfLOOBvuOBleOBiuOBvw0KK+OBhOOBkeOBoCzjgb7jgZPjgagNCivjgYTjgZHjgaAs44G+44GT44GoDQor44GE44GR44GgLOOBvuOBleOBqOOBlw0KK+OBhOOBl+OBhCzjgZ/jgo3jgYYNCivjgYTjgZfjgYQs44G+44Gq44G2DQor44GE44GX44GELOOBvuOBjQ0KK+OBhOOBl+OBiuOBiyzjgb/jgY3jgYoNCivjgYTjgb7jgYQs44KI44GX44Gu44G2DQor44GE44GX44GL44KPLOOBk+OBhuOBhOOBoQ0KK+OBhOOBl+OBi+OCjyzjgaTjgojjgZcNCivjgYTjgZfjgZDjgo0s44G+44GV44GNDQor44GE44GX44GgLOOCiuOCheOBnw0KK+OBhOOBm+OBjSzjgZPjgZrjgYgNCivjgYTjgaHjgY0s44Gy44KN44KG44GNDQor44GE44Gh44Gu44GbLOOCiOOBl+OBguOBjQ0KK+OBhOOBoeOBruOBv+OChCzjgYLjgY3jgZMNCivjgYTjgajjgYYs44GK44KK44GLDQor44GE44Go44GGLOOBv+OBruOCiw0KK+OBhOOBquOBoCzjgZ/jgZHjgZcNCivjgYTjgarjgbAs44KE44GZ44GC44GNDQor44GE44Gv44KJLOOBl+OCheOBsuOBoQ0KK+OBhOOBruOBhuOBiCzjgZfjgofjgYTjgaENCivjgYTjga7jgYbjgYgs44GY44KNDQor44GE44Gu44GG44GILOOBmOOCheOBq+OBoQ0KK+OBhOOBvuOBhOOBmuOBvyzjgajjgoLjgZMNCivjgYTjgb7jgZjjgocs44Gq44GK44G/DQor44GE44G+44GgLOOBl+OCk+OBhOOBoQ0KK+OBhOOBvuOBmizjgZ/jgZHjgZcNCivjgYTjgb7jgoDjgoks44KK44KH44G444GEDQor44GE44KK44Gf44GrLOOBqOOCguOBruOBtg0KK+OBhOOCj+OBjSzjgobjgY3jgbLjgo0NCivjgYTjgo/jgZXjgY0s44Gf44Gk44KG44GNDQor44GE44KP44GV44GNLOOBn+OBkeOBlw0KK+OBhOOCj+OBmeOBjizjgb7jgZXjgagNCivjgYTjgo/jgZ8s44Go44KC44Gy44KNDQor44GE44KP44Gv44GXLOOBteOBv+OBn+OBkQ0KK+OBhOOCj+OBtuOBoSzjgZfjgpPjgYTjgaENCivjgYTjgo/jgbvjgoos44Gu44KK44GTDQor44GG44GI44GgLOOCiOOBl+OBn+OBiw0KK+OBhuOBiOOBvuOBpCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYbjgZnjgYQs44GN44KI44Gf44GLDQor44GG44GZ44GELOOBiuOBleOCgA0KK+OBhuOBoeOBoCzjga7jgorjgZMNCivjgYbjgaTjgb8s44Go44KC44KG44GNDQor44GG44KB44GgLOOBguOBpOOBlw0KK+OBhuOCieOBrizjgZXjgajjgZMNCivjgYjjgYzjgo8s44G/44GKDQor44GI44GW44GNLOOBpOOCiOOBlw0KK+OBiOOBqCzjgb/jgaTjgajjgZcNCivjgYjjga7jgoLjgags44Gf44GP44GYDQor44GI44Gu44KC44GoLOOBn+OBpOOChA0KK+OBiOOBvizjgb7jgooNCivjgYjjgpPjgaks44G+44GqDQor44GI44KT44GpLOOBv+OBiw0KK+OBiuOBhOOBn+OBqyzjgZfjgofjgZfjgoUNCivjgYos44GE44Gh44KN44GGDQor44GK44GyLOOBquOBuw0KK+OBiuOBuCzjgYLjgY3jgbLjgZMNCivjgYrjgY0s44Gu44G244GIDQor44GK44GP44G8LOOBn+OBi+OBlw0KK+OBiuOBleOCjyzjgajjgoLjgYTjgaENCivjgYrjgZXjgo8s44G+44GV44Gy44KNDQor44GE44KP44GN44KKLOOBi+OBiuOCig0KK+OBiuOBmeOBvyzjgb7jgY3jgZMNCivjgYrjgZ8s44Gy44Gn44Gu44G2DQor44GK44GfLOOChOOBmeOBsuOCjQ0KK+OBiuOBpOOBiyzjgZ/jgZHjgZcNCivjgYrjgaTjgYss44GC44Gk44GTDQor44GK44Gk44GLLOOBkeOCk+OBmA0KK+OBiuOBpOOBjSzjga/jgovjgbLjgokNCivjgYrjgarjgYss44GC44GN44KJDQor44GK44Gr44GXLOOBguOBjeOBkw0KK+OBiuOBvCzjgbLjgZXjga7jgooNCivjgYrjgb4s44KI44GX44G+44GVDQor44GK44KA44KJLOOChuOBjQ0KK+OBiuOCgOOCiSzjgojjgZfjgbLjgo0NCivjgYTjgZfjgYQs44GL44GK44KLDQor44GK44KC44KKLOOBguOBjeOBsuOCjQ0KK+OBiuOCguOCiizjgYLjgoQNCivjgYrjgoLjgoos44G144G/44Gu44KKDQor44GK44KP44GgLOOBhOOBleOBig0KK+OBiuOBi+OBhCzjgbLjgZXjgZcNCivjgYrjgYvjgZbjgY0s44KP44Gf44KLDQor44GK44GL44GW44GNLOOCguOBqOOBsuOBkw0KK+OBhOOBkeOBoCzjgb/jgaTjgbLjgo0NCivjgYrjgYvjga4s44Gf44GL44GXDQor44GK44GL44G5LOOBguOBjeOBruOCig0KK+OBiuOBi+OCguOBqCzjgZPjgYbjgYTjgaENCivjgYrjgYzjgo8s44Go44KC44Gy44KNDQor44GK44GM44KPLOOBmOOCheOCkw0KK+OBiuOBjOOCjyzjgaDjgYTjgZnjgZENCivjgYrjgYzjgo8s44KI44GG44GTDQor44GK44GM44KP44KJLOOBvuOBleOBkw0KK+OBiuOBj+OBr+OCiSzjgY3jgojjgZcNCivjgYrjgY/jgoTjgb4s44GX44Gu44G2DQor44GK44GQ44KJLOOBj+OBvw0KK+OBjeOBn+OCgOOCiSzjgarjgYrjgZMNCivjgYrjgZbjgo8s44KI44GX44Gy44KNDQor44GK44GhLOOBsuOCjeOBi+OBmg0KK+OBiuOBrizjga7jgbbjgbLjgZUNCivjgYrjga4s44Gf44GL44G144G/DQor44GK44Gu44Gn44KJLOOCjOOBhA0KK+OBiuOBsOOBnyzjgajjgoLjgb/jgaENCivjgYrjgoTjgb4s44GL44Ga44Gy44GoDQor44GK44KT44GfLOOBguOBjeOBig0KK+OBhOOCj+OBnyzjgYjjgYTjgYTjgaENCivjgYvjgYTjgbbjgY0s44GG44KJ44KJDQor44GL44GN44KC44GoLOOBiOOBpOOBkw0KK+OBi+OBluOBkOOBoSzjgobjgYbjgZMNCivjgYvjgZXjgZbjgY0s44GC44GN44KJDQor44GL44GYLOOCiuOCh+OBsuOBoQ0KK+OBi+OBmOOCgOOCiSzjgY3jgojjga4NCivjgYvjgZfjgo/jgYQs44GP44Gr44Gv44KLDQor44GL44GX44KP44Gw44KJLOOBleOBqOOBlw0KK+OBi+OBn+OBj+OCiSzjgb7jgZMNCivjgYvjgZ/jgoTjgb4s44KE44GZ44Gv44KLDQor44GL44Gk44GuLOOBvuOCiuOBkw0KK+OBi+OBqSzjgZfjgZLjgb/jgaQNCivjgYvjgajjgYYs44KC44Go44Gy44KNDQor44GE44Gd44GuLOOBn+OBi+OBlw0KK+OBi+OBqOOBhizjgaHjgYsNCivjgYvjgajjgYYs44GR44KT44GXDQor44GL44Go44GGLOOBi+OBpOOCiOOBlw0KK+OBi+OBqOOCiizjgaHjgZrjgosNCivjgYvjgarjgZXjgYss44KB44GQ44G/DQor44GL44Gq44GW44KPLOOBn+OBkeOBlw0KK+OBi+OBquOChOOBvizjgobjgb8NCivjgYvjga3jgZMs44G+44Gh44GTDQor44GL44Gt44GTLOOBvuOBleOBruOCig0KK+OBi+OBreOBoCzjgojjgZfjgbLjgo0NCivjgYzjgb8s44GV44GK44KKDQor44GL44KB44GK44GLLOOBr+OCi+OBqg0KK+OBi+OCieOBleOCjyzjga7jgorjgZMNCivjgYvjgonjgZfjgb4s44Gq44GK44KEDQor44GL44KL44GE44GXLOOCiOOBl+OChuOBjQ0KK+OBi+OCj+OBhCzjgb7jgYTjgZMNCivjgYvjgo/jgYQs44Gf44GL44Gu44KKDQor44GL44KP44GL44G/LOOBoeOBiOOBkw0KK+OBi+OCj+OBi+OBvyzjga7jgbbjgobjgY0NCivjgYvjgo/jgZos44G/44Gp44KKDQor44GL44KP44Gq44GLLOOBn+OBi+OBlw0KK+OBi+OCj+OBrizjgZfjgbsNCivjgYvjgo/jgbDjgZ8s44GC44GN44KI44GXDQor44GL44KP44G5LOOBkeOCk+OBmA0KK+OBi+OCj+OBvyzjgoLjgajjgbLjgo0NCivjgYvjgpPjgbDjgZcs44G/44Gh44GTDQor44GL44KT44Gw44KJLOOBi+OBquOBkw0KK+OBjeOBl+OBhCzjgobjgY3jgYoNCivjgY3jgZfjgaAs44Go44KC44GTDQor44GN44Gf44GM44KPLOOCguOBqOOBjQ0KK+OBjeOBn+OBl+OCjSzjgbLjgo3jgZcNCivjgY3jgZ/jga/jgoks44G+44Gq44G/DQor44GN44Gf44KA44KJLOOBguOBjeOBpuOCiw0KK+OBjeOBqSzjgY3jgojjgbXjgb8NCivjgY3jga7jgZfjgZ8s44GE44Ga44G/DQor44GI44GgLOOBquOBiuOChuOBjQ0KK+OBjeOCgOOCiSzjgZ/jgYvjgYrjgb8NCivjgY3jgoDjgoks44G+44GV44G/DQor44GN44KA44KJLOOBkeOCk+OBnw0KK+OBjeOCiOOBquOBjCzjgYLjgaTjgZcNCivjgY3jgojjgb/jgoQs44GI44GE44GZ44GRDQor44GN44KK44KELOOBn+OBi+OBlw0KK+OBhOOBqOOBhizjgarjgYrjgoQNCivjgY/jgZfjgaAs44GX44G7DQor44GP44GY44KJ44GK44GLLOOBl+OCk+OBmA0KK+OBj+OBq+OCguOBqCzjgb/jgaHjgZMNCivjgY/jgazjgY4s44GC44Gk44GXDQor44GP44G8LOOChOOBmeOBiA0KK+OBj+OBvOOBleOCjyzjgYLjgY3jgbLjgo0NCivjgY/jgbzjgZ8s44G+44GV44GNDQor44GP44KB44GuLOOBi+OBmuOCiOOBlw0KK+OBhOOBl+OBkOOCjSzjgojjgZfjgYvjgZoNCivjgY/jgoks44KI44Gy44GhDQor44GP44KJ44GV44KPLOOBoeOBiOOBkw0KK+OBj+OCieOBnyzjgo/jgYvjgZMNCivjgY/jgo3jgYvjgo8s44GI44GEDQor44GP44KN44GZLOOBquOBpOOBkw0KK+OBj+OCjeOChOOBquOBjizjgZfjgZLjgosNCivjgYTjgarjgajjgb8s44GC44Gk44GXDQor44GT44GE44GRLOOBruOCiuOBv+OBpA0KK+OBk+OBhOOBkSzjgZ/jgYvjgYoNCivjgZPjgYTjgZfjgYvjgo8s44G+44GV44GNDQor44GT44GE44Ga44G/LOOBqOOCguOChA0KK+OBk+OBhOOBmuOBvyzjgY3jgofjgZMNCivjgZPjgYTjgacs44Gg44GE44GNDQor44GT44Ga44G+LOOBn+OBkeOBqOOBlw0KK+OBk+OBrizjgajjgYrjgosNCivjgZPjgbLjgoPjgb4s44GC44Gk44GXDQor44GT44KKLOOBvuOBleOBjQ0KK+OBi+OBpOOBi+OCjyzjgZ/jgYvjgbLjgo0NCivjgZPjgYzjga4s44Gu44G244GKDQor44GT44GX44GELOOBn+OCjeOBhg0KK+OBk+OBl+OBvuOCiyzjgajjgoLjgYLjgY0NCivjgZPjgZnjgY4s44G144G/44Gv44KLDQor44GT44Gb44GNLOOCiuOCh+OBkw0KK+OBk+OBn+OBqyzjgZ/jgYvjgbLjgZUNCivjgZPjgaDjgb4s44G+44G/44GTDQor44GT44Gr44GXLOOBleOCk+OBl+OCjQ0KK+OBk+OBq+OBlyzjgaDjgYTjgZnjgZENCivjgZPjgbAs44G+44KG44GTDQor44GT44Gw44Gf44GRLOOCj+OBn+OCiw0KK+OBk+OBsOOChOOBlyzjgbLjgafjgobjgY0NCivjgZPjgbDjgoTjgZcs44Gm44KL44G/DQor44GT44Gw44KE44GXLOOBruOCiuOBvuOBlQ0KK+OBk+OBsOOChOOBlyzjgb7jganjgYsNCivjgZPjgbDjgoTjgZcs44G+44GE44GTDQor44Gq44GL44KA44KJLOOBguOBpOOBkw0KK+OBk+OBsOOChOOBlyzjgaDjgYTjgY0NCivjgZPjgbzjgoos44Gf44GL44Gy44GnDQor44GT44G+44GkLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBk+OChOOBvizjgYLjgY3jgbXjgb8NCivjgZPjgpPjgaks44Go44KC44Gy44KNDQor44GT44KT44GuLOOBoOOBhOOBqOOBjw0KK+OBleOBhOOBqOOBhizjgb7jgZXjgZcNCivjgZXjgYTjgajjgYYs44G+44Gq44G2DQor44GV44GE44Go44GGLOOChOOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgZvjgpPjgZgNCivjgYTjgajjgYYs44Gf44G/44GTDQor44GV44GL44GELOOBn+OBoOOBlw0KK+OBleOBi+OBhCzjgajjgoLjgY0NCivjgZXjgYvjgYQs44GR44GE44GE44GhDQor44GV44GL44GN44Gw44KJLOOBguOBjeOBkw0KK+OBleOBi+OBkOOBoSzjgoTjgZnjgobjgY0NCivjgYTjgo/jgZXjgY0s44KI44GYDQor44GV44GL44KC44GoLOOBvuOBleOChA0KK+OBleOBi+OCguOBqCzjgojjgZfjgYoNCivjgZXjgYvjgoLjgags44KI44G444GEDQor44GV44GV44GNLOOBsuOCjeOBkw0KK+OBleOBleOBjSzjgY/jgavjgbLjgZMNCivjgZXjgZXjgY0s44Gk44KI44GXDQor44GV44GV44GNLOOBpOOBjuOBig0KK+OBhOOBvuOBr+OBlyzjgY3jgofjgbsNCivjgZXjgaTjgb8s44Gf44GL44GTDQor44GV44Go44GGLOOBqOOCguOBiA0KK+OBleOBqOOBhizjgYLjgaTjgZMNCivjgZXjgajjgYYs44Gy44KN44KG44GNDQor44GV44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBleOBqOOBhizjgbXjgY3jgZMNCivjgZXjgajjgYYs44Gh44Gy44KNDQor44GV44GuLOOBjeOCiOOBlw0KK+OBhOOBl+OBkOOCjSzjgb/jga3jgYoNCivjgZXjgo/jgoTjgarjgY4s44Go44GX44GNDQor44GX44GK44GfLOOBhOOBoeOCjeOBhg0KK+OBl+OBjSzjgozjgYTjgZMNCivjgZfjgZLjgYrjgYss44Gu44KK44GKDQor44GX44GS44GfLOOCiOOBmA0KK+OBl+OBl+OBqSzjgZjjgoXjgpPjgZMNCivjgZfjgarjgaAs44GL44Gk44Go44GXDQor44GE44GnLOOBk+OBleOBjw0KK+OBl+OBsOOBnyzjgZjjgoXjgpPjgZMNCivjgZfjgbDjgZ8s44KM44GqDQor44GX44Gw44GfLOOBsuOCjeOBvw0KK+OBl+OBsOOBnyzjgZ/jgYvjgobjgY0NCivjgZfjgb7jgZos44GX44KT44GE44Gh44KN44GGDQor44GX44G+44GgLOOChuOBhuOBmA0KK+OBl+OBvuOBmizjgajjgoLjgY/jgasNCivjgZfjgb/jgZos44G+44KK44GTDQor44GX44G/44GaLOOBk+OBjQ0KK+OBl+OCguOBr+OBlyzjgobjgb/jgZMNCivjgZfjgoLjgoTjgb4s44GX44GuDQor44GY44KH44GY44KHLOOBsuOBp+OBn+OBiw0KK+OBhOOBqOOBhizjgb/jgaTjgbLjgo0NCivjgZnjgYzjgZ8s44GR44GE44GZ44GRDQor44GZ44GM44KELOOChuOBhuOBkw0KK+OBmeOBjuOBnyzjgozjgYQNCivjgZnjgY7jgarjgYss44G+44KC44KLDQor44GZ44GO44KC44GoLOOCiuOBiw0KK+OBmeOBjuOChOOBvizjgojjgZfjgZMNCivjgZnjgY7jgoTjgb4s44KI44GX44G144G/DQor44GZ44GO44KE44G+LOOCiOOBhuOBkw0KK+OBmeOBkuOBrizjgYLjgorjgbLjgagNCivjgZnjgZrjgY0s44KK44KHDQor44GZ44Ga44GNLOOBl+OCheOBhOOBoQ0KK+OBmeOBmuOBjSzjgoLjgarjgb8NCivjgZnjgZrjgY0s44KI44GX44GV44GgDQor44GZ44Ga44GNLOOBpOOBreOBig0KK+OBhOOCj+OBleOBjSzjgbLjgafjgZ/jgaANCivjgZnjgZrjgY0s44GP44Gr44GIDQor44GZ44Ga44GNLOOBsuOCjeOBruOBtg0KK+OBhOOBoeOBi+OCjyzjgYvjgYrjgooNCivjgZvjgY0s44Gf44GL44GXDQor44Gb44GN44GQ44GhLOOBjeOCh+OBkw0KK+OBm+OBjeOChCzjga7jgbbjgYgNCivjgZvjgZMs44GC44GN44Gy44KNDQor44Gb44KJLOOBn+OBi+OBsuOCjQ0KK+OBneOBjCzjgYjjgYTjgZgNCivjgZ3jgYws44G144G/44GKDQor44GE44Go44GGLOOBi+OBmuOBqg0KK+OBi+OBv+OChCzjgobjgYbjgZgNCivjgZ3jgpPjgY8s44Go44GK44KLDQor44Gf44GL44GNLOOBlA0KK+OBn+OBi+OBjizjgZPjgYbjgZgNCivjgZ/jgYvjgZXjgY0s44G+44GV44Gy44KNDQor44GE44GR44GgLOOBsuOBp+OBguOBjQ0KK+OBn+OBi+OBl+OBvizjgZPjgYbjgZgNCivjgZ/jgYvjga4s44KG44GG44GTDQor44Gf44GL44GuLOOBqOOCguOBteOBvw0KK+OBn+OBi+OBrizjgojjgYbjgZMNCivjgZ/jgYvjga4s44GT44GG44GYDQor44Gf44GL44GuLOOCiuOBiw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgojjgZcNCivjgZ/jgYvjga/jgZcs44GR44GE44GTDQor44Gf44GL44Gv44GXLOOBkeOCk+OBmA0KK+OBn+OBi+OBr+OBlyzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgYvjga/jgZcs44Gy44KN44KG44GNDQor44Gf44GL44Gv44GXLOOChuOBiw0KK+OBn+OBi+OBvuOBpCzjgYjjgYTjgZMNCivjgZ/jgYzjgb8s44GC44GN44KJDQor44Gf44GL44G/44GW44KPLOOBi+OBmeOBvw0KK+OBn+OBi+OCieOBoCzjgajjgZfjgYvjgZoNCivjgZ/jgY3jgYvjgo8s44KG44G/44GTDQor44Gf44GN44GW44KPLOOCiOOBl+OBr+OCiw0KK+OBhOOBhOOBrizjgoTjgZnjgYoNCivjgZ/jgZHjgYQs44Gy44Go44GXDQor44Gf44GR44GG44GhLOOChOOBmeOBsuOBqA0KK+OBn+OBkeOBhuOBoSzjgZHjgpPjgYTjgaENCivjgZ/jgZHjgY3jgZ8s44Gy44Gn44GNDQor44Gf44GR44Gq44GLLOOBvuOBjeOBkw0KK+OBn+OBkeOBruOBhuOBoSzjgarjgYrjgbLjgo0NCivjgZ/jgZHjga/jgaos44KI44GX44Gy44GVDQor44GE44Go44GGLOOCiOOBl+OBig0KK+OBn+OBkeOCguOBqCzjgZPjgbjjgYQNCivjgZ/jgZHjgoLjgags44GT44GG44GE44Gh44KNDQor44Gf44GULOOBjOOBjw0KK+OBn+OBleOBiyzjgYvjgaoNCivjgZ/jgZjjgb4s44Gf44GL44Gu44KKDQor44Gf44GX44KNLOOBsuOCjeOBlw0KK+OBn+OBl+OCjSzjgbLjgajjgZcNCivjgZ/jgZ/jgoks44KK44KF44GNDQor44Gf44Gh44Gw44GqLOOBl+OCk+OBhOOBoQ0KK+OBhOOBoeOCgOOCiSzjgYjjgb/jgZMNCivjgZ/jgabjgYTjgZcs44GE44KP44GKDQor44Gf44Gm44GuLOOChuOBvw0KK+OBn+OBpuOBrizjgojjgZfjgbLjgo0NCivjgZ/jgarjgYss44GX44KT44GE44Gh44KN44GGDQor44Gf44Gq44GLLOOBn+OBi+OBjeOCiA0KK+OBn+OBquOBiyzjgb7jgY0NCivjgZ/jgarjgYss44G144G/44GKDQor44Gf44Gq44GLLOOCiuOCh+OBmA0KK+OBn+OBquOBiyzjgbXjgb8NCivjgZ/jgarjgYss44Go44GP44GTDQor44GM44G/LOOBvuOBleOCiw0KK+OBn+OBquOBvyzjgYvjgZrjgbLjgZMNCivjgZ/jgass44GZ44GZ44KADQor44Gf44Gr44GQ44GhLOOCiOOBl+OBruOBtg0KK+OBquOBi+OBiuOBiyzjgbLjgo3jgYvjgZoNCivjgZ/jgavjgZbjgo8s44KI44GX44GTDQor44Gf44Gr44GgLOOBlA0KK+OBn+OBq+OCguOBqCzjgZXjgarjgYgNCivjgZ/jga7jgYrjgYss44GC44KE44GTDQor44Gf44Gw44GfLOOBleOBqOOBlw0KK+OBn+OBr+OCiSzjgobjgY0NCivjgZ/jgoDjgoks44Gy44GV44GXDQor44Gh44GL44GW44KPLOOBoOOBhOOBng0KK+OBoeOBrizjgZHjgpPjgYTjgaHjgo0NCivjgaHjga/jgoks44G+44GV44Gy44KNDQor44Gh44KF44GY44KHLOOBquOBiuOBkw0KK+OBoeOCheOBvizjgajjgYrjgosNCivjgaTjgYvjgaAs44GN44KH44GTDQor44Gk44GL44KC44GoLOOChOOBmeOBlw0KK+OBpOOBi+OCguOBqCzjgojjgYbjgZMNCivjgaTjgaAs44G+44GT44GoDQor44Gk44Gh44GgLOOBpOOBreOBig0KK+OBpOOBoeOChCzjgb7jgb8NCivjgaTjgaHjgoQs44KG44G/44GTDQor44Gk44Gt44GNLOOChuOBjQ0KK+OBp+OBv+OBmyzjgojjgZfjga7jgooNCivjgabjgonjgYrjgYss44Gu44G244KG44GNDQor44GE44Ga44G/LOOBguOBjeOBvw0KK+OBqCzjgb/jgYjjgZMNCivjgajjgZgs44G+44GV44GNDQor44Go44GX44GK44GLLOOBv+OBi+OBkw0KK+OBqOOBoCzjgobjgY3jgbLjgo0NCivjgajjgbPjgarjgYQs44Gu44KK44Gy44GoDQor44Go44KC44GELOOBn+OBi+OBruOBtg0KK+OBqOOChOOBvizjgbLjgZXjga4NCivjgajjgojjgZfjgb4s44GV44KE44GLDQor44Go44KI44GgLOOBkeOBhOOBhOOBoQ0KK+OBqOOCiOOBr+OBvizjgbLjgafjgZ/jgZENCivjgarjgYzjgYgs44Gu44G244Gf44GLDQor44Gq44GM44GILOOChuOBn+OBiw0KK+OBquOBi+OBiizjgajjgoLjga7jgooNCivjgarjgYvjgYos44G+44GV44GKDQor44Gq44GL44GY44G+LOOBm+OCjOOBqg0KK+OBquOBi+OBmOOBvizjgYLjgY0NCivjgarjgYvjgZjjgb4s44GP44G/44GTDQor44Gq44GM44GX44G+LOOBn+OBi+OBlw0KK+OBquOBjOOBmyzjgYvjgarjgZMNCivjgarjgYvjgZ7jga4s44GC44Gk44GXDQor44Gq44GL44GfLOOBm+OBhOOBmA0KK+OBquOBjOOBnyzjgb7jgZXjgZMNCivjgarjgYzjgags44G/44GZ44GaDQor44Gq44GL44Gr44GXLOOBr+OBquOBiA0KK+OBquOBi+OBrizjgYLjgY3jgZMNCivjgarjgYzjga4s44G/44Gt44GNDQor44Gq44GM44GuLOOBguOBhOOBkw0KK+OBquOBjOOBrizjgZPjgYbjgYTjgaENCivjgarjgYzjga/jgoks44Gf44GP44KEDQor44Gq44GL44Gy44GM44GXLOOBqOOBl+OBig0KK+OBquOBi+OCgOOCiSzjgZHjgpPjgZgNCivjgYTjgazjgZrjgYss44GX44G7DQor44Gq44GL44KA44KJLOOBqOOCguOBsuOBpw0KK+OBquOBi+OCgOOCiSzjgZHjgpPjgZ/jgo3jgYYNCivjgarjgYvjgoDjgoks44Go44KC44GTDQor44Gq44GL44KA44KJLOOCiOOBl+OBn+OBiw0KK+OBquOBi+OChCzjgaTjgojjgZcNCivjgarjgYvjgoQs44G+44KKDQor44Gq44KJ44GV44GNLOOBk+OBhuOBhOOBoeOCjQ0KK+OBquOCiuOBnyzjgZjjgoXjgpPjgZMNCivjgarjgorjgZ8s44GC44GV44GTDQor44Gr44GE44GgLOOCiOOBl+OBsuOBkw0KK+OBq+OBl+OBi+OCjyzjgb7jgorjgZMNCivjgavjgZfjgoDjgoks44GS44KTDQor44Gr44GX44KA44KJLOOCiOOBl+OBkw0KK+OBq+OBl+OCgOOCiSzjgbLjgo3jgY0NCivjgavjgZfjgoTjgb4s44Gf44GL44GXDQor44Gr44GX44KE44G+LOOBpuOBpOOChA0KK+OBq+OCgOOCiSzjgojjgZfjgobjgY0NCivjgavjgo8s44KB44GQ44G/DQor44Gs44G+44GfLOOBjeOBteOBvw0KK+OBrOOBvuOBnyzjgajjgoLjgYvjgZoNCivjgazjgb7jgaAs44G144G/44GNDQor44Gt44GO44GXLOOBsuOBqOOBlw0KK+OBruOBluOBjSzjgb/jgbsNCivjga7jgYzjgb8s44G+44GV44GL44GkDQor44Gu44GgLOOChuOBn+OBiw0KK+OBruOBr+OCiSzjgZHjgYQNCivjga7jgbbjga/jgoks44Gu44G244Gq44KKDQor44Gv44GMLOOCiuOCheOBnw0KK+OBr+OBjuOCj+OCiSzjgojjgZfjgZMNCivjga/jgY7jgo/jgoks44Go44KC44GC44GNDQor44Gv44GX44Ga44KBLOOBhOOCj+OBig0KK+OBr+OBl+OCguOBqCzjgaHjgY7jgooNCivjga/jgZfjgoLjgags44Gf44GE44GE44GhDQor44Gv44GX44KC44GoLOOBi+OBpOOBvw0KK+OBr+OBm+OBjOOCjyzjgajjgYrjgosNCivjga/jgZvjgYzjgo8s44Gu44KK44G+44GVDQor44Gv44Gb44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBr+OBm+OBuSzjgobjgY3jgYgNCivjga/jgZ8s44Gq44GK44GTDQor44Gv44Gf44GR44KE44G+LOOBn+OBi+OBsuOCjQ0KK+OBr+OBn+OBquOBiyzjgaTjgojjgZcNCivjga/jgZ/jga4s44GE44GV44GKDQor44Gv44Gj44Go44KKLOOBn+OBi+OBquOBig0KK+OBr+OBquOBluOBjSzjgobjgYsNCivjga/jgarjgbbjgZUs44Gf44Gk44KEDQor44Gv44Gq44KA44KJLOOBpOOCiOOBlw0KK+OBsOOBsCzjgobjgYbjgZMNCivjga/jgb7jgZXjgY0s44G+44GV44GoDQor44Gv44G+44GgLOOBn+OBoOOBi+OBmg0KK+OBr+OChOOBlyzjgYvjgaTjgokNCivjga/jgoTjgZcs44Gf44GL44GXDQor44Gv44KE44GXLOOBn+OBi+OChuOBjQ0KK+OBr+OChOOBlyzjgZ3jgojjgYsNCivjga/jgoks44GC44GN44KJDQor44Gv44KJ44GX44G+LOOBvuOBk+OBqA0KK+OBr+OCieOBoCzjgb7jgobjgb8NCivjga/jgonjgaAs44GL44Ga44Gf44GLDQor44Gv44KL44Gf44GrLOOCiOOBhuOBuOOBhA0KK+OBsuOBjOOBl+OBrizjgb7jgZXjgbLjgo0NCivjgbLjgYzjgZfjgoTjgb4s44Gv44Ga44GNDQor44Gy44GQ44GhLOOBhOOBj+OBng0KK+OBhOOBl+OBr+OCiSzjgYLjgaTjgogNCivjgbLjgZjjgYvjgZ8s44GC44GN44KI44GXDQor44Gy44GzLOOBn+OBpOOChA0KK+OBsuOCh+OBuCzjgYrjgZXjgoANCivjgbLjgonjgYQs44GUDQor44Gy44KJ44GL44KPLOOBguOBjeOBkw0KK+OBsuOCieOBjyzjgojjgZfjgobjgY0NCivjgbLjgonjgZXjgo8s44Gk44GQ44GNDQor44GE44Gu44Gv44KJLOOBvuOBquOBtg0KK+OBsuOCieOBnyzjgZ/jgZHjgbLjgo0NCivjgbLjgonjgazjgb4s44G+44GT44GoDQor44Gy44KJ44GuLOOCiuOChw0KK+OBsuOCieOChOOBvizjgb7jgZXjgbLjgacNCivjgbLjgo3jgYbjgaEs44GK44GV44KADQor44Gy44KN44GK44GLLOOBquOBiuOChA0KK+OBsuOCjeOBi+OCjyzjgorjgYgNCivjgbXjgY/jgYQs44Gf44GL44Gy44KNDQor44G144GP44GgLOOBvuOBjQ0KK+OBteOBj+OBoCzjgoYNCivjgZPjgoos44GX44GS44G/44GkDQor44G144GY44GELOOBn+OBkeOCiOOBlw0KK+OBteOBmOOBhCzjgbLjgo3jgYLjgY0NCivjgYTjgacs44Gf44Gk44GoDQor44G144GY44GELOOBqOOCguOBsuOCjQ0KK+OBteOBmOOBiizjgbLjgafjga7jgooNCivjgbXjgZjjgYrjgYss44GY44KF44KT44KEDQor44G144GY44GP44KJLOOBl+OBkuOBjQ0KK+OBteOBmOOBleOCjyzjgZHjgpPjgZgNCivjgbXjgZjjgZXjgo8s44Gf44GP44Gy44KNDQor44G144GY44GX44GSLOOBj+OBq+OBpOOBkA0KK+OBteOBmOOBnyzjgYvjgZrjgYoNCivjgYTjga7jgYbjgYgs44Gf44KN44GGDQor44G144GY44GoLOOBl+OBkuOCiw0KK+OBteOBmOOBquOBjCzjgozjgYQNCivjgbXjgZjjgo/jgoks44KG44GL44GTDQor44G144GY44KP44KJLOOBkeOCk+OBn+OCjeOBhg0KK+OBteOBmyzjgb7jgZXjgY0NCivjgbXjgovjgYvjgo8s44Gf44GL44Gy44KNDQor44G144KL44GL44KPLOOBmeOBmeOCgA0KK+OBhOOBl+OBhCzjgY3jgofjgZMNCivjgbXjgovjgZXjgo8s44GY44KF44Gr44GhDQor44G144KL44GfLOOBoOOBhOOBng0KK+OBteOCi+OBnyzjgaHjgYjjgZMNCivjgbXjgovjgZ8s44Gy44KN44GL44GaDQor44G144KPLOOBn+OBi+OChuOBjQ0KK+OBu+OBlyzjgZHjgpPjgYTjgaENCivjgbvjgZ3jgaAs44GN44GP44GTDQor44GE44GX44GELOOBk+OBhuOBmA0KK+OBu+OCiuOBi+OCjyzjgZHjgpPjgZ/jgo3jgYYNCivjgbvjgorjgZPjgZcs44GR44GE44GE44GhDQor44G744KT44GgLOOBkeOCk+OBhOOBoQ0KK+OBvuOBiOOBi+OCjyzjga7jgorjgYoNCivjgb7jgYjjgaAs44KG44GLDQor44G+44GI44GgLOOBquOBjOOBvuOBlQ0KK+OBvuOBiOOBoCzjgajjgoLjga/jgosNCivjgb7jgYjjga4s44Go44GX44GNDQor44G+44GNLOOBi+OBiuOCiw0KK+OBvuOBjeOBnuOBrizjgb7jgZXjgb/jgaQNCivjgb7jgY3jgZ8s44KG44GG44GE44GhDQor44G+44GN44GuLOOBoOOBhOOBmeOBkQ0KK+OBvuOBleOBjSzjgbLjgo3jgY0NCivjgb7jgZnjgZbjgY0s44GT44GG44GE44GhDQor44G+44GZ44GgLOOCiOOBl+OBguOBjQ0KK+OBvuOBmeOBtuOBoSzjgarjgYrjgZMNCivjgb7jgaHjgaAs44G/44GKDQor44G+44Gk44GG44KJLOOBvuOChuOBvw0KK+OBvuOBpOOBi+OCjyzjgZHjgYTjgZnjgZENCivjgb7jgaTjgZbjgY0s44Gy44KN44G/44GhDQor44G+44Gk44GW44GNLOOBquOBiuOBkw0KK+OBvuOBpOOBl+OBnyzjgbLjgo3jgYLjgY0NCivjgb7jgaTjgZfjgb4s44Gu44G844KLDQor44G+44Gk44GgLOOCi+OBvw0KK+OBvuOBpOOBoCzjgb/jgarjgZMNCivjgb7jgaTjgaAs44Gf44KN44GGDQor44G+44Gk44Gq44GMLOOBn+OBi+OBlw0KK+OBvuOBpOOBquOBvyzjgZXjgajjgZcNCivjgb7jgaTjgbDjgoks44Gq44G/DQor44G+44Gk44Gw44KJLOOBleOChOOBiw0KK+OBvuOBpOOBv+OChCzjgYvjgaTjgobjgY0NCivjgb7jgaTjgoLjgags44KA44Gt44GNDQor44G+44Gk44KC44GoLOOChuOBmuOCiw0KK+OBvuOBpOOCguOBqCzjgojjgZfjgZMNCivjgb7jgaTjgoLjgags44KG44GZ44GRDQor44G+44Gk44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OBvuOBpOOChOOBvizjgb/jgobjgY0NCivjgb7jgarjgbks44GI44KK44GTDQor44G+44KL44KE44G+LOOCguOBqOOCiA0KK+OBvuOCi+OChOOBvizjgaDjgYTjgZnjgZENCivjgb/jgYbjgoks44G+44GNDQor44G/44GP44GrLOOBk+OBmuOBiA0KK+OBv+OBmuOBi+OBvyzjgbLjgafjgYoNCivjgb/jgaTjga/jgZcs44GX44GS44KG44GNDQor44G/44Gq44GoLOOBn+OBi+OBlw0KK+OBv+OBquOBvyzjgYLjgobjgb8NCivjgb/jgbXjga0s44Gf44GL44GXDQor44G/44KE44GM44KPLOOBk+OBhuOBmA0KK+OBv+OChOOBleOBiyzjga7jgorjgbXjgb8NCivjgb/jgoTjgZbjgo8s44GV44Go44G/DQor44KA44KJ44GKLOOBkeOCk+OBhOOBoQ0KK+OCgOOCieOBi+OBvyzjgb7jgZPjgagNCivjgoDjgonjgZ8s44GL44Ga44Gy44GnDQor44KA44KJ44G+44GkLOOBn+OBkeOBteOBvw0KK+OCgOOCieOChOOBvizjgobjgZnjgZENCivjgoDjgonjgoTjgb4s44Gy44KN44GTDQor44KB44GQ44KNLOOBoeOBmuOBkw0KK+OCguOBoeOBmuOBjSzjgorjgofjgZnjgZENCivjgoLjgajjgojjgZcs44G+44GV44GNDQor44KC44KC44GaLOOBsuOCjeOBjQ0KK+OCguOCiizjgoTjgZnjgb/jgaQNCivjgoLjgoos44G144G/44Gq44KKDQor44KC44KKLOOBsuOBp+OBjQ0KK+OCguOCiizjga7jgorjgojjgZcNCivjgoLjgorjgZ8s44Gy44KN44KG44GNDQor44KC44KK44GfLOOBn+OBi+OChuOBjQ0KK+OCguOCiuOBrizjgojjgZfjgbLjgo0NCivjgoLjgorjgoLjgags44G+44GV44GXDQor44KC44KK44KC44GoLOOBl+OBruOBtg0KK+OCguOCiuOChOOBvizjgZjjgoXjgpMNCivjgoLjgorjgo/jgY0s44G+44GV44GTDQor44KE44GOLOOBvuOBleOBvw0KK+OChOOBjizjgZHjgpPjgZnjgZENCivjgoTjgY/jgZfjgZgs44Gu44G244KG44GNDQor44KE44GTLOOBqOOBl+OBig0KK+OChOOBluOCjyzjgYvjgZrjgYLjgY0NCivjgoTjgZnjgb4s44Go44KC44Gy44GTDQor44KE44Go44GULOOBk+OBhuOBhOOBoQ0KK+OBmOOCh+OBjOOCkyzjgb7jgZPjgagNCivjgoTjgarjgbYs44KG44GN44GTDQor44KE44GuLOOBvuOBleOBjQ0KK+OChOOBtuOBnyzjgoTjgZnjgZ/jgYsNCivjgoTjgb7jgYbjgaEs44G/44G7DQor44KE44G+44GG44GhLOOBn+OBvuOCiA0KK+OChOOBvuOBkOOBoSzjgZHjgpPjgZgNCivjgoTjgb7jgZDjgaEs44GR44KT44GE44Gh44KNDQor44KE44G+44GQ44GhLOOBv+OBoeOBig0KK+OBmOOBoOOBhCzjgZ/jgYvjgZcNCivjgoTjgb7jgZDjgaEs44KG44GN44GTDQor44KE44G+44GQ44GhLOOBi+OBmuOChuOBjQ0KK+OChOOBvuOBkOOBoSzjgbXjgb/jgYLjgY0NCivjgoTjgb7jgZXjgY0s44GR44GE44GZ44GRDQor44KE44G+44GV44GNLOOChuOBn+OBiw0KK+OChOOBvuOBluOBjSzjgYrjgZXjgoANCivjgoTjgb7jgZfjgZ8s44Gk44KI44GXDQor44KE44G+44GX44GfLOOBkeOCk+OBhOOBoQ0KK+OChOOBvuOBl+OBnyzjgZHjgpPjgZjjgo0NCivjgoTjgb7jgaAs44GC44GEDQor44KE44G+44GgLOOBr+OBquOBiA0KK+OChOOBvuOBoCzjgZXjgajjgZcNCivjgoTjgb7jgaAs44GX44KF44GTDQor44KE44G+44GgLOOBsuOCjeOBlw0KK+OChOOBvuOBqOOChCzjgobjgY3jgZMNCivjgoTjgb7jgarjgYss44G/44Gk44Gv44KLDQor44KE44G+44Gq44GXLOOCiuOChw0KK+OChOOBvuOBq+OBlyzjgoTjgZnjgb7jgZUNCivjgoTjgb7jgoLjgags44Gq44GK44GTDQor44KE44G+44KC44GoLOOBsuOCjeOBguOBjQ0KK+OChOOBvuOCguOBqCzjgYjjgYTjgZ8NCivjgoTjgb7jgoLjgags44Gb44GE44GTDQor44KE44G+44KC44GoLOOBk+OBhuOBmA0KK+OChOOBvuOCguOBqCzjgoTjgZnjgbLjgo0NCivjgoTjgb7jgoLjgags44GY44KF44KTDQor44KI44GT44GfLOOBguOBpOOChA0KK+OCiOOBk+OBnyzjgYvjgZrjgbLjgo0NCivjgojjgZPjgZ8s44G+44GV44GoDQor44KI44GT44GmLOOBn+OBj+OChA0KK+OCiOOBl+OBiuOBiyzjgZ/jgYvjgZcNCivjgojjgZfjgYrjgYss44KE44GZ44GKDQor44KI44GX44GK44GLLOOBn+OBpOOBmA0KK+OCiOOBl+OBi+OCjyzjgoTjgZnjgbLjgZUNCivjgojjgZfjgYvjgo8s44GN44KH44GTDQor44KI44GX44GgLOOBvuOCiuOBkw0KK+OCiOOBl+OBoCzjgbLjgbXjgb8NCivjgojjgZfjgaAs44GY44KF44KTDQor44KI44GX44GuLOOBquOBiuOBjQ0KK+OCiOOBl+OBvyzjgaHjgYsNCivjgojjgZfjgoDjgoks44GL44Ga44KEDQor44KI44GgLOOCiuOBiw0KK+OCiOOBreOBluOCjyzjgb7jgarjgb8NCivjgorjgoXjgags44GQ44GK44G144GEDQor44GD44KTLOOCiOOBmeOBkQ0KK+OCj+OBi+OBpOOBjSzjgZ/jgaTjgoQNCivjgo/jgY3jgZbjgYss44Go44KC44G144G/DQor44KP44GN44GfLOOBl+OBkuOChuOBjQ0KK+OCj+OBjeOBnyzjgYvjgogNCivjgo/jgY3jgoLjgags44Gb44GE44GE44Gh44KN44GGDQor44KP44GgLOOBn+OBi+OBlw0KK+OCj+OBoCzjgYLjgaTjgZcNCivjgo/jgZ/jgZss44Gy44Gn44GoDQor44KP44Gf44Gq44G5LOOBn+OBj+OChA0KK+OCj+OBn+OBquOBuSzjgorjgofjgbLjgaENCivjgo/jgZ/jgarjgbks44G+44GV44KG44GNDQor44KP44Gf44Gq44G5LOOBmOOCheOCk+OBkw0KK+OCj+OBn+OBquOBuSzjgYLjgYvjga0NCivjgY3jga7jgZfjgZ8s44G/44Gu44KLDQor44GC44GK44GNLOOBvuOBleOChuOBjQ0KK+OChOOBquOBjuOBr+OCiSzjgY/jgavjgbLjgZMNCivjgYLjgb7jgZMs44Gu44KK44Gy44GVDQor44GT44KT44Gp44GGLOOBguOCieOBnw0KK+OBl+OCieOBi+OCjyzjgZHjgYQNCivjgZPjgoTjgb4s44GUDQor44GT44KT44GpLOOBl+OCk+OBmeOBkQ0KK+OCguOCiizjgZfjgpPjgoQNCivjgYrjga4s44KG44GZ44GRDQor44G+44GuLOOBqOOBiuOCiw0KK+OBquOBjOOBrizjgZfjgofjgZMNCivjgZXjgajjgYYs44Gf44GL44GXDQor44G/44KE44GW44GNLOOBguOBjeOBkw0KK+OBiuOBjOOCjyzjgaDjgYQNCivjgY3jgoDjgoks44KE44GZ44Gv44KLDQor44KI44GT44GKLOOBneOBhg0KK+OBhuOBoeOCgOOCiSzjgbLjgo3jgobjgY0NCivjgZTjgZfjgb4s44Gq44GK44GTDQor44GV44GI44GNLOOCiOOBl+OBn+OBiw0KK+OBquOBi+OBmOOBvizjgobjgYbjgZMNCivjgYTjgo/jgb8s44KI44GX44Gy44GTDQor44GI44GSLOOBjeOCiOOBlw0KK+OBhuOCgeOBnuOBrizjgojjgZfjgYoNCivjgZXjgY/jgonjgYQs44GX44GK44KKDQor44KP44Gf44Gq44G5LOOCiOOBhuOBkw0KK+OBquOBjOOBhCzjgZ/jgYvjgobjgY0NCivjgYrjgZ3jgYzjgb8s44G+44GT44GoDQor44GP44KN44GL44KPLOOBqOOBl+OBig0KK+OBn+OBi+OBmeOBiyzjgbLjgafjgojjgZcNCivjgYrjgbDjgZ8s44GC44GNDQor44GX44KJ44GELOOBmeOBv+OBkw0KK+OBvuOBpOOBhuOCiSzjgYjjgooNCivjgarjgYvjgZbjgo8s44GC44KEDQor44G+44Gk44GELOOBguOBjeOCiQ0KK+OBk+OBm+OBjSzjgbLjgafjgajjgZcNCivjgaTjgYvjgaAs44GR44KT44GYDQor44Gm44KJ44GP44KJLOOBoeOBquOBpA0KK+OBq+OBuOOBhCzjgorjgoXjgYTjgaENCivjgYvjgo/jgoDjgoks44G/44GNDQor44Gy44GULOOBsuOCjeOBvw0KK+OBk+OBsOOChOOBlyzjgb/jgbsNCivjgbXjgovjgZ8s44KM44GEDQor44KC44Gh44Ga44GNLOOBi+OBiuOCig0KK+OBiuOBi+OBoCzjgb7jgb8NCivjgZXjgYTjgajjgYYs44G+44KEDQor44GL44KP44Gv44KJLOOBl+OCh+OBlA0KK+OBmeOBmuOBi+OBkSzjgYLjgaTjgbLjgZMNCivjgYTjgajjgYYs44G+44GV44KI44GXDQor44GE44GX44Ga44GLLOOCiOOBl+OBi+OBmg0KK+OBn+OBueOBhCzjgb7jgZXjgbLjgZMNCivjgZTjgags44KG44Gf44GLDQor44GX44KC44GV44GLLOOBvuOBk+OBqA0KK+OBi+OCj+OBhCzjgojjgZfjgbLjgZUNCivjgo/jgZ/jgarjgbks44KG44Gy44GhDQor44GZ44Ga44GNLOOBk+OBhuOBn+OCjeOBhg0KK+OBvuOBpOOChOOBvizjga7jgorjgobjgY0NCivjga/jgoks44KI44GYDQor44Gk44Gw44GNLOOBjeOCiOOBlw0KK+OChOOBmeOBhCzjgZ/jgYvjgobjgY0NCivjgZPjgbDjgoTjgZcs44G+44GV44KG44GNDQor44GK44GL44G5LOOBjeOCiOOBruOCig0KK+OBiuOBjOOCjyzjgZ/jgYvjgobjgY0NCivjgoTjgb7jgZDjgaEs44Gy44KN44KG44GNDQor44G144GY44GL44KPLOOBn+OBpOOBlw0KK+OBhOOBquOBjOOBjSzjgobjgY3jgZMNCivjgaHjgZ4s44KG44GNDQor44Gv44Gq44GgLOOBn+OBj+OChA0KK+OBiuOBkyzjgYLjgaTjgZMNCivjgYrjgY/jgoks44Gy44GV44GoDQor44G+44Gk44GKLOOChOOBmeOBvuOBlQ0KK+OBiOOCk+OBqSzjgYLjgY3jgbLjgo0NCivjgbvjgorjgbks44Go44GK44KLDQor44GL44GkLOOBi+OBmuOBvg0KK+OBiuOBn+OBiyzjgojjgZfjgYvjgZoNCivjgZ/jgYvjga/jgZcs44GE44Gk44G144G/DQor44KA44KJ44KE44G+LOOBsuOCjeOBlw0KK+OCiOOBl+OBiuOBiyzjgorjgofjgbjjgYQNCivjgYvjgYQs44Gb44GE44GE44Gh44KN44GGDQor44Gf44GL44Gv44GXLOOBn+OBi+OChuOBjQ0KK+OBkOOCk+OBkizjgZHjgpPjgZ/jgo3jgYYNCivjgoTjga4s44GV44KG44KKDQor44Gv44KE44GXLOOBl+OCh+OBkw0KK+OBv+OBhuOCiSzjgZXjgajjgZcNCivjgYLjgYrjgoTjgY4s44GR44KT44GYDQor44Gf44GL44GgLOOBsuOBp+OBqOOBlw0KK+OBrOOBvuOBnyzjgajjgZfjgbLjgZMNCivjgYvjgZ/jgYrjgYss44GY44KF44KT44KEDQor44GX44G/44GaLOOCguOBqOOBguOBjQ0KK+OBl+OBv+OBmizjgZnjgb/jgbLjgo0NCivjgb7jgaTjgoDjgoks44Gk44Go44KADQor44GK44KK44GoLOOBvuOCiuOBkw0KK+OBk+OBn+OBqyzjgoLjgajjgZgNCivjgYrjga/jgZcs44Gm44Gk44Gy44KNDQor44GL44KT44Gb44GNLOOBvuOBleOBruOBtg0KK+OBjeOBn+OCgOOCiSzjgajjgZfjgoQNCivjgZXjgY/jgZ8s44KG44GG44GTDQor44KI44GX44GgLOOBleOChuOCig0KK+OBk+OBr+OCiSzjgojjgZfjgYgNCivjgYMs44KP44GL44GTDQor44GE44Gv44KJLOOBn+OBvuOCiA0KK+OBpOOBmOOBhuOCiSzjgZ/jgYQNCivjgarjgYvjgoDjgoks44GC44KE44GTDQor44GC44GK44GNLOOBvuOBquOBvw0KK+OBguOBiuOChOOBvizjgbLjgo3jgZ/jgYsNCivjgYLjgYvjgYTjgZEs44Go44GP44Gy44GTDQor44GC44GL44GkLOOBkeOCk+OBmA0KK+OBguOBjeOBr+OCiSzjgYvjgYrjgosNCivjgYLjgY3jgoLjgags44GV44Gh44GTDQor44GC44GV44GP44KJLOOChuOBhuOBkw0KK+OBguOBleOBrizjgZ/jgo3jgYYNCivjgYLjgbPjgoss44GV44Go44GXDQor44GC44G5LOOBteOBv+OBsuOBkw0KK+OBguOBuSzjgorjgocNCivjgYLjgbks44GR44GE44GTDQor44GC44G544GL44KPLOOBk+OBhuOBn+OCjeOBhg0KK+OBguOCieOBhCzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgYLjgonjgYQs44Gf44GL44GXDQor44GC44KJ44GL44KPLOOBqOOBiuOCiw0KK+OBguOCieOBjSzjga/jgovjgaoNCivjgYLjgonjgY0s44GR44GE44GTDQor44GC44KK44GILOOBi+OBmuOBsuOCjQ0KK+OBguOCk+OBqeOBhizjgaTjgojjgZcNCivjgYTjgYTjgaAs44GC44GN44GTDQor44GE44GR44GgLOOBoOOBhOOBmeOBkQ0KK+OBhOOBkeOBoCzjgbLjgo3jgb8NCivjgYTjgZHjgaAs44GY44KF44KTDQor44GE44GX44GELOOBl+OCheOCk+OBmeOBkQ0KK+OBhOOBl+OBhCzjgb7jgooNCivjgYTjgZfjgYzjgY0s44Gf44GL44GXDQor44GE44GX44GL44KPLOOCiuOChw0KK+OBhOOBl+OBi+OCjyzjgYLjgYTjgZMNCivjgYTjgZfjgZbjgo8s44Gu44KK44Gf44GLDQor44GE44GX44Ga44G/LOOChuOBjQ0KK+OBhOOBl+OBnOOBjSzjgZ/jgY/jgoQNCivjgYTjgZfjgaAs44Go44KC44GTDQor44GE44GX44GgLOOBruOCiuOBsuOBqA0KK+OBhOOBl+OBoCzjgb7jgZXjgajjgZcNCivjgYTjgZfjgaUs44Gy44KN44GNDQor44GE44GX44Gv44KJLOOBn+OBi+OBguOBjQ0KK+OBhOOBl+OBvuOCiyzjgbLjgo3jgZcNCivjgYTjgZ/jgass44G+44GV44G144G/DQor44GE44Gf44Gv44KJLOOBkeOCk+OBn+OCjeOBhg0KK+OBhOOBoeOBvizjgZjjgoXjgavjgaENCivjgYTjgajjgYYs44GX44KF44KT44GZ44GRDQor44GE44Go44GGLOOBn+OBkeOBlw0KK+OBhOOBqOOBhizjgarjgYrjgY0NCivjgYTjgajjgYYs44Gu44G244KE44GZDQor44GE44Go44GGLOOBr+OChOOBqA0KK+OBhOOBqOOBhizjgb/jgoTjgZMNCivjgYTjgajjgYYs44KG44GNDQor44GE44Go44GGLOOChuOBv+OBkw0KK+OBhOOBquOBjOOBjSzjgabjgovjgY0NCivjgYTjgarjgb8s44GX44KF44G444GEDQor44GE44GuLOOBoOOBhOOBmeOBkQ0KK+OBhOOBruOBhuOBiCzjgobjgYbjgZgNCivjgYTjga7jgYbjgYgs44KM44GE44GTDQor44GE44G+44GKLOOCiOOBl+OBn+OBiw0KK+OBhOOBvuOBoCzjgZ/jgYvjgZcNCivjgYTjgo/jgYvjgb8s44G144G/44Gq44GKDQor44GE44KP44GP44KJLOOBl+OCheOBsuOBoQ0KK+OBhOOCj+OBluOBjSzjgZ/jgYvjgZcNCivjgYTjgo/jgZ8s44Gy44GV44Gk44GQDQor44GE44KP44KC44GoLOOBquOBiuOBqA0KK+OBhuOBiOOBmeOBjizjgobjgYbjgZMNCivjgYbjgYjjgaAs44KG44GG44GE44Gh44KN44GGDQor44GG44GI44Gf44GLLOOBsuOCjeOBi+OBmg0KK+OBhuOBiOOBoSzjgYLjgY3jgZMNCivjgYbjgYjjga4s44GX44Ga44GTDQor44Gy44KK44KFLOOBiuOBjQ0KK+OBhuOBiOOCgOOCiSzjgaTjgojjgZcNCivjgYbjgaHjgaAs44Gy44KN44KG44GNDQor44GG44Gh44GgLOOBl+OBkuOBjQ0KK+OBhuOBoeOBr+OBlyzjgozjgYoNCivjgYbjgaHjgoTjgb4s44G/44GNDQor44GG44KB44Gv44KJLOOBvuOBleOBjQ0KK+OBhuOCiuOBn+OBqyzjgZ/jgYvjgZcNCivjgYjjgbks44GY44KF44KT44G644GEDQor44GK44GE44GL44KPLOOBkeOCk+OBhOOBoQ0KK+OBiuOBiuOBhCzjgobjgZnjgZENCivjgYrjgYrjgYQs44KG44Gf44GLDQor44GK44GK44GE44GXLOOBsuOCjeOBn+OBiw0KK+OBiuOBhuOBoSzjgZPjgYbjgZgNCivjgYrjgYgs44Gy44KN44GNDQor44GK44GK44GK44GLLOOBmOOCheOCk+OBkw0KK+OBiuOBiuOBi+OCjyzjgb7jgZXjgoQNCivjgYrjgYrjgY/jgbws44GX44KH44GYDQor44GK44GK44GP44G+LOOBvuOCig0KK+OBiuOBiuOBnyzjgZHjgpPjgZgNCivjgYrjgZ/jgass44GT44GG44GYDQor44GK44GK44GkLOOBvuOBleOBsuOCjQ0KK+OBiuOBiuOBpCzjgYLjgoQNCivjgYrjgYrjgaTjgYss44GN44GE44GhDQor44GK44GK44Gk44GLLOOBlA0KK+OBiuOBiuOBpOOBiyzjgozjgb8NCivjgYrjgYrjgaTjgYss44Gq44Gk44GTDQor44GK44GK44Gk44G8LOOBvuOBmeOBvw0KK+OBiuOBiuOBr+OBnyzjgobjgbLjgoMNCivjgYrjgYrjgb7jgZUs44GR44KT44Gf44KN44GGDQor44GK44GK44KELOOBqOOCguOChuOBjQ0KK+OBiuOChOOBvizjgYvjgojjgZMNCivjgYrjgYss44G+44GV44Gy44GTDQor44GK44GL44GY44G+LOOBkeOCk+OBl+OCkw0KK+OBiuOBi+OBoCzjgaDjgYTjgZnjgZENCivjgYrjgYvjgaAs44G+44GV44Gy44KNDQor44GK44GL44GgLOOBvuOBleOChA0KK+OBiuOBi+OBoCzjgorjgocNCivjgYrjgYvjgaAs44Gu44KK44Gy44KNDQor44GK44GL44Gv44GfLOOBruOBtuOBsuOCjQ0KK+OBiuOBi+OBuSzjgZfjgZrjgYsNCivjgYrjgYvjgoLjgags44Gh44GIDQor44GK44GL44KC44GoLOOBpuOBpOOChA0KK+OBiuOBi+OCguOBqCzjgZjjgoXjgpMNCivjgYrjgYzjgo8s44Gm44KL44Gy44KNDQor44GK44GM44KPLOOBguOBjeOCiQ0KK+OBiuOBj+OBoCzjgZHjgYQNCivjgYrjgY/jgags44G+44GV44G/44GkDQor44GK44GP44Gq44GLLOOBguOBjeOBkw0KK+OBiuOBkOOCiSzjgZ/jgaTjgYoNCivjgYrjgZbjgY0s44GR44GE44GYDQor44GK44GV44GgLOOBn+OBhOOBmeOBkQ0KK+OBiuOBluOCjyzjgZ/jgo3jgYYNCivjgYrjgZjjgb4s44G/44Gk44Gu44G2DQor44GK44GY44G+LOOBn+OBpOOChA0KK+OBiuOBsOOCiSzjgaHjgbLjgo0NCivjgYvjgYTjgajjgYYs44Gu44KK44KI44GXDQor44GL44GN44GP44KJLOOBleOBqOOBlw0KK+OBi+OBjeOCguOBqCzjgovjgb8NCivjgYvjgY8s44Gf44Gk44KEDQor44GL44GS44KE44G+LOOChOOBmeOBvuOBlQ0KK+OBi+OBmOOBquOBjCzjgbLjgZXjgZcNCivjgYvjgZfjgb4s44KI44GX44Gu44KKDQor44GL44Gf44GK44GLLOOBsuOBp+OBjQ0KK+OBi+OBn+OBjuOCiizjgZHjgYTjgZMNCivjgYvjgZ/jgoTjgb4s44Gg44GE44GZ44GRDQor44GL44GpLOOBk+OBuOOBhA0KK+OBi+OBqOOBhizjgZXjgaENCivjgYvjgajjgYYs44Gb44GE44GXDQor44GL44Go44GGLOOBn+OCjeOBhg0KK+OBi+OBqOOBhizjga7jgbbjgYLjgY0NCivjgYvjgajjgYYs44Gy44KN44GXDQor44GL44Go44GGLOOBsuOCjeOBvw0KK+OBi+OBqOOBhizjgb7jgZPjgagNCivjgYvjgajjgYYs44G+44GV44GXDQor44GL44Go44GGLOOChuOCiuOBkw0KK+OBi+OBqOOBhizjgZ/jgYvjgZcNCivjgYvjgarjgoLjgags44G+44GV44KG44GNDQor44GL44Gq44KELOOBpuOBpOOChA0KK+OBi+OBreOBkyzjgZPjgYbjgZgNCivjgYvjga3jgoLjgoos44Gf44Gg44Gy44GVDQor44GL44KPLOOChuOBn+OBiw0KK+OBi+OCj+OBhCzjgojjgZfjgbLjgZMNCivjgYvjgo/jgYQs44Gf44GL44Gy44KNDQor44GL44KP44GL44G/LOOBquOBpOOBkw0KK+OBi+OCj+OBkOOBoSzjgb7jgbLjgagNCivjgYvjgo/jgZDjgaEs44KG44G/44GTDQor44GL44KP44GQ44GhLOOCiuOBpOOBkw0KK+OBi+OCj+OBkOOBoSzjgorjgocNCivjgYvjgo/jgZDjgaEs44G144G/DQor44GL44KP44GU44GE44GXLOOCjOOBhOOBkw0KK+OBi+OCj+OBl+OBvizjgZnjgb/jgowNCivjgYvjgo/jgaos44Gy44KN44GXDQor44GL44KP44Gu44G5LOOBpuOBpOOChA0KK+OBi+OCk+OBrizjgZXjgajjgZcNCivjgY3jgY/jgaEs44KP44Gf44KLDQor44GN44GXLOOBk+OBhuOBhOOBoeOCjQ0KK+OBjeOBl+OCguOBqCzjgYLjgY3jgZMNCivjgY3jgZfjgo0s44GX44KT44KEDQor44GN44Gf44GKLOOCiOOBl+OBi+OBmg0KK+OBjeOBn+OBr+OBvizjgoYNCivjgY3jgZ/jgoDjgoks44KI44GX44GL44GaDQor44GN44Gp44GT44KNLOOBk+OBhuOBmA0KK+OBjeOCgOOCiSzjga/jgovjgZMNCivjgY3jgoDjgoks44G+44GV44GK44G/DQor44GN44KA44KJLOOBoeOBi+OBkw0KK+OBjeOCiuOBguOBkSzjgZfjgoXjgpPjgZnjgZENCivjgY/jgY3jgoLjgags44Go44GX44Gy44GTDQor44GP44G8LOOBsuOCjeOBjQ0KK+OBj+OBvOOBnyzjgZnjgZnjgoANCivjgY/jgb7jgY/jgoks44Gf44GL44KG44GNDQor44GP44G+44GgLOOBlOOCjQ0KK+OBj+OBvuOCguOBqCzjgZ/jgZHjgZcNCivjgY/jgoEs44KG44GN44GTDQor44GP44KJ44KELOOChOOBmeOBruOBtg0KK+OBj+OCiuOCj+OBjSzjga7jgZ7jgb8NCivjgY/jgo/jgbDjgoks44KM44GE44GTDQor44GULOOBn+OBkeOBlw0KK+OBk+OBhOOBkSzjgoTjgZnjgZcNCivjgZPjgYTjgZEs44GX44KTDQor44GT44GV44GLLOOBn+OBkeOBruOCig0KK+OBk+OBoCzjgojjgZfjga7jgooNCivjgZPjgYws44GC44Gk44GXDQor44GT44GP44G8LOOBk+OBhuOBhOOBoQ0KK+OBk+OBj+OCiSzjgb7jgZPjgagNCivjgZPjgZQs44GC44GE44GTDQor44GT44GV44GNLOOBiOOBhOOBleOBjw0KK+OBk+OBmOOBvizjgajjgZfjgY0NCivjgZPjgafjgoks44GP44Gr44KG44GNDQor44GU44GoLOOBvuOChuOBvw0KK+OBlOOBqCzjgorjgYsNCivjgZTjgags44KG44GZ44GRDQor44GT44Gv44GfLOOBsuOCjeOBguOBjQ0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgbLjgagNCivjgZPjgbDjgoTjgZcs44GT44G444GEDQor44GT44G+44Gk44Gw44KJLOOBvuOBjeOBkw0KK+OBk+OBv+OChCzjgobjgYvjgooNCivjgZPjgb/jgoTjgb4s44Gm44KL44GKDQor44GT44KE44Gq44GOLOOBleOBqOOCiw0KK+OBk+OChOOBvizjgozjgYrjgaoNCivjgZPjgpPjgaks44KA44Gk44G/DQor44GT44KT44GuLOOBguOChOOBkw0KK+OBleOBhOOBqOOBhizjgZPjgYbjgYTjgaENCivjgZXjgYTjgajjgYYs44KC44KC44GIDQor44GV44GE44Go44GGLOOCiuOBiA0KK+OBleOBhOOBqOOBhizjgorjgoXjgZgNCivjgZXjgYTjgajjgYYs44KK44KH44GG44GZ44GRDQor44GV44GL44GELOOBsuOCjeOBkw0KK+OBleOBi+OBrizjgYvjgZrjgagNCivjgZXjgYvjgoLjgags44Gg44GE44GZ44GRDQor44GV44GL44KC44GoLOOBkeOBhOOBkw0KK+OBleOBj+OCieOBhCzjgYvjgZrjga7jgooNCivjgZXjgZXjgY0s44Gh44KI44G/DQor44GV44GV44GNLOOBqOOBiuOCiw0KK+OBleOBleOBjSzjgarjgbvjgZMNCivjgZXjgZXjgY0s44G/44G7DQor44GV44GV44GNLOOBqOOBj+OBkw0KK+OBleOBleOBrizjgb7jgZXjgojjgZcNCivjgZXjgaDjgoLjgags44GX44KT44KEDQor44GV44Go44GGLOOBn+OBi+OBkw0KK+OBleOBqOOBhizjga7jgbbjgYsNCivjgZXjgajjgYYs44Gu44G244G7DQor44GV44Go44GGLOOBsuOCjeOBsuOBpw0KK+OBleOBqOOBhizjgZfjgZLjgosNCivjgZXjgarjgaAs44GR44KT44GE44GhDQor44GV44Gt44GX44GSLOOBkeOCk+OBlA0KK+OBleOBrizjgYLjgYQNCivjgZfjgZLjgajjgb8s44KK44KH44GZ44GRDQor44GX44Gu44Gv44KJLOOChuOBjeOBkw0KK+OBl+OBsOOBi+OCjyzjgo/jgZ/jgosNCivjgZfjgbDjga4s44Gh44GL44KJDQor44GX44G+44GgLOOBvuOBleOBteOBvw0KK+OBl+OBvuOBoCzjgojjgZfjgZMNCivjgZfjgb/jgZos44Gf44GR44KG44GNDQor44GX44KA44KJLOOChuOBjeOBig0KK+OBl+OCgOOCiSzjgZXjgY0NCivjgZfjgoLjgYvjgo8s44KE44GZ44Gy44KNDQor44GX44KC44G144GYLOOBguOBi+OBjg0KK+OBl+OCguOChOOBvizjgZLjgpPjgZMNCivjgZfjgocs44Gy44KN44GNDQor44GX44KJ44GELOOChuOBsuOBoeOCjQ0KK+OBl+OCieOBjCzjgZ/jgYvjgZcNCivjgZfjgonjgYvjgo8s44Gf44GL44Gy44KNDQor44GX44KJ44GZLOOBqOOCguOBkw0KK+OBl+OCjyzjgb7jgZXjgobjgY0NCivjgZfjgpPjgZEs44Go44GX44Gu44G2DQor44GX44KT44GpLOOBi+OBmuOBsuOBkw0KK+OBmeOBjOOBr+OCiSzjgZXjgajjgZMNCivjgZnjgY7jgYbjgaEs44KC44KK44Gy44GTDQor44GZ44GO44GG44KJLOOBkeOCk+OBmOOCjQ0KK+OBmeOBjuOBleOCjyzjgorjgocNCivjgZnjgY7jga/jgoks44Gf44GR44GXDQor44GZ44GO44KC44GoLOOBn+OBpOOCjQ0KK+OBmeOBjuOChOOBvizjgZ/jgYvjgYoNCivjgZnjgZrjgY0s44Gf44GL44Gu44KKDQor44GZ44Ga44GNLOOBn+OBkeOBlw0KK+OBmeOBmuOBjSzjgajjgoLjgoQNCivjgZnjgZrjgY0s44Gu44G244Gy44GTDQor44GZ44Ga44GNLOOBsuOBp+OBi+OBmg0KK+OBmeOBmuOBjSzjgbLjgo3jgobjgY0NCivjgZnjgZrjgY0s44KK44GIDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBmeOBoCzjgoTjgZnjgZMNCivjgZnjgags44G/44KG44GNDQor44GZ44G/44GgLOOBkeOCk+OBhOOBoQ0KK+OBm+OBjSzjgarjgYTjgZfjgpMNCivjgZvjgY0s44Go44KC44GL44GaDQor44Gb44KT44GgLOOBsuOCjeOBi+OBmg0KK+OBneOCgeOBv+OChCzjgZfjgofjgZ/jgo3jgYYNCivjgZ3jgoQs44Gh44GC44GNDQor44Gg44GE44G+44KLLOOCiOOBhuOBkw0KK+OBn+OBi+OBiizjgbLjgo3jga7jgbYNCivjgZ/jgYvjgY4s44Gm44KL44KG44GNDQor44Gf44GL44GW44KPLOOBn+OBpOOChA0KK+OBn+OBi+OBmyzjgb7jgZXjgobjgY0NCivjgZ/jgYvjga0s44GX44KT44GE44GhDQor44Gf44GL44Gv44GXLOOBn+OBhOOBmeOBkQ0KK+OBn+OBi+OBr+OBlyzjgb7jgZPjgagNCivjgZ/jgYvjga/jgZcs44G+44GV44KEDQor44Gf44GL44Gv44GXLOOCiuOCheOBnw0KK+OBn+OBi+OBr+OBlyzjga7jgorjgZMNCivjgZ/jgYvjgoTjgb4s44G/44GL44GTDQor44Gf44GN44GG44GhLOOCiuOCk+OChA0KK+OBn+OBjeOBi+OCjyzjgabjgaTjgoQNCivjgZ/jgY3jgZDjgaEs44GC44GN44Gy44KNDQor44Gf44GN44GW44KPLOOBguOBpOOBquOCig0KK+OBn+OBjeOBluOCjyzjgYvjgZrjgY0NCivjgZ/jgY3jgZbjgo8s44KG44GN44GTDQor44Gf44GN44GfLOOBoeOBiA0KK+OBn+OBkOOBoSzjgbLjgo3jgY0NCivjgZ/jgZHjgYQs44GC44GN44KJDQor44Gf44GR44GG44GhLOOBr+OBquOBiA0KK+OBn+OBkeOBoCzjgYvjgogNCivjgZ/jgZHjga/jgoks44Gg44KTDQor44Gf44Gm44GuLOOBkeOCk+OBmA0KK+OBn+OBquOBiyzjgZXjgajjgZcNCivjgZ/jgarjgYss44GY44KF44KT44GTDQor44Gf44Gq44GLLOOBn+OBi+OBlw0KK+OBn+OBquOBiyzjgbLjgo3jgarjgYoNCivjgZ/jgarjgYss44Gy44KN44KG44GNDQor44Gf44Gq44GLLOOBvuOBquOBtg0KK+OBn+OBquOBiyzjgobjgY3jgYoNCivjgZ/jgarjgYss44KK44GIDQor44Gf44Gq44GLLOOBguOBjeOCiQ0KK+OBn+OBquOBuSzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgass44GV44Go44GXDQor44Gf44Gr44GL44KPLOOBk+OBhuOBmOOCjQ0KK+OBn+OBq+OBkOOBoSzjgaHjgbLjgo0NCivjgZ/jgavjgarjgYss44GC44GN44KJDQor44Gf44Gr44KC44GoLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBrOOBvizjgY/jgavjgYoNCivjgZ/jgbDjgZ8s44GX44KT44GUDQor44Gf44Gw44GfLOOChuOBsuOBoeOCjQ0KK+OBn+OBsOOBnyzjgojjgYbjgZMNCivjgZ/jgbDjgZ8s44Gq44GK44Gf44GLDQor44Gf44KA44KJLOOBoOOBhOOBmeOBkQ0KK+OBn+OCi+OBjSzjgZnjgZnjgoANCivjgZ/jgpPjgZgs44GC44GN44KJDQor44Gh44GwLOOBquOBig0KK+OBoeOBsCzjgZvjgYTjgZgNCivjgaTjgYvjgaAs44Go44GK44KLDQor44Gk44GN44KC44GoLOOBquOBiuOBkw0KK+OBpOOBmCzjgYjjgorjgZMNCivjgaTjgaAs44G/44Gk44GIDQor44Gk44Gh44KC44GoLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBpOOBpOOBvyzjgaHjgYvjgogNCivjgaTjgaTjgb8s44KI44GX44Gk44GQDQor44Gk44G844GfLOOBkeOBpA0KK+OBpuOBhCzjgbLjgo3jgZ/jgYsNCivjgabjgonjgYvjgaks44Gh44Ga44KLDQor44G/44Gu44GG44KJLOOBteOBv+OBsuOBkw0KK+OBpuOCi+OBhCzjgZjjgoXjgpMNCivjganjgYQs44GTDQor44GoLOOCiOOBmeOBkQ0KK+OBqOOBi+OBhOOCiuOCkyzjgZHjgYTjgZ/jgo3jgYYNCivjganjgoHjgpMs44GT44GG44GE44GhDQor44Go44GL44GELOOChuOBjQ0KK+OBqOOBj+OBquOBjCzjgY3jgojjga7jgooNCivjgajjgY/jgoTjgb4s44GL44Ga44KG44GNDQor44Go44GX44G+LOOBsuOCjeOBi+OBmg0KK+OBqeOBoSzjgorjgYgNCivjgajjga7jgYQs44GC44Gk44GXDQor44Go44Gu44KA44KJLOOBsuOCjeOBlw0KK+OBqOOBv+OBnyzjgY3jgb/jgbLjgZMNCivjgajjgoLjga4s44GX44KT44GUDQor44Go44KK44GELOOBqOOCguOBkw0KK+OBquOBjOOBhCzjgZjjgoXjgavjgaENCivjgarjgYvjgYzjgo8s44G+44GV44KEDQor44Gq44GL44GM44KPLOOCj+OBi+OBvw0KK+OBquOBi+OBjOOCjyzjgb/jgaTjgYLjgY0NCivjgarjgYvjgZbjgags44G+44Gq44G2DQor44Gq44GL44GX44G+LOOBvuOCig0KK+OBquOBjOOBnyzjgZPjgYbjgZ/jgo3jgYYNCivjgarjgYvjga4s44G+44GN44GTDQor44Gq44GM44GuLOOChuOBvw0KK+OBquOBjOOBrizjgYjjgaTjgZMNCivjgarjgYvjgoDjgoks44GL44GK44KKDQor44Gq44GL44KA44KJLOOBjeOBv+OBn+OBiw0KK+OBquOBi+OCgOOCiSzjgZ/jgYTjgYwNCivjgarjgYvjgoDjgoks44G/44KP44GTDQor44Gq44GL44KC44KKLOOBqOOCguOChuOBjQ0KK+OBquOBi+OChOOBvizjgYLjgY3jgZMNCivjgarjgovjgZss44KK44GI44GTDQor44Gq44KT44GULOOBj+OBq+OBig0KK+OBquOCk+OBsCzjgbLjgafjgYvjgZoNCivjgarjgpPjgbAs44G+44KC44KLDQor44Gr44GE44G/LOOBqOOCguOBruOCig0KK+OBq+OBl+OBiizjgYTjgY/jgb4NCivjgavjgZfjgYrjgYss44KI44GX44Gu44KKDQor44Gr44GX44GK44GLLOOBoOOBhOOBmeOBkQ0KK+OBq+OBl+OBleOBiyzjgoLjgajjga7jgbYNCivjgavjgZfjgZbjgY0s44Gh44GL44GTDQor44Gr44GX44GW44KPLOOChuOBiw0KK+OBq+OBl+OBrizjgYvjgaoNCivjgazjgb7jgZ/jgY0s44KK44KH44GfDQor44Gt44GO44GXLOOCiuOChw0KK+OBreOChOOBvizjgojjgYbjgZMNCivjga7jgaAs44GV44Go44GXDQor44Gu44GQ44GhLOOBn+OBkeOBlw0KK+OBruOBkOOBoSzjgabjgaTjgoQNCivjga7jgZDjgaEs44Go44GP44GTDQor44Gu44GQ44GhLOOBqOOCguOBsuOCjQ0KK+OBruOBluOBjSzjgZ/jgYvjgZcNCivjga7jgaAs44G+44GV44GNDQor44Gu44G844KKLOOBkeOCkw0KK+OBruOCgOOCiSzjgZPjgYbjgZgNCivjga7jgoDjgoks44GT44G444GEDQor44Gu44KA44KJLOOCiOOBmA0KK+OBr+OBjuOCj+OCiSzjgZfjgpPjgYTjgaENCivjga/jgZfjgZDjgaEs44Go44KC44GTDQor44Gv44GX44KC44GoLOOBvuOBvw0KK+OBvuOBjSzjgZ/jgY/jgb4NCivjga/jgZvjgYzjgo8s44Gq44GK44GNDQor44Gv44Gb44GM44KPLOOBleOBqOOBlw0KK+OBr+OBoCzjgoLjgajjgY0NCivjga/jgaPjgajjgoos44KK44GLDQor44Gv44Gj44Go44KKLOOBn+OBkeOBlw0KK+OBsOOBsCzjgaHjgYLjgY0NCivjgbDjgbAs44Gu44KK44GTDQor44Gw44GwLOOCiOOBmeOBkQ0KK+OBsOOBsCzjgZHjgYTjgZgNCivjga/jgb7jgaAs44GX44KT44GN44GhDQor44Gv44G+44GgLOOBoOOBhOOBmeOBkQ0KK+OBr+OBvuOBoCzjgbLjgo3jgZMNCivjga/jgb7jgaAs44KI44GX44Gy44KNDQor44Gv44G+44GuLOOBl+OCheOBsuOBoQ0KK+OBr+OChOOBlyzjgb/jgZXjgZMNCivjgbLjgZDjgaEs44GR44KT44GYDQor44Gy44GV44Gk44GtLOOBl+OCh+OBn+OCjeOBhg0KK+OBsuOBl+OBrOOBvizjgajjgZfjgbLjgo0NCivjgbPjgofjgaks44Gf44GL44G144G/DQor44Gy44KJ44GELOOBi+OBmuOBqA0KK+OBsuOCieOBiuOBiyzjgZ/jgZHjgYoNCivjgbLjgonjgYvjgo8s44GK44GV44KADQor44Gy44KJ44GV44KPLOOBguOChOOBkw0KK+OBsuOCieOBl+OBvizjgobjgbLjgaENCivjgbLjgonjgZ8s44G+44KG44GTDQor44Gy44KJ44GuLOOBvuOBleOBjQ0KK+OBsuOCi+OBvizjgZHjgpPjgZgNCivjgbLjgo3jgZss44GX44KT44GE44Gh44KN44GGDQor44Gy44KN44GbLOOCiuOBi+OBkw0KK+OBsuOCjeOBnyzjgY/jgb/jgZMNCivjgbXjgY/jgYQs44Gg44GE44GYDQor44G144GP44GgLOOCiuOBlQ0KK+OBteOBj+OBsCzjgbXjgb/jgbLjgo0NCivjgbXjgY/jgoDjgoks44G+44GV44KG44GNDQor44G144GP44KC44GoLOOBguOBjeOBruOCig0KK+OBteOBmOOBhCzjgZPjgY0NCivjgbXjgZjjgYQs44G+44GT44GoDQor44G144GY44GELOOBguOBpOOBlw0KK+OBteOBmOOBiOOBoCzjgbLjgo3jgZMNCivjgbXjgZjjgZ8s44G+44GV44GL44GaDQor44G144GY44GfLOOBv+OBjQ0KK+OBteOBmOOBpCzjgajjgoLjgbLjgo0NCivjgbXjgZjjga4s44Gf44GP44GYDQor44G144GY44KC44GoLOOBmOOCjQ0KK+OBteOBmOOCj+OCiSzjgb7jgb/jgZMNCivjgbXjgZjjgo/jgoks44KE44KI44GEDQor44G144GY44KP44KJLOOChuOBsuOBoQ0KK+OBteOCi+OBi+OCjyzjgbLjgafjgY0NCivjgbvjgZjjgocs44GL44Gk44KI44GXDQor44G744GX44GuLOOBsuOCjeOBlw0KK+OBu+OBneOBi+OCjyzjgYLjgZrjgZUNCivjgbvjgorjgYvjgo8s44Gf44GL44GXDQor44G744KT44GULOOBi+OBquOCgQ0KK+OBvuOBiOOBoCzjgobjgb/jgZMNCivjgb7jgYrjgYss44Gg44GE44GZ44GRDQor44G+44GZ44G244GhLOOBkeOCkw0KK+OBvuOBmeOBv+OBpCzjgobjgY0NCivjgb7jgaTjgYQs44G/44KPDQor44G+44Gk44GKLOOBsuOBleOBi+OBmg0KK+OBvuOBpOOBiuOBiyzjgbLjgafjgYvjgZoNCivjgb7jgaTjgYrjgYss44KG44GN44GTDQor44G+44Gk44GgLOOBn+OBkeOBlw0KK+OBvuOBpOOBsOOCiSzjgZ/jgYvjgbsNCivjgo/jgZ/jgarjgbks44GV44Go44GTDQor44G+44Gk44KE44G+LOOBn+OBj+OBqA0KK+OBvuOBpOOChOOBvizjgorjgaoNCivjgb7jgaTjgoTjgb4s44GP44G/DQor44G+44Go44GwLOOCiuOChw0KK+OBv+OBhuOCiSzjgb7jgZXjga7jgooNCivjgb/jgaTjgY4s44KA44Gt44Go44KCDQor44G/44GoLOOBpuOCi+OBsuOBkw0KK+OBv+OBruOBhuOCiSzjgZfjgoXjgZgNCivjgb/jgoQs44KI44GX44GC44GNDQor44G/44KE44GRLOOBguOBpOOBlw0KK+OBv+OChOOBl+OBnyzjgaTjgajjgoANCivjgb/jgoTjgZfjgZ8s44Gk44KI44GXDQor44G/44KE44GfLOOBjeOCh+OBuOOBhA0KK+OBv+OChOOCguOBqCzjgZHjgpPjgZ/jgo3jgYYNCivjgb/jgoTjgoLjgags44Gy44Gn44Gu44KKDQor44G/44KE44KC44GoLOOBjeOCh+OBmeOBkQ0KK+OCgOOBj+OBoCzjgZXjgaHjgZMNCivjgoDjgZfjgYss44KK44KHDQor44KA44GoLOOBguOBjeOBkw0KK+OCgOOCieOBi+OBvyzjgaDjgYTjgZnjgZENCivjgoDjgonjgYvjgb8s44Gf44GR44GXDQor44KA44KJ44GL44G/LOOBv+OBpOOBpuOCiw0KK+OCgOOCieOBi+OBvyzjgojjgZfjgY0NCivjgoDjgonjgZ/jgass44Go44KC44Gy44KNDQor44KA44KJ44G+44GkLOOBvuOBleOBjQ0KK+OCgOOCieOChOOBvizjgZ/jgZHjgZcNCivjgoLjgaHjgZrjgY0s44GX44KF44Gy44GhDQor44KC44KK44GQ44GhLOOChOOBmeOBsuOBlQ0KK+OCguOCiuOBnyzjgYLjgY3jgokNCivjgoLjgorjgbDjgoTjgZcs44Gy44Gn44G+44GVDQor44KC44KN44GoLOOBguOBhA0KK+OChOOBiOOBjOOBlyzjgobjgY3jgYoNCivjgoTjgYrjgoTjgb4s44GC44GN44Gy44KNDQor44KE44GM44G/LOOBn+OBpOOChA0KK+OChOOBjizjgY/jgavjgZMNCivjgoTjgZDjgoks44G+44GV44Gy44KNDQor44KE44GZ44GT44GhLOOBqOOCguOBguOCig0KK+OChOOBmeOBoCzjgobjgY3jgZMNCivjgoTjgZnjgaAs44GC44GN44KJDQor44KE44G+44GQ44GhLOOChuOBiw0KK+OChOOBvuOBkOOBoSzjgYvjgarjgZMNCivjgoTjgb7jgaAs44Gf44Gk44Gy44KNDQor44KE44G+44GgLOOBsuOBp+OBpOOBkA0KK+OChOOBvuOBoCzjgoLjgajjgbLjgo0NCivjgoTjgb7jgb/jgaEs44G+44GV44GTDQor44KE44G+44KC44GoLOOCiOOBl+OBguOBjQ0KK+OChOOBvuOCguOBqCzjgajjgZfjgbLjgZMNCivjgobjgY0s44G/44GV44GoDQor44KG44G/44GwLOOBvuOBvw0KK+OChuOCiSzjgZPjgoHjgYQNCivjgojjgZPjgZnjgYss44Gy44KN44Gf44GkDQor44KI44GT44GfLOOBsuOBp+OChuOBjQ0KK+OCiOOBk+OChOOBvizjgZLjgpPjgZ8NCivjgojjgZfjgYrjgYss44KI44GX44Gy44KNDQor44KI44GX44GK44GLLOOBkeOBhOOBmA0KK+OCiOOBl+OBluOCjyzjgZfjgpPjgZgNCivjgojjgZfjgaAs44Gu44G844KLDQor44KI44GX44GgLOOChuOBmeOBkQ0KK+OCiOOBl+OBoCzjga7jgorjgZMNCivjgojjgZfjga4s44KG44GZ44GRDQor44KI44GX44KA44KJLOOBl+OCh+OBl+OCkw0KK+OCiuOChSzjgo/jgYTjgZHjgpMNCivjgo3jgY8s44G/44Ga44G7DQor44GV44GL44KC44GoLOOBguOBjeOCiQ0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgobjgY0NCivjgo/jgZ/jgarjgbks44GY44KF44KT44GTDQor44KP44Gf44Gq44G5LOOBsuOCjeOBvw0KK+OCj+OBn+OBquOBuSzjgb7jgb/jgZMNCivjgo/jgZ/jgarjgbks44GR44GE44GE44GhDQor44KP44KJ44GzLOOBkeOCk+OBhOOBoQ0KK+OBruOBluOCjyzjga/jgovjga7jgbYNCivjgY/jgbws44GC44GEDQor44KI44GX44KC44GoLOOBguOChOOBkw0KK+OChOOBvuOCguOBqCzjgarjgYrjgZMNCivjgoTjgb7jgoLjgags44GL44Ga44Gy44KNDQor44Gy44KN44GV44KPLOOChuOBhuOBkw0KK+OBv+OBsuOCiSzjgb/jgaTjgosNCivjgYrjga4s44GC44GL44KKDQor44GK44GgLOOBn+OBi+OBlw0KK+OBiuOBsOOBn+OBkSzjgYvjgZrjgb8NCivjgYvjganjgYgs44KG44GG44GTDQor44Gr44GX44GgLOOBiOOBhOOBmA0KK+OBvuOBpOOCguOBqCzjgYLjgY3jgZMNCivjgb/jgY7jgZ8s44GR44GE44GTDQor44G/44KE44KC44KKLOOCjOOBhOOBqg0KK+OChOOBvuOBl+OBnyzjgobjgbXjgZMNCivjgoTjgb7jgaAs44KGDQor44Gu44KK44Go44G/LOOBn+OBi+OBkw0KK+OBhOOBkeOBoCzjgoTjgojjgYQNCivjgoLjgorjgZ8s44Gy44KN44Gu44KKDQor44Gf44GR44GG44GhLOOChuOBhuOBkw0KK+OBv+OBnyzjgoTjgZnjgZMNCivjgYTjgazjgYQs44GTDQor44GoLOOBn+OBi+OBlw0KK+OBvuOBjeOBrizjgZ/jgYvjgZcNCivjgarjgaTjgoEs44KK44GIDQor44GK44Gu44Gn44KJLOOCiuOCh+OBuOOBhA0KK+OBiuOBnyzjgbLjgo3jgobjgY0NCivjgYbjgovjgZfjgZXjgZMs44GL44Ga44Gy44GTDQor44GV44GL44GN44Gw44KJLOOBv+OBu+OBkw0KK+OBguOBiuOBjSzjgYLjgYQNCivjgYLjgYrjgY0s44Go44KI44Gy44KNDQor44GC44GK44GNLOOCiOOBl+OBguOBjQ0KK+OBguOBi+OBjOOCjyzjgb7jgaoNCivjgYLjgYvjgaTjgYss44G/44GKDQor44GC44GL44G744KKLOOBvuOBqeOBiw0KK+OBguOBjeOChOOBvizjgZfjgpPjgZQNCivjgYLjgZXjgYQs44Gh44GIDQor44GC44GV44GELOOChuOBmeOBkQ0KK+OBguOBleOBiuOBiyzjgorjgofjgZgNCivjgYLjgZXjgazjgb4s44KK44KHDQor44GC44GdLOOCiOOBl+OBruOCig0KK+OBguOBn+OBkSzjgZHjgpMNCivjgYLjgaDjgaEs44Gu44KK44KG44GNDQor44GC44G5LOOBvuOCig0KK+OBguOBuSzjgZfjgpPjgoQNCivjgYLjgbks44GP44Gr44Gy44KNDQor44GC44KJ44GELOOBv+OBjeOBkw0KK+OBguOCiuOBvizjgorjgaTjgZMNCivjgYTjgYTjgZrjgYss44GX44GS44Gu44KKDQor44GE44GM44KJ44GXLOOBiOOBhOOBmeOBkQ0KK+OBhOOBkeOBoCzjgarjgYrjgagNCivjgYTjgZHjgaAs44KG44GG44GTDQor44GE44GR44Gv44GfLOOCguOBqOOBkw0KK+OBhOOBluOCjyzjgYvjgZrjgbLjgagNCivjgYTjgZfjgYQs44GR44GE44GY44KNDQor44GE44GX44GL44KPLOOBi+OBmuOBsuOCjQ0KK+OBhOOBl+OBkOOCjSzjgabjgovjgb8NCivjgYTjgZfjgaAs44GX44KT44G644GEDQor44GE44GX44GgLOOBkeOCk+OBmA0KK+OBhOOBl+OBsOOBlyzjgYLjgoQNCivjgYTjgZfjga/jgoks44Gq44GK44G144G/DQor44GE44GX44KC44GoLOOBqOOBl+OBjQ0KK+OBhOOBneOBr+OBnyzjgZfjgpPjgZQNCivjgYTjgZ/jgb8s44Gf44GL44G/44GhDQor44GE44Gh44GL44KPLOOBruOBtuOChOOBmQ0KK+OBhOOBo+OBl+OBjSzjgobjgY3jgYgNCivjgYTjgacs44Gk44KI44GXDQor44GE44GnLOOBqOOCguOBkw0KK+OBhOOBqOOBhizjgaDjgYTjgZnjgZENCivjgYTjgajjgYYs44KG44Gf44GLDQor44GE44Go44GGLOOBk+OBmuOBiA0KK+OBhOOBqOOBhizjgZHjgpPjgZ/jgo3jgYYNCivjgYTjgajjgYYs44Gy44KN44GNDQor44GE44Gu44GG44GILOOBoeOBr+OCiw0KK+OBhOOBruOBhuOBiCzjgoTjgZnjgZcNCivjgYTjga7jgYbjgYgs44KK44KH44GTDQor44GE44Gu44GG44GILOOBguOBjeOBsuOCjQ0KK+OBhOOBruOBj+OBoSzjgZPjgYbjgZ/jgo3jgYYNCivjgYTjgb7jgYQs44Gf44Gk44GKDQor44GE44G+44GN44KF44KM44GELOOBqOOBl+OChuOBjQ0KK+OBhOOBvuOBnOOBjSzjgZ/jgYvjgbLjgo0NCivjgYTjgb7jgoDjgoks44G+44KG44GTDQor44GE44G+44KA44KJLOOBguOBleOBkw0KK+OBhOOCj+OBhCzjgZ/jgYvjgYLjgY0NCivjgYTjgo/jgYQs44Gq44KL44Gf44GLDQor44GE44KP44GV44GNLOOBn+OBpOOChA0KK+OBhOOCj+OBmyzjgarjgovjgb8NCivjgYTjgo/jgZ8s44GT44GG44GYDQor44GE44KP44GnLOOBvuOChuOBvw0KK+OBhOOCj+OCgOOCiSzjgZjjgoXjgpPjgbrjgYQNCivjgYbjgYjjgaAs44G+44GV44GKDQor44GG44GI44GuLOOBquOBpOOBkw0KK+OBhuOBiOOBrizjgb7jgYQNCivjgYbjgYvjgYQs44G+44GT44GoDQor44GG44GV44G/LOOCiOOBmeOBkQ0KK+OBhuOBoeOBhuOBvyzjgarjgYrjgY0NCivjgYbjgaHjgoTjgb4s44GL44Gk44GNDQor44GG44KJ44Gv44KJLOOBruOCiuOChuOBjQ0KK+OBiOOBjizjgorjgbsNCivjgYjjgZjjgoos44KM44GE44GTDQor44GI44Gu44GN44GpLOOBj+OBv+OBkw0KK+OBiOOCguOCiizjgb7jgZnjgb8NCivjgYjjgpPjgaks44GR44KT44GE44Gh44KNDQor44GK44GyLOOBleOBqOOCiw0KK+OBiuOBsuOBkSzjgZ/jgYvjgZcNCivjgYrjgbXjgoks44Go44KC44GTDQor44GK44GL44KPLOOBmeOBmeOCgA0KK+OBiuOBjeOBnyzjgZPjgYbjgZgNCivjgYrjgZXjgo8s44GR44KT44Gf44KN44GGDQor44GK44GfLOOBvuOBleOBsuOBqA0KK+OBiuOBnyzjgbXjgb/jgYoNCivjgYrjgZ8s44G+44GV44G144G/DQor44GK44Gf44GrLOOBl+OCk+OBmA0KK+OBiuOBn+OBqyzjgbLjgo3jgY0NCivjgYrjgaTjgYss44G+44KK44GTDQor44GK44Gk44GLLOOCiuOBiOOBkw0KK+OBiuOBpOOBiyzjgb7jgZXjgbXjgb8NCivjgYrjgaTjgY0s44Gf44GE44GYDQor44GK44GpLOOBn+OBi+OBsuOBkw0KK+OBiuOBqOOCk+OBuSzjgbLjgo3jgZcNCivjgYrjga4s44KI44KK44GTDQor44GK44GuLOOBhOOBpOOBjQ0KK+OBiuOBr+OBlyzjga/jgZjjgoENCivjgYrjga/jgZ8s44Gq44Gk44GTDQor44GK44G/44GhLOOBqOOCguOBi+OBmg0KK+OBiuOBsuOCg+OBvizjgaDjgYTjgZnjgZENCivjgYrjgYvjgZbjgY0s44KI44GX44GTDQor44GK44GL44GY44G+LOOChuOBjeOBruOCig0KK+OBiuOBi+OBoCzjgb7jgZXjgobjgY0NCivjgYrjgYvjgaAs44Go44KC44GTDQor44GK44GL44KC44GoLOOBguOBjeOBquOBig0KK+OBiuOBi+OCguOBqCzjgojjgbjjgYQNCivjgYrjgYzjgo8s44Gf44GL44GC44GNDQor44GK44GO44GfLOOChuOBjeOBsuOBpw0KK+OBiuOBj+OBj+OBvCzjgoLjgajjgYQNCivjgYrjgaHjgYLjgYQs44KI44GX44Gu44KKDQor44GK44G+44GfLOOBoOOBhOOBmOOCjQ0KK+OBi+OBlSzjgZXjgajjgosNCivjgYvjgZfjgo8s44Gf44GP44G/DQor44GL44Go44GGLOOBn+OBpOOChA0KK+OBi+OBqOOBhizjgb7jgZXjgbLjgZMNCivjgYvjgarjgYQs44Gy44KN44GXDQor44GL44Gq44KE44G+LOOBn+OBpOOChA0KK+OBi+OBreOBkyzjgYLjgY3jgokNCivjgYvjga3jgaTjgY0s44G/44G7DQor44GL44Gt44G+44KLLOOBv+OBjeOBsuOBqA0KK+OBi+OBueOBhuOBoSzjgZ/jgaTjgbXjgb8NCivjgYvjgb/jgoDjgoks44G/44Gq44GTDQor44GL44G/44KELOOBi+OBmuOBsuOCjQ0KK+OBi+OBv+OChCzjgZ/jgY/jgb4NCivjgYvjgo/jgYQs44Gf44GR44GXDQor44GL44KP44GELOOBoOOBhOOBmeOBkQ0KK+OBi+OCj+OBi+OBvyzjgZjjgoXjgpMNCivjgYvjgo/jgZDjgaEs44Go44GX44G144G/DQor44GL44KP44GV44GNLOOBn+OBi+OBlw0KK+OBi+OCj+OBleOBjSzjgajjgoLjga7jgooNCivjgYvjgo/jgZXjgY0s44GR44KTDQor44GL44KP44GX44G+LOOChuOBjeOBkw0KK+OBi+OCj+OBnyzjgaDjgYTjgZnjgZENCivjgYvjgo/jgb7jgZ8s44GT44G444GEDQor44GL44KP44KC44GoLOOBn+OBoOOBlw0KK+OBjeOBl+OCguOBqCzjgZHjgpPjgYTjgaENCivjgY3jgZfjgo0s44Gg44GE44GZ44GRDQor44GN44GgLOOBteOBv+OChA0KK+OBjeOBn+OBiuOBiyzjgZjjgoXjgpPjgoQNCivjgY3jgZ/jgaAs44GC44Ga44GVDQor44GN44Gf44GuLOOBquOBiuOBqA0KK+OBjeOBn+OBr+OCiSzjgYvjgYrjgooNCivjgY3jgZ/jgoDjgoks44GV44Gh44GTDQor44GN44Gf44KC44GoLOOBk+OBhuOBhOOBoeOCjQ0KK+OBjeOCgOOCiSzjgobjgb/jgZMNCivjgY3jgoDjgoks44Gy44KN44GXDQor44GN44KC44GoLOOCieOBhA0KK+OBjeOCkyzjgb/jgpMg44Gh44KD44GGDQor44KT44GQ44GE44GH44KTLOOChOOBmeOBsuOCjQ0KK+OBj+OBl+OChOOBvizjgabjgaTjgYLjgY0NCivjgY/jganjgYYs44Gy44KN44GNDQor44GP44Gp44GGLOOBn+OBi+OBig0KK+OBj+OCgeOBhuOBoSzjgZHjgYTjgYTjgaENCivjgY/jgonjgZfjgZIs44GT44GfDQor44GP44KJ44GhLOOBkeOBhOOBmeOBkQ0KK+OBj+OCieOBquOBiyzjgYLjgY3jgojjgZcNCivjgY/jgorjga/jgoks44GR44GE44GfDQor44GP44KN44GNLOOBiOOBhOOBmeOBkQ0KK+OBj+OCjeOBleOBiyzjgZjjgoXjgpMNCivjgY/jgo/jga/jgoks44GGDQor44KG44GILOOBvuOBleOBsuOBkw0KK+OBk+OBhOOBmuOBvyzjgZ3jgYbjgbjjgYQNCivjgZPjgYbjgZjjgb4s44Gf44KN44GGDQor44GT44GgLOOBv+OBuw0KK+OBk+OBrizjgZ/jgZHjgbLjgo0NCivjgZPjgYws44G144G/44GoDQor44GT44GMLOOBkeOBhOOBkw0KK+OBk+OBj+OBtuOCkyzjgojjgZfjgobjgY0NCivjgZPjgZXjgYss44Gg44GE44GZ44GRDQor44GT44Gj44GmLOOBguOBjeOCiA0KK+OBr+OBn+OBquOBiyzjgajjgoLjga7jgooNCivjgZPjgbDjgoTjgZcs44GX44KF44KT44GZ44GRDQor44GT44Gw44KE44GXLOOBkeOCk+OBmA0KK+OBk+OBsOOChOOBlyzjgZPjgYbjgZgNCivjgZPjgbDjgoTjgZcs44GL44Ga44Gy44KNDQor44GT44Gw44KE44GXLOOBn+OBkeOBlw0KK+OBk+OBvuOBpCzjgojjgZnjgZENCivjgZPjgb7jgaTjgbDjgoks44G+44GV44GNDQor44GT44KB44Gg44GrLOOCiOOBhuOBkw0KK+OBleOBhOOBjSzjgZfjga4NCivjgZXjgYTjgajjgYYs44GL44Gk44Gu44KKDQor44GV44GL44GELOOBl+OCk+OChA0KK+OBleOBi+OBkOOBoSzjgojjgZfjgbLjgZMNCivjgZXjgYvjgb7jgY0s44GL44Gk44KG44GNDQor44GV44GP44G+LOOBkeOCk+OBhOOBoQ0KK+OBleOBkyzjgZfjgofjgbLjgaENCivjgZXjgZXjgYQs44Gf44GP44GYDQor44GV44GV44GKLOOBoeOBi+OBkw0KK+OBleOBleOBjSzjgYLjgY3jgZMNCivjgZXjgZXjgY0s44G+44GE44GTDQor44GV44Go44GGLOOBn+OBi+OBlw0KK+OBleOBqOOBhizjgobjgYsNCivjgZXjgajjgYYs44Gy44Gn44GNDQor44GV44Go44GGLOOBguOCk+OBqg0KK+OBleOBqOOBhizjga7jgorjgYLjgY0NCivjgZXjgajjgYYs44GN44G/44Gy44GTDQor44GV44Go44GGLOOBl+OCk+OBmeOBkQ0KK+OBleOBqOOBhizjgbXjgb8NCivjgZXjgajjgYYs44Gm44Gk44KNDQor44GV44GuLOOBguOBpOOBlw0KK+OBleOBrizjgZHjgpPjgYTjgaENCivjgZXjga/jgoks44Gy44KN44GC44GNDQor44GV44KL44KE44G+LOOBn+OCjeOBhg0KK+OBleOCj+OBkOOBoSzjgYHjgpMNCivjgZcs44KG44GN44GTDQor44GX44GK44GW44GNLOOBvuOChA0KK+OBl+OBiuOBoCzjgarjgYrjgoQNCivjgZfjgY0s44GL44Ga44GN44G/DQor44GX44GgLOOBr+OBquOBkw0KK+OBl+OBruOBr+OCiSzjgb7jgZXjgYoNCivjgZfjga7jga/jgoks44GL44Gk44Gy44GTDQor44GX44G244GV44KPLOOBi+OBmuOChuOBjQ0KK+OBl+OBvuOBoCzjgbLjgo3jgbLjgagNCivjgZfjgb7jgaAs44G+44GV44GNDQor44GX44G+44GgLOOBv+OBjQ0KK+OBl+OBv+OBmizjgb7jgZXjgZMNCivjgZfjgb/jgZos44G/44GNDQor44GX44G/44GaLOOBruOBtuOChuOBjQ0KK+OBl+OBv+OBmizjgorjgofjgZXjgY8NCivjgZfjgb/jgZos44G+44GV44GTDQor44GX44G/44GaLOOBquOBjuOBlQ0KK+OBl+OCgizjgZ/jgYvjgbXjgb8NCivjgZfjgoLjgZbjgY0s44Gf44GL44KG44GNDQor44GX44KC44GY44G+LOOBguOChA0KK+OBl+OCguOBpCzjgYjjgb8NCivjgZfjgoLjga4s44Gy44Gn44GC44GNDQor44GX44KC44KELOOBiOOBhOOBmA0KK+OBl+OCieOBmSzjgb7jgZXjgosNCivjgZnjgY7jgYbjgoks44KI44GX44Gy44KNDQor44GZ44GO44GG44KJLOOBsuOBqOOBlw0KK+OBmeOBmuOBjSzjgbLjgZXjgZcNCivjgZnjgZrjgY0s44KI44GZ44GRDQor44GZ44Ga44GNLOOCiuOCheOBnw0KK+OBmeOBmuOBjSzjgb/jgbvjgZMNCivjgZnjgZrjgY0s44GR44KT44Gf44KN44GGDQor44GZ44GoLOOBn+OBpOOBig0KK+OBmeOBquOBoCzjgo/jgZ/jgosNCivjgZnjgoTjgb4s44Go44KC44GTDQor44Gb44GKLOOBleOBqOOBkw0KK+OBm+OBjSzjgZjjgoXjgavjgaENCivjgZvjgY3jga0s44GY44KNDQor44Gb44GN44GwLOOBjeOBrOOBiA0KK+OBm+OBqCzjgZ/jgaTjgbLjgZMNCivjgZvjgpPjgZTjgY8s44GI44GE44GE44Gh44KN44GGDQor44Gb44KT44GgLOOBn+OBi+OBsuOCjQ0KK+OBm+OCk+OBsCzjgYLjgY3jgbLjgZMNCivjgZ3jgoHjgoQs44KI44KK44GTDQor44Gf44GL44GOLOOBl+OCk+OBlA0KK+OBn+OBi+OBjizjgb7jgZXjga7jgbYNCivjgZ/jgYvjgY4s44Go44GX44KNDQor44Gf44GL44GbLOOBqOOCguOBvw0KK+OBn+OBi+OBoCzjgYjjgorjgZMNCivjgZ/jgYvjga/jgZcs44KG44GZ44GRDQor44Gf44GL44Gv44GXLOOCiOOBl+OBruOCig0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgY0NCivjgZ/jgYvjga/jgZcs44GV44Go44GXDQor44Gf44GL44Gv44GXLOOBleOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgaDjgYTjgZnjgZENCivjgZ/jgYvjgb/jgZbjgo8s44GL44GK44KKDQor44Gf44GN44GW44KPLOOBk+OBuOOBhA0KK+OBn+OBkOOBoSzjgb/jgaTjgosNCivjgZ/jgZHjgZfjgZ8s44G+44GNDQor44Gf44GR44GgLOOBkeOBhOOBmA0KK+OBn+OBkeOBoCzjga7jgorjgbLjgZUNCivjgZ/jgZHjgaAs44KG44GG44GTDQor44Gf44GR44Gq44GLLOOBv+OBmuOBuw0KK+OBn+OBkeOBr+OCiSzjgZHjgYTjgZQNCivjgZ/jgZHjgoTjgb4s44Gy44Gn44GNDQor44Gf44GYLOOBguOBhA0KK+OBn+OBoCzjga7jgorjgobjgY0NCivjgaDjgaYs44KI44Gy44Gh44KNDQor44Gf44Gq44GLLOOCiOOBmeOBkQ0KK+OBn+OBquOBiyzjgoTjgZnjgobjgY0NCivjgZ/jgarjgYss44KI44GX44Gu44KKDQor44Gf44Gq44GLLOOBn+OBi+OBruOCig0KK+OBn+OBquOBiyzjgb7jgZXjgagNCivjgZ/jgavjgZDjgaEs44G/44GLDQor44Gf44Gr44GT44GXLOOChOOBmeOBsuOCjQ0KK+OBn+OBq+OBrizjgZPjgZrjgYgNCivjgZ/jgbbjgY0s44GR44GE44GeDQor44Gf44G244GhLOOBjeOCh+OBkw0KK+OBn+OBvuOBiuOBjSzjgZHjgpMNCivjgZ/jgb7jgYzjgo8s44GL44Ga44G+DQor44Gf44KA44KJLOOChuOBhuOBmA0KK+OBn+OCgeOBruOCiizjgZPjgYbjgZgNCivjgZ/jgpPjga4s44Gf44GL44Gy44KNDQor44Gf44KT44G8LOOBv+OBjeOBkw0KK+OBoeOBoCzjgb/jgaTjgosNCivjgaHjga3jgpMs44G/44GLDQor44Gk44GM44Gt44GW44KPLOOCiOOBl+OBn+OBiw0KK+OBpOOBi+OBr+OCiSzjgY/jgb/jgZMNCivjgaTjgaHjgoQs44Gh44GL44G144G/DQor44Gk44Gh44KELOOBruOCiuOBsuOBkw0KK+OBpOOBoeOChCzjgZ/jgY/jgarjgYwNCivjgaTjgZrjgY0s44Gf44GL44KG44GNDQor44Gk44Ga44KJ44Gv44KJLOOBn+OBi+OChuOBjQ0KK+OBpOOBreOCiOOBlyzjgZ/jgYvjga7jgooNCivjgaTjgbzjgYbjgaEs44GR44KT44Gf44KN44GGDQor44Gk44KL44GX44G+LOOBn+OBi+OBguOBjQ0KK+OBp+OBkOOBoSzjgZ/jgo3jgYYNCivjgabjgZrjgYss44KI44GX44Gy44GoDQor44Gm44KJ44GL44KPLOOBvuOBleOCiOOBlw0KK+OBpuOCieOBkOOBoSzjgajjgoLjgZMNCivjgabjgonjgZfjgb4s44GR44GE44GTDQor44Gm44KJ44GgLOOCiOOBuOOBhA0KK+OBqOOBjOOBlyzjgYjjgooNCivjgajjgY/jgoDjgoks44GC44GN44Gy44GTDQor44Go44GW44KPLOOBi+OBpOOBsuOBlQ0KK+OBqOOBs+OBiuOBiyzjgobjgY0NCivjgajjgb7jgorjga4s44Gu44G244KG44GNDQor44Go44G/44GELOOBv+OBmuOBuw0KK+OBqOOBv+OBluOCjyzjgb7jgobjgb8NCivjgajjgb/jgZ8s44KI44GZ44GRDQor44Go44G/44GfLOOChOOBmeOChuOBjQ0KK+OBqOOBv+OBquOBjCzjgb7jgb8NCivjgajjgojjgaAs44GV44Gh44GTDQor44Go44KJ44Gf44GrLOOBpuOCi+OBruOBtg0KK+OBquOBhOOBqOOBhizjgYLjgY3jgbXjgb8NCivjgarjgYzjgYQs44KK44GIDQor44Gq44GM44GELOOBn+OBj+OChA0KK+OBquOBi+OBhOOBkSzjgb/jgaTjga7jgbYNCivjgarjgYvjgYbjgYgs44Gf44GL44GXDQor44Gq44GM44GKLOOCgOOBreOBruOCig0KK+OBquOBi+OBk+OBmCzjgZHjgpPjgZgNCivjgarjgYzjgZXjgYss44KI44GX44GNDQor44Gq44GL44GY44G+LOOBoOOBhOOBmeOBkQ0KK+OBquOBi+OBmOOBvizjgZPjgYbjgYTjgaENCivjgarjgYzjgZ8s44KG44GG44GTDQor44Gq44GM44GfLOOBn+OBkeOBlw0KK+OBquOBjOOBnyzjgZjjgoXjgpPjgZMNCivjgarjgYvjgaTjgoss44GY44KF44KT44GTDQor44Gq44GM44GuLOOBguOChA0KK+OBquOBi+OCgOOCiSzjgZ/jgYTjgaENCivjgarjgYvjgoDjgoks44KG44GG44GfDQor44Gq44GL44KA44KJLOOCiOOBhuOBkw0KK+OBquOBi+OCgOOCiSzjgZ3jgYbjgZ/jgo3jgYYNCivjgarjgYvjgoDjgoks44G+44GV44GTDQor44Gq44GL44KA44KJLOOBn+OBi+OBig0KK+OBquOBi+OCgOOCiSzjgaHjgYgNCivjgarjgaTjga/jgoks44GY44KF44KT44GTDQor44Gq44KK44GV44GgLOOBl+OCk+OBlA0KK+OBquOCk+OBtizjgaDjgYTjgZnjgZENCivjgavjgYvjgYTjgaks44KK44KH44GTDQor44Gr44GXLOOBleOChOOBiw0KK+OBq+OBlyzjgZPjgYbjgZgNCivjgavjgZfjgYos44KG44GN44GTDQor44Gr44GX44GL44KPLOOBvuOCig0KK+OBq+OBl+OBj+OCiSzjgYvjgaTjgoQNCivjgavjgZfjgZbjgo8s44GC44Gk44Gy44GVDQor44Gr44GX44GW44KPLOOBquOBiuOBjQ0KK+OBq+OBl+OBoCzjgbLjgo3jgYLjgY0NCivjgavjgZfjgaAs44KE44GZ44GKDQor44Gr44GX44KE44G+LOOBleOBqOOCiw0KK+OBrOOBruOChCzjgbLjgo3jgZcNCivjgazjgb7jgZbjgY0s44GP44G/44GTDQor44Gs44G+44GfLOOBsuOCjeOBlw0KK+OBruOBqeOBvyzjgobjgYsNCivjga7jgb8s44G+44GV44GC44GNDQor44Gu44GQ44GhLOOBiOOBhOOBmA0KK+OBruOBmOOBvizjgZXjgoTjgYsNCivjga7jgZjjgoos44GX44KT44GZ44GRDQor44Gu44GgLOOBruOBtuOChuOBjQ0KK+OBruOBoCzjgajjgoLjgoQNCivjga7jgoDjgoks44Gd44GG44GE44Gh44KN44GGDQor44Gu44KA44KJLOOBquOBiuOChuOBjQ0KK+OBruOCgOOCiSzjgajjgZfjgoQNCivjga/jgZPjgZfjgb4s44GR44KT44GYDQor44Gv44GX44KC44GoLOOBleOBqOOBkw0KK+OBr+OBl+OCguOBqCzjgYTjgZXjgoANCivjga/jgZvjgYzjgo8s44GI44KK44GqDQor44Gv44Gf44GR44KE44G+LOOBl+OCk+OBhOOBoQ0KK+OBr+OBo+OBnyzjgorjgofjgbjjgYTjgZ8NCivjga/jgaPjgajjgoos44Gy44GV44Gu44KKDQor44Gv44Gq44GELOOBl+OBkuOBig0KK+OBr+OBquOBoCzjgobjgY3jgYoNCivjga/jgb7jgZDjgaEs44Gf44GR44GXDQor44Gv44G+44GgLOOCiuOBqg0KK+OBr+OBvuOBoCzjgb7jgZXjgY0NCivjga/jgb7jga4s44GL44Ga44KI44GXDQor44Gv44KE44GL44KPLOOBpuOCi+OBguOBjQ0KK+OBr+OChOOBlyzjgajjgZfjgobjgY0NCivjga/jgoTjgZcs44G/44GN44GTDQor44Gv44KE44GXLOOChuOBjeOBkw0KK+OBr+OCiSzjgZfjgpPjgbjjgYQNCivjga/jgoks44GL44Ga44GIDQor44Gv44KJ44GgLOOBi+OBmuOBig0KK+OBsuOBiOOBi+OBnyzjgo/jgZ/jgosNCivjgbLjgYzjgZUs44KK44KHDQor44Gy44GM44G/LOOBkeOBhA0KK+OBsuOBjeOBrizjgZHjgpPjgZ/jgo3jgYYNCivjgbLjgaAs44KG44G144GTDQor44Gy44Gg44GLLOOChuOBsg0KK+OBsuOBp+OBl+OBvizjgZXjgajjgb8NCivjgZXjgYvjgYQs44Gf44GR44Gv44KLDQor44Gy44KJ44GELOOBkeOBhOOBmeOBkQ0KK+OBsuOCieOBhOOCjyzjgZHjgpMNCivjgbLjgonjgZ8s44G+44Gq44G/DQor44Gy44KJ44Gw44KE44GXLOOBkeOBhOOBkw0KK+OBsuOCjeOBmyzjgZ/jgYvjgobjgY0NCivjgbXjgYvjgYos44KG44GNDQor44G144GP44GELOOBpuOBpOOBig0KK+OBteOBj+OBluOBjSzjgajjgoLjgarjgYwNCivjgbXjgY/jgaAs44GR44KT44Gf44KN44GGDQor44G144GP44GgLOOBoeOBi+OBkw0KK+OBteOBj+OBoCzjgoTjgZnjgYLjgY0NCivjgbXjgY/jgaAs44G/44GIDQor44G144GP44Gv44KJLOOBleOBqOOBkw0KK+OBteOBj+OCgOOCjSzjgYLjgaTjgZcNCivjgbXjgZjjgYbjgoks44Gb44GE44GYDQor44G144GY44GK44GLLOOBpuOBpOOBmA0KK+OBteOBmOOBiuOBiyzjgZ/jgYvjgZcNCivjgbXjgZjjgZ8s44GX44KTDQor44G144GY44KC44GoLOOBv+OBjeOBkw0KK+OBteOBmOOCguOBqCzjgZjjgoXjgpPjgoQNCivjgbXjgZjjgo/jgoks44Gv44KE44GoDQor44G144Gf44KA44KMLOOBiOOBpOOBkw0KK+OBteOCi+OBleOCjyzjgbLjgafjgY0NCivjgbXjgovjgZ8s44Gq44GK44KG44GNDQor44G144KL44KELOOBguOChOOBkw0KK+OBu+OBk+OCiSzjgb/jgobjgY0NCivjgbvjgZfjga4s44Gy44Gn44Gy44GTDQor44G744GX44GuLOOBv+OCjOOBhA0KK+OBu+OBneOBrizjgojjgbjjgYQNCivjgbvjgoos44KE44GZ44Gy44KNDQor44G744KK44GG44GhLOOBvuOBleOCiw0KK+OBu+OCiuOBiuOBiyzjgZjjgoXjgavjgaENCivjgbvjgorjgZDjgaEs44KG44GN44GTDQor44G744KT44G+LOOBsuOCjeOBteOBvw0KK+OBvuOBiOOBi+OCjyzjgYLjgoQNCivjgb7jgYjjgZjjgb4s44GT44GG44GE44Gh44KNDQor44G+44GI44GgLOOBvuOChA0KK+OBvuOBiOOBr+OCiSzjgZfjgZLjgosNCivjgb7jgY0s44KG44GL44KKDQor44G+44GN44GuLOOBiOOCiuOBkw0KK+OBvuOBmeOBhCzjgYLjgY3jgbLjgo0NCivjgb7jgZnjgaAs44GE44GV44GKDQor44G+44GZ44GgLOOBhOOBoeOCjeOBhg0KK+OBvuOBpOOBhCzjgbLjgZXjgYoNCivjgY/jgb7jgYzjgYQs44Gy44Gn44GKDQor44GL44Gt44GTLOOBvuOBpOOBig0KK+OBk+OBv+OChCzjgZnjgb/jgYoNCivjgZPjgYzjgYTjgags44Gf44KC44GkDQor44GL44KT44Gw44KE44GXLOOBsuOCjeOBv+OBoQ0KK+OBjeOBruOBl+OBnyzjgajjgZcNCivjgY3jgY/jgaEs44GI44Gk44GKDQor44GT44G+44GwLOOChOOBmeOBig0KK+OBk+OBj+OBtizjgZjjgoXjgavjgaENCivjgZPjgbDjgoTjgZcs44GE44GV44GKDQor44GT44Gw44KE44GXLOOBqOOCguOChuOBjQ0KK+OBjeOBpOOBn+OBiyzjgZPjgYbjgZgNCivjgb7jgaTjgYos44Go44GX44Gy44KNDQor44GL44KP44GELOOBqOOBl+OBsuOBkw0KK+OBj+OCiuOBr+OCiSzjgZfjgZLjga7jgooNCivjgYvjganjga4s44Gf44GR44GKDQor44GL44G/44GP44G8LOOBsuOCjeOBlw0KK+OBi+OCj+OBkOOBoSzjgY3jgojjgZcNCivjgYvjgb7jgZ8s44G+44GV44G/44GkDQor44GL44KT44GgLOOBi+OCk+OBmA0KK+OBi+OCk+OBoCzjgYvjgaTjgbLjgZMNCivjgZPjgZfjgoDjgoks44KK44KH44GYDQor44G+44Gk44GKLOOBruOBvOOCiw0KK+OBj+OBleOBjSzjgb/jgaHjgZMNCivjgYvjgoLjga/jgoks44Gm44KL44G+44GVDQor44GL44GV44GY44G+LOOBr+OCi+OBsuOBkw0KK+OBvuOBpOOBjSzjgb/jga7jgosNCivjgYvjgb/jgY/jgoks44KG44Gf44GLDQor44GP44KK44Gv44KJLOOBv+OBpOOBkw0KK+OBquOBi+OBoSzjgbLjgo3jgZcNCivjgYvjgYzjgo8s44Gm44KL44GKDQor44GT44Gw44KE44GXLOOBoeOCheOBkeOCkw0KK+OBi+OCk+OBrizjgZ/jgYvjgobjgY0NCivjgb7jgaTjgZfjgZ8s44G+44Gq44G2DQor44GL44GX44KP44GgLOOBqOOBiuOCiw0KK+OBk+OCk+OBrizjgbLjgo3jgojjgZcNCivjgZPjgZnjgY4s44GR44KT44GYDQor44GT44KC44KKLOOBn+OBi+OBlw0KK+OBi+OCj+OBrizjgb7jgZXjgoLjgagNCivjgY3jgZ/jgoDjgoks44GL44Ga44G/DQor44GL44GY44G+LOOBv+OBpOOBig0KK+OBi+OBqOOBhizjgajjgZfjgobjgY0NCivjgZPjgoTjga4s44GN44KI44GXDQor44GL44Gk44G+44GfLOOBmOOCheOCk+OBmA0KK+OBj+OCj+OBoCzjgb7jgZXjgbXjgb8NCivjgZPjgZ/jgass44Go44GX44G+44GVDQor44GL44GY44GG44GhLOOCiOOBl+OBi+OBmg0KK+OBk+OCk+OBqSzjgaTjga3jgYoNCivjgZPjgpPjgaks44Gu44G244GC44GNDQor44G+44Gk44Gq44G/LOOBjeOCiOOBlw0KK+OBi+OBjOOChOOBvizjgZfjgpPjgYTjgaENCivjgYvjga3jgZMs44Gb44GE44GYDQor44GT44KE44G+LOOBqOOBl+OBig0KK+OBjeOBpOOBi+OCjyzjgbXjgb/jgYoNCivjgYvjgZfjgY/jgoks44GK44GV44KADQor44GP44KN44GNLOOBi+OBmuOBig0KK+OBk+OBhOOBmuOBvyzjgojjgZfjgb8NCivjgY/jgZws44Go44GX44KNDQor44GL44KP44GL44G/LOOChuOBjeOBig0KK+OBi+OBv+OBmOOChyzjgZ/jgZHjgbLjgZMNCivjgY3jgoDjgoks44Gm44Gk44KEDQor44G+44Gk44GuLOOBsuOBp+OBig0KK+OBjeOBj+OBnyzjgobjgY3jgYoNCivjgY/jgb7jgaAs44Go44GX44GL44GaDQor44GP44Gr44Gv44KJLOOBkeOBhOOBmA0KK+OBk+OBmOOBvizjgoTjgb7jgagNCivjgY/jgorjga/jgoks44Gu44G244GTDQor44KI44Gt44GP44KJLOOBn+OBi+OBlw0KK+OBk+OBsOOChOOBlyzjgojjgZfjgYvjgZoNCivjgZPjgbDjgoTjgZcs44GX44KT44KEDQor44GT44GY44KH44GGLOOBvuOBleOBr+OCiw0KK+OBjeOCgOOCiSzjgoTjgZnjgbLjgZMNCivjgZPjgbDjgoTjgZcs44KE44GZ44Gv44KLDQor44GT44KT44GpLOOBk+OBm+OBhA0KK+OBi+OCj+OBhCzjgYvjgpPjgZgNCivjgY/jgb7jga/jgoks44KI44GX44KG44GNDQor44GN44GbLOOBl+OCheOBuOOBhA0KK+OBi+OBl+OBj+OBvizjgb/jgY3jgYoNCivjgYvjgZMs44GR44GE44GTDQor44GE44GX44GM44GELOOBleOBoeOBig0KK+OBi+OBv+OBkOOBoSzjgajjgYrjgosNCivjgY/jgoLjgaAs44GL44Ga44Gy44GVDQor44GT44G+44GkLOOBiuOBleOCgA0KK+OBi+OBreOBoCzjgb7jgZXjgYLjgY0NCivjgY3jgY/jgaEs44GX44KF44Gr44GhDQor44GT44Gf44GrLOOChuOBn+OBiw0KK+OBk+OBsOOChOOBlyzjgb7jgZXjga7jgooNCivjgYvjgo/jgZDjgaEs44KI44GX44Gf44G/DQor44GL44Gt44GTLOOBpOOBreOBig0KK+OBi+OCgizjgabjgaTjgYoNCivjgYvjgo/jgoDjgoks44GV44Gq44GIDQor44GP44G+44GuLOOBmOOCheOBq+OBoQ0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgYLjgY0NCivjgY3jgoDjgoks44Gu44G244GL44GaDQor44GN44GX44KC44GoLOOBqOOBl+OBi+OBpA0KK+OBjeOCgOOCiSzjgZHjgpPjgZgNCivjgYvjgb/jgZDjgaEs44G/44Gh44KE44GZDQor44GN44KA44KJLOOBkeOCk+OBng0KK+OBk+OBsOOChOOBlyzjgZjjgoXjgavjgaENCivjgYvjganjgY/jgoks44KI44GX44GC44GNDQor44GN44Gf44KA44KJLOOBn+OBoOOBlw0KK+OBi+OBpOOBjSzjgajjgZfjgYoNCivjgYvjgpPjgZbjgY0s44GX44KH44Gy44GhDQor44GL44Gf44GO44KKLOOBv+OBpOOBig0KK+OBk+OBsOOChOOBlyzjgojjgZfjgbLjgZUNCivjgZPjgb7jgaTjgZbjgY0s44KI44GX44KG44GNDQor44GN44GfLOOChOOBmeOBqA0KK+OBi+OBpOOBr+OCiSzjgojjgZfjgYoNCivjgZPjgZDjgows44Gy44KN44GC44GNDQor44GT44GY44G+LOOCiOOBl+OBguOBjQ0KK+OBk+OCgeOBoCzjgYjjgYTjgZgNCivjgZPjgavjgZcs44G+44GV44KG44GNDQor44GP44KP44Gv44KJLOOCiOOBl+OBiA0KK+OBk+OChOOBvizjgYvjgZrjgbLjgZUNCivjgb7jgaTjgoLjgags44Gy44KN44Gy44GVDQor44GL44GY44KC44GoLOOBjeOBl+OBig0KK+OBj+OBvuOBluOCjyzjgabjgaTjgoQNCivjgY3jgoDjgoks44G+44GV44Gv44GhDQor44GT44Gw44GX44GM44KPLOOBl+OCheOCk+OBmA0KK+OBi+OBv+OChCzjgYvjgarjgZMNCivjgb7jgaTjgoLjgags44Gy44Gn44KIDQor44GT44Gv44GXLOOBsuOBleOBlw0KK+OBk+OBoOOBvizjgb7jgZXjga7jgbYNCivjgYvjgo/jgYvjgb8s44GE44GP44G/DQor44G+44Gk44KC44GoLOOBruOBtuOBkw0KK+OBi+OBhOOBqSzjgZPjgZ4NCivjgY3jgoDjgoks44Gy44KN44Gu44KKDQor44GP44GULOOBl+OChQ0KK+OBvuOBpOOCguOBqCzjgYLjgY3jgYgNCivjgb7jgaTjgoTjgb4s44GC44Gk44GXDQor44G+44KL44KE44G+LOOBsuOBleOBlw0KK+OBk+OBrizjgZHjgpPjgYTjgaENCivjgY/jgo3jgY0s44KE44GZ44G+44GVDQor44GT44G/44KELOOBsuOBp+OBguOBjQ0KK+OBjeOCgOOCiSzjga7jgorjgobjgY0NCivjgY3jga4s44KI44GX44GC44GNDQor44GT44G+44GkLOOBi+OBpOOBvw0KK+OBi+OBreOBoeOBiyzjgajjgZfjgYoNCivjgYvjgarjgZ/jgass44Gy44Go44GXDQor44GT44Gw44KE44GXLOOChg0KK+OBjeOBn+OChOOBvizjgZfjgofjgZgNCivjgYvjgZgs44GI44GE44GeDQor44GL44KP44GX44G+LOOBnOOBq+OBoQ0KK+OBjeOCgOOCiSzjgYvjgZrjgb8NCivjgZPjgbDjgoks44Gv44KL44GKDQor44GN44Gf44GM44KPLOOBv+OBuw0KK+OBvuOCi+OChOOBvizjgajjgZfjgYoNCivjgYvjgoLjgpMs44GN44KI44G/DQor44G/44GG44KJLOOCiOOBl+OChuOBjQ0KK+OBv+OBl+OBvizjgorjgofjgZnjgZENCivjgb/jgZnjgY4s44GV44Gh44GTDQor44G/44Ga44GfLOOBjeOCiOOBlw0KK+OBv+OBmuOCguOBqCzjgZjjgoXjgpMNCivjgb/jgZ7jgZDjgaEs44KK44KH44GTDQor44G/44Ga44GLLOOBquOBiuOChuOBjQ0KK+OBv+OBquOBvyzjgb/jgYINCivjgb/jgarjgb/jgZ/jgass44KG44GNDQor44G/44Gt44GfLOOCiuOCh+OBmeOBkQ0KK+OBv+OChOOBhCzjgorjgYgNCivjgb/jgoTjgYrjgYss44KI44GX44KNDQor44G/44KE44GW44GNLOOBi+OBquOBkw0KK+OBv+OChOOBluOBjSzjgbLjgo3jgZMNCivjgb/jgoTjga/jgoks44Gq44GK44GNDQor44G/44KI44GXLOOBvuOBjeOBkw0KK+OCgOOCieOBi+OBvyzjgZ/jgY/jgb4NCivjgoDjgonjgY0s44Gq44GK44Gf44GLDQor44KA44KJ44GfLOOBquOBu+OBkw0KK+OCgOOCieOBnyzjgb7jgZXjgZcNCivjgoDjgonjgZ8s44Gf44GL44GXDQor44KA44KJ44KE44G+LOOBi+OBpOOBsuOCjQ0KK+OCguOBqOOBrizjgajjgoLjgYLjgY0NCivjgoLjgoos44GY44KF44KT44GTDQor44KC44KKLOOBquOCi+OBjQ0KK+OCguOCiuOBnyzjgb7jgZXjgZMNCivjgoLjgorjgZ8s44KG44Gf44GLDQor44KC44KK44KE44G+LOOBn+OBkeOCiw0KK+OCguOCiuOChOOBvizjgb7jgZXjgagNCivjgoTjgZbjgo8s44KG44GN44GTDQor44KE44GY44G+LOOBk+OBnw0KK+OChOOBquOBjuOBoCzjgZHjgpPjgo0NCivjgoTjgb7jgYzjgZ8s44G+44KG44G/DQor44KE44G+44GL44KPLOOBmOOCheOCig0KK+OChOOBvuOBkOOBoSzjgZ/jgaTjgbLjgZMNCivjgoTjgb7jgZDjgaEs44GC44GN44Gu44G2DQor44KE44G+44GQ44GhLOOBvuOBleOBsuOBpw0KK+OChOOBvuOBleOBjSzjgYLjgaTjgZMNCivjgoTjgb7jgZbjgY0s44GR44KT44GYDQor44KE44G+44GX44GfLOOBv+OBoeOChA0KK+OChOOBvuOBoCzjgoHjgZDjgb8NCivjgoTjgb7jgaAs44G+44GV44GTDQor44KE44G+44GgLOOChOOBmeOBvuOBlQ0KK+OChOOBvuOBquOBiyzjgajjgZfjgobjgY0NCivjgoTjgb7jga0s44Gq44GKDQor44KE44G+44KC44GoLOOBsuOBp+OBqOOCgg0KK+OChOOBvuOCguOBqCzjgorjgYgNCivjgoTjgb7jgoLjgags44GC44Gk44GXDQor44KG44GL44KPLOOBi+OBiuOCig0KK+OChuOBlizjgYvjgZrjgZMNCivjgobjgZ/jgass44Go44KC44Gy44KNDQor44KG44Gf44GrLOOBiOOCiuOBkw0KK+OCiOOBlCzjgZHjgYTjgYTjgaENCivjgojjgZPjgbzjgoos44GX44KT44KEDQor44KI44GX44GK44GLLOOBleOBqOOBvw0KK+OCiOOBl+OBi+OCjyzjgobjgY0NCivjgojjgZfjgaAs44Gf44Gg44KG44GNDQor44KI44GX44GgLOOBvuOBleOBjQ0KK+OCiOOBl+OCguOBqCzjgZHjgpMNCivjgojjga3jgaAs44GX44KF44GP44G7DQor44KJLOOCiOOBl+OBguOBjQ0KK+OCj+OBi+OBleOChCzjgZHjgpPjgYTjgaENCivjgo/jgZ/jgarjgbks44GX44KF44KTDQor44KP44Gf44Gq44G5LOOBvuOBleOBlw0KK+OBv+OBpOOChOOBvizjgZfjgpPjgZQNCivjgbLjgonjgYrjgYss44KE44GZ44Gu44KKDQor44GL44KT44GuLOOBi+OBmuOBsuOCjQ0KK+OCj+OBkyzjgbLjgafjgobjgY0NCivjgYLjgYrjgY0s44GV44Go44GXDQor44GC44GL44GKLOOBguOBjeOBkw0KK+OBguOBi+OBjizjgorjgYgNCivjgYLjgYvjgZcs44Gg44GE44GZ44GRDQor44GC44GL44Gk44GLLOOBqOOCguOBruOCig0KK+OBguOBi+OBr+OBrSzjgb7jgZXjgZ/jgZENCivjgYLjgYvjgbvjgoos44Gf44Gg44GC44GNDQor44GC44GN44KC44GoLOOBsuOCjeOBvw0KK+OBguOBjeOChOOBvizjgbLjgo3jgZ/jgYsNCivjgYLjgZXjgYQs44GN44KH44GTDQor44GC44GV44GuLOOCguOBqOOBig0KK+OBguOBleOBsizjgobjgb/jgZMNCivjgYLjgZXjgbks44Go44KC44GTDQor44GC44Gv44KM44KTLOOBl+OBmuOBiw0KK+OBguOBuSzjgZjjgoXjgavjgaHjgo0NCivjgYLjgbks44KE44GZ44Gy44KNDQor44GC44G5LOOBvuOBleOBvw0KK+OBguOBvuOBrizjgorjgZUNCivjgYLjgoHjgoLjgoos44GL44Gk44GoDQor44GC44KJ44GELOOCiuOBiA0KK+OBguOCieOBhCzjgo/jgZ/jgosNCivjgYLjgonjgYQs44G+44GV44Gu44KKDQor44GC44KJ44Gf44GrLOOCiuOCh+OBuOOBhA0KK+OBguOCiuOBquOBiyzjgbLjgo3jgZMNCivjgYTjgYTjgZQs44KE44GZ44KG44GNDQor44GE44GE44GgLOOBsuOCjeOBguOBjQ0KK+OBhOOBkeOBoCzjgobjgYbjgZMNCivjgYTjgZPjgYws44Gh44GIDQor44GE44GX44GELOOBv+OBuw0KK+OBhOOBl+OBiuOBiyzjgb7jgZXjgYvjgZoNCivjgYTjgZfjgZbjgYss44KE44GZ44Gy44KNDQor44GE44GX44GY44G+LOOBguOBleOBkw0KK+OBhOOBl+OBoCzjgYvjgogNCivjgYTjgZfjgaks44Gg44GE44GZ44GRDQor44GE44GX44GuLOOBqOOBl+OBsuOBkw0KK+OBhOOBl+OBvuOBtuOBlyzjgYvjgYrjgosNCivjgYTjgZvjgoos44Gy44KN44G144G/DQor44GE44Gd44G5LOOBvuOBleOBvw0KK+OBhOOBn+OBqyzjgYLjgorjgZUNCivjgYTjgZrjga4s44Gy44Gn44GKDQor44GE44Gn44GuLOOBiOOBpOOBkw0KK+OBhOOBqOOBhizjgYvjgaTjgbLjgo0NCivjgYTjgajjgYYs44GV44Gk44GNDQor44GE44Go44GGLOOBqOOCguOBsuOCjQ0KK+OBhOOBqOOBhizjga7jgorjgYLjgY0NCivjgYTjgajjgYYs44G+44KG44G/DQor44GE44Go44GGLOOCiOOBl+OBn+OBiw0KK+OBhOOBqOOChOOBvizjgYjjgb/jgZMNCivjgYTjgaos44GL44GK44KKDQor44GE44Gq44GV44GNLOOBn+OBi+OBlw0KK+OBhOOBquOBsCzjgobjgY3jgYgNCivjgYTjgarjgbAs44G/44GKDQor44GE44Gu44GG44GILOOChuOBhA0KK+OBhOOBruOBhuOBiCzjgobjgY3jgZMNCivjgYTjga7jgYbjgYgs44Gf44GL44GKDQor44GE44G5LOOBguOBjeOBsuOBqA0KK+OBhOOBvuOBhCzjgYrjgajjgbLjgZMNCivjgYTjgb7jgYrjgYss44Gv44KL44GLDQor44GE44G+44KA44KJLOOBn+OBi+OBguOBjQ0KK+OBhOOCj+OBnyzjgb/jgaTjgbLjgo0NCivjgYTjgo/jgZ8s44KI44G444GEDQor44GE44KP44GfLOOCiOOBhuOBkw0KK+OBhOOCj+OBvyzjgb/jgaTjgZ/jgYsNCivjgYTjgo/jgoLjgags44KI44GX44GC44GNDQor44GG44GI44GgLOOChuOBi+OCig0KK+OBhuOBiOOBrizjgb7jgaoNCivjgYbjgYjjga/jgoks44Gf44GR44GXDQor44GG44GL44GELOOBguOBpOOBlw0KK+OBhuOBoOOBjOOCjyzjgYLjgY3jgokNCivjgYbjgaHjgoTjgb4s44KE44GZ44Gu44KKDQor44GG44Gk44G/LOOCiOOBmeOBkQ0KK+OBhuOBpOOBvyzjgZ/jgaDjgZcNCivjgYbjga4s44Gf44GR44GXDQor44GI44GM44GX44KJLOOBruOBtuOBn+OBiw0KK+OBiOOBqCzjgb7jgorjgZMNCivjgYjjgajjgb8s44GN44KH44GTDQor44GI44KT44GpLOOChuOBjeOBiA0KK+OBiOOCk+OBqSzjgZfjgoXjgbjjgYQNCivjgYrjgYvjgaks44G+44GV44GXDQor44GK44GP44KJLOOBn+OBkeOBsuOCjQ0KK+OBiuOBleOBiyzjgojjgZfjgbLjgo0NCivjgYrjgZXjgYss44GK44GV44KADQor44GK44GV44KPLOOChuOBhuOBkw0KK+OBiuOBmeOBvyzjgZHjgpPjgYTjgaHjgo0NCivjgYrjgZ8s44KM44GE44GTDQor44GK44Gf44GrLOOBleOCiQ0KK+OBiuOBq+OBlyzjgZ/jgYvjga7jgooNCivjgYrjgavjgZcs44Gy44GV44Gq44GMDQor44GK44Gr44GXLOOChuOBsuOBoQ0KK+OBiuOBq+OBlyzjgbLjgo3jgb7jgZUNCivjgYrjga4s44Gy44KN44KG44GNDQor44GK44GuLOOBvuOCiuOBkw0KK+OBiuOBrizjgb7jgZPjgagNCivjgYrjgb7jgaQs44GX44KF44KT44GZ44GRDQor44GK44KA44KJLOOBsuOCjeOBjQ0KK+OBiuOChCzjgbLjgafjgb8NCivjgYrjgYss44KB44GQ44G/DQor44GK44GL44GELOOBsuOCjeOBjQ0KK+OBiuOBi+OBhuOBoSzjgZ/jgYvjgbLjgZUNCivjgYrjgYvjgaAs44Gy44KN44GTDQor44GK44GL44GgLOOBn+OBpuOBjQ0KK+OBiuOBi+OBrizjgZPjgYbjgZ/jgo3jgYYNCivjgYrjgYvjgoDjgoks44GV44GhDQor44GK44GL44KC44GoLOOBleOBqOOBkw0KK+OBiuOBjOOCjyzjgaHjgYjjgZMNCivjgYrjgYzjgo8s44G+44GT44GoDQor44GK44GM44KPLOOBvuOBleOBsuOCjQ0KK+OBiuOBjOOCjyzjgb/jgaTjgosNCivjgYrjgYzjgo8s44KA44GV44GXDQor44GK44GM44KPLOOBvuOBleOBig0KK+OBiuOBjuOBrizjgarjgbvjgZMNCivjgYrjgY8s44G/44GL44GTDQor44GK44GP44GL44KPLOOCiOOBhuOBkw0KK+OBiuOBj+OBoCzjgojjgZnjgZENCivjgYrjgY/jgoDjgoks44Go44KC44GTDQor44GK44GW44GNLOOChuOBjeOBiA0KK+OBiuOBmOOBvizjga7jgorjgbLjgagNCivjgYrjgZzjgY0s44GR44KT44GE44GhDQor44GK44GgLOOBqOOCguOBruOCig0KK+OBiuOBoCzjgobjgYbjgY0NCivjgYrjgaHjgYLjgYQs44G+44KK44GTDQor44GK44Go44GM44KPLOOChOOBmeOBteOBvw0KK+OBiuOBrizjgYLjgYvjgooNCivjgYrjga/jgoks44GdDQor44GL44GE44GY44G+LOOBhOOBmuOBvw0KK+OBi+OBjOOCjyzjgZPjgZrjgYgNCivjgYvjgY3jgYos44GN44KT44KEDQor44GL44GR44GyLOOBv+OBoeOBkw0KK+OBi+OBleOBhCzjgZ/jgY/jgoQNCivjgYvjgZXjgb8s44KG44G/44GTDQor44GL44GY44GfLOOBiOOCiuOBkw0KK+OBi+OBmOOBn+OBqyzjgZXjgoTjgYsNCivjgYvjgZfjgb4s44Gy44KN44GC44GNDQor44GL44GX44G+LOOBguOBjeOBig0KK+OBi+OBmOOCguOBqCzjgZXjgajjgZMNCivjgYvjgZnjgYws44Gf44GL44KG44GNDQor44GL44GbLOOBn+OBi+OBlw0KK+OBi+OBn+OBjuOCiizjgZHjgYTjgYTjgaENCivjgYvjgZ/jgoTjgb4s44Gy44KN44KG44GNDQor44GL44Gf44KE44G+LOOBguOBpOOBkw0KK+OBi+OBqOOBhizjgarjgYrjgY0NCivjgYvjgajjgYYs44KK44KH44GTDQor44GL44Go44GGLOOBv+OBmuOBjQ0KK+OBi+OBquOBluOCjyzjgZHjgYTjgZMNCivjgYvjga3jgb/jgaQs44GR44KT44GfDQor44GL44GuLOOBqOOCguOBv+OBpA0KK+OBi+OBvuOBnyzjgZ/jgYvjgoQNCivjgYvjgb/jgZbjgY0s44Go44KC44G/DQor44GL44G/44GY44KHLOOBquOBiuOBkw0KK+OBi+OCgeOBn+OBiyzjgojjgZfjgbXjgb8NCivjgYvjgoIs44GR44GE44GE44GhDQor44GL44KP44GELOOBvuOBleOBquOCig0KK+OBi+OCj+OBhCzjgoTjgZnjgbLjgo0NCivjgYvjgo/jgYvjgb8s44KG44GG44GTDQor44GL44KP44GL44G/LOOBguOChOOBkw0KK+OBi+OCj+OBkOOBoSzjgZXjgarjgZMNCivjgYvjgo/jgZDjgaEs44KM44GE44GTDQor44GL44KP44GQ44GhLOOBi+OBmuOBl+OBkg0KK+OBi+OCj+OBleOBjSzjgorjgofjgZMNCivjgYvjgo/jgZXjgY0s44KG44GG44GYDQor44GL44KP44Gq44G/LOOBsuOBqOOBlw0KK+OBi+OCj+OBrSzjgY/jgavjgYLjgY0NCivjgYvjgo/jgbDjgZ8s44GR44KT44GE44Gh44KNDQor44GL44KP44KA44KJLOOBsuOCjeOBi+OBmg0KK+OBi+OCj+OCguOBqCzjgajjgoLjga7jgooNCivjgYvjgpPjgaAs44KG44GN44GIDQor44GL44KT44GgLOOBsuOCjeOBn+OBiw0KK+OBi+OCk+OBrizjgb7jgZXjgajjgZcNCivjgY3jgZfjgoLjgags44KI44Gy44GhDQor44GN44Gf44GM44KPLOOBn+OBhOOBmeOBkQ0KK+OBjeOBn+OBr+OCiSzjgZHjgpPjgoQNCivjgY3jgZ/jgoDjgoks44Go44KC44GL44GaDQor44GN44Gf44KA44KJLOOBmOOCheOCig0KK+OBjeOBrOOChCzjgZ/jgYvjgZcNCivjgY3jga7jgZfjgZ8s44G/44GKDQor44GN44Gv44KJLOOBguOChuOBvw0KK+OBjeOCgOOCiSzjgYvjgZrjgbLjgacNCivjgY3jgoDjgoks44GV44Go44GXDQor44GN44KA44KJLOOBmOOCkw0KK+OBjeOCgOOCiSzjgarjgYrjgY0NCivjgY3jgojjgZfjgb4s44GC44GN44GTDQor44GN44KI44Ga44GLLOOBi+OBquOBkw0KK+OBjeOCiSzjgYLjgobjgb8NCivjgY3jgorjgZXjgZMs44KC44GGDQor44GN44KTLOOChg0KK+OBjeOCkyzjgb/jganjgooNCivjgY/jgavjgYjjgaAs44Gq44GK44GXDQor44GP44G8LOOBvuOBleOBkw0KK+OBj+OBvuOBrizjgZHjgpPjgZ/jgo3jgYYNCivjgY/jgonjgZ8s44Gf44GR44GXDQor44GP44KJ44Gv44GXLOOBqOOCguOBr+OCiw0KK+OBj+OCjCzjgZfjgocNCivjgY/jgo3jgYQs44GX44KT44GUDQor44GP44KN44GNLOOBqOOBl+OBvw0KK+OBj+OCj+OBrizjgabjgaTjgZjjgocNCivjgZQs44Gf44Gk44KEDQor44GU44GgLOOCiOOBl+OBi+OBmg0KK+OBk+OBjCzjgb7jgZXjgbLjgo0NCivjgZPjgY/jgZfjgocs44GC44GN44KI44GXDQor44GT44GV44GLLOOBmOOCheOCkw0KK+OBk+OBmOOBvizjga/jgovjgb8NCivjgZPjgZ7jga4s44KG44GNDQor44GT44Gg44G+LOOBn+OBi+OBlw0KK+OBk+OBpuOCiSzjgabjgaPjgbrjgYQNCivjgZPjgafjgoks44GV44KG44KKDQor44GU44GoLOOBquOBiuOBkw0KK+OBlOOBqCzjgYvjgZrjgYLjgY0NCivjgZPjgavjgZcs44GUDQor44GT44Gr44GXLOOBn+OBkeOBqA0KK+OBk+OBq+OBlyzjgYLjgY3jgbLjgo0NCivjgZPjgbDjgoTjgZcs44Gf44GL44GC44GNDQor44GT44Gw44KE44GXLOOBqOOBiuOCiw0KK+OBk+OBsOOChOOBlyzjgojjgZfjgZ/jgYsNCivjgZPjgbDjgoTjgZcs44KG44GG44GTDQor44GT44G244GbLOOBsuOCjeOBn+OBiw0KK+OBk+OBvuOBjSzjgZXjgYgNCivjgZPjgb7jgZbjgo8s44Gf44GR44Gy44KNDQor44GT44G+44Gk44Gw44KJLOOBkeOBhA0KK+OBk+OChOOBvizjgaTjgojjgZcNCivjgZPjgpPjgaks44GX44KF44GE44Gh44KN44GGDQor44GV44GE44GNLOOCiuOCh+OBmeOBkQ0KK+OBleOBhOOBmOOChyzjgYLjgYTjgo8NCivjgZXjgYTjgajjgYYs44GE44GP44GKDQor44GV44GE44Go44GGLOOBjeOBv+OBsuOCjQ0KK+OBleOBhOOBqOOBhizjgZfjgpPjgZ/jgo3jgYYNCivjgZXjgYTjgajjgYYs44Gf44Gg44Gu44KKDQor44GV44GE44Go44GGLOOBsuOCjeOBkw0KK+OBleOBhOOBqOOBhizjgb/jgZXjgY0NCivjgZXjgYTjgajjgYYs44KI44GG44GTDQor44GV44GE44Go44GGLOOBqOOCguOChA0KK+OBleOBi+OBhCzjgarjgaTjgZMNCivjgZXjgYvjgb8s44GT44GG44GYDQor44GV44GL44KC44GoLOOBoeOBiA0KK+OBleOBi+OCguOBqCzjgaTjgojjgZcNCivjgZXjgYvjgoLjgags44Gy44Gn44KG44GNDQor44GV44GL44KC44GoLOOBsuOCjeOBquOBig0KK+OBleOBi+OCguOBqCzjgZ/jgYvjgb7jgZUNCivjgZXjgY/jgonjgYQs44Go44KC44Gy44GVDQor44GV44GP44KJ44GOLOOBhOOBoeOCjeOBhg0KK+OBleOBleOBjSzjgbLjgo3jgZMNCivjgZXjgZXjgY0s44GL44GK44KLDQor44GV44Go44GGLOOBi+OBmuOChA0KK+OBleOBqOOBhizjgY3jgofjgZMNCivjgZXjgajjgYYs44GT44GG44GE44GhDQor44GV44Go44GGLOOBpuOCi+OBsuOBlQ0KK+OBleOBqOOBhizjga/jgZjjgoENCivjgZXjgajjgYYs44Gy44KN44G/DQor44GV44Go44GGLOOBteOBv+OBkw0KK+OBleOBqOOBhizjgbLjgajjgZcNCivjgZXjga4s44G+44GN44GTDQor44GV44GuLOOBn+OBi+OChuOBjQ0KK+OBleOCj+OBleOBjSzjgZ/jgYvjgZcNCivjgZXjgo/jgaAs44GT44GG44GYDQor44GV44KT44G644GELOOBsuOBp+OBjQ0KK+OBl+OBiuOBmuOBiyzjgb7jgZXjgojjgZcNCivjgZfjga4s44Gq44Gq44GTDQor44GX44Gw44GfLOOCiOOBsuOBoeOCjQ0KK+OBl+OBvizjgZXjgaDjgojjgZcNCivjgZfjgb7jga4s44Gq44G744GTDQor44GX44G/44GaLOOBvuOBleOBjQ0KK+OBl+OBv+OBmizjgobjgb/jgYgNCivjgZfjgoLjgYvjgo8s44G144GP44Gf44KN44GGDQor44GX44KC44KA44KJLOOBl+OCheOBleOBjw0KK+OBl+OCheOBj+OCiizjgZ/jgYvjgZcNCivjgZfjgofjgZjjgb4s44GC44GNDQor44GX44KH44GgLOOBkeOCk+OBhOOBoeOCjQ0KK+OBl+OCieOBhOOBlyzjgYvjgZrjgb/jgaENCivjgZfjgonjgYvjgZ8s44KG44G/DQor44GX44KJ44GV44GNLOOCiuOCh+OBmeOBkQ0KK+OBl+OCjeOBnyzjgajjgYrjgosNCivjgZjjgpPjgZDjgYbjgZgs44KK44KH44GZ44GRDQor44GX44KT44Gf44GrLOOBn+OBi+OBlw0KK+OBl+OCk+OBvCzjgbLjgo3jgZMNCivjgZjjgpPjgbws44GV44Go44KLDQor44GX44KT44KA44KJLOOBguOBpOOBlw0KK+OBmeOBjOOBhCzjgYvjgZrjga7jgooNCivjgZnjgY7jgoLjgags44GL44Ga44Gf44GLDQor44GZ44GO44KC44KKLOOBmOOCheOCkw0KK+OBmeOBjuOChOOBvizjgajjgZfjgYLjgY0NCivjgZnjgY7jgoTjgb4s44KI44GX44GTDQor44GZ44GO44KE44G+LOOBvuOBvw0KK+OBmeOBmuOBjSzjgojjgZfjgYrjgb8NCivjgZvjgYzjgo8s44GI44GE44G2DQor44Gb44GNLOOBvuOBquOBvw0KK+OBm+OBjeOBrSzjgZ/jgaTjgYoNCivjgZvjgY3jgoLjgags44GP44G/DQor44Gb44GoLOOBruOCiuOBi+OBmg0KK+OBm+OCiSzjgZjjgoXjgpMNCivjgZ3jgafjgoTjgb4s44KC44KC44GTDQor44Gd44Gu44GELOOBvuOBleOBsuOCjQ0KK+OBn+OBhOOCiSzjgZfjgZLjgYvjgZoNCivjgZ/jgYvjgY0s44GR44KT44GfDQor44Gf44GL44Gv44GXLOOBruOBtuOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgoLjgajjga/jgosNCivjgZ/jgYvjga/jgZcs44Gy44Gn44Go44GXDQor44Gf44GL44Gv44G+LOOBpOOBqOOCgA0KK+OBn+OBi+OBv+OChCzjgb/jgbsNCivjgZ/jgYvjgoTjgarjgY4s44Gy44KN44GTDQor44Gf44GL44KE44G+LOOBn+OBi+OBrQ0KK+OBn+OBkOOBoSzjgZjjgoXjgpMNCivjgZ/jgZHjgYbjgaEs44Gf44GP44G+DQor44Gf44GR44GW44GNLOOBjeOBj+OBkw0KK+OBn+OBkeOBl+OBnyzjgZjjgoXjgpMNCivjgZ/jgZHjgoLjgags44GR44KT44GYDQor44Gf44GgLOOBsuOCjeOBlw0KK+OBn+OBoeOBi+OCjyzjgYvjgaTjgYLjgY0NCivjgZ/jgaHjgbDjgaos44GC44Gk44GXDQor44Gf44Gk44GM44KPLOOBi+OBmuOCiOOBlw0KK+OBn+OBquOBiyzjgZ3jgonjgZMNCivjgZ/jgarjgYss44Gm44KL44GIDQor44Gf44Gq44GLLOOBvuOBleOBlw0KK+OBn+OBquOBiyzjgb/jgaHjgosNCivjgZ/jgarjgYss44KM44GEDQor44Gf44Gq44GLLOOBv+OBreOBkw0KK+OBn+OBquOBuSzjgajjgoLjgYoNCivjgZ/jgavjgZDjgaEs44GT44GNDQor44Gf44Gr44KP44GNLOOBoeOBr+OCiw0KK+OBn+OBsOOBnyzjgYvjgZrjgbLjgZMNCivjgZ/jga/jgoks44GV44Go44GXDQor44Gf44G+44GNLOOCj+OBn+OCiw0KK+OBn+OBvuOCgOOCiSzjgYLjgaTjgZcNCivjgZ/jgovjgb8s44G+44KG44GTDQor44Gf44KT44Gw44KJLOOBleOBqOOBvw0KK+OBoeOBi+OBpCzjgbLjgo3jgajjgoINCivjgaHjgbAs44GC44Gk44GTDQor44Gh44KHLOOBvuOBk+OBqA0KK+OBpOOBi+OBoCzjgarjgYrjgagNCivjgaTjgYvjgoLjgags44Go44KC44GTDQor44Gk44GY44KC44GoLOOChOOBmeOBruOCig0KK+OBpOOBoeOBoCzjgYLjgY3jgogNCivjgaTjgaHjgoQs44G+44GV44Gf44GLDQor44Gk44Gh44KELOOBk+OBhuOBmeOBkQ0KK+OBpOOBpOOBvyzjgZXjgaHjgYgNCivjgaTjgbzjgY/jgoks44GX44KH44G444GEDQor44Gk44KA44KJLOOBruOCiuOBkw0KK+OBpuOBl+OBvizjgZ/jgZHjgZcNCivjgabjgonjgZXjgY0s44Gy44KN44G144G/DQor44Gm44KJ44GV44GNLOOCiOOBl+OBsuOBlQ0KK+OBpuOCieOBoCzjgZHjgpPjgZgNCivjganjgYQs44Gq44GK44GTDQor44Gp44GELOOBvuOBk+OBqA0KK+OBqCzjgbLjgo3jgb8NCivjgajjgY3jgZ8s44KK44KH44GTDQor44Go44GN44GoLOOBpuOBpOOBsuOBkw0KK+OBqOOBj+OBoCzjgYvjgbvjgooNCivjgajjgZfjgZrjgb8s44KK44KH44GfDQor44Go44GgLOOBpuOBpOOChA0KK+OBqOOCiOOBoCzjgZXjgaHjgYsNCivjgarjgYTjgajjgYYs44G/44GNDQor44Gq44GL44GELOOBkeOBhOOBkw0KK+OBquOBi+OBiizjgZ/jgYvjgYLjgY0NCivjgarjgYzjgYos44Gh44GL44KJDQor44Gq44GL44GM44KPLOOBleOBqOOBlw0KK+OBquOBjOOBleOBiyzjgZ/jgY/jgoQNCivjgarjgYvjgZXjgYss44Go44KC44GIDQor44Gq44GM44GV44GNLOOBguOBjeOBkw0KK+OBquOBi+OBluOCjyzjgb7jgZXjgbLjgagNCivjgarjgYvjgZbjgo8s44GP44G/DQor44Gq44GL44GX44G+LOOBn+OBkeOBr+OCiw0KK+OBquOBi+OBmOOBvizjgajjgoLjgZMNCivjgarjgYvjgZfjgb4s44Gu44G244Gf44GLDQor44Gq44GL44GY44G+LOOBsuOCjeOBkw0KK+OBquOBi+OBmOOBvizjgZfjgpPjgYTjgaHjgo3jgYYNCivjgarjgYvjgaAs44KK44KH44GZ44GRDQor44Gq44GL44GgLOOBiOOBvw0KK+OBquOBjOOBpOOBiyzjgb7jgbsNCivjgarjgYvjgags44GX44KF44KT44GZ44GRDQor44Gq44GL44Gr44GXLOOBsuOCjeOBguOBjQ0KK+OBquOBi+OBq+OBlyzjgorjgofjgZ8NCivjgarjgYvjgavjgZcs44G+44GV44Go44GXDQor44Gq44GM44G+44GkLOOBguOBjeOBsuOBkw0KK+OBquOBi+OCgOOCiSzjgYjjgorjgZMNCivjgarjgYvjgoDjgoks44Go44KC44G/DQor44Gq44GL44KA44KJLOOBv+OBoeOBkw0KK+OBquOBi+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjgarjgYvjgoDjgoks44KG44Gy44Gh44KNDQor44Gq44GL44KA44KJLOOChuOBuOOBhA0KK+OBquOBi+OCgOOCiSzjgojjgYbjgZMNCivjgarjgYvjgoDjgoks44KG44KEDQor44Gq44GL44KC44KKLOOBiOOBv+OBkw0KK+OBquOBi+OChCzjgYLjgY3jgbLjgo0NCivjgarjgYvjgoTjgb4s44GX44KF44Gf44KN44GGDQor44Gq44GZLOOCiuOCh+OBmeOBkQ0KK+OBquOCiuOBqOOBvyzjgYvjgojjgZMNCivjgarjgpPjgbYs44GC44KE44GTDQor44Gr44GE44G/LOOBhOOBleOBig0KK+OBq+OBl+OBi+OCjyzjgZfjgoXjgZgNCivjgavjgZfjga4s44G/44Gp44KKDQor44Gr44GX44KE44G+LOOBmeOBmeOCgA0KK+OBrOOBi+OBoCzjgYTjgZ/jgosNCivjgazjgb7jgZ8s44G+44GV44Gy44KNDQor44Gs44G+44GfLOOBl+OBkuOBqOOBlw0KK+OBruOBjOOBvyzjgY3jgofjgZMNCivjga7jgY4s44GC44KE44GTDQor44Gu44GP44GKLOOBvuOChg0KK+OBruOBkOOBoSzjgZHjgYTjgZMNCivjga7jgZbjgY0s44Gq44GK44GTDQor44Gu44GYLOOBsuOCjeOBi+OBmg0KK+OBruOBvizjgZXjgoTjgZMNCivjga7jgoDjgoks44Gm44Gk44KEDQor44Gu44KA44KJLOOChuOBhuOBmA0KK+OBsOOBk+OBlyzjgZ/jgZHjgZcNCivjga/jgZfjgoLjgags44GT44GG44GYDQor44Gv44GZ44Gs44G+LOOBl+OCk+OBn+OCjeOBhg0KK+OBr+OBmyzjgajjgoLjgoQNCivjga/jgZvjgYzjgo8s44KE44GZ44Gf44GLDQor44Gv44Gf44GM44KPLOOBneOBruOBkw0KK+OBr+OBn+OBkeOChOOBvizjgobjgYsNCivjga/jgZ/jga4s44Gf44GL44Gy44KNDQor44Gv44Gq44GELOOCiOOBl+OBkw0KK+OBr+OBvuOBleOBjSzjgobjgYbjgYTjgaENCivjga/jgb7jgaAs44GV44Go44GXDQor44Gv44G+44GnLOOBleOBqOOBlw0KK+OBr+OChOOBi+OCjyzjgYLjgoTjgZMNCivjga/jgoTjgZcs44GL44GK44KKDQor44Gv44KE44GXLOOBn+OBi+OChuOBjQ0KK+OBr+OChOOBlyzjgarjgaTjga0NCivjga/jgoTjgZcs44KG44GNDQor44Gv44KE44GXLOOCjOOBhOOBkw0KK+OBr+OChOOBlyzjgb7jgZXjgYoNCivjga/jgoks44KG44Gy44GhDQor44Gv44KJ44GX44GqLOOBl+OCk+OBlA0KK+OBr+OCieOBoCzjgarjgYrjgZMNCivjga/jgonjgaAs44Gh44GIDQor44Gv44KL44GqLOOCiOOBhOOBoQ0KK+OBsuOBjeOBnyzjgbLjgo3jgZcNCivjgbLjgaDjgYQs44GY44KF44KT44GTDQor44Gy44KJ44GELOOChuOBhuOBkw0KK+OBsuOCieOBhCzjgojjgYbjgZMNCivjgbLjgonjgYQs44KK44GLDQor44Gy44KJ44GE44KPLOOBvuOBk+OBqA0KK+OBsuOCieOBiizjgbLjgo3jgZ/jgYsNCivjgbLjgonjgYvjgo8s44Gf44GL44GXDQor44Gy44KJ44GfLOOBguOBjQ0KK+OBsuOCieOBvuOBpCzjgYLjgoQNCivjgbLjgo3jgYgs44GV44Go44GTDQor44Gy44KN44GbLOOBleOBqOOBlw0KK+OBteOBi+OBluOCjyzjgZjjgoXjgpMNCivjgbXjgYvjgbvjgoos44KI44GG44GTDQor44G144GP44GX44G+LOOBmeOBmeOCgA0KK+OBteOBj+OBoCzjgajjgoLjgbLjgZUNCivjgbXjgY/jgaAs44Gu44G244GNDQor44G144GP44GgLOOBguOBpOOBlw0KK+OBteOBmOOBhCzjgb/jganjgooNCivjgbXjgZjjgYvjgo8s44GX44KF44GZ44GRDQor44G144GY44GfLOOBsuOBp+OBqA0KK+OBteOBmOOBnyzjgb7jgobjgb8NCivjgbXjgZjjgZ8s44GN44KH44GTDQor44G144GY44KA44KJLOOChuOBmeOBkQ0KK+OBteOBmOOCgOOCiSzjgYjjgorjgZMNCivjgbXjgZjjgoLjgags44GP44G/44GTDQor44G144GY44KC44GoLOOBsuOBp+OBi+OBmg0KK+OBteOBmOOCj+OCiSzjgb7jgY0NCivjgbXjgZjjgo/jgoks44KI44GX44GC44GNDQor44G144Gf44GL44GfLOOBn+OBi+OBig0KK+OBteOBquOBhCzjgYLjgaTjgZcNCivjgbXjgovjgYvjgo8s44Gy44Gn44Gu44KKDQor44G144KL44GL44KPLOOBsuOBp+OChuOBjQ0KK+OBteOCi+OBvuOBnyzjga7jgorjgbLjgo0NCivjgbvjgZcs44G+44GN44GKDQor44G744GX44GG44KJLOOBsuOCjeOChuOBjQ0KK+OBu+OBl+OCjSzjgbLjgo3jgbXjgb8NCivjgbvjgZ3jgaAs44GV44KE44GLDQor44G744KKLOOCiuOBiOOBkw0KK+OBu+OCiizjgYvjgZrjgb8NCivjgbvjgorjgYgs44GR44KT44GYDQor44G744KK44GQ44GhLOOBvuOBleOBig0KK+OBu+OCk+OBqizjgojjgZfjgo0NCivjgbvjgpPjgbws44Go44KC44KG44GNDQor44G+44GI44GL44KPLOOBguOBjeOBkw0KK+OBvuOBiOOBoCzjgZfjgofjgbjjgYQNCivjgb7jgYjjgaAs44KK44KF44G444GEDQor44G+44GI44GgLOOBkeOBhOOBleOBjw0KK+OBvuOBjeOBhuOBoSzjgZXjgajjgZcNCivjgb7jgY3jga4s44GY44KNDQor44G+44GN44KC44GoLOOBleOBoeOBkw0KK+OBvuOBleOBqOOBhuOBvyzjgbLjgo3jgZMNCivjgb7jgZnjgYQs44GY44KF44Gr44GhDQor44G+44GZ44GgLOOBqOOCguOChA0KK+OBvuOBmeOBoCzjgobjgY0NCivjgb7jgaTjgYQs44Gy44KN44GXDQor44G+44Gk44GG44KJLOOBhOOBpOOBvw0KK+OBvuOBpOOBiuOBiyzjgZfjgoXjgpPjgZQNCivjgb7jgaTjgYrjgYss44Gu44G244Gy44GnDQor44G+44Gk44GK44GLLOOChuOBjQ0KK+OBvuOBpOOBiuOBiyzjga7jgbbjgagNCivjgb7jgaTjgYvjgZIs44Gu44Ge44KADQor44G+44Gk44GX44GfLOOBi+OBiuOCiw0KK+OBvuOBpOOBquOBjCzjgbLjgo3jgobjgY0NCivjgb7jgaTjgbDjgoks44G/44KPDQor44G+44Gk44Gw44KJLOOBk+OBmeOBkQ0KK+OBvuOBpOOCguOBqCzjgZ/jgYvjgZcNCivjgb7jgaTjgoLjgags44GI44Gk44GTDQor44G+44Gk44KE44G+LOOBkeOBhOOBmA0KK+OBv+OBhuOCiSzjgZfjgofjgZMNCivjgb/jgYbjgoks44Go44KC44Gu44KKDQor44G/44GG44KJLOOBvuOBhOOBkw0KK+OBv+OBhuOCiSzjgojjgZnjgZENCivjgb/jgY0s44G+44GV44KG44GNDQor44G/44Ga44GL44KPLOOBv+OBuw0KK+OBv+OBmuOBn+OBqyzjgb/jgYoNCivjgb/jgZrjga4s44GL44Ga44Gy44GVDQor44G/44Gd44GuLOOBguOBjeOBsuOCjQ0KK+OBv+OBnuOBr+OBnyzjgajjgoLjgZMNCivjgb/jgarjgYzjgo8s44G+44KG44G/DQor44G/44Gq44GM44KPLOOBoOOBhOOBmeOBkQ0KK+OBv+OBquOBvyzjgbLjgZXjgYoNCivjgb/jgarjgb8s44GV44Go44GXDQor44G/44Gq44G/44GL44GfLOOCj+OBn+OCiw0KK+OBv+OBquOBv+OCgOOCiSzjga7jgZ7jgb8NCivjgb/jga/jgoks44GC44GN44GTDQor44G/44KA44KJLOOBsuOCjeOBv+OBpA0KK+OBv+OChOOBhCzjgbvjgY/jgagNCivjgb/jgoTjgZbjgY0s44G+44GE44GTDQor44G/44KE44GW44KPLOOCiuOChw0KK+OBv+OChOOBluOCjyzjgYLjgaTjgZcNCivjgb/jgoTjgoDjgoks44GC44Gk44GXDQor44G/44KE44KA44KJLOOBjeOCiOOBvuOBlQ0KK+OBv+OChOOCguOBqCzjgobjgYbjgZgNCivjgb/jgoTjgoLjgags44Gy44KN44KG44GNDQor44G/44KI44GXLOOChuOBjeOBkw0KK+OCgOOBreOCgOOCiSzjgobjgZvjgYQNCivjgoDjgonjgYvjgZ8s44Gf44Gg44G+44GVDQor44KA44KJ44Ga44G/LOOBoeOBiA0KK+OCgOOCieOBnyzjgb7jgaHjgZMNCivjgoDjgonjgZ8s44GC44KEDQor44KA44KJ44KC44GoLOOBsuOCjeOChuOBjQ0KK+OCgOOCieOChOOBvizjgZ/jgYvjgZcNCivjgoLjgoos44Gf44GL44Gu44G2DQor44KC44KKLOOBsuOBp+OBjQ0KK+OCguOCiizjgb7jgZXjgY0NCivjgoLjgoos44G/44GN44GTDQor44KC44KKLOOBruOBtuOBguOBjQ0KK+OCguOCiuOBhuOBoSzjgYLjgaTjgZcNCivjgoLjgorjgZfjgZ8s44Gq44GK44KEDQor44KC44KK44Gf44GrLOOBguOBjeOCiQ0KK+OCguOCiuOCguOBqCzjgYvjgYrjgooNCivjgoLjgorjgoTjgb4s44GC44KEDQor44KC44KN44GILOOChuOBuOOBhA0KK+OChOOBlCzjgb7jgZXjgoQNCivjgoTjgZnjgYzjgY0s44Gk44GL44GVDQor44KE44GZ44GgLOOBoeOBi+OBteOBvw0KK+OChOOBmeOCguOBqCzjgajjgoLjgobjgY0NCivjgoTjgaTjgarjgb8s44G/44Gk44Gu44KKDQor44KE44Gq44GO44GV44KPLOOBj+OBv+OBkw0KK+OChOOBquOBjuOBr+OCiSzjgb7jgY0NCivjgoTjgbbjgarjgYss44GL44Ga44Gu44G2DQor44KE44G+44GG44GhLOOBquOBig0KK+OChOOBvuOBiuOBiyzjgarjgYrjgZMNCivjgoTjgb7jgYrjgYss44GL44Gk44G+44GVDQor44KE44G+44GK44GNLOOBguOBpOOBsuOBkw0KK+OChOOBvuOBjOOBnyzjgY/jgb/jgZMNCivjgoTjgb7jgZDjgaEs44G/44GNDQor44KE44G+44GQ44GhLOOBruOCiuOBkw0KK+OChOOBvuOBl+OBnyzjgobjgbLjgaHjgo0NCivjgoTjgb7jgZfjgZ8s44GL44Ga44GoDQor44KE44G+44GgLOOBkuOCkw0KK+OChOOBvuOBoCzjgZPjgYbjgZgNCivjgoTjgb7jgaAs44Gy44KN44GL44GaDQor44KE44G+44GgLOOBv+OBruOCiw0KK+OChOOBvuOBoCzjgajjgoLjgbXjgb8NCivjgoTjgb7jgarjgYss44GC44KE44GTDQor44KE44G+44KA44KJLOOBguOBpOOBlw0KK+OChOOBvuOCgOOCjSzjgYLjgY3jgYoNCivjgoTjgb7jgoLjgags44GR44GE44GZ44GRDQor44KE44G+44KC44GoLOOBl+OCk+OBmeOBkQ0KK+OChOOBvuOCguOBqCzjgZ/jgYTjgZcNCivjgoTjgb7jgoLjgags44Gf44GL44KG44GNDQor44KE44G+44KC44GoLOOBn+OBoOOBlw0KK+OChOOBvuOCguOBqCzjgarjgYrjgoQNCivjgoTjgb7jgoLjgags44Gy44KN44KG44GNDQor44KE44G+44KC44GoLOOBvuOBk+OBqA0KK+OChOOBvuOCguOBqCzjgZfjgpPjgYTjgaENCivjgobjgYLjgZUs44Gy44KN44GTDQor44KG44GNLOOBvuOBqeOBiw0KK+OChuOCiuOChOOBvizjgaHjgYgNCivjgojjgZPjgZ8s44Gh44GIDQor44KI44GT44Gv44G+LOOBmOOCheOCk+OBmA0KK+OCiOOBk+OChOOBvizjga7jgbbjgZMNCivjgojjgZPjgoTjgb4s44GC44KEDQor44KI44GX44GK44GLLOOBvuOBjeOBkw0KK+OCiOOBl+OBiuOBiyzjgoHjgZDjgb8NCivjgojjgZfjgYrjgYss44GE44Gj44Gb44GEDQor44KI44GX44GgLOOBi+OBquOBkw0KK+OCiOOBl+OBoCzjgZPjgYbjgbjjgYQNCivjgojjgZfjgaAs44Gm44KL44Gy44GTDQor44KI44GX44GgLOOBvuOBleOChuOBjQ0KK+OCiOOBl+OBoCzjgb/jgaTjgojjgZcNCivjgojjgZfjgaAs44G/44Gu44KLDQor44KI44GX44GuLOOBl+OBruOBtg0KK+OCiOOBl+OBsuOCjSzjgajjgYrjgosNCivjgojjgZfjgb7jgaQs44GC44GZ44GLDQor44KI44GX44KA44KJLOOCj+OBn+OCiw0KK+OCiOOBl+OCgOOCiSzjgY/jgb/jgZMNCivjgo/jgYvjgb7jgaQs44Gq44GK44GTDQor44KP44GN44GfLOOBruOCiuOBsuOCjQ0KK+OCj+OBjeOBnyzjgYLjgaTjgbLjgZUNCivjgo/jgZfjgYos44Go44GX44KG44GNDQor44KP44GX44GW44KPLOOBguOChuOBvw0KK+OCj+OBoCzjgYvjgZrjgY0NCivjgo/jgaAs44GN44KH44GG44GTDQor44KP44GgLOOBvuOBhOOBkw0KK+OCj+OBoCzjgb7jgorjgZMNCivjgo/jgaAs44Gf44GL44Go44GXDQor44KP44Gf44Gq44G5LOOBquOBiuOBkw0KK+OCj+OBn+OBquOBuSzjgarjgYrjgZMNCivjgo/jgZ/jgarjgbks44G+44KK44GIDQor44KP44Gf44Gq44G5LOOChuOBhuOBmA0KK+OCj+OBn+OBquOBuSzjgobjgYbjgZgNCivjgo/jgZ/jgarjgbks44KG44GLDQor44KP44Gf44Gq44G5LOOChuOBvw0KK+OChOOBvuOBkOOBoSzjgajjgYrjgosNCivjgZnjgZrjgY0s44Gg44GE44GZ44GRDQor44GV44GV44GuLOOBi+OBmuOBteOBvw0KK+OBi+OBreOBkyzjgbLjgo3jgoQNCivjgY/jgbzjgZ8s44GL44Ga44GKDQor44GT44GZ44GR44GM44KPLOOBkeOCk+OBl+OCjQ0KK+OBi+OBquOBhCzjgojjgZfjgYLjgY0NCivjgYvjgajjgYYs44Gh44GC44GNDQor44GT44Gg44G+LOOBhOOBleOCgA0KK+OBk+OBsOOChOOBlyzjgajjgZfjgYoNCivjgZPjgZjjgb4s44GE44GV44GKDQor44GL44KB44KE44G+LOOBn+OBkeOBlw0KK+OBj+OCieOBsOOChOOBlyzjgYvjgaTjgYgNCivjgYvjgpPjgaAs44GL44Ga44GX44KTDQor44GT44KT44GuLOOBqOOBj+OBmA0KK+OBi+OCj+OBl+OBvizjgbLjgo3jgZcNCivjgYvjgo/jgYvjgb8s44GN44KI44GK44G/DQor44GL44Gq44GLLOOCiOOBl+OBsuOCjQ0KK+OBi+OCj+OCgOOCiSzjgojjgorjgb/jgaQNCivjgY3jgoDjgoks44GR44GE44GYDQor44GL44GZ44GMLOOCguOBqOOBmA0KK+OBk+OBmOOBvizjgZjjgo0NCivjgYvjgo/jga4s44GZ44GZ44KADQor44GL44KP44GqLOOBn+OBkeOBlw0KK+OBk+OBmuOBvizjgozjgYTjgZMNCivjgYvjgo/jgZXjgY0s44G+44GV44Gq44GKDQor44GL44Gf44GuLOOBleOBtuOCjQ0KK+OBi+OBn+OBoCzjgZPjgYbjgYTjgaENCivjgY3jgY/jgaEs44Gf44GL44Gy44GTDQor44GL44G/44GG44KJLOOBqOOBl+OBsuOCjQ0KK+OBi+OBreOBoCzjgajjgYrjgosNCivjgZPjga4s44GL44Ga44Gy44GTDQor44GL44KP44KC44GoLOOBruOBtuOBig0KK+OBi+OBsOOChCzjgYvjgZrjgobjgY0NCivjgZPjgbbjgY/jgo0s44GY44KF44KT44GYDQor44GP44G+44GM44GELOOBvuOBleOBquOCig0KK+OBk+OBrizjgZPjgYbjgZgNCivjgZPjgoTjgb4s44GL44GP44Gf44KN44GGDQor44GN44Gf44GX44KNLOOBsuOCjeOBhuOBvw0KK+OBk+OBoOOBvizjgZfjgoXjgavjgaENCivjgYvjgajjgYYs44Gy44KN44GXDQor44GN44KA44KJLOOCguOBqOOCiOOBlw0KK+OBk+OBhOOBpyzjgZPjgYbjgYTjgaENCivjgY/jgoTjgb4s44KI44GX44G+44GVDQor44GN44KK44Gv44KJLOOBn+OBkeOBlw0KK+OBi+OCiCzjgb7jgZXjgYLjgY0NCivjgYvjga3jgZMs44G+44GV44GC44GNDQor44GT44Gv44KJLOOBguOBjeOBig0KK+OBi+OBqOOBhizjgb7jgZXjgYrjgb8NCivjgZPjgYQs44GL44Ga44Gy44GnDQor44GL44KE44G+LOOBpuOBpOOBig0KK+OBk+OBhOOBkSzjgoTjgZnjgYoNCivjgZPjgZjjgb4s44GX44GS44G/DQor44GT44G+44GkLOOBsuOCjeOBlw0KK+OBjeOBn+OCgOOCiSzjgZHjgpPjgY3jgaENCivjgY3jgZ/jgo/jgY0s44KG44GG44GYDQor44GL44GV44GY44G+LOOBsuOBp+OBjQ0KK+OBjeOCgOOCiSzjgZfjgofjgbLjgaENCivjgYvjgb/jgZDjgaEs44Gy44Go44GXDQor44GL44Go44GGLOOBn+OBkeOBlw0KK+OBi+OCj+OCgOOCiSzjgYjjgYTjgYTjgaENCivjgYvjganjgZ8s44Go44GX44Gv44KLDQor44GK44Gf44GRLOOBhOOBleOBig0KK+OBi+OBqOOBhizjgZ/jgZHjgZcNCivjgY3jga4s44KC44KK44Gy44KNDQor44GL44G/44GY44KHLOOBvuOBleOBn+OBoA0KK+OBjeOBj+OBoSzjgajjgZfjgYoNCivjgYvjgY3jgYbjgaEs44GE44KP44GKDQor44GT44GY44G+LOOChuOBjeOBig0KK+OBi+OBn+OBiuOBiyzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgY/jgbzjgZ8s44GE44GV44GKDQor44GN44Gf44GW44KPLOOBj+OBq+OBsuOBkw0KK+OBk+OBv+OBrSzjgYLjgY3jgagNCivjgY/jgbws44G+44GV44GYDQor44GN44Gf44Ga44KBLOOBruOCiuOCiOOBlw0KK+OBk+OBsOOChOOBlyzjgZzjgavjgaHjgo0NCivjgYvjgo/jgZDjgaEs44Gy44KN44G144G/DQor44GR44GM44GV44KPLOOBpuOBpOOCjQ0KK+OBk+OBoSzjgZXjgaHjgYoNCivjgZPjgoTjgb4s44G144GY44GKDQor44GL44KP44GN44GfLOOBqOOBl+OBsuOBqA0KK+OBi+OCj+OBv+OBpCzjga7jgbbjgZ/jgYsNCivjgYvjgZ/jgbLjgoks44GX44GS44KLDQor44GL44KP44GO44GXLOOBqOOCguOBvw0KK+OBk+OCk+OBqSzjga7jgbbjgbLjgZUNCivjgY3jgoDjgoks44G+44GV44G/DQor44GP44G844KE44G+LOOBvuOBleOChuOBjQ0KK+OBj+OBvuOCguOBqCzjgbLjgo3jgbLjgZUNCivjgYvjgo/jgZ8s44G+44GV44G/DQor44GP44Gr44Gu44G2LOOBl+OCheOCk+OBmeOBkQ0KK+OBi+OBvuOBoCzjgbLjgo3jgobjgY0NCivjgYvjgY8s44G+44GV44GC44GNDQor44GL44Gt44GTLOOCguOBqOOChuOBjQ0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgobjgY0NCivjgYvjgZfjgYos44GL44Ga44Go44GXDQor44GL44Gq44GE44KPLOOBi+OBpOOBig0KK+OBkeOCk+OCguOBoSzjgojjgZfjgbLjgZMNCivjgY3jgY/jgaEs44Gy44GV44GXDQor44GL44GW44G+LOOBv+OBoeOBig0KK+OBk+OBvuOBpOOCguOBqCzjgajjgYrjgosNCivjgZPjgpPjgaks44Gf44GL44Gy44GnDQor44GN44GP44GX44G+LOOBl+OCh+OBng0KK+OBk+OBsOOChOOBlyzjgYLjgaTjgYoNCivjgY/jgb7jgYzjgYQs44Gy44KN44GXDQor44GL44Go44GGLOOCiOOBl+OBv+OBpA0KK+OBvuOCi+OBsOOChOOBlyzjgYLjgY3jgbLjgZMNCivjgoDjgags44GX44KT44Gf44KN44GGDQor44G/44Gf44GrLOOBvuOBleOBjQ0KK+OBv+OCjyzjgbXjgb/jgogNCivjgZfjgb/jgZos44KE44GZ44GKDQor44G/44Ga44GuLOOBn+OBi+OBlw0KK+OBvuOBoeOBoCzjgYrjgZXjgoANCivjgb7jgaTjgYQs44GK44GV44KADQor44G/44GG44KJLOOBguOBjeOCiQ0KK+OBsuOBrizjgZHjgpPjgZgNCivjgoDjgonjgYvjgb8s44GR44GE44GYDQor44G/44KE44GuLOOBn+OBoOOBlw0KK+OBvuOCi+OBhCzjgYrjgZXjgoANCivjgoDjgonjgZXjgY0s44KE44GZ44GC44GNDQor44G+44GV44GLLOOBiOOBhOOBkw0KK+OBv+OBreOBnyzjgYvjgaTjgbLjgZMNCivjgb7jgaTjgarjgYws44GL44Gk44G+44GVDQor44G/44Gq44GM44KPLOOBm+OBhOOBkw0KK+OBv+OChOOBkSzjgb7jgZXjgajjgZcNCivjgb7jgaTjgoLjgags44GL44Ga44Gy44GTDQor44G/44GV44KPLOOBn+OBi+OBlw0KK+OBvuOBiOOBoCzjgYvjgaTjgb8NCivjgYbjgaDjgYzjgo8s44Gf44GR44GXDQor44G/44KE44Gv44KJLOOBvuOBleOBlw0KK+OCgOOCieOBhCzjgaTjgajjgoANCivjgb7jgaTjgoLjgoos44Go44GX44GKDQor44G+44GV44GNLOOBi+OBmuOBig0KK+OBv+OBhuOCiSzjgYvjgZrjgZ/jgb8NCivjgoLjgajjgb/jgoQs44KK44KF44Gy44GhDQor44KA44KJ44GL44G/LOOCiuOCh+OBsuOBoQ0KK+OBvuOBqOOBsCzjgb7jgZXjgbLjgo0NCivjgb/jgYbjgoks44Gy44KN44KG44GNDQor44G+44Gk44GL44KPLOOBvuOBleOBruOCig0KK+OBv+OBmuOBn+OBqyzjgajjgZfjgYoNCivjgb/jgoTjga4s44Gy44Gn44Gu44KKDQor44G+44Gk44GgLOOBn+OBkeOBvw0KK+OBv+OBmSzjgobjgZ/jgYsNCivjgb7jgaTjgoTjgb4s44Gb44GE44GYDQor44G/44KE44KC44GoLOOBquOBiuOBguOBjQ0KK+OBv+OBmuOBrizjgZHjgpPjgYTjgaENCivjgb7jgovjgoTjgb4s44Go44GX44KG44GNDQor44G+44KL44GTLOOBk+OBng0KK+OCguOBoeOBoCzjgajjgZfjgYvjgaQNCivjgoLjgajjga/jgZcs44GT44GG44GYDQor44G/44Ga44KELOOBl+OCh+OBmA0KK+OBv+OChOOBluOBjSzjgZfjgZLjgY0NCivjgb/jgoTjgYzjgo8s44GN44GP44GKDQor44KA44KJ44GX44G+LOOBiOOBhOOBmA0KK+OBvuOBmeOBleOBkyzjgY3jgojjgZcNCivjgoLjgoos44Gy44KN44G144G/DQor44KC44KK44GfLOOBvuOBleOBguOBjQ0KK+OBv+OBquOBvyzjgajjgZfjgYoNCivjgb/jgoTjgY0s44GL44Ga44Gy44KNDQor44KC44KK44KE44G+LOOBquOBiuOBsuOBkw0KK+OBv+OBmuOBnyzjgb7jgZXjgobjgY0NCivjgb7jgaTjgYQs44G144GV44Gh44GLDQor44G+44Gk44GKLOOBguOBjeOCiQ0KK+OBvuOBpOOBl+OBnyzjgajjgZfjgYgNCivjgZPjgbDjgoTjgZcs44Gf44Gg44GC44GkDQor44KA44GL44GILOOBteOBv+OBig0KK+OCguOCiuOBhCzjgZvjgYTjgZgNCivjgoLjgorjgZ8s44G/44Gh44Gf44GLDQor44KA44GL44GELOOBqOOBiuOCiw0KK+OBvuOBpOOBiizjgb7jgoLjgosNCivjgoDjgonjgoTjgb4s44GT44GG44GYDQor44G+44Gk44KC44GoLOOBv+OBoeOBvuOBlQ0KK+OBv+OChOOBleOBqCzjgb/jgaTjgosNCivjgb/jgoTjgZbjgo8s44Gf44Gg44GKDQor44KC44KK44KA44KJLOOBm+OBhOOBhOOBoQ0KK+OCgOOCieOBrizjgYTjgaHjgo3jgYYNCivjgb7jgZnjgaAs44GL44Ga44GKDQor44KA44KJ44GfLOOCiOOBl+OBguOBjQ0KK+OBv+OChOOBleOBiyzjgb7jgZXjgYoNCivjgoLjgajjgbDjgoTjgZcs44GR44KT44GYDQor44G/44Ga44GuLOOCiOOBl+OBig0KK+OCguOCguOBhCzjgb/jgaTjgZANCivjgb7jgaTjgaAs44G+44GV44KIDQor44GZ44GM44KP44KJLOOChuOBn+OBiw0KK+OBvuOBpOOBsOOCiSzjgYvjgaTjgb8NCivjgb7jgaTjgoLjgags44G+44GV44GYDQor44G/44KE44Gv44KJLOOBjuOCh+OBmA0KK+OCgOOCieOBhOOBlyzjgZ/jgYTjgZ4NCivjgb7jgaTjgoDjgoks44G+44GV44GKDQor44G/44KI44GXLOOBqOOBjeOCjw0KK+OCguOCiuOCguOBqCzjgojjgZfjgbLjgZMNCivjgb/jgZrjgZ/jgass44Go44GX44GKDQor44G+44Gk44GwLOOBv+OBruOCiw0KK+OBvuOBpOOBhCzjgojjgZfjgYoNCivjgoDjgonjgYvjgb8s44Gf44GL44GXDQor44KC44KK44GfLOOBsuOBp+OBig0KK+OCgOOCieOBnyzjgb/jga7jgosNCivjgb7jgZXjgY0s44Gu44G244GKDQor44G/44KE44GW44GNLOOBkeOCk+OBmA0KK+OBvuOBpOOBsOOCiSzjgb7jgZXjgb/jgaQNCivjgoDjgonjgb7jgaQs44KG44KK44GTDQor44KC44KKLOOCiOOBl+OBig0KK+OCguOCiuOCgOOCiSzjgajjgY/jgYoNCivjgZnjgo8s44Gq44GK44GIDQor44GT44KP44Gf44KKLOOBvuOBk+OBqA0KK+OBvuOBpOOBluOBjSzjgb/jga7jgosNCivjgb7jgaPjgZXjgY0s44GC44Gk44KI44GXDQor44G/44Gf44GPLOOBvuOCguOCiw0KK+OBvuOBpOOBi+OCjyzjgb7jgoLjgosNCivjgoLjgY4s44Gm44Gk44KI44GXDQor44G+44G244GhLOOBi+OBmuOBig0KK+OBvuOBpOOCguOBqCzjgZ/jgZHjgZcNCivjgoLjgoos44GC44Gk44GXDQor44G+44Gk44GG44KJLOOBi+OCkw0KK+OBvuOBiOOBoCzjgYvjgZrjgYoNCivjgb7jgZnjgaAs44GX44GS44Gv44KLDQor44G+44GI44Gr44GXLOOBl+OBkuOBig0KK+OBvuOCi+OChOOBvizjgbLjgo3jgZcNCivjgb7jgaTjgaAs44KI44GX44GNDQor44G+44GNLOOBl+OCk+OBhOOBoQ0KK+OCguOBhuOBiCzjgYLjgaTjgZcNCivjgoDjgonjgYQs44Gu44G244KG44GNDQor44G+44Gk44GELOOBvuOBleOBi+OBmg0KK+OCguOCiuOBnyzjgojjgZfjgb8NCivjgb7jgYjjgaAs44Gq44GK44GNDQor44KA44KJ44GG44GhLOOCiOOBl+OBruOBtg0KK+OBv+OBpOOChOOBmSzjgb7jgZXjgbLjgo0NCivjgoLjgoos44GR44GE44GeDQor44G+44Gk44GgLOOBleOBqOOBlw0KK+OBvuOBpOOBiizjgZfjgZMNCivjgb7jgovjgoTjgb4s44GN44KI44GXDQor44G+44Gk44GM44GILOOBqOOBl+OCjQ0KK+OBi+OBv+OBj+OCiSzjgorjgofjgbLjgaENCivjgb/jganjgorjgYvjgo8s44GL44Ga44Gq44KKDQor44G+44GZ44GgLOOBguOBjeOBig0KK+OBv+OBpuOCiSzjgbLjgo3jgZcNCivjgb7jgaTjgarjgYws44Gy44KN44GXDQor44KC44KK44GK44GLLOOBquOBiuOChA0KK+OBv+OBneOBiizjgZ/jgYvjgYoNCivjgoDjgonjgoTjgb4s44Go44GX44Gy44GTDQor44KC44KK44KC44GoLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OCguOCiizjgajjgojjgb8NCivjgb7jgZnjgaAs44GP44Gr44Gy44GTDQor44G/44KE44KC44GoLOOBvuOBleOCiw0KK+OCgOOCieOBnyzjgZ/jgYvjgbbjgb8NCivjgb/jgarjgb/jgZXjgo8s44GE44GV44KADQor44G+44GX44G+LOOBguOBjeOCiQ0KK+OCguOCiuOBkOOBoSzjgZHjgpPjgZgNCivjgb7jgaTjgYQs44GV44Go44GXDQor44G+44GI44GL44KPLOOBvuOBleOBteOBvw0KK+OCguOBoeOBmuOBjSzjgYLjgY3jgYoNCivjgb7jgZnjgaAs44GX44GS44Gy44KNDQor44G+44Gk44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OCguOCiuOBquOBjCzjgobjgYbjgZjjgo0NCivjgb7jgZnjgaAs44GX44GS44Gu44G2DQor44G/44GG44KJLOOChOOBmeOBig0KK+OBvuOBpOOBrizjgYLjgY3jgokNCivjgb7jgaTjgYrjgYss44KI44GX44G/DQor44G+44Gh44GELOOBiOOBpOOBig0KK+OBv+OBmuOBn+OBqyzjgYvjgaTjgojjgZcNCivjgb7jgaTjgoLjgags44GX44GS44KLDQor44G+44GV44GNLOOBpOOBqOOCgA0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgZ/jgYsNCivjgb/jgaTjgoQs44GL44Gk44G+44GVDQor44G/44Ga44GuLOOCiOOBl+OBpuOCiw0KK+OBvuOBiOOBoCzjgYvjgZrjgbLjgo0NCivjgoDjgonjgb7jgaQs44GZ44G/44Gy44KNDQor44KA44GV44GX44GuLOOCiOOBl+OBguOBjQ0KK+OBvuOBiOOBr+OBnyzjgZ/jgYvjgZcNCivjgb7jgaTjgZbjgo8s44Gy44Go44GXDQor44G/44Gk44GELOOBmOOCheOCkw0KK+OCguOCguOBoCzjgZfjgpPjgY3jgaENCivjgb7jgaTjgYos44GY44KF44KT44GeDQor44G/44KPLOOBi+OBmuOBruOCig0KK+OCgOOCieOBi+OBvyzjgbLjgo3jgZ/jgb8NCivjgb/jgYvjgb8s44GP44Gr44GKDQor44Gs44GL44GW44KPLOOBn+OBoOOBig0KK+OBquOBi+OCgOOCiSzjgojjgZfjgabjgosNCivjgavjgZfjgoDjgoks44GT44GG44GE44GhDQor44Gr44Gj44GfLOOBqOOBl+OBig0KK+OBquOBjOOBpOOChizjgojjgZfjga7jgooNCivjgavjgYTjga4s44Gy44Gn44GoDQor44Gf44G244GhLOOBn+OBkeOBlw0KK+OBq+OBl+OBrizjgbLjgafjgoTjgZkNCivjgazjgYvjgZ8s44GY44KNDQor44Gr44GX44KA44KJLOOBteOBv+OBig0KK+OBquOBjOOBrizjgZHjgpPjgZgNCivjgarjgYvjgYzjgo8s44GC44GN44KJDQor44Gr44GX44KE44G+LOOBvuOBleOBsuOBkw0KK+OBquOBi+OBmOOBvizjgojjgZfjgYoNCivjgavjgZfjgaAs44KI44GX44GL44GaDQor44Gq44GL44KA44KJLOOBv+OBpOOBi+OBmg0KK+OBruOCgOOCiSzjgYvjgaTjgb8NCivjgarjgYvjgoLjgags44GX44KF44GYDQor44Gq44GL44GM44KPLOOBpuOBpOOChA0KK+OBquOCi+OBleOCjyzjga/jgovjgY0NCivjgarjgYTjgajjgYYs44GX44KT44GYDQor44Gu44G5LOOBl+OBmuOBiA0KK+OBq+OBl+OBqizjgY/jgavjgbLjgZMNCivjga7jgoDjgoks44GR44KT44GYDQor44Gq44GL44KA44KJLOOBqOOBjeOChOOBmQ0KK+OBq+OBi+OBhOOBqSzjgbLjgo3jgZcNCivjgarjgYvjgaAs44GR44KT44GYDQor44Gr44GX44GqLOOBleOBtuOCjQ0KK+OBquOCiuOBnyzjgZ/jgoLjgaQNCivjga7jgZDjgaEs44Gy44GV44GKDQor44Gu44KELOOBn+OBi+OChuOBjQ0KK+OBquOBjOOBhCzjgojjgZfjgYLjgY0NCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44Gr44GE44Ga44G+LOOBvuOBleOBsuOCjQ0KK+OBquOBi+OBjOOBvyzjgb/jgaTjgYoNCivjgarjgYzjgZ8s44G144G/44GKDQor44Gr44GX44GW44KPLOOChuOBjeOBig0KK+OBruOBmyzjga7jgorjgYLjgY0NCivjgarjgYzjgYQs44GL44Ga44Gf44G/DQor44Gr44GX44GW44KPLOOBpOOBreOBig0KK+OBquOBi+OBr+OBnyzjgZ/jgZHjgYoNCivjgarjgYvjgZjjgb4s44KI44GX44Gy44GnDQor44Gq44GL44GgLOOChOOBmeOBruOCig0KK+OBruOBquOBiyzjgZ/jgaDjgZcNCivjgarjgYvjgYzjgo8s44GX44KT44GY44KNDQor44Gq44GL44GX44G+LOOCiOOBl+OChOOBmQ0KK+OBquOBi+OCguOBqCzjgZ/jgaTjgYoNCivjgavjgZfjgYrjgYss44GN44G/44Gy44GoDQor44Gr44GX44G+44GILOOBqOOBl+OBig0KK+OBquOBi+OCgOOCiSzjgojjgZfjgbLjgo0NCivjgarjgYvjgavjgZcs44GT44GNDQor44Gu44GgLOOBvuOBleOBqA0KK+OBquOBi+OCgOOCiSzjgY3jgojjgZcNCivjgarjgYvjgZbjgo8s44Gf44GL44G/DQor44Gr44GX44GgLOOBl+OCheOBsuOBoQ0KK+OBq+OBl+OBoCzjgY3jgZfjgYoNCivjgavjgYQs44Gv44Gk44GIDQor44KE44G+44KC44GoLOOBmOOCheOCjQ0KK+OBquOBi+OBhuOBoSzjgobjgY3jgYoNCivjgarjgYvjgZjjgb4s44G+44GV44GKDQor44Gq44GL44KA44KJLOOBi+OBmuOBqOOBlw0KK+OBruOCgOOCiSzjgbLjgo3jgZcNCivjgavjgZfjgoDjgoks44G+44Gk44GKDQor44Gu44Gq44GLLOOBvuOBleOBjQ0KK+OBq+OBl+OCgOOCiSzjgb7jgZXjgYLjgY0NCivjgavjgZfjgYos44Gf44G/44GKDQor44Gq44GM44GKLOOBvuOBleOCiw0KK+OBq+OBhOOBvyzjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44GX44KT44Gf44KN44GGDQor44Gt44Ga44GLLOOBvuOBleOBig0KK+OBquOBi+OCgOOCiSzjgYvjgZrjgYoNCivjgarjgYvjgZbjgags44KA44Gk44KEDQor44GC44GV44GuLOOBguOBjeOBsuOBkw0KK+OBruOBjOOBvyzjgorjgofjgbLjgaENCivjgarjgYvjgZjjgb4s44KI44GX44KNDQor44Gq44GE44Go44GGLOOBn+OBoOOChuOBjQ0KK+OBquOBi+OCgOOCiSzjgorjgofjgZgNCivjgarjgYvjgavjgZcs44Gy44Go44GXDQor44Gq44GL44GgLOOChOOBmeOBig0KK+OBquOBjOOBleOCjyzjgYvjgZrjgZ/jgYsNCivjgarjgYzjga4s44G+44GV44G/DQor44Gr44Gj44GfLOOBj+OBq+OBsuOBkw0KK+OBquOCk+OBsCzjgoTjgZnjgbLjgo0NCivjga7jgZrjgYgs44Gf44Gg44Gy44GTDQor44Gq44GM44G/LOOBqOOBl+OBsuOBpw0KK+OBquOBjOOBhCzjgY3jgojjgZcNCivjgarjgYvjga/jgoks44GN44KI44GXDQor44Gq44GL44GY44G+LOOBkeOCk+OBmA0KK+OBquOBi+OBmOOBvizjgbLjgafjgobjgY0NCivjgavjgZfjgaAs44KI44GX44Gu44KKDQor44Gq44GK44GELOOChuOBjeOBqOOBlw0KK+OBquOBueOBl+OBvizjgabjgaTjgoQNCivjgarjgYvjga4s44GY44KF44KTDQor44Gq44GL44KA44KJLOOBj+OBq+OBsuOCjQ0KK+OBruOBoCzjgYvjgZrjgbLjgZMNCivjgarjgYvjgZss44GL44Ga44GC44GNDQor44Gq44GL44GY44G+LOOCiOOBl+OBruOCig0KK+OBquOBjOOBleOCjyzjgY3jgojjgYLjgY0NCivjgavjgbjjgYQs44Gf44G/44GKDQor44Gq44GM44GELOOBn+OBi+OBlw0KK+OBquOBi+OBl+OBvizjgYvjgZrjgobjgY0NCivjgarjgYvjgYos44KG44Gf44GLDQor44Gq44GL44GM44KPLOOBv+OBpOOBsuOCjQ0KK+OBquOBhOOBqOOBhizjgY/jgavjgb/jgaQNCivjga7jgZjjgb4s44Gy44KN44GXDQor44Gq44GM44GuLOOBmOOCheOBq+OBoQ0KK+OBq+OBl+OBoCzjgb/jgZrjgbsNCivjgarjgYvjgaAs44Gf44GR44KI44GXDQor44Gq44GL44Gv44KJLOOBi+OBpOOBig0KK+OBquOBi+OBmOOBvizjgYLjgY3jgbLjgZMNCivjga3jgoLjgags44GX44Gh44KNDQor44Gq44GL44KA44KJLOOCiOOBl+OBvuOBlQ0KK+OBquOBjOOBqOOCgizjgZfjgofjgbLjgaENCivjgarjgYvjgoDjgoks44Gv44KL44GKDQor44Gq44GL44KE44G+LOOBv+OBpOOCiOOBlw0KK+OBquOBi+OCgOOCiSzjgajjgZfjgYLjgY0NCivjgarjgYvjgoDjgoks44G/44Gk44GX44GSDQor44Gu44GY44G+LOOBn+OBoOOBlw0KK+OBquOBjOOBteOBoSzjgb/jgaTjgogNCivjgarjgYvjga4s44KK44KH44GZ44GRDQor44Gr44GX44KE44G+LOOBn+OBi+OBig0KK+OBquOBi+OCgOOCiSzjgZvjgYQNCivjgarjgYzjgZfjgb4s44Gu44G244GKDQor44Gr44KPLOOBk+OBhuOBhOOBoeOCjQ0KK+OBquOBi+OBrizjgobjgZnjgZENCivjgYrjgavjgZbjgo8s44KG44GN44GKDQor44GK44GX44GL44GfLOOBi+OBmuOBig0KK+OBiuOBiyzjgY3jgojjgZcNCivjgYrjgY/jgoTjgb4s44Gf44GL44Gu44GZ44GRDQor44GK44GNLOOCgOOBreOBn+OBiw0KK+OBiuOBi+OBv+OChCzjgY3jgojjgZcNCivjgYrjgZDjgoks44GR44KT44GYDQor44GK44GnLOOBvuOBleOBvw0KK+OBiuOBruOBoCzjgbLjgajjgb8NCivjgYrjgavjgZcs44KI44GX44GKDQor44GK44GP44GgLOOBu+OBmuOBvw0KK+OBiuOBj+OBoCzjgbXjgb/jga7jgooNCivjgYrjgYzjgo8s44Gm44Gk44KNDQor44GK44GuLOOChOOBmeOCjQ0KK+OBiuOBmeOBvyzjgZTjgYTjgaENCivjgYrjgaTjgYss44GX44KT44GE44GhDQor44GK44Go44KCLOOBvuOBleOChuOBjQ0KK+OBiuOBi+OBluOBjSzjgarjgYrjgZgNCivjgYrjga/jgZcs44KG44Gf44GLDQor44GK44GO44GuLOOChOOBmeOBguOBjQ0KK+OBiuOBleOBoCzjgobjgY3jgYoNCivjgYrjgbAs44G+44GV44GKDQor44GK44GX44G+LOOBi+OBpOOBsuOCjQ0KK+OBiuOBi+OCjyzjga7jgbzjgosNCivjgYrjgYvjgoLjgags44GZ44G/44GKDQor44GK44GM44KPLOOBkeOCk+OBmA0KK+OBiuOBrizjgb7jgZXjgY0NCivjgYrjgYvjga4s44G+44GV44Gu44KKDQor44GK44GW44KPLOOBvuOBleOBsuOBkw0KK+OBiuOBr+OBjyzjgb7jgZXjgY0NCivjgYrjgZfjgZ/jgass44GN44KH44GE44Gh44KN44GGDQor44GK44GW44KPLOOBqOOBl+OBig0KK+OBiuOBr+OBlyzjgZPjgYbjgZgNCivjgYrjga/jgZ8s44G+44GV44GKDQor44GK44Gu44Gn44KJLOOBk+OBhuOBmA0KK+OBiuOBrizjgZ/jgYvjgZcNCivjgYrjgbvjgYss44G+44GV44GC44GNDQor44GK44GuLOOChuOBhuOBmA0KK+OBiuOBr+OBlyzjgbLjgo3jgZcNCivjgYrjgZ8s44G144G/44GKDQor44GK44KC44KKLOOBl+OBmuOBguOBjQ0KK+OBiuOBl+OBvizjgbLjgZXjgZcNCivjgYrjgYvjgoLjgags44GC44KE44GTDQor44Gy44KN44GbLOOBi+OBmuOChA0KK+OBiuOBv+OBmizjgbLjgo3jgZcNCivjgYrjga4s44Go44GK44KLDQor44GK44Gh44GC44GELOOBjeOCiOOBqA0KK+OBiuOBi+OBuSzjgajjgYrjgosNCivjgYrjgZ/jgass44KG44GN44G+44GVDQor44GK44GP44GuLOOBsuOCjeOBlw0KK+OBiuOBmeOBjCzjgZ/jgYvjgZcNCivjgYrjga7jgY0s44Gy44KN44GXDQor44GK44Gy44GXLOOBn+OBi+OBruOBtg0KK+OBiuOBi+OBoCzjgZPjgajjgY8NCivjgYrjgb/jgZjjgoMs44G/44KEDQor44GV44Gf44GRLOOBteOBv+OBig0KK+OBiuOBoOOBjizjgbXjgZjjgZMNCivjgYrjgZ8s44KI44GX44Gu44KKDQor44GK44G144GhLOOChuOBn+OBiw0KK+OBiuOBi+OCjyzjgZ/jgYvjgZcNCivjgYrjgYvjgaks44GR44KT44Gf44KN44GGDQor44GK44GV44KPLOOBkw0KK+OBiuOBjuOBleOCjyzjgZPjgYbjgYTjgaENCivjgYrjgYvjgbks44Go44KC44KG44GNDQor44GK44Go44KI44GXLOOChOOBmeOBig0KK+OBiuOBjOOCjyzjgb/jgaTjgYoNCivjgYrjgorjgYzjgZUs44G+44GV44Gy44GVDQor44GK44GwLOOBn+OBhA0KK+OBiuOBsOOBnyzjgYLjgY3jgbLjgo0NCivjgYrjga4s44GX44GS44GKDQor44GK44GV44GLLOOBkeOCk+OBhOOBoQ0KK+OBiuOBv+OBrSzjgYvjgYrjgosNCivjgYrjgZ8s44GY44KH44GYDQor44GE44Gu44GG44GILOOCguOBqOOBpOOBkA0KK+OBiuOBk+OBlyzjgobjgY3jgbLjgo0NCivjgYrjgZbjgo8s44Gk44Gt44GKDQor44GK44GL44G5LOOBr+OBoeOCjQ0KK+OBiuOBvOOCiSzjgZXjgajjgosNCivjgYrjgZ8s44Gf44Gg44KI44GXDQor44GK44GW44GNLOOBi+OBiuOCiw0KK+OBiuOBj+OBoCzjgZXjgajjgosNCivjgYrjgZbjgo8s44Gy44Gn44GNDQor44GK44GL44GgLOOChuOBjeOBsuOCjQ0KK+OBiuOBpOOBiyzjgYLjgaTjgZcNCivjgYrjga7jgafjgoks44Gy44Gn44GKDQor44GK44GX44GKLOOBn+OBpOOCjQ0KK+OBiuOBoOOBl+OBvizjgoTjgZnjgZ/jgZENCivjgYrjgZbjgY0s44KG44GN44GTDQor44G+44GI44GgLOOBn+OBi+OBlw0KK+OBiuOBjSzjgZ/jgYvjgojjgZcNCivjgYrjga7jgaAs44G+44GV44KEDQor44GK44Gq44GOLOOBkeOCk+OBng0KK+OBiuOBj+OBoCzjgojjgZfjgbLjgZMNCivjgYrjgbLjgoks44GC44GN44GKDQor44GK44Gu44GW44KPLOOBl+OBkuOBjQ0KK+OBiuOBjuOBr+OCiSzjgbLjgafjgYoNCivjgYrjgY/jgb4s44GR44GE44GE44GhDQor44GK44Gv44KJLOOBiOOBhOOBmOOCjQ0KK+OBiuOBjSzjgZjjgofjgbLjgaHjgo0NCivjgYrjgYzjgo8s44GY44KF44Gr44GhDQor44GK44Gy44KDLOOChOOBmeOBsuOCjQ0KK+OBiuOBleOCjyzjgabjgovjgYLjgY0NCivjgYrjga/jgoks44GZ44GZ44KADQor44GK44GgLOOBk+OBhuOBmA0KK+OBiuOBluOCjyzjgZPjgYbjgYTjgaENCivjgYrjgYzjgZ8s44Gf44Gg44GX44GSDQor44GK44GL44GuLOOBn+OBoOOBlw0KK+OBiuOBsuOBlyzjgZfjgZLjgosNCivjgYrjgarjgYQs44G/44Gk44GKDQor44GK44Gk44GLLOOBvuOBleOBig0KK+OBiuOBpOOBiyzjgajjgY3jgYgNCivjgYrjgYTjgacs44GC44GN44KJDQor44GK44GN44KE44G+LOOCiOOBl+OBjeOCiA0KK+OBiuOBkOOBlyzjgZvjgaTjgZgNCivjgYrjgaAs44Go44GX44Gy44GTDQor44GK44GL44Gw44KE44GXLOOBj+OBq+OBguOBjQ0KK+OBiuOBn+OBqyzjgYvjgZrjgYoNCivjgYrjgaTjgY0s44Gu44G244Gy44KNDQor44GK44GL44GgLOOBi+OBpOOBmeOBkQ0KK+OBiuOBmeOBvyzjgZ/jgaTjgoQNCivjgYrjgbLjgYzjgo8s44Gy44Gn44G7DQor44GK44GL44GgLOOBleOBtuOCjQ0KK+OBiuOBluOCjyzjgbLjgo3jgojjgZcNCivjgYrjgZ/jgass44Gf44GL44GTDQor44GK44GW44GNLOOBv+OBpOOBig0KK+OBiuOBnyzjgorjgofjgZnjgZENCivjgoTjgarjgY7jgoQs44GC44GN44GTDQor44Gq44GL44Gf44GrLOOBl+OBvg0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgobjgY0NCivjgb/jgY/jgass44GY44KF44KT44GTDQor44GZ44Ga44GNLOOBpuOBpOOBig0KK+OBr+OBoOOBrizjgojjgZfjgYLjgY0NCivjgb/jgoTjgb4s44GL44Ga44GTDQor44Gf44GL44Gv44GXLOOBguOBkeOBvw0KK+OBl+OCieOBiuOBjOOCjyzjgoTjgZnjgZcNCivjgarjgYvjgoDjgoks44Gf44Gg44Gy44KNDQor44G+44Gk44GW44GNLOOBmOOCheOCk+OBmA0KK+OChOOBvuOBl+OBnyzjgYLjgobjgb8NCivjgZfjgoLjgoTjgb4s44Gy44KN44GXDQor44G144Gf44KA44KJLOOBoeOBr+OCiw0KK+OBj+OCjyzjgZ/jgYvjga/jgosNCivjgarjgYvjgoDjgoks44GZ44GZ44KADQor44KI44GT44KE44G+LOOBi+OBmuOBsuOBkw0KK+OBsuOCi+OBvizjgabjgaTjgo0NCivjgZ/jgaHjgYvjgo8s44Gy44KN44KG44GNDQor44KP44GL44Gw44KE44GXLOOBvuOBleOBkw0KK+OBn+OBi+OBr+OBnyzjgobjgYvjgooNCivjgYLjgbks44GX44KT44GE44GhDQor44Gb44GNLOOBsuOBp+OBlw0KK+OChOOBvuOBluOBjSzjgojjgZfjgbLjgo0NCivjgoTjgb7jga0s44GY44KF44Gr44GhDQor44Gf44GW44KPLOOChuOBjeOBvuOBlQ0KK+OBi+OBmOOBi+OCjyzjgYvjgYrjgooNCivjgZXjgajjgYYs44G+44GV44GoDQor44GL44KP44GG44GhLOOCieOBhOOBnw0KK+OBiuOBsuOCg+OBvizjgYLjgZ3jgYsNCivjgZfjgpPjgb/jgocs44GN44GE44Gh44KN44GGDQor44Gf44Gh44KP44GgLOOBn+OBi+OCiOOBlw0KK+OBiuOBj+OBvCzjgZfjgZLjgosNCivjgajjgZQs44Gu44G244KG44GNDQor44Gq44GM44GP44KJLOOBn+OBi+OBlw0KK+OBhOOBqOOBhizjgajjgZfjgb/jgaQNCivjgoTjgb7jgZbjgY0s44Gy44KN44GC44GNDQor44GL44GW44G+LOOChuOBjeOBkw0KK+OBi+OCk+OBsOOChOOBlyzjgarjgYrjgb8NCivjgZXjgZXjga4s44Gm44KL44G/DQor44GL44KP44GX44G+LOOBqOOCgg0KK+OBl+OCk+OBkOOBhizjgYjjgb/jgZMNCivjgZPjgYTjgZrjgb8s44KK44KF44GUDQor44GL44Gt44GTLOOBsuOBqOOBlw0KK+OBk+OBsOOChOOBlyzjgojjgZfjgbLjgo0NCivjgYvjgoLjgZfjgZ8s44GY44KF44KT44GYDQor44Gf44KA44KJLOOBguOBleOBkw0KK+OBr+OBm+OBjOOCjyzjgb7jgZXjgbLjgo0NCivjgY/jgorjga/jgoks44G+44KK44GIDQor44GL44Gq44GK44GLLOOBruOBtuOBkw0KK+OBk+OBsOOChOOBlyzjgZjjgoXjgpPjgZMNCivjgbLjgYTjgZcs44Gq44GK44G/DQor44Gr44G444GELOOBpuOBpOOChA0KK+OBvuOCi+OBnyzjgbLjgo3jgobjgY0NCivjgajjgbLjgoPjgb4s44Gf44GL44Gv44KLDQor44Gb44GN44GW44KPLOOBkeOCk+OBneOBhg0KK+OBguOCiuOBvizjgZvjgYQNCivjgY/jgorjga/jgoks44Gv44KL44KG44GNDQor44GZ44G/44GuLOOBsuOBp+OBig0KK+OCiOOBl+OBoCzjgoHjgYTjgZMNCivjgY3jga7jgZfjgZ8s44G/44KG44GNDQor44GK44Gh44GC44GELOOBruOCiuOBguOBjQ0KK+OBhuOBvuOChOOBr+OCiSzjgZ/jgY/jgoQNCivjgbvjgZ3jgYvjgo8s44KI44GX44G/DQor44G144GL44GM44KPLOOBmeOBiOOBpOOBkA0KK+OBi+OCj+OCgOOCiSzjgZfjgoXjgYTjgaENCivjgb7jgaTjgYQs44GV44Gh44KIDQor44KI44GX44KC44GoLOOBn+OBi+OBlw0KK+OBhuOBquOBi+OBvyzjgbLjgo3jgbXjgb8NCivjgYvjga3jgb7jgaQs44Gy44KN44GXDQor44GL44KP44GL44G/LOOChuOBjeOBn+OBiw0KK+OBqOOCiOOBoCzjgZ/jgYvjgobjgY0NCivjgoTjga4s44GE44GP44GTDQor44Gb44GNLOOBquOBiuOBkw0KK+OBquOBi+OBq+OBlyzjgarjgb8NCivjga/jgZfjgoLjgags44Gh44GLDQor44G144GL44KELOOChOOCiOOBhA0KK+OBv+OChOOCguOBqCzjgajjgoLjgYgNCivjgZ/jgZHjgaAs44G/44Gu44KLDQor44G/44KE44GW44KPLOOBsuOBp+OBjQ0KK+OBhOOBkeOBoCzjgajjgoLjgZMNCivjgYrjgZfjgb4s44G/44KG44GNDQor44Gq44GL44KA44KJLOOChOOBmeOBvw0KK+OBlOOBqCzjgbLjgo3jgZMNCivjgYbjgZfjgZTjgoEs44GX44KT44GYDQor44GP44KP44KE44G+LOOBiOOBhOOBng0KK+OBpOOBi+OBoCzjgZHjgYTjgZMNCivjgoDjgonjgZ8s44Gf44GL44Gy44KNDQor44GV44Go44GGLOOBqOOCguOBkw0KK+OBj+OCjeOBoCzjgZXjgY3jgZMNCivjgZnjgY7jgoLjgags44G+44GT44GoDQor44KE44GZ44GgLOOBsuOBp+OBig0KK+OBjeOBhuOBoSzjgYLjgY3jgbLjgZMNCivjgZHjganjgYbjgYTjgpMs44Gf44GL44GC44GNDQor44Gf44Gq44GLLOOBsuOBqOOBlw0KK+OBquOBi+OCgOOCiSzjgYLjgY0NCivjgY/jgorjga/jgoks44GP44Gr44GC44GNDQor44Gf44GN44GW44KPLOOBsuOBp+OBj+OBqw0KK+OBhuOBiOOBoCzjgajjgZfjgbXjgb8NCivjgZPjgbks44G/44GN44GKDQor44Gu44GQ44GhLOOBi+OBmuOBsuOBkw0KK+OBk+OBrizjgbLjgo3jgZcNCivjgajjgb/jgZ8s44GI44KK44GTDQor44GK44GfLOOChuOBhuOBhOOBoeOCjeOBhg0KK+OBvuOBjSzjgbLjgo3jgZcNCivjgYLjgb7jga4s44Gy44KN44GC44GNDQor44GT44G/44GtLOOBoeOBr+OCiw0KK+OBleOBqOOBhizjgaHjgYvjgYoNCivjgYTjgb7jgacs44KI44GX44Gf44GLDQor44G+44Gk44Gq44GMLOOBi+OBiuOCig0KK+OBmeOBmuOBjSzjgY/jgavjgYoNCivjgb7jgaTjgYos44GT44GG44GE44GhDQor44GV44GE44Go44GGLOOBleOBqOOBlw0KK+OCiOOBl+OBluOCjyzjgZjjgoXjgavjgaENCivjgYbjgoTjgb4s44Gh44GLDQor44GC44KT44Gp44GGLOOBsuOCjeOBguOBjQ0KK+OBmeOBmuOBjSzjgajjgojjgbLjgZMNCivjgojjgZfjgaAs44GL44Ga44Gu44KKDQor44GL44KP44GgLOOBsuOBp+OBguOBjQ0KK+OBteOBj+OBoCzjgbLjgafjgYLjgY0NCivjgoLjgorjgZfjgb4s44G144G/44GKDQor44Gk44Gh44GgLOOBqOOCguOBsuOBkw0KK+OBleOBi+OBhCzjgYvjgarjgoENCivjgaTjgYvjgaAs44KG44GN44GTDQor44Gv44Gj44Go44KKLOOBsuOBi+OCiw0KK+OBn+OCgOOCiSzjgZHjgpPjgYTjgaHjgo0NCivjgo/jgZ/jgarjgbks44GC44GN44Gy44KNDQor44GT44GZ44GOLOOBqOOCguOChA0KK+OBsuOCieOBnyzjgobjgYbjgZgNCivjgZnjgY7jgoTjgb4s44Gf44Gk44KEDQor44KC44KK44GL44KPLOOBn+OBkeOBlw0KK+OBi+OBqeOBnyzjgYvjgYgNCivjgZXjga4s44GN44KH44GE44GhDQor44GK44GW44GNLOOCj+OBn+OCiw0KK+OCiOOBk+OBvuOBpCzjgZHjgYTjgZMNCivjgZ/jgarjgYss44G+44GV44Gy44GTDQor44GE44GX44GV44GLLOOBleOBqOOBlw0KK+OBhOOBl+OBluOCjyzjgYvjgZrjgajjgZcNCivjgZPjgbDjgoTjgZcs44GI44G/44GTDQor44KI44GX44GgLOOBkeOBhA0KK+OBjeOCgOOCiSzjgb7jgZXjgZcNCivjgYrjgaTjgYss44Go44GG44KLDQor44GC44Gg44GhLOOBv+OBoeOChOOBmQ0KK+OBguOBi+OBleOBiyzjgYLjgaTjgZcNCivjgb/jgoTjgoLjgags44Gy44KN44GXDQor44GE44Gh44KA44KJLOOBk+OBhuOBmA0KK+OBiuOBl+OBnyzjgarjgYrjgY0NCivjgbvjgpPjgaAs44Gf44GL44GC44GNDQor44GL44KE44Gs44G+LOOBkeOBhOOBnw0KK+OBruOBluOBjSzjgojjgZfjgobjgY0NCivjgYvjganjgo/jgY0s44KC44Go44Gv44KLDQor44GK44GYLOOBguOBjeOBsuOCjQ0KK+OBn+OBkOOBoSzjgbLjgo3jgZcNCivjgZ/jgZHjgYTjgZcs44Gm44Gk44GKDQor44Gy44KJ44GELOOBi+OBpOOBsuOBlQ0KK+OBi+OBquOBluOCjyzjgobjgb/jgZMNCivjgbXjgovjgYvjgo8s44GT44GG44GE44Gh44KN44GGDQor44KC44KK44Gq44GLLOOChuOBmuOBjQ0KK+OBguOCieOBhCzjgZjjgoXjgpMNCivjgZ/jgarjgYss44Go44KC44GC44GNDQor44GX44G/44GaLOOCiuOBiOOBkw0KK+OBhOOBoeOBr+OCiSzjgZ/jgZHjgosNCivjgY3jgZ/jga7jga/jgoks44Gf44GL44GXDQor44GN44Gf44GKLOOBl+OCh+OBhuOBmA0KK+OCguOCiuOCguOBqCzjgb/jganjgooNCivjgY3jgZ/jgoDjgoks44GL44GK44KKDQor44GV44GV44GW44KPLOOBruOBtuOChuOBjQ0KK+OBvuOBpOOBiuOBiyzjgYrjgZXjgoANCivjgZPjgYbjgoks44GT44GG44GYDQor44G/44KPLOOChuOBhuOBmA0KK+OCiOOBl+OBiuOBiyzjgbXjgZjjgYgNCivjgbvjgoos44KE44GZ44Gy44KNDQor44GV44GE44Go44GGLOOChOOBmeOBpOOBrQ0KK+OBquOBjOOBmyzjgYLjgY3jgagNCivjgoLjgorjgZfjgb4s44GX44KT44GYDQor44GK44KP44KKLOOBmOOCheOBq+OBoQ0KK+OBn+OBquOBiyzjgYjjgorjgYsNCivjgabjgonjgoDjgoks44G+44GV44KIDQor44GT44Gw44KE44GXLOOBqOOBl+OBguOBjQ0KK+OBleOBhOOBqOOBhizjgojjgZfjga7jgooNCivjgY3jgoDjgoks44KI44GX44KG44GNDQor44Gv44GX44KC44GoLOOBvuOBleOCiw0KK+OBquOBi+OBjOOCjyzjgbLjgafjgbLjgo0NCivjgarjgYvjgoDjgoks44Go44KC44Gy44GoDQor44Gv44GO44KP44KJLOOBsuOBp+OBjQ0KK+OBq+OBl+OBi+OCjyzjgorjgYvjgZMNCivjgY3jgZ/jgZjjgb4s44Gf44GR44GXDQor44Gf44GL44GG44KJLOOBquOBiuOBkw0KK+OBguOBleOBoCzjgZ/jgYvjgbLjgo0NCivjgY3jgZ/jgZrjgoEs44Gy44KN44GTDQor44Gt44KC44GoLOOBsuOCjeOBkw0KK+OBn+OBquOBiyzjgobjgb/jgZMNCivjgZ/jgarjgYss44KI44GX44Gy44GoDQor44GC44Gg44GhLOOBsuOBp+OBr+OCiw0KK+OBr+OCiSzjgbLjgo3jgYsNCivjgYLjgYvjgb7jgaQs44G+44GN44GTDQor44GE44G+44KA44KJLOOBv+OBjQ0KK+OCgOOCieOChOOBvizjgajjgZfjgb7jgZUNCivjgZ/jgZHjgYbjgaEs44GN44KH44GeDQor44Ga44GXLOOBsuOCjeOBruOCig0KK+OBk+OBsOOChOOBlyzjgZ/jgZHjgZcNCivjgoTjgb7jgZbjgY0s44KI44GX44Gy44GVDQor44Gv44G+44GQ44GhLOOBpuOBpOOChA0KK+OBi+OBkuOChOOBvizjgb7jgZXjgYrjgY0NCivjgYvjgarjgoLjgoos44GP44Gr44Gy44GTDQor44GL44Go44KKLOOBqOOCguOBvw0KK+OBguOCieOBhCzjgZPjgYbjgYTjgaENCivjgb/jgoTjgZ8s44KE44GZ44GKDQor44GZ44Ga44GNLOOBsuOBp+OCiA0KK+OBr+OCi+OBnyzjgYLjgonjgZ8NCivjgarjgYvjgZbjgo8s44KP44GL44GTDQor44GZ44GMLOOBvuOBleOBsuOBkw0KK+OBvuOBiOOBp+OCiSzjgYvjgZrjgbLjgo0NCivjgYLjgonjgb7jgY0s44GL44Ga44Gy44GTDQor44GN44Gf44GuLOOBvuOBleOChuOBjQ0KK+OCiOOBl+OBrizjgZHjgpPjgZQNCivjgb/jgY/jgorjgoQs44GC44Gk44GXDQor44GK44GP44Gu44GOLOOCiOOBmA0KK+OBleOBj+OCieOBhCzjgZ/jgYvjgobjgY0NCivjgZPjgpPjgaks44KE44GZ44GKDQor44GZ44Ga44GNLOOBi+OBuw0KK+OBj+OCiuOBr+OCiSzjgYLjgaTjgZMNCivjgoDjgZPjgYbjgZDjgaEs44Gd44GE44GhDQor44G144GY44GELOOBsuOCjeOChuOBjQ0KK+OBi+OBkizjgbLjgafjgY0NCivjgb7jgYjjgaAs44Gk44KI44GXDQor44Gq44GM44G744KKLOOBl+OCh+OBuOOBhA0KK+OBpOOBmCzjgb7jgorjgZMNCivjgY3jgoDjgoks44GI44G/44GTDQor44G+44Gk44GKLOOBsuOBp+OChA0KK+OBn+OBpuOBrizjgZ/jgYvjgZcNCivjgY3jgoDjgoks44G+44GV44KG44GNDQor44GZ44GW44GNLOOBpuOCi+OChuOBjQ0KK+OBhOOCj+OBleOBjSzjgYLjgaTjgZcNCivjgZXjgajjgYYs44Gf44Gk44KEDQor44Gr44Gj44GfLOOBl+OBkuOBv+OBpA0KK+OBn+OBquOBiyzjgojjgYbjgZMNCivjgZfjgb7jgaAs44GR44KT44GYDQor44Gf44Gr44GQ44GhLOOCiOOBl+OBi+OBpA0KK+OBu+OCk+OBoCzjgarjgYoNCivjgarjgYvjgZ/jgass44Gu44KK44GTDQor44G/44KE44GY44G+LOOBj+OBv+OBkw0KK+OBj+OBjeOChOOBvizjgb7jgY0NCivjgZvjgY3jga0s44GC44GN44Gy44KNDQor44KI44GX44Gv44KJLOOChuOBhuOBkw0KK+OBsuOCieOBnyzjga7jgbbjgoQNCivjgarjgYzjgZXjgo8s44KG44GN44GTDQor44Gq44GL44GM44GNLOOCguOCguOBkw0KK+OBj+OCjeOBi+OCjyzjgZfjgpPjgZ/jgo3jgYYNCivjgYvjgZHjgZ/jgoos44GT44GG44GE44GhDQor44GE44Go44GGLOOBruOCiuOCiOOBlw0KK+OBvuOBiOOBi+OCjyzjgb7jgZPjgagNCivjgb7jgaTjgaAs44Gf44Gk44KEDQor44GP44KP44Gv44KJLOOBv+OChOOBsw0KK+OBhOOBhOOBmuOBiyzjgobjgooNCivjgb7jgZjjgb4s44Gg44GE44GL44KTDQor44KA44KJ44GfLOOBvuOCig0KK+OBguOBjeOBhOOBkSzjgYLjgYvjga0NCivjgarjgb/jgY0s44Gu44KK44GTDQor44KI44GX44GuLOOBmeOBquOBig0KK+OBmeOBmuOBjSzjgZ/jgYvjgZcNCivjgZ/jgoDjgoks44GX44KF44KTDQor44GL44KB44GgLOOBk+OBhuOBmA0KK+OBq+OBlyzjgorjgofjgZ/jgo3jgYYNCivjgYTjgarjgYrjgYss44GV44Go44KLDQor44GE44KP44GV44GNLOOBvuOBleOBi+OBmg0KK+OBi+OCk+OBoCzjgajjgZfjgYoNCivjgZ/jgaAs44GR44GE44GTDQor44GG44GkLOOChOOBmeOChuOBjQ0KK+OBl+OBvuOBoCzjgZHjgpPjgZjjgo0NCivjgojjgZfjgaAs44GL44KI44GTDQor44GK44GP44GM44KPLOOBmOOCheOCk+OBmA0KK+OBmeOBmuOBjSzjgYLjgY3jgYoNCivjgZ/jgpPjgb0s44G+44GT44GoDQor44KP44GgLOOCj+OBi+OBkw0KK+OBhuOCi+OBl+OBr+OCiSzjgbLjgafjgobjgY0NCivjgYTjgYTjgYos44Go44KC44GTDQor44Gr44GE44Gv44KJLOOChuOBhuOBhOOBoQ0KK+OBiuOCgOOCiSzjgabjgaTjgoQNCivjgYTjga7jgYbjgYgs44G/44GN44GTDQor44KC44KK44Gq44GMLOOChuOBjQ0KK+OBleOBrizjgb/jganjgooNCivjgarjgYvjgZ/jgass44GX44KT44KEDQor44GC44G5LOOChOOBmeOBlw0KK+OBhuOBoeOBoCzjgZHjgpPjgZgNCivjgbLjgo3jgZ8s44KG44GG44GYDQor44GE44KP44GP44KJLOOBquOBvw0KK+OBhOOBl+OBiuOBiyzjgYjjgYTjgY0NCivjgajjgY3jgZ8s44Go44KC44GC44GNDQor44GN44Gu44GX44GfLOOBvuOBleOBig0KK+OBv+OBmuOBrizjgbLjgo3jgobjgY0NCivjgoTjgZnjgYgs44KI44GX44G144G/DQor44GE44KP44KC44GoLOOBkeOBhOOBkw0KK+OChOOBvuOBmCzjgb/jga3jgZMNCivjgZPjgZXjgYQs44Gq44GK44GTDQor44GP44G8LOOBiOOBhOOBmeOBkQ0KK+OBoeOBsCzjgZ/jgo3jgYYNCivjgoTjgaTjgZ/jgass44GN44KH44GTDQor44GE44GM44KJ44GXLOOBn+OBj+OChA0KK+OBguOCieOBi+OCjyzjgZzjgpPjgZjjgo0NCivjgabjgonjgZXjgY0s44Go44GX44Gy44KNDQor44Gb44GU44GILOOBsuOCjeOBlw0KK+OBqOOBj+OBl+OBvizjgb7jgZXjgoTjgZkNCivjgbDjgpPjgaks44G+44GV44Gq44GKDQor44Gf44GN44GW44KPLOOBkeOCk+OBmA0KK+OBv+OBmuOBleOBjSzjgobjgZXjgY8NCivjgZ/jgY3jgZDjgaEs44GL44GE44GY44KNDQor44Gy44GK44GNLOOBsuOBp+OBguOBjQ0KK+OBquOBi+OBhCzjgarjgaTjgZMNCivjgYrjgYTjgYvjgo8s44Gq44GK44GZ44GRDQor44G+44Gk44KA44KJLOOBguOBhOOBkw0KK+OBiOOCk+OBqSzjgb7jgZXjgb8NCivjgZ/jgZjjgb4s44GV44Go44KLDQor44KE44G+44GW44GNLOOChuOBi+OCig0KK+OBm+OBruOBiizjgobjgYbjgZMNCivjga/jgonjgaAs44Go44GX44GIDQor44G144GP44GELOOBsuOBi+OCiw0KK+OBvuOBpOOBhuOCiSzjgYLjgaTjgZcNCivjgYvjgo/jgoDjgoks44Gf44GL44Ga44G/DQor44Gm44KJ44KC44GoLOOBguOBi+OBrQ0KK+OBr+OBjuOCj+OCiSzjgoLjgajjgYLjgY0NCivjgarjgYvjgZfjgb4s44GV44Go44GTDQor44GN44Gu44GX44GfLOOBvuOBleOBkw0KK+OBguOCieOBhCzjgZfjgofjgZMNCivjgoDjgonjgoTjgb4s44GR44KT44GYDQor44GV44GI44GQ44GVLOOBkeOCk+OBn+OCjeOBhuOBhg0KK+OBn+OBquOBiyzjgZHjgYQNCivjgb7jgYjjgaAs44G+44GV44GXDQor44G/44KE44GW44GNLOOBguOBpOOBvw0KK+OBhOOBkeOBuSzjgozjgYTjgZMNCivjgY/jgo/jgbDjgoks44Gh44GQ44GVDQor44KI44GgLOOCiOOBl+OBig0KK+OBn+OBoeOBsOOBqizjgZXjgajjgZMNCivjgoTjgb7jgZDjgaEs44GI44GE44GYDQor44GE44GX44Gv44KJLOOBk+OBhuOBmA0KK+OBn+OBjeOBluOCjyzjgajjgZfjgb7jgZUNCivjgbLjgonjga4s44Go44KC44GLDQor44GL44KP44GV44GNLOOBkeOBhA0KK+OChOOBvuOCguOBqCzjgobjgYbjgYTjgaENCivjgYLjgonjgZss44Gf44GL44G/44GhDQor44KE44Gq44GO44GV44KPLOOBn+OBj+OBvw0KK+OBl+OBiuOChCzjgYjjgb/jgZMNCivjgZXjgajjgYYs44G/44Gh44GKDQor44GL44Go44GGLOOBoeOBmuOCiw0KK+OBiuOBrizjgZjjgoXjgpPjgZMNCivjgY3jgZ/jga/jgb4s44Go44KC44G/DQor44GU44GoLOOBv+OBpOOBkw0KK+OBq+OBruOBv+OChCzjgYrjgZXjgoANCivjgYbjgZnjgYQs44GL44Ga44G/DQor44G/44Ga44GX44G+LOOBguOBjeOCiQ0KK+OBmeOBqeOBhizjgZ/jgYvjga7jgooNCivjgYTjgZHjgaAs44Gf44GL44GKDQor44Gq44GL44Gy44GM44GXLOOChOOBmeOBguOBjQ0KK+OBj+OCiuOCguOBqCzjgojjgZfjgYLjgY0NCivjgajjgaAs44GR44GE44GTDQor44Gv44GL44G+44GfLOOBvuOBleOBguOBjQ0KK+OBn+OBq+OBkOOBoSzjgojjgZfjgbbjgb8NCivjgYTjgb7jgZzjgY0s44Gf44GL44KI44GXDQor44G744KK44GKLOOBsuOBleOBqOOBlw0KK+OBi+OBmeOBjCzjgYLjgaTjgZcNCivjgYvjgo/jgZss44G+44GV44Gu44G2DQor44GV44Go44GGLOOBguOBjeOBiA0KK+OBn+OBi+OBquOBlyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgb7jgaTjgZfjgZ8s44Gy44Go44G/DQor44KE44GQ44GhLOOCiOOBl+OBn+OBiw0KK+OBi+OBreOBkyzjgoTjgZnjgb7jgZUNCivjgbLjgaDjgYss44Gu44KK44GTDQor44GV44Gj44GVLOOBvuOChuOBvw0KK+OBneOBjCzjgajjgoLjga7jgooNCivjgZnjgY7jgYbjgoks44Gf44GR44KLDQor44GV44Go44GGLOOBvuOBk+OBqA0KK+OBn+OBq+OBsOOChOOBlyzjgYLjgY3jgZMNCivjgavjgZfjgYrjgYss44GC44KK44GX44GSDQor44Go44KC44Gq44GMLOOCjeOCj+OCiw0KK+OBiuOBr+OBlyzjgbLjgo3jgZ/jgYsNCivjgarjgYzjgZfjgb4s44GC44Gk44Gu44G2DQor44Gf44Gr44GM44GNLOOBr+OCi+OBvw0KK+OBk+OBhuOBoCzjgYTjgY/jgZMNCivjgY3jgojjga4s44G+44KG44G/DQor44KE44G+44GL44KPLOOBpOOCiOOBlw0KK+OBquOBi+OBmOOBvizjgarjgYrjgZMNCivjgoLjgabjgY4s44Gy44KN44G/DQor44GK44Gs44G+LOOBruOBtuOBguOBjQ0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgbXjgovjgYTjgYgs44Gy44Gn44GNDQor44GC44GE44KC44GoLOOBi+OBmuOChuOBjQ0KK+OCiOOBk+OBiizjgb/jgYoNCivjgavjgZfjgYvjgo8s44Gf44GE44GhDQor44Gz44GoLOOBn+OBj+OChA0KK+OBjeOBn+OCgOOCiSzjgZHjgpPjgZ/jgo3jgYYNCivjgoTjgb7jgYvjgo8s44GC44G/44GTDQor44Go44G/44GfLOOBleOBoeOBkw0KK+OBpOOBoeOBoCzjgZ/jgYvjgZcNCivjgYTjgZfjgZDjgo0s44Gq44GK44GNDQor44G+44Gk44GKLOOBsuOBp+OBjQ0KK+OBhuOBiOOCguOBqCzjgZvjgYTjgZ8NCivjgYTjgYTjgaAs44Gb44GE44GTDQor44GZ44Ga44GNLOOBk+OBv+OBqg0KK+OBn+OCgOOCiSzjgZXjgajjgZcNCivjgYrjgY/jgaAs44Go44GX44GKDQor44G744KKLOOBsuOCjeOBlw0KK+OBj+OBleOBpOOBkCzjgZPjgYbjgZgNCivjgoTjgb7jgaAs44KG44Gf44GLDQor44GC44GV44Gv44KJLOOBl+OBkuOBig0KK+OBqOOBj+OBoCzjgojjgZfjgZMNCivjgYTjgafjgZ8s44KC44Go44G144G/DQor44GE44Go44GGLOOBj+OBq+OBig0KK+OBleOBqOOBhizjgZHjgpPjgZgNCivjgaTjgZjjgZXjgo8s44KI44GX44Gq44GMDQor44GK44GuLOOBl+OCk+OChA0KK+OBhOOCj+OBvizjgZXjgaDjga/jgosNCivjgaDjgYTjgZTjgY8s44Gf44GR44GXDQor44KE44G+44KA44KJLOOBsuOBp+OBqA0KK+OBr+OBm+OBjOOCjyzjgorjgYgNCivjgYTjgY4s44Go44GK44KLDQor44G+44GL44G5LOOBk+OBhuOBhOOBoeOCjQ0KK+OBiuOBi+OCguOBqCzjgb/jgY3jgZMNCivjgYrjga/jgoks44GX44GS44Gy44KNDQor44Gb44GN44KE44G+LOOBi+OBmuOCiOOBlw0KK+OBjeOBn+OBmOOBvizjga7jgbzjgosNCivjgajjgorjgYbjgb8s44KI44GX44G/DQor44G/44KE44GW44GNLOOChOOBmeOBlw0KK+OBhuOBhCzjgb7jgZXjgarjgYoNCivjgY/jgonjgoLjgaEs44Gf44GL44Gy44KNDQor44GX44GK44Gs44G+LOOBvuOCk+OBquOCig0KK+OCieOBhOOBnyzjgojjgZfjgbLjgo0NCivjgZfjgoLjgZPjgbks44Gm44KL44G/44GhDQor44GV44KP44GuLOOBjeOBhOOBoeOCjeOBhg0KK+OBleOBi+OBq+OBlyzjgZHjgYQNCivjgZXjgZXjgY0s44GT44GG44GYDQor44Gb44GE44GuLOOBruOBtuOBguOBjQ0KK+OBmeOBmuOBjSzjgZjjgoXjgavjgaENCivjgZXjgYvjgoLjgags44KI44GX44GL44GaDQor44GZ44Ga44GNLOOBqOOBl+OBi+OBmg0KK+OBleOCj+OBrizjgZ/jgYvjgbLjgo0NCivjgZfjgYws44G+44GV44GL44GkDQor44GU44GoLOOBi+OBpOOBig0KK+OBmeOBoCzjgobjgY3jgarjgYoNCivjgZnjgZrjgY0s44GL44Ga44GKDQor44GV44GL44GN44Gw44KJLOOBsuOCjeOBguOBjQ0KK+OBleOBqOOBhizjgb7jgZXjgbLjgo0NCivjgZXjgYvjgZDjgaEs44Gf44Gm44GKDQor44GZ44GO44GV44GNLOOCiOOBl+OBsuOBqA0KK+OBmeOBiOOBjSzjgYvjgZrjgbLjgo0NCivjgZnjgZrjgY0s44Gy44Gn44Go44GXDQor44GX44Gw44GfLOOBhOOBj+OBig0KK+OBmeOBjuOChOOBvizjga7jgbbjgYvjgZoNCivjgZXjgYvjgYQs44Gm44KL44GKDQor44GX44G/44GaLOOChuOBhuOBmA0KK+OBmeOBjuOCguOBqCzjgajjgZfjgYoNCivjgZXjgajjgYYs44GR44GE44GeDQor44Gb44GNLOOBguOBjeOCiOOBlw0KK+OBleOBj+OCieOBhCzjgajjgZfjgYoNCivjgZvjgY3jgZDjgaEs44GX44KNDQor44GV44Go44GGLOOBi+OBpOOChA0KK+OBmeOBmuOBjSzjgabjgaTjgoQNCivjgZXjgYTjgajjgYYs44Go44GP44G+44GVDQor44Gb44GN44GtLOOBmOOCheOCk+OBmA0KK+OBmeOBmuOBjSzjgojjgZfjgZMNCivjgYTjgYTjgaAs44Go44GX44GKDQor44GZ44Ga44GNLOOBkeOCk+OBmA0KK+OBleOBleOBjSzjgojjgZfjga7jgooNCivjgZnjgYjjgarjgYws44G/44Gk44GP44GrDQor44GV44GL44KC44GoLOOBn+OBi+OBlw0KK+OBleOBhOOBqOOBhizjga7jgbbjgYLjgY0NCivjgZnjgYzjgYos44GT44Go44GYDQor44GX44G+44GaLOOBn+OBoOOBig0KK+OBleOBhOOBqOOBhizjgb7jgZXjgobjgY0NCivjgZfjga7jgZbjgY0s44Gf44Gg44GXDQor44GZ44Ga44GNLOOBqOOBl+OBig0KK+OBmeOBquOBjCzjgZ/jgY/jgZgNCivjgZXjgajjgYYs44GK44GV44KADQor44GZ44Ga44GNLOOBr+OCi+OChuOBjQ0KK+OBm+OBjeOBrSzjgZPjgZnjgZENCivjgZXjgZXjgY0s44GI44GE44GYDQor44GV44KP44GgLOOChuOBruOBmeOBkQ0KK+OBleOBhOOBqOOBhizjgZ/jgaDjgYoNCivjgZfjgoLjgZ7jga4s44Go44KI44G144G/DQor44GZ44GILOOBpOOBqOOCgA0KK+OBleOBqeOBqOOCgizjgY3jgojjgZ/jgYsNCivjgZvjgY3jga0s44Gy44KN44GXDQor44GV44Go44GGLOOBv+OBpOOBig0KK+OBleOCk+OBlCzjgajjgZfjgYoNCivjgZnjganjgYYs44Gy44Gn44GC44GNDQor44Gd44Gu44GgLOOBvuOBleOBvw0KK+OBl+OBvizjgabjgaTjgZgNCivjgZXjgajjgYYs44G/44Gu44KLDQor44GV44Go44GGLOOBteOBv+OBig0KK+OBl+OBtuOChCzjgYLjgY3jgokNCivjgZXjgajjgYYs44KI44GX44KG44GNDQor44GV44Go44GGLOOBkeOCkw0KK+OBleOBi+OBnyzjgYrjgZXjgoANCivjgZXjgYTjgajjgYYs44GR44GE44Gf44KN44GGDQor44GZ44KP44GNLOOBleOBoOOBruOCig0KK+OBneOCiizjgajjgZfjgYoNCivjgZXjgYvjgoLjgags44GC44GN44KJDQor44GX44KJ44GE44GXLOOBi+OBmuOBig0KK+OBmeOBmuOBjSzjgZ/jgaDjgbLjgZMNCivjgZfjgb7jgaAs44Gf44GL44GXDQor44GZ44Ga44GNLOOBguOBjeOCiQ0KK+OBmeOBmuOBjSzjgZHjgpPjgZnjgZENCivjgZXjgajjgYYs44GV44Go44GXDQor44GZ44Ga44GNLOOCiOOBl+OBruOBtg0KK+OBleOBqOOBhizjgY/jgavjgYLjgY0NCivjgZfjgZLjgb7jgaQs44Gq44GK44G/DQor44GV44GM44KJLOOBv+OBruOCiw0KK+OBleOBhOOBqOOBhizjgojjga3jgZ4NCivjgZfjgpPjgZAs44Go44G/44GKDQor44GZ44GM44Gs44G+LOOBi+OBmuOBguOBjQ0KK+OBneOBjCzjgYvjgZrjgYoNCivjgZXjgZXjgY0s44Gm44KL44Gy44GTDQor44GV44Go44GGLOOCiOOBreOBig0KK+OBleOCj+OBoCzjgYrjgZXjgoANCivjgZ3jgb4s44Gf44GL44GXDQor44GX44Gw44GfLOOBn+OBkeOBmA0KK+OBleOBqOOBhizjgZfjgoXjgavjgaENCivjgZXjgajjgYYs44G+44GV44Go44GXDQor44GX44G+44GgLOOBguOBjeOBig0KK+OBleOBleOBjSzjgajjgZfjgYoNCivjgZXjgajjgYYs44G+44GV44Gy44KNDQor44GV44GE44Go44GGLOOCiOOBl+OBig0KK+OBl+OCguOBpyzjga/jgZjjgoENCivjgZXjgZXjgY0s44GN44KI44GXDQor44GV44Go44GGLOOBpOOBqOOCgA0KK+OBleOBqOOBhizjgY3jgojjgZcNCivjgZXjgo/jgaAs44Gf44GL44Go44GXDQor44GX44KN44GV44GNLOOChuOBjeOBig0KK+OBl+OBsOOBhCzjgZ/jgYvjgYoNCivjgZXjgYTjgajjgYYs44Gm44KL44Gu44G2DQor44GZ44Ga44GNLOOBn+OBkeOBlw0KK+OBneOBjOOBuSzjga7jgbbjgobjgY0NCivjgZvjgYzjgo8s44GX44GS44KLDQor44GX44G/44GaLOOBpuOBpOOBig0KK+OBmeOBmuOBjSzjgYrjgZXjgoANCivjgZfjgo3jgoTjgb4s44Gf44GR44GKDQor44GX44GE44GqLOOBv+OBoeOBkw0KK+OBleOChOOBvizjgY3jgojjgZcNCivjgZXjgYvjgoLjgags44Gy44Gn44GKDQor44GV44Go44GGLOOBruOBtuOBig0KK+OBmeOBmuOBjSzjgZHjgpPjgZgNCivjgZnjgZrjgY0s44GX44GS44KLDQor44GV44GV44GbLOOBsuOBp+OBjQ0KK+OBleOBj+OCieOBhCzjgajjgZfjgYoNCivjgZfjgb7jgaAs44KIDQor44GV44Go44GGLOOBsuOBleOBig0KK+OBl+OCguOBrizjgZfjgpPjgYTjgaENCivjgZnjgZrjgY0s44KI44Gy44GhDQor44GZ44GO44KC44GoLOOBmeOBmeOCgA0KK+OBl+OBv+OBmizjgb/jgaHjgYoNCivjgZXjga4s44Go44GX44GKDQor44GZ44Ga44GNLOOBhOOBleOBig0KK+OBl+OBvuOBoCzjgaHjgbLjgo0NCivjgZnjgZrjgY0s44G/44Gu44KLDQor44GZ44GO44G144GYLOOCiOOBmOOCjQ0KK+OBleOBi+OBhCzjgojjgZfjgbLjgZMNCivjgZXjgYvjgZDjgaEs44KI44GX44GKDQor44GZ44GM44KP44KJLOOBvuOCguOCiw0KK+OBl+OBruOBmuOBiyzjgb7jgZPjgagNCivjgZfjgYws44Gy44KN44GXDQor44GV44GL44GM44G/LOOBn+OBoOOCiOOBlw0KK+OBmeOBmuOBjSzjgabjgaTjgo0NCivjgZnjgY7jga4s44GL44Gk44KG44GNDQor44GZ44GO44GG44KJLOOBvuOBleOBjQ0KK+OBl+OBv+OBmizjgZvjgYTjgZgNCivjgZnjgZrjgY0s44GL44Gk44Gy44KNDQor44GV44GV44GTLOOCiOOBmeOBkQ0KK+OBm+OBjSzjgojjgZfjgarjgooNCivjgZXjgajjgYYs44G+44GV44GKDQor44GX44G+LOOBn+OBkeOBig0KK+OBmeOBmuOBjSzjgojjgZfjga7jgbYNCivjgZXjgYvjgoLjgags44GT44G444GEDQor44GV44GV44GNLOOBi+OBmuOBsuOBkw0KK+OBl+OBvuOBoCzjga/jgovjgbLjgZUNCivjgZXjgYTjgajjgYYs44Gy44Go44GXDQor44GX44GK44GfLOOBl+OCk+OBhOOBoQ0KK+OBl+OBiuOBoCzjgYjjgYTjgZgNCivjgZnjgaAs44Gg44GE44GV44GPDQor44GX44GE44GqLOOBmOOCheOBq+OBoQ0KK+OBl+OBiuOBruOChCzjgb/jgaTjgYoNCivjgZXjgYTjgZfjgocs44Go44KI44G+DQor44Gd44GE44GgLOOBi+OBmuOChuOBjQ0KK+OBneOBvizjgbLjgafjgYoNCivjgZXjgajjgYYs44GZ44GZ44KADQor44GV44Go44GGLOOBi+OBmuOBvw0KK+OBl+OBiuOBsOOCiSzjgZ/jgZHjgZfjgZINCivjgZXjgZXjgYrjgYss44Gb44GE44GeDQor44GV44GV44GNLOOChuOBjeOCiOOBlw0KK+OBm+OBqCzjgZ/jgaTjgZgNCivjgZfjgoXjgaks44Gy44KN44GXDQor44GV44GL44KC44GoLOOBjeOCiOOBpuOCiw0KK+OBleOBj+OBvizjgojjgZfjgYvjgZoNCivjgZfjga7jgZbjgo8s44Gy44KN44GXDQor44GX44GK44Gw44KJLOOBhOOBneOBmA0KK+OBleOBj+OCieOBhCzjgZ/jgaDjgbLjgZUNCivjgZXjgajjgYYs44Go44KI44GKDQor44GV44GP44KJ44GELOOBhOOBleOCgA0KK+OBleOBleOBuSzjgYjjgYTjgZgNCivjgZXjgajjgYYs44GR44KT44GeDQor44GZ44GO44GG44KJLOOBpuOBpOOBig0KK+OBleOBi+OBhCzjgoTjgZnjgbLjgo0NCivjgZ3jgb4s44GI44GE44GE44GhDQor44Gd44Gy44KDLOOBi+OCk+OBmA0KK+OBneOBreOBi+OBpCzjgbLjgo3jgZcNCivjgZvjgY3jga0s44Gf44GR44G/44GhDQor44GZ44Ga44GNLOOBjeOCiOOBiA0KK+OBm+OBjeOBrSzjgojjgZfjgZ/jgYsNCivjgZXjgYvjgY3jgbDjgoks44G/44Gk44Gu44G2DQor44GX44KC44GL44KP44G5LOOBteOBv+OBig0KK+OBleOCj+OCgOOCiSzjgZ/jgYvjgYoNCivjgZvjgY0s44Gy44KN44GXDQor44GZ44Ga44GNLOOBn+OBi+OBlw0KK+OBleOBi+OBvuOBjSzjgaTjgojjgZcNCivjgZXjgYzjgo8s44Gy44KN44KG44GNDQor44GZ44GO44KE44G+LOOChuOBmuOCiw0KK+OBmeOBjuOCguOBqCzjgoHjgZDjgoANCivjgZvjgYos44Go44GX44GKDQor44GV44GE44Go44GGLOOBsuOCjeOBlw0KK+OBleOBi+OBhCzjgorjgoXjgZ4NCivjgZXjgY/jgonjgYQs44KG44GeDQor44Gb44GN44GtLOOBvuOBleOBig0KK+OBleOBqOOBhizjga7jgbbjgYoNCivjgZfjgb/jgZos44Gb44GE44GYDQor44GX44G/44GaLOOBguOBjeOCiQ0KK+OBleOBhOOBqOOBhizjgZ/jgZHjgYoNCivjgZXjgY/jgonjgYQs44Gu44KK44GKDQor44GZ44GO44KE44G+LOOBqOOBl+OBpOOBkA0KK+OBl+OBmuOBiyzjgYvjgZrjgajjgZcNCivjgZfjgonjgYvjgo8s44GR44KTDQor44GV44GE44Go44GGLOOBquOCi+OBvw0KK+OBleOBjeOCguOCiizjgZjjgoXjgavjgaENCivjgZXjgajjgYYs44GT44Ga44GIDQor44Gb44GN44GQ44GhLOOBsuOBp+OBguOBjQ0KK+OBm+OBjeOBrSzjgajjgZfjgbLjgZUNCivjgZfjgbDjgZ8s44Gf44GR44KG44GNDQor44GZ44Ga44GNLOOBkw0KK+OBleOBhOOBqOOBhizjgobjgYbjgZgNCivjgZXjgajjgYYs44Gf44GL44GXDQor44Gb44GN44GtLOOBv+OBjeOBig0KK+OBleOBi+OBhCzjgZ/jgaDjgbLjgo0NCivjgZXjgZXjgYos44G+44GV44Gu44KKDQor44GZ44Gp44GGLOOBr+OBpOOBvw0KK+OCguOCiizjgZ/jgYvjgZcNCivjgZfjgb/jgZos44Go44GX44GKDQor44GV44Go44GGLOOBvuOBleOBig0KK+OBmeOBmuOBjSzjgb7jgZXjgYLjgY0NCivjgZfjgoDjgoks44KE44GZ44GKDQor44GX44Gw44GV44GNLOOBsuOBleOBquOBig0KK+OBmeOBjOOBvuOBnyzjgYLjgY3jgokNCivjgZnjgZrjgY0s44KG44Ga44KLDQor44GX44GK44Gu44KELOOBhOOCj+OBig0KK+OBn+OBi+OBr+OBlyzjgabjgaTjgYoNCivjgaTjgY3jgoTjgb4s44GK44GN44Go44GXDQor44Gk44Gu44GgLOOBruOCiuOBkw0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgZjjgo0NCivjgajjgY/jgZbjgo8s44Gf44GL44Gy44KNDQor44Gf44GQ44GhLOOBsuOBleOBig0KK+OBn+OBi+OBjizjga7jgorjgYoNCivjgZ/jgYvjga4s44GK44GV44KADQor44Gf44Gv44KJLOOBr+OCi+OBsuOBkw0KK+OBqOOCiOOBleOCjyzjgZfjgpPjgZgNCivjgajjgojjgb7jgZks44G+44GT44GoDQor44Gf44GL44Gv44GXLOOBl+OCh+OBmA0KK+OBn+OBkeOBhuOBoSzjgYjjgYTjgZ4NCivjgZ/jgY3jgYTjgZcs44Gm44KL44GKDQor44Gf44GL44GE44GXLOOBhOOBleOBig0KK+OBn+OBi+OBleOBjSzjgbLjgo3jgajjgZcNCivjgZ/jgavjgYzjgo8s44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOBi+OBmuOBig0KK+OBn+OBquOBr+OBlyzjgbLjgo3jgZcNCivjgZ/jgb7jgY0s44GN44KI44GL44GaDQor44Go44GwLOOBqOOBl+OCjQ0KK+OBn+OBsOOBnyzjgY3jgY/jgYoNCivjgaTjgZgs44KI44GX44GNDQor44Gf44Gq44GLLOOBquOBiuOBqA0KK+OBn+OBi+OBr+OBlyzjgoLjgorjga/jgosNCivjgajjgY/jgarjgYws44G+44GV44GKDQor44Gf44GQ44GhLOOBsuOBp+OBig0KK+OBn+OBjeOBluOCjyzjgabjgovjgb/jgaQNCivjgajjgb8s44GN44KI44GL44GaDQor44Gk44GYLOOBk+OBhuOBhOOBoQ0KK+OBhuOBoeOBoCzjgZHjgYTjgYTjgaENCivjgZ/jgarjgYss44G+44GV44Gu44G2DQor44Gk44Gt44KI44GXLOOBpuOBhOOBmA0KK+OBn+OBi+OBrizjgorjgofjgZgNCivjgZ/jgYvjga/jgZcs44GX44GS44GKDQor44Gf44GL44KE44Gq44GOLOOBkeOCk+OBmA0KK+OBn+OBkeOBoCzjgbLjgo3jgobjgY0NCivjgZ/jgbws44G+44GV44Go44GXDQor44Gf44Gq44GLLOOBk+OBhuOBmA0KK+OBn+OBkeOBhuOBoSzjgbLjgo3jgZcNCivjgZ/jgYvjgoTjgZks44G+44GV44GXDQor44Gk44Gh44KELOOBn+OBi+OBlw0KK+OBqOOBj+OBquOBjCzjgZ/jgYvjgYoNCivjgaTjgaHjgaAs44GC44Gk44GXDQor44Gk44G844GELOOBvuOBleOBruOCig0KK+OBn+OBi+OBr+OBlyzjgY3jgb/jgYoNCivjgaTjgYvjgoLjgags44G+44GV44GKDQor44Gf44Gq44GLLOOBi+OBpOOBl+OBkg0KK+OBqOOCguOBpOOBrSzjgZ/jga3jgb7jgZUNCivjgaHjgZgs44GR44GE44GTDQor44GV44Go44GGLOOBqOOBl+OBig0KK+OBn+OBi+OBnyzjgYTjgo/jgYoNCivjgajjga/jgZ8s44Gu44KK44GL44GaDQor44Gf44GL44Gv44GXLOOCgOOBreOBig0KK+OBn+OBi+OBr+OBvizjgobjgY3jgaENCivjgabjgonjgZXjgo8s44KI44GE44GhDQor44Gf44GL44Gw44KE44GXLOOBkeOBhOOBmeOBkQ0KK+OBpuOCieOBoCzjgobjgZ/jgYsNCivjgaTjgYvjgaAs44GL44Ga44GKDQor44Gf44Gq44GLLOOBvuOBleOBjQ0KK+OBqOOCiuOBvuOCiyzjgajjgojjgb8NCivjgaTjgaHjgaAs44KG44Gv44GkDQor44Gf44GN44KC44GoLOOBkeOCk+OBmA0KK+OBn+OBjeOBhCzjgarjgYrjgYvjgZ8NCivjgZ/jga3jgaAs44GI44GE44GI44GkDQor44Gf44KA44KJLOOBvuOBleOBl+OBkg0KK+OBn+OBqeOBk+OCjSzjgZXjgaDjgoANCivjgZ/jgYvjgYos44GX44GS44KLDQor44Gf44Gq44GLLOOBmeOBmeOCgA0KK+OBn+OBi+OBr+OBlyzjgajjgZfjga/jgosNCivjgZ/jgYvjga/jgZcs44Gb44GE44GYDQor44Gf44GL44Gv44GXLOOBpOOBreOBig0KK+OBqOOBv+OBnyzjgojjgZfjgb8NCivjgZ/jgYvjga/jgZcs44G/44Gu44KLDQor44Gf44Gr44GQ44GhLOOCiOOBl+OBguOBjQ0KK+OBn+OBquOBiyzjgarjgYrjgZMNCivjgaTjgbzjgYQs44GX44KH44GYDQor44Gf44GR44GG44GhLOOBl+OCheOBmA0KK+OBpOOBoCzjgZvjgYTjgZgNCivjgZ/jgZHjgaAs44Gy44Gn44GKDQor44Gf44GR44GELOOBn+OBv+OBig0KK+OBpOOBmOOBi+OCjyzjgb7jgoLjgosNCivjgZ/jgZHjgoDjgoks44Go44GX44Gy44GTDQor44Gf44GNLOOBsuOBp+OBguOBjQ0KK+OBn+OBi+OBoCzjgZHjgpPjgZgNCivjgZ/jgY3jgZbjgo8s44KI44GX44Gu44KKDQor44Gf44Gq44GLLOOBsuOBleOBig0KK+OBn+OBq+OCgOOCiSzjgb7jgZnjgb8NCivjgojjgZfjgZbjgo8s44Gy44GL44KLDQor44Gk44Gt44GL44KPLOOBr+OBpOOBig0KK+OBn+OBquOBiyzjgZfjgZLjgobjgY0NCivjgZ/jgYvjgaAs44G144GY44GKDQor44Gk44KLLOOBqOOBiuOCiw0KK+OBn+OBqyzjgYLjgaTjga7jgooNCivjgZ/jgZDjgaEs44G/44Gh44GC44GNDQor44Gf44Gq44GLLOOChuOBng0KK+OBn+OBq+OBkOOBoSzjgbLjgo3jgb8NCivjgZ/jgarjgYss44G744G244KTDQor44Gk44GYLOOBqOOCiOOBlw0KK+OBn+OBquOBiyzjgb7jgZXjgobjgY0NCivjgaTjgobjgY0s44GX44GS44GKDQor44Gf44G+44KLLOOChuOBhuOBhOOBoQ0KK+OBpOOBoeOChCzjgZvjgYTjgZjjgoUNCivjgaTjgovjgYrjgYss44G+44GV44GC44GNDQor44Gf44GL44Gv44GXLOOBvuOBleOBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgZfjgZLjgosNCivjgajjgbXjgY/jgZgs44G+44GV44GYDQor44Gf44Gq44GLLOOBn+OBkeOCiOOBlw0KK+OBn+OBi+OBjizjgb7jgZXjga/jgosNCivjgZ/jgYvjga/jgZcs44Gf44KN44GGDQor44Gf44Gr44GQ44GhLOOBsuOCjeOBlw0KK+OBqOOCiOOBoCzjgYvjgaTjgYoNCivjgZ/jgYvjgY4s44GC44GN44KJDQor44Gf44GR44GELOOBvuOBleOBsuOCjQ0KK+OBpOOBoCzjgYTjgZXjgYoNCivjgaTjga3jgbLjgo0s44GY44KF44KT44GeDQor44Gf44GN44GW44KPLOOBi+OBmuOBsuOCjQ0KK+OBn+OBoeOBsOOBqizjga7jgorjgb/jgaQNCivjgZ/jgYvjga/jgZcs44KG44Gy44GhDQor44Gf44Gr44GQ44GhLOOBi+OBpOOBvw0KK+OBn+OBkeOBoCzjgbLjgZXjgYoNCivjgaTjgaHjgoQs44G+44GV44G/DQor44Gf44GL44Gv44GXLOOBkeOBhOOBmA0KK+OBn+OBruOBhuOBiCzjga7jgbbjgYoNCivjgZ/jgYvjgbDjgZ/jgZEs44Gm44Gk44GKDQor44Gf44GL44Gv44GXLOOBv+OBpOOBkw0KK+OBteOBquOBjSzjgajjgZfjgYoNCivjgZ/jgZHjgaAs44GK44GN44Gk44GQDQor44Go44GP44Gq44GMLOOBjeOCh+OBkw0KK+OBguOBleOBhCzjgojjgZfjgbLjgZUNCivjgZ/jgYvjga/jgZcs44KK44KH44GYDQor44Gf44GL44Gv44GXLOOBsuOBqOOBlw0KK+OBn+OBjOOCjyzjgZ/jgZHjgZcNCivjgZ/jgarjgYss44GX44GS44KLDQor44Gf44Gh44GL44KPLOOBteOBv+OBig0KK+OBn+OBkOOBoSzjgZjjgoXjgpPjgZgNCivjgZ/jgYvjgZXjgY0s44Go44GX44GKDQor44Gf44G+44GK44GNLOOBlOOBhOOBoQ0KK+OBn+OBquOBiyzjgYvjgaTjgobjgY0NCivjgZ/jgYvjga4s44GT44GZ44GRDQor44Gf44GR44GG44GhLOOBi+OBmuOBqA0KK+OBpOOBoCzjgZHjgpPjgYTjgaENCivjgZ/jgYvjgarjgb8s44Go44GX44GC44GNDQor44Gk44GN44Gq44KPLOOBsuOBk+OBleOBtuOCjQ0KK+OBqOOBv+OCguOCiizjgb7jgZXjga7jgbYNCivjgZ/jgZHjgaAs44G+44Gf44GV44G244KNDQor44Go44GM44GXLOOBpuOCi+OChOOBmQ0KK+OBpOOBmuOBjSzjgYvjgaTjgb7jgZUNCivjgajjgbPjgZ8s44Gf44GkDQor44Go44KC44Gq44GMLOOChuOBhuOBmA0KK+OBpOOBpOOBhCzjgb/jgY3jgZMNCivjgZ/jgYvjgY4s44Gu44KK44GKDQor44Gf44Gr44GQ44GhLOOBl+OCh+OBsuOBoQ0KK+OBn+OBi+OBrizjga7jgbbjgobjgY0NCivjgZ/jgarjgYss44Gf44GR44GXDQor44Go44G+44Gk44KKLOOBi+OBmuOCiOOBlw0KK+OBn+OBi+OBjizjgYLjgY3jgokNCivjgZ/jgYvjgZfjgb4s44GX44Ga44GKDQor44Gf44Gv44KJLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBn+OBquOBiyzjgZfjgpMNCivjgZ/jgYvjgaAs44GX44GS44KLDQor44Go44KK44GELOOBm+OCk+OBmA0KK+OBn+OBkeOBuSzjgb7jgZXjgosNCivjgaTjgYvjgoLjgags44KI44GX44Gq44GKDQor44Gf44KA44KJLOOBmeOBmeOCgA0KK+OBqOOBv+OBquOBjCzjgajjgYrjgosNCivjgZ/jgYvjgYTjgo8s44Gm44Gk44Gy44GTDQor44Gf44Gw44GfLOOBl+OBkuOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjga7jgbbjgYLjgY0NCivjgabjgpPjgb3jgorjgpMs44Gk44Gt44GL44GaDQor44Gm44KJ44GG44GhLOOBl+OBkuOBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgZjjgoXjgpPjgZgNCivjgZ/jgYvjgZss44GL44Ga44Go44GXDQor44Gf44GR44KA44KJLOOBqOOBl+OBsuOCjQ0KK+OBn+OCgOOBi+OBhCzjgZXjgajjgZcNCivjgZ/jgYvjga/jgZcs44GX44KNDQor44Gf44GR44GkLOOBhOOBpOOBig0KK+OBn+OBruOBiuOBiyzjgbXjgb/jgYoNCivjgZ/jgYvjga/jgZcs44KI44GX44GC44GNDQor44Go44Gy44KD44G+LOOBi+OBmuOBkw0KK+OBn+OBkeOBhuOBoSzjgojjgZfjgYoNCivjgZ/jgYvjga/jgZcs44G/44Gk44KG44GNDQor44GG44GX44GKLOOBruOBtuOChuOBjQ0KK+OBhuOBmeOBjizjgYLjgY3jgYoNCivjgYbjgaHjgoTjgb4s44Gu44G244Gy44KNDQor44GG44KB44GgLOOBleOBi+OBiA0KK+OBhuOBkeOCguOCiizjgZXjgajjgZcNCivjgYbjgaHjgaAs44GR44KT44GYDQor44GG44GI44GgLOOBj+OBq+OBig0KK+OBhuOBoeOBoCzjgZ3jgbLjgaENCivjgYbjgaTjgY0s44GV44Gg44KG44GNDQor44GG44GI44GgLOOBjeOCiOOBlw0KK+OBhuOBoeOBoCzjgaHjgYvjgokNCivjgYbjgYjjga/jgoks44KC44Go44GEDQor44GG44GI44KA44KJLOOBteOBv+OBig0KK+OBhuOBoeOBoCzjgobjgYbjgZgNCivjgYbjgaHjgoDjgoks44GL44Gk44GYDQor44GG44Gh44GgLOOBmeOBmeOCgA0KK+OBhuOBoeOBoCzjgZ/jgaDjgZcNCivjgYbjgYjjgY0s44GN44KI44Gu44G2DQor44GG44GL44GYLOOBguOBpOOBlw0KK+OBhuOBoeOBoCzjgb7jgZXjgYoNCivjgYbjgYjjgoDjgoks44KG44Ga44KLDQor44GG44GX44GKLOOBi+OBmuOBsuOCjQ0KK+OBhuOCgeOCgOOCiSzjgojjgYTjgaENCivjgYbjgoHjgZfjgb4s44GL44Ga44GZ44GRDQor44GG44GT44KTLOOBvuOBleOBqg0KK+OBhuOBoeOBhOOBkSzjgb/jgaHjgoQNCivjgYbjgovjgZfjga4s44Gy44GV44GKDQor44GG44Gh44Gq44GXLOOBkeOBhOOBmA0KK+OBhuOBkOOBlSzjgabjgaTjgYoNCivjgYbjga4s44G/44GN44Gy44GTDQor44GG44GI44GNLOOBsuOBp+OBjQ0KK+OBhuOBiOOCguOBqCzjgZfjgoUNCivjgYbjgYjjgoDjgoks44Gu44G244KEDQor44GG44GI44Gv44KJLOOBleOBoOOChuOBjQ0KK+OBhuOBiOOBoCzjgZHjgYTjgYTjgaENCivjgo/jgZ/jgarjgbks44GR44KT44GZ44GRDQor44KP44Gf44Gq44G5LOOBkeOBhOOBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgYLjgY3jgZMNCivjgo/jgYvjgoDjgoks44G+44GV44Gm44KLDQor44KP44Gf44Gq44G5LOOBvuOBleOBguOBjQ0KK+OCj+OBn+OBquOBuSzjgbLjgafjgYoNCivjgo/jgZ/jgarjgbks44Go44GP44GYDQor44KP44Gf44Gq44G5LOOBqOOBl+OBig0KK+OCj+OBn+OBquOBuSzjgorjgY3jgaTjgZANCivjgo/jgZ/jgarjgbks44GL44GK44KLDQor44KP44Gf44Gq44G5LOOBmOOCheOBq+OBoQ0KK+OCj+OBn+OBquOBuSzjgZ/jgYvjgYLjgY0NCivjgo/jgY3jgZ8s44G444GE44GfDQor44KP44Gf44Gq44G5LOOBvuOBleOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgajjgZfjgbLjgacNCivjgo/jgZ/jgarjgbks44G/44Gu44KLDQor44KP44Gf44Gq44G5LOOBkeOCkw0KK+OCj+OBn+OBquOBuSzjgobjgY3jgYoNCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44KP44GgLOOBl+OCk+OBuuOBhA0KK+OCj+OBn+OBquOBuSzjgbLjgZXjgobjgY0NCivjgo/jgaAs44GL44Gk44G/DQor44KP44GgLOOBjeOCk+OChA0KK+OCj+OBn+OBquOBuSzjgoTjgZnjgo0NCivjgo/jgZ/jgarjgbks44Gy44Gn44GYDQor44KP44Gf44Gq44G5LOOCiOOBl+OBn+OBiw0KK+OCj+OBi+OBsOOChOOBlyzjgbLjgo3jga/jgosNCivjgo/jgZ/jgarjgbks44GL44Gk44Gq44KKDQor44GK44GfLOOBsuOBp+OBig0KK+OBteOBmOOCj+OCiSzjgYvjgaTjgbLjgZMNCivjgZPjgYTjgZEs44KE44GZ44GC44GNDQor44GL44Gf44GK44GLLOOBn+OBoOOBlw0KK+OBsuOCjeOBl+OBkizjgZPjgoHjgYQNCivjgZfjgpPjgZbjgo8s44Go44GN44GKDQor44G/44Ga44GL44G/LOOBk+OCk+OBlA0KK+OBquOBi+OBmOOBvizjgYLjgY3jgokNCivjgbXjgY/jgZfjgb4s44GK44GV44KADQor44Gq44GLLOOBkeOCk+OBmA0KK+OBsuOCieOChOOBvizjgZnjgb/jgZ/jgaANCivjgavjgo/jgoTjgb4s44KE44GZ44GXDQor44GX44G/44GaLOOBn+OBpOOBsuOBkw0KK+OBteOCi+OBleOCjyzjgZ/jgZHjgb/jgaQNCivjgZXjgY/jgonjgYQs44G744G+44KMDQor44Gf44GR44Gq44GLLOOBvuOBleOBguOBjQ0KK+OBmeOBjuOBhuOCiSzjgYLjgY3jgokNCivjgYvjgajjgYYs44GX44GS44GC44GNDQor44G744GX44GL44KPLOOBv+OBreOBig0KK+OBiuOBjOOCjyzjgbLjgZXjgYoNCivjgYvjgZfjgo/jgY4s44G+44GT44GoDQor44GV44GL44GELOOBmeOBv+OBguOBjQ0KK+OCguOCiizjgb/jgaHjgYoNCivjgbvjgpPjgbws44Gm44Gk44KEDQor44GE44GE44GY44G+LOOBjeOCiOOBlw0KK+OBk+OBmOOBvizjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44G+44GV44G/44GkDQor44Gv44GfLOOBkeOBhOOBhOOBoQ0KK+OBiuOBjOOCjyzjgZfjgZLjgY0NCivjgaTjgaHjgoQs44Gy44KN44GXDQor44GT44KE44G+LOOBvuOBleOBkw0KK+OBteOCi+OBvyzjgYvjgaTjgZgNCivjgY/jgoEs44Gd44GY44KNDQor44GP44KJ44GfLOOBpOOCiOOBlw0KK+OBhuOBl+OBmOOBvizjgb/jgZrjgbsNCivjgYjjgbDjgags44GC44Gk44Gu44G2DQor44GV44Go44GGLOOBi+OCiOOBkw0KK+OCgOOBl+OCgyzjgZHjgpPjgZgNCivjgobjgYLjgZUs44G+44GV44GKDQor44GN44GP44GhLOOBhOOBleOBig0KK+OBvuOBpOOBsOOChOOBlyzjgZMNCivjgb7jgaTjgYQs44Gy44KN44GTDQor44Gf44GR44KA44KJLOOBr+OCi+OBig0KK+OBpuOCieOBl+OBvizjga7jgbbjgobjgY0NCivjgY/jgoks44KI44GX44GC44GNDQor44G+44Gk44GELOOBn+OBi+OBig0KK+OBhuOBiOOBoCzjga7jgbzjgosNCivjga/jgoTjgZcs44GX44KH44GZ44GRDQor44GL44KP44GqLOOBguOBjeOBruOCig0KK+OBr+OChOOBlyzjgYvjgaTjgoQNCivjgafjgoLjgags44GE44GV44GKDQor44GX44G244GNLOOBpuOBpOOBig0KK+OBr+OBvizjgaTjga3jgYoNCivjgYjjgpPjgaks44Gb44Gk44GKDQor44G/44KE44KC44GoLOOBvuOBleOBi+OBmg0KK+OBvuOBpOOBoCzjgYvjgaTjga7jgooNCivjgoTjgb7jgoLjgags44Gu44G244KG44GNDQor44KA44KJ44GL44G/LOOBquOBiuOBsuOBkw0KK+OBiuOBi+OBoCzjgb7jgoLjgosNCivjgo/jgZ/jgarjgbks44Gq44GK44GNDQor44GE44KP44GV44GNLOOBpuOCi+OCiOOBlw0KK+OCiOOBl+OBoCzjgYLjgY3jgokNCivjgYrjgoLjgoos44Gy44KN44GXDQor44G/44Ga44Gf44GrLOOCiOOBmeOBkQ0KK+OBmeOBjuOBhuOCiSzjgbLjgafjgY/jgasNCivjga7jgarjgYss44KI44GX44GKDQor44KP44Gf44Gq44G5LOOBhOOBleOBig0KK+OBleOBhOOBqOOBhizjgZfjgpPjgYTjgaENCivjgYrjgYvjgo/jgoks44Gg44GE44GY44KNDQor44GL44Gp44GE44GRLOOBi+OBmuOBig0KK+OBvuOBpOOCguOBqCzjgb7jgZXjgbLjgo0NCivjgarjgYss44Gf44GR44GXDQor44GL44Go44GGLOOBn+OBpOOBig0KK+OBi+OCj+OBhOOBlyzjgZPjgZbjgbbjgo0NCivjgarjgYzjgZXjgo8s44Gf44GL44Gy44GVDQor44GZ44KE44G+LOOBsuOCjeOBlw0KK+OBj+OBvuOBl+OCjSzjgajjgoLjgZMNCivjgZ/jgYvjgbDjgoTjgZcs44GX44GS44GKDQor44GT44KT44GpLOOBoOOBhOOBjeOBoQ0KK+OBhOOBquOBsCzjgYvjgZrjgobjgY0NCivjgZPjgbDjgoTjgZcs44GC44GN44KIDQor44KE44G+44GQ44GhLOOBmeOBv+OChuOBjQ0KK+OBmeOBmuOBjSzjgb7jgZXjga7jgooNCivjgYLjgY3jgoTjgb4s44Gy44GV44GIDQor44Gf44GL44GgLOOBi+OBmuOBig0KK+OBleOCj+OBhCzjgb/jgaTjgZ/jgYsNCivjgarjgYvjgZ8s44GE44GV44KADQor44GE44Gf44GwLOOBn+OBkeOBig0KK+OBj+OBq+OBjuOBnyzjgZLjgpPjgZ/jgo3jgYYNCivjgoTjgb7jgaAs44Gf44GR44Gf44GgDQor44KE44G+44GgLOOBruOCiuOBi+OBmg0KK+OBn+OBi+OBr+OBlyzjgZ/jgYvjgYoNCivjgYbjgoHjgoDjgoks44GR44KT44GeDQor44GT44Gw44KE44GXLOOChuOBhuOBkw0KK+OBi+OBreOBv+OBpCzjgaTjgajjgoANCivjgarjgYvjgYzjgo8s44GP44KT44KNDQor44GN44GpLOOBsuOCjeOBlw0KK+OBi+OBreOBjSzjgbLjgafjgYoNCivjgZPjgoDjgoks44GR44KT44GeDQor44G144GY44KC44KKLOOBleOBqOOCiw0KK+OChOOBvuOBl+OBnyzjgajjgZfjgbLjgo0NCivjgY/jgorjgoTjgb4s44G/44GL44GTDQor44Go44GW44KPLOOChuOBhuOBmA0KK+OBhOOBl+OBhCzjgobjgZ/jgYsNCivjgZ/jgYvjga/jgZcs44GC44GN44KJDQor44Gf44Gq44GLLOOBvuOBleOBsuOBkw0KK+OBhOOBl+OBluOBjSzjgY3jgojjgobjgY0NCivjga/jgonjgaAs44KG44Gy44GhDQor44Go44GP44Gy44GVLOOCiOOBsuOBoQ0KK+OBhOOBl+OCgOOCiSzjgojjgYbjgZMNCivjgYbjgYjjgaAs44KG44GG44GTDQor44GK44G144GhLOOCiOOBhOOBoeOCjeOBhg0KK+OChOOBpOOCi+OBjizjga7jgorjgbLjgZMNCivjgb/jgarjgags44Gu44G244GC44GNDQor44KI44GX44GgLOOBn+OBoOOBig0KK+OBv+OBquOBvyzjgojjgZbjgbYNCivjgYrjgYss44G+44GV44GXDQor44GE44Gh44GL44KPLOOBn+OBoOOBig0KK+OBiuOBj+OBvCzjgb7jgZXjgbLjgo0NCivjgYTjgZfjgaAs44GR44KT44GE44GhDQor44Go44G/44GfLOOBpuOCi+OBn+OBkQ0KK+OBsuOCieOBiuOBiyzjgb7jgZXjgbLjgo0NCivjgYvjgajjgYYs44Gf44GL44GXDQor44GK44KA44KJLOOBoeOBi+OBqOOBlw0KK+OBiuOBleOBmOOBvizjgojjgbLjgaENCivjgbXjgarjgZPjgZcs44GL44Ga44G/DQor44GT44GgLOOBpuOBpOOBig0KK+OBguOBleOBiuOBiyzjgb7jgZXjgbLjgo0NCivjgYvjgZnjgYws44GX44GS44KE44GZDQor44KC44KC44Gv44KJLOOBn+OBoOOBsuOCjQ0KK+OBhuOBiOOCgOOCiSzjgZ/jgYvjgZcNCivjgYrjgbDjgZ8s44GP44Gr44Gy44KNDQor44GK44Gu44GgLOOBv+OBpOOBig0KK+OBv+OChOOBl+OBnyzjgb7jgobjgb8NCivjgbvjgZ3jgoQs44G+44GV44Gy44KNDQor44KE44GX44KNLOOChOOBmeOBig0KK+OCj+OBn+OBquOBuSzjgYLjgY3jgYoNCivjgY3jgoDjgoks44GL44Ga44GKDQor44GL44G/44GY44KHLOOBsuOBp+OBjQ0KK+OBleOBqOOBhizjgbLjgo3jgobjgY0NCivjgb7jgaTjgZfjgb4s44GE44GV44GKDQor44GL44Gf44KE44G+LOOBsuOCjeOBsuOBlQ0KK+OBsuOCieOBrizjgbLjgafjgYoNCivjgarjgYvjgonjgYQs44KA44Gk44GKDQor44KI44GT44KE44G+LOOBqOOBl+OChA0KK+OBiuOBjOOBrSzjgZvjgaTjgYoNCivjgY3jgoDjgoks44Gy44Gn44GC44GNDQor44Gu44GW44GVLOOBn+OBpOOBig0KK+OCguOCiuOBrizjgYLjgZHjgb8NCivjgYjjgaHjgZTjgoQs44G244Gr44GhDQor44G144GP44GX44G+LOOBqOOBl+OBsuOBpw0KK+OBhOOBqOOBhizjgYvjgZrjgZMNCivjgYTjgZHjgaAs44KG44GN44GKDQor44Go44GP44Gq44GMLOOBi+OCk+OBmA0KK+OBjeOCguOBqCzjgoTjgZnjgYoNCivjgYrjgZfjgaAs44KG44GN44GKDQor44Gv44GX44KC44GoLOOBguOBpOOBlw0KK+OBruOBkOOBoSzjgajjgY3jgaENCivjgb/jgoTjgbks44Gy44GV44GIDQor44GP44KP44Gv44KJLOOCiOOBl+OBiuOBjQ0KK+OBjeOCgOOCiSzjgYLjgY3jgokNCivjgYrjgaAs44KI44GG44GTDQor44GC44GE44GW44KPLOOBlOOBuOOBhA0KK+OBhuOBiOOBrizjgaDjgYTjgZnjgZENCivjgb7jgaTjgbDjgoks44Gy44GV44GKDQor44Gf44G+44GELOOBqOOCguOBsuOCjQ0KK+OBl+OCieOBhCzjgb7jgZPjgagNCivjgYrjga/jgZcs44KI44GX44Gu44KKDQor44Gf44G/44KELOOBi+OBmuOBl+OBkg0KK+OBr+OCieOBoCzjgb/jgaHjgbLjgZMNCivjgYbjgZnjgYQs44Gy44Gn44GKDQor44GT44KKLOOBvuOBleOChuOBjQ0KK+OBruOBoCzjgobjgY3jgZMNCivjgarjgb/jgY0s44KK44GIDQor44Gq44GL44GKLOOBguOBhOOBkw0KK+OBi+OBqeOChCzjgZXjgajjgZMNCivjgYrjga4s44Gu44KK44GL44GaDQor44GX44G244GL44KPLOOBqOOBl+OBruOCig0KK+OBhOOCj+OBleOCjyzjgYvjgZrjgagNCivjgZ/jgbbjgZss44KE44GZ44GIDQor44GK44GV44KPLOOBsuOCjeOBvw0KK+OBquOBi+OBoOOBhCzjgYvjgZrjgobjgY0NCivjgYjjgYzjgZfjgoks44Gf44G/44GKDQor44GV44GV44GNLOOBi+OBpOOBig0KK+OBteOBj+OBoSzjga7jgorjgobjgY0NCivjgojjgZfjgoTjgZks44GL44Ga44G/44GhDQor44KP44Gf44Gq44G5LOOCiOOBl+OBig0KK+OBhuOBiOOBrizjgZPjgYbjgZgNCivjgYjjgags44G144G/44KEDQor44KI44GX44GgLOOCiOOBl+OBkw0KK+OBn+OBkeOBhCzjgZ/jgYvjgZcNCivjga/jgoTjgZcs44GT44GG44GE44Gh44KNDQor44G+44Gf44GNLOOBl+OBkuOBsuOBkw0KK+OCguOCiuOCguOBqCzjgb7jgZXjgagNCivjgYTjga/jgoks44G+44GV44G/44GkDQor44Gk44GL44Gv44KJLOOBguOBjeOCiQ0KK+OBi+OBrizjgajjgZfjgbLjgacNCivjgoDjga3jgobjgY0s44GX44KT44GE44GhDQor44GK44Gk44G8LOOBvuOBquOBtg0KK+OChOOBvuOCguOCiizjgYTjgaHjgo3jgYYNCivjgYLjgpPjganjgYYs44Gf44GL44KI44GXDQor44KE44G+44GW44GNLOOBkeOCk+OBmA0KK+OBn+OBjeOCguOBqCzjgbLjgo3jgobjgY0NCivjgZ/jgZHjgoDjgoks44GL44Gk44GKDQor44KA44KJ44GL44G/LOOBi+OBmuOBsuOBkw0KK+OBn+OBi+OBnyzjgZQNCivjgbLjgo3jgZss44GT44GV44GoDQor44KE44GP44KPLOOCjOOBhOOBkw0KK+OBl+OCk+OBkOOCiuOChyzjgb7jgZXjga7jgooNCivjgZ/jgaEs44G+44GV44GKDQor44GV44Go44GGLOOChuOBsuOBoQ0KK+OChOOBvuOCguOBqCzjgbLjgZXjgZcNCivjgZnjganjgYYs44GX44KT44GUDQor44G744KT44G+LOOBhOOBoeOCjeOBhg0KK+OBiuOBpOOBvCzjgZHjgpPjgZgNCivjgYvjgZbjgb4s44Gm44KL44GKDQor44GC44GM44KPLOOBqOOCguOBkw0KK+OBhOOBruOBhuOBiCzjgbLjgafjgb7jgZUNCivjgYLjgonjgYQs44KI44GX44Gf44GLDQor44GG44GI44KA44KJLOOBi+OBpOOBig0KK+OBq+OBl+OBj+OCiSzjgZvjgYTjgY0NCivjgb/jgoTjgZbjgY0s44KI44GX44GC44GNDQor44G144GP44GgLOOCiOOBsuOBoQ0KK+OBpOOCiuOChCzjgarjgYrjgYvjgZoNCivjgZ/jgarjgYss44G+44GT44GoDQor44GK44GM44KPLOOBruOCiuOBig0KK+OBmeOBmuOBjSzjgaTjgZ/jgbLjgo0NCivjga/jgb7jgZDjgaEs44Gf44GL44GXDQor44GL44KB44GgLOOCiOOBhuOBkw0KK+OCguOCguOBr+OCiSzjgb7jgZXjgZcNCivjgbLjgonjgYos44GL44Ga44GKDQor44Gf44GL44GgLOOBvuOBleOBsuOCjQ0KK+OBhOOBkeOBoCzjgZfjgofjgZMNCivjgZnjgZrjgY0s44Gy44KN44GNDQor44Gf44GL44Gv44GXLOOBqOOBl+OBig0KK+OBn+OBquOBiyzjgb/jgaTjgbLjgo0NCivjgZvjgoks44G/44G744GTDQor44Gf44GR44KA44KJLOOCiuOCheOBsuOBoQ0KK+OBu+OCiuOBjeOCiizjgb7jgZXjgaENCivjgYTjgZHjgaAs44KG44Gf44GLDQor44GC44KJ44GNLOOBvuOBleOBsuOCjQ0KK+OBiuOBpOOBiyzjgojjgZfjgYvjgZoNCivjgY/jgavjgb7jgaQs44KC44KK44G+44GVDQor44GG44GX44GwLOOBn+OBoOOBig0KK+OBr+OChOOBlyzjgbLjgo3jgYvjgZoNCivjgYTjgZfjgYQs44GT44GG44GYDQor44GL44GgLOOBv+OBruOCiw0KK+OChOOBjizjgZ/jgY/jgZgNCivjgbLjgonjgYQs44GL44Gk44KEDQor44GP44KN44GbLOOBsuOBp+OBig0KK+OBiuOBi+OBuSzjgZ/jgYvjgZMNCivjgYvjga3jgZMs44Gq44GK44KG44GNDQor44GT44GY44G+LOOCiOOBl+OBsuOCjQ0KK+OBq+OBl+OCiOOCiizjgYLjgY3jgokNCivjgarjgYvjgZjjgocs44GL44Ga44KI44GXDQor44Gv44GX44GP44KJLOOBmOOCjQ0KK+OBn+OBi+OBr+OBlyzjgZ/jgYTjgaENCivjgYbjgYjjgY/jgZUs44Go44GX44GC44GNDQor44GX44Gw44GfLOOBvuOCguOCiw0KK+OBn+OBi+OBr+OBlyzjgb/jga7jgosNCivjgYTjgarjgbAs44Gb44GN44GtDQor44GY44KF44Gr44Gh44KNLOOBi+OBmuOBhOOBoeOCjeOBhg0KK+OBr+OChOOBi+OCjyzjgZvjgYTjgZbjgbbjgo0NCivjgYTjgajjgYYs44Gf44GL44GXDQor44GN44KC44GoLOOBvuOBleOBqA0KK+OBhOOBoCzjgb/jgY3jgYoNCivjgbvjgZjjgocs44GC44GN44KJDQor44G744KK44GELOOBn+OBoOOBig0KK+OBi+OBhOOBmyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjga/jgZfjgoLjgags44Gy44KN44GXDQor44GZ44Ga44GNLOOBhOOBleOCgA0KK+OBi+OBreOBleOBiyzjgajjgZfjgobjgY0NCivjgoTjgb7jgZDjgaEs44GV44Go44KLDQor44GZ44Ga44GNLOOBv+OBruOCiw0KK+OBmeOBqeOBhizjgZjjgo0NCivjgYrjgbAs44Gk44Go44KADQor44KA44KJ44GfLOOBn+OBpOOBig0KK+OBguOBjeOChOOBvizjga7jgbbjgYLjgY0NCivjgYLjgZnjgb4s44Gy44KN44GXDQor44GL44KP44GY44KKLOOBpuOCi+OBig0KK+OBvuOBpOOCguOBqCzjgYvjgZrjgagNCivjgZfjgo3jgoTjgb4s44GC44GN44Gu44KKDQor44G144GY44GELOOBsuOBp+OBig0KK+OBlOOBqCzjgZ/jgZHjgZcNCivjgZ/jgavjgYLjgYQs44G+44GV44Gk44GQDQor44GL44Gk44G844KKLOOBsuOCjeOBlw0KK+OBsuOBguOBpizjgYvjgaTjgbLjgZMNCivjgabjgonjgYQs44Gk44Gt44GKDQor44Gv44KT44GgLOOBguOBpOOBlw0KK+OBv+OBl+OBvizjgoTjgZnjgYLjgY0NCivjgZ/jgYvjgZfjgb4s44Gy44Go44GXDQor44G+44Gk44GgLOOCiOOBl+OBig0KK+OBk+OCk+OBqSzjgobjgYbjgZgNCivjgYTjgZ/jgoQs44G+44GV44GL44GaDQor44G+44Gk44KC44GoLOOBvuOBleOBsuOBkw0KK+OBhOOBhOOChOOBvizjgb/jgbvjgZMNCivjgZjjgaPjgags44Go44GX44GTDQor44GP44G844GfLOOBvuOBleOBlw0KK+OBhOOBl+OBkOOCjSzjgZ/jgZHjgYoNCivjgoLjgoos44Gy44Gn44GKDQor44GL44KT44GuLOOBjeOCh+OBmA0KK+OBhOOBqOOBhizjgZMNCivjgojjgZfjgaAs44GC44Gk44GTDQor44G+44KL44KE44G+LOOBoOOBhOOBmeOBkQ0KK+OBleOBqOOBhizjgoTjgZnjgb7jgZUNCivjgZPjgaAs44G+44GNDQor44KP44Gf44GrLOOBj+OBv+OBkw0KK+OBleOBmyzjgYLjgY3jgZMNCivjgZ3jgajjgoTjgb4s44G+44GV44GTDQor44G744KT44GgLOOBsuOCjeOBvw0KK+OBhOOBrOOBhCzjgYvjgZrjgb8NCivjgZnjgZrjgY0s44GC44GN44KJDQor44GT44Gr44GXLOOBruOCiuOBkw0KK+OBmeOBjuOBhCzjgZHjgpPjgZgNCivjgYLjgonjgY0s44Gq44GK44Gf44GRDQor44Gy44KJ44GK44GLLOOBsuOBp+OBig0KK+OBiuOBpOOBiyzjgYvjgaTjgbLjgo0NCivjgYvjgajjgYYs44GV44Gh44GTDQor44GX44GK44GuLOOBiOOBhOOBmA0KK+OBi+OBn+OChOOBvizjgYbjgaTjgb8NCivjgbXjgaHjgYvjgb8s44GV44Gh44GTDQor44Gy44KJ44GNLOOBm+OBhOOBmA0KK+OBhOOCj+OBleOBjSzjgorjgoXjgZgNCivjgYjjga7jgY0s44GP44Gr44GKDQor44GE44KP44GfLOOBquOBuw0KK+OBl+OCheOBqCzjgojjgZgNCivjgajjgbLjgoPjgb4s44G+44KC44KLDQor44GT44GE44GnLOOBhOOBj+OBig0KK+OBn+OBquOBuSzjgYvjgaTjga7jgooNCivjgoTjgb7jgoLjgags44Gm44KL44GP44GrDQor44GL44GE44Gv44GkLOOChuOBn+OBiw0KK+OBguOCieOBhCzjgojjgZfjga7jgooNCivjgYbjgYjjgaAs44KI44GX44Gu44G2DQor44GP44KJ44GK44GLLOOChuOBjeOBsuOBlQ0KK+OBk+OBsOOChOOBlyzjga7jgbbjgYoNCivjgZ/jgoHjgaHjgYss44KE44GZ44GXDQor44KI44GX44GgLOOCgOOBpOOBig0KK+OBvuOBpOOCguOBqCzjgZfjgZLjgYoNCivjgZXjgYvjgZfjgZ8s44Gy44KN44GXDQor44KP44GgLOOBsuOCjeOBruOCig0KK+OBhOOBqOOBhizjgZ/jgZHjgbLjgZMNCivjgojjgZfjgaAs44Gf44KC44GkDQor44KI44Gt44GgLOOBjeOBv+OBig0KK+OBiuOCgOOCiSzjgZjjgoXjgpMNCivjgZ/jgYvjgY4s44Gb44GE44GE44GhDQor44GG44Gh44KE44G+LOOBn+OBoOOBlw0KK+OBi+OBl+OCj+OBjizjgb7jgaTjga7jgooNCivjgavjgZfjgaAs44GY44KF44KT44GW44G244KNDQor44GK44GX44GLLOOChuOBhuOBmOOCjQ0KK+OBiOOBmOOBvizjgZfjgoXjgavjgaENCivjgYrjgYss44Gb44GE44GXDQor44KI44GX44GgLOOBi+OBpOOBmA0KK+OBhOOBvuOBhCzjgobjgZ4NCivjgoTjgb7jgb/jgaEs44Gd44GG44GE44Gh44KN44GGDQor44GC44GE44KC44GuLOOBiOOBpOOBsuOCjQ0KK+OBsuOBrizjgZ/jgabjgYoNCivjgZ/jgYvjga/jgZcs44GX44Ga44GKDQor44KI44GT44GfLOOBl+OBkuOCiw0KK+OBhOOBruOBhizjgYvjga3jgYoNCivjgojjgZfjgaAs44Go44GX44GC44GNDQor44KI44GX44GK44GLLOOChOOBmeOBig0KK+OBhuOCgeOBluOCjyzjgYvjgaTjgZgNCivjgabjgonjgYos44Go44GX44Gy44GnDQor44GL44KP44Gv44KJLOOBvuOBleOBvw0KK+OBr+OBm+OBjOOCjyzjgZfjgaHjgo0NCivjgY3jgZcs44GC44GN44GTDQor44Gv44GX44Ga44KBLOOBkeOBhOOBkw0KK+OCiOOBl+OBoCzjgZvjgaTjgYoNCivjgb/jga3jgbXjgZgs44Gf44GR44GKDQor44G744KT44GgLOOBqOOCguOBruOCig0KK+OBn+OBi+OBleOCjyzjgZHjgpPjgYTjgaENCivjgYrjga/jgZcs44KE44GZ44GIDQor44GL44GM44KPLOOChOOBmeOBl+OCjQ0KK+OBq+OBl+OBoCzjgajjgoLjgZMNCivjgYTjgZ/jgYzjgY0s44GL44Gk44GKDQor44GC44GN44KE44G+LOOCguOBqOOBkw0KK+OBleOBhOOBqOOBhizjgb/jgZXjgZMNCivjgYrjgaHjgoos44GI44GE44GTDQor44Gu44GW44KPLOOBn+OBiOOBkw0KK+OBleOBhOOBqOOBhizjgbLjgo3jgZMNCivjgY3jgoDjgoks44GC44GN44GTDQor44GC44G5LOOBhuOBjeOBkw0KK+OBj+OBmeOBruOBjSzjgbLjgo3jgbLjgZUNCivjga/jgoTjgZcs44Gv44KL44GKDQor44GK44GyLOOBv+OBruOCiw0KK+OBi+OBv+OBiuOBiyzjgabjgovjgZMNCivjgYLjgY3jgoTjgb4s44G/44Gk44Gy44KNDQor44GC44KK44GfLOOCgeOBkOOBvw0KK+OBjeOBn+OCgOOCiSzjgarjgYrjgZMNCivjgb7jgZnjgoDjgoks44KG44G/DQor44GK44GV44KPLOOBv+OChuOBjQ0KK+OBi+OCj+OBhCzjgojjgYbjgZMNCivjgYTjgZ/jgYzjgY0s44Gh44GLDQor44KC44KKLOOBvuOCig0KK+OBguOBiuOBjSzjgYLjgY3jgZMNCivjgbXjgZjjgZfjgo0s44Gu44KK44Gy44KNDQor44GX44G/44GaLOOBk+OBsuOChw0KK+OCgOOCieOBi+OBvyzjgoTjgZnjgbLjgo0NCivjgarjgYvjgZjjgb4s44GT44GG44GYDQor44KC44GOLOOBkeOCk+OBmA0KK+OBv+OBhuOCiSzjgaHjgYgNCivjgZ/jgYvjgb7jgaQs44Gq44GK44GoDQor44Gf44GL44GgLOOBqOOCguOBkw0KK+OBk+OCk+OBqSzjgoTjgZnjgbLjgo0NCivjgarjgYvjgZjjgb4s44Gq44GK44G/DQor44Gt44KM44GELOOBr+OCi+OCiOOBlw0KK+OBhuOBl+OBjyzjgYTjgZXjgYoNCivjgY3jgZ/jgZbjgo8s44GL44Gk44G/DQor44GV44Gj44GVLOOBv+OBoeOChuOBjQ0KK+OBhOOBo+OBl+OBjSzjgZ/jgYvjga7jgooNCivjgYvjgo/jga4s44GR44KTDQor44GE44GX44Gv44KJLOOBv+OBruOCiw0KK+OBi+OCgeOBiuOBiyzjgbLjgafjgYoNCivjgY3jgYbjgaEs44Gf44GL44GKDQor44Gq44GM44GELOOBv+OBjeOBig0KK+OBruOBkOOBoSzjgZPjgYbjgZgNCivjgYrjgZfjgZ8s44KC44Go44GX44GSDQor44KI44GX44KA44KJLOOBv+OCiOOBlw0KK+OBguOBi+OBu+OCiizjgabjgaTjgYoNCivjgb7jgovjgarjgYws44GC44GN44GKDQor44KI44GX44GuLOOBi+OBmuOBig0KK+OChOOBrizjgZHjgpPjgZgNCivjgoTjgb7jgZDjgaEs44GX44KH44Gy44GhDQor44KE44G+44GQ44GhLOOBvuOBleOBkw0KK+OBm+OCk+OBqeOBoCzjgbLjgajjgZcNCivjgoTjgZnjgaAs44Gy44KN44GXDQor44KI44GT44GILOOBiuOBleOCgA0KK+OChOOBvuOBl+OBnyzjgZMNCivjgojjgZfjgaAs44Gu44G244Gy44KNDQor44KE44G+44GX44GfLOOCiOOBl+OBsuOCjQ0KK+OChOOBmeOBhCzjga7jgorjgaTjgZANCivjgoTjgb7jgYrjgYss44G144G/44Gf44GLDQor44KI44GT44GbLOOBn+OBoOOBig0KK+OChOOBvuOBkOOBoSzjga7jgorjgYvjgZoNCivjgoTjga/jgY4s44Gy44Go44GXDQor44KE44G+44GK44GLLOOBv+OBoeOBig0KK+OCiOOBpOOChCzjgZ/jgYvjgYoNCivjgoTjgb7jgoLjgags44Go44GX44G/44GhDQor44KI44GX44GL44KPLOOBv+OBpOOBruOBtg0KK+OChOOBvuOBl+OBnyzjgojjgZfjgaTjgZANCivjgoTjgb7jgYrjgYss44GT44GG44Gf44KN44GGDQor44KI44Gt44G/44GkLOOCiOOBl+OBsuOCjQ0KK+OCiOOBl+OBoCzjgb7jgZXjgbLjgacNCivjgoTjgb7jgZbjgY0s44GL44Gk44Go44GXDQor44KE44G+44KC44GoLOOBvuOBleOCiw0KK+OChOOBvuOBkOOBoSzjgYLjgY3jgokNCivjgoTjgb7jgYbjgaEs44GY44KF44Gr44GhDQor44KI44GX44GW44KPLOOBm+OBhOOBluOBtuOCjQ0KK+OCiOOBl+OBiuOBiyzjgajjgb/jgZ4NCivjgoTjgb7jgoLjgags44GZ44GZ44KADQor44KE44G+44GK44GLLOOBi+OBmuOBig0KK+OChOOBvuOBluOBjSzjgY3jgofjgZnjgZENCivjgojjgZfjgoDjgoks44Go44KC44GX44GSDQor44KE44GZ44GgLOOBkeOCk+OBmA0KK+OChOOBvuOBl+OBnyzjgoTjgZnjga/jgosNCivjgoTjgaAs44Gy44KN44G+44KLDQor44KI44GX44GgLOOBqOOBiuOCiw0KK+OChOOBvuOCguOBqCzjgZjjgoXjgpPjgZMNCivjgoTjgb7jgaAs44Go44GX44KNDQor44KI44Gt44GgLOOBl+OCh+OBmA0KK+OCiOOBl+OBoCzjgbLjgo3jgZMNCivjgoTjgb7jgaAs44Gb44GE44GYDQor44KE44G+44GQ44GhLOOBkeOCk+OBhOOBoQ0KK+OChOOBvuOBkOOBoSzjgabjgaTjgYoNCivjgoTjgb7jgoLjgags44Gy44GL44KLDQor44KI44GX44GgLOOBv+OBruOCiw0KK+OChOOBvuOBl+OBnyzjgZXjgYvjgYgNCivjgoTjgpPjgbks44GL44Gk44G/DQor44KE44G+44GQ44GhLOOBi+OBpOOBsuOBqA0KK+OChOOBvuOCguOBqCzjga7jgbbjgYoNCivjgoTjgb7jga0s44G/44Gh44Go44GXDQor44KE44G+44GV44GNLOOBguOBjeOCiQ0KK+OChOOBmeOBiuOBiyzjgb7jgZXjgbLjgZMNCivjgoTjgb7jgaAs44GT44GG44GYDQor44KI44GX44GW44KPLOOBm+OBhOOBhOOBoQ0KK+OChOOBmOOBvizjgZfjgpPjgoQNCivjgoTjgarjgYQs44GE44Gh44KN44GGDQor44KE44G+44GW44GNLOOBpOOBqOOCgA0KK+OChOOBvuOBhuOBoSzjgZTjgo0NCivjgoTjgb7jgZbjgY0s44GL44GK44KLDQor44KI44GX44GuLOOBvuOBleOBsuOCjQ0KK+OChOOBvuOBi+OBkizjgY/jgZnjgYoNCivjgoTjgY4s44Gf44GL44G144G/DQor44KE44GZ44GgLOOBteOBv+OBsuOCjQ0KK+OChOOBvuOChCzjgZ/jgYvjgZMNCivjgZ/jgYvjgZDjgaEs44GZ44GZ44KADQor44KI44GX44GgLOOBl+OCh+OBng0KK+OCiOOBl+OBrizjgYLjgaTjgbLjgo0NCivjgoTjgb7jgoDjgoks44Gu44KK44KI44GXDQor44KE44GOLOOBmOOCheOCk+OBmA0KK+OChOOBvuOBoCzjgZPjgYbjgZjjgo0NCivjgobjgYvjgo8s44GR44KT44Gf44KN44GGDQor44KE44G+44KC44GoLOOChuOBjeOBig0KK+OChOOBvuOBn+OBqyzjgYjjgYTjgZ4NCivjgoTjgb7jgoDjgo0s44GY44KNDQor44KI44GX44GgLOOBguOBjeOCiQ0KK+OCiOOBk+OBi+OCjyzjgabjgaTjgYoNCivjgoTjgb7jgZbjgY0s44GL44Ga44GKDQor44KE44G+44KC44GoLOOBteOBj+OBv+OBoQ0KK+OCiOOBl+OBrizjgZnjgZnjgoANCivjgoTjgb7jga0s44Gf44Gk44KG44GNDQor44KE44GZ44Gq44GMLOOBn+OBoOOBruOBtg0KK+OChOOBquOBiyzjgZjjgaTjga7jgooNCivjgoTjgb7jga0s44G+44GV44GKDQor44KE44G+44GG44GhLOOBruOBtuOBig0KK+OChOOBvuOBkOOBoSzjga7jgbzjgosNCivjgoTjgb7jgo/jgY0s44Gy44KN44GXDQor44KE44G+44GL44KPLOOBk+OBhuOBmA0KK+OChOOBvuOBoCzjgZjjgoXjgavjgaENCivjgojjgZPjgoTjgb4s44GL44Gk44Gu44KKDQor44KE44G+44KC44GoLOOBk+OBmeOBkQ0KK+OChOOBvuOBkOOBoSzjgb7jgZXjgajjgZcNCivjgoTjgb7jgZDjgaEs44GY44KH44GYDQor44KI44GX44GgLOOBsuOCjeOBpOOBkA0KK+OChOOBvuOBquOBiyzjgojjgZfjgYvjga0NCivjgoTjgb7jgoLjgags44Go44GX44Gy44GTDQor44KI44GX44GgLOOBqOOCguOCiOOBlw0KK+OChOOBvuOBoCzjgZPjgYbjgYTjgaENCivjgoTjgb7jgYrjgYss44Gf44GR44GKDQor44KI44GT44KE44G+LOOBjeOCiOOBlw0KK+OChOOBvuOBleOBjSzjgojjga3jgZ/jgYsNCivjgoTjgb7jgoLjgags44GC44GN44Gy44KNDQor44KE44G+44GL44KPLOOBkeOBhOOBhOOBoQ0KK+OChOOBhuOBoSzjgabjgaTjgYoNCivjgojjgZfjga/jgoks44KI44GX44KG44GNDQor44KI44GT44G/44GeLOOChuOBhuOBmA0KK+OChOOBvuOCguOBqCzjgZfjgofjgZ/jgo3jgYYNCivjgoTjgb7jgoLjgags44GY44KF44Gr44GhDQor44KE44G+44KC44GoLOOBi+OBmuOBvw0KK+OCiOOBl+OBoCzjgZfjgofjgZ/jgo3jgYYNCivjgojjgZfjgaAs44KE44Gd44G/DQor44KE44GZ44GELOOBruOBvOOCiw0KK+OChOOBvuOBkOOBoSzjgZ/jgYvjgojjgZcNCivjgoTjgb7jgoLjgags44Gf44GL44GKDQor44KI44GT44GfLOOBi+OBmuOBvw0KK+OCiOOBl+OBoCzjgZ/jgaDjga/jgosNCivjgojjgZPjgoTjgb4s44Gf44GL44GKDQor44KE44GZ44GELOOBleOBqOOCiw0KK+OChOOBvuOBleOBjSzjgojjgZfjgajjgoINCivjgojjgZfjgYrjgYss44G+44GV44Gy44GVDQor44KI44GX44GgLOOBruOCiuOBig0KK+OChOOBvuOBoCzjgYvjgaTjgbLjgZMNCivjgoTjgb7jgoLjgags44G+44GV44KI44GXDQor44KI44GX44GgLOOBn+OBoOOCiOOBlw0KK+OChOOBvuOBluOBjSzjgYvjgaTjgZgNCivjgoTjgb7jga0s44GX44GS44KLDQor44KG44Gf44GrLOOBl+OCheOBng0KK+OCiOOBreOBluOCjyzjgabjgovjgYoNCivjgojjgZfjga4s44GI44GE44GE44Gh44KN44GGDQor44KI44GX44GgLOOBvuOBleOBsuOCjQ0KK+OCiOOBl+OCguOCiizjgbXjgb/jgbLjgo0NCivjgojjgZfjgo/jgoks44G/44Gu44KLDQor44KE44G+44GgLOOBl+OBkuOCiw0KK+OCiOOBl+OBoCzjgYLjgY3jgokNCivjgojjgZfjgaAs44GI44GE44GE44GhDQor44KE44G+44KC44GoLOOChuOBn+OBiw0KK+OBk+OBmOOBvizjgbLjgafjgY0NCivjgYrjga4s44GL44Ga44KC44GoDQor44G+44GI44GL44KPLOOBi+OBmuOBsuOCjQ0KK+OBk+OBrizjga7jgbbjgYoNCivjgb7jgY3jgZss44GX44KF44KT44KN44GPDQor44Gu44KA44KJLOOBi+OBpOOBsuOCjQ0KK+OChOOBmeOBr+OCiSzjgojjgZgNCivjgarjgYzjgZfjgb4s44Gb44GE44GeDQor44GN44Gf44Gv44GXLOOBm+OBhOOBl+OCjQ0KK+OBpOOCiyzjgarjgYrjgZgNCivjgaTjgY/jgaAs44GZ44GZ44KADQor44Gm44KJ44GG44GhLOOCiOOBl+OBsuOCjQ0KK+OChOOBvuOBoCzjgaDjgYTjgZnjgZENCivjgZvjgpPjgbAs44Gf44GR44GKDQor44GV44GI44GNLOOBsuOBleOBqOOCiA0KK+OBiuOBi+OBoCzjgZ/jgZHjgZcNCivjgb/jgoTjgYbjgaEs44Go44GX44GNDQor44GT44KT44GpLOOBqOOBl+OBi+OBmg0KK+OBteOBjeOBguOBkizjgoDjgaTjgYoNCivjgYTjgZfjgYvjgo8s44KC44KK44Gy44GTDQor44GE44KP44KC44GoLOOBj+OBq+OBi+OBpA0KK+OBj+OBvCzjgZfjgZLjgYoNCivjgZ/jgarjgYss44GT44GG44Gf44KN44GGDQor44KP44GgLOOBruOBtuOChuOBjQ0KK+OBhOOCj+OBiizjgY3jgojjgZcNCivjgY/jgb7jgYzjgYQs44G+44GV44Gf44GLDQor44GZ44Ga44GNLOOBvuOBleOBsuOBkw0KK+OBn+OBi+OCgOOCiSzjgYLjgaTjgojjgZcNCivjgavjgZfjgYbjgoks44G+44GV44GKDQor44G/44Gk44GYLOOBjeOCiOOBv+OBoQ0KK+OBn+OBjeOBjeOBnyzjgb/jgaHjgYoNCivjgYrjgYbjgaEs44Gf44GR44GXDQor44GT44G+LOOBleOBqOOCiw0KK+OBvuOBmeOBoCzjgZnjgZnjgoANCivjgYvjgajjgYYs44Gu44KK44GKDQor44GE44GE44Ga44GLLOOBl+OCh+OBsuOBoQ0KK+OBvuOCi+OChOOBvizjgbLjgZXjgYoNCivjgajjgZfjgZ/jgass44Go44GX44GKDQor44Gv44Gq44G244GhLOOChOOBmeOBig0KK+OBhOOBvuOBhCzjgaHjgojjgZ/jgZENCivjgYrjgYvjgbLjgo0s44G+44GV44GKDQor44GN44KA44KJLOOBmOOCheOBq+OBoeOCjQ0KK+OBn+OBmOOBvizjgbLjgo3jgYvjgaQNCivjgYvjgpPjgaAs44Gu44KK44GKDQor44Gp44GELOOBpOOBreOBruOCig0KK+OBguOCieOBjOOBjSzjgZ/jgYvjgbLjgo0NCivjgY3jgoXjgZ3jgZjjgpMs44Gy44KN44G144G/DQor44Gf44GR44GG44GhLOOBsuOCjeOBlw0KK+OBhuOBrOOBvizjgZvjgYTjgYTjgaHjgo3jgYYNCivjgoTjgb7jgZDjgaEs44G+44GV44GXDQor44KI44KC44KKLOOBguOBjeOCiQ0KK+OBl+OBvuOBluOBjSzjgZHjgpPjgZgNCivjgajjgY/jgoQs44GC44GN44GKDQor44KE44G+44GgLOOBkeOCk+OBmA0KK+OBteOBi+OChCzjgajjgZfjgo0NCivjgYjjgZDjgaEs44GL44Ga44Gy44GTDQor44GV44GuLOOBruOBtuOBguOBjQ0KK+OBqOOBj+OBrizjgajjgYrjgosNCivjgYrjgajjgoIs44G+44GV44Gy44KNDQor44GX44KJ44GK44GM44KPLOOBvuOBleOBng0KK+OBsuOCieOBrizjgaTjga3jgYoNCivjgYrjgaAs44Go44GX44Gy44GTDQor44Gf44Gq44GLLOOBvuOBleOBr+OCiw0KK+OBteOBmOOBnyzjgaTjgonjgobjgY0NCivjgYLjgonjgYQs44GK44GV44KADQor44G144GY44GfLOOChOOBmeOBruOBtg0KK+OBquOBi+OBjOOCjyzjgZHjgpPjgZnjgZENCivjgarjgYvjgavjgZcs44Gk44Gt44KIDQor44Gv44KJLOOBsuOBp+OBquOCig0KK+OBoeOBsCzjgojjgZfjgZ/jgYsNCivjgYTjgZfjgo/jgZ8s44KC44Go44Gy44GVDQor44KE44GQ44GhLOOBj+OBq+OBsuOBkw0KK+OBpuOBmOOBvizjgajjgZfjgYoNCivjgZ/jgaTjgZ8s44GC44GN44KJDQor44GP44GV44GLLOOBl+OBkuOBig0KK+OBteOCi+OBnyzjga/jgovjgYoNCivjgZTjgags44Gy44Gn44Gu44G2DQor44GK44Gg44GO44KKLOOBguOBjeOCiQ0KK+OBmeOBmuOBjSzjgZXjgaDjgoANCivjgY/jgb7jgYzjgYQs44Gy44KN44GXDQor44KA44KJ44GL44G/LOOBn+OBhOOBjQ0KK+OBv+OCgOOCiSzjgobjgYbjgZgNCivjgojjgZPjgYQs44KK44KH44GeDQor44GE44Gq44GSLOOBguOBjeOCiQ0KK+OBguOCgeOBv+OChCzjgYLjgY3jgbLjgacNCivjgYTjga7jgYbjgYgs44KG44GG44GYDQor44Gs44G+44GfLOOBsuOCjeOChuOBjQ0KK+OBleOBi+OCguOBqCzjgYvjgZrjgZfjgZINCivjgbLjgonjgb7jgaQs44GC44GN44Gy44KNDQor44Gq44KK44GfLOOBqOOBl+OBkw0KK+OBpOOBreOBvyzjgajjgZfjgbLjgZUNCivjgZ/jgYvjgZfjgb4s44Gf44GR44Gy44KNDQor44G/44GZLOOBi+OBmuOBig0KK+OBleOBjeOChOOBvizjgZfjgZLjgosNCivjgbXjgZjjgo/jgoks44Gf44GR44GXDQor44Go44G/44GfLOOBn+OBkeOBr+OCiw0KK+OBpOOBquOCj+OBjSzjgb7jgZXjga7jgbYNCivjga/jgZvjgYzjgo8s44Gf44Gg44GXDQor44G144GP44GW44KPLOOBoOOBhw0KK+OBlOOBiOOBkSzjgZ/jgZHjgosNCivjgarjgYss44G/44Ga44G7DQor44GI44Gw44GoLOOBvuOBleOBig0KK+OBk+OBsOOChOOBlyzjgY/jgavjgbLjgZMNCivjgbLjgonjgaTjgYss44Go44KC44KG44GNDQor44GV44Go44GGLOOBv+OBpOOBig0KK+OBhOOBruOBhuOBiCzjgZXjgaDjgYoNCivjga/jgZnjgazjgb4s44GY44Gr44GhDQor44G144KL44Gv44GfLOOBlOOBuOOBhA0KK+OBhuOBiOOBrizjgZXjgaDjgYoNCivjgZ/jgZHjgarjgYss44GL44GK44KLDQor44GP44Gr44Gf44GRLOOBhOOBoeOCjeOBhg0KK+OBsuOCieOBnyzjgbXjgZXjgbLjgZMNCivjga/jgZvjgYzjgo8s44GL44Ga44G/DQor44G144GP44Gv44KJLOOCiOOBl+OBsuOBkw0KK+OBteOBquOBkOOBoSzjgZ/jgaDjgZcNCivjgYLjgb7jga4s44G+44GV44Gy44KNDQor44GK44GuLOOBv+OBreOBig0KK+OBmeOCjyzjgZ/jgZHjgZcNCivjga7jgYzjgb8s44KG44GeDQor44GG44KB44GuLOOBguOBjeOCiQ0KK+OBhOOBkeOBrizjgb7jgZXjgbLjgo0NCivjgarjgYvjgZjjgb4s44GR44GE44GTDQor44GE44GX44GELOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBleOBhOOBqOOBhizjgY3jgojjgZcNCivjgZ/jgarjgYss44Gu44G244GKDQor44Gf44Gm44GE44GXLOOBguOBjeOCiSDjgZXjgajjgZcNCivjgZnjgZrjgY0s44G+44GV44GKDQor44GN44Gu44GX44GfLOOBguOBleOBkw0KK+OBiuOBleOCjyzjgYLjgaTjgZcNCivjgYTjgacs44G+44GV44Gy44KNDQor44GK44GM44KPLOOCiOOBl+OBig0KK+OBiOOBruOCguOBqCzjgobjgYbjgZMNCivjgYrjgZbjgo8s44GS44KTDQor44Gv44Gf44GR44KE44G+LOOBguOBpOOBlw0KK+OBhOOBhOOBoCzjgajjgYrjgosNCivjgZfjga7jgZbjgY0s44Gu44KK44GTDQor44GK44GL44GgLOOBv+OBmuOBruOCig0KK+OBn+OBi+OBvizjga7jgorjgZMNCivjgoTjgY4s44G/44GLDQor44GV44GL44GELOOChOOBmeOChuOBjQ0KK+OBl+OBv+OBmizjgobjgYbjgZMNCivjgbvjgorjgYvjgo8s44Gv44Gq44GTDQor44Gq44GM44GKLOOBjeOCh+OBkw0KK+OBsuOCieOBhOOBlyzjgajjgoLjgZMNCivjgZXjgYzjgo8s44GL44Ga44KG44GNDQor44Gv44KJ44GgLOOBqOOBl+OBi+OBmg0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgbLjgZMNCivjgZ/jgaEs44Gy44GL44KLDQor44Gy44GILOOCiOOBl+OBsuOCjQ0KK+OBqOOCgOOCiSzjgZXjgY3jgZMNCivjgZ/jgaAs44GX44G7DQor44KI44GX44KC44GoLOOCj+OBjeOBkw0KK+OCguOBoeOBmuOBjSzjgb/jgZrjgbsNCivjgZ/jgarjgYss44Go44KC44Gy44KNDQor44Gf44GQ44GhLOOBv+OBpOOBguOBjQ0KK+OBleOBqOOBhizjgZjjgoXjgavjgaENCivjgZXjgYvjgZfjgZ8s44KK44GI44GTDQor44GL44KP44GX44G+LOOBvuOBleOBlw0KK+OBu+OCiuOBkOOBoSzjgbLjgo3jgobjgY0NCivjgbXjgY/jgb4s44G+44GV44KIDQor44GL44KP44Gf44GrLOOBk+OBhuOBmA0KK+OBmOOBs+OBjSzjgojjgYbjgZMNCivjgZXjgYTjgajjgYYs44GT44G444GEDQor44GX44GK44GkLOOBvuOCig0KK+OBqOOBsOOBnyzjgZ/jgoLjgaQNCivjgoTjgb7jgoLjgags44G+44GV44G/DQor44GK44G144GhLOOCiuOCheOBhOOBoQ0KK+OBl+OBruOBr+OCiSzjgb7jgZXjgogNCivjgoTjgb7jgYvjgo8s44GN44G/44GKDQor44Gf44KA44KJLOOBvuOCiuOBoeOChQ0KK+OBr+OBn+OBkeOChOOBvizjgb/jgarjgZMNCivjgZ/jgarjgYss44Gy44KN44GTDQor44GL44Gq44GW44KPLOOBoeOBsuOCjQ0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgZgNCivjgbXjgZjjgoDjgoks44G+44KG44G/DQor44Gq44GM44GX44G+LOOBhOOBj+OBig0KK+OBjeOBruOBl+OBnyzjgobjgY3jgYgNCivjgZPjgpPjgaks44G+44KG44G/DQor44GC44KT44G5LOOBi+OBiuOCig0KK+OBleOBhOOBqOOBhizjgZnjgb/jgZ/jgYsNCivjgYLjgZXjgaAs44GC44GN44KJDQor44GN44Gu44GX44GfLOOBiuOBleOCgA0KK+OBi+OBqeOChCzjgb/jgaTjgosNCivjgYbjgYjjgaAs44GE44GV44GKDQor44GV44GE44Go44GGLOOBruOCiuOBi+OBmg0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgbLjgZMNCivjgYTjgZfjgZbjgY0s44Gy44KN44G/44GhDQor44GK44GW44KPLOOBruOBtuOBig0KK+OBr+OChOOBlyzjgYvjgZrjgZ/jgaANCivjgoTjgYzjgo8s44Go44GX44GKDQor44Gf44GL44Gv44GXLOOBn+OBi+OBkw0KK+OBqOOBv+OChOOBvizjgbLjgYvjgosNCivjgYLjgaDjgaEs44Gy44Gn44GC44GNDQor44GC44GL44GE44KPLOOBiOOCiuOBkw0KK+OBi+OBjOOChCzjgb/jgarjgZMNCivjgYLjgonjgYQs44KI44GX44KG44GNDQor44GK44GX44GN44KKLOOBqOOBjeOBkw0KK+OChOOBvuOCgOOCiSzjgb7jgb8NCivjgZ/jgYvjgoTjgb4s44G+44Gq44G/DQor44KI44GT44KE44G+LOOBhOOBmuOBvw0KK+OBsOOCkyzjgb/jgY0NCivjgYTjgZrjgb8s44G144G/44GIDQor44G/44Ga44GuLOOBguOBjeOBkw0KK+OBtuOCk+OChCzjgajjgYrjgosNCivjgabjgonjgYrjgYss44KC44GrDQor44G/44KE44GX44GfLOOBvuOBleOBsuOCjQ0KK+OBguOBleOBvizjgZfjgoLjgpMNCivjgZXjgZXjgY0s44Gm44KL44Gy44GVDQor44Gr44GX44GKLOOBiuOBleOCgA0KK+OBteOCi+OChCzjgb/jgaHjgYoNCivjgYTjgb7jgaAs44Gf44G/44GKDQor44GE44GX44Gv44KJLOOCiOOBl+OBguOBjQ0KK+OBr+OBl+OCguOBqCzjgobjgZ4NCivjgb7jgovjgoTjgb4s44GX44KH44GZ44GRDQor44GL44GYLOOChuOBjeOBruOBtg0KK+OBi+OBreOBkyzjgZXjgYrjgooNCivjgarjgYvjgaAs44Gf44GL44GXDQor44Gh44GW44KPLOOBiOOBhOOBmA0KK+OBleOCjyzjgajjgZfjgobjgY0NCivjgajjgYzjgoEs44GK44GV44KADQor44KI44GX44GgLOOBpOOBkOOBig0KK+OBiuOBrizjgojjgZfjga7jgooNCivjgoTjgZMs44Gf44Gg44GKDQor44GE44GX44GL44KPLOOBv+OBruOCiw0KK+OBk+OBqOOBoCzjgZfjgofjgZgNCivjgZXjgYzjgo8s44G/44Gu44KLDQor44Gu44GQ44GhLOOBkeOBhOOBkw0KK+OBp+OCk+OBvCzjgabjgaTjgYoNCivjga/jgovjgY0s44KI44KK44GoDQor44GE44GtLOOBpuOBpOOBig0KK+OBiuOBrizjgbLjgafjgobjgY0NCivjgYvjga3jgaAs44GE44GP44GIDQor44Gu44GQ44GhLOOBv+OBjeOBig0KK+OBiuOBsCzjgajjgoLjgobjgY0NCivjgYrjgZ8s44GL44Ga44Gf44GLDQor44GX44KC44G+44GNLOOBr+OBquOBkw0KK+OCj+OBn+OBsuOBjSzjga7jgorjgbLjgagNCivjgoTjgb7jgoLjgags44Gq44G7DQor44G144GY44KA44KJLOOBguOBleOBkw0KK+OBneOBhuOBv+OChCzjgb/jgo/jgZMNCivjgZfjgb4s44GS44KTDQor44GV44GV44GNLOOBsuOCjeOBkw0KK+OBi+OBjOOCjyzjgb7jgZXjgbLjgZMNCivjgZ/jgZHjgYbjgaEs44GC44GN44Gu44KKDQor44GV44GE44GNLOOBsuOCjeOBkw0KK+OBhOOBqOOBhizjgYvjgZrjgb4NCivjgY3jgoDjgoks44GL44Ga44G+44GVDQor44Gf44Gw44GfLOOBsuOCjeOBteOBvw0KK+OBj+OCgSzjgYLjgY3jgbLjgZMNCivjgZ/jgYvjgaAs44GX44KH44GG44GI44GEDQor44Gf44KA44KJLOOBj+OBq+OBig0KK+OBn+OBi+OBvuOBpCzjgZ/jgaTjgbLjgZMNCivjgZfjgo3jgZfjgZ8s44GC44GN44KJDQor44GL44Go44GGLOOBsuOCjeOBv+OBpA0KK+OBguOCj+OBhCzjgajjgY/jgYTjgaHjgo3jgYYNCivjgbvjgZXjgYss44KE44GZ44GKDQor44Gf44Gq44GLLOOChuOBhuOBkw0KK+OBv+OBsuOCiSzjgb7jgooNCivjgZXjgajjgYYs44G+44KK44GTDQor44GK44GW44KPLOOBkeOCk+OBmA0KK+OBmeOBmuOBjSzjgY/jgb8NCivjgb/jgoTjgZbjgY0s44Gf44GL44KG44GNDQor44KC44KK44Gf44GrLOOCjOOBhOOBkw0KK+OBhOOCj+OBkOOCjSzjgY/jgb/jgZMNCivjgYbjgYjjgb4s44G/44KI44GTDQor44G144GL44GfLOOBruOCiuOBkw0KK+OBsuOCjeOBmyzjgojjgZgNCivjgYrjgYvjgaAs44Gf44GL44Gy44KNDQor44GL44Go44GGLOOBqOOCiOOBguOBjQ0KK+OBvuOBjSzjgb7jgorjgZMNCivjga7jgaAs44G/44GIDQor44GP44G8LOOBvuOBjeOBkw0KK+OBq+OBl+OBjeOBiuOCiizjgZfjgoXjgZXjgY8NCivjgoTjga4s44Go44KC44KG44GNDQor44GL44KP44KA44GT44GGLOOBqOOBl+OBruOCig0KK+OChOOBmeOCgOOCiSzjga7jgorjgZMNCivjgajjgavjgZcs44KL44G/DQor44KE44G+44KC44GoLOOBl+OCheOBleOBjw0KK+OBl+OCguOBoCzjgZHjgYTjgZMNCivjgYrjgZ/jgass44KG44GN44GKDQor44GK44Gu44GV44GoLOOBkeOCk+OBmA0KK+OBi+OBquOBluOCjyzjgorjgoXjgZ4NCivjgYrjgYvjgoLjgags44KG44GL44KKDQor44GV44GE44Go44GGLOOBpOOBqOOCgA0KK+OBi+OBl+OCj+OBsOOCiSzjgZfjgofjgZMNCivjgZ/jgYvjga/jgZcs44Gh44GLDQor44GV44GE44Go44GGLOOBguOBjeOBkw0KK+OBvuOBpOOBoCzjgbLjgo3jgb8NCivjgZ/jgaHjgZbjgY0s44GC44KK44GLDQor44GT44KT44GpLOOBleOChuOCig0KK+OBl+OBv+OBmizjgajjgoLjgYvjgZoNCivjgarjgYzjgYrjgYss44GN44KH44GTDQor44Gq44GL44GM44KPLOOBpOOBjuOBig0KK+OBn+OBi+OBqCzjgZjjgoXjgpPjgZMNCivjgY3jgoDjgoks44Gq44GK44GNDQor44Gq44KL44GbLOOBv+OCiOOBkw0KK+OBiuOBkOOBvizjgajjgoLjgZMNCivjgZ/jgYvjga/jgZcs44Gy44GL44KLDQor44GN44GP44GhLOOBoOOBhOOBmeOBkQ0KK+OBleOBqOOBhizjgY/jgavjgYoNCivjgYjjgpPjgaks44Gv44KTDQor44KT44GQ44GE44GH44KTLOOBsuOCjeOBguOBjQ0KK+OBn+OCgOOCiSzjgb/jgo/jgZMNCivjgoTjgb7jgoLjgags44G/44Gq44GTDQor44GC44GV44GELOOBruOBtuOBkw0KK+OCguOCiizjgb7jgZXjga7jgbYNCivjgZ/jgYvjgZfjgo0sIOOBvuOBquOBtg0KK+OBiuOBiyzjgojjgZfjgYLjgY0NCivjgYvjgajjgYYs44KP44GL44GTDQor44GE44GQ44GhLOOBqOOCguOBkw0KK+OBn+OBquOBiyzjgaDjgYTjgZnjgZENCivjgojjgZfjgaAs44GL44GK44KKDQor44GC44GN44KC44GoLOOBguOBpOOBlw0KK+OBq+OBl+OBhCzjgbLjgo3jgobjgY0NCivjgo/jgZfjgYrjgYss44Gf44GL44GXDQor44GE44Gs44G+44KLLOOBjeOCiOOBvw0KK+OBu+OBlyzjgYvjgYgNCivjgojjga3jgoTjgb4s44G/44Gq44GIDQor44GP44KN44G5LOOBm+OBhOOBkw0KK+OBhOOBl+OBhCzjga/jgZjjgoENCivjgbLjgZDjgaEs44G+44KK44GTDQor44Gq44GL44GgLOOBsuOCjeOBjQ0KK+OBiuOBruOBp+OCiSzjgajjgoLjga7jgooNCivjgajjgaAs44GT44GG44GYDQor44G+44GI44GgLOOCiOOBl+OBsuOCjQ0KK+OBquOBjOOBhCzjgYrjgZXjgoANCivjgZPjgazjgZ8s44KB44GQ44G/DQor44GX44Gw44GV44GNLOOBleOBhOOBiw0KK+OBhuOBi+OBhCzjgajjgZfjgoQNCivjgZnjgZrjgY0s44GV44Gh44GTDQor44Gy44KJ44GNLOOBjeOCh+OBkw0KK+OBquOBi+OCgOOCiSzjgZPjgYbjgZgNCivjgoTjgb7jgaAs44G+44Gp44GLDQor44GL44Gp44GP44KJLOOBmOOCheOCk+OBmA0KK+OBn+OBi+OBleOBjSzjgZPjgYbjgZgNCivjgarjgYvjgZ8s44Gy44KN44GYDQor44Gf44Gr44GL44KPLOOBl+OBmuOBiw0KK+OBq+OBl+OCgOOCiSzjgb7jgZXjga7jgbYNCivjgb/jgarjgb8s44KG44GG44GE44GhDQor44GK44Gs44GNLOOBsuOBleOBiA0KK+OBleOBqOOBhizjgZjjgoXjgavjgaENCivjgZ/jgYvjga/jgZcs44Gf44GL44Gv44KLDQor44Gy44GgLOOBquOBiuOBkw0KK+OBleOBj+OBvizjgajjgZfjgobjgY0NCivjgavjgYjjgaAs44Gy44KN44GTDQor44KI44GT44GELOOChuOBjeOBkw0KK+OCiOOBreOBj+OCiSzjgbLjgZXjgojjgZcNCivjgbDjgpPjgbAs44GL44Gk44Go44GXDQor44KE44G+44GgLOOBguOBjeOBiw0KK+OBhOOBvuOCgOOCiSzjgaHjga/jgosNCivjgYTjgZHjgaAs44Gu44G244GTDQor44Gq44GL44KA44KJLOOChuOBhuOBkw0KK+OBmeOBqeOBhizjgb7jgZXjgb8NCivjgarjgYvjgZ3jga0s44G+44GV44GXDQor44GK44GV44KPLOOBk+OBhuOBmA0KK+OBleOBqOOBhizjgY3jgojjgb8NCivjgYjjgYTjganjgoEs44G744Ga44GIDQor44GE44GM44KJ44GXLOOBvuOBleOChA0KK+OBn+OChCzjgYLjgoTjgb8NCivjgYrjgbLjgoks44G/44Gu44KLDQor44GE44GX44GQ44GhLOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgZ/jgYvjgYoNCivjgZXjgYvjgoLjgags44GK44GV44KADQor44GZ44GO44KC44GoLOOBl+OBvg0KK+OBi+OBqOOBhizjgZ/jgYvjgZcNCivjgojjgZfjgYQs44KM44G/DQor44GE44KP44KELOOBn+OBkeOBig0KK+OBjeOBruOBl+OBnyzjgorjgYgNCivjgZnjgY7jgZXjgo8s44GC44GN44Gy44GnDQor44KP44GgLOOCi+OCiuOBkw0KK+OBv+OChOOBl+OBnyzjgaHjgYLjgY0NCivjgYbjgYjjga4s44G/44Gq44GTDQor44GK44Gf44GNLOOCiuOBiA0KK+OBhOOBl+OBsOOBlyzjgYvjgYrjgooNCivjgYTjgo/jgZfjgZ8s44Gh44GL44GTDQor44GE44GX44GL44KPLOOBl+OBoeOCjQ0KK+OBjeOBlyzjgobjgY0NCivjgb7jgovjgoTjgb4s44G/44GLDQor44G744KT44G+LOOBn+OBi+OBkw0KK+OBj+OBmeOCguOBqCzjgojjgZfjgZMNCivjgYTjgb7jga4s44GD44GVDQor44GQ44GC44Gr44GKLOOBg+OBlQ0KK+OBkuOCjOOBv+OBgizjgZXjgajjgZcNCivjgYrjgavjgZcs44GT44GG44GYDQor44KE44G+44GgLOOBv+OBquOBkw0KK+OBteOBmOOBiuOBiyzjgZ/jgaDjgbLjgo0NCivjga/jgarjgaAs44KI44GG44GTDQor44GX44Gw44GfLOOBjeOCh+OBkw0KK+OBv+OChOOBl+OBnyzjgYvjgZrjgogNCivjgYvjgZXjga/jgoks44G/44KI44GTDQor44GK44KE44GRLOOBiOOBv+OBkw0KK+OBhOOBvuOBhCzjga7jgbbjgZMNCivjgZPjgZvjgY0s44KG44G/44GTDQor44GK44GfLOOBjeOCh+OBkw0KK+OBvuOBoeOBhCzjgb7jgZXjgYoNCivjgY3jgY/jgaEs44Gy44Gn44Gy44GTDQor44Gy44GQ44GhLOOBn+OBpuOBig0KK+OBv+OBquOCiOOBlyzjgbLjgZXjgYoNCivjgZnjgZrjgY0s44Gf44GL44GKDQor44Gq44KT44GwLOOBhOOBleOBig0KK+OBiuOBq+OBlyzjgY3jgb/jgbLjgacNCivjga/jgoTjgZfjgaAs44Gf44GL44GKDQor44Gf44Gq44GLLOOBi+OCkw0KK+OBi+OBreOBkyzjgZvjgYTjgZ4NCivjgaTjgaHjgoQs44GX44KHDQor44GE44GE44GgLOOBqOOCieOBig0KK+OBteOCi+OChCzjgoTjgZnjgYvjgZoNCivjgarjgYvjgoDjgoks44GC44GV44GKDQor44Gv44KL44Gv44KJLOOChuOBjeOBig0KK+OBu+OCiuOBiCzjgb7jgZXjgYoNCivjgYrjgZ8s44Gv44KL44GKDQor44GZ44Ga44GNLOOBj+OBq+OBig0KK+OBiuOBqCzjgb7jgorjgZMNCivjgarjgYvjgYzjgo8s44Gu44G844KLDQor44GL44KP44GX44G+LOOBi+OBmuOBsuOCjQ0KK+OBpuOCieOCguOBqCzjgZvjgaTjgYoNCivjgY3jgoDjgoks44GL44Ga44GIDQor44KI44Gp44Gq44KPLOOBmOOCheOCk+OBmA0KK+OBk+OBoOOBhOOCiSzjgbLjgo3jgYvjgZoNCivjgYvjgY/jgonjgYQs44Gq44GK44GNDQor44GK44GQ44KKLOOBoOOBhOOBleOBjw0KK+OBr+OBnyzjgZ/jgYvjgajjgZcNCivjgb7jgaTjgoLjgoos44Gy44Gn44Gy44KNDQor44KI44GX44GK44GLLOOBi+OBmuOBruOCig0KK+OBl+OBkuOBnyzjgajjgoLjgobjgY0NCivjgYvjgo/jgZDjgaEs44GI44Gk44GKDQor44GL44Gt44GTLOOBi+OBmuOBig0KK+OBguOBleOBsizjgb/jgaTjgZANCivjgo/jgZ/jgarjgbks44Gf44GL44GXDQor44GC44KK44KE44G+LOOCiOOCiuOBl+OBkg0KK+OBpOOBmOOBnyzjgZ/jgZHjgZcNCivjgojjgZfjga/jgZcs44KE44GZ44Gk44GQDQor44G/44GX44G+LOOBvuOBleOBqOOBlw0KK+OBleOBqOOBhizjgb7jgobjgb8NCivjgYvjga3jgb7jgoss44KI44G444GEDQor44GL44Gt44GTLOOChuOBhuOBmOOCjQ0KK+OBiOOBmOOBvizjgYLjgY3jgokNCivjgb/jgaTjgY/jgaEs44KG44GL44KKDQor44KC44KKLOOBsuOBp+OBguOBjQ0KK+OBiuOBoSzjgojjgYbjgZMNCivjgb7jgYjjgYvjgo8s44Gy44KN44KI44GXDQor44Gf44Gq44GLLOOBkeOCk+OBmA0KK+OBiuOCiuOBjOOBlSzjgYvjgZrjgYoNCivjgZPjgZvjgY0s44Gb44GE44GYDQor44Gy44KJ44KE44G+LOOBv+OBoeOBguOBjQ0KK+OBk+OBvOOCiizjgajjgoLjgbLjgo0NCivjgarjgYvjgYbjgYgs44G+44GV44GKDQor44GZ44Go44GGLOOBn+OBoOOBguOBjQ0KK+OBlOOBqCzjgZPjgYbjgZgNCivjgaTjgYvjgoLjgags44Gk44GQ44GKDQor44GI44Gz44Gv44KJLOOBn+OBpOOBig0KK+OCguOCiuOBrizjgbLjgafjgYoNCivjgZnjgZrjgY0s44Gb44GE44GXDQor44KI44GX44GgLOOBi+OBpOOBmA0KK+OBhOOBvuOBhCzjgYjjgaTjgbLjgo0NCivjgbLjga4s44KE44GZ44GXDQor44KI44GX44GgLOOBsuOCjeOBguOBjQ0KK+OBiuOBq+OBmuOBiyzjgZjjgoXjgpMNCivjgZ/jgYvjgY4s44GN44G/44GKDQor44GK44KA44KJLOOBm+OBhOOBhOOBoQ0KK+OBhuOBoeOChOOBvizjgYvjgZrjgYoNCivjgY/jgo3jgYvjgo8s44G+44GV44Gu44KKDQor44KE44G+44GX44GfLOOBvuOBpOOBruOCig0KK+OBq+OBl+OBoCzjgYvjgYrjgosNCivjgo/jgZ/jgarjgbks44Gf44Gg44GXDQor44GL44GX44KP44GOLOOBiOOBpOOCiOOBlw0KK+OBi+OBreOBkyzjgZ/jgaTjgYoNCivjgY/jgb7jgaAs44G+44GV44GKDQor44GT44GY44G+LOOBjeOCiOOBsuOBkw0KK+OBl+OCieOBhCzjgbLjgo3jgb/jgaENCivjgbXjgovjgYvjgo8s44KI44GX44GC44GNDQor44KA44GX44GGLOOBsuOBp+OBruOCig0KK+OCiOOBl+OBrizjgb7jgZXjgYLjgY0NCivjgZnjgY7jgYbjgoks44G+44GT44GoDQor44G144GY44GV44KPLOOBvuOBleOBjQ0KK+OBleOBqOOBhizjgoDjga3jgZ/jgYsNCivjgYjjgZbjgY0s44G/44GqDQor44KA44KJ44GL44G/LOOBmeOBv+OBn+OBoA0KK+OBq+OCj+OChOOBvizjgb7jgZXjgbLjgZMNCivjgoTjgZnjga4s44GL44Gk44Gy44GoDQor44Gp44GgLOOBiOOBpOOBkw0KK+OBi+OBmOOBhCzjgojjgZfjga7jgbYNCivjgZ/jgarjgYss44Gf44GN44GKDQor44G+44Gk44Gq44KKLOOBsuOBleOBiA0KK+OBiuOBsOOChOOBlyzjgZnjgZXjgpMNCivjgaTjgYLjgZ7jgpMs44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOChuOBjeOBkw0KK+OBvuOBpOOCgOOCiSzjgb/jgY3jgYoNCivjgZPjgoLjgoos44Gq44GK44Ga44G/DQor44Gu44Ge44GILOOBpuOBpOOBsuOBkw0KK+OBiuOBrizjgorjgYgNCivjgYvjgpPjga4s44Gf44Gg44GC44GNDQor44GV44Go44GGLOOBqOOBl+OBig0KK+OBruOBquOBiyzjgZvjgYTjgYTjgaENCivjgYvjgo/jga/jgoks44G+44KKDQor44Gq44GL44KA44KJLOOBguOBjeOBsuOCjQ0KK+OChOOBvuOBl+OBnyzjgZ/jgYvjgobjgY0NCivjgZPjgYbjgYTjgaEs44Gf44GL44GKDQor44GE44Gf44KELOOBvuOBpOOCguOCig0KK+OChOOBvizjgb/jgYsNCivjgoTjgb7jgoLjgags44Go44KC44Gy44GTDQor44GP44KJ44GfLOOCguOBquOBvw0KK+OBi+OCj+OBmizjgojjgYbjgZMNCivjgb/jgYvjgb8s44GE44GV44GKDQor44Gf44GN44GM44KPLOOBk+OBhuOBjeOBoQ0KK+OBn+OBquOBiyzjgb7jgarjgbYNCivjgb/jgoTjgZ8s44Gf44GP44KEDQor44Gq44GE44Go44GGLOOChOOBmeOBvuOBlQ0KK+OBvuOCi+OBnyzjgb7jgY3jgZMNCivjgo/jgaAs44GL44Ga44GIDQor44Gy44GI44GgLOOBjeOCiOOBvw0KK+OBn+OBkeOBoCzjgZPjgZrjgYgNCivjgYvjgZjjgoLjgags44GR44GE44GTDQor44Gu44KA44KJLOOCj+OBi+OBkw0KK+OBreOChCzjgobjgb8NCivjgZnjgZrjgY0s44G+44KG44G/DQor44GN44KA44KJLOOBqOOBl+OBi+OBmg0KK+OCgOOCieOBnyzjgoLjgoLjgYgNCivjgYTjgZfjgYvjgo8s44Gy44Gn44GKDQor44G144GY44KP44KJLOOBteOBv+OBkw0KK+OCguOCiizjgZ3jgYbjgYTjgaHjgo3jgYYNCivjgYLjgYTjgoLjga4s44KE44GZ44GTDQor44Gf44GL44GgLOOBhOOBn+OCiw0KK+OBiuOBoCzjgZPjgYbjgYTjgaENCivjgY3jga7jgZfjgZ8s44KI44GX44GL44GaDQor44Gf44Gq44GLLOOBsuOCjeOBguOBjQ0KK+OBleOBj+OBvizjgZ/jgYvjgabjgosNCivjgZjjgofjgYbjgZPjgYYs44GN44G/44Gu44KKClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0phcGFuZXNlX2gudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0phcGFuZXNlX2gudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwNjE5ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfSmFwYW5lc2VfaC50eHQKQEAgLTAsMCArMSwyMjc0OSBAQAor77u/Iy8qKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKg0KKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKi8NCisNCivjgYLjgY3jgoLjgags44KE44GZ44GKDQor44GC44GN44GwLOOBl+OBkuOCiw0KK+OBguOCieOBhCzjgbLjgafjgYLjgY0NCivjgYLjgonjgYQs44GR44KT44GE44GhDQor44GC44GL44GM44KPLOOBqOOBl+OBig0KK+OBguOCieOBjSzjgZvjgYTjgZQNCivjgYLjgYTjgYvjgo8s44Gu44KK44GKDQor44GC44GN44GuLOOChuOBjeOBig0KK+OBguOBjeOChOOBvizjgaTjgojjgZcNCivjgYLjgZXjgYQs44Gy44Go44GXDQor44GC44G5LOOBvuOCguOCiw0KK+OBguOCiuOBjCzjgaTjgajjgoANCivjgYLjgY3jgZ8s44KI44GX44Gm44KLDQor44GC44GL44Gk44GLLOOBi+OBmuOBsuOBkw0KK+OBguOCieOBhCzjgb7jgZXjga/jgosNCivjgYLjgZXjga/jgoks44GL44Ga44GKDQor44GC44Gk44G/LOOBvuOBleOBguOBjQ0KK+OBguOCj+OChCzjgbLjgajjgZcNCivjgYLjgZXjgYvjgo8s44Go44GX44GC44GNDQor44GC44GK44GNLOOBiuOBleOCgA0KK+OBguOCj+OBmizjgYLjgY3jgokNCivjgYLjgY3jgY/jgZUs44KI44GG44GZ44GRDQor44GC44GK44KE44GOLOOBr+OBpOOBi+OBmg0KK+OBguOBmOOBleOCjyzjgZfjgoXjgYbjgYTjgaENCivjgYLjgYTjgZ0s44KE44GZ44GXDQor44GC44GK44GX44G+LOOBoeOCiOOBi+OBmg0KK+OBguOBqOOBhizjgb7jgZXjgbLjgZMNCivjgYLjgZXjga4s44KI44GX44KEDQor44GC44KK44GMLOOBneOBhuOBhOOBoQ0KK+OBguOBiuOBjSzjgorjgofjgYbjgbjjgYQNCivjgYLjgYTjgYvjgo8s44KG44GN44GKDQor44GC44GN44GfLOOBvuOBleOBsuOCjQ0KK+OBguOBleOBrizjga7jgorjgYLjgY0NCivjgYLjgZXjgags44Gy44Gn44GXDQor44GC44KJ44GNLOOCiOOBl+OBi+OBmg0KK+OBguOCk+OBqeOBhizjgoTjgZnjgZcNCivjgYLjgZXjgYvjgo8s44Gy44KN44GXDQor44GE44GE44GgLOOBvuOBk+OBqA0KK+OBhOOCj+OBleOCjyzjgb7jgZXjgY0NCivjgYTjgZfjgYvjgo8s44G+44GV44GKDQor44GE44Gu44GG44GILOOBsuOCjeOBsuOBqA0KK+OBhOOBl+OBr+OCiSzjgojjgZfjga7jgooNCivjgYbjgYvjgZgs44GV44Gh44GTDQor44GG44KB44Gf44GrLOOBi+OBpOOBsuOBkw0KK+OBiuOBkeOBn+OBqyzjgZHjgpPjgZgNCivjgYrjgYrjgZnjgY4s44GC44GN44Gy44KNDQor44GK44GK44GL44KPLOOBv+OBjeOBsuOBkw0KK+OBi+OBqOOBhizjgb7jgZXjgajjgZcNCivjgYvjgoIs44G+44GV44GC44GNDQor44GP44G+44GM44GELOOBvuOBleOBlw0KK+OBk+OCk+OBqSzjgYLjgY3jgokNCivjgZnjgY7jgoLjgags44GK44GV44KADQor44Gv44G+44GV44GNLOOCiOOBl+OBruOCig0KK+OBoeOBoCzjgZfjgoXjgpPjgZgNCivjgarjgYvjgoDjgoks44GR44GE44Ge44GGDQor44Gq44GM44GfLOOBoeOBiOOBkw0KK+OBleOCj+OCgOOCiSzjgYvjgaHjgZMNCivjgarjgovjgYos44KI44GX44Gu44G2DQor44Gq44KK44GfLOOChuOBv+OBkw0KK+OBr+OBm+OBjOOCjyzjgbLjgo3jgZMNCivjgbXjgZjjgZ8s44GR44GE44GTDQor44G144GY44KP44KJLOOBn+OBi+OBkw0KK+OBtuOCiOOBhizjgabjgaTjgYoNCivjgbvjgoos44GT44GG44GYDQor44G/44Gq44G/44KA44KJLOOBoeOBguOBjQ0KK+OBv+OChOOBmOOBvizjgaHjgojjgooNCivjgoTjgb7jgaAs44G+44KKDQor44KE44G+44GQ44GhLOOBn+OBi+OBlw0KK+OChOOBquOBjuOBr+OCiSzjgb/jganjgooNCivjgojjgZfjga4s44GX44KT44GE44GhDQor44Gr44GE44GgLOOBj+OBq+OBsuOBkw0KK+OBiuOBiuOBhOOChOOBvizjgobjgYbjgZMNCivjgYvjgarjgYzjgo8s44GE44Gh44KN44GGDQor44GN44KA44KJLOOCiuOBiOOBkw0KK+OBpOOBi+OBluOBjSzjgb/jgbsNCivjgYvjgo/jgaAs44Gq44GK44GTDQor44GC44GV44GL44KPLOOBv+OBleOBkw0KK+OBl+OCguOBpCzjgb7jgZXjgYLjgY0NCivjgYrjgYss44Gf44GL44Gy44GoDQor44GK44GM44KPLOOBk+OBmeOBkQ0KK+OBn+OBhOOCiSzjgZfjgofjgYbjgYTjgaENCivjgYTjgZfjga4s44GN44KI44Gq44GMDQor44GN44G/44GX44G+LOOBguOBjeOCiQ0KK+OBleOBqOOBhizjgabjgaTjgoQNCivjgoTjgb7jgaAs44GK44GV44KADQor44GK44GK44GfLOOBquOBiuOBv+OBoQ0KK+OBvuOBiOOBoCzjgbLjgafjgajjgZcNCivjgYvjgZbjgonjgZcs44G/44Gk44KLDQor44GU44Go44GGLOOBi+OBpOOBruOCig0KK+OBu+OBlyzjgb7jgoLjgosNCivjgY/jgo3jgaAs44GX44KT44KEDQor44Gk44GL44KP44GNLOOBqOOBl+OChA0KK+OBhOOBquOBjOOBjSzjgb7jgZXjgbLjgo0NCivjgYTjgo/jgoLjgags44Gf44KC44GkDQor44Gk44KL44GfLOOBn+OBi+OBlw0KK+OBhOOBl+OBmOOBvizjgorjgofjgYbjgbjjgYQNCivjgoTjgb7jgarjgYss44Gy44KN44Go44GXDQor44GG44GI44GNLOOBguOBjeOBkw0KK+OBq+OBl+OCgOOCiSzjgYLjgaTjgZMNCivjgo/jgYTjgaAs44Gf44Gg44GXDQor44KI44GX44GgLOOCi+OBvw0KK+OBl+OBtuOChCzjgobjgZ/jgYsNCivjgYLjgajjgYYs44G+44GV44Gu44KKDQor44G/44KE44GfLOOBi+OBiuOCiw0KK+OBiuOBiuOBn+OBjSzjgaTjgY7jgYoNCivjgY3jgojjgYrjgYss44G+44GT44GoDQor44GK44GK44Gf44GrLOOBn+OBi+OBlw0KK+OBq+OBl+OCj+OBjSzjgarjgYrjgb8NCivjgavjgZfjgoTjgb4s44Gf44GL44GXDQor44G/44GX44G+LOOBn+OBi+OChuOBjQ0KK+OBi+OBqOOBhizjgbLjgo3jgZcNCivjgYTjgb7jgYos44G/44Ga44G7DQor44GK44GW44GNLOOBk+OBhuOBmA0KK+OBm+OBjeOChCzjgb7jgZXjgobjgY0NCivjgaTjgY/jgaAs44Gu44G244KG44GNDQor44G/44KI44GXLOOBruOBtuOBvuOBlQ0KK+OCiOOBl+OBvyzjgZ/jgYvjgobjgY0NCivjgZXjgZXjgYrjgYss44Gf44GL44GXDQor44GK44GX44G+LOOBoeOBr+OCiw0KK+OBj+OBvOOBnyzjgaHjgZrjgZMNCivjgZfjgbDjgoTjgb4s44GX44KF44GG44Ge44GGDQor44GK44GK44GP44G8LOOBqOOBquOBvw0KK+OBn+OBoeOBrizjgZjjgoXjgpMNCivjgo/jgaAs44G/44Gh44KIDQor44G+44Gk44GX44GfLOOBvuOBleOCguOCig0KK+OBk+OCgOOCiSzjgoTjgZnjgbLjgZMNCivjgb7jgY3jgZfjgZ8s44GR44GE44GTDQor44GC44GL44GKLOOChOOBmeOBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgbLjgajjgZcNCivjgYrjgYrjga4s44GL44Ga44GKDQor44Gb44GN44KC44GoLOOCiOOBl+OBig0KK+OBvuOBiOOBoCzjgaHjgYvjgokNCivjgb/jgaTjgbvjgoos44Gq44GK44GNDQor44G/44Gq44G/44Ge44GuLOOBvuOBleOBjQ0KK+OBm+OBjOOCjyzjgYvjgYrjgooNCivjgZnjgZrjgY0s44Go44KI44GYDQor44GN44Gf44GM44KPLOOCiOOBl+OBn+OBiw0KK+OCiOOBl+OChOOBmSzjgZjjgo3jgYYNCivjgoTjgb7jgoLjgags44G+44KKDQor44GL44Go44GGLOOBsuOCjeOBlw0KK+OBi+OCj+OBi+OBvyzjgojjgYYNCivjgb7jgY3jga4s44Gq44GK44GNDQor44GZ44Ga44GNLOOBvuOBleOBig0KK+OBteOCi+OBleOCjyzjgZXjgajjgZcNCivjga/jgoTjgZcs44GYDQor44GE44G+44Gr44GXLOOBqOOBl+OBsuOBkw0KK+OBv+OChOOCguOBqCzjgobjgYsNCivjgb7jgY0s44GP44Gr44GC44GNDQor44GT44GE44GnLOOBleOBuw0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgZMNCivjgYrjgYrjga/jgZcs44Gy44Go44GXDQor44GC44GL44GKLOOBguOBjeOBig0KK+OBguOBleOBhCzjgYvjgZrjgZMNCivjgYTjgb7jgYQs44Gf44GL44GXDQor44GN44KJLOOBvuOBleOBsuOBkw0KK+OBq+OBl+OCgOOCiSzjgabjgovjgY0NCivjgojjgZfjgYvjgo8s44Go44GX44KG44GNDQor44G/44Gq44G/LOOBkeOCk+OBmA0KK+OBpOOCi+OBnyzjga7jgorjgYoNCivjgarjgYvjgoDjgoks44GY44KF44KT44GE44GhDQor44Gf44Gq44GLLOOBkeOCk+OBmA0KK+OBvuOBpOOBhuOCiSzjgZ/jgZHjgZcNCivjgZnjgY7jgZ8s44GYDQor44GL44KP44GELOOBqOOBl+OBig0KK+OBk+OBj+OBvCzjgZXjgaTjgY0NCivjgaTjgaAs44G+44GT44GoDQor44G/44KE44Gf44GRLOOBqOOBl+OBn+OBiw0KK+OBj+OCjeOBleOCjyzjgojjgZfjgYvjgZoNCivjgZnjgb/jgbLjgoks44G+44GV44Gy44GTDQor44Gf44GL44GNLOOBvuOBleOBig0KK+OBhOOBl+OBqCzjgZPjgYbjgY0NCivjgoTjgb7jgaAs44KC44Go44GL44GaDQor44Gr44GE44GkLOOBruOBtuOBguOBjQ0KK+OBhOOCj+OCgOOCiSzjgYvjgpPjgZgNCivjgYvjgo/jgarjgbks44KI44GX44Gy44KNDQor44Gq44GM44GELOOBsuOCjeOChuOBjQ0KK+OChOOBvuOBrSzjgaHjgYLjgY0NCivjgYTjgb7jgYQs44Gf44GL44KG44GNDQor44Gq44GL44GKLOOBhOOBleOBig0KK+OBiuOBl+OBjeOCiizjgbXjgb/jga/jgosNCivjgYTjgZfjgYvjgo8s44GY44KF44KTDQor44GK44GL44GY44G+LOOBmOOCheOCkw0KK+OBiuOBiuOBq+OBlyzjgb7jgZXjga/jgosNCivjgZnjgZrjgY0s44Gm44GkDQor44KE44G+44Gq44GLLOOBleOBpOOBvw0KK+OBn+OBq+OBkOOBoSzjgYvjgZrjgbLjgo0NCivjgYvjgo/jgbks44Go44GN44GKDQor44GT44KT44GuLOOBv+OBjQ0KK+OBleOBqOOBhizjgoTjgZnjgbLjgo0NCivjgZ/jgYvjgoTjgb4s44GX44KT44GE44GhDQor44KC44KK44G/44GhLOOBhOOBn+OCiw0KK+OBu+OCiuOBi+OCjyzjgYvjgaTjgb8NCivjgbXjgY/jgYQs44Gf44G+44GTDQor44GN44Gf44KA44KJLOOBguOBjeOCiQ0KK+OBquOBi+OBr+OCiSzjgbLjgo3jgb8NCivjgYTjgaHjgYQs44Gy44Gn44Gu44KKDQor44GE44KP44GVLOOBi+OCiOOBkw0KK+OBmeOBmuOBjSzjgZfjgoXjgpPjgZgNCivjgojjga3jgZ/jgass44GL44Gk44G144G/DQor44Gf44GuLOOBn+OBkeOBlw0KK+OBl+OBsOOBnyzjgbLjgafjgogNCivjgYTjga7jgYbjgYgs44G+44GV44Gu44KKDQor44GE44GX44GL44KPLOOBqOOBl+OBig0KK+OBjeOBlyzjgb7jgZXjgb8NCivjgYLjgo/jgYgs44GC44Gk44GXDQor44Gf44GR44GKLOOCiOOBl+OBguOBjQ0KK+OBjeOBruOBl+OBnyzjgYvjgZrjgbLjgZMNCivjgaTjgYvjgaAs44G144G/44GC44GNDQor44GC44KK44Gp44KBLOOBqOOBl+OChuOBjQ0KK+OBjeOBo+OBi+OCjyzjgajjgZfjgYLjgY0NCivjgYrjgYzjgZXjgo/jgoks44Gy44GV44GL44GaDQor44Gq44GM44GbLOOBn+OBi+OBsuOCjQ0KK+OBr+OCi+OChOOBvizjgYLjgaTjgbLjgZMNCivjgYrjgZos44KE44GZ44GKDQor44GT44GV44GLLOOBqOOBl+OBi+OBmg0KK+OBl+OCieOBleOBjSzjgajjgYrjgosNCivjgZ/jgarjgbks44Gk44Go44KADQor44GE44GR44GM44G/LOOBpOOCiOOBlw0KK+OBk+OBsOOChOOBlyzjgZjjgoXjgpPjgYTjgaENCivjgb7jgaTjgbDjgoks44Gq44GK44GoDQor44Gq44GL44GM44KPLOOCguOCiuOBsuOCjQ0KK+OBiuOBjOOCjyzjgZvjgYTjgZgNCivjgojjgZfjgaAs44G+44GV44Gu44G2DQor44GE44GRLOOBleOBoOOBruOBtg0KK+OBn+OBq+OBkOOBoSzjgb7jgZXjgb/jgaENCivjgb7jgYjjgaAs44Gy44KN44GXDQor44Gy44KJ44GuLOOBn+OBi+OChuOBjQ0KK+OBl+OBv+OBmizjgY3jgb/jgZMNCivjgoTjgb7jgaAs44GC44GN44Go44GXDQor44Gf44Gq44GLLOOBsuOCjeOBguOBjQ0KK+OBk+OBvuOBpOOBluOBjSzjgb7jgoLjgosNCivjgYvjgajjgYYs44G+44GV44GL44GaDQor44GK44KPLOOBruOCiuOBkw0KK+OBhOOCj+OCgOOCiSzjgbLjgo3jgZ/jgaANCivjgYTjgorjgYgs44GL44Ga44KG44GNDQor44GC44GL44KE44G+LOOBvuOBleOChuOBjQ0KK+OBguOBjeOCguOBqCzjgbLjgo3jgYLjgY0NCivjgYvjgb/jgoDjgoks44GC44GN44Gy44GTDQor44GZ44G/44GfLOOBi+OBiuOCiw0KK+OBr+OBvuOBleOBjSzjgYLjgaTjgZcNCivjgoTjgZnjgaAs44G+44KC44KLDQor44Gf44GR44KA44KJLOOBv+OBjeOChA0KK+OCgOOCieOBi+OBvyzjgajjgb/jgaTjgZANCivjgarjgYvjgZjjgb4s44Gy44GV44Go44KCDQor44KC44KK44KC44GoLOOBk+OBhuOBmA0KK+OBm+OBjeOBkOOBoSzjgZ/jgYvjgobjgY0NCivjgarjgYvjgZjjgb4s44G+44GV44Gy44GTDQor44GN44GM44KPLOOBsuOCjeOBsuOBlQ0KK+OBn+OBi+OBsuOCiSzjgZ/jgYvjgZcNCivjgoLjgaHjgaAs44GC44Gk44GXDQor44GL44KB44KE44G+LOOBn+OBi+OBlw0KK+OBiuOChOOBvuOBoCzjgb7jgZXjgbLjgZUNCivjgZ/jgarjgYss44Gm44KL44Gy44GVDQor44G744KT44G+LOOBl+OCk+OBmA0KK+OBjeOBruOBl+OBnyzjgoTjgZnjgbLjgZMNCivjgZfjga7jgaTjgYss44Gu44G244GX44GSDQor44GC44GE44Gv44KJLOOChOOBmeOBteOBvw0KK+OBquOBjOOBvuOBpCzjgYjjgYTjgZgNCivjgajjgojjgoDjgoks44G+44GV44GC44GNDQor44Gy44KJ44GuLOOBn+OBi+OBlw0KK+OBjeOCgOOCiSzjgZjjgoXjgpMNCivjgYTjgZHjgaAs44Gb44GE44GYDQor44GE44GX44Gv44KJLOOChuOBhuOBkw0KK+OBruOBkOOBoSzjgb7jgZXjgosNCivjgZPjgZHjgaQs44G/44Gk44G+44GVDQor44GK44GP44KE44G+LOOBguOBpOOBsuOBkw0KK+OBr+OBvuOBkOOBoSzjgZfjgpPjgZgNCivjgaTjgZjjgZXjgYss44Gy44Gn44GC44GNDQor44GE44Gh44GL44KPLOOBleOBqOOCiw0KK+OCiOOBl+OBoCzjgZvjgYTjgZQNCivjgoTjgb7jgaAs44KI44GG44GE44GhDQor44GX44G/44GaLOOChOOBmeOBlw0KK+OBleOBi+OBjOOBvyzjga7jgorjgYvjgZoNCivjgZPjgZnjgY4s44Gy44GV44Gy44GTDQor44Gr44GX44GgLOOBm+OBhOOBmA0KK+OBhOOBhOOBoCzjgYvjgaTjgokNCivjgYbjgaHjgaAs44KE44GZ44G/DQor44KC44Go44KE44G+LOOBoeOBr+OChA0KK+OBv+OChOOCguOBqCzjgYTjgY/jgogNCivjgZPjgbDjgoTjgZcs44KE44GZ44GXDQor44GL44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBl+OCieOBhCzjgZXjgajjgZcNCivjga/jgY7jgo/jgoks44GT44GG44GYDQor44KE44G+44GG44GhLOOChuOBjeOBsuOBpw0KK+OBv+OBpOOBr+OBlyzjgYvjgYrjgooNCivjgoLjgpPjgZgs44KI44GG44GE44GhDQor44Gf44GN44KC44GoLOOBruOCiuOBkw0KK+OBiuOBj+OBoCzjgZfjgoXjgYbjgZgNCivjgaTjgYvjgoLjgags44GX44KF44GG44GYDQor44KA44GT44Gv44KJLOOChOOBmeOBhOOBjw0KK+OBleOCi+OChCzjgb/jgaHjgYoNCivjgYrjgYvjgZjjgb4s44Go44GX44Gy44GTDQor44G744GX44GuLOOBsuOBleOBqA0KK+OBu+OBlyzjgbLjgo3jgbXjgb8NCivjgbXjgZfjgb8s44GT44GG44GE44GhDQor44Gf44GL44Gv44GXLOOBn+OBpOOChA0KK+OBq+OBl+OChOOBvizjgZfjgpPjgZgNCivjgaTjgovjgb7jgaEs44GX44KH44GG44GE44GhDQor44Go44G/44GfLOOBquOCi+OBqA0KK+OBhuOBoeOBoCzjgajjgYrjgosNCivjgYrjgYrjgZ/jgYss44KG44GG44GTDQor44GV44GL44GELOOBn+OBi+OBsuOBlQ0KK+OBneOBjOOBuSzjgYvjgaTjgb8NCivjgo/jgaAs44GR44KT44GYDQor44GT44GV44GLLOOBvuOBleOBvw0KK+OBguOBnSzjgYLjgZHjgb8NCivjgYLjgonjgYQs44Go44GX44Gv44KLDQor44GZ44GO44KA44KJLOOBl+OBkuOBig0KK+OBguOBjeOCiOOBlyzjgYvjgZrjgYoNCivjgYLjgZXjgYvjgo8s44Gk44Go44KADQor44KP44GgLOOBleOBi+OBiA0KK+OBhOOBkeOBoCzjgZPjgYbjgYTjgaENCivjgYrjgYvjgoLjgags44KK44KH44GG44GYDQor44GC44GK44GNLOOBvuOBleOCiw0KK+OBhuOBiOOBleOCjyzjgaTjgojjgZcNCivjgYbjgoTjgb4s44Gy44Gn44GC44GNDQor44Gq44GL44Gv44G+LOOBmeOBmeOCgA0KK+OBi+OCj+OCguOBqCzjgb7jgZXjgobjgY0NCivjgZnjgYjjgb7jgaQs44GY44KF44KT44GYDQor44Gq44GM44GELOOBleOBqOOBlw0KK+OBquOBi+OBr+OCiSzjgobjgYbjgZ7jgYYNCivjgarjgo/jgZ8s44Gq44KK44GC44GNDQor44GL44Gk44GW44KPLOOBsuOCjeOBlw0KK+OChOOBvuOBhuOBoSzjgb/jgobjgY0NCivjgYLjgYvjgY7jgZcs44Gk44KI44GXDQor44GP44GV44Ga44G/LOOBqOOBl+OBsuOBkw0KK+OBu+OBi+OCiizjgbLjgo3jgZcNCivjgYvjgajjgYYs44GK44GV44KADQor44GN44KK44GGLOOBsuOCjeOBjQ0KK+OBiuOBjOOCjyzjgb7jgZXjgagNCivjgZ/jgarjgYss44G+44GV44KI44GXDQor44GC44GE44KA44KJLOOBpOOBqOOCgA0KK+OBhOOBjOOCieOBlyzjgb7jgZXjgagNCivjgYvjgo/jgo/jgY0s44Gf44GL44G/44GhDQor44G+44GI44GV44GLLOOBqOOCguOBv+OBpA0KK+OBvuOBpOOBl+OBvizjgYLjgaTjgZcNCivjgb7jgaTjgoLjgags44Gy44Gn44GoDQor44GL44Gf44GELOOBvuOBleOBsuOCjQ0KK+OBk+OBmOOBvizjgb7jgZXjgYLjgY0NCivjgaTjgZjjgoLjgags44Go44GK44KLDQor44Gq44KP44GfLOOBleOBqOOBlw0KK+OBteOBmOOBn+OBqyzjgYvjgZrjgbLjgZMNCivjgY3jgZss44Gm44Gk44KN44GGDQor44GV44GL44GQ44GhLOOBmOOCheOCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgajjgZfjgobjgY0NCivjga/jgb7jgZXjgY0s44G+44GV44Gy44KNDQor44KI44GX44GgLOOBsuOBqOOBlw0KK+OBu+OBo+OBnyzjgZfjgZLjgbLjgagNCivjgb7jgZnjgZMs44Gy44GV44GKDQor44Gf44GR44Gq44GLLOOBk+OBmeOBkQ0KK+OBhOOBl+OBhCzjga/jgovjgY0NCivjgZ/jgZXjgYss44Gy44KN44GXDQor44G+44Gk44GgLOOBvuOBleOBsuOCjQ0KK+OBr+OBnyzjgZ/jgYvjgZcNCivjgYLjgY3jgoTjgb4s44KG44Gf44GLDQor44Gf44GL44Gv44GXLOOChOOBmeOBsuOBqA0KK+OChOOBvuOBi+OCjyzjgZfjgofjgYbjgZgNCivjgojjgZPjgaEs44G+44GV44Gy44KNDQor44KI44Gt44Gf44GrLOOBjeOBhOOBoeOCjeOBhg0KK+OBteOBmOOBrizjgobjgYbjgZnjgZENCivjga/jgZvjgYzjgo8s44GL44Gk44Go44GXDQor44G144GY44GfLOOBvuOBleOChuOBjQ0KK+OBguOCk+OCieOBjyzjgb7jgZXjgZMNCivjga/jgZfjgoLjgags44Gu44G244KG44GNDQor44GE44Gq44GgLOOCjOOBhOOBkw0KK+OChuOBkizjgb7jgZXjgojjgZcNCivjgYTjgb7jgaAs44GE44Ga44G/DQor44GV44GL44KC44GoLOOBi+OBmuOBsuOBlQ0KK+OBqOOCiOOBquOBjCzjgoTjgZnjgbLjgo0NCivjga/jgZfjgoLjgags44Gm44Gk44GKDQor44Gv44Gq44GELOOCiOOBl+OBruOCig0KK+OBl+OBv+OBmizjgZ/jgaTjgYoNCivjgarjgYvjgoDjgoks44KI44GX44Gv44KLDQor44GL44GY44KA44KJLOOCiOOBl+OBsuOBkw0KK+OBhOOBl+OBjOOBjSzjgZHjgpPjgZ7jgYYNCivjga/jgaPjgajjgoos44G+44GV44GKDQor44GC44G+44GuLOOCiuOCh+OBhg0KK+OBv+OBi+OBvyzjgYvjgYrjgosNCivjgbXjgovjgabjgoks44G+44KG44G/DQor44G+44G/44KELOOBsuOBp+OBjQ0KK+OBpOOCi+OBrizjgoDjgaTjgZMNCivjgYLjgZXjgYQs44KE44GZ44GNDQor44Gu44KA44KJLOOBl+OBkuOBig0KK+OCiOOBk+OChOOBvizjgZfjgpPjgZgNCivjgYTjgZHjgaAs44KG44Gf44GLDQor44GC44KT44Gp44GGLOOBguOBjeOBig0KK+OBiuOBi+OChOOBmSzjgoTjgZnjgZMNCivjgZTjgajjgYYs44Gy44Gn44GC44GNDQor44GL44KP44GX44G+LOOBn+OBi+OBkw0KK+OBr+OBjuOCj+OCiSzjgYjjgooNCivjgYLjgZ/jgonjgZcs44KG44G/44GTDQor44Gf44GL44KE44G+LOOBqOOBl+OBsuOBqA0KK+OBq+OBl+OChOOBvizjgajjgZfjgobjgY0NCivjgYjjgaHjgZQs44GX44KT44GE44GhDQor44KE44G+44GW44GNLOOCiOOBl+OBsuOCjQ0KK+OCgOOCjeOChCzjgabjgaTjgYoNCivjgY3jgoDjgoks44KG44GN44GKDQor44Gq44GL44Gv44KJLOOBteOBv+OBig0KK+OBhuOBiOOBrizjgZ/jgYvjgZcNCivjgojjgZfjgaAs44GR44KT44GfDQor44Gk44GL44KC44GoLOOBn+OBoOOBlw0KK+OBiuOBluOBjSzjgajjgYrjgosNCivjgYLjgZfjgYvjgo8s44KE44GZ44GX44GSDQor44Gt44GO44GXLOOBqOOCguOBruOCig0KK+OBjeOCheOBhuOBrizjgZfjgoXjgYbjgYTjgaENCivjgZXjgajjgYYs44KI44GX44Gy44GnDQor44GE44Gu44GG44GILOOBi+OBmuOBsuOBkw0KK+OBjeOBj+OBmuOBvyzjgb7jgZXjgosNCivjgb7jgaTjgoLjgags44Gg44GE44GV44GPDQor44Gv44KE44GXLOOBn+OBi+OBig0KK+OBteOBj+OBiuOBmCzjgYvjgpPjgZgNCivjgarjgovjgZss44GR44KT44Gf44KN44GGDQor44G+44Gk44KC44GoLOOBvuOBleOBjQ0KK+OCguOCiizjgb7jgZXjgZcNCivjgb/jgY0s44Gu44G244GKDQor44Gq44GL44Gf44GrLOOCiOOBl+OBguOBjQ0KK+OBv+OChOOBjOOCjyzjgbXjgb/jga7jgooNCivjgYLjgorjgojjgZcs44GE44GP44GKDQor44GX44KJ44GELOOCiOOBl+OChuOBjQ0KK+OBv+OBquOBvyzjgb7jgZXjgojjgZcNCivjgajjgorjgZTjgYgs44G144GY44GKDQor44GT44GZ44GMLOOBn+OBoOOBlw0KK+OBpOOBmOOBrizjgYvjgZrjgbLjgo0NCivjgYrjgZDjgoks44KE44GZ44Gy44KNDQor44GK44KK44GfLOOBoeOBi+OBlw0KK+OBguOBv+OCguOBqCzjgZjjgoXjgpPjgYTjgaENCivjgYrjgZXjgYss44Go44GK44KLDQor44Gv44KE44GXLOOCiOOBl+OBsuOCjQ0KK+OBv+OBquOBvyzjgb/jga7jgosNCivjgojjgZfjgaAs44Go44GX44Gy44GTDQor44Gr44GX44Gv44KJLOOCiOOBl+OBig0KK+OBiuOBj+OBjOOCjyzjgb7jgZXjgajjgoINCivjgaTjgZgs44Gm44KL44KG44GNDQor44Gq44GL44GELOOBn+OBi+OBlw0KK+OBq+OBl+OCgOOCiSzjgaTjgZDjgYoNCivjgavjgZ/jgarjgYQs44GR44KT44GUDQor44GP44Gp44GGLOOBsuOCjeOBlw0KK+OBleOBhCzjgZ/jgYvjgYoNCivjgZfjgofjgYYs44G+44Gq44G2DQor44GE44Gu44GG44GILOOBi+OBiuOCiw0KK+OBn+OBq+OBkOOBoSzjgbLjgo3jgZ/jga0NCivjgarjgYvjgavjgZcs44GX44KT44GYDQor44GK44GK44KC44KKLOOBsuOCjeOChuOBjQ0KK+OBj+OBvuOBjOOBhCzjgZ/jgYvjgobjgY0NCivjgYTjgZfjgYLjgYQs44Go44KI44GL44GaDQor44Gv44GO44Gv44KJLOOBi+OBmuOBruOCig0KK+OBn+OBjOOBnyzjgZHjgpPjgZgNCivjgZnjgZrjgY0s44G/44Gh44GKDQor44GP44G8LOOBnOOCk+OBleOBjw0KK+OBi+OBquOBhuOBoSzjgZfjgpPjgoQNCivjgavjgZfjgYos44Gy44Gn44GNDQor44GE44Gq44GgLOOBsuOBp+OBruOBtg0KK+OBn+OBkeOBhOOBoSzjgZfjgpPjgZgNCivjgYLjgpPjganjgYYs44G+44GT44GoDQor44G+44Gk44Gq44G/LOOBl+OCh+OBhuOBhOOBoQ0KK+OBv+OBquOBj+OBoSzjgZfjgoXjgYbjgZXjgY8NCivjgYvjgarjgYbjgaEs44Gq44GK44GNDQor44GK44GK44GE44KE44G+LOOBruOBvOOCiw0KK+OBvuOBmeOBoCzjgZfjgofjgYbjgZgNCivjgoTjgY7jga/jgoks44Go44GX44GKDQor44G/44Ga44GuLOOBkeOCk+OBmA0KK+OBruOBtuOBj+OBvyzjgajjgYrjgosNCivjgarjgaAs44Gf44GL44GC44GNDQor44Gf44GR44Gf44GrLOOBteOBqOOBlw0KK+OBhOOBvuOBhOOBmuOBvyzjgYTjgaHjgo3jgYYNCivjgYTjgarjgaAs44GE44GV44GKDQor44GE44G+44GrLOOBn+OBi+OBteOBvw0KK+OBiuOBjSzjgb7jgZXjgbLjgo0NCivjgbXjgY/jgZfjgb4s44KI44GG44GZ44GRDQor44GE44GE44GKLOOBsuOCjeOBqOOCgg0KK+OBhOOBl+OBoCzjgYvjgaTjgoQNCivjgbLjgonjgZ8s44GT44GG44GYDQor44GE44Gf44GM44GNLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOBteOBjyzjgZXjgajjgZcNCivjgZXjgajjgYYs44Gu44KK44GKDQor44Gq44GL44GM44KPLOOCiuOCh+OBhg0KK+OBiuOBleOBiyzjgZfjgoXjgYbjgYTjgaENCivjgYrjgYTjgYvjgo8s44Gu44G244GC44GNDQor44GL44GX44GKLOOCiOOBl+OBsuOCjQ0KK+OBu+OBl+OBluOBjSzjgZfjgZLjgY0NCivjgZvjgY3jgZjjgb4s44GT44GG44GYDQor44GK44GL44G+44GILOOBruOCiuOBsuOCjQ0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgZPjgYTjgacs44Gf44GL44Gq44GKDQor44Gf44GL44Gv44GXLOOBm+OBhOOBmA0KK+OBiuOBjOOCjyzjgZPjgYbjgYTjgaENCivjgabjgonjgZfjgb4s44Gf44GP44GKDQor44KE44G+44GX44GfLOOBvuOBleOBguOBjQ0KK+OBruOBmyzjgbLjgafjgobjgY0NCivjgb7jgaTjgb7jgYgs44GC44KG44G/DQor44KI44GX44GfLOOBruOCiuOBguOBjQ0KK+OCgOOCieOBnyzjgajjgYrjgosNCivjga/jgoks44Gu44KK44Gy44GTDQor44KE44G+44GG44GhLOOBkeOCk+OBmA0KK+OBi+OBvyzjgYvjgaTjgobjgY0NCivjgZnjgYzjgYQs44Gf44Gk44KG44GNDQor44Gf44GL44GuLOOCiOOBl+OBruOBtg0KK+OBqOOBk+OCjSzjgojjgZfjgbLjgo0NCivjgZnjgZrjgY0s44GZ44GZ44KADQor44GV44GV44GNLOOBguOBpOOChuOBjQ0KK+OBpOOBruOBoCzjgabjgaTjgo3jgYYNCivjgoTjgb7jgZXjgY0s44Gm44Gk44KEDQor44G/44GG44KJLOOBi+OBpOOBvw0KK+OBiuOBoOOBjuOCiizjgYLjgaTjgZMNCivjga/jgoTjgZcs44GX44KT44Gh44KH44GGDQor44Go44G/44GK44GLLOOBsuOBqOOBlw0KK+OBhOOBkOOBoSzjgZvjgYTjgYTjgaENCivjgZPjgpPjgaks44Gf44GL44GXDQor44GP44G8LOOBsuOBp+OBig0KK+OBj+OCieOBrOOBjSzjgY3jgofjgYbjgZMNCivjgajjgb/jgb7jgaQs44Gq44GK44GTDQor44GP44KN44GL44KPLOOBvuOBleOBguOBjQ0KK+OBruOBluOCjyzjgZnjgb/jgYoNCivjgYvjgo/jgZXjgY0s44GP44Gr44GC44GNDQor44Gf44GR44GgLOOBi+OBpOOChA0KK+OBl+OBruOBr+OCiSzjgYLjgY3jgbLjgo0NCivjgbXjgovjgoQs44GX44GS44KLDQor44Gq44GL44KA44KJLOOBleOBqOOCiw0KK+OChOOBmOOBvizjgajjgYrjgosNCivjgavjgZfjgYzjgY0s44GN44KI44GXDQor44Gq44GL44GM44KPLOOBneOBhg0KK+OBsuOCieOChOOBvizjgZfjgoXjgpPjgYTjgaENCivjgoTjgb7jgZDjgaEs44KA44Gk44Gy44KNDQor44KI44GX44KA44KJLOOChuOBhuOBmA0KK+OBpOOBoCzjgZ/jgYvjgobjgY0NCivjgYvjgaTjgonjgYQs44KP44Gf44KLDQor44G/44Gq44GELOOBqOOBl+OBi+OBmg0KK+OBn+OBjeOBkOOBoSzjgYvjgZrjgYoNCivjgo/jgZHjgbks44KI44GX44Gy44KNDQor44Gr44GX44GL44KPLOOBvuOBleOChA0KK+OBl+OCieOBjOOBjSzjgbLjgo3jgYLjgY0NCivjgbDjgbAs44G+44GV44GL44GaDQor44GC44GL44KKLOOCiuOCh+OBhuOBmA0KK+OBguOBuSzjgZ/jgY/jgoQNCivjgYvjgYQs44GP44Gr44Gy44KNDQor44GK44GK44KC44KKLOOBsuOBp+OBi+OBpA0KK+OBmeOBmuOBjSzjgZ/jgYvjgZcNCivjgarjgYzjgZXjgo8s44Gy44Go44GXDQor44GV44KP44GgLOOBiOOBv+OBkw0KK+OBguOBmuOBvizjga7jgbbjgobjgY0NCivjgYrjga4s44Gy44Gn44GNDQor44GL44KP44Gr44GXLOOBruOBtuOBsuOBpw0KK+OBvuOBquOBuSzjgYvjgZrjgbLjgo0NCivjgYLjgorjgoTjgb4s44KG44GG44GYDQor44Gr44GX44GL44KPLOOBjeOCiOOBlw0KK+OBguOBpOOBvyzjgZfjgoXjgYbjgZgNCivjgYTjgajjgYYs44Gy44KN44KG44GNDQor44Gy44KN44GfLOOBqOOBl+OChA0KK+OBu+OBi+OBnuOBrizjgYvjgZrjgagNCivjgbvjgZfjga4s44KE44GZ44Gy44KNDQor44KE44G+44GQ44GhLOOBvuOBk+OBqA0KK+OBguOBjOOBnyzjgZPjgYbjgZgNCivjgb7jgovjgYos44KI44GX44KG44GNDQor44GT44GE44GnLOOBsuOCjeOBguOBjQ0KK+OBi+OBv+OCgOOCiSzjgb7jgZXjgbLjgacNCivjgZXjgYTjgajjgYYs44Gq44GK44GNDQor44G144GP44G/44GkLOOBguOBpOOBlw0KK+OBsuOCieOChOOBvizjgbLjgYvjgosNCivjgZXjgYTjgajjgYYs44Gm44Gk44KEDQor44GE44GR44GKLOOBv+OBruOCiw0KK+OBteOCi+OBi+OCjyzjgZjjgoXjgpPjgYTjgaENCivjgYTjgYTjgaAs44Gy44KN44GC44GNDQor44G/44KE44GW44GNLOOCguOBqOOBsuOCjQ0KK+OCiOOBl+OBoCzjgoTjgZnjgobjgY0NCivjgY3jgY/jgZ8s44GI44KK44GTDQor44Gh44GwLOOBpuOBpOOBig0KK+OBqOOCiuOChOOBvizjgorjgaTjgYoNCivjgYjjgZbjgo8s44KK44KF44GG44Gf44KN44GGDQor44GK44GK44GwLOOCiOOBl+OBn+OBvw0KK+OChOOBvuOCguOBqCzjgYrjgZXjgoANCivjgavjgZfjgYvjgo8s44G+44GV44Gu44G2DQor44GI44KT44GpLOOBvuOBleOBr+OCiw0KK+OBteOBj+OBhCzjgYrjgZXjgoANCivjga/jgb7jga4s44KI44GG44GE44GhDQor44GN44Gf44Gv44KJLOOBkeOCk+OBmOOCh+OBhg0KK+OBleOBqOOBhizjgobjgY3jgbLjgo0NCivjgb7jgaTjgYos44G+44GV44G144G/DQor44Go44KI44GfLOOBsuOBp+OChA0KK+OBsuOCieOCguOBqCzjgajjgZfjgbLjgacNCivjgoTjgb7jgoLjgags44GT44GG44Gf44KN44GGDQor44Gv44G+44GgLOOBvuOChuOBvw0KK+OBhOOCj+OBi+OBvyzjgb/jga7jgosNCivjgY/jgbws44Gm44Gk44GKDQor44GI44KT44GpLOOBi+OBmuOBsuOCjQ0KK+OBi+OBkuOChOOBvizjgb7jgZXjga7jgooNCivjgavjgYTjgoQs44Go44KC44KG44GNDQor44GT44GG44GhLOOChuOBhuOBmeOBkQ0KK+OBguOBoOOBoSzjgZfjgZLjgobjgY0NCivjga/jgoTjgZcs44GX44KF44KT44GYDQor44Gq44GL44GuLOOBvuOBk+OBqA0KK+OBhOOBl+OBr+OBvizjgb7jgZXjgbLjgo0NCivjgZPjgY/jgbws44KK44KF44GG44GE44GhDQor44GL44KP44GuLOOBr+OBmOOCgQ0KK+OBquOBi+OBmOOBvizjga7jgorjgbLjgZMNCivjgZ/jgYTjgoks44Gk44KI44GXDQor44Gf44GR44GOLOOCiuOBpOOBig0KK+OCguOCiuOBl+OBvizjgajjgoLjgZMNCivjgarjgYvjgoDjgoks44Gy44KN44GC44GNDQor44Gu44GQ44GhLOOBsuOCjeOBjQ0KK+OBguOCieOBjSzjgoTjgZnjgabjgosNCivjgYLjgoks44Gy44KN44GXDQor44GE44Go44GGLOOBquOBiuOBkw0KK+OBr+OChOOBleOBiyzjgbXjgajjgZcNCivjgZPjgaTjgYss44G+44GV44GL44GaDQor44Gf44GR44GG44GhLOOBsuOCjeOBlw0KK+OBhOOCj+OBnyzjgZ/jgYvjgZcNCivjgb7jgYjjgaAs44KI44GX44GKDQor44G744Gd44GL44KPLOOBvuOBleOBsuOCjQ0KK+OBguOCieOBhCzjgoTjgZnjgbLjgo0NCivjgYrjgYrjgY/jgoks44GL44KT44GYDQor44Gf44GR44GT44GXLOOBguOBpOOBlw0KK+OChOOBvuOBkOOBoSzjgZHjgpPjgZgNCivjgZfjgb/jgZos44GL44Gk44Go44GXDQor44GE44Go44GGLOOCiOOBl+OBpOOBkA0KK+OBhOOBmuOBvyzjgYvjga3jgb/jgaQNCivjgZTjgajjgYYs44Gd44GG44Gf44KN44GGDQor44GK44GK44Gk44G8LOOBi+OBmuOBvw0KK+OBi+OBv+OBk+OBjOOCjyzjgZfjgpPjgYTjgaENCivjgZ/jgZHjgYQs44GV44Go44GTDQor44G/44KE44Gv44KJLOOBvuOBleOBlw0KK+OBguOCj+OBmCzjgYLjgaTjgYoNCivjgYbjgZfjgo3jgaAs44GL44GK44KLDQor44KC44KK44GE44Ga44G/LOOBr+OBmOOCgQ0KK+OBquOBjOOBrizjgYLjgaTjgZcNCivjgZ/jgarjgYss44KA44Gt44KG44GNDQor44G144GL44GILOOBkeOCk+OBmA0KK+OBteOCi+OChCzjgb/jgZXjgYoNCivjgb/jgZrjgbLjgY0s44KI44GX44GKDQor44GP44G8LOOBv+OBpOOCiOOBlw0KK+OBn+OBkOOBoSzjgbXjgb/jgYLjgY0NCivjgarjgYvjgYos44Gk44GO44GoDQor44KE44G+44GX44GfLOOChuOBhuOBhOOBoQ0KK+OBj+OCjeOBjSzjgZfjgofjgYbjgZQNCivjgb7jgaTjgaAs44GR44KT44GE44GhDQor44GK44Gg44GY44G+LOOBquOBu+OBvw0KK+OBu+OCiizjgobjgY3jgYoNCivjgZ/jgavjgZDjgaEs44Gk44Gt44KE44GZDQor44GC44KJ44GELOOBqOOBl+OBruOCig0KK+OBlOOBqOOBhizjgabjgaTjgZgNCivjgajjga3jgYzjgo8s44Gu44KK44KG44GNDQor44KC44KK44GfLOOBn+OBi+OBkw0KK+OBteOCi+OBi+OCjyzjgZfjgZLjgYoNCivjgobjgY0s44KI44GX44Gu44KKDQor44GX44KJ44GE44GXLOOBn+OBi+OBsuOCjQ0KK+OBhOOBkeOChCzjgZXjgaHjgZMNCivjgo/jgZ/jgarjgbks44Gf44Gk44GK44GNDQor44Gf44Gr44GQ44GhLOOBk+OBhuOBhOOBoQ0KK+OBvuOBmeOBoCzjgZfjga7jgbYNCivjgb/jgZrjgZDjgaEs44GY44KN44GGDQor44Gv44KE44G/44GaLOOChuOBvw0KK+OBu+OBi+OCiizjgYLjgY3jgbLjgZMNCivjgYTjgZfjgYQs44Gu44KK44Gy44GTDQor44GX44KJ44GE44GXLOOBvuOBleOBsuOBkw0KK+OBl+OCguOBi+OCj+OCiSzjgZfjgZLjgbLjgo0NCivjgoLjgorjgoLjgags44Go44KC44GTDQor44GE44Go44GGLOOBsuOCjeOBlw0KK+OBiuOBiuOChCzjgZHjgYTjgZgNCivjgb/jgojjgZcs44G/44Gu44KLDQor44GX44Gw44GfLOOBruOCiuOBsuOCjQ0KK+OBn+OCk+OBluOCkyzjgajjgoLjgbLjgZMNCivjgYTjgo/jgZXjgY0s44Gy44Gn44GL44GaDQor44G144GP44GELOOBleOBqOOBlw0KK+OCguOCiuOBsOOChOOBlyzjgYvjgZrjgoQNCivjgoTjgb7jgaAs44Gy44Gn44G/DQor44G144GY44KP44KJLOOBleOBqOOBlw0KK+OBquOBpOOCgSzjgoTjgZnjgagNCivjgZfjga7jga/jgoks44Gy44KN44GXDQor44GK44GV44GgLOOBvuOBleOBlw0KK+OBteOBmOOBr+OCiSzjgZ/jgZHjgbLjgagNCivjgbXjgZjjgoLjgags44Gy44KN44G/DQor44GN44GuLOOCiOOBl+OBig0KK+OChOOBvuOCguOBqCzjgoLjgajjgY0NCivjgYTjgZfjgZjjgb4s44KC44KK44Gy44KNDQor44GE44GMLOOBguOBjeOCiQ0KK+OBquOBi+OBiCzjgaDjgYTjgZgNCivjgoTjga4s44KG44GG44GYDQor44GL44Gq44G/44GkLOOBiuOBleOCgA0KK+OBmeOBmuOBjSzjgabjgovjgYoNCivjgZ/jgYvjgaAs44KK44KH44GG44GTDQor44GE44GX44Gw44GXLOOBsuOCjeOChuOBjQ0KK+OBiuOBiuOBpOOBvCzjgb/jgaTjga/jgosNCivjgZnjgY4s44Gf44GL44GXDQor44Gv44KE44GX44GQ44GhLOOBsuOCjeOBlw0KK+OBpuOCieOBl+OBnyzjgYvjgZrjgYoNCivjgZfjgoLjgoTjgb4s44KI44GX44G144G/DQor44G/44KE44GW44GNLOOBv+OBpOOCiw0KK+OCguOCiizjgoTjgZnjgbLjgo0NCivjgoTjgb7jgoLjgags44Gy44Go44GXDQor44Gn44GC44GELOOBjeOCiOOBsuOCjQ0KK+OBu+OCiizjgajjgZfjgobjgY0NCivjgYLjga3jgZbjgY0s44GL44Ga44GKDQor44GP44G844GfLOOBn+OBi+OBsuOCjQ0KK+OBlCzjgb7jgZXjgajjgZcNCivjgbLjgY3jgaAs44Gy44KN44GXDQor44GV44GL44GQ44GhLOOBruOCiuOBguOBjQ0KK+OCiOOBl+OBhCzjgZ/jgYvjgZcNCivjgY3jgZ/jga/jgoks44GL44Gk44GoDQor44G144GY44GELOOBv+OBqeOCig0KK+OBquOCgeOBjSzjgoTjgZnjgZMNCivjgojjgZfjgoDjgoks44Go44GX44GKDQor44Gf44KA44KJLOOBoOOBhOOBmeOBkQ0KK+OBhuOBv+OBrizjgbLjgo3jgZcNCivjgYLjgpPjganjgYYs44Gy44KN44GXDQor44KI44GX44KC44GoLOOBn+OBkeOBlw0KK+OBreOCguOBqCzjgojjgZfjgbXjgb8NCivjgb/jgoTjgZbjgY0s44G+44GV44Gy44GTDQor44Gf44GL44KC44KKLOOBoeOBiOOBkw0KK+OBj+OBvuOBjOOBhCzjgY/jgavjgYoNCivjgZTjgYbjgaAs44GT44GG44Gf44KN44GGDQor44Gv44GfLOOBk+OBhuOBhOOBoQ0KK+OBj+OBmuOBvyzjgZXjgaHjgZMNCivjgarjgaTjgYQs44GE44GP44GKDQor44GX44G+44GgLOOBsuOBp+OBig0KK+OBiuOBiuOBpOOBjSzjgYvjgZrjgbLjgo0NCivjgb7jgb/jgoQs44Gy44KN44GL44GaDQor44GV44Go44GGLOOBkeOCk+OBmA0KK+OBk+OBsOOCiizjgbLjgafjgobjgY0NCivjgZXjgZXjgY0s44KE44GZ44KG44GNDQor44GL44Gt44GTLOOBvuOBleOBjQ0KK+OBiuOBrizjgajjgYrjgosNCivjgYrjgYrjgoTjgb4s44KI44GX44GIDQor44G+44Go44GwLOOBvuOBleOBr+OCiw0KK+OBhOOBn+OBj+OCiSzjgZjjgoXjgpPjgYTjgaENCivjgYrjgaDjgZfjgb4s44GL44Gk44KN44GGDQor44GX44GE44GNLOOBruOCiuOBkw0KK+OBl+OBsOOBnyzjgYvjgZrjgbLjgo0NCivjgYvjgaTjgoks44Gh44GL44GTDQor44GC44KJ44GELOOCiOOBl+OBruOCig0KK+OBleOBhOOBqOOBhizjgaTjgojjgZcNCivjgb7jgaTjgoLjgags44G+44GV44Gu44KKDQor44GG44GI44KE44G+LOOBv+OBpOOBquOCig0KK+OBvuOBrizjgZfjgpPjgYTjgaENCivjgb/jgZXjgYos44Gq44GK44GNDQor44Gd44Gu44G5LOOBjeOBv+OChuOBjQ0KK+OBmeOBmuOBjSzjgYLjgY3jgYoNCivjgoTjgZ/jgass44GN44KH44GG44GTDQor44KA44GfLOOBvuOBquOBtg0KK+OBvuOCi+OChOOBvizjgbXjgb/jgYLjgY0NCivjgbXjgaAs44Gf44GL44KI44GXDQor44GT44Gw44KE44GXLOOBkeOBhOOBhOOBoeOCjeOBhg0KK+OCj+OBn+OBquOBuSzjgYvjgYrjgosNCivjgYrjgaAs44G+44GT44GoDQor44GK44G144GhLOOBvuOBleOBig0KK+OBn+OBquOBiyzjgZfjgZLjgYoNCivjgZXjgo/jgY0s44G+44GV44GXDQor44GV44GE44Go44GGLOOBsuOCjeOBlw0KK+OBr+OBjuOBrizjga7jgbzjgosNCivjgYbjgZfjgoTjgb4s44Gf44GL44GXDQor44GK44GP44Gy44KJLOOBruOBtuOBsuOCjQ0KK+OCiOOBl+OBhOOBkSzjgZXjgarjgYgNCivjgZPjgpPjga4s44KG44GG44GTDQor44Gu44GgLOOBqOOBl+OBig0KK+OBiOOCk+OBqSzjgajjgZfjgobjgY0NCivjgZnjgZrjgY0s44G/44Gk44GKDQor44Gf44Gq44GLLOOCiOOBl+OBsuOCjQ0KK+OBjeOBqSzjgZHjgYTjgZgNCivjgYTjgajjgYYs44G+44GV44Gu44G2DQor44G144GY44KP44KJLOOBqOOBl+OBr+OCiw0KK+OBr+OBm+OBjOOCjyzjgYLjgY3jgokNCivjgb7jgZnjgoLjgags44GR44GE44GYDQor44GL44GELOOBsuOBqOOBlw0KK+OBn+OBi+OBr+OBnyzjgajjgoLjgZMNCivjgbLjgafjgZfjgb4s44GL44Ga44Gu44KKDQor44Gf44GL44KE44G+LOOBl+OBkuOBjQ0KK+OBv+OChOOBjSzjgobjgZ/jgYsNCivjgbXjgZss44GL44Ga44Gy44GTDQor44KC44KC44GELOOBsuOCjeOChOOBmQ0KK+OBpOOChuOBjSzjgb/jgaTjgZANCivjgYvjgo/jga/jgoks44GX44GS44KLDQor44G+44Gk44GELOOBguOBjeOBsuOCjQ0KK+OBr+OBquOCjyzjgb7jgZXjgbLjgo0NCivjgbLjgo/jgaAs44Gm44Gk44KEDQor44G+44GZ44GELOOBn+OBi+OBlw0KK+OBi+OBqOOBhizjgZ/jgaDjgaTjgZANCivjgZ/jgZHjgb4s44G144G/44GKDQor44GX44KJ44GE44GXLOOCiOOBl+OBig0KK+OBteOCi+OBi+OCjyzjgZfjgofjgYbjgYTjgaENCivjgabjgZjjgb4s44GC44GN44KJDQor44GC44GN44KC44GoLOOBleOBqOOBlw0KK+OBmeOBjuOChOOBvizjgbLjgo3jgYLjgY0NCivjgarjgpPjgbYs44KG44GN44Gy44KNDQor44Gk44GY44GuLOOBkeOCkw0KK+OBpuOCieOBleOBiyzjgYTjgaPjgZfjgpMNCivjgZXjgYvjgYQs44Gy44Gn44GC44GNDQor44GP44G8LOOBguOBpOOBlw0KK+OBvuOCi+OBn+OBqyzjgb7jgZXjgoQNCivjgZ/jgYvjga/jgZcs44G/44Gu44KLDQor44G+44Gk44GG44KJLOOBl+OCk+OChA0KK+OBn+OBquOBiyzjgZvjgpPjgZgNCivjgobjgZbjgo8s44Gf44GL44GC44GNDQor44Gf44GL44Gv44GXLOOBi+OBmuOChA0KK+OBiuOBiuOBsCzjgZfjgpPjgZQNCivjgb7jgYjjgYvjgo8s44Go44GK44KLDQor44Gr44KPLOOBqOOBiuOCiw0KK+OBi+OCj+OCgOOCiSzjgb7jgZXjgY0NCivjgZPjgYTjgZEs44GL44Ga44GIDQor44GP44KK44GX44GfLOOBqOOBl+OChuOBjQ0KK+OBsuOCjeOBmyzjgYrjgZXjgoANCivjgZPjgpPjga4s44Gf44GP44KEDQor44Gv44Gb44GM44KPLOOBsuOCjeOBsuOBkw0KK+OBhOOBqOOBhizjgbLjgo3jgZcNCivjgY3jgZbjgY0s44GC44Gk44GXDQor44GI44Gq44G/LOOBruOCiuOBguOBjQ0KK+OBpOOBi+OBquOBiyzjgbXjgb/jgYLjgY0NCivjgZXjgYvjgoLjgags44Gy44KN44G/DQor44G+44Gk44Gw44KJLOOBsuOBp+OBig0KK+OBpuOCieOBhCzjgZfjgZLjgYLjgY0NCivjgYrjgZfjgZ8s44Gf44GL44KI44GXDQor44Gf44Gq44GLLOOCiOOBl+OBguOBjQ0KK+OChOOBvuOCguOBqCzjgb7jgarjgbYNCivjgYTjgZfjgZDjgo0s44KI44GX44GoDQor44Gv44GX44KC44GoLOOBmeOBv+OBkw0KK+OBleOBqOOBhizjgoTjgZnjgbLjgo0NCivjgoTjgb7jgoLjgags44Go44GK44KLDQor44G144KL44GL44KPLOOBqOOBl+OBruOBtg0KK+OChOOBvuOBoCzjgbLjgo3jgagNCivjgYTjgY/jgZ8s44GX44KH44GG44GTDQor44GV44Go44GGLOOChuOBhuOBhOOBoQ0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgbLjgo0NCivjgYvjgZMs44Gf44Gk44GYDQor44G+44GZ44GgLOOBsuOCjeOBruOCig0KK+OBi+OBv+OBmCzjgZ/jgYvjgobjgY0NCivjgYTjga/jgoks44GL44Ga44Gy44KNDQor44GC44GV44G/LOOBi+OBmuOBsuOCjQ0KK+OBquOBi+OBmOOBvizjgZ/jgYvjgZcNCivjgZPjgZ/jgY0s44Gm44Gk44KEDQor44GL44KP44KC44GoLOOBiOOBhOOBhOOBoQ0KK+OBi+OCj+OBl+OBvizjgYvjgZrjgbLjgZMNCivjgYLjgZrjgb4s44KK44KF44GG44GYDQor44Gq44GL44GuLOOBl+OCheOBhuOBhOOBoQ0KK+OBsuOCieOBrizjgZXjgajjgZcNCivjgZ/jgYvjga/jgZcs44G+44GV44KLDQor44G144GL44KELOOCguOCguOBjQ0KK+OBiuOBiuOBsCzjgZ/jgZHjgZcNCivjgZXjgY/jgonjgYQs44Gy44KN44GC44GNDQor44GV44GL44GELOOBhOOBo+OBm+OBhA0KK+OBguOBiuOBjSzjgZ/jgY/jgYoNCivjgojjgZfjgaAs44KE44GZ44GXDQor44GT44Gv44GXLOOBvuOBleOBruOCig0KK+OBvuOBpOOBhuOCiSzjgabjgaPjgbrjgYQNCivjgZXjgajjgYYs44GK44GV44KADQor44Gr44GX44GN44GK44KKLOOBqOOCguOBkw0KK+OBv+OCiOOBlyzjgojjgZfjgbLjgZUNCivjgZPjgZnjgY4s44Gk44GL44GVDQor44GV44Go44GGLOOBn+OBi+OBhOOBoQ0KK+OBteOBmOOBhCzjgojjgZfjgbLjgo0NCivjgbXjgarjgaAs44GL44Ga44Gy44GTDQor44GZ44GO44GfLOOBqOOBiuOCiw0KK+OBl+OCh+OBhuOBoCzjgYvjgZrjgbLjgo0NCivjgoLjgorjgZfjgZ8s44Go44GX44GKDQor44Gy44KJLOOBsuOBqOOBlw0KK+OBl+OCk+OBn+OBjyzjgbLjgo3jgobjgY0NCivjgbLjgYzjgZfjgaAs44Go44GX44KG44GNDQor44GP44KK44GfLOOBvuOBleOCiOOBlw0KK+OBhOOBquOBoCzjgobjgYbjgZXjgY8NCivjgavjgZfjga4s44Go44GX44KEDQor44GE44GR44GY44KKLOOBruOCiuOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgarjgYrjgbLjgo0NCivjgarjgYvjgYvjgaks44KI44GG44GE44GhDQor44GE44Gu44G+44GfLOOBsuOCjeOBlw0KK+OBpOOCi+OBvyzjgbLjgo3jgojjgZcNCivjgbLjgonjgoLjgags44GX44GS44GNDQor44G/44KI44GXLOOBteOBv+OBguOBjQ0KK+OBguOCj+OBrizjgZ/jgYvjgZcNCivjgYLjgY3jgZ8s44KI44GX44GIDQor44Gy44GM44GX44KE44G+LOOBn+OBkeOBlw0KK+OBleOBqOOBhizjgbLjgo3jgb8NCivjgYvjgo/jgZXjgY0s44GR44GE44GE44GhDQor44G+44KL44KE44G+LOOBr+OBpOOBig0KK+OBmeOBquOBjCzjgbLjgafjgY0NCivjgYTjgb7jgYQs44Gf44G/44GTDQor44G144GY44GELOOChuOBjeOBig0KK+OBvuOBjeOBnyzjgb/jgaTjgYoNCivjgYTjgajjgYYs44Gf44Gk44GXDQor44Gf44GL44Gv44GXLOOCiuOCheOBhuOBhOOBoQ0KK+OBjeOCiuOBvizjgZfjgpPjgZgNCivjgYrjgYrjgavjgZcs44Go44KC44KG44GNDQor44G/44Gu44GX44G+LOOBn+OBkeOBsuOBqA0KK+OBleOBqOOBhizjgYvjgZrjgZ/jgYsNCivjgoTjgb7jgZfjgZ8s44Gf44GL44KG44GNDQor44G/44Gf44KA44KJLOOBvuOChuOBvw0KK+OBleOBqOOBhizjgZfjgZLjgosNCivjgajjgb7jgaQs44Gf44G+44G/DQor44GI44Gz44GX44G+LOOChOOBmeOChuOBjQ0KK+OCj+OBoCzjgYvjgZrjgoQNCivjgZnjgZrjgY0s44GN44KI44Gf44GLDQor44GZ44GM44Gv44KJLOOBv+OBpOOCiw0KK+OBn+OBkOOBoSzjgbLjgo3jgoANCivjgajjgYzjgZcs44G+44GV44Gy44GTDQor44Gq44GM44Gv44KJLOOBleOBqOOCiw0KK+OChOOBvuOCguOBqCzjgZHjgYTjgZMNCivjgZ/jgZHjgaAs44G+44GV44KG44GNDQor44GV44Go44GGLOOBv+OBruOCiw0KK+OBn+OBi+OBv+OChCzjgbLjgafjga7jgbYNCivjgYLjgYrjgY0s44Gf44GL44Gy44KNDQor44GT44KE44GOLOOBmeOBv+OBn+OBiw0KK+OBiuOBruOBluOBjSzjgorjgofjgYbjgZnjgZENCivjgoLjgorjgZ8s44Gu44KK44GTDQor44GV44GP44KJ44GOLOOChuOBv+OBkw0KK+OBiuOBi+OBleOBiyzjgbLjgo3jga7jgooNCivjgoTjgb7jgZDjgaEs44GT44GZ44GRDQor44GL44KP44GX44G+LOOCiOOBl+OBruOCig0KK+OBhOOCj+OBrizjgYvjgZrjga7jgooNCivjgZTjgYbjgZMs44KE44GZ44Gv44KLDQor44KC44KK44GfLOOChOOBmeOBmA0KK+OBl+OBkuOBn+OBiyzjgarjgYrjgY0NCivjgabjgZrjgYss44GI44GE44GV44GPDQor44GK44GfLOOBpOOCiOOBlw0KK+OChOOBvuOBoCzjgb7jgZXjga/jgosNCivjgbXjgYvjgaAs44Gy44GV44KG44GNDQor44Gv44Gb44G5LOOCguOBqOOBguOBjQ0KK+OBvuOBpOOBrizjgYLjgaTjgZcNCivjgaTjgZjjgYvjgo8s44GR44KT44GE44Gh44KNDQor44G+44Gk44KC44GoLOOBi+OBpOOBvw0KK+OBm+OBruOBiizjga/jgZjjgoENCivjga7jgoDjgoks44GV44Go44GXDQor44GC44KJ44GELOOBqOOCiOOBl+OBkg0KK+OBiuOBkOOCiizjgZnjgb/jgYgNCivjgZjjgpPjga4s44G+44GV44Gy44KNDQor44Gy44KN44Ga44G/LOOBv+OBruOCiw0KK+OBvuOBpOOBhCzjgZnjgZnjgoANCivjgZfjgbDjgZbjgY0s44GC44Gk44GXDQor44GE44Gu44GG44GILOOBsuOBp+OBig0KK+OBn+OBquOBiyzjgbLjgafjgYvjgZoNCivjgZXjgZ0s44Gq44GK44G144G/DQor44GX44KJ44Gv44G+LOOBguOBjeOBsuOBkw0KK+OBn+OBquOBiyzjgarjgYrjgY0NCivjgarjgYvjgoDjgoks44KE44GZ44Gy44KNDQor44GE44GX44GM44G/LOOCiOOBl+OBguOBjQ0KK+OBl+OBsOOBnyzjgabjgaPjgbrjgYQNCivjga7jgZDjgaEs44GC44KG44G/DQor44GE44Gh44GwLOOBk+OBhuOBmA0KK+OBi+OCj+OBkOOBoSzjgbLjgafjgZMNCivjgojjgZfjgb8s44Gy44Gn44G/DQor44G144GY44GL44KPLOOBsuOCjeOChuOBjQ0KK+OBi+OBqOOBhizjgaTjgojjgZcNCivjgZ/jgYvjga/jgZcs44GE44GV44KADQor44G144GY44GV44KPLOOBi+OBmuOBig0KK+OBv+OBmuOBn+OBqyzjgajjgoLjgbXjgb8NCivjgZvjgY3jgZDjgaEs44KI44GX44KN44GGDQor44G+44GI44GL44KPLOOCgOOBpOOBvw0KK+OBguOCieOBhCzjgorjgoXjgYbjgZgNCivjgoLjgoos44GR44GE44Gf44KN44GGDQor44GV44Go44GGLOOBquOBiuOBkw0KK+OBj+OCj+OBnyzjgZfjgofjgYbjgYTjgaENCivjgYrjgZDjgoos44Gy44KN44GXDQor44Gy44KJ44GELOOBi+OBpOOBsuOBkw0KK+OBq+OBl+OCgOOCiSzjgbXjgb/jgajjgZcNCivjgYrjgYrjgY/jgoks44Gy44GV44Gu44KKDQor44Gd44Gu44G5LOOBguOBjeOBkw0KK+OBhOOBhOOBoCzjgoTjgZnjgYLjgY0NCivjgZPjgZDjgaEs44GI44GE44GE44Gh44KN44GGDQor44KC44KN44G744GXLOOBsuOBp+OBi+OBmg0KK+OBr+OBvuOBoCzjga7jgorjgYvjgaQNCivjgYvjgarjgZbjgo8s44GL44Ga44KG44GNDQor44G+44Gk44GwLOOBl+OBkuOCiw0KK+OBhOOCj+OBnyzjgbLjgafjgajjgZcNCivjgYLjgZrjgaEs44G+44GV44KLDQor44GT44KT44GpLOOBhOOBleOBig0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgYoNCivjgYLjgb7jga4s44Gy44KN44GC44GNDQor44GL44Gf44GgLOOBiuOBleOCgA0KK+OBn+OCgeOBsuOCjSzjgoLjgajjgZMNCivjgb7jgaTjgaAs44Gf44GL44GXDQor44Gq44KK44GE44GXLOOChOOBmeOCiOOBlw0KK+OBiuOBjeOBnyzjgoLjgorjgb/jgaENCivjgoTjgb7jgZfjgZ8s44Gy44KN44GXDQor44GZ44Ga44GNLOOChuOBhuOBmA0KK+OBvuOCk+OBvSzjgYvjgaTjgb8NCivjgYTjgaHjgYQs44GR44KT44GYDQor44GT44GE44GnLOOBqOOCguOBkw0KK+OBn+OBi+OBr+OBlyzjgarjgYrjgZMNCivjgarjgYvjgYzjgo8s44GL44Ga44GKDQor44GK44Gv44G+LOOBn+OBi+OBlw0KK+OBn+OBi+OBr+OBnyzjgbLjgo3jgb8NCivjgZPjgZDjgaEs44Gf44GL44GXDQor44G/44KE44GM44KPLOOBi+OBmuOChA0KK+OBl+OBsOOChOOBvizjga/jgZjjgoENCivjgYLjgonjgYQs44KE44GZ44Gy44KNDQor44KP44Gf44Gq44G5LOOBmeOBmeOCgA0KK+OBquOBi+OCgOOCiSzjgobjgZ/jgYsNCivjgbXjgovjga/jgZ8s44G+44GV44Gq44KKDQor44Gf44Gr44GQ44GhLOOBquOBiuOBmeOBkQ0KK+OBu+OCk+OBoCzjgZnjgZnjgoANCivjgb7jgaTjgoLjgags44GC44GN44Gy44KNDQor44Gf44GL44GNLOOBr+OCi+OBv+OBpA0KK+OBjeOBj+OBoSzjgZfjgpPjgoQNCivjgYTjga7jgYbjgYgs44GT44GG44GE44GhDQor44Gv44KJLOOBvuOBleOBig0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgbLjgo0NCivjgoDjgonjgYvjgb8s44Go44KC44KE44GZDQor44Gw44GwLOOBvuOBleOBsuOBkw0KK+OBr+OBm+OBjOOCjyzjgajjgZfjgbLjgZMNCivjgZXjgZXjgY0s44GC44GN44G144G/DQor44GC44Gk44GfLOOBsuOBqOOBvw0KK+OBn+OBoeOBi+OCjyzjgbLjgo3jgaTjgZANCivjgbLjgonjgoLjgags44Gy44Gn44GC44GNDQor44Gq44GL44KA44KJLOOBqOOBl+OChA0KK+OBpOOCgOOCiSzjgZ/jgYvjgYoNCivjgZ/jgYvjga/jgZcs44Gd44GG44GE44Gh44KN44GGDQor44KI44GT44KE44G+LOOBv+OBruOCiw0KK+OBk+OBn+OBkSzjgb/jgaTjgYoNCivjgYLjgpPjgonjgY8s44Gf44GL44GXDQor44G/44Ga44GuLOOBl+OCk+OBhOOBoQ0KK+OBiuOBiuOBrOOBjSzjgYLjgY3jgokNCivjgZXjgYvjgYQs44Gv44GY44KBDQor44GK44GfLOOBl+OCh+OBhuOBnuOBhg0KK+OBr+OChOOBlyzjga7jgorjgYoNCivjgZXjgYTjgajjgYYs44GC44GN44Gy44KNDQor44Gf44Gq44GLLOOBruOCiuOBkw0KK+OBr+OCi+OBr+OCiSzjgajjgYbjgZQNCivjgYrjgYrjgaTjgYss44G+44GV44KG44GNDQor44GN44Gf44GM44KPLOOBsuOBp+OBvw0KK+OCiOOBk+OBnyzjgYvjgaPjgbrjgYQNCivjgojjgZfjgoDjgoks44GC44Gk44GTDQor44GK44GK44Gy44KJLOOBl+OCk+OBhOOBoQ0KK+OBoeOCg+OBjSzjgZfjgZLjgbLjgacNCivjgZXjgYvjgZDjgaEs44GT44GG44GE44GhDQor44GZ44Ga44GNLOOBguOBjeOBsuOCjQ0KK+OBoeOBi+OBluOCjyzjgb7jgobjgb8NCivjgarjgYvjgZjjgb4s44G+44GV44Gu44KKDQor44KP44Gf44Gq44G5LOOBn+OBoOOBig0KK+OBl+OBsCzjgZjjgoXjgpPjgZMNCivjgZXjgYvjgYQs44Gh44Gv44KLDQor44KE44G+44G/44GV44GLLOOBpuOBpOOBig0KK+OCiOOBl+OBjOOBvyzjgYLjgY3jgokNCivjgbLjgonjgaYs44G+44GV44KG44GNDQor44KP44GP44GX44G+LOOBn+OBoOOBlw0KK+OBguOBleOBvizjgaHjgYvjgokNCivjgYLjgZrjgb8s44Gf44Gg44GXDQor44GE44Gq44GK44GLLOOBsuOCjeOBi+OBmg0KK+OBleOBquOBhCzjgbLjgo3jgZcNCivjgoTjgb7jgYbjgaEs44KE44GZ44Gy44KNDQor44GE44Gv44KJLOOBqOOBl+OBsuOBkw0KK+OBn+OChOOBvizjgYrjgZXjgoANCivjgZXjgZXjgY0s44GX44KT44KEDQor44G144GY44GG44GhLOOBqOOBl+OBguOBjQ0KK+OBhuOBl+OBmOOBvizjgZfjgpPjgYTjgaENCivjga7jga7jgoDjgoks44G+44GV44Gf44GLDQor44Gr44GXLOOBn+OBkeOBsuOCjQ0KK+OBhOOBkeOBoCzjgbLjgo3jgb8NCivjgZnjgY7jgZ/jgass44Gy44KN44GXDQor44GK44GW44GNLOOBn+OBkeOBlw0KK+OBk+OBkeOBpCzjgYLjgY3jgbLjgZUNCivjgZXjgajjgYYs44KI44GG44GZ44GRDQor44Gb44KT44GwLOOBguOBpOOBlw0KK+OBguOBmuOBvizjgbLjgafjgagNCivjgarjgYrjgYQs44GE44Gh44KN44GGDQor44G744GX44GuLOOCiOOBl+OBjQ0KK+OBi+OBv+OChCzjgoTjgZnjgbLjgo0NCivjgoDjgonjgZ8s44Gy44Go44GXDQor44GE44Gh44G/44KELOOBkeOBhOOBkw0KK+OBn+OCi+OBhCzjgoTjgZnjgYLjgY0NCivjga/jgY7jga/jgoks44G/44KP44GTDQor44Gf44GL44Gv44GXLOOBn+OBi+OBlw0KK+OBiuOBoeOBguOBhCzjgbLjgajjgZcNCivjgYLjgY3jgoTjgb4s44GR44GE44GZ44GRDQor44GN44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBr+OChOOBlyzjgbLjgafjgYoNCivjgoTjgb7jgZDjgaEs44G/44Gk44KLDQor44Go44GT44KNLOOBquOBiuOBn+OBiw0KK+OBi+OBmeOChCzjgYjjgaTjgZMNCivjgYTjgorjgYgs44GX44KF44GG44GYDQor44KA44KJ44GE44GXLOOBv+OBquOBkw0KK+OBl+OCk+OBn+OBqyzjgorjgoXjgYbjgZgNCivjgYbjgYjjga4s44G/44G7DQor44GG44Gh44GgLOOBk+OBhuOBmA0KK+OBr+OBm+OBjOOCjywNCivjgY/jgo3jgaAs44KL44KK44GTDQor44GE44Go44GGLOOBi+OBpOOBsuOCjQ0KK+OBu+OCiuOBhuOBoSzjgb7jgoQNCivjgYrjgYrjga/jgZ8s44Gu44G244GC44GNDQor44G744KT44GgLOOBsuOBp+OChuOBjQ0KK+OBquOBi+OCgOOCiSzjgZnjgZnjgoANCivjgZXjgYjjgY0s44GK44GN44KC44KKDQor44GC44G5LOOBpuOCi+OBsuOBlQ0KK+OBhuOCgeOBoCzjgZ/jgYvjgbLjgo0NCivjgazjgb4s44G+44GV44KG44GNDQor44Gf44G244GhLOOChuOBn+OBiw0KK+OBjeOCgOOCiSzjgb/jgaTjgosNCivjgYbjgaAs44Gf44GL44G/DQor44GC44GK44GNLOOBruOCiuOBkw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgagNCivjgbXjgZjjgZPjgZcs44GV44Go44GXDQor44GZ44G/44GgLOOBjeOCiOOBlw0KK+OBj+OBmuOBr+OCiSzjga7jgbzjgosNCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44GC44KJ44GfLOOBleOBqOOBvw0KK+OCjeOBo+OBi+OBjyzjgb7jgobjgb8NCivjgYTjga7jgYbjgYgs44G/44Gk44G+44GVDQor44Gk44GY44KC44GoLOOBvuOBleOBvw0KK+OBv+OBhuOCiSzjgarjgarjgZMNCivjga3jgoLjgags44KI44GX44GKDQor44GC44KB44G/44KELOOCiOOBl+OBi+OBmg0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgYLjgYTjgbAs44Gu44G244Gf44GLDQor44KI44Gt44GW44KPLOOBl+OCk+OChA0KK+OBteOBmOOCgOOCiSzjgZfjgoXjgYYNCivjgorjgoXjgYbjgags44Gy44KN44G/DQor44KP44Gf44Gq44G5LOOBqOOCguOBvw0KK+OBjeOBn+OBjOOCjyzjgZfjgpPjgZgNCivjgYLjgZ/jgonjgZcs44Go44KC44Gq44GKDQor44GN44GP44GhLOOBmOOCheOCkw0KK+OBmeOBmuOBjSzjgYLjgY3jgokNCivjgZ/jgarjgYss44Gy44KN44GXDQor44GE44GR44GgLOOBsuOCjeOBquOCig0KK+OCiOOBk+OBi+OCjyzjgb/jgaTjgbLjgZMNCivjgY/jgZXjgaTjgZAs44Gf44GL44GXDQor44G/44Ga44GuLOOBkeOCk+OBmA0KK+OBquOBjOOBu+OCiizjgZPjgYbjgYTjgaENCivjgZnjgY7jgoLjgags44GT44GG44GYDQor44GC44KT44Gp44GGLOOBpOOBreOBig0KK+OBn+OBi+OChOOBquOBjizjgbLjgo3jgbXjgb8NCivjgZfjgbAs44G+44GV44GTDQor44GL44G/44KE44G+LOOBi+OBmuOBsuOCjQ0KK+OBiuOBiuOBsuOCiSzjgbLjgo3jgb8NCivjgbvjgpPjgb4s44Gv44KL44KG44GNDQor44Gf44Gw44GfLOOBruOBtuOCiOOBlw0KK+OBiOOCk+OBqSzjgZHjgpPjgYTjgaENCivjgYTjgZfjgYzjgY0s44Gb44GE44GYDQor44GX44GwLOOChuOBhuOBhOOBoeOCjQ0KK+OChOOBvuOBoCzjgb7jgZXjgbLjgagNCivjgZ/jgYvjga4s44GL44Gk44GKDQor44KI44GX44GgLOOBn+OBpOOChA0KK+OBguOBvuOBleOBjSzjgajjgZfjgbLjgZMNCivjgYrjgZfjgYvjgo8s44GX44KT44GYDQor44Gr44GX44GuLOOBv+OBu+OBkw0KK+OBi+OBqOOBhizjgYrjgZXjgoANCivjga/jgb7jgYrjgYss44Go44KC44GTDQor44GV44GuLOOBn+OBi+OBi+OBmg0KK+OBmeOBiOOBl+OBkizjgY/jgavjgabjgosNCivjgarjgYvjgZ8s44Gy44KN44G/DQor44GT44Gw44KE44GXLOOBsuOBp+OChuOBjQ0KK+OBmeOBqeOBhizjgoTjgZnjgZcNCivjgaTjgaTjgb8s44GN44KI44Gy44GoDQor44G/44Gf44GrLOOBk+OBhuOBmA0KK+OBhOOBl+OBoCzjgoTjgZnjgbXjgb8NCivjgYTjgYTjgZrjgYss44KG44Gf44GLDQor44GX44KJ44GELOOChuOBvw0KK+OChOOBvuOBoCzjgYTjgo/jgYoNCivjgaTjgZjjgYvjgaks44GL44Ga44GTDQor44G+44Gk44Gq44GMLOOBk+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgYvjgZrjgYgNCivjgb/jgarjgb8s44Gy44KN44GXDQor44GV44GL44GELOOBvuOBleOChuOBjQ0KK+OBhuOBiOOBjSzjgZfjgYrjgooNCivjgYrjgaAs44G+44GV44GKDQor44G+44GI44GgLOOBm+OBhOOBmA0KK+OBp+OBjeOBn+OBqyzjgZjjgoXjgpMNCivjgYLjgb7jga4s44Gf44GL44Gy44KNDQor44G/44KE44GT44GXLOOBl+OBkuOBi+OBmg0KK+OBguOCk+OBluOBhCzjgajjgZfjgb/jgaENCivjgYbjgoHjgaAs44KG44GN44GKDQor44Gf44GN44GW44KPLOOBguOBpOOBlw0KK+OCgOOCieOBq+OBlyzjgY3jgojjgZcNCivjgY/jgorjga/jgoks44Go44GX44Gy44GTDQor44KE44G+44GV44GNLOOBvuOCig0KK+OBiuOBiuOBpOOBiyzjgb/jgaTjgbLjgo0NCivjgYLjgb/jga4s44Gf44GL44GXDQor44KC44KKLOOChOOBmeOBruOCig0KK+OBq+OBl+OCguOCiizjgZfjgpPjgZgNCivjgZ/jgZHjga4s44G+44GV44GKDQor44GX44KT44GM44GNLOOCiOOBl+OBi+OBmg0KK+OBvuOBpOOBiizjgojjgZfjgY0NCivjgbXjgZjjga0s44G+44GV44GNDQor44GL44Gq44G+44KLLOOBsuOCjeOCiOOBlw0KK+OBi+OBquOBluOCjyzjgZ/jgaTjgobjgY0NCivjgZfjgb/jgZos44KK44KF44GG44GYDQor44KP44GgLOOBhOOBpOOBkw0KK+OBhOOBl+OBj+OCiSzjgZ/jgZHjgZcNCivjgbXjgY/jgaAs44GC44GN44Gy44KNDQor44GG44GL44GELOOCiOOBl+OBkw0KK+OBguOCiuOBvizjgYrjgZXjgoANCivjgYrjgYrjgZ8s44Gf44GL44GC44GNDQor44KC44KK44Gf44GrLOOBn+OBi+OBlw0KK+OBguOBoOOBoSzjgojjgZfjgbLjgo0NCivjgY/jgb7jgacs44G+44GV44Gu44KKDQor44GC44KJLOOBmeOBmeOCgA0KK+OBr+OBl+OCguOBqCzjgajjgYrjgosNCivjgajjgojjgYrjgYss44G+44GT44GoDQor44GK44GK44GkLOOBpuOBpOOCjeOBhg0KK+OBv+OChOOBjSzjgZHjgYTjgYTjgaENCivjgYTjgZfjgYvjgo8s44GY44KF44KT44GE44GhDQor44GE44GM44KJ44GXLOOBquOBiuOBpOOBkA0KK+OBiuOBiuOBq+OBlyzjgY3jgpPjgoQNCivjgZfjgonjgYTjgZcs44GT44GG44GE44GhDQor44KI44GT44KBLOOCiOOBl+OBguOBjQ0KK+OBteOBmOOCguOBqCzjgYvjgZrjgbLjgo0NCivjgYvjgpPjga4s44KC44KK44KE44GZDQor44Gf44Gh44Gw44GqLOOBv+OBoeOBig0KK+OChOOBvuOBoCzjgaHjgarjgb8NCivjgYLjgZXjgb8s44GX44GS44GKDQor44G/44GG44KJLOOChOOBmeOBlw0KK+OBqOOBj+OBsuOCjSzjgbLjgo3jga7jgbYNCivjgoLjgorjgYvjgo8s44G+44GV44Gu44G2DQor44GE44Go44GGLOOBv+OBjeOBsuOBlQ0KK+OBleOBrizjgajjgoLjgb/jgaQNCivjgZnjgZrjgY0s44G+44GT44GoDQor44GX44KC44Go44GuLOOBvuOBquOBtg0KK+OBvuOBi+OBuSzjgZXjgajjgb8NCivjgYTjgajjgYYs44GT44GG44GYDQor44Gk44GP44GgLOOBmOOCheOCk+OBmA0KK+OCiOOBl+OBi+OCjyzjgb/jgaTjgZANCivjgZ/jgYvjgoTjgarjgY4s44Gy44KN44GNDQor44G744KT44GgLOOBn+OBi+OCiOOBlw0KK+OBq+OBl+OBrizjgobjgYbjgZgNCivjgY3jgoDjgoks44KI44GX44Gy44KNDQor44GL44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBiuOBiuOBr+OBnyzjgZjjgoXjgpMNCivjgYbjgaTjgb8s44GL44Ga44Gy44GTDQor44GC44KT44Gp44GGLOOBi+OBmuOBsuOBlQ0KK+OBr+OBvuOBn+OBqyzjgb/jga7jgosNCivjgY3jga7jgZfjgZ8s44Gf44GL44G144G/DQor44GL44KP44GbLOOBqOOBl+OBn+OBiw0KK+OBhuOBiOOBrizjgojjgZfjgbLjgZMNCivjgZfjgYvjgb4s44KK44KH44GG44GYDQor44GZ44Ga44GNLOOBvuOBleOChuOBjQ0KK+OBteOBmOOBiuOBiyzjgb7jgZXjgbLjgo0NCivjgYTjga7jgYbjgYgs44Go44KC44Gy44KNDQor44GN44Gf44GW44GNLOOChOOBmeOChuOBjQ0KK+OBguOBhOOBuSzjgbLjgo3jgZcNCivjgYrjgYrjgYvjgo8s44GV44GL44GIDQor44Gf44GR44GELOOChOOBmeOBr+OCiw0KK+OBi+OCieOBr+OBlyzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44G+44KG44G/DQor44GC44KJ44GELOOBsuOCjeOBlw0KK+OBhOOBruOBoCzjga7jgorjgobjgY0NCivjgYrjgY/jgoDjgoks44GI44KKDQor44G+44KL44GELOOBmOOCheOCk+OBkw0KK+OBsuOCjeOBmuOBvyzjgYLjgY3jgbLjgZUNCivjgo/jgZfjgZos44Gf44GP44KEDQor44KI44GX44KA44KJLOOBn+OBi+OBsuOBlQ0KK+OBi+OBpOOBvuOBnyzjgZ/jgYvjgZcNCivjgb7jgZnjgYvjgo8s44GL44Gk44KJDQor44GE44KP44GKLOOBl+OCheOBhuOBmA0KK+OChOOBvuOCguOBqCzjgojjgZfjgbLjgagNCivjgZ/jgarjgYss44GV44Go44KLDQor44Gf44GR44GG44GhLOOBruOCiuOChuOBjQ0KK+OBruOBr+OCiSzjgZfjgoXjgYbjgZ7jgYYNCivjgbXjgarjga/jgZcs44GL44Ga44Gu44KKDQor44Gq44GU44GXLOOBkeOCk+OBmA0KK+OBhuOCgeOBoCzjgYvjgZrjgoQNCivjgYLjgY3jgoTjgb4s44Gy44Go44GXDQor44Gq44GL44GgLOOBvuOBleOBqA0KK+OBleOBhOOBqOOBhizjgoHjgZDjgb8NCivjgZ/jga/jgoks44GY44KF44KT44GE44Gh44KNDQor44Gr44GX44G+44GkLOOCiOOBl+OBsuOCjQ0KK+OBsuOCieOBv+OBpCzjgb7jgZPjgagNCivjgoHjgYvjgZ8s44G+44GV44KLDQor44Gf44GL44G/LOOCiuOCheOBhuOBn+OCjeOBhg0KK+OBneOBruOBoCzjgbLjgafjgobjgY0NCivjgb/jgoTjgZbjgY0s44KG44GG44GYDQor44G+44KL44KE44G+LOOBsuOBp+OBguOBjQ0KK+OBpOOBruOBi+OCjyzjgb7jgZXjgZcNCivjga/jgonjgaAs44GL44Gk44G/DQor44Gk44GYLOOBpOOBkOOBsuOBkw0KK+OBhOOBjOOCieOBlyzjgajjgZfjgYoNCivjgojjgZfjgaAs44GL44GK44KKDQor44Gf44GR44GM44GfLOOBk+OBhuOBjQ0KK+OBguOBuSzjgorjgofjgYbjgZgNCivjgYLjgYvjgazjgb4s44Go44GP44Gy44KNDQor44GL44KP44GgLOOBsuOCjeOBguOBjQ0KK+OBn+OBlCzjgbLjgo3jgZcNCivjgYvjgb/jgoDjgoks44G+44GV44GXDQor44G+44Gk44KELOOBkuOCkw0KK+OBhOOCj+OBnyzjgYLjgY3jgbLjgZMNCivjgb7jgYjjgYvjgo8s44GV44Go44GXDQor44KE44G+44GQ44GhLOOCjOOBhOOBkw0KK+OBl+OCjeOBl+OBnyzjgajjgoLjgbLjgo0NCivjgoTjgb7jgZfjgZ8s44G+44GV44GoDQor44Gk44GY44GL44KPLOOBmOOCheOCk+OBhOOBoQ0KK+OBn+OBquOBiyzjgojjgZfjgbXjgb8NCivjgb/jgarjgb8s44Go44KC44Gy44KNDQor44GV44Go44GGLOOCiOOBl+OBguOBjQ0KK+OBhuOBiuOBmuOBvyzjgYLjgY3jgokNCivjgZnjgY7jgoTjgb4s44Gy44KN44KG44GNDQor44Gh44GwLOOBvuOBleOChuOBjQ0KK+OBi+OBquOBhCzjgZXjgajjgZcNCivjgb7jgaTjgoTjgb4s44Gk44KI44GXDQor44Gf44GL44GuLOOBguOBjeOCiQ0KK+OBj+OBvuOBjOOBhCzjgZPjgYbjgYTjgaENCivjgZ/jgZHjgZPjgZcs44KA44Gk44Gy44GVDQor44G144Gf44GwLOOBqOOBl+OBguOBjQ0KK+OBhuOCgeOBluOBjSzjgYvjgZrjgZ/jgaANCivjgYrjgYTjgo/jgZEs44KI44GG44GZ44GRDQor44Gq44GM44Gk44GLLOOBvuOBquOBtg0KK+OBhOOBvuOBjOOCjyzjgbLjgajjgb8NCivjga/jgZfjgoLjgags44GC44GN44KJDQor44GK44GK44Gy44KJLOOChuOBhuOBn+OCjeOBhg0KK+OBv+OChOOBsuOCiSzjgb/jgaHjgYLjgY0NCivjga7jgZDjgaEs44GR44GE44Ge44GGDQor44GZ44GO44KC44GoLOOBi+OBmuOBteOBvw0KK+OBi+OCj+OBkOOBoSzjgYvjgaTjga7jgooNCivjgZfjga7jgZss44Gk44KI44GXDQor44Gq44KK44GV44KPLOOCiOOBl+OBsuOBqA0KK+OBsuOCjeOBmyzjgYLjgY3jgbLjgo0NCivjgavjgZfjgZbjgY0s44GZ44GZ44KADQor44KC44KKLOOBruOBtuOChuOBjQ0KK+OBteOBi+OBiizjgojjgZfjgZMNCivjgb/jgoTjgZjjgb4s44GR44GE44Ge44GGDQor44G+44Gk44GuLOOBi+OBmuOBl+OBkg0KK+OBhOOCj+OBhCzjgZfjgZLjga7jgbYNCivjgYvjgYQs44G/44Gp44KKDQor44Gf44Gq44GLLOOBj+OBq+OBkw0KK+OBoeOBsCzjgb7jgZXjgb8NCivjgZ3jga4s44Gy44KN44GXDQor44KI44GT44KE44G+LOOBguOBjeOBsuOBlQ0KK+OBn+OBi+OBl+OBvizjgZjjgoXjgpMNCivjgYrjgYvjgoLjgags44GT44GG44GYDQor44G/44KE44GL44KPLOOBoOOBhOOBmeOBkQ0KK+OCgOOCieOCguOBqCzjgajjgoLjgYLjgY0NCivjgY3jgoDjgoks44GT44GG44GE44GhDQor44G+44Gk44Gq44GMLOOChuOBv+OBkw0KK+OBteOBj+OBoCzjgaTjgajjgoANCivjgYrjgYrjgavjgZcs44G+44GV44GXDQor44GC44GELOOBsuOBp+OBi+OBmg0KK+OBvuOBiOOBoCzjgbLjgZXjgYvjgZoNCivjgYTjga7jgYbjgYgs44KI44GX44G/DQor44GE44GE44GgLOOBn+OBi+OBsuOBlQ0KK+OBteOBmOOBhCzjgbLjgo3jgobjgY0NCivjgZXjgY/jgonjgYQs44Gf44GP44KEDQor44G+44Gk44GELOOBhuOBhOOCig0KK+OBhOOBvuOBoCzjgZfjgpPjgZgNCivjgb/jgoTjgZEs44GC44Gk44GXDQor44GV44GL44GELOOBsuOCjeOBsuOBlQ0KK+OBi+OBqOOBhizjgYrjgZXjgoANCivjgYTjgo/jgZ8s44Gq44GK44GoDQor44GK44GK44GuLOOBvuOBleOChA0KK+OBhOOBneOBuSzjgZ/jgYvjgojjgZcNCivjgYrjgoTjgb7jgaAs44Gk44Go44KADQor44Go44GG44GY44G+LOOBn+OBpOOBsuOCjQ0KK+OBn+OBkeOBhuOBoSzjgYvjgZrjgbLjgZMNCivjgarjgYvjgoTjgb4s44G+44GZ44GKDQor44GX44KJ44GE44GXLOOBiuOBleOCgA0KK+OBi+OBruOBvuOBnyzjgYLjgaTjgZcNCivjgZnjganjgYYs44Gf44GL44Gy44KNDQor44GX44KJ44KE44G+LOOBguOBjeOBsuOCjQ0KK+OBiuOBiuOChCzjgb7jgZXjgosNCivjgb/jgarjgYzjgo8s44Go44KC44Gy44KNDQor44GN44KA44KJLOOBn+OBpOOChA0KK+OBn+OBi+OBjizjgaDjgYTjgZ4NCivjgZXjgajjgYYs44KG44GN44GKDQor44G144GY44KP44KJLOOBv+OBpOOCiw0KK+OBhOOCguOBqCzjgojjgYbjgZ8NCivjgYbjgYjjga4s44Go44KC44Gy44KNDQor44GN44KH44GG44GuLOOBkeOCk+OBlA0KK+OBjeOCiuOBhizjgojjgZfjgZ/jgaANCivjgY/jgbzjgZ8s44Gk44Gt44GKDQor44GT44Gb44GNLOOBn+OBi+OBlw0KK+OBmeOBluOBjSzjgb7jgZXjgbLjgo0NCivjgZ/jgYvjgZXjgY0s44KE44GZ44Gy44GVDQor44Gk44GL44KC44GoLOOBl+OCk+OBhOOBoQ0KK+OBquOBhOOBqOOBhizjgZHjgpPjgZgNCivjgarjgYvjgZTjgoEs44Gy44KN44GL44GaDQor44Gq44GL44KA44KJLOOBsuOBp+OChOOBmQ0KK+OBr+OBjuOCj+OCiSzjgYvjgaTjgb8NCivjgb7jgaTjgoLjgags44GL44KI44GTDQor44GT44KT44GuLOOCiOOBl+OBsuOBlQ0KK+OBleOBhOOBkOOBlSzjgZ/jgoLjgaQNCivjgbvjgpPjgaAs44KG44GN44GKDQor44Gf44Gq44GLLOOBsuOCjeOBlw0KK+OBvuOBpOOBqOOBvyzjgYvjgojjgZMNCivjgYLjgYvjgZXjgYss44Gy44KN44GC44GNDQor44Gb44KT44GM44KTLOOBguOBjeOBsuOBpw0KK+OBn+OBkeOBiizjga7jgorjgYvjgZoNCivjgoDjgonjgZ8s44Gy44KN44KG44GNDQor44GL44KP44GbLOOBqOOCguOBsuOCjQ0KK+OBq+OBl+OBluOBjSzjgZ/jgaTjgobjgY0NCivjgbjjgYTjgajjgYYs44GI44GE44GE44GhDQor44GK44GK44GV44KPLOOBvuOBleOBr+OCiw0KK+OBhuOBiOOBoCzjgojjgYbjgYTjgaENCivjgYvjgarjgoTjgb4s44KE44GZ44Gy44GTDQor44Gv44KJ44GgLOOBqOOCguOChuOBjQ0KK+OBquOBi+OBjOOCjyzjgYLjgaTjgZcNCivjgb/jgoTjgoLjgoos44G+44GT44GoDQor44GL44GELOOBkeOCk+OBmA0KK+OBjeOBkOOBoSzjgZfjgoXjgYbjgZgNCivjgZXjgZ/jgZEs44GR44KT44GYDQor44GK44GK44GK44GLLOOBqOOBl+OCjeOBhg0KK+OBquOBi+OBluOCjyzjgZPjgYbjgZgNCivjgoTjgZnjgYrjgYss44G+44GV44Gy44GnDQor44GP44KN44G/44GkLOOChOOBmeOBn+OBiw0KK+OBi+OBquOBoCzjgbLjgafjgY0NCivjgb7jgovjgYvjgo8s44Gy44Gn44GNDQor44Gq44GM44GV44KPLOOBn+OBkeOChuOBjQ0KK+OBk+OBsOOChOOBlyzjgZfjgoXjgYYNCivjgYjjgpPjgaks44G+44GV44Gu44KKDQor44GE44KT44Gq44G/LOOBr+OCi+OBig0KK+OChOOBvuOCguOBqCzjgY3jgojjgZ/jgYsNCivjgarjgYzjgY/jgoks44GV44Go44GXDQor44GG44GI44GuLOOBvuOBoeOBkw0KK+OBq+OBl+OBluOBiyzjgb/jgYsNCivjgZXjgajjgYYs44Gm44Gk44KN44GGDQor44KC44KK44KE44G+LOOBn+OBpOOBig0KK+OBk+OBr+OChOOBmyzjgZfjgZLjgYoNCivjganjgYTjgZ8s44Gy44KN44GXDQor44G744Gd44GL44KPLOOBruOBtuOBig0KK+OBguOBiuOBjSzjgb/jgaTjgYQNCivjgb7jgZnjgb/jgaAs44Go44KC44Gy44GTDQor44GK44GhLOOBvuOBleOBhOOBoQ0KK+OBmeOBmuOBjSzjgZHjgpPjgZgNCivjgZnjgY7jgoTjgb4s44GR44KT44GE44GhDQor44G144GY44KP44KJLOOBm+OBhOOChA0KK+OBn+OBquOBuSzjgb/jgaTjgobjgY0NCivjgajjgaAs44GC44Gk44GXDQor44Gk44G844GELOOChOOBmeOBig0KK+OBmeOBjuOBnyzjgb7jgZXjga7jgooNCivjgYLjgaDjgaEs44GR44GE44GfDQor44G144GY44GELOOBvuOBleOBjQ0KK+OBmeOBjOOCguOCiizjgbLjgo3jgZcNCivjgoTjgZnjgaAs44Gq44GK44Gy44GTDQor44Gf44GL44Gv44GXLOOBsuOCjeOChuOBjQ0KK+OBn+OBjOOBvyzjgb7jgZXjgosNCivjgajjgb/jgoTjgb4s44KG44GG44GYDQor44Gv44Gt44GgLOOChOOBmeOChuOBjQ0KK+OBiuOBluOBjSzjgZ/jgZHjgZcNCivjgYrjgZDjgoks44KE44GZ44KG44GNDQor44Gm44KJ44GV44GNLOOBruOBtuOChA0KK+OBpOOBoeOChCzjgYjjgaTjgZMNCivjgYrjgYvjgaAs44Gm44KL44GKDQor44GC44G5LOOBruOBtuOChuOBjQ0KK+OBguOBuSzjgb/jgaTjgYgNCivjgoLjgorjgo/jgY0s44GT44GG44GE44Gh44KN44GGDQor44Gv44KE44GuLOOBkeOCk+OBnw0KK+OBqOOBv+OBquOBjCzjgZjjgoXjgpMNCivjgZnjgZrjgY0s44G/44GNDQor44GL44Gf44GO44KKLOOBleOBqOOBlw0KK+OBguOBr+OCiSzjga/jgoTjgagNCivjgbvjgZcs44Gq44Gq44GTDQor44GE44GX44GL44KPLOOBn+OBpOOChA0KK+OBl+OCguOCgOOCiSzjgojjgZfjgbLjgZUNCivjgo/jgY3jgoLjgags44G/44KG44GNDQor44GL44KP44GmLOOBn+OBi+OBlw0KK+OBguOBtuOCieOBi+OCjyzjgYvjgZrjgYrjgb8NCivjgojjgZfjgZ/jgZEs44Gf44GL44GXDQor44GE44GX44GgLOOBvuOBleOChuOBjQ0KK+OBu+OCk+OBoCzjgajjgZfjgo3jgYYNCivjgZfjgZ/jgb4s44KI44GX44GKDQor44Gu44GQ44GhLOOBn+OBkeOBlw0KK+OBv+OBmuOBhCzjgYLjgoTjgYoNCivjgYLjgpPjganjgYYs44Gq44GK44G144G/DQor44KI44Gt44GX44G+LOOBquOBpOOBvw0KK+OBguOBjeOBnyzjgZjjgoXjgpPjgZMNCivjgYbjgYgs44GC44Gk44GXDQor44GZ44GOLOOBk+OBhuOBhOOBoQ0KK+OBquOBi+OBmOOBvizjgb7jgooNCivjgYvjgZXjgYrjgYss44Go44GX44Gy44GTDQor44Gu44GgLOOBpuOBpOOBteOBvw0KK+OBvuOBpOOBluOCjyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgo/jgZ/jgbks44Gf44Gk44GKDQor44GC44GE44GW44KPLOOBkeOBhOOBmOOCjeOBhg0KK+OBhOOCj+OBlSzjgZfjgpMNCivjgZPjgYws44GC44GN44Gy44GTDQor44Gy44GM44GX44Gf44GrLOOBsuOBp+OBteOBvw0KK+OBhOOBkeOBoCzjgajjgZfjgoQNCivjgYLjgY3jgarjgYss44KE44GZ44Gv44KLDQor44G144GY44GfLOOBi+OBmuOChA0KK+OChOOBvuOBiuOBiyzjgbLjgZXjgZ/jgYsNCivjgo/jgaEs44Gb44Gk44KEDQor44GG44GI44GuLOOBkeOCk+OBn+OCjeOBhg0KK+OBhuOBl+OBjSzjgYvjgZrjgYTjgaENCivjgoTjgb7jgoLjgags44Gv44KL44Gy44GTDQor44GL44Go44GGLOOBvuOBleOBqOOBlw0KK+OBquOBjOOBhCzjgZ/jgaDjgbLjgo0NCivjgbXjgY/jgaAs44GC44KE44GTDQor44Gq44GL44Gf44GrLOOBiOOBvw0KK+OBsuOCieOBleOCjyzjgarjgYzjgZMNCivjgb/jgoTjgZbjgY0s44G+44GV44KLDQor44Gm44KJ44GX44G+LOOCgOOBreOBi+OBmg0KK+OBguOCieOBhCzjgaHjgYwNCivjgZ/jgarjgYss44GX44KT44GE44GhDQor44GL44Gt44GTLOOBn+OBi+OBguOBjQ0KK+OBleOBqOOBhizjgabjgaTjgZgNCivjgarjgorjgZ8s44GX44KF44GG44GE44GhDQor44Gq44GM44GX44G+LOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OBleOBi+OBrizjgajjgZfjgYoNCivjgb/jgYbjgoks44GV44Go44GXDQor44KE44G+44GQ44GhLOOBkeOBhA0KK+OBiuOBp+OCiSzjgarjgYrjgajjgZcNCivjgYLjgbks44GC44Gk44GXDQor44GT44Gg44G+LOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgbLjgo3jgobjgY0NCivjgYrjgZfjgb4s44Go44GK44KLDQor44GE44GX44GaLOOBpOOBqOOCgA0KK+OBi+OCk+OBsOOChOOBlyzjgobjgY3jgYoNCivjgYrjgYrjgYvjgo8s44Gy44KN44KG44GNDQor44Gy44GI44GgLOOBn+OBkeOBsuOBkw0KK+OBhOOBruOBvuOBnyzjgbLjgo3jgb8NCivjgb7jgY3jgZ8s44Go44GX44KEDQor44GM44Gq44GvLOOBn+OBi+OChuOBjQ0KK+OBr+OChOOBi+OCjyzjgbLjgo3jgobjgY0NCivjgYLjgYvjgazjgb4s44Gm44Gk44KEDQor44KA44KN44GL44KPLOOBvuOBleOBruOCig0KK+OBiuOBrizjgZHjgYTjgZnjgZENCivjgY3jgoDjgoks44GX44KH44GG44GUDQor44Gv44Gf44GW44KPLOOChOOBmeOBkw0KK+OBteOBmOOBnyzjgb7jgZXjgY0NCivjgYbjgYjjgaAs44Gg44GE44GZ44GRDQor44KE44G+44Gu44GG44GhLOOBhOOBleOBig0KK+OBteOCi+OBnyzjgojjgZfjgbLjgo0NCivjgYrjgY/jgoTjgb4s44GR44KT44GE44Gh44KNDQor44GE44Go44GGLOOBteOBv+OBig0KK+OBiuOBleOBquOBhCzjgZvjgYTjgYTjgaENCivjgZPjgZ/jgass44Gf44GR44GXDQor44GK44GK44Gk44GLLOOBn+OBoOOBguOBjQ0KK+OBteOBj+OBl+OBvizjgZPjgZnjgZENCivjgYTjgYTjgZrjgYss44GR44KTDQor44KP44Gf44Gq44G5LOOBpuOCi+OBguOBjQ0KK+OCguOCiuOBnyzjgZHjgpPjgYTjgaHjgo0NCivjgYvjgajjgYYs44Gy44KN44GNDQor44G744KT44GgLOOBqOOBl+OBguOBjQ0KK+OBi+OBqOOBhizjgYLjgY3jga7jgooNCivjgYLjgZXjgazjgb4s44KE44GZ44Gy44KNDQor44GC44Ga44G+LOOBvuOBleOBig0KK+OBpuOCieOBleOCjyzjgb/jgaTjgYoNCivjgYLjgYvjgZcs44Gk44Gt44GKDQor44GL44Go44GGLOOBquOBiuOBqA0KK+OBiuOBruOBleOBqCzjgZ/jgYvjgZcNCivjgarjgYvjgoDjgoks44Gy44KN44Gk44GQDQor44Gu44KA44KJLOOBsuOBp+OBvw0KK+OBhOOBruOBhuOBiCzjgYjjgYTjgYTjgaENCivjga/jgoTjgZcs44GX44KT44GE44GhDQor44Gf44KA44KJLOOBjOOBjw0KK+OBleOBi+OBhCzjgZnjgYjjga7jgbYNCivjgZnjgY7jgoDjgoks44KK44KH44GGDQor44Go44G/44KE44G+LOOBkeOBhA0KK+OBi+OBjeOBluOCjyzjgajjgZfjgYLjgY0NCivjgavjgZfjgZ/jgass44GX44KH44GG44GE44Gh44KN44GGDQor44GC44GV44GP44KJLOOBl+OCk+OChA0KK+OBhOOBl+OBluOBjSzjgZXjgajjgZcNCivjgb7jgaTjgoLjgags44GX44KT44GE44Gh44KN44GGDQor44Gq44GM44GKLOOBqOOBl+OBig0KK+OBjeOBrizjgorjgYgNCivjgYLjgbks44Gf44GZ44GPDQor44GoLOOBk+OBhuOBmA0KK+OChOOBvuOBjSzjgZPjgYbjgYTjgaENCivjgYLjgonjgYQs44GS44KTDQor44KE44G+44GgLOOBkeOBhOOBmA0KK+OBiuOBj+OCgOOCiSzjgYvjgZrjgYgNCivjga/jgoks44GX44KH44GG44Gf44KN44GGDQor44KE44G+44KC44GoLOOBi+OBpOOBsuOBlQ0KK+OBquOBi+OCgOOCiSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgYLjgonjgYQs44GL44Ga44KEDQor44GE44GR44GpLOOBvuOBleOBn+OBiw0KK+OBhOOBqOOBhizjgZHjgYTjgZgNCivjgYTjgajjgYYs44KG44GG44GYDQor44GG44KK44KF44GGLOOBguOBjeOCiQ0KK+OBhuOBoeOChOOBvizjgZ/jgaDjgZcNCivjgYjjga7jgoLjgags44Gy44KN44G/44GhDQor44GI44Ga44KJLOOBqOOBiuOCiw0KK+OBiuOBiuOBpOOBiyzjgZHjgYTjgZnjgZENCivjgYjjgavjgoMs44GZ44GZ44KADQor44GC44GL44GKLOOBkeOBhOOBmeOBkQ0KK+OBiuOBiuOBq+OBlyzjgZfjgofjgYbjgZgNCivjgYvjgYzjgoQs44GE44Gq44KTDQor44GL44G+44GfLOOBn+OBi+OBsuOCjQ0KK+OBi+OCj+OBi+OBvyzjga7jgbbjgbLjgZUNCivjgZXjgZXjgY0s44KE44GZ44KI44GXDQor44Gf44GL44Gv44GXLOOBquOBiuOBsuOBkw0KK+OBn+OBoCzjgZPjgYbjgYTjgaENCivjgavjgZfjga4s44G+44GV44KI44GXDQor44GC44GV44GKLOOBquOBiuOBjQ0KK+OBr+OBl+OCguOBqCzjgarjgYrjgY0NCivjga/jgaPjgajjgoos44Gf44GL44GTDQor44G744GXLOOBn+OBig0KK+OBu+OCiuOBnyzjgZfjgpPjgYTjgaENCivjgb7jgYjjgZ7jga4s44Gq44KL44Gy44GnDQor44G+44GI44GY44G+LOOBv+OBruOCiw0KK+OBv+OChOOBluOBjSzjgobjgb/jgZMNCivjgYLjgonjgYQs44KI44GX44G/DQor44KC44KKLOOBk+OBmeOBkQ0KK+OBvuOBiOOBoCzjgbLjgo3jgZcNCivjgYrjgaEs44GR44KTDQor44GC44GV44GP44KJLOOBruOCiuOBig0KK+OBhuOBleOBvyzjgYLjgaTjgZcNCivjgYrjgY/jgoTjgb4s44Gf44GL44GXDQor44GL44KK44KELOOBn+OBi+OBsuOBkw0KK+OBhuOBiOOBoCzjgbLjgafjgobjgY0NCivjgYrjgZ/jgbks44GR44GE44Ge44GGDQor44GN44KA44KJLOOBhOOBleOCgA0KK+OBj+OBl+OBoCzjgojjgZfjga/jgosNCivjgYLjgb7jga8s44GT44GG44GYDQor44GT44KT44GpLOOCiOOBl+OBjQ0KK+OBl+OBv+OBmizjgZfjgofjgYbjgYTjgaHjgo3jgYYNCivjgZnjgZrjgY0s44GX44KF44GG44GT44GGDQor44GZ44KTLOOBmeOBv+OBig0KK+OBn+OBqeOBk+OCjSzjgbLjgajjgZcNCivjgajjga3jgZXjgY8s44GE44GV44KADQor44Gq44GL44KA44KJLOOBsuOCjeOBlw0KK+OBvuOBmeOBoCzjgbLjgo3jgYoNCivjgb/jgoTjgZbjgY0s44G/44Gv44KLDQor44KI44GX44Gq44GMLOOBguOBjeOBsuOBlQ0KK+OCiOOBk+OBi+OCjyzjgZ/jgY/jgb4NCivjgaTjgaHjgoQs44G+44KG44G/DQor44Gf44GL44Gv44GXLOOBvuOBleOBruOCig0KK+OBn+OBquOBuSzjgb7jgZXjgZgNCivjgYTjgajjgYYs44GR44GE44GZ44GRDQor44Gq44GM44GKLOOBl+OCk+OBhOOBoQ0KK+OBleOBqOOBhizjgZ/jgZHjgZcNCivjgZ/jgaAs44Go44KC44Gy44KNDQor44GC44GN44KC44GoLOOBl+OCheOCk+OBmeOBkQ0KK+OBn+OCgOOCiSzjgb7jgoLjgosNCivjgZ/jgoDjgoks44GL44Ga44KG44GNDQor44GK44GLLOOBv+OBoeOBr+OCiw0KK+OBleOBj+OCieOBjizjgZHjgpPjgYTjgaENCivjgZnjgZrjgY0s44Gy44KN44GXDQor44KC44KK44GK44GLLOOBn+OBoOOBlw0KK+OChOOBkOOBoSzjgobjgYbjgZcNCivjgb/jgoTjgoLjgags44GV44Go44GXDQor44GX44KJ44GL44KPLOOBsuOBp+OBjQ0KK+OBiuOBiuOBpOOBiyzjgbLjgafjgY0NCivjgoTjgb7jgoLjgags44Go44KC44KE44GZDQor44Gq44GL44G+44GhLOOChOOBmeOBteOBvw0KK+OCj+OBi+OBr+OCiSzjgoTjgZnjgYoNCivjgYLjgY0s44Gf44GL44GXDQor44Gf44GN44GfLOOBi+OBmuOBsuOCjQ0KK+OBguOCieOBi+OCjyzjgZHjgYTjgYTjgaENCivjgb7jgaTjgYos44GT44GG44GYDQor44Gh44KH44GGLOOChuOBhuOBhOOBoQ0KK+OBj+OCjeOBoCzjgZfjgZLjgosNCivjgoTjgb7jgZfjgZ8s44Gf44KN44GGDQor44Go44KC44GK44GLLOOBiOOBv+OBkw0KK+OBquOBi+OBiizjgo/jgZ/jgosNCivjgYLjgZ0s44Gm44KL44GL44GaDQor44G144GP44GgLOOBruOBtuOBn+OBiw0KK+OBguOBiuOBjSzjgbLjgajjgZcNCivjgY/jgoss44Gy44GV44GoDQor44KA44KJ44GL44G/LOOChOOBmeOBsuOCjQ0KK+OBj+OCjeOBoCzjgZ/jgY/jgoQNCivjgb/jgYvjgb8s44GC44GN44Gy44KNDQor44GL44G/44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBjeOBn+OBmOOBvizjgarjgYrjgY0NCivjgb7jgovjgoTjgb4s44KI44GX44Gy44GVDQor44GV44Gf44GRLOOBkeOCk+OBhOOBoQ0KK+OCguOBpuOBjSzjgZ/jgZHjgZcNCivjgajjgb/jgZ8s44G144GNDQor44Gr44KPLOOBteOBv+OBkw0KK+OBn+OBi+OBsOOBn+OBkSzjgZfjgZLjga7jgooNCivjgYLjgZrjgb4s44G+44GV44KLDQor44G144KL44KELOOBleOBoeOBkw0KK+OBquOBmSzjgojjgZfjgbLjgo0NCivjgZPjgoos44G+44KKDQor44GE44GR44GgLOOBvuOBleOBsuOCjQ0KK+OBlOOBqOOBhizjgZPjgYbjgZgNCivjgbXjgY/jgaAs44Gy44KN44KG44GNDQor44GZ44GM44Gv44KJLOOBmOOCheOCk+OBmA0KK+OBjeOCgOOCiSzjgajjgZfjgbLjgZMNCivjgZ/jgYvjgZss44G+44KKDQor44Gr44GX44GK44GLLOOCiuOCh+OBhg0KK+OBteOCi+OBi+OCjyzjgabjgaTjgYoNCivjgY/jganjgYYs44GR44KT44GE44GhDQor44Gf44GL44Gv44GXLOOBkeOCk+OBqA0KK+OChOOBvuOCguOBqCzjgojjgZfjgbLjgo0NCivjgb/jgoTjgoLjgags44KK44KH44GG44G444GEDQor44Gu44GfLOOChuOBjeOBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgZfjga7jgbYNCivjgYLjgY3jgbAs44G/44KEDQor44GE44KP44GNLOOBvuOBk+OBqA0KK+OBi+OBqOOBhizjgZfjgbsNCivjgoLjgorjgoLjgags44G+44GV44GL44GaDQor44Gq44GL44KA44KJLOOBi+OBmuOBqOOBlw0KK+OBquOBi+OChOOBvizjgYvjgZrjgoQNCivjgYrjgYrjgZ/jgass44GX44GS44Gy44KNDQor44GZ44GO44KE44G+LOOBv+OBruOCiw0KK+OBmeOCkyzjgajjgojjgobjgY0NCivjgoTjgb7jgoLjgags44Gy44KN44GXDQor44G744KT44GpLOOChuOBn+OBiw0KK+OBr+OBjCzjgYvjgY/jgZgNCivjgZfjgYrjgZbjgY0s44GL44Ga44Gy44GTDQor44G144GY44GuLOOBv+OBruOCiw0KK+OBiuOBrizjgZHjgpPjgZgNCivjgYLjgpPjganjgYYs44KI44GX44GKDQor44KE44G+44GQ44GhLOOBqOOBl+OBguOBjQ0KK+OBj+OCjeOBoCzjgZ/jgYvjgZcNCivjgYbjga4s44KK44KH44GG44GE44GhDQor44GE44Go44GG44Gf44GrLOOBn+OBkeOBsuOBkw0KK+OBiuOBiyzjgYjjgaTjgb8NCivjgb/jgYbjgoks44Gu44G244KG44GNDQor44Gv44GX44KC44GoLOOBi+OBqg0KK+OBiOOCguOBqCzjgb7jgZPjgagNCivjgZPjgYws44Gy44KN44GXDQor44GN44Gv44KJLOOBsuOCjeOBlw0KK+OBvuOBpOOBoCzjgbXjgb/jgZ/jgaANCivjgoTjgb7jgaAs44GC44GN44GTDQor44Gf44GL44Gv44GXLOOCiOOBhuOBhOOBoQ0KK+OChOOBr+OBnyzjgbLjgafjgYoNCivjgZ/jgZbjgY0s44GR44GE44GfDQor44KE44G+44KC44GoLOOCiuOCheOBhuOBhOOBoQ0KK+OBn+OBi+OBoCzjgbLjgo3jgb8NCivjga7jgaAs44G+44GV44Gk44GQDQor44GV44GE44G/44KH44GGLOOBi+OBiuOCiw0KK+OBk+OBsOOChOOBlyzjgYLjgonjgZ8NCivjgbXjgZjjgY0s44GR44KT44GYDQor44GX44KJ44GV44GLLOOBteOBv+OBig0KK+OBn+OBi+OBr+OBlyzjgajjgYrjgosNCivjgoTjgaQs44GC44Gk44GKDQor44GG44GK44Gf44GrLOOBteOBv+OBsuOBkw0KK+OBn+OCgOOCiSzjgajjgZfjgbLjgZMNCivjgb7jgaTjgYos44GV44Go44GXDQor44Gq44GL44GW44KPLOOBn+OBj+OChA0KK+OBjeOBoCzjgobjgY3jgZMNCivjgZ/jgpPjgZIs44Gm44Gk44KN44GGDQor44Gy44KN44GbLOOBmeOBmeOCgA0KK+OBvuOBpOOBl+OBvizjgb/jgaHjgoQNCivjgYrjgYvjga4s44GV44Go44KLDQor44GC44GK44GNLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBr+OBm+OBjOOCjyzjgorjgoXjgYbjgZgNCivjgavjgZfjgbvjgoos44Gh44GL44KJDQor44GE44GX44Ga44GLLOOBn+OBi+OChA0KK+OBpOOBvOOBhCzjgbLjgafjgobjgY0NCivjgYTjgZfjgaAs44G+44GV44KLDQor44Gv44GX44KC44GoLOOBleOBqOOCiw0KK+OBlOOBqOOBhizjgZfjgpPjgZgNCivjgYLjgY3jgoTjgb4s44Gy44KN44GNDQor44G/44Gk44Gv44GXLOOBl+OBkuOCiw0KK+OBlOOBl+OBvizjgYvjgZrjgYoNCivjgbXjgY/jgaAs44Gy44KN44GXDQor44KE44G+44GX44GfLOOBquOBiuOBteOBvw0KK+OBquOBi+OBluOCjyzjgbLjgZXjgZcNCivjgavjgZfjgYvjgo8s44Gy44Go44GXDQor44GE44GR44GG44GhLOOBi+OBmuOChuOBjQ0KK+OBn+OBjOOBvyzjgZ/jgYvjgYoNCivjgYvjgo/jgY3jgZ8s44GR44KT44GY44KN44GGDQor44Gq44GL44KA44KJLOOBjOOBjw0KK+OBk+OBvuOBhCzjgZPjgZnjgZENCivjgbvjgZfjgoQs44GC44KG44KADQor44GZ44G/44GoLOOBvuOBleOBteOBvw0KK+OBu+OBl+OBrizjgYvjgZrjgYoNCivjgarjgYvjgoQs44GX44KT44GE44GhDQor44Gv44KJLOOBv+OBmuOBuw0KK+OCgOOCjeOChOOBvizjgYvjgZrjgbLjgZMNCivjgoLjgoos44Gy44Gn44GNDQor44GX44KJ44GE44GXLOOBvuOBleOBsuOCjQ0KK+OBsuOCieOBrizjgZPjgYbjgZgNCivjga/jgZfjgoLjgags44KG44GG44GTDQor44GC44G5LOOBmOOCheOCk+OBmA0KK+OBhOOBl+OBi+OCjyzjgYLjgorjgYvjgaQNCivjgYLjgZrjgb4s44KI44GX44G/DQor44GK44GK44Gk44GLLOOBruOBtuOBig0KK+OBhOOBqOOBhizjgZHjgYQNCivjgYrjgZfjgb4s44Gh44GL44GKDQor44GT44GW44GELOOBjeOCiOOBsuOCjQ0KK+OBi+OCj+OBi+OBvyzjgb7jgZXjgajjgZcNCivjgarjgYvjga4s44KA44Gt44Gy44GTDQor44GG44GY44KC44GoLOOBvuOBleOBsuOBkw0KK+OBjeOBl+OBoCzjgbLjgajjgZcNCivjgZPjgYTjgZrjgb8s44Gu44KK44GTDQor44Gq44GE44Go44GGLOOBqOOBl+OBsuOCjQ0KK+OCiOOBl+OBmuOBvyzjgojjgZfjgY0NCivjgZnjgY7jgoLjgoos44Go44GX44Gy44KNDQor44GC44GK44GNLOOBqOOCguOBr+OCiw0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgYTjgaENCivjgYTjgYws44Gu44KK44GL44GtDQor44GL44KP44Gw44GfLOOBruOBnuOBvw0KK+OBl+OBsOOBnyzjgbLjgo3jgbLjgacNCivjgaDjgpMs44G+44Gq44G/DQor44Gf44GQ44GhLOOBi+OBmuOBsuOCjQ0KK+OBvuOBoeOBoCzjgajjgoLjgYoNCivjgYLjgZfjgaAs44KG44GG44GTDQor44GC44KT44Gp44GGLOOBpuOBhOOBmA0KK+OCgOOBqOOBhizjgYvjgaTjga7jgooNCivjgZPjgoTjgb4s44GN44KI44GoDQor44GZ44Ga44GNLOOBkeOBhOOBhOOBoQ0KK+OBruOCgOOCiSzjgZjjgoXjgpMNCivjgYTjgajjgoQs44G+44GV44Go44GXDQor44Gh44GL44GK44GLLOOBpOOBqOOCgA0KK+OBmOOCk+OBtizjgb/jgaHjgoTjgZkNCivjgYLjgaDjgaEs44G+44GV44GXDQor44GL44KP44GELOOChOOBmeOBlw0KK+OBv+OBruOCjyzjgZPjgYbjgYTjgaENCivjgYLjgZXjgbIs44Go44GX44GC44GNDQor44GK44GK44GfLOOCiOOBl+OBguOBjQ0KK+OBn+OBquOBiyzjgY3jgojjgZcNCivjgY3jgoks44G+44GV44GXDQor44KE44G+44GW44GNLOOBv+OBiw0KK+OChOOBvuOBhuOBoSzjgb/jgaTjgosNCivjgbvjgaPjgZ8s44KI44GX44Gu44KKDQor44GC44KJ44GL44KPLOOBl+OBkuOBig0KK+OBiuOBj+OCgOOCiSzjgZjjgoXjgpMNCivjgYvjga3jgZMs44GE44Gf44KLDQor44GC44KE44GuLOOBk+OBhuOBjQ0KK+OBr+OChOOBi+OCjyzjgajjgoLjgarjgooNCivjgYTjgajjgYYs44G+44GV44Gy44GTDQor44GK44GP44KA44KJLOOBsuOBleOBruOCig0KK+OBn+OCk+OBluOCjyzjgZ/jgaTjgYoNCivjgZXjgY3jga4s44KI44GX44Gy44KNDQor44GL44KP44Gv44KJLOOBqOOBiuOCiw0KK+OBn+OCi+OBhCzjgojjgZfjgYoNCivjgYLjgorjgoLjgags44GC44Gk44GXDQor44GI44Gz44GTLOOBqOOCguOBquOCig0KK+OBsuOBrizjgYvjgaTjgoQNCivjgoTjgb7jgaAs44GX44KH44GG44KI44GGDQor44GK44GK44GuLOOBj+OBvw0KK+OBn+OBkeOBl+OBnyzjgobjgorjgZMNCivjga/jgoTjgZcs44GN44KH44GG44GTDQor44GE44GX44GgLOOBkeOCkw0KK+OBl+OBiuOChCzjgZ/jgZHjgZcNCivjgYLjgpPjganjgYYs44Gu44G844KLDQor44G+44Gk44Gw44KJLOOBvuOBleOBteOBvw0KK+OBq+OBl+OBoCzjgb7jgZXjgosNCivjgarjgYvjgoDjgoks44G+44GV44Gu44KKDQor44GE44GR44GgLOOBmOOCheOCkw0KK+OBr+OChOOBvyzjgbLjgafjgYoNCivjgZnjgZrjgY0s44GX44KH44GG44Ge44GGDQor44GK44GM44KPLOOBguOBjeOCiQ0KK+OBhOOBl+OBi+OCjyzjgajjgZfjgYLjgY0NCivjgYLjgZXjgb8s44GR44KT44GYDQor44Gv44Gf44GR44KE44G+LOOBn+OBi+OBlw0KK+OBu+OCiuOBv+OBnizjgZHjgYTjgZnjgZENCivjgb7jgovjgZ/jgass44Gh44Gy44KNDQor44GV44Go44GGLOOBguOBjeOBig0KK+OBleOBi+OBquOBiyzjgYvjgZrjgYoNCivjgarjgYvjgoDjgoks44Go44KC44Gy44GTDQor44GE44Go44GGLOOBi+OBiuOCiw0KK+OBteOCi+OBquOBjCzjga/jgovjgbLjgZMNCivjgbXjgY/jgZfjgb4s44G+44GV44GoDQor44G/44Ga44GM44G/LOOCiOOBl+OChuOBjQ0KK+OBn+OBkeOBhuOBoSzjgb/jgaHjgYoNCivjgajjgorjgYbjgb8s44G/44Gu44KLDQor44Gt44GO44GXLOOBl+OBkuOBjQ0KK+OBk+OChOOBvizjgYLjgY3jga7jgooNCivjgYrjgZfjgb4s44Gq44GZ44GKDQor44GL44Gf44GK44GLLOOBn+OBi+OBlw0KK+OBn+OBjeOBkOOBoSzjgbLjgafjgbXjgb8NCivjgZPjgb7jgaQs44GL44Ga44GKDQor44KE44GOLOOBn+OBi+OBlw0KK+OBn+OBi+OBjizjgojjgZfjgYoNCivjgb7jgZnjgYQs44Gm44Gk44KN44GGDQor44Gv44KE44GXLOOBsuOBqOOBlw0KK+OBguOBreOBn+OBhCzjgb7jgZXjgobjgY0NCivjgY3jga/jgoks44GR44KT44GE44GhDQor44GV44GE44Go44GGLOOBl+OBkuOBig0KK+OBjeOBn+OCj+OBjSzjgb/jgaHjgbLjgZMNCivjga7jgZDjgaEs44Gy44KN44G/44GhDQor44GV44GL44GQ44GhLOOCguOBqOOBhA0KK+OBq+OBlyzjgobjgY3jgb/jgaQNCivjgYTjgZHjgaAs44Gm44Gk44GKDQor44GV44Go44GGLOOBn+OBi+OBlw0KK+OBhOOBvuOBhCzjgb7jgZXjgbLjgagNCivjgoTjgb7jgaAs44GX44GS44GE44GPDQor44Gf44Gq44GLLOOChOOBmeOBsuOBlQ0KK+OBiuOBiuOBleOBkyzjgb7jgZPjgagNCivjgZPjgoDjgo0s44GL44Gq44KBDQor44GV44GE44Go44GGLOOBsuOBp+OBjQ0KK+OBmeOBmuOBjSzjgZHjgpPjgYTjgaENCivjgbXjgarjgajjgYzjgo8s44KG44GL44KKDQor44GE44GX44GELOOBpuOCi+OBguOBjQ0KK+OBvuOBpOOBhCzjga7jgbzjgosNCivjgZnjgYjjgbLjgoks44Gy44Go44GXDQor44Gy44KN44Gf44GrLOOCiOOBl+OBig0KK+OBsuOBjOOBlyzjgY3jgojjgZcNCivjgYTjgoDjgoks44GC44Gk44GTDQor44GC44G5LOOChOOBmeOBruOCig0KK+OCiOOBreOBj+OCiSzjga7jgbbjgajjgZcNCivjgo/jgZ/jgarjgbks44KI44GX44G/44GkDQor44GZ44GMLOOBsuOCjeOBlw0KK+OBleOBrizjgbLjgo3jgZcNCivjgZfjgbAs44Go44KC44GYDQor44KE44G+44GQ44GhLOOBl+OCheOCk+OBmA0KK+OBjeOBluOCjyzjgojjgZfjgbLjgo0NCivjgYvjgZXjgb7jgY0s44KI44GX44KN44GGDQor44GN44KA44KJLOOBkeOBhOOBmeOBkQ0KK+OBpOOCi+OBvyzjgYLjgY3jgbLjgZUNCivjgYLjgYrjgY0s44GX44KH44GG44GTDQor44GE44GX44GgLOOCguOBqOOBlw0KK+OCguOCjSzjgYLjgY3jgYoNCivjgYrjgY/jgoDjgoks44Gy44KN44KG44GNDQor44Gf44GL44GOLOOBk+OBhuOBmA0KK+OBhOOBkeOChCzjgb/jgaHjgYoNCivjgajjgb/jgoTjgb4s44GL44Ga44G/44GkDQor44KE44GOLOOBn+OBi+OBig0KK+OBqOOBv+OBjSzjgabjgaTjgo3jgYYNCivjgajjga7jgoDjgoks44G/44Gu44KLDQor44KE44Gk44Ga44GLLOOBqOOBl+OBsuOCjQ0KK+OBtuOBvizjgZHjgpPjgZfjgofjgYYNCivjgarjgYvjgZbjgo8s44G144G/44Go44KCDQor44KE44G+44GW44GNLOOCiOOBhuOBkw0KK+OBvuOBpOOBl+OBnyzjgZfjga7jgbYNCivjgYTjgaAs44GX44KTDQor44GZ44Ga44GNLOOCiOOBl+OBsuOCjQ0KK+OBquOBi+OBrizjgoTjgZnjgbLjgo0NCivjgYvjgo/jgZDjgaEs44G+44GV44GKDQor44Gf44GL44Gv44GXLOOBpOOBqOOCgA0KK+OBhOOBl+OBoCzjgZfjgofjgYbjgYTjgaHjgo3jgYYNCivjgYbjgaAs44GV44Go44KLDQor44G144GY44KP44KJLOOCiuOCheOBhuOBmA0KK+OBk+OBhOOBpyzjgajjgZfjgZ/jgZENCivjgaTjgYvjgaAs44G444GE44Gv44GhDQor44Gy44KJ44KE44G+LOOBsuOCjeOBlw0KK+OBhuOBoeOBqOOBvyzjgYLjgY3jgokNCivjgYTjgb7jga/jgoks44Gy44KN44KI44GXDQor44GG44GI44GgLOOBsuOBqOOBlw0KK+OBleOBleOBi+OCjyzjgojjgZfjgbLjgo0NCivjgYLjgYTjgYvjgo8s44Gf44GL44GC44GNDQor44GG44GI44GNLOOBn+OBi+OCiOOBlw0KK+OBquOBi+OChOOBvizjgojjgZfjgb8NCivjgYrjgYrjgZXjgo8s44KI44GX44GL44GaDQor44Gf44GL44GK44GLLOOBqOOBl+OChuOBjQ0KK+OCj+OBoCzjgaTjgY7jgYoNCivjgYTjgazjgZrjgYss44GP44Gr44Gy44GVDQor44Gf44Gq44GLLOOBk+OBhuOBjeOBoQ0KK+OBn+OBkeOBoCzjgY3jgojjgZ/jgYsNCivjgoTjgb7jgaAs44Gu44G844KLDQor44KE44Gq44GOLOOBsuOBp+OBsuOCjQ0KK+OBn+OBkeOBl+OBnyzjgojjgZfjgZ/jgZENCivjgavjgZcs44Gf44Gk44Gy44GTDQor44GK44GK44Gf44GRLOOChuOBhuOBhOOBoQ0KK+OBq+OBn+OBquOBhCzjgZfjgZLjgYoNCivjgbvjgpPjgb4s44Gu44G244Gy44GTDQor44Gq44GL44GuLOOCiOOBl+OBruOCig0KK+OBv+OChOOBl+OBnyzjgbLjgafjgY0NCivjgYbjgYjjga4s44GY44KF44KT44GY44KN44GGDQor44Gw44GwLOOBleOBoOOCgA0KK+OBv+OChOOBluOBjSzjgb7jgZXjgYoNCivjgY/jgavjgYQs44Gk44Go44KADQor44GT44Gw44KE44GXLOOBkeOBhOOBmA0KK+OBvuOBmeOBoCzjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44GT44GG44GYDQor44Gk44GL44GKLOOBsuOCjeOBjQ0KK+OBi+OCj+OCgOOCiSzjgZ/jgYvjgobjgY0NCivjgYvjgo/jgbDjgZ8s44GT44GG44Ge44GGDQor44GC44GL44GV44GLLOOBmOOCheOCk+OBkw0KK+OBhOOBhOOBoCzjgabjgaTjgoQNCivjgZfjgonjga/jgb4s44Gf44Gg44GXDQor44Go44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBhOOBqOOBhizjgbLjgafjgYTjgaENCivjgYrjgYvjgbks44G+44GV44GXDQor44KP44Gf44Gq44G5LOOBsuOCjeOBig0KK+OBleOBi+OBsCzjgajjgZfjgbLjgo0NCivjgbLjgo3jgZXjgo8s44Gy44Go44GXDQor44Gq44GL44KA44KJLOOBl+OBkuOCiw0KK+OChOOBmeOBhCzjgZXjgajjgZcNCivjgbLjgonjgZ8s44GL44Ga44Gy44GVDQor44GN44Gf44GM44KPLOOBl+OCk+OBhOOBoQ0KK+OBguOBvuOBrizjgabjgaTjgoQNCivjgaTjgZjjgoDjgoks44GI44Gk44KN44GGDQor44GL44KP44GV44GNLOOBk+OBhuOBhOOBoQ0KK+OBhuOBiOOCgOOCiSzjgZ/jgZHjgZcNCivjgoDjgonjgYvjgb8s44GX44GS44GqDQor44GE44Gu44GG44GILOOBjeOCiOOBlw0KK+OBr+OBnCzjgZHjgpMNCivjgajjgZfjgbLjgo0s44GN44G/44Gy44KNDQor44GT44Gw44KE44GXLOOBl+OBkuOChuOBjQ0KK+OBhOOBrizjgZ/jgaDjga7jgooNCivjgYLjgZXjga4s44KG44GG44GE44GhDQor44KC44KKLOOBk+OBhuOBmA0KK+OBhOOBquOBluOCjyzjgZPjgYbjgojjgYYNCivjgZPjgbDjgoTjgZcs44Gm44KL44Gy44KNDQor44GV44GL44GNLOOCiOOBl+OBsuOBkw0KK+OBhuOBoeOChOOBvizjgZvjgYTjgZgNCivjgb7jgarjgbks44KE44GZ44GNDQor44GK44GK44KE44G+LOOBkeOCk+OBmA0KK+OBl+OBv+OBmizjgb7jgZXjgbLjgZMNCivjgojjga3jgoDjgoks44Gy44KN44KG44GNDQor44Gw44KJ44GgLOOBguOBjeOBsuOBkw0KK+OBteOCi+OBnuOBrizjgojjgZfjgYvjgZoNCivjgbXjgZjjgoLjgags44GL44Ga44GC44GNDQor44GV44GuLOOBvuOCguOCiw0KK+OBi+OCj+OBrizjgYjjgYTjgZMNCivjgbvjgZfjgYvjgo8s44GT44GG44GYDQor44GV44GV44KC44GoLOOCguOBqOOBpOOBkA0KK+OBmeOBqeOBhizjgb7jgZXjgagNCivjgZXjgajjgYYs44Gf44GL44GKDQor44Gv44KE44GXLOOBsuOCjeOBlw0KK+OBsOOBsCzjgbLjgafjga7jgooNCivjgbDjgbAs44Gy44Go44GXDQor44GK44GK44KE44GtLOOBsuOBp+OBig0KK+OBquOBjOOBleOCjyzjgoTjgZnjgobjgY0NCivjgZXjgYvjgoLjgags44G+44GV44Gv44KLDQor44GC44GK44GNLOOBm+OBhOOBmA0KK+OCgOOBquOBi+OBnyzjgb7jgZXjga/jgosNCivjgYTjgajjgYYs44GX44KT44GE44GhDQor44GL44KP44Gw44GfLOOBsuOCjeOChuOBjQ0KK+OBmeOBjuOCguOBqCzjgb/jgaHjgYoNCivjgbDjgpPjganjgYYs44GY44KF44KTDQor44Gu44KA44KJLOOBguOBjeOBsuOBkw0KK+OBk+OCk+OBrizjgojjgZfjgb/jgaENCivjgYvjgo/jgYQs44GL44Ga44Gu44KKDQor44GG44GI44GuLOOBruOBtuOChuOBjQ0KK+OBr+OCieOBoCzjgbLjgo3jgZcNCivjgYvjga7jgYYs44GC44GN44KJDQor44GK44GK44Gv44GfLOOBv+OBjeOBig0KK+OBmeOBqeOBhizjgZ/jgYvjgZcNCivjgb7jgaTjgaAs44Gy44Go44GXDQor44GE44GR44GM44G/LOOBvuOBk+OBqA0KK+OBl+OCieOBhCzjgZHjgpPjgZfjgpMNCivjgZXjgajjgYYs44Gf44GL44GC44GNDQor44GV44GL44GELOOBn+OBkeOBlw0KK+OBiuOBjSzjgajjgZfjgobjgY0NCivjgYvjgo/jgoDjgoks44GR44KT44GYDQor44KE44G+44GgLOOBsuOCjeOBig0KK+OBhOOBqOOBhizjgYLjgY3jgbLjgZUNCivjgYTjgYvjgb8s44Gv44KL44GKDQor44GC44Ga44G+44GKLOOBsuOBp+OBqA0KK+OBteOBmOOCgOOCiSzjgajjgYrjgosNCivjgY3jgZ/jgoDjgoks44KG44GG44GYDQor44Go44GM44G/LOOBqOOBl+OBvw0KK+OBk+OBmeOBkizjgb7jgZXjgYoNCivjgZvjgY0s44Gy44KN44KG44GNDQor44GL44KP44GX44G+LOOBqOOCguOChuOBjQ0KK+OBn+OBi+OBhCzjgobjgYbjgZQNCivjgYLjgY3jgoTjgb4s44KG44GN44GKDQor44GZ44Ga44GNLOOBqOOBl+OBteOBvw0KK+OBquOBi+OCgOOCiSzjgZfjgoXjgYbjgYTjgaENCivjgavjgZfjga4s44Gf44GL44KG44GNDQor44G/44KE44GRLOOBn+OBi+OBsuOCjQ0KK+OCiOOBreOCguOBoSzjgoLjgajjgZgNCivjgZ/jgYvjgZfjgb4s44GX44GS44GKDQor44GV44GL44GELOOBqOOBl+OBruOCig0KK+OBiuOBiuOBpOOBjSzjgYLjgY3jgajjgZcNCivjgYvjgo/jgZXjgY0s44G/44GNDQor44Gr44GX44GL44KPLOOBn+OBjeOBig0KK+OBleOBj+OCieOBhCzjgZHjgpPjgZgNCivjgZnjgY4s44Gy44Gn44GC44GNDQor44G744KK44GT44GXLOOBqOOBiuOCiw0KK+OCguOCiizjgYvjgaTjgoQNCivjga/jgZHjgaAs44Gf44GL44GXDQor44Gr44GE44GgLOOBl+OCk+OBhOOBoQ0KK+OBjeOBj+OBn+OBqyzjgZXjgajjgZcNCivjgZ/jgZHjga7jgZfjgZ8s44GX44KF44GG44G444GEDQor44Gf44GL44Gv44GXLOOBsuOCjeOBvw0KK+OBn+OBquOBuSzjgb7jgZXjgZMNCivjgYTjgZHjgoLjgags44Gu44KK44GTDQor44G+44Gk44KE44G+LOOChuOBjeOBkw0KK+OCiOOBl+OBluOCjyzjgojjgZfjgbLjgZUNCivjgYLjgYvjgYQs44G/44Gu44KLDQor44Gr44GX44GK44GLLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBn+OBkeOCguOBqCzjga7jgbbjgYoNCivjgajjgY/jgaAs44KI44GX44GKDQor44GK44GK44KC44KKLOOChOOBmeOBsuOCjQ0KK+OBi+OBqOOBhizjgZ/jgaTjgZcNCivjgYvjgo/jgags44G144G/44GKDQor44G+44GI44GgLOOBneOBhuOBhOOBoQ0KK+OBj+OCjeOBjSzjgb7jgZXjgojjgZcNCivjgYTjgYTjgaAs44GP44G/44GTDQor44GT44KE44Gq44GOLOOBr+OBmOOCgQ0KK+OBvuOBpOOBquOBjCzjgYLjgaTjgZcNCivjgYTjgajjgYYs44KE44GZ44GC44GNDQor44KE44G+44KC44GoLOOBn+OBpOOBig0KK+OBpOOBpOOBhCzjgajjgZfjgYLjgY0NCivjgZ/jgarjgYss44G/44Gu44KLDQor44G144GP44GX44G+LOOBl+OCheOCk+OBhOOBoQ0KK+OBk+OBmOOBvizjgojjgZfjgbLjgZMNCivjgavjgZfjgaAs44G/44Gk44GQDQor44Gr44GX44KE44G+LOOBmOOCheOCk+OBkw0KK+OBmeOBmuOBjSzjgaDjgYTjgZnjgZENCivjgYTjgYTjgZjjgb4s44Gf44GL44GXDQor44Gf44G+44GELOOBmeOBmeOCgA0KK+OBk+OCk+OBrizjgYrjgZXjgoANCivjgb/jgb7jgZks44Go44GX44G/44GkDQor44KI44Gt44Gv44KJLOOBm+OBhOOBhOOBoQ0KK+OCiOOBl+OBoCzjgYvjgZrjgb8NCivjgbXjgY/jgaAs44Gy44KN44GXDQor44GV44Go44GGLOOBsuOCjeOBguOBjQ0KK+OChOOBvuOCguOBqCzjgbLjgo3jgZcNCivjgY3jgZ/jgZQs44Gu44G844KLDQor44GV44KT44GuLOOBqOOCguOBqOOBlw0KK+OChOOBleOBiyzjgajjgZfjgYoNCivjgoDjgonjgZ8s44GX44GS44G/DQor44Gq44GL44KC44GoLOOBguOBjeOBlw0KK+OBleOBj+OCieOBhCzjgYvjgZrjgZfjgZINCivjga/jgonjgaAs44KI44GX44KC44GoDQor44GV44Go44GGLOOBguOBpOOBig0KK+OBleOBhOOBqOOBhizjgb/jgaTjgYoNCivjgZ3jga0s44GR44GE44GTDQor44Gv44GZ44G/LOOBguOBjeOBsuOCjQ0KK+OBsuOCieOBnyzjgYvjgZrjgbLjgo0NCivjgoTjgarjgY7jgZXjgo8s44Gu44G244GKDQor44Gf44Gh44Gw44GqLOOCiOOBhuOBkw0KK+OBhOOBqOOBhizjgb7jgZXjgZrjgb8NCivjga/jgoks44GC44GN44KJDQor44GV44GE44Go44GGLOOBqOOBl+OBsuOCjQ0KK+OBhOOBqOOBhizjgZPjgYbjgYTjgaENCivjgZ/jgarjgYss44GL44Ga44KEDQor44GG44Gh44KE44G+LOOBl+OBkuOCiOOBlw0KK+OBi+OBjOOCjyzjgZHjgYTjgYTjgaENCivjgZ/jgY3jgZbjgo8s44KG44GG44GY44KTDQor44GX44Gq44GM44KPLOOBj+OBq+OBsuOBkw0KK+OBi+OBjeOBr+OCiSzjgZfjgo3jgYYNCivjgZnjgYzjgazjgb4s44GY44KF44KT44GE44GhDQor44GL44KB44GELOOBqOOBl+OChA0KK+OBiuOBj+OBpCzjgYvjgZrjgajjgZcNCivjgYTjgZfjgYvjgo8s44GX44KH44GG44GX44KF44KTDQor44GZ44GO44GG44KJLOOCguOCiuOBig0KK+OBhuOCgeOBoCzjgbLjgZXjgZcNCivjgb/jgarjgZDjgaEs44GE44Gh44KN44GGDQor44G744GX44GuLOOBn+OBkeOBsuOBkw0KK+OBq+OBl+OChOOBvizjgZvjgYTjgZgNCivjgZ/jgZHjgaAs44Gf44Gk44KEDQor44GV44GL44GELOOBjeOBhOOBoeOCjeOBhg0KK+OChOOBpOOBoCzjgZ/jgZHjgZcNCivjgoLjgorjgZ8s44GR44GE44Ge44GGDQor44GV44GN44G+LOOBquOBiuOBsuOCjQ0KK+OBguOCieOBhCzjgobjgZ/jgYsNCivjgZ/jgZHjgaAs44Gf44GL44GTDQor44Gf44KA44KJLOOCiOOBl+OBkw0KK+OBiuOBi+OBoCzjga/jgovjgb8NCivjgoTjgb7jga0s44Gh44Gv44KLDQor44Gq44GL44KA44KJLOOChuOBhuOBhOOBoQ0KK+OBguOBiuOBrizjgZ/jgaTjgYoNCivjgZnjgY7jgoTjgb4s44GL44Gt44KI44GXDQor44G144KK44Gv44KJLOOBi+OBmuOBig0KK+OCj+OBn+OBquOBuSzjga7jgbbjgagNCivjgYvjgaQs44Gk44GL44GVDQor44GV44Gv44KJLOOBsuOCjeOBvw0KK+OBi+OBj+OBnyzjgYLjgY3jgbLjgZMNCivjgYjjga7jgoLjgags44Gf44GL44GXDQor44KP44Gf44Gq44G5LOOBvuOBk+OBqA0KK+OChOOBtuOBjSzjgb7jgZXjgbLjgo0NCivjgYLjgb7jgZXjgY0s44GT44GG44GE44GhDQor44KI44GT44GfLOOBvuOBleOBsuOBpw0KK+OBu+OCiuOBruOBhuOBoSzjgajjgZfjgYLjgY0NCivjgY3jga/jgoks44Gk44Gt44GKDQor44Gf44GR44GgLOOBpOOCi+OBvuOBpA0KK+OBhOOBreOBqizjgb7jgZXjgbLjgZMNCivjgarjgYss44GL44Ga44Gy44KNDQor44GE44Gh44KE44Gq44GOLOOBn+OBoOOBlw0KK+OBmeOBmuOBjSzjgZfjgofjgYbjgZHjgYQNCivjgarjgovjgZfjgb4s44Gq44GK44GN44GhDQor44GX44KJ44GE44GXLOOBn+OBi+OBlw0KK+OBiuOBrizjgajjgYrjgosNCivjgojjgZfjgYrjgYss44GL44Ga44KEDQor44G+44Gk44GG44KJLOOBsuOCjeOBi+OBmg0KK+OBteOBmOOBnyzjgabjgaTjgZgNCivjgYTjgo/jgb8s44Go44KI44Gv44KLDQor44Go44GP44GX44GSLOOBkeOBhOOBmA0KK+OBn+OBquOBoCzjgY3jgb/jgbLjgZMNCivjgYrjgYvjga4s44GL44Ga44G+44GVDQor44KC44Gh44Ga44GNLOOBn+OBi+OChuOBjQ0KK+OBn+OBi+OBl+OBvizjgZPjgYbjgYTjgaENCivjgajjgorjgYbjgb8s44GL44Ga44GKDQor44Gf44GL44G/LOOCiOOBl+OBn+OBiw0KK+OBr+OChOOBmyzjgajjgoLjgobjgY0NCivjgZ/jgYvjga/jgoks44GI44GE44GYDQor44GN44KTLOOBvuOBleOChuOBjQ0KK+OBmeOBjuOChOOBvizjgbLjgafjgbLjgo0NCivjgY3jgZ/jgZjjgb4s44GT44GG44GYDQor44Gr44Gj44GfLOOCiOOBl+OBruOBtg0KK+OBiuOBiyzjgobjgY3jga7jgbYNCivjgYrjgYrjga/jgZcs44Gy44KN44GXDQor44Gv44KJ44GgLOOBjeOBr+OBoeOCjeOBhg0KK+OCj+OBjeOBleOBiyzjgbLjgo3jgZcNCivjgYTjgo/jgarjgYws44GR44GE44GE44GhDQor44GL44KP44GX44KKLOOBv+OBpOOBig0KK+OBhOOBquOCguOBqCzjgb7jgZXjgYvjgZoNCivjgZXjgo8s44Gy44KN44KG44GNDQor44Gf44GR44GgLOOBn+OBkeOBsuOBkw0KK+OBhOOBhOOBoCzjgojjgZfjgbLjgagNCivjgYvjgZjjga4s44G+44KC44KLDQor44G/44KPLOOBr+OCi+OBi+OBmg0KK+OBteOBj+OBhCzjgZHjgYTjgYTjgaENCivjgZnjgYjjgarjgYws44Go44GK44KLDQor44GP44Gr44GI44GgLOOChuOBn+OBiw0KK+OBjeOBn+OBiuOBiyzjgYvjgZrjgbLjgZMNCivjgYTjgaks44Go44GK44KLDQor44GK44GP44GgLOOCiuOCh+OBhuOBmeOBkQ0KK+OBu+OCiuOBi+OCjyzjgYvjgaTjgY0NCivjgZnjgYjjgoLjgags44Gm44Gk44KEDQor44KI44GT44KE44G+LOOBqOOBl+OBsuOCjQ0KK+OBteOBmOOCguOBqCzjgajjgb/jgYoNCivjgY3jgZss44GX44KH44GG44GYDQor44Gr44GX44KA44KJLOOBsuOBp+OBsuOBkw0KK+OBn+OBi+OBoCzjgZPjgYbjgZgNCivjgaTjgYvjgaAs44G+44GV44GL44GaDQor44Go44KI44GgLOOBiOOBhOOBmA0KK+OBleOBrizjgajjgYrjgosNCivjgavjgZfjgaAs44G+44GV44Gy44GTDQor44GK44GK44KC44KKLOOBhOOBoeOCjeOBhg0KK+OBiuOBluOBjSzjgajjgYrjgosNCivjgYTjgZfjgb7jgoss44GX44GS44KE44GZDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoQ0KK+OBi+OBl+OCj+OBsOOCiSzjga7jgbzjgosNCivjgYLjgZXjga4s44KE44GZ44GL44GaDQor44Gy44KJ44GuLOOBl+OCk+OBmA0KK+OBn+OBq+OChOOBvizjgabjgaTjgo3jgYYNCivjgYbjgoHjgbDjgoTjgZcs44GR44KT44GYDQor44GK44KA44KJLOOBsuOBp+OBig0KK+OBleOBi+OBkOOBoSzjgY3jgojjgYvjgZoNCivjgYrjgYvjgoDjgoks44GX44KH44GG44GUDQor44KE44G+44KC44GoLOOBguOBjeOCiQ0KK+OBiOOBoeOBlCzjgZPjgozjgYLjgY0NCivjgZXjgo/jgaAs44KE44GZ44Gy44GTDQor44KI44GT44GELOOBi+OBmuOChuOBjQ0KK+OBjeOBn+OCgOOCiSzjgorjgYsNCivjgoTjgZks44GL44GK44KLDQor44Gf44GL44GKLOOBmOOCheOCk+OBkw0KK+OBi+OBpOOCieOBiuOBiyzjgZfjgpPjgZ7jgYYNCivjgaTjgbzjgYQs44G+44GV44Gy44GTDQor44Gk44GYLOOBl+OBkuOBig0KK+OBn+OBi+OBr+OBlyzjgYLjgY3jgYoNCivjgZnjgY7jgY0s44Gf44GL44GNDQor44Gf44GR44GG44GhLOOBn+OBi+OBsuOCjQ0KK+OBi+OBvyzjgajjgZfjgYvjgZoNCivjgZPjgbDjgoTjgYvjgo8s44KE44GZ44Gy44GTDQor44GC44GK44GoLOOBmOOBpOOBmA0KK+OBn+OBoCzjgojjgorjgZMNCivjgbLjgaDjgYss44Gu44KK44GTDQor44Gr44GX44KA44KJLOOBoeOBiOOBkw0KK+OBiOOBsOOCiSzjgaTjga3jgYoNCivjgb/jgZrjgoLjgags44GL44Ga44KEDQor44GZ44Ga44GNLOOBjeOCiOOBlw0KK+OBl+OBhOOBqizjga/jgovjgojjgZcNCivjgZfjgYrjgZ8s44G/44Gk44Gy44GTDQor44Gq44GL44Gv44KJLOOBk+OBhuOBhOOBoQ0KK+OBlOOBhuOBoCzjgY3jgojjgZcNCivjgbXjgovjgZ8s44G+44GV44Gy44GVDQor44G+44GZ44KC44GoLOOBmOOCheOCk+OBhOOBoQ0KK+OBquOBi+OBjOOCjyzjgY3jgYTjgaENCivjgYTjgaks44Gf44GL44KG44GNDQor44KI44KK44G144GYLOOBruOBvOOCiw0KK+OBvuOBpOOCguOBqCzjgYLjgY3jgokNCivjgZXjgYTjgajjgYYs44GP44Gr44GC44GNDQor44Gq44Gk44GELOOBsuOBp+OBjQ0KK+OBhuOBiuOBrizjgYvjgYrjgooNCivjgZ/jgarjgZQs44GR44GE44GTDQor44Gf44G+44GM44KPLOOBruOCiuOBsuOBqA0KK+OBiuOBiyzjgZ/jgYvjgZcNCivjgbXjgY/jgZfjgb4s44G+44GV44KLDQor44GK44GL44GgLOOChuOBhuOBkw0KK+OBjeOBruOBl+OBnyzjgbLjgafjgbLjgZMNCivjgZfjgb/jgZos44GC44GN44KJDQor44GT44Gw44KE44GXLOOBjeOCiOOBn+OBiw0KK+OBruOBoCzjgb7jgZXjgZcNCivjgYvjga7jgYYs44Gk44GQ44Gy44KNDQor44GL44GY44GK44GLLOOBguOBjeOBsuOBqA0KK+OBiuOBiuOBrizjgZ/jgYvjgZcNCivjgYrjgYrjga/jgZcs44G+44GV44KG44GNDQor44GT44Gw44KE44GXLOOChuOBhuOBhOOBoQ0KK+OBk+OBhOOBmuOBvyzjgYTjgY/jgYoNCivjgZ/jgarjgYss44Gy44Go44GXDQor44G144GP44GgLOOBqOOBl+OChA0KK+OBquOBi+OBluOCjyzjga7jgbzjgosNCivjgbvjgorjgYvjgo8s44GV44Go44GXDQor44GG44Gh44KE44G+LOOCguOCiuOBsuOCjQ0KK+OBhOOBmuOBn+OBqyzjgZjjgoXjgpPjgYTjgaENCivjgZ/jgY3jgYQs44Go44GX44GTDQor44Gf44GL44GbLOOBruOBtuOBpOOBkA0KK+OBvuOBmeOBluOBjSzjgZ/jgYvjgZcNCivjgYLjgpPjganjgYYs44Go44GK44KLDQor44GL44Gf44GO44KKLOOBl+OBkuOBhOOBoeOCjeOBhg0KK+OCguOCiuOChOOBvizjgajjgZfjgoQNCivjgZXjgajjgYYs44GC44GN44Gy44KNDQor44Gy44KL44GL44KPLOOBleOBqOOBlw0KK+OBhuOBiOOBoCzjgb7jgZXjgYoNCivjgarjgYss44Go44GX44Gf44GLDQor44G/44KE44GW44GNLOOBsuOCjeOBlw0KK+OBiuOBiuOBj+OBvCzjgb7jgZXjgZ/jgYsNCivjgZ/jgaHjgYvjgo8s44G+44GT44GoDQor44KP44Gf44Gq44G5LOOBv+OBoeOBquOBig0KK+OBguOBleOBi+OCjyzjgZvjgYTjgZgNCivjgYvjgo/jga/jgoks44G+44GV44KEDQor44GK44GV44GgLOOBr+OBmOOCgQ0KK+OBleOBi+OBhCzjga/jgovjgYoNCivjgY/jgorjgoTjgb4s44GV44Gq44GIDQor44GV44GE44Go44GGLOOBk+OBmuOBiA0KK+OBmeOBjeOBjOOCiSzjgojjgZfjgZMNCivjgYLjgZHjgbIs44GP44G/44GTDQor44Gv44KE44GXLOOBjeOCiOOBvw0KK+OBi+OCj+OBnyzjgarjgYrjgb8NCivjgZfjgb7jgYzjgY0s44G/44GV44GIDQor44G744KKLOOBi+OBmuOCiA0KK+OBruOCgOOCiSzjgojjgZfjgZMNCivjgajjgoDjgoks44GX44KT44GE44GhDQor44GP44G8LOOBjeOCiOOBkw0KK+OBq+OBl+OCguOBqCzjga7jgorjgbLjgagNCivjgojjgZfjgaAs44GT44GG44GYDQor44GV44GOLOOBn+OBi+OCiOOBlw0KK+OBi+OCk+OBrizjgZHjgYTjgZMNCivjgoTjgbbjga4s44G+44GV44GNDQor44KE44GZ44Gq44GMLOOBsuOCjeOChuOBjQ0KK+OBsuOBjOOBl+OBhuOBiCzjgbLjgo3jgbLjgagNCivjgZPjgZXjgY0s44G+44GV44KG44GNDQor44Gq44GLLOOBqOOBl+OBsuOCjQ0KK+OBiuOBrizjgajjgYrjgosNCivjgoDjgonjgZ8s44GT44GG44Ge44GGDQor44GX44KH44GG44GYLOOBsuOBp+OBguOBjQ0KK+OBi+OCj+OCguOBqCzjgYLjgY3jgbLjgo0NCivjgYjjgZXjgY0s44G+44GV44KLDQor44GI44GE44Gp44KBLOOBsuOBp+OBi+OBmg0KK+OBmeOBmuOBjSzjgobjgZ/jgYsNCivjgoLjgajjgoTjgb4s44KE44GZ44GL44GaDQor44Gv44G+44GgLOOBguOBjeOCiQ0KK+OBk+OBl+OBi+OCjyzjgajjgZfjgYoNCivjga/jgoTjgZcs44G+44GV44Gv44KLDQor44KE44G+44GW44GNLOOChuOBjeOChA0KK+OBvuOBpOOCguOBqCzjgojjgZfjgb7jgZUNCivjgYrjga4s44GX44KT44GE44GhDQor44Gv44Gq44KPLOOBn+OBoOOBlw0KK+OBr+OBm+OBjOOCjyzjgZHjgYTjgZgNCivjgb/jgoTjgZ8s44G+44GV44GC44GNDQor44GN44Gf44GW44KPLOOBvuOBleOBi+OBmg0KK+OBiOOCk+OBqSzjgoTjgZnjgbLjgZMNCivjgarjgYzjgZXjgYss44KI44GX44GC44GNDQor44KI44GX44KC44GoLOOBsuOCjeOBv+OBpA0KK+OBj+OCjeOBleOCjyzjgZHjgpPjgZXjgY8NCivjgb7jgovjgoTjgb4s44KI44GX44Gv44KLDQor44Gq44GL44Gr44GXLOOBi+OBmuOChuOBjQ0KK+OCiOOBl+OBoCzjgZHjgYTjgYTjgaENCivjgbXjgY/jgZ8s44Gy44Gn44KEDQor44G144GY44GV44KPLOOBi+OBpOOBsuOBkw0KK+OBleOBj+OBvizjgojjgZfjga/jgosNCivjga/jgZfjgoLjgags44GL44Gk44G/DQor44KP44GgLOOBvuOBleOBiuOBvw0KK+OBq+OBl+OBluOBjSzjga7jgbbjgYoNCivjgbXjgYvjgYzjgo8s44GI44Gk44GTDQor44GC44GK44KE44G+LOOBvuOBleOBi+OBmg0KK+OBjeOCiOOBn+OBqyzjgaTjgajjgoANCivjgajjgorjga/jgoks44Gy44KN44KG44GNDQor44Gq44GM44GuLOOBn+OBkeOBlw0KK+OBiuOBiuOBjCzjgobjgZ/jgYsNCivjgZXjgYvjga4s44Gf44GL44GXDQor44G/44Gk44Gv44GXLOOBvuOBleOBsuOCjQ0KK+OBguOCiuOCguOBqCzjgZvjgYTjgZMNCivjgojjgZfjgb7jgaQs44Gf44GL44GC44GNDQor44GC44GK44KE44GOLOOBguOBjeOBig0KK+OChOOBvuOBoCzjgb7jgZXjgbLjgZMNCivjgoDjgonjgZ8s44KG44G/44GTDQor44GE44KK44GILOOBl+OCk+OBhOOBoQ0KK+OChOOBvuOBluOBjSzjgb7jgZXjga7jgooNCivjgYjjgZ7jgYgs44GR44GE44GE44GhDQor44GV44Go44GGLOOBpOOCiOOBlw0KK+OBiuOBiuOBnyzjgY3jgojjgZcNCivjgYTjga7jgYYs44KC44KK44Gy44GoDQor44GL44GpLOOBn+OBpOOChA0KK+OBleOBleOBjSzjgojjgZfjgbLjgo0NCivjgYvjgZHjgbIs44KI44GX44Gy44KNDQor44Gk44Gh44KELOOBi+OBmuOChA0KK+OBvuOBleOBiuOBiyzjgZfjgofjgYbjgZ7jgYYNCivjgZnjgZrjgY0s44KE44GZ44GKDQor44Go44GtLOOBqOOBv+OBsuOCjQ0KK+OBiuOBiuOCj+OBoCzjga7jgorjgYLjgY0NCivjgYbjgYjjgY0s44G+44GV44GoDQor44G+44GI44GgLOOBi+OBmuOBruOCig0KK+OBteOBmOOBiuOBiyzjgoTjgZnjgZMNCivjgYbjgonjgbks44Gq44GK44GTDQor44Gq44GL44KA44KJLOOChuOBhuOBhOOBoQ0KK+OBhOOBleOBiyzjgb7jgZXjgYLjgY0NCivjgavjgZfjgZXjgYss44Gu44G244GKDQor44GE44KP44GVLOOBiOOBhOOBhOOBoQ0KK+OBn+OBj+OBl+OBvizjgojjgZfjgYoNCivjgaTjgYvjgoLjgags44G144G/44GKDQor44GV44GP44G+LOOBn+OBkeOBsuOBkw0KK+OBsuOCh+OBhuOBqeOBhizjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44GT44GG44GE44Gh44KN44GGDQor44GV44GV44GNLOOBvuOBleOBig0KK+OBteOBj+OCj+OBjSzjgajjgZfjgoQNCivjgYrjgY/jgoDjgoks44G+44GV44KI44GXDQor44Gf44GL44Gv44GXLOOBqOOCiOOBsuOBkw0KK+OBl+OCjeOBhCzjgoTjgZnjgZcNCivjgZPjgYvjgbYs44Gf44Gg44GKDQor44Gu44GQ44GhLOOBsuOCjeOBjQ0KK+OBn+OBi+OBpCzjgbLjgo3jgYvjgZoNCivjgojjga3jgZbjgo8s44Gm44Gk44KEDQor44GV44GL44GE44GgLOOChOOBmeOBsuOCjQ0KK+OBk+OBhOOBmuOBvyzjgb/jgaTjgoQNCivjgb7jgYjjgaAs44GL44Gk44KG44GNDQor44G+44KT44GgLOOBn+OBoOOBlw0KK+OBk+OBkOOCjCzjgYTjgaHjgo3jgYYNCivjgYLjgY3jgoLjgags44KI44GX44GoDQor44Gf44GR44KA44KJLOOBqOOCguOBguOBjQ0KK+OBmeOBmuOBjSzjgZPjgYbjgZgNCivjgoTjgb7jgYbjgaEs44GY44KF44KT44GE44GhDQor44GV44GI44GNLOOChuOBhuOBmA0KK+OCj+OBi+OBsOOChOOBlyzjga7jgbbjgobjgY0NCivjgYLjgY3jgoLjgags44G+44GV44Gy44GTDQor44KI44GX44GgLOOBsuOCjeOBguOBjQ0KK+OBleOBqOOBhizjgaTjga3jgYoNCivjgYrjgZfjgb4s44KE44GZ44Go44GXDQor44GV44GV44GNLOOBvuOBleOBsuOBpw0KK+OBguOCieOBhCzjgYLjgY3jgbLjgacNCivjgo/jgZ/jgarjgbks44Gm44Gk44GYDQor44GE44GR44KC44GoLOOChuOBjeOBig0KK+OBjeOBj+OBhCzjgZPjgYbjgYTjgaENCivjgbLjgonjgZ8s44Gy44KN44G/DQor44G+44GN44GG44GhLOOBn+OBj+OChA0KK+OBk+OBm+OBjSzjgZfjgo3jgYYNCivjgavjgZfjgYvjgo8s44KE44GZ44Gy44KNDQor44GE44GM44KJ44GXLOOBteOBv+OBig0KK+OBn+OBquOBiyzjgZ/jgaDjgaTjga0NCivjgbvjgpPjgaAs44GI44GE44GE44GhDQor44Gv44Gj44GfLOOBsuOCjeOBvw0KK+OBr+OCieOBoCzjgbLjgZXjgYvjgZoNCivjgojjgZfjgaAs44GK44GV44KADQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OBk+OBhOOBmuOBvyzjgorjgofjgYbjgYTjgaENCivjgZPjgZnjgaAs44Gq44GK44Gy44GVDQor44G/44KE44GRLOOBvuOBleOBguOBjQ0KK+OBteOBmOOChCzjgZ/jgZHjgZcNCivjgb7jgZXjgY0s44GC44GN44KJDQor44GV44GP44KJ44GELOOBsuOBp+OBjQ0KK+OBq+OBl+OChOOBvizjgojjgZfjgYoNCivjgYvjgo/jgZss44Gf44GL44Gu44G2DQor44GK44GL44GW44KPLOOBl+OCk+OChA0KK+OBguOBleOBiyzjgajjgZfjgobjgY0NCivjgYrjgYzjgo8s44Gu44G244GC44GNDQor44Gq44GM44GV44KPLOOBr+OBmOOCgQ0KK+OBjeOBn+OCj+OBjSzjgb7jgZXjgYoNCivjgZfjgb/jgZos44G+44GV44Gu44KKDQor44GT44Gw44KE44GXLOOBvuOBleOBr+OCiw0KK+OBn+OBoeOBsOOBqizjgZfjgZLjgZMNCivjgYTjgb7jgarjgYss44GV44Go44G/DQor44GG44GX44G+44KLLOOBkeOCkw0KK+OBiuOBi+OCgOOCiSzjgZHjgpPjgYTjgaENCivjgoTjgb7jga4s44KG44GG44GE44GhDQor44GN44Gf44KA44KJLOOBv+OBoeOBi+OBmg0KK+OBn+OBi+OBvuOBpCzjgbLjgafjgY0NCivjgajjgY3jgYvjgo8s44GL44Ga44Gy44GnDQor44GE44GR44GgLOOBqOOBl+OChA0KK+OBhOOBl+OBoCzjga7jgbbjgZ/jgYsNCivjgZ/jgavjga/jgoks44G/44Gk44GODQor44GK44GM44KPLOOBsuOBqOOBlw0KK+OBn+OBquOBiyzjgZfjgofjgYbjgZnjgZENCivjgarjgYss44GR44GE44GTDQor44Go44KC44GW44KPLOOBruOBtuOBkw0KK+OBr+OCieOBoCzjgZvjgaTjgZMNCivjga/jgarjgbbjgZUs44GC44Gk44GTDQor44Go44GP44GK44GLLOOBguOBpOOBlw0KK+OBueOBo+OBl+OChyzjgb7jgZXjgbLjgo0NCivjgarjgYvjgZfjgb4s44GL44Gk44Gy44GTDQor44GC44GV44GP44KJLOOChOOBmeOBsuOBkw0KK+OBv+OChOOBp+OCiSzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44Gq44GK44GNDQor44KI44GX44KA44KJLOOCiOOBl+OBsuOBlQ0KK+OBleOCjyzjgb7jgZXjgobjgY0NCivjgarjgYvjgoTjgb4s44GT44GG44GE44GhDQor44Gy44KJ44GW44KPLOOCiOOBl+OBsuOCjQ0KK+OBteOBmOOCj+OCiSzjgb7jgZXjgYLjgY0NCivjgZnjgYzjgo/jgoks44Go44GK44KLDQor44Gf44Gr44GM44KPLOOBvuOCiuOBig0KK+OBu+OCk+OBoCzjgoTjgZnjgagNCivjga/jgarjgYQs44GT44GG44GE44GhDQor44GI44GQ44GhLOOBleOBj+OCgeOBhA0KK+OBi+OBleOBhCzjgojjgYbjgYTjgaENCivjgY/jgo3jgZXjgo8s44Gy44KN44GXDQor44Gf44GY44G+LOOBl+OCkw0KK+OBleOBqOOBhizjgZ/jgaTjgZcNCivjgbLjgbPjga4s44Gk44Gt44GKDQor44GZ44GM44KELOOBl+OCheOBhg0KK+OBj+OCieOBnyzjgZPjgYbjgYTjgaENCivjgb7jgZnjgaAs44Gv44KL44GNDQor44GZ44GO44Gv44KJLOOBkeOBhOOBkw0KK+OBi+OBreOBkyzjgojjgZfjgobjgY0NCivjgYvjgaQs44Gf44GL44GXDQor44G+44KLLOOBsuOCjeOChA0KK+OBn+OBquOBiyzjgbLjgafjgYvjgZoNCivjgajjgZfjgYrjgYss44GC44GN44KJDQor44GX44GS44GuLOOCiuOCh+OBhuOBmA0KK+OChOOBvuOCguOBqCzjgZXjgajjgb8NCivjgarjgYvjgYzjgo8s44GL44Gk44G/DQor44KE44G+44GQ44GhLOOBsuOCjeOBjQ0KK+OBi+OCj+OCguOCiizjgojjgZfjgbLjgo0NCivjgoDjgonjgoTjgb4s44G+44GV44KLDQor44GX44KF44GGLOOBquOBiuOChA0KK+OBhOOBkeOBoCzjgbLjgo3jgobjgY0NCivjgZPjgaDjgb4s44Gf44Gk44GKDQor44GL44Go44GGLOOBleOBqOOCiw0KK+OBr+OBj+OBoeOCh+OBhizjgYTjgZXjgYoNCivjgYvjgZLjgpMs44GL44GK44KLDQor44Gm44Ga44GLLOOBk+OBhuOBmA0KK+OBn+OBq+OBkOOBoSzjgb7jgZXjgZ/jgZENCivjgabjgonjgaAs44Gq44GK44GNDQor44GL44Go44GGLOOBn+OBi+OBjQ0KK+OBquOBhOOBqOOBhizjgZ/jgZHjgYoNCivjgYTjgajjgYYs44Gf44GL44GXDQor44GT44Gw44KE44GXLOOBkeOCk+OBmA0KK+OBn+OBquOBiyzjgbLjgafjgajjgZcNCivjgZXjgZXjgY0s44KP44Gf44KLDQor44G744KT44GgLOOBv+OBoeOBqA0KK+OBsuOBiOOBoCzjgYLjgY3jgYoNCivjgZXjgYvjgYQs44GL44Ga44Gu44KKDQor44GL44Gk44G/LOOBn+OBi+OBlw0KK+OBn+OBkeOBuSzjgZ/jgYvjgZcNCivjga7jgZDjgaEs44Gk44KI44GXDQor44KP44GgLOOBiOOBhOOBmA0KK+OBhuOBiOOChOOBvizjgZHjgpPjgZgNCivjgYbjgYjjga4s44Gf44GL44Gy44KNDQor44Gf44KT44GULOOBsuOBp+OBig0KK+OCgOOCieOBi+OBvyzjgYvjgaTjgb8NCivjgYLjgonjgY0s44GT44GG44Ge44GGDQor44GC44KJ44GbLOOBvuOBmeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgZfjgo3jgYYNCivjgo/jgZfjgYos44Gy44KN44KG44GNDQor44KP44GR44GY44G+LOOCiOOBl+OBteOBvw0KK+OBk+OBhOOBmuOBvyzjgZHjgpPjgZnjgZENCivjgajjgY/jgoTjgb4s44Go44GX44G144G/DQor44Go44G/44Gq44GMLOOBkeOCk+OBmA0KK+OBjeOBl+OBoCzjgZvjgYTjgZgNCivjgZHjgpMs44G/44Gh44Gy44KNDQor44Gy44KN44GbLOOCiOOBl+OChuOBjQ0KK+OBhuOBoeOChOOBvizjgZHjgpPjgYTjgaENCivjgo/jgYvjgZnjgY4s44Gf44Gg44Gf44GLDQor44GE44GX44GQ44KNLOOBi+OBpOOBruOCig0KK+OBq+OBl+OCgOOCiSzjgbLjgo3jgYvjgZoNCivjgYTjga7jgb7jgZ8s44GL44GK44KLDQor44Gk44Gk44G/LOOBqOOBl+OBsuOBkw0KK+OBhOOCiuOBiCzjgYLjgaTjgZcNCivjgZXjgYTjgajjgYYs44GL44Ga44GKDQor44GG44GI44GuLOOBl+OCk+OBhOOBoQ0KK+OBu+OCk+OBoCzjgYrjgZXjgoANCivjgY3jgZ/jgoDjgoks44GL44KI44GTDQor44KE44G+44GM44G/LOOBquOBvw0KK+OBquOBi+OBq+OBlyzjgb7jgZXjgbLjgo0NCivjgYbjgYjjgaAs44Gf44GL44GXDQor44Gy44KN44GfLOOCj+OBn+OCiw0KK+OBhuOBiOOBoCzjgajjgoLjgY0NCivjgYTjgZHjgaAs44Gy44KN44GXDQor44Gv44Gq44G244GVLOOCiOOCiuOBruOBtg0KK+OBk+OBoOOBvizjgbLjgo3jgYLjgY0NCivjgYrjgYvjgoLjgags44Gq44GK44GNDQor44GZ44Ga44GNLOOBsuOCjeOBv+OBpA0KK+OBmeOBmuOBjSzjgbLjgZXjgYgNCivjgavjgYTjgY/jgoks44GC44GN44Gy44KNDQor44Gr44GX44GgLOOBsuOCjeOBsuOBlQ0KK+OBiuOBleOBuSzjgZjjgoXjgpPjgYTjgaENCivjgbvjgZ3jgYvjgo8s44GR44KT44GE44GhDQor44GE44G+44GKLOOCiOOBhuOBhOOBoQ0KK+OBteOBmOOBnyzjgojjgZfjga7jgbYNCivjgYrjgYrjga4s44KI44GX44Gu44KKDQor44Gq44GL44KE44G+LOOCiOOBl+OBig0KK+OBr+OChOOBlyzjgZHjgYTjgZgNCivjgZnjgYzjga/jgoks44GL44Ga44Gu44KKDQor44Gv44KJ44GgLOOBhOOBoeOCjeOBhg0KK+OBguOBuSzjgZfjgoXjgpPjgYTjgaENCivjgYLjgbks44GR44GE44GE44GhDQor44GC44G5LOOBkeOCk+OBhOOBoQ0KK+OBguOBoOOBoSzjgZ/jgaDjgbLjgo0NCivjgYLjgYTjgbAs44Gg44GE44GZ44GRDQor44GC44GL44Gw44GtLOOBi+OBmuOBig0KK+OBguOCk+OBqeOBhizjgYjjgYTjgbsNCivjgYLjgpPjganjgYYs44Go44KC44KG44GNDQor44GC44GK44GNLOOBvuOBleOBlw0KK+OBl+OBhOOBjSzjgbLjgo3jgZcNCivjgYLjgonjgYQs44GX44KH44GG44GE44GhDQor44GC44KJ44GELOOBqOOBiuOCiw0KK+OBguOCieOBhCzjgZ/jgZHjgZcNCivjgYLjgonjgYvjgo8s44GE44GV44GKDQor44GC44KJ44GNLOOBn+OBpOOChA0KK+OBguOCieOBjSzjgZ/jgYvjgobjgY0NCivjgYLjgonjgY0s44GN44KI44Gv44KLDQor44GC44KJ44GNLOOBi+OBmuOBguOBjQ0KK+OBguOCieOBvuOBjSzjgb7jgY3jgYoNCivjgYLjgonjgoEs44Gf44GL44GtDQor44GC44KK44KA44KJLOOBn+OBkeOBlw0KK+OBguOBleOBvyzjgZfjgoXjgYbjgYTjgaENCivjgYLjgZrjgb4s44Gy44KN44KI44GXDQor44Gw44GwLOOBsuOBp+OBi+OBmg0KK+OBsOOBsCzjgoLjgajjgZMNCivjgaHjgbAs44Gu44G244GC44GNDQor44Gh44GwLOOBk+OBhuOBhOOBoQ0KK+OBoeOBrizjgajjgoLjgobjgY0NCivjgaDjgYTjgZPjgY8s44KI44GX44Gu44G2DQor44Gn44GQ44GhLOOBsuOCjeOBruOCig0KK+OBp+OBjSzjgojjgZfjgYLjgY0NCivjganjgYQs44Gu44G244Gy44GTDQor44GI44Gg44GV44KPLOOBsuOBp+OBjQ0KK+OBiOOBkOOBoSzjgojjgZfjgarjgooNCivjgYjjgpPjgaks44GL44Ga44KNDQor44GI44KT44GpLOOBvuOBleOBig0KK+OBiOOCiuOBi+OCjyzjgobjgYbjgZMNCivjgbXjgZjjgYQs44Gy44KN44GXDQor44G144GY44KC44GoLOOBsuOBp+OBqA0KK+OBteOBmOOCguOBqCzjgb7jgobjgb8NCivjgbXjgZjjga4s44KI44GX44GC44GNDQor44G144GL44Gv44KJLOOBguOBjeOCiQ0KK+OBteOBi+OBvyzjgarjgYrjgY0NCivjgbXjgYvjgoTjgb4s44Gu44G244KG44GNDQor44G144GP44GgLOOBvuOBleOChuOBjQ0KK+OBteOBj+OBhCzjgb7jgZXjgbLjgZMNCivjgbXjgY/jgoLjgags44Gy44KN44GXDQor44G144GP44Gq44GMLOOBvuOBleOBsuOBkw0KK+OBteOBj+OBl+OBvizjga7jgbbjgYoNCivjgbXjgY/jgZfjgb4s44GL44Ga44Gf44GLDQor44G144Gq44GNLOOBleOBi+OBiA0KK+OBteOBquOBjSzjgoTjgZnjgbXjgb8NCivjgbXjgovjgoQs44GE44GV44GKDQor44GU44GG44Gv44KJLOOCiOOBl+OBsuOBlQ0KK+OBlOOBqOOBhizjgZfjgpPjgYTjgaHjgo3jgYYNCivjga/jgYws44Gf44Gg44GXDQor44Gv44GO44GuLOOBi+OBmuOCjQ0KK+OBhOOBoeOCgOOCiSzjgb7jgZPjgagNCivjga/jgb4s44Gq44GK44GNDQor44Gv44Gq44GgLOOBvuOBleOCiOOBlw0KK+OBhOOBsCzjgY3jgojjgZXjgaANCivjga/jgZvjgbks44GL44Gk44G444GEDQor44Gv44Gb44GM44KPLOOBqOOBl+OCjeOBhg0KK+OBr+OBl+OCguOBqCzjga7jgorjgYLjgY0NCivjga/jgZcs44Gq44GK44GC44GNDQor44Gv44Gf44GuLOOBruOBtuOBsuOCjQ0KK+OBr+OBqOOCiizjgZfjgpPjgZ/jgo3jgYYNCivjga/jgoTjgZcs44GC44GN44Gy44GTDQor44Gv44KE44GXLOOBk+OBhuOBmA0KK+OBsuOBoOOBiyzjgYvjgZrjgZMNCivjgbLjgYzjgZcs44GN44KI44Gf44GLDQor44G+44GuLOOCiOOBl+OBi+OBmg0KK+OBsuOCieOBhCzjgojjgZfjgZ/jgYsNCivjgYvjgb/jgZXjgY0s44Go44GX44Gy44GTDQor44Gy44KJ44GuLOOBvuOBleOBsuOBkw0KK+OBsuOCjeOBhCzjgbLjgafjgYoNCivjgbLjgo3jgoLjgoos44KI44GX44Gv44KLDQor44Gy44KN44GV44KPLOOBguOBpOOBlw0KK+OBsuOCjeOBleOCjyzjgYrjgZXjgoANCivjgbLjgo3jgZss44GX44KT44GE44GhDQor44G744KT44GgLOOCiOOBhg0KK+OBu+OCk+OBvizjgbLjgo3jgoTjgZkNCivjgbvjgorjgbks44GX44GS44KLDQor44G744KK44GILOOBsuOCjeOBlw0KK+OBu+OCiuOBkOOBoSzjgobjgYbjgYTjgaENCivjgb7jgaTjgoLjgags44Go44GX44Gy44GnDQor44G744KKLOOBr+OBmOOCgQ0KK+OBu+OCiizjgbLjgo3jgb8NCivjgbvjgZfjgYvjgo8s44Gu44KK44KG44GNDQor44G744Gd44GL44KPLOOBmeOBmeOCgA0KK+OBsuOCh+OBhuOBqeOBhizjgb7jgZXjga/jgosNCivjgYTjgbDjgonjgY0s44KG44GG44GE44GhDQor44GE44Gh44GK44GLLOOBguOBpOOBteOBvw0KK+OBhOOBkeOBoCzjgZ/jgYvjgbLjgagNCivjgYTjgb7jgYQs44KI44GX44Gf44GLDQor44GE44G+44KA44KJLOOBn+OBi+OBguOBjQ0KK+OBhOOBvuOBquOBiyzjgajjgoLjgoQNCivjgYTjgarjgaAs44Gy44KN44GXDQor44GE44Gq44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBhOOBruOBhuOBiCzjgZXjgajjgosNCivjgYLjgonjgYQs44Go44GX44G/DQor44GE44Gu44GG44GILOOBiOOBhOOBmA0KK+OBhOOBl+OBhCzjgY3jgojjgb8NCivjgYTjgZfjgYQs44Gy44KN44GXDQor44GE44GX44GL44KPLOOBv+OBjeOBig0KK+OBhOOBl+OBi+OCjyzjgYLjgY3jgokNCivjgYTjgZfjgYrjgYss44G+44GT44GoDQor44GE44Gd44GgLA0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgo0NCivjgYTjgajjgYYs44Gh44Ga44GTDQor44GE44Go44GGLOOBi+OBmuOBsuOBqA0KK+OBhOOBqOOBhCzjgZ/jgaDjgZcNCivjgYTjgajjgYYs44GX44KT44GYDQor44GE44KP44GELOOBguOBjeOCiQ0KK+OBhOOBmuOBv+OChCzjgb7jgZXjga7jgooNCivjgYvjgZjjgZ8s44GV44Go44GXDQor44GL44KB44GELOOBl+OCk+OBmA0KK+OBi+OBquOBhCzjgb7jgZXjgbLjgo0NCivjgYvjgarjgZbjgZcs44Gu44KK44GTDQor44GL44Gt44GTLOOBn+OBkeOBlw0KK+OBi+OBreOBkyzjgb7jgZPjgagNCivjgYvjga7jgYYs44GE44GP44GKDQor44GL44KK44GGLOOBl+OBkuOBmA0KK+OBpOOBjeOBmCzjgZ/jgYvjga7jgooNCivjgYvjgZXjgb7jgaQs44Gy44KN44KG44GNDQor44GL44Gf44GO44GXLOOBvuOBleOBlw0KK+OBi+OBn+OChOOBvizjgYLjgY3jgokNCivjgYvjgZ/jgoTjgb4s44Gm44Gk44KB44GEDQor44GE44Gd44GgLOOBn+OBi+OBig0KK+OBi+OBn+OChOOBvizjgZPjgYbjgZgNCivjgYvjgajjgYYs44GV44Gk44GKDQor44GL44Go44GGLOOBvuOBk+OBqA0KK+OBi+OBqOOBhizjgoTjgZnjgZcNCivjgYvjgajjgYYs44Gh44GIDQor44GL44Gk44G+44GfLOOBn+OBj+OChA0KK+OBi+OCj+OBuSzjgobjgY3jga7jgbYNCivjgYvjgo/jgbks44GC44Gk44GXDQor44GL44KP44G5LOOCgOOBreOBsuOBqA0KK+OBi+OCj+OBoCzjgZHjgpPjgZnjgZENCivjgYvjgo/jgaAs44GC44GN44Gy44GTDQor44GL44KP44KC44GoLOOBguOBjeOBig0KK+OBi+OCj+OBn+OBqyzjgZvjgYTjgY0NCivjgY3jgb/jgZrjgYss44G/44Gh44KNDQor44GN44KA44KJLOOBi+OBmuOChA0KK+OBjeOCgOOCiSzjgorjgofjgYbjgZ/jgo3jgYYNCivjgY3jga7jgZfjgZ8s44KE44GZ44Gy44KNDQor44GN44GV44GLLOOBsuOBp+OBig0KK+OBjeOBl+OBoCzjgZ/jgYvjgZMNCivjgY3jgZ/jgYzjgo8s44GN44KH44GG44GE44GhDQor44GN44Gf44KA44KJLOOCiOOBl+OBsuOCjQ0KK+OBjeOBnyzjgbLjgafjgagNCivjgY3jgojjga4s44G+44GV44KG44GNDQor44GT44Gw44KE44GXLOOBi+OBpOOBruOCig0KK+OBk+OBoOOBvizjgYvjgZrjgarjgooNCivjganjgbIs44Gy44KJ44KE44GZDQor44GT44Gv44KJLOOBvuOBleOBjQ0KK+OBk+OBhOOBpyzjgajjgZfjgoQNCivjgZPjgYTjgo8s44Gy44KH44GG44GYDQor44GT44GE44Ga44G/LOOBr+OCi+OBkw0KK+OBk+OBvuOBpCzjgoTjgZnjgZ/jgYsNCivjgZPjgoHjgaAs44Gy44KN44KG44GNDQor44GT44KT44GpLOOBv+OBjQ0KK+OBk+OCk+OBqSzjgajjgYrjgosNCivjgZPjgavjgZcs44GY44KF44KT44GYDQor44GT44GV44GLLOOBsuOCjeOBguOBjQ0KK+OBk+OBn+OBjSzjgZjjgoXjgpMNCivjgZPjgZ/jgass44Gy44Gn44GNDQor44GT44Go44G244GNLOOBsuOCjeOBlw0KK+OBn+OBl+OCjSzjgYvjgZrjga7jgooNCivjgY/jgbzjgZ8s44KG44GN44G+44GVDQor44GP44G8LOOBpuOBpOOChA0KK+OBj+OBqeOBhizjgb7jgZXjgagNCivjgY/jgb7jgYzjgYQs44KE44GZ44Gy44KNDQor44GP44KN44GbLOOBiuOBleOCgA0KK+OBj+OBl+OBvizjgoTjgZnjgZMNCivjgY/jgZfjgb/jgoQs44GT44GG44GNDQor44GP44Gk44GL44GRLOOBl+OCk+OBhOOBoQ0KK+OBj+OCj+OBrizjgZfjgoXjgYbjgZ7jgYYNCivjgb7jgaTjgarjgYws44Gy44Gn44GNDQor44G+44GI44GgLOOChuOBhuOBmA0KK+OBvuOBiOOBr+OCiSzjgZXjgajjgZcNCivjgYjjga7jgY0s44Go44GX44KEDQor44G+44GI44GL44KPLOOBk+OBhuOBmOOCjeOBhg0KK+OBvuOBiOOBjSzjgYLjgoTjgZMNCivjgb7jgpPjga4s44GX44KT44GODQor44G+44GuLOOBiOOBhOOBmA0KK+OBvuOCk+OBn+OBqyzjgojjgYbjgYTjgaENCivjgb7jgovjgoTjgb4s44KE44GZ44Gy44KNDQor44G+44GbLOOBi+OBmuOBsuOBkw0KK+OBvuOBmeOBluOCjyzjgb7jgZXjgYoNCivjgb7jgaTjgaAs44G/44Gk44Gu44KKDQor44G+44Gk44GELOOBhOOBpOOBkw0KK+OBvuOBpOOBhCzjgb7jgZXjgagNCivjgb7jgaTjgoLjgags44KE44GZ44GC44GNDQor44G+44Gk44KA44KJLOOBi+OBmuOBguOBjQ0KK+OBvuOBpOOBrizjga7jgorjgobjgY0NCivjgb7jgaTjgZbjgY0s44KM44GE44GTDQor44G/44GNLOOBl+OBkuOCiw0KK+OBv+OBk+OBoCzjgabjgovjgobjgY0NCivjgb/jgoDjgoks44GL44Ga44Gf44GLDQor44G/44KA44KJLOOBl+OBkuOBruOBtg0KK+OBv+OBquOBvyzjgZXjgajjgZcNCivjgb/jgarjgb8s44Gu44G244Gy44KNDQor44G/44Gq44GoLOOChOOBmeOBlw0KK+OBv+OBreOBvuOBpCzjga7jgorjgZMNCivjgb/jga0s44G+44GV44Gf44GLDQor44G/44GX44G+LOOBsuOCjeOChuOBjQ0KK+OBv+OCjyzjgb7jgZXjgbLjgo0NCivjgb/jgoTjgZDjgaEs44Gf44GL44Gy44KNDQor44G/44KI44GXLOOChuOBhuOBkw0KK+OBv+OBmuOBnyzjgZjjgoXjgpPjgZMNCivjgoLjgoLjga7jgYQs44GR44GE44GZ44GRDQor44G744KT44GgLOOBn+OBkeOBlw0KK+OCguOCiuOBnyzjgoTjgZnjgZcNCivjgoLjgorjgZ8s44GC44GN44Gy44GTDQor44KC44KKLOOBguOBjeOCiQ0KK+OCguOCiizjgYLjgaTjgZcNCivjgoLjgoos44GL44Ga44Gy44KNDQor44KC44KKLOOBv+OBruOCiw0KK+OCguOCiizjgZ/jgYvjgZcNCivjgoDjga3jgoDjgoks44Go44GX44G/44GkDQor44KA44KJ44GL44G/LOOCiOOBhuOBmA0KK+OCgOOCieOBiuOBiyzjgZPjgYbjgZgNCivjgb/jgofjgYbjgYws44Gy44KN44GNDQor44Gq44GM44G/44GtLOOBvuOBleOBlw0KK+OChOOBvuOBoCzjgZfjgpPjgYTjgaENCivjgarjgYzjgYos44Go44GX44GL44GaDQor44Gq44GM44GfLOOBkeOCk+OBmA0KK+OBquOBhOOBqOOBhizjgZPjgYbjgYTjgaHjgo3jgYYNCivjgarjgYvjgYzjgo8s44Gf44KN44GGDQor44Gq44GL44GE44GhLOOBsuOCjeOBruOCig0KK+OBleOBleOBjSzjgaTjgYvjgZUNCivjgarjgYvjgZjjgb4s44Gy44KN44GXDQor44Gq44GL44GX44G+LOOBneOBhuOBn+OCjeOBhg0KK+OBquOBi+OBk+OBmCzjgZ/jgaTjgoQNCivjgarjgYvjgoDjgoks44G+44GV44G144G/DQor44Gq44GL44KA44KJLOOBleOBqOOBlw0KK+OBquOBi+OCgOOCiSzjgajjgYrjgosNCivjgarjgYvjgoDjgoks44GY44KF44KTDQor44Gq44GL44KA44KJLOOBoOOBhOOBmeOBkQ0KK+OBquOBi+OCgOOCiSzjgobjgYbjgZMNCivjgarjgYvjgoDjgoks44KI44GG44GE44GhDQor44Gq44GL44KA44KJLOOBj+OBv+OBkw0KK+OBquOBi+OBq+OBlyzjgajjgZfjgobjgY0NCivjgarjgYvjga4s44Gm44Gk44KEDQor44Gq44GL44GuLOOBjeOCk+OChA0KK+OBquOBi+OBl+OBiizjgZPjgYbjgYTjgaHjgo3jgYYNCivjgarjgYvjgZ8s44GL44Gq44GTDQor44Gq44GL44KE44G+LOOBn+OBi+OBlw0KK+OBquOCk+OBkSzjgYLjgaTjgZcNCivjgarjgonjgZbjgY0s44Gf44GE44Gh44KN44GGDQor44Gq44KK44GbLOOChuOBjeOBsuOCjQ0KK+OBquOCi+OBiuOBiyzjgYTjgZXjgoANCivjga3jgoLjgags44Gf44Gg44GXDQor44Gr44KA44KJLOOBmeOBmeOCgA0KK+OBq+OCgOOCiSzjgb7jgZXjgobjgY0NCivjgavjgZfjgoDjgoks44Gk44Go44KADQor44Gr44GX44GuLOOBi+OBmuOBvuOBlQ0KK+OBq+OBl+OBl+OBnyzjgabjgaTjga7jgooNCivjgavjgZfjgYbjgaEs44GX44KF44GG44GE44GhDQor44Gr44GX44KE44G+LOOBquOBiuOBsuOBqA0KK+OChOOBmOOBvizjgojjgZfjgYgNCivjgavjgZfjgZbjgo8s44KG44Gf44GLDQor44Gr44KPLOOBguOBjeOCiQ0KK+OBruOBtuOBquOBjCzjgb/jgaTjgZcNCivjga7jgYzjgb8s44G+44GT44GoDQor44Gu44GQ44GhLOOBl+OCk+OBhOOBoQ0KK+OBruOBkOOBoSzjgb/jgobjgY0NCivjga7jgb4s44Go44KI44G/DQor44Gu44G+LOOBk+OBhuOBhOOBoQ0KK+OBruOCgOOCiSzjgZPjgYbjgZgNCivjga7jgoDjgoks44Gu44KK44GKDQor44Gu44KA44KJLOOBl+OCheOCk+OBhOOBoeOCjeOBhg0KK+OBruOBmyzjgZ/jgaDjgYLjgY0NCivjga7jgZbjgo8s44KI44GG44GE44GhDQor44Gs44GN44GELOOBi+OBpOOBvw0KK+OBrOOBvuOBiizjgYLjgY3jgokNCivjgazjgb7jgZ8s44GL44Ga44Gy44KNDQor44GK44Gh44GC44GELOOBn+OBi+OChuOBjQ0KK+OBiuOBoeOBguOBhCzjgojjgZfjgYoNCivjgYrjgaDjga/jgoks44GE44GP44GKDQor44GK44GgLOOBv+OBruOCiw0KK+OBiuOBjOOBleOCj+OCiSzjgZfjgoXjgYbjgZgNCivjgYrjganjgb7jgoos44Go44GG44GE44Gh44KN44GGDQor44GK44GL44GpLOOBteOBv+OBig0KK+OBiuOBvuOBlSzjgYLjgY3jgokNCivjgYrjgarjgYws44Gy44KN44KG44GNDQor44GK44GK44GuLOOBsuOBp+OChuOBjQ0KK+OBiuOBiuOBleOBjSzjgYLjgaTjgZcNCivjgYrjgYrjgZXjgo8s44Gy44Gn44Gf44GLDQor44GK44GK44GZ44G/LOOBi+OBmuOChuOBjQ0KK+OChOOBvuOBl+OBnyzjgb7jgZXjgosNCivjgYrjgYrjgZ8s44Gq44KT44Gm44GkDQor44GK44GK44GfLOOBn+OBi+OBlw0KK+OBiuOBiuOBpOOBiyzjgZ/jgaTjgoQNCivjgb7jgaTjgarjgYws44KI44GX44GC44GNDQor44GK44GK44KE44G+LOOBruOCiuOChuOBjQ0KK+OBiuOBi+OBoCzjgorjgYgNCivjgYrjgYvjgaAs44Gf44GR44GXDQor44GK44GL44GgLOOBsuOCjeOBteOBvw0KK+OBiuOBi+OBoCzjgojjgZfjga7jgooNCivjgYrjga7jgafjgoks44Gf44GL44GKDQor44GK44GL44KC44GoLOOBsuOCjeOChuOBjQ0KK+OBiuOBi+OBluOBjSzjgZ/jgYvjgYLjgY0NCivjgYrjgY/jgaAs44Go44GX44KG44GNDQor44GK44GPLOOBruOBtuOChuOBjQ0KK+OBiuOBrizjgZXjgaHjgZMNCivjgYrjga4s44GR44GE44GE44Gh44KN44GGDQor44GK44KK44GmLOOBkeOCk+OBhOOBoQ0KK+OBiuOBleOBoCzjgoDjgaTjgb8NCivjgZXjgYTjgajjgYYs44KA44Gk44GKDQor44GV44GE44Go44GGLOOBl+OCk+OBlA0KK+OBleOBhOOBqOOBhizjgZfjgoXjgYbjgZgNCivjgZXjgYTjgajjgYYs44KI44GG44GE44GhDQor44GV44GE44Go44GGLOOChuOBn+OBiw0KK+OBleOBhOOBqOOBhizjgYvjgZrjgbLjgo0NCivjgZXjgYTjgajjgYYs44GC44GN44Gy44KNDQor44GV44GL44GELOOBhOOBoeOCjeOBhg0KK+OBhOOBl+OBluOBjSzjgobjgY3jga7jgooNCivjgZXjgYvjgoLjgags44Gy44KN44GXDQor44GV44GL44Gu44GG44GILOOBsuOBp+OBig0KK+OBleOBi+OBhuOBiCzjgYvjgZrjgb7jgZUNCivjgZXjgZPjgaAs44Gu44G244GKDQor44GV44GP44KJ44GELOOBl+OBkuOBruOCig0KK+OBleOBj+OCieOBhCzjgZ/jgYvjgZcNCivjgZXjgazjgY0s44KK44KF44GG44Gf44KN44GGDQor44GV44GV44GNLOOBguOBjeOBqA0KK+OBqOOBv+OBnyzjgajjgoLjgarjgooNCivjgZXjgajjgYYs44Gm44Gk44GKDQor44GV44Go44GGLOOBquOBiuOBjQ0KK+OBleOBqOOBhizjgojjgZfjga7jgooNCivjgZXjgajjgYYs44G+44GV44KG44GNDQor44GV44Go44GGLOOBqOOBl+OChA0KK+OBleOBqOOBhizjgYLjgaTjgZMNCivjgZXjgo/jgaAs44G+44GV44GoDQor44Gb44GKLOOBkeOCk+OBleOBjw0KK+OBm+OBluOBhCzjgYvjgZrjgoTjgZkNCivjgZfjgbDjgZ8s44Gf44GR44Gy44GTDQor44GX44Gw44GfLOOCiOOBhg0KK+OBl+OBjOOBjSzjgYLjgY3jgbLjgZMNCivjgZfjgb/jgZos44Gy44KN44KADQor44GX44G/44GaLOOCiOOBl+OBvw0KK+OBl+OBv+OBmizjgYLjgY3jgokNCivjgZfjgb/jgZos44GC44GN44Go44GXDQor44GX44G/44GaLOOBsuOBp+OBig0KK+OBl+OCguOCgOOCiSzjgbLjgo3jgYLjgY0NCivjgZfjga7jga/jgoks44GL44Ga44Gy44KNDQor44GX44KJ44GkLOOBvuOBk+OBqA0KK+OBl+OCjeOBl+OBnyzjgZXjgajjgZcNCivjgZfjgofjgYbjgZgs44KG44GG44GTDQor44GX44KH44GG44G/44GkLOOCiOOBl+OBsuOCjQ0KK+OBneOBoCzjgYvjgaTjgZnjgZENCivjgZ3jgoLjgoos44Gf44Gk44GKDQor44Gd44GGLOOBi+OBmuOBsuOBkw0KK+OBquOBiyzjgobjgYbjgZgNCivjgZnjgY7jgoDjgoks44GR44GE44GXDQor44GZ44GO44GuLOOBvuOBleOBsuOCjQ0KK+OBmeOBjuOBleOCjyzjga7jgbbjgobjgY0NCivjgZnjgY7jgZ8s44GV44KG44KKDQor44GZ44GO44GG44GhLOOBl+OCk+OBmeOBkQ0KK+OBmeOBjuOChOOBvizjgYLjgY3jga7jgooNCivjgZnjgY7jgoTjgb4s44G+44GV44Gu44KKDQor44GZ44GO44KE44G+LOOBi+OBmuOBvw0KK+OBmeOBmuOBjSzjgZfjgpPjgoQNCivjgZnjgZrjgY0s44KG44GG44GYDQor44GZ44Ga44GNLOOBl+OCkw0KK+OBmeOBmuOBjSzjgbLjgo3jgYLjgY0NCivjgZnjgZrjgY0s44Go44GX44GC44GNDQor44GZ44Ga44GNLOOBsuOBp+OBqA0KK+OBmeOBmuOBjSzjgZPjgYbjgYTjgaENCivjgZnjgZrjgY0s44KG44GG44GTDQor44Gf44Gh44Gw44GqLOOBn+OBi+OBlw0KK+OBn+OBhOOCiSzjgYLjgY3jgokNCivjgZ/jgYTjgoks44Gy44Gn44GC44GNDQor44Gf44GL44GgLOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OBjizjgb7jgZXjgYvjgZoNCivjgZ/jgYvjga/jgZcs44Gu44KK44GE44GkDQor44Gf44GL44Gv44GXLOOBn+OBi+OChuOBjQ0KK+OBn+OBi+OBr+OBlyzjga/jgZjjgoENCivjgb7jgZnjgZbjgo8s44Gy44Go44GXDQor44Gf44GL44Gv44GXLOOBvuOBleOBguOBjQ0KK+OBn+OBi+OBvizjgbLjgZXjgagNCivjgZ/jgYvjga4s44G/44GI44GTDQor44Gf44GL44GuLOOBi+OBmuOCiOOBlw0KK+OBn+OBi+OBleOBiyzjga/jgZjjgoENCivjgZ/jgYvjgZss44GL44Gk44GYDQor44Gf44GL44GfLOOBj+OBv+OBkw0KK+OBn+OBi+OChOOBvizjgYLjgaTjgZcNCivjgZ/jgYvjgoTjgarjgY4s44GC44KK44Gy44KNDQor44Gf44GR44GgLOOBiOOCig0KK+OBn+OBkeOBoCzjgYLjgY3jgokNCivjgbXjgZjjgYQs44GC44Gk44GTDQor44Gf44GR44Gu44KKLOOBhOOBj+OBlw0KK+OBn+OBkeOBl+OBnyzjgbLjgo3jgYvjgZoNCivjgZ/jgZHjgYbjgaEs44KG44GG44GYDQor44Gf44GR44GG44GhLOOBn+OBi+OBqOOBlw0KK+OBn+OBjeOBluOCjyzjgb7jgZXjgYLjgY0NCivjgZ/jgY3jgZbjgo8s44Gk44KI44GXDQor44Gf44G+44GNLOOBleOBqOOBkw0KK+OBn+OCgOOCiSzjgYLjgY3jgbLjgo0NCivjgZ/jgoDjgoks44Gm44Gk44GtDQor44Gf44KA44KJLOOBruOBtuOBig0KK+OBn+OBquOBiyzjgZfjgofjgYbjgZQNCivjgo/jgZ/jgarjgbks44GC44GN44Gy44KNDQor44Gf44Gr44KE44G+LOOBruOBvOOCiw0KK+OBn+OBqyzjgYvjgZrjgbLjgZMNCivjgabjgonjgY3jgZ8s44Gq44GM44Gu44KKDQor44Gm44Ga44GLLOOBl+OCk+OBhOOBoQ0KK+OBqOOBsOOCiizjgZnjgZnjgoANCivjgajjgYzjgZcs44GY44KF44KT44GE44GhDQor44KE44G+44GgLOOBkeOCk+OBhOOBoQ0KK+OBqOOBjeOBnuOBrizjgZfjgZLjgYoNCivjgajjgb/jgarjgYws44KC44Go44Gy44GVDQor44Go44G/44Gq44GMLOOBl+OCk+OBmA0KK+OBqOOBv+OBnyzjgZfjgpPjgZgNCivjgajjgb/jgZ8s44Gm44Gk44GKDQor44Go44KC44GK44GLLOOBsuOBqOOBlw0KK+OBqOOBruOBleOBjSzjgojjgZfjga7jgooNCivjgajjgorjgZbjgo8s44GI44G/DQor44GT44GE44GRLOOBsuOCjeOBkw0KK+OBqOOCiOOBi+OCjyzjgb7jgZXjgojjgZcNCivjgajjgojjgYvjgo8s44Gy44GV44KI44GXDQor44Gk44G844GELOOBn+OBoOOBlw0KK+OBpOOBi+OBoCzjgajjgYrjgosNCivjgaTjgY/jgYQs44Gy44GV44GXDQor44Gk44KL44GL44KPLOOBiOOBhOOBmA0KK+OBpOOBpOOBhCzjgajjgZfjgYvjgZoNCivjgaTjgaTjgYQs44KG44GG44GYDQor44GG44Gh44GgLOOBsuOCjeOBjQ0KK+OBhuOBoeOBoCzjgZjjgoXjgpPjgYTjgaENCivjgYbjgaHjgb4s44GX44KF44KT44GE44GhDQor44GG44Gh44KE44G+LOOBguOBjeOBsuOCjQ0KK+OBhuOBoCzjgbLjgZXjgojjgZcNCivjgYbjgYjjgaAs44GL44Ga44Gu44KKDQor44GG44GI44GuLOOBjeOCiOOBlw0KK+OBhuOBiOOBrizjga7jgorjgYoNCivjgYbjgYjjga4s44Gf44GL44GXDQor44GG44GR44GM44KPLOOBn+OBi+OChuOBjQ0KK+OBhuOBvuOBmuOCgSzjgojjgZfjgbLjgo0NCivjgYbjgoHjgoDjgoks44GN44G/44Gy44KNDQor44KP44GgLOOBsuOCjeOBlw0KK+OCj+OBoCzjgoTjgZnjgbLjgZMNCivjgo/jgZ/jgarjgbks44KK44KH44GGDQor44GE44GE44GgLOOBleOBqOOBlw0KK+OCj+OBn+OBquOBuSzjgZ/jgYvjgZcNCivjgo/jgZ/jgoos44KE44GZ44KI44GXDQor44KE44GOLOOCiOOBl+OChuOBjQ0KK+OChOOBvuOBoCzjgbLjgo3jgobjgY0NCivjgoTjgb7jgYws44Gy44Gn44GKDQor44KE44G+44GQ44GhLOOBvuOBleOBruOCig0KK+OChOOBvuOBkOOBoSzjgbLjgafjgYoNCivjgoTjgb7jgZDjgaEs44G+44GV44GXDQor44KE44G+44KC44GoLOOBpuOBpOOChA0KK+OChOOBvuOCguOBqCzjgb7jgZXjgobjgY0NCivjgoTjgb7jgoLjgags44GL44Ga44KG44GNDQor44KE44G+44KC44GoLOOBsuOBp+OBlw0KK+OChOOBvuOCguOBqCzjgb7jgZXjga7jgooNCivjgoTjgb7jgoLjgags44GL44Ga44GoDQor44KE44G+44KC44GoLOOBi+OBiuOCiw0KK+OChOOBvuOCguOBqCzjgb7jgZXjgojjgZcNCivjgoTjgb7jgarjgYss44GI44GE44GYDQor44KE44G+44GX44GfLOOBleOBqOOCiw0KK+OChOOBvuOBhuOBoSzjgYvjgZrjgYLjgY0NCivjgoTjgb7jgZbjgY0s44Gv44KL44Gy44GTDQor44KE44G+44GW44GNLOOBvuOBleOBqOOBlw0KK+OChOOBvuOBluOBjSzjgZHjgpPjgZgNCivjgoTjga4s44KG44GN44GKDQor44KE44GuLOOBk+OBhuOBhOOBoQ0KK+OChOOBmeOBoCzjgZ/jgZHjgZcNCivjgoTjgZnjgb7jgaQs44GL44Gk44Gq44KKDQor44KE44GZ44KC44GoLOOBk+OBhuOBmA0KK+OChOOBmeOBq+OCjyzjgZ/jgYvjgobjgY0NCivjgojjgaAs44GK44GV44KADQor44KI44GgLOOBhOOBleOBig0KK+OCiOOBl+OBoCzjgojjgZfjgbLjgo0NCivjgojjgZfjgYQs44Gf44Gk44KEDQor44KI44GX44Gq44GMLOOChuOBv+OBkw0KK+OCiOOBl+OBrizjgZ/jgaTjgb8NCivjgojjgZfjgZ/jgZEs44GC44GN44Gy44KNDQor44Gf44GN44GW44KPLOOBn+OBi+OBlw0KK+OChOOBvuOBkOOBoSzjgYvjgZrjgojjgZcNCivjgYvjgbDjgZfjgb4s44GL44Ga44Gy44GVDQor44GV44GP44KJLOOChuOBhuOBmeOBkQ0KK+OCgOOCieOChOOBvizjgbLjgo3jgobjgY0NCivjgbLjgY3jgaAs44GL44Ga44G/DQor44KA44KJ44GELOOBj+OBq+OBsuOCjQ0KK+OBuyzjgYLjgY3jgokNCivjgYjjgpPjgaks44Gb44GE44GYDQor44Gm44KJ44KA44KJLOOBn+OBpOOBig0KK+OCj+OBn+OBquOBuSzjgZ/jgYvjgbLjgZMNCivjgYTjgb7jgYQs44GX44GS44KEDQor44KC44KK44KC44GoLOOBqOOBl+OBi+OBmg0KK+OBk+OChOOCiizjgZvjgYTjgZgNCivjgb7jgaTjgb/jgoQs44KG44GG44GE44GhDQor44GX44Gw44GfLOOBi+OBmuOBig0KK+OBoeOBl+OCjSzjgojjgZfjgbLjgo0NCivjgYTjgZ/jgb8s44Gy44Gn44GKDQor44GK44GW44GNLOOBsuOBqOOBlw0KK+OBteOBj+OCguOBqCzjgb7jgZXjgaTjgZANCivjgYrjgYvjgaAs44Gy44KN44GXDQor44GV44KP44GgLOOBsuOCjeOBlw0KK+OBleOBj+OCieOBhCzjgZ/jgYvjgZcNCivjga/jgoTjgZcs44KI44GX44Gu44KKDQor44G+44Gk44GK44GLLOOChOOBmeOBruOCig0KK+OBv+OCiOOBlyzjga7jgorjgojjgZcNCivjgoTjgb7jgarjgYss44GT44GG44GY44KN44GGDQor44GX44G/44GaLOOBsuOBqOOBlw0KK+OBk+OBr+OCiSzjgb7jgZXjga7jgooNCivjgavjgZfjgYvjgo8s44Gy44KN44GXDQor44GE44G+44GELOOChOOBmeOBig0KK+OBteOBmOOCgOOCiSzjgbLjgo3jgobjgY0NCivjgZPjgZjjgb4s44KE44GZ44KG44GNDQor44GT44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBjeOBj+OBoSzjgYvjgaTjgbLjgZMNCivjgZXjgYTjgajjgYYs44G/44Gk44KLDQor44KE44G+44GX44GfLOOBsuOBp+OBguOBjQ0KK+OBguOBuSzjgZfjgpPjgZgNCivjgabjgZrjgYss44Gf44GL44GXDQor44Gf44Gq44GLLOOCj+OBn+OCiw0KK+OBq+OCjyzjgb/jga7jgosNCivjgYvjgoHjgYQs44G/44Ga44G7DQor44KE44GuLOOBv+OBpOOBig0KK+OBquOBi+OBvuOCiyzjgoTjgZnjgZcNCivjgYrjgYrjga/jgZ8s44G+44GV44Gu44KKDQor44KE44GZ44KE44G+LOOBvuOBleOBsuOCjQ0KK+OBi+OBmeOBjCzjgb/jgaTjgYoNCivjgYTjgZfjgYQs44GC44GN44Gy44GTDQor44G144GY44KC44KKLOOBruOCiuOBkw0KK+OBhOOCj+OCguOBqCzjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44KL44G/44GTDQor44GN44GfLOOBqOOCguOBvw0KK+OCgOOCieOBiuOBiyzjgobjgYbjgZMNCivjgYTjgZDjgZUs44KI44GX44Ga44G/DQor44Gq44GM44GV44KPLOOBsuOCjeOBmA0KK+OChOOBvuOBkOOBoSzjgoTjgZnjgbLjgo0NCivjgYrjgaDjgZjjgb4s44KG44Gf44GLDQor44GK44GK44GfLOOBvuOBvw0KK+OBr+OBjuOBrizjgarjgYrjgYTjgaHjgo3jgYYNCivjgoTjgbbjgY0s44Go44GX44GC44GNDQor44GE44GNLOOCiOOBl+OBqOOBlw0KK+OBleOBhOOBqOOBhizjgb7jgZXjgagNCivjgoTjgb7jgaAs44Gf44GL44GXDQor44Gq44GL44KE44G+LA0KK+OCgOOCieOBvuOBpCzjgYvjgYrjgosNCivjgZ/jgZfjgo0s44GX44KH44GG44GE44GhDQor44GE44GX44Gv44KJLOOBvuOBleOChuOBjQ0KK+OBl+OBsOOBiuOBiyzjgZ/jgaTjgYoNCivjgarjgYvjgYos44KE44GZ44Gu44KKDQor44G144GY44GfLOOBqOOBl+OBjQ0KK+OBleOBj+OBnyzjgb7jgZXjgobjgY0NCivjga/jgZ8s44GZ44GZ44KADQor44GK44GK44KE44G+LOOBn+OBoOOBlw0KK+OBn+OBlCzjgY3jgofjgYbjgZMNCivjgb7jgaTjgoDjgoks44GL44Ga44GKDQor44GE44Go44GGLOOBvuOBleOChuOBjQ0KK+OBjeOCgOOCiSzjgZ/jgZHjgYoNCivjgYLjgYrjgY0s44G/44Gk44Gf44GLDQor44GT44G+44GM44GfLOOBsuOBp+OBqOOBlw0KK+OBquOCieOCgOOCiSzjgYvjgZrjgZMNCivjgbXjgZjjgoLjgags44G+44GV44GNDQor44G/44KE44GV44GLLOOBqOOBl+OBsuOBkw0KK+OBr+OChOOBlyzjgb7jgZXjgbLjgo0NCivjgZXjgYTjgajjgYYs44GL44Ga44Gy44GTDQor44GK44GM44GV44KP44KJLOOBl+OCh+OBhuOBmA0KK+OBiuOBiuOBpOOBiyzjgajjgZfjgobjgY0NCivjgYvjgo/jgYQs44Go44KC44KG44GNDQor44GX44G+44GaLOOCiOOBhuOBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgY3jgZfjgZMNCivjgb7jgYjjgZbjgo8s44GE44Ga44G/DQor44Gv44GgLOOBi+OBiuOCiw0KK+OBvuOBpOOBsuOCiSzjgYjjgooNCivjgZnjgY7jga/jgoks44Gu44G844KLDQor44Gq44GL44GY44G+LOOCiOOBl+OBruOBtg0KK+OBr+OBn+OBkeOChOOBvizjgabjgaTjgoQNCivjgYLjgYrjgY0s44G+44GV44Gy44GTDQor44GX44G244GL44KPLOOBjeOCiOOBsuOBlQ0KK+OBhOOBl+OBoCzjgZfjgZLjgosNCivjgYrjgYvjgaAs44Gf44GL44GXDQor44GE44Go44GGLOOBguOBjeOCiQ0KK+OBi+OBqOOBhizjgb7jgZXjgbLjgo0NCivjgZPjgbDjgoTjgZcs44Gq44GK44G/44GkDQor44KA44KJ44GV44KPLOOBv+OBruOCiw0KK+OBv+OBuyzjgb7jgZXjga7jgooNCivjgZnjgYzjga0s44KI44GX44Gu44G2DQor44GE44GX44GL44KPLOOCiOOBl+OBsuOBkw0KK+OBiuOBiyzjgoTjgZnjgbLjgo0NCivjgYTjgo/jgb8s44KG44G/44GTDQor44Gq44GL44KE44G+LOOBsuOCjeOBlw0KK+OBhOOBqOOBhizjgYvjgZrjgY0NCivjgZnjgY7jgoTjgb4s44GX44KT44GE44GhDQor44GL44GX44KC44GoLOOCiOOBl+OBkw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgobjgY0NCivjgYLjgYrjgoTjgb4s44Gy44Gn44Gu44KKDQor44GX44Gw44GfLOOBkeOCk+OBhOOBoQ0KK+OBvuOBpOOBiizjgojjgZfjga7jgooNCivjgZfjga7jgoDjgoks44GC44GK44GEDQor44G144KL44GL44KPLOOCiOOBl+OBteOBvw0KK+OCguOBqOOBjSzjgZfjgoXjgYbjgYTjgaENCivjgo/jgZ/jgarjgbks44Gh44GKDQor44GC44KT44Gp44GGLOOBvuOBleOBsuOCjQ0KK+OBn+OBkeOBsizjgZXjgaHjgZMNCivjgYTjgZfjgYQs44GC44GN44G144G/DQor44Gu44Gh44GbLOOBi+OBmuOBsuOBkw0KK+OBv+OChOOBquOBjCzjgajjgZfjgZMNCivjgZfjgpPjganjgYYs44Gy44KN44G/DQor44GK44GK44GfLOOBv+OCiOOBkw0KK+OBn+OBqyzjgojjgZfjgYLjgY0NCivjgZPjgoDjgo0s44G144G/44Gu44KKDQor44GE44KP44GVLOOBsuOCjeOBv+OBoQ0KK+OBvuOBpOOCguOBqCzjgbLjgafjgYLjgY0NCivjgY3jgoDjgoks44Gy44GV44GoDQor44GC44GK44GNLOOBguOBjeOBsuOBkw0KK+OBvuOBpOOBsOOChOOBlyzjgbLjgo3jgZcNCivjgZTjgajjgYYs44G144G/44KG44GNDQor44GK44GM44KPLOOBguOBjeOCiQ0KK+OBmeOBjuOBn+OBqyzjga/jgovjgYoNCivjgYrjgY/jga4s44KG44GN44GKDQor44GV44GP44KJ44GgLOOBl+OCk+OBuuOBhA0KK+OCgOOBk+OChOOBvizjga7jgorjgZMNCivjgYTjgajjgYYs44GV44Go44GXDQor44KE44G+44KC44GoLOOBn+OBoOOBlw0KK+OChOOBvuOCguOBqCzjgb7jgZXjgajjgZcNCivjgYvjga3jgZMs44GX44KF44GG44G444GEDQor44KE44G+44GW44GNLOOChOOBmeOBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgajjgoINCivjgb/jgo8s44GK44GV44KADQor44GV44KA44GL44KPLOOBl+OCjeOBhg0KK+OBquOBi+OBoCzjgajjgZfjgobjgY0NCivjgojjgZfjgajjgb8s44GR44KT44GE44GhDQor44Gf44GL44GX44G+LOOBpOOBreOBmA0KK+OBhOOBl+OBkizjgYLjgY3jgZMNCivjgZnjgYjjga/jgoks44Gy44KN44KG44GNDQor44GE44Gu44GG44GILOOBsuOBp+OBvw0KK+OBruOBmOOBviwNCivjgZXjgY/jgb4s44GV44Gh44GIDQor44GV44GuLOOCiOOBl+OBv+OBoQ0KK+OCgOOCieOBiuOBiyzjgYvjgaTjgZgNCivjgb/jgYbjgoks44KK44KF44GG44Ge44GGDQor44GV44GL44KC44GoLOOBmOOCheOCkw0KK+OBquOCi+OBiizjgZvjgYTjgZMNCivjga/jgZvjgYzjgo8s44G/44Gk44Gy44KNDQor44GK44GL44GgLOOBpuOBpOOBig0KK+OChOOBsuOCjSzjga7jgbbjgobjgY0NCivjgbDjgbAs44Gf44GP44KEDQor44GC44GfLOOBguOChOOBrg0KK+OBquOBjOOBmyzjgY3jgojjgZcNCivjgYvjgo/jgYgs44GE44Ga44G/DQor44G/44GG44KJLOOBvuOBjeOCiA0KK+OBteOBmOOBnyzjgZXjgajjgZMNCivjgaTjgovjgb8s44KI44GX44GKDQor44KC44Gh44Ga44GNLOOBiOOBv+OBkw0KK+OCiOOBl+OBoCzjgYvjgZrjgYLjgY0NCivjgYrjgYvjgoLjgags44G+44GV44G144G/DQor44KE44GZ44KC44GoLOOBv+OBpOOBr+OCiw0KK+OBreOCguOBqCzjgZ/jgY/jgZgNCivjgbLjgaDjgYss44GG44GI44G/44GkDQor44G+44GZ44GgLOOBj+OBv+OBkw0KK+OBqOOBj+OBquOBjCzjgbXjgb/jgbLjgagNCivjgarjgYvjgZbjgo8s44GZ44GZ44KADQor44G144GY44Gq44KPLOOCiOOBl+OBr+OCiw0KK+OCiOOBs+OBi+OCjyzjgYvjgZrjgbLjgo0NCivjgY3jgZ/jgaAs44Gf44GR44GXDQor44KI44GX44GuLOOChOOBmeOBsuOCjQ0KK+OBsOOBsCzjgojjgZfjgagNCivjgY/jgo3jgYvjgo8s44Gy44KN44GXDQor44GL44Go44GGLOOBn+OBi+OBlw0KK+OCj+OBn+OBquOBuSzjgajjgZfjgYoNCivjgaTjgaHjgaAs44GC44Gk44GTDQor44GZ44Ga44GNLOOBv+OChuOBjQ0KK+OBv+OBmuOBrizjgYLjgY3jgokNCivjgZ/jgavjgoLjgags44Gf44GP44G/DQor44GE44GR44GuLOOCgeOBkOOBvw0KK+OBhOOBqOOBhizjgZfjgofjgYbjgZMNCivjgZ/jgZHjgaAs44Go44GK44KLDQor44G+44GI44GgLOOBk+OBhuOBuOOBhA0KK+OBj+OBqeOBhizjgYvjgaTjgb8NCivjgYvjgZLjgoTjgb4s44G/44Gt44GKDQor44KE44G+44GL44GSLOOCiOOBhuOBmA0KK+OBleOBiOOBkOOBlSzjgozjgYTjgZMNCivjgb/jgZrjgZ/jgass44Gq44GK44GTDQor44GP44Gp44GGLOOBqOOBl+OBsuOBkw0KK+OBk+OBiuOCiuOChOOBvizjgb/jgZrjgbsNCivjgYvjgZ/jgojjgZss44KI44GX44GIDQor44GK44GV44GgLOOBkeOBhOOBkw0KK+OChOOBjuOBr+OBlyzjgZfjgoXjgYbjgYTjgaENCivjgZnjgb8s44Gf44Gk44GKDQor44Gf44Gq44GLLOOBguOBpOOBlw0KK+OBj+OBqeOBhizjgobjgY3jgYoNCivjgZ/jgZHjgbIs44GC44GN44KJDQor44GC44KB44G/44KELOOBv+OBoeOBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgZ/jgYvjgZcNCivjgY3jgojjgb/jgaQs44GR44KT44GYDQor44GE44Ga44G/44GgLOOCiOOBl+OBiw0KK+OBteOBquOBjSzjgbLjgo3jgYLjgY0NCivjgZ/jgZHjgZfjgZ8s44GL44Ga44Gy44GTDQor44G/44GG44KJLOOBjeOBj+OBig0KK+OBhOOBl+OBsOOBlyzjga7jgbbjgZMNCivjgoLjgorjgYLjgYQs44GR44GE44GYDQor44KA44KJ44KE44G+LOOBiOOBhOOBmOOChQ0KK+OBiuOBleOCjyzjgoTjgZnjga7jgooNCivjgbXjgYvjgaAs44KI44GX44GL44GaDQor44KE44G+44GgLOOBsuOBp+OBsuOBkw0KK+OBhOOBqOOBhizjgYLjgY3jgokNCivjgYrjga7jgafjgoks44Go44G/44GKDQor44Gv44KE44GV44GLLOOBvuOBleOBv+OBoQ0KK+OBiuOBiuOBpOOBiyzjgbLjgafjgbLjgZMNCivjgajjgYrjgoTjgb4s44Gy44KN44Gf44GLDQor44GL44KP44Gv44KJLOOBv+OBpOOCiw0KK+OBiOOBs+OBleOCjyzjgb7jgZXjgY0NCivjgoTjgb7jgYvjgo8s44Gm44Gk44KEDQor44KE44G+44KC44GoLOOChOOBmeOBqOOCgg0KK+OBmeOBmuOBjSzjgajjgYrjgosNCivjgYrjgoTjgb7jgaAs44Gf44GL44GXDQor44G+44Gk44KE44G+LOOCiuOCheOBhuOBhOOBoQ0KK+OBguOBuSzjga7jgbbjgbLjgo0NCivjgYLjgbks44KE44GZ44GKDQor44GC44G5LOOBi+OBmuOBvuOBlQ0KK+OBguOBuSzjgobjgY3jgYoNCivjgYLjgZLjgZ8s44GY44KF44KT44GE44GhDQor44GC44GL44Gv44GtLOOBsuOBp+OBsuOCjQ0KK+OBguOBkeOBquOBjCzjgZjjgoXjgpMNCivjgYLjgY3jgoTjgb4s44GX44GS44GKDQor44GC44GN44GW44KPLOOBsuOBp+OBi+OBmg0KK+OBguOBvuOBoCzjgb/jgY3jgYoNCivjgYLjgb7jga4s44G+44GV44GXDQor44GC44KC44GGLOOBguOBjeOBig0KK+OBguOCk+OBqeOBhizjgbLjgafjgYLjgY0NCivjgYLjgpPjganjgYYs44Gq44GK44GNDQor44GC44KT44Gp44GGLOOBqOOBl+OBteOBvw0KK+OBguOBiuOBrizjgbLjgo3jgY0NCivjgYLjgYrjgoTjgb4s44GE44KP44GKDQor44GC44KJ44GELOOBi+OBmuOBsuOCjQ0KK+OBguOCieOBi+OCjyzjgbLjgafjgZcNCivjgYLjgorjgoLjgags44Gy44Gn44GNDQor44GC44KK44GKLOOBvuOBk+OBqA0KK+OBguOBleOBhCzjgYLjgY3jgokNCivjgYLjgZXjgYvjgo8s44KI44GX44Gy44GoDQor44GP44KN44GNLOOChuOBjeOBruOCig0KK+OBguOBmuOBvizjgZfjgpPjgZgNCivjgbDjgpPjga4s44G+44GV44GN44KIDQor44G544Gk44KE44GPLOOBkeOCk+OBlA0KK+OBs+OBqOOBhizjgZjjgpMNCivjgaHjgbAs44Gy44KN44GXDQor44Gh44KF44GGLOOBi+OBpOOBjQ0KK+OBiOOBoCzjgZHjgpPjgYTjgaHjgo0NCivjgYjjgpPjgaks44Gq44GK44G/DQor44GI44GV44GNLOOBl+OCk+OBhOOBoQ0KK+OBteOBmOOBhCzjgbLjgo3jgZcNCivjgbXjgZjjgYQs44G144G/44GKDQor44G144GY44KC44GoLOOBguOBjeOCiQ0KK+OBteOBmOOBnyzjgY3jgojjgarjgYoNCivjgbXjgZjjgZ8s44GC44GN44Gy44KNDQor44G144GY44KP44KJLOOBleOBqOOBlw0KK+OBteOBi+OBluOCjyzjgajjgoLjgbLjgagNCivjgbXjgY/jgaAs44GZ44GZ44KADQor44G144GP44Gv44KJLOOChOOBmeOBsuOBkw0KK+OBteOBj+OBl+OBvizjgYvjgZrjgojjgZcNCivjgbXjgY/jganjgoEs44GL44Ga44Gy44GVDQor44G144GP44KE44G+LOOBleOBqOOBlw0KK+OBteOBquOBsOOBlyzjgb7jgZXjgobjgY0NCivjgbXjgovjgaDjgaYs44GC44GN44Gy44GTDQor44G144KL44GV44KPLOOBl+OCk+OBmA0KK+OBteOCi+OBnyzjgorjgY3jgoQNCivjgbXjgovjgoQs44GX44KT44GE44GhDQor44G144GX44GNLOOChuOBhuOBhOOBoQ0KK+OBr+OBvuOBoCzjgZPjgYbjgYTjgaHjgo3jgYYNCivjga/jgarjgaAs44GL44Gk44Gu44KKDQor44Gv44Gq44G/LOOBsuOBp+OBig0KK+OBr+OCieOBoCzjgYLjgY3jgokNCivjga/jgovjgYvjgo8s44GE44Ga44G/DQor44Gv44Gb44GM44KPLOOCiOOBhuOBhOOBoQ0KK+OBiuOBiuOBpCzjgoDjga3jgbLjgo0NCivjga/jgZfjgoLjgags44GC44Gk44GXDQor44Gv44GX44KC44GoLOOBiOOBv+OBkw0KK+OBr+OBmeOCguOBqCzjgYLjgaTjgZcNCivjga/jgaPjgajjgoos44Gk44KI44GXDQor44Gv44KE44GV44GLLOOBn+OBi+OBig0KK+OBsuOBoOOBiyzjgZHjgZXjgYoNCivjgbLjgZDjgaEs44GR44GE44GTDQor44Gy44GQ44GhLOOBteOBleOChuOBjQ0KK+OBsuOBmOOBj+OCjSzjgarjgYrjgobjgY0NCivjgbLjgonjgYvjgo8s44GY44KF44KT44GE44GhDQor44Gy44KJ44GuLOOBsuOCjeOCiA0KK+OBsuOCieOBnyzjgb7jgZXjgbLjgo0NCivjgbLjgo3jgZss44GV44Gh44GTDQor44Gy44GV44GgLOOBn+OBi+OBlw0KK+OBu+OCiizjga7jgorjgoTjgZkNCivjgbvjgYbjgoQs44GL44Ga44Gy44GTDQor44G744KT44GgLOOBl+OBkuOChuOBjQ0KK+OBu+OCk+OBvizjgZ/jgaTjgoQNCivjgZ/jgarjgYss44Gk44KI44GXDQor44G744GX44GY44G+LOOBn+OBpOOBig0KK+OBu+OBl+OBiyzjgZ/jgZHjgZcNCivjgbvjgZ3jgaAs44Gh44GI44G/DQor44GE44Gh44GL44KPLOOChOOBmeOBsuOCjQ0KK+OBhOOBoeOCgOOCiSzjgZHjgYTjgZQNCivjgYTjgYzjga4s44G/44Gp44KKDQor44GE44GE44GgLOOBvuOBleOChuOBjQ0KK+OBhOOBhOOBiuOBiyzjgbLjgo3jgZcNCivjgarjgYzjga4s44GV44Go44KLDQor44GE44GR44GW44KPLOOBruOBtuOChOOBmQ0KK+OBhOOCguOBqCzjgZnjgb/jgowNCivjgYTjgarjgZrjgb8s44KE44GZ44Gv44KLDQor44GP44GX44G/44KELOOBl+OCk+OBhOOBoQ0KK+OBhOOBruOBhuOBiCzjgZfjgpPjgoQNCivjgYTjga7jgYbjgYgs44GC44GN44KJDQor44GE44Gu44GG44GILOOBqOOCguOChuOBjQ0KK+OBhOOBrOOBpOOBiyzjgarjgYrjgY0NCivjgYTjgZXjgZgs44Gy44Gn44GoDQor44GE44GX44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBhOOBl+OBoCzjgYTjgZXjgYoNCivjgYTjgZfjgaAs44GP44Gr44GC44GNDQor44GE44GX44GM44GNLOOBiOOCiuOBkw0KK+OBhOOBl+OBjOOBvyzjgZjjgoXjgpPjgYTjgaENCivjgYvjgZjjgZ/jgass44GK44GV44KADQor44GE44GX44Gv44KJLOOBsuOCjeOChuOBjQ0KK+OBhOOBl+OCgOOCiSzjgb7jgZXjgbLjgZMNCivjgYTjgZfjgoTjgb4s44GX44KF44GG44GE44GhDQor44GE44GX44GW44GNLOOBruOBtuOBig0KK+OBhOOBneOBuSzjgojjgZfjgbLjgZMNCivjgYTjgZ3jgZbjgY0s44G+44GV44GC44GNDQor44GE44Go44GGLOOBoeOBj+OBlQ0KK+OBhOOBqOOBhizjgbLjgZXjgagNCivjgYTjgo/jgYLjgZUs44GR44KT44Gf44KN44GGDQor44GE44KP44GELOOBquOBiuOBn+OBiw0KK+OBhOOCj+OBvizjgZXjgajjgZcNCivjgYTjgo/jgoLjgags44KI44GG44GE44GhDQor44GE44KP44Gq44GMLOOBsuOCjeOBruOCig0KK+OBhOOCj+OBl+OBnyzjgZfjgZMNCivjgYTjgo/jgZ8s44GL44Ga44G+44GVDQor44GE44KP44GfLOOBiOOBhOOBmA0KK+OBi+OBqeOCj+OBjSzjgZXjgajjgZcNCivjgYvjgZLjgoTjgb4s44GR44KT44GE44GhDQor44KP44Gf44Gq44G5LOOBhOOBmuOBvw0KK+OBi+OBv+OChCzjgY/jgavjgYLjgY0NCivjgYvjgb/jgoQs44GR44KT44GE44GhDQor44GL44KT44Gw44KE44GXLOOBjeOCk+OBmA0KK+OBi+OBruOBhizjgbLjgo3jgZcNCivjgYvjgorjgoQs44Gq44KK44KE44GZDQor44GL44GV44GNLOOBmOOCheOCkw0KK+OBi+OBl+OBvizjgb7jgZXjgYoNCivjgYvjgZnjgoQs44GC44GN44KJDQor44GL44Go44GGLOOBn+OBi+OBjQ0KK+OBi+OBqOOBhizjgYvjgZrjgbLjgo0NCivjgYvjgajjgYYs44GR44KT44GYDQor44GL44Go44GGLOOBv+OBpOOBkA0KK+OBi+OBqOOBhizjgbLjgafjga7jgooNCivjgYvjgajjgYYs44Gy44KN44KG44GNDQor44GL44KP44Gw44GfLOOBoOOBhA0KK+OBi+OCj+OBsOOBnyzjgYLjgaTjgZcNCivjgYvjgo/jgZDjgaEs44Gy44Gn44G/44GhDQor44GL44KP44Gv44KJLOOBsuOCjeOBvw0KK+OBi+OCj+OBr+OCiSzjgYvjgZrjgbXjgb8NCivjgYvjgo/jgZjjgoos44G/44Gh44GKDQor44GL44KP44GL44G/LOOBpuOBpOOBig0KK+OBi+OCj+OBj+OBvCzjgYvjgZrjgajjgZcNCivjgYvjgo/jgb7jgZ8s44Gf44GL44Gu44G2DQor44GL44KP44KA44KJLOOBsuOBqOOBlw0KK+OBi+OCj+OBrizjga7jgorjgYLjgY0NCivjgYvjgo/jgZXjgY0s44G+44GV44Gy44GoDQor44GL44KP44GX44G+LOOBqOOBl+OBsuOBlQ0KK+OBi+OCj+OBmizjgb7jgZXjga7jgooNCivjgY3jgbDjgZcs44Gy44Gn44Gy44GTDQor44GN44G+44GhLOOBvuOBleOBjQ0KK+OBjeOCguOBqCzjgZ/jgZHjgZcNCivjgY3jgoDjgoks44Gf44GP44KEDQor44GN44KT44Gw44KJLOOCiOOBl+OBv+OBoQ0KK+OBjeOBruOBl+OBnyzjgoTjgZnjgZcNCivjgY3jga7jgZfjgZ8s44Gy44KN44GNDQor44GN44KK44GV44KPLOOBhOOBoeOCjeOBhg0KK+OBk+OBsOOChOOBlyzjgZjjgoXjgpPjgYTjgaENCivjgZPjgbDjgoTjgZcs44Gy44KN44GC44GNDQor44GT44Gw44KE44GXLOOBvuOBleOBig0KK+OBk+OBsOOChOOBlyzjgbXjgZjjgbLjgZMNCivjgZPjgaDjgb4s44GT44GG44GYDQor44GT44Gg44G+LOOBiuOBleOCgA0KK+OBn+OBi+OCgOOCiSzjgoLjgajjgbLjgZMNCivjgZPjgbLjgarjgZ8s44KG44GG44GZ44GRDQor44GT44KT44GuLOOBsuOCjeOBlw0KK+OBk+OCk+OBrizjgZ/jgYvjgbLjgo0NCivjgZPjgoTjgb4s44GT44GG44GYDQor44GT44Ga44GNLOOBqOOBl+OBig0KK+OBqOOBhuOBqeOBhizjgZPjgYbjgZgNCivjgZPjgZjjgb4s44GX44KT44GYDQor44GT44KT44GpLOOBguOBjeOCiQ0KK+OBk+OCk+OBqSzjgZ/jgYvjgZcNCivjgZPjgpPjgaks44G+44GV44Go44GXDQor44GT44KT44GuLOOBi+OBiuOCiw0KK+OBk+OBn+OBjSzjgbLjgajjgZcNCivjgZPjgoTjgYTjgZcs44G/44GLDQor44GT44KE44Gq44GOLOOBruOBvOOCiw0KK+OBj+OBvCzjgZHjgpPjgZ/jgo3jgYYNCivjgY/jganjgYYs44GN44G/44Gy44GoDQor44GP44G+44GM44GELOOBquOBiuOChuOBjQ0KK+OBj+OBvuOBjSzjgZfjgpPjgZgNCivjgY/jgonjgaEs44Gf44GL44KG44GNDQor44GP44KJ44GfLOOBk+OBmeOBkQ0KK+OBj+OCiuOBnyzjgb/jgY0NCivjgY/jgorjgoTjgb4s44GX44KF44KT44GYDQor44GP44KN44GgLOOBk+OBmeOBkQ0KK+OBj+OCjeOBi+OBjizjgb7jgZXjga7jgbYNCivjgY/jgo3jgZXjgo8s44GX44KT44GYDQor44GP44KN44GV44KPLOOBm+OBhOOBjQ0KK+OBj+OCj+OBrizjgbLjgo3jgZ/jgYsNCivjgb7jgYjjgbDjgZcs44Go44GX44GC44GNDQor44G+44GI44GW44KPLOOBruOBtuOChuOBjQ0KK+OBvuOBrizjgojjgZfjgYoNCivjgb7jgovjgo/jgYss44Gy44Gn44Gq44GKDQor44GG44Gh44KE44G+LOOBn+OBpOOBig0KK+OBvuOBmeOBoCzjgZjjgoXjgpMNCivjgb7jgaTjgYQs44GX44GS44GNDQor44G+44Gk44GELOOBleOBqOOBlw0KK+OBvuOBpOOCguOBqCzjgZfjgpPjgYTjgaENCivjgb7jgaTjgoLjgags44Gy44GV44GoDQor44G+44Gk44Gq44GMLOOBvuOBleOBqOOBlw0KK+OBvuOBpOOBl+OBvizjgoLjgorjgbLjgo0NCivjgb7jgaTjgZfjgZ8s44Gf44Gg44GXDQor44G+44Gk44GW44GNLOOBn+OBkeOBlw0KK+OBhOOBquOBhOOBlyzjgojjgZfjgYoNCivjgb/jgYvjgb8s44GR44GE44GE44GhDQor44G/44Gq44GOLOOBguOBjeOBv+OBpA0KK+OBv+OBpOOChOOBvizjgZPjgYbjgYTjgaHjgo3jgYYNCivjgb/jgYbjgoks44GX44GS44GNDQor44G/44KE44GRLOOBguOBpOOBlw0KK+OBv+OChOOCguOBqCzjgYLjgaTjgZMNCivjgb/jgoTjgZ8s44GT44GG44GYDQor44G/44KE44GG44GhLOOBvuOBleOBjQ0KK+OBv+OChOOBhuOBoSzjgYTjgaHjgo3jgYYNCivjgb/jgoTjgZbjgo8s44GC44GN44KJDQor44G/44KE44GW44KPLOOBn+OBi+OBlw0KK+OBv+OCiOOBoCzjgZ/jgYvjgbLjgZUNCivjgb/jgZ7jgbbjgaEs44GR44KT44GYDQor44G/44Ge44GfLOOBn+OBkeOBig0KK+OBoeOBsCzjgbLjgo3jgbLjgZUNCivjgb/jgZrjga/jgZcs44G+44GT44GoDQor44G/44Ga44G+44GhLOOBm+OBhOOBmA0KK+OBv+OBmuOBn+OBqyzjgZXjgajjgZcNCivjgb/jgZrjgZ/jgass44Gk44KI44GXDQor44G/44Ga44Gf44GrLOOBsuOCjeOChuOBjQ0KK+OCguOBoeOBmuOBjSzjgb/jga7jgosNCivjgoLjgorjgoLjgags44Gq44Gq44GTDQor44KC44KK44Gf44GrLOOBn+OBi+OBlw0KK+OCguOCiuOBnyzjgajjgojjgbLjgZMNCivjgoLjgorjgZ8s44Gf44GL44GXDQor44KC44KK44KP44GNLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBiuOBj+OBhCzjgZ/jgZHjgbLjgZMNCivjgoLjgoos44Gf44GR44G/DQor44KC44KKLOOBn+OBi+OChuOBjQ0KK+OCgOOBk+OChOOBvizjgbLjgo3jgobjgY0NCivjgoDjgonjgaYs44GX44KT44GE44GhDQor44KA44Go44GGLOOBi+OBpOOBjQ0KK+OBquOBjOOBhCzjgb/jgaTjgbLjgo0NCivjgarjgYzjga4s44G/44Gk44Go44GXDQor44Gq44GM44GK44GLLOOBn+OBi+OBsuOCjQ0KK+OBquOBjOOBmyzjgYvjgaTjgb8NCivjgarjgYzjgZ8s44Gy44KN44KG44GNDQor44Gq44GM44GfLOOCguOBqOOBjQ0KK+OBquOBjOOCjyzjgZfjgpPjgYTjgaENCivjgarjgYvjgb7jgoss44KI44GX44GNDQor44Gq44GL44KA44KJLOOBguOBjeOCiQ0KK+OBquOBi+OCgOOCiSzjgajjgoLjgZMNCivjgYLjgbks44KI44GG44GE44Gh44KN44GGDQor44Gq44GL44KA44KJLOOBqOOBl+OChA0KK+OBquOBi+OCgOOCiSzjgYLjgY3jgokNCivjgarjgYvjgZfjgb4s44Gy44GV44KI44GXDQor44Gq44GL44GX44GKLOOBsuOCjeOChuOBjQ0KK+OBquOBiyzjga7jgorjgZMNCivjgarjgb/jgY0s44Gu44KK44GL44GaDQor44Gq44KT44G2LOOBsuOCjeOBl+OBkg0KK+OChOOBvuOBkOOBoSzjgZfjgpPjgZgNCivjgavjgYTjgb8s44GX44GS44G144G/DQor44Gr44GX44GgLOOBsuOCjeOCiOOBlw0KK+OBq+OBl+OBoCzjgYjjgYTjgZgNCivjgavjgZfjgaAs44G+44GV44GC44GNDQor44Gr44GX44GgLOOBmeOBmeOCgA0KK+OBq+OBl+OBj+OBvCzjgYLjgY3jgbLjgo0NCivjgavjgZfjgoDjgoks44Gf44GL44GC44GNDQor44Gr44GX44KA44KJLOOBpOOCiOOBlw0KK+OBq+OBl+OBiizjgb7jgZXjgagNCivjgavjgZfjgYos44GX44KT44GYDQor44Gr44GX44KE44G+LOOBn+OBi+OBlw0KK+OChOOBjOOCjyzjgZHjgYTjgZgNCivjgavjgaPjgZ8s44Gy44KN44G/DQor44Gu44G544GK44GLLOOBguOBjeOBuw0KK+OBruOBmOOCiizjgojjgZfjga7jgbYNCivjga7jgoDjgoks44Gm44Gk44KEDQor44Gu44Gq44GLLOOBi+OBpOOBlw0KK+OBiuOBsOOBqizjgb/jga7jgosNCivjgYrjgaHjgYLjgYQs44Go44GX44KG44GNDQor44GK44Gh44G/44GaLOOBn+OBi+OBlw0KK+OBiuOBoSzjgb/jgaTjga7jgooNCivjgYrjgaDjgYrjgYrjga/jgoks44GX44KT44GUDQor44GK44GgLOOBsuOCjeOBi+OBmg0KK+OBiuOBjOOBnyzjgb7jgZXjgY0NCivjgYrjgYzjgo8s44G+44GV44Go44GXDQor44GK44GM44KPLOOBiOOBpOOBkw0KK+OBiuOBkOOCiSzjgarjgYrjgobjgY0NCivjgYrjgYrjgbLjgoks44Gu44G244KG44GNDQor44GK44GK44Gy44KJLOOBhOOBoeOCjeOBhg0KK+OBiuOBiuOBhOOBlyzjgYLjgY3jgokNCivjgYrjgYrjgYTjgZcs44G+44GT44GoDQor44GK44GNLOOBi+OChg0KK+OBiuOBiuOBj+OBvCzjgYvjgZrjgZMNCivjgYrjgYrjga4s44GR44GE44GTDQor44GK44GK44Gs44G+LOOBl+OBkuOBruOBtg0KK+OBiuOBiuOBrOOBvizjgarjgovjgZcNCivjgYrjgYrjgZ/jgY0s44G+44GV44Gy44GnDQor44GK44GK44GfLOOBqOOBiuOCiw0KK+OBiuOBiuOBnyzjgojjgZfjgarjgYwNCivjgYrjgYrjgZ8s44GT44GG44GE44GhDQor44GK44GoLOOBvuOBleOBmuOBvw0KK+OBiuOBiuOBpOOBvCzjgbLjgo3jgbXjgb8NCivjgYrjgYrjgoTjgY4s44G+44GV44Gy44KNDQor44GK44GK44KE44G+LOOBguOBpOOBlw0KK+OBiuOBhOOBiCzjgYvjgZrjgoQNCivjgYrjgZjjgb4s44GC44GN44KJDQor44GK44GL44G5LOOBhOOBoeOCjeOBhg0KK+OBiuOBi+OBoCzjgajjgYrjgosNCivjgYrjgYvjgoLjgags44G+44GV44GNDQor44GK44GL44GtLOOBn+OBi+OBlw0KK+OBiuOBi+OBrizjgbLjgafjgYoNCivjgYrjgYvjga4s44G+44GV44GTDQor44GK44GL44GW44GNLOOBr+OCi+OBsuOBkw0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgajjgZcNCivjgYrjgY/jgaAs44GC44Gk44Gy44KNDQor44GK44GP44GuLOOBi+OBpOOBlw0KK+OBiuOBquOChCzjgYvjgZrjgZMNCivjgYrjga4s44GN44KI44GXDQor44GK44GuLOOBl+OCk+OChA0KK+OBiuOBiuOBrizjgobjgZ/jgYsNCivjgYrjgZXjgarjgYQs44GN44KI44GC44GNDQor44GK44GW44GNLOOBsuOBp+OBig0KK+OBleOBhOOBqOOBhizjgojjgZfjgb8NCivjgZXjgYTjgajjgYYs44GY44KF44KTDQor44GV44GYLOOChOOBmeOBsuOBpw0KK+OBleOBmCzjgYvjgZrjgYoNCivjgZXjgYvjgYQs44GL44Ga44Gy44GTDQor44GV44GL44GELOOBqOOCguOBmeOBkQ0KK+OBleOBi+OBj+OCiSzjgZ/jgYvjgbLjgo0NCivjgZXjgYvjgYbjgYgs44KE44GZ44KG44GNDQor44GV44GV44G5LOOBvuOBk+OBqA0KK+OBleOBleOBjSzjgbLjgafjgYvjgZoNCivjgarjgb/jgY0s44Gy44KN44GXDQor44GV44Gf44GRLOOBi+OBpOOBsuOCjQ0KK+OBleOBn+OBkSzjgo/jgY0NCivjgZXjgajjgYYs44GX44KF44GG44GE44GhDQor44GV44Go44GGLOOBn+OBkeOBlw0KK+OBleOBqOOBhizjgarjgYrjgY0NCivjgZXjgajjgYYs44KG44GG44Ge44GGDQor44GV44Go44GGLOOBl+OBkuOBjQ0KK+OBleOBqOOBhizjgbLjgo3jgZcNCivjgZXjgo/jgaAs44Gv44GY44KBDQor44Gb44GN44GQ44GhLOOBsuOCjeOBguOBjQ0KK+OBm+OBjeOCguOBqCzjgajjgZfjgobjgY0NCivjgZvjgY3jga0s44GN44GE44GhDQor44Gb44GN44GK44GLLOOBvuOCguOCiw0KK+OBm+OBjeOChCzjgbLjgo3jgYLjgY0NCivjgZvjgY0s44GY44KF44KT44GE44Gh44KNDQor44Gb44KT44GfLOOBruOCiuOBguOBjQ0KK+OBl+OBsOOBnyzjgZXjgajjgZcNCivjgZfjgYTjgaos44G144G/44Gv44KLDQor44GX44GE44KELOOBsuOBp+OBjQ0KK+OBl+OBvuOBsOOChOOBlyzjgb7jgoLjgosNCivjgZfjgb7jgaAs44GX44KT44GE44Gh44KN44GGDQor44GX44G+44GgLOOBv+OBoeOBqOOBlw0KK+OBl+OBvuOCgOOCiSzjgYLjgY3jgbLjgagNCivjgZfjgb/jgZos44Gy44Gn44Go44GXDQor44GX44G/44GaLOOBhOOBn+OCiw0KK+OBl+OCguOCgOOCiSzjgYvjgaTjgYLjgY0NCivjgZfjga7jgaAs44GT44GG44GYDQor44GX44Gu44Gv44KJLOOCguOBqOOChuOBjQ0KK+OBl+OBiuOBluOCjyzjga7jgbbjgobjgY0NCivjgZfjgonjgYTjgZcs44KG44GG44GYDQor44GX44KJ44GV44GNLOOCiOOBhuOBkw0KK+OBl+OCieOBqOOCiizjgbLjgafjgZgNCivjgZfjgZXjgYQs44G+44GV44Gy44KNDQor44GX44KH44GG44GgLOOBkeOBhOOBmeOBkQ0KK+OBneOBhizjgarjgYrjgY0NCivjgZ3jga7jgbks44Go44GK44KLDQor44GZ44Gp44GGLOOBl+OCheOCk+OBhOOBoQ0KK+OBmeOBqeOBhizjgZXjgajjgZMNCivjgZnjgY7jgYbjgoks44Gq44GK44GNDQor44GZ44GO44KE44G+LOOCiuOCh+OBhuOBhOOBoQ0KK+OBmeOBjuOChOOBvizjgajjgoLjgZgNCivjgZnjgb/jgaAs44Gy44KN44GNDQor44GZ44G/44GL44KPLOOBsuOBqOOBlw0KK+OBmeOBmuOBjSzjgb/jga3jgYvjgZoNCivjgZnjgZrjgY0s44Gy44KN44GXDQor44GZ44Ga44GNLOOBguOBpOOBlw0KK+OBmeOBmuOBjSzjgajjgZfjgarjgooNCivjgZnjgZrjgY0s44KI44GX44KG44GNDQor44GZ44Ga44GNLOOChOOBmeOBng0KK+OBmeOBmuOBjSzjga/jgZjjgoENCivjgZnjgZrjgY0s44GL44Ga44GC44GNDQor44G744Gd44GL44KPLOOChuOCig0KK+OBn+OBtuOBlyzjgYTjgY/jgZ8NCivjgZ/jgaHjgZbjgo8s44Gu44KK44G144G/DQor44Gf44GgLOOBn+OBi+OBguOBjQ0KK+OBn+OBoCzjgbLjgo3jgajjgZcNCivjgZ/jgYvjgZ8s44KG44GG44GZ44GRDQor44Gf44GL44GM44GNLOOBsuOBp+OBi+OBmg0KK+OChOOBvuOBluOBjSzjgarjgYrjgY0NCivjgZ/jgYvjga/jgZcs44KI44GX44Gk44GQDQor44Gf44GL44Gv44GXLOOBsuOCjeOBjQ0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgoTjgZkNCivjgZ/jgYvjga4s44Gf44GL44Gy44KNDQor44Gf44GL44GV44GNLOOBn+OBi+OBlw0KK+OBn+OBi+OBmSzjgYvjgZrjgogNCivjgZ/jgYvjgajjgoos44GT44GG44GYDQor44Gf44GL44KE44G+LOOBvuOBleOBvw0KK+OBn+OBi+OChOOBvizjgZfjgZLjgosNCivjgZ/jgYvjgoTjgb4s44KG44GG44GYDQor44Gf44GL44KELOOCiOOBl+OBi+OBmg0KK+OBn+OBkeOBoCzjgZ/jgYjjgZMNCivjgZ/jgZHjgaAs44Gy44KN44KG44GNDQor44G+44Gk44GK44GLLOOCiOOBl+OBsuOCjQ0KK+OBn+OBkeOBhCzjga7jgbbjgbLjgZMNCivjgZ/jgZHjgYbjgaEs44Go44KC44GK44GNDQor44Gf44GR44GG44GhLOOBruOCiuOBqOOBlw0KK+OBn+OBkSzjgZHjgYTjgZMNCivjgZ/jgY3jgb/jgoQs44Go44KC44Gy44KNDQor44Gf44G+44Gf44GrLOOBi+OBmuOBguOBjQ0KK+OBn+OCgOOCiSzjgojjgZfjgbLjgo0NCivjgZ/jgoDjgoks44GR44KT44GYDQor44Gf44Gq44GLLOOBi+OBmuOBsuOBlQ0KK+OBn+OBquOBiyzjgajjgoLjgoTjgZkNCivjgZ/jgarjgYss44GC44KE44GTDQor44Gf44Gq44GLLOOBruOCiuOBsuOCjQ0KK+OBn+OBq+OCguOBqCzjgZfjgpPjgYTjgaENCivjgZ/jgavjgoTjgb4s44GC44GN44Gy44GTDQor44Gf44KT44GuLOOBiuOBleOCgA0KK+OBn+OBrizjgbLjgZXjgYoNCivjgabjgonjgZbjgo8s44GC44GN44KJDQor44Go44GP44GX44GSLOOBleOBqOOCiw0KK+OBlOOBqOOBhizjgarjgYrjgY0NCivjgajjgb/jgarjgYws44Gy44KN44Gy44GVDQor44Go44KT44GX44KH44GGLOOBsuOBp+OChuOBjQ0KK+OBpOOBvOOBhCzjgZfjgofjgYbjgYTjgaENCivjgaTjgbzjgZ8s44GX44KH44GG44GYDQor44Gk44GY44KA44KJLOOBquOBiuOBjQ0KK+OBvuOBpOOCgOOCiSzjgYLjgY3jgokNCivjgaTjgYvjgaAs44Gy44Gn44GNDQor44Gk44Gt44KI44GXLOOBleOBqOOBvw0KK+OBpOOCi+OBiuOBiyzjgb7jgZXjgoQNCivjgaTjgoss44KI44GX44GKDQor44GG44Gh44GgLOOBsuOBp+OChuOBjQ0KK+OBhuOBiOOBoCzjgZ/jgoLjgaQNCivjgYbjgoHjgZXjgY0s44GN44KI44GXDQor44GG44KJ44GL44KPLOOChuOBhuOBmA0KK+OBhuOCieOBi+OCjyzjgYvjgZrjgZcNCivjgo/jgaAs44GY44KF44KTDQor44KP44GL44Gw44KE44GXLOOBkeOCk+OBmA0KK+OCj+OBi+OBvuOBpCzjgojjgZfjgYvjgZoNCivjgo/jgZ/jgarjgbks44GC44Gk44GTDQor44KP44Gf44Gq44G5LOOBn+OBi+OBlw0KK+OCj+OBn+OCiizjgZPjgYbjgZgNCivjgoTjgbks44GT44GG44GE44GhDQor44KE44Gv44GOLOOBl+OCk+OBmA0KK+OChOOBvuOBoCzjgYvjgZrjgbLjgo0NCivjgoTjgb7jgaAs44GL44Ga44Gy44KNDQor44KE44G+44GT44GXLOOBvuOBleOChuOBjQ0KK+OChOOBvuOCguOBqCzjgZ3jgYbjgYTjgaENCivjgoTjgb7jgoLjgags44GC44Gk44GXDQor44KE44G+44KC44GoLOOCiOOBhuOBhOOBoQ0KK+OChOOBvuOCguOBqCzjgZXjgaENCivjgoTjgb7jgoLjgags44G+44GV44G/DQor44KE44G+44GG44GhLOOBqOOBiuOCiw0KK+OChOOBvuOBrizjgbLjgo3jgbXjgb8NCivjgoTjgb7jgYrjgYss44Go44KC44Gf44GLDQor44KE44G+44GX44GfLOOBqOOBl+OBsuOBpw0KK+OChOOBvuOBhuOBoSzjgZ/jgZHjgZcNCivjgoTjgb7jgZbjgY0s44Gy44KN44G+44GVDQor44KE44G+44GW44GNLOOChuOBi+OCig0KK+OChOOBquOBjuOBl+OBvizjgb7jgZnjgb8NCivjgoTjgb7jgoLjgags44G/44GL44GTDQor44KE44GuLOOBn+OBi+OBsuOBkw0KK+OChOOBluOBjSzjgZ/jgZHjgZcNCivjgojjgZQs44KE44GZ44Gv44KLDQor44KI44GT44GELOOBi+OBpOOBvuOBlQ0KK+OCiOOBk+OBv+OBnizjgajjgZfjgY0NCivjgojjgZPjgZ8s44KG44GG44GYDQor44KI44GT44GfLOOBsuOBleOBig0KK+OCiOOBk+OBnyzjgobjgYbjgZMNCivjgojjgZfjgaAs44GX44KT44GE44Gh44KN44GGDQor44KI44GX44GgLOOBvuOBoeOBkw0KK+OCiOOBl+OBteOBlSzjgYTjgY/jgbXjgb8NCivjgojjgZfjga/jgoks44Go44KC44G+44GVDQor44KI44GX44GE44GILOOBr+OBmOOCgQ0KK+OCiOOBl+OBi+OCjyzjgaHjgYgNCivjgojjgZfjgYvjgo8s44G/44Gk44Gy44KNDQor44KI44GX44GKLOOChuOBhuOBmA0KK+OChuOBguOBlSzjgb7jgZXjgojjgZcNCivjgobjgY0s44GC44GN44KJDQor44GC44Gg44GhLOOBqOOBl+OChuOBjQ0KK+OBiuOBiuOBq+OBlyzjgYvjgZrjgYoNCivjgYrjgYrjgZ8s44G/44KP44GTDQor44GC44GV44GuLOOBv+OBoeOBkw0KK+OBq+OBl+OCgOOCiSzjgb/jgaTjgojjgZcNCivjgoTjgb7jgaAs44Gy44KN44Gu44KKDQor44GV44GELOOBj+OBq+OBig0KK+OBv+OChOOCguOBqCzjgYvjgZrjgYoNCivjgZnjgZrjgY0s44GL44Ga44Gy44GTDQor44G144GP44GELOOBj+OBq+OChA0KK+OBiuOBj+OBoCzjgbLjgZXjgZMNCivjgZXjgYTjgajjgYYs44Gf44GL44GKDQor44G144KL44KELOOBi+OBpOOBvw0KK+OCguOBqOOChOOBvizjgarjgYrjgbLjgo0NCivjgojjgZfjgZbjgY0s44KG44GG44GE44GhDQor44Gq44GL44KA44KJLOOBguOBpOOCjeOBhg0KK+OBqOOBjeOCjyzjgZfjgoXjgYbjgYTjgaENCivjgYTjgarjgaAs44G+44GV44Gk44GqDQor44Go44GN44KPLOOBruOCiuOChuOBjQ0KK+OCiOOBl+OBoCzjgZ/jgYvjgobjgY0NCivjgZ/jgYvjga4s44GR44GE44GTDQor44GG44GI44GgLOOBqOOCguOBkw0KK+OBpOOBoeOChCzjgobjgYbjgZMNCivjgZfjgoLjgYvjgo8s44G144G/44Gy44GTDQor44G+44Gk44GELOOBi+OBpOOBvw0KK+OBmeOBjOOChCzjgojjgZfjgYoNCivjgb/jga7jgZDjgaEs44KE44GZ44GTDQor44GG44GI44GgLOOBsuOBi+OCiw0KK+OBhOOBrizjgajjgoLjgZgNCivjgb7jgYjjgaAs44G+44GT44GoDQor44Gk44G844GfLOOBruOCiuOBig0KK+OCiOOBl+OBvyzjgYTjgY/jgYoNCivjgYTjgaHjgYvjgo8s44GX44GS44Gy44KNDQor44G744KKLOOBsuOBp+OChA0KK+OBr+OChOOBlyzjgobjgZ/jgYsNCivjgZfjgbDjgZ8s44GE44GP44GTDQor44GT44Gw44KE44GXLOOBvuOBmeOBsuOBkw0KK+OBiuOBiuOBj+OBvCzjgZ/jgZHjgZcNCivjgYTjgo/jgZ8s44Gu44G244KG44GNDQor44G144GY44GfLOOBvuOBleOBsuOCjQ0KK+OBjeOBn+OCgOOCiSzjgYvjgZrjgYoNCivjgY/jgo3jgY0s44GR44GE44GTDQor44KE44G+44KC44GoLOOBn+OBi+OBlw0KK+OChOOBvuOBsOOBnyzjgobjgY3jgZMNCivjgZXjgYTjgajjgYYs44GX44KF44GG44GE44GhDQor44G144GY44KP44KJLOOBn+OBoOOBlw0KK+OBhOOBqOOBhizjgYvjgZrjgagNCivjgYTjgYTjgZEs44Go44GK44KLDQor44GV44KA44GL44KPLOOBguOBjeOBruOCig0KK+OBguOBmuOBvizjgb7jgZXjgY0NCivjgYLjgYrjgY0s44GC44Gk44GXDQor44G144GY44GfLOOBpOOBreOBig0KK+OBv+OCiOOBlyzjgajjgZfjgYvjgZoNCivjgZvjgY3jgoTjgb4s44KI44GX44GKDQor44Gm44KJ44GgLOOBpuOCi+OBsuOBlQ0KK+OBiOOCk+OBqSzjgZ/jgZHjgZcNCivjgYvjgY3jgoLjgags44GR44KT44GY44KN44GGDQor44G144KL44KELOOBhOOCj+OBig0KK+OBvuOBjeOCgOOCiSzjgZ/jgZHjgYoNCivjgZPjgpPjga4s44Gy44KN44GXDQor44GZ44GO44GV44GNLOOBqOOBl+OChuOBjQ0KK+OCiOOBl+OBoCzjgZfjgZLjgYoNCivjga/jgY7jgo/jgoks44Gy44KN44GXDQor44KE44GW44GNLOOChuOBhuOBmA0KK+OBq+OBruOBv+OChCzjgYvjgZrjgYoNCivjgZPjgZXjgYss44Gy44KN44KE44GZDQor44GV44GuLOOBl+OCk+OBlA0KK+OBleOBhOOBqOOBhizjgaDjgYTjgZnjgZENCivjgZfjgoLjgZss44Gf44GL44KI44GXDQor44Gf44GL44Gv44GXLOOBi+OBmuOBsuOBqA0KK+OBn+OBpOOBiuOBiyzjgb7jgZXjgY0NCivjgZ/jgbDjgZ8s44KI44GX44Gf44GLDQor44Gq44GK44GELOOBvuOBleOBkw0KK+OBquOBjOOBnyzjgb7jgZXjgYoNCivjgavjgZfjgYrjgYss44GX44GS44KLDQor44G+44Gk44GL44KPLOOBguOBpOOBlw0KK+OBv+OBmuOBrizjgobjgYbjgZMNCivjgajjgY/jgarjgYws44GR44GE44GTDQor44KA44KJ44GL44G/LOOBsuOCjeOBjQ0KK+OChOOBmeOBi+OCjyzjgajjgZfjga7jgooNCivjgoTjgb7jgZDjgaEs44KG44GN44GKDQor44KI44GT44GG44GILOOBn+OBoOOBlw0KK+OBguOBmuOBvizjga7jgbzjgosNCivjgYTjgarjgaAs44G/44Gk44KG44GNDQor44GE44GX44GELOOBruOBvOOCiw0KK+OBhOOBvuOBq+OBlyzjgZ/jgZHjgYoNCivjgYrjgYvjga4s44GL44Gt44G/44GkDQor44GN44GXLOOBqOOBl+OBkw0KK+OBj+OBvOOBnyzjgb7jgZXjga7jgooNCivjgZPjgb/jgarjgb8s44G+44KG44G/DQor44GC44GE44KE44G+LOOBl+OCh+OBhuOBmOOCjeOBhg0KK+OBleOBrizjgaHjgYvjgokNCivjgZ/jgY3jgYzjgo8s44GX44GS44KI44GXDQor44GT44KT44GuLOOBsuOCjeOChOOBmQ0KK+OBm+OCk+OBoOOBhCzjgZ/jgYvjgZcNCivjgavjgo/jga4s44Gy44Gn44GZ44GRDQor44GXLOOBquOBiuOCiOOBlw0KK+OBi+OBqOOBhizjgYvjgZrjgarjgooNCivjgYLjgYvjgZXjgYss44GP44Gr44GKDQor44GK44KT44Ga44GLLOOBsuOCjeOBlw0KK+OBk+OBjCzjgZPjgYbjgYTjgaENCivjga/jgoTjgYvjgo8s44Go44KC44G/DQor44Gv44Gb44GM44KPLOOBvuOBleOCiOOBlw0KK+OBteOCi+OBi+OCjyzjgZ/jgZHjgZcNCivjgbXjgZjjgYvjgaks44KG44GG44GYDQor44Go44Gu44GL44KPLOOBn+OBkeOBlw0KK+OBvuOBpOOBiizjgojjgZfjgYoNCivjgY3jgb/jgZrjgYss44G+44GV44Gu44KKDQor44GK44GhLOOBvuOBk+OBqA0KK+OBhOOBoeOBk+OBr+OCiSzjgb7jgZXjgoTjgZkNCivjgYTjgZHjgaAs44GC44GN44GTDQor44GC44KJ44Gf44GRLOOBhOOBj+OBig0KK+OBhOOBkeOBoCzjgajjgY3jgYoNCivjgYTjgajjgYYs44KI44GG44GE44GhDQor44GE44GR44GgLOOBiOOBpA0KK+OBhOOBhOOBoCzjgb7jgZXjgagNCivjgYrjgYrjgY/jgb4s44GL44Ga44GIDQor44GP44GV44GwLOOBvuOBleOBjQ0KK+OBk+OBsOOChOOBlyzjgZXjgojjgZMNCivjgZTjgajjgYYs44GL44Ga44KEDQor44GZ44Ga44GNLOOCguOBqOOBruOCig0KK+OBm+OBjeOBrSzjgbLjgo3jgZcNCivjgZ/jgYvjgaAs44Go44GX44KG44GNDQor44GT44KT44GpLOOCiOOBhuOBmeOBkQ0KK+OBn+OBkeOChOOBvizjgZHjgYTjgZfjgo3jgYYNCivjgZ/jgYvjgYTjgaEs44GK44GV44KADQor44Gd44GgLOOBkeOCk+OBmA0KK+OBn+OBrizjgb7jgZPjgagNCivjgZfjga7jgZbjgY0s44GV44Go44GXDQor44Gv44KJ44GgLOOBguOChA0KK+OBj+OBqeOBhizjgYvjgaTjgZMNCivjgaTjga7jgaAs44Gq44GK44GTDQor44G144KL44GL44KPLOOBqOOBl+OBguOBjQ0KK+OCguOCiuOBnyzjgb7jgZXjgobjgY0NCivjgoTjgb7jgoLjgags44Go44GK44KLDQor44KE44G+44GX44GfLOOCiOOBl+OBr+OCiw0KK+OChuOBi+OCjyzjgojjgZfjgYoNCivjgojjgZfjgaAs44GI44GE44GTDQor44Gv44KE44GXLOOBqOOBl+OBn+OBiw0KK+OBn+OCk+OBrizjgYjjgYTjgYTjgaENCivjgZ/jgYvjga/jgZcs44G+44GT44GoDQor44Gq44KK44GC44GELOOCiOOBl+OBruOCig0KK+OBn+OBi+OCgOOCiSzjgYLjgY3jgYoNCivjgZ/jgpPjga4s44Gm44Gk44GKDQor44GT44Gw44KE44GXLOOBk+OBhuOBhOOBoQ0KK+OBlOOBqOOBhizjgajjgYrjgosNCivjgZTjgYbjgaAs44GN44KH44GG44GTDQor44Gq44GL44GX44G+LOOBv+OBpOOBig0KK+OBu+OBl+OBrizjgbXjgb/jgZ/jgaANCivjgo/jgZMs44Gq44GK44GNDQor44GZ44Ga44GNLOOBl+OBkuOBig0KK+OCiOOBl+OBvuOBpCzjgb7jgZXjgY/jgasNCivjgarjgb/jgYrjgYss44GX44KT44GYDQor44KE44G+44GQ44GhLOOBsuOCjeOBi+OBmg0KK+OBhOOBl+OBsOOBlyzjgb7jgZPjgagNCivjgYTjgZfjgaAs44Gb44KT44KEDQor44GG44Gh44KE44G+LOOBm+OBhOOBmA0KK+OBiOOCk+OBqSzjgZfjgZLjgosNCivjgarjgYvjga4s44G+44GV44G144G/DQor44GE44G+44GELOOBi+OBmuOBig0KK+OBiuOBleOBquOBhCzjgYLjgaTjgZcNCivjgZXjgYvjgoLjgags44GN44KI44GXDQor44GX44GK44G/LOOBoeOBi+OBlw0KK+OBl+OBvuOBluOBjSzjgarjgYrjgY0NCivjgabjgovjgoQs44Go44GX44KEDQor44Gq44GL44Gf44GrLOOBquOBiuOBjQ0KK+OBr+OBjuOCj+OCiSzjgY3jgojjgYvjgZoNCivjgbLjgYzjgZcs44GX44KH44GG44GTDQor44G744KK44GG44GhLOOCiOOBl+OBig0KK+OBv+OBnuOCjeOBjizjgarjgYrjgY0NCivjgoLjgoos44Gf44KC44GkDQor44GE44Gu44GG44GILOOBn+OBkeOBsuOBkw0KK+OBl+OBoCzjgb/jgaHjgogNCivjgoTjgb7jgoLjgags44G/44Gh44GTDQor44KE44G+44KC44GoLOOBsuOBp+OBguOBjQ0KK+OBiuOBiuOBn+OBjSzjgYvjgZrjgoQNCivjgbXjgZgs44GV44Gq44GIDQor44GC44GN44KC44GoLOOBvuOCguOCiw0KK+OBhOOBhOOBmOOBvizjgYLjgY3jgZMNCivjgYrjgZDjgb4s44KG44G/44GTDQor44GV44Go44GGLOOBn+OBi+OBig0KK+OBpOOBoeOChCzjgojjgZfjgbLjgo0NCivjgZXjgYTjgajjgYYs44GL44Ga44KI44GXDQor44Gv44KJLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBteOBmOOBvuOBjSzjgZfjgpPjgoQNCivjgoDjgo3jgZ8s44G/44Gk44G+44GVDQor44KC44KKLOOBqOOBiuOCiw0KK+OBv+OBnuOBkOOBoSzjgajjgZfjgobjgY0NCivjgYTjgZHjga/jgZ8s44Gy44KN44KG44GNDQor44GK44GM44KPLOOBsuOCjeOBn+OBiw0KK+OBhuOBiOOBrizjgb7jgZXjgajjgZcNCivjgZ/jgarjgYss44GL44Ga44Gy44KNDQor44GT44Gw44KE44GXLOOBvuOBleOBi+OBmg0KK+OBj+OCjeOBmSzjgoTjgZnjgZgNCivjgY3jgZ/jgYzjgo8s44Gy44KN44GXDQor44GX44Gu44G/LOOBvuOBleOChuOBjQ0KK+OBr+OBmyzjgobjgYbjgZ7jgYYNCivjgabjgovjgazjgb4s44KI44GG44GTDQor44GN44GP44GhLOOBleOBqOOBlw0KK+OBr+OBl+OCguOBqCzjga7jgorjgobjgY0NCivjgYrjgYrjgYvjgo8s44GX44KT44GoDQor44GK44GK44Gr44GXLOOBneOBhuOBhOOBoQ0KK+OBguOBuSzjgb7jgZXjgbLjgagNCivjgYLjgaDjgaEs44Gy44Gn44GNDQor44GC44Gg44GhLOOBvuOBleOBqA0KK+OBguOBoOOBoSzjgajjgZfjgobjgY0NCivjgYLjgZQs44GL44GK44KKDQor44GC44GE44Gv44KJLOOBguOBjeOBsuOBkw0KK+OBguOBhOOBr+OCiSzjgbLjgafjgYoNCivjgYLjgYTjgZbjgo8s44GY44KF44KT44GE44GhDQor44GC44GL44G+44GkLOOBn+OBpOOBig0KK+OBguOBi+OBvizjgajjgoLjgb8NCivjgYLjgYvjgZss44G+44GV44KG44GNDQor44GC44GL44KE44G+LOOBl+OCk+OBkuOCkw0KK+OBteOBj+OBl+OBvizjgajjgoLjga4NCivjgYLjgY3jgbAs44Gk44Go44KADQor44GC44GN44GuLOOBr+OCi+OBjQ0KK+OBguOBjeOBl+OBiyzjgobjgYbjgZgNCivjgarjgoHjgY0s44Gq44GK44G/DQor44GC44GN44Ga44GNLOOBl+OCk+OBhOOBoQ0KK+OBguOBvuOBoCzjgobjgY3jgYoNCivjgYLjgb7jga4s44Go44GK44KLDQor44GC44G/44GuLOOBruOBtuOBr+OCiw0KK+OBguOCk+OBuSzjgoTjgZnjgZcNCivjgYLjgpPjganjgYYs44Gy44KN44Go44GXDQor44GC44KT44GW44GELOOBn+OBi+OCiOOBlw0KK+OBguOCk+OBluOBhCzjgbLjgo3jgZcNCivjgYLjgYrjgY0s44GV44Go44GXDQor44GC44GK44KE44GOLOOBn+OBi+OBig0KK+OBguOBiuOChOOBjizjgbLjgo3jgobjgY0NCivjgYLjgYrjgoTjgY4s44Gy44GV44GXDQor44GC44KJ44GL44KPLOOBn+OBhOOBmeOBkQ0KK+OBguOCieOBi+OCjyzjgb7jgZXjgobjgY0NCivjgYLjgonjgY0s44Go44GX44KG44GNDQor44GC44KJ44KE44GZLOOBsuOBqOOBlw0KK+OBguOCiSzjgYLjgY3jgYoNCivjgYLjgorjgZ8s44GN44KH44GG44GTDQor44GC44GV44GgLOOBj+OBq+OBig0KK+OBguOBleOBoCzjgbLjgo3jgYLjgY0NCivjgYLjgZXjgYvjgo8s44Gu44KK44GIDQor44GC44GV44GP44KJLOOBqOOCguOChuOBjQ0KK+OBquOBi+OBleOBqCzjgYLjgY3jgokNCivjgYLjgZXjga4s44KI44GX44Gy44KNDQor44GC44GV44KKLOOBi+OBmuOBjQ0KK+OBguOBpOOBvyzjgYLjgY3jgojjgZcNCivjgYLjgo/jgYss44GL44Gk44G/DQor44Gw44GwLOOBi+OBmuOBsuOCjQ0KK+OBsOOCkyzjgZHjgpPjgZ7jgYYNCivjgbDjgpMs44KP44Gf44KLDQor44Gw44KTLOOBk+OBhuOBn+OCjeOBhg0KK+OBoeOCh+OBhuOBlSzjgb7jgZXjgZcNCivjgaDjgYTjgaks44GR44GE44GX44KTDQor44Gg44GE44KC44KTLOOBquOBiuOBsuOBkw0KK+OBp+OCgOOCiSzjgojjgZfjgagNCivjganjgYQs44Gf44GL44GXDQor44GI44Gz44Gs44G+LOOBguOBkeOBvw0KK+OBiOOBkOOBoSzjgZjjgoXjgpMNCivjgYjjga/jgoks44GL44Ga44GKDQor44GI44Gq44G/LOOBquOBpOOBkw0KK+OBiOOBqOOBhizjgojjgZfjgarjgosNCivjgYTjgo/jgZXjgY0s44GL44Ga44GKDQor44GI44GW44GNLOOChuOBhuOBmA0KK+OBteOBmOOBiOOBoCzjgZjjgoXjgpMNCivjgbXjgZjjgYgs44GT44GG44GE44GhDQor44G144GY44GM44GNLOOCiOOBl+OBoeOBiw0KK+OBteOBmOOBhCzjgajjgZfjgobjgY0NCivjgbXjgZjjgYQs44GC44GN44KJDQor44G144GY44GELOOBmOOCheOCk+OBhOOBoQ0KK+OBteOBmOOBhCzjgb/jgobjgY0NCivjgbXjgZjjgYQs44GX44GS44Gu44KKDQor44G144GY44GL44KPLOOBl+OCk+OBhOOBoQ0KK+OBteOBmOOCguOCiizjgajjgoLjga4NCivjgbXjgZjjgoLjgags44GX44KH44GG44GUDQor44G144GY44KC44GoLOOBl+OBrg0KK+OBteOBmOOBrizjgZ/jgYvjgZcNCivjgbXjgZjjgYrjgYss44KE44GZ44GXDQor44GK44GQ44KJLOOBguOChOOBkw0KK+OBteOBmOOBnyzjgb7jgZXjgagNCivjgbXjgZjjgZ8s44GV44Go44KLDQor44G144GY44GfLOOChuOBjeOBig0KK+OBteOBmOOBnyzjgZfjgofjgYbjgZgNCivjgbXjgZjjgo/jgoks44Gy44KN44GXDQor44G144GL44GgLOOBguOBpOOBlw0KK+OBteOBi+OBiizjgb/jgaTjgbLjgo0NCivjgbXjgYvjgYos44G/44GV44GNDQor44G144GL44GbLA0KK+OBteOBj+OBoSzjgojjgZfjgbLjgo0NCivjgbXjgY/jgaAs44KG44GG44GTDQor44G144GP44GgLOOBteOBv+OBsuOBkw0KK+OBvuOBpOOBi+OCjyzjgbLjgafjgYoNCivjgbXjgY/jgaAs44G/44GLDQor44G144GP44GgLOOChuOBjeOBkw0KK+OBteOBj+OBoCzjgZHjgpPjgZgNCivjgbXjgY/jga/jgoks44KG44GN44GKDQor44G144GP44GELOOBsuOCjeOBlw0KK+OBteOBj+OBhCzjgZjjgoXjgpPjgYTjgaENCivjgbXjgY/jgYrjgYss44GX44KT44GUDQor44GX44GMLOOBquOBiuOBqA0KK+OBteOBj+OBl+OBvizjgYLjgaTjgZcNCivjgbXjgY/jgZfjgb4s44Gh44GL44GTDQor44G144GP44GX44G+LOOBquOBiuOBjQ0KK+OBiuOBiuOBrizjgarjgYrjgY0NCivjgbXjgarjgaQs44Go44GX44KG44GNDQor44GU44GG44GgLOOCiOOCiuOBkw0KK+OBlOOBhuOBoCzjgbLjgafjgYLjgY0NCivjgZTjgYYs44GL44GE44KN44GGDQor44GT44GQ44KMLOOBjeOCk+OChA0KK+OBlOOBqOOBhizjgZ/jgYvjgZcNCivjgZTjgajjgYYs44KG44GN44KIDQor44Gv44GMLOOCiuOCh+OBhuOBhOOBoQ0KK+OBr+OBjuOCj+OCiSzjgY3jgY/jgYoNCivjga/jgb7jgaAs44GC44GN44GKDQor44G+44GI44GgLOOBkeOCk+OBhOOBoQ0KK+OBr+OBvuOBr+OBnyzjga7jgbzjgosNCivjga/jgb7jga4s44Gu44G244Gy44KNDQor44Gv44Gq44G244GVLOOCiuOCheOBhuOBhOOBoeOCjeOBhg0KK+OBr+OBquOBnyzjgojjgZfjgZgNCivjga/jgarjgb/jgaQs44KI44GX44Gf44GLDQor44Gv44KT44GgLOOBmeOBv+OBqA0KK+OBr+OCieOBoCzjgYLjgoTjgZMNCivjga/jgonjgaAs44G144G/44GKDQor44Gv44KJ44GgLOOBmOOCheOCk+OBhOOBoQ0KK+OBr+OCieOBoCzjgb7jgZXjga7jgooNCivjga/jgoks44G+44GV44KG44GNDQor44Gv44KJLOOBv+OChuOBjQ0KK+OBr+OBm+OBjOOCjyzjgb7jgZPjgagNCivjga/jgZfjgZDjgaEs44GE44GV44GKDQor44Gv44GX44KC44GoLOOBvuOBleOBqOOBlw0KK+OBr+OBl+OCguOBqCzjga7jgorjgY0NCivjga/jgZ/jgZHjgoTjgb4s44GV44Go44GXDQor44Gv44Gf44Gq44GLLOOBjeOCiOOBlw0KK+OBr+OBpOOBl+OBvizjgZHjgpMNCivjga/jgaPjgajjgoos44KI44GX44Gy44GVDQor44Gv44Gj44Go44KKLOOBpOOBreOBsuOBlQ0KK+OBr+OBo+OBqOOCiizjgb7jgZXjgZMNCivjga/jgaPjgajjgoos44G144G/44GKDQor44Gv44Gj44Go44KKLOOChuOBjeOBsuOBkw0KK+OBr+OBo+OBqOOCiizjgojjgZfjga7jgooNCivjga/jgoTjgYvjgo8s44GC44GN44KJDQor44Gv44KE44GX44GgLOOBvuOBleOChA0KK+OBi+OCk+OBoCzjgZHjgpPjgZgNCivjga/jgoTjgZcs44GT44GG44GYDQor44Gv44KE44GXLOOBpOOCiOOBlw0KK+OBr+OChOOBlyzjgbLjgo3jgZcNCivjga/jgoTjgZcs44GL44Gk44G/DQor44Go44Gz44GL44KPLOOBv+OChuOBjQ0KK+OBsuOBkuOBnyzjgojjgYbjgYTjgaENCivjgbLjgZDjgaEs44G/44Gk44Gy44KNDQor44Gy44GQ44GhLOOChuOBhuOBkw0KK+OBsuOBmOOBi+OCjyzjgojjgZfjga7jgooNCivjgbLjgYvjgYQs44G+44Gp44GLDQor44Gy44Gq44GfLOOBmOOCheOCkw0KK+OBsuOBrizjgZfjgofjgYbjgYTjgaENCivjgbLjga4s44Gf44GL44KG44GNDQor44Gy44KJ44GOLOOChOOBmeOBlw0KK+OCiOOCguOBoCzjgYvjgZrjgagNCivjgbLjgonjga4s44G+44GV44Gu44G2DQor44Gy44KJ44GuLOOBsuOCjeOChuOBjQ0KK+OBsuOCieOBleOCjyzjgYvjgZrjgbLjgo0NCivjgbLjgonjgZ8s44G+44GV44Gy44KNDQor44GC44GV44GuLOOBsuOCjeOBlw0KK+OBsuOCieOBnyzjgbLjgZXjgYoNCivjgbLjgonjgaTjgYss44Gf44GR44GXDQor44Gy44KN44GL44KPLOOBteOBv+OBguOBjQ0KK+OBsuOCjeOBquOBiyzjgYvjgZrjgbLjgZUNCivjgbLjgo3jgZss44Gy44GV44KG44GNDQor44Gf44GX44KNLOOBjeOBv+OBkw0KK+OBsuOCjeOBmyzjgb7jgZPjgagNCivjgbLjgZfjgazjgb4s44Gy44KN44Gu44G2DQor44GE44KP44KC44GoLOOBmOOCheOCkw0KK+OBsuOBhuOCiSzjgbLjgajjgZcNCivjgZnjgY7jgoLjgags44Gb44GE44GE44GhDQor44G744KT44G+LOOChOOBmeOChuOBjQ0KK+OBu+OCk+OBvizjgaTjgojjgZcNCivjgbvjgpPjgb4s44Gf44GE44KJDQor44G744KT44G+LOOBn+OBpOOCjeOBhg0KK+OBu+OCiuOBi+OCjyzjgZjjgoXjgpPjgYTjgaENCivjgbvjgorjgYos44GL44Gk44KI44GXDQor44G744KKLOOBi+OBmuOBig0KK+OBu+OCiizjgYLjgaTjgZcNCivjgbvjgoos44GT44GG44GE44GhDQor44G744GX44GuLOOBl+OCk+OBmA0KK+OBu+OBl+OBrizjgYLjgY3jgZMNCivjgbvjgZfjga4s44G144Go44GXDQor44G744GXLOOBsuOCjeOBkw0KK+OBu+OBnSzjgYvjgZrjgb8NCivjgbvjgZ/jgaYs44KG44GLDQor44GE44Gh44GL44KPLOOChuOBv+OBkw0KK+OBhOOBoeOBi+OCjyzjgZXjgajjgZcNCivjgYTjgaHjgY0s44Gf44GR44GXDQor44GE44Gh44Gu44GbLOOBguOCig0KK+OBhOOBoCzjgarjgYrjgY0NCivjgYTjgafjgYQs44G+44GV44GL44GaDQor44GE44GM44KJ44GXLOOChuOBhuOBmA0KK+OBhOOBkOOBoSzjgZTjgYYNCivjgYTjgYTjgaAs44GI44GE44GW44G244KN44GGDQor44GE44GE44GgLOOBteOBmOOBig0KK+OBhOOBhOOBmOOBvizjgbLjgo3jgobjgY0NCivjgYTjgYTjgZjjgb4s44GL44Ga44Gu44KKDQor44GE44GE44KA44KJLOOCiOOBl+OBruOBtg0KK+OBhOOBhOOBrizjgbLjgafjgY0NCivjgYTjgYTjgZrjgYss44Gy44KN44GXDQor44GE44GE44Ga44GLLOOBi+OBpOOBsuOBkw0KK+OBr+OCi+OBnyzjgajjgZfjgZMNCivjgYTjgZHjgaAs44Gq44GK44Gy44KNDQor44GZ44Ga44GNLOOBqOOBiuOCiw0KK+OBhOOBkeOBoCzjgY/jgavjgbLjgo0NCivjgYTjgZ3jgbks44GT44GG44GYDQor44GE44GR44KE44G+LOOBmeOBjuOBig0KK+OBhOOBj+OBnyzjgajjgZfjgYLjgY0NCivjgYTjgb7jgYTjgZrjgb8s44Gh44Ga44GTDQor44KC44KK44GX44GfLOOBl+OBkuOBjQ0KK+OBhOOBvuOBhCzjgZ/jgaDjgZcNCivjgYTjgb7jgoDjgoks44G+44Gq44G2DQor44GE44G+44KA44KJLOOBruOCiuOChuOBjQ0KK+OBhOOBquOBvyzjgZHjgpPjgoQNCivjgYTjga7jgYbjgYgs44KE44GZ44Gy44GnDQor44GE44Gu44GG44GILOOBsuOCjeOBlw0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgZcNCivjgYTjga7jgYbjgYgs44Gy44KN44Gf44GLDQor44GE44Gu44GG44GILOOBv+OBpOOBkw0KK+OBhOOBrOOBhCzjgobjgY3jgajjgZcNCivjgYTjgZfjgaAs44G+44Gq44G2DQor44GE44GX44GgLOOBqOOBl+OBsuOCjQ0KK+OBhOOBl+OBoCzjgobjgZ/jgYsNCivjgYTjgZfjgZDjgo0s44G+44KKDQor44GE44GX44GQ44KNLOOBsuOCjeOBlw0KK+OBhOOBl+OBr+OCiSzjgZjjgoXjgpPjgYTjgaENCivjgYTjgZfjgYQs44GL44GK44KLDQor44GE44GX44GELOOBkeOBhOOBhOOBoQ0KK+OBhOOBl+OBhCzjgZPjgYbjgZgNCivjgobjgY3jgb7jgZUs44G+44GV44Go44GXDQor44GE44GX44GL44KPLOOBn+OBi+OBlw0KK+OBhOOBl+OBi+OCjyzjgojjgYbjgZMNCivjgYTjgZfjgY/jgoks44KG44Gf44GLDQor44GE44GX44KC44KKLOOBsuOCjeOBguOBjQ0KK+OBhOOBl+OCguOBqCzjgorjgYgNCivjgYTjgZfjgoLjgags44GV44Gh44GTDQor44GE44GX44GK44GLLOOChuOBiw0KK+OBhOOBl+OBiuOBiyzjga7jgbbjgYoNCivjgYTjgZfjgo/jgZ8s44Gq44GK44Gy44GVDQor44GL44KTLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBhOOBl+OBluOBiyzjgYvjgojjgZMNCivjgYTjgZ3jgYzjgYQs44Gf44GL44Gy44KNDQor44GE44Gf44Gw44GXLOOBl+OCk+OBhOOBoQ0KK+OBhOOBn+OBsOOBlyzjgZfjgZLjgY0NCivjgZXjgY7jgoQs44Gy44Gn44GC44GNDQor44GE44Go44GGLOOBpuOBpOOChA0KK+OBhOOBqOOBhizjgYLjgZHjgb8NCivjgYTjgajjgYYs44Gu44Ge44KADQor44GE44Go44GGLOOBquOBiuOCiOOBlw0KK+OBhOOBqOOBhizjgYvjgZrjgZfjgZINCivjgYTjgajjgYYs44Gq44GK44KG44GNDQor44GE44Go44GGLOOBn+OBi+OBlw0KK+OBleOBi+OBhCzjgZPjgYbjgYTjgaENCivjgYTjgajjgYYs44GL44Ga44KG44GNDQor44GE44KP44GELOOBi+OBiuOCiw0KK+OBl+OBvuOCgOOCiSzjgbXjgZXjgaHjgYsNCivjgYTjgo/jgYQs44GN44KH44GG44GTDQor44GL44KP44Gq44GLLOOBi+OBmuOBvw0KK+OBhOOCj+OBj+OBvCzjgZ/jgYvjgobjgY0NCivjgYTjgo/jgoLjgags44GV44KE44GLDQor44GE44KP44KC44GoLOOBsuOBp+OBguOBjQ0KK+OBn+OBkeOBoCzjgZXjgaHjgZMNCivjgYTjgo/jgoDjgoks44Gy44KN44KG44GNDQor44GE44KP44Gq44GMLOOBsuOBp+OBig0KK+OBhOOCj+OBiizjgZPjgYbjgYTjgaENCivjgYTjgo/jgZXjgY0s44Gf44Gk44Gy44GTDQor44GE44KP44GV44GNLOOBqOOCieOBsuOBkw0KK+OBm+OBjOOCjyzjgb7jgZXjgZ/jgYsNCivjgYTjgo/jgZfjgo0s44KI44GX44Gy44GVDQor44GE44Ga44G/LOOBvuOBk+OBqA0KK+OBi+OBiOOCiuOChOOBvizjgarjgYrjgY0NCivjgYvjgYzjgb8s44GE44GP44GKDQor44GL44GM44G/LOOBl+OBkuOCiOOBlw0KK+OBi+OBmOOBn+OBqyzjgYvjgZrjgbLjgZMNCivjgoTjgb7jgoLjgags44GI44GE44GE44GhDQor44GL44GN44Gs44G+LOOBsuOCjeOBguOBjQ0KK+OBi+OBjyzjgbLjgo3jgobjgY0NCivjgYvjgb7jgaAs44G+44GT44GoDQor44GE44Gq44GM44GNLOOBvuOBleOBiA0KK+OBi+OBvuOCguOBqCzjgZ/jgYjjgZMNCivjgYvjgb7jgZ/jgass44Gq44GK44G144G/DQor44GL44G+44GfLOOBqOOCguOBkw0KK+OChOOBvuOBoCzjgYjjgYTjgZgNCivjgYvjgoHjgaAs44GC44GN44GTDQor44GL44KB44KELOOBsuOBp+OBjQ0KK+OBi+OBvyzjgb7jgZPjgagNCivjgYvjgb/jgYos44G+44Gq44G/DQor44GL44G/44KELOOBvuOBleOBruOCig0KK+OBi+OCguOBqCzjgojjgorjgZMNCivjgYvjgarjgaAs44G+44GV44Gf44GLDQor44GL44Gq44GELOOBjeOCh+OBhuOBkw0KK+OBi+OBquOBhCzjgorjgYjjgZMNCivjgYvjgarjgZbjgo8s44GV44Gg44GE44GhDQor44GL44KT44GgLOOBn+OBi+OBsuOCjQ0KK+OBi+OBreOBhOOBoSzjgYLjgY3jgYoNCivjgYvjga3jgZMs44Gy44KN44G244G/DQor44GL44Gt44GTLOOBvuOBmeOBig0KK+OBi+OBreOBkyzjgZfjgoXjgYbjgZgNCivjgYvjga3jgZMs44Gf44GR44Gy44GTDQor44GL44Gt44GTLOOChOOBiA0KK+OBi+OBreOBkyzjgbLjgZXjgZcNCivjgYvjga3jgb7jgoss44GC44Gk44GXDQor44GL44KK44KELOOCiOOBl+OBruOBtg0KK+OBi+OCi+OBuSzjgY3jgofjgYbjgZgNCivjgYvjgZfjgb4s44Gy44KN44KG44GNDQor44GL44GX44KP44GOLOOCiOOBl+OChuOBjQ0KK+OBi+OBl+OCj+OBjizjgbLjgo3jgZcNCivjgYvjgZnjgoQs44GR44GE44GUDQor44GL44GZ44KELOOBl+OCh+OBhuOBkw0KK+OBi+OBmeOChCzjgZ/jgYvjgZcNCivjgYvjgZ/jga4s44GR44KT44GE44GhDQor44GX44KJ44GNLOOBi+OBpOOBig0KK+OBi+OBn+OBiuOBiyzjgojjgYbjgYTjgaHjgo3jgYYNCivjgYvjgZ/jgYrjgYss44GC44Gk44GXDQor44GL44Gf44KE44G+LA0KK+OBi+OBqOOBhizjgZ/jgabjgYoNCivjgYvjgajjgYYs44Gy44KN44GXDQor44GL44Go44GGLOOBsuOCjeOBkw0KK+OBi+OBqOOBhizjgbLjgo3jgoQNCivjgYvjgajjgYYs44Gf44GR44GXDQor44GU44Go44GGLOOBsuOCjeOBi+OBmg0KK+OBi+OBpOOChCzjgbLjgo3jgZcNCivjgYvjgo/jgaAs44G/44Gh44GKDQor44GL44KP44GgLOOBleOBoeOBkw0KK+OBi+OCj+OBkOOBoSzjgZXjgajjgZcNCivjgYvjgo/jga/jgoks44Gb44GE44GE44Gh44KN44GGDQor44GL44KP44Gv44KJLOOBsuOCjeOBguOBjQ0KK+OBi+OCj+OBr+OBnyzjgbLjgo3jgobjgY0NCivjgYvjgo/jgYQs44GY44KF44KT44GE44GhDQor44GL44KP44GELOOBi+OCiOOBkw0KK+OBi+OCj+OBhCzjgb/jgbsNCivjgYvjgo/jgYvjgb8s44Gf44GR44GXDQor44GL44KP44GN44GfLOOBqOOCguOBguOBjQ0KK+OBi+OCj+OBjeOBnyzjgoTjgZnjgZMNCivjgYvjgo/jgoDjgoks44KG44GN44G+44GVDQor44GL44KP44KA44KJLOOChuOBjQ0KK+OBi+OCj+OCgOOCiSzjgb7jgZXjgobjgY0NCivjgYvjgo/jgZ7jgYgs44G/44GqDQor44G144Gf44GP44GhLOOBn+OBoOOBlw0KK+OBjeOBoCzjgoTjgZnjgbLjgo0NCivjgY3jgaAs44KI44GX44G144G/DQor44GN44GpLOOBguOBjeOBig0KK+OBjeOBr+OCiSzjgYvjgaTjgajjgZcNCivjgY3jgY/jgaEs44GT44GG44GYDQor44GN44GP44GhLOOBguOBhOOBkw0KK+OBjeOBj+OBnyzjgYTjgZXjgYoNCivjgY3jgoLjgags44GL44Ga44G+44GVDQor44GN44KA44KJLOOBv+OBruOCiw0KK+OBjeOCgOOCiSzjgarjgbvjgb8NCivjgY3jgoDjgoks44GX44KF44KT44GE44GhDQor44GN44KA44KJLOOBmeOBv+OBsuOCjQ0KK+OBvuOBpOOCguOBqCzjgZ/jgY/jgo3jgYYNCivjgY3jgoDjgoks44Go44GX44GKDQor44GN44KA44KJLOOBmOOCheOCk+OBkw0KK+OBiuOBi+OBluOBjSzjgZ/jgZHjgYoNCivjgY3jgoDjgoks44KG44GLDQor44GN44KA44KJLOOBguOBpOOBlw0KK+OBjeOBruOBl+OBnyzjgZHjgYTjgZMNCivjgY3jgZcs44GN44G/44Gy44GTDQor44GN44GZLOOBmOOCheOCk+OBkw0KK+OBjeOBn+OBi+OBnCzjga7jgbbjgY0NCivjgY3jgZ/jgoDjgoks44GC44GN44GKDQor44GN44GG44GhLOOBquOBiuOBqA0KK+OBjeOBhuOBoSzjgZ/jgYvjgZ7jgYYNCivjgY3jgojjgZ8s44Gg44GE44GZ44GRDQor44GT44Gw44KE44GXLOOBvuOBleOBr+OCiw0KK+OBk+OBsOOChOOBlyzjgZHjgpPjgZgNCivjgZPjgbDjgoTjgZcs44G/44KI44GTDQor44GT44Gw44KE44GXLOOCiOOBl+OChuOBjQ0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgZcNCivjgZPjgbDjgoTjgZcs44Gy44Gn44GC44GNDQor44GT44Gw44KE44GXLOOChuOBhuOBhOOBoQ0KK+OBk+OBsOOChOOBlyzjgojjgZfjgYoNCivjgZPjgbDjgoTjgZcs44Gy44KN44Gy44GnDQor44Gy44KN44GbLOOBr+OCi+OBig0KK+OBk+OBp+OCiSzjgYLjgY3jgbLjgo0NCivjgZPjgYzjgYQs44Gy44GV44Gf44GLDQor44GT44GQ44KMLOOBi+OBmuOBig0KK+OCguOCiuOBnyzjgb/jgaHjgbLjgZMNCivjgZPjgoLjgags44KI44GG44GZ44GRDQor44GT44KT44GuLOOBguOBjeOBsuOCjQ0KK+OBk+OBleOBiyzjgojjgZfjgobjgY0NCivjgZPjgYTjgZEs44GN44KI44GXDQor44GT44GE44GRLOOCiOOBhuOBhOOBoQ0KK+OBk+OBhOOBlyzjgYLjgY3jgYoNCivjgZPjgZjjgb4s44GL44Ga44Gf44GLDQor44GT44GY44G+LOOBpuOBpA0KK+OBk+OBj+OBuyzjgYvjgaTjgoQNCivjgZPjgY/jgb7jgYQs44G/44GI44GTDQor44GT44G+44GM44GfLOOBvuOBk+OBqA0KK+OBk+OBvuOBjSzjgYvjgZrjgobjgY0NCivjgZPjgb7jgaQs44KI44GG44GE44GhDQor44GT44G+44GkLOOBguOBpOOBlw0KK+OBk+OBv+OBrSzjgYvjgaTjga7jgooNCivjgZPjgb/jgoTjgb4s44KI44GX44Gu44G2DQor44GT44KC44GK44GLLOOBteOBv+OBig0KK+OBk+OCguOCiizjgZfjgZLjga7jgooNCivjgZPjgpPjgaks44Gy44KN44GXDQor44GT44KT44GpLOOBv+OBjeOBig0KK+OBk+OCk+OBqSzjgojjgZfjgZ7jgYYNCivjgZPjgpPjgaks44Gf44GL44KG44GNDQor44GT44KT44Gp44GGLOOBn+OBpOOBqA0KK+OBk+OCk+OBrizjgabjgaTjgYoNCivjgZPjgZnjgY4s44KI44GG44GE44GhDQor44GT44GG44GgLOOBqOOBl+OChuOBjQ0KK+OBk+OChOOBquOBjizjga7jgbbjgbLjgZMNCivjgY/jgbzjgZ8s44Gy44KN44KG44GNDQor44GP44G844GfLOOBquOBiuOBjQ0KK+OBj+OBvCzjgZ/jgYvjgobjgY0NCivjgY/jganjgYYs44GU44GGDQor44GP44GMLOOBl+OBkuOCiw0KK+OBj+OBmOOBvizjgYjjgooNCivjgY/jgb7jgaAs44Gy44KN44GXDQor44GP44G+44GNLOOBvuOBjQ0KK+OBj+OBvuOBj+OCiSzjgYvjgaTjgagNCivjgY/jgb7jgoLjgags44GC44GN44Gy44GTDQor44GP44KC44GL44KPLOOBsuOCjeOBruOCig0KK+OBj+OCieOBl+OBvizjgZPjgYbjgYTjgaENCivjgY/jgorjga/jgoks44GT44GG44GYDQor44GP44KK44Gv44KJLOOChuOBv+OBkw0KK+OBj+OCiuOCgOOCiSzjgZfjgoXjgYbjgZgNCivjgY/jgorjgZks44Gy44KN44GXDQor44GP44KK44KE44G+LOOChuOBjeOBiA0KK+OBj+OCiuOChOOBvizjgZjjgoXjgpPjgYTjgaENCivjgY/jgo3jgaAs44GC44GN44KJDQor44GP44KN44GL44KPLOOBsuOCjeOBlw0KK+OBj+OCjeOBjSzjga7jgbbjgoQNCivjgY/jgo3jgZXjgY0s44Gu44G244GC44GNDQor44GP44KN44GZLOOBsuOCjeOBlw0KK+OBj+OBl+OBoCzjgo/jgZ/jgosNCivjgY/jgZnjgaAs44KI44GX44GTDQor44GP44KP44Gw44KJLOOBhOOBoeOCjeOBhg0KK+OBhuOBoeOBoCzjgZHjgYTjgYTjgaENCivjgb7jgYjjgaAs44KE44GZ44Gy44GTDQor44Gr44KPLOOBl+OBkuOBv+OBpA0KK+OBvuOBiOOBsuOCiSzjgb7jgZXjgagNCivjgb7jgYjjgYvjgo8s44Gy44Gn44Gf44GLDQor44G+44GN44KA44KJLOOBsuOCjeOBv+OBpA0KK+OBvuOBjeOBrizjgobjgYbjgZgNCivjgb7jgY3jga4s44G+44KKDQor44KI44GG44GT44GfLOOBv+OBoeOChOOBmQ0KK+OBvuOCi+OChOOBvizjgZ/jgaDjgZcNCivjgb7jgZnjgaAs44G/44GN44GKDQor44G+44GZ44GgLOOBpuOCi+OBguOBjQ0KK+OBvuOBmeOBsuOCjSzjgY3jgb8NCivjgb7jgZnjgoTjgb4s44Gf44GP44GYDQor44G+44Gk44Gw44KJLOOBk+OBhuOBmA0KK+OBvuOBpOOBsOOCiSzjgoTjgZnjgarjgooNCivjgb7jgaTjgaDjgYTjgoks44G+44GV44GoDQor44G+44Gk44GgLOOBl+OBkuOBig0KK+OBleOBleOCguOBqCzjgZXjgobjgooNCivjgb7jgaTjgaAs44Go44GX44G/DQor44G+44Gk44G144GVLOOBi+OBpOOBmA0KK+OBvuOBpOOBhCzjgajjgYrjgosNCivjgb7jgaTjgYQs44GY44KF44KT44GE44GhDQor44G+44Gk44GNLOOBguOBjeOBsuOBkw0KK+OBi+OBruOBhizjgbLjgo3jgobjgY0NCivjgb7jgaTjgoLjgags44KG44GG44GE44GhDQor44G+44Gk44KC44GoLOOBqOOBl+OChuOBjQ0KK+OBvuOBpOOCguOBqCzjgbXjgZjjgYoNCivjga/jgZfjgoLjgags44GX44KH44GG44GYDQor44G+44Gk44KA44KJLOOBjeOBq+OBoQ0KK+OBvuOBpOOCgOOCiSzjgbLjgo3jgobjgY0NCivjgb7jgaTjgarjgb8s44Gy44KN44KG44GNDQor44G+44Gk44Gq44G/LOOChuOBjeOBig0KK+OBoeOBsCzjgabjgaTjgoQNCivjgb7jgaTjgZfjgbAs44GT44GG44GE44GhDQor44G+44Gk44GX44GfLOOBsuOCjeOBlw0KK+OBvuOBpOOBl+OBnyzjgYjjgYTjgYTjgaENCivjgb7jgaTjgYbjgoks44GE44Gh44KN44GGDQor44G+44Gk44GW44GNLOOBn+OBoOOBlw0KK+OBhOOBvuOBhCzjgb7jgZXjgobjgY0NCivjgb7jgobjgoTjgb4s44GC44Gk44GXDQor44KB44KTLOOBvuOBleOBqA0KK+OBv+OBoeOBjOOBvyzjga7jgorjgYoNCivjgb/jga/jgoks44Gv44KL44GTDQor44G/44GNLOOBguOBpOOBlw0KK+OBv+OCguOCiizjgbLjgo3jgZcNCivjgb/jgarjgb/jgZDjgaEs44GL44Gq44KBDQor44G/44Gq44Ga44GNLOOBquOBiuOChuOBjQ0KK+OBv+OBreOCgOOCiSzjgobjgYvjgooNCivjgb/jgZfjgaos44GL44Ga44Gy44KNDQor44G/44Gk44GELOOBn+OBkeOBr+OCiw0KK+OBv+OBhuOCiSzjgojjgYbjgYTjgaENCivjgb/jgYbjgoks44GR44KT44GE44GhDQor44KA44KJ44GL44G/LOOBvuOBleOBr+OCiw0KK+OBv+OCjyzjgZfjgZLjgobjgY0NCivjgb/jgoTjgYzjgo8s44G+44GV44GKDQor44G/44KE44GOLOOBv+OBoeOBkw0KK+OBv+OChOOBr+OCiSzjgajjgZfjgYoNCivjgb/jgoTjga/jgZcs44GN44KH44GG44GTDQor44G/44KE44GL44KPLOOBvuOBleOBqOOBlw0KK+OBv+OChOOBjSzjgb7jgZXjgZrjgb8NCivjgb/jgoTjgoLjgags44Gb44GE44GYDQor44G/44KE44KC44GoLOOBsuOCjeOBlw0KK+OBv+OChOOCguOBqCzjgb7jgZXjgbLjgo0NCivjgb/jgoTjgZXjgYss44Gq44GK44GNDQor44G/44KE44Gf44GRLOOBl+OBkuOBvw0KK+OBv+OChOOBnyzjgajjgZfjgbLjgo0NCivjgb/jgoTjgZ8s44KG44GG44GYDQor44G/44KE44GfLOOBvuOBleOBv+OBoQ0KK+OBj+OCjeOBoCzjgZHjgYTjgZMNCivjgb/jgojjgZcs44Gq44GK44GTDQor44G/44Ga44GT44GXLOOBvuOBjeOBig0KK+OBv+OBmuOBk+OBlyzjgajjgZfjgYoNCivjgb/jgZrjga4s44Gf44Gk44KEDQor44G/44Ga44GuLOOBruOBtuOBr+OCiw0KK+OBv+OBmuOBn+OBqyzjgZfjgpPjgZgNCivjgoLjgoos44GX44KH44GG44GYDQor44KC44KKLOOBruOCiuOBkw0KK+OCguOCiuOBi+OCjyzjgYLjgY3jgZMNCivjgoLjgorjgY0s44KE44GZ44Gy44KNDQor44KC44KK44GX44GfLOOCiOOBl+OBvw0KK+OCguOCiuOBnyzjgZ/jgaDjgZcNCivjgoLjgorjgZ8s44GL44Ga44Gy44KNDQor44KC44KK44KE44G+LOOBqOOBl+OBig0KK+OCguOCiuOBnuOBrizjgaTjgojjgZcNCivjgoLjgoos44GV44Go44KLDQor44KC44KKLOOBi+OBpOOBqOOBvw0KK+OCguOCiizjgoTjgZnjgYoNCivjgoLjgoos44Gy44KN44Gu44KKDQor44KC44KN44Ga44G/LOOBruOBvOOCiw0KK+OBhOOBruOBr+OBqizjgYvjgZrjgYoNCivjgZPjgZjjgb4s44GX44KT44GUDQor44KA44GL44GELOOBn+OBpOOBvw0KK+OCgOOBi+OBhCzjgZXjgaHjgYoNCivjgoDjgonjgYQs44Gh44Gq44GkDQor44KA44KJ44GL44G/LOOBqOOBiuOCiw0KK+OCgOOCieOBi+OBvyzjgaHjga/jgosNCivjgoDjgonjgb7jgaQs44G+44GV44GL44GaDQor44Gr44KPLOOBi+OBpOOBsuOCjQ0KK+OCgOOCieOBnyzjgZXjgajjgZcNCivjgoDjgonjgZ8s44GE44Gh44KN44GGDQor44GK44GK44GuLOOBn+OBi+OBlw0KK+OCgOOCieOChOOBvizjgaHjga/jgosNCivjgoDjgajjgYYs44Gy44KN44KEDQor44KA44Go44GGLOOBn+OBi+OBlw0KK+OCgOOBqOOBhizjgYLjgb7jga0NCivjgoDjgaTjgZfjgYss44GI44GE44GE44GhDQor44Gq44GM44GELOOBsuOCjeOBlw0KK+OBquOBjOOBhCzjgYvjgaTjgobjgY0NCivjgarjgYzjgoLjgags44GR44KT44GE44GhDQor44GC44KJ44GELOOBn+OBkeOBqOOBlw0KK+OBquOBjOOBiizjgoTjgZnjgarjgooNCivjgarjgYzjgZXjgo8s44GC44Gk44GXDQor44Gq44GM44GV44KPLOOBi+OBmuOBqA0KK+OBquOBjOOChOOBvizjgYLjgY3jgbLjgo0NCivjgarjgYTjgajjgYYs44G144GV44Gu44G2DQor44Gq44GE44Go44GGLOOBi+OBpOOBig0KK+OBquOBi+OBsOOChOOBlyzjgYvjgZrjgbLjgZUNCivjgarjgYvjgaDjgaYs44GT44GG44GE44GhDQor44Gq44GL44GM44GNLOOBvuOBleOBruOCig0KK+OBquOBjOOBiCzjgZ/jgYvjgobjgY0NCivjgarjgYvjgYzjgo8s44Gm44KL44GYDQor44Gq44GL44GM44KPLOOBqOOBl+OChuOBjQ0KK+OBquOBi+OBlOOCgSzjgojjgZfjgarjgooNCivjgarjgYvjgbLjgoks44KG44Gf44GLDQor44Gq44GL44GELOOBiOOBv+OBkw0KK+OBquOBi+OBmOOBvizjgYvjgaTjgajjgoINCivjgarjgYvjgZjjgb4s44G/44GI44GTDQor44Gq44GL44GY44G+LOOBquOBiuOChA0KK+OBquOBi+OBmOOBvizjgYjjgooNCivjgarjgYvjgZjjgb4s44Gk44Gt44GC44GNDQor44Gq44GL44GY44G+LOOBkeOBhOOBhOOBoQ0KK+OBquOBi+OBmOOBvizjgarjgYrjgbLjgacNCivjgarjgYvjgb7jgZ8s44Gu44KK44Gy44KNDQor44Gq44GL44G/44GhLOOBl+OCheOCk+OBhOOBoeOCjeOBhg0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgY0NCivjgarjgYvjgoDjgoks44Go44GX44GC44GNDQor44Gq44GL44KA44KJLOOBvuOBk+OBqA0KK+OBquOBi+OCgOOCiSzjgabjgovjgbLjgo0NCivjgarjgYvjgoDjgoks44GX44KT44GYDQor44Gq44GL44KA44KJLOOBr+OBmOOCgQ0KK+OBquOBi+OCgOOCiSzjga7jgorjgYLjgY0NCivjgarjgYvjgoDjgoks44Gy44KN44KG44GNDQor44Gq44GL44KA44KJLOOBi+OBmuOBsuOBkw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgobjgY0NCivjgarjgYvjgoDjgoks44Gq44GK44GNDQor44Gq44GL44Gr44GXLOOBqOOBl+OBguOBjQ0KK+OBiuOBiuOBq+OBlyzjgb7jgZXjga7jgooNCivjgarjgYvjgavjgZcs44Go44GX44KG44GNDQor44Gq44GL44Gr44GXLOOBruOBtuOChOOBmQ0KK+OBquOBi+OBrizjgY3jgojjgZ/jgYsNCivjgYrjgYvjgZbjgo8s44GL44KI44GTDQor44Gq44GL44GuLOOBruOBnuOBvw0KK+OBquOBi+OBrizjgojjgZfjgbXjgb8NCivjgarjgYvjga4s44KC44GI44GTDQor44Gq44GL44GK44GLLOOBpuOBpOOChA0KK+OBquOBi+OBiizjgbXjgb/jgZMNCivjgarjgYvjgYos44GI44GE44GYDQor44Gq44GL44GbLOOBk+OBhuOBlw0KK+OBquOBi+OBneOBjizjgb7jgZXjgajjgb8NCivjgarjgYvjgZ8s44GX44GS44GTDQor44Gq44GL44Gk44GLLOOBn+OBi+OBlw0KK+OBquOBi+OBpOOBiyzjgb7jgZPjgagNCivjgarjgYvjgoTjgb4s44Gy44Gn44GNDQor44Gq44GL44KE44G+LOOBguOBpOOBlw0KK+OBquOBi+OChOOBvizjgZ/jgaTjgoQNCivjgarjgYvjgoTjgb4s44GT44GG44G444GEDQor44Gq44GL44KE44G+LOOBi+OBpOOBsuOBkw0KK+OBquOBi+OBluOCjyzjgb/jgaTjgZANCivjgarjgb/jgY0s44GP44Gr44GKDQor44Gq44KJ44GX44G+LOOBvuOBleOBguOBjQ0KK+OBquOCiSzjgZ/jgZHjgbLjgZMNCivjgY/jganjgYYs44Gy44GV44GXDQor44Gq44Gk44GuLOOBv+OBoeOBr+OCiw0KK+OBquOBpOOChOOBvizjgobjgYbjgZMNCivjgYjjgajjgYYs44Gy44KN44GXDQor44Gr44G444GELOOBn+OBi+OBlw0KK+OBiuOBj+OBrizjgZXjgobjgooNCivjgb7jgYjjgbvjgoos44Gy44KN44G/DQor44Gr44GX44GgLOOBsuOBqOOBlw0KK+OBq+OBl+OBkOOBoSzjgZ/jgaTjgYoNCivjgoLjgoos44KG44GN44GTDQor44Gr44GX44GL44KPLOOBvuOBleOBlw0KK+OBq+OBl+OBj+OCiSzjgZfjgZLjgosNCivjgavjgZfjgoLjgags44G+44GV44GNDQor44Gr44GX44GKLOOBqOOBl+OBsuOBkw0KK+OBq+OBl+OCj+OBjSzjgZHjgYTjgZMNCivjgavjgZcs44G+44GV44KLDQor44Gr44KPLOOBvuOBleOBjQ0KK+OBruOBtuOBvuOBlSzjgb/jgZXjgagNCivjga7jgaAs44KC44Go44Gy44GTDQor44Gu44GQ44GhLOOBn+OBi+OBlw0KK+OBruOBkOOBoSzjgZHjgpMNCivjga7jgbvjgoos44Gy44Gn44KG44GNDQor44Gu44Gf44GrLOOBvuOBleOBn+OBkQ0KK+OBruOBvizjgZXjgajjgZcNCivjga7jgb/jgoTjgb4s44Go44GX44KN44GGDQor44Gu44KC44GoLOOBqOOBl+OBguOBjQ0KK+OBn+OCk+OBluOCkyzjgb/jgaHjgYoNCivjgYrjgYrjgYvjgo8s44GL44Ga44Gy44GTDQor44Gu44Gu44KE44G+LOOBvuOBleOBjQ0KK+OBruOCiuOBi+OBrSzjgb7jgZXjgosNCivjga7jgo0s44Gb44GE44GE44GhDQor44GuLOOBl+OCk+OBhOOBoQ0KK+OBiuOBsOOBqizjgbLjgo3jgZcNCivjgYrjgbPjgarjgZ8s44GC44GN44Gy44GTDQor44GK44Gh44GC44GELOOCiOOBl+OBruOCig0KK+OBl+OBvuOCgOOCiSzjgbLjgo3jgZcNCivjgYrjgaDjga0s44KI44GX44GL44GaDQor44GK44GM44KPLOOBquOBiuOBvw0KK+OBiuOBkOOCiSzjgbLjgafjgajjgZcNCivjgYrjgZDjgoks44Gb44GE44GYDQor44GK44GQ44KJLOOBl+OCk+OBmeOBkQ0KK+OBiuOBiuOBkOOCjSzjgYTjgo/jgYoNCivjgYrjgYrjgbDjgoTjgZcs44GR44GE44Ge44GGDQor44GK44GK44Gw44KE44GXLOOChOOBmeOChuOBjQ0KK+OBiuOBiuOBsCzjgYjjgorjgZMNCivjgYrjgaEs44GX44KT44GUDQor44GK44GK44GnLOOBqOOBl+OBsuOBkw0KK+OBiuOBiuOBu+OCiizjga7jgorjgYoNCivjgYrjgbss44GT44GZ44GRDQor44GK44GK44GE44GXLOOCguOBqOOBhOOBoQ0KK+OBiuOBjSzjgojjgZfjgobjgY0NCivjgYrjgYrjgY/jgbws44G+44GV44Gy44KNDQor44GK44GK44GP44G8LOOBvuOBleOBj+OBqw0KK+OBiuOBiuOBv+OBoSzjgZ/jgZHjga7jgooNCivjgYrjgoDjgoks44Gk44Gt44GC44GNDQor44GK44GK44Gr44GXLOOBhOOBleOBig0KK+OBiuOBrizjgZPjgYbjgYTjgaHjgo3jgYYNCivjgYrjgonjgYQs44GZ44GZ44KADQor44GK44GV44GNLOOBleOBqOOBlw0KK+OBiuOBiuOBleOCjyzjgZ3jgYbjgYTjgaHjgo3jgYYNCivjgYrjgYrjgZXjgo8s44Gf44Gg44GXDQor44GK44GK44GV44KPLOOCiuOCheOBhuOBmA0KK+OBiuOBiuOBn+OBqyzjgZHjgpPjgZgNCivjgYrjgYrjgZ8s44Gq44GK44GNDQor44GK44GK44Go44KCLOOBguOBjeOBig0KK+OBiuOBluOBjSzjgZPjgYbjgZgNCivjgYrjgYrjgaTjgYss44Gf44GR44GXDQor44GK44GK44Gk44GLLOOBqOOBl+OCjeOBhg0KK+OBiuOBiuOBpOOBjSzjgabjgaTjgoQNCivjgYrjgYrjgoQs44G+44GV44Gy44KNDQor44GK44Gy44KDLOOBj+OBq+OBsuOBkw0KK+OBiuOBiuOChCzjgZnjgZDjgosNCivjgYrjgYvjgaAs44Gk44GQ44GKDQor44GK44GL44GgLOOCiOOBl+OBsuOCjQ0KK+OBiuOBi+OBoCzjgajjgZfjgbLjgo0NCivjgYrjgYvjgaAs44GX44KT44GE44GhDQor44GK44GL44Gv44KJLOOBsuOCjeOBjQ0KK+OBiuOBi+OCguOBqCzjgojjgZfjgYoNCivjgY/jgZXjgbAs44Gy44KN44GXDQor44GK44GL44KA44KJLOOBvuOBleOBi+OBmg0KK+OBiuOBi+OCgOOCiSzjgb7jgZXjgY0NCivjgYrjgYvjga4s44Gy44KN44GXDQor44Go44Gz44GfLOOBl+OCheOBhuOBuOOBhA0KK+OBu+OBneOBi+OCjyzjgZPjgYbjgZgNCivjgYbjgYjjgaAs44Go44KI44GL44GaDQor44GT44Gb44GNLOOChuOBvw0KK+OBn+OBluOCjyzjgZfjgoXjgpPjgZgNCivjgoTjgb7jgZbjgY0s44KI44GX44GL44GaDQor44GI44GQ44GhLOOBsuOCjeOChuOBjQ0KK+OCguOBoeOBoCzjgZnjgZnjgoANCivjgYLjgY3jgoLjgags44GN44GI44GEDQor44Gr44GXLOOBguOBpOOBjQ0KK+OBhOOBvuOBhOOBlyzjgZfjgZLjgajjgZcNCivjgZ/jgYvjgoTjgZks44Gu44G244KI44GXDQor44Gv44GfLOOBvuOBleOChuOBjQ0KK+OBteOBmOOBleOCjyzjgYLjgY3jgokNCivjgoDjgajjgYYs44Gy44GV44GXDQor44KC44Gf44GELOOBl+OCk+OBhOOBoQ0KK+OBn+OBoCzjgZ/jgYvjgobjgY0NCivjgZPjgYTjgZrjgb8s44GL44Ga44KI44GXDQor44Gk44G844GP44KJLOOBk+OBhuOBnuOBhg0KK+OBsuOCieOBsOOChOOBlyzjgbLjgo3jgZgNCivjgaTjgZjjgYvjgo8s44Gy44KN44GL44GaDQor44G/44Gk44GE44GXLOOBm+OBhOOBhOOBoQ0KK+OChOOBvuOBl+OBnyzjgZHjgpPjgZgNCivjgb7jgovjgYrjgYss44Gu44G244Gf44GLDQor44G144GL44GKLOOBqOOBiuOCiw0KK+OBpOOCgOOCiSzjgYvjgarjgZMNCivjgb7jgobjgb8s44Go44GX44GIDQor44GC44KJ44GL44KPLOOBv+OBqeOCig0KK+OBiuOBteOBoSzjgZjjgoXjgpMNCivjgZXjgZXjgoLjgoos44KG44Gf44GLDQor44GV44Go44GGLOOBguOBjeOCiQ0KK+OBn+OBi+OBjizjgb7jgZPjgagNCivjgZ/jgarjgYss44G+44GV44G/44GkDQor44Gk44G844GULOOBteOBv+OBsuOBkw0KK+OBqOOCiuOBleOCjyzjgbLjgo3jgobjgY0NCivjgarjgYvjgZDjgY0s44GR44GE44GUDQor44Gv44Gb44GM44KPLOOBqOOCguOChuOBjQ0KK+OBr+OChOOBlyzjgZPjgYbjgZgNCivjgbLjgonjgoTjgb4s44GX44GS44KLDQor44G144GP44GX44G+LOOBqOOBl+OBjQ0KK+OBvuOBpOOBl+OBvizjgYvjgZrjgbLjgo0NCivjgojjgZfjgYQs44Gy44Gn44GNDQor44GE44GX44GELOOBruOCiuOBkw0KK+OBhOOBvuOBhCzjgb/jgobjgY0NCivjgarjgYvjgaTjgZgs44KG44GN44GIDQor44G744GE44GgLOOBpOOBreOBig0KK+OBleOCj+OBr+OBnyzjgb/jgaTjgosNCivjgZ/jga/jgoks44GX44KH44GG44GYDQor44Gf44GL44Gv44GXLOOBv+OBreOBvuOBlQ0KK+OBmeOBmuOBjSzjgbLjgafjgYLjgY0NCivjgojjgZPjgoTjgb4s44GR44KT44GYDQor44GE44GX44GL44KPLOOBkeOCk+OBmA0KK+OBguOBleOBrizjgojjgZfjgZ/jgYsNCivjgYvjga3jgZMs44GX44KF44GG44GYDQor44GP44KN44GbLOOCiOOBhuOBmeOBkQ0KK+OBleOBi+OBjeOBsOOCiSzjgYLjgonjgZ8NCivjgYvjgZXjgb4s44GR44GE44GTDQor44GZ44GO44KE44G+LOOCiOOBl+OBvuOBlQ0KK+OBmeOBoCzjgabjgaTjgoQNCivjgZ/jgarjgYss44GC44KEDQor44Gk44G844GELOOBiOOBpOOBkw0KK+OBr+OBl+OCguOBqCzjgaHjgYjjgZMNCivjgbXjgY/jgaEs44GV44Go44G/DQor44GC44KJ44GELOOBqOOCguOBkw0KK+OBn+OBquOBiyzjgZHjgpPjgZgNCivjgoTjgZfjgb4s44Gq44GK44KG44GNDQor44GL44KP44G+44GfLOOBn+OBkeOBruOCig0KK+OBmeOCk+OBoCzjgYLjgaTjgoQNCivjgb/jgZrjgZ/jgass44G/44Gu44KLDQor44KE44G+44GT44GXLOOBruOCiuOChuOBjQ0KK+OBguOBvuOBjOOChCzjgobjgoHjga4NCivjgYLjgonjgY0s44Gy44GV44KIDQor44GE44G+44GELOOBqOOBl+OBr+OCiw0KK+OBhOOBvuOBluOBjSzjgZ/jgYvjgbLjgZUNCivjgY3jgoDjgoks44GL44Gk44Gy44GnDQor44GZ44GO44KE44G+LOOBhOOBleOBig0KK+OBmeOBmuOBjSzjgaDjgYTjgZnjgZENCivjgaTjgoss44G/44Gu44KLDQor44Gv44GT44GW44GNLOOBguOBjeOCiQ0KK+OBn+OBjeOBluOCjyzjgaTjgojjgZcNCivjgYTjgajjgYYs44GL44Ga44Gu44G2DQor44G+44GZ44GgLOOCiOOBl+OBruOCig0KK+OBpOOBsOOBjSzjgaHjgYLjgY0NCivjgb/jgZnjgb8s44Gh44GL44GTDQor44KE44GE44GfLOOBvuOBjQ0KK+OBi+OCj+OBpCzjgbLjgajjgZcNCivjgaTjgYvjgaAs44Gf44GR44Gy44GTDQor44Gq44GL44KC44GoLOOBteOBv+OBkw0KK+OBteOBquOBs+OBjSzjgZXjgarjgYgNCivjgojjgZfjgZbjgo8s44GN44KH44GG44GTDQor44Go44GG44G+LOOCiOOBhuOBkw0KK+OBm+OBjSzjgb7jgooNCivjgoDjgonjgZ8s44Gq44GK44GNDQor44GL44Gf44KE44G+LOOBvuOBleOBsuOCjQ0KK+OBjeOBqSzjgZfjgoXjgYbjgZgNCivjgZPjgbDjgoTjgZcs44GT44GG44GYDQor44GX44Gu44G/44KELOOBqOOCguOBi+OBmg0KK+OBn+OBquOBiyzjgYvjgZrjgobjgY0NCivjga/jgoks44KI44GX44Gu44KKDQor44KC44KK44Gf44GrLOOBl+OCh+OBhuOBuOOBhA0KK+OBhOOBoeOBruOBmyzjgYvjgZrjgobjgY0NCivjgbXjgZjjgoLjgags44GL44Gk44KG44GNDQor44GG44GI44GuLOOBk+OBhuOBmA0KK+OBl+OBl+OBqSzjgajjgZfjga7jgooNCivjgb/jgYbjgoks44GZ44GZ44KADQor44GG44Gh44GgLOOCi+OBv+OBkw0KK+OBqeOBhCzjgZPjgYbjgYTjgaENCivjgZ3jgZnjgb8s44Go44GX44KG44GNDQor44KI44GX44GgLOOBvuOBleOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgYoNCivjgoTjgb7jgZDjgaEs44Gq44GI44GTDQor44GV44GVLOOChuOBjeOBkw0KK+OBr+OBm+OBjOOCjyzjgYvjgYrjgooNCivjgYLjgaTjgZ8s44KI44GX44GKDQor44GE44Gh44GL44KPLOOBvuOBleOBguOBjQ0KK+OBhuOBrizjgZXjgajjgb8NCivjgYrjgYzjgo8s44KG44GN44GTDQor44GK44GgLOOBsuOCjeOBi+OBmg0KK+OBn+OBi+OBleOBjSzjgb7jgY3jgZMNCivjgZ/jgYvjga/jgZcs44Gk44KI44GXDQor44Gf44GgLOOBn+OBoOOBlw0KK+OBn+OBquOBiyzjgbLjgo3jgZcNCivjgajjgY/jgarjgYws44Gy44KN44GXDQor44Go44G/44GfLOOBmOOCheOCk+OBkw0KK+OBquOBhOOBqOOBhizjgorjgYgNCivjga/jgonjgaAs44GI44G/44GTDQor44Gy44KJ44GL44KPLOOBqOOCguOBkw0KK+OBteOBquOCguOBqCzjgbLjgo3jgZ/jgYsNCivjganjgbDjgZcs44KG44GNDQor44G/44GG44KJLOOBoeOBkw0KK+OCiOOBl+OBoCzjgbLjgo3jgYLjgY0NCivjgYrjgYrjgZ/jgZEs44GY44KF44KT44GYDQor44GP44KJ44GfLOOChOOBmeOBsuOCjQ0KK+OBj+OCiuOBnyzjgZXjgajjgZcNCivjgaDjgpMs44G+44GT44GoDQor44KC44KK44GX44G+LOOBl+OCk+OBmA0KK+OCiOOBl+OBoCzjgojjgYbjgZgNCivjgo/jgYvjgbDjgoTjgZcs44KG44G/44GTDQor44GC44GS44G+44GkLOOBsuOCjeOBv+OBoQ0KK+OBhOOBl+OBkOOCjSzjgZPjgZnjgZENCivjgYvjgajjgYYs44GL44Ga44Gy44KNDQor44GV44GE44Go44GGLOOBl+OCk+OBhOOBoQ0KK+OBquOBhOOBqOOBhizjgb/jgaHjgogNCivjgb/jgoTjgb7jgYgs44Go44GX44KEDQor44GL44Gp44KP44GNLOOBguOBpOOBlw0KK+OBteOBj+OCguOBqCzjgb/jgY3jgYoNCivjgavjgZfjga/jgoks44GC44GN44KJDQor44GK44GL44KE44G+LOOBi+OBmuOBquOCig0KK+OBiuOBi+OChOOBmSzjgb/jgYjjgZMNCivjgY/jgo3jgYvjgo8s44Go44GK44KLDQor44GK44GN44GfLOOCiOOBl+OBsuOBlQ0KK+OBiuOBj+OBv+OChCzjgb7jgZXjgYvjgZoNCivjgYrjgY/jgoDjgoks44Gg44GEDQor44GK44Gu44GgLOOBquOCi+OBvw0KK+OBiuOBruOBp+OCiSzjgbLjgajjgZcNCivjgYrjga4s44Gv44KL44KG44GNDQor44GK44GuLOOBquOBiuOBteOBvw0KK+OBiuOBrizjgojjgZfjgbXjgb8NCivjgb7jgaTjgYQs44Gm44KL44GKDQor44GK44Gd44GI44GM44KPLOOChOOBmeOBquOCig0KK+OBiuOBluOBjSzjga7jgbbjgobjgY0NCivjgYrjgZzjgY0s44Gy44KN44KG44GNDQor44Gf44GL44GuLOOBhOOBleOBig0KK+OCiuOCh+OBhuOBi+OBhCzjgojjgZfjgY0NCivjgZXjgZLjgZXjgYss44KK44KF44GG44GE44GhDQor44GV44GO44KELOOBjeOCh+OBhuOBhOOBoQ0KK+OBleOBhOOBnyzjgb7jgZXjgbLjgo0NCivjgZXjgYTjgajjgYYs44GC44GN44G/44GkDQor44GV44GE44Go44GGLOOBlOOCjeOBhg0KK+OBleOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgZXjgYTjgajjgYYs44Gk44Gt44GKDQor44GV44GE44Go44GGLOOCiuOBiw0KK+OBleOBi+OBkOOBoSzjgbLjgafjgYLjgY0NCivjgZXjgYvjgYQs44Gy44KN44G/DQor44GX44G+44GgLOOBsuOCjeOBlw0KK+OBleOBi+OBjeOBsOOCiSzjgYTjgaTjgo3jgYYNCivjgZXjgYvjgoLjgags44GR44KT44GYDQor44GV44GL44KC44GoLOOBvuOBleOBjQ0KK+OBleOBi+OCguOBqCzjgoDjga3jgbLjgo0NCivjgZXjgYvjgoos44Gu44G244Gy44KNDQor44GV44GL44GfLOOBleOBqOOCiw0KK+OBleOBj+OBvizjgZfjgpPjgZgNCivjgZXjgY/jgonjgYQs44Gf44GL44Gu44G2DQor44GV44GP44KJ44GELOOBn+OBi+OBlw0KK+OBleOBj+OCieOBhCzjgojjgZfjgbLjgo0NCivjgZXjgpPjga7jgYbjgb7jgoss44KG44GN44GKDQor44GV44GuLOOChuOBn+OBiw0KK+OBleOBleOBuSzjgZ/jgaTjgo3jgYYNCivjgZXjgZXjgY0s44GX44KT44GUDQor44GV44GV44GNLOOBqOOCguOBsuOCjQ0KK+OBleOBleOBjSzjgZ/jgZHjgZcNCivjgZXjgZXjgY0s44Gq44GK44GoDQor44KI44GX44GgLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgojjgZfjgbLjgZMNCivjgZXjgajjgYYs44GL44Ga44Gu44KKDQor44GV44Go44GGLOOBn+OBi+OBruOCig0KK+OBleOBqOOBhizjga/jgoTjgagNCivjgZXjgajjgYYs44KE44GZ44Gy44GTDQor44GV44Go44GGLOOCiOOBl+OChuOBjQ0KK+OBleOBqOOBhizjgojjgZfjgagNCivjgZXjgajjgYYs44GC44GN44GKDQor44GV44Go44GGLOOBvuOBleOBkw0KK+OBleOBqOOBhizjgajjgoLjgZMNCivjgZXjgajjgYYs44KG44GG44GE44GhDQor44GV44Go44GGLOOBoeOBguOBjQ0KK+OBleOBqOOBhizjgYvjgZrjgoQNCivjgZXjgajjgYYs44G+44GV44G/DQor44GV44Go44GGLOOBleOBqOOBlw0KK+OBleOCj+OBhOOBpyzjgobjgYbjgYTjgaENCivjgZXjgo/jgYQs44GT44GG44GE44Gh44KN44GGDQor44GV44KE44Gq44GOLOOBvuOCig0KK+OBm+OBjOOCjyzjgojjgZfjgbLjgo0NCivjgZvjgYTjgb/jgoQs44Gy44KN44GXDQor44Gb44GE44KE44G+LOOBl+OBkuOBjQ0KK+OBm+OBjeOBi+OCjyzjgYLjgY3jgokNCivjgZvjgY0s44GT44GG44GYDQor44Gb44GNLOOBn+OBkeOBlw0KK+OBm+OCk+OBoCzjgbLjgo3jgZ/jgYsNCivjgZvjgpPjgZTjgY8s44GN44KH44GG44GTDQor44Gb44GuLOOBqOOBl+OBguOBjQ0KK+OBm+OBl+OCgizjgZPjgYbjgZgNCivjgZvjgZ/jgYss44GR44GEDQor44GZ44GMLOOCiuOCh+OBhuOBhOOBoQ0KK+OBv+OBquOBvyzjgoTjgZnjgZcNCivjgZfjgbDjgZ8s44Gh44GC44GNDQor44GX44G244KELOOBsuOCjeOBv+OBoQ0KK+OBl+OBtuOChCzjgaTjgojjgZcNCivjgZfjgbbjgoQs44G+44GV44Gu44KKDQor44GX44GE44GuLOOBsuOCjeOBkw0KK+OBl+OBi+OBnyzjgZ/jgYvjgbLjgo0NCivjgZfjgY3jgbYs44Gy44KN44GXDQor44GX44G+44GgLOOBvuOBleOBsuOCjQ0KK+OBl+OBvuOBoCzjgbLjgo3jgZcNCivjgZfjgb7jgYzjgb8s44Go44GX44GC44GNDQor44GX44G+44KC44KKLOOBvuOBleOBsuOBkw0KK+OBl+OBvuOCgOOCiSzjgobjgY3jga7jgooNCivjgZfjgb7jgZbjgY0s44GT44GGDQor44GX44G+44GW44GNLOOBn+OBi+OBguOBjQ0KK+OBl+OBv+OBmizjgYjjgYTjgZ7jgYYNCivjgZfjgb/jgZos44KK44GIDQor44GX44G/44GaLOOBsuOCjeOBlw0KK+OBl+OCguOBoCzjgZHjgYTjgb/jgpMNCivjgZfjgoLjgbLjgoks44GT44GG44Gf44KN44GGDQor44GX44Gu44Gv44KJLOOBguOBjeOBsuOCjQ0KK+OBl+OBruOBr+OCiSzjgb7jgarjgbYNCivjgZfjga7jgZbjgY0s44Gu44G244GTDQor44GX44Gu44GW44GNLOOBsuOCjeOBjQ0KK+OBl+OCk+OBvSzjgYvjgZnjgb8NCivjgZfjgpPjgZ/jgass44KG44GG44GYDQor44GK44GK44GN44GpLOOBneOBqOOBsuOCjQ0KK+OBl+OBiuOBrOOBvizjgY3jgojjgb8NCivjgZfjgYrjgZ8s44GP44Gr44GC44GNDQor44GX44GK44KELOOBvuOBleOBsuOCjQ0KK+OBl+OBiuOBluOCjyzjgYTjgZXjgYoNCivjgZfjgonjgYQs44GX44GS44GNDQor44GX44KJ44GV44GNLOOBsuOCjeOBlw0KK+OBl+OCieOBqOOCiizjgb7jgZXjgajjgZcNCivjgZfjgonjgajjgoos44Gf44GL44Gy44KNDQor44GX44KN44GNLOOBsuOBqOOBlw0KK+OBl+OCjeOBl+OBnyzjgZfjgZLjgY0NCivjgYvjgZfjgb4s44KI44GX44GKDQor44GX44KF44GGLOOBlOOBhOOBoQ0KK+OBhOOBvuOBhCzjgbLjgafjga/jgosNCivjgZ3jgYjjgaAs44Gy44KN44GTDQor44Gd44GMLOOBhOOBmuOCiw0KK+OBneOCjyzjgYvjgZrjgarjgooNCivjgZnjgaAs44GT44GG44GE44GhDQor44GZ44GgLOOBvuOBleOCiw0KK+OBmeOBoCzjgarjgYrjgY0NCivjgZnjgYjjgaAs44Gu44KK44KI44GXDQor44GZ44GI44KC44KKLOOBleOBjeOBkw0KK+OBmeOBiOOBiuOBiyzjgZfjgofjgYbjgYTjgaENCivjgZnjgYzjgo/jgoks44GX44KT44GYDQor44GZ44GS44GuLOOChOOBmeOBsuOCjQ0KK+OBmeOBjuOCguOBqCzjgoTjgZnjgYoNCivjgZnjgY7jgZ8s44KG44GG44GE44Gh44KNDQor44GZ44GO44KE44G+LOOBv+OBpOOBig0KK+OBmeOBjuOChOOBvizjgZHjgYTjgYTjgaHjgo3jgYYNCivjgZnjgY7jgoTjgb4s44GI44GE44GYDQor44GZ44G/44Go44KCLOOBruOBvOOCiw0KK+OBmeOBvyzjgobjgY0NCivjgZnjgarjgYws44Gy44Gn44KG44GNDQor44GZ44GW44GNLOOBpuOBpOOChA0KK+OBmeOBmuOBjSzjgabjgovjgb8NCivjgZnjgZrjgY0s44GC44GN44KJDQor44GZ44Ga44GNLOOChOOBmeOBlw0KK+OBmeOBmuOBjSzjgobjgY3jgYoNCivjgZnjgZrjgY0s44GX44Gu44G2DQor44GZ44Ga44GNLOOBl+OCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgajjgZfjgoQNCivjgZnjgZrjgY0s44Gy44KN44GXDQor44GZ44Ga44GNLOOBi+OBmuOBguOBjQ0KK+OBmeOBmuOBjSzjgZHjgYTjgZgNCivjgYrjgYrjgavjgZcs44G+44GV44Gv44KLDQor44GZ44Ga44GNLOOBruOBtuOBig0KK+OBmeOBmuOBjSzjga7jgorjgobjgY0NCivjgZnjgZrjgY0s44KK44KH44GG44GZ44GRDQor44Gf44G8LOOBl+OCkw0KK+OBn+OBtuOBoSzjgZ/jgaTjgoQNCivjgZ/jgbbjgZUs44Go44GX44G144G/DQor44Gf44Gh44GL44KPLOOChOOBmeOChuOBjQ0KK+OBsuOCieOBjSzjgobjgYbjgYTjgaENCivjgZ/jgYzjgYQs44KE44GZ44GXDQor44Gf44GM44KPLOOBv+OBuw0KK+OBn+OBjCzjga7jgbbjgZ/jgYsNCivjgZ/jgZDjgaEs44G/44GV44GKDQor44Gf44GQ44GhLOOBl+OCkw0KK+OBn+OBkOOBoSzjgb/jgarjgZMNCivjgZ/jgYvjgbDjgZ/jgZEs44KI44GG44GE44GhDQor44Gf44GL44GOLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBi+OBr+OCiSzjgajjgZfjgoQNCivjgZ/jgYvjga/jgZcs44Go44GX44KG44GNDQor44Gf44GL44Gv44GXLOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgZvjgYTjgYTjgaENCivjgZ/jgYvjga/jgZcs44KI44GX44Gy44GVDQor44Gf44GL44Gv44GXLOOBr+OCi+OBleOBoA0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgZMNCivjgZ/jgYvjga/jgZcs44G+44GV44KG44GNDQor44Gf44GL44Gv44GXLOOBsuOBp+OBig0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgZfjgZINCivjgZ/jgYvjga/jgZcs44Gu44KK44Gy44GTDQor44Gf44GL44Gv44GXLOOBqOOCiOOBvw0KK+OBn+OBi+OBr+OBlyzjgb/jga7jgosNCivjgZ/jgYvjgYTjgZcs44Go44KC44GC44GNDQor44GT44Gw44KE44GXLOOBi+OBmuOBsuOCjQ0KK+OBn+OBi+OBvyzjgb/jga7jgosNCivjgZ/jgYvjgoDjgoks44GX44KN44GGDQor44Gf44GL44Gq44GXLOOCiOOBl+OBruOCig0KK+OBr+OBm+OBjOOCjyzjgbLjgo3jgobjgY0NCivjgZ/jgYvjga4s44GN44KH44GG44GTDQor44Gf44GL44GK44GLLOOBn+OBi+OBjQ0KK+OBn+OBi+OBiuOBiyzjga7jgbbjgobjgY0NCivjgZ/jgYvjgZ/jgass44GC44GN44KJDQor44Gf44GL44Gk44GYLOOBi+OBpOOBmA0KK+OBn+OBi+OBpOOBiyzjgY3jgojjgZcNCivjgZ/jgYvjgaQs44G+44GV44G/DQor44Gf44GL44KE44G+LOOBl+OCk+OBhOOBoQ0KK+OBn+OBi+OChOOBvizjgajjgYrjgosNCivjgZ/jgYvjgoTjgb4s44KE44GZ44GXDQor44Gf44GR44GgLOOBk+OBhuOBhOOBoQ0KK+OBn+OBkeOBoCzjgoTjgZnjga7jgooNCivjgZ/jgZHjgaAs44Gf44GL44GL44GaDQor44Gf44GR44GgLOOBquOBiuOBsuOBqA0KK+OBn+OBkeOCguOBqCzjga7jgZ7jgb8NCivjgZ/jgZHjgoLjgags44GL44Gk44GXDQor44Gf44GR44GG44GhLOOBn+OBi+OBkw0KK+OBn+OBkeOBhuOBoSzjgbLjgo3jgYvjgZoNCivjgZ/jgZHjgYbjgaEs44KG44GG44GE44GhDQor44Gf44GR44GG44GhLOOBqOOBiuOCiw0KK+OBn+OBjeOCguOBqCzjgZ/jgYvjgbLjgo0NCivjgZ/jgb7jgaEs44Gy44KN44GXDQor44Gf44KA44KJLOOBqOOBl+OBsuOCjQ0KK+OBn+OBquOBuSzjgaTjgYvjgZUNCivjgZ/jgarjgYss44GR44GE44GTDQor44Gf44Gq44GLLOOBquOBjuOBlQ0KK+OBn+OBquOBiyzjgZ/jgYvjgobjgY0NCivjgZ/jgarjgYss44G+44GNDQor44Gf44Gq44GLLOOBsuOCjeOBteOBvw0KK+OBn+OBquOBiyzjgY/jgavjgbLjgZMNCivjgZ/jgarjgYss44GL44GK44KKDQor44Gf44KT44GgLOOBv+OBjeOBkw0KK+OBn+OBq+OBoCzjgY3jgb/jgbsNCivjgZ/jgavjgYzjgo8s44KI44GX44Gf44GLDQor44Gf44Gr44KA44KJLOOCiOOBl+OBquOCig0KK+OBn+OBqyzjgbLjgo3jgbbjgb8NCivjgZ/jgZfjgo0s44KG44GN44GKDQor44Gy44KJ44GV44GLLOOBruOBtuOChuOBjQ0KK+OBn+OCj+OBoCzjgYjjgYTjgYjjgaQNCivjgZ/jgo/jgoks44GX44KT44GYDQor44Gm44KJ44GgLOOBqOOCiOOBsuOBlQ0KK+OBpuOCieOBleOBjSzjgbLjgo3jgobjgY0NCivjgabjgonjgZfjgb4s44Gy44Gn44GTDQor44GT44Gw44KE44GXLOOBn+OBhOOBnuOBhg0KK+OBpuOCieOBhuOBoSzjgoTjgZnjgb/jgaQNCivjgo/jgZ/jgarjgbks44GX44KT44GE44GhDQor44Go44GN44Go44KCLOOBvuOBleOBruOCig0KK+OBqOOBj+OBoCzjgZ/jgYvjgobjgY0NCivjgZXjgY/jgonjgY4s44Gu44KK44Gy44GVDQor44Go44G/44KC44GoLOOBvuOBleOBsuOBkw0KK+OBqOOBv+OBnyzjgbLjgafjgYoNCivjgajjgoLjgb8s44Gy44KN44G/44GkDQor44Go44KT44GQ44GGLOOBvuOBleOBlw0KK+OBqOOCiuOBhuOBvyzjgbLjgo3jgZnjgZENCivjgajjgojjgaAs44GL44Gk44Gy44GVDQor44Go44KI44GV44GoLOOBsuOCjeOBlw0KK+OBqOOCiOOBl+OBvizjgabjgaTjgoQNCivjgaTjgaHjgaAs44GY44KF44KTDQor44Gk44Gh44KC44GoLOOBvuOBk+OBqA0KK+OBpOOBoeOChCzjgoHjgZDjgb8NCivjgaTjgaAs44Gf44Gk44KN44GGDQor44Gk44GgLOOChuOBiw0KK+OBpOOBmOOCguOBqCzjgobjgY3jgYoNCivjgaTjgZgs44Gu44KK44GKDQor44Gk44GYLOOBsuOCjeOBlw0KK+OBpOOBi+OBlOOBlyzjgajjgZfjgYvjgZoNCivjgaTjgYvjgoLjgags44GR44GE44GYDQor44Gk44GN44Gg44GmLOOBsuOCjeOBlw0KK+OCguOCiuOBnyzjgZPjgYbjgZ7jgYYNCivjgaTjgovjgZ8s44GX44Gu44G2DQor44Gk44GX44G+LOOBqOOCguOBguOBjQ0KK+OBpOOBlyzjgajjgZfjgbLjgZMNCivjgaTjgaTjgb8s44GZ44G/44GoDQor44Gk44KE44G+LOOChOOBmeOBjQ0KK+OBhuOBoeOBoCzjgobjgY3jgYoNCivjgYbjgaHjgaAs44KI44GG44GTDQor44GG44Gh44KE44G+LOOBn+OBkeOBlw0KK+OBhuOBoCzjgobjgYvjgooNCivjgYbjgYjjgaAs44GV44GK44KKDQor44GG44GI44GgLOOBsuOCjeOBlw0KK+OBpOOBi+OCguOBqCzjgaHjgYjjgb8NCivjgYbjgYjjgaAs44Gy44Gn44GKDQor44GN44GN44KH44GGLOOCiOOBl+OBn+OBiw0KK+OBhuOBiOOBoCzjgYTjgY/jgYgNCivjgYbjgYjjgZDjgoos44Go44GK44KLDQor44GG44GI44Gv44KJLOOBsuOCjeOChuOBjQ0KK+OBhuOBiOOBvuOBpCzjgYvjgaTjgoQNCivjgZXjgajjgYYs44GL44Ga44Gy44GTDQor44GG44GI44GuLOOBsuOBp+OBn+OBiw0KK+OBhuOBiOOBrizjgojjgZfjgZMNCivjgYbjgYjjga4s44Gy44KN44KG44GNDQor44GG44GI44GuLOOBl+OBkuOBjQ0KK+OBhuOBiOOBrizjgbLjgafjgY0NCivjgYbjgYjjgoTjgb4s44Gy44KN44Gu44KKDQor44GG44KB44GgLOOBi+OBquOBhg0KK+OBhuOCgeOBi+OCjyzjgYvjgogNCivjgarjgYzjgZ8s44Gu44KK44GTDQor44GG44KJ44GULOOBqOOCiOOBsuOCjQ0KK+OBhuOCi+OBl+OBluOBiyzjgobjgY3jgYoNCivjgZ/jgYvjga/jgZcs44GX44KH44GG44GE44GhDQor44GG44Gk44Gu44G/44KELOOBl+OCk+OBuuOBhA0KK+OCj+OBoCzjgYvjgZrjgbLjgo0NCivjgo/jgaAs44G/44GN44GIDQor44KP44GgLOOBl+OBmuOBig0KK+OCj+OBi+OBsOOChOOBlyzjgobjgb/jgZMNCivjgo/jgYvjgbDjgoTjgZcs44GL44Ga44Gy44GTDQor44KP44GL44G+44GkLOOBi+OBmuOBjQ0KK+OCj+OBi+OBvuOBpCzjgZPjgYbjgZgNCivjgo/jgY3jgoLjgags44Gq44KK44GoDQor44KP44GP44GELOOBl+OCheOBhuOBmA0KK+OBhOOBqOOBhCzjgojjgZfjgbLjgZUNCivjgo/jgZ/jgbks44GL44Gk44KEDQor44KP44Gf44G5LOOBquOBiuOBn+OBiw0KK+OCj+OBn+OBquOBuSzjgZfjgoXjgpPjgYTjgaENCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44KP44Gf44Gq44G5LOOBn+OBoOOBlw0KK+OCj+OBn+OBquOBuSzjgYjjgYTjgYTjgaENCivjgo/jgZ/jgarjgbks44Gy44Gn44Go44GXDQor44KP44Gf44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgobjgY0NCivjgo/jgZ/jgazjgY0s44G+44GV44KLDQor44KE44G244GX44GfLOOBv+OBqeOCig0KK+OChOOBtuOBnyzjgb/jgaTjgojjgZcNCivjgoTjgbbjgYbjgaEs44GX44KH44GG44G444GEDQor44KE44GY44G+LOOCiOOBhuOBkw0KK+OChOOBj+OBl+OBmCzjgbXjgb/jgbLjgo0NCivjgoTjgb7jgaAs44KG44GN44GTDQor44KE44G+44GgLOOBsuOCjeOBiA0KK+OChOOBvuOBoCzjgbLjgZUNCivjgoTjgb7jgaAs44GC44GN44Gu44G2DQor44KE44G+44GgLOOBguOBjeOBig0KK+OChOOBvuOBoCzjgYjjgYTjgZnjgZENCivjgoTjgb7jgYzjgb8s44Gy44KN44G144G/DQor44KE44G+44GQ44GhLOOBmOOCjeOBhg0KK+OChOOBvuOBkOOBoSzjgZPjgYbjgZgNCivjgoTjgb7jgYvjgo8s44GX44KTDQor44KE44G+44GT44GXLOOBn+OBi+OBlw0KK+OChOOBvuOCguOBqCzjgYLjgY3jgbLjgo0NCivjgoTjgb7jgoLjgags44GR44GEDQor44KE44G+44KC44GoLOOBvuOBleOBv+OBoQ0KK+OChOOBvuOCguOBqCzjgbLjgo3jgobjgY0NCivjgoTjgb7jgoLjgags44GI44GE44GYDQor44KE44G+44KC44GoLOOBsuOCjeOBteOBvw0KK+OChOOBvuOCguOBqCzjgb7jgZXjga7jgooNCivjgoTjgb7jgoLjgags44G+44GV44Go44GXDQor44GL44KP44GQ44GhLOOBguOBjeOCiQ0KK+OChOOBvuOCgOOCjSzjgbLjgo3jgb/jgaENCivjgYTjgo/jgZ8s44Gf44GR44GXDQor44KE44G+44GK44GLLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOBleOBjSzjgbLjgafjgY/jgasNCivjgoTjgb7jgZfjgZ8s44Gy44KN44GXDQor44KE44G+44GX44GfLOOBpOOBqOOCgA0KK+OChOOBvuOBl+OBnyzjgajjgZfjgYLjgY0NCivjgoTjgb7jgZfjgZ8s44GC44GN44GTDQor44KE44G+44GX44GfLOOBsuOCjeOChuOBjQ0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgbLjgacNCivjgoTjgb7jgZfjgZ8s44GL44Gk44KG44GNDQor44KE44G+44GX44GfLOOBguOBjeOCiQ0KK+OChOOBvuOBluOBjSzjgbLjgo3jgobjgY0NCivjgoTjgb7jgZbjgY0s44GL44GK44KLDQor44KE44G+44GW44GNLOOBk+OBhuOBmA0KK+OChOOBquOBjOOCjyzjgb7jgZXjgbLjgo0NCivjgZ/jgYvjgYrjgYss44Gy44GL44KLDQor44KE44Gq44GbLOOCiuOCh+OBhuOBhOOBoQ0KK+OChOOBrizjgajjgoLjgobjgY0NCivjgoTjgYos44GI44KK44GTDQor44KE44GZ44GgLOOBqOOBl+OBteOBvw0KK+OChOOBmeOBi+OCjyzjgbLjgajjgb8NCivjgojjgYzjgYQs44GT44GG44GE44GhDQor44KI44GT44GM44KPLOOBm+OBhOOBmA0KK+OCiOOBk+OBleOCjyzjgb7jgZXjgobjgY0NCivjgojjgZPjgZ8s44G/44Gq44GTDQor44KI44GT44GfLOOChOOBmeOBlw0KK+OCiOOBk+OBhuOBoSzjgaTjgajjgoANCivjgarjgYvjgoTjgb4s44GC44Gk44GXDQor44KI44GT44KE44G+LOOBr+OCi+OBsuOBkw0KK+OCiOOBk+OChOOBvizjgb7jgZXjgYoNCivjgojjga3jga/jgoks44Go44GX44KG44GNDQor44KI44Gt44KA44KJLOOBn+OBoOOBlw0KK+OCiOOBl+OBoCzjgb7jgZXjgajjgZcNCivjgb/jgoTjgoDjgoks44Gk44Go44KADQor44KI44GX44GgLOOBjeOBv+OBguOBjQ0KK+OCiOOBl+OBoCzjgb7jgZXjgYvjgaQNCivjgarjgYss44KI44GX44Gy44KNDQor44KI44GX44KA44KJLOOCiOOBhuOBhOOBoQ0KK+OCiOOBl+OCgOOCiSzjgbLjgo3jgb8NCivjgazjgb7jgYos44G/44Gt44GKDQor44KI44GX44GW44GNLOOBiOOBhOOBmA0KK+OBquOBi+OCgOOCiSzjgZHjgpPjgZgNCivjgobjgYLjgZUs44KK44KH44GG44GfDQor44KG44GSLOOBn+OBi+OBsuOCjQ0KK+OChuOBi+OCjyzjgojjgZfjgZ/jgYsNCivjgb7jgaTjgaAs44KI44GX44Gk44GQDQor44GC44G5LOOChOOBmeOBsuOCjQ0KK+OBr+OBm+OBjOOCjyzjgYvjgaTjgb7jgZUNCivjga/jgZfjgoLjgags44Gy44Go44GXDQor44Gy44KJ44Gk44GLLOOBn+OCguOBpA0KK+OBu+OBl+OBi+OCjyzjgb/jga7jgosNCivjgbvjgZ3jgoQs44GX44KH44GG44GYDQor44GE44GX44Gv44KJLOOBn+OBi+OBlw0KK+OBhOOCj+OBjSzjgZ/jgaHjga/jgosNCivjgYvjga3jgaAs44GT44GG44GYDQor44GN44KA44KJLOOBn+OBkeOBlw0KK+OBk+OCk+OBrizjgb7jgZPjgagNCivjgb7jgaTjgaAs44KI44GX44Gy44GVDQor44G/44KE44GX44GfLOOBl+OBkuOBqOOCgg0KK+OBleOBi+OCguOBqCzjgb7jgooNCivjga7jgoDjgoks44GX44KT44GE44GhDQor44GK44GK44Gw44KE44GXLOOBiOOBpOOBkw0KK+OBleOBhOOBqOOBhizjgobjgY3jgYgNCivjgZXjgZXjgYzjgo8s44KG44GG44GTDQor44GV44Go44GGLOOChOOCiOOBhA0KK+OBl+OBjCzjgb7jgZXjgb/jgaQNCivjgZfjga7jga/jgoks44G+44GV44GXDQor44GX44KH44GGLOOCgeOBkOOBvw0KK+OBn+OBkeOBjOOCjyzjgb/jgYjjgZMNCivjgZ/jgaTjgb8s44KG44Gf44GLDQor44Go44G/44GILOOBruOCiuOBsuOBkw0KK+OCj+OBn+OBquOBuSzjgb7jgoLjgosNCivjgoTjgb7jgaAs44KG44GG44GE44GhDQor44KE44G+44GgLOOBqOOBv+OBsuOCjQ0KK+OChOOBvuOCguOBqCzjgZ/jgZHjgZcNCivjgoTjgb7jgZbjgY0s44G+44GV44GKDQor44GT44G+44Gk44GW44GNLOOBoeOBguOBjQ0KK+OBteOBoeOBoCzjgb7jgZXjgbLjgZMNCivjgZ/jgarjgYss44GL44Ga44KG44GNDQor44Gv44KE44GXLOOBleOBu+OCig0KK+OBquOBjOOBnyzjgZvjgYTjgYTjgaENCivjgbDjgbAs44G+44GT44GoDQor44GC44GL44G+LOOBn+OBi+OBlw0KK+OBi+OBluOBvizjgYvjgZrjgZfjgZINCivjgoLjgoos44Gy44KN44GC44GNDQor44GE44GR44GgLOOBpOOCiOOBlw0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgagNCivjgb/jgb4s44G144G/44GKDQor44GC44KT44Gp44GGLOOBqOOCguOBsuOCjQ0KK+OBvuOBiOOBnuOBrizjgb/jgaTjgbLjgo0NCivjgYrjgZ/jgYss44GT44GG44GE44GhDQor44Gv44KE44GXLOOBvuOBleOBsuOCjQ0KK+OBhuOBiOOBrizjgYvjgZrjgZ/jgYsNCivjgaTjga7jgaAs44GR44GE44GE44GhDQor44GZ44Gp44GGLOOBn+OBi+OBqOOBlw0KK+OBleOBi+OCguOBqCzjgb/jgaTjgYLjgY0NCivjgZ/jgarjgYss44KC44KK44GX44GSDQor44GT44Go44GG44GgLOOChuOBjeOBruOCig0KK+OBi+OCi+OBuSzjgbXjgb/jgbLjgo0NCivjgZXjgYTjgajjgYYs44Gm44KL44KI44GXDQor44Gy44KJ44GuLOOBsuOCjeOBkw0KK+OBleOBqOOBhizjgbLjgo3jgb7jgZUNCivjgarjgYvjgoTjgb4s44GR44KT44GE44GhDQor44Gu44GgLOOChuOCiuOBkw0KK+OBvizjgoTjgZnjgbLjgo0NCivjgZfjgarjgYzjgo8s44Gh44GL44KJDQor44Gq44GM44KE44GZLOOBk+OBhuOBmA0KK+OBguOBiuOBjSzjgZPjgYbjgZgNCivjgarjgYvjgZ8s44Gv44KE44GoDQor44G/44GP44KK44KELOOBpuOCi+OChuOBjQ0KK+OBvuOCi+OChOOBvizjgbLjgafjgajjgZcNCivjgYjjgaHjgZzjgpMs44Gy44GV44GXDQor44Gq44GL44Gr44GXLOOBl+OCh+OBhuOBhOOBoQ0KK+OBr+OBjuOBiizjgajjgoLjgbLjgZMNCivjgZ/jgoDjgoks44G+44GV44GC44GNDQor44Gf44GQ44GhLOOCiOOBl+OBqOOBlw0KK+OBiuOBluOCjyzjgYrjgZXjgoANCivjgoTjgYrjgYTjgZ8s44Go44GX44Gy44KNDQor44GC44GV44GuLOOBruOCiuOChOOBmQ0KK+OBj+OBleOBrizjgabjgovjgbLjgo0NCivjga/jgb7jgaAs44G+44GV44GYDQor44GE44KK44KE44G+LOOBr+OBquOBkw0KK+OCgOOCieOBnyzjgarjgYrjgoQNCivjgYLjgZXjga4s44KI44GG44GYDQor44Gf44GL44GuLOOBkeOCk+OBhOOBoQ0KK+OChOOBvuOBkOOBoSzjgYLjgY3jgajjgZcNCivjgoDjgonjgYvjgb8s44Gu44KK44Gy44KNDQor44Gf44Gq44GLLOOBi+OBpOOBmA0KK+OBn+OBi+OBiuOBiyzjgZjjgoXjgpPjgYTjgaENCivjgZnjgZrjgY0s44G/44GV44G7DQor44G/44Gt44GO44GXLOOBquOBiuOChA0KK+OBguOBuSzjga7jgorjgYLjgY0NCivjgYLjgbks44G/44Ga44G7DQor44GC44G5LOOBl+OCheOCk+OBmA0KK+OBguOBuSzjgbLjgafjgY0NCivjgYLjgYzjgaTjgb4s44GC44GN44KJDQor44GC44GE44GW44KPLOOBn+OBi+OBlw0KK+OBguOBi+OBhOOBkSzjgZjjgoXjgpPjgZMNCivjgYLjgY3jgoLjgags44KI44GX44Gu44G2DQor44GC44GN44Gf44KELOOChuOBjeOBig0KK+OBguOBjeOChOOBvizjgajjgZfjgobjgY0NCivjgYLjgY/jgaQs44GX44GS44GNDQor44GC44G+44GuLOOBn+OBoOOBi+OBpA0KK+OBguOBvuOBrizjgYLjgaTjga7jgooNCivjgYLjgb7jga4s44G144G/44GIDQor44GC44KB44G/44KELOOBi+OBmuOBvw0KK+OBguOCk+OBqeOBhizjgb7jgZXjgbLjgo0NCivjgYLjgpPjganjgYYs44Gm44KT44Gb44GEDQor44GC44KT44GW44GELOOChuOBhuOBmA0KK+OBguOBiuOBjSzjgorjgaTjgZMNCivjgYLjgYrjgY0s44Gf44GL44KG44GNDQor44GC44GK44GNLOOBleOBoOOBr+OCiw0KK+OBguOCieOBhCzjga/jgovjgbLjgagNCivjgYLjgonjgY0s44KI44GG44GE44GhDQor44GC44KJ44GNLOOBl+OBkuOBv+OBpA0KK+OBguOCieOChCzjgojjgZfjgZ/jgYsNCivjgYLjgorjgojjgZcs44Go44KC44Gu44G2DQor44GC44GV44Gy44GqLOOCiOOBhuOBhOOBoQ0KK+OBguOBleOBhCzjgarjgorjgagNCivjgYLjgZXjgb8s44Gy44KN44KG44GNDQor44GC44GV44Gk44GRLOOBi+OBmuOChuOBjQ0KK+OBguOBnSzjgY/jgavjgYvjgZoNCivjgYLjgZrjgb4s44G+44GT44GoDQor44GC44Ga44G+LOOBleOBqOOBkw0KK+OBsOOBsCzjgZnjgb/jgZMNCivjgbDjgbAs44Go44KC44GTDQor44GL44GMLOOCiOOBl+OBjQ0KK+OBsOOBsCzjgobjgYbjgZnjgZENCivjgbDjgpMs44KG44GLDQor44Gz44KL44GL44KPLOOCjOOBhOOBkw0KK+OBvOOBhizjgbXjgY/jgYoNCivjgaDjgYTjgZQs44GX44KF44KT44GZ44GRDQor44Gg44GE44GU44GPLOOBmOOCheOCk+OBhOOBoQ0KK+OBqeOBsOOBlyzjgajjgYrjgosNCivjgYjjgbPjgZXjgo8s44Gy44KN44GXDQor44GI44Gv44KJLOOBsuOCjeOBqOOBlw0KK+OBteOBoeOBjOOBvyzjgorjgoXjgYbjgZ/jgo3jgYYNCivjgbXjgZjjgbDjgoTjgZcs44Gy44KN44GXDQor44G144GY44GI44GgLOOCiuOCh+OBhuOBhOOBoQ0KK+OBteOBmOOBhCzjgZvjgYTjgZQNCivjgbXjgZjjgYQs44GX44KT44GYDQor44G144GY44GELOOCiOOBl+OBruOCig0KK+OBteOBmOOBhCzjgb7jgZXjgoQNCivjgbXjgZjjgYQs44Gy44Gn44GC44GNDQor44GV44GL44KC44GoLOOBl+OCheOBhuOBuOOBhA0KK+OBjeOBn+OBoCzjgYjjgYTjgYTjgaENCivjgbXjgZjjgYQs44GL44GK44KLDQor44G144GY44GELOOBl+OCk+OBhOOBoQ0KK+OBteOBmOOBhCzjgZ/jgaTjgoQNCivjgbXjgZjjgYvjgo8s44GL44Ga44Gy44GTDQor44G144GY44KC44KKLOOBjeOCh+OBhuOBkw0KK+OBteOBmOOCguOBqCzjgbLjgo3jgZcNCivjgbXjgZjjga4s44Gb44GE44GYDQor44G144GY44GV44KPLOOBsuOCjeOBn+OBiw0KK+OBteOBmOOBnyzjgajjgZfjgoQNCivjgbXjgZjjgZ8s44Gy44KN44GXDQor44G144GY44GfLOOBkeOBhOOBmA0KK+OBj+OBmeOCguOBqCzjgbLjgo3jgbXjgb8NCivjgbXjgZjjgo/jgoks44Gy44KN44GXDQor44G144GY44KP44KJLOOBkeOBhA0KK+OBteOBmOOCj+OCiSzjgb7jgZPjgagNCivjgbXjgZjjgo/jgoks44Gy44KN44KADQor44G144GY44KP44KJLOOBqOOBl+OBjQ0KK+OBteOBi+OBvOOCiizjgbLjgafjgYoNCivjgbXjgYvjgb8s44GV44Gq44GIDQor44G144GL44G/LOOBsuOBleOBkw0KK+OBteOBj+OBoCzjgobjgYbjgZMNCivjgbXjgY/jgaAs44GV44Go44G/DQor44G144GP44GgLOOBmOOCheOCkw0KK+OBteOBj+OBoCzjgobjgYsNCivjgbXjgY/jgYQs44Gu44KK44Gh44GLDQor44G144GP44GELOOBqOOCguOBmA0KK+OBteOBj+OBquOBjCzjgZHjgpPjgZgNCivjgbXjgY/jgarjgYws44G+44GV44KE44GZDQor44G144GP44GK44GLLOOBv+OBruOCiw0KK+OBteOBj+OBiuOBiyzjgYTjgZXjgYoNCivjgbXjgY/jgZcs44KE44GZ44Gu44KKDQor44G144GP44GX44G+LOOBqOOBl+OChuOBjQ0KK+OBteOBj+OBqOOCgSzjgZvjgYTjgZgNCivjgbXjgY/jgoTjgb4s44GL44Gk44Gy44GoDQor44G144Gq44Gw44GXLOOBqOOBiuOCiw0KK+OBteOCi+OBrizjgYLjgY3jgokNCivjgbXjgovjgoQs44Go44GX44KG44GNDQor44G144KL44KELOOBsuOCjeOChuOBjQ0KK+OBteOCi+OChOOBvizjgb/jga7jgosNCivjgbXjgZ/jgbAs44KG44G/44GTDQor44GC44Gq44G/LOOBsuOBleOBruOCig0KK+OBteOBn+OBvyzjgbXjgZjjgYoNCivjgbXjgZ/jgoDjgoks44Go44KC44GTDQor44GM44GpLOOBsuOBleOBlw0KK+OBlOOBhizjgorjgofjgYbjgZMNCivjgZTjgYbjgaAs44GX44KTDQor44GU44GLLOOBn+OBpOOChA0KK+OBlOOBqOOBhizjgajjgZfjgZ/jgYsNCivjgZTjgajjgYYs44GX44Gu44G2DQor44Gv44G2LOOBl+OCh+OBhuOBmA0KK+OBr+OBjCzjgYLjgaTjgZcNCivjga/jgY4s44GR44KT44GYDQor44Gv44G+LOOBn+OBoOOBsuOCjQ0KK+OBr+OBvuOBoCzjgb7jgZXjgosNCivjga/jgb7jga4s44GK44GV44KADQor44Gv44G+44GuLOOBn+OBpOOChA0KK+OBr+OBvuOBl+OBvizjgobjgb8NCivjga/jgb7jgZfjgb4s44GV44Gg44G/44GkDQor44Gv44Gq44GELOOBpuOBpOOBig0KK+OBr+OCiSzjgZ/jgaTjgY0NCivjgYrjgZ8s44GT44GG44GE44GhDQor44Gv44KJ44GgLOOBquOBiuOBjQ0KK+OBr+OCieOBkyzjgZ/jgaTjgbLjgo0NCivjga/jgZss44KG44Gf44GLDQor44Gv44Gb44GM44KPLOOBsuOCjeOBlw0KK+OBr+OBm+OBjOOCjyzjgZfjgofjgYbjgZgNCivjga/jgZfjgoLjgags44GV44Go44GXDQor44Gv44GX44KC44GoLOOBm+OBpOOBig0KK+OBr+OBl+OCguOBqCzjgYLjgZHjgb8NCivjga/jgZfjgZrjgoEs44G+44GV44GNDQor44Gv44GX44Ga44KBLOOBquOBiuOBjQ0KK+OBr+OBnyzjgZfjgpPjgYTjgaENCivjga/jgZ8s44KI44GX44Gy44GTDQor44Gv44GfLOOBn+OBkeOBsuOBkw0KK+OBr+OBn+OBrizjgY3jgofjgYbjgZMNCivjga/jgZ/jga4s44KE44GZ44KG44GNDQor44Gv44Gf44GuLOOCiOOBl+OBsuOCjQ0KK+OBpOOBoCzjgbLjgo3jgZMNCivjga/jgoTjgYvjgo8s44KI44GX44Gu44KKDQor44Gv44KE44GuLOOBi+OBquOBkw0KK+OBr+OChOOBlyzjgZXjgYrjgooNCivjga/jgoTjgZcs44GZ44GZ44KADQor44Gv44KE44GXLOOBruOBtuOChuOBjQ0KK+OBr+OChOOBlyzjgbLjgo3jgobjgY0NCivjga/jgoTjgZcs44Go44GX44KN44GGDQor44Gv44KE44GX44Gf44GrLOOBguOBjeOCiQ0KK+OBsuOBjOOBl+OBrizjgY3jgb/jgZ/jgZENCivjgbLjgZDjgaEs44GL44Ga44Gy44GTDQor44Gy44GQ44GhLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBsuOCgeOBrizjgoTjgZnjgZcNCivjgbLjgonjgbDjgoTjgZcs44KG44GG44GTDQor44Gy44KJ44GELOOChuOBhuOBhOOBoQ0KK+OBsuOCieOBi+OCjyzjgbLjgo3jgZcNCivjgbLjgonjgY0s44Gy44KN44GXDQor44Gy44KJ44GuLOOBm+OBhOOCiuOCh+OBhg0KK+OBguOBiuOBjSzjgb/jgaHjgZMNCivjgbLjgonjgYrjgYss44G+44GV44KEDQor44Gy44KJ44GV44GLLOOBsuOCjeOChuOBjQ0KK+OBsuOCieOChOOBvizjgojjgZfjga7jgooNCivjgbLjgo3jga/jgZ8s44KG44GG44GE44Gh44KNDQor44G+44GI44GL44KPLOOChOOBmeOBsuOCjQ0KK+OBsuOCjeOBmyzjgb7jgarjgbYNCivjgbLjgo3jgZss44Gy44KN44KI44GXDQor44Gy44KN44GfLOOBvuOBleOBruOBtg0KK+OBsuOCjeOCj+OBn+OCiizjgZ/jgYvjgbLjgo0NCivjgbLjgo3jgb/jgaQs44Gy44KN44GXDQor44Gy44GG44KJLOOBvuOCguOCiw0KK+OBu+OBvCzjgZ/jgYTjgZnjgZENCivjgbvjgY/jgoks44G+44GT44GoDQor44G744KT44GgLOOBhOOBleOBig0KK+OBu+OCk+OBoCzjgojjgYbjgZMNCivjgZnjgZrjgY0s44Gy44Gn44GNDQor44G744KT44GU44GGLOOBi+OBmuOBn+OBiw0KK+OBu+OCiuOBkOOBoSzjgY3jgYTjgaHjgo3jgYYNCivjgbvjgorjgYQs44GN44Gr44GhDQor44G744KK44GL44KPLOOBpuOCi+OBig0KK+OBu+OBl+OBrizjgoTjgZnjgbLjgo0NCivjgbvjgZ3jgYvjgo8s44Gy44Gn44KG44GNDQor44G744Gd44G/LOOBsuOCjeOBguOBjQ0KK+OBu+OBo+OBnyzjgYvjgZrjgYLjgY0NCivjgYTjgbbjgYss44Gu44G244G/44GhDQor44GE44G244GNLOOBsuOBp+OChuOBjQ0KK+OBhOOBoeOBi+OCjyzjgbLjgo3jgZcNCivjgYTjgaHjgoDjgoks44GN44G/44GIDQor44GE44GgLOOBi+OBquOCgQ0KK+OBhOOBoCzjgaHjga/jgosNCivjgYTjgacs44KE44GZ44Gy44GnDQor44GE44GnLOOBjeOCiOOBn+OBiw0KK+OBhOOBpyzjgarjgYrjgobjgY0NCivjgYTjgafjgZ8s44Gf44GL44GXDQor44GE44GM44KJ44GXLOOBkeOBhOOBkw0KK+OBhOOBjOOCieOBlyzjgobjgY3jgoQNCivjgYTjgZIs44GV44Gk44GNDQor44GE44GE44GgLOOBl+OCh+OBhuOBnuOBhg0KK+OBhOOBhOOBoCzjgZ/jgYvjgobjgY0NCivjgYTjgYTjgaAs44Gf44G+44G/DQor44GE44GE44GgLOOCiOOBl+OBsuOBlQ0KK+OBhOOBhOOBr+OCiSzjgbLjgo3jgZcNCivjgYTjgYTjgZjjgb4s44Gf44GR44GXDQor44GE44GR44GgLOOBi+OBpOOChA0KK+OBhOOBkeOBoCzjgb7jgZXjgYLjgY0NCivjgYTjgZPjgb4s44Gu44G244G+44GVDQor44GE44G+44GELOOBjeOCiOOBsuOBqA0KK+OBhOOBvuOBhCzjgb7jgZPjgagNCivjgZ/jgarjgYss44GN44KH44GG44GTDQor44GE44G+44KA44KJLOOBk+OBhuOBhOOBoQ0KK+OBhOOBvuOBquOCiizjgZ/jgaTjgoQNCivjgYTjgb7jgZzjgY0s44GY44KF44KT44GYDQor44GE44Gq44GgLOOBvuOChuOBvw0KK+OBhOOBquOBvuOBmSzjgbLjgo3jgZcNCivjgYTjga7jgYbjgYgs44Gy44KN44KG44GNDQor44GE44GnLOOBvuOBleOBsuOCjQ0KK+OBhOOCjOOBhCzjgb7jgZXjgosNCivjgYTjgZfjga/jgoks44G/44Gk44G/DQor44GE44GX44Gv44KJLOOBv+OChuOBjQ0KK+OBhOOBl+OBr+OCiSzjgarjgYrjgY0NCivjgYTjgZfjga/jgoks44GZ44GZ44KADQor44GE44GX44Gv44KJLOOBmOOCheOCk+OBhOOBoQ0KK+OBhOOBl+OBhCzjgZ/jgYvjgobjgY0NCivjgYTjgZfjgYQs44Go44KC44KG44GNDQor44GE44GX44GL44KPLOOChuOBhuOBmA0KK+OBhOOBl+OBi+OCjyzjgarjgYrjgbXjgb8NCivjgYTjgZfjgoDjgoks44Gy44KN44KG44GNDQor44GE44GX44KP44Gf44KKLOOBvuOBmeOBvw0KK+OBhOOBl+OBluOBjSzjga7jgorjgojjgZcNCivjgYTjgZfjgZrjgYss44Gq44GK44Go44GPDQor44GE44Gd44GuLOOBv+OBpOOBqOOBlw0KK+OBhOOBneOChOOBvizjgb/jgaTjga7jgbYNCivjgYTjgZnjgaAs44GX44GS44GKDQor44GE44Gf44GP44KJLOOBvuOBleOBsuOCjQ0KK+OBhOOBqOOBhizjgb7jgZXjgbLjgo0NCivjgYTjgajjgYYs44Gy44KN44G144G/DQor44GE44Go44GGLOOCiOOBl+OBvuOBlQ0KK+OBhOOBqOOBhizjga/jgovjgYoNCivjgb7jgaTjgYQs44Gf44GR44Gy44GTDQor44GE44Go44GGLOOBn+OBkeOBsuOBkw0KK+OBhOOBqOOBhizjgb7jgZXjgaHjgYsNCivjgYTjgajjgYYs44G+44GV44Gy44GTDQor44GE44KP44GL44G/LOOBpOOBqOOCgA0KK+OBhOOCj+OBlSzjgajjgZfjgb8NCivjgYTjgo/jgZXjgY0s44KG44GG44GYDQor44GE44KP44GV44GNLOOBquOBiuOChuOBjQ0KK+OBhOOCj+OBl+OBnyzjgb/jgaHjgZ/jgYsNCivjgYTjgZrjgb8s44Go44GK44KLDQor44GE44Go44GGLOOBguOBpOOBlw0KK+OBhOOBmuOBvyzjgajjgbjjgYQNCivjgYTjgZrjgb/jgZXjgo8s44Gb44GE44GYDQor44GY44KT44GuLOOChOOBmeOBlw0KK+OBv+OBqSzjgorjgoXjgYbjgZgNCivjgYvjgYws44GC44GR44G/DQor44GL44GM44G/LOOBteOBleOBig0KK+OBi+OBkuOChOOBvizjgbLjgZXjgarjgYwNCivjgYvjgYQs44Gy44Go44GXDQor44GL44GE44GgLOOBk+OBhuOBmA0KK+OBi+OBhOOBmizjgZ/jgZHjgbLjgagNCivjgYvjgZjjgZ8s44GYDQor44GL44GR44GyLOOBguOBkeOBvw0KK+OBi+OBjeOCguOBqCzjgajjgoLjgbLjgo0NCivjgYvjgY3jgazjgb4s44GV44Gh44GTDQor44GL44GN44Gs44G+LOOBl+OBmuOBiw0KK+OBi+OBvuOBnyzjgajjgZfjgYgNCivjgYvjgb7jgZ8s44GR44KT44GE44GhDQor44GL44G/44GQ44GhLOOBv+OBiOOBkw0KK+OBi+OBv+OCgOOCiSzjgojjgZfjgYoNCivjgYvjga3jgZMs44G+44GV44Gu44KKDQor44GL44Gq44G+44KLLOOBmA0KK+OBi+OBquOBluOCjyzjgb7jgoLjgosNCivjgYvjgpPjgbks44Gf44GL44Gy44KNDQor44GL44KT44GgLOOBk+OBhuOBnuOBhg0KK+OBi+OBreOBr+OCiSzjgZHjgpMNCivjgZTjgajjgYYs44GX44GS44GL44GaDQor44GL44Gt44GTLOOBn+OBkeOBlw0KK+OBi+OBreOBkyzjgoTjgZnjgarjgYoNCivjgYvjga3jgZMs44GC44GN44KJDQor44GL44Gt44GTLOOBsuOBp+OBqOOBlw0KK+OBi+OBreOBkyzjgbLjgo3jgbXjgb8NCivjgYvjga3jgb/jgaQs44Gy44KN44G/44GkDQor44GL44Gt44KA44KJLOOBi+OBmuOBig0KK+OBi+OBreOBnyzjgZPjgYbjgYTjgaENCivjgZ/jgarjgYss44G+44GV44KI44GXDQor44KI44Gt44KC44GhLOOBquOBiuOBlw0KK+OBi+OCk+OBrizjgoTjgZnjgb7jgZUNCivjgYvjgZXjgYQs44KG44GL44KKDQor44GL44GX44G+LOOBk+OBhuOBmOOCjeOBhg0KK+OBn+OBi+OBjizjgbLjgafjgY0NCivjgY3jgZ/jgoDjgoks44G+44GV44G/DQor44GL44Gf44GK44GLLOOChOOBmeOChuOBjQ0KK+OBi+OBn+OBiuOBiyzjgYvjgZrjgbLjgZMNCivjgYvjgZ/jgYrjgYss44GX44GS44KG44GNDQor44GL44Gf44GbLOOChOOBmeOBquOCig0KK+OBi+OBn+OChOOBvizjgb/jgaHjgZMNCivjgYvjgZ/jgoTjgb4s44Gq44GK44KG44GNDQor44GL44Gf44KE44G+LOOChuOBhuOBkw0KK+OBi+OBn+OChOOBvizjgY3jgofjgYbjgZMNCivjgYvjgajjgYYs44KE44GZ44Gy44KNDQor44GL44Go44GGLOOBsuOCjeOBguOBjQ0KK+OBi+OBqOOBhizjgZfjgpPjgYTjgaENCivjgYvjgajjgYYs44Gk44Go44KADQor44GL44Go44GGLOOBsuOCjeOChuOBjQ0KK+OBi+OBqOOBhizjgajjgZfjgbLjgo0NCivjgYvjgajjgYYs44KI44GX44G/DQor44GL44Go44GGLOOChuOBhuOBmA0KK+OBi+OBqOOBhizjgaTjgajjgoANCivjgZ3jgoHjgoQs44GY44KF44KT44GTDQor44GL44KP44Gw44GfLOOBvuOBk+OBqA0KK+OBi+OCj+OBkOOBoSzjgb7jgZXjgYTjgaENCivjgYvjgo/jgZDjgaEs44GX44KT44KEDQor44Gf44G+44GM44KPLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBi+OCj+OBr+OCiSzjgbLjgZXjgZcNCivjgYvjgo/jga/jgoks44GY44KF44KT44GYDQor44GL44KP44Gy44GoLOOBi+OBpOOBsuOBlQ0KK+OBi+OCj+OBhCzjga7jgorjgbLjgZUNCivjgYvjgo/jgYQs44Gu44KK44GTDQor44Gv44GO44KP44KJLOOBl+OBkuOBjQ0KK+OBquOCi+OBkSzjgZ/jgYvjgZcNCivjgYvjgo/jgZXjgY0s44KI44GX44Gy44KNDQor44GL44KP44GX44G+LOOChuOBi+OCig0KK+OBi+OCj+OBl+OBvizjgobjgY3jgZMNCivjgYvjgo/jgZ8s44KG44Gf44GLDQor44GL44KE44G+LOOBsuOCjeOBi+OBmg0KK+OBi+OBluOBvuOBpOOCiizjgbLjgo3jgZMNCivjgY3jgaks44Gf44GL44G144G/DQor44GN44GM44G/LOOBvuOBquOBtg0KK+OBjeOBlOOBlyzjgbLjgZXjgoQNCivjgoLjgorjgZXjgo8s44GN44KI44GXDQor44GN44GP44GhLOOBv+OBpOOBkA0KK+OBjeOBj+OBoSzjgY3jgYTjgaENCivjgY3jgY/jgaEs44Gu44KK44GKDQor44GN44GP44KJLOOBi+OBpOOBvw0KK+OBjeOCgOOCiSzjgaTjga3jgYoNCivjgY3jgoDjgoks44Gy44KN44GNDQor44GN44KA44KJLOOBguOBkeOBvw0KK+OBjeOCgOOCiSzjgajjgoLjgbLjgZUNCivjgY3jgoDjgoks44GL44Gk44Gu44KKDQor44GN44KA44KJLOOBkeOBhOOBhOOBoQ0KK+OBjeOCgOOCiSzjgb7jgZXjgY0NCivjgY3jgoDjgoks44G+44GV44KG44GNDQor44GN44KA44KJLOOBkeOCk+OBhOOBoQ0KK+OBjeOCgOOCiSzjga7jgorjgZMNCivjgY3jgoDjgoks44GX44KT44GN44GhDQor44GN44Gu44GX44GfLOOBn+OBhOOBkw0KK+OBjeOBruOBl+OBnyzjgajjgZfjgbLjgZMNCivjgY3jga7jgZfjgZ8s44KE44GZ44Gy44KNDQor44GN44GX44G5LOOBsuOCjeOBjQ0KK+OBjeOBl+OBoCzjgojjgZfjga7jgooNCivjgY3jgZfjgoLjgags44Gf44GR44GXDQor44GN44GX44KC44GoLOOBn+OBpOOChA0KK+OBjeOBnyzjgZ/jgYvjgb/jgaENCivjgY3jgZ/jgYLjgY0s44Gy44KN44KG44GNDQor44GN44Gf44GgLOOBsuOCjeOChuOBjQ0KK+OBjeOBn+OBjOOCjyzjgajjgZfjgobjgY0NCivjgY3jgZ/jgbvjgoos44Gy44KN44KG44GNDQor44GN44Gf44GY44G+LOOBn+OBpOOChA0KK+OBjeOBn+OCgOOCiSzjgbLjgo3jgZcNCivjgZPjgbDjgoTjgZcs44GX44GS44KI44GXDQor44GT44Gw44KE44GXLOOBi+OBmuOBsuOCjQ0KK+OBk+OBsOOChOOBlyzjgaHjgbXjgoYNCivjgZPjgbDjgoTjgZcs44KE44GZ44KG44GNDQor44GX44KJ44GELOOBoOOBhOOBmeOBkQ0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgobjgY0NCivjgZPjgbDjgoTjgZcs44GX44KT44GE44GhDQor44GT44Gw44KE44GXLOOBqOOBl+OChA0KK+OBk+OBsOOChOOBlyzjgajjgZfjgY0NCivjgZPjgbDjgoTjgZcs44Gq44GK44G144G/DQor44GT44Gg44G+LOOBsuOCjeOChuOBjQ0KK+OBk+OBjuOBnyzjgZHjgYTjgYTjgaENCivjgZPjgZDjgows44KI44GX44GL44GaDQor44GT44Gv44GXLOOBruOCiuOBl+OBkg0KK+OBk+OBlCzjgZ/jgYvjgbLjgacNCivjgZPjgpPjga4s44KI44GGDQor44GT44KT44GuLOOBjeOCk+OChA0KK+OBk+OCk+OBrizjgoTjgZnjgbLjgo0NCivjgZPjgpPjga7jgZks44Gy44KN44GL44GaDQor44GT44GE44GnLOOBk+OBhuOBmA0KK+OBk+OBvuOBpOOBsOOCiSzjgbLjgafjgajjgZcNCivjgZPjgb/jgoQs44GK44GV44KADQor44GT44G/44KE44G+LOOCiOOBl+OBsuOCjQ0KK+OBk+OCguOBoCzjgZ/jgYvjgZcNCivjgZPjgpPjgaks44GL44Ga44G+44GVDQor44GT44KT44GpLOOBvuOBleOBqA0KK+OBk+OCk+OBqSzjgbLjgajjgZcNCivjgZPjgpPjgaks44GL44Gk44KEDQor44GT44KT44GpLOOBi+OBmuOBqOOBlw0KK+OBk+OBq+OBlyzjgYLjgY3jga7jgooNCivjgZPjgZUs44G+44GV44GoDQor44GT44GZ44GOLOOBkeOCk+OBhOOBoeOCjQ0KK+OBk+OBn+OBjSzjgb7jgZXjgobjgY0NCivjgZPjgZ/jgass44GR44GE44GE44GhDQor44GT44KE44G+LOOBv+OBjQ0KK+OBk+OChOOBvizjgbLjgo3jgb8NCivjgZPjgoTjgb4s44GL44Gk44Gy44GTDQor44GT44GW44KPLOOBvuOBleOBruOCig0KK+OBk+OBmuOCiyzjgojjgZfjgYLjgY0NCivjgY/jgbzjgZ8s44Gy44KN44GXDQor44GP44G844GfLOOBmOOCheOCk+OBkw0KK+OBj+OBvOOChCzjgajjgoLjgZMNCivjgY/jganjgYYs44GY44KF44KTDQor44Gb44Gu44GKLOOBsuOBqOOBlw0KK+OBj+OBvuOBjOOBhCzjgYvjgZrjga7jgooNCivjgY/jgonjganjgb8s44GN44KI44G144G/DQor44GP44KJ44KC44GoLOOBruOCiuOChuOBjQ0KK+OBj+OCieOBqOOBvyzjgZHjgYTjgZnjgZENCivjgY/jgorjga4s44KE44GZ44Gy44KNDQor44GP44KK44KELOOChuOBhuOBhOOBoQ0KK+OBj+OCjeOBoCzjgbLjgo3jgZcNCivjgY/jgo3jgYvjgo8s44G/44Gk44GC44GNDQor44GP44GV44GL44KPLOOBruOBtuOBv+OBpA0KK+OBj+OBleOBrizjgZXjgajjgZcNCivjgY/jgo/jgbDjgoks44Go44GX44Gy44KNDQor44GP44KP44GuLOOChOOBmeOBsuOCjQ0KK+OCiOOBl+OBoCzjgZXjgajjgosNCivjgY/jgZrjga4s44Gy44KN44GL44GaDQor44G+44Gh44GgLOOBsuOCjeOBlw0KK+OBvuOBiOOBoCzjgZHjgpPjgYTjgaENCivjgb7jgYjjgYvjgo8s44G/44Gt44GL44GaDQor44GK44GK44Gf44GrLOOBn+OBoOOBl+OBkg0KK+OBvuOBjSzjgZ/jgY/jgoQNCivjgb7jgY3jga4s44Go44GX44GKDQor44G+44KL44GK44GLLOOChOOBmeOBsuOCjQ0KK+OBvuOCi+OChOOBvizjgZjjgoXjgpPjgZPjgYYNCivjgb7jgovjgoTjgb4s44Gu44KK44Gy44KNDQor44G+44KL44KE44G+LOOBv+OBruOCiw0KK+OBvuOBleOBhCzjgZfjgpPjgZQNCivjgb7jgZXjgY0s44Gy44Gn44KIDQor44G+44GbLOOBn+OBi+OBlw0KK+OBvuOBmeOBoCzjgobjgZ/jgYsNCivjgb7jgajjgbAs44Gf44GL44Go44GXDQor44G+44Go44GwLOOBj+OBq+OBsuOBkw0KK+OBvuOBpOOBsOOCiSzjgZ/jgYvjgYLjgY0NCivjgb7jgaTjgYQs44Gy44GV44GXDQor44G+44Gk44GELOOChOOBmeOBsuOCjQ0KK+OBvuOBpOOBi+OCjyzjgZvjgYTjgYTjgaENCivjgb7jgaTjgoLjgoos44GX44KH44GG44GeDQor44G+44Gk44KC44GoLOOBn+OBi+OBlw0KK+OBvuOBpOOCguOBqCzjgb7jgZXjgojjgZcNCivjgb7jgaTjgoLjgags44GX44GS44KLDQor44G+44Gk44KC44GoLOOBmOOCheOCk+OBkw0KK+OBvuOBpOOCguOBqCzjgZ/jgZHjgZcNCivjgb7jgaTjgoLjgags44Go44GK44KLDQor44G+44Gk44KC44GoLOOBleOBoOOBig0KK+OBvuOBpOOBiizjgYvjgZrjgojjgZcNCivjgb7jgaTjgYrjgYss44Gf44GR44Go44GXDQor44G+44Gk44GX44G+LOOBn+OBi+OBsuOCjQ0KK+OBquOBi+OBq+OCjyzjgajjgZfjgo3jgYYNCivjgb7jgaTjgoTjgb4s44GY44KF44KTDQor44G+44Gk44KE44G+LOOBmOOCheOCk+OBmA0KK+OBvuOBpOOBluOCjyzjgbLjgafjgogNCivjgb/jgoDjgoks44GX44KF44KT44GE44GhDQor44G/44Gr44KF44GGLOOBk+OBhuOBhOOBoQ0KK+OBv+OBnyzjgb7jgarjgbYNCivjgb/jgZ8s44Gy44KN44GL44GaDQor44G/44Gf44KA44KJLOOBmOOCheOCkw0KK+OBv+OBpOOBoCzjgYrjgZXjgoANCivjgb/jgaTjgaAs44GY44KF44KT44GE44GhDQor44G/44Gk44G+44GfLOOCiOOBl+OBruOCig0KK+OBv+OBpOOBiuOBiyzjgYLjgoTjgZMNCivjgb/jgYbjgoks44GN44KH44GG44GTDQor44G/44GG44KJLOOBv+OBqeOCig0KK+OBv+OCj+OBnyzjgarjgYrjgY0NCivjgarjgYzjgZss44Gf44GL44GXDQor44G/44KE44GRLOOBguOBjeOBig0KK+OBv+OChOOBkSzjgobjgYvjgooNCivjgb/jgoTjgb4s44Gb44GE44GYDQor44G/44KE44KC44GoLOOBpuOBpOOBig0KK+OBv+OChOOCguOBqCzjgbLjgajjgb8NCivjgb/jgoTjgarjgYws44G+44GV44GL44GkDQor44G/44KE44GW44GNLOOCguOBqOOBteOBvw0KK+OBv+OBmuOBsCzjgbLjgo3jgZcNCivjgb/jgZrjgazjgb4s44GL44Gk44G/DQor44G/44Ga44GV44GNLOOBv+OCjw0KK+OBv+OBmuOBnyzjga7jgorjgYLjgY0NCivjgoLjgaHjgZrjgY0s44GX44KF44GG44GE44GhDQor44KC44Gh44Ga44GNLOOBguOBpOOBjQ0KK+OCguOBoeOBmuOBjSzjgaHjgYvjgokNCivjgoLjgY4s44Gy44KN44GXDQor44KC44KC44GbLOOBpOOCiOOBlw0KK+OBsuOCieOBrizjgYLjgY3jgbLjgacNCivjgoLjgoos44KG44GG44GNDQor44KC44KKLOOBvuOBleOChuOBjQ0KK+OCguOCiizjgb7jgZXjgobjgY0NCivjgoLjgoos44GX44GS44GKDQor44KC44KK44GL44KPLOOBl+OCk+OBmA0KK+OChOOBjuOBl+OBnyzjgYTjgZXjgYoNCivjgoLjgorjgoLjgags44GT44GG44GE44Gh44KN44GGDQor44KC44KK44KC44GoLOOBk+OBhuOBmA0KK+OBvuOBpOOBoCzjgZHjgpPjgZgNCivjgoLjgorjgYrjgYss44GC44GN44Gy44GTDQor44KC44KK44GX44GfLOOCiuOBiA0KK+OCguOCiuOBnyzjgY/jgavjgbLjgo0NCivjgoLjgorjgZ8s44GN44KI44GI44GEDQor44GL44Gt44GTLOOBi+OBmuOBguOBjQ0KK+OCguOCiuOBnyzjgb7jgZXjgobjgY0NCivjgoLjgorjgo/jgY0s44Gu44G244KG44GNDQor44KC44KN44Gp44G/LOOCiOOBhuOBhOOBoQ0KK+OCguOBqOOBr+OBlyzjgojjgZfjgbLjgacNCivjgoLjgajjgZjjgb4s44Gm44Gk44GKDQor44KC44Go44GNLOOBkeOBhOOBkw0KK+OCguOCiizjgb/jgo8NCivjgYbjgZnjgYQs44GL44GK44KLDQor44KA44KJ44GL44G/LOOBn+OBkeOBig0KK+OCgOOCieOBi+OBvyzjgaDjgYTjgZvjgYQNCivjgoDjgonjgYvjgb8s44Gy44Gn44GXDQor44KA44KJ44GL44G/LOOBsuOBqOOBlw0KK+OCgOOCieOBnyzjgojjgZfjgYoNCivjgoDjgonjgZ8s44GN44KI44Gy44GTDQor44KA44KJ44KE44G+LOOBleOBqOOBlw0KK+OCgOOBqOOBhizjgojjgZfjgbLjgo0NCivjgarjgaDjgZDjgaEs44GZ44G/44GoDQor44Gq44GM44Gv44GXLOOBhOOBleOBig0KK+OBquOBjOOBhCzjgb7jgZXjgbLjgo0NCivjgarjgYzjgoDjgoks44G+44GT44GoDQor44Gq44GM44GKLOOBvuOBleOBvw0KK+OBquOBjOOBl+OBvizjgb/jgaHjga7jgooNCivjgarjgYzjgZfjgb4s44G/44KI44GTDQor44Gq44GM44GfLOOBquOBiuOCig0KK+OBquOBjOOBnyzjga7jgbzjgosNCivjgarjgYzjgaTjgYss44Gu44KK44KG44GNDQor44Gq44GM44KE44G+LOOBleOBquOBiA0KK+OBhuOBoeOBoCzjgZ/jgYvjgbLjgacNCivjgYbjgaHjgZ7jga4s44Gf44GL44GXDQor44Gq44GL44GgLOOBqOOBl+OChA0KK+OBquOBi+OBjOOCjyzjgoTjgZnjgbLjgo0NCivjgarjgYvjgYzjgo8s44KG44GN44Gy44KNDQor44Gq44GL44GM44KPLOOBoeOBr+OCiw0KK+OBquOBi+OBjOOCjyzjgarjgYrjgobjgY0NCivjgarjgYvjgZjjgb4s44GT44GG44GE44Gh44KN44GGDQor44Gq44GL44GY44G+LOOBsuOCjeOBguOBjQ0KK+OBquOBi+OBmOOBvizjgY3jgofjgYbjgZMNCivjgarjgYvjgb/jgaEs44KK44KF44GG44GE44GhDQor44Gq44GL44KC44GoLOOChOOBmeOBqOOCgg0KK+OBquOBi+OCguOBqCzjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44Gq44GL44KA44KJLOOChuOBv+OBkw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgYLjgY3jgoTjgb4s44Gf44GL44GYDQor44Gq44GL44KA44KJLOOBsuOBp+OBqA0KK+OBquOBi+OCgOOCiSzjgaTjgajjgoANCivjgarjgYvjgoDjgoks44Gf44GL44GTDQor44Gq44GL44KA44KJLOOChuOBjeOBkw0KK+OBquOBi+OCgOOCiSzjgojjgZfjgbLjgZMNCivjgarjgYvjgoDjgoks44Gb44GE44GYDQor44Gq44GL44KA44KJLOOChuOBhuOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgb8NCivjgarjgYvjgoDjgoks44GV44Go44GXDQor44Gq44GL44GuLOOBn+OBi+OBlw0KK+OBquOBi+OBrizjgZHjgYTjgZgNCivjgarjgYvjgZfjgb4s44Gu44KK44GKDQor44Gq44GL44Gk44G8LOOBvuOBleOBsuOBkw0KK+OBquOBi+OBpOOBiyzjgabjgaTjgo3jgYYNCivjgarjgYvjgoTjgb4s44G+44GT44GoDQor44Gq44GL44KE44G+LOOBvuOBleOBsuOBkw0KK+OBquOBi+OBluOCjyzjgYrjgZXjgoANCivjgarjgYrjgaTjgYss44GC44GN44GTDQor44Gq44KJ44Gv44KJLOOBleOBqOOBlw0KK+OBquOCi+OBl+OBvizjgb7jgZXjgZMNCivjgarjgajjgoos44Gy44KN44Gf44GLDQor44Gr44GE44GY44G+LOOChuOBiw0KK+OBq+OBhOOChCzjgorjgYsNCivjgavjgZcs44Go44GX44Gy44GVDQor44Gr44GXLOOBvuOBleOBsuOCjQ0KK+OBq+OBl+OBtizjgYLjgoTjgZMNCivjgavjgZfjgaAs44Gf44Gk44KEDQor44Gr44GX44Gv44KJLOOBn+OBi+OBguOBjQ0KK+OBq+OBl+OBi+OCjyzjgb7jgZXjgZMNCivjgZ/jgarjgYss44GE44GV44GKDQor44Gr44GX44GL44KPLOOBvuOBleOBqA0KK+OBq+OBl+OCguOBqCzjgbLjgafjgYLjgY0NCivjgavjgZfjgoLjgags44Gq44GK44GTDQor44Gr44GX44KA44KJLOOBn+OBi+OBlw0KK+OBq+OBl+OCgOOCiSzjgZPjgYbjgZ7jgYYNCivjgavjgZfjga4s44GR44KT44GYDQor44Gr44GX44GuLOOBl+OCk+OChA0KK+OBq+OBl+OBiuOBiyzjgb7jgZXjga7jgbYNCivjgavjgZfjgZbjgY0s44GR44KT44GYDQor44Gr44GX44GW44KPLOOBoOOBhOOBmeOBkQ0KK+OBq+OCjyzjgoLjgorjgojjgZcNCivjga7jgbYs44G/44Gu44KLDQor44Gu44GM44GE44GoLOOBruOBtuOChuOBjQ0KK+OBruOBkOOBoSzjgojjgYbjgZMNCivjga7jgZgs44Gy44KN44KG44GNDQor44Gu44GY44G+LOOBruOCiuOBig0KK+OBruOCgOOCiSzjgYLjgY3jgZMNCivjga7jgoDjgoks44GX44KT44GE44GhDQor44Gu44Gq44GLLOOChuOBjeOBruOCig0KK+OBquOBi+OBmOOBvizjgaHjgbXjgoYNCivjga7jgZbjgY0s44G/44GN44GKDQor44Gu44GW44GNLOOCiOOBl+OChuOBjQ0KK+OBrOOCjyzjgZ/jgZHjgZcNCivjgYrjgaEs44Gf44GL44GXDQor44GK44Gh44GC44GELOOBqOOBl+OChuOBjQ0KK+OBiuOBoCzjgYLjgaTjgZcNCivjgYrjgYzjgZXjgo/jgoks44KI44GX44KG44GNDQor44GK44GM44GV44KP44KJLOOBqOOBv+OBig0KK+OBiuOBjOOBnyzjgYvjgZrjga/jgosNCivjgYrjgYzjgo8s44GR44KT44GE44GhDQor44GK44GO44Gv44KJLOOBsuOCjeOBjQ0KK+OBiuOBiuOBr+OCiSzjgYvjgaTjgb8NCivjgYrjgYrjgbAs44KG44G/44GTDQor44GK44GK44GwLOOBiOOBhOOBmA0KK+OBvuOBpOOBoCzjgZfjgZLjgobjgY0NCivjgYrjgYrjgYgs44KG44GG44GYDQor44GK44GK44GM44GNLOOBi+OBmuOBsuOCjQ0KK+OBl+OCh+OBhuOBmOOBvizjgajjgZfjgbLjgacNCivjgYrjga/jgb4s44Gy44KN44KG44GNDQor44GK44GK44Gv44GXLOOBkeOBhOOBkw0KK+OBiuOBjuOBrizjgZfjgZLjgY0NCivjgYrjgYrjgYvjgo8s44GT44GG44GE44GhDQor44GK44GK44GL44KP44KJLOOBvuOBquOBtg0KK+OBiuOBjSzjgb7jgZXjgbLjgZMNCivjga3jgoLjgags44GY44KF44KTDQor44GK44GK44GP44G8LOOBruOBtuOChuOBjQ0KK+OBiuOBiuOBj+OCiSzjgajjgoLjgbLjgZMNCivjgYrjgb4s44Go44KC44Gy44GVDQor44GK44GK44G/44GLLOOBpuOBpOOBlw0KK+OBiuOBiuOCguOCiizjgbLjgafjgb8NCivjgYrjgYrjgoLjgoos44Gy44KN44GC44GNDQor44KP44Gf44Gq44G5LOOBi+OBmuOBguOBjQ0KK+OBiuOBiuOBq+OBlyzjgb/jgaTjgosNCivjgYrjgYrjgavjgZcs44G+44GV44Gy44GnDQor44GK44GuLOOBleOBquOBiA0KK+OBiuOBrizjgZjjgoXjgpPjgZMNCivjgYrjgYrjgazjgb4s44G+44GV44GKDQor44GK44GX44G+LOOBn+OBi+OChuOBjQ0KK+OBiuOBl+OBvizjgb7jgZXjgZcNCivjgYrjgYrjgZ8s44G+44GV44KG44GNDQor44GK44GK44GfLOOCguOBqOOBhA0KK+OBiuOBiuOBnyzjgYvjgYrjgosNCivjgYrjgYrjgZ/jgYss44Go44GX44GC44GNDQor44GK44GK44Gf44GRLOOBleOBiOOBkw0KK+OBiuOBiuOBn+OBkSzjgbLjgafjgbXjgb8NCivjgYrjgYrjgZ/jgass44GP44Gr44GKDQor44GK44GK44Gk44G8LOOBguOBpOOChuOBjQ0KK+OBiuOBiuOBpOOBiyzjgabjgaTjgYoNCivjgYrjgYrjgaTjgYss44Go44GX44Gy44GTDQor44GK44GK44Gk44GNLOOBhOOBmuOBvw0KK+OBleOBk+OBoCzjgZfjgoXjgYbjgYTjgaENCivjgYrjgYrjgo8s44GV44Go44GXDQor44GK44GK44KELOOBmOOCheOCk+OBm+OBhA0KK+OBiuOBhOOBi+OCjyzjgb7jgZXjgY0NCivjgYrjgYvjgbks44G+44Gq44G2DQor44GT44Gw44KE44GXLOOBneOBhg0KK+OBiuOBi+OBoCzjgoTjgZnjgb/jgaQNCivjgYrjgYvjgaAs44Gm44Gk44GYDQor44GK44GL44GgLOOBpuOBpOOChA0KK+OBiuOBi+OCguOBqCzjgbLjgafjgYLjgY0NCivjgYrjgYvjgoLjgags44Gy44Gn44Gu44G2DQor44KB44KJLOOBsuOCjeOChuOBjQ0KK+OBiuOBi+OBrizjgYvjgZrjga7jgooNCivjgYrjgYvjgZbjgY0s44GL44Ga44KG44GNDQor44GK44GN44GfLOOBleOBqOOBkw0KK+OBiuOBj+OBoCzjgYjjgYTjgYTjgaHjgo3jgYYNCivjgYrjgY/jgazjgY0s44G+44GV44GL44GaDQor44GK44KT44GgLOOBoeOBmuOBkw0KK+OBiuOCk+OBoCzjgbLjgonjgZ/jgYsNCivjgYbjgaTjgb8s44G+44GV44Gy44KNDQor44GK44GK44GuLOOBn+OBi+OBlw0KK+OBiuOBiuOBrizjgobjgY3jgbLjgo0NCivjgYvjgo/jgoLjgags44Gy44Gn44KG44GNDQor44GL44GpLOOBj+OBq+OBsuOCjQ0KK+OBiuOBl+OBvizjgZfjgo3jgYYNCivjgYrjgYrjgZnjgb8s44GC44GN44KJDQor44GK44GK44GfLOOBi+OBmuOChuOBjQ0KK+OBiuOCiuOBhCzjgZfjgoXjgpPjgZgNCivjgYrjgorjgZ8s44GX44KF44GG44GE44GhDQor44GK44GK44GV44GLLOOBqOOCiOOBsuOBpw0KK+OBiuOBneOBruOBhCzjgobjgY3jgYoNCivjgYrjgZbjgZUs44KG44GN44Gu44G2DQor44GK44GW44KPLOOBn+OBpOOBmA0KK+OBiuOBluOCjyzjgarjgYrjga7jgooNCivjgYrjgZbjgo8s44KE44GZ44Gy44KNDQor44GX44KJ44Go44KKLOOBmOOCheOCkw0KK+OBiuOBnuOBrSzjgYLjgY3jgYoNCivjgZXjga4s44Gy44KN44Gy44GVDQor44GV44GE44Go44GGLOOBvuOBleOBvw0KK+OBleOBhOOBqOOBhizjgarjgYrjgY0NCivjgZXjgYTjgajjgYYs44G/44GI44GTDQor44GV44GE44Go44GGLOOBkeOBhOOBmA0KK+OBleOBhOOBqOOBhizjgaHjgYvjgZMNCivjgZXjgYvjgYQs44Gy44KN44G/DQor44GV44GL44GELOOBkeOCk+OBmA0KK+OBleOBi+OBhCzjgb7jgZPjgagNCivjgZXjgYvjgY3jgbDjgoks44G/44Gk44GC44GNDQor44GV44GL44KC44GoLOOCjOOBhOOBkw0KK+OBleOBi+OCguOBqCzjgojjgZfjgYoNCivjgZXjgYvjgoLjgags44Go44KC44GTDQor44GV44GL44KC44GoLOOBmOOCheOCk+OBuuOBhA0KK+OBleOBi+OCguOBqCzjgYvjgYrjgosNCivjgZXjgYvjgoDjgoks44GR44KT44GYDQor44GV44GL44GtLOOBk+OBhuOBmA0KK+OBleOBi+OBnyzjgb7jgZXjgbLjgZMNCivjgZXjgYvjgZ8s44G+44GV44Gy44KNDQor44GC44GP44Gf44GM44KPLOOBvuOBleOBsuOCjQ0KK+OBleOBj+OCieOBhCzjgb7jgZXjgagNCivjgZXjgY/jgonjgYQs44KL44KK44GTDQor44G+44Gk44Gw44KJLOOCiuOCh+OBhuOBkw0KK+OBleOBj+OCieOBhCzjgZXjgajjgosNCivjgZXjgarjgY4s44KI44GX44GNDQor44GV44GuLOOChuOBjeOBkw0KK+OBiuOBiuOBjOOBjSzjgaHjgbLjgo0NCivjgZXjgZXjgY0s44G144G/44Gy44KNDQor44GV44GV44GNLOOBqOOBiuOCiw0KK+OBleOBleOBjSzjgbLjgafjgobjgY0NCivjgZXjgZXjgY0s44GE44GP44G144G/DQor44GV44GV44GNLOOBquOBjOOBvuOBlQ0KK+OBleOBleOBjSzjgajjgoLjgZMNCivjgZXjgZ/jgZEs44Gf44GL44KG44GNDQor44GT44Gg44G+LOOBvuOBleOBsuOCjQ0KK+OBleOBqOOBhizjgajjgYrjgosNCivjgZXjgajjgYYs44G144GY44GKDQor44GV44Go44GGLOOBsuOBp+OBr+OCiw0KK+OBleOBqOOBhizjgb7jgoLjgosNCivjgZXjgajjgYYs44G+44KG44G/DQor44GV44Go44GGLOOBl+OCjeOBhg0KK+OBleOBqOOBhizjgZHjgpPjgZgNCivjgZXjgajjgYYs44Gy44Gn44Gu44KKDQor44GV44Go44GGLOOBkeOBhOOBhOOBoQ0KK+OBleOBqOOBhizjgYLjgY3jgbLjgo0NCivjgZXjgajjgYYs44Gy44Gn44GNDQor44GV44GL44GELOOBkeOCk+OBmA0KK+OBleOCj+OBoCzjgZPjgYbjgZ/jgo3jgYYNCivjgZvjgYzjgo8s44GV44Go44KLDQor44Gb44GE44GuLOOBl+OCh+OBhuOBmA0KK+OBm+OBjSzjgaTjgajjgoANCivjgZvjgY3jgaks44GX44KT44GYDQor44Gb44GN44GuLOOBruOCiuOBsuOCjQ0KK+OBm+OBiizjgZ/jgYvjgobjgY0NCivjgZvjgorjgYvjgo8s44GK44GV44KADQor44GX44Gw44GV44GNLOOBsuOCjeOBruOCig0KK+OBl+OBjCzjgYvjgarjgb8NCivjgZfjgZLjgoss44KI44GX44GTDQor44GX44G+44GgLOOBguOBpOOBlw0KK+OBl+OBvuOBoCzjgb/jgaTjgYgNCivjgZfjgb7jgaAs44G+44GT44GoDQor44GX44G+44GgLOOBi+OBiuOCiw0KK+OBl+OBvuOCguOBqCzjgb/jgaTjgoTjgZkNCivjgZfjgb7jgoDjgoks44Gf44Gk44KEDQor44GX44G+44GuLOOBn+OBi+OBlw0KK+OBl+OBv+OBmizjgZ/jgYvjgYLjgY0NCivjgZfjgb/jgZos44Go44GX44Gy44KNDQor44GX44G/44GaLOOBn+OBoOOBlw0KK+OBl+OBv+OBmizjgaTjgajjgoANCivjgZfjgb/jgZos44GT44GG44GY44KN44GGDQor44GX44G/44GaLOOBleOBqOOCiw0KK+OBl+OBv+OBmizjgb/jgZrjgY0NCivjgZfjgoLjgaAs44Gy44KN44KG44GNDQor44GX44KC44GM44GNLOOBkeOCk+OChA0KK+OBl+OCguOBr+OBnyzjgbLjgo3jgobjgY0NCivjgZfjgoLjgoDjgoks44Gu44G244Gy44KNDQor44GX44KC44GK44GLLOOBqOOBl+OBguOBjQ0KK+OBl+OCgOOCiSzjgZfjgofjgYbjgYTjgaENCivjgoTjgYjjgYzjgZcs44GC44Gk44GTDQor44GX44Gu44GW44GNLOOBguOBpOOBlw0KK+OBr+OBjuOCj+OCiSzjgbLjgafjgYoNCivjgZfjgYrjgaAs44G+44GV44Gy44GoDQor44GX44GK44GfLOOBsuOBleOCiOOBlw0KK+OBl+OBiuOBluOCjyzjgZHjgpPjgYTjgaENCivjgZfjgonjgYQs44Gf44GR44GXDQor44GX44KJ44GE44GXLOOBqOOCguOBsuOBlQ0KK+OBl+OCh+OBhuOBoCzjgZHjgpPjgZgNCivjgZfjgoXjgYYs44Go44KC44GTDQor44Gd44KB44KELOOBvuOBleOBlw0KK+OBmeOBoCzjgY/jgb/jgZMNCivjgZnjgYgs44Gy44Gn44GKDQor44GZ44GI44GfLOOBsuOBp+OBig0KK+OBl+OBtuOBhOOBoSzjgbLjgafjgobjgY0NCivjgZnjgYzjga4s44Gy44KN44KG44GNDQor44GZ44GM44KP44KJLOOBsuOBleOBn+OBiw0KK+OBmeOBjuOBiCzjgYvjgaTjgajjgZcNCivjgZnjgY7jgb7jgZUs44GR44GE44GfDQor44GZ44GO44KC44KKLOOBruOBtuOChuOBjQ0KK+OBmeOBjuOCguOBqCzjgajjgYrjgosNCivjgZnjgY7jgZXjgY0s44KI44GG44GTDQor44GZ44GO44GG44KJLOOChuOBjeOBig0KK+OBmeOBjuOBhuOCiSzjgZjjgoXjgpPjgYTjgaENCivjgb/jgZrjgYrjgaEs44Gf44GL44GXDQor44GZ44GO44KE44G+LOOBvuOBleOChA0KK+OBmeOBjuOChOOBvizjgb7jgarjgbYNCivjgZnjgY7jgoTjgb4s44GR44KTDQor44GZ44GO44KE44G+LOOBn+OBkeOBlw0KK+OBmeOBvyzjgb7jgZXjgoLjgagNCivjgZ/jgbnjgYQs44KI44GX44Gu44KKDQor44GZ44Gq44G/LOOBsuOCjeOBkw0KK+OBmeOBleOCjyzjgYrjgZXjgoANCivjgZnjgZrjgY0s44GC44GN44GTDQor44GZ44Ga44GNLOOBiOOBhOOBmA0KK+OBmeOBmuOBjSzjgbLjgafjgobjgY0NCivjgZnjgZrjgY0s44Gy44KN44GC44GNDQor44GZ44Ga44GNLOOBi+OBquOBkw0KK+OBmeOBmuOBjSzjgYvjgarjgZMNCivjgZnjgZrjgY0s44GL44Ga44KI44GXDQor44GZ44Ga44GNLOOBkeOCk+OBnw0KK+OBmeOBmuOBjSzjgZPjgYbjgZgNCivjgZnjgZrjgY0s44G+44GV44Gu44KKDQor44GZ44Ga44GNLOOBquOCiuOBvuOBlQ0KK+OBn+OBuSzjgorjgoXjgYbjgYTjgaHjgo3jgYYNCivjgZ/jgaHjga/jgoks44Gf44GL44GXDQor44Gf44GSLOOBqOOBl+OBjQ0KK+OBn+OBkOOBoSzjgo/jgZ/jgosNCivjgarjgYvjgZ8s44KP44Gf44KLDQor44Gf44GQ44GhLOOBl+OCkw0KK+OBn+OBmOOBvizjgYLjgY3jgokNCivjgZ/jgZjjgb4s44G+44GT44GoDQor44Gf44GL44GgLOOBk+OBhuOBhOOBoQ0KK+OBn+OBi+OBjuOCjyzjgb/jgaTjgbLjgo0NCivjgZ/jgYvjga/jgZcs44GL44Ga44KI44GXDQor44Gf44GL44Gv44GXLOOBsuOCjeOChOOBmQ0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjga7jgooNCivjgZ/jgYvjga/jgZcs44G/44Gk44Go44GXDQor44Gf44GL44GP44KJLOOBk+OBhuOBmA0KK+OBn+OBi+OBj+OCiSzjgoTjgZnjgb7jgZUNCivjgZ/jgYvjga/jgZcs44KE44Gy44KNDQor44Gf44GL44Gv44GXLOOBguOBjeOBteOBvw0KK+OBn+OBi+OBr+OBlyzjgYrjgZXjgoANCivjgZ/jgYvjga/jgZcs44KG44GG44GYDQor44Gf44GL44Gv44GXLOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgaTjgYvjgZUNCivjgZ/jgYvjga/jgZcs44GX44KT44GE44GhDQor44Gf44GL44Gv44GXLOOChuOBhuOBkw0KK+OBn+OBi+OBr+OBlyzjgb7jgZPjgagNCivjgZ/jgYvjga/jgZcs44Gy44Gn44GNDQor44Gf44GL44GP44KJLOOBpOOBqOOCgA0KK+OBn+OBi+OBv+OChCzjgZ/jgb7jgb8NCivjgZ/jgYvjgZXjgZQs44GP44Gr44Gy44GTDQor44Gf44GL44GV44GNLOOBvuOBleOBqA0KK+OBn+OBi+OBmyzjgb7jgZXjgbLjgagNCivjgZ/jgYvjgaTjgYss44GX44KT44GE44GhDQor44Gf44GL44KE44Gq44GOLOOBl+OBkuOCiw0KK+OBn+OBi+OChOOBquOBjizjgoTjgYjjgY3jgaENCivjgZ/jgZHjgaEs44Gy44Gn44GC44GNDQor44Gf44GR44GgLOOBsuOCjeOBlw0KK+OBn+OBkeOBoCzjgYTjgaTjgbLjgagNCivjgZ/jgZHjgYzjgb8s44GL44Gk44G/DQor44Gf44GR44Gy44GVLOOBvuOBk+OBqA0KK+OBn+OBkeOBhCzjga7jgbbjgYoNCivjgZ/jgZHjgYQs44Gf44Gg44KG44GNDQor44Gf44GR44GL44KPLOOBn+OBkeOBsuOBkw0KK+OBn+OBkeOCgOOCiSzjgajjgZfjgbLjgacNCivjgZ/jgZHjgarjgYss44Go44GX44Gy44KNDQor44GE44G+44GELOOCiOOBhuOBhOOBoQ0KK+OBn+OBkeOBleOBkyzjgojjgYbjgYTjgaENCivjgZ/jgZHjgZfjgb4s44GL44Gk44GX44KN44GGDQor44Gf44GR44GG44GhLOOBsuOCjeOBqOOBlw0KK+OBsuOBoOOBiyzjgajjgYrjgosNCivjgZ/jgY3jgoLjgags44G/44Gp44KKDQor44Gf44GN44GW44KPLOOBjeOBj+OBvw0KK+OBn+OBvuOBhCzjgb7jgZXjgosNCivjgZ/jgoDjgoks44GX44KH44GG44GE44GhDQor44Gf44Gq44G5LOOBiOOBhOOBmA0KK+OBn+OBquOBuSzjgojjgYbjgbjjgYQNCivjgZ/jgarjgYss44GC44GN44GoDQor44Gf44Gq44GLLOOBhOOBleOCgA0KK+OBn+OBquOBiyzjgb/jganjgooNCivjgZ/jgarjgYss44KI44GX44Gq44KKDQor44Gf44Gq44GLLOOChOOBmeOBmA0KK+OBn+OBquOBiyzjgZ/jgYvjgZcNCivjgZ/jgarjgYss44GC44KK44Gy44GoDQor44Gf44Gq44GLLOOBl+OCk+OBlA0KK+OBn+OBquOBiyzjgZfjgoXjgYbjgYTjgaENCivjgZ/jgarjgYss44Gy44KN44KG44GNDQor44Gf44Gq44GLLOOBn+OBi+OBlw0KK+OBleOBrizjgbLjgo3jgbXjgb8NCivjgZ/jgass44GI44GE44GE44Gh44KN44GGDQor44Gf44Gr44KA44KJLOOCiOOBl+OBteOBvw0KK+OBn+OBq+OChOOBvizjgaDjgYTjgZnjgZENCivjgZ/jgZXjgYss44KE44GZ44G+44GVDQor44GL44Go44GGLOOBiOOBhOOBmA0KK+OBpuOCieOBoCzjgojjgZfjgobjgY0NCivjgabjgonjgb7jgYgs44G+44GNDQor44Gm44KJ44Gr44GXLOOBruOBtuOChuOBjQ0KK+OBpuOCieOBq+OBlyzjgbLjgo3jgb/jgaQNCivjgabjgonjgZ7jga4s44GL44GK44KKDQor44Go44Gz44GfLOOBvuOBleOBvw0KK+OBhOOBmuOBv+OBleOCjyzjgbLjgafjgY0NCivjgajjgaAs44GV44Go44GXDQor44Go44GQ44GhLOOBn+OBkeOBlw0KK+OBqOOBvuOBpCzjgajjgoLjgYLjgY0NCivjgYLjgY3jgoDjgoks44Gu44G244KG44GNDQor44Go44GN44Gf44GRLOOBn+OBkeOBlw0KK+OBqOOBj+OBvuOBmSzjgYLjgY3jgbLjgo0NCivjgajjgY/jgZ/jgZEs44GC44GN44Gy44GTDQor44Go44G+44GNLOOBi+OBmuOChA0KK+OBqOOBv+OBhCzjgb7jgZXjgbLjgo0NCivjgajjgb/jgZ8s44GN44G/44GKDQor44Go44G/44KE44G+LOOBvuOBleOBqA0KK+OBqOOCguOBoCzjgY/jgb/jgZMNCivjgajjgoLjgarjgYws44G+44GV44Gu44KKDQor44Go44GV44GLLOOBquOBiuOBqA0KK+OBqOOBo+OBqOOCiizjgYLjgY3jgbLjgZMNCivjgb7jgaTjgYos44KI44GX44KG44GNDQor44Go44KI44GgLOOCiOOBl+OChuOBjQ0KK+OBpOOBvOOBhCzjgYLjgY3jgokNCivjgYvjgajjgYYs44Go44GX44Gy44KNDQor44Gk44Gh44KELOOBi+OBmuOBlw0KK+OBpOOBoCzjgZfjgpPjgZQNCivjgaTjgZgs44G+44GV44Gy44GTDQor44Gk44GYLOOCiOOBhuOBhOOBoQ0KK+OBpOOBmOOBrizjgojjgYbjgZnjgZENCivjgaTjgYvjgZPjgZcs44GC44GN44KJDQor44Gk44GL44KC44GoLOOBl+OBkuOBsuOCjQ0KK+OBpOOBi+OBluOBjSzjgbXjgb/jgbLjgo0NCivjgaTjgY3jgYLjgZcs44GC44GN44KJDQor44Gk44GN44GW44KPLOOBk+OBhuOBmA0KK+OBpOOBv+OBnyzjgYjjgYTjgYTjgaENCivjgYjjgpPjgaks44Gf44Gg44Gy44GTDQor44Gk44GoLOOBqOOBl+OBsuOCjQ0KK+OBpOOCgOOCiSzjgojjgZfjgYoNCivjgaTjga3jgYvjgo8s44Gd44Gu44GZ44GRDQor44Gk44KL44GK44GLLOOCiOOBl+OBsuOBkw0KK+OBpOOCi+OBnyzjga7jgorjgZMNCivjgaTjgovjgZ8s44KC44Go44KG44GNDQor44Gk44KL44GfLOOBn+OBpOOChuOBjQ0KK+OBpOOBpOOBvyzjgZfjgoXjgpPjgoQNCivjgaTjgaTjgb8s44GL44Gk44G/DQor44Gk44KP44GTLOOChuOBiw0KK+OBpOOChOOBvizjgY3jgojjgbXjgZUNCivjgYbjgaHjgaAs44GX44KH44GG44GTDQor44GG44Gh44GgLOOBvuOBleOBsuOCjQ0KK+OBhuOBoeOBoCzjgZvjgaTjgZMNCivjgYbjgaHjgoTjgb4s44GX44KT44GUDQor44GG44Gh44KE44G+LOOBsuOBp+OBig0KK+OBhuOBqSzjgY3jgojjgb8NCivjgYbjgYjjgaAs44Gv44KL44GNDQor44GG44GI44GgLOOCiOOBhuOBmeOBkQ0KK+OBvuOBpOOCgOOCiSzjgaDjgYTjgZjjgo3jgYYNCivjgYbjgYjjgaAs44GC44GR44G/DQor44GG44GI44GgLOOBguOBjeOBig0KK+OBhuOBiOOBvuOBpCzjgbLjgafjgYoNCivjgYbjgYjjga4s44Gy44KN44G/DQor44GG44GI44GuLOOBmOOCheOCk+OBmA0KK+OBhOOBl+OBoCzjgYvjgZrjgbLjgZMNCivjgYbjgoHjgaAs44GT44GG44Gb44GEDQor44GG44KB44GM44GNLOOBj+OBq+OBkw0KK+OBhuOBrizjgb7jgoLjgosNCivjgYbjgonjga/jgZcsDQor44GX44G/44GaLOOBleOBqOOBlw0KK+OBiOOBjOOBl+OCiSzjgZ/jgaDjgZcNCivjgZnjgYjjgYvjga0s44Gm44KL44KG44GNDQor44GG44GkLOOBqOOBiuOCiw0KK+OBhuOBpOOBr+OBlyzjgajjgZfjgbLjgo0NCivjgYbjgaTjgb8s44GR44GE44GE44GhDQor44KP44GgLOOBpOOBreOBteOBvw0KK+OCj+OBoCzjgZ/jgaTjgb8NCivjgY3jgZ/jgo/jgY0s44Gb44GE44GNDQor44KP44GX44GaLOOBr+OCi+OBquOBjA0KK+OCj+OBn+OBuSzjgbXjgb/jgogNCivjgo/jgZ/jgarjgbks44Gy44KN44GXDQor44KP44Gf44Gq44G5LOOBvuOBleOChA0KK+OCj+OBn+OBquOBuSzjgZXjgajjgb8NCivjgo/jgZ/jgarjgbks44GX44KT44GE44GhDQor44KP44Gf44Gq44G5LOOBn+OBi+OBlw0KK+OCj+OBn+OBquOBuSzjgaTjgajjgoANCivjgo/jgZ/jgarjgbks44KI44GX44GC44GNDQor44KP44Gf44Gq44G5LOOBpOOBreOBig0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgogNCivjgo/jgZ/jgarjgbks44GI44GE44GYDQor44KP44Gf44Gq44G5LOOBsuOCjeOBkw0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgobjgY0NCivjgo/jgZ/jgarjgbks44GL44Gk44GXDQor44KP44Gf44Gq44G5LOOChuOBhuOBmOOCjeOBhg0KK+OCj+OBn+OBquOBuSzjgoTjgZnjgYoNCivjgYjjga/jgoks44GC44Gk44GXDQor44KP44Gf44Gq44G5LOOBsuOBp+OBguOBjQ0KK+OCj+OBn+OCieOBhCzjgZjjgo3jgYYNCivjgoTjgYjjgYzjgZcs44GK44GV44KADQor44KE44Gv44GOLOOBl+OBruOBtg0KK+OChOOBvuOBoCzjgZfjgoXjgYbjgYTjgaENCivjgoTjgb7jgaAs44Gf44GR44GXDQor44KE44G+44GgLOOCiOOBhuOBmA0KK+OBk+OCk+OBqSzjgajjgZfjgoQNCivjgoTjgb7jgaAs44GC44Gk44GXDQor44KE44G+44GgLOOBiuOBleOCgA0KK+OChOOBvuOBoCzjgb/jgY0NCivjgoTjgb7jgaAs44GC44GN44Gy44KNDQor44GI44Gu44KC44GoLOOBsuOCjeOBlw0KK+OBleOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgoTjgb7jgZDjgaEs44GN44KT44KEDQor44G144GY44GfLOOBvuOBleOBqOOBlw0KK+OChOOBvuOBkOOBoSzjgZXjgajjgZMNCivjgoTjgb7jgZDjgaEs44KE44GZ44Gy44KNDQor44GI44GW44GNLOOBsuOBqOOBlw0KK+OChOOBvuOBkOOBoSzjgZXjgajjgosNCivjgoTjgb7jgoLjgags44GV44Go44GXDQor44KE44G+44KC44GoLOOBqOOBiuOCiw0KK+OChOOBvuOCguOBqCzjgoTjgZnjgZcNCivjgoTjgb7jgoLjgags44Gf44GR44GXDQor44KE44G+44KC44GoLOOBk+OBhuOBhOOBoQ0KK+OChOOBvuOCguOBqCzjgZPjgYbjgY0NCivjgoTjgb7jgoLjgags44Go44GX44KG44GNDQor44KE44G+44KC44GoLOOBvuOBleOCiw0KK+OChOOBvuOBquOBiyzjgbLjgo3jgZcNCivjgoTjgb7jga0s44G/44Gh44KLDQor44KE44G+44Gu44GP44GhLOOBleOBqOOBlw0KK+OChOOBvuOBleOBjSzjgZ/jgYvjgZcNCivjgoTjgb7jgZfjgZ8s44G+44GV44GL44GaDQor44KE44G+44GX44GfLOOBsuOCjeOBjQ0KK+OChOOBvuOBl+OBnyzjgZHjgYTjgYTjgaHjgo3jgYYNCivjgoTjgb7jgZfjgZ8s44GT44GG44GNDQor44KE44G+44GX44GfLOOBl+OBkuOBvw0KK+OBl+OBleOBhCzjgb7jgZXjgobjgY0NCivjgoTjgb7jgZfjgZ8s44Go44GX44Gy44KNDQor44KE44G+44GG44GhLOOBqOOBl+OChuOBjQ0KK+OChOOBvuOBhuOBoSzjgb7jgZPjgagNCivjgoTjgb7jgZbjgY0s44Gy44Gn44GKDQor44KE44G+44GW44GNLOOBn+OBoOOBlw0KK+OChOOBvuOBluOBjSzjgoDjgaTjgb8NCivjgoTjgarjgY7jgoLjgags44Gf44GR44GXDQor44KE44GuLOOCiuOCh+OBhuOBmA0KK+OChOOBrizjgbLjgo3jgY0NCivjgoTjgZfjgo0s44KE44GZ44GXDQor44KE44GW44KPLOOBvuOBk+OBqA0KK+OCiOOBoCzjgZfjgoXjgpPjgZnjgZENCivjgojjgY4s44G144G/44KG44GNDQor44KI44GT44GELOOBk+OBhuOBmA0KK+OCiOOBk+OChOOBvizjgZHjgpPjgZfjgofjgYYNCivjgojjga3jgZbjgY0s44G144Go44GXDQor44KI44GX44GgLOOBmOOCheOCkw0KK+OCiOOBl+OBoCzjgorjgYjjgZMNCivjgojjgZfjgaAs44GL44Ga44KI44GXDQor44KI44GX44GgLOOBmOOCheOCk+OBkw0KK+OBiOOBs+OBqizjgZvjgYTjgYTjgaENCivjgojjgZfjgaAs44Gf44Gg44GXDQor44KI44GX44GgLOOBn+OBpOOBig0KK+OCiOOBl+OBhOOBkSzjgoTjgZnjga7jgooNCivjgojjgZfjgoDjgoks44G/44Gk44KG44GNDQor44KI44GX44KA44KJLOOBleOBqOOCiw0KK+OCiOOBl+OBrizjgZfjgpPjgYTjgaENCivjgojjgZfjgYos44Gu44G844KLDQor44KI44GX44Gf44GRLOOBl+OBkuOCiOOBlw0KK+OChuOBguOBlSzjgabjgaTjgZgNCivjgYrjgYrjgo/jgaAs44GX44KH44GG44GYDQor44GI44GQ44GhLOOBleOBqOOCiw0KK+OBiuOBluOCjyzjgYvjgaTjgobjgY0NCivjgZXjgajjgYYs44G/44Gk44GC44GNDQor44GX44KT44Gf44GrLOOBn+OBkeOBvw0KK+OBmeOBjuOBn+OBqyzjgojjgZfjgbLjgZMNCivjgZ/jgYvjga/jgZcs44GE44Ga44G/DQor44Gf44GN44GW44KPLOOBquOBiuOBjQ0KK+OBv+OCiOOBoCzjgZHjgpPjgZgNCivjgoTjgb7jgaAs44GN44KI44GXDQor44KE44Gv44GOLOOBleOBqOOBlw0KK+OBjeOChCzjgZ/jgaDjgZcNCivjgb/jgZvjgY0s44Gu44KK44GL44GaDQor44GI44Gu44KC44GoLOOBkeOCk+OBn+OCjeOBhg0KK+OBleOBj+OCieOBoCzjgb7jgZXjgY0NCivjgZXjgZXjgY0s44Gu44G244KG44GNDQor44Gw44GwLOOBn+OBkeOBig0KK+OBguOBvCzjgYvjgYrjgooNCivjgYLjgaDjgaEs44GT44GG44G444GEDQor44GC44GL44GV44GLLOOBvuOBleOBsuOCjQ0KK+OBguOBvuOBleOBjSzjgbLjgafjgagNCivjgYLjgYrjgY0s44GL44KT44GYDQor44GC44Gc44GM44G/LOOBl+OBkuOBi+OBmg0KK+OBiOOBqeOBrizjgbXjgb/jgbLjgo0NCivjganjgYQs44GL44Ga44GKDQor44G144GY44GELOOBqOOCguOBsuOBqA0KK+OBteOBmOOBhCzjgZXjgobjgooNCivjgbXjgZjjgoLjgags44Gy44KN44GNDQor44G144GY44KC44GoLOOBn+OBkeOBlw0KK+OBteOBj+OBr+OCiSzjga7jgbbjgobjgY0NCivjgbXjgY/jgYrjgYss44Gm44Gk44KEDQor44G144GP44GX44G+LOOBkeOCk+OBhOOBoQ0KK+OBteOBleOChOOBvizjgZPjgYbjgYTjgaENCivjgZTjgajjgYYs44KI44GX44Gy44KNDQor44Gv44G+44G5LOOBiOOBhOOBmA0KK+OBr+OBquOBoCzjgZHjgYTjgZnjgZENCivjga/jgZfjgoLjgags44KI44GX44Gy44KNDQor44Gy44GzLOOBleOBi+OBiA0KK+OBsuOCieOBpOOBiyzjgYvjgZrjgobjgY0NCivjgYTjgYvjgoos44Gf44GL44KG44GNDQor44GE44GP44GfLOOBguOBjeOBsuOBkw0KK+OBhOOBvuOBhCzjgabjgaTjgZcNCivjgYTjgZfjga/jgoks44KE44GZ44Gy44KNDQor44GE44Gd44GgLOOBk+OBhuOBhOOBoQ0KK+OBhOOBneOBluOBjSzjgojjgZfjgZ/jgYsNCivjgZjjgpPjgZDjgYYs44KI44GX44GC44GNDQor44Gq44GELOOBv+OBruOCiw0KK+OBmOOCh+OBhuOBq+OBlyzjgYrjgZXjgb8NCivjgYvjgZjjga/jgoks44KI44GX44GC44GNDQor44GL44G+44GfLOOBn+OBpOOChA0KK+OBi+OCgeOBhCzjgYLjgY3jgokNCivjgYvjgb/jgoTjgb4s44Gm44Gk44KEDQor44GL44Go44GGLOOBn+OBpOOBmA0KK+OBi+OBqOOBhizjgajjgZfjgobjgY0NCivjgYjjgb8s44Gy44Gn44GC44GNDQor44GL44KP44KC44KKLOOBvuOCguOCiw0KK+OBjeOCgOOCiSzjgojjgZfjgbLjgo0NCivjgY3jgoDjgoks44GL44Ga44GKDQor44GN44GX44G5LOOBj+OBq+OBsuOBkw0KK+OBjeOBl+OBi+OCjyzjgYvjgZrjgojjgZcNCivjgY3jgZ/jgYzjgo8s44GX44KT44GE44GhDQor44GN44Gf44Gq44GLLOOCgeOBkOOBvw0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgobjgY0NCivjgZPjgbDjgoTjgZcs44GS44KTDQor44GT44GE44GRLOOBqOOBhuOBnw0KK+OBk+OBhOOBmuOBvyzjgYvjgZrjgoQNCivjgZPjgZjjgb4s44Gf44GL44Gy44GVDQor44GT44Gr44GXLOOBjeOCiOOBi+OBmg0KK+OBk+OChOOBvizjgZ/jgY/jgoQNCivjgY/jganjgYYs44GL44Ga44KEDQor44GP44G+44GV44GNLOOCiOOBl+OBguOBjQ0KK+OBj+OCjeOBoCzjgbLjgo3jgYvjgZoNCivjgY/jgZXjgYss44GX44KT44GUDQor44GI44KT44GpLOOBkeOCk+OBmA0KK+OBvuOBiOOBi+OCjyzjgb7jgZXjgbLjgo0NCivjgb7jgovjgZ8s44Gy44Gn44GNDQor44G+44Gk44GX44GfLOOBl+OCk+OBlA0KK+OBv+OBj+OBqyzjgajjgb/jgYoNCivjgYjjgpPjgaks44KI44GX44Gu44KKDQor44G/44GtLOOChOOBmeOBn+OBiw0KK+OBv+OBhuOCiSzjgZfjgoXjgYbjgYTjgaENCivjgb/jgZ7jgZDjgaEs44GX44KH44GG44GYDQor44G744KTLOOCiOOBl+OBguOBjQ0KK+OBv+OBmuOBl+OBvizjgZfjgZLjgosNCivjgYjjgaAs44Gf44GL44GXDQor44Gq44GM44GKLOOBguOBpOOBlw0KK+OBquOBi+OCgOOCiSzjgajjgYrjgosNCivjgarjgYvjgavjgZcs44KG44GG44GYDQor44Gq44GL44GuLOOCiOOBhuOBkw0KK+OBquOBi+OBiizjgYvjgaTjgoQNCivjga3jgoLjgags44G+44GV44KG44GNDQor44Gr44GX44GL44KPLOOBk+OBhuOBmA0KK+OBq+OBl+OCj+OBjSzjgZHjgpPjgYTjgaENCivjga7jgaAs44Gf44GL44GTDQor44Gu44GQ44GhLOOBv+OBqOOBlw0KK+OBiuOBoeOBguOBhCzjgZPjgYbjgZgNCivjgYrjgYrjga/jgZcs44KE44GZ44KI44GXDQor44GK44GuLOOBn+OBj+OBmA0KK+OBiOOBvyzjgbLjgafjgYoNCivjgYrjgY/jgoDjgoks44G+44GV44Gy44KNDQor44GK44GP44GuLOOBsuOBp+OBv+OBpA0KK+OBiOOCk+OBqSzjgojjgZfjgZ/jgaANCivjgYrjgYrjgavjgZcs44GC44GN44KJDQor44GK44GW44GNLOOBj+OBq+OBr+OCiw0KK+OBleOBiOOBjSzjga7jgorjgobjgY0NCivjgZXjgYzjgo8s44Gu44G844KLDQor44GV44GP44G+LOOBvuOBleOBuw0KK+OBleOBqOOBhizjgZfjgZLjgYLjgY0NCivjgZXjgajjgYYs44G/44Gk44Gy44KNDQor44GV44KPLOOBjeOCiOOBn+OBiw0KK+OBm+OBjOOCjyzjgZPjgYbjgZgNCivjgZvjgY0s44KG44GN44GKDQor44Gb44KT44GgLOOBkeOCk+OBmA0KK+OBl+OBtuOChCzjgZfjgoXjgYbjgYTjgaENCivjgZfjgb/jgZos44KI44GX44Gv44KLDQor44GX44KT44Gn44KTLOOBguOBjeOCiOOBlw0KK+OBl+OBiuOBnyzjgbLjgajjgZcNCivjgZfjgoXjgY/jgZ/jgass44Go44GX44GKDQor44GZ44KE44G+LOOBsuOCjeOBkw0KK+OBmeOBmuOCgOOCiSzjgYTjgZXjgYoNCivjgZ/jgYvjgYrjgYss44KI44GX44KG44GNDQor44Gf44GR44GG44GhLOOBi+OBpOOBruOCig0KK+OBn+OBkeOBhuOBoSzjgYvjgZrjgZcNCivjgZ/jgb7jgYQs44G+44GV44Gy44KNDQor44Gf44KTLOOBi+OBmuOBsuOCjQ0KK+OBn+OBquOBiyzjgZHjgpPjgZQNCivjgYjjgajjgYYs44Gm44KL44GC44GNDQor44Gf44Gr44Gy44KJLOOBi+OBmuOBsuOCjQ0KK+OBn+OBq+OChOOBvizjgY3jgY/jgYoNCivjgZ/jgYrjgYss44GX44GS44GNDQor44Gf44GX44G+LOOBvuOBleOChuOBjQ0KK+OBn+OBluOCjyzjgb/jgY3jgYoNCivjgajjgY3jgZ8s44GL44Gk44KI44GXDQor44Go44G/44GfLOOBl+OBkuOBjQ0KK+OBqOOBv+OBnyzjgZHjgpPjgZgNCivjgajjgb/jgZ8s44GC44GN44GKDQor44Gk44GY44G5LOOBsuOCjeOBkw0KK+OBpOOBmOOBi+OCjyzjgZHjgpPjgYTjgaENCivjgYjjgpPjgaks44GY44KF44KT44GTDQor44G/44KE44GW44GNLOOBvuOBjeOBkw0KK+OCj+OBoCzjgojjgZfjgZ/jgYsNCivjgo/jgZ/jgarjgbks44Gy44KN44G/DQor44KE44G+44GgLOOBquOBiuOChA0KK+OChOOBvuOBoCzjgZ/jgaDjgZcNCivjgoTjgb7jgaAs44GV44KE44GLDQor44KE44G+44GQ44GhLOOBruOCiuOBig0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgZMNCivjgoTjgb7jgYrjgYss44GL44Gk44Gu44KKDQor44KE44G+44GX44GfLOOBruOBtuOBig0KK+OChOOBvuOBl+OBnyzjgYvjgZrjgbLjgZUNCivjgoTjgb7jgZ7jgYgs44Gy44KN44G+44GVDQor44KE44GKLOOChOOBmeOBr+OCiw0KK+OChOOBmeOBoCzjgZXjgajjgZcNCivjgojjgaTjgZ/jgass44KI44GX44GKDQor44KI44GX44Gv44KJLOOBsuOBp+OBig0KK+OCiOOBk+OBhuOCiSzjgb7jgZXjgYoNCivjgbLjgonjgZss44GX44GS44GKDQor44G+44Gk44GELOOBhOOBoeOBn+OCjeOBhg0KK+OBk+OBsOOChOOBlyzjgYvjgZrjgbLjgZUNCivjgZnjgZrjgY0s44Gf44GR44GXDQor44GL44Go44GGLOOBqOOBl+OBj+OBqw0KK+OBj+OBq+OBqOOCgizjga7jgbbjgobjgY0NCivjgYjjgpPjgaks44GU44GGDQor44GE44Go44GGLOOBleOBqOOCiw0KK+OBiuOBi+OBluOBjSzjgbLjgafjgYoNCivjgbLjgo3jga/jgZcs44KE44GZ44GKDQor44GV44GL44GNLOOCiOOBhuOBkw0KK+OBv+OBjSzjgajjgY3jgZMNCivjgY/jgb7jgY0s44G+44GV44GKDQor44Gf44KE44G+LOOBpuOBpOOBig0KK+OBiuOBiuOCj+OBjSzjgY3jga/jgaENCivjgb/jgofjgYbjganjgYYs44G+44GV44GoDQor44GL44Go44GGLOOBsuOCjeOCiOOBlw0KK+OBsOOBsCzjgb/jgY3jgYoNCivjgYvjga3jgZMs44Gv44KL44Gy44GTDQor44GT44GQ44KMLOOBsuOCjeOBguOBjQ0KK+OBn+OBkeOBoCzjgojjgZfjga7jgooNCivjgYTjgaHjgoDjgoks44G+44KC44KLDQor44GE44Go44GGLOOBruOBvOOCiw0KK+OBhuOBiOOBr+OBvizjgb/jga7jgosNCivjgarjgYvjgYQs44GT44GG44GYDQor44GT44Gw44KE44GXLOOBvuOBleOBig0KK+OBl+OBvuOBoCzjgb7jgarjgYoNCivjgoHjgZDjgo0s44GX44GS44KLDQor44KE44G+44KELOOBsuOCjeOBlw0KK+OBteOBmOOBnyzjgb/jgaTjgZANCivjgb7jgajjgbAs44Gh44Gy44KNDQor44GE44Go44GGLOOCguOBqOOBi+OBmg0KK+OBquOBi+OBhCzjgZfjgZrjgYoNCivjgYrjgYvjgaAs44G+44GV44Gy44GoDQor44Gu44KC44GoLOOBqOOBl+OBjQ0KK+OBquOBjOOBl+OBvizjgojjgYbjgZgNCivjgojjga3jgYvjgo8s44Gf44KC44GkDQor44KP44Gf44Gq44G5LOOBqOOBiuOCiw0KK+OCgOOCieOBvuOBpCzjgajjgoLjgaHjgYsNCivjgY3jgZ/jgass44KG44GG44GE44Gh44KNDQor44G/44GL44G/LOOBsuOCjeOBlw0KK+OBguOBoOOBoSzjgb/jgaTjgYoNCivjgYTjga7jgYbjgYgs44G+44GV44GC44GNDQor44GK44GL44GgLOOBn+OBi+OBguOBjQ0KK+OBi+OCj+OBl+OBvizjgabjgaTjgYoNCivjgZvjgY0s44GC44GN44KJDQor44Gf44GL44Gv44GXLOOCiOOBl+OBmA0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgosNCivjgY/jgorjga/jgoks44Gh44Gv44KLDQor44KP44Gf44Gq44G5LOOBkeOBhOOBmeOBkQ0KK+OBteOBmOOBi+OBnyzjgb/jgaTjgYoNCivjgojjgZfjgags44Gu44KK44GKDQor44GL44KP44GbLOOBiuOBleOCgA0KK+OBn+OBquOBiyzjgb7jgZPjgagNCivjgYTjgb7jgYQs44GR44KT44GYDQor44GT44KA44KNLOOChuOBjeOBqOOBlw0KK+OBvuOBiOOBoCzjgYjjgYTjgZQNCivjgZPjgYTjgZEs44GK44GV44KADQor44KP44Gf44Gq44G5LOOBv+OBoeOBguOBjQ0KK+OBk+OCk+OBqSzjgbLjgZXjgajjgZcNCivjgYTjgZfjgYQs44Gy44GV44KEDQor44G/44GX44G+LOOBn+OBi+OBlw0KK+OBk+OBsOOChOOBlyzjgojjgZfjgYvjgZoNCivjgoTjgb7jgZfjgZ8s44GR44KT44GYDQor44Gf44Gq44GLLOOCiuOCh+OBhuOBnuOBhg0KK+OChOOBvuOBoCzjgb7jgZXjgajjgZcNCivjgYvjgb/jgoQs44G/44Gh44KE44GZDQor44KE44G+44KC44GoLOOCiuOBjeOBig0KK+OBl+OBiuOBluOBjSzjgajjgYrjgosNCivjgarjgYvjgoDjgoks44Gh44GL44GXDQor44Gf44GR44KC44GoLOOBleOBoeOBig0KK+OBoOOBkeOChOOBvizjgbLjgo3jgobjgY0NCivjgYLjgonjgYvjgo8s44Gc44KT44GYDQor44KI44GT44GfLOOBvuOBleOChuOBjQ0KK+OBquOBi+OCgOOCiSzjgYvjgZrjgbLjgZMNCivjgYLjgonjgYvjgo8s44Go44GX44GKDQor44GK44GK44G/44GhLOOBvuOBk+OBqA0KK+OBvuOBpOOBjSzjgYjjgYTjgY0NCivjgY/jgZfjgbPjgY0s44GZ44GR44Gy44GnDQor44Gr44Gj44GfLOOBpuOCi+OBsuOBkw0KK+OBpOOBvOOBhuOBoSzjgb/jgY3jgYoNCivjgZXjgYTjgajjgYYs44Gy44KN44KG44GNDQor44Gf44GR44KA44KJLOOBqOOBl+OBsuOCjQ0KK+OBn+OBquOBuSzjgYvjgZrjgYoNCivjgb7jgYjjgaAs44KC44Go44GP44GrDQor44GZ44GM44Gv44KJLOOBpuOBpOOBig0KK+OBi+OBreOBkyzjgZfjgofjgYbjgZgNCivjgoTjgb7jgYbjgaEs44G+44GV44Gy44GTDQor44GL44G/44GW44KPLOOBsuOCjeOBteOBvw0KK+OBk+OBjCzjgajjgY/jgbLjgo0NCivjgaTjgovjgZXjgY0s44GZ44Gq44GKDQor44Gy44GM44GXLOOBteOBv+OBsuOCjQ0KK+OBhOOBl+OBoCzjgoTjgZnjgbLjgo0NCivjgarjgYvjgYzjgo8s44Gv44KL44GKDQor44Gm44KJ44GX44G+LOOBsuOBleOBr+OCiw0KK+OBjeOBn+OCgOOCiSzjgZfjgoXjgpPjgZgNCivjga/jgaPjgajjgoos44Gy44Gn44G/DQor44GV44GV44GNLOOCiOOBl+OBsuOCjQ0KK+OBu+OBiyzjgZHjgpPjgZ/jgo3jgYYNCivjga7jgoDjgoks44Gm44KL44GKDQor44Gv44KE44GuLOOBi+OBmuOBig0KK+OBguOCk+OBluOBhCzjgZfjgpPjgYTjgaENCivjgbXjgovjga4s44GN44KI44Gy44GnDQor44Gr44GX44KP44GNLOOBj+OBqw0KK+OBr+OBm+OBjOOCjyzjgb7jgZXjgYoNCivjgYTjgo/jgZ8s44Gf44GL44KG44GNDQor44Go44GgLOOBsuOCjeOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgagNCivjgbXjgovjgYTjgZcs44G+44GZ44G/DQor44Gq44GL44KA44KJLOOBteOBmOOBig0KK+OBquOBi+OBjOOCjyzjgbLjgafjgYoNCivjgarjgYvjgb4s44Gf44Gk44KEDQor44GZ44GM44KP44KJLOOBvuOBmeOBkw0KK+OBvuOBpOOCguOBqCzjgaTjgajjgoANCivjga/jgZfjgoLjgags44KI44GG44Gf44KN44GGDQor44Gq44GL44GkLOOChOOBmeOBi+OBmg0KK+OBleOBqOOBhuOCiizjgYLjgY3jgokNCivjgYTjgY3jgZ8s44KG44GN44Gu44G2DQor44GN44GP44GhLOOBn+OBkeOBlw0KK+OBmeOBqCzjgb7jgZXjgb8NCivjgZfjgbDjgZ8s44Gy44GV44Gu44KKDQor44Gq44GE44Go44GGLOOBk+OBhuOBmA0KK+OCguOCiizjgYvjgZrjgZMNCivjgYTjgajjgYQs44GC44GN44KJDQor44GE44Go44GGLOOBkeOCk+OBmA0KK+OBvuOBpOOBluOBjSzjgb7jgZXjga7jgooNCivjgYbjgYjjga4s44G/44Gk44Gu44KKDQor44GL44Gf44GK44GLLOOBjeOCiOOBi+OBmg0KK+OBsOOCk+OBqeOBhizjgZ/jgaTjgYoNCivjgZXjgYTjgajjgYYs44GY44KF44KT44GYDQor44GE44KP44GELOOBl+OBkuOCiw0KK+OBl+OCguOChOOBvizjgb/jga7jgosNCivjgYLjgYvjgb7jgoss44GK44GV44KADQor44GU44Go44GGLOOBr+OBmOOCgQ0KK+OBvuOBpOOBoCzjgZnjgZnjgoANCivjga3jgYzjgb8s44Go44GX44GKDQor44KE44G+44GX44GfLOOBvuOBleOBiuOBvw0KK+OCiOOBreOChOOBvizjgorjgoXjgYbjgbjjgYQNCivjgYTjgZfjgoTjgb4s44Gy44GV44GKDQor44GC44G544GL44KPLOOCjOOBhOOBmA0KK+OBhOOBvuOCgOOCiSzjgZfjgZLjgosNCivjgYTjgo/jgarjgYws44G/44Gu44KLDQor44GG44GI44GgLOOBj+OBq+OBsuOBkw0KK+OBteOBmOOBi+OCjyzjgobjgY3jgYoNCivjgZ/jgoDjgoks44KI44GX44Gy44GVDQor44GL44GX44GELOOBvuOBleOBqA0KK+OCiOOBreOBoCzjgb7jgZXjgYoNCivjgojjgZPjgaQs44GC44GN44GKDQor44GC44GV44GKLOOChuOBhuOBmA0KK+OBn+OBquOBiyzjgZHjgYTjgZgNCivjgZ/jgarjgYss44Gf44Gg44G/DQor44KE44GX44GNLOOChOOBmeOChuOBjQ0KK+OBi+OBhOOBjOOBhCzjgZ/jgZHjgZcNCivjgZ3jgYzjgbks44KG44GN44GKDQor44G144KL44GL44KPLOOBkeOCk+OBmA0KK+OBi+OCj+OBhuOBoSzjgobjgYbjgYTjgaENCivjgbXjgZjjgYQs44Gu44KK44KG44GNDQor44GE44GR44Gu44KELOOBn+OBpOOBig0KK+OBiuOBoSzjga7jgorjgYoNCivjgarjgYvjgoLjgags44Gq44GK44Gv44KLDQor44KP44GL44Gw44KE44GXLOOBr+OCjOOBig0KK+OBguOCieOBjSzjgbXjgb/jgYoNCivjgoTjgbks44Gy44Gn44GKDQor44Gf44GL44Gv44GXLOOChOOBmeOBsuOCjQ0KK+OBl+OBsOOBrizjgb/jgaTjgYoNCivjgZ/jgYzjgZfjgoks44Go44GX44GKDQor44GZ44G/44GfLOOBpuOBpOOChA0KK+OBleOBqOOBhizjgZPjgYbjgZjjgo3jgYYNCivjgaHjga4s44GX44GS44GoDQor44KE44G+44GgLOOChOOBmeOBsuOCjQ0KK+OBhOOBjOOCieOBlyzjga7jgorjgojjgZcNCivjgYTjgZHjgYzjgb8s44GR44KT44GE44GhDQor44G144Gq44GgLOOBn+OBi+OChuOBjQ0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgojjgZcNCivjgavjgZfjgoTjgb4s44Gy44KN44GXDQor44GE44GX44Gv44KJLOOBqOOBl+OBn+OBiw0KK+OBmeOBmuOBjSzjgZ/jgYTjgaENCivjgZPjgoLjgorjgoQs44GL44Ga44GKDQor44Gh44KF44GG44GULOOBsuOCjeOBlw0KK+OBk+OBsOOChOOBlyzjgYrjgZXjgoANCivjgb/jgoTjgoLjgags44Gk44Go44KADQor44Gq44GL44GfLOOBn+OBi+OChuOBjQ0KK+OBhOOCiuOBn+OBqyzjgZ/jgY/jgYoNCivjgYrjgYzjgo8s44KG44GN44GhDQor44GK44GtLOOBkeOCk+OBmA0KK+OBk+OBvuOBpCzjgb7jgZXjgYLjgY0NCivjgb/jga7jgo8s44Gy44KN44GXDQor44G144GY44GL44KPLOOBquOBiuOBqA0KK+OBi+OCj+OBkOOBoSzjgoTjgZnjgbLjgo0NCivjgaHjgbAs44Go44GX44Gy44GTDQor44Gq44GL44Gr44GXLOOBleOBoOOBig0KK+OBleOBj+OBvizjgbLjgajjgZcNCivjgZ/jgZHjgb7jgZUs44Go44GX44KG44GNDQor44Gb44GNLOOCiOOBhuOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgbXjgb/jgYoNCivjgbXjgZjjgoLjgags44KE44GZ44GKDQor44GK44GQ44KKLOOBn+OBpOOBmA0KK+OBhOOBl+OBsOOBlyzjgY3jgojjgZcNCivjgYLjgZbjgb8s44GX44GS44KLDQor44GK44GM44GV44KP44KJLOOBquOBiuOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgZcNCivjgZ/jgarjgbks44GR44KT44GYDQor44KC44KK44KE44G+LOOBl+OCheOBhuOBuOOBhA0KK+OBjeOBn+OBluOCjyzjgbLjgafjgajjgZcNCivjgYvjgarjgZbjgo8s44GL44Gk44GKDQor44Gv44KJ44GgLOOBvuOBleOBqA0KK+OBiuOBj+OChOOBvizjgZXjgajjgZcNCivjgZfjgb/jgZos44Gb44GE44GYDQor44GE44Gu44G+44GfLOOChuOBjeOBig0KK+OBteOCi+OBleOCjyzjgZvjgYTjgY0NCivjgZ/jgZHjgYbjgaEs44GX44KN44GGDQor44GK44GK44GuLOOBpOOBqOOCgA0KK+OCguOCjeOBiuOBiyzjgZHjgpPjgZgNCivjgZfjga7jgZbjgY0s44G144G/44GC44GNDQor44Gu44GQ44GhLOOBl+OBkuOBguOBjQ0KK+OBl+OBvuOBoCzjgZPjgYbjgZgNCivjgYvjgo/jgZXjgY0s44KG44Gf44GLDQor44GK44GK44GL44KPLOOBvuOBk+OBqA0KK+OBleOCgeOBl+OBvizjgb7jgZXjgbLjgo0NCivjgbvjgZ3jgZjjgb4s44GL44Ga44Gy44GTDQor44KP44Gf44Gq44G5LOOBqOOBv+OBig0KK+OBi+OCj+OBquOBvyzjgb7jgZXjgYLjgY0NCivjgY/jgZXjga4s44GR44GE44GV44GPDQor44Gk44Gh44GfLOOBqOOCguOBguOBjQ0KK+OBiuOBiuOBr+OBlyzjgZPjgYbjgZgNCivjga7jgaAs44G/44GN44GKDQor44KP44Gf44Gq44G5LOOBsuOBleOBig0KK+OCiOOBl+OBn+OBkSzjgoTjgZnjgbLjgo0NCivjgbXjgY/jgZfjgb4s44GC44GN44KJDQor44GE44KP44KELOOBn+OBi+OBig0KK+OBleOBi+OCguOBqCzjgoLjgajjga/jgosNCivjgY/jgbzjgZ8s44GX44KH44GG44GYDQor44GE44Gd44KE44G+LOOBk+OBhuOBhOOBoQ0KK+OBiuOBiuOBrizjgb/jgaTjgYLjgY0NCivjgYLjgbks44Gf44Gk44GKDQor44GK44Gg44KP44KJLOOBv+OBoeOBig0KK+OBjeOBhuOBoSzjgZHjgpPjgZgNCivjgYTjgZfjgYvjgo8s44Go44GX44G144G/DQor44KI44GX44GgLOOBn+OBpOOBig0KK+OBoeOCg+OBsOOBn+OBkSzjgb7jgZXjgbXjgb8NCivjgZXjgYvjgYQs44KI44GX44GKDQor44GK44GK44GfLOOCiOOBhuOBmA0KK+OBquOBi+OBrizjgb7jgZXjgb8NCivjga/jgaAs44Gf44GL44GXDQor44Gq44GL44KE44G+LOOBmOOCheOCk+OBmA0KK+OBleOBi+OBkOOBoSzjgZHjgpPjgZgNCivjgarjgYzjgZfjgb4s44KE44GZ44GKDQor44GV44GM44KJLOOBqOOBl+OBsuOCjQ0KK+OBi+OCj+OBrizjgZ/jgaDjgojjgZcNCivjgYvjga3jgZMs44GE44GV44GKDQor44Gq44GL44GgLOOBv+OBpOOCiw0KK+OBguOBvuOBrizjgZ/jgYvjgZcNCivjgoTjgZbjgY0s44GX44KF44GG44GYDQor44Gy44KJ44GO44GuLOOBi+OBmuOBig0KK+OBn+OBsOOBnyzjgYTjgaHjgYoNCivjgY/jgavjgobjgY0s44KE44GZ44Gy44KNDQor44GK44GP44GG44GhLOOBsuOCjeOBruOCig0KK+OBmeOBjuOCguOBqCzjgbLjgafjgZgNCivjgarjgYvjgoDjgoks44KK44KH44GG44GYDQor44GZ44GO44GV44GNLOOCj+OBn+OCiw0KK+OChOOBvuOBl+OBnyzjgZ/jgYvjgabjgosNCivjga7jgoDjgoks44GL44Ga44G/DQor44GX44G+44GgLOOBv+OBpOOCiw0KK+OBteOBj+OBoCzjgYvjgZrjga7jgooNCivjgZXjgajjgYYs44Gy44Gn44GKDQor44GK44GP44G844KKLOOBsuOCjeOBlw0KK+OCiOOBk+OBi+OCjyzjgb7jgZXjgb8NCivjgafjgpPjgaAs44GN44KI44GXDQor44G144GP44Gq44GMLOOBmeOBmeOCgA0KK+OBn+OBi+OBl+OBvizjgb/jgaTjgY4NCivjgYvjgajjgYYs44Gm44Gk44GKDQor44GE44GX44GQ44KNLOOBguOBjeOBruOCig0KK+OBhOOBkeOBuSzjgY/jgavjgobjgY0NCivjgYrjgYrjgaTjgYss44GZ44GZ44KADQor44GX44G/44GaLOOCiOOBl+OBruOCig0KK+OBmeOBmuOBjSzjgZ/jgYvjgYoNCivjgaTjgoQs44G+44GT44GoDQor44GG44Gh44GgLOOBvuOBleOBn+OBiw0KK+OBiuOBoSzjgZHjgpPjgYTjgaENCivjgYLjgorjgYws44Gf44GR44GXDQor44Gq44GL44GX44G+LOOBi+OBpOOBmA0KK+OBvuOBleOBjSzjgb7jgaTjgb8NCivjgarjgYvjgZfjgb4s44G+44GV44GKDQor44GC44GV44Gv44KJLOOBvuOBleOCiOOBlw0KK+OBlOOBqOOBhizjgbLjgZXjgYoNCivjgYbjgYjjgb7jgaQs44Gy44KN44GXDQor44GV44GN44KC44KKLOOCiOOBl+OBguOBjQ0KK+OCiOOBl+OBoCzjgaTjgajjgoANCivjgbXjgZjjgZ8s44KE44GZ44KI44GXDQor44KE44GO44GX44GfLOOBqOOBl+OBig0KK+OCgOOCjeOBteOBlyzjgb7jgZXjgbLjgo0NCivjgYvjgoHjgaAs44GI44GE44GE44GhDQor44GE44GL44KPLOOBsuOCjeOBn+OBoA0KK+OChOOBvuOBluOBjSzjgbLjgo3jgZcNCivjgaTjgovjga/jgZcs44G+44GT44GoDQor44G/44Gu44GX44G+LOOBruOCiuOBig0KK+OBjeOBl+OCguOBqCzjgb7jgZPjgagNCivjgZ/jgZHjgZfjgZ8s44G+44GV44GXDQor44Gq44GL44GfLOOBl+OCk+OBhOOBoQ0KK+OBiOOCk+OBqSzjgY3jgojjgZcNCivjgoLjgorjgoQs44GR44GE44KB44GEDQor44GP44G844GfLOOBmeOBv+OBig0KK+OBquOBiuOBr+OCiSzjgbLjgo3jgZcNCivjgY/jgZIs44GR44KT44GYDQor44GL44GV44GuLOOBvuOBleOBr+OCiw0KK+OBhOOBhOOCgOOCiSzjgZ/jgYvjgZcNCivjgYrjgYrjgZ8s44G+44GV44KG44GNDQor44Gf44GR44GTLOOBsuOCjeOBteOBvw0KK+OCgOOCieOBk+OBlyzjgajjgZfjgYoNCivjgojjgZfjgaAs44GR44KT44GYDQor44GC44GV44GuLOOCiOOBl+OBguOBjQ0KK+OCiOOBl+OBoCzjgb7jgZXjgajjgZcNCivjga/jgoTjgZcs44Gm44Gk44KN44GGDQor44GZ44Ga44GNLOOBn+OBpOOChA0KK+OBiuOBoCzjgorjgofjgYbjgYTjgaENCivjgoTjgb7jgYbjgaEs44GN44KI44GXDQor44GL44KP44GL44G/LOOBpOOBreOBig0KK+OBhuOBmeOBoCzjgZPjgYbjgZgNCivjgZXjgajjgYYs44GX44KT44GE44GhDQor44GP44KJ44GX44G+LOOBl+OCk+OBmA0KK+OBvuOBmyzjga7jgbzjgosNCivjgZPjgpPjga4s44Gy44KN44GXDQor44G+44Gk44GW44KPLOOBguOBjeOCiQ0KK+OBl+OBvuOBoCzjgZfjgoXjgYbjgYTjgaENCivjgoTjgb7jgoLjgags44KI44GX44Gu44KKDQor44GK44GK44GP44G8LOOBkeOCk+OBmA0KK+OBiuOBkOOCiSzjgYvjgZrjga7jgooNCivjgZXjgY/jgb4s44GI44GE44GYDQor44Gu44GQ44GhLOOBsuOCjeOBruOCig0KK+OBsuOBquOBnyzjgZPjgYbjgYTjgaENCivjgbXjgZjjgYQs44GX44KF44KT44GE44GhDQor44GZ44GO44KC44GoLOOBvuOBleOBlw0KK+OBpOOBi+OBr+OCiSzjgZTjgo3jgYYNCivjgb/jgaTjgarjgYws44G+44GV44GC44GNDQor44Gq44GL44KA44KJLOOBvuOBleOCiOOBlw0KK+OChOOBmOOBvizjgZ/jgZHjgZcNCivjgYvjgb/jgZ8s44GZ44GZ44KADQor44Gy44GMLOOBmOOCheOCk+OBjQ0KK+OBv+OBquOBjOOCjyzjgojjgZfjgabjgosNCivjgajjgb8s44Gf44GL44GKDQor44GV44GL44GN44Gw44KJLOOBsuOCjeOBlw0KK+OBi+OBj+OBnyzjgYLjgY3jgbLjgo0NCivjgaTjgaHjgoQs44Gy44Gn44KG44GNDQor44KA44KJ44GfLOOBkeOCkw0KK+OBn+OBquOBuSzjgYLjgY3jgokNCivjgZfjgoLjgaAs44KI44GX44Gu44KKDQor44Gk44GL44KC44GoLOOBj+OCieOBmA0KK+OBr+OBquOBr+OBnyzjgbLjgafjgYoNCivjgYvjgpPjgaAs44GX44KT44GYDQor44GL44KP44GgLOOChuOBjeOBig0KK+OCiOOBl+OBhCzjgaTjga3jgYoNCivjgY/jgonjgoQs44GN44G444GEDQor44Gm44KJ44GX44G+LOOBsuOBp+OChuOBjQ0KK+OBjeOBn+OBjOOCjyzjgojjgZfjgYoNCivjgYTjgacs44Go44GX44Gy44KNDQor44Gk44KLLOOBsuOBleOBig0KK+OBhuOBpOOBruOBv+OChCzjgajjgZfjgYvjgZoNCivjgarjgYvjgZbjgo8s44G+44GV44Gy44GoDQor44Gy44GgLOOCiOOBl+OBruOBtg0KK+OBu+OBneOBi+OCjyzjgbLjgafjgZgNCivjgaHjgZDjgZUs44Gb44GE44GYDQor44Gd44GG44KELOOBsuOCjeOBvw0KK+OChOOBvuOBkOOBoSzjgZPjgYbjgbjjgYQNCivjgZXjgYvjgaYs44G144G/44GKDQor44GC44KP44GfLOOBl+OBkuOCiw0KK+OCj+OBi+OBsOOChOOBlyzjgYvjgZrjgbLjgZMNCivjgYjjgpPjgZjjgoXjgYbjgZgs44G+44GT44GoDQor44Gu44GQ44GhLOOBk+OBhuOBhOOBoQ0KK+OBi+OCj+OCgOOCiSzjgb7jgZXjgYoNCivjgoLjgorjgoLjgags44G/44GN44GKDQor44KI44Gt44Gv44GqLOOBn+OBoOOBsuOCjQ0KK+OBmOOBoCzjgYLjgY3jgYoNCivjgYbjgYjjgaAs44GR44KT44GYDQor44GX44Gu44Gv44KJLOOBhOOBleOCgA0KK+OBn+OBi+OChOOBvizjgb7jgZXjgYvjgZoNCivjgoTjgb7jgoDjgo0s44G+44GV44Gu44G2DQor44KP44GNLOOBmOOCheOCk+OBkw0KK+OBguOBvuOBrizjgb7jgaTjgYoNCivjgbvjgZ3jgYvjgo8s44Go44GX44GKDQor44Go44GG44GU44GGLOOBsuOCjeOBsuOBlQ0KK+OBquOBiyzjgajjgb/jgYoNCivjga7jgaAs44Gf44GL44Gu44KKDQor44KE44G+44GX44GfLOOBoeOBiOOBkw0KK+OBquOBi+OBmOOBvizjgbLjgo3jgZcNCivjgarjgYzjgYrjgYss44GT44GG44GYDQor44GX44G244KELOOCiOOBl+OBi+OBmg0KK+OBm+OCiuOBluOCjyzjgZPjgYbjgZ7jgYYNCivjgbXjgZjjgoLjgoos44Gb44GE44GYDQor44G144GP44GgLOOBn+OBpOOBsuOCjQ0KK+OBteOBmOOBnyzjgZ/jgYvjgbLjgZUNCivjgoTjgb7jgZgs44Gy44Gn44GC44GNDQor44GT44Gw44KE44GXLOOBhOOBmuOBvw0KK+OBk+OBsOOChOOBlyzjgY3jgojjgZcNCivjgZfjgZfjgY/jgoks44KI44GX44GC44GNDQor44GT44GQ44KMLOOBvuOBleOBr+OCiw0KK+OCguOCiizjgojjgYbjgYTjgaENCivjgarjgYvjgoDjgoks44Gu44KK44Gf44GLDQor44GE44GE44GY44G+LOOBruOCiuOChuOBjQ0KK+OBjeOBn+OBjOOCjyzjgojjgZfjgabjgosNCivjgZ/jgoDjgoks44Gf44Gg44KI44GXDQor44Gq44GM44GX44G+LOOChOOBmeOBiA0KK+OBiOOBruOBjSzjgYTjgZrjgb8NCivjgZXjgajjgYYs44KI44GX44Gu44G2DQor44G+44Gk44KC44GoLOOCiOOBl+OBig0KK+OBhuOBiOOBoCzjgbLjgo3jgYoNCivjgb/jgZrjgZ/jgass44GC44GN44KJDQor44GC44GL44GXLOOBn+OBpOOBig0KK+OBquOBi+OCguOBqCzjgYrjgZXjgoANCivjgarjgYvjgoTjgb4s44Gy44KN44Gu44G2DQor44G144GY44GELOOChOOBmeOBsuOCjQ0KK+OBquOBi+OChOOBvizjgZfjgofjgYbjgYTjgaENCivjgojjga3jgb/jgaQs44Gm44Gk44GKDQor44Gf44GL44GbLOOBqOOBl+OBig0KK+OCj+OBn+OBquOBuSzjgbLjgajjgZcNCivjgbXjgYvjgZbjgo8s44Go44GX44Gu44G2DQor44GL44GS44GG44KJLOOBvuOBleOBvw0KK+OBl+OCk+OBqeOBhizjgYvjgaTjgZgNCivjgZfjgb/jgZos44Gf44Gk44G/DQor44GV44GL44GX44GfLOOCiOOBl+OBrg0KK+OBv+OChOOCgOOCiSzjgajjgYrjgosNCivjgZ/jgarjgYss44G+44GV44Go44GXDQor44Gf44GL44GE44GXLOOBmeOBmeOCgA0KK+OBhOOBl+OBjOOBjSzjgZHjgpPjgZgNCivjgZ/jgYvjgaAs44KI44GX44GL44GaDQor44Gf44Gm44GE44GXLOOBi+OBmuOBquOBiw0KK+OBleOBi+OBnyzjgbLjgafjgYoNCivjgojjgZPjga/jgZ8s44Go44GX44Gy44GTDQor44GP44KELOOBn+OCguOBpA0KK+OCiOOBl+OBoCzjgb7jgZXjgbLjgacNCivjgY3jgZ/jgaAs44Gv44KL44GKDQor44KI44GX44GgLOOBl+OCk+OBmOOCjeOBhg0KK+OBk+OBsOOChOOBlyzjgYvjgZrjgb8NCivjgarjgorjgZ8s44G/44Gk44KI44GXDQor44GE44Gs44GELOOBvuOBleOCiOOBlw0KK+OChOOBmeOBi+OCjyzjgbXjgb/jgYoNCivjga7jgZDjgaEs44GZ44Gq44GKDQor44GX44KH44GG44GgLOOBhOOBoeOBnuOBhg0KK+OChOOBvuOBoCzjgabjgovjgbLjgZUNCivjgo/jgY/jgaAs44Gk44Go44KADQor44GC44G5LOOBleOBoOOBsuOCjQ0KK+OBn+OBkeOBi+OCjyzjgZ/jgYvjgYoNCivjgZXjgajjgYYs44Gy44Gn44GNDQor44Gv44Gq44GK44GLLOOCiOOBl+OBig0KK+OBiuOBiuOBrizjgbLjgafjgYoNCivjgZ/jgarjgYss44GR44KT44Ge44GGDQor44Gk44Gu44GgLOOBguOBjeOBig0KK+OBquOBvuOBiCzjgZHjgpPjgZgNCivjgZ/jgYvjga/jgZcs44Gf44Gg44Gy44GVDQor44Gq44GL44GY44G+LOOBl+OBkuOCiw0KK+OBquOBi+OCgOOCiSzjgY3jgb/jgZMNCivjgYbjgorjgYYs44Gv44KL44Gf44GRDQor44G144GY44GE44KPLOOBteOBv+OBsuOBkw0KK+OBleOBleOBjSzjgZ/jgYvjgZcNCivjgY3jgoDjgoks44KG44Gf44GLDQor44Gf44GL44GOLOOBl+OCheOBhuOBhOOBoQ0KK+OBi+OBn+OChOOBvizjgbLjgo3jgagNCivjgYTjgZDjgaEs44GK44GV44KADQor44GC44G5LOOBpuOCi+OBig0KK+OBmeOBmuOBjSzjgZ/jgYvjgbLjgo0NCivjgbLjgoks44GL44Ga44Gy44KNDQor44Gq44GU44GXLOOBsuOBp+OBguOBjQ0KK+OBguOBoOOBoSzjgZHjgpPjgZgNCivjgoDjgonjgoTjgb4s44G+44KC44KLDQor44GP44Gr44GL44GfLOOBmeOBmeOCgA0KK+OBvuOBpOOBhCzjgb7jgZPjgagNCivjgZPjgYTjgacs44G/44Gk44GKDQor44Gy44KN44GfLOOBsuOCjeOChOOBmQ0KK+OBqOOBv+OBquOBiyzjgojjgZfjgYoNCivjgo/jgY3jgZ8s44G144GY44GKDQor44GG44KB44KA44KJLOOBl+OCh+OBhuOBmA0KK+OBteOBkSzjgojjgYbjgYTjgaENCivjgYbjgYjjgb7jgaQs44GL44Gk44G/DQor44G+44Gk44GW44GNLOOChOOBmeOBsuOCjQ0KK+OBquOBi+OBrizjgaTjgoLjgosNCivjgZPjgaDjgYss44Gf44GR44GKDQor44Gy44KN44Gf44GrLOOBkeOCk+OBmA0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgYTjgaENCivjgZXjga4s44GY44KF44KT44GE44Gh44KNDQor44GX44G/44GaLOOCiOOBl+OBi+OBmg0KK+OBi+OCk+OBluOBjSzjgabjgovjgojjgZcNCivjgYrjgYrjgZXjgY8s44GL44Ga44GKDQor44KP44GX44GgLOOBvuOBleOBsuOBpw0KK+OBj+OBq+OCguOBqCzjgoTjgZnjgb7jgZUNCivjgZfjgo3jgYvjgo8s44G+44GT44GoDQor44GL44KP44Gv44KJLOOBkeOCk+OBhOOBoQ0KK+OBiuOBiyzjgaTjga3jgYvjgZoNCivjgZPjgoLjgoos44KI44GX44GC44GNDQor44Gv44KE44GXLOOBl+OBkuOBguOBjQ0KK+OBi+OBreOBkyzjgYTjgY/jgYoNCivjgYvjganjgYTjgZEs44Gq44GK44G/44GhDQor44GK44GL44KA44KJLOOBmOOCheOCk+OBhOOBoQ0KK+OBiuOBi+OCgOOCjSzjgZjjgoXjgpPjgYTjgaHjgo0NCivjgZ/jgbbjgaEs44Gq44GK44GTDQor44KE44G+44KC44GoLOOBguOBjeOBruOCig0KK+OBiuOBiuOBlSzjgZ/jgYvjgZcNCivjgYTjgorjgYgs44GX44KT44GE44Gh44KN44GGDQor44Gf44GL44GvLOOBi+OBmuOBsuOBkw0KK+OBn+OBhOOCiSzjga/jgovjgYoNCivjgb/jgarjgb8s44KE44GZ44G+44GVDQor44GE44GR44GgLOOBl+OBkuOCiw0KK+OBguOBiuOBjSzjgbXjgb/jgYoNCivjgoTjgb7jgYbjgaEs44GYDQor44KI44GX44Gv44KJLOOBvuOBleOBteOBvw0KK+OBleOBleOBjSzjgYLjgY3jgbLjgagNCivjgb/jgZrjgZ/jgass44Go44GX44GE44GhDQor44Gy44KJ44GuLOOBi+OBpOOChuOBjQ0KK+OBquOBjOOBnyzjgYLjgY3jgokNCivjgYvjgZ/jgoTjgb4s44GR44GEDQor44GK44GgLOOCiuOCh+OBhuOBmA0KK+OBiOOBruOCguOBqCzjgobjgYbjgY0NCivjgZ/jgZHjgarjgYss44GV44GL44GIDQor44G+44Gk44GW44GNLOOBsuOCjeOBlw0KK+OBvuOBpOOBsOOCiSzjgZPjgYbjgZgNCivjgoTjgb7jgZfjgZ8s44Gb44Gk44GTDQor44KB44GQ44KNLOOBsuOCjeOCiOOBlw0KK+OBiuOBluOBjSzjgbLjgafjgobjgY0NCivjgYrjgYrjgYzjgb8s44GT44GG44GE44GhDQor44GK44G+44GILOOBl+OCk+OBhOOBoQ0KK+OBjeOBoCzjgYvjgpPjgZgNCivjgYbjgYjjga4s44GK44GV44KADQor44GK44GL44GgLOOBi+OBpOOChuOBjQ0KK+OBi+OBquOBleOBjSzjgajjgb/jgYoNCivjgoTjgYvjgbks44Gy44KN44KG44GNDQor44Gq44KA44KJLOOChuOBv+OBkw0KK+OBhOOBhOOBmOOBvizjgoLjgajjgYLjgY0NCivjgZXjgZXjgY0s44Gu44G244KG44GNDQor44KC44Gh44Ga44GNLOOCiOOBl+OBruOBtg0KK+OBtuOCk+OChCzjgajjgZfjgYoNCivjgYrjgYvjga4s44KE44GZ44GKDQor44Gf44GR44GG44GhLOOBleOBqOOBlw0KK+OBhuOBiOOBrizjgajjgYrjgosNCivjgbXjgZjjgoLjgags44Gy44Gn44GoDQor44GL44KP44GQ44GhLOOBv+OBpOOBr+OCiw0KK+OBn+OBjeOCguOBqCzjgb7jgZXjga7jgooNCivjgYvjgZ/jgYrjgYss44GX44GS44KLDQor44GP44GV44GL44KPLOOBquOBiuOBjQ0KK+OBguOBleOBhCzjgbLjgajjgZcNCivjgoLjgoos44GI44GE44GE44GhDQor44GP44G8LOOCiOOBl+OBj+OBqw0KK+OBguOCk+OBqeOBhizjgYTjgaHjgo3jgYYNCivjgYbjgonjgoTjgb4s44GK44GV44KADQor44GP44KK44GfLOOCiOOBl+OBig0KK+OBhOOBruOBhuOBiCzjgZ/jgZHjgZcNCivjgYvjga3jgYvjgo8s44Gy44Gn44GKDQor44GG44GI44KC44GoLOOCiuOCh+OBhuOBnuOBhg0KK+OBquOBi+OBiizjgZHjgpPjgYTjgaENCivjgYrjgYvjgoLjgags44Gv44KL44GKDQor44Gr44GX44KA44KJLOOBjeOCiOOBlw0KK+OChOOBoCzjgYvjgZrjgYrjgb8NCivjgY3jgaks44GK44GV44KADQor44GK44GL44Gw44KE44GXLOOBv+OBpOOBsuOCjQ0KK+OBi+OCj+OBl+OBvizjgZjjgoXjgpPjgZ7jgYYNCivjga/jgZfjgY0s44Gf44GL44G/44GhDQor44G/44KE44KC44GoLOOBhOOBoeOCjeOBhg0KK+OBquOBi+OBiizjgZ/jgYvjgbLjgZMNCivjgb7jgaTjgYrjgYss44KG44GN44GKDQor44Gy44Gz44GuLOOBsuOCjeOBvw0KK+OBq+OBl+OBi+OCjyzjgYvjgYrjgosNCivjgYvjgbbjgZ8s44GR44KT44GYDQor44KP44Gf44Gq44G5LOOBjeOCiOOBlw0KK+OChOOBvuOBrizjgZPjgYbjgYTjgaENCivjgZXjgYTjgajjgYYs44GX44GS44G/44GkDQor44GZ44Ga44GNLOOChuOBhuOBmA0KK+OBj+OCj+OBr+OCiSzjgZXjgajjgZcNCivjgoLjgorjgZ8s44Go44GX44Gy44KNDQor44G144GY44GELOOBmeOBv+OCiOOBlw0KK+OBquOBjOOBl+OBvizjgaTjga3jgobjgY0NCivjgYTjgarjgoDjgoks44G+44GV44Gy44KNDQor44GK44GW44KPLOOBsuOBqOOBlw0KK+OBn+OBjeOCguOBqCzjgY/jgavjgYoNCivjgb/jgoTjgZfjgZ8s44Gy44GV44GXDQor44KC44GG44KKLOOBvuOBleOChuOBjQ0KK+OBhOOBruOBhuOBiCzjgb/jgaTjgYoNCivjgarjgYzjga4s44KC44Go44GC44GNDQor44Gv44KJ44GoLOOCiOOBl+OBig0KK+OBvuOBv+OChCzjgajjgZfjgYvjgZoNCivjgbLjgYzjgZfjgbDjgZ8s44Gy44Gn44GKDQor44Gr44GX44Gf44GrLOOBleOBqOOBlw0KK+OBn+OBi+OBjyzjga7jgbbjgobjgY0NCivjga/jgarjgaAs44G/44Gu44KLDQor44GC44GV44GuLOOBv+OBoeOBig0KK+OBsOOBsCzjgbLjgo3jgZcNCivjgYTjgajjgYYs44GX44KT44GN44GhDQor44GE44GE44GgLOOBkeOCk+OBlw0KK+OBk+OBr+OChOOBi+OCjyzjgZ/jgZHjgbLjgZMNCivjgbXjgZjjgo/jgoks44GL44Gk44G/DQor44GX44KF44GP44KKLOOChOOBmeOBsuOBkw0KK+OChuOBn+OBqyzjgZHjgpMNCivjgoDjga3jgYvjgo8s44GE44GP44GTDQor44GL44KT44GuLOOBvuOBleOBsuOCjQ0KK+OBq+OBqCzjgYvjgaTjgb8NCivjgZ/jgoDjgoks44KI44GX44GC44GNDQor44Gq44GL44GX44G+LOOBleOBqOOBlw0KK+OBiuOBiuOBnyzjgaHjgYvjgZMNCivjgYTjga7jgYbjgYgs44KI44GX44GTDQor44GP44G+44G+44KLLOOBkeOCk+OBmA0KK+OBn+OBquOBiyzjgZfjgZLjgosNCivjgb7jgYjjgaAs44G+44GV44GC44GNDQor44GC44G/LOOBruOBtuOBig0KK+OBv+OBquOBqCzjgYLjgY3jgokNCivjgavjgZfjgaAs44GL44Ga44GKDQor44GE44GX44Gv44KJLOOBleOBtuOCjeOBhg0KK+OBquOBi+OBl+OBvizjgajjgZfjgYoNCivjgYTjgY/jgZ8s44KE44GZ44Gy44GVDQor44GK44GNLOOBn+OBoOOBig0KK+OBi+OBjOOCjyzjgZfjgoXjgYbjgYTjgaHjgo3jgYYNCivjgbLjgonjgYvjgo8s44Go44GX44GKDQor44KE44G+44GW44GNLOOBqOOBl+OBruOCig0KK+OBj+OBvuOBjOOBhCzjgZPjgYbjgZjjgo3jgYYNCivjgZ/jgZfjgo0s44G/44Gk44GX44GSDQor44GV44GuLOOBsuOBp+OBvuOBlQ0KK+OBv+OBqeOCiuOBi+OCjyzjgbXjgb/jgbLjgZMNCivjgarjgYvjgoDjgoks44G+44GV44Gu44KKDQor44KI44GX44G/LOOBsuOCjeOBkw0KK+OBhOOBquOBvyzjgbLjgafjgagNCivjgo/jgZ/jgarjgbks44GN44KI44GXDQor44GT44GMLOOBqOOCguOBsuOBpw0KK+OBmeOBjOOCj+OCiSzjgoTjgZnjgbLjgo0NCivjgZ/jgZHjgYbjgaEs44KI44GG44GE44GhDQor44GI44GgLOOCiOOBl+OCjeOBhg0KK+OBguOCk+OBqeOBhizjgbLjgo3jgYoNCivjgZ/jgovjgYQs44KG44Gf44GLDQor44GU44Go44GGLOOBsuOCjeOBlw0KK+OBl+OCguOBjOOBjSzjgZfjgZLjgosNCivjgarjgYzjgZ8s44KG44GN44GKDQor44G744GX44GL44KPLOOBmOOCheOCk+OBhOOBoQ0KK+OBk+OBv+OBquOBvyzjgb7jgZXjgYoNCivjgYvjgYws44KI44GGDQor44Gv44Gc44GL44KPLOOBruOBtuOBig0KK+OBoeOBsCzjgZfjgZrjgYsNCivjgYbjgonjga4s44GV44Go44GXDQor44GT44KT44GuLOOBqOOBl+OBjQ0KK+OBk+OBsOOChOOBlyzjgYvjgZrjgojjgZcNCivjgoLjgoLjgZss44KG44GG44GTDQor44Gk44GSLOOBmOOCheOCk+OBmA0KK+OChOOBmeOBk+OBoSzjgoTjgZnjgZ/jgYsNCivjgbvjgZ3jgZbjgo8s44GX44KH44GG44GE44GhDQor44GZ44GO44KE44G+LOOBi+OBpOOChuOBjQ0KK+OBguOBuSzjgZ/jgZHjgobjgY0NCivjgZ/jgarjgYss44Gu44G244KG44GNDQor44Gb44GE44GRLOOChOOBmeOBsuOCjQ0KK+OBpOOBkizjgb7jgZXjga7jgbYNCivjgo/jgYvjgbDjgoTjgZcs44GC44GN44GKDQor44GK44GK44GP44G8LOOBn+OBi+OBig0KK+OBiuOBi+OBuSzjgbXjgb/jgYoNCivjgYTjgo/jgYQs44Gy44GV44GKDQor44Gf44Gq44GLLOOBpuOCi+OChuOBjQ0KK+OChOOBvuOCguOBqCzjgb/jgaTjgYoNCivjgZ/jgYvjgoTjgb4s44Gq44GK44GNDQor44Gf44GY44G+LOOBsuOBp+OBruOCig0KK+OBi+OBmuOBl+OCjSzjgb7jgZXjga/jgosNCivjgZPjgYTjgacs44Gf44GL44GXDQor44GL44KCLOOBn+OBpOOBruOCig0KK+OBjeOBn+OBmOOBvizjgojjgZfjgobjgY0NCivjga/jgb7jga4s44GX44GS44KLDQor44GE44GE44KE44G+LOOBqOOBl+OChuOBjQ0KK+OChOOBvuOBl+OBnyzjgZfjgofjgYbjgYTjgaENCivjgY3jgZ8s44GX44GS44KG44GNDQor44GE44GX44Gf44GrLOOBleOBqOOBlw0KK+OBj+OBmOOCgSzjgZXjgaDjgYoNCivjgY3jgZfjgYvjgo8s44GL44Ga44GKDQor44Gq44GM44GuLOOBvuOBleOBsuOCjQ0KK+OCiOOCgOOCiSzjgZ/jgaDjga7jgooNCivjgarjgYvjgZfjgb4s44Go44GX44KG44GNDQor44KC44KKLOOBiOOBhOOBmA0KK+OChOOBvuOBmCzjgojjgZfjgYvjgZoNCivjgYrjgZzjgY0s44G+44GV44Gf44GLDQor44GE44Gq44GgLOOChOOBmeOBlw0KK+OBr+OChOOBmyzjgZ/jgYvjgZcNCivjgbvjgpPjgb0s44GZ44GZ44KADQor44GK44GK44KELOOBi+OCk+OBmA0KK+OBjeOBn+OCgOOCiSzjgZ/jgYvjgZcNCivjgajjgZfjgpMs44GV44Go44KLDQor44Gf44GR44GELOOChOOBmeOBteOBvw0KK+OBiuOBi+OChOOBvizjga7jgbbjgYoNCivjgYTjgZfjgZrjgYss44GT44GG44Gf44KN44GGDQor44Gv44GfLOOBqOOBl+OBguOBjQ0KK+OBmeOBjOOBr+OCiSzjgobjgYbjgZgNCivjgYTjgo/jgb8s44KE44GZ44GKDQor44KG44KC44GoLOOBsuOBp+OBig0KK+OBjeOBn+OBjOOCjyzjgobjgZ/jgYsNCivjgYTjga/jgoks44KG44GG44Ge44GGDQor44Gu44KA44KJLOOBhOOBoeOCjeOBhg0KK+OBv+OChOOBleOBiyzjgZHjgpPjgZgNCivjgojjgZfjgaAs44Go44KC44KI44GXDQor44G144GL44GgLOOBn+OBi+OBlw0KK+OBteOBmOOCj+OCiSzjgYvjgZrjgb/jgaQNCivjgY3jgags44Go44GX44GC44GNDQor44GG44GI44KC44KKLOOBhOOBleOBig0KK+OChOOBvuOBi+OCjyzjgb7jgZXjgb8NCivjgY/jgo3jgaAs44G/44Gh44KNDQor44GK44GK44Gk44GLLOOBsuOCjeOBlw0KK+OBhuOBiOOBoCzjgobjgYbjgZgNCivjgZ3jga4s44G/44GN44GKDQor44Gg44GELOOBqOOCguOBv+OBoQ0KK+OBl+OCk+OBnuOBhizjgbLjgo3jgYvjgZoNCivjgYbjgYjjgaAs44KG44Gf44GLDQor44KP44GL44G/44KELOOBi+OBmuOBvw0KK+OBi+OCgOOCiSzjgbXjgb/jgaTjgZANCivjgbXjgovjgZ/jgass44Gf44GL44G+44GVDQor44GL44Gk44GG44KJLOOBi+OBpOOBvw0KK+OBj+OBvuOBhCzjgZvjgYTjgZgNCivjgbDjgbAs44Gv44KL44Gk44GQDQor44GL44Gt44Go44KCLOOBn+OBpOOBvw0KK+OCgOOCieOBr+OBlyzjgajjgYrjgosNCivjganjgYQs44Gf44GL44GXDQor44Gq44G/44GL44KPLOOBl+OBkuOBr+OCiw0KK+OBn+OBi+OBiuOBiyzjgZHjgpPjgZgNCivjgb7jgaTjgoLjgags44KK44KF44GG44GE44Gh44KN44GGDQor44KP44Gf44Gq44G5LOOCiOOBng0KK+OBn+OBoCzjgb7jgZXjgbLjgo0NCivjgYLjgorjgb4s44KI44GX44Gm44KLDQor44Gq44GM44GuLOOBqOOBl+OBruOCig0KK+OChOOBrizjgabjgovjgobjgY0NCivjgYTjgZXjgYss44KG44GN44Gy44KNDQor44GE44Go44GGLOOBqOOBj+OBhOOBoQ0KK+OChOOBvuOBluOBjSzjgZnjgb/jgYoNCivjgY/jga4s44GL44Ga44GKDQor44GX44GwLOOBkeOCk+OBmA0KK+OBjeOCgOOCiSzjgYLjgY3jgokNCivjgZnjgb/jgaAs44GL44Ga44GKDQor44KC44Go44GM44GE44GoLOOBsuOCjeOBi+OBmg0KK+OBq+OCjyzjgZfjgZLjgZMNCivjgZ/jgZHjgYbjgaEs44KG44GG44GYDQor44Gf44KA44KJLOOBi+OBmuOCiOOBlw0KK+OBvOOBhuOBnyzjgZHjgYTjgZnjgZENCivjgYvjganjgoQs44KG44GG44GUDQor44Gv44KJ44GgLOOCiOOBl+OBruOBtg0KK+OBv+OBpOOBhOOBlyzjgbLjgo3jgZcNCivjgYTjga7jgYbjgYgs44GR44GE44GZ44GRDQor44KA44KJ44Gv44GXLOOBvuOBk+OBqA0KK+OBq+OBl+OBi+OCjyzjgZfjgpPjgYTjgaENCivjgb7jgZnjgaAs44GT44GG44GYDQor44GK44GK44GfLOOBj+OBq+OBig0KK+OBteOBj+OBhCzjgb7jgZXjgYoNCivjgYvjgZLjgoTjgb4s44GR44KT44GYDQor44Gq44GM44Gk44GLLOOBn+OBoOOChuOBjQ0KK+OBj+OBleOBrizjgZfjgZLjgYoNCivjgZPjgZjjgb4s44Gy44KN44KG44GNDQor44GP44KJ44GfLOOBn+OBoOOBlw0KK+OBn+OBkeOBhuOBoSzjgZHjgpPjgYTjgaHjgo0NCivjgYTjgZHjgaAs44GC44Gk44GKDQor44Gf44GL44GuLOOChuOBn+OBiw0KK+OBj+OCieOChCzjgZfjgpPjgYTjgaENCivjgYrjga4s44Gk44Go44KADQor44Gq44GL44GgLOOBmOOCheOCk+OBnuOBhg0KK+OBqOOBj+OCguOBqCzjgZ/jgYvjgYLjgY0NCivjgYrjgYrjga/jgZcs44Go44GX44G144G/DQor44KE44G+44GgLOOBguOBjeOCiQ0KK+OBr+OCk+OBoCzjgabjgaTjgYoNCivjgYTjgZfjga/jgoks44Gb44GE44GYDQor44KI44GX44Gv44KJLOOBleOBqOOBlw0KK+OBn+OBpuOBhOOBlyzjgajjgZfjgbLjgZMNCivjgYTjgajjgYYs44GX44G144G/DQor44GV44Go44GGLOOBn+OBi+OBig0KK+OBiuOBiuOBj+OCiSzjgZfjgofjgYbjgZjjgo3jgYYNCivjgarjgYvjgZnjgZgs44KI44GG44GE44GhDQor44Gf44GE44KJLOOBsuOCjeOBlw0KK+OBjeOBsuOCiSzjga/jgovjgbLjgZMNCivjgarjgYvjgZjjgb4s44Gy44Gn44Gk44GtDQor44KE44G+44GW44GNLOOBqOOBjeOBig0KK+OBqOOBs+OBnyzjgYLjgY3jgokNCivjgarjgYvjgZbjgo8s44Gv44KL44GKDQor44Gr44GX44Gv44KJLOOBi+OBmuOBig0KK+OCgeOBkOOCjSzjgZjjgoXjgpPjgZgNCivjgb7jgovjgoTjgb4s44GT44GG44Ge44GGDQor44GN44GP44GhLOOBsuOBleOBruOCig0KK+OBguOBiuOBjSzjgojjgZfjgb8NCivjgY3jgaPjgZ/jgYss44Gf44G/44GKDQor44KE44GZ44GELOOChuOBjeOBkw0KK+OBhOOBoeOBvuOCiyzjgojjgZfjgYLjgY0NCivjgoTjgb7jgZbjgY0s44Go44GX44KG44GNDQor44GZ44GM44Gv44KJLOOBmOOCheOCk+OBhOOBoQ0KK+OBqOOBv+OBquOBjCzjgojjgZfjgbLjgZMNCivjgaHjgY7jgoos44GI44GE44GY44KN44GGDQor44GK44GK44GwLOOChuOCiuOBkw0KK+OBvuOBpOOBhCzjgbXjgY/jgb8NCivjgbLjgonjgoTjgb4s44G+44GV44Gy44KNDQor44KE44G+44KA44KJLOOBv+OBpOOBruOBtg0KK+OBiuOBiuOBpyzjgb7jgZXjgb8NCivjgojjgZfjgarjgYws44Gh44GL44GIDQor44GT44GY44G+LOOBn+OBkeOBruOCig0KK+OBqOOBv+OBquOBjCzjgaHjgYjjgZMNCivjgZXjgYws44Gm44Gk44KEDQor44Gv44KJLOOChuOBhuOBmOOCjeOBhg0KK+OBqOOBv+OCiOOBlyzjgZ/jgYvjgZcNCivjgojjgZfjgaAs44Gd44Gu44GIDQor44Gy44KJ44Gw44KE44GXLOOBsuOCjeOBi+OBmg0KK+OBvuOBpOOBqSzjgbLjgafjgYoNCivjgYTjgb7jgbXjgY8s44KG44GG44GXDQor44GN44KI44GbLOOBl+OCk+OChA0KK+OBr+OBquOBtuOBlSzjgZnjgZnjgoANCivjgaHjgbAs44Go44GX44Gu44KKDQor44KE44G+44GW44GNLOOCiuOCheOBhuOBmA0KK+OBquOBi+OBr+OCiSzjgZHjgpPjgZgNCivjgYrjga4s44GT44GG44G444GEDQor44GG44GI44G+44GkLOOBi+OCiOOBkw0KK+OBguOBjeOChOOBvizjgb7jgZXjgYLjgY0NCivjgajjgZ/jgass44KI44GG44GE44GhDQor44KI44Gt44GgLOOBvuOBleOBsuOCjQ0KK+OBteOCi+OBj+OBlSzjgZXjgYvjgYgNCivjgbLjgo3jgoQs44Gu44KK44Gy44KNDQor44KI44GX44GgLOOBl+OCk+OBleOBjw0KK+OBi+OBreOBkyzjgZfjgZLjgosNCivjgarjgYzjgZ8s44G+44GV44Gv44KLDQor44GE44G5LOOBl+OCk+OBmA0KK+OBm+OBjeOBrSzjgb7jgZXjgobjgY0NCivjgYrjgYvjgaAs44G+44GV44Gv44KLDQor44GL44Gq44GELOOBi+OCk+OBm+OBhA0KK+OBleOBqOOBhizjgbLjgajjgZcNCivjgZXjgYvjgY3jgbDjgoks44KI44GX44GKDQor44GE44G+44GELOOBv+OBr+OCiw0KK+OBsuOCgeOBmCzjgZfjgpPjgZ7jgYYNCivjgYrjgY7jga/jgoks44G+44GV44KI44GXDQor44Gf44GR44KA44KJLOOBn+OBi+OBruOCig0KK+OBqOOBiuOChOOBvizjgZ/jgYvjgZcNCivjgY3jgZ/jga/jgoks44Gf44GL44Gy44GVDQor44GK44GK44GV44GLLOOBi+OBpOOBsuOBkw0KK+OBiuOBiuOBk+OBhuOBoSzjgYvjgZrjgb7jgZUNCivjgZ/jgYvjgYos44Gu44KK44GTDQor44GG44GpLOOBqOOBl+OCjeOBhg0KK+OBhuOBrizjgY3jgpPjgZQNCivjgbXjgZjjgY0s44Gy44KN44G/DQor44GV44Go44GGLOOBqOOBl+OBig0KK+OBhOOBneOBjOOBhCzjgb7jgZXjgb8NCivjgYvjgonjgZXjgY0s44KI44GX44GKDQor44KE44G+44GgLOOBn+OCguOBpA0KK+OCj+OBoCzjgYjjgaTjgYoNCivjgZfjgbDjgZ8s44Go44GX44GKDQor44GX44GK44GW44GNLOOBn+OBpOOBig0KK+OBl+OBjCzjgb/jgaTjga7jgbYNCivjgY/jgorjgZ8s44G/44Gh44GKDQor44Gv44GX44KC44GoLOOCiOOBl+OCjeOBhg0KK+OCiOOBl+OCgOOCiSzjgZ/jgYvjgZcNCivjgb/jgoTjgZbjgY0s44Gy44KN44Gu44KKDQor44GN44Gf44GM44KPLOOBjeOBr+OBoeOCjeOBhg0KK+OBiuOBoOOBkSzjgaHjgYvjgokNCivjgZnjgZrjgY0s44GC44GN44KJDQor44KE44G+44GE44GXLOOBjeOCiOOBguOBjQ0KK+OBiuOBnOOBjSzjgbLjgo3jgZcNCivjgZ/jgYvjgYQs44GV44Go44G/DQor44GL44Gt44GTLOOBkeOCk+OBmA0KK+OBr+OCieOBoCzjgbLjgafjgobjgY0NCivjgZfjgb7jgaAs44GR44KT44GV44GPDQor44KE44Gq44GOLOOBn+OBkeOBig0KK+OBmeOBmuOBjSzjgZ/jgYvjgbLjgagNCivjgZ/jgYvjga/jgZcs44KE44GZ44GKDQor44GK44GQ44KK44KE44G+LOOBqOOBiuOCiw0KK+OCj+OBn+OBquOBuSzjga7jgbbjgobjgY0NCivjgoTjgb7jgoDjgoks44GR44KT44GYDQor44Gf44GL44Gv44GXLOOBn+OBoOOBsuOBpw0KK+OBl+OBiuOBmOOBvizjgYvjgYrjgosNCivjgaTjgovjgYrjgYss44Go44GK44KLDQor44GE44Go44GGLOOBqOOBl+OBv+OBoQ0KK+OBvuOBpOOBhuOCiSzjgZvjgYTjgY0NCivjgoTjgb7jgoLjgags44Gf44GL44GKDQor44GP44G+44G/LOOChuOBhuOBnuOBhg0KK+OBkeOCk+OCiOOBlyzjgZ/jgYvjgZcNCivjgoTjgb7jgYvjgZIs44KI44GX44GC44GNDQor44GU44Go44GGLOOBsuOCjeOBig0KK+OBn+OBkeOBhuOBoSzjgb7jgZXjgajjgZcNCivjga/jgoTjgZcs44GL44Ga44KG44GNDQor44GE44GX44Gw44GXLOOBqOOBl+OChuOBjQ0KK+OBhOOBqizjgorjgofjgYYNCivjgYTjga7jgYbjgYgs44Gf44GL44KG44GNDQor44Gr44GX44GL44KPLOOBsuOBp+OBig0KK+OBr+OCk+OBoCzjgY3jgojjgZgNCivjgZ/jgabjgbDjgoTjgZcs44GL44Ga44KI44GXDQor44GK44GX44G+LOOBj+OBq+OBsuOBkw0KK+OBl+OBsOOBnyzjga/jgovjgY0NCivjgb/jgYbjgoks44GC44Gk44GXDQor44GT44GL44GULOOBi+OBmuOBruOCig0KK+OBhOOBhOOBoCzjgobjgZ/jgYsNCivjgZ/jgZHjgZnjgYgs44GL44Ga44G/DQor44GE44GM44KJ44GXLOOBpuOBpOOChA0KK+OBvuOBmeOChOOBvizjgojjgZfjgYoNCivjgZXjgY/jgoTjgb4s44GL44Ga44GKDQor44GV44GP44KJ44GELOOBkeOCkw0KK+OBn+OBvuOCiizjgb7jgZXjgYoNCivjgYTjgb7jgavjgZcs44G/44Gu44KLDQor44GK44GM44KPLOOBvuOBleOBsuOBqA0KK+OBr+OBjuOCj+OCiSzjgY3jgojjgZcNCivjgYrjgYrjgY/jgass44Gy44Gn44Gy44GTDQor44GE44GR44GgLOOBm+OBhOOBhOOBoQ0KK+OBvuOBiOOBmOOBvizjgYLjgY3jgokNCivjgYTjgo/jgYQs44GL44Gk44G/DQor44KE44G+44GgLOOBvuOBleOBjQ0KK+OBmeOBoCzjgb7jgZXjgagNCivjgajjgY3jgo8s44GK44GV44KADQor44Gv44KE44GXLOOChuOBhuOBhOOBoQ0KK+OBn+OBkeOCguOBqCzjgYvjgZrjgYoNCivjgYvjgpPjgbDjgoTjgZcs44G+44GV44GKDQor44Go44GW44KPLOOBpOOBqOOCgA0KK+OBn+OBpuOBrizjgZfjgpPjgZQNCivjgYvjgpPjgbks44GR44GE44GTDQor44GK44GP44GgLOOCiOOBl+OBqA0KK+OBn+OCguOBqCzjgajjgb/jgYoNCivjgarjgYzjgYQs44Gu44G244Gf44GLDQor44GK44GW44KPLOOBl+OCk+OBhOOBoQ0KK+OBleOBqOOBhizjgoTjgZnjgarjgooNCivjgZPjgpPjgaks44GC44GN44GKDQor44Gt44GO44GXLOOBn+OBoOOBlw0KK+OBn+OBquOBiyzjgabjgaTjgYoNCivjgZPjgoDjgo0s44KK44KH44GG44GE44GhDQor44KI44GX44GgLOOBqOOCiOOBteOBvw0KK+OBhOOBhOOBmOOBvizjgbLjgo3jgb8NCivjgavjgYTjgbvjgoos44GL44Ga44GKDQor44GT44KC44KK44KELOOCiOOBl+OBn+OBiw0KK+OBl+OCk+OBqeOBhizjgbLjgafjgZrjgb8NCivjgoTjga4s44KI44GG44GE44GhDQor44Gf44Gq44GLLOOBvuOBleOBqOOBlw0KK+OBr+OBjuOBn+OBqyzjgo3jgY/jgo3jgYYNCivjgZPjgZnjgY4s44Gg44GE44GN44GhDQor44GE44G5LOOBruOCiuOBig0KK+OBi+OBquOBluOCjyzjgbLjgo3jgZcNCivjgZ/jgaAs44Gf44Gg44Gy44GVDQor44Gq44GM44GfLOOCiuOCheOBhuOBmeOBkQ0KK+OBi+OBvuOBoCzjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44KI44GX44GKDQor44GK44GE44GnLOOBvuOBk+OBqA0KK+OBn+OBi+OBj+OCiSzjgbLjgo3jgZcNCivjgoTjgZnjgb7jgaQs44GZ44GZ44KADQor44G+44KLLOOCiOOBl+OBsuOBlQ0KK+OBj+OBvOOBnyzjga7jgbzjgosNCivjgZ/jgbDjgZ8s44GR44GE44GE44GhDQor44KC44KK44GfLOOBruOCiuOBig0KK+OBj+OBq+OBqOOCgizjgaTjga3jgZgNCivjgYLjgZXjgazjgb4s44Gy44KN44GL44GaDQor44G744GX44GqLOOChOOBmeOBig0KK+OBruOBluOCjyzjga/jgovjgbLjgZUNCivjgb7jgaTjgoDjgoks44GX44KT44GE44GhDQor44Gy44KJ44GL44GfLOOBi+OBmuOBig0KK+OBsuOCieOBvizjga/jgovjgYoNCivjgZfjgb/jgZos44Gf44GL44GXDQor44KI44GT44GL44KPLOOCj+OBn+OCiw0KK+OBjeOBj+OBoSzjgYLjgaTjgZcNCivjgY/jgo3jgZXjgo8s44GE44GV44KADQor44Gf44GR44GG44GhLOOBpuOBpOOBig0KK+OBsuOCieOBjCzjgojjgYbjgZgNCivjgZXjgYTjgajjgYYs44Gu44KK44GKDQor44GG44Gh44G844KKLOOBk+OBhuOBhOOBoQ0KK+OBhOOBquOCgOOCiSzjgojjgZfjga/jgosNCivjgYrjgZXjgaAs44Gf44GL44GXDQor44GZ44GO44KE44G+LOOBn+OBi+OBqOOBlw0KK+OBhOOBvuOBmizjgoTjgZnjgZ/jgaANCivjgYbjgonjga4s44G+44GV44KI44GXDQor44KC44Gh44Ga44GNLOOBi+OBmuOBig0KK+OBmeOBjOOCjyzjgZfjgZLjgosNCivjgYTjgZHjgaAs44Go44GX44GKDQor44Gf44Gq44GLLOOBr+OCi+OBig0KK+OBleOBhOOBqOOBhizjgZ/jgaTjgZgNCivjgbXjgZjjgZ8s44Go44GX44G/44GhDQor44G/44KE44GtLOOBpOOBqOOCgA0KK+OBi+OBvuOBoCzjgb/jga7jgosNCivjga3jgY7jgZcs44KI44GX44Gu44KKDQor44GK44GP44GM44KPLOOChuOBjeOBig0KK+OBr+OChOOBlyzjgbLjgZXjgZcNCivjgbDjgbAs44Gu44G244Gy44GTDQor44KE44G+44KC44GoLOOBpOOBqOOCgA0KK+OBiOOCk+OBqSzjga7jgbzjgosNCivjgZ3jgoHjgoQs44GK44GV44KADQor44GC44KJ44GELOOCiOOBl+OChuOBjQ0KK+OBguOBuSzjgYLjgY3jgokNCivjgaHjgbAs44Gf44Gk44GKDQor44Gf44GL44KE44G+LOOBv+OBruOCiw0KK+OChOOBvuOBjSzjgobjgYbjgZgNCivjgZ/jgZHjgYbjgaEs44GX44GS44G144GVDQor44Gf44GR44G5LOOBn+OBi+OBig0KK+OBguOBoOOBoSzjgojjgZfjgYLjgY0NCivjgZ/jgYvjgZfjgb4s44GC44GN44KJDQor44KI44GT44KE44G+LOOBruOCiuOBquOBig0KK+OBl+OCieOBhOOBoSzjgb7jgZXjgosNCivjgY/jganjgYYs44GX44GS44GKDQor44GZ44Ga44GNLOOBjeOCiOOBlw0KK+OBn+OBi+OBl+OBvizjgZ/jgYvjgZcNCivjgoTjgb7jgYzjgZ8s44G/44Gu44KLDQor44KI44GX44GgLOOBn+OBj+OBig0KK+OBv+OChOOBi+OCjyzjgZHjgpPjgZgNCivjgZXjgZXjgY0s44KA44Gk44G/DQor44GE44Gn44GG44KJLOOBi+OBmuOBkw0KK+OBn+OBquOBiyzjgbLjgo3jgZcNCivjgYTjgajjgYYs44GC44Gk44Gy44GTDQor44GK44GK44GkLOOBn+OBkeOBlw0KK+OBteOBiOOBjSzjgajjgZfjgYvjgZoNCivjgZfjgoLjgbXjgZUs44GC44Gk44GXDQor44G/44KE44GL44KPLOOBvuOBleOBn+OBiw0KK+OBr+OBl+OCguOBqCzjgZ/jgYvjgZcNCivjgoTjgb7jgZ7jgYgs44GT44GG44GYDQor44Gr44GE44GP44KJLOOBruOBtuOBig0KK+OCj+OBn+OBquOBuSzjgajjgZfjga7jgooNCivjgoDjgo3jgbXjgZcs44GL44GqDQor44GL44KT44GgLOOBi+OBpOOBvuOBlQ0KK+OBj+OBqeOBhizjgZHjgYTjgZMNCivjgZ/jgYvjga/jgoks44KP44Gf44KLDQor44GK44GL44GgLOOBkeOBhOOBmA0KK+OBqeOBhCzjgZXjgajjgosNCivjgZ/jgarjgbks44G+44KC44KLDQor44GT44KA44KNLOOBkeOCk+OBhOOBoQ0KK+OCguOCiuOChOOBvizjgbXjgb/jgZMNCivjgYLjgonjgb7jgY0s44Gu44G244GKDQor44GT44GX44G5LOOBi+OBmuOCjQ0KK+OBleOBrizjga7jgbbjgbLjgo0NCivjgYrjgYvjgaAs44KI44GX44G+44GVDQor44G144GY44KP44KJLOOBjeOCh+OBhuOBkw0KK+OBvuOBpOOBiizjgYvjgZrjgb8NCivjgZ/jgarjgYss44G/44Gt44GKDQor44GN44Gv44KJLOOBquOBiuOBjQ0KK+OBq+OBl+OBr+OBnyzjgobjgYYNCivjgavjgZfjgo/jgY0s44KI44GX44Gf44GLDQor44GK44GL44GW44GNLOOBsuOCjeOBi+OBmg0KK+OBteOBmOOCj+OCiSzjgYrjgZXjgoANCivjgoTjgZnjgaAs44KG44GL44GTDQor44GK44GLLOOBjeOCh+OBhg0KK+OBu+OBneOBrizjgZfjgZLjgYoNCivjgYLjgYvjgZcs44Gf44GP44G+DQor44Gq44GL44GELOOBk+OBhuOBhOOBoQ0KK+OChOOBmeOBoCzjgY3jgY/jgZgNCivjgabjgonjgoDjgoks44G144G/44Gf44GLDQor44GP44G844GfLOOCiOOBl+OChuOBjQ0KK+OBk+OBq+OBlyzjgZfjgZLjgb8NCivjga7jgoDjgoks44GC44GN44KJDQor44GE44Gu44GbLOOBj+OBq+OBkw0KK+OCj+OBn+OBquOBuSzjgoTjgZnjgbLjgZMNCivjgavjgZfjgYos44GL44Ga44Gy44GVDQor44KC44G/44GNLOOBk+OBmeOBkQ0KK+OBmeOBquOBoCzjgbLjgo3jgZ/jgYsNCivjgZ/jgZHjgYbjgaEs44GV44Gh44GTDQor44GC44GN44GbLOOBsuOCjeOBlw0KK+OBl+OBiuOBnyzjgojjgZfjgbLjgZMNCivjgY3jgaks44KI44GX44GC44GNDQor44GE44GX44KP44Gf44KKLOOBqOOBl+OBig0KK+OBl+OCieOBjOOBvyzjgZ/jgYvjgbLjgo0NCivjgYbjgaHjgarjgYws44Gy44Gn44KEDQor44Gf44Gq44GLLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBj+OCjeOBleOBjSzjgabjgaTjgYoNCivjgYrjgajjgZcs44KG44GG44GE44GhDQor44GV44Go44GGLOOBvuOBleOBig0KK+OBmeOBmuOBjSzjgb7jgZXjgobjgY0NCivjgbLjgo3jgZ8s44GV44GE44GYDQor44KE44Gu44GL44KPLOOBmOOCheOCk+OBhOOBoQ0KK+OBleOBi+OCguOBqCzjgb7jgoLjgosNCivjgZPjgoDjgo0s44G+44GV44GoDQor44GE44G+44GfLOOCiOOBhuOBhOOBoQ0KK+OBu+OBneOChCzjgYvjgZrjgZ/jgYsNCivjgabjgonjgZXjgYss44G+44GV44KG44GNDQor44G744KT44G+LOOBi+OBmuOBiA0KK+OBi+OBmeOBjCzjgbLjgo3jgZfjgZINCivjgb7jgaTjgaDjgYTjgoks44GI44GE44GYDQor44GL44KP44GL44G/LOOBl+OCheOBhuOBmA0KK+OBreOBlOOCjSzjgZfjgpPjgZgNCivjgbXjgY/jgaAs44GI44GE44Ge44GGDQor44GZ44Ga44GNLOOBsuOCjeOBlw0KK+OBqOOBvuOBpCzjgojjgZfjgZgNCivjgYTjga4s44Gf44Gk44KN44GGDQor44GZ44Ga44GNLOOBmOOCheOCk+OBmA0KK+OBguOBleOBhCzjgYvjgZrjgYoNCivjga/jgoks44Gf44GL44Gu44KKDQor44G744GXLOOBj+OBq+OBi+OBpA0KK+OBquOCi+OBi+OCjyzjgYvjgZrjga7jgooNCivjgYrjgaAs44Gf44GL44GC44GNDQor44GK44Gw44GqLOOBl+OBkuOChOOBmQ0KK+OBn+OBq+OBluOCjyzjgb7jgZXjgbLjgo0NCivjgbXjgZjjgYrjgYss44Gf44GL44GXDQor44GU44Go44GGLOOBn+OBi+OBmA0KK+OBk+OCjOOBquOBjCzjgajjgZfjgYLjgY0NCivjgZ/jgYvjga/jgZcs44Gg44GE44GZ44GRDQor44Gf44GL44KJLOOBv+OBpOOBr+OCiw0KK+OBiuOBiuOBj+OCjyzjgY3jgojjgZcNCivjgZ/jgarjgYss44Gy44Gn44GL44GaDQor44GV44Go44GGLOOBruOCiuOBig0KK+OBl+OBvuOBrOOBjSzjgZHjgpMNCivjgZ3jga0s44Gy44KN44GXDQor44Gf44Gq44GLLOOBi+OBmuOBig0KK+OBteOBmOOCgOOCiSzjgZPjgYbjgZgNCivjgZTjgajjgYYs44GX44KT44GYDQor44Gv44GX44KC44GoLOOChOOBmeOBn+OBiw0KK+OBsuOCi+OBvizjgYLjgY3jgokNCivjgbvjgZfjgbAs44Gy44Gn44KIDQor44GL44KB44KP44KKLOOBsuOCjeOBvw0KK+OBiuOBj+OBhCzjgbLjgo3jgZcNCivjgbLjgZXjgoLjgags44GK44GV44KADQor44GZ44Ga44GNLOOBjeOCiOOBlw0KK+OBsuOCieOBleOCjyzjgojjgZfjgZ/jgYsNCivjgY3jgZ/jgacs44Gu44KK44GC44GNDQor44G144GP44GgLOOBi+OBmuOBsuOBlQ0KK+OBl+OBiuOBluOBjSzjgZHjgYTjgZgNCivjgoDjgajjgYYs44KG44Gf44GLDQor44Gr44GX44GK44GLLOOBleOBtuOCjeOBhg0KK+OBpOOBvOOBrizjgbLjgo3jgbLjgZUNCivjgarjgaTjgYbjgoEs44Go44GX44G+44GVDQor44Gf44Gr44GM44GNLOOBsuOCjeOBguOBjQ0KK+OBiuOBiuOBmeOBjCzjgYvjgZrjgYoNCivjgYbjgaHjgaAs44Gy44Gn44GKDQor44GL44Go44GGLOOBiOOBhOOBmA0KK+OBleOBleOBjSzjgbLjgafjgYoNCivjgYvjgZfjgb4s44Gu44KK44GKDQor44GC44GL44GV44GLLOOBi+OBmuOBig0KK+OBi+OCj+OBi+OBvyzjgojjgYbjgYTjgaENCivjgZfjgaks44Gf44Gk44KEDQor44KE44G+44GG44GhLOOCiOOBl+OBsuOBpw0KK+OBi+OBrizjgobjgZ/jgYsNCivjga/jgoks44GE44GP44GKDQor44G+44Gk44Gw44KJLOOBkeOCk+OBmA0KK+OBpuOCieOBi+OBqSzjgYvjgZrjgbLjgo0NCivjgZfjgYrjgZ8s44KI44GX44Gu44KKDQor44GK44GL44GgLOOBsuOBqOOBlw0KK+OBj+OCjeOBoCzjgorjgofjgYYNCivjgoLjgorjgoLjgags44G144GY44GKDQor44Gb44GNLOOBsuOCjeOBlw0KK+OBmeOBmuOBjSzjgYLjgY3jgokNCivjgZ/jgZHjgY/jgZUs44Gy44KN44GXDQor44Gf44GM44GX44KJLOOBruOBtuOBig0KK+OBk+OBsOOChOOBlyzjgYrjgZXjgoANCivjgZXjgYjjgY0s44GR44GE44GYDQor44Gf44Gk44GW44KPLOOBjeOBv+OBguOBjQ0KK+OBleOBhOOBqOOBhizjgbLjgajjgZcNCivjgbXjgovjgYvjgo8s44GN44KI44GXDQor44Gf44KA44KJLOOBteOBv+OBqA0KK+OBpOOCiuOChCzjgb7jgaHjgYoNCivjgZXjgYvjgZDjgaEs44G144G/44Go44GXDQor44G144GP44GX44G+LOOCiOOBhuOBhOOBoQ0KK+OBiuOBiuOBi+OCjyzjgbLjgo3jgZcNCivjgbXjgZjjgZ8s44GX44KF44KT44GZ44GRDQor44GL44KP44GQ44GhLOOBi+OBpOOBruOCig0KK+OBqOOBjeOBiuOBiyzjgabjgovjgYoNCivjgarjgYvjga4s44Go44G/44GKDQor44GE44Gu44GG44GILOOBvuOBleOChuOBjQ0KK+OBj+OBq+OBqOOBlyzjgZ/jgY/jgo3jgYYNCivjgZXjgYvjgZ8s44GT44GG44GE44GhDQor44KC44KK44GL44KPLOOBpOOBreOBig0KK+OBruOBkOOBoSzjgbLjgo3jgZcNCivjgY/jgbzjgZ8s44KA44Gk44G/DQor44Gq44GL44GK44GLLOOBn+OBpOOBig0KK+OBruOBteOBmCzjgZHjgYTjgZgNCivjgoLjgYzjgoos44GI44GE44GYDQor44G+44GI44GW44GNLOOBhOOBleOBig0KK+OBiuOBiuOBpOOBiyzjgZfjgZLjgojjgZcNCivjgb/jgZrjgZ8s44GR44KT44Gu44GZ44GRDQor44GZ44GO44KE44G+LOOCiOOBl+OBsuOBlQ0KK+OBi+OBjOOCjyzjgojjgZfjgZ/jgYsNCivjgavjgZfjga/jgoks44KI44GX44G144G/DQor44Gm44Ga44GLLOOBl+OCk+OBhOOBoQ0KK+OBl+OBiuOBvyzjgb/jgaTjgYoNCivjgYrjgYrjga/jgoks44Gf44Gg44GC44GNDQor44GC44GV44GP44KJLOOBguOBjeOBsuOCjQ0KK+OBl+OBvuOBoCzjgabjgaTjgoQNCivjgZfjgb7jgYvjgo8s44GZ44GZ44KADQor44Gv44GX44KC44GoLOOBsuOBqOOBlw0KK+OBhuOBmizjgZfjgZrjgYoNCivjgZ/jgYvjgY/jgo8s44G+44GV44Gu44G2DQor44G/44Gh44GfLOOBl+OCheOCk+OBhOOBoQ0KK+OBhuOBiOOBoCzjgYbjgYTjgooNCivjgZfjgYws44Gf44GL44Gk44GQDQor44GE44GR44G/LOOBv+OBpOOBkA0KK+OCguOCiizjgb7jgZXjgYLjgY0NCivjgYvjgZfjgoLjgags44G+44GZ44G/DQor44GE44GX44Gv44KJLOOBoeOBiOOBkw0KK+OBi+OBreOBkyzjgaHjgYjjgZMNCivjgZ/jgYvjga/jgZcs44Go44GX44GKDQor44KC44Go44GELOOBvuOBleOBig0KK+OBk+OBn+OBkSzjgb/jgaHjgYoNCivjgYvjgZXjgYQs44GZ44GI44GTDQor44GL44Go44GGLOOBruOCiuOBkw0KK+OBk+OBj+OBvCzjgZHjgYTjgZMNCivjgo/jgYvjgoTjgb4s44GX44GS44KEDQor44GV44Gq44GgLOOBvuOBleOBsuOBkw0KK+OBleOBi+OBnyzjgajjgb/jgojjgZcNCivjga7jgoDjgoks44G/44Gk44GKDQor44Gv44KE44GL44KPLOOBi+OBmuOBvw0KK+OBv+OChOOBluOBjSzjgZfjgZLjgYoNCivjgYrjgavjgaTjgYss44GR44KT44GYDQor44GE44GnLOOBiuOBleOCgA0KK+OBquOBjOOBleOBkyzjgZ/jgYvjga7jgooNCivjgYTjgajjgYYs44G/44Gh44Gf44GLDQor44GL44Gt44Gf44GRLOOBpuOCi+OBguOBjQ0KK+OBj+OBvOOBnyzjgY3jgojjgobjgY0NCivjgYLjgorjgb4s44GR44GE44GTDQor44KP44GL44GKLOOBsuOCjeOBlw0KK+OBhOOBl+OBluOBiyzjgZ/jgYvjgobjgY0NCivjgYrjgZ8s44Gc44KT44Gv44Gh44KN44GGDQor44GV44GL44KC44GoLOOBkeOBhOOBlA0KK+OBiuOBiuOBu+OCiizjgobjgY3jgYoNCivjgZfjgpPjgZ/jgass44Go44GX44GC44GNDQor44GG44Gh44KE44G+LOOBn+OBi+OBlw0KK+OBsuOCieOBnyzjgb/jgarjgZMNCivjgYLjgorjgZ7jga4s44GV44Go44GTDQor44GE44Go44GGLOOBn+OBi+OBlw0KK+OBguOBiuOChOOBjizjgb7jgZXjgYLjgY0NCivjgarjgYvjgoDjgoks44GV44Gg44GKDQor44GE44GE44GgLOOBv+OBoeOBig0KK+OBquOBl+OBjSzjgYvjgYrjgosNCivjgoDjgonjgZss44GL44Ga44GKDQor44G+44Gk44GKLOOBkeOBhOOBlA0KK+OBleOBqOOBhizjgZfjgo3jgYYNCivjgYLjgZXjgazjgb4s44GX44KT44GE44Gh44KN44GGDQor44G144Gf44G/LOOChOOBmeOBvuOBlQ0KK+OBteOBquOBqCzjgY/jgavjgb8NCivjgbXjgZjjgZ8s44KG44G/44GTDQor44G144KL44GL44KPLOOBn+OBkeOBig0KK+OBteOBquOBr+OBlyzjgbLjgZXjgoQNCivjgbbjgajjgYYs44Gy44KN44KG44GNDQor44GL44Gu44GGLOOBi+OBpOOBsuOCjQ0KK+OBiuOBjeOBpCzjgbLjgo3jgZ/jgYsNCivjgZ/jgYvjgY7jgo8s44GE44GV44KADQor44G744GX44GuLOOBoeOBiOOBkw0KK+OBq+OBl+OBmOOBvizjgY/jgavjgbLjgo0NCivjgYvjgb7jgZ8s44Gh44GC44GNDQor44Gk44GY44KC44GoLOOBqOOBl+OBhOOBoQ0KK+OBr+OBquOBoCzjgZfjgpPjgZgNCivjgbLjgo3jgZss44G+44GV44GKDQor44Gr44GX44GgLOOBsuOBqOOBlw0KK+OBhuOBiOOBjSzjgajjgZfjgYvjgZoNCivjgojjgZfjga4s44GN44KI44GKDQor44GN44Gf44KA44KJLOOBm+OBhOOBhOOBoQ0KK+OBl+OBv+OBmizjgb/jgaHjgZMNCivjgYTjgZfjgZbjgY0s44Gy44GV44GXDQor44Gv44KE44GXLOOBv+OBpOOBruOBtg0KK+OBjeOBj+OBoSzjgbLjgafjgbXjgb8NCivjgYrjgYvjgaks44Gk44GQ44GKDQor44GT44KA44KJLOOBl+OBkuOCiw0KK+OBr+OBl+OCguOBqCzjgaTjgajjgoANCivjgarjgYvjgaTjgYss44Gf44GR44GXDQor44GK44GK44GE44GXLOOBvuOBmeOCiOOBlw0KK+OBj+OCjeOBoCzjgb7jgZXjgojjgZcNCivjgarjgYvjgYQs44G+44GV44G/DQor44GN44Gf44GW44KPLOOBruOCiuOBguOBjQ0KK+OBjeOBl+OBoCzjgZfjgZLjgosNCivjgYvjgarjgb7jgoss44G+44GT44GoDQor44GC44KJ44GELOOBl+OBmuOBig0KK+OBteOBn+OBpOOBjizjga/jgovjgYoNCivjgY3jgY/jgaEs44Go44GX44GKDQor44GE44GE44GgLOOChOOBmeOBlw0KK+OBquOBi+OBiCzjgYLjgY3jgYoNCivjgbLjgonjgb7jgaQs44G/44Gu44KLDQor44Gr44GX44GK44GLLOOBmOOCheOCk+OBnuOBhg0KK+OBleOBqOOBhizjgZHjgYTjgY0NCivjgoLjgoos44Gv44KL44GKDQor44G744GX44GuLOOBhOOBleOBig0KK+OChOOBvuOBkOOBoSzjga7jgbbjgbLjgo0NCivjgYbjgZnjgYQs44KI44GG44GE44GhDQor44G+44Gk44Gw44KJLOOBiOOBhOOBhOOBoQ0KK+OBguOCiuOBleOBiyzjgb7jgZXjgY0NCivjgavjgZfjgYos44GI44GE44GYDQor44GN44GgLOOBpuOBpOOBig0KK+OChOOBrizjgobjgYbjgYTjgaENCivjgYvjgajjgYYs44GR44KT44GfDQor44KP44Gf44Gq44G5LOOBoeOBsuOCjQ0KK+OBr+OChOOBlyzjgoTjgZnjgYoNCivjgo/jgZ/jgbks44KI44GG44GE44GhDQor44KP44Gf44Gq44G5LOOBvuOBleOBig0KK+OChuOBkOOBoSzjgbLjgo3jgZMNCivjgoTjgb7jgoLjgags44Gy44GV44GXDQor44GV44GE44Go44GGLOOBteOBv+OBig0KK+OBi+OBhOOBmizjgZHjgpPjgYTjgaENCivjgbvjgZfjga4s44Gy44Gn44GKDQor44GX44Gu44Gv44KJLOOBruOBtuOBsuOCjQ0KK+OBiuOBiuOBrOOBvizjgb7jgoLjgosNCivjgb/jgo8s44Gf44GR44GXDQor44G744KK44KA44GNLOOCiOOBl+OBvg0KK+OBhOOBl+OBn+OBpizjgZfjgpPjgYTjgaHjgo3jgYYNCivjgb/jgbXjga0s44GN44KI44GXDQor44KC44G/44GNLOOBvuOBk+OBqA0KK+OBr+OBm+OBjOOCjyzjgabjgovjgYoNCivjgZnjgY7jgoTjgb4s44GX44KF44KT44GYDQor44Gk44GP44GgLOOBn+OBoOOBlw0KK+OBguOBoOOBoSzjgbXjgb/jga7jgooNCivjgafjgZbjgo8s44Gf44Gg44KI44GXDQor44GK44GfLOOBjeOCiOOBlw0KK+OBleOBqOOBhizjgYLjgY3jgokNCivjgZvjgY3jgZDjgaEs44G/44Gk44Gu44KKDQor44GT44GP44G244KTLOOCiOOBl+OBjQ0KK+OBu+OBl+OBqizjgobjgY3jgbXjgb8NCivjgYbjgonjga4s44GT44GG44GE44GhDQor44Gf44GR44KA44KJLOOChOOBmeOBsuOCjQ0KK+OBqOOBj+OBquOBjCzjgbLjgajjgZcNCivjgY/jgorjga/jgoks44Gy44Gn44GoDQor44GK44GP44KA44KJLOOBmOOCheOCk+OBhOOBoQ0KK+OBleOBhOOBqOOBhizjgZfjgpPjgYTjgaHjgo3jgYYNCivjgb7jgaTjgZfjgZ8s44GR44GE44Ge44GGDQor44Gf44GR44GgLOOBv+OBoeOBkw0KK+OBq+OBl+OBjSzjgoLjgajjgojjgZcNCivjgYbjgoHjgaAs44GV44GL44GIDQor44G744KT44GgLOOBhOOBj+OBig0KK+OBi+OCgizjgYvjgZrjgYbjgb8NCivjgYbjgZfjgaAs44Gk44KI44GXDQor44GV44GE44Go44GGLOOBsuOCjeOBpOOBkA0KK+OBr+OBmeOBoCzjgb7jgZnjgYoNCivjgb/jgYvjgo8s44KI44GG44GTDQor44GG44Gh44GgLOOBj+OBq+OBsuOBkw0KK+OBq+OBl+OBluOBjSzjgZfjgofjgYbjgYTjgaENCivjgYTjgYzjgonjgZcs44GX44KH44GG44GYDQor44KP44Gf44Gq44G5LOOBguOBleOBkw0KK+OBl+OBvuOCgOOCiSzjgZPjgYbjgZgNCivjgYvjgajjgYYs44Gu44KK44GTDQor44GL44KP44G5LOOBl+OCh+OBhuOBkw0KK+OBleOBi+OCguOBqCzjgojjgYbjgZgNCivjgoLjgorjgZfjgZ8s44KC44Go44KI44GXDQor44GZ44GM44Gv44KJLOOCiuOCh+OBhg0KK+OBqOOBv+OChOOBvizjgYvjgaTjgbLjgZMNCivjgbXjgY/jgaAs44Gk44KI44GXDQor44GK44Go44GW44GNLOOBguOBpOOBsuOBkw0KK+OBteOBmOOCguOCiizjgZ/jgYvjgYoNCivjgZPjgoLjgoos44GN44KI44KG44GNDQor44G144GP44Gq44GMLOOBvuOBleOBguOBjQ0KK+OBv+OChOOBr+OCiSzjgYvjgaTjga7jgooNCivjgZjjgpPjga4s44G/44Gk44GKDQor44GN44KA44KJLOOBiOOBhOOBkw0KK+OBhOOBquOBjOOBjSzjgobjgY3jgZMNCivjgoLjgoos44Gu44KK44GKDQor44KP44Gf44Gq44G5LOOBi+OBpOOBruOCig0KK+OBpOOBmOOCguOBqCzjgYLjgY3jgYoNCivjgoLjgpPjgZzjgpMs44Gy44KN44KG44GNDQor44Gq44KA44KJLA0KK+OChOOBvuOCguOBqCzjgYjjgorjgZMNCivjga/jgZfjgoLjgags44Gy44KN44GNDQor44GC44KJ44GELOOChOOBmeOBruOCig0KK+OBteOBmOOBhCzjgbLjgo3jgZcNCivjgo/jgZ/jgarjgbks44Gm44GkDQor44Gv44Gb44GM44KPLOOBqOOCiOOBi+OBmg0KK+OBl+OBkuOChOOBmSzjgYjjgYTjgYTjgaENCivjgoTjgb7jga7jgYQs44Gf44GP44G+DQor44GT44Gw44KE44GXLOOBvuOBleOCiw0KK+OBquOBjOOBhCzjgojjgZfjgYLjgY0NCivjgZXjgo8s44Gu44G244GKDQor44G+44Gk44KI44GXLOOBv+OBoeOBig0KK+OBleOBhOOBqOOBhizjgYvjgYrjgosNCivjgYvjga7jgYYs44Gy44KN44GC44GNDQor44GG44GX44GU44KBLOOChOOBmeOBig0KK+OBhOOBl+OBhCzjgZPjgYbjgZgNCivjgYbjgZnjgY0s44GE44Ga44KLDQor44GZ44Gp44GGLOOCiOOBl+OBig0KK+OBi+OBmOOChOOBvizjgZ/jgYvjgY3jgb8NCivjgYrjgYrjgbAs44Gy44Gn44GNDQor44GZ44KPLOOBteOBv+OBig0KK+OBhOOCj+OBnyzjgoTjgZnjgagNCivjgajjgYYs44Gv44GY44KBDQor44GK44GE44GL44KPLOOBsuOBqOOBlw0KK+OBsuOCieOBhCzjgYjjgYTjgZMNCivjgZ/jgYvjgZfjgb4s44Go44GX44GKDQor44G144G/44GuLOOBsuOCjeOBlw0KK+OBiuOBi+OBluOBjSzjga7jgorjgYoNCivjgZfjgonjgY0s44G+44GV44Gk44GtDQor44Gf44GR44KC44GoLOOChuOBhuOBmA0KK+OBvuOBpOOCguOBqCzjga7jgorjgbLjgZMNCivjgb7jgaTjgbDjgoks44Gy44KN44GXDQor44GI44Gz44Gv44KJLOOBk+OBhuOBmA0KK+OBteOBmOOBrizjgoTjgZnjgYoNCivjgbXjgYvjgoQs44G+44GV44Gy44KNDQor44G744GX44GuLOOBn+OBi+OBlw0KK+OBi+OBn+OChOOBvizjgZXjgaHjgZMNCivjgYLjgonjgYvjgo8s44G+44GV44KG44GNDQor44Gf44GL44GuLOOBi+OBmuOBig0KK+OBj+OCjeOBoCzjgoTjgZnjgbLjgo0NCivjgYTjgajjgYYs44GY44KF44KT44GTDQor44GT44GW44GELOOBv+OBpOOCiw0KK+OBhuOBiOOChOOBvizjgY3jgojjgZcNCivjga/jgaPjgajjgoos44Go44GX44GNDQor44Gr44GX44KA44KJLOOBqOOBl+OBn+OBiw0KK+OBteOCi+OBi+OCjyzjgZ/jgYvjgYoNCivjgoTjgZfjgY0s44GX44GS44GNDQor44G744Gp44KE44G+LOOBsuOBp+OBig0KK+OBiOOBqOOBhizjgajjgoLjgbLjgZMNCivjgoTjgb7jgoLjgags44G+44GV44Go44GXDQor44Gb44GN44GQ44GhLOOBhOOBleOCgA0KK+OBn+OBquOBuSzjgbLjgafjgajjgZcNCivjgZ/jgZHjgaAs44Go44GX44KG44GNDQor44GX44KT44Gf44GrLOOBi+OBn+OBlw0KK+OBj+OBvOOBnyzjgY3jgojjgZcNCivjgZnjgY7jgYrjgYss44GV44Go44G/DQor44KE44G+44GW44GNLOOBleOBoOOBruOCig0KK+OBleOBhOOBqOOBhizjgbLjgafjgY0NCivjgYbjgYjjga4s44Go44GX44Gf44GRDQor44GX44G+44KC44GoLOOBk+OBmeOBkQ0KK+OBjeOBn+OBrizjgb7jgZXjgb8NCivjgYTjgYTjgZrjgYss44KK44KH44GG44GTDQor44GE44Ga44G/LOOBjeOCh+OBhuOBmA0KK+OBr+OCieOBoCzjgZ/jgYvjgobjgY0NCivjgYrjgaHjgYLjgYQs44GV44Go44GXDQor44KE44G+44GG44GhLOOBguOBjeOBsuOCjQ0KK+OBiOOBkOOBoSzjgbLjgafjgaTjga0NCivjga/jgY7jgo/jgoks44Gf44GR44GXDQor44Gf44GL44GOLOOBn+OBkeOBruOCig0KK+OBiuOBj+OCguOBqCzjgb7jgarjgbYNCivjgb7jgaTjgZbjgY0s44KK44KH44GG44GE44GhDQor44GE44Gh44KA44KJLOOChuOCiuOBkw0KK+OBv+OChOOBleOBiyzjgajjgoLjgZMNCivjgb/jgoTjgZ8s44Gb44GE44GE44GhDQor44Gq44GM44GKLOOBl+OCh+OBhuOBjeOBoQ0KK+OBhOOCj+OBiizjgb7jgZXjgZcNCivjgbXjgYvjgZbjgo8s44GX44GS44KLDQor44Gf44KA44KJLOOBvuOBleOBig0KK+OBjeOCiuOCheOBhizjgZ/jgaDjgYoNCivjgb7jgaTjgZbjgY0s44KI44GX44GKDQor44GL44Go44GGLOOBpuOCi+OBv+OBpA0KK+OBv+OBnyzjgarjgYrjgagNCivjgYTjgZfjgYQs44GE44GV44KADQor44GK44GL44KC44GoLOOBpuOBpOOBig0KK+OBhuOBiOOBiuOBiyzjga7jgbbjgYoNCivjgY3jgofjgYbjga4s44G+44GV44GoDQor44GL44Gt44GTLOOChuOBhuOBnuOBhg0KK+OBleOBj+OCieOBhCzjgY3jgofjgYbjgZMNCivjgo/jgYvjgbDjgoTjgZcs44Go44GX44Gy44GnDQor44KP44Gf44Gq44G5LOOCiOOBl+OBsuOCjQ0KK+OBguOBleOBhCzjgavjgZnjgZENCivjgYvjganjga4s44KG44GG44GYDQor44KE44G+44GW44GNLOOBqOOCiOOBsuOCjQ0KK+OBguOCj+OBrizjgajjgZfjgobjgY0NCivjgYrjgYzjgo8s44Gf44GL44Gu44KKDQor44Gc44KT44GRLOOBqOOBl+OBig0KK+OBteOBj+OCguOBqCzjgajjgoLjgbLjgZMNCivjgYrjgaks44GL44Ga44Gu44KKDQor44KC44KK44KC44GoLOOBn+OBi+OBig0KK+OBqOOBhuOBvOOBhizjgYvjgZrjgb8NCivjgYvjgZ/jgoTjgb4s44G+44GV44GXDQor44Gq44GM44G+44GkLOOBn+OBi+OBguOBjQ0KK+OCj+OBn+OBuSzjgojjgZfjgb8NCivjgYTjgZfjgY0s44KG44GGDQor44GE44Gq44GM44KPLOOChuOBhuOBkw0KK+OBquOBi+OBrizjgZ/jgYvjga/jgosNCivjgavjgZfjgoTjgb4s44KE44GZ44KI44GXDQor44GX44KC44GgLOOBv+OCiOOBkw0KK+OBl+OBkuOBnyzjgZ/jgYvjgYoNCivjgb7jgaTjgoLjgags44Gy44KN44GX44GSDQor44GL44Gf44KE44G+LOOChuOBhg0KK+OBneOBrizjgYvjgaTjgb8NCivjgYTjgZvjgY0s44KG44GN44GKDQor44GE44Go44GGLOOCiOOBl+OBi+OBmg0KK+OBm+OBjeOBrSzjgb7jgZXjgYoNCivjgoDjgonjgoTjgb4s44G144GY44GKDQor44G+44KL44KE44G+LOOBkeOBhOOBmA0KK+OBj+OCjeOBleOCjyzjgojjgZfjgbXjgb8NCivjgZnjgb8s44Go44GK44KLDQor44Gu44GQ44GhLOOChuOBhuOBmA0KK+OBleOBqOOBhuOBvyzjgbLjgafjgY0NCivjgYrjgYrjgYvjgo8s44Gk44GQ44Gy44GoDQor44Gq44GL44GuLOOBsuOBp+OBruOCig0KK+OBiuOBiuOBhOOBlyzjgZgNCivjga/jgbYs44GC44GN44KJDQor44GG44Gh44GgLOOBruOCiuOBvuOBlQ0KK+OBv+OBjSzjgbXjgb/jga7jgbYNCivjgZnjgZrjgY0s44Gk44Gt44KG44GNDQor44GL44GV44Gv44KJLOOBhOOBmuOBvw0KK+OBiuOBiuOBj+OBvCzjgYvjgZrjga/jgosNCivjgYvjgZ/jgYvjgb8s44Gu44KK44GL44GaDQor44Gf44GL44Gv44GXLOOBqOOBl+OBsuOBkw0KK+OBhOOBl+OBi+OCjyzjgYvjgZrjgoQNCivjgZ/jgYvjgajjgoos44Gf44GL44GKDQor44Gf44Gr44GQ44GhLOOBl+OCk+OBmA0KK+OBm+OBjSzjgobjgY3jgb7jgZUNCivjgY/jgbzjgZ8s44G+44GV44GoDQor44GC44G544GL44KPLOOCgOOBpOOBig0KK+OBteOBmOOBvuOBjSzjgZ/jgZHjgZcNCivjgYvjgZ/jgoTjgb4s44G+44GV44KG44GNDQor44GT44KE44G+LOOBkeOCk+OBmA0KK+OBr+OBl+OCguOBqCzjgYLjgZHjgb8NCivjgZnjgb8s44G/44Gh44GKDQor44Gr44GX44GL44KPLOOBsuOCjeOBlw0KK+OBleOCj+OBvizjgYLjgoTjgZMNCivjga/jgZfjgoLjgags44KG44GG44GTDQor44Gq44GL44GfLOOChOOBmeOBvuOBlQ0KK+OBhuOBoeOChOOBvizjgbLjgo3jgZcNCivjgZXjgZXjgY0s44G+44KKDQor44GC44GV44Gv44KJLOOBv+OBpOOBsuOCjQ0KK+OBq+OBo+OBnyzjgbXjgb/jgZMNCivjgaDjgpMs44KL44KK44GTDQor44GZ44GO44GfLOOBpuOBpOOBlw0KK+OChOOBvuOCguOBqCzjgZfjgpPjgYTjgaENCivjgYrjgbXjgaEs44G/44GNDQor44GT44Gw44KE44GXLOOBv+OCj+OBkw0KK+OBv+OCiOOBlyzjgZPjgYbjgY3jgaENCivjgYTjgZfjgaAs44Gy44Gn44Gy44GTDQor44GK44Gr44GNLOOBruOBvOOCiw0KK+OBj+OCiuOBr+OCiSzjgZ/jgb/jgYoNCivjgZfjgonjgYQs44Gk44GL44GVDQor44GV44GL44Gr44GXLOOBkeOCk+OBhOOBoQ0KK+OBiuOBoCzjgbLjgZXjgZcNCivjgYvjgb7jgZks44GR44KT44Ge44GGDQor44Gq44GL44GM44KPLOOBvuOBleOCiOOBlw0KK+OBi+OBl+OCguOBqCzjgY3jgofjgYbjgYTjgaENCivjgbDjgpPjganjgYYs44KG44Ga44KLDQor44G144Gf44G/LOOBvuOBleOBlw0KK+OChOOBvuOBl+OBnyzjgZ/jgYvjgZcNCivjga/jgoTjgZcs44KG44GG44GYDQor44GL44GS44KE44G+LOOBv+OBruOCiw0KK+OBguOBmeOBvizjga7jgbbjgYoNCivjgZfjgoLjgoDjgoks44KG44GG44GE44GhDQor44KE44G+44GQ44GhLOOBn+OBoOOBlw0KK+OChOOBvuOBqCzjgbLjgo3jgZcNCivjgZXjgajjgYYs44GX44GS44KLDQor44G+44Gk44Gg44GE44KJLOOBi+OBmuOChA0KK+OBvuOBpOOCgOOCiSzjgajjgZfjgb/jgaENCivjgZPjgpPjga4s44KI44GX44KEDQor44GK44GK44Gv44GXLOOChOOBleOBtuOCjeOBhg0KK+OBjeOBj+OBnyzjgZfjgZLjgY0NCivjgojjgZfjgYrjgYss44Gy44KN44GXDQor44GV44GuLOOCiOOBl+OBig0KK+OBn+OBquOBiyzjgobjgY3jga7jgooNCivjgZXjgZXjgY0s44GZ44GZ44KADQor44GL44KP44GQ44GhLOOBguOBpOOBlw0KK+OChOOBvuOBl+OBnyzjgZ/jgaTjgYoNCivjgZ/jgZHjgoDjgoks44G144G/44GKDQor44G144GP44GhLOOBi+OBmuOBiA0KK+OBvuOBquOBiyzjgajjgb/jgYgNCivjgYLjgonjgY0s44Gf44GL44Gu44G2DQor44Gy44KJ44GuLOOCiOOBl+OBi+OBmg0KK+OBquOBi+OCgOOCiSzjgaTjgajjgoANCivjga/jgZfjgoLjgags44Go44GX44GL44GkDQor44GL44Go44GGLOOBhOOBj+OBkw0KK+OBr+OBvuOBi+OCjyzjgY/jgavjgYoNCivjga/jgoTjgZcs44GR44GE44GTDQor44GE44Go44GGLOOBkeOCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgYTjgaHjgo3jgYYNCivjgZ/jgZHjgYbjgaEs44GL44Ga44Gy44GTDQor44Gr44GXLOOBk+OBhuOBhOOBoQ0KK+OBhOOCj+OBu+OCiizjgajjgZfjgb7jgZUNCivjgYTjgb7jgYQs44GP44G/44GTDQor44KC44KK44GuLOOBn+OBi+OBlw0KK+OBq+OBl+OBr+OCiSzjgZHjgYQNCivjgY3jgorjgoQs44Gy44GV44GoDQor44GV44Go44GGLOOBqOOCiOOBkw0KK+OBu+OBneOBoCzjgbLjgZXjgZMNCivjgZ/jgYvjga/jgZcs44Gf44Gg44GXDQor44Gq44GL44GY44G+LOOBl+OBkuOCiw0KK+OChOOBmeOBr+OCiSzjgarjgovjgobjgY0NCivjgY/jgo3jgYTjgo8s44Gf44GL44GXDQor44GL44KCLOOBsuOCjeOBlw0KK+OBguOBi+OBvuOBpCzjgY/jgavjgYLjgY0NCivjgY3jgZ/jgoDjgoks44G+44KG44G/DQor44Gr44GX44GgLOOChuOBjeOBkw0KK+OBiuOBi+OBoCzjgZfjgpPjgYTjgaENCivjgZXjgZXjgY0s44Go44GX44KG44GNDQor44Gf44GL44Gv44GXLOOBsuOCjeOBlw0KK+OBl+OBv+OBmizjgYTjgZXjgoANCivjgYjjgpPjgaks44GX44KT44GZ44GRDQor44GG44Gg44GM44KPLOOBpuOCi+OBig0KK+OBl+OBv+OBmizjga7jgorjgbXjgb8NCivjgYLjgYrjgoTjgY4s44Gb44GE44Ge44GGDQor44Gv44GX44KC44GoLOOBi+OBmuOBig0KK+OBn+OBkeOBhuOBoSzjgbLjgafjgYLjgaQNCivjgYLjgonjgYQs44KE44GZ44GXDQor44GE44GX44GY44G+LOOBhOOBleOBig0KK+OBk+OBjOOBrSzjgbLjgafjgYoNCivjgZXjgo/jgZfjgb4s44GX44KT44GE44GhDQor44Gf44GL44KE44Gq44GOLOOBv+OBruOCiw0KK+OBvuOBleOBoCzjgbLjgo3jgb/jgaENCivjgZfjgb/jgZos44GC44GN44Gy44GnDQor44GK44Gu44Gn44KJLOOBn+OBi+OBig0KK+OBn+OBquOBiyzjgb/jgaTjgosNCivjga7jgoDjgoks44Gu44G244GKDQor44KI44GX44GgLOOBsuOCjeOBlw0KK+OCiOOBl+OBoCzjgajjgZfjgZnjgZENCivjgZXjgZ/jgZEs44GX44KT44GYDQor44GV44GE44Go44GGLOOBvuOCguOCiw0KK+OBv+OChOOBjizjgbLjgo3jgZcNCivjgZ/jgYvjgZfjgb4s44GR44GE44GYDQor44GL44Gw44KELOOBsuOCjeOBteOBvw0KK+OBhOOBl+OBluOBjSzjgZfjgpPjgYTjgaENCivjgYvjgYzjgoQs44KI44GG44GE44GhDQor44GT44Gf44GrLOOBn+OBj+OCguOCig0KK+OBk+OBmeOBoCzjgoTjgZnjgYLjgY0NCivjgYTjgZjjgoos44KG44Gf44GLDQor44G+44KL44KE44G+LOOBn+OBv+OChA0KK+OBi+OBquOBhCzjgojjgZfjgYoNCivjgoTjgY4s44G/44Gk44GQDQor44G144GY44GuLOOBleOBqOOBlw0KK+OBk+OBp+OCiSzjgb7jgZXjgagNCivjgZnjgY7jgYos44G+44GV44KG44GNDQor44GZ44GM44Gv44KJLOOBk+OBhuOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgb/jgaTjgoTjgZkNCivjgYrjgYss44Gv44KL44KE44GZDQor44GE44GX44G+44KLLOOBiuOBleOCgA0KK+OBv+OChOOBluOBjSzjgZPjgYbjgZ7jgYYNCivjga/jgb7jga4s44G/44Gh44GKDQor44GT44Gf44GY44G+LOOCiOOBl+OBruOCig0KK+OBn+OBi+OBl+OBvizjgYLjgZHjgbXjgb8NCivjgaTjgYvjgaAs44Gb44GE44GE44GhDQor44Gq44GL44KA44KJLOOBi+OBpOOBteOBvw0KK+OBn+OBkeOBoCzjgb7jgZXjga7jgooNCivjgoTjgZnjgoDjgo0s44Gv44KL44Gy44GTDQor44Gq44GL44KA44KJLOOBsuOCjeOBlw0KK+OBteOBmOOBl+OBvizjgZfjgZLjgb7jgZUNCivjgYrjgYvjgaAs44Gf44GR44GXDQor44GC44KELOOBv+OBpOOBvuOCiw0KK+OBquOBi+OCgOOCiSzjgb/jgaTjgb7jgosNCivjgZ/jgYvjga/jgZcs44Gf44GR44Gy44KNDQor44GZ44GM44Gv44KJLOOBl+OBkuOBn+OBoA0KK+OChuOBguOBlSzjgZHjgpPjgZgNCivjgYTjgZfjgYQs44KA44Gt44KI44GXDQor44GK44GK44GP44G8LOOBsuOCjeOBqOOBlw0KK+OBiuOBleOCjyzjgb7jgZXjgZ/jgZENCivjgoTjgb7jgoLjgags44G/44GN44GKDQor44GE44G+44GE44Ga44G/LOOBi+OBmuOBsuOBkw0KK+OBiuOBi+OBoCzjgojjgZfjgbLjgo0NCivjgarjgYvjgoDjgoks44GP44Gr44GKDQor44Gf44Gq44GLLOOBjeOCiOOBlw0KK+OBquOBi+OBrizjgZ/jgY/jgYoNCivjgYrjgYrjgoLjgoos44GL44Ga44Gy44GTDQor44KE44G+44KC44GoLOOBi+OBmuOBig0KK+OBquOBjOOBhCzjgobjgY3jgb7jgZUNCivjgZPjgbDjgoTjgZcs44KI44GX44Gv44KLDQor44Gy44GN44GhLOOBsuOBleOBlw0KK+OChOOBvuOBoCzjgajjgZfjgYoNCivjgaTjgYvjgoLjgags44Gk44Go44KADQor44GE44Gu44GG44GILOOBvuOBleOBqA0KK+OBhOOBruOBhuOBiCzjgYLjgY3jgokNCivjgZnjgb/jgYvjgo8s44GL44GK44KLDQor44G144GP44GgLOOBmOOCheOCk+OBhOOBoQ0KK+OChOOBvuOCguOBqCzjgZvjgaTjgZMNCivjgZXjgYTjgajjgYYs44KG44GG44GTDQor44GL44KT44GwLOOCiOOBl+OBv+OBpA0KK+OBleOCieOBhCzjgb7jgZXjgYLjgY0NCivjgZXjgYvjgY0s44GX44KH44GG44GYDQor44KE44GZ44GELOOBn+OBi+OBlw0KK+OBi+OBv+OCgOOCiSzjgZ/jgYvjgZcNCivjgZvjgbks44KI44GX44Gf44GLDQor44KI44GX44GgLOOBqOOBl+OBi+OBmg0KK+OBquOBjOOBmyzjgZ/jgaDjgZcNCivjgbXjgY/jgaEs44GE44Ga44G/DQor44G144GP44GgLOOBmA0KK+OBruOBquOBiyzjga7jgbbjgbLjgZMNCivjgYTjgb7jgaAs44G+44GV44Gy44KNDQor44Gr44GX44GL44KPLOOBvuOBmeOBkw0KK+OBk+OChOOBrizjgbLjgafjgYoNCivjgarjgYvjgZbjgo8s44GC44GN44GKDQor44GK44GM44KPLOOBn+OBi+OBlw0KK+OBquOBi+OChOOBvizjga/jgovjgbLjgZUNCivjgazjga7jgYvjgo8s44GR44GE44GTDQor44Gd44GtLOOBteOBv+OBig0KK+OBv+OBnuOBkOOBoSzjgobjgY3jgYoNCivjgZPjgbDjgoTjgZcs44GE44KP44GKDQor44KI44GX44G+44GkLOOBvuOBleOBig0KK+OBiuOBiuOBr+OCiSzjgb7jgZXjgYrjgb8NCivjgoTjgb7jgaAs44GX44KT44GYDQor44G/44Gu44GQ44GhLOOCiOOBl+OBruOCig0KK+OBl+OCk+OCgeOCkyzjgZ/jgYvjgbXjgb8NCivjga7jgZss44G+44GV44GKDQor44GE44KP44Gv44GXLOOCiuOCh+OBhuOBhOOBoQ0KK+OBguOBi+OBhCzjgZ/jgZHjgZcNCivjgaTjgZ/jgoLjgags44G+44GV44Gv44KLDQor44Gq44GL44KC44GoLOOBv+OBruOCiw0KK+OBj+OBoOOBquOBvyzjgb7jgZXjgobjgY0NCivjgYTjgaHjgaAs44Gf44GL44GXDQor44KE44GuLOOBiOOBhOOBmA0KK+OBvuOBpOOBjSzjgY3jgb/jgYoNCivjgZXjgZXjgY0s44KI44GX44GX44GSDQor44G144KL44GuLOOBi+OBiuOCiw0KK+OBteOBmOOBnyzjgYLjgY3jgokNCivjgYTjga7jgYbjgYgs44G/44Gp44KKDQor44Gf44KELOOBv+OBpOOChOOBmQ0KK+OBv+OChOOBluOCjyzjgZ/jgo3jgYYNCivjgo/jgZ/jgarjgbks44KI44GG44GTDQor44GC44GP44GtLOOBqOOBl+OCjeOBhg0KK+OBu+OBl+OBrizjgZfjgpPjgYTjgaENCivjgojjgZfjgaAs44GL44Ga44GKDQor44GG44GI44KA44KJLOOBruOBvOOCiw0KK+OBi+OBv+OChCzjgZHjgpPjgZgNCivjgZnjgZrjgY0s44Gf44GR44GXDQor44GC44KT44Gp44GGLOOBn+OBi+OBr+OCiw0KK+OBqOOCiOOBhOOBmuOBvyzjgajjgZfjgYoNCivjgY/jgo/jgaos44Gu44KK44GTDQor44Gr44GE44G/LOOBi+OBpOOBlw0KK+OBv+OBhuOCiSzjgYrjgZXjgoANCivjga7jgoDjgoks44GC44GN44KJDQor44GK44GL44GgLOOBmOOCheOCkw0KK+OBguOBleOBrOOBvizjgYvjgZrjgbLjgo0NCivjgZXjgZXjgYos44Gy44Gn44KG44GNDQor44GE44Gq44GM44GNLOOBvuOBleOBqA0KK+OBmeOBjOOCj+OCiSzjgZXjgajjgZcNCivjgZfjgofjgYbjgZgs44Gf44GR44GV44GgDQor44Gf44GM44KPLOOBv+OBruOCiw0KK+OBneOBjCzjga7jgbbjgajjgoINCivjgZfjgofjgYbjgo8s44GN44KI44G/DQor44G+44Gk44GL44KPLOOBsuOCjeOChuOBjQ0KK+OBl+OCguOCgOOCiSzjgobjgYbjgZgNCivjgo/jgZ/jgarjgbks44Gq44GK44KG44GNDQor44GT44Gw44KE44GXLOOBl+OCk+OBmA0KK+OBhOOBhOOBoCzjgZPjgYbjgYTjgaENCivjgbXjgY/jgoLjgags44GR44KT44GE44GhDQor44KA44KJ44KE44G+LOOBsuOCjeOBjQ0KK+OBu+OCiizjgb7jgZXjgYLjgY0NCivjgoTjgb7jga4s44Gy44Gn44GKDQor44Gr44GX44KP44GNLOOCiOOBhuOBmA0KK+OBvuOBpOOBiizjgb7jgZXjgaoNCivjgYrjgYvjgoLjgags44G+44GT44GoDQor44GK44GK44GV44GNLOOBkeOCk+OBhOOBoQ0KK+OBhuOCgeOCguOBqCzjgarjgYrjgbXjgb8NCivjgYrjgYvjgoDjgoks44GC44Gf44KLDQor44GT44GE44GRLOOBk+OBhuOBm+OBhA0KK+OBiuOBiuOBn+OBqyzjgb7jgZXjgYLjgY0NCivjgYvjgZ/jgYrjgYss44G+44GV44GNDQor44GK44GL44GgLOOBl+OBoeOCjeOBhg0KK+OBteOBj+OBl+OBvizjgojjgZfjgYoNCivjgYjjgaDjgarjgYss44KE44GZ44Gu44KKDQor44GZ44Ga44GNLOOBl+OBkuOCiw0KK+OBhOOBoeOBi+OCjyzjgZvjgYTjgYTjgaENCivjgY/jgo3jgYvjgo8s44GN44KI44GXDQor44GV44Go44GGLOOBjeOCiOOBsuOBlQ0KK+OBiuOBiuOBleOCjyzjgYvjgZrjgbLjgZMNCivjgoLjgaHjgZrjgY0s44GZ44GI44Gy44KNDQor44KE44G+44GX44GfLOOBkeOBhOOBhOOBoeOCjeOBhg0KK+OBhOOBoeOBi+OCjyzjgZ/jgYvjgZcNCivjgbXjgYvjgZbjgo8s44GL44Ga44G7DQor44GP44G844GfLOOBruOBtuOBig0KK+OBq+OBl+OCgOOCiSzjgZPjgYbjgZgNCivjga3jgY7jgZcs44Gy44GV44KG44GNDQor44GT44KT44GpLOOBkeOCk+OBmA0KK+OBteOCi+OChCzjgb/jgaTjgY4NCivjgZPjgbDjgoTjgZcs44Gf44Gk44GKDQor44Gf44KA44KJLOOBsuOCjeOBsuOBkw0KK+OBv+OBpOOBr+OBlyzjgaDjgYTjga/jgaHjgo3jgYYNCivjgY/jgb7jgZbjgo8s44GL44Gk44G/DQor44KE44G+44GgLOOCiOOBl+OBig0KK+OBsuOCjeOBpCzjgYvjgZrjgb/jgaQNCivjgYvjga3jgaAs44KG44Gf44GLDQor44GC44GdLOOChuOBjeOBig0KK+OBiOOBs+OBr+OCiSzjgY3jgYTjgaENCivjgoTjgZnjgYQs44GP44Gr44GKDQor44GZ44Gp44GGLOOBsuOCjeOBkw0KK+OChOOBr+OBnyzjgb7jgZXjga7jgooNCivjgZXjgYvjgYQs44Go44KC44Gy44KNDQor44GV44GMLOOCiOOBl+OBig0KK+OChOOBvuOBluOBjSzjgYjjgb/jgZMNCivjgarjgYvjgoDjgoks44KI44GG44GTDQor44GE44GW44KPLOOBsuOCjeOBoeOBiw0KK+OBguOCieOBhCzjgZHjgpPjgYTjgaENCivjgYbjgbbjgYvjgZ8s44GV44Gg44G/DQor44KP44Gf44Gs44GNLOOBn+OBoOOChuOBjQ0KK+OBsuOBl+OBnyzjga7jgbzjgosNCivjgYvjgajjgYYs44KG44GG44GTDQor44KE44G+44GtLOOCiOOBl+OBqA0KK+OChOOBvuOBl+OBnyzjgbLjgo3jgZcNCivjga7jgoDjgoks44KI44GX44KN44GGDQor44KE44Gq44GELOOBvuOBleOChuOBjQ0KK+OCgOOCieOBi+OBvyzjgb7jgZXjgb/jgaENCivjgYLjgYrjgY0s44GC44GN44KJDQor44KE44GX44KNLOOBmeOBmeOCgA0KK+OBguOBleOBvizjgb7jgZXjgbLjgo0NCivjgYrjgY/jgaAs44G144G/44GKDQor44GE44GX44Gw44GXLOOChuOBhuOBmA0KK+OBv+OBquOBv+OBpyzjgbLjgafjgYLjgY0NCivjgYTjgazjgZrjgYss44GT44GG44G444GEDQor44Go44GN44KPLOOCiOOBl+OBr+OCiw0KK+OBv+OBhuOCiSzjgoTjgZnjga7jgbYNCivjgb7jgbbjgaEs44Go44GX44Gv44KLDQor44GK44Gw44KJLOOBsuOCjeOChuOBjQ0KK+OBvuOBpOOBjSzjgbLjgo3jgZcNCivjgYjjgZDjgaEs44GR44KT44GE44GhDQor44GK44GK44G/LOOBn+OBkeOBlw0KK+OCj+OBn+OBquOBuSzjgZ/jgZHjgZcNCivjgYLjgonjgYvjgo8s44GX44KT44GYDQor44GZ44GM44GuLOOBguOBjeOCiQ0KK+OChOOBmeOBhCzjgZPjgYbjgbjjgYQNCivjgb/jgoTjgoLjgags44Gy44KN44KE44GZDQor44G144GY44GO44KPLOOBk+OBhuOBhOOBoQ0KK+OBjeOBn+OBjOOCjyzjgb/jgY3jgYoNCivjgZ/jgavjgZDjgaEs44G/44Gk44KLDQor44GT44GY44G+LOOCiOOBl+OBguOBjQ0KK+OBguOBvuOBi+OCjyzjgobjgZ/jgYsNCivjgYrjgYrjgazjgY0s44KG44Gf44GLDQor44Gf44Gq44G5LOOBk+OBhuOBmA0KK+OBvuOCi+OBr+OBlyzjgYTjgZXjgYoNCivjgoTjganjgoQs44GY44KF44KT44GE44GhDQor44GK44GK44GM44GPLOOCiOOBl+OBsuOCjQ0KK+OBleOBi+OBnyzjgZPjgYbjgbjjgYQNCivjga/jgoks44Gy44Gn44G/DQor44Gf44GL44GOLOOBsuOBp+OBig0KK+OBguOBhOOBr+OCiSzjgYLjgY3jgokNCivjgYrjgYrjgZ8s44Go44GK44KLDQor44GC44GN44KE44G+LOOCiOOBl+OBsuOCjQ0KK+OBl+OBv+OBmizjgZ/jgYvjgYoNCivjgZPjgbDjgoTjgZcs44GK44GV44G144G/DQor44Gv44Gf44KC44GoLOOBkeOCk+OBmA0KK+OBhuOBmeOBoCzjgZ/jgYvjga7jgbYNCivjgZ/jgYvjga/jgZcs44GL44Ga44GKDQor44Gq44GL44GM44KPLOOBpuOBpOOBig0KK+OBvuOBpOOBsOOCiSzjga/jgovjgYoNCivjgY/jgazjgY4s44KG44Gf44GLDQor44GK44GM44KPLOOCiOOBl+OBig0KK+OBpOOBmCzjgYvjgZrjgZ/jgYsNCivjgYvjgo/jgYQs44GR44GE44GE44Gh44KN44GGDQor44GZ44GM44KP44KJLOOBl+OCheOBhuOBhOOBoQ0KK+OCgOOBqOOBhizjgYvjgZrjgYoNCivjgYrjgbDjgoks44KE44GZ44Go44GXDQor44GL44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBi+OBtuOCieOBjSzjgobjgY3jgYoNCivjgo/jgYvjgZ/jgbks44Gk44Go44KADQor44GK44GM44KPLOOBk+OBhuOBl+OCjeOBhg0KK+OBhOOCj+OBleOBjSzjgbLjgo3jgobjgY0NCivjgarjgorjgZ8s44GK44GV44KADQor44GC44GN44KE44G+LOOBn+OBi+OBlw0KK+OBv+OBpOOBhCzjgZHjgYTjgYTjgaENCivjgYjjgpPjgaks44KG44Gf44GLDQor44KI44Gt44GfLOOBguOBjeOBig0KK+OBguOBiuOBhCzjgY3jgojjgZcNCivjgYrjgYvjgoLjgags44KI44GX44Gy44GVDQor44GK44GK44Gk44GLLOOBl+OCk+OBhOOBoQ0KK+OBteOBj+OCguOCiizjgZXjgYvjgYgNCivjgabjgZfjgb4s44GL44Ga44G+44GVDQor44Gv44G+LOOBsuOBp+OBjQ0KK+OCiOOBl+OBoCzjga/jgZjjgoENCivjgYvjgo/jgbks44KI44GX44Gv44KLDQor44Gf44Gq44GLLOOChOOBmeOBruOCig0KK+OBn+OBi+OBr+OBlyzjgY3jgofjgYbjgYTjgaENCivjgZ/jgarjgbks44G144G/44GC44GNDQor44GC44GdLOOBsuOCjeOBhOOBoQ0KK+OBn+OBi+OBoCzjgbLjgo3jgZcNCivjgb/jgoTjga4s44Go44GX44GKDQor44GG44GI44Ga44G/LOOBsuOBqOOBlw0KK+OBhOOBoeOBi+OCjyzjgoTjgZnjgYLjgY0NCivjgYLjgZXjgo8s44Go44KC44G144G/DQor44GE44Gq44KC44GoLOOBi+OBmuOBig0KK+OCguOCiuOChCzjgbLjgajjgZcNCivjgarjgYvjgZ/jgass44GR44KTDQor44G/44KE44KC44GoLOOBhOOBoeOBnuOBhg0KK+OBv+OBj+OBqyzjgYjjgYTjgYTjgaENCivjgY3jgZ/jgoDjgoks44Gf44Gg44G+44GVDQor44KE44Gf44G5LOOBvuOBleOBsuOBpw0KK+OBquOBjOOBi+OCjyzjgorjgofjgYbjgYTjgaENCivjgoTjgaos44GL44Ga44GKDQor44GV44GP44G+LOOBv+OBpOOCiw0KK+OBguOCieOBhCzjgajjgZfjgYoNCivjgZfjgb7jgaAs44Gq44GK44GTDQor44Gm44Ga44GLLOOBl+OCheOCk+OBhOOBoQ0KK+OBhuOBiOOBrizjgZfjgoXjgpPjgYTjgaENCivjgZXjgYTjgajjgYYs44Gy44KN44KG44GNDQor44GK44GK44GP44KP44GgLOOBvuOBquOBtg0KK+OCiOOBk+OChOOBvizjgojjgZfjgYrjgb8NCivjgo/jgZ/jgarjgbks44KI44GG44GE44GhDQor44Gr44GX44KA44KJLOOBguOBjeOBruOCig0KK+OBn+OBi+OBvuOBpCzjgZPjgYbjgYTjgaENCivjgavjgZfjgoDjgoks44Gf44Gk44G+DQor44GE44Gh44GNLOOBsuOCjeOBlw0KK+OBhOOCj+OBl+OBnyzjga7jgbbjgaTjgaoNCivjgYrjga4s44Go44GX44GKDQor44Gr44GX44GNLOOBn+OBpOOBig0KK+OBleOCjyzjgYvjgZrjgYoNCivjgZ/jgYvjgb8s44GK44GV44KADQor44KE44GZ44G144GPLOOBkeOCk+OBmA0KK+OBiuOBiuOBnyzjgbLjgo3jgZcNCivjgYrjgYvjgoLjgags44Gy44KN44G+44GVDQor44GV44GL44GELOOChOOBmeOBig0KK+OBteOBmOOCguOBqCzjgajjgY3jgYoNCivjgb7jgaTjgoLjgags44GX44GS44Gu44KKDQor44GK44GK44KE44G2LOOBi+OBmuOChA0KK+OBq+OBl+OCgOOCiSzjgZfjgoXjgYbjgYTjgaENCivjgbvjgorjgYbjgaEs44GR44GE44GE44GhDQor44GE44GX44KC44GoLOOBl+OCheOBhuOBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgarjgorjgYoNCivjgZ/jgZHjgYbjgaEs44GX44KT44GE44Gh44KN44GGDQor44KC44Go44KE44G+LOOBk+OBhuOBl+OCjeOBhg0KK+OCiOOBl+OBquOBjCzjgZPjgYbjgZgNCivjgbXjgovjgYvjgo8s44G/44Gh44GKDQor44Gf44Gr44GQ44GhLOOCiOOBl+OBig0KK+OBn+OBkeOBk+OBlyzjgb7jgZXjgajjgZcNCivjgaTjgoDjgoks44GT44GG44Gb44GEDQor44GK44GuLOOBl+OBkuOBig0KK+OBiuOBi+OCguOBqCzjgZXjgajjgZcNCivjgbXjgovjgZ8s44G+44GV44Gy44KNDQor44Gr44GX44GuLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBv+OBmuOBn+OBqyzjgbLjgo3jgobjgY0NCivjgZPjgoTjgb4s44Gy44GV44GXDQor44GN44GP44GhLOOBkeOCk+OBhOOBoQ0KK+OBiuOBiuOBk+OBhuOBoSzjgb7jgZXjgYLjgY0NCivjgYvjgo/jgZ8s44Gf44GL44GXDQor44GP44Gv44KJLOOCiOOBl+OChuOBjQ0KK+OBteOCi+OBr+OBlyzjgZPjgYbjgZ7jgYYNCivjgZ/jgYvjgojjgZcs44G144G/44Go44KIDQor44GL44GZLOOBruOBtuOChuOBjQ0KK+OBguOBv+OCguOBqCzjgZnjgZnjgoANCivjgoDjga3jgajjgYYs44Go44GX44GKDQor44G+44Gk44KC44GoLOOBmeOBmeOCgA0KK+OBn+OBi+OBquOBlyzjgb7jgZXjgYLjgY0NCivjgYLjgY3jgZ8s44Go44GX44GKDQor44Gf44GL44Gv44GXLOOChOOBmeOBv+OBoQ0KK+OBquOBjOOBhCzjgZ/jgYvjgZcNCivjgojjgZfjgaAs44Gk44GL44GVDQor44G+44Gk44KC44GoLOOChOOBmeOBguOBjQ0KK+OBqOOBj+OBoCzjgb/jgaHjgYoNCivjgbLjgonjgYQs44Gu44Ge44KADQor44GK44GP44GX44G+LOOBn+OBi+OBlw0KK+OBvuOBl+OBnyzjgZfjgZLjgYoNCivjgoTjgb7jgaAs44GN44G/44Gy44KNDQor44GV44GP44KJ44GELOOBqOOCguOBig0KK+OBn+OBjeOBluOCjyzjgZXjgajjgZcNCivjgb7jgZnjgZMs44KG44GG44GYDQor44GX44KT44GL44KPLOOBsuOCjeOBiA0KK+OBiuOBiuOBn+OBqyzjgZ/jgaDjgbLjgo0NCivjgYvjgo/jga4s44KI44GX44G/44GkDQor44GC44KJ44GL44KPLOOBpuOBpOOBig0KK+OBguOBoOOBoSzjgZ/jgYvjgobjgY0NCivjgYbjgaHjgaAs44GR44KT44GYDQor44GT44Gv44KJLOOBqOOBl+OBsuOBkw0KK+OBiuOBiuOBr+OBlyzjgYvjgZrjgbLjgZMNCivjgYvjgoHjgYrjgYss44KI44GX44GKDQor44G/44KA44KJLOOBqOOBv+OBig0KK+OBhOOBjSzjgojjgZ4NCivjgYLjgZfjgZrjgYss44Gy44KN44GXDQor44KE44G+44KC44GoLOOBsuOCjeOBruOCig0KK+OCiOOBl+OBoCzjgYrjgZXjgoANCivjga/jgonjgYrjgYss44GL44Gk44KE44GZDQor44GG44KL44KP44GXLOOBsuOCjeOBlw0KK+OBiuOCk+OBoCzjgZHjgpPjgZgNCivjgYTjgpPjgaks44G+44GV44GKDQor44Gf44GR44Gq44GLLOOBvuOBleOBqOOBlw0KK+OBteOBmOOBleOCjyzjgb7jgoLjgosNCivjgYrjgYrjgoLjgoos44G+44GV44KG44GNDQor44Gq44GL44KA44KJLOOBsuOCjeOBlw0KK+OBl+OCh+OBhuOBmCzjgojjgZfjga7jgooNCivjgY3jgZ/jgZjjgb4s44KI44GX44GC44GNDQor44GE44Go44GGLOOBguOBjeOCiQ0KK+OBsuOCieOBiizjgYvjgZrjgZ/jgYsNCivjgZnjgb/jgoLjgags44Gu44G244KEDQor44Gq44GL44Gf44GrLOOBsuOCjeOBlw0KK+OBguOCieOBl+OBvizjgobjgY3jgYoNCivjgYvjgZ/jgoTjgb4s44KG44GN44Gu44G2DQor44GG44GI44GgLOOBvuOBleOBsuOCjQ0KK+OBteOBmOOCguOBqCzjgbLjgo3jgbXjgb8NCivjgoTjgb7jga/jgZ8s44KK44KF44GG44GYDQor44GK44GK44Gf44GrLOOBpOOBqOOCgA0KK+OBhOOBhOOBrOOBvizjgojjgZfjgbLjgo0NCivjgarjgYzjgZXjgo8s44KI44GX44KN44GGDQor44KE44GZ44GgLOOBl+OCheOBhuOBmA0KK+OBteOBj+OBl+OBvizjgorjgofjgYbjgYTjgaENCivjgZXjgYvjgY3jgbDjgoks44GC44KE44GTDQor44GL44Go44GGLOOBn+OBi+OBlw0KK+OCiOOBk+OBluOCjyzjgbXjgb/jgZ/jgYsNCivjgYvjganjga4s44GL44Ga44G/DQor44KE44G+44GK44GLLOOBjeOCiOOBlw0KK+OBi+OBv+OBn+OBqyzjgbLjgo3jgY0NCivjgYvjgajjgYYs44GI44Gk44KN44GGDQor44Gu44KC44GoLOOBqOOBl+OBi+OBmg0KK+OBmeOBjuOCguOBqCzjgZvjgYTjgYTjgaENCivjgbXjgZjjga4s44GT44GG44GYDQor44GE44Gu44GG44GILOOBl+OCh+OBhuOBmA0KK+OBr+OBmyzjgb7jgZXjgYvjgaQNCivjgoLjgoos44GI44KJ44G2DQor44GL44KP44Gw44GfLOOBsuOBp+OBig0KK+OBi+OCj+OBnuOBiCzjgZfjgofjgYbjgYTjgaENCivjga/jgZfjgoLjgags44Gg44GE44GX44KTDQor44Gy44KN44G+44GVLOOChOOBmeOBsuOCjQ0KK+OBjeOBl+OCguOBqCzjgY/jgavjgYoNCivjgbLjgonjgaTjgYss44G/44Gu44KLDQor44GG44GI44GgLOOCiOOBl+OChuOBjQ0KK+OBguOCieOBhCzjgajjgZfjgbLjgZMNCivjgYTjgYTjgaAs44G+44GV44KG44GNDQor44Gy44KN44GX44G+LOOBl+OCh+OBhuOBnuOBhg0KK+OBhOOBleOBiyzjgYvjgaTjgbLjgo0NCivjgZnjgZrjgY0s44KI44GX44GKDQor44GP44KJ44KC44GhLOOBn+OBi+OBig0KK+OBleOBhOOBqOOBhizjgb7jgZXjgYoNCivjgZnjgZrjgY0s44G/44Gk44GQDQor44G144GL44KELOOBpuOBpOOBmA0KK+OBleOBi+OBhCzjgajjgZfjgo3jgYYNCivjgYrjgYrjgo/jgaAs44Go44GX44GKDQor44GL44KB44KELOOBi+OBpOOBvw0KK+OBj+OBleOBhuOCiSzjgajjgZfjgYoNCivjgo/jgaAs44GL44Ga44GKDQor44GU44Go44GGLOOBjeOCh+OBhuOBhOOBoQ0KK+OBsuOCieOBteOBjyzjgYLjgY3jgokNCivjgoLjgo3jgoQs44Gy44Gn44Go44GXDQor44GE44GR44GgLOOBleOBoOOChuOBjQ0KK+OBvuOBmeOBoCzjgb7jgZXjga/jgosNCivjgb/jgZrjga4s44Go44GX44Gf44GLDQor44Gv44KE44GXLOOBjeOCiOOBqOOBlw0KK+OBguOBiuOBjSzjgajjgZfjgbLjgZMNCivjgZPjgbDjgoos44G+44GV44KG44GNDQor44G/44GV44KPLOOBleOBtuOCjeOBhg0KK+OBn+OBi+OBjizjgabjgaTjgYoNCivjgYjjgpPjgaks44GR44KT44GE44GhDQor44GZ44GM44GV44KPLOOBm+OBhOOBmA0KK+OBiuOCiuOBr+OCiSzjgajjgojjgb8NCivjgb7jgaTjgarjgYws44Gf44GL44G144G/DQor44GL44GV44GELOOBjeOCiOOBguOBjQ0KK+OBm+OCgOOCiSzjgZ/jgYvjgZcNCivjgZXjgY/jgonjgYQs44Gf44GL44GC44GNDQor44Gm44KJ44GL44GpLOOCiOOBl+OChuOBjQ0KK+OBteOBmOOBnyzjgoTjgZnjgYLjgY0NCivjgYvjgo/jga7jgbks44GL44GE44GhDQor44GC44GK44GwLOOBvuOBleOCiw0KK+OCgOOCieOCguOBqCzjgobjgY3jgojjgZcNCivjgaTjgbzjgYbjgaEs44Gf44GL44GXDQor44G144KL44GX44KH44GGLOOBteOBmOOBig0KK+OBl+OBsOOChOOBvizjgbXjgb/jgYoNCivjgoTjgb7jgoLjgags44Gf44GL44Gy44KNDQor44GG44Gh44GgLOOBsuOCjeOBteOBvw0KK+OBvuOBiOOBluOCjyzjgajjgb/jgYoNCivjgZPjgoDjgoks44GC44GN44Gu44G2DQor44KE44G+44GV44GNLOOCiOOBl+OBmA0KK+OBhuOBl+OBjSzjgYvjgZrjgb8NCivjgb7jgaHjgoTjgb4s44GX44KH44GG44GYDQor44G144GY44Gs44GNLOOBmeOBmeOCgA0KK+OBquOBi+OCgOOCiSzjgb7jgaTjgb8NCivjgY/jgZnjgoLjgags44Gm44KL44GKDQor44GZ44Ga44GNLOOCiOOBl+OBig0KK+OBhuOBiOOChOOBvizjgajjgZfjgobjgY0NCivjgZPjgYTjgZEs44Gy44KN44GXDQor44Gv44Gb44GM44KPLOOBv+OBpOOBguOBjQ0KK+OBteOCi+OBi+OCjyzjgoTjgZnjgbLjgo0NCivjgoTjgb7jgaAs44GC44GN44GKDQor44KG44Gv44KJ44GOLOOBv+OBpOOCiOOBlw0KK+OBiuOBl+OBvizjga7jgorjgobjgY0NCivjgZ3jga0s44G+44GV44Gy44KNDQor44Go44GG44G+LOOBleOBoeOBsuOCjQ0KK+OBn+OBi+OBr+OBlyzjgZfjgZrjgYoNCivjgYvjgZHjga/jgZ8s44G+44GV44GKDQor44GE44GX44GELOOBl+OBkuOCiw0KK+OBleOBqOOBhizjga7jgorjgobjgY0NCivjgoDjgonjgoTjgb4s44GR44KT44GYDQor44G744KK44GQ44GhLOOBvuOBk+OBqA0KK+OBquOBi+OBluOBqCzjgbLjgo3jgZcNCivjgZXjgajjgYYs44G+44GT44GoDQor44GL44Gt44GTLOOCiuOCheOBhuOBnuOBhg0KK+OBi+OBl+OBvizjgajjgZfjga7jgbYNCivjgajjgZDjgaEs44Gy44KN44KADQor44GT44G/44KE44G+LOOBjeOBv+OBguOBjeOCiQ0KK+OChOOBvuOBiuOBiyzjgojjgZfjga7jgbYNCivjgZ/jgYvjga/jgZcs44GR44GE44GE44GhDQor44KC44KK44GfLOOBkeOBhOOBhOOBoQ0KK+OCiOOBk+OBhCzjgojjgZfjga7jgbYNCivjgbLjgonjgYQs44GR44GE44GE44GhDQor44GX44GE44Gw44GXLOOBvuOBleOBn+OBkQ0KK+OBi+OBreOBkyzjgb7jgZXjgbXjgb8NCivjgarjgYvjga0s44Gu44G244Gv44KLDQor44Gb44GN44GQ44GhLOOBpuOBpOOBig0KK+OBv+OCguOCiizjgZ/jgYvjgbLjgZMNCivjgY3jgY/jgaEs44G+44GV44Gf44GLDQor44KE44G+44KC44GoLOOBi+OBpOOBmA0KK+OBguOCieOBi+OCjyzjgZ/jgYvjgYoNCivjgajjgoLjgY/jgass44G+44GV44GNDQor44Go44G/44GfLOOBruOCiuOBi+OBmg0KK+OBn+OBi+OBr+OBlyzjgZfjgoXjgYbjgbjjgYQNCivjgajjgYzjgZcs44Gu44G244GKDQor44GL44KP44KA44KJLOOBqOOBl+OBsuOCjQ0KK+OBteOBj+OBquOBjCzjgZHjgYTjgZgNCivjgb7jgY3jgZ8s44Go44GP44G/DQor44GV44GuLOOBv+OBruOCiw0KK+OBleOBqOOCgOOCiSzjgZHjgYTjgZgNCivjgZXjgYvjga4s44GY44KF44KT44KEDQor44Gk44Gh44Gv44GXLOOBl+OBkuOBguOBjQ0KK+OBhuOBiOOBrizjgZHjgpPjgZ7jgYYNCivjgarjgYvjgYzjgo8s44Gy44Gn44GC44GNDQor44Go44GP44Gq44GMLOOBkeOCk+OBmA0KK+OBhOOBqOOBhizjgYvjgZrjgYoNCivjgbLjgZXjgb7jgaQs44Go44KI44Go44GXDQor44GK44GK44Gk44GLLOOBi+OCgeOBig0KK+OBi+OCj+OCguOBqCzjgZfjgZLjgY0NCivjga7jgoDjgoks44KI44GX44GE44GhDQor44GL44Gu44GGLOOChuOBn+OBiw0KK+OBhuOBiOOBleOBiyzjgobjgYbjgZgNCivjgbXjgZjjgo/jgoks44Gy44KJ44GKDQor44GK44GM44KPLOOBvuOBleOBqA0KK+OBj+OCieOBnyzjgajjgoLjgbXjgb8NCivjga/jgarjgZ3jgags44Go44KI44G144G/DQor44Gr44GX44GL44KPLOOBn+OBi+OCiOOBlw0KK+OBiOOBs+OBmSzjgbLjgafjgYoNCivjgoTjgZnjga7jgoos44KI44GX44Gv44KLDQor44GV44GL44GELOOBn+OBkeOBlw0KK+OBvuOBiOOBoCzjgojjgZfjgYLjgY0NCivjgbXjgY/jgaAs44GX44GS44Gf44GLDQor44KE44G+44KC44GoLOOBvuOBleOBmuOBvw0KK+OBl+OBiuOBnyzjgoTjgZnjgb7jgZUNCivjgoDjgonjgYvjgb8s44Go44KC44KIDQor44GE44GP44G/LOOBn+OBi+OBlw0KK+OBquOBi+OBjizjgobjgb8NCivjgajjgY/jgb7jgaQs44Gf44GL44GKDQor44Gf44Gr44GELOOBqOOBl+OChuOBjQ0KK+OBiuOBiuOChOOBvizjgZHjgpPjgZgNCivjgZ/jga4s44Gf44GL44Gh44G7DQor44GK44GK44GfLOOBsuOCjeOBruOBtg0KK+OBj+OBvuOBrizjgYLjgY3jgYoNCivjgZXjgo/jgZDjgaEs44G+44GV44GP44GrDQor44GC44GV44GuLOOBi+OBmuOBig0KK+OBleOBi+OBkOOBoSzjga7jgorjgobjgY0NCivjgo/jgZ/jgarjgbks44Gk44Go44KADQor44GL44Go44GGLOOBi+OBmuOBig0KK+OBvuOBiOOBi+OCjyzjgZ/jgYvjgZcNCivjgb7jgaTjgoLjgags44GL44Ga44GKDQor44G+44Gk44KC44GoLOOBqOOBl+OBig0KK+OChOOBvuOBquOBiyzjgYjjgYTjgZgNCivjgZPjgbDjgoTjgZcs44GT44GG44GYDQor44G144GY44GfLOOBn+OBpOOBig0KK+OChOOBjizjgb7jgZXjgb8NCivjgYTjgo/jgYQs44G+44GV44Gf44GLDQor44G144GP44GX44G+LOOBsuOBp+OBvw0KK+OBteOCi+OBi+OCjyzjgZPjgYbjgYTjgaENCivjgYrjgYzjgZ8s44G+44GV44Gu44KKDQor44GZ44Ga44GNLOOBn+OBoOOBsuOBkw0KK+OBl+OBi+OBvizjgZ/jgYvjgZcNCivjgY3jgZfjgoLjgags44GX44KF44KT44GE44GhDQor44GT44KN44GOLOOBi+OBpOOBvw0KK+OBteOBn+OBvyzjgY3jgojjgZcNCivjgoTjgZfjgo0s44Go44GX44GKDQor44Gv44KK44GE44GRLOOCiOOBl+OBr+OCiw0KK+OBl+OCgOOCiSzjgYLjgorjgb7jgZUNCivjgarjgYzjgY/jgoks44GE44Gh44KN44GGDQor44G/44Gq44G/LOOBk+OBhuOBmA0KK+OBqOOBj+OBquOBjCzjgY3jgojjgZcNCivjgZ/jgarjgYss44G144GP44KADQor44Gm44KJ44GV44GNLOOBl+OCjeOBhg0KK+OBi+OBqOOBhizjgajjgYrjgosNCivjgb/jgZrjga4s44KI44GX44GC44GNDQor44Gf44KC44GoLOOBsuOBqOOBlw0KK+OBhuOBoeOBoCzjgbLjgo3jgYvjgZoNCivjgZ/jgZHjgYTjgaEs44KI44GX44KG44GNDQor44Gy44Gz44GuLOOBsuOCjeOBlw0KK+OBk+OBsOOChOOBlyzjgorjgofjgYbjgbjjgYQNCivjgo/jgZ/jgarjgbks44Gy44KN44Gf44GgDQor44G144GL44GgLOOBvuOBleOBsuOCjQ0KK+OBhOOBl+OBn+OBqyzjgYvjgZrjgbLjgZUNCivjgYTjgacs44KI44GX44KG44GNDQor44Gr44GE44GV44GoLOOBvuOBleOChuOBjQ0KK+OBmeOBquOBr+OCiSzjgZfjgofjgYbjgZgNCivjgZfjgb/jgZos44G+44GV44GKDQor44GL44Go44GGLOOBruOCiuOChuOBjQ0KK+OBquOBhOOBqOOBhizjgZjjgoXjgpPjgZgNCivjgZPjgYTjgZEs44Go44GG44GZ44GRDQor44GN44Gf44KA44KJLOOBqOOCiOOBsuOBkw0KK+OBi+OBjOOCjyzjgajjgZfjgobjgY0NCivjgYTjgZHjgaAs44Gf44GL44GXDQor44GL44Gu44GGLOOBn+OBi+OBlw0KK+OBiuOBi+OCguOBqCzjgZ3jgYbjgZgNCivjgZPjgbDjgoTjgZcs44GV44Gg44Gy44KNDQor44GE44GX44GELOOBvuOBleOBsuOCjQ0KK+OBleOBiOOBjSzjgb7jgZnjgobjgY0NCivjgZXjgo/jgaAs44Gf44GL44GXDQor44GU44Go44GGLOOBruOBtuOChuOBjQ0KK+OBiuOBrizjgb7jgZXjgbLjgo0NCivjgbXjgarjgYrjgYss44G+44GV44GC44GNDQor44GX44KT44KELOOBvuOBleOBi+OBmg0KK+OBu+OCk+OBluOCjyzjgbLjgYvjgosNCivjgoTjgb7jgYbjgaEs44GX44GS44GYDQor44GE44GX44GuLOOBpOOBqOOCgA0KK+OBhOOBiuOBjyzjgbLjgafjgajjgZcNCivjgYLjgonjgY0s44KI44GG44GTDQor44G144GY44KP44GNLOOBv+OBruOCiw0KK+OBhOOBoeOCgOOCiSzjgb7jgZXjgY0NCivjga/jgoTjgZcs44KI44GX44GV44GgDQor44KC44KKLOOBn+OBj+OBmA0KK+OBjeOCgOOCiSzjgZfjgZLjgosNCivjgobjgY3jgbXjgY0s44G+44GV44Gy44GVDQor44Gv44GO44KC44GoLOOBhOOCj+OBig0KK+OBr+OBl+OCguOBqCzjgbLjgafjgYoNCivjgY3jgZ/jgoTjgb4s44KI44GX44Gm44KLDQor44G144GY44KC44KKLOOBkeOCk+OBmA0KK+OBiuOBj+OBrizjgYrjgZXjgoANCivjgoTjgb7jgaAs44G/44Gk44GKDQor44Gf44GULOOBn+OBi+OBlw0KK+OBguOBleOBhCzjgojjgZfjgbLjgo0NCivjgoLjgorjga4s44Gy44KN44GXDQor44G/44Gq44GELOOBkeOBhOOBkw0KK+OCguOCiuOBleOCjyzjgajjgojjgZMNCivjgarjgorjgZXjgo8s44G144G/44GTDQor44KC44KK44KC44GoLOOBvuOBleOCiw0KK+OBk+OBsOOChOOBlyzjgojjgZfjga7jgooNCivjgZfjgb7jgaAs44Gy44Gn44GNDQor44GZ44Ga44GNLOOBv+OBleOBkw0KK+OBteOBj+OBoCzjgZHjgYQNCivjgYLjgonjgYQs44GC44GN44Gu44G2DQor44Gf44Gr44KE44G+LOOBl+OCheOBhuOBhOOBoQ0KK+OBiuOBi+OCguOBqCzjgb7jgaTjgYoNCivjgaDjgYTjgoLjgpMs44G/44Gu44KLDQor44Gv44KE44GXLOOCiOOBl+OBquOBig0KK+OBhOOBl+OBoCzjgbXjgY/jgYoNCivjgbLjgo3jgZXjgo8s44KI44GX44G/44GhDQor44KI44GX44GK44GLLOOBvuOBleOBmuOBvw0KK+OBvuOBpOOCguOBqCzjgZfjgpPjgYTjgaENCivjgarjgYvjgZjjgb4s44GV44GL44GIDQor44GN44GfLOOBleOBquOBiA0KK+OBq+OBl+OCgOOCiSzjgZfjgZLjgYvjgZoNCivjga/jgaPjgajjgoos44Gy44Gn44GKDQor44KE44G+44KC44GoLOOBi+OBmuOBig0KK+OBhOOBqOOBhizjgYLjgY3jgokNCivjgY3jgZ/jgoDjgoks44G+44GZ44G/DQor44Gf44Gq44GLLOOBqOOBv+OBig0KK+OBhOOBiuOBjSzjgajjgb/jgoTjgZkNCivjgYvjgb7jgZ8s44GT44GG44GYDQor44GX44G/44GaLOOBsuOCjeOBlw0KK+OBvuOBmeOBiuOBiyzjgbLjgafjgYoNCivjgZXjgo/jgaAs44GX44KH44GG44GTDQor44Gq44GL44GE44GXLOOBn+OBkeOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgbLjgo0NCivjgojjgZfjgZbjgo8s44GC44GN44GKDQor44GV44GV44GK44GLLOOBruOCiuOBguOBjQ0KK+OChOOBvuOBkOOBoSzjgajjgZfjgYoNCivjgYTjgb7jgbXjgY8s44Gf44Gg44GXDQor44GL44G/44KELOOBqOOBv+OBiA0KK+OCj+OBlSzjgbLjgafjgYoNCivjgY3jgY/jgaEs44GC44GN44Gy44GTDQor44GG44GL44GELOOBv+OBjeOBig0KK+OBhOOCj+OBvizjgZvjgYTjgYTjgaENCivjgaTjgZgs44G244KT44GYDQor44Gf44GR44GgLOOBleOBoOOBpOOBkA0KK+OBm+OBqOOBjOOCjyzjgZfjgZLjgajjgZcNCivjgZPjgZfjgoDjgoks44G+44GV44GXDQor44KP44Gf44Gq44G5LOOBmOOCheOCk+OBhOOBoQ0KK+OBhuOBleOBvyzjgb/jgaTjga7jgbYNCivjgYrjgYvjgaAs44Go44GX44Gy44GTDQor44G144GY44KP44KJLOOBl+OCh+OBhuOBmA0KK+OBi+OBqOOBhizjgoTjgZnjgobjgY0NCivjgYTjgZfjga/jgoks44G+44GV44KLDQor44Gy44Gq44GfLOOBjeOCh+OBhuOBuOOBhA0KK+OBhuOBiOOBmeOBjizjgZfjgZLjgbLjgo0NCivjgZfjgbDjgZ8s44Gu44G244GL44GaDQor44GK44GP44GgLOOBvuOBleOCiw0KK+OBmeOBquOChOOBvizjgojjgZfjgYoNCivjgYTjgb7jgYQs44GC44GN44Gy44GTDQor44Gq44GL44KA44KJLOOBruOBtuOBig0KK+OBquOBi+OCguOCiizjgZPjgYbjgZgNCivjgbXjgYvjgZXjgo8s44KA44Gt44Gy44GVDQor44G/44Ga44GfLOOBl+OCk+OBhOOBoQ0KK+OBiuOBrizjgYvjgZrjgZcNCivjgZXjgYTjgajjgYYs44Gy44KN44GXDQor44GX44KF44Gp44GGLOOBv+OBruOCiw0KK+OBteOBj+OBhCzjgZ/jgaTjgbLjgZMNCivjga7jgaAs44GL44Gq44GIDQor44GK44GK44GuLOOBr+OCi+OBjQ0KK+OBk+OBjOOBvyzjgojjgZfjgb7jgZUNCivjgb/jgY0s44G+44GV44KG44GNDQor44GE44GR44GgLOOBteOBv+OBig0KK+OBteOBmOOCguOCiizjgajjgZfjgbLjgZMNCivjgZ/jgYvjgaAs44GL44Ga44GKDQor44GE44GR44GgLOOBruOBtuOBnuOBhg0KK+OBhOOBqOOBhizjga7jgbbjgZ/jgYsNCivjgo/jgZ/jgarjgbks44GL44Ga44Gy44KNDQor44GV44KP44GgLOOBvuOBleOBteOBvw0KK+OBvuOBiOOBmOOBvizjgb7jgZPjgagNCivjgYTjgarjgoDjgoks44GZ44GZ44KADQor44Gq44GL44KA44KJLOOBsuOCjeOBlw0KK+OBquOBi+OBmOOBvizjgZfjga7jgbYNCivjgYTjgo/jgb4s44KI44GX44KG44GNDQor44KP44GL44Gk44GNLOOBsuOBp+OBjQ0KK+OBr+OBm+OBjOOCjyzjgojjgZfjgo3jgYYNCivjgYTjga7jgYbjgYgs44Gf44GL44GXDQor44GL44GV44Gv44KJLOOBk+OBhuOBmA0KK+OBq+OBl+OChOOBvizjgb7jgZXjgbLjgo0NCivjgZnjganjgYYs44GY44KF44KT44GE44GhDQor44GK44GL44G5LOOBqOOBl+OBsuOCjQ0KK+OBteOBj+OBsCzjgZHjgpPjgZgNCivjgb7jgaTjgarjgYws44KE44GZ44GKDQor44GV44GL44GELOOBsuOCjeOBsuOBkw0KK+OBteOBmOOBnyzjgobjgY3jgYoNCivjgarjgYvjgoTjgb4s44Gf44GL44KE44GZDQor44KI44Gt44GgLOOBkeOCk+OBnuOBhg0KK+OBj+OBvuOBnyzjgZPjgYbjgYTjgaENCivjgZPjgoTjgb4s44Gy44KN44KG44GNDQor44KI44Gt44KE44G+LOOBn+OBkeOBlw0KK+OBteOBmOOBi+OCjyzjgZHjgpPjgZgNCivjga/jgorjgYzjgoQs44Gy44KN44GC44GNDQor44Gv44Gb44GM44KPLOOBi+OBmuOBsuOBqA0KK+OCiOOBl+OBoCzjgZ/jgaDjgZcNCivjgY/jgZnjga7jgY0s44KI44GX44G144G/DQor44Gf44GL44Gv44GXLOOBleOBoeOBkw0KK+OBquOBjOOBnyzjgZfjgpPjgZgNCivjgZ3jga7jgY/jgoks44Gy44KN44GXDQor44G+44GZ44KC44GoLOOCiOOBl+OBig0KK+OBiuOBjuOBr+OCiSzjgbLjgo3jgZcNCivjgojjgZfjgaAs44G+44Gq44G2DQor44Gf44Gq44GLLOOBvuOBleOBsuOBkw0KK+OBiOOBoCzjgZvjgYTjgYTjgaENCivjgarjgYss44Gf44KC44GkDQor44GE44GE44Ga44GLLOOBruOBvOOCiw0KK+OBpuOCieOBq+OBlyzjgb7jgZXjga7jgbYNCivjgbXjgY/jgYQs44Gb44GE44GYDQor44Gn44KA44KJLOOBi+OBmuOBsuOBkw0KK+OBleOBiOOBjSzjgZfjgZLjga/jgosNCivjgYbjgaHjgaAs44Gy44Gn44Gu44KKDQor44GX44GE44GqLOOBruOBtuOBig0KK+OBteOCi+OChCzjgojjgZfjga/jgosNCivjgarjgYzjgY/jgbws44GK44GV44KADQor44Gm44KJ44GG44GhLOOBsuOBp+OBguOBjQ0KK+OBiuOBiuOBn+OBiyzjgb7jgZXjgYLjgY0NCivjgbXjgZjjgojjgZcs44Go44GK44KLDQor44GV44GE44Go44GGLOOBvuOBleOBig0KK+OBj+OCjeOBleOCjyzjgbXjgZXjgYgNCivjgYTjgZfjgYvjgo8s44GR44KT44Gd44GGDQor44KI44GX44GuLOOBn+OBi+OBlw0KK+OBk+OBv+OChCzjgYvjgZrjgojjgZcNCivjgoTjgb7jgYzjgZ8s44Go44GX44GKDQor44Gk44KELOOBi+OBiuOCiw0KK+OBq+OBl+OBrizjga7jgorjgobjgY0NCivjgYbjgaHjgaAs44Gy44GV44GKDQor44KP44Gf44Gq44G5LOOBi+OBmuOBv+OBoQ0KK+OCguOCiuOBnyzjga7jgbzjgosNCivjgZPjgZfjgaAs44GT44GG44Ge44GGDQor44Gy44KN44GbLOOCiuOCh+OBhuOBuOOBhA0KK+OCiOOBl+OCgOOCiSzjgYvjgaTjgajjgZcNCivjgb/jgYbjgoks44KI44GX44GL44GaDQor44GT44GE44Ga44G/LOOBsuOBp+OBruOBtg0KK+OBpuOCieOBiizjgb/jgaTjgbLjgo0NCivjgZvjgYzjgo8s44G/44Gh44GKDQor44GL44GE44Ga44GLLOOBguOBjeOCiQ0KK+OBteOBj+OBvuOBmSzjgZnjgZrjgogNCivjgYTjgajjgYbjgZos44GYDQor44Gb44GN44GM44G/LOOBsuOCjeOBlw0KK+OBteOBmCzjgYTjgZrjgb8NCivjgojjgZfjgoDjgoks44GN44KI44GYDQor44G144KL44KC44GoLOOCiOOBl+OChuOBjQ0KK+OBn+OBjeOBnyzjgb7jgarjgbYNCivjgYrjgYvjgaAs44Gy44KN44Gy44GVDQor44Gf44GL44Gv44GXLOOBguOBjeOCiQ0KK+OBn+OBq+OBteOBmCzjgb7jgZXjgYLjgY0NCivjgYTjgb7jgYrjgYss44GL44Ga44Gy44KNDQor44KP44Gf44Gq44G5LOOBkeOCk+OBmA0KK+OChOOBvuOCguOBqCzjgYvjgYrjgosNCivjgojjgaAs44KE44GZ44GKDQor44G144GL44KE44G+LOOBsuOCjeOBlw0KK+OChOOBvuOBkOOBoSzjgbLjgZXjgYoNCivjgZXjga4s44GN44G/DQor44Gf44GL44Gv44GXLOOChuOCig0KK+OBvuOBpOOCguOBqCzjgY3jgojjgZcNCivjgoTjga4s44Gy44GV44GXDQor44GC44GN44GwLOOBi+OBmuOCiOOBlw0KK+OBv+OBqeOCiuOBi+OCjyzjgbLjgo3jgb/jgaQNCivjgZ/jgYvjgZcs44G/44KI44GTDQor44G144KL44GL44KPLOOBv+OBruOCiw0KK+OBsuOBjeOBnyzjgYjjgYTjgZgNCivjgYrjgZbjgY0s44KI44GX44GC44GNDQor44GC44GK44GNLOOBl+OBkuOBiuOBvw0KK+OBleOBiOOBkOOBlSzjgb7jgZXjgbLjgo0NCivjgbXjgZjjgoLjgags44Gy44KN44GXDQor44GT44Gr44GXLOOChuOBhuOBmA0KK+OBiuOBiuOBq+OBlyzjgZfjgoXjgpPjgZnjgZENCivjgbLjgZDjgaEs44G144GY44GNDQor44GP44G844GfLOOBmOOCheOCk+OBhOOBoQ0KK+OChOOBvuOBkOOBoSzjgZfjgo3jgYYNCivjgbXjgovjgYvjgo8s44G+44GV44GoDQor44Gq44KK44GfLOOBhOOBoeOCjeOBhg0KK+OBn+OBquOBiyzjgbXjgZXjgYTjgaENCivjga/jgZ/jgZHjgoTjgb4s44Gm44Gk44GKDQor44G/44KE44KC44GoLOOBv+OBleOBig0KK+OBruOBluOBjSzjgoTjgZnjga/jgosNCivjga/jgZvjgYzjgo8s44Gh44KH44GG44GX44KN44GGDQor44GX44KJ44GL44KPLOOCiOOBl+OBsuOBkw0KK+OBguOBhOOBoCzjgZPjgYbjgbjjgYQNCivjgbLjgo3jgYvjgo8s44Gy44KN44GXDQor44KK44KF44GG44GL44KPLOOBpOOCiOOCgA0KK+OChOOBvuOBkOOBoSzjgb7jgZnjgb8NCivjgY/jgorjgZXjgY0s44Gy44Gn44GKDQor44KC44KK44KC44GoLOOCiOOBl+OBv+OBoQ0KK+OBj+OBvOOBnyzjgb7jgZXjgYLjgY0NCivjgY/jgb7jgZXjgZMs44KC44KK44GX44GSDQor44GC44Gg44GhLOOBkeOCk+OBnw0KK+OBk+OCk+OBrizjgbLjgo3jgYLjgY0NCivjgoTjgb7jgoLjgags44GI44Gk44GTDQor44GE44KP44GELOOCiuOCh+OBhuOBnw0KK+OBiuOBiuOBr+OCiSzjgbLjgafjgYoNCivjgYTjgZfjga/jgoks44Go44KC44Gu44KKDQor44GC44GK44GNLOOBn+OBkeOBlw0KK+OCguOCiizjgojjgorjgZMNCivjgo3jgaPjgb3jgpPjgY4s44G+44GV44GC44GNDQor44GL44Go44GGLOOBk+OBhuOBhOOBoQ0KK+OBleOBqOOBhizjgoTjgZnjgYoNCivjgb7jgYjjgZ7jga4s44GI44GE44GY44KN44GGDQor44G144GY44KC44GoLOOBsuOBp+OBruOBtg0KK+OBn+OBq+OCgOOCiSzjgbLjgo3jgZcNCivjgarjgYvjgavjgZcs44KG44Gf44GLDQor44Gf44GL44Gv44GXLOOBl+OCk+OBmA0KK+OBquOBi+OBhCzjgYvjgZrjgb8NCivjgZ/jgYvjga/jgZcs44Gf44GR44G144G/DQor44GX44KCLOOChuOBhuOBhOOBoeOCjQ0KK+OBl+OBsOOBnyzjgYTjgZXjgoANCivjgbXjgovjgb/jgaEs44KI44GX44GKDQor44Gf44GR44GgLOOBguOBjeOCiQ0KK+OBteOBmOOBnyzjgbLjgo3jgZcNCivjgYvjgY7jgoTjgb4s44Gm44Gk44KEDQor44KP44GhLOOBvuOBleOBruOCig0KK+OBteOBmOOBnyzjgbLjgajjgZcNCivjgZPjgpPjgaks44GX44GS44Gu44KKDQor44G+44Gk44KC44GoLOOBn+OBi+OBlw0KK+OBteOBj+OBhCzjgbLjgafjgobjgY0NCivjgZnjgYzjgo/jgoks44GT44GG44GY44KH44GGDQor44G144GL44KE44G+LOOBguOBjeOCiQ0KK+OBhOOBvuOBhCzjgb7jgZXjgZ/jgYsNCivjgZXjgajjgYYs44GP44Gr44Gy44GTDQor44GL44Gq44GW44KPLOOBi+OBmuOBig0KK+OBteOBoeOBluOBjSzjgYrjgZXjgoANCivjgaTjgYvjgaAs44GX44KH44GG44GE44GhDQor44GE44GX44GW44GNLOOBn+OBi+OChuOBjQ0KK+OBqOOBj+OCiSzjgb/jgY3jgYoNCivjgajjga7jgZXjgY0s44KC44Go44KI44GXDQor44Gf44GL44GNLOOBsuOBp+OBig0KK+OBteOBmOOBnyzjgbLjgo3jgobjgY0NCivjgarjgYzjgZss44KM44GE44GTDQor44Gf44Gq44GLLOOBsuOCjeOChuOBjQ0KK+OBn+OBpOOBvyzjgojjgZfjgYLjgY0NCivjgoTjgb7jgoLjgags44KG44GG44GE44GhDQor44G144GP44GfLOOBn+OBi+OBquOBig0KK+OBj+OCj+OBr+OCiSzjgojjgZfjgobjgY0NCivjgbXjgZjjgZ8s44GI44GE44Ge44GGDQor44GE44Gq44GP44G+LOOBqOOBl+OBkw0KK+OBv+OBleOBiizjgZPjgYbjgZ7jgYYNCivjgarjgYvjgZfjgZ8s44G+44GT44GoDQor44GK44GP44KE44G+LOOChuOBhuOBmA0KK+OBquOBjOOBiCzjgYvjgZrjgbLjgo0NCivjgarjgYzjgYQs44GX44KH44GG44GUDQor44KE44G+44GW44GNLOOBvuOBleOCiw0KK+OBl+OCieOBhOOBlyzjgZfjgofjgYbjgYTjgaENCivjgYbjgYjjgaAs44GX44GS44KLDQor44GK44GY44G+LOOBsuOCjeOBguOBjQ0KK+OBsuOCjeOBmyzjgb7jgZXjga7jgbYNCivjgbLjgonjga4s44G+44GV44KLDQor44G144KL44GfLOOBn+OBi+OBig0KK+OBk+OBrOOBvizjgYvjgYrjgosNCivjgZ/jgYvjgoTjgb4s44Go44KC44Gv44KLDQor44GC44GV44GX44GfLOOBvuOBleOBteOBvw0KK+OCiOOBpOOBr+OBlyzjgbLjgo3jgZcNCivjgaTjgaHjgoQs44Gf44GL44G/DQor44GK44GK44Gr44GXLOOBhOOBleOBig0KK+OChOOBvuOBkOOBoSzjgZfjgofjgYbjgZgNCivjgZfjgZrjga4s44GE44GV44KADQor44Gv44GX44G5LOOCiuOCh+OBhuOBhOOBoQ0KK+OBu+OCiuOBhCzjgb/jgojjgZcNCivjgarjgYzjgYrjgYss44Gu44KK44GTDQor44GP44KK44GfLOOBl+OCh+OBhuOBuOOBhA0KK+OBjeOBsCzjgZXjgarjgYgNCivjgYTjgaAs44G+44Gh44GTDQor44G144GP44Go44G/LOOBi+OBmuOBvw0KK+OBk+OBsOOChOOBlyzjga7jgbzjgosNCivjgYTjgoos44GR44KT44GE44GhDQor44GV44GfLOOBvuOBmeOBkA0KK+OBvuOCi+OChOOBvizjgbLjgo3jgbXjgb8NCivjgYLjgYrjgoTjgb4s44GX44GS44KLDQor44GX44KT44Gp44GGLOOChOOBmeOBig0KK+OBguOBhOOBi+OCjyzjgY3jgofjgYbjgZgNCivjgZXjgYvjga7jgYbjgYgs44GR44KT44GE44GhDQor44G144GY44G+44GNLOOBn+OBoOOBguOBjQ0KK+OBi+OCj+OBr+OCiSzjgb7jgZPjgagNCivjgoDjgonjgZ8s44Gy44Gn44KG44GNDQor44KI44GX44GgLOOChuOBhuOBhOOBoQ0KK+OBhOOBn+OBj+OCiSzjgabjgaTjgoQNCivjgZjjgZ7jgbDjgoks44KI44GGDQor44Gf44Gq44GLLOOBqOOBl+OBig0KK+OBi+OBmOOCj+OCiSzjgZfjgoXjgYbjgYTjgaENCivjgZ/jgarjgYss44GK44GV44KADQor44Gv44GZ44GE44GRLOOBl+OCheOBhuOBmA0KK+OBqOOBhuOBvizjgobjgb/jgZMNCivjgYvjgo/jgY3jgZ8s44GC44GN44KJDQor44G+44Gk44KC44GoLOOChOOBmeOBsuOBkw0KK+OBr+OBm+OBjOOCjyzjgb/jgaTjgYoNCivjgbXjgZjjgYQs44Go44GK44KLDQor44Gu44KA44KJLOOBv+OBoeOBn+OBiw0KK+OCiOOBhuOBk+OBnyzjgbLjgafjgYoNCivjgYvjgarjgZbjgo8s44GT44GG44Ge44GGDQor44G+44GZ44KE44G+LOOBl+OCk+OBhOOBoQ0KK+OBi+OBruOBhizjgbLjgo3jgZcNCivjgbXjgarjgoTjgb4s44GI44Gk44GKDQor44KE44G+44GX44GfLOOBjeOBoeOBsuOBkw0KK+OBleOBqOOBhizjgb7jgZXjgYvjgZoNCivjgYvjgoHjgoLjgags44KI44GX44G144G/DQor44GE44Go44GGLOOBjeOCiOOBlw0KK+OBiuOBj+OCgOOCiSzjgZfjgZLjgYoNCivjgbXjgZjjgYQs44Gm44KL44GKDQor44GN44Gv44KJLOOBn+OBi+OBlw0KK+OBruOCgOOCiSzjgorjgZXjgY8NCivjgYLjgY/jgZ/jgYzjgo8s44Gk44Go44KADQor44GE44GX44GgLOOBj+OBq+OBig0KK+OBhuOCgeOBr+OCiSzjgZfjgZLjgosNCivjgYrjgYrjgY4s44Gq44GK44KG44GNDQor44GT44KT44GpLOOBr+OCi+OBig0KK+OBn+OBkeOBoCzjgZHjgYTjgZMNCivjgb7jgaTjgYQs44G144G/44GI44GEDQor44GL44G/44GK44GLLOOBvuOBleOCiw0KK+OBi+OCguOBl+OBnyzjgbLjgo3jgb8NCivjgoTjgarjgY7jgZXjgo8s44Gf44GR44Gy44KNDQor44Gf44GR44GG44GhLOOBvuOCguOCiw0KK+OCguOCk+OBvizjgb/jga7jgosNCivjgYTjgYTjgaAs44GL44Gq44GIDQor44Gv44Gb44GM44KPLOOBqOOBl+OBmA0KK+OBquOBjOOBu+OCiizjgbLjgo3jgZcNCivjgoLjgorjgYrjgYss44Gf44Gg44Gu44KKDQor44Gr44GX44KE44G+LOOBguOBjeOBig0KK+OChOOBvuOCguOBqCzjgoTjgZnjgYoNCivjgYTjgZfjgaAs44Go44GX44GKDQor44G144KL44GpLOOBvuOBleOBig0KK+OBi+OCk+OBoCzjgb7jgZXjgYLjgY0NCivjgYTjgZfjgaAs44GX44GS44KLDQor44GV44GE44Go44GGLOOBn+OBi+OBsuOCjQ0KK+OBjeOCgOOCiSzjgbLjgajjgZcNCivjgYTjgo/jgb8s44KE44GZ44Gu44G2DQor44KC44KKLOOBl+OCheOBhuOBhOOBoQ0KK+OBn+OBi+OChOOBvizjgZfjgofjgYbjgZ7jgYYNCivjga/jgoTjgZfjgZDjgaEs44GC44GN44Gy44GTDQor44GV44GE44Go44GGLOOChOOBmeOBig0KK+OBl+OBsOOBn+OBjSzjgY/jgavjgYLjgY0NCivjgYrjgY7jga/jgoks44KI44GX44Gv44KLDQor44GL44Go44GGLOOBhOOBleOBvw0KK+OBteOBj+OBqCzjgarjgYrjgoQNCivjgYrjgaAs44Gy44Gn44GC44GNDQor44GV44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBquOBi+OCgOOCiSzjgobjgZ/jgYsNCivjga/jgb7jgaAs44Gf44GL44Gy44KNDQor44GK44GM44GV44KP44KJLOOBpuOBpOOChA0KK+OCgOOCieOBjSzjgYvjgZrjgbLjgZMNCivjgYrjgYrjga/jgZcs44GC44GN44Gy44GoDQor44Gf44GL44GuLOOBn+OBi+OBlw0KK+OBquOBi+OBluOCjyzjgYvjgZrjgajjgZcNCivjgb/jgoTjgZgs44GC44GN44Gy44KNDQor44GZ44GI44Gq44GMLOOChOOBmeOBig0KK+OBn+OBn+OBjSzjgYLjgY3jgokNCivjgojjgZfjgaAs44GE44KP44GKDQor44GC44GK44GNLOOBsuOBp+OBlw0KK+OBmeOBjuOCgOOCiSzjgYvjgYrjgosNCivjgYTjgajjgYYs44G+44GV44Go44GXDQor44Gf44GL44Gv44GXLOOBl+OCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgYTjgZXjgoANCivjgYvjgZ/jgoTjgb4s44Go44GX44Gy44GTDQor44GV44GE44Go44GGLOOBvuOBleOBlw0KK+OBn+OBmOOBvizjgbLjgo3jgZcNCivjgYLjgbks44KI44GG44GE44Gh44KN44GGDQor44Gq44GL44GY44G+LOOBl+OBkuOBjQ0KK+OChOOBvuOBkOOBoSzjgb7jgZPjgagNCivjgo/jgY3jgZbjgYss44G+44GV44Gy44GTDQor44GV44GTLOOBleOBoOOBqA0KK+OBiuOBiuOBpOOBiyzjgajjgoLjgbLjgo0NCivjgaTjgYvjgoLjgags44GZ44GZ44KADQor44GE44Gu44GG44GILOOBteOBv+OBig0KK+OBquOBjOOBiizjgajjgYrjgosNCivjgYbjgonjgbAs44G+44GV44GKDQor44GT44GY44G+LOOChOOBmeOBsuOCjQ0KK+OBn+OBkeOBoCzjgobjgYbjgZgNCivjgYLjgYrjga4s44GY44KT44GE44GhDQor44GE44Ga44GL44KPLOOBruOBtuOBig0KK+OBj+OBqeOBhizjgYvjgZrjgYLjgY0NCivjgarjgYvjgoDjgoks44Go44GX44KG44GNDQor44G+44Gk44GKLOOBvuOBleOBteOBvw0KK+OBhOOBquOBjOOBjSzjgZfjgpPjgYTjgaENCivjgavjgZfjgoLjgags44GX44KH44GG44GE44GhDQor44GE44Gu44GG44GILOOBsuOBqOOBlw0KK+OBiuOBruOBp+OCiSzjgabjgaTjgoQNCivjgYTjgZfjgZbjgYss44Go44GX44Gy44GTDQor44Gv44GO44KP44KJLOOBkeOCk+OBnuOBhg0KK+OBteOCi+OBnyzjgb7jgZXjgosNCivjgYbjgYjjgZjjgb4s44Go44G/44GKDQor44Gs44G+44GfLOOBl+OCheOBhuOBhOOBoQ0KK+OBiOOCk+OBqSzjgb7jgZXjgbLjgo0NCivjgYvjgYzjgoTjgb4s44GX44KT44KEDQor44KG44KK44KC44GoLOOBsuOBqOOBlw0KK+OBteOBoSzjgZ/jgaDjgYoNCivjgbXjgZjjgYrjgY0s44Gy44KN44Gu44G2DQor44GV44GE44Go44GGLOOBvuOBleOBqOOBlw0KK+OBvuOBpOOCguOBqCzjgb/jgaTjgYLjgY0NCivjgbLjgo3jgZss44KI44GX44GL44GkDQor44Gw44GwLOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgobjgY0NCivjgZnjgZrjgY0s44G+44GV44G/DQor44Gq44GL44KE44G+LOOBi+OBmuOBig0KK+OBjeOBlyzjgbLjgo3jgZcNCivjgYLjgZXjga4s44G+44GV44GL44GaDQor44GI44KT44GpLOOBguOBjeOBig0KK+OBhOOBl+OBsOOBlyzjgaDjgYTjgZQNCivjgYvjgYTjgaAs44G/44Gk44GKDQor44GE44GR44GY44G+LOOBsuOBp+OBguOBjQ0KK+OBr+OCieOBoCzjgajjgZfjgYoNCivjga/jgb7jga4s44GT44Gu44KADQor44GL44KP44GELOOBv+OBoeOCiw0KK+OCj+OBoCzjgajjgZfjgb7jgZUNCivjgZXjgajjgYYs44Gy44KN44GXDQor44Gf44Gq44GLLOOBm+OBhOOBmA0KK+OBguOBj+OBpCzjgojjgZfjga7jgooNCivjgYTjgajjgYYs44GN44KI44G/DQor44GC44KT44Gp44GGLOOBhOOCj+OBmA0KK+OBguOBhOOBluOCjyzjgbXjgajjgZcNCivjgY/jgbzjgZ8s44GN44KI44GXDQor44G144GL44GG44G/LOOBleOBqOOBlw0KK+OBl+OBv+OBmizjgbLjgajjgZcNCivjgZ/jgYvjga/jgZcs44GV44Go44GXDQor44Gq44G/44GNLOOBpuOBpOOCjeOBhg0KK+OBruOBluOCjyzjgoTjgZnjgZcNCivjgZPjgYTjgZ/jgbDjgZcs44GN44KI44Gy44KNDQor44Gf44Gm44GE44GXLOOBsuOCjeOBvw0KK+OBi+OCj+OBi+OBvyzjgYvjgZrjgYoNCivjgZPjgbDjgoTjgZcs44GL44Ga44Gu44KKDQor44GK44Gu44Ga44GLLOOBsuOBp+OBig0KK+OBn+OBkOOBoSzjgb/jgaTjgZANCivjgZ/jgYvjga/jgZcs44G+44GV44GC44GNDQor44GV44Go44GGLOOChOOBmeOBsuOCjQ0KK+OBj+OCj+OBr+OCiSzjgZfjgo3jgYYNCivjgZvjgags44GV44Go44GXDQor44GU44GRLOOBsuOBp+OBjQ0KK+OCiOOBl+OCgOOCiSzjgY3jgojjgZcNCivjgZ/jgYvjgoTjgb4s44Gu44G244KG44GNDQor44GV44GV44GNLOOChuOBjeOBig0KK+OBi+OBruOBhizjgZfjgZLjgY0NCivjgZ/jgYvjga/jgZcs44GX44GS44Gv44KLDQor44Gq44GM44GK44GLLOOBqOOCguOChuOBjQ0KK+OBmeOBmuOBjSzjgbLjgafjgY0NCivjgoTjgb7jgZDjgaEs44GC44GN44KJDQor44KC44KKLOOBleOBqOOCiw0KK+OBmeOBmuOBjSzjgYTjgaTjgYoNCivjgYbjgYjjgoDjgoks44G+44GV44Go44GXDQor44KE44G244Gv44KJLOOBv+OBpOOCiOOBlw0KK+OBl+OCieOBhOOBlyzjgYvjgZrjgY0NCivjgY3jgY/jgZ8s44G+44GV44Gu44G2DQor44Gq44GL44GELOOBv+OBpOOBruOCig0KK+OBj+OCieOCguOBqCzjgobjgZ/jgYsNCivjgZnjgb/jgojjgZcs44Gy44Gn44GKDQor44Gf44GL44GOLOOBsuOCjeOBsuOBlQ0KK+OBl+OCh+OBhuOBmCzjga7jgorjgYoNCivjgYrjgZXjgaAs44G+44GV44KG44GNDQor44GC44GV44GuLOOBleOBqOOBlw0KK+OBhOOCj+OBlSzjgY3jgojjgZcNCivjgbDjgbAs44KG44Gf44GLDQor44Gy44KN44GfLOOBleOBqOOCiw0KK+OBteOBmOOCguOBqCzjgb/jgZXjgZMNCivjgZXjga4s44G+44GV44KLDQor44KC44Go44GNLOOChOOBmeOChuOBjQ0KK+OBhOOBqOOBhizjgb7jgZXjga7jgooNCivjgYbjgZHjgYzjgo8s44G144G/44GKDQor44GG44KB44Gw44KE44GXLOOBhOOBleOBig0KK+OBhOOBquOBqOOBvyzjgYvjgZrjgojjgZcNCivjgZ/jgYvjgoTjgarjgY4s44G+44GV44GC44GNDQor44Gv44KJLOOBhOOBleOBig0KK+OBquOBi+OBr+OCiSzjgbbjgpPjgo3jgYYNCivjgZXjgYTjgZ/jgZEs44Gb44GE44GYDQor44GL44GX44KE44G+LOOBsuOCjeOBlw0KK+OBleOBi+OBhCzjgajjgoLjgobjgY0NCivjgYTjgajjgYYs44Gu44KK44GL44GkDQor44Gq44GL44KA44KJLOOCiOOBl+OBruOBtg0KK+OBiuOBiuOBruOBjizjgZ/jgZHjgZcNCivjgYTjgYvjgb8s44KG44Gf44GLDQor44Gf44GL44Gv44GXLOOBl+OCk+OBhOOBoQ0KK+OBl+OBhOOBqizjgajjgb/jgYoNCivjgZ/jgb7jga7jgYQs44GX44KH44GG44GE44GhDQor44GP44G8LOOBsuOBp+OBguOBjQ0KK+OBjeOCgOOCiSzjgZ/jgYvjgZcNCivjgbvjgaPjgZ8s44Gy44Go44GXDQor44G744GL44KKLOOBn+OBi+OChuOBjQ0KK+OBleOBqOOBhizjgYLjgY3jgYoNCivjgbvjgZfjga4s44GX44KF44GG44GE44GhDQor44GL44G244KJ44GOLOOBqOOBl+OBsuOCjQ0KK+OBiuOBleOBoCzjgajjgZfjgbXjgb8NCivjgZnjgYjjgbLjgo0s44Gf44GL44GKDQor44KA44KJ44GL44KPLOOCiOOBl+OBvw0KK+OBhOOCj+OBleOBjSzjgZHjgpPjgZgNCivjgoTjgb7jgoDjgoks44GX44KT44GYDQor44KC44KK44GfLOOBn+OBpOOBig0KK+OBhOOBkeOBoCzjgojjgZfjga7jgooNCivjgoTjgYbjgaEs44Gy44KN44GXDQor44KE44G+44GX44GfLOOBi+OBmuOBsuOBpw0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgYLjgarjgpMs44GI44Gk44GYDQor44Gr44GX44GuLOOBn+OBpOOCjeOBhg0KK+OBk+OBl+OBv+OBmizjgoTjgZnjgYoNCivjgZ/jgYvjga/jgZcs44GL44Ga44GKDQor44GI44GM44KPLOOBqOOBl+OBig0KK+OChOOBvuOBluOBjSzjgZ/jgaTjgbLjgo0NCivjgYTjgb7jgZzjgY0s44KI44GX44G144KGDQor44GZ44Ga44GNLOOBsuOBp+OBjQ0KK+OBq+OBl+OBr+OCiSzjgobjgYbjgYTjgaENCivjgYrjgYvjgbks44GE44GV44KADQor44GV44GL44GELOOBvuOBleOBsuOCjQ0KK+OBn+OBoCzjgajjgZfjgYoNCivjgZnjgYjjgojjgZcs44G/44GN44GKDQor44Gv44KE44GXLOOBhOOBn+OCiw0KK+OBn+OBi+OBr+OBlyzjgZHjgpPjgZgNCivjgZPjgYLjgZcs44Gv44GY44KBDQor44KC44KK44GL44KPLOOBiOOBhOOBlw0KK+OBi+OBqOOBhizjgoTjgZnjgY/jgasNCivjgb7jgYjjgbAs44G+44GV44Gy44KNDQor44KE44GuLOOBn+OBpOOBig0KK+OBhOOBqOOBhizjgojjgZfjga/jgosNCivjgarjgYvjgYQs44Gy44KN44GXDQor44GK44Gg44GO44KKLOOBi+OBmuOBig0KK+OBiOOCk+OBqSzjgabjgaTjgYoNCivjgZ/jgZHjgYQs44KE44GZ44KG44GNDQor44Gq44GL44Gf44GrLOOBv+OBoeOBruOCig0KK+OBhOOCj+OBleOBjSzjgajjgoLjgbLjgo0NCivjgYvjgonjgYvjgZUs44GC44GN44Gy44KNDQor44GC44GV44GuLOOBkeOCk+OBhOOBoQ0KK+OBhOOCj+OBtuOBoSzjgb7jgZXjgosNCivjga/jgpPjgaAs44Go44GK44KLDQor44Gm44KJ44GKLOOCiOOBl+OChuOBjQ0KK+OBn+OBkeOBhCzjgojjgZfjgoLjgagNCivjga/jgZfjgoLjgags44KI44GX44G/DQor44G/44KE44GV44GLLOOBpOOBqOOCgA0KK+OBpuOCieOBoCzjgYTjgaHjgo3jgYYNCivjgZXjgYvjgZ8s44KE44GZ44KG44GNDQor44Gq44GM44KELOOBi+OBpOOBvw0KK+OBr+OBl+OCguOBqCzjgZHjgpPjgZgNCivjgYrjgYrjgY/jgoks44Gk44Go44KADQor44Gq44GL44GV44GNLOOBv+OBpOOBkA0KK+OBjeOCiuOBr+OCiSzjgajjgZfjgobjgY0NCivjgYLjgonjgYQs44GX44KF44KT44GYDQor44GE44KP44GuLOOBsuOCjeOChuOBjQ0KK+OBr+OBo+OBqOOCiizjgbLjgo3jga7jgooNCivjgZnjgZrjgY0s44Go44GK44KLDQor44Gr44GX44Gv44KJLOOBsuOCjeOBlw0KK+OBleOBleOBjSzjgZfjgZrjgYoNCivjga/jgarjgbXjgZUs44Gk44Go44KADQor44Gu44Gp44GuLOOBn+OBpOOChuOBjQ0KK+OBi+OCj+OBsOOBnyzjgY/jgavjgYoNCivjgZfjgb/jgZos44KI44GX44Gq44GKDQor44Gq44GM44GX44G+LOOBpOOBkOOBsuOBkw0KK+OCguOCiizjgYvjgZrjgYoNCivjgZfjgb/jgZos44GX44GS44GC44GNDQor44Gy44GV44KE44GZLOOBkeOBhOOBnuOBhg0KK+OBi+OBn+OBhuOCiSzjgZfjgZLjgobjgY0NCivjgZ/jgZHjgoDjgoks44GC44GN44G/44GkDQor44GE44G+44Gr44GXLOOBvuOBleOBqA0KK+OBiuOBi+OBoCzjgYLjgY3jgbLjgZMNCivjgarjgYvjgYgs44GK44GV44KADQor44GX44KN44GuLOOBmOOCheOCk+OBhOOBoQ0KK+OCiOOBk+OChOOBvizjga7jgbbjgYoNCivjgYrjgYvjgZbjgo8s44G+44GV44Gy44GTDQor44GL44G/LOOBruOCiuOBqOOBlw0KK+OBj+OBvuOBuSzjgb7jgZXjgYoNCivjgZfjgb/jgZos44Gf44Gk44KN44GGDQor44KE44Gq44GO44GV44KPLOOBl+OCh+OBhuOBhOOBoQ0KK+OBvuOBjeOBrizjgobjgYbjgZgNCivjgZXjgo8s44KP44Gf44KLDQor44GG44GX44KN44GgLOOBj+OBq+OBig0KK+OBvuOBoeOBoCzjgaTjgYvjgZUNCivjgZPjgbDjgoTjgZcs44Gf44GL44GKDQor44GX44GS44KA44KJLOOBqOOBl+OBr+OCiw0KK+OBsuOBkOOBoSzjgZ/jgYvjgZcNCivjgYTjgYTjgazjgb4s44G+44GV44KG44GNDQor44GE44Ga44G/LOOBv+OBruOCiw0KK+OBr+OChOOBlyzjgbLjgo3jgajjgZcNCivjgoTjgY4s44Gh44Gv44KLDQor44GK44GK44GL44KP44KJLOOBjeOCiOOBn+OBkQ0KK+OBteOBj+OBiuOBmCzjgYrjgZXjgoANCivjgYbjgYzjgZjjgpMs44G+44GV44G/DQor44Gf44Gq44G5LOOBl+OCkw0KK+OBlOOBl+OBvizjgb7jgZXjgbLjgacNCivjgYLjgpPjganjgYYs44Gy44KN44GXDQor44GK44Gg44G+LOOChuOBjeOBig0KK+OBiuOBi+OBluOBjSzjgYTjgo/jgYoNCivjgYTjgZfjgYvjgo8s44G144G/44KG44GNDQor44KA44KJ44KE44G+LOOBvuOBleOBkw0KK+OBr+OChOOBleOBiyzjgZHjgYTjgZgNCivjgarjgYvjgZjjgb4s44Gf44GPDQor44Gf44GR44KC44GoLOOCiOOBl+OBvw0KK+OBjeOBn+OBmOOBvizjgZjjgoXjgpPjgZMNCivjgb/jgYvjgb8s44Gq44G/DQor44KP44KJ44GX44GqLOOBmOOCheOCk+OChA0KK+OBjeOCgOOCiSzjgZfjgpMNCivjgYrjgZbjgo8s44KI44GX44GL44GaDQor44KE44G+44KA44KJLOOBsuOBqOOBlw0KK+OCiOOBl+OBoCzjgZfjgZLjgY0NCivjgZ/jgaHjgbDjgaos44Gf44GP44KN44GGDQor44G+44Gk44KC44GoLOOBruOCiuOBruOBmeOBkQ0KK+OBv+OBl+OBvizjgbLjgafjgYLjgY0NCivjgZvjgY0s44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOChOOBmeOBsuOBlQ0KK+OBiuOBiuOBhOOBkSzjgb7jgZXjgZcNCivjgbXjgZjjgoLjgags44GX44KF44GG44GYDQor44KI44GX44KA44KJLOOBruOBtuOBsuOBkw0KK+OBk+OBsOOChOOBlyzjgoHjgYTjgZgNCivjgYrjgYrjgYzjgb8s44KI44GX44KG44GNDQor44GL44GELOOBl+OCh+OBhuOBn+OCjeOBhg0KK+OBi+OBiOOBpCzjgb7jgZXjga/jgosNCivjgoLjgo3jgYQs44Gf44GL44Gy44KNDQor44G/44Ga44GuLOOBhOOBj+OBig0KK+OBiuOBiuOBpOOBiyzjgYLjgY3jgbLjgZMNCivjgYrjgYrjgZ8s44GL44GK44KLDQor44Gb44GN44GtLOOCiuOCheOBhuOBmA0KK+OBv+OChOOBkOOBoSzjgYvjgZrjgZ/jgYsNCivjgojjga3jgaAs44Gq44G744GTDQor44G744KK44GG44GhLOOBvuOBleOBkw0KK+OBiOOBkOOBoSzjgYvjgaTjgb8NCivjgYbjgZfjgo3jgb7jgaQs44GL44Ga44G/DQor44GE44GE44GgLOOChuOBjeOBsuOCjQ0KK+OCiOOBl+OBoCzjgojjgZfjgb8NCivjgarjgYvjgZss44GC44GN44GKDQor44GZ44Ga44GNLOOChuOBhuOBkw0KK+OBiuOBhOOBi+OCjyzjgYjjgYTjgZMNCivjgYvjgo/jgbks44GV44Gk44GTDQor44Gf44Gr44GW44KPLOOBn+OBi+OBig0KK+OBi+OBreOBkyzjga/jgovjgogNCivjgbXjgZjjgYrjgYss44GR44GE44GTDQor44KA44KJ44GK44GLLOOBpOOCiOOBlw0KK+OBhuOBrOOBvizjgZHjgYTjgZMNCivjgb/jgoTjgZEs44G144GN44GTDQor44Gq44GL44KA44KJLOOBoeOBguOBjQ0KK+OBiuOBiuOCjyzjgb7jgZXjga/jgosNCivjga3jgoLjgags44GE44Gh44KN44GGDQor44Gr44GX44KA44KJLOOBqOOCguOBsuOBlQ0KK+OBn+OBpOOBvyzjgYTjgo/jgYoNCivjgZXjgajjgYYs44GC44GN44GKDQor44GZ44Gu44Gv44KJLOOBqOOBl+OBsuOBkw0KK+OBguOBmeOBvizjgY3jgojjgYvjgZoNCivjgZ/jgYvjgbAs44Gu44G244GC44GNDQor44KI44GX44KA44KJLOOBleOBqOOBlw0KK+OBguOBuSzjgarjgYrjgagNCivjgY3jgY/jgaEs44GR44GE44GYDQor44Gq44GL44KA44KJLOOBi+OBmuOBvuOBlQ0KK+OBr+OCgOOCiSzjgaTjgajjgoANCivjgZnjgZrjgY0s44Gu44G244Gy44GoDQor44GL44KP44KA44KJLOOBqOOBl+OChA0KK+OBsuOBs+OBrizjgbLjgZXjgYgNCivjgY3jgZ/jgaAs44G+44GV44Gy44KNDQor44GV44Go44GGLOOBpOOBreOBig0KK+OBi+OBqOOBhizjgYvjgZrjgYoNCivjgYTjgajjgYYs44KG44GG44GYDQor44G144GP44Go44G/LOOBvuOBleOCiw0KK+OCgOOCjeOBmuOBvyzjgb7jgZXjgbLjgo0NCivjgoTjgb7jgarjgYss44GY44KF44KT44GE44GhDQor44GK44GL44GgLOOBkeOCk+OBhOOBoQ0KK+OBqOOBhuOBlOOBhizjgZ/jgZHjgZcNCivjgarjgorjgZ8s44Gf44GL44GXDQor44GE44GR44GW44GNLOOBn+OBkeOBlw0KK+OBi+OCj+OBsOOBnyzjgZfjgo3jgYYNCivjgb7jgaTjgYrjgYss44Gu44G244GKDQor44Gq44GL44GgLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgZfjgpPjgoQNCivjgZ/jgZHjgZbjgo8s44KI44GX44Gy44KNDQor44KE44Gq44GM44KPLOOBsuOCjeOBlw0KK+OChOOBvuOBleOBjSzjga7jgorjgobjgY0NCivjgZfjgYzjgY0s44Gu44KK44GC44GNDQor44KG44G/LOOBn+OBkeOBlw0KK+OBiuOBluOBjSzjgaTjgajjgoANCivjgarjgYzjgZfjgb4s44Gf44GE44GZ44GRDQor44KE44G244GG44GhLOOBsuOBleOBig0KK+OBu+OBneOChCzjgbLjgZXjgZcNCivjgavjgZfjgZbjgo8s44Gd44GG44GYDQor44Gv44KE44G/LOOCiOOBl+OBig0KK+OBr+OBm+OBjOOCjyzjgarjgYrjgb8NCivjgYvjgo/jgZXjgY0s44GL44Gk44Gy44GTDQor44Go44KI44GE44Ga44G/LOOBn+OBi+OChuOBjQ0KK+OBiuOBj+OCgOOCiSzjgb7jgZXjgagNCivjgoTjgb7jgaAs44Gu44G244Gy44KNDQor44Gr44KPLOOBiOOBhOOBsuOBkw0KK+OBq+OBl+OBluOBjSzjgbLjgo3jgZcNCivjgZnjgY7jgoLjgags44GX44GS44KLDQor44GK44GK44GV44KPLOOBqOOCguOBquOBig0KK+OBqOOBoCzjgajjgZfjgYLjgY0NCivjgarjgYvjga4s44KI44GX44GL44GkDQor44G/44GG44KJLOOBsuOBleOBlw0KK+OChOOBvuOBluOBjSzjgarjgYrjgobjgY0NCivjgZXjgYvjgoLjgags44Gy44KJ44GPDQor44KE44G+44GgLOOBv+OBoeOBkw0KK+OBhOOBruOBhuOBiCzjgYvjgojjgZMNCivjgoTjgZnjgYQs44G+44GV44KIDQor44G+44Gk44GgLOOChuOBvw0KK+OBi+OBn+OBiuOBiyzjgYLjgZHjgb8NCivjgZnjgZrjgY0s44GR44GE44GTDQor44Gv44KE44GXLOOBkeOBhOOBkw0KK+OBr+OBvuOBvuOBpCzjgoTjgZnjgZMNCivjga/jgb7jga4s44GI44KKDQor44G/44Ga44Gf44GrLOOBv+OCiOOBkw0KK+OBmeOBv+OBnyzjgoLjgajjgaHjgYsNCivjga/jgoTjgZcs44G+44GN44GTDQor44Go44GP44Gq44GMLOOChuOBv+OBkw0KK+OBi+OBqOOBhizjga7jgbbjgZMNCivjgb7jgaTjgYbjgoks44G/44GI44GTDQor44Gy44KD44GP44GqLOOBsuOBp+OBkw0KK+OBguOCk+OBluOBhCzjgojjgYbjgZMNCivjgbXjgYvjgb7jgaEs44GZ44G/44GKDQor44G/44GV44GNLOOBn+OBkeOBlw0KK+OCguOBoeOBmuOBjSzjgajjgojjgbLjgZMNCivjgYLjgYrjgoTjgY4s44GC44GN44KJDQor44Gf44GL44Gv44GXLOOChuOBjeOBsuOBpw0KK+OBjeOBmyzjgYLjgY3jgokNCivjgYbjgYjjgoLjgoos44GX44GS44KLDQor44GC44Ga44G+LOOBv+OBiOOBkw0KK+OBiuOBoOOBj+OCiSzjgbLjgo3jgb/jgaENCivjgZ/jgarjgYss44Gy44GV44GKDQor44Go44GE44Gf44GrLOOBi+OBpOOCjeOBhg0KK+OChOOBvuOBluOBjSzjgZHjgpPjgYTjgaENCivjga/jgZfjgoLjgags44Gf44GL44GXDQor44G+44Gk44G/44KELOOBvuOBleOBsuOBkw0KK+OBteOBl+OBvyzjgaHjgYvjgagNCivjgY3jgofjgYbjgoTjgb4s44Gm44KL44GKDQor44KI44GX44GgLOOBkeOBhOOBkw0KK+OBhuOCi+OBl+OBqSzjgYLjgaTjgZMNCivjgZvjgYos44G/44GI44GTDQor44G/44Gq44GL44KPLOOBpOOBjeOBkw0KK+OBteOBmOOBrizjgYvjgZrjgobjgY0NCivjgbLjgo3jgZ8s44Gf44GL44GXDQor44GK44GK44GfLOOCiOOBl+OBvw0KK+OBiuOBiuOBjCzjgb7jgZXjga7jgooNCivjgarjgYzjga/jgb4s44Gf44Gk44GKDQor44GY44KT44GuLOOChOOBmeOBjQ0KK+OBhOOBoeOBi+OCjyzjga/jgZjjgoENCivjga/jgoTjgZcs44Gf44Gg44GXDQor44Gv44Gf44KELOOBqOOBl+OChuOBjQ0KK+OBu+OCiuOBk+OBlyzjga7jgbbjgbLjgZMNCivjgYvjgass44GC44GN44GKDQor44G744KT44GgLOOCguOBqOOBsuOBlQ0KK+OBpOOBoeOChCzjgajjgb/jgYoNCivjgZ/jgb7jgaYs44G/44Gk44KLDQor44KG44GL44KPLOOBiOOBhOOBmA0KK+OBleOBi+OBhCzjgobjgYbjgZgNCivjgb/jgoTjgZgs44KG44GG44GE44GhDQor44Gf44KA44KJLOOBsuOBqOOBlw0KK+OBi+OCj+OBkOOBoSzjgbLjgafjgb7jgosNCivjgZXjga4s44G+44GV44GL44GaDQor44Gq44GL44KA44KJLOOChuOBhuOBhOOBoQ0KK+OBk+OBsOOChOOBlyzjgobjgY3jgYoNCivjgYTjgaAs44GE44Gh44KN44GGDQor44Gb44GN44KC44GoLOOCiOOBl+OBsuOCjQ0KK+OBi+OCj+OBvuOBnyzjgYvjgZrjgYoNCivjgY/jgbws44Gy44KN44GXDQor44Gf44GL44GuLOOChOOBmeOBsuOCjQ0KK+OCj+OBn+OBquOBuSzjgoTjgojjgYQNCivjgYTjgYvjgovjgY4s44G/44Gu44KLDQor44GV44Go44GGLOOBn+OBoOOBlw0KK+OBsuOBoOOBiyzjgojjgZfjgbLjgZMNCivjgojjgZfjgYQs44GT44GG44Ge44GGDQor44GX44G+44KA44KJLOOBiOOBhOOCjQ0KK+OBiuOBsyzjgajjgZfjgYoNCivjgarjgYvjgZjjgb4s44Go44GP44Gu44G2DQor44G744GX44GuLOOBruOBvOOCiw0KK+OBi+OCj+OCguOBqCzjgZjjgoXjgpPjgZgNCivjgavjgZfjgaAs44KE44GZ44Gy44GnDQor44GX44G/44GaLOOBvuOBleOBguOBjQ0KK+OBn+OCgOOCiSzjgZjjgoXjgpMNCivjgajjgojjgZfjgb4s44KI44GX44G/44GkDQor44GI44KT44GpLOOBn+OBi+OBig0KK+OBiuOBjOOCjyzjgarjgaTjgYLjgY0NCivjgY3jgZ/jga/jgoks44G144G/44GKDQor44GK44GQ44GrLOOBkeOCk+OBmA0KK+OBiuOBtuOBoSzjgZHjgYTjgZ7jgYYNCivjgb/jgojjgZcs44GL44Ga44GKDQor44GE44GR44GuLOOBl+OCk+OBhOOBoQ0KK+OBhuOBiOOBvuOBpCzjgYvjgaTjgYLjgY0NCivjgbXjgY/jgZbjgags44KK44KF44GG44GE44GhDQor44GC44GK44GNLOOBn+OBi+OBlw0KK+OBleOCgeOBmOOBvizjgZXjgaHjgYoNCivjgY3jganjgb4s44GR44KT44GYDQor44GT44Gg44GE44KJLOOBjeOBj+OBig0KK+OBsuOBkOOBoSzjgZ/jgaTjgYoNCivjgb7jgYjjgZfjgo0s44GL44Ga44Gy44KNDQor44Gf44Gq44GLLOOBm+OBhOOBmA0KK+OBquOBi+OBjOOCjyzjgojjgYbjgZnjgZENCivjgYTjga7jgYbjgYgs44KE44GZ44Gy44GnDQor44Go44KK44GGLOOBvuOBleOBguOBjQ0KK+OBvuOCi+OChOOBvizjgarjgYrjgY0NCivjgb7jgaTjgYbjgoks44GR44KT44GYDQor44Gf44KB44Gh44GLLOOBi+OBiuOCiw0KK+OBleOBleOBjSzjgY3jgofjgYbjgZMNCivjgYrjgYrjgZ/jgY0s44GX44KT44GZ44GRDQor44GK44GM44KPLOOBvuOBk+OBqA0KK+OBvuOBpOOBvyzjgb7jgZnjgYgNCivjgYLjgorjgb7jgaQs44GX44GS44GKDQor44GT44KJ44GPLOOChuOBhuOBnuOBhg0KK+OBv+OChOOBl+OBnyzjgb/jga7jgosNCivjgYrjgZrjgaEs44G/44Gk44GKDQor44GV44GL44GN44Gw44KJLOOBn+OBi+OBkw0KK+OBleOBqOOBhizjgYLjgY3jgokNCivjgbLjgo3jgZss44Go44KC44GTDQor44Gk44Gh44GgLOOBqOOBl+OBguOBjQ0KK+OBr+OBl+OCiSzjgaHjgogNCivjgbXjgo3jgoLjgags44G/44Gu44KLDQor44GT44GV44GLLOOBguOBjeOBsuOCjQ0KK+OBn+OBkeOBhOOBoSzjgojjgYbjgYTjgaENCivjgabjgonjgaAs44KI44GX44GL44GaDQor44GT44GE44GnLOOBsuOBp+OBjQ0KK+OBleOBhOOBqOOBhizjgZfjgofjgYbjgYTjgaENCivjgb/jgoTjgarjgYws44Gu44KK44Gy44GTDQor44Gr44GX44KA44KJLOOBl+OCk+OChA0KK+OBn+OBquOBiyzjgobjgYbjgZ7jgYYNCiss44KG44G/44GTDQor44KG44GP44Gy44KNLOOCjOOBhOOBkw0KK+OCiOOBl+OCj+OCiSzjgZjjgoXjgpMNCivjgYLjgYrjgY0s44KL44G/44GTDQor44Gf44Gm44GE44GXLOOChuOCiuOBkw0KK+OBn+OBkeOBoCzjgajjgb/jgZMNCivjgoTjgZnjgaAs44G144GY44GTDQor44GC44GK44GNLOOBsuOBp+OChuOBjQ0KK+OCiOOBl+OBoCzjgarjgYrjgZMNCivjgYLjgaDjgaEs44GC44GN44GTDQor44Gu44GQ44GhLOOCiOOBl+OBruOBtg0KK+OCj+OBn+OBquOBuSzjgZfjgZLjgobjgY0NCivjgZ/jgZHjgajjgb8s44GT44GG44GE44GhDQor44GP44KK44KP44GNLOOBvuOBleOBjQ0KK+OBjeOBn+OBmuOCgSzjgoLjgajjgbLjgZMNCivjgYrjgZXjgaAs44Go44GX44GKDQor44GC44GX44GM44GELOOCiOOBl+OBn+OBiw0KK+OBleOBi+OBl+OBnyzjgY3jgojjgZcNCivjgaTjgaHjgaAs44GX44KF44KT44GE44GhDQor44GK44GL44GgLOOBv+OBoeOBig0KK+OBn+OBquOBiyzjgbLjgafjgaHjgYsNCivjgYrjgYrjgZ/jgZTjgZcs44GT44GG44Ge44GGDQor44GP44KN44GV44GLLOOBiOOBhOOBmA0KK+OBmeOBluOBjSzjgYLjgaTjgZcNCivjgYvjga3jgb/jgaQs44Gy44KN44KG44GNDQor44G+44GoLOOBi+OBmuOChuOBjQ0KK+OBqOOCiOOBteOBjyzjgb7jgZXjgYoNCivjgYLjgonjgYQs44Gy44KN44GL44GaDQor44G144GY44GL44KPLOOBruOBtuOBguOBjQ0KK+OCiOOBk+OBiizjgZ/jgYvjgojjgZcNCivjgYLjgb7jga4s44Gv44KL44GKDQor44GK44GK44GuLOOBn+OBi+OBteOBvw0KK+OBmeOBmuOBjSzjgYLjgY3jgojjgZcNCivjgYvjgajjgYYs44G+44GV44KG44GNDQor44GV44GE44Go44GGLOOBv+OBpOOBig0KK+OBiuOBhizjgYvjgaTjgb8NCivjgb/jgoTjgZbjgY0s44GE44GV44GKDQor44GN44KELOOBteOBv+OBn+OBvg0KK+OBteOBmOOBnyzjgYvjgZrjgbLjgZMNCivjgoDjgYvjgYQs44KI44GG44GE44GhDQor44G+44Gk44KC44GoLOOBi+OBiuOCiw0KK+OBi+OCj+OBhCzjgobjgY3jgYoNCivjgb7jgaTjgoLjgags44GN44KI44Gf44GLDQor44Gf44GR44GG44GhLOOCiuOCh+OBhuOBmA0KK+OBk+OBmOOBvizjgbLjgafjgYoNCivjga/jgZvjgYzjgo8s44Gf44Gk44GKDQor44GT44GMLOOChOOBmeOBig0KK+OChOOBvuOBoCzjgZPjgYbjgYTjgaENCivjgYrjgYrjgZ8s44G/44Gu44KLDQor44KE44G+44KC44GoLOOBl+OCk+OBmeOBkQ0KK+OBleOBj+OCieOCguOBqCzjgbXjgZjjgagNCivjgoTjgarjgY7jgZXjgo8s44GP44Gr44GKDQor44G144GP44GELOOBk+OBhuOBmA0KK+OBi+OBqOOBhizjgYvjgZrjgb8NCivjgYTjgo/jgZ8s44KE44GZ44KG44GNDQor44G144GY44KC44GoLOOBn+OBoOOBteOBlQ0KK+OBjeOBruOBl+OBnyzjgYLjgY3jgbLjgZMNCivjgoTjgb7jgaAs44GY44KN44GGDQor44GP44KJ44G+44GILOOBk+OBhuOBmA0KK+OBj+OCieOBnyzjgZ/jgYvjgZcNCivjgojjgZPjgYQs44G144G/44Go44GXDQor44GT44Gw44KE44GXLOOBsuOBp+OChA0KK+OBi+OBqOOBhizjgoLjgorjgojjgZcNCivjgb7jgZnjgYQs44Gy44Go44GXDQor44GG44KJ44GfLOOBpuOCi+OBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgbLjgo0NCivjgYbjgZfjgZTjgoEs44G+44GV44Gf44GLDQor44Gv44KJ44GELOOBl+OCk+OBmA0KK+OBhuOBoOOBjOOCjyzjgajjgZfjgo3jgYYNCivjgZ/jgYvjgY4s44GL44Ga44KG44GNDQor44G/44KE44GW44GNLOOBleOBqOOBvw0KK+OChOOBvuOCgOOCiSzjgb7jgZXjgbLjgo0NCivjgoTjgb7jgY7jgZcs44KK44KF44GG44GE44GhDQor44GT44G+44GkLOOCiOOBl+OBn+OBiw0KK+OBr+OBvuOBkOOBoSzjgobjgYsNCivjgoLjgoos44Gy44KN44GL44GaDQor44KE44G+44GgLOOChOOBmeOBruOCig0KK+OBi+OBjOOCjyzjgb/jgaHjgYoNCivjgY3jgY/jgaEs44G144G/44GNDQor44GP44GYLOOChOOBmeOBlw0KK+OBhOOBqOOBhizjgbLjgZXjgYLjgY0NCivjgYvjgo/jgZDjgaEs44KI44GX44GL44GaDQor44GC44KJ44GNLOOBl+OCk+OBmeOBkQ0KK+OBiuOBi+OBuSzjgbLjgo3jgb8NCivjgZPjgbzjgoos44GX44KT44GE44GhDQor44GK44GhLOOBiuOBleOCgA0KK+OBvuOCi+OBiizjga/jgZjjgoENCivjgZXjgajjgYYs44GX44KF44KT44GZ44GRDQor44Gf44Gq44GLLOOBsuOBp+OBruOCig0KK+OBvuOBpOOChOOBvizjgajjgZfjgYoNCivjgYrjgYrjgaTjgYss44GP44Gr44GKDQor44KE44G+44KC44GoLOOBkeOCk+OBmA0KK+OBteOBmOOBiizjgb/jgaTjgYgNCivjga7jgoDjgoks44Gy44GV44Gf44GLDQor44Gy44KN44GbLOOBruOCiuOCiOOBlw0KK+OBguOCk+OBluOBhCzjgZfjgZLjga7jgooNCivjgYrjgYrjgaTjgbws44G/44Gh44KNDQor44GV44GE44Go44GGLOOCiuOCheOBhuOBmA0KK+OBhOOBqOOBhizjgZXjgajjgZcNCivjgo/jgonjgZXjgo8s44GN44GP44GKDQor44GC44KJ44GL44KPLOOChOOBmeOBquOCig0KK+OBlOOBvyzjgZjjgoXjgpMNCivjgYjjgpPjgaks44GV44Gh44GKDQor44KI44GX44GgLOOBvuOBleOBr+OCiw0KK+OBhuOBoeOBoCzjgbLjgafjgYoNCivjgYLjgZXjgYTjga0s44Gm44Gk44KEDQor44GK44GX44G+LOOBl+OBkuOBig0KK+OBn+OBquOBiyzjgZ/jgaTjgYoNCivjgYrjgYrjgZMs44G+44GV44KN44GGDQor44GE44Ga44GkLOOBquOBiuOCiw0KK+OBr+OChOOBlyzjgb7jgZXjgobjgY0NCivjgbXjgZjjgY0s44Go44GK44KLDQor44GX44GK44GL44GELOOBi+OBmuOBsuOBkw0KK+OBquOBjOOBteOBoSzjgY3jgojjgaTjgZANCivjgb7jgaTjgoLjgags44Gf44GE44GE44GhDQor44GL44Go44GGLOOBsuOCjeOBlw0KK+OCj+OBn+OBquOBuSzjgZHjgYTjgZgNCivjga/jgb7jgZDjgaEs44KK44KF44GG44GE44GhDQor44GL44Gt44GTLOOChuOBn+OBiw0KK+OBleOBqOOBhizjgajjgZfjgYoNCivjgYrjgYrjgYQs44G+44GV44GNDQor44Gv44KE44GXLOOBm+OBhOOBmA0KK+OBjeOBv+OBpOOBiyzjgb7jgZXjgYoNCivjgbXjgY/jgaAs44G+44KC44KLDQor44Gq44GL44KA44KJLOOBn+OBoOOBlw0KK+OChOOBsOOBlyzjgZHjgpPjgZgNCivjgZPjgbDjgoTjgZcs44Gf44GL44KG44GNDQor44Go44GP44GgLOOBqOOCguOBi+OBmg0KK+OBn+OBi+OBr+OBlyzjgYvjgaTjgbLjgo0NCivjgYTjgajjgYYs44G/44Gk44GKDQor44Gu44GQ44GhLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBi+OCj+OBqizjga7jgorjgYoNCivjgarjgYvjga4s44Gk44KE44GTDQor44KE44G+44GgLOOBvuOBleOBkw0KK+OBsuOCieOBvuOBpCzjgZ3jgYbjgZ/jgo3jgYYNCivjgYLjgonjgYQs44Go44GX44KG44GNDQor44KI44GX44GuLOOBi+OBiuOCig0KK+OBr+OBvuOBoCzjgYvjgZrjgYoNCivjgYrjgYrjgZ8s44Go44GX44Gy44GTDQor44GX44Gw44GfLOOBvuOBmeOBguOBjQ0KK+OCj+OBi+OChOOBvizjgYLjgY3jgbLjgo0NCivjgbvjgZcs44GN44KI44GXDQor44G/44KPLOOBvuOBleOBig0KK+OBn+OBquOBiyzjgobjgYbjgZgNCivjgYvjgarjgoQs44Gu44KK44Gy44GTDQor44Gf44GR44Gq44GLLOOBmOOCkw0KK+OBleOBqOOBhizjgajjgZfjgobjgY0NCivjgb/jgZrjgZfjgb4s44Go44KI44GG44GE44GhDQor44Gm44KJ44GgLOOBl+OBkuOCiw0KK+OCguOCiuOChCzjgZ/jgaDjgobjgY0NCivjgZnjgY7jgoTjgb4s44KC44Go44Gv44KLDQor44GG44G/LOOBr+OCi+OBig0KK+OBjeOBkOOBoSzjgojjgYbjgYTjgaHjgo3jgYYNCivjgYbjgovjgo/jgZcs44Gf44GR44GXDQor44Gy44KJ44G+44GkLOOBv+OBoeOBiuOBjQ0KK+OBhOOBmuOBryzjga/jgovjgYoNCivjgYTjgajjgYYs44G+44GT44GoDQor44GV44Go44GGLOOBvuOBmeOBig0KK+OBl+OBkuOBruOBtizjgZHjgpPjgZgNCivjgojjgZfjgoLjgags44GL44Ga44GKDQor44GX44Gw44GfLOOBpOOCiOOBlw0KK+OBteOBquOBk+OBlyzjgYTjgaHjgZ7jgYYNCivjgZnjgarjgaAs44KE44GZ44GY44KN44GGDQorLOOChOOBmeOBig0KK+OBjeOBj+OBvizjgarjgYrjgbLjgZMNCivjgZnjgags44GV44Go44GXDQor44Gr44GX44GW44KPLOOBsuOBp+OBig0KK+OBk+OBsOOChOOBlyzjgb/jgaTjgZMNCivjgYvjgo/jgZTjgYgs44G+44GV44Gy44GTDQor44GE44GY44G+LOOBteOBv+OBig0KK+OBq+OBl+OBiizjgbLjgo3jgZcNCivjgavjgZfjgoTjgb4s44Gu44G244KG44GNDQor44GV44GE44Go44GGLOOCiOOBl+OBguOBjQ0KK+OBi+OBqeOCj+OBjSzjgbLjgo3jgb8NCivjgbLjgo3jgZss44Gf44GL44GKDQor44Gf44GQ44GhLOOBn+OBi+OCiOOBlw0KK+OBn+OBi+OBoCzjgajjgZfjga/jgosNCivjgo/jgZ/jgarjgbks44GR44KT44GYDQor44GL44Go44GGLOOBl+OBkuOBguOBjQ0KK+OBquOBi+OBr+OCiSzjgY/jgavjgYoNCivjgYTjgZfjgY/jgbws44KK44KF44GG44GE44GhDQor44KE44G+44GgLOOCiOOBl+OBig0KK+OCj+OBi+OBvuOBpCzjgZPjgYbjgZgNCivjgYvjgo/jgZfjgb4s44Gy44KN44KG44GNDQor44GL44Gf44KC44GoLOOBkeOCk+OBmA0KK+OBn+OBi+OChOOBvizjgY3jgb/jgbLjgZMNCivjgaTjgaHjgaAs44Gf44Gk44GXDQor44Gf44Gh44Gw44GqLOOBsuOBp+OBig0KK+OBk+OBsOOChOOBlyzjgYLjgY3jgokNCivjgaTjgaAs44Go44GX44KG44GNDQor44KC44KK44GL44KPLOOChuOBjeOBig0KK+OBiuOBj+OBrizjgojjgZfjgYoNCivjgYTjgb7jgYQs44G+44KC44KLDQor44KA44KJ44GKLOOBn+OBoOOBlw0KK+OBl+OCguOCgOOCiSzjgZjjgo3jgYYNCivjgYjjgpPjgaks44Go44GX44Gu44G2DQor44G744GX44GP44G+LOOBvuOBleOBr+OCiw0KK+OBi+OCj+OBmyzjgZfjgpPjgZXjgY8NCivjgb7jgaHjgaAs44KA44Gt44GXDQor44GT44Gw44KE44GXLOOBn+OBpOOBig0KK+OBr+OBoCzjgbLjgo3jgZcNCivjgaTjgY/jgaAs44G+44GV44Gv44KLDQor44Gr44GX44GL44KPLOOBl+OCh+OBhg0KK+OBu+OCk+OBoCzjgbLjgo3jgb8NCivjgo/jgZfjgYrjgYss44Go44GX44Gy44KNDQor44KA44KN44GELOOCiOOBhg0KK+OChOOBmeOBoCzjgb7jgZXjgZcNCivjgojjgZfjgaAs44Gy44KN44KG44GNDQor44G744KKLOOBguOBpOOBkw0KK+OBk+OBhuOBoCzjgZPjgYbjgYjjgYQNCivjgYvjgb7jgaAs44GI44GE44GYDQor44GG44GI44KA44KJLOOBsuOCjeOBvw0KK+OBvuOBpOOBsOOCiSzjgYvjgZrjgoQNCivjgb/jgarjgajjgZDjgaEs44GX44GS44KLDQor44GP44GM44Gm44KTLOOChOOBmeOBlw0KK+OBhOOCj+OBmyzjga7jgbbjgbLjgo0NCivjga/jgoTjgZcs44G/44Gk44Gy44KNDQor44GE44GP44Gq44G/LOOBl+OCk+OBmA0KK+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgZPjgoTjgb4s44Gy44KN44G/44GhDQor44GK44Go44G+44KLLOOCiOOBl+OBsuOBqA0KK+OBquOBjOOBhCzjgoLjgajjga/jgosNCivjgYTjgajjgYYs44G+44GT44GoDQor44GE44G+44GELOOBn+OBpOOCiw0KK+OBvuOBmeOBoCzjgZ/jgYvjgbLjgo0NCivjgYvjgo/jgbks44KK44KH44GG44GfDQor44GV44Go44GGLOOBkeOBhOOBmA0KK+OBleOBkyzjgb7jgZXjga/jgosNCivjgoDjgYvjgYQs44GY44KF44KT44GE44GhDQor44GK44GX44G+LOOBj+OBmeOBn+OBiw0KK+OBpOOBoeOChCzjgYTjgZrjgb8NCivjga/jgoTjgZfjgZDjgaEs44Go44GX44GC44GNDQor44GV44Go44GGLOOBm+OBhOOBhOOBoQ0KK+OCgOOCieOBleOBqCzjgobjgY3jgbLjgZMNCivjga/jgovjgoTjgb4s44G+44GV44GKDQor44GX44GS44KC44KKLOOBl+OCheOCk+OBhOOBoQ0KK+OBteOBquOBjSzjgbLjgZXjgYoNCivjgo/jgaAs44GE44GP44GoDQor44Gk44G844GLLOOBl+OCk+OBmeOBkQ0KK+OBqOOBoCzjgZjjgoXjgpPjgYTjgaHjgo0NCivjgoTjgb7jgoDjgoks44Gf44Gg44GC44GNDQor44GE44GX44GQ44KNLOOBl+OCk+OBhOOBoQ0KK+OBteOBquOBr+OBlyzjgobjgY0NCivjgZnjgZrjgY0s44KI44GX44GKDQor44KI44GX44GgLOOBjeOBv+OBsuOCjQ0KK+OCj+OBn+OBquOBuSzjgaTjgY7jgYoNCivjgarjgYvjgavjgZcs44Gf44GL44G/44GkDQor44KE44G+44KC44GoLOOBmOOCheOCk+OBmA0KK+OBhOOBl+OBi+OCjyzjgb7jgZXjgobjgY0NCivjgZ/jgZHjgYbjgaEs44GT44GG44GE44GhDQor44GK44GP44GuLOOBleOBqOOBlw0KK+OBoOOBpizjgZjjgoXjgpMNCivjgZ/jgbks44G+44GV44Go44GXDQor44KE44GOLOOCiuOCh+OBhuOBhOOBoQ0KK+OCiOOBl+OBoCzjgYvjgZrjgYoNCivjgbXjgovjgZ8s44Gf44GL44KG44GNDQor44GL44KP44GQ44GhLOOCiuOCheOBhuOBn+OCjeOBhg0KK+OBr+OBmeOBkyzjgojjgZfjga7jgooNCivjgarjgYzjgb/jga0s44GX44KF44KT44GYDQor44Gf44GR44GX44GfLOOBleOBqOOBlw0KK+OBguOBi+OBiizjgYvjgZrjgobjgY0NCivjgo/jgY3jgoLjgags44Gf44GL44GXDQor44Gf44GV44GLLOOBkeOCk+OBmA0KK+OBquOBi+OBl+OBvizjgoTjgZnjgojjgZcNCivjgZ/jgZHjgarjgYss44Gy44KN44GC44GNDQor44KE44G+44GX44GfLOOBquOBiuOBsuOBkw0KK+OBj+OBvOOBiCzjgabjgovjgYoNCivjgYrjgZDjgZcs44GX44KH44GG44GE44GhDQor44GC44GV44GLLOOBl+OBkuOBqOOBlw0KK+OBiOOBkOOBoSzjgbLjgo3jgojjgZcNCivjgYrjgYrjgZXjgY0s44G+44GT44GoDQor44GK44GP44GgLOOBi+OBmuOBig0KK+OBiuOBj+OCgOOCiSzjgYvjgZrjgo0NCivjgYvjgarjgb7jgoss44KI44GX44Gy44GTDQor44GN44Gu44GX44GfLOOBiuOBleOCgA0KK+OBleOBleOBjSzjgY3jgojjgbLjgacNCivjgZ/jgYvjga4s44Gf44Gk44GKDQor44Gv44GX44GgLOOBl+OBkuOCiw0KK+OBu+OBlyzjgobjgYbjgZnjgZENCivjgb/jgZrjga4s44GL44Gk44Gy44GTDQor44G/44Gk44Gv44GXLOOBn+OBpOOChA0KK+OCguOBqOOBr+OBlyzjgb7jgZXjgZcNCivjgoTjgb7jgaAs44Gm44Gk44GYDQor44Gq44GM44GuLOOBvuOBleOChuOBjQ0KK+OBhOOBl+OBhCzjgobjgY3jgbLjgo0NCivjgYvjgoHjgaAs44GL44GK44KLDQor44GN44Gv44GfLOOBn+OBkeOBsuOBpw0KK+OBk+OBsOOChOOBlyzjgYrjgZXjgoANCivjgZfjgonjgbXjga0s44Gf44GL44KI44GXDQor44Gq44Gk44Gv44KJLOOBsuOCjeOBguOBjQ0KK+OBq+OBl+OBr+OCiSzjgoTjgZnjgbLjgZUNCivjga/jgZfjgbAs44Gf44GP44GKDQor44Gy44GX44Gs44G+LOOBsuOCjeOBteOBvw0KK+OBsuOBs+OChCzjgZfjgpPjgZ/jgo3jgYYNCivjgb/jgoQs44Gy44Gn44Gv44KLDQor44KA44KJ44GL44G/LOOBteOBv+OBig0KK+OCgOOCieOBnyzjga/jgZjjgoENCivjgo/jgZ/jgarjgbks44GX44KH44GG44GE44GhDQor44GK44GK44Gr44GXLOOBsuOCjeOBguOBjQ0KK+OBn+OBkeOBl+OBnyzjgbLjgo3jgZcNCivjgaTjgbDjgY3jgoLjgags44KE44GZ44GXDQor44Gv44G+44GK44GLLOOBn+OBkeOBig0KK+OBv+OBmuOBrizjgajjgojjgZ/jgYsNCivjgYLjgbks44Gy44KN44G/DQor44GC44KJ44GE44GXLOOBvuOBleOBvw0KK+OBleOBqOOBhizjgb7jgZXjgYLjgY0NCivjgZXjgo/jga4s44Gb44GE44GW44G244KN44GGDQor44GX44KC44GY44KH44GGLOOBn+OBoOOBvw0KK+OBn+OBi+OBoCzjgYvjgZrjgbLjgacNCivjgarjgYzjgZ8s44KE44GZ44Gy44KNDQor44Gr44GX44Gv44GfLOOBvuOBleOBteOBvw0KK+OBr+OChOOBlyzjgZ3jgYbjgYTjgaENCivjgbvjgZ3jgYvjgo8s44GC44GN44KJDQor44GC44GK44GNLOOBv+OBjeOBqOOBlw0KK+OCiOOBl+OBoCzjgbLjgo3jgajjgZcNCivjgo/jgZ/jgarjgbks44Gf44GL44GKDQor44GE44KP44GV44KPLOOBn+OBi+OBr+OCiw0KK+OBruOBmyzjgZnjgYjjgYoNCivjgbLjgonjgZfjgZ8s44Gy44KN44KE44GZDQor44KI44GX44GW44KPLOOBsuOBp+OBig0KK+OCgOOBqOOBhizjgZHjgYTjgZ7jgYYNCivjgb/jgo/jgYbjgoks44Gy44Gn44GC44GNDQor44GN44GP44GhLOOBr+OBmOOCgQ0KK+OBiOOBnuOBiCzjgbLjgo3jgb8NCivjgYTjgZfjgYvjgo8s44Gf44GR44GXDQor44GE44Gh44GL44KPLOOBn+OBi+OBlw0KK+OBr+OCieOBoCzjgojjgZfjgZ/jgYsNCivjgoDjgonjgZ8s44KI44GX44GoDQor44GE44Go44GGLOOBv+OBjeOBig0KK+OBu+OBl+OBqizjgZHjgYTjgoQNCivjgajjgY/jgaAs44Gu44KK44GKDQor44Gf44GQ44KKLOOBi+OBmuOCiOOBlw0KK+OBleOBleOBjSzjgajjgoLjgobjgY0NCivjgZ/jgb7jgoss44Gv44KL44GKDQor44Gr44GX44Gv44GXLOOBl+OBkuOBig0KK+OBmOOBpOOBi+OCjyzjgYvjgZrjgbLjgZMNCivjgZnjgZrjgY0s44GV44GE44GhDQor44GK44GK44Gr44GXLOOBjeOBv+OBkw0KK+OBquOBjOOBleOBjSzjgobjgYbjgZMNCivjgYTjgYTjgaAs44Gy44Gn44G/DQor44Gf44GL44GuLOOBvuOBleOBsuOCjQ0KK+OBsuOBleOBrizjgajjgZfjgaTjgZANCivjgYTjga7jgYbjgYgs44Gy44Gn44GNDQor44GE44GX44GP44KJLOOBvuOBleOChuOBjQ0KK+OBguOBjeOChOOBvizjgZPjgYbjgZgNCivjgYTjgaHjgYvjgo8s44Gb44KT44KKDQor44GN44GM44KPLOOBk+OBhuOBhOOBoQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgojjgaAs44G/44GN44GKDQor44GC44KJ44GNLOOChuOBhuOBmA0KK+OBmeOBjuOBr+OCiSzjgbLjgafjgbLjgZUNCivjgYvjgo/jgZDjgaEs44Gm44GE44GYDQor44G/44KELOOBvuOBleOBsuOBkw0KK+OBhOOBkeOBiizjgbLjgo3jgobjgY0NCivjgZXjgY/jgonjgYQs44G144GY44GKDQor44GT44GX44GuLOOCiOOBhuOBmeOBkQ0KK+OBjeOBj+OBi+OCjyzjgYvjgZrjgYoNCivjgobjgYLjgZUs44Gf44GL44GXDQor44GZ44Ga44GNLOOChuOBhuOBmA0KK+OBvuOBmeOBoCzjgZfjgpPjgZ/jgo3jgYYNCivjgYLjgonjgYQs44KE44GZ44GKDQor44GE44GR44GgLOOBqOOBl+OBig0KK+OBjeOBmSzjgYLjgY3jgokNCivjgYbjgZfjgoTjgb4s44KM44GEDQor44GL44G+44GfLOOBiOOBpOOBlw0KK+OBhuOBleOBvyzjgY3jgojjgZcNCivjgarjgYvjga4s44Gf44GR44GXDQor44GL44GN44GL44KPLOOBmOOCheOCk+OBhOOBoQ0KK+OBjeOBmOOBvizjgbLjgo3jgobjgY0NCivjgoDjgYvjgYQs44G+44GV44KI44GXDQor44Gq44GM44KE44G+LOOBvuOBleOBkw0KK+OBr+OBo+OBqOOCiizjgb7jgZXjgYoNCivjgb/jgZfjgb4s44Gk44KI44GXDQor44GU44Go44GGLOOBj+OBq+OBqOOBlw0KK+OBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgYrjgYzjgZ8s44GL44KI44GTDQor44GP44GV44GwLOOBr+OCi+OChuOBjQ0KK+OBpuOCieOBiCzjgbLjgZXjgagNCivjgbvjgpPjgaAs44Gu44KK44GKDQor44GC44GP44Gf44GM44KPLOOBv+OBruOCiw0KK+OBv+OChOOBk+OBlyzjgoTjgZnjgYgNCivjgbXjgY/jgZfjgb4s44GR44GE44GZ44GRDQor44GX44Gu44Ga44GLLOOBqOOCguOBkw0KK+OBiuOBiuOBn+OBjSzjgZfjgofjgYbjgZgNCivjgarjgYzjgb7jgaQs44Gb44GE44GE44Gh44KN44GGDQor44GC44KJ44GELOOBvuOBleOCiw0KK+OBvuOBpOOBoCzjgZXjgaHjgogNCivjgbXjgZjjgZ8s44GC44Gk44G/DQor44GL44G/44GQ44GhLOOBsuOCjeOBguOBjQ0KK+OBi+OBqOOBhizjgbLjgajjgZcNCivjgoTjgb7jgZbjgY0s44Gf44GR44Gu44KKDQor44GG44KB44Gf44GrLOOBguOBpOOBkw0KK+OBquOCi+OBmyzjgZjjgoXjgpPjgZMNCivjgY/jgbws44GP44Gr44GKDQor44GP44KJ44GfLOOBsuOCjeOChuOBjQ0KK+OBk+OCk+OBqSzjgabjgovjgYoNCivjgZ/jgZHjgYbjgaEs44G/44GN44KEDQor44GE44Gu44GG44GILOOBruOCiuOBig0KK+OBn+OBi+OBoCzjgojjgZfjgYvjgZoNCivjgYLjgY/jgaQs44GL44Gk44KG44GNDQor44Go44KK44GELOOBsuOCjeOBvw0KK+OCguOCiuOBiuOBiyzjgobjgb/jgZMNCivjgYvjgY/jgZ/jgass44G+44Gq44G2DQor44Gf44GR44GE44GhLOOBoeOBiOOBkw0KK+OBn+OBhCzjgZHjgYTjgZMNCivjgaTjgaHjgoQs44G+44GV44G144G/DQor44G+44GZ44GgLOOBvuOBleOBn+OBiw0KK+OBi+OCk+OBoCzjgbLjgZXjgYoNCivjgoTjgb7jgYbjgoks44KE44GZ44KI44GXDQor44GN44Gu44GX44GfLOOBl+OBkuOBv+OBpA0KK+OBu+OBleOBiyzjgY/jgavjgYoNCivjgb7jgovjgYrjgYss44Gy44Gn44KG44GNDQor44GL44G+44GfLOOBsuOCjeOBlw0KK+OBr+OBn+OBquOBiyzjgb7jgZXjgb8NCivjgY/jgo3jga8s44KI44GG44GTDQor44Go44Gk44GLLOOCiOOBhuOBkw0KK+OBhOOBl+OBhCzjgbXjgogNCivjgoLjgorjgZ8s44G+44GhDQor44G744KT44G+LOOBl+OBkuOCiw0KK+OBguOCieOBi+OBjSzjgojjgZfjgajjgoINCivjgZ/jgZEs44Gf44GR44Gy44GTDQor44GE44Ga44Gv44KJLOOBquOBiuOBi+OBmg0KK+OBsuOBleOBqOOBvyzjgZ/jgo3jgYYNCivjgZnjgZrjgY0s44KI44GX44Gy44KNDQor44Gr44GX44Gq44GLLOOBsuOBleOBruOCig0KK+OBv+OBmuOBrizjgZPjgYbjgZ7jgYYNCivjgoLjgorjgoDjgoks44GC44GN44KJDQor44Gf44GL44Gv44GXLOOBqOOBl+OBi+OBmg0KK+OBl+OBkuOBqOOCgSzjgojjgZfjgYLjgY0NCivjgZXjgajjgYYs44KG44GG44GYDQor44G+44GI44GL44KPLOOBvuOBleOBvw0KK+OCiOOBl+OBhCzjgajjgZfjga7jgooNCivjgbvjgZ3jgoQs44Gy44Gn44Gy44GTDQor44GV44GL44KC44GoLOOBi+OBmuOBig0KK+OBk+OBhOOBmuOBvyzjgZfjgZLjgb8NCivjgavjgZcs44KE44GZ44G144G/DQor44GL44Gt44GTLOOBguOBjeOCiQ0KK+OBmeOBv+OBj+OCiSzjgZfjgofjgYbjgbjjgYQNCivjgojjgZPjgYos44Gf44GL44GKDQor44GV44GV44GNLOOBi+OBmuOBig0KK+OBr+OChOOBlyzjgYLjgY3jgokNCivjgZ/jgarjgYss44GN44KI44GXDQor44GC44GN44KE44G+LOOBqOOBv+OBig0KK+OBleOBhOOBmSzjgojjgZfjgYvjgZoNCivjga7jgYzjgb8s44Gb44GE44GYDQor44Go44KI44GX44G+LOOBl+OCheOBhuOBhOOBoeOCjeOBhg0KK+OBl+OCkyzjgZ/jgYvjgZcNCivjgbXjgY3jga4s44KC44KK44KI44GXDQor44GE44GR44GgLOOBi+OBmuOBjeOBoQ0KK+OBiuOBoOOCj+OCiSzjgorjgaQNCivjgZ/jgYvjga/jgZcs44Go44GX44GL44GkDQor44GR44GE44G+LOOBmOOCheOCkw0KK+OBl+OBv+OBmizjgZPjgYbjgZgNCivjgYTjgb7jgYTjgZrjgb8s44Go44KC44GYDQor44KC44KK44GfLOOChuOBv+OBkw0KK+OCguOCiizjgoTjgZnjgb8NCivjgb7jgYjjgYvjgo8s44KE44GZ44GL44GaDQor44KE44Gq44GO44GgLOOBmeOBmeOCgA0KK+OCgOOCieOCguOBqCzjgbLjgo3jgZcNCivjgZnjgZrjgY0s44Gy44KN44GXDQor44G744Gd44GILOOBvuOBleOBsuOBkw0KK+OBhOOBl+OBj+OCiSzjgZvjgYTjgZgNCivjgbLjgo3jgYvjgo8s44KG44GG44GYDQor44GL44KJ44GX44G+LOOBn+OBi+OBlw0KK+OBvuOBoeOBoCzjgZfjgpPjgYTjgaENCivjgoLjgorjgoTjgb4s44Gy44GV44Gu44KKDQor44Gf44GR44KA44KJLOOBpuOBpOOBnuOBhg0KK+OBpOOBi+OCguOBqCzjgYLjgY3jgbXjgb8NCivjgoTjgb7jgZDjgaEs44Gy44KN44Gy44GoDQor44Gd44KB44KELOOBguOBjeOBig0KK+OBquOBi+OBlOOCgSzjgbLjgafjgYoNCivjgYTjgo/jgarjgYws44GR44GE44GZ44GRDQor44Gb44GN44KELOOBkeOCk+OBmA0KK+OBpuOCieOBhCzjgYvjgZrjgbLjgo0NCivjgZ/jgarjgYss44Gy44Gn44GKDQor44Gb44GN44KELOOBmOOCheOCk+OCjeOBhg0KK+OBleOBj+OCieOBhCzjgYjjgb/jgZMNCivjgYTjgZ3jgbks44G+44Gk44Gf44KN44GGDQor44G+44Gk44GK44GLLOOBn+OBi+OBsuOBkw0KK+OBhOOBoSzjgb7jgZXjga7jgooNCivjgoTjgb7jgoLjgags44GX44KN44GGDQor44Gn44GQ44GhLOOBn+OBi+OBqOOBlw0KK+OBsuOCieOBvuOBpCzjgojjgZfjgYoNCivjgb/jgZrjga4s44GE44GV44KADQor44Go44G/44Gq44GMLOOBvuOBleOBsuOCjQ0KK+OBn+OBi+OBl+OBvizjgbLjgajjgZcNCivjga7jgYzjgb8s44Gy44KN44GXDQor44GK44GK44GkLOOBsuOCjeOBteOBvw0KK+OBk+OBsOOChOOBlyzjgZHjgpPjgYTjgaENCivjgabjgonjgaAs44Go44GX44GL44GaDQor44GV44GE44Go44GGLOOBn+OBpOOChA0KK+OBguOBleOBrizjgZ/jgYvjgoQNCivjgZfjgoLjgoDjgoks44Gu44KK44Go44GXDQor44GK44GK44GE44GXLOOBruOCiuOCiOOBlw0KK+OBn+OBquOBiyzjgaTjga3jgYoNCivjgb7jgaTjgoLjgags44GN44KI44GXDQor44Gy44KJ44G+44GkLOOBl+OBkuOCiw0KK+OBn+OBkeOBhuOBoSzjgb/jga7jgosNCivjgZfjgZLjga/jgoks44Gm44KL44G+44GVDQor44GK44GL44KC44GoLOOBr+OBmOOCgQ0KK+OCgOOCieOChOOBvizjgoLjgajjgZMNCivjgZPjgb7jgaTjgbDjgoks44GX44Ga44GKDQor44GI44Gw44GfLOOBkeOCk+OBmA0KK+OBiuOBiuOBnyzjgZTjgo3jgYYNCivjgabjgonjgYos44Gy44KN44KG44GNDQor44GK44GK44GV44KPLOOBvuOBleOCiw0KK+OBi+OCj+OBl+OBvizjgZ/jgaTjgb8NCivjgYLjgonjgYQs44G+44GV44GXDQor44Gv44GX44Ga44KBLOOBguOBjeOCiQ0KK+OBv+OBmuOBl+OBvizjgZPjgYbjgZgNCivjgbLjgonjgb7jgaQs44GI44Gk44GKDQor44GK44GP44KA44KJLOOCiOOBl+OBkw0KK+OBv+OBmuOBquOBiyzjgZPjgYbjgZcNCivjgbvjgorjgYbjgaEs44GX44KF44GG44GE44GhDQor44Gf44GN44KC44GoLOOBqOOBl+OBig0KK+OChOOBmeOBsCzjgZPjgYbjgZgNCivjgY3jgZ/jga4s44KC44Go44Gu44G2DQor44Gr44GX44GgLOOChuOBjeOBig0KK+OBhOOBl+OBi+OCjyzjgajjgZfjgb8NCivjgYrjgYrjgbAs44Gy44GV44GKDQor44GL44GX44KP44GOLOOBi+OBmuOChuOBjQ0KK+OBleOBqOOBhizjgYrjgZXjgoANCivjgb7jgaTjgaAs44GC44GN44GKDQor44GT44KA44KNLOOBquOBiuOBjQ0KK+OCgOOCieOBnyzjgbLjgafjgobjgY0NCivjgZXjgZXjgYzjgo8s44GL44Ga44GKDQor44GV44Gf44GRLOOBr+OCi+OBqOOBlw0KK+OBj+OCj+OBrizjgbLjgZXjgYoNCivjgZTjgajjgYYs44GL44Gk44G/DQor44G144GY44GELOOBl+OCk+OBhOOBoQ0KK+OBv+OBmuOBk+OBlyzjgZHjgpPjgYTjgaENCivjgbXjgZjjgb7jgY0s44GL44Ga44KEDQor44GE44Gn44GfLOOBsuOBqOOBlw0KK+OBquOBi+OBpOOBiyzjgZ/jgYvjgZcNCivjgYbjgpPjga4s44Gf44GR44G/DQor44GZ44Ga44GNLOOBi+OBmuOBsuOCjQ0KK+OBr+OBvizjgbLjgo3jgZcNCivjgajjgb/jgZ8s44Gf44GL44GKDQor44Gf44Gr44GkLOOChuOBhuOBlA0KK+OBmeOBmuOBjSzjgb7jgZXjgb/jgaENCivjgYrjgY/jgoDjgoks44Gh44KI44GYDQor44G144GP44GX44G+LOOBi+OBmuOBsuOBkw0KK+OBiuOBiuOBr+OBlyzjgbLjgYvjgosNCivjgoTjgb7jgZfjgZ8s44Gf44GL44GKDQor44GL44KP44G/LOOBm+OBhOOBhOOBoQ0KK+OBr+OCi+OBnyzjgZHjgpPjgYTjgaHjgo0NCivjgb/jgoTjgoLjgags44Gy44KN44GXDQor44Gk44GY44GfLOOChuOBhuOBkw0KK+OBhOOBvuOCgOOCiSzjgb7jgZXjgYoNCivjgZXjgajjgYYs44GV44G244KN44GGDQor44Gq44GL44GY44G+LOOChuOBjeOBkw0KK+OBl+OBhOOBrizjgZfjgZLjgYoNCivjgZTjgajjgYYs44G/44Gu44KLDQor44GL44Go44GGLOOCguOBqOOBr+OCiw0KK+OBquOBjOOBhCzjgaHjgYjjgZMNCivjgYbjgaHjga4s44GC44Gk44GXDQor44GI44GE44GY44G+LOOBiuOBleOCgA0KK+OChOOBvuOBquOBiyzjgZPjgYbjgZgNCivjgarjgYvjgoDjgoks44Gu44G244GKDQor44GZ44Ga44GNLOOChOOBmeOChuOBjQ0KK+OBm+OCgOOCiSzjgorjgoXjgYbjgYTjgaENCivjgarjgYvjgYzjgo8s44GL44Gk44Gy44KNDQor44Gf44KELOOBn+OBi+OBlw0KK+OCgOOCieOBi+OBvyzjgbLjgo3jga7jgooNCivjgYTjgZfjgYvjgo8s44GT44GG44GE44GhDQor44Gb44GN44GQ44GhLOOBl+OCh+OBhuOBhOOBoeOCjeOBhg0KK+OBiuOBiuOBrizjgojjgZfjgobjgY0NCivjgYrjgYTjgYvjgo8s44Go44GX44KEDQor44GE44KP44GELOOBj+OBq+OChOOBmQ0KK+OBguOBleOBsizjgZHjgpPjgZgNCivjgZTjgajjgYYs44GL44GK44KLDQor44GL44Gt44Gf44GRLOOBi+OBquOCgQ0KK+OBhuOBiOOBvuOBpCzjgajjgZfjga7jgooNCivjgbXjgY/jgZfjgb4s44Gy44KN44GYDQor44G144GP44GgLOOBn+OBi+OChuOBjQ0KK+OBmeOBmuOBjSzjgY3jgofjgYbjgZMNCivjgYrjgZDjgoks44KG44GN44Gy44GTDQor44Gy44KJ44GnLOOBruOBtuOBi+OBmg0KK+OBiuOBl+OBkizjgZ/jgYTjgaENCivjgb7jgaTjgoLjgags44GI44KK44GTDQor44GV44GV44GNLOOBiOOBpOOBig0KK+OBlOOCk+OBoCzjgb7jgZXjgosNCivjgb7jgaTjgYrjgYss44Gb44GE44GYDQor44GG44KB44GW44KPLOOBvuOBleOBpOOBkA0KK+OBq+OBl+OBiizjgYvjgZrjgarjgooNCivjgZPjgZjjgb4s44KG44GG44Ge44GGDQor44Gf44Gr44GQ44GhLOOCiOOBl+OBpOOBkA0KK+OBiuOBiuOBjuOBmSzjgbLjgo3jgZcNCivjgZXjgaDjgbLjgZUs44GT44GG44GE44GhDQor44G144GY44KP44KJLOOCguOCiuOBig0KK+OBr+OBo+OBqOOCiizjgarjgYrjgobjgY0NCivjgYvjgb7jgZ8s44Go44GX44GKDQor44Go44GwLOOBvuOBk+OBqA0KK+OChOOBvuOBoCzjgZ/jgaDjgbLjgo0NCivjgoTjgb7jgoLjgags44G/44GN44GKDQor44Gf44GR44GG44GhLOOBn+OBkeOBlw0KK+OBguOCieOBjSzjgbLjgafjgbXjgb8NCivjgavjgZfjgYos44Gb44Gk44GTDQor44KC44KK44GG44GhLOOBleOBquOBiA0KK+OBhOOCj+OBnyzjgbLjgafjgYLjgY0NCivjgZXjgZXjgY0s44G+44GV44KN44GGDQor44G+44GI44GM44KPLOOChOOBmeOBpOOBkA0KK+OBteOBj+OBq+OBlyzjgYvjgZrjga7jgbYNCivjgYbjgYjjgaAs44Go44KC44KIDQor44KE44G+44GO44GXLOOBvuOBk+OBqA0KK+OBiuOBrizjgZHjgpPjgZgNCivjgbXjgZjjgZ8s44G144GP44GN44GhDQor44GN44Gf44KA44KJLOOCiOOBl+OBv+OBpA0KK+OCiOOBl+OBr+OCiSzjgobjgorjgZMNCivjgYTjgo/jgZXjgo8s44Gf44GP44G/DQor44GT44G+44GkLOOBn+OBpOOCiOOBlw0KK+OBn+OBq+OCgOOCiSzjgbLjgo3jgYLjgY0NCivjgZPjgZXjgYss44Gy44GV44Gf44GRDQor44Gf44GX44G+LOOBvuOBleOChuOBjQ0KK+OBq+OBl+OBiuOBiyzjgYvjgaTjgobjgY0NCivjgZnjgZrjgY0s44Go44GX44GKDQor44GU44Go44GGLOOChOOBmeOBsuOCiQ0KK+OBi+OCj+OBr+OCiSzjgZjjgoXjgpPjgYTjgaENCivjgZ/jgZjjgb4s44GX44KH44GG44GYDQor44GL44KT44GuLOOBguOBjeOBig0KK+OBi+OBn+OBl+OBvizjgZfjgpPjgoQNCivjga/jgZfjgoLjgags44G/44GZ44GaDQor44Gq44GL44GgLOOBsuOCjeOBlw0KK+OBi+OBleOBr+OCiSzjgZvjgYTjgYTjgaENCivjgabjgonjgoLjgags44Gf44GL44GC44GNDQor44KP44GL44G+44GkLOOBvuOBquOBvw0KK+OBhOOBqOOBhizjgajjgZfjgaTjgZANCivjgo/jgaAs44Gy44Gn44G/DQor44Gf44KT44GYLOOBsuOCjeOBguOBjQ0KK+OBiuOBiuOBpOOBiyzjgoHjgZDjgb8NCivjgaTjgZjjgoLjgags44GR44GE44GE44GhDQor44Gb44KK44GW44KPLOOBruOBtuOBr+OCiw0KK+OBqOOBruOBleOBjSzjgbXjgb/jgYgNCivjgZ/jgYvjgY4s44G/44Gh44GTDQor44GK44G144GhLOOBi+OBpOOBquOCig0KK+OBguOBvuOBrizjgb/jgaHjgYoNCivjgarjgYvjgoDjgoks44GC44GN44KJDQor44Gf44Gw44GfLOOChuOBhuOBmA0KK+OBqOOCiOOBmuOBvyzjgb7jgZXjgYLjgY0NCivjgZfjgoXjgY/jgoQs44KI44GX44KN44GGDQor44Gf44GL44GuLOOBl+OCk+OBhOOBoQ0KK+OCgOOCieOBi+OBvyzjgbLjgajjgZcNCivjgYTjgZfjgZrjgYss44Gu44G244KI44GXDQor44GE44GE44Ga44GLLOOBqOOBl+OBsuOBkw0KK+OBl+OCieOBhCzjgYLjgY3jgokNCivjgbXjgY/jga/jgoks44GZ44GI44Gv44KLDQor44GE44Gq44GM44GNLOOBpuOBpOOBig0KK+OBsuOCieOBl+OBvizjgbLjgajjgZcNCivjgaTjgZjjgbDjgoTjgZcs44GC44Gk44GXDQor44G+44Gk44GKLOOBvuOBleOBvw0KK+OChOOBvuOCguOBqCzjgb7jgarjgbYNCivjgoLjgorjga4s44Gf44GL44GKDQor44Gf44GY44G+LOOBqOOBl+OBig0KK+OBruOBluOBjSzjgZjjgoXjgpMNCivjgYLjgaDjgaEs44Gu44G244Gf44GLDQor44Gf44GL44KELOOBn+OBi+OBlw0KK+OBiuOBrizjgb7jgZXjgYoNCivjgb7jgaTjgoLjgags44GL44Gk44GC44GNDQor44Gv44GX44KC44GoLOOBi+OBmuOBsuOBpw0KK+OBi+OBrizjgoTjgZnjgZcNCivjgZ/jgZHjgaAs44G144G/44GTDQor44GN44KK44Gv44KJLOOBkeOBhOOBkw0KK+OBn+OBquOBiyzjgoTjgZnjgbLjgZMNCivjgajjgorjgYQs44GC44GN44Gu44G2DQor44Gq44GL44GX44G+LOOBvuOBleOBig0KK+OBm+OBmeOBvyzjgZjjgoXjgpMNCivjgb7jgYjjga7jgZ3jga4s44GL44Ga44Gq44KKDQor44GU44Go44GGLOOBl+OCk+OBmA0KK+OBu+OCiizjgobjgY3jgojjgZcNCivjgZ/jgYvjgYTjgoks44GN44KH44GG44GE44GhDQor44Gf44Gr44GgLOOBguOBjeOBsuOCjQ0KK+OBteOCi+OBqeOBhCzjgZfjgoXjgYbjgYTjgaHjgo3jgYYNCivjgYrjgYrjgY7jgoQs44G+44GV44Gq44GKDQor44Gq44GL44GY44G+LOOBruOBtuOCiOOBlw0KK+OBu+OCiuOBi+OCjyzjgYvjgZrjgbLjgo0NCivjgZnjgZrjgY0s44G+44GT44GoDQor44GC44GK44GNLOOBruOBtuOChuOBjQ0KK+OBiuOBj+OBr+OBnyzjgb7jgZXjgbLjgo0NCivjgY/jgo/jgbDjgoks44KG44GG44GZ44GRDQor44GL44KT44GgLOOBsuOCjeOBv+OBpA0KK+OBmeOBjuOCguOBqCzjgorjgofjgYYNCivjgoTjgb7jgoLjgags44Gy44Gn44GC44GNDQor44GL44Gt44GTLOOBvuOBleOCiw0KK+OBquOCiuOBnyzjgoLjgajjgobjgY0NCivjgavjgZfjgYos44Gf44GR44Gy44KNDQor44GE44GL44KKLOOBr+OCi+OBig0KK+OBteOCi+OBi+OCjyzjgZHjgpPjgYTjgaENCivjgYLjgonjgYQs44Gb44GE44GYDQor44GP44Ga44GL44G/LOOBsuOCjeOBlw0KK+OBlOOBqOOBhizjgZfjgoXjgYbjgYTjgaENCivjgoTjgb7jga/jgoks44G+44GZ44G/DQor44KE44G+44GgLOOBl+OBkuOCiw0KK+OBhOOBmCzjgajjgZfjgo3jgYYNCivjgY/jgonjgoLjgaEs44G/44GN44GKDQor44G144GY44KP44KJLOOBsuOBp+OBmeOBjg0KK+OBn+OBkeOBoCzjgZXjgajjgZcNCivjgZ/jgYvjga7jgZss44GI44Gk44GKDQor44Go44KC44KA44KJLOOBl+OBkuOBteOBvw0KK+OBleOBqOOBhizjga/jgZjjgoENCivjgZXjgYvjgY3jgbDjgoks44G+44GV44KG44GNDQor44G/44KE44GW44GNLOOChuOBhuOBmA0KK+OCiOOBl+OBoCzjgZfjgoXjgYbjgYTjgaENCivjgZ/jgarjgYss44KI44GX44Gy44GTDQor44GU44Go44GGLOOBv+OBoeOBig0KK+OBq+OBl+OBoCzjgZHjgYTjgYTjgaENCivjgarjgYvjgZfjgb4s44G/44Gk44Gy44KNDQor44GN44KA44KJLOOBl+OBkuOChuOBjQ0KK+OBhOOBruOBhuOBiCzjgb7jgZXjgajjgZcNCivjgYrjgZfjgb4s44Gf44GR44GXDQor44GK44GK44KELOOBvuOCguOCiw0KK+OBv+OChOOCguOBqCzjgb7jgZXjga7jgooNCivjgoTjgb7jgZfjgZ8s44GK44GV44KADQor44Gf44Gq44GLLOOBvuOBmeOBvw0KK+OCguOCiizjgYLjgaTjgZcNCivjgarjgovjgb8s44GK44GV44KADQor44GU44Go44GGLOOBoOOBhOOBmOOCjeOBhg0KK+OChOOBvuOBoeOBiyzjgYLjgY3jgokNCivjgZXjgZXjgY0s44G+44GV44Gy44GoDQor44GN44GX44GgLOOBv+OBoeOBig0KK+OBiuOBiuOChOOBvizjgojjgYbjgZnjgZENCivjgZfjgYTjga4s44GL44Gk44KEDQor44GE44Ga44G/44GV44KPLOOCiOOBl+OBqOOCgg0KK+OBi+OBv+OCgOOCiSzjgaDjgYTjgaENCivjgZXjgYvjgYQs44GR44KT44GE44GhDQor44GU44Go44GGLOOBi+OBmuOBig0KK+OBi+OBqOOBhizjgY3jgYTjgaHjgo3jgYYNCivjgZ/jgYvjga/jgZcs44GT44GG44GYDQor44GP44GuLOOBn+OBpOOBsuOBkw0KK+OBhOOCj+OBtuOBoSzjgb7jgZXjgaTjgZANCivjgbvjgpPjgbYs44G+44GV44G144G/DQor44KC44KK44GfLOOBmOOCheOCkw0KK+OBm+OBjeOChCzjgZMNCivjgazjgb7jgZ8s44GL44Ga44KEDQor44GU44Go44GGLOOCgeOBhOOBleOBhA0KK+OBvuOBquOBuSzjgb7jgZXjgosNCivjgYTjgb7jgY3jgZ8s44GX44KH44GG44GYDQor44GT44Gg44GLLOOBkeOCk+OBmA0KK+OCiOOBl+OBoCzjgZ/jgZHjgbLjgZUNCivjgZXjgajjgYYs44Gf44GR44GXDQor44GP44GZ44G/LOOBi+OBmuOChuOBjQ0KK+OBr+OBjuOCj+OCiSzjgajjgZfjgYvjgZoNCivjgbXjgovjgZss44Gm44KL44Gy44GTDQor44KA44KJ44GfLOOBl+OCh+OBhuOBkw0KK+OBiuOBj+OCgOOCiSzjgb7jgZXjgbLjgZMNCivjgZ/jgavjgYzjgb8s44Gf44GE44GhDQor44Gq44GL44KA44KJLOOBl+OCk+OBmA0KK+OBk+OBhOOBmuOBvyzjgb7jgZXjgbLjgZMNCivjgZnjganjgYYs44Gy44KN44GXDQor44GE44GnLOOBpuOBpOOChA0KK+OBl+OCguOBrizjgYvjgZrjgbLjgo0NCivjgZ/jgYvjgY4s44KI44GX44GC44GNDQor44GV44GL44GELOOBguOBpOOBlw0KK+OBhOOBruOBhuOBiCzjgYvjgZrjgYoNCivjgbXjgovjgZ8s44G/44Gh44Gu44G2DQor44GC44GV44GELOOBjeOCiOOBlw0KK+OBteOBi+OBleOCjyzjgY/jgavjgbLjgZMNCivjgZTjgYvjgYTjgaEs44GT44GG44GYDQor44GK44GK44Gk44GLLOOChOOBmeOBruOCig0KK+OBleOBqOOBhizjgZXjgajjgZcNCivjgYTjga7jgYbjgYgs44GX44GS44KLDQor44Gf44GR44GgLOOBvuOBleOChuOBjQ0KK+OBvuOBmeOBoCzjgojjgZfjgbLjgZMNCivjgoTjgb7jgoLjgags44Gu44G844KLDQor44GK44GK44Gv44KJLOOBvuOBquOBtg0KK+OBteOBquOBpCzjgYvjgZrjgbLjgZMNCivjgZPjgoTjgb4s44GY44KF44KT44Ge44GGDQor44KE44G+44GW44GNLOOBqOOBl+OBsuOCjQ0KK+OBn+OBmOOCiizjgb/jga3jga/jgosNCivjgZXjgajjgYYs44Gk44KI44GXDQor44Gq44GM44GX44G+LOOBmOOCjeOBhg0KK+OBpOOBoCzjgZ/jgYvjgZcNCivjgarjgYzjgYos44Go44KC44G/DQor44GK44GK44GZ44GOLOOBsuOCjeOChuOBjQ0KK+OBhOOBqOOBhizjgajjgoLjgarjgooNCivjgZ/jgb7jgYQs44KG44Gf44GLDQor44G/44KE44GX44GfLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBv+OBl+OBvizjgojjgZfjgbLjgo0NCivjgbvjgorjgYQs44Gq44GK44GC44GNDQor44GU44Go44GGLOOBvuOBk+OBqA0KK+OChOOBiizjgZjjgoXjgpPjgYTjgaENCivjgbLjgZjjgoQs44Gf44Gk44KEDQor44G744KK44GELOOBsuOBp+OBmA0KK+OBn+OBkeOBoCzjgZ/jgYvjgojjgZcNCivjgoTjgZnjgarjgYws44GL44Gk44G/DQor44KE44G+44GW44GNLOOBsuOBp+OBsuOBqA0KK+OChOOBrizjgYLjgY3jgokNCivjgZfjgo/jgY8s44G/44Gu44KLDQor44GL44G/44GuLOOBguOBjeOCiQ0KK+OBquOBi+OBmOOBvizjgZ/jgYTjgZjjgo3jgYYNCivjgb7jgZnjgaAs44GP44Gr44Gy44GTDQor44GK44G144GhLOOBmOOCjeOBhg0KK+OBteOBj+OBluOBjSzjgozjgYTjgZMNCivjgYTjgZ/jgYzjgY0s44GX44GS44GNDQor44GX44KCLOOBoeOBiA0KK+OBteOBj+OBhCzjga7jgbbjgYLjgY0NCivjgYTjgbMs44GY44KT44GE44GhDQor44GT44KA44GL44GELOOBjeOCiOOBvw0KK+OBteOBmOOBiCzjga7jgbbjgobjgY0NCivjgb7jgaTjgY0s44GL44Ga44Gy44GTDQor44GT44Gw44KE44GXLOOBi+OBmuOCiOOBlw0KK+OBlOOBhuOBoSzjgYvjgZrjgajjgZcNCivjga/jgZvjgYzjgo8s44GR44KTDQor44GL44KP44GU44GILOOBqOOCguOBteOBvw0KK+OBquOBjOOBleOCjyzjgZ/jgYTjgZvjgYQNCivjgoTjgb7jgZfjgZ8s44GV44GL44GIDQor44GE44GX44GW44GNLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBiuOBoCzjgb/jgaHjgbLjgo0NCivjgZfjgpPjganjgYYs44Gf44GL44GC44GNDQor44GX44KC44GV44GTLOOBr+OCi+OBsuOBlQ0KK+OBpOOBpOOBvyzjgY3jgojjgZcNCivjgY3jgZ/jgYrjgYss44GL44Ga44Gy44GTDQor44GN44Gf44GW44KPLOOBk+OBhuOBmA0KK+OBquOBi+OBiuOBiyzjgYjjgYTjgZgNCivjgYTjgZfjgbDjgZcs44G/44KG44GNDQor44Gv44GX44GQ44GhLOOBv+OCj+OBkw0KK+OCj+OBn+OBquOBuSzjgYLjgY3jgbLjgo0NCivjgYrjgYrjgbAs44GL44Gq44KBDQor44Gv44KJLOOBi+OBmuOChA0KK+OBl+OBv+OBmizjgZPjgb/jgaoNCivjgYTjgZbjgo8s44KI44GX44Gy44GTDQor44KI44GX44KE44G+LOOBguOBjeOCiQ0KK+OBmeOBjuOCguOBqCzjgbLjgo3jgobjgY0NCivjgZPjgb7jgaQs44GT44GG44GE44GhDQor44G444KT44G/LOOBk+OBhuOBnuOBhg0KK+OBteOBi+OBoCzjga7jgorjgbXjgb8NCivjgZPjgbDjgoTjgZcs44KI44GX44Gy44GVDQor44GZ44GO44KC44GoLOOBkeOCk+OBmA0KK+OCiOOBk+OChOOBvizjgaTjgajjgoANCivjgZ/jgarjgYss44Gu44KK44Gy44GTDQor44G/44KE44Gf44GrLOOBleOBqOOCiw0KK+OBr+OBm+OBjOOCjyzjgYLjgaTjgZcNCivjgY3jgZ/jgYzjgo8s44Gf44GL44GC44GNDQor44G144GP44GK44GLLOOBsuOCjeOChuOBjQ0KK+OBiuOCgOOCiSzjgZXjgajjgosNCivjgYTjgZDjgaEs44G+44GT44GoDQor44Gv44KE44GXLOOBvuOCiuOBkw0KK+OBsuOCieOBhCzjgYvjgYjjgZMNCivjgYrjgYrjgoLjgoos44KM44GE44GTDQor44GK44GO44GuLOOBhOOBoeOCjeOBhg0KK+OBn+OCgOOCiSzjgb/jgaTjgYoNCivjgZ/jgZHjgaAs44Gy44Gn44GC44GNDQor44G/44KE44Gq44GMLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBsuOCieOBhCzjga7jgorjgb7jgZUNCivjgavjgZfjgoDjgoks44Gy44KN44KG44GNDQor44Gv44G244GhLOOBsuOBp+OBi+OBmg0KK+OBiuOBiuOBj+OCiSzjgojjgZfjgYLjgY0NCivjga/jgaPjgZ8s44GI44GE44GYDQor44GE44GT44G+LOOBsuOCjeOChuOBjQ0KK+OBguOBleOBsuOBqizjgZ/jgYvjgZcNCivjgYvjga7jgYYs44GX44KT44GUDQor44Gq44GL44Gr44GXLOOBl+OCheOBhuOBmA0KK+OBv+OChOOBluOBjSzjgbLjgo3jgoANCivjgYTjgaHjgYvjgaks44Go44KI44GC44GNDQor44Gq44GM44GV44KPLOOBguOBjeOBruOBtg0KK+OBr+OBvuOBkOOBoSzjga/jgovjgYoNCivjgoTjgZfjgo0s44Gy44KN44Gu44KKDQor44KA44KJ44GKLOOBvuOBjQ0KK+OBiuOBiuOBjuOBvuOBoSzjgYLjgY3jgokNCivjgZfjgo3jgZ8s44G+44GV44KG44GNDQor44Gm44GX44G+LOOBv+OBpOOBig0KK+OBi+OCj+OBleOBjSzjgoTjgZnjgobjgY0NCivjgoTjgb7jgaAs44GK44GV44KADQor44G744KT44GgLOOBvuOBleOBsuOBpw0KK+OBi+OBreOBkyzjgZfjgZLjgosNCivjgb7jgaTjgZfjgb4s44Gy44KN44Ga44G/DQor44GT44G/44KELOOBk+OBhuOBmA0KK+OCj+OBoCzjgaTjgojjgZcNCivjgojjgZfjgaAs44Gf44GL44GXDQor44KC44KK44GV44GNLOOChuOBhuOBmA0KK+OBhOOBvuOBsuOBjOOBlyzjgbLjgafjgYoNCivjgY/jgonjgoLjgaEs44KP44Gf44KLDQor44KG44GL44KPLOOBleOBqOOBlw0KK+OBpuOCieOBiizjgZjjgo3jgYYNCivjgZPjgpPjgaks44G+44GNDQor44GV44GE44Go44GGLOOBvuOBleOChuOBjQ0KK+OCiOOBl+OBquOBjCzjgbLjgo3jgZcNCivjgobjgYLjgZUs44Gv44KL44KG44GNDQor44Gb44KT44GMLOOCiOOBl+OBig0KK+OBq+OBl+OBkOOBoSzjgajjgZfjgYLjgY0NCivjgYbjgYjjgaAs44Gq44GK44GNDQor44KE44G+44GK44GLLOOBqOOBl+OBig0KK+OChOOBvuOCguOBqCzjgYvjgZrjgYoNCivjgbXjgZjjgYvjgo8s44Go44GX44Gf44GRDQor44GK44GQ44KJLOOBn+OBi+OBlw0KK+OBi+OCj+OBrizjgbLjgafjgYoNCivjgYvjga3jgZrjgYss44Gy44KN44GC44GNDQor44GK44GL44KC44GoLOOChuOBhuOBmeOBkQ0KK+OBi+OCj+OBpOOBjSzjgYvjgZrjgYoNCivjgZnjgYjjgojjgZcs44Gf44Gk44KEDQor44GL44KP44G5LOOBl+OBkuOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgZ/jgYvjgobjgY0NCivjgoLjgoos44GX44KT44GZ44GRDQor44GZ44GO44KE44G+LOOBpuOBpOOBmA0KK+OBvuOBiOOChOOBvizjgY3jgojjgZcNCivjgZPjgoHjgZ/jgass44KG44GG44GYDQor44G144GY44KP44KJLOOBjeOCiOOBlw0KK+OBguOBp+OBjOOCjyzjgbLjgo3jgobjgY0NCivjgajjgb/jgZbjgo8s44GK44GV44KADQor44Gq44GL44GfLOOBvuOBleOBguOBjQ0KK+OBn+OBoeOBsOOBquOBjSzjga/jgovjgYLjgY0NCivjgZPjgaDjgb4s44GX44KH44GG44GUDQor44Gv44Gq44GELOOBoeOBuw0KK+OBoeOBruOBrSzjgYvjgZrjgYoNCivjgZfjgb/jgZos44GT44GG44GE44GhDQor44Gf44GN44GW44KPLOOBvuOBleOBqA0KK+OBj+OBqeOBhizjgZHjgpPjgZgNCivjgoLjgorjgYrjgYss44G+44GV44GL44GaDQor44GL44Gt44Gy44KJLOOBguOBjeOBig0KK+OBleOBqOOBhizjgbLjgo3jga7jgbYNCivjgoTjgbDjgaos44Go44GX44GKDQor44GV44GL44Ga44KBLOOBsuOCjeOChuOBjQ0KK+OBr+OBl+OCguOBqCzjgY3jgogNCivjgojjga7jgoLjgags44Gy44Gn44GNDQor44Gw44KT44GX44KH44GGLOOBj+OBq+OBig0KK+OBteOBoeOBiCzjgYvjgZrjgYoNCivjgZnjgZrjgY0s44GE44GP44GKDQor44GZ44Ga44GNLOOChuOBjeOBruOCig0KK+OBk+OBsOOChOOBlyzjgYvjgZrjgbLjgo0NCivjgYvjgajjgYYs44Gf44GL44Gk44GQDQor44GP44GZ44GgLOOBi+OBmuOBhOOBoQ0KK+OBv+OChOOBn+OBkSzjgojjgZfjgbLjgo0NCivjgZXjga4s44Gy44Gn44GYDQor44G+44KL44GfLOOBqOOBl+OBguOBjQ0KK+OBvuOBjeOBnyzjgb7jgorjgZMNCivjgYvjgZfjgo/jgY4s44Gv44GY44KBDQor44Gf44GrLOOCiOOBl+OBvw0KK+OBguOCiuOChOOBmSzjgYjjgaTjgYoNCivjgYvjgajjgYYs44GX44KF44GG44GYDQor44Gf44Gq44GLLOOBvuOBleOBsuOBqA0KK+OBpOOBmOOBnyzjgbLjgo3jgZcNCivjgYrjgYrjgYzjgo/jgoks44Gf44Gg44GKDQor44KA44KJ44GV44KPLOOBqOOBl+OBsuOCjQ0KK+OBm+OBjeOCguOBqCzjgbLjgZXjgZcNCivjgaTjgZjjgoLjgags44Gy44GV44GoDQor44GX44GK44Gf44GrLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBv+OCjyzjgajjgZfjgYoNCivjgarjgYzjgZXjgYss44Gb44GE44GYDQor44GT44GE44GnLOOBguOBjeOCiQ0KK+OBiuOBkOOCiSzjgaTjgajjgoANCivjgaTjgaTjgb8s44Gf44GL44Gu44KKDQor44G144GL44G/LOOBmOOCheOCk+OBhOOBoQ0KK+OCiOOBl+OBoCzjgZ/jgYvjgZcNCivjgoLjgo3jgbvjgZcs44GZ44GZ44KADQor44GX44GK44GuLOOBn+OBoOOBsuOBpw0KK+OChOOBvuOBkOOBoSzjga7jgbbjgb/jgaENCivjgb7jgb/jgoQs44Gk44GL44GVDQor44GV44GE44Go44GGLOOBl+OBkuOChuOBjQ0KK+OBguOBjeOChOOBvizjgY3jgojjgZcNCivjgYLjgaDjgaEs44GL44Ga44Gy44KNDQor44GL44KP44GuLOOBqOOBl+OBv+OBpA0KK+OBquOBi+OCgOOCiSzjgYLjgY3jgbLjgo0NCivjgoTjgb7jgZDjgaEs44Go44GX44GNDQor44GV44GP44G+LOOBsuOBp+OBvw0KK+OCguOBoeOBmuOBjSzjgojjgZfjgZ/jgYsNCivjgo/jgZ/jgarjgbks44KI44GG44GYDQor44GT44Gw44KE44GXLOOBm+OBhOOBmA0KK+OBjeOBlyzjgb/jgozjgYQNCivjga/jgoTjgZXjgYss44G/44Gh44KIDQor44GT44G144GYLOOBvuOBleOBruOBtg0KK+OBleOBhOOBqOOBhizjgYLjgY3jgZMNCivjga7jgoDjgoks44GX44KF44KT44GYDQor44G+44Gk44GELOOChuOBjeOBig0KK+OBr+OChOOBl+OBoCzjgb7jgZXjgYgNCivjgYrjgYzjgo8s44Gf44GL44GXDQor44G744KT44GgLOOBn+OBi+OBlw0KK+OBk+OBluOCjyzjgojjgZfjgoLjgagNCivjgZXjgZXjgY0s44Gy44Gn44GC44GNDQor44KP44GgLOOBjeOCiOOBlw0KK+OChOOBvuOCj+OBjSzjgZ/jgb8NCivjgbXjgZjjgYQs44Gv44KL44KIDQor44Gf44GN44GW44KPLOOChOOBmeOBsuOBkw0KK+OBleOBqOOBhizjgZPjgYbjgZgNCivjgb/jgYvjgb8s44GV44Go44GXDQor44G/44KPLOOBruOBvOOCiw0KK+OBiuOBoSzjgbLjgo3jgZcNCivjgbXjgZjjgZ8s44GR44GE44GYDQor44Gq44GM44GfLOOBhOOBoeOCjeOBhg0KK+OBj+OBvOOBnyzjgojjgYbjgZMNCivjgYLjgYrjgYzjgY0s44GS44KTDQor44GL44KK44KE44GpLOOBquOBiuOBkw0KK+OBv+OBr+OBlyzjgZfjgpPjgYTjgaENCivjgoDjgonjgb7jgaQs44Gh44GI44GTDQor44GL44Gf44KE44G+LOOBiuOBleOCgA0KK+OChOOBvuOBluOBjSzjgajjgZfjgbLjgZMNCivjgYrjgYrjgY7jgZ0s44GN44KI44Gf44GLDQor44Gw44GwLOOBvuOBleOBi+OBmg0KK+OBv+OBl+OBvizjgb7jgZXjgbLjgZMNCivjgoTjga4s44GK44GV44KADQor44Gq44GL44GY44G+LOOBguOBjeOBsuOBkw0KK+OBn+OBkeOBl+OBnyzjgY3jgofjgYbjgZMNCivjgarjgYvjga4s44G/44Gu44KLDQor44Gf44GL44GuLOOChuOBjQ0KK+OBi+OCj+OBoCzjgYvjgZrjgb7jgZUNCivjgZ/jgZjjgb4s44GT44GG44Gf44KN44GGDQor44KC44Gh44Ga44GNLOOBjeOCiOOBlw0KK+OBjeOCgOOCiSzjgYvjgaTjgb8NCivjgYLjgY3jgbss44Go44G/44KC44GoDQor44KE44G+44KC44GoLOOBguOBjQ0KK+OBi+OCj+OBmyzjgobjgZ/jgYsNCivjgZXjgZUs44Gy44GV44GKDQor44Gu44GbLOOBi+OBmuOBquOCig0KK+OBsuOCieOBnyzjgarjgYrjgY0NCivjgZPjgbDjgoTjgZcs44GX44KF44GG44GE44GhDQor44GC44GM44KPLOOChuOBhuOBmeOBkQ0KK+OBpuOCieOCguOBqCzjgbLjgo3jgbXjgb8NCivjgYrjgZbjgY0s44GV44GL44GIDQor44KC44KKLOOBjeOCh+OBhuOBkw0KK+OBhuOBpCzjgbLjgajjgZcNCivjgo/jgYvjgb7jgaQs44Go44GX44GV44GgDQor44GE44G+44GELOOBteOBv+OBkw0KK+OBj+OBvCzjgZ/jgYvjgbLjgo0NCivjgZ/jgYvjga4s44GY44KF44KT44GYDQor44Gy44Gz44GuLOOBsuOBp+OBig0KK+OBmeOBmuOBjSzjga/jgovjgY0NCivjgZ/jgarjgYss44Gf44GL44Gv44KLDQor44GV44GL44KC44KKLOOBi+OCiOOBkw0KK+OBn+OBjeOBluOCjyzjgabjgaQNCivjgojjgZfjgYvjgo8s44Gf44GI44GTDQor44Go44KI44GgLOOCiuOCheOBhuOBhOOBoQ0KK+OBhuOCieOBl+OBvizjgobjgYbjgZgNCivjgZPjgpPjga4s44KC44Go44Gy44KNDQor44Gm44KJ44GL44KPLOOBn+OBkeOBquOBjA0KK+OBk+OBsOOChOOBlyzjgYLjgY3jgbLjgZMNCivjgY3jgoDjgoks44Gf44GL44GTDQor44GL44G/44GKLOOCjOOBhA0KK+OBj+OCjOOBsOOChOOBlyzjgY3jgojjgb8NCivjgYvjga3jgaAs44Gy44KN44GTDQor44GL44KP44KC44GoLOOBk+OBhuOBuOOBhA0KK+OBhOOBvuOCgOOCiSzjgojjgZfjgbLjgo0NCivjgZPjga/jgY7jgZbjgo8s44G/44Gu44KLDQor44GX44Gu44GW44GNLOOBl+OCheOBhuOBhOOBoeOCjeOBhg0KK+OCgeOBkOOCjSzjgZXjgajjgZcNCivjgY/jgavjgZXjgaAs44G+44GV44Gv44KLDQor44KC44KKLOOBjeOCiA0KK+OBi+OCj+OBjuOBlyzjgZ/jgYvjgobjgY0NCivjgYrjgYrjgZnjgYws44GL44GI44GnDQor44GZ44GgLOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgY3jgojjgYvjgZoNCivjgYTjgZfjgZMs44GY44KF44KTDQor44GZ44Ga44GNLOOBquOBiuOChA0KK+OBjeOBj+OBoSzjgYvjgZrjgbLjgZMNCivjgYrjgY7jgZ8s44GC44GN44KJDQor44Gf44GL44KE44G+LOOBn+OBi+OBqOOCiQ0KK+OBquOBi+OBl+OBvizjgY3jgojjgZcNCivjgaTjgZjjgoLjgags44Gy44KN44GXDQor44Gv44KE44G+LOOBj+OBq+OBsuOCjQ0KK+OBhOOBn+OBjOOBjSzjgb7jgZXjgYLjgY0NCivjgoTjgb7jgoLjgags44Gy44KN44GC44GNDQor44GC44Gg44GhLOOBsuOCjeOBlw0KK+OBjeOBn+OBvyzjgbLjgo3jgbLjgacNCivjgZ/jgb7jgY0s44G/44Gh44GKDQor44G+44GI44GgLOOChuOBhuOBmA0KK+OBguOBoOOBoSzjgZfjgofjgYbjgZ7jgYYNCivjgZ/jgb7jgaAs44GQ44KT44GYDQor44KC44KK44GQ44GhLOOChuOBhuOBmA0KK+OCiOOBl+OBquOBjCzjga7jgorjgZMNCivjgb7jgYjjgaAs44Gf44GI44GTDQor44KP44Gf44Gq44G5LOOBn+OBvuOBjQ0KK+OBn+OBi+OBr+OBlyzjgojjgorjgZ/jgYsNCivjgYTjgZfjgZMs44Gm44Gk44KN44GGDQor44GK44GY44G+LOOBi+OBpOOBmA0KK+OBl+OBsOOChOOBvizjgojjgZfjgYLjgY0NCivjgZfjgbAs44Gf44GR44Gy44GTDQor44Go44KC44GuLOOBkeOCk+OBhOOBoQ0KK+OBmeOBvyzjgb7jgZXjgbXjgb8NCivjgb/jgaTjgarjgYws44GC44GN44GTDQor44GG44KJ44GuLOOBvuOBleOBjQ0KK+OCiOOBk+OBmuOBiyzjgZXjgajjgZcNCivjgbXjgZjjgYvjgo8s44Gv44KL44Gy44KNDQor44GL44G244KJ44GOLOOBvuOBleOChuOBjQ0KK+OCiOOBl+OBoCzjgobjgZ/jgYsNCivjgZXjgYTjgajjgYYs44KI44GX44GC44GNDQor44KE44GuLOOBn+OBi+OBsuOBlQ0KK+OCiOOBk+OBnyzjgarjgYrjgb8NCivjgarjgYvjgoDjgoks44GC44Gk44GXDQor44Gq44G/44GV44GoLOOBvuOBleOBi+OBmg0KK+OBreOBjuOBlyzjgZHjgYTjgZ7jgYYNCivjgY3jga4s44Gu44G844KLDQor44Gq44GL44GY44G+LOOBguOBjeOCiQ0KK+OBpOOBpOOBvyzjgZfjgoXjgYbjgYTjgaENCivjgZPjgYbjgaAs44KE44GZ44Gy44GTDQor44G744KKLOOBv+OChuOBjQ0KK+OBk+OCk+OBrizjgYvjgZrjgoQNCivjgo/jgaAs44KG44G/44GTDQor44G+44Gk44Gq44GMLOOBleOBoOOBig0KK+OBq+OBl+OCgOOCiSzjgajjgZfjgobjgY0NCivjgYTjgYQs44KE44GZ44Gy44KNDQor44KE44GZ44GELOOBquOBiuOBjQ0KK+OBk+OBsOOChOOBlyzjgZfjgoXjgYbjgYTjgaENCivjgoTjgb7jgZXjgY0s44G+44GV44Gy44KNDQor44GZ44Ga44GNLOOChOOBmeOChuOBjQ0KK+OBhOOCj+OBnyzjga/jgovjgbLjgZMNCivjgZfjgZLjgoLjgoos44Gf44GL44GXDQor44GE44G+44KA44KJLOOBruOBtuOBn+OBiw0KK+OBpOOBi+OCguOBqCzjgYLjgY3jgogNCivjgYTjgajjgYYs44GX44KT44GZ44GEDQor44GP44G8LOOBmOOCjeOBhg0KK+OBleOBquOBiCzjgYvjgZrjgb7jgZUNCivjgZPjgaDjgb4s44GC44GN44GKDQor44GE44Go44GGLOOBi+OBpOOBlw0KK+OBguOBj+OBpCzjgojjgYbjgZMNCivjgYLjgZ/jgonjgZcs44G/44GI44GTDQor44Gf44GQ44KKLOOBmOOCheOCk+OBkw0KK+OBrizjgZ/jgaTjgoQNCivjgYLjgYvjgb7jgaQs44GR44KT44GY44KN44GGDQor44GC44GV44GuLOOBkeOCk+OBmA0KK+OBquOBi+OBjOOCjyzjgb7jgZXjgYLjgY0NCivjgYvjgo/jgZfjgb4s44GC44GV44GTDQor44GV44Go44GGLOOBsuOBp+OBig0KK+OBiuOBkOOCiSzjgZvjgYTjgZgNCivjgYTjgZfjgbDjgZcs44Gy44KN44KG44GNDQor44G+44Gk44GK44GLLOOBn+OBi+OCiOOBlw0KK+OBn+OBjeOBluOCjyzjgb7jgZXjgojjgZcNCivjgYTjgZ/jgY/jgoks44GV44Go44GXDQor44G744KT44GU44GGLOOCiOOBl+OBi+OBmg0KK+OBquOBjOOChOOBmSzjgZ/jgYvjgobjgY0NCivjgYbjgaHjgaAs44Gy44KN44GXDQor44KE44G+44GX44GfLOOBpOOBreOBig0KK+OBhOOBl+OBkOOCjSzjgbLjgo3jgZcNCivjgoLjgoos44Go44KI44Gy44GTDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoQ0KK+OBsuOBkOOBoSzjgZfjgZLjgagNCivjgY3jgags44GX44KT44GE44GhDQor44Gf44Gq44GLLOOBi+OBmuOChuOBjQ0KK+OBmeOBmuOBjSzjgYvjgZrjgbLjgo0NCivjgZnjgYzjgYQs44GR44KT44GYDQor44KI44Gt44GW44KPLOOCiOOBl+OBi+OBmg0KK+OBguOCieOBi+OCjyzjgorjgoXjgYbjgZgNCivjgYTjga7jgaAs44KE44GZ44Gy44GVDQor44GL44Go44GGLOOBvuOBleOBig0KK+OBi+OBkuOChOOBvizjgb7jgZXjgZcNCivjgb/jgoTjgo/jgY0s44Go44GX44Gy44GTDQor44G/44Gh44KE44G+LOOBn+OBoOOChOOBmQ0KK+OCguOCiizjgajjgZfjgYLjgY0NCivjgoLjgorjgZXjgo8s44GX44KT44GE44Gh44KN44GGDQor44Gr44GX44KA44KJLOOBi+OBpOOChuOBjQ0KK+OBleOBhOOBqOOBhizjgoTjgZnjga7jgooNCivjgoTjgb7jgoLjgags44KI44GG44GZ44GRDQor44G+44Gk44GG44KJLOOCiOOBl+OBguOBjQ0KK+OBr+OBm+OBjOOCjyzjgaTjgajjgoANCivjgYbjgaHjgaAs44GY44KF44KT44GE44GhDQor44KE44GZ44GgLOOBk+OBhuOBhOOBoQ0KK+OBhOOBl+OBoCzjgajjgYrjgosNCivjgoLjgorjga4s44GL44Gk44G+44GVDQor44GN44Gf44KE44G+LOOCiOOBl+OBsuOCjQ0KK+OBleOBi+OCguOBqCzjgojjgZfjga7jgooNCivjgZ3jgYbjgb/jgoQs44Gy44KN44KG44GNDQor44GN44GP44GhLOOBl+OCk+OBhOOBoQ0KK+OBl+OBtuOBhCzjgZPjgYbjgZgNCivjgajjgb/jgZ8s44GC44Gk44GXDQor44KC44KKLOOBk+OBhuOBmA0KK+OChOOBvuOBkOOBoSzjgZjjgoXjgpPjgZgNCivjgY3jgZ/jgoTjgb4s44KI44GX44Gy44KNDQor44G+44KT44KC44GoLOOBguOBjeOCiQ0KK+OBn+OBquOBiyzjgobjgZ/jgYsNCivjgoLjgoos44GL44Ga44Gy44KNDQor44GE44Gf44GP44KJLOOBhOOBleOCgA0KK+OBhOOBoeOBv+OChCzjgb7jgZXjgZcNCivjgavjgZfjgoTjgb4s44GL44Gk44GYDQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OBr+OCk+OBjOOBhCzjga/jgovjgYoNCivjgarjgYzjga4s44GR44GE44GE44Gh44KN44GGDQor44GX44GwLOOBkeOCk+OBmA0KK+OBk+OBmOOBvizjgZnjgZnjgoANCivjgZ/jgZ/jga4s44GV44Go44GXDQor44GL44KP44Gw44GfLOOBvuOBleOBsuOBkw0KK+OBn+OBkeOBoCzjgZ/jgo3jgYYNCivjgYrjgoDjgoks44GE44GP44KN44GGDQor44GV44GTLOOBsuOCjeOBlw0KK+OBhOOBl+OBr+OCiSzjgb/jga7jgosNCivjgYTjgaHjga7jgZss44GZ44GZ44KADQor44GN44GX44GgLOOCiOOBl+OBvw0KK+OBv+OBi+OBvyzjgZjjgoXjgpMNCivjga/jgoTjgZcs44Gf44GP44GYDQor44GV44GV44GNLOOBguOChuOBvw0KK+OCiOOBreOBv+OBpCzjgYvjgZrjgarjgooNCivjgZvjgY3jga0s44KI44GX44Gq44KKDQor44GE44G+44Gr44GXLOOBjeOCiOOBn+OBoA0KK+OBguOBiuOBjSzjgZ/jgaDjgZcNCivjgZnjgY7jgoTjgb4s44GE44GV44GKDQor44Gq44GL44KC44KKLOOCiOOBl+OBteOBvw0KK+OBl+OBvuOBoCzjgb7jgZXjgbLjgZMNCivjgb7jgZnjgaAs44G144GV44GKDQor44Gk44G844GELOOBsuOCjeOBlw0KK+OBm+OBjeOChCzjgZnjgZnjgoANCivjgY3jgZjjgb4s44Gu44KK44GKDQor44KI44GX44Ga44G/LOOBsuOBp+OBn+OBiw0KK+OChOOBquOBjuOBoOOBpizjgZfjgpPjgoQNCivjgZfjgZLjgb7jgaQs44Gv44KL44KE44GZDQor44GE44Gu44GG44GILOOBquOBiuOBjQ0KK+OBn+OBkeOBhuOBoSzjgZHjgYTjgZMNCivjgZ/jgarjgYss44Gf44GR44GXDQor44Gy44GM44GXLOOBl+OCheOBhuOBmA0KK+OBn+OBi+OBnyzjgarjgYrjgbLjgo0NCivjgarjgYvjgYQs44Gk44GO44GKDQor44Gv44Gb44GM44KPLOOBmOOCheOCk+OBhOOBoQ0KK+OBn+OBqyzjgZ/jgYvjgZcNCivjgZPjgbDjgoTjgZcs44G/44GN44Go44KIDQor44Gf44GL44Gv44GXLOOBguOBleOBkw0KK+OBguOBuSzjgb7jgZXjgagNCivjgZPjgbDjgoTjgZcs44KI44GX44Ge44GGDQor44GK44GuLOOBhOOBj+OChA0KK+OBn+OBi+OBr+OBlyzjgobjgY3jgbLjgo0NCivjgY/jgo3jgaAs44GC44Gk44GXDQor44KP44Gf44Gq44G5LOOBsuOCjeOBlw0KK+OBguOBuSzjgZfjgpPjgZgNCivjgYTjga7jgYbjgYgs44KI44GG44GTDQor44GI44KT44GpLOOCiOOBl+OBig0KK+OBruOBruOBl+OBnyzjgZfjgZLjgbXjgb8NCivjgYvjgarjgYQs44GP44G/44GTDQor44GT44Gf44GNLOOBmA0KK+OBn+OBi+OBr+OBlyzjgojjgYbjgZMNCivjgZfjgZLjgoTjgb4s44Go44G/44GKDQor44G144GL44GgLOOBguOBjeOBig0KK+OBl+OBiuOBmCzjgYvjgaTjgobjgY0NCivjgoLjgorjgoQs44G144G/44Gy44KNDQor44GK44GK44Gk44GLLOOBvuOBleOChA0KK+OBguOBuSzjgb7jgZXjgZ/jgYsNCivjgbLjgonjgYQs44Gf44GL44KG44GNDQor44KA44KJ44G+44GkLOOBmOOCheOCkw0KK+OBv+OBmuOBnyzjgb7jgZXjgb8NCivjgbvjgorjgYgs44GL44Ga44KG44GNDQor44Gy44GL44GVLOOBvuOBleOBn+OBiw0KK+OBiuOBl+OBn+OBqyzjgb7jgZPjgagNCivjgZPjgbDjgoTjgZcs44GL44Gk44G/DQor44GP44KJ44Gv44GXLOOBsuOBp+OChuOBjQ0KK+OBsuOCieOBsOOCiyzjgZ/jgZHjgYoNCivjgbXjgZjjgYjjgaAs44G+44GT44GoDQor44Go44GW44KPLOOBi+OBpOOBvw0KK+OChOOBquOBmyzjgZfjgZLjgosNCivjgY/jgbzjgZ8s44KI44GX44GKDQor44G+44G/44KELOOBvuOBleOBjQ0KK+OChuOBr+OCieOBjizjgb7jgZXjgb8NCivjgaHjgofjgYbjgarjgpMs44KI44GX44G+44KNDQor44G/44KI44GXLOOBqOOBiuOCiw0KK+OBruOBmOOBvizjgojjgZfjga7jgooNCivjgoLjgorjgZXjgY0s44G+44GT44GoDQor44GT44KE44G+LOOBqOOBl+OBguOBjQ0KK+OBi+OBqOOBhizjgbLjgo3jgY0NCivjgY3jga7jgZfjgZ8s44KE44Gh44KIDQor44GL44KP44KA44KNLOOBleOBqOOBlw0KK+OCguOCiizjgZHjgYTjgYTjgaENCivjgbLjgonjgZfjgZ8s44GV44Gg44GNDQor44GL44KP44GX44G+LOOCiuOCh+OBhg0KK+OBteOCi+OBi+OCjyzjgYLjgY3jgagNCivjgYTjgpPjgafjgpMs44G+44GV44Gy44GTDQor44KE44G+44GgLOOChOOBmeOChuOBjQ0KK+OBpOOBj+OBoCzjgb/jga7jgosNCivjgYTjgo/jgZXjgY0s44G+44GV44Gy44GoDQor44GK44G+44GILOOBiuOBleOCgA0KK+OBmeOBmuOBjSzjgb7jgZXjgobjgY0NCivjga/jgoks44G+44GV44Gy44GTDQor44GV44GL44GELOOBn+OBpOOCgOOBrQ0KK+OCguOCiuOChCzjgYvjgZrjgb7jgZUNCivjgb/jgoTjgoLjgags44Go44GX44Gy44KNDQor44GX44GS44GfLOOBvuOBleOBsuOCjQ0KK+OBhOOBl+OBi+OCjyzjgbLjgafjga7jgooNCivjgZ/jgZbjgY0s44GV44Gg44KADQor44GZ44GI44Gy44KNLOOCgOOBreOChA0KK+OBi+OBreOBoCzjgZPjgYbjgYTjgaENCivjgZnjgYjjgbLjgo0s44GY44KF44KT44GE44GhDQor44GV44GV44GNLOOCiuOCheOBhuOBleOBjw0KK+OBsuOChOOBvizjgZ/jgaTjga/jgosNCivjgY3jganjgZDjgaEs44KI44GX44Gy44KNDQor44GX44G+44GgLOOBqOOBl+OChuOBjQ0KK+OBv+OChOOBkSzjgbLjgajjgb8NCivjgoLjgoos44GY44KN44GGDQor44GX44KJ44GL44KPLOOBk+OBhuOBmA0KK+OCj+OBi+OBsOOChOOBlyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgoTjgb7jgZfjgZ8s44GL44Ga44GKDQor44GC44G+44GuLOOBmOOCheOCk+OBmA0KK+OBn+OBkeOBhOOBoSzjgbLjgo3jgZ/jgYsNCivjgZfjgpMs44GR44GE44GTDQor44GL44GV44Gv44KJLOOBpuOBpOOChA0KK+OBn+OBquOBiyzjgZHjgYTjgZcNCivjgYrjgY/jgaAs44GC44GN44KJDQor44GL44Go44GGLOOBqOOCguOBkw0KK+OBi+OCj+OBleOBjSzjgb7jgZXjgZMNCivjgYvjgajjgYYs44GL44Ga44GKDQor44GE44Gh44GbLOOBvuOBleOBguOBjQ0KK+OBjeOBn+OBjOOCjyzjgZLjgpPjgbjjgYQNCivjgoTjgZnjgYQs44KI44GX44Gu44G2DQor44GI44GgLOOBqOOBv+OBi+OBmg0KK+OBr+OChOOBlyzjgZ/jgaTjgZgNCivjgarjgYzjgYQs44GV44Go44GXDQor44Go44Gu44KA44KJLOOBvuOBleOBruOCig0KK+OBn+OBquOBiyzjga7jgbbjgobjgY0NCivjgY/jgorjgbDjgoTjgZcs44KI44GX44Gu44KKDQor44GN44KA44KJLOOBi+OBpOOBkw0KK+OBr+OBnOOBjSzjga7jgbbjgobjgY0NCivjgYLjgpPjga4s44GC44Gk44GXDQor44Gf44GL44KI44GXLOOCiOOBl+OBleOBqA0KK+OBguOCk+OBluOBhCzjgZfjgofjgYbjgZjjgo3jgYYNCivjgZ/jgYvjga/jgZcs44GK44GV44KADQor44Gv44KJ44GuLOOBpOOBreOBig0KK+OBquOBi+OBjOOCjyzjgYvjgaTjgojjgZcNCivjgavjgZfjgYvjgo8s44KG44GN44GKDQor44GX44G244KELOOBi+OBmuOBsuOCjQ0KK+OBi+OBqOOBhizjga7jgbbjgbLjgo0NCivjgYLjgaDjgaEs44Go44GX44Gy44KNDQor44GV44GP44KJ44GELOOChOOBmeOBn+OBiw0KK+OBj+OBleOBrizjgajjgZfjgbLjgo0NCivjgb/jgarjgb/jgZ7jga4s44G/44Gu44KLDQor44Gk44GY44KA44KJLOOBguOBjeOBqOOBlw0KK+OChOOBvuOBoCzjgYTjgZXjgoANCivjgYvjgaTjgZfjgb4s44GX44GS44G/DQor44GT44KE44Gq44GLLOOBsuOCjeOChuOBjQ0KK+OBn+OBsOOBnyzjgYLjgY3jgokNCivjgYLjgaDjgaEs44KI44GX44Gy44KNDQor44Gy44KN44GuLOOBm+OBhOOBhOOBoQ0KK+OBpOOBluOBjSzjgbLjgo3jgYLjgY0NCivjgZ/jgaHjgbDjgaos44GX44GS44GC44GNDQor44G544Gj44GX44KHLOOBi+OBmuOBvw0KK+OBvuOBpOOBl+OBnyzjgaHjgoXjgYbjgZ7jgYYNCivjgZ/jgavjgZDjgaEs44GR44KT44GX44KF44GGDQor44Gq44GL44Go44KCLOOCgOOBpOOBvw0KK+OBq+OBl+OCgOOCiSzjgbLjgo3jgZcNCivjgb/jgYbjgoks44G+44GT44GoDQor44GT44KT44GpLOOBiuOBleOCgA0KK+OBvuOBpOOBhCzjgb7jgZXjgY0NCivjgb7jgaTjgoLjgags44Gy44KN44GL44GaDQor44G744KK44GELOOBsuOCjeOBlw0KK+OBvuOBmeOCguOBqCzjgaTjgajjgoANCivjgarjgYvjgZjjgb4s44Gh44GL44GXDQor44GN44KA44KJLOOBkeOCk+OBhOOBoQ0KK+OBv+OCjyzjgbLjgo3jgobjgY0NCivjgYTjgZfjgbDjgZcs44KE44GZ44GXDQor44GI44GQ44GhLOOBruOCiuOBsuOBlQ0KK+OBhOOBquOBteOBjyzjgZjjgoXjgpMNCivjgo/jgZ/jgazjgY0s44KE44GZ44Gy44KNDQor44Gy44GQ44GhLOOCiOOBl+OBsuOBkw0KK+OBhOOBkeOBrizjgY3jgY/jgYoNCivjgYbjgoHjga/jgoks44G+44Gq44G2DQor44Gu44GW44KPLOOBn+OBoOOBlw0KK+OBhOOBvuOBhCzjgb7jgZXjgY0NCivjgZ/jgYvjga/jgZcs44GL44Gk44GYDQor44GE44GE44GgLOOBr+OCi+OBsuOBlQ0KK+OBteOBmOOBi+OCjyzjgYvjgYrjgosNCivjgavjgZfjgYgs44Gf44Gg44Gy44GTDQor44GT44GZ44GSLOOBsuOCjeOBlw0KK+OBiuOBiuOBnyzjgZjjgoXjgpPjgZMNCivjga7jgZgs44GP44Gr44Gy44GTDQor44GT44G844KKLOOBv+OBjeOBig0KK+OBmeOBjuOChOOBvizjgojjgZfjgYLjgY0NCivjgYvjgo/jgZ8s44Gm44Gk44Gy44GTDQor44GV44KB44GX44G+LOOBv+OBreOBig0KK+OBk+OChOOBvizjgY3jgojjgZ/jgYsNCivjgYjjgpPjgYvjgYQs44Gf44GL44GXDQor44GT44KC44GgLOOBpOOBqOOCgA0KK+OBiuOBjOOCjyzjgZPjgYbjgYTjgaENCivjgoTjgb7jgoDjgoks44GL44Ga44G+44GVDQor44GI44Gu44KC44GoLOOCjOOBhOOBmA0KK+OBn+OBi+OBoCzjgbLjgZXjgZ/jgaANCivjgarjgYvjgb/jgZ4s44KG44G/44GTDQor44GK44GL44KA44KJLOOBsuOCjeOBlw0KK+OBi+OBv+OBsOOChOOBlyzjgZvjgYTjgZgNCivjgbXjgZjjgoLjgoos44G/44GN44GKDQor44GP44KN44GgLOOBl+OCk+OBhOOBoQ0KK+OBleOBqOOBhizjgojjgorjgYgNCivjgojjgZfjgoDjgoks44Gf44GN44GKDQor44KC44Gf44GELOOBn+OBj+OBmA0KK+OCgOOCieOBnyzjgajjgYrjgosNCivjgb/jgo8s44Gq44GK44GoDQor44GE44Gv44KJLOOBiOOBvw0KK+OBhOOBvuOBhCzjgZ/jgYvjgZcNCivjgbLjga4s44GL44Ga44GKDQor44G+44Gk44KC44GoLOOBn+OBi+OBlw0KK+OBm+OBqCzjgojjgYbjgZgNCivjgY/jgb7jgYzjgYQs44KE44GZ44Gy44KNDQor44KE44G+44GgLOOCiOOBl+OBig0KK+OCj+OBn+OBquOBuSzjgobjgYbjgZMNCivjgoTjgZXjgYss44Gy44KN44GXDQor44GV44Go44GGLOOBguOBjeOBsuOCjQ0KK+OBv+OChOOBn+OBkSzjgbLjgo3jga7jgbYNCivjgb7jgaTjgYbjgoks44Gy44Go44GXDQor44G+44Gk44GX44GfLOOBvuOBk+OBqA0KK+OBhuOCieOBuSzjgYTjgZXjgoANCivjgZfjgYzjgY0s44G+44GV44KI44GXDQor44Gm44KJ44GgLOOCiOOBl+OBsuOBqA0KK+OBhOOCj+OCguOBqCzjgojjgZfjgYLjgY0NCivjgYTjga7jgYbjgYgs44GY44KN44GGDQor44KC44Gh44Ga44GNLOOChuOBjeOBig0KK+OCiOOBl+OBmuOBvyzjgYjjgYTjgYTjgaENCivjgb/jgYbjgoks44G/44Gk44KLDQor44G/44Ga44GuLOOBn+OBi+OChuOBjQ0KK+OCiOOBl+OBhCzjgZjjgoXjgpPjgYTjgaENCivjgbXjgovjgYQs44KI44GX44Gy44KNDQor44Gv44KE44GXLOOBl+OBkuOBguOBjQ0KK+OBl+OCieOBhOOBlyzjgbLjgafjgYoNCivjgZnjgYzjgo/jgoks44Gf44Gk44GKDQor44Gq44GL44GELOOBkeOBhOOBhOOBoQ0KK+OBruOBteOBmCzjgojjgZfjga/jgosNCivjgZXjgajjgYYs44Gy44KN44GL44GaDQor44GP44KN44GgLOOBjeOBhOOBoQ0KK+OBhOOBkeOBoCzjgZ/jgYvjgZcNCivjgZXjgYws44GR44GE44GXDQor44G/44KE44GL44KPLOOBhOOBj+OBsuOBlQ0KK+OCj+OCieOBl+OBqizjgZfjgZLjgosNCivjgY3jgZ/jgYzjgo8s44Gu44G244KG44GNDQor44GE44G+44GELOOBteOBv+OBguOBjQ0KK+OBv+OBleOBjSzjgbLjgo3jga7jgbYNCivjgYTjgZfjgaAs44Gf44GR44GXDQor44KK44GP44KJLOOBsuOBp+OBguOBjQ0KK+OBl+OCh+OBhuOBmCzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgbXjgY/jgarjgYws44KI44GX44GL44GaDQor44GP44KN44GNLOOBn+OBi+OBig0KK+OBvuOBn+OBjSzjgZfjgofjgYbjgZbjgpMNCivjgZvjgY3jga0s44G+44GV44Gv44KLDQor44KE44G+44GX44GfLOOBv+OBpOOBsuOCjQ0KK+OBn+OBquOBiyzjgojjgZfjgYLjgY0NCivjgYrjgYrjga/jgb4s44G+44GV44Gy44KNDQor44GK44GK44Gk44G8LOOCiOOBl+OBguOBjQ0KK+OBn+OBhCzjgbLjgZXjga/jgosNCivjgaTjgovjgoQs44G+44GV44Gu44KKDQor44KI44GX44GgLOOCiOOBhuOBhOOBoQ0KK+OBvuOBmeOBv+OBpCzjgZ/jgYvjgZcNCivjgYvjgZnjgoQs44GX44GS44GKDQor44KI44GX44GgLOOBv+OBruOCiw0KK+OBi+OCj+OCgOOCiSzjgbLjgafjgY0NCivjga/jgoTjgZcs44GP44Gr44Gy44GTDQor44GP44Gr44KC44GoLOOBvuOBleOChuOBjQ0KK+OBguOCieOBi+OCjyzjgbLjgarjgZMNCivjgarjgYvjgoDjgoks44G+44GV44Gu44KKDQor44GE44GX44GQ44KNLOOBm+OBhOOBmA0KK+OBr+OChOOBvyzjgYvjgaTjgbLjgZMNCivjgb/jgarjgb/jgZ7jga4s44GN44KT44GYDQor44GV44GL44GfLOOBv+OBruOCiw0KK+OBi+OCj+OCguOBqCzjgbXjgb/jgYvjgZoNCivjgoDjgonjgYrjgYss44KE44GZ44Gu44KKDQor44GE44Go44GGLOOCiOOBl+OBig0KK+OCj+OBn+OBquOBuSzjgb/jgaHjgYoNCivjga7jgoDjgoks44G+44GV44GL44GaDQor44GV44Go44GGLOOBr+OCi+OBqg0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgZPjgbDjgoTjgZcs44G+44GV44GL44GkDQor44Gs44KL44GNLOOBsuOBp+OBsuOBkw0KK+OCiOOBl+OBoCzjgojjgYbjgYTjgaENCivjgZXjgYTjgajjgYYs44Gy44KN44GXDQor44Gy44KJ44GELOOCiOOBl+OChuOBjQ0KK+OBjeOCgOOCiSzjgZ/jgYvjgZcNCivjgYrjgY8s44KN44GGDQor44Gv44KE44GV44GLLOOChOOBmeOBkw0KK+OBguOBleOBrizjgZHjgpPjgZgNCivjgbXjgZjjgZXjgY0s44GX44KT44KEDQor44GC44GN44KC44GoLOOCiuOBiw0KK+OBl+OBvuOBoCzjgb7jgZXjgYgNCivjgb/jgZrjgYvjgb8s44G+44GV44Gv44KLDQor44Gq44GL44GM44KPLOOBqOOBiuOCiw0KK+OBleOBqOOBhizjgabjgaTjgoQNCivjgZPjgbDjgZfjgoos44GR44KT44GYDQor44GC44KJ44GNLOOCiOOBl+OBig0KK+OBmeOBmuOBjSzjgarjgYrjgajjgZcNCivjgavjgZfjgacs44Gb44GkDQor44GK44Gh44GC44GELOOCiOOBl+OBsuOBlQ0KK+OBruOBquOBiyzjgZ/jgYvjgZcNCivjgoTjgZnjgYQs44KK44KF44GG44GYDQor44GT44Gv44GfLOOBkeOCk+OBhOOBoQ0KK+OBv+OBruOBl+OBvizjgYLjgaTjgYoNCivjgabjgonjgZfjgb4s44GN44G/44Gy44GTDQor44KE44GP44KPLOOCiOOBl+OBig0KK+OBmeOBjOOCj+OCiSzjgb/jgaHjgYoNCivjgb/jgaTjga/jgZcs44Gm44Gk44KN44GGDQor44Gu44KA44KJLOOBruOCiuOBkw0KK+OBoeOCh+OBhizjgYLjgZrjgb8NCivjgZXjgajjgYYs44KK44KH44GG44GTDQor44GX44Ga44Gv44KJLOOCjOOBhOOBkw0KK+OBr+OChOOBl+OBi+OCjyzjgZHjgpPjgZgNCivjgavjgo8s44KI44GX44GKDQor44G/44GI44GuLOOBkeOCk+OBhOOBoQ0KK+OBl+OBvuOBoCzjgbLjgafjgagNCivjgarjgYvjgoDjgoks44Go44GX44GKDQor44Gy44KJ44GuLOOCiuOCh+OBhuOBhOOBoQ0KK+OChOOBvuOBqOOChCzjgYvjgZrjgbLjgZMNCivjgaTjga7jgaAs44KE44GZ44Gu44KKDQor44GT44Gw44KE44GXLOOBruOBtuOBguOBjQ0KK+OBleOBi+OBj+OCiSzjgY3jgofjgYbjgZMNCivjgb7jgaTjgaAs44G+44GV44GC44GNDQor44GE44G+44KA44KJLOOBm+OBhOOBlw0KK+OChOOBjuOBr+OBlyzjgarjgYrjgZMNCivjgYrjgY7jga4s44Gy44KN44GKDQor44Gf44Gq44GLLOOCiOOBl+OBvuOBlQ0KK+OBsuOBjCzjgojjgZfjgYvjgZoNCivjgZXjgZMs44Gk44Go44KADQor44Gf44GW44GNLOOBn+OCguOBpA0KK+OBhOOBhOOBoCzjgb7jgZXjga/jgosNCivjgYTjgYTjgaAs44KK44KH44GG44GZ44GRDQor44G+44Gk44GQ44G+LOOBl+OBkuOBuw0KK+OCgOOCieOBnyzjgZHjgpMNCivjgoTjgZnjgoLjgags44G+44GT44GoDQor44GX44G/44GaLOOBsuOCjeOBlw0KK+OCj+OBj+OBhCzjgojjgZfjgZ/jgYsNCivjgZ/jgYvjga/jgZcs44KI44GX44GKDQor44GN44Gf44GELOOBqOOBl+OBsuOBkw0KK+OBguOBoOOBoSzjgZfjgofjgYbjgYTjgaHjgo3jgYYNCivjga/jgarjgbbjgaEs44Gv44GY44KBDQor44GV44Go44GGLOOBj+OBq+OBsuOCjQ0KK+OBguOCieOBhCzjgajjgZfjgbLjgZMNCivjgZ/jgZHjgarjgYss44GV44Go44GXDQor44GL44GELOOBv+OBu+OBkw0KK+OBguOBi+OBoCzjgZfjgZrjgYoNCivjgY/jgavjgZnjgYgs44Gy44KN44GC44GNDQor44G+44GI44GL44KPLOOBguOBjeOCiQ0KK+OBv+OBquOBvyzjgb/jgaTjgZcNCivjgZ/jgY3jgYzjgb8s44Gy44Gn44KG44GNDQor44G+44Gk44GELOOBvuOBk+OBqA0KK+OBl+OCieOBhCzjgb7jgZXjgb/jgaENCivjgZ/jgZHjgojjgZcs44Gb44GE44Gu44GZ44GRDQor44Gf44GL44GgLOOBjeOCiOOBn+OBiw0KK+OBn+OBi+OBjizjgZ/jgYvjgbLjgZMNCivjgY/jganjgYYs44GN44KI44Gf44GLDQor44GX44G+44GgLOOBruOBtuOBkw0KK+OBi+OBqOOBhizjgYvjgZrjgYoNCivjgZfjgY7jgofjgYYs44Gy44Gn44GC44GNDQor44Gy44KN44GuLOOBneOBiuOBmOOCgw0KK+OBjeOBruOBl+OBnyzjgojjgZfjgYgNCivjgZfjgb/jgZos44GX44KH44GG44Ge44GGDQor44GX44KA44KJLOOBsuOCjeOBguOBjQ0KK+OBj+OBleOBi+OCiizjgb/jgbsNCivjgYvjgovjgbks44Go44GX44Gv44KLDQor44G+44Gk44KC44GoLOOBquOBiuOChuOBjQ0KK+OBl+OBvuOCgOOCiSzjgajjgb7jgZUNCivjgYvjgaTjgYvjgo8s44Gf44GL44GKDQor44GE44GaLOOBhOOBleOBig0KK+OBleOBj+OCieOCguOBqCzjgYTjgaTjgZgNCivjgoLjgorjgZ8s44GY44KN44GGDQor44Gf44Gq44G5LOOBj+OBq+OBhOOBoQ0KK+OBr+OBo+OBqOOCiizjgbXjgb/jgagNCivjgorjgoXjgYbjgZQs44GX44KF44KT44GE44GhDQor44GK44G+44Gk44GW44KPLOOBvuOBleOBr+OCiw0KK+OBiuOBqOOCjyzjgobjgY3jgojjgZcNCivjgZPjgaDjgb4s44Gb44GE44GE44GhDQor44GL44KE44GX44G+LOOChuOBhuOBmA0KK+OBk+OBsOOChOOBlyzjgZfjgZLjgosNCivjgY/jgavjgYjjgaAs44G+44GN44GKDQor44GT44GGLOOBi+OBmuOBquOCig0KK+OBq+OBl+OChOOBvizjgbLjgajjgb8NCivjgo/jgaAs44Gy44KN44KEDQor44Gr44GX44KC44GoLOOBn+OBi+OBlw0KK+OBleOBhOOBqOOBhizjgYvjgaTjga7jgooNCivjgajjgZfjgb4s44KI44GG44GE44GhDQor44GK44GK44Gk44GLLOOBu+OBk+OBjw0KK+OBiuOBrizjgb7jgZXjgosNCivjgZnjgZrjgY0s44Gf44GL44GXDQor44GV44GP44KJ44GELOOBn+OBi+OBlw0KK+OBiuOBnOOBjSzjgZ/jgYvjgZcNCivjgYrjgYvjgaAs44G+44GV44G/44GkDQor44GK44GM44KPLOOBsuOCjeOBlw0KK+OBhOOBkeOBjOOBvyzjgbLjgafjgajjgZcNCivjgZPjgb7jgaQs44Gf44GL44Gu44KKDQor44KI44GX44GELOOCiOOBl+OBguOBjQ0KK+OBsuOCieOBrizjgZfjgofjgYbjgYTjgaENCivjgZ/jgYvjgZnjgYss44Gy44KN44GXDQor44Gv44GX44KC44GoLOOChOOBmeOChuOBjQ0KK+OBj+OCj+OBiCzjgY3jgY/jgYoNCivjgYvjga3jgb7jgaQs44GL44Gt44Gy44GnDQor44G+44Gk44GKLOOBkeOBhOOBhOOBoQ0KK+OBhOOBqSzjgZ/jgYvjgbLjgZMNCivjgYTjga4s44GY44KF44KT44GE44GhDQor44GV44GE44Go44GGLOOBn+OBkeOBlw0KK+OBi+OBv+OChOOBvizjgZPjgYbjgZgNCivjgZPjgZfjgoLjgags44GT44GG44GE44GhDQor44GK44GK44GM44KP44KJLOOCiOOBl+OBruOBtg0KK+OBn+OBi+OBr+OBlyzjgb7jgZPjgagNCivjgarjgYzjgb7jgaQs44GX44KT44GE44GhDQor44GZ44Ga44GNLOOBlOOCjeOBhg0KK+OBpuOCieOBiizjgojjgYbjgZgNCivjgbvjgorjgZEs44GL44GK44KLDQor44GZ44Ga44GNLOOBn+OBi+OBlw0KK+OBiuOBjOOCjyzjgZPjgYbjgYTjgaENCivjgb/jgoTjgoLjgags44Gu44G244GKDQor44GK44GK44GZ44G/LOOBsuOCjeOChuOBjQ0KK+OBhOOCj+OBtuOBoSzjga7jgbbjgoTjgZkNCivjgb7jgaTjgYbjgoks44Gf44Gk44GKDQor44GV44KP44GhLOOBoeOBi+OBig0KK+OBpuOCieOBoCzjgZvjgaTjgZMNCivjgYTjgbDjgoTjgZcs44KG44Gf44GLDQor44GE44KP44GbLOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OBiuOBjOOCjyzjgZvjgYTjgZgNCivjgYLjgZ0s44KE44GZ44Go44KCDQor44G144GP44KC44GoLOOBleOChuOCig0KK+OBhOOBpyzjgbXjgb/jgZ/jgYsNCivjgYvjgo/jgZXjgY0s44Gm44Gk44GYDQor44Gv44KL44GqLOOBvuOBleOBruOCig0KK+OBn+OBmOOBvizjgobjgY3jgbXjgb8NCivjgYvjgarjgoTjgb4s44KI44GG44GYDQor44Gf44Gq44GLLOOCj+OBn+OCiw0KK+OBvuOBpOOBluOBjSzjgb7jgZXjgYoNCivjgYTjga7jgZXjgYss44GT44GG44GYDQor44GK44GX44KE44G+LOOCiOOBl+OBsuOBlQ0KK+OBn+OBkeOBhuOBoSzjgZ/jgYvjgZcNCivjgZXjgZXjgYrjgYss44Go44GX44KG44GNDQor44GT44KC44KKLOOBvuOBleOBguOBjQ0KK+OBn+OBmOOBvizjgbLjgo3jgYLjgY0NCivjgYTjgZHjgYzjgb8s44GR44KT44GYDQor44KE44G+44GQ44GhLOOBvuOBleOBguOBjQ0KK+OBi+OCj+OBi+OBvyzjgZfjgZLjgY0NCivjgYTjgZvjgY0s44GI44GE44GZ44GRDQor44Gf44GR44GgLOOBsuOBp+OChuOBjQ0KK+OBn+OBi+OChOOBmSzjgb7jgarjgbYNCivjgYvjgoHjgaAs44Gf44GR44Go44GXDQor44G144GY44GuLOOBvuOBk+OBqA0KK+OBv+OBleOBjSzjgoTjgZnjga7jgooNCivjgarjgYvjgoDjgoks44Go44GX44GC44GNDQor44GK44GM44KPLOOBk+OBhuOBmA0KK+OBquOBi+OBluOCjyzjgbLjgafjgajjgZcNCivjgZvjgY0s44KE44GZ44GP44GrDQor44KI44GX44GL44KPLOOBn+OBj+OChA0KK+OBn+OBjOOCjyzjgZ/jgYvjgZcNCivjgb/jgZ/jgass44Go44GX44Gy44GTDQor44GZ44GI44GfLOOBguOBjeOBsuOBqA0KK+OBhOOBrOOBhCzjgZHjgpMNCivjgYrjgZXjgaAs44GV44Go44GXDQor44G144KL44GL44KPLOOBi+OBpOOBig0KK+OBmeOBmuOBjSzjgb7jgZPjgagNCivjgY3jgZ/jgoDjgoks44KK44KH44GG44GZ44GRDQor44GT44G+44GkLOOBsuOCjeOBn+OBiw0KK+OBguOBleOBoCzjgojjgYbjgYTjgaHjgo3jgYYNCivjgYvjgpPjgZbjgY0s44KE44GZ44G+44GVDQor44GG44GZ44GELOOCiOOBl+OBteOBvw0KK+OBteOCi+OChCzjgajjgZfjgbLjgZMNCivjgojjgZHjgoDjgoks44G144G/44KI44GXDQor44KI44GT44GILOOCiOOBl+OBjQ0KK+OBguOBi+OBhOOCjyzjgajjgZfjgbLjgZMNCivjgbXjgY/jgZfjgb4s44Gy44KN44KE44GZDQor44KE44GY44G+LOOChOOBmeOBlw0KK+OBr+OCiSzjgb/jgobjgY0NCivjgY3jgZfjgaAs44KG44GG44Ge44GGDQor44GP44G8LOOBv+OBpOOCiw0KK+OBi+OBn+OBjuOCiizjgoTjgZnjga7jgooNCivjgYTjgaHjgYQs44G144G/44KEDQor44G+44Gk44GNLOOBqOOBl+OBguOBjQ0KK+OCj+OBkeOBuSzjgZHjgpPjgZgNCivjgb7jgovjgoTjgb4s44Gy44Gn44GKDQor44Gk44Gw44GNLOOBl+OBkuOCiw0KK+OBleOBrizjgbLjgo3jgZcNCivjgb/jgoTjgoLjgags44G+44GV44Go44GXDQor44G144GP44KE44G+LOOBvuOBleOBguOBjQ0KK+OBhuOBiOOCgOOCiSzjgb7jgZXjgosNCivjgY/jgo/jgYvjgaks44KK44GNDQor44GP44Gr44G+44GkLOOBvuOBleOCiw0KK+OBi+OBn+OBiuOBiyzjga7jgorjgobjgY0NCivjgajjgb/jgZ8s44GL44Ga44Gu44KKDQor44Gq44GL44KA44KJLOOBguOBpOOBsuOBkw0KK+OBj+OBqeOBhizjgojjgZfjgabjgosNCivjgYrjgbbjgaEs44Gm44KL44Gy44GTDQor44KI44GX44GL44KPLOOBqOOBiuOCiw0KK+OBi+OBkuOChOOBvizjgb7jgZPjgagNCivjgajjgaAs44GR44GE44GE44GhDQor44Gf44GL44Gv44KJLOOBleOBqOOBlw0KK+OBvuOBpOOBl+OBnyzjgZfjgpPjgZgNCivjgZPjgaDjgYTjgoks44Gy44Gn44GXDQor44GX44KT44GL44GELOOCguOBqOOBig0KK+OBpuOCieOBoCzjgb7jgZXjgbLjgagNCivjgYvjgo/jgY3jgZ8s44Gv44GY44KBDQor44G/44GG44KJLOOBleOBquOBiA0KK+OBguOBuSzjgbLjgajjgZcNCivjgavjgZfjgYvjgo8s44KG44GN44Gy44KNDQor44G744Gd44GgLOOBhOOCj+OBig0KK+OBvuOBmeOBoCzjgojjgZfjgYoNCivjgYvjgZbjgb4s44Gf44GR44GXDQor44GC44KJ44G+44GNLOOBi+OBmuOBig0KK+OCj+OBn+OBrOOBjSzjgb/jgaTjgY4NCivjgZXjgYvjgoLjgags44Gk44KI44GXDQor44GC44G+44GM44G/LOOBl+OCkw0KK+OBk+OCk+OBrizjgYTjgZXjgYoNCivjgYrjgY/jgaAs44KI44GX44Gu44KKDQor44GK44Gv44GPLOOBv+OBpOOBig0KK+OBquOBi+OCgOOCiSzjgojjgZfjgbXjgb8NCivjgarjgYvjgoDjgoks44KG44GG44GE44GhDQor44GG44GX44KE44G+LOOChuOBjeOBig0KK+OChOOBl+OBjSzjgYLjgYTjgYTjgaHjgo3jgYYNCivjgY3jga7jgZss44GX44KF44KT44GE44GhDQor44KP44GL44KE44G+LOOBk+OBhuOBhOOBoQ0KK+OBhOOBvuOBhCzjgb7jgZXjgobjgY0NCivjgb7jgYjjgaAs44GN44KI44GXDQor44G+44Gk44GX44GfLOOBiOOBhOOBmA0KK+OBsuOCieOBkOOBoSzjgbLjgo3jgZcNCivjgo/jgaAs44GC44Gk44GTDQor44KP44Gf44Gq44G5LOOBneOBhuOBhOOBoQ0KK+OBvuOBpOOBhCzjgZfjgpPjgYTjgaENCivjgb7jgaTjgoLjgags44G/44GN44GKDQor44Gq44GL44KA44KJLOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OBn+OBjeOBnyzjgojjgZfjgagNCivjgb7jgZnjgaAs44Go44KC44GTDQor44G/44KE44GG44GhLOOBvuOChuOBvw0KK+OBl+OCgOOCiSzjgZXjgYvjgYgNCivjgb7jgaTjgYQs44Gf44GN44GTDQor44Gv44KJ44Gv44GfLOOBqOOBv+OBn+OCjeOBhg0KK+OBsuOBleOBn+OBqyzjgYLjgaTjgZcNCivjgYvjgYzjgb8s44G+44GV44Gk44GQDQor44KI44GX44KA44KJLOOChuOBhuOBmA0KK+OBiuOBiuOBpOOBiyzjgZHjgYTjgZQNCivjgZ/jgarjgYss44GX44KT44GE44GhDQor44Gy44KJ44GuLOOBl+OCheOBhg0KK+OBn+OBkeOBmeOBiCzjgabjgaTjgoQNCivjgavjgZfjga4s44KI44GX44KG44GNDQor44GK44GK44Gk44GLLOOCgeOBkOOBvw0KK+OBiuOBoCzjgZfjgpPjgZgNCivjgZfjgb/jgZos44KG44Gf44GLDQor44Gv44G+44KC44GoLOOBn+OBi+OCiOOBlw0KK+OBv+OChOOBvuOBiCzjgb7jgZXjgarjgooNCivjgarjgYzjgZfjgb4s44GI44GE44GYDQor44G/44Gk44KBLOOBk+OBhuOBmA0KK+OBi+OBlOOBn+OBqyzjgojjgZfjgYvjgZoNCivjgojjgZPjgoTjgb4s44Gf44GL44G144G/DQor44GV44GL44GfLOOBkeOCk+OBmA0KK+OBiuOBhOOBj+OBvCzjgYLjgY3jgbLjgacNCivjgY/jgonjgoLjgaEs44Gy44KN44KEDQor44GC44KT44GW44GELOOBvuOBleOChuOBjQ0KK+OBteOBj+OBl+OBvizjgorjgYgNCivjgarjgYvjgoDjgoks44Gy44Go44G/DQor44GE44Go44GELOOChuOCiuOBkw0KK+OBu+OBl+OBrizjgb/jgaHjgZMNCivjgZPjgYTjgacs44Gy44KN44Gy44GTDQor44GK44GW44GNLOOBmOOCheOCkw0KK+OBm+OBmOOCgizjgb7jgZXjgb/jgaENCivjgZnjganjgYYs44G+44GV44G/44GkDQor44GL44GY44KP44KJLOOBv+OBqeOCig0KK+OBmeOBmuOBjSzjgYvjgaTjgbLjgo0NCivjgbvjgZfjga4s44Gv44KL44GTDQor44Gq44GL44KA44KJLOOCiOOBl+OBguOBjQ0KK+OCguOCiuOBnyzjgYLjgY3jgYvjgZoNCivjgoTjgb7jgZbjgY0s44Go44GX44Gy44GTDQor44GK44GP44GM44KPLOOBvuOBleOBsuOBkw0KK+OBquOBjOOBr+OBvizjgbLjgo3jgobjgY0NCivjgojjgZfjgoDjgoks44GC44GN44G/44GkDQor44G+44Gk44GgLOOBn+OBi+OBqOOBlw0KK+OBu+OBi+OBnuOBrizjgYLjgaTjgbLjgZUNCivjgYLjgbks44Go44GX44Gk44GQDQor44Gq44GM44GELOOBk+OBhuOBmA0KK+OBqOOBjOOBlyzjgajjgZfjgbLjgagNCivjgoTjgZbjgY0s44Gm44GE44Ge44GGDQor44KE44G+44GG44GhLOOBsuOBp+OBjQ0KK+OBv+OBleOBjSzjgarjgYrjgY0NCivjgojjgZfjgaAs44GX44KT44GYDQor44Gq44GL44KC44GoLOOBl+OBkuOCiw0KK+OBl+OBruOBr+OCiSzjgaTjga3jgYvjgZoNCivjgarjgYvjgavjgZcs44GC44GN44KJDQor44KE44GY44G+LOOBjeOCiOOBlw0KK+OBqOOCiOOBteOBjyzjgobjgYbjgZgNCivjgZ/jgYvjgZfjgb4s44GL44Gk44GYDQor44G144GX44Gr44GXLOOBjeOBv+OBiA0KK+OCgOOBi+OBhCzjgabjgaTjgoQNCivjgavjgZfjgoDjgoks44Gy44KN44KG44GXDQor44GL44KP44Gw44GfLOOBleOBqOOBlw0KK+OCgOOBi+OBiOOBoCzjgZXjgajjgosNCivjgZfjgZvjgY0s44GE44Gj44GX44KTDQor44GL44Gf44GK44GLLOOCiOOBl+OBsuOBpw0KK+OBquOBhOOBqOOBhizjgbLjgo3jgY0NCivjgb/jgags44KE44GZ44GoDQor44GK44GK44Gr44GXLOOBqOOBl+OCjeOBhg0KK+OCiOOBk+OChOOBvizjgZ/jgYvjgZcNCivjgarjgYvjgoDjgoks44Gf44Gk44GC44GNDQor44GE44GW44KPLOOBsuOBleOBruOCig0KK+OBn+OBq+OBjOOCjyzjgajjgb/jgYgNCivjgZnjgY7jgZ8s44KG44GLDQor44GK44GX44GfLOOBvuOBleOChuOBjQ0KK+OBl+OBvuOBoCzjgajjgoLjgZMNCivjgoTjgb7jgoDjgoks44GT44GG44GE44GhDQor44G144GP44GK44GLLOOBvuOBleOBlw0KK+OChOOBquOCiizjgbLjgo3jgYLjgY0NCivjgZnjgZrjgY0s44GX44KT44GYDQor44GV44GL44GELOOBleOBqOOCiw0KK+OChOOBvuOBoCzjgobjgY3jgbLjgo0NCivjgoTjgb7jgZPjgZcs44GX44GS44KLDQor44Gu44KC44GoLOOBqOOBl+OChuOBjQ0KK+OBn+OBkeOBl+OBnyzjgoLjgajjgY0NCivjgb/jga7jgaAs44GX44GS44KG44GNDQor44GC44GV44GELOOBl+OBuw0KK+OCgOOBreOChOOBmSzjgbLjgafjgobjgY0NCivjgYvjgo/jgavjgZcs44G+44GT44GoDQor44GV44GL44GQ44GhLOOChOOBmeOBsuOBlQ0KK+OChOOBvuOBluOBjSzjgajjgZfjgbLjgZMNCivjgYLjgZXjgYrjgYss44Gy44Gn44Gu44G2DQor44GN44Gu44GX44GfLOOBv+OBjeOBnuOBhg0KK+OBv+OBvizjgY3jgojjgb8NCivjgbXjgY/jgoLjgorjgZ8s44GX44GS44GKDQor44GL44GY44KE44G+LOOCiOOBl+OBkw0KK+OChOOBvuOBluOBjSzjgZjjgoXjgpPjgYTjgaENCivjgZXjgajjgYYs44Go44GX44KEDQor44GL44KP44G5LOOBv+OBpOOBsuOBkw0KK+OBvuOCi+OChOOBvizjga7jgbbjgojjgZcNCivjgYrjgYzjgonjga0s44Gu44G244GTDQor44Gp44GELOOChuOBhuOBnuOBhg0KK+OBn+OBquOBiyzjgb/jgaTjgYoNCivjgYrjgY7jgZfjgb4s44GK44GV44KADQor44GE44Gu44GG44GILOOBsuOCjeOChuOBjQ0KK+OBteOCi+OChCzjgbLjgo3jga7jgooNCivjgbXjgY/jgYQs44Gk44KI44GXDQor44G+44GZ44GgLOOBn+OBi+OBsuOCjQ0KK+OBu+OCk+OBoCzjgobjgb/jgZMNCivjgarjgYvjgavjgZcs44Gq44GK44Gf44GLDQor44G/44KE44G+44GILOOBquOBiuOBsuOBkw0KK+OBiuOBi+OBrizjgbLjgafjgYoNCivjgbDjgbAs44KI44GG44GE44Gh44KN44GGDQor44Gg44GR44KE44G+LOOBleOBj+OBkw0KK+OChOOBvuOBkOOBoSzjgoTjgZnjgYoNCivjga/jgoTjgZcs44Go44GX44KN44GGDQor44Go44G/44Ga44GLLOOChOOBmeOBsuOCjQ0KK+OBquOBi+OBq+OBlyzjga/jgovjgbLjgZUNCivjgYLjgbks44Gv44GY44KBDQor44GC44GK44KE44GOLOOBsuOCjeOBkw0KK+OBpuOCieOCj+OBjSzjgY3jgojjgZMNCivjgYvjgZ/jgY7jgoos44Gu44G844KLDQor44Gq44GL44GM44KPLOOBvuOBleOBig0KK+OBk+OBsOOChOOBlyzjgYvjgZrjgbLjgo0NCivjgYbjgYjjgaAs44Gy44KN44G/DQor44G144GY44KP44KJLOOBguOBjeOBsuOCjQ0KK+OBr+OChOOBleOBiyzjgZ/jgaTjgb8NCivjgY3jgoDjgoks44Gy44KN44GXDQor44GU44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBl+OCgOOCiSzjgZHjgYTjgZ7jgYYNCivjgZvjgY0s44Go44GX44GL44GaDQor44GC44GE44GW44KPLOOBguOBjeOBig0KK+OBruOCgOOCiSzjgZPjgZnjgZENCivjgYvjgpPjgaAs44GX44KF44GG44GYDQor44GG44KJ44GELOOBvuOBmeOBvw0KK+OCguOBqOOChOOBvizjgojjgZfjga/jgosNCivjgYvjgb/jgoDjgoks44Gm44Gk44GKDQor44Gy44KJ44GELOOBvuOBleOChuOBjQ0KK+OBguOCieOBhCzjgajjgoLjgarjgooNCivjgZXjgYTjgajjgYYs44KI44GG44GE44GhDQor44G+44GN44Gv44KJLOOBvuOBleOBlw0KK+OBiuOBiuOCj+OBjyzjgYrjgZXjgoANCivjgoLjgaHjgZrjgY0s44G+44GV44Gy44KNDQor44Gv44KT44GM44GELOOCiOOBl+OBsuOCjQ0KK+OBhOOBruOBhuOBiCzjgYvjgZrjgbLjgagNCivjgarjgYzjgYTjgZcs44GL44Gk44G/DQor44Gr44GX44KC44GoLOOBguOBjeOCiQ0KK+OBpOOBoeOChCzjgZfjgofjgYbjgYTjgaENCivjgb7jgaTjgoLjgags44Gf44GL44GXDQor44G744KTLOOBl+OCh+OBhuOBlA0KK+OBhOOCj+OBhCzjgZ/jgaTjgoQNCivjgY/jgbws44G+44GV44GKDQor44Gv44GT44GELOOBvuOBleOBig0KK+OCj+OBn+OBquOBuSzjga7jgorjgYoNCivjgZnjgY7jgZ8s44Go44GX44G/44GkDQor44Gq44GL44KA44KJLOOBi+OBmuOBsuOCjQ0KK+OBi+OCieOBleOBjSzjgZPjgYbjgYTjgaENCivjga7jgorjgb7jgaQs44G/44Gk44Gy44GTDQor44GP44GZ44KC44GoLOOBn+OBi+OCiOOBlw0KK+OBq+OBl+OCgOOCiSzjgZXjgajjgZcNCivjgZPjgZnjgZIs44G+44GV44GqDQor44G144GP44G/44GkLOOChOOBmeOBvw0KK+OChOOBvuOBkOOBoSzjgZXjgbbjgo3jgYYNCivjgYTjgZfjgZDjgo0s44GL44Ga44G/DQor44Go44GP44GgLOOBquOBiuOChA0KK+OBguOCiuOBqOOBvyzjgZjjgaTjgo3jgYYNCivjgbLjgoTjgb4s44GX44KT44GE44GhDQor44Gy44KN44GbLOOBvuOBleOBqOOBlw0KK+OBq+OBl+OBoCzjgajjgYrjgosNCivjga/jgaPjgajjgoos44KI44GX44G/DQor44Gy44KJ44Gw44KE44GXLOOBkeOCk+OBhOOBoQ0KK+OBr+OCieOBl+OBvizjgYjjgYTjgZgNCivjga/jgoks44Gf44G/44GKDQor44Gv44G+44GuLOOBi+OBmuOChuOBjQ0KK+OBr+OBvuOBoCzjgb7jgZXjgajjgZcNCivjga/jgZfjgoLjgags44GL44Gk44Gy44GTDQor44Gv44KE44GXLOOBsuOBleOBmA0KK+OBsuOBkOOBoSzjgb7jgZXjgb8NCivjgbLjgonjga4s44KG44Gf44GLDQor44G744KT44G+LOOBvuOBleOBr+OCiw0KK+OBr+OCi+OBvuOBlyzjgojjgZfjgb7jgZUNCivjga/jgZfjgoLjgags44KE44GZ44GKDQor44Gy44GgLOOBn+OBi+OBlw0KK+OBsuOCieOBmeOBiyzjgaHjgofjgYbjgZgNCivjga/jgY7jgo/jgoks44GT44GG44GE44GhDQor44Gv44G+44GgLOOBjeOBv+OBiA0KK+OBr+OBl+OCguOBqCzjgb/jgaHjga/jgosNCivjgbvjgpPjgb4s44G/44KI44GXDQor44G744GL44KKLOOChOOBmeOBsuOCjQ0KK+OBr+OCieOBoCzjgb/jgaHjgZMNCivjga/jgoTjgZcs44GR44KT44GYDQor44G744KK44G5LOOBi+OBmuOBig0KK+OBr+OBl+OCguOBqCzjgb7jgZXjgYoNCivjga/jgZvjgYzjgo8s44Gf44Gg44GL44GaDQor44Gy44KN44G5LOOBv+OBjeOBig0KK+OBr+OBl+OCguOBqCzjgYvjgZrjgb8NCivjgbLjgonjga4s44G+44GV44KG44GNDQor44Gv44GX44KC44GoLOOBkeOCkw0KK+OBsuOBmOOBi+OBnyzjgaTjgY7jgYgNCivjgYrjgYrjgazjgb4s44GE44GV44GKDQor44Gv44G244GkLOOBsuOCjeOChuOBjQ0KK+OBsuOBoOOBiyzjgYvjgZrjgbLjgo0NCivjga/jgZfjgoLjgags44GN44KT44KEDQor44Gv44G+44GuLOOBquOBiuOBjQ0KK+OBsuOBl+OBrOOBvizjga7jgbbjgobjgY0NCivjga/jgoks44KI44GX44G/DQor44Gv44Gq44GNLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBr+OCiSzjgZHjgpPjgZgNCivjga/jgYws44Gf44GR44GKDQor44Gv44Gq44GgLOOBvuOBleOBruOCig0KK+OBsuOCieOChOOBquOBjizjga7jgbbjgZ/jgYsNCivjgbvjgorjgYvjgo8s44G/44Gk44Gu44KKDQor44G744KK44GL44KPLOOBkeOCkw0KK+OBr+OBl+OCguOBqCzjgYLjgY3jgZMNCivjga/jgZ8s44Go44GX44Gy44GTDQor44Gy44KJ44GELOOBmOOCheOCkw0KK+OBr+OCieOBkOOBoSzjgoTjgZnjgb7jgZUNCivjgbLjgonjgYos44KG44GG44GE44GhDQor44Gv44GX44Ga44KBLOOBi+OCk+OBnw0KK+OBpOOBmCzjgb7jgarjgbYNCivjgZXjgY/jgonjgZbjgo8s44Gy44Gn44Go44GXDQor44GC44G5LOOBk+OBhuOBhOOBoQ0KK+OBguOBuSzjgb7jgZXjgbLjgo0NCivjgYLjgbks44Gy44KN44GfDQor44GC44G5LOOBk+OBhuOBmA0KK+OBguOBuSzjgYrjgZXjgoANCivjgYLjgbks44Gf44GL44GKDQor44GC44GL44GOLOOChOOBmeOBsuOBqA0KK+OBiuOBi+OCguOBqCzjgZfjgZrjgYoNCivjgYjjgpPjgaks44G/44Gh44GTDQor44GC44GL44GE44GXLOOBpOOBreOBr+OCiw0KK+OBq+OBl+OBqizjgb7jgZPjgagNCivjgYLjgY3jgoLjgags44Go44GX44GKDQor44GC44GN44Ga44GNLOOBvuOBleOBqOOBlw0KK+OBsuOCieOBsOOChOOBlyzjgZfjgZLjgb7jgZUNCivjgYLjgoHjgb/jgoQs44GC44GN44KJDQor44GC44G/44GuLOOBguOBjeOBsuOCjQ0KK+OBguOBquOBvyzjgb7jgZXjgYvjgZoNCivjgYLjgarjgZbjgo8s44GL44GK44KLDQor44GC44KT44Gp44GGLOOChuOBhuOBnuOBhg0KK+OBguOCk+OBqeOBhizjgbLjgo3jgY0NCivjgYLjgYrjgoTjgb4s44G+44GV44GNDQor44GC44GK44KE44G+LOOBk+OBhuOBmA0KK+OBguOBiuOChOOBvizjgZfjgpPjgYTjgaENCivjgYLjgonjgYQs44GT44GG44GE44GhDQor44GC44KJ44GELOOBvuOBleOBlw0KK+OBguOCieOBhCzjgb7jgZPjgagNCivjgYLjgonjgYQs44Gf44G+44GKDQor44GC44KJ44GELOOBvuOBleOChOOBmQ0KK+OBguOCieOBjSzjgb/jgobjgY0NCivjgZnjgYzjgo/jgoks44Go44KC44G/DQor44GC44GV44GyLOOBl+OBkuOCiw0KK+OBguOBleOBj+OCiSzjgZ/jgYvjgZcNCivjgYLjgZXjgb8s44G144G/44Go44GXDQor44GC44GV44KA44KJLOOBi+OBpOOBvw0KK+OChOOBvuOBl+OBqizjgYvjgZrjgYoNCivjgYLjgZXjgoos44G+44GV44GTDQor44GC44GV44GaLOOBqOOCguOBkw0KK+OBguOBpOOBvyzjgojjgZfjgobjgY0NCivjgbDjgpMs44Gy44KN44KE44GZDQor44G544Gj44GX44KHLOOBkeOBhOOBhOOBoQ0KK+OBoeOBsCzjgYLjgZMNCivjgaHjgYvjgY3jgogs44Gq44GK44Gy44GVDQor44Gh44KA44KJLOOBn+OBv+OBiA0KK+OBqeOBsOOBlyzjgZ/jgZHjgYoNCivjgYjjgbDjgZcs44GX44KH44GG44G444GEDQor44GI44Gz44Gv44KJLOOCiOOBl+OBteOBvw0KK+OBiOOBjOOBvyzjgobjgY3jgYoNCivjgYjjgZDjgaEs44KG44GN44Gf44GLDQor44GI44GQ44GhLOOBleOBqOOBlw0KK+OBiOOBmOOCiizjgZnjgZDjgosNCivjgYjjgpPjgaks44G+44KG44G/DQor44GI44KT44GpLOOBn+OBpOOBig0KK+OBiOOBruOCguOBqCzjgojjgZfjgaTjgZANCivjgbXjgaHjga4s44Go44GK44KLDQor44G144GY44GELOOBiuOBleOCgA0KK+OBteOBmOOBhCzjgabjgaQNCivjgYTjgZfjgYQs44GY44KF44KTDQor44KA44KJ44KE44G+LOOBqOOBl+OBsuOBlQ0KK+OBteOBmOOBi+OBnyzjgZ/jgaTjgoQNCivjgbXjgZjjgYvjgo8s44GL44Ga44Go44KCDQor44G144GY44G+44KLLOOBsuOBleOBqA0KK+OBteOBmOOCguOBqCzjgY/jgavjgbLjgo0NCivjgbXjgZjjgoLjgags44Gf44Gg44KI44GXDQor44G144GY44KC44GoLOOBqOOBl+OBi+OBmg0KK+OBteOBmOOBrizjgoTjgZnjgajjgoINCivjgbXjgZjjgYos44Go44GX44GC44GNDQor44G144GY44GV44GLLOOBleOBqOOBlw0KK+OBteOBmOOBleOCjyzjga7jgorjgYoNCivjgbXjgZjjgZXjgo8s44Gf44GL44Gy44KNDQor44G144GY44GfLOOBvuOBleOChuOBjQ0KK+OBteOBmOOBnyzjgb7jgZXjgobjgY0NCivjgbXjgZjjgo/jgoks44Go44GK44KLDQor44G144GY44KP44KJLOOBvuOBleOChuOBjQ0KK+OBteOBmOOCj+OCiSzjgZfjgpPjgZfjgofjgYYNCivjgbXjgYvjgaAs44G144G/44Gy44KNDQor44G144GL44GM44KPLOOBguOBpOOBsuOCjQ0KK+OBteOBi+OBrizjgZHjgYQNCivjgbXjgYvjgo8s44Gb44GE44GYDQor44G144GL44KELOOBqOOBl+OBi+OBmg0KK+OBteOBi+OBluOCjyzjgbLjgajjgZcNCivjgbXjgY/jgaAs44GT44GG44GYDQor44G144GP44GELOOBsuOCjeOBlw0KK+OBteOBj+OCguOBqCzjgbLjgo3jgZ/jgYsNCivjgbXjgY/jgoLjgags44Gy44KN44GC44GNDQor44G144GP44KC44GoLOOBvuOBleOBsuOBkw0KK+OBteOBj+OCguOBqCzjgZnjgZnjgoANCivjgbXjgY/jgZfjgb4s44Gy44KN44KG44GNDQor44G144GP44Go44G/LOOCiuOCheOBhuOBleOBjw0KK+OBteOBquOBjSzjgZfjgpPjgZgNCivjgbXjgovjgZXjgo8s44Gf44KN44GGDQor44GC44Gz44GTLOOBvuOBleOChuOBjQ0KK+OBteOBmyzjga7jgorjgYoNCivjgbXjgZvjgYzjgo8s44KI44GX44Gq44GKDQor44G144GX44G/LOOBquOBiuOBsuOBlQ0KK+OBjuOBvizjgYvjgZrjgojjgZcNCivjgZTjgb8s44G+44GT44GoDQor44GU44Go44GGLOOBruOCiuOBkw0KK+OBlOOBqOOBhizjgajjgoLjgYLjgY0NCivjgZTjgajjgYYs44Gy44GV44Gu44KKDQor44GQ44KT44GYLOOBv+OCiA0KK+OBr+OBjuOCj+OCiSzjgojjgZfjgZMNCivjga/jgY7jgo/jgoks44GE44Gh44KN44GGDQor44Gv44GE44GuLOOBsuOBleOCiOOBlw0KK+OBr+OBi+OBvuOBoCzjga7jgorjgobjgY0NCivjga/jgb7jgaAs44KG44GNDQor44Gv44G+44GgLOOChuOBjeOBig0KK+OBr+OBvuOBkOOBoSzjgZHjgpPjgZgNCivjga/jgoks44GX44KT44GE44GhDQor44Gv44KJLOOBjeOCiOOBn+OBiw0KK+OBr+OCiSzjgY/jgavjgbLjgZMNCivjga/jgoks44G+44GV44Gq44KKDQor44Gv44KJ44GgLOOBvuOBmeOBvw0KK+OBr+OCieOBoCzjgb/jgarjgZMNCivjga/jgonjgaAs44Gu44KK44GTDQor44Gv44KJ44GTLOOBn+OBi+OBsuOCjQ0KK+OBr+OCi+OBqizjgZ/jgYvjgYLjgY0NCivjga/jgZvjgYzjgo8s44Gf44GP44KEDQor44GK44GX44G+LOOBguOBjeOCiQ0KK+OBr+OBl+OCguOBqCzjgZ/jgYvjgZcNCivjga/jgZ/jga4s44GL44Ga44Gy44KNDQor44Gv44Gf44GW44KPLOOBi+OBmuOBv+OBoQ0KK+OBr+OBqCzjgb7jgZXjgZcNCivjga/jgaTjgb8s44GC44Ga44GVDQor44Gv44Gj44Go44KKLOOBqOOCguOChuOBjQ0KK+OBr+OChOOBi+OCjyzjgajjgZfjgbLjgo0NCivjga/jgoTjgYvjgo8s44GC44Gk44KN44GGDQor44Gv44KE44GL44KPLOOBqOOBl+OBsuOBkw0KK+OBr+OChOOBrizjgYLjgaTjgZcNCivjga/jgoTjgZss44GX44KT44GUDQor44Gv44KE44GXLOOBn+OBi+OBr+OCiw0KK+OBr+OChOOBlyzjgYvjgYrjgooNCivjga/jgoTjgZcs44KI44GX44Gy44KNDQor44Gv44KE44GXLOOBkeOBhOOBmA0KK+OBr+OChOOBlyzjgZvjgYTjgZ8NCivjgYTjgoLjgags44G+44GV44KI44GXDQor44Gv44KE44GkLOOBsuOCjeOBlw0KK+OBsuOBjOOBjSzjgbLjgafjgYLjgY0NCivjgbLjgYzjgZcs44GZ44G/44GTDQor44Gy44GuLOOBkeOCk+OBmA0KK+OBsuOCieOBsOOChOOBlyzjgarjgYrjgagNCivjgbLjgonjga4s44GL44Ga44Gy44KNDQor44Gy44KJ44GuLOOBkeOBhOOBhOOBoQ0KK+OBsuOCieOBiuOBiyzjgb7jgobjgb8NCivjga/jgonjgZXjgY0s44Gf44Gk44KEDQor44Gy44KJ44GmLOOBsuOBp+OBig0KK+OBsuOCieOChOOBvizjgajjgYrjgosNCivjgbLjgo3jgYgs44KI44GX44GL44GaDQor44Gy44KN44GL44KPLOOBl+OCheOBhuOBhOOBoQ0KK+OBsuOCjeOBmyzjgbLjgafjgZ/jgYsNCivjgbLjgo3jgZcs44Gu44G244GTDQor44Gy44GV44KA44GtLOOBkeOBhOOBkw0KK+OBu+OCk+OBoCzjgZPjgYbjgYTjgaENCivjgbvjgorjgYvjgo8s44Gu44KK44GC44GNDQor44G744KK44GT44GXLOOBl+OCk+OBhOOBoQ0KK+OBu+OCiuOBk+OBlyzjgbLjgo3jgobjgY0NCivjgbvjgZcs44KG44GN44GKDQor44G744GX44GTLOOBvuOBleOBsuOCjQ0KK+OBsuOCieOBleOCjyzjgZXjgaDjgobjgY0NCivjgbvjgZ3jgYQs44GX44KT44GE44GhDQor44Gy44KH44GG44Gp44GGLOOBn+OBi+OBlw0KK+OBsuOCh+OBhuOBqeOBhizjgobjgYbjgZnjgZENCivjgYTjgbks44GX44KT44GE44GhDQor44GE44Gh44GL44KPLOOBvuOBleOBsuOCjQ0KK+OBhOOBoeOBi+OCjyzjgb7jgZXjgosNCivjgYTjgaHjgYvjgo8s44KG44G/DQor44GE44Gh44Gu44G/44KELOOBv+OBpOOCiw0KK+OBhOOBpyzjgb/jgaTjgobjgY0NCivjgYTjgacs44KG44KKDQor44GE44GM44KJ44GXLOOChOOBmeOChuOBjQ0KK+OBhOOBjOOCjyzjgY3jgojjgZcNCivjgYTjgZDjgaEs44GX44KT44KEDQor44GE44GE44GgLOOBl+OCheOBhuOBhOOBoQ0KK+OBhOOBhOOBoCzjgbLjgo3jgZcNCivjgYTjgYTjgZjjgb4s44GT44GG44GE44GhDQor44GE44GE44Gk44GLLOOBruOBtuOBig0KK+OBhOOBhOOBmuOBiyzjgYvjgZrjga7jgooNCivjgYTjgYTjgZrjgYss44GC44KK44GVDQor44GE44GL44KJ44GXLOOBqOOCguOBjQ0KK+OBhOOBkeOBoCzjgarjgYrjgY0NCivjgYTjgZHjgaAs44G+44GV44G144G/DQor44GE44GR44GgLOOBmOOCheOCkw0KK+OBhOOBkeOBoCzjgbLjgafjgagNCivjgYTjgZHjgarjgYws44Gy44KN44GKDQor44G/44Gk44KC44GoLOOBsuOCjeOBn+OBiw0KK+OBhOOBkeOChOOBvizjgbLjgo3jgobjgY0NCivjgYTjgZHjgZYs44Gy44Go44GXDQor44GE44GR44GW44GNLOOBiuOBleOCgA0KK+OBhOOBj+OBnyzjgabjgovjgobjgY0NCivjgYTjgb7jgYQs44KI44GX44Gu44KKDQor44GE44G+44GE44Ga44G/LOOBruOCiuOBsuOCjQ0KK+OBhOOBvuOCgOOCiSzjgbLjgo3jgobjgY0NCivjgYTjgb7jgoDjgoks44GI44GE44KKDQor44GE44G+44Gr44GXLOOBqOOCguOBsuOCjQ0KK+OBhOOBquOBjOOBjSzjgYvjgYrjgooNCivjgYTjgarjgYzjgY0s44GL44Gk44KG44GNDQor44GE44Gq44GM44KPLOOBn+OBpOOChA0KK+OBhOOBquOBuyzjgb7jgZXjgosNCivjgYTjgarjgb8s44Gy44KN44G/44GhDQor44GE44Gq44Gk44GQLOOBv+OBleOBig0KK+OBhOOBquOCiOOBlyzjgZ/jgaTjgYoNCivjgYTjga4s44GL44Ga44GoDQor44GE44Gu44GK44GLLOOBl+OCk+OChA0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgobjgY0NCivjgYTjga7jgYbjgYgs44Gf44GR44GXDQor44GE44Gu44GG44GILOOBsuOBp+OBi+OBmg0KK+OBhOOBruOBhuOBiCzjgZ/jgYvjgZcNCivjgYTjga7jgYbjgYgs44Gf44GL44GC44GNDQor44GE44Gu44GG44GILOOChuOBhuOBhOOBoQ0KK+OBhOOBruOBhuOBiCzjgY3jgY/jgYoNCivjgYTjgorjgZXjgo8s44GC44GN44Gy44GTDQor44GE44GbLOOChuOBjeOBig0KK+OBhOOBm+OBjSzjgYvjgaTjgoQNCivjgYTjgZfjgaAs44KE44GZ44Gu44KKDQor44GE44GX44GgLOOBpOOCiOOBlw0KK+OBiuOBi+OBoCzjga/jgovjgb8NCivjgYTjgZfjgYQs44GI44GE44GYDQor44KE44G+44GgLOOBsuOCjeOBtuOBvw0KK+OBmeOBjuOBr+OCiSzjgbLjgo3jgZ/jgYsNCivjgYTjgZfjgYvjgo8s44GL44Gk44KJDQor44GE44GX44GL44KPLOOBvuOBleOBkw0KK+OBhOOBl+OBi+OCjyzjgb7jgZXjgb8NCivjgYTjgZfjgb7jgoss44Gu44KK44GTDQor44GE44GX44KC44GoLOOBn+OBpOOBig0KK+OBhOOBl+OCguOBqCzjgb7jgZXjgbLjgo0NCivjgYTjgZfjgoLjgags44GR44KT44GYDQor44GE44GX44GuLOOBi+OBj+OBhOOBoeOCjeOBhg0KK+OBhOOBl+OBpOOBiyzjgZXjgajjgZcNCivjgYTjgZfjgo/jgZ8s44Gf44GP44KEDQor44GE44GX44KP44GfLOOChuOBhuOBmA0KK+OBsuOCieOBsOOChOOBlyzjgYjjgYTjgZgNCivjgYTjgZfjgZbjgY0s44KC44Go44Gu44KKDQor44GE44GX44Ga44GLLOOBqOOBiuOCiw0KK+OBhOOBneOBoCzjgZ/jgZHjgZcNCivjgajjgYrjgYss44Go44GX44KG44GNDQor44GP44KK44Gv44KJLOOBkeOBhOOBmA0KK+OBhOOBqOOBhizjgZHjgpPjgYTjgaENCivjgYTjgajjgYYs44KI44GX44GC44GNDQor44GE44Go44GGLOOBiOOBpOOBjQ0KK+OBhOOBqOOBhizjgojjgYbjgZgNCivjgYTjgajjgYYs44GV44Go44GXDQor44GE44Gh44KE44Gq44GOLOOBl+OBkuOBsuOBqA0KK+OBhOOBqOOBhizjgaTjga3jgbLjgo0NCivjgarjgYzjgZ8s44GL44Gk44G/DQor44GE44Go44GGLOOBn+OBi+OBr+OCiw0KK+OBi+OBv+OBi+OCjyzjgZ/jgaDjgb/jgaQNCivjgYTjgo/jgYQs44Gu44G844KLDQor44GE44KP44GL44KPLOOBpuOCi+OBsuOBlQ0KK+OBhOOCj+OBvyzjgajjgZfjgbLjgZMNCivjgYTjgo/jgb8s44Gf44GL44GXDQor44GE44KP44KC44GoLOOBqOOCguOBkw0KK+OBhOOCj+OBquOBjCzjgb7jgZXjgbLjgo0NCivjgYTjgo/jgZXjgY0s44GR44GE44GTDQor44GE44KP44GV44GNLOOBteOBv+OBi+OBmg0KK+OBhOOCj+OBmyzjgbLjgo3jgobjgY0NCivjgYTjgo/jgZfjgZ8s44GK44GV44KADQor44GE44KP44GfLOOBk+OBhuOBm+OBhA0KK+OBhOOCj+OBnyzjgZXjgajjgZcNCivjgYTjgo/jgZ/jgaYs44Gy44Gn44GNDQor44GE44Ga44G/LOOBv+OCjw0KK+OBmOOCk+OBrizjgZ/jgYvjgoTjgZkNCivjgYvjgYzjgo8s44Gy44Gn44GKDQor44GL44GE44Gs44G+LOOBruOBtuOBig0KK+OBi+OBmOOBnyzjgZ/jgYvjgb/jgaENCivjgYvjgZHjgYzjgo8s44GL44Ga44Gf44GLDQor44GL44GN44Gs44G+LOOBquOBiuOBjQ0KK+OBi+OBvuOBoCzjgZ/jgYvjgbLjgo0NCivjgYvjgb7jgZ8s44Gy44KN44GNDQor44GL44KB44Gf44GrLOOBj+OBq+OBguOBjQ0KK+OBi+OBvyzjgb7jgZXjga7jgooNCivjgYvjgb/jgoDjgoks44G+44GV44GXDQor44GL44G/44KE44G+LOOBvuOBleOChuOBjQ0KK+OBi+OBquOBhuOBoSzjgZ/jgYvjgobjgY0NCivjgZ/jgZHjgYbjgaEs44G/44GNDQor44GL44Gt44GTLOOChOOBmeOBruOBtg0KK+OBi+OBreOBkyzjgoTjgZnjgY0NCivjgYvjgpPjgazjgY0s44Gb44GE44GE44GhDQor44GL44Gu44GGLOOBjeOCiOOBj+OBqw0KK+OBi+OCieOBr+OBlyzjgbLjgo3jgYLjgY0NCivjgYvjgZXjgYQs44G/44Gu44KLDQor44Gu44KA44KJLOOBiOOBv+OBkw0KK+OBi+OBleOBhCzjgoLjgoLjgZMNCivjgYvjgZss44GY44KF44KT44GE44GhDQor44GL44GX44GP44KJLOOCiOOBl+OCjeOBhg0KK+OBi+OBl+OCgOOCiSzjgZXjgajjgZcNCivjgYvjgZfjgo/jgY4s44GL44KI44GTDQor44GL44Gf44GuLOOBpuOCi+OBsuOBlQ0KK+OBi+OBn+OBiuOBiyzjgoTjgZnjgZcNCivjgYvjgajjgYYs44GK44GV44KADQor44GL44Go44GGLOOBquOBiuOBjQ0KK+OBi+OBqOOBhizjgZHjgYQNCivjgYvjgajjgYYs44G+44GV44Gv44KLDQor44GL44Go44GGLOOBn+OBi+OBguOBjQ0KK+OBi+OBqOOBhizjgZ/jgYvjgZcNCivjgYvjgajjgYbjgYrjgYss44KG44GL44KKDQor44GL44Gk44GELOOBmA0KK+OBi+OBpOOBvuOBnyzjgb/jga7jgosNCivjgYvjgo/jgbDjgZ8s44Gf44GL44GKDQor44GL44KP44Gh44KELOOBqOOBl+OBguOBjQ0KK+OBi+OCj+OBoCzjgorjgZvjgYQNCivjgYvjgo/jgaAs44Gy44KN44KG44GNDQor44GE44KK44GV44KPLOOBteOBv+OBig0KK+OBi+OCj+OBhCzjgb/jgo8NCivjgYvjgo/jgYvjgb8s44GR44KT44GYDQor44GL44KP44GL44G/LOOBv+OBruOCiw0KK+OBi+OCj+OBvyzjgYLjgY3jgokNCivjgYvjgo/jgoDjgoks44GR44KT44GYDQor44GE44GX44GELOOChOOBmeOBjQ0KK+OBi+OCj+OBrizjgb7jgZXjgbLjgo0NCivjgYvjgo/jgoDjgoks44GN44KI44Gy44KNDQor44GL44KP44GV44GNLOOBruOBtuOChuOBjQ0KK+OBi+OCj+OBmyzjgarjgYrjgY0NCivjgYvjgo/jgZss44Gy44KN44GXDQor44GL44KP44GbLOOBiOOBhOOBmA0KK+OBi+OCj+OBl+OBvizjgYjjgYTjgZMNCivjgYvjgo/jgZ/jgass44GP44Gr44Gy44GTDQor44GR44GE44GgLOOBvuOBleOBguOBjQ0KK+OBjeOBoCzjgZfjgZLjgZMNCivjgY3jgaDjgaEs44GX44GS44GKDQor44GN44Gv44KJLOOBqOOCguOBiA0KK+OBjeOBj+OBi+OCjyzjgobjgYvjgooNCivjgY3jgoLjgags44G+44GV44Gy44GnDQor44GN44KA44KJLOOBkeOCk+OBhOOBoQ0KK+OBi+OBvuOBnyzjgbLjgo3jgobjgY0NCivjgYTjgY/jgb8s44G+44KG44G/DQor44GN44Gu44GX44GfLOOBl+OBkuOBi+OBmg0KK+OBjeOBruOBhuOBoSzjgb7jgY0NCivjgY3jgZcs44Gf44GP44GXDQor44GN44GX44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OBjeOBhuOBoSzjgajjgojjgYLjgY0NCivjgZPjgbAs44Gy44KN44KG44GNDQor44KC44KKLOOBsuOBp+OBjQ0KK+OBk+OBsOOChOOBi+OCjyzjgZ/jgZHjgZcNCivjgY/jgbzjgZ8s44Gy44Go44GXDQor44GT44Gw44KE44GXLOOBpuOBpOOChA0KK+OBiuOBiuOBi+OCjyzjgZfjgpMNCivjgZPjgbDjgoTjgZcs44Gm44Gk44GYDQor44GT44Gw44KE44GXLOOBjeOCiOOBruOCig0KK+OBk+OBvuOBnyzjgYjjgYTjgZ/jgaQNCivjgZPjgbDjgoTjgZcs44GL44Gk44G/DQor44GT44Gw44KE44GXLOOBi+OBpOOChuOBjQ0KK+OBk+OBsOOChOOBlyzjgYvjgZrjgbLjgZMNCivjgZPjgaDjgb4s44KE44GZ44GXDQor44GT44GI44GYLOOBpOOBqOOCgA0KK+OBk+OBkOOBoSzjgZHjgpPjgZgNCivjgZPjga/jgZ8s44Go44GX44Gy44GTDQor44GT44Gy44KJLOOBjeOBv+OBig0KK+OBquOBi+OBjOOCjyzjgorjgYjjgZMNCivjgZPjgoTjgb4s44GC44GN44KJDQor44GT44GE44GnLOOCiOOBl+OCjeOBhg0KK+OBk+OBhOOBpyzjgZjjgoXjgpMNCivjgZPjgYTjgZEs44GX44GS44KLDQor44GT44GE44Ga44G/LOOCguOBqOOBkw0KK+OBk+OBmOOBvizjgZ/jgY/jgoQNCivjgZPjgZHjgZDjgaEs44KE44GZ44G+44GVDQor44GT44GP44G8LOOCiOOBhuOBkw0KK+OBk+OBvuOBpCzjgZ/jgYvjgZMNCivjgZPjgb7jgaQs44KG44G/44GTDQor44GT44G/44KELOOCiOOBhuOBmA0KK+OBk+OCk+OBqSzjgYvjgZrjgajjgZcNCivjgZPjgpPjgaks44GC44GN44KJDQor44GT44KT44GpLOOBv+OBiA0KK+OBk+OCk+OBqSzjgZ/jgYvjgobjgY0NCivjgZPjgpPjgaks44Gf44Gk44GKDQor44GT44Gr44GXLOOBn+OBi+OBkw0KK+OBk+OBleOBiyzjgb7jgZXjgbLjgo0NCivjgZPjgZvjgY0s44Go44GX44Gy44GTDQor44GT44GX44GE44GXLOOBn+OBpOOChA0KK+OBk+OBl+OBiizjgb7jgZXjgajjgZcNCivjgZPjgZnjgZIs44Go44GX44GC44GNDQor44GT44GG44KELOOBvuOBleOBruOCig0KK+OBk+OChOOBvizjgYvjgZrjgZcNCivjgZPjgoTjgb4s44GK44GV44KADQor44Gf44GR44GhLOOBl+OCheOBhuOBnuOBhg0KK+OBj+OBvCzjgajjgZfjgoQNCivjgY/jgbws44Gk44Go44KADQor44GP44G8LOOBteOBv+OBjQ0KK+OBj+OBjOOBhCzjgZ/jgYvjgobjgY0NCivjgYTjgYvjgonjgZcs44GL44Ga44Gy44KNDQor44GP44G+44GW44KPLOOBruOBtuOBkw0KK+OBj+OBq+OBv+OBpCzjgbLjgZXjgojjgZcNCivjgY/jga4s44Gb44GE44GXDQor44G744GX44GuLOOBqOOBl+OChA0KK+OBj+OCieOBl+OBkizjgZPjgYbjgZgNCivjgY/jgorjga/jgoks44G/44GLDQor44Gq44GL44GM44KPLOOBl+OCh+OBhuOBhOOBoQ0KK+OChOOBquOBjuOBoCzjgobjgY3jgYoNCivjgY/jgorjgoTjgb4s44Gy44Gn44GC44GNDQor44GP44KN44GL44KPLOOBsuOBp+OChuOBjQ0KK+OBj+OBleOBi+OCjyzjgZHjgYTjgYTjgaENCivjgY/jgZXjgarjgY4s44GK44GV44KADQor44GP44GV44GuLOOBsuOBp+OBsuOBkw0KK+OBj+OBmyzjgZXjgajjgosNCivjgY/jgZfjgaAs44Gh44GIDQor44GP44GZ44GgLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBj+OBmeOBjSzjgaHjgYjjgZMNCivjgY/jgZnjgb8s44KG44Gf44GLDQor44G+44GI44GgLOOBn+OBpOOChA0KK+OBvuOBiOOBoCzjgYLjgY3jgYoNCivjgb7jgYjjgYvjgo8s44Gy44KN44GTDQor44G+44GI44GL44KPLOOBn+OBi+OBig0KK+OBvuOBjOOCiuOBteOBoSzjgojjgZfjgYoNCivjgb7jgY3jga4s44Gh44Gy44KNDQor44G+44GN44GuLOOBkeOCk+OBmA0KK+OBvuOBquOBuSzjgb7jgZXjgogNCivjgYLjgYzjgaTjgb4s44Gf44Gk44KG44GNDQor44G+44KL44GKLOOBl+OBkuOCiw0KK+OBvuOCi+OBnyzjgarjgYrjgY0NCivjgb7jgovjgoTjgb4s44KG44GLDQor44G+44KL44KE44G+LOOBvuOBk+OBqA0KK+OBvuOCi+OChOOBvizjgZ/jgYvjgbLjgo0NCivjgb7jgovjgoTjgb4s44KG44GG44GYDQor44G+44GZ44GgLOOBpuOCi+OBv+OBpA0KK+OBvuOBmeOBoCzjgajjgZfjgoQNCivjgYvjgpPjgbDjgoks44GE44Ga44G/DQor44G+44Gk44Gw44KJLOOBsuOCjeOBlw0KK+OBquOBi+OCgOOCiSzjgaHjgajjgZsNCivjgb7jgaTjgaAs44GP44Gr44Gu44KKDQor44G+44Gk44GgLOOBvuOBleOChuOBjQ0KK+OBvuOBpOOBhCzjgbLjgo3jgobjgY0NCivjgb7jgaTjgYQs44KI44GX44Gu44KKDQor44G+44Gk44GELOOBl+OCheOBhuOBhOOBoeOCjeOBhg0KK+OBvuOBpOOBhCzjgaHjgojjgZMNCivjgb7jgaTjgoLjgags44GC44Gk44GXDQor44G+44Gk44KC44GoLOOBkeOCk+OBmA0KK+OBvuOBpOOCguOBqCzjgb7jgZXjgYvjgaQNCivjgb7jgaTjgoLjgags44GX44KT44KEDQor44G+44Gk44GK44GLLOOBv+OBuw0KK+OBquOCi+OBmyzjgorjgoXjgYbjgZgNCivjgb7jgaTjgoQs44Gu44G244Gy44GTDQor44KB44GW44KPLOOBsuOBqOOBlw0KK+OBv+OBjuOBnyzjgb7jgobjgb8NCivjgb/jgYvjgb8s44GX44KH44GG44GYDQor44G/44KA44KJLOOBi+OBmuOChA0KK+OChOOBquOBjizjgZPjgYbjgYTjgaENCivjgb/jgarjgYvjgZ8s44G+44GV44KG44GNDQor44G/44GtLOOBvuOBleOChOOBmQ0KK+OBv+OBrSzjgoTjgZnjgYjjgYQNCivjgb/jga7jgo8s44GN44KI44GIDQor44G/44GV44KPLOOBvuOBjeOBkw0KK+OBv+OBleOCjyzjgZ/jgYvjgbLjgo0NCivjgb/jgZfjgb4s44Gk44KI44GXDQor44G/44Gf44KA44KJLOOBqOOCguOBsuOCjQ0KK+OBv+OBqCzjga7jgbbjgYoNCivjgb/jgaTjgbLjgoks44G+44KK44GTDQor44G/44Gk44GE44GXLOOBvuOBleOBteOBvw0KK+OBv+OBpOOBquOCiizjgZ/jgYvjgYgNCivjgb/jgYbjgoks44Gy44KN44GL44GaDQor44G/44KE44G5LOOBkeOCk+OBmA0KK+OBv+OChOOBmOOBvizjgZfjgZLjgY0NCivjgb/jgoTjgoLjgags44GX44GS44KLDQor44G/44KE44KC44GoLOOBqOOCguOBvw0KK+OBv+OChOOBleOBiyzjgobjgYbjgYTjgaHjgo0NCivjgb/jgoTjgZXjgYss44GR44KT44GE44Gh44KNDQor44G/44KE44GX44GfLOOBsuOCjeOBiw0KK+OBv+OChOOBl+OBnyzjgZjjgoXjgpPjgZMNCivjgb/jgoTjgZbjgY0s44Gu44KK44GX44GSDQor44G/44KE44GW44KPLOOBi+OBpOOBvw0KK+OBv+OChOOBluOCjyzjgZ/jgYvjgobjgY0NCivjgb/jgZ7jga/jgZcs44Gf44GR44Gy44GTDQor44GV44GL44GELOOBsuOCjeOBlw0KK+OBv+OBmuOBrizjgbLjgo3jgYLjgY0NCivjgb/jgZrjgYrjgaEs44Gf44GL44GKDQor44G/44Ga44GX44G+LOOBkeOCk+OBmA0KK+OBv+OBmuOBnyzjgZHjgpPjgZgNCivjgoLjgaHjga/jgoks44GP44GrDQor44KC44Gh44Ga44GNLOOBk+OBhuOBhOOBoQ0KK+OCguOCguOBmyzjgZfjgoXjgYbjgYTjgaENCivjgoLjgoos44Gy44KN44GNDQor44KC44KKLOOBguOBjeOBsuOCjQ0KK+OCguOCiizjgaHjgYgNCivjgoLjgoos44Gv44Ga44GNDQor44KC44KKLOOBsuOBp+OBjQ0KK+OCguOCiizjgb7jgoLjgosNCivjgoLjgorjgYvjgo8s44G+44GV44KIDQor44KC44KK44KC44GoLOOChOOBmeOBsuOCjQ0KK+OCguOCiuOCguOBqCzjgZPjgYbjgYTjgaENCivjgoLjgorjgoLjgags44G+44Gq44G2DQor44KC44KK44KA44KJLOOBl+OCk+OBhOOBoQ0KK+OCguOCiuOBrizjgYvjgZrjgb8NCivjgoLjgorjgZXjgo8s44GP44Gr44GL44GaDQor44GX44G+44GK44GLLOOBiuOBleOCgA0KK+OCguOCiuOBl+OBnyzjgobjgYsNCivjgoLjgorjgoTjgb4s44Gy44KN44GTDQor44KC44KN44GK44GLLOOBv+OBpOOBsuOCjQ0KK+OCguOCjeOBqOOBvyzjgarjgYrjgY0NCivjgoLjgajjgY0s44Gf44Gg44Go44GXDQor44KC44Go44GuLOOBi+OBpOOChuOBjQ0KK+OCguOBqOOBn+OBiyzjgbLjgafjgY0NCivjgoDjgZDjgovjgb4s44Gf44GP44GYDQor44KA44GL44GELOOCiOOBl+OBvw0KK+OBguOCk+OBqeOBhizjgYTjgo/jgYoNCivjga/jga0s44GT44GG44GNDQor44KA44KJ44GL44G/LOOBqOOBl+OBi+OBmg0KK+OCgOOCieOBvuOBpCzjgaTjgajjgoANCivjgoDjgonjgZfjgZIs44GL44Ga44KG44GNDQor44GX44KC44KA44KJLOOBmOOCheOCkw0KK+OCgOOCieOBnyzjgb7jgZPjgagNCivjgb/jgofjgYbjgYws44Gf44GL44KG44GNDQor44Gq44GM44Gv44KJLOOBsuOCjeOBlw0KK+OBhOOBqOOBhizjgYvjgaTjgb8NCivjgarjgYzjgYQs44GR44GE44GfDQor44Gq44GM44GELOOBqOOBiuOCiw0KK+OBhOOCj+OBqCzjgojjgZfjgY0NCivjgZ/jgZHjgZfjgZIs44Gh44G744GTDQor44Gq44GM44GKLOOBguOBjeOBsuOCjQ0KK+OBquOBjOOBiizjgb/jgaHjga7jgooNCivjgarjgYzjgYos44GE44GV44GIDQor44G144GP44Gk44GLLOOBkeOBhOOBkw0KK+OBquOBjOOBleOCjyzjgbLjgafjgY0NCivjgarjgYzjgZXjgo8s44KE44GZ44Gy44KNDQor44Gq44GM44GbLOOBmeOBmeOCgA0KK+OBquOBjOOBl+OBvizjgYLjgY3jgYoNCivjgarjgYzjgZ/jgass44G144G/44Gy44GTDQor44Gq44GM44KP44GNLOOBsuOCjeOChOOBmQ0KK+OBquOBjOOChOOBvizjgb7jgZXjgbLjgacNCivjgarjgZTjgoQs44KC44KK44GKDQor44Gq44GE44Go44GGLOOBruOBtuOChuOBjQ0KK+OBquOBhOOBqOOBhizjgZXjgaDjgb/jgaQNCivjgarjgYvjgaAs44Gf44GP44KEDQor44Gq44GL44GM44GNLOOBsuOCjeOBguOBjQ0KK+OBquOBi+OBjOOCjyzjgabjgovjga7jgbYNCivjgarjgYvjgYzjgo8s44Go44GX44Gy44KNDQor44Gq44GL44GM44KPLOOChOOBmeOBsuOCjQ0KK+OBquOBi+OBjOOCjyzjgb7jgZXjgZcNCivjgarjgYvjgZjjgb4s44Go44GK44KLDQor44G744KK44GG44GhLOOBqOOCiOOBmA0KK+OBquOBi+OBr+OCiSzjgYvjgZrjgbLjgagNCivjgarjgYvjgZjjgb4s44GL44Ga44KG44GNDQor44Gq44GL44GY44G+LOOBk+OBhuOBmA0KK+OBjeOBj+OBnyzjgb/jgYsNCivjgarjgYvjgZjjgb4s44Go44GX44GC44GNDQor44Gq44GL44G+44KLLOOBqOOBl+OBkw0KK+OBquOBi+OCgOOCiSzjgojjgZcNCivjgarjgYvjgoDjgoks44G+44GT44GoDQor44Gq44GL44KA44KJLOOBoeOBiA0KK+OBquOBi+OCgOOCiSzjga7jgorjgZMNCivjgarjgYvjgoDjgoks44Gf44GL44GKDQor44Gq44GL44KA44KJLOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgorjgoXjgYbjgYTjgaENCivjgarjgYvjgoDjgoks44GX44GS44GL44GaDQor44Gv44Gj44Go44KKLOOBvuOBquOBtg0KK+OBquOBi+OCgOOCiSzjgZXjgbbjgo3jgYYNCivjgarjgYvjgoDjgoks44Go44GK44KLDQor44Gq44GL44KA44KJLOOBn+OBpOOBmA0KK+OBv+OChOOCguOBqCzjgYTjgZrjgosNCivjgarjgYvjgavjgZcs44Gy44Gn44GoDQor44Gq44GL44Gr44GXLOOBmeOBquOBig0KK+OBquOBi+OBrizjgojjgZfjgYLjgY0NCivjgarjgYvjga4s44Gh44KG44GNDQor44Gq44GL44GuLOOChOOBmeOBsuOBpw0KK+OBquOBi+OBrizjgYrjgZXjgoANCivjgarjgYvjga4s44Gk44GL44GVDQor44Gq44GL44GuLOOBkeOBhA0KK+OBquOBi+OBrizjgojjgZfjga7jgbYNCivjgarjgYvjgYos44Gf44GL44Gy44KNDQor44Gq44GL44GK44GLLOOBvuOBleOBi+OBpA0KK+OBquOBi+OBl+OBvizjgZfjgpPjgYTjgaENCivjgarjgYvjgZfjgb4s44GL44Ga44Gq44KKDQor44GX44Gq44GgLOOBguOBjeOCiQ0KK+OBquOBi+OBnyzjgYvjgZrjgarjgooNCivjgarjgYvjgoQs44Gf44GP44GYDQor44GV44GE44GL44KPLOOBsuOBqOOBlw0KK+OBr+OBm+OBjOOCjyzjgbLjgo3jgZcNCivjgarjgYvjgZbjgo8s44G+44G/DQor44Gq44G+44GkLOOBvuOBvw0KK+OBquOCiuOBnyzjgZ/jgY/jgZgNCivjgarjgZnjga4s44Gf44GL44GC44GNDQor44Gt44KC44GoLOOBv+OBreOBguOBjQ0KK+OBreOBiuOBhCzjgb7jgZPjgagNCivjga3jgZos44Gq44GK44GNDQor44Gr44GE44KA44KJLOOBi+OBmuOBvuOBlQ0KK+OBq+OBhOOChOOBvizjgaHjgYvjgZINCivjgavjgYTjgoTjgb4s44Gy44KN44GXDQor44Gr44Gu44G/44KELOOBsuOCjeOBlw0KK+OBq+OBruOBv+OChCzjgYvjgZrjgYLjgY0NCivjgavjgZcs44Gf44GL44GKDQor44Gr44GX44GgLOOBvuOBleOBruOCig0KK+OBq+OBl+OBoCzjgb7jgZXjgZcNCivjgavjgZfjganjga4s44KI44GX44Gu44KKDQor44Gr44GX44GL44KPLOOBguOBjeOCiQ0KK+OBq+OBl+OBjeOBqSzjgYLjgY3jgbLjgZMNCivjgavjgZfjgoDjgoks44GC44GN44KJDQor44Gr44GX44GqLOOBoOOBhOOBhOOBpA0KK+OBq+OBl+OBiizjgZjjgoXjgpPjgZgNCivjgYTjga7jgYbjgYgs44GL44Ga44Go44GXDQor44Gr44GX44GW44KPLOOBn+OBi+OBguOBjQ0KK+OBq+OBl+OBmuOBiyzjgajjgZfjgoQNCivjgavjgaPjgZ8s44Gy44Go44G/DQor44Gu44GgLOOCj+OBi+OBkw0KK+OBruOCgOOCiSzjgZXjgajjgZcNCivjga7jga7jgoDjgoks44Gy44KN44KG44GNDQor44Gu44KK44Gv44GXLOOBhOOBleOBig0KK+OBsuOBrizjgYvjgZrjgobjgY0NCivjga7jgZbjgY0s44GX44KTDQor44Gu44GW44KPLOOBvuOBleOBsuOCjQ0KK+OBrOOBvuOBrizjga7jgbbjgZMNCivjgYrjgbPjgZss44Gy44KN44GNDQor44GK44G844GL44GfLOOBkeOCk+OBmeOBkQ0KK+OBiuOBoSzjgYLjgY3jgbLjgo0NCivjga/jgZvjgYzjgo8s44G/44Gk44GC44GNDQor44G+44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OBiuOBoCzjgYvjgaTjgb8NCivjgYrjgaAs44GX44KT44GZ44GRDQor44GK44GgLOOBsuOBp+OBsuOCjQ0KK+OBiuOBoCzjgZjjgoXjgpPjgZMNCivjgYrjgaDjgY/jgoks44GO44KHDQor44GK44GM44GfLOOBsuOBqOOBlw0KK+OBiuOBjOOCjyzjgajjgZfjgbLjgZMNCivjgYLjgbks44KI44GG44GZ44GRDQor44GK44GQ44GhLOOBk+OBhuOBjQ0KK+OBiuOBkOOBvizjgb7jgZXjgojjgZcNCivjgYrjgZDjgoks44Gf44G+44GNDQor44GK44GQ44KJLOOBsuOBp+OBig0KK+OCgOOBleOBlyzjgb/jgaTjgosNCivjgYrjgZDjgoks44G+44GV44Gy44GTDQor44GK44GQ44KKLOOBvuOBk+OBqA0KK+OBiuOBiuOBsCzjgZHjgpPjgZgNCivjgYrjgYrjga/jgZcs44KI44GG44GE44GhDQor44GK44GK44GELOOBsuOCjeOBi+OBmg0KK+OBiuOBiuOBhOOBiCzjgZHjgpPjgZgNCivjgYrjgYrjgY/jgbws44Gv44KL44GXDQor44GK44GK44GP44G+LOOBhOOBleOCgA0KK+OBiuOBiuOBj+OBvizjgbLjgo3jgZcNCivjgYrjga4s44GL44Gk44G/DQor44GK44GK44Gs44G+LOOBi+OCiOOBkw0KK+OBn+OBi+OBmyzjgojjgZfjgbLjgacNCivjgYrjgYrjgZXjgo8s44Gy44Gn44GNDQor44GK44GK44GV44KPLOOBsuOCjeOBlw0KK+OBiuOBiuOBleOCjyzjgZHjgpPjgZgNCivjgYrjgYrjgZXjgo8s44Gd44GG44GZ44GRDQor44GK44GX44G+LOOBvuOCiuOBkw0KK+OBiuOBl+OBvizjgbLjgo3jgYoNCivjgYrjgZfjgb4s44G/44Gk44Gy44KNDQor44GK44GK44GfLOOBl+OCk+OBmA0KK+OBiuOBiuOBn+OBiyzjgbLjgo3jgobjgY0NCivjgYrjgYrjgZ/jgY0s44Gf44GR44GXDQor44GK44GK44Gf44GrLOOCiOOBhuOBmA0KK+OBiuOBiuOBpOOBiyzjgbLjgo3jga7jgbYNCivjgYrjgYrjgaTjgYss44Gm44Gk44GKDQor44GK44GK44KPLOOBvuOBk+OBqA0KK+OBiuOBiuOCj+OBoCzjgbLjgo3jga7jgooNCivjgYrjgYrjgoTjgb4s44Gy44Go44GXDQor44GK44Ge44GtLOOBruOBtuOChuOBjQ0KK+OBiuOBiyzjgoTjgZnjgZcNCivjgYrjgYss44Gy44KN44GC44GNDQor44GK44GLLOOBi+OBmuOBl+OBkg0KK+OBiuOBiyzjgZ/jgYvjga7jgooNCivjgYrjgYvjgaAs44Gf44GL44KI44GXDQor44GK44GL44GgLOOBsuOBqOOBlw0KK+OBiuOBi+OBoCzjgb7jgZXjgobjgY0NCivjgYrjgYvjgaAs44Go44KI44GC44GNDQor44GK44GL44Gp44KBLOOBjeOCiOOBi+OBpA0KK+OBiuOBi+OCguOBqCzjgoTjgZnjgZcNCivjgYrjgYvjgoLjgags44GT44GG44GYDQor44GK44GL44KC44GoLOOBsuOCjeOBlw0KK+OBiuOBi+OCgOOCiSzjgorjgYsNCivjgYrjgYvjga4s44GC44GN44KJDQor44GK44GL44Gu44KELOOBv+OBpOOCiw0KK+OBiuOBi+OBiizjgoTjgZnjgZgNCivjgYrjgYvjgZbjgY0s44Gy44Gn44GKDQor44GK44GNLOOBsuOCjeOChuOBjQ0KK+OBiuOBjeOCguOBqCzjgb7jgZXjgbLjgZMNCivjgYrjgY/jgoDjgoks44Go44KC44GTDQor44GK44GP44KA44KJLOOChuOBjeOBsuOBkw0KK+OBiuOBj+OBrizjgYLjgYQNCivjgYrjgb7jgZ8s44GC44GN44KI44GXDQor44GK44Gr44GNLOOBsuOCjeOChuOBjQ0KK+OBiuOBq+OBpOOBiyzjgb7jgZXjgYLjgY0NCivjgYrjga7jgafjgoks44GC44GN44KJDQor44GK44Gu44GW44KPLOOBsuOBp+OBpOOBkA0KK+OBiuOBiuOBq+OBlyzjgZHjgpMNCivjgYrjgYrjgavjgZcs44GP44Gr44KI44GXDQor44GK44GK44Gk44GLLOOBquOBiuOBsuOBlQ0KK+OBiuOBleOBoCzjgajjgoLjga7jgbYNCivjgYrjgZXjgY0s44Gf44GL44GXDQor44GK44GV44Gq44G/LOOBl+OBmuOCiOOBlw0KK+OBiuOChOOBvuOBoCzjgoTjgZnjga7jgooNCivjgYrjgZbjgo8s44GT44GG44GY44KN44GGDQor44GK44GW44KPLOOBl+OCjeOBhg0KK+OBiuOBluOCjyzjgoTjgZnjga7jgooNCivjgZXjgYjjgZDjgZUs44KE44GZ44Gu44KKDQor44GV44GI44GNLOOCiOOBl+OBsuOCjQ0KK+OBquOBi+OBmOOBvizjgZ/jgZHjgZcNCivjgZXjgYTjgZ8s44Gh44GI44GTDQor44GK44GM44KPLOOChOOBmeOBr+OCiw0KK+OBleOBhOOBqOOBhizjgYvjgZrjgbLjgZUNCivjgZXjgYTjgajjgYYs44Gf44GL44Gy44GTDQor44GV44GE44Go44GGLOOCiOOBl+OBruOCig0KK+OBleOBi+OBhCzjgorjgofjgYbjgZgNCivjgZXjgYvjgYQs44Gy44Gn44Gu44KKDQor44GV44GL44GELOOBkeOBhOOBmA0KK+OBleOBi+OBhCzjgZ/jgZHjgZcNCivjgZXjgYvjgYQs44Gf44GPDQor44GV44GL44GELOOBl+OCh+OBhuOBlA0KK+OBleOBi+OBhOOCiizjgbLjgo3jgobjgY0NCivjgZXjgYvjgY0s44GN44KH44GG44GTDQor44GV44GL44G+LOOBvuOBleOBruOCig0KK+OBleOBi+OBvuOBjSzjgb7jgZXjgajjgoINCivjgZXjgYvjgoLjgags44G+44GV44Go44GXDQor44GV44GL44KC44GoLOOBleOBqOOCiw0KK+OBleOBi+OCguOBqCzjgZfjgoXjgYbjgYTjgaENCivjgZXjgYvjgZ8s44Gf44GL44GXDQor44GV44GL44GG44GILOOBn+OBi+OChuOBjQ0KK+OBleOBi+OBmuOCgSzjgZ/jgY/jgb8NCivjgarjgYvjga4s44Go44KC44Gy44KNDQor44GV44GP44G+LOOCiOOBl+OBsuOBkw0KK+OBleOCk+OBvOOCk+OBvuOBpCzjgYvjgZrjgbLjgo0NCivjgZXjga4s44Gf44GR44GXDQor44GV44GuLOOBqOOBl+OBteOBvw0KK+OBleOBleOBjOOCjyzjgobjgZ/jgYsNCivjgZXjgZXjgY0s44KG44KK44GTDQor44GV44GV44GNLOOChOOBmeOChuOBjQ0KK+OBleOBleOBjSzjgYvjgZrjgojjgZcNCivjgZXjgZXjgY0s44GT44GG44GYDQor44GV44GV44GW44KPLOOBqOOBl+OChuOBjQ0KK+OBleOBqOOBhizjgoTjgZnjgZcNCivjgZXjgajjgYYs44GL44Gk44Gy44GoDQor44GV44Go44GGLOOCiOOBl+OBn+OBiw0KK+OBleOBqOOBhizjgZ/jgYvjgobjgY0NCivjgZXjgajjgYYs44Gu44G244Gf44GLDQor44GV44Go44GGLOOChuOBhuOBmeOBkQ0KK+OBleOBqOOBhizjgbLjgafjgobjgY0NCivjgZXjgajjgYYs44GV44Go44GXDQor44GV44Go44GGLOOBiuOBleOCgA0KK+OBleOBqOOBhizjgb7jgobjgb8NCivjgZXjgajjgYYs44Gu44G244GKDQor44GV44Go44GGLOOBsuOBp+OBruOCig0KK+OBleOBpOOBvizjgb/jgo/jgZMNCivjgZXjgo/jgZDjgaEs44Gq44GK44GoDQor44GV44KP44GELOOBv+OBoeOBsuOCjQ0KK+OBleOCj+OCieOBjizjgoTjgZnjgYoNCivjgZXjgo/jgZ/jgass44GP44Gr44GKDQor44Gb44GE44GfLOOBguOBpOOBlw0KK+OBm+OBjSzjgb7jgZXjgb7jgo0NCivjgZvjgY0s44Gu44G244Gy44KNDQor44Gb44GNLOOBruOCiuOChOOBmQ0KK+OBm+OBjeOBr+OCiSzjgYLjgY3jgokNCivjgZvjgY3jga0s44KG44GG44GZ44GRDQor44Gb44GN44GtLOOBsuOCjeOChuOBjQ0KK+OBl+OCieOBhOOBlyzjgb7jgZXjgbLjgo0NCivjgZvjgpPjgYws44Gu44G244GKDQor44Gb44GuLOOBruOCiuOChuOBjQ0KK+OBm+OBl+OCgizjgZfjgoXjgYbjgYTjgaENCivjgZvjgags44Gf44Gk44GKDQor44Gb44Go44GQ44GhLOOBn+OBpOOChA0KK+OBpuOCi+OChCzjgobjgYbjgYTjgaENCivjgZfjgYTjgbAs44KK44GLDQor44GX44Gw44GuLOOBqOOCguOChuOBjQ0KK+OBl+OBsOOBleOBjSzjgYTjgY/jgZMNCivjgZfjgbDjgZ8s44Gm44Gk44KN44GGDQor44GX44G244GV44KPLOOBvuOBleOBteOBvw0KK+OBl+OBtuOBleOCjyzjgojjgZfjgbLjgo0NCivjgZfjgaEs44Gg44GE44GI44GEDQor44GX44Gh44GfLOOBn+OBi+OChuOBjQ0KK+OBl+OBkuOBsuOBlSzjgajjgYrjgosNCivjgZfjgZLjgZXjgo8s44G/44KG44GNDQor44KA44KJ44GfLOOCiuOCheOBhuOBn+OCjeOBhg0KK+OBl+OBvuOBmizjgZ/jgYvjgaTjgZANCivjgZfjgb7jgZos44Gf44Gk44GXDQor44GN44GX44GgLOOBn+OBi+OBlw0KK+OBl+OBv+OBmizjgb/jgaHjgYoNCivjgZfjgb/jgZos44GI44GE44GE44GhDQor44GX44G/44GaLOOBsuOCjeOBlw0KK+OBl+OBv+OBmizjga/jgoTjgajjgZcNCivjgZfjgb/jgZos44GP44KT44GYDQor44GX44G/44GaLOOBkeOBhOOBkw0KK+OBl+OBv+OBmizjgbLjgo3jgZfjgZINCivjgb/jgoTjgZPjgZcs44Go44GX44Gy44KNDQor44GX44KC44G/44GhLOOBvuOCiuOBkw0KK+OBquOBi+OBsOOChOOBlyzjgYvjgYrjgosNCivjgZfjgoLjgYrjgZUs44Gf44GR44GXDQor44GX44KC44Gk44GYLOOBl+OCk+OBmA0KK+OBl+OBquOBoCzjgaHjgYvjgZcNCivjgZfjgarjgYzjgo8s44Gu44G244GKDQor44GX44KT44KC44GoLOOBvuOBleOBsuOCjQ0KK+OBl+OBrizjgojjgZfjga7jgooNCivjgZfjga7jgaAs44KK44KF44GG44Gf44KN44GGDQor44GX44Gu44GgLOOBr+OBpOOBiA0KK+OBl+OBruOBluOBjSzjgZfjgofjgYbjgZgNCivjgZfjgYrjgZ/jgass44Gm44Gk44Gy44KNDQor44GX44GK44KELOOBpOOBi+OBlQ0KK+OBl+OCieOBuSzjgYTjgaPjgZvjgYQNCivjgZfjgonjgYzjgY0s44KI44GX44Gv44KLDQor44GX44KJ44GELOOBi+OBmuOBsuOBkw0KK+OBl+OCieOBhOOBlyzjgYjjgaTjgbLjgo0NCivjgZfjgonjgYTjgZcs44Gy44KN44GXDQor44GX44KJ44GNLOOBi+OBmuOBsuOCjQ0KK+OBl+OBmuOBnyzjgZHjgYTjgZMNCivjgZfjgofjgYbjgZgs44GR44GE44GfDQor44Gd44Gu44GgLOOBv+OBqeOCig0KK+OBmeOBqeOBhizjgoLjgajjgobjgY0NCivjgZnjgYjjgaAs44Gb44GE44GTDQor44GZ44GI44Gk44GQLOOBn+OBi+OBlw0KK+OBmeOBjOOBnyzjgoTjgZnjgZnjgZENCivjgZnjgYzjgo/jgoks44KI44GX44GC44GNDQor44GZ44GO44GuLOOCiOOBl+OBruOBtg0KK+OBmeOBjuOBleOBjSzjgobjgYbjgZgNCivjgZnjgY7jgZfjgb4s44G+44GV44KLDQor44Gq44GM44GELOOBvuOCiuOBkw0KK+OBmeOBjuOChOOBvizjgajjgZfjgbLjgo0NCivjgZnjgb8s44GL44Gk44Gy44KNDQor44GZ44G/44Gf44GrLOOBl+OCk+OBhOOBoQ0KK+OBmeOBleOBjSzjgbLjgo3jgobjgY0NCivjgZnjgZnjgY0s44GT44GG44GE44GhDQor44GZ44KE44G+LOOBqOOCguOBruOCig0KK+OBmeOBmuOBjSzjgb/jgaHjgYoNCivjgZnjgZrjgY0s44GR44KT44GE44GhDQor44GZ44Ga44GNLOOBk+OBhuOBhOOBoQ0KK+OBn+OBmOOBvizjgZXjgajjgY0NCivjgZnjgZrjgY0s44Gf44GP44KEDQor44GZ44Ga44GNLOOChOOBmeOBkw0KK+OBmeOBmuOBjSzjgobjgZ/jgYsNCivjgZnjgZrjgY0s44GC44GN44GTDQor44GZ44Ga44GNLOOBguOBpOOBlw0KK+OBmeOBmuOBjSzjgbLjgafjgajjgoINCivjgZnjgZrjgY0s44Gy44Gn44Go44GXDQor44GZ44Ga44GNLOOBsuOBp+OBqOOBlw0KK+OBmeOBmuOBjSzjgbLjgo3jgY0NCivjgZfjgoXjgY/jgoQs44GY44KF44KT44GE44GhDQor44Gf44Gh44Gw44GqLOOBi+OCiA0KK+OBn+OBoeOChOOBvizjgZPjgYbjgYTjgaENCivjgZ/jganjgZPjgo0s44G+44GV44GC44GNDQor44Gf44GM44KPLOOBvuOBleOBsuOBqA0KK+OBn+OBkOOBoSzjgoLjgajjgYvjgZoNCivjgZ/jgZDjgaEs44Gq44GK44KG44GNDQor44Gf44GQ44GhLOOBruOBtuOBsuOBlQ0KK+OBn+OBhCzjga7jgorjgYoNCivjgZ/jgZjjgb4s44GV44Gh44GIDQor44Gf44GL44GgLOOBleOBqOOCiw0KK+OBn+OBi+OBoCzjgZfjgZLjga7jgbYNCivjgZ/jgYvjgY4s44GZ44GZ44KADQor44G/44KE44KC44GoLOOBn+OBi+OBlw0KK+OBn+OBi+OBr+OBvizjgabjgaTjgYoNCivjgZ/jgYvjga/jgZcs44KE44GZ44GC44GNDQor44Gf44GL44Gv44GXLOOBvuOBleOBruOCig0KK+OBn+OBi+OBr+OBlyzjgaTjgajjgoANCivjgZ/jgYvjga/jgZcs44G+44GV44KG44GNDQor44Gf44GL44Gv44GXLOOBvuOBk+OBqA0KK+OBn+OBi+OBr+OBlyzjgZHjgpPjgorjgoXjgYYNCivjgZ/jgYvjga/jgZcs44Go44GX44Gy44GVDQor44Gf44GL44Gv44GXLOOChOOBmeOBlw0KK+OBn+OBi+OBr+OBlyzjgbLjgo3jgobjgY0NCivjgZ/jgYvjga/jgZcs44KE44GZ44Gu44KKDQor44Gf44GL44Gv44GXLOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgoLjgajjgoTjgZkNCivjgZ/jgYvjga/jgZcs44KG44GN44GIDQor44Gf44GL44Gv44GXLOOChOOBmeOBkw0KK+OBn+OBi+OBr+OBlyzjgZ/jgYvjgZcNCivjgZ/jgYvjga/jgZcs44KI44GX44Gy44GVDQor44Gf44GL44Gv44GXLOOBqOOBl+OChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgZXjgajjgZMNCivjgZ/jgYvjga/jgZcs44Gy44Gn44GNDQor44Gf44GL44Gv44GXLOOBhOOBoeOCjeOBhg0KK+OBn+OBi+OBr+OBlyzjga7jgbbjgYLjgY0NCivjgZ/jgYvjga/jgZcs44G/44Gk44KLDQor44Gf44GL44Gq44GXLOOBl+OCkw0KK+OBn+OBi+OBrizjgYvjgaTjga7jgooNCivjgZ/jgYvjgYrjgYss44Gm44Gk44KEDQor44Gf44GL44GbLOOBl+OBkuOBjQ0KK+OBn+OBi+OBl+OBqizjgZPjgYbjgZvjgYQNCivjgZ/jgYvjgZfjgaos44Gg44GE44GV44GPDQor44Gf44GL44GfLOOBsuOCjeOBguOBjQ0KK+OBn+OBi+OChOOBvizjgbLjgo3jgobjgY0NCivjgZ/jgYvjgoTjgarjgY4s44GY44KF44KTDQor44Gf44GR44Gw44KE44GXLOOBi+OBpOOBvw0KK+OBv+OBi+OBvyzjgZHjgYTjgZnjgZENCivjgZ/jgZHjgYQs44G+44GT44GoDQor44Gf44GR44GNLOOBvuOBl+OCheOBhg0KK+OBn+OBkeOCguOCiizjga7jgbbjgbLjgZMNCivjgZ/jgZHjgoDjgoks44GK44GV44KADQor44Gf44GR44GG44GhLOOBkeOCkw0KK+OBn+OBkeOChCzjgZfjgofjgYbjgYTjgaENCivjgZ/jgZHjgoTjgb4s44Go44GX44GC44GNDQor44Gf44GN44GQ44GhLOOBqOOBl+OBi+OBmg0KK+OBn+OBjeOBl+OBnyzjgajjgZfjgobjgY0NCivjgZ/jgY3jgZbjgo8s44GC44GN44KJDQor44Gf44G+44GELOOBl+OBkuOCiw0KK+OBn+OBv+OChCzjgYLjgY3jgZMNCivjgZ/jgoDjgoks44KI44GG44GZ44GRDQor44Gf44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OBn+OBquOBr+OBlyzjgojjgZfjgobjgY0NCivjgZ/jgarjgYss44GX44GS44GoDQor44Gf44Gq44GLLOOBsuOBp+OBruOCig0KK+OBn+OBquOBiyzjgbLjgo3jgobjgY0NCivjgZ/jgarjgYss44Gy44KN44GNDQor44Gf44Gq44GLLOOChuOBjeOBkw0KK+OBn+OBquOBiyzjgbLjgo3jgZMNCivjgZ/jgarjgYss44GY44KF44KT44GE44GhDQor44Gf44Gq44GLLOOBl+OCkw0KK+OBn+OBquOBiyzjgb7jgZXjgYvjgZoNCivjgZ/jgarjgYss44GY44KF44KT44GTDQor44GT44Gg44G+LOOCiOOBl+OBsuOBkw0KK+OBn+OBquOBiyzjgYLjgZXjgYoNCivjgZ/jgarjgYss44Gu44KK44GC44GNDQor44Gf44Gq44GLLOOBleOBqOOBlw0KK+OBn+OBquOBiyzjgYrjgZXjgoANCivjgZ/jgarjgoDjgoks44GV44Go44GXDQor44Gf44KT44GwLOOBi+OBmuOBquOCig0KK+OBn+OBq+OBkOOBoSzjgZHjgYTjgZgNCivjgZ/jgavjgZDjgaEs44GY44KF44KT44GTDQor44Gf44Gr44GELOOBkuOCkw0KK+OBn+OBq+OCgOOCiSzjgajjgoLjga7jgooNCivjgZ/jgavjgo/jgY0s44GK44GV44KADQor44Gf44KL44GELOOBl+OCh+OBhuOBmA0KK+OBn+OBleOBjSzjgYvjgZrjgobjgY0NCivjgZ/jgZfjgo0s44G+44GV44KEDQor44Gf44Gm44GE44GXLOOBquOBiuOChA0KK+OBn+OBhuOBoSzjgorjgofjgYbjgZMNCivjgZ/jgYbjgoks44Gy44KN44GC44GNDQor44Gm44KJ44GgLOOCiOOBl+OBig0KK+OBleOBqOOBhizjgYLjgY3jgokNCivjgabjgonjgavjgZcs44KC44KK44KG44GNDQor44Gm44KJ44GX44GfLOOBsuOCjeOBlw0KK+OBpuOCi+OBjeOBqizjgYLjgY3jgogNCivjgajjgbks44GI44KK44GTDQor44Go44GG44GU44GGLOOBn+OBi+OBr+OCiw0KK+OBqOOBkOOBoSzjgYjjgYTjgZgNCivjgajjgZgs44GL44Gk44Gu44KKDQor44Go44G/44Gq44GMLOOBvuOBleOBqA0KK+OBqOOBv+OBquOBjCzjgoTjgZnjgb7jgZUNCivjgajjgb/jgYrjgYss44Gq44GK44GNDQor44Go44G/44GfLOOBmeOBkOOCiw0KK+OBqOOBv+OChOOBvizjgbLjgo3jgZ/jgYsNCivjgajjga3jgYzjgo8s44GC44GN44KJDQor44Go44GX44Gq44KKLOOBmOOCheOCk+OBkw0KK+OBqOOCiOOBoCzjgZPjgYbjgZgNCivjgajjgojjgaAs44GL44Gk44KEDQor44Go44KI44GgLOOBvuOBleOBsuOBkw0KK+OBiuOBiuOCguOCiizjgojjgYbjgYTjgaHjgo3jgYYNCivjgajjgZrjgYss44Gy44Gn44GKDQor44KE44G+44GL44KPLOOCiuOCheOBhuOBuOOBhA0KK+OBpOOBvOOBhCzjgZjjgoXjgpPjgZMNCivjgaTjgaHjga/jgZcs44GL44Gk44G/DQor44Gk44Gh44GuLOOBv+OBruOCiw0KK+OBpOOBoeOChCzjgojjgZfjgbLjgo0NCivjgb7jgY0s44Gy44Gn44Gu44KKDQor44Gk44GgLOOBv+OBpOOBruOBtg0KK+OBpOOBjOOCjyzjgZHjgpPjgZgNCivjgaTjgZgs44GV44Go44GXDQor44Gk44GYLOOBqOOCiOOBi+OBmg0KK+OBpOOBmCzjgbLjgo3jgZcNCivjgaTjgYvjgaAs44Gy44KN44KG44GNDQor44Gk44GL44KC44GoLOOBjeOCiOOBlw0KK+OBpOOCgOOCiSzjgZ/jgYvjgobjgY0NCivjgaTjgarjgZfjgb4s44KG44GN44GKDQor44GK44GP44KE44G+LOOBvuOCguOCiw0KK+OBpOOBruOBoCzjgZXjgaDjga/jgosNCivjgaTjga7jgYzjgYQs44KE44GZ44Gu44KKDQor44Gk44GX44G+LOOBruOBvOOCiw0KK+OBpOOBpOOBvyzjgbLjgo3jgZcNCivjgaTjgZrjgY0s44GL44Gk44G/DQor44Gk44KL44GK44GLLOOBsuOBp+OBqA0KK+OBhuOBoeOBoCzjgbLjgZXjgZcNCivjgYbjgaHjgaAs44G+44GV44KLDQor44GG44Gh44GgLOOBvuOBleOBteOBvw0KK+OBhuOBoeOBoCzjgoTjgZnjgZcNCivjgYbjgaHjga4s44GC44GN44Gy44GTDQor44GG44Gh44Gu44GP44KJLOOCgeOBkOOBvw0KK+OBhuOBoeOChOOBvizjgb/jgaHjga/jgosNCivjgYbjgaHjgoTjgb4s44Gf44GL44Gu44KKDQor44GG44Gh44KE44G+LOOBruOBtuOBsuOCjQ0KK+OBhuOBoCzjgZHjgYTjgZgNCivjgYbjgYjjgaAs44GX44GS44KLDQor44GG44GI44GgLOOBquOBpOOBkw0KK+OBhuOBiOOBoCzjgojjgZfjgagNCivjgYbjgYjjgaAs44Go44GX44Gv44KLDQor44GG44GI44Gv44KJLOOBl+OBkuOCiw0KK+OBhuOBiOOBr+OCiSzjgb7jgZXjgYoNCivjgYbjgYjjga/jgoks44GX44KT44GYDQor44GG44GI44GY44G+LOOBsuOCjeOChuOBjQ0KK+OBhuOBiOOBjSzjgYjjgorjgZMNCivjgYbjgYjjgoDjgoks44GP44Gr44Gy44KNDQor44GG44GI44GuLOOBn+OBi+OBsuOBpw0KK+OBhuOBiOOBrizjgajjgY/jgbLjgo0NCivjgYbjgYjjga4s44KG44GG44GYDQor44GG44GI44KE44G+LOOCiOOBl+OBkw0KK+OBhuOBhCzjgZHjgYTjgZnjgZENCivjgYbjgoHjgaAs44GX44KH44GG44GE44GhDQor44GG44KB44GgLOOBguOBpOOBlw0KK+OBhuOCgeOBoCzjgaHjga/jgosNCivjgYbjgoHjgaAs44GR44KT44GYDQor44GG44KB44Gv44KJLOOBvuOBk+OBqA0KK+OBhuOCgeOBi+OCjyzjgb7jgZXjga7jgooNCivjgYbjgovjgZfjgaDjgass44G+44GV44KG44GNDQor44GE44Gu44GG44GILOOBn+OBkeOBlw0KK+OBhuOBleOBvyzjgobjgYbjgZMNCivjgYbjgZfjgb7jgoss44Gf44Gk44Gy44KNDQor44GG44GX44KE44G+LOOBi+OBpOOChuOBjQ0KK+OBhuOBmeOBhCzjgZPjgYbjgbjjgYQNCivjgYbjgZnjgYQs44GK44GV44KADQor44GG44Gk44G/LOOBmOOCjeOBhg0KK+OBleOBleOBjOOCjyzjgYvjgZrjgYLjgY0NCivjgZ3jgoHjgoQs44GR44KT44GYDQor44KP44GgLOOBvuOBleOBig0KK+OCj+OBoCzjgb7jgZXjgojjgZcNCivjgo/jgaAs44KI44GX44GC44GNDQor44Gf44Gu44GG44GILOOChuOBhuOBhOOBoQ0KK+OCj+OBl+OBoCzjgbLjgafjgYLjgY0NCivjgo/jgZ/jgYQs44G/44Gh44GC44GNDQor44KP44Gf44Gq44G5LOOBvuOBleOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgYLjgY3jgYoNCivjgo/jgZ/jgarjgbks44GL44Ga44Gy44GVDQor44KP44Gf44Gq44G5LOOBleOBqOOBlw0KK+OCj+OBn+OBquOBuSzjgbLjgafjgY0NCivjgo/jgZ/jgarjgbks44Go44GK44KLDQor44KP44Gf44Gq44G5LOOBsuOCjeOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgYLjgY3jgokNCivjgoTjgY4s44GL44Ga44GKDQor44KE44GULOOBvuOBleOBsuOBkw0KK+OChOOBr+OBjizjgarjgYrjgbXjgb8NCivjgoTjgY/jgZcs44GK44GV44KADQor44KE44G+44GgLOOCjOOBhOOBjQ0KK+OChOOBvuOBoCzjgZ/jgYvjgZcNCivjgoTjgb7jgaAs44Go44G/44KE44GZDQor44KE44G+44GgLOOBqOOBl+OBsuOCjQ0KK+OChOOBvuOBoCzjgajjgZfjgYoNCivjgoTjgb7jgaAs44KI44GX44GKDQor44KE44G+44GgLOOChuOBiw0KK+OChOOBvuOBjOOBnyzjgZ/jgZHjgZcNCivjgoTjgb7jgY7jgZcs44G+44GV44GIDQor44Gv44KKLOOBvuOBleOChuOBjQ0KK+OChOOBvuOBkOOBoSzjgYvjgaTjgZcNCivjgoTjgb7jgZDjgaEs44Go44KC44GL44GaDQor44KE44G+44GQ44GhLOOBqOOCguOBvw0KK+OBguOBiuOBpOOBiyzjgojjgZfjgZXjgagNCivjgoTjgb7jgZDjgaEs44G+44GV44Gu44KKDQor44KE44G+44GYLOOBv+OBoeOBig0KK+OChOOBvuOCguOBqCzjgbLjgo3jga7jgooNCivjgoTjgb7jgoLjgags44GY44KF44KT44GE44GhDQor44KE44G+44KC44GoLOOBkeOCk+OBmOOCjeOBhg0KK+OChOOBvuOCguOBqCzjgYvjgZrjgbLjgo0NCivjgoTjgb7jgoLjgags44Gy44KN44G144G/DQor44KE44G+44KC44GoLOOBn+OBi+OChuOBjQ0KK+OChOOBvuOCguOBqCzjgYLjgY3jgbLjgacNCivjgoTjgb7jgoLjgags44Go44GX44Gu44KKDQor44KE44G+44KC44GoLOOBiOOBhOOBmA0KK+OChOOBvuOCguOBqCzjgb7jgarjgbYNCivjgoTjgb7jgoLjgags44Go44GX44KG44GNDQor44KE44G+44KC44GoLOOBquOBiuOBteOBvw0KK+OChOOBvuOCgOOCiSzjgajjgoLjgYvjgZoNCivjgoTjgb7jgarjgYss44KG44Gf44GLDQor44KE44G+44GX44GqLOOBl+OCk+OBmA0KK+OChOOBvuOBl+OBnyzjgobjgY3jgbLjgo0NCivjgoTjgb7jgZfjgZ8s44KK44KT44GY44KFDQor44KE44G+44GX44GfLOOBkeOCk+OBmA0KK+OChOOBvuOBl+OBnyzjgbLjgajjgZcNCivjgoTjgb7jgaYs44GR44GEDQor44KE44G+44GG44GhLOOBguOBjeOCiQ0KK+OChOOBvuOBluOBjSzjgobjgY3jgbLjgZUNCivjgoTjgb7jgZbjgY0s44Gu44G844KLDQor44KE44G+44GW44GNLOOBsuOBqOOBlw0KK+OChOOBquOBjizjgYvjgZrjgYoNCivjgoTjgarjgY7jgaAs44GT44GG44GE44Gh44KN44GGDQor44KE44Gq44GO44GgLOOBv+OBuw0KK+OChOOBquOBhCzjgZXjgajjgZcNCivjgoTjgarjgYss44Gf44Gg44GXDQor44KE44GZ44GgLOOBvuOBleOBvw0KK+OChOOBmeOBoCzjgYTjgo/jgYoNCivjgoTjgZnjgaAs44Gb44GN44GTDQor44KE44GZ44KC44GoLOOBi+OBmuOChA0KK+OChOOBpOOBiyzjgarjgYrjgY0NCivjgoTjgZbjgo8s44G/44Ga44G7DQor44KI44GgLOOBpuOBpOOChA0KK+OCiOOBqeOBjOOCjyzjga7jgorjgYoNCivjgojjgaAs44Gy44KN44Gu44KKDQor44KI44GT44Gv44GfLOOBsuOCjeOChA0KK+OCiOOBk+OChOOBvizjgYTjgo/jgYoNCivjgojjgZPjgoTjgb4s44GX44GS44KLDQor44KI44KC44KKLOOBguOBjeOCiOOBlw0KK+OCiOOBreOCguOBoSzjgojjgZfjgaTjgZANCivjgojjgo3jgZrjgoQs44Gq44GK44Gy44GVDQor44KI44GX44GgLOOBn+OBpOOBnuOBhg0KK+OCiOOBl+OBoCzjgZ/jgYvjgZcNCivjgojjgZfjgaAs44Gu44KK44GKDQor44G144GY44GV44GNLOOBk+OBhuOBhOOBoQ0KK+OCiOOBl+OBoCzjgbLjgajjgZcNCivjgojjgZfjgaAs44Gm44Gk44GKDQor44KI44GX44G+44GkLOOBoeOBr+OCiw0KK+OCiOOBl+OCguOBqCzjgobjgYbjgZnjgZENCivjgojjgZfjgoDjgoks44GL44Gk44KEDQor44GE44GX44Gw44GXLOOBn+OBoOOBlw0KK+OCiOOBl+OBrizjgZ/jgaTjgoQNCivjgZ/jgYvjga4s44GR44GE44GUDQor44KG44Gv44GXLOOBl+OCh+OBhuOBkw0KK+OBiOOBoOOBsuOCjSzjgb/jganjgooNCivjga/jgonjgaAs44G+44GV44KG44GNDQor44Gv44KE44GV44GLLOOCiuOCheOBhuOBm+OBhA0KK+OBhOOBquOBjOOBjSzjgb7jgZXjgY0NCivjgYTjga7jgYbjgYgs44GV44Go44GXDQor44GE44GX44Gv44KJLOOBn+OBi+OBlw0KK+OBk+OBmOOBvizjgoTjgZnjgbLjgZUNCivjgZPjgZnjgY4s44GX44KT44GUDQor44GP44G844GfLOOBquOCi+OBvw0KK+OCguOCiizjgZ/jgYvjgZcNCivjgarjgYvjgbDjgoTjgZcs44Gq44GK44Gy44GVDQor44Gt44KC44GoLOOBn+OBi+OBlw0KK+OBq+OBruOBv+OChCzjgZHjgYQNCivjgYrjgYzjgo8s44KB44GQ44G/DQor44GK44GK44Gf44GrLOOBvuOBleOBkw0KK+OBm+OBjSzjgY/jgb8NCivjgZfjgbbjgZ/jgass44Gk44Go44KADQor44GX44KT44GoLOOBsuOCjeOChuOBjQ0KK+OBneOBtuOBiCzjgbLjgajjgZcNCivjgZ/jgYvjga/jgZcs44Gf44GR44GXDQor44Gf44GL44GbLOOBvuOBv+OBkw0KK+OBqOOCiOOBoCzjgbLjgo3jgbLjgacNCivjgYbjgYjjgaAs44GX44KT44Gf44KN44GGDQor44KE44G+44KC44GoLOOChOOBmeOChuOBjQ0KK+OChOOBvuOBmuOBvyzjgbLjgo3jgZcNCivjgojjgZfjgaAs44GT44GG44GYDQor44GC44GV44GL44GELOOBquOCi+OBqOOBlw0KK+OBteOBj+OBnyzjgYvjgZrjgb8NCivjgYvjgo/jgZXjgY0s44GL44Ga44GKDQor44Gy44KN44GbLOOCiOOBl+OBi+OBmg0KK+OBi+OBleOBr+OCiSzjgZvjgaTjgZMNCivjgYrjgZbjgo8s44GR44GE44GE44GhDQor44GL44Go44GGLOOBkeOBhOOBhOOBoQ0KK+OBquOBi+OCgOOCiSzjgZvjgYTjgYjjgYQNCivjgZ/jgZDjgaEs44Gy44KN44KADQor44GC44Gg44GhLOOCiuOCh+OBhuOBm+OBhA0KK+OBguOBi+OBlyzjgojjgZfjgbLjgZUNCivjgYLjgY3jgoTjgb4s44GI44G/DQor44GC44GK44GNLOOBl+OCh+OBhuOBmA0KK+OBguOCieOBjSzjgajjgoLjgZ/jgZENCivjgYLjgZXjgbIs44G144G/44Gu44KKDQor44GC44GV44GuLOOBqOOBl+OBsuOBkw0KK+OBguOCj+OBrizjgYrjgZXjgoANCivjgYLjgo/jga4s44GY44KF44KT44GY44KN44GGDQor44Gp44GG44GYLOOBquOBiuOChuOBjQ0KK+OBqeOBhuOBnuOBrizjgZvjgYTjgoQNCivjgbXjgaHjgYvjgb8s44GL44Gk44KN44GGDQor44G144GY44GELOOBkeOCk+OBmA0KK+OBteOBmOOBhCzjgZPjgYbjgYTjgaENCivjgbXjgZjjgYTjgYgs44Gu44G244KEDQor44GT44KPLOOBl+OCheOCk+OBhOOBoQ0KK+OBteOBmOOBl+OCjSzjgb7jgZXjgYoNCivjgbXjgZjjgZ8s44KI44GG44GTDQor44G144GY44GfLOOBsuOCjeOChuOBjQ0KK+OBteOBmOOCj+OCiSzjgZPjgYbjgZgNCivjgbXjgY/jgaAs44Gq44GK44KG44GNDQor44G144GP44GgLOOBn+OBpOOBig0KK+OBteOBj+OBoCzjgZHjgpMNCivjgZXjgYTjgajjgYYs44GK44GV44G/DQor44G144GP44KE44G+LOOBmOOCheOCk+OBhOOBoQ0KK+OBteOCi+OBr+OBnyzjgZPjgYbjgZgNCivjgZTjgajjgYYs44Gy44KN44GL44GaDQor44Gv44KA44KNLOOBiuOBleOCgA0KK+OBr+OBmyzjgZ/jgY/jgbLjgZUNCivjga/jgZfjgoLjgags44G+44GV44Gy44KNDQor44Gv44GX44KC44GoLOOBmOOCheOCk+OBhOOBoQ0KK+OBr+OBo+OBqOOCiizjgZjjgoXjgpMNCivjga/jgoTjgZcs44GL44Gk44Gy44GTDQor44Gv44KE44GXLOOBqOOBl+OBguOBjQ0KK+OBr+OChOOBlyzjgb7jgZXjgYvjgZoNCivjga/jgoTjgZcs44GX44GS44G/44GkDQor44Gv44KE44GXLOOCgeOBhA0KK+OBr+OChOOBlyzjgb7jgZXjgaTjgZANCivjgbLjgbMs44Gy44KN44KG44GNDQor44Gy44GQ44G+LOOBn+OBj+OChA0KK+OBsuOCieOBhCzjgbLjgo3jgZ/jgYsNCivjgbLjgonjgYvjgo8s44Gk44Gt44Go44KCDQor44Gy44KJ44GuLOOBi+OBmuOBsuOBkw0KK+OBsuOCjeOBquOBiyzjgb/jga7jgosNCivjgbvjgorjgZDjgaEs44Gu44G244GC44GNDQor44G744GV44GLLOOBleOBqOOBlw0KK+OBu+OBneOChCzjgZvjgYTjgZgNCivjgYTjgaHjgYQs44GX44GS44KG44GNDQor44GE44Gh44GL44KPLOOCguOBqOOBsuOCjQ0KK+OBhOOBkOOBvizjgYjjgYTjgYTjgaENCivjgYTjgYTjgZXjgYss44G+44KG44G/DQor44GE44GL44KPLOOBhOOCj+OBig0KK+OBhOOBkeOBoCzjgYLjgobjgZMNCivjgYTjgZHjgaAs44GE44GP44GY44KN44GGDQor44GE44GR44GM44G/LOOBvuOCguOCiw0KK+OBhOOBruOBhuOBiCzjgZfjgo3jgYYNCivjgYTjga7jgYbjgYgs44Gy44GV44GC44GNDQor44GT44Gw44KE44GXLOOBqOOBj+OBmOOCjeOBhg0KK+OBhOOBl+OBsOOBlyzjgoTjgZnjgbLjgZUNCivjgYTjgZfjgaAs44KI44GX44KG44GNDQor44GE44GX44G+44KLLOOBv+OCjw0KK+OBhOOBl+OBmuOBiyzjgajjgZfjgobjgY0NCivjgYTjgZ0s44Gy44Gn44GC44GNDQor44GE44Go44GGLOOBsuOBp+OBguOBjQ0KK+OBhOOBqOOBhizjgYLjgY3jgbLjgZMNCivjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GE44Go44GGLOOBleOCj+OBkw0KK+OBhOOBqOOBhizjgabjgaTjgoQNCivjgYTjgajjgYYs44KI44GX44G/44GtDQor44GE44Go44GGLOOBkeOCk+OBhOOBoQ0KK+OBhOOCj+OBnyzjgZXjgajjgZcNCivjgYvjgorjgoQs44Gb44GE44GE44GhDQor44GM44GV44GNLOOBl+OBkuOBig0KK+OBi+OBjCzjgYvjgZrjgbLjgZUNCivjgYvjgZLjgoTjgb4s44Gk44KI44GXDQor44GL44GY44Gq44G/LOOBn+OBi+OChuOBjQ0KK+OBi+OBv+OBsuOCieOBnyzjgbLjgo3jgobjgY0NCivjgYvjgarjgoLjgoos44Gf44Gk44KEDQor44GL44Gt44GTLOOBpuOCi+OBig0KK+OBi+OBreOBkyzjgojjgZfjgYoNCivjgYvjgavjgo8s44GC44GN44KJDQor44GL44GV44G+LOOBruOCiuOBvuOBlQ0KK+OBi+OBmyzjgbLjgo3jgobjgY0NCivjgYvjgZfjgoDjgoks44G144G/44Go44GXDQor44GL44Gf44GK44GLLOOBkeOCk+OBmA0KK+OBi+OBqOOBhizjgZjjgoXjgpPjgZMNCivjgYvjgajjgYYs44GR44GE44GYDQor44GL44Go44GGLOOBk+OBhuOBnw0KK+OBi+OBqOOBhizjgYLjgY3jgbLjgZMNCivjgYvjgajjgYYs44Gu44G244Gy44GnDQor44GL44KP44GhLOOBkeOBhOOBkw0KK+OBi+OCj+OBkOOBoSzjgaHjgZXjgagNCivjgYvjgo/jga4s44G/44Gk44GKDQor44GL44KP44GX44G+LOOBpuOBpOOBmA0KK+OBjeOBj+OBoSzjgajjgoLjgYLjgY0NCivjgY3jgoLjgags44KI44GX44Gy44KNDQor44GN44KA44KJLOOBi+OBpOOChA0KK+OBjeOBruOBl+OBnyzjgabjgaQNCivjgY3jgZfjga/jgoks44Gk44GQ44GC44GNDQor44GN44GX44GL44KPLOOBsuOBp+OChuOBjQ0KK+OBjeOBnyzjgorjgYgNCivjgY3jgZ/jgYzjgo8s44G/44Gh44Gv44KLDQor44GN44Gf44GuLOOCiuOBiOOBkw0KK+OBjeOBn+OChOOBvizjgZvjgYTjgZMNCivjgY3jgojjgYrjgYss44G+44GV44KIDQor44GN44KI44GbLOOBpOOBi+OBlQ0KK+OBk+OBsOOCiizjgZ/jgabjgY0NCivjgZPjgbDjgoTjgZcs44GL44GK44KLDQor44GT44Gw44KE44GXLOOBk+OBhuOBn+OCjeOBhg0KK+OBk+OBvOOCiizjgZ/jgb7jgb8NCivjgZPjgYTjgo8s44Gf44GR44GXDQor44GT44GY44G+LOOBteOBv+OCiA0KK+OBr+OBl+OCguOBqCzjgZPjgYbjgYTjgaENCivjgZPjgb/jgoTjgb4s44Gf44GL44Gy44KNDQor44GT44KT44GpLOOBqOOCguOChuOBjQ0KK+OBk+OCk+OBqSzjga7jgorjgZMNCivjgZPjgpPjgaks44KI44GG44GZ44GRDQor44GT44GX44GL44KPLOOBguOBjeOBteOBvw0KK+OBk+OBpuOBjOOCjyzjgZHjgpPjgZgNCivjgZPjgo8s44Gu44G244KG44GNDQor44GP44G844GfLOOBl+OCh+OBhuOBhOOBoQ0KK+OBj+OBvOOBnyzjgbLjgo3jgobjgY0NCivjgY/jganjgYYs44Gv44KE44GoDQor44GP44GMLOOCiOOBl+OBsuOCjQ0KK+OCguOCiizjgobjgY3jgbLjgo0NCivjgY/jgavjgZ/jgZEs44Gv44GY44KBDQor44GP44KJ44GL44GRLOOBsuOCjeOBi+OBmg0KK+OBj+OCiizjgb7jgZXjgbLjgagNCivjgY/jgZXjgbXjgYss44GX44Gu44G2DQor44GP44KP44Gw44KJLOOBqOOBiuOCiw0KK+OBvuOBoeOBoCzjgbLjgo3jgobjgY0NCivjgb7jgovjgoTjgb4s44KG44GNDQor44Gf44GR44GG44GhLOOBguOBjeOBig0KK+OBvuOBpOOBsCzjgYLjgaTjgZcNCivjgb7jgaTjgbDjgoks44Gf44GR44KNDQor44G+44Gk44Gg44GE44KJLOOBvuOBjQ0KK+OBvuOBpOOCguOBqCzjgojjgorjgZMNCivjgb7jgaTjgoLjgags44KI44GX44GC44GNDQor44G+44Gk44Gq44GMLOOBv+OBuw0KK+OBvuOBpOOBiizjgb7jgZXjgoQNCivjgb7jgaTjgYos44Gu44KK44KG44GNDQor44G+44Gk44GKLOOBl+OCk+OChA0KK+OBv+OBj+OBqyzjgoTjgZnjgZcNCivjgb/jgarjgYzjgo8s44KP44Gf44KLDQor44G/44Gq44GM44KPLOOBl+OBkuOCiw0KK+OBv+OBruOBpizjgajjgoLjgYLjgY0NCivjgb/jgZ8s44KI44GX44GP44GrDQor44G/44Go44KBLOOBn+OBkeOBlw0KK+OBv+OBpOOChOOBvizjgZfjgoXjgYbjgYTjgaENCivjgb/jgoTjgaEs44Gf44GL44G144G/DQor44G/44KE44GYLOOBk+OBhuOBmA0KK+OBv+OChOOBmOOBvizjgb/jgaTjgYoNCivjgb/jgoTjgZ8s44GR44GE44GTDQor44G/44KE44GW44GNLOOBjeOCiOOBguOBjQ0KK+OBv+OChOOBluOBjSzjgb7jgZPjgagNCivjgb/jgoTjgZbjgags44KI44GX44Gq44KKDQor44G/44KE44GW44KPLOOBsuOCjeOBjQ0KK+OBv+OBnuOBkOOBoSzjgoLjgajjgZMNCivjgb/jgZrjgYQs44G+44GV44KI44GXDQor44KC44KT44GuLOOBiOOBhOOBmA0KK+OCguOCiizjgb/jgaTjgbLjgo0NCivjgoLjgoos44Gu44KK44GZ44G/DQor44KC44KK44GfLOOBj+OCi+OBvw0KK+OCguOCiuOBnyzjgajjgZfjgYLjgY0NCivjgoLjgorjgoTjgb4s44G+44KK44GTDQor44KA44KJ44GL44G/LOOCiuOCheOBhuOBhOOBoQ0KK+OCgOOCieOBi+OBvyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgoDjgonjgYvjgb8s44G/44Gu44KLDQor44KA44KJ44G+44GkLOOBl+OCk+OBmeOBkQ0KK+OCgOOCjeOBnuOBrizjgbLjgo3jgYLjgY0NCivjgarjgYzjgbbjgaEs44Gy44KN44GXDQor44Gq44GM44GuLOOBv+OBpOOCiw0KK+OBquOBjOOBmyzjgorjgoXjgYbjgYTjgaENCivjgarjgYzjgZ/jgass44GX44G7DQor44Gq44GU44KELOOBsuOCjeOBguOBjQ0KK+OBquOBi+OBjOOCjyzjgYvjgYrjgooNCivjgarjgYvjgb/jgaEs44GX44KH44GGDQor44Gq44GL44KA44KJLOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OBquOBi+OCgOOCiSzjgb7jgZXjga7jgooNCivjgarjgYvjga4s44Gy44KN44GXDQor44Gq44GL44GX44G+LOOBsuOCjeOBruOCig0KK+OBq+OBl+OBoCzjgZjjgoXjgpMNCivjgavjgZfjga/jgoks44GC44Gk44GoDQor44Gr44GX44KA44KJLOOBl+OCk+OChA0KK+OBq+OBl+OBiuOBiyzjgYvjgZrjgbLjgZMNCivjga7jgZDjgaEs44Gu44G844KLDQor44Gu44GbLOOBvuOBleOBmuOBvw0KK+OBiuOBsOOBnyzjgobjgYbjgZgNCivjgYrjgaHjgYLjgYQs44GE44GP44GTDQor44GK44Gh44GC44GELOOBsuOBp+OBsuOBkw0KK+OBiuOBjOOCjyzjgZ/jgYvjgZcNCivjgYrjgYzjgo8s44G+44GV44GoDQor44GK44GM44KPLOOBn+OBv+OChA0KK+OBiuOBjOOCjyzjgYvjgaTjgajjgZcNCivjgYrjgY7jga4s44G+44KG44G/DQor44GK44GQ44KJLOOBn+OBi+OBguOBjQ0KK+OBk+OCk+OBqSzjgoTjgZnjgobjgY0NCivjgYrjgYrjgYgs44G+44GV44G/44GhDQor44GK44GK44GM44GNLOOBmOOCjeOBhg0KK+OBiuOBiuOBq+OBlyzjga7jgorjgYLjgY0NCivjgYrjgYrjga4s44G+44GV44G/44GhDQor44GK44GK44GfLOOBsuOCjeOBlw0KK+OBiuOBl+OCjSzjgYvjgZrjgZfjgZINCivjgYrjgYrjgZ8s44Gf44GL44GXDQor44GK44GK44Gf44GX44KNLOOBsuOBp+OBjQ0KK+OBiuOBiuOBpCzjgb7jgZXjgYvjgZoNCivjgYrjgYrjgaQs44KB44GQ44G/DQor44GK44GK44KE44GOLOOBiOOBhOOBmA0KK+OBiuOBiuOChOOBvizjgaHjga/jgosNCivjgYrjgYvjgoLjgags44Gy44KN44G244G/DQor44GK44GL44KE44G+LOOBv+OBpOOCiOOCig0KK+OBiuOBkeOBn+OBqyzjgZ/jgaTjgZMNCivjgYrjgY/jgoTjgb4s44GP44G/44GTDQor44GK44Gu44Gn44KJLOOBsuOBp+OBqOOBlw0KK+OBiuOBluOCjyzjgb/jga7jgosNCivjgZXjgYTjgajjgYYs44GL44Ga44Gy44GnDQor44GV44GE44Go44GGLOOBpuOCi+OBig0KK+OBleOBhOOBqOOBhizjgZ/jgYvjga7jgbYNCivjgZXjgYvjgZDjgaEs44Gy44KN44GL44GaDQor44GV44GL44Gq44GLLOOCguOBqOOCgA0KK+OBleOBi+OBq+OCjyzjgojjgorjgZMNCivjgZXjgYvjgYbjgaEs44Go44GX44Gf44GLDQor44GV44GP44KJ44GELOOBpOOBqOOCgA0KK+OBleOBj+OCieOBhCzjgb7jgZXjgobjgY0NCivjgZXjga4s44Gf44GP44KEDQor44GV44GV44GNLOOBvuOBleOBvw0KK+OBleOBleOBjSzjgYjjgooNCivjgZXjgZXjgY0s44KK44GIDQor44GV44GV44G+LOOBvuOBleOBi+OBmg0KK+OBleOBqOOBhizjgZ/jgZHjgoQNCivjgZXjgajjgYYs44Gy44KN44KG44GNDQor44GV44Go44GGLOOBn+OBi+OBlw0KK+OBleOBqOOBhizjgb/jgo8NCivjgavjgZfjgb7jgZ8s44Gm44Gk44GKDQor44GV44KP44GgLOOBvuOBleOBsuOBlQ0KK+OBm+OCk+OBsCzjgobjgYbjgYTjgaENCivjgZvjgags44KI44GX44Gu44KKDQor44GX44G244KELOOChuOBjeOBig0KK+OBl+OBhCzjgb/jgZXjgZMNCivjgZfjgb7jgaAs44GT44GG44G444GEDQor44GX44G+44GgLOOBv+OBiA0KK+OBiuOBi+OCguOBqCzjgb7jgZXjgajjgZcNCivjgZfjgarjgYzjgo8s44GV44Gh44GIDQor44GX44KT44GL44KPLOOBsuOBleOChA0KK+OBl+OCk+OBjeOCheOBhizjgb7jgZXjgobjgY0NCivjgZfjga7jgaAs44Gm44KL44GIDQor44GX44Gu44Gv44KJLOOBm+OBhOOBhOOBoQ0KK+OBguOBleOBi+OCjyzjgYvjgYrjgosNCivjgZfjgYrjga/jgoks44G+44GV44GoDQor44GX44KN44GfLOOBi+OBpOOBsuOCjQ0KK+OBmeOBjuOCguOBqCzjgYvjgZrjgbLjgacNCivjgZnjgY7jgoTjgb4s44GN44KI44Gf44GLDQor44GZ44GQ44GhLOOBruOBtuOBkw0KK+OCguOCjeOBqOOBvyzjga/jgovjgZMNCivjgZnjgZrjgY0s44G+44GV44G144G/DQor44Gf44GQ44GhLOOBguOBjeOBig0KK+OBn+OBkOOBoSzjgobjgYbjgZgNCivjgZ/jga/jgoks44Gy44KN44KG44GNDQor44Gf44GL44GOLOOCiOOBl+OBig0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgYoNCivjgZ/jgYvjgYQs44GR44KT44GYDQor44Gf44GL44KE44G+LOOBi+OBmuOBkw0KK+OBn+OBkSzjgarjgYrjgY0NCivjgZ/jgZHjgbDjgoTjgZcs44KK44KF44GG44GYDQor44Gf44GR44GL44KPLOOBmOOCheOCk+OBkw0KK+OBn+OBkeOBhuOBoSzjgYvjgbvjgosNCivjgo/jgZ/jgarjgbks44GT44GG44GYDQor44Gf44GR44GG44GhLOOBsuOBp+OBjQ0KK+OBn+OBv+OChCzjgb7jgZXjgYvjgZoNCivjgZ/jgoDjgoks44Gy44KN44GXDQor44Gf44Gq44G5LOOBvuOBleOBsuOCjQ0KK+OBn+OBquOBiyzjgZHjgYTjgZMNCivjgZ/jgarjgYss44Gu44G244GTDQor44Gf44Gq44GLLOOBpOOCiOOBlw0KK+OBn+OBq+OBkOOBoSzjgYLjgaTjgZcNCivjgZ/jgavjgZDjgaEs44GL44Ga44Gy44KNDQor44Gf44Gr44KA44KJLOOBn+OBpOOBig0KK+OBn+OBruOBhuOBiCzjgYLjgY3jgbLjgo0NCivjgZ/jgovjgZXjgo8s44GC44GN44GTDQor44Gf44GX44KNLOOBqOOBl+OBr+OCiw0KK+OBpuOCieOBoCzjgobjgY3jgbLjgZMNCivjgajjgYbjgYws44Gy44Gn44G/44GtDQor44Go44GM44GXLOOBl+OBkuOBig0KK+OBqOOBhuOBlOOBhizjgZfjgpPjgoQNCivjgajjgY/jgarjgYws44GC44KE44GTDQor44Go44KC44GuLOOBi+OBmuOBvw0KK+OBqOOCiOOBoCzjgojjgYbjgZjjgo3jgYYNCivjgaTjgaHjgoQs44Gy44KN44GC44GNDQor44Gk44GL44Gv44KJLOOBruOBtuOBsuOCjQ0KK+OBhuOCieOBleOBjSzjgobjgYbjgZgNCivjgo/jgaAs44Go44KC44KE44GZDQor44KP44GgLOOCjOOBhOOBkw0KK+OCj+OBn+OBquOBuSzjgb7jgZXjgajjgZcNCivjgo/jgZ/jgarjgbks44G144G/44GKDQor44KE44GO44Gs44G+LOOBkeOBhOOBkw0KK+OChOOBvuOBoCzjgajjgZfjgYLjgY0NCivjgoTjgb7jgaAs44Gy44GV44GXDQor44KE44G+44GgLOOBkeOBhOOBmA0KK+OChOOBvuOCguOBqCzjgb7jgZXjgYLjgY0NCivjgoTjgb7jgoLjgags44Gy44Gn44GoDQor44KE44G+44KC44GoLOOBn+OBpOOChA0KK+OChOOBvuOCguOBqCzjgobjgY3jgbLjgo0NCivjgoTjgb7jgarjgYss44Gh44Gy44KNDQor44KE44G+44Gq44GLLOOBi+OBiuOCiw0KK+OChOOBvuOBl+OBnyzjgb7jgZXjgbLjgo0NCivjgbLjgZDjgaEs44GY44KF44KT44GYDQor44KE44G+44GW44GNLOOBteOBv+OBrg0KK+OChOOBquOBjizjgbLjgo3jgZcNCivjgoTjgZnjgaAs44Gu44G244KG44GNDQor44KE44GZ44GILOOBqOOBl+OChA0KK+OCiOOBk+OBiCzjga7jgbbjgYLjgY0NCivjgojjgZPjgoTjgb4s44KK44GI44GTDQor44KI44Gt44Gv44KJLOOBk+OBhuOBhOOBoQ0KK+OCiOOBreOBv+OBpCzjgb7jgZPjgagNCivjgojjgorjgb7jgaQs44Go44KC44GTDQor44KI44GX44GgLOOBteOBv+OBsuOCjQ0KK+OCiOOBl+OBrizjgb/jgaTjgbLjgo0NCivjgojjgZfjgZ/jgY0s44GK44GV44KADQor44KG44GL44KPLOOBmOOCheOCk+OChA0KK+OChuOCiizjgajjgoLjgYoNCivjgoLjgoos44Gf44GL44Gy44GVDQor44GV44GV44GNLOOBi+OBpOOBsuOBkw0KK+OBl+OCieOBr+OBvizjgZ/jgZHjgbLjgo0NCivjgabjgpPjgbHjgY8s44KG44GG44GE44Gh44KNDQor44GG44Gh44GgLOOBquOBiuOChA0KK+OChOOBvuOBhuOCiSzjgajjgYrjgosNCivjgb7jgaTjgZDjgb4s44G144G/44GTDQor44GC44G5LOOBsuOCjeOChuOBjQ0KK+OBguOBuSzjgYvjgaTjgb8NCivjgYLjgbks44GL44Ga44GKDQor44GC44G5LOOBquOBiuOBguOBjQ0KK+OBguOBoOOBoSzjgarjgarjgYoNCivjgYLjgYTjga/jgoks44Gk44KI44GXDQor44GC44GY44G+LOOChOOBmeOBguOBjQ0KK+OBguOBi+OBleOBiyzjgajjgYrjgosNCivjgYLjgY3jgoLjgags44GT44GG44Ge44GGDQor44GC44GN44KE44G+LOOBn+OBi+OBlw0KK+OBguOBjeOChOOBvizjgZ/jgaTjgoQNCivjgYLjgY/jga0s44Gy44KN44GXDQor44GC44G+44GuLOOBvuOBquOBtg0KK+OBguOBvuOBrizjgaHjgYLjgY0NCivjgYLjgoHjgb/jgoQs44G+44GV44Gk44GQDQor44GC44KT44Gp44GGLOOBv+OBjQ0KK+OBguOCk+OBqeOBhizjgb/jgo8NCivjgYLjgpPjganjgYYs44GL44Ga44GKDQor44GC44KT44GY44GNLOOChuOBhuOBkw0KK+OBguOCk+OBuuOBhOOBmCzjgZfjgoXjgpPjgYTjgaENCivjgYLjgYrjgY0s44KI44GX44GTDQor44GC44GK44GNLOOBl+OBkuOBr+OCiw0KK+OBguOBiuOBjSzjgobjgY3jgZMNCivjgYLjgYrjgY0s44GY44KF44KTDQor44GC44GK44GNLOOBqOOBl+OBguOBjQ0KK+OBr+OCieOBl+OBvizjgorjgYsNCivjgYLjgYrjgY0s44Gk44Go44KADQor44GC44GK44GNLOOBquOBiuOBsuOBlQ0KK+OBguOBiuOChOOBjizjgZ/jgYvjgobjgY0NCivjgYLjgYrjgoTjgb4s44KI44GG44GE44GhDQor44GC44GK44KE44G+LOOBkeOBhOOBmeOBkQ0KK+OBguOCieOBhCzjgZPjgYbjgYTjgaENCivjgYLjgonjgY0s44G+44GT44GoDQor44GC44KJ44GNLOOBi+OBpOOBmA0KK+OBguOCieOBnyzjgb/jgY0NCivjgYLjgonjgoQs44GX44KT44GE44GhDQor44GT44Gw44KE44GL44KPLOOChOOBmeOBsuOCjQ0KK+OBguOCiuOBnyzjgarjgovjgbLjgagNCivjgYLjgZXjgbAs44KI44GX44KG44GNDQor44GC44GV44GLLOOBqOOCguOBoeOBiw0KK+OBguOBleOBj+OCiSzjgZ/jgaTjgYoNCivjgYLjgZXjga4s44GX44KF44GG44GYDQor44GC44GV44GuLOOBqOOCguOBguOBjQ0KK+OBguOBl+OBuSzjgb7jgZXjgbLjgZMNCivjgYLjgo/jgb/jgoQs44Gy44KN44KG44GNDQor44GC44GW44G/LOOBpOOBqOOCgA0KK+OBguOBnOOChOOBquOBjizjgbLjgo3jgb8NCivjgYLjgZrjgb4s44KK44GIDQor44GC44Ga44G+LOOBn+OBi+OChuOBjQ0KK+OBguOBmuOBvizjgarjgYrjgobjgY0NCivjgbDjgbAs44KI44GX44GL44GaDQor44Gw44GwLOOBi+OBpOOChuOBjQ0KK+OBsOOBsCzjgaDjgYTjgZnjgZENCivjgbDjgarjgYss44GL44Ga44KEDQor44GV44Gf44GRLOOBkeOBhOOBkw0KK+OBoeOBsCzjgoLjgajjga/jgosNCivjgaHjgY7jgoks44Gu44G244Gy44GTDQor44Gh44Gv44KJLOOBn+OBi+OBteOBvw0KK+OBoeOBi+OBhCzjgYLjgaTjgZcNCivjgaHjgoXjgYbjgb4s44Gf44GR44GXDQor44Gg44GELOOBvuOBleOBsuOCjQ0KK+OBoOOBhOOBiizjgbLjgafjgY0NCivjgaDjgaYs44Gy44KN44GXDQor44Gn44GQ44GhLOOBk+OBhuOBmA0KK+OBp+OCjyzjgYjjgb/jgZMNCivjganjgYQs44Gf44GE44Ge44GGDQor44GI44Gz44GV44KPLOOBsuOCjeOBv+OBpA0KK+OBquOBi+OCgOOCiSzjgZ/jgYvjgZMNCivjgYjjgYTjgoLjgoos44Gv44KL44G/DQor44GI44KT44GpLOOBquOBiuOBjQ0KK+OBiOOCk+OBqSzjgZ/jgYvjgYoNCivjgYjjga7jgoLjgags44GR44GE44GTDQor44G144GY44GELOOBsuOCjeOBi+OBmg0KK+OBteOBmOOBhCzjgZHjgpPjgYTjgaHjgo0NCivjgbXjgZjjgYQs44Gf44Gk44Gu44KKDQor44G144GY44GELOOBv+OBpOOCiOOBlw0KK+OBteOBmOOBhCzjgajjgZfjgYLjgY0NCivjgbXjgZjjgYvjgo8s44GX44Gu44G2DQor44G144GY44KC44KKLOOBguOBjeOBkw0KK+OBguOBiuOBjSzjgYLjgY3jgokNCivjgbXjgZjjgoLjgags44Gq44GK44KEDQor44G144GY44GK44GLLOOBpuOBpOOCjeOBhg0KK+OBteOBmOOBnyzjgoTjgZnjgbLjgZUNCivjgbXjgZjjgZ8s44KA44Gk44GKDQor44G144GL44GKLOOBl+OCk+OBhOOBoQ0KK+OBteOBj+OBoCzjgYvjgaTjgbLjgZMNCivjgbXjgY/jgaAs44Gy44KN44GXDQor44G144GP44GELOOBsuOBp+OBig0KK+OBteOBj+OBhCzjgZPjgYbjgZgNCivjgbXjgY/jgoLjgags44Gy44Gn44Gf44GLDQor44G144GP44GX44G+LOOBsuOBp+OBruOBtg0KK+OBteOBj+OBl+OBvizjga7jgbbjgZMNCivjgbLjga4s44GV44GhDQor44G144GP44GW44KPLOOBjeOCh+OBhuOBkw0KK+OBteOBj+OBluOCjyzjgb/jgY3jgZMNCivjgbXjgarjgaAs44KG44GG44GTDQor44G144KL44Gg44GmLOOBkeOBhOOBkw0KK+OBteOCi+OChCzjgZHjgYTjgZnjgZENCivjgbXjgZ/jgoDjgoks44G/44GN44KEDQor44Gq44GL44KA44KJLOOCguOBqOOBsuOBlQ0KK+OBlOOBqOOBhizjgZfjgZLjgY0NCivjgZTjgajjgYYs44GL44Ga44KEDQor44GU44Go44GGLOOBi+OBhOOBoeOCjeOBhg0KK+OBlOOBqOOBhizjgojjgYbjgZMNCivjga/jgbAs44KI44GG44GTDQor44Gv44Gh44KE44G+LOOBvuOBleOBvw0KK+OBr+OBjuOCj+OCiSzjgZfjgpMNCivjga/jgb7jgbks44Gf44GL44KG44GNDQor44Gv44G+44GgLOOCiOOBl+OBvw0KK+OBr+OBvuOBoCzjgZ/jgYvjgbLjgacNCivjgb7jgYjjgYrjgYss44Gy44Go44GXDQor44Gv44Gq44G/LOOChOOBmeOBsuOBpw0KK+OBr+OBquOBiuOBiyzjgYLjgY3jgZMNCivjgZvjgZbjgYQs44Gq44GK44GNDQor44Gv44KJLOOCiuOCh+OBhuOBmA0KK+OBleOBqOOBhizjgZvjgYTjgZQNCivjga/jgoks44GC44Gk44GXDQor44Gv44KJ44GgLOOBquOBpOOBvw0KK+OBr+OCieOBoCzjgYjjgYTjgYTjgaENCivjga/jgonjgaAs44GL44Ga44Gy44GTDQor44Gv44KJ44GgLOOBvuOBleOBguOBjQ0KK+OBr+OCieOBoCzjgb/jgaTjga7jgooNCivjga/jgorjgb4s44Gq44GK44GNDQor44G744KT44G+LOOBruOBtuOBguOBjQ0KK+OBr+OCi+OChOOBvizjgZfjgZLjgosNCivjga/jgZss44KI44GG44GE44GhDQor44Gv44Gb44GM44KPLOOBn+OBpOOBig0KK+OBr+OBm+OBjOOCjyzjgoTjgojjgYQNCivjga/jgZvjgYzjgo8s44GR44KT44Gf44KN44GGDQor44Gv44Gb44GM44KPLOOBguOBjeOBsuOBkw0KK+OBr+OBl+OBkOOBoSzjgbLjgajjgZcNCivjga/jgZfjgoLjgags44GL44Gk44GTDQor44Gv44GX44KC44GoLOOBi+OBmuOChA0KK+OBr+OBl+OBmuOCgSzjgZPjgYbjgZ/jgo3jgYYNCivjga/jgZfjgZrjgoEs44G/44KPDQor44Gv44GX44Ga44KBLOOBl+OCheOCk+OBmeOBkQ0KK+OBr+OBnyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjga/jgZ/jga4s44Gh44GL44KJDQor44Gv44Gf44GuLOOBi+OBmuOBqOOCgg0KK+OBr+OBqOOCiizjgarjgYrjgY0NCivjga/jgaPjgajjgoos44Gf44GR44GXDQor44Gv44Gj44Go44KKLOOCiOOBhuOBhOOBoQ0KK+OBr+OBo+OBqOOCiizjgYLjgY3jgbLjgZMNCivjga/jgaPjgajjgoos44KG44GNDQor44Gv44Gj44Go44KKLOOBleOBqOOBlw0KK+OBr+OBo+OBqOOCiizjgb7jgZXjgY0NCivjga/jgaPjgajjgoos44KP44Gf44KLDQor44Gv44KE44GL44KPLOOBkeOBhOOBkw0KK+OBr+OChOOBi+OCjyzjgarjgYrjgb8NCivjga/jgoTjgb8s44GZ44G/44Gy44GoDQor44Gv44KE44GXLOOBsuOBp+OBguOBjQ0KK+OBr+OChOOBlyzjgobjgb/jgZMNCivjga/jgoTjgZcs44G+44GV44Gf44GLDQor44Gv44KE44GXLOOBvuOChuOBvw0KK+OBr+OChOOBlyzjgoTjgZnjgbLjgo0NCivjgZXjgZXjgZ/jgass44GC44GN44KJDQor44Gv44KE44GXLOOBvuOBleOBruOCig0KK+OBr+OBluOBvizjgZvjgYTjgYTjgaENCivjgbjjgpPjgb8s44GL44Gq44GTDQor44Gy44GzLOOBqOOCguOBvw0KK+OBsuOBoOOBiyzjgajjgYbjgZMNCivjgbLjgaDjgYss44KG44GG44GTDQor44Gy44Gg44GLLOOBn+OCjeOBhg0KK+OBsuOBiOOBoCzjgb/jgaHjgYvjgZoNCivjgbLjgYzjgY0s44GX44KH44GG44GYDQor44Gy44GM44GXLOOCiOOBl+OBsuOBlQ0KK+OBsuOBhOOBqeOCgSzjgbLjgo3jgb/jgaENCivjgbLjgZjjgY/jgo0s44Gb44GE44GE44GhDQor44G144GP44GELOOBhOOBleOBig0KK+OBsuOBvizjgojjgZfjgY0NCivjgbLjgYrjgY0s44Go44GG44KB44GEDQor44Gy44KJ44GELOOBvuOCig0KK+OBv+OBjSzjgb7jgZXjgobjgY0NCivjgbLjgonjga4s44G144GN44KIDQor44Gy44KJ44GuLOOBi+OBmuOBsuOCjQ0KK+OBsuOCieOBnyzjgZfjgo3jgYYNCivjgbLjgonjgaTjgYss44G144G/44GL44GaDQor44G744GgLOOBsuOCjeOBjQ0KK+OBsuOCieOChOOBvizjgarjgYrjgZMNCivjgbLjgo3jgbks44GN44GP44G/DQor44Gy44KN44GELOOBvuOBleOBsuOCjQ0KK+OBsuOCjeOBleOCjyzjgb7jgZXjgbLjgo0NCivjgbLjgo3jgZXjgo8s44Gq44GK44GTDQor44Gy44KN44GZ44GILOOBmOOCheOCk+OBkw0KK+OBsuOCjeOBnyzjgYrjgZXjgoANCivjga/jgoTjgb4s44KG44GG44GTDQor44Gy44KN44KP44Gf44KKLOOBleOChuOCig0KK+OBsuOBleOCguOBqCzjgb/jgYvjgZMNCivjgbLjgZXjga4s44KI44GX44GC44GNDQor44Gy44GV44KG44GNLOOChuOBi+OCig0KK+OBsuOBl+OBoCzjgbLjgo3jgZcNCivjgbLjgZfjgZ/jgass44KE44GZ44GXDQor44KP44GgLOOBteOBv+OBiA0KK+OBsuOChOOBvizjga7jgbbjgbLjgZMNCivjgYLjgorjgY/jgoks44KG44Gf44GLDQor44G744KT44GgLOOBv+OBruOCiw0KK+OBu+OCk+OBoCzjgZHjgYTjgZnjgZENCivjgbvjgpPjgZTjgYYs44G+44GV44GoDQor44G744KT44G+LOOChuOBhuOBhOOBoQ0KK+OBu+OCk+OBvizjgYLjgY3jga7jgbYNCivjgb7jgaTjgoLjgags44GR44KT44GfDQor44G744KKLOOBvuOBquOBtg0KK+OBu+OCiizjgYLjgY3jgagNCivjgbvjgorjgbks44Go44GX44KG44GNDQor44G744KK44GILOOBguOBjeOBruOCig0KK+OBu+OCiuOBiCzjgb7jgZXjgbLjgZMNCivjgbvjgorjgYgs44Gf44Gg44GXDQor44G744KK44GG44GhLOOCiOOBl+OBteOBvw0KK+OBu+OBl+OBsCzjgajjgYrjgosNCivjgbvjgZfjgYvjgo8s44Gy44Gn44GKDQor44GL44Go44GGLOOBquOBiuOBjQ0KK+OBu+OBl+OBqizjgZPjgYbjgYTjgaENCivjgbvjgoos44Gu44KK44KG44GNDQor44G744GX44GuLOOBn+OBi+OBlw0KK+OBu+OBneOBoCzjga7jgbbjgYoNCivjgbvjgaPjgZ8s44GV44GK44KKDQor44G744Gh44GpLOOBn+OBi+OChA0KK+OBhOOBtuOBiyzjgojjgZfjgabjgosNCivjgYTjgaHjgYvjgo8s44Gy44Go44GXDQor44GE44Gh44GL44KPLOOBvuOCiuOBkw0KK+OBhOOBoeOBvuOBmSzjgaTjgajjgoANCivjgYTjgaHjga7jgZss44GL44Gk44G/DQor44GE44GnLOOBvuOBleOBsuOBkw0KK+OBhOOBjOOCieOBlyzjgb7jgZXjgagNCivjgYTjgYzjgZ8s44GI44GE44GE44Gh44KN44GGDQor44GE44GELOOChuOCiuOBkw0KK+OBhOOBhOOBoCzjgb7jgZXjgojjgZcNCivjgYTjgYTjgaAs44G+44GV44KG44GNDQor44GE44GE44GgLOOBl+OCk+OBmA0KK+OBhOOBhOOBrizjgYTjgaHjgo3jgYYNCivjgYTjgYTjgojjgoos44G/44Gh44Gv44KLDQor44GE44GE44Ga44GLLOOBvuOBk+OBqA0KK+OBhOOBi+OCi+OBjizjgYvjgaTjgoQNCivjgYTjgYvjgo8s44GR44GE44GZ44GRDQor44GE44GR44GhLOOBvuOBvw0KK+OBhOOBkeOBoCzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgYTjgZHjgaAs44KC44Go44Gv44KLDQor44GE44GR44GgLOOBn+OBi+OBkw0KK+OBhOOBkeOBoCzjgZ/jgYvjgobjgY0NCivjgYTjgZHjgYzjgb8s44Go44KC44Gy44KNDQor44GE44GR44GY44KKLOOBi+OBmuOChA0KK+OBhOOBkeOBn+OBjSzjgY/jgavjgYrjgb8NCivjgYTjgY/jgoLjgags44GX44KTDQor44GE44G+44GELOOBn+OBkeOBlw0KK+OBhOOBvuOBhCzjgozjgYTjgZMNCivjgbvjgZ3jgYQs44GR44KT44Gf44KN44GGDQor44GE44G+44GELOOBleOBtuOCjeOBhg0KK+OBhOOBvuOBq+OBlyzjgZ/jgZHjgZcNCivjgYTjgarjgaAs44Gv44GY44KBDQor44GE44Gq44GM44GNLOOBvuOBquOBtg0KK+OBhOOBquOBkizjgZHjgpPjgYTjgaENCivjga/jgZbjgb4s44Gy44GV44KC44GoDQor44GE44GuLOOBmOOCheOCkw0KK+OBhOOBruOBvuOBnyzjgZHjgYTjgZ/jgo3jgYYNCivjgYTjga7jgYbjgYgs44KK44GIDQor44KE44GZ44GL44KPLOOBn+OBi+OBsuOBqA0KK+OBr+OCiyzjgajjgYrjgosNCivjgYTjga7jgYbjgYgs44Gm44KL44GKDQor44GE44Gu44GG44GILOOBpOOBqOOCgA0KK+OBhOOBruOBhuOBiCzjgbXjgb/jga7jgooNCivjgYTjga7jgYbjgYgs44Gy44KN44Gy44GVDQor44GE44GK44GNLOOBvuOBleOBv+OBoQ0KK+OBhOOCiuOBiCzjga7jgbbjgobjgY0NCivjgYTjgZXjgYss44Go44GK44KLDQor44GE44GV44GLLOOCj+OBn+OCiw0KK+OBiuOBiuOCguOCiizjgZHjgpPjgYTjgaHjgo0NCivjgYTjgZfjgbDjgZcs44G+44Gq44G2DQor44GE44GX44GgLOOBkeOBhOOBhOOBoQ0KK+OBhOOBl+OBoCzjgYbjgonjgokNCivjgYTjgZfjga/jgoks44KI44GX44GoDQor44GE44GX44Gv44KJLOOBr+OCi+OBig0KK+OBsuOCieOBqCzjgbLjgafjgYoNCivjgYTjgZfjgYQs44GR44GE44GY44KN44GGDQor44GE44GX44GELOOBv+OBjeOBig0KK+OBhOOBl+OBhCzjgYLjgaTjgZcNCivjgYTjgZfjgYQs44Gv44KL44GKDQor44GE44GX44GELOOBkeOBhOOBmA0KK+OBhOOBl+OBhCzjgb7jgZXjgZMNCivjga/jga3jgYTjgZcs44GX44KT44GZ44GRDQor44GE44GX44GELOOChOOBmeOBlw0KK+OBhOOBl+OBi+OCjyzjgojjgYbjgZMNCivjgYTjgZfjgYvjgo8s44KI44GG44GZ44GRDQor44GE44GX44GL44KPLOOCiOOBl+OBsuOBkw0KK+OBhOOBl+OBi+OCjyzjgobjgYsNCivjgYTjgZfjgYvjgo8s44Gu44KK44GTDQor44GE44GX44GK44GLLOOCiOOBl+OChuOBjQ0KK+OBhOOBl+OBpOOBiyzjgajjgZfjgobjgY0NCivjgYTjgZfjgo/jgZ8s44GC44KK44Gy44KNDQor44GE44GX44GW44GLLOOBk+OBhuOBmA0KK+OBhOOBl+OBluOBiyzjgYjjgYTjgYTjgaENCivjgYTjgZfjgZbjgY0s44GT44GG44GYDQor44GE44GX44Ga44GNLOOBquOBiuOBqA0KK+OBhOOBnSzjgZfjgZLjgbLjgagNCivjgYTjgZ3jgYzjgYQs44KG44GG44GTDQor44GE44Gf44GwLOOChuOBhuOBmA0KK+OBhOOBqOOBhizjgYTjga7jgooNCivjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GE44Go44GGLOOBvuOBleOBsuOCjQ0KK+OBhOOBqOOBhizjgbDjgpMNCivjgYTjgajjgYYs44GV44Go44GXDQor44GE44Go44GGLOOBguOBpOOBlw0KK+OBsuOBoOOBiyzjgbLjgafjgaTjgZANCivjgYTjgajjgYYs44G+44GV44Gy44KNDQor44GE44Go44GGLOOChuOBjQ0KK+OBq+OBlyzjgZfjgpPjgYTjgaENCivjgYTjgo/jgaDjgows44KI44GX44Gu44KKDQor44GE44KP44Gv44GXLOOChuOBhuOBkw0KK+OBhOOCj+OBjSzjgb/jgZrjgbsNCivjgYTjgo/jgoLjgags44KI44GX44Gu44KKDQor44GE44KP44GV44GNLOOBruOBtuOBi+OBmg0KK+OBsuOCieOBpOOBiyzjgbLjgo3jgZcNCivjgYTjgo/jgZXjgY0s44Gy44KN44KG44GNDQor44GE44KP44GV44GNLOOBvuOBleOChuOBjQ0KK+OBhOOCj+OBleOBjSzjgbLjgo3jgobjgY0NCivjgZjjgpPjgZDjgYYs44GV44Go44GTDQor44GE44KP44GX44GSLOOBvuOBk+OBqA0KK+OBhOOCj+OBnyzjgbLjgo3jgZcNCivjgZjjgpPjgZDjgYYs44KI44GX44Gu44KKDQor44GULOOChOOBmeOBi+OBmg0KK+OBi+OBjCzjgYvjgaTjgoQNCivjgYvjgYzjgbYs44GX44KT44GY44KN44GGDQor44GL44GO44KE44G+LOOBsuOBp+OBig0KK+OBi+OBhCzjgobjgYbjgZ7jgYYNCivjgYvjgYTjgaAs44Gu44KK44KG44GNDQor44GL44GE44GgLOOBruOCiuOBvuOBlQ0KK+OBi+OBvuOBoSzjgbLjgo3jgobjgY0NCivjgYvjgb7jgaAs44G+44GV44GTDQor44GL44G+44G744KKLOOBqOOCguOBsuOBkw0KK+OBi+OBvuOBnyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgYvjgoHjgaAs44G+44KG44G/DQor44GL44KB44GELOOBteOBv+OBsuOBkw0KK+OBi+OBv+OBrizjgZ/jgZHjgZcNCivjgYvjgb/jga4s44Gy44Go44GXDQor44GL44G/44Go44GuLOOCiuOCheOBhuOBmA0KK+OBi+OBv+OChCzjga7jgbbjgobjgY0NCivjgYvjgb/jgoQs44Gh44GC44GNDQor44GL44G/44KE44G+LOOBkeOCk+OBjg0KK+OBi+OCguOCkyzjgbLjgafjgY0NCivjgYvjgoLjgpMs44GI44GE44Gf44KN44GGDQor44GL44KTLOOBqOOCguOBruOCig0KK+OBi+OBquOBhCzjga7jgorjgZMNCivjgYvjgarjgYQs44GZ44G/44GTDQor44GL44Gq44GYLOOBvuOBleOChuOBjQ0KK+OBi+OBquOBiuOBiyzjgZ/jgb/jgYoNCivjgYvjgarjgZbjgo8s44GL44Gk44Gy44GVDQor44GL44KT44G5LOOBleOBiuOCig0KK+OBi+OCk+OBoCzjgoTjgZnjgZ/jgYsNCivjgYvjgpPjgaAs44Gh44GIDQor44GL44Gt44GNLOOBiOOBhOOBmeOBkQ0KK+OBi+OBreOBjeOCiCzjgbLjgo3jgagNCivjgYvjga3jgZMs44Gy44KN44KG44GNDQor44GL44Gt44GX44GfLOOBi+OBmuOBsuOCjQ0KK+OBi+OBreOChOOBmSzjgarjgYrjgoQNCivjgYvjga7jgYYs44GX44KT44GYDQor44GL44Gu44GGLOOBn+OBkeOBlw0KK+OBi+OCk+OBmuOBhCzjgZ/jgb/jgobjgY0NCivjgYvjgZXjga/jgoks44Gq44Gq44GTDQor44GL44GV44Gv44KJLOOBsuOBp+OBsuOBlQ0KK+OBi+OBleOBhCzjgYjjgYTjgYTjgaENCivjgYvjgZXjgb7jgaQs44GP44Gr44Go44GXDQor44GL44GV44KCLOOBkeOCk+OBhOOBoeOCjQ0KK+OBn+OBvuOBn+OBqyzjgZfjgb4NCivjgYvjgZfjgo/jgY4s44KG44KK44G/DQor44GL44GX44KP44GQ44KJLOOBsuOBp+OChuOBjQ0KK+OBi+OBn+OBoCzjgZXjgaHjgZMNCivjgYvjgZ/jgYrjgYss44Gq44GK44GNDQor44G744GXLOOBsuOCjeOBqA0KK+OBi+OBn+OBiuOBiyzjgZfjgoXjgYbjgZgNCivjgYvjgajjgYYs44Gy44KN44GNDQor44GL44Go44GGLOOChOOBmeOChuOBjQ0KK+OBi+OBqOOBhizjgoLjgorjgbLjgo0NCivjgYvjgajjgYYs44GX44KT44GE44GhDQor44GL44Go44GGLOOCiuOCh+OBhuOBnw0KK+OBi+OBqOOBhizjgZHjgYTjgZMNCivjgYvjgajjgYYs44Gm44KL44Gy44GTDQor44GL44Go44GGLOOBmOOCheOCk+OBkw0KK+OBi+OBqOOBhizjgb/jgaHjgoQNCivjgYvjgajjga4s44GN44KI44GXDQor44GL44Gk44KA44KJLOOBsuOBp+OBjQ0KK+OBi+OCj+OBsOOBnyzjgYTjgaHjgo3jgYYNCivjgYvjgo/jgZTjgYgs44GC44GN44KJDQor44GL44KP44GQ44GhLOOBk+OBhuOBmA0KK+OBi+OCj+OBr+OCiSzjgb7jgZnjgb8NCivjgYvjgZfjgoDjgoks44KG44GG44GTDQor44GL44KP44GELOOBquOBiuOBvw0KK+OBi+OCj+OBhCzjgbLjgo3jgobjgY0NCivjgYvjgo/jgoLjgags44G+44Gq44G2DQor44GL44KP44KA44KJLOOBleOBqOOCiw0KK+OBi+OCj+OCgOOCiSzjgZfjgoXjgYbjgZgNCivjgYvjgo/jgaos44KG44GN44Gy44GoDQor44GL44KP44GqLOOBvuOBleOBi+OBmg0KK+OBi+OCj+OBquOBvyzjgbLjgafjgbLjgZMNCivjgYvjgo/jga4s44GX44KT44GYDQor44GL44KP44GbLOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OBr+OCieOBoCzjgZfjgoXjgYbjgZPjgYYNCivjgYvjgo/jgZfjgb4s44Gu44G244GTDQor44GL44GW44G/LOOBquOBiuOBqA0KK+OBi+OBmuOBleOCjyzjgoTjgZnjgbLjgo0NCivjgY3jgbDjgoTjgZcs44KG44GG44GE44GhDQor44GN44GgLOOBn+OBkeOBlw0KK+OBjeOBr+OCiSzjgojjgZfjgbLjgZMNCivjgY3jgY/jgaEs44Gy44KN44GXDQor44GN44GP44GhLOOBhOOBoeOCjeOBhg0KK+OBleOBhOOBqOOBhizjgZHjgpPjgZgNCivjgY3jgY/jgYQs44Gk44KI44GXDQor44GN44KC44GoLOOCiOOBhuOBkw0KK+OBjeOCgOOCiSzjga7jgbbjgobjgY0NCivjgY3jgoDjgoks44Gk44KI44GXDQor44GN44KA44KJLOOBqOOBl+OBpOOBkA0KK+OBjeOCgOOCiSzjgZ/jgYvjgbLjgZUNCivjgY3jgoDjgoks44Gv44KL44G/DQor44GN44GuLOOBi+OBmuOBvuOBlQ0KK+OBjeOCiuOBrizjgYvjgZrjgoQNCivjgY3jgZXjgazjgY0s44G+44GT44GoDQor44GN44GXLOOBvuOBleOBjQ0KK+OBjeOBlyzjgarjgYrjgY0NCivjgY3jgZfjgaAs44GV44Go44GXDQor44GN44GX44GL44KPLOOBl+OCkw0KK+OBsuOCieOBpizjgZfjgpPjgZgNCivjgY3jgZfjgarjgb8s44KE44GZ44G+44GVDQor44GN44GdLOOCiOOBl+OBig0KK+OBjeOBnyzjgbLjgafjgYLjgY0NCivjgY3jgZ/jgYzjgo8s44Gq44GK44G/DQor44GN44Gf44GY44G+LOOBsuOCjeOChuOBjQ0KK+OBjeOBn+OBmOOBvizjgZvjgYTjgYsNCivjgY3jgZ/jgoDjgoks44Gu44KK44GTDQor44GN44Gf44GuLOOBqOOBl+OChuOBjQ0KK+OBjeOBn+OBluOBjSzjgZ/jgaDjgZcNCivjgY3jgZ/jgZbjgo8s44Gf44Gk44GXDQor44GN44KI44Gv44KJLOOBpOOBqOOCgA0KK+OBr+OBl+OCguOBqCzjgYrjgZXjgoANCivjga7jgZbjgY0s44G144G/44GN44KIDQor44GT44Gw44KE44GXLOOBteOBv+OBig0KK+OBk+OBsOOChOOBlyzjgb7jgZXjgobjgY0NCivjgZPjgbDjgoTjgZcs44Gq44GK44GNDQor44GT44Gw44KE44GXLOOBn+OBi+OBr+OCiw0KK+OBk+OBsOOChOOBlyzjgZHjgpPjgZgNCivjgZPjgbDjgoTjgZcs44GC44Gk44GXDQor44GT44Gw44KE44GXLOOBiOOBhOOBmA0KK+OBk+OBsOOChOOBlyzjgZXjgaHjgZMNCivjgZPjgbDjgoTjgZcs44GX44KH44GG44GYDQor44GT44Gw44KE44GXLOOBqOOCguOBsuOCjQ0KK+OBk+OBhuOBoSzjgobjgY0NCivjgZPjgaDjgb4s44KE44GZ44Gy44KNDQor44GT44GMLOOBguOBjeOBsuOCjQ0KK+OBqOOBhuOBqeOBhizjgZfjgoXjgYbjgYTjgaENCivjgZPjga/jgoks44Gq44GK44GZ44G/DQor44GT44GyLOOBr+OCi+OBvw0KK+OBk+OCk+OBrizjgbLjgo3jgbXjgb8NCivjgZPjgYTjgZEs44Go44GK44KLDQor44GT44GE44KPLOOBqOOCguOChuOBjQ0KK+OBk+OBhOOBmuOBvyzjgZfjgoXjgYbjgZQNCivjgZPjgZjjgYss44G/44GI44GTDQor44GT44GY44G+LOOBquOBjOOBig0KK+OBk+OBmOOBvizjgorjgaHjgZMNCivjgZPjgZjjgb4s44GL44Ga44Gy44GTDQor44GT44GY44G+LOOBleOBqOOBlw0KK+OBk+OBvuOBpOOBsOOCiSzjgorjgoXjgYbjgZ8NCivjgZPjgb/jgoQs44GN44KI44GXDQor44GT44KC44GgLOOBguOBjeOCiOOBlw0KK+OBk+OCgOOCjSzjgajjgZfjgobjgY0NCivjgZPjgpPjgaks44Gq44Gk44G/DQor44GT44KT44GpLOOBkeOCk+OBmA0KK+OBk+OCk+OBqSzjgZHjgpPjgYTjgaENCivjgZPjgZXjgZEs44GT44GG44GE44GhDQor44GT44GbLOOBn+OBi+OBlw0KK+OBk+OBmeOBjizjgZ/jgZHjgZcNCivjgZPjgZrjgYss44KE44GZ44Gu44KKDQor44GP44G8LOOBr+OCi+OBvw0KK+OBj+OBvCzjgZ/jgZHjgbLjgo0NCivjgY/jgbws44Gq44GK44GNDQor44GP44G8LOOBl+OBkuOBig0KK+OBj+OBvCzjgbLjgo3jgZcNCivjgY/jganjgYYs44G+44KKDQor44GP44Gp44GGLOOBm+OBhOOBhOOBoQ0KK+OBj+OBqeOBhizjgb7jgZXjgY0NCivjgY/jgb7jgYvjgo8s44GR44KT44GYDQor44GP44G+44GP44KJLOOBkeOCk+OBhOOBoQ0KK+OBj+OBvuOBl+OCjSzjgZvjgYTjgYTjgaENCivjgY/jgb7jgZ8s44GX44KN44GGDQor44GP44Gr44KC44GoLOOBmOOCheOCk+OBmA0KK+OBj+OCieOCguOBoSzjgZfjgoXjgYbjgYTjgaENCivjgY/jgonjgZfjgb4s44Gy44KN44GXDQor44GP44KK44Gv44KJLOOBi+OBmuOBsuOCjQ0KK+OBsuOCieOBhCzjgZPjgYbjgZgNCivjgY/jgorjga/jgoks44KI44GX44KG44GNDQor44GP44KK44Gv44KJLOOBi+OBpOOCiA0KK+OBj+OCiuOBr+OCiSzjgobjgYbjgZgNCivjgY/jgorjga/jgoks44Gm44Gk44GKDQor44GP44KK44Gv44GXLOOBv+OBpOOBruOBtg0KK+OBj+OCiuOBmSzjgojjgYbjgZMNCivjgY/jgo3jgaAs44GC44Gk44GXDQor44GP44KN44GgLOOBsuOCjeOChuOBjQ0KK+OBj+OCjeOBjSzjgZ/jgYvjgbLjgo0NCivjgY/jgo3jgY0s44Go44KC44GTDQor44GP44KN44GNLOOBiOOBhOOBmA0KK+OBj+OCjeOCgSzjgb7jgZPjgagNCivjgY/jgo3jgZXjgo8s44GI44GE44GY44KN44GGDQor44GP44KL44G/44KELOOBk+OBhuOBjQ0KK+OBj+OBleOChOOBquOBjizjgb7jgZXjgajjgZcNCivjgY/jgZnjga7jgZss44Gq44GK44GK44G/DQor44GP44KP44Gv44KJLOOBl+OCk+OBmA0KK+OBvuOBoeOBoCzjgojjgYbjgZMNCivjgb7jgaDjgonjgoEs44Go44GX44Gf44GLDQor44G+44GI44GgLOOBleOBqOOBlw0KK+OBvuOBiOOBoCzjgZXjgajjgosNCivjgb7jgYjjgaAs44GX44KT44GE44Gh44KN44GGDQor44G+44GI44GM44KPLOOBteOBv+OBsuOBpw0KK+OBvuOBiOOBr+OCiSzjgY7jgpPjgZgNCivjgb7jgYjjgY3jgZ8s44GL44Ga44GTDQor44G+44GN44GuLOOBn+OBi+OBsuOCjQ0KK+OBl+OBtuOBn+OBqyzjgZPjgYbjgZgNCivjgb7jgarjgbks44KI44GX44Gu44KKDQor44G+44KL44KE44G+LOOBguOBjeOCiQ0KK+OBvuOCi+OChOOBvizjgbLjgo3jgobjgY0NCivjgb7jgovjgoTjgb4s44GR44GE44GE44GhDQor44G+44GV44GK44GLLOOBn+OBi+OBlw0KK+OBvuOBmeOBtuOBoSzjgojjgZfjga7jgooNCivjgb7jgZnjgaAs44KG44GG44GTDQor44G+44GZ44GgLOOCiOOBl+OBr+OCiw0KK+OBvuOBmeOBoCzjgZ/jgYvjgajjgZcNCivjgb7jgZnjgaAs44Gf44GP44KEDQor44G+44GZ44GgLOOBsuOCjeOBi+OBmg0KK+OBvuOBmeOBoCzjgbLjgo3jgY0NCivjgb7jgaTjgbAs44Gu44Ge44G/DQor44Gv44KJLOOBkeOCk+OBmA0KK+OBvuOBpOOBoCzjgZHjgpPjgZgNCivjgb7jgaTjgaAs44Gg44GE44GZ44GRDQor44G+44Gk44G144GYLOOBguOBjeOBig0KK+OBvuOBpOOBteOBmCzjgYvjgZrjgarjgooNCivjgZ/jgaHjgY/jgYQs44G/44GNDQor44G+44Gk44GELOOBl+OCk+OBmA0KK+OBvuOBpOOBi+OCjyzjgZ/jgYvjgbLjgo0NCivjgb7jgaTjgb7jgoss44GX44KF44GG44GV44GPDQor44G+44Gk44KC44GoLOOBguOBjeOBig0KK+OBvuOBpOOCguOBqCzjgYvjgZrjga7jgooNCivjgb7jgaTjgoLjgags44GC44GN44Gy44GTDQor44G+44Gk44KC44GoLOOBruOCiuOBkw0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgZcNCivjgb7jgaTjgoLjgags44Gk44Go44KADQor44GX44GK44Gw44KJLOOBl+OCk+OBhOOBoQ0KK+OBvuOBpOOCgOOCiSzjgZfjgoXjgpPjgYTjgaENCivjgb7jgaTjgoDjgoks44KI44GX44Gu44KKDQor44G+44Gk44Gq44GMLOOChuOBjeOBkw0KK+OBvuOBpOOBquOBjCzjgb7jgZXjgbLjgo0NCivjgb7jgaTjgarjgb8s44KI44GX44GTDQor44G+44Gk44GKLOOBqOOBl+OChA0KK+OBvuOBpOOBiizjgajjgoLjgbLjgo0NCivjgb7jgaTjgYrjgYss44GI44GE44GTDQor44Gv44KE44GX44GgLOOBi+OBmuOBsuOCjQ0KK+OBvuOBpOOBiuOBiyzjgZvjgYTjgYTjgaENCivjgYLjgZzjgoTjgarjgY4s44Gb44GE44GYDQor44G+44Gk44GK44GLLOOBl+OCk+OBlA0KK+OBvuOBpOOBiuOBiyzjgbLjgo3jgYLjgY0NCivjgb7jgaTjgZss44Gf44GL44KG44GNDQor44G+44Gk44GX44G+LOOBkeOCk+OBmA0KK+OBvuOBpOOBl+OBnyzjgZPjgYbjgZgNCivjgb7jgaTjgZ/jgass44GX44KT44GYDQor44G+44Gk44KP44GLLOOBleOBqOOBlw0KK+OBvuOBpOOChOOBvizjgYLjgY3jgokNCivjgb7jgaTjgZbjgY0s44GN44GP44GKDQor44G+44Gk44Gq44GMLOOBvuOBk+OBqA0KK+OBu+OCk+OBqizjgY3jgo/jgoANCivjgoHjgYvjgZ8s44GR44KT44GYDQor44G/44GL44GY44KKLOOBjeOCh+OBhuOBkw0KK+OBv+OBi+OBvyzjgZfjgpPjgZnjgZENCivjgb/jgYvjgb8s44Gy44Gn44GKDQor44G/44GNLOOBvuOBleOChuOBjQ0KK+OBv+OBv+OBnyzjgb/jgaHjgo0NCivjgb/jgarjgY/jgaEs44G144G/44Gv44KLDQor44G/44Gq44G/LOOBleOBqOOBlw0KK+OBv+OBquOBvyzjgajjgoLjgobjgY0NCivjgb/jgarjgb8s44GC44GN44KJDQor44G/44Gq44GoLOOBl+OCh+OBhuOBmA0KK+OBv+OBrSzjgojjgZfjgZ/jgYsNCivjgb/jga0s44GC44Gk44GXDQor44G/44GX44G+LOOBk+OBhuOBmA0KK+OBv+OBl+OBvizjgYrjgZXjgoANCivjgb/jgZ3jga4s44Gy44KN44Gy44GVDQor44G/44Gf44KA44KJLOOBvuOBleOBqOOBlw0KK+OBv+OBn+OCk+OBoCzjgZHjgpPjgYTjgaENCivjgb/jgaTjgbws44KI44GX44GL44GaDQor44G/44Gk44G844GXLOOBqOOBl+OBsuOCjQ0KK+OBr+OBmeOCgOOCiSzjgajjgZfjgbXjgb8NCivjgb/jgaTjga/jgZcs44Gy44KN44G/44GkDQor44GX44Gq44GgLOOBsuOCjeOChuOBjQ0KK+OBv+OBpOOBvizjgYvjgZrjgbLjgagNCivjgb/jgoTjga/jgoks44GY44Gk44KEDQor44G/44KE44Gv44KJLOOBsuOBp+OBr+OCiw0KK+OBv+OChOOBhCzjgb/jgYjjgZMNCivjgb/jgoTjgZjjgb4s44KG44GL44GTDQor44G/44KE44KC44GoLOOBi+OBmuOBquOCig0KK+OBv+OChOOCguOBqCzjgbLjgafjga7jgooNCivjgb/jgoTjgZfjgZ8s44Gy44KN44KG44GNDQor44G/44KE44GfLOOBsuOCjeOChuOBjQ0KK+OBv+OChOOBnyzjgYvjgYrjgosNCivjgb/jgoTjgYbjgaEs44GR44KT44GYDQor44G/44KE44GG44GhLOOBiuOBleOCgA0KK+OBv+OChOOBhuOCiSzjgZ/jgZHjgbLjgZUNCivjgb/jgoTjgZbjgY0s44Gf44GR44GXDQor44Gv44GX44GQ44GhLOOBl+OBkuOBjQ0KK+OBv+OChOOBluOCjyzjgZPjgYbjgZgNCivjgb/jgoTjgZbjgo8s44GC44GN44GKDQor44G/44KE44GaLOOChOOBmeOBsuOBqA0KK+OBv+OBnuOBi+OBvyzjgZjjgoXjgpPjgYTjgaENCivjgb/jgZrjga4s44Gm44Gk44Gy44GTDQor44G/44Ga44GuLOOBqOOBl+OChuOBjQ0KK+OBv+OBmuOBn+OBqyzjga7jgbbjgobjgY0NCivjgoLjgaHjgaAs44GC44GN44Gy44KNDQor44KC44Gh44Ga44GNLOOBguOBjeOBig0KK+OCguOBoeOBmuOBjSzjgZjjgo3jgYYNCivjgb/jgojjgZcs44Gf44GL44GXDQor44KC44KKLOOBvuOBleOBjQ0KK+OCguOCiizjgb7jgZXjgZcNCivjgoLjgoos44Gg44GE44GE44GhDQor44KC44KKLOOBvuOBleOChuOBjQ0KK+OCguOCiizjgabjgaTjgoQNCivjgoLjgoos44Gy44KN44GL44GaDQor44KC44KKLOOBpOOBreOBguOBjQ0KK+OCguOCiizjgYTjgZrjgb8NCivjgoLjgoos44Gy44KN44GL44GaDQor44KC44KK44GQ44GhLOOBsuOCjeOBjQ0KK+OCguOCiuOBi+OCjyzjgZPjgYbjgZgNCivjgoLjgorjgarjgYws44G+44GV44GXDQor44KC44KK44GV44GNLOOBguOBkeOBvw0KK+OCguOCiuOBnyzjgojjgYbjgYTjgaENCivjgoLjgorjgZ8s44GI44GE44GYDQor44KC44KK44KELOOCgOOBpOOBig0KK+OCguOCiuOChOOBvizjgbLjgafjgYoNCivjgoLjgabjgY4s44G/44Gk44Gy44KNDQor44KC44Go44GNLOOBj+OBq+OBsuOCjQ0KK+OBr+OBjuOCj+OCiSzjga7jgbbjgojjgZcNCivjgoDjgYvjgYTjgaAs44GX44GTDQor44KA44Gt44Gy44KNLOOBsuOBp+OChuOBjQ0KK+OCgOOBreOBi+OBnyzjgYvjgZrjgojjgZcNCivjgoDjgonjgYvjgb8s44Gk44KI44GXDQor44KA44KJ44GL44G/LOOChOOBmeOBsuOCjQ0KK+OCgOOCieOBi+OBvyzjgoTjgZnjgYoNCivjgoDjgonjgZPjgZcs44Gy44KN44GTDQor44KA44KJ44G+44GkLOOBvuOBleOBqA0KK+OCgOOCieOBrOOBjSzjgZHjgYTjgZgNCivjgoDjgonjgZ8s44KG44GN44KC44GoDQor44KA44KJ44GfLOOBvuOBleOBjQ0KK+OCgOOCieOBnyzjgZvjgYTjgZgNCivjgoDjgonjgoTjgb4s44KI44GX44Gv44KLDQor44KE44G+44GX44GfLOOBguOBjeOBsuOCjQ0KK+OCgOOCjeOBnyzjgbLjgo3jgYvjgZoNCivjgb/jgofjgYbjgZjjgpMs44G/44Gh44GKDQor44Gq44GM44GELOOBruOCiuOBkw0KK+OBquOBjOOBrOOBvizjgobjgY3jgYoNCivjgarjgYzjgYos44GI44KKDQor44Gq44GM44GK44GLLOOBv+OBuw0KK+OBquOBjOOBleOCjyzjgYvjgYrjgosNCivjgarjgYzjgZfjgb4s44Gf44GL44GXDQor44Gq44GM44GX44G+LOOCiOOBl+OBi+OBmg0KK+OBquOBjOOBnyzjgojjgZfjgoTjgZkNCivjgarjgYzjgZ8s44Gh44GI44GTDQor44Gv44Gb44GM44KPLOOBsuOCjeOBguOBjQ0KK+OBhOOBjOOCieOBlyzjgYvjgZrjgbLjgo0NCivjgarjgYzjgoTjgb4s44GR44KT44GYDQor44Gq44GM44KI44GXLOOBvuOBleOBi+OBpA0KK+OBquOBhOOBqOOBhizjgb7jgZXjgY0NCivjgarjgYvjgbDjgoTjgZcs44G+44GV44Gu44KKDQor44Gq44GL44GM44KPLOOBl+OCk+OBhOOBoQ0KK+OBquOBi+OBlOOCgSzjgZXjgajjgZcNCivjgarjgYvjgZfjgb4s44Go44GX44GC44GNDQor44Gq44GL44GY44G+LOOChOOBmeOBvuOBlQ0KK+OBquOBi+OBmOOBvizjgobjgYbjgZMNCivjgarjgYvjgZjjgb4s44Gm44KL44G/DQor44Gq44GL44GY44G+LOOBj+OCieOBqA0KK+OBquOBi+OBmOOBvizjgobjgYbjgZgNCivjgarjgYvjgY/jgY0s44GX44KT44GE44Gh44KN44GGDQor44Gq44GL44G+44KLLOOCiuOBiw0KK+OBquOBi+OBv+OBoSzjgb/jgYsNCivjgarjgYvjgoLjgags44KG44GN44Gy44KNDQor44Gq44GL44KC44GoLOOBsuOCjeOBi+OBmg0KK+OBquOBi+OCguOBqCzjgbLjgo3jgobjgY0NCivjgo/jgZ/jgarjgbks44Gy44KN44G144G/DQor44Gq44GL44KA44KJLOOBvuOBleOBquOCig0KK+OBquOBi+OCgOOCiSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgarjgYvjgoDjgoks44Gb44GE44GYDQor44Gq44GL44KA44KJLOOBi+OBmuOBruOCig0KK+OBquOBi+OCgOOCiSzjgobjgYbjgZgNCivjgarjgYvjgoDjgoks44Gm44KL44KG44GNDQor44Gv44GO44KP44KJLOOBleOBqOOBkw0KK+OBquOBi+OCgOOCiSzjgb7jgY3jgZMNCivjgarjgYvjgoDjgoks44Gy44Gn44KG44GNDQor44Gq44GL44KA44KJLOOBpuOBpOOChA0KK+OBquOBi+OCgOOCiSzjgZHjgpPjgZ8NCivjgarjgYvjga4s44KE44GZ44GXDQor44Gq44GL44GKLOOChuOBhuOBkw0KK+OBquOBi+OBiizjgbLjgo3jgobjgY0NCivjgarjgYvjgYrjgYss44Go44KC44KG44GNDQor44Gq44GL44GX44G+LOOBleOBqOOBlw0KK+OBq+OBl+OBmOOBvizjgZ/jgYvjgZcNCivjgarjgYvjgoQs44KP44Gf44KLDQor44Gq44GL44KE44G+LOOBsuOCjeOBlw0KK+OBquOBi+OBluOBqCzjgYvjgaTjgYLjgY0NCivjgarjgb7jgZ/jgoEs44G+44KC44KLDQor44Gq44KB44KJLOOCguOCiuOBsuOBqA0KK+OBquOBquOBvyzjgZ/jgaDjgajjgZcNCivjgarjgpPjgbAs44Gf44GL44GKDQor44Gq44KTLOOBkeOBhOOBmeOBkQ0KK+OBquOCk+OBvSzjgYLjgY3jgokNCivjgarjgonjgbYs44Gy44Gn44GNDQor44Gq44KK44Gv44KJLOOBsuOCjeOBvw0KK+OBquOCiuOBqOOBvyzjgarjgYrjgY0NCivjgarjgovjgZfjgb4s44G+44GT44GoDQor44Gq44GZ44GL44KPLOOBmOOCheOCk+OChA0KK+OBquOBqOOCiizjgZHjgpPjgoQNCivjga3jgY7jgZcs44GI44G/44GTDQor44Gt44KC44GoLOOBhOOBmuOBvw0KK+OBq+OBiOOBoCzjgajjgYrjgosNCivjgavjgYTjgZjjgb4s44G+44GT44GoDQor44Gr44GE44GP44KJLOOBvuOBleOCiw0KK+OBq+OBhOOBpOOBvizjgZHjgpPjgZgNCivjgavjgYTjgZbjgo8s44KI44GX44Gu44KKDQor44Gr44GX44GgLOOBsuOCjeOBsuOBqA0KK+OBq+OBl+OBoCzjgZ/jgZHjgZcNCivjgavjgZfjgaAs44GI44GE44GYDQor44Gr44GX44GgLOOBsuOBp+OBqA0KK+OBsuOBoOOBiyzjgobjgY3jgb7jgZUNCivjgavjgZfjgaAs44KE44GZ44GKDQor44Gr44GX44GL44GpLOOBguOBpOOBlw0KK+OBq+OBl+OBi+OCjyzjgYjjgYTjgZjjgoUNCivjgavjgZfjgYvjgo8s44Go44KC44GC44GNDQor44Gr44GX44GL44KPLOOBvuOBleOBruOBtg0KK+OBq+OBl+OCguOBqCzjgbLjgafjgoQNCivjgavjgZfjgoDjgoks44G+44GV44Gu44KKDQor44Gr44GX44GqLOOBjeOCiOOBlw0KK+OBq+OBl+OBrizjgbLjgo3jgYvjgZoNCivjgavjgZfjgZ8s44G/44GNDQor44G144GL44G/LOOBi+OBmuOCiA0KK+OBq+OBl+OCj+OBjSzjgZ/jgZHjgbLjgZMNCivjgavjgZfjgoTjgb4s44GL44Gk44GXDQor44Gr44GX44KE44G+LOOBsuOBqOOBlw0KK+OBq+OBl+OBluOCjyzjgojjgZfjgbLjgo0NCivjgavjgaPjgZ8s44Gy44KN44KI44GXDQor44Gr44KP44GfLOOBu+OBmuOBvw0KK+OBq+OCj+OChOOBvizjgaHjgZoNCivjga7jgYLjgb8s44GP44Gr44GTDQor44Gu44G844KK44Gf44GmLOOBvuOBquOBtg0KK+OBruOBoCzjgZ/jgYvjgobjgY0NCivjga7jgYzjgo8s44Gy44KN44KEDQor44Gu44GQ44GhLOOBqOOCguOBguOBjQ0KK+OBruOBkOOBoSzjgZ/jgYvjgZcNCivjga7jgZjjgoos44Gy44KN44KG44GNDQor44Gu44KC44GoLOOChuOBhuOBkw0KK+OBruOCgOOCiSzjgb/jgY3jgZMNCivjga/jgoTjgZXjgYss44GL44Ga44Gy44KNDQor44Gu44KA44KJLOOBvuOBleOBsuOCjQ0KK+OBruOBqCzjgZ3jga7jgb8NCivjga7jgZbjgY0s44Go44GX44KEDQor44GT44GV44GLLOOChOOBmeOBlw0KK+OBiuOBsOOBqizjgYLjgoTjgZMNCivjgYrjgaEs44G+44GV44Gm44KLDQor44GK44GgLOOBr+OCi+OBruOBtg0KK+OBiuOBjOOBleOCj+OCiSzjgYvjgZrjgabjgosNCivjgYrjgYzjgZ8s44Gy44KN44KE44GZDQor44GP44GNLOOChuOBn+OBiw0KK+OBiuOBi+OBoCzjgbLjgo3jgYLjgY0NCivjgYrjgYzjgo8s44Gy44KN44KG44GNDQor44GK44GM44KPLOOBvuOBleOChuOBjQ0KK+OBiuOBjOOCjyzjgoTjgZnjga7jgooNCivjgYrjgY7jga/jgoks44GL44Ga44Go44GXDQor44GK44GO44GuLOOBk+OBhuOBhOOBoQ0KK+OBiuOBtizjgb/jgYsNCivjgYrjgYrjga/jgoks44Gf44Gg44Gy44GTDQor44Gv44G+44KC44GoLOOChOOBmeOBkw0KK+OBiuOBiuOBr+OCiSzjgobjgYbjgZgNCivjgYrjga/jgZcs44GV44Go44GXDQor44GK44GK44GL44KPLOOBvuOBleOBqA0KK+OBiuOBiuOBj+OBvCzjgb7jgZXjgYLjgY0NCivjgYrjgYrjgb/jgoQs44Gb44GE44GYDQor44GK44GK44KC44KKLOOBpuOBpOOChA0KK+OBiuOCgOOCiSzjgorjgofjgYbjgYTjgaENCivjgYrjgYrjgavjgZcs44G+44GV44Gf44GLDQor44GK44GK44GuLOOBsuOCjeOChOOBmQ0KK+OBiuOBiuOBrOOBjSzjgYvjgZrjgYoNCivjgYrjgYrjgZXjgY0s44GV44Go44GXDQor44GK44GK44GV44GNLOOChuOBhuOBkw0KK+OBiuOBiuOBleOCjyzjgZfjgo3jgYYNCivjgYrjgZfjgb4s44Gf44GR44GXDQor44GK44GX44G+LOOBn+OBi+OBig0KK+OBiuOBl+OBvizjgaTjgajjgoANCivjgYrjgYrjgZ8s44KE44GZ44GKDQor44GK44GK44GfLOOBruOBtuOBsuOCjQ0KK+OBiuOBiuOBnyzjgb/jgYsNCivjgYrjgYrjgZ8s44Gy44KN44GXDQor44GC44KT44Gp44GGLOOBkeOCk+OBhOOBoQ0KK+OBiuOBn+OBiyzjgZ/jgYvjgYLjgY0NCivjgYrjgYrjgZ/jgY0s44G144Go44GXDQor44GK44GK44Gf44GrLOOBi+OBmuOBsuOBkw0KK+OBiuOBiuOBn+OBqyzjga7jgorjgbLjgZUNCivjgYrjgYrjgZ/jgass44G+44GV44GL44GaDQor44Gv44KE44GXLOOChuOBjeOBkw0KK+OBiuOBiuOBpOOBvCzjgZ/jgZHjgbLjgZUNCivjgYrjgYrjgaTjgYss44KI44GX44Gu44KKDQor44GK44GK44Gk44GLLOOBiOOBhOOBjQ0KK+OBiuOBiuOBpOOBiyzjgYLjgaTjgZcNCivjga/jgoTjgZcs44GI44G/44GTDQor44GK44GK44Gk44KLLOOBv+OBoeOBiA0KK+OBiuOBteOBoSzjgajjgZfjgZMNCivjgYrjgYrjgo8s44Gf44GR44GXDQor44GK44GK44KELOOCgOOBreOBig0KK+OBiuOBmOOBiizjgbXjgb/jga7jgbYNCivjgYrjgYss44G+44GV44Go44GXDQor44GK44GL44G5LOOBguOChuOCgA0KK+OBiuOBi+OBoCzjgb7jgZXjgY0NCivjgYrjgYvjgaAs44Gf44GL44KEDQor44GK44GL44GgLOOBqOOBiuOCiw0KK+OBiuOBi+OBoCzjgbLjgo3jgobjgY0NCivjgYrjgYvjgoLjgags44Gf44GL44KG44GNDQor44GK44GL44KC44GoLOOChuOBhg0KK+OBiuOBi+OCguOBqCzjgajjgoLjgobjgY0NCivjgYrjgYvjgoDjgoks44Gy44KN44GP44GrDQor44GK44GL44KA44KJLOOBkeOBhOOBhOOBoQ0KK+OBiuOBi+OBluOBjSzjgbLjgo3jgajjgZcNCivjgYrjgYvjgZbjgY0s44GT44GG44Gf44KN44GGDQor44GK44GN44GuLOOBi+OBiuOCiw0KK+OBiuOBj+OBoCzjga/jgZjjgoENCivjgYrjgY/jgaAs44G+44GV44Gu44KKDQor44GK44GP44GM44KPLOOBmOOCheOCk+OBhOOBoQ0KK+OBr+OBjuOBr+OCiSzjgZHjgpPjgZgNCivjgYrjgY/jgYbjgaEs44KA44Gt44GXDQor44GK44GK44G/LOOBguOChOOBkw0KK+OBiuOCgOOCiSzjgbLjgajjgZcNCivjgYrjgpPjgaAs44GL44Ga44Gy44KNDQor44GK44GK44GuLOOChuOBn+OBiw0KK+OBiuOBiuOBrizjgbLjgofjgYbjgZ7jgYYNCivjgYrjgYrjga4s44G/44Gu44KLDQor44GK44GK44GuLOOBl+OCheOCk+OBmeOBkQ0KK+OBiuOBruOBp+OCiSzjgb7jgZXjgbLjgZMNCivjgYrjga7jgafjgoks44KI44GX44Gu44KKDQor44GK44Gu44Gn44KJLOOBqOOBl+OBig0KK+OBiuOBruOCgOOCiSzjgb/jga7jgosNCivjgYrjga7jgZbjgo8s44GX44KT44KEDQor44GK44GK44Gs44GNLOOBpuOBpOOCjeOBhg0KK+OBiuOBrizjgZ/jgYvjgYLjgY0NCivjgYrjgYrjgoTjgb4s44Gy44Go44GXDQor44GK44KK44GpLOOBsuOBp+OBguOBjQ0KK+OBiuOCiuOBl+OBjeOBoCzjgZPjgYbjgYTjgaENCivjgYrjgYrjgZXjgYss44Gf44Gg44GKDQor44GK44KE44G+LOOBn+OBhOOBoQ0KK+OBiuOBluOBjSzjgZ/jgaTjgoQNCivjgYrjgZbjgY0s44KI44GX44G+44GVDQor44GK44GW44KPLOOChuOBhuOBmeOBkQ0KK+OBk+OBluOCjyzjgbLjgo3jgZcNCivjgYrjgZbjgo8s44G+44GV44Gv44KLDQor44GK44GW44KPLOOBn+OBkeOBlw0KK+OBr+OBn+OBquOBiyzjgb/jgaTjgbLjgo0NCivjgZXjgYjjgY0s44KK44KH44GG44GTDQor44GV44GE44GgLOOCguOCguOBkw0KK+OBleOBhOOBkOOBlSzjgbLjgo3jgZcNCivjga/jgpPjgaAs44Gf44GR44GXDQor44GV44GE44Go44GGLOOChOOBmeOBqOOCgg0KK+OBleOBhOOBqOOBhizjgb7jgZXjgbLjgZUNCivjgZXjgYTjgajjgYYs44GX44GS44Gy44GoDQor44GV44GL44GhLOOBvuOBleOBig0KK+OBleOBi+OBkOOBoSzjgZPjgYbjgZgNCivjgZXjgYvjgYQs44G/44Gu44KLDQor44GV44GL44GELOOBk+OBhuOBnuOBhg0KK+OBsuOCieOBrizjgYLjgY3jgbLjgo0NCivjgZXjgYvjgYQs44GC44GN44KJDQor44GV44GL44GELOOBsuOCjeOBvw0KK+OBleOBi+OBhCzjgb/jgY3jgYoNCivjgZXjgYvjgYQs44Gq44GK44GNDQor44GV44GL44KC44GoLOOBn+OBi+OBlw0KK+OBleOBi+OCguOBqCzjgoTjgZnjgbLjgo0NCivjgbLjgo3jgZss44KI44GX44GC44GNDQor44GV44GL44KC44GoLOOCiOOBhuOBjeOBoQ0KK+OBleOBi+OBnyzjgajjgoLjgZgNCivjgY3jgZfjgaAs44Gy44KN44GC44GNDQor44GV44GTLOOBguOBi+OBlw0KK+OBleOBj+OBvizjgb7jgZXjgosNCivjgZXjgY/jgonjgbAs44GI44G/DQor44GV44GP44KJ44GELOOBr+OCi+OBvw0KK+OBleOBj+OCieOChOOBvizjgbLjgo3jgZcNCivjgZXjgoHjgZfjgb4s44GL44Ga44KI44GXDQor44GV44KT44G5LOOBvuOBk+OBqA0KK+OBleOCi+OCj+OBn+OCiizjgb7jgZXjgY0NCivjga/jgZvjgYzjgo8s44G+44GV44GoDQor44GV44GV44GILOOBquOBiuOBjQ0KK+OBleOBleOBr+OCiSzjgorjgofjgYbjgZgNCivjgZXjgZXjgY0s44Gf44GL44G+44GVDQor44GV44GV44GNLOOBn+OBi+OBlw0KK+OBleOBleOBjSzjgobjgZ/jgYsNCivjgZXjgZXjgY0s44KG44GN44GTDQor44Gv44Gz44KNLOOChuOBn+OBiw0KK+OBleOBleOBiizjgYvjgZrjgZfjgZINCivjgZXjgZXjgYrjgYss44Go44KC44GTDQor44GV44GV44Gf44GrLOOCiOOBl+OBvw0KK+OBleOBnyzjgajjgoLjgb8NCivjgZXjgZ/jgZEs44Go44GX44GNDQor44GV44Go44GGLOOBmOOCheOCkw0KK+OBu+OBl+OBrizjgZHjgYTjgZgNCivjgZXjgajjgYYs44G+44GV44Gv44KLDQor44Gv44Gj44Go44KKLOOBl+OCk+OChA0KK+OBleOBqOOBhizjgajjgYrjgosNCivjgZXjgajjgYYs44GX44GS44GNDQor44GV44Go44GGLOOChuOBjeOBn+OBiw0KK+OBleOBqOOBhizjgorjgofjgYbjgYTjgaENCivjgZXjgajjgYYs44Gf44Gk44GNDQor44GV44Go44GGLOOBkeOBhOOBmA0KK+OBleOBqOOBhizjgb7jgorjgYoNCivjgZXjgajjgYYs44Go44GX44GC44GNDQor44GV44Go44GGLOOBkeOBhOOBhOOBoQ0KK+OBsuOCieOBrizjgbLjgo3jgYLjgY0NCivjgZXjgajjgYYs44Gy44KN44KG44GNDQor44GV44Go44GGLOOChOOBmeOBruOCig0KK+OBleOCj+OBoCzjgZHjgYTjgYTjgaENCivjgZXjgo/jgaAs44GT44GG44G444GEDQor44GV44KP44G144GYLOOBn+OBi+OBsuOCjQ0KK+OBleOCj+OBjSzjgZPjgYbjgbjjgYQNCivjgZXjgo/jgoDjgoks44Gy44KN44GXDQor44Gb44GM44KPLOOBl+OCk+OBn+OCjeOBhg0KK+OBm+OBjOOCjyzjgYvjgZrjgY0NCivjgZvjgY0s44KK44Gk44GTDQor44Gb44GNLOOBn+OBhOOBoQ0KK+OBm+OBjeOBkOOBoSzjgbLjgZXjgZcNCivjgZvjgY3jga0s44GL44Ga44GC44GNDQor44Gb44GN44GtLOOBi+OBpOOBvw0KK+OBsuOCieOBrizjgYjjgYTjgYTjgaENCivjgZvjgpPjgZTjgY8s44KE44GZ44GXDQor44Gb44GKLOOBsuOCjeOBlw0KK+OBm+OCiSzjgZ/jgaDjgZcNCivjgZvjgoks44Gy44KN44GL44GkDQor44GX44Gw44Gv44KJLOOBi+OBmuOBrg0KK+OBl+OBsOOBnyzjgYvjgZrjgbLjgZMNCivjgZfjgbDjgZ8s44Go44KC44Gy44KNDQor44Gv44Gb44GM44KPLOOBqOOCguOBv+OBpA0KK+OBl+OBsOOBnyzjgobjgZ/jgYsNCivjgZfjgbDjgZ8s44G+44GV44Gf44GRDQor44GX44Gw44GfLOOBvuOBleOChuOBjQ0KK+OBl+OBsOOBluOBjSzjgb7jgZXjgZMNCivjgZfjgbbjgZ/jgass44Go44KC44Gv44KLDQor44GX44G244KELOOBqOOCguOBi+OBpA0KK+OBl+OBoeOBsuOCh+OBhizjgY3jgb/jgYLjgY0NCivjgZfjgY0s44G+44GV44KLDQor44GX44GN44GX44G+LOOBn+OBkeOBlw0KK+OBl+OBvizjgYLjgY3jgZMNCivjgZfjgb4s44GT44GZ44GRDQor44GX44G+44GgLOOBi+OBpOOBsuOCjQ0KK+OBl+OBvuOBrOOBjSzjgZ/jgYvjgZcNCivjgZfjgb7jgYrjgYss44KE44GZ44Gf44GLDQor44GX44G+44GX44GfLOOBquOBiuOBsuOCjQ0KK+OBl+OBvuOBmizjgZHjgYTjgYTjgaENCivjgZfjgb/jgZos44Gy44Gn44GNDQor44GX44G/44GaLOOBkeOBhOOBmeOBkQ0KK+OBr+OBm+OBjOOCjyzjgaHjgYjjgZMNCivjgZfjgb/jgZos44G+44GV44GKDQor44GX44G/44GaLOOChuOCiuOBkw0KK+OBl+OBv+OBmizjgYvjgZrjgbLjgZUNCivjgZfjgoLjgYzjgYQs44Go44GX44GTDQor44GX44KC44GL44KP44G5LOOBguOBjeOBsuOCjQ0KK+OBl+OCguOBiuOBiyzjgYLjgY3jgbLjgo0NCivjgZfjgoLjgZXjgYss44Gy44Gn44KG44GNDQor44GX44KC44KE44G+LOOBpuOBpOOChA0KK+OBl+OCk+OBvOOCiizjgbLjgo3jgYgNCivjgZfjga7jga/jgoks44Gq44GK44Gf44GLDQor44GX44Gu44Gv44KJLOOBsuOBleOBqOOBlw0KK+OBl+OBruOBluOBjSzjgbLjgo3jgZcNCivjgZfjga7jgZbjgY0s44KI44GX44GTDQor44GX44Gu44Ga44GLLOOBkeOCk+OBhOOBoQ0KK+OBl+OCk+OChCzjgbLjgafjgZMNCivjgZfjgYrjgZ8s44GY44KF44KT44GN44GhDQor44GX44GK44Gf44GrLOOBkeOCk+OBmA0KK+OBl+OBiuOChCzjgajjgYrjgosNCivjgZfjgonjga/jgb4s44G/44Gh44Gy44GVDQor44GX44KJ44GELOOBv+OBiw0KK+OBl+OCieOBhOOBlyzjgb/jgZUNCivjgZfjgonjgYTjgZcs44KE44GZ44Gy44GoDQor44GX44KJ44GE44GXLOOBpOOBqOOCgA0KK+OBl+OCieOBjSzjgZHjgYTjgZnjgZENCivjgZfjgonjgZXjgY0s44GL44Ga44KG44GNDQor44GX44KH44GG44Gq44GULOOBn+OBi+OBl+OBkg0KK+OBiuOBiuOChOOBvizjgb/jgYsNCivjgZfjgoXjgajjgYYs44Gy44KN44GNDQor44GX44KC44GE44GaLOOCiOOCiuOBqA0KK+OBneOBiOOBoCzjgZ/jgY/jgb8NCivjgbvjgorjga4s44Gy44KN44GL44GkDQor44Gd44Go44GY44G+LOOBteOBqOOBlw0KK+OBmeOBoCzjgoHjgYTjgZjjgo3jgYYNCivjgZnjgaAs44GT44GG44GTDQor44GZ44Gp44GGLOOBsuOBp+OBsuOBqA0KK+OBmeOBjCzjga/jgZjjgoENCivjgZnjgYzjgazjgb4s44Gy44KN44GL44GaDQor44GZ44GM44KP44KJLOOBkeOBhA0KK+OBmeOBjuOBsOOChOOBlyzjgb7jgZXjgajjgZcNCivjgZnjgY7jgoLjgags44G/44GLDQor44GZ44GO44KC44GoLOOBruOBtuOBkw0KK+OBmeOBjuOCgOOCiSzjga7jgorjgbLjgZMNCivjgZnjgY7jga4s44GV44Go44KLDQor44GZ44GO44GV44GNLOOBl+OCk+OBhOOBoQ0KK+OBmeOBjuOBleOCjyzjgZ/jgYvjgYoNCivjgZnjgY7jgZ8s44Gf44GL44KG44GNDQor44Gv44KE44GXLOOBn+OBvw0KK+OBmeOBjuOBhuOCiSzjgajjgYrjgosNCivjgZnjgY7jgoTjgb4s44Go44GX44KEDQor44GZ44GO44KE44G+LOOBl+OCk+OBmA0KK+OBmeOBlCzjgoTjgZnjgYoNCivjgZnjgYTjgZ8s44KI44GX44Gy44GVDQor44GZ44G/44GgLOOBguOBpOOBlw0KK+OBmeOBv+OBi+OCjyzjgZXjgajjgZcNCivjgZnjgarjgYws44Go44GK44KLDQor44GZ44Gu44Gv44KJLOOBvuOBleOBvw0KK+OBmeOBmuOBjSzjgYLjgY3jgokNCivjgZnjgZrjgY0s44Go44KC44KG44GNDQor44GZ44Ga44GNLOOCiOOBl+OChuOBjQ0KK+OBmeOBmuOBjSzjgb7jgZXjgbXjgb8NCivjgZnjgZrjgY0s44GX44KH44GG44GUDQor44GZ44Ga44GNLOOBn+OBkeOBsuOCjQ0KK+OBmeOBmuOBjSzjgojjgZfjga7jgooNCivjgZnjgZrjgY0s44GL44Ga44G1DQor44GZ44Ga44GNLOOBguOBjeOBkw0KK+OBmeOBmuOBjSzjgYvjgaTjgbLjgZMNCivjgZnjgZrjgY0s44GX44GS44KLDQor44KE44G+44GL44KPLOOBn+OBpOOBig0KK+OBmeOBmuOBjSzjgYLjgZXjgZMNCivjgZnjgZrjgY0s44GC44GN44Gy44GTDQor44Gv44GMLOOBsuOCjeOBi+OBmg0KK+OBmeOBmuOBjSzjgYTjgZXjgagNCivjgZnjgZrjgY0s44GL44GK44KKDQor44GZ44Ga44GuLOOBi+OBpOOBteOBvw0KK+OBl+OCheOBqOOBhizjgY/jgavjgbLjgacNCivjgZ/jgbDjgoks44G+44GTDQor44Gf44GgLOOBvuOBleOCiw0KK+OBr+OCiuOBjOOBhCzjgZ/jgYvjga7jgbYNCivjgZ/jgaAs44G+44GV44KG44GNDQor44Gf44GM44GX44KJLOOBv+OBquOBkw0KK+OBn+OBkOOBoSzjgb/jgobjgY0NCivjgZ/jgZDjgaEs44Gu44G244GC44GNDQor44Gf44GY44G+LOOBl+OCk+OBmA0KK+OBn+OBmOOBvizjgZfjgpPjgZgNCivjgbvjgaPjgZ8s44GX44KF44KT44GE44GhDQor44Gf44GL44GgLOOBqOOCguOBruOCig0KK+OBn+OBi+OBjizjgajjgZfjgYvjgZoNCivjgZ/jgYvjgY4s44KI44GG44GE44GhDQor44Gf44GL44GOLOOChuOBhuOBkw0KK+OBn+OBi+OBr+OBlyzjgYjjgYTjgZMNCivjga/jgZfjgZDjgaEs44Gy44KN44GC44GNDQor44Gf44GL44Gv44GXLOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgarjgYrjgb8NCivjgZ/jgYvjga/jgZcs44Gy44KN44G/44GhDQor44Gf44GL44Gv44GXLOOBi+OBpOOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgZMNCivjgZ/jgYvjga/jgZcs44GL44Ga44GKDQor44Gf44GL44Gv44GXLOOBqOOCguOBsuOCjQ0KK+OBr+OBm+OBjOOCjyzjgabjgovjgYoNCivjgZ/jgYvjga/jgZcs44GR44KT44Gf44KN44GGDQor44Gf44GL44Gv44GXLOOBsuOBp+OBruOCig0KK+OBn+OBi+OBr+OBlyzjgYvjgaTjgb8NCivjgZ/jgYvjga/jgZcs44GX44KT44GE44GhDQor44Gf44GL44Gv44GXLOOCiOOBl+OBv+OBpA0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgbLjgo0NCivjgZ/jgYvjga/jgZcs44GE44Gh44Gf44KN44GGDQor44Gf44GL44Gv44GXLOOBguOBpOOBruOCig0KK+OBn+OBi+OBr+OBlyzjgZHjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44G144GV44Gy44GTDQor44GK44GK44G/LOOBkeOCk+OBmA0KK+OBn+OBi+OBsuOCiSzjgb/jga7jgosNCivjgZ/jgYvjgYQs44KI44GX44Go44KCDQor44Gf44GL44G/44KELOOBk+OBhuOBmA0KK+OBn+OBi+OBquOBlyzjgorjgbsNCivjgZ/jgYvjga4s44G/44GN44GTDQor44Gf44GL44GuLOOCiOOBl+OBsuOCjQ0KK+OBn+OBi+OBrizjgZ/jgb7jgogNCivjgZ/jgYvjga4s44KI44GX44Gy44GoDQor44Gf44GL44GuLOOBguOBjeOBsuOCjQ0KK+OBr+OChOOBi+OCjyzjgoLjgajjgbLjgo0NCivjgZ/jgYvjgZfjgb4s44Gf44Gg44GXDQor44Gf44GL44GZLOOBi+OBpOOBruOCig0KK+OBn+OBi+OBqOOBhuOCiizjgbLjgafjgbLjgZMNCivjgZ/jgYvjgajjgoos44G144GV44G/DQor44Gf44GL44KELOOBruOCiuOBguOBjQ0KK+OBn+OBkSzjgYLjgY3jgbLjgo0NCivjgZ/jgZHjgaAs44Gb44GE44GYDQor44Gf44GR44GgLOOBhOOBmuOBvw0KK+OBu+OCiizjgZPjgYbjgZ7jgYYNCivjgZ/jgZHjgaAs44GX44KT44GE44GhDQor44Gf44GR44Gv44KJLOOBsuOBi+OCiw0KK+OBn+OBkeOBhCzjgZfjgpPjgYTjgaENCivjgZ/jgZHjgoLjgags44GC44GNDQor44Gf44GR44KC44GoLOOBguOBjeOBmeOBkQ0KK+OBn+OBkeOBquOBiyzjgZHjgpPjgYTjgaENCivjga/jgoTjgZcs44G+44GV44Gy44GTDQor44Gf44GL44GOLOOBvuOBleOBjQ0KK+OBn+OBkeOBqOOBvyzjgb7jgZXjga7jgooNCivjgZ/jgZHjgYbjgaEs44G/44G7DQor44Gf44GR44GG44GhLOOBv+OBpOOBig0KK+OBn+OBkeOBhuOBoSzjga7jgbbjgojjgZcNCivjgZ/jgZHjgoTjgZks44KM44GE44GYDQor44Gf44GR44GW44KPLOOCiuOCh+OBhuOBmA0KK+OBn+OBjeOBsCzjgZXjgajjgZcNCivjgZ/jgY/jgbws44Gf44GL44Gu44KKDQor44Gv44Gr44KF44GGLOOBpOOCiOOBlw0KK+OBn+OBvuOCiOOCiizjgobjgYbjgZMNCivjgZ/jgoLjgaQs44KG44GG44GfDQor44Gf44KA44KJLOOBsuOCjeOChuOBjQ0KK+OBn+OCgOOCiSzjgYLjgZHjgb8NCivjgZ/jgoDjgoks44GC44GN44KJDQor44Gf44Gq44G5LOOChOOBmeOBruOCig0KK+OBn+OBquOBuSzjgbLjgafjgbLjgZMNCivjgZ/jgarjgYss44Gy44KN44KG44GNDQor44Gf44Gq44GLLOOCiOOBl+OChuOBjQ0KK+OBn+OBquOBiyzjgZPjgYbjgYTjgaENCivjgZ/jgarjgYss44GC44Gk44GXDQor44Gf44GR44GgLOOCiOOBl+OBkw0KK+OBn+OBquOBiyzjgZ/jgaDjgZcNCivjga/jgZvjgYzjgo8s44G+44GV44KLDQor44Gf44Gq44GLLOOBsuOBp+OChuOBjQ0KK+OBn+OBquOBiyzjgZ/jgYvjgojjgZcNCivjgZ/jgarjgYss44G+44Gq44G2DQor44Gf44Gq44GLLOOBi+OBpOOBjQ0KK+OBn+OBquOBiyzjgb7jgZPjgagNCivjgZ/jgarjgYss44KG44GG44GTDQor44Gf44Gq44GLLOOBk+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgojjgZfjgYoNCivjgZ/jgarjgYss44Go44GK44KLDQor44Gf44GrLOOBsuOCjeOBkw0KK+OBv+OBn+OBqyzjgbjjgYTjgZQNCivjgZ/jgavjgZDjgaEs44Gy44Gn44GC44GNDQor44Gv44Gj44Go44KKLOOBsuOCjeOBkw0KK+OBn+OBq+OBkOOBoSzjgZHjgpPjgYTjgaENCivjgZ/jgavjgZDjgaEs44KG44GG44GTDQor44Gf44Gr44GQ44GhLOOBi+OBpOOBsuOBkw0KK+OBn+OBq+OBi+OCjyzjgZHjgpPjgZcNCivjgZ/jgZXjgYss44G+44GT44GoDQor44Gf44GX44G+LOOBkeOBhOOBmeOBkQ0KK+OBn+OBpuOBi+OCjyzjgb7jgZXjgosNCivjgZ/jgabjga4s44GT44GG44GYDQor44Gm44KJ44GY44G+LOOBr+OBmOOCgQ0KK+OBpuOCieOBvuOBiCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgabjgonjgZXjgo8s44G+44GT44GoDQor44Gm44KJ44KE44G+LOOBv+OCiOOBkw0KK+OBpuOBl+OBvizjgYjjgaTjgb7jgZUNCivjgajjgaAs44KC44Go44KG44GNDQor44Go44Go44G/LOOBn+OBkeOBsuOBkw0KK+OBqOOBiuOChOOBvizjgobjgY3jgbLjgZMNCivjgajjgY3jgo8s44Gh44GI44GTDQor44G144GP44KE44G+LOOBkeOCk+OBmA0KK+OBqOOBj+OBluOCjyzjgb7jgZXjgosNCivjgajjgb/jgarjgYws44GT44GG44GYDQor44Go44G/44GfLOOBsuOBp+OBlw0KK+OBqOOBv+OChOOBvizjgYvjgZrjga7jgooNCivjgZXjgo/jgoDjgoks44Gf44Gk44G/DQor44Go44KK44GU44GILOOBleOBoOOChuOBjQ0KK+OBqOOCiuOBn+OBqyzjgbLjgafjga7jgooNCivjgajjgZXjgYss44GX44KF44GG44GYDQor44Gk44G844GELOOBvuOBleOBsuOBkw0KK+OBsuOCieOBsOOChOOBlyzjgajjgoLjgarjgooNCivjgaTjgaHjgaAs44Gy44KN44KG44GNDQor44Gk44Gh44Gf44GrLOOBsuOBp+OBjQ0KK+OBpOOBoeOChCzjgZfjgZLjgagNCivjgaTjgaAs44Gy44KN44GXDQor44Gk44GgLOOBguOBpOOCiOOBlw0KK+OBpOOBmCzjgbLjgo3jgZcNCivjgaTjgZjjgYQs44GL44Ga44GKDQor44Gk44GY44KA44KJLOOBquOCi+OBqA0KK+OBpOOBmOOCgOOCiSzjgZ/jgYvjgZcNCivjgaTjgZjjga4s44GX44KF44GG44GE44GhDQor44Gk44GY44GV44KPLOOChuOBvw0KK+OBpOOBi+OBoCzjgZ/jgYTjgZ7jgYYNCivjgaTjgYvjga/jgoks44Gm44Gk44GKDQor44Gk44GL44KC44GoLOOChOOBmeOBjQ0KK+OBpOOBi+OCguOBqCzjgojjgZfjgb8NCivjgaTjgYvjgoLjgags44GR44KT44Gf44KN44GGDQor44Gk44Gt44GgLOOBvuOBleOBsuOCjQ0KK+OBpOOBruOBoCzjgZ/jgZHjgZcNCivjgaTjga7jgaAs44GR44KT44GE44Gh44KNDQor44Gk44KL44G+44KLLOOBn+OBi+OBlw0KK+OBpOOBleOBiyzjgZHjgpMNCivjgaTjgaTjgYQs44Gf44GL44GX44GSDQor44Gk44Gk44G/LOOBvuOBleOBruOCig0KK+OBpOOBpOOBvyzjgb7jgZXjga/jgosNCivjgaTjgaTjgb/jga/jgoks44Gf44GL44GKDQor44GG44Gh44GgLOOBvuOBk+OBqA0KK+OBhuOBoeOBoCzjgZXjgaDjgobjgY0NCivjga/jgoTjgZcs44Gf44GL44KG44GNDQor44GG44Gh44GgLOOBn+OBpOOChA0KK+OBhuOBoeOBrizjgZXjgajjgZcNCivjgYbjgaHjgoTjgb4s44GC44KE44GuDQor44GG44Gg44GM44KPLOOBl+OCk+OBhOOBoQ0KK+OBhuOBiOOBoCzjgbLjgo3jgobjgY0NCivjgYbjgYjjgaAs44GR44KT44GYDQor44GG44GI44GgLOOBn+OBkeOBlw0KK+OBreOBmizjgajjgZfjgYLjgY0NCivjgYbjgYjjgoDjgoks44GV44Go44GXDQor44GG44GI44KA44KJLOOBl+OCh+OBhuOBnw0KK+OBhuOBiOOCgOOCiSzjgZHjgpPjgYTjgaENCivjgYbjgYjjga4s44GX44KT44KEDQor44GG44GI44GuLOOBqOOCguOBteOBvw0KK+OBhuOBiOOBleOCjyzjgajjgZfjgbLjgo0NCivjgYbjgYjjgaTjgbws44KI44GX44Gf44GLDQor44GG44GI44Gk44GNLOOCiOOBl+OBpuOCiw0KK+OBhuOBkeOBrizjgobjgYbjgZnjgZENCivjgYbjgb7jga/jgZcs44Gy44Gn44G144G/DQor44GG44KB44GgLOOChOOBmeOBn+OBiw0KK+OBhuOCgeOCgOOCiSzjgYvjgYrjgosNCivjgYbjgb/jgaAs44GT44GG44GN44GhDQor44GG44GK44Ga44G/LOOBleOCk+OBuuOBhA0KK+OBhuOCieOBnyzjgZvjgpPjgZ8NCivjgYbjgZfjgY/jgZUs44Go44GX44KG44GNDQor44GG44GZ44Gq44G/LOOBmOOCheOCkw0KK+OCj+OBoCzjgZjjgoXjgpPjgYTjgaENCivjgo/jgaAs44GL44GK44KKDQor44KP44GgLOOBv+OBjQ0KK+OCj+OBoCzjgb/jgaTjga7jgooNCivjgo/jgYvjgZss44GV44Go44KI44GXDQor44KP44GNLOOBn+OBoOOBlw0KK+OCj+OBn+OBquOBuSzjgZ/jgZHjgZcNCivjgo/jgZ/jgarjgbks44Go44KC44GC44GNDQor44KP44Gf44Gq44G5LOOCiOOBl+OBsuOBlQ0KK+OCj+OBn+OBquOBuSzjgabjgYTjgZgNCivjgo/jgZ/jgarjgbks44KI44GX44GNDQor44KP44Gf44Gq44G5LOOCiOOBl+OChuOBjQ0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgagNCivjgo/jgZ/jgazjgY0s44KI44GX44Gy44GVDQor44KP44Gf44Gs44GNLOOBsuOBp+OBig0KK+OCj+OBn+OCiizjgbLjgo3jgb/jgaQNCivjga/jgZfjgZDjgaEs44GY44KF44KT44KEDQor44KE44G2LOOBk+OBhuOBmA0KK+OChOOBjuOBrOOBvizjgb/jgaTjgYLjgY0NCivjgoTjgZjjgb4s44Gq44GK44GNDQor44KE44G+44GgLOOBl+OBkuOBteOBvw0KK+OChOOBvuOBoCzjgojjgZfjgZ/jgYsNCivjgoTjgb7jgaAs44KG44GG44GZ44GRDQor44KE44G+44GgLOOChuOBhuOBkw0KK+OChOOBvuOBoCzjgYLjgY3jgYLjgaQNCivjgoTjgb7jgaAs44GC44GN44KJDQor44KE44G+44GgLOOBoeOBiA0KK+OChOOBvuOBoCzjgbLjgo3jgZMNCivjgoTjgb7jgaAs44GL44Ga44G/DQor44KE44G+44GgLOOBvuOBleOCiOOBlw0KK+OBsuOBleOBrizjgorjgYsNCivjgoTjgb7jgaAs44GV44Go44GXDQor44KE44G+44GgLOOBleOChOOBiw0KK+OChOOBvuOBteOBmCzjgZ/jgaTjgoQNCivjgoTjgb7jgY7jgo8s44KE44GZ44Gy44GTDQor44KE44G+44GQ44GhLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgojjgZfjgbLjgo0NCivjgoTjgb7jgZDjgaEs44Gu44KK44KG44GNDQor44KE44G+44GQ44GhLOOChuOBhA0KK+OChOOBvuOBkOOBoSzjgYTjgZXjgYoNCivjgoTjgb7jgZDjgaEs44Gm44Gk44KEDQor44KE44G+44GQ44GhLOOBn+OBkeOBr+OCiw0KK+OChOOBvuOBkOOBoSzjgYLjgY3jgokNCivjgoTjgb7jgZDjgaEs44Gf44GL44Gy44KNDQor44KE44G+44GL44KPLOOChuOBjeOBkw0KK+OChOOBvuOCguOBqCzjgbLjgo3jgZcNCivjgoTjgb7jgoLjgags44GL44Gq44GTDQor44G/44Ga44Gf44GrLOOBjeOBv+OBig0KK+OChOOBvuOCguOBqCzjgb/jganjgooNCivjgoTjgb7jgoLjgags44G/44Gk44Gy44KNDQor44KE44G+44KC44GoLOOCiOOBruOBmeOBkQ0KK+OChOOBvuOCguOBqCzjgarjgYrjgagNCivjgoTjgb7jgoLjgags44Gf44GL44GXDQor44KE44G+44KC44GoLOOBi+OBpOOBmA0KK+OChOOBvuOCguOBqCzjgYvjgZoNCivjgoTjgb7jgoLjgags44GL44Ga44GC44GNDQor44KE44G+44KC44GoLOOBsuOBquOBkw0KK+OChOOBvuOCguOBqCzjgZfjgpPjgYTjgaENCivjgoTjgb7jga0s44G+44GT44GoDQor44KE44G+44GtLOOChOOBmeOBsuOBlQ0KK+OChOOBvuOBl+OBnyzjgajjgZfjgYoNCivjgoTjgb7jgZfjgZ8s44GL44Ga44Gy44GVDQor44Gv44KT44GgLOOBhOOBleOBig0KK+OChOOBvuOBhuOBoSzjgojjgZfjgoQNCivjgoTjgb7jgYbjgaEs44GX44KT44GE44Gh44KN44GGDQor44KE44G+44GG44KJLOOBn+OBi+OBlw0KK+OChOOBvuOBluOBjSzjgbLjgo3jgagNCivjgoTjgb7jgZbjgY0s44GL44Ga44KI44GXDQor44KE44G+44GW44GNLOOBkeOCk+OBhOOBoQ0KK+OBn+OCgOOCiSzjgb7jgZXjgajjgZcNCivjgoTjgb7jgZbjgY0s44GV44Go44GXDQor44KE44G+44GW44GNLOOBn+OBi+OBig0KK+OChOOBvuOBnuOBiCzjgZ/jgYvjgZcNCivjgoTjgarjgY7jgZXjgo8s44KG44G/44GTDQor44KE44GuLOOBn+OBkeOBlw0KK+OChOOBmeOBoCzjgbLjgafjgY0NCivjgoTjgZnjga/jgoks44GR44GE44GTDQor44GT44GX44KC44GoLOOCguOBqA0KK+OBr+OBjuOCj+OCiSzjgb/jgY3jgYoNCivjgojjgZPjgZ8s44Gm44KL44Gy44GVDQor44KI44GT44KE44G+LOOBn+OBkeOBlw0KK+OCiOOCguOBoCzjgYLjgY3jgokNCivjgojjgarjgYws44GV44Go44GXDQor44KI44Gt44GgLOOBsuOCjeOBn+OBkQ0KK+OCiOOBreOChOOBvizjgZXjgaHjgogNCivjgojjga3jgZbjgo8s44GI44KKDQor44KI44Gt44GW44KPLOOBqOOCguOBsuOBlQ0KK+OCiOOBl+OBoCzjgb7jgobjgb8NCivjgojjgZfjgaAs44Gm44KL44KE44GZDQor44KI44GX44GgLOOBi+OBpOOBsuOCjQ0KK+OCiOOBl+OBoCzjgb7jgZXjgagNCivjgojjgZfjgaAs44GC44GN44Gy44GVDQor44KI44GX44GgLOOBleOBoeOBkw0KK+OCiOOBl+OBoCzjgZHjgpPjgZQNCivjgojjgZfjgaAs44GN44KI44Gy44GoDQor44KI44GX44GQ44GhLOOBruOBtuOBkw0KK+OCiOOBl+OBhCzjgobjgY3jgYoNCivjgojjgZfjgYTjgZEs44GN44KI44KG44GNDQor44KI44GX44G+44GkLOOBkeOCk+OBn+OCjeOBhg0KK+OCiOOBl+OBrizjgbLjgZXjgojjgZcNCivjgojjgZfjga4s44GX44GS44GKDQor44KI44GX44GW44KPLOOBiuOBleOCgA0KK+OCiOOBpOOBn+OBqyzjgb/jgaTjgbLjgo0NCivjgobjgY3jgZbjga0s44Gb44GE44GYDQor44KG44KE44G+LOOCiOOBl+OBsuOBlQ0KK+OBmuOBlyzjgobjgY3jgYoNCivjgYLjgonjgYQs44G+44GV44GoDQor44G144GY44GNLOOChuOBhuOBhOOBoQ0KK+OBsuOCieOBrizjgZfjgZLjgosNCivjgYvjgoHjgoTjgb4s44Gy44Gn44Gu44G2DQor44GT44GY44G+LOOBi+OBmuOBig0KK+OBquOBi+OBiizjgoHjgZDjgb8NCivjgYTjgo/jgYvjgo8s44Gd44GG44Gf44KN44GGDQor44Gk44Gh44KELOOBn+OBpOOChA0KK+OBhOOBmOOCjSzjgZPjgYbjgZgNCivjgY/jganjgYYs44Go44KC44GTDQor44Gq44GM44GX44G+LOOBi+OBmuOBsuOBqA0KK+OBr+OBl+OBkOOBoSzjgYvjgaTjgobjgY0NCivjgaTjgaHjgoQs44GR44GE44GTDQor44GE44GX44G+44GkLOOBsuOCjeOChOOBmQ0KK+OBr+OCieOBoCzjgbLjgo3jgZ/jgYsNCivjgb/jgZrjga4s44G144G/44GKDQor44G744GX44GuLOOBr+OCi+OBig0KK+OBguOBuSzjgZfjgZLjga7jgooNCivjgYLjgbks44Gf44GL44GTDQor44GC44G5LOOChuOBn+OBiw0KK+OBguOBuSzjgYjjgYTjgYTjgaENCivjgYLjgbbjgYvjgo8s44G/44GVDQor44GC44Gg44GhLOOBkeOCk+OBn+OCjeOBhg0KK+OBguOBhOOBluOCjyzjgY3jgorjgZMNCivjgYLjgZjjgo0s44G+44GV44KG44GNDQor44GC44GL44GELOOBqOOBl+OBguOBjQ0KK+OBn+OCguOBqCzjgb/jgY3jgYoNCivjgYLjgYvjgYTjgZcs44GI44GE44GhDQor44GC44GL44GXLOOBvuOChuOBvw0KK+OBguOBjeOBhOOBkSzjgoTjgZnjgbLjgo0NCivjgYLjgY3jgZ8s44Gu44KK44Gh44GLDQor44GC44GN44KE44G+LOOCgOOBpOOBvw0KK+OBguOBvuOBjOOBhCzjgbLjgafjgbXjgb8NCivjgYLjgb7jgYzjgZ8s44Gf44GL44GXDQor44GC44G+44GuLOOBv+OBuw0KK+OBguOCgeOBv+OChCzjgYvjgaTjgb8NCivjgYLjgpPjganjgYYs44GL44Ga44Gy44KNDQor44GC44KT44Gp44GGLOOBn+OBi+OChuOBjQ0KK+OBguOCk+OBqeOBhizjgaDjgYTjgZQNCivjgYLjgpPjganjgYYs44GX44KT44GUDQor44GC44KT44GW44GELOOBvuOBleOBsuOBpw0KK+OBguOBiuOBjSzjgb7jgZXjgajjgZcNCivjgYLjgYrjgY0s44GC44GN44G144G/DQor44GC44GK44KE44GOLOOBguOBpOOBqA0KK+OBguOBiuOChOOBvizjgobjgYbjgZMNCivjgYLjgonjgYQs44G+44GV44GXDQor44GC44KJ44GELOOBqOOCguOBquOCig0KK+OBguOCieOBjSzjgajjgZfjgb/jgaQNCivjgYLjgonjgoQs44Gy44KN44GC44GNDQor44GC44KK44G+LOOBl+OCk+OBhOOBoQ0KK+OBguOCiuOBn+OBkSzjgZvjgYTjgZgNCivjgYLjgZXjgaAs44Gf44GR44GKDQor44GC44GV44GyLOOChuOBhuOBmA0KK+OBguOBleOBrizjgZjjgoXjgpPjgZMNCivjgYLjgZfjgaAs44GV44Go44GXDQor44GC44GX44GL44KPLOOBleOBqOOBlw0KK+OBsOOBsCzjgoTjgZnjgobjgY0NCivjgbDjgbAs44Gf44GL44Gv44KLDQor44Gw44GwLOOBkeOCk+OBmA0KK+OBoeOBsCzjgZjjgoXjgpPjgZMNCivjgZTjgajjgYYs44G+44GV44Gy44GTDQor44Gh44KH44GGLOOBiOOBhOOBmA0KK+OBoOOBhOOBqSzjgobjgYbjgZMNCivjganjgYLjgYQs44GT44GG44GYDQor44Gp44GELOOBqOOCguOBsuOCjQ0KK+OBu+OBneOBhCzjgZ/jgY/jgZgNCivjganjgYQs44GE44GV44GKDQor44Gp44GELOOBkeOCk+OBhOOBoQ0KK+OBiOOBjOOBl+OCiSzjgbLjgafjgZ/jgYsNCivjgYjjgZDjgaEs44KE44GZ44Gy44KNDQor44GI44Gw44KJLOOBpOOBqOOCgA0KK+OBiOOCk+OBqSzjgZfjgpPjgYTjgaENCivjgYjjgpPjgaks44GV44Go44GXDQor44GC44G+44KKLOOBkeOCk+OBmA0KK+OBiOOBruOCguOBqCzjgY3jgojjgb8NCivjgYjjga7jgoLjgags44G+44GV44G/DQor44GI44Gu44KC44GoLOOBguOBjeOCiQ0KK+OBiOOBruOCguOBqCzjgaHjgYvjgokNCivjgYjjgZbjgY0s44GL44Ga44Gy44GoDQor44G144GY44Gv44KJLOOBvuOBleOBr+OCiw0KK+OBteOBmOOBhCzjgZ/jgYvjgZcNCivjgbXjgZjjgYQs44GV44Gk44GNDQor44Gy44KL44GL44KPLOOBkeOCkw0KK+OBteOBmOOBhCzjgb7jgZXjgbLjgZMNCivjgbXjgZjjgZXjgo8s44Gv44KL44G/DQor44G144GY44GV44KPLOOBsuOCjeOChuOBjQ0KK+OBsuOBlCzjgYvjgaTjgobjgY0NCivjgbXjgZjjgZ8s44Gk44KI44GXDQor44G144GY44GfLOOBn+OBi+OBlw0KK+OBteOBmOOCj+OCiSzjgajjgYrjgosNCivjgbXjgYvjgb8s44KE44GZ44KG44GNDQor44G144GL44GW44KPLOOBn+OBkeOBlw0KK+OBr+OBm+OBjOOCjyzjgojjgYbjgZnjgZENCivjgbXjgY/jgaAs44GY44KF44KT44GTDQor44G144GP44KC44GoLOOBv+OBpOOBig0KK+OBteOBj+OCgOOCjSzjgZ/jgYvjgZcNCivjgbXjgY/jgo0s44KE44GZ44GTDQor44G144GP44GXLOOBsuOCjeOBvw0KK+OBteOBj+OBl+OBvizjgZ/jgYvjgb8NCivjgbXjgY/jgZfjgb4s44GX44KT44GE44GhDQor44Gv44GO44KP44KJLOOBqOOBl+OBig0KK+OBteOBj+OBl+OBvizjgYLjgY3jgokNCivjgbXjgarjgY0s44Gq44GK44GNDQor44G144Gq44GP44G8LOOBteOBv+OBig0KK+OBr+OCieOBoCzjgb/jga7jgosNCivjgbXjgovjga/jgZ8s44KC44Go44G144G/DQor44G144KL44GL44KPLOOBvuOBoeOBkw0KK+OBteOCi+OCguOBqCzjgZ/jgYvjgZcNCivjgbXjgovjgoQs44Go44KC44KEDQor44G144GX44G/LOOBsuOCjeOBvw0KK+OBlOOBhuOBoCzjgb/jgY3jgYoNCivjgYTjgorjgYgs44GX44KT44GYDQor44GE44GX44Gv44KJLOOBguOBjeOCiQ0KK+OBhOOBoeOBi+OCjyzjgb7jgZXjgobjgY0NCivjgYTjgbAs44G+44G/DQor44GE44KP44GV44GNLOOBleOBiOOBkw0KK+OBhOOBruOBhuOBiCzjgYLjgoTjgZMNCivjgYTjgYTjgoLjgoos44G+44GV44Gy44KNDQor44GE44Gv44KJLOOBm+OBhOOBmA0KK+OBhOOCj+OCgOOCiSzjgZfjgofjgYbjgZ8NCivjgYTjgarjgYzjgY0s44KG44GN44GKDQor44GE44GX44GY44G+LOOBi+OBmuOBsuOCjQ0KK+OBhOOBqOOBhizjgZfjgo3jgYYNCivjgZTjgpPjganjgYYs44GX44KF44GG44GYDQor44GU44Go44GGLOOBmeOBv+OCjA0KK+OBhOOBl+OBi+OCjyzjgb7jgZXjgbLjgZMNCivjgYTjgajjgYYs44G+44GV44Gu44G2DQor44GE44Gb44GNLOOCiuOBkw0KK+OBlOOBqOOBhizjgbLjgo3jgobjgY0NCivjga/jgaAs44Gy44Gn44GC44GNDQor44Gv44GO44KP44KJLOOBv+OCj+OBkw0KK+OBr+OBjuOCj+OCiSzjgajjgoLjgZMNCivjga/jgYTjgZjjgb4s44GC44GE44GTDQor44Gv44G+44GgLOOBsuOCjeOBlw0KK+OBr+OBvuOBrizjgbLjgo3jgaTjgZANCivjga/jgb7jgYrjgYss44GT44GZ44GRDQor44Gv44Gq44GpLOOBv+OBruOCiw0KK+OBr+OBquOBnyzjgabjgaTjgoQNCivjga/jgoks44Go44KC44Gy44GTDQor44Gv44KJLOOChuOBhuOBmA0KK+OBr+OCiSzjgZ/jgZHjgZcNCivjga/jgoks44GN44KH44GG44GTDQor44Gv44KJ44GgLOOBl+OCkw0KK+OBr+OCieOBoCzjgZ/jgZHjgZcNCivjga/jgonjgaAs44GC44GN44Gy44GoDQor44GZ44Ga44GNLOOBn+OBkeOCjQ0KK+OBr+OCieOBjCzjgZ/jgaTjgoQNCivjga/jgonjgb8s44GR44KT44Gf44KN44GGDQor44Gv44KJ44KE44G+LOOBruOBtuOBsuOBkw0KK+OBr+OCieOBnuOBrizjga7jgbbjgbLjgo0NCivjga/jgZvjgbks44Gf44GP44GYDQor44GL44Gt44GTLOOBqOOCguOBguOBjQ0KK+OBpOOBoeOBoCzjgojjgYbjgYTjgaENCivjga/jgZfjgoLjgags44KK44GIDQor44Gv44GX44KC44GoLOOBteOBv+OBsuOCjQ0KK+OBr+OBl+OCguOBqCzjgYvjgarjgYgNCivjga/jgZfjgoLjgags44GV44Go44GXDQor44Gv44GX44KC44GoLOOBn+OBi+OBguOBjQ0KK+OBr+OBl+OCguOBqCzjgbLjgafjgY0NCivjga/jgZfjgoLjgags44Gy44Gn44GNDQor44Gv44GX44KC44GoLOOCiOOBl+OBsuOBkw0KK+OBr+OBnyzjgZHjgYTjgZMNCivjga/jgaPjgajjgoos44Gy44Gn44GC44GNDQor44Gv44Gj44Go44KKLOOBvuOBk+OBqA0KK+OBr+OBo+OBqOOCiizjgZvjgYTjgZgNCivjga/jgoTjgYvjgo8s44GN44KI44GXDQor44Gv44KE44GL44KPLOOBsuOBp+OBr+OCiw0KK+OBr+OChOOBleOBiyzjgojjgZfjgYvjgZoNCivjga/jgoTjgZXjgY0s44Gb44GE44GUDQor44Gv44KE44GXLOOBqOOBl+OBsuOBkw0KK+OBr+OChOOBlyzjgZ/jgYvjgojjgZcNCivjga/jgoTjgZcs44Gf44GL44Gq44KKDQor44Gv44KE44GXLOOChOOBmeOBjQ0KK+OBr+OChOOBlyzjgYLjgY3jgokNCivjga/jgoTjgZfjgaAs44GR44KT44Ge44GGDQor44Gy44GzLOOBi+OBmuOBruOBtg0KK+OBsuOBjOOBlyzjgoTjgZnjgbLjgo0NCivjgbLjgYzjgZcs44GL44Ga44GKDQor44Gy44GQ44GhLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBsuOBmOOBi+OBnyzjgZHjgpPjgZgNCivjgbLjgZjjgoQs44KI44GX44GKDQor44Gy44Gq44GMLOOBn+OBkeOBlw0KK+OBsuOCieOBi+OCjyzjgbLjgafjgYLjgY0NCivjgbLjgonjga4s44Gy44KN44GTDQor44Gy44KJ44GuLOOBhOOBn+OCiw0KK+OBsuOCieOBrizjgZ/jgaDjgYoNCivjgbLjgonjgYos44Gf44GL44Gy44GoDQor44Gy44KJ44GX44G+LOOBquOBiuOBjQ0KK+OBsuOCieOChOOBvizjgajjgZfjgo3jgYYNCivjgbLjgonjgoTjgZks44Gy44Go44GXDQor44Gy44KK44GNLOOBkeOCk+OBhOOBoeOCjQ0KK+OBsuOCjeOBvuOBlSzjgo/jgZ/jgosNCivjgbLjgo3jgoLjgags44GX44KT44GYDQor44Gy44KN44GK44GLLOOBvuOBquOBtg0KK+OBsuOCjeOBmyzjgobjgb/jgZMNCivjgbLjgo3jgZss44G+44Gk44Gf44KN44GGDQor44GG44KB44GgLOOCiuOCh+OBhuOBhOOBoQ0KK+OBu+OCk+OBoCzjgZXjgarjgYgNCivjgbvjgpPjgaks44Gf44GR44GXDQor44G744KK44KC44GoLOOChOOBmeOChuOBjQ0KK+OBu+OCiuOBrizjgYvjgZrjgZfjgZINCivjgbvjgorjgYbjgaEs44Gf44GL44GtDQor44G744GV44GLLOOBguOBjeOBkw0KK+OBu+OBl+OBrizjgb7jgZPjgagNCivjgbvjgZfjgoTjgb4s44G/44GO44G144G/DQor44G744Gd44GL44KPLOOBpuOBpOOChA0KK+OBu+OBneOBi+OCjyzjgojjgZfjgbLjgo0NCivjgbvjgZ3jgYvjgo8s44GX44GS44GKDQor44G744Gd44KELOOBsuOCjeOBlw0KK+OBhOOBsOOCieOBjSzjga7jgbbjgYoNCivjgYTjgaHjga/jgoks44Gy44GV44G/44GkDQor44GE44Gh44Gv44KJLOOBn+OBi+OBlw0KK+OBhOOBoeOBr+OCiSzjga7jgbbjgZMNCivjgYTjgaHjgYvjgo8s44GR44KT44GE44GhDQor44GE44Gh44Gu44GbLOOBleOBqOOBlw0KK+OBhOOBoCzjgZ/jgZHjgZcNCivjgYTjgafjgZDjgaEs44GL44Ga44Gy44GoDQor44GE44GpLOOBvuOBleOBlw0KK+OBhOOBjOOCieOBlyzjgYvjgaTjga7jgbYNCivjgYTjgYzjgonjgZcs44KG44GN44Gy44GTDQor44GE44GM44KJ44GXLOOBsuOCjeOBlw0KK+OBhOOBhOOBoCzjgbLjgo3jgYoNCivjgYTjgYTjgaAs44GL44Gk44Go44GXDQor44GE44GE44GY44G+LOOBk+OBhuOBmA0KK+OBhOOBkeOBoCzjgorjgofjgYYNCivjgYTjgZHjgaAs44Go44KC44G/DQor44GE44GR44GgLOOBqOOCguOBvw0KK+OBhOOBkeOBoCzjgojjgYbjgZMNCivjgYTjgb7jgYQs44GT44GG44GNDQor44GE44G+44GE44Ga44G/LOOBkeOBhOOBkw0KK+OBhOOBvuOBhOOBmuOBvyzjgb/jgo8NCivjgYTjgb7jgoDjgoks44GK44GV44KADQor44GE44G+44KA44KJLOOBv+OBruOCiw0KK+OBhOOCguOCkyzjgYvjgZrjgobjgY0NCivjgYTjgarjgaAs44G+44GZ44G/DQor44GE44Gq44GM44GNLOOBi+OBmuOChA0KK+OBhOOBquOBjOOBjSzjgb/jgaTjgoQNCivjgYTjgarjgoDjgoks44Gf44GL44GXDQor44GE44Gq44KA44KJLOOBqOOCguOBruOCig0KK+OBhOOBrizjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYTjga7jgYvjgo8s44GC44GZ44GTDQor44GE44Gu44G+44GfLOOBi+OBmuOBsuOBqA0KK+OBhOOBruOBhuOBiCzjgbLjgo3jgYvjgZoNCivjgYTjga7jgYbjgYgs44GV44Go44GXDQor44GE44Gu44GG44GILOOBl+OBuw0KK+OBhOOBruOBhuOBiCzjgoTjgZnjgbLjgo0NCivjgYTjga7jgYbjgYgs44KG44GG44GYDQor44GE44Gu44GG44GILOOChuOBhuOBnw0KK+OBhOOBruOBhuOBiCzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgYTjgazjgYQs44GX44KT44GE44Gh44KN44GGDQor44GE44Gs44GX44G+LOOBvuOChuOBvw0KK+OBhOOCiuOBiCzjgb7jgZXjga7jgooNCivjgYTjgZXjgYss44GX44GS44KLDQor44GE44GX44GwLOOBoeOBsuOCjQ0KK+OBhOOBl+OBsOOBlyzjgaDjgYTjgZnjgZENCivjgYTjgZfjgbDjgZcs44Gy44Gn44GNDQor44GE44GX44GgLOOBsuOCjeOBv+OBpA0KK+OBhOOBl+OBoCzjgbLjgo3jgZcNCivjgYTjgZfjgaAs44GL44Gk44Gy44KNDQor44GE44GX44GgLOOBkeOBhOOBhOOBoQ0KK+OBhOOBl+OBjOOBvyzjgZPjgYbjgYTjgaENCivjgYTjgZfjgZDjgo0s44GT44GG44GYDQor44GE44GX44Gv44KJLOOBvuOCiuOBkw0KK+OBhOOBl+OBhCzjgb7jgZXjgbLjgo0NCivjgYTjgZfjgYQs44Gq44GK44G/DQor44GE44GX44GELOOBruOBvOOCiw0KK+OBhOOBl+OBhCzjgZvjgaTjgZMNCivjgYTjgZfjgYQs44Gf44Gg44GXDQor44GE44GX44GELOOBn+OBi+OBr+OCiw0KK+OBhOOBl+OBi+OCjyzjgajjgZfjgYoNCivjgYTjgZfjgb7jgoss44Gk44KI44GXDQor44GL44KP44GaLOOCiOOBhuOBhOOBoQ0KK+OBhOOBl+OBmuOBiyzjgobjgY3jgYoNCivjgYTjgZ/jgoQs44Gu44KK44Gy44GVDQor44GE44GE44GgLOOBguOBjeOBsuOCjQ0KK+OBhOOBqOOBhizjgbLjgo3jgb/jgaENCivjgYTjgajjgYYs44Gy44KN44GXDQor44GE44Go44GGLOOBhOOBj+OBig0KK+OBhOOBqOOBhizjgYvjgZrjgoQNCivjgYTjgajjgYYs44GX44KH44GG44GTDQor44GE44Go44GGLOOBi+OBmuOBsuOCjQ0KK+OBhOOBqOOBhizjgZjjgoXjgpMNCivjgYTjgajjgYYs44G+44GT44GoDQor44GE44Go44GGLOOBiuOBleOCgA0KK+OBhOOBqOOBhizjgojjgZfjgb7jgZUNCivjgYTjgajjgYYs44G+44GV44KG44GNDQor44GE44Go44GGLOOBvuOBleOBvw0KK+OBhOOBqOOBhizjgbLjgo3jgYLjgY0NCivjgYTjgajjgYYs44Gf44G+44GNDQor44GE44Go44GGLOOBjeOCiOOBn+OBiw0KK+OBhOOBqOOBhizjgb7jgZXjgbXjgb8NCivjgYTjgajjgYYs44Gy44KN44GL44GaDQor44GE44Go44GGLOOChuOBjeOBig0KK+OBhOOBqOOBhizjgYjjgYTjgZgNCivjgYTjgajjgYYs44G/44G744GTDQor44GE44KP44GELOOBn+OBi+OChuOBjQ0KK+OBhOOCj+OBhCzjgYvjgZrjgZfjgZINCivjgYTjgo/jgb8s44GN44KI44GXDQor44GE44KP44KA44KJLOOCiOOBl+OBn+OBiw0KK+OBhOOCj+OBquOBjCzjgarjgYrjgZMNCivjgYTjgo/jgYos44GL44Ga44GC44GNDQor44GE44KP44GV44GNLOOCiuOCheOBhuOBkw0KK+OBhOOCj+OBnyzjgY3jgojjgZMNCivjgYTjgo/jgZ8s44G/44Gk44Gy44KNDQor44GE44KP44GfLOOBl+OCk+OBmA0KK+OBhOOBmuOBvyzjga7jgZ7jgoANCivjgZjjgpPjgbAs44Gk44Gt44Gu44KKDQor44Gu44GG44GhLOOCiuOBiA0KK+OCieOBjyzjgojjgZfjga7jgooNCivjgYvjgYzjgb8s44Gy44KN44GXDQor44GL44GM44KPLOOBkeOBhOOBnw0KK+OBi+OBkuOChOOBvizjgZ/jgb7jgY0NCivjgYvjgYQs44GY44KF44KTDQor44GL44GY44KC44GoLOOBn+OBj+OChA0KK+OBi+OBmOOCj+OCiSzjgZvjgYTjgZgNCivjgY/jgorjga/jgoks44GI44GE44GYDQor44GL44GN44KA44KJLOOBmOOCheOCkw0KK+OBi+OBjeOBruOBjSzjgZ/jgYvjgYLjgY0NCivjgYvjgY3jgYbjgaEs44Gy44KN44KG44GNDQor44GL44GN44GW44GNLOOBk+OBhuOBmA0KK+OBi+OBkyzjgajjgZfjgbLjgZMNCivjgYvjgoHjgZfjgb4s44Gg44GE44GZ44GRDQor44GL44G/44GI44GZLOOBiOOBhOOBhOOBoQ0KK+OBi+OBv+OBj+OCiSzjgbLjgo3jgZcNCivjgYvjgb/jgoDjgoks44GT44GG44GE44Gh44KN44GGDQor44GL44G/44Gf44GNLOOBvuOBleOBmA0KK+OBi+OBv+OCiOOBl+OBi+OCjyzjgb7jgZXjgobjgY0NCivjgYvjgpMs44Gf44GP44KEDQor44GL44Gq44GELOOBqOOBl+OBi+OBmg0KK+OBi+OCk+OBsOOChOOBlyzjgYTjgaHjgo3jgYYNCivjgYvjgpPjgaAs44KI44GX44Gy44GoDQor44GL44Gt44GTLOOBn+OBi+OChuOBjQ0KK+OBi+OBreOBkyzjgoTjgZnjgobjgY0NCivjgYvjga3jgZ8s44Gf44GL44GXDQor44GL44Gu44GGLOOBvuOChuOBvw0KK+OBi+OCiuOBrizjgbLjgo3jgZcNCivjgYvjgZXjgb8s44GL44Gq44GIDQor44GL44GV44Gq44G/LOOBn+OBi+OBqA0KK+OBi+OBmyzjgb7jgoLjgosNCivjgYvjgZnjgYws44Gy44KN44GXDQor44GL44GZ44KELOOBvuOBleOBquOCig0KK+OBi+OBn+OBiuOBiyzjga7jgorjgZMNCivjgYvjgajjgYYs44Gq44GK44GTDQor44GL44Go44GGLOOBsuOCjeOBlw0KK+OBi+OBqOOBhizjgb7jgZXjgobjgY0NCivjgYvjgajjgYYs44Gu44KK44GC44GNDQor44GL44Go44GGLOOBn+OBoOOBguOBjQ0KK+OBi+OBqOOBhizjgZHjgpPjgZgNCivjgYvjgajjgYYs44GR44KT44GYDQor44GL44Go44GGLOOBn+OBi+OChuOBjQ0KK+OBi+OBqOOBhizjgYLjgY3jgbLjgagNCivjgYvjgajjgYYs44GY44KN44GGDQor44GL44Gk44G+44GfLOOBj+OBvw0KK+OBi+OBpOOCiSzjgb7jgZXjgY0NCivjgYvjgo/jgbks44KI44GX44KG44GNDQor44GL44KP44GgLOOBn+OBkeOBlw0KK+OBi+OCj+OBkOOBoSzjgbLjgafjgY0NCivjgZXjgYTjgajjgYYs44Gy44Gn44Gf44GLDQor44GL44KP44GQ44GhLOOBhOOBj+OBkw0KK+OBi+OCj+OBr+OBnyzjgYvjgYrjgooNCivjgYvjgo/jgYvjgb8s44GL44Ga44KI44GXDQor44GL44KP44GL44G/LOOBkeOCk+OBhOOBoQ0KK+OChOOBmOOBvizjgb/jgaTjgogNCivjgYvjgo/jgoLjgags44Gk44KI44GXDQor44GL44KP44KA44KJLOOBsuOBp+OBguOBjQ0KK+OBi+OCj+OCgOOCiSzjgbLjgo3jgZcNCivjgYvjgo/jgoDjgoks44GY44KF44KT44GE44GhDQor44GL44KP44KA44KJLOOBvuOCig0KK+OBi+OCj+OBrizjgb7jgZXjgbLjgZMNCivjgYvjgo/jga4s44G+44GV44GL44GkDQor44GL44KP44GV44GNLOOBl+OBkuOChuOBjQ0KK+OBi+OCj+OBmyzjgZHjgpPjgZgNCivjgYvjgo/jgZfjgb4s44Go44GX44KEDQor44GL44KP44GX44G+LOOCiOOBl+OBr+OCiw0KK+OBi+OCj+OBl+OBvizjgbLjgafjgY0NCivjgYvjgo/jgZfjgb4s44KE44GZ44Gu44G2DQor44GN44GgLOOBv+OBruOCiw0KK+OBjeOBj+OBoSzjgYvjgZrjgoQNCivjgY3jgY/jgaEs44Gf44GL44Gy44GnDQor44KE44G+44KC44GoLOOChOOBmeOBsuOCjQ0KK+OBguOBjeOCiOOBlyzjgoTjgZnjgbLjgo0NCivjgY3jgY/jgaEs44G+44KC44KLDQor44GN44GP44GhLOOBn+OBpOOChA0KK+OBjeOBj+OBoSzjgb/jgaTjgosNCivjgY3jgY/jgaEs44GC44GN44GTDQor44GN44KA44KJLOOBteOBv+OBsuOBkw0KK+OBjeOCgOOCiSzjgb7jgZXjgbLjgZMNCivjgY3jgoDjgoks44GC44GN44Gy44GTDQor44GN44KA44KJLOOBguOBpOOBlw0KK+OBjeOCgOOCiSzjgbLjgo3jgZcNCivjgY3jgoDjgoks44G+44GV44GNDQor44GN44KA44KJLOOBv+OBruOCiw0KK+OBi+OBqOOBhizjgZfjgofjgYbjgZgNCivjgY3jgarjgZss44KG44GG44GYDQor44GN44GtLOOBvuOBleOBkw0KK+OBjeOBrizjgYLjgY0NCivjgY3jga4s44GL44Ga44Gy44KNDQor44GN44Gu44GX44GfLOOBkeOBhOOBnw0KK+OBjeOCiSzjgojjgYbjgZMNCivjgY3jgZfjgoLjgags44Go44GK44KLDQor44GN44Gf44Gw44Gf44GRLOOBguOBjeOBig0KK+OBjeOBn+OBsOOBn+OBkSzjgZ/jgYvjgbLjgZMNCivjgY3jgZ/jgYzjgo8s44GK44GV44KADQor44GN44Gf44GM44KPLOOBoeOBi+OBkw0KK+OBjeOBn+OCgOOCiSzjgbLjgo3jgYLjgY0NCivjgZ/jgYvjga/jgZcs44KB44GQ44G/DQor44GN44Gf44KE44G+LOOBiOOBhOOBmA0KK+OBjeOCiOOBquOCiizjgbLjgo3jgZcNCivjgZPjgbDjgoTjgZcs44GN44KI44GXDQor44GT44Gw44KE44GXLOOBqOOBl+OBsuOCjQ0KK+OBk+OBsOOChOOBlyzjgYLjgY3jgZMNCivjgZPjgbDjgoTjgZcs44Gf44GL44GXDQor44GT44Gw44KE44GXLOOBsuOCjeOBlw0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgYLjgY0NCivjgZPjgbDjgoTjgZcs44Gq44GK44GNDQor44GE44Go44GGLOOBl+OCk+OBmA0KK+OBk+OCk+OBrizjgojjgYbjgYTjgaENCivjgZPjgpPjga4s44Gf44GL44G/44GkDQor44GT44KT44GuLOOBsuOCjeOBlw0KK+OBk+OCk+OBrizjgYvjgZrjgYLjgY0NCivjgZPjgYTjgZEs44Go44KC44G144G/DQor44GT44GY44G+LOOCj+OBn+OCiw0KK+OBk+OBj+OBl+OCh+OBhizjgb7jgZXjgosNCivjgZPjgb7jgY0s44GL44Ga44KEDQor44G+44GL44G5LOOBleOBtuOCjeOBhg0KK+OBk+OBvuOBpCzjgZ/jgZHjgZcNCivjgZPjgb7jgaQs44Gy44KN44GIDQor44GT44KT44GpLOOBl+OCkw0KK+OBk+OCk+OBqSzjgZ/jgY/jgb8NCivjgZPjgpPjgaks44G+44GV44KG44GNDQor44GT44GX44GwLOOBv+OBjQ0KK+OCiOOBk+OBiCzjgoTjgZnjga7jgooNCivjgZPjgabjgYzjgo8s44G+44GV44Gu44KKDQor44GT44KT44GuLOOBi+OBmuOBguOBjQ0KK+OBk+OChOOBvizjgozjgYTjgZMNCivjgZPjgoTjgb4s44KC44Go44GP44GrDQor44GT44KE44G+LOOBsuOCjeOBn+OBiw0KK+OBk+OBluOBmSzjgajjgZfjga7jgooNCivjgY/jgaHjgYTjgZcs44GL44Ga44Go44GXDQor44GP44GO44G/44KELOOCiuOCheOBhuOBmeOBkQ0KK+OBj+OBmOOCieOBhCzjgYLjgaTjgZcNCivjgY/jgb7jga7jgb/jgaks44Gy44KN44GXDQor44GP44G+44GW44GNLOOBqOOCguOBjQ0KK+OBj+OCjOOBvuOBpCzjgZ/jgYvjgbLjgacNCivjgY/jgorjgY0s44G+44GV44KG44GNDQor44GP44KK44KE44G+LOOBqOOBl+OCjeOBhg0KK+OBj+OCiuOChOOBvizjgbLjgo3jgZcNCivjgY/jgo3jgbks44Gq44GK44GoDQor44GP44KN44GV44KPLOOBqOOCguOBguOBjQ0KK+OBj+OCjeOBleOCjyzjgoTjgZnjgobjgY0NCivjgY/jgorjgoXjgYYs44KI44GX44GIDQor44GP44GV44GuLOOBi+OBpOOChuOBjQ0KK+OBj+OCj+OBr+OCiSzjgZjjgoXjgpMNCivjgY/jgZrjga4s44KI44GX44Gf44GLDQor44GN44KF44GG44GgLOOBn+OBj+OChA0KK+OBvuOBtuOBoSzjgZHjgpPjgYTjgaENCivjgb7jgaHjgZ8s44G+44GV44GNDQor44G+44GI44GgLOOCiOOBhuOBhOOBoQ0KK+OBvuOBiOOBhOOBiCzjgYLjgY3jgbXjgb8NCivjgb7jgYjjgYvjgo8s44Gh44GC44GNDQor44G+44G+44GgLOOBsuOCjeOBlw0KK+OBvuOBquOBuSzjgbLjgo3jgZ/jgYsNCivjgb7jgarjgbks44GL44Ga44GKDQor44G+44KL44GE44GhLOOBvuOBleOChuOBjQ0KK+OBvuOCi+OBn+OBqyzjgZ/jgYvjgbLjgacNCivjgb7jgovjgoTjgb4s44Gf44GL44GTDQor44G+44GV44GK44GLLOOBn+OBi+OChuOBjQ0KK+OBvuOBmeOBoCzjgZ/jgaTjgb8NCivjgb7jgZnjgaAs44Gk44KI44GXDQor44G+44GZ44GgLOOCiOOBl+OBtuOBvw0KK+OBvuOBmeOBoCzjgobjgY3jgZMNCivjgb7jgZnjgaAs44Gy44KN44GL44GaDQor44G+44Gk44Gw44KJLOOBk+OBhuOBnuOBhg0KK+OBvuOBpOOBoCzjgYvjgaTjgoQNCivjgb7jgaTjgaAs44Gy44KN44KG44GNDQor44G+44Gk44Gg44GE44KJLOOBqOOBl+OBteOBvw0KK+OBvuOBpOOBiOOBoCzjgYLjgobjgb8NCivjgb7jgaTjgYQs44Gy44Gn44GXDQor44G+44Gk44GELOOBsuOCjeOBjQ0KK+OBvuOBpOOCguOBqCzjga7jgbbjgYoNCivjgb7jgaTjgoLjgags44Gb44GE44GE44GhDQor44G+44Gk44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OBvuOBpOOCguOBqCzjgY3jgojjgYvjgZoNCivjgb7jgaTjgoLjgags44GN44KH44GG44GTDQor44G+44Gk44KC44GoLOOCiOOBl+OBjQ0KK+OBvuOBpOOCguOBqCzjgarjgorjgYLjgY0NCivjgb7jgaTjgoLjgags44GC44GN44Gu44KKDQor44G+44Gk44KC44GoLOOBkeOCkw0KK+OBvuOBpOOCguOBqCzjgajjgZfjgYvjgZoNCivjgb7jgaTjgoLjgags44GR44KTDQor44G+44Gk44KC44GoLOOBoOOBhA0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgobjgY0NCivjgb7jgaTjgoDjgoks44GP44G/DQor44G+44Gk44Gq44GMLOOBkeOCk+OBmOOCjeOBhg0KK+OBvuOBpOOBrizjgYvjgZrjgagNCivjgb7jgaTjgYos44KK44KF44GG44GE44GhDQor44G+44Gk44GKLOOBn+OBi+OBig0KK+OBvuOBpOOBiuOBiyzjgZ/jgZHjgZcNCivjgb7jgaTjgYrjgYss44GL44Ga44Gu44KKDQor44G+44Gk44GK44GLLOOBn+OBoOOBguOBjQ0KK+OBvuOBpOOBiuOBiyzjgbLjgo3jgZcNCivjgb7jgaTjgYrjgYss44GC44Gk44GXDQor44G+44Gk44GX44G+LOOBjeOBv+OBig0KK+OBvuOBpOOBn+OBqyzjgYLjgoQNCivjgb7jgaTjgoTjgb4s44GT44GG44Gf44KN44GGDQor44G/44Gh44KC44GoLOOBvuOChuOBvw0KK+OBv+OBiOOBjSzjgZ/jgY/jgo3jgYYNCivjgb/jgYvjgb8s44GL44Ga44G/DQor44G/44GL44G/LOOCiOOBl+OBn+OBiw0KK+OBv+OBquOBjOOCjyzjgaTjgojjgZcNCivjgb/jgarjgYvjgo8s44GX44KH44GG44GTDQor44G/44GX44G+LOOBi+OBmuOBvw0KK+OBv+OBl+OBvizjgZfjga7jgbYNCivjgb/jgZfjgb4s44Gy44KN44GC44GNDQor44G/44Gf44GhLOOBk+OBhuOBmA0KK+OBv+OBpOOBoCzjgarjgYrjgY0NCivjgb/jgaTjga/jgZcs44GY44KF44KTDQor44G/44Gk44GELOOBsuOCjeOBlw0KK+OBv+OBpOOCguOBqCzjgY3jgojjgb8NCivjgb/jgYbjgoks44GN44KH44GG44GYDQor44G/44GG44KJLOOBvuOBleOBsuOCjQ0KK+OBv+OChOOBuSzjgYLjgY3jgokNCivjgb/jgoTjgaEs44G+44GV44KG44GNDQor44G/44KE44GY44G+LOOBguOBjeOBruOCig0KK+OBsOOCkyzjgb7jgarjgbYNCivjgb/jgoTjgoLjgags44Go44GX44GC44GNDQor44KI44GT44GILOOBk+OBhuOBnuOBhg0KK+OBv+OChOOBleOBiyzjgZHjgYTjgYTjgaENCivjgb/jgoTjgZ8s44Gy44KN44KG44GNDQor44G/44KE44GfLOOBi+OBmuOBig0KK+OBv+OChOOBhuOBoSzjgb7jgZXjgbLjgo0NCivjgYbjgaHjgoTjgb4s44G/44GN44GTDQor44GV44GL44GELOOCiuOCh+OBhuOBmeOBkQ0KK+OBv+OChOOBluOCjyzjgajjgZfjgYLjgY0NCivjgb/jgZ7jgbbjgaEs44GI44GE44GTDQor44G/44Ge44GQ44GhLOOBguOBjeOCiQ0KK+OBv+OBnuOBkOOBoSzjgYTjgZrjgb8NCivjgb/jgZrjgoLjgags44GC44Gk44Gy44GTDQor44G/44Ga44GuLOOBvuOBleOCiOOBlw0KK+OBv+OBmuOBrizjgb7jgZXjgobjgY0NCivjgb/jgZrjga4s44KG44GG44GYDQor44G/44Ga44GX44G+LOOChuOBjeOBig0KK+OBv+OBmuOBnyzjgobjgZ/jgYsNCivjgb/jgZrjgZ/jgass44Gy44GV44GoDQor44KC44GOLOOBi+OBmuOBruOCig0KK+OCguOBjizjgoLjgobjgosNCivjgoLjgY4s44Gy44KN44GXDQor44KC44KC44GbLOOBoOOBhOOBmeOBkQ0KK+OCguOCk+OBvizjgobjgYbjgZgNCivjgoLjgoos44KM44GE44GTDQor44KC44KKLOOBkeOBhOOBmeOBkQ0KK+OCguOCiizjgZHjgpPjgYTjgaENCivjgoLjgoos44G+44GV44Gy44KNDQor44KC44KKLOOCiuOBiw0KK+OCguOCiizjgaTjgajjgoANCivjgoLjgorjgoLjgags44KG44GN44Gy44KNDQor44KC44KK44GuLOOCiOOBhuOBmeOBkQ0KK+OCiOOBl+OBoCzjgarjgYrjgbXjgb8NCivjgoLjgorjgZ8s44Gy44Gn44Gu44G2DQor44KC44KK44GfLOOBi+OBmuOBsuOBlQ0KK+OCguOCiuOBnyzjgYvjgaTjgb8NCivjgoLjgorjgZ8s44KI44GX44KEDQor44KC44KK44GfLOOBl+OBkuOBig0KK+OCguOCiuOCj+OBjSzjgZ/jgY/jgYoNCivjgoLjgo0s44KI44GX44KN44GGDQor44KC44Gf44GELOOBsuOCjeOBlw0KK+OCguOBqOOBsOOChOOBlyzjgZXjgajjgosNCivjgoLjgajjga/jgZcs44GX44GS44G+44GVDQor44KC44Go44KE44G+LOOBvuOBleOBruOCig0KK+OCguOBqOOBluOCjyzjgobjgYbjgZgNCivjgoDjgYvjgo8s44GE44Gk44GTDQor44KA44Gq44GL44GfLOOBteOBv+OBkw0KK+OCgOOCieOBi+OBvyzjgbLjgo3jgYLjgY0NCivjgoDjgonjgYvjgb8s44KI44GX44GNDQor44KA44KJ44GL44G/LOOBsuOCjeOChuOBjQ0KK+OCgOOCieOBi+OBvyzjgoTjgZnjgZMNCivjgoDjgonjgYvjgb8s44GC44GN44Gy44GVDQor44KA44KJ44GL44KPLOOBvuOBleOBkw0KK+OCgOOCieOBquOBiyzjgb7jgobjgZMNCivjgoDjgonjgZ8s44Go44KC44Gu44KKDQor44KA44KJ44GfLOOBsuOCjeOBjQ0KK+OCgOOCieOChOOBvizjgZHjgpPjgZgNCivjgoDjgonjgoTjgb4s44Gy44KN44GXDQor44KA44KN44Gv44GXLOOBk+OBhuOBmA0KK+OCgOOBqOOBhizjgYvjgYrjgosNCivjgoDjgajjgYYs44GC44GN44GTDQor44Gq44GwLOOBsuOCjeOChuOBjQ0KK+OBquOBjOOBhCzjgb7jgZXjgosNCivjgarjgYzjgYQs44Gq44GK44GC44GNDQor44Gq44GM44GuLOOBi+OBpOOChA0KK+OBquOBjOOBrizjgZ/jgb7jgb8NCivjgarjgYzjgYos44KE44GZ44Gy44KNDQor44KE44G+44KC44GoLOOBi+OBmuOBsuOCjQ0KK+OBquOBjOOBiuOBkSzjgZXjgajjgZcNCivjgarjgYzjgYrjgZUs44GC44GN44Gy44KNDQor44Gq44GM44GX44G+LOOBi+OBpOOChA0KK+OBquOBjOOBl+OBvizjgY/jgb8NCivjgarjgYzjgZ8s44G/44GNDQor44GK44GK44GwLOOBleOBqOOBlw0KK+OBquOBjOOBnyzjgZfjgpPjgZgNCivjgarjgYzjgZ8s44GX44KH44GG44G444GEDQor44Gq44GM44Gf44GrLOOBpOOCiOOBlw0KK+OBquOBhOOBqOOBhizjgoTjgZnjga7jgooNCivjgarjgYvjgaEs44KI44GX44Gv44KLDQor44Gq44GL44GgLOOCiOOBl+OChuOBjQ0KK+OBquOBi+OBoOOBhCzjgobjgYbjgYTjgaENCivjgarjgYvjgYzjgo8s44Gq44GK44KG44GNDQor44Gq44GL44GM44KPLOOCiOOBl+OChuOBjQ0KK+OBquOBi+OBjOOCjyzjgYLjgaTjgZcNCivjgarjgYvjgYzjgo8s44Gy44KN44KG44GNDQor44Gq44GL44Gv44KJLOOBmOOCheOCkw0KK+OBquOBi+OBhCzjgZHjgYTjgYTjgaENCivjgarjgYvjgYQs44GX44GuDQor44Gq44GL44GY44G+LOOBn+OBi+OBlw0KK+OBquOBi+OBmOOBvizjgZPjgYbjgZgNCivjgarjgYvjgoDjgoks44GX44KF44GG44GUDQor44Gq44GL44KA44KJLOOBvuOBleOChuOBjQ0KK+OBjeOBv+OBsuOCiSzjgb/jgYsNCivjgYTjgajjgYYs44Gf44GL44Gy44GVDQor44Gq44GL44KA44KJLOOBk+OBhuOBmA0KK+OBquOBi+OCgOOCiSzjgZ/jgaTjgoQNCivjgarjgYvjgoDjgoks44GL44Ga44KG44GNDQor44Gq44GL44KA44KJLOOBr+OBmOOCgQ0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgYLjgY0NCivjgarjgYvjgoDjgoks44Gy44KN44GNDQor44Gq44GL44KA44KJLOOBv+OBjQ0KK+OBquOBi+OCgOOCiSzjgajjgoLjgYoNCivjgarjgYvjgavjgZcs44GE44Ga44KLDQor44Gq44GL44Gr44GXLOOBn+OBi+OBsuOCjQ0KK+OBquOBi+OBrizjgobjgYbjgZMNCivjgarjgYvjga4s44KE44GZ44GC44GNDQor44Gq44GL44GuLOOBpuOBpOOChA0KK+OBquOBi+OBrizjgYvjgZrjga7jgooNCivjgarjgYvjga4s44GC44Gk44GXDQor44Gq44GL44GKLOOBguOBjeOBkw0KK+OBquOBi+OBleOBjyzjgZfjgofjgYbjgZ/jgaQNCivjgarjgYvjgZss44Gy44KN44Gf44GLDQor44Gq44GL44GfLOOBj+OCi+OBvw0KK+OBquOBi+OBnyzjgbLjgo3jgb8NCivjgarjgYvjgZ8s44KE44GZ44Gy44KNDQor44Gq44GL44Gf44GRLOOBn+OBj+OBig0KK+OBquOBi+OChOOBvizjgbXjgb/jgYoNCivjgarjgb/jgY0s44GR44GE44GXDQor44Gq44Gq44GV44KPLOOBquOBv+OBmA0KK+OBquOCk+OBsCzjgaDjgYTjgZnjgZENCivjgarjgpPjgoLjgY8s44GI44G/44GTDQor44Gt44KC44GoLOOBquOBpOOBkw0KK+OBreOCguOBqCzjgb/jgaTjgYLjgY0NCivjgavjgYQs44KI44GX44GTDQor44Gr44GE44GnLOOBsuOBp+OBpOOBkA0KK+OBq+OBhOOBj+OCiSzjgbLjgafjgoQNCivjgavjgYTjgZrjgb4s44Gf44GE44Gh44KN44GGDQor44Gr44GL44G/LOOBguOBjeOCiQ0KK+OBq+OBl+OBsOOChOOBlyzjgb7jgZXjgbLjgZMNCivjgavjgZfjgaAs44KI44GX44KEDQor44Gr44GX44Gv44KJLOOBl+OBjeOBkw0KK+OBq+OBl+OBr+OCiSzjgZXjgajjgZcNCivjgavjgZfjgYvjgo8s44Gf44GL44Gy44KNDQor44Gr44GX44GL44GcLOOBi+OBmuOBruOCig0KK+OBq+OBl+OBv+OChCzjgZXjgajjgZcNCivjgavjgZfjgoDjgoks44GX44KT44GE44GhDQor44Gr44GX44KA44KJLOOBjeOCj+OCgA0KK+OBq+OBl+OChOOBvizjgbLjgajjgZcNCivjgavjgZfjgoTjgb4s44KC44Go44GC44GNDQor44Gr44Gj44GfLOOBi+OBpOOBguOBjQ0KK+OBq+OCjyzjgY3jgojjgZcNCivjgajjgYbjgZTjgYYs44G+44Gq44G2DQor44Gr44KPLOOBi+OBpOOChA0KK+OBruOBtuOBr+OCiSzjgZPjgYbjgZgNCivjgYrjgYzjgo8s44KG44GG44GTDQor44Gu44GM44G/LOOBiuOBleOCgA0KK+OBruOBjOOBvyzjgZjjgoXjgpPjgYTjgaENCivjga7jgoLjgags44G/44GLDQor44Gu44KA44KJLOOBvuOBquOBtg0KK+OBruOCgOOCiSzjgZ/jgYvjgbLjgo0NCivjga7jgZ7jgYgs44Gv44GY44KBDQor44Gs44G+44GfLOOBpuOBpA0KK+OBiuOBoOOBmOOBvizjgYjjgooNCivjgYrjgYrjgYzjgYjjgoos44Go44GK44KLDQor44GK44GM44GfLOOBsuOBp+OBjQ0KK+OBiuOBjOOCjyzjgZfjgZLjgosNCivjgYrjgYzjgo8s44Gf44GR44GKDQor44GK44GK44GOLOOBn+OBkeOBlw0KK+OBiuOBjuOBj+OBvCzjgojjgYbjgZjjgo3jgYYNCivjgYrjgZQs44Go44KC44GNDQor44GK44GQ44KJLOOBsuOCjeOChuOBjQ0KK+OBiuOBiuOBsCzjgajjgoLjgbLjgo0NCivjgYrjgYrjgbDjgoTjgZcs44KI44KK44GTDQor44GK44GK44GILOOCiOOBhuOBhOOBoQ0KK+OBiuOBiuOBjOOBvizjgZPjgYbjgYTjgaENCivjgYrjga/jgZcs44Gq44GK44GNDQor44GK44GK44GE44GXLOOBkeOCk+OBmA0KK+OBiuOBiuOBi+OCjyzjgoTjgZnjgbLjgZMNCivjgYrjgYrjgY3jgaks44G+44GV44GKDQor44GK44GK44GP44G8LOOBsuOCjeOChuOBjQ0KK+OBiuOBiuOBj+OBvCzjgbLjgo3jgbXjgb8NCivjgYrjgYrjgY/jgb4s44G+44GT44GoDQor44GK44G+LOOBvuOCguOCiw0KK+OBiuOBvuOBiCzjgoDjgaTjgo3jgYYNCivjgYrjgb7jgYgs44Gf44GL44GXDQor44GK44GK44KC44KKLOOBqOOCguOBsuOCjQ0KK+OBiuOBiuOCguOCiizjgb/jgaTjgojjgZcNCivjgYrjgYrjgoLjgoos44Gq44GK44GNDQor44GK44GK44KC44KKLOOBsuOCjeOBjQ0KK+OBiuOBiuOCguOCiizjgb7jgZXjgoTjgZkNCivjgYrjgYrjgoLjgags44G/44Gk44KLDQor44GK44GK44Gr44GXLOOBguOBhOOBkw0KK+OBiuOBiuOBq+OBlyzjgZHjgpPjgZgNCivjgYrjgYrjgavjgZcs44G+44GV44Gm44KLDQor44GK44GuLOOBguOBjeOCiQ0KK+OBiuOBiuOBrOOBvizjgbLjgo3jgY0NCivjgYrjgYrjgZXjgYss44KK44GVDQor44GK44GK44GV44KPLOOBn+OBi+OBsuOCjQ0KK+OBiuOBiuOBleOCjyzjgZnjgb/jgZMNCivjgYrjgZfjgb4s44Gf44GL44GXDQor44GK44GX44KNLOOBl+OCk+OBhOOBoQ0KK+OBiuOBiuOBnyzjgYLjgZXjgZMNCivjgYrjgYrjgZ8s44GC44Gk44GKDQor44GK44GK44GfLOOBsuOBp+OChuOBjQ0KK+OBiuOBiuOBnyzjgb7jgZXjgb8NCivjgYrjgYrjgZ8s44KA44Gt44KE44GZDQor44GK44GK44GfLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBiuOBiuOBn+OBqyzjgoTjgZnjgbLjgo0NCivjgYrjgYrjgaQs44Gy44KN44KG44GNDQor44GK44GK44Gk44GLLOOBn+OBi+OBlw0KK+OBiuOBiuOBpOOBjSzjgYLjgY3jgbLjgo0NCivjgYrjgYTjgYvjgo8s44G/44Gh44GKDQor44GK44GLLOOCiOOBl+OBsuOBlQ0KK+OBiuOBiyzjgbLjgafjgY0NCivjgYrjgYss44G144G/44GTDQor44GK44GL44GgLOOBv+OBjQ0KK+OBiuOBi+OBoCzjgoTjgZnjgZcNCivjgYrjgYvjgaAs44KG44GG44GE44GhDQor44GK44GL44GgLOOBleOBqOOCiw0KK+OBiuOBi+OBkOOBoSzjga7jgbbjgbLjgo0NCivjgYrjgYvjgYQs44KG44Gf44GLDQor44GK44GL44G+44GkLOOBn+OBi+OBsuOCjQ0KK+OBiuOBi+OCguOBqCzjgojjgZfjgYLjgY0NCivjgYrjgYvjgoLjgags44GI44GE44GE44GhDQor44GK44GL44KC44GoLOOBsuOBp+OBig0KK+OBiuOBi+OCguOBqCzjgb7jgZXjgbbjgb8NCivjgYrjgYvjgoLjgags44G+44GV44Gy44KNDQor44GK44GL44KC44GoLOOBv+OBoeOBr+OCiw0KK+OBiuOBi+OCguOBqCzjga7jgorjgYoNCivjgYrjgYvjga4s44Go44KC44Gy44KNDQor44GK44GL44GW44GNLOOChuOBjeOBqA0KK+OBiuOBjeOCguOBqCzjgYjjgaTjgZMNCivjgYrjgY/jga4s44KI44GX44Gf44G/DQor44GK44GP44KE44G+LOOChOOBmeOBig0KK+OBiuOBiuOBvyzjgZfjgZLjgosNCivjgYrjgYrjga4s44Gq44GK44GNDQor44GK44GK44GuLOOBsuOCjeOBteOBvw0KK+OBiuOBiuOBrizjgbLjgo3jgZcNCivjgYrjgYrjga7jgZss44GY44KF44KT44GTDQor44GK44Gu44GW44GNLOOBn+OBi+OBlw0KK+OBiuOCiuOBiCzjgojjgZfjgZMNCivjgYrjgZbjgY0s44G+44GV44GTDQor44Go44GP44G/44KELOOBpuOBpOOChA0KK+OBleOBhOOBoSzjgYvjgYrjgooNCivjgZXjgYTjgajjgYYs44GX44KT44GE44GhDQor44GV44GE44Go44GGLOOBsuOBqOOBjQ0KK+OBleOBhOOBqOOBhizjgbLjgafjgYLjgY0NCivjgZXjgYTjgajjgYYs44Gy44KN44Gf44GLDQor44GV44GE44Go44GGLOOChuOBn+OBiw0KK+OBleOBhOOBqOOBhizjgoTjgZnjgbLjgZMNCivjgZXjgYTjgajjgYYs44Gf44GE44GXDQor44GV44GE44Go44GGLOOBi+OBiuOCiw0KK+OBr+OBi+OBvuOBoCzjgYvjgogNCivjgZXjgYvjgZDjgaEs44GT44GG44GYDQor44GV44GL44GELOOBvuOCiuOBkw0KK+OBleOBi+OBjeOBsOOCiSzjgZ/jgYvjgYoNCivjgZXjgYvjgY3jgoLjgags44KI44GX44GIDQor44GV44GL44KC44GoLOOBiOOBhOOBmA0KK+OBleOBi+OCguOBqCzjgYjjgooNCivjgZXjgYvjgoLjgags44Gy44Gn44Gy44KNDQor44GV44GL44KC44GoLOOBhOOBmuOBvw0KK+OBleOBi+OCguOBqCzjgZHjgYTjgYTjgaENCivjgb/jgZ/jgass44GR44KT44GE44GhDQor44GV44GL44GG44GhLOOBj+OBq+OBsuOBkw0KK+OBleOBjeOCguOBqCzjgb7jgZXjgbLjgZMNCivjgZXjgY/jgb4s44G/44Gk44KLDQor44GV44GP44KJ44GELOOCguOBqOOBruOCig0KK+OBleOBrizjgorjgY3jgoQNCivjgZXjga4s44KK44KF44GG44GE44GhDQor44GV44GuLOOBl+OCheOBhuOBnuOBhg0KK+OBleOBleOBoCzjgZfjgoXjgpPjgZnjgZENCivjgZXjgZXjga/jgoks44GZ44GZ44KADQor44GV44GV44GNLOOBn+OBi+OBsuOBqA0KK+OBleOBleOBjSzjgajjgZfjgbLjgZMNCivjgZXjgZXjgY0s44KE44GZ44G144G/DQor44Go44Gg44GrLOOBpOOCiOOBlw0KK+OBleOBleOBjSzjgZvjgYTjgZgNCivjgZXjgZ/jgZEs44Gk44Gt44Gu44KKDQor44GV44Go44GGLOOChOOBmeOBsuOCjQ0KK+OBleOBqOOBhizjgZfjgpPjgZQNCivjgZXjgajjgYYs44Gy44GV44Gv44KLDQor44GV44Go44GGLOOChuOBhuOBhOOBoQ0KK+OBleOBqOOBhizjgojjgZfjgYLjgY0NCivjgZXjgajjgYYs44Gf44GL44GL44GaDQor44GV44Go44GGLOOCiuOBiOOBkw0KK+OBleOBqOOBhizjgajjgYrjgosNCivjgZXjgajjgYYs44KG44GG44GE44GhDQor44GV44Go44GGLOOBr+OCi+OBig0KK+OBleOBqOOBhizjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZXjgajjgYYs44Gu44G844KLDQor44GV44Go44GGLOOBk+OBhuOBmA0KK+OBleOBqOOBhizjgaDjgYTjgZnjgZENCivjgZXjgajjgYYs44GC44GN44KJDQor44GV44Go44GGLOOBkeOBhOOBn+OCjeOBhg0KK+OBleOBqOOBhizjgajjgoLjgZMNCivjgZXjgajjgYYs44GY44KF44KT44GYDQor44GV44Go44GGLOOBqOOCguOBjQ0KK+OBleOCj+OBoCzjgZHjgYTjgZ/jgo3jgYYNCivjgZXjgo/jgaAs44G+44GTDQor44GV44KP44GgLOOBv+OBoeOCiA0KK+OBhOOCj+OBnyzjgb7jgobjgb8NCivjgZXjgo/jgYQs44Go44GX44Gy44GTDQor44GV44KP44GELOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBleOChOOBrizjgYTjgY/jgoQNCivjgZvjgY0s44Gf44GR44GXDQor44Gb44GN44GQ44GhLOOBvuOBleOCiOOBlw0KK+OBm+OBjeOBkOOBoSzjgb/jgYsNCivjgZvjgY3jgZDjgaEs44GC44GN44KJDQor44Gb44GN44GtLOOBguOBjeOBsuOCjQ0KK+OBm+OBjeOBrizjgZ/jgYvjgZcNCivjgZvjgpPjgaos44Go44GX44G/44GkDQor44Gb44KK44GW44KPLOOBsuOCjeOChuOBjQ0KK+OBm+OBqCzjgYvjgaTjgoQNCivjgZfjgbDjgZ8s44GT44GG44GE44GhDQor44GX44Gw44GfLOOBvuOBleOBsuOBpw0KK+OBl+OBsOOBnyzjgZHjgYTjgZnjgZENCivjgZfjgbDjgZ/jgass44GV44Go44GXDQor44GX44G244Gf44GrLOOBjeOCh+OBhuOBkw0KK+OBl+OBjCzjgZXjgajjgosNCivjgZfjgZLjga7jgbYs44GL44Ga44KI44GXDQor44GX44G+LOOBv+OBjeOBkw0KK+OBl+OBvuOBoCzjgozjgYTjgZjjgo3jgYYNCivjgZfjgb7jgaAs44GV44Go44GTDQor44GX44G+44KA44KJLOOCiOOBl+OBv+OBpA0KK+OBl+OBv+OBmizjgZ/jgZHjgYvjgZoNCivjgZfjgb/jgZos44GV44Gg44G/44GhDQor44GX44KC44Gw44KE44GXLOOBjeOCiOOBlw0KK+OBl+OCguOBjOOCjyzjgZPjgYbjgZgNCivjgZfjgoLjgbLjgZTjgZcs44Gm44Gk44Gy44GVDQor44GX44KC44GE44GnLOOBn+OBhOOBlw0KK+OBl+OBquOBoCzjgYvjgaTjgb8NCivjgZfjga3jgYQs44KG44GLDQor44GX44KT44GM44GELOOBn+OBoOOBlw0KK+OBl+OBruOBoCzjgZPjgYbjgZgNCivjgZfjga7jga/jgoks44Gf44GL44Gy44KNDQor44GX44Gu44GW44GNLOOBqOOCguOCiOOBlw0KK+OBl+OBiuOChCzjgZ/jgY/jgoQNCivjgZfjgonjga/jgb4s44Gf44KN44GGDQor44GX44KJ44GE44GXLOOChuOBhuOBhOOBoQ0KK+OBl+OCieOBhOOBlyzjgZ/jgYvjgZcNCivjgZfjgZ/jgoks44Gf44GR44GXDQor44GX44KH44GG44GYLOOBsuOCjeOChuOBjQ0KK+OBl+OCh+OBhuOBmCzjgZfjgpMNCivjgb7jgZnjgoTjgb4s44G+44GV44Gy44GnDQor44GX44KF44Go44GGLOOChuOBv+OBkw0KK+OBneOBiOOBoCzjgbLjgafjgYvjgZoNCivjgZ3jga0s44Gy44Gn44GNDQor44Gd44Gt44GgLOOBn+OBj+OBig0KK+OBneOBruOBuSzjgb7jgZXjgbLjgo0NCivjgZ3jga7jgbks44G+44GV44GXDQor44Gd44KJ44GuLOOBv+OBuw0KK+OBmeOBoCzjgarjgYrjgbLjgo0NCivjgZnjgYzjgYQs44Gu44KK44KG44GNDQor44GZ44GM44KP44KJLOOBm+OBhOOBvg0KK+OBmeOBjuOCguOBqCzjgZ/jgYvjgbLjgo0NCivjgZnjgY7jgoLjgags44Gf44GL44G+44GVDQor44GZ44GO44GG44KJLOOCiOOBl+OBruOCig0KK+OBmeOBjuOChOOBvizjgb7jgZXjgbLjgo0NCivjgZnjgY7jgoTjgb4s44Gy44Gn44G+44GVDQor44GZ44GO44KE44G+LOOCjOOBhOOBkw0KK+OBmeOBmOOCg+OBjyzjgZ/jgYvjgoTjgZkNCivjgZnjgYss44Go44GK44KLDQor44GZ44GR44GM44KPLOOBsuOCjeOChuOBjQ0KK+OBmeOBv+OBquOBjCzjgY3jgb/jgZMNCivjgZnjgb/jgYrjgYss44Go44KC44KEDQor44GZ44Gq44KE44G+LOOBkeOCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgb7jgZXjgoQNCivjgZnjgZrjgY0s44Gy44KN44GXDQor44GE44GX44GELOOChOOBmeOBsuOBkw0KK+OBmeOBmuOBjSzjgZfjgZLjgosNCivjgZnjgZrjgY0s44Gf44GL44KG44GNDQor44GZ44Ga44GNLOOBsuOBp+OBsuOCjQ0KK+OChOOBvuOBl+OCjSzjgbLjgafjgY0NCivjgZnjgZrjgY0s44Gy44KN44GXDQor44GZ44Ga44GNLA0KK+OBmeOBmuOBjSzjgYvjgaTjgobjgY0NCivjgZnjgZrjgY0s44GL44Ga44Gu44KKDQor44GZ44Ga44GNLOOBk+OBhuOBhOOBoQ0KK+OBn+OBsOOBkyzjgY/jgb/jgZMNCivjgZ/jgbDjgZ8s44G+44GV44GNDQor44Gq44GL44GY44G+LOOBpuOCi+OChuOBjQ0KK+OBn+OBsOOBnyzjgojjgZfjgaTjgZANCivjgZ/jgaHjgbDjgaos44Go44GX44KG44GNDQor44Gf44GM44G/LOOBn+OBhOOBm+OBhA0KK+OBvuOBvuOBoCzjgZHjgpPjgZgNCivjgZ/jgYzjgo8s44G+44GT44GoDQor44Gf44GY44G+LOOCguOBqOOBsuOCjQ0KK+OBn+OBi+OBsOOChOOBlyzjgobjgY0NCivjgZ/jgYvjgaAs44Go44KC44KIDQor44Gf44GL44GgLOOBn+OBi+OBsuOCjQ0KK+OBn+OBi+OBjizjgYjjgb8NCivjgZ/jgYvjgY4s44Gg44GE44GZ44GRDQor44Gf44GL44Gv44GXLOOBl+OCk+OChA0KK+OBn+OBi+OBr+OBlyzjgobjgY3jgYoNCivjgZ/jgYvjga/jgZcs44Gy44KN44GNDQor44Gf44GL44Gv44GXLOOBsuOCjeOBkw0KK+OBn+OBi+OBr+OBlyzjgYTjgZrjgosNCivjgZ/jgYvjga/jgZcs44G+44GV44GNDQor44Gf44GL44Gv44GXLOOBv+OBl+OCh+OBhg0KK+OCj+OBn+OBquOBuSzjgb7jgY0NCivjgZ/jgYvjga/jgZcs44KE44GZ44GXDQor44Gf44GL44Gv44GXLOOChuOBn+OBiw0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgbjjgYQNCivjgZ/jgYvjga/jgZcs44G+44GV44G144G/DQor44Gf44GL44GELOOBsuOBp+OBjQ0KK+OBn+OBi+OBj+OCiSzjgZHjgpPjgZnjgZENCivjgZ/jgYvjgY/jgoks44GX44G7DQor44Gf44GL44G+44GhLOOBi+OBpOOBruOCig0KK+OBn+OBi+OBvuOBpCzjgYLjgY3jgojjgZcNCivjgb7jgaTjgarjgYws44KE44GZ44Gy44KNDQor44Gf44GL44KC44GoLOOCiOOBl+OBjQ0KK+OBn+OBi+OCgOOCiSzjga7jgbbjgYvjgaQNCivjgZ/jgYvjgYrjgYss44GU44GGDQor44Gf44GL44GZ44GOLOOBr+OCi+OBkw0KK+OBn+OBi+OChCzjgbLjgafjgYLjgY0NCivjgZ/jgYvjgoTjgb4s44Gy44KN44KG44GNDQor44GN44Gf44Gv44KJLOOBkeOCk+OBhOOBoQ0KK+OBn+OBkeOBoCzjgY/jgavjgbLjgacNCivjgZ/jgZHjgaAs44G+44GV44Gy44KNDQor44Gf44GR44Gv44GqLOOBvuOBleOBi+OBpA0KK+OBn+OBkeOBvuOBpCzjgb7jgZXjgb8NCivjgZ/jgZHjgYrjgYss44G/44Gu44KLDQor44GE44GX44GL44KPLOOCguOBqOOBteOBvw0KK+OBn+OBkeOBl+OBnyzjgarjgYrjgY0NCivjgZ/jgZHjgZ/jgass44Gu44G244KG44GNDQor44Gf44GR44GG44GhLOOBleOBqOOBlw0KK+OBn+OBkeOBhuOBoSzjgZXjgajjgZcNCivjgZ/jgZHjgoTjgb4s44Gf44GR44GXDQor44Gf44GR44GW44KPLOOBjeOCiOOBmA0KK+OBn+OBjeOBluOCjyzjgaTjgajjgoANCivjgZ/jgY3jgZbjgo8s44Gh44GL44KJDQor44Gf44G+44GELOOBqOOCguOChuOBjQ0KK+OBn+OBquOBr+OBlyzjga7jgbbjgobjgY0NCivjgZ/jgarjgYss44GR44KT44Gf44KN44GGDQor44Gf44Gq44GLLOOBk+OBmeOBkQ0KK+OBn+OBquOBiyzjgbLjgo3jgobjgY0NCivjgZ/jgarjgYss44Gy44KN44GXDQor44Gf44Gq44GLLOOBkeOBhOOBkw0KK+OBn+OBquOBiyzjgoLjgajjgY0NCivjgZ/jgarjgYss44Gb44GE44GYDQor44Gf44Gq44GLLOOBi+OBmuOBsuOBqA0KK+OBn+OBquOBiyzjgobjgYbjgZMNCivjgZ/jgarjgYss44GI44GE44GE44GhDQor44Gf44Gq44GLLOOBiOOBhOOBmA0KK+OBn+OBquOBiyzjgaTjga3jgbLjgo0NCivjgZ/jgarjgYss44G+44GV44Gy44KNDQor44Gf44Gq44GLLOOBruOCiuOBsuOCjQ0KK+OBn+OBquOBiyzjgYvjgZrjgarjgYoNCivjgZ/jgarjgYss44Gu44G844KLDQor44GE44GX44GgLOOBkeOCk+OChA0KK+OBn+OBquOBiyzjgYvjgZrjgYoNCivjgZ/jgavjgZDjgaEs44GX44GS44KLDQor44Gf44Gr44GQ44GhLOOBkeOCk+OBhOOBoQ0KK+OBn+OBq+OBhCzjgobjgorjgZMNCivjgZ/jgavjgoDjgoks44G/44Gh44KIDQor44Gf44Gr44GK44GLLOOBqOOCguOBkw0KK+OBn+OCk+OBrizjgobjgY3jgYoNCivjgZ/jgazjgb4s44G+44KC44KLDQor44KI44GT44KE44G+LOOCj+OBn+OCiw0KK+OBn+OBl+OCjSzjgYLjgY3jgokNCivjgZ/jgZfjgo0s44GR44KT44GE44GhDQor44Gf44GmLOOBsuOBp+OBqA0KK+OBn+OBhuOCiSzjgb7jgZPjgagNCivjgZ/jgZ7jgYgs44KG44GG44GTDQor44Gf44Ga44GRLOOBvuOBk+OBqA0KK+OBpuOCk+OCgizjgYvjgojjgZMNCivjgabjgonjgaAs44Gh44GI44GTDQor44Gm44KJ44KC44GoLOOBiOOBhOOBmA0KK+OBpuOCieOBiuOBiyzjgZHjgYQNCivjgabjgZrjgYss44Gy44KN44KG44GNDQor44Go44GQ44GhLOOBmOOCheOCk+OBkw0KK+OBqOOBhuOBvizjgZPjgYbjgYTjgaENCivjgajjgYbjgb4s44Gy44KN44KE44GZDQor44Go44GK44KE44G+LOOBi+OBmuOChuOBjQ0KK+OBqOOBjeOBiuOBiyzjgZ/jgYvjgZfjgZINCivjgZ/jgavjgoTjgb4s44Gy44Gn44GC44GNDQor44G/44GG44KJLOOBneOBhuOBhOOBoQ0KK+OBqOOBj+OCiSzjgYvjgZrjgYoNCivjgajjgY/jgoTjgb4s44Gy44KN44KEDQor44Go44G/44GE44GXLOOBj+OBq+OBsuOBkw0KK+OBqOOBv+OBi+OCjyzjga7jgorjgZMNCivjgajjgb/jgarjgYws44GC44Gk44GXDQor44Go44G/44GfLOOBteOBv+OBiA0KK+OBqOOBv+OBnyzjgoLjgajjgojjgZcNCivjgYrjgYrjgoLjgoos44G+44GV44KG44GNDQor44Go44KC44GfLOOBsuOBp+OBsuOBkw0KK+OBqOOCguOBrizjgZHjgYTjgZgNCivjgajjgorjgYvjgYQs44Gq44GK44GNDQor44Go44KK44GG44G/LOOCiOOBl+OBruOBtg0KK+OBqOOBpOOBiyzjgYLjgoTjgZMNCivjgajjgojjgaAs44GR44GE44GE44GhDQor44Go44KI44GgLOOBv+OBjeOBsuOCjQ0KK+OBqOOCiOOBiuOBiyzjgZ/jgY/jga7jgbYNCivjgaTjgaHjgaAs44GT44GG44GYDQor44Gk44GgLOOBk+OBhuOBhOOBoQ0KK+OBpOOBmOOBn+OBqyzjgb7jgZXjgaTjgZANCivjgaTjgYvjgoLjgags44KI44GX44Gm44KLDQor44Gk44GL44KC44GoLOOBsuOCjeOBguOBjQ0KK+OBpOOBi+OCj+OBjSzjgb7jgZXjgZ/jgYsNCivjgaTjgovjgb7jgY0s44KI44GG44GTDQor44GE44Gh44Gw44KT44GM44GbLOOChuOBjeOBkw0KK+OBleOBi+OBhCzjgb/jgbvjgZMNCivjgYbjgaHjgaAs44GL44Ga44Gy44KNDQor44GL44Gq44GK44GLLOOBk+OBhuOBuOOBhA0KK+OBhuOBoeOBoCzjgZ/jgaTjgoQNCivjgYbjgaHjgYbjgb8s44Gq44GK44Gy44GTDQor44GG44Gh44KE44G+LOOBteOBv+OBn+OBiw0KK+OBhuOBoeOChOOBvizjgobjgY0NCivjgYbjgaAs44GC44Gk44GTDQor44GG44Gg44GM44KPLOOBn+OCjeOBhg0KK+OBiuOBl+OBvizjgYLjgaTjgZMNCivjgYbjgYjjgaAs44GI44GE44GLDQor44GG44GI44GgLOOCiOOBl+OBv+OBpA0KK+OBhuOBiOOBr+OCiSzjgbLjgafjgobjgY0NCivjgYbjgYjjgoDjgoks44G+44GV44GNDQor44GG44GI44GuLOOBiuOBleOCgA0KK+OBhuOBiOOBrizjgbLjgo3jga7jgooNCivjgYbjgYjjgZnjgY4s44G+44GV44G/DQor44GG44GI44Gk44GNLOOBn+OBhOOBoQ0KK+OBhuOBi+OCjyzjgb7jgZXjgbLjgacNCivjgYbjgb7jgZrjgoEs44GX44KT44KEDQor44GG44KB44Gv44KJLOOBqOOBl+OBig0KK+OBhuOCgeOCgOOCiSzjgbLjgo3jgbXjgb8NCivjgYbjgoHjgZbjgo8s44Gy44KN44GXDQor44GG44GuLOOBsuOCjeOBlw0KK+OBhuOBrizjgbLjgZXjgoQNCivjgYbjgonjgoLjgags44GR44GEDQor44GG44KL44G+LOOBvuOBleOBteOBvw0KK+OBhuOBl+OBsCzjgb/jga7jgosNCivjgarjgYzjgZ8s44KK44KF44GG44GfDQor44GG44GX44GQ44GVLOOBqOOBl+OBguOBjQ0KK+OBr+OBm+OBjOOCjyzjgojjgZfjgYLjgY0NCivjgZXjgYvjgb7jgY0s44KG44KKDQor44GG44KP44G5LOOBvuOBleOChuOBjQ0KK+OCj+OBoCzjgYLjgY3jgZMNCivjgo/jgYvjgYos44GR44GE44GYDQor44KP44GL44GKLOOCjOOBhOOBkw0KK+OCj+OBjeOBnyzjgojjgYbjgZMNCivjgYTjga7jgb7jgZ8s44Gy44KN44G/DQor44KP44GP44GELOOBvuOBleOChA0KK+OCj+OBl+OBluOCjyzjgZHjgYTjgZMNCivjgo/jgZfjgZrjgYss44GT44GG44GYDQor44KP44Gf44G5LOOBvuOBleOBqOOBlw0KK+OCj+OBn+OBquOBuSzjga7jgorjgobjgY0NCivjgo/jgZ/jgarjgbks44GL44Ga44Gy44KNDQor44KP44Gf44Gq44G5LOOBl+OBkuOCiw0KK+OCj+OBn+OBquOBuSzjgZ/jgYvjgYoNCivjgo/jgZ/jgarjgbks44Gk44KI44GXDQor44KP44Gf44Gq44G5LOOBqOOCguOChuOBjQ0KK+OCj+OBn+OBquOBuSzjgaDjgYTjgaENCivjgo/jgZ/jgarjgbks44Gy44Gn44GNDQor44KP44Gf44Gq44G5LOOBsuOCjeOBi+OBmg0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgb8NCivjgajjgojjgZ8s44Gy44Go44GXDQor44KP44Gf44KKLOOBkeOBhOOBkw0KK+OBqOOBv+OChOOBmSzjgajjgZfjgbLjgZUNCivjgoTjgYjjgYzjgY0s44KI44GX44GC44GNDQor44KE44GOLOOBv+OCiOOBkw0KK+OChOOBjizjgojjgZfjgb7jgZUNCivjgoTjgY7jgazjgb4s44Gg44GE44GZ44GRDQor44KE44GPLOOBguOBjeOBqA0KK+OChOOBvuOBoCzjgYvjgZrjgbLjgZMNCivjgoTjgb7jgaAs44G+44GNDQor44KE44G+44GgLOOCiOOBhuOBkw0KK+OChOOBvuOBjuOBlyzjgYLjgaTjgZcNCivjgoTjgb7jgZDjgaEs44GT44GG44GE44GhDQor44KE44G+44GQ44GhLOOBqOOBl+OChuOBjQ0KK+OChOOBvuOBkOOBoSzjgYvjgYrjgosNCivjgoTjgb7jgZDjgaEs44GC44GN44KJDQor44KE44G+44GT44GXLOOBoOOBhOOBmeOBkQ0KK+OChOOBvuOCguOBqCzjgb7jgZXjgbLjgo0NCivjgoTjgb7jgoLjgags44GR44KT44GYDQor44KE44G+44KC44GoLOOBn+OBkeOBig0KK+OChOOBvuOCguOBqCzjgZvjgYTjgYTjgaENCivjgoTjgb7jgoLjgags44GX44KF44GG44GYDQor44Gf44Gh44Gw44GqLOOBvuOBleOBqOOBlw0KK+OChOOBvuOCguOBqCzjgZjjgoXjgpMNCivjgoTjgb7jgoLjgags44GR44KT44GE44GhDQor44Gv44KJ44Gf44GrLOOBqOOCguOBkw0KK+OChOOBvuOBquOBiyzjgZ/jgYvjgZcNCivjgoTjgb7jga0s44KI44GX44G144G/DQor44KE44G+44GX44GfLOOBguOBjeOBsuOBkw0KK+OChOOBvuOBl+OBnyzjgbLjgo3jgZcNCivjgoTjgb7jgZfjgZ8s44Gq44GK44GTDQor44KE44G+44Gf44GrLOOBn+OBi+OBlw0KK+OChOOBvuOBhuOBoSzjgajjgoLjgZMNCivjgoTjgb7jgZbjgY0s44GC44GN44KJDQor44KE44GqLOOBsuOCjeOBguOBjQ0KK+OChOOBquOBuSzjgbLjgo3jgY0NCivjgoTjgarjgYzjgo8s44KK44KH44GGDQor44KE44Gq44GOLOOBqOOBl+OBguOBjQ0KK+OChOOBquOBjuOBoCzjgorjgoXjgYbjgYTjgaENCivjgoTjgZXjgYss44GL44Ga44Gy44GnDQor44KE44GZ44GgLOOBvuOBleOBv+OBpA0KK+OChOOBmeOBteOBjyzjgobjgZ/jgYsNCivjgoTjgZnjgYvjgo8s44GN44KI44GL44GaDQor44KI44GT44GV44KPLOOBn+OBj+OChA0KK+OCiOOBk+OBnyzjgbLjgo3jgZcNCivjgojjgZPjgZ8s44GL44Ga44Gy44KNDQor44Gv44KJ44GgLOOBk+OBmeOBkQ0KK+OCiOOBk+OBhuOBoSzjgb7jgZXjgbLjgo0NCivjgojjgZPjgYbjgaEs44GX44KT44GZ44GRDQor44KI44GT44KE44G+LOOBvuOBk+OBqA0KK+OCiOOBk+OChOOBvizjgYvjgZrjga7jgbYNCivjgojjga3jgaAs44Gq44GK44GNDQor44KI44Gt44GuLOOBquOBiuOBvw0KK+OBi+OBleOBr+OCiSzjgZXjgajjgb8NCivjgojjgZfjgaAs44Gy44Gn44GKDQor44KI44GX44GgLOOBmOOCheOCkw0KK+OCiOOBl+OBoCzjgbLjgo3jgZcNCivjgojjgZfjgaAs44Gq44GK44GoDQor44KI44GX44GgLOOBsuOCjeOBlw0KK+OCiOOBl+OBqeOCgSzjgZfjgZrjgYsNCivjgojjgZfjga/jgoks44Gf44GL44Gy44KNDQor44KI44GX44GELOOBleOBqOOCiw0KK+OCiOOBl+OBhCzjgb7jgZPjgagNCivjgojjgZfjgYvjgo8s44GX44GK44KKDQor44KI44GX44G/LOOBn+OBhOOBjQ0KK+OCiOOBl+OBrizjgbXjgb/jgYoNCivjgojjgZfjga4s44KE44GZ44GXDQor44KI44GX44GuLOOBqOOCguOBkw0KK+OCiOOBl+OBiuOBiyzjgZHjgpPjgYTjgaENCivjgojjgZfjgYrjgYss44GT44GG44GE44Gh44KN44GGDQor44KI44GX44Gf44GRLOOBn+OBoOOBlw0KK+OCiOOBl+OBluOCjyzjgajjgZfjgYvjgaQNCivjgobjgZrjga/jgoks44GT44GG44GYDQor44Gc44KT44GSLOOBi+OBmuOBn+OBiw0KK+OBmuOBlyzjgb/jgYoNCivjgZTjgb8s44Gy44KN44GNDQor44GU44Go44GGLOOBsuOCjeOBlw0KK+OBhOOBkeOBoCzjgZ/jgZHjga/jgosNCivjgYTjgb4s44G+44GV44Gy44KNDQor44GC44G5LOOBvuOBquOBtg0KK+OBi+OBqOOBhizjgZfjgZLjgosNCivjgYvjgo/jgbDjgZ8s44GX44GS44KLDQor44GT44Gw44KE44GXLOOChuOBjeOBsuOBkw0KK+OBk+OCk+OBqSzjgY/jgavjgoDjga0NCivjgY/jgbws44G+44GV44Gy44GTDQor44GP44KJ44KC44GhLOOCiOOBhuOBkw0KK+OBvuOCi+OChOOBvizjgojjgZfjgYLjgY0NCivjgoLjgorjgYvjgY8s44KG44GN44GKDQor44KA44KJ44GK44GLLOOBsuOCjeOChuOBjQ0KK+OBquOBjOOBl+OBvizjgojjgYbjgZMNCivjgarjgYss44Go44GX44KEDQor44Gq44GL44Gv44KJLOOBn+OBj+OChA0KK+OBquOBi+OCgOOCiSzjgaTjgojjgZcNCivjgarjgYvjgZss44Go44G/DQor44Gq44KK44GfLOOBsuOBleOBiA0KK+OBq+OBl+OCgOOCiSzjgYjjgb/jgZMNCivjga7jgarjgYss44Gy44Gn44Gq44GKDQor44GK44GM44KPLOOCiOOBl+OBig0KK+OBiuOBkOOCiSzjgajjgYrjgosNCivjgYrjgYrjgb8s44G+44GT44GoDQor44GK44GL44GuLOOBvuOBleOChA0KK+OBl+OBvuOBoCzjgZjjgoXjgpPjgZgNCivjgZfjgb/jgZos44GL44Ga44Gu44GX44KTDQor44GX44KA44KJLOOBsuOBp+OChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgb/jgaTjgb7jgZUNCivjgZ/jgYvjgb7jgaQs44GR44KT44GE44GhDQor44GG44GI44GgLOOCgOOBpOOBig0KK+OBhuOBmCzjgZTjgYYNCivjgYbjgaTjgb8s44GX44KF44GG44GE44GhDQor44GC44G5LOOCiOOBhuOBhOOBoQ0KK+OBk+OCk+OBqSzjgZ/jgYvjgZcNCivjgZ/jgYvjga7jgYbjgaEs44GR44KT44GV44GPDQor44GE44Gu44GG44GILOOCgOOBreOBsuOCjQ0KK+OBquOBi+OBr+OCiSzjgbLjgajjgZcNCivjgYLjgaDjgaEs44KG44Gf44GLDQor44Gq44GL44GuLOOBsuOCjeOBjQ0KK+OBguOBhOOBsCzjga7jgorjgYLjgY0NCivjgYLjgYTjgbAs44Gf44GR44GXDQor44GC44GE44GwLOOBleOBqOOBlw0KK+OBguOBhOOBoCzjgb7jgZXjgbLjgo0NCivjgYLjgYTjga/jgoks44GC44Gk44GXDQor44GC44GL44GE44GXLOOBvuOBleOBiuOBvw0KK+OBguOBi+OBhOOCjyzjgojjgZfjgbLjgo0NCivjgYLjgYvjgYrjgY4s44Go44GX44Gy44GnDQor44GC44GN44GfLOOBpOOCiOOBlw0KK+OBguOBvuOBrizjgarjgYrjgZMNCivjgYLjgYrjgY0s44Gy44KN44GTDQor44GC44GK44GNLOOChuOBjeOBkw0KK+OBguOBiuOBrOOBvizjgbLjgajjgZcNCivjgYLjgYrjgoTjgY4s44GI44GE44GYDQor44GC44KJ44GNLOOBguOBjeOCiQ0KK+OBguOCiuOBvuOBoSzjgajjgZfjga7jgbYNCivjgYLjgorjgZ8s44Gy44Gn44GC44GNDQor44GC44GV44GgLOOBpuOBpOOChA0KK+OBguOBleOBiOOBoCzjgZ/jgYvjgbLjgo0NCivjgYLjgZXjga/jgoks44KI44GX44Gv44KLDQor44GC44GV44GL44KPLOOBi+OBmuOBsuOBkw0KK+OBguOBleOCguOBqCzjgaTjgajjgoANCivjgYLjgZXjga4s44KG44Gf44GLDQor44GC44Gf44GQ44GhLOOBsuOCjeOBlw0KK+OBguOChOOBjSzjga/jgovjgZMNCivjgbDjgbAs44GX44KF44KT44GZ44GRDQor44Gw44GwLOOBi+OBiuOCiw0KK+OBsOOBsCzjgarjgarjgZMNCivjgbDjgpMs44Gf44GR44GXDQor44Gg44GE44GT44GPLOOBv+OBoeOCiA0KK+OBoOOBpizjgZfjgZLjgbLjgZMNCivjgZXjga4s44GY44KF44KT44GE44GhDQor44G/44Gk44GK44GLLOOBl+OBkuOBjQ0KK+OBp+OCk+OBoCzjgYvjgZrjgbLjgZMNCivjganjgYQs44GI44G/DQor44GI44KT44GpLOOBqOOCguOBsuOBkw0KK+OBiOOCk+OBqSzjgojjgYbjgYTjgaHjgo3jgYYNCivjgYjjgZbjgo8s44Gq44KK44Gy44GnDQor44G144GY44GILOOBn+OBkeOBteOBvw0KK+OBteOBmOOBhCzjgYvjgZrjgbLjgo0NCivjgbXjgZjjgYQs44G+44GV44GC44GNDQor44G144GY44G+44GNLOOBvuOBleOBi+OBpA0KK+OBteOBmOOCguOBqCzjgb/jgo8NCivjgbXjgZjjgoLjgags44G/44GN44GKDQor44G144GY44KA44KNLOOBk+OBhuOBmA0KK+OCguOCjeOBmuOBvyzjgYvjgpPjgZgNCivjgbXjgZjjgZXjgo8s44GR44KT44GYDQor44G144GY44GfLOOBsuOCjeOChuOBjQ0KK+OBteOBi+OBmyzjgZ/jgaTjgoQNCivjgbXjgY/jgaAs44GX44Gb44GEDQor44G144GP44Gp44KBLOOBn+OBi+OBlw0KK+OBteOBj+OBhCzjgbLjgZXjgZcNCivjgbXjgY/jgarjgYws44G144G/44Gy44GVDQor44G144GP44GX44G+LOOBsuOBp+OBig0KK+OBteOBj+OBluOCjyzjgb7jgorjgYsNCivjgbXjgovjgbDjgoTjgZcs44GC44GN44KJDQor44G144KL44GL44KPLOOBsuOBp+OBjQ0KK+OBteOCi+OBi+OCjyzjgYLjgZHjgb8NCivjgZTjgYYs44Gv44GqDQor44GU44G+44KLLOOBmeOBmeOCgA0KK+OBlOOBqOOBhizjgZfjgofjgYYNCivjgZTjgajjgYYs44Gf44Gk44KEDQor44GU44Go44GGLOOBoeOBmuOBiw0KK+OBruOCguOBqCzjgYvjgYrjgosNCivjga/jgY7jgo/jgoks44KK44KF44GG44GfDQor44Gv44GE44KE44G+LOOBjeOCh+OBhuOBkw0KK+OBr+OBvizjgYvjgZrjgb/jgaENCivjga/jgb7jgaEs44GX44KF44GG44GE44GhDQor44Gv44G+44GgLOOBquOBiuOBsuOBlQ0KK+OBr+OBvuOBn+OBqyzjgZfjgZLjgYoNCivjga/jgarjgYQs44KE44GZ44Gy44GoDQor44Gv44Gq44GfLOOBsuOCieOBjw0KK+OBr+OBreOBmCzjgbLjgo3jgZMNCivjga/jgpPjgZbjgo8s44G+44GV44Gy44GTDQor44Gv44KJLOOBv+OBuw0KK+OBr+OCiSzjgZfjgpPjgZgNCivjga/jgonjgaAs44GL44Ga44Gy44GnDQor44Gv44KJ44GgLOOBjeOCiOOBlw0KK+OBr+OBm+OBjOOCjyzjgobjgZ/jgYsNCivjga/jgZvjgYzjgo8s44Gq44GK44GTDQor44Gv44Gb44GM44KPLOOBpuOBpOOChA0KK+OBr+OBl+OBkOOBoSzjgb7jgZXjgojjgZcNCivjga/jgZfjgoLjgags44KE44GZ44KG44GNDQor44GU44Go44GGLOOBkeOBhA0KK+OBi+OBmOOCj+OCiSzjgojjgZfjgZMNCivjga/jgZnjgb8s44Gk44GQ44Gu44KKDQor44GL44Gf44KE44Gq44GOLOOBiOOBhOOBhOOBoQ0KK+OBr+OBn+OBkeOChOOBvizjgZfjgpPjgYTjgaENCivjgoDjgonjgYQs44G/44Gk44KG44GNDQor44Gv44Gf44GrLOOCiuOCheOBhuOBhOOBoQ0KK+OBr+OBo+OBqOOCiizjgoTjgZnjga7jgbYNCivjga/jgaPjgajjgoos44Gf44GL44KG44GNDQor44Gv44KE44GXLOOBn+OBi+OChuOBjQ0KK+OBiuOBiuOBmeOBvyzjgb7jgZXjgZMNCivjga/jgoTjgZcs44GL44Ga44Gq44KKDQor44Gv44KE44GXLOOCiOOBl+OBruOBtg0KK+OBr+OChOOBl+OBoCzjgZXjgY0NCivjgbLjgYws44Gf44GR44GKDQor44Gy44GM44GXLOOCiuOCheOBhuOBmeOBkQ0KK+OBsuOBjOOBl+OBoCzjgZfjgoXjgYbjgYTjgaENCivjgajjgojjgaAs44KG44GG44GE44Gh44KNDQor44Gy44GuLOOBn+OBkeOBsuOBkw0KK+OBsuOCiSzjgabjgaTjgoQNCivjgbLjgonjgoLjgags44GY44KF44KT44GTDQor44Gy44KJ44GKLOOBvuOBleOBqA0KK+OBsuOCieOBiizjgb7jgZXjgobjgY0NCivjgbLjgonjgZ8s44Gq44GK44G/DQor44Gy44KJ44KE44G+LOOBn+OBkeOBlw0KK+OBsuOCjeOBhCzjgZ/jgYvjgZcNCivjgbLjgo3jgYvjgo8s44Gu44KK44GL44GaDQor44Gy44KN44GL44KPLOOCiOOBn+OCjeOBhg0KK+OBsuOCjeOBvuOBmSzjgYvjgZrjgobjgY0NCivjgbLjgo3jgZss44G/44Gk44KLDQor44Gy44KN44GbLOOBn+OBi+OBig0KK+OBsuOBl+OChCzjgZXjgajjgZcNCivjgbvjgYbjgZfjgofjgYYs44GC44GN44GTDQor44G744KT44GgLOOBv+OBu+OBkw0KK+OBr+OChOOBlyzjga7jgZ7jgoANCivjgbvjgpPjgb4s44Gf44GR44GXDQor44G744KK44GQ44GhLOOBpuOCi+OBig0KK+OBu+OCiuOBhCzjgbLjgo3jgb8NCivjgbvjgZcs44GC44GN44Gy44GTDQor44G744Gd44GELOOBi+OBpOOChA0KK+OBu+OBneOBvyzjgoTjgZnjgYoNCivjgbvjgaPjgZ8s44G+44GV44Gy44GnDQor44G144GP44KN44GELOOBkeOCk+OBmA0KK+OBteOCi+OChCzjgYLjgY3jgbLjgagNCivjgYTjgbbjgYss44Gd44GG44GE44GhDQor44GE44Gh44GwLOOBn+OBi+OBlw0KK+OBhOOBoeOBr+OCiSzjgbLjgo3jgZcNCivjgYTjgaHjgYvjgo8s44Gy44KN44GXDQor44GE44Gh44KA44KJLOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OBhOOBoeOBruOBm+OBjSzjgajjgZfjgbLjgo0NCivjgYTjgYTjgaAs44Go44GX44KEDQor44GE44GE44GgLOOBmOOCheOCk+OBkw0KK+OBhOOBhOOBmOOBvizjgojjgYbjgZMNCivjgZfjga7jga/jgoks44Gv44GY44KBDQor44GE44GR44GgLOOCiuOBiA0KK+OBhOOBkeOBoCzjgobjgY0NCivjgYTjgZHjgaAs44KG44Gf44GLDQor44GE44GR44GgLOOCiOOBhuOBkw0KK+OBhOOBkeOBluOCjyzjgYvjgZrjgZ/jgYsNCivjgYTjgb7jgYQs44G+44KG44G/DQor44GE44G+44GELOOBkeOBhOOBnw0KK+OBhOOBvuOBhCzjgY/jgavjgbLjgZMNCivjgYTjgb7jgY0s44G/44Gu44KLDQor44GE44G+44KA44KJLOOBkeOCk+OBmeOBkQ0KK+OBhOOCguOBqCzjgZfjgofjgYbjgYTjgaENCivjgYLjgbks44KI44GX44KE44GZDQor44GE44Gq44GgLOOChuOBjeOBkw0KK+OBhOOBruOBhuOBiCzjgajjgoLjgbLjgo0NCivjgYTjga7jgYbjgYgs44Gf44GL44GXDQor44GE44Gu44GG44GILOOBvuOBleOBsuOBkw0KK+OBhOOBruOBhuOBiCzjgYvjgZrjgYoNCivjgYTjgorjgYgs44KI44GX44Gy44GTDQor44Gk44KL44GK44GLLOOBsuOBqOOBlw0KK+OBiuOBiuOBr+OBlyzjgbLjgZXjgajjgZcNCivjgYTjgZfjgaAs44KG44GG44GYDQor44GE44GX44GgLOOBkeOCk+OBmA0KK+OBhOOBl+OBoCzjgZPjgYbjgZgNCivjgYTjgZfjgaAs44Gv44GY44KBDQor44GE44GX44GQ44KNLOOCiOOBl+OBjQ0KK+OBhOOBl+OBr+OCiSzjgZfjgZLjgYoNCivjgYTjgZfjga/jgoks44GY44KF44KT44GTDQor44GE44GX44GELOOBv+OBpOOBsuOBkw0KK+OBhOOBl+OBi+OCjyzjgb7jgZXjga7jgooNCivjgYTjgZfjgYvjgo8s44GC44GN44KJDQor44GE44GX44KP44GfLOOBvuOBleOBruOCig0KK+OBhOOBqOOBhizjgZ/jgYvjgZcNCivjgYTjgajjgYYs44GC44GN44GTDQor44GE44Go44KE44G+LOOBqOOBl+OBig0KK+OBhOOBpOOBjSzjgYvjgZrjgbLjgo0NCivjgYTjgo/jgY0s44GT44GG44Gf44KN44GGDQor44GE44KP44GV44GNLOOBn+OBkeOBlw0KK+OBhOOBmuOBpCzjgobjgYbjgZgNCivjgZjjgbYs44GI44G/44GTDQor44GL44Gp44GELOOBpuOCi+OChOOBmQ0KK+OBguOBoOOBoSzjgZHjgpPjgZgNCivjgYvjgYQs44Gf44GL44KG44GNDQor44GL44GE44GbLOOBsuOCjeOBguOBjQ0KK+OBi+OBhOOBmuOBiyzjgbLjgo3jgZMNCivjgYvjgZjjgo/jgoks44Gy44KN44GXDQor44GL44GNLOOBi+OBpOOBqOOBlw0KK+OBi+OBjeOBvyzjgZPjgYbjgZgNCivjgZnjgY7jgZ8s44KM44GE44GNDQor44GL44GP44Gf44GrLOOChOOBmeOBkw0KK+OBi+OBv+OBsOOChOOBlyzjgYvjgaTjgbLjgZMNCivjgYvjgb/jgYzjgY0s44Gu44KK44Gy44GnDQor44GL44G/44KELOOBleOBqOOBlw0KK+OBi+OCguOBoCzjgZPjgYbjgYTjgaENCivjgYvjgoLjgags44Gf44KC44GkDQor44GL44KT44Gw44KE44GXLOOCguOBqOOBsuOCjQ0KK+OBi+OBreOBkyzjgZfjgpPjgZQNCivjgYvjga3jgZMs44G/44Gk44KEDQor44GL44Gt44GTLOOBj+OBq+OBsuOBkw0KK+OBi+OBreOBkyzjgb/jgaTjgYoNCivjgYvjgavjgZXjgo8s44Gf44Gk44KEDQor44GL44KLLOOBn+OBi+OChuOBjQ0KK+OBi+OBl+OCj+OBjizjgabjgaTjgoQNCivjgYvjgZnjgb8s44KI44GG44GE44Gh44KN44GGDQor44GL44Gf44GO44KKLOOBquOBiuOChuOBjQ0KK+OBi+OBqOOBhizjgb/jgaTjgbLjgo0NCivjgYvjgajjgYYs44GC44Gk44GXDQor44GL44Go44GGLOOChuOBhuOBkw0KK+OBi+OBqOOBhizjga7jgbbjgYoNCivjgYvjgajjgYYs44Gf44Gk44KN44GGDQor44Gf44GQ44GhLOOBmOOCheOCk+OBkw0KK+OBi+OBqOOBhizjgZHjgpPjgZgNCivjgYvjgajjgYYs44GT44GGDQor44GL44Go44GGLOOBl+OCk+OBhOOBoQ0KK+OBi+OBpOOCiSzjgYLjgY3jgokNCivjgZ3jgZQs44GR44KTDQor44GL44KP44Gy44GoLOOBvuOBk+OBqA0KK+OBi+OCj+OBhCzjgorjgYjjgZMNCivjgYvjgo/jgYvjgb8s44GT44GG44GYDQor44GL44KP44G/LOOBl+OBkuOCiw0KK+OBi+OCj+OCgOOCiSzjgZfjgpPjgZgNCivjgYvjgo/jgoDjgoks44Gm44KL44GNDQor44GL44KP44GV44GNLOOBsuOCjeOBlw0KK+OBi+OCj+OBleOBjSzjgajjgoLjgYvjgZoNCivjgYvjgo/jgYbjgaEs44G+44GV44GC44GNDQor44GL44Gk44GNLOOBguOBjeOBqOOCgg0KK+OBjeOBoCzjgbjjgYTjgZgNCivjgY3jganjgZPjgo0s44Gy44KN44GXDQor44KC44KKLOOBkeOCk+OBmA0KK+OBjeOBj+OBoSzjgb7jgZPjgagNCivjgY3jgY/jgYzjgo8s44G/44GIDQor44GN44KA44KJLOOBv+OBpOOBsuOCjQ0KK+OBjeOCgOOCiSzjgZXjgajjgosNCivjgY3jgoDjgoks44Gf44GR44GXDQor44GN44KA44KJLOOBn+OBj+OBvw0KK+OBjeOBruOBl+OBnyzjgajjgojjgY0NCivjgY3jga7jgZfjgZ8s44KI44GX44GC44GNDQor44GN44Gu44GX44GfLOOCiOOBl+OBr+OCiw0KK+OBjeOBruOBl+OBnyzjgobjgYvjgooNCivjgY3jgZfjgaAs44KG44GN44GTDQor44GN44GX44GL44KPLOOBvuOBleOBsuOBkw0KK+OBjeOBnyzjgajjgZfjgYoNCivjgY3jgZ/jgZDjgaEs44GR44GE44GZ44GRDQor44GC44G+44GuLOOBv+OBoeOCiA0KK+OBjeOBn+OCgOOCiSzjgb7jgarjgbYNCivjgY3jgZ/jgoTjgb4s44Gh44Gy44KNDQor44GT44Gw44KE44GXLOOBquOBiuOBqA0KK+OBk+OBsOOChOOBlyzjgoLjgajjga7jgooNCivjgZPjgbDjgoTjgZcs44Gy44KN44KG44GNDQor44GT44Gw44KE44GXLOOChOOBmeOBpuOCiw0KK+OBk+OBsOOChOOBlyzjgajjgoLjgYLjgY0NCivjgZPjgbDjgoTjgZcs44GY44KF44KT44GYDQor44GC44KB44GX44GfLOOBquOBiuOBjQ0KK+OBk+OBsOOChOOBlyzjgZPjgYbjgYTjgaENCivjgZPjgbDjgoTjgZcs44Gy44KN44G/DQor44GT44Gw44KE44GXLOOBkeOCk+OBmA0KK+OBk+OBsOOChOOBlyzjgY3jgojjgZ/jgYsNCivjgZPjgbDjgoTjgZcs44G+44KG44G/DQor44GT44Gw44KE44GXLOOBoOOBhOOBmeOBkQ0KK+OBk+OBsOOChOOBlyzjgZ/jgYvjgbLjgo0NCivjgYrjgaAs44G+44GV44Gy44GTDQor44GT44G844KKLOOBsuOBp+OBvw0KK+OBk+OBoOOBhOOCiSzjga7jgbbjgbLjgo0NCivjgZPjgaDjgb4s44Gb44GE44GYDQor44GL44KP44GQ44GhLOOBguOBpOOBlw0KK+OBk+OBoOOBpizjgb/jgaTjgosNCivjgZPjgYws44Gu44KK44KG44GNDQor44GT44GMLOOBguOBjeOCiQ0KK+OBk+OBjOOBreOBvuOCiyzjgb7jgZXjgb8NCivjgZPjga/jgoks44Go44KC44Gq44KKDQor44GT44GG44GgLOOBkeOCk+OBhOOBoQ0KK+OBk+OCk+OBrizjgb7jgarjgbYNCivjgZPjgZbjgYQs44GT44GG44GE44GhDQor44GT44GE44GRLOOBguOBjeOBig0KK+OBk+OBhOOBmuOBvyzjgb7jgZXjgYoNCivjgZPjgZjjgb4s44KE44GZ44KNDQor44GT44GY44G+LOOBkeOCkw0KK+OBk+OBvuOBpCzjgZ/jgYvjgZcNCivjgZPjgoLjgoos44KI44GX44Gf44GLDQor44GT44KT44GpLOOBqOOCguOBruOCig0KK+OBk+OCk+OBqSzjgYTjgZXjgoANCivjgZPjgpPjgZ8s44GR44KT44GE44GhDQor44GT44Gf44GLLOOBv+OBpOOBruOCig0KK+OBk+OBn+OBkSzjgb7jgZXjgY0NCivjgZPjgoTjgb4s44Go44GG44KN44GPDQor44GP44G8LOOBsuOCjeOBlw0KK+OBj+OBvOOBjSzjgYTjgY/jgZMNCivjgY/jgbzjgZ8s44KI44GG44GE44GhDQor44GP44GMLOOBn+OBpOOBmA0KK+OBj+OBvuOBjOOBhCzjgoTjgZnjgarjgooNCivjgY/jgavjgoLjgoos44KI44GG44GE44GhDQor44GP44KJ44KC44GoLOOBmOOCheOCkw0KK+OBj+OCieOBleOCjyzjgYLjgaTjgZcNCivjgY/jgonjgZfjgaos44GL44Gk44Gy44GoDQor44GP44KJ44GfLOOBleOBqOOBlw0KK+OBj+OCiuOCguOBqCzjgZ/jgZHjgYoNCivjgY/jgorjgZ8s44KI44GX44G+44GVDQor44GP44KN44GgLOOBqOOBl+OBi+OBmg0KK+OBj+OCjeOBoCzjgbLjgafjgYLjgY0NCivjgY/jgo3jgYvjgo8s44GX44KT44GUDQor44GP44KN44GNLOOBpOOCiOOBlw0KK+OBj+OCjeOBleOBjSzjgorjgofjgYbjgYTjgaENCivjgY/jgo3jgZXjgo8s44Gy44KN44KG44GNDQor44GP44KK44KF44GGLOOBkeOCk+OBmA0KK+OBj+OCj+OBnyzjgb7jgZXjgbLjgZMNCivjgY/jgZrjgb8s44Gf44GL44Gy44KNDQor44G+44G244GhLOOBn+OBj+OBvw0KK+OBvuOBiOOBoCzjgoTjgZnjgbLjgo0NCivjgb7jgYjjgaAs44GR44GE44GXDQor44G+44GI44GM44KPLOOBguOBjeOBsuOBkw0KK+OBvuOBiOOBi+OCjyzjgoTjgZnjgajjgZcNCivjgb7jgY3jgYos44Gb44GE44GE44GhDQor44G+44KB44Gv44KJLOOBguOBjeOBsuOCjQ0KK+OBvuOBleOBoCzjgbLjgo3jgobjgY0NCivjgb7jgZnjgaAs44KI44GG44GZ44GRDQor44G+44GZ44GgLOOBsuOCjeOBlw0KK+OBvuOBmeOBoCzjgZ/jgYvjgZcNCivjgb7jgZnjgaAs44Go44KC44GTDQor44G+44GZ44KE44G+LOOCiuOBpOOBkw0KK+OBvuOBpOOBoCzjgoDjgaTjgb8NCivjgb7jgaTjgaAs44Gq44GK44G/DQor44G+44Gk44GI44GgLOOBpOOCiOOBlw0KK+OBvuOBpOOBhCzjgZ/jgYvjgb7jgZUNCivjgb7jgaTjgoLjgags44GR44KT44Gf44KN44GGDQor44G+44Gk44KC44GoLOOBkeOBhOOBmA0KK+OBvuOBpOOCguOBqCzjgZvjgYTjgYTjgaENCivjgb7jgaTjgoLjgags44KG44GG44GE44GhDQor44G+44Gk44KC44GoLOOBl+OCheOBhuOBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgojjgYbjgZ/jgo3jgYYNCivjgb7jgaTjgarjgYws44G+44GV44KG44GNDQor44G+44Gk44GuLOOChOOBmeOBsuOBkw0KK+OBvuOBpOOBrizjgZfjgpPjgYTjgaENCivjgb7jgaTjgYrjgYss44G/44Gh44GTDQor44G+44KG44G/LOOBguOBjeOCiQ0KK+OCgeOBi+OBnyzjgbLjgo3jgY0NCivjgoHjgoks44GT44GG44GYDQor44G/44Gf44GrLOOBn+OCjeOBhg0KK+OBv+OBn+OBqyzjgb/jgaHjgbLjgagNCivjgb/jgags44KG44G/44GTDQor44G/44KE44GM44G/LOOBl+OBkuOBsuOBlQ0KK+OBhOOBiuOBjSzjgb7jgZXjgYLjgY0NCivjgb/jgoTjgoLjgags44GC44GN44Gy44KNDQor44G/44KE44KA44KJLOOBqOOCguOChuOBjQ0KK+OBv+OChOOBrizjgZ/jgYvjgYLjgY0NCivjgb/jgoTjgYbjgaEs44G+44GV44Gv44KLDQor44G/44KE44GW44GNLOOBvuOBleOBi+OBpA0KK+OCguOBoeOBmuOBjSzjgobjgY0NCivjgoLjgoLjgYQs44Gy44Gn44G+44GVDQor44KC44KKLOOChuOBiw0KK+OCguOCiizjgY/jgb/jgZMNCivjgoLjgorjgoLjgags44KI44GG44GE44GhDQor44KC44KK44KC44GoLOOCgOOBpOOBkw0KK+OCguOCiuOBiuOBiyzjgZHjgpPjgZgNCivjgoLjgorjgZXjgo8s44Go44KC44Gy44KNDQor44KC44KK44GfLOOBi+OBmuOCiOOBlw0KK+OCguOCiuOBnyzjgbLjgo3jga7jgbYNCivjgoLjgorjgZ8s44GC44GN44Gy44GTDQor44KC44KK44GfLOOBl+OCk+OChA0KK+OCguOCiuOChOOBvizjgZ/jgYvjgZcNCivjgoLjgorjgoTjgb4s44Gf44Gk44Gy44GTDQor44KC44Gm44GOLOOBqOOBiuOCiw0KK+OCgOOCieOBi+OBvyzjgb7jgZXjgYLjgY0NCivjgYLjgZXjga4s44GR44KT44GUDQor44GC44KG44GL44KPLOOBleOBqOOBlw0KK+OCgOOCieOBiizjgaDjgYTjgZnjgZENCivjgoDjgonjgYrjgYss44GX44GS44KLDQor44KA44KJ44GfLOOBqOOCguOBi+OBmg0KK+OCgOOBl+OBguOBkSzjgYjjgb/jgZMNCivjgoDjgZ8s44Gy44GV44GXDQor44Gq44G544GELOOBvuOBleOBsuOCjQ0KK+OBquOBjOOBhCzjgZPjgYbjgYTjgaENCivjgarjgYzjgYQs44G+44GV44GTDQor44Gq44GM44G/44GtLOOBleOChuOCig0KK+OBquOBjOOBleOCjyzjgZ/jgaDjgZcNCivjgarjgYzjgZ8s44Gm44Gk44GKDQor44Gq44GM44KE44G+LOOBpuOBpOOChA0KK+OBquOBkOOCiSzjgobjgb/jgZMNCivjgarjgYTjgajjgYYs44Gy44KN44GXDQor44Gq44GL44GM44KPLOOCiuOCheOBhuOBmA0KK+OBquOBi+OBjOOCjyzjgobjgb/jgZMNCivjgarjgYvjgYzjgo8s44KE44GZ44GXDQor44Gq44GL44GM44KPLOOBvuOBleOBsuOCjQ0KK+OBquOBi+OBr+OCiSzjgZ/jgYvjgZMNCivjgarjgYvjgYQs44GX44GS44KLDQor44Gq44GL44GELOOBn+OBi+OBsuOCjQ0KK+OBquOBi+OBmOOBvizjgajjgYrjgosNCivjgarjgYvjgZjjgb4s44KG44G/44GTDQor44Gq44GL44GY44G+LOOBi+OBpOOChA0KK+OBleOCj+OBoCzjgb/jgYjjgZMNCivjgarjgYvjgoDjgoks44GC44GN44Gu44G2DQor44Gw44KT44GwLOOBpuOBpOOChA0KK+OBquOBi+OCgOOCiSzjgbLjgafjgbLjgagNCivjgarjgYvjgoDjgoks44GT44GG44GE44GhDQor44Gq44GL44KA44KJLOOBvuOBleOBruOCig0KK+OBquOBi+OCgOOCiSzjgYvjgZrjgYoNCivjgarjgYvjgoDjgoks44G+44KKDQor44Gq44GL44KA44KJLOOBn+OBkeOBlw0KK+OBquOBi+OCgOOCiSzjgYLjgY3jgbLjgo0NCivjgarjgYvjga4s44G144G/44GTDQor44Gq44GL44GuLOOBsuOCjeOBi+OBmg0KK+OBquOBi+OBiizjga7jgbbjgobjgY0NCivjgarjgYvjgZfjgb4s44KE44GZ44Gy44KNDQor44Gq44GL44GfLOOBk+OBhuOBhOOBoQ0KK+OBquOBi+OBnyzjgYLjgY3jgZMNCivjgarjgYvjgoTjgb4s44Gq44GK44KE44GZDQor44Gq44GL44KE44G+LOOBsuOCjeOBteOBvw0KK+OBquOBi+OChOOBvizjgYLjgY3jgbLjgo0NCivjgarjgYvjgoTjgb4s44GR44GE44GTDQor44Gq44GL44GW44KPLOOBi+OBpOOChA0KK+OBquOBi+OBluOCjyzjgZHjgYTjgZnjgZENCivjgarjgYzjgYrjgYss44KG44Gf44GLDQor44Gq44Gq44GX44KDLOOCiOOBl+OBsuOCjQ0KK+OBquOCiuOBnyzjgaTjgojjgZcNCivjgarjgorjgZ8s44G+44GT44GoDQor44Gq44GZLOOBn+OBkeOBlw0KK+OBquOBmeOBnyzjgbLjgo3jgZcNCivjgavjgZcs44GL44Gt44Gu44G2DQor44Gr44GX44GgLOOBruOBtuOChuOBjQ0KK+OBq+OBl+OCgOOCiSzjgZXjgaHjgYoNCivjgb7jgZXjgaAs44Gf44GR44Gy44GTDQor44Gr44GX44KA44KJLOOBqOOCguOBkw0KK+OBq+OBl+OCgOOCiSzjgb7jgZXjgobjgY0NCivjgavjgZfjgYos44KI44GX44Gf44GgDQor44Gr44GX44KE44G+LOOBv+OBquOBkw0KK+OBq+OBo+OBnyzjgYvjgYrjgooNCivjga7jgYzjgb8s44KE44GZ44Gy44KNDQor44Gu44Gq44GLLOOBn+OBi+OBsuOCjQ0KK+OBruOBmyzjgbLjgafjgYoNCivjga7jgZ/jgbks44GX44KT44GUDQor44Gu44GoLOOBmOOCheOCk+OBhOOBoQ0KK+OBruOBpizjgbLjgo3jgY0NCivjgazjgY/jgYQs44G+44GV44Gy44KNDQor44GK44GhLOOBguOBjeOBsuOBkw0KK+OBiuOBoeOBguOBhCzjgajjgZfjgobjgY0NCivjgYrjgaAs44KI44GX44GL44GaDQor44GK44GM44GV44KP44KJLOOChuOBhuOBmA0KK+OBiuOBjOOCjyzjgojjgYbjgZgNCivjgYrjgYzjgo8s44GT44GG44GYDQor44GK44GM44KPLOOBvuOBleOBsuOBkw0KK+OBiuOBjOOCjyzjgb7jgZXjgoQNCivjgYrjgYzjgo8s44Gq44GK44Gf44GRDQor44GK44GM44KPLOOBqOOCguOBvw0KK+OBiuOBjuOBrizjgb7jgZPjgagNCivjgYrjgYrjgbAs44G+44GV44Gy44GnDQor44Gf44GN44G/44KELOOChuOBjeOBig0KK+OBiuOBiuOBr+OBlyzjgZ/jgaDjgobjgY0NCivjgYrjgYrjga/jgZcs44Gf44GP44G/44KTDQor44GK44GK44GELOOBoeOBleOBqA0KK+OBiuOBiuOBi+OCjyzjgYjjgb8NCivjgYrjgYrjgoLjgoos44GY44KF44KT44GLDQor44GK44KA44KJLOOBvuOChg0KK+OBiuOBquOBi+OBr+OCiSzjgZ/jgZHjgaTjgZANCivjgYrjgYrjgavjgZcs44KI44GX44Gu44KKDQor44GK44GuLOOBguOBjeOBkw0KK+OBiuOBiuOBiuOBiyzjgZ/jgYvjgZcNCivjgYrjgZfjgb4s44Gu44G2DQor44GK44GX44G+LOOBkeOCk+OBhOOBoQ0KK+OBhOOBkeOBvuOBpCzjgZ/jgYvjgZMNCivjgYrjgYrjgZ8s44Gf44GR44GXDQor44GK44GK44GfLOOBn+OBi+OBlw0KK+OBiuOBiuOBnyzjgZXjgaHjgZMNCivjgYrjgYrjgZ8s44Gf44G/44GTDQor44G144GP44GgLOOBv+OBiA0KK+OBiuOBnOOBjSzjgZHjgYTjgYTjgaENCivjgYrjgYTjgaAs44Gy44Go44GXDQor44GK44GE44GYLOOBj+OBq+OBsuOCjQ0KK+OBiuOBi+OBoCzjgZfjgpPjgZgNCivjgZnjgY7jgoLjgags44Gf44GL44KG44GNDQor44GK44GL44GW44GNLOOChOOBmeOBsuOCjQ0KK+OBiuOBi+OBluOBjSzjgoTjgZnjgZcNCivjgYrjgYvjgZbjgo8s44Gy44Go44GXDQor44GK44GP44GgLOOBpuOBpOOChA0KK+OBiuOBj+OBoCzjgb7jgZXjgY0NCivjgYrjgY/jgoDjgoks44GX44GS44KLDQor44GK44GP44KA44KJLOOBsuOBp+OBsuOBqA0KK+OBiuOBj+OBrizjgZPjgYbjgZ/jgo3jgYYNCivjgYrjgY/jgoTjgb4s44GC44GN44Gy44KNDQor44GK44GuLOOBquOBiuOBvw0KK+OBiuOBiuOBrOOBjSzjgbLjgafjga7jgooNCivjgYrjgYrjga/jgZcs44Go44GX44GKDQor44Go44GK44KELOOBvuOBleOBsuOCjQ0KK+OBiuOBqOOBkOOCjSzjga7jgbbjgobjgY0NCivjgZXjgYTjgZTjgYYs44Gf44GR44Gy44KNDQor44GV44GE44Go44GGLOOCiOOBl+OBn+OCjeOBhg0KK+OBleOBhOOBqOOBhizjgYLjgY3jgbLjgZUNCivjgZXjgYTjgajjgYYs44G144G/44Gy44GTDQor44GV44GE44Go44GGLOOBsuOCjeOBjQ0KK+OBleOBhOOBqOOBhizjgbLjgo3jgZcNCivjgZXjgYTjgajjgYYs44GY44KF44KTDQor44GV44GE44Go44GGLOOBi+OCk+OBmA0KK+OBleOBi+OBiOOBoOOBqyzjgb/jgYsNCivjgZXjgYvjgYQs44Gu44G244KE44GZDQor44GV44GL44GELOOBqOOBj+OBmOOCjeOBhg0KK+OBleOBi+OBnyzjgaTjgojjgZcNCivjgZXjgYvjgZ8s44GL44Ga44Gy44GTDQor44GV44GP44G+LOOBn+OBi+OBsuOCjQ0KK+OBleOBj+OCieOBsOOChOOBlyzjgYLjgaTjgZcNCivjgZXjgY/jgonjgYQs44G+44Gk44GKDQor44GV44GP44GfLOOCiOOBl+OBguOBjQ0KK+OBleOBleOBjSzjgb7jgZXjgYvjgZoNCivjgZXjgZXjgY0s44GC44GN44KJDQor44GV44GV44GNLOOBleOBoeOBkw0KK+OBleOBleOBjSzjgojjgZfjgobjgY0NCivjgZXjgZXjgoEs44KI44GG44GE44GhDQor44GV44Go44GGLOOBi+OBmuOBruOCig0KK+OBleOBqOOBhizjgb7jgZXjgbLjgZMNCivjgZXjgajjgYYs44KI44GX44Gy44KNDQor44GV44Go44GGLOOCiOOBl+OCjeOBhg0KK+OBleOBqOOBhizjga/jgZjjgoENCivjgZXjgajjgYYs44Gy44KN44G/DQor44GV44Go44GGLOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgZPjgYbjgZgNCivjgZXjgajjgYYs44GX44KH44GG44GYDQor44GV44Go44GGLOOChOOBiA0KK+OBleOBqOOBhizjgY/jgb/jgZMNCivjgZXjgajjgYYs44Gy44KN44KE44GZDQor44GV44Go44GGLOOCiuOBiA0KK+OBleOCj+OBoCzjgZ/jgYvjga0NCivjgZXjgo/jga/jgZcs44Gf44Gk44KG44GNDQor44GV44KP44GuLOOBi+OBmuOBsuOCjQ0KK+OBm+OBkOOBoSzjgZfjgoXjgYbjgbjjgYQNCivjgZvjgY0s44Go44KC44GTDQor44Gb44GN44GQ44GhLOOCiOOBl+OBsuOCjQ0KK+OBm+OBjeOBkOOBoSzjgZXjgajjgZcNCivjgZfjgbAs44GL44GK44KKDQor44GX44Gw44GfLOOBguOChOOBkw0KK+OBl+OBsOOBnyzjgb7jgZXjga/jgosNCivjgZfjgbbjgoQs44Gf44GL44GXDQor44GX44G+44GgLOOBl+OCheOBhuOBmA0KK+OBl+OBv+OBmizjgYvjgaTjgobjgY0NCivjgYTjgZfjgYvjgo8s44Gf44GL44KG44GNDQor44GX44G/44GaLOOBqOOCguOBsuOCjQ0KK+OBl+OBv+OBmizjgYvjgaTjgobjgY0NCivjgZfjgb/jgZos44GR44KT44GYDQor44GX44G/44GaLOOBkeOCk+OBn+OCjeOBhg0KK+OBteOBmOOBiOOBoCzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgZfjgoLjgoTjgb7jgaAs44GX44KT44GE44GhDQor44GX44Gq44GM44KPLOOBqOOCguOBsuOBpw0KK+OBl+OCk+OChCzjgb/jgaTjga7jgooNCivjgZfjgYrjgb8s44GX44KT44GYDQor44GX44GK44GkLOOBi+OBpOOBsuOBkw0KK+OBm+OBjeOBkOOBoSzjgajjgYrjgosNCivjgaTjga7jgaAs44Gf44GL44GXDQor44GX44KJ44GV44GLLOOBguOBpOOBig0KK+OBl+OCjeOBl+OBnyzjgbLjgo3jgobjgY0NCivjgZfjgZ/jgoks44Gy44GV44GXDQor44GX44KH44GGLOOBmOOCheOCk+OBhOOBoQ0KK+OBmeOBjOOCj+OCiSzjgb/jgbsNCivjgZnjgYzjgo/jgoks44GV44Go44GXDQor44GZ44GO44KC44GoLOOBl+OCh+OBhuOBhOOBoQ0KK+OBmeOBjuOBnyzjgajjgoLjgYvjgZoNCivjgZnjgY7jgZ8s44G+44GV44KI44KKDQor44GZ44GO44GfLOOBi+OBpOOBsuOBkw0KK+OBmeOBjuOBhuOCiSzjgZXjgajjgZMNCivjgZnjgY7jgYbjgoks44Go44KI44Gy44GVDQor44GZ44GO44KE44G+LOOBv+OBmuOBuw0KK+OBhOOBkeOBnuOBiCzjgb7jgZXjgajjgZcNCivjgZnjgY7jgoTjgb4s44Gy44KN44GC44GNDQor44GZ44GLLOOBqOOCguOChuOBjQ0KK+OBmeOBkeOBjOOCjyzjga7jgbbjgojjgZcNCivjgZnjgb/jga7jgYbjgYgs44Gy44Gn44GNDQor44GZ44G/44KI44GXLOOBn+OBreOBi+OBmg0KK+OBmeOBv+OCiOOBlyzjgajjgZfjgb/jgaQNCivjgZnjgarjgb8s44Gy44KN44KG44GNDQor44GZ44Ga44GNLOOChOOBoeOCiA0KK+OBmeOBmuOBjSzjgb7jgoLjgosNCivjgZnjgZrjgY0s44GC44GN44Gy44KNDQor44GZ44Ga44GNLOOBguOBjeOCiQ0KK+OBmeOBmuOBjSzjgbLjgo3jgYLjgY0NCivjgZnjgZrjgY0s44GE44Gj44G644GEDQor44GZ44Ga44GNLOOBvuOBleOBqA0KK+OBmeOBmuOBjSzjga7jgbbjgYLjgY0NCivjgZfjgofjgYbjgZgs44GX44GaDQor44GX44KH44GGLOOBl+OCh+OBhuOBn+OCjeOBhg0KK+OBn+OBsOOBnyzjgZ3jgYbjgYTjgaHjgo3jgYYNCivjgZ/jgaAs44Go44GX44GKDQor44Gf44Gp44GT44KNLOOBsuOBp+OChuOBjQ0KK+OBn+OBjOOBvyzjgZPjgYbjgZgNCivjgZ/jgZDjgaEs44Gf44GL44GXDQor44Gf44GQ44GhLOOBsuOCjeOBguOBjQ0KK+OBn+OBhCzjgb7jgZXjgabjgosNCivjgZ/jgYTjgoks44GC44Gk44GXDQor44Gf44GE44GVLOOBv+OBpOOBsuOCjQ0KK+OBn+OBmOOBvizjgY3jgojjgZcNCivjgZ/jgYvjgaAs44Gf44Gg44Gq44GKDQor44Gf44GL44GgLOOBiOOBpOOCjeOBhg0KK+OBn+OBi+OBjizjgabjgaTjgo3jgYYNCivjgZ/jgYvjga/jgZcs44GC44Gk44KEDQor44Gf44GL44Gv44GXLOOBsuOCjeOBlw0KK+OBn+OBi+OBr+OBlyzjgajjgYrjgosNCivjgZ/jgYvjga/jgZcs44Gq44GK44GNDQor44Gf44GL44Gv44GXLOOBleOBqOOBlw0KK+OBn+OBi+OBr+OBlyzjgobjgYbjgZgNCivjgZ/jgYvjga/jgZcs44Go44GX44GKDQor44Gf44GL44Gv44GXLOOChuOBhuOBmeOBkQ0KK+OBn+OBi+OBr+OBlyzjgarjgYrjgY0NCivjgZ/jgYvjga/jgZcs44KI44GX44G144G/DQor44Gf44GL44GELOOBl+OBruOBtg0KK+OBn+OBi+OBrizjgYvjgpPjgZMNCivjgZ/jgYvjgZfjgb4s44Gq44GK44KEDQor44Gf44GL44KE44G+LOOBsuOBp+OBpOOBkA0KK+OBn+OBkeOBoCzjgYvjgZrjgojjgZcNCivjgZ/jgZHjgYTjgaEs44GR44GE44GZ44GRDQor44Gf44GR44G+44GVLOOBkeOCk+OBhOOBoQ0KK+OBn+OBkeOCgOOCiSzjgZfjgbsNCivjgZ/jgZHjgoDjgoks44GX44KF44KT44GZ44GRDQor44Gf44GR44Gq44GLLOOBquOBiuOBqA0KK+OBn+OBkeOBl+OBnyzjgZfjgofjgYbjgZ7jgYYNCivjgZ/jgZHjgYbjgaEs44GC44Gk44GoDQor44Gf44GR44GG44GhLOOBsuOBqOOBlw0KK+OBn+OBkeOBhuOBoSzjgYjjgYTjgYTjgaHjgo3jgYYNCivjgZ/jgY3jgYvjgo8s44GC44Gk44GXDQor44Gf44GN44GN44GfLOOBn+OBi+OBlw0KK+OBn+OBjeOBluOCjyzjgbLjgafjgagNCivjgZ/jgZMs44KI44GX44GNDQor44Gf44GL44GuLOOCguOBqOOChuOBjQ0KK+OBn+OBvuOBjOOCjyzjgbLjgo3jgobjgY0NCivjgZ/jgb7jgY0s44GK44GV44KADQor44Gf44KA44KJLOOBi+OBmuOBn+OBiw0KK+OBn+OBquOBuSzjgbLjgo3jga7jgbYNCivjgZ/jgarjgbks44G144G/44GKDQor44Gf44Gq44GLLOOBjeOCh+OBhuOBuOOBhA0KK+OBn+OBquOBiyzjgY3jgofjgYbjgZMNCivjgZ/jgarjgYss44G/44G7DQor44Gf44Gq44GLLOOCiOOBl+OBsuOBlQ0KK+OBn+OBquOBiyzjgojjgYbjgZMNCivjgZ/jgarjgYss44G+44GV44KI44GXDQor44Gf44GrLOOBi+OBmuOBquOCig0KK+OBn+OBq+OBkOOBoSzjga7jgbbjgbLjgo0NCivjgZ/jgavjgZfjgofjgYYs44GX44KT44GUDQor44Gf44Gm44KE44G+LOOCiOOBl+OBteOBvw0KK+OBn+OBpOOBvyzjgb7jgZnjgb8NCivjgZ/jgYbjgoks44Gf44GL44Go44GXDQor44Gf44GW44KPLOOBqOOCguOChuOBjQ0KK+OBn+OBmuOBkSzjgZvjgYTjgYTjgaENCivjgabjgonjgaAs44GR44GE44GTDQor44Go44GG44G+LOOBi+OBmuOBsuOCjQ0KK+OBqOOBiuOChOOBvizjgYvjgZrjgbLjgo0NCivjgajjgoHjgYrjgY8s44GC44GN44GKDQor44Go44G/44GE44GILOOBr+OChOOBqA0KK+OBteOBn+OBpOOBjizjgbLjgo3jgZcNCivjgajjgoLjgajjgZcs44GR44KT44GYDQor44Go44Gt44GM44KPLOOBguOBjeOBkw0KK+OBiuOBj+OCgOOCiSzjga7jgorjgbLjgZMNCivjgajjgZfjgZfjgZIs44Gy44KN44GXDQor44Go44KI44GgLOOBi+OBmuOBquOCig0KK+OBqOOCiOOBquOBiyzjgb7jgZXjgoQNCivjgaTjgbDjgY0s44Gm44Gk44KEDQor44Gk44Gh44KC44GoLOOBteOBv+OBig0KK+OBpOOBoCzjgZXjgajjgZcNCivjgaTjgaAs44GL44KIDQor44Gk44GgLOOBqOOBl+OBiA0KK+OBpOOBmOOBhCzjgajjgoLjgZ/jgYsNCivjgaTjgZjjgoDjgoks44Gu44KK44GTDQor44Gk44GL44Gv44KJLOOBqOOBl+OCjeOBhg0KK+OBpOOBruOBoCzjgZfjgofjgYbjgZgNCivjgaTjgovjgY4s44Gv44KL44Gy44GTDQor44Gk44KL44GfLOOBpuOCi+OBsuOBkw0KK+OBpOOBl+OBvizjgY3jgazjgogNCivjgaTjgaTjgYQs44Gy44KN44KG44GNDQor44Gk44Gh44GgLOOBi+OBpOOChuOBjQ0KK+OBhuOBoeOBoCzjgZXjgajjgosNCivjgYbjgaHjgaAs44Gf44GP44GYDQor44GG44Gh44GP44KJLOOBn+OBkeOBlw0KK+OBhuOBoeOBn+OBqyzjgYvjgaTjgZMNCivjgYbjgYjjgaAs44GV44GN44GTDQor44GG44GI44GgLOOBoeOBiA0KK+OBhuOBiOOBoCzjgYzjgY8NCivjgYbjgYjjgaAs44GC44GN44Gu44KKDQor44GG44GI44KA44KJLOOBsuOCjeOBkw0KK+OBhuOBiOOBrizjgbLjgo3jgZcNCivjgYbjgYjjgaTjgY0s44G+44GNDQor44GE44GRLOOBvuOBleOCiw0KK+OBhuOCgeOBoCzjgb/jgbsNCivjgYbjgoHjgoDjgoks44Gq44Gk44GTDQor44GG44Gu44GNLOOBruOBtuOBsuOBkw0KK+OBhuOCieOBl+OBnyzjgajjgoLjgZMNCivjgYbjgonjgZ8s44Go44KC44KG44GNDQor44GG44GX44GKLOOCiOOBl+OBig0KK+OBhuOBn+OBjOOCjyzjgabjgaTjgoQNCivjgo/jgaAs44Go44KC44GTDQor44KP44GgLOOBguOBjeOBsuOBqA0KK+OCj+OBoCzjgbLjgo3jgZ/jgaQNCivjgo/jgaAs44G+44GV44Gy44KNDQor44KP44GM44Gk44G+LOOBl+OCh+OBhuOBhOOBoQ0KK+OCj+OBi+OBvuOBpCzjgobjgYbjgZgNCivjgo/jgY3jgZ8s44Gy44KN44GC44GNDQor44KP44GTLOOBsuOCjeOBi+OBmg0KK+OCj+OCiuOBi+OBnyzjgarjgYrjgobjgY0NCivjgo/jgZfjgZos44GX44KH44GGDQor44KP44Gf44Gq44G5LOOBl+OCheOCk+OBmA0KK+OCj+OBn+OBquOBuSzjgojjgZfjgobjgY0NCivjgo/jgZ/jgarjgbks44Go44GX44GKDQor44KP44Gf44Gq44G5LOOBjOOBjw0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgbXjgb8NCivjgYrjgoDjgoks44Gy44KN44Gy44GnDQor44KP44Gf44Gq44G5LOOBk+OBhuOBm+OBhA0KK+OCj+OBn+OBquOBuSzjgarjgYrjgZMNCivjgo/jgZ/jgarjgbks44KK44KF44GG44GE44GhDQor44KP44Gf44Gq44G5LOOBpuOBpOOCjeOBhg0KK+OChOOBjizjgajjgoLjgb8NCivjgoTjgY4s44KG44GG44GTDQor44KE44G+44GgLOOBn+OBi+OBqA0KK+OChOOBvuOBoCzjga7jgorjgajjgZcNCivjgoTjgb7jgaAs44Gy44Gn44G144G/DQor44KE44G+44GgLOOBl+OBkuOBig0KK+OChOOBvuOBoCzjgZ/jgZHjgbLjgo0NCivjgoTjgb7jgbXjgY8s44Gy44Gn44GKDQor44KE44G+44GQ44GhLOOBvuOCiuOBkw0KK+OChOOBvuOBkOOBoSzjgojjgYbjgZgNCivjgoTjgb7jgZDjgaEs44KI44GG44GTDQor44KE44G+44GQ44GhLOOBsuOCjeOBi+OBmg0KK+OChOOBvuOBmCzjgajjgYrjgosNCivjgoTjgb7jgYvjgo8s44GT44GG44GYDQor44KE44G+44KC44GoLOOBn+OBi+OBruOCig0KK+OChOOBvuOCguOBqCzjgZHjgpPjgYTjgaENCivjgoTjgb7jgoLjgags44G/44Gk44Ge44GGDQor44KE44G+44KC44GoLOOChuOBjeOBkw0KK+OChOOBvuOCguOBqCzjgbLjgo3jgoTjgZkNCivjgoTjgb7jgoLjgags44GT44GG44GYDQor44KE44G+44KC44GoLOOBvuOBleOBjQ0KK+OChOOBvuOCguOBqCzjgobjgYbjgZgNCivjgoTjgb7jgoLjgags44KG44Gf44GLDQor44KE44G+44GqLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OChOOBvuOBleOBjSzjgYvjgaTjgb8NCivjgoTjgb7jgZfjgZ8s44Gu44KK44Go44GXDQor44KE44G+44GX44GfLOOBqOOBiuOCiw0KK+OChOOBvuOBluOBjSzjgbLjgo3jgZcNCivjgoTjgarjgY4s44KK44KH44GGDQor44KE44GuLOOBkeOCk+OBn+OCjeOBhg0KK+OChOOBl+OCjSzjgZ/jgZHjgZcNCivjgoTjgZnjgYQs44G144Go44GXDQor44KE44GZ44KA44KNLOOBn+OBi+OBlw0KK+OChOOBmeOBhuOBmCzjgojjgZfjgobjgY0NCivjgojjgZPjgYgs44Gy44Gn44Gu44KKDQor44KI44GT44GELOOBvuOChA0KK+OCiOOBk+OBv+OBnizjgY3jgojjgZfjgZINCivjgojjgZPjgoTjgb4s44G+44GV44Gy44GTDQor44KI44Gt44GW44KPLOOBi+OBmuOBsuOBkw0KK+OCiOOBl+OBoCzjgZHjgpPjgoQNCivjgojjgZfjgaAs44Gu44G244Gy44KNDQor44KI44GX44GgLOOBi+OBpOOChA0KK+OCiOOBl+OBoCzjgYvjgZrjgYLjgY0NCivjgojjgZfjgaAs44Go44KC44G/DQor44KI44GX44GELOOBl+OBkuOBqA0KK+OCiOOBl+OCgOOCiSzjgabjgovjgYvjgZoNCivjgojjgZfjgoTjgb4s44GI44GE44GYDQor44KI44GX44GW44KPLOOBleOBoeOBkw0KK+OBteOBmOOBl+OBvizjgZHjgpPjgZ/jgo3jgYYNCivjgobjgYLjgZUs44GR44GEDQor44KG44GNLOOBm+OBpOOBkw0KK+OChuOBjSzjgYLjgY3jgogNCivjgobjgYQs44Gg44GE44GZ44GRDQor44GC44Gg44GhLOOBquOBiuOBn+OBkQ0KK+OBsOOCkyzjgZ/jgYvjgZcNCivjgbXjgovjgYQs44KI44GX44Gu44KKDQor44Gv44Gb44GM44KPLOOBr+OBmOOCgQ0KK+OBsuOCieOBi+OCjyzjgb7jgarjgbYNCivjgYTjgajjgYYs44Go44GX44Gy44GTDQor44GE44KP44GV44GNLOOCiuOCh+OBhuOBmA0KK+OBi+OBqOOBhizjgZHjgpPjgZgNCivjgYvjgo/jga/jgoks44KI44GX44G/44GkDQor44G+44GI44Gv44KJLOOBiuOBleOCgA0KK+OBvuOBpOOBn+OBqyzjgZfjgZLjgYoNCivjgoLjgorjgYTjgaEs44GI44GE44GY44KN44GGDQor44Gr44GX44GG44GhLOOBruOBtuOChuOBjQ0KK+OBteOBmOOBvuOBjSzjgZ/jgYTjgZ7jgYYNCivjgYrjgYrjga/jgoks44Gf44GL44GXDQor44GV44Gq44GgLOOBsuOBp+OBguOBjQ0KK+OBneOBrSzjgaTjgajjgoANCivjgajjga7jgoDjgoks44KI44GX44KG44GNDQor44GX44G/44GaLOOBkeOBhA0KK+OBv+OBl+OBvizjgb7jgorjgZMNCivjgbXjgZjjgZ8s44Gf44KN44GGDQor44G144GY44GfLOOBsuOBp+OBjQ0KK+OBteOBmOOBnyzjgojjgYYNCivjgbXjgZjjgo/jgoks44GT44GG44GY44KN44GGDQor44G144GY44KF44GGLOOBl+OCk+OBhOOBoQ0KK+OBteOBi+OBoCzjgZ/jgY/jgoQNCivjgbXjgY/jgaAs44KG44Gf44GLDQor44G144GP44Gy44GVLOOBquOBiuOBn+OBiw0KK+OBteOBj+OBluOBqCzjgYLjgoQNCivjgbXjgY/jgZbjgo8s44Gf44GL44GXDQor44G144KL44GV44KPLOOBjeOBr+OCiw0KK+OBr+OBjOOCjyzjgZ/jgYvjgZcNCivjga/jgY4s44Gy44KN44Gf44GLDQor44Gv44KJ44GgLOOBv+OBpOOCiw0KK+OBr+OCieOBoCzjga7jgbbjgbLjgo0NCivjga/jgonjgaAs44G+44GNDQor44Gv44KJ44G+44GNLOOBquOBiuOBkw0KK+OBr+OBm+OBjOOCjyzjgorjgYgNCivjga/jgZvjgYzjgo8s44Gy44Gn44GC44GNDQor44Gv44GX44GKLOOChuOBiw0KK+OBr+OBmeOBvyzjgbLjgo3jgZcNCivjga/jgZnjgb8s44GR44KT44GE44Gh44KNDQor44Gv44Gj44Go44KKLOOCiOOCiuOBkw0KK+OBhOOBl+OBi+OCjyzjgbbjgpPjgbrjgYQNCivjga/jgoTjgZcs44Gf44GL44GTDQor44Gy44KJ44GuLOOBn+OBj+OChA0KK+OBsuOCieOBrizjgYvjgZrjgYLjgY0NCivjgbLjgonjga4s44Go44GX44GC44GNDQor44Gy44KN44G5LOOBsuOBp+OBjQ0KK+OBl+OBruOBoCzjgZHjgpPjgZgNCivjgbLjgZXjgaAs44Gf44GL44KG44GNDQor44G7LOOBn+OBkeOBlw0KK+OBu+OCk+OBlOOBhizjgabjgovjgbLjgZMNCivjgbvjgZcs44G/44Gh44GTDQor44G744GX44GuLOOBvuOBleOBjQ0KK+OBu+OBneOBi+OCjyzjgbLjgo3jgYvjgZoNCivjgbvjgZ3jga4s44KG44G/DQor44GL44Go44GGLOOCiOOBl+OCjeOBhg0KK+OBhOOBjizjgojjgYbjgZMNCivjgYTjgZHjgaAs44Go44GX44KG44GNDQor44GE44GP44KNLOOBruOCiuOBsuOCjQ0KK+OBhOOBvuOBhCzjgYvjgZrjgojjgZcNCivjgYTjgarjgaAs44GT44GG44G444GEDQor44GE44Gu44GQ44GhLOOBn+OBi+OChuOBjQ0KK+OBhOOBl+OBkOOCjSzjgaTjgZDjgYvjgZoNCivjgYTjgZfjgYvjgo8s44Gy44KN44GNDQor44GE44GX44GL44KPLOOBkeOCk+OBmA0KK+OBhOOBl+OBluOBjSzjgobjgYvjgooNCivjgYTjgZfjgZzjgY0s44KI44GX44GoDQor44GE44Go44GGLOOBpuOBpOOChA0KK+OBhOOBqOOBhizjgb7jgZXjgojjgZcNCivjgYTjgajjgYYs44Gq44GK44GNDQor44GE44Go44GGLOOCiOOBl+OBvw0KK+OBhOOBvuOBjOOCjyzjgZHjgYQNCivjgYTjgZbjgo8s44GT44GG44GYDQor44GE44Ga44G/LOOBl+OCh+OBhuOBmA0KK+OBhOOBmuOBv+OBoOOBpizjga7jgorjgajjgZcNCivjgYvjgbbjgonjgY4s44GL44GK44KKDQor44GL44G/44KE44G+LOOBqOOBiuOCiw0KK+OBi+OBquOChOOBvizjgZPjgYbjgZgNCivjgYvjgarjgZbjgo8s44GY44KN44GGDQor44GL44KT44Gw44KJLOOBi+OBpOOCiOOBlw0KK+OBi+OCk+OBoCzjgobjgYbjgZMNCivjgYvjgpPjgaAs44G/44GZ44G+44KLDQor44GL44Gt44GTLOOBquOCiuOBqOOCgg0KK+OBi+OBl+OCgOOCiSzjgbLjgo3jgZcNCivjgYvjgZ/jgY7jgoos44GX44KT44GZ44GRDQor44GL44Go44GGLOOBsuOCjeOBruOCig0KK+OBi+OBqOOBhizjga7jgbbjgbLjgZUNCivjgYvjgo/jgaAs44Gv44KL44G/DQor44GL44KP44GZ44G/LOOCiOOBhuOBkw0KK+OBjeOBqSzjgZfjgoXjgpPjgYTjgaENCivjgY3jgY/jgaEs44Gu44G244Gy44KNDQor44GN44KC44GoLOOBn+OBj+OChA0KK+OBjeOCgOOCiSzjgZHjgpPjgZ8NCivjgY3jgpPjgaks44G/44Gh44Gv44KLDQor44GN44Gf44KA44KJLOOBv+OBuw0KK+OBjeOBn+OBrizjgZXjgaDjgYoNCivjgY3jgZ/jgo/jgZ/jgZss44GZ44GZ44KADQor44GN44Gj44GfLOOChOOBmeOBkw0KK+OBjeOChOOBvizjgZvjgYTjgZgNCivjgY3jgojjgZ8s44Gy44KN44KG44GNDQor44GT44Gw44KE44GXLOOBmOOCheOCk+OBmA0KK+OBk+OBsOOChOOBlyzjgojjgYbjgZMNCivjgZPjgYws44GC44Gk44KEDQor44GT44Gv44KJLOOBn+OBi+OChuOBjQ0KK+OBk+OBmOOBqizjgZHjgpMNCivjgZPjgpPjga4s44GR44GE44GUDQor44GT44Ga44GLLOOBvuOBleOBjQ0KK+OBk+OBhOOBpyzjgZfjgpPjgZgNCivjgZPjgb7jgaQs44KK44KF44GG44GZ44GRDQor44GT44G/44Gq44GoLOOBl+OCheOBhuOBmA0KK+OBk+OCguOCiizjgZXjgajjgZMNCivjgZPjgpPjgaks44Gy44KN44Gy44GTDQor44GT44Gr44GXLOOBruOCiuOBkw0KK+OBj+OBvOOChOOBvizjgZ/jgaDjgYLjgY0NCivjgY/jgb7jgYzjgYQs44KK44KH44GG44GYDQor44GP44G+44GfLOOBn+OBi+OBkw0KK+OBj+OCiuOBr+OCiSzjgZ/jgZHjgZcNCivjgY/jgorjga/jgoks44GR44GE44GTDQor44GP44KK44GfLOOBleOBqOOBlw0KK+OBj+OBleOBrizjgbLjgo3jgbXjgb8NCivjgY/jgZfjgaAs44GC44GN44Gy44GTDQor44G+44GI44GgLOOChuOBjQ0KK+OBvuOBjSzjgZHjgYTjgZnjgZENCivjgb7jgY3jgZ8s44GX44KT44GYDQor44G+44KL44KE44G+LOOBpOOBreOBig0KK+OBvuOBmeOBoCzjgaDjgYTjgaENCivjgb7jgaTjgbDjgoks44Gh44GL44KJDQor44G+44Gk44Gw44KJLOOBsuOBp+OBqOOBlw0KK+OBvuOBpOOBhCzjgZHjgYTjgZMNCivjgb7jgaTjgoLjgags44G+44GV44KG44GNDQor44G+44Gk44KA44KJLOOBl+OCk+OBn+OCjeOBhg0KK+OBvuOBpOOBiizjgYvjgZrjgbLjgo0NCivjgb/jgYvjgb8s44G/44Gk44GKDQor44G/44GNLOOBn+OBi+OBguOBjQ0KK+OBv+OBruOBhuOCiSzjgZvjgYTjgZgNCivjgb/jgZfjgb4s44GR44KT44GE44GhDQor44G/44Gk44Gq44GMLOOCiOOBl+OChuOBjQ0KK+OBv+OBhuOCiSzjgb7jgZXjga7jgooNCivjgb/jgo8s44Gf44GL44Gu44G2DQor44G/44KE44GKLOOChOOBmeOBr+OCiw0KK+OBv+OChOOBnyzjgYvjgarjgYYNCivjgb/jgZrjgZ/jgass44GL44Ga44Gy44GTDQor44G/44Ga44Gf44GrLOOBsuOBp+OBruOBtg0KK+OCguOBoeOBmuOBjSzjgb/jgaTjgosNCivjgoLjgaHjgZrjgY0s44GP44G/44GTDQor44KC44Gh44Ga44GNLOOBruOBtuOChuOBjQ0KK+OCguOBjizjgbLjgo3jgZcNCivjgoLjgoos44GV44Go44KLDQor44KC44KKLOOBn+OBoOOBsuOBkw0KK+OCguOCiizjgZ/jgaDjgobjgY0NCivjgoLjgoos44Go44KC44Gy44GVDQor44KC44KKLOOBqOOBl+OBjQ0KK+OCguOCiuOChOOBvizjgajjgZfjgYoNCivjgoLjgo3jgYrjgYss44KG44GNDQor44KC44Go44GwLOOBoOOBhOOBleOBjw0KK+OCgOOBreOBqCzjgYvjgaTjgb7jgZUNCivjgoDjgonjgYQs44KI44GX44GTDQor44KA44KJ44GK44GLLOOBkeOCkw0KK+OCgOOCjeOBhCzjgbLjgafjgbLjgo0NCivjgarjgYzjgbXjgZgs44GN44G/44Gy44GoDQor44Gq44GM44GELOOBguOBjeOCiQ0KK+OBquOBhOOBqOOBhizjgobjgY3jgZMNCivjgarjgYTjgajjgYYs44Gf44KN44GGDQor44Gq44GL44GM44KPLOOBv+OBruOCiw0KK+OBquOBi+OBr+OCiSzjgb/jgoTjgZMNCivjgarjgYvjgZjjgb4s44KG44Gf44GLDQor44Gq44GL44GY44G+LOOBvuOBleOBsuOBkw0KK+OBquOBi+OCgOOCiSzjgZ/jgZHjgZcNCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44Gq44GL44KA44KJLOOBguOChA0KK+OBquOBi+OCgOOCiSzjgYLjgY3jgokNCivjgarjgYvjgoDjgoks44GC44GN44KJDQor44Gq44GL44KA44KJLOOBguOBpOOBlw0KK+OBquOBi+OCgOOCiSzjgbLjgZXjgagNCivjgoTjgb7jgaAs44Gf44GL44GXDQor44Gq44GL44GKLOOBiOOBhOOBmA0KK+OBquOBi+OBpOOBi+OBlSzjgY3jgojjgZcNCivjgarjgYvjgoTjgb4s44G+44KKDQor44Gq44KA44KJLOOCgOOBreOChuOBjQ0KK+OBquOBmeOBrizjgarjgYrjgY0NCivjgavjgYTjgZzjgY0s44Go44GX44Gv44KLDQor44Gr44GX44GL44KPLOOBk+OBhuOBnuOBhg0KK+OBq+OBl+OBjeOBiuOCiizjgojjgZfjgYLjgY0NCivjgavjgZfjgZbjgo8s44GL44Gk44Gu44KKDQor44Gu44GC44GNLOOCiOOBhuOBkw0KK+OBruOBoCzjgZHjgpPjgZ/jgo3jgYYNCivjga7jgaAs44KG44GG44GTDQor44Gu44GQ44GhLOOBsuOBleOBlw0KK+OBruOCgOOCiSzjgbLjgafjgY0NCivjgYrjgaHjgYLjgYQs44GT44GZ44GRDQor44KC44KKLOOBvuOCiuOBkw0KK+OBiuOBjOOBleOCj+OCiSzjgb/jgaTjgbLjgZUNCivjgYrjgYzjgZXjgo/jgoks44Gf44Gk44GXDQor44GK44GM44KPLOOCiuOCh+OBhuOBkw0KK+OBiuOBjOOCjyzjgZ/jgYvjgbLjgo0NCivjgYrjgYzjgo8s44KE44GZ44Gy44GVDQor44GK44GQ44KJLOOBteOBv+OBruOCig0KK+OBiuOBkOOCiSzjgb7jgZXjgY0NCivjgYrjgYrjgYTjgZcs44Gy44KN44KEDQor44GK44GK44GL44KPLOOBqOOBl+OBguOBjQ0KK+OBiuOBiuOBi+OCjyzjgZjjgoXjgpPjgZMNCivjgYrjgYvjgZws44Gq44GK44GNDQor44GK44GNLOOBpuOBpOOChA0KK+OBiuOCgOOCiSzjgYLjgaTjgZcNCivjgYrjgYrjgZnjgb8s44G+44GV44Gy44KNDQor44GK44GK44GfLOOBteOBv+OBsuOBkw0KK+OBiuOBiuOBn+OBkSzjgabjgaTjgZgNCivjgYrjgYrjgZ/jgass44GR44KTDQor44GK44GK44KE44G+LOOBkeOCk+OBmA0KK+OBiuOBnOOBjSzjgbLjgo3jgZcNCivjgYrjgYvjgoLjgags44GY44KF44KTDQor44GK44GL44KA44KJLOOBk+OBhuOBl+OCkw0KK+OBiuOBi+OCgOOCiSzjgb7jgoLjgosNCivjgYrjgY/jgoDjgoks44G+44Gq44G/DQor44GK44KT44GgLOOBruOCiuOBsuOBkw0KK+OBiuOBruOBp+OCiSzjga7jgorjgobjgY0NCivjgYrjgoTjgbks44Gf44GL44Gu44KKDQor44GV44GMLOOBqOOBl+OBguOBjQ0KK+OBleOBhOOBqOOBhizjgobjgYbjgZMNCivjgZXjgYvjgYQs44GV44Gq44GIDQor44GE44GOLOOBguOBjeOBruOCig0KK+OBleOBi+OCguOBqCzjgbLjgZXjga0NCivjgZXjgYvjgoLjgags44KI44GX44Gy44KNDQor44GV44GL44Gk44GOLOOBi+OBmuOBig0KK+OBleOBi+OBhuOBiCzjgZHjgpPjgZgNCivjgZXjgY/jgb4s44G+44KK44GTDQor44GV44GP44KJLOOBiOOBhOOBjQ0KK+OBleOBquOBoCzjgojjgZfjgbLjgo0NCivjgZXjgZXjgY0s44Gf44GR44GKDQor44GV44GV44GNLOOBquOBiuOChA0KK+OBleOBqOOBhizjgYvjgaTjgobjgY0NCivjgZXjgajjgYYs44Gf44GL44Gy44KNDQor44GV44Go44GGLOOBqOOBl+OBguOBjQ0KK+OBleOBqOOBhizjgZfjgoXjgYbjgYTjgaENCivjgZXjgajjgYYs44Gy44Gn44Gy44GVDQor44GV44Go44GGLOOBi+OBpOOBsuOCjQ0KK+OBleOBqOOBhizjgY3jgofjgYbjgZMNCivjgZXjgajjgYYs44KE44GZ44Gy44GoDQor44GV44Go44GGLOOBi+OBmuOBsuOBpw0KK+OBleOBqOOBhizjgZXjgajjgb8NCivjgZvjgYTjgZEs44G+44GV44Gu44KKDQor44Gb44GNLOOCiOOBhuOBhOOBoQ0KK+OBm+OBjSzjgabjgaTjgoQNCivjgZvjgY0s44Gm44GkDQor44Gb44GN44GQ44GhLOOBn+OBkeOBlw0KK+OBm+OBnyzjgajjgZfjgYoNCivjgZfjgpPjgYzjgYQs44GC44GN44GTDQor44GX44Gw44GfLOOCiOOBl+OBkw0KK+OBl+OBsOOBnyzjgobjgY3jga7jgooNCivjgZfjgbbjgY0s44GY44KN44GGDQor44GX44GS44Go44G/LOOBi+OBmuOBv+OBpA0KK+OBl+OBjCzjgbLjgo3jgZcNCivjgZfjgYTjgbAs44G/44GLDQor44GX44G+44GgLOOBhOOBoeOCjeOBhg0KK+OBl+OBvuOBi+OCjyzjgZfjgZLjgosNCivjgZfjgb/jgZos44GZ44GZ44KADQor44GX44G/44GaLOOBn+OBi+OBpOOBqg0KK+OBl+OBv+OBmizjgYrjgZXjgoANCivjgZfjgb/jgZos44Gf44GL44GXDQor44GX44KC44KA44KJLOOBn+OBi+OBlw0KK+OBl+OCguOCgOOCiSzjgYLjgY3jgokNCivjgZfjgYrjgZjjgoos44Gy44KN44GXDQor44GX44GK44GW44KPLOOBguOChOOBkw0KK+OBl+OCieOBhCzjgobjgYbjgZMNCivjgZfjgonjgYvjgo8s44G144G/44GIDQor44Gd44G+44KTLOOBmOOCkw0KK+OBneOBhuOChCzjgb7jgZXjgagNCivjgZ3jga7jgaAs44G+44KG44G/DQor44GZ44GgLOOBqOOCguOBr+OCiw0KK+OBmeOBjOOBrizjgZHjgpPjgYTjgaENCivjgZnjgYzjgazjgb4s44GV44Go44GXDQor44GZ44GM44KPLOOBm+OBhOOBhOOBoQ0KK+OBmeOBjuOBhuOCiSzjgY3jgofjgYbjgZnjgZENCivjgZnjgY7jgoTjgb4s44Go44KC44Gy44KNDQor44GZ44Ga44GNLOOBkeOCkw0KK+OBmeOBmuOBjSzjgZPjgYbjgZgNCivjgZnjgZrjgY0s44GC44Gk44GXDQor44GZ44Ga44GNLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBl+OCh+OBhuOBmCzjgabjgaTjgoQNCivjgZ/jgZDjgaEs44GL44Gk44KEDQor44Gf44GE44KJLOOBn+OBoOOBqA0KK+OBn+OBmOOBvizjgorjgYgNCivjgZ/jgYvjgaAs44Gf44GL44Gu44KKDQor44GK44GL44KE44G+LOOBguOBleOBkw0KK+OBn+OBi+OBjuOBlyzjgb/jgYvjgZMNCivjgZ/jgYvjga/jgZcs44GX44KT44GE44Gh44KN44GGDQor44Gf44GL44Gv44GXLOOChOOBmeOBlw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgojjgZcNCivjgZ/jgYvjga/jgZcs44Go44GK44KLDQor44Gf44GL44Gv44GXLOOBjeOCh+OBhuOBkw0KK+OBn+OBi+OBjSzjgojjgYbjgYTjgaENCivjgZ/jgYvjgYrjgYss44Gf44GP44KEDQor44Gf44GL44GK44GLLOOBsuOCjeOChuOBjQ0KK+OBhOOBvuOBhOOBmuOBvyzjgojjgZfjgYoNCivjgZ/jgYvjgZXjgo8s44Gf44GL44GXDQor44Gf44GL44GZLOOBpOOCiOOBlw0KK+OBn+OBkeOBhCzjgZvjgaTjgZMNCivjgZ/jgZHjgarjgYss44Gf44GR44GXDQor44Gf44GR44GW44GNLOOCiOOBl+OBkw0KK+OBn+OBvuOBhOOBlyzjgbLjgafjgYLjgY0NCivjgZ/jgb7jgY0s44GX44GS44KLDQor44Gf44Gq44GLLOOBguOBjeOCiQ0KK+OBn+OBq+OBkOOBoSzjgarjgYrjgY0NCivjgZ/jgYbjgaEs44Gy44KN44Gq44GKDQor44Gm44KJ44G/44GkLOOBoOOBhOOBmeOBkQ0KK+OBqOOBoCzjgb7jgoQNCivjgajjgb/jgarjgYws44GX44KT44GE44Gh44KN44GGDQor44Go44G/44GfLOOBguOBjeOCiA0KK+OBqOOCk+OBkOOBhizjgbLjgafjgajjgZcNCivjgaTjga3jgYvjgo8s44Gy44KN44G144G/DQor44Gk44Gk44GELOOBi+OBpOOCiOOBlw0KK+OBhuOBoeOBoCzjgZ/jgZHjgZcNCivjgYbjgaHjga/jgZcs44Gf44GP44GKDQor44GG44GI44GgLOOBvuOBleOBsuOBkw0KK+OBhOOBqOOBhizjgojjgYbjgYTjgaENCivjgYbjgYjjgaAs44Gy44KN44GXDQor44GG44GI44Gv44KJLOOBsuOBp+OBguOBjQ0KK+OBteOBmOOBnyzjgZfjgbsNCivjgYbjgoHjgaAs44Gm44Gk44KEDQor44GG44KB44Gv44KJLOOChOOCiOOBhA0KK+OBhuOCieOBuSzjgbLjgZXjgZMNCivjgo/jgZ/jgbks44KE44GZ44GXDQor44KE44GM44GV44GNLOOBmeOBv+OBiw0KK+OChOOBjuOCguOBqCzjgbLjgo3jgZcNCivjgoTjgZjjgb4s44GL44Gk44G/DQor44KE44G+44GgLOOBv+OBoeOBkw0KK+OChOOBvuOBoCzjgZ/jgYvjgZcNCivjgoTjgb7jgaAs44G/44GL44GTDQor44KE44G+44GQ44GhLOOBleOBqOOBkw0KK+OChOOBvuOBkOOBoSzjgajjgoLjgZMNCivjgoTjgb7jgoLjgags44KE44GZ44Gy44KNDQor44KE44G+44KC44GoLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOCguOBqCzjgarjgYrjgY0NCivjgoTjgb7jgoLjgags44GT44GG44GYDQor44KE44G+44GtLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOBleOBjSzjga/jgovjga7jgooNCivjgoTjgb7jgZfjgZ8s44GL44Ga44GNDQor44KE44G+44GW44GNLOOBvuOBleOChuOBjQ0KK+OChOOBvuOBleOBjSzjgajjgZfjgoQNCivjgoTjgarjgYzjgo8s44Gf44GR44GXDQor44KE44Gq44GO44GgLOOChOOBmeOBig0KK+OBiuOBrizjgbLjgafjga7jgbYNCivjgoTjgarjgY7jgZXjgo8s44KE44GZ44GXDQor44KE44GW44GNLOOBquOBiuOBjQ0KK+OChOOBluOCjyzjgZvjgYTjgZgNCivjgojjgZPjgoTjgb4s44Gy44KN44GTDQor44KI44GT44KE44G+LOOBn+OBkeOBlw0KK+OCiOOCgizjgY3jgofjgYbjgZgNCivjgojjgZfjgaAs44Gy44Gn44GKDQor44KI44GX44GgLOOChuOBhuOBmA0KK+OCiOOBl+OBoCzjga/jgovjgbLjgZMNCivjgojjgZfjga/jgoks44GC44KG44G/DQor44KI44GX44Gv44KJLOOBvuOBleOBsuOBpw0KK+OCiOOBl+OCguOCiizjgZ/jgYvjgZcNCivjgZzjgaPjgaQs44Gy44Gn44KIDQor44GC44G5LOOCiOOBl+OBn+OBoA0KK+OBguOBoOOBoSzjgZPjgYbjgZgNCivjgYLjgYTjgYvjgo8s44Gy44KN44G144G/DQor44GC44GL44GILOOBv+OBoeOBkw0KK+OBguOCk+OBqeOBhizjgb7jgY0NCivjgYLjgZXjgb8s44G/44GVDQor44GE44G+44Gq44GLLOOBr+OCi+OCiA0KK+OBueOBo+OBtyzjgobjgYbjgZnjgZENCivjgbnjgaPjgbcs44Gy44KN44GC44GNDQor44Gh44GL44Gv44KJLOOBiuOBleOCgA0KK+OBteOBmOOBhCzjgb/jgaTjgajjgZcNCivjgbXjgZjjgZXjgY0s44Gf44GL44KG44GNDQor44G144GP44GX44G+LOOBguOBmuOBlQ0KK+OBj+OCjeOBoCzjgajjgZfjgb8NCivjgoLjgoos44G+44GV44Gy44GnDQor44KP44Gf44Gq44G5LOOBn+OBi+OBiA0KK+OBj+OCjeOBoCzjgYLjgZXjgZMNCivjgb/jgoTjgYbjgaEs44GY44KF44KT44GTDQor44GE44Go44GGLOOBjeOBj+OBkw0KK+OBhOOBhOOBoCzjgb7jgobjgb8NCivjgYvjgo/jga4s44G+44GEDQor44GC44GE44GG44KJLOOBqOOBl+OBig0KK+OBruOBluOBjSzjgabjgovjgYLjgY0NCivjgbPjgZ/jgass44GC44KE44G/DQor44Gf44Gr44GC44GELOOBoOOBhOOBmeOBkQ0KK+OBguOBiuOBjSzjgZjjgoXjgpPjgYTjgaENCivjgYrjgY0s44GN44GV44GPDQor44GC44GK44GNLOOBi+OBmuOChuOBjQ0KK+OBguOBiuOChOOBjizjgZHjgpPjgZ8NCivjgYLjgYvjgavjgZcs44Gq44GK44Gy44KNDQor44GC44GV44GKLOOBvuOBleOBsuOBkw0KK+OBguOBleOBj+OCiSzjgYvjgYgNCivjgYLjgZfjgZbjgo8s44GL44Ga44GNDQor44GC44Gf44GPLOOBsuOCjeOBlw0KK+OBguOBoOOBoSzjgobjgYbjgZMNCivjgYTjgajjgYYs44KG44KKDQor44GX44G+44KC44GoLOOBguOBqOOCgA0KK+OBleOBhOOBqOOBhizjgb7jgZXjgosNCivjgZfjga7jga/jgoks44GL44Gk44G/DQor44GK44GL44GuLOOBsuOBp+OBkw0KK+OBiuOBi+OCguOBqCzjgbLjgo3jgZcNCivjgbLjgonjgYvjgo8s44KI44GU44KN44GGDQor44GZ44GM44Gs44G+LOOBqOOCguOBv+OBoQ0KK+OBguOBquOBluOCjyzjgb/jga7jgosNCivjgYLjgonjgYQs44Go44GX44GL44GaDQor44GC44KJ44GELOOBjeOCk+OChA0KK+OBguOCieOBi+OCjyzjgobjgb/jgZMNCivjgYLjgonjgYvjga0s44GC44GN44GTDQor44GC44KJ44GNLOOBl+OBkuOBruOCig0KK+OBguOCk+OBqeOBhizjgbLjgo3jgbLjgZUNCivjgYTjgYbjgaEs44G+44GT44GoDQor44GE44GR44GgLOOChOOBmeOBsuOCjQ0KK+OBhOOBkeOChCzjgb7jgZXjgY0NCivjgYTjgZfjgYvjgo8s44Gy44KN44GXDQor44GE44GX44GL44KPLOOBvuOBleOBvw0KK+OBhOOBl+OBi+OCjyzjgbLjgo3jgZcNCivjgYTjgZfjgYvjgo8s44GT44GG44GE44GhDQor44GE44GX44GM44GNLOOBsuOCjeOBlw0KK+OBhOOBl+OBkOOCjSzjgYvjgYrjgosNCivjgYTjgZfjga/jgoks44G+44GV44GNDQor44GE44Gd44KA44KJLOOBj+OBv+OBkw0KK+OBhOOBn+OBjOOBjSzjgY3jgojjgb8NCivjgYTjgYTjgaAs44GX44KN44GGDQor44GE44Gh44GL44KPLOOBneOCiA0KK+OBhOOBoeOBi+OCjyzjgojjgZfjgajjgZcNCivjgYTjgacs44GE44Gf44KLDQor44GE44Go44GGLOOBsuOCjeOBteOBvw0KK+OBhOOBrOOBhCzjgb7jgY3jgagNCivjgYTjga7jgYbjgYgs44Gu44G244Gy44KNDQor44GE44G+44Gr44GXLOOCgOOBreOBn+OBiw0KK+OBhOOBvuOBr+OChOOBlyzjgZfjgpPjgYTjgaENCivjgYTjgo/jgZXjgY0s44G+44GV44Gk44GQDQor44GE44KP44GV44GNLOOBvuOChuOBvw0KK+OBhOOCj+OCguOBqCzjgZHjgYTjgYTjgaENCivjgYbjgYjjga4s44GI44GE44GYDQor44GG44GI44GuLOOBi+OBmuOBruOCig0KK+OBhuOBoeOBhOOBkSzjgojjgZfjgYLjgY0NCivjgYbjgaHjgoTjgb4s44KI44GX44Gf44GLDQor44GG44KB44GgLOOBl+OCheOBhuOBmA0KK+OBhuOCgeOCgOOCiSzjgZXjgogNCivjgYbjgoHjgoLjgags44Gh44G744GTDQor44GG44KL44GX44Gw44KJLOOCiOOBl+OBsuOBkw0KK+OBiOOBkOOBvizjgYjjgooNCivjgYjjgoks44Gq44GK44KEDQor44GK44GG44GV44GLLOOBvuOBleOBn+OBiw0KK+OBiuOBiuOBi+OCjyzjgb7jgZXjgb/jgaQNCivjgYrjgYrjgZXjgo8s44G+44GV44Gy44GTDQor44GK44GX44G+LOOCiOOBl+OBn+OBiw0KK+OBiuOBl+OBvizjgb7jgarjgbYNCivjgYrjgYrjgZnjgYws44Gf44Gk44Gy44GTDQor44GK44GK44Gf44GrLOOBsuOBp+OBjQ0KK+OBiuOBiuOBpCzjgb7jgZXjgbXjgb8NCivjgYrjgYrjgaTjgYss44Gf44Gg44Gy44GVDQor44GK44GtLOOBvuOBleOChuOBjQ0KK+OBiuOBiuOBrizjgYLjgY3jgokNCivjgYrjgYrjga/jgZcs44GR44KT44GE44GhDQor44GK44GK44Gv44GXLOOBkeOCk+OBlA0KK+OBiuOBiuOBsOOChOOBlyzjgZfjgpPjgZgNCivjgYrjgYrjgojjgZcs44Gf44GL44KG44GNDQor44GK44GL44KC44GoLOOBn+OBoOOChuOBjQ0KK+OBiuOBjOOBleOCj+OCiSzjgojjgZfjgZMNCivjgYrjgYzjgo8s44Gy44Gn44Gu44KKDQor44GK44GP44Gf44GrLOOBlOOBhg0KK+OBiuOBj+OCgOOCiSzjgobjgYbjgZMNCivjgYrjgZDjgoks44Gy44KN44GTDQor44GE44GE44GL44KPLOOBkeOCk+OBhOOBoeOCjQ0KK+OBiuOBkOOCiSzjgZXjgajjgZcNCivjgYrjgZbjgo8s44Gf44GL44Gu44KKDQor44GK44GW44KPLOOBsuOBp+OBsuOBkw0KK+OBiuOBiuOBrizjgoTjgZnjga7jgooNCivjgYvjgY3jgoLjgags44KM44GE44GTDQor44GL44GN44KC44GoLOOBsuOCjeOBlw0KK+OBi+OBkuOChOOBvizjgajjgoLjgb8NCivjgYTjgZfjgYvjgo8s44Gy44KN44GXDQor44GL44Gd44KKLOOChOOBmeOBsuOBqA0KK+OBi+OBpOOBvyzjgarjgYrjgY0NCivjgYvjgajjgYYs44Gq44GK44GTDQor44GL44Go44GGLOOBruOCiuOBkw0KK+OBi+OBqOOBhizjgZfjgZLjga7jgooNCivjgYvjgajjgYYs44Gg44GE44GZ44GRDQor44GL44Go44GGLOOBkeOBhOOBmA0KK+OBkeOBmuOBiyzjgYLjgY3jgokNCivjgYvjganjgo/jgY0s44G/44Gk44GX44KN44GGDQor44GL44Gt44GTLOOBguOBjeOBsuOCjQ0KK+OBi+OBruOBhizjga7jgorjgZMNCivjgYvjgb/jgoTjgb4s44Gy44KN44GL44GaDQor44GL44KP44GX44G+LOOBsuOCjeOChuOBjQ0KK+OBi+OCj+OBmyzjgZXjgajjgosNCivjgYvjgo/jga4s44GL44Ga44GNDQor44GL44KP44KC44GoLOOBvuOBleOBn+OBiw0KK+OBi+OCj+OCguOBqCzjgZfjgpMNCivjgYvjgo/jgZss44Gq44GK44GNDQor44GL44KT44GgLOOBsuOBp+OBqOOBlw0KK+OBjeOBj+OBoSzjgbLjgZXjgobjgY0NCivjgY3jgY/jgaEs44GC44GN44GTDQor44GN44GP44GhLOOBruOBtuOBig0KK+OBjeOBn+OBguOCieOBlyzjgb7jgYTjgZMNCivjgY3jgZ/jgYrjgYss44G/44KG44GNDQor44GN44Gf44GY44G+LOOBguOBjeOBsuOCjQ0KK+OBjeOBn+OCgOOCiSzjgZ/jgZHjgb8NCivjgY3jgZ/jgoDjgoks44GC44Gk44GXDQor44GN44Gm44KJLOOBleOBqOOBlw0KK+OBjeOBruOBl+OBnyzjgZjjgoXjgpPjgZMNCivjgY3jgoDjgoks44Gf44GL44Gy44KNDQor44GN44KK44GGLOOBn+OBkeOBlw0KK+OBj+OBleOBi+OBuSzjgb7jgYjjgZMNCivjgY/jgbzjgZ8s44GT44GZ44GRDQor44GP44G+44GM44GELOOBkeOCk+OBmOOCjeOBhg0KK+OBj+OBvuOBrizjgZXjgooNCivjgY/jgorjga/jgoks44G+44GV44GoDQor44GP44KL44GX44G+LOOBguOBjeOCiOOBlw0KK+OBquOBi+OBjOOCjyzjgaHjgYsNCivjgZPjgYTjgacs44Gy44Gn44GNDQor44GT44KT44GuLOOBvuOBleOBlw0KK+OBk+OCguOBqCzjgobjgYbjgZMNCivjgZPjgYws44GP44Gr44Gv44KLDQor44GT44GY44G+LOOBn+OBhOOBmA0KK+OBk+OBq+OBlyzjgYvjgojjgZMNCivjgZPjgbDjgoTjgZcs44Gb44GE44GGDQor44GT44G+44GkLOOBkeOBhOOBhOOBoQ0KK+OBk+OBv+OChCzjgZfjgpPjgoQNCivjgZPjgpPjgaks44GV44Go44GXDQor44GT44KT44GpLOOBpOOBqOOCgA0KK+OBlOOBqOOBhizjgaDjgYTjgZnjgZENCivjgZXjgYTjgajjgYYs44Gf44Gk44KEDQor44GV44GE44Go44GGLOOBk+OBhuOBmA0KK+OBleOBhOOBqOOBhizjgbLjgafjgY0NCivjgZXjgYvjgoLjgags44Gf44GR44GKDQor44GV44GP44G+LOOBqOOBl+OBi+OBmg0KK+OBl+OBv+OBmizjgarjgYrjgY0NCivjgZXjgaDjgaHjgYss44GR44GE44GY44KFDQor44GV44GoLOOBleOCiOOBkw0KK+OBleOBqOOBhizjgZjjgoXjgpMNCivjgZXjgajjgYYs44Gy44Go44G/DQor44GV44Go44GGLOOBv+OBiw0KK+OBleOBqOOBhizjgYvjgaTjgobjgY0NCivjgZXjgo/jgaAs44GY44KF44KT44GYDQor44GE44Gd44KPLOOBvuOBleOBsuOBkw0KK+OBl+OCgizjgZ/jgYvjgYLjgY0NCivjgZfjgoXjgYYs44G+44GV44KEDQor44GX44GK44GL44KPLOOBguOChOOBrg0KK+OBl+OBiuOBluOCjyzjgb7jgZXjgbLjgZMNCivjgZfjgYvjgYbjgaEs44G/44Gk44KLDQor44GX44Ga44KKLOOBn+OBkeOBlw0KK+OBl+OBrizjgabjgaTjgZgNCivjgZfjga7jgZbjgY0s44GY44KF44KT44GY44KN44GGDQor44GX44Gu44GgLOOBvuOBmeOBvw0KK+OBl+OBruOBoCzjgobjgY3jgZMNCivjgZfjgbDjgZbjgY0s44GC44GN44Gy44GoDQor44GX44Gw44GfLOOBleOBiuOCig0KK+OBl+OBvuOCgOOCiSzjga7jgbzjgosNCivjgZfjgb/jgZos44G/44G+44GTDQor44GX44G/44GaLOOChuOBhuOBmA0KK+OBl+OBv+OBmizjgZXjgajjgZcNCivjgZfjgb/jgZos44GX44KT44GE44Gh44KN44GGDQor44Gf44GN44Gf44GrLOOChuOBhuOBhOOBoQ0KK+OBl+OCieOBrizjgZ/jgYvjgobjgY0NCivjgZnjgYjjgbLjgo0s44GR44KTDQor44GZ44GM44GELOOBv+OBjeOBig0KK+OBmeOBjOOCiOOBlyzjgZHjgpPjgZgNCivjgZnjgYzjgo/jgoks44GX44GS44G144G/DQor44GZ44GO44GG44KJLOOBruOCiuOBguOBjQ0KK+OBmeOBjuOBl+OBvizjgZfjgoXjgpPjgZnjgZENCivjgZnjgY7jgoLjgags44Gy44GV44GXDQor44GZ44Ga44GL44KPLOOCiOOBl+OBiA0KK+OBmeOBoCzjgYLjgY3jgojjgZcNCivjgZnjgb/jgYvjgo8s44GL44Gk44GC44GNDQor44GZ44G/44GuLOOBk+OBhuOBmA0KK+OBm+OBjeOBkOOBoSzjgZfjgZLjgb8NCivjgZ3jgYjjgZjjgb4s44KE44GZ44Gq44KKDQor44Gf44GK44GLLOOBn+OBoOOBlw0KK+OBn+OBi+OBjSzjgY3jgofjgYbjgZMNCivjgZ/jgYvjgZfjgb4s44GX44KT44GE44GhDQor44Gf44GL44GbLOOBjeOCiOOBn+OBiw0KK+OBn+OBi+OBr+OBlyzjgYvjgaTjgoQNCivjgZ/jgYvjga/jgZcs44Gf44Gk44KEDQor44Gf44GL44Gv44GXLOOBiOOBhOOBhOOBoQ0KK+OBn+OBjeOBn+OBqyzjgarjgaoNCivjgZ/jgZHjgYbjgaEs44Gy44KN44G244G/DQor44Gf44GR44GgLOOBn+OBoOOChuOBjQ0KK+OBn+OBkeOBoCzjgZHjgYTjgYTjgaENCivjgZ/jgZHjgaAs44GE44GP44Gy44GTDQor44Gf44GR44KA44KJLOOBquOBiuOBsuOBlQ0KK+OBn+OBlCzjgb7jgZXjgZMNCivjgZ/jgY3jgZbjgo8s44Gh44GL44GTDQor44Gf44Gq44GLLOOCiOOBhuOBkw0KK+OBn+OBquOBiyzjgorjgofjgYbjgZnjgZENCivjgZ/jgarjgYss44GR44KT44GYDQor44GE44KP44GuLOOBi+OBmuOBl+OBkg0KK+OBn+OBquOBiyzjgbLjgo3jgZcNCivjgZ/jgavjgYgs44GV44Gg44KI44GXDQor44Gf44Gr44GQ44GhLOOBi+OBmuOBiA0KK+OBn+OBq+OBkOOBoSzjgZgNCivjgZ/jgavjgb7jgaQs44Gy44KN44GXDQor44Gf44Gw44GfLOOBv+OCj+OBkw0KK+OBn+OBvuOBjSzjgZ/jgaTjgoQNCivjgYTjgZvjgoLjgagsDQor44Gf44G/44KELOOBguOBjQ0KK+OBoeOCg+OCguOBqCzjgbXjgZXjgZcNCivjgaHjga4s44KI44GG44GE44Gh44KN44GGDQor44Gk44GL44KC44GoLOOCiOOBhuOBkw0KK+OBpOOBoeOBr+OBlyzjgoDjga3jgbLjgo0NCivjgabjgonjgZXjgo8s44Gf44Gk44KEDQor44GoLOOBv+OBoeOBkw0KK+OBteOBj+OBl+OBvizjgarjgYrjgZcNCivjgajjgbAs44GN44KH44GG44GTDQor44Go44G/44KI44GXLOOBsuOBqOOBjQ0KK+OBqOOCgOOCjSzjgarjgaTjgbLjgZMNCivjgajjgojjgZfjgb4s44GY44KF44KT44GE44GhDQor44Go44KK44KE44G+LOOBquOBiuOChuOBjQ0KK+OBquOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgYTjgacs44G/44Gh44GL44GaDQor44Gv44GfLOOBteOBleOBig0KK+OBquOBi+OBjOOBjSzjgb/jgY0NCivjgarjgYvjgYzjgo8s44Gf44GL44GTDQor44Gq44GL44GW44KPLOOCiOOBl+OBkw0KK+OBquOBi+OBpyzjgZfjgofjgYbjgZMNCivjgarjgYvjga/jgoks44GC44Gk44GXDQor44Gf44GR44GG44GhLOOBi+OBpOOBsuOBlQ0KK+OBquOBi+OCgOOCiSzjgZXjgajjgZcNCivjgarjgYvjgoDjgoks44Gf44GR44GXDQor44Gq44GZLOOBsuOCjeOBlw0KK+OBq+OBhOOCgOOCiSzjgajjgZfjgbLjgo0NCivjgavjgZfjgYrjgYss44Gy44Gn44GC44GNDQor44Gr44GX44GL44KPLOOBguOBjeOCiQ0KK+OBq+OBl+OBluOCjyzjgZfjgZLjgosNCivjgavjgZfjgags44KE44GZ44GTDQor44Gr44GX44GuLOOBk+OBhuOBmA0KK+OBq+OBl+OBr+OCiSzjgarjgYrjgY0NCivjgavjgZfjgoDjgoks44GP44Gr44KC44KKDQor44Gt44KC44GoLOOBleOBoeOCiA0KK+OBruOBkOOBoSzjgYjjgb8NCivjga7jgZDjgaEs44G+44GV44KEDQor44Gu44GY44KKLOOCiOOBl+OBquOBig0KK+OBruOBmOOCiizjgZ/jgYvjgbLjgo0NCivjga7jgoDjgoks44GL44Ga44Gy44GTDQor44Gv44Gj44GfLOOBguOBjeOBkw0KK+OBr+OBl+OBsCzjgaHjgYvjgZMNCivjga/jgZfjgoLjgags44KG44GLDQor44Gv44GX44KC44GoLOOBhOOBoeOCjeOBhg0KK+OBhOOBruOBhuOBiCzjgY3jgojjgZcNCivjga/jgZfjgoLjgags44Gf44GL44GTDQor44Gv44Gb44GM44KPLOOBkeOCk+OBhOOBoQ0KK+OBr+OBnyzjgYvjgZrjgY0NCivjga/jgZ8s44KI44GX44GL44GkDQor44Gv44Gf44GuLOOBvuOBhOOBkw0KK+OBr+OChOOBlyzjgbLjgo3jgobjgY0NCivjga/jgoTjgZcs44GP44G/44GTDQor44Gv44KJ44GgLOOBqOOCguOBkw0KK+OBr+OCieOBoCzjgZHjgpPjgYTjgaENCivjgbDjgbAs44Gy44KN44G144G/DQor44Gw44GwLOOBguOBmeOBiw0KK+OBsuOBkOOBoSzjga7jgbbjgbLjgZMNCivjgbLjgZDjgaEs44GN44KH44GG44GTDQor44Gy44GV44GNLOOBlOOBhuOBmA0KK+OBsuOBmOOCiizjgYjjgooNCivjgbLjgonjgoTjgb4s44Gf44GL44KG44GNDQor44G144GP44GgLOOBvuOChuOBvw0KK+OBteOBmOOBhCzjgbLjgo3jgbXjgb8NCivjgZnjgYzjgYQs44GV44Go44G/DQor44G144GY44GfLOOBi+OBmuOChA0KK+OBteOBmOOBnyzjgobjgY3jgZMNCivjgbXjgZjjgZ8s44Gu44G244GTDQor44G144GY44Gf44GrLOOBleOBqOOBlw0KK+OBteOBmOOBquOBvyzjgZfjgZLjgobjgY0NCivjgbXjgZjjga4s44Gf44Gk44KG44GNDQor44Gu44Gu44KA44KJLOOBi+OBpOOBmA0KK+OBteOBmyzjgZ/jgabjgosNCivjgZnjgY7jgoLjgags44KI44GG44GE44Gh44KN44GGDQor44G744Gd44GL44KPLOOBn+OBpOOBig0KK+OBu+OCiuOBhuOBoSzjgarjgYrjgb8NCivjgbvjgorjgYvjgo8s44Gy44KN44GC44GNDQor44G+44GN44GuLOOBhOOBj+OBkw0KK+OBvuOBjeOBrizjga7jgorjgbLjgZMNCivjgb7jgZfjgZMs44Go44GX44Gy44GTDQor44G+44GZ44GgLOOBi+OBmuOChA0KK+OBvuOBmeOBtuOBoSzjgZ/jgYvjgZcNCivjgb7jgZnjgbbjgaEs44GC44GN44Gy44KNDQor44G+44Gk44GELOOBvuOBjeOBkw0KK+OBvuOBpOOBluOCjyzjgb7jgZXjgagNCivjgajjgb/jgarjgYws44Gf44GL44GXDQor44G+44Gk44Gq44GMLOOCiOOBl+OBkw0KK+OBvuOBpOOBquOBjCzjgobjgY0NCivjgZnjgZrjgY0s44KE44GZ44GYDQor44G+44Gk44KA44KJLOOBkeOBhOOBhOOBoQ0KK+OBvuOBpOOCguOBqCzjgbLjgafjgbXjgb8NCivjgb7jgaTjgoLjgags44Go44KC44Gy44GVDQor44G+44Gk44KE44G+LOOBruOCiuOBkw0KK+OBvuOBpOOChOOBvizjgZPjgYbjgZgNCivjgb7jgaTjgoTjgb4s44Gm44Gk44KEDQor44G+44Gk44KI44GXLOOBguOBjeOBkw0KK+OBvuOBrizjgZvjgYTjgZgNCivjgb7jgovjgYrjgYss44Go44GX44KE44GZDQor44G/44GL44G/LOOCiOOBhuOBkw0KK+OBv+OBjSzjgbLjgo3jgY0NCivjgb/jgZ7jgZDjgaEs44G+44GV44G/DQor44G/44GfLOOBv+OBruOCiw0KK+OBv+OBrSzjgaHjgYLjgY0NCivjgb/jga3jgYos44GV44Go44KLDQor44GV44Go44GGLOOBi+OBpOOBruOCig0KK+OBhOOBj+OBnyzjgYLjgoQNCivjgb/jgoTjgZbjgY0s44Gy44Gn44GNDQor44Gf44GL44GO44KPLOOBl+OBkuOCiw0KK+OBv+OCiOOBlyzjgojjgYbjgZMNCivjgoDjgYvjgYQs44G/44Gk44Gf44GLDQor44KA44KJ44GL44G/LOOBvuOBleOBguOBjQ0KK+OBhOOBl+OBoCzjgaTjgYvjgZUNCivjgoDjgonjgYvjgb8s44GV44Go44GXDQor44KA44KJ44GL44G/LOOBi+OBmuOBn+OBiw0KK+OCgOOCieOChOOBvizjgZPjgYbjgZgNCivjgoDjgonjgoTjgb4s44G+44GT44GoDQor44KA44KN44GELOOBvuOBleOBn+OBiw0KK+OCguOBn+OBhCzjgYvjgZrjgb7jgZUNCivjgoLjgajjgY0s44GL44Ga44KEDQor44KC44Go44KA44KJLOOBk+OBhuOBmA0KK+OCguOCiizjgYvjgaTjgbLjgo0NCivjgYvjgZss44GC44GN44KI44GXDQor44KC44KK44GX44GfLOOBi+OBmuOBsuOCjQ0KK+OCguOCiuOBnyzjgarjgYrjgY0NCivjgoLjgo3jgajjgb8s44Gy44Gn44Gu44G2DQor44KC44KN44Gv44GXLOOChuOBjeOBkw0KK+OBi+OCj+OCguOBqCzjgbLjgo3jga7jgooNCivjgoTjgZDjgaEs44Gm44KL44Gy44GTDQor44KE44GY44G+LOOBquOBiuOBkw0KK+OChOOBmeOBi+OCjyzjgbLjgo3jgZcNCivjgoTjgZnjgaAs44G+44GV44Gy44GoDQor44KE44Gk44Ga44GLLOOBvuOCiuOBkw0KK+OChOOBquOBjuOBleOCjyzjgobjgY0NCivjgoTjgb7jgZDjgaEs44GN44KT44KEDQor44KE44G+44GV44GNLOOBn+OBi+OChA0KK+OChOOBvuOBluOBjSzjgbLjgo3jgobjgY0NCivjgoTjgb7jgZbjgY0s44KI44GX44GTDQor44KE44G+44GW44GNLOOBm+OBhOOBmOOCjeOBhg0KK+OChOOBvuOBoCzjgZHjgpPjgZ/jgo3jgYYNCivjgoTjgb7jgaAs44Gq44GK44GNDQor44KE44G+44GgLOOBn+OBi+OBruOCig0KK+OChOOBvuOBquOBiyzjgZfjgoXjgYbjgYTjgaENCivjgY/jgorjga/jgoks44G+44GV44GNDQor44KE44G+44KC44GoLOOBvuOBleOBkw0KK+OChOOBvuOCguOBqCzjgZfjgpPjgZ/jgo3jgYYNCivjgoTjgb7jgoLjgags44KE44GZ44GXDQor44G+44Gk44GKLOOBvuOBmeOBvw0KK+OCiOOBjizjgaHjgajjgZsNCivjgojjgZPjgoTjgb4s44Gy44Gn44GNDQor44KI44GT44KE44G+LOOCiOOBhuOBkw0KK+OCiOOBl+OBi+OCjyzjgarjgYrjgbLjgacNCivjgojjgZfjgYvjgo8s44KI44GX44GTDQor44KI44GX44GgLOOBk+OBhuOBmA0KK+OCj+OBj+OBhCzjgabjgaTjgoQNCivjgo/jgZ/jgarjgbks44GR44KT44Gf44KN44GGDQor44KP44Gf44Gq44G5LOOBl+OBuw0KK+OCj+OBn+OBquOBuSzjgojjgZfjgbLjgagNCivjgo/jgZ/jgarjgbks44G+44Gq44G2DQor44Gv44KE44GXLOOBn+OBi+OBlw0KK+OChOOBvuOBoCzjga7jgbbjgoQNCivjgo/jgYvjgbDjgoTjgZcs44GV44Go44GXDQor44GE44KP44KA44KJLOOBruOCiuOBvuOBlQ0KK+OCj+OBn+OBquOBuSzjga7jgbzjgosNCivjgY/jgo/jgZfjgb4s44GZ44GQ44KLDQor44GK44Gw44GfLOOBleOBqOOBvw0KK+OBguOBquOBluOCjyzjgbLjgYvjgosNCivjgoTjgY4s44GT44GZ44GRDQor44GC44GL44GKLOOBqOOCguOBi+OBmg0KK+OBl+OBv+OBmizjgarjgaTjgZMNCivjgZXjgYvjgoLjgags44Gy44Gn44Gu44G2DQor44GC44GK44GNLOOBl+OBkuOBguOBjQ0KK+OBguOBmuOBvizjgZPjgYbjgYTjgaENCivjgYTjgYTjgaAs44GI44GqDQor44GE44GR44GG44GhLOOCgeOBsOOBiA0KK+OBhOOBl+OBi+OCjyzjgabjgaTjgYoNCivjgYTjgZ3jgYzjgYQs44G+44GT44GoDQor44GE44Go44GGLOOBn+OBoOOBsuOCjQ0KK+OBhOOBsCzjgYLjgZrjgZUNCivjgYTjgo/jgoLjgags44GX44KT44GYDQor44GG44GI44GV44GLLOOBn+OBkeOBsuOCjQ0KK+OBhuOBiOOBrizjgb7jgoLjgosNCivjgYbjgYjjgbLjgoks44GR44KT44GUDQor44GG44Gh44KE44G+LOOBkeOCk+OBmA0KK+OBhuOCgeOBquOBhCzjgZnjgZnjgoANCivjgYjjgoDjgoks44Gf44GL44Gy44KNDQor44GK44GN44GfLOOBmOOCheOCk+OBhOOBoQ0KK+OBiuOBiuOBj+OBvCzjgbLjgo3jgZcNCivjgYrjgYrjgZ/jgass44GC44KEDQor44GK44GK44GkLOOBsuOCjeOBkw0KK+OBiuOBiuOBpOOBiyzjgojjgZfjgb8NCivjgYrjgYvjgZfjgo0s44GX44KN44GGDQor44GK44GgLOOBguOBpOOBlw0KK+OBiuOBrizjgbLjgo3jgb8NCivjgYvjgajjgYYs44KI44GX44KG44GNDQor44GL44Gt44Gy44GVLOOBquOBiuOBkw0KK+OBi+OBv+OChCzjgYrjgZXjgoANCivjgYvjgo/jgYQs44Gf44GP44KI44GXDQor44GL44KP44GK44GLLOOBsuOBp+OBjQ0KK+OBjeOBn+OBrizjgZjjgoXjgpPjgYTjgaENCivjgY3jgbbjgZcs44Gk44G4DQor44GN44KA44KJLOOBvuOBleOBn+OBiw0KK+OBjeOCgOOCiSzjgb7jgZXjgZMNCivjgY/jgZXjgYss44GV44Go44G/DQor44GP44GwLOOBn+OBi+OBlw0KK+OBj+OBvOOBnyzjgZfjgo3jgYYNCivjgY/jgo3jgYTjgo8s44GX44KT44GYDQor44GP44KP44Gw44KJLOOBiOOBhOOBmA0KK+OBk+OBhOOBkSzjgZnjgb/jgYoNCivjgZPjgYTjgZ/jgbDjgZcs44Gk44GL44GVDQor44GT44GG44GgLOOBsuOBp+OBig0KK+OBk+OBhuOBoCzjgb7jgZXjgZ/jgZENCivjgZPjgZfjgoDjgoks44GC44Gk44GXDQor44GT44KE44Gq44GOLOOBsuOBleOBkw0KK+OBr+OBqOOCiizjgobjgYbjgZMNCivjgZXjgYvjgYbjgYgs44GV44KPDQor44GC44G5LOOBk+OBhuOBhOOBoQ0KK+OBleOBqOOBhizjgoTjgZnjgb/jgaQNCivjgZXjgajjgYYs44G+44KG44G/DQor44GV44Go44GGLOOCiOOBl+OBig0KK+OBl+OBvuOBoCzjgorjgYgNCivjgYTjgb7jgYQs44GL44Gk44GC44GNDQor44GZ44GM44Gs44G+LOOBoeOCiA0KK+OBm+OBjSzjgYLjgY3jgbLjgo0NCivjgZvjga4s44Gf44GL44KE44GZDQor44GC44G5LOOBvuOBleOBr+OCiw0KK+OBn+OBi+OBmeOBjCzjgb7jgobjgb8NCivjgZ/jgYvjgZnjgY4s44Gu44G244GTDQor44Gf44GL44Gv44GXLOOBqOOCguOBvw0KK+OBn+OBi+OBr+OBlyzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgYvjga/jgZcs44GC44GN44Gy44GoDQor44Gf44GL44Gv44GXLOOBk+OBhuOBmA0KK+OBn+OBi+OBr+OBlyzjgbLjgZXjgb8NCivjgZ/jgY3jgoLjgags44KG44GG44GfDQor44Gf44GP44G8LOOCiOOBl+OChuOBjQ0KK+OBn+OBkeOBhuOBoSzjgajjgoLjgZMNCivjgZ/jgZHjgarjgYss44KG44GN44Gy44GTDQor44Gf44Gq44GLLOOCguOBqOOBhOOBoQ0KK+OBn+OBquOBiyzjgaHjgZrjgosNCivjgZ/jgbDjgZ8s44GL44Gk44KG44GNDQor44Gf44G/44KELOOBn+OBkeOBlw0KK+OBn+OCgOOCiSzjgozjgYTjgZMNCivjgaHjgoXjgYbjgb4s44Gy44KN44Gf44GLDQor44G744KT44GU44GGLOOChuOBhuOBkw0KK+OBquOBi+OBiizjga7jgbbjgYLjgY0NCivjgarjgYvjgYzjgo8s44GT44GG44GE44GhDQor44Gq44GL44Ge44GuLOOBsuOBp+OBruOCig0KK+OBquOBi+OBrizjgb/jgaTjgbLjgo0NCivjgavjgaPjgZ8s44Gv44GqDQor44Gr44KPLOOCiuOCh+OBhuOBhOOBoQ0KK+OBruOBmCzjgbLjgo3jgYLjgY0NCivjga/jgZbjga4s44Gf44GL44GXDQor44Gv44GX44KC44GoLOOBqOOBiuOCiw0KK+OBr+OBl+OCguOBqCzjgobjgYbjgZMNCivjga/jgoTjgZcs44Gh44GK44KKDQor44Gv44KE44GXLOOBqOOBhuOBkw0KK+OBr+OCieOBkOOBoSzjgZ/jgYvjgZcNCivjga/jgovjgZDjgaEs44Go44GX44GKDQor44Gy44KJ44GnLOOBhOOBleOCgA0KK+OBsuOCieOBrizjgb7jgZXjgZ/jgYsNCivjgbLjgonjgoTjgb4s44KG44GNDQor44G144GL44GW44KPLOOBsuOCjeOBvw0KK+OBteOBj+OBvuOBmSzjgYvjgogNCivjgbXjgY/jgoLjgoos44G+44GV44KLDQor44G144GY44GL44KPLOOBl+OBkuOCiw0KK+OBu+OBl+OBrizjga7jgorjgZMNCivjgbvjgZ3jga4s44GC44GN44Gy44GoDQor44G+44Gk44GK44GLLOOCiOOBl+OBquOCig0KK+OBvuOBpOOCgOOCiSzjgarjgb/jgZMNCivjgb/jgZrjgYvjgb8s44Gm44Gk44KN44GGDQor44G/44Gk44GELOOBn+OBhOOBmeOBkQ0KK+OBv+OBruOBi+OBvyzjgajjgZfjgobjgY0NCivjgb/jgoTjgoLjgags44Gf44Gk44GXDQor44KA44KJ44GL44G/LOOBkeOBhOOBkw0KK+OChOOBnyzjgarjgYrjgZMNCivjgoTjgarjgY7jgZ8s44G/44Gu44KLDQor44KE44G+44GQ44GhLOOBk+OBhuOBmA0KK+OChOOBvuOBl+OBnyzjgb/jgaHjgYoNCivjgoTjgb7jgoLjgags44KG44GG44GE44Gh44KNDQor44KI44GX44Gf44GRLOOBsuOBp+OBruOCig0KK+OCiOOBl+OCgOOCiSzjgYjjgooNCivjgbLjgZDjgaEs44Gf44GR44GXDQor44Gv44GX44KC44GoLOOBguOBpOOBlw0KK+OCj+OBn+OBquOBuSzjgobjgY0NCivjgYLjgY3jgbAs44Gf44GR44Gy44GTDQor44GC44GN44KC44GoLOOBv+OBpOOCiA0KK+OBguOBvuOChCzjgb7jgZXjgosNCivjgYLjgpPjganjgYYs44Gm44Gk44KN44GGDQor44GC44KT44GW44KPLOOBruOBtuOBsuOCjQ0KK+OBguOBleOBr+OBnyzjgYvjgZrjgbLjgagNCivjgbDjgbAs44G/44Gh44Gy44GoDQor44G544Gj44GX44KHLOOBpuOCi+OBsuOBqA0KK+OBoeOBi+OCguOBqCzjgZXjgYrjgooNCivjgaHjgofjgYYs44Gg44GE44GZ44GRDQor44G144GY44Gy44KJLOOBv+OCj+OBkw0KK+OBteOBmOOBhCzjgZHjgYTjgZMNCivjgbXjgZjjgZ/jgass44KI44GX44GL44GkDQor44G144GL44GgLOOBvuOBleOBguOBjQ0KK+OBteOCi+OBoOOBpizjgarjgYrjgY0NCivjgbXjgovjgoTjgb4s44Gy44KN44KG44GNDQor44GU44GG44GgLOOBjeOCiOOBruOBtg0KK+OBk+OBhOOBkSzjgojjgZfjgobjgY0NCivjga/jgYvjgb7jgaAs44GT44GG44Ge44GGDQor44Gv44Gb44GM44KPLOOBn+OBi+OBig0KK+OBr+OBl+OCguOBqCzjgZPjgYbjgYTjgaENCivjga/jgaPjgZ8s44GR44KT44GE44GhDQor44Gv44Gj44Go44KKLOOBn+OBi+OBsuOCjQ0KK+OBr+OChOOBi+OCjyzjgbLjgo3jgY0NCivjga/jgoTjgYvjgo8s44Gq44KL44Gk44GQDQor44Gy44Gs44G+LOOBn+OBj+OChA0KK+OBsuOCjeOBjSzjgajjgoLjgbLjgacNCivjgbvjgorjga7jgYbjgaEs44KG44GG44GYDQor44G744Gd44GuLOOBguOBpOOBkw0KK+OBteOBmOOBiuOBiyzjgbLjgafjgY0NCivjgbXjgovjgZ8s44Gq44KL44GNDQor44G144GV44GuLOOBkeOCkw0KK+OBteOBl+OBvyzjgYrjgZXjgoANCivjgYTjgZ/jgaks44Gy44Go44GXDQor44GE44GgLOOBvuOBleOBsuOCjQ0KK+OBhOOBr+OCiSzjgZHjgYQNCivjgYTjgYTjgaAs44Gf44GL44Gy44KNDQor44GE44Gq44KE44G+LOOBsuOCjeOBi+OBmg0KK+OBhOOBrizjgZjjgoXjgpPjgYTjgaENCivjgYTjga7jgYbjgYgs44KB44GQ44G/DQor44GE44GX44GgLOOCiOOBl+OBpOOBkA0KK+OBhOOBl+OCguOBqCzjgoTjgZnjgojjgZcNCivjgYTjgZfjgo8s44G/44Gk44KLDQor44GE44GX44KP44Gf44KKLOOBsuOCjeOBi+OBpA0KK+OBhOOBn+OBj+OCiSzjgarjgbvjgZMNCivjgYTjgajjgYYs44Gf44GL44Gy44KNDQor44GE44Go44GGLOOBl+OCheOBhuOBhOOBoQ0KK+OBhOOCj+OBhCzjgarjgarjgZMNCivjgYTjgZbjgo8sDQor44GY44G2LOOBmeOBkOOCiw0KK+OBi+OBsOOChOOBvizjgb7jgZXjgY0NCivjgYvjgYQs44KG44GG44GTDQor44GL44GN44Gs44G+LOOBmOOCheOCkw0KK+OBi+OBjeOBluOBjSzjgb7jgZXjgY0NCivjgYvjgY/jgaAs44GX44KF44GG44GZ44GRDQor44GL44Gq44GM44KPLOOBl+OCkw0KK+OBi+OCk+OBuSzjgZ/jgZHjgYoNCivjgYvjgpPjgaAs44KE44GZ44Gy44GoDQor44GL44GV44GgLOOBv+OBoeOBn+OBiw0KK+OBi+OCj+OBhCzjgajjgoLjgZMNCivjgZXjgZXjgY0s44GE44GP44GIDQor44GL44KP44GbLOOBleOBuw0KK+OBjeOCguOBqCzjgb/jgY3jga0NCivjgY3jgZ/jga/jgoks44Gu44G244GKDQor44GN44Gf44KA44KJLOOCiOOBl+OBig0KK+OBk+OBsOOChOOBlyzjgbLjgo3jgYgNCivjgZPjgbbjgZEs44KG44GG44GTDQor44GT44GE44Ga44G/LOOBi+OBquOBkw0KK+OBk+OBv+OChOOBvizjgb7jgorjgZMNCivjgZPjgpPjga7jgYvjgZrjgbLjgo0s44KE44GZ44Gy44GoDQor44GT44GX44GL44KPLOOBn+OBi+OChuOBjQ0KK+OBk+OCk+OBrizjgZPjgYbjgYTjgaENCivjgY/jgbws44G+44GV44Gu44G2DQor44GP44G844GL44KPLOOBquOBpOOBjQ0KK+OBj+OBqeOBhizjgajjgoLjgYsNCivjgY/jgorjga/jgoks44GL44Gk44GE44GhDQor44GP44KN44GOLOOBleOBiOOBkw0KK+OBvuOBoeOBoCzjga/jgovjgb8NCivjgb7jgZjjgb4s44KE44GZ44GTDQor44GE44GX44GaLOOBruOCiuOChuOBjQ0KK+OBvuOBi+OBuSzjgbLjgo3jgogNCivjgb7jgovjgoTjgb4s44Gy44Gn44GC44GNDQor44G+44GZ44GgLOOBi+OCiA0KK+OBvuOBpOOBjOOBleOBjSzjgYLjgY3jgokNCivjgb7jgaTjgYQs44Gf44GR44GXDQor44G+44Gk44GELOOBleOBiuOCig0KK+OBvuOBpOOCguOBqCzjgZHjgpPjgZgNCivjgb7jgo/jgZ/jgoos44GL44KT44GYDQor44G/44Gh44KC44GoLOOBqOOBl+OBsuOCjQ0KK+OBv+OBjSzjgZnjgb/jgZMNCivjgb/jgaTjgb4s44Gf44GL44Gu44KKDQor44G/44GG44KJLOOBkeOBhOOBlA0KK+OBv+OCjyzjgb7jgZPjgagNCivjgb/jgoTjgoLjgags44GL44Gk44Gy44GVDQor44G/44KE44KC44GoLOOChOOBmeOBruOBtg0KK+OBv+OChOOCguOBqCzjgZ/jgZHjga7jgbYNCivjgb/jgoTjgZ8s44G+44GV44GXDQor44KA44KJ44GL44G/LOOBqOOBiuOCiw0KK+OBn+OBr+OCiSzjga7jgorjgZMNCivjgb/jgZrjgZ/jgass44Go44KC44GLDQor44KC44KKLOOChuOBjQ0KK+OCguOCiuOBkOOBoSzjgb7jgZXjgbLjgZMNCivjgoLjgorjgYvjgo8s44Gy44KN44GXDQor44KC44KK44KC44GoLOOBi+OBmuOBvw0KK+OCguOCiuOBnyzjgozjgYTjgZMNCivjgoDjgonjgYvjgb8s44Gf44Gk44Gy44GTDQor44GC44Gn44GM44KPLOOBguOBhA0KK+OBquOBjOOBleOBiyzjgbLjgYvjgosNCivjgarjgYzjgZ8s44GY44KF44KKDQor44Gq44GM44GfLOOBi+OBpOOBruOBtg0KK+OBhOOBluOCjyzjgYvjgYrjgooNCivjgarjgYvjgb/jga0s44G+44KC44KLDQor44Gq44GL44KA44KJLOOBsuOCjeOBruOCig0KK+OBquOBi+OCgOOCiSzjgZ/jgaTjgoQNCivjgYTjgoLjgags44GT44GG44GE44Gh44KN44GGDQor44Gq44GL44KA44KJLOOBn+OBkeOBlw0KK+OBquOBi+OBiizjgobjgYbjgZgNCivjgarjgYvjgoTjgb4s44GG44GX44KTDQor44Gq44GL44GW44KPLOOBjeOCiOOBlw0KK+OBquOBv+OBjSzjga/jgovjgojjgZcNCivjgavjgYTjgb8s44GC44GN44Gy44KNDQor44Gr44GE44Gc44GNLOOBi+OBiuOCig0KK+OBq+OBl+OBpyzjgbLjgafjgYLjgY0NCivjgavjgo8s44Gy44Gn44GNDQor44Gu44G5LOOBv+OBlQ0KK+OBiuOBiuOBnyzjgZfjgZLjgYLjgY0NCivjgYrjgYzjgo8s44G+44GV44KI44GXDQor44GK44GQ44GZLOOChuOBhuOBmeOBkQ0KK+OBiuOBiuOCguOBqCzjgZfjgofjgYbjgZgNCivjgYrjgZfjgb4s44Gf44GL44Gu44KKDQor44GK44GK44GfLOOBkeOCk+OBhOOBoQ0KK+OBiuOBiuOChCzjgbLjgb/jgZMNCivjgYTjgZfjgYvjgo8s44KI44GGDQor44GK44GL44GgLOOBn+OBkeOBlw0KK+OBiuOBjyzjgbXjgb/jgobjgY0NCivjgYrjgY/jgaAs44G+44GV44GNDQor44GK44GX44GP44G8LOOBkeOCk+OBhOOBoQ0KK+OBiuOBnOOBjSzjgYvjgaTjgbLjgZMNCivjgonjgYQs44KG44GG44GYDQor44GE44Go44GGLOOBqOOCguOChA0KK+OBleOBhOOBjSzjgbLjgo3jgZcNCivjgZXjgYTjgajjgYYs44Gf44Gk44KEDQor44KI44GX44GgLOOBv+OBoeOChOOBmQ0KK+OBleOBkyzjgZfjgZLjgb/jgaQNCivjgZXjgZXjgZjjgb4s44GY44KF44KT44KEDQor44GV44GV44GNLOOChuOBjeOBkw0KK+OBleOBqOOBhizjgaTjgZDjgbLjgacNCivjgYTjgo/jgoLjgags44GL44Ga44Gy44GTDQor44GV44Go44GGLOOBoeOBiOOBkw0KK+OBleOCj+OBoCzjgbLjgafjgoTjgZkNCivjgZvjgY3jgYvjgo8s44GE44Ga44G/DQor44Gb44GN44GtLOOBv+OBpOOBig0KK+OBl+OBsOOBnyzjgarjgYrjgY0NCivjgZfjgZLjga/jgoks44GX44KT44KEDQor44GX44G+44GK44GLLOOBguOBjeOBsuOBkw0KK+OBl+OBv+OBmizjgYvjgZrjgbLjgo0NCivjgZfjgoIs44G+44GV44GC44GNDQor44GX44KC44KA44KJLOOBn+OBi+OBlw0KK+OBl+OCgOOCiSzjgZ/jgYvjgbLjgZUNCivjgZ3jgoHjgoQs44GC44GN44Gy44GTDQor44GZ44GI44KI44GXLOOBkeOCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgbLjgafjgobjgY0NCivjgZnjgZrjgY0s44Gq44GK44GNDQor44Gf44GL44GgLOOBhOOBoeOCjeOBhg0KK+OBn+OBi+OBr+OBlywNCivjgZ/jgYvjgZss44G+44Gq44G2DQor44Gf44GR44GgLOOBguOBjeOCiQ0KK+OBn+OBkeOBhCzjgbLjgZXjgojjgZcNCivjgZ/jgZHjgoLjgags44Gv44GY44KBDQor44Gf44G+44GELOOBqOOBl+OBsuOBkw0KK+OBn+OCgOOCiSzjgZ/jgYvjgobjgY0NCivjgZ/jgoDjgoks44GV44Go44KLDQor44GE44GX44GL44KPLOOBsuOBqOOBlw0KK+OBn+OBquOBiyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgZ/jgarjgYss44G+44GV44Gy44KNDQor44Gf44Gr44GQ44GhLOOBn+OBkeOBruOCig0KK+OBn+OBq+OBkOOBoSzjgbLjgo3jgZ/jgYsNCivjgZ/jgavjgZDjgaEs44GR44KT44GYDQor44Gf44Gr44GQ44GhLOOBkeOCkw0KK+OBhOOBl+OBoCzjgYLjgaTjgZcNCivjgZ/jgavjgZfjgZ8s44G144G/44GuDQor44Gm44KJ44Gr44GXLOOBpOOCiOOBlw0KK+OBqOOBiuOChOOBvizjgY3jgofjgYbjgZMNCivjgajjgb/jgZ8s44G/44KPDQor44Go44Gt44GM44KPLOOBn+OBjw0KK+OBqOOCiOOBoCzjga7jgorjgZMNCivjgajjgojjgZ8s44GX44KF44GG44GYDQor44Gk44Gh44KELOOCiOOBl+OBkw0KK+OBhOOBl+OBi+OCjyzjgarjgYrjgY0NCivjgaTjgoDjgoks44Go44GX44GC44GNDQor44Gk44Gu44GL44KPLOOCiOOBl+OBvw0KK+OBhuOBoeOBoCzjgbLjgajjgZcNCivjgYbjgZXjgb8s44Gf44GR44GXDQor44KP44GY44G+LOOCiuOBkw0KK+OCj+OBn+OBquOBuSzjgb7jgY0NCivjgo/jgZ/jgarjgbks44KI44GG44GE44GhDQor44KP44Gf44Gq44G5LOOChOOCiOOBhA0KK+OChOOBjizjgZHjgYTjgYTjgaENCivjgoTjgY4s44GN44KH44GG44GTDQor44KE44GP44KPLOOBsuOCjeOBteOBvw0KK+OChOOBvuOBoCzjgbLjgo3jgY0NCivjgoTjgb7jgaAs44Gf44GL44KG44GNDQor44KE44G+44GQ44GhLOOBqOOBl+OChuOBjQ0KK+OChOOBvuOBruOBj+OBoSzjgb7jgZXjgZMNCivjgoTjgb7jgZfjgZ8s44GT44GG44GE44GhDQor44KE44G+44GX44GfLOOBquOBiuOChuOBjQ0KK+OChOOBvuOBluOBjSzjgbLjgafjgobjgY0NCivjgoTjgb7jgZbjgY0s44KG44Gf44GLDQor44KE44Gq44GM44KPLOOBn+OBpOOCjeOBhg0KK+OChOOBmeOBoCzjgajjgojjgYLjgY0NCivjgoTjgZnjgYgs44Go44KC44KG44GNDQor44GE44Gd44GM44GELOOBn+OBoOOBruOBtg0KK+OChOOBn+OBjOOBhCzjgYjjgooNCivjgojjgZfjgaAs44KK44KH44GG44GTDQor44Gf44GL44Gv44GXLOOBvuOBleOBjQ0KK+OBiuOBi+OBoCzjgZfjgoXjgYbjgYTjgaENCivjgYLjgYrjgY0s44G+44GV44KLDQor44GC44GN44GwLOOBguOBjeOBkw0KK+OBguOBuSzjgYLjgY3jgZMNCivjgYLjgb7jga4s44G+44GV44GKDQor44GC44KK44KC44GoLOOBl+OCheOBhuOBmA0KK+OBguOCk+OBqeOBhizjgobjgY0NCivjgYTjgYvjgo8s44Gf44GE44G444GEDQor44GE44GX44GELOOBruOCiuOBsuOCjQ0KK+OBhOOBl+OBi+OCjyzjgarjgYrjgZMNCivjgYTjgZfjgZrjgYss44KG44G/DQor44GE44GX44Gw44GXLOOBl+OCheOCk+OBmeOBkQ0KK+OBhOOBl+OCguOBqCzjgorjgofjgYbjgZnjgZENCivjgYTjgacs44GV44Go44GTDQor44GE44Gh44Gu44GbLOOBleOBqOOBlw0KK+OBhOOBquOBoCzjgb7jgarjgbYNCivjgYTjgazjgYQs44KE44GZ44KIDQor44GE44Gu44GG44GILOOBvuOBv+OBkw0KK+OBhOOChOOBvizjgZPjgYbjgZgNCivjgYTjgo/jgZXjgY0s44G/44Ga44G+44GVDQor44GE44KP44G+LOOBi+OBmuOBkw0KK+OBhOOCj+OBvuOBpCzjgYrjgZXjgarjgYoNCivjgYbjgYjjgaAs44Gy44KN44GTDQor44GG44GI44GuLOOBsuOCjeOBjQ0KK+OBhuOBoeOBoCzjgZ/jgYvjgYoNCivjgYbjgaks44GR44KT44GYDQor44GG44KB44Gv44KJLOOBn+OBi+OBlw0KK+OBiOOBkOOBoSzjgajjgb/jgZXjgbYNCivjgYjjga7jgY0s44KI44GX44GTDQor44GI44KC44GoLOOBv+OBpOOCguOBqA0KK+OBiOOCguOCiizjgZvjgYTjgoQNCivjgarjgYvjgYzjgo8s44Gq44GK44GC44GNDQor44GK44GK44GfLOOBsuOBp+OChuOBjQ0KK+OBiuOBjOOBnyzjgoTjgZnjgZcNCivjgYrjgYzjgo8s44Gu44G244Gf44GLDQor44GK44GM44KPLOOCjOOBhOOBkw0KK+OBiuOBj+OBhCzjgZ/jgY/jgZgNCivjgYrjgY/jgoDjgoks44KC44Go44GTDQor44GK44GK44Gf44GrLOOBpuOCi+OBguOBjQ0KK+OBiuOBpOOBqOOCgizjgobjgY3jgZMNCivjgYrjgavjgZbjgo8s44GX44GS44GNDQor44GK44GuLOOBruOCiuOBguOBjQ0KK+OBiuOBsOOBqizjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYrjgb7jgYzjgoos44G+44GV44KEDQor44GL44GN44GW44KPLOOBpuOBpOOBsuOCjQ0KK+OBi+OBkeOBsizjgYjjgorjgZMNCivjgYvjgZXjga/jgoks44G+44Gp44GLDQor44GL44GYLOOBiuOBleOCgA0KK+OBi+OBmOOBnyzjgZ/jgYvjgYoNCivjgYvjgZjjgZ8s44Gf44GL44GKDQor44GL44GY44KE44G+LOOBv+OBruOCiw0KK+OBi+OBqOOBhizjgojjgZfjga7jgbYNCivjgYvjgarjgaAs44GR44GEDQor44GL44Gt44GTLOOBruOBtuOBi+OBpA0KK+OBi+OBreOBkyzjgorjgofjgYbjgZ8NCivjgYTjgZ/jga4s44GR44KT44GZ44GRDQor44Gq44GM44Gk44G+LOOBl+OCheOBhuOBuOOBhA0KK+OBi+OBruOBhizjgZvjgYTjgZgNCivjgYvjgb7jgYgs44Gq44GK44GNDQor44GL44KP44GELOOBpuOBpOOBig0KK+OBi+OCj+OBvuOBnyzjgbLjgo3jgY0NCivjgYvjgpPjga4s44G+44GE44GTDQor44GN44GG44GhLOOBhOOBmuOBvw0KK+OBjeOBlyzjgojjgYbjgZMNCivjgY3jgZ/jgYzjgo8s44Go44KC44Gu44G2DQor44GN44Gu44GX44GfLOOBquOCiuOBqOOBlw0KK+OBjeOCh+OBhuOBjOOBjyzjgb7jgZPjgagNCivjgY/jgbws44Go44KC44Gu44KKDQor44GP44G844GfLOOBn+OBj+OChA0KK+OBj+OBvOOBnyzjgZfjgpPjgbrjgYQNCivjgY/jgorjga/jgoks44KK44GIDQor44GP44KK44KE44G+LOOBkeOBhOOBkw0KK+OBhOOBl+OBjOOBjSzjgajjgZfjgbXjgZUNCivjgY/jgo3jgYQs44GE44Gk44KN44GGDQor44GT44GG44GV44GNLOOBk+OBhuOBhOOBoQ0KK+OBk+OBhuOBoCzjgYLjgaTjgZcNCivjgZPjgbDjgoTjgZcs44Gu44G244GC44GNDQor44GT44Gw44KE44GXLOOBpuOBpOOChA0KK+OBk+OBsOOChOOBlyzjgobjgYbjgZnjgZENCivjgZPjgbDjgoTjgZcs44GT44GG44GYDQor44GE44Gu44GG44GILOOBruOBtuOBguOBjQ0KK+OBleOBhOOBuyzjgarjgovjgbLjgo0NCivjgZXjgYvjgYzjgo8s44KI44GG44G444GEDQor44GL44KP44KA44KJLOOChuOBn+OBiw0KK+OBleOBleOBiuOBiyzjgojjgYbjgZMNCivjgZXjgZXjgY0s44Gu44G844KLDQor44GV44Go44GGLOOBruOCiuOBi+OBmg0KK+OBleOBqOOBhizjgb7jgarjgbYNCivjgZXjgarjgaAs44GK44GV44KADQor44GV44KL44KE44G+LOOBkeOCk+OBhOOBoQ0KK+OBl+OBiuOBpCzjgYjjgYTjgZnjgZENCivjgZfjgYrjga7jgoQs44GX44Gu44G2DQor44GX44GK44KE44G+LOOBruOBvOOCiw0KK+OBl+OBjuOBr+OCiSzjgbLjgo3jgobjgY0NCivjgZfjgZfjgaks44GP44Gr44GKDQor44GX44Gu44GW44GNLOOBi+OBmuOBsuOBqA0KK+OBl+OBsOOBnyzjgb/jga7jgosNCivjgZfjgb/jgZosDQor44GX44KH44GG44GuLOOBl+OCk+OBhOOBoQ0KK+OBl+OCieOBjSzjgbLjgo3jgobjgY0NCivjgZnjgY7jgYrjgYss44G/44Gk44GL44GaDQor44GZ44GO44Gv44KJLOOBjeOCiOOBl+OBkg0KK+OBmeOBmuOBjSzjgbLjgZXjgabjgosNCivjgZnjgZrjgY0s44GX44GS44KG44GNDQor44GZ44G/44KE44G+LOOBm+OBhOOBmA0KK+OBm+OBo+OBnyzjgb7jgZXjgY0NCivjgYTjgZfjgo/jgZ8s44Gg44GE44GY44KFDQor44Gb44KT44GU44GPLOOBv+OBruOCiw0KK+OBn+OBi+OBiuOBiyzjgobjgb8NCivjgZ/jgYvjgZbjgo8s44Gf44GL44GX44GSDQor44Gf44GL44Gv44GXLOOBguOChOOBkw0KK+OBn+OBi+OCgOOCiSzjgZ/jgYvjgobjgY0NCivjgZ/jgY3jgags44Gy44Gn44GNDQor44Gf44Gq44GLLOOBi+OBmg0KK+OBn+OBquOBiyzjgYLjgY3jgZMNCivjgYTjgajjgYYs44GY44KF44KT44GYDQor44Gf44Gq44G5LOOBkeOCk+OBmA0KK+OBn+OBq+OBkOOBoSzjgb7jgarjgbYNCivjgaHjgoPjgo/jgpPjgoQs44KI44GX44Gv44KLDQor44Gm44KJ44GV44GLLOOBsuOCjeOBjQ0KK+OBqOOBk+OCjSzjgZjjgoXjgpPjgYTjgaENCivjgarjgYvjgYQs44Gf44GL44GXDQor44Gq44GL44GKLOOBl+OCk+OBmA0KK+OBquOBjOOBiuOBiyzjgb/jgbsNCivjgarjgYvjgYzjgo8s44KC44Go44GC44GNDQor44Gq44GL44GY44G+LOOBmeOBsuOBoQ0KK+OBquOBjOOBmyzjgZ/jgaTjgoQNCivjgarjgYvjga4s44Gb44GE44GfDQor44Gq44GL44GuLOOBmA0KK+OBquOBjOOBrizjgobjgYbjgZMNCivjgYTjgZHjgaAs44GC44GN44GTDQor44Gq44GL44KA44KJLOOBvuOCiuOBkw0KK+OBquOBi+OChOOBvizjgYvjgaTjgajjgZcNCivjgavjgYos44GY44KF44KT44GE44GhDQor44Gr44GX44GKLOOBruOCiuOBkw0KK+OBq+OBl+OBi+OBhCzjgajjgZfjgb/jgaQNCivjgavjgZfjgZbjgYss44KI44GX44GTDQor44Gr44GX44GgLOOBoOOBhOOBmeOBkQ0KK+OBq+OBl+OBoCzjgZ/jgYvjgZcNCivjgYTjgYTjgZjjgb4s44G+44GV44GNDQor44Gr44GX44Gv44KJLOOBi+OBmuOChuOBjQ0KK+OBq+OBl+OCgOOCiSzjgYvjgZrjgoQNCivjga3jgo3jgoEs44Gy44KN44GXDQor44Gu44GY44G+LOOBleOBreOBsuOCjQ0KK+OBruOBquOBiyzjgaDjgYTjgZnjgZENCivjga/jgZfjgbAs44Gu44KK44GL44GaDQor44Gv44Gh44KELOOBn+OBi+OBsuOCjQ0KK+OBr+OBo+OBqOOCiizjgZMNCivjgYTjgYTjgaAs44Gy44KN44KG44GNDQor44Gv44G2LOOBvuOBk+OBqA0KK+OBr+OChOOBi+OCjyzjgabjgaTjgo3jgYYNCivjga/jgoTjgZcs44Gq44GK44GTDQor44Gv44KE44GX44G+LOOBsuOBp+OBlw0KK+OBr+OCiSzjgZ/jgY/jgb8NCivjgbLjgYzjgZfjgaAs44G+44GV44KLDQor44Gb44GN44GQ44GhLOOBjeOCh+OBhuOBhOOBoQ0KK+OBsuOCieOBhCzjgYvjgYrjgooNCivjgbLjgo3jgZnjgYgs44Gy44KN44KG44GNDQor44Gy44KN44Gv44GfLOOBn+OBj+OChA0KK+OBteOBj+OBl+OBvizjgb/jgaTjgYoNCivjgbXjgZjjgYos44Gm44KT44G644GEDQor44G144GY44GfLOOChuOBhuOBhOOBoeOCjeOBhg0KK+OBteOBmOOBvuOBjSzjgobjgY3jgbLjgZMNCivjgbXjgZjjgo/jgoks44Go44GK44KLDQor44G144KL44GE44GhLOOChuOBhuOBmeOBkQ0KK+OBu+OBleOBiyzjgZ/jgZHjgZcNCivjgbvjgZfjga4s44GT44GG44GYDQor44G744KKLOOChuOBjeOBkw0KK+OBu+OCiuOCguOBqCzjgobjgYbjgZgNCivjgbvjgpPjgb4s44KG44GN44Gu44G2DQor44G+44GI44GL44KPLOOBn+OBkeOBr+OCiw0KK+OBvuOBiOOBoCzjgZ/jgYvjgbLjgagNCivjgb7jgYjjgaAs44G/44GN44GKDQor44G+44GI44GgLOOBn+OBpOOChA0KK+OBvuOBleOBhCzjgY/jgb8NCivjgb7jgaTjgYQs44Gy44Gn44Gu44G2DQor44G+44Gk44GW44KPLOOBoeOBi+OCiQ0KK+OBvuOBpOOBoCzjgZ/jgYvjgobjgY0NCivjgb7jgaTjgajjgoIs44G+44GV44Gq44GKDQor44G+44Gk44Gq44GMLOOBkeOCk+OBmA0KK+OBvuOBpOOCguOBqCzjgojjgYbjgZnjgZENCivjgb/jgZrjgZDjgaEs44Go44KC44Gf44GLDQor44G/44KE44KC44GoLOOBvuOChuOBvw0KK+OBv+OChOOCguOBqCzjgoTjgZnjgZgNCivjgoDjgonjgYvjgb8s44GL44Ga44Gy44GnDQor44KA44KJ44GL44G/LOOBvuOBleOBsuOCjQ0KK+OCgOOCieOBquOBiyzjgZXjgajjgZcNCivjgoLjgaHjgZrjgY0s44Gf44GP44KEDQor44KC44Go44GP44KJLOOBqOOCguOBkw0KK+OCguOCiizjgY/jgavjgYvjgZoNCivjgoLjgorjgoQs44G744G+44KMDQor44KE44GZ44GELOOBn+OBhOOBkuOCkw0KK+OChOOBmeOBoCzjgb/jgY3jgZMNCivjgoTjgZnjgaAs44GN44KI44Gy44GoDQor44KE44GfLOOBi+OBmuOBsuOCjQ0KK+OChOOBn+OBjSzjga7jgbbjgYoNCivjgoTjgaEs44G144G/44Gy44GTDQor44KE44GuLOOBsuOCjeOBlw0KK+OChOOBvuOBhOOBmuOBvyzjgojjgZfjgYLjgY0NCivjgoTjgb7jgYrjgYss44G+44GV44GNDQor44KE44G+44GQ44GhLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOBkOOBoSzjgojjgZfjga7jgooNCivjgoTjgb7jgZbjgY0s44GC44GN44GKDQor44KE44G+44GW44GNLOOBquOBqg0KK+OChOOBvuOBl+OBnyzjgb7jgYTjgZMNCivjgoTjgb7jgoLjgags44GR44KTDQor44KI44GT44Gc44GNLOOBn+OBhOOBoQ0KK+OCiOOBl+OBoCzjgarjgYrjgagNCivjgojjgZfjga4s44KE44GZ44GKDQor44KI44GX44G/LOOBn+OBi+OBlw0KK+OCiOOBoCzjgZ/jgYvjgbLjgo0NCivjgojjgaAs44Gy44KN44GC44GNDQor44KN44GYLOOBteOBv+OBguOBjQ0KK+OCj+OBoCzjgb7jgb8NCivjgo/jgZ/jgarjgbks44KG44GN44GKDQor44KP44Gf44Gq44G5LOOBsuOBp+OBjQ0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgYoNCivjgo/jgZ/jgbks44Gf44GL44GXDQor44GL44Gu44GGLOOBn+OBi+OBqOOBlw0KK+OBq+OBo+OBnyzjgYrjgZXjgoANCivjgYLjgYrjgY0s44GX44KF44GGDQor44GC44GK44GNLOOBr+OBquOBkw0KK+OBguOBiuOChOOBvizjgb7jgZXjgYLjgY0NCivjgYLjgYrjgoTjgb4s44Gs44GEDQor44GC44GN44GwLOOBkeOBhOOBhOOBoQ0KK+OBguOBleOBoCzjgb7jgorjgZMNCivjgYLjgaDjgaEs44Go44KC44G/DQor44GC44Gg44GhLOOChuOBhuOBkw0KK+OBguOBqOOBuSzjga/jgovjgagNCivjgYLjgbks44GL44Gk44Gy44GTDQor44GC44G5LOOBruOBtuOBig0KK+OBguOBuSzjgb7jgobjgb8NCivjgYLjgb7jga4s44G+44GNDQor44GC44G+44GuLOOBmOOCheOCk+OBhOOBoeOCjQ0KK+OBguOCieOBi+OCjyzjgorjgofjgYbjgZnjgZENCivjgYLjgorjgZ8s44KI44GG44G444GEDQor44GC44KK44Go44KCLOOBsuOCjeOBlw0KK+OBguOCk+OBluOBhCzjgbLjgafjgYLjgY0NCivjgYTjgajjgYYs44KI44GG44GYDQor44GC44KT44Gp44GGLOOCiuOBiOOBkw0KK+OBhOOBjOOCieOBlyzjgb/jgYrjgZMNCivjgYTjgZHjgaAs44GE44Ga44G/DQor44Gf44GL44Gv44GXLOOBguOBpOOBig0KK+OBhOOBl+OBsOOBlyzjgZ/jgaDjgZcNCivjgYTjgZfjgoDjgoks44KG44G/44GTDQor44GE44GX44KC44GoLOOBvuOCiuOBkw0KK+OBhOOBoeOBhCzjgZHjgYTjgZMNCivjgYTjgaHjgYvjgo8s44Gy44KN44GoDQor44GE44Gh44GL44KPLOOBvuOBjeOBkw0KK+OBhOOBoeOBruOBmyzjgY3jgojjgZcNCivjgYTjgajjgYYs44GC44GN44Gy44KNDQor44GE44Go44GGLOOBvuOBleOCiw0KK+OBhOOBqOOBhizjgorjgZUNCivjgYTjgarjgYrjgYss44G+44GV44G144G/DQor44GE44Gq44GwLOOBsuOCjeOBn+OBkQ0KK+OBhOOBrOOBmuOBiyzjgb7jgobjgb8NCivjgYTjga7jgYbjgYgs44Gy44Gn44GK44G/DQor44GE44Gu44GL44KPLOOBl+OCheOCk+OBmeOBkQ0KK+OBhOOBvuOBhCzjgZ/jgZHjgZcNCivjgYTjgb7jgZfjgoXjgY8s44KK44KH44GGDQor44GE44KP44GELOOBqOOCguOBsuOBkw0KK+OBhOOCj+OBl+OBvizjgZfjgoXjgYbjgYTjgaENCivjgYbjgYjjgZ7jga4s44KB44GQ44G/DQor44GG44GI44GgLOOBn+OBi+OBsuOCjQ0KK+OBhuOBiOOBr+OCiSzjgZ/jgYvjgobjgY0NCivjgYbjgYjjga/jgoks44KC44Go44GTDQor44GL44GN44GfLOOBkeOCkw0KK+OBhuOBleOBvyzjgbLjgZjjgooNCivjgYbjgaHjgaAs44Gy44KN44GNDQor44GG44Gh44GgLOOBguOChOOBkw0KK+OBhuOBoeOBvOOCiizjgb/jgZXjgagNCivjgYbjgoHjgYzjgYQs44GL44Ga44GIDQor44GG44KB44GkLOOBguOBjeOBsuOBkw0KK+OBhuOCgeOBrizjgZ/jgZHjgZcNCivjgYbjgonjgYvjgo8s44KG44GNDQor44GG44KJ44G5LOOBl+OBkuOBsuOBlQ0KK+OBiOOBkOOBoSzjgZ/jgaDjgZcNCivjgYjjgZrjgb8s44GE44GP44KIDQor44GI44Gu44KC44GoLOOBn+OCjeOBhg0KK+OBhOOBvuOBq+OBlyzjgbLjgo3jgobjgY0NCivjgYjjga7jgoLjgags44G144G/44GTDQor44GI44KT44GpLOOCiOOBl+OBjQ0KK+OBiuOBhOOBi+OCjyzjgb7jgZXjgY0NCivjgYrjgYTjgYvjgo8s44KG44GN44G144G/DQor44GK44GK44GELOOCiOOBhuOBmA0KK+OBiuOBiuOBhOOBlyzjgb7jgZXjga/jgosNCivjgYrjgYrjgZ8s44G144G/44GL44GaDQor44GK44GK44Gk44GLLOOBl+OCk+OBmeOBkQ0KK+OBiuOBiuOBq+OBlyzjgYvjgaTjgYLjgY0NCivjgYrjgYrjgavjgZcs44G/44Gh44GIDQor44GK44GL44GgLOOChOOBmeOBig0KK+OBiuOBi+OBoCzjgb7jgZXjgosNCivjgYrjgYvjga4s44KG44GNDQor44GK44GL44G5LOOCiOOBl+OBsuOCjQ0KK+OBiuOBi+OBuSzjgbLjgafjgYLjgY0NCivjgYrjgYvjgoDjgoks44KK44KH44GGDQor44GK44GL44KC44GoLOOBv+OBjQ0KK+OBiuOBi+OCguOBqCzjgb/jgobjgY0NCivjgYrjgYzjgo8s44Gf44GI44GTDQor44GK44GM44KPLOOBqOOBiuOCiw0KK+OBiuOBj+OBoCzjgZHjgpMNCivjgYrjgY/jgaAs44Gm44Gk44KEDQor44GK44GW44GNLOOBvuOBv+OBkw0KK+OBiuOBrizjgarjgYrjgZMNCivjgYrjgYrjgoTjgb4s44Gf44GL44GXDQor44GL44GE44Ga44GLLOOBqOOBl+OBteOBvw0KK+OBi+OBjOOBvyzjgYjjgorjgYsNCivjgYvjgY3jgZ8s44GL44GK44KLDQor44GL44GPLOOBk+OBhuOBmA0KK+OBi+OBleOBhCzjgobjgY3jga7jgooNCivjgYvjgZjjgYQs44GC44GL44GtDQor44GL44GY44GfLOOBquOBiuOChA0KK+OBi+OBn+OBiCzjgobjgYbjgZjjgpMNCivjgYvjgZ/jgoTjgb4s44G/44Gk44GTDQor44GL44GkLOOBqOOBiuOCiw0KK+OBi+OBqOOBhizjgZ/jgY8NCivjgYvjgajjgYYs44Gg44GE44GZ44GRDQor44GL44G/LOOBguOBpOOBkw0KK+OBi+OBreOBkyzjgY/jgavjgbLjgagNCivjgYvjgb7jgaAs44GL44Ga44Gy44KNDQor44GL44G/LOOCiOOBl+OBpuOCiw0KK+OBi+OBv+OBsuOBlSzjgobjgYbjgZgNCivjgYvjgb/jgoLjgags44GL44GK44KKDQor44GL44G/44KELOOBi+OBmuOBig0KK+OBi+OBv+OChOOBvizjgb7jgY0NCivjgYvjgo/jgYvjgb8s44G+44GZ44G/DQor44GL44KP44GV44GNLOOBsuOBqOOBlw0KK+OBi+OCj+OBmyzjgbLjgo3jgYvjgZoNCivjgYvjgo/jga/jgZ8s44Gf44GR44Gh44GLDQor44GL44KP44Gv44KJLOOBmOOCheOCk+OBkw0KK+OBi+OCj+OCgOOCiSzjgYvjgZrjgbLjgo0NCivjgYvjgo/jgoLjgags44GR44GE44GZ44GRDQor44GL44KP44KC44GoLOOBsuOCjeOBlw0KK+OBi+OCj+OCguOBqCzjgb/jgaHjgYoNCivjgYvjgpPjgaAs44Gf44GR44GXDQor44GN44GP44GhLOOBiOOCig0KK+OBjeOBn+OBjOOCjyzjgb7jgZXjgbbjgb8NCivjgY3jgZ/jgarjgYws44GV44GL44GIDQor44GN44Gf44GuLOOBl+OCk+OBlA0KK+OBjeOBn+OCgOOCiSzjgZ/jgaTjgoQNCivjgY3jgZ/jgoLjgags44Gk44Go44KADQor44GN44Gu44GILOOBsuOCjeOBlw0KK+OBjeOBtuOBmyzjgZ/jgYvjgYgNCivjgY3jgoDjgoks44GY44KF44KT44GE44GhDQor44GN44KA44KJLOOBqOOCguOBjQ0KK+OBjeOCguOBqCzjgbLjgafjgobjgY0NCivjgY3jgoLjgags44KG44KKDQor44GO44KH44GG44G2LOOBsuOCjeOBkw0KK+OBj+OBqyzjgb/jgbsNCivjgY/jgavjgb7jgZUs44G/44GI44GTDQor44GP44G+44GV44GLLOOBn+OBhOOBm+OBpA0KK+OBj+OCieOBl+OBkizjgYLjgY3jgYoNCivjgY/jgorjga/jgoks44Gf44GR44GXDQor44GT44GE44GRLOOCgeOBkOOBvw0KK+OBk+OBhOOBkeOBoCzjgZ/jgaTjgo3jgYYNCivjgZPjgYTjgZrjgb8s44Gy44KN44GXDQor44GT44GE44Gs44G+LOOBv+OBoeOBkw0KK+OBk+OBpOOBiyzjgYvjgZrjgYLjgY0NCivjgZPjgYws44GX44GS44GNDQor44GT44GX44KC44GoLOOBsuOCjeOBv+OBpA0KK+OBk+OBoOOBvizjgZ/jgYTjgaHjgo3jgYYNCivjgZPjgaDjgb4s44G+44GV44GL44GaDQor44GU44Go44GGLOOBguOCiuOCiOOBlw0KK+OBk+OBq+OBlyzjgajjgoLjgZMNCivjgZPjgbDjgoTjgZcs44KI44GX44GYDQor44GT44Gw44KE44GXLOOBvuOBleOBjQ0KK+OBk+OBsOOChOOBlyzjgoTjgZnjgZ/jgYsNCivjgZPjgbDjgoTjgZcs44Gy44Gn44Gy44GoDQor44GT44G+44GNLOOBn+OBpOOChA0KK+OBk+OBvuOBsCzjgYvjgZrjga7jgooNCivjgZPjgb/jgoQs44GL44Gk44Gy44GTDQor44GT44KE44G+LOOBvuOBleOBruOCig0KK+OBk+OChOOBvizjgoTjgZnjga7jgooNCivjgZXjgYTjgY0s44Go44KC44Gy44GVDQor44GV44GE44GU44GGLOOBv+OCj+OBkw0KK+OBleOBhOOBqOOBhizjgZHjgpPjgZgNCivjgZXjgYTjgajjgYYs44Gm44Gk44GKDQor44GV44GE44Go44GGLOOBhOOBleOCgA0KK+OBhOOBjOOCieOBlyzjgZfjgofjgYbjgZQNCivjgZXjgYjjgZDjgZUs44Gq44G/DQor44GV44GL44GELOOBguOBjeOCiQ0KK+OBleOBi+OBjOOBvyzjgYTjgaHjgo3jgYYNCivjgZXjgYvjga0s44Gg44GE44GNDQor44GV44GL44KC44GoLOOBqOOCguOBruOCig0KK+OBleOBi+OCguOBqCzjgb7jgZPjgagNCivjgZXjgY/jgonjgYQs44Gy44KN44G/DQor44GV44GP44KJ44GgLOOCiuOCh+OBhuOBmA0KK+OBleOBk+OCkyzjgb7jgZXjgbLjgo0NCivjgZXjgZXjgY0s44Gq44Gq44GIDQor44GV44GV44Gv44KJLOOCj+OBi+OBkw0KK+OBleOBqOOBhizjgZLjgpMNCivjgZXjgajjgYYs44GY44KF44KT44GE44GhDQor44GV44Go44GGLOOBkeOCk+OBlA0KK+OBleOBqOOBhizjgarjgYrjgagNCivjgZXjga4s44Gy44Gn44GC44GNDQor44GV44KPLOOBkeOCk+OBlA0KK+OBl+OBtuOChCzjgZ/jgaDjgZcNCivjgZfjgbbjgoQs44Gy44Gn44GKDQor44GX44G+44GgLOOBvuOBquOBiA0KK+OBl+OBvuOBoCzjgbLjgafjgZ/jgZENCivjgZfjgb7jgaAs44KE44KI44GEDQor44GX44G/44GaLOOChuOBjeOBig0KK+OBl+OBv+OBmizjgaDjgYTjgZnjgZENCivjgZfjgb/jgZos44Gy44Gn44GNDQor44GX44G/44GaLOOBguOBjeOBrg0KK+OBl+OBv+OBmizjgarjgYrjgobjgY0NCivjgYTjga7jgYbjgYgs44GR44GE44GZ44GRDQor44GX44KCLOOBleOBqOOBlw0KK+OBl+OCh+OBhuOBoCzjgZfjgZLjga7jgooNCivjgZjjgpPjga4s44G+44GT44GoDQor44GY44KT44GuLOOCiuOCheOBhuOBmA0KK+OBl+OCk+OBvuOBoSzjgZ/jgZHjgZcNCivjgZnjgY7jgYQs44G+44GV44Gq44GKDQor44GZ44GO44GK44GLLOOBn+OBi+OBsuOBkw0KK+OBmeOBjuOCguOBqCzjgb/jgaHjga7jgooNCivjgZnjgZrjgY0s44GL44Ga44Gy44KJDQor44GZ44Ga44GNLOOBoOOBhOOBmeOBkQ0KK+OBmeOBmuOBjSzjgYvjgZrjgbLjgo0NCivjgZnjgZrjgY0s44Gy44KN44GX44GSDQor44GZ44Ga44GNLOOChuOBhuOBhOOBoeOCjeOBhg0KK+OBm+OBiizjga7jgorjgZMNCivjgZvjgY0s44Gd44GGDQor44GE44GX44Gv44G+LOOBkeOCk+OBqA0KK+OBneOBruOBoCzjgZPjgYbjgZ/jgo3jgYYNCivjgZ/jgYQs44KI44GX44GC44GNDQor44Gf44GL44GE44KPLOOBjeOCiOOBlw0KK+OBn+OBi+OBjizjgobjgYbjgZgNCivjgZ/jgYvjga/jgZcs44G+44GN44GTDQor44Gf44GL44Gv44GXLOOBruOBtuOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgb7jgY3jgZMNCivjgZ/jgYvjga/jgZcs44Gf44GR44GXDQor44Gf44GL44Gv44GXLOOBguOBjeOBsuOBkw0KK+OBn+OBi+OCgOOBjyzjgZHjgpPjgZcNCivjgZ/jgZDjgaEs44Gy44KN44GTDQor44Gf44GR44GG44GhLOOCiOOBl+OBkw0KK+OBn+OBkeOBi+OCjyzjgb7jgZXjgZcNCivjgZ/jgZHjgo8s44GX44KT44GYDQor44Gf44Gg44G+44GkLOOBsuOBp+OBjQ0KK+OBn+OBn+OCiSzjgZPjgYbjgZgNCivjgZ/jgarjgYss44Gf44GL44GXDQor44Gf44Gr44KC44GoLOOChuOBhuOBmA0KK+OBn+OBreOCgOOCiSzjgYLjgY3jgbXjgb8NCivjgZ/jga/jgoks44GV44Go44GXDQor44Gf44KA44KJLOOBsuOCjeOBlw0KK+OBoOOCkyzjgZ/jgYvjgobjgY0NCivjgYTjgYTjgaAs44KA44Gt44Gu44KKDQor44Gh44GwLOOBiOOBhOOBmeOBkQ0KK+OBoeOCh+OBhuOBqOOBjyzjgbLjgafjgobjgY0NCivjgaTjgYvjga/jgoks44Gy44KN44KG44GNDQor44Gk44Gk44G/LOOBvuOBk+OBqA0KK+OBpOOCguOCiizjgb7jgorjgZMNCivjgabjgonjgZfjgZ8s44KG44GG44GE44Gh44KN44GGDQor44Gp44GELOOChuOBn+OBiw0KK+OBqeOBhCzjgojjgZfjgYgNCivjganjgYQs44KI44GG44GE44GhDQor44Go44GX44G+LOOBk+OBhuOBuOOBhA0KK+OBquOBhOOBqOOBhizjgZPjgYbjgZgNCivjgarjgYvjgYQs44G+44GV44Gy44KNDQor44Gq44GL44GELOOBl+OCheOBhuOBuOOBhA0KK+OBquOBi+OBiizjgY3jgbvjgZMNCivjgarjgYvjgYzjgo8s44Gh44GC44GNDQor44Gq44GM44GV44GNLOOBi+OBiuOCig0KK+OBquOBi+OBmOOBvizjgZ/jgYvjgbXjgb8NCivjgarjgYvjgZjjgb4s44Gu44Ge44KADQor44Gq44GL44GX44G+LOOBleOBquOBiA0KK+OBquOBi+OBoCzjgY3jgojjgZMNCivjgarjgYvjga/jgoks44G/44Gq44GTDQor44Gq44GL44KA44KJLOOBmOOCheOCk+OBnuOBhg0KK+OBquOBi+OCgOOCiSzjgZfjgoXjgYbjgZ/jgo3jgYYNCivjgarjgYvjgoDjgoks44KG44KKDQor44Gq44GL44KA44KJLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBquOBi+OCgOOCiSzjgb/jgaTjgbLjgo0NCivjgarjgYvjgoDjgoks44GL44Gk44Gy44GTDQor44Gq44GL44KA44KJLOOBsuOBp+OChA0KK+OBu+OBl+OBrizjgajjgZfjga/jgosNCivjgarjgYvjgoLjgags44GC44GN44GTDQor44GE44GR44GgLOOBvuOBleOBn+OBiw0KK+OBquOBi+OCguOCiizjgajjgYrjgosNCivjgarjgYzjgojjgZcs44Gf44GL44G+44GVDQor44Gq44Gn44Gv44KJLOOBsuOCjeOBlw0KK+OBquOBquOCguOCiizjgaTjgajjgoANCivjgarjgonjgZXjgYss44Gy44KN44GXDQor44Gq44KT44GwLOOChuOBjQ0KK+OBq+OBlyzjgaTjga3jgYLjgY0NCivjgavjgZfjgYvjgo8s44Gy44Gn44GC44GNDQor44Gr44GX44GgLOOBkeOCk+OBlw0KK+OBq+OBl+OCgOOCiSzjgobjgY0NCivjga7jgZDjgaEs44GV44Go44GXDQor44Gu44GgLOOBkeOCk+OBhOOBoQ0KK+OBruOBquOBvyzjgZnjgZDjgosNCivjga7jga7jgYTjgaHjgoQs44G+44GZ44GKDQor44Gu44KA44KJLOOBqOOCguOBsuOBkw0KK+OBruOCguOBqCzjgobjgYbjgYTjgaENCivjga/jgYzjgoQs44Gq44GK44KG44GNDQor44Gv44GO44KP44KJLOOChOOBmeOChuOBjQ0KK+OBr+OBjyzjgajjgoLjgbLjgagNCivjga/jgZcs44Gf44GL44GXDQor44Gv44GX44Ga44KBLOOChuOBhuOBkw0KK+OBr+OBl+OBsCzjgb7jgZPjgagNCivjga/jgZvjgbks44Gf44GL44G+44GVDQor44Gv44GfLOOBvuOBleOBv+OBoQ0KK+OBr+OBn+OBiCzjgb/jgY3jgagNCivjga/jgZ/jga4s44GC44GN44KI44GXDQor44Gv44Gh44GuLOOBmeOBmeOCgA0KK+OBr+OBo+OBqOOCiizjgobjgYYNCivjga/jgoTjgZcs44KM44GE44GTDQor44Gv44KE44GX44GgLOOBguOBjeOCiQ0KK+OBr+OChOOBteOBrSzjgojjgZfjgYLjgY0NCivjga/jgoks44Gf44Gk44GYDQor44Gv44KJ44GgLOOBj+OBv+OBkw0KK+OBr+OCieOBoCzjgb7jgZXjgZMNCivjgYTjga7jgZDjgaEs44GL44Gk44G144G/DQor44Gv44KJ44GgLOOBn+OBi+OChuOBjQ0KK+OBsuOBjOOBl+OChOOBvizjgojjgYbjgZMNCivjgbLjgZDjgaEs44Gy44Gn44GNDQor44Gy44GULOOBsuOCjeOBlw0KK+OBsuOBoOOBrizjgajjgoLjgoQNCivjgbLjgb7jgY0s44Go44KC44Gu44KKDQor44GP44KJ44GX44GSLOOBi+OBmuOChuOBjQ0KK+OBhOOBl+OBr+OCiSzjgozjgYTjgZMNCivjgbLjgonjgZ8s44GX44GS44GKDQor44Gy44KN44GV44KPLOOChuOBjeOBkw0KK+OBsuOCjeOBnyzjgZHjgYTjgZMNCivjgbXjgYvjgZXjgo8s44G/44GN44GTDQor44G144GL44GW44KPLOOCiuOBiA0KK+OBteOBi+OBluOCjyzjgZ/jgYvjgZcNCivjgbXjgY/jgoDjgo0s44G+44GV44Go44KCDQor44G144GY44GELOOBpuOBpOOChA0KK+OBhOOBqOOBhizjgZHjgYTjgZMNCivjgbXjgZjjgYQs44G/44GK44GTDQor44G144GY44Gq44GMLOOBkeOBhOOBmA0KK+OBteOBmOOBquOBjCzjgbXjgb/jgZMNCivjgbXjgZjjgo/jgoks44Gu44KK44Gy44KNDQor44G144GY44KP44KJLOOCiuOBiA0KK+OBteOBmOOCj+OCiSzjgarjgYrjgobjgY0NCivjgbXjgZ/jgaTjgY4s44Gk44KI44GXDQor44G144Gf44Gk44KC44KKLOOBl+OBmuOBiw0KK+OBteOCi+OBr+OBnyzjga7jgbbjgYLjgY0NCivjgbXjgovjgoQs44G+44KK44GTDQor44G444KT44G/LOOBvuOBleOCiw0KK+OBu+OBlyzjgb7jgYTjgZMNCivjgbvjgZfjga4s44GL44Gk44GC44GNDQor44G744KKLOOBjeOBv+OBsuOCjQ0KK+OBu+OCiuOBiCzjgZfjgpPjgZgNCivjgbvjgorjgYrjgYss44GC44Gk44GTDQor44G744KK44GL44KPLOOBqOOCguOBsuOCjQ0KK+OBvuOBiOOBteOBrSzjgarjgb/jgZMNCivjgb7jgY3jga4s44KE44GZ44Gu44KKDQor44G+44GZ44GgLOOBiuOBj+OBqA0KK+OBvuOBpOOBhuOCiSzjgZ/jgZHjgZcNCivjgb7jgaTjgZfjgZ8s44GC44GN44GXDQor44G+44Gk44KC44GoLOOBsuOBp+OBn+OBiw0KK+OBhOOBkOOBoSzjgZ/jgYvjgbLjgo0NCivjgb7jgaTjgoTjgb4s44G+44GV44Gy44KNDQor44G+44Gq44G5LOOBoeOBrg0KK+OBvuOCi+OChOOBvizjgarjgYrjgobjgY0NCivjgb/jgYbjgoks44G/44Gh44KLDQor44G/44GNLOOBn+OBi+OChuOBjQ0KK+OBv+OBpOOBr+OBlyzjgYjjgYTjgYTjgaENCivjgb/jgaTjgbks44G+44GV44GoDQor44G/44Go44G5LOOBsuOBleOChA0KK+OBoeOCh+OBhuOBqOOBjyzjgZ/jgb7jgY0NCivjgYTjgZHjgbXjgZgs44Gu44G244KI44GXDQor44G/44KE44GW44GNLOOBvuOBleOBr+OCiw0KK+OBv+OChOOBluOBjSzjgYLjgY3jgokNCivjgb/jgoTjgZfjgZ8s44KI44GG44GTDQor44G/44KE44GfLOOBn+OBi+OBlw0KK+OCgOOBk+OBhuOChOOBvizjgb/jgaHjgbLjgacNCivjgoDjgonjgYQs44G/44G7DQor44KA44KJ44GL44G/LOOBvuOBvw0KK+OCgOOCieOBi+OBvyzjgb/jgaTjgYLjgY0NCivjgoDjgonjgZ8s44Go44KC44KG44GNDQor44KA44KJ44G+44GkLOOBvuOBleOChuOBjQ0KK+OCguOBqOOBjSzjgZjjgoXjgpPjgZ8NCivjgoLjgajjgojjgZcs44Gb44GE44GE44GhDQor44KC44G/44KE44G+LOOBiOOBhOOBmA0KK+OCguOCiizjgZ/jgYvjgZcNCivjgoLjgoos44Gf44GR44KEDQor44KC44KK44GG44GILOOCiOOBl+OBn+OBiw0KK+OBhOOBruOBhuOBiCzjgYLjgY3jga7jgooNCivjgoLjgorjgYbjgaEs44GX44KT44Gf44KN44GGDQor44KC44KK44GfLOOChuOBhuOBjQ0KK+OChOOBjuOBleOCjyzjgYvjgZrjgb8NCivjgoTjgZfjgb4s44GT44GG44GYDQor44KE44GZ44GgLOOBteOBv+OBsuOBkw0KK+OChOOBrizjgb/jgY0NCivjgoTjga4s44Gf44Gg44Gf44GLDQor44KE44G+44GQ44GhLOOBmOOCheOCkw0KK+OChOOBvuOBleOBjSzjgbXjgb/jgbLjgZMNCivjgoTjgb7jgZbjgY0s44Gu44G244Gy44GTDQor44KE44G+44GX44GfLOOBkeOBhOOBmA0KK+OChOOBvuOBl+OBnyzjgYLjgaTjgZcNCivjgoTjgb7jgaAs44Gf44Gk44GKDQor44KE44G+44GqLOOBi+OBqg0KK+OChOOBvuOBv+OBoSzjgZHjgYTjgZnjgZENCivjgYTjgarjgYss44GS44KT44GfDQor44KE44G+44KC44GoLOOBk+OBhuOBmA0KK+OChOOBvuOCguOBqCzjgZ/jgY/jgoQNCivjgoTjgb7jgoLjgags44Gy44Gn44GKDQor44KE44G+44KC44GoLOOCgOOBreOBn+OBiw0KK+OChuOBsCzjgobjgZ/jgYsNCivjgojjgZPjgZ/jgass44G+44GT44GoDQor44KI44GT44KE44G+LOOCiOOBl+OBig0KK+OCiOOBl+OBoCzjgYvjgZrjgbLjgo0NCivjgojjgZfjgaAs44Go44GX44GL44GaDQor44GE44KP44GV44GNLOOBqOOBl+OBi+OBmg0KK+OCiOOBl+OBoCzjgorjgofjgYYNCivjgojjgaAs44GI44G/DQor44KP44GL44G+44GkLOOBv+OBoeOBiA0KK+OCj+OBlSzjgorjgofjgYbjgZMNCivjgo/jgaAs44GL44GK44KLDQor44KP44Gf44Gq44G5LOOBkeOBhOOBnuOBhg0KK+OBhOOCj+OBj+OCiSzjgYjjgYTjgYTjgaENCivjgo/jgZ/jgarjgbks44Gy44Gn44KG44GNDQor44KP44Gf44Gq44G5LOOBi+OBmuOBv+OBrQ0KK+OCj+OBn+OBquOBuSzjgZfjgofjgYbjgZ/jgo3jgYYNCivjgo/jgZ/jgarjgbks44KG44GNDQor44KP44Gf44Gq44G5LOOBl+OBkuOCiw0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgobjgY0NCivjgo/jgZ/jgarjgbks44GN44KI44GL44GaDQor44KP44Gf44Gq44G5LOOBqOOBl+OBiA0KK+OBiuOBiuOBhCzjga7jgbbjgbLjgo0NCivjgYTjgYTjgaAs44KG44GN44GTDQor44KA44GL44GELOOBn+OBi+OBlw0KK+OBteOBv+OBr+OCiSzjgYvjgYrjgooNCivjgYvjgo/jgZTjgYgs44G+44GV44Gv44KLDQor44GP44KN44GL44KPLOOBsuOCjeOBvw0KK+OBk+OBhuOBoCzjgZXjgajjgosNCivjgbXjgZjjgZ8s44KG44GG44GTDQor44GT44Gw44KE44GXLOOBn+OBkeOBlw0KK+OBr+OBvuOCgOOCiSzjgYvjgogNCivjgYTjgo/jgZss44KE44GZ44Gy44KNDQor44Gf44GR44GgLOOBvuOBleOCiw0KK+OBiuOBjOOCjyzjgbLjgo3jgYLjgY0NCivjgb/jgZrjgZ8s44GV44Go44KLDQor44GE44GE44GgLOOBguOBpOOBlw0KK+OBguOBhOOBr+OCiSzjgoTjgZnjgZMNCivjgYLjgYrjgYYs44Go44GX44GNDQor44GC44GK44GNLOOBl+OCk+OBk+OBhg0KK+OBguOBiuOBsCzjgbLjgo3jgojjgZcNCivjgYLjgY3jgoLjgags44GZ44GZ44KADQor44GC44GV44GELOOChuOBhuOBkw0KK+OBhOOBl+OChOOBvizjgZfjgoXjgpPjgZnjgZENCivjgYLjgZXjgYos44GI44G/44GTDQor44GC44GV44GgLOOBqOOBl+OBjQ0KK+OBguOBleOBoCzjgZHjgpPjgZ/jgo3jgYYNCivjgYLjgZXjga4s44G144GY44GKDQor44GC44GV44GuLOOBqOOCguOBsuOBkw0KK+OBguOBluOBvyzjgajjgZfjgobjgY0NCivjgYLjgZnjgb4s44GX44KF44GG44G444GEDQor44GC44Gd44GGLOOChuOBiw0KK+OBguOBoOOBoSzjgY3jgofjgYbjgYTjgaENCivjgYLjgajjgb8s44Gu44KK44Gy44KNDQor44GC44Gq44G/LOOChOOBmeOBsuOBlQ0KK+OBguOBuSzjgb7jgZXjgYrjgb8NCivjgYLjgbks44G+44GT44GoDQor44GC44G5LOOBvuOBk+OBqA0KK+OBguOBvuOBrizjgb7jgZXjgajjgZcNCivjgYLjgoTjgbks44Gf44KN44GGDQor44Gf44GR44GN44GfLOOBvuOBquOBtg0KK+OBguOCieOBhCzjgb7jgY0NCivjgYTjgaTjga4s44G/44GN44GKDQor44GC44KK44GL44KPLOOCiOOBl+OBruOBtg0KK+OBguOCiuOBnyzjgZPjgYbjgYTjgaENCivjgYLjgpPjgZjjgoUs44Gk44KI44GXDQor44GC44KT44Gp44GGLOOBvuOBleOBjQ0KK+OBguOCk+OBqeOBhizjgorjgoXjgYbjgZ8NCivjgYTjgaHjga7jgZss44GT44Ga44GIDQor44GE44GE44Gs44G+LOOBsuOCjeOChuOBjQ0KK+OBhOOBhuOBiCzjgojjgZfjgYLjgY0NCivjgYTjgYzjgonjgZcs44GC44GN44GTDQor44GE44GR44GG44GhLOOBiuOCiuOBiw0KK+OBhOOBkeOBjOOBvyzjgb/jga7jgosNCivjgYTjgZHjgaAs44Gf44GR44GXDQor44GE44KK44GfLOOChOOBmeOBguOBjQ0KK+OBhOOBkeOBoCzjgZfjgoXjgYbjgYTjgaENCivjgYTjgZHjgaAs44GX44KH44GG44GE44GhDQor44GE44GR44GgLOOBmOOCjeOBhg0KK+OBhOOBl+OBhCzjgZjjgoXjgpPjgYTjgaENCivjgYTjgZfjgYQs44Go44KC44GTDQor44GE44GX44GELOOBquOBiuOBvw0KK+OBhOOBl+OBiuOBiyzjgZfjgpPjgYTjgaENCivjgYTjgb7jgYQs44Gf44GR44GXDQor44GE44GX44GL44KPLOOCiuOCh+OBhuOBuOOBhA0KK+OBhOOBl+OBi+OCjyzjgajjgoLjga7jgbYNCivjgYTjgZfjgZDjgo0s44KG44GN44Gy44KNDQor44GE44GX44GgLOOBn+OBpOOChuOBjQ0KK+OBhOOBm+OBjSzjgZ/jgZHjgZcNCivjgYTjgaHjgY0s44G+44GV44GoDQor44GE44Gh44Gu44GbLOOBqOOCguOBsuOCjQ0KK+OBhOOBoeOBruOBv+OChCzjgbXjgb/jgZ/jgZENCivjgYTjgajjgYYs44GX44KT44GE44GhDQor44GE44Go44GGLOOBruOCiuOBkw0KK+OBhOOBquOBoCzjgojjgZfjgZ/jgYsNCivjgYTjgarjgbAs44Gb44GE44GE44Gh44KN44GGDQor44GE44Gv44KJLOOBjeOCiOOBn+OBiw0KK+OBhOOBruOBhuOBiCzjgYrjgZXjgoANCivjgYTjga7jgYbjgYgs44Gu44KK44GTDQor44GE44Gu44GG44GILOOBqOOCguOChuOBjQ0KK+OBhOOBvuOBhOOBmuOBvyzjgYLjgaTjgZcNCivjgYTjgb4s44GV44Go44GTDQor44GE44G+44GgLOOBv+OBig0KK+OBhOOBvuOBmizjgaTjgojjgZcNCivjgYTjgb7jgoDjgoks44G/44Gk44Go44GXDQor44GE44KK44Gf44GrLOOBn+OBj+OBmA0KK+OBhOOCj+OBjSzjgZ/jgaTjgoQNCivjgYTjgo/jgZXjgY0s44G+44KKDQor44GE44KP44GV44GNLOOBvuOBqg0KK+OBhOOCj+OBmeOBjizjgb/jgYsNCivjgYTjgo/jga/jgZcs44GE44Gh44KN44GGDQor44GE44KP44G244GhLOOBquOBuw0KK+OBhOOCj+OBu+OCiizjgYLjgY3jgbLjgZMNCivjgYbjgYjjgaAs44Gu44G244GIDQor44GG44GI44G+44GkLOOBn+OBi+OBlw0KK+OBhuOBmeOBhCzjgajjgoLjgYTjgaENCivjgYbjgZnjgYQs44G+44GV44Gy44KNDQor44GG44Gh44GgLOOBi+OBiuOCig0KK+OBhuOBpOOBvyzjgb7jgY3jgZMNCivjgYbjgoHjgaAs44Gy44Gn44Gu44G2DQor44GG44KJ44GuLOOChOOBmeOBsuOCjQ0KK+OBiOOBjOOCjyzjgZ/jgZHjgZcNCivjgYjjgZbjgY0s44GC44Gk44GTDQor44GI44Go44GGLOOBkeOCk+OBmA0KK+OBiOOBruOCguOBqCzjga/jgovjgbLjgokNCivjgYjjga7jgoLjgags44GC44GN44KJDQor44GI44G+LOOBguOBjeOBkw0KK+OBiOOCk+OBqSzjgbLjgZXjga7jgooNCivjgYjjgpPjgaks44KI44GX44G+44GVDQor44GK44GE44Gf44GrLOOChuOBjQ0KK+OBiuOBhizjgojjgZfjgbLjgo0NCivjgYrjgYrjgYQs44GL44GK44KLDQor44GK44GK44GILOOBguOBjeOBsuOCjQ0KK+OBiuOBjSzjgYLjgoQNCivjgYrjgYrjgY/jgbws44G144G/44Gu44KKDQor44GK44GK44GV44KPLOOBhOOBleOBig0KK+OBiuOBiuOBleOCjyzjgbLjgZXjgZcNCivjgYTjgo/jgY3jgoos44KP44Gf44KLDQor44GK44GK44GZ44G/LOOCguOBqOOBsuOBkw0KK+OBiuOBiuOBnyzjgb/jgaTjgbLjgo0NCivjgYrjgYrjgZ8s44Gf44GL44GXDQor44GK44GK44Gk44GLLOOBguOBjeOBruOCig0KK+OBiuOBiuOBpOOBiyzjgZPjgYbjgYTjgaENCivjgYrjgYrjgaTjgYss44Go44KC44Gy44KNDQor44GK44GK44Gk44GNLOOBmOOCheOCkw0KK+OBiuOBquOBiyzjgaDjgYTjgZnjgZENCivjgYrjgYrjgavjgZcs44KI44GG44GTDQor44GK44GK44G8LOOBvuOBleOBkw0KK+OBiuOBvizjgY3jgojjgZcNCivjgYrjgoDjgoks44GX44Gu44G2DQor44GK44KA44KJLOOBj+OBvw0KK+OBhOOBl+OBhCzjgarjgYrjgZMNCivjgYrjgYrjgoLjgoos44KI44GX44Gy44KNDQor44GK44GK44KC44KKLOOBsuOCjeOBi+OBmg0KK+OBiuOBiuOCguOCiizjga7jgbbjgbLjgZUNCivjgYrjgYrjgo/jgaAs44Gf44GL44G144G/DQor44GK44GL44GELOOCjOOBhA0KK+OBiuOBi+OBluOBjSzjgajjgoLjgb/jgaENCivjgYrjgYvjgZbjgY0s44GL44Ga44Gy44GoDQor44GE44GR44GgLOOBguOBjeOBig0KK+OBiuOBi+OBrizjgYjjgYTjgYTjgaENCivjgYrjgYvjgbks44GG44KJ44KJDQor44GK44GL44KC44GoLOOBiOOBpOOBkw0KK+OBiuOBjOOCjyzjgobjgYbjgZMNCivjgYrjgYzjgo8s44GC44GN44KJDQor44GK44GM44KPLOOCiuOCh+OBhuOBhOOBoQ0KK+OBiuOBjOOCjyzjgY3jgojjga4NCivjgYrjgYrjgYzjgo/jgoks44GP44Gr44Gv44KLDQor44GK44GP44Gv44KJLOOBleOBqOOBlw0KK+OBiuOBj+OChOOBvizjgb7jgZMNCivjgYrjgZDjgoks44KE44GZ44Gv44KLDQor44GN44Gf44KA44KJLOOBvuOCiuOBkw0KK+OBiuOBluOCjyzjgZfjgZLjgb/jgaQNCivjgYrjgaEs44KC44Go44Gy44KNDQor44GK44GuLOOBn+OBi+OBlw0KK+OBiuOBiuOBrizjgaHjgYsNCivjgYrjga7jgafjgoks44GR44KT44GXDQor44GK44Gw44GfLOOBi+OBpOOCiOOBlw0KK+OBiuOBiuOChOOBvizjgaHjgZrjgosNCivjgYrjgpPjgZ8s44KB44GQ44G/DQor44GE44KP44GfLOOBn+OBkeOBlw0KK+OBi+OBhOOBtuOBjSzjgobjgb8NCivjgYvjgY3jgoLjgags44G+44Gh44GTDQor44GL44GW44GQ44GhLOOBvuOBleOBruOCig0KK+OBi+OBleOBluOBjSzjgojjgZfjgbLjgo0NCivjgYvjgZgs44GV44GK44KKDQor44GL44GY44KA44KJLOOBr+OCi+OBqg0KK+OBi+OBl+OCj+OBhCzjga7jgorjgZMNCivjgYvjgZfjgo/jgbDjgoks44Gq44GK44KEDQor44GL44Gf44GP44KJLOOCiOOBl+OChuOBjQ0KK+OBi+OBn+OChOOBvizjgb7jgYTjgZMNCivjgYvjgaTjga4s44Gf44GL44Gu44KKDQor44GL44GpLOOBoeOBiOOBkw0KK+OBi+OBqOOBhizjga7jgbbjgobjgY0NCivjgYTjgZ3jga4s44G/44Gp44KKDQor44GL44Go44GGLOOBn+OBi+OBlw0KK+OBi+OBqOOBhizjgZfjgbsNCivjgYvjgajjgYYs44GC44GN44KI44GXDQor44GL44Go44KKLOOBkeOCk+OBmA0KK+OBi+OBquOBleOBiyzjgoLjgajjgbLjgo0NCivjgYvjgarjgZbjgo8s44G/44Gh44GTDQor44GL44Gq44KE44G+LOOBi+OBquOBkw0KK+OBi+OBreOBkyzjgobjgY3jgYoNCivjgYvjga3jgZMs44Go44KC44GTDQor44GL44Gt44GgLOOCguOBqOOBjQ0KK+OBjOOBvyzjgbLjgo3jgZcNCivjgYvjgoHjgYrjgYss44G+44Gq44G/DQor44GL44KJ44GV44KPLOOBguOBjeOBpuOCiw0KK+OBi+OCieOBl+OBvizjgY3jgojjgbXjgb8NCivjgYvjgovjgYTjgZcs44GE44Ga44G/DQor44GL44KP44GELOOBquOBiuOChuOBjQ0KK+OBi+OCj+OBhCzjgZ/jgYvjgYrjgb8NCivjgYvjgo/jgYvjgb8s44G+44GV44G/DQor44GL44KP44GL44G/LOOBkeOCk+OBnw0KK+OBi+OCj+OBmizjgYLjgaTjgZcNCivjgYvjgo/jgarjgYss44GI44GE44GZ44GRDQor44GL44KP44GuLOOBn+OBi+OBlw0KK+OBi+OCj+OBsOOBnyzjgarjgYrjgoQNCivjgYvjgo/jgbks44GX44G7DQor44GL44KP44G/LOOBl+OCk+OBmA0KK+OBi+OCk+OBsOOBlyzjgb/jgaHjgZMNCivjgYvjgpPjgbDjgoks44GC44Gk44GXDQor44GN44GX44GELOOChOOBmeOBiA0KK+OBjeOBl+OBoCzjgYLjgY3jgbLjgo0NCivjgY3jgZ/jgYzjgo8s44G+44GV44GNDQor44GN44Gf44GX44KNLOOBi+OBmuOCiOOBlw0KK+OBjeOBn+OBr+OCiSzjgojjgZfjgYvjgZoNCivjgY3jgZ/jgoDjgoks44KI44GG44GE44GhDQor44GN44GpLOOBoeOBiOOBkw0KK+OBjeOBruOBl+OBnyzjgo/jgYvjgZMNCivjgYjjgaAs44GI44GEDQor44GN44KA44KJLOOBquOBpOOBkw0KK+OBjeOCgOOCiSzjgZfjgZLjgosNCivjgY3jgoDjgoks44GC44Gk44GXDQor44GN44KI44Gq44GMLOOBruOCiuOBv+OBpA0KK+OBjeOCiOOBv+OChCzjgZ/jgYvjgYoNCivjgY3jgorjgoQs44G+44GV44GNDQor44GE44Go44GGLOOBqOOCguOChA0KK+OBj+OBl+OBoCzjgY3jgofjgYbjgZMNCivjgY/jgZjjgonjgYrjgYss44Gg44GE44GNDQor44GP44Gr44KC44GoLOOBn+OBkeOBqOOBlw0KK+OBj+OBrOOBjizjgajjgYrjgosNCivjgY/jgbws44GC44Gk44GXDQor44GP44G844GV44KPLOOBvuOBleOBjQ0KK+OBj+OBvOOBnyzjgZ/jgYvjgbLjgo0NCivjgY/jgoHjga4s44Gu44G244GKDQor44GE44GX44GQ44KNLOOBn+OCjeOBhg0KK+OBj+OCiSzjgajjgoLjgYLjgY0NCivjgY/jgonjgZXjgo8s44G144G/44Gv44KLDQor44GP44KJ44GfLOOCiuOCh+OBhuOBkw0KK+OBj+OCjeOBi+OCjyzjgZ/jgYvjgbLjgZUNCivjgY/jgo3jgZks44G+44G/44GTDQor44GP44KN44KE44Gq44GOLOOBleOCk+OBl+OCjeOBhg0KK+OBhOOBquOBqOOBvyzjgaDjgYTjgZnjgZENCivjgZPjgYTjgZEs44G+44KG44GTDQor44GT44GE44GRLOOCj+OBn+OCiw0KK+OBk+OBhOOBl+OBi+OCjyzjgbLjgafjgobjgY0NCivjgZPjgYTjgZrjgb8s44Gm44KL44G/DQor44GT44GE44Ga44G/LOOBruOCiuOBvuOBlQ0KK+OBk+OBhOOBpyzjgb7jganjgYsNCivjgZPjgZrjgb4s44G+44GE44GTDQor44GT44KT44GuLOOBguOBpOOBkw0KK+OBk+OChOOBvizjgaDjgYTjgY0NCivjgZPjgoos44Gf44GL44Gy44GnDQor44GL44Gk44GL44KPLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBk+OBjOOBrizjgYLjgY3jgbXjgb8NCivjgZPjgZfjgYQs44Go44KC44Gy44KNDQor44GT44GX44G+44KLLOOBoOOBhOOBqOOBjw0KK+OBk+OBmeOBjizjgb7jgZXjgZcNCivjgZPjgZvjgY0s44G+44Gq44G2DQor44GT44Gf44GrLOOChOOBhOOBoQ0KK+OBk+OBoOOBvizjgZvjgpPjgZgNCivjgZPjgavjgZcs44Gf44G/44GTDQor44GT44Gr44GXLOOBn+OBoOOBlw0KK+OBk+OBsCzjgajjgoLjgY0NCivjgZPjgbDjgZ/jgZEs44GR44GE44GE44GhDQor44GT44Gw44KE44GXLOOBguOBjeOBkw0KK+OBk+OBsOOChOOBlyzjgoTjgZnjgobjgY0NCivjgZPjgbDjgoTjgZcs44KI44GG44GYDQor44GT44Gw44KE44GXLOOBvuOBleOChA0KK+OBk+OBsOOChOOBlyzjgojjgZfjgYoNCivjgarjgYvjgoDjgoks44KI44GG44G444GEDQor44GT44Gw44KE44GXLOOBsuOCjeOBkw0KK+OBk+OBvOOCiizjgY/jgavjgbLjgZMNCivjgZPjgb7jgaQs44Gk44KI44GXDQor44GT44KE44G+LOOBpOOBjuOBig0KK+OBk+OCk+OBrizjgZ/jgYvjgZMNCivjgZXjgYTjgajjgYYs44Go44KC44GIDQor44GV44GE44Go44GGLOOBguOBpOOBkw0KK+OBleOBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgZXjgYTjgajjgYYs44Gy44KN44KG44GNDQor44GE44Go44GGLOOBteOBjeOBkw0KK+OBleOBi+OBhCzjgaHjgbLjgo0NCivjgZXjgYvjgYQs44GN44KI44GXDQor44GV44GL44GELOOBv+OBreOBig0KK+OBleOBi+OBjeOBsOOCiSzjgajjgZfjgY0NCivjgZXjgYvjgZDjgaEs44GE44Gh44KN44GGDQor44GE44KP44GV44GNLOOCjOOBhOOBkw0KK+OBleOBi+OCguOBqCzjga7jgorjgYoNCivjgZXjgYvjgoLjgags44KI44GG44GYDQor44GV44GL44KC44GoLOOBmOOCheOCk+OBkw0KK+OBleOBleOBjSzjgYvjgaTjgajjgZcNCivjgZXjgZXjgY0s44GT44GV44GPDQor44GV44GV44GNLOOBmOOCheOCk+OBkw0KK+OBleOBleOBjSzjgozjgaoNCivjgYTjgb7jga/jgZcs44Gy44KN44G/DQor44GV44Gk44G/LOOBn+OBi+OChuOBjQ0KK+OBleOBqOOBhizjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZXjgajjgYYs44KG44GG44GYDQor44GV44Go44GGLOOBqOOCguOBj+OBqw0KK+OBleOBqOOBhizjgb7jgorjgZMNCivjgZXjgajjgYYs44GT44GG44GNDQor44GV44Go44GGLOOChuOBv+OBkw0KK+OBleOBrizjgZfjga4NCivjgYTjgZfjgZDjgo0s44Gy44Gn44Gf44GLDQor44GV44KP44KE44Gq44GOLOOBv+OBpOOBsuOCjQ0KK+OBl+OBiuOBnyzjgZHjgYTjgZnjgZENCivjgZfjgY0s44KG44GG44GTDQor44GX44GS44GK44GLLOOCjOOBhA0KK+OBl+OBkuOBnyzjgb7jgoLjgosNCivjgZfjgZfjgaks44KK44GLDQor44GX44Gq44GgLOOCiOOBl+OBkw0KK+OBhOOBpyzjgojjgZfjgbXjgb8NCivjgZfjgbDjgZ8s44KI44GG44GTDQor44GX44Gw44GfLOOBguOCiuOBsuOBqA0KK+OBl+OBsOOBnyzjgorjgofjgYYNCivjgZfjgbDjgZ8s44GX44KF44GG44GE44GhDQor44GX44G+44GaLOOCguOBquOBvw0KK+OBl+OBvuOBoCzjgojjgZfjgZXjgaANCivjgZfjgb7jgZos44Gk44Gt44GKDQor44GX44G/44GaLOOBsuOBp+OBn+OBoA0KK+OBl+OBv+OBmizjgY/jgavjgYgNCivjgZfjgoLjga/jgZcs44Gy44KN44Gu44G2DQor44GX44KC44KE44G+LOOBi+OBiuOCig0KK+OBmOOCh+OBhizjgZ/jgYvjgZcNCivjgYTjgajjgYYs44GN44KH44GG44GTDQor44GZ44GM44GfLOOBruOBtuOBiA0KK+OBmeOBjOOChCzjgYLjgY3jgbLjgo0NCivjgZnjgY7jgZ8s44Gf44GL44Gy44KNDQor44GZ44GO44Gq44GLLOOBiOOBhOOBmA0KK+OBmeOBjuOCguOBqCzjgbXjgb/jgYoNCivjgZnjgY7jgoTjgb4s44GL44Ga44GqDQor44GZ44GO44KE44G+LOOChuOBhuOBmA0KK+OBmeOBjuOChOOBvizjgajjgYrjgosNCivjgZnjgZLjga4s44GU44GGDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBmeOBmuOBjSzjgb7jgZXjgbLjgo0NCivjgZnjgZrjgY0s44Gy44Gn44GC44GNDQor44GZ44Ga44GNLOOBk+OBhuOBmA0KK+OBmeOBmuOBjSzjgobjgYbjgZMNCivjgYTjgo/jgZXjgY0s44Go44KC44G144G/DQor44GZ44Ga44GNLOOCiOOBhuOBkw0KK+OBmeOBmuOBjSzjgZPjgYbjgZgNCivjgYTjgaHjgYvjgo8s44KK44GLDQor44Gb44GNLOOBvuOBleOCiOOBlw0KK+OBm+OBjeOBkOOBoSzjgZHjgYTjgZMNCivjgZvjgY3jgoQs44GR44KT44GYDQor44Gb44GTLOOBkeOCk+OBn+OCjeOBhg0KK+OBm+OCiSzjgbLjgo3jgobjgY0NCivjgZ3jgYws44KG44GLDQor44Gd44GMLOOBiOOBhOOBkw0KK+OBhOOBqOOBhizjgYLjgY3jgokNCivjgYvjgb/jgoQs44GL44GZ44G/DQor44Gd44KT44GPLOOBqOOBl+OBi+OBmg0KK+OBn+OBi+OBjSzjgobjgb/jgZMNCivjgZ/jgYvjgY4s44KI44GX44Gv44KLDQor44Gf44GL44GV44GNLOOChOOBmeOBig0KK+OBhOOBkeOBoCzjgbLjgajjgZcNCivjgZ/jgYvjgZfjgb4s44KE44GZ44Gy44GoDQor44Gf44GL44GuLOOBkeOCk+OBhOOBoQ0KK+OBn+OBi+OBrizjgbLjgafjgY0NCivjgZ/jgYvjga4s44G+44GN44GTDQor44Gf44GL44GuLOOBquOBiuOBsuOCjQ0KK+OBn+OBi+OBrizjgojjgZfjgbLjgZUNCivjgZ/jgYvjga/jgZcs44KI44GX44GKDQor44Gf44GL44Gv44GXLOOBk+OBhuOBuOOBhA0KK+OBn+OBi+OBr+OBlyzjgZPjgYbjgYTjgaHjgo3jgYYNCivjgZ/jgYvjga/jgZcs44GM44GPDQor44Gf44GL44Gv44GXLOOBi+OBqg0KK+OBn+OBi+OBr+OBlyzjgZ/jgYvjga7jgooNCivjgZ/jgYvjgb7jgaQs44Gy44KN44GXDQor44Gf44GM44G/LOOBsuOBqOOBlw0KK+OBn+OBi+OBv+OBluOCjyzjgorjgoXjgYbjgY0NCivjgZ/jgYvjgonjgaAs44GX44KT44GE44GhDQor44Gf44GN44GL44KPLOOBiOOBv+OBkw0KK+OBn+OBjeOBluOCjyzjgYTjgo/jgYoNCivjgYTjgYTjga4s44KG44G/DQor44Gf44GR44GELOOCiOOBl+OBsuOCjQ0KK+OBn+OBkeOBhuOBoSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZ/jgZHjgYbjgaEs44Gf44GL44GN44KIDQor44Gf44GR44GN44GfLOOBvuOBjQ0KK+OBn+OBkeOBquOBiyzjgbXjgb/jgYoNCivjgZ/jgZHjga7jgYbjgaEs44KK44KH44GG44GYDQor44Gf44GR44Gv44GqLOOBteOBvw0KK+OBhOOBqOOBhizjgajjgY/jgZMNCivjgZ/jgZHjgoLjgags44G+44GV44KLDQor44Gf44GR44KC44GoLOOBi+OBmuOBsuOBkw0KK+OBn+OBlCzjgZnjgZnjgoANCivjgZ/jgZXjgYss44KI44GX44Gu44G2DQor44Gf44GY44G+LOOBsuOCjeOBi+OBmg0KK+OBn+OBl+OCjSzjgojjgZfjgZMNCivjgZ/jgZfjgo0s44GU44GGDQor44Gf44Gf44KJLOOBleOBquOBiA0KK+OBn+OBoeOBsOOBqizjgYLjgoTjgZMNCivjgYTjgaHjgoDjgoks44GV44Go44GXDQor44Gf44Gm44GE44GXLOOChuOBjQ0KK+OBn+OBpuOBrizjgbLjgZXjgZcNCivjgZ/jgabjga4s44Gg44GE44GeDQor44Gf44Gq44GLLOOBkeOCk+OBhOOBoeOCjQ0KK+OBn+OBquOBiyzjgb7jgZXjgbLjgo0NCivjgZ/jgarjgYss44Gq44GK44GTDQor44Gf44Gq44GLLOOBqOOBiuOCiw0KK+OBn+OBquOBiyzjgY3jgofjgYbjgZMNCivjgZ/jgarjgYss44KE44GZ44GXDQor44Gf44Gq44GLLOOCiOOBhuOBkw0KK+OBjOOBvyzjgb7jgZPjgagNCivjgZ/jgarjgb8s44Gk44Gt44GKDQor44Gf44GrLOOBvuOBvw0KK+OBn+OBq+OBkOOBoSzjgobjgb/jgZMNCivjgarjgYvjgYrjgYss44KG44GNDQor44Gf44Gr44GW44KPLOOCiOOBl+OBruOCig0KK+OBn+OBq+OBoCzjga7jgbbjgobjgY0NCivjgZ/jgavjgoLjgags44GC44GN44G/DQor44Gf44Gu44GK44GLLOOBv+OBiOOBkw0KK+OBn+OBsOOBnyzjgb7jgZXjgY0NCivjgZ/jga/jgoks44G/44GL44GTDQor44Gf44KA44KJLOOChuOBjeOBsuOCjQ0KK+OBoeOBi+OBluOCjyzjga7jgorjgbLjgagNCivjgaHjga4s44Gf44GL44Gu44G2DQor44Gh44Gv44KJLOOBsuOBleOBrg0KK+OBoeOCheOBhizjgZXjgoTjgYsNCivjgaHjgoXjgYbjgb4s44GR44GE44GE44GhDQor44Gk44GL44GgLOOBsuOBp+OBn+OBkQ0KK+OBpOOBi+OCguOBqCzjga7jgbbjgZ/jgYsNCivjgaTjgYvjgoLjgags44KG44Gf44GLDQor44Gk44GgLOOBqOOCguOBruOCig0KK+OBpOOBoeOBoCzjgb7jgZXjgYoNCivjgaTjgaHjgoQs44Gb44KM44GqDQor44Gk44Gh44KELOOBguOBjQ0KK+OBpOOBreOBjSzjgY/jgb/jgZMNCivjgafjgb/jgZss44Gf44GL44GXDQor44Gm44KJ44GK44GLLOOBi+OBquOBkw0KK+OBhOOBmuOBvyzjgYLjgaTjgZcNCivjgajjgYYs44Gb44GE44GYDQor44Go44GYLOOBvuOBleOBkw0KK+OBqOOBl+OBiuOBiyzjgb/jgZnjgZoNCivjgajjgaAs44Gv44Gq44GIDQor44Go44Gz44Gq44GELOOBguOBjeOBkw0KK+OBqOOCguOBhCzjgb/jga3jgY0NCivjgajjgoTjgb4s44GC44GE44GTDQor44Go44KI44GX44G+LOOBk+OBhuOBhOOBoQ0KK+OBqOOCiOOBoCzjgZ/jgY/jgoQNCivjgajjgojjga/jgb4s44Go44GX44GKDQor44Gq44GM44GILOOBkeOCk+OBmA0KK+OBquOBjOOBiCzjgZfjgbsNCivjgarjgYvjgYos44Go44KC44Gy44GnDQor44Gq44GL44GKLOOBkeOCk+OBn+OCjeOBhg0KK+OBquOBi+OBmOOBvizjgajjgoLjgZMNCivjgarjgYvjgZjjgb4s44KI44GX44Gf44GLDQor44Gq44GL44GY44G+LOOBpOOCiOOBlw0KK+OBquOBjOOBl+OBvizjgb7jgooNCivjgarjgYzjgZss44GT44GG44GE44Gh44KN44GGDQor44Gq44GL44Ge44GuLOOBmOOCheOCk+OBkw0KK+OBquOBi+OBnyzjgYLjgZXjgZMNCivjgarjgYzjgZ8s44KI44GX44Gy44GTDQor44Gq44GM44GoLOOBvuOCiuOBkw0KK+OBquOBi+OBq+OBlyzjgZLjgpMNCivjgarjgYvjga4s44KI44GX44GTDQor44Gq44GM44GuLOOBsuOCjeOBjQ0KK+OBquOBjOOBrizjgZ/jgYvjgZcNCivjgarjgYzjga4s44Gm44Gk44KEDQor44Gq44GM44Gv44KJLOOCiOOBl+OChuOBjQ0KK+OBquOBi+OBsuOBjOOBlyzjgoHjgZDjgb8NCivjgarjgYvjgoDjgoks44GN44G144G/DQor44GE44Gs44Ga44GLLOOBqOOCguOBi+OBmg0KK+OBquOBi+OCgOOCiSzjgbXjgb/jgY0NCivjgarjgYvjgoDjgoks44Gy44Go44GXDQor44Gq44GL44KA44KJLOOBv+OBuw0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgYvjgaQNCivjgarjgYvjgoQs44KG44Gf44GLDQor44Gq44GL44KELOOBkeOBhA0KK+OBquOCieOBleOBjSzjga7jgbbjgarjgooNCivjgarjgorjgZ8s44KK44KF44GG44GfDQor44Gq44KK44GfLOOCiOOBl+OBkw0KK+OBq+OBhOOBoCzjgajjgoLjgYLjgY0NCivjgavjgZfjgYvjgo8s44GE44KP44GKDQor44Gr44GX44KA44KJLOOBoeOBjuOCig0KK+OBq+OBl+OCgOOCiSzjgZ/jgYTjgYTjgaENCivjgavjgZfjgoDjgoks44GL44Gk44G/DQor44Gr44GX44KE44G+LOOBqOOBiuOCiw0KK+OBq+OBl+OChOOBvizjga7jgorjgb7jgZUNCivjgavjgoDjgoks44Gy44KN44KG44GNDQor44Gr44KPLOOChuOBjeOBiA0KK+OBrOOBvuOBnyzjgarjgYrjgZMNCivjgazjgb7jgZ8s44Gf44GL44Gy44KNDQor44Gs44G+44GgLOOBpOOCiOOBlw0KK+OBreOBjuOBlyzjgYTjgZXjgYoNCivjga7jgZbjgY0s44Gf44GL44Gq44GKDQor44Gu44GM44G/LOOChuOBiw0KK+OBruOBoCzjgZ/jgaTjgoQNCivjga7jga/jgoks44Gk44KI44GXDQor44Gu44G244Gv44KJLOOChuOBhuOBkw0KK+OBr+OBjCzjgb7jgZXjgagNCivjga/jgY7jgo/jgoks44Gf44Gg44GL44GaDQor44Gv44GO44KP44KJLOOBi+OBpOOCiQ0KK+OBr+OBl+OBmuOCgSzjgZ/jgYvjgZcNCivjga/jgZfjgoLjgags44Gf44GL44KG44GNDQor44Gv44GX44KC44GoLOOBneOCiOOBiw0KK+OBr+OBl+OCguOBqCzjgYLjgY3jgokNCivjga/jgZvjgYzjgo8s44G+44GT44GoDQor44Gv44Gb44GM44KPLOOBvuOChuOBvw0KK+OBr+OBm+OBjOOCjyzjgYvjgZrjgZ/jgYsNCivjga/jgZvjgbks44KI44GG44G444GEDQor44Gv44GfLOOBvuOBleOBsuOCjQ0KK+OBr+OBn+OBkeOChOOBvizjga/jgZrjgY0NCivjga/jgZ/jgarjgYss44GE44GP44Ge44GGDQor44Gv44Gf44GuLOOBguOBpOOCiA0KK+OBr+OBo+OBqOOCiizjgYLjgY3jgojjgZcNCivjga/jgarjgZbjgY0s44Gf44Gk44KEDQor44Gv44Gq44G244GVLOOBiuOBleOCgA0KK+OBr+OBquOCgOOCiSzjgZTjgYYNCivjgbDjgbAs44GC44GN44GTDQor44Gv44G+44GV44GNLOOCiOOBl+OChuOBjQ0KK+OBr+OBvuOBoCzjgaTjgZDjgY0NCivjga/jgoTjgZcs44G+44Gq44G2DQor44Gv44KE44GXLOOBn+OBkeOBsuOCjQ0KK+OBr+OChOOBlyzjgb7jgZPjgagNCivjga/jgoTjgZcs44KK44KH44GGDQor44Gv44KJLOOBvuOBleOBsuOBpw0KK+OBr+OCieOBl+OBvizjgYrjgZXjgoANCivjga/jgonjgaAs44Gq44GK44KEDQor44Gv44KJ44GgLOOCiuOBiA0KK+OBr+OCi+OBn+OBqyzjgZ/jgYvjgbLjgo0NCivjgbLjgYzjgZfjga4s44G+44GNDQor44Gy44GM44GX44KE44G+LOOChuOBhg0KK+OBsuOBkOOBoSzjgZfjgZLjgb/jgaQNCivjgYTjgZfjga/jgoks44Gf44GR44KI44GXDQor44Gy44GY44GL44GfLOOBsuOCjeOBguOBjQ0KK+OBsuOBsyzjgZ/jgaTjgagNCivjgbLjgofjgYbjgYgs44Go44KC44Gy44KNDQor44Gy44KJ44GELOOBsuOBp+OBruOCig0KK+OBsuOCieOBi+OCjyzjgZjjgoXjgpPjgoQNCivjgbLjgonjgY8s44GX44GS44GNDQor44Gy44KJ44GV44KPLOOBkeOCk+OBmA0KK+OBhOOBruOBr+OCiSzjgZ/jgY/jgbLjgo0NCivjgbLjgonjgZ8s44GP44Gr44Gk44GQDQor44Gy44KJ44Gs44G+LOOBi+OBmuOBig0KK+OBsuOCieOBrizjgZ/jgo3jgYYNCivjgbLjgonjgoTjgb4s44GX44GS44KLDQor44Gy44KN44GG44GhLOOCjOOBhA0KK+OBsuOCjeOBiuOBiyzjgobjgYvjgZMNCivjgbLjgo3jgYvjgo8s44GR44KT44Gf44KN44GGDQor44G144GP44GELOOBvuOBleOBjQ0KK+OBteOBj+OBoCzjgZ/jgYvjgbLjgo0NCivjgbXjgY/jgaAs44GZ44GZ44KADQor44GT44KKLOOBjeOCh+OBhuOBkw0KK+OBteOBmOOBhCzjgZjjgoXjgpPjgYTjgaENCivjgbXjgZjjgYQs44Gg44GE44GeDQor44GE44GnLOOBoeOBiOOBkw0KK+OBteOBmOOBhCzjgbLjgo3jgYvjgZoNCivjgbXjgZjjgYos44Gf44GL44KG44GNDQor44G144GY44GK44GLLOOBkeOCk+OBhOOBoQ0KK+OBteOBmOOBj+OCiSzjgY3jgY/jgZMNCivjgbXjgZjjgZXjgo8s44GT44GG44GYDQor44G144GY44GV44KPLOOBkeOCk+OBn+OCjeOBhg0KK+OBteOBmOOBl+OBkizjgZHjgYTjgYTjgaENCivjgbXjgZjjgZ8s44GR44KT44GE44GhDQor44GE44Gu44GG44GILOOBruOCiuOBig0KK+OBteOBmOOBqCzjgobjgYsNCivjgbXjgZjjgarjgYws44Gq44GM44G+44GVDQor44G144GY44KP44KJLOOBqOOCguOBr+OCiw0KK+OBteOBmOOCj+OCiSzjgajjgZfjgY0NCivjgbXjgZss44GL44GK44KLDQor44G144KL44GL44KPLOOBvuOBleOBv+OBpA0KK+OBteOCi+OBi+OCjyzjgobjgYbjgYTjgaENCivjgYTjgZfjgYQs44Gg44GE44GZ44GRDQor44G144KL44GV44KPLOOBsuOCjeOBjQ0KK+OBteOCi+OBnyzjgZPjgYbjgYTjgaENCivjgbXjgovjgZ8s44KI44GX44GC44GNDQor44G144KL44GfLOOBquOBiuOBkw0KK+OBteOCjyzjgb/jgYoNCivjgbvjgZcs44G+44KG44G/DQor44G744Gd44GgLOOBkeOBhOOBmeOBkQ0KK+OBhOOBl+OBhCzjgbLjgo3jgb/jgaENCivjgbvjgorjgYvjgo8s44Gq44GK44GTDQor44G744KK44GT44GXLOOBsuOCjeOBguOBjQ0KK+OBu+OCk+OBoCzjga7jgbzjgosNCivjgb7jgYjjgYvjgo8s44KL44G/DQor44G+44GI44GgLOOBv+OBquOBkw0KK+OBvuOBiOOBoCzjgZ/jgo3jgYYNCivjgb7jgYjjgaAs44Gf44GL44GXDQor44G+44GI44GuLOOBleOBqOOBlw0KK+OBvuOBjSzjgarjgb8NCivjgb7jgY3jgZ7jga4s44GV44KE44GLDQor44G+44GN44GfLOOBi+OBpOOChuOBjQ0KK+OBvuOBjeOBrizjgoDjga3jgY0NCivjgb7jgZXjgY0s44KG44Ga44KLDQor44G+44GZ44GW44GNLOOCiOOBl+OBkw0KK+OBvuOBmeOBoCzjgobjgYbjgZnjgZENCivjgb7jgZnjgbbjgaEs44GL44Ga44Gy44KNDQor44G+44Gh44GgLOOBv+OChuOBjQ0KK+OBvuOBpOOBhuOCiSzjgYjjgorjgZMNCivjgb7jgaTjgYvjgo8s44KC44Go44KIDQor44G+44Gk44GW44GNLOOBoOOBhOOBmeOBkQ0KK+OBvuOBpOOBluOBjSzjgb7jgY0NCivjgb7jgaTjgZfjgZ8s44GT44Ga44GIDQor44G+44Gk44GX44G+LOOBsuOBp+OBig0KK+OBvuOBpOOBoCzjgZfjgZLjgobjgY0NCivjgb7jgaTjgaAs44Gf44GL44GXDQor44G+44Gk44GgLOOBguOChuOBvw0KK+OBvuOBpOOBquOBjCzjgZ/jgYvjgZcNCivjgb7jgaTjgarjgb8s44GT44GG44GYDQor44G+44Gk44Gw44KJLOOBruOCiuOBteOBvw0KK+OBvuOBpOOBsOOCiSzjgZXjgajjgb8NCivjgb7jgaTjgb/jgoQs44GR44KT44GE44GhDQor44G+44Gk44KC44GoLOOBvuOBk+OBqA0KK+OBvuOBpOOCguOBqCzjgYvjgZrjgbLjgacNCivjgb7jgaTjgoLjgags44Gf44GR44G144G/DQor44G+44Gk44KC44GoLOOChuOBhuOBmeOBkQ0KK+OBvuOBpOOCguOBqCzjgbLjgo3jgZMNCivjgb7jgaTjgoTjgb4s44Gh44Ga44GTDQor44G+44Gq44G5LOOCiuOCh+OBhuOBmeOBkQ0KK+OBvuOCi+OChOOBvizjgb7jgZXjgY0NCivjgb7jgovjgoTjgb4s44Gy44KN44GNDQor44G/44GG44KJLOOChOOBmeOBv+OBpA0KK+OBv+OBj+OBqyzjgbXjgb/jgarjgooNCivjgb/jgZrjgYvjgb8s44Gy44Gn44GNDQor44G/44Gk44Gv44GXLOOBruOCiuOCiOOBlw0KK+OBv+OBquOBqCzjgbLjgo3jgobjgY0NCivjgb/jgarjgb8s44Gf44GL44KG44GNDQor44G/44G144GtLOOCiOOBl+OBsuOCjQ0KK+OBv+OChOOBjOOCjyzjgb7jgZXjgZcNCivjgb/jgoTjgZXjgYss44GX44Gu44G2DQor44G/44KE44GW44KPLOOBmOOCheOCkw0KK+OCgOOCieOBiizjgb7jgZXjgZMNCivjgoDjgonjgYvjgb8s44G+44GV44G/DQor44KA44KJ44GfLOOBkeOCk+OBmeOBkQ0KK+OCgOOCieOBvuOBpCzjga7jgbbjgobjgY0NCivjgoDjgonjgoTjgb4s44Go44GX44GKDQor44KA44KJ44KE44G+LOOBi+OBmuOBguOBjQ0KK+OCgeOBkOOCjSzjgajjgoLjgbLjgZMNCivjgoLjgaHjgZrjgY0s44GT44GG44GE44GhDQor44KC44Go44KI44GXLOOBvuOBk+OBqA0KK+OCguOCguOBmizjgobjgY3jgZMNCivjgoLjgoos44G+44GV44GNDQor44KC44KKLOOChOOBmeOBn+OBiw0KK+OCguOCiizjgb/jgbsNCivjgoLjgoos44Gf44G+44KIDQor44KC44KK44GfLOOBkeOCk+OBmA0KK+OCguOCiuOBnyzjgZHjgpPjgYTjgaHjgo0NCivjgoLjgorjga4s44G/44Gh44GKDQor44KC44KK44KC44GoLOOBn+OBi+OBlw0KK+OCguOCiuOCguOBqCzjgobjgY3jgZMNCivjgoLjgorjgoTjgb4s44GL44Ga44KG44GNDQor44KC44KK44KP44GNLOOBteOBv+OBguOBjQ0KK+OChOOBjizjgZHjgYTjgZnjgZENCivjgoTjgY4s44KG44Gf44GLDQor44KE44GP44GX44GYLOOBiuOBleOCgA0KK+OChOOBkyzjgaTjgojjgZcNCivjgoTjgZbjgo8s44GR44KT44GE44GhDQor44KE44GZ44G+LOOBkeOCk+OBmOOCjeOBhg0KK+OChOOBqOOBlCzjgYLjgYQNCivjgYzjgpMs44Gv44Gq44GIDQor44KE44Gq44G2LOOBleOBqOOBlw0KK+OChOOBrizjgZfjgoXjgYbjgZPjgYYNCivjgoTjgbbjgZ8s44Gy44KN44GXDQor44KE44G+44GG44GhLOOChuOBjeOBkw0KK+OChOOBvuOBhuOBoSzjgb/jgaTjga/jgosNCivjgoTjgb7jgZDjgaEs44KK44KH44GGDQor44KE44G+44GQ44GhLOOChOOBmeOBvuOBlQ0KK+OChOOBvuOBkOOBoSzjgarjgYrjgZMNCivjgZjjgaDjgYQs44Gy44KN44GC44GNDQor44KE44G+44GQ44GhLOOBiOOBhOOBnw0KK+OChOOBvuOBkOOBoSzjgZvjgYTjgZMNCivjgoTjgb7jgZDjgaEs44GT44GG44GYDQor44KE44G+44GV44GNLOOChOOBmeOBsuOCjQ0KK+OChOOBvuOBleOBjSzjgZjjgoXjgpMNCivjgoTjgb7jgZbjgY0s44GC44Gk44KEDQor44KE44G+44GX44GfLOOBi+OBmuOBsuOCjQ0KK+OChOOBvuOBl+OBnyzjgb7jgZXjgagNCivjgoTjgb7jgZfjgZ8s44Gf44GP44KEDQor44KE44G+44GgLOOBn+OBi+OBlw0KK+OChOOBvuOBoCzjgoTjgZnjgYoNCivjgoTjgb7jgaAs44Gf44Gk44GYDQor44KE44G+44GgLOOChOOBmeOBsuOBlQ0KK+OChOOBvuOBoCzjgY3jgofjgYbjgZMNCivjgoTjgb7jgajjgoQs44G+44KK44GTDQor44KE44G+44Gq44GLLOOBsuOBteOBvw0KK+OChOOBvuOBquOBlyzjgZjjgoXjgpMNCivjgoTjgb7jgavjgZcs44Gq44GK44GNDQor44KE44G+44KC44GoLOOBoeOBiw0KK+OChOOBvuOCguOBqCzjgYvjgZrjgoQNCivjgoTjgb7jgoLjgags44KK44GLDQor44KE44G+44KC44GoLOOBvuOBquOBvw0KK+OChOOBvuOCguOBqCzjgojjgYbjgZnjgZENCivjgoTjgb7jgoLjgags44Gf44Gk44KEDQor44KI44GT44GfLOOBqOOCguOBteOBvw0KK+OCiOOBk+OBnyzjgZfjgZLjgobjgY0NCivjgojjgZPjgZ8s44GL44KIDQor44KI44GT44GmLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OCiOOBl+OBiuOBiyzjgZ/jgYvjgZcNCivjgojjgZfjgYrjgYss44GC44Gk44GXDQor44KI44GX44GK44GLLOOBsuOBp+OBqA0KK+OCiOOBl+OBi+OCjyzjgZ/jgY/jgoQNCivjgojjgZfjgYvjgo8s44KK44KH44GG44GE44GhDQor44KI44GX44GgLOOBvuOBleOChuOBjQ0KK+OCiOOBl+OBoCzjgZjjgoXjgpPjgZMNCivjgojjgZfjgaAs44GC44GL44GtDQor44KI44GX44GuLOOBv+OBruOCiw0KK+OCiOOBl+OBvyzjgb7jgZXjgobjgY0NCivjgojjgZfjgoDjgoks44GP44Gr44Gy44GTDQor44KI44GgLOOBruOCiuOBsuOBlQ0KK+OCiOOBreOBluOCjyzjgYLjgonjgZ8NCivjgorjgoXjgYbjgags44GR44GEDQor44KP44GL44Gk44GNLOOBl+OCk+OBmeOBkQ0KK+OCj+OBjeOBluOBiyzjgZfjgpPjgoQNCivjgo/jgY3jgZ8s44KG44GG44GZ44GRDQor44KP44GN44GfLOOBqOOBiuOCiw0KK+OCj+OBjeOCguOBqCzjgZfjgofjgYbjgZMNCivjgo/jgaAs44Gf44GL44GXDQor44KP44GgLOOBguOBjeOBkw0KK+OCj+OBn+OBmyzjgaDjgYQNCivjgo/jgZ/jgarjgbks44KE44GZ44Gv44KLDQor44KP44Gf44Gq44G5LOOBneOBhg0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgobjgY0NCivjgo/jgZ/jgarjgbks44Gq44GK44GTDQor44KP44Gf44Gq44G5LOOCiOOBl+OBn+OBiw0KK+OBjeOBruOBl+OBnyzjgobjgYbjgZMNCivjgYLjgYrjgY0s44KI44GX44Gy44GTDQor44KE44Gq44GO44Gv44KJLOOBjeOCiOOBlw0KK+OBguOBvuOBkyzjgojjgZfjgYoNCivjgZPjgpPjganjgYYs44GX44GK44KKDQor44GX44KJ44GL44KPLOOCiOOBhuOBkw0KK+OBk+OChOOBvizjgZ/jgYvjgobjgY0NCivjgZPjgpPjgaks44G+44GT44GoDQor44KC44KKLOOBqOOBl+OBig0KK+OBiuOBiuOBrizjgbLjgafjgojjgZcNCivjgb7jga4s44GC44GNDQor44Gq44GM44GuLOOBmeOBv+OBkw0KK+OBleOBqOOBhizjgYjjgooNCivjgb/jgoTjgZbjgY0s44GC44KEDQor44GK44GM44KPLOOBguOBjeOCiQ0KK+OBjeOCgOOCiSzjgbLjgafjgajjgZcNCivjgojjgZPjgYos44GR44KT44GYDQor44GG44Gh44KA44KJLOOBoeOBquOBpA0KK+OBlOOBl+OBvizjgorjgoXjgYbjgYTjgaENCivjgZXjgYjjgY0s44G/44GNDQor44Gq44GL44GY44G+LOOBsuOCjeOBvw0KK+OBhOOCj+OBvyzjgb/jgbsNCivjgYjjgZIs44KM44GEDQor44GG44KB44Ge44GuLOOBi+OBiuOCig0KK+OBleOBj+OCieOBhCzjgb7jgb8NCivjgo/jgZ/jgarjgbks44G+44KEDQor44Gq44GM44GELOOBl+OCh+OBhuOBlA0KK+OBiuOBneOBjOOBvyzjgYLjgaTjgbLjgZMNCivjgY/jgo3jgYvjgo8s44G+44GV44KI44GXDQor44Gf44GL44GZ44GLLOOCiOOBl+OBi+OBmg0KK+OBiuOBsOOBnyzjgb7jgZXjgbLjgZMNCivjgZfjgonjgYQs44KG44Gf44GLDQor44G+44Gk44GG44KJLOOBvuOBk+OBqA0KK+OBquOBi+OBluOCjyzjgojjgZfjgbLjgZUNCivjgb7jgaTjgYQs44KG44GG44GE44GhDQor44GT44Gb44GNLOOBk+OBhuOBn+OCjeOBhg0KK+OBpOOBi+OBoCzjga7jgorjgobjgY0NCivjgabjgonjgY/jgoks44KI44GG44GYDQor44Gr44G444GELOOBjeOCiOOBlw0KK+OBi+OCj+OCgOOCiSzjgZ/jgYvjgobjgY0NCivjgbLjgZQs44G+44GV44KG44GNDQor44GT44Gw44KE44GXLOOBjeOCiOOBruOCig0KK+OBteOCi+OBnyzjgZ/jgYvjgobjgY0NCivjgoLjgaHjgZrjgY0s44Gy44KN44KG44GNDQor44GK44GL44GgLOOBn+OBpOOBlw0KK+OBleOBhOOBqOOBhizjgobjgY3jgZMNCivjgYvjgo/jga/jgoks44KG44GNDQor44GZ44Ga44GL44GRLOOBn+OBj+OChA0KK+OBhOOBqOOBhizjgYLjgaTjgZMNCivjgYTjgZfjgZrjgYss44Gy44GV44GoDQor44Gf44G544GELOOChOOBmeOBvuOBlQ0KK+OBlOOBqOOBhizjgYLjgY3jgbLjgo0NCivjgZfjgoLjgZXjgYss44Go44GK44KLDQor44GL44KP44GELOOBi+OBmuOBvg0KK+OCj+OBn+OBquOBuSzjgojjgZfjgYvjgZoNCivjgZnjgZrjgY0s44GE44Gk44G144G/DQor44G+44Gk44KE44G+LOOBsuOCjeOBlw0KK+OBr+OCiSzjgorjgofjgYbjgbjjgYQNCivjgaTjgbDjgY0s44Gb44GE44GE44Gh44KN44GGDQor44KE44GZ44GELOOBn+OBi+OChuOBjQ0KK+OBk+OBsOOChOOBlyzjgZHjgpPjgZ/jgo3jgYYNCivjgYrjgYvjgbks44GV44KG44KKDQor44GK44GM44KPLOOBl+OCh+OBhuOBkw0KK+OChOOBvuOBkOOBoSzjgZXjgajjgZcNCivjgbXjgZjjgYvjgo8s44GR44KT44GYDQor44GE44Gq44GM44GNLOOBsuOBp+OBqOOBlw0KK+OBoeOBnizjgajjgZfjgbLjgZMNCivjga/jgarjgaAs44GY44KF44KT44KEDQor44GK44GK44GTLOOCguOBqOOBguOBjQ0KK+OBiuOBiuOBj+OCiSzjgZnjgb/jgbLjgo0NCivjgb7jgaTjgYos44Gk44Go44KADQor44GI44KT44GpLOOBvuOCiuOBkw0KK+OBu+OCiuOBuSzjgoLjgajjgZgNCivjgYvjgaQs44Gm44Gk44Gy44KNDQor44GK44Gf44GLLOOBvuOBleOBruOBtg0KK+OBn+OBi+OBr+OBlyzjgajjgZfjgoQNCivjgoDjgonjgoTjgb4s44KG44GG44GTDQor44KI44GX44GK44GLLOOBleOChuOCig0KK+OBi+OBhCzjgojjgZfjgYgNCivjgZ/jgYvjga/jgZcs44KP44GL44GTDQor44GQ44KT44GSLOOBn+OBvuOCiA0KK+OChOOBrizjgZ/jgYQNCivjga/jgoTjgZcs44GC44KE44GTDQor44G/44GG44KJLOOBvuOBquOBvw0KK+OBguOBiuOChOOBjizjgbLjgo3jgZ/jgYsNCivjgZ/jgYvjgaAs44Go44GP44Gy44GTDQor44Gs44G+44GfLOOBkeOCk+OBmA0KK+OBi+OBn+OBiuOBiyzjgYvjgYrjgosNCivjgZfjgb/jgZos44GV44Gh44GTDQor44GX44G/44GaLOOChuOBhuOBkw0KK+OBvuOBpOOCgOOCiSzjgZ/jgo3jgYYNCivjgYrjgorjgags44GV44Go44GXDQor44GT44Gf44GrLOOBteOBv+OBsuOBkw0KK+OBiuOBiuOBr+OBlyzjgorjgofjgYYNCivjgYvjgpPjgZvjgY0s44GR44GE44GTDQor44GN44Gf44KA44KJLOOBk+OBhuOBn+OCjeOBhg0KK+OBleOBj+OBnyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgojjgZfjgaAs44Gf44GL44GXDQor44GT44Gv44KJLOOBqOOBiuOCiw0KK+OBhOOBr+OCiSzjgZHjgYTjgZMNCivjgaTjgZjjgYbjgoks44GL44Ga44Gy44KNDQor44Gq44GL44KA44KJLOOBpOOCiOOBlw0KK+OBguOBiuOBjSzjgYLjgY3jgZMNCivjgYLjgYrjgoTjgb4s44Gg44GE44GZ44GRDQor44GC44GL44GE44GRLOOBsuOCjeOBvw0KK+OBguOBi+OBpCzjgZjjgoXjgpMNCivjgYLjgY3jga/jgoks44GX44KF44KT44GZ44GRDQor44GC44GN44KC44GoLOOBvuOCig0KK+OBguOBleOBj+OCiSzjgZ/jgYvjgZcNCivjgYLjgZXjga4s44KK44KH44GGDQor44GC44Gz44KLLOOBguOBhOOBkw0KK+OBguOBuSzjga7jgorjgZ/jgYsNCivjgYLjgbks44KG44GNDQor44GC44G5LOOBn+OBj+OChA0KK+OBguOBueOBi+OCjyzjgajjgoLjgZMNCivjgYLjgonjgYQs44Gu44KK44Gy44GoDQor44GC44KJ44GELOOBvuOBleOBqOOBlw0KK+OBguOCieOBi+OCjyzjgbLjgo3jgY0NCivjgYLjgonjgY0s44Gf44GL44GC44GNDQor44GC44KJ44GNLOOBsuOCjeOBlw0KK+OBguOCiuOBiCzjgb7jgZXjgbXjgb8NCivjgYLjgpPjganjgYYs44GR44KT44Gf44KN44GGDQor44GE44GE44GgLOOBmOOCheOCk+OBhOOBoQ0KK+OBhOOBkeOBoCzjgZfjgoXjgpPjgZnjgZENCivjgYTjgZHjgaAs44Gf44GR44GXDQor44GE44GR44GgLOOBquOBiuOBjQ0KK+OBhOOBl+OBhCzjga7jgbbjgoTjgZkNCivjgYTjgZfjgYQs44Gv44KE44GoDQor44GE44GX44GM44GNLOOBv+OChOOBkw0KK+OBhOOBl+OBi+OCjyzjgobjgY0NCivjgYTjgZfjgYvjgo8s44KG44G/44GTDQor44GE44GX44GW44KPLOOBpuOCi+OBjQ0KK+OBhOOBl+OBmuOBvyzjgZfjgoXjgYbjgbjjgYQNCivjgYTjgZfjgZzjgY0s44Gg44GE44GZ44GRDQor44GE44GX44GgLOOChuOBhuOBmA0KK+OBhOOBl+OBoCzjgozjgYTjgZMNCivjgYTjgZfjgaAs44KI44GX44Gf44GLDQor44GE44GX44GlLOOBn+OBi+OBlw0KK+OBhOOBl+OBr+OCiSzjgbXjgb/jgarjgYoNCivjgYTjgZfjgb7jgoss44GX44KF44GG44GE44GhDQor44GE44Gf44GrLOOBn+OBi+OBlw0KK+OBhOOBn+OBr+OCiSzjgbLjgZXjgaTjgZANCivjgYTjgaHjgb4s44Gq44GK44GoDQor44GE44Go44GGLOOChuOBhuOBkw0KK+OBhOOBqOOBhizjgobjgYbjgYTjgaHjgo3jgYYNCivjgYTjgajjgYYs44Gy44KN44GL44GaDQor44GE44Go44GGLOOBguOBjeOBkw0KK+OBhOOBqOOBhizjgZfjgZrjgZMNCivjgYTjgajjgYYs44GK44GNDQor44GE44Go44GGLOOBpOOCiOOBlw0KK+OBhOOBqOOBhizjgbLjgo3jgobjgY0NCivjgYTjgarjgYzjgY0s44GX44GS44GNDQor44GE44Gq44G/LOOCjOOBig0KK+OBhOOBrizjgb/jgY0NCivjgYTjga7jgYbjgYgs44G+44GV44GNDQor44GE44Gu44GG44GILOOBn+OBi+OBlw0KK+OBhOOBvuOBiizjgZjjgoXjgpPjgbrjgYQNCivjgYTjgb7jgaAs44GR44KT44GE44GhDQor44GE44KP44GL44G/LOOChuOBhuOBmeOBkQ0KK+OBhOOCj+OBj+OCiSzjgobjgZ/jgYsNCivjgYTjgo/jgZbjgY0s44Gy44KN44Gf44GLDQor44GE44KP44GfLOOBk+OBhuOBmA0KK+OBhOOCj+OCguOBqCzjgbLjgo3jgY0NCivjgYbjgYjjgZnjgY4s44GY44KF44KT44GTDQor44GG44GI44GgLOOBvuOBleOChA0KK+OBhuOBiOOBn+OBiyzjgZfjgofjgYbjgZgNCivjgYbjgYjjgaEs44G+44KKDQor44GG44GI44GuLOOBkeOCk+OBmA0KK+OBsuOCiuOCheOBhizjgZPjgYbjgZgNCivjgYbjgYjjgoDjgoks44G+44GV44Gy44KNDQor44GG44Gh44GgLOOBguOChA0KK+OBhuOBoeOBoCzjgY3jgYTjgaENCivjgYbjgaHjga/jgZcs44GU44GGDQor44GG44Gh44KE44G+LOOCjOOBvw0KK+OBhuOCgeOBr+OCiSzjgarjgaTjgZMNCivjgYbjgorjgZ/jgass44G+44GZ44G/DQor44GK44GE44GL44KPLOOBkeOCk+OBn+OCjeOBhg0KK+OBiuOBiuOBhCzjgajjgoLjgobjgY0NCivjgYrjgYrjgYQs44GL44KI44GTDQor44GK44GK44GE44GXLOOBvuOBleOBsuOBkw0KK+OBiuOBhuOBoSzjgZHjgpPjgZfjgpMNCivjgYrjgYrjgYgs44Gg44GE44GZ44GRDQor44GK44GK44GK44GLLOOBvuOBleOBsuOCjQ0KK+OBiuOBiuOBi+OCjyzjgb7jgZXjgoQNCivjgYrjgYrjgY/jgbws44KK44KH44GGDQor44GK44GK44GP44G+LOOBruOCiuOBsuOCjQ0KK+OBiuOBiuOBnyzjga7jgbbjgbLjgo0NCivjgYrjgYrjgZ/jgass44GX44Ga44GLDQor44GK44GK44GkLOOBoeOBiA0KK+OBiuOBiuOBpCzjgabjgaTjgoQNCivjgYrjgYrjgaTjgYss44GY44KF44KTDQor44GK44GK44Gk44GLLOOBpuOCi+OBsuOCjQ0KK+OBiuOBiuOBpOOBiyzjgYLjgY3jgokNCivjgYrjgYrjgaTjgYss44GR44GEDQor44GK44GK44Gk44G8LOOBvuOBleOBv+OBpA0KK+OBiuOBiuOBr+OBnyzjgYLjgY3jgZMNCivjgYrjgYrjgb7jgZUs44Gf44Gk44GKDQor44GK44GK44KELOOBkeOBhOOBmA0KK+OBiuOBiuOChOOBvizjgZ/jgYTjgZnjgZENCivjgYrjgYss44Gf44KN44GGDQor44GK44GL44GY44G+LOOBv+OBpOOBruOBtg0KK+OBiuOBi+OBoCzjgZ/jgaTjgoQNCivjgYrjgYvjgaAs44Gh44Gy44KNDQor44GK44GL44GgLOOBruOCiuOCiOOBlw0KK+OBiuOBi+OBoCzjgZXjgajjgZcNCivjgYrjgYvjgaAs44KL44G/DQor44GK44GL44Gv44GfLOOBn+OBpOOChA0KK+OBiuOBi+OBuSzjgoTjgZnjgb7jgZUNCivjgYrjgYvjgoLjgags44Gy44GV44GXDQor44GK44GL44KC44GoLOOCiOOBl+OBruOCig0KK+OBiuOBi+OCguOBqCzjgbLjgafjgY0NCivjgYrjgYzjgo8s44GR44GE44GTDQor44GK44GM44KPLOOBoOOBhOOBmeOBkQ0KK+OBiuOBj+OBoCzjgZPjgYbjgbjjgYQNCivjgYrjgY/jgags44GV44GhDQor44GK44GP44Gq44GLLOOBm+OBhOOBlw0KK+OBiuOBkOOCiSzjgZ/jgo3jgYYNCivjgYrjgZbjgY0s44Gu44G244GC44GNDQor44GK44GV44GgLOOBsuOCjeOBlw0KK+OBiuOBluOCjyzjgbLjgo3jgb8NCivjgYrjgZjjgb4s44G+44GT44GoDQor44GK44GY44G+LOOBvuOBleOBlw0KK+OBiuOBsOOCiSzjgobjgorjgZMNCivjgYvjgYTjgajjgYYs44Gf44GL44GXDQor44GL44GN44GP44KJLOOBvuOBleOChuOBjQ0KK+OBi+OBjeOCguOBqCzjgabjgaTjgoQNCivjgYvjgY8s44GT44GG44GYDQor44GL44GS44KE44G+LOOBn+OBoOOBsuOBlQ0KK+OBi+OBmOOBquOBjCzjgobjgZ/jgYsNCivjgYvjgZfjgb4s44KI44GX44Gy44GTDQor44GL44Gf44GK44GLLOOBn+OBi+OBsuOCjQ0KK+OBi+OBn+OBjuOCiizjgarjgaTjgZMNCivjgYvjgZ/jgoTjgb4s44G+44Gy44GoDQor44GL44GpLOOChuOBv+OBkw0KK+OBi+OBqOOBhizjgorjgaTjgZMNCivjgYvjgajjgYYs44KK44KH44GGDQor44GL44Go44GGLOOBteOBvw0KK+OBi+OBqOOBhizjgozjgYTjgZMNCivjgYvjgajjgYYs44GZ44G/44KMDQor44GL44Go44GGLOOBsuOCjeOBlw0KK+OBi+OBqOOBhizjgabjgaTjgoQNCivjgYvjgajjgYYs44GV44Go44GXDQor44GL44Go44GGLOOCj+OBn+OCiw0KK+OBi+OBqOOBhizjgZPjgYbjgYTjgaHjgo3jgYYNCivjgYvjgarjgoLjgags44GC44GN44GTDQor44GL44Gq44KELOOBl+OCk+OChA0KK+OBi+OBreOBkyzjgojjgZfjgYvjgZoNCivjgYvjga3jgoLjgoos44KG44GGDQor44GL44KPLOOCiOOBl+OBi+OBmg0KK+OBi+OCj+OBhCzjgZPjgYbjgZgNCivjgYvjgo/jgYQs44Gv44KL44GTDQor44GL44KP44GL44G/LOOBvuOBleOBiuOBvw0KK+OBi+OCj+OBkOOBoSzjgaHjgYvjgZMNCivjgYvjgo/jgZDjgaEs44GX44KF44KT44GZ44GRDQor44GL44KP44GQ44GhLOOBqOOBl+OBsuOBkw0KK+OBi+OCj+OBkOOBoSzjgbLjgo3jgY0NCivjgYvjgo/jgZDjgaEs44GZ44GZ44KADQor44GL44KP44GU44GE44GXLOOBn+OBi+OChuOBjQ0KK+OBi+OCj+OBl+OBvizjgZTjgo3jgYYNCivjgYvjgo/jgaos44Gf44GR44GXDQor44GL44KP44Gu44G5LOOChuOBjeOBkw0KK+OBi+OCk+OBrizjgoTjgZnjga7jgbYNCivjgY3jgY/jgaEs44Gu44Ge44G/DQor44GN44GXLOOCjOOBhOOBkw0KK+OBjeOBl+OCguOBqCzjgZ/jgZHjgZcNCivjgY3jgZfjgo0s44KE44GZ44GXDQor44GN44Gf44GKLOOBl+OCkw0KK+OBjeOBn+OBr+OBvizjgZ/jgZHjga7jgooNCivjgY3jgZ/jgoDjgoks44KI44GX44Gu44KKDQor44GN44Gp44GT44KNLOOBguOBpOOBlw0KK+OBjeOCgOOCiSzjgZPjgYbjgYTjgaENCivjgY3jgoDjgoks44G+44GT44GoDQor44GN44KA44KJLOOBguOBhOOBkw0KK+OBjeOCiuOBguOBkSzjgYjjgYTjgZXjgY8NCivjgY/jgY3jgoLjgags44Go44GX44GNDQor44GP44G8LOOBj+OBq+OChuOBjQ0KK+OBj+OBvOOBnyzjgb7jgobjgb8NCivjgY/jgb7jgY/jgoks44KK44GLDQor44GP44G+44GgLOOChuOBhuOBmeOBkQ0KK+OBj+OBvuOCguOBqCzjgbLjgo3jgYLjgY0NCivjgY/jgoEs44G+44GV44Gy44GoDQor44GP44KJ44KELOOBk+OBhuOBuOOBhA0KK+OBj+OCiuOCj+OBjSzjgb7jgY3jgZMNCivjgY/jgo/jgbDjgoks44KG44GL44KKDQor44GU44GGLOOBpuOCi+OBig0KK+OBk+OBhOOBkSzjgZXjgajjgosNCivjgZPjgYTjgZEs44KM44GK44GqDQor44GT44GV44GLLOOCgOOBpOOBvw0KK+OBk+OBhuOBoCzjgYLjgoTjgZMNCivjgZPjgYws44GT44GG44GE44GhDQor44GT44GP44G8LOOCguOCguOBiA0KK+OBk+OBj+OCiSzjgorjgYgNCivjgZPjgZQs44KK44KF44GG44GYDQor44GT44GV44GNLOOCiuOCh+OBhuOBmeOBkQ0KK+OBk+OBmOOBvizjgbLjgo3jgZMNCivjgZPjgafjgoks44GL44Ga44GoDQor44GU44Go44GGLOOBoOOBhOOBmeOBkQ0KK+OBlOOBqOOBhizjgZHjgYTjgZMNCivjgZTjgajjgYYs44GL44Ga44Gu44KKDQor44GT44Gv44GfLOOBoeOCiOOBvw0KK+OBk+OBsOOChOOBlyzjgajjgYrjgosNCivjgZPjgbDjgoTjgZcs44Gq44G744GTDQor44GT44G+44Gk44Gw44KJLOOBv+OBuw0KK+OBk+OBv+OChCzjgajjgY/jgZMNCivjgZPjgb/jgoTjgb4s44G+44GV44KI44GXDQor44GT44KE44Gq44GOLOOBl+OCk+OChA0KK+OBk+OChOOBvizjgZ/jgYvjgZMNCivjgZPjgpPjgaks44Gu44G244GLDQor44GT44KT44GuLOOBruOBtuOBuw0KK+OBleOBhOOBqOOBhizjgbLjgo3jgbLjgacNCivjgZXjgYTjgajjgYYs44GX44GS44KLDQor44GV44GE44Go44GGLOOBkeOCk+OBhOOBoQ0KK+OBleOBhOOBqOOBhizjgZHjgpPjgZQNCivjgZXjgYTjgajjgYYs44GC44GEDQor44GV44GL44GELOOCiuOCh+OBhuOBmeOBkQ0KK+OBleOBi+OBrizjgobjgY3jgZMNCivjgZXjgYvjgoLjgags44KP44Gf44KLDQor44GV44GL44KC44GoLOOBoeOBi+OCiQ0KK+OBleOBj+OCieOBhCzjgb7jgZXjgbXjgb8NCivjgZXjgZXjgY0s44KI44GX44GTDQor44GV44GV44GNLOOBn+OBkeOChuOBjQ0KK+OBleOBleOBjSzjgobjgY3jgYoNCivjgZXjgZXjgY0s44GV44GNDQor44GV44GV44GNLOOChOOBmeOBsuOCjQ0KK+OBleOBleOBrizjgYLjgYvjgY4NCivjgZXjgaDjgoLjgags44GS44KT44GT44GGDQor44GV44Go44GGLOOBsuOCjeOBjQ0KK+OBleOBqOOBhizjgobjgYbjgYTjgaHjgo0NCivjgZXjgajjgYYs44Gf44GL44GXDQor44GV44Go44GGLOOBn+OBi+OBsuOCjQ0KK+OBleOBqOOBhizjgajjgoLjgZMNCivjgZXjgarjgaAs44G+44GV44KG44GNDQor44GV44Gt44GX44GSLOOBqOOBl+OBruOBtg0KK+OBleOBrizjgYvjgZrjgbLjgZMNCivjgZfjgZLjgajjgb8s44GV44Go44GTDQor44GX44Gu44Gv44KJLOOCguOCiuOBsuOBkw0KK+OBl+OBsOOBi+OCjyzjgZHjgpPjgZjjgo3jgYYNCivjgZfjgbDjga4s44KK44KH44GGDQor44GX44G+44GgLOOBn+OBkeOBlw0KK+OBl+OBvuOBoCzjgZ/jgaTjgo3jgYYNCivjgZfjgb/jgZos44Gf44GL44GKDQor44GX44KA44KJLOOBn+OBi+OBruOCig0KK+OBl+OCgOOCiSzjgZ/jgZHjgZcNCivjgZfjgoLjgYvjgo8s44Go44KC44KEDQor44GX44KC44G144GYLOOBruOBtuOBsuOBkw0KK+OBl+OCguOChOOBvizjgbLjgafjgYvjgZoNCivjgZfjgofjgYYs44Gy44KN44KG44GNDQor44GX44KJ44GELOOCiuOBiA0KK+OBl+OCieOBjCzjgZPjgYbjgZgNCivjgZfjgonjgYvjgo8s44KE44GZ44GTDQor44GX44KJ44GZLOOBv+OChuOBjQ0KK+OBl+OCjyzjgZHjgpPjgYTjgaENCivjgZfjgpPjgZEs44Gq44GE44GX44KTDQor44GX44KT44Gp44GGLOOBqOOCguOBi+OBmg0KK+OBmeOBjOOBr+OCiSzjgbLjgo3jgYvjgZoNCivjgZnjgY7jgYbjgaEs44GX44KH44GG44Gf44KN44GGDQor44GZ44GO44GG44KJLOOBoeOBguOBjQ0KK+OBmeOBjuOBleOCjyzjgojjgYbjgZMNCivjgZnjgY7jga/jgoks44Gy44KN44Gu44G2DQor44GZ44GO44KC44GoLOOBpuOCi+OChuOBjQ0KK+OBmeOBjuOChOOBvizjgZ/jgaTjgoQNCivjgZnjgZrjgY0s44G+44GV44KG44GNDQor44GZ44Ga44GNLOOBl+OCk+OBhOOBoQ0KK+OBmeOBmuOBjSzjgZ/jgYTjgZnjgZENCivjgZnjgZrjgY0s44G+44GT44GoDQor44GZ44Ga44GNLOOBvuOBleOChA0KK+OBmeOBmuOBjSzjgorjgoXjgYbjgZ8NCivjgZnjgZrjgY0s44Gu44KK44GTDQor44GZ44Ga44GNLOOBv+OBi+OBkw0KK+OBmeOBoCzjgorjgpPjgoQNCivjgZnjgags44Gm44Gk44KEDQor44GZ44G/44GgLOOBguOBjeOBsuOCjQ0KK+OBm+OBjSzjgYLjgaTjgarjgooNCivjgZvjgY0s44GL44Ga44GNDQor44Gb44KT44GgLOOChuOBjeOBkw0KK+OBneOCgeOBv+OChCzjgaHjgYgNCivjgZ3jgoQs44Gy44KN44GNDQor44Gg44GE44G+44KLLOOBguOBjeOCiQ0KK+OBn+OBi+OBiizjga/jgarjgYgNCivjgZ/jgYvjgY4s44GL44KIDQor44Gf44GL44GW44KPLOOBoOOCkw0KK+OBn+OBi+OBmyzjgZHjgpPjgZgNCivjgZ/jgYvjga0s44GV44Go44GXDQor44Gf44GL44Gv44GXLOOBmOOCheOCk+OBkw0KK+OBn+OBi+OBr+OBlyzjgZ/jgYvjgZcNCivjgZ/jgYvjga/jgZcs44Gy44KN44Gq44GKDQor44Gf44GL44Gv44GXLOOBsuOCjeOChuOBjQ0KK+OBn+OBi+OBr+OBlyzjgb7jgarjgbYNCivjgZ/jgYvjgoTjgb4s44KG44GN44GKDQor44Gf44GN44GG44GhLOOCiuOBiA0KK+OBn+OBjeOBi+OCjyzjgYLjgY3jgokNCivjgZ/jgY3jgZDjgaEs44GR44KT44Gf44KN44GGDQor44Gf44GN44GW44KPLOOBleOBqOOBlw0KK+OBn+OBjeOBluOCjyzjgZPjgYbjgZjjgo3jgYYNCivjgZ/jgY3jgZbjgo8s44Gh44Gy44KNDQor44Gf44GN44GfLOOBguOBjeOCiQ0KK+OBn+OBkOOBoSzjgZHjgpPjgZ/jgo3jgYYNCivjgZ/jgZHjgYQs44GP44Gr44GKDQor44Gf44GR44GG44GhLOOBl+OCk+OBlA0KK+OBn+OBkeOBoCzjgobjgYbjgYTjgaHjgo0NCivjgZ/jgZHjga/jgoks44KI44GG44GTDQor44Gf44Gm44GuLOOBquOBiuOBn+OBiw0KK+OBn+OBquOBiyzjgaDjgYTjgZnjgZENCivjgZ/jgarjgYss44GZ44GZ44KADQor44Gf44Gq44GLLOOBguOBjeOCiQ0KK+OBn+OBquOBiyzjgarjgYoNCivjgZ/jgarjgYss44Gb44GE44GYDQor44Gf44Gq44GLLOOBqOOBiuOCiw0KK+OBn+OBquOBiyzjgarjgYrjgZMNCivjgZ/jgarjgYss44GI44KK44GTDQor44Gf44Gq44GLLOOBv+OBpOOBiA0KK+OBn+OBquOBuSzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgZ/jgass44Gh44GL44KIDQor44Gf44Gr44GL44KPLOOCiOOBl+OBpOOBkA0KK+OBn+OBq+OBquOBiyzjgbLjgo3jgZ/jgYsNCivjgZ/jgavjgoLjgags44Gh44Ga44KLDQor44Gf44Gs44G+LOOBteOBv+OBsuOBkw0KK+OBn+OBsOOBnyzjgZjjgoXjgpMNCivjgZ/jgbDjgZ8s44GTDQor44Gf44Gw44GfLOOCiOOBhuOBmeOBkQ0KK+OBn+OBsOOBnyzjgZHjgYTjgZ/jgo3jgYYNCivjgZ/jgoDjgoks44GT44GG44GE44GhDQor44Gf44KL44GNLOOChuOBjQ0KK+OBn+OCk+OBmCzjgY3jgojjga7jgooNCivjgaHjgbAs44GL44Ga44KG44GNDQor44Gh44GwLOOBsuOCjeOBi+OBmg0KK+OBpOOBi+OBoCzjgorjgYgNCivjgaTjgY3jgoLjgags44GC44Gk44GXDQor44Gk44GYLOOBsuOCjeOBlw0KK+OBpOOBoCzjgY3jgb/jgbLjgZMNCivjgaTjgaHjgoLjgags44GX44KT44GUDQor44Gk44Gk44G/LOOBqOOCguOBkw0KK+OBpOOBpOOBvyzjgZjjgoXjgpPjgYTjgaENCivjgaTjgbzjgZ8s44G+44GV44KEDQor44Gm44GELOOCj+OBi+OBvw0KK+OBpuOCieOBi+OBqSzjgb/jgaTjgYLjgY0NCivjgb/jga7jgYbjgoks44G+44Gq44G2DQor44Gm44KL44GELOOBvuOCig0KK+OBqeOBhCzjgZPjgYbjgZ/jgo3jgYYNCivjgajjgYYs44G+44GN44GTDQor44Go44GG44GL44GE44KK44KTLOOChuOBvw0KK+OBqeOBhuOCgeOCkyzjgYjjgaTjgZMNCivjgajjgYbjgYvjgYQs44GL44GK44KKDQor44Go44GP44Gq44GMLOOBjeOBv+OBn+OBiw0KK+OBqOOBj+OChOOBvizjgZ/jgYTjgYwNCivjgajjgZfjgb4s44G/44KP44GTDQor44Gp44GG44GhLOOBqOOCguOChuOBjQ0KK+OBqOOBruOBhCzjgYLjgY3jgZMNCivjgajjga7jgoDjgoks44KK44GI44GTDQor44Go44G/44GfLOOBj+OBq+OBig0KK+OBqOOCguOBrizjgbLjgafjgYvjgZoNCivjgajjgorjgYQs44G+44KC44KLDQor44Gq44GM44GELOOBqOOCguOBruOCig0KK+OBquOBi+OBjOOCjyzjgYTjgY/jgb4NCivjgarjgYvjgYzjgo8s44KI44GX44Gu44KKDQor44Gq44GL44GM44KPLOOBoOOBhOOBmeOBkQ0KK+OBquOBi+OBluOBqCzjgoLjgajjga7jgbYNCivjgarjgYvjgZfjgb4s44Gh44GL44GTDQor44Gq44GM44GfLOOChuOBiw0KK+OBquOBi+OBrizjgYvjgaoNCivjgarjgYzjga4s44KK44KH44GG44GfDQor44Gq44GM44GuLOOCiuOCh+OBhg0KK+OBquOBi+OCgOOCiSzjgojjgYbjgZMNCivjgarjgYvjgoDjgoks44GV44Go44GXDQor44Gq44GL44KA44KJLOOBn+OBkeOBlw0KK+OBquOBi+OCgOOCiSzjgabjgaTjgoQNCivjgarjgYvjgoLjgoos44Go44GP44GTDQor44Gq44GL44KE44G+LOOBqOOCguOBsuOCjQ0KK+OBquOCi+OBmyzjgZ/jgYvjgZcNCivjgarjgpPjgZQs44G+44GV44GNDQor44Gq44KT44GwLOOBkeOCkw0KK+OBquOCk+OBsCzjgZPjgYbjgZgNCivjgavjgYTjgb8s44GT44GG44G444GEDQor44Gr44GX44GKLOOCiOOBhuOBmA0KK+OBq+OBl+OBiuOBiyzjgZfjgpPjgYTjgaENCivjgavjgZfjgYrjgYss44Go44KC44GTDQor44Gr44GX44GV44GLLOOBvuOBvw0KK+OBq+OBl+OBluOBjSzjgZ/jgY/jgb4NCivjgavjgZfjgZbjgo8s44Gq44GK44GNDQor44Gr44GX44GuLOOBleOBqOOBlw0KK+OBrOOBvuOBn+OBjSzjgoLjgajjgY0NCivjga3jgY7jgZcs44KK44GLDQor44Gt44KE44G+LOOBn+OBkeOBlw0KK+OBruOBoCzjgaHjgYLjgY0NCivjga7jgZDjgaEs44Gu44KK44GTDQor44Gu44GQ44GhLOOCiOOBhuOBmeOBkQ0KK+OBruOBkOOBoSzjgZHjgYTjgZgNCivjga7jgZDjgaEs44GX44KT44GN44GhDQor44Gu44GW44GNLOOBoOOBhOOBmeOBkQ0KK+OBruOBoCzjgbLjgo3jgZMNCivjga7jgbzjgoos44KI44GX44Gy44KNDQor44Gu44KA44KJLOOBl+OCheOBhuOBhOOBoQ0KK+OBruOCgOOCiSzjgb/jgZXjgZMNCivjga7jgoDjgoks44GR44KT44GYDQor44Gv44GO44KP44KJLOOBl+OCh+OBhuOBn+OCjeOBhg0KK+OBr+OBl+OBkOOBoSzjgajjgZfjgbLjgo0NCivjga/jgZfjgoLjgags44Gf44GL44G144G/DQor44G+44GNLOOBi+OBmuOBqA0KK+OBr+OBm+OBjOOCjyzjgZ/jgZHjgYoNCivjga/jgZvjgYzjgo8s44GK44GV44KADQor44Gv44GgLOOBguOChOOBkw0KK+OBr+OBo+OBqOOCiizjgobjgYbjgYTjgaENCivjga/jgaPjgajjgoos44G+44KG44GTDQor44Gw44GwLOOBvuOBleOBjQ0KK+OBsOOBsCzjgZHjgpPjgZgNCivjgbDjgbAs44GX44KT44GE44Gh44KN44GGDQor44Gw44GwLOOCiuOBi+OBkw0KK+OBr+OBvuOBoCzjgY/jgb/jgZMNCivjga/jgb7jgaAs44Gg44GE44GYDQor44Gv44G+44GgLOOCiuOBlQ0KK+OBr+OBvuOBoCzjgbXjgb/jgbLjgo0NCivjga/jgb7jga4s44G+44GV44KG44GNDQor44Gv44KE44GXLOOBguOBjeOBruOCig0KK+OBsuOBkOOBoSzjgZPjgYbjgY0NCivjgbLjgZXjgaTjga0s44G+44GT44GoDQor44Gy44GX44Gs44G+LOOBguOBpOOBlw0KK+OBs+OCh+OBhuOBqeOBhizjgbLjgo3jgZMNCivjgbLjgonjgYQs44G+44GV44GL44GaDQor44Gy44KJ44GK44GLLOOBv+OBjQ0KK+OBsuOCieOBi+OCjyzjgajjgoLjgbLjgo0NCivjgbLjgonjgZXjgo8s44Gf44GP44GYDQor44Gy44KJ44GX44G+LOOBmOOCjeOBhg0KK+OBsuOCieOBnyzjgb7jgb/jgZMNCivjgbLjgonjga4s44KE44KI44GEDQor44Gy44KL44G+LOOChuOBhuOBhOOBoQ0KK+OBsuOCjeOBmyzjgbLjgafjgY0NCivjgbLjgo3jgZss44GL44Gk44KI44GXDQor44Gy44KN44GfLOOBsuOCjeOBlw0KK+OBteOBj+OBhCzjgYLjgZrjgZUNCivjgbXjgY/jgaAs44Gf44GL44GXDQor44G144GP44GwLOOBi+OBquOCgQ0KK+OBteOBj+OCgOOCiSzjgobjgb/jgZMNCivjgbXjgY/jgoLjgags44Gg44GE44GZ44GRDQor44G144GY44GELOOBkeOCkw0KK+OBteOBmOOBhCzjgobjgY0NCivjgbXjgZjjgYQs44G/44KPDQor44G144GY44GI44GgLOOBsuOBleOBi+OBmg0KK+OBteOBmOOBnyzjgbLjgafjgYvjgZoNCivjgbXjgZjjgZ8s44KG44GN44GTDQor44G144GY44GkLOOBn+OBkeOBlw0KK+OBteOBmOOBrizjgZ/jgYvjgbsNCivjgbXjgZjjgoLjgags44GV44Go44GTDQor44G144GY44KP44KJLOOBn+OBj+OBqA0KK+OBteOBmOOCj+OCiSzjgorjgaoNCivjgbXjgZjjgo/jgoks44GP44G/DQor44G144KL44GL44KPLOOCiuOCh+OBhg0KK+OBuyzjgb7jgZXjga7jgooNCivjgbvjgZfjga4s44KA44Gt44Go44KCDQor44G744Gd44GL44KPLOOBpuOCi+OBsuOBkw0KK+OBu+OCiuOBi+OCjyzjgZfjgoXjgYbjgZgNCivjgbvjgpPjgZTjgYYs44KI44GX44GC44GNDQor44G+44GI44GgLOOBguOBpOOBlw0KK+OBvuOBiuOBiyzjgaTjgajjgoANCivjgb7jgZnjgbbjgaEs44Gk44KI44GXDQor44G+44GZ44G/44GkLOOBjeOCh+OBhuOBuOOBhA0KK+OBvuOBpOOBhCzjgZHjgpPjgZ/jgo3jgYYNCivjgb7jgaTjgYos44Gy44Gn44Gu44KKDQor44G+44Gk44GK44GLLOOBjeOCh+OBhuOBmeOBkQ0KK+OBvuOBpOOBiuOBiyzjgZXjgaHjgZMNCivjgb7jgaTjgaAs44KK44KH44GGDQor44G+44Gk44Gw44KJLOOBguOBjeOBkw0KK+OCj+OBn+OBquOBuSzjgaDjgYTjgZnjgZENCivjgb7jgaTjgoTjgb4s44Gf44GR44GXDQor44G+44Gk44KE44G+LOOBv+OBpOOBpuOCiw0KK+OBvuOBpOOChOOBvizjgojjgZfjgY0NCivjgb7jgajjgbAs44Go44KC44Gy44KNDQor44G/44GG44KJLOOBvuOBleOBjQ0KK+OBv+OBpOOBjizjgZ/jgZHjgZcNCivjgb/jgags44GX44KF44GG44GE44GhDQor44G/44Gu44GG44KJLOOChOOBmeOBsuOBlQ0KK+OBv+OChCzjgYLjgY3jgokNCivjgb/jgoTjgZEs44Gy44Gn44G+44GVDQor44G/44KE44GX44GfLOOBguOBhA0KK+OBv+OChOOBl+OBnyzjgobjgY3jgYoNCivjgb/jgoTjgZ8s44GC44GN44Gy44KNDQor44G/44KE44KC44GoLOOBn+OBpOOChA0KK+OBv+OChOOCguOBqCzjgY/jgavjgZMNCivjgb/jgoTjgoLjgags44G+44GV44Gy44KNDQor44KA44GP44GgLOOBqOOCguOBguOCig0KK+OCgOOBl+OBiyzjgobjgY3jgZMNCivjgoDjgajjgYYs44GC44GN44KJDQor44KA44KJ44GL44G/LOOChuOBiw0KK+OCgOOCieOBi+OBvyzjgYvjgarjgZMNCivjgoDjgonjgYvjgb8s44Gf44Gk44Gy44KNDQor44KA44KJ44GL44G/LOOBsuOBp+OBpOOBkA0KK+OCgOOCieOBn+OBqyzjgoLjgajjgbLjgo0NCivjgoDjgonjgb7jgaQs44G+44GV44GTDQor44KA44KJ44KE44G+LOOCiOOBl+OBguOBjQ0KK+OCguOBoeOBmuOBjSzjgajjgZfjgbLjgZMNCivjgoLjgorjgZDjgaEs44G/44GV44GoDQor44KC44KK44GfLOOBvuOBvw0KK+OCguOCiuOBsOOChOOBlyzjgZPjgYbjgoHjgYQNCivjgoLjgo3jgags44Gy44KN44Gf44GkDQor44KE44GI44GM44GXLOOBsuOBp+OChuOBjQ0KK+OChOOBiuOChOOBvizjgZLjgpPjgZ8NCivjgoTjgYzjgb8s44KI44GX44Gy44KNDQor44KE44GOLOOBkeOBhOOBmA0KK+OChOOBkOOCiSzjgZfjgpPjgZgNCivjgoTjgZnjgZPjgaEs44Gu44G844KLDQor44KE44GZ44GgLOOChuOBhuOBmeOBkQ0KK+OChOOBmeOBoCzjga7jgorjgZMNCivjgoTjgb7jgZDjgaEs44KG44GG44GZ44GRDQor44KE44G+44GQ44GhLOOBl+OCh+OBhuOBl+OCkw0KK+OChOOBvuOBoCzjgo/jgYTjgZHjgpMNCivjgoTjgb7jgaAs44G/44Ga44G7DQor44KE44G+44GgLOOBguOBjeOCiQ0KK+OChOOBvuOBv+OBoSzjgYvjgaTjgobjgY0NCivjgoTjgb7jgoLjgags44GY44KF44KT44GTDQor44KE44G+44KC44GoLOOBsuOCjeOBvw0KK+OChuOBjSzjgb7jgb/jgZMNCivjgobjgb/jgbAs44GR44GE44GE44GhDQor44KG44KJLOOBkeOCk+OBhOOBoQ0KK+OCiOOBk+OBmeOBiyzjga/jgovjga7jgbYNCivjgojjgZPjgZ8s44GC44GEDQor44KI44GT44KE44G+LOOBguOChOOBkw0KK+OCiOOBl+OBiuOBiyzjgarjgYrjgZMNCivjgojjgZfjgYrjgYss44GL44Ga44Gy44KNDQor44KI44GX44GW44KPLOOChuOBhuOBkw0KK+OCiOOBl+OBoCzjgb/jgaTjgosNCivjgojjgZfjgaAs44GC44GL44KKDQor44KI44GX44GgLOOBn+OBi+OBlw0KK+OCiOOBl+OBrizjgYvjgZrjgb8NCivjgojjgZfjgoDjgoks44KG44GG44GTDQor44KK44KF44GGLOOBiOOBhOOBmA0KK+OCjeOBjyzjgYLjgY3jgZMNCivjgZXjgYvjgoLjgags44GR44GE44GTDQor44KP44Gf44Gq44G5LOOCjOOBhOOBqg0KK+OCj+OBn+OBquOBuSzjgobjgbXjgZMNCivjgo/jgZ/jgarjgbks44KG44GGDQor44KP44Gf44Gq44G5LOOBn+OBi+OBkw0KK+OCj+OBn+OBquOBuSzjgoTjgojjgYQNCivjgo/jgonjgbMs44Gy44KN44Gu44KKDQor44Gu44GW44KPLOOChuOBhuOBkw0KK+OBj+OBvCzjgoTjgZnjgZMNCivjgojjgZfjgoLjgags44GTDQor44KE44G+44KC44GoLOOBn+OBi+OBlw0KK+OChOOBvuOCguOBqCzjgZ/jgYvjgZcNCivjgbLjgo3jgZXjgo8s44KK44GIDQor44G/44Gy44KJLOOCiuOCh+OBhuOBuOOBhA0KK+OBiuOBiuOBrizjgbLjgo3jgobjgY0NCivjgYrjgaAs44GL44Ga44Gy44GTDQor44GK44GK44Gw44Gf44GRLOOBv+OBu+OBkw0KK+OBi+OBqeOBiCzjgYLjgYQNCivjgavjgZfjgaAs44Go44KI44Gy44KNDQor44G+44Gk44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBv+OBjuOBnyzjgb7jgaoNCivjgb/jgoTjgoLjgoos44G/44GKDQor44KE44G+44GX44GfLOOBvuOBqeOBiw0KK+OChOOBvuOBoCzjgZfjgpPjgZQNCivjga7jgorjgajjgb8s44Gh44GIDQor44GE44GR44GgLOOChuOBhuOBmeOBkQ0KK+OCguOCiuOBnyzjgorjgofjgYbjgZgNCivjgZ/jgZHjgYbjgaEs44KK44KH44GGDQor44G/44GfLOOCiOOBl+OBruOCig0KK+OBhOOBrOOBhCzjgZHjgpMNCivjgajjgYYs44Gu44KK44KG44GNDQor44G+44GN44GuLOOBvuOCig0KK+OBquOBpOOCgSzjgZfjgpPjgoQNCivjgYrjga7jgafjgoks44GP44Gr44Gy44KNDQor44GK44GK44GfLOOBv+OBjeOBkw0KK+OBhuOCi+OBl+OBleOBkyzjgorjgaTjgZMNCivjgZXjgYvjgY3jgbDjgoks44GX44GS44Gu44KKDQor44GC44GK44GNLOOBiOOBhOOBmeOBkQ0KK+OBguOBiuOBjSzjgarjgYrjgagNCivjgYLjgYrjgY0s44KG44GG44GTDQor44GC44GL44GM44KPLOOCguOBqOOBkw0KK+OBguOBi+OBpOOBiyzjgYvjgZrjgbLjgagNCivjgYLjgYvjgbvjgoos44GR44GE44GY44KN44GGDQor44GC44GN44KE44G+LOOBi+OBmuOBsuOCjQ0KK+OBguOBleOBhCzjgabjgovjgb8NCivjgYLjgZXjgYQs44GX44KT44G644GEDQor44GC44GV44GK44GLLOOBkeOCk+OBmA0KK+OBguOBleOBrOOBvizjgYLjgoQNCivjgYLjgZ0s44Gq44GK44G144G/DQor44GC44Gf44GRLOOBqOOBl+OBjQ0KK+OBguOBoOOBoSzjgZfjgpPjgZQNCivjgYLjgbks44Gf44GL44G/44GhDQor44GC44G5LOOBruOBtuOChOOBmQ0KK+OBguOBuSzjgobjgY3jgYgNCivjgYLjgonjgYQs44Gk44KI44GXDQor44GC44KK44G+LOOBqOOCguOBkw0KK+OBhOOBhOOBmuOBiyzjgaDjgYTjgZnjgZENCivjgYTjgYzjgonjgZcs44KG44Gf44GLDQor44GE44GR44GgLOOBk+OBmuOBiA0KK+OBhOOBkeOBoCzjgZHjgpPjgZ/jgo3jgYYNCivjgYTjgZHjga/jgZ8s44Gy44KN44GNDQor44GE44GW44KPLOOBoeOBr+OCiw0KK+OBhOOBl+OBhCzjgoTjgZnjgZcNCivjgYTjgZfjgYvjgo8s44KK44KH44GG44GTDQor44GE44GX44GQ44KNLOOBguOBjeOBsuOCjQ0KK+OBhOOBl+OBoCzjgZPjgYbjgZ/jgo3jgYYNCivjgYTjgZfjgaAs44Gf44Gk44GKDQor44GE44GX44Gw44GXLOOBqOOBl+OChuOBjQ0KK+OBhOOBl+OBr+OCiSzjgZ/jgYvjgbLjgo0NCivjgYTjgZfjgoLjgags44G+44KG44GTDQor44GE44Gd44Gv44GfLOOBguOBleOBkw0KK+OBhOOBn+OBvyzjgZ/jgYvjgYLjgY0NCivjgYTjgaHjgYvjgo8s44Gq44KL44Gf44GLDQor44GE44Gj44GX44GNLOOBn+OBpOOChA0KK+OBhOOBpyzjgarjgovjgb8NCivjgYTjgacs44GT44GG44GYDQor44GE44Go44GGLOOBvuOChuOBvw0KK+OBhOOBqOOBhizjgZjjgoXjgpPjgbrjgYQNCivjgYTjgajjgYYs44G+44GV44GKDQor44GE44Go44GGLOOBquOBpOOBkw0KK+OBhOOBqOOBhizjgb7jgYQNCivjgYTjga7jgYbjgYgs44G+44GT44GoDQor44GE44Gu44GG44GILOOCiOOBhuOBmeOBkQ0KK+OBhOOBruOBhuOBiCzjgarjgYrjgY0NCivjgYTjga7jgYbjgYgs44GL44Gk44GNDQor44GE44Gu44GP44GhLOOBruOCiuOChuOBjQ0KK+OBhOOBvuOBhCzjgorjgbsNCivjgYTjgb7jgY3jgoXjgYbjgozjgYQs44KM44GE44GTDQor44GE44G+44Gc44GNLOOBj+OBv+OBkw0KK+OBhOOBvuOCgOOCiSzjgb7jgZnjgb8NCivjgYTjgb7jgoDjgoks44GR44KT44GE44Gh44KNDQor44GE44KP44GELOOBleOBqOOCiw0KK+OBhOOCj+OBhCzjgZ/jgYvjgZcNCivjgYTjgo/jgZXjgY0s44Go44KC44GTDQor44GE44KP44GbLOOBmeOBmeOCgA0KK+OBhOOCj+OBnyzjgZPjgYbjgZgNCivjgYTjgo/jgacs44GR44KT44Gf44KN44GGDQor44GE44KP44KA44KJLOOBvuOBleOBsuOBqA0KK+OBhuOBiOOBoCzjgbXjgb/jgYoNCivjgYbjgYjjga4s44G+44GV44G144G/DQor44GG44GI44GuLOOBl+OCk+OBmA0KK+OBhuOBi+OBhCzjgbLjgo3jgY0NCivjgYbjgZXjgb8s44G+44KK44GTDQor44GG44Gh44GG44G/LOOCiuOBiOOBkw0KK+OBhuOBoeOChOOBvizjgb7jgZXjgbXjgb8NCivjgYbjgonjga/jgoks44Gf44GE44GYDQor44GI44GOLOOBn+OBi+OBsuOBkw0KK+OBiOOBmOOCiizjgbLjgo3jgZcNCivjgYjjga7jgY3jgaks44KI44KK44GTDQor44GI44KC44KKLOOBhOOBpOOBjQ0KK+OBiOOCk+OBqSzjga/jgZjjgoENCivjgYrjgYrjgYQs44Gq44Gk44GTDQor44GK44GK44GE44GRLOOBqOOCguOBi+OBmg0KK+OBiuOBteOCiSzjgaDjgYTjgZnjgZENCivjgYrjgYrjgYvjgo8s44KI44GX44GTDQor44GK44GN44GfLOOChuOBjeOBruOCig0KK+OBiuOBiuOBleOCjyzjgb7jgZXjgobjgY0NCivjgYrjgYrjgZ8s44Go44KC44GTDQor44GK44GK44GfLOOBguOBjeOBquOBig0KK+OBiuOBiuOBnyzjgojjgYbjgbjjgYQNCivjgYrjgYrjgZ/jgass44Gf44GL44GC44GNDQor44GK44GK44Gf44GrLOOChuOBjeOBsuOBpw0KK+OBiuOBiuOBpOOBiyzjgoLjgajjgYQNCivjgYrjgYrjgaTjgYss44KI44GX44Gu44KKDQor44GK44GK44Gk44GLLOOBoOOBhOOBmOOCjeOBhg0KK+OBiuOBiuOBpOOBjSzjgZXjgajjgosNCivjgYrjgaks44Gf44GP44G/DQor44GK44Go44KT44G5LOOBn+OBpOOChA0KK+OBiuOBrizjgb7jgZXjgbLjgZMNCivjgYrjga4s44Gy44KN44GXDQor44GK44GK44Gv44GXLOOBn+OBpOOChA0KK+OBiuOBiuOBr+OBnyzjgYLjgY3jgokNCivjgYrjgYrjgb/jgaEs44G/44G7DQor44GK44GK44KE44G+LOOBv+OBjeOBsuOBqA0KK+OBiuOBi+OBluOBjSzjgZ/jgaTjgbXjgb8NCivjgYrjgYvjgZjjgb4s44G/44Gq44GTDQor44GK44GL44GgLOOBi+OBmuOBsuOCjQ0KK+OBiuOBi+OBoCzjgZ/jgY/jgb4NCivjgYrjgYvjgoLjgags44Gf44GR44GXDQor44GK44GL44KC44GoLOOBoOOBhOOBmeOBkQ0KK+OBiuOBjOOCjyzjgZjjgoXjgpMNCivjgYrjgY7jgZ8s44Go44GX44G144G/DQor44GK44GP44GP44G8LOOBn+OBi+OBlw0KK+OBiuOBoeOBguOBhCzjgajjgoLjga7jgooNCivjgYrjgb7jgZ8s44GR44KTDQor44GL44GVLOOChuOBjeOBkw0KK+OBi+OBl+OCjyzjgaDjgYTjgZnjgZENCivjgYvjgajjgYYs44GT44GG44G444GEDQor44GL44Go44GGLOOBn+OBoOOBlw0KK+OBi+OBquOBhCzjgZHjgpPjgYTjgaENCivjgYvjgarjgoTjgb4s44Gg44GE44GZ44GRDQor44GL44Gt44GTLOOBteOBv+OChA0KK+OBi+OBreOBpOOBjSzjgZjjgoXjgpPjgoQNCivjgYvjga3jgb7jgoss44GC44Ga44GVDQor44GL44G544GG44GhLOOBquOBiuOBqA0KK+OBi+OBv+OCgOOCiSzjgYvjgYrjgooNCivjgYvjgb/jgoQs44GV44Gh44GTDQor44GL44G/44KELOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBi+OCj+OBhCzjgobjgb/jgZMNCivjgYvjgo/jgYQs44Gy44KN44GXDQor44GL44KP44GL44G/LOOCieOBhA0KK+OBi+OCj+OBleOBjSzjgoTjgZnjgbLjgo0NCivjgYvjgo/jgZXjgY0s44Gm44Gk44GC44GNDQor44GL44KP44GV44GNLOOBsuOCjeOBjQ0KK+OBi+OCj+OBl+OBvizjgZ/jgYvjgYoNCivjgYvjgo/jgZ8s44GR44GE44GE44GhDQor44GL44KP44G+44GfLOOBk+OBhuOBnw0KK+OBi+OCj+OCguOBqCzjgZHjgYTjgZnjgZENCivjgY3jgZfjgoLjgags44GC44GN44KI44GXDQor44GN44GX44KNLOOBkeOBhOOBnw0KK+OBjeOBoCzjgYjjgYTjgZnjgZENCivjgY3jgZ/jgYrjgYss44GY44KF44KTDQor44GN44Gf44GuLOOBvuOBleOBsuOBkw0KK+OBjeOBn+OBr+OCiSzjgZ3jgYbjgbjjgYQNCivjgY3jgZ/jgoDjgoks44Gf44KN44GGDQor44GN44Gf44KC44GoLOOBv+OBuw0KK+OBjeOCgOOCiSzjgZ/jgZHjgbLjgo0NCivjgY3jgoDjgoks44G144G/44GoDQor44GN44KC44GoLOOBkeOBhOOBkw0KK+OBjeOCkyzjgojjgZfjgobjgY0NCivjgY/jgZfjgoTjgb4s44GC44GN44KIDQor44GP44Gp44GGLOOBqOOCguOBruOCig0KK+OBj+OBqeOBhizjgZfjgoXjgpPjgZnjgZENCivjgY/jgoHjgYbjgaEs44GR44KT44GYDQor44GP44KJ44GX44GSLOOBk+OBhuOBmA0KK+OBj+OCieOBoSzjgYvjgZrjgbLjgo0NCivjgY/jgonjgarjgYss44Gf44GR44GXDQor44GP44KK44Gv44KJLOOCiOOBhuOBmeOBkQ0KK+OBj+OCjeOBjSzjgb7jgZXjgY0NCivjgY/jgo3jgZXjgYss44KI44GG44GTDQor44GP44KP44Gv44KJLOOBl+OBrg0KK+OChuOBiCzjgYvjgaTjga7jgooNCivjgZPjgYTjgZrjgb8s44GX44KT44KEDQor44GT44GG44GY44G+LOOCiOOBl+OBsuOBkw0KK+OBk+OBhuOBoCzjgYvjgaTjgobjgY0NCivjgZPjgpPjga4s44GR44KT44GE44GhDQor44GT44GMLOOBl+OCh+OBhuOBhOOBoQ0KK+OBk+OBjCzjgZ/jgY/jgZgNCivjgZPjgY/jgbbjgpMs44Gh44GL44GTDQor44GT44GV44GLLOOBguOBjeOBkw0KK+OBk+OBo+OBpizjgb7jgYTjgZMNCivjga/jgZ/jgarjgYss44Gf44GL44GXDQor44GT44Gw44KE44GXLOOChuOBiw0KK+OBk+OBsOOChOOBlyzjgbLjgafjgY0NCivjgZPjgbDjgoTjgZcs44GC44KT44GqDQor44GT44Gw44KE44GXLOOBruOCiuOBguOBjQ0KK+OBk+OBsOOChOOBlyzjgY3jgb/jgbLjgZMNCivjgZPjgb7jgaQs44GX44KT44GZ44GRDQor44GT44G+44Gk44Gw44KJLOOBteOBvw0KK+OBk+OCgeOBoOOBqyzjgabjgaTjgo3jgYYNCivjgZXjgYTjgY0s44GC44Gk44GXDQor44GV44GE44Go44GGLOOBkeOCk+OBhOOBoQ0KK+OBleOBi+OBhCzjgbLjgo3jgYLjgY0NCivjgZXjgYvjgZDjgaEs44Gf44KN44GGDQor44GV44GP44G+LOOChuOBjeOBkw0KK+OBleOBkyzjgb7jgoQNCivjgZXjgZXjgYQs44Gq44GK44KEDQor44GV44GV44GKLOOBi+OBmuOBjeOBvw0KK+OBleOBleOBjSzjga/jgarjgZMNCivjgZXjgZXjgY0s44G+44GV44GKDQor44GV44Go44GGLOOBi+OBpOOBsuOBkw0KK+OBleOBqOOBhizjgYvjgZrjgobjgY0NCivjgZXjgajjgYYs44Gy44KN44Gy44GoDQor44GV44Go44GGLOOBvuOBleOBjQ0KK+OBleOBqOOBhizjgb/jgY0NCivjgZXjgajjgYYs44G+44GV44GTDQor44GV44Go44GGLOOBv+OBjQ0KK+OBleOBqOOBhizjga7jgbbjgobjgY0NCivjgZXjgajjgYYs44KK44KH44GG44GV44GPDQor44GV44GuLOOBvuOBleOBkw0KK+OBleOBrizjgarjgY7jgZUNCivjgZXjga/jgoks44Gf44GL44G144G/DQor44GV44KL44KE44G+LOOBn+OBi+OChuOBjQ0KK+OBleOCj+OBkOOBoSzjgYLjgoQNCivjgZfjgYQs44GI44G/DQor44GX44GK44GW44GNLOOBsuOBp+OBguOBjQ0KK+OBl+OBiuOBoCzjgYjjgYTjgZgNCivjgZfjgY0s44G+44GV44KLDQor44GX44GgLOOCiOOBl+OBsuOCjQ0KK+OBl+OBruOBr+OCiSzjgbLjgajjgZcNCivjgZfjga7jga/jgoks44Gy44GV44GXDQor44GX44G244GV44KPLOOCiOOBhuOBmeOBkQ0KK+OBl+OBvuOBoCzjgorjgoXjgYbjgZ8NCivjgZfjgb7jgaAs44G/44G744GTDQor44GX44G+44GgLOOBkeOCk+OBn+OCjeOBhg0KK+OBl+OBv+OBmizjgZ/jgaTjgYoNCivjgZfjgb/jgZos44KP44Gf44KLDQor44GX44G/44GaLOOBqOOCguOBkw0KK+OBl+OBv+OBmizjgZXjgajjgZMNCivjgZfjgb/jgZos44GY44KF44KT44GE44GhDQor44GX44G/44GaLOOBmOOCjeOBhg0KK+OBl+OCgizjgY3jgazjgYgNCivjgZfjgoLjgZbjgY0s44Gf44Gk44Gy44GTDQor44GX44KC44GY44G+LOOBiOOBhOOBhOOBoeOCjeOBhg0KK+OBl+OCguOBpCzjgZ/jgYvjgbLjgo0NCivjgZfjgoLjga4s44GC44GN44Gy44GTDQor44GX44KC44KELOOCiOOCiuOBkw0KK+OBl+OCieOBmSzjgZfjgpPjgZQNCivjgZnjgY7jgYbjgoks44G+44GV44Gu44G2DQor44GZ44GO44GG44KJLOOBqOOBl+OCjeOBhg0KK+OBmeOBmuOBjSzjgajjgoLjgb8NCivjgZnjgZrjgY0s44GI44KK44GTDQor44GZ44Ga44GNLOOChuOBhuOBmeOBkQ0KK+OBmeOBmuOBjSzjgojjgZfjga7jgooNCivjgZnjgZrjgY0s44KI44GX44GNDQor44GZ44GoLOOBleOBqOOBlw0KK+OBmeOBquOBoCzjgZXjgajjgZcNCivjgZnjgoTjgb4s44Gg44GE44GZ44GRDQor44Gb44GKLOOBi+OBiuOCig0KK+OBm+OBjSzjgZPjgYbjgbjjgYQNCivjgZvjgY3jga0s44G/44Gk44KLDQor44Gb44GN44GwLOOBvuOBjQ0KK+OBm+OBqCzjgZHjgYTjgZgNCivjgZvjgpPjgZTjgY8s44Gu44KK44Gy44GVDQor44Gb44KT44GgLOOChuOBhuOBkw0KK+OBm+OCk+OBsCzjgb/jgZrjgbsNCivjgZ3jgoHjgoQs44GR44GE44GUDQor44Gf44GL44GOLOOBsuOBp+OBjQ0KK+OBn+OBi+OBjizjgYLjgYQNCivjgZ/jgYvjgY4s44Gu44KK44KG44GNDQor44Gf44GL44GbLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBn+OBi+OBoCzjgojjgYbjgZnjgZENCivjgZ/jgYvjga/jgZcs44KE44GZ44KG44GNDQor44Gf44GL44Gv44GXLOOCiOOBl+OBruOCig0KK+OBn+OBi+OBr+OBlyzjgZ/jgYvjga7jgooNCivjgZ/jgYvjga/jgZcs44G+44GV44GoDQor44Gf44GL44Gv44GXLOOBv+OBiw0KK+OBn+OBi+OBr+OBlyzjgoTjgZnjgbLjgo0NCivjgZ/jgYvjgb/jgZbjgo8s44GT44Ga44GIDQor44Gf44GN44GW44KPLOOBkeOBhOOBnuOBhg0KK+OBn+OBkOOBoSzjgY3jgofjgYbjgZMNCivjgZ/jgZHjgZfjgZ8s44GR44KTDQor44Gf44GR44GgLOOBi+OBmuOBvg0KK+OBn+OBkeOBoCzjgobjgYbjgZgNCivjgZ/jgZHjgaAs44GT44GG44GYDQor44Gf44GR44Gq44GLLOOBn+OBi+OBsuOCjQ0KK+OBn+OBkeOBr+OCiSzjgb/jgY3jgZMNCivjgZ/jgZHjgoTjgb4s44G/44Gk44KLDQor44Gf44GYLOOBv+OBiw0KK+OBn+OBoCzjgojjgZfjgZ/jgYsNCivjgaDjgaYs44GP44G/44GTDQor44Gf44Gq44GLLOOBoeOBi+OBteOBvw0KK+OBn+OBquOBiyzjga7jgorjgbLjgZMNCivjgZ/jgarjgYss44Gf44GP44Gq44GMDQor44Gf44Gq44GLLOOBn+OBi+OChuOBjQ0KK+OBn+OBquOBiyzjgZ/jgYvjgobjgY0NCivjgZ/jgavjgZDjgaEs44Gf44GL44Gu44KKDQor44Gf44Gr44GT44GXLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBq+OBrizjgZ/jgYvjgYLjgY0NCivjgZ/jgbbjgY0s44Gf44KN44GGDQor44Gf44G244GhLOOCiOOBl+OBsuOBqA0KK+OBn+OBvuOBiuOBjSzjgb7jgZXjgojjgZcNCivjgZ/jgb7jgYzjgo8s44Go44KC44GTDQor44Gf44KA44KJLOOBkeOBhOOBkw0KK+OBn+OCgeOBruOCiizjgojjgYbjgbjjgYQNCivjgZ/jgpPjga4s44GI44KKDQor44Gf44KT44G8LOOBguOBjeOBsuOBkw0KK+OBoeOBoCzjgYvjgaTjgbLjgZUNCivjgaHjga3jgpMs44KG44GNDQor44Gk44GM44Gt44GW44KPLOOBruOBtuOChuOBjQ0KK+OBpOOBi+OBr+OCiSzjgb/jgZrjgbsNCivjgaTjgaHjgoQs44G+44KG44G/DQor44Gk44Gh44KELOOCiOOBhuOBmeOBkQ0KK+OBpOOBoeOChCzjgoTjgZnjgobjgY0NCivjgaTjgZrjgY0s44G+44G/DQor44Gk44Ga44KJ44Gv44KJLOOBleOBoeOBkw0KK+OBpOOBreOCiOOBlyzjgabjgovjga7jgbYNCivjgaTjgbzjgYbjgaEs44GC44GN44G144G/DQor44Gk44KL44GX44G+LOOCiuOBiA0KK+OBp+OBkOOBoSzjgZ/jgY/jgoQNCivjgabjgZrjgYss44G/44Gk44Gu44G2DQor44Gm44KJ44GL44KPLOOBn+OBi+OBlw0KK+OBpuOCieOBkOOBoSzjgoDjga3jga7jgooNCivjgabjgonjgZfjgb4s44GR44KT44GYDQor44Gm44KJ44GgLOOCiOOBl+OBjQ0KK+OBqOOBjOOBlyzjgaDjgYTjgZnjgZENCivjgajjgY/jgoDjgoks44GT44GG44GE44GhDQor44Go44GW44KPLOOChuOBhuOBkw0KK+OBqOOBs+OBiuOBiyzjgZ/jgZHjgZcNCivjgajjgb7jgorjga4s44GY44KF44KT44GTDQor44Go44G/44GELOOBmOOCheOCk+OBkw0KK+OBqOOBv+OBluOCjyzjgYLjgoQNCivjgajjgb/jgZ8s44Gf44GE44GhDQor44Go44G/44GfLOOChuOBhuOBnw0KK+OBqOOBv+OBquOBjCzjgojjgYbjgZMNCivjgajjgojjgaAs44Gd44GG44Gf44KN44GGDQor44Go44KJ44Gf44GrLOOBvuOBleOBkw0KK+OBquOBhOOBqOOBhizjgZ/jgYvjgYoNCivjgarjgYzjgYQs44Gh44GIDQor44Gq44GM44GELOOBmOOCheOCk+OBkw0KK+OBquOBi+OBhOOBkSzjgZfjgpPjgZQNCivjgarjgYvjgYbjgYgs44Gg44GE44GZ44GRDQor44Gq44GM44GKLOOCiuOCh+OBhuOBkw0KK+OBquOBi+OBk+OBmCzjgZXjgoTjgYsNCivjgarjgYzjgZXjgYss44GT44GG44GYDQor44Gq44GL44GY44G+LOOChuOBjeOBkw0KK+OBquOBi+OBmOOBvizjgb7jgooNCivjgarjgYzjgZ8s44GL44Gk44KEDQor44Gq44GM44GfLOOBguOBpOOBsuOBlQ0KK+OBquOBjOOBnyzjgarjgYrjgY0NCivjgarjgYvjgaTjgoss44Gy44KN44GC44GNDQor44Gq44GM44GuLOOChOOBmeOBig0KK+OBquOBi+OCgOOCiSzjgZXjgajjgosNCivjgarjgYvjgoDjgoks44Gy44KN44GXDQor44Gq44GL44KA44KJLOOBj+OBv+OBkw0KK+OBquOBi+OCgOOCiSzjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44KG44GLDQor44Gq44GL44KA44KJLOOBvuOBleOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgYjjgYTjgZgNCivjgarjgaTjga/jgoks44GV44KE44GLDQor44Gq44KK44GV44GgLOOBl+OCk+OBmeOBkQ0KK+OBquOCk+OBtizjga7jgbbjgobjgY0NCivjgavjgYvjgYTjganjgYYs44Go44KC44KEDQor44Gr44GXLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBq+OBlyzjgarjgYrjgobjgY0NCivjgavjgZfjgYos44Go44GX44KEDQor44Gr44GX44GL44KPLOOBkeOCk+OBmA0KK+OBq+OBl+OBj+OCiSzjgZXjgajjgZMNCivjgavjgZfjgZbjgo8s44GE44GV44KADQor44Gr44GX44GW44KPLOOBiOOCiuOBqg0KK+OBq+OBl+OBoCzjgZfjgpPjgYTjgaENCivjgavjgZfjgaAs44KK44KH44GG44G444GE44GfDQor44Gr44GX44KE44G+LOOBsuOBleOBruOCig0KK+OBrOOBruOChCzjgZfjgZLjgYoNCivjgazjgb7jgZbjgY0s44KG44GN44GKDQor44Gs44G+44GfLOOBn+OBkeOBlw0KK+OBruOBqeOBvyzjgorjgaoNCivjga7jgb8s44G+44GV44GNDQor44Gu44GQ44GhLOOBi+OBmuOCiOOBlw0KK+OBruOBmOOBvizjgabjgovjgYLjgY0NCivjga7jgZjjgoos44Go44GX44KG44GNDQor44Gu44GgLOOBv+OBjeOBkw0KK+OBruOBoCzjgobjgY3jgZMNCivjga7jgoDjgoks44GX44KT44G444GEDQor44Gu44KA44KJLOOBi+OBmuOBiA0KK+OBruOCgOOCiSzjgYvjgZrjgYoNCivjga/jgZPjgZfjgb4s44KP44Gf44KLDQor44Gv44GX44KC44GoLOOCiuOCh+OBhg0KK+OBr+OBl+OCguOBqCzjgZHjgYQNCivjga/jgZvjgYzjgo8s44GR44KT44Gf44KN44GGDQor44Gv44Gf44GR44KE44G+LOOChuOBteOBkw0KK+OBr+OBo+OBnyzjgobjgbINCivjga/jgaPjgajjgoos44GV44Go44G/DQor44Gv44Gq44GELOOBn+OBkeOBr+OCiw0KK+OBr+OBquOBoCzjgZHjgYTjgZnjgZENCivjga/jgb7jgZDjgaEs44GR44KTDQor44Gv44G+44GgLOOBvuOBquOBvw0KK+OBr+OBvuOBoCzjgZHjgYTjgZMNCivjga/jgb7jga4s44Gf44GL44KG44GNDQor44Gv44KE44GL44KPLOOChuOBjQ0KK+OBr+OChOOBlyzjgabjgaTjgYoNCivjga/jgoTjgZcs44Go44KC44Gq44GMDQor44Gv44KE44GXLOOBkeOCk+OBn+OCjeOBhg0KK+OBr+OCiSzjgaHjgYvjgZMNCivjga/jgoks44KE44GZ44GC44GNDQor44Gv44KJ44GgLOOBv+OBiA0KK+OBsuOBiOOBi+OBnyzjgZXjgajjgZMNCivjgbLjgYzjgZUs44GC44Gk44GXDQor44Gy44GM44G/LOOBm+OBhOOBmA0KK+OBsuOBjeOBrizjgabjgaTjgZgNCivjgbLjgaAs44Gf44GL44GXDQor44Gy44Gg44GLLOOBl+OCkw0KK+OBsuOBp+OBl+OBvizjgb/jgY3jgZMNCivjgZXjgYvjgYQs44GY44KF44KT44KEDQor44Gy44KJ44GELOOBr+OChOOBqA0KK+OBsuOCieOBhOOCjyzjgYjjgaTjgZMNCivjgbLjgonjgZ8s44Gy44Gn44GNDQor44Gy44KJ44Gw44KE44GXLOOBquOBiuOChuOBjQ0KK+OBsuOCjeOBmyzjgYLjgoTjgZMNCivjgbXjgYvjgYos44G/44KG44GNDQor44G144GP44GELOOBsuOBp+OBsuOBkw0KK+OBteOBj+OBluOBjSzjgb/jgozjgYQNCivjgbXjgY/jgaAs44KI44GG44G444GEDQor44G144GP44GgLOOChOOBmeOBsuOCjQ0KK+OBteOBj+OBoCzjgb7jgZXjgosNCivjgbXjgY/jgaAs44GY44KF44KT44GE44GhDQor44G144GP44Gv44KJLOOChuOBjeOBkw0KK+OBteOBj+OCgOOCjSzjgbLjgo3jgbXjgb8NCivjgbXjgZjjgYbjgoks44GC44KEDQor44G144GY44GK44GLLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBteOBmOOBiuOBiyzjgb7jgoQNCivjgbXjgZjjgZ8s44GX44GS44KLDQor44G144GY44KC44GoLOOChuOBi+OCig0KK+OBteOBmOOCguOBqCzjgYjjgorjgZMNCivjgbXjgZjjgo/jgoks44GC44GN44Gy44KNDQor44G144Gf44KA44KMLOOBhOOBleOBig0KK+OBteOCi+OBleOCjyzjgYTjgaHjgo3jgYYNCivjgbXjgovjgZ8s44Gy44GV44GKDQor44G144KL44KELOOBsuOBp+OBig0KK+OBu+OBk+OCiSzjgb7jgaTjgYoNCivjgbvjgZfjga4s44GZ44G/44GKDQor44G744GX44GuLOOBn+OCguOBpA0KK+OBu+OBneOBrizjgbLjgo3jgb/jgaENCivjgbvjgoos44Go44GXDQor44G744KK44GG44GhLOOBiOOBpOOBig0KK+OBu+OCiuOBiuOBiyzjgoTjgZnjgYoNCivjgbvjgorjgZDjgaEs44GY44KF44KT44GE44GhDQor44G744KT44G+LOOBhOOBleOBig0KK+OBvuOBiOOBi+OCjyzjgajjgoLjgobjgY0NCivjgb7jgYjjgZjjgb4s44GT44GG44GYDQor44G+44GI44GgLOOBqOOBl+OBsuOCjQ0KK+OBvuOBiOOBr+OCiSzjgajjgZfjgbLjgZMNCivjgb7jgY0s44GX44GS44Gu44KKDQor44G+44GN44GuLOOBn+OBkeOBig0KK+OBvuOBmeOBhCzjgbLjgo3jgZcNCivjgb7jgZnjgaAs44GN44KI44GXDQor44G+44GZ44GgLOOBvuOBleOBv+OBpA0KK+OBvuOBpOOBhCzjgYvjgpPjgZgNCivjgY/jgb7jgYzjgYQs44GL44Gk44Gy44GTDQor44GL44Gt44GTLOOCiuOCh+OBhuOBmA0KK+OBk+OBv+OChCzjga7jgbzjgosNCivjgZPjgYzjgYTjgags44G/44Gh44GTDQor44GL44KT44Gw44KE44GXLOOBpuOCi+OBvuOBlQ0KK+OBjeOBruOBl+OBnyzjga/jgovjgbLjgZMNCivjgY3jgY/jgaEs44G/44Gu44KLDQor44GT44G+44GwLOOChuOBn+OBiw0KK+OBk+OBj+OBtizjgb/jgaTjgZMNCivjgZPjgbDjgoTjgZcs44Gy44KN44GXDQor44GT44Gw44KE44GXLOOBpuOCi+OBig0KK+OBjeOBpOOBn+OBiyzjgaHjgoXjgYbjgZHjgpMNCivjgb7jgaTjgYos44Gf44GL44KG44GNDQor44GL44KP44GELOOBvuOBquOBtg0KK+OBj+OCiuOBr+OCiSzjgajjgYrjgosNCivjgYvjganjga4s44Gy44KN44KI44GXDQor44GL44G/44GP44G8LOOBkeOCk+OBmA0KK+OBi+OCj+OBkOOBoSzjgZ/jgYvjgZcNCivjgYvjgb7jgZ8s44G+44GV44KC44GoDQor44GL44KT44GgLOOBi+OBmuOBvw0KK+OBi+OCk+OBoCzjgb/jgaTjgYoNCivjgZPjgZfjgoDjgoks44Go44GX44KG44GNDQor44G+44Gk44GKLOOBjeOCiOOBlw0KK+OBj+OBleOBjSzjgZjjgoXjgpPjgZgNCivjgYvjgoLjga/jgoks44G+44GV44G144G/DQor44GL44GV44GY44G+LOOBqOOBl+OBvuOBlQ0KK+OBvuOBpOOBjSzjgojjgZfjgYvjgZoNCivjgYvjgb/jgY/jgoks44Gk44Gt44GKDQor44GP44KK44Gv44KJLOOBruOBtuOBguOBjQ0KK+OBquOBi+OBoSzjgY3jgojjgZcNCivjgYvjgYzjgo8s44GX44KT44GE44GhDQor44GT44Gw44KE44GXLOOBm+OBhOOBmA0KK+OBi+OCk+OBrizjgajjgZfjgYoNCivjgb7jgaTjgZfjgZ8s44G144G/44GKDQor44GL44GX44KP44GgLOOBiuOBleOCgA0KK+OBk+OCk+OBrizjgYvjgZrjgYoNCivjgZPjgZnjgY4s44KI44GX44G/DQor44GT44KC44KKLOOBqOOBl+OCjeOBhg0KK+OBi+OCj+OBrizjgobjgY3jgYoNCivjgY3jgZ/jgoDjgoks44Gf44GR44Gy44GTDQor44GL44GY44G+LOOBpuOBpOOChA0KK+OBi+OBqOOBhizjgbLjgafjgYoNCivjgZPjgoTjga4s44KG44GN44GKDQor44GL44Gk44G+44GfLOOBqOOBl+OBi+OBmg0KK+OBj+OCj+OBoCzjgZHjgYTjgZgNCivjgZPjgZ/jgass44KE44G+44GoDQor44GL44GY44GG44GhLOOBruOBtuOBkw0KK+OBk+OCk+OBqSzjgZ/jgYvjgZcNCivjgZPjgpPjgaks44KI44GX44GL44GaDQor44G+44Gk44Gq44G/LOOBl+OCk+OChA0KK+OBi+OBjOOChOOBvizjgb7jgZXjga/jgosNCivjgYvjga3jgZMs44KE44GZ44Gy44GTDQor44GT44KE44G+LOOChOOBmeOBr+OCiw0KK+OBjeOBpOOBi+OCjyzjgZPjgYbjgZvjgYQNCivjgYvjgZfjgY/jgoks44GL44KT44GYDQor44GP44KN44GNLOOCiOOBl+OChuOBjQ0KK+OBk+OBhOOBmuOBvyzjgZfjgoXjgYbjgbjjgYQNCivjgY/jgZws44G/44GN44GKDQor44GL44KP44GL44G/LOOBkeOBhOOBkw0KK+OBi+OBvyzjgZXjgaHjgYoNCivjgY3jgoDjgoks44Go44GK44KLDQor44G+44Gk44GuLOOBi+OBmuOBsuOBlQ0KK+OBjeOBj+OBnyzjgYrjgZXjgoANCivjgY/jgb7jgaAs44G+44GV44GC44GNDQor44GP44Gr44Gv44KJLOOBl+OCheOCk+OBhOOBoQ0KK+OBk+OBmOOBvizjgobjgZ/jgYsNCivjgY/jgorjga/jgoks44G+44GV44Gu44KKDQor44KI44Gt44GP44KJLOOCiOOBl+OBn+OBvw0KK+OBk+OBsOOChOOBlyzjgaTjga3jgYoNCivjgZPjgbDjgoTjgZcs44Gm44Gk44GKDQor44GT44GY44KH44GGLOOBleOBquOBiA0KK+OBjeOCgOOCiSzjgZjjgoXjgpPjgYTjgaENCivjgZPjgbDjgoTjgZcs44G+44GV44GC44GNDQor44GT44KT44GpLOOBruOBtuOBi+OBmg0KK+OBi+OCj+OBhCzjgajjgZfjgYvjgaQNCivjgY/jgb7jga/jgoks44GR44KT44GYDQor44GN44GbLOOBv+OBoeOChOOBmQ0KK+OBi+OBl+OBj+OBvizjgZHjgpPjgZ7jgYYNCivjgYvjgZMs44GY44KF44KT44GE44GhDQor44GE44GX44GM44GELOOCiOOBl+OBguOBjQ0KK+OBi+OBv+OBkOOBoSzjgZ/jgaDjgZcNCivjgY/jgoLjgaAs44Go44GX44GKDQor44GT44G+44GkLOOBl+OCh+OBhuOBhOOBoQ0KK+OBi+OBreOBoCzjgb/jgaTjgYoNCivjgY3jgY/jgaEs44KI44GX44Gy44GVDQor44GT44Gf44GrLOOCiOOBl+OChuOBjQ0KK+OBk+OBsOOChOOBlyzjgoTjgZnjgagNCivjgYvjgo/jgZDjgaEs44KI44GX44GKDQor44GL44Gt44GTLOOBsuOCjeOBguOBjQ0KK+OBi+OCgizjgojjgZfjgYLjgY0NCivjgYvjgo/jgoDjgoks44GI44GE44GYDQor44GP44G+44GuLOOBvuOBleOChuOBjQ0KK+OBk+OBsOOChOOBlyzjgojjgZfjgYgNCivjgY3jgoDjgoks44GL44Ga44Gy44GVDQor44GN44GX44KC44GoLOOBsuOCjeOBsuOBlQ0KK+OBjeOCgOOCiSzjgY3jgZfjgYoNCivjgYvjgb/jgZDjgaEs44Gm44Gk44KEDQor44GN44KA44KJLOOBvuOBleOBr+OBoQ0KK+OBk+OBsOOChOOBlyzjgZfjgoXjgpPjgZgNCivjgYvjganjgY/jgoks44GL44Gq44GTDQor44GN44Gf44KA44KJLOOBsuOBp+OCiA0KK+OBi+OBpOOBjSzjgbLjgZXjgZcNCivjgYvjgpPjgZbjgY0s44G+44GV44Gu44G2DQor44GL44Gf44GO44KKLOOBhOOBj+OBvw0KK+OBk+OBsOOChOOBlyzjga7jgbbjgZMNCivjgZPjgb7jgaTjgZbjgY0s44GT44GG44Ge44GGDQor44GN44GfLOOBsuOCjeOBruOCig0KK+OBi+OBpOOBr+OCiSzjgZfjgoXjgYYNCivjgZPjgZDjgows44GC44GN44GIDQor44GT44GY44G+LOOBguOBpOOBlw0KK+OBk+OCgeOBoCzjgbLjgZXjgZcNCivjgZPjgavjgZcs44GR44KT44GE44GhDQor44GP44KP44Gv44KJLOOChOOBmeOBvuOBlQ0KK+OBk+OChOOBvizjgbLjgafjgYLjgY0NCivjgb7jgaTjgoLjgags44Gu44KK44KG44GNDQor44GL44GY44KC44GoLOOCiOOBl+OBguOBjQ0KK+OBj+OBvuOBluOCjyzjgYvjgaTjgb8NCivjgY3jgoDjgoks44Go44GX44GKDQor44GT44Gw44GX44GM44KPLOOBsuOBqOOBlw0KK+OBi+OBv+OChCzjgobjgYYNCivjgb7jgaTjgoLjgags44GX44KH44GG44GYDQor44GT44Gv44GXLOOBiOOBhOOBnuOBhg0KK+OBk+OBoOOBvizjgZzjgpPjgYTjgaENCivjgYvjgo/jgYvjgb8s44GL44Ga44G/DQor44G+44Gk44KC44GoLOOBr+OCi+OBig0KK+OBi+OBhOOBqSzjgb/jgbsNCivjgY3jgoDjgoks44Go44GX44GKDQor44GP44GULOOBjeOCiOOBvw0KK+OBvuOBpOOCguOBqCzjgojjgZfjgobjgY0NCivjgb7jgaTjgoTjgb4s44KK44KH44GG44GZ44GRDQor44G+44KL44KE44G+LOOBleOBoeOBkw0KK+OBk+OCk+OBrizjgY3jgojjgZcNCivjgY/jgo3jgY0s44GY44KF44KTDQor44GT44G/44KELOOCiuOCh+OBhuOBkw0KK+OBjeOCgOOCiSzjgarjgYrjgobjgY0NCivjgY3jga4s44G/44GCDQor44GT44G+44GkLOOChuOBjQ0KK+OBi+OBreOBoeOBiyzjgorjgofjgYbjgZnjgZENCivjgYvjgarjgZ/jgass44KK44GIDQor44GT44Gw44KE44GXLOOCiOOBl+OCjeOBhg0KK+OBjeOBn+OChOOBvizjgYvjgarjgZMNCivjgYvjgZgs44Gy44KN44GTDQor44GL44KP44GX44G+LOOBquOBiuOBjQ0KK+OBjeOCgOOCiSzjgb7jgY3jgZMNCivjgZPjgbDjgoks44Gf44GP44G+DQor44GN44Gf44GM44KPLOOBquOBiuOBn+OBiw0KK+OBvuOCi+OChOOBvizjgarjgbvjgZMNCivjgYvjgoLjgpMs44G+44GV44GXDQor44G/44GG44KJLOOBn+OBi+OBlw0KK+OBv+OBl+OBvizjgYvjgaTjgbLjgo0NCivjgb/jgZnjgY4s44Go44KC44GC44GNDQor44G/44Ga44GfLOOBmOOCheOCk+OBkw0KK+OBv+OBmuOCguOBqCzjgarjgovjgY0NCivjgb/jgZ7jgZDjgaEs44G+44GV44GTDQor44G/44Ga44GLLOOChuOBn+OBiw0KK+OBv+OBquOBvyzjgZ/jgZHjgosNCivjgb/jgarjgb/jgZ/jgass44G+44GV44GoDQor44G/44Gt44GfLOOChuOBjeOBkw0KK+OBv+OChOOBhCzjgZPjgYbjgZ8NCivjgb/jgoTjgYrjgYss44GR44KT44KN44GGDQor44G/44KE44GW44GNLOOBvuOChuOBvw0KK+OBv+OChOOBluOBjSzjgZjjgoXjgooNCivjgb/jgoTjga/jgoks44Gf44Gk44Gy44GTDQor44G/44KI44GXLOOBguOBjeOBruOBtg0KK+OCgOOCieOBi+OBvyzjgb7jgZXjgbLjgacNCivjgoDjgonjgY0s44GC44Gk44GTDQor44KA44KJ44GfLOOBkeOCk+OBmA0KK+OCgOOCieOBnyzjgb/jgaHjgoQNCivjgoDjgonjgZ8s44KB44GQ44G/DQor44KA44KJ44KE44G+LOOBvuOBleOBkw0KK+OCguOBqOOBrizjgoTjgZnjgb7jgZUNCivjgoLjgoos44Go44GX44KG44GNDQor44KC44KKLOOBquOBig0KK+OCguOCiuOBnyzjgbLjgafjgajjgoINCivjgoLjgorjgZ8s44KK44GIDQor44KC44KK44KE44G+LOOBguOBpOOBlw0KK+OCguOCiuOChOOBvizjgYvjgYrjgooNCivjgoTjgZbjgo8s44GL44Ga44GTDQor44KE44GY44G+LOOBqOOCguOBsuOCjQ0KK+OChOOBquOBjuOBoCzjgYjjgorjgZMNCivjgoTjgb7jgYzjgZ8s44GR44GE44GE44GhDQor44KE44G+44GL44KPLOOBl+OCk+OChA0KK+OChOOBvuOBkOOBoSzjgZXjgajjgb8NCivjgoTjgb7jgZDjgaEs44KG44GNDQor44KE44G+44GQ44GhLOOBn+OBoOOChuOBjQ0KK+OChOOBvuOBleOBjSzjgb7jgZXjgY0NCivjgoTjgb7jgZbjgY0s44GR44KTDQor44KE44G+44GX44GfLOOBl+OCheOBj+OBuw0KK+OChOOBvuOBoCzjgojjgZfjgYLjgY0NCivjgoTjgb7jgaAs44GR44KT44GE44GhDQor44KE44G+44GgLOOBl+OCheOCkw0KK+OChOOBvuOBquOBiyzjgb7jgZXjgZcNCivjgoTjgb7jga0s44GX44KT44GUDQor44KE44G+44KC44GoLOOChOOBmeOBruOCig0KK+OChOOBvuOCguOBqCzjgYvjgZrjgbLjgo0NCivjgoTjgb7jgoLjgags44Gy44Gn44KG44GNDQor44KG44GL44KPLOOBleOBqOOBlw0KK+OChuOBlizjgYLjgY3jgZMNCivjgobjgZ/jgass44KK44GIDQor44KG44Gf44GrLOOBoOOBhOOBmeOBkQ0KK+OCiOOBlCzjgajjgoLjga7jgooNCivjgojjgZPjgbzjgoos44G+44GV44Gf44GRDQor44KI44GX44GK44GLLOOBn+OBoOOBguOBjQ0KK+OCiOOBl+OBi+OCjyzjgbLjgo3jgb8NCivjgojjgZfjgaAs44Gy44KN44Gf44GLDQor44KI44GX44GgLOOBjeOCh+OBhuOBkw0KK+OCiOOBl+OCguOBqCzjgoLjgajjgYoNCivjgojjga3jgaAs44KG44G/44GTDQor44KP44GL44GV44KELOOBl+OBmuOBiw0KK+OCj+OBn+OBquOBuSzjgZjjgoXjgpPjgYTjgaHjgo0NCivjgo/jgZ/jgarjgbks44KE44GZ44Gy44KNDQor44G/44Gk44KE44G+LOOBvuOBleOBvw0KK+OBsuOCieOBiuOBiyzjgorjgZUNCivjgYvjgpPjga4s44GL44Gk44GoDQor44KP44GTLOOCiuOBiA0KK+OBguOBiuOBjSzjgo/jgZ/jgosNCivjgYLjgYvjgYos44G+44GV44Gu44KKDQor44GC44GL44GOLOOCiuOCh+OBhuOBuOOBhA0KK+OBguOBi+OBlyzjgbLjgo3jgZMNCivjgYLjgYvjgaTjgYss44KE44GZ44KG44GNDQor44GC44GL44Gv44GtLOOBsuOCjeOBguOBjQ0KK+OBguOBi+OBu+OCiizjgobjgYbjgZMNCivjgYLjgY3jgoLjgags44Gh44GIDQor44GC44GN44KE44G+LOOBv+OBuw0KK+OBguOBleOBhCzjgb7jgZXjgYvjgZoNCivjgYLjgZXjga4s44KE44GZ44Gy44KNDQor44GC44GV44GyLOOBguOBleOBkw0KK+OBguOBleOBuSzjgYvjgogNCivjgYLjga/jgozjgpMs44Gg44GE44GZ44GRDQor44GC44G5LOOBqOOBl+OBsuOBkw0KK+OBguOBuSzjgYvjgYrjgosNCivjgYLjgbks44Gy44KN44G144G/DQor44GC44G+44GuLOOBvuOBleOBvw0KK+OBguOCgeOCguOCiizjgYLjgorjgZUNCivjgYLjgonjgYQs44Gy44Gn44GKDQor44GC44KJ44GELOOBiOOBpOOBkw0KK+OBguOCieOBhCzjgYvjgaTjgbLjgo0NCivjgYLjgonjgZ/jgass44GV44Gk44GNDQor44GC44KK44Gq44GLLOOBqOOCguOBsuOCjQ0KK+OBhOOBhOOBlCzjga7jgorjgYLjgY0NCivjgYTjgYTjgaAs44G+44KG44G/DQor44GE44GR44GgLOOCiOOBl+OBn+OBiw0KK+OBhOOBk+OBjCzjgYjjgb/jgZMNCivjgYTjgZfjgYQs44GL44GK44KKDQor44GE44GX44GK44GLLOOBn+OBi+OBlw0KK+OBhOOBl+OBluOBiyzjgobjgY3jgYgNCivjgYTjgZfjgZjjgb4s44G/44GKDQor44GE44GX44GgLOOChuOBhA0KK+OBhOOBl+OBqSzjgobjgY3jgZMNCivjgYTjgZfjga4s44Gf44GL44GKDQor44GE44GX44G+44G244GXLOOBguOBjeOBsuOBqA0KK+OBhOOBm+OCiizjgYrjgajjgbLjgZMNCivjgYTjgZ3jgbks44Gv44KL44GLDQor44GE44Gf44GrLOOBn+OBi+OBguOBjQ0KK+OBhOOBmuOBrizjgb/jgaTjgbLjgo0NCivjgYTjgafjga4s44KI44GG44G444GEDQor44GE44Go44GGLOOCiOOBhuOBkw0KK+OBhOOBqOOBhizjgb/jgaTjgZ/jgYsNCivjgYTjgajjgYYs44KI44GX44GC44GNDQor44GE44Go44GGLOOChuOBi+OCig0KK+OBhOOBqOOBhizjgb7jgaoNCivjgYTjgajjgYYs44Gf44GR44GXDQor44GE44Go44KE44G+LOOBguOBpOOBlw0KK+OBhOOBqizjgYLjgY3jgokNCivjgYTjgarjgZXjgY0s44KE44GZ44Gu44KKDQor44GE44Gq44GwLOOCiOOBhuOBmeOBkQ0KK+OBhOOBquOBsCzjgZ/jgaDjgZcNCivjgYTjga7jgYbjgYgs44Gf44GR44GXDQor44GE44Gu44GG44GILOOBruOBtuOBn+OBiw0KK+OBhOOBruOBhuOBiCzjgb7jgorjgZMNCivjgYTjgbks44GN44KH44GG44GTDQor44GE44G+44GELOOChuOBjeOBiA0KK+OBhOOBvuOBiuOBiyzjgZfjgoXjgYbjgbjjgYQNCivjgYTjgb7jgoDjgoks44G+44GV44GXDQor44GE44KP44GfLOOBn+OBkeOBsuOCjQ0KK+OBhOOCj+OBnyzjgojjgZfjgbLjgo0NCivjgYTjgo/jgZ8s44GK44GV44KADQor44GE44KP44G/LOOChuOBhuOBkw0KK+OBhOOCj+OCguOBqCzjgZHjgpPjgYTjgaHjgo0NCivjgYbjgYjjgaAs44KM44GE44GTDQor44GG44GI44GuLOOBleOCiQ0KK+OBhuOBiOOBr+OCiSzjgZ/jgYvjga7jgooNCivjgYbjgYvjgYQs44Gy44GV44Gq44GMDQor44GG44Gg44GM44KPLOOChuOBhuOBhOOBoQ0KK+OBhuOBoeOChOOBvizjgbLjgo3jgb7jgZUNCivjgYbjgaTjgb8s44Gy44KN44KG44GNDQor44GG44Gk44G/LOOBvuOCiuOBkw0KK+OBhuOBrizjgb7jgZPjgagNCivjgYjjgYzjgZfjgoks44GX44KF44KT44GZ44GRDQor44GI44Go44GGLOOBsuOCjeOBjQ0KK+OBiOOBqOOBvyzjgbLjgafjgb8NCivjgYjjgpPjgaks44KB44GQ44G/DQor44GI44KT44GpLOOBsuOCjeOBjQ0KK+OBiuOBi+OBqSzjgZ/jgYvjgbLjgZUNCivjgYrjgYrjgY/jgoks44Gy44KN44GTDQor44GK44GK44GV44GLLOOBn+OBpuOBjQ0KK+OBiuOBiuOBleOBiyzjgZPjgYbjgZ/jgo3jgYYNCivjgYrjgYrjgZXjgo8s44GV44GhDQor44GK44GK44GZ44G/LOOBleOBqOOBkw0KK+OBiuOBnyzjgaHjgYjjgZMNCivjgYrjgYrjgZ/jgass44G+44GT44GoDQor44GK44GK44Gr44GXLOOBvuOBleOBsuOCjQ0KK+OBiuOBiuOBq+OBlyzjgb/jgaTjgosNCivjgYrjgYrjgavjgZcs44KA44GV44GXDQor44GK44GK44Gr44GXLOOBvuOBleOBig0KK+OBiuOBiuOBrizjgarjgbvjgZMNCivjgYrjgYrjga4s44G/44GL44GTDQor44GK44GuLOOCiOOBhuOBkw0KK+OBiuOBvuOBpCzjgojjgYbjgZnjgZENCivjgYrjgoDjgoks44Go44KC44GTDQor44GK44GK44KELOOChuOBjeOBiA0KK+OBiuOBiyzjga7jgorjgbLjgagNCivjgYrjgYvjgYQs44GR44KT44GE44GhDQor44GK44GL44GG44GhLOOBqOOCguOBruOCig0KK+OBiuOBi+OBoCzjgobjgYbjgY0NCivjgYrjgYvjgaAs44G+44KK44GTDQor44GK44GL44GuLOOChOOBmeOBteOBvw0KK+OBiuOBi+OCgOOCiSzjgYLjgYvjgooNCivjgYrjgYvjgoLjgags44Gd44GGDQor44GK44GM44KPLOOBhOOBmuOBvw0KK+OBiuOBjOOCjyzjgZPjgZrjgYgNCivjgYrjgYzjgo8s44GN44KT44KEDQor44GK44GM44KPLOOBv+OBoeOBkw0KK+OBiuOBjOOCjyzjgZ/jgY/jgoQNCivjgYrjgYzjgo8s44KG44G/44GTDQor44GK44GO44GuLOOBiOOCiuOBkw0KK+OBiuOBjyzjgZXjgoTjgYsNCivjgYrjgY/jgYvjgo8s44Gy44KN44GC44GNDQor44GK44GP44GgLOOBguOBjeOBig0KK+OBiuOBj+OCgOOCiSzjgZXjgajjgZMNCivjgYrjgZbjgY0s44Gf44GL44KG44GNDQor44GK44GY44G+LOOBn+OBi+OBlw0KK+OBiuOBnOOBjSzjgZHjgYTjgYTjgaENCivjgYrjgaAs44Gy44KN44KG44GNDQor44GK44GgLOOBguOBpOOBkw0KK+OBiuOBoeOBguOBhCzjgarjgYrjgY0NCivjgYrjgajjgYzjgo8s44KK44KH44GG44GTDQor44GK44GuLOOBv+OBmuOBjQ0KK+OBiuOBiuOBr+OCiSzjgZHjgYTjgZMNCivjgYvjgYTjgZjjgb4s44GR44KT44GfDQor44GL44GM44KPLOOBqOOCguOBv+OBpA0KK+OBi+OBjeOBiizjgZ/jgYvjgoQNCivjgYvjgZHjgbIs44Go44KC44G/DQor44GL44GV44GELOOBquOBiuOBkw0KK+OBi+OBleOBvyzjgojjgZfjgbXjgb8NCivjgYvjgZjjgZ8s44GR44GE44GE44GhDQor44GL44GY44Gf44GrLOOBvuOBleOBquOCig0KK+OBi+OBl+OBvizjgoTjgZnjgbLjgo0NCivjgYvjgZfjgb4s44KG44GG44GTDQor44GL44GY44KC44GoLOOBguOChOOBkw0KK+OBi+OBmeOBjCzjgZXjgarjgZMNCivjgYvjgZss44KM44GE44GTDQor44GL44Gf44GO44KKLOOBi+OBmuOBl+OBkg0KK+OBi+OBn+OChOOBvizjgorjgofjgYbjgZMNCivjgYvjgZ/jgoTjgb4s44KG44GG44GYDQor44GL44Go44GGLOOBsuOBqOOBlw0KK+OBi+OBqOOBhizjgY/jgavjgYLjgY0NCivjgYvjgajjgYYs44GR44KT44GE44Gh44KNDQor44GL44Gq44GW44KPLOOBsuOCjeOBi+OBmg0KK+OBi+OBreOBv+OBpCzjgajjgoLjga7jgooNCivjgYvjga7jgYYs44KG44GN44GIDQor44GL44G+44GfLOOBsuOCjeOBn+OBiw0KK+OBi+OBv+OBluOBjSzjgb7jgZXjgajjgZcNCivjgYvjgb8s44KI44GG44GE44GhDQor44GL44KB44Gf44GLLOOBn+OBhOOBmeOBkQ0KK+OBi+OCgizjgZHjgpPjgoQNCivjgYvjgo/jgYQs44Go44KC44GL44GaDQor44GL44KP44GELOOBmOOCheOCig0KK+OBi+OCj+OBi+OBvyzjgZ/jgYvjgZcNCivjgYvjgo/jgYvjgb8s44G/44GKDQor44GL44KP44GQ44GhLOOBguOChuOBvw0KK+OBi+OCj+OBkOOBoSzjgYvjgZrjgbLjgacNCivjgYvjgo/jgZDjgaEs44GV44Go44GXDQor44GL44KP44GV44GNLOOBmOOCkw0KK+OBi+OCj+OBleOBjSzjgarjgYrjgY0NCivjgYvjgo/jgarjgb8s44GC44GN44GTDQor44GL44KP44GtLOOBi+OBquOBkw0KK+OBi+OCj+OBsOOBnyzjgYLjgobjgb8NCivjgYvjgo/jgoDjgoks44KC44GGDQor44GL44KP44KC44GoLOOChuOBhg0KK+OBi+OCk+OBoCzjgb/jganjgooNCivjgYvjgpPjgaAs44Gq44GK44GXDQor44GL44KT44GuLOOBvuOBleOBkw0KK+OBjeOBl+OCguOBqCzjgZHjgpPjgZ/jgo3jgYYNCivjgY3jgZ/jgYzjgo8s44Gf44GR44GXDQor44GN44Gf44Gv44KJLOOBqOOCguOBr+OCiw0KK+OBjeOBn+OCgOOCiSzjgZfjgofjgYYNCivjgY3jgZ/jgoDjgoks44GX44KT44GUDQor44GN44Gs44KELOOBqOOBl+OBvw0KK+OBjeOBruOBl+OBnyzjgabjgaQNCivjgY3jga/jgoks44Gf44Gk44KEDQor44GN44KA44KJLOOCiOOBl+OBi+OBmg0KK+OBjeOCgOOCiSzjgb7jgZXjgbLjgo0NCivjgY3jgoDjgoks44GC44GN44KI44GXDQor44GN44KA44KJLOOBmOOCheOCkw0KK+OBjeOCiOOBl+OBvizjga/jgovjgb8NCivjgY3jgojjgZrjgYss44KG44GNDQor44GN44KJLOOBn+OBi+OBlw0KK+OBjeOCiuOBleOBkyzjgabjgaPjgbrjgYQNCivjgY3jgpMs44GV44KG44KKDQor44GN44KTLOOBquOBiuOBkw0KK+OBj+OBq+OBiOOBoCzjgYvjgZrjgYLjgY0NCivjgY/jgbws44GU44GGDQor44GP44G+44GuLOOBn+OBkeOBqA0KK+OBj+OCieOBnyzjgYLjgY3jgbLjgo0NCivjgY/jgonjga/jgZcs44Gf44GL44GC44GNDQor44GP44KMLOOBqOOBiuOCiw0KK+OBj+OCjeOBhCzjgojjgZfjgZ/jgYsNCivjgY/jgo3jgY0s44KG44GG44GTDQor44GP44KP44GuLOOBsuOCjeOBn+OBiw0KK+OBlOOBhizjgZXjgYgNCivjgZTjgYbjgaAs44Gf44GR44Gy44KNDQor44GT44GMLOOBkeOBhA0KK+OBk+OBj+OBl+OCh+OBhizjgaTjgojjgZcNCivjgZPjgZXjgYss44GX44KF44GG44GE44Gh44KN44GGDQor44GT44GY44G+LOOCiuOCh+OBhuOBmeOBkQ0KK+OBk+OBnuOBrizjgYLjgYTjgo8NCivjgZPjgaDjgb4s44GE44GP44GKDQor44GT44Gm44KJLOOBjeOBv+OBsuOCjQ0KK+OBk+OBp+OCiSzjgZfjgpPjgZ/jgo3jgYYNCivjgZTjgajjgYYs44Gf44Gg44Gu44KKDQor44GU44Go44GGLOOBsuOCjeOBkw0KK+OBk+OBq+OBlyzjgb/jgZXjgY0NCivjgZPjgavjgZcs44KI44GG44GTDQor44GT44Gr44GXLOOBqOOCguOChA0KK+OBk+OBsOOChOOBlyzjgarjgaTjgZMNCivjgZPjgbDjgoTjgZcs44GT44GG44GYDQor44GT44Gw44KE44GXLOOBoeOBiA0KK+OBk+OBsOOChOOBlyzjgaTjgojjgZcNCivjgZPjgbbjgZss44Gy44Gn44KG44GNDQor44GT44G+44GNLOOBsuOCjeOBquOBig0KK+OBk+OBvuOBluOCjyzjgZ/jgYvjgb7jgZUNCivjgZPjgb7jgaTjgbDjgoks44Go44KC44Gy44GVDQor44GT44KE44G+LOOBhOOBoeOCjeOBhg0KK+OBk+OCk+OBqSzjgbLjgo3jgZMNCivjgZXjgYTjgY0s44GL44GK44KLDQor44GV44GELOOBi+OBmuOChA0KK+OBleOBhOOBqOOBhizjgY3jgofjgYbjgZMNCivjgZXjgYTjgajjgYYs44GT44GG44GE44GhDQor44GV44GE44Go44GGLOOBpuOCi+OBsuOBlQ0KK+OBleOBhOOBqOOBhizjga/jgZjjgoENCivjgZXjgYTjgajjgYYs44Gy44KN44G/DQor44GV44GE44Go44GGLOOBteOBv+OBkw0KK+OBleOBhOOBqOOBhizjgbLjgajjgZcNCivjgZXjgYTjgajjgYYs44G+44GN44GTDQor44GV44GL44GELOOBn+OBi+OChuOBjQ0KK+OBleOBi+OBvyzjgZ/jgYvjgZcNCivjgZXjgYvjgoLjgags44GT44GG44GYDQor44GV44GL44KC44GoLOOBsuOBp+OBjQ0KK+OBleOBi+OCguOBqCzjgb7jgZXjgojjgZcNCivjgZXjgYvjgoLjgags44Gq44Gq44GTDQor44GV44GL44KC44GoLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBleOBj+OCieOBhCzjgZXjgaDjgojjgZcNCivjgZXjgY/jgonjgY4s44Gq44G744GTDQor44GV44GV44GNLOOBvuOBleOBjQ0KK+OBleOBleOBjSzjgobjgb/jgYgNCivjgZXjgajjgYYs44G144GP44Gf44KN44GGDQor44GV44Go44GGLOOBl+OCheOBhuOBleOBjw0KK+OBleOBqOOBhizjgZ/jgYvjgZcNCivjgZXjgajjgYYs44GC44GNDQor44GV44Go44GGLOOBkeOCk+OBhOOBoeOCjQ0KK+OBleOBqOOBhizjgYvjgZrjgb/jgaENCivjgZXjgajjgYYs44KG44G/DQor44GV44Go44GGLOOCiuOCh+OBhuOBmeOBkQ0KK+OBleOBrizjgajjgYrjgosNCivjgZXjga4s44KK44KH44GG44GZ44GRDQor44GV44KP44GV44GNLOOBn+OBi+OBlw0KK+OBleOCj+OBoCzjgbLjgo3jgZMNCivjgZXjgpPjgbrjgYQs44GV44Go44KLDQor44GX44GK44Ga44GLLOOBguOBpOOBlw0KK+OBl+OBrizjgYvjgZrjga7jgooNCivjgZfjgbDjgZ8s44GL44Ga44Gf44GLDQor44GX44G+LOOBmOOCheOCkw0KK+OBl+OBvuOBrizjgajjgZfjgYLjgY0NCivjgZfjgb/jgZos44KI44GX44GTDQor44GX44G/44GaLOOBvuOBvw0KK+OBl+OCguOBi+OCjyzjgojjgZfjgYrjgb8NCivjgZfjgoLjgoDjgoks44GI44GE44G2DQor44GX44KF44GP44KKLOOBvuOBquOBvw0KK+OBl+OCh+OBhuOBmOOBvizjgZ/jgaTjgYoNCivjgZfjgofjgYbjgaAs44GP44G/DQor44GX44KJ44GE44GXLOOBruOCiuOBi+OBmg0KK+OBl+OCieOBi+OBnyzjgZjjgoXjgpMNCivjgZfjgonjgZXjgY0s44KC44KC44GTDQor44GX44KN44GfLOOBvuOBleOBsuOCjQ0KK+OBmOOCk+OBkOOBhuOBmCzjgZfjgZLjgYvjgZoNCivjgZfjgpPjgZ/jgass44GR44KT44GfDQor44GX44KT44G8LOOBruOBtuOChuOBjQ0KK+OBmOOCk+OBvCzjgoLjgajjga/jgosNCivjgZfjgpPjgoDjgoks44Gy44Gn44Go44GXDQor44GZ44GM44GELOOBpOOBqOOCgA0KK+OBmeOBjuOCguOBqCzjgb/jgbsNCivjgZnjgY7jgoLjgoos44Gy44KN44GTDQor44GZ44GO44KE44G+LOOBn+OBi+OBrQ0KK+OBmeOBjuOChOOBvizjgZjjgoXjgpMNCivjgZnjgY7jgoTjgb4s44Gf44GP44G+DQor44GZ44Ga44GNLOOBjeOBj+OBkw0KK+OBm+OBjOOCjyzjgZjjgoXjgpMNCivjgZvjgY0s44GR44KT44GYDQor44Gb44GN44GtLOOBsuOCjeOBlw0KK+OBm+OBjeOCguOBqCzjgYvjgaTjgYLjgY0NCivjgZvjgags44GC44Gk44GXDQor44Gb44KJLOOBi+OBmuOCiOOBlw0KK+OBneOBp+OChOOBvizjgZ3jgonjgZMNCivjgZ3jga7jgYQs44Gm44KL44GIDQor44Gf44GE44KJLOOBvuOBleOBlw0KK+OBn+OBi+OBjSzjgb/jgaHjgosNCivjgZ/jgYvjga/jgZcs44KM44GEDQor44Gf44GL44Gv44GXLOOBv+OBreOBkw0KK+OBn+OBi+OBr+OBlyzjgajjgoLjgYoNCivjgZ/jgYvjga/jgb4s44GT44GG44GNDQor44Gf44GL44G/44KELOOBoeOBr+OCiw0KK+OBn+OBi+OChOOBquOBjizjgYvjgZrjgbLjgZMNCivjgZ/jgYvjgoTjgb4s44GV44Go44GXDQor44Gf44GQ44GhLOOCj+OBn+OCiw0KK+OBn+OBkeOBhuOBoSzjgYLjgaTjgZcNCivjgZ/jgZHjgZbjgY0s44G+44KG44GTDQor44Gf44GR44GX44GfLOOBleOBqOOBvw0KK+OBn+OBkeOCguOBqCzjgbLjgo3jgajjgoINCivjgZ/jgaAs44GC44Gk44GTDQor44Gf44Gh44GL44KPLOOBvuOBk+OBqA0KK+OBn+OBoeOBsOOBqizjgarjgYrjgagNCivjgZ/jgaTjgYzjgo8s44Go44KC44GTDQor44Gf44Gq44GLLOOChOOBmeOBruOCig0KK+OBn+OBquOBiyzjgYLjgY3jgogNCivjgZ/jgarjgYss44G+44GV44Gf44GLDQor44Gf44Gq44GLLOOBk+OBhuOBmeOBkQ0KK+OBn+OBquOBiyzjgZXjgaHjgYgNCivjgZ/jgarjgYss44GX44KH44GG44G444GEDQor44Gf44Gq44G5LOOBruOCiuOBkw0KK+OBn+OBq+OBkOOBoSzjgZ/jgZHjgZcNCivjgZ/jgavjgo/jgY0s44Gy44KN44G144G/DQor44Gf44Gw44GfLOOCiOOBl+OBsuOBlQ0KK+OBn+OBr+OCiSzjgZHjgpPjgZgNCivjgZ/jgb7jgY0s44Gq44GK44GTDQor44Gf44G+44KA44KJLOOBvuOBk+OBqA0KK+OBn+OCi+OBvyzjgbLjgo3jgb8NCivjgZ/jgpPjgbDjgoks44KK44KH44GG44GTDQor44Gh44GL44GkLOOBpuOBpOOBsuOBkw0KK+OBoeOBsCzjgYvjgbvjgooNCivjgaHjgofjgYYs44KK44KH44GG44GfDQor44Gk44GL44GgLOOBpuOBpOOChA0KK+OBpOOBi+OCguOBqCzjgZXjgaHjgYsNCivjgaTjgZjjgoLjgags44G/44GNDQor44Gk44Gh44GgLOOBkeOBhOOBkw0KK+OBpOOBoeOChCzjgZ/jgYvjgYLjgY0NCivjgaTjgaHjgoQs44Gh44GL44KJDQor44Gk44Gk44G/LOOBleOBqOOBlw0KK+OBpOOBvOOBj+OCiSzjgZ/jgY/jgoQNCivjgaTjgoDjgoks44Go44KC44GIDQor44Gm44GX44G+LOOBguOBjeOBkw0KK+OBpuOCieOBleOBjSzjgb7jgZXjgbLjgagNCivjgabjgonjgZXjgY0s44GP44G/DQor44Gm44KJ44GgLOOBn+OBkeOBr+OCiw0KK+OBqeOBhCzjgajjgoLjgZMNCivjganjgYQs44Gu44G244Gf44GLDQor44Go44GGLOOBsuOCjeOBkw0KK+OBqOOBjeOBnyzjgZfjgpPjgYTjgaHjgo3jgYYNCivjgajjgY3jgags44KK44KH44GG44GZ44GRDQor44Go44GP44GgLOOBiOOBvw0KK+OBqOOBl+OBmuOBvyzjgb7jgbsNCivjgajjgaAs44GX44KF44KT44GZ44GRDQor44Go44KI44GgLOOBsuOCjeOBguOBjQ0KK+OBquOBhOOBqOOBhizjgorjgofjgYbjgZ8NCivjgarjgYvjgYQs44G+44GV44Go44GXDQor44Gq44GL44GKLOOBguOBjeOBsuOBkw0KK+OBquOBjOOBiizjgYjjgorjgZMNCivjgarjgYvjgYzjgo8s44Go44KC44G/DQor44Gq44GM44GV44GLLOOBv+OBoeOBkw0KK+OBquOBi+OBleOBiyzjgoTjgZnjgbLjgo0NCivjgarjgYzjgZXjgY0s44KG44GG44GE44Gh44KNDQor44Gq44GL44GW44KPLOOChuOBhuOBuOOBhA0KK+OBquOBi+OBluOCjyzjgojjgYbjgZMNCivjgarjgYvjgZfjgb4s44KG44GG44KEDQor44Gq44GL44GY44G+LOOBiOOBv+OBkw0KK+OBquOBi+OBl+OBvizjgYLjgY3jgbLjgo0NCivjgarjgYvjgZjjgb4s44GX44KF44GG44Gf44KN44GGDQor44Gq44GL44GY44G+LOOCiuOCh+OBhuOBmeOBkQ0KK+OBquOBi+OBoCzjgYvjgojjgZMNCivjgarjgYvjgaAs44GC44KE44GTDQor44Gq44GM44Gk44GLLOOBhOOBleOBig0KK+OBquOBi+OBqCzjgZfjgoXjgYbjgZgNCivjgarjgYvjgavjgZcs44G/44Gp44KKDQor44Gq44GL44Gr44GXLOOBmeOBmeOCgA0KK+OBquOBi+OBq+OBlyzjgYTjgZ/jgosNCivjgarjgYzjgb7jgaQs44G+44GV44Gy44KNDQor44Gq44GL44KA44KJLOOBl+OBkuOBqOOBlw0KK+OBquOBi+OCgOOCiSzjgY3jgofjgYbjgZMNCivjgarjgYvjgoDjgoks44GC44KE44GTDQor44Gq44GL44KA44KJLOOBvuOChg0KK+OBquOBi+OCgOOCiSzjgZHjgYTjgZMNCivjgarjgYvjgoDjgoks44Gq44GK44GTDQor44Gq44GL44KA44KJLOOBsuOCjeOBi+OBmg0KK+OBquOBi+OCgOOCiSzjgZXjgoTjgZMNCivjgarjgYvjgoLjgoos44Gm44Gk44KEDQor44Gq44GL44KELOOChuOBhuOBmA0KK+OBquOBi+OChOOBvizjgZ/jgZHjgZcNCivjgarjgZks44GT44GG44GYDQor44Gq44KK44Go44G/LOOBl+OCk+OBn+OCjeOBhg0KK+OBquOCk+OBtizjgajjgoLjgoQNCivjgavjgYTjgb8s44KE44GZ44Gf44GLDQor44Gr44GX44GL44KPLOOBneOBruOBkw0KK+OBq+OBl+OBrizjgobjgYsNCivjgavjgZfjgoTjgb4s44Gf44GL44Gy44KNDQor44Gs44GL44GgLOOCiOOBl+OBkw0KK+OBrOOBvuOBnyzjgobjgYbjgYTjgaENCivjgazjgb7jgZ8s44GV44Go44GXDQor44Gu44GM44G/LOOBleOBqOOBlw0KK+OBruOBjizjgYLjgoTjgZMNCivjga7jgY/jgYos44GL44GK44KKDQor44Gu44GQ44GhLOOBn+OBi+OChuOBjQ0KK+OBruOBluOBjSzjgarjgaTjga0NCivjga7jgZgs44KG44GNDQor44Gu44G+LOOCjOOBhOOBkw0KK+OBruOCgOOCiSzjgb7jgZXjgYoNCivjga7jgoDjgoks44KG44GG44GE44GhDQor44Gw44GT44GXLOOBl+OCk+OBlA0KK+OBr+OBl+OCguOBqCzjgarjgYrjgZMNCivjga/jgZnjgazjgb4s44Gh44GIDQor44Gv44GbLOOCiOOBhuOBhOOBoQ0KK+OBr+OBm+OBjOOCjyzjgbLjgo3jgZcNCivjga/jgZ/jgYzjgo8s44GY44KF44KT44GTDQor44Gv44Gf44GR44KE44G+LOOChuOBhuOBkw0KK+OBr+OBn+OBrizjgojjgYbjgZMNCivjga/jgarjgYQs44KK44GLDQor44Gv44G+44GV44GNLOOBvuOBk+OBqA0KK+OBr+OBvuOBoCzjgbLjgo3jgZ/jgYsNCivjga/jgb7jgacs44Gf44GL44GXDQor44Gv44KE44GL44KPLOOBguOBjQ0KK+OBr+OChOOBlyzjgYLjgoQNCivjga/jgoTjgZcs44GV44Go44GTDQor44Gv44KE44GXLOOBleOBqOOBlw0KK+OBr+OChOOBlyzjgZjjgoXjgpMNCivjga/jgoTjgZcs44KI44GG44GTDQor44Gv44KE44GXLOOBmeOBmeOCgA0KK+OBr+OCiSzjgajjgoLjgbLjgZUNCivjga/jgonjgZfjgaos44Gu44G244GNDQor44Gv44KJ44GgLOOBguOBpOOBlw0KK+OBr+OCieOBoCzjgb/jganjgooNCivjga/jgovjgaos44GX44KF44GG44GZ44GRDQor44Gy44GN44GfLOOBsuOBp+OBqA0KK+OBsuOBoOOBhCzjgb7jgobjgb8NCivjgbLjgonjgYQs44GN44KH44GG44GTDQor44Gy44KJ44GELOOChuOBhuOBmeOBkQ0KK+OBsuOCieOBhCzjgYjjgorjgZMNCivjgbLjgonjgYTjgo8s44GP44G/44GTDQor44Gy44KJ44GKLOOBsuOBp+OBi+OBmg0KK+OBsuOCieOBi+OCjyzjgb7jgY0NCivjgbLjgonjgZ8s44KI44GX44GC44GNDQor44Gy44KJ44G+44GkLOOBn+OBi+OBig0KK+OBsuOCjeOBiCzjgYLjgaTjgZcNCivjgbLjgo3jgZss44Gy44Gn44Gu44KKDQor44G144GL44GW44KPLOOBsuOBp+OChuOBjQ0KK+OBteOBi+OBu+OCiizjga7jgorjgbLjgo0NCivjgbXjgY/jgZfjgb4s44G+44GN44GKDQor44G144GP44GgLOOBsuOCjeOChuOBjQ0KK+OBteOBj+OBoCzjgbLjgo3jgbXjgb8NCivjgbXjgY/jgaAs44GV44KE44GLDQor44G144GY44GELOOCiuOBiOOBkw0KK+OBteOBmOOBi+OCjyzjgYvjgZrjgb8NCivjgbXjgZjjgZ8s44GR44KT44GYDQor44G144GY44GfLOOBvuOBleOBig0KK+OBteOBmOOBnyzjgojjgZfjgo3jgYYNCivjgbXjgZjjgoDjgoks44Go44KC44KG44GNDQor44G144GY44KA44KJLOOBguOBjeOBkw0KK+OBteOBmOOCguOBqCzjgZfjgofjgYbjgbjjgYQNCivjgbXjgZjjgoLjgags44KK44KF44GG44G444GEDQor44G144GY44KP44KJLOOBkeOBhOOBleOBjw0KK+OBteOBmOOCj+OCiSzjgZXjgajjgZcNCivjgbXjgZ/jgYvjgZ8s44GY44KN44GGDQor44G144Gq44GELOOBleOBoeOBkw0KK+OBteOCi+OBi+OCjyzjgbLjgo3jgZMNCivjgbXjgovjgYvjgo8s44GY44KF44KT44GE44GhDQor44G144KL44G+44GfLOOBqOOCguOChA0KK+OBu+OBlyzjgobjgY0NCivjgbvjgZfjgYbjgoks44Gy44KN44GXDQor44G744GX44KNLOOBhOOBpOOBvw0KK+OBu+OBneOBoCzjgZfjgoXjgpPjgZQNCivjgbvjgoos44Gu44G244Gy44GnDQor44G744KKLOOChuOBjQ0KK+OBu+OCiuOBiCzjga7jgbbjgagNCivjgbvjgorjgZDjgaEs44Gu44Ge44KADQor44G744KT44GqLOOBi+OBiuOCiw0KK+OBu+OCk+OBvCzjgbLjgo3jgobjgY0NCivjgb7jgYjjgYvjgo8s44G/44KPDQor44G+44GI44GgLOOBk+OBmeOBkQ0KK+OBvuOBiOOBoCzjgZ/jgYvjgZcNCivjgb7jgYjjgaAs44GI44Gk44GTDQor44G+44GN44GG44GhLOOBkeOBhOOBmA0KK+OBvuOBjeOBrizjgZfjgofjgYbjgZMNCivjgb7jgY3jgoLjgags44Go44KC44Gu44KKDQor44G+44GV44Go44GG44G/LOOBvuOBhOOBkw0KK+OBvuOBmeOBhCzjgojjgYbjgZnjgZENCivjgb7jgZnjgaAs44G+44GV44KG44GNDQor44G+44GZ44GgLOOBv+OBuw0KK+OBvuOBpOOBhCzjgb/jgYoNCivjgb7jgaTjgYbjgoks44GL44Ga44Gy44GVDQor44G+44Gk44GK44GLLOOBguOBjeOBsuOCjQ0KK+OBvuOBpOOBiuOBiyzjgajjgoLjgZMNCivjgb7jgaTjgYrjgYss44G+44KG44G/DQor44G+44Gk44GK44GLLOOBoOOBhOOBmeOBkQ0KK+OBvuOBpOOBi+OBkizjgbLjgZXjgYoNCivjgb7jgaTjgZfjgZ8s44GV44Go44GXDQor44G+44Gk44Gq44GMLOOCj+OBn+OCiw0KK+OBvuOBpOOBsOOCiSzjga7jgZ7jgb8NCivjgb7jgaTjgbDjgoks44GC44GN44GTDQor44G+44Gk44KC44GoLOOBsuOCjeOBv+OBpA0KK+OBvuOBpOOCguOBqCzjgbvjgY/jgagNCivjgb7jgaTjgoTjgb4s44G+44GE44GTDQor44G/44GG44KJLOOCiuOCh+OBhg0KK+OBv+OBhuOCiSzjgYLjgaTjgZcNCivjgb/jgYbjgoks44GC44Gk44GXDQor44G/44GG44KJLOOBjeOCiOOBvuOBlQ0KK+OBv+OBjSzjgobjgYbjgZgNCivjgb/jgZrjgYvjgo8s44Gy44KN44KG44GNDQor44G/44Ga44Gf44GrLOOChuOBjeOBkw0KK+OBv+OBmuOBrizjgobjgYbjgZvjgYQNCivjgb/jgZ3jga4s44Gf44Gg44G+44GVDQor44G/44Ge44Gv44GfLOOBoeOBiA0KK+OBv+OBquOBjOOCjyzjgb7jgaHjgZMNCivjgb/jgarjgYzjgo8s44GC44KEDQor44G/44Gq44G/LOOBsuOCjeOChuOBjQ0KK+OBv+OBquOBvyzjgZ/jgYvjgZcNCivjgb/jgarjgb/jgYvjgZ8s44Gf44GL44Gu44G2DQor44G/44Gq44G/44KA44KJLOOBsuOBp+OBjQ0KK+OBv+OBr+OCiSzjgb7jgZXjgY0NCivjgb/jgoDjgoks44G/44GN44GTDQor44G/44KE44GELOOBruOBtuOBguOBjQ0KK+OBv+OChOOBluOBjSzjgYLjgaTjgZcNCivjgb/jgoTjgZbjgo8s44Gq44GK44KEDQor44G/44KE44GW44KPLOOBguOBjeOCiQ0KK+OBv+OChOOCgOOCiSzjgYvjgYrjgooNCivjgb/jgoTjgoDjgoks44GC44KEDQor44G/44KE44KC44GoLOOChuOBhuOBuOOBhA0KK+OBv+OChOOCguOBqCzjgb7jgZXjgoQNCivjgb/jgojjgZcs44Gk44GL44GVDQor44KA44Gt44KA44KJLOOBoeOBi+OBteOBvw0KK+OCgOOCieOBi+OBnyzjgajjgoLjgobjgY0NCivjgoDjgonjgZrjgb8s44G/44Gk44Gu44KKDQor44KA44KJ44GfLOOBj+OBv+OBkw0KK+OCgOOCieOBnyzjgb7jgY0NCivjgoDjgonjgoLjgags44GL44Ga44Gu44G2DQor44KA44KJ44KE44G+LOOBquOBig0KK+OCguOCiizjgarjgYrjgZMNCivjgoLjgoos44GL44Gk44G+44GVDQor44KC44KKLOOBguOBpOOBsuOBkw0KK+OCguOCiizjgY/jgb/jgZMNCivjgoLjgoos44G/44GNDQor44KC44KK44GG44GhLOOBruOCiuOBkw0KK+OCguOCiuOBl+OBnyzjgobjgYbjgYTjgaHjgo0NCivjgoLjgorjgZ/jgass44GL44Ga44GoDQor44KC44KK44KC44GoLOOBkuOCkw0KK+OCguOCiuOChOOBvizjgZPjgYbjgZgNCivjgoLjgo3jgYgs44Gy44KN44GL44GaDQor44KE44GULOOBv+OBruOCiw0KK+OChOOBmeOBjOOBjSzjgajjgoLjgbXjgb8NCivjgoTjgZnjgaAs44GC44KE44GTDQor44KE44GZ44KC44GoLOOBguOBpOOBlw0KK+OChOOBpOOBquOBvyzjgYLjgY3jgYoNCivjgoTjgarjgY7jgZXjgo8s44GR44GE44GZ44GRDQor44KE44Gq44GO44Gv44KJLOOBl+OCk+OBmeOBkQ0KK+OChOOBtuOBquOBiyzjgZ/jgYTjgZcNCivjgoTjgb7jgYbjgaEs44Gf44GL44KG44GNDQor44KE44G+44GK44GLLOOBn+OBoOOBlw0KK+OChOOBvuOBiuOBiyzjgarjgYrjgoQNCivjgoTjgb7jgYrjgY0s44Gy44KN44KG44GNDQor44KE44G+44GM44GfLOOBvuOBk+OBqA0KK+OChOOBvuOBkOOBoSzjgZfjgpPjgYTjgaENCivjgoTjgb7jgZDjgaEs44Gy44KN44GTDQor44KE44G+44GX44GfLOOBvuOBqeOBiw0KK+OChOOBvuOBl+OBnyzjgaHjgYgNCivjgoTjgb7jgaAs44Gh44GIDQor44KE44G+44GgLOOBmOOCheOCk+OBmA0KK+OChOOBvuOBoCzjga7jgbbjgZMNCivjgoTjgb7jgaAs44GC44KEDQor44KE44G+44GgLOOBvuOBjeOBkw0KK+OChOOBvuOBquOBiyzjgoHjgZDjgb8NCivjgoTjgb7jgoDjgoks44GE44Gj44Gb44GEDQor44KE44G+44KA44KNLOOBi+OBquOBkw0KK+OChOOBvuOCguOBqCzjgZPjgYbjgbjjgYQNCivjgoTjgb7jgoLjgags44Gm44KL44Gy44GTDQor44KE44G+44KC44GoLOOBvuOBleOChuOBjQ0KK+OChOOBvuOCguOBqCzjgb/jgaTjgojjgZcNCivjgoTjgb7jgoLjgags44G/44Gu44KLDQor44KE44G+44KC44GoLOOBl+OBruOBtg0KK+OChOOBvuOCguOBqCzjgajjgYrjgosNCivjgoTjgb7jgoLjgags44GC44GZ44GLDQor44KE44G+44KC44GoLOOCj+OBn+OCiw0KK+OChuOBguOBlSzjgY/jgb/jgZMNCivjgobjgY0s44Gq44GK44GTDQor44KG44KK44KE44G+LOOBruOCiuOBsuOCjQ0KK+OCiOOBk+OBnyzjgYLjgaTjgbLjgZUNCivjgojjgZPjga/jgb4s44Go44GX44KG44GNDQor44KI44GT44KE44G+LOOBguOChuOBvw0KK+OCiOOBk+OChOOBvizjgYvjgZrjgY0NCivjgojjgZfjgYrjgYss44GN44KH44GG44GTDQor44KI44GX44GK44GLLOOBvuOBhOOBkw0KK+OCiOOBl+OBiuOBiyzjgb7jgorjgZMNCivjgojjgZfjgaAs44Gf44GL44Go44GXDQor44KI44GX44GgLOOBquOBiuOBkw0KK+OCiOOBl+OBoCzjgarjgYrjgZMNCivjgojjgZfjgaAs44G+44KK44GIDQor44KI44GX44GgLOOChuOBhuOBmA0KK+OCiOOBl+OBoCzjgobjgYbjgZgNCivjgojjgZfjga4s44KG44GLDQor44KI44GX44Gy44KNLOOChuOBvw0KK+OCiOOBl+OBvuOBpCzjgajjgYrjgosNCivjgojjgZfjgoDjgoks44Gg44GE44GZ44GRDQor44KI44GX44KA44KJLOOBi+OBmuOBteOBvw0KK+OCj+OBi+OBvuOBpCzjgbLjgo3jgoQNCivjgo/jgY3jgZ8s44GL44Ga44GKDQor44KP44GN44GfLOOBkeOCk+OBl+OCjeOBhg0KK+OCj+OBl+OBiizjgojjgZfjgYLjgY0NCivjgo/jgZfjgZbjgo8s44Gh44GC44GNDQor44KP44GgLOOBhOOBleOCgA0KK+OCj+OBoCzjgajjgZfjgYoNCivjgo/jgaAs44GE44GV44GKDQor44KP44GgLOOBn+OBkeOBlw0KK+OCj+OBoCzjgYvjgaTjgYgNCivjgo/jgZ/jgarjgbks44GL44Ga44GX44KTDQor44KP44Gf44Gq44G5LOOBqOOBj+OBmA0KK+OCj+OBn+OBquOBuSzjgbLjgo3jgZcNCivjgo/jgZ/jgarjgbks44GN44KI44GK44G/DQor44KP44Gf44Gq44G5LOOCiOOBl+OBsuOCjQ0KK+OCj+OBn+OBquOBuSzjgojjgorjgb/jgaQNCivjgo/jgZ/jgarjgbks44GR44GE44GYDQor44KE44G+44GQ44GhLOOCguOBqOOBmA0KK+OBmeOBmuOBjSzjgZjjgo3jgYYNCivjgZXjgZXjga4s44GZ44GZ44KADQor44GL44Gt44GTLOOBn+OBkeOBlw0KK+OBj+OBvOOBnyzjgozjgYTjgZMNCivjgZPjgZnjgZHjgYzjgo8s44G+44GV44Gq44GKDQor44GL44Gq44GELOOBleOBtuOCjeOBhg0KK+OBi+OBqOOBhizjgZPjgYbjgYTjgaENCivjgZPjgaDjgb4s44Gf44GL44Gy44GTDQor44GT44Gw44KE44GXLOOBqOOBl+OBsuOCjQ0KK+OBk+OBmOOBvizjgajjgYrjgosNCivjgYvjgoHjgoTjgb4s44GL44Ga44Gy44GTDQor44GP44KJ44Gw44KE44GXLOOBruOBtuOBig0KK+OBi+OCk+OBoCzjgYvjgZrjgobjgY0NCivjgZPjgpPjga4s44GY44KF44KT44GYDQor44GL44KP44GX44G+LOOBvuOBleOBquOCig0KK+OBi+OCj+OBi+OBvyzjgZPjgYbjgZgNCivjgYvjgarjgYss44GL44GP44Gf44KN44GGDQor44GL44KP44KA44KJLOOBsuOCjeOBhuOBvw0KK+OBjeOCgOOCiSzjgZfjgoXjgpPjgYTjgaENCivjgYvjgZnjgYws44Gy44KN44GXDQor44GT44GY44G+LOOCguOBqOOCiOOBlw0KK+OBi+OCj+OBrizjgZPjgYbjgYTjgaENCivjgYvjgo/jgaos44KI44GX44G+44GVDQor44GT44Ga44G+LOOBn+OBkeOBlw0KK+OBi+OCj+OBleOBjSzjgb7jgZXjgYLjgY0NCivjgYvjgZ/jga4s44G+44GV44GC44GNDQor44GL44Gf44GgLOOBguOBjeOBig0KK+OBjeOBj+OBoSzjgb7jgZXjgYrjgb8NCivjgYvjgb/jgYbjgoks44GL44Ga44Gy44GnDQor44GL44Gt44GgLOOBpuOBpOOBig0KK+OBk+OCk+OBrizjgoTjgZnjgYoNCivjgYvjgo/jgoLjgags44GX44GS44G/DQor44GL44Gw44KELOOBsuOCjeOBlw0KK+OBk+OBtuOBj+OCjSzjgZHjgpPjgY3jgaENCivjgY/jgb7jgYzjgYQs44KG44GG44GYDQor44GT44KT44GuLOOBsuOBp+OBjQ0KK+OBk+OChOOBvizjgZfjgofjgYbjgYTjgaENCivjgY3jgZ/jgZfjgo0s44Gy44Go44GXDQor44GT44Gg44G+LOOBn+OBkeOBlw0KK+OBi+OBqOOBhizjgYjjgYTjgYTjgaENCivjgY3jgoDjgoks44Go44GX44Gv44KLDQor44GT44GE44GnLOOBhOOBleOBig0KK+OBj+OChOOBvizjgZ/jgZHjgZcNCivjgY3jgorjga/jgoks44KC44KK44Gy44KNDQor44GL44KILOOBvuOBleOBn+OBoA0KK+OBi+OBreOBkyzjgajjgZfjgYoNCivjgZPjga/jgoks44GE44KP44GKDQor44GL44Go44GGLOOChuOBjeOBig0KK+OBk+OBhCzjgZvjgYTjgYTjgaHjgo3jgYYNCivjgYvjgoTjgb4s44GE44GV44GKDQor44GT44GE44GRLOOBj+OBq+OBsuOBkw0KK+OBk+OBmOOBvizjgYLjgY3jgagNCivjgZPjgb7jgaQs44G+44GV44GYDQor44GN44Gf44KA44KJLOOBruOCiuOCiOOBlw0KK+OBjeOBn+OCj+OBjSzjgZzjgpPjgYTjgaHjgo0NCivjgYvjgZXjgZjjgb4s44Gy44KN44G144G/DQor44GN44KA44KJLOOBpuOBpOOCjeOBhg0KK+OBi+OBv+OBkOOBoSzjgZXjgaHjgYoNCivjgYvjgajjgYYs44G144GY44GKDQor44GL44KP44KA44KJLOOBqOOBl+OBsuOBqA0KK+OBi+OBqeOBnyzjga7jgbbjgZ/jgYsNCivjgYrjgYrjgZ/jgZEs44GX44GS44KLDQor44GL44Go44GGLOOBqOOCguOBvw0KK+OBjeOBrizjga7jgbbjgbLjgZUNCivjgYvjgb8s44G+44GV44G/DQor44GN44GP44GhLOOBvuOBleOChuOBjQ0KK+OBi+OBjeOBhuOBoSzjgbLjgo3jgbLjgZUNCivjgZPjgZjjgb4s44G+44GV44G/DQor44GL44Gf44GK44GLLOOBl+OCheOCk+OBmeOBkQ0KK+OBj+OBvOOBnyzjgbLjgo3jgobjgY0NCivjgY3jgZ/jgZbjgo8s44G+44GV44GC44GNDQor44GT44G/44GtLOOCguOBqOOChuOBjQ0KK+OBj+OBvCzjgZ/jgYvjgobjgY0NCivjgY3jgZ/jgZrjgoEs44GL44Ga44Go44GXDQor44GT44Gw44KE44GXLOOBi+OBpOOBig0KK+OBi+OCj+OBkOOBoSzjgojjgZfjgbLjgZMNCivjgZHjgYzjgZXjgo8s44Gy44GV44GXDQor44GT44GG44GhLOOBv+OBoeOBig0KK+OBk+OChOOBvizjgajjgYrjgosNCivjgYvjgo/jgY3jgZ8s44Gf44GL44Gy44GnDQor44GL44KP44G/44GkLOOBl+OCh+OBhuOBnuOBhg0KK+OBi+OBn+OBsuOCiSzjgYLjgaTjgYoNCivjgYvjgo/jgY7jgZcs44Gy44KN44GXDQor44GT44KT44GpLOOCiOOBl+OBv+OBpA0KK+OBjeOCgOOCiSzjgYLjgY3jgbLjgZMNCivjgY/jgbzjgoTjgb4s44GX44KT44Gf44KN44GGDQor44GP44G+44KC44GoLOOBvuOBleOBjQ0KK+OBi+OCj+OBnyzjgbXjgb/jgogNCivjgY/jgavjga7jgbYs44KE44GZ44GKDQor44GL44G+44GgLOOBn+OBi+OBlw0KK+OBi+OBjyzjgYrjgZXjgoANCivjgYvjga3jgZMs44GK44GV44KADQor44GT44Gw44KE44GXLOOBguOBjeOCiQ0KK+OBi+OBl+OBiizjgZHjgpPjgZgNCivjgYvjgarjgYTjgo8s44GR44GE44GYDQor44GR44KT44KC44GhLOOBn+OBoOOBlw0KK+OBjeOBj+OBoSzjgYrjgZXjgoANCivjgYvjgZbjgb4s44KE44GZ44GC44GNDQor44GT44G+44Gk44KC44GoLOOBiOOBhOOBkw0KK+OBk+OCk+OBqSzjgYvjgaTjgbLjgZMNCivjgY3jgY/jgZfjgb4s44GL44Gk44G+44GVDQor44GT44Gw44KE44GXLOOBm+OBhOOBkw0KK+OBj+OBvuOBjOOBhCzjgb7jgZXjgajjgZcNCivjgYvjgajjgYYs44GL44Ga44Gy44GTDQor44G+44KL44Gw44KE44GXLOOBn+OBi+OBlw0KK+OCgOOBqOOBhizjgYvjgaTjgb8NCivjgb/jgZ/jgass44Gf44GR44GXDQor44G/44KPLOOBvuOBleOBlw0KK+OBl+OBv+OBmizjgaTjgajjgoANCivjgb/jgZrjga4s44Go44GX44GKDQor44G+44Gh44GgLOOBi+OBmuOBig0KK+OBvuOBpOOBhCzjgYvjgZrjgZ/jgb8NCivjgb/jgYbjgoks44KK44KF44GG44GE44GhDQor44Gy44GuLOOCiuOCh+OBhuOBhOOBoQ0KK+OCgOOCieOBi+OBvyzjgb7jgZXjgbLjgo0NCivjgb/jgoTjga4s44Gy44KN44KG44GNDQor44G+44KL44GELOOBvuOBleOBruOCig0KK+OCgOOCieOBleOBjSzjgajjgZfjgYoNCivjgb7jgZXjgYss44Gy44Gn44Gu44KKDQor44G/44Gt44GfLOOBn+OBkeOBvw0KK+OBvuOBpOOBquOBjCzjgobjgZ/jgYsNCivjgb/jgarjgYzjgo8s44Gb44GE44GYDQor44G/44KE44GRLOOBquOBiuOBguOBjQ0KK+OBvuOBpOOCguOBqCzjgZHjgpPjgYTjgaENCivjgb/jgZXjgo8s44Go44GX44KG44GNDQor44G+44GI44GgLOOBk+OBhuOBnuOBhg0KK+OBhuOBoOOBjOOCjyzjgajjgZfjgYvjgaQNCivjgb/jgoTjga/jgoks44GT44GG44GYDQor44KA44KJ44GELOOBl+OCh+OBhuOBmA0KK+OBvuOBpOOCguOCiizjgZfjgZLjgY0NCivjgb7jgZXjgY0s44GN44GP44GKDQor44G/44GG44KJLOOBiOOBhOOBmA0KK+OCguOBqOOBv+OChCzjgY3jgojjgZcNCivjgoDjgonjgYvjgb8s44Gy44KN44G144G/DQor44G+44Go44GwLOOBvuOBleOBguOBjQ0KK+OBv+OBhuOCiSzjgajjgZfjgYoNCivjgb7jgaTjgYvjgo8s44GL44Ga44Gy44KNDQor44G/44Ga44Gf44GrLOOBquOBiuOBsuOBkw0KK+OBv+OChOOBrizjgb7jgZXjgobjgY0NCivjgb7jgaTjgaAs44G144GV44Gh44GLDQor44G/44GZLOOBguOBjeOCiQ0KK+OBvuOBpOOChOOBvizjgajjgZfjgYgNCivjgb/jgoTjgoLjgags44Gf44Gg44GC44GkDQor44G/44Ga44GuLOOBteOBv+OBig0KK+OBvuOCi+OChOOBvizjgZvjgYTjgZgNCivjgb7jgovjgZMs44G/44Gh44Gf44GLDQor44KC44Gh44GgLOOBqOOBiuOCiw0KK+OCguOBqOOBr+OBlyzjgb7jgoLjgosNCivjgb/jgZrjgoQs44GT44GG44GYDQor44G/44KE44GW44GNLOOBv+OBoeOBvuOBlQ0KK+OBv+OChOOBjOOCjyzjgb/jgaTjgosNCivjgoDjgonjgZfjgb4s44Gf44Gg44GKDQor44G+44GZ44GV44GTLOOBm+OBhOOBhOOBoQ0KK+OCguOCiizjgYTjgaHjgo3jgYYNCivjgoLjgorjgZ8s44GL44Ga44GKDQor44G/44Gq44G/LOOCiOOBl+OBguOBjQ0KK+OBv+OChOOBjSzjgb7jgZXjgYoNCivjgoLjgorjgoTjgb4s44GR44KT44GYDQor44G/44Ga44GfLOOCiOOBl+OBig0KK+OBvuOBpOOBhCzjgb/jgaTjgZANCivjgb7jgaTjgYos44G+44GV44KIDQor44G+44Gk44GX44GfLOOChuOBn+OBiw0KK+OBk+OBsOOChOOBlyzjgYvjgaTjgb8NCivjgoDjgYvjgYgs44G+44GV44GYDQor44KC44KK44GELOOBjuOCh+OBmA0KK+OCguOCiuOBnyzjgZ/jgYTjgZ7jgYYNCivjgoDjgYvjgYQs44G+44GV44GKDQor44G+44Gk44GKLOOBqOOBjeOCjw0KK+OCgOOCieOChOOBvizjgojjgZfjgbLjgZMNCivjgb7jgaTjgoLjgags44Go44GX44GKDQor44G/44KE44GV44GoLOOBv+OBruOCiw0KK+OBv+OChOOBluOCjyzjgojjgZfjgYoNCivjgoLjgorjgoDjgoks44Gf44GL44GXDQor44KA44KJ44GuLOOBsuOBp+OBig0KK+OBvuOBmeOBoCzjgb/jga7jgosNCivjgoDjgonjgZ8s44Gu44G244GKDQor44G/44KE44GV44GLLOOBkeOCk+OBmA0KK+OCguOBqOOBsOOChOOBlyzjgb7jgZXjgb/jgaQNCivjgb/jgZrjga4s44KG44KK44GTDQor44KC44KC44GELOOCiOOBl+OBig0KK+OBvuOBpOOBoCzjgajjgY/jgYoNCivjgZnjgYzjgo/jgoks44Gq44GK44GIDQor44G+44Gk44Gw44KJLOOBvuOBk+OBqA0KK+OBvuOBpOOCguOBqCzjgb/jga7jgosNCivjgb/jgoTjga/jgoks44GC44Gk44KI44GXDQor44KA44KJ44GE44GXLOOBvuOCguOCiw0KK+OBvuOBpOOCgOOCiSzjgb7jgoLjgosNCivjgb/jgojjgZcs44Gm44Gk44KI44GXDQor44KC44KK44KC44GoLOOBi+OBmuOBig0KK+OBv+OBmuOBn+OBqyzjgZ/jgZHjgZcNCivjgb7jgaTjgbAs44GC44Gk44GXDQor44G+44Gk44GELOOBi+OCkw0KK+OCgOOCieOBi+OBvyzjgYvjgZrjgYoNCivjgoLjgorjgZ8s44GX44GS44Gv44KLDQor44KA44KJ44GfLOOBl+OBkuOBig0KK+OBvuOBleOBjSzjgbLjgo3jgZcNCivjgb/jgoTjgZbjgY0s44KI44GX44GNDQor44G+44Gk44Gw44KJLOOBl+OCk+OBhOOBoQ0KK+OCgOOCieOBvuOBpCzjgYLjgaTjgZcNCivjgoLjgoos44Gu44G244KG44GNDQor44KC44KK44KA44KJLOOBvuOBleOBi+OBmg0KK+OBmeOCjyzjgojjgZfjgb8NCivjgZPjgo/jgZ/jgoos44Gq44GK44GNDQor44G+44Gk44GW44GNLOOCiOOBl+OBruOBtg0KK+OBvuOBo+OBleOBjSzjgb7jgZXjgbLjgo0NCivjgb/jgZ/jgY8s44GR44GE44Ge44GGDQor44G+44Gk44GL44KPLOOBleOBqOOBlw0KK+OCguOBjizjgZfjgZMNCivjgb7jgbbjgaEs44GN44KI44GXDQor44G+44Gk44KC44GoLOOBqOOBl+OCjeOBhg0KK+OCguOCiizjgorjgofjgYbjgYTjgaENCivjgb7jgaTjgYbjgoks44GL44Ga44Gq44KKDQor44G+44GI44GgLOOBguOBjeOBig0KK+OBvuOBmeOBoCzjgbLjgo3jgZcNCivjgb7jgYjjgavjgZcs44Gy44KN44GXDQor44G+44KL44KE44G+LOOBquOBiuOChA0KK+OBvuOBpOOBoCzjgZ/jgYvjgYoNCivjgb7jgY0s44Go44GX44Gy44GTDQor44KC44GG44GILOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OCgOOCieOBhCzjgajjgojjgb8NCivjgb7jgaTjgYQs44GP44Gr44Gy44GTDQor44KC44KK44GfLOOBvuOBleOCiw0KK+OBvuOBiOOBoCzjgZ/jgYvjgbbjgb8NCivjgoDjgonjgYbjgaEs44GE44GV44KADQor44G/44Gk44KE44GZLOOBguOBjeOCiQ0KK+OCguOCiizjgZHjgpPjgZgNCivjgb7jgaTjgaAs44GV44Go44GXDQor44G+44Gk44GKLOOBvuOBleOBteOBvw0KK+OBvuOCi+OChOOBvizjgYLjgY3jgYoNCivjgb7jgaTjgYzjgYgs44GX44GS44Gy44KNDQor44GL44G/44GP44KJLOOBk+OBhuOBhOOBoQ0KK+OBv+OBqeOCiuOBi+OCjyzjgobjgYbjgZjjgo3jgYYNCivjgb7jgZnjgaAs44GX44GS44Gu44G2DQor44G/44Gm44KJLOOChOOBmeOBig0KK+OBvuOBpOOBquOBjCzjgYLjgY3jgokNCivjgoLjgorjgYrjgYss44KI44GX44G/DQor44G/44Gd44GKLOOBiOOBpOOBig0KK+OCgOOCieOChOOBvizjgYvjgaTjgojjgZcNCivjgoLjgorjgoLjgags44GX44GS44KLDQor44KC44KKLOOBpOOBqOOCgA0KK+OBvuOBmeOBoCzjgbLjgo3jgZ/jgYsNCivjgb/jgoTjgoLjgags44GL44Gk44G+44GVDQor44KA44KJ44GfLOOCiOOBl+OBpuOCiw0KK+OBv+OBquOBv+OBleOCjyzjgYvjgZrjgbLjgo0NCivjgb7jgZfjgb4s44GZ44G/44Gy44KNDQor44KC44KK44GQ44GhLOOCiOOBl+OBguOBjQ0KK+OBvuOBpOOBhCzjgZ/jgYvjgZcNCivjgb7jgYjjgYvjgo8s44Gy44Go44GXDQor44KC44Gh44Ga44GNLOOBmOOCheOCkw0KK+OBvuOBmeOBoCzjgZfjgpPjgY3jgaENCivjgb7jgaTjgoLjgags44GY44KF44KT44Ge44GGDQor44KC44KK44Gq44GMLOOBi+OBmuOBruOCig0KK+OBvuOBmeOBoCzjgbLjgo3jgZ/jgb8NCivjgb/jgYbjgoks44GP44Gr44GKDQor44G+44Gk44GuLOOBn+OBoOOBig0KK+OBvuOBpOOBiuOBiyzjgojjgZfjgabjgosNCivjgb7jgaHjgYQs44GT44GG44GE44GhDQor44G/44Ga44Gf44GrLOOBqOOBl+OBig0KK+OBvuOBpOOCguOBqCzjgojjgZfjga7jgooNCivjgb7jgZXjgY0s44Gy44Gn44GoDQor44G+44Gk44KC44GoLOOBn+OBkeOBlw0KK+OBv+OBpOOChCzjgbLjgafjgoTjgZkNCivjgb/jgZrjga4s44GY44KN44GGDQor44G+44GI44GgLOOBteOBv+OBig0KK+OCgOOCieOBvuOBpCzjgZHjgpPjgZgNCivjgoDjgZXjgZfjga4s44GC44GN44KJDQor44G+44GI44Gv44GfLOOBvuOBleOBsuOBkw0KK+OBvuOBpOOBluOCjyzjgojjgZfjgYoNCivjgb/jgaTjgYQs44KI44GX44GL44GaDQor44KC44KC44GgLOOBv+OBpOOBi+OBmg0KK+OBvuOBpOOBiizjgYvjgaTjgb8NCivjgb/jgo8s44GX44KF44GG44GYDQor44KA44KJ44GL44G/LOOBpuOBpOOChA0KK+OBv+OBi+OBvyzjga/jgovjgY0NCivjgazjgYvjgZbjgo8s44GX44KT44GYDQor44Gq44GL44KA44KJLOOBl+OBmuOBiA0KK+OBq+OBl+OCgOOCiSzjgY/jgavjgbLjgZMNCivjgavjgaPjgZ8s44GR44KT44GYDQor44Gq44GM44Gk44KGLOOBqOOBjeOChOOBmQ0KK+OBq+OBhOOBrizjgbLjgo3jgZcNCivjgZ/jgbbjgaEs44GR44KT44GYDQor44Gr44GX44GuLOOBleOBtuOCjeOBhg0KK+OBrOOBi+OBnyzjgZ/jgoLjgaQNCivjgavjgZfjgoDjgoks44Gy44GV44GKDQor44Gq44GM44GuLOOBn+OBi+OChuOBjQ0KK+OBquOBi+OBjOOCjyzjgojjgZfjgYLjgY0NCivjgavjgZfjgoTjgb4s44Gy44KN44GXDQor44Gq44GL44GY44G+LOOBvuOBleOBsuOCjQ0KK+OBq+OBl+OBoCzjgb/jgaTjgYoNCivjgarjgYvjgoDjgoks44G144G/44GKDQor44Gu44KA44KJLOOChuOBjeOBig0KK+OBquOBi+OCguOBqCzjga7jgorjgYLjgY0NCivjgarjgYvjgYzjgo8s44GL44Ga44Gf44G/DQor44Gq44KL44GV44KPLOOBpOOBreOBig0KK+OBquOBhOOBqOOBhizjgZ/jgZHjgYoNCivjga7jgbks44KI44GX44Gy44GnDQor44Gr44GX44GqLOOChOOBmeOBruOCig0KK+OBruOCgOOCiSzjgZ/jgaDjgZcNCivjgarjgYvjgoDjgoks44GX44KT44GY44KN44GGDQor44Gr44GL44GE44Gp44GGLOOCiOOBl+OChOOBmQ0KK+OBquOBi+OBoCzjgZ/jgaTjgYoNCivjgavjgZfjgaos44GN44G/44Gy44GoDQor44Gq44KK44GfLOOBqOOBl+OBig0KK+OBruOBkOOBoSzjgojjgZfjgbLjgo0NCivjga7jgoQs44GT44GG44GNDQor44Gq44GM44GELOOBvuOBleOBqA0KK+OBquOBi+OCgOOCiSzjgY3jgojjgZcNCivjgavjgYTjgZrjgb4s44Gf44GL44G/DQor44Gq44GL44GM44G/LOOBl+OCheOBhuOBhOOBoQ0KK+OBquOBjOOBnyzjgY3jgZfjgYoNCivjgavjgZfjgZbjgo8s44Gv44Gk44GIDQor44Gu44GbLOOBmOOCheOBhuOCjeOBhg0KK+OBquOBjOOBhCzjgobjgY3jgYoNCivjgavjgZfjgZbjgo8s44G+44GV44GKDQor44Gq44GL44Gv44GfLOOBi+OBmuOBqOOBlw0KK+OBquOBi+OBmOOBvizjgbLjgo3jgZcNCivjgarjgYvjgaAs44G+44Gk44GKDQor44Gu44Gq44GLLOOBvuOBleOBjQ0KK+OBquOBi+OBjOOCjyzjgb7jgZXjgYLjgY0NCivjgarjgYvjgZfjgb4s44Gf44G/44GKDQor44Gq44GL44KC44GoLOOBvuOBleOCiw0KK+OBq+OBl+OBiuOBiyzjgbLjgo3jgZcNCivjgavjgZfjgb7jgYgs44GX44KT44Gf44KN44GGDQor44Gq44GL44KA44KJLOOBvuOBleOBig0KK+OBquOBi+OBq+OBlyzjgYvjgZrjgYoNCivjga7jgaAs44KA44Gk44KEDQor44Gq44GL44KA44KJLOOBguOBjeOBsuOBkw0KK+OBquOBi+OBluOCjyzjgorjgofjgYbjgYTjgaENCivjgavjgZfjgaAs44KI44GX44KN44GGDQor44Gr44GX44GgLOOBn+OBoOOChuOBjQ0KK+OBq+OBhCzjgorjgofjgYbjgZgNCivjgoTjgb7jgoLjgags44Gy44Go44GXDQor44Gq44GL44GG44GhLOOChOOBmeOBig0KK+OBquOBi+OBmOOBvizjgYvjgZrjgZ/jgYsNCivjgarjgYvjgoDjgoks44G+44GV44G/DQor44Gu44KA44KJLOOBj+OBq+OBsuOBkw0KK+OBq+OBl+OCgOOCiSzjgoTjgZnjgbLjgo0NCivjga7jgarjgYss44Gf44Gg44Gy44GTDQor44Gr44GX44KA44KJLOOBqOOBl+OBsuOBpw0KK+OBq+OBl+OBiizjgY3jgojjgZcNCivjgarjgYzjgYos44GN44KI44GXDQor44Gr44GE44G/LOOBkeOCk+OBmA0KK+OBquOBi+OCgOOCiSzjgbLjgafjgobjgY0NCivjga3jgZrjgYss44KI44GX44Gu44KKDQor44Gq44GL44KA44KJLOOChuOBjeOBqOOBlw0KK+OBquOBi+OBluOBqCzjgabjgaTjgoQNCivjgYLjgZXjga4s44GY44KF44KTDQor44Gu44GM44G/LOOBj+OBq+OBsuOCjQ0KK+OBquOBi+OBmOOBvizjgYvjgZrjgbLjgZMNCivjgarjgYTjgajjgYYs44GL44Ga44GC44GNDQor44Gq44GL44KA44KJLOOCiOOBl+OBruOCig0KK+OBquOBi+OBq+OBlyzjgY3jgojjgYLjgY0NCivjgarjgYvjgaAs44Gf44G/44GKDQor44Gq44GM44GV44KPLOOBn+OBi+OBlw0KK+OBquOBjOOBrizjgYvjgZrjgobjgY0NCivjgavjgaPjgZ8s44KG44Gf44GLDQor44Gq44KT44GwLOOBv+OBpOOBsuOCjQ0KK+OBruOBmuOBiCzjgY/jgavjgb/jgaQNCivjgarjgYzjgb8s44Gy44KN44GXDQor44Gq44GM44GELOOBmOOCheOCk+OBhOOBoQ0KK+OBquOBi+OBr+OCiSzjgb/jgZrjgbsNCivjgarjgYvjgZjjgb4s44Gf44GR44KI44GXDQor44Gq44GL44GY44G+LOOBi+OBpOOBig0KK+OBq+OBl+OBoCzjgYLjgY3jgbLjgZMNCivjgarjgYrjgYQs44GX44Gh44KN44GGDQor44Gq44G544GX44G+LOOCiOOBl+OBvuOBlQ0KK+OBquOBi+OBrizjgZfjgofjgYbjgYTjgaENCivjgarjgYvjgoDjgoks44Gv44KL44GKDQor44Gu44GgLOOBv+OBpOOCiOOBlw0KK+OBquOBi+OBmyzjgajjgZfjgYLjgY0NCivjgarjgYvjgZjjgb4s44G/44Gk44GX44GSDQor44Gq44GM44GV44KPLOOBn+OBoOOBlw0KK+OBq+OBuOOBhCzjgb/jgaTjgogNCivjgarjgYzjgYQs44KK44KH44GG44GZ44GRDQor44Gq44GL44GX44G+LOOBn+OBi+OBig0KK+OBquOBi+OBiizjgZvjgYQNCivjgarjgYvjgYzjgo8s44Gu44G244GKDQor44Gq44GE44Go44GGLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBruOBmOOBvizjgobjgYbjgZnjgZENCivjgarjgYzjga4s44KG44GN44GKDQor44Gr44GX44GgLOOBi+OBmuOBig0KK+OBquOBi+OBoCzjgY3jgojjgZcNCivjgarjgYvjga/jgoks44Gf44GL44Gu44GZ44GRDQor44Gq44GL44GY44G+LOOCgOOBreOBn+OBiw0KK+OBreOCguOBqCzjgY3jgojjgZcNCivjgarjgYvjgoDjgoks44GR44KT44GYDQor44Gq44GM44Go44KCLOOBvuOBleOBvw0KK+OBquOBi+OCgOOCiSzjgbLjgajjgb8NCivjgarjgYvjgoTjgb4s44KI44GX44GKDQor44Gq44GL44KA44KJLOOBu+OBmuOBvw0KK+OBquOBi+OCgOOCiSzjgbXjgb/jga7jgooNCivjga7jgZjjgb4s44Gm44Gk44KN44GGDQor44Gq44GM44G144GhLOOChOOBmeOCjQ0KK+OBquOBi+OBrizjgZTjgYTjgaENCivjgavjgZfjgoTjgb4s44GX44KT44GE44GhDQor44Gq44GL44KA44KJLOOBvuOBleOChuOBjQ0KK+OBquOBjOOBl+OBvizjgarjgYrjgZgNCivjgavjgo8s44KG44Gf44GLDQor44Gq44GL44GuLOOChOOBmeOBguOBjQ0KK+OBiuOBq+OBluOCjyzjgobjgY3jgYoNCivjgYrjgZfjgYvjgZ8s44G+44GV44GKDQor44GK44GLLOOBi+OBpOOBsuOCjQ0KK+OBiuOBj+OChOOBvizjga7jgbzjgosNCivjgYrjgY0s44GZ44G/44GKDQor44GK44GL44G/44KELOOBkeOCk+OBmA0KK+OBiuOBkOOCiSzjgb7jgZXjgY0NCivjgYrjgYrjgacs44G+44GV44Gu44KKDQor44GK44Gu44GgLOOBvuOBleOBsuOBkw0KK+OBiuOBiuOBq+OBlyzjgb7jgZXjgY0NCivjgYrjgY/jgaAs44GN44KH44GG44GE44Gh44KN44GGDQor44GK44GP44GgLOOBqOOBl+OBig0KK+OBiuOBjOOCjyzjgZPjgYbjgZgNCivjgYrjga4s44G+44GV44GKDQor44GK44GK44GZ44G/LOOBk+OBhuOBmA0KK+OBiuOBiuOBpOOBiyzjgZ/jgYvjgZcNCivjgYrjgYrjgajjgoIs44G+44GV44GC44GNDQor44GK44GL44GW44GNLOOChuOBhuOBmA0KK+OBiuOBiuOBr+OBlyzjgbLjgo3jgZcNCivjgYrjgY7jga4s44G144G/44GKDQor44GK44GV44GgLOOBl+OBmuOBguOBjQ0KK+OBiuOBiuOBsCzjgbLjgZXjgZcNCivjgYrjgZfjgb4s44GC44KE44GTDQor44GK44GK44GL44KPLOOBi+OBmuOChA0KK+OBiuOBi+OCguOBqCzjgbLjgo3jgZcNCivjgYrjgYzjgo8s44Go44GK44KLDQor44GK44GuLOOBjeOCiOOBqA0KK+OBiuOBi+OBrizjgajjgYrjgosNCivjgYrjgZbjgo8s44KG44GN44G+44GVDQor44GK44Gv44GPLOOBsuOCjeOBlw0KK+OBiuOBl+OBn+OBqyzjgZ/jgYvjgZcNCivjgYrjgZbjgo8s44Gy44KN44GXDQor44GK44GK44Gv44GXLOOBn+OBi+OBruOBtg0KK+OBiuOBiuOBr+OBnyzjgZPjgYbjgajjgY8NCivjgYrjga7jgafjgoks44G/44KEDQor44GK44GuLOOBteOBv+OBig0KK+OBiuOBiuOBiuOBiyzjgbXjgZjjgZMNCivjgYrjgYrjga4s44KI44GX44Gu44KKDQor44GK44GK44Gv44GXLOOChuOBn+OBiw0KK+OBiuOBiuOBnyzjgZ/jgYvjgZcNCivjgYrjgYrjgoLjgoos44GR44KT44Gf44KN44GGDQor44GK44GX44G+LOOBkw0KK+OBiuOBi+OCguOBqCzjgZPjgYbjgYTjgaENCivjgbLjgo3jgZss44Go44KC44KG44GNDQor44GK44GK44G/44GaLOOChOOBmeOBig0KK+OBiuOBiuOBrizjgb/jgaTjgYoNCivjgYrjgaHjgYLjgYQs44G+44GV44Gy44GVDQor44GK44GL44G5LOOBn+OBhA0KK+OBiuOBiuOBn+OBqyzjgYLjgY3jgbLjgo0NCivjgYrjgY/jga4s44GX44GS44GKDQor44GK44GK44GZ44GMLOOBkeOCk+OBhOOBoQ0KK+OBiuOBiuOBruOBjSzjgYvjgYrjgosNCivjgYrjgYrjgYTjgZcs44GYDQor44GK44GL44GgLOOCguOBqOOBpOOBkA0KK+OBiuOBiuOBv+OChCzjgobjgY3jgbLjgo0NCivjgZXjgZ/jgZEs44Gk44Gt44GKDQor44GK44Gg44GOLOOBr+OBoeOCjeOBhg0KK+OBiuOBiuOBnyzjgZXjgajjgosNCivjgYrjgbXjgaEs44Gf44Gg44KI44GXDQor44GK44GK44GL44KPLOOBi+OBiuOCiw0KK+OBiuOBi+OBqSzjgZXjgajjgosNCivjgYrjgYrjgZXjgo8s44Gy44Gn44GNDQor44GK44GO44GV44KPLOOChuOBjeOBsuOCjQ0KK+OBiuOBi+OBuSzjgYLjgaTjgZcNCivjgYrjgajjgojjgZcs44Gy44Gn44GKDQor44GK44GM44KPLOOBn+OBpOOCjeOBhg0KK+OBiuOCiuOBjOOBlSzjgoTjgZnjgZ/jgZENCivjgYrjgYrjgbAs44KG44GN44GTDQor44GK44Gw44GfLOOBn+OBi+OBlw0KK+OBiuOBiuOBrizjgZ/jgYvjgojjgZcNCivjgYrjgYrjgZXjgYss44G+44GV44KEDQor44GK44GK44G/44GtLOOBkeOCk+OBnuOBhg0KK+OBiuOBiuOBnyzjgojjgZfjgbLjgZMNCivjgYTjga7jgYbjgYgs44GC44GN44GKDQor44GK44GK44GT44GXLOOBl+OBkuOBjQ0KK+OBiuOBluOCjyzjgbLjgafjgYoNCivjgYrjgYvjgbks44GR44GE44GE44GhDQor44GK44GK44G844KJLOOBiOOBhOOBmOOCjeOBhg0KK+OBiuOBiuOBnyzjgZjjgofjgYbjgYTjgaHjgo3jgYYNCivjgYrjgZbjgY0s44GY44KF44KT44GE44GhDQor44GK44GP44GgLOOChOOBmeOBsuOCjQ0KK+OBiuOBluOCjyzjgabjgovjgYLjgY0NCivjgYrjgYvjgaAs44GZ44GZ44KADQor44GK44GK44Gk44GLLOOBk+OBhuOBmA0KK+OBiuOBruOBp+OCiSzjgZPjgYbjgYTjgaENCivjgYrjgZfjgYos44Gf44Gg44GX44GSDQor44GK44Gg44GX44G+LOOBn+OBoOOBlw0KK+OBiuOBluOBjSzjgZfjgZLjgosNCivjgb7jgYjjgaAs44G/44Gk44GKDQor44GK44GNLOOBvuOBleOBig0KK+OBiuOBruOBoCzjgajjgY3jgYgNCivjgYrjgarjgY4s44GC44GN44KJDQor44GK44GP44GgLOOCiOOBl+OBjeOCiA0KK+OBiuOBiuOBsuOCiSzjgZvjgaTjgZgNCivjgYrjga7jgZbjgo8s44Go44GX44Gy44GTDQor44GK44GO44Gv44KJLOOBj+OBq+OBguOBjQ0KK+OBiuOBiuOBj+OBvizjgYvjgZrjgYoNCivjgYrjgYrjga/jgoks44Gu44G244Gy44KNDQor44GK44GNLOOBi+OBpOOBmeOBkQ0KK+OBiuOBjOOCjyzjgZ/jgaTjgoQNCivjgYrjgYrjgoQs44Gy44Gn44G7DQor44GK44GK44GV44KPLOOBleOBtuOCjeOBhg0KK+OBiuOBiuOBr+OCiSzjgbLjgo3jgojjgZcNCivjgYrjgaAs44Gf44GL44GTDQor44GK44GW44KPLOOBv+OBpOOBig0KK+OBiuOBjOOBnyzjgorjgofjgYbjgZnjgZENCivjgYrjgYvjga4s44GC44GN44GTDQor44GK44GK44GE44GXLOOBl+OBvg0KK+OBiuOBquOBhCzjgbLjgo3jgobjgY0NCivjgYrjgYrjgaTjgYss44GY44KF44KT44GTDQor44GK44GK44Gk44GLLOOBpuOBpOOBig0KK+OBiuOBhOOBpyzjgojjgZfjgYLjgY0NCivjgYrjgY3jgoTjgb4s44GL44Ga44GTDQor44GK44GQ44GXLOOBguOBkeOBvw0KK+OBiuOBoCzjgoTjgZnjgZcNCivjgYrjgYvjgbDjgoTjgZcs44Gf44Gg44Gy44KNDQor44GK44GK44Gf44GrLOOBmOOCheOCk+OBmA0KK+OBiuOBiuOBpOOBjSzjgYLjgobjgb8NCivjgYrjgYvjgaAs44Gy44KN44GXDQor44GK44GK44GZ44G/LOOBoeOBr+OCiw0KK+OBiuOBiuOBhOOBjOOCjyzjgZ/jgYvjga/jgosNCivjgYrjgYvjgaAs44GZ44GZ44KADQor44GK44GW44KPLOOBi+OBmuOBsuOBkw0KK+OBiuOBiuOBn+OBqyzjgabjgaTjgo3jgYYNCivjgYrjgZbjgY0s44Gy44KN44KG44GNDQor44GK44GK44GfLOOBvuOBleOBkw0KK+OChOOBquOBjuOChCzjgobjgYvjgooNCivjgarjgYvjgZ/jgass44GX44KT44GE44GhDQor44GT44Gw44KE44GXLOOBsuOBp+OBlw0KK+OBv+OBj+OBqyzjgojjgZfjgbLjgo0NCivjgZnjgZrjgY0s44GY44KF44KT44GE44GhDQor44Gv44Gg44GuLOOChuOBjeOBvuOBlQ0KK+OBv+OChOOBvizjgYvjgYrjgooNCivjgZ/jgYvjga/jgZcs44G+44GV44GoDQor44GX44KJ44GK44GM44KPLOOCieOBhOOBnw0KK+OBquOBi+OCgOOCiSzjgYLjgZ3jgYsNCivjgb7jgaTjgZbjgY0s44GN44GE44Gh44KN44GGDQor44KE44G+44GX44GfLOOBn+OBi+OCiOOBlw0KK+OBl+OCguOChOOBvizjgZfjgZLjgosNCivjgbXjgZ/jgoDjgoks44Gu44G244KG44GNDQor44GP44KPLOOBn+OBi+OBlw0KK+OBquOBi+OCgOOCiSzjgajjgZfjgb/jgaQNCivjgojjgZPjgoTjgb4s44Gy44KN44GC44GNDQor44Gy44KL44G+LOOChuOBjeOBkw0KK+OBn+OBoeOBi+OCjyzjgarjgYrjgb8NCivjgo/jgYvjgbDjgoTjgZcs44Gm44KL44G/DQor44Gf44GL44Gv44GfLOOBqOOCgg0KK+OBguOBuSzjgYjjgb/jgZMNCivjgZvjgY0s44KK44KF44GG44GUDQor44KE44G+44GW44GNLOOBsuOBqOOBlw0KK+OChOOBvuOBrSzjgojjgZfjgbLjgo0NCivjgZ/jgZbjgo8s44GY44KF44KT44GYDQor44GL44GY44GL44KPLOOBguOBleOBkw0KK+OBleOBqOOBhizjgb7jgZXjgbLjgo0NCivjgYvjgo/jgYbjgaEs44G+44KK44GIDQor44GK44GK44KE44G+LOOBruOBtuOBkw0KK+OBl+OCk+OBv+OCh+OBhizjgZjjgoXjgpPjgZMNCivjgZ/jgaHjgo/jgaAs44Gq44GK44G/DQor44GK44GK44GP44G8LOOBpuOBpOOChA0KK+OBqOOBhuOBlOOBhizjgbLjgo3jgobjgY0NCivjgarjgYzjgY/jgoks44Gf44GL44Gv44KLDQor44GE44Go44GGLOOBkeOCk+OBneOBhg0KK+OChOOBvuOBluOBjSzjgZvjgYQNCivjgYvjgZbjgb4s44Gv44KL44KG44GNDQor44GL44KT44Gw44KE44GXLOOBsuOBp+OBig0KK+OBleOBleOBrizjgoHjgYTjgZMNCivjgYvjgo/jgZfjgb4s44G/44KG44GNDQor44GX44KT44GQ44GGLOOBruOCiuOBguOBjQ0KK+OBk+OBhOOBmuOBvyzjgZ/jgY/jgoQNCivjgYvjga3jgZMs44KI44GX44G/DQor44GT44Gw44KE44GXLOOBmeOBiOOBpOOBkA0KK+OBi+OCguOBl+OBnyzjgZfjgoXjgYbjgYTjgaENCivjgZ/jgoDjgoks44GV44Gh44KIDQor44Gv44Gb44GM44KPLOOBn+OBi+OBlw0KK+OBj+OCiuOBr+OCiSzjgbLjgo3jgbXjgb8NCivjgYvjgarjgYrjgYss44Gy44KN44GXDQor44GT44Gw44KE44GXLOOChuOBjeOBn+OBiw0KK+OBsuOBhOOBlyzjgZ/jgYvjgobjgY0NCivjgavjgbjjgYQs44GE44GP44GTDQor44G+44KL44GfLOOBquOBiuOBkw0KK+OBqOOBiuOChOOBvizjgarjgb8NCivjgZvjgY3jgZbjgo8s44Gh44GLDQor44GC44KK44G+LOOChOOCiOOBhA0KK+OBj+OCiuOBr+OCiSzjgajjgoLjgYgNCivjgZnjgb/jga4s44G/44Gu44KLDQor44KI44GX44GgLOOBsuOBp+OBjQ0KK+OBjeOBruOBl+OBnyzjgajjgoLjgZMNCivjgYrjgaHjgYLjgYQs44G/44KG44GNDQor44GG44G+44KE44Gv44KJLOOChOOBmeOBvw0KK+OBu+OBneOBi+OCjyzjgbLjgo3jgZMNCivjgbXjgYvjgYzjgo8s44GX44KT44GYDQor44GL44KP44KA44KJLOOBiOOBhOOBnuOBhg0KK+OBvuOBpOOBhCzjgZHjgYTjgZMNCivjgojjgZfjgoLjgags44Gf44GL44Gy44KNDQor44GG44Gq44GL44G/LOOBqOOCguOBkw0KK+OBi+OBreOBvuOBpCzjgZXjgY3jgZMNCivjgYvjgo/jgYvjgb8s44G+44GT44GoDQor44Go44KI44GgLOOBsuOBp+OBig0KK+OChOOBrizjgYLjgY3jgbLjgZMNCivjgZvjgY0s44Gf44GL44GC44GNDQor44Gq44GL44Gr44GXLOOBsuOBqOOBlw0KK+OBr+OBl+OCguOBqCzjgYLjgY0NCivjgbXjgYvjgoQs44GP44Gr44GC44GNDQor44G/44KE44KC44GoLOOBsuOBp+OBj+OBqw0KK+OBn+OBkeOBoCzjgajjgZfjgbXjgb8NCivjgb/jgoTjgZbjgo8s44G/44GN44GKDQor44GE44GR44GgLOOBi+OBmuOBsuOBkw0KK+OBiuOBl+OBvizjgbLjgo3jgZcNCivjgarjgYvjgoDjgoks44GI44KK44GTDQor44GU44Go44GGLOOChuOBhuOBhOOBoeOCjeOBhg0KK+OBhuOBl+OBlOOCgSzjgbLjgo3jgZcNCivjgY/jgo/jgoTjgb4s44Gy44KN44GC44GNDQor44Gk44GL44GgLOOBoeOBr+OCiw0KK+OCgOOCieOBnyzjgaHjgYvjgYoNCivjgZXjgajjgYYs44KI44GX44Gf44GLDQor44GP44KN44GgLOOBi+OBiuOCig0KK+OBmeOBjuOCguOBqCzjgY/jgavjgYoNCivjgoTjgZnjgaAs44GT44GG44GE44GhDQor44GN44GG44GhLOOBleOBqOOBlw0KK+OBkeOBqeOBhuOBhOOCkyzjgZjjgoXjgpPjgYTjgaENCivjgZ/jgarjgYss44Gh44GLDQor44Gq44GL44KA44KJLOOBsuOCjeOBguOBjQ0KK+OBj+OCiuOBr+OCiSzjgajjgojjgbLjgZMNCivjgZ/jgY3jgZbjgo8s44GL44Ga44Gu44KKDQor44GG44GI44GgLOOBsuOBp+OBguOBjQ0KK+OBk+OBuSzjgbLjgafjgYLjgY0NCivjga7jgZDjgaEs44G144G/44GKDQor44GT44KT44GuLOOBqOOCguOBsuOBkw0KK+OBqOOBv+OBnyzjgYvjgarjgoENCivjgYrjgYrjgZ8s44KG44GN44GTDQor44G+44GNLOOBsuOBi+OCiw0KK+OBguOBvuOBrizjgZHjgpPjgYTjgaHjgo0NCivjgZPjgb/jga0s44GC44GN44Gy44KNDQor44GV44Go44GGLOOBqOOCguOChA0KK+OBhOOBvuOBpyzjgobjgYbjgZgNCivjgb7jgaTjgarjgYws44Gf44Gk44KEDQor44GZ44Ga44GNLOOBn+OBkeOBlw0KK+OBvuOBpOOBiizjgYvjgYgNCivjgZXjgYTjgajjgYYs44GN44KH44GG44GE44GhDQor44KI44GX44GW44KPLOOCj+OBn+OCiw0KK+OBhuOChOOBvizjgZHjgYTjgZMNCivjgYLjgpPjganjgYYs44G+44GV44Gy44GTDQor44GZ44Ga44GNLOOBleOBqOOBlw0KK+OCiOOBl+OBoCzjgYvjgZrjgajjgZcNCivjgYvjgo/jgaAs44GI44G/44GTDQor44G144GP44GgLOOBkeOBhA0KK+OCguOCiuOBl+OBvizjgb7jgZXjgZcNCivjgaTjgaHjgaAs44Go44GK44KLDQor44GV44GL44GELOOBv+OBoeOChOOBmQ0KK+OBpOOBi+OBoCzjgYLjgaTjgZcNCivjga/jgaPjgajjgoos44Gy44KN44GXDQor44Gf44KA44KJLOOBk+OBhuOBmA0KK+OCj+OBn+OBquOBuSzjgarjgYrjgY0NCivjgZPjgZnjgY4s44Gf44GL44GC44GNDQor44Gy44KJ44GfLOOBkeOBhOOBnw0KK+OBmeOBjuOChOOBvizjgojjgZfjgobjgY0NCivjgoLjgorjgYvjgo8s44KC44Go44Gv44KLDQor44GL44Gp44GfLOOBguOBjeOBsuOCjQ0KK+OBleOBrizjgbLjgo3jgZcNCivjgYrjgZbjgY0s44Gm44Gk44GKDQor44KI44GT44G+44GkLOOBi+OBpOOBsuOBlQ0KK+OBn+OBquOBiyzjgobjgb/jgZMNCivjgYTjgZfjgZXjgYss44GT44GG44GE44Gh44KN44GGDQor44GE44GX44GW44KPLOOChuOBmuOBjQ0KK+OBk+OBsOOChOOBlyzjgZjjgoXjgpMNCivjgojjgZfjgaAs44Go44KC44GC44GNDQor44GN44KA44KJLOOCiuOBiOOBkw0KK+OBiuOBiuOBpOOBiyzjgZ/jgZHjgosNCivjgYLjgaDjgaEs44Gf44GL44GXDQor44GC44GL44GV44GLLOOBl+OCh+OBhuOBmA0KK+OBv+OChOOCguOBqCzjgb/jganjgooNCivjgYTjgaHjgoDjgoks44GL44GK44KKDQor44GK44GX44GfLOOBruOBtuOChuOBjQ0KK+OBu+OCk+OBoCzjgYrjgZXjgoANCivjgYvjgoTjgazjgb4s44GT44GG44GYDQor44Gu44GW44GNLOOChuOBhuOBmA0KK+OBi+OBqeOCj+OBjSzjgbXjgZjjgYgNCivjgYrjgZgs44KE44GZ44Gy44KNDQor44Gf44GQ44GhLOOChOOBmeOBpOOBrQ0KK+OBn+OBkeOBhOOBlyzjgYLjgY3jgagNCivjgbLjgonjgYQs44GX44KT44GYDQor44GL44Gq44GW44KPLOOBmOOCheOCk+OBhOOBoQ0KK+OBteOCi+OBi+OCjyzjgYjjgorjgYsNCivjgoLjgorjgarjgYss44G+44GV44KIDQor44GC44KJ44GELOOBqOOBl+OBguOBjQ0KK+OBn+OBquOBiyzjgojjgZfjga7jgooNCivjgZfjgb/jgZos44KI44GX44KG44GNDQor44GE44Gh44Gv44KJLOOBvuOBleOCiw0KK+OBjeOBn+OBruOBr+OCiSzjgbLjgafjgbLjgo0NCivjgY3jgZ/jgYos44Go44KC44Gy44GoDQor44KC44KK44KC44GoLOOBsuOBp+OBjQ0KK+OBjeOBn+OCgOOCiSzjgorjgYvjgZMNCivjgZXjgZXjgZbjgo8s44Gf44GR44GXDQor44G+44Gk44GK44GLLOOBquOBiuOBkw0KK+OBk+OBhuOCiSzjgZ/jgYvjgbLjgo0NCivjgb/jgo8s44Gy44KN44GTDQor44KI44GX44GK44GLLOOBsuOCjeOBkw0KK+OBu+OCiizjgobjgb/jgZMNCivjgZXjgYTjgajjgYYs44KI44GX44Gy44GoDQor44Gq44GM44GbLOOBsuOBp+OBr+OCiw0KK+OCguOCiuOBl+OBvizjgbLjgo3jgYsNCivjgYrjgo/jgoos44G+44GN44GTDQor44Gf44Gq44GLLOOBv+OBjQ0KK+OBpuOCieOCgOOCiSzjgajjgZfjgb7jgZUNCivjgZPjgbDjgoTjgZcs44GN44KH44GG44Ge44GGDQor44GV44GE44Go44GGLOOBsuOCjeOBruOCig0KK+OBjeOCgOOCiSzjgZ/jgZHjgZcNCivjga/jgZfjgoLjgags44KI44GX44Gy44GVDQor44Gq44GL44GM44KPLOOBpuOBpOOChA0KK+OBquOBi+OCgOOCiSzjgb7jgZXjgYrjgY0NCivjga/jgY7jgo/jgoks44GP44Gr44Gy44GTDQor44Gr44GX44GL44KPLOOBqOOCguOBvw0KK+OBjeOBn+OBmOOBvizjgZPjgYbjgYTjgaENCivjgZ/jgYvjgYbjgoks44KE44GZ44GKDQor44GC44GV44GgLOOBsuOBp+OCiA0KK+OBjeOBn+OBmuOCgSzjgYLjgonjgZ8NCivjga3jgoLjgags44KP44GL44GTDQor44Gf44Gq44GLLOOBvuOBleOBsuOBkw0KK+OBn+OBquOBiyzjgYvjgZrjgbLjgo0NCivjgYLjgaDjgaEs44GL44Ga44Gy44GTDQor44Gv44KJLOOBvuOBleOChuOBjQ0KK+OBguOBi+OBvuOBpCzjgZHjgpPjgZQNCivjgYTjgb7jgoDjgoks44GC44Gk44GXDQor44KA44KJ44KE44G+LOOCiOOBhuOBmA0KK+OBn+OBkeOBhuOBoSzjgZ/jgYvjgobjgY0NCivjgZrjgZcs44KE44GZ44GKDQor44GT44Gw44KE44GXLOOBi+OBuw0KK+OChOOBvuOBluOBjSzjgYLjgaTjgZMNCivjga/jgb7jgZDjgaEs44Gd44GG44GE44GhDQor44GL44GS44KE44G+LOOBsuOCjeOChuOBjQ0KK+OBi+OBquOCguOCiizjgbLjgafjgY0NCivjgYvjgajjgoos44Gk44KI44GXDQor44GC44KJ44GELOOBl+OCh+OBhuOBuOOBhA0KK+OBv+OChOOBnyzjgb7jgorjgZMNCivjgZnjgZrjgY0s44GI44G/44GTDQor44Gv44KL44GfLOOBsuOBp+OChA0KK+OBquOBi+OBluOCjyzjgZ/jgYvjgZcNCivjgZnjgYws44G+44GV44KG44GNDQor44G+44GI44Gn44KJLOOBpuOCi+OChuOBjQ0KK+OBguOCieOBvuOBjSzjgYLjgaTjgZcNCivjgY3jgZ/jga4s44Gf44Gk44KEDQor44KI44GX44GuLOOBl+OBkuOBv+OBpA0KK+OBv+OBj+OCiuOChCzjgojjgYbjgZMNCivjgYrjgY/jga7jgY4s44GR44KT44GYDQor44GV44GP44KJ44GELOOCiOOBl+OBi+OBpA0KK+OBk+OCk+OBqSzjgarjgYoNCivjgZnjgZrjgY0s44Gu44KK44GTDQor44GP44KK44Gv44KJLOOBj+OBv+OBkw0KK+OCgOOBk+OBhuOBkOOBoSzjgb7jgY0NCivjgbXjgZjjgYQs44GC44GN44Gy44KNDQor44GL44GSLOOChuOBhuOBkw0KK+OBvuOBiOOBoCzjga7jgbbjgoQNCivjgarjgYzjgbvjgoos44KG44GN44GTDQor44Gk44GYLOOCguOCguOBkw0KK+OBjeOCgOOCiSzjgZfjgpPjgZ/jgo3jgYYNCivjgb7jgaTjgYos44GT44GG44GE44GhDQor44Gf44Gm44GuLOOBruOCiuOCiOOBlw0KK+OBjeOCgOOCiSzjgb7jgZPjgagNCivjgZnjgZbjgY0s44Gf44Gk44KEDQor44GE44KP44GV44GNLOOBv+OChOOBsw0KK+OBleOBqOOBhizjgobjgooNCivjgavjgaPjgZ8s44Gg44GE44GL44KTDQor44Gf44Gq44GLLOOBvuOCig0KK+OBl+OBvuOBoCzjgYLjgYvjga0NCivjgZ/jgavjgZDjgaEs44Gu44KK44GTDQor44G744KT44GgLOOBmeOBquOBig0KK+OBquOBi+OBn+OBqyzjgZ/jgYvjgZcNCivjgb/jgoTjgZjjgb4s44GX44KF44KTDQor44GP44GN44KE44G+LOOBk+OBhuOBmA0KK+OBm+OBjeOBrSzjgorjgofjgYbjgZ/jgo3jgYYNCivjgojjgZfjga/jgoks44GV44Go44KLDQor44Gy44KJ44GfLOOBvuOBleOBi+OBmg0KK+OBquOBjOOBleOCjyzjgajjgZfjgYoNCivjgarjgYvjgYzjgY0s44GR44GE44GTDQor44GP44KN44GL44KPLOOChOOBmeOChuOBjQ0KK+OBi+OBkeOBn+OCiizjgZHjgpPjgZjjgo3jgYYNCivjgYTjgajjgYYs44GL44KI44GTDQor44G+44GI44GL44KPLOOBmOOCheOCk+OBmA0KK+OBvuOBpOOBoCzjgYLjgY3jgYoNCivjgY/jgo/jga/jgoks44G+44GT44GoDQor44GE44GE44Ga44GLLOOCj+OBi+OBkw0KK+OBvuOBmOOBvizjgbLjgafjgobjgY0NCivjgoDjgonjgZ8s44Go44KC44GTDQor44GC44GN44GE44GRLOOChuOBhuOBhOOBoQ0KK+OBquOBv+OBjSzjgabjgaTjgoQNCivjgojjgZfjga4s44G/44GN44GTDQor44GZ44Ga44GNLOOChuOBjQ0KK+OBn+OCgOOCiSzjgb/jganjgooNCivjgYvjgoHjgaAs44GX44KT44KEDQor44Gr44GXLOOChOOBmeOBlw0KK+OBhOOBquOBiuOBiyzjgZHjgpPjgZgNCivjgYTjgo/jgZXjgY0s44KG44GG44GYDQor44GL44KT44GgLOOBquOBvw0KK+OBn+OBoCzjgYjjgYTjgY0NCivjgYbjgaQs44Go44KC44GC44GNDQor44GX44G+44GgLOOBvuOBleOBig0KK+OCiOOBl+OBoCzjgbLjgo3jgobjgY0NCivjgYrjgY/jgYzjgo8s44KI44GX44G144G/DQor44GZ44Ga44GNLOOBkeOBhOOBkw0KK+OBn+OCk+OBvSzjgb/jga3jgZMNCivjgo/jgaAs44Gq44GK44GTDQor44GG44KL44GX44Gv44KJLOOBiOOBhOOBmeOBkQ0KK+OBhOOBhOOBiizjgZ/jgo3jgYYNCivjgavjgYTjga/jgoks44GN44KH44GG44GTDQor44GK44KA44KJLOOBn+OBj+OChA0KK+OBhOOBruOBhuOBiCzjgZzjgpPjgZjjgo3jgYYNCivjgoLjgorjgarjgYws44Go44GX44Gy44KNDQor44GV44GuLOOBsuOCjeOBlw0KK+OBquOBi+OBn+OBqyzjgb7jgZXjgoTjgZkNCivjgYLjgbks44G+44GV44Gq44GKDQor44GG44Gh44GgLOOBkeOCk+OBmA0KK+OBsuOCjeOBnyzjgobjgYbjgZXjgY8NCivjgYTjgo/jgY/jgoks44GL44GE44GY44KN44GGDQor44GE44GX44GK44GLLOOBsuOBp+OBguOBjQ0KK+OBqOOBjeOBnyzjgarjgaTjgZMNCivjgY3jga7jgZfjgZ8s44Gq44GK44GZ44GRDQor44G/44Ga44GuLOOBguOBhOOBkw0KK+OChOOBmeOBiCzjgb7jgZXjgb8NCivjgYTjgo/jgoLjgags44GV44Go44KLDQor44KE44G+44GYLOOChuOBi+OCig0KK+OBk+OBleOBhCzjgobjgYbjgZMNCivjgY/jgbws44Go44GX44GIDQor44Gh44GwLOOBsuOBi+OCiw0KK+OChOOBpOOBn+OBqyzjgYLjgaTjgZcNCivjgYTjgYzjgonjgZcs44Gf44GL44Ga44G/DQor44GC44KJ44GL44KPLOOBguOBi+OBrQ0KK+OBpuOCieOBleOBjSzjgoLjgajjgYLjgY0NCivjgZvjgZTjgYgs44GV44Go44GTDQor44Go44GP44GX44G+LOOBvuOBleOBkw0KK+OBsOOCk+OBqeOBhizjgZfjgofjgYbjgZMNCivjgZ/jgY3jgZbjgo8s44GR44KT44GYDQor44G/44Ga44GV44GNLOOBkeOCk+OBn+OCjeOBhg0KK+OBn+OBjeOBkOOBoSzjgZHjgYQNCivjgbLjgYrjgY0s44G+44GV44GXDQor44Gq44GL44GELOOBguOBpOOBvw0KK+OBiuOBhOOBi+OCjyzjgozjgYTjgZMNCivjgb7jgaTjgoDjgoks44Gh44GQ44GVDQor44GI44KT44GpLOOCiOOBl+OBig0KK+OBn+OBmOOBvizjgZXjgajjgZMNCivjgoTjgb7jgZbjgY0s44GI44GE44GYDQor44Gb44Gu44GKLOOBk+OBhuOBmA0KK+OBr+OCieOBoCzjgajjgZfjgb7jgZUNCivjgbXjgY/jgYQs44Go44KC44GLDQor44G+44Gk44GG44KJLOOBkeOBhA0KK+OBi+OCj+OCgOOCiSzjgobjgYbjgYTjgaENCivjgabjgonjgoLjgags44Gf44GL44G/44GhDQor44Gv44GO44KP44KJLOOBn+OBj+OBvw0KK+OBquOBi+OBl+OBvizjgYjjgb/jgZMNCivjgY3jga7jgZfjgZ8s44G/44Gh44GKDQor44GC44KJ44GELOOBoeOBmuOCiw0KK+OCgOOCieOChOOBvizjgZjjgoXjgpPjgZMNCivjgZXjgYjjgZDjgZUs44Go44KC44G/DQor44Gf44Gq44GLLOOBv+OBpOOBkw0KK+OBvuOBiOOBoCzjgYrjgZXjgoANCivjgb/jgoTjgZbjgY0s44GL44Ga44G/DQor44GE44GR44G5LOOBguOBjeOCiQ0KK+OBj+OCj+OBsOOCiSzjgZ/jgYvjga7jgooNCivjgojjgaAs44Gf44GL44GKDQor44Gf44Gh44Gw44GqLOOChOOBmeOBguOBjQ0KK+OChOOBvuOBkOOBoSzjgojjgZfjgYLjgY0NCivjgYTjgZfjga/jgoks44GR44GE44GTDQor44Gf44GN44GW44KPLOOBvuOBleOBguOBjQ0KK+OBsuOCieOBrizjgojjgZfjgbbjgb8NCivjgYvjgo/jgZXjgY0s44Gf44GL44KI44GXDQor44KE44G+44KC44GoLOOBsuOBleOBqOOBlw0KK+OBguOCieOBmyzjgYLjgaTjgZcNCivjgoTjgarjgY7jgZXjgo8s44G+44GV44Gu44G2DQor44GX44GK44KELOOBguOBjeOBiA0KK+OBleOBqOOBhizjgZPjgYbjgYTjgaHjgo3jgYYNCivjgYvjgajjgYYs44Gy44Go44G/DQor44GK44GuLOOCiOOBl+OBn+OBiw0KK+OBjeOBn+OBr+OBvizjgoTjgZnjgb7jgZUNCivjgZTjgajjgYYs44Gu44KK44GTDQor44Gr44Gu44G/44KELOOBvuOChuOBvw0KK+OBhuOBmeOBhCzjgajjgoLjga7jgooNCivjgb/jgZrjgZfjgb4s44Gf44GR44KLDQor44GZ44Gp44GGLOOBvuOBk+OBqA0KK+OBhOOBkeOBoCzjgYLjgY3jgZMNCivjgarjgYvjgbLjgYzjgZcs44GC44KK44GX44GSDQor44GP44KK44KC44GoLOOCjeOCj+OCiw0KK+OBqOOBoCzjgbLjgo3jgZ/jgYsNCivjga/jgYvjgb7jgZ8s44GC44Gk44Gu44G2DQor44Gf44Gr44GQ44GhLOOBr+OCi+OBvw0KK+OBhOOBvuOBnOOBjSzjgYTjgY/jgZMNCivjgbvjgorjgYos44G+44KG44G/DQor44GL44GZ44GMLOOBpOOCiOOBlw0KK+OBi+OCj+OBmyzjgarjgYrjgZMNCivjgZXjgajjgYYs44Gy44KN44G/DQor44Gf44GL44Gq44GXLOOBruOBtuOBguOBjQ0KK+OBvuOBpOOBl+OBnyzjgZ/jgYvjgZcNCivjgoTjgZDjgaEs44Gy44Gn44GNDQor44GL44Gt44GTLOOBi+OBmuOChuOBjQ0KK+OBsuOBoOOBiyzjgb/jgYoNCivjgZXjgaPjgZUs44Gf44GE44GhDQor44Gd44GMLOOBn+OBj+OChA0KK+OBmeOBjuOBhuOCiSzjgZHjgpPjgZ/jgo3jgYYNCivjgZXjgajjgYYs44GC44G/44GTDQor44Gf44Gr44Gw44KE44GXLOOBleOBoeOBkw0KK+OBq+OBl+OBiuOBiyzjgZ/jgYvjgZcNCivjgajjgoLjgarjgYws44Gq44GK44GNDQor44GK44GK44Gv44GXLOOBsuOBp+OBjQ0KK+OBquOBjOOBl+OBvizjgZvjgYTjgZ8NCivjgZ/jgavjgYzjgY0s44Gb44GE44GTDQor44GT44GG44GgLOOBk+OBv+OBqg0KK+OBjeOCiOOBrizjgZXjgajjgZcNCivjgoTjgb7jgYvjgo8s44Go44GX44GKDQor44Gq44GL44GY44G+LOOBsuOCjeOBlw0KK+OCguOBpuOBjizjgZPjgYbjgZgNCivjgYrjgYrjgazjgb4s44KG44Gf44GLDQor44GV44Go44GGLOOBl+OBkuOBig0KK+OBteOCi+OBhOOBiCzjgojjgZfjgZMNCivjgYLjgYTjgoLjgags44KC44Go44G144G/DQor44KI44GT44GKLOOBj+OBq+OBig0KK+OBq+OBl+OBi+OCjyzjgZHjgpPjgZgNCivjgbPjgajjgYYs44KI44GX44Gq44GMDQor44GN44Gf44KA44KJLOOBl+OCk+OChA0KK+OChOOBvuOBi+OCjyzjgZXjgaDjga/jgosNCivjgajjgb/jgZ8s44Gf44GR44GXDQor44Gk44Gh44GgLOOBsuOBp+OBqA0KK+OBhOOBl+OBkOOCjSzjgorjgYgNCivjgb7jgaTjgYos44Go44GK44KLDQor44GG44GI44KC44GoLOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBhOOBhOOBoCzjgb/jgY3jgZMNCivjgZnjgZrjgY0s44GX44GS44Gy44KNDQor44Gf44KA44KJLOOBi+OBmuOCiOOBlw0KK+OBiuOBj+OBoCzjga7jgbzjgosNCivjgbvjgoos44KI44GX44G/DQor44GP44GV44Gk44GQLOOChOOBmeOBlw0KK+OChOOBvuOBoCzjgb7jgZXjgarjgYoNCivjgYLjgZXjga/jgoks44Gf44GL44Gy44KNDQor44Go44GP44GgLOOBvuOCk+OBquOCig0KK+OBhOOBp+OBnyzjgojjgZfjgbLjgo0NCivjgYTjgajjgYYs44Gm44KL44G/44GhDQor44GV44Go44GGLOOBjeOBhOOBoeOCjeOBhg0KK+OBpOOBmOOBleOCjyzjgZHjgYQNCivjgYrjga4s44GT44GG44GYDQor44GE44KP44G+LOOBruOBtuOBguOBjQ0KK+OBoOOBhOOBlOOBjyzjgZjjgoXjgpPjgYTjgaENCivjgoTjgb7jgoDjgoks44KI44GX44GL44GaDQor44Gv44Gb44GM44KPLOOBqOOBl+OBi+OBmg0KK+OBhOOBjizjgZ/jgYvjgbLjgo0NCivjgb7jgYvjgbks44G+44GV44GL44GkDQor44GK44GL44KC44GoLOOBi+OBpOOBig0KK+OBiuOBiuOBr+OCiSzjgobjgY3jgarjgYoNCivjgZvjgY3jgoTjgb4s44GL44Ga44GKDQor44GN44Gf44GY44G+LOOBsuOCjeOBguOBjQ0KK+OBqOOCiuOBhuOBvyzjgb7jgZXjgbLjgo0NCivjgb/jgoTjgZbjgY0s44Gf44Gm44GKDQor44GG44GELOOCiOOBl+OBsuOBqA0KK+OBj+OCieOCguOBoSzjgYvjgZrjgbLjgo0NCivjgZfjgYrjgazjgb4s44Gy44Gn44Go44GXDQor44KJ44GE44GfLOOBhOOBj+OBig0KK+OBl+OCguOBk+OBhuOBuSzjga7jgbbjgYvjgZoNCivjgZXjgo/jga4s44Gm44KL44GKDQor44GV44GL44Gr44GXLOOChuOBhuOBmA0KK+OBleOBleOBjSzjgajjgZfjgYoNCivjgZvjgYTjga4s44GR44GE44Ge44GGDQor44GZ44Ga44GNLOOBguOBjeOCiOOBlw0KK+OBleOBi+OCguOBqCzjgajjgZfjgYoNCivjgZnjgZrjgY0s44GX44KN44GGDQor44GV44KP44GuLOOBi+OBpOOChA0KK+OBl+OBjCzjgabjgaTjgoQNCivjgZTjgajjgYYs44Go44GP44G+44GVDQor44GZ44GgLOOBmOOCheOCk+OBmA0KK+OBmeOBmuOBjSzjgojjgZfjgZMNCivjgZXjgYvjgY3jgbDjgoks44Go44GX44GKDQor44GV44Go44GGLOOBkeOCk+OBmA0KK+OBleOBi+OBkOOBoSzjgojjgZfjga7jgooNCivjgZnjgY7jgZXjgY0s44G/44Gk44GP44GrDQor44GZ44GI44GNLOOBn+OBi+OBlw0KK+OBmeOBmuOBjSzjga7jgbbjgYLjgY0NCivjgZfjgbDjgZ8s44GT44Go44GYDQor44GZ44GO44KE44G+LOOBn+OBoOOBig0KK+OBleOBi+OBhCzjgb7jgZXjgobjgY0NCivjgZfjgb/jgZos44Gf44Gg44GXDQor44GZ44GO44KC44GoLOOBqOOBl+OBig0KK+OBleOBqOOBhizjgZ/jgY/jgZgNCivjgZvjgY0s44GK44GV44KADQor44GV44GP44KJ44GELOOBr+OCi+OChuOBjQ0KK+OBm+OBjeOBkOOBoSzjgZPjgZnjgZENCivjgZXjgajjgYYs44GI44GE44GYDQor44GZ44Ga44GNLOOChuOBhuOBruOBmeOBkQ0KK+OBleOBhOOBqOOBhizjgZ/jgaDjgYoNCivjgZvjgY3jga0s44Go44KI44G144G/DQor44GZ44Ga44GNLOOBpOOBqOOCgA0KK+OBhOOBhOOBoCzjgY3jgojjgZ/jgYsNCivjgZnjgZrjgY0s44Gy44KN44GXDQor44GV44GV44GNLOOBv+OBpOOBig0KK+OBmeOBiOOBquOBjCzjgajjgZfjgYoNCivjgZXjgYvjgoLjgags44Gy44Gn44GC44GNDQor44GV44GE44Go44GGLOOBvuOBleOBvw0KK+OBmeOBjOOBiizjgabjgaTjgZgNCivjgZfjgb7jgZos44G/44Gu44KLDQor44GV44GE44Go44GGLOOBteOBv+OBig0KK+OBl+OBruOBluOBjSzjgYLjgY3jgokNCivjgZnjgZrjgY0s44KI44GX44KG44GNDQor44GZ44Gq44GMLOOBkeOCkw0KK+OBleOBqOOBhizjgYrjgZXjgoANCivjgZnjgZrjgY0s44GR44GE44Gf44KN44GGDQor44Gb44GN44GtLOOBleOBoOOBruOCig0KK+OBleOBleOBjSzjgajjgZfjgYoNCivjgZXjgo/jgaAs44GC44GN44KJDQor44GV44GE44Go44GGLOOBi+OBmuOBig0KK+OBl+OCguOBnuOBrizjgZ/jgaDjgbLjgZMNCivjgZnjgYgs44Gf44GL44GXDQor44GV44Gp44Go44KCLOOBguOBjeOCiQ0KK+OBm+OBjeOBrSzjgZHjgpPjgZnjgZENCivjgZXjgajjgYYs44GV44Go44GXDQor44GV44KT44GULOOCiOOBl+OBruOBtg0KK+OBmeOBqeOBhizjgY/jgavjgYLjgY0NCivjgZ3jga7jgaAs44Gq44GK44G/DQor44GX44G+LOOBv+OBruOCiw0KK+OBleOBqOOBhizjgojjga3jgZ7jgYYNCivjgZXjgajjgYYs44Go44G/44GKDQor44GX44G244KELOOBi+OBmuOBguOBjQ0KK+OBleOBqOOBhizjgYvjgZrjgYoNCivjgZXjgajjgYYs44Gm44KL44Gy44GTDQor44GV44GL44GfLOOCiOOBreOBig0KK+OBleOBhOOBqOOBhizjgYrjgZXjgoANCivjgZnjgo/jgY0s44Gf44GL44GXDQor44Gd44KKLOOBn+OBkeOBmA0KK+OBleOBi+OCguOBqCzjgZfjgoXjgpPjgYTjgaENCivjgZfjgonjgYTjgZcs44G+44GV44Go44GXDQor44GZ44Ga44GNLOOBguOBjeOBig0KK+OBl+OBvuOBoCzjgajjgZfjgYoNCivjgZnjgZrjgY0s44G+44GV44Gy44KNDQor44GZ44Ga44GNLOOCiOOBl+OBig0KK+OBleOBqOOBhizjga/jgZjjgoENCivjgZnjgZrjgY0s44GN44KI44GXDQor44GV44Go44GGLOOBpOOBqOOCgA0KK+OBl+OBkuOBvuOBpCzjgY3jgojjgZcNCivjgZXjgYzjgoks44Gf44GL44Go44GXDQor44GV44GE44Go44GGLOOChuOBjeOBig0KK+OBl+OCk+OBkOOBhizjgZ/jgYvjgYoNCivjgZnjgYzjgazjgb4s44Gm44KL44Gu44G2DQor44Gd44GMLOOBn+OBkeOBlw0KK+OBleOBleOBjSzjga7jgbbjgobjgY0NCivjgZXjgajjgYYs44GX44GS44KLDQor44GV44KP44GgLOOBpuOBpOOBig0KK+OBneOBvizjgYrjgZXjgoANCivjgZfjgbDjgZ8s44Gf44GR44GKDQor44GV44Go44GGLOOBv+OBoeOBkw0KK+OBleOBqOOBhizjgY3jgojjgZcNCivjgZfjgb7jgaAs44Gy44Gn44GKDQor44GV44GV44GNLOOBruOBtuOBig0KK+OBleOBqOOBhizjgZHjgpPjgZgNCivjgZXjgYTjgajjgYYs44GX44GS44KLDQor44GX44KC44GnLOOBsuOBp+OBjQ0KK+OBleOBleOBjSzjgajjgZfjgYoNCivjgZXjgajjgYYs44KI44GGDQor44GV44Go44GGLOOBsuOBleOBig0KK+OBleOCj+OBoCzjgZfjgpPjgYTjgaENCivjgZfjgo3jgZXjgY0s44KI44GG44GE44GhDQor44GX44Gw44GELOOBmeOBmeOCgA0KK+OBleOBhOOBqOOBhizjgb/jgaHjgYoNCivjgZnjgZrjgY0s44Go44GX44GKDQor44Gd44GM44G5LOOBhOOBleOBig0KK+OBm+OBjOOCjyzjgaHjgbLjgo0NCivjgZfjgb/jgZos44G/44Gu44KLDQor44GZ44Ga44GNLOOCiOOBhuOBmOOCjeOBhg0KK+OBl+OCjeOChOOBvizjgojjgZfjgbLjgZMNCivjgZfjgYTjgaos44KI44GX44GKDQor44GV44KE44G+LOOBvuOCguOCiw0KK+OBleOBi+OCguOBqCzjgb7jgZPjgagNCivjgZXjgajjgYYs44Gy44KN44GXDQor44GZ44Ga44GNLOOBn+OBoOOCiOOBlw0KK+OBmeOBmuOBjSzjgabjgaTjgo3jgYYNCivjgZXjgZXjgZss44GL44Gk44KG44GNDQor44GV44GP44KJ44GELOOBvuOBleOBjQ0KK+OBl+OBvuOBoCzjgZvjgYTjgZgNCivjgZXjgajjgYYs44GL44Gk44Gy44KNDQor44GX44KC44GuLOOCiOOBhuOBmeOBkQ0KK+OBmeOBmuOBjSzjgojjgZfjgarjgooNCivjgZnjgY7jgoLjgags44G+44GV44GKDQor44GX44G/44GaLOOBn+OBkeOBig0KK+OBleOBrizjgojjgZfjga7jgbYNCivjgZnjgZrjgY0s44GT44GG44G444GEDQor44GX44G+44GgLOOBi+OBmuOBsuOBkw0KK+OBmeOBmuOBjSzjga/jgovjgbLjgZUNCivjgZnjgY7jgbXjgZgs44Gy44Go44GXDQor44GV44GL44GELOOBl+OCk+OBhOOBoQ0KK+OBleOBi+OBkOOBoSzjgYjjgYTjgZgNCivjgZnjgYzjgo/jgoks44Gg44GE44GV44GPDQor44GX44Gu44Ga44GLLOOBmOOCheOCk+OBhOOBoQ0KK+OBl+OBjCzjgb/jgaTjgYoNCivjgZXjgYvjgYzjgb8s44Go44KI44G+DQor44GZ44Ga44GNLOOBi+OBmuOChuOBjQ0KK+OBmeOBjuOBrizjgbLjgafjgYoNCivjgZnjgY7jgYbjgoks44GZ44GZ44KADQor44GX44G/44GaLOOBi+OBmuOBvw0KK+OBmeOBmuOBjSzjgZ/jgZHjgZfjgZINCivjgZXjgZXjgZMs44Gb44GE44Ge44GGDQor44Gb44GNLOOChuOBjeOCiOOBlw0KK+OBleOBqOOBhizjgZ/jgaTjgZgNCivjgZfjgb4s44Gy44KN44GXDQor44GZ44Ga44GNLOOBjeOCiOOBpuOCiw0KK+OBleOBi+OCguOBqCzjgojjgZfjgYvjgZoNCivjgZXjgZXjgY0s44Gy44KN44GXDQor44GX44G+44GgLOOBhOOBneOBmA0KK+OBleOBhOOBqOOBhizjgZ/jgaDjgbLjgZUNCivjgZfjgYrjgZ8s44Go44KI44GKDQor44GX44GK44GgLOOBhOOBleOCgA0KK+OBmeOBoCzjgYjjgYTjgZgNCivjgZfjgYTjgaos44GR44KT44Ge44GGDQor44GX44GK44Gu44KELOOBpuOBpOOBig0KK+OBleOBhOOBl+OCh+OBhizjgoTjgZnjgbLjgo0NCivjgZ3jgYTjgaAs44GI44GE44GE44GhDQor44Gd44G+LOOBi+OCk+OBmA0KK+OBleOBqOOBhizjgbLjgo3jgZcNCivjgZXjgajjgYYs44Gf44GR44G/44GhDQor44GX44GK44Gw44KJLOOBjeOCiOOBiA0KK+OBleOBleOBiuOBiyzjgojjgZfjgZ/jgYsNCivjgZXjgZXjgY0s44G/44Gk44Gu44G2DQor44Gb44GoLOOBteOBv+OBig0KK+OBl+OCheOBqeOBhizjgZ/jgYvjgYoNCivjgZXjgYvjgoLjgags44Gy44KN44GXDQor44GV44GP44G+LOOBn+OBi+OBlw0KK+OBl+OBruOBluOCjyzjgaTjgojjgZcNCivjgZfjgYrjgbDjgoks44Gy44KN44KG44GNDQor44GV44GP44KJ44GELOOChuOBmuOCiw0KK+OBleOBqOOBhizjgoHjgZDjgoANCivjgZXjgY/jgonjgYQs44Go44GX44GKDQor44GV44GV44G5LOOBsuOCjeOBlw0KK+OBleOBqOOBhizjgorjgoXjgYbjgZ7jgYYNCivjgZnjgY7jgYbjgoks44KG44GG44Ge44GGDQor44GV44GL44GELOOBvuOBleOBig0KK+OBneOBvizjga7jgbbjgYoNCivjgZ3jgYbjgoQs44Gb44GE44GYDQor44Gd44Gt44GL44GkLOOBguOBjeOCiQ0KK+OBm+OBjeOBrSzjgZ/jgZHjgYoNCivjgZnjgZrjgY0s44Gu44KK44GKDQor44Gb44GN44GtLOOBqOOBl+OBpOOBkA0KK+OBleOBi+OBjeOBsOOCiSzjgYvjgZrjgajjgZcNCivjgZfjgoLjgYvjgo/jgbks44GR44KTDQor44GV44KP44KA44KJLOOBquOCi+OBvw0KK+OBm+OBjSzjgZjjgoXjgpPjgYTjgaENCivjgZnjgZrjgY0s44GT44Ga44GIDQor44GV44GL44G+44GNLOOBsuOBp+OBguOBjQ0KK+OBleOBjOOCjyzjgajjgZfjgbLjgZUNCivjgZnjgY7jgoTjgb4s44Gf44GR44KG44GNDQor44GZ44GO44KC44GoLOOBkw0KK+OBm+OBiizjgobjgYbjgZgNCivjgZXjgYTjgajjgYYs44Gf44GL44GXDQor44GV44GL44GELOOBv+OBjeOBig0KK+OBleOBj+OCieOBhCzjgZ/jgaDjgbLjgo0NCivjgZvjgY3jga0s44G+44GV44Gu44KKDQor44GV44Go44GGLOOBr+OBpOOBvw0KK+OBl+OBv+OBmizjgZ/jgYvjgZcNCivjgZfjgb/jgZos44Go44GX44GKDQor44GV44GE44Go44GGLOOBvuOBleOBig0KK+OBleOBj+OCieOBhCzjgb7jgZXjgYLjgY0NCivjgZnjgY7jgoTjgb4s44KE44GZ44GKDQor44GX44Ga44GLLOOBsuOBleOBquOBig0KK+OBl+OCieOBi+OCjyzjgYLjgY3jgokNCivjgZXjgYTjgajjgYYs44KG44Ga44KLDQor44GV44GN44KC44KKLOOBhOOCj+OBig0KK+OBleOBqOOBhizjgabjgaTjgYoNCivjgZvjgY3jgZDjgaEs44GK44GN44Go44GXDQor44Gb44GN44GtLOOBruOCiuOBkw0KK+OBl+OBsOOBnyzjgZPjgYbjgZjjgo3jgYYNCivjgZnjgZrjgY0s44Gf44GL44Gy44KNDQor44GV44GE44Go44GGLOOBsuOBleOBig0KK+OBleOBqOOBhizjga7jgorjgYoNCivjgZvjgY3jga0s44GK44GV44KADQor44GV44GL44GELOOBr+OCi+OBsuOBkw0KK+OBleOBleOBiizjgZfjgpPjgZgNCivjgZnjganjgYYs44G+44GT44GoDQor44KC44KKLOOBl+OCh+OBhuOBmA0KK+OBl+OBv+OBmizjgYjjgYTjgZ7jgYYNCivjgZXjgajjgYYs44Gm44KL44GKDQor44GZ44Ga44GNLOOBhOOBleOBig0KK+OBl+OCgOOCiSzjgbLjgo3jgajjgZcNCivjgZfjgbDjgZXjgY0s44Gy44KN44GXDQor44GZ44GM44G+44GfLOOBi+OBmuOBig0KK+OBmeOBmuOBjSzjgbLjgo3jgZcNCivjgZfjgYrjga7jgoQs44GN44KI44GL44GaDQor44Gf44GL44Gv44GXLOOBqOOBl+OCjeOBhg0KK+OBpOOBjeOChOOBvizjgY3jgY/jgYoNCivjgaTjga7jgaAs44KI44GX44GNDQor44Gf44GL44Gv44GXLOOBquOBiuOBqA0KK+OBqOOBj+OBluOCjyzjgoLjgorjga/jgosNCivjgZ/jgZDjgaEs44G+44GV44GKDQor44Gf44GL44GOLOOBsuOBp+OBig0KK+OBn+OBi+OBrizjgabjgovjgb/jgaQNCivjgZ/jga/jgoks44GN44KI44GL44GaDQor44Go44KI44GV44KPLOOBk+OBhuOBhOOBoQ0KK+OBqOOCiOOBvuOBmSzjgZHjgYTjgYTjgaENCivjgZ/jgYvjga/jgZcs44G+44GV44Gu44G2DQor44Gf44GR44GG44GhLOOBpuOBhOOBmA0KK+OBn+OBjeOBhOOBlyzjgorjgofjgYbjgZgNCivjgZ/jgYvjgYTjgZcs44GX44GS44GKDQor44Gf44GL44GV44GNLOOBkeOCk+OBmA0KK+OBn+OBq+OBjOOCjyzjgbLjgo3jgobjgY0NCivjgZ/jgYvjga/jgZcs44G+44GV44Go44GXDQor44Gf44Gq44Gv44GXLOOBk+OBhuOBmA0KK+OBn+OBvuOBjSzjgbLjgo3jgZcNCivjgajjgbAs44G+44GV44GXDQor44Gf44Gw44GfLOOBn+OBi+OBlw0KK+OBpOOBmCzjgZ/jgYvjgYoNCivjgZ/jgarjgYss44GC44Gk44GXDQor44Gf44GL44Gv44GXLOOBvuOBleOBruOCig0KK+OBqOOBj+OBquOBjCzjgY3jgb/jgYoNCivjgZ/jgZDjgaEs44G+44GV44GKDQor44Gf44GN44GW44KPLOOBi+OBpOOBl+OBkg0KK+OBqOOBvyzjgZ/jga3jgb7jgZUNCivjgaTjgZgs44GR44GE44GTDQor44GG44Gh44GgLOOBqOOBl+OBig0KK+OBn+OBquOBiyzjgYTjgo/jgYoNCivjgaTjga3jgojjgZcs44Gu44KK44GL44GaDQor44Gf44GL44GuLOOCgOOBreOBig0KK+OBn+OBi+OBr+OBlyzjgobjgY3jgaENCivjgZ/jgYvjgoTjgarjgY4s44KI44GG44GE44GhDQor44Gf44GR44GgLOOBkeOBhOOBmeOBkQ0KK+OBn+OBvCzjgobjgZ/jgYsNCivjgZ/jgarjgYss44GL44Ga44GKDQor44Gf44GR44GG44GhLOOBvuOBleOBjQ0KK+OBn+OBi+OChOOBmSzjgajjgojjgb8NCivjgaTjgaHjgoQs44KG44Gv44GkDQor44Go44GP44Gq44GMLOOBkeOCk+OBmA0KK+OBpOOBoeOBoCzjgarjgYrjgYvjgZ8NCivjgaTjgbzjgYQs44GI44GE44GI44GkDQor44Gf44GL44Gv44GXLOOBvuOBleOBl+OBkg0KK+OBpOOBi+OCguOBqCzjgZXjgaDjgoANCivjgZ/jgarjgYss44GX44GS44KLDQor44Go44KC44Gk44GtLOOBmeOBmeOCgA0KK+OBoeOBmCzjgajjgZfjga/jgosNCivjgZXjgajjgYYs44Gb44GE44GYDQor44Gf44GL44GfLOOBpOOBreOBig0KK+OBqOOBr+OBnyzjgojjgZfjgb8NCivjgZ/jgYvjga/jgZcs44G/44Gu44KLDQor44Gf44GL44Gv44G+LOOCiOOBl+OBguOBjQ0KK+OBpuOCieOBleOCjyzjgarjgYrjgZMNCivjgZ/jgYvjgbDjgoTjgZcs44GX44KH44GG44GYDQor44Gm44KJ44GgLOOBl+OCheOBhuOBmA0KK+OBpOOBi+OBoCzjgZvjgYTjgZgNCivjgZ/jgarjgYss44Gy44Gn44GKDQor44Go44KK44G+44KLLOOBn+OBv+OBig0KK+OBpOOBoeOBoCzjgb7jgoLjgosNCivjgZ/jgY3jgoLjgags44Go44GX44Gy44GTDQor44Gf44GN44GELOOBsuOBp+OBguOBjQ0KK+OBn+OBreOBoCzjgZHjgpPjgZgNCivjgZ/jgoDjgoks44KI44GX44Gu44KKDQor44Gf44Gp44GT44KNLOOBsuOBleOBig0KK+OBn+OBi+OBiizjgb7jgZnjgb8NCivjgZ/jgarjgYss44Gy44GL44KLDQor44Gf44GL44Gv44GXLOOBr+OBpOOBig0KK+OBn+OBi+OBr+OBlyzjgZfjgZLjgobjgY0NCivjgZ/jgYvjga/jgZcs44G144GY44GKDQor44Go44G/44GfLOOBqOOBiuOCiw0KK+OBn+OBi+OBr+OBlyzjgYLjgaTjga7jgooNCivjgZ/jgavjgZDjgaEs44G/44Gh44GC44GNDQor44Gf44Gq44GLLOOChuOBhuOBnuOBhg0KK+OBpOOBvOOBhCzjgbLjgo3jgb8NCivjgZ/jgZHjgYbjgaEs44G744G244KTDQor44Gk44GgLOOBqOOCiOOBlw0KK+OBn+OBkeOBoCzjgb7jgZXjgobjgY0NCivjgZ/jgZHjgYQs44GX44GS44GKDQor44Gk44GY44GL44KPLOOChuOBhuOBhOOBoQ0KK+OBn+OBkeOCgOOCiSzjgZvjgYTjgZjjgoUNCivjgZ/jgY0s44G+44GV44GC44GNDQor44Gf44GL44GgLOOBvuOBleOBguOBjQ0KK+OBn+OBjeOBluOCjyzjgZfjgZLjgosNCivjgZ/jgarjgYss44G+44GV44GYDQor44Gf44Gr44KA44KJLOOBn+OBkeOCiOOBlw0KK+OCiOOBl+OBluOCjyzjgb7jgZXjga/jgosNCivjgaTjga3jgYvjgo8s44Gf44KN44GGDQor44Gf44Gq44GLLOOBsuOCjeOBlw0KK+OBn+OBi+OBoCzjgYvjgaTjgYoNCivjgaTjgoss44GC44GN44KJDQor44Gf44GrLOOBvuOBleOBsuOCjQ0KK+OBn+OBkOOBoSzjgYTjgZXjgYoNCivjgZ/jgarjgYss44GY44KF44KT44Ge44GGDQor44Gf44Gr44GQ44GhLOOBi+OBmuOBsuOCjQ0KK+OBn+OBquOBiyzjga7jgorjgb/jgaQNCivjgaTjgZgs44KG44GG44GE44GhDQor44Gf44Gq44GLLOOBi+OBpOOBvw0KK+OBpOOChuOBjSzjgbLjgZXjgYoNCivjgZ/jgb7jgoss44G+44GV44G/DQor44Gk44Gh44KELOOBkeOBhOOBmA0KK+OBpOOCi+OBiuOBiyzjga7jgbbjgYoNCivjgZ/jgYvjga/jgZcs44Gm44Gk44GKDQor44Gf44GL44Gv44GXLOOBv+OBpOOBkw0KK+OBqOOBhuOBteOBj+OBmCzjgajjgZfjgYoNCivjgZ/jgarjgYss44GK44GN44Gk44GQDQor44Gf44GL44GOLOOBjeOCh+OBhuOBkw0KK+OBn+OBi+OBr+OBlyzjgojjgZfjgbLjgZUNCivjgZ/jgavjgZDjgaEs44KK44KH44GG44GYDQor44Go44KI44GgLOOBsuOBqOOBlw0KK+OBn+OBi+OBjizjgZ/jgZHjgZcNCivjgZ/jgZHjgYQs44GX44GS44KLDQor44Gk44GgLOOBteOBv+OBig0KK+OBpOOBreOBsuOCjSzjgZjjgoXjgpPjgZgNCivjgZ/jgY3jgZbjgo8s44Go44GX44GKDQor44Gf44Gh44Gw44GqLOOBlOOBhOOBoQ0KK+OBn+OBi+OBr+OBlyzjgYvjgaTjgobjgY0NCivjgZ/jgavjgZDjgaEs44GT44GZ44GRDQor44Gf44GR44GgLOOBi+OBmuOBqA0KK+OBpOOBoeOChCzjgZHjgpPjgYTjgaENCivjgZ/jgYvjga/jgZcs44Go44GX44GC44GNDQor44Gf44Gu44GG44GILOOBsuOBk+OBleOBtuOCjeOBhg0KK+OBn+OBi+OBsOOBn+OBkSzjgb7jgZXjga7jgbYNCivjgZ/jgYvjga/jgZcs44G+44Gf44GV44G244KN44GGDQor44G144Gq44GNLOOBpuOCi+OChOOBmQ0KK+OBn+OBkeOBoCzjgYvjgaTjgb7jgZUNCivjgajjgY/jgarjgYws44Gf44GkDQor44GC44GV44GELOOChuOBhuOBmA0KK+OBn+OBi+OBr+OBlyzjgb/jgY3jgZMNCivjgZ/jgYvjga/jgZcs44Gu44KK44GKDQor44Gf44GM44KPLOOBl+OCh+OBhuOBhOOBoQ0KK+OBn+OBquOBiyzjga7jgbbjgobjgY0NCivjgZ/jgaHjgYvjgo8s44Gf44GR44GXDQor44Gf44GQ44GhLOOBi+OBmuOCiOOBlw0KK+OBn+OBi+OBleOBjSzjgYLjgY3jgokNCivjgZ/jgb7jgYrjgY0s44GX44Ga44GKDQor44Gf44Gq44GLLOOBm+OBhOOBhOOBoeOCjeOBhg0KK+OBn+OBi+OBrizjgZfjgpMNCivjgZ/jgZHjgYbjgaEs44GX44GS44KLDQor44Gk44GgLOOBm+OCk+OBmA0KK+OBn+OBi+OBquOBvyzjgb7jgZXjgosNCivjgaTjgY3jgarjgo8s44KI44GX44Gq44GKDQor44Go44G/44KC44KKLOOBmeOBmeOCgA0KK+OBn+OBkeOBoCzjgajjgYrjgosNCivjgajjgYzjgZcs44Gm44Gk44Gy44GTDQor44Gk44Ga44GNLOOBl+OBkuOBqOOBlw0KK+OBqOOBs+OBnyzjga7jgbbjgYLjgY0NCivjgajjgoLjgarjgYws44Gk44Gt44GL44GaDQor44Gk44Gk44GELOOBl+OBkuOBguOBjQ0KK+OBn+OBi+OBjizjgZjjgoXjgpPjgZgNCivjgZ/jgavjgZDjgaEs44GL44Ga44Go44GXDQor44Gf44GL44GuLOOBqOOBl+OBsuOCjQ0KK+OBn+OBquOBiyzjgZXjgajjgZcNCivjgajjgb7jgaTjgoos44GX44KN44GGDQor44Gf44GL44GOLOOBhOOBpOOBig0KK+OBn+OBi+OBl+OBvizjgbXjgb/jgYoNCivjgZ/jga/jgoks44KI44GX44GC44GNDQor44Gf44Gq44GLLOOBi+OBmuOBkw0KK+OBn+OBi+OBoCzjgojjgZfjgYoNCivjgajjgorjgYQs44G/44Gk44KG44GNDQor44Gf44GR44G5LOOBruOBtuOChuOBjQ0KK+OBpOOBi+OCguOBqCzjgYLjgY3jgYoNCivjgZ/jgoDjgoks44Gu44G244Gy44KNDQor44Go44G/44Gq44GMLOOBleOBi+OBiA0KK+OBn+OBi+OBhOOCjyzjgZXjgajjgZcNCivjgZ/jgbDjgZ8s44GR44KT44GYDQor44Gf44GL44Gv44GXLOOBj+OBq+OBig0KK+OBpuOCk+OBveOBhuOCiuOCkyzjgZ3jgYbjgYTjgaENCivjgabjgonjgYbjgaEs44GV44Gg44KG44GNDQor44Gf44GL44Gv44GXLOOBjeOCiOOBlw0KK+OBn+OBi+OBmyzjgaHjgYvjgokNCivjgZ/jgZHjgoDjgoks44KC44Go44GEDQor44Gf44KA44GL44GELOOBteOBv+OBig0KK+OBn+OBi+OBr+OBlyzjgobjgYbjgZgNCivjgZ/jgZHjgaQs44GL44Gk44GYDQor44Gf44Gu44GK44GLLOOBmeOBmeOCgA0KK+OBn+OBi+OBr+OBlyzjgZ/jgaDjgZcNCivjgajjgYrjgoTjgb4s44GN44KI44Gu44G2DQor44Gf44GR44GG44GhLOOBguOBpOOBlw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgYoNCivjgYbjgZfjgYos44KG44Ga44KLDQor44GG44GZ44GOLOOBi+OBmuOBsuOCjQ0KK+OBhuOBoeOChOOBvizjgojjgYbjgYTjgaENCivjgYbjgoHjgaAs44GL44Ga44GZ44GRDQor44GG44GR44KC44KKLOOBvuOBleOBqg0KK+OBhuOBoeOBoCzjgb/jgaHjgoQNCivjgYbjgYjjgaAs44Gy44GV44GKDQor44GG44Gh44GgLOOBkeOBhOOBmA0KK+OBhuOBpOOBjSzjgabjgaTjgYoNCivjgYbjgYjjgaAs44G/44GN44Gy44GTDQor44GG44Gh44GgLOOBsuOBp+OBjQ0KK+OBhuOBiOOBr+OCiSzjgZfjgoXjgYYNCivjgYbjgYjjgoDjgoks44Gu44G244KEDQor44GG44Gh44GgLOOBleOBoOOChuOBjQ0KK+OBhuOBoeOCgOOCiSzjgZHjgYTjgYTjgaENCivjgYbjgaHjgaAs44GR44KT44GZ44GRDQor44GG44Gh44GgLOOBkeOBhOOBhOOBoQ0KK+OBhuOBiOOBjSzjgYLjgY3jgZMNCivjgYbjgYvjgZgs44G+44GV44Gm44KLDQor44GG44Gh44GgLOOBvuOBleOBguOBjQ0KK+OBhuOBiOOCgOOCiSzjgbLjgafjgYoNCivjgYbjgZfjgYos44Go44GP44GYDQor44GG44KB44KA44KJLOOBqOOBl+OBig0KK+OBhuOCgeOBl+OBvizjgorjgY3jgaTjgZANCivjgYbjgZPjgpMs44GL44GK44KLDQor44GG44Gh44GE44GRLOOBmOOCheOCk+OBhOOBoQ0KK+OBhuOCi+OBl+OBrizjgZ/jgYvjgYLjgY0NCivjgYbjgaHjgarjgZcs44G444GE44GfDQor44GG44GQ44GVLOOBvuOBleOChuOBjQ0KK+OBhuOBrizjgajjgZfjgbLjgacNCivjgYbjgYjjgY0s44G/44Gu44KLDQor44GG44GI44KC44GoLOOBkeOCkw0KK+OBhuOBiOOCgOOCiSzjgobjgY3jgYoNCivjgYbjgYjjga/jgoks44Gy44KN44GXDQor44GG44GI44GgLOOBl+OCk+OBuuOBhA0KK+OCj+OBn+OBquOBuSzjgbLjgZXjgobjgY0NCivjgo/jgZ/jgarjgbks44GL44Gk44G/DQor44KP44Gf44Gq44G5LOOBjeOCk+OChA0KK+OCj+OBi+OCgOOCiSzjgoTjgZnjgo0NCivjgo/jgZ/jgarjgbks44Gy44Gn44GYDQor44KP44Gf44Gq44G5LOOCiOOBl+OBn+OBiw0KK+OCj+OBn+OBquOBuSzjgbLjgo3jga/jgosNCivjgo/jgZ/jgarjgbks44GL44Gk44Gq44KKDQor44KP44Gf44Gq44G5LOOBsuOBp+OBig0KK+OCj+OBn+OBquOBuSzjgYvjgaTjgbLjgZMNCivjgo/jgZ/jgarjgbks44KE44GZ44GC44GNDQor44KP44Gf44Gq44G5LOOBn+OBoOOBlw0KK+OCj+OBjeOBnyzjgZPjgYbjgoHjgYQNCivjgo/jgZ/jgarjgbks44Go44GN44GKDQor44KP44Gf44Gq44G5LOOBk+OCk+OBlOOBhg0KK+OCj+OBn+OBquOBuSzjgYLjgY3jgokNCivjgo/jgZ/jgarjgbks44GK44GV44KADQor44KP44Gf44Gq44G5LOOBkeOCk+OBmA0KK+OCj+OBn+OBquOBuSzjgZnjgb/jgZ/jgaANCivjgo/jgaAs44KE44GZ44GXDQor44KP44Gf44Gq44G5LOOBn+OBpOOBsuOBkw0KK+OCj+OBoCzjgZ/jgZHjgb/jgaQNCivjgo/jgaAs44G744G+44KMDQor44KP44Gf44Gq44G5LOOBvuOBleOBguOBjQ0KK+OCj+OBn+OBquOBuSzjgYLjgY3jgokNCivjgo/jgZ/jgarjgbks44GX44GS44GC44GNDQor44KP44GL44Gw44KE44GXLOOBv+OBreOBig0KK+OCj+OBn+OBquOBuSzjgbLjgZXjgYoNCivjgYrjgYrjgZ8s44G+44GT44GoDQor44G144GY44KP44KJLOOBmeOBv+OBguOBjQ0KK+OBk+OBhOOBkSzjgb/jgaHjgYoNCivjgYvjgZ/jgYrjgYss44Gm44Gk44KEDQor44Gy44KN44GX44GSLOOBjeOCiOOBlw0KK+OBl+OCk+OBluOCjyzjgbLjgo3jgZcNCivjgb/jgZrjgYvjgb8s44G+44GV44G/44GkDQor44Gq44GL44GY44G+LOOBkeOBhOOBhOOBoQ0KK+OBteOBj+OBl+OBvizjgZfjgZLjgY0NCivjgarjgYss44Gy44KN44GXDQor44Gy44KJ44KE44G+LOOBvuOBleOBkw0KK+OBq+OCj+OChOOBvizjgYvjgaTjgZgNCivjgZfjgb/jgZos44Gd44GG44GY44KN44GGDQor44G144KL44GV44KPLOOBpOOCiOOBlw0KK+OBleOBj+OCieOBhCzjgb/jgZrjgbsNCivjgZ/jgZHjgarjgYss44GC44Gk44Gu44G2DQor44GZ44GO44GG44KJLOOBi+OCiOOBkw0KK+OBi+OBqOOBhizjgZHjgpPjgZgNCivjgbvjgZfjgYvjgo8s44G+44GV44GKDQor44GK44GM44KPLOOBhOOBleOBig0KK+OBi+OBl+OCj+OBjizjgZMNCivjgZXjgYvjgYQs44Gy44KN44GTDQor44KC44KKLOOBr+OCi+OBig0KK+OBu+OCk+OBvCzjga7jgbbjgobjgY0NCivjgYTjgYTjgZjjgb4s44KI44GX44GC44GNDQor44GT44GY44G+LOOBn+OBi+OBig0KK+OBn+OBi+OBr+OBlyzjga7jgbzjgosNCivjga/jgZ8s44GX44KH44GG44GZ44GRDQor44GK44GM44KPLOOBguOBjeOBruOCig0KK+OBpOOBoeOChCzjgYvjgaTjgoQNCivjgZPjgoTjgb4s44GE44GV44GKDQor44G144KL44G/LOOBpuOBpOOBig0KK+OBj+OCgSzjgaTjga3jgYoNCivjgY/jgonjgZ8s44Gb44Gk44GKDQor44GG44GX44GY44G+LOOBvuOBleOBi+OBmg0KK+OBiOOBsOOBqCzjgYvjgaTjga7jgooNCivjgZXjgajjgYYs44Gu44G244KG44GNDQor44KA44GX44KDLOOBquOBiuOBsuOBkw0KK+OChuOBguOBlSzjgb7jgoLjgosNCivjgY3jgY/jgaEs44Gq44GK44GNDQor44G+44Gk44Gw44KE44GXLOOBpuOCi+OCiOOBlw0KK+OBvuOBpOOBhCzjgYLjgY3jgokNCivjgZ/jgZHjgoDjgoks44Gy44KN44GXDQor44Gm44KJ44GX44G+LOOCiOOBhuOBmeOBkQ0KK+OBj+OCiSzjgbLjgafjgY/jgasNCivjgb7jgaTjgYQs44KI44GX44GKDQor44GG44GI44GgLOOBhOOBleOBig0KK+OBr+OChOOBlyzjgZfjgpPjgYTjgaENCivjgYvjgo/jgaos44Gg44GE44GY44KN44GGDQor44Gv44KE44GXLOOBi+OBmuOBig0KK+OBp+OCguOBqCzjgb7jgZXjgbLjgo0NCivjgZfjgbbjgY0s44Gf44GR44GXDQor44Gv44G+LOOBn+OBpOOBig0KK+OBiOOCk+OBqSzjgZPjgYbjgZbjgbbjgo3jgYYNCivjgb/jgoTjgoLjgags44Gf44GL44Gy44GVDQor44G+44Gk44GgLOOBsuOCjeOBlw0KK+OChOOBvuOCguOBqCzjgajjgoLjgZMNCivjgoDjgonjgYvjgb8s44GX44GS44GKDQor44GK44GL44GgLOOBoOOBhOOBjeOBoQ0KK+OCj+OBn+OBquOBuSzjgYvjgZrjgobjgY0NCivjgYTjgo/jgZXjgY0s44GC44GN44KIDQor44KI44GX44GgLOOBmeOBv+OChuOBjQ0KK+OBiuOBiuOCguOCiizjgb7jgZXjga7jgooNCivjgb/jgZrjgZ/jgass44Gy44GV44GIDQor44GZ44GO44GG44KJLOOBi+OBmuOBig0KK+OBruOBquOBiyzjgb/jgaTjgZ/jgYsNCivjgo/jgZ/jgarjgbks44GE44GV44KADQor44GV44GE44Go44GGLOOBn+OBkeOBig0KK+OBiuOBiuOBi+OCj+OCiSzjgZLjgpPjgZ/jgo3jgYYNCivjgYvjganjgYTjgZEs44Gf44GR44Gf44GgDQor44G+44Gk44KC44GoLOOBruOCiuOBi+OBmg0KK+OBquOBiyzjgZ/jgYvjgYoNCivjgYvjgajjgYYs44GR44KT44Ge44GGDQor44GL44KP44GE44GXLOOChuOBhuOBkw0KK+OBquOBjOOBleOCjyzjgaTjgajjgoANCivjgZnjgoTjgb4s44GP44KT44KN44GGDQor44GP44G+44GX44KNLOOBsuOCjeOBlw0KK+OBn+OBi+OBsOOChOOBlyzjgbLjgafjgYoNCivjgZPjgpPjgaks44GR44KT44Ge44GGDQor44GE44Gq44GwLOOBleOBqOOCiw0KK+OBk+OBsOOChOOBlyzjgajjgZfjgbLjgo0NCivjgoTjgb7jgZDjgaEs44G/44GL44GTDQor44GZ44Ga44GNLOOChuOBhuOBmA0KK+OBguOBjeOChOOBvizjgobjgZ/jgYsNCivjgZ/jgYvjgaAs44GC44GN44KJDQor44GV44KP44GELOOBvuOBleOBsuOBkw0KK+OBquOBi+OBnyzjgY3jgojjgobjgY0NCivjgYTjgZ/jgbAs44KG44GG44GE44GhDQor44GP44Gr44GO44GfLOOCiOOBhuOBhOOBoQ0KK+OChOOBvuOBoCzjgojjgYbjgZMNCivjgoTjgb7jgaAs44KG44GG44GTDQor44Gf44GL44Gv44GXLOOCiOOBhuOBhOOBoeOCjeOBhg0KK+OBhuOCgeOCgOOCiSzjga7jgorjgbLjgZMNCivjgZPjgbDjgoTjgZcs44Gu44G244GC44GNDQor44GL44Gt44G/44GkLOOBn+OBoOOBig0KK+OBjeOBqSzjgb7jgZXjgZcNCivjgYvjga3jgY0s44Gf44Gg44GKDQor44GT44KA44KJLOOBvuOBleOBsuOCjQ0KK+OBteOBmOOCguOCiizjgZHjgpPjgYTjgaENCivjgoTjgb7jgZfjgZ8s44Gm44KL44Gf44GRDQor44GP44KK44KE44G+LOOBvuOBleOBsuOCjQ0KK+OBqOOBluOCjyzjgZ/jgYvjgZcNCivjgYTjgZfjgYQs44Gh44GL44Go44GXDQor44Gf44GL44Gv44GXLOOCiOOBhuOBhOOBoQ0KK+OBn+OBquOBiyzjgYvjgZrjgb8NCivjgYTjgZfjgZbjgY0s44Gm44Gk44GKDQor44Gv44KJ44GgLOOBvuOBleOBsuOCjQ0KK+OBqOOBj+OBsuOBlSzjgZfjgZLjgoTjgZkNCivjgYTjgZfjgoDjgoks44Gf44Gg44Gy44KNDQor44GG44GI44GgLOOBn+OBi+OBlw0KK+OBiuOBteOBoSzjgY/jgavjgbLjgo0NCivjgoTjgaTjgovjgY4s44G/44Gk44GKDQor44G/44Gq44GoLOOBvuOChuOBvw0KK+OCiOOBl+OBoCzjgb7jgZXjgbLjgo0NCivjgb/jgarjgb8s44KE44GZ44GKDQor44GK44GLLOOBguOBjeOBig0KK+OBhOOBoeOBi+OCjyzjgYvjgZrjgYoNCivjgYrjgYrjgY/jgbws44Gy44Gn44GNDQor44GE44GX44GgLOOBsuOCjeOChuOBjQ0KK+OBqOOBv+OBnyzjgYTjgZXjgYoNCivjgbLjgonjgYrjgYss44Gy44KN44Gy44GVDQor44GL44Go44GGLOOBsuOBp+OBig0KK+OBiuOCgOOCiSzjgoDjgaTjgYoNCivjgYrjgZXjgZjjgb4s44Go44GX44KEDQor44G144Gq44GT44GXLOOBm+OBpOOBig0KK+OBk+OBhuOBoCzjgbLjgafjgYLjgY0NCivjgYLjgZXjgYrjgYss44Gf44Gk44GKDQor44GL44GZ44GMLOOBguOBkeOBvw0KK+OCguOCguOBr+OCiSzjgbbjgpPjgYTjgaENCivjgYbjgYjjgoDjgoks44Go44GX44Gy44GnDQor44GK44Gw44GfLOOBi+OBmuOBkw0KK+OBiuOBruOBoCzjgobjgY3jgYoNCivjgb/jgoTjgZfjgZ8s44GL44KT44GYDQor44G744Gd44KELOOChOOBmeOBig0KK+OChOOBl+OCjSzjgobjgY3jgYoNCivjgo/jgZ/jgarjgbks44GC44Gk44GXDQor44GN44KA44KJLOOBqOOBjeOBoQ0KK+OBi+OBv+OBmOOCh+OBhizjgbLjgZXjgYgNCivjgZXjgajjgYYs44KI44GX44GK44GNDQor44G+44Gk44GX44G+LOOBguOBjeOCiQ0KK+OBi+OBn+OChOOBvizjgojjgYbjgZMNCivjgbLjgonjga4s44GU44G444GEDQor44Gq44GL44KJ44GELOOBoOOBhOOBmeOBkQ0KK+OCiOOBk+OChOOBvizjgbLjgZXjgYoNCivjgYrjgYrjgYzjga0s44Go44KC44Gy44KNDQor44GN44KA44KJLOOBvuOBk+OBqA0KK+OBruOBluOBlSzjgojjgZfjga7jgooNCivjgoLjgorjga4s44GL44Ga44GX44GSDQor44GI44Gh44GU44KELOOBv+OBoeOBsuOBkw0KK+OBteOBj+OBl+OBvizjgbLjgafjgYoNCivjgYTjgajjgYYs44G+44GV44KG44GNDQor44GE44GR44GgLOOChuOBjeOBkw0KK+OBqOOBj+OBquOBjCzjgorjgYgNCivjgY3jgoLjgags44GC44GE44GTDQor44GK44GX44GgLOOBleOBqOOBkw0KK+OBr+OBl+OCguOBqCzjga7jgorjgYvjgZoNCivjga7jgZDjgaEs44Go44GX44Gu44KKDQor44G/44KE44G5LOOBi+OBmuOBqA0KK+OBj+OCj+OBr+OCiSzjgoTjgZnjgYgNCivjgY3jgoDjgoks44Gy44KN44G/DQor44GK44GgLOOBi+OBmuOChuOBjQ0KK+OBguOBhOOBluOCjyzjgZ/jgb/jgYoNCivjgYbjgYjjga4s44GL44Gk44GKDQor44G+44Gk44Gw44KJLOOBruOCiuOChuOBjQ0KK+OBn+OBvuOBhCzjgYvjgZrjgb/jgaENCivjgZfjgonjgYQs44KI44GX44GKDQor44GK44GK44Gv44GXLOOBk+OBhuOBmA0KK+OBn+OBv+OChCzjgbXjgb/jgoQNCivjga/jgonjgaAs44KI44GX44GTDQor44GG44GZ44GELOOBn+OBi+OBlw0KK+OBk+OCiizjgZPjgYbjgYTjgaHjgo3jgYYNCivjga7jgaAs44GX44GS44Gy44GTDQor44Gq44G/44GNLOOBvuOBleOBqA0KK+OBquOBi+OBiizjgb7jgZXjgb/jgaQNCivjgYvjganjgoQs44GC44GN44KJDQor44GK44GuLOOBqOOBl+OBsuOBpw0KK+OBl+OBtuOBi+OCjyzjgZfjgpPjgYTjgaENCivjgYTjgo/jgZXjgo8s44G+44Gq44G2DQor44Gf44G244GbLOOBhOOBoeOCjeOBhg0KK+OBiuOBleOCjyzjgZ/jgYvjgojjgZcNCivjgarjgYvjgaDjgYQs44GR44KT44GYDQor44GI44GM44GX44KJLOOBsuOCjeOChuOBjQ0KK+OBleOBleOBjSzjgYvjgaTjgYoNCivjgbXjgY/jgaEs44GL44Ga44Gy44GTDQor44KI44GX44KE44GZLOOBlOOBhg0KK+OCj+OBn+OBquOBuSzjgZPjgZXjgagNCivjgYbjgYjjga4s44KM44GE44GTDQor44GI44Go44GGLOOBvuOBleOBruOCig0KK+OCiOOBl+OBoCzjgb7jgZXjgYoNCivjgZ/jgZHjgYQs44KG44GG44GE44GhDQor44Gv44KE44GXLOOBsuOBleOBlw0KK+OBvuOBn+OBjSzjgZfjgpPjgZQNCivjgoLjgorjgoLjgags44GE44Gh44KN44GGDQor44GE44Gv44KJLOOBkeOCk+OBmA0KK+OBpOOBi+OBr+OCiSzjgabjgovjgYoNCivjgYvjga7jgYYs44Go44KC44GTDQor44KA44Gt44KG44GNLOOBsuOBp+OBvuOBlQ0KK+OBiuOBiuOBpOOBvCzjgojjgZfjgZ/jgYsNCivjgoTjgb7jgoLjgoos44GL44Gk44GKDQor44GC44KT44Gp44GGLOOBm+OBhOOBjQ0KK+OChOOBvuOBluOBjSzjgojjgZfjgYLjgY0NCivjgZ/jgY3jgoLjgags44KI44GG44GE44GhDQor44Gf44GR44KA44KJLOOBquOBiuOBi+OBmg0KK+OCgOOCieOBi+OBvyzjgb7jgZPjgagNCivjgZ/jgYvjgZ8s44Gu44KK44GKDQor44Gy44KN44GbLOOBpOOBn+OBsuOCjQ0KK+OChOOBj+OCjyzjgZ/jgYvjgZcNCivjgZfjgpPjgZDjgorjgofjgYYs44KI44GG44GTDQor44Gf44GhLOOBvuOBleOBlw0KK+OBleOBqOOBhizjgYvjgZrjgYoNCivjgoTjgb7jgoLjgags44G+44GV44Gy44KNDQor44GZ44Gp44GGLOOBl+OCh+OBhuOBkw0KK+OBu+OCk+OBvizjgbLjgo3jgY0NCivjgYrjgYrjgaTjgbws44Go44GX44GKDQor44GL44GW44G+LOOBv+OBpOOBsuOCjQ0KK+OBguOBjOOCjyzjgb/jgbvjgZMNCivjgYTjga7jgYbjgYgs44KK44KF44GG44GE44GhDQor44GC44KJ44GELOOBvuOBleOBoQ0KK+OBhuOBiOOCgOOCiSzjgobjgZ/jgYsNCivjgavjgZfjgY/jgoks44G+44GV44Gy44KNDQor44G/44KE44GW44GNLOOCiOOBl+OBi+OBmg0KK+OBteOBj+OBoCzjgoLjgorjgb7jgZUNCivjgaTjgorjgoQs44Gf44Gg44GKDQor44Gf44Gq44GLLOOBsuOCjeOBi+OBmg0KK+OBiuOBjOOCjyzjgZPjgYbjgZgNCivjgZnjgZrjgY0s44G/44Gu44KLDQor44Gv44G+44GQ44GhLOOBn+OBj+OBmA0KK+OBi+OCgeOBoCzjgYvjgaTjgoQNCivjgoLjgoLjga/jgoks44Gy44Gn44GKDQor44Gy44KJ44GKLOOBn+OBi+OBkw0KK+OBn+OBi+OBoCzjgarjgYrjgobjgY0NCivjgYTjgZHjgaAs44KI44GX44Gy44KNDQor44GZ44Ga44GNLOOBguOBjeOCiQ0KK+OBn+OBi+OBr+OBlyzjgYvjgZrjgojjgZcNCivjgZ/jgarjgYss44GY44KN44GGDQor44Gb44KJLOOBn+OBhOOBoQ0KK+OBn+OBkeOCgOOCiSzjgajjgZfjgYLjgY0NCivjgbvjgorjgY3jgoos44G+44KC44KLDQor44GE44GR44GgLOOBv+OBruOCiw0KK+OBguOCieOBjSzjgZvjgY3jga0NCivjgYrjgYrjgaTjgYss44GL44Ga44GE44Gh44KN44GGDQor44GP44Gr44G+44GkLOOBm+OBhOOBluOBtuOCjeOBhg0KK+OBhuOBl+OBsCzjgZ/jgYvjgZcNCivjga/jgoTjgZcs44G+44GV44GoDQor44GE44GX44GELOOBv+OBjeOBig0KK+OBi+OBoCzjgYLjgY3jgokNCivjgoTjgY4s44Gf44Gg44GKDQor44Gy44KJ44GELOOBk+OBhuOBhOOBoeOCjeOBhg0KK+OBj+OCjeOBmyzjgbLjgo3jgZcNCivjgYrjgYvjgbks44GE44GV44KADQor44GL44Gt44GTLOOBqOOBl+OChuOBjQ0KK+OBk+OBmOOBvizjgZXjgajjgosNCivjgavjgZfjgojjgoos44G/44Gu44KLDQor44Gq44GL44GY44KH44GGLOOBmOOCjeOBhg0KK+OBr+OBl+OBj+OCiSzjgaTjgajjgoANCivjgZ/jgYvjga/jgZcs44Gf44Gk44GKDQor44GG44GI44GP44GVLOOBruOBtuOBguOBjQ0KK+OBl+OBsOOBnyzjgbLjgo3jgZcNCivjgZ/jgYvjga/jgZcs44Gm44KL44GKDQor44GE44Gq44GwLOOBi+OBmuOBqA0KK+OBmOOCheOCk+OBhOOBoeOCjSzjgYLjgY3jga7jgooNCivjga/jgoTjgYvjgo8s44Gy44Gn44GKDQor44GE44Go44GGLOOBn+OBkeOBlw0KK+OBjeOCguOBqCzjgb7jgZXjgaTjgZANCivjgYTjgaAs44Gy44KN44GXDQor44G744GG44GY44KH44GGLOOBi+OBpOOBsuOBkw0KK+OBu+OCiuOBhCzjgaTjga3jgYoNCivjgYvjgYTjgZss44GC44Gk44GXDQor44Gv44GX44KC44GoLOOChOOBmeOBguOBjQ0KK+OBmeOBmuOBjSzjgbLjgajjgZcNCivjgYvjga3jgZXjgYss44KI44GX44GKDQor44KE44G+44GQ44GhLOOChuOBhuOBmA0KK+OBmeOBmuOBjSzjgb7jgZXjgYvjgZoNCivjgZnjganjgYYs44G+44GV44Gy44GTDQor44GK44GK44GwLOOBv+OBu+OBkw0KK+OCgOOCieOBnyzjgajjgZfjgZMNCivjgYLjgY3jgoTjgb4s44G+44GV44GXDQor44GC44GZ44G+LOOBn+OBkeOBig0KK+OBi+OCj+OBmOOCiizjgbLjgafjgYoNCivjgb7jgaTjgoLjgags44GN44KH44GG44GYDQor44GX44KN44KE44G+LOOBkw0KK+OBteOBmOOBhCzjgYLjgaTjgZMNCivjgZTjgajjgYYs44Gg44GE44GZ44GRDQor44Gf44Gr44GC44GELOOChOOBmeOBvuOBlQ0KK+OBi+OBpOOBvOOCiizjgb7jgY0NCivjgbLjgYLjgaYs44GP44G/44GTDQor44Gm44KJ44GELOOBguOBjeOBkw0KK+OBr+OCk+OBoCzjgb7jgZXjgZMNCivjgb/jgZfjgb4s44Gy44KN44G/DQor44Gf44GL44GX44G+LOOBi+OBmuOBvw0KK+OBvuOBpOOBoCzjgYLjgY3jgokNCivjgZPjgpPjgaks44Gu44KK44GTDQor44GE44Gf44KELOOBkeOCk+OBmA0KK+OBvuOBpOOCguOBqCzjgarjgYrjgZ/jgZENCivjgYTjgYTjgoTjgb4s44Gy44Gn44GKDQor44GY44Gj44GoLOOBi+OBpOOBsuOCjQ0KK+OBj+OBvOOBnyzjgZXjgaHjgZMNCivjgYTjgZfjgZDjgo0s44GI44GE44GYDQor44KC44KKLOOBhuOBpOOBvw0KK+OBi+OCk+OBrizjgZXjgaHjgZMNCivjgYTjgajjgYYs44Gb44GE44GYDQor44KI44GX44GgLOOCiuOCheOBhuOBmA0KK+OBvuOCi+OChOOBvizjgY/jgavjgYoNCivjgZXjgajjgYYs44Gq44G7DQor44GT44GG44GgLOOCiOOBhuOBmA0KK+OCj+OBn+OBqyzjgb7jgoLjgosNCivjgZXjgZss44GE44GP44GKDQor44Gd44Go44KE44G+LOOBi+OBpOOBruOCig0KK+OBu+OCk+OBoCzjgabjgovjgY/jgasNCivjgYTjgazjgYQs44KG44Gf44GLDQor44GZ44Ga44GNLOOCiOOBl+OBruOCig0KK+OBk+OBq+OBlyzjgojjgZfjga7jgbYNCivjgZnjgY7jgYQs44KG44GN44Gy44GVDQor44GC44KJ44GNLOOBruOBtuOBig0KK+OBsuOCieOBiuOBiyzjgoTjgZnjgZcNCivjgYrjgYrjgaTjgYss44KA44Gk44GKDQor44GL44Go44GGLOOBl+OBkuOBig0KK+OBl+OBiuOBrizjgbLjgo3jgZcNCivjgYvjgZ/jgoTjgb4s44Gy44KN44Gu44KKDQor44G144Gh44GL44G/LOOBn+OBkeOBsuOBkw0KK+OBsuOCieOBjSzjgZ/jgoLjgaQNCivjgYTjgo/jgZXjgY0s44GN44G/44GKDQor44GI44Gu44GNLOOBmOOCheOCkw0KK+OBhOOCj+OBnyzjgZvjgYTjgYTjgaENCivjgZfjgoXjgajjgYYs44Gf44Gg44GXDQor44Go44GK44KE44G+LOOBvuOBpOOBruOCig0KK+OBk+OBhOOBpyzjgZjjgoXjgpPjgZbjgbbjgo0NCivjgZ/jgarjgbks44KG44GG44GY44KN44GGDQor44KE44G+44KC44GoLOOBl+OCheOCk+OBhOOBoQ0KK+OBi+OBhOOBr+OBpCzjgZvjgYTjgZcNCivjgYLjgonjgYQs44GL44Gk44GYDQor44GG44GI44GgLOOChuOBhuOBnuOBhg0KK+OBj+OCieOBiuOBiyzjgZ3jgYbjgYTjgaHjgo3jgYYNCivjgZPjgbDjgoTjgZcs44GI44Gk44Gy44KNDQor44Gf44KB44Gh44GLLOOBn+OBpuOBig0KK+OCiOOBl+OBoCzjgZfjgZrjgYoNCivjgb7jgaTjgoLjgags44GX44GS44KLDQor44GV44GL44GX44GfLOOBi+OBreOBig0KK+OCj+OBoCzjgajjgZfjgYLjgY0NCivjgYTjgajjgYYs44KE44GZ44GKDQor44KI44GX44GgLOOBi+OBpOOBmA0KK+OCiOOBreOBoCzjgajjgZfjgbLjgacNCivjgYrjgoDjgoks44G+44GV44G/DQor44Gf44GL44GOLOOBl+OBoeOCjeOBhg0KK+OBhuOBoeOChOOBvizjgYLjgY3jgZMNCivjgYvjgZfjgo/jgY4s44GR44GE44GTDQor44Gr44GX44GgLOOBm+OBpOOBig0KK+OBiuOBl+OBiyzjgZ/jgZHjgYoNCivjgYjjgZjjgb4s44Go44KC44Gu44KKDQor44GK44GLLOOBkeOCk+OBhOOBoQ0KK+OCiOOBl+OBoCzjgoTjgZnjgYgNCivjgYTjgb7jgYQs44KE44GZ44GX44KN44GGDQor44KE44G+44G/44GhLOOBqOOCguOBkw0KK+OBguOBhOOCguOBrizjgYvjgaTjgYoNCivjgbLjga4s44KC44Go44GTDQor44Gf44GL44Gv44GXLOOBv+OBleOBkw0KK+OCiOOBk+OBnyzjgYjjgYTjgZMNCivjgYTjga7jgYYs44Gf44GI44GTDQor44KI44GX44GgLOOBsuOCjeOBkw0KK+OCiOOBl+OBiuOBiyzjgYLjgY3jgZMNCivjgYbjgoHjgZbjgo8s44GG44GN44GTDQor44Gm44KJ44GKLOOBsuOCjeOBsuOBlQ0KK+OBi+OCj+OBr+OCiSzjga/jgovjgYoNCivjga/jgZvjgYzjgo8s44G/44Gu44KLDQor44GN44GXLOOBpuOCi+OBkw0KK+OBr+OBl+OBmuOCgSzjgb/jgaTjgbLjgo0NCivjgojjgZfjgaAs44KB44GQ44G/DQor44G/44Gt44G144GYLOOBquOBiuOBkw0KK+OBu+OCk+OBoCzjgobjgb8NCivjgZ/jgYvjgZXjgo8s44G/44KG44GNDQor44GK44GK44Gv44GXLOOCiOOBhuOBkw0KK+OBi+OBjOOCjyzjgaHjgYsNCivjgavjgZfjgaAs44G+44KKDQor44GE44Gf44GM44GNLOOBguOBjeOBkw0KK+OBguOBjeOChOOBvizjga7jgorjgbLjgo0NCivjgYrjgaHjgoos44KE44GZ44Gy44KNDQor44Gu44GW44KPLOOBk+OBhuOBmA0KK+OBleOBhOOBqOOBhizjgZHjgpPjgZgNCivjgY3jgoDjgoks44Gh44GIDQor44GC44G5LOOBquOBiuOBqA0KK+OBj+OBmeOBruOBjSzjgajjgoLjgZMNCivjga/jgoTjgZcs44KE44GZ44Gy44KNDQor44GK44GK44GELOOBquOBiuOBvw0KK+OBi+OBv+OBiuOBiyzjga/jgovjgojjgZcNCivjgYLjgY3jgoTjgb4s44GE44GV44GKDQor44GC44KK44GfLOOBi+OBpOOBvw0KK+OBjeOBn+OCgOOCiSzjgb/jgaHjgobjgY0NCivjgb7jgZnjgoDjgoks44Gf44GL44Gu44KKDQor44GK44GK44GV44KPLOOBkeOCkw0KK+OBi+OCj+OBhCzjgb/jga7jgosNCivjgYTjgZ/jgYzjgY0s44Gy44Gn44GKDQor44KC44KKLOOBn+OBi+OBig0KK+OBguOBiuOBjSzjgb/jgY3jgYoNCivjgbXjgZjjgZfjgo0s44GT44GG44GYDQor44GX44G/44GaLOOCguOBqOOBl+OBkg0KK+OCgOOCieOBi+OBvyzjgb/jgojjgZcNCivjgarjgYvjgZjjgb4s44Gm44Gk44GKDQor44KC44GOLOOBguOBjeOBig0KK+OBv+OBhuOCiSzjgYvjgZrjgYoNCivjgZ/jgYvjgb7jgaQs44GR44KT44GYDQor44Gf44GL44GgLOOBl+OCh+OBhuOBhOOBoQ0KK+OBk+OCk+OBqSzjgb7jgZXjgZMNCivjgarjgYvjgZjjgb4s44Gy44Go44GXDQor44Gt44KM44GELOOBsuOCjeOBlw0KK+OBhuOBl+OBjyzjgYrjgZXjgoANCivjgY3jgZ/jgZbjgo8s44GTDQor44GV44Gj44GVLOOBruOBtuOBsuOCjQ0KK+OBhOOBo+OBl+OBjSzjgojjgZfjgbLjgo0NCivjgYvjgo/jga4s44Gu44KK44Gk44GQDQor44GE44GX44Gv44KJLOOBteOBv+OBn+OBiw0KK+OBi+OCgeOBiuOBiyzjgZ/jgaDjgYoNCivjgY3jgYbjgaEs44Gu44KK44GL44GaDQor44Gq44GM44GELOOBsuOBqOOBlw0KK+OBruOBkOOBoSzjgb/jgaHjgYoNCivjgYrjgZfjgZ8s44Gf44GL44GKDQor44KI44GX44KA44KJLOOBqOOBl+OBv+OBoQ0KK+OBguOBi+OBu+OCiizjgb/jgaTjga7jgbYNCivjgb7jgovjgarjgYws44KI44GX44Gk44GQDQor44KI44GX44GuLOOBk+OBhuOBn+OCjeOBhg0KK+OChOOBrizjgojjgZfjgbLjgo0NCivjgoTjgb7jgZDjgaEs44G+44GV44Gy44GnDQor44KE44G+44GQ44GhLOOBi+OBpOOBqOOBlw0KK+OBm+OCk+OBqeOBoCzjgb7jgZXjgosNCivjgoTjgZnjgaAs44GC44GN44KJDQor44KI44GT44GILOOBmOOCheOCk+OBhOOBoQ0KK+OChOOBvuOBl+OBnyzjgZvjgYTjgZbjgbbjgo3jgYYNCivjgojjgZfjgaAs44Go44G/44Ge44GGDQor44KE44G+44GX44GfLOOBmeOBmeOCgA0KK+OChOOBmeOBhCzjgYvjgZrjgYoNCivjgoTjgb7jgYrjgYss44GN44KH44GG44GZ44GRDQor44KI44GT44GbLOOBqOOCguOBl+OBkg0KK+OChOOBvuOBkOOBoSzjgZHjgpPjgZgNCivjgoTjga/jgY4s44KE44GZ44Gv44KLDQor44KE44G+44GK44GLLOOBsuOCjeOBvuOCiw0KK+OCiOOBpOOChCzjgajjgYrjgosNCivjgoTjgb7jgoLjgags44GY44KF44KT44GTDQor44KI44GX44GL44KPLOOBqOOBl+OCjeOBhg0KK+OChOOBvuOBl+OBnyzjgZfjgofjgYbjgZgNCivjgoTjgb7jgYrjgYss44Gy44KN44GTDQor44KI44Gt44G/44GkLOOBm+OBhOOBmA0KK+OCiOOBl+OBoCzjgZHjgpPjgYTjgaENCivjgoTjgb7jgZbjgY0s44Gm44Gk44GKDQor44KE44G+44KC44GoLOOBsuOBi+OCiw0KK+OChOOBvuOBkOOBoSzjgb/jga7jgosNCivjgoTjgb7jgYbjgaEs44GV44GL44GIDQor44KI44GX44GW44KPLOOBi+OBpOOBvw0KK+OCiOOBl+OBiuOBiyzjgYvjgaTjgbLjgagNCivjgoTjgb7jgoLjgags44Gu44G244GKDQor44KE44G+44GK44GLLOOBv+OBoeOBqOOBlw0KK+OChOOBvuOBluOBjSzjgYLjgY3jgokNCivjgojjgZfjgoDjgoks44G+44GV44Gy44GTDQor44KE44GZ44GgLOOBk+OBhuOBmA0KK+OChOOBvuOBl+OBnyzjgZvjgYTjgYTjgaENCivjgoTjgaAs44GX44KT44KEDQor44KI44GX44GgLOOBhOOBoeOCjeOBhg0KK+OChOOBvuOCguOBqCzjgaTjgajjgoANCivjgoTjgb7jgaAs44GU44KN44GGDQor44KI44Gt44GgLOOBi+OBiuOCiw0KK+OCiOOBl+OBoCzjgb7jgZXjgbLjgo0NCivjgoTjgb7jgaAs44GP44GZ44GKDQor44KE44G+44GQ44GhLOOBn+OBi+OBteOBvw0KK+OChOOBvuOBkOOBoSzjgbXjgb/jgbLjgo0NCivjgoTjgb7jgoLjgags44Gf44GL44GTDQor44KI44GX44GgLOOBmeOBmeOCgA0KK+OChOOBvuOBl+OBnyzjgZfjgofjgYbjgZ7jgYYNCivjgoTjgpPjgbks44GC44Gk44Gy44KNDQor44KE44G+44GQ44GhLOOBruOCiuOCiOOBlw0KK+OChOOBvuOCguOBqCzjgZjjgoXjgpPjgZgNCivjgoTjgb7jga0s44GT44GG44GY44KN44GGDQor44KE44G+44GV44GNLOOBkeOCk+OBn+OCjeOBhg0KK+OChOOBmeOBiuOBiyzjgobjgY3jgYoNCivjgoTjgb7jgaAs44GI44GE44Ge44GGDQor44KI44GX44GW44KPLOOBmOOCjeOBhg0KK+OChOOBmOOBvizjgYLjgY3jgokNCivjgoTjgarjgYQs44Gm44Gk44GKDQor44KE44G+44GW44GNLOOBi+OBmuOBig0KK+OChOOBvuOBhuOBoSzjgbXjgY/jgb/jgaENCivjgoTjgb7jgZbjgY0s44GZ44GZ44KADQor44KI44GX44GuLOOBn+OBpOOChuOBjQ0KK+OChOOBvuOBi+OBkizjgZ/jgaDjga7jgbYNCivjgoTjgY4s44GY44Gk44Gu44KKDQor44KE44GZ44GgLOOBvuOBleOBig0KK+OChOOBvuOChCzjga7jgbbjgYoNCivjgZ/jgYvjgZDjgaEs44Gu44G844KLDQor44KI44GX44GgLOOBsuOCjeOBlw0KK+OCiOOBl+OBrizjgZPjgYbjgZgNCivjgoTjgb7jgoDjgoks44GY44KF44KT44GE44GhDQor44KE44GOLOOBi+OBpOOBruOCig0KK+OChOOBvuOBoCzjgZPjgZnjgZENCivjgobjgYvjgo8s44G+44GV44Go44GXDQor44KE44G+44KC44GoLOOBmOOCh+OBhuOBmA0KK+OChOOBvuOBn+OBqyzjgbLjgo3jgaTjgZANCivjgoTjgb7jgoDjgo0s44KI44GX44GL44GtDQor44KI44GX44GgLOOBqOOBl+OBsuOBkw0KK+OCiOOBk+OBi+OCjyzjgajjgoLjgojjgZcNCivjgoTjgb7jgZbjgY0s44GT44GG44GE44GhDQor44KE44G+44KC44GoLOOBn+OBkeOBig0KK+OCiOOBl+OBrizjgY3jgojjgZcNCivjgoTjgb7jga0s44KI44Gt44Gf44GLDQor44KE44GZ44Gq44GMLOOBguOBjeOBsuOCjQ0KK+OChOOBquOBiyzjgZHjgYTjgYTjgaENCivjgoTjgb7jga0s44Gm44Gk44GKDQor44KE44G+44GG44GhLOOCiOOBl+OChuOBjQ0KK+OChOOBvuOBkOOBoSzjgobjgYbjgZgNCivjgoTjgb7jgo/jgY0s44GX44KH44GG44Gf44KN44GGDQor44KE44G+44GL44KPLOOBmOOCheOCk+OBhOOBoQ0KK+OChOOBvuOBoCzjgYvjgZrjgb8NCivjgojjgZPjgoTjgb4s44GX44KH44GG44Gf44KN44GGDQor44KE44G+44KC44GoLOOChOOBneOBvw0KK+OChOOBvuOBkOOBoSzjga7jgbzjgosNCivjgoTjgb7jgZDjgaEs44Gf44GL44KI44GXDQor44KI44GX44GgLOOBn+OBi+OBig0KK+OChOOBvuOBquOBiyzjgYvjgZrjgb8NCivjgoTjgb7jgoLjgags44Gf44Gg44Gv44KLDQor44KI44GX44GgLOOBn+OBi+OBig0KK+OChOOBvuOBoCzjgZXjgajjgosNCivjgoTjgb7jgYrjgYss44KI44GX44Go44KCDQor44KI44GT44KE44G+LOOBvuOBleOBsuOBlQ0KK+OChOOBvuOBleOBjSzjga7jgorjgYoNCivjgoTjgb7jgoLjgags44GL44Gk44Gy44GTDQor44KE44G+44GL44KPLOOBvuOBleOCiOOBlw0KK+OChOOBhuOBoSzjgZ/jgaDjgojjgZcNCivjgojjgZfjga/jgoks44GL44Gk44GYDQor44KI44GT44G/44GeLOOBl+OBkuOCiw0KK+OChOOBvuOCguOBqCzjgZfjgoXjgYbjgZ7jgYYNCivjgoTjgb7jgoLjgags44Gm44KL44GKDQor44KE44G+44KC44GoLOOBiOOBhOOBhOOBoeOCjeOBhg0KK+OCiOOBl+OBoCzjgb7jgZXjgbLjgo0NCivjgojjgZfjgaAs44G144G/44Gy44KNDQor44KE44GZ44GELOOBv+OBruOCiw0KK+OChOOBvuOBkOOBoSzjgZfjgZLjgosNCivjgoTjgb7jgoLjgags44GC44GN44KJDQor44KI44GT44GfLOOBiOOBhOOBhOOBoQ0KK+OCiOOBl+OBoCzjgobjgZ/jgYsNCivjgojjgZPjgoTjgb4s44Gy44Gn44GNDQor44KE44GZ44GELOOBi+OBmuOCguOBqA0KK+OChOOBvuOBleOBjSzjgYvjgZrjgbLjgo0NCivjgojjgZfjgYrjgYss44Gu44G244GKDQor44KI44GX44GgLOOBl+OCheOCk+OCjeOBjw0KK+OChOOBvuOBoCzjgYvjgaTjgbLjgo0NCivjgoTjgb7jgoLjgags44KI44GG44GYDQor44KI44GX44GgLOOBm+OBhOOBnuOBhg0KK+OChOOBvuOBluOBjSzjgZvjgYTjgZfjgo3jgYYNCivjgoTjgb7jga0s44Gq44GK44GYDQor44KG44Gf44GrLOOBmeOBmeOCgA0KK+OCiOOBreOBluOCjyzjgojjgZfjgbLjgo0NCivjgojjgZfjga4s44Gg44GE44GZ44GRDQor44KI44GX44GgLOOBn+OBkeOBig0KK+OCiOOBl+OCguOCiizjgbLjgZXjgajjgogNCivjgojjgZfjgo/jgoks44Gf44GR44GXDQor44KE44G+44GgLOOBqOOBl+OBjQ0KK+OCiOOBl+OBoCzjgajjgZfjgYvjgZoNCivjgojjgZfjgaAs44KA44Gk44GKDQor44KE44G+44KC44GoLOOCguOCiuOBsuOBkw0KK+OBk+OBmOOBvizjgY/jgavjgYvjgaQNCivjgYrjga4s44GX44GS44GKDQor44G+44GI44GL44KPLOOBk+OBhuOBn+OCjeOBhg0KK+OBk+OCk+OBrizjga7jgbbjgobjgY0NCivjgb7jgY3jgZss44GN44KI44GXDQor44Gu44KA44KJLOOBvuOBleOBn+OBiw0KK+OChOOBmeOBr+OCiSzjgb7jgZXjgbLjgZMNCivjgarjgYzjgZfjgb4s44GC44Gk44KI44GXDQor44GN44Gf44Gv44GXLOOBvuOBleOBig0KK+OBpOOCiyzjgY3jgojjgb/jgaENCivjgaTjgY/jgaAs44G/44Gh44GKDQor44Gm44KJ44GG44GhLOOBn+OBkeOBlw0KK+OChOOBvuOBoCzjgZXjgajjgosNCivjgZvjgpPjgbAs44GZ44GZ44KADQor44GV44GI44GNLOOBruOCiuOBig0KK+OBiuOBi+OBoCzjgZfjgofjgYbjgYTjgaENCivjgb/jgoTjgYbjgaEs44Gy44GV44GKDQor44GT44KT44GpLOOBqOOBl+OBig0KK+OBteOBjeOBguOBkizjgoTjgZnjgYoNCivjgYTjgZfjgYvjgo8s44Gh44KI44Gf44GRDQor44GE44KP44KC44GoLOOBvuOBleOBig0KK+OBj+OBvCzjgZjjgoXjgpPjgYTjgaHjgo0NCivjgZ/jgarjgYss44Gy44KN44GL44GkDQor44KP44GgLOOBruOCiuOBig0KK+OBhOOCj+OBiizjgaTjga3jga7jgooNCivjgY/jgb7jgYzjgYQs44Gf44GL44Gy44KNDQor44GZ44Ga44GNLOOBsuOCjeOBteOBvw0KK+OBn+OBi+OCgOOCiSzjgbLjgo3jgZcNCivjgavjgZfjgYbjgoks44Gb44GE44GE44Gh44KN44GGDQor44G/44Gk44GYLOOBvuOBleOBlw0KK+OBn+OBjeOBjeOBnyzjgYLjgY3jgokNCivjgYrjgYbjgaEs44GR44KT44GYDQor44GT44G+LOOBguOBjeOBig0KK+OBvuOBmeOBoCzjgZHjgpPjgZgNCivjgYvjgajjgYYs44Go44GX44KN44GGDQor44GE44GE44Ga44GLLOOBi+OBmuOBsuOBkw0KK+OBvuOCi+OChOOBvizjga7jgbbjgYLjgY0NCivjgajjgZfjgZ/jgass44Go44GK44KLDQor44Gv44Gq44G244GhLOOBvuOBleOBsuOCjQ0KK+OBhOOBvuOBhCzjgb7jgZXjgZ7jgYYNCivjgYrjgYvjgbLjgo0s44Gk44Gt44GKDQor44GN44KA44KJLOOBqOOBl+OBsuOBkw0KK+OBn+OBmOOBvizjgb7jgZXjga/jgosNCivjgYvjgpPjgaAs44Gk44KJ44KG44GNDQor44Gp44GELOOBiuOBleOCgA0KK+OBguOCieOBjOOBjSzjgoTjgZnjga7jgbYNCivjgY3jgoXjgYbjgZ3jgZjjgpMs44GR44KT44GZ44GRDQor44Gf44GR44GG44GhLOOBpOOBreOCiA0KK+OBhuOBrOOBvizjgbLjgafjgarjgooNCivjgoTjgb7jgZDjgaEs44KI44GX44Gf44GLDQor44KI44KC44KKLOOCguOBqOOBsuOBlQ0KK+OBl+OBvuOBluOBjSzjgY/jgavjgbLjgZMNCivjgajjgY/jgoQs44Go44GX44GKDQor44KE44G+44GgLOOBguOBjeOCiQ0KK+OBteOBi+OChCzjgZfjgZLjgYoNCivjgYjjgZDjgaEs44Gv44KL44GKDQor44GV44GuLOOBsuOBp+OBruOBtg0KK+OBqOOBj+OBrizjgYLjgY3jgokNCivjgYrjgYrjgajjgoIs44GV44Gg44KADQor44GX44KJ44GK44GM44KPLOOBsuOCjeOBlw0KK+OBsuOCieOBrizjgZ/jgYTjgY0NCivjgYrjgaAs44KG44GG44GYDQor44Gf44Gq44GLLOOCiuOCh+OBhuOBnuOBhg0KK+OBteOBmOOBnyzjgYLjgY3jgokNCivjgYLjgonjgYQs44GC44GN44Gy44GnDQor44G144GY44GfLOOChuOBhuOBmA0KK+OBquOBi+OBjOOCjyzjgbLjgo3jgobjgY0NCivjgarjgYvjgavjgZcs44GL44Ga44GX44GSDQor44Gv44KJLOOBguOBjeOBsuOCjQ0KK+OBoeOBsCzjgajjgZfjgZMNCivjgYTjgZfjgo/jgZ8s44Go44GX44Gy44GVDQor44KE44GQ44GhLOOBn+OBkeOBsuOCjQ0KK+OBpuOBmOOBvizjgYvjgZrjgYoNCivjgZ/jgaTjgZ8s44GX44GS44KLDQor44GP44GV44GLLOOBn+OBkeOBlw0KK+OBteOCi+OBnyzjgZ/jgZHjga/jgosNCivjgZTjgajjgYYs44G+44GV44Gu44G2DQor44GK44Gg44GO44KKLOOBn+OBoOOBlw0KK+OBj+OBvuOBjOOBhCzjgZ/jgZHjgosNCivjgoDjgonjgYvjgb8s44G/44Ga44G7DQor44G/44KA44KJLOOBvuOBleOBig0KK+OCiOOBk+OBhCzjgY/jgavjgbLjgZMNCivjgYTjgarjgZIs44Go44KC44KG44GNDQor44GC44KB44G/44KELOOBv+OBpOOBig0KK+OBhOOBruOBhuOBiCzjgZXjgaDjgYoNCivjgazjgb7jgZ8s44GY44KT44GE44GhDQor44GV44GL44KC44GoLOOBlOOBuOOBhA0KK+OBsuOCieOBvuOBpCzjgZXjgaDjgYoNCivjgarjgorjgZ8s44GL44GK44KLDQor44Gk44Gt44G/LOOBhOOBoeOCjeOBhg0KK+OBn+OBi+OBl+OBvizjgbXjgZXjgbLjgZMNCivjgb/jgZks44GL44Ga44G/DQor44GV44GN44KE44G+LOOCiOOBl+OBsuOBkw0KK+OBteOBmOOCj+OCiSzjgZ/jgaDjgZcNCivjgajjgb/jgZ8s44G+44GV44Gy44KNDQor44Gk44Gq44KP44GNLOOBv+OBreOBig0KK+OBr+OBm+OBjOOCjyzjgZ/jgZHjgZcNCivjgbXjgY/jgZbjgo8s44KG44GG44Ge44GGDQor44GU44GI44GRLOOBguOBjeOCiQ0KK+OBquOBiyzjgb7jgZXjgbLjgo0NCivjgYjjgbDjgags44GR44GE44GTDQor44GT44Gw44KE44GXLOOBl+OCk+OBhOOBoeOCjeOBhg0KK+OBsuOCieOBpOOBiyzjgY3jgojjgZcNCivjgZXjgajjgYYs44Gu44G244GKDQor44GE44Gu44GG44GILOOBguOBjeOCiQ0KK+OBr+OBmeOBrOOBvizjgb7jgZXjgYoNCivjgbXjgovjga/jgZ8s44GC44GV44GTDQor44GG44GI44GuLOOBguOBpOOBlw0KK+OBn+OBkeOBquOBiyzjgb7jgZXjgbLjgo0NCivjgY/jgavjgZ/jgZEs44KI44GX44GKDQor44Gy44KJ44GfLOOChuOBhuOBkw0KK+OBr+OBm+OBjOOCjyzjgZLjgpMNCivjgbXjgY/jga/jgoks44GC44Gk44GXDQor44G144Gq44GQ44GhLOOBqOOBiuOCiw0KK+OBguOBvuOBrizjga7jgorjgZMNCivjgYrjgYrjga4s44G/44Ga44Gu44KKDQor44GZ44KPLOOBruOCiuOBkw0KK+OBruOBjOOBvyzjgb/jgYsNCivjgYbjgoHjga4s44KE44GZ44KG44GNDQor44GE44GR44GuLOOChuOBhuOBkw0KK+OBquOBi+OBmOOBvizjga/jgarjgZMNCivjgYTjgZfjgYQs44GN44KH44GG44GTDQor44GV44GE44Go44GGLOOBqOOCguOBkw0KK+OBn+OBquOBiyzjgYvjgZrjgobjgY0NCivjgZ/jgabjgYTjgZcs44Go44GX44GL44GaDQor44GZ44Ga44GNLOOCiOOBl+OBsuOBkw0KK+OBjeOBruOBl+OBnyzjgbLjgYvjgosNCivjgYrjgYrjgZXjgo8s44KI44GX44Gy44KNDQor44GE44GnLOOBleOBjeOBkw0KK+OBiuOBjOOCjyzjgZfjgbsNCivjgYjjga7jgoLjgags44KP44GN44GTDQor44GK44GW44KPLOOBv+OBmuOBuw0KK+OBr+OBn+OBkeOChOOBvizjgajjgoLjgbLjgo0NCivjgYTjgYTjgaAs44G/44Gk44GC44GNDQor44GX44Gu44GW44GNLOOBmOOCheOCk+OBhOOBoQ0KK+OBiuOBi+OBoCzjgorjgYjjgZMNCivjgZ/jgYvjgb4s44G+44GV44GXDQor44KE44GOLOOBsuOCjeOChuOBjQ0KK+OBleOBi+OBhCzjgb7jgZXjgogNCivjgZfjgb/jgZos44GT44GG44GYDQor44G744KK44GL44KPLOOCiOOBhuOBkw0KK+OBquOBjOOBiizjgZPjgYbjgbjjgYQNCivjgbLjgonjgYTjgZcs44G+44KKDQor44GV44GM44KPLOOBn+OCguOBpA0KK+OBr+OCieOBoCzjgb7jgZXjgb8NCivjgZ/jgYvjga/jgZcs44KK44KF44GG44GE44GhDQor44Gf44GhLOOBvuOBleOCiA0KK+OBsuOBiCzjgY3jgb/jgYoNCivjgZ/jgaAs44G/44Gq44GTDQor44KI44GX44KC44GoLOOBsuOCjeOBkw0KK+OCguOBoeOBmuOBjSzjgaHjgbLjgo0NCivjgZ/jgarjgYss44GT44GG44GYDQor44Gf44GQ44GhLOOBvuOChuOBvw0KK+OBleOBqOOBhizjgYTjgY/jgYoNCivjgZXjgYvjgZfjgZ8s44KG44GN44GIDQor44GL44KP44GX44G+LOOBvuOChuOBvw0KK+OBu+OCiuOBkOOBoSzjgYvjgYrjgooNCivjgbXjgY/jgb4s44GZ44G/44Gf44GLDQor44GL44KP44Gf44GrLOOBguOBjeOCiQ0KK+OBmOOBs+OBjSzjgYrjgZXjgoANCivjgZXjgYTjgajjgYYs44G/44Gk44KLDQor44GX44GK44GkLOOBhOOBleOBig0KK+OBqOOBsOOBnyzjga7jgorjgYvjgZoNCivjgoTjgb7jgoLjgags44G+44GV44Gy44GTDQor44GK44G144GhLOOBsuOCjeOBv+OBoQ0KK+OBl+OBruOBr+OCiSzjga7jgbbjgYoNCivjgoTjgb7jgYvjgo8s44GL44Ga44Gf44GgDQor44Gf44KA44KJLOOBqOOBl+OBig0KK+OBr+OBn+OBkeOChOOBvizjgZ/jgYvjgZMNCivjgZ/jgarjgYss44Gy44GL44KLDQor44GL44Gq44GW44KPLOOBsuOBp+OBguOBjQ0KK+OBn+OBi+OBr+OBlyzjgYjjgorjgZMNCivjgbXjgZjjgoDjgoks44G/44Gq44GTDQor44Gq44GM44GX44G+LOOCiOOBl+OChuOBjQ0KK+OBjeOBruOBl+OBnyzjgajjgY3jgZMNCivjgZPjgpPjgaks44G+44G/DQor44GC44KT44G5LOOBvuOBquOBvw0KK+OBleOBhOOBqOOBhizjgYTjgZrjgb8NCivjgYLjgZXjgaAs44G/44GNDQor44GN44Gu44GX44GfLOOBteOBv+OBiA0KK+OBi+OBqeOChCzjgYLjgY3jgZMNCivjgYbjgYjjgaAs44Go44GK44KLDQor44GV44GE44Go44GGLOOCguOBqw0KK+OBn+OBi+OBr+OBlyzjgb7jgZXjgbLjgo0NCivjgYTjgZfjgZbjgY0s44GX44KC44KTDQor44GK44GW44KPLOOBpuOCi+OBsuOBlQ0KK+OBr+OChOOBlyzjgYrjgZXjgoANCivjgoTjgYzjgo8s44G/44Gh44GKDQor44Gf44GL44Gv44GXLOOBn+OBv+OBig0KK+OBqOOBv+OChOOBvizjgojjgZfjgYLjgY0NCivjgYLjgaDjgaEs44KG44GG44Ge44GGDQor44GC44GL44GE44KPLOOBl+OCh+OBhuOBmeOBkQ0KK+OBi+OBjOOChCzjgobjgY3jga7jgbYNCivjgYLjgonjgYQs44GV44GK44KKDQor44GK44GX44GN44KKLOOBn+OBi+OBlw0KK+OChOOBvuOCgOOCiSzjgYjjgYTjgZgNCivjgZ/jgYvjgoTjgb4s44Go44GX44KG44GNDQor44KI44GT44KE44G+LOOBiuOBleOCgA0KK+OBsOOCkyzjgaTjgZDjgYoNCivjgYTjgZrjgb8s44KI44GX44Gu44KKDQor44G/44Ga44GuLOOBn+OBoOOBig0KK+OBtuOCk+OChCzjgb/jga7jgosNCivjgabjgonjgYrjgYss44GX44KH44GG44GYDQor44G/44KE44GX44GfLOOBv+OBruOCiw0KK+OBguOBleOBvizjgZHjgYTjgZMNCivjgZXjgZXjgY0s44Gm44Gk44GKDQor44Gr44GX44GKLOOCiOOCiuOBqA0KK+OBteOCi+OChCzjgabjgaTjgYoNCivjgYTjgb7jgaAs44Gy44Gn44KG44GNDQor44GE44GX44Gv44KJLOOBhOOBj+OBiA0KK+OBr+OBl+OCguOBqCzjgb/jgY3jgYoNCivjgb7jgovjgoTjgb4s44Go44KC44KG44GNDQor44GL44GYLOOBi+OBmuOBn+OBiw0KK+OBi+OBreOBkyzjga/jgarjgZMNCivjgarjgYvjgaAs44Gu44KK44Gy44GoDQor44Gh44GW44KPLOOBquOBuw0KK+OBleOCjyzjgYLjgZXjgZMNCivjgajjgYzjgoEs44G/44KP44GTDQor44KI44GX44GgLOOBkuOCkw0KK+OBiuOBiuOBrizjgbLjgo3jgZMNCivjgoTjgZMs44G+44GV44Gy44GTDQor44GE44GX44GL44KPLOOBguOBjeOBruOCig0KK+OBk+OBqOOBoCzjgbLjgo3jgZMNCivjgZXjgYzjgo8s44GL44Ga44G+DQor44Gu44GQ44GhLOOBi+OBmuOBvuOBlQ0KK+OBp+OCk+OBvCzjgbLjgo3jgbXjgb8NCivjga/jgovjgY0s44GC44GN44Gy44GTDQor44GE44GtLOOBl+OCh+OBhuOBiOOBhA0KK+OBiuOBiuOBrizjgY/jgavjgYoNCivjgYvjga3jgaAs44Gf44Gk44Gy44GTDQor44Gu44GQ44GhLOOBguOBjeOCiQ0KK+OBiuOBiuOBsCzjgbLjgo3jgb/jgaQNCivjgYrjgZ8s44Go44GP44GE44Gh44KN44GGDQor44GX44KC44G+44GNLOOChOOBmeOBig0KK+OCj+OBn+OBsuOBjSzjgobjgYbjgZMNCivjgoTjgb7jgoLjgags44G+44KKDQor44G144GY44KA44KJLOOBvuOCiuOBkw0KK+OBneOBhuOBv+OChCzjgZHjgpPjgZgNCivjgZfjgb4s44GP44G/DQor44GV44GV44GNLOOBn+OBi+OChuOBjQ0KK+OBi+OBjOOCjyzjgozjgYTjgZMNCivjgZ/jgZHjgYbjgaEs44GP44G/44GTDQor44GV44GE44GNLOOBv+OCiOOBkw0KK+OBhOOBqOOBhizjga7jgorjgZMNCivjgY3jgoDjgoks44KI44GG44GYDQor44Gf44Gw44GfLOOBn+OBi+OBsuOCjQ0KK+OBj+OCgSzjgajjgojjgYLjgY0NCivjgZ/jgYvjgaAs44G+44KK44GTDQor44Gf44KA44KJLOOBv+OBiA0KK+OBn+OBi+OBvuOBpCzjgb7jgY3jgZMNCivjgZfjgo3jgZfjgZ8s44GX44KF44GG44GV44GPDQor44GL44Go44GGLOOBqOOCguOChuOBjQ0KK+OBguOCj+OBhCzjgajjgZfjga7jgooNCivjgbvjgZXjgYss44Gu44KK44GTDQor44Gf44Gq44GLLOOCi+OBvw0KK+OBv+OBsuOCiSzjgZfjgoXjgYbjgZXjgY8NCivjgZXjgajjgYYs44GR44GE44GTDQor44GK44GW44KPLOOChuOBjeOBig0KK+OBmeOBmuOBjSzjgZHjgpPjgZgNCivjgb/jgoTjgZbjgY0s44KK44KF44GG44Ge44GGDQor44KC44KK44Gf44GrLOOChuOBi+OCig0KK+OBhOOCj+OBkOOCjSzjgaTjgajjgoANCivjgYbjgYjjgb4s44GX44KH44GG44GTDQor44G144GL44GfLOOBoeOBiw0KK+OBsuOCjeOBmyzjgYLjgY3jgZMNCivjgYrjgYvjgaAs44Gy44KN44G/DQor44GL44Go44GGLOOBguOCiuOBiw0KK+OBvuOBjSzjgZXjgobjgooNCivjga7jgaAs44Go44KC44GL44GaDQor44GP44G8LOOBjeOCh+OBhuOBkw0KK+OBq+OBl+OBjeOBiuOCiizjgaTjgY7jgYoNCivjgoTjga4s44GY44KF44KT44GTDQor44GL44KP44KA44GT44GGLOOBquOBiuOBjQ0KK+OChOOBmeOCgOOCiSzjgb/jgojjgZMNCivjgajjgavjgZcs44Go44KC44GTDQor44KE44G+44KC44GoLOOBsuOBi+OCiw0KK+OBl+OCguOBoCzjgaDjgYTjgZnjgZENCivjgYrjgYrjgZ/jgass44GP44Gr44GKDQor44GK44Gu44GV44GoLOOBr+OCkw0KK+OBi+OBquOBluOCjyzjgbLjgo3jgYLjgY0NCivjgYrjgYvjgoLjgags44G/44KP44GTDQor44GV44GE44Go44GGLOOBv+OBquOBkw0KK+OBi+OBl+OCj+OBsOOCiSzjga7jgbbjgZMNCivjgZ/jgYvjga/jgZcs44G+44GV44Gu44G2DQor44GV44GE44Go44GGLOOBvuOBquOBtg0KK+OBvuOBpOOBoCzjgojjgZfjgYLjgY0NCivjgZ/jgaHjgZbjgY0s44KP44GL44GTDQor44GT44KT44GpLOOBqOOCguOBkw0KK+OBl+OBv+OBmizjgaDjgYTjgZnjgZENCivjgarjgYzjgYrjgYss44GL44GK44KKDQor44Gq44GL44GM44KPLOOBguOBpOOBlw0KK+OBn+OBi+OBqCzjgbLjgo3jgobjgY0NCivjgY3jgoDjgoks44Gf44GL44GXDQor44Gq44KL44GbLOOBjeOCiOOBvw0KK+OBiuOBkOOBvizjgYvjgYgNCivjgZ/jgYvjga/jgZcs44G/44Gq44GIDQor44GN44GP44GhLOOBm+OBhOOBkw0KK+OBleOBqOOBhizjga/jgZjjgoENCivjgYjjgpPjgaks44G+44KK44GTDQor44Gf44KA44KJLOOBqOOCguOBruOCig0KK+OChOOBvuOCguOBqCzjgZPjgYbjgZgNCivjgYLjgZXjgYQs44KI44GX44Gy44KNDQor44KC44KKLOOBiuOBleOCgA0KK+OBn+OBi+OBl+OCjSzjgoHjgZDjgb8NCivjgYrjgYss44GV44GE44GLDQor44GL44Go44GGLOOBqOOBl+OChA0KK+OBhOOBkOOBoSzjgZXjgaHjgZMNCivjgZ/jgarjgYss44GN44KH44GG44GTDQor44KI44GX44GgLOOBk+OBhuOBmA0KK+OBguOBjeOCguOBqCzjgb7jganjgYsNCivjgavjgZfjgYQs44GY44KF44KT44GYDQor44KP44GX44GK44GLLOOBk+OBhuOBmA0KK+OBhOOBrOOBvuOCiyzjgbLjgo3jgZgNCivjgbvjgZcs44GX44Ga44GLDQor44KI44Gt44KE44G+LOOBvuOBleOBruOBtg0KK+OBj+OCjeOBuSzjgobjgYbjgYTjgaENCivjgYTjgZfjgYQs44Gy44GV44GIDQor44Gy44GQ44GhLOOBmOOCheOCk+OBhOOBoQ0KK+OBquOBi+OBoCzjgZ/jgYvjga/jgosNCivjgYrjga7jgafjgoks44Gq44GK44GTDQor44Go44GgLOOBqOOBl+OChuOBjQ0KK+OBvuOBiOOBoCzjgbLjgo3jgZMNCivjgarjgYzjgYQs44KG44GN44GTDQor44GT44Gs44GfLOOBsuOBleOCiOOBlw0KK+OBl+OBsOOBleOBjSzjgYvjgaTjgajjgZcNCivjgYbjgYvjgYQs44GC44GN44GLDQor44GZ44Ga44GNLOOBoeOBr+OCiw0KK+OBsuOCieOBjSzjga7jgbbjgZMNCivjgarjgYvjgoDjgoks44KG44GG44GTDQor44KE44G+44GgLOOBvuOBleOBvw0KK+OBi+OBqeOBj+OCiSzjgb7jgZXjgZcNCivjgZ/jgYvjgZXjgY0s44GT44GG44GYDQor44Gq44GL44GfLOOBjeOCiOOBvw0KK+OBn+OBq+OBi+OCjyzjgbvjgZrjgYgNCivjgavjgZfjgoDjgoks44G+44GV44KEDQor44G/44Gq44G/LOOBguOChOOBvw0KK+OBiuOBiuOBrOOBjSzjgb/jga7jgosNCivjgZXjgajjgYYs44Gy44KN44GXDQor44Gf44GL44Gv44GXLOOBn+OBi+OBig0KK+OBsuOBoCzjgYrjgZXjgoANCivjgZXjgY/jgb4s44GX44G+DQor44Gr44GI44GgLOOBn+OBi+OBlw0KK+OCiOOBk+OBhCzjgozjgb8NCivjgojjga3jgY/jgoks44Gf44GR44GKDQor44Gw44KT44GwLOOCiuOBiA0KK+OChOOBvuOBoCzjgYLjgY3jgbLjgacNCivjgYTjgb7jgoDjgoks44KL44KK44GTDQor44GE44GR44GgLOOBoeOBguOBjQ0KK+OBquOBi+OCgOOCiSzjgb/jgarjgZMNCivjgZnjganjgYYs44KK44GIDQor44Gq44GL44Gd44GtLOOBi+OBiuOCig0KK+OBiuOBiuOBleOCjyzjgaHjgYvjgZMNCivjgZXjgajjgYYs44GX44Gh44KN44GGDQor44GI44GE44Gp44KBLOOChuOBjQ0KK+OBhOOBjOOCieOBlyzjgb/jgYsNCivjgZ/jgoQs44Gf44GL44GTDQor44GK44GK44Gy44KJLOOCiOOBl+OBkw0KK+OBleOBi+OCguOBqCzjgZXjgajjgZcNCivjgZnjgY7jgoLjgags44GT44GG44GYDQor44GL44Go44GGLOOBv+OBquOBkw0KK+OCiOOBl+OBhCzjgZ/jgaDjgbLjgo0NCivjgYTjgo/jgoQs44KI44GG44GTDQor44GN44Gu44GX44GfLOOBjeOCh+OBhuOBkw0KK+OBmeOBjuOBleOCjyzjgYvjgZrjgogNCivjgo/jgaAs44G/44KI44GTDQor44G/44KE44GX44GfLOOBiOOBv+OBkw0KK+OBhuOBiOOBrizjga7jgbbjgZMNCivjgYrjgYrjgZ/jgY0s44KG44G/44GTDQor44GE44GX44Gw44GXLOOBjeOCh+OBhuOBkw0KK+OBhOOCj+OBl+OBnyzjgb7jgZXjgYoNCivjgYTjgZfjgYvjgo8s44Gy44Gn44Gy44GTDQor44GN44GXLOOBn+OBpuOBig0KK+OBvuOCi+OChOOBvizjgbLjgZXjgYoNCivjgbvjgpPjgb4s44Gf44GL44GKDQor44GP44GZ44KC44GoLOOBhOOBleOBig0KK+OBhOOBvuOBrizjgY3jgb/jgbLjgacNCivjgYrjgYrjgavjgZcs44Gb44GE44Ge44GGDQor44KE44G+44GgLOOBl+OCh+OBhg0KK+OBteOBmOOBiuOBiyzjgajjgonjgYoNCivjga/jgarjgaAs44KE44GZ44GL44GaDQor44GX44Gw44GfLOOBguOBleOBig0KK+OBv+OChOOBl+OBnyzjgobjgY3jgYoNCivjgYvjgZXjga/jgoks44G+44GV44GKDQor44GK44GK44KE44GRLOOBr+OCi+OBig0KK+OBhOOBvuOBhCzjgY/jgavjgYoNCivjgZPjgZvjgY0s44G+44KK44GTDQor44GK44GK44GfLOOBruOBvOOCiw0KK+OBvuOBoeOBhCzjgYvjgZrjgbLjgo0NCivjgY3jgY/jgaEs44Gb44Gk44GKDQor44Gy44GQ44GhLOOBi+OBmuOBiA0KK+OBv+OBquOCiOOBlyzjgZjjgoXjgpPjgZgNCivjgZnjgZrjgY0s44Gy44KN44GL44GaDQor44Gq44KT44GwLOOBquOBiuOBjQ0KK+OBiuOBiuOBq+OBlyzjgaDjgYTjgZXjgY8NCivjga/jgoTjgZfjgaAs44Gf44GL44Go44GXDQor44Gf44Gq44GLLOOBsuOBp+OBsuOCjQ0KK+OBi+OBreOBkyzjgYvjgZrjga7jgooNCivjgaTjgaHjgoQs44Go44KC44KG44GNDQor44GE44GE44GgLOOBiOOBpOOBig0KK+OBteOCi+OChCzjgYvjgZrjgYoNCivjgarjgYvjgoDjgoks44G/44Gk44GQDQor44Gv44KL44Gv44KJLOOBn+OBi+OBlw0KK+OBu+OCiuOBiCzjgojjgorjgZfjgZINCivjgYrjgYrjgZ8s44Gf44GR44GXDQor44GZ44Ga44GNLOOChOOBmeOBpOOBkA0KK+OBiuOBqCzjgb7jgZXjgajjgZcNCivjgarjgYvjgYzjgo8s44G+44KG44G/DQor44GL44KP44GX44G+LOOCiOOBhuOBuOOBhA0KK+OBpuOCieOCguOBqCzjgobjgYbjgZjjgo3jgYYNCivjgY3jgoDjgoks44GC44GN44KJDQor44KI44Gp44Gq44KPLOOChuOBi+OCig0KK+OBk+OBoOOBhOOCiSzjgbLjgafjgYLjgY0NCivjgYvjgY/jgonjgYQs44KI44GG44GTDQor44GK44GQ44KKLOOBsuOCjeOCiOOBlw0KK+OBr+OBnyzjgZHjgpPjgZgNCivjgb7jgaTjgoLjgoos44GL44Ga44GKDQor44KI44GX44GK44GLLOOBm+OBhOOBmA0KK+OBl+OBkuOBnyzjgb/jgaHjgYLjgY0NCivjgYvjgo/jgZDjgaEs44Go44KC44Gy44KNDQor44GL44Gt44GTLOOBvuOBleOBig0KK+OBguOBleOBsizjgZ/jgaDjgYLjgY0NCivjgo/jgZ/jgarjgbks44GT44GG44GYDQor44GC44KK44KE44G+LOOBpOOBkOOBig0KK+OBpOOBmOOBnyzjgZ/jgaTjgYoNCivjgojjgZfjga/jgZcs44Gy44Gn44GKDQor44G/44GX44G+LOOBm+OBhOOBlw0KK+OBleOBqOOBhizjgYvjgaTjgZgNCivjgYvjga3jgb7jgoss44GI44Gk44Gy44KNDQor44GL44Gt44GTLOOChOOBmeOBlw0KK+OBiOOBmOOBvizjgbLjgo3jgYLjgY0NCivjgb/jgaTjgY/jgaEs44GY44KF44KTDQor44KC44KKLOOBjeOBv+OBig0KK+OBiuOBoSzjgZvjgYTjgYTjgaENCivjgb7jgYjjgYvjgo8s44GL44Ga44GKDQor44Gf44Gq44GLLOOBvuOBleOBruOCig0KK+OBiuOCiuOBjOOBlSzjgb7jgaTjga7jgooNCivjgZPjgZvjgY0s44GL44GK44KLDQor44Gy44KJ44KE44G+LOOBn+OBoOOBlw0KK+OBk+OBvOOCiizjgYjjgaTjgojjgZcNCivjgarjgYvjgYbjgYgs44Gf44Gk44GKDQor44GZ44Go44GGLOOBvuOBleOBig0KK+OBlOOBqOOBhizjgY3jgojjgbLjgZMNCivjgaTjgYvjgoLjgags44Gy44KN44G/44GhDQor44GI44Gz44Gv44KJLOOCiOOBl+OBguOBjQ0KK+OCguOCiuOBrizjgbLjgafjga7jgooNCivjgZnjgZrjgY0s44G+44GV44GC44GNDQor44KI44GX44GgLOOBvuOBk+OBqA0KK+OBhOOBvuOBhCzjgb7jgZXjgY0NCivjgbLjga4s44KA44Gt44Gf44GLDQor44KI44GX44GgLOOBv+OBqg0KK+OBiuOBq+OBmuOBiyzjgZnjgb/jgZ/jgaANCivjgZ/jgYvjgY4s44G+44GV44Gy44GTDQor44GK44KA44KJLOOBi+OBpOOBsuOBqA0KK+OBhuOBoeOChOOBvizjgYjjgaTjgZMNCivjgY/jgo3jgYvjgo8s44KI44GX44Gu44G2DQor44KE44G+44GX44GfLOOBn+OBjeOBig0KK+OBq+OBl+OBoCzjgbLjgZXjgYgNCivjgYvjgZfjgo/jgY4s44Gy44KN44GXDQor44GL44Gt44GTLOOChuOBjeOBkw0KK+OBj+OBvuOBoCzjgb/jgY3jgYoNCivjgZPjgZjjgb4s44Gq44GK44Ga44G/DQor44GX44KJ44GELOOBpuOBpOOBsuOBkw0KK+OBteOCi+OBi+OCjyzjgorjgYgNCivjgoDjgZfjgYYs44Gf44Gg44GC44GNDQor44KI44GX44GuLOOBqOOBl+OBig0KK+OBmeOBjuOBhuOCiSzjgZvjgYTjgYTjgaENCivjgbXjgZjjgZXjgo8s44G+44KKDQor44GV44Go44GGLOOBguOBjeOBsuOCjQ0KK+OBiOOBluOBjSzjgZ/jgYvjgobjgY0NCivjgoDjgonjgYvjgb8s44Gf44GL44GKDQor44Gr44KP44KE44G+LOOBvuOBpOOCguOCig0KK+OChOOBmeOBrizjgb/jgYsNCivjganjgYbjgaAs44Go44KC44Gy44GTDQor44GL44GY44GELOOCguOBquOBvw0KK+OBn+OBquOBiyzjgojjgYbjgZMNCivjgb7jgaTjgarjgoos44GE44GV44GKDQor44GK44GK44Gw44KE44GXLOOBk+OBhuOBjeOBoQ0KK+OBn+OBi+OBr+OBlyzjgZ/jgY/jgoQNCivjgb7jgaTjgoDjgoks44KE44GZ44G+44GVDQor44GT44KC44KKLOOBvuOBjeOBkw0KK+OBruOBnuOBiCzjgYvjgZrjgYgNCivjgYrjga4s44GN44KI44G/DQor44GL44KT44GuLOOBk+OBmuOBiA0KK+OBleOBqOOBhizjgZHjgYTjgZMNCivjga7jgarjgYss44KP44GL44GTDQor44GL44KP44Gv44KJLOOChuOBvw0KK+OBquOBi+OCgOOCiSzjgb7jgobjgb8NCivjgoTjgb7jgZfjgZ8s44Go44GX44GL44GaDQor44GT44GG44GE44GhLOOCguOCguOBiA0KK+OBhOOBn+OChCzjgbLjgafjgYoNCivjgoTjgb4s44G144G/44GTDQor44KE44G+44KC44GoLOOBneOBhuOBhOOBoeOCjeOBhg0KK+OBj+OCieOBnyzjgoTjgZnjgZMNCivjgYvjgo/jgZos44GE44Gf44KLDQor44G/44GL44G/LOOBk+OBhuOBhOOBoQ0KK+OBn+OBjeOBjOOCjyzjgojjgZfjgYvjgZoNCivjgZ/jgarjgYss44Gy44KN44GC44GNDQor44G/44KE44GfLOOBn+OBi+OBpuOCiwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19KYXBhbmVzZV9rLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19KYXBhbmVzZV9rLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTM4NTg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX0phcGFuZXNlX2sudHh0CkBAIC0wLDAgKzEsMjI3NDkgQEAKK++7vyMvKioNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoNCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICovDQorDQor44Ki44Kt44Oi44OILOODpOOCueOCqg0KK+OCouOCreODkCzjgrfjgrLjg6sNCivjgqLjg6njgqQs44OS44OH44Ki44KtDQor44Ki44Op44KkLOOCseODs+OCpOODgQ0KK+OCouOCq+OCrOODryzjg4jjgrfjgqoNCivjgqLjg6njgq0s44K744Kk44K0DQor44Ki44Kk44Kr44OvLOODjuODquOCqg0KK+OCouOCreODjizjg6bjgq3jgqoNCivjgqLjgq3jg6Tjg54s44OE44Oo44K3DQor44Ki44K144KkLOODkuODiOOCtw0KK+OCouODmSzjg57jg6Ljg6sNCivjgqLjg6rjgqws44OE44OI44OgDQor44Ki44Kt44K/LOODqOOCt+ODhuODqw0KK+OCouOCq+ODhOOCqyzjgqvjgrrjg5LjgrMNCivjgqLjg6njgqQs44Oe44K144OP44OrDQor44Ki44K144OP44OpLOOCq+OCuuOCqg0KK+OCouODhOODnyzjg57jgrXjgqLjgq0NCivjgqLjg6/jg6Qs44OS44OI44K3DQor44Ki44K144Kr44OvLOODiOOCt+OCouOCrQ0KK+OCouOCquOCrSzjgqrjgrXjg6ANCivjgqLjg6/jgros44Ki44Kt44OpDQor44Ki44Kt44Kv44K1LOODqOOCpuOCueOCsQ0KK+OCouOCquODpOOCrizjg4/jg4TjgqvjgroNCivjgqLjgrjjgrXjg68s44K344Ol44Km44Kk44OBDQor44Ki44Kk44K9LOODpOOCueOCtw0KK+OCouOCquOCt+ODnizjg4Hjg6jjgqvjgroNCivjgqLjg4jjgqYs44Oe44K144OS44KzDQor44Ki44K144OOLOODqOOCt+ODpA0KK+OCouODquOCrCzjgr3jgqbjgqTjg4ENCivjgqLjgqrjgq0s44Oq44On44Km44OY44KkDQor44Ki44Kk44Kr44OvLOODpuOCreOCqg0KK+OCouOCreOCvyzjg57jgrXjg5Ljg60NCivjgqLjgrXjg44s44OO44Oq44Ki44KtDQor44Ki44K144OILOODkuODh+OCtw0KK+OCouODqeOCrSzjg6jjgrfjgqvjgroNCivjgqLjg7Pjg4njgqYs44Ok44K544K3DQor44Ki44K144Kr44OvLOODkuODreOCtw0KK+OCpOOCpOODgCzjg57jgrPjg4gNCivjgqTjg6/jgrXjg68s44Oe44K144KtDQor44Kk44K344Kr44OvLOODnuOCteOCqg0KK+OCpOODjuOCpuOCqCzjg5Ljg63jg5Ljg4gNCivjgqTjgrfjg4/jg6ks44Oo44K344OO44OqDQor44Km44Kr44K4LOOCteODgeOCsw0KK+OCpuODoeOCv+ODiyzjgqvjg4Tjg5LjgrMNCivjgqrjgrHjgr/jg4ss44Kx44Oz44K4DQor44Kq44Kq44K544KuLOOCouOCreODkuODrQ0KK+OCquOCquOCq+ODryzjg5/jgq3jg5LjgrMNCivjgqvjg4jjgqYs44Oe44K144OI44K3DQor44Kr44OiLOODnuOCteOCouOCrQ0KK+OCr+ODnuOCrOOCpCzjg57jgrXjgrcNCivjgrPjg7Pjg4ks44Ki44Kt44OpDQor44K544Ku44Oi44OILOOCquOCteODoA0KK+ODj+ODnuOCteOCrSzjg6jjgrfjg47jg6oNCivjg4Hjg4As44K344Ol44Oz44K4DQor44OK44Kr44Og44OpLOOCseOCpOOCvuOCpg0KK+ODiuOCrOOCvyzjg4HjgqjjgrMNCivjgrXjg6/jg6Djg6ks44Kr44OB44KzDQor44OK44Or44KqLOODqOOCt+ODjuODlg0KK+ODiuODquOCvyzjg6bjg5/jgrMNCivjg4/jgrvjgqzjg68s44OS44Ot44KzDQor44OV44K444K/LOOCseOCpOOCsw0KK+ODleOCuOODr+ODqSzjgr/jgqvjgrMNCivjg5bjg6jjgqYs44OG44OE44KqDQor44Ob44OqLOOCs+OCpuOCuA0KK+ODn+ODiuODn+ODoOODqSzjg4HjgqLjgq0NCivjg5/jg6Tjgrjjg54s44OB44Oo44OqDQor44Ok44Oe44OALOODnuODqg0KK+ODpOODnuOCsOODgSzjgr/jgqvjgrcNCivjg6Tjg4rjgq7jg4/jg6ks44Of44OJ44OqDQor44Oo44K344OOLOOCt+ODs+OCpOODgQ0KK+ODi+OCpOODgCzjgq/jg4vjg5LjgrMNCivjgqrjgqrjgqTjg6Tjg54s44Om44Km44KzDQor44Kr44OK44Ks44OvLOOCpOODgeODreOCpg0KK+OCreODoOODqSzjg6rjgqjjgrMNCivjg4Tjgqvjgrbjgq0s44Of44ObDQor44Kr44Ov44OALOODiuOCquOCsw0KK+OCouOCteOCq+ODryzjg5/jgrXjgrMNCivjgrfjg6Ljg4Qs44Oe44K144Ki44KtDQor44Kq44KrLOOCv+OCq+ODkuODiA0KK+OCquOCrOODryzjgrPjgrnjgrENCivjgr/jgqTjg6ks44K344On44Km44Kk44OBDQor44Kk44K344OOLOOCreODqOODiuOCrA0KK+OCreODn+OCt+ODnizjgqLjgq3jg6kNCivjgrXjg4jjgqYs44OG44OE44OkDQor44Ok44Oe44OALOOCquOCteODoA0KK+OCquOCquOCvyzjg4rjgqrjg5/jg4ENCivjg57jgqjjg4As44OS44OH44OI44K3DQor44Kr44K244Op44K3LOODn+ODhOODqw0KK+OCtOODiOOCpizjgqvjg4Tjg47jg6oNCivjg5vjgrcs44Oe44Oi44OrDQor44Kv44Ot44OALOOCt+ODs+ODpA0KK+ODhOOCq+ODr+OCrSzjg4jjgrfjg6QNCivjgqTjg4rjgqzjgq0s44Oe44K144OS44OtDQor44Kk44Ov44Oi44OILOOCv+ODouODhA0KK+ODhOODq+OCvyzjgr/jgqvjgrcNCivjgqTjgrfjgrjjg54s44Oq44On44Km44OY44KkDQor44Ok44Oe44OK44KrLOODkuODreODiOOCtw0KK+OCpuOCqOOCrSzjgqLjgq3jgrMNCivjg4vjgrfjg6Djg6ks44Ki44OE44KzDQor44Ov44Kk44OALOOCv+ODgOOCtw0KK+ODqOOCt+ODgCzjg6vjg58NCivjgrfjg5bjg6Qs44Om44K/44KrDQor44Ki44OI44KmLOODnuOCteODjuODqg0KK+ODn+ODpOOCvyzjgqvjgqrjg6sNCivjgqrjgqrjgr/jgq0s44OE44Ku44KqDQor44Kt44Oo44Kq44KrLOODnuOCs+ODiA0KK+OCquOCquOCv+ODiyzjgr/jgqvjgrcNCivjg4vjgrfjg6/jgq0s44OK44Kq44OfDQor44OL44K344Ok44OeLOOCv+OCq+OCtw0KK+ODn+OCt+ODnizjgr/jgqvjg6bjgq0NCivjgqvjg4jjgqYs44OS44Ot44K3DQor44Kk44Oe44KqLOODn+OCuuODmw0KK+OCquOCtuOCrSzjgrPjgqbjgrgNCivjgrvjgq3jg6Qs44Oe44K144Om44KtDQor44OE44Kv44OALOODjuODluODpuOCrQ0KK+ODn+ODqOOCtyzjg47jg5bjg57jgrUNCivjg6jjgrfjg58s44K/44Kr44Om44KtDQor44K144K144Kq44KrLOOCv+OCq+OCtw0KK+OCquOCt+ODnizjg4Hjg4/jg6sNCivjgq/jg5zjgr8s44OB44K644KzDQor44K344OQ44Ok44OeLOOCt+ODpeOCpuOCvuOCpg0KK+OCquOCquOCr+ODnCzjg4jjg4rjg58NCivjgr/jg4Hjg44s44K444Ol44OzDQor44Ov44OALOODn+ODgeODqA0KK+ODnuODhOOCt+OCvyzjg57jgrXjg6Ljg6oNCivjgrPjg6Djg6ks44Ok44K544OS44KzDQor44Oe44Kt44K344K/LOOCseOCpOOCsw0KK+OCouOCq+OCqizjg6Tjgrnjg5Ljg60NCivjg4/jgrfjg6Ljg4gs44OS44OI44K3DQor44Kq44Kq44OOLOOCq+OCuuOCqg0KK+OCu+OCreODouODiCzjg6jjgrfjgqoNCivjg57jgqjjg4As44OB44Kr44OpDQor44Of44OE44Ob44OqLOODiuOCquOCrQ0KK+ODn+ODiuODn+OCvuODjizjg57jgrXjgq0NCivjgrvjgqzjg68s44Kr44Kq44OqDQor44K544K644KtLOODiOODqOOCuA0KK+OCreOCv+OCrOODryzjg6jjgrfjgr/jgqsNCivjg6jjgrfjg6Tjgrks44K444Ot44KmDQor44Ok44Oe44Oi44OILOODnuODqg0KK+OCq+ODiOOCpizjg5Ljg63jgrcNCivjgqvjg6/jgqvjg58s44Oo44KmDQor44Oe44Kt44OOLOODiuOCquOCrQ0KK+OCueOCuuOCrSzjg57jgrXjgqoNCivjg5Xjg6vjgrXjg68s44K144OI44K3DQor44OP44Ok44K3LOOCuA0KK+OCpOODnuODi+OCtyzjg4jjgrfjg5LjgrMNCivjg5/jg6Tjg6Ljg4gs44Om44KrDQor44Oe44KtLOOCr+ODi+OCouOCrQ0KK+OCs+OCpOODhyzjgrXjg5sNCivjg6/jgr/jg4rjg5ks44Oe44K144KzDQor44Kq44Kq44OP44K3LOODkuODiOOCtw0KK+OCouOCq+OCqizjgqLjgq3jgqoNCivjgqLjgrXjgqQs44Kr44K644KzDQor44Kk44Oe44KkLOOCv+OCq+OCtw0KK+OCreODqSzjg57jgrXjg5LjgrMNCivjg4vjgrfjg6Djg6ks44OG44Or44KtDQor44Oo44K344Kr44OvLOODiOOCt+ODpuOCrQ0KK+ODn+ODiuODnyzjgrHjg7PjgrgNCivjg4Tjg6vjgr8s44OO44Oq44KqDQor44OK44Kr44Og44OpLOOCuOODpeODs+OCpOODgQ0KK+OCv+ODiuOCqyzjgrHjg7PjgrgNCivjg57jg4Tjgqbjg6ks44K/44Kx44K3DQor44K544Ku44K/LOOCuA0KK+OCq+ODr+OCpCzjg4jjgrfjgqoNCivjgrPjgq/jg5ws44K144OE44KtDQor44OE44OALOODnuOCs+ODiA0KK+ODn+ODpOOCv+OCsSzjg4jjgrfjgr/jgqsNCivjgq/jg63jgrXjg68s44Oo44K344Kr44K6DQor44K544Of44OS44OpLOODnuOCteODkuOCsw0KK+OCv+OCq+OCrSzjg57jgrXjgqoNCivjgqTjgrfjg4gs44Kz44Km44KtDQor44Ok44Oe44OALOODouODiOOCq+OCug0KK+ODi+OCpOODhCzjg47jg5bjgqLjgq0NCivjgqTjg6/jg6Djg6ks44Kr44Oz44K4DQor44Kr44Ov44OK44OZLOODqOOCt+ODkuODrQ0KK+ODiuOCrOOCpCzjg5Ljg63jg6bjgq0NCivjg6Tjg57jg40s44OB44Ki44KtDQor44Kk44Oe44KkLOOCv+OCq+ODpuOCrQ0KK+ODiuOCq+OCqizjgqTjgrXjgqoNCivjgqrjgrfjgq3jg6os44OV44Of44OP44OrDQor44Kk44K344Kr44OvLOOCuOODpeODsw0KK+OCquOCq+OCuOODnizjgrjjg6Xjg7MNCivjgqrjgqrjg4vjgrcs44Oe44K144OP44OrDQor44K544K644KtLOODhuODhA0KK+ODpOODnuODiuOCqyzjgrXjg4Tjg58NCivjgr/jg4vjgrDjg4Es44Kr44K644OS44OtDQor44Kr44Ov44OZLOODiOOCreOCqg0KK+OCs+ODs+ODjizjg5/jgq0NCivjgrXjg4jjgqYs44Ok44K544OS44OtDQor44K/44Kr44Ok44OeLOOCt+ODs+OCpOODgQ0KK+ODouODquODn+ODgSzjgqTjgr/jg6sNCivjg5vjg6rjgqvjg68s44Kr44OE44OfDQor44OV44Kv44KkLOOCv+ODnuOCsw0KK+OCreOCv+ODoOODqSzjgqLjgq3jg6kNCivjg4rjgqvjg4/jg6ks44OS44Ot44OfDQor44Kk44OB44KkLOODkuODh+ODjuODqg0KK+OCpOODr+OCtSzjgqvjg6jjgrMNCivjgrnjgrrjgq0s44K344Ol44Oz44K4DQor44Oo44ON44K/44OLLOOCq+ODhOODleODnw0KK+OCv+ODjizjgr/jgrHjgrcNCivjgrfjg5Djgr8s44OS44OH44OoDQor44Kk44OO44Km44KoLOODnuOCteODjuODqg0KK+OCpOOCt+OCq+ODryzjg4jjgrfjgqoNCivjgq3jgrcs44Oe44K144OfDQor44Ki44Ov44KoLOOCouODhOOCtw0KK+OCv+OCseOCqizjg6jjgrfjgqLjgq0NCivjgq3jg47jgrfjgr8s44Kr44K644OS44KzDQor44OE44Kr44OALOODleODn+OCouOCrQ0KK+OCouODquODieODoSzjg4jjgrfjg6bjgq0NCivjgq3jg4Pjgqvjg68s44OI44K344Ki44KtDQor44Kq44Ks44K144Ov44OpLOODkuOCteOCq+OCug0KK+ODiuOCrOOCuyzjgr/jgqvjg5Ljg60NCivjg4/jg6vjg6Tjg54s44Ki44OE44OS44KzDQor44Kq44K6LOODpOOCueOCqg0KK+OCs+OCteOCqyzjg4jjgrfjgqvjgroNCivjgrfjg6njgrXjgq0s44OI44Kq44OrDQor44K/44OK44OZLOODhOODiOODoA0KK+OCpOOCseOCrOODnyzjg4Tjg6jjgrcNCivjgrPjg5Djg6Tjgrcs44K444Ol44Oz44Kk44OBDQor44Oe44OE44OQ44OpLOODiuOCquODiA0KK+ODiuOCq+OCrOODryzjg6Ljg6rjg5Ljg60NCivjgqrjgqzjg68s44K744Kk44K4DQor44Oo44K344OALOODnuOCteODjuODlg0KK+OCpOOCsSzjgrXjg4Djg47jg5YNCivjgr/jg4vjgrDjg4Es44Oe44K144Of44OBDQor44Oe44Ko44OALOODkuODreOCtw0KK+ODkuODqeODjizjgr/jgqvjg6bjgq0NCivjgrfjg5/jgros44Kt44Of44KzDQor44Ok44Oe44OALOOCouOCreODiOOCtw0KK+OCv+ODiuOCqyzjg5Ljg63jgqLjgq0NCivjgrPjg57jg4Tjgrbjgq0s44Oe44Oi44OrDQor44Kr44OI44KmLOODnuOCteOCq+OCug0KK+OCquODryzjg47jg6rjgrMNCivjgqTjg6/jg6Djg6ks44OS44Ot44K/44OADQor44Kk44Oq44KoLOOCq+OCuuODpuOCrQ0KK+OCouOCq+ODpOODnizjg57jgrXjg6bjgq0NCivjgqLjgq3jg6Ljg4gs44OS44Ot44Ki44KtDQor44Kr44Of44Og44OpLOOCouOCreODkuOCsw0KK+OCueODn+OCvyzjgqvjgqrjg6sNCivjg4/jg57jgrXjgq0s44Ki44OE44K3DQor44Ok44K544OALOODnuODouODqw0KK+OCv+OCseODoOODqSzjg5/jgq3jg6QNCivjg6Djg6njgqvjg58s44OI44Of44OE44KwDQor44OK44Kr44K444OeLOODkuOCteODiOODog0KK+ODouODquODouODiCzjgrPjgqbjgrgNCivjgrvjgq3jgrDjg4Es44K/44Kr44Om44KtDQor44OK44Kr44K444OeLOODnuOCteODkuOCsw0KK+OCreOCrOODryzjg5Ljg63jg5LjgrUNCivjgr/jgqvjg5Ljg6ks44K/44Kr44K3DQor44Oi44OB44OALOOCouODhOOCtw0KK+OCq+ODoeODpOODnizjgr/jgqvjgrcNCivjgqrjg6Tjg57jg4As44Oe44K144OS44K1DQor44K/44OK44KrLOODhuODq+ODkuOCtQ0KK+ODm+ODs+ODnizjgrfjg7PjgrgNCivjgq3jg47jgrfjgr8s44Ok44K544OS44KzDQor44K344OO44OE44KrLOODjuODluOCt+OCsg0KK+OCouOCpOODj+ODqSzjg6Tjgrnjg5Xjg58NCivjg4rjgqzjg57jg4Qs44Ko44Kk44K4DQor44OI44Oo44Og44OpLOODnuOCteOCouOCrQ0KK+ODkuODqeODjizjgr/jgqvjgrcNCivjgq3jg6Djg6ks44K444Ol44OzDQor44Kk44Kx44OALOOCu+OCpOOCuA0KK+OCpOOCt+ODj+ODqSzjg6bjgqbjgrMNCivjg47jgrDjg4Es44Oe44K144OrDQor44Kz44Kx44OELOODn+ODhOODnuOCtQ0KK+OCquOCr+ODpOODnizjgqLjg4Tjg5LjgrMNCivjg4/jg57jgrDjg4Es44K344Oz44K4DQor44OE44K444K144KrLOODkuODh+OCouOCrQ0KK+OCpOODgeOCq+ODryzjgrXjg4jjg6sNCivjg6jjgrfjg4As44K744Kk44K0DQor44Ok44Oe44OALOODqOOCpuOCpOODgQ0KK+OCt+ODn+OCuizjg6TjgrnjgrcNCivjgrXjgqvjgqzjg58s44OO44Oq44Kr44K6DQor44Kz44K544KuLOODkuOCteODkuOCsw0KK+ODi+OCt+ODgCzjgrvjgqTjgrgNCivjgqTjgqTjg4As44Kr44OE44OpDQor44Km44OB44OALOODpOOCueODnw0KK+ODouODiOODpOODnizjg4Hjg4/jg6QNCivjg5/jg6Tjg6Ljg4gs44Kk44Kv44OoDQor44Kz44OQ44Ok44K3LOODpOOCueOCtw0KK+OCq+ODiOOCpizjg5Ljg63jg6bjgq0NCivjgrfjg6njgqQs44K144OI44K3DQor44OP44Ku44Ov44OpLOOCs+OCpuOCuA0KK+ODpOODnuOCpuODgSzjg6bjgq3jg5Ljg4cNCivjg5/jg4Tjg4/jgrcs44Kr44Kq44OqDQor44Oi44Oz44K4LOODqOOCpuOCpOODgQ0KK+OCv+OCreODouODiCzjg47jg6rjgrMNCivjgqrjgq/jg4As44K344Ol44Km44K4DQor44OE44Kr44Oi44OILOOCt+ODpeOCpuOCuA0KK+ODoOOCs+ODj+ODqSzjg6TjgrnjgqTjgq8NCivjgrXjg6vjg6Qs44Of44OB44KqDQor44Kq44Kr44K444OeLOODiOOCt+ODkuOCsw0KK+ODm+OCt+ODjizjg5LjgrXjg4gNCivjg5vjgrcs44OS44Ot44OV44OfDQor44OV44K344OfLOOCs+OCpuOCpOODgQ0KK+OCv+OCq+ODj+OCtyzjgr/jg4Tjg6QNCivjg4vjgrfjg6Tjg54s44K344Oz44K4DQor44OE44Or44Oe44OBLOOCt+ODp+OCpuOCpOODgQ0KK+ODiOODn+OCvyzjg4rjg6vjg4gNCivjgqbjg4Hjg4As44OI44Kq44OrDQor44Kq44Kq44K/44KrLOODpuOCpuOCsw0KK+OCteOCq+OCpCzjgr/jgqvjg5LjgrUNCivjgr3jgqzjg5ks44Kr44OE44OfDQor44Ov44OALOOCseODs+OCuA0KK+OCs+OCteOCqyzjg57jgrXjg58NCivjgqLjgr0s44Ki44Kx44OfDQor44Ki44Op44KkLOODiOOCt+ODj+ODqw0KK+OCueOCruODoOODqSzjgrfjgrLjgqoNCivjgqLjgq3jg6jjgrcs44Kr44K644KqDQor44Ki44K144Kr44OvLOODhOODiOODoA0KK+ODr+ODgCzjgrXjgqvjgqgNCivjgqTjgrHjg4As44Kz44Km44Kk44OBDQor44Kq44Kr44Oi44OILOODquODp+OCpuOCuA0KK+OCouOCquOCrSzjg57jgrXjg6sNCivjgqbjgqjjgrXjg68s44OE44Oo44K3DQor44Km44Ok44OeLOODkuODh+OCouOCrQ0KK+ODiuOCq+ODj+ODnizjgrnjgrnjg6ANCivjgqvjg6/jg6Ljg4gs44Oe44K144Om44KtDQor44K544Ko44Oe44OELOOCuOODpeODs+OCuA0KK+ODiuOCrOOCpCzjgrXjg4jjgrcNCivjg4rjgqvjg4/jg6ks44Om44Km44K+44KmDQor44OK44Ov44K/LOODiuODquOCouOCrQ0KK+OCq+ODhOOCtuODryzjg5Ljg63jgrcNCivjg6Tjg57jgqbjg4Es44Of44Om44KtDQor44Ki44Kr44Ku44K3LOODhOODqOOCtw0KK+OCr+OCteOCuuODnyzjg4jjgrfjg5LjgrMNCivjg5vjgqvjg6os44OS44Ot44K3DQor44Kr44OI44KmLOOCquOCteODoA0KK+OCreODquOCpizjg5Ljg63jgq0NCivjgqrjgqzjg68s44Oe44K144OIDQor44K/44OK44KrLOODnuOCteODqOOCtw0KK+OCouOCpOODoOODqSzjg4Tjg4jjg6ANCivjgqTjgqzjg6njgrcs44Oe44K144OIDQor44Kr44Ov44Ov44KtLOOCv+OCq+ODn+ODgQ0KK+ODnuOCqOOCteOCqyzjg4jjg6Ljg5/jg4QNCivjg57jg4Tjgrfjg54s44Ki44OE44K3DQor44Oe44OE44Oi44OILOODkuODh+ODiA0KK+OCq+OCv+OCpCzjg57jgrXjg5Ljg60NCivjgrPjgrjjg54s44Oe44K144Ki44KtDQor44OE44K444Oi44OILOODiOOCquODqw0KK+ODiuODr+OCvyzjgrXjg4jjgrcNCivjg5Xjgrjjgr/jg4ss44Kr44K644OS44KzDQor44Kt44K7LOODhuODhOODreOCpg0KK+OCteOCq+OCsOODgSzjgrjjg6Xjg7PjgqTjg4ENCivjgrnjgrrjgq0s44OI44K344Om44KtDQor44OP44Oe44K144KtLOODnuOCteODkuODrQ0KK+ODqOOCt+ODgCzjg5Ljg4jjgrcNCivjg5vjg4Pjgr8s44K344Ky44OS44OIDQor44Oe44K544KzLOODkuOCteOCqg0KK+OCv+OCseODiuOCqyzjgrPjgrnjgrENCivjgqTjgrfjgqQs44OP44Or44KtDQor44K/44K144KrLOODkuODreOCtw0KK+ODnuODhOODgCzjg57jgrXjg5Ljg60NCivjg4/jgr8s44K/44Kr44K3DQor44Ki44Kt44Ok44OeLOODpuOCv+OCqw0KK+OCv+OCq+ODj+OCtyzjg6Tjgrnjg5Ljg4gNCivjg6Tjg57jgqvjg68s44K344On44Km44K4DQor44Oo44Kz44OBLOODnuOCteODkuODrQ0KK+ODqOODjeOCv+ODiyzjgq3jgqTjg4Hjg63jgqYNCivjg5Xjgrjjg44s44Om44Km44K544KxDQor44OP44K744Ks44OvLOOCq+ODhOODiOOCtw0KK+ODleOCuOOCvyzjg57jgrXjg6bjgq0NCivjgqLjg7Pjg6njgq8s44Oe44K144KzDQor44OP44K344Oi44OILOODjuODluODpuOCrQ0KK+OCpOODiuODgCzjg6zjgqTjgrMNCivjg6bjgrIs44Oe44K144Oo44K3DQor44Kk44Oe44OALOOCpOOCuuODnw0KK+OCteOCq+ODouODiCzjgqvjgrrjg5LjgrUNCivjg4jjg6jjg4rjgqws44Ok44K544OS44OtDQor44OP44K344Oi44OILOODhuODhOOCqg0KK+ODj+ODiuOCpCzjg6jjgrfjg47jg6oNCivjgrfjg5/jgros44K/44OE44KqDQor44OK44Kr44Og44OpLOODqOOCt+ODj+ODqw0KK+OCq+OCuOODoOODqSzjg6jjgrfjg5LjgrMNCivjgqTjgrfjgqzjgq0s44Kx44Oz44K+44KmDQor44OP44OD44OI44OqLOODnuOCteOCqg0KK+OCouODnuODjizjg6rjg6fjgqYNCivjg5/jgqvjg58s44Kr44Kq44OrDQor44OV44Or44OG44OpLOODnuODpuODnw0KK+ODnuODn+ODpCzjg5Ljg4fjgq0NCivjg4Tjg6vjg44s44Og44OE44KzDQor44Ki44K144KkLOODpOOCueOCrQ0KK+ODjuODoOODqSzjgrfjgrLjgqoNCivjg6jjgrPjg6Tjg54s44K344Oz44K4DQor44Kk44Kx44OALOODpuOCv+OCqw0KK+OCouODs+ODieOCpizjgqLjgq3jgqoNCivjgqrjgqvjg6Tjgrks44Ok44K544KzDQor44K044OI44KmLOODkuODh+OCouOCrQ0KK+OCq+ODr+OCt+ODnizjgr/jgqvjgrMNCivjg4/jgq7jg6/jg6ks44Ko44OqDQor44Ki44K/44Op44K3LOODpuODn+OCsw0KK+OCv+OCq+ODpOODnizjg4jjgrfjg5Ljg4gNCivjg4vjgrfjg6Tjg54s44OI44K344Om44KtDQor44Ko44OB44K0LOOCt+ODs+OCpOODgQ0KK+ODpOODnuOCtuOCrSzjg6jjgrfjg5Ljg60NCivjg6Djg63jg6Qs44OG44OE44KqDQor44Kt44Og44OpLOODpuOCreOCqg0KK+ODiuOCq+ODj+ODqSzjg5Xjg5/jgqoNCivjgqbjgqjjg44s44K/44Kr44K3DQor44Oo44K344OALOOCseODs+OCvw0KK+ODhOOCq+ODouODiCzjgr/jg4DjgrcNCivjgqrjgrbjgq0s44OI44Kq44OrDQor44Ki44K344Kr44OvLOODpOOCueOCt+OCsg0KK+ODjeOCruOCtyzjg4jjg6Ljg47jg6oNCivjgq3jg6Xjgqbjg44s44K344Ol44Km44Kk44OBDQor44K144OI44KmLOODqOOCt+ODkuODhw0KK+OCpOODjuOCpuOCqCzjgqvjgrrjg5LjgrMNCivjgq3jgq/jgrrjg58s44Oe44K144OrDQor44Oe44OE44Oi44OILOODgOOCpOOCteOCrw0KK+ODj+ODpOOCtyzjgr/jgqvjgqoNCivjg5Xjgq/jgqrjgrgs44Kr44Oz44K4DQor44OK44Or44K7LOOCseODs+OCv+ODreOCpg0KK+ODnuODhOODouODiCzjg57jgrXjgq0NCivjg6Ljg6os44Oe44K144K3DQor44Of44KtLOODjuODluOCqg0KK+ODiuOCq+OCv+ODiyzjg6jjgrfjgqLjgq0NCivjg5/jg6Tjgqzjg68s44OV44Of44OO44OqDQor44Ki44Oq44Oo44K3LOOCpOOCr+OCqg0KK+OCt+ODqeOCpCzjg6jjgrfjg6bjgq0NCivjg5/jg4rjg58s44Oe44K144Oo44K3DQor44OI44Oq44K044KoLOODleOCuOOCqg0KK+OCs+OCueOCrCzjgr/jg4DjgrcNCivjg4Tjgrjjg44s44Kr44K644OS44OtDQor44Kq44Kw44OpLOODpOOCueODkuODrQ0KK+OCquODquOCvyzjg4HjgqvjgrcNCivjgqLjg5/jg6Ljg4gs44K444Ol44Oz44Kk44OBDQor44Kq44K144KrLOODiOOCquODqw0KK+ODj+ODpOOCtyzjg6jjgrfjg5Ljg60NCivjg5/jg4rjg58s44Of44OO44OrDQor44Oo44K344OALOODiOOCt+ODkuOCsw0KK+ODi+OCt+ODj+ODqSzjg6jjgrfjgqoNCivjgqrjgq/jgqzjg68s44Oe44K144OI44OiDQor44OE44K4LOODhuODq+ODpuOCrQ0KK+ODiuOCq+OCpCzjgr/jgqvjgrcNCivjg4vjgrfjg6Djg6ks44OE44Kw44KqDQor44OL44K/44OK44KkLOOCseODs+OCtA0KK+OCr+ODieOCpizjg5Ljg63jgrcNCivjgrXjgqQs44K/44Kr44KqDQor44K344On44KmLOODnuODiuODlg0KK+OCpOODjuOCpuOCqCzjgqvjgqrjg6sNCivjgr/jg4vjgrDjg4Es44OS44Ot44K/44ONDQor44OK44Kr44OL44K3LOOCt+ODs+OCuA0KK+OCquOCquODouODqizjg5Ljg63jg6bjgq0NCivjgq/jg57jgqzjgqQs44K/44Kr44Om44KtDQor44Kk44K344Ki44KkLOODiOODqOOCq+OCug0KK+ODj+OCruODj+ODqSzjgqvjgrrjg47jg6oNCivjgr/jgqzjgr8s44Kx44Oz44K4DQor44K544K644KtLOODn+ODgeOCqg0KK+OCr+ODnCzjgrzjg7PjgrXjgq8NCivjgqvjg4rjgqbjg4Es44K344Oz44OkDQor44OL44K344KqLOODkuODh+OCrQ0KK+OCpOODiuODgCzjg5Ljg4fjg47jg5YNCivjgr/jgrHjgqTjg4Es44K344Oz44K4DQor44Ki44Oz44OJ44KmLOODnuOCs+ODiA0KK+ODnuODhOODiuODnyzjgrfjg6fjgqbjgqTjg4ENCivjg5/jg4rjgq/jg4Es44K344Ol44Km44K144KvDQor44Kr44OK44Km44OBLOODiuOCquOCrQ0KK+OCquOCquOCpOODpOODnizjg47jg5zjg6sNCivjg57jgrnjg4As44K344On44Km44K4DQor44Ok44Ku44OP44OpLOODiOOCt+OCqg0KK+ODn+OCuuODjizjgrHjg7PjgrgNCivjg47jg5bjgq/jg58s44OI44Kq44OrDQor44OK44OALOOCv+OCq+OCouOCrQ0KK+OCv+OCseOCv+ODiyzjg5Xjg4jjgrcNCivjgqTjg57jgqTjgrrjg58s44Kk44OB44Ot44KmDQor44Kk44OK44OALOOCpOOCteOCqg0KK+OCpOODnuODiyzjgr/jgqvjg5Xjg58NCivjgqrjgq0s44Oe44K144OS44OtDQor44OV44Kv44K344OeLOODqOOCpuOCueOCsQ0KK+OCpOOCpOOCqizjg5Ljg63jg4jjg6INCivjgqTjgrfjg4As44Kr44OE44OkDQor44OS44Op44K/LOOCs+OCpuOCuA0KK+OCpOOCv+OCrOOCrSzjgqvjgrrjg5Ljg60NCivjg6Tjg57jg5Xjgq8s44K144OI44K3DQor44K144OI44KmLOODjuODquOCqg0KK+ODiuOCq+OCrOODryzjg6rjg6fjgqYNCivjgqrjgrXjgqss44K344Ol44Km44Kk44OBDQor44Kq44Kk44Kr44OvLOODjuODluOCouOCrQ0KK+OCq+OCt+OCqizjg6jjgrfjg5Ljg60NCivjg5vjgrfjgrbjgq0s44K344Ky44KtDQor44K744Kt44K444OeLOOCs+OCpuOCuA0KK+OCquOCq+ODnuOCqCzjg47jg6rjg5Ljg60NCivjgrXjg4jjgqYs44K/44Kr44K3DQor44Kz44Kk44OHLOOCv+OCq+ODiuOCqg0KK+OCv+OCq+ODj+OCtyzjgrvjgqTjgrgNCivjgqrjgqzjg68s44Kz44Km44Kk44OBDQor44OG44Op44K344OeLOOCv+OCr+OCqg0KK+ODpOODnuOCt+OCvyzjg57jgrXjgqLjgq0NCivjg47jgrss44OS44OH44Om44KtDQor44Oe44OE44Oe44KoLOOCouODpuODnw0KK+ODqOOCt+OCvyzjg47jg6rjgqLjgq0NCivjg6Djg6njgr8s44OI44Kq44OrDQor44OP44OpLOODjuODquODkuOCsw0KK+ODpOODnuOCpuODgSzjgrHjg7PjgrgNCivjgqvjg58s44Kr44OE44Om44KtDQor44K544Ks44KkLOOCv+ODhOODpuOCrQ0KK+OCv+OCq+ODjizjg6jjgrfjg47jg5YNCivjg4jjgrPjg60s44Oo44K344OS44OtDQor44K544K644KtLOOCueOCueODoA0KK+OCteOCteOCrSzjgqLjg4Tjg6bjgq0NCivjg4Tjg47jg4As44OG44OE44Ot44KmDQor44Ok44Oe44K144KtLOODhuODhOODpA0KK+ODn+OCpuODqSzjgqvjg4Tjg58NCivjgqrjg4Djgq7jg6os44Ki44OE44KzDQor44OP44Ok44K3LOOCt+ODs+ODgeODp+OCpg0KK+ODiOODn+OCquOCqyzjg5Ljg4jjgrcNCivjgqTjgrDjg4Es44K744Kk44Kk44OBDQor44Kz44Oz44OJLOOCv+OCq+OCtw0KK+OCr+ODnCzjg5Ljg4fjgqoNCivjgq/jg6njg4zjgq0s44Kt44On44Km44KzDQor44OI44Of44Oe44OELOODiuOCquOCsw0KK+OCr+ODreOCq+ODryzjg57jgrXjgqLjgq0NCivjg47jgrbjg68s44K544Of44KqDQor44Kr44Ov44K144KtLOOCr+ODi+OCouOCrQ0KK+OCv+OCseODgCzjgqvjg4Tjg6QNCivjgrfjg47jg4/jg6ks44Ki44Kt44OS44OtDQor44OV44Or44OkLOOCt+OCsuODqw0KK+ODiuOCq+ODoOODqSzjgrXjg4jjg6sNCivjg6Tjgrjjg54s44OI44Kq44OrDQor44OL44K344Ks44KtLOOCreODqOOCtw0KK+ODiuOCq+OCrOODryzjgr3jgqYNCivjg5Ljg6njg6Tjg54s44K344Ol44Oz44Kk44OBDQor44Ok44Oe44Kw44OBLOODoOODhOODkuODrQ0KK+ODqOOCt+ODoOODqSzjg6bjgqbjgrgNCivjg4Tjg4As44K/44Kr44Om44KtDQor44Kr44OE44Op44KkLOODr+OCv+ODqw0KK+ODn+ODiuOCpCzjg4jjgrfjgqvjgroNCivjgr/jgq3jgrDjg4Es44Kr44K644KqDQor44Ov44Kx44OZLOODqOOCt+ODkuODrQ0KK+ODi+OCt+OCq+ODryzjg57jgrXjg6QNCivjgrfjg6njgqzjgq0s44OS44Ot44Ki44KtDQor44OQ44OQLOODnuOCteOCq+OCug0KK+OCouOCq+ODqizjg6rjg6fjgqbjgrgNCivjgqLjg5ks44K/44Kv44OkDQor44Kr44KkLOOCr+ODi+ODkuODrQ0KK+OCquOCquODouODqizjg5Ljg4fjgqvjg4QNCivjgrnjgrrjgq0s44K/44Kr44K3DQor44OK44Ks44K144OvLOODkuODiOOCtw0KK+OCteODr+ODgCzjgqjjg5/jgrMNCivjgqLjgrrjg54s44OO44OW44Om44KtDQor44Kq44OOLOODkuODh+OCrQ0KK+OCq+ODr+ODi+OCtyzjg47jg5bjg5Ljg4cNCivjg57jg4rjg5ks44Kr44K644OS44OtDQor44Ki44Oq44Ok44OeLOODpuOCpuOCuA0KK+ODi+OCt+OCq+ODryzjgq3jg6jjgrcNCivjgqLjg4Tjg58s44K344Ol44Km44K4DQor44Kk44OI44KmLOODkuODreODpuOCrQ0KK+ODkuODreOCvyzjg4jjgrfjg6QNCivjg5vjgqvjgr7jg44s44Kr44K644OIDQor44Ob44K344OOLOODpOOCueODkuODrQ0KK+ODpOODnuOCsOODgSzjg57jgrPjg4gNCivjgqLjgqzjgr8s44Kz44Km44K4DQor44Oe44Or44KqLOODqOOCt+ODpuOCrQ0KK+OCs+OCpOODhyzjg5Ljg63jgqLjgq0NCivjgqvjg5/jg6Djg6ks44Oe44K144OS44OHDQor44K144Kk44OI44KmLOODiuOCquOCrQ0KK+ODleOCr+ODn+ODhCzjgqLjg4TjgrcNCivjg5Ljg6njg6Tjg54s44OS44Kr44OrDQor44K144Kk44OI44KmLOODhuODhOODpA0KK+OCpOOCseOCqizjg5/jg47jg6sNCivjg5Xjg6vjgqvjg68s44K444Ol44Oz44Kk44OBDQor44Kk44Kk44OALOODkuODreOCouOCrQ0KK+ODn+ODpOOCtuOCrSzjg6Ljg4jjg5Ljg60NCivjg6jjgrfjg4As44Ok44K544Om44KtDQor44Kt44Kv44K/LOOCqOODquOCsw0KK+ODgeODkCzjg4bjg4TjgqoNCivjg4jjg6rjg6Tjg54s44Oq44OE44KqDQor44Ko44K244OvLOODquODpeOCpuOCv+ODreOCpg0KK+OCquOCquODkCzjg6jjgrfjgr/jg58NCivjg6Tjg57jg6Ljg4gs44Kq44K144OgDQor44OL44K344Kr44OvLOODnuOCteODjuODlg0KK+OCqOODs+ODiSzjg57jgrXjg4/jg6sNCivjg5Xjgq/jgqQs44Kq44K144OgDQor44OP44Oe44OOLOODqOOCpuOCpOODgQ0KK+OCreOCv+ODj+ODqSzjgrHjg7Pjgrjjg6fjgqYNCivjgrXjg4jjgqYs44Om44Kt44OS44OtDQor44Oe44OE44KqLOODnuOCteODleODnw0KK+ODiOODqOOCvyzjg5Ljg4fjg6QNCivjg5Ljg6njg6Ljg4gs44OI44K344OS44OHDQor44Ok44Oe44Oi44OILOOCs+OCpuOCv+ODreOCpg0KK+ODj+ODnuODgCzjg57jg6bjg58NCivjgqTjg6/jgqvjg58s44Of44OO44OrDQor44Kv44OcLOODhuODhOOCqg0KK+OCqOODs+ODiSzjgqvjgrrjg5Ljg60NCivjgqvjgrLjg6Tjg54s44Oe44K144OO44OqDQor44OL44Kk44OkLOODiOODouODpuOCrQ0KK+OCs+OCpuODgSzjg6bjgqbjgrnjgrENCivjgqLjg4Djg4Es44K344Ky44Om44KtDQor44OP44Ok44K3LOOCt+ODpeODs+OCuA0KK+ODiuOCq+ODjizjg57jgrPjg4gNCivjgqTjgrfjg4/jg54s44Oe44K144OS44OtDQor44Kz44Kv44OcLOODquODpeOCpuOCpOODgQ0KK+OCq+ODr+ODjizjg4/jgrjjg6ENCivjg4rjgqvjgrjjg54s44OO44Oq44OS44KzDQor44K/44Kk44OpLOODhOODqOOCtw0KK+OCv+OCseOCrizjg6rjg4TjgqoNCivjg6Ljg6rjgrfjg54s44OI44Oi44KzDQor44OK44Kr44Og44OpLOODkuODreOCouOCrQ0KK+ODjuOCsOODgSzjg5Ljg63jgq0NCivjgqLjg6njgq0s44Ok44K544OG44OrDQor44Ki44OpLOODkuODreOCtw0KK+OCpOODiOOCpizjg4rjgqrjgrMNCivjg4/jg6TjgrXjgqss44OV44OI44K3DQor44Kz44OE44KrLOODnuOCteOCq+OCug0KK+OCv+OCseOCpuODgSzjg5Ljg63jgrcNCivjgqTjg6/jgr8s44K/44Kr44K3DQor44Oe44Ko44OALOODqOOCt+OCqg0KK+ODm+OCveOCq+ODryzjg57jgrXjg5Ljg60NCivjgqLjg6njgqQs44Ok44K544OS44OtDQor44Kq44Kq44Kv44OpLOOCq+ODs+OCuA0KK+OCv+OCseOCs+OCtyzjgqLjg4TjgrcNCivjg6Tjg57jgrDjg4Es44Kx44Oz44K4DQor44K344Of44K6LOOCq+ODhOODiOOCtw0KK+OCpOODiOOCpizjg6jjgrfjg4TjgrANCivjgqTjgrrjg58s44Kr44ON44Of44OEDQor44K044OI44KmLOOCveOCpuOCv+ODreOCpg0KK+OCquOCquODhOODnCzjgqvjgrrjg58NCivjgqvjg5/jgrPjgqzjg68s44K344Oz44Kk44OBDQor44K/44Kx44KkLOOCteODiOOCsw0KK+ODn+ODpOODj+ODqSzjg57jgrXjgrcNCivjgqLjg6/jgrgs44Ki44OE44KqDQor44Km44K344Ot44OALOOCq+OCquODqw0KK+ODouODquOCpOOCuuODnyzjg4/jgrjjg6ENCivjg4rjgqzjg44s44Ki44OE44K3DQor44K/44OK44KrLOODoOODjeODpuOCrQ0KK+ODleOCq+OCqCzjgrHjg7PjgrgNCivjg5Xjg6vjg6Qs44Of44K144KqDQor44Of44K644OS44KtLOODqOOCt+OCqg0KK+OCr+ODnCzjg5/jg4Tjg6jjgrcNCivjgr/jgrDjg4Es44OV44Of44Ki44KtDQor44OK44Kr44KqLOODhOOCruODiA0KK+ODpOODnuOCt+OCvyzjg6bjgqbjgqTjg4ENCivjgq/jg63jgq0s44K344On44Km44K0DQor44Oe44OE44OALOOCseODs+OCpOODgQ0KK+OCquODgOOCuOODnizjg4rjg5vjg58NCivjg5vjg6os44Om44Kt44KqDQor44K/44OL44Kw44OBLOODhOODjeODpOOCuQ0KK+OCouODqeOCpCzjg4jjgrfjg47jg6oNCivjgrTjg4jjgqYs44OG44OE44K4DQor44OI44ON44Ks44OvLOODjuODquODpuOCrQ0KK+ODouODquOCvyzjgr/jgqvjgrMNCivjg5Xjg6vjgqvjg68s44K344Ky44KqDQor44Om44KtLOODqOOCt+ODjuODqg0KK+OCt+ODqeOCpOOCtyzjgr/jgqvjg5Ljg60NCivjgqTjgrHjg6Qs44K144OB44KzDQor44Ov44K/44OK44OZLOOCv+ODhOOCquOCrQ0KK+OCv+ODi+OCsOODgSzjgrPjgqbjgqTjg4ENCivjg57jgrnjg4As44K344OO44OWDQor44Of44K644Kw44OBLOOCuOODreOCpg0KK+ODj+ODpOODn+OCuizjg6bjg58NCivjg5vjgqvjg6os44Ki44Kt44OS44KzDQor44Kk44K344KkLOODjuODquODkuOCsw0KK+OCt+ODqeOCpOOCtyzjg57jgrXjg5LjgrMNCivjgrfjg6Ljgqvjg6/jg6ks44K344Ky44OS44OtDQor44Oi44Oq44Oi44OILOODiOODouOCsw0KK+OCpOODiOOCpizjg5Ljg63jgrcNCivjgqrjgqrjg6Qs44Kx44Kk44K4DQor44Of44Oo44K3LOODn+ODjuODqw0KK+OCt+ODkOOCvyzjg47jg6rjg5Ljg60NCivjgr/jg7Pjgrbjg7Ms44OI44Oi44OS44KzDQor44Kk44Ov44K144KtLOODkuODh+OCq+OCug0KK+ODleOCr+OCpCzjgrXjg4jjgrcNCivjg6Ljg6rjg5Djg6Tjgrcs44Kr44K644OkDQor44Ok44Oe44OALOODkuODh+ODnw0KK+ODleOCuOODr+ODqSzjgrXjg4jjgrcNCivjg4rjg4Tjg6Es44Ok44K544OIDQor44K344OO44OP44OpLOODkuODreOCtw0KK+OCquOCteODgCzjg57jgrXjgrcNCivjg5Xjgrjjg4/jg6ks44K/44Kx44OS44OIDQor44OV44K444Oi44OILOODkuODreODnw0KK+OCreODjizjg6jjgrfjgqoNCivjg6Tjg57jg6Ljg4gs44Oi44OI44KtDQor44Kk44K344K444OeLOODouODquODkuODrQ0KK+OCpOOCrCzjgqLjgq3jg6kNCivjg4rjgqvjgqgs44OA44Kk44K4DQor44Ok44OOLOODpuOCpuOCuA0KK+OCq+ODiuODn+ODhCzjgqrjgrXjg6ANCivjgrnjgrrjgq0s44OG44Or44KqDQor44K/44Kr44OALOODquODp+OCpuOCsw0KK+OCpOOCt+ODkOOCtyzjg5Ljg63jg6bjgq0NCivjgqrjgqrjg4Tjg5ws44Of44OE44OP44OrDQor44K544KuLOOCv+OCq+OCtw0KK+ODj+ODpOOCt+OCsOODgSzjg5Ljg63jgrcNCivjg4bjg6njgrfjgr8s44Kr44K644KqDQor44K344Oi44Ok44OeLOODqOOCt+ODleODnw0KK+ODn+ODpOOCtuOCrSzjg5/jg4Tjg6sNCivjg6Ljg6os44Ok44K544OS44OtDQor44Ok44Oe44Oi44OILOODkuODiOOCtw0KK+ODh+OCouOCpCzjgq3jg6jjg5Ljg60NCivjg5vjg6os44OI44K344Om44KtDQor44Ki44ON44K244KtLOOCq+OCuuOCqg0KK+OCr+ODnOOCvyzjgr/jgqvjg5Ljg60NCivjgrQs44Oe44K144OI44K3DQor44OS44Kt44OALOODkuODreOCtw0KK+OCteOCq+OCsOODgSzjg47jg6rjgqLjgq0NCivjg6jjgrfjgqQs44K/44Kr44K3DQor44Kt44K/44OP44OpLOOCq+ODhOODiA0KK+ODleOCuOOCpCzjg5/jg4njg6oNCivjg4rjg6Hjgq0s44Ok44K544KzDQor44Oo44K344Og44OpLOODiOOCt+OCqg0KK+OCv+ODoOODqSzjg4DjgqTjgrnjgrENCivjgqbjg5/jg44s44OS44Ot44K3DQor44Ki44Oz44OJ44KmLOODkuODreOCtw0KK+ODqOOCt+ODouODiCzjgr/jgrHjgrcNCivjg43jg6Ljg4gs44Oo44K344OV44OfDQor44Of44Ok44K244KtLOODnuOCteODkuOCsw0KK+OCv+OCq+ODouODqizjg4HjgqjjgrMNCivjgq/jg57jgqzjgqQs44Kv44OL44KqDQor44K044Km44OALOOCs+OCpuOCv+ODreOCpg0KK+ODj+OCvyzjgrPjgqbjgqTjg4ENCivjgq/jgrrjg58s44K144OB44KzDQor44OK44OE44KkLOOCpOOCr+OCqg0KK+OCt+ODnuODgCzjg5Ljg4fjgqoNCivjgqrjgqrjg4Tjgq0s44Kr44K644OS44OtDQor44Oe44Of44OkLOODkuODreOCq+OCug0KK+OCteODiOOCpizjgrHjg7PjgrgNCivjgrPjg5Djg6os44OS44OH44Om44KtDQor44K144K144KtLOODpOOCueODpuOCrQ0KK+OCq+ODjeOCsyzjg57jgrXjgq0NCivjgqrjg44s44OI44Kq44OrDQor44Kq44Kq44Ok44OeLOODqOOCt+OCqA0KK+ODnuODiOODkCzjg57jgrXjg4/jg6sNCivjgqTjgr/jgq/jg6ks44K444Ol44Oz44Kk44OBDQor44Kq44OA44K344OeLOOCq+ODhOODreOCpg0KK+OCt+OCpOOCrSzjg47jg6rjgrMNCivjgrfjg5Djgr8s44Kr44K644OS44OtDQor44Kr44OE44OpLOODgeOCq+OCsw0KK+OCouODqeOCpCzjg6jjgrfjg47jg6oNCivjgrXjgqTjg4jjgqYs44OE44Oo44K3DQor44Oe44OE44Oi44OILOODnuOCteODjuODqg0KK+OCpuOCqOODpOODnizjg5/jg4Tjg4rjg6oNCivjg57jg44s44K344Oz44Kk44OBDQor44Of44K144KqLOODiuOCquOCrQ0KK+OCveODjuODmSzjgq3jg5/jg6bjgq0NCivjgrnjgrrjgq0s44Ki44Kt44KqDQor44Ok44K/44OLLOOCreODp+OCpuOCsw0KK+ODoOOCvyzjg57jg4rjg5YNCivjg57jg6vjg6Tjg54s44OV44Of44Ki44KtDQor44OV44OALOOCv+OCq+ODqOOCtw0KK+OCs+ODkOODpOOCtyzjgrHjgqTjgqTjg4Hjg63jgqYNCivjg6/jgr/jg4rjg5ks44Kr44Kq44OrDQor44Kq44OALOODnuOCs+ODiA0KK+OCquODleODgSzjg57jgrXjgqoNCivjgr/jg4rjgqss44K344Ky44KqDQor44K144Ov44KtLOODnuOCteOCtw0KK+OCteOCpOODiOOCpizjg5Ljg63jgrcNCivjg4/jgq7jg44s44OO44Oc44OrDQor44Km44K344Ok44OeLOOCv+OCq+OCtw0KK+OCquOCr+ODkuODqSzjg47jg5bjg5Ljg60NCivjg6jjgrfjgqTjgrEs44K144OK44KoDQor44Kz44Oz44OOLOODpuOCpuOCsw0KK+ODjuODgCzjg4jjgrfjgqoNCivjgqjjg7Pjg4ks44OI44K344Om44KtDQor44K544K644KtLOODn+ODhOOCqg0KK+OCv+ODiuOCqyzjg6jjgrfjg5Ljg60NCivjgq3jg4ks44Kx44Kk44K4DQor44Kk44OI44KmLOODnuOCteODjuODlg0KK+ODleOCuOODr+ODqSzjg4jjgrfjg4/jg6sNCivjg4/jgrvjgqzjg68s44Ki44Kt44OpDQor44Oe44K544Oi44OILOOCseOCpOOCuA0KK+OCq+OCpCzjg5Ljg4jjgrcNCivjgr/jgqvjg4/jgr8s44OI44Oi44KzDQor44OS44OH44K344OeLOOCq+OCuuODjuODqg0KK+OCv+OCq+ODpOODnizjgrfjgrLjgq0NCivjg5/jg6Tjgq0s44Om44K/44KrDQor44OV44K7LOOCq+OCuuODkuOCsw0KK+ODouODouOCpCzjg5Ljg63jg6TjgrkNCivjg4Tjg6bjgq0s44Of44OE44KwDQor44Kr44Ov44OP44OpLOOCt+OCsuODqw0KK+ODnuODhOOCpCzjgqLjgq3jg5Ljg60NCivjg4/jg4rjg68s44Oe44K144OS44OtDQor44OS44Ov44OALOODhuODhOODpA0KK+ODnuOCueOCpCzjgr/jgqvjgrcNCivjgqvjg4jjgqYs44K/44OA44OE44KwDQor44K/44Kx44OeLOODleODn+OCqg0KK+OCt+ODqeOCpOOCtyzjg6jjgrfjgqoNCivjg5Xjg6vjgqvjg68s44K344On44Km44Kk44OBDQor44OG44K444OeLOOCouOCreODqQ0KK+OCouOCreODouODiCzjgrXjg4jjgrcNCivjgrnjgq7jg6Tjg54s44OS44Ot44Ki44KtDQor44OK44Oz44OWLOODpuOCreODkuODrQ0KK+ODhOOCuOODjizjgrHjg7MNCivjg4bjg6njgrXjgqss44Kk44OD44K344OzDQor44K144Kr44KkLOODkuODh+OCouOCrQ0KK+OCr+ODnCzjgqLjg4TjgrcNCivjg57jg6vjgr/jg4ss44Oe44K144OkDQor44K/44Kr44OP44K3LOODn+ODjuODqw0KK+ODnuODhOOCpuODqSzjgrfjg7Pjg6QNCivjgr/jg4rjgqss44K744Oz44K4DQor44Om44K244OvLOOCv+OCq+OCouOCrQ0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjg6QNCivjgqrjgqrjg5As44K344Oz44K0DQor44Oe44Ko44Kr44OvLOODiOOCquODqw0KK+ODi+ODryzjg4jjgqrjg6sNCivjgqvjg6/jg6Djg6ks44Oe44K144KtDQor44Kz44Kk44KxLOOCq+OCuuOCqA0KK+OCr+ODquOCt+OCvyzjg4jjgrfjg6bjgq0NCivjg5Ljg63jgrss44Kq44K144OgDQor44Kz44Oz44OOLOOCv+OCr+ODpA0KK+ODj+OCu+OCrOODryzjg5Ljg63jg5LjgrMNCivjgqTjg4jjgqYs44OS44Ot44K3DQor44Kt44K244KtLOOCouODhOOCtw0KK+OCqOODiuODnyzjg47jg6rjgqLjgq0NCivjg4Tjgqvjg4rjgqss44OV44Of44Ki44KtDQor44K144Kr44Oi44OILOODkuODreODnw0KK+ODnuODhOODkOODqSzjg5Ljg4fjgqoNCivjg4bjg6njgqQs44K344Ky44Ki44KtDQor44Kq44K344K/LOOCv+OCq+ODqOOCtw0KK+OCv+ODiuOCqyzjg6jjgrfjgqLjgq0NCivjg6Tjg57jg6Ljg4gs44Oe44OK44OWDQor44Kk44K344Kw44OtLOODqOOCt+ODiA0KK+ODj+OCt+ODouODiCzjgrnjg5/jgrMNCivjgrXjg4jjgqYs44Ok44K544OS44OtDQor44Ok44Oe44Oi44OILOODiOOCquODqw0KK+ODleODq+OCq+ODryzjg4jjgrfjg47jg5YNCivjg6Tjg57jg4As44OS44Ot44OIDQor44Kk44Kv44K/LOOCt+ODp+OCpuOCsw0KK+OCteODiOOCpizjg6bjgqbjgqTjg4ENCivjg6/jgr/jg4rjg5ks44Kr44K644OS44OtDQor44Kr44KzLOOCv+ODhOOCuA0KK+ODnuOCueODgCzjg5Ljg63jg47jg6oNCivjgqvjg5/jgrgs44K/44Kr44Om44KtDQor44Kk44OP44OpLOOCq+OCuuODkuODrQ0KK+OCouOCteODnyzjgqvjgrrjg5Ljg60NCivjg4rjgqvjgrjjg54s44K/44Kr44K3DQor44Kz44K/44KtLOODhuODhOODpA0KK+OCq+ODr+ODouODiCzjgqjjgqTjgqTjg4ENCivjgqvjg6/jgrfjg54s44Kr44K644OS44KzDQor44Ki44K644OeLOODquODpeOCpuOCuA0KK+ODiuOCq+ODjizjgrfjg6XjgqbjgqTjg4ENCivjg5Ljg6njg44s44K144OI44K3DQor44K/44Kr44OP44K3LOODnuOCteODqw0KK+ODleOCq+ODpCzjg6Ljg6Ljgq0NCivjgqrjgqrjg5As44K/44Kx44K3DQor44K144Kv44Op44KkLOODkuODreOCouOCrQ0KK+OCteOCq+OCpCzjgqTjg4PjgrvjgqQNCivjgqLjgqrjgq0s44K/44Kv44KqDQor44Oo44K344OALOODpOOCueOCtw0KK+OCs+ODj+OCtyzjg57jgrXjg47jg6oNCivjg57jg4Tjgqbjg6ks44OG44OD44Oa44KkDQor44K144OI44KmLOOCquOCteODoA0KK+ODi+OCt+OCreOCquODqizjg4jjg6LjgrMNCivjg5/jg6jjgrcs44Oo44K344OS44K1DQor44Kz44K544KuLOODhOOCq+OCtQ0KK+OCteODiOOCpizjgr/jgqvjgqTjg4ENCivjg5XjgrjjgqQs44Oo44K344OS44OtDQor44OV44OK44OALOOCq+OCuuODkuOCsw0KK+OCueOCruOCvyzjg4jjgqrjg6sNCivjgrfjg6fjgqbjg4As44Kr44K644OS44OtDQor44Oi44Oq44K344K/LOODiOOCt+OCqg0KK+ODkuODqSzjg5Ljg4jjgrcNCivjgrfjg7Pjgr/jgq8s44OS44Ot44Om44KtDQor44OS44Ks44K344OALOODiOOCt+ODpuOCrQ0KK+OCr+ODquOCvyzjg57jgrXjg6jjgrcNCivjgqTjg4rjg4As44Om44Km44K144KvDQor44OL44K344OOLOODiOOCt+ODpA0KK+OCpOOCseOCuOODqizjg47jg6rjgqLjgq0NCivjg4rjgqvjg6Djg6ks44OK44Kq44OS44OtDQor44OK44Kr44Kr44OJLOODqOOCpuOCpOODgQ0KK+OCpOODjuODnuOCvyzjg5Ljg63jgrcNCivjg4Tjg6vjg58s44OS44Ot44Oo44K3DQor44OS44Op44Oi44OILOOCt+OCsuOCrQ0KK+ODn+ODqOOCtyzjg5Xjg5/jgqLjgq0NCivjgqLjg6/jg44s44K/44Kr44K3DQor44Ki44Kt44K/LOODqOOCt+OCqA0KK+ODkuOCrOOCt+ODpOODnizjgr/jgrHjgrcNCivjgrXjg4jjgqYs44OS44Ot44OfDQor44Kr44Ov44K144KtLOOCseOCpOOCpOODgQ0KK+ODnuODq+ODpOODnizjg4/jg4TjgqoNCivjgrnjg4rjgqws44OS44OH44KtDQor44Kk44Oe44KkLOOCv+ODn+OCsw0KK+ODleOCuOOCpCzjg6bjgq3jgqoNCivjg57jgq3jgr8s44Of44OE44KqDQor44Kk44OI44KmLOOCv+ODhOOCtw0KK+OCv+OCq+ODj+OCtyzjg6rjg6XjgqbjgqTjg4ENCivjgq3jg6rjg54s44K344Oz44K4DQor44Kq44Kq44OL44K3LOODiOODouODpuOCrQ0KK+ODn+ODjuOCt+ODnizjgr/jgrHjg5Ljg4gNCivjgrXjg4jjgqYs44Kr44K644K/44KrDQor44Ok44Oe44K344K/LOOCv+OCq+ODpuOCrQ0KK+ODn+OCv+ODoOODqSzjg57jg6bjg58NCivjgrXjg4jjgqYs44K344Ky44OrDQor44OI44Oe44OELOOCv+ODnuODnw0KK+OCqOODk+OCt+ODnizjg6Tjgrnjg6bjgq0NCivjg6/jg4As44Kr44K644OkDQor44K544K644KtLOOCreODqOOCv+OCqw0KK+OCueOCrOODj+ODqSzjg5/jg4Tjg6sNCivjgr/jgrDjg4Es44OS44Ot44OgDQor44OI44Ks44K3LOODnuOCteODkuOCsw0KK+ODiuOCrOODj+ODqSzjgrXjg4jjg6sNCivjg6Tjg57jg6Ljg4gs44Kx44Kk44KzDQor44K/44Kx44OALOODnuOCteODpuOCrQ0KK+OCteODiOOCpizjg5/jg47jg6sNCivjgr/jgqvjg5/jg6Qs44OS44OH44OO44OWDQor44Ki44Kq44KtLOOCv+OCq+ODkuODrQ0KK+OCs+ODpOOCrizjgrnjg5/jgr/jgqsNCivjgqrjg47jgrbjgq0s44Oq44On44Km44K544KxDQor44Oi44Oq44K/LOODjuODquOCsw0KK+OCteOCr+ODqeOCrizjg6bjg5/jgrMNCivjgqrjgqvjgrXjgqss44OS44Ot44OO44OqDQor44Ok44Oe44Kw44OBLOOCs+OCueOCsQ0KK+OCq+ODr+OCt+ODnizjg6jjgrfjg47jg6oNCivjgqTjg6/jg44s44Kr44K644OO44OqDQor44K044Km44KzLOODpOOCueODj+ODqw0KK+ODouODquOCvyzjg6TjgrnjgrgNCivjgrfjgrLjgr/jgqss44OK44Kq44KtDQor44OG44K644KrLOOCqOOCpOOCteOCrw0KK+OCquOCvyzjg4Tjg6jjgrcNCivjg6Tjg57jg4As44Oe44K144OP44OrDQor44OV44Kr44OALOODkuOCteODpuOCrQ0KK+ODj+OCu+ODmSzjg6Ljg4jjgqLjgq0NCivjg57jg4Tjg44s44Ki44OE44K3DQor44OE44K444Kr44OvLOOCseODs+OCpOODgeODrQ0KK+ODnuODhOODouODiCzjgqvjg4Tjg58NCivjgrvjg47jgqos44OP44K444OhDQor44OO44Og44OpLOOCteODiOOCtw0KK+OCouODqeOCpCzjg4jjg6jjgrfjgrINCivjgqrjgrDjg6os44K544Of44KoDQor44K444Oz44OOLOODnuOCteODkuODrQ0KK+ODkuODreOCuuODnyzjg5/jg47jg6sNCivjg57jg4TjgqQs44K544K544OgDQor44K344OQ44K244KtLOOCouODhOOCtw0KK+OCpOODjuOCpuOCqCzjg5Ljg4fjgqoNCivjgr/jg4rjgqss44OS44OH44Kr44K6DQor44K144K9LOODiuOCquODleODnw0KK+OCt+ODqeODj+ODnizjgqLjgq3jg5LjgrMNCivjgr/jg4rjgqss44OK44Kq44KtDQor44OK44Kr44Og44OpLOODpOOCueODkuODrQ0KK+OCpOOCt+OCrOODnyzjg6jjgrfjgqLjgq0NCivjgrfjg5Djgr8s44OG44OD44Oa44KkDQor44OO44Kw44OBLOOCouODpuODnw0KK+OCpOODgeODkCzjgrPjgqbjgrgNCivjgqvjg6/jgrDjg4Es44OS44OH44KzDQor44Oo44K344OfLOODkuODh+ODnw0KK+ODleOCuOOCq+ODryzjg5Ljg63jg6bjgq0NCivjgqvjg4jjgqYs44OE44Oo44K3DQor44K/44Kr44OP44K3LOOCpOOCteODoA0KK+ODleOCuOOCteODryzjgqvjgrrjgqoNCivjg5/jgrrjgr/jg4ss44OI44Oi44OV44OfDQor44K744Kt44Kw44OBLOODqOOCt+ODreOCpg0KK+ODnuOCqOOCq+ODryzjg6Djg4Tjg58NCivjgqLjg6njgqQs44Oq44Ol44Km44K4DQor44Oi44OqLOOCseOCpOOCv+ODreOCpg0KK+OCteODiOOCpizjg4rjgqrjgrMNCivjgq/jg6/jgr8s44K344On44Km44Kk44OBDQor44Kq44Kw44OqLOODkuODreOCtw0KK+ODkuODqeOCpCzjgqvjg4Tjg5LjgrMNCivjg4vjgrfjg6Djg6ks44OV44Of44OI44K3DQor44Kq44Kq44Kv44OpLOODkuOCteODjuODqg0KK+OCveODjuODmSzjgqLjgq3jgrMNCivjgqTjgqTjg4As44Ok44K544Ki44KtDQor44Kz44Kw44OBLOOCqOOCpOOCpOODgeODreOCpg0KK+ODouODreODm+OCtyzjg5Ljg4fjgqvjgroNCivjg4/jg57jg4As44OO44Oq44Kr44OEDQor44Kr44OK44K244OvLOOCq+OCuuODpuOCrQ0KK+ODnuODhOODkCzjgrfjgrLjg6sNCivjgqTjg6/jgr8s44OS44OH44OI44K3DQor44Ki44K644OBLOODnuOCteODqw0KK+OCs+ODs+ODiSzjgqTjgrXjgqoNCivjgr/jgqvjg4/jgrcs44Oo44K344KqDQor44Ki44Oe44OOLOODkuODreOCouOCrQ0KK+OCq+OCv+ODgCzjgqrjgrXjg6ANCivjgr/jg6Hjg5Ljg60s44Oi44OI44KzDQor44Oe44OE44OALOOCv+OCq+OCtw0KK+ODiuODquOCpOOCtyzjg6Tjgrnjg6jjgrcNCivjgqrjgq3jgr8s44Oi44Oq44Of44OBDQor44Ok44Oe44K344K/LOODkuODreOCtw0KK+OCueOCuuOCrSzjg6bjgqbjgrgNCivjg57jg7Pjg50s44Kr44OE44OfDQor44Kk44OB44KkLOOCseODs+OCuA0KK+OCs+OCpOODhyzjg4jjg6LjgrMNCivjgr/jgqvjg4/jgrcs44OK44Kq44KzDQor44OK44Kr44Ks44OvLOOCq+OCuuOCqg0KK+OCquODj+ODnizjgr/jgqvjgrcNCivjgr/jgqvjg4/jgr8s44OS44Ot44OfDQor44Kz44Kw44OBLOOCv+OCq+OCtw0KK+ODn+ODpOOCrOODryzjgqvjgrrjg6QNCivjgrfjg5Djg6Tjg54s44OP44K444OhDQor44Ki44Op44KkLOODpOOCueODkuODrQ0KK+ODr+OCv+ODiuODmSzjgrnjgrnjg6ANCivjg4rjgqvjg6Djg6ks44Om44K/44KrDQor44OV44Or44OP44K/LOODnuOCteODiuODqg0KK+OCv+ODi+OCsOODgSzjg4rjgqrjgrnjgrENCivjg5vjg7Pjg4As44K544K544OgDQor44Oe44OE44Oi44OILOOCouOCreODkuODrQ0KK+OCv+OCq+OCrSzjg4/jg6vjg5/jg4QNCivjgq3jgq/jg4Es44K344Oz44OkDQor44Kk44OO44Km44KoLOOCs+OCpuOCpOODgQ0KK+ODj+ODqSzjg57jgrXjgqoNCivjg6Tjg57jg6Ljg4gs44K/44Kr44OS44OtDQor44Og44Op44Kr44OfLOODiOODouODpOOCuQ0KK+ODkOODkCzjg57jgrXjg5LjgrMNCivjg4/jgrvjgqzjg68s44OI44K344OS44KzDQor44K144K144KtLOOCouOCreODleODnw0KK+OCouODhOOCvyzjg5Ljg4jjg58NCivjgr/jg4Hjgqvjg68s44OS44Ot44OE44KwDQor44OS44Op44Oi44OILOODkuODh+OCouOCrQ0KK+ODiuOCq+ODoOODqSzjg4jjgrfjg6QNCivjg4Tjg6Djg6ks44K/44Kr44KqDQor44K/44Kr44OP44K3LOOCveOCpuOCpOODgeODreOCpg0KK+ODqOOCs+ODpOODnizjg5/jg47jg6sNCivjgrPjgr/jgrEs44Of44OE44KqDQor44Ki44Oz44Op44KvLOOCv+OCq+OCtw0KK+ODn+OCuuODjizjgrfjg7PjgqTjg4ENCivjgqrjgqrjg4zjgq0s44Ki44Kt44OpDQor44K144Kr44KkLOODj+OCuOODoQ0KK+OCquOCvyzjgrfjg6fjgqbjgr7jgqYNCivjg4/jg6Tjgrcs44OO44Oq44KqDQor44K144Kk44OI44KmLOOCouOCreODkuODrQ0KK+OCv+ODiuOCqyzjg47jg6rjgrMNCivjg4/jg6vjg4/jg6ks44OI44Km44K0DQor44Kq44Kq44OE44KrLOODnuOCteODpuOCrQ0KK+OCreOCv+OCrOODryzjg5Ljg4fjg58NCivjg6jjgrPjgr8s44Kr44OD44Oa44KkDQor44Oo44K344Og44OpLOOCouODhOOCsw0KK+OCquOCquODkuODqSzjgrfjg7PjgqTjg4ENCivjg4Hjg6Pjgq0s44K344Ky44OS44OHDQor44K144Kr44Kw44OBLOOCs+OCpuOCpOODgQ0KK+OCueOCuuOCrSzjgqLjgq3jg5Ljg60NCivjg4Hjgqvjgrbjg68s44Oe44Om44OfDQor44OK44Kr44K444OeLOODnuOCteODjuODqg0KK+ODr+OCv+ODiuODmSzjgr/jg4DjgqoNCivjgrfjg5As44K444Ol44Oz44KzDQor44K144Kr44KkLOODgeODj+ODqw0KK+ODpOODnuODn+OCteOCqyzjg4bjg4TjgqoNCivjg6jjgrfjgqzjg58s44Ki44Kt44OpDQor44OS44Op44OGLOODnuOCteODpuOCrQ0KK+ODr+OCr+OCt+ODnizjgr/jg4DjgrcNCivjgqLjgrXjg54s44OB44Kr44OpDQor44Ki44K644OfLOOCv+ODgOOCtw0KK+OCpOODiuOCquOCqyzjg5Ljg63jgqvjgroNCivjgrXjg4rjgqQs44OS44Ot44K3DQor44Ok44Oe44Km44OBLOODpOOCueODkuODrQ0KK+OCpOODj+ODqSzjg4jjgrfjg5LjgrMNCivjgr/jg6Tjg54s44Kq44K144OgDQor44K144K144KtLOOCt+ODs+ODpA0KK+ODleOCuOOCpuODgSzjg4jjgrfjgqLjgq0NCivjgqbjgrfjgrjjg54s44K344Oz44Kk44OBDQor44OO44OO44Og44OpLOODnuOCteOCv+OCqw0KK+ODi+OCtyzjgr/jgrHjg5Ljg60NCivjgqTjgrHjg4As44OS44Ot44OfDQor44K544Ku44K/44OLLOODkuODreOCtw0KK+OCquOCtuOCrSzjgr/jgrHjgrcNCivjgrPjgrHjg4Qs44Ki44Kt44OS44K1DQor44K144OI44KmLOODqOOCpuOCueOCsQ0KK+OCu+ODs+ODkCzjgqLjg4TjgrcNCivjgqLjgrrjg54s44OS44OH44OIDQor44OK44Kq44KkLOOCpOODgeODreOCpg0KK+ODm+OCt+ODjizjg6jjgrfjgq0NCivjgqvjg5/jg6Qs44Ok44K544OS44OtDQor44Og44Op44K/LOODkuODiOOCtw0KK+OCpOODgeODn+ODpCzjgrHjgqTjgrMNCivjgr/jg6vjgqQs44Ok44K544Ki44KtDQor44OP44Ku44OP44OpLOODn+ODr+OCsw0KK+OCv+OCq+ODj+OCtyzjgr/jgqvjgrcNCivjgqrjg4HjgqLjgqQs44OS44OI44K3DQor44Ki44Kt44Ok44OeLOOCseOCpOOCueOCsQ0KK+OCreODoOODqSzjg6jjgrfjg5Ljg60NCivjg4/jg6Tjgrcs44OS44OH44KqDQor44Ok44Oe44Kw44OBLOODn+ODhOODqw0KK+ODiOOCs+ODrSzjg4rjgqrjgr/jgqsNCivjgqvjgrnjg6Qs44Ko44OE44KzDQor44Kk44Oq44KoLOOCt+ODpeOCpuOCuA0KK+ODoOODqeOCpOOCtyzjg5/jg4rjgrMNCivjgrfjg7Pjgr/jg4ss44Oq44Ol44Km44K4DQor44Km44Ko44OOLOODn+ODmw0KK+OCpuODgeODgCzjgrPjgqbjgrgNCivjg4/jgrvjgqzjg68sDQor44Kv44Ot44OALOODq+ODquOCsw0KK+OCpOODiOOCpizjgqvjg4Tjg5Ljg60NCivjg5vjg6rjgqbjg4Es44Oe44OkDQor44Kq44Kq44OP44K/LOODjuODluOCouOCrQ0KK+ODm+ODs+ODgCzjg5Ljg4fjg6bjgq0NCivjg4rjgqvjg6Djg6ks44K544K544OgDQor44K144Ko44KtLOOCquOCreODouODqg0KK+OCouODmSzjg4bjg6vjg5LjgrUNCivjgqbjg6Hjg4As44K/44Kr44OS44OtDQor44OM44OeLOODnuOCteODpuOCrQ0KK+OCv+ODluODgSzjg6bjgr/jgqsNCivjgq3jg6Djg6ks44Of44OE44OrDQor44Km44OALOOCv+OCq+ODnw0KK+OCouOCquOCrSzjg47jg6rjgrMNCivjg4rjgqvjg6Djg6ks44Oe44K144OIDQor44OV44K444Kz44K3LOOCteODiOOCtw0KK+OCueODn+ODgCzjgq3jg6jjgrcNCivjgq/jgrrjg4/jg6ks44OO44Oc44OrDQor44Ov44K/44OK44OZLOODkuODreOCtw0KK+OCouODqeOCvyzjgrXjg4jjg58NCivjg63jg4Pjgqvjgq8s44Oe44Om44OfDQor44Kk44OO44Km44KoLOODn+ODhOODnuOCtQ0KK+ODhOOCuOODouODiCzjg57jgrXjg58NCivjg5/jgqbjg6ks44OK44OK44KzDQor44ON44Oi44OILOODqOOCt+OCqg0KK+OCouODoeODn+ODpCzjg6jjgrfjgqvjgroNCivjg4rjgqvjg6Djg6ks44OS44Ot44Om44KtDQor44Ki44Kk44OQLOODjuODluOCv+OCqw0KK+ODqOODjeOCtuODryzjgrfjg7Pjg6QNCivjg5Xjgrjjg6Djg6ks44K344Ol44KmDQor44Oq44Ol44Km44OILOODkuODreODnw0KK+ODr+OCv+ODiuODmSzjg4jjg6Ljg58NCivjgq3jgr/jgqzjg68s44K344Oz44K4DQor44Ki44K/44Op44K3LOODiOODouODiuOCqg0KK+OCreOCr+ODgSzjgrjjg6Xjg7MNCivjgrnjgrrjgq0s44Ki44Kt44OpDQor44K/44OK44KrLOODkuODreOCtw0KK+OCpOOCseODgCzjg5Ljg63jg4rjg6oNCivjg6jjgrPjgqvjg68s44Of44OE44OS44KzDQor44Kv44K144OE44KwLOOCv+OCq+OCtw0KK+ODn+OCuuODjizjgrHjg7PjgrgNCivjg4rjgqzjg5vjg6os44Kz44Km44Kk44OBDQor44K544Ku44Oi44OILOOCs+OCpuOCuA0KK+OCouODs+ODieOCpizjg4Tjg43jgqoNCivjgr/jgqvjg6Tjg4rjgq4s44OS44Ot44OV44OfDQor44K344OQLOODnuOCteOCsw0KK+OCq+ODn+ODpOODnizjgqvjgrrjg5Ljg60NCivjgqrjgqrjg5Ljg6ks44OS44Ot44OfDQor44Ob44Oz44OeLOODj+ODq+ODpuOCrQ0KK+OCv+ODkOOCvyzjg47jg5bjg6jjgrcNCivjgqjjg7Pjg4ks44Kx44Oz44Kk44OBDQor44Kk44K344Ks44KtLOOCu+OCpOOCuA0KK+OCt+ODkCzjg6bjgqbjgqTjg4Hjg60NCivjg6Tjg57jg4As44Oe44K144OS44OIDQor44K/44Kr44OOLOOCq+ODhOOCqg0KK+ODqOOCt+ODgCzjgr/jg4Tjg6QNCivjgqLjg57jgrXjgq0s44OI44K344OS44KzDQor44Kq44K344Kr44OvLOOCt+ODs+OCuA0KK+ODi+OCt+ODjizjg5/jg5vjgrMNCivjgqvjg4jjgqYs44Kq44K144OgDQor44OP44Oe44Kq44KrLOODiOODouOCsw0KK+OCteODjizjgr/jgqvjgqvjgroNCivjgrnjgqjjgrfjgrIs44Kv44OL44OG44OrDQor44OK44Kr44K/LOODkuODreODnw0KK+OCs+ODkOODpOOCtyzjg5Ljg4fjg6bjgq0NCivjgrnjg4njgqYs44Ok44K544K3DQor44OE44OE44OfLOOCreODqOODkuODiA0KK+ODn+OCv+ODiyzjgrPjgqbjgrgNCivjgqTjgrfjg4As44Ok44K544OV44OfDQor44Kk44Kk44K644KrLOODpuOCv+OCqw0KK+OCt+ODqeOCpCzjg6bjg58NCivjg6Tjg57jg4As44Kk44Ov44KqDQor44OE44K444Kr44OJLOOCq+OCuuOCsw0KK+ODnuODhOODiuOCrCzjgrPjgqbjgqTjg4ENCivjgr/jg4rjgqss44Kr44K644KoDQor44Of44OK44OfLOODkuODreOCtw0KK+OCteOCq+OCpCzjg57jgrXjg6bjgq0NCivjgqbjgqjjgq0s44K344Kq44OqDQor44Kq44OALOODnuOCteOCqg0KK+ODnuOCqOODgCzjgrvjgqTjgrgNCivjg4fjgq3jgr/jg4ss44K444Ol44OzDQor44Ki44Oe44OOLOOCv+OCq+ODkuODrQ0KK+ODn+ODpOOCs+OCtyzjgrfjgrLjgqvjgroNCivjgqLjg7PjgrbjgqQs44OI44K344Of44OBDQor44Km44Oh44OALOODpuOCreOCqg0KK+OCv+OCreOCtuODryzjgqLjg4TjgrcNCivjg6Djg6njg4vjgrcs44Kt44Oo44K3DQor44Kv44Oq44OP44OpLOODiOOCt+ODkuOCsw0KK+ODpOODnuOCteOCrSzjg57jg6oNCivjgqrjgqrjg4Tjgqss44Of44OE44OS44OtDQor44Ki44Of44OOLOOCv+OCq+OCtw0KK+ODouODqizjg6Tjgrnjg47jg6oNCivjg4vjgrfjg6Ljg6os44K344Oz44K4DQor44K/44Kx44OOLOODnuOCteOCqg0KK+OCt+ODs+OCrOOCrSzjg6jjgrfjgqvjgroNCivjg57jg4Tjgqos44Oo44K344KtDQor44OV44K444ONLOODnuOCteOCrQ0KK+OCq+ODiuODnuODqyzjg5Ljg63jg6jjgrcNCivjgqvjg4rjgrbjg68s44K/44OE44Om44KtDQor44K344Of44K6LOODquODpeOCpuOCuA0KK+ODr+ODgCzjgqTjg4TjgrMNCivjgqTjgrfjgq/jg6ks44K/44Kx44K3DQor44OV44Kv44OALOOCouOCreODkuODrQ0KK+OCpuOCq+OCpCzjg6jjgrfjgrMNCivjgqLjg6rjg54s44Kq44K144OgDQor44Kq44Kq44K/LOOCv+OCq+OCouOCrQ0KK+ODouODquOCv+ODiyzjgr/jgqvjgrcNCivjgqLjg4Djg4Es44Oo44K344OS44OtDQor44Kv44Oe44OHLOODnuOCteODjuODqg0KK+OCouODqSzjgrnjgrnjg6ANCivjg4/jgrfjg6Ljg4gs44OI44Kq44OrDQor44OI44Oo44Kq44KrLOODnuOCs+ODiA0KK+OCquOCquODhCzjg4bjg4Tjg63jgqYNCivjg5/jg6Tjgq0s44Kx44Kk44Kk44OBDQor44Kk44K344Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+OCpOOCrOODqeOCtyzjg4rjgqrjg4TjgrANCivjgqrjgqrjg4vjgrcs44Kt44Oz44OkDQor44K344Op44Kk44K3LOOCs+OCpuOCpOODgQ0KK+ODqOOCs+ODoSzjg6jjgrfjgqLjgq0NCivjg5Xjgrjjg6Ljg4gs44Kr44K644OS44OtDQor44Kr44Oz44OOLOODouODquODpOOCuQ0KK+OCv+ODgeODkOODiizjg5/jg4HjgqoNCivjg6Tjg57jg4As44OB44OK44OfDQor44Ki44K144OfLOOCt+OCsuOCqg0KK+ODn+OCpuODqSzjg6TjgrnjgrcNCivjg4jjgq/jg5Ljg60s44OS44Ot44OO44OWDQor44Oi44Oq44Kr44OvLOODnuOCteODjuODlg0KK+OCpOODiOOCpizjg5/jgq3jg5LjgrUNCivjgrXjg44s44OI44Oi44Of44OEDQor44K544K644KtLOODnuOCs+ODiA0KK+OCt+ODouODiOODjizjg57jg4rjg5YNCivjg57jgqvjg5ks44K144OI44OfDQor44Kk44OI44KmLOOCs+OCpuOCuA0KK+ODhOOCr+ODgCzjgrjjg6Xjg7PjgrgNCivjg6jjgrfjgqvjg68s44Of44OE44KwDQor44K/44Kr44Ok44OK44KuLOODkuODreOCrQ0KK+ODm+ODs+ODgCzjgr/jgqvjg6jjgrcNCivjg4vjgrfjg44s44Om44Km44K4DQor44Kt44Og44OpLOODqOOCt+ODkuODrQ0KK+OCq+ODiOOCpizjgrPjgqbjgqTjg4ENCivjgqrjgqrjg4/jgr8s44K444Ol44OzDQor44Km44OE44OfLOOCq+OCuuODkuOCsw0KK+OCouODs+ODieOCpizjgqvjgrrjg5LjgrUNCivjg4/jg57jgr/jg4ss44Of44OO44OrDQor44Kt44OO44K344K/LOOCv+OCq+ODleODnw0KK+OCq+ODr+OCuyzjg4jjgrfjgr/jgqsNCivjgqbjgqjjg44s44Oo44K344OS44KzDQor44K344Kr44OeLOODquODp+OCpuOCuA0KK+OCueOCuuOCrSzjg57jgrXjg6bjgq0NCivjg5Xjgrjjgqrjgqss44Oe44K144OS44OtDQor44Kk44OO44Km44KoLOODiOODouODkuODrQ0KK+OCreOCv+OCtuOCrSzjg6Tjgrnjg6bjgq0NCivjgqLjgqTjg5ks44OS44Ot44K3DQor44Kq44Kq44Kr44OvLOOCteOCq+OCqA0KK+OCv+OCseOCpCzjg6Tjgrnjg4/jg6sNCivjgqvjg6njg4/jgrcs44OS44Ot44K3DQor44K544K644KtLOODnuODpuODnw0KK+OCouODqeOCpCzjg5Ljg63jgrcNCivjgqTjg47jg4As44OO44Oq44Om44KtDQor44Kq44Kv44Og44OpLOOCqOODqg0KK+ODnuODq+OCpCzjgrjjg6Xjg7PjgrMNCivjg5Ljg63jgrrjg58s44Ki44Kt44OS44K1DQor44Ov44K344K6LOOCv+OCr+ODpA0KK+ODqOOCt+ODoOODqSzjgr/jgqvjg5LjgrUNCivjgqvjg4Tjg57jgr8s44K/44Kr44K3DQor44Oe44K544Kr44OvLOOCq+ODhOODqQ0KK+OCpOODr+OCqizjgrfjg6XjgqbjgrgNCivjg6Tjg57jg6Ljg4gs44Oo44K344OS44OIDQor44K/44OK44KrLOOCteODiOODqw0KK+OCv+OCseOCpuODgSzjg47jg6rjg6bjgq0NCivjg47jg4/jg6ks44K344Ol44Km44K+44KmDQor44OV44OK44OP44K3LOOCq+OCuuODjuODqg0KK+ODiuOCtOOCtyzjgrHjg7PjgrgNCivjgqbjg6Hjg4As44Kr44K644OkDQor44Ki44Kt44Ok44OeLOODkuODiOOCtw0KK+ODiuOCq+ODgCzjg57jgrXjg4gNCivjgrXjgqTjg4jjgqYs44Oh44Kw44OfDQor44K/44OP44OpLOOCuOODpeODs+OCpOODgeODrQ0KK+ODi+OCt+ODnuODhCzjg6jjgrfjg5Ljg60NCivjg5Ljg6njg5/jg4Qs44Oe44Kz44OIDQor44Oh44Kr44K/LOODnuOCteODqw0KK+OCv+OCq+ODnyzjg6rjg6Xjgqbjgr/jg63jgqYNCivjgr3jg47jg4As44OS44OH44Om44KtDQor44Of44Ok44K244KtLOODpuOCpuOCuA0KK+ODnuODq+ODpOODnizjg5Ljg4fjgqLjgq0NCivjg4Tjg47jgqvjg68s44Oe44K144K3DQor44OP44Op44OALOOCq+ODhOODnw0KK+ODhOOCuCzjg4TjgrDjg5LjgrMNCivjgqTjgqzjg6njgrcs44OI44K344KqDQor44Oo44K344OALOOCq+OCquODqg0KK+OCv+OCseOCrOOCvyzjgrPjgqbjgq0NCivjgqLjg5ks44Oq44On44Km44K4DQor44Ki44Kr44OM44OeLOODiOOCr+ODkuODrQ0KK+OCq+ODr+ODgCzjg5Ljg63jgqLjgq0NCivjgr/jgrQs44OS44Ot44K3DQor44Kr44Of44Og44OpLOODnuOCteOCtw0KK+ODnuODhOODpCzjgrLjg7MNCivjgqTjg6/jgr8s44Ki44Kt44OS44KzDQor44Oe44Ko44Kr44OvLOOCteODiOOCtw0KK+ODpOODnuOCsOODgSzjg6zjgqTjgrMNCivjgrfjg63jgrfjgr8s44OI44Oi44OS44OtDQor44Ok44Oe44K344K/LOODnuOCteODiA0KK+ODhOOCuOOCq+ODryzjgrjjg6Xjg7PjgqTjg4ENCivjgr/jg4rjgqss44Oo44K344OV44OfDQor44Of44OK44OfLOODiOODouODkuODrQ0KK+OCteODiOOCpizjg6jjgrfjgqLjgq0NCivjgqbjgqrjgrrjg58s44Ki44Kt44OpDQor44K544Ku44Ok44OeLOODkuODreODpuOCrQ0KK+ODgeODkCzjg57jgrXjg6bjgq0NCivjgqvjg4rjgqQs44K144OI44K3DQor44Oe44OE44Ok44OeLOODhOODqOOCtw0KK+OCv+OCq+ODjizjgqLjgq3jg6kNCivjgq/jg57jgqzjgqQs44Kz44Km44Kk44OBDQor44K/44Kx44Kz44K3LOODoOODhOODkuOCtQ0KK+ODleOCv+ODkCzjg4jjgrfjgqLjgq0NCivjgqbjg6Hjgrbjgq0s44Kr44K644K/44OADQor44Kq44Kk44Ov44KxLOODqOOCpuOCueOCsQ0KK+ODiuOCrOODhOOCqyzjg57jg4rjg5YNCivjgqTjg57jgqzjg68s44OS44OI44OfDQor44OP44K344Oi44OILOOCouOCreODqQ0KK+OCquOCquODkuODqSzjg6bjgqbjgr/jg63jgqYNCivjg5/jg6Tjg5Ljg6ks44Of44OB44Ki44KtDQor44OO44Kw44OBLOOCseOCpOOCvuOCpg0KK+OCueOCruODouODiCzjgqvjgrrjg5Xjg58NCivjgqvjg6/jgrDjg4Es44Kr44OE44OO44OqDQor44K344OO44K7LOODhOODqOOCtw0KK+ODiuODquOCteODryzjg6jjgrfjg5Ljg4gNCivjg5Ljg63jgrss44Ki44Kt44OS44OtDQor44OL44K344K244KtLOOCueOCueODoA0KK+ODouODqizjg47jg5bjg6bjgq0NCivjg5Xjgqvjgqos44Oo44K344KzDQor44Of44Ok44K444OeLOOCseOCpOOCvuOCpg0KK+ODnuODhOODjizjgqvjgrrjgrfjgrINCivjgqTjg6/jgqQs44K344Ky44OO44OWDQor44Kr44KkLOODn+ODieODqg0KK+OCv+ODiuOCqyzjgq/jg4vjgrMNCivjg4Hjg5As44Oe44K144OfDQor44K944OOLOODkuODreOCtw0KK+ODqOOCs+ODpOODnizjgqLjgq3jg5LjgrUNCivjgr/jgqvjgrfjg54s44K444Ol44OzDQor44Kq44Kr44Oi44OILOOCs+OCpuOCuA0KK+ODn+ODpOOCq+ODryzjg4DjgqTjgrnjgrENCivjg6Djg6njg6Ljg4gs44OI44Oi44Ki44KtDQor44Kt44Og44OpLOOCs+OCpuOCpOODgQ0KK+ODnuODhOODiuOCrCzjg6bjg5/jgrMNCivjg5Xjgq/jg4As44OE44OI44OgDQor44Kq44Kq44OL44K3LOODnuOCteOCtw0KK+OCouOCpCzjg5Ljg4fjgqvjgroNCivjg57jgqjjg4As44OS44K144Kr44K6DQor44Kk44OO44Km44KoLOODqOOCt+ODnw0KK+OCpOOCpOODgCzjgr/jgqvjg5LjgrUNCivjg5XjgrjjgqQs44OS44Ot44Om44KtDQor44K144Kv44Op44KkLOOCv+OCr+ODpA0KK+ODnuODhOOCpCzjgqbjgqTjg6oNCivjgqTjg57jg4As44K344Oz44K4DQor44Of44Ok44KxLOOCouODhOOCtw0KK+OCteOCq+OCpCzjg5Ljg63jg5LjgrUNCivjgqvjg4jjgqYs44Kq44K144OgDQor44Kk44Ov44K/LOODiuOCquODiA0KK+OCquOCquODjizjg57jgrXjg6QNCivjgqTjgr3jg5ks44K/44Kr44Oo44K3DQor44Kq44Ok44Oe44OALOODhOODiOODoA0KK+ODiOOCpuOCuOODnizjgr/jg4Tjg5Ljg60NCivjgr/jgrHjgqbjg4Es44Kr44K644OS44KzDQor44OK44Kr44Ok44OeLOODnuOCueOCqg0KK+OCt+ODqeOCpOOCtyzjgqrjgrXjg6ANCivjgqvjg47jg57jgr8s44Ki44OE44K3DQor44K544OJ44KmLOOCv+OCq+ODkuODrQ0KK+OCt+ODqeODpOODnizjgqLjgq3jg5Ljg60NCivjgqrjgqrjg6Qs44Oe44K144OrDQor44Of44OK44Ks44OvLOODiOODouODkuODrQ0KK+OCreODoOODqSzjgr/jg4Tjg6QNCivjgr/jgqvjgq4s44OA44Kk44K+DQor44K144OI44KmLOODpuOCreOCqg0KK+ODleOCuOODr+ODqSzjg5/jg4Tjg6sNCivjgqTjg6Ljg4gs44Oo44Km44K/DQor44Km44Ko44OOLOODiOODouODkuODrQ0KK+OCreODp+OCpuODjizjgrHjg7PjgrQNCivjgq3jg6rjgqYs44Oo44K344K/44OADQor44Kv44Oc44K/LOODhOODjeOCqg0KK+OCs+OCu+OCrSzjgr/jgqvjgrcNCivjgrnjgrbjgq0s44Oe44K144OS44OtDQor44K/44Kr44K144KtLOODpOOCueODkuOCtQ0KK+ODhOOCq+ODouODiCzjgrfjg7PjgqTjg4ENCivjg4rjgqTjg4jjgqYs44Kx44Oz44K4DQor44OK44Kr44K044OhLOODkuODreOCq+OCug0KK+ODiuOCq+ODoOODqSzjg5Ljg4fjg6TjgrkNCivjg4/jgq7jg6/jg6ks44Kr44OE44OfDQor44Oe44OE44Oi44OILOOCq+ODqOOCsw0KK+OCs+ODs+ODjizjg6jjgrfjg5LjgrUNCivjgrXjgqTjgrDjgrUs44K/44Oi44OEDQor44Ob44Oz44OALOODpuOCreOCqg0KK+OCv+ODiuOCqyzjg5Ljg63jgrcNCivjg57jg4Tjg4jjg58s44Kr44Oo44KzDQor44Ki44Kr44K144KrLOODkuODreOCouOCrQ0KK+OCu+ODs+OCrOODsyzjgqLjgq3jg5Ljg4cNCivjgr/jgrHjgqos44OO44Oq44Kr44K6DQor44Og44Op44K/LOODkuODreODpuOCrQ0KK+OCq+ODr+OCuyzjg4jjg6Ljg5Ljg60NCivjg4vjgrfjgrbjgq0s44K/44OE44Om44KtDQor44OY44Kk44OI44KmLOOCqOOCpOOCpOODgQ0KK+OCquOCquOCteODryzjg57jgrXjg4/jg6sNCivjgqbjgqjjg4As44Oo44Km44Kk44OBDQor44Kr44OK44Ok44OeLOODpOOCueODkuOCsw0KK+ODj+ODqeODgCzjg4jjg6Ljg6bjgq0NCivjg4rjgqvjgqzjg68s44Ki44OE44K3DQor44Of44Ok44Oi44OqLOODnuOCs+ODiA0KK+OCq+OCpCzjgrHjg7PjgrgNCivjgq3jgrDjg4Es44K344Ol44Km44K4DQor44K144K/44KxLOOCseODs+OCuA0KK+OCquOCquOCquOCqyzjg4jjgrfjg63jgqYNCivjg4rjgqvjgrbjg68s44Kz44Km44K4DQor44Ok44K544Kq44KrLOODnuOCteODkuODhw0KK+OCr+ODreODn+ODhCzjg6Tjgrnjgr/jgqsNCivjgqvjg4rjg4As44OS44OH44KtDQor44Oe44Or44Kr44OvLOODkuODh+OCrQ0KK+ODiuOCrOOCteODryzjgr/jgrHjg6bjgq0NCivjgrPjg5Djg6Tjgrcs44K344Ol44KmDQor44Ko44Oz44OJLOODnuOCteODjuODqg0KK+OCpOODs+ODiuODnyzjg4/jg6vjgqoNCivjg6Tjg57jg6Ljg4gs44Kt44Oo44K/44KrDQor44OK44Ks44Kv44OpLOOCteODiOOCtw0KK+OCpuOCqOODjizjg57jg4HjgrMNCivjg4vjgrfjgrbjgqss44Of44KrDQor44K144OI44KmLOODhuODhOODreOCpg0KK+ODouODquODpOODnizjgr/jg4TjgqoNCivjgrPjg4/jg6Tjgrss44K344Ky44KqDQor44OJ44Kk44K/LOODkuODreOCtw0KK+ODm+OCveOCq+ODryzjg47jg5bjgqoNCivjgqLjgqrjgq0s44Of44OE44KkDQor44Oe44K544Of44OALOODiOODouODkuOCsw0KK+OCquODgSzjg57jgrXjgqTjg4ENCivjgrnjgrrjgq0s44Kx44Oz44K4DQor44K544Ku44Ok44OeLOOCseODs+OCpOODgQ0KK+ODleOCuOODr+ODqSzjgrvjgqTjg6QNCivjgr/jg4rjg5ks44Of44OE44Om44KtDQor44OI44OALOOCouODhOOCtw0KK+ODhOODnOOCpCzjg6TjgrnjgqoNCivjgrnjgq7jgr8s44Oe44K144OO44OqDQor44Ki44OA44OBLOOCseOCpOOCvw0KK+ODleOCuOOCpCzjg57jgrXjgq0NCivjgrnjgqzjg6Ljg6os44OS44Ot44K3DQor44Ok44K544OALOODiuOCquODkuOCsw0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jg6bjgq0NCivjgr/jgqzjg58s44Oe44K144OrDQor44OI44Of44Ok44OeLOODpuOCpuOCuA0KK+ODj+ODjeODgCzjg6Tjgrnjg6bjgq0NCivjgqrjgrbjgq0s44K/44Kx44K3DQor44Kq44Kw44OpLOODpOOCueODpuOCrQ0KK+ODhuODqeOCteOCrSzjg47jg5bjg6QNCivjg4Tjg4Hjg6Qs44Ko44OE44KzDQor44Kq44Kr44OALOODhuODq+OCqg0KK+OCouODmSzjg47jg5bjg6bjgq0NCivjgqLjg5ks44Of44OE44KoDQor44Oi44Oq44Ov44KtLOOCs+OCpuOCpOODgeODreOCpg0KK+ODj+ODpOODjizjgrHjg7Pjgr8NCivjg4jjg5/jg4rjgqws44K444Ol44OzDQor44K544K644KtLOODn+OCrQ0KK+OCq+OCv+OCruODqizjgrXjg4jjgrcNCivjgqLjg4/jg6ks44OP44Ok44OIDQor44Ob44K3LOODiuODiuOCsw0KK+OCpOOCt+OCq+ODryzjgr/jg4Tjg6QNCivjgrfjg6Ljg6Djg6ks44Oo44K344OS44K1DQor44Ov44Kt44Oi44OILOODn+ODpuOCrQ0KK+OCq+ODr+ODhizjgr/jgqvjgrcNCivjgqLjg5bjg6njgqvjg68s44Kr44K644Kq44OfDQor44Oo44K344K/44KxLOOCv+OCq+OCtw0KK+OCpOOCt+ODgCzjg57jgrXjg6bjgq0NCivjg5vjg7Pjg4As44OI44K344Ot44KmDQor44K344K/44OeLOODqOOCt+OCqg0KK+ODjuOCsOODgSzjgr/jgrHjgrcNCivjg5/jgrrjgqQs44Ki44Ok44KqDQor44Ki44Oz44OJ44KmLOODiuOCquODleODnw0KK+ODqOODjeOCt+ODnizjg4rjg4Tjg58NCivjgqLjgq3jgr8s44K444Ol44Oz44KzDQor44Km44KoLOOCouODhOOCtw0KK+OCueOCrizjgrPjgqbjgqTjg4ENCivjg4rjgqvjgrjjg54s44Oe44OqDQor44Kr44K144Kq44KrLOODiOOCt+ODkuOCsw0KK+ODjuODgCzjg4bjg4Tjg5Xjg58NCivjg57jg4Tjgrbjg68s44Kz44Km44Kk44OB44Ot44KmDQor44Ov44K/44OZLOOCv+ODhOOCqg0KK+OCouOCpOOCtuODryzjgrHjgqTjgrjjg63jgqYNCivjgqTjg6/jgrUs44K344OzDQor44Kz44KsLOOCouOCreODkuOCsw0KK+ODkuOCrOOCt+OCv+ODiyzjg5Ljg4fjg5Xjg58NCivjgqTjgrHjg4As44OI44K344OkDQor44Ki44Kt44OK44KrLOODpOOCueODj+ODqw0KK+ODleOCuOOCvyzjgqvjgrrjg6QNCivjg6Tjg57jgqrjgqss44OS44K144K/44KrDQor44Ov44OBLOOCu+ODhOODpA0KK+OCpuOCqOODjizjgrHjg7Pjgr/jg63jgqYNCivjgqbjgrfjgq0s44Kr44K644Kk44OBDQor44Ok44Oe44Oi44OILOODj+ODq+ODkuOCsw0KK+OCq+ODiOOCpizjg57jgrXjg4jjgrcNCivjg4rjgqzjgqQs44K/44OA44OS44OtDQor44OV44Kv44OALOOCouODpOOCsw0KK+ODiuOCq+OCv+ODiyzjgqjjg58NCivjg5Ljg6njgrXjg68s44OK44Ks44KzDQor44Of44Ok44K244KtLOODnuOCteODqw0KK+ODhuODqeOCt+ODnizjg6Djg43jgqvjgroNCivjgqLjg6njgqQs44OB44KsDQor44K/44OK44KrLOOCt+ODs+OCpOODgQ0KK+OCq+ODjeOCsyzjgr/jgqvjgqLjgq0NCivjgrXjg4jjgqYs44OG44OE44K4DQor44OK44Oq44K/LOOCt+ODpeOCpuOCpOODgQ0KK+ODiuOCrOOCt+ODnizjgrjjg6Xjg7PjgqTjg4Hjg60NCivjgrXjgqvjg44s44OI44K344KqDQor44Of44Km44OpLOOCteODiOOCtw0KK+ODpOODnuOCsOODgSzjgrHjgqQNCivjgqrjg4fjg6ks44OK44Kq44OI44K3DQor44Ki44OZLOOCouODhOOCtw0KK+OCs+ODgOODnizjgqvjgrrjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44OS44Ot44Om44KtDQor44Kq44K344OeLOODiOOCquODqw0KK+OCpOOCt+OCuizjg4Tjg4jjg6ANCivjgqvjg7Pjg5Djg6Tjgrcs44Om44Kt44KqDQor44Kq44Kq44Kr44OvLOODkuODreODpuOCrQ0KK+ODkuOCqOODgCzjgr/jgrHjg5LjgrMNCivjgqTjg47jg57jgr8s44OS44Ot44OfDQor44Oe44Kt44K/LOODiOOCt+ODpA0KK+OCrOODiuODjyzjgr/jgqvjg6bjgq0NCivjg4/jg6Tjgqvjg68s44OS44Ot44Om44KtDQor44Ki44Kr44OM44OeLOODhuODhOODpA0KK+ODoOODreOCq+ODryzjg57jgrXjg47jg6oNCivjgqrjg44s44Kx44Kk44K544KxDQor44Kt44Og44OpLOOCt+ODp+OCpuOCtA0KK+ODj+OCv+OCtuODryzjg6TjgrnjgrMNCivjg5Xjgrjjgr8s44Oe44K144KtDQor44Km44Ko44OALOODgOOCpOOCueOCsQ0KK+ODpOODnuODjuOCpuODgSzjgqTjgrXjgqoNCivjg5Xjg6vjgr8s44Oo44K344OS44OtDQor44Kq44Kv44Ok44OeLOOCseODs+OCpOODgeODrQ0KK+OCpOODiOOCpizjg5Xjg5/jgqoNCivjgqrjgrXjg4rjgqQs44K744Kk44Kk44OBDQor44Kz44K/44OLLOOCv+OCseOCtw0KK+OCquOCquODhOOCqyzjgr/jg4DjgqLjgq0NCivjg5Xjgq/jgrfjg54s44Kz44K544KxDQor44Kk44Kk44K644KrLOOCseODsw0KK+ODr+OCv+ODiuODmSzjg4bjg6vjgqLjgq0NCivjg6Ljg6rjgr8s44Kx44Oz44Kk44OB44OtDQor44Kr44OI44KmLOODkuODreOCrQ0KK+ODm+ODs+ODgCzjg4jjgrfjgqLjgq0NCivjgqvjg4jjgqYs44Ki44Kt44OO44OqDQor44Ki44K144OM44OeLOODpOOCueODkuODrQ0KK+OCouOCuuODnizjg57jgrXjgqoNCivjg4bjg6njgrXjg68s44Of44OE44KqDQor44Ki44Kr44K3LOODhOODjeOCqg0KK+OCq+ODiOOCpizjg4rjgqrjg4gNCivjgqrjg47jgrXjg4gs44K/44Kr44K3DQor44OK44Kr44Og44OpLOODkuODreODhOOCsA0KK+ODjuODoOODqSzjg5Ljg4fjg58NCivjgqTjg47jgqbjgqgs44Ko44Kk44Kk44OBDQor44OP44Ok44K3LOOCt+ODs+OCpOODgQ0KK+OCv+ODoOODqSzjgqzjgq8NCivjgrXjgqvjgqQs44K544Ko44OO44OWDQor44K544Ku44Og44OpLOODquODp+OCpg0KK+ODiOODn+ODpOODnizjgrHjgqQNCivjgqvjgq3jgrbjg68s44OI44K344Ki44KtDQor44OL44K344K/44OLLOOCt+ODp+OCpuOCpOODgeODreOCpg0KK+OCouOCteOCr+ODqSzjgrfjg7Pjg6QNCivjgqTjgrfjgrbjgq0s44K144OI44K3DQor44Oe44OE44Oi44OILOOCt+ODs+OCpOODgeODreOCpg0KK+ODiuOCrOOCqizjg4jjgrfjgqoNCivjgq3jg44s44Oq44KoDQor44Ki44OZLOOCv+OCueOCrw0KK+ODiCzjgrPjgqbjgrgNCivjg6Tjg57jgq0s44Kz44Km44Kk44OBDQor44Ki44Op44KkLOOCsuODsw0KK+ODpOODnuODgCzjgrHjgqTjgrgNCivjgqrjgq/jg6Djg6ks44Kr44K644KoDQor44OP44OpLOOCt+ODp+OCpuOCv+ODreOCpg0KK+ODpOODnuODouODiCzjgqvjg4Tjg5LjgrUNCivjg4rjgqvjg6Djg6ks44K344Oz44Kk44OB44Ot44KmDQor44Ki44Op44KkLOOCq+OCuuODpA0KK+OCpOOCseODiSzjg57jgrXjgr/jgqsNCivjgqTjg4jjgqYs44Kx44Kk44K4DQor44Kk44OI44KmLOODpuOCpuOCuA0KK+OCpuODquODpeOCpizjgqLjgq3jg6kNCivjgqbjg4Hjg6Tjg54s44K/44OA44K3DQor44Ko44OO44Oi44OILOODkuODreODn+ODgQ0KK+OCqOOCuuODqSzjg4jjgqrjg6sNCivjgqrjgqrjg4Tjgqss44Kx44Kk44K544KxDQor44Ko44OL44OjLOOCueOCueODoA0KK+OCouOCq+OCqizjgrHjgqTjgrnjgrENCivjgqrjgqrjg4vjgrcs44K344On44Km44K4DQor44Kr44Ks44OkLOOCpOODiuODsw0KK+OCq+ODnuOCvyzjgr/jgqvjg5Ljg60NCivjgqvjg6/jgqvjg58s44OO44OW44OS44K1DQor44K144K144KtLOODpOOCueODqOOCtw0KK+OCv+OCq+ODj+OCtyzjg4rjgqrjg5LjgrMNCivjgr/jg4As44Kz44Km44Kk44OBDQor44OL44K344OOLOODnuOCteODqOOCtw0KK+OCouOCteOCqizjg4rjgqrjgq0NCivjg4/jgrfjg6Ljg4gs44OK44Kq44KtDQor44OP44OD44OI44OqLOOCv+OCq+OCsw0KK+ODm+OCtyzjgr/jgqoNCivjg5vjg6rjgr8s44K344Oz44Kk44OBDQor44Oe44Ko44K+44OOLOODiuODq+ODkuODhw0KK+ODnuOCqOOCuOODnizjg5/jg47jg6sNCivjg5/jg6Tjgrbjgq0s44Om44Of44KzDQor44Ki44Op44KkLOODqOOCt+ODnw0KK+ODouODqizjgrPjgrnjgrENCivjg57jgqjjg4As44OS44Ot44K3DQor44Kq44OBLOOCseODsw0KK+OCouOCteOCr+ODqSzjg47jg6rjgqoNCivjgqbjgrXjg58s44Ki44OE44K3DQor44Kq44Kv44Ok44OeLOOCv+OCq+OCtw0KK+OCq+ODquODpCzjgr/jgqvjg5LjgrMNCivjgqbjgqjjg4As44OS44OH44Om44KtDQor44Kq44K/44OZLOOCseOCpOOCvuOCpg0KK+OCreODoOODqSzjgqTjgrXjg6ANCivjgq/jgrfjg4As44Oo44K344OP44OrDQor44Ki44Oe44OPLOOCs+OCpuOCuA0KK+OCs+ODs+ODiSzjg6jjgrfjgq0NCivjgrfjg5/jgros44K344On44Km44Kk44OB44Ot44KmDQor44K544K644KtLOOCt+ODpeOCpuOCs+OCpg0KK+OCueODsyzjgrnjg5/jgqoNCivjgr/jg4njgrPjg60s44OS44OI44K3DQor44OI44ON44K144KvLOOCpOOCteODoA0KK+ODiuOCq+ODoOODqSzjg5Ljg63jgrcNCivjg57jgrnjg4As44OS44Ot44KqDQor44Of44Ok44K244KtLOODn+ODj+ODqw0KK+ODqOOCt+ODiuOCrCzjgqLjgq3jg5LjgrUNCivjg6jjgrPjgqvjg68s44K/44Kv44OeDQor44OE44OB44OkLOODnuODpuODnw0KK+OCv+OCq+ODj+OCtyzjg57jgrXjg47jg6oNCivjgr/jg4rjg5ks44Oe44K144K4DQor44Kk44OI44KmLOOCseOCpOOCueOCsQ0KK+ODiuOCrOOCqizjgrfjg7PjgqTjg4ENCivjgrXjg4jjgqYs44K/44Kx44K3DQor44K/44OALOODiOODouODkuODrQ0KK+OCouOCreODouODiCzjgrfjg6Xjg7PjgrnjgrENCivjgr/jg6Djg6ks44Oe44Oi44OrDQor44K/44Og44OpLOOCq+OCuuODpuOCrQ0KK+OCquOCqyzjg5/jg4Hjg4/jg6sNCivjgrXjgq/jg6njgq4s44Kx44Oz44Kk44OBDQor44K544K644KtLOODkuODreOCtw0KK+ODouODquOCquOCqyzjgr/jg4DjgrcNCivjg6TjgrDjg4Es44Om44Km44K3DQor44Of44Ok44Oi44OILOOCteODiOOCtw0KK+OCt+ODqeOCq+ODryzjg5Ljg4fjgq0NCivjgqrjgqrjg4Tjgqss44OS44OH44KtDQor44Ok44Oe44Oi44OILOODiOODouODpOOCuQ0KK+ODiuOCq+ODnuODgSzjg6Tjgrnjg5Xjg58NCivjg6/jgqvjg4/jg6ks44Ok44K544KqDQor44Ki44KtLOOCv+OCq+OCtw0KK+OCv+OCreOCvyzjgqvjgrrjg5Ljg60NCivjgqLjg6njgqvjg68s44Kx44Kk44Kk44OBDQor44Oe44OE44KqLOOCs+OCpuOCuA0KK+ODgeODp+OCpizjg6bjgqbjgqTjg4ENCivjgq/jg63jg4As44K344Ky44OrDQor44Ok44Oe44K344K/LOOCv+ODreOCpg0KK+ODiOODouOCquOCqyzjgqjjg5/jgrMNCivjg4rjgqvjgqos44Ov44K/44OrDQor44Ki44K9LOODhuODq+OCq+OCug0KK+ODleOCr+ODgCzjg47jg5bjgr/jgqsNCivjgqLjgqrjgq0s44OS44OI44K3DQor44Kv44OrLOODkuOCteODiA0KK+ODoOODqeOCq+ODnyzjg6Tjgrnjg5Ljg60NCivjgq/jg63jg4As44K/44Kv44OkDQor44Of44Kr44OfLOOCouOCreODkuODrQ0KK+OCq+ODn+ODoOODqSzjg5Ljg63jg6bjgq0NCivjgq3jgr/jgrjjg54s44OK44Kq44KtDQor44Oe44Or44Ok44OeLOODqOOCt+ODkuOCtQ0KK+OCteOCv+OCsSzjgrHjg7PjgqTjg4ENCivjg6Ljg4bjgq0s44K/44Kx44K3DQor44OI44Of44K/LOODleOCrQ0KK+ODi+ODryzjg5Xjg5/jgrMNCivjgr/jgqvjg5Djgr/jgrEs44K344Ky44OO44OqDQor44Ki44K644OeLOODnuOCteODqw0KK+ODleODq+ODpCzjgrXjg4HjgrMNCivjg4rjgrks44Oo44K344OS44OtDQor44Kz44OqLOODnuODqg0KK+OCpOOCseODgCzjg57jgrXjg5Ljg60NCivjgrTjg4jjgqYs44Kz44Km44K4DQor44OV44Kv44OALOODkuODreODpuOCrQ0KK+OCueOCrOODj+ODqSzjgrjjg6Xjg7PjgrgNCivjgq3jg6Djg6ks44OI44K344OS44KzDQor44K/44Kr44K7LOODnuODqg0KK+ODi+OCt+OCquOCqyzjg6rjg6fjgqYNCivjg5Xjg6vjgqvjg68s44OG44OE44KqDQor44Kv44OJ44KmLOOCseODs+OCpOODgQ0KK+OCv+OCq+ODj+OCtyzjgrHjg7Pjg4gNCivjg6Tjg57jg6Ljg4gs44Oo44K344OS44OtDQor44Of44Ok44Oi44OILOODquODp+OCpuODmOOCpA0KK+ODjuOCvyzjg6bjgq3jg5Ljg60NCivjg4rjgqvjg6Djg6ks44K344OO44OWDQor44Ki44Kt44OQLOODn+ODpA0KK+OCpOODr+OCrSzjg57jgrPjg4gNCivjgqvjg4jjgqYs44K344ObDQor44Oi44Oq44Oi44OILOODnuOCteOCq+OCug0KK+ODiuOCq+ODoOODqSzjgqvjgrrjg4jjgrcNCivjg4rjgqvjg6Tjg54s44Kr44K644OkDQor44Kq44Kq44K/44OLLOOCt+OCsuODkuODrQ0KK+OCueOCruODpOODnizjg5/jg47jg6sNCivjgrnjg7Ms44OI44Oo44Om44KtDQor44Ok44Oe44Oi44OILOODkuODreOCtw0KK+ODm+ODs+ODiSzjg6bjgr/jgqsNCivjg4/jgqws44Kr44Kv44K4DQor44K344Kq44K244KtLOOCq+OCuuODkuOCsw0KK+ODleOCuOODjizjg5/jg47jg6sNCivjgqrjg44s44Kx44Oz44K4DQor44Ki44Oz44OJ44KmLOODqOOCt+OCqg0KK+ODpOODnuOCsOODgSzjg4jjgrfjgqLjgq0NCivjgq/jg63jg4As44K/44Kr44K3DQor44Km44OOLOODquODp+OCpuOCpOODgQ0KK+OCpOODiOOCpuOCv+ODiyzjgr/jgrHjg5LjgrMNCivjgqrjgqss44Ko44OE44OfDQor44Of44Km44OpLOODjuODluODpuOCrQ0KK+ODj+OCt+ODouODiCzjgqvjg4oNCivjgqjjg6Ljg4gs44Oe44Kz44OIDQor44Kz44KsLOODkuODreOCtw0KK+OCreODj+ODqSzjg5Ljg63jgrcNCivjg57jg4Tjg4As44OV44Of44K/44OADQor44Ok44Oe44OALOOCouOCreOCsw0KK+OCv+OCq+ODj+OCtyzjg6jjgqbjgqTjg4ENCivjg6Tjg4/jgr8s44OS44OH44KqDQor44K/44K244KtLOOCseOCpOOCvw0KK+ODpOODnuODouODiCzjg6rjg6XjgqbjgqTjg4ENCivjgr/jgqvjg4As44OS44Ot44OfDQor44OO44OALOODnuOCteODhOOCsA0KK+OCteOCpOODn+ODp+OCpizjgqvjgqrjg6sNCivjgrPjg5Djg6Tjgrcs44Ki44Op44K/DQor44OV44K444KtLOOCseODs+OCuA0KK+OCt+ODqeOCteOCqyzjg5Xjg5/jgqoNCivjgr/jgqvjg4/jgrcs44OI44Kq44OrDQor44Ok44OELOOCouODhOOCqg0KK+OCpuOCquOCv+ODiyzjg5Xjg5/jg5LjgrMNCivjgr/jg6Djg6ks44OI44K344OS44KzDQor44Oe44OE44KqLOOCteODiOOCtw0KK+ODiuOCq+OCtuODryzjgr/jgq/jg6QNCivjgq3jg4As44Om44Kt44KzDQor44K/44Oz44KyLOODhuODhOODreOCpg0KK+ODkuODreOCuyzjgrnjgrnjg6ANCivjg57jg4Tjgrfjg54s44Of44OB44OkDQor44Kq44Kr44OOLOOCteODiOODqw0KK+OCouOCquOCrSzjg6jjgqbjgqTjg4Hjg63jgqYNCivjg4/jgrvjgqzjg68s44Oq44Ol44Km44K4DQor44OL44K344Ob44OqLOODgeOCq+ODqQ0KK+OCpOOCt+OCuuOCqyzjgr/jgqvjg6QNCivjg4Tjg5zjgqQs44OS44OH44Om44KtDQor44Kk44K344OALOODnuOCteODqw0KK+ODj+OCt+ODouODiCzjgrXjg4jjg6sNCivjgrTjg4jjgqYs44K344Oz44K4DQor44Ki44Kt44Ok44OeLOODkuODreOCrQ0KK+ODn+ODhOODj+OCtyzjgrfjgrLjg6sNCivjgrTjgrfjg54s44Kr44K644KqDQor44OV44Kv44OALOODkuODreOCtw0KK+ODpOODnuOCt+OCvyzjg4rjgqrjg5Xjg58NCivjg4rjgqvjgrbjg68s44OS44K144K3DQor44OL44K344Kr44OvLOODkuODiOOCtw0KK+OCpOOCseOCpuODgSzjgqvjgrrjg6bjgq0NCivjgr/jgqzjg58s44K/44Kr44KqDQor44Kr44Ov44Kt44K/LOOCseODs+OCuOODreOCpg0KK+ODiuOCq+ODoOODqSzjgqzjgq8NCivjgrPjg57jgqQs44Kz44K544KxDQor44Ob44K344OkLOOCouODpuODoA0KK+OCueODn+ODiCzjg57jgrXjg5Xjg58NCivjg5vjgrfjg44s44Kr44K644KqDQor44OK44Kr44OkLOOCt+ODs+OCpOODgQ0KK+ODj+ODqSzjg5/jgrrjg5sNCivjg6Djg63jg6Tjg54s44Kr44K644OS44KzDQor44Oi44OqLOODkuODh+OCrQ0KK+OCt+ODqeOCpOOCtyzjg57jgrXjg5Ljg60NCivjg5Ljg6njg44s44Kz44Km44K4DQor44OP44K344Oi44OILOODpuOCpuOCsw0KK+OCouODmSzjgrjjg6Xjg7PjgrgNCivjgqTjgrfjgqvjg68s44Ki44Oq44Kr44OEDQor44Ki44K644OeLOODqOOCt+ODnw0KK+OCquOCquODhOOCqyzjg47jg5bjgqoNCivjgqTjg4jjgqYs44Kx44KkDQor44Kq44K344OeLOODgeOCq+OCqg0KK+OCs+OCtuOCpCzjgq3jg6jjg5Ljg60NCivjgqvjg6/jgqvjg58s44Oe44K144OI44K3DQor44OK44Kr44OOLOODoOODjeODkuOCsw0KK+OCpuOCuOODouODiCzjg57jgrXjg5LjgrMNCivjgq3jgrfjg4As44OS44OI44K3DQor44Kz44Kk44K644OfLOODjuODquOCsw0KK+ODiuOCpOODiOOCpizjg4jjgrfjg5Ljg60NCivjg6jjgrfjgrrjg58s44Oo44K344KtDQor44K544Ku44Oi44OqLOODiOOCt+ODkuODrQ0KK+OCouOCquOCrSzjg4jjg6Ljg4/jg6sNCivjgr/jgqvjg4/jgrcs44Kz44Km44Kk44OBDQor44Kk44KsLOODjuODquOCq+ODjQ0KK+OCq+ODr+ODkOOCvyzjg47jgr7jg58NCivjgrfjg5Djgr8s44OS44Ot44OS44OHDQor44OA44OzLOODnuODiuODnw0KK+OCv+OCsOODgSzjgqvjgrrjg5Ljg60NCivjg57jg4Hjg4As44OI44Oi44KqDQor44Ki44K344OALOODpuOCpuOCsw0KK+OCouODs+ODieOCpizjg4bjgqTjgrgNCivjg6Djg4jjgqYs44Kr44OE44OO44OqDQor44Kz44Ok44OeLOOCreODqOODiA0KK+OCueOCuuOCrSzjgrHjgqTjgqTjg4ENCivjg47jg6Djg6ks44K444Ol44OzDQor44Kk44OI44OkLOODnuOCteODiOOCtw0KK+ODgeOCq+OCquOCqyzjg4Tjg4jjg6ANCivjgrjjg7Pjg5Ys44Of44OB44Ok44K5DQor44Ki44OA44OBLOODnuOCteOCtw0KK+OCq+ODr+OCpCzjg6TjgrnjgrcNCivjg5/jg47jg68s44Kz44Km44Kk44OBDQor44Ki44K144OSLOODiOOCt+OCouOCrQ0KK+OCquOCquOCvyzjg6jjgrfjgqLjgq0NCivjgr/jg4rjgqss44Kt44Oo44K3DQor44Kt44OpLOODnuOCteOCtw0KK+ODpOODnuOCtuOCrSzjg5/jgqsNCivjg6Tjg57jgqbjg4Es44Of44OE44OrDQor44Ob44OD44K/LOODqOOCt+ODjuODqg0KK+OCouODqeOCq+ODryzjgrfjgrLjgqoNCivjgqrjgq/jg6Djg6ks44K444Ol44OzDQor44Kr44ON44KzLOOCpOOCv+ODqw0KK+OCouODpOODjizjgrPjgqbjgq0NCivjg4/jg6Tjgqvjg68s44OI44Oi44OK44OqDQor44Kk44OI44KmLOODnuOCteODkuOCsw0KK+OCquOCr+ODoOODqSzjg5LjgrXjg47jg6oNCivjgr/jg7Pjgrbjg68s44K/44OE44KqDQor44K144Kt44OOLOODqOOCt+ODkuODrQ0KK+OCq+ODr+ODj+ODqSzjg4jjgqrjg6sNCivjgr/jg6vjgqQs44Oo44K344KqDQor44Ki44Oq44Oi44OILOOCouODhOOCtw0KK+OCqOODk+OCsyzjg4jjg6Ljg4rjg6oNCivjg5Ljg44s44Kr44OE44OkDQor44Ok44Oe44OALOOCt+ODp+OCpuODqOOCpg0KK+OCquOCquODjizjgq/jg58NCivjgr/jgrHjgrfjgr8s44Om44Oq44KzDQor44OP44Ok44K3LOOCreODp+OCpuOCsw0KK+OCpOOCt+ODgCzjgrHjg7MNCivjgrfjgqrjg6Qs44K/44Kx44K3DQor44Ki44Oz44OJ44KmLOODjuODnOODqw0KK+ODnuODhOODkOODqSzjg57jgrXjg5Xjg58NCivjg4vjgrfjg4As44Oe44K144OrDQor44OK44Kr44Og44OpLOODnuOCteODjuODqg0KK+OCpOOCseODgCzjgrjjg6Xjg7MNCivjg4/jg6Tjg58s44OS44OH44KqDQor44K544K644KtLOOCt+ODp+OCpuOCvuOCpg0KK+OCquOCrOODryzjgqLjgq3jg6kNCivjgqTjgrfjgqvjg68s44OI44K344Ki44KtDQor44Ki44K144OfLOOCseODs+OCuA0KK+ODj+OCv+OCseODpOODnizjgr/jgqvjgrcNCivjg5vjg6rjg5/jgr4s44Kx44Kk44K544KxDQor44Oe44Or44K/44OLLOODgeODkuODrQ0KK+OCteODiOOCpizjgqLjgq3jgqoNCivjgrXjgqvjg4rjgqss44Kr44K644KqDQor44OK44Kr44Og44OpLOODiOODouODkuOCsw0KK+OCpOODiOOCpizjgqvjgqrjg6sNCivjg5Xjg6vjg4rjgqws44OP44Or44OS44KzDQor44OV44Kv44K344OeLOODnuOCteODiA0KK+ODn+OCuuOCrOODnyzjg6jjgrfjg6bjgq0NCivjgr/jgrHjgqbjg4Es44Of44OB44KqDQor44OI44Oq44Km44OfLOODn+ODjuODqw0KK+ODjeOCruOCtyzjgrfjgrLjgq0NCivjgrPjg6Tjg54s44Ki44Kt44OO44OqDQor44Kq44K344OeLOODiuOCueOCqg0KK+OCq+OCv+OCquOCqyzjgr/jgqvjgrcNCivjgr/jgq3jgrDjg4Es44OS44OH44OV44OfDQor44Kz44Oe44OELOOCq+OCuuOCqg0KK+ODpOOCrizjgr/jgqvjgrcNCivjgr/jgqvjgq4s44Oo44K344KqDQor44Oe44K544KkLOODhuODhOODreOCpg0KK+ODj+ODpOOCtyzjg5Ljg4jjgrcNCivjgqLjg43jgr/jgqQs44Oe44K144Om44KtDQor44Kt44OP44OpLOOCseODs+OCpOODgQ0KK+OCteOCpOODiOOCpizjgrfjgrLjgqoNCivjgq3jgr/jg6/jgq0s44Of44OB44OS44KzDQor44OO44Kw44OBLOODkuODreODn+ODgQ0KK+OCteOCq+OCsOODgSzjg6Ljg4jjgqQNCivjg4vjgrcs44Om44Kt44Of44OEDQor44Kk44Kx44OALOODhuODhOOCqg0KK+OCteODiOOCpizjgr/jgqvjgrcNCivjgqTjg57jgqQs44Oe44K144OS44OIDQor44Ok44Oe44OALOOCt+OCsuOCpOOCrw0KK+OCv+ODiuOCqyzjg6Tjgrnjg5LjgrUNCivjgqrjgqrjgrXjgrMs44Oe44Kz44OIDQor44Kz44Og44OtLOOCq+ODiuODoQ0KK+OCteOCpOODiOOCpizjg5Ljg4fjgq0NCivjgrnjgrrjgq0s44Kx44Oz44Kk44OBDQor44OV44OK44OI44Ks44OvLOODpuOCq+ODqg0KK+OCpOOCt+OCpCzjg4bjg6vjgqLjgq0NCivjg57jg4TjgqQs44OO44Oc44OrDQor44K544Ko44OS44OpLOODkuODiOOCtw0KK+ODkuODreOCv+ODiyzjg6jjgrfjgqoNCivjg5Ljgqzjgrcs44Kt44Oo44K3DQor44Kk44Og44OpLOOCouODhOOCsw0KK+OCouODmSzjg6Tjgrnjg47jg6oNCivjg6jjg43jgq/jg6ks44OO44OW44OI44K3DQor44Ov44K/44OK44OZLOODqOOCt+ODn+ODhA0KK+OCueOCrCzjg5Ljg63jgrcNCivjgrXjg44s44OS44Ot44K3DQor44K344OQLOODiOODouOCuA0KK+ODpOODnuOCsOODgSzjgrfjg6Xjg7PjgrgNCivjgq3jgrbjg68s44Oo44K344OS44OtDQor44Kr44K144Oe44KtLOODqOOCt+ODreOCpg0KK+OCreODoOODqSzjgrHjgqTjgrnjgrENCivjg4Tjg6vjg58s44Ki44Kt44OS44K1DQor44Ki44Kq44KtLOOCt+ODp+OCpuOCsw0KK+OCpOOCt+ODgCzjg6Ljg4jjgrcNCivjg6Ljg60s44Ki44Kt44KqDQor44Kq44Kv44Og44OpLOODkuODreODpuOCrQ0KK+OCv+OCq+OCrizjgrPjgqbjgrgNCivjgqTjgrHjg6Qs44Of44OB44KqDQor44OI44Of44Ok44OeLOOCq+OCuuODn+ODhA0KK+ODpOOCrizjgr/jgqvjgqoNCivjg4jjg5/jgq0s44OG44OE44Ot44KmDQor44OI44OO44Og44OpLOODn+ODjuODqw0KK+ODpOODhOOCuuOCqyzjg4jjgrfjg5Ljg60NCivjg5bjg54s44Kx44Oz44K344On44KmDQor44OK44Kr44K244OvLOODleODn+ODiOODog0KK+ODpOODnuOCtuOCrSzjg6jjgqbjgrMNCivjg57jg4Tjgrfjgr8s44K344OO44OWDQor44Kk44OALOOCt+ODsw0KK+OCueOCuuOCrSzjg6jjgrfjg5Ljg60NCivjg4rjgqvjg44s44Ok44K544OS44OtDQor44Kr44Ov44Kw44OBLOODnuOCteOCqg0KK+OCv+OCq+ODj+OCtyzjg4Tjg4jjg6ANCivjgqTjgrfjg4As44K344On44Km44Kk44OB44Ot44KmDQor44Km44OALOOCteODiOODqw0KK+ODleOCuOODr+ODqSzjg6rjg6XjgqbjgrgNCivjgrPjgqTjg4cs44OI44K344K/44KxDQor44OE44Kr44OALOODmOOCpOODj+ODgQ0KK+ODkuODqeODpOODnizjg5Ljg63jgrcNCivjgqbjg4Hjg4jjg58s44Ki44Kt44OpDQor44Kk44Oe44OP44OpLOODkuODreODqOOCtw0KK+OCpuOCqOODgCzjg5Ljg4jjgrcNCivjgrXjgrXjgqvjg68s44Oo44K344OS44OtDQor44Ki44Kk44Kr44OvLOOCv+OCq+OCouOCrQ0KK+OCpuOCqOOCrSzjgr/jgqvjg6jjgrcNCivjg4rjgqvjg6Tjg54s44Oo44K344OfDQor44Kq44Kq44K144OvLOODqOOCt+OCq+OCug0KK+OCv+OCq+OCquOCqyzjg4jjgrfjg6bjgq0NCivjg6/jg4As44OE44Ku44KqDQor44Kk44OM44K644KrLOOCr+ODi+ODkuOCtQ0KK+OCv+ODiuOCqyzjgrPjgqbjgq3jg4ENCivjgr/jgrHjg4As44Kt44Oo44K/44KrDQor44Ok44Oe44OALOODjuODnOODqw0KK+ODpOODiuOCrizjg5Ljg4fjg5Ljg60NCivjgr/jgrHjgrfjgr8s44Oo44K344K/44KxDQor44OL44K3LOOCv+ODhOODkuOCsw0KK+OCquOCquOCv+OCsSzjg6bjgqbjgqTjg4ENCivjg4vjgr/jg4rjgqQs44K344Ky44KqDQor44Ob44Oz44OeLOODjuODluODkuOCsw0KK+ODiuOCq+ODjizjg6jjgrfjg47jg6oNCivjg5/jg6Tjgrfjgr8s44OS44OH44KtDQor44Km44Ko44OOLOOCuOODpeODs+OCuOODreOCpg0KK+ODkOODkCzjgrXjg4Djg6ANCivjg5/jg6Tjgrbjgq0s44Oe44K144KqDQor44Kv44OL44KkLOODhOODiOODoA0KK+OCs+ODkOODpOOCtyzjgrHjgqTjgrgNCivjg57jgrnjg4As44OS44Ot44K3DQor44K/44Kr44OP44K3LOOCs+OCpuOCuA0KK+ODhOOCq+OCqizjg5Ljg63jgq0NCivjgqvjg6/jg6Djg6ks44K/44Kr44Om44KtDQor44Kr44Ov44OQ44K/LOOCs+OCpuOCvuOCpg0KK+OCouOCq+OCteOCqyzjgrjjg6Xjg7PjgrMNCivjgqTjgqTjg4As44OG44OE44OkDQor44K344Op44OP44OeLOOCv+ODgOOCtw0KK+ODiOOCrOODryzjg5Ljg63jg6bjgq0NCivjgqTjg4jjgqYs44OS44OH44Kk44OBDQor44Kq44Kr44OZLOODnuOCteOCtw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jgqoNCivjgrXjgqvjg5As44OI44K344OS44OtDQor44OS44Ot44K144OvLOODkuODiOOCtw0KK+ODiuOCq+ODoOODqSzjgrfjgrLjg6sNCivjg6TjgrnjgqQs44K144OI44K3DQor44OS44Op44K/LOOCq+OCuuODkuOCtQ0KK+OCreOCv+OCrOODryzjgrfjg7PjgqTjg4ENCivjgqLjg57jg44s44OG44OE44OkDQor44OE44K444Og44OpLOOCqOODhOODreOCpg0KK+OCq+ODr+OCteOCrSzjgrPjgqbjgqTjg4ENCivjgqbjgqjjg6Djg6ks44K/44Kx44K3DQor44Og44Op44Kr44OfLOOCt+OCsuODig0KK+OCpOODjuOCpuOCqCzjgq3jg6jjgrcNCivjg4/jgrws44Kx44OzDQor44OI44K344OS44OtLOOCreODn+ODkuODrQ0KK+OCs+ODkOODpOOCtyzjgrfjgrLjg6bjgq0NCivjgqTjg44s44K/44OA44OO44OqDQor44Ki44K144OOLOODpuOCpuOCpOODgQ0KK+ODouODqizjgrPjgqbjgrgNCivjgqTjg4rjgrbjg68s44Kz44Km44Oo44KmDQor44Kz44OQ44Ok44K3LOODhuODq+ODkuODrQ0KK+OCteOCq+OCrSzjg6jjgrfjg5LjgrMNCivjgqbjg4Hjg6Tjg54s44K744Kk44K4DQor44Oe44OK44OZLOODpOOCueOCrQ0KK+OCquOCquODpOODnizjgrHjg7PjgrgNCivjgrfjg5/jgros44Oe44K144OS44KzDQor44Oo44ON44Og44OpLOODkuODreODpuOCrQ0KK+ODkOODqeODgCzjgqLjgq3jg5LjgrMNCivjg5Xjg6vjgr7jg44s44Oo44K344Kr44K6DQor44OV44K444Oi44OILOOCq+OCuuOCouOCrQ0KK+OCteODjizjg57jg6Ljg6sNCivjgqvjg6/jg44s44Ko44Kk44KzDQor44Ob44K344Kr44OvLOOCs+OCpuOCuA0KK+OCteOCteODouODiCzjg6Ljg4jjg4TjgrANCivjgrnjg4njgqYs44Oe44K144OIDQor44K144OI44KmLOOCv+OCq+OCqg0KK+ODj+ODpOOCtyzjg5Ljg63jgrcNCivjg5Djg5As44OS44OH44OO44OqDQor44OQ44OQLOODkuODiOOCtw0KK+OCquOCquODpOODjSzjg5Ljg4fjgqoNCivjg4rjgqzjgrXjg68s44Ok44K544Om44KtDQor44K144Kr44Oi44OILOODnuOCteODj+ODqw0KK+OCouOCquOCrSzjgrvjgqTjgrgNCivjg6Djg4rjgqvjgr8s44Oe44K144OP44OrDQor44Kk44OI44KmLOOCt+ODs+OCpOODgQ0KK+OCq+ODr+ODkOOCvyzjg5Ljg63jg6bjgq0NCivjgrnjgq7jg6Ljg4gs44Of44OB44KqDQor44OQ44Oz44OJ44KmLOOCuOODpeODsw0KK+ODjuODoOODqSzjgqLjgq3jg5LjgrMNCivjgrPjg7Pjg44s44Oo44K344Of44OBDQor44Kr44Ov44KkLOOCq+OCuuODjuODqg0KK+OCpuOCqOODjizjg47jg5bjg6bjgq0NCivjg4/jg6njg4As44OS44Ot44K3DQor44Kr44OO44KmLOOCouOCreODqQ0KK+OCquOCquODj+OCvyzjg5/jgq3jgqoNCivjgrnjg4njgqYs44K/44Kr44K3DQor44Oe44OE44OALOODkuODiOOCtw0KK+OCpOOCseOCrOODnyzjg57jgrPjg4gNCivjgrfjg6njgqQs44Kx44Oz44K344OzDQor44K144OI44KmLOOCv+OCq+OCouOCrQ0KK+OCteOCq+OCpCzjgr/jgrHjgrcNCivjgqrjgq0s44OI44K344Om44KtDQor44Kr44Ov44Og44OpLOOCseODs+OCuA0KK+ODpOODnuODgCzjg5Ljg63jgqoNCivjgqTjg4jjgqYs44Ki44Kt44OS44K1DQor44Kk44Kr44OfLOODj+ODq+OCqg0KK+OCouOCuuODnuOCqizjg5Ljg4fjg4gNCivjg5Xjgrjjg6Djg6ks44OI44Kq44OrDQor44Kt44K/44Og44OpLOODpuOCpuOCuA0KK+ODiOOCrOODnyzjg4jjgrfjg58NCivjgrPjgrnjgrIs44Oe44K144KqDQor44K744KtLOODkuODreODpuOCrQ0KK+OCq+ODr+OCt+ODnizjg4jjg6Ljg6bjgq0NCivjgr/jgqvjgqQs44Om44Km44K0DQor44Ki44Kt44Ok44OeLOODpuOCreOCqg0KK+OCueOCuuOCrSzjg4jjgrfjg5Xjg58NCivjg4rjgqvjg6Djg6ks44K344Ol44Km44Kk44OBDQor44OL44K344OOLOOCv+OCq+ODpuOCrQ0KK+ODn+ODpOOCsSzjgr/jgqvjg5Ljg60NCivjg6jjg43jg6Ljg4Es44Oi44OI44K4DQor44K/44Kr44K344OeLOOCt+OCsuOCqg0KK+OCteOCq+OCpCzjg4jjgrfjg47jg6oNCivjgqrjgqrjg4Tjgq0s44Ki44Kt44OI44K3DQor44Kr44Ov44K144KtLOODn+OCrQ0KK+ODi+OCt+OCq+ODryzjgr/jgq3jgqoNCivjgrXjgq/jg6njgqQs44Kx44Oz44K4DQor44K544KuLOODkuODh+OCouOCrQ0KK+ODm+ODquOCs+OCtyzjg4jjgqrjg6sNCivjg6Ljg6os44Kr44OE44OkDQor44OP44Kx44OALOOCv+OCq+OCtw0KK+ODi+OCpOODgCzjgrfjg7PjgqTjg4ENCivjgq3jgq/jgr/jg4ss44K144OI44K3DQor44K/44Kx44OO44K344K/LOOCt+ODpeOCpuODmOOCpA0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jg58NCivjgr/jg4rjg5ks44Oe44K144KzDQor44Kk44Kx44Oi44OILOODjuODquOCsw0KK+ODnuODhOODpOODnizjg6bjgq3jgrMNCivjg6jjgrfjgrbjg68s44Oo44K344OS44K1DQor44Ki44Kr44KkLOODn+ODjuODqw0KK+ODi+OCt+OCquOCqyzjgrvjgqTjgqTjg4Hjg63jgqYNCivjgr/jgrHjg6Ljg4gs44OO44OW44KqDQor44OI44Kv44OALOODqOOCt+OCqg0KK+OCquOCquODouODqizjg6Tjgrnjg5Ljg60NCivjgqvjg4jjgqYs44K/44OE44K3DQor44Kr44Ov44OILOODleODn+OCqg0KK+ODnuOCqOODgCzjgr3jgqbjgqTjg4ENCivjgq/jg63jgq0s44Oe44K144Oo44K3DQor44Kk44Kk44OALOOCr+ODn+OCsw0KK+OCs+ODpOODiuOCrizjg4/jgrjjg6ENCivjg57jg4Tjg4rjgqws44Ki44OE44K3DQor44Kk44OI44KmLOODpOOCueOCouOCrQ0KK+ODpOODnuODouODiCzjgr/jg4TjgqoNCivjg4Tjg4TjgqQs44OI44K344Ki44KtDQor44K/44OK44KrLOODn+ODjuODqw0KK+ODleOCr+OCt+ODnizjgrfjg6Xjg7PjgqTjg4ENCivjgrPjgrjjg54s44Oo44K344OS44KzDQor44OL44K344OALOODn+ODhOOCsA0KK+ODi+OCt+ODpOODnizjgrjjg6Xjg7PjgrMNCivjgrnjgrrjgq0s44OA44Kk44K544KxDQor44Kk44Kk44K444OeLOOCv+OCq+OCtw0KK+OCv+ODnuOCpCzjgrnjgrnjg6ANCivjgrPjg7Pjg44s44Kq44K144OgDQor44Of44Oe44K5LOODiOOCt+ODn+ODhA0KK+ODqOODjeODj+ODqSzjgrvjgqTjgqTjg4ENCivjg6jjgrfjg4As44Kr44K644OfDQor44OV44Kv44OALOODkuODreOCtw0KK+OCteODiOOCpizjg5Ljg63jgqLjgq0NCivjg6Tjg57jg6Ljg4gs44OS44Ot44K3DQor44Kt44K/44K0LOODjuODnOODqw0KK+OCteODs+ODjizjg4jjg6Ljg4jjgrcNCivjg6TjgrXjgqss44OI44K344KqDQor44Og44Op44K/LOOCt+OCsuODnw0KK+ODiuOCq+ODouODiCzjgqLjgq3jgrcNCivjgrXjgq/jg6njgqQs44Kr44K644K344KyDQor44OP44Op44OALOODqOOCt+ODouODiA0KK+OCteODiOOCpizjgqLjg4TjgqoNCivjgrXjgqTjg4jjgqYs44Of44OE44KqDQor44K944ONLOOCseOCpOOCsw0KK+ODj+OCueODnyzjgqLjgq3jg5Ljg60NCivjg5Ljg6njgr8s44Kr44K644OS44OtDQor44Ok44OK44Ku44K144OvLOODjuODluOCqg0KK+OCv+ODgeODkOODiizjg6jjgqbjgrMNCivjgqTjg4jjgqYs44Oe44K144K644OfDQor44OP44OpLOOCouOCreODqQ0KK+OCteOCpOODiOOCpizjg4jjgrfjg5Ljg60NCivjgqTjg4jjgqYs44Kz44Km44Kk44OBDQor44K/44OK44KrLOOCq+OCuuODpA0KK+OCpuODgeODpOODnizjgrfjgrLjg6jjgrcNCivjgqvjgqzjg68s44Kx44Kk44Kk44OBDQor44K/44Kt44K244OvLOODpuOCpuOCuOODsw0KK+OCt+ODiuOCrOODryzjgq/jg4vjg5LjgrMNCivjgqvjgq3jg4/jg6ks44K344Ot44KmDQor44K544Ks44OM44OeLOOCuOODpeODs+OCpOODgQ0KK+OCq+ODoeOCpCzjg4jjgrfjg6QNCivjgqrjgq/jg4Qs44Kr44K644OI44K3DQor44Kk44K344Kr44OvLOOCt+ODp+OCpuOCt+ODpeODsw0KK+OCueOCruOCpuODqSzjg6Ljg6rjgqoNCivjgqbjg6Hjg4As44OS44K144K3DQor44Of44OK44Kw44OBLOOCpOODgeODreOCpg0KK+ODm+OCt+ODjizjgr/jgrHjg5LjgrMNCivjg4vjgrfjg6Tjg54s44K744Kk44K4DQor44K/44Kx44OALOOCv+ODhOODpA0KK+OCteOCq+OCpCzjgq3jgqTjg4Hjg63jgqYNCivjg6Tjg4Tjg4As44K/44Kx44K3DQor44Oi44Oq44K/LOOCseOCpOOCvuOCpg0KK+OCteOCreODnizjg4rjgqrjg5Ljg60NCivjgqLjg6njgqQs44Om44K/44KrDQor44K/44Kx44OALOOCv+OCq+OCsw0KK+OCv+ODoOODqSzjg6jjgrfjgrMNCivjgqrjgqvjg4As44OP44Or44OfDQor44Ok44Oe44ONLOODgeODj+ODqw0KK+ODiuOCq+ODoOODqSzjg6bjgqbjgqTjg4ENCivjgqLjgqrjg44s44K/44OE44KqDQor44K544Ku44Ok44OeLOOCq+ODjeODqOOCtw0KK+ODleODquODj+ODqSzjgqvjgrrjgqoNCivjg6/jgr/jg4rjg5ks44OO44OW44OIDQor44Kr44OELOODhOOCq+OCtQ0KK+OCteODj+ODqSzjg5Ljg63jg58NCivjgqvjgq/jgr8s44Ki44Kt44OS44KzDQor44Ko44OO44Oi44OILOOCv+OCq+OCtw0KK+ODr+OCv+ODiuODmSzjg57jgrPjg4gNCivjg6Tjg5bjgq0s44Oe44K144OS44OtDQor44Ki44Oe44K144KtLOOCs+OCpuOCpOODgQ0KK+ODqOOCs+OCvyzjg57jgrXjg5Ljg4cNCivjg5vjg6rjg47jgqbjg4Es44OI44K344Ki44KtDQor44Kt44OP44OpLOODhOODjeOCqg0KK+OCv+OCseODgCzjg4Tjg6vjg57jg4QNCivjgqTjg43jg4os44Oe44K144OS44KzDQor44OK44KrLOOCq+OCuuODkuODrQ0KK+OCpOODgeODpOODiuOCrizjgr/jg4DjgrcNCivjgrnjgrrjgq0s44K344On44Km44Kx44KkDQor44OK44Or44K344OeLOODiuOCquOCreODgQ0KK+OCt+ODqeOCpOOCtyzjgr/jgqvjgrcNCivjgqrjg44s44OI44Kq44OrDQor44Oo44K344Kq44KrLOOCq+OCuuODpA0KK+ODnuODhOOCpuODqSzjg5Ljg63jgqvjgroNCivjg5Xjgrjjgr8s44OG44OE44K4DQor44Kk44Ov44OfLOODiOODqOODj+ODqw0KK+ODiOOCr+OCt+OCsizjgrHjgqTjgrgNCivjgr/jg4rjg4As44Kt44Of44OS44KzDQor44Kq44Kr44OOLOOCq+OCuuODnuOCtQ0KK+ODouODgeOCuuOCrSzjgr/jgqvjg6bjgq0NCivjgr/jgqvjgrfjg54s44Kz44Km44Kk44OBDQor44OI44Oq44Km44OfLOOCq+OCuuOCqg0KK+OCv+OCq+ODnyzjg6jjgrfjgr/jgqsNCivjg4/jg6Tjgrss44OI44Oi44Om44KtDQor44K/44Kr44OP44OpLOOCqOOCpOOCuA0KK+OCreODsyzjg57jgrXjg6bjgq0NCivjgrnjgq7jg6Tjg54s44OS44OH44OS44OtDQor44Kt44K/44K444OeLOOCs+OCpuOCuA0KK+ODi+ODg+OCvyzjg6jjgrfjg47jg5YNCivjgqrjgqss44Om44Kt44OO44OWDQor44Kq44Kq44OP44K3LOODkuODreOCtw0KK+ODj+ODqeODgCzjgq3jg4/jg4Hjg63jgqYNCivjg6/jgq3jgrXjgqss44OS44Ot44K3DQor44Kk44Ov44OK44KsLOOCseOCpOOCpOODgQ0KK+OCq+ODr+OCt+ODqizjg5/jg4TjgqoNCivjgqTjg4rjg6Ljg4gs44Oe44K144Kr44K6DQor44K144OvLOODkuODreODpuOCrQ0KK+OCv+OCseODgCzjgr/jgrHjg5LjgrMNCivjgqTjgqTjg4As44Oo44K344OS44OIDQor44Kr44K444OOLOODnuODouODqw0KK+ODn+ODryzjg4/jg6vjgqvjgroNCivjg5Xjgq/jgqQs44Kx44Kk44Kk44OBDQor44K544Ko44OK44KsLOODiOOCquODqw0KK+OCr+ODi+OCqOODgCzjg6bjgr/jgqsNCivjgq3jgr/jgqrjgqss44Kr44K644OS44KzDQor44Kk44OJLOODiOOCquODqw0KK+OCquOCr+ODgCzjg6rjg6fjgqbjgrnjgrENCivjg5vjg6rjgqvjg68s44Kr44OE44KtDQor44K544Ko44Oi44OILOODhuODhOODpA0KK+ODqOOCs+ODpOODnizjg4jjgrfjg5Ljg60NCivjg5Xjgrjjg6Ljg4gs44OI44Of44KqDQor44Kt44K7LOOCt+ODp+OCpuOCuA0KK+ODi+OCt+ODoOODqSzjg5Ljg4fjg5LjgrMNCivjgr/jgqvjg4As44Kz44Km44K4DQor44OE44Kr44OALOODnuOCteOCq+OCug0KK+ODiOODqOODgCzjgqjjgqTjgrgNCivjgrXjg44s44OI44Kq44OrDQor44OL44K344OALOODnuOCteODkuOCsw0KK+OCquOCquODouODqizjgqTjg4Hjg63jgqYNCivjgqrjgrbjgq0s44OI44Kq44OrDQor44Kk44K344Oe44OrLOOCt+OCsuODpOOCuQ0KK+OCv+ODiuOCqyzjgrPjgqbjgqTjg4ENCivjgqvjgrfjg6/jg5Djg6ks44OO44Oc44OrDQor44Ki44K144OOLOODpOOCueOCq+OCug0KK+ODkuODqeODjizjgrfjg7PjgrgNCivjgr/jg4vjg6Tjg54s44OG44OE44Ot44KmDQor44Km44Oh44OQ44Ok44K3LOOCseODs+OCuA0KK+OCquODoOODqSzjg5Ljg4fjgqoNCivjgrXjgqvjgrDjg4Es44Kt44Oo44Kr44K6DQor44Kq44Kr44Og44OpLOOCt+ODp+OCpuOCtA0KK+ODpOODnuODouODiCzjgqLjgq3jg6kNCivjgqjjg4HjgrQs44Kz44Os44Ki44KtDQor44K144Ov44OALOODpOOCueODkuOCsw0KK+ODqOOCs+OCpCzjgqvjgrrjg6bjgq0NCivjgq3jgr/jg6Djg6ks44Oq44KrDQor44Ok44K5LOOCq+OCquODqw0KK+OCv+OCq+OCqizjgrjjg6Xjg7PjgrMNCivjgqvjg4Tjg6njgqrjgqss44K344Oz44K+44KmDQor44OE44Oc44KkLOODnuOCteODkuOCsw0KK+ODhOOCuCzjgrfjgrLjgqoNCivjgr/jgqvjg4/jgrcs44Ki44Kt44KqDQor44K544Ku44KtLOOCv+OCq+OCrQ0KK+OCv+OCseOCpuODgSzjgr/jgqvjg5Ljg60NCivjgqvjg58s44OI44K344Kr44K6DQor44Kz44OQ44Ok44Kr44OvLOODpOOCueODkuOCsw0KK+OCouOCquODiCzjgrjjg4TjgrgNCivjgr/jg4As44Oo44Oq44KzDQor44OS44OA44KrLOODjuODquOCsw0KK+ODi+OCt+ODoOODqSzjg4HjgqjjgrMNCivjgqjjg5Djg6ks44OE44ON44KqDQor44Of44K644Oi44OILOOCq+OCuuODpA0KK+OCueOCuuOCrSzjgq3jg6jjgrcNCivjgrfjgqTjg4os44OP44Or44Oo44K3DQor44K344Kq44K/LOODn+ODhOODkuOCsw0KK+ODiuOCq+ODj+ODqSzjgrPjgqbjgqTjg4ENCivjgrTjgqbjg4As44Kt44Oo44K3DQor44OV44Or44K/LOODnuOCteODkuOCtQ0KK+ODnuOCueODouODiCzjgrjjg6Xjg7PjgqTjg4ENCivjg4rjgqvjgqzjg68s44Kt44Kk44OBDQor44Kk44OJLOOCv+OCq+ODpuOCrQ0KK+ODqOODquODleOCuCzjg47jg5zjg6sNCivjg57jg4Tjg6Ljg4gs44Ki44Kt44OpDQor44K144Kk44OI44KmLOOCr+ODi+OCouOCrQ0KK+ODiuODhOOCpCzjg5Ljg4fjgq0NCivjgqbjgqrjg44s44Kr44Kq44OqDQor44K/44OK44K0LOOCseOCpOOCsw0KK+OCv+ODnuOCrOODryzjg47jg6rjg5Ljg4gNCivjgqrjgqss44K/44Kr44K3DQor44OV44Kv44K344OeLOODnuOCteODqw0KK+OCquOCq+ODgCzjg6bjgqbjgrMNCivjgq3jg47jgrfjgr8s44OS44OH44OS44KzDQor44K344Of44K6LOOCouOCreODqQ0KK+OCs+ODkOODpOOCtyzjgq3jg6jjgr/jgqsNCivjg47jg4As44Oe44K144K3DQor44Kr44OO44KmLOODhOOCsOODkuODrQ0KK+OCq+OCuOOCquOCqyzjgqLjgq3jg5Ljg4gNCivjgqrjgqrjg44s44K/44Kr44K3DQor44Kq44Kq44OP44K3LOODnuOCteODpuOCrQ0KK+OCs+ODkOODpOOCtyzjg6bjgqbjgqTjg4ENCivjgrPjgqTjgrrjg58s44Kk44Kv44KqDQor44K/44OK44KrLOODkuODiOOCtw0KK+ODleOCr+ODgCzjg4jjgrfjg6QNCivjg4rjgqvjgrbjg68s44OO44Oc44OrDQor44Ob44Oq44Kr44OvLOOCteODiOOCtw0KK+OCpuODgeODpOODnizjg6Ljg6rjg5Ljg60NCivjgqTjgrrjgr/jg4ss44K444Ol44Oz44Kk44OBDQor44K/44Kt44KkLOODiOOCt+OCsw0KK+OCv+OCq+OCuyzjg47jg5bjg4TjgrANCivjg57jgrnjgrbjgq0s44K/44Kr44K3DQor44Ki44Oz44OJ44KmLOODiOOCquODqw0KK+OCq+OCv+OCruODqizjgrfjgrLjgqTjg4Hjg63jgqYNCivjg6Ljg6rjg6Tjg54s44OI44K344OkDQor44K144OI44KmLOOCouOCreODkuODrQ0KK+ODkuODq+OCq+ODryzjgrXjg4jjgrcNCivjgqbjgqjjg4As44Oe44K144KqDQor44OK44KrLOODiOOCt+OCv+OCqw0KK+ODn+ODpOOCtuOCrSzjg5Ljg63jgrcNCivjgqrjgqrjgq/jg5ws44Oe44K144K/44KrDQor44K/44OB44Kr44OvLOODnuOCs+ODiA0KK+ODr+OCv+ODiuODmSzjg5/jg4Hjg4rjgqoNCivjgqLjgrXjgqvjg68s44K744Kk44K4DQor44Kr44Ov44OP44OpLOODnuOCteODpA0KK+OCquOCteODgCzjg4/jgrjjg6ENCivjgrXjgqvjgqQs44OP44Or44KqDQor44Kv44Oq44Ok44OeLOOCteODiuOCqA0KK+OCteOCpOODiOOCpizjgrPjgrrjgqgNCivjgrnjgq3jgqzjg6ks44Oo44K344KzDQor44Ki44Kx44OSLOOCr+ODn+OCsw0KK+ODj+ODpOOCtyzjgq3jg6jjg58NCivjgqvjg6/jgr8s44OK44Kq44OfDQor44K344Oe44Ks44KtLOODn+OCteOCqA0KK+ODm+ODqizjgqvjgrrjg6gNCivjg47jg6Djg6ks44Oo44K344KzDQor44OI44Og44OpLOOCt+ODs+OCpOODgQ0KK+OCr+ODnCzjgq3jg6jjgrMNCivjg4vjgrfjg6Ljg4gs44OO44Oq44OS44OIDQor44Oo44K344OALOOCs+OCpuOCuA0KK+OCteOCrizjgr/jgqvjg6jjgrcNCivjgqvjg7Pjg44s44Kx44Kk44KzDQor44Ok44OW44OOLOODnuOCteOCrQ0KK+ODpOOCueODiuOCrCzjg5Ljg63jg6bjgq0NCivjg5Ljgqzjgrfjgqbjgqgs44OS44Ot44OS44OIDQor44Kz44K144KtLOODnuOCteODpuOCrQ0KK+ODiuOCqyzjg4jjgrfjg5Ljg60NCivjgqrjg44s44OI44Kq44OrDQor44Og44Op44K/LOOCs+OCpuOCvuOCpg0KK+OCt+ODp+OCpuOCuCzjg5Ljg4fjgqLjgq0NCivjgqvjg6/jg6Ljg4gs44Ki44Kt44OS44OtDQor44Ko44K144KtLOODnuOCteODqw0KK+OCqOOCpOODieODoSzjg5Ljg4fjgqvjgroNCivjgrnjgrrjgq0s44Om44K/44KrDQor44Oi44OI44Ok44OeLOODpOOCueOCq+OCug0KK+ODj+ODnuODgCzjgqLjgq3jg6kNCivjgrPjgrfjgqvjg68s44OI44K344KqDQor44OP44Ok44K3LOODnuOCteODj+ODqw0KK+ODpOODnuOCtuOCrSzjg6bjgq3jg6QNCivjg57jg4Tjg6Ljg4gs44Oo44K344Oe44K1DQor44Kq44OOLOOCt+ODs+OCpOODgQ0KK+ODj+ODiuODryzjgr/jg4DjgrcNCivjg4/jgrvjgqzjg68s44Kx44Kk44K4DQor44Of44Ok44K/LOODnuOCteOCouOCrQ0KK+OCreOCv+OCtuODryzjg57jgrXjgqvjgroNCivjgqjjg7Pjg4ks44Ok44K544OS44KzDQor44OK44Ks44K144KrLOODqOOCt+OCouOCrQ0KK+ODqOOCt+ODouODiCzjg5Ljg63jg5/jg4QNCivjgq/jg63jgrXjg68s44Kx44Oz44K144KvDQor44Oe44Or44Ok44OeLOODqOOCt+ODj+ODqw0KK+ODiuOCq+ODi+OCtyzjgqvjgrrjg6bjgq0NCivjg6jjgrfjg4As44Kx44Kk44Kk44OBDQor44OV44Kv44K/LOODkuODh+ODpA0KK+ODleOCuOOCteODryzjgqvjg4Tjg5LjgrMNCivjgrXjgq/jg54s44Oo44K344OP44OrDQor44OP44K344Oi44OILOOCq+ODhOODnw0KK+ODr+ODgCzjg57jgrXjgqrjg58NCivjg4vjgrfjgrbjgq0s44OO44OW44KqDQor44OV44Kr44Ks44OvLOOCqOODhOOCsw0KK+OCouOCquODpOODnizjg57jgrXjgqvjgroNCivjgq3jg6jjgr/jg4ss44OE44OI44OgDQor44OI44Oq44OP44OpLOODkuODreODpuOCrQ0KK+ODiuOCrOODjizjgr/jgrHjgrcNCivjgqrjgqrjgqws44Om44K/44KrDQor44K144Kr44OOLOOCv+OCq+OCtw0KK+ODn+ODhOODj+OCtyzjg57jgrXjg5Ljg60NCivjgqLjg6rjg6Ljg4gs44K744Kk44KzDQor44Oo44K344Oe44OELOOCv+OCq+OCouOCrQ0KK+OCouOCquODpOOCrizjgqLjgq3jgqoNCivjg6Tjg57jg4As44Oe44K144OS44KzDQor44Og44Op44K/LOODpuODn+OCsw0KK+OCpOODquOCqCzjgrfjg7PjgqTjg4ENCivjg6Tjg57jgrbjgq0s44Oe44K144OO44OqDQor44Ko44K+44KoLOOCseOCpOOCpOODgQ0KK+OCteODiOOCpizjg4Tjg6jjgrcNCivjgqrjgqrjgr8s44Kt44Oo44K3DQor44Kk44OO44KmLOODouODquODkuODiA0KK+OCq+ODiSzjgr/jg4Tjg6QNCivjgrXjgrXjgq0s44Oo44K344OS44OtDQor44Kr44Kx44OSLOODqOOCt+ODkuODrQ0KK+ODhOODgeODpCzjgqvjgrrjg6QNCivjg57jgrXjgqrjgqss44K344On44Km44K+44KmDQor44K544K644KtLOODpOOCueOCqg0KK+ODiOODjSzjg4jjg5/jg5Ljg60NCivjgqrjgqrjg6/jg4As44OO44Oq44Ki44KtDQor44Km44Ko44KtLOODnuOCteODiA0KK+ODnuOCqOODgCzjgqvjgrrjg47jg6oNCivjg5Xjgrjjgqrjgqss44Ok44K544KzDQor44Km44Op44OZLOODiuOCquOCsw0KK+ODiuOCq+ODoOODqSzjg6bjgqbjgqTjg4ENCivjgqTjgrXjgqss44Oe44K144Ki44KtDQor44OL44K344K144KrLOODjuODluOCqg0KK+OCpOODr+OCtSzjgqjjgqTjgqTjg4ENCivjgr/jgq/jgrfjg54s44Oo44K344KqDQor44OE44Kr44Oi44OILOODleODn+OCqg0KK+OCteOCr+ODnizjgr/jgrHjg5LjgrMNCivjg5Ljg6fjgqbjg4njgqYs44OS44Ot44K3DQor44OK44Kr44Og44OpLOOCs+OCpuOCpOODgeODreOCpg0KK+OCteOCteOCrSzjg57jgrXjgqoNCivjg5Xjgq/jg6/jgq0s44OI44K344OkDQor44Kq44Kv44Og44OpLOODnuOCteODqOOCtw0KK+OCv+OCq+ODj+OCtyzjg4jjg6jjg5LjgrMNCivjgrfjg63jgqQs44Ok44K544K3DQor44Kz44Kr44OWLOOCv+ODgOOCqg0KK+ODjuOCsOODgSzjg5Ljg63jgq0NCivjgr/jgqvjg4Qs44OS44Ot44Kr44K6DQor44Oo44ON44K244OvLOODhuODhOODpA0KK+OCteOCq+OCpOODgCzjg6Tjgrnjg5Ljg60NCivjgrPjgqTjgrrjg58s44Of44OE44OkDQor44Oe44Ko44OALOOCq+ODhOODpuOCrQ0KK+ODnuODs+ODgCzjgr/jg4DjgrcNCivjgrPjgrDjg6ws44Kk44OB44Ot44KmDQor44Ki44Kt44Oi44OILOODqOOCt+ODiA0KK+OCv+OCseODoOODqSzjg4jjg6LjgqLjgq0NCivjgrnjgrrjgq0s44Kz44Km44K4DQor44Ok44Oe44Km44OBLOOCuOODpeODs+OCpOODgQ0KK+OCteOCqOOCrSzjg6bjgqbjgrgNCivjg6/jgqvjg5Djg6Tjgrcs44OO44OW44Om44KtDQor44Ki44Kt44Oi44OILOODnuOCteODkuOCsw0KK+ODqOOCt+ODgCzjg5Ljg63jgqLjgq0NCivjgrXjg4jjgqYs44OE44ON44KqDQor44Kq44K344OeLOODpOOCueODiOOCtw0KK+OCteOCteOCrSzjg57jgrXjg5Ljg4cNCivjgqLjg6njgqQs44Ki44Kt44OS44OHDQor44Ov44K/44OK44OZLOODhuODhOOCuA0KK+OCpOOCseODouODiCzjg6bjgq3jgqoNCivjgq3jgq/jgqQs44Kz44Km44Kk44OBDQor44OS44Op44K/LOODkuODreODnw0KK+ODnuOCreOCpuODgSzjgr/jgq/jg6QNCivjgrPjgrvjgq0s44K344Ot44KmDQor44OL44K344Kr44OvLOODpOOCueODkuODrQ0KK+OCpOOCrOODqeOCtyzjg5Xjg5/jgqoNCivjgr/jg4rjgqss44K/44OA44OE44ONDQor44Ob44Oz44OALOOCqOOCpOOCpOODgQ0KK+ODj+ODg+OCvyzjg5Ljg63jg58NCivjg4/jg6njg4As44OS44K144Kr44K6DQor44Oo44K344OALOOCquOCteODoA0KK+ODr+OCv+ODiuODmSzjg5Ljg63jgrcNCivjgrPjgqTjgrrjg58s44Oq44On44Km44Kk44OBDQor44Kz44K544OALOODiuOCquODkuOCtQ0KK+ODn+ODpOOCsSzjg57jgrXjgqLjgq0NCivjg5Xjgrjjg6Qs44K/44Kx44K3DQor44Oe44K144KtLOOCouOCreODqQ0KK+OCteOCr+ODqeOCpCzjg5Ljg4fjgq0NCivjg4vjgrfjg6Tjg54s44Oo44K344KqDQor44Kr44Ov44K7LOOCv+OCq+ODjuODlg0KK+OCquOCq+OCtuODryzjgrfjg7Pjg6QNCivjgqLjgrXjgqss44OI44K344Om44KtDQor44Kq44Ks44OvLOODjuODluOCouOCrQ0KK+ODiuOCrOOCteODryzjg4/jgrjjg6ENCivjgq3jgr/jg6/jgq0s44Oe44K144KqDQor44K344Of44K6LOODnuOCteODjuODqg0KK+OCs+ODkOODpOOCtyzjg57jgrXjg4/jg6sNCivjgr/jg4Hjg5Djg4os44K344Ky44KzDQor44Kk44Oe44OK44KrLOOCteODiOODnw0KK+OCpuOCt+ODnuODqyzjgrHjg7MNCivjgqrjgqvjg6Djg6ks44Kx44Oz44Kk44OBDQor44Ok44Oe44OOLOODpuOCpuOCpOODgQ0KK+OCreOCv+ODoOODqSzjg5/jg4HjgqvjgroNCivjgr/jgqvjg57jg4Qs44OS44OH44KtDQor44OI44Kt44Kr44OvLOOCq+OCuuODkuODhw0KK+OCpOOCseODgCzjg4jjgrfjg6QNCivjgqTjgrfjg4As44OO44OW44K/44KrDQor44K/44OL44OP44OpLOODn+ODhOOCrg0KK+OCquOCrOODryzjg5Ljg4jjgrcNCivjgr/jg4rjgqss44K344On44Km44K544KxDQor44OK44KrLOOCseOCpOOCsw0KK+ODiOODouOCtuODryzjg47jg5bjgrMNCivjg4/jg6njg4As44K744OE44KzDQor44OP44OK44OW44K1LOOCouODhOOCsw0KK+ODiOOCr+OCquOCqyzjgqLjg4TjgrcNCivjg5njg4Pjgrfjg6cs44Oe44K144OS44OtDQor44OK44Kr44K344OeLOOCq+ODhOODkuOCsw0KK+OCouOCteOCr+ODqSzjg6Tjgrnjg5LjgrMNCivjg5/jg6Tjg4fjg6ks44OS44Ot44K3DQor44K544K644KtLOODiuOCquOCrQ0KK+ODqOOCt+ODoOODqSzjg6jjgrfjg5LjgrUNCivjgrXjg68s44Oe44K144Om44KtDQor44OK44Kr44Ok44OeLOOCs+OCpuOCpOODgQ0KK+ODkuODqeOCtuODryzjg6jjgrfjg5Ljg60NCivjg5Xjgrjjg6/jg6ks44Oe44K144Ki44KtDQor44K544Ks44Ov44OpLOODiOOCquODqw0KK+OCv+ODi+OCrOODryzjg57jg6rjgqoNCivjg5vjg7Pjg4As44Ok44K544OIDQor44OP44OK44KkLOOCs+OCpuOCpOODgQ0KK+OCqOOCsOODgSzjgrXjgq/jg6HjgqQNCivjgqvjgrXjgqQs44Oo44Km44Kk44OBDQor44Kv44Ot44K144OvLOODkuODreOCtw0KK+OCv+OCuOODnizjgrfjg7MNCivjgrXjg4jjgqYs44K/44OE44K3DQor44OS44OT44OOLOODhOODjeOCqg0KK+OCueOCrOODpCzjgrfjg6XjgqYNCivjgq/jg6njgr8s44Kz44Km44Kk44OBDQor44Oe44K544OALOODj+ODq+OCrQ0KK+OCueOCruODj+ODqSzjgrHjgqTjgrMNCivjgqvjg43jgrMs44Oo44K344Om44KtDQor44Kr44OELOOCv+OCq+OCtw0KK+ODnuODqyzjg5Ljg63jg6QNCivjgr/jg4rjgqss44OS44OH44Kr44K6DQor44OI44K344Kq44KrLOOCouOCreODqQ0KK+OCt+OCsuODjizjg6rjg6fjgqbjgrgNCivjg6Tjg57jg6Ljg4gs44K144OI44OfDQor44OK44Kr44Ks44OvLOOCq+ODhOODnw0KK+ODpOODnuOCsOODgSzjg5Ljg63jgq0NCivjgqvjg6/jg6Ljg6os44Oo44K344OS44OtDQor44Og44Op44Ok44OeLOODnuOCteODqw0KK+OCt+ODpeOCpizjg4rjgqrjg6QNCivjgqTjgrHjg4As44OS44Ot44Om44KtDQor44Kz44OA44OeLOOCv+ODhOOCqg0KK+OCq+ODiOOCpizjgrXjg4jjg6sNCivjg4/jgq/jg4Hjg6fjgqYs44Kk44K144KqDQor44Kr44Ky44OzLOOCq+OCquODqw0KK+ODhuOCuuOCqyzjgrPjgqbjgrgNCivjgr/jg4vjgrDjg4Es44Oe44K144K/44KxDQor44OG44Op44OALOODiuOCquOCrQ0KK+OCq+ODiOOCpizjgr/jgqvjgq0NCivjg4rjgqTjg4jjgqYs44K/44Kx44KqDQor44Kk44OI44KmLOOCv+OCq+OCtw0KK+OCs+ODkOODpOOCtyzjgrHjg7PjgrgNCivjgr/jg4rjgqss44OS44OH44OI44K3DQor44K144K144KtLOODr+OCv+ODqw0KK+ODm+ODs+ODgCzjg5/jg4Hjg4gNCivjg5Ljgqjjg4As44Ki44Kt44KqDQor44K144Kr44KkLOOCq+OCuuODjuODqg0KK+OCq+ODhOODnyzjgr/jgqvjgrcNCivjgr/jgrHjg5ks44K/44Kr44K3DQor44OO44Kw44OBLOODhOODqOOCtw0KK+ODr+ODgCzjgqjjgqTjgrgNCivjgqbjgqjjg6Tjg54s44Kx44Oz44K4DQor44Km44Ko44OOLOOCv+OCq+ODkuODrQ0KK+OCv+ODs+OCtCzjg5Ljg4fjgqoNCivjg6Djg6njgqvjg58s44Kr44OE44OfDQor44Ki44Op44KtLOOCs+OCpuOCvuOCpg0KK+OCouODqeOCuyzjg57jgrnjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44K344Ot44KmDQor44Ov44K344KqLOODkuODreODpuOCrQ0KK+ODr+OCseOCuOODnizjg6jjgrfjg5Xjg58NCivjgrPjgqTjgrrjg58s44Kx44Oz44K544KxDQor44OI44Kv44Ok44OeLOODiOOCt+ODleODnw0KK+ODiOODn+ODiuOCrCzjgrHjg7PjgrgNCivjgq3jgrfjg4As44K744Kk44K4DQor44Kx44OzLOODn+ODgeODkuODrQ0KK+ODkuODreOCuyzjg6jjgrfjg6bjgq0NCivjgqbjg4Hjg6Tjg54s44Kx44Oz44Kk44OBDQor44Ov44Kr44K544KuLOOCv+ODgOOCv+OCqw0KK+OCpOOCt+OCsOODrSzjgqvjg4Tjg47jg6oNCivjg4vjgrfjg6Djg6ks44OS44Ot44Kr44K6DQor44Kk44OO44Oe44K/LOOCq+OCquODqw0KK+ODhOODhOODnyzjg4jjgrfjg5LjgrMNCivjgqTjg6rjgqgs44Ki44OE44K3DQor44K144Kk44OI44KmLOOCq+OCuuOCqg0KK+OCpuOCqOODjizjgrfjg7PjgqTjg4ENCivjg5vjg7Pjg4As44Kq44K144OgDQor44Kt44K/44Og44OpLOOCq+ODqOOCsw0KK+ODpOODnuOCrOODnyzjg4rjg58NCivjg4rjgqvjg4vjgrcs44Oe44K144OS44OtDQor44Km44Ko44OALOOCv+OCq+OCtw0KK+ODkuODreOCvyzjg6/jgr/jg6sNCivjgqbjgqjjg4As44OI44Oi44KtDQor44Kk44Kx44OALOODkuODreOCtw0KK+ODj+ODiuODluOCtSzjg6jjg6rjg47jg5YNCivjgrPjg4Djg54s44OS44Ot44Ki44KtDQor44Kq44Kr44Oi44OILOODiuOCquOCrQ0KK+OCueOCuuOCrSzjg5Ljg63jg5/jg4QNCivjgrnjgrrjgq0s44OS44K144KoDQor44OL44Kk44Kv44OpLOOCouOCreODkuODrQ0KK+ODi+OCt+ODgCzjg5Ljg63jg5LjgrUNCivjgqrjgrXjg5ks44K444Ol44Oz44Kk44OBDQor44Ob44K944Kr44OvLOOCseODs+OCpOODgQ0KK+OCpOODnuOCqizjg6jjgqbjgqTjg4ENCivjg5Xjgrjjgr8s44Oo44K344OO44OWDQor44Kq44Kq44OOLOODqOOCt+ODjuODqg0KK+ODiuOCq+ODpOODnizjg6jjgrfjgqoNCivjg4/jg6Tjgrcs44Kx44Kk44K4DQor44K544Ks44OP44OpLOOCq+OCuuODjuODqg0KK+ODj+ODqeODgCzjgqTjg4Hjg63jgqYNCivjgqLjg5ks44K344Ol44Oz44Kk44OBDQor44Ki44OZLOOCseOCpOOCpOODgQ0KK+OCouODmSzjgrHjg7PjgqTjg4ENCivjgqLjg4Djg4Es44K/44OA44OS44OtDQor44Ki44Kk44OQLOODgOOCpOOCueOCsQ0KK+OCouOCq+ODkOODjSzjgqvjgrrjgqoNCivjgqLjg7Pjg4njgqYs44Ko44Kk44ObDQor44Ki44Oz44OJ44KmLOODiOODouODpuOCrQ0KK+OCouOCquOCrSzjg57jgrXjgrcNCivjgrfjgqTjgq0s44OS44Ot44K3DQor44Ki44Op44KkLOOCt+ODp+OCpuOCpOODgQ0KK+OCouODqeOCpCzjg4jjgqrjg6sNCivjgqLjg6njgqQs44K/44Kx44K3DQor44Ki44Op44Kr44OvLOOCpOOCteOCqg0KK+OCouODqeOCrSzjgr/jg4Tjg6QNCivjgqLjg6njgq0s44K/44Kr44Om44KtDQor44Ki44Op44KtLOOCreODqOODj+ODqw0KK+OCouODqeOCrSzjgqvjgrrjgqLjgq0NCivjgqLjg6njg57jgq0s44Oe44Kt44KqDQor44Ki44Op44OhLOOCv+OCq+ODjQ0KK+OCouODquODoOODqSzjgr/jgrHjgrcNCivjgqLjgrXjg58s44K344Ol44Km44Kk44OBDQor44Ki44K644OeLOODkuODreODqOOCtw0KK+ODkOODkCzjg5Ljg4fjgqvjgroNCivjg5Djg5As44Oi44OI44KzDQor44OB44OQLOODjuODluOCouOCrQ0KK+ODgeODkCzjgrPjgqbjgqTjg4ENCivjg4Hjg44s44OI44Oi44Om44KtDQor44OA44Kk44Kz44KvLOODqOOCt+ODjuODlg0KK+ODh+OCsOODgSzjg5Ljg63jg47jg6oNCivjg4fjgq0s44Oo44K344Ki44KtDQor44OJ44KkLOODjuODluODkuOCsw0KK+OCqOODgOOCteODryzjg5Ljg4fjgq0NCivjgqjjgrDjg4Es44Oo44K344OK44OqDQor44Ko44Oz44OJLOOCq+OCuuODrQ0KK+OCqOODs+ODiSzjg57jgrXjgqoNCivjgqjjg6rjgqvjg68s44Om44Km44KzDQor44OV44K444KkLOODkuODreOCtw0KK+ODleOCuOODouODiCzjg5Ljg4fjg4gNCivjg5Xjgrjjg6Ljg4gs44Oe44Om44OfDQor44OV44K444OOLOODqOOCt+OCouOCrQ0KK+ODleOCq+ODj+ODqSzjgqLjgq3jg6kNCivjg5Xjgqvjg58s44OK44Kq44KtDQor44OV44Kr44Ok44OeLOODjuODluODpuOCrQ0KK+ODleOCr+ODgCzjg57jgrXjg6bjgq0NCivjg5Xjgq/jgqQs44Oe44K144OS44KzDQor44OV44Kv44Oi44OILOODkuODreOCtw0KK+ODleOCr+ODiuOCrCzjg57jgrXjg5LjgrMNCivjg5Xjgq/jgrfjg54s44OO44OW44KqDQor44OV44Kv44K344OeLOOCq+OCuuOCv+OCqw0KK+ODleODiuOCrSzjgrXjgqvjgqgNCivjg5Xjg4rjgq0s44Ok44K544OV44OfDQor44OV44Or44OkLOOCpOOCteOCqg0KK+OCtOOCpuODj+ODqSzjg6jjgrfjg5LjgrUNCivjgrTjg4jjgqYs44K344Oz44Kk44OB44Ot44KmDQor44OP44KsLOOCv+ODgOOCtw0KK+ODj+OCruODjizjgqvjgrrjg60NCivjgqTjg4Hjg6Djg6ks44Oe44Kz44OIDQor44OP44OeLOODiuOCquOCrQ0KK+ODj+ODiuODgCzjg57jgrXjg6jjgrcNCivjgqTjg5As44Kt44Oo44K144OADQor44OP44K744OZLOOCq+ODhOODmOOCpA0KK+ODj+OCu+OCrOODryzjg4jjgrfjg63jgqYNCivjg4/jgrfjg6Ljg4gs44OO44Oq44Ki44KtDQor44OP44K3LOODiuOCquOCouOCrQ0KK+ODj+OCv+ODjizjg47jg5bjg5Ljg60NCivjg4/jg4jjg6os44K344Oz44K/44Ot44KmDQor44OP44Ok44K3LOOCouOCreODkuOCsw0KK+ODj+ODpOOCtyzjgrPjgqbjgrgNCivjg5Ljg4Djgqss44Kr44K644KzDQor44OS44Ks44K3LOOCreODqOOCv+OCqw0KK+ODnuODjizjg6jjgrfjgqvjgroNCivjg5Ljg6njgqQs44Oo44K344K/44KrDQor44Kr44Of44K144KtLOODiOOCt+ODkuOCsw0KK+ODkuODqeODjizjg57jgrXjg5LjgrMNCivjg5Ljg63jgqQs44OS44OH44KqDQor44OS44Ot44Oi44OqLOODqOOCt+ODj+ODqw0KK+ODkuODreOCteODryzjgqLjg4TjgrcNCivjg5Ljg63jgrXjg68s44Kq44K144OgDQor44OS44Ot44K7LOOCt+ODs+OCpOODgQ0KK+ODm+ODs+ODgCzjg6jjgqYNCivjg5vjg7Pjg54s44OS44Ot44Ok44K5DQor44Ob44Oq44OZLOOCt+OCsuODqw0KK+ODm+ODquOCqCzjg5Ljg63jgrcNCivjg5vjg6rjgrDjg4Es44Om44Km44Kk44OBDQor44Oe44OE44Oi44OILOODiOOCt+ODkuODhw0KK+ODm+ODqizjg4/jgrjjg6ENCivjg5vjg6os44OS44Ot44OfDQor44Ob44K344Kr44OvLOODjuODquODpuOCrQ0KK+ODm+OCveOCq+ODryzjgrnjgrnjg6ANCivjg5Ljg6fjgqbjg4njgqYs44Oe44K144OP44OrDQor44Kk44OQ44Op44KtLOODpuOCpuOCpOODgQ0KK+OCpOODgeOCquOCqyzjgqLjg4Tjg5Xjg58NCivjgqTjgrHjg4As44K/44Kr44OS44OIDQor44Kk44Oe44KkLOODqOOCt+OCv+OCqw0KK+OCpOODnuODoOODqSzjgr/jgqvjgqLjgq0NCivjgqTjg57jg4rjgqss44OI44Oi44OkDQor44Kk44OK44OALOODkuODreOCtw0KK+OCpOODiuODoOODqSzjgrPjgqbjgqTjg4ENCivjgqTjg47jgqbjgqgs44K144OI44OrDQor44Ki44Op44KkLOODiOOCt+ODnw0KK+OCpOODjuOCpuOCqCzjgqjjgqTjgrgNCivjgqTjgrfjgqQs44Kt44Oo44OfDQor44Kk44K344KkLOODkuODreOCtw0KK+OCpOOCt+OCq+ODryzjg5/jgq3jgqoNCivjgqTjgrfjgqvjg68s44Ki44Kt44OpDQor44Kk44K344Kq44KrLOODnuOCs+ODiA0KK+OCpOOCveODgCwNCivjgqTjg4jjgqYs44Oe44K144OS44OtDQor44Kk44OI44KmLOODgeOCuuOCsw0KK+OCpOODiOOCpizjgqvjgrrjg5Ljg4gNCivjgqTjg4jjgqQs44K/44OA44K3DQor44Kk44OI44KmLOOCt+ODs+OCuA0KK+OCpOODr+OCpCzjgqLjgq3jg6kNCivjgqTjgrrjg5/jg6Qs44Oe44K144OO44OqDQor44Kr44K444K/LOOCteODiOOCtw0KK+OCq+ODoeOCpCzjgrfjg7PjgrgNCivjgqvjg4rjgqQs44Oe44K144OS44OtDQor44Kr44OK44K244K3LOODjuODquOCsw0KK+OCq+ODjeOCsyzjgr/jgrHjgrcNCivjgqvjg43jgrMs44Oe44Kz44OIDQor44Kr44OO44KmLOOCpOOCr+OCqg0KK+OCq+ODquOCpizjgrfjgrLjgrgNCivjg4Tjgq3jgrgs44K/44Kr44OO44OqDQor44Kr44K144Oe44OELOODkuODreODpuOCrQ0KK+OCq+OCv+OCruOCtyzjg57jgrXjgrcNCivjgqvjgr/jg6Tjg54s44Ki44Kt44OpDQor44Kr44K/44Ok44OeLOODhuODhOODoeOCpA0KK+OCpOOCveODgCzjgr/jgqvjgqoNCivjgqvjgr/jg6Tjg54s44Kz44Km44K4DQor44Kr44OI44KmLOOCteODhOOCqg0KK+OCq+ODiOOCpizjg57jgrPjg4gNCivjgqvjg4jjgqYs44Ok44K544K3DQor44Kr44OI44KmLOODgeOCqA0KK+OCq+ODhOODnuOCvyzjgr/jgq/jg6QNCivjgqvjg6/jg5ks44Om44Kt44OO44OWDQor44Kr44Ov44OZLOOCouODhOOCtw0KK+OCq+ODr+ODmSzjg6Djg43jg5Ljg4gNCivjgqvjg6/jg4As44Kx44Oz44K544KxDQor44Kr44Ov44OALOOCouOCreODkuOCsw0KK+OCq+ODr+ODouODiCzjgqLjgq3jgqoNCivjgqvjg6/jgr/jg4ss44K744Kk44KtDQor44Kt44Of44K644KrLOODn+ODgeODrQ0KK+OCreODoOODqSzjgqvjgrrjg6QNCivjgq3jg6Djg6ks44Oq44On44Km44K/44Ot44KmDQor44Kt44OO44K344K/LOODpOOCueODkuODrQ0KK+OCreOCteOCqyzjg5Ljg4fjgqoNCivjgq3jgrfjg4As44K/44Kr44KzDQor44Kt44K/44Ks44OvLOOCreODp+OCpuOCpOODgQ0KK+OCreOCv+ODoOODqSzjg6jjgrfjg5Ljg60NCivjgq3jgr8s44OS44OH44OIDQor44Kt44Oo44OOLOODnuOCteODpuOCrQ0KK+OCs+ODkOODpOOCtyzjgqvjg4Tjg47jg6oNCivjgrPjg4Djg54s44Kr44K644OK44OqDQor44OJ44OSLOODkuODqeODpOOCuQ0KK+OCs+ODj+ODqSzjg57jgrXjgq0NCivjgrPjgqTjg4cs44OI44K344OkDQor44Kz44Kk44OvLOODkuODp+OCpuOCuA0KK+OCs+OCpOOCuuODnyzjg4/jg6vjgrMNCivjgrPjg57jg4Qs44Ok44K544K/44KrDQor44Kz44Oh44OALOODkuODreODpuOCrQ0KK+OCs+ODs+ODiSzjg5/jgq0NCivjgrPjg7Pjg4ks44OI44Kq44OrDQor44Kz44OL44K3LOOCuOODpeODs+OCuA0KK+OCs+OCteOCqyzjg5Ljg63jgqLjgq0NCivjgrPjgr/jgq0s44K444Ol44OzDQor44Kz44K/44OLLOODkuODh+OCrQ0KK+OCs+ODiOODluOCrSzjg5Ljg63jgrcNCivjgr/jgrfjg60s44Kr44K644OO44OqDQor44Kv44Oc44K/LOODpuOCreODnuOCtQ0KK+OCr+ODnCzjg4bjg4Tjg6QNCivjgq/jg4njgqYs44Oe44K144OIDQor44Kv44Oe44Ks44KkLOODpOOCueODkuODrQ0KK+OCr+ODreOCuyzjgqrjgrXjg6ANCivjgq/jgrfjg54s44Ok44K544KzDQor44Kv44K344Of44OkLOOCs+OCpuOCrQ0KK+OCr+ODhOOCq+OCsSzjgrfjg7PjgqTjg4ENCivjgq/jg6/jg44s44K344Ol44Km44K+44KmDQor44Oe44OE44OK44KsLOODkuODh+OCrQ0KK+ODnuOCqOODgCzjg6bjgqbjgrgNCivjg57jgqjjg4/jg6ks44K144OI44K3DQor44Ko44OO44KtLOODiOOCt+ODpA0KK+ODnuOCqOOCq+ODryzjgrPjgqbjgrjjg63jgqYNCivjg57jgqjjgq0s44Ki44Ok44KzDQor44Oe44Oz44OOLOOCt+ODs+OCrg0KK+ODnuODjizjgqjjgqTjgrgNCivjg57jg7Pjgr/jg4ss44Oo44Km44Kk44OBDQor44Oe44Or44Ok44OeLOODpOOCueODkuODrQ0KK+ODnuOCuyzjgqvjgrrjg5LjgrMNCivjg57jgrnjgrbjg68s44Oe44K144KqDQor44Oe44OE44OALOODn+ODhOODjuODqg0KK+ODnuODhOOCpCzjgqTjg4TjgrMNCivjg57jg4TjgqQs44Oe44K144OIDQor44Oe44OE44Oi44OILOODpOOCueOCouOCrQ0KK+ODnuODhOODoOODqSzjgqvjgrrjgqLjgq0NCivjg57jg4Tjg44s44OO44Oq44Om44KtDQor44Oe44OE44K244KtLOODrOOCpOOCsw0KK+ODn+OCrSzjgrfjgrLjg6sNCivjg5/jgrPjg4As44OG44Or44Om44KtDQor44Of44Og44OpLOOCq+OCuuOCv+OCqw0KK+ODn+ODoOODqSzjgrfjgrLjg47jg5YNCivjg5/jg4rjg58s44K144OI44K3DQor44Of44OK44OfLOODjuODluODkuODrQ0KK+ODn+ODiuODiCzjg6TjgrnjgrcNCivjg5/jg43jg57jg4Qs44OO44Oq44KzDQor44Of44ONLOODnuOCteOCv+OCqw0KK+ODn+OCt+ODnizjg5Ljg63jg6bjgq0NCivjg5/jg68s44Oe44K144OS44OtDQor44Of44Ok44Kw44OBLOOCv+OCq+ODkuODrQ0KK+ODn+ODqOOCtyzjg6bjgqbjgrMNCivjg5/jgrrjgr8s44K444Ol44Oz44KzDQor44Oi44Oi44OO44KkLOOCseOCpOOCueOCsQ0KK+ODm+ODs+ODgCzjgr/jgrHjgrcNCivjg6Ljg6rjgr8s44Ok44K544K3DQor44Oi44Oq44K/LOOCouOCreODkuOCsw0KK+ODouODqizjgqLjgq3jg6kNCivjg6Ljg6os44Ki44OE44K3DQor44Oi44OqLOOCq+OCuuODkuODrQ0KK+ODouODqizjg5/jg47jg6sNCivjg6Ljg6os44K/44Kr44K3DQor44Og44ON44Og44OpLOODiOOCt+ODn+ODhA0KK+ODoOODqeOCq+ODnyzjg6jjgqbjgrgNCivjg6Djg6njgqrjgqss44Kz44Km44K4DQor44Of44On44Km44KsLOODkuODreOCrQ0KK+ODiuOCrOODn+ODjSzjg57jgrXjgrcNCivjg6Tjg57jg4As44K344Oz44Kk44OBDQor44OK44Ks44KqLOODiOOCt+OCq+OCug0KK+ODiuOCrOOCvyzjgrHjg7PjgrgNCivjg4rjgqTjg4jjgqYs44Kz44Km44Kk44OB44Ot44KmDQor44OK44Kr44Ks44OvLOOCv+ODreOCpg0KK+ODiuOCq+OCpOODgSzjg5Ljg63jg47jg6oNCivjgrXjgrXjgq0s44OE44Kr44K1DQor44OK44Kr44K444OeLOODkuODreOCtw0KK+ODiuOCq+OCt+ODnizjgr3jgqbjgr/jg63jgqYNCivjg4rjgqvjgrPjgrgs44K/44OE44OkDQor44OK44Kr44Og44OpLOODnuOCteODleODnw0KK+ODiuOCq+ODoOODqSzjgrXjg4jjgrcNCivjg4rjgqvjg6Djg6ks44OI44Kq44OrDQor44OK44Kr44Og44OpLOOCuOODpeODsw0KK+ODiuOCq+ODoOODqSzjg4DjgqTjgrnjgrENCivjg4rjgqvjg6Djg6ks44Om44Km44KzDQor44OK44Kr44Og44OpLOODqOOCpuOCpOODgQ0KK+ODiuOCq+ODoOODqSzjgq/jg5/jgrMNCivjg4rjgqvjg4vjgrcs44OI44K344Om44KtDQor44OK44Kr44OOLOODhuODhOODpA0KK+ODiuOCq+ODjizjgq3jg7Pjg6QNCivjg4rjgqvjgrfjgqos44Kz44Km44Kk44OB44Ot44KmDQor44OK44Kr44K/LOOCq+ODiuOCsw0KK+ODiuOCq+ODpOODnizjgr/jgqvjgrcNCivjg4rjg7PjgrEs44Ki44OE44K3DQor44OK44Op44K244KtLOOCv+OCpOODgeODreOCpg0KK+ODiuODquOCuyzjg6bjgq3jg5Ljg60NCivjg4rjg6vjgqrjgqss44Kk44K144OgDQor44ON44Oi44OILOOCv+ODgOOCtw0KK+ODi+ODoOODqSzjgrnjgrnjg6ANCivjg4vjg6Djg6ks44Oe44K144Om44KtDQor44OL44K344Og44OpLOODhOODiOODoA0KK+ODi+OCt+ODjizjgqvjgrrjg57jgrUNCivjg4vjgrfjgrfjgr8s44OG44OE44OO44OqDQor44OL44K344Km44OBLOOCt+ODpeOCpuOCpOODgQ0KK+ODi+OCt+ODpOODnizjg4rjgqrjg5Ljg4gNCivjg6Tjgrjjg54s44Oo44K344KoDQor44OL44K344K244OvLOODpuOCv+OCqw0KK+ODi+ODryzjgqLjgq3jg6kNCivjg47jg5bjg4rjgqws44Of44OE44K3DQor44OO44Ks44OfLOODnuOCs+ODiA0KK+ODjuOCsOODgSzjgrfjg7PjgqTjg4ENCivjg47jgrDjg4Es44Of44Om44KtDQor44OO44OeLOODiOODqOODnw0KK+ODjuODnizjgrPjgqbjgqTjg4ENCivjg47jg6Djg6ks44Kz44Km44K4DQor44OO44Og44OpLOODjuODquOCqg0KK+ODjuODoOODqSzjgrfjg6Xjg7PjgqTjg4Hjg63jgqYNCivjg47jgrss44K/44OA44Ki44KtDQor44OO44K244OvLOODqOOCpuOCpOODgQ0KK+ODjOOCreOCpCzjgqvjg4Tjg58NCivjg4zjg57jgqos44Ki44Kt44OpDQor44OM44Oe44K/LOOCq+OCuuODkuODrQ0KK+OCquODgeOCouOCpCzjgr/jgqvjg6bjgq0NCivjgqrjg4HjgqLjgqQs44Oo44K344KqDQor44Kq44OA44OP44OpLOOCpOOCr+OCqg0KK+OCquODgCzjg5/jg47jg6sNCivjgqrjgqzjgrXjg6/jg6ks44K344Ol44Km44K4DQor44Kq44OJ44Oe44OqLOODiOOCpuOCpOODgeODreOCpg0KK+OCquOCq+ODiSzjg5Xjg5/jgqoNCivjgqrjg57jgrUs44Ki44Kt44OpDQor44Kq44OK44KsLOODkuODreODpuOCrQ0KK+OCquOCquODjizjg5Ljg4fjg6bjgq0NCivjgqrjgqrjgrXjgq0s44Ki44OE44K3DQor44Kq44Kq44K144OvLOODkuODh+OCv+OCqw0KK+OCquOCquOCueODnyzjgqvjgrrjg6bjgq0NCivjg6Tjg57jgrfjgr8s44Oe44K144OrDQor44Kq44Kq44K/LOODiuODs+ODhuODhA0KK+OCquOCquOCvyzjgr/jgqvjgrcNCivjgqrjgqrjg4Tjgqss44K/44OE44OkDQor44Oe44OE44OK44KsLOODqOOCt+OCouOCrQ0KK+OCquOCquODpOODnizjg47jg6rjg6bjgq0NCivjgqrjgqvjg4As44Oq44KoDQor44Kq44Kr44OALOOCv+OCseOCtw0KK+OCquOCq+ODgCzjg5Ljg63jg5Xjg58NCivjgqrjgqvjg4As44Oo44K344OO44OqDQor44Kq44OO44OH44OpLOOCv+OCq+OCqg0KK+OCquOCq+ODouODiCzjg5Ljg63jg6bjgq0NCivjgqrjgqvjgrbjgq0s44K/44Kr44Ki44KtDQor44Kq44Kv44OALOODiOOCt+ODpuOCrQ0KK+OCquOCryzjg47jg5bjg6bjgq0NCivjgqrjg44s44K144OB44KzDQor44Kq44OOLOOCseOCpOOCpOODgeODreOCpg0KK+OCquODquODhizjgrHjg7PjgqTjg4ENCivjgqrjgrXjg4As44Og44OE44OfDQor44K144Kk44OI44KmLOODoOODhOOCqg0KK+OCteOCpOODiOOCpizjgrfjg7PjgrQNCivjgrXjgqTjg4jjgqYs44K344Ol44Km44K4DQor44K144Kk44OI44KmLOODqOOCpuOCpOODgQ0KK+OCteOCpOODiOOCpizjg6bjgr/jgqsNCivjgrXjgqTjg4jjgqYs44Kr44K644OS44OtDQor44K144Kk44OI44KmLOOCouOCreODkuODrQ0KK+OCteOCq+OCpCzjgqTjg4Hjg63jgqYNCivjgqTjgrfjgrbjgq0s44Om44Kt44OO44OqDQor44K144Kr44Oi44OILOODkuODreOCtw0KK+OCteOCq+ODjuOCpuOCqCzjg5Ljg4fjgqoNCivjgrXjgqvjgqbjgqgs44Kr44K644Oe44K1DQor44K144Kz44OALOODjuODluOCqg0KK+OCteOCr+ODqeOCpCzjgrfjgrLjg47jg6oNCivjgrXjgq/jg6njgqQs44K/44Kr44K3DQor44K144OM44KtLOODquODpeOCpuOCv+ODreOCpg0KK+OCteOCteOCrSzjgqLjgq3jg4gNCivjg4jjg5/jgr8s44OI44Oi44OK44OqDQor44K144OI44KmLOODhuODhOOCqg0KK+OCteODiOOCpizjg4rjgqrjgq0NCivjgrXjg4jjgqYs44Oo44K344OO44OqDQor44K144OI44KmLOODnuOCteODpuOCrQ0KK+OCteODiOOCpizjg4jjgrfjg6QNCivjgrXjg4jjgqYs44Ki44OE44KzDQor44K144Ov44OALOODnuOCteODiA0KK+OCu+OCqizjgrHjg7PjgrXjgq8NCivjgrvjgrbjgqQs44Kr44K644Ok44K5DQor44K344OQ44K/LOOCv+OCseODkuOCsw0KK+OCt+ODkOOCvyzjg6jjgqYNCivjgrfjgqzjgq0s44Ki44Kt44OS44KzDQor44K344Of44K6LOODkuODreODoA0KK+OCt+ODn+OCuizjg6jjgrfjg58NCivjgrfjg5/jgros44Ki44Kt44OpDQor44K344Of44K6LOOCouOCreODiOOCtw0KK+OCt+ODn+OCuizjg5Ljg4fjgqoNCivjgrfjg6Ljg6Djg6ks44OS44Ot44Ki44KtDQor44K344OO44OP44OpLOOCq+OCuuODkuODrQ0KK+OCt+ODqeODhCzjg57jgrPjg4gNCivjgrfjg63jgrfjgr8s44K144OI44K3DQor44K344On44Km44K4LOODpuOCpuOCsw0KK+OCt+ODp+OCpuODn+ODhCzjg6jjgrfjg5Ljg60NCivjgr3jg4As44Kr44OE44K544KxDQor44K944Oi44OqLOOCv+ODhOOCqg0KK+OCveOCpizjgqvjgrrjg5LjgrMNCivjg4rjgqss44Om44Km44K4DQor44K544Ku44Og44OpLOOCseOCpOOCtw0KK+OCueOCruODjizjg57jgrXjg5Ljg60NCivjgrnjgq7jgrXjg68s44OO44OW44Om44KtDQor44K544Ku44K/LOOCteODpuODqg0KK+OCueOCruOCpuODgSzjgrfjg7PjgrnjgrENCivjgrnjgq7jg6Tjg54s44Ki44Kt44OO44OqDQor44K544Ku44Ok44OeLOODnuOCteODjuODqg0KK+OCueOCruODpOODnizjgqvjgrrjg58NCivjgrnjgrrjgq0s44K344Oz44OkDQor44K544K644KtLOODpuOCpuOCuA0KK+OCueOCuuOCrSzjgrfjg7MNCivjgrnjgrrjgq0s44OS44Ot44Ki44KtDQor44K544K644KtLOODiOOCt+OCouOCrQ0KK+OCueOCuuOCrSzjg5Ljg4fjg4gNCivjgrnjgrrjgq0s44Kz44Km44Kk44OBDQor44K544K644KtLOODpuOCpuOCsw0KK+OCv+ODgeODkOODiizjgr/jgqvjgrcNCivjgr/jgqTjg6ks44Ki44Kt44OpDQor44K/44Kk44OpLOODkuODh+OCouOCrQ0KK+OCv+OCq+ODgCzjg5Ljg63jg6bjgq0NCivjgr/jgqvjgq4s44Oe44K144Kr44K6DQor44K/44Kr44OP44K3LOODjuODquOCpOODhA0KK+OCv+OCq+ODj+OCtyzjgr/jgqvjg6bjgq0NCivjgr/jgqvjg4/jgrcs44OP44K444OhDQor44Oe44K544K244OvLOODkuODiOOCtw0KK+OCv+OCq+ODj+OCtyzjg57jgrXjgqLjgq0NCivjgr/jgqvjg54s44OS44K144OIDQor44K/44Kr44OOLOODn+OCqOOCsw0KK+OCv+OCq+ODjizjgqvjgrrjg6jjgrcNCivjgr/jgqvjgrXjgqss44OP44K444OhDQor44K/44Kr44K7LOOCq+ODhOOCuA0KK+OCv+OCq+OCvyzjgq/jg5/jgrMNCivjgr/jgqvjg6Tjg54s44Ki44OE44K3DQor44K/44Kr44Ok44OK44KuLOOCouODquODkuODrQ0KK+OCv+OCseODgCzjgqjjg6oNCivjgr/jgrHjg4As44Ki44Kt44OpDQor44OV44K444KkLOOCouODhOOCsw0KK+OCv+OCseODjuODqizjgqTjgq/jgrcNCivjgr/jgrHjgrfjgr8s44OS44Ot44Kr44K6DQor44K/44Kx44Km44OBLOODpuOCpuOCuA0KK+OCv+OCseOCpuODgSzjgr/jgqvjg4jjgrcNCivjgr/jgq3jgrbjg68s44Oe44K144Ki44KtDQor44K/44Kt44K244OvLOODhOODqOOCtw0KK+OCv+ODnuOCrSzjgrXjg4jjgrMNCivjgr/jg6Djg6ks44Ki44Kt44OS44OtDQor44K/44Og44OpLOODhuODhOODjQ0KK+OCv+ODoOODqSzjg47jg5bjgqoNCivjgr/jg4rjgqss44K344On44Km44K0DQor44Ov44K/44OK44OZLOOCouOCreODkuODrQ0KK+OCv+ODi+ODpOODnizjg47jg5zjg6sNCivjgr/jg4ss44Kr44K644OS44KzDQor44OG44Op44Kt44K/LOODiuOCrOODjuODqg0KK+ODhuOCuuOCqyzjgrfjg7PjgqTjg4ENCivjg4jjg5Djg6os44K544K544OgDQor44OI44Ks44K3LOOCuOODpeODs+OCpOODgQ0KK+ODpOODnuODgCzjgrHjg7PjgqTjg4ENCivjg4jjgq3jgr7jg44s44K344Ky44KqDQor44OI44Of44OK44KsLOODouODiOODkuOCtQ0KK+ODiOODn+ODiuOCrCzjgrfjg7PjgrgNCivjg4jjg5/jgr8s44K344Oz44K4DQor44OI44Of44K/LOODhuODhOOCqg0KK+ODiOODouOCquOCqyzjg5Ljg4jjgrcNCivjg4jjg47jgrXjgq0s44Oo44K344OO44OqDQor44OI44Oq44K244OvLOOCqOODnw0KK+OCs+OCpOOCsSzjg5Ljg63jgrMNCivjg4jjg6jjgqvjg68s44Oe44K144Oo44K3DQor44OI44Oo44Kr44OvLOODkuOCteODqOOCtw0KK+ODhOODnOOCpCzjgr/jg4DjgrcNCivjg4Tjgqvjg4As44OI44Kq44OrDQor44OE44Kv44KkLOODkuOCteOCtw0KK+ODhOODq+OCq+ODryzjgqjjgqTjgrgNCivjg4Tjg4TjgqQs44OI44K344Kr44K6DQor44OE44OE44KkLOODpuOCpuOCuA0KK+OCpuODgeODgCzjg5Ljg63jgq0NCivjgqbjg4Hjg4As44K444Ol44Oz44Kk44OBDQor44Km44OB44OeLOOCt+ODpeODs+OCpOODgQ0KK+OCpuODgeODpOODnizjgqLjgq3jg5Ljg60NCivjgqbjg4As44OS44K144Oo44K3DQor44Km44Ko44OALOOCq+OCuuODjuODqg0KK+OCpuOCqOODjizjgq3jg6jjgrcNCivjgqbjgqjjg44s44OO44Oq44KqDQor44Km44Ko44OOLOOCv+OCq+OCtw0KK+OCpuOCseOCrOODryzjgr/jgqvjg6bjgq0NCivjgqbjg57jgrrjg6Es44Oo44K344OS44OtDQor44Km44Oh44Og44OpLOOCreODn+ODkuODrQ0KK+ODr+ODgCzjg5Ljg63jgrcNCivjg6/jg4As44Ok44K544OS44KzDQor44Ov44K/44OK44OZLOODquODp+OCpg0KK+OCpOOCpOODgCzjgrXjg4jjgrcNCivjg6/jgr/jg4rjg5ks44K/44Kr44K3DQor44Ov44K/44OqLOODpOOCueODqOOCtw0KK+ODpOOCrizjg6jjgrfjg6bjgq0NCivjg6Tjg57jg4As44OS44Ot44Om44KtDQor44Ok44Oe44KsLOODkuODh+OCqg0KK+ODpOODnuOCsOODgSzjg57jgrXjg47jg6oNCivjg6Tjg57jgrDjg4Es44OS44OH44KqDQor44Ok44Oe44Kw44OBLOODnuOCteOCtw0KK+ODpOODnuODouODiCzjg4bjg4Tjg6QNCivjg6Tjg57jg6Ljg4gs44Oe44K144Om44KtDQor44Ok44Oe44Oi44OILOOCq+OCuuODpuOCrQ0KK+ODpOODnuODouODiCzjg5Ljg4fjgrcNCivjg6Tjg57jg6Ljg4gs44Oe44K144OO44OqDQor44Ok44Oe44Oi44OILOOCq+OCuuODiA0KK+ODpOODnuODouODiCzjgqvjgqrjg6sNCivjg6Tjg57jg6Ljg4gs44Oe44K144Oo44K3DQor44Ok44Oe44OK44KrLOOCqOOCpOOCuA0KK+ODpOODnuOCt+OCvyzjgrXjg4jjg6sNCivjg6Tjg57jgqbjg4Es44Kr44K644Ki44KtDQor44Ok44Oe44K244KtLOODj+ODq+ODkuOCsw0KK+ODpOODnuOCtuOCrSzjg57jgrXjg4jjgrcNCivjg6Tjg57jgrbjgq0s44Kx44Oz44K4DQor44Ok44OOLOODpuOCreOCqg0KK+ODpOODjizjgrPjgqbjgqTjg4ENCivjg6Tjgrnjg4As44K/44Kx44K3DQor44Ok44K544Oe44OELOOCq+ODhOODiuODqg0KK+ODpOOCueODouODiCzjgrPjgqbjgrgNCivjg6Tjgrnjg4vjg68s44K/44Kr44Om44KtDQor44Oo44OALOOCquOCteODoA0KK+ODqOODgCzjgqTjgrXjgqoNCivjg6jjgrfjg4As44Oo44K344OS44OtDQor44Oo44K344KkLOOCv+ODhOODpA0KK+ODqOOCt+ODiuOCrCzjg6bjg5/jgrMNCivjg6jjgrfjg44s44K/44OE44OfDQor44Oo44K344K/44KxLOOCouOCreODkuODrQ0KK+OCv+OCreOCtuODryzjgr/jgqvjgrcNCivjg6Tjg57jgrDjg4Es44Kr44K644Oo44K3DQor44Kr44OQ44K344OeLOOCq+OCuuODkuOCtQ0KK+OCteOCr+ODqSzjg6bjgqbjgrnjgrENCivjg6Djg6njg6Tjg54s44OS44Ot44Om44KtDQor44OS44Kt44OALOOCq+OCuuODnw0KK+ODoOODqeOCpCzjgq/jg4vjg5Ljg60NCivjg5ss44Ki44Kt44OpDQor44Ko44Oz44OJLOOCu+OCpOOCuA0KK+ODhuODqeODoOODqSzjgr/jg4TjgqoNCivjg6/jgr/jg4rjg5ks44K/44Kr44OS44KzDQor44Kk44Oe44KkLOOCt+OCsuODpA0KK+ODouODquODouODiCzjg4jjgrfjgqvjgroNCivjgrPjg6Tjg6os44K744Kk44K4DQor44Oe44OE44Of44OkLOODpuOCpuOCpOODgQ0KK+OCt+ODkOOCvyzjgqvjgrrjgqoNCivjg4Hjgrfjg60s44Oo44K344OS44OtDQor44Kk44K/44OfLOODkuODh+OCqg0KK+OCquOCtuOCrSzjg5Ljg4jjgrcNCivjg5Xjgq/jg6Ljg4gs44Oe44K144OE44KwDQor44Kq44Kr44OALOODkuODreOCtw0KK+OCteODr+ODgCzjg5Ljg63jgrcNCivjgrXjgq/jg6njgqQs44K/44Kr44K3DQor44OP44Ok44K3LOODqOOCt+ODjuODqg0KK+ODnuODhOOCquOCqyzjg6Tjgrnjg47jg6oNCivjg5/jg6jjgrcs44OO44Oq44Oo44K3DQor44Ok44Oe44OK44KrLOOCs+OCpuOCuOODreOCpg0KK+OCt+ODn+OCuizjg5Ljg4jjgrcNCivjgrPjg4/jg6ks44Oe44K144OO44OqDQor44OL44K344Kr44OvLOODkuODreOCtw0KK+OCpOODnuOCpCzjg6TjgrnjgqoNCivjg5Xjgrjjg6Djg6ks44OS44Ot44Om44KtDQor44Kz44K444OeLOODpOOCueODpuOCrQ0KK+OCs+ODkOODpOOCtyzjg5Ljg63jgrcNCivjgq3jgq/jg4Es44Kr44OE44OS44KzDQor44K144Kk44OI44KmLOODn+ODhOODqw0KK+ODpOODnuOCt+OCvyzjg5Ljg4fjgqLjgq0NCivjgqLjg5ks44K344Oz44K4DQor44OG44K644KrLOOCv+OCq+OCtw0KK+OCv+ODiuOCqyzjg6/jgr/jg6sNCivjg4vjg68s44Of44OO44OrDQor44Kr44Oh44KkLOODn+OCuuODmw0KK+ODpOODjizjg5/jg4TjgqoNCivjg4rjgqvjg57jg6ss44Ok44K544K3DQor44Kq44Kq44OP44K/LOODnuOCteODjuODqg0KK+ODpOOCueODpOODnizjg57jgrXjg5Ljg60NCivjgqvjgrnjgqws44Of44OE44KqDQor44Kk44K344KkLOOCouOCreODkuOCsw0KK+ODleOCuOODouODqizjg47jg6rjgrMNCivjgqTjg6/jg6Ljg4gs44OS44Ot44K3DQor44Ok44Oe44K344K/LOODq+ODn+OCsw0KK+OCreOCvyzjg4jjg6Ljg58NCivjg6Djg6njgqrjgqss44Om44Km44KzDQor44Kk44Kw44K1LOODqOOCt+OCuuODnw0KK+ODiuOCrOOCteODryzjg5Ljg63jgrgNCivjg6Tjg57jgrDjg4Es44Ok44K544OS44OtDQor44Kq44OA44K444OeLOODpuOCv+OCqw0KK+OCquOCquOCvyzjg57jg58NCivjg4/jgq7jg44s44OK44Kq44Kk44OB44Ot44KmDQor44Ok44OW44KtLOODiOOCt+OCouOCrQ0KK+OCpOOCrSzjg6jjgrfjg4jjgrcNCivjgrXjgqTjg4jjgqYs44Oe44K144OIDQor44Ok44Oe44OALOOCv+OCq+OCtw0KK+ODiuOCq+ODpOODniwNCivjg6Djg6njg57jg4Qs44Kr44Kq44OrDQor44K/44K344OtLOOCt+ODp+OCpuOCpOODgQ0KK+OCpOOCt+ODj+ODqSzjg57jgrXjg6bjgq0NCivjgrfjg5Djgqrjgqss44K/44OE44KqDQor44OK44Kr44KqLOODpOOCueODjuODqg0KK+ODleOCuOOCvyzjg4jjgrfjgq0NCivjgrXjgq/jgr8s44Oe44K144Om44KtDQor44OP44K/LOOCueOCueODoA0KK+OCquOCquODpOODnizjgr/jg4DjgrcNCivjgr/jgrQs44Kt44On44Km44KzDQor44Oe44OE44Og44OpLOOCq+OCuuOCqg0KK+OCpOODiOOCpizjg57jgrXjg6bjgq0NCivjgq3jg6Djg6ks44K/44Kx44KqDQor44Ki44Kq44KtLOODn+ODhOOCv+OCqw0KK+OCs+ODnuOCrOOCvyzjg5Ljg4fjg4jjgrcNCivjg4rjg6njg6Djg6ks44Kr44K644KzDQor44OV44K444Oi44OILOODnuOCteOCrQ0KK+ODn+ODpOOCteOCqyzjg4jjgrfjg5LjgrMNCivjg4/jg6Tjgrcs44Oe44K144OS44OtDQor44K144Kk44OI44KmLOOCq+OCuuODkuOCsw0KK+OCquOCrOOCteODr+ODqSzjgrfjg6fjgqbjgrgNCivjgqrjgqrjg4Tjgqss44OI44K344Om44KtDQor44Kr44Ov44KkLOODiOODouODpuOCrQ0KK+OCt+ODnuOCuizjg6jjgqbjgqTjg4ENCivjgr/jgqvjg4/jgrcs44Kt44K344KzDQor44Oe44Ko44K244OvLOOCpOOCuuODnw0KK+ODj+ODgCzjgqvjgqrjg6sNCivjg57jg4Tjg5Ljg6ks44Ko44OqDQor44K544Ku44OP44OpLOODjuODnOODqw0KK+ODiuOCq+OCuOODnizjg6jjgrfjg47jg5YNCivjg4/jgr/jgrHjg6Tjg54s44OG44OE44OkDQor44Ki44Kq44KtLOODnuOCteODkuOCsw0KK+OCt+ODluOCq+ODryzjgq3jg6jjg5LjgrUNCivjgqTjgrfjg4As44K344Ky44OrDQor44Kq44Kr44OALOOCv+OCq+OCtw0KK+OCpOODiOOCpizjgqLjgq3jg6kNCivjgqvjg4jjgqYs44Oe44K144OS44OtDQor44Kz44OQ44Ok44K3LOODiuOCquODn+ODhA0KK+ODoOODqeOCteODryzjg5/jg47jg6sNCivjg5/jg5ss44Oe44K144OO44OqDQor44K544Ks44ONLOODqOOCt+ODjuODlg0KK+OCpOOCt+OCq+ODryzjg6jjgrfjg5LjgrMNCivjgqrjgqss44Ok44K544OS44OtDQor44Kk44Ov44OfLOODpuODn+OCsw0KK+ODiuOCq+ODpOODnizjg5Ljg63jgrcNCivjgqTjg4jjgqYs44Kr44K644KtDQor44K544Ku44Ok44OeLOOCt+ODs+OCpOODgQ0KK+OCq+OCt+ODouODiCzjg6jjgrfjgrMNCivjg4rjgqvjg6Djg6ks44Oe44K144Om44KtDQor44Ki44Kq44Ok44OeLOODkuODh+ODjuODqg0KK+OCt+ODkOOCvyzjgrHjg7PjgqTjg4ENCivjg57jg4Tjgqos44Oo44K344OO44OqDQor44K344OO44Og44OpLOOCouOCquOCpA0KK+ODleODq+OCq+ODryzjg6jjgrfjg5Xjg58NCivjg6Ljg4jjgq0s44K344Ol44Km44Kk44OBDQor44Ov44K/44OK44OZLOODgeOCqg0KK+OCouODs+ODieOCpizjg57jgrXjg5Ljg60NCivjgr/jgrHjg5Is44K144OB44KzDQor44Kk44K344KkLOOCouOCreODleODnw0KK+ODjuODgeOCuyzjgqvjgrrjg5LjgrMNCivjg5/jg6Tjg4rjgqws44OI44K344KzDQor44K344Oz44OJ44KmLOODkuODreODnw0KK+OCquOCquOCvyzjg5/jg6jjgrMNCivjgr/jg4ss44Oo44K344Ki44KtDQor44Kz44Og44OtLOODleODn+ODjuODqg0KK+OCpOODr+OCtSzjg5Ljg63jg5/jg4ENCivjg57jg4Tjg6Ljg4gs44OS44OH44Ki44KtDQor44Kt44Og44OpLOODkuOCteODiA0KK+OCouOCquOCrSzjgqLjgq3jg5LjgrMNCivjg57jg4Tjg5Djg6Tjgrcs44OS44Ot44K3DQor44K044OI44KmLOODleODn+ODpuOCrQ0KK+OCquOCrOODryzjgqLjgq3jg6kNCivjgrnjgq7jgr/jg4ss44OP44Or44KqDQor44Kq44Kv44OOLOODpuOCreOCqg0KK+OCteOCr+ODqeODgCzjgrfjg7Pjg5rjgqQNCivjg6DjgrPjg6Tjg54s44OO44Oq44KzDQor44Kk44OI44KmLOOCteODiOOCtw0KK+ODpOODnuODouODiCzjgr/jg4DjgrcNCivjg6Tjg57jg6Ljg4gs44Oe44K144OI44K3DQor44Kr44ON44KzLOOCt+ODpeOCpuODmOOCpA0KK+ODpOODnuOCtuOCrSzjg6Tjgrnjg5Ljg60NCivjg4rjgqvjg6Djg6ks44OI44OiDQor44Of44OvLOOCquOCteODoA0KK+OCteODoOOCq+ODryzjgrfjg63jgqYNCivjg4rjgqvjg4As44OI44K344Om44KtDQor44Oo44K344OI44OfLOOCseODs+OCpOODgQ0KK+OCv+OCq+OCt+ODnizjg4Tjg43jgrgNCivjgqTjgrfjgrIs44Ki44Kt44KzDQor44K544Ko44OP44OpLOODkuODreODpuOCrQ0KK+OCpOODjuOCpuOCqCzjg5Ljg4fjg58NCivjg47jgrjjg54sDQor44K144Kv44OeLOOCteODgeOCqA0KK+OCteODjizjg6jjgrfjg5/jg4ENCivjg6Djg6njgqrjgqss44Kr44OE44K4DQor44Of44Km44OpLOODquODpeOCpuOCvuOCpg0KK+OCteOCq+ODouODiCzjgrjjg6Xjg7MNCivjg4rjg6vjgqos44K744Kk44KzDQor44OP44K744Ks44OvLOODn+ODhOODkuODrQ0KK+OCquOCq+ODgCzjg4bjg4TjgqoNCivjg6Tjg5Ljg60s44OO44OW44Om44KtDQor44OQ44OQLOOCv+OCr+ODpA0KK+OCouOCvyzjgqLjg6Tjg44NCivjg4rjgqzjgrss44Kt44Oo44K3DQor44Kr44Ov44KoLOOCpOOCuuODnw0KK+ODn+OCpuODqSzjg57jgq3jg6gNCivjg5Xjgrjjgr8s44K144OI44KzDQor44OE44Or44OfLOODqOOCt+OCqg0KK+ODouODgeOCuuOCrSzjgqjjg5/jgrMNCivjg6jjgrfjg4As44Kr44K644Ki44KtDQor44Kq44Kr44Oi44OILOODnuOCteODleODnw0KK+ODpOOCueODouODiCzjg5/jg4Tjg4/jg6sNCivjg43jg6Ljg4gs44K/44Kv44K4DQor44OS44OA44KrLOOCpuOCqOODn+ODhA0KK+ODnuOCueODgCzjgq/jg5/jgrMNCivjg4jjgq/jg4rjgqws44OV44Of44OS44OIDQor44OK44Kr44K244OvLOOCueOCueODoA0KK+ODleOCuOODiuODryzjg6jjgrfjg4/jg6sNCivjg6jjg5Pjgqvjg68s44Kr44K644OS44OtDQor44Kt44K/44OALOOCv+OCseOCtw0KK+ODqOOCt+ODjizjg6Tjgrnjg5Ljg60NCivjg5Djg5As44Oo44K344OIDQor44Kv44Ot44Kr44OvLOODkuODreOCtw0KK+OCq+ODiOOCpizjgr/jgqvjgrcNCivjg6/jgr/jg4rjg5ks44OI44K344KqDQor44OE44OB44OALOOCouODhOOCsw0KK+OCueOCuuOCrSzjg5/jg6bjgq0NCivjg5/jgrrjg44s44Ki44Kt44OpDQor44K/44OL44Oi44OILOOCv+OCr+ODnw0KK+OCpOOCseODjizjg6HjgrDjg58NCivjgqTjg4jjgqYs44K344On44Km44KzDQor44K/44Kx44OALOODiOOCquODqw0KK+ODnuOCqOODgCzjgrPjgqbjg5jjgqQNCivjgq/jg4njgqYs44Kr44OE44OfDQor44Kr44Ky44Ok44OeLOODn+ODjeOCqg0KK+ODpOODnuOCq+OCsizjg6jjgqbjgrgNCivjgrXjgqjjgrDjgrUs44Os44Kk44KzDQor44Of44K644K/44OLLOODiuOCquOCsw0KK+OCr+ODieOCpizjg4jjgrfjg5LjgrMNCivjgrPjgqrjg6rjg6Tjg54s44Of44K644ObDQor44Kr44K/44Oo44K7LOODqOOCt+OCqA0KK+OCquOCteODgCzjgrHjgqTjgrMNCivjg6Tjgq7jg4/jgrcs44K344Ol44Km44Kk44OBDQor44K544OfLOOCv+ODhOOCqg0KK+OCv+ODiuOCqyzjgqLjg4TjgrcNCivjgq/jg4njgqYs44Om44Kt44KqDQor44K/44Kx44OSLOOCouOCreODqQ0KK+OCouODoeODn+ODpCzjg5/jg4Hjg5Ljg60NCivjg4rjgqvjg6Djg6ks44K/44Kr44K3DQor44Kt44Oo44Of44OELOOCseODs+OCuA0KK+OCpOOCuuODn+ODgCzjg6jjgrfjgqsNCivjg5Xjg4rjgq0s44OS44Ot44Ki44KtDQor44K/44Kx44K344K/LOOCq+OCuuODkuOCsw0KK+ODn+OCpuODqSzjgq3jgq/jgqoNCivjgqTjgrfjg5Djgrcs44OO44OW44KzDQor44Oi44Oq44Ki44KkLOOCseOCpOOCuA0KK+ODoOODqeODpOODnizjgqjjgqTjgrjjg6UNCivjgqrjgrXjg68s44Ok44K544OO44OqDQor44OV44Kr44OALOODqOOCt+OCq+OCug0KK+ODpOODnuODgCzjg5Ljg4fjg5LjgrMNCivjgqTjg4jjgqYs44Ki44Kt44OpDQor44Kq44OO44OH44OpLOODiOODn+OCqg0KK+ODj+ODpOOCteOCqyzjg57jgrXjg5/jg4ENCivjgqrjgqrjg4Tjgqss44OS44OH44OS44KzDQor44OI44Kq44Ok44OeLOODkuODreOCv+OCqw0KK+OCq+ODr+ODj+ODqSzjg5/jg4Tjg6sNCivjgqjjg5PjgrXjg68s44Oe44K144KtDQor44Ok44Oe44Kr44OvLOODhuODhOODpA0KK+ODpOODnuODouODiCzjg6Tjgrnjg4jjg6INCivjgrnjgrrjgq0s44OI44Kq44OrDQor44Kq44Ok44Oe44OALOOCv+OCq+OCtw0KK+ODnuODhOODpOODnizjg6rjg6XjgqbjgqTjg4ENCivjgqLjg5ks44OO44OW44OS44OtDQor44Ki44OZLOODpOOCueOCqg0KK+OCouODmSzjgqvjgrrjg57jgrUNCivjgqLjg5ks44Om44Kt44KqDQor44Ki44Ky44K/LOOCuOODpeODs+OCpOODgQ0KK+OCouOCq+ODj+ODjSzjg5Ljg4fjg5Ljg60NCivjgqLjgrHjg4rjgqws44K444Ol44OzDQor44Ki44Kt44Ok44OeLOOCt+OCsuOCqg0KK+OCouOCreOCtuODryzjg5Ljg4fjgqvjgroNCivjgqLjg57jg4As44Of44Kt44KqDQor44Ki44Oe44OOLOODnuOCteOCtw0KK+OCouODouOCpizjgqLjgq3jgqoNCivjgqLjg7Pjg4njgqYs44OS44OH44Ki44KtDQor44Ki44Oz44OJ44KmLOODiuOCquOCrQ0KK+OCouODs+ODieOCpizjg4jjgrfjg5Xjg58NCivjgqLjgqrjg44s44OS44Ot44KtDQor44Ki44Kq44Ok44OeLOOCpOODr+OCqg0KK+OCouODqeOCpCzjgqvjgrrjg5Ljg60NCivjgqLjg6njgqvjg68s44OS44OH44K3DQor44Ki44Oq44Oi44OILOODkuODh+OCrQ0KK+OCouODquOCqizjg57jgrPjg4gNCivjgqLjgrXjgqQs44Ki44Kt44OpDQor44Ki44K144Kr44OvLOODqOOCt+ODkuODiA0KK+OCr+ODreOCrSzjg6bjgq3jg47jg6oNCivjgqLjgrrjg54s44K344Oz44K4DQor44OQ44Oz44OOLOODnuOCteOCreODqA0KK+ODmeODhOODpOOCryzjgrHjg7PjgrQNCivjg5Pjg4jjgqYs44K444OzDQor44OB44OQLOODkuODreOCtw0KK+ODgeODpeOCpizjgqvjg4Tjgq0NCivjgqjjg4As44Kx44Oz44Kk44OB44OtDQor44Ko44Oz44OJLOODiuOCquODnw0KK+OCqOOCteOCrSzjgrfjg7PjgqTjg4ENCivjg5XjgrjjgqQs44OS44Ot44K3DQor44OV44K444KkLOODleODn+OCqg0KK+ODleOCuOODouODiCzjgqLjgq3jg6kNCivjg5Xjgrjjgr8s44Kt44Oo44OK44KqDQor44OV44K444K/LOOCouOCreODkuODrQ0KK+ODleOCuOODr+ODqSzjgrXjg4jjgrcNCivjg5Xjgqvjgrbjg68s44OI44Oi44OS44OIDQor44OV44Kv44OALOOCueOCueODoA0KK+ODleOCr+ODj+ODqSzjg6Tjgrnjg5LjgrMNCivjg5Xjgq/jgrfjg54s44Kr44K644Oo44K3DQor44OV44Kv44OJ44OhLOOCq+OCuuODkuOCtQ0KK+ODleOCr+ODpOODnizjgrXjg4jjgrcNCivjg5Xjg4rjg5Djgrcs44Oe44K144Om44KtDQor44OV44Or44OA44OGLOOCouOCreODkuOCsw0KK+ODleODq+OCteODryzjgrfjg7PjgrgNCivjg5Xjg6vjgr8s44Oq44Kt44OkDQor44OV44Or44OkLOOCt+ODs+OCpOODgQ0KK+ODleOCt+OCrSzjg6bjgqbjgqTjg4ENCivjg4/jg57jg4As44Kz44Km44Kk44OB44Ot44KmDQor44OP44OK44OALOOCq+ODhOODjuODqg0KK+ODj+ODiuODnyzjg5Ljg4fjgqoNCivjg4/jg6njg4As44Ki44Kt44OpDQor44OP44Or44Kr44OvLOOCpOOCuuODnw0KK+ODj+OCu+OCrOODryzjg6jjgqbjgqTjg4ENCivjgqrjgqrjg4Qs44Og44ON44OS44OtDQor44OP44K344Oi44OILOOCouODhOOCtw0KK+ODj+OCt+ODouODiCzjgqjjg5/jgrMNCivjg4/jgrnjg6Ljg4gs44Ki44OE44K3DQor44OP44OD44OI44OqLOODhOODqOOCtw0KK+ODj+ODpOOCteOCqyzjgr/jgqvjgqoNCivjg5Ljg4Djgqss44Kx44K144KqDQor44OS44Kw44OBLOOCseOCpOOCsw0KK+ODkuOCsOODgSzjg5XjgrXjg6bjgq0NCivjg5Ljgrjjgq/jg60s44OK44Kq44Om44KtDQor44OS44Op44Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+ODkuODqeODjizjg5Ljg63jg6gNCivjg5Ljg6njgr8s44Oe44K144OS44OtDQor44OS44Ot44K7LOOCteODgeOCsw0KK+ODkuOCteODgCzjgr/jgqvjgrcNCivjg5vjg6os44OO44Oq44Ok44K5DQor44Ob44Km44OkLOOCq+OCuuODkuOCsw0KK+ODm+ODs+ODgCzjgrfjgrLjg6bjgq0NCivjg5vjg7Pjg54s44K/44OE44OkDQor44K/44OK44KrLOODhOODqOOCtw0KK+ODm+OCt+OCuOODnizjgr/jg4TjgqoNCivjg5vjgrfjgqss44K/44Kx44K3DQor44Ob44K944OALOODgeOCqOODnw0KK+OCpOODgeOCq+ODryzjg6Tjgrnjg5Ljg60NCivjgqTjg4Hjg6Djg6ks44Kx44Kk44K0DQor44Kk44Ks44OOLOODn+ODieODqg0KK+OCpOOCpOODgCzjg57jgrXjg6bjgq0NCivjgqTjgqTjgqrjgqss44OS44Ot44K3DQor44OK44Ks44OOLOOCteODiOODqw0KK+OCpOOCseOCtuODryzjg47jg5bjg6TjgrkNCivjgqTjg6Ljg4gs44K544Of44OsDQor44Kk44OK44K644OfLOODpOOCueODj+ODqw0KK+OCr+OCt+ODn+ODpCzjgrfjg7PjgqTjg4ENCivjgqTjg47jgqbjgqgs44K344Oz44OkDQor44Kk44OO44Km44KoLOOCouOCreODqQ0KK+OCpOODjuOCpuOCqCzjg4jjg6Ljg6bjgq0NCivjgqTjg4zjg4Tjgqss44OK44Kq44KtDQor44Kk44K144K4LOODkuODh+ODiA0KK+OCpOOCt+ODgCzjgrfjg6XjgqbjgqTjg4ENCivjgqTjgrfjg4As44Kk44K144KqDQor44Kk44K344OALOOCr+ODi+OCouOCrQ0KK+OCpOOCt+OCrOOCrSzjgqjjg6rjgrMNCivjgqTjgrfjgqzjg58s44K444Ol44Oz44Kk44OBDQor44Kr44K444K/44OLLOOCquOCteODoA0KK+OCpOOCt+ODj+ODqSzjg5Ljg63jg6bjgq0NCivjgqTjgrfjg6Djg6ks44Oe44K144OS44KzDQor44Kk44K344Ok44OeLOOCt+ODpeOCpuOCpOODgQ0KK+OCpOOCt+OCtuOCrSzjg47jg5bjgqoNCivjgqTjgr3jg5ks44Oo44K344OS44KzDQor44Kk44K944K244KtLOODnuOCteOCouOCrQ0KK+OCpOODiOOCpizjg4Hjgq/jgrUNCivjgqTjg4jjgqYs44OS44K144OIDQor44Kk44Ov44Ki44K1LOOCseODs+OCv+ODreOCpg0KK+OCpOODr+OCpCzjg4rjgqrjgr/jgqsNCivjgqTjg6/jg54s44K144OI44K3DQor44Kk44Ov44Oi44OILOODqOOCpuOCpOODgQ0KK+OCpOODr+ODiuOCrCzjg5Ljg63jg47jg6oNCivjgqTjg6/jgrfjgr8s44K344KzDQor44Kk44Ov44K/LOOCq+OCuuODnuOCtQ0KK+OCpOODr+OCvyzjgqjjgqTjgrgNCivjgqvjg4njg6/jgq0s44K144OI44K3DQor44Kr44Ky44Ok44OeLOOCseODs+OCpOODgQ0KK+ODr+OCv+ODiuODmSzjgqTjgrrjg58NCivjgqvjg5/jg6Qs44Kv44OL44Ki44KtDQor44Kr44Of44OkLOOCseODs+OCpOODgQ0KK+OCq+ODs+ODkOODpOOCtyzjgq3jg7PjgrgNCivjgqvjg47jgqYs44OS44Ot44K3DQor44Kr44Oq44OkLOODiuODquODpOOCuQ0KK+OCq+OCteOCrSzjgrjjg6Xjg7MNCivjgqvjgrfjg54s44Oe44K144KqDQor44Kr44K544OkLOOCouOCreODqQ0KK+OCq+ODiOOCpizjgr/jgqvjgq0NCivjgqvjg4jjgqYs44Kr44K644OS44OtDQor44Kr44OI44KmLOOCseODs+OCuA0KK+OCq+ODiOOCpizjg5/jg4TjgrANCivjgqvjg4jjgqYs44OS44OH44OO44OqDQor44Kr44OI44KmLOODkuODreODpuOCrQ0KK+OCq+ODr+ODkOOCvyzjg4DjgqQNCivjgqvjg6/jg5Djgr8s44Ki44OE44K3DQor44Kr44Ov44Kw44OBLOODkuODh+ODn+ODgQ0KK+OCq+ODr+ODj+ODqSzjg5Ljg63jg58NCivjgqvjg6/jg4/jg6ks44Kr44K644OV44OfDQor44Kr44Ov44K444OqLOODn+ODgeOCqg0KK+OCq+ODr+OCq+ODnyzjg4bjg4TjgqoNCivjgqvjg6/jgq/jg5ws44Kr44K644OI44K3DQor44Kr44Ov44Oe44K/LOOCv+OCq+ODjuODlg0KK+OCq+ODr+ODoOODqSzjg5Ljg4jjgrcNCivjgqvjg6/jg44s44OO44Oq44Ki44KtDQor44Kr44Ov44K144KtLOODnuOCteODkuODiA0KK+OCq+ODr+OCt+ODnizjg4jjgrfjg5LjgrUNCivjgqvjg6/jgros44Oe44K144OO44OqDQor44Kt44OQ44K3LOODkuODh+ODkuOCsw0KK+OCreODnuODgSzjg57jgrXjgq0NCivjgq3jg6Ljg4gs44K/44Kx44K3DQor44Kt44Og44OpLOOCv+OCr+ODpA0KK+OCreODs+ODkOODqSzjg6jjgrfjg5/jg4ENCivjgq3jg47jgrfjgr8s44Ok44K544K3DQor44Kt44OO44K344K/LOODkuODreOCrQ0KK+OCreODquOCteODryzjgqTjg4Hjg63jgqYNCivjgrPjg5Djg6Tjgrcs44K444Ol44Oz44Kk44OBDQor44Kz44OQ44Ok44K3LOODkuODreOCouOCrQ0KK+OCs+ODkOODpOOCtyzjg57jgrXjgqoNCivjgrPjg5Djg6Tjgrcs44OV44K444OS44KzDQor44Kz44OA44OeLOOCs+OCpuOCuA0KK+OCs+ODgOODnizjgqrjgrXjg6ANCivjgr/jgqvjg6Djg6ks44Oi44OI44OS44KzDQor44Kz44OS44OK44K/LOODpuOCpuOCueOCsQ0KK+OCs+ODs+ODjizjg5Ljg63jgrcNCivjgrPjg7Pjg44s44K/44Kr44OS44OtDQor44Kz44Ok44OeLOOCs+OCpuOCuA0KK+OCs+OCuuOCrSzjg4jjgrfjgqoNCivjg4jjgqbjg4njgqYs44Kz44Km44K4DQor44Kz44K444OeLOOCt+ODs+OCuA0KK+OCs+ODs+ODiSzjgqLjgq3jg6kNCivjgrPjg7Pjg4ks44K/44Kr44K3DQor44Kz44Oz44OJLOODnuOCteODiOOCtw0KK+OCs+ODs+ODjizjgqvjgqrjg6sNCivjgrPjgr/jgq0s44OS44OI44K3DQor44Kz44Ok44Kk44K3LOODn+OCqw0KK+OCs+ODpOODiuOCrizjg47jg5zjg6sNCivjgq/jg5ws44Kx44Oz44K/44Ot44KmDQor44Kv44OJ44KmLOOCreODn+ODkuODiA0KK+OCr+ODnuOCrOOCpCzjg4rjgqrjg6bjgq0NCivjgq/jg57jgq0s44K344Oz44K4DQor44Kv44Op44OBLOOCv+OCq+ODpuOCrQ0KK+OCr+ODqeOCvyzjgrPjgrnjgrENCivjgq/jg6rjgr8s44Of44KtDQor44Kv44Oq44Ok44OeLOOCt+ODpeODs+OCuA0KK+OCr+ODreODgCzjgrPjgrnjgrENCivjgq/jg63jgqvjgq4s44Oe44K144OO44OWDQor44Kv44Ot44K144OvLOOCt+ODs+OCuA0KK+OCr+ODreOCteODryzjgrvjgqTjgq0NCivjgq/jg6/jg44s44OS44Ot44K/44KrDQor44Oe44Ko44OQ44K3LOODiOOCt+OCouOCrQ0KK+ODnuOCqOOCtuODryzjg47jg5bjg6bjgq0NCivjg57jg44s44Oo44K344KqDQor44Oe44Or44Ov44KrLOODkuODh+ODiuOCqg0KK+OCpuODgeODpOODnizjgr/jg4TjgqoNCivjg57jgrnjg4As44K444Ol44OzDQor44Oe44OE44KkLOOCt+OCsuOCrQ0KK+ODnuODhOOCpCzjgrXjg4jjgrcNCivjg57jg4Tjg6Ljg4gs44K344Oz44Kk44OBDQor44Oe44OE44Oi44OILOODkuOCteODiA0KK+ODnuODhOODiuOCrCzjg57jgrXjg4jjgrcNCivjg57jg4Tjgrfjg54s44Oi44Oq44OS44OtDQor44Oe44OE44K344K/LOOCv+ODgOOCtw0KK+ODnuODhOOCtuOCrSzjgr/jgrHjgrcNCivjgqTjg4rjgqTjgrcs44Oo44K344KqDQor44Of44Kr44OfLOOCseOCpOOCpOODgQ0KK+ODn+ODiuOCrizjgqLjgq3jg5/jg4QNCivjg5/jg4Tjg6Tjg54s44Kz44Km44Kk44OB44Ot44KmDQor44Of44Km44OpLOOCt+OCsuOCrQ0KK+ODn+ODpOOCsSzjgqLjg4TjgrcNCivjg5/jg6Tjg6Ljg4gs44Ki44OE44KzDQor44Of44Ok44K/LOOCs+OCpuOCuA0KK+ODn+ODpOOCpuODgSzjg57jgrXjgq0NCivjg5/jg6Tjgqbjg4Es44Kk44OB44Ot44KmDQor44Of44Ok44K244OvLOOCouOCreODqQ0KK+ODn+ODpOOCtuODryzjgr/jgqvjgrcNCivjg5/jg6jjg4As44K/44Kr44OS44K1DQor44Of44K+44OW44OBLOOCseODs+OCuA0KK+ODn+OCvuOCvyzjgr/jgrHjgqoNCivjg4Hjg5As44OS44Ot44OS44K1DQor44Of44K644OP44K3LOODnuOCs+ODiA0KK+ODn+OCuuODnuODgSzjgrvjgqTjgrgNCivjg5/jgrrjgr/jg4ss44K144OI44K3DQor44Of44K644K/44OLLOODhOODqOOCtw0KK+ODn+OCuuOCv+ODiyzjg5Ljg63jg6bjgq0NCivjg6Ljg4Hjgrrjgq0s44Of44OO44OrDQor44Oi44Oq44Oi44OILOODiuODiuOCsw0KK+ODouODquOCv+ODiyzjgr/jgqvjgrcNCivjg6Ljg6rjgr8s44OI44Oo44OS44KzDQor44Oi44Oq44K/LOOCv+OCq+OCtw0KK+ODouODquODr+OCrSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjgqrjgq/jgqQs44K/44Kx44OS44KzDQor44Oi44OqLOOCv+OCseODnw0KK+ODouODqizjgr/jgqvjg6bjgq0NCivjg6DjgrPjg6Tjg54s44OS44Ot44Om44KtDQor44Og44Op44OGLOOCt+ODs+OCpOODgQ0KK+ODoOODiOOCpizjgqvjg4Tjgq0NCivjg4rjgqzjgqQs44Of44OE44OS44OtDQor44OK44Ks44OOLOODn+ODhOODiOOCtw0KK+ODiuOCrOOCquOCqyzjgr/jgqvjg5Ljg60NCivjg4rjgqzjgrss44Kr44OE44OfDQor44OK44Ks44K/LOODkuODreODpuOCrQ0KK+ODiuOCrOOCvyzjg6Ljg4jjgq0NCivjg4rjgqzjg68s44K344Oz44Kk44OBDQor44OK44Kr44Oe44OrLOODqOOCt+OCrQ0KK+ODiuOCq+ODoOODqSzjgqLjgq3jg6kNCivjg4rjgqvjg6Djg6ks44OI44Oi44KzDQor44Ki44OZLOODqOOCpuOCpOODgeODreOCpg0KK+ODiuOCq+ODoOODqSzjg4jjgrfjg6QNCivjg4rjgqvjg6Djg6ks44Ki44Kt44OpDQor44OK44Kr44K344OeLOODkuOCteODqOOCtw0KK+ODiuOCq+OCt+OCqizjg5Ljg63jg6bjgq0NCivjg4rjgqss44OO44Oq44KzDQor44OK44Of44KtLOODjuODquOCq+OCug0KK+ODiuODs+ODlizjg5Ljg63jgrfjgrINCivjg6Tjg57jgrDjg4Es44K344Oz44K4DQor44OL44Kk44OfLOOCt+OCsuODleODnw0KK+ODi+OCt+ODgCzjg5Ljg63jg6jjgrcNCivjg4vjgrfjg4As44Ko44Kk44K4DQor44OL44K344OALOODnuOCteOCouOCrQ0KK+ODi+OCt+ODgCzjgrnjgrnjg6ANCivjg4vjgrfjgq/jg5ws44Ki44Kt44OS44OtDQor44OL44K344Og44OpLOOCv+OCq+OCouOCrQ0KK+ODi+OCt+ODoOODqSzjg4Tjg6jjgrcNCivjg4vjgrfjgqos44Oe44K144OIDQor44OL44K344KqLOOCt+ODs+OCuA0KK+ODi+OCt+ODpOODnizjgr/jgqvjgrcNCivjg6Tjgqzjg68s44Kx44Kk44K4DQor44OL44OD44K/LOODkuODreODnw0KK+ODjuODmeOCquOCqyzjgqLjgq3jg5sNCivjg47jgrjjg6os44Oo44K344OO44OWDQor44OO44Og44OpLOODhuODhOODpA0KK+ODjuODiuOCqyzjgqvjg4TjgrcNCivjgqrjg5Djg4os44Of44OO44OrDQor44Kq44OB44Ki44KkLOODiOOCt+ODpuOCrQ0KK+OCquODgeODn+OCuizjgr/jgqvjgrcNCivjgqrjg4Es44Of44OE44OO44OqDQor44Kq44OA44Kq44Kq44OP44OpLOOCt+ODs+OCtA0KK+OCquODgCzjg5Ljg63jgqvjgroNCivjgqrjgqzjgr8s44Oe44K144KtDQor44Kq44Ks44OvLOODnuOCteODiOOCtw0KK+OCquOCrOODryzjgqjjg4TjgrMNCivjgqrjgrDjg6ks44OK44Kq44Om44KtDQor44Kq44Kq44OS44OpLOODjuODluODpuOCrQ0KK+OCquOCquODkuODqSzjgqTjg4Hjg63jgqYNCivjgqrjgqrjgqTjgrcs44Ki44Kt44OpDQor44Kq44Kq44Kk44K3LOODnuOCs+ODiA0KK+OCquOCrSzjgqvjg6YNCivjgqrjgqrjgq/jg5ws44Kr44K644KzDQor44Kq44Kq44OOLOOCseOCpOOCsw0KK+OCquOCquODjOODnizjgrfjgrLjg47jg5YNCivjgqrjgqrjg4zjg54s44OK44Or44K3DQor44Kq44Kq44K/44KtLOODnuOCteODkuODhw0KK+OCquOCquOCvyzjg4jjgqrjg6sNCivjgqrjgqrjgr8s44Oo44K344OK44KsDQor44Kq44Kq44K/LOOCs+OCpuOCpOODgQ0KK+OCquODiCzjg57jgrXjgrrjg58NCivjgqrjgqrjg4Tjg5ws44OS44Ot44OV44OfDQor44Kq44Kq44Ok44KuLOODnuOCteODkuODrQ0KK+OCquOCquODpOODnizjgqLjg4TjgrcNCivjgqrjgqTjgqgs44Kr44K644OkDQor44Kq44K444OeLOOCouOCreODqQ0KK+OCquOCq+ODmSzjgqTjg4Hjg63jgqYNCivjgqrjgqvjg4As44OI44Kq44OrDQor44Kq44Kr44Oi44OILOODnuOCteOCrQ0KK+OCquOCq+ODjSzjgr/jgqvjgrcNCivjgqrjgqvjg44s44OS44OH44KqDQor44Kq44Kr44OOLOODnuOCteOCsw0KK+OCquOCq+OCtuOCrSzjg4/jg6vjg5LjgrMNCivjg6/jgr/jg4rjg5ks44Oe44K144OI44K3DQor44Kq44Kv44OALOOCouODhOODkuODrQ0KK+OCquOCr+ODjizjgqvjg4TjgrcNCivjgqrjg4rjg6Qs44Kr44K644KzDQor44Kq44OOLOOCreODqOOCtw0KK+OCquODjizjgrfjg7Pjg6QNCivjgqrjgqrjg44s44Om44K/44KrDQor44Kq44K144OK44KkLOOCreODqOOCouOCrQ0KK+OCquOCtuOCrSzjg5Ljg4fjgqoNCivjgrXjgqTjg4jjgqYs44Oo44K344OfDQor44K144Kk44OI44KmLOOCuOODpeODsw0KK+OCteOCuCzjg6Tjgrnjg5Ljg4cNCivjgrXjgrgs44Kr44K644KqDQor44K144Kr44KkLOOCq+OCuuODkuOCsw0KK+OCteOCq+OCpCzjg4jjg6LjgrnjgrENCivjgrXjgqvjgq/jg6ks44K/44Kr44OS44OtDQor44K144Kr44Km44KoLOODpOOCueODpuOCrQ0KK+OCteOCteODmSzjg57jgrPjg4gNCivjgrXjgrXjgq0s44OS44OH44Kr44K6DQor44OK44Of44KtLOODkuODreOCtw0KK+OCteOCv+OCsSzjgqvjg4Tjg5Ljg60NCivjgrXjgr/jgrEs44Ov44KtDQor44K144OI44KmLOOCt+ODpeOCpuOCpOODgQ0KK+OCteODiOOCpizjgr/jgrHjgrcNCivjgrXjg4jjgqYs44OK44Kq44KtDQor44K144OI44KmLOODpuOCpuOCvuOCpg0KK+OCteODiOOCpizjgrfjgrLjgq0NCivjgrXjg4jjgqYs44OS44Ot44K3DQor44K144Ov44OALOODj+OCuOODoQ0KK+OCu+OCreOCsOODgSzjg5Ljg63jgqLjgq0NCivjgrvjgq3jg6Ljg4gs44OI44K344Om44KtDQor44K744Kt44ONLOOCreOCpOODgQ0KK+OCu+OCreOCquOCqyzjg57jg6Ljg6sNCivjgrvjgq3jg6Qs44OS44Ot44Ki44KtDQor44K744KtLOOCuOODpeODs+OCpOODgeODrQ0KK+OCu+ODs+OCvyzjg47jg6rjgqLjgq0NCivjgrfjg5Djgr8s44K144OI44K3DQor44K344Kk44OKLOODleODn+ODj+ODqw0KK+OCt+OCpOODpCzjg5Ljg4fjgq0NCivjgrfjg57jg5Djg6Tjgrcs44Oe44Oi44OrDQor44K344Oe44OALOOCt+ODs+OCpOODgeODreOCpg0KK+OCt+ODnuODgCzjg5/jg4Hjg4jjgrcNCivjgrfjg57jg6Djg6ks44Ki44Kt44OS44OIDQor44K344Of44K6LOODkuODh+ODiOOCtw0KK+OCt+ODn+OCuizjgqTjgr/jg6sNCivjgrfjg6Ljg6Djg6ks44Kr44OE44Ki44KtDQor44K344OO44OALOOCs+OCpuOCuA0KK+OCt+ODjuODj+ODqSzjg6Ljg4jjg6bjgq0NCivjgrfjgqrjgrbjg68s44OO44OW44Om44KtDQor44K344Op44Kk44K3LOODpuOCpuOCuA0KK+OCt+ODqeOCteOCrSzjg6jjgqbjgrMNCivjgrfjg6njg4jjg6os44OS44OH44K4DQor44K344K144KkLOODnuOCteODkuODrQ0KK+OCt+ODp+OCpuODgCzjgrHjgqTjgrnjgrENCivjgr3jgqYs44OK44Kq44KtDQor44K944OO44OZLOODiOOCquODqw0KK+OCueODieOCpizjgrfjg6Xjg7PjgqTjg4ENCivjgrnjg4njgqYs44K144OI44KzDQor44K544Ku44Km44OpLOODiuOCquOCrQ0KK+OCueOCruODpOODnizjg6rjg6fjgqbjgqTjg4ENCivjgrnjgq7jg6Tjg54s44OI44Oi44K4DQor44K544Of44OALOODkuODreOCrQ0KK+OCueODn+OCq+ODryzjg5Ljg4jjgrcNCivjgrnjgrrjgq0s44Of44ON44Kr44K6DQor44K544K644KtLOODkuODreOCtw0KK+OCueOCuuOCrSzjgqLjg4TjgrcNCivjgrnjgrrjgq0s44OI44K344OK44OqDQor44K544K644KtLOODqOOCt+ODpuOCrQ0KK+OCueOCuuOCrSzjg6Tjgrnjgr4NCivjgrnjgrrjgq0s44OP44K444OhDQor44K544K644KtLOOCq+OCuuOCouOCrQ0KK+ODm+OCveOCq+ODryzjg6bjg6oNCivjgr/jg5bjgrcs44Kk44Kv44K/DQor44K/44OB44K244OvLOODjuODquODleODnw0KK+OCv+ODgCzjgr/jgqvjgqLjgq0NCivjgr/jg4As44OS44Ot44OI44K3DQor44K/44Kr44K/LOODpuOCpuOCueOCsQ0KK+OCv+OCq+OCrOOCrSzjg5Ljg4fjgqvjgroNCivjg6Tjg57jgrbjgq0s44OK44Kq44KtDQor44K/44Kr44OP44K3LOODqOOCt+ODhOOCsA0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jgq0NCivjgr/jgqvjg4/jgrcs44Oe44K144Ok44K5DQor44K/44Kr44OOLOOCv+OCq+ODkuODrQ0KK+OCv+OCq+OCteOCrSzjgr/jgqvjgrcNCivjgr/jgqvjgrks44Kr44K644OoDQor44K/44Kr44OI44OqLOOCs+OCpuOCuA0KK+OCv+OCq+ODpOODnizjg57jgrXjg58NCivjgr/jgqvjg6Tjg54s44K344Ky44OrDQor44K/44Kr44Ok44OeLOODpuOCpuOCuA0KK+OCv+OCq+ODpCzjg6jjgrfjgqvjgroNCivjgr/jgrHjg4As44K/44Ko44KzDQor44K/44Kx44OALOODkuODreODpuOCrQ0KK+ODnuODhOOCquOCqyzjg6jjgrfjg5Ljg60NCivjgr/jgrHjgqQs44OO44OW44OS44KzDQor44K/44Kx44Km44OBLOODiOODouOCquOCrQ0KK+OCv+OCseOCpuODgSzjg47jg6rjg4jjgrcNCivjgr/jgrEs44Kx44Kk44KzDQor44K/44Kt44Of44OkLOODiOODouODkuODrQ0KK+OCv+ODnuOCv+ODiyzjgqvjgrrjgqLjgq0NCivjgr/jg6Djg6ks44Oo44K344OS44OtDQor44K/44Og44OpLOOCseODs+OCuA0KK+OCv+ODiuOCqyzjgqvjgrrjg5LjgrUNCivjgr/jg4rjgqss44OI44Oi44Ok44K5DQor44K/44OK44KrLOOCouODpOOCsw0KK+OCv+ODiuOCqyzjg47jg6rjg5Ljg60NCivjgr/jg4vjg6Ljg4gs44K344Oz44Kk44OBDQor44K/44OL44Ok44OeLOOCouOCreODkuOCsw0KK+OCv+ODs+ODjizjgqrjgrXjg6ANCivjgr/jg44s44OS44K144KqDQor44OG44Op44K244OvLOOCouOCreODqQ0KK+ODiOOCr+OCt+OCsizjgrXjg4jjg6sNCivjgrTjg4jjgqYs44OK44Kq44KtDQor44OI44Of44OK44KsLOODkuODreODkuOCtQ0KK+ODiOODs+OCt+ODp+OCpizjg5Ljg4fjg6bjgq0NCivjg4Tjg5zjgqQs44K344On44Km44Kk44OBDQor44OE44Oc44K/LOOCt+ODp+OCpuOCuA0KK+ODhOOCuOODoOODqSzjg4rjgqrjgq0NCivjg57jg4Tjg6Djg6ks44Ki44Kt44OpDQor44OE44Kr44OALOODkuODh+OCrQ0KK+ODhOODjeODqOOCtyzjgrXjg4jjg58NCivjg4Tjg6vjgqrjgqss44Oe44K144OkDQor44OE44OrLOODqOOCt+OCqg0KK+OCpuODgeODgCzjg5Ljg4fjg6bjgq0NCivjgqbjgqjjg4As44K/44Oi44OEDQor44Km44Oh44K144KtLOOCreODqOOCtw0KK+OCpuODqeOCq+ODryzjg6bjgqbjgrgNCivjgqbjg6njgqvjg68s44Kr44K644K3DQor44Ov44OALOOCuOODpeODsw0KK+ODr+OCq+ODkOODpOOCtyzjgrHjg7PjgrgNCivjg6/jgqvjg57jg4Qs44Oo44K344Kr44K6DQor44Ov44K/44OK44OZLOOCouODhOOCsw0KK+ODr+OCv+ODiuODmSzjgr/jgqvjgrcNCivjg6/jgr/jg6os44Kz44Km44K4DQor44Ok44OZLOOCs+OCpuOCpOODgQ0KK+ODpOODj+OCrizjgrfjg7PjgrgNCivjg6Tjg57jg4As44Kr44K644OS44OtDQor44Ok44Oe44OALOOCq+OCuuODkuODrQ0KK+ODpOODnuOCs+OCtyzjg57jgrXjg6bjgq0NCivjg6Tjg57jg6Ljg4gs44K944Km44Kk44OBDQor44Ok44Oe44Oi44OILOOCouODhOOCtw0KK+ODpOODnuODouODiCzjg6jjgqbjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44K144OBDQor44Ok44Oe44Oi44OILOODnuOCteODnw0KK+ODpOODnuOCpuODgSzjg4jjgqrjg6sNCivjg6Tjg57jg44s44OS44Ot44OV44OfDQor44Ok44Oe44Kq44KrLOODiOODouOCv+OCqw0KK+ODpOODnuOCt+OCvyzjg4jjgrfjg5Ljg4cNCivjg6Tjg57jgqbjg4Es44K/44Kx44K3DQor44Ok44Oe44K244KtLOODkuODreODnuOCtQ0KK+ODpOODnuOCtuOCrSzjg6bjgqvjg6oNCivjg6Tjg4rjgq7jgrfjg54s44Oe44K544OfDQor44Ok44Oe44Oi44OILOODn+OCq+OCsw0KK+ODpOODjizjgr/jgqvjg5LjgrMNCivjg6Tjgrbjgq0s44K/44Kx44K3DQor44Oo44K0LOODpOOCueODj+ODqw0KK+ODqOOCs+OCpCzjgqvjg4Tjg57jgrUNCivjg6jjgrPjg5/jgr4s44OI44K344KtDQor44Oo44Kz44K/LOODpuOCpuOCuA0KK+ODqOOCs+OCvyzjg5LjgrXjgqoNCivjg6jjgrPjgr8s44Om44Km44KzDQor44Oo44K344OALOOCt+ODs+OCpOODgeODreOCpg0KK+ODqOOCt+ODgCzjg57jg4HjgrMNCivjg6jjgrfjg5XjgrUs44Kk44Kv44OV44OfDQor44Oo44K344OP44OpLOODiOODouODnuOCtQ0KK+ODqOOCt+OCpOOCqCzjg4/jgrjjg6ENCivjg6jjgrfjgqvjg68s44OB44KoDQor44Oo44K344Kr44OvLOODn+ODhOODkuODrQ0KK+ODqOOCt+OCqizjg6bjgqbjgrgNCivjg6bjgqLjgrUs44Oe44K144Oo44K3DQor44Om44KtLOOCouOCreODqQ0KK+OCouODgOODgSzjg4jjgrfjg6bjgq0NCivjgqrjgqrjg4vjgrcs44Kr44K644KqDQor44Kq44Kq44K/LOODn+ODr+OCsw0KK+OCouOCteODjizjg5/jg4HjgrMNCivjg4vjgrfjg6Djg6ks44Of44OE44Oo44K3DQor44Ok44Oe44OALOODkuODreODjuODqg0KK+OCteOCpCzjgq/jg4vjgqoNCivjg5/jg6Tjg6Ljg4gs44Kr44K644KqDQor44K544K644KtLOOCq+OCuuODkuOCsw0KK+ODleOCr+OCpCzjgq/jg4vjg6QNCivjgqrjgq/jg4As44OS44K144KzDQor44K144Kk44OI44KmLOOCv+OCq+OCqg0KK+ODleODq+ODpCzjgqvjg4Tjg58NCivjg6Ljg4jjg6Tjg54s44OK44Kq44OS44OtDQor44Oo44K344K244KtLOODpuOCpuOCpOODgQ0KK+ODiuOCq+ODoOODqSzjgqLjg4Tjg63jgqYNCivjg4jjgq3jg68s44K344Ol44Km44Kk44OBDQor44Kk44OK44OALOODnuOCteODhOODig0KK+ODiOOCreODryzjg47jg6rjg6bjgq0NCivjg6jjgrfjg4As44K/44Kr44Om44KtDQor44K/44Kr44OOLOOCseOCpOOCsw0KK+OCpuOCqOODgCzjg4jjg6LjgrMNCivjg4Tjg4Hjg6Qs44Om44Km44KzDQor44K344Oi44Kr44OvLOODleODn+ODkuOCsw0KK+ODnuODhOOCpCzjgqvjg4Tjg58NCivjgrnjgqzjg6Qs44Oo44K344KqDQor44Of44OO44Kw44OBLOODpOOCueOCsw0KK+OCpuOCqOODgCzjg5Ljgqvjg6sNCivjgqTjg44s44OI44Oi44K4DQor44Oe44Ko44OALOODnuOCs+ODiA0KK+ODhOODnOOCvyzjg47jg6rjgqoNCivjg6jjgrfjg58s44Kk44Kv44KqDQor44Kk44OB44Kr44OvLOOCt+OCsuODkuODrQ0KK+ODm+ODqizjg5Ljg4fjg6QNCivjg4/jg6Tjgrcs44Om44K/44KrDQor44K344OQ44K/LOOCpOOCr+OCsw0KK+OCs+ODkOODpOOCtyzjg57jgrnjg5LjgrMNCivjgqrjgqrjgq/jg5ws44K/44Kx44K3DQor44Kk44Ov44K/LOODjuODluODpuOCrQ0KK+ODleOCuOOCvyzjg57jgrXjg5Ljg60NCivjgq3jgr/jg6Djg6ks44Kr44K644KqDQor44Kv44Ot44KtLOOCseOCpOOCsw0KK+ODpOODnuODouODiCzjgr/jgqvjgrcNCivjg6Tjg57jg5Djgr8s44Om44Kt44KzDQor44K144Kk44OI44KmLOOCt+ODpeOCpuOCpOODgQ0KK+ODleOCuOODr+ODqSzjgr/jg4DjgrcNCivjgqTjg4jjgqYs44Kr44K644OIDQor44Kk44Kk44KxLOODiOOCquODqw0KK+OCteODoOOCq+ODryzjgqLjgq3jg47jg6oNCivjgqLjgrrjg54s44Oe44K144KtDQor44Ki44Kq44KtLOOCouODhOOCtw0KK+ODleOCuOOCvyzjg4Tjg43jgqoNCivjg5/jg6jjgrcs44OI44K344Kr44K6DQor44K744Kt44Ok44OeLOODqOOCt+OCqg0KK+ODhuODqeODgCzjg4bjg6vjg5LjgrUNCivjgqjjg7Pjg4ks44K/44Kx44K3DQor44Kr44Kt44Oi44OILOOCseODs+OCuOODreOCpg0KK+ODleODq+ODpCzjgqTjg6/jgqoNCivjg57jgq3jg6Djg6ks44K/44Kx44KqDQor44Kz44Oz44OOLOODkuODreOCtw0KK+OCueOCruOCteOCrSzjg4jjgrfjg6bjgq0NCivjg6jjgrfjg4As44K344Ky44KqDQor44OP44Ku44Ov44OpLOODkuODreOCtw0KK+ODpOOCtuOCrSzjg6bjgqbjgrgNCivjg4vjg47jg5/jg6Qs44Kr44K644KqDQor44Kz44K144KrLOODkuODreODpOOCuQ0KK+OCteODjizjgrfjg7PjgrQNCivjgrXjgqTjg4jjgqYs44OA44Kk44K544KxDQor44K344Oi44K7LOOCv+OCq+ODqOOCtw0KK+OCv+OCq+ODj+OCtyzjgqvjgrrjg5Ljg4gNCivjgr/jg4Tjgqrjgqss44Oe44K144KtDQor44K/44OQ44K/LOODqOOCt+OCv+OCqw0KK+ODiuOCquOCpCzjg57jgrXjgrMNCivjg4rjgqzjgr8s44Oe44K144KqDQor44OL44K344Kq44KrLOOCt+OCsuODqw0KK+ODnuODhOOCq+ODryzjgqLjg4TjgrcNCivjg5/jgrrjg44s44Om44Km44KzDQor44OI44Kv44OK44KsLOOCseOCpOOCsw0KK+ODoOODqeOCq+ODnyzjg5Ljg63jgq0NCivjg6Tjgrnjgqvjg68s44OI44K344OO44OqDQor44Ok44Oe44Kw44OBLOODpuOCreOCqg0KK+ODqOOCs+OCpuOCqCzjgr/jg4DjgrcNCivjgqLjgrrjg54s44OO44Oc44OrDQor44Kk44OK44OALOODn+ODhOODpuOCrQ0KK+OCpOOCt+OCpCzjg47jg5zjg6sNCivjgqTjg57jg4vjgrcs44K/44Kx44KqDQor44Kq44Kr44OOLOOCq+ODjeODn+ODhA0KK+OCreOCtyzjg4jjgrfjgrMNCivjgq/jg5zjgr8s44Oe44K144OO44OqDQor44Kz44Of44OK44OfLOODnuODpuODnw0KK+OCouOCpOODpOODnizjgrfjg6fjgqbjgrjjg63jgqYNCivjgrXjg44s44OB44Kr44OpDQor44K/44Kt44Ks44OvLOOCt+OCsuODqOOCtw0KK+OCs+ODs+ODjizjg5Ljg63jg6TjgrkNCivjgrvjg7Pjg4DjgqQs44K/44Kr44K3DQor44OL44Ov44OOLOODkuODh+OCueOCsQ0KK+OCtyzjg4rjgqrjg6jjgrcNCivjgqvjg4jjgqYs44Kr44K644OK44OqDQor44Ki44Kr44K144KrLOOCr+ODi+OCqg0KK+OCquODs+OCuuOCqyzjg5Ljg63jgrcNCivjgrPjgqws44Kz44Km44Kk44OBDQor44OP44Ok44Kr44OvLOODiOODouODnw0KK+ODj+OCu+OCrOODryzjg57jgrXjg6jjgrcNCivjg5Xjg6vjgqvjg68s44K/44Kx44K3DQor44OV44K444Kr44OJLOODpuOCpuOCuA0KK+ODiOODjuOCq+ODryzjgr/jgrHjgrcNCivjg57jg4Tjgqos44Oo44K344KqDQor44Kt44Of44K644KrLOODnuOCteODjuODqg0KK+OCquODgSzjg57jgrPjg4gNCivjgqTjg4HjgrPjg4/jg6ks44Oe44K144Ok44K5DQor44Kk44Kx44OALOOCouOCreOCsw0KK+OCouODqeOCv+OCsSzjgqTjgq/jgqoNCivjgqTjgrHjg4As44OI44Kt44KqDQor44Kk44OI44KmLOODqOOCpuOCpOODgQ0KK+OCpOOCseODgCzjgqjjg4QNCivjgqTjgqTjg4As44Oe44K144OIDQor44Kq44Kq44Kv44OeLOOCq+OCuuOCqA0KK+OCr+OCteODkCzjg57jgrXjgq0NCivjgrPjg5Djg6Tjgrcs44K144Oo44KzDQor44K044OI44KmLOOCq+OCuuODpA0KK+OCueOCuuOCrSzjg6Ljg4jjg47jg6oNCivjgrvjgq3jg40s44OS44Ot44K3DQor44K/44Kr44OALOODiOOCt+ODpuOCrQ0KK+OCs+ODs+ODiSzjg6jjgqbjgrnjgrENCivjgr/jgrHjg6Tjg54s44Kx44Kk44K344Ot44KmDQor44K/44Kr44Kk44OBLOOCquOCteODoA0KK+OCveODgCzjgrHjg7PjgrgNCivjgr/jg44s44Oe44Kz44OIDQor44K344OO44K244KtLOOCteODiOOCtw0KK+ODj+ODqeODgCzjgqLjg6QNCivjgq/jg4njgqYs44Kr44OE44KzDQor44OE44OO44OALOODiuOCquOCsw0KK+ODleODq+OCq+ODryzjg4jjgrfjgqLjgq0NCivjg6Ljg6rjgr8s44Oe44K144Om44KtDQor44Ok44Oe44Oi44OILOODiOOCquODqw0KK+ODpOODnuOCt+OCvyzjg6jjgrfjg4/jg6sNCivjg6bjgqvjg68s44Oo44K344KqDQor44Oo44K344OALOOCqOOCpOOCsw0KK+ODj+ODpOOCtyzjg4jjgrfjgr/jgqsNCivjgr/jg7Pjg44s44Ko44Kk44Kk44OBDQor44K/44Kr44OP44K3LOODnuOCs+ODiA0KK+ODiuODquOCouOCpCzjg6jjgrfjg47jg6oNCivjgr/jgqvjg6Djg6ks44Ki44Kt44KqDQor44K/44Oz44OOLOODhuODhOOCqg0KK+OCs+ODkOODpOOCtyzjgrPjgqbjgqTjg4ENCivjgrTjg4jjgqYs44OI44Kq44OrDQor44K044Km44OALOOCreODp+OCpuOCsw0KK+ODiuOCq+OCt+ODnizjg5/jg4TjgqoNCivjg5vjgrfjg44s44OV44Of44K/44OADQor44Ov44KzLOODiuOCquOCrQ0KK+OCueOCuuOCrSzjgrfjgrLjgqoNCivjg6jjgrfjg57jg4Qs44Oe44K144Kv44OLDQor44OK44Of44Kq44KrLOOCt+ODs+OCuA0KK+ODpOODnuOCsOODgSzjg5Ljg63jgqvjgroNCivjgqTjgrfjg5Djgrcs44Oe44Kz44OIDQor44Kk44K344OALOOCu+ODs+ODpA0KK+OCpuODgeODpOODnizjgrvjgqTjgrgNCivjgqjjg7Pjg4ks44K344Ky44OrDQor44OK44Kr44OOLOODnuOCteODleODnw0KK+OCpOODnuOCpCzjgqvjgrrjgqoNCivjgqrjgrXjg4rjgqQs44Ki44OE44K3DQor44K144Kr44Oi44OILOOCreODqOOCtw0KK+OCt+OCquODnyzjg4HjgqvjgrcNCivjgrfjg57jgrbjgq0s44OK44Kq44KtDQor44OG44Or44OkLOODiOOCt+ODpA0KK+ODiuOCq+OCv+ODiyzjg4rjgqrjgq0NCivjg4/jgq7jg6/jg6ks44Kt44Oo44Kr44K6DQor44OS44Ks44K3LOOCt+ODp+OCpuOCsw0KK+ODm+ODquOCpuODgSzjg6jjgrfjgqoNCivjg5/jgr7jg63jgq4s44OK44Kq44KtDQor44Oi44OqLOOCv+ODouODhA0KK+OCpOODjuOCpuOCqCzjgr/jgrHjg5LjgrMNCivjgrfjg4As44Of44OB44OoDQor44Ok44Oe44Oi44OILOODn+ODgeOCsw0KK+ODpOODnuODouODiCzjg5Ljg4fjgqLjgq0NCivjgqrjgqrjgr/jgq0s44Kr44K644OkDQor44OV44K4LOOCteODiuOCqA0KK+OCouOCreODouODiCzjg57jg6Ljg6sNCivjgqTjgqTjgrjjg54s44Ki44Kt44KzDQor44Kq44Kw44OeLOODpuODn+OCsw0KK+OCteODiOOCpizjgr/jgqvjgqoNCivjg4Tjg4Hjg6Qs44Oo44K344OS44OtDQor44K144Kk44OI44KmLOOCq+OCuuODqOOCtw0KK+ODj+ODqSzjgrvjgqTjgqTjg4Hjg63jgqYNCivjg5Xjgrjjg57jgq0s44K344Oz44OkDQor44Og44Ot44K/LOODn+ODhOODnuOCtQ0KK+ODouODqizjg4jjgqrjg6sNCivjg5/jgr7jgrDjg4Es44OI44K344Om44KtDQor44Kk44Kx44OP44K/LOODkuODreODpuOCrQ0KK+OCquOCrOODryzjg5Ljg63jgr/jgqsNCivjgqbjgqjjg44s44Oe44K144OI44K3DQor44K/44OK44KrLOOCq+OCuuODkuODrQ0KK+OCs+ODkOODpOOCtyzjg57jgrXjgqvjgroNCivjgq/jg63jgrks44Ok44K544K4DQor44Kt44K/44Ks44OvLOODkuODreOCtw0KK+OCt+ODjuODnyzjg57jgrXjg6bjgq0NCivjg4/jgrss44Om44Km44K+44KmDQor44OG44Or44OM44OeLOODqOOCpuOCsw0KK+OCreOCr+ODgSzjgrXjg4jjgrcNCivjg4/jgrfjg6Ljg4gs44OO44Oq44Om44KtDQor44Kq44Kq44Kr44OvLOOCt+ODs+ODiA0KK+OCquOCquODi+OCtyzjgr3jgqbjgqTjg4ENCivjgqLjg5ks44Oe44K144OS44OIDQor44Ki44OA44OBLOODkuODh+OCrQ0KK+OCouODgOODgSzjg57jgrXjg4gNCivjgqLjg4Djg4Es44OI44K344Om44KtDQor44Ki44K0LOOCq+OCquODqg0KK+OCouOCpOODj+ODqSzjgqLjgq3jg5LjgrMNCivjgqLjgqTjg4/jg6ks44OS44OH44KqDQor44Ki44Kk44K244OvLOOCuOODpeODs+OCpOODgQ0KK+OCouOCq+ODnuODhCzjgr/jg4TjgqoNCivjgqLjgqvjg54s44OI44Oi44OfDQor44Ki44Kr44K7LOODnuOCteODpuOCrQ0KK+OCouOCq+ODpOODnizjgrfjg7PjgrLjg7MNCivjg5Xjgq/jgrfjg54s44OI44Oi44OODQor44Ki44Kt44OQLOODhOODiOODoA0KK+OCouOCreODjizjg4/jg6vjgq0NCivjgqLjgq3jgrfjgqss44Om44Km44K4DQor44OK44Oh44KtLOODiuOCquODnw0KK+OCouOCreOCuuOCrSzjgrfjg7PjgqTjg4ENCivjgqLjg57jg4As44Om44Kt44KqDQor44Ki44Oe44OOLOODiOOCquODqw0KK+OCouODn+ODjizjg47jg5bjg4/jg6sNCivjgqLjg7Pjg5ks44Ok44K544K3DQor44Ki44Oz44OJ44KmLOODkuODreODiOOCtw0KK+OCouODs+OCtuOCpCzjgr/jgqvjg6jjgrcNCivjgqLjg7PjgrbjgqQs44OS44Ot44K3DQor44Ki44Kq44KtLOOCteODiOOCtw0KK+OCouOCquODpOOCrizjgr/jgqvjgqoNCivjgqLjgqrjg6Tjgq4s44OS44Ot44Om44KtDQor44Ki44Kq44Ok44KuLOODkuOCteOCtw0KK+OCouODqeOCq+ODryzjgr/jgqTjgrnjgrENCivjgqLjg6njgqvjg68s44Oe44K144Om44KtDQor44Ki44Op44KtLOODiOOCt+ODpuOCrQ0KK+OCouODqeODpOOCuSzjg5Ljg4jjgrcNCivjgqLjg6ks44Ki44Kt44KqDQor44Ki44Oq44K/LOOCreODp+OCpuOCsw0KK+OCouOCteODgCzjgq/jg4vjgqoNCivjgqLjgrXjg4As44OS44Ot44Ki44KtDQor44Ki44K144Kr44OvLOODjuODquOCqA0KK+OCouOCteOCr+ODqSzjg4jjg6Ljg6bjgq0NCivjg4rjgqvjgrXjg4gs44Ki44Kt44OpDQor44Ki44K144OOLOODqOOCt+ODkuODrQ0KK+OCouOCteODqizjgqvjgrrjgq0NCivjgqLjg4Tjg58s44Ki44Kt44Oo44K3DQor44Ki44Ov44KrLOOCq+ODhOODnw0KK+ODkOODkCzjgqvjgrrjg5Ljg60NCivjg5Djg7Ms44Kx44Oz44K+44KmDQor44OQ44OzLOODr+OCv+ODqw0KK+ODkOODsyzjgrPjgqbjgr/jg63jgqYNCivjg4Hjg6fjgqbjgrUs44Oe44K144K3DQor44OA44Kk44OJLOOCseOCpOOCt+ODsw0KK+ODgOOCpOODouODsyzjg4rjgqrjg5LjgrMNCivjg4fjg6Djg6ks44Oo44K344OIDQor44OJ44KkLOOCv+OCq+OCtw0KK+OCqOODk+ODjOODnizjgqLjgrHjg58NCivjgqjjgrDjg4Es44K444Ol44OzDQor44Ko44OP44OpLOOCq+OCuuOCqg0KK+OCqOODiuODnyzjg4rjg4TjgrMNCivjgqjjg4jjgqYs44Oo44K344OK44OrDQor44Kk44Ov44K144KtLOOCq+OCuuOCqg0KK+OCqOOCtuOCrSzjg6bjgqbjgrgNCivjg5Xjgrjjgqjjg4As44K444Ol44OzDQor44OV44K444KoLOOCs+OCpuOCpOODgQ0KK+ODleOCuOOCrOOCrSzjg6jjgrfjg4HjgqsNCivjg5XjgrjjgqQs44OI44K344Om44KtDQor44OV44K444KkLOOCouOCreODqQ0KK+ODleOCuOOCpCzjgrjjg6Xjg7PjgqTjg4ENCivjg5XjgrjjgqQs44Of44Om44KtDQor44OV44K444KkLOOCt+OCsuODjuODqg0KK+ODleOCuOOCq+ODryzjgrfjg7PjgqTjg4ENCivjg5Xjgrjjg6Ljg6os44OI44Oi44OODQor44OV44K444Oi44OILOOCt+ODp+OCpuOCtA0KK+ODleOCuOODouODiCzjgrfjg44NCivjg5Xjgrjjg44s44K/44Kr44K3DQor44OV44K444Kq44KrLOODpOOCueOCtw0KK+OCquOCsOODqSzjgqLjg6TjgrMNCivjg5Xjgrjjgr8s44Oe44K144OIDQor44OV44K444K/LOOCteODiOODqw0KK+ODleOCuOOCvyzjg6bjgq3jgqoNCivjg5Xjgrjjgr8s44K344On44Km44K4DQor44OV44K444Ov44OpLOODkuODreOCtw0KK+ODleOCq+ODgCzjgqLjg4TjgrcNCivjg5Xjgqvjgqos44Of44OE44OS44OtDQor44OV44Kr44KqLOODn+OCteOCrQ0KK+ODleOCq+OCuywNCivjg5Xjgq/jg4Es44Oo44K344OS44OtDQor44OV44Kv44OALOODpuOCpuOCsw0KK+ODleOCr+ODgCzjg5Xjg5/jg5LjgrMNCivjg57jg4Tjgqvjg68s44OS44OH44KqDQor44OV44Kv44OALOODn+OCqw0KK+ODleOCr+ODgCzjg6bjgq3jgrMNCivjg5Xjgq/jg4As44Kx44Oz44K4DQor44OV44Kv44OP44OpLOODpuOCreOCqg0KK+ODleOCr+OCpCzjg5Ljg63jgrcNCivjg5Xjgq/jgqQs44K444Ol44Oz44Kk44OBDQor44OV44Kv44Kq44KrLOOCt+ODs+OCtA0KK+OCt+OCrCzjg4rjgqrjg4gNCivjg5Xjgq/jgrfjg54s44Ki44OE44K3DQor44OV44Kv44K344OeLOODgeOCq+OCsw0KK+ODleOCr+OCt+ODnizjg4rjgqrjgq0NCivjgqrjgqrjg44s44OK44Kq44KtDQor44OV44OK44OELOODiOOCt+ODpuOCrQ0KK+OCtOOCpuODgCzjg6jjg6rjgrMNCivjgrTjgqbjg4As44OS44OH44Ki44KtDQor44K044KmLOOCq+OCpOODreOCpg0KK+OCs+OCsOODrCzjgq3jg7Pjg6QNCivjgrTjg4jjgqYs44K/44Kr44K3DQor44K044OI44KmLOODpuOCreODqA0KK+ODj+OCrCzjg6rjg6fjgqbjgqTjg4ENCivjg4/jgq7jg6/jg6ks44Kt44Kv44KqDQor44OP44Oe44OALOOCouOCreOCqg0KK+ODnuOCqOODgCzjgrHjg7PjgqTjg4ENCivjg4/jg57jg4/jgr8s44OO44Oc44OrDQor44OP44Oe44OOLOODjuODluODkuODrQ0KK+ODj+ODiuODluOCtSzjg6rjg6XjgqbjgqTjg4Hjg63jgqYNCivjg4/jg4rjgr8s44Oo44K344K4DQor44OP44OK44Of44OELOODqOOCt+OCv+OCqw0KK+ODj+ODs+ODgCzjgrnjg5/jg4gNCivjg4/jg6njg4As44Ki44Ok44KzDQor44OP44Op44OALOODleODn+OCqg0KK+ODj+ODqeODgCzjgrjjg6Xjg7PjgqTjg4ENCivjg4/jg6njg4As44Oe44K144OO44OqDQor44OP44OpLOODnuOCteODpuOCrQ0KK+ODj+ODqSzjg5/jg6bjgq0NCivjg4/jgrvjgqzjg68s44Oe44Kz44OIDQor44OP44K344Kw44OBLOOCpOOCteOCqg0KK+ODj+OCt+ODouODiCzjg57jgrXjg4jjgrcNCivjg4/jgrfjg6Ljg4gs44OO44Oq44KtDQor44OP44K/44Kx44Ok44OeLOOCteODiOOCtw0KK+ODj+OCv+ODiuOCqyzjgq3jg6jjgrcNCivjg4/jg4Tjgrfjg54s44Kx44OzDQor44OP44OD44OI44OqLOODqOOCt+ODkuOCtQ0KK+ODj+ODg+ODiOODqizjg4Tjg43jg5LjgrUNCivjg4/jg4Pjg4jjg6os44Oe44K144KzDQor44OP44OD44OI44OqLOODleODn+OCqg0KK+ODj+ODg+ODiOODqizjg6bjgq3jg5LjgrMNCivjg4/jg4Pjg4jjg6os44Oo44K344OO44OqDQor44OP44Ok44Kr44OvLOOCouOCreODqQ0KK+ODj+ODpOOCt+ODgCzjg57jgrXjg6QNCivjgqvjg7Pjg4As44Kx44Oz44K4DQor44OP44Ok44K3LOOCs+OCpuOCuA0KK+ODj+ODpOOCtyzjg4Tjg6jjgrcNCivjg4/jg6Tjgrcs44OS44Ot44K3DQor44OP44Ok44K3LOOCq+ODhOODnw0KK+ODiOODk+OCq+ODryzjg5/jg6bjgq0NCivjg5LjgrLjgr8s44Oo44Km44Kk44OBDQor44OS44Kw44OBLOODn+ODhOODkuODrQ0KK+ODkuOCsOODgSzjg6bjgqbjgrMNCivjg5Ljgrjjgqvjg68s44Oo44K344OO44OqDQor44OS44Kr44KkLOODnuODieOCqw0KK+ODkuODiuOCvyzjgrjjg6Xjg7MNCivjg5Ljg44s44K344On44Km44Kk44OBDQor44OS44OOLOOCv+OCq+ODpuOCrQ0KK+ODkuODqeOCrizjg6TjgrnjgrcNCivjg6jjg6Ljg4As44Kr44K644OIDQor44OS44Op44OOLOODnuOCteODjuODlg0KK+ODkuODqeODjizjg5Ljg63jg6bjgq0NCivjg5Ljg6njgrXjg68s44Kr44K644OS44OtDQor44OS44Op44K/LOODnuOCteODkuODrQ0KK+OCouOCteODjizjg5Ljg63jgrcNCivjg5Ljg6njgr8s44OS44K144KqDQor44OS44Op44OE44KrLOOCv+OCseOCtw0KK+ODkuODreOCq+ODryzjg5Xjg5/jgqLjgq0NCivjg5Ljg63jg4rjgqss44Kr44K644OS44K1DQor44OS44Ot44K7LOODkuOCteODpuOCrQ0KK+OCv+OCt+ODrSzjgq3jg5/jgrMNCivjg5Ljg63jgrss44Oe44Kz44OIDQor44OS44K344OM44OeLOODkuODreODjuODlg0KK+OCpOODr+ODouODiCzjgrjjg6Xjg7MNCivjg5Ljgqbjg6ks44OS44OI44K3DQor44K544Ku44Oi44OILOOCu+OCpOOCpOODgQ0KK+ODm+ODs+ODnizjg6Tjgrnjg6bjgq0NCivjg5vjg7Pjg54s44OE44Oo44K3DQor44Ob44Oz44OeLOOCv+OCpOODqQ0KK+ODm+ODs+ODnizjgr/jg4Tjg63jgqYNCivjg5vjg6rjgqvjg68s44K444Ol44Oz44Kk44OBDQor44Ob44Oq44KqLOOCq+ODhOODqOOCtw0KK+ODm+ODqizjgqvjgrrjgqoNCivjg5vjg6os44Ki44OE44K3DQor44Ob44OqLOOCs+OCpuOCpOODgQ0KK+ODm+OCt+ODjizjgrfjg7PjgrgNCivjg5vjgrfjg44s44Ki44Kt44KzDQor44Ob44K344OOLOODleODiOOCtw0KK+ODm+OCtyzjg5Ljg63jgrMNCivjg5vjgr0s44Kr44K644OfDQor44Ob44K/44OGLOODpuOCqw0KK+OCpOODgeOCq+ODryzjg6bjg5/jgrMNCivjgqTjg4Hjgqvjg68s44K144OI44K3DQor44Kk44OB44KtLOOCv+OCseOCtw0KK+OCpOODgeODjuOCuyzjgqLjg6oNCivjgqTjg4As44OK44Kq44KtDQor44Kk44OH44KkLOODnuOCteOCq+OCug0KK+OCpOOCrOODqeOCtyzjg6bjgqbjgrgNCivjgqTjgrDjg4Es44K044KmDQor44Kk44Kk44OALOOCqOOCpOOCtuODluODreOCpg0KK+OCpOOCpOODgCzjg5XjgrjjgqoNCivjgqTjgqTjgrjjg54s44OS44Ot44Om44KtDQor44Kk44Kk44K444OeLOOCq+OCuuODjuODqg0KK+OCpOOCpOODoOODqSzjg6jjgrfjg47jg5YNCivjgqTjgqTjg44s44OS44OH44KtDQor44Kk44Kk44K644KrLOODkuODreOCtw0KK+OCpOOCpOOCuuOCqyzjgqvjg4Tjg5LjgrMNCivjg4/jg6vjgr8s44OI44K344KzDQor44Kk44Kx44OALOODiuOCquODkuODrQ0KK+OCueOCuuOCrSzjg4jjgqrjg6sNCivjgqTjgrHjg4As44Kv44OL44OS44OtDQor44Kk44K944OZLOOCs+OCpuOCuA0KK+OCpOOCseODpOODnizjgrnjgq7jgqoNCivjgqTjgq/jgr8s44OI44K344Ki44KtDQor44Kk44Oe44Kk44K644OfLOODgeOCuuOCsw0KK+ODouODquOCt+OCvyzjgrfjgrLjgq0NCivjgqTjg57jgqQs44K/44OA44K3DQor44Kk44Oe44Og44OpLOODnuODiuODlg0KK+OCpOODnuODoOODqSzjg47jg6rjg6bjgq0NCivjgqTjg4rjg58s44Kx44Oz44OkDQor44Kk44OO44Km44KoLOODpOOCueODkuODhw0KK+OCpOODjuOCpuOCqCzjg5Ljg63jgrcNCivjgqTjg47jgqbjgqgs44OS44Ot44K3DQor44Kk44OO44Km44KoLOODkuODreOCv+OCqw0KK+OCpOODjuOCpuOCqCzjg5/jg4TjgrMNCivjgqTjg4zjgqQs44Om44Kt44OI44K3DQor44Kk44K344OALOODnuODiuODlg0KK+OCpOOCt+ODgCzjg4jjgrfjg5Ljg60NCivjgqTjgrfjg4As44Om44K/44KrDQor44Kk44K344Kw44OtLOODnuODqg0KK+OCpOOCt+OCsOODrSzjg5Ljg63jgrcNCivjgqTjgrfjg4/jg6ks44K444Ol44Oz44Kk44OBDQor44Kk44K344KkLOOCq+OCquODqw0KK+OCpOOCt+OCpCzjgrHjgqTjgqTjg4ENCivjgqTjgrfjgqQs44Kz44Km44K4DQor44Om44Kt44Oe44K1LOODnuOCteODiOOCtw0KK+OCpOOCt+OCq+ODryzjgr/jgqvjgrcNCivjgqTjgrfjgqvjg68s44Oo44Km44KzDQor44Kk44K344Kv44OpLOODpuOCv+OCqw0KK+OCpOOCt+ODouODqizjg5Ljg63jgqLjgq0NCivjgqTjgrfjg6Ljg4gs44Oq44KoDQor44Kk44K344Oi44OILOOCteODgeOCsw0KK+OCpOOCt+OCquOCqyzjg6bjgqsNCivjgqTjgrfjgqrjgqss44OO44OW44KqDQor44Kk44K344Ov44K/LOODiuOCquODkuOCtQ0KK+OCq+ODsyzjg6jjgqbjgqTjg4Hjg63jgqYNCivjgqTjgrfjgrbjgqss44Kr44Oo44KzDQor44Kk44K944Ks44KkLOOCv+OCq+ODkuODrQ0KK+OCpOOCv+ODkOOCtyzjgrfjg7PjgqTjg4ENCivjgqTjgr/jg5Djgrcs44K344Ky44KtDQor44K144Ku44OkLOODkuODh+OCouOCrQ0KK+OCpOODiOOCpizjg4bjg4Tjg6QNCivjgqTjg4jjgqYs44Ki44Kx44OfDQor44Kk44OI44KmLOODjuOCvuODoA0KK+OCpOODiOOCpizjg4rjgqrjg6jjgrcNCivjgqTjg4jjgqYs44Kr44K644K344KyDQor44Kk44OI44KmLOODiuOCquODpuOCrQ0KK+OCpOODiOOCpizjgr/jgqvjgrcNCivjgrXjgqvjgqQs44Kz44Km44Kk44OBDQor44Kk44OI44KmLOOCq+OCuuODpuOCrQ0KK+OCpOODr+OCpCzjgqvjgqrjg6sNCivjgrfjg57jg6Djg6ks44OV44K144OB44KrDQor44Kk44Ov44KkLOOCreODp+OCpuOCsw0KK+OCq+ODr+ODiuOCqyzjgqvjgrrjg58NCivjgqTjg6/jgq/jg5ws44K/44Kr44Om44KtDQor44Kk44Ov44Oi44OILOOCteODpOOCqw0KK+OCpOODr+ODouODiCzjg5Ljg4fjgqLjgq0NCivjgr/jgrHjg4As44K144OB44KzDQor44Kk44Ov44Og44OpLOODkuODreODpuOCrQ0KK+OCpOODr+ODiuOCrCzjg5Ljg4fjgqoNCivjgqTjg6/jgqos44Kz44Km44Kk44OBDQor44Kk44Ov44K144KtLOOCv+ODhOODkuOCsw0KK+OCpOODr+OCteOCrSzjg4jjg6njg5LjgrMNCivjgrvjgqzjg68s44Oe44K144K/44KrDQor44Kk44Ov44K344OtLOODqOOCt+ODkuOCtQ0KK+OCpOOCuuODnyzjg57jgrPjg4gNCivjgqvjgqjjg6rjg6Tjg54s44OK44Kq44KtDQor44Kr44Ks44OfLOOCpOOCr+OCqg0KK+OCq+OCrOODnyzjgrfjgrLjg6jjgrcNCivjgqvjgrjjgr/jg4ss44Kr44K644OS44KzDQor44Ok44Oe44Oi44OILOOCqOOCpOOCpOODgQ0KK+OCq+OCreODjOODnizjg5Ljg63jgqLjgq0NCivjgqvjgq8s44OS44Ot44Om44KtDQor44Kr44Oe44OALOODnuOCs+ODiA0KK+OCpOODiuOCrOOCrSzjg57jgrXjgqgNCivjgqvjg57jg6Ljg4gs44K/44Ko44KzDQor44Kr44Oe44K/44OLLOODiuOCquODleODnw0KK+OCq+ODnuOCvyzjg4jjg6LjgrMNCivjg6Tjg57jg4As44Ko44Kk44K4DQor44Kr44Oh44OALOOCouOCreOCsw0KK+OCq+ODoeODpCzjg5Ljg4fjgq0NCivjgqvjg58s44Oe44Kz44OIDQor44Kr44Of44KqLOODnuODiuODnw0KK+OCq+ODn+ODpCzjg57jgrXjg47jg6oNCivjgqvjg6Ljg4gs44Oo44Oq44KzDQor44Kr44OK44OALOODnuOCteOCv+OCqw0KK+OCq+ODiuOCpCzjgq3jg6fjgqbjgrMNCivjgqvjg4rjgqQs44Oq44Ko44KzDQor44Kr44OK44K244OvLOOCteODgOOCpOODgQ0KK+OCq+ODs+ODgCzjgr/jgqvjg5Ljg60NCivjgqvjg43jgqTjg4Es44Ki44Kt44KqDQor44Kr44ON44KzLOODkuODreODluODnw0KK+OCq+ODjeOCsyzjg57jgrnjgqoNCivjgqvjg43jgrMs44K344Ol44Km44K4DQor44Kr44ON44KzLOOCv+OCseODkuOCsw0KK+OCq+ODjeOCsyzjg6TjgqgNCivjgqvjg43jgrMs44OS44K144K3DQor44Kr44ON44Oe44OrLOOCouODhOOCtw0KK+OCq+ODquODpCzjg6jjgrfjg47jg5YNCivjgqvjg6vjg5ks44Kt44On44Km44K4DQor44Kr44K344OeLOODkuODreODpuOCrQ0KK+OCq+OCt+ODr+OCrizjg6jjgrfjg6bjgq0NCivjgqvjgrfjg6/jgq4s44OS44Ot44K3DQor44Kr44K544OkLOOCseOCpOOCtA0KK+OCq+OCueODpCzjgrfjg6fjgqbjgrMNCivjgqvjgrnjg6Qs44K/44Kr44K3DQor44Kr44K/44OOLOOCseODs+OCpOODgQ0KK+OCt+ODqeOCrSzjgqvjg4TjgqoNCivjgqvjgr/jgqrjgqss44Oo44Km44Kk44OB44Ot44KmDQor44Kr44K/44Kq44KrLOOCouODhOOCtw0KK+OCq+OCv+ODpOODniwNCivjgqvjg4jjgqYs44K/44OG44KqDQor44Kr44OI44KmLOODkuODreOCtw0KK+OCq+ODiOOCpizjg5Ljg63jgrMNCivjgqvjg4jjgqYs44OS44Ot44OkDQor44Kr44OI44KmLOOCv+OCseOCtw0KK+OCtOODiOOCpizjg5Ljg63jgqvjgroNCivjgqvjg4Tjg6Qs44OS44Ot44K3DQor44Kr44Ov44OALOODn+ODgeOCqg0KK+OCq+ODr+ODgCzjgrXjg4HjgrMNCivjgqvjg6/jgrDjg4Es44K144OI44K3DQor44Kr44Ov44OP44OpLOOCu+OCpOOCpOODgeODreOCpg0KK+OCq+ODr+ODj+ODqSzjg5Ljg63jgqLjgq0NCivjgqvjg6/jg4/jgr8s44OS44Ot44Om44KtDQor44Kr44Ov44KkLOOCuOODpeODs+OCpOODgQ0KK+OCq+ODr+OCpCzjgqvjg6jjgrMNCivjgqvjg6/jgqQs44Of44ObDQor44Kr44Ov44Kr44OfLOOCv+OCseOCtw0KK+OCq+ODr+OCreOCvyzjg4jjg6LjgqLjgq0NCivjgqvjg6/jgq3jgr8s44Ok44K544KzDQor44Kr44Ov44Og44OpLOODpuOCreODnuOCtQ0KK+OCq+ODr+ODoOODqSzjg6bjgq0NCivjgqvjg6/jg6Djg6ks44Oe44K144Om44KtDQor44Kr44Ov44K+44KoLOODn+ODig0KK+ODleOCv+OCr+ODgSzjgr/jg4DjgrcNCivjgq3jg4As44Ok44K544OS44OtDQor44Kt44OALOODqOOCt+ODleODnw0KK+OCreODiSzjgqLjgq3jgqoNCivjgq3jg4/jg6ks44Kr44OE44OI44K3DQor44Kt44Kv44OBLOOCs+OCpuOCuA0KK+OCreOCr+ODgSzjgqLjgqTjgrMNCivjgq3jgq/jgr8s44Kk44K144KqDQor44Kt44Oi44OILOOCq+OCuuODnuOCtQ0KK+OCreODoOODqSzjg5/jg47jg6sNCivjgq3jg6Djg6ks44OK44Ob44OfDQor44Kt44Og44OpLOOCt+ODpeODs+OCpOODgQ0KK+OCreODoOODqSzjgrnjg5/jg5Ljg60NCivjg57jg4Tjg6Ljg4gs44K/44Kv44Ot44KmDQor44Kt44Og44OpLOODiOOCt+OCqg0KK+OCreODoOODqSzjgrjjg6Xjg7PjgrMNCivjgqrjgqvjgrbjgq0s44K/44Kx44KqDQor44Kt44Og44OpLOODpuOCqw0KK+OCreODoOODqSzjgqLjg4TjgrcNCivjgq3jg47jgrfjgr8s44Kx44Kk44KzDQor44Kt44K3LOOCreODn+ODkuOCsw0KK+OCreOCuSzjgrjjg6Xjg7PjgrMNCivjgq3jgr/jgqvjgrws44OO44OW44KtDQor44Kt44K/44Og44OpLOOCouOCreOCqg0KK+OCreOCpuODgSzjg4rjgqrjg4gNCivjgq3jgqbjg4Es44K/44Kr44K+44KmDQor44Kt44Oo44K/LOODgOOCpOOCueOCsQ0KK+OCs+ODkOODpOOCtyzjg57jgrXjg4/jg6sNCivjgrPjg5Djg6Tjgrcs44Kx44Oz44K4DQor44Kz44OQ44Ok44K3LOODn+ODqOOCsw0KK+OCs+ODkOODpOOCtyzjg6jjgrfjg6bjgq0NCivjgrPjg5Djg6Tjgrcs44K/44Kr44K3DQor44Kz44OQ44Ok44K3LOODkuODh+OCouOCrQ0KK+OCs+ODkOODpOOCtyzjg6bjgqbjgqTjg4ENCivjgrPjg5Djg6Tjgrcs44Oo44K344KqDQor44Kz44OQ44Ok44K3LOODkuODreODkuODhw0KK+ODkuODreOCuyzjg4/jg6vjgqoNCivjgrPjg4fjg6ks44Ki44Kt44OS44OtDQor44Kz44Ks44KkLOODkuOCteOCv+OCqw0KK+OCs+OCsOODrCzjgqvjgrrjgqoNCivjg6Ljg6rjgr8s44Of44OB44OS44KzDQor44Kz44Oi44OILOODqOOCpuOCueOCsQ0KK+OCs+ODs+ODjizjgqLjgq3jg5Ljg60NCivjgrPjgrXjgqss44Oo44K344Om44KtDQor44Kz44Kk44KxLOOCreODqOOCtw0KK+OCs+OCpOOCsSzjg6jjgqbjgqTjg4ENCivjgrPjgqTjgrcs44Ki44Kt44KqDQor44Kz44K444OeLOOCq+OCuuOCv+OCqw0KK+OCs+OCuOODnizjg4bjg4QNCivjgrPjgq/jg5ss44Kr44OE44OkDQor44Kz44Kv44Oe44KkLOODn+OCqOOCsw0KK+OCs+ODnuOCrOOCvyzjg57jgrPjg4gNCivjgrPjg57jgq0s44Kr44K644Om44KtDQor44Kz44Oe44OELOODqOOCpuOCpOODgQ0KK+OCs+ODnuODhCzjgqLjg4TjgrcNCivjgrPjg5/jg40s44Kr44OE44OO44OqDQor44Kz44Of44Ok44OeLOODqOOCt+ODjuODlg0KK+OCs+ODouOCquOCqyzjg5Xjg5/jgqoNCivjgrPjg6Ljg6os44K344Ky44OO44OqDQor44Kz44Oz44OJLOODkuODreOCtw0KK+OCs+ODs+ODiSzjg5/jgq3jgqoNCivjgrPjg7Pjg4ks44Oo44K344K+44KmDQor44Kz44Oz44OJLOOCv+OCq+ODpuOCrQ0KK+OCs+ODs+ODieOCpizjgr/jg4Tjg4gNCivjgrPjg7Pjg44s44OG44OE44KqDQor44Kz44K544KuLOODqOOCpuOCpOODgQ0KK+OCs+OCpuODgCzjg4jjgrfjg6bjgq0NCivjgrPjg6Tjg4rjgq4s44OO44OW44OS44KzDQor44Kv44Oc44K/LOODkuODreODpuOCrQ0KK+OCr+ODnOOCvyzjg4rjgqrjgq0NCivjgq/jg5ws44K/44Kr44Om44KtDQor44Kv44OJ44KmLOOCtOOCpg0KK+OCr+OCrCzjgrfjgrLjg6sNCivjgq/jgrjjg54s44Ko44OqDQor44Kv44Oe44OALOODkuODreOCtw0KK+OCr+ODnuOCrSzjg57jgq0NCivjgq/jg57jgq/jg6ks44Kr44OE44OIDQor44Kv44Oe44Oi44OILOOCouOCreODkuOCsw0KK+OCr+ODouOCq+ODryzjg5Ljg63jg47jg6oNCivjgq/jg6njgrfjg54s44Kz44Km44Kk44OBDQor44Kv44Oq44OP44OpLOOCs+OCpuOCuA0KK+OCr+ODquODj+ODqSzjg6bjg5/jgrMNCivjgq/jg6rjg6Djg6ks44K344Ol44Km44K4DQor44Kv44Oq44K5LOODkuODreOCtw0KK+OCr+ODquODpOODnizjg6bjgq3jgqgNCivjgq/jg6rjg6Tjg54s44K444Ol44Oz44Kk44OBDQor44Kv44Ot44OALOOCouOCreODqQ0KK+OCr+ODreOCq+ODryzjg5Ljg63jgrcNCivjgq/jg63jgq0s44OO44OW44OkDQor44Kv44Ot44K144KtLOODjuODluOCouOCrQ0KK+OCr+ODreOCuSzjg5Ljg63jgrcNCivjgq/jgrfjg4As44Ov44K/44OrDQor44Kv44K544OALOODqOOCt+OCsw0KK+OCr+ODr+ODkOODqSzjgqTjg4Hjg63jgqYNCivjgqbjg4Hjg4As44Kx44Kk44Kk44OBDQor44Oe44Ko44OALOODpOOCueODkuOCsw0KK+ODi+ODryzjgrfjgrLjg5/jg4QNCivjg57jgqjjg5Ljg6ks44Oe44K144OIDQor44Oe44Ko44Kr44OvLOODkuODh+OCv+OCqw0KK+ODnuOCreODoOODqSzjg5Ljg63jg5/jg4QNCivjg57jgq3jg44s44Om44Km44K4DQor44Oe44Kt44OOLOODnuODqg0KK+ODqOOCpuOCs+OCvyzjg5/jg4Hjg6TjgrkNCivjg57jg6vjg6Tjg54s44K/44OA44K3DQor44Oe44K544OALOODn+OCreOCqg0KK+ODnuOCueODgCzjg4bjg6vjgqLjgq0NCivjg57jgrnjg5Ljg60s44Kt44OfDQor44Oe44K544Ok44OeLOOCv+OCr+OCuA0KK+ODnuODhOODkOODqSzjgrPjgqbjgrgNCivjg57jg4Tjg5Djg6ks44Ok44K544OK44OqDQor44Oe44OE44OA44Kk44OpLOODnuOCteODiA0KK+ODnuODhOODgCzjgrfjgrLjgqoNCivjgrXjgrXjg6Ljg4gs44K144Om44OqDQor44Oe44OE44OALOODiOOCt+ODnw0KK+ODnuODhOODleOCtSzjgqvjg4TjgrgNCivjg57jg4TjgqQs44OI44Kq44OrDQor44Oe44OE44KkLOOCuOODpeODs+OCpOODgQ0KK+ODnuODhOOCrSzjgqLjgq3jg5LjgrMNCivjgqvjg47jgqYs44OS44Ot44Om44KtDQor44Oe44OE44Oi44OILOODpuOCpuOCpOODgQ0KK+ODnuODhOODouODiCzjg4jjgrfjg6bjgq0NCivjg57jg4Tjg6Ljg4gs44OV44K444KqDQor44OP44K344Oi44OILOOCt+ODp+OCpuOCuA0KK+ODnuODhOODoOODqSzjgq3jg4vjg4ENCivjg57jg4Tjg6Djg6ks44OS44Ot44Om44KtDQor44Oe44OE44OK44OfLOODkuODreODpuOCrQ0KK+ODnuODhOODiuODnyzjg6bjgq3jgqoNCivjg4Hjg5As44OG44OE44OkDQor44Oe44OE44K344OQLOOCs+OCpuOCpOODgQ0KK+ODnuODhOOCt+OCvyzjg5Ljg63jgrcNCivjg57jg4Tjgrfjgr8s44Ko44Kk44Kk44OBDQor44Oe44OE44Km44OpLOOCpOODgeODreOCpg0KK+ODnuODhOOCtuOCrSzjgr/jg4DjgrcNCivjgqTjg57jgqQs44Oe44K144Om44KtDQor44Oe44Om44Ok44OeLOOCouODhOOCtw0KK+ODoeODsyzjg57jgrXjg4gNCivjg5/jg4Hjgqzjg58s44OO44Oq44KqDQor44Of44OP44OpLOODj+ODq+OCsw0KK+ODn+OCrSzjgqLjg4TjgrcNCivjg5/jg6Ljg6os44OS44Ot44K3DQor44Of44OK44Of44Kw44OBLOOCq+ODiuODoQ0KK+ODn+ODiuOCuuOCrSzjg4rjgqrjg6bjgq0NCivjg5/jg43jg6Djg6ks44Om44Kr44OqDQor44Of44K344OKLOOCq+OCuuODkuODrQ0KK+ODn+ODhOOCpCzjgr/jgrHjg4/jg6sNCivjg5/jgqbjg6ks44Oo44Km44Kk44OBDQor44Of44Km44OpLOOCseODs+OCpOODgQ0KK+ODoOODqeOCq+ODnyzjg57jgrXjg4/jg6sNCivjg5/jg68s44K344Ky44Om44KtDQor44Of44Ok44Ks44OvLOODnuOCteOCqg0KK+ODn+ODpOOCrizjg5/jg4HjgrMNCivjg5/jg6Tjg4/jg6ks44OI44K344KqDQor44Of44Ok44OP44K3LOOCreODp+OCpuOCsw0KK+ODn+ODpOOCq+ODryzjg57jgrXjg4jjgrcNCivjg5/jg6Tjgq0s44Oe44K144K644OfDQor44Of44Ok44Oi44OILOOCu+OCpOOCuA0KK+ODn+ODpOODouODiCzjg5Ljg63jgrcNCivjg5/jg6Tjg6Ljg4gs44Oe44K144OS44OtDQor44Of44Ok44K144KrLOODiuOCquOCrQ0KK+ODn+ODpOOCv+OCsSzjgrfjgrLjg58NCivjg5/jg6Tjgr8s44OI44K344OS44OtDQor44Of44Ok44K/LOODpuOCpuOCuA0KK+ODn+ODpOOCvyzjg57jgrXjg5/jg4ENCivjgq/jg63jg4As44Kx44Kk44KzDQor44Of44Oo44K3LOODiuOCquOCsw0KK+ODn+OCuuOCs+OCtyzjg57jgq3jgqoNCivjg5/jgrrjgrPjgrcs44OI44K344KqDQor44Of44K644OOLOOCv+ODhOODpA0KK+ODn+OCuuODjizjg47jg5bjg4/jg6sNCivjg5/jgrrjgr/jg4ss44K344Oz44K4DQor44Oi44OqLOOCt+ODp+OCpuOCuA0KK+ODouODqizjg47jg6rjgrMNCivjg6Ljg6rjgqvjg68s44Ki44Kt44KzDQor44Oi44Oq44KtLOODpOOCueODkuODrQ0KK+ODouODquOCt+OCvyzjg6jjgrfjg58NCivjg6Ljg6rjgr8s44K/44OA44K3DQor44Oi44Oq44K/LOOCq+OCuuODkuODrQ0KK+ODouODquODpOODnizjg4jjgrfjgqoNCivjg6Ljg6rjgr7jg44s44OE44Oo44K3DQor44Oi44OqLOOCteODiOODqw0KK+ODouODqizjgqvjg4Tjg4jjg58NCivjg6Ljg6os44Ok44K544KqDQor44Oi44OqLOODkuODreODjuODqg0KK+ODouODreOCuuODnyzjg47jg5zjg6sNCivjgqTjg47jg4/jg4os44Kr44K644KqDQor44Kz44K444OeLOOCt+ODs+OCtA0KK+ODoOOCq+OCpCzjgr/jg4Tjg58NCivjg6DjgqvjgqQs44K144OB44KqDQor44Og44Op44KkLOODgeODiuODhA0KK+ODoOODqeOCq+ODnyzjg4jjgqrjg6sNCivjg6Djg6njgqvjg58s44OB44OP44OrDQor44Og44Op44Oe44OELOODnuOCteOCq+OCug0KK+ODi+ODryzjgqvjg4Tjg5Ljg60NCivjg6Djg6njgr8s44K144OI44K3DQor44Og44Op44K/LOOCpOODgeODreOCpg0KK+OCquOCquODjizjgr/jgqvjgrcNCivjg6Djg6njg6Tjg54s44OB44OP44OrDQor44Og44OI44KmLOODkuODreODpA0KK+ODoOODiOOCpizjgr/jgqvjgrcNCivjg6Djg4jjgqYs44Ki44Oe44ONDQor44Og44OE44K344KrLOOCqOOCpOOCpOODgQ0KK+ODiuOCrOOCpCzjg5Ljg63jgrcNCivjg4rjgqzjgqQs44Kr44OE44Om44KtDQor44OK44Ks44Oi44OILOOCseODs+OCpOODgQ0KK+OCouODqeOCpCzjgr/jgrHjg4jjgrcNCivjg4rjgqzjgqos44Ok44K544OK44OqDQor44OK44Ks44K144OvLOOCouODhOOCtw0KK+ODiuOCrOOCteODryzjgqvjgrrjg4gNCivjg4rjgqzjg6Tjg54s44Ki44Kt44OS44OtDQor44OK44Kk44OI44KmLOODleOCteODjuODlg0KK+ODiuOCpOODiOOCpizjgqvjg4TjgqoNCivjg4rjgqvjg5Djg6Tjgrcs44Kr44K644OS44K1DQor44OK44Kr44OA44OGLOOCs+OCpuOCpOODgQ0KK+ODiuOCq+OCrOOCrSzjg57jgrXjg47jg6oNCivjg4rjgqzjgqgs44K/44Kr44Om44KtDQor44OK44Kr44Ks44OvLOODhuODq+OCuA0KK+ODiuOCq+OCrOODryzjg4jjgrfjg6bjgq0NCivjg4rjgqvjgrTjg6Es44Oo44K344OK44OqDQor44OK44Kr44OS44OpLOODpuOCv+OCqw0KK+ODiuOCq+OCpCzjgqjjg5/jgrMNCivjg4rjgqvjgrjjg54s44Kr44OE44OI44OiDQor44OK44Kr44K444OeLOODn+OCqOOCsw0KK+ODiuOCq+OCuOODnizjg4rjgqrjg6QNCivjg4rjgqvjgrjjg54s44Ko44OqDQor44OK44Kr44K444OeLOODhOODjeOCouOCrQ0KK+ODiuOCq+OCuOODnizjgrHjgqTjgqTjg4ENCivjg4rjgqvjgrjjg54s44OK44Kq44OS44OHDQor44OK44Kr44Oe44K/LOODjuODquODkuODrQ0KK+ODiuOCq+ODn+ODgSzjgrfjg6Xjg7PjgqTjg4Hjg63jgqYNCivjg4rjgqvjg6Djg6ks44Oe44K144KtDQor44OK44Kr44Og44OpLOODiOOCt+OCouOCrQ0KK+ODiuOCq+ODoOODqSzjg57jgrPjg4gNCivjg4rjgqvjg6Djg6ks44OG44Or44OS44OtDQor44OK44Kr44Og44OpLOOCt+ODs+OCuA0KK+ODiuOCq+ODoOODqSzjg4/jgrjjg6ENCivjg4rjgqvjg6Djg6ks44OO44Oq44Ki44KtDQor44OK44Kr44Og44OpLOODkuODreODpuOCrQ0KK+ODiuOCq+ODoOODqSzjgqvjgrrjg5LjgrMNCivjg4rjgqvjg6Djg6ks44Oe44K144Om44KtDQor44OK44Kr44Og44OpLOODiuOCquOCrQ0KK+ODiuOCq+ODi+OCtyzjg4jjgrfjgqLjgq0NCivjgqrjgqrjg4vjgrcs44Oe44K144OO44OqDQor44OK44Kr44OL44K3LOODiOOCt+ODpuOCrQ0KK+ODiuOCq+ODi+OCtyzjg47jg5bjg6TjgrkNCivjg4rjgqvjg44s44Kt44Oo44K/44KrDQor44Kq44Kr44K244OvLOOCq+ODqOOCsw0KK+ODiuOCq+ODjizjg47jgr7jg58NCivjg4rjgqvjg44s44Oo44K344OV44OfDQor44OK44Kr44OOLOODouOCqOOCsw0KK+ODiuOCq+OCquOCqyzjg4bjg4Tjg6QNCivjg4rjgqvjgqos44OV44Of44KzDQor44OK44Kr44KqLOOCqOOCpOOCuA0KK+ODiuOCq+OCuyzjgrPjgqbjgrcNCivjg4rjgqvjgr3jgq4s44Oe44K144OI44OfDQor44OK44Kr44K/LOOCt+OCsuOCsw0KK+ODiuOCq+ODhOOCqyzjgr/jgqvjgrcNCivjg4rjgqvjg4Tjgqss44Oe44Kz44OIDQor44OK44Kr44Ok44OeLOODkuODh+OCrQ0KK+ODiuOCq+ODpOODnizjgqLjg4TjgrcNCivjg4rjgqvjg6Tjg54s44K/44OE44OkDQor44OK44Kr44Ok44OeLOOCs+OCpuODmOOCpA0KK+ODiuOCq+ODpOODnizjgqvjg4Tjg5LjgrMNCivjg4rjgqvjgrbjg68s44Of44OE44KwDQor44OK44Of44KtLOOCr+ODi+OCqg0KK+ODiuODqeOCt+ODnizjg57jgrXjgqLjgq0NCivjg4rjg6ks44K/44Kx44OS44KzDQor44Kv44OJ44KmLOODkuOCteOCtw0KK+ODiuODhOODjizjg5/jg4Hjg4/jg6sNCivjg4rjg4Tjg6Tjg54s44Om44Km44KzDQor44Ko44OI44KmLOODkuODreOCtw0KK+ODi+ODmOOCpCzjgr/jgqvjgrcNCivjgqrjgq/jg44s44K144Om44OqDQor44Oe44Ko44Ob44OqLOODkuODreODnw0KK+ODi+OCt+ODgCzjg5Ljg4jjgrcNCivjg4vjgrfjgrDjg4Es44K/44OE44KqDQor44Oi44OqLOODpuOCreOCsw0KK+ODi+OCt+OCq+ODryzjg57jgrXjgrcNCivjg4vjgrfjgq/jg6ks44K344Ky44OrDQor44OL44K344Oi44OILOODnuOCteOCrQ0KK+ODi+OCt+OCqizjg4jjgrfjg5LjgrMNCivjg4vjgrfjg6/jgq0s44Kx44Kk44KzDQor44OL44K3LOODnuOCteODqw0KK+ODi+ODryzjg57jgrXjgq0NCivjg47jg5bjg57jgrUs44Of44K144OIDQor44OO44OALOODouODiOODkuOCsw0KK+ODjuOCsOODgSzjgr/jgqvjgrcNCivjg47jgrDjg4Es44Kx44OzDQor44OO44Ob44OqLOODkuODh+ODpuOCrQ0KK+ODjuOCv+ODiyzjg57jgrXjgr/jgrENCivjg47jg54s44K144OI44K3DQor44OO44Of44Ok44OeLOODiOOCt+ODreOCpg0KK+ODjuODouODiCzjg4jjgrfjgqLjgq0NCivjgr/jg7Pjgrbjg7Ms44Of44OB44KqDQor44Kq44Kq44Kr44OvLOOCq+OCuuODkuOCsw0KK+ODjuODjuODpOODnizjg57jgrXjgq0NCivjg47jg6rjgqvjg40s44Oe44K144OrDQor44OO44OtLOOCu+OCpOOCpOODgQ0KK+ODjizjgrfjg7PjgqTjg4ENCivjgqrjg5Djg4os44OS44Ot44K3DQor44Kq44OT44OK44K/LOOCouOCreODkuOCsw0KK+OCquODgeOCouOCpCzjg6jjgrfjg47jg6oNCivjgrfjg57jg6Djg6ks44OS44Ot44K3DQor44Kq44OA44ONLOODqOOCt+OCq+OCug0KK+OCquOCrOODryzjg4rjgqrjg58NCivjgqrjgrDjg6ks44OS44OH44OI44K3DQor44Kq44Kw44OpLOOCu+OCpOOCuA0KK+OCquOCsOODqSzjgrfjg7PjgrnjgrENCivjgqrjgqrjgrDjg60s44Kk44Ov44KqDQor44Kq44Kq44OQ44Ok44K3LOOCseOCpOOCvuOCpg0KK+OCquOCquODkOODpOOCtyzjg6Tjgrnjg6bjgq0NCivjgqrjgqrjg5As44Ko44Oq44KzDQor44Kq44OBLOOCt+ODs+OCtA0KK+OCquOCquODhyzjg4jjgrfjg5LjgrMNCivjgqrjgqrjg5vjg6os44OO44Oq44KqDQor44Kq44ObLOOCs+OCueOCsQ0KK+OCquOCquOCpOOCtyzjg6Ljg4jjgqTjg4ENCivjgqrjgq0s44Oo44K344Om44KtDQor44Kq44Kq44Kv44OcLOODnuOCteODkuODrQ0KK+OCquOCquOCr+ODnCzjg57jgrXjgq/jg4sNCivjgqrjgqrjg5/jg4Es44K/44Kx44OO44OqDQor44Kq44Og44OpLOODhOODjeOCouOCrQ0KK+OCquOCquODi+OCtyzjgqTjgrXjgqoNCivjgqrjg44s44Kz44Km44Kk44OB44Ot44KmDQor44Kq44Op44KkLOOCueOCueODoA0KK+OCquOCteOCrSzjgrXjg4jjgrcNCivjgqrjgqrjgrXjg68s44K944Km44Kk44OB44Ot44KmDQor44Kq44Kq44K144OvLOOCv+ODgOOCtw0KK+OCquOCquOCteODryzjg6rjg6XjgqbjgrgNCivjgqrjgqrjgr/jg4ss44Kx44Oz44K4DQor44Kq44Kq44K/LOODiuOCquOCrQ0KK+OCquOCquODiOODoizjgqLjgq3jgqoNCivjgqrjgrbjgq0s44Kz44Km44K4DQor44Kq44Kq44OE44KrLOOCv+OCseOCtw0KK+OCquOCquODhOOCqyzjg4jjgrfjg63jgqYNCivjgqrjgqrjg4Tjgq0s44OG44OE44OkDQor44Kq44Kq44OkLOODnuOCteODkuODrQ0KK+OCquODkuODoyzjgq/jg4vjg5LjgrMNCivjgqrjgqrjg6Qs44K544Kw44OrDQor44Kq44Kr44OALOODhOOCsOOCqg0KK+OCquOCq+ODgCzjg6jjgrfjg5Ljg60NCivjgqrjgqvjg4As44OI44K344OS44OtDQor44Kq44Kr44OALOOCt+ODs+OCpOODgQ0KK+OCquOCq+ODj+ODqSzjg5Ljg63jgq0NCivjgqrjgqvjg6Ljg4gs44Oo44K344KqDQor44Kv44K144OQLOODkuODreOCtw0KK+OCquOCq+ODoOODqSzjg57jgrXjgqvjgroNCivjgqrjgqvjg6Djg6ks44Oe44K144KtDQor44Kq44Kr44OOLOODkuODreOCtw0KK+ODiOODk+OCvyzjgrfjg6Xjgqbjg5jjgqQNCivjg5vjgr3jgqvjg68s44Kz44Km44K4DQor44Km44Ko44OALOODiOODqOOCq+OCug0KK+OCs+OCu+OCrSzjg6bjg58NCivjgr/jgrbjg68s44K344Ol44Oz44K4DQor44Ok44Oe44K244KtLOODqOOCt+OCq+OCug0KK+OCqOOCsOODgSzjg5Ljg63jg6bjgq0NCivjg6Ljg4Hjg4As44K544K544OgDQor44Ki44Kt44Oi44OILOOCreOCqOOCpA0KK+ODi+OCtyzjgqLjg4Tjgq0NCivjgqTjg57jgqTjgrcs44K344Ky44OI44K3DQor44K/44Kr44Ok44K5LOODjuODluODqOOCtw0KK+ODj+OCvyzjg57jgrXjg6bjgq0NCivjg5XjgrjjgrXjg68s44Ki44Kt44OpDQor44Og44OI44KmLOODkuOCteOCtw0KK+ODouOCv+OCpCzjgrfjg7PjgqTjg4ENCivjgr/jg4As44K/44Kr44Om44KtDQor44Kz44Kk44K644OfLOOCq+OCuuODqOOCtw0KK+ODhOODnOOCr+ODqSzjgrPjgqbjgr7jgqYNCivjg5Ljg6njg5Djg6Tjgrcs44OS44Ot44K4DQor44OE44K444Kr44OvLOODkuODreOCq+OCug0KK+ODn+ODhOOCpOOCtyzjgrvjgqTjgqTjg4ENCivjg6Tjg57jgrfjgr8s44Kx44Oz44K4DQor44Oe44Or44Kq44KrLOODjuODluOCv+OCqw0KK+ODleOCq+OCqizjg4jjgqrjg6sNCivjg4Tjg6Djg6ks44Kr44OK44KzDQor44Oe44Om44OfLOODiOOCt+OCqA0KK+OCouODqeOCq+ODryzjg5/jg4njg6oNCivjgqrjg5Xjg4Es44K444Ol44OzDQor44K144K144Oi44OqLOODpuOCv+OCqw0KK+OCteODiOOCpizjgqLjgq3jg6kNCivjgr/jgqvjgq4s44Oe44Kz44OIDQor44K/44OK44KrLOODnuOCteODn+ODhA0KK+ODhOODnOOCtCzjg5Xjg5/jg5LjgrMNCivjg4jjg6rjgrXjg68s44OS44Ot44Om44KtDQor44OK44Kr44Kw44KtLOOCseOCpOOCtA0KK+ODj+OCu+OCrOODryzjg4jjg6Ljg6bjgq0NCivjg4/jg6Tjgrcs44Kz44Km44K4DQor44OS44Op44Ok44OeLOOCt+OCsuODqw0KK+ODleOCr+OCt+ODnizjg4jjgrfjgq0NCivjg57jg4Tjgrfjg54s44Kr44K644OS44OtDQor44Oo44K344KkLOODkuODh+OCrQ0KK+OCpOOCt+OCpCzjg47jg6rjgrMNCivjgqTjg57jgqQs44Of44Om44KtDQor44OK44Kr44OE44K4LOODpuOCreOCqA0KK+ODm+OCpOODgCzjg4Tjg43jgqoNCivjgrXjg6/jg4/jgr8s44Of44OE44OrDQor44K/44OP44OpLOOCt+ODp+OCpuOCuA0KK+OCv+OCq+ODj+OCtyzjg5/jg43jg57jgrUNCivjgrnjgrrjgq0s44OS44OH44Ki44KtDQor44Oo44Kz44Ok44OeLOOCseODs+OCuA0KK+OCpOOCt+OCq+ODryzjgrHjg7PjgrgNCivjgqLjgrXjg44s44Oo44K344K/44KrDQor44Kr44ON44KzLOOCt+ODpeOCpuOCuA0KK+OCr+ODreOCuyzjg6jjgqbjgrnjgrENCivjgrXjgqvjgq3jg5Djg6ks44Ki44Op44K/DQor44Kr44K144OeLOOCseOCpOOCsw0KK+OCueOCruODpOODnizjg6jjgrfjg57jgrUNCivjgrnjg4As44OG44OE44OkDQor44K/44OK44KrLOOCouODpA0KK+ODhOODnOOCpCzjgqjjg4TjgrMNCivjg4/jgrfjg6Ljg4gs44OB44Ko44KzDQor44OV44Kv44OBLOOCteODiOODnw0KK+OCouODqeOCpCzjg4jjg6LjgrMNCivjgr/jg4rjgqss44Kx44Oz44K4DQor44Ok44K344OeLOODiuOCquODpuOCrQ0KK+OCq+ODr+ODnuOCvyzjgr/jgrHjg47jg6oNCivjgrnjg7Pjg4As44Ki44OE44OkDQor44Of44K644K/44OLLOODn+ODjuODqw0KK+ODpOODnuOCs+OCtyzjg47jg6rjg6bjgq0NCivjgqLjg57jgqzjg6Qs44Om44Oh44OODQor44Ki44Op44KtLOODkuOCteODqA0KK+OCpOODnuOCpCzjg4jjgrfjg4/jg6sNCivjgqTjg57jgrbjgq0s44K/44Kr44OS44K1DQor44Kt44Og44OpLOOCq+ODhOODkuODhw0KK+OCueOCruODpOODnizjgqTjgrXjgqoNCivjgrnjgrrjgq0s44OA44Kk44K544KxDQor44OE44OrLOODn+ODjuODqw0KK+ODj+OCs+OCtuOCrSzjgqLjgq3jg6kNCivjgr/jgq3jgrbjg68s44OE44Oo44K3DQor44Kk44OI44KmLOOCq+OCuuODjuODlg0KK+ODnuOCueODgCzjg6jjgrfjg47jg6oNCivjg4Tjg5Djgq0s44OB44Ki44KtDQor44Of44K544OfLOODgeOCq+OCsw0KK+ODpOOCpOOCvyzjg57jgq0NCivjgqvjg6/jg4Qs44OS44OI44K3DQor44OE44Kr44OALOOCv+OCseODkuOCsw0KK+ODiuOCq+ODouODiCzjg5Xjg5/jgrMNCivjg5Xjg4rjg5Pjgq0s44K144OK44KoDQor44Oo44K344K244OvLOOCreODp+OCpuOCsw0KK+ODiOOCpuODnizjg6jjgqbjgrMNCivjgrvjgq0s44Oe44OqDQor44Og44Op44K/LOODiuOCquOCrQ0KK+OCq+OCv+ODpOODnizjg57jgrXjg5Ljg60NCivjgq3jg4ks44K344Ol44Km44K4DQor44Kz44OQ44Ok44K3LOOCs+OCpuOCuA0KK+OCt+ODjuODn+ODpCzjg4jjg6LjgqvjgroNCivjgr/jg4rjgqss44Kr44K644Om44KtDQor44OP44OpLOODqOOCt+ODjuODqg0KK+ODouODquOCv+ODiyzjgrfjg6fjgqbjg5jjgqQNCivjgqTjg4Hjg47jgrss44Kr44K644Om44KtDQor44OV44K444Oi44OILOOCq+ODhOODpuOCrQ0KK+OCpuOCqOODjizjgrPjgqbjgrgNCivjgrfjgrfjg4ks44OI44K344OO44OqDQor44Of44Km44OpLOOCueOCueODoA0KK+OCpuODgeODgCzjg6vjg5/jgrMNCivjg4njgqQs44Kz44Km44Kk44OBDQor44K944K544OfLOODiOOCt+ODpuOCrQ0KK+ODqOOCt+ODgCzjg57jgrXjg6bjgq0NCivjgr/jgqvjg4/jgrcs44OI44K344KqDQor44Ok44Oe44Kw44OBLOODiuOCqOOCsw0KK+OCteOCtSzjg6bjgq3jgrMNCivjg4/jgrvjgqzjg68s44Kr44Kq44OqDQor44Ki44OE44K/LOODqOOCt+OCqg0KK+OCpOODgeOCq+ODryzjg57jgrXjgqLjgq0NCivjgqbjg44s44K144OI44OfDQor44Kq44Ks44OvLOODpuOCreOCsw0KK+OCquODgCzjg5Ljg63jgqvjgroNCivjgr/jgqvjgrXjgq0s44Oe44Kt44KzDQor44K/44Kr44OP44K3LOODhOODqOOCtw0KK+OCv+ODgCzjgr/jg4DjgrcNCivjgr/jg4rjgqss44OS44Ot44K3DQor44OI44Kv44OK44KsLOODkuODreOCtw0KK+ODiOODn+OCvyzjgrjjg6Xjg7PjgrMNCivjg4rjgqTjg4jjgqYs44Oq44KoDQor44OP44Op44OALOOCqOODn+OCsw0KK+ODkuODqeOCq+ODryzjg4jjg6LjgrMNCivjg5Xjg4rjg6Ljg4gs44OS44Ot44K/44KrDQor44OJ44OQ44K3LOODpuOCrQ0KK+ODn+OCpuODqSzjg4HjgrMNCivjg6jjgrfjg4As44OS44Ot44Ki44KtDQor44Kq44Kq44K/44KxLOOCuOODpeODs+OCuA0KK+OCr+ODqeOCvyzjg6Tjgrnjg5Ljg60NCivjgq/jg6rjgr8s44K144OI44K3DQor44OA44OzLOODnuOCs+ODiA0KK+ODouODquOCt+ODnizjgrfjg7PjgrgNCivjg6jjgrfjg4As44Oo44Km44K4DQor44Ov44Kr44OQ44Ok44K3LOODpuODn+OCsw0KK+OCouOCsuODnuODhCzjg5Ljg63jg5/jg4ENCivjgqTjgrfjgrDjg60s44Kz44K544KxDQor44Kr44OI44KmLOOCq+OCuuODkuODrQ0KK+OCteOCpOODiOOCpizjgrfjg7PjgqTjg4ENCivjg4rjgqTjg4jjgqYs44Of44OB44OoDQor44Of44Ok44Oe44KoLOODiOOCt+ODpA0KK+OCq+ODieODr+OCrSzjgqLjg4TjgrcNCivjg5Xjgq/jg6Ljg4gs44Of44Kt44KqDQor44OL44K344OP44OpLOOCouOCreODqQ0KK+OCquOCq+ODpOODnizjgqvjgrrjg4rjg6oNCivjgqrjgqvjg6Tjgrks44Of44Ko44KzDQor44Kv44Ot44Kr44OvLOODiOOCquODqw0KK+OCquOCreOCvyzjg6jjgrfjg5LjgrUNCivjgqrjgq/jg5/jg6Qs44Oe44K144Kr44K6DQor44Kq44Kv44Og44OpLOODgOOCpA0KK+OCquODjuODgCzjg4rjg6vjg58NCivjgqrjg47jg4fjg6ks44OS44OI44K3DQor44Kq44OOLOODj+ODq+ODpuOCrQ0KK+OCquODjizjg4rjgqrjg5Xjg58NCivjgqrjg44s44Oo44K344OV44OfDQor44Oe44OE44KkLOODhuODq+OCqg0KK+OCquOCveOCqOOCrOODryzjg6Tjgrnjg4rjg6oNCivjgqrjgrbjgq0s44OO44OW44Om44KtDQor44Kq44K844KtLOODkuODreODpuOCrQ0KK+OCv+OCq+ODjizjgqTjgrXjgqoNCivjg6rjg6fjgqbjgqvjgqQs44Oo44K344KtDQor44K144Ky44K144KrLOODquODpeOCpuOCpOODgQ0KK+OCteOCruODpCzjgq3jg6fjgqbjgqTjg4ENCivjgrXjgqTjgr8s44Oe44K144OS44OtDQor44K144Kk44OI44KmLOOCouOCreODn+ODhA0KK+OCteOCpOODiOOCpizjgrTjg63jgqYNCivjgrXjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44K144Kk44OI44KmLOODhOODjeOCqg0KK+OCteOCpOODiOOCpizjg6rjgqsNCivjgrXjgqvjgrDjg4Es44OS44OH44Ki44KtDQor44K144Kr44KkLOODkuODreODnw0KK+OCt+ODnuODgCzjg5Ljg63jgrcNCivjgrXjgqvjgq3jg5Djg6ks44Kk44OE44Ot44KmDQor44K144Kr44Oi44OILOOCseODs+OCuA0KK+OCteOCq+ODouODiCzjg57jgrXjgq0NCivjgrXjgqvjg6Ljg4gs44Og44ON44OS44OtDQor44K144Kr44OqLOODjuODluODkuODrQ0KK+OCteOCq+OCvyzjgrXjg4jjg6sNCivjgrXjgq/jg54s44K344Oz44K4DQor44K144Kv44Op44KkLOOCv+OCq+ODjuODlg0KK+OCteOCr+ODqeOCpCzjgr/jgqvjgrcNCivjgrXjgq/jg6njgqQs44Oo44K344OS44OtDQor44K144Oz44OO44Km44Oe44OrLOODpuOCreOCqg0KK+OCteODjizjg6bjgr/jgqsNCivjgrXjgrXjg5ks44K/44OE44Ot44KmDQor44K144K144KtLOOCt+ODs+OCtA0KK+OCteOCteOCrSzjg4jjg6Ljg5Ljg60NCivjgrXjgrXjgq0s44K/44Kx44K3DQor44K144K144KtLOODiuOCquODiA0KK+ODqOOCt+ODgCzjg5Ljg63jgrcNCivjgrXjg4jjgqYs44Oo44K344OS44KzDQor44K144OI44KmLOOCq+OCuuODjuODqg0KK+OCteODiOOCpizjgr/jgqvjg47jg6oNCivjgrXjg4jjgqYs44OP44Ok44OIDQor44K144OI44KmLOODpOOCueODkuOCsw0KK+OCteODiOOCpizjg6jjgrfjg6bjgq0NCivjgrXjg4jjgqYs44Oo44K344OIDQor44K144OI44KmLOOCouOCreOCqg0KK+OCteODiOOCpizjg57jgrXjgrMNCivjgrXjg4jjgqYs44OI44Oi44KzDQor44K144OI44KmLOODpuOCpuOCpOODgQ0KK+OCteODiOOCpizjg4HjgqLjgq0NCivjgrXjg4jjgqYs44Kr44K644OkDQor44K144OI44KmLOODnuOCteODnw0KK+OCteODiOOCpizjgrXjg4jjgrcNCivjgrXjg6/jgqTjg4cs44Om44Km44Kk44OBDQor44K144Ov44KkLOOCs+OCpuOCpOODgeODreOCpg0KK+OCteODpOODiuOCrizjg57jg6oNCivjgrvjgqzjg68s44Oo44K344OS44OtDQor44K744Kk44Of44OkLOODkuODreOCtw0KK+OCu+OCpOODpOODnizjgrfjgrLjgq0NCivjgrvjgq3jgqvjg68s44Ki44Kt44OpDQor44K744KtLOOCs+OCpuOCuA0KK+OCu+OCrSzjgr/jgrHjgrcNCivjgrvjg7Pjg4As44OS44Ot44K/44KrDQor44K744Oz44K044KvLOOCreODp+OCpuOCsw0KK+OCu+ODjizjg4jjgrfjgqLjgq0NCivjgrvjgrfjg6Is44Kz44Km44K4DQor44K744K/44KrLOOCseOCpA0KK+OCueOCrCzjg6rjg6fjgqbjgqTjg4ENCivjg5/jg4rjg58s44Ok44K544K3DQor44K344OQ44K/LOODgeOCouOCrQ0KK+OCt+ODluODpCzjg5Ljg63jg5/jg4ENCivjgrfjg5bjg6Qs44OE44Oo44K3DQor44K344OW44OkLOODnuOCteODjuODqg0KK+OCt+OCpOODjizjg5Ljg63jgrMNCivjgrfjgqvjgr8s44K/44Kr44OS44OtDQor44K344Kt44OWLOODkuODreOCtw0KK+OCt+ODnuODgCzjg57jgrXjg5Ljg60NCivjgrfjg57jg4As44OS44Ot44K3DQor44K344Oe44Ks44OfLOODiOOCt+OCouOCrQ0KK+OCt+ODnuODouODqizjg57jgrXjg5LjgrMNCivjgrfjg57jg6Djg6ks44Om44Kt44OO44OqDQor44K344Oe44K244KtLOOCs+OCpg0KK+OCt+ODnuOCtuOCrSzjgr/jgqvjgqLjgq0NCivjgrfjg5/jgros44Ko44Kk44K+44KmDQor44K344Of44K6LOODquOCqA0KK+OCt+ODn+OCuizjg5Ljg63jgrcNCivjgrfjg6Ljg4As44Kx44Kk44Of44OzDQor44K344Oi44OS44OpLOOCs+OCpuOCv+ODreOCpg0KK+OCt+ODjuODj+ODqSzjgqLjgq3jg5Ljg60NCivjgrfjg47jg4/jg6ks44Oe44OK44OWDQor44K344OO44K244KtLOODjuODluOCsw0KK+OCt+ODjuOCtuOCrSzjg5Ljg63jgq0NCivjgrfjg7Pjg50s44Kr44K544OfDQor44K344Oz44K/44OLLOODpuOCpuOCuA0KK+OCquOCquOCreODiSzjgr3jg4jjg5Ljg60NCivjgrfjgqrjg4zjg54s44Kt44Oo44OfDQor44K344Kq44K/LOOCr+ODi+OCouOCrQ0KK+OCt+OCquODpCzjg57jgrXjg5Ljg60NCivjgrfjgqrjgrbjg68s44Kk44K144KqDQor44K344Op44KkLOOCt+OCsuOCrQ0KK+OCt+ODqeOCteOCrSzjg5Ljg63jgrcNCivjgrfjg6njg4jjg6os44Oe44K144OI44K3DQor44K344Op44OI44OqLOOCv+OCq+ODkuODrQ0KK+OCt+ODreOCrSzjg5Ljg4jjgrcNCivjgrfjg63jgrfjgr8s44K344Ky44KtDQor44Kr44K344OeLOODqOOCt+OCqg0KK+OCt+ODpeOCpizjgrTjgqTjg4ENCivjgqTjg57jgqQs44OS44OH44OP44OrDQor44K944Ko44OALOODkuODreOCsw0KK+OCveOCrCzjgqTjgrrjg6sNCivjgr3jg68s44Kr44K644OK44OqDQor44K544OALOOCs+OCpuOCpOODgQ0KK+OCueODgCzjg57jgrXjg6sNCivjgrnjg4As44OK44Kq44KtDQor44K544Ko44OALOODjuODquODqOOCtw0KK+OCueOCqOODouODqizjgrXjgq3jgrMNCivjgrnjgqjjgqrjgqss44K344On44Km44Kk44OBDQor44K544Ks44Ov44OpLOOCt+ODs+OCuA0KK+OCueOCsuODjizjg6Tjgrnjg5Ljg60NCivjgrnjgq7jg6Ljg4gs44Ok44K544KqDQor44K544Ku44K/LOODpuOCpuOCpOODgeODrQ0KK+OCueOCruODpOODnizjg5/jg4TjgqoNCivjgrnjgq7jg6Tjg54s44Kx44Kk44Kk44OB44Ot44KmDQor44K544Ku44Ok44OeLOOCqOOCpOOCuA0KK+OCueODn+ODiOODoizjg47jg5zjg6sNCivjgrnjg58s44Om44KtDQor44K544OK44KsLOODkuODh+ODpuOCrQ0KK+OCueOCtuOCrSzjg4bjg4Tjg6QNCivjgrnjgrrjgq0s44OG44Or44OfDQor44K544K644KtLOOCouOCreODqQ0KK+OCueOCuuOCrSzjg6TjgrnjgrcNCivjgrnjgrrjgq0s44Om44Kt44KqDQor44K544K644KtLOOCt+ODjuODlg0KK+OCueOCuuOCrSzjgrfjg7PjgqTjg4ENCivjgrnjgrrjgq0s44OI44K344OkDQor44K544K644KtLOODkuODreOCtw0KK+OCueOCuuOCrSzjgqvjgrrjgqLjgq0NCivjgrnjgrrjgq0s44Kx44Kk44K4DQor44Kq44Kq44OL44K3LOODnuOCteODj+ODqw0KK+OCueOCuuOCrSzjg47jg5bjgqoNCivjgrnjgrrjgq0s44OO44Oq44Om44KtDQor44K544K644KtLOODquODp+OCpuOCueOCsQ0KK+OCv+ODnCzjgrfjg7MNCivjgr/jg5bjg4Es44K/44OE44OkDQor44K/44OW44K1LOODiOOCt+ODleODnw0KK+OCv+ODgeOCq+ODryzjg6Tjgrnjg6bjgq0NCivjg5Ljg6njgq0s44Om44Km44Kk44OBDQor44K/44Ks44KkLOODpOOCueOCtw0KK+OCv+OCrOODryzjg5/jg5sNCivjgr/jgqws44OO44OW44K/44KrDQor44K/44Kw44OBLOODn+OCteOCqg0KK+OCv+OCsOODgSzjgrfjg7MNCivjgr/jgrDjg4Es44Of44OK44KzDQor44K/44Kr44OQ44K/44KxLOODqOOCpuOCpOODgQ0KK+OCv+OCq+OCrizjgrHjg7Pjgr/jg63jgqYNCivjgr/jgqvjg4/jg6ks44OI44K344OkDQor44K/44Kr44OP44K3LOODiOOCt+ODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jgrcNCivjgr/jgqvjg4/jgrcs44K744Kk44Kk44OBDQor44K/44Kr44OP44K3LOODqOOCt+ODkuOCtQ0KK+OCv+OCq+ODj+OCtyzjg4/jg6vjgrXjg4ANCivjgr/jgqvjg4/jgrcs44Oe44K144KzDQor44K/44Kr44OP44K3LOODnuOCteODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg5Ljg4fjgqoNCivjgr/jgqvjg4/jgrcs44Kr44K644K344KyDQor44K/44Kr44OP44K3LOODjuODquODkuOCsw0KK+OCv+OCq+ODj+OCtyzjg4jjg6jjg58NCivjgr/jgqvjg4/jgrcs44Of44OO44OrDQor44K/44Kr44Kk44K3LOODiOODouOCouOCrQ0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg5Ljg60NCivjgr/jgqvjg58s44Of44OO44OrDQor44K/44Kr44Og44OpLOOCt+ODreOCpg0KK+OCv+OCq+ODiuOCtyzjg6jjgrfjg47jg6oNCivjg4/jgrvjgqzjg68s44OS44Ot44Om44KtDQor44K/44Kr44OOLOOCreODp+OCpuOCsw0KK+OCv+OCq+OCquOCqyzjgr/jgqvjgq0NCivjgr/jgqvjgqrjgqss44OO44OW44Om44KtDQor44K/44Kr44K/44OLLOOCouOCreODqQ0KK+OCv+OCq+ODhOOCuCzjgqvjg4TjgrgNCivjgr/jgqvjg4Tjgqss44Kt44Oo44K3DQor44K/44Kr44OELOODnuOCteODnw0KK+OCv+OCq+ODpOODnizjgrfjg7PjgqTjg4ENCivjgr/jgqvjg6Tjg54s44OI44Kq44OrDQor44K/44Kr44Ok44OeLOODpOOCueOCtw0KK+OCv+OCseODgCzjgrPjgqbjgqTjg4ENCivjgr/jgrHjg4As44Ok44K544OO44OqDQor44K/44Kx44OALOOCv+OCq+OCq+OCug0KK+OCv+OCseODgCzjg4rjgqrjg5Ljg4gNCivjgr/jgrHjg6Ljg4gs44OO44K+44OfDQor44K/44Kx44Oi44OILOOCq+ODhOOCtw0KK+OCv+OCseOCpuODgSzjgr/jgqvjgrMNCivjgr/jgrHjgqbjg4Es44OS44Ot44Kr44K6DQor44K/44Kx44Km44OBLOODpuOCpuOCpOODgQ0KK+OCv+OCseOCpuODgSzjg4jjgqrjg6sNCivjgr/jgq3jg6Ljg4gs44K/44Kr44OS44OtDQor44K/44Oe44OBLOODkuODreOCtw0KK+OCv+ODoOODqSzjg4jjgrfjg5Ljg60NCivjgr/jg4rjg5ks44OE44Kr44K1DQor44K/44OK44KrLOOCseOCpOOCsw0KK+OCv+ODiuOCqyzjg4rjgq7jgrUNCivjgr/jg4rjgqss44K/44Kr44Om44KtDQor44K/44OK44KrLOODnuOCrQ0KK+OCv+ODiuOCqyzjg5Ljg63jg5Xjg58NCivjgr/jg4rjgqss44Kv44OL44OS44KzDQor44K/44OK44KrLOOCq+OCquODqg0KK+OCv+ODs+ODgCzjg5/jgq3jgrMNCivjgr/jg4vjg4As44Kt44Of44ObDQor44K/44OL44Ks44OvLOODqOOCt+OCv+OCqw0KK+OCv+ODi+ODoOODqSzjg6jjgrfjg4rjg6oNCivjgr/jg4ss44OS44Ot44OW44OfDQor44K/44K344OtLOODpuOCreOCqg0KK+ODkuODqeOCteOCqyzjg47jg5bjg6bjgq0NCivjgr/jg6/jg4As44Ko44Kk44Ko44OEDQor44K/44Ov44OpLOOCt+ODs+OCuA0KK+ODhuODqeODgCzjg4jjg6jjg5LjgrUNCivjg4bjg6njgrXjgq0s44OS44Ot44Om44KtDQor44OG44Op44K344OeLOODkuODh+OCsw0KK+OCs+ODkOODpOOCtyzjgr/jgqTjgr7jgqYNCivjg4bjg6njgqbjg4Es44Ok44K544Of44OEDQor44Ov44K/44OK44OZLOOCt+ODs+OCpOODgQ0KK+ODiOOCreODiOODoizjg57jgrXjg47jg6oNCivjg4jjgq/jg4As44K/44Kr44Om44KtDQor44K144Kv44Op44KuLOODjuODquODkuOCtQ0KK+ODiOODn+ODouODiCzjg57jgrXjg5LjgrMNCivjg4jjg5/jgr8s44OS44OH44KqDQor44OI44Oi44OfLOODkuODreODn+ODhA0KK+ODiOODs+OCsOOCpizjg57jgrXjgrcNCivjg4jjg6rjgqbjg58s44OS44Ot44K544KxDQor44OI44Oo44OALOOCq+ODhOODkuOCtQ0KK+ODiOODqOOCteODiCzjg5Ljg63jgrcNCivjg4jjg6jjgrfjg54s44OG44OE44OkDQor44OE44OB44OALOOCuOODpeODsw0KK+ODhOODgeODouODiCzjg57jgrPjg4gNCivjg4Tjg4Hjg6Qs44Oh44Kw44OfDQor44OE44OALOOCv+ODhOODreOCpg0KK+ODhOODgCzjg6bjgqsNCivjg4Tjgrjjg6Ljg4gs44Om44Kt44KqDQor44OE44K4LOODjuODquOCqg0KK+ODhOOCuCzjg5Ljg63jgrcNCivjg4TjgqvjgrTjgrcs44OI44K344Kr44K6DQor44OE44Kr44Oi44OILOOCseOCpOOCuA0KK+ODhOOCreODgOODhizjg5Ljg63jgrcNCivjg6Ljg6rjgr8s44Kz44Km44K+44KmDQor44OE44Or44K/LOOCt+ODjuODlg0KK+ODhOOCt+ODnizjg4jjg6LjgqLjgq0NCivjg4Tjgrcs44OI44K344OS44KzDQor44OE44OE44OfLOOCueODn+ODiA0KK+ODhOODpOODnizjg6Tjgrnjgq0NCivjgqbjg4Hjg4As44Om44Kt44KqDQor44Km44OB44OALOODqOOCpuOCsw0KK+OCpuODgeODpOODnizjgr/jgrHjgrcNCivjgqbjg4As44Om44Kr44OqDQor44Km44Ko44OALOOCteOCquODqg0KK+OCpuOCqOODgCzjg5Ljg63jgrcNCivjg4Tjgqvjg6Ljg4gs44OB44Ko44OfDQor44Km44Ko44OALOODkuODh+OCqg0KK+OCreOCreODp+OCpizjg6jjgrfjgr/jgqsNCivjgqbjgqjjg4As44Kk44Kv44KoDQor44Km44Ko44Kw44OqLOODiOOCquODqw0KK+OCpuOCqOODj+ODqSzjg5Ljg63jg6bjgq0NCivjgqbjgqjjg57jg4Qs44Kr44OE44OkDQor44K144OI44KmLOOCq+OCuuODkuOCsw0KK+OCpuOCqOODjizjg5Ljg4fjgr/jgqsNCivjgqbjgqjjg44s44Oo44K344KzDQor44Km44Ko44OOLOODkuODreODpuOCrQ0KK+OCpuOCqOODjizjgrfjgrLjgq0NCivjgqbjgqjjg44s44OS44OH44KtDQor44Km44Ko44Ok44OeLOODkuODreODjuODqg0KK+OCpuODoeODgCzjgqvjg4rjgqYNCivjgqbjg6Hjgqvjg68s44Kr44OoDQor44OK44Ks44K/LOODjuODquOCsw0KK+OCpuODqeOCtCzjg4jjg6jjg5Ljg60NCivjgqbjg6vjgrfjgrbjgqss44Om44Kt44KqDQor44K/44Kr44OP44K3LOOCt+ODp+OCpuOCpOODgQ0KK+OCpuODhOODjuODn+ODpCzjgrfjg7Pjg5rjgqQNCivjg6/jg4As44Kr44K644OS44OtDQor44Ov44OALOODn+OCreOCqA0KK+ODr+ODgCzjgrfjgrrjgqoNCivjg6/jgqvjg5Djg6Tjgrcs44Om44Of44KzDQor44Ov44Kr44OQ44Ok44K3LOOCq+OCuuODkuOCsw0KK+ODr+OCq+ODnuODhCzjgqvjgrrjgq0NCivjg6/jgqvjg57jg4Qs44Kz44Km44K4DQor44Ov44Kt44Oi44OILOODiuODquODiA0KK+ODr+OCr+OCpCzjgrfjg6XjgqbjgrgNCivjgqTjg4jjgqQs44Oo44K344OS44K1DQor44Ov44K/44OZLOOCq+ODhOODpA0KK+ODr+OCv+ODmSzjg4rjgqrjgr/jgqsNCivjg6/jgr/jg4rjg5ks44K344Ol44Oz44Kk44OBDQor44Ov44K/44OK44OZLOODkuODreOCtw0KK+ODr+OCv+ODiuODmSzjgr/jg4DjgrcNCivjg6/jgr/jg4rjg5ks44Ko44Kk44Kk44OBDQor44Ov44K/44OK44OZLOODkuODh+ODiOOCtw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg6bjgq0NCivjg6/jgr/jg4rjg5ks44OS44Ot44Om44KtDQor44Ov44K/44OM44KtLOODnuOCteODqw0KK+ODpOODluOCt+OCvyzjg5/jg4njg6oNCivjg6Tjg5bjgr8s44Of44OE44Oo44K3DQor44Ok44OW44Km44OBLOOCt+ODp+OCpuODmOOCpA0KK+ODpOOCuOODnizjg6jjgqbjgrMNCivjg6Tjgq/jgrfjgrgs44OV44Of44OS44OtDQor44Ok44Oe44OALOODpuOCreOCsw0KK+ODpOODnuODgCzjg5Ljg63jgqgNCivjg6Tjg57jg4As44OS44K1DQor44Ok44Oe44OALOOCouOCreODjuODlg0KK+ODpOODnuODgCzjgqLjgq3jgqoNCivjg6Tjg57jg4As44Ko44Kk44K544KxDQor44Ok44Oe44Ks44OfLOODkuODreODleODnw0KK+ODpOODnuOCsOODgSzjgrjjg63jgqYNCivjg6Tjg57jgrDjg4Es44Kz44Km44K4DQor44Ok44Oe44Kr44OvLOOCt+ODsw0KK+ODpOODnuOCs+OCtyzjgr/jgqvjgrcNCivjg6Tjg57jg6Ljg4gs44Ki44Kt44OS44OtDQor44Ok44Oe44Oi44OILOOCseOCpA0KK+ODpOODnuODouODiCzjg57jgrXjg5/jg4ENCivjg6Tjg57jg6Ljg4gs44OS44Ot44Om44KtDQor44Ok44Oe44Oi44OILOOCqOOCpOOCuA0KK+ODpOODnuODouODiCzjg5Ljg63jg5Xjg58NCivjg6Tjg57jg6Ljg4gs44Oe44K144OO44OqDQor44Ok44Oe44Oi44OILOODnuOCteODiOOCtw0KK+OCq+ODr+OCsOODgSzjgqLjgq3jg6kNCivjg6Tjg57jg6Djg60s44OS44Ot44Of44OBDQor44Kk44Ov44K/LOOCv+OCseOCtw0KK+ODpOODnuOCquOCqyzjgqvjgrrjg5Ljg60NCivjg6Tjg57jgrXjgq0s44OS44OH44Kv44OLDQor44Ok44Oe44K344K/LOODkuODreOCtw0KK+ODpOODnuOCt+OCvyzjg4Tjg4jjg6ANCivjg6Tjg57jgrfjgr8s44OI44K344Ki44KtDQor44Ok44Oe44K344K/LOOCouOCreOCsw0KK+ODpOODnuOCt+OCvyzjg5Ljg63jg6bjgq0NCivjg6Tjg57jgrfjgr8s44Kr44K644OS44OHDQor44Ok44Oe44K344K/LOOCq+ODhOODpuOCrQ0KK+ODpOODnuOCt+OCvyzjgqLjgq3jg6kNCivjg6Tjg57jgrbjgq0s44OS44Ot44Om44KtDQor44Ok44Oe44K244KtLOOCq+OCquODqw0KK+ODpOODnuOCtuOCrSzjgrPjgqbjgrgNCivjg6Tjg4rjgqzjg68s44Oe44K144OS44OtDQor44K/44Kr44Kq44KrLOODkuOCq+ODqw0KK+ODpOODiuOCuyzjg6rjg6fjgqbjgqTjg4ENCivjg6Tjg44s44OI44Oi44Om44KtDQor44Ok44KqLOOCqOODquOCsw0KK+ODpOOCueODgCzjg4jjgrfjg5Xjg58NCivjg6Tjgrnjgqvjg68s44OS44OI44OfDQor44Oo44Ks44KkLOOCs+OCpuOCpOODgQ0KK+ODqOOCs+OCrOODryzjgrvjgqTjgrgNCivjg6jjgrPjgrXjg68s44Oe44K144Om44KtDQor44Oo44Kz44K/LOODn+ODiuOCsw0KK+ODqOOCs+OCvyzjg6TjgrnjgrcNCivjg6jjgrPjgqbjg4Es44OE44OI44OgDQor44OK44Kr44Ok44OeLOOCouODhOOCtw0KK+ODqOOCs+ODpOODnizjg4/jg6vjg5LjgrMNCivjg6jjgrPjg6Tjg54s44Oe44K144KqDQor44Oo44ON44OP44OpLOODiOOCt+ODpuOCrQ0KK+ODqOODjeODoOODqSzjgr/jg4DjgrcNCivjg6jjgrfjg4As44Oe44K144OI44K3DQor44Of44Ok44Og44OpLOODhOODiOODoA0KK+ODqOOCt+ODgCzjgq3jg5/jgqLjgq0NCivjg6jjgrfjg4As44Oe44K144Kr44OEDQor44OK44KrLOODqOOCt+ODkuODrQ0KK+ODqOOCt+ODoOODqSzjg6jjgqbjgqTjg4ENCivjg6jjgrfjg6Djg6ks44OS44Ot44OfDQor44OM44Oe44KqLOODn+ODjeOCqg0KK+ODqOOCt+OCtuOCrSzjgqjjgqTjgrgNCivjg4rjgqvjg6Djg6ks44Kx44Oz44K4DQor44Om44Ki44K1LOODquODp+OCpuOCvw0KK+ODpuOCsizjgr/jgqvjg5Ljg60NCivjg6bjgqvjg68s44Oo44K344K/44KrDQor44Oe44OE44OALOODqOOCt+ODhOOCsA0KK+OCouODmSzjg6Tjgrnjg5Ljg60NCivjg4/jgrvjgqzjg68s44Kr44OE44Oe44K1DQor44OP44K344Oi44OILOODkuODiOOCtw0KK+ODkuODqeODhOOCqyzjgr/jg6Ljg4QNCivjg5vjgrfjgqvjg68s44Of44OO44OrDQor44Ob44K944OkLOOCt+ODp+OCpuOCuA0KK+OCpOOCt+ODj+ODqSzjgr/jgqvjgrcNCivjgqTjg6/jgq0s44K/44OB44OP44OrDQor44Kr44ON44OALOOCs+OCpuOCuA0KK+OCreODoOODqSzjgr/jgrHjgrcNCivjgrPjg7Pjg44s44Oe44Kz44OIDQor44Oe44OE44OALOODqOOCt+ODkuOCtQ0KK+ODn+ODpOOCt+OCvyzjgrfjgrLjg4jjg6INCivjgrXjgqvjg6Ljg4gs44Oe44OqDQor44OO44Og44OpLOOCt+ODs+OCpOODgQ0KK+OCquOCquODkOODpOOCtyzjgqjjg4TjgrMNCivjgrXjgqTjg4jjgqYs44Om44Kt44KoDQor44K144K144Ks44OvLOODpuOCpuOCsw0KK+OCteODiOOCpizjg6Tjg6jjgqQNCivjgrfjgqws44Oe44K144Of44OEDQor44K344OO44OP44OpLOODnuOCteOCtw0KK+OCt+ODp+OCpizjg6HjgrDjg58NCivjgr/jgrHjgqzjg68s44Of44Ko44KzDQor44K/44OE44OfLOODpuOCv+OCqw0KK+ODiOODn+OCqCzjg47jg6rjg5LjgrMNCivjg6/jgr/jg4rjg5ks44Oe44Oi44OrDQor44Ok44Oe44OALOODpuOCpuOCpOODgQ0KK+ODpOODnuODgCzjg4jjg5/jg5Ljg60NCivjg6Tjg57jg6Ljg4gs44K/44Kx44K3DQor44Ok44Oe44K244KtLOODnuOCteOCqg0KK+OCs+ODnuODhOOCtuOCrSzjg4HjgqLjgq0NCivjg5Xjg4Hjg4As44Oe44K144OS44KzDQor44K/44OK44KrLOOCq+OCuuODpuOCrQ0KK+ODj+ODpOOCtyzjgrXjg5vjg6oNCivjg4rjgqzjgr8s44K744Kk44Kk44OBDQor44OQ44OQLOODnuOCs+ODiA0KK+OCouOCq+ODnizjgr/jgqvjgrcNCivjgqvjgrbjg54s44Kr44K644K344KyDQor44Oi44OqLOODkuODreOCouOCrQ0KK+OCpOOCseODgCzjg4Tjg6jjgrcNCivjg6/jgr/jg4rjg5ks44Kr44OE44OIDQor44Of44OeLOODleODn+OCqg0KK+OCouODs+ODieOCpizjg4jjg6Ljg5Ljg60NCivjg57jgqjjgr7jg44s44Of44OE44OS44OtDQor44Kq44K/44KrLOOCs+OCpuOCpOODgQ0KK+ODj+ODpOOCtyzjg57jgrXjg5Ljg60NCivjgqbjgqjjg44s44Kr44K644K/44KrDQor44OE44OO44OALOOCseOCpOOCpOODgQ0KK+OCueODieOCpizjgr/jgqvjg4jjgrcNCivjgrXjgqvjg6Ljg4gs44Of44OE44Ki44KtDQor44K/44OK44KrLOODouODquOCt+OCsg0KK+OCs+ODiOOCpuODgCzjg6bjgq3jg47jg6oNCivjgqvjg6vjg5ks44OV44Of44OS44OtDQor44K144Kk44OI44KmLOODhuODq+ODqOOCtw0KK+ODkuODqeODjizjg5Ljg63jgrMNCivjgrXjg4jjgqYs44OS44Ot44Oe44K1DQor44OK44Kr44Ok44OeLOOCseODs+OCpOODgQ0KK+ODjuODgCzjg6bjg6rjgrMNCivjg54s44Ok44K544OS44OtDQor44K344OK44Ks44OvLOODgeOCq+ODqQ0KK+ODiuOCrOODpOOCuSzjgrPjgqbjgrgNCivjgqLjgqrjgq0s44Kz44Km44K4DQor44OK44Kr44K/LOODj+ODpOODiA0KK+ODn+OCr+ODquODpCzjg4bjg6vjg6bjgq0NCivjg57jg6vjg6Tjg54s44OS44OH44OI44K3DQor44Ko44OB44K844OzLOODkuOCteOCtw0KK+ODiuOCq+ODi+OCtyzjgrfjg6fjgqbjgqTjg4ENCivjg4/jgq7jgqos44OI44Oi44OS44KzDQor44K/44Og44OpLOODnuOCteOCouOCrQ0KK+OCv+OCsOODgSzjg6jjgrfjg4jjgrcNCivjgqrjgrbjg68s44Kq44K144OgDQor44Ok44Kq44Kk44K/LOODiOOCt+ODkuODrQ0KK+OCouOCteODjizjg47jg6rjg6TjgrkNCivjgq/jgrXjg44s44OG44Or44OS44OtDQor44OP44Oe44OALOODnuOCteOCuA0KK+OCpOODquODpOODnizjg4/jg4rjgrMNCivjg6Djg6njgr8s44OK44Kq44OkDQor44Ki44K144OOLOODqOOCpuOCuA0KK+OCv+OCq+ODjizjgrHjg7PjgqTjg4ENCivjg6Tjg57jgrDjg4Es44Ki44Kt44OI44K3DQor44Og44Op44Kr44OfLOODjuODquODkuODrQ0KK+OCv+ODiuOCqyzjgqvjg4TjgrgNCivjgr/jgqvjgqrjgqss44K444Ol44Oz44Kk44OBDQor44K544K644KtLOODn+OCteODmw0KK+ODn+ODjeOCruOCtyzjg4rjgqrjg6QNCivjgqLjg5ks44OO44Oq44Ki44KtDQor44Ki44OZLOODn+OCuuODmw0KK+OCouODmSzjgrfjg6Xjg7PjgrgNCivjgqLjg5ks44OS44OH44KtDQor44Ki44Ks44OE44OeLOOCouOCreODqQ0KK+OCouOCpOOCtuODryzjgr/jgqvjgrcNCivjgqLjgqvjgqTjgrEs44K444Ol44Oz44KzDQor44Ki44Kt44Oi44OILOODqOOCt+ODjuODlg0KK+OCouOCreOCv+ODpCzjg6bjgq3jgqoNCivjgqLjgq3jg6Tjg54s44OI44K344Om44KtDQor44Ki44Kv44OELOOCt+OCsuOCrQ0KK+OCouODnuODjizjgr/jg4Djgqvjg4QNCivjgqLjg57jg44s44Ki44OE44OO44OqDQor44Ki44Oe44OOLOODleODn+OCqA0KK+OCouODoeODn+ODpCzjgqvjgrrjg58NCivjgqLjg7Pjg4njgqYs44Oe44K144OS44OtDQor44Ki44Oz44OJ44KmLOODhuODs+OCu+OCpA0KK+OCouODs+OCtuOCpCzjg6bjgqbjgrgNCivjgqLjgqrjgq0s44Oq44OE44KzDQor44Ki44Kq44KtLOOCv+OCq+ODpuOCrQ0KK+OCouOCquOCrSzjgrXjg4Djg4/jg6sNCivjgqLjg6njgqQs44OP44Or44OS44OIDQor44Ki44Op44KtLOODqOOCpuOCpOODgQ0KK+OCouODqeOCrSzjgrfjgrLjg5/jg4QNCivjgqLjg6njg6Qs44Oo44K344K/44KrDQor44Ki44Oq44Oo44K3LOODiOODouODjuODlg0KK+OCouOCteODkuODiizjg6jjgqbjgqTjg4ENCivjgqLjgrXjgqQs44OK44Oq44OIDQor44Ki44K144OfLOODkuODreODpuOCrQ0KK+OCouOCteODhOOCsSzjgqvjgrrjg6bjgq0NCivjgqLjgr0s44Kv44OL44Kr44K6DQor44Ki44K644OeLOODnuOCs+ODiA0KK+OCouOCuuODnizjgrXjg4jjgrMNCivjg5Djg5As44K544Of44KzDQor44OQ44OQLOODiOODouOCsw0KK+OCq+OCrCzjg6jjgrfjgq0NCivjg5Djg5As44Om44Km44K544KxDQor44OQ44OzLOODpuOCqw0KK+ODk+ODq+OCq+ODryzjg6zjgqTjgrMNCivjg5zjgqYs44OV44Kv44KqDQor44OA44Kk44K0LOOCt+ODpeODs+OCueOCsQ0KK+ODgOOCpOOCtOOCryzjgrjjg6Xjg7PjgqTjg4ENCivjg4njg5Djgrcs44OI44Kq44OrDQor44Ko44OT44K144OvLOODkuODreOCtw0KK+OCqOODj+ODqSzjg5Ljg63jg4jjgrcNCivjg5Xjg4Hjgqzjg58s44Oq44Ol44Km44K/44Ot44KmDQor44OV44K444OQ44Ok44K3LOODkuODreOCtw0KK+ODleOCuOOCqOODgCzjg6rjg6fjgqbjgqTjg4ENCivjg5XjgrjjgqQs44K744Kk44K0DQor44OV44K444KkLOOCt+ODs+OCuA0KK+ODleOCuOOCpCzjg6jjgrfjg47jg6oNCivjg5XjgrjjgqQs44Oe44K144OkDQor44OV44K444KkLOODkuODh+OCouOCrQ0KK+OCteOCq+ODouODiCzjgrfjg6Xjgqbjg5jjgqQNCivjgq3jgr/jg4As44Ko44Kk44Kk44OBDQor44OV44K444KkLOOCq+OCquODqw0KK+ODleOCuOOCpCzjgrfjg7PjgqTjg4ENCivjg5XjgrjjgqQs44K/44OE44OkDQor44OV44K444Kr44OvLOOCq+OCuuODkuOCsw0KK+ODleOCuOODouODqizjgq3jg6fjgqbjgrMNCivjg5Xjgrjjg6Ljg4gs44OS44Ot44K3DQor44OV44K444OOLOOCu+OCpOOCuA0KK+ODleOCuOOCteODryzjg5Ljg63jgr/jgqsNCivjg5Xjgrjjgr8s44OI44K344OkDQor44OV44K444K/LOODkuODreOCtw0KK+ODleOCuOOCvyzjgrHjgqTjgrgNCivjgq/jgrnjg6Ljg4gs44OS44Ot44OV44OfDQor44OV44K444Ov44OpLOODkuODreOCtw0KK+ODleOCuOODr+ODqSzjgrHjgqQNCivjg5Xjgrjjg6/jg6ks44Oe44Kz44OIDQor44OV44K444Ov44OpLOODkuODreODoA0KK+ODleOCuOODr+ODqSzjg4jjgrfjgq0NCivjg5Xjgqvjg5zjg6os44OS44OH44KqDQor44OV44Kr44OfLOOCteODiuOCqA0KK+ODleOCq+ODnyzjg5LjgrXjgrMNCivjg5Xjgq/jg4As44Om44Km44KzDQor44OV44Kv44OALOOCteODiOODnw0KK+ODleOCr+ODgCzjgrjjg6Xjg7MNCivjg5Xjgq/jg4As44Om44KrDQor44OV44Kv44KkLOODjuODquODgeOCqw0KK+ODleOCr+OCpCzjg4jjg6LjgrgNCivjg5Xjgq/jg4rjgqws44Kx44Oz44K4DQor44OV44Kv44OK44KsLOODnuOCteODpOOCuQ0KK+ODleOCr+OCquOCqyzjg5/jg47jg6sNCivjg5Xjgq/jgqrjgqss44Kk44K144KqDQor44OV44Kv44K3LOODpOOCueODjuODqg0KK+ODleOCr+OCt+ODnizjg4jjgrfjg6bjgq0NCivjg5Xjgq/jg4jjg6Es44K744Kk44K4DQor44OV44Kv44Ok44OeLOOCq+ODhOODkuODiA0KK+ODleODiuODkOOCtyzjg4jjgqrjg6sNCivjg5Xjg6vjg44s44Ki44Kt44OpDQor44OV44Or44OkLOODiOOCt+ODpuOCrQ0KK+ODleODq+ODpCzjg5Ljg63jg6bjgq0NCivjg5Xjg6vjg6Tjg54s44Of44OO44OrDQor44OV44K/44OQLOODpuODn+OCsw0KK+OCouODiuODnyzjg5LjgrXjg47jg6oNCivjg5Xjgr/jg58s44OV44K444KqDQor44OV44K/44Og44OpLOODiOODouOCsw0KK+OCrOODiSzjg5LjgrXjgrcNCivjgrTjgqYs44Oq44On44Km44KzDQor44K044Km44OALOOCt+ODsw0KK+OCtOOCqyzjgr/jg4Tjg6QNCivjgrTjg4jjgqYs44OI44K344K/44KrDQor44K044OI44KmLOOCt+ODjuODlg0KK+ODj+ODlizjgrfjg6fjgqbjgrgNCivjg4/jgqws44Ki44OE44K3DQor44OP44KuLOOCseODs+OCuA0KK+ODj+ODnizjgr/jg4Djg5Ljg60NCivjg4/jg57jg4As44Oe44K144OrDQor44OP44Oe44OOLOOCquOCteODoA0KK+ODj+ODnuODjizjgr/jg4Tjg6QNCivjg4/jg57jgrfjg54s44Om44OfDQor44OP44Oe44K344OeLOOCteODgOODn+ODhA0KK+ODj+ODiuOCpCzjg4bjg4TjgqoNCivjg4/jg6ks44K/44OE44KtDQor44Kq44K/LOOCs+OCpuOCpOODgQ0KK+ODj+ODqeODgCzjg4rjgqrjgq0NCivjg4/jg6njgrMs44K/44OE44OS44OtDQor44OP44K7LOODpuOCv+OCqw0KK+ODj+OCu+OCrOODryzjg5Ljg63jgrcNCivjg4/jgrvjgqzjg68s44K344On44Km44K4DQor44OP44K344Oi44OILOOCteODiOOCtw0KK+ODj+OCt+ODouODiCzjgrvjg4TjgqoNCivjg4/jgrfjg6Ljg4gs44Ki44Kx44OfDQor44OP44K344K644OhLOODnuOCteOCrQ0KK+ODj+OCt+OCuuODoSzjg4rjgqrjgq0NCivjg4/jgr8s44K344Oz44Kk44OBDQor44OP44K/LOODqOOCt+ODkuOCsw0KK+ODj+OCvyzjgr/jgrHjg5LjgrMNCivjg4/jgr/jg44s44Kt44On44Km44KzDQor44OP44K/44OOLOODpOOCueODpuOCrQ0KK+ODj+OCv+ODjizjg6jjgrfjg5Ljg60NCivjg4Tjg4As44OS44Ot44KzDQor44OP44Ok44Kr44OvLOODqOOCt+ODjuODqg0KK+ODj+ODpOODjizjgqvjg4rjgrMNCivjg4/jg6Tjgrcs44K144Kq44OqDQor44OP44Ok44K3LOOCueOCueODoA0KK+ODj+ODpOOCtyzjg47jg5bjg6bjgq0NCivjg4/jg6Tjgrcs44OS44Ot44Om44KtDQor44OP44Ok44K3LOODiOOCt+ODreOCpg0KK+ODj+ODpOOCt+OCv+ODiyzjgqLjgq3jg6kNCivjg5Ljgqzjgrfjg44s44Kt44Of44K/44KxDQor44OS44Kw44OBLOOCq+OCuuODkuOCsw0KK+ODkuOCsOODgSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg5Ljg6Hjg44s44Ok44K544K3DQor44OS44Op44OQ44Ok44K3LOODpuOCpuOCsw0KK+ODkuODqeOCpCzjg6bjgqbjgqTjg4ENCivjg5Ljg6njgqvjg68s44OS44Ot44K3DQor44OS44Op44KtLOODkuODreOCtw0KK+ODkuODqeODjizjgrvjgqTjg6rjg6fjgqYNCivjgqLjgqrjgq0s44Of44OB44KzDQor44OS44Op44Kq44KrLOODnuOCteODpA0KK+ODkuODqeOCteOCqyzjg5Ljg63jg6bjgq0NCivjg5Ljg6njg6Tjg54s44Oo44K344OO44OqDQor44OS44Ot44OP44K/LOODpuOCpuOCpOODgeODrQ0KK+ODnuOCqOOCq+ODryzjg6Tjgrnjg5Ljg60NCivjg5Ljg63jgrss44Oe44OK44OWDQor44OS44Ot44K7LOODkuODreODqOOCtw0KK+ODkuODreOCvyzjg57jgrXjg47jg5YNCivjg5Ljg63jg6/jgr/jg6os44K/44Kr44OS44OtDQor44OS44Ot44Of44OELOODkuODreOCtw0KK+ODkuOCpuODqSzjg57jg6Ljg6sNCivjg5vjg5ws44K/44Kk44K544KxDQor44Ob44Kv44OpLOODnuOCs+ODiA0KK+ODm+ODs+ODgCzjgqTjgrXjgqoNCivjg5vjg7Pjg4As44Oo44Km44KzDQor44K544K644KtLOODkuODh+OCrQ0KK+ODm+ODs+OCtOOCpizjgqvjgrrjgr/jgqsNCivjg5vjg6rjgrDjg4Es44Kt44Kk44OB44Ot44KmDQor44Ob44Oq44KkLOOCreODi+ODgQ0KK+ODm+ODquOCq+ODryzjg4bjg6vjgqoNCivjg5vjgrfjg44s44Ok44K544OS44OtDQor44Ob44K944Kr44OvLOODkuODh+ODpuOCrQ0KK+ODm+OCveODnyzjg5Ljg63jgqLjgq0NCivjg5vjg4Pjgr8s44Kr44K644Ki44KtDQor44Kk44OW44KrLOODjuODluODn+ODgQ0KK+OCpOODluOCrSzjg5Ljg4fjg6bjgq0NCivjgqTjg4Hjgqvjg68s44OS44Ot44K3DQor44Kk44OB44Og44OpLOOCreODn+OCqA0KK+OCpOODgCzjgqvjg4rjg6ENCivjgqTjg4As44OB44OP44OrDQor44Kk44OHLOODpOOCueODkuODhw0KK+OCpOODhyzjgq3jg6jjgr/jgqsNCivjgqTjg4cs44OK44Kq44Om44KtDQor44Kk44OH44K/LOOCv+OCq+OCtw0KK+OCpOOCrOODqeOCtyzjgrHjgqTjgrMNCivjgqTjgqzjg6njgrcs44Om44Kt44OkDQor44Kk44KyLOOCteODhOOCrQ0KK+OCpOOCpOODgCzjgrfjg6fjgqbjgr7jgqYNCivjgqTjgqTjg4As44K/44Kr44Om44KtDQor44Kk44Kk44OALOOCv+ODnuODnw0KK+OCpOOCpOODgCzjg6jjgrfjg5LjgrUNCivjgqTjgqTjg4/jg6ks44OS44Ot44K3DQor44Kk44Kk44K444OeLOOCv+OCseOCtw0KK+OCpOOCseODgCzjgqvjg4Tjg6QNCivjgqTjgrHjg4As44Oe44K144Ki44KtDQor44Kk44Kz44OeLOODjuODluODnuOCtQ0KK+OCpOODnuOCpCzjgq3jg6jjg5Ljg4gNCivjgqTjg57jgqQs44Oe44Kz44OIDQor44K/44OK44KrLOOCreODp+OCpuOCsw0KK+OCpOODnuODoOODqSzjgrPjgqbjgqTjg4ENCivjgqTjg57jg4rjg6os44K/44OE44OkDQor44Kk44Oe44K844KtLOOCuOODpeODs+OCuA0KK+OCpOODiuODgCzjg57jg6bjg58NCivjgqTjg4rjg57jgrks44OS44Ot44K3DQor44Kk44OO44Km44KoLOODkuODreODpuOCrQ0KK+OCpOODhyzjg57jgrXjg5Ljg60NCivjgqTjg6zjgqQs44Oe44K144OrDQor44Kk44K344OP44OpLOODn+ODhOODnw0KK+OCpOOCt+ODj+ODqSzjg5/jg6bjgq0NCivjgqTjgrfjg4/jg6ks44OK44Kq44KtDQor44Kk44K344OP44OpLOOCueOCueODoA0KK+OCpOOCt+ODj+ODqSzjgrjjg6Xjg7PjgqTjg4ENCivjgqTjgrfjgqQs44K/44Kr44Om44KtDQor44Kk44K344KkLOODiOODouODpuOCrQ0KK+OCpOOCt+OCq+ODryzjg6bjgqbjgrgNCivjgqTjgrfjgqvjg68s44OK44Kq44OV44OfDQor44Kk44K344Og44OpLOODkuODreODpuOCrQ0KK+OCpOOCt+ODr+OCv+ODqizjg57jgrnjg58NCivjgqTjgrfjgrbjgq0s44OO44Oq44Oo44K3DQor44Kk44K344K644KrLOODiuOCquODiOOCrw0KK+OCpOOCveODjizjg5/jg4Tjg4jjgrcNCivjgqTjgr3jg6Tjg54s44Of44OE44OO44OWDQor44Kk44K544OALOOCt+OCsuOCqg0KK+OCpOOCv+OCr+ODqSzjg57jgrXjg5Ljg60NCivjgqTjg4jjgqYs44Oe44K144OS44OtDQor44Kk44OI44KmLOODkuODreODleODnw0KK+OCpOODiOOCpizjg6jjgrfjg57jgrUNCivjgqTjg4jjgqYs44OP44Or44KqDQor44Oe44OE44KkLOOCv+OCseODkuOCsw0KK+OCpOODiOOCpizjgr/jgrHjg5LjgrMNCivjgqTjg4jjgqYs44Oe44K144OB44KrDQor44Kk44OI44KmLOODnuOCteODkuOCsw0KK+OCpOODr+OCq+ODnyzjg4Tjg4jjg6ANCivjgqTjg6/jgrUs44OI44K344OfDQor44Kk44Ov44K144KtLOODpuOCpuOCuA0KK+OCpOODr+OCteOCrSzjg4rjgqrjg6bjgq0NCivjgqTjg6/jgrfjgr8s44Of44OB44K/44KrDQor44Kk44K644OfLOODiOOCquODqw0KK+OCpOODiOOCpizjgqLjg4TjgrcNCivjgqTjgrrjg58s44OI44OY44KkDQor44Kk44K644Of44K144OvLOOCu+OCpOOCuA0KK+OCuOODs+ODjizjg6TjgrnjgrcNCivjg5/jg4ks44Oq44Ol44Km44K4DQor44Kr44KsLOOCouOCseODnw0KK+OCq+OCrOODnyzjg5XjgrXjgqoNCivjgqvjgrLjg6Tjg54s44OS44K144OK44KsDQor44Kr44KkLOODkuODiOOCtw0KK+OCq+OCpOODgCzjgrPjgqbjgrgNCivjgqvjgqTjgros44K/44Kx44OS44OIDQor44Kr44K444K/LOOCuA0KK+OCq+OCseODkizjgqLjgrHjg58NCivjgqvjgq3jg6Ljg4gs44OI44Oi44OS44OtDQor44Kr44Kt44OM44OeLOOCteODgeOCsw0KK+OCq+OCreODjOODnizjgrfjgrrjgqsNCivjgqvjg57jgr8s44OI44K344KoDQor44Kr44Oe44K/LOOCseODs+OCpOODgQ0KK+OCq+ODn+OCsOODgSzjg5/jgqjjgrMNCivjgqvjg5/jg6Djg6ks44Oo44K344KqDQor44Kr44ON44KzLOODnuOCteODjuODqg0KK+OCq+ODiuODnuODqyzjgrgNCivjgqvjg4rjgrbjg68s44Oe44Oi44OrDQor44Kr44Oz44OZLOOCv+OCq+ODkuODrQ0KK+OCq+ODs+ODgCzjgrPjgqbjgr7jgqYNCivjgqvjg43jg4/jg6ks44Kx44OzDQor44K044OI44KmLOOCt+OCsuOCq+OCug0KK+OCq+ODjeOCsyzjgr/jgrHjgrcNCivjgqvjg43jgrMs44Ok44K544OK44KqDQor44Kr44ON44KzLOOCouOCreODqQ0KK+OCq+ODjeOCsyzjg5Ljg4fjg4jjgrcNCivjgqvjg43jgrMs44OS44Ot44OV44OfDQor44Kr44ON44Of44OELOODkuODreODn+ODhA0KK+OCq+ODjeODoOODqSzjgqvjgrrjgqoNCivjgqvjg43jgr8s44Kz44Km44Kk44OBDQor44K/44OK44KrLOODnuOCteODqOOCtw0KK+ODqOODjeODouODgSzjg4rjgqrjgrcNCivjgqvjg7Pjg44s44Ok44K544Oe44K1DQor44Kr44K144KkLOODpuOCq+ODqg0KK+OCq+OCt+ODnizjgrPjgqbjgrjjg63jgqYNCivjgr/jgqvjgq4s44OS44OH44KtDQor44Kt44K/44Og44OpLOODnuOCteODnw0KK+OCq+OCv+OCquOCqyzjg6Tjgrnjg6bjgq0NCivjgqvjgr/jgqrjgqss44Kr44K644OS44KzDQor44Kr44K/44Kq44KrLOOCt+OCsuODpuOCrQ0KK+OCq+OCv+OCuyzjg6Tjgrnjg4rjg6oNCivjgqvjgr/jg6Tjg54s44Of44OB44KzDQor44Kr44K/44Ok44OeLOODiuOCquODpuOCrQ0KK+OCq+OCv+ODpOODnizjg6bjgqbjgrMNCivjgqvjgr/jg6Tjg54s44Kt44On44Km44KzDQor44Kr44OI44KmLOODpOOCueODkuODrQ0KK+OCq+ODiOOCpizjg5Ljg63jgqLjgq0NCivjgqvjg4jjgqYs44K344Oz44Kk44OBDQor44Kr44OI44KmLOODhOODiOODoA0KK+OCq+ODiOOCpizjg5Ljg63jg6bjgq0NCivjgqvjg4jjgqYs44OI44K344OS44OtDQor44Kr44OI44KmLOODqOOCt+ODnw0KK+OCq+ODiOOCpizjg6bjgqbjgrgNCivjgqvjg4jjgqYs44OE44OI44OgDQor44K944Oh44OkLOOCuOODpeODs+OCsw0KK+OCq+ODr+ODkOOCvyzjg57jgrPjg4gNCivjgqvjg6/jgrDjg4Es44Oe44K144Kk44OBDQor44Kr44Ov44Kw44OBLOOCt+ODs+ODpA0KK+OCv+ODnuOCrOODryzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqvjg6/jg4/jg6ks44OS44K144K3DQor44Kr44Ov44OP44OpLOOCuOODpeODs+OCuA0KK+OCq+ODr+ODkuODiCzjgqvjg4Tjg5LjgrUNCivjgqvjg6/jgqQs44OO44Oq44OS44K1DQor44Kr44Ov44KkLOODjuODquOCsw0KK+ODj+OCruODr+ODqSzjgrfjgrLjgq0NCivjg4rjg6vjgrEs44K/44Kr44K3DQor44Kr44Ov44K144KtLOODqOOCt+ODkuODrQ0KK+OCq+ODr+OCt+ODnizjg6bjgqvjg6oNCivjgqvjg6/jgrfjg54s44Om44Kt44KzDQor44Kr44Ov44K/LOODpuOCv+OCqw0KK+OCq+ODpOODnizjg5Ljg63jgqvjgroNCivjgqvjgrbjg57jg4Tjg6os44OS44Ot44KzDQor44Kt44OJLOOCv+OCq+ODleODnw0KK+OCreOCrOODnyzjg57jg4rjg5YNCivjgq3jgrTjgrcs44OS44K144OkDQor44Oi44Oq44K144OvLOOCreODqOOCtw0KK+OCreOCr+ODgSzjg5/jg4TjgrANCivjgq3jgq/jg4Es44Kt44Kk44OBDQor44Kt44Kv44OBLOODjuODquOCqg0KK+OCreOCr+ODqSzjgqvjg4Tjg58NCivjgq3jg6Djg6ks44OE44ON44KqDQor44Kt44Og44OpLOODkuODreOCrQ0KK+OCreODoOODqSzjgqLjgrHjg58NCivjgq3jg6Djg6ks44OI44Oi44OS44K1DQor44Kt44Og44OpLOOCq+ODhOODjuODqg0KK+OCreODoOODqSzjgrHjgqTjgqTjg4ENCivjgq3jg6Djg6ks44Oe44K144KtDQor44Kt44Og44OpLOODnuOCteODpuOCrQ0KK+OCreODoOODqSzjgrHjg7PjgqTjg4ENCivjgq3jg6Djg6ks44OO44Oq44KzDQor44Kt44Og44OpLOOCt+ODs+OCreODgQ0KK+OCreODjuOCt+OCvyzjgr/jgqTjgrMNCivjgq3jg47jgrfjgr8s44OI44K344OS44KzDQor44Kt44OO44K344K/LOODpOOCueODkuODrQ0KK+OCreOCt+ODmSzjg5Ljg63jgq0NCivjgq3jgrfjg4As44Oo44K344OO44OqDQor44Kt44K344Oi44OILOOCv+OCseOCtw0KK+OCreOCt+ODouODiCzjgr/jg4Tjg6QNCivjgq3jgr8s44K/44Kr44Of44OBDQor44Kt44K/44Ki44KtLOODkuODreODpuOCrQ0KK+OCreOCv+ODgCzjg5Ljg63jg6bjgq0NCivjgq3jgr/jgqzjg68s44OI44K344Om44KtDQor44Kt44K/44Ob44OqLOODkuODreODpuOCrQ0KK+OCreOCv+OCuOODnizjgr/jg4Tjg6QNCivjgq3jgr/jg6Djg6ks44OS44Ot44K3DQor44Kz44OQ44Ok44K3LOOCt+OCsuODqOOCtw0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg5Ljg60NCivjgrPjg5Djg6Tjgrcs44OB44OV44OmDQor44Kz44OQ44Ok44K3LOODpOOCueODpuOCrQ0KK+OCt+ODqeOCpCzjg4DjgqTjgrnjgrENCivjgrPjg5Djg6Tjgrcs44OS44Ot44Om44KtDQor44Kz44OQ44Ok44K3LOOCt+ODs+OCpOODgQ0KK+OCs+ODkOODpOOCtyzjg4jjgrfjg6QNCivjgrPjg5Djg6Tjgrcs44OI44K344KtDQor44Kz44OQ44Ok44K3LOODiuOCquODleODnw0KK+OCs+ODgOODnizjg5Ljg63jg6bjgq0NCivjgrPjgq7jgr8s44Kx44Kk44Kk44OBDQor44Kz44Kw44OsLOODqOOCt+OCq+OCug0KK+OCs+ODj+OCtyzjg47jg6rjgrfjgrINCivjgrPjgrQs44K/44Kr44OS44OHDQor44Kz44Oz44OOLOODqOOCpg0KK+OCs+ODs+ODjizjgq3jg7Pjg6QNCivjgrPjg7Pjg44s44Ok44K544OS44OtDQor44Kz44Oz44OO44K5LOODkuODreOCq+OCug0KK+OCs+OCpOODhyzjgrPjgqbjgrgNCivjgrPjg57jg4Tjg5Djg6ks44OS44OH44OI44K3DQor44Kz44Of44OkLOOCquOCteODoA0KK+OCs+ODn+ODpOODnizjg6jjgrfjg5Ljg60NCivjgrPjg6Ljg4As44K/44Kr44K3DQor44Kz44Oz44OJLOOCq+OCuuODnuOCtQ0KK+OCs+ODs+ODiSzjg57jgrXjg4gNCivjgrPjg7Pjg4ks44OS44OI44K3DQor44Kz44Oz44OJLOOCq+ODhOODpA0KK+OCs+ODs+ODiSzjgqvjgrrjg4jjgrcNCivjgrPjg4vjgrcs44Ki44Kt44OO44OqDQor44Kz44K1LOODnuOCteODiA0KK+OCs+OCueOCrizjgrHjg7PjgqTjg4Hjg60NCivjgrPjgr/jgq0s44Oe44K144Om44KtDQor44Kz44K/44OLLOOCseOCpOOCpOODgQ0KK+OCs+ODpOODnizjg5/jgq0NCivjgrPjg6Tjg54s44OS44Ot44OfDQor44Kz44Ok44OeLOOCq+ODhOODkuOCsw0KK+OCs+OCtuODryzjg57jgrXjg47jg6oNCivjgrPjgrrjg6ss44Oo44K344Ki44KtDQor44Kv44Oc44K/LOODkuODreOCtw0KK+OCr+ODnOOCvyzjgrjjg6Xjg7PjgrMNCivjgq/jg5zjg6Qs44OI44Oi44KzDQor44Kv44OJ44KmLOOCuOODpeODsw0KK+OCu+ODjuOCqizjg5Ljg4jjgrcNCivjgq/jg57jgqzjgqQs44Kr44K644OO44OqDQor44Kv44Op44OJ44OfLOOCreODqOODleODnw0KK+OCr+ODqeODouODiCzjg47jg6rjg6bjgq0NCivjgq/jg6njg4jjg58s44Kx44Kk44K544KxDQor44Kv44Oq44OOLOODpOOCueODkuODrQ0KK+OCr+ODquODpCzjg6bjgqbjgqTjg4ENCivjgq/jg63jg4As44OS44Ot44K3DQor44Kv44Ot44Kr44OvLOODn+ODhOOCouOCrQ0KK+OCr+OCteOCq+ODryzjg47jg5bjg5/jg4QNCivjgq/jgrXjg44s44K144OI44K3DQor44Kv44Ov44OQ44OpLOODiOOCt+ODkuODrQ0KK+OCr+ODr+ODjizjg6Tjgrnjg5Ljg60NCivjg6jjgrfjg4As44K144OI44OrDQor44Kv44K644OOLOODkuODreOCq+OCug0KK+ODnuODgeODgCzjg5Ljg63jgrcNCivjg57jgqjjg4As44Kx44Oz44Kk44OBDQor44Oe44Ko44Kr44OvLOODn+ODjeOCq+OCug0KK+OCquOCquOCv+ODiyzjgr/jg4DjgrfjgrINCivjg57jgq0s44K/44Kv44OkDQor44Oe44Kt44OOLOODiOOCt+OCqg0KK+ODnuODq+OCquOCqyzjg6Tjgrnjg5Ljg60NCivjg57jg6vjg6Tjg54s44K444Ol44Oz44Kz44KmDQor44Oe44Or44Ok44OeLOODjuODquODkuODrQ0KK+ODnuODq+ODpOODnizjg5/jg47jg6sNCivjg57jgrXjgqQs44K344Oz44K0DQor44Oe44K144KtLOODkuODh+ODqA0KK+ODnuOCuyzjgr/jgqvjgrcNCivjg57jgrnjg4As44Om44K/44KrDQor44Oe44OI44OQLOOCv+OCq+ODiOOCtw0KK+ODnuODiOODkCzjgq/jg4vjg5LjgrMNCivjg57jg4Tjg5Djg6ks44K/44Kr44Ki44KtDQor44Oe44OE44KkLOODkuOCteOCtw0KK+ODnuODhOOCpCzjg6Tjgrnjg5Ljg60NCivjg57jg4Tjgqvjg68s44K744Kk44Kk44OBDQor44Oe44OE44Oi44OqLOOCt+ODp+OCpuOCvg0KK+ODnuODhOODouODiCzjgr/jgqvjgrcNCivjg57jg4Tjg6Ljg4gs44Oe44K144Oo44K3DQor44Oe44OE44Oi44OILOOCt+OCsuODqw0KK+ODnuODhOODouODiCzjgrjjg6Xjg7PjgrMNCivjg57jg4Tjg6Ljg4gs44K/44Kx44K3DQor44Oe44OE44Oi44OILOODiOOCquODqw0KK+ODnuODhOODouODiCzjgrXjg4DjgqoNCivjg57jg4Tjgqos44Kr44K644Oo44K3DQor44Oe44OE44Kq44KrLOOCv+OCseODiOOCtw0KK+ODnuODhOOCt+ODnizjgr/jgqvjg5Ljg60NCivjg4rjgqvjg4vjg68s44OI44K344Ot44KmDQor44Oe44OE44Ok44OeLOOCuOODpeODsw0KK+ODnuODhOODpOODnizjgrjjg6Xjg7PjgrgNCivjg57jg4Tjgrbjg68s44OS44OH44OoDQor44Of44Og44OpLOOCt+ODpeODs+OCpOODgQ0KK+ODn+ODi+ODpeOCpizjgrPjgqbjgqTjg4ENCivjg5/jgr8s44Oe44OK44OWDQor44Of44K/LOODkuODreOCq+OCug0KK+ODn+OCv+ODoOODqSzjgrjjg6Xjg7MNCivjg5/jg4Tjg4As44Kq44K144OgDQor44Of44OE44OALOOCuOODpeODs+OCpOODgQ0KK+ODn+ODhOODnuOCvyzjg6jjgrfjg47jg6oNCivjg5/jg4Tjgqrjgqss44Ki44Ok44KzDQor44Of44Km44OpLOOCreODp+OCpuOCsw0KK+ODn+OCpuODqSzjg5/jg4njg6oNCivjg5/jg6/jgr8s44OK44Kq44KtDQor44OK44Ks44K7LOOCv+OCq+OCtw0KK+ODn+ODpOOCsSzjgqLjgq3jgqoNCivjg5/jg6TjgrEs44Om44Kr44OqDQor44Of44Ok44OeLOOCu+OCpOOCuA0KK+ODn+ODpOODouODiCzjg4bjg4TjgqoNCivjg5/jg6Tjg6Ljg4gs44OS44OI44OfDQor44Of44Ok44OK44KsLOODnuOCteOCq+ODhA0KK+ODn+ODpOOCtuOCrSzjg6Ljg4jjg5Xjg58NCivjg5/jgrrjg5As44OS44Ot44K3DQor44Of44K644OM44OeLOOCq+ODhOODnw0KK+ODn+OCuuOCteOCrSzjg5/jg68NCivjg5/jgrrjgr8s44OO44Oq44Ki44KtDQor44Oi44OB44K644KtLOOCt+ODpeOCpuOCpOODgQ0KK+ODouODgeOCuuOCrSzjgqLjg4Tjgq0NCivjg6Ljg4Hjgrrjgq0s44OB44Kr44OpDQor44Oi44KuLOODkuODreOCtw0KK+ODouODouOCuyzjg4Tjg6jjgrcNCivjg5Ljg6njg44s44Ki44Kt44OS44OHDQor44Oi44OqLOODpuOCpuOCrQ0KK+ODouODqizjg57jgrXjg6bjgq0NCivjg6Ljg6os44Oe44K144Om44KtDQor44Oi44OqLOOCt+OCsuOCqg0KK+ODouODquOCq+ODryzjgrfjg7PjgrgNCivjg6Tjgq7jgrfjgr8s44Kk44K144KqDQor44Oi44Oq44Oi44OILOOCs+OCpuOCpOODgeODreOCpg0KK+ODouODquODouODiCzjgrPjgqbjgrgNCivjg57jg4Tjg4As44Kx44Oz44K4DQor44Oi44Oq44Kq44KrLOOCouOCreODkuOCsw0KK+ODouODquOCt+OCvyzjg6rjgqgNCivjg6Ljg6rjgr8s44Kv44OL44OS44OtDQor44Oi44Oq44K/LOOCreODqOOCqOOCpA0KK+OCq+ODjeOCsyzjgqvjgrrjgqLjgq0NCivjg6Ljg6rjgr8s44Oe44K144Om44KtDQor44Oi44Oq44Ov44KtLOODjuODluODpuOCrQ0KK+ODouODreODieODnyzjg6jjgqbjgqTjg4ENCivjg6Ljg4jjg4/jgrcs44Oo44K344OS44OHDQor44Oi44OI44K444OeLOODhuODhOOCqg0KK+ODouODiOOCrSzjgrHjgqTjgrMNCivjg6Ljg6os44Of44OvDQor44Km44K544KkLOOCq+OCquODqw0KK+ODoOODqeOCq+ODnyzjgr/jgrHjgqoNCivjg6Djg6njgqvjg58s44OA44Kk44K744KkDQor44Og44Op44Kr44OfLOODkuODh+OCtw0KK+ODoOODqeOCq+ODnyzjg5Ljg4jjgrcNCivjg6Djg6njgr8s44Oo44K344KqDQor44Og44Op44K/LOOCreODqOODkuOCsw0KK+ODoOODqeODpOODnizjgrXjg4jjgrcNCivjg6Djg4jjgqYs44Oo44K344OS44OtDQor44OK44OA44Kw44OBLOOCueODn+ODiA0KK+ODiuOCrOODj+OCtyzjgqTjgrXjgqoNCivjg4rjgqzjgqQs44Oe44K144OS44OtDQor44OK44Ks44Og44OpLOODnuOCs+ODiA0KK+ODiuOCrOOCqizjg57jgrXjg58NCivjg4rjgqzjgrfjg54s44Of44OB44OO44OqDQor44OK44Ks44K344OeLOODn+ODqOOCsw0KK+ODiuOCrOOCvyzjg4rjgqrjg6oNCivjg4rjgqzjgr8s44OO44Oc44OrDQor44OK44Ks44OE44KrLOODjuODquODpuOCrQ0KK+ODiuOCrOODpOODnizjgrXjg4rjgqgNCivjgqbjg4Hjg4As44K/44Kr44OS44OHDQor44Km44OB44K+44OOLOOCv+OCq+OCtw0KK+ODiuOCq+ODgCzjg4jjgrfjg6QNCivjg4rjgqvjgqzjg68s44Ok44K544OS44OtDQor44OK44Kr44Ks44OvLOODpuOCreODkuODrQ0KK+ODiuOCq+OCrOODryzjg4Hjg4/jg6sNCivjg4rjgqvjgqzjg68s44OK44Kq44Om44KtDQor44OK44Kr44K444OeLOOCs+OCpuOCpOODgeODreOCpg0KK+ODiuOCq+OCuOODnizjg5Ljg63jgqLjgq0NCivjg4rjgqvjgrjjg54s44Kt44On44Km44KzDQor44OK44Kr44Of44OBLOODquODpeOCpuOCpOODgQ0KK+ODiuOCq+ODouODiCzjg6Tjgrnjg4jjg6INCivjg4rjgqvjg6Ljg4gs44OS44Ot44K3DQor44OK44Kr44Og44OpLOODkuODreOCtw0KK+ODiuOCq+ODoOODqSzjg6bjg5/jgrMNCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44Ki44Kt44Ok44OeLOOCv+OCq+OCuA0KK+ODiuOCq+ODoOODqSzjg5Ljg4fjg4gNCivjg4rjgqvjg6Djg6ks44OE44OI44OgDQor44OK44Kr44Og44OpLOOCv+OCq+OCsw0KK+ODiuOCq+ODoOODqSzjg6bjgq3jgrMNCivjg4rjgqvjg6Djg6ks44Oo44K344OS44KzDQor44OK44Kr44Og44OpLOOCu+OCpOOCuA0KK+ODiuOCq+ODoOODqSzjg6bjgqbjgqTjg4ENCivjg4rjgqvjg6Djg6ks44OS44Ot44OfDQor44OK44Kr44Og44OpLOOCteODiOOCtw0KK+ODiuOCq+ODjizjgr/jgqvjgrcNCivjg4rjgqvjg44s44Kx44Kk44K4DQor44OK44Kr44K344OeLOODjuODquOCqg0KK+ODiuOCq+ODhOODnCzjg57jgrXjg5LjgrMNCivjg4rjgqvjg4Tjgqss44OG44OE44Ot44KmDQor44OK44Kr44Ok44OeLOODnuOCs+ODiA0KK+ODiuOCq+ODpOODnizjg57jgrXjg5LjgrMNCivjg4rjgqvjgrbjg68s44Kq44K144OgDQor44OK44Kq44OE44KrLOOCouOCreOCsw0KK+ODiuODqeODj+ODqSzjgrXjg4jjgrcNCivjg4rjg6vjgrfjg54s44Oe44K144KzDQor44OK44OI44OqLOODkuODreOCv+OCqw0KK+ODi+OCpOOCuOODnizjg6bjgqsNCivjg4vjgqTjg6Qs44Oq44KrDQor44OL44K3LOODiOOCt+ODkuOCtQ0KK+ODi+OCtyzjg57jgrXjg5Ljg60NCivjg4vjgrfjg5Ys44Ki44Ok44KzDQor44OL44K344OALOOCv+ODhOODpA0KK+ODi+OCt+ODj+ODqSzjgr/jgqvjgqLjgq0NCivjg4vjgrfjgqvjg68s44Oe44K144KzDQor44K/44OK44KrLOOCpOOCteOCqg0KK+ODi+OCt+OCq+ODryzjg57jgrXjg4gNCivjg4vjgrfjg6Ljg4gs44OS44OH44Ki44KtDQor44OL44K344Oi44OILOODiuOCquOCsw0KK+ODi+OCt+ODoOODqSzjgr/jgqvjgrcNCivjg4vjgrfjg6Djg6ks44Kz44Km44K+44KmDQor44OL44K344OOLOOCseODs+OCuA0KK+ODi+OCt+ODjizjgrfjg7Pjg6QNCivjg4vjgrfjgqrjgqss44Oe44K144OO44OWDQor44OL44K344K244KtLOOCseODs+OCuA0KK+ODi+OCt+OCtuODryzjg4DjgqTjgrnjgrENCivjg4vjg68s44Oi44Oq44Oo44K3DQor44OO44OWLOODn+ODjuODqw0KK+ODjuOCrOOCpOODiCzjg47jg5bjg6bjgq0NCivjg47jgrDjg4Es44Oo44Km44KzDQor44OO44K4LOODkuODreODpuOCrQ0KK+ODjuOCuOODnizjg47jg6rjgqoNCivjg47jg6Djg6ks44Ki44Kt44KzDQor44OO44Og44OpLOOCt+ODs+OCpOODgQ0KK+ODjuODiuOCqyzjg6bjgq3jg47jg6oNCivjg4rjgqvjgrjjg54s44OB44OV44OmDQor44OO44K244KtLOODn+OCreOCqg0KK+ODjuOCtuOCrSzjg6jjgrfjg6bjgq0NCivjg4zjg68s44K/44Kx44K3DQor44Kq44OBLOOCv+OCq+OCtw0KK+OCquODgeOCouOCpCzjg4jjgrfjg6bjgq0NCivjgqrjg4As44Ki44OE44K3DQor44Kq44Ks44K144Ov44OpLOODqOOCt+ODpuOCrQ0KK+OCquOCrOOCteODr+ODqSzjg4jjg5/jgqoNCivjgqrjgqzjgr8s44Kr44K644OP44OrDQor44Kq44Ks44OvLOOCseODs+OCpOODgQ0KK+OCquOCruODj+ODqSzjg5Ljg63jgq0NCivjgqrjgqrjg4/jg6ks44Kr44OE44OfDQor44Kq44Kq44OQLOODpuODn+OCsw0KK+OCquOCquODkCzjgqjjgqTjgrgNCivjg57jg4Tjg4As44K344Ky44Om44KtDQor44Kq44Kq44KoLOODpuOCpuOCuA0KK+OCquOCquOCrOOCrSzjgqvjgrrjg5Ljg60NCivjgrfjg6fjgqbjgrjjg54s44OI44K344OS44OHDQor44Kq44OP44OeLOODkuODreODpuOCrQ0KK+OCquOCquODj+OCtyzjgrHjgqTjgrMNCivjgqrjgq7jg44s44K344Ky44KtDQor44Kq44Kq44Kr44OvLOOCs+OCpuOCpOODgQ0KK+OCquOCquOCq+ODr+ODqSzjg57jg4rjg5YNCivjgqrjgq0s44Oe44K144OS44KzDQor44ON44Oi44OILOOCuOODpeODsw0KK+OCquOCquOCr+ODnCzjg47jg5bjg6bjgq0NCivjgqrjgqrjgq/jg6ks44OI44Oi44OS44KzDQor44Kq44OeLOODiOODouODkuOCtQ0KK+OCquOCquODn+OCqyzjg4bjg4TjgrcNCivjgqrjgqrjg6Ljg6os44OS44OH44OfDQor44Kq44Kq44Oi44OqLOODkuODreOCouOCrQ0KK+ODr+OCv+ODiuODmSzjgqvjgrrjgqLjgq0NCivjgqrjgqrjg4vjgrcs44Of44OE44OrDQor44Kq44Kq44OL44K3LOODnuOCteODkuODhw0KK+OCquODjizjgrXjg4rjgqgNCivjgqrjg44s44K444Ol44Oz44KzDQor44Kq44Kq44OM44OeLOODnuOCteOCqg0KK+OCquOCt+ODnizjgr/jgqvjg6bjgq0NCivjgqrjgrfjg54s44Oe44K144K3DQor44Kq44Kq44K/LOODnuOCteODpuOCrQ0KK+OCquOCquOCvyzjg6Ljg4jjgqQNCivjgqrjgqrjgr8s44Kr44Kq44OrDQor44Kq44Kq44K/44KrLOODiOOCt+OCouOCrQ0KK+OCquOCquOCv+OCsSzjgrXjgqjjgrMNCivjgqrjgqrjgr/jgrEs44OS44OH44OV44OfDQor44Kq44Kq44K/44OLLOOCr+ODi+OCqg0KK+OCquOCquODhOODnCzjgqLjg4Tjg6bjgq0NCivjgqrjgqrjg4Tjgqss44OG44OE44KqDQor44Kq44Kq44OE44KrLOODiOOCt+ODkuOCsw0KK+OCquOCquODhOOCrSzjgqTjgrrjg58NCivjgrXjgrPjg4As44K344Ol44Km44Kk44OBDQor44Kq44Kq44OvLOOCteODiOOCtw0KK+OCquOCquODpCzjgrjjg6Xjg7PjgrvjgqQNCivjgqrjgqTjgqvjg68s44Oe44K144KtDQor44Kq44Kr44OZLOODnuODiuODlg0KK+OCs+ODkOODpOOCtyzjgr3jgqYNCivjgqrjgqvjg4As44Ok44K544Of44OEDQor44Kq44Kr44OALOODhuODhOOCuA0KK+OCquOCq+ODgCzjg4bjg4Tjg6QNCivjgqrjgqvjg6Ljg4gs44OS44OH44Ki44KtDQor44Kq44Kr44Oi44OILOODkuODh+ODjuODlg0KK+ODoeODqSzjg5Ljg63jg6bjgq0NCivjgqrjgqvjg44s44Kr44K644OO44OqDQor44Kq44Kr44K244KtLOOCq+OCuuODpuOCrQ0KK+OCquOCreOCvyzjgrXjg4jjgrMNCivjgqrjgq/jg4As44Ko44Kk44Kk44OB44Ot44KmDQor44Kq44Kv44OM44KtLOODnuOCteOCq+OCug0KK+OCquODs+ODgCzjg4HjgrrjgrMNCivjgqrjg7Pjg4As44OS44Op44K/44KrDQor44Km44OE44OfLOODnuOCteODkuODrQ0KK+OCquOCquODjizjgr/jgqvjgrcNCivjgqrjgqrjg44s44Om44Kt44OS44OtDQor44Kr44Ov44Oi44OILOODkuODh+ODpuOCrQ0KK+OCq+ODiSzjgq/jg4vjg5Ljg60NCivjgqrjgrfjg54s44K344Ot44KmDQor44Kq44Kq44K544OfLOOCouOCreODqQ0KK+OCquOCquOCvyzjgqvjgrrjg6bjgq0NCivjgqrjg6rjgqQs44K344Ol44Oz44K4DQor44Kq44Oq44K/LOOCt+ODpeOCpuOCpOODgQ0KK+OCquOCquOCteOCqyzjg4jjg6jjg5Ljg4cNCivjgqrjgr3jg47jgqQs44Om44Kt44KqDQor44Kq44K244K1LOODpuOCreODjuODlg0KK+OCquOCtuODryzjgr/jg4TjgrgNCivjgqrjgrbjg68s44OK44Kq44OO44OqDQor44Kq44K244OvLOODpOOCueODkuODrQ0KK+OCt+ODqeODiOODqizjgrjjg6Xjg7MNCivjgqrjgr7jg40s44Ki44Kt44KqDQor44K144OOLOODkuODreODkuOCtQ0KK+OCteOCpOODiOOCpizjg57jgrXjg58NCivjgrXjgqTjg4jjgqYs44OK44Kq44KtDQor44K144Kk44OI44KmLOODn+OCqOOCsw0KK+OCteOCpOODiOOCpizjgrHjgqTjgrgNCivjgrXjgqTjg4jjgqYs44OB44Kr44KzDQor44K144Kr44KkLOODkuODreODnw0KK+OCteOCq+OCpCzjgrHjg7PjgrgNCivjgrXjgqvjgqQs44Oe44Kz44OIDQor44K144Kr44Kt44OQ44OpLOODn+ODhOOCouOCrQ0KK+OCteOCq+ODouODiCzjg6zjgqTjgrMNCivjgrXjgqvjg6Ljg4gs44Oo44K344KqDQor44K144Kr44Oi44OILOODiOODouOCsw0KK+OCteOCq+ODouODiCzjgrjjg6Xjg7Pjg5rjgqQNCivjgrXjgqvjg6Ljg4gs44Kr44Kq44OrDQor44K144Kr44Og44OpLOOCseODs+OCuA0KK+OCteOCq+ODjSzjgrPjgqbjgrgNCivjgrXjgqvjgr8s44Oe44K144OS44KzDQor44K144Kr44K/LOODnuOCteODkuODrQ0KK+OCouOCr+OCv+OCrOODryzjg57jgrXjg5Ljg60NCivjgrXjgq/jg6njgqQs44Oe44K144OIDQor44K144Kv44Op44KkLOODq+ODquOCsw0KK+ODnuODhOODkOODqSzjg6rjg6fjgqbjgrMNCivjgrXjgq/jg6njgqQs44K144OI44OrDQor44K144OK44KuLOODqOOCt+OCrQ0KK+OCteODjizjg6bjgq3jgrMNCivjgqrjgqrjgqzjgq0s44OB44OS44OtDQor44K144K144KtLOODleODn+ODkuODrQ0KK+OCteOCteOCrSzjg4jjgqrjg6sNCivjgrXjgrXjgq0s44OS44OH44Om44KtDQor44K144K144KtLOOCpOOCr+ODleODnw0KK+OCteOCteOCrSzjg4rjgqzjg57jgrUNCivjgrXjgrXjgq0s44OI44Oi44KzDQor44K144K/44KxLOOCv+OCq+ODpuOCrQ0KK+OCs+ODgOODnizjg57jgrXjg5Ljg60NCivjgrXjg4jjgqYs44OI44Kq44OrDQor44K144OI44KmLOODleOCuOOCqg0KK+OCteODiOOCpizjg5Ljg4fjg4/jg6sNCivjgrXjg4jjgqYs44Oe44Oi44OrDQor44K144OI44KmLOODnuODpuODnw0KK+OCteODiOOCpizjgrfjg63jgqYNCivjgrXjg4jjgqYs44Kx44Oz44K4DQor44K144OI44KmLOODkuODh+ODjuODqg0KK+OCteODiOOCpizjgrHjgqTjgqTjg4ENCivjgrXjg4jjgqYs44Ki44Kt44OS44OtDQor44K144OI44KmLOODkuODh+OCrQ0KK+OCteOCq+OCpCzjgrHjg7PjgrgNCivjgrXjg6/jg4As44Kz44Km44K/44Ot44KmDQor44K744Ks44OvLOOCteODiOODqw0KK+OCu+OCpOODjizjgrfjg6fjgqbjgrgNCivjgrvjgq0s44OE44OI44OgDQor44K744Kt44OJLOOCt+ODs+OCuA0KK+OCu+OCreODjizjg47jg6rjg5Ljg60NCivjgrvjgqos44K/44Kr44Om44KtDQor44K744Oq44Kr44OvLOOCquOCteODoA0KK+OCt+ODkOOCteOCrSzjg5Ljg63jg47jg6oNCivjgrfjgqws44Kr44OK44OfDQor44K344Ky44OrLOODqOOCt+OCsw0KK+OCt+ODnuODgCzjgqLjg4TjgrcNCivjgrfjg57jg4As44Of44OE44KoDQor44K344Oe44OALOODnuOCs+ODiA0KK+OCt+ODnuODgCzjgqvjgqrjg6sNCivjgrfjg57jg6Ljg4gs44Of44OE44Ok44K5DQor44K344Oe44Og44OpLOOCv+ODhOODpA0KK+OCt+ODnuODjizjgr/jgqvjgrcNCivjgrfjg5/jgros44K/44Kr44Ki44KtDQor44K344Of44K6LOODiOOCt+ODkuODrQ0KK+OCt+ODn+OCuizjgr/jg4DjgrcNCivjgrfjg5/jgros44OE44OI44OgDQor44K344Of44K6LOOCs+OCpuOCuOODreOCpg0KK+OCt+ODn+OCuizjgrXjg4jjg6sNCivjgrfjg5/jgros44Of44K644KtDQor44K344Oi44OALOODkuODreODpuOCrQ0KK+OCt+ODouOCrOOCrSzjgrHjg7Pjg6QNCivjgrfjg6Ljg4/jgr8s44OS44Ot44Om44KtDQor44K344Oi44Og44OpLOODjuODluODkuODrQ0KK+OCt+ODouOCquOCqyzjg4jjgrfjgqLjgq0NCivjgrfjg6Djg6ks44K344On44Km44Kk44OBDQor44Ok44Ko44Ks44K3LOOCouODhOOCsw0KK+OCt+ODjuOCtuOCrSzjgqLjg4TjgrcNCivjg4/jgq7jg6/jg6ks44OS44OH44KqDQor44K344Kq44OALOODnuOCteODkuODiA0KK+OCt+OCquOCvyzjg5LjgrXjg6jjgrcNCivjgrfjgqrjgrbjg68s44Kx44Oz44Kk44OBDQor44K344Op44KkLOOCv+OCseOCtw0KK+OCt+ODqeOCpOOCtyzjg4jjg6Ljg5LjgrUNCivjgrfjg6fjgqbjg4As44Kx44Oz44K4DQor44K344Ol44KmLOODiOODouOCsw0KK+OCveODoeODpCzjg57jgrXjgrcNCivjgrnjg4As44Kv44Of44KzDQor44K544KoLOODkuODh+OCqg0KK+OCueOCqOOCvyzjg5Ljg4fjgqoNCivjgrfjg5bjgqTjg4Es44OS44OH44Om44KtDQor44K544Ks44OOLOODkuODreODpuOCrQ0KK+OCueOCrOODr+ODqSzjg5LjgrXjgr/jgqsNCivjgrnjgq7jgqgs44Kr44OE44OI44K3DQor44K544Ku44Oe44K1LOOCseOCpOOCvw0KK+OCueOCruODouODqizjg47jg5bjg6bjgq0NCivjgrnjgq7jg6Ljg4gs44OI44Kq44OrDQor44K544Ku44K144KtLOODqOOCpuOCsw0KK+OCueOCruOCpuODqSzjg6bjgq3jgqoNCivjgrnjgq7jgqbjg6ks44K444Ol44Oz44Kk44OBDQor44Of44K644Kq44OBLOOCv+OCq+OCtw0KK+OCueOCruODpOODnizjg57jgrXjg6QNCivjgrnjgq7jg6Tjg54s44Oe44OK44OWDQor44K544Ku44Ok44OeLOOCseODsw0KK+OCueOCruODpOODnizjgr/jgrHjgrcNCivjgrnjg58s44Oe44K144Oi44OIDQor44K/44OZ44KkLOODqOOCt+ODjuODqg0KK+OCueODiuODnyzjg5Ljg63jgrMNCivjgrnjgrXjg68s44Kq44K144OgDQor44K544K644KtLOOCouOCreOCsw0KK+OCueOCuuOCrSzjgqjjgqTjgrgNCivjgrnjgrrjgq0s44OS44OH44Om44KtDQor44K544K644KtLOODkuODreOCouOCrQ0KK+OCueOCuuOCrSzjgqvjg4rjgrMNCivjgrnjgrrjgq0s44Kr44OK44KzDQor44K544K644KtLOOCq+OCuuODqOOCtw0KK+OCueOCuuOCrSzjgrHjg7Pjgr8NCivjgrnjgrrjgq0s44Kz44Km44K4DQor44K544K644KtLOODnuOCteODjuODqg0KK+OCueOCuuOCrSzjg4rjg6rjg57jgrUNCivjgr/jg5ks44Oq44Ol44Km44Kk44OB44Ot44KmDQor44K/44OB44OP44OpLOOCv+OCq+OCtw0KK+OCv+OCsizjg4jjgrfjgq0NCivjgr/jgrDjg4Es44Ov44K/44OrDQor44OK44Kr44K/LOODr+OCv+ODqw0KK+OCv+OCsOODgSzjgrfjg7MNCivjgr/jgrjjg54s44Ki44Kt44OpDQor44K/44K444OeLOODnuOCs+ODiA0KK+OCv+OCq+ODgCzjgrPjgqbjgqTjg4ENCivjgr/jgqvjgq7jg68s44Of44OE44OS44OtDQor44K/44Kr44OP44K3LOOCq+OCuuODqOOCtw0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jg6TjgrkNCivjgr/jgqvjg4/jgrcs44Kr44K644OO44OqDQor44K/44Kr44OP44K3LOODn+ODhOODiOOCtw0KK+OCv+OCq+OCr+ODqSzjgrPjgqbjgrgNCivjgr/jgqvjgq/jg6ks44Ok44K544Oe44K1DQor44K/44Kr44OP44K3LOODpOODkuODrQ0KK+OCv+OCq+ODj+OCtyzjgqLjgq3jg5Xjg58NCivjgr/jgqvjg4/jgrcs44Kq44K144OgDQor44K/44Kr44OP44K3LOODpuOCpuOCuA0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jg6bjgq0NCivjgr/jgqvjg4/jgrcs44OE44Kr44K1DQor44K/44Kr44OP44K3LOOCt+ODs+OCpOODgQ0KK+OCv+OCq+ODj+OCtyzjg6bjgqbjgrMNCivjgr/jgqvjg4/jgrcs44Oe44Kz44OIDQor44K/44Kr44OP44K3LOODkuODh+OCrQ0KK+OCv+OCq+OCr+ODqSzjg4Tjg4jjg6ANCivjgr/jgqvjg5/jg6Qs44K/44Oe44OfDQor44K/44Kr44K144K0LOOCr+ODi+ODkuOCsw0KK+OCv+OCq+OCteOCrSzjg57jgrXjg4gNCivjgr/jgqvjgrss44Oe44K144OS44OIDQor44K/44Kr44OE44KrLOOCt+ODs+OCpOODgQ0KK+OCv+OCq+ODpOODiuOCrizjgrfjgrLjg6sNCivjgr/jgqvjg6Tjg4rjgq4s44Ok44Ko44Kt44OBDQor44K/44Kx44OBLOODkuODh+OCouOCrQ0KK+OCv+OCseODgCzjg5Ljg63jgrcNCivjgr/jgrHjg4As44Kk44OE44OS44OIDQor44K/44Kx44Ks44OfLOOCq+ODhOODnw0KK+OCv+OCseODkuOCtSzjg57jgrPjg4gNCivjgr/jgrHjgqQs44OO44OW44KqDQor44K/44Kx44KkLOOCv+ODgOODpuOCrQ0KK+OCv+OCseOCq+ODryzjgr/jgrHjg5LjgrMNCivjgr/jgrHjg6Djg6ks44OI44K344OS44OHDQor44K/44Kx44OK44KrLOODiOOCt+ODkuODrQ0KK+OCpOODnuOCpCzjg6jjgqbjgqTjg4ENCivjgr/jgrHjgrXjgrMs44Oo44Km44Kk44OBDQor44K/44Kx44K344OeLOOCq+ODhOOCt+ODreOCpg0KK+OCv+OCseOCpuODgSzjg5Ljg63jg4jjgrcNCivjg5Ljg4Djgqss44OI44Kq44OrDQor44K/44Kt44Oi44OILOODn+ODieODqg0KK+OCv+OCreOCtuODryzjgq3jgq/jg58NCivjgr/jg57jgqQs44Oe44K144OrDQor44K/44Og44OpLOOCt+ODp+OCpuOCpOODgQ0KK+OCv+ODiuODmSzjgqjjgqTjgrgNCivjgr/jg4rjg5ks44Oo44Km44OY44KkDQor44K/44OK44KrLOOCouOCreODiA0KK+OCv+ODiuOCqyzjgqTjgrXjg6ANCivjgr/jg4rjgqss44Of44OJ44OqDQor44K/44OK44KrLOODqOOCt+ODiuODqg0KK+OCv+ODiuOCqyzjg6TjgrnjgrgNCivjgr/jg4rjgqss44K/44Kr44K3DQor44K/44OK44KrLOOCouODquODkuODiA0KK+OCv+ODiuOCqyzjgrfjg7PjgrQNCivjgr/jg4rjgqss44K344Ol44Km44Kk44OBDQor44K/44OK44KrLOODkuODreODpuOCrQ0KK+OCv+ODiuOCqyzjgr/jgqvjgrcNCivjgrXjg44s44OS44Ot44OV44OfDQor44K/44OLLOOCqOOCpOOCpOODgeODreOCpg0KK+OCv+ODi+ODoOODqSzjg6jjgrfjg5Xjg58NCivjgr/jg4vjg6Tjg54s44OA44Kk44K544KxDQor44K/44K144KrLOODpOOCueODnuOCtQ0KK+OCq+ODiOOCpizjgqjjgqTjgrgNCivjg4bjg6njg4As44Oo44K344Om44KtDQor44OG44Op44Oe44KoLOODnuOCrQ0KK+ODhuODqeODi+OCtyzjg47jg5bjg6bjgq0NCivjg4bjg6njg4vjgrcs44OS44Ot44Of44OEDQor44OG44Op44K+44OOLOOCq+OCquODqg0KK+ODiOODk+OCvyzjg57jgrXjg58NCivjgqTjgrrjg5/jgrXjg68s44OS44OH44KtDQor44OI44OALOOCteODiOOCtw0KK+ODiOOCsOODgSzjgr/jgrHjgrcNCivjg4jjg57jg4Qs44OI44Oi44Ki44KtDQor44Ki44Kt44Og44OpLOODjuODluODpuOCrQ0KK+ODiOOCreOCv+OCsSzjgr/jgrHjgrcNCivjg4jjgq/jg57jgrks44Ki44Kt44OS44OtDQor44OI44Kv44K/44KxLOOCouOCreODkuOCsw0KK+ODiOODnuOCrSzjgqvjgrrjg6QNCivjg4jjg5/jgqQs44Oe44K144OS44OtDQor44OI44Of44K/LOOCreODn+OCqg0KK+ODiOODn+ODpOODnizjg57jgrXjg4gNCivjg4jjg6Ljg4As44Kv44Of44KzDQor44OI44Oi44OK44KsLOODnuOCteODjuODqg0KK+ODiOOCteOCqyzjg4rjgqrjg4gNCivjg4jjg4Pjg4jjg6os44Ki44Kt44OS44KzDQor44Oe44OE44KqLOODqOOCt+ODpuOCrQ0KK+ODiOODqOODgCzjg6jjgrfjg6bjgq0NCivjg4Tjg5zjgqQs44Ki44Kt44OpDQor44Kr44OI44KmLOODiOOCt+ODkuODrQ0KK+ODhOODgeODpCzjgqvjgrrjgrcNCivjg4Tjg4As44K344Oz44K0DQor44OE44K4LOODnuOCteODkuOCsw0KK+ODhOOCuCzjg6jjgqbjgqTjg4ENCivjg4Tjgrjjg44s44Oo44Km44K544KxDQor44OE44Kr44Kz44K3LOOCouOCreODqQ0KK+ODhOOCq+ODouODiCzjgrfjgrLjg5Ljg60NCivjg4Tjgqvjgrbjgq0s44OV44Of44OS44OtDQor44OE44Kt44Ki44K3LOOCouOCreODqQ0KK+ODhOOCreOCtuODryzjgrPjgqbjgrgNCivjg4Tjg5/jgr8s44Ko44Kk44Kk44OBDQor44Ko44Oz44OJLOOCv+ODgOODkuOCsw0KK+ODhOODiCzjg4jjgrfjg5Ljg60NCivjg4Tjg6Djg6ks44Oo44K344KqDQor44OE44ON44Kr44OvLOOCveODjuOCueOCsQ0KK+ODhOODq+OCquOCqyzjg6jjgrfjg5LjgrMNCivjg4Tjg6vjgr8s44OO44Oq44KzDQor44OE44Or44K/LOODouODiOODpuOCrQ0KK+ODhOODq+OCvyzjgr/jg4Tjg6bjgq0NCivjg4Tjg4Tjg58s44K344Ol44Oz44OkDQor44OE44OE44OfLOOCq+ODhOODnw0KK+ODhOODr+OCsyzjg6bjgqsNCivjg4Tjg6Tjg54s44Kt44Oo44OV44K1DQor44Km44OB44OALOOCt+ODp+OCpuOCsw0KK+OCpuODgeODgCzjg57jgrXjg5Ljg60NCivjgqbjg4Hjg4As44K744OE44KzDQor44Km44OB44Ok44OeLOOCt+ODs+OCtA0KK+OCpuODgeODpOODnizjg5Ljg4fjgqoNCivjgqbjg4ks44Kt44Oo44OfDQor44Km44Ko44OALOODj+ODq+OCrQ0KK+OCpuOCqOODgCzjg6jjgqbjgrnjgrENCivjg57jg4Tjg6Djg6ks44OA44Kk44K444Ot44KmDQor44Km44Ko44OALOOCouOCseODnw0KK+OCpuOCqOODgCzjgqLjgq3jgqoNCivjgqbjgqjjg57jg4Qs44OS44OH44KqDQor44Km44Ko44OOLOODkuODreODnw0KK+OCpuOCqOODjizjgrjjg6Xjg7PjgrgNCivjgqTjgrfjg4As44Kr44K644OS44KzDQor44Km44Oh44OALOOCs+OCpuOCu+OCpA0KK+OCpuODoeOCrOOCrSzjgq/jg4vjgrMNCivjgqbjg44s44Oe44Oi44OrDQor44Km44Op44OP44K3LA0KK+OCt+ODn+OCuizjgrXjg4jjgrcNCivjgqjjgqzjgrfjg6ks44K/44OA44K3DQor44K544Ko44Kr44ONLOODhuODq+ODpuOCrQ0KK+OCpuODhCzjg4jjgqrjg6sNCivjgqbjg4Tjg4/jgrcs44OI44K344OS44OtDQor44Km44OE44OfLOOCseOCpOOCpOODgQ0KK+ODr+ODgCzjg4Tjg43jg5Xjg58NCivjg6/jg4As44K/44OE44OfDQor44Kt44K/44Ov44KtLOOCu+OCpOOCrQ0KK+ODr+OCt+OCuizjg4/jg6vjg4rjgqwNCivjg6/jgr/jg5ks44OV44Of44OoDQor44Ov44K/44OK44OZLOODkuODreOCtw0KK+ODr+OCv+ODiuODmSzjg57jgrXjg6QNCivjg6/jgr/jg4rjg5ks44K144OI44OfDQor44Ov44K/44OK44OZLOOCt+ODs+OCpOODgQ0KK+ODr+OCv+ODiuODmSzjgr/jgqvjgrcNCivjg6/jgr/jg4rjg5ks44OE44OI44OgDQor44Ov44K/44OK44OZLOODqOOCt+OCouOCrQ0KK+ODr+OCv+ODiuODmSzjg4Tjg43jgqoNCivjg6/jgr/jg4rjg5ks44Oe44K144OoDQor44Ov44K/44OK44OZLOOCqOOCpOOCuA0KK+ODr+OCv+ODiuODmSzjg5Ljg63jgrMNCivjg6/jgr/jg4rjg5ks44OS44Ot44Om44KtDQor44Ov44K/44OK44OZLOOCq+ODhOOCtw0KK+ODr+OCv+ODiuODmSzjg6bjgqbjgrjjg63jgqYNCivjg6/jgr/jg4rjg5ks44Ok44K544KqDQor44Ko44OP44OpLOOCouODhOOCtw0KK+ODr+OCv+ODiuODmSzjg5Ljg4fjgqLjgq0NCivjg6/jgr/jg6njgqQs44K444Ot44KmDQor44Ok44Ko44Ks44K3LOOCquOCteODoA0KK+ODpOODj+OCrizjgrfjg47jg5YNCivjg6Tjg57jg4As44K344Ol44Km44Kk44OBDQor44Ok44Oe44OALOOCv+OCseOCtw0KK+ODpOODnuODgCzjg6jjgqbjgrgNCivjgrPjg7Pjg4ks44OI44K344OkDQor44Ok44Oe44OALOOCouODhOOCtw0KK+ODpOODnuODgCzjgqrjgrXjg6ANCivjg6Tjg57jg4As44Of44KtDQor44Ok44Oe44OALOOCouOCreODkuODrQ0KK+OCqOODjuODouODiCzjg5Ljg63jgrcNCivjgrXjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44Ok44Oe44Kw44OBLOOCreODs+ODpA0KK+ODleOCuOOCvyzjg57jgrXjg4jjgrcNCivjg6Tjg57jgrDjg4Es44K144OI44KzDQor44Ok44Oe44Kw44OBLOODpOOCueODkuODrQ0KK+OCqOOCtuOCrSzjg5Ljg4jjgrcNCivjg6Tjg57jgrDjg4Es44K144OI44OrDQor44Ok44Oe44Oi44OILOOCteODiOOCtw0KK+ODpOODnuODouODiCzjg4jjgqrjg6sNCivjg6Tjg57jg6Ljg4gs44Ok44K544K3DQor44Ok44Oe44Oi44OILOOCv+OCseOCtw0KK+ODpOODnuODouODiCzjgrPjgqbjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44Kz44Km44KtDQor44Ok44Oe44Oi44OILOODiOOCt+ODpuOCrQ0KK+ODpOODnuODouODiCzjg57jgrXjg6sNCivjg6Tjg57jg4rjgqss44OS44Ot44K3DQor44Ok44Oe44ONLOODn+ODgeODqw0KK+ODpOODnuODjuOCr+ODgSzjgrXjg4jjgrcNCivjg6Tjg57jgrXjgq0s44K/44Kr44K3DQor44Ok44Oe44K344K/LOODnuOCteOCq+OCug0KK+ODpOODnuOCt+OCvyzjg5Ljg63jgq0NCivjg6Tjg57jgrfjgr8s44Kx44Kk44Kk44OB44Ot44KmDQor44Ok44Oe44K344K/LOOCs+OCpuOCrQ0KK+ODpOODnuOCt+OCvyzjgrfjgrLjg58NCivjgrfjgrXjgqQs44Oe44K144Om44KtDQor44Ok44Oe44K344K/LOODiOOCt+ODkuODrQ0KK+ODpOODnuOCpuODgSzjg4jjgrfjg6bjgq0NCivjg6Tjg57jgqbjg4Es44Oe44Kz44OIDQor44Ok44Oe44K244KtLOODkuODh+OCqg0KK+ODpOODnuOCtuOCrSzjgr/jg4DjgrcNCivjg6Tjg57jgrbjgq0s44Og44OE44OfDQor44Ok44OK44Ku44Oi44OILOOCv+OCseOCtw0KK+ODpOODjizjg6rjg6fjgqbjgrgNCivjg6Tjg44s44OS44Ot44KtDQor44Ok44K344OtLOODpOOCueOCtw0KK+ODpOOCtuODryzjg57jgrPjg4gNCivjg6jjg4As44K344Ol44Oz44K544KxDQor44Oo44KuLOODleODn+ODpuOCrQ0KK+ODqOOCs+OCpCzjgrPjgqbjgrgNCivjg6jjgrPjg6Tjg54s44Kx44Oz44K344On44KmDQor44Oo44ON44K244KtLOODleODiOOCtw0KK+ODqOOCt+ODgCzjgrjjg6Xjg7MNCivjg6jjgrfjg4As44Oq44Ko44KzDQor44Oo44K344OALOOCq+OCuuODqOOCtw0KK+ODqOOCt+ODgCzjgrjjg6Xjg7PjgrMNCivjgqjjg5Pjg4os44K744Kk44Kk44OBDQor44Oo44K344OALOOCv+ODgOOCtw0KK+ODqOOCt+ODgCzjgr/jg4TjgqoNCivjg6jjgrfjgqTjgrEs44Ok44K544OO44OqDQor44Oo44K344Og44OpLOODn+ODhOODpuOCrQ0KK+ODqOOCt+ODoOODqSzjgrXjg4jjg6sNCivjg6jjgrfjg44s44K344Oz44Kk44OBDQor44Oo44K344KqLOODjuODnOODqw0KK+ODqOOCt+OCv+OCsSzjgrfjgrLjg6jjgrcNCivjg6bjgqLjgrUs44OG44OE44K4DQor44Kq44Kq44Ov44OALOOCt+ODp+OCpuOCuA0KK+OCqOOCsOODgSzjgrXjg4jjg6sNCivjgqrjgrbjg68s44Kr44OE44Om44KtDQor44K144OI44KmLOODn+ODhOOCouOCrQ0KK+OCt+ODs+OCv+ODiyzjgr/jgrHjg58NCivjgrnjgq7jgr/jg4ss44Oo44K344OS44KzDQor44K/44Kr44OP44K3LOOCpOOCuuODnw0KK+OCv+OCreOCtuODryzjg4rjgqrjgq0NCivjg5/jg6jjg4As44Kx44Oz44K4DQor44Ok44Oe44OALOOCreODqOOCtw0KK+ODpOODj+OCrizjgrXjg4jjgrcNCivjgq3jg6Qs44K/44OA44K3DQor44Of44K744KtLOODjuODquOCq+OCug0KK+OCqOODjuODouODiCzjgrHjg7Pjgr/jg63jgqYNCivjgrXjgq/jg6njg4As44Oe44K144KtDQor44K144K144KtLOODjuODluODpuOCrQ0KK+ODkOODkCzjgr/jgrHjgqoNCivjgqLjg5ws44Kr44Kq44OqDQor44Ki44OA44OBLOOCs+OCpuODmOOCpA0KK+OCouOCq+OCteOCqyzjg57jgrXjg5Ljg60NCivjgqLjg57jgrXjgq0s44OS44OH44OIDQor44Ki44Kq44KtLOOCq+ODs+OCuA0KK+OCouOCvOOCrOODnyzjgrfjgrLjgqvjgroNCivjgqjjg4njg44s44OV44Of44OS44OtDQor44OJ44KkLOOCq+OCuuOCqg0KK+ODleOCuOOCpCzjg4jjg6Ljg5Ljg4gNCivjg5XjgrjjgqQs44K144Om44OqDQor44OV44K444Oi44OILOODkuODreOCrQ0KK+ODleOCuOODouODiCzjgr/jgrHjgrcNCivjg5Xjgq/jg4/jg6ks44OO44OW44Om44KtDQor44OV44Kv44Kq44KrLOODhuODhOODpA0KK+ODleOCr+OCt+ODnizjgrHjg7PjgqTjg4ENCivjg5XjgrXjg6Tjg54s44Kz44Km44Kk44OBDQor44K044OI44KmLOODqOOCt+ODkuODrQ0KK+ODj+ODnuODmSzjgqjjgqTjgrgNCivjg4/jg4rjg4As44Kx44Kk44K544KxDQor44OP44K344Oi44OILOODqOOCt+ODkuODrQ0KK+ODkuODkyzjgrXjgqvjgqgNCivjg5Ljg6njg4Tjgqss44Kr44K644Om44KtDQor44Kk44Kr44OqLOOCv+OCq+ODpuOCrQ0KK+OCpOOCr+OCvyzjgqLjgq3jg5LjgrMNCivjgqTjg57jgqQs44OG44OE44K3DQor44Kk44K344OP44OpLOODpOOCueODkuODrQ0KK+OCpOOCveODgCzjgrPjgqbjgqTjg4ENCivjgqTjgr3jgrbjgq0s44Oo44K344K/44KrDQor44K444Oz44Kw44KmLOODqOOCt+OCouOCrQ0KK+ODiuOCpCzjg5/jg47jg6sNCivjgrjjg6fjgqbjg4vjgrcs44Kq44K144OfDQor44Kr44K444OP44OpLOODqOOCt+OCouOCrQ0KK+OCq+ODnuOCvyzjgr/jg4Tjg6QNCivjgqvjg6HjgqQs44Ki44Kt44OpDQor44Kr44Of44Ok44OeLOODhuODhOODpA0KK+OCq+ODiOOCpizjgr/jg4TjgrgNCivjgqvjg4jjgqYs44OI44K344Om44KtDQor44Ko44OfLOODkuODh+OCouOCrQ0KK+OCq+ODr+ODouODqizjg57jg6Ljg6sNCivjgq3jg6Djg6ks44Oo44K344OS44OtDQor44Kt44Og44OpLOOCq+OCuuOCqg0KK+OCreOCt+ODmSzjgq/jg4vjg5LjgrMNCivjgq3jgrfjgqvjg68s44Kr44K644Oo44K3DQor44Kt44K/44Ks44OvLOOCt+ODs+OCpOODgQ0KK+OCreOCv+ODiuOCqyzjg6HjgrDjg58NCivjgrPjg5Djg6Tjgrcs44Oe44K144Om44KtDQor44Kz44OQ44Ok44K3LOOCsuODsw0KK+OCs+OCpOOCsSzjg4jjgqbjgr8NCivjgrPjgqTjgrrjg58s44Kr44K644OkDQor44Kz44K444OeLOOCv+OCq+ODkuOCtQ0KK+OCs+ODi+OCtyzjgq3jg6jjgqvjgroNCivjgrPjg6Tjg54s44K/44Kv44OkDQor44Kv44OJ44KmLOOCq+OCuuODpA0KK+OCr+ODnuOCteOCrSzjg6jjgrfjgqLjgq0NCivjgq/jg63jg4As44OS44Ot44Kr44K6DQor44Kv44K144KrLOOCt+ODs+OCtA0KK+OCqOODs+ODiSzjgrHjg7PjgrgNCivjg57jgqjjgqvjg68s44Oe44K144OS44OtDQor44Oe44Or44K/LOODkuODh+OCrQ0KK+ODnuODhOOCt+OCvyzjgrfjg7PjgrQNCivjg5/jgq/jg4ss44OI44Of44KqDQor44Ko44Oz44OJLOODqOOCt+ODjuODqg0KK+ODn+ODjSzjg6Tjgrnjgr/jgqsNCivjg5/jgqbjg6ks44K344Ol44Km44Kk44OBDQor44Of44K+44Kw44OBLOOCt+ODp+OCpuOCuA0KK+ODm+ODsyzjg6jjgrfjgqLjgq0NCivjg5/jgrrjgrfjg54s44K344Ky44OrDQor44Ko44OALOOCv+OCq+OCtw0KK+ODiuOCrOOCqizjgqLjg4TjgrcNCivjg4rjgqvjg6Djg6ks44OI44Kq44OrDQor44OK44Kr44OL44K3LOODpuOCpuOCuA0KK+ODiuOCq+ODjizjg6jjgqbjgrMNCivjg4rjgqvjgqos44Kr44OE44OkDQor44ON44Oi44OILOODnuOCteODpuOCrQ0KK+ODi+OCt+OCq+ODryzjgrPjgqbjgrgNCivjg4vjgrfjg6/jgq0s44Kx44Oz44Kk44OBDQor44OO44OALOOCv+OCq+OCsw0KK+ODjuOCsOODgSzjg5/jg4jjgrcNCivjgqrjg4HjgqLjgqQs44Kz44Km44K4DQor44Kq44Kq44OP44K3LOODpOOCueODqOOCtw0KK+OCquODjizjgr/jgq/jgrgNCivjgqjjg58s44OS44OH44KqDQor44Kq44Kv44Og44OpLOODnuOCteODkuODrQ0KK+OCquOCr+ODjizjg5Ljg4fjg5/jg4QNCivjgqjjg7Pjg4ks44Oo44K344K/44OADQor44Kq44Kq44OL44K3LOOCouOCreODqQ0KK+OCquOCtuOCrSzjgq/jg4vjg4/jg6sNCivjgrXjgqjjgq0s44OO44Oq44Om44KtDQor44K144Ks44OvLOODjuODnOODqw0KK+OCteOCr+ODnizjg57jgrXjg5sNCivjgrXjg4jjgqYs44K344Ky44Ki44KtDQor44K144OI44KmLOODn+ODhOODkuODrQ0KK+OCteODryzjgq3jg6jjgr/jgqsNCivjgrvjgqzjg68s44Kz44Km44K4DQor44K744KtLOODpuOCreOCqg0KK+OCu+ODs+ODgCzjgrHjg7PjgrgNCivjgrfjg5bjg6Qs44K344Ol44Km44Kk44OBDQor44K344Of44K6LOODqOOCt+ODj+ODqw0KK+OCt+ODs+ODh+ODsyzjgqLjgq3jg6jjgrcNCivjgrfjgqrjgr8s44OS44OI44K3DQor44K344Ol44Kv44K/44OLLOODiOOCt+OCqg0KK+OCueODpOODnizjg5Ljg63jgrMNCivjgrnjgrrjg6Djg6ks44Kk44K144KqDQor44K/44Kr44Kq44KrLOODqOOCt+ODpuOCrQ0KK+OCv+OCseOCpuODgSzjgqvjg4Tjg47jg6oNCivjgr/jgrHjgqbjg4Es44Kr44K644K3DQor44K/44Oe44KkLOODnuOCteODkuODrQ0KK+OCv+ODsyzjgqvjgrrjg5Ljg60NCivjgr/jg4rjgqss44Kx44Oz44K0DQor44Ko44OI44KmLOODhuODq+OCouOCrQ0KK+OCv+ODi+ODkuODqSzjgqvjgrrjg5Ljg60NCivjgr/jg4vjg6Tjg54s44Kt44Kv44KqDQor44K/44Kq44KrLOOCt+OCsuOCrQ0KK+OCv+OCt+ODnizjg57jgrXjg6bjgq0NCivjgr/jgrbjg68s44Of44Kt44KqDQor44OI44Kt44K/LOOCq+ODhOODqOOCtw0KK+ODiOODn+OCvyzjgrfjgrLjgq0NCivjg4jjg5/jgr8s44Kx44Oz44K4DQor44OI44Of44K/LOOCouOCreOCqg0KK+ODhOOCuOODmSzjg5Ljg63jgrMNCivjg4Tjgrjjgqvjg68s44Kx44Oz44Kk44OBDQor44Ko44Oz44OJLOOCuOODpeODs+OCsw0KK+ODn+ODpOOCtuOCrSzjg57jgq3jgrMNCivjg6/jg4As44Oo44K344K/44KrDQor44Ov44K/44OK44OZLOODkuODreODnw0KK+ODpOODnuODgCzjg4rjgqrjg6QNCivjg6Tjg57jg4As44K/44OA44K3DQor44Ok44Oe44OALOOCteODpOOCqw0KK+ODpOODnuOCsOODgSzjg47jg6rjgqoNCivjg6Tjg57jg6Ljg4gs44K/44Kr44KzDQor44Ok44Oe44Kq44KrLOOCq+ODhOODjuODqg0KK+ODpOODnuOCt+OCvyzjg47jg5bjgqoNCivjg6Tjg57jgrfjgr8s44Kr44K644OS44K1DQor44Ok44Oe44K+44KoLOODkuODreODnuOCtQ0KK+ODpOOCqizjg6Tjgrnjg4/jg6sNCivjg6Tjgrnjg4As44K144OI44K3DQor44Oo44OE44K/44OLLOODqOOCt+OCqg0KK+ODqOOCt+ODj+ODqSzjg5Ljg4fjgqoNCivjg6jjgrPjgqbjg6ks44Oe44K144KqDQor44OS44Op44K7LOOCt+OCsuOCqg0KK+ODnuODhOOCpCzjgqTjg4Hjgr/jg63jgqYNCivjgrPjg5Djg6Tjgrcs44Kr44K644OS44K1DQor44K544K644KtLOOCv+OCseOCtw0KK+OCq+ODiOOCpizjg4jjgrfjgq/jg4sNCivjgq/jg4vjg4jjg6Is44OO44OW44Om44KtDQor44Ko44Oz44OJLOOCtOOCpg0KK+OCpOODiOOCpizjgrXjg4jjg6sNCivjgqrjgqvjgrbjgq0s44OS44OH44KqDQor44OS44Ot44OP44K3LOODpOOCueOCqg0KK+OCteOCq+OCrSzjg6jjgqbjgrMNCivjg5/jgq0s44OI44Kt44KzDQor44Kv44Oe44KtLOODnuOCteOCqg0KK+OCv+ODpOODnizjg4bjg4TjgqoNCivjgqrjgqrjg6/jgq0s44Kt44OP44OBDQor44Of44On44Km44OJ44KmLOODnuOCteODiA0KK+OCq+ODiOOCpizjg5Ljg63jg6jjgrcNCivjg5Djg5As44Of44Kt44KqDQor44Kr44ON44KzLOODj+ODq+ODkuOCsw0KK+OCs+OCsOODrCzjg5Ljg63jgqLjgq0NCivjgr/jgrHjg4As44Oo44K344OO44OqDQor44Kk44OB44Og44OpLOODnuODouODqw0KK+OCpOODiOOCpizjg47jg5zjg6sNCivjgqbjgqjjg4/jg54s44Of44OO44OrDQor44OK44Kr44KkLOOCs+OCpuOCuA0KK+OCs+ODkOODpOOCtyzjg57jgrXjgqoNCivjgrfjg57jg4As44Oe44OK44KqDQor44Oh44Kw44OtLOOCt+OCsuODqw0KK+ODpOODnuODpCzjg5Ljg63jgrcNCivjg5Xjgrjjgr8s44Of44OE44KwDQor44Oe44OI44OQLOODgeODkuODrQ0KK+OCpOODiOOCpizjg6Ljg4jjgqvjgroNCivjg4rjgqvjgqQs44K344K644KqDQor44Kq44Kr44OALOODnuOCteODkuODiA0KK+ODjuODouODiCzjg4jjgrfjgq0NCivjg4rjgqzjgrfjg54s44Oo44Km44K4DQor44Oo44ON44Kr44OvLOOCv+ODouODhA0KK+ODr+OCv+ODiuODmSzjg4jjgqrjg6sNCivjg6Djg6njg57jg4Qs44OI44Oi44OB44KrDQor44Kt44K/44OLLOODpuOCpuOCpOODgeODrQ0KK+ODn+OCq+ODnyzjg5Ljg63jgrcNCivjgqLjg4Djg4Es44Of44OE44KqDQor44Kk44OO44Km44KoLOODnuOCteOCouOCrQ0KK+OCquOCq+ODgCzjgr/jgqvjgqLjgq0NCivjgqvjg6/jgrfjg54s44OG44OE44KqDQor44K744KtLOOCouOCreODqQ0KK+OCv+OCq+ODj+OCtyzjg6jjgrfjgrgNCivjg6/jgr/jg4rjg5ks44Oe44K144OrDQor44Kv44Oq44OP44OpLOODgeODj+ODqw0KK+ODr+OCv+ODiuODmSzjgrHjgqTjgrnjgrENCivjg5Xjgrjjgqvjgr8s44Of44OE44KqDQor44Oo44K344OILOODjuODquOCqg0KK+OCq+ODr+OCuyzjgqrjgrXjg6ANCivjgr/jg4rjgqss44Oe44Kz44OIDQor44Kk44Oe44KkLOOCseODs+OCuA0KK+OCs+ODoOODrSzjg6bjgq3jg4jjgrcNCivjg57jgqjjg4As44Ko44Kk44K0DQor44Kz44Kk44KxLOOCquOCteODoA0KK+ODr+OCv+ODiuODmSzjg5/jg4HjgqLjgq0NCivjgrPjg7Pjg4ks44OS44K144OI44K3DQor44Kk44K344KkLOODkuOCteODpA0KK+ODn+OCt+ODnizjgr/jgqvjgrcNCivjgrPjg5Djg6Tjgrcs44Oo44K344Kr44K6DQor44Ok44Oe44K344K/LOOCseODs+OCuA0KK+OCv+ODiuOCqyzjg6rjg6fjgqbjgr7jgqYNCivjg6Tjg57jg4As44Oe44K144OI44K3DQor44Kr44Of44OkLOODn+ODgeODpOOCuQ0KK+ODpOODnuODouODiCzjg6rjgq3jgqoNCivjgrfjgqrjgrbjgq0s44OI44Kq44OrDQor44OK44Kr44Og44OpLOODgeOCq+OCtw0KK+OCv+OCseODouODiCzjgrXjg4HjgqoNCivjg4DjgrHjg6Tjg54s44OS44Ot44Om44KtDQor44Ki44Op44Kr44OvLOOCvOODs+OCuA0KK+ODqOOCs+OCvyzjg57jgrXjg6bjgq0NCivjg4rjgqvjg6Djg6ks44Kr44K644OS44KzDQor44Ki44Op44Kr44OvLOODiOOCt+OCqg0KK+OCquOCquODn+ODgSzjg57jgrPjg4gNCivjg57jg4Tjgq0s44Ko44Kk44KtDQor44Kv44K344OT44KtLOOCueOCseODkuODhw0KK+ODi+ODg+OCvyzjg4bjg6vjg5LjgrMNCivjg4Tjg5zjgqbjg4Es44Of44Kt44KqDQor44K144Kk44OI44KmLOODkuODreODpuOCrQ0KK+OCv+OCseODoOODqSzjg4jjgrfjg5Ljg60NCivjgr/jg4rjg5ks44Kr44K644KqDQor44Oe44Ko44OALOODouODiOOCr+ODiw0KK+OCueOCrOODj+ODqSzjg4bjg4TjgqoNCivjgqvjg43jgrMs44K344On44Km44K4DQor44Ok44Oe44Km44OBLOODnuOCteODkuOCsw0KK+OCq+ODn+OCtuODryzjg5Ljg63jg5Xjg58NCivjgrPjgqws44OI44Kv44OS44OtDQor44OE44Or44K144KtLOOCueODiuOCqg0KK+ODkuOCrOOCtyzjg5Xjg5/jg5Ljg60NCivjgqTjgrfjg4As44Ok44K544OS44OtDQor44OK44Kr44Ks44OvLOODj+ODq+OCqg0KK+ODhuODqeOCt+ODnizjg5LjgrXjg4/jg6sNCivjgq3jgr/jg6Djg6ks44K344Ol44Oz44K4DQor44OP44OD44OI44OqLOODkuODh+ODnw0KK+OCteOCteOCrSzjg6jjgrfjg5Ljg60NCivjg5vjgqss44Kx44Oz44K/44Ot44KmDQor44OO44Og44OpLOODhuODq+OCqg0KK+ODj+ODpOODjizjgqvjgrrjgqoNCivjgqLjg7PjgrbjgqQs44K344Oz44Kk44OBDQor44OV44Or44OOLOOCreODqOODkuODhw0KK+ODi+OCt+ODr+OCrSzjgq/jg4sNCivjg4/jgrvjgqzjg68s44Oe44K144KqDQor44Kk44Ov44K/LOOCv+OCq+ODpuOCrQ0KK+ODiOODgCzjg5Ljg63jgqLjgq0NCivjg4rjgqvjg6Djg6ks44Oe44K144OIDQor44OV44Or44Kk44K3LOODnuOCueODnw0KK+ODiuOCq+ODoOODqSzjg5XjgrjjgqoNCivjg4rjgqvjgqzjg68s44OS44OH44KqDQor44OK44Kr44OeLOOCv+ODhOODpA0KK+OCueOCrOODr+ODqSzjg57jgrnjgrMNCivjg57jg4Tjg6Ljg4gs44OE44OI44OgDQor44OP44K344Oi44OILOODqOOCpuOCv+ODreOCpg0KK+ODiuOCq+ODhCzjg6TjgrnjgqvjgroNCivjgrXjg4jjgqbjg6os44Ki44Kt44OpDQor44Kk44Kt44K/LOODpuOCreODjuODlg0KK+OCreOCr+ODgSzjgr/jgrHjgrcNCivjgrnjg4gs44Oe44K144OfDQor44K344OQ44K/LOODkuOCteODjuODqg0KK+ODiuOCpOODiOOCpizjgrPjgqbjgrgNCivjg6Ljg6os44Kr44K644KzDQor44Kk44OI44KkLOOCouOCreODqQ0KK+OCpOODiOOCpizjgrHjg7PjgrgNCivjg57jg4Tjgrbjgq0s44Oe44K144OO44OqDQor44Km44Ko44OOLOODn+ODhOODjuODqg0KK+OCq+OCv+OCquOCqyzjgq3jg6jjgqvjgroNCivjg5Djg7Pjg4njgqYs44K/44OE44KqDQor44K144Kk44OI44KmLOOCuOODpeODs+OCuA0KK+OCpOODr+OCpCzjgrfjgrLjg6sNCivjgrfjg6Ljg6Tjg54s44Of44OO44OrDQor44Ki44Kr44Oe44OrLOOCquOCteODoA0KK+OCtOODiOOCpizjg4/jgrjjg6ENCivjg57jg4Tjg4As44K544K544OgDQor44ON44Ks44OfLOODiOOCt+OCqg0KK+ODpOODnuOCt+OCvyzjg57jgrXjgqrjg58NCivjg6jjg43jg6Tjg54s44Oq44Ol44Km44OY44KkDQor44Kk44K344Ok44OeLOODkuOCteOCqg0KK+OCouODmeOCq+ODryzjg6zjgqTjgrgNCivjgqTjg57jg6Djg6ks44K344Ky44OrDQor44Kk44Ov44OK44KsLOODn+ODjuODqw0KK+OCpuOCqOODgCzjgq/jg4vjg5LjgrMNCivjg5Xjgrjjgqvjg68s44Om44Kt44KqDQor44K/44Og44OpLOODqOOCt+ODkuOCtQ0KK+OCq+OCt+OCpCzjg57jgrXjg4gNCivjg6jjg43jg4As44Oe44K144KqDQor44Oo44Kz44OELOOCouOCreOCqg0KK+OCouOCteOCqizjg6bjgqbjgrgNCivjgr/jg4rjgqss44Kx44Kk44K4DQor44K/44OK44KrLOOCv+ODgOODnw0KK+ODpOOCt+OCrSzjg6Tjgrnjg6bjgq0NCivjgqvjgqTjgqzjgqQs44K/44Kx44K3DQor44K944Ks44OZLOODpuOCreOCqg0KK+ODleODq+OCq+ODryzjgrHjg7PjgrgNCivjgqvjg6/jgqbjg4Es44Om44Km44Kk44OBDQor44OV44K444KkLOODjuODquODpuOCrQ0KK+OCpOOCseODjuODpCzjgr/jg4TjgqoNCivjgqrjg4Es44OO44Oq44KqDQor44OK44Kr44Oi44OILOODiuOCquODj+ODqw0KK+ODr+OCq+ODkOODpOOCtyzjg4/jg6zjgqoNCivjgqLjg6njgq0s44OV44Of44KqDQor44Ok44OZLOODkuODh+OCqg0KK+OCv+OCq+ODj+OCtyzjg6Tjgrnjg5Ljg60NCivjgrfjg5Djg44s44Of44OE44KqDQor44K/44Ks44K344OpLOODiOOCt+OCqg0KK+OCueODn+OCvyzjg4bjg4Tjg6QNCivjgrXjg4jjgqYs44Kz44Km44K444Ot44KmDQor44OB44OOLOOCt+OCsuODiA0KK+ODpOODnuODgCzjg6Tjgrnjg5Ljg60NCivjgqTjgqzjg6njgrcs44OO44Oq44Oo44K3DQor44Kk44Kx44Ks44OfLOOCseODs+OCpOODgQ0KK+ODleODiuODgCzjgr/jgqvjg6bjgq0NCivjgqTjg47jgqbjgqgs44K/44Kr44Oo44K3DQor44OL44K344Ok44OeLOODkuODreOCtw0KK+OCpOOCt+ODj+ODqSzjg4jjgrfjgr/jgqsNCivjgrnjgrrjgq0s44K/44Kk44OBDQor44Kz44Oi44Oq44OkLOOCq+OCuuOCqg0KK+ODgeODpeOCpuOCtCzjg5Ljg63jgrcNCivjgrPjg5Djg6Tjgrcs44Kq44K144OgDQor44Of44Ok44Oi44OILOODhOODiOODoA0KK+ODiuOCq+OCvyzjgr/jgqvjg6bjgq0NCivjgqTjg6rjgr/jg4ss44K/44Kv44KqDQor44Kq44Ks44OvLOODpuOCreODgQ0KK+OCquODjSzjgrHjg7PjgrgNCivjgrPjg57jg4Qs44Oe44K144Ki44KtDQor44Of44OO44OvLOODkuODreOCtw0KK+ODleOCuOOCq+ODryzjg4rjgqrjg4gNCivjgqvjg6/jgrDjg4Es44Ok44K544OS44OtDQor44OB44OQLOODiOOCt+ODkuOCsw0KK+ODiuOCq+ODi+OCtyzjgrXjg4DjgqoNCivjgrXjgq/jg54s44OS44OI44K3DQor44K/44Kx44Oe44K1LOODiOOCt+ODpuOCrQ0KK+OCu+OCrSzjg6jjgqbjgqTjg4ENCivjgrXjgqTjg4jjgqYs44OV44Of44KqDQor44OV44K444Oi44OILOODpOOCueOCqg0KK+OCquOCsOODqizjgr/jg4TjgrgNCivjgqTjgrfjg5Djgrcs44Kt44Oo44K3DQor44Ki44K244OfLOOCt+OCsuODqw0KK+OCquOCrOOCteODr+ODqSzjg4rjgqrjgqTjg4ENCivjgrXjgqTjg4jjgqYs44OS44Ot44K3DQor44K/44OK44OZLOOCseODs+OCuA0KK+ODouODquODpOODnizjgrfjg6Xjgqbjg5jjgqQNCivjgq3jgr/jgrbjg68s44OS44OH44OI44K3DQor44Kr44OK44K244OvLOOCq+ODhOOCqg0KK+ODj+ODqeODgCzjg57jgrXjg4gNCivjgqrjgq/jg6Tjg54s44K144OI44K3DQor44K344Of44K6LOOCu+OCpOOCuA0KK+OCpOODjuODnuOCvyzjg6bjgq3jgqoNCivjg5Xjg6vjgrXjg68s44K744Kk44KtDQor44K/44Kx44Km44OBLOOCt+ODreOCpg0KK+OCquOCquODjizjg4Tjg4jjg6ANCivjg6Ljg63jgqrjgqss44Kx44Oz44K4DQor44K344OO44K244KtLOODleODn+OCouOCrQ0KK+ODjuOCsOODgSzjgrfjgrLjgqLjgq0NCivjgrfjg57jg4As44Kz44Km44K4DQor44Kr44Ov44K144KtLOODpuOCv+OCqw0KK+OCquOCquOCq+ODryzjg57jgrPjg4gNCivjgrXjg6Hjgrfjg54s44Oe44K144OS44OtDQor44Ob44K944K444OeLOOCq+OCuuODkuOCsw0KK+ODr+OCv+ODiuODmSzjg4jjg5/jgqoNCivjgqvjg6/jg4rjg58s44Oe44K144Ki44KtDQor44Kv44K144OOLOOCseOCpOOCteOCrw0KK+ODhOODgeOCvyzjg4jjg6LjgqLjgq0NCivjgqrjgqrjg4/jgrcs44Kz44Km44K4DQor44OO44OALOODn+OCreOCqg0KK+ODr+OCv+ODiuODmSzjg5LjgrXjgqoNCivjg6jjgrfjgr/jgrEs44Ok44K544OS44OtDQor44OV44Kv44K344OeLOOCouOCreODqQ0KK+OCpOODr+ODpCzjgr/jgqvjgqoNCivjgrXjgqvjg6Ljg4gs44Oi44OI44OP44OrDQor44Kv44Oc44K/LOOCt+ODp+OCpuOCuA0KK+OCpOOCveODpOODnizjgrPjgqbjgqTjg4ENCivjgqrjgqrjg44s44Of44OE44Ki44KtDQor44Ki44OZLOOCv+ODhOOCqg0KK+OCquODgOODr+ODqSzjg5/jg4HjgqoNCivjgq3jgqbjg4Es44Kx44Oz44K4DQor44Kk44K344Kr44OvLOODiOOCt+ODleODnw0KK+ODqOOCt+ODgCzjgr/jg4TjgqoNCivjg4Hjg6Pjg5Djgr/jgrEs44Oe44K144OV44OfDQor44K144Kr44KkLOODqOOCt+OCqg0KK+OCquOCquOCvyzjg6jjgqbjgrgNCivjg4rjgqvjg44s44Oe44K144OfDQor44OP44OALOOCv+OCq+OCtw0KK+ODiuOCq+ODpOODnizjgrjjg6Xjg7PjgrgNCivjgrXjgqvjgrDjg4Es44Kx44Oz44K4DQor44OK44Ks44K344OeLOODpOOCueOCqg0KK+OCteOCrOODqSzjg4jjgrfjg5Ljg60NCivjgqvjg6/jg44s44K/44OA44Oo44K3DQor44Kr44ON44KzLOOCpOOCteOCqg0KK+ODiuOCq+ODgCzjg5/jg4Tjg6sNCivjgqLjg57jg44s44K/44Kr44K3DQor44Ok44K244KtLOOCt+ODpeOCpuOCuA0KK+ODkuODqeOCruODjizjgqvjgrrjgqoNCivjgr/jg5Djgr8s44Kk44OB44KqDQor44Kv44OL44Om44KtLOODpOOCueODkuODrQ0KK+OCquOCr+OCpuODgSzjg5Ljg63jg47jg6oNCivjgrnjgq7jg6Ljg4gs44OS44OH44K4DQor44OK44Kr44Og44OpLOODquODp+OCpuOCuA0KK+OCueOCruOCteOCrSzjg6/jgr/jg6sNCivjg6Tjg57jgrfjgr8s44K/44Kr44OG44OrDQor44OO44Og44OpLOOCq+OCuuODnw0KK+OCt+ODnuODgCzjg5/jg4Tjg6sNCivjg5Xjgq/jg4As44Kr44K644OO44OqDQor44K144OI44KmLOODkuODh+OCqg0KK+OCquOCr+ODnOODqizjg5Ljg63jgrcNCivjg6jjgrPjgqvjg68s44Oe44K144OfDQor44OH44Oz44OALOOCreODqOOCtw0KK+ODleOCr+ODiuOCrCzjgrnjgrnjg6ANCivjgr/jgqvjgrfjg54s44Of44OE44KuDQor44Kr44OI44KmLOODhuODhOOCqg0KK+OCpOOCt+OCsOODrSzjgqLjgq3jg47jg6oNCivjgqTjgrHjg5ks44Kv44OL44Om44KtDQor44Kq44Kq44OE44KrLOOCueOCueODoA0KK+OCt+ODn+OCuizjg6jjgrfjg47jg6oNCivjgrnjgrrjgq0s44K/44Kr44KqDQor44OE44OkLOODnuOCs+ODiA0KK+OCpuODgeODgCzjg57jgrXjgr/jgqsNCivjgqrjg4Es44Kx44Oz44Kk44OBDQor44Ki44Oq44KsLOOCv+OCseOCtw0KK+ODiuOCq+OCt+ODnizjgqvjg4TjgrgNCivjg57jgrXjgq0s44Oe44OE44OfDQor44OK44Kr44K344OeLOODnuOCteOCqg0KK+OCouOCteODj+ODqSzjg57jgrXjg6jjgrcNCivjgrTjg4jjgqYs44OS44K144KqDQor44Km44Ko44Oe44OELOODkuODreOCtw0KK+OCteOCreODouODqizjg6jjgrfjgqLjgq0NCivjg6jjgrfjg4As44OE44OI44OgDQor44OV44K444K/LOODpOOCueODqOOCtw0KK+ODpOOCruOCt+OCvyzjg4jjgrfjgqoNCivjg6Djg63jg5Xjgrcs44Oe44K144OS44OtDQor44Kr44Oh44OALOOCqOOCpOOCpOODgQ0KK+OCpOOCq+ODryzjg5Ljg63jgr/jg4ANCivjg6Tjg57jgrbjgq0s44OS44Ot44K3DQor44OE44Or44OP44K3LOODnuOCs+ODiA0KK+ODn+ODjuOCt+ODnizjg47jg6rjgqoNCivjgq3jgrfjg6Ljg4gs44Oe44Kz44OIDQor44K/44Kx44K344K/LOODnuOCteOCtw0KK+ODiuOCq+OCvyzjgrfjg7PjgqTjg4ENCivjgqjjg7Pjg4ks44Kt44Oo44K3DQor44Oi44Oq44OkLOOCseOCpOODoeOCpA0KK+OCr+ODnOOCvyzjgrnjg5/jgqoNCivjg4rjgqrjg4/jg6ks44OS44Ot44K3DQor44Kv44KyLOOCseODs+OCuA0KK+OCq+OCteODjizjg57jgrXjg4/jg6sNCivjgqTjgqTjg6Djg6ks44K/44Kr44K3DQor44Kq44Kq44K/LOODnuOCteODpuOCrQ0KK+OCv+OCseOCsyzjg5Ljg63jg5Xjg58NCivjg6Djg6njgrPjgrcs44OI44K344KqDQor44Oo44K344OALOOCseODs+OCuA0KK+OCouOCteODjizjg6jjgrfjgqLjgq0NCivjg6jjgrfjg4As44Oe44K144OI44K3DQor44OP44Ok44K3LOODhuODhOODreOCpg0KK+OCueOCuuOCrSzjgr/jg4Tjg6QNCivjgqrjg4As44Oq44On44Km44Kk44OBDQor44Ok44Oe44Km44OBLOOCreODqOOCtw0KK+OCq+ODr+OCq+ODnyzjg4Tjg43jgqoNCivjgqbjgrnjg4As44Kz44Km44K4DQor44K144OI44KmLOOCt+ODs+OCpOODgQ0KK+OCr+ODqeOCt+ODnizjgrfjg7PjgrgNCivjg57jgrss44OO44Oc44OrDQor44Kz44Oz44OOLOODkuODreOCtw0KK+ODnuODhOOCtuODryzjgqLjgq3jg6kNCivjgrfjg57jg4As44K344Ol44Km44Kk44OBDQor44Ok44Oe44Oi44OILOODqOOCt+ODjuODqg0KK+OCquOCquOCr+ODnCzjgrHjg7PjgrgNCivjgqrjgrDjg6ks44Kr44K644OO44OqDQor44K144Kv44OeLOOCqOOCpOOCuA0KK+ODjuOCsOODgSzjg5Ljg63jg47jg6oNCivjg5Ljg4rjgr8s44Kz44Km44Kk44OBDQor44OV44K444KkLOOCt+ODpeODs+OCpOODgQ0KK+OCueOCruODouODiCzjg57jgrXjgrcNCivjg4Tjgqvjg4/jg6ks44K044Ot44KmDQor44Of44OE44OK44KsLOODnuOCteOCouOCrQ0KK+ODiuOCq+ODoOODqSzjg57jgrXjg6jjgrcNCivjg6Tjgrjjg54s44K/44Kx44K3DQor44Kr44Of44K/LOOCueOCueODoA0KK+ODkuOCrCzjgrjjg6Xjg7Pjgq0NCivjg5/jg4rjgqzjg68s44Oo44K344OG44OrDQor44OI44OfLOOCv+OCq+OCqg0KK+OCteOCq+OCreODkOODqSzjg5Ljg63jgrcNCivjgqvjgq/jgr8s44Ki44Kt44OS44OtDQor44OE44OB44OkLOODkuODh+ODpuOCrQ0KK+ODoOODqeOCvyzjgrHjg7MNCivjgr/jg4rjg5ks44Ki44Kt44OpDQor44K344Oi44OALOODqOOCt+ODjuODqg0KK+ODhOOCq+ODouODiCzjgq/jg6njgrgNCivjg4/jg4rjg4/jgr8s44OS44OH44KqDQor44Kr44Oz44OALOOCt+ODs+OCuA0KK+OCq+ODr+ODgCzjg6bjgq3jgqoNCivjg6jjgrfjgqQs44OE44ON44KqDQor44Kv44Op44OkLOOCreODmOOCpA0KK+ODhuODqeOCt+ODnizjg5Ljg4fjg6bjgq0NCivjgq3jgr/jgqzjg68s44Oo44K344KqDQor44Kk44OHLOODiOOCt+ODkuODrQ0KK+ODhOODqyzjg5LjgrXjgqoNCivjgqbjg4Tjg47jg5/jg6Qs44OI44K344Kr44K6DQor44OK44Kr44K244OvLOODnuOCteODkuODiA0KK+ODkuODgCzjg6jjgrfjg47jg5YNCivjg5vjgr3jgqvjg68s44OS44OH44K4DQor44OB44Kw44K1LOOCu+OCpOOCuA0KK+OCveOCpuODpCzjg5Ljg63jg58NCivjg6Tjg57jgrDjg4Es44Kz44Km44OY44KkDQor44K144Kr44OGLOODleODn+OCqg0KK+OCouODr+OCvyzjgrfjgrLjg6sNCivjg6/jgqvjg5Djg6Tjgrcs44Kr44K644OS44KzDQor44Ko44Oz44K444Ol44Km44K4LOODnuOCs+ODiA0KK+ODjuOCsOODgSzjgrPjgqbjgqTjg4ENCivjgqvjg6/jg6Djg6ks44Oe44K144KqDQor44Oi44Oq44Oi44OILOODn+OCreOCqg0KK+ODqOODjeODj+ODiizjgr/jg4Djg5Ljg60NCivjgrjjg4As44Ki44Kt44KqDQor44Km44Ko44OALOOCseODs+OCuA0KK+OCt+ODjuODj+ODqSzjgqTjgrXjg6ANCivjgr/jgqvjg6Tjg54s44Oe44K144Kr44K6DQor44Ok44Oe44Og44OtLOODnuOCteODjuODlg0KK+ODr+OCrSzjgrjjg6Xjg7PjgrMNCivjgqLjg57jg44s44Oe44OE44KqDQor44Ob44K944Kr44OvLOODiOOCt+OCqg0KK+ODiOOCpuOCtOOCpizjg5Ljg63jg5LjgrUNCivjg4rjgqss44OI44Of44KqDQor44OO44OALOOCv+OCq+ODjuODqg0KK+ODpOODnuOCt+OCvyzjg4HjgqjjgrMNCivjg4rjgqvjgrjjg54s44OS44Ot44K3DQor44OK44Ks44Kq44KrLOOCs+OCpuOCuA0KK+OCt+ODluODpCzjg6jjgrfjgqvjgroNCivjgrvjg6rjgrbjg68s44Kz44Km44K+44KmDQor44OV44K444Oi44OqLOOCu+OCpOOCuA0KK+ODleOCr+ODgCzjgr/jg4Tjg5Ljg60NCivjg5Xjgrjjgr8s44K/44Kr44OS44K1DQor44Ok44Oe44K4LOODkuODh+OCouOCrQ0KK+OCs+ODkOODpOOCtyzjgqTjgrrjg58NCivjgrPjg5Djg6Tjgrcs44Kt44Oo44K3DQor44K344K344Kv44OpLOODqOOCt+OCouOCrQ0KK+OCs+OCsOODrCzjg57jgrXjg4/jg6sNCivjg6Ljg6os44Oo44Km44Kk44OBDQor44OK44Kr44Og44OpLOODjuODquOCv+OCqw0KK+OCpOOCpOOCuOODnizjg47jg6rjg6bjgq0NCivjgq3jgr/jgqzjg68s44Oo44K344OG44OrDQor44K/44Og44OpLOOCv+ODgOODqOOCtw0KK+ODiuOCrOOCt+ODnizjg6TjgrnjgqgNCivjgqjjg47jgq0s44Kk44K644OfDQor44K144OI44KmLOODqOOCt+ODjuODlg0KK+ODnuODhOODouODiCzjg6jjgrfjgqoNCivjgqbjgqjjg4As44OS44Ot44KqDQor44Of44K644K/44OLLOOCouOCreODqQ0KK+OCouOCq+OCtyzjgr/jg4TjgqoNCivjg4rjgqvjg6Ljg4gs44Kq44K144OgDQor44OK44Kr44Ok44OeLOODkuODreODjuODlg0KK+ODleOCuOOCpCzjg6Tjgrnjg5Ljg60NCivjg4rjgqvjg6Tjg54s44K344On44Km44Kk44OBDQor44Oo44ON44Of44OELOODhuODhOOCqg0KK+OCv+OCq+OCuyzjg4jjgrfjgqoNCivjg6/jgr/jg4rjg5ks44OS44OI44K3DQor44OV44Kr44K244OvLOODiOOCt+ODjuODlg0KK+OCq+OCsuOCpuODqSzjg57jgrXjg58NCivjgrfjg7Pjg4njgqYs44Kr44OE44K4DQor44K344Of44K6LOOCv+ODhOODnw0KK+OCteOCq+OCt+OCvyzjg6jjgrfjg44NCivjg5/jg6Tjg6Djg6ks44OI44Kq44OrDQor44K/44OK44KrLOODnuOCteODiOOCtw0KK+OCv+OCq+OCpOOCtyzjgrnjgrnjg6ANCivjgqTjgrfjgqzjgq0s44Kx44Oz44K4DQor44K/44Kr44OALOODqOOCt+OCq+OCug0KK+OCv+ODhuOCpOOCtyzjgqvjgrrjg4rjgqsNCivjgrXjgqvjgr8s44OS44OH44KqDQor44Oo44Kz44OP44K/LOODiOOCt+ODkuOCsw0KK+OCr+ODpCzjgr/jg6Ljg4QNCivjg6jjgrfjg4As44Oe44K144OS44OHDQor44Kt44K/44OALOODj+ODq+OCqg0KK+ODqOOCt+ODgCzjgrfjg7Pjgrjjg63jgqYNCivjgrPjg5Djg6Tjgrcs44Kr44K644OfDQor44OK44Oq44K/LOODn+ODhOODqOOCtw0KK+OCpOODjOOCpCzjg57jgrXjg6jjgrcNCivjg6Tjgrnjgqvjg68s44OV44Of44KqDQor44OO44Kw44OBLOOCueODiuOCqg0KK+OCt+ODp+OCpuODgCzjgqTjg4Hjgr7jgqYNCivjg6Tjg57jg4As44OG44Or44OS44K1DQor44Ov44Kv44OALOODhOODiOODoA0KK+OCouODmSzjgrXjg4Djg5Ljg60NCivjgr/jgrHjgqvjg68s44K/44Kr44KqDQor44K144OI44KmLOODkuODh+OCrQ0KK+ODj+ODiuOCquOCqyzjg6jjgrfjgqoNCivjgqrjgqrjg44s44OS44OH44KqDQor44K/44OK44KrLOOCseODs+OCvuOCpg0KK+ODhOODjuODgCzjgqLjgq3jgqoNCivjg4rjg57jgqgs44Kx44Oz44K4DQor44K/44Kr44OP44K3LOOCv+ODgOODkuOCtQ0KK+ODiuOCq+OCuOODnizjgrfjgrLjg6sNCivjg4rjgqvjg6Djg6ks44Kt44Of44KzDQor44Km44Oq44KmLOODj+ODq+OCv+OCsQ0KK+ODleOCuOOCpOODryzjg5Xjg5/jg5LjgrMNCivjgrXjgrXjgq0s44K/44Kr44K3DQor44Kt44Og44OpLOODpuOCv+OCqw0KK+OCv+OCq+OCrizjgrfjg6XjgqbjgqTjg4ENCivjgqvjgr/jg6Tjg54s44OS44Ot44OIDQor44Kk44Kw44OBLOOCquOCteODoA0KK+OCouODmSzjg4bjg6vjgqoNCivjgrnjgrrjgq0s44K/44Kr44OS44OtDQor44OS44OpLOOCq+OCuuODkuODrQ0KK+ODiuOCtOOCtyzjg5Ljg4fjgqLjgq0NCivjgqLjg4Djg4Es44Kx44Oz44K4DQor44Og44Op44Ok44OeLOODnuODouODqw0KK+OCr+ODi+OCq+OCvyzjgrnjgrnjg6ANCivjg57jg4TjgqQs44Oe44Kz44OIDQor44Kz44Kk44OHLOODn+ODhOOCqg0KK+ODkuODreOCvyzjg5Ljg63jg6TjgrkNCivjg4jjg5/jg4rjgqss44Oo44K344KqDQor44Ov44Kt44K/LOODleOCuOOCqg0KK+OCpuODoeODoOODqSzjgrfjg6fjgqbjgrgNCivjg5XjgrEs44Oo44Km44Kk44OBDQor44Km44Ko44Oe44OELOOCq+ODhOODnw0KK+ODnuODhOOCtuOCrSzjg6Tjgrnjg5Ljg60NCivjg4rjgqvjg44s44OE44Oi44OrDQor44Kz44OA44KrLOOCv+OCseOCqg0KK+ODkuODreOCv+ODiyzjgrHjg7PjgrgNCivjgr/jgqvjg4/jgrcs44Kz44Km44Kk44OBDQor44K144OOLOOCuOODpeODs+OCpOODgeODrQ0KK+OCt+ODn+OCuizjg6jjgrfjgqvjgroNCivjgqvjg7Pjgrbjgq0s44OG44Or44Oo44K3DQor44Kq44Kq44K144KvLOOCq+OCuuOCqg0KK+ODr+OCt+ODgCzjg57jgrXjg5Ljg4cNCivjgq/jg4vjg6Ljg4gs44Ok44K544Oe44K1DQor44K344Ot44Kr44OvLOODnuOCs+ODiA0KK+OCq+ODr+ODj+ODqSzjgrHjg7PjgqTjg4ENCivjgqrjgqss44OE44ON44Kr44K6DQor44Kz44Oi44OqLOODqOOCt+OCouOCrQ0KK+ODj+ODpOOCtyzjgrfjgrLjgqLjgq0NCivjgqvjg43jgrMs44Kk44Kv44KqDQor44Kr44OJ44Kk44KxLOODiuOCquODn+ODgQ0KK+OCquOCq+ODoOODqSzjgrjjg6Xjg7PjgqTjg4ENCivjgqrjgqvjg6Djg60s44K444Ol44Oz44Kk44OB44OtDQor44K/44OW44OBLOODiuOCquOCsw0KK+ODpOODnuODouODiCzjgqLjgq3jg47jg6oNCivjgqrjgqrjgrUs44K/44Kr44K3DQor44Kk44Oq44KoLOOCt+ODs+OCpOODgeODreOCpg0KK+OCv+OCq+ODjyzjgqvjgrrjg5LjgrMNCivjgr/jgqTjg6ks44OP44Or44KqDQor44Of44OK44OfLOODpOOCueODnuOCtQ0KK+OCpOOCseODgCzjgrfjgrLjg6sNCivjgqLjgqrjgq0s44OV44Of44KqDQor44Ok44Oe44Km44OBLOOCuA0KK+ODqOOCt+ODj+ODqSzjg57jgrXjg5Xjg58NCivjgrXjgrXjgq0s44Ki44Kt44OS44OIDQor44Of44K644K/44OLLOODiOOCt+OCpOODgQ0KK+ODkuODqeODjizjgqvjg4Tjg6bjgq0NCivjg4rjgqzjgr8s44Ki44Kt44OpDQor44Kr44K/44Ok44OeLOOCseOCpA0KK+OCquODgCzjg6rjg6fjgqbjgrgNCivjgqjjg47jg6Ljg4gs44Om44Km44KtDQor44K/44Kx44OK44KrLOOCteOCq+OCqA0KK+ODnuODhOOCtuOCrSzjg5Ljg63jgrcNCivjg57jg4Tjg5Djg6ks44Kz44Km44K4DQor44Ok44Oe44K344K/LOOCu+ODhOOCsw0KK+ODoeOCsOODrSzjg5Ljg63jg6jjgrcNCivjgqrjgrbjgq0s44OS44OH44Om44KtDQor44Kq44Kq44Ks44OfLOOCs+OCpuOCpOODgQ0KK+OCquODnuOCqCzjgrfjg7PjgqTjg4ENCivjgq3jg4As44Kr44Oz44K4DQor44Km44Ko44OOLOOCquOCteODoA0KK+OCquOCq+ODgCzjgqvjg4Tjg6bjgq0NCivjgqvjg4rjgrXjgq0s44OI44Of44KqDQor44Ok44Kr44OZLOODkuODreODpuOCrQ0KK+ODiuODoOODqSzjg6bjg5/jgrMNCivjgqTjgqTjgrjjg54s44Oi44OI44Ki44KtDQor44K144K144KtLOODjuODluODpuOCrQ0KK+ODouODgeOCuuOCrSzjg6jjgrfjg47jg5YNCivjg5bjg7Pjg6Qs44OI44K344KqDQor44Kq44Kr44OOLOODpOOCueOCqg0KK+OCv+OCseOCpuODgSzjgrXjg4jjgrcNCivjgqbjgqjjg44s44OI44Kq44OrDQor44OV44K444Oi44OILOODkuODh+ODiA0KK+OCq+ODr+OCsOODgSzjg5/jg4Tjg4/jg6sNCivjgr/jgq3jg6Ljg4gs44Oe44K144OO44OqDQor44Kr44K/44Kq44KrLOOCt+OCsuODqw0KK+OCr+OCteOCq+ODryzjg4rjgqrjgq0NCivjgqLjgrXjgqQs44OS44OI44K3DQor44Oi44OqLOOCqOOCpOOCpOODgQ0KK+OCr+ODnCzjg6jjgrfjgq/jg4sNCivjgqLjg7Pjg4njgqYs44Kk44OB44Ot44KmDQor44Km44Op44Ok44OeLOOCquOCteODoA0KK+OCr+ODquOCvyzjg6jjgrfjgqoNCivjgqTjg47jgqbjgqgs44K/44Kx44K3DQor44Kr44ON44Kr44OvLOODkuODh+OCqg0KK+OCpuOCqOODouODiCzjg6rjg6fjgqbjgr7jgqYNCivjg4rjgqvjgqos44Kx44Oz44Kk44OBDQor44Kq44Kr44Oi44OILOODj+ODq+OCqg0KK+ODi+OCt+ODoOODqSzjgq3jg6jjgrcNCivjg6Tjg4As44Kr44K644Kq44OfDQor44Kt44OJLOOCquOCteODoA0KK+OCquOCq+ODkOODpOOCtyzjg5/jg4Tjg5Ljg60NCivjgqvjg6/jgrfjg54s44K444Ol44Oz44K+44KmDQor44OP44K344KtLOOCv+OCq+ODn+ODgQ0KK+ODn+ODpOODouODiCzjgqTjg4Hjg63jgqYNCivjg4rjgqvjgqos44K/44Kr44OS44KzDQor44Oe44OE44Kq44KrLOODpuOCreOCqg0KK+ODkuODk+ODjizjg5Ljg63jg58NCivjg4vjgrfjgqvjg68s44Kr44Kq44OrDQor44Kr44OW44K/LOOCseODs+OCuA0KK+ODr+OCv+ODiuODmSzjgq3jg6jjgrcNCivjg6Tjg57jg44s44Kz44Km44Kk44OBDQor44K144Kk44OI44KmLOOCt+OCsuODn+ODhA0KK+OCueOCuuOCrSzjg6bjgqbjgrgNCivjgq/jg6/jg4/jg6ks44K144OI44K3DQor44Oi44Oq44K/LOODiOOCt+ODkuODrQ0KK+ODleOCuOOCpCzjgrnjg5/jg6jjgrcNCivjg4rjgqzjgrfjg54s44OE44ON44Om44KtDQor44Kk44OK44Og44OpLOODnuOCteODkuODrQ0KK+OCquOCtuODryzjg5Ljg4jjgrcNCivjgr/jgq3jg6Ljg4gs44Kv44OL44KqDQor44Of44Ok44K344K/LOODkuOCteOCtw0KK+ODouOCpuODqizjg57jgrXjg6bjgq0NCivjgqTjg47jgqbjgqgs44Of44OE44KqDQor44OK44Ks44OOLOODouODiOOCouOCrQ0KK+ODj+ODqeODiCzjg6jjgrfjgqoNCivjg57jg5/jg6Qs44OI44K344Kr44K6DQor44OS44Ks44K344OQ44K/LOODkuODh+OCqg0KK+ODi+OCt+OCv+ODiyzjgrXjg4jjgrcNCivjgr/jgqvjgq8s44OO44OW44Om44KtDQor44OP44OK44OALOODn+ODjuODqw0KK+OCouOCteODjizjg5/jg4HjgqoNCivjg5Djg5As44OS44Ot44K3DQor44Kk44OI44KmLOOCt+ODs+OCreODgQ0KK+OCpOOCpOODgCzjgrHjg7PjgrcNCivjgrPjg4/jg6Tjgqvjg68s44K/44Kx44OS44KzDQor44OV44K444Ov44OpLOOCq+ODhOODnw0KK+OCt+ODpeOCr+ODqizjg6Tjgrnjg5LjgrMNCivjg6bjgr/jg4ss44Kx44OzDQor44Og44ON44Kr44OvLOOCpOOCr+OCsw0KK+OCq+ODs+ODjizjg57jgrXjg5Ljg60NCivjg4vjg4gs44Kr44OE44OfDQor44K/44Og44OpLOODqOOCt+OCouOCrQ0KK+ODiuOCq+OCt+ODnizjgrXjg4jjgrcNCivjgqrjgqrjgr8s44OB44Kr44KzDQor44Kk44OO44Km44KoLOODqOOCt+OCsw0KK+OCr+ODnuODnuODqyzjgrHjg7PjgrgNCivjgr/jg4rjgqss44K344Ky44OrDQor44Oe44Ko44OALOODnuOCteOCouOCrQ0KK+OCouODnyzjg47jg5bjgqoNCivjg5/jg4rjg4gs44Ki44Kt44OpDQor44OL44K344OALOOCq+OCuuOCqg0KK+OCpOOCt+ODj+ODqSzjgrXjg5bjg63jgqYNCivjg4rjgqvjgrfjg54s44OI44K344KqDQor44Kk44Kv44K/LOODpOOCueODkuOCtQ0KK+OCquOCrSzjgr/jg4DjgqoNCivjgqvjgqzjg68s44K344Ol44Km44Kk44OB44Ot44KmDQor44OS44Op44Kr44OvLOODiOOCt+OCqg0KK+ODpOODnuOCtuOCrSzjg4jjgrfjg47jg6oNCivjgq/jg57jgqzjgqQs44Kz44Km44K444Ot44KmDQor44K/44K344OtLOODn+ODhOOCt+OCsg0KK+OCteODjizjg5Ljg4fjg57jgrUNCivjg5/jg4njg6rjgqvjg68s44OV44Of44OS44KzDQor44OK44Kr44Og44OpLOODnuOCteODjuODqg0KK+ODqOOCt+ODnyzjg5Ljg63jgrMNCivjgqTjg4rjg58s44OS44OH44OIDQor44Ov44K/44OK44OZLOOCreODqOOCtw0KK+OCs+OCrCzjg4jjg6Ljg5Ljg4cNCivjgrnjgqzjg6/jg6ks44Ok44K544OS44OtDQor44K/44Kx44Km44OBLOODqOOCpuOCpOODgQ0KK+OCqOODgCzjg6jjgrfjg63jgqYNCivjgqLjg7Pjg4njgqYs44OS44Ot44KqDQor44K/44Or44KkLOODpuOCv+OCqw0KK+OCtOODiOOCpizjg5Ljg63jgrcNCivjgrfjg6Ljgqzjgq0s44K344Ky44OrDQor44OK44Ks44K/LOODpuOCreOCqg0KK+ODm+OCt+OCq+ODryzjgrjjg6Xjg7PjgqTjg4ENCivjgrPjg5/jg4rjg58s44Oe44K144KqDQor44Kr44KsLOODqOOCpg0KK+ODj+OCvOOCq+ODryzjg47jg5bjgqoNCivjg4Hjg5As44K344K644KrDQor44Km44Op44OOLOOCteODiOOCtw0KK+OCs+ODs+ODjizjg4jjgrfjgq0NCivjgrPjg5Djg6Tjgrcs44Kr44K644Oo44K3DQor44Oi44Oi44K7LOODpuOCpuOCsw0KK+ODhOOCsizjgrjjg6Xjg7PjgrgNCivjg6TjgrnjgrPjg4Es44Ok44K544K/44KrDQor44Ob44K944K244OvLOOCt+ODp+OCpuOCpOODgQ0KK+OCueOCruODpOODnizjgqvjg4Tjg6bjgq0NCivjgqLjg5ks44K/44Kx44Om44KtDQor44K/44OK44KrLOODjuODluODpuOCrQ0KK+OCu+OCpOOCsSzjg6Tjgrnjg5Ljg60NCivjg4TjgrIs44Oe44K144OO44OWDQor44Ov44Kr44OQ44Ok44K3LOOCouOCreOCqg0KK+OCquOCquOCr+ODnCzjgr/jgqvjgqoNCivjgqrjgqvjg5ks44OV44Of44KqDQor44Kk44Ov44KkLOODkuOCteOCqg0KK+OCv+ODiuOCqyzjg4bjg6vjg6bjgq0NCivjg6Tjg57jg6Ljg4gs44Of44OE44KqDQor44K/44Kr44Ok44OeLOODiuOCquOCrQ0KK+OCv+OCuOODnizjg5Ljg4fjg47jg6oNCivjgqvjgrrjgrfjg60s44Oe44K144OP44OrDQor44Kz44Kk44OHLOOCv+OCq+OCtw0KK+OCq+ODoizjgr/jg4Tjg47jg6oNCivjgq3jgr/jgrjjg54s44Oo44K344Om44KtDQor44OP44Oe44OOLOOCt+OCsuODqw0KK+OCpOOCpOODpOODnizjg4jjgrfjg6bjgq0NCivjg6Tjg57jgrfjgr8s44K344On44Km44Kk44OBDQor44Kt44K/LOOCt+OCsuODpuOCrQ0KK+OCpOOCt+OCv+ODiyzjgrXjg4jjgrcNCivjgq/jgrjjg6Es44K144OA44KqDQor44Kt44K344Kr44OvLOOCq+OCuuOCqg0KK+ODiuOCrOODjizjg57jgrXjg5Ljg60NCivjg6jjg6Djg6ks44K/44OA44OO44OqDQor44OK44Kr44K344OeLOODiOOCt+ODpuOCrQ0KK+ODouODqizjgqjjgqTjgrgNCivjg6Tjg57jgrgs44Oo44K344Kr44K6DQor44Kq44K844KtLOODnuOCteOCv+OCqw0KK+OCpOODiuODgCzjg6TjgrnjgrcNCivjg4/jg6Tjgrss44K/44Kr44K3DQor44Ob44Oz44OdLOOCueOCueODoA0KK+OCquOCquODpCzjgqvjg7PjgrgNCivjgq3jgr/jg6Djg6ks44K/44Kr44K3DQor44OI44K344OzLOOCteODiOODqw0KK+OCv+OCseOCpCzjg6Tjgrnjg5Xjg58NCivjgqrjgqvjg6Tjg54s44OO44OW44KqDQor44Kk44K344K644KrLOOCs+OCpuOCv+ODreOCpg0KK+ODj+OCvyzjg4jjgrfjgqLjgq0NCivjgrnjgqzjg4/jg6ks44Om44Km44K4DQor44Kk44Ov44OfLOODpOOCueOCqg0KK+ODpuODouODiCzjg5Ljg4fjgqoNCivjgq3jgr/jgqzjg68s44Om44K/44KrDQor44Kk44OP44OpLOODpuOCpuOCvuOCpg0KK+ODjuODoOODqSzjgqTjg4Hjg63jgqYNCivjg5/jg6TjgrXjgqss44Kx44Oz44K4DQor44Oo44K344OALOODiOODouODqOOCtw0KK+ODleOCq+ODgCzjgr/jgqvjgrcNCivjg5Xjgrjjg6/jg6ks44Kr44K644Of44OEDQor44Kt44OILOODiOOCt+OCouOCrQ0KK+OCpuOCqOODouODqizjgqTjgrXjgqoNCivjg6Tjg57jgqvjg68s44Oe44K144OfDQor44Kv44Ot44OALOODn+ODgeODrQ0KK+OCquOCquODhOOCqyzjg5Ljg63jgrcNCivjgqbjgqjjg4As44Om44Km44K4DQor44K944OOLOODn+OCreOCqg0KK+ODgOOCpCzjg4jjg6Ljg5/jg4ENCivjgrfjg7Pjgr7jgqYs44OS44Ot44Kr44K6DQor44Km44Ko44OALOODpuOCv+OCqw0KK+ODr+OCq+ODn+ODpCzjgqvjgrrjg58NCivjgqvjg6Djg6ks44OV44Of44OE44KwDQor44OV44Or44K/44OLLOOCv+OCq+ODnuOCtQ0KK+OCq+ODhOOCpuODqSzjgqvjg4Tjg58NCivjgq/jg57jgqQs44K744Kk44K4DQor44OQ44OQLOODj+ODq+ODhOOCsA0KK+OCq+ODjeODiOODoizjgr/jg4Tjg58NCivjg6Djg6njg4/jgrcs44OI44Kq44OrDQor44OJ44KkLOOCv+OCq+OCtw0KK+ODiuODn+OCq+ODryzjgrfjgrLjg4/jg6sNCivjgr/jgqvjgqrjgqss44Kx44Oz44K4DQor44Oe44OE44Oi44OILOODquODpeOCpuOCpOODgeODreOCpg0KK+ODr+OCv+ODiuODmSzjg6jjgr4NCivjgr/jg4As44Oe44K144OS44OtDQor44Ki44Oq44OeLOODqOOCt+ODhuODqw0KK+ODiuOCrOODjizjg4jjgrfjg47jg6oNCivjg6Tjg44s44OG44Or44Om44KtDQor44Kk44K144KrLOODpuOCreODkuODrQ0KK+OCpOODiOOCpizjg4jjgq/jgqTjg4ENCivjg6Tjg57jgrbjgq0s44K544Of44KqDQor44Kv44OOLOOCq+OCuuOCqg0KK+OCt+ODkCzjgrHjg7PjgrgNCivjgq3jg6Djg6ks44Ki44Kt44OpDQor44K544Of44OALOOCq+OCuuOCqg0KK+ODouODiOOCrOOCpOODiCzjg5Ljg63jgqvjgroNCivjg4vjg68s44K344Ky44KzDQor44K/44Kx44Km44OBLOODpuOCpuOCuA0KK+OCv+ODoOODqSzjgqvjgrrjg6jjgrcNCivjg5zjgqbjgr8s44Kx44Kk44K544KxDQor44Kr44OJ44OkLOODpuOCpuOCtA0KK+ODj+ODqeODgCzjg6jjgrfjg47jg5YNCivjg5/jg4TjgqTjgrcs44OS44Ot44K3DQor44Kk44OO44Km44KoLOOCseOCpOOCueOCsQ0KK+ODoOODqeODj+OCtyzjg57jgrPjg4gNCivjg4vjgrfjgqvjg68s44K344Oz44Kk44OBDQor44Oe44K544OALOOCs+OCpuOCuA0KK+OCquOCquOCvyzjgq/jg4vjgqoNCivjg5Xjgq/jgqQs44Oe44K144KqDQor44Kr44Ky44Ok44OeLOOCseODs+OCuA0KK+ODiuOCrOODhOOCqyzjgr/jg4Djg6bjgq0NCivjgq/jgrXjg44s44K344Ky44KqDQor44Kz44K444OeLOODkuODreODpuOCrQ0KK+OCr+ODqeOCvyzjgr/jg4DjgrcNCivjgr/jgrHjgqbjg4Es44Kx44Oz44Kk44OB44OtDQor44Kk44Kx44OALOOCouODhOOCqg0KK+OCv+OCq+ODjizjg6bjgr/jgqsNCivjgq/jg6njg6Qs44K344Oz44Kk44OBDQor44Kq44OOLOODhOODiOODoA0KK+ODiuOCq+ODgCzjgrjjg6Xjg7Pjgr7jgqYNCivjg4jjgq/jg6Ljg4gs44K/44Kr44Ki44KtDQor44Kq44Kq44OP44K3LOODiOOCt+ODleODnw0KK+ODpOODnuODgCzjgqLjgq3jg6kNCivjg4/jg7Pjg4As44OG44OE44KqDQor44Kk44K344OP44OpLOOCu+OCpOOCuA0KK+ODqOOCt+ODj+ODqSzjgrXjg4jjgrcNCivjgr/jg4bjgqTjgrcs44OI44K344OS44KzDQor44Kk44OI44KmLOOCt+ODleODnw0KK+OCteODiOOCpizjgr/jgqvjgqoNCivjgqrjgqrjgq/jg6ks44K344On44Km44K444Ot44KmDQor44OK44Kr44K544K4LOODqOOCpuOCpOODgQ0KK+OCv+OCpOODqSzjg5Ljg63jgrcNCivjgq3jg5Ljg6ks44OP44Or44OS44KzDQor44OK44Kr44K444OeLOODkuODh+ODhOODjQ0KK+ODpOODnuOCtuOCrSzjg4jjgq3jgqoNCivjg4jjg5Pjgr8s44Ki44Kt44OpDQor44OK44Kr44K244OvLOODj+ODq+OCqg0KK+ODi+OCt+ODj+ODqSzjgqvjgrrjgqoNCivjg6HjgrDjg60s44K444Ol44Oz44K4DQor44Oe44Or44Ok44OeLOOCs+OCpuOCvuOCpg0KK+OCreOCr+ODgSzjg5LjgrXjg47jg6oNCivjgqLjgqrjgq0s44Oo44K344OfDQor44Kt44OD44K/44KrLOOCv+ODn+OCqg0KK+ODpOOCueOCpCzjg6bjgq3jgrMNCivjgqTjg4Hjg57jg6ss44Oo44K344Ki44KtDQor44Ok44Oe44K244KtLOODiOOCt+ODpuOCrQ0KK+OCueOCrOODj+ODqSzjgrjjg6Xjg7PjgqTjg4ENCivjg4jjg5/jg4rjgqws44Oo44K344OS44KzDQor44OB44Ku44OqLOOCqOOCpOOCuOODreOCpg0KK+OCquOCquODkCzjg6bjg6rjgrMNCivjg57jg4TjgqQs44OV44Kv44OfDQor44OS44Op44Ok44OeLOODnuOCteODkuODrQ0KK+ODpOODnuODoOODqSzjg5/jg4Tjg47jg5YNCivjgqrjgqrjg4cs44Oe44K144OfDQor44Oo44K344OK44KsLOODgeOCq+OCqA0KK+OCs+OCuOODnizjgr/jgrHjg47jg6oNCivjg4jjg5/jg4rjgqws44OB44Ko44KzDQor44K144KsLOODhuODhOODpA0KK+ODj+ODqSzjg6bjgqbjgrjjg63jgqYNCivjg4jjg5/jg6jjgrcs44K/44Kr44K3DQor44Oo44K344OALOOCveODjuOCqA0KK+ODkuODqeODkOODpOOCtyzjg5Ljg63jgqvjgroNCivjg57jg4Tjg4ks44OS44OH44KqDQor44Kk44Oe44OV44KvLOODpuOCpuOCtw0KK+OCreODqOOCuyzjgrfjg7Pjg6QNCivjg4/jg4rjg5bjgrUs44K544K544OgDQor44OB44OQLOODiOOCt+ODjuODqg0KK+ODpOODnuOCtuOCrSzjg6rjg6XjgqbjgrgNCivjg4rjgqvjg4/jg6ks44Kx44Oz44K4DQor44Kq44OOLOOCs+OCpuODmOOCpA0KK+OCpuOCqOODnuODhCzjgqvjg6jjgrMNCivjgqLjgq3jg6Tjg54s44Oe44K144Ki44KtDQor44OI44K/44OLLOODqOOCpuOCpOODgQ0KK+ODqOODjeODgCzjg57jgrXjg5Ljg60NCivjg5Xjg6vjgq/jgrUs44K144Kr44KoDQor44OS44Ot44OkLOODjuODquODkuODrQ0KK+ODqOOCt+ODgCzjgrfjg7PjgrXjgq8NCivjgqvjg43jgrMs44K344Ky44OrDQor44OK44Ks44K/LOODnuOCteODj+ODqw0KK+OCpOODmSzjgrfjg7PjgrgNCivjgrvjgq3jg40s44Oe44K144Om44KtDQor44Kq44Kr44OALOODnuOCteODj+ODqw0KK+OCq+ODiuOCpCzjgqvjg7PjgrvjgqQNCivjgrXjg4jjgqYs44OS44OI44K3DQor44K144Kr44Kt44OQ44OpLOODqOOCt+OCqg0KK+OCpOODnuOCpCzjg5/jg4/jg6sNCivjg5Ljg6Hjgrgs44K344Oz44K+44KmDQor44Kq44Ku44OP44OpLOODnuOCteODqOOCtw0KK+OCv+OCseODoOODqSzjgr/jgqvjg47jg6oNCivjg4jjgqrjg6Tjg54s44K/44Kr44K3DQor44Kt44K/44OP44OpLOOCv+OCq+ODkuOCtQ0KK+OCquOCquOCteOCqyzjgqvjg4Tjg5LjgrMNCivjgqrjgqrjgrPjgqbjg4Es44Kr44K644Oe44K1DQor44K/44Kr44KqLOODjuODquOCsw0KK+OCpuODiSzjg4jjgrfjg63jgqYNCivjgqbjg44s44Kt44Oz44K0DQor44OV44K444KtLOODkuODreODnw0KK+OCteODiOOCpizjg4jjgrfjgqoNCivjgqTjgr3jgqzjgqQs44Oe44K144OfDQor44Kr44Op44K144KtLOODqOOCt+OCqg0KK+ODpOODnuODgCzjgr/jg6Ljg4QNCivjg6/jg4As44Ko44OE44KqDQor44K344OQ44K/LOODiOOCt+OCqg0KK+OCt+OCquOCtuOCrSzjgr/jg4TjgqoNCivjgrfjgqws44Of44OE44OO44OWDQor44Kv44Oq44K/LOODn+ODgeOCqg0KK+ODj+OCt+ODouODiCzjg6jjgrfjg63jgqYNCivjg6jjgrfjg6Djg6ks44K/44Kr44K3DQor44Of44Ok44K244KtLOODkuODreODjuODqg0KK+OCreOCv+OCrOODryzjgq3jg4/jg4Hjg63jgqYNCivjgqrjg4DjgrEs44OB44Kr44OpDQor44K544K644KtLOOCouOCreODqQ0KK+ODpOODnuOCpOOCtyzjgq3jg6jjgqLjgq0NCivjgqrjgrzjgq0s44OS44Ot44K3DQor44K/44Kr44KkLOOCteODiOODnw0KK+OCq+ODjeOCsyzjgrHjg7PjgrgNCivjg4/jg6njg4As44OS44OH44Om44KtDQor44K344Oe44OALOOCseODs+OCteOCrw0KK+ODpOODiuOCrizjgr/jgrHjgqoNCivjgrnjgrrjgq0s44K/44Kr44OS44OIDQor44K/44Kr44OP44K3LOODpOOCueOCqg0KK+OCquOCsOODquODpOODnizjg4jjgqrjg6sNCivjg6/jgr/jg4rjg5ks44OO44OW44Om44KtDQor44Ok44Oe44Og44OpLOOCseODs+OCuA0KK+OCv+OCq+ODj+OCtyzjgr/jg4Djg5Ljg4cNCivjgrfjgqrjgrjjg54s44Kr44Kq44OrDQor44OE44Or44Kq44KrLOODiOOCquODqw0KK+OCpOODiOOCpizjg4jjgrfjg5/jg4ENCivjg57jg4Tjgqbjg6ks44K744Kk44KtDQor44Ok44Oe44Oi44OILOOCv+OCq+OCqg0KK+OCr+ODnuODnyzjg6bjgqbjgr7jgqYNCivjgrHjg7Pjg6jjgrcs44K/44Kr44K3DQor44Ok44Oe44Kr44KyLOODqOOCt+OCouOCrQ0KK+OCtOODiOOCpizjg5Ljg63jgqoNCivjgr/jgrHjgqbjg4Es44Oe44K144OI44K3DQor44OP44Ok44K3LOOCq+OCuuODpuOCrQ0KK+OCpOOCt+ODkOOCtyzjg4jjgrfjg6bjgq0NCivjgqTjg4os44Oq44On44KmDQor44Kk44OO44Km44KoLOOCv+OCq+ODpuOCrQ0KK+ODi+OCt+OCq+ODryzjg5Ljg4fjgqoNCivjg4/jg7Pjg4As44Kt44Oo44K4DQor44K/44OG44OQ44Ok44K3LOOCq+OCuuODqOOCtw0KK+OCquOCt+ODnizjgq/jg4vjg5LjgrMNCivjgrfjg5Djgr8s44OP44Or44KtDQor44Of44Km44OpLOOCouODhOOCtw0KK+OCs+OCq+OCtCzjgqvjgrrjg47jg6oNCivjgqTjgqTjg4As44Om44K/44KrDQor44K/44Kx44K544KoLOOCq+OCuuODnw0KK+OCpOOCrOODqeOCtyzjg4bjg4Tjg6QNCivjg57jgrnjg6Tjg54s44Oo44K344KqDQor44K144Kv44Ok44OeLOOCq+OCuuOCqg0KK+OCteOCr+ODqeOCpCzjgrHjg7MNCivjgr/jg57jg6os44Oe44K144KqDQor44Kk44Oe44OL44K3LOODn+ODjuODqw0KK+OCquOCrOODryzjg57jgrXjg5Ljg4gNCivjg4/jgq7jg6/jg6ks44Kt44Oo44K3DQor44Kq44Kq44Kv44OLLOODkuODh+ODkuOCsw0KK+OCpOOCseODgCzjgrvjgqTjgqTjg4ENCivjg57jgqjjgrjjg54s44Ki44Kt44OpDQor44Kk44Ov44KkLOOCq+ODhOODnw0KK+ODpOODnuODgCzjg57jgrXjgq0NCivjgrnjg4As44Oe44K144OIDQor44OI44Kt44OvLOOCquOCteODoA0KK+ODj+ODpOOCtyzjg6bjgqbjgqTjg4ENCivjgr/jgrHjg6Ljg4gs44Kr44K644KqDQor44Kr44Oz44OQ44Ok44K3LOODnuOCteOCqg0KK+ODiOOCtuODryzjg4Tjg4jjg6ANCivjgr/jg4bjg44s44K344Oz44K0DQor44Kr44Oz44OZLOOCseOCpOOCsw0KK+OCquOCr+ODgCzjg6jjgrfjg4gNCivjgr/jg6Ljg4gs44OI44Of44KqDQor44OK44Ks44KkLOODjuODluOCv+OCqw0KK+OCquOCtuODryzjgrfjg7PjgqTjg4ENCivjgrXjg4jjgqYs44Ok44K544OK44OqDQor44Kz44Oz44OJLOOCouOCreOCqg0KK+ODjeOCruOCtyzjgr/jg4DjgrcNCivjgr/jg4rjgqss44OG44OE44KqDQor44Kz44Og44OtLOODquODp+OCpuOCpOODgQ0KK+ODqOOCt+ODgCzjg4jjg6jjg5Xjg58NCivjgqTjgqTjgrjjg54s44OS44Ot44OfDQor44OL44Kk44Ob44OqLOOCq+OCuuOCqg0KK+OCs+ODouODquODpCzjg6jjgrfjgr/jgqsNCivjgrfjg7Pjg4njgqYs44OS44OH44K644OfDQor44Ok44OOLOODqOOCpuOCpOODgQ0KK+OCv+ODiuOCqyzjg57jgrXjg4jjgrcNCivjg4/jgq7jgr/jg4ss44Ot44Kv44Ot44KmDQor44Kz44K544KuLOODgOOCpOOCreODgQ0KK+OCpOODmSzjg47jg6rjgqoNCivjgqvjg4rjgrbjg68s44OS44Ot44K3DQor44K/44OALOOCv+ODgOODkuOCtQ0KK+ODiuOCrOOCvyzjg6rjg6XjgqbjgrnjgrENCivjgqvjg57jg4As44OS44Ot44K3DQor44K/44Kr44OP44K3LOODqOOCt+OCqg0KK+OCquOCpOODhyzjg57jgrPjg4gNCivjgr/jgqvjgq/jg6ks44OS44Ot44K3DQor44Ok44K544Oe44OELOOCueOCueODoA0KK+ODnuODqyzjg6jjgrfjg5LjgrUNCivjgq/jg5zjgr8s44OO44Oc44OrDQor44K/44OQ44K/LOOCseOCpOOCpOODgQ0KK+ODouODquOCvyzjg47jg6rjgqoNCivjgq/jg4vjg4jjg6Is44OE44ON44K4DQor44Ki44K144OM44OeLOODkuODreOCq+OCug0KK+ODm+OCt+ODiizjg6TjgrnjgqoNCivjg47jgrbjg68s44OP44Or44OS44K1DQor44Oe44OE44Og44OpLOOCt+ODs+OCpOODgQ0KK+ODkuODqeOCq+OCvyzjgqvjgrrjgqoNCivjg5Ljg6njg54s44OP44Or44KqDQor44K344Of44K6LOOCv+OCq+OCtw0KK+ODqOOCs+OCq+ODryzjg6/jgr/jg6sNCivjgq3jgq/jg4Es44Ki44OE44K3DQor44Kv44Ot44K144OvLOOCpOOCteODoA0KK+OCv+OCseOCpuODgSzjg4bjg4TjgqoNCivjg5Ljg6njgqws44Oo44Km44K4DQor44K144Kk44OI44KmLOODjuODquOCqg0KK+OCpuODgeODnOODqizjgrPjgqbjgqTjg4ENCivjgqTjg4rjg6Djg6ks44Oo44K344OP44OrDQor44Kq44K144OALOOCv+OCq+OCtw0KK+OCueOCruODpOODnizjgr/jgqvjg4jjgrcNCivjgqTjg57jgros44Ok44K544K/44OADQor44Km44Op44OOLOODnuOCteODqOOCtw0KK+ODouODgeOCuuOCrSzjgqvjgrrjgqoNCivjgrnjgqzjg68s44K344Ky44OrDQor44Kk44Kx44OALOODiOOCt+OCqg0KK+OCv+ODiuOCqyzjg4/jg6vjgqoNCivjgrXjgqTjg4jjgqYs44K/44OE44K4DQor44OV44K444K/LOODiOOCt+ODn+ODgQ0KK+ODn+ODpOODjSzjg4Tjg4jjg6ANCivjgqvjg57jg4As44Of44OO44OrDQor44ON44Ku44K3LOODqOOCt+ODjuODqg0KK+OCquOCr+OCrOODryzjg6bjgq3jgqoNCivjg4/jg6Tjgrcs44OS44K144K3DQor44OQ44OQLOODjuODluODkuOCsw0KK+ODpOODnuODouODiCzjg4Tjg4jjg6ANCivjgqjjg7Pjg4ks44OO44Oc44OrDQor44K944Oh44OkLOOCquOCteODoA0KK+OCouODqeOCpCzjg6jjgrfjg6bjgq0NCivjgqLjg5ks44Ki44Kt44OpDQor44OB44OQLOOCv+ODhOOCqg0KK+OCv+OCq+ODpOODnizjg5/jg47jg6sNCivjg6Tjg57jgq0s44Om44Km44K4DQor44K/44Kx44Km44OBLOOCt+OCsuODleOCtQ0KK+OCv+OCseODmSzjgr/jgqvjgqoNCivjgqLjg4Djg4Es44Oo44K344Ki44KtDQor44K/44Kr44K344OeLOOCouOCreODqQ0KK+ODqOOCs+ODpOODnizjg47jg6rjg4rjgqoNCivjgrfjg6njgqTjg4Es44Oe44K144OrDQor44Kv44OJ44KmLOOCt+OCsuOCqg0KK+OCueOCuuOCrSzjgq3jg6jjgrcNCivjgr/jgqvjgrfjg54s44K/44Kr44K3DQor44Ok44Oe44Ks44K/LOODn+ODjuODqw0KK+ODqOOCt+ODgCzjgr/jgq/jgqoNCivjg5/jg6Tjgqvjg68s44Kx44Oz44K4DQor44K144K144KtLOODoOODhOODnw0KK+OCpOODh+OCpuODqSzjgqvjgrrjgrMNCivjgr/jg4rjgqss44OS44Ot44K3DQor44Kk44OI44KmLOOCouODhOODkuOCsw0KK+OCquOCquODhCzjgr/jgrHjgrcNCivjg5Xjgqjjgq0s44OI44K344Kr44K6DQor44K344Oi44OV44K1LOOCouODhOOCtw0KK+ODn+ODpOOCq+ODryzjg57jgrXjgr/jgqsNCivjg4/jgrfjg6Ljg4gs44K/44Kr44K3DQor44Ok44Oe44K+44KoLOOCs+OCpuOCuA0KK+ODi+OCpOOCr+ODqSzjg47jg5bjgqoNCivjg6/jgr/jg4rjg5ks44OI44K344OO44OqDQor44Og44Ot44OV44K3LOOCq+ODig0KK+OCq+ODs+ODgCzjgqvjg4Tjg57jgrUNCivjgq/jg4njgqYs44Kx44Kk44KzDQor44K/44Kr44OP44OpLOODr+OCv+ODqw0KK+OCquOCq+ODgCzjgrHjgqTjgrgNCivjg4njgqQs44K144OI44OrDQor44K/44OK44OZLOODnuODouODqw0KK+OCs+ODoOODrSzjgrHjg7PjgqTjg4ENCivjg6Ljg6rjg6Tjg54s44OV44Of44KzDQor44Ki44Op44Oe44KtLOODjuODluOCqg0KK+OCs+OCt+ODmSzjgqvjgrrjg60NCivjgrXjg44s44OO44OW44OS44OtDQor44Kq44Kr44OALOODqOOCt+ODnuOCtQ0KK+ODleOCuOODr+ODqSzjgq3jg6fjgqbjgrMNCivjg57jg4Tjgqos44Kr44K644OfDQor44K/44OK44KrLOODn+ODjeOCqg0KK+OCreODj+ODqSzjg4rjgqrjgq0NCivjg4vjgrfjg4/jgr8s44Om44KmDQor44OL44K344Ov44KtLOODqOOCt+OCv+OCqw0KK+OCquOCq+OCtuOCrSzjg5Ljg63jgqvjgroNCivjg5Xjgrjjg6/jg6ks44Kq44K144OgDQor44Ok44K544OALOODpuOCq+OCsw0KK+OCquOCqyzjgq3jg6fjgqYNCivjg5vjgr3jg44s44K344Ky44KqDQor44Ki44Kr44K3LOOCv+OCr+ODng0KK+ODiuOCq+OCpCzjgrPjgqbjgqTjg4ENCivjg6Tjgrnjg4As44Kt44Kv44K4DQor44OG44Op44Og44OpLOODleODn+OCv+OCqw0KK+OCr+ODnOOCvyzjg6jjgrfjg6bjgq0NCivjgrPjg4vjgrcs44K344Ky44OfDQor44OO44Og44OpLOOCouOCreODqQ0KK+OCpOODjuOCuyzjgq/jg4vjgrMNCivjg6/jgr/jg4rjg5ks44Ok44K544OS44KzDQor44OL44K344KqLOOCq+OCuuODkuOCtQ0KK+ODouODn+OCrSzjgrPjgrnjgrENCivjgrnjg4rjg4As44OS44Ot44K/44KrDQor44K/44Kx44Km44OBLOOCteODgeOCsw0KK+OCouOCreOCuyzjg5Ljg63jgrcNCivjgrfjgqrjgr8s44Oo44K344OS44KzDQor44Kt44OJLOODqOOCt+OCouOCrQ0KK+OCpOOCt+ODr+OCv+ODqizjg4jjgrfjgqoNCivjgrfjg6njgqzjg58s44K/44Kr44OS44OtDQor44Km44OB44OK44KsLOODkuODh+ODpA0KK+OCv+ODiuOCqyzjgrfjg7PjgqTjg4Hjg63jgqYNCivjgq/jg63jgrXjgq0s44OG44OE44KqDQor44Kq44OI44K3LOODpuOCpuOCpOODgQ0KK+OCteODiOOCpizjg57jgrXjgqoNCivjgrnjgrrjgq0s44Oe44K144Om44KtDQor44OS44Ot44K/LOOCteOCpOOCuA0KK+ODpOODjuOCq+ODryzjgrjjg6Xjg7PjgqTjg4ENCivjgrXjgqvjg6Ljg4gs44Oe44Oi44OrDQor44Kz44Og44OtLOODnuOCteODiA0KK+OCpOODnuOCvyzjg6jjgqbjgqTjg4ENCivjg5vjgr3jg6Qs44Kr44K644K/44KrDQor44OG44Op44K144KrLOODnuOCteODpuOCrQ0KK+ODm+ODs+ODnizjgqvjgrrjgqgNCivjgqvjgrnjgqws44OS44Ot44K344KyDQor44Oe44OE44OA44Kk44OpLOOCqOOCpOOCuA0KK+OCq+ODr+OCq+ODnyzjgrfjg6XjgqbjgrgNCivjg43jgrTjg60s44K344Oz44K4DQor44OV44Kv44OALOOCqOOCpOOCvuOCpg0KK+OCueOCuuOCrSzjg5Ljg63jgrcNCivjg4jjg57jg4Qs44Oo44K344K4DQor44Kk44OOLOOCv+ODhOODreOCpg0KK+OCueOCuuOCrSzjgrjjg6Xjg7PjgrgNCivjgqLjgrXjgqQs44Kr44K644KqDQor44OP44OpLOOCv+OCq+ODjuODqg0KK+ODm+OCtyzjgq/jg4vjgqvjg4QNCivjg4rjg6vjgqvjg68s44Kr44K644OO44OqDQor44Kq44OALOOCv+OCq+OCouOCrQ0KK+OCquODkOODiizjgrfjgrLjg6TjgrkNCivjgr/jg4vjgrbjg68s44Oe44K144OS44OtDQor44OV44K444Kq44KrLOOCv+OCq+OCtw0KK+OCtOODiOOCpizjgr/jgqvjgrgNCivjgrPjg6zjg4rjgqws44OI44K344Ki44KtDQor44K/44Kr44OP44K3LOODgOOCpOOCueOCsQ0KK+OCv+OCq+ODqSzjg5/jg4Tjg4/jg6sNCivjgqrjgqrjgq/jg68s44Kt44Oo44K3DQor44K/44OK44KrLOODkuODh+OCq+OCug0KK+OCteODiOOCpizjg47jg6rjgqoNCivjgrfjg57jg4zjgq0s44Kx44OzDQor44K944ONLOODkuODreOCtw0KK+OCv+ODiuOCqyzjgqvjgrrjgqoNCivjg5Xjgrjjg6Djg6ks44Kz44Km44K4DQor44K044OI44KmLOOCt+ODs+OCuA0KK+ODj+OCt+ODouODiCzjg6Tjgrnjgr/jgqsNCivjg5Ljg6vjg54s44Ki44Kt44OpDQor44Ob44K344OQLOODkuODh+ODqA0KK+OCq+ODoeODr+ODqizjg5Ljg63jg58NCivjgqrjgq/jgqQs44OS44Ot44K3DQor44OS44K144Oi44OILOOCquOCteODoA0KK+OCueOCuuOCrSzjgq3jg6jjgrcNCivjg5Ljg6njgrXjg68s44Oo44K344K/44KrDQor44Kt44K/44OHLOODjuODquOCouOCrQ0KK+ODleOCr+ODgCzjgqvjgrrjg5LjgrUNCivjgrfjgqrjgrbjgq0s44Kx44Kk44K4DQor44Og44OI44KmLOODpuOCv+OCqw0KK+ODi+OCt+OCquOCqyzjgrXjg5bjg63jgqYNCivjg4Tjg5zjg44s44OS44Ot44OS44K1DQor44OK44OE44Km44OhLOODiOOCt+ODnuOCtQ0KK+OCv+ODi+OCrOOCrSzjg5Ljg63jgqLjgq0NCivjgqrjgqrjgrnjgqws44Kr44K644KqDQor44Km44OB44OALOODkuODh+OCqg0KK+OCq+ODiOOCpizjgqjjgqTjgrgNCivjgrXjgrXjgq0s44OS44OH44KqDQor44Kr44K344OeLOODjuODquOCqg0KK+OCouOCq+OCteOCqyzjgqvjgrrjgqoNCivjgqvjg6/jgqvjg58s44Oo44Km44Kk44OBDQor44K344OJLOOCv+ODhOODpA0KK+ODpOODnuOCpuODgSzjg6jjgrfjg5Ljg4cNCivjgqvjg44s44Om44K/44KrDQor44OP44OpLOOCpOOCr+OCqg0KK+ODnuODhOODkOODqSzjgrHjg7PjgrgNCivjg4bjg6njgqvjg4ks44Kr44K644OS44OtDQor44K344Kq44K/LOODqOOCt+ODjuODqg0KK+OCquOCq+ODgCzjg5Ljg4jjgrcNCivjgq/jg63jg4As44Oq44On44KmDQor44Oi44Oq44Oi44OILOODleOCuOOCqg0KK+OCu+OCrSzjg5Ljg63jgrcNCivjgrnjgrrjgq0s44Ki44Kt44OpDQor44K/44Kx44Kv44K1LOODkuODreOCtw0KK+OCv+OCrOOCt+ODqSzjg47jg5bjgqoNCivjgrPjg5Djg6Tjgrcs44Kq44K144OgDQor44K144Ko44KtLOOCseOCpOOCuA0KK+OCv+ODhOOCtuODryzjgq3jg5/jgqLjgq0NCivjgrXjgqTjg4jjgqYs44OS44OI44K3DQor44OV44Or44Kr44OvLOOCreODqOOCtw0KK+OCv+ODoOODqSzjg5Xjg5/jg4gNCivjg4Tjg6rjg6Qs44Oe44OB44KqDQor44K144Kr44Kw44OBLOODleODn+ODiOOCtw0KK+ODleOCr+OCt+ODnizjg6jjgqbjgqTjg4ENCivjgqrjgqrjgqvjg68s44OS44Ot44K3DQor44OV44K444K/LOOCt+ODpeODs+OCueOCsQ0KK+OCq+ODr+OCsOODgSzjgqvjg4Tjg47jg6oNCivjg4jjgq3jgqrjgqss44OG44Or44KqDQor44OK44Kr44OOLOODiOODn+OCqg0KK+OCpOODjuOCpuOCqCzjg57jgrXjg6bjgq0NCivjgq/jg4vjg4jjgrcs44K/44Kv44Ot44KmDQor44K144Kr44K/LOOCs+OCpuOCpOODgQ0KK+ODouODquOCq+ODryzjg4Tjg43jgqoNCivjg47jgrDjg4Es44OS44Ot44K3DQor44Kv44Oc44K/LOODoOODhOODnw0KK+ODiuOCq+OCquOCqyzjgr/jg4TjgqoNCivjg47jg5Xjgrgs44Kx44Kk44K4DQor44Oi44Ks44OqLOOCqOOCpOOCuA0KK+ODnuOCqOOCtuOCrSzjgqTjgrXjgqoNCivjgqrjgqrjg4Tjgqss44K344Ky44Oo44K3DQor44Of44K644K/LOOCseODs+ODjuOCueOCsQ0KK+OCueOCruODpOODnizjg6jjgrfjg5LjgrUNCivjgqvjgqzjg68s44Oo44K344K/44KrDQor44OL44K344OP44OpLOODqOOCt+ODleODnw0KK+ODhuOCuuOCqyzjgrfjg7PjgqTjg4ENCivjgrfjgqrjg58s44Of44OE44KqDQor44Kq44Kq44OP44OpLOOCv+ODgOOCouOCrQ0KK+OCouOCteOCr+ODqSzjgqLjgq3jg5Ljg60NCivjgrfjg57jg4As44OG44OE44OkDQor44K344Oe44Kr44OvLOOCueOCueODoA0KK+ODj+OCt+ODouODiCzjg5Ljg4jjgrcNCivjgqbjgros44K344K644KqDQor44K/44Kr44Kv44OvLOODnuOCteODjuODlg0KK+ODn+ODgeOCvyzjgrfjg6Xjg7PjgqTjg4ENCivjgqbjgqjjg4As44Km44Kk44OqDQor44K344KsLOOCv+OCq+ODhOOCsA0KK+OCpOOCseODnyzjg5/jg4TjgrANCivjg6Ljg6os44Oe44K144Ki44KtDQor44Kr44K344Oi44OILOODnuOCueODnw0KK+OCpOOCt+ODj+ODqSzjg4HjgqjjgrMNCivjgqvjg43jgrMs44OB44Ko44KzDQor44K/44Kr44OP44K3LOODiOOCt+OCqg0KK+ODouODiOOCpCzjg57jgrXjgqoNCivjgrPjgr/jgrEs44Of44OB44KqDQor44Kr44K144KkLOOCueOCqOOCsw0KK+OCq+ODiOOCpizjg47jg6rjgrMNCivjgrPjgq/jg5ws44Kx44Kk44KzDQor44Ov44Kr44Ok44OeLOOCt+OCsuODpA0KK+OCteODiuODgCzjg57jgrXjg5LjgrMNCivjgrXjgqvjgr8s44OI44Of44Oo44K3DQor44OO44Og44OpLOODn+ODhOOCqg0KK+ODj+ODpOOCq+ODryzjgqvjgrrjg58NCivjg5/jg6Tjgrbjgq0s44K344Ky44KqDQor44Kq44OL44OE44KrLOOCseODs+OCuA0KK+OCpOODhyzjgqrjgrXjg6ANCivjg4rjgqzjgrXjgrMs44K/44Kr44OO44OqDQor44Kk44OI44KmLOODn+ODgeOCv+OCqw0KK+OCq+ODjeOCv+OCsSzjg4bjg6vjgqLjgq0NCivjgq/jg5zjgr8s44Kt44Oo44Om44KtDQor44Ki44Oq44OeLOOCseOCpOOCsw0KK+ODr+OCq+OCqizjg5Ljg63jgrcNCivjgqTjgrfjgrbjgqss44K/44Kr44Om44KtDQor44Kq44K/LOOCvOODs+ODj+ODgeODreOCpg0KK+OCteOCq+ODouODiCzjgrHjgqTjgrQNCivjgqrjgqrjg5vjg6os44Om44Kt44KqDQor44K344Oz44K/44OLLOODiOOCt+OCouOCrQ0KK+OCpuODgeODpOODnizjgr/jgqvjgrcNCivjg5Ljg6njgr8s44Of44OK44KzDQor44Ki44Oq44K+44OOLOOCteODiOOCsw0KK+OCpOODiOOCpizjgr/jgqvjgrcNCivjgqLjgqrjg6Tjgq4s44Oe44K144Ki44KtDQor44OK44Kr44Og44OpLOOCteODgOOCqg0KK+OCpOOCpOODgCzjg5/jg4HjgqoNCivjg4rjgrfjgq0s44Kr44Kq44OrDQor44Og44Op44K7LOOCq+OCuuOCqg0KK+ODnuODhOOCqizjgrHjgqTjgrQNCivjgrXjg4jjgqYs44K344Ot44KmDQor44Ki44K144OM44OeLOOCt+ODs+OCpOODgeODreOCpg0KK+ODleOCv+ODnyzjg6Tjgrnjg57jgrUNCivjg5Xjg4rjg4gs44Kv44OL44OfDQor44OV44K444K/LOODpuODn+OCsw0KK+ODleODq+OCq+ODryzjgr/jgrHjgqoNCivjg5Xjg4rjg4/jgrcs44OS44K144OkDQor44OW44OI44KmLOODkuODreODpuOCrQ0KK+OCq+ODjuOCpizjgqvjg4Tjg5Ljg60NCivjgqrjgq3jg4Qs44OS44Ot44K/44KrDQor44K/44Kr44Ku44OvLOOCpOOCteODoA0KK+ODm+OCt+ODjizjg4HjgqjjgrMNCivjg4vjgrfjgrjjg54s44Kv44OL44OS44OtDQor44Kr44Oe44K/LOODgeOCouOCrQ0KK+ODhOOCuOODouODiCzjg4jjgrfjgqTjg4ENCivjg4/jg4rjg4As44K344Oz44K4DQor44OS44Ot44K7LOODnuOCteOCqg0KK+ODi+OCt+ODgCzjg5Ljg4jjgrcNCivjgqbjgqjjgq0s44OI44K344Kr44K6DQor44Oo44K344OOLOOCreODqOOCqg0KK+OCreOCv+ODoOODqSzjgrvjgqTjgqTjg4ENCivjgrfjg5/jgros44Of44OB44KzDQor44Kk44K344K244KtLOODkuOCteOCtw0KK+ODj+ODpOOCtyzjg5/jg4Tjg47jg5YNCivjgq3jgq/jg4Es44OS44OH44OV44OfDQor44Kq44Kr44OJLOODhOOCsOOCqg0KK+OCs+ODoOODqSzjgrfjgrLjg6sNCivjg4/jgrfjg6Ljg4gs44OE44OI44OgDQor44OK44Kr44OE44KrLOOCv+OCseOCtw0KK+OCquOCquOCpOOCtyzjg57jgrnjg6jjgrcNCivjgq/jg63jg4As44Oe44K144Oo44K3DQor44OK44Kr44KkLOODnuOCteODnw0KK+OCreOCv+OCtuODryzjg47jg6rjgqLjgq0NCivjgq3jgrfjg4As44K344Ky44OrDQor44Kr44OK44Oe44OrLOODnuOCs+ODiA0KK+OCouODqeOCpCzjgrfjgrrjgqoNCivjg5Xjgr/jg4Tjgq4s44OP44Or44KqDQor44Kt44Kv44OBLOODiOOCt+OCqg0KK+OCpOOCpOODgCzjg6TjgrnjgrcNCivjg4rjgqvjgqgs44Ki44Kt44KqDQor44OS44Op44Oe44OELOODn+ODjuODqw0KK+ODi+OCt+OCquOCqyzjgrjjg6Xjg7Pjgr7jgqYNCivjgrXjg4jjgqYs44Kx44Kk44KtDQor44Oi44OqLOODj+ODq+OCqg0KK+ODm+OCt+ODjizjgqTjgrXjgqoNCivjg6Tjg57jgrDjg4Es44OO44OW44OS44OtDQor44Km44K544KkLOODqOOCpuOCpOODgQ0KK+ODnuODhOODkOODqSzjgqjjgqTjgqTjg4ENCivjgqLjg6rjgrXjgqss44Oe44K144KtDQor44OL44K344KqLOOCqOOCpOOCuA0KK+OCreODgCzjg4bjg4TjgqoNCivjg6Tjg44s44Om44Km44Kk44OBDQor44Kr44OI44KmLOOCseODs+OCvw0KK+ODr+OCv+ODiuODmSzjg4Hjg5Ljg60NCivjg4/jg6Tjgrcs44Ok44K544KqDQor44Ov44K/44OZLOODqOOCpuOCpOODgQ0KK+ODr+OCv+ODiuODmSzjg57jgrXjgqoNCivjg6bjgrDjg4Es44OS44Ot44KzDQor44Ok44Oe44Oi44OILOODkuOCteOCtw0KK+OCteOCpOODiOOCpizjg5Xjg5/jgqoNCivjgqvjgqTjgros44Kx44Oz44Kk44OBDQor44Ob44K344OOLOODkuODh+OCqg0KK+OCt+ODjuODj+ODqSzjg47jg5bjg5Ljg60NCivjgqrjgqrjg4zjg54s44Oe44Oi44OrDQor44Of44OvLOOCv+OCseOCtw0KK+ODm+ODquODoOOCrSzjg6jjgrfjg54NCivjgqTjgrfjgr/jg4Ys44K344Oz44Kk44OB44Ot44KmDQor44Of44OV44ONLOOCreODqOOCtw0KK+ODouODn+OCrSzjg57jgrPjg4gNCivjg4/jgrvjgqzjg68s44OG44Or44KqDQor44K544Ku44Ok44OeLOOCt+ODpeODs+OCuA0KK+ODhOOCr+ODgCzjgr/jg4DjgrcNCivjgqLjg4Djg4Es44OV44Of44OO44OqDQor44OH44K244OvLOOCv+ODgOODqOOCtw0KK+OCquOCvyzjgq3jg6jjgrcNCivjgrXjg4jjgqYs44Ki44Kt44OpDQor44K744Kt44Kw44OBLOODn+ODhOODjuODqg0KK+OCs+OCr+ODluODsyzjg6jjgrfjgq0NCivjg5vjgrfjg4os44Om44Kt44OV44OfDQor44Km44Op44OOLOOCs+OCpuOCpOODgQ0KK+OCv+OCseODoOODqSzjg6Tjgrnjg5Ljg60NCivjg4jjgq/jg4rjgqws44OS44OI44K3DQor44Kv44Oq44OP44OpLOODkuODh+ODiA0KK+OCquOCr+ODoOODqSzjgrjjg6Xjg7PjgqTjg4ENCivjgrXjgqTjg4jjgqYs44K344Oz44Kk44OB44Ot44KmDQor44Oe44OE44K344K/LOOCseOCpOOCvuOCpg0KK+OCv+OCseODgCzjg5/jg4HjgrMNCivjg4vjgrfjgq0s44Oi44OI44Oo44K3DQor44Km44Oh44OALOOCteOCq+OCqA0KK+ODm+ODs+ODgCzjgqTjgq/jgqoNCivjgqvjg6Is44Kr44K644Km44OfDQor44Km44K344OALOODhOODqOOCtw0KK+OCteOCpOODiOOCpizjg5Ljg63jg4TjgrANCivjg4/jgrnjg4As44Oe44K544KqDQor44Of44Kr44OvLOODqOOCpuOCsw0KK+OCpuODgeODgCzjgq/jg4vjg5LjgrMNCivjg4vjgrfjgrbjgq0s44K344On44Km44Kk44OBDQor44Kk44Ks44Op44K3LOOCt+ODp+OCpuOCuA0KK+ODr+OCv+ODiuODmSzjgqLjgrXjgrMNCivjgrfjg57jg6Djg6ks44Kz44Km44K4DQor44Kr44OI44KmLOODjuODquOCsw0KK+OCq+ODr+ODmSzjgrfjg6fjgqbjgrMNCivjgrXjgqvjg6Ljg4gs44Oo44Km44K4DQor44Oi44Oq44K344K/LOODouODiOODqOOCtw0KK+OCueOCrOODj+ODqSzjg6rjg6fjgqYNCivjg4jjg5/jg6Tjg54s44Kr44OE44OS44KzDQor44OV44Kv44OALOODhOODqOOCtw0KK+OCquODiOOCtuOCrSzjgqLjg4Tjg5LjgrMNCivjg5Xjgrjjg6Ljg6os44K/44Kr44KqDQor44Kz44Oi44OqLOOCreODqOODpuOCrQ0KK+ODleOCr+ODiuOCrCzjg57jgrXjgqLjgq0NCivjg5/jg6Tjg4/jg6ks44Kr44OE44OO44OqDQor44K444Oz44OOLOODn+ODhOOCqg0KK+OCreODoOODqSzjgqjjgqTjgrMNCivjgqTjg4rjgqzjgq0s44Om44Kt44KzDQor44Oi44OqLOODjuODquOCqg0KK+ODr+OCv+ODiuODmSzjgqvjg4Tjg47jg6oNCivjg4Tjgrjjg6Ljg4gs44Ki44Kt44KqDQor44Oi44Oz44K844OzLOODkuODreODpuOCrQ0KK+ODiuODoOODqSwNCivjg6Tjg57jg6Ljg4gs44Ko44Oq44KzDQor44OP44K344Oi44OILOODkuODreOCrQ0KK+OCouODqeOCpCzjg6Tjgrnjg47jg6oNCivjg5XjgrjjgqQs44OS44Ot44K3DQor44Ov44K/44OK44OZLOODhuODhA0KK+ODj+OCu+OCrOODryzjg4jjg6jjgqvjgroNCivjgrfjgrLjg6Tjgrks44Ko44Kk44Kk44OBDQor44Ok44Oe44OO44KkLOOCv+OCr+ODng0KK+OCs+ODkOODpOOCtyzjg57jgrXjg6sNCivjg4rjgqzjgqQs44Oo44K344Ki44KtDQor44K144OvLOODjuODluOCqg0KK+ODnuODhOODqOOCtyzjg5/jg4HjgqoNCivjgrXjgqTjg4jjgqYs44Kr44Kq44OrDQor44Kr44OO44KmLOODkuODreOCouOCrQ0KK+OCpuOCt+OCtOODoSzjg6TjgrnjgqoNCivjgqTjgrfjgqQs44Kz44Km44K4DQor44Km44K544KtLOOCpOOCuuODqw0KK+OCueODieOCpizjg6jjgrfjgqoNCivjgqvjgrjjg6Tjg54s44K/44Kr44Kt44OfDQor44Kq44Kq44OQLOODkuODh+OCrQ0KK+OCueODryzjg5Xjg5/jgqoNCivjgqTjg6/jgr8s44Ok44K544OIDQor44OI44KmLOODj+OCuOODoQ0KK+OCquOCpOOCq+ODryzjg5Ljg4jjgrcNCivjg5Ljg6njgqQs44Ko44Kk44KzDQor44K/44Kr44K344OeLOODiOOCt+OCqg0KK+ODleODn+ODjizjg5Ljg63jgrcNCivjgqrjgqvjgrbjgq0s44OO44Oq44KqDQor44K344Op44KtLOODnuOCteODhOODjQ0KK+OCv+OCseODouODiCzjg6bjgqbjgrgNCivjg57jg4Tjg6Ljg4gs44OO44Oq44OS44KzDQor44Oe44OE44OQ44OpLOODkuODreOCtw0KK+OCqOODk+ODj+ODqSzjgrPjgqbjgrgNCivjg5Xjgrjjg44s44Ok44K544KqDQor44OV44Kr44OkLOODnuOCteODkuODrQ0KK+ODm+OCt+ODjizjgr/jgqvjgrcNCivjgqvjgr/jg6Tjg54s44K144OB44KzDQor44Ki44Op44Kr44OvLOODnuOCteODpuOCrQ0KK+OCv+OCq+ODjizjgqvjgrrjgqoNCivjgq/jg63jg4As44Ok44K544OS44OtDQor44Kk44OI44KmLOOCuOODpeODs+OCsw0KK+OCs+OCtuOCpCzjg5/jg4Tjg6sNCivjgqbjgqjjg6Tjg54s44Kt44Oo44K3DQor44OP44OD44OI44OqLOODiOOCt+OCrQ0KK+ODi+OCt+ODoOODqSzjg4jjgrfjgr/jgqsNCivjg5Xjg6vjgqvjg68s44K/44Kr44KqDQor44Ok44K344KtLOOCt+OCsuOCrQ0KK+ODm+ODieODpOODnizjg5Ljg4fjgqoNCivjgqjjg4jjgqYs44OI44Oi44OS44KzDQor44Ok44Oe44Oi44OILOODnuOCteODiOOCtw0KK+OCu+OCreOCsOODgSzjgqTjgrXjg6ANCivjgr/jg4rjg5ks44OS44OH44OI44K3DQor44K/44Kx44OALOODiOOCt+ODpuOCrQ0KK+OCt+ODs+OCv+ODiyzjgqvjgr/jgrcNCivjgq/jg5zjgr8s44Kt44Oo44K3DQor44K544Ku44Kq44KrLOOCteODiOODnw0KK+ODpOODnuOCtuOCrSzjgrXjg4Djg47jg6oNCivjgrXjgqTjg4jjgqYs44OS44OH44KtDQor44Km44Ko44OOLOODiOOCt+OCv+OCsQ0KK+OCt+ODnuODouODiCzjgrPjgrnjgrENCivjgq3jgr/jg44s44Oe44K144OfDQor44Kk44Kk44K644KrLOODquODp+OCpuOCsw0KK+OCpOOCuuODnyzjgq3jg6fjgqbjgrgNCivjg4/jg6njg4As44K/44Kr44Om44KtDQor44Kq44OB44Ki44KkLOOCteODiOOCtw0KK+ODpOODnuOCpuODgSzjgqLjgq3jg5Ljg60NCivjgqjjgrDjg4Es44OS44OH44OE44ONDQor44OP44Ku44Ov44OpLOOCv+OCseOCtw0KK+OCv+OCq+OCrizjgr/jgrHjg47jg6oNCivjgqrjgq/jg6Ljg4gs44Oe44OK44OWDQor44Oe44OE44K244KtLOODquODp+OCpuOCpOODgQ0KK+OCpOODgeODoOODqSzjg6bjg6rjgrMNCivjg5/jg6TjgrXjgqss44OI44Oi44KzDQor44Of44Ok44K/LOOCu+OCpOOCpOODgQ0KK+ODiuOCrOOCqizjgrfjg6fjgqbjgq3jg4ENCivjgqTjg6/jgqos44Oe44K144K3DQor44OV44Kr44K244OvLOOCt+OCsuODqw0KK+OCv+ODoOODqSzjg57jgrXjgqoNCivjgq3jg6rjg6XjgqYs44K/44OA44KqDQor44Oe44OE44K244KtLOODqOOCt+OCqg0KK+OCq+ODiOOCpizjg4bjg6vjg5/jg4QNCivjg5/jgr8s44OK44Kq44OIDQor44Kk44K344KkLOOCpOOCteODoA0KK+OCquOCq+ODouODiCzjg4bjg4TjgqoNCivjgqbjgqjjgqrjgqss44OO44OW44KqDQor44Kt44On44Km44OOLOODnuOCteODiA0KK+OCq+ODjeOCsyzjg6bjgqbjgr7jgqYNCivjgrXjgq/jg6njgqQs44Kt44On44Km44KzDQor44Ov44Kr44OQ44Ok44K3LOODiOOCt+ODkuODhw0KK+ODr+OCv+ODiuODmSzjg6jjgrfjg5Ljg60NCivjgqLjgrXjgqQs44OL44K544KxDQor44Kr44OJ44OOLOODpuOCpuOCuA0KK+ODpOODnuOCtuOCrSzjg4jjg6jjg5Ljg60NCivjgqLjg6/jg44s44OI44K344Om44KtDQor44Kq44Ks44OvLOOCv+OCq+ODjuODqg0KK+OCvOODs+OCsSzjg4jjgrfjgqoNCivjg5Xjgq/jg6Ljg4gs44OI44Oi44OS44KzDQor44Kq44OJLOOCq+OCuuODjuODqg0KK+ODouODquODouODiCzjgr/jgqvjgqoNCivjg4jjgqbjg5zjgqYs44Kr44K644OfDQor44Kr44K/44Ok44OeLOODnuOCteOCtw0KK+ODiuOCrOODnuODhCzjgr/jgqvjgqLjgq0NCivjg6/jgr/jg5ks44Oo44K344OfDQor44Kk44K344KtLOODpuOCpg0KK+OCpOODiuOCrOODryzjg6bjgqbjgrMNCivjg4rjgqvjg44s44K/44Kr44OP44OrDQor44OL44K344Ok44OeLOODpOOCueODqOOCtw0KK+OCt+ODouODgCzjg5/jg6jjgrMNCivjgrfjgrLjgr8s44K/44Kr44KqDQor44Oe44OE44Oi44OILOODkuODreOCt+OCsg0KK+OCq+OCv+ODpOODnizjg6bjgqYNCivjgr3jg44s44Kr44OE44OfDQor44Kk44K744KtLOODpuOCreOCqg0KK+OCpOODiOOCpizjg6jjgrfjgqvjgroNCivjgrvjgq3jg40s44Oe44K144KqDQor44Og44Op44Ok44OeLOODleOCuOOCqg0KK+ODnuODq+ODpOODnizjgrHjgqTjgrgNCivjgq/jg63jgrXjg68s44Oo44K344OV44OfDQor44K544OfLOODiOOCquODqw0KK+ODjuOCsOODgSzjg6bjgqbjgrgNCivjgrXjg4jjgqbjg58s44OS44OH44KtDQor44Kq44Kq44Kr44OvLOODhOOCsOODkuODiA0KK+ODiuOCq+ODjizjg5Ljg4fjg47jg6oNCivjgqrjgqrjgqTjgrcs44K4DQor44OP44OWLOOCouOCreODqQ0KK+OCpuODgeODgCzjg47jg6rjg57jgrUNCivjg5/jgq0s44OV44Of44OO44OWDQor44K544K644KtLOODhOODjeODpuOCrQ0KK+OCq+OCteODj+ODqSzjgqTjgrrjg58NCivjgqrjgqrjgq/jg5ws44Kr44K644OP44OrDQor44Kr44K/44Kr44OfLOODjuODquOCq+OCug0KK+OCv+OCq+ODj+OCtyzjg4jjgrfjg5LjgrMNCivjgqTjgrfjgqvjg68s44Kr44K644OkDQor44K/44Kr44OI44OqLOOCv+OCq+OCqg0KK+OCv+ODi+OCsOODgSzjgrfjg7PjgrgNCivjgrvjgq0s44Om44Kt44Oe44K1DQor44Kv44Oc44K/LOODnuOCteODiA0KK+OCouODmeOCq+ODryzjg6Djg4TjgqoNCivjg5Xjgrjjg57jgq0s44K/44Kx44K3DQor44Kr44K/44Ok44OeLOODnuOCteODpuOCrQ0KK+OCs+ODpOODnizjgrHjg7PjgrgNCivjg4/jgrfjg6Ljg4gs44Ki44Kx44OfDQor44K544OfLOODn+ODgeOCqg0KK+ODi+OCt+OCq+ODryzjg5Ljg63jgrcNCivjgrXjg6/jg54s44Ki44Ok44KzDQor44OP44K344Oi44OILOODpuOCpuOCsw0KK+ODiuOCq+OCvyzjg6Tjgrnjg57jgrUNCivjgqbjg4Hjg6Tjg54s44OS44Ot44K3DQor44K144K144KtLOODnuODqg0KK+OCouOCteODj+ODqSzjg5/jg4Tjg5Ljg60NCivjg4vjg4Pjgr8s44OV44Of44KzDQor44OA44OzLOODq+ODquOCsw0KK+OCueOCruOCvyzjg4bjg4TjgrcNCivjg6Tjg57jg6Ljg4gs44K344Oz44Kk44OBDQor44Kq44OV44OBLOODn+OCrQ0KK+OCs+ODkOODpOOCtyzjg5/jg6/jgrMNCivjg5/jg6jjgrcs44Kz44Km44Kt44OBDQor44Kk44K344OALOODkuODh+ODkuOCsw0KK+OCquODi+OCrSzjg47jg5zjg6sNCivjgq/jg6rjg4/jg6ks44K/44Of44KqDQor44K344Op44KkLOODhOOCq+OCtQ0KK+OCteOCq+ODi+OCtyzjgrHjg7PjgqTjg4ENCivjgqrjg4As44OS44K144K3DQor44Kr44Oe44K5LOOCseODs+OCvuOCpg0KK+ODiuOCq+OCrOODryzjg57jgrXjg6jjgrcNCivjgqvjgrfjg6Ljg4gs44Kt44On44Km44Kk44OBDQor44OQ44Oz44OJ44KmLOODpuOCuuODqw0KK+ODleOCv+ODnyzjg57jgrXjgrcNCivjg6Tjg57jgrfjgr8s44K/44Kr44K3DQor44OP44Ok44K3LOODpuOCpuOCuA0KK+OCq+OCsuODpOODnizjg5/jg47jg6sNCivjgqLjgrnjg54s44OO44OW44KqDQor44K344Oi44Og44OpLOODpuOCpuOCpOODgQ0KK+ODpOODnuOCsOODgSzjgr/jg4DjgrcNCivjg6Tjg57jg4gs44OS44Ot44K3DQor44K144OI44KmLOOCt+OCsuODqw0KK+ODnuODhOODgOOCpOODqSzjgqvjgrrjg6QNCivjg57jg4Tjg6Djg6ks44OI44K344Of44OBDQor44Kz44Oz44OOLOODqOOCt+ODpA0KK+OCquOCquODj+OCtyzjg6TjgrXjg5bjg63jgqYNCivjgq3jgq/jgr8s44K344Ky44KtDQor44Oo44K344Kq44KrLOODkuODreOCtw0KK+OCteODjizjg6jjgrfjgqoNCivjgr/jg4rjgqss44Om44Kt44OO44OqDQor44K144K144KtLOOCueOCueODoA0KK+OCq+ODr+OCsOODgSzjgqLjg4TjgrcNCivjg6Tjg57jgrfjgr8s44K/44OE44KqDQor44K/44Kx44Og44OpLOODleODn+OCqg0KK+ODleOCr+ODgSzjgqvjgrrjgqgNCivjg57jg4rjgqss44OI44Of44KoDQor44Ki44Op44KtLOOCv+OCq+ODjuODlg0KK+ODkuODqeODjizjg6jjgrfjgqvjgroNCivjg4rjgqvjg6Djg6ks44OE44OI44OgDQor44OP44K344Oi44OILOODiOOCt+OCq+ODhA0KK+OCq+ODiOOCpizjgqTjgq/jgrMNCivjg4/jg57jgqvjg68s44Kv44OL44KqDQor44OP44Ok44K3LOOCseOCpOOCsw0KK+OCpOODiOOCpizjgrHjg7PjgqTjg4ENCivjgrnjgrrjgq0s44Kk44OB44Ot44KmDQor44K/44Kx44Km44OBLOOCq+OCuuODkuOCsw0KK+ODi+OCtyzjgrPjgqbjgqTjg4ENCivjgqTjg6/jg5vjg6os44OI44K344Oe44K1DQor44Kk44Oe44KkLOOCr+ODn+OCsw0KK+ODouODquODjizjgr/jgqvjgrcNCivjg4vjgrfjg4/jg6ks44Kx44KkDQor44Kt44Oq44OkLOODkuOCteODiA0KK+OCteODiOOCpizjg4jjg6jjgrMNCivjg5vjgr3jg4As44OS44K144KzDQor44K/44Kr44OP44K3LOOCv+ODgOOCtw0KK+ODiuOCq+OCuOODnizjgrfjgrLjg6sNCivjg6Tjgrnjg4/jg6ks44OK44Or44Om44KtDQor44Kv44Ot44Kk44OvLOOCv+OCq+OCtw0KK+OCq+ODoizjg5Ljg63jgrcNCivjgqLjgqvjg57jg4Qs44Kv44OL44Ki44KtDQor44Kt44K/44Og44OpLOODnuODpuODnw0KK+ODi+OCt+ODgCzjg6bjgq3jgrMNCivjgqrjgqvjg4As44K344Oz44Kk44OBDQor44K144K144KtLOODiOOCt+ODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jgrcNCivjgrfjg5/jgros44Kk44K144OgDQor44Ko44Oz44OJLOOCt+ODs+OCueOCsQ0KK+OCpuODgOOCrOODryzjg4bjg6vjgqoNCivjgrfjg5/jgros44OO44Oq44OV44OfDQor44Ki44Kq44Ok44KuLOOCu+OCpOOCvuOCpg0KK+ODj+OCt+ODouODiCzjgqvjgrrjgqoNCivjgr/jgrHjgqbjg4Es44OS44OH44Ki44OEDQor44Ki44Op44KkLOODpOOCueOCtw0KK+OCpOOCt+OCuOODnizjgqTjgrXjgqoNCivjgrPjgqzjg40s44OS44OH44KqDQor44K144Ov44K344OeLOOCt+ODs+OCpOODgQ0KK+OCv+OCq+ODpOODiuOCrizjg5/jg47jg6sNCivjg57jgrXjg4As44OS44Ot44Of44OBDQor44K344Of44K6LOOCouOCreODkuODhw0KK+OCquODjuODh+ODqSzjgr/jgqvjgqoNCivjgr/jg4rjgqss44Of44OE44OrDQor44OO44Og44OpLOODjuODluOCqg0KK+ODqOOCt+ODgCzjg5Ljg63jgrcNCivjg6jjgrfjg4As44OI44K344K544KxDQor44K144K/44KxLOOCt+ODs+OCuA0KK+OCteOCpOODiOOCpizjg57jg6Ljg6sNCivjg5/jg6Tjgq4s44OS44Ot44K3DQor44K/44Kr44K344OeLOOCseOCpOOCuA0KK+OCq+ODkOODpCzjg5Ljg63jg5Xjg58NCivjgqTjgrfjgrbjgq0s44K344Oz44Kk44OBDQor44Kr44Ks44OkLOODqOOCpuOCpOODgQ0KK+OCs+OCv+ODiyzjgr/jgq/jg6Ljg6oNCivjgrPjgrnjg4As44Ok44K544Ki44KtDQor44Kk44K444OqLOODpuOCv+OCqw0KK+ODnuODq+ODpOODnizjgr/jg5/jg6QNCivjgqvjg4rjgqQs44Oo44K344KqDQor44Ok44KuLOODn+ODhOOCsA0KK+ODleOCuOODjizjgrXjg4jjgrcNCivjgrPjg4fjg6ks44Oe44K144OIDQor44K544Ku44KqLOODnuOCteODpuOCrQ0KK+OCueOCrOODj+ODqSzjgrPjgqbjgqTjg4ENCivjgrXjgqTjg4jjgqYs44Of44OE44Ok44K5DQor44Kq44KrLOODj+ODq+ODpOOCuQ0KK+OCpOOCt+ODnuODqyzjgqrjgrXjg6ANCivjg5/jg6Tjgrbjgq0s44Kz44Km44K+44KmDQor44OP44Oe44OOLOODn+ODgeOCqg0KK+OCs+OCv+OCuOODnizjg6jjgrfjg47jg6oNCivjgr/jgqvjgrfjg54s44Ki44Kx44OV44OfDQor44OE44Kr44OALOOCu+OCpOOCpOODgQ0KK+ODiuOCq+ODoOODqSzjgqvjg4Tjg5Xjg58NCivjgr/jgrHjg4As44Oe44K144OO44OqDQor44Ok44K544Og44OtLOODj+ODq+ODkuOCsw0KK+ODiuOCq+ODoOODqSzjg5Ljg63jgrcNCivjg5Xjgrjjgrfjg54s44K344Ky44Oe44K1DQor44Kq44Kr44OALOOCv+OCseOCtw0KK+OCouODpCzjg5/jg4Tjg57jg6sNCivjg4rjgqvjg6Djg6ks44Of44OE44Oe44OrDQor44K/44Kr44OP44K3LOOCv+OCseODkuODrQ0KK+OCueOCrOODj+ODqSzjgrfjgrLjgr/jg4ANCivjg6bjgqLjgrUs44Kx44Oz44K4DQor44Kk44K344KkLOODoOODjeODqOOCtw0KK+OCquOCquOCr+ODnCzjg5Ljg63jg4jjgrcNCivjgqrjgrXjg68s44Oe44K144K/44KxDQor44Ok44Oe44Oi44OILOODn+OCreOCqg0KK+OCpOODnuOCpOOCuuODnyzjgqvjgrrjg5LjgrMNCivjgqrjgqvjg4As44Oo44K344OS44OtDQor44OK44Kr44Og44OpLOOCr+ODi+OCqg0KK+OCv+ODiuOCqyzjgq3jg6jjgrcNCivjg4rjgqvjg44s44K/44Kv44KqDQor44Kq44Kq44Oi44OqLOOCq+OCuuODkuOCsw0KK+ODpOODnuODouODiCzjgqvjgrrjgqoNCivjg4rjgqzjgqQs44Om44Kt44Oe44K1DQor44Kz44OQ44Ok44K3LOODqOOCt+ODj+ODqw0KK+ODkuOCreODgSzjg5LjgrXjgrcNCivjg6Tjg57jg4As44OI44K344KqDQor44OE44Kr44Oi44OILOODhOODiOODoA0KK+OCpOODjuOCpuOCqCzjg57jgrXjg4gNCivjgqTjg47jgqbjgqgs44Ki44Kt44OpDQor44K544Of44Kr44OvLOOCq+OCquODqw0KK+ODleOCr+ODgCzjgrjjg6Xjg7PjgqTjg4ENCivjg6Tjg57jg6Ljg4gs44K744OE44KzDQor44K144Kk44OI44KmLOODpuOCpuOCsw0KK+OCq+ODs+ODkCzjg6jjgrfjg5/jg4QNCivjgrXjg6njgqQs44Oe44K144Ki44KtDQor44K144Kr44KtLOOCt+ODp+OCpuOCuA0KK+ODpOOCueOCpCzjgr/jgqvjgrcNCivjgqvjg5/jg6Djg6ks44K/44Kr44K3DQor44K744OZLOODqOOCt+OCv+OCqw0KK+ODqOOCt+ODgCzjg4jjgrfjgqvjgroNCivjg4rjgqzjgrss44K/44OA44K3DQor44OV44Kv44OBLOOCpOOCuuODnw0KK+ODleOCr+ODgCzjgrgNCivjg47jg4rjgqss44OO44OW44OS44KzDQor44Kk44Oe44OALOODnuOCteODkuODrQ0KK+ODi+OCt+OCq+ODryzjg57jgrnjgrMNCivjgrPjg6Tjg44s44OS44OH44KqDQor44OK44Kr44K244OvLOOCouOCreOCqg0KK+OCquOCrOODryzjgr/jgqvjgrcNCivjg4rjgqvjg6Tjg54s44OP44Or44OS44K1DQor44OM44OO44Kr44OvLOOCseOCpOOCsw0KK+OCveODjSzjg5Xjg5/jgqoNCivjg5/jgr7jgrDjg4Es44Om44Kt44KqDQor44Kz44OQ44Ok44K3LOOCpOODr+OCqg0KK+ODqOOCt+ODnuODhCzjg57jgrXjgqoNCivjgqrjgqrjg4/jg6ks44Oe44K144Kq44OfDQor44Ok44Oe44OALOOCt+ODs+OCuA0KK+ODn+ODjuOCsOODgSzjg6jjgrfjg47jg6oNCivjgrfjg7Pjg6Hjg7Ms44K/44Kr44OV44OfDQor44OO44K7LOODnuOCteOCqg0KK+OCpOODr+ODj+OCtyzjg6rjg6fjgqbjgqTjg4ENCivjgqLjgqvjgqQs44K/44Kx44K3DQor44OE44K/44Oi44OILOODnuOCteODj+ODqw0KK+ODiuOCq+ODouODiCzjg5/jg47jg6sNCivjgq/jg4Djg4rjg58s44Oe44K144Om44KtDQor44Kk44OB44OALOOCv+OCq+OCtw0KK+ODpOODjizjgqjjgqTjgrgNCivjg57jg4Tjgq0s44Kt44Of44KqDQor44K144K144KtLOODqOOCt+OCt+OCsg0KK+ODleODq+ODjizjgqvjgqrjg6sNCivjg5Xjgrjjgr8s44Ki44Kt44OpDQor44Kk44OO44Km44KoLOODn+ODieODqg0KK+OCv+ODpCzjg5/jg4Tjg6TjgrkNCivjg5/jg6Tjgrbjg68s44K/44Ot44KmDQor44Ov44K/44OK44OZLOODqOOCpuOCsw0KK+OCouOCr+ODjSzjg4jjgrfjg63jgqYNCivjg5vjgrfjg44s44K344Oz44Kk44OBDQor44Oo44K344OALOOCq+OCuuOCqg0KK+OCpuOCqOODoOODqSzjg47jg5zjg6sNCivjgqvjg5/jg6Qs44Kx44Oz44K4DQor44K544K644KtLOOCv+OCseOCtw0KK+OCouODs+ODieOCpizjgr/jgqvjg4/jg6sNCivjg4jjg6jjgqTjgrrjg58s44OI44K344KqDQor44Kv44Ov44OKLOODjuODquOCsw0KK+ODi+OCpOODnyzjgqvjg4TjgrcNCivjg5/jgqbjg6ks44Kq44K144OgDQor44OO44Og44OpLOOCouOCreODqQ0KK+OCquOCq+ODgCzjgrjjg6Xjg7MNCivjgqLjgrXjg4zjg54s44Kr44K644OS44OtDQor44K144K144KqLOODkuODh+ODpuOCrQ0KK+OCpOODiuOCrOOCrSzjg57jgrXjg4gNCivjgrnjgqzjg6/jg6ks44K144OI44K3DQor44K344On44Km44K4LOOCv+OCseOCteODgA0KK+OCv+OCrOODryzjg5/jg47jg6sNCivjgr3jgqws44OO44OW44OI44OiDQor44K344On44Km44OvLOOCreODqOODnw0KK+ODnuODhOOCq+ODryzjg5Ljg63jg6bjgq0NCivjgrfjg6Ljg6Djg6ks44Om44Km44K4DQor44Ov44K/44OK44OZLOODiuOCquODpuOCrQ0KK+OCs+ODkOODpOOCtyzjgrfjg7PjgrgNCivjgqTjgqTjg4As44Kz44Km44Kk44OBDQor44OV44Kv44Oi44OILOOCseODs+OCpOODgQ0KK+ODoOODqeODpOODnizjg5Ljg63jgq0NCivjg5vjg6os44Oe44K144Ki44KtDQor44Ok44Oe44OOLOODkuODh+OCqg0KK+ODi+OCt+ODr+OCrSzjg6jjgqbjgrgNCivjg57jg4Tjgqos44Oe44K144OKDQor44Kq44Kr44Oi44OILOODnuOCs+ODiA0KK+OCquOCquOCteOCrSzjgrHjg7PjgqTjg4ENCivjgqbjg6Hjg6Ljg4gs44OK44Kq44OV44OfDQor44Kq44Kr44Og44OpLOOCouOCv+ODqw0KK+OCs+OCpOOCsSzjgrPjgqbjgrvjgqQNCivjgqrjgqrjgr/jg4ss44Oe44K144Ki44KtDQor44Kr44K/44Kq44KrLOODnuOCteOCrQ0KK+OCquOCq+ODgCzjgrfjg4Hjg63jgqYNCivjg5Xjgq/jgrfjg54s44Oo44K344KqDQor44Ko44OA44OK44KrLOODpOOCueODjuODqg0KK+OCueOCuuOCrSzjgrfjgrLjg6sNCivjgqTjg4Hjgqvjg68s44K744Kk44Kk44OBDQor44Kv44Ot44Kr44OvLOOCreODqOOCtw0KK+OCteODiOOCpizjgq3jg6jjg5LjgrUNCivjgqrjgqrjgrXjg68s44Kr44K644OS44KzDQor44Oi44OB44K644KtLOOCueOCqOODkuODrQ0KK+ODpOODnuOCt+OCvyzjgrHjgqTjgqTjg4Hjg63jgqYNCivjgqTjg4Hjgqvjg68s44K/44Kr44K3DQor44OV44Kr44K244OvLOOCq+OCuuODmw0KK+OCr+ODnOOCvyzjg47jg5bjgqoNCivjg4vjgrfjg6Djg6ks44Kz44Km44K4DQor44ON44Ku44K3LOODkuOCteODpuOCrQ0KK+OCs+ODs+ODiSzjgrHjg7PjgrgNCivjg5Xjg6vjg6Qs44Of44OE44KuDQor44Kz44OQ44Ok44K3LOOCv+ODhOOCqg0KK+OCv+ODoOODqSzjg5Ljg63jg5LjgrMNCivjg5/jg4Tjg4/jgrcs44OA44Kk44OP44OB44Ot44KmDQor44Kv44Oe44K244OvLOOCq+ODhOODnw0KK+ODpOODnuODgCzjg6jjgrfjgqoNCivjg5Ljg63jg4Qs44Kr44K644Of44OEDQor44Kr44ON44OALOODpuOCv+OCqw0KK+OCouOCvSzjg6bjgq3jgqoNCivjgqjjg5Pjg4/jg6ks44Kt44Kk44OBDQor44Ok44K544KkLOOCr+ODi+OCqg0KK+OCueODieOCpizjg5Ljg63jgrMNCivjg6Tjg4/jgr8s44Oe44K144OO44OqDQor44K144Kr44KkLOODiOODouODkuODrQ0KK+OCteOCrCzjg6jjgrfjgqoNCivjg6Tjg57jgrbjgq0s44Ko44Of44KzDQor44OK44Kr44Og44OpLOODqOOCpuOCsw0KK+OCpOOCtuODryzjg5Ljg63jg4HjgqsNCivjgqLjg6njgqQs44Kx44Oz44Kk44OBDQor44Km44OW44Kr44K/LOOCteODgOODnw0KK+ODr+OCv+ODjOOCrSzjgr/jg4Djg6bjgq0NCivjg5Ljgrfjgr8s44OO44Oc44OrDQor44Kr44OI44KmLOODpuOCpuOCsw0KK+ODpOODnuODjSzjg6jjgrfjg4gNCivjg6Tjg57jgrfjgr8s44OS44Ot44K3DQor44OO44Og44OpLOODqOOCt+ODreOCpg0KK+ODpOODiuOCpCzjg57jgrXjg6bjgq0NCivjg6Djg6njgqvjg58s44Oe44K144Of44OBDQor44Ki44Kq44KtLOOCouOCreODqQ0KK+ODpOOCt+ODrSzjgrnjgrnjg6ANCivjgqLjgrXjg54s44Oe44K144OS44OtDQor44Kq44Kv44OALOODleODn+OCqg0KK+OCpOOCt+ODkOOCtyzjg6bjgqbjgrgNCivjg5/jg4rjg5/jg4cs44OS44OH44Ki44KtDQor44Kk44OM44K644KrLOOCs+OCpuODmOOCpA0KK+ODiOOCreODryzjg6jjgrfjg4/jg6sNCivjg5/jgqbjg6ks44Ok44K544OO44OWDQor44Oe44OW44OBLOODiOOCt+ODj+ODqw0KK+OCquODkOODqSzjg5Ljg63jg6bjgq0NCivjg57jg4Tjgq0s44OS44Ot44K3DQor44Ko44Kw44OBLOOCseODs+OCpOODgQ0KK+OCquOCquODnyzjgr/jgrHjgrcNCivjg6/jgr/jg4rjg5ks44K/44Kx44K3DQor44Ki44Op44Kr44OvLOOCt+ODs+OCuA0KK+OCueOCrOODjizjgqLjgq3jg6kNCivjg6TjgrnjgqQs44Kz44Km44OY44KkDQor44Of44Ok44Oi44OILOODkuODreODpOOCuQ0KK+ODleOCuOOCruODryzjgrPjgqbjgqTjg4ENCivjgq3jgr/jgqzjg68s44Of44Kt44KqDQor44K/44OL44Kw44OBLOODn+ODhOODqw0KK+OCs+OCuOODnizjg6jjgrfjgqLjgq0NCivjgqLjg57jgqvjg68s44Om44K/44KrDQor44Kq44Kq44OM44KtLOODpuOCv+OCqw0KK+OCv+ODiuODmSzjgrPjgqbjgrgNCivjg57jg6vjg4/jgrcs44Kk44K144KqDQor44Ok44OJ44OkLOOCuOODpeODs+OCpOODgQ0KK+OCquOCquOCrOOCryzjg6jjgrfjg5Ljg60NCivjgrXjgqvjgr8s44Kz44Km44OY44KkDQor44OP44OpLOODkuODh+ODnw0KK+OCv+OCq+OCrizjg5Ljg4fjgqoNCivjgqLjgqTjg4/jg6ks44Ki44Kt44OpDQor44Kq44Kq44K/LOODiOOCquODqw0KK+OCouOCreODpOODnizjg6jjgrfjg5Ljg60NCivjgrfjg5/jgros44K/44Kr44KqDQor44Kz44OQ44Ok44K3LOOCquOCteODleODnw0KK+ODj+OCv+ODouODiCzjgrHjg7PjgrgNCivjgqbjgrnjg4As44K/44Kr44OO44OWDQor44K/44Kr44OP44K3LOOCq+OCuuOCqg0KK+ODiuOCq+OCrOODryzjg4bjg4TjgqoNCivjg57jg4Tjg5Djg6ks44OP44Or44KqDQor44Kv44OM44KuLOODpuOCv+OCqw0KK+OCquOCrOODryzjg6jjgrfjgqoNCivjg4Tjgrgs44Kr44K644K/44KrDQor44Kr44Ov44KkLOOCseOCpOOCpOODgeODreOCpg0KK+OCueOCrOODr+ODqSzjgrfjg6XjgqbjgqTjg4ENCivjg6Djg4jjgqYs44Kr44K644KqDQor44Kq44OQ44OpLOODpOOCueODiOOCtw0KK+OCq+ODiOOCpizjgr/jgqvjg6bjgq0NCivjgqvjg5bjg6njgq0s44Om44Kt44KqDQor44Ov44Kr44K/44OZLOODhOODiOODoA0KK+OCquOCrOODryzjgrPjgqbjgrfjg63jgqYNCivjgqTjg6/jgrXjgq0s44OS44Ot44Om44KtDQor44OK44Oq44K/LOOCquOCteODoA0KK+OCouOCreODpOODnizjgr/jgqvjgrcNCivjg5/jg4TjgqQs44Kx44Kk44Kk44OBDQor44Ko44Oz44OJLOODpuOCv+OCqw0KK+ODqOODjeOCvyzjgqLjgq3jgqoNCivjgqLjgqrjgqQs44Kt44Oo44K3DQor44Kq44Kr44Oi44OILOODqOOCt+ODkuOCtQ0KK+OCquOCquODhOOCqyzjgrfjg7PjgqTjg4ENCivjg5Xjgq/jg6Ljg6os44K144Kr44KoDQor44OG44K344OeLOOCq+OCuuODnuOCtQ0KK+ODj+ODnizjg5Ljg4fjgq0NCivjg6jjgrfjg4As44OP44K444OhDQor44Kr44Ov44OZLOODqOOCt+ODj+ODqw0KK+OCv+ODiuOCqyzjg6Tjgrnjg47jg6oNCivjgr/jgqvjg4/jgrcs44Kt44On44Km44Kk44OBDQor44K/44OK44OZLOODleODn+OCouOCrQ0KK+OCouOCvSzjg5Ljg63jgqTjg4ENCivjgr/jgqvjg4As44OS44Ot44K3DQor44Of44Ok44OOLOODiOOCt+OCqg0KK+OCpuOCqOOCuuODnyzjg5Ljg4jjgrcNCivjgqTjg4Hjgqvjg68s44Ok44K544Ki44KtDQor44Ki44K144OvLOODiOODouODleODnw0KK+OCpOODiuODouODiCzjgqvjgrrjgqoNCivjg6Ljg6rjg6Qs44OS44OI44K3DQor44OK44Kr44K/44OLLOOCseODsw0KK+ODn+ODpOODouODiCzjgqTjg4Hjgr7jgqYNCivjg5/jgq/jg4ss44Ko44Kk44Kk44OBDQor44Kt44K/44Og44OpLOOCv+ODgOODnuOCtQ0KK+ODpOOCv+ODmSzjg57jgrXjg5Ljg4cNCivjg4rjgqzjgqvjg68s44Oq44On44Km44Kk44OBDQor44Ok44OKLOOCq+OCuuOCqg0KK+OCteOCr+ODnizjg5/jg4Tjg6sNCivjgqLjg6njgqQs44OI44K344KqDQor44K344Oe44OALOODiuOCquOCsw0KK+ODhuOCuuOCqyzjgrfjg6Xjg7PjgqTjg4ENCivjgqbjgqjjg44s44K344Ol44Oz44Kk44OBDQor44K144Kk44OI44KmLOODkuODreODpuOCrQ0KK+OCquOCquOCr+ODr+ODgCzjg57jg4rjg5YNCivjg6jjgrPjg6Tjg54s44Oo44K344Kq44OfDQor44Ov44K/44OK44OZLOODqOOCpuOCpOODgQ0KK+ODi+OCt+ODoOODqSzjgqLjgq3jg47jg6oNCivjgr/jgqvjg57jg4Qs44Kz44Km44Kk44OBDQor44OL44K344Og44OpLOOCv+ODhOODng0KK+OCpOODgeOCrSzjg5Ljg63jgrcNCivjgqTjg6/jgrfjgr8s44OO44OW44OE44OKDQor44Kq44OOLOODiOOCt+OCqg0KK+ODi+OCt+OCrSzjgr/jg4TjgqoNCivjgrXjg68s44Kr44K644KqDQor44K/44Kr44OfLOOCquOCteODoA0KK+ODpOOCueODleOCryzjgrHjg7PjgrgNCivjgqrjgqrjgr8s44OS44Ot44K3DQor44Kq44Kr44Oi44OILOODkuODreODnuOCtQ0KK+OCteOCq+OCpCzjg6TjgrnjgqoNCivjg5Xjgrjjg6Ljg4gs44OI44Kt44KqDQor44Oe44OE44Oi44OILOOCt+OCsuODjuODqg0KK+OCquOCquODpOODlizjgqvjgrrjg6QNCivjg4vjgrfjg6Djg6ks44K344Ol44Km44Kk44OBDQor44Ob44Oq44Km44OBLOOCseOCpOOCpOODgQ0KK+OCpOOCt+ODouODiCzjgrfjg6XjgqbjgqTjg4ENCivjg57jg4Tjg6Ljg4gs44OK44Oq44KqDQor44K/44Kx44Km44OBLOOCt+ODs+OCpOODgeODreOCpg0KK+ODouODiOODpOODnizjgrPjgqbjgrfjg63jgqYNCivjg6jjgrfjg4rjgqws44Kz44Km44K4DQor44OV44Or44Kr44OvLOODn+ODgeOCqg0KK+OCv+ODi+OCsOODgSzjg6jjgrfjgqoNCivjgr/jgrHjgrPjgrcs44Oe44K144OI44K3DQor44OE44Og44OpLOOCs+OCpuOCu+OCpA0KK+OCquODjizjgrfjgrLjgqoNCivjgqrjgqvjg6Ljg4gs44K144OI44K3DQor44OV44Or44K/LOODnuOCteODkuODrQ0KK+ODi+OCt+ODjizjgr3jgqbjgqTjg4Hjg63jgqYNCivjg5/jgrrjgr/jg4ss44OS44Ot44Om44KtDQor44Kz44Ok44OeLOODkuOCteOCtw0KK+OCreOCr+ODgSzjgrHjg7PjgqTjg4ENCivjgqrjgqrjgrPjgqbjg4Es44Oe44K144Ki44KtDQor44Kr44Ov44K/LOOCv+OCq+OCtw0KK+OCr+ODj+ODqSzjg6jjgrfjg6bjgq0NCivjg5Xjg6vjg4/jgrcs44Kz44Km44K+44KmDQor44K/44Kr44Oo44K3LOODleODn+ODiOODqA0KK+OCq+OCuSzjg47jg5bjg6bjgq0NCivjgqLjg5/jg6Ljg4gs44K544K544OgDQor44Og44ON44OI44KmLOODiOOCt+OCqg0KK+ODnuODhOODouODiCzjgrnjgrnjg6ANCivjgr/jgqvjg4rjgrcs44Oe44K144Ki44KtDQor44Ki44Kt44K/LOODiOOCt+OCqg0KK+OCv+OCq+ODj+OCtyzjg6Tjgrnjg5/jg4ENCivjg4rjgqzjgqQs44K/44Kr44K3DQor44Oo44K344OALOODhOOCq+OCtQ0KK+ODnuODhOODouODiCzjg6TjgrnjgqLjgq0NCivjg4jjgq/jg4As44Of44OB44KqDQor44OS44Op44KkLOODjuOCvuODoA0KK+OCquOCr+OCt+ODnizjgr/jgqvjgrcNCivjg57jgrfjgr8s44K344Ky44KqDQor44Ok44Oe44OALOOCreODn+ODkuODrQ0KK+OCteOCr+ODqeOCpCzjg4jjg6LjgqoNCivjgr/jgq3jgrbjg68s44K144OI44K3DQor44Oe44K544KzLOODpuOCpuOCuA0KK+OCt+ODs+OCq+ODryzjg5Ljg63jgqgNCivjgqrjgqrjgr/jg4ss44K/44OA44OS44OtDQor44Kr44Ov44OOLOODqOOCt+ODn+ODhA0KK+OCouODqeOCq+ODryzjg4bjg4TjgqoNCivjgqLjg4Djg4Es44K/44Kr44Om44KtDQor44Km44OB44OALOOCseODs+OCuA0KK+OCs+ODj+ODqSzjg4jjgrfjg5LjgrMNCivjgqrjgqrjg4/jgrcs44Kr44K644OS44KzDQor44Kr44Oh44Kq44KrLOODqOOCt+OCqg0KK+ODn+ODoOODqSzjg4jjg5/jgqoNCivjgqTjgq0s44Oo44K+DQor44Ki44K344K644KrLOODkuODreOCtw0KK+ODpOODnuODouODiCzjg5Ljg63jg47jg6oNCivjg6jjgrfjg4As44Kq44K144OgDQor44OP44Op44Kq44KrLOOCq+ODhOODpOOCuQ0KK+OCpuODq+ODr+OCtyzjg5Ljg63jgrcNCivjgqrjg7Pjg4As44Kx44Oz44K4DQor44Kk44Oz44OJLOODnuOCteOCqg0KK+OCv+OCseODiuOCqyzjg57jgrXjg4jjgrcNCivjg5XjgrjjgrXjg68s44Oe44Oi44OrDQor44Kq44Kq44Oi44OqLOODnuOCteODpuOCrQ0KK+ODiuOCq+ODoOODqSzjg5Ljg63jgrcNCivjgrfjg6fjgqbjgrgs44Oo44K344OO44OqDQor44Kt44K/44K444OeLOODqOOCt+OCouOCrQ0KK+OCpOODiOOCpizjgqLjgq3jg6kNCivjg5Ljg6njgqos44Kr44K644K/44KrDQor44K544Of44Oi44OILOODjuODluODpA0KK+ODiuOCq+OCv+ODiyzjg5Ljg63jgrcNCivjgqLjg6njgrfjg54s44Om44Kt44KqDQor44Kr44K/44Ok44OeLOODpuOCreODjuODlg0KK+OCpuOCqOODgCzjg57jgrXjg5Ljg60NCivjg5Xjgrjjg6Ljg4gs44OS44Ot44OV44OfDQor44Ok44Oe44OP44K/LOODquODpeOCpuOCuA0KK+OCquOCquOCv+ODiyzjg4Tjg4jjg6ANCivjgqTjgqTjg4zjg54s44Oo44K344OS44OtDQor44OK44Ks44K144OvLOODqOOCt+ODreOCpg0KK+ODpOOCueODgCzjgrfjg6XjgqbjgrgNCivjg5Xjgq/jgrfjg54s44Oq44On44Km44Kk44OBDQor44K144Kr44Kt44OQ44OpLOOCouODpOOCsw0KK+OCq+ODiOOCpizjgr/jgqvjgrcNCivjg6jjgrPjgrbjg68s44OV44Of44K/44KrDQor44Kr44OJ44OOLOOCq+OCuuODnw0KK+ODpOODnuOCquOCqyzjgq3jg6jjgrcNCivjgqvjg5/jgr/jg4ss44OS44Ot44KtDQor44Kr44OI44KmLOOCqOODhOODreOCpg0KK+ODjuODouODiCzjg4jjgrfjgqvjgroNCivjgrnjgq7jg6Ljg4gs44K744Kk44Kk44OBDQor44OV44K444OOLOOCs+OCpuOCuA0KK+OCpOODjuOCpuOCqCzjgrfjg6fjgqbjgrgNCivjg4/jgrss44Oe44K144Kr44OEDQor44Oi44OqLOOCqOODqeODlg0KK+OCq+ODr+ODkOOCvyzjg5Ljg4fjgqoNCivjgqvjg6/jgr7jgqgs44K344On44Km44Kk44OBDQor44OP44K344Oi44OILOODgOOCpOOCt+ODsw0KK+ODkuODreODnuOCtSzjg6Tjgrnjg5Ljg60NCivjgq3jgrfjg6Ljg4gs44Kv44OL44KqDQor44OS44Op44OE44KrLOODn+ODjuODqw0KK+OCpuOCqOODgCzjg6jjgrfjg6bjgq0NCivjgqLjg6njgqQs44OI44K344OS44KzDQor44Kk44Kk44OALOODnuOCteODpuOCrQ0KK+ODkuODreOCt+ODnizjgrfjg6fjgqbjgr7jgqYNCivjgqTjgrXjgqss44Kr44OE44OS44OtDQor44K544K644KtLOODqOOCt+OCqg0KK+OCr+ODqeODouODgSzjgr/jgqvjgqoNCivjgrXjgqTjg4jjgqYs44Oe44K144KqDQor44K544K644KtLOODn+ODhOOCsA0KK+ODleOCq+ODpCzjg4bjg4TjgrgNCivjgrXjgqvjgqQs44OI44K344Ot44KmDQor44Kq44Kq44Ov44OALOODiOOCt+OCqg0KK+OCq+ODoeODpCzjgqvjg4Tjg58NCivjgq/jgrXjgqbjg6ks44OI44K344KqDQor44Ov44OALOOCq+OCuuOCqg0KK+OCtOODiOOCpizjgq3jg6fjgqbjgqTjg4ENCivjg5Ljg6njg5Xjgq8s44Ki44Kt44OpDQor44Oi44Ot44OkLOODkuODh+ODiOOCtw0KK+OCpOOCseODgCzjgrXjg4Djg6bjgq0NCivjg57jgrnjg4As44Oe44K144OP44OrDQor44Of44K644OOLOODiOOCt+OCv+OCqw0KK+ODj+ODpOOCtyzjgq3jg6jjg4jjgrcNCivjgqLjgqrjgq0s44OI44K344OS44KzDQor44Kz44OQ44OqLOODnuOCteODpuOCrQ0KK+ODn+OCteODryzjgrXjg5bjg63jgqYNCivjgr/jgqvjgq4s44OG44OE44KqDQor44Ko44Oz44OJLOOCseODs+OCpOODgQ0KK+OCueOCrOOCteODryzjgrvjgqTjgrgNCivjgqrjg6rjg4/jg6ks44OI44Oo44OfDQor44Oe44OE44OK44KsLOOCv+OCq+ODleODnw0KK+OCq+OCteOCpCzjgq3jg6jjgqLjgq0NCivjgrvjg6Djg6ks44K/44Kr44K3DQor44K144Kv44Op44KkLOOCv+OCq+OCouOCrQ0KK+ODhuODqeOCq+ODiSzjg6jjgrfjg6bjgq0NCivjg5Xjgrjjgr8s44Ok44K544Ki44KtDQor44Kr44Ov44OO44OZLOOCq+OCpOODgQ0KK+OCouOCquODkCzjg57jgrXjg6sNCivjg6Djg6njg6Ljg4gs44Om44Kt44Oo44K3DQor44OE44Oc44Km44OBLOOCv+OCq+OCtw0KK+ODleODq+OCt+ODp+OCpizjg5XjgrjjgqoNCivjgrfjg5Djg6Tjg54s44OV44Of44KqDQor44Ok44Oe44Oi44OILOOCv+OCq+ODkuODrQ0KK+OCpuODgeODgCzjg5Ljg63jg5Xjg58NCivjg57jgqjjgrbjg68s44OI44Of44KqDQor44Kz44Og44OpLOOCouOCreODjuODlg0KK+ODpOODnuOCteOCrSzjg6jjgrfjgrgNCivjgqbjgrfjgq0s44Kr44K644OfDQor44Oe44OB44Ok44OeLOOCt+ODp+OCpuOCuA0KK+ODleOCuOODjOOCrSzjgrnjgrnjg6ANCivjg4rjgqvjg6Djg6ks44Oe44OE44OfDQor44Kv44K544Oi44OILOODhuODq+OCqg0KK+OCueOCuuOCrSzjg6jjgrfjgqoNCivjgqbjgqjjg6Tjg54s44OI44K344Om44KtDQor44Kz44Kk44KxLOODkuODreOCtw0KK+ODj+OCu+OCrOODryzjg5/jg4TjgqLjgq0NCivjg5Xjg6vjgqvjg68s44Ok44K544OS44OtDQor44Ok44Oe44OALOOCouOCreOCqg0KK+ODpuODj+ODqeOCrizjg5/jg4Tjg6jjgrcNCivjgqrjgrfjg54s44OO44Oq44Om44KtDQor44K944ONLOODnuOCteODkuODrQ0KK+ODiOOCpuODnizjgrXjg4Hjg5Ljg60NCivjgr/jgqvjg4/jgrcs44K344K644KqDQor44Kr44Kx44OP44K/LOODnuOCteOCqg0KK+OCpOOCt+OCpCzjgrfjgrLjg6sNCivjgrXjg4jjgqYs44OO44Oq44Om44KtDQor44Og44Op44Ok44OeLOOCseODs+OCuA0KK+ODm+ODquOCsOODgSzjg57jgrPjg4gNCivjg4rjgqvjgrbjg4gs44OS44Ot44K3DQor44K144OI44KmLOODnuOCs+ODiA0KK+OCq+ODjeOCsyzjg6rjg6Xjgqbjgr7jgqYNCivjgqvjgrfjg54s44OI44K344OO44OWDQor44OI44Kw44OBLOODkuODreODoA0KK+OCs+ODn+ODpOODnizjgq3jg5/jgqLjgq3jg6kNCivjg6Tjg57jgqrjgqss44Oo44K344OO44OWDQor44K/44Kr44OP44K3LOOCseOCpOOCpOODgQ0KK+ODouODquOCvyzjgrHjgqTjgqTjg4ENCivjg6jjgrPjgqQs44Oo44K344OO44OWDQor44OS44Op44KkLOOCseOCpOOCpOODgQ0KK+OCt+OCpOODkOOCtyzjg57jgrXjgr/jgrENCivjgqvjg43jgrMs44Oe44K144OV44OfDQor44OK44Kr44ONLOODjuODluODj+ODqw0KK+OCu+OCreOCsOODgSzjg4bjg4TjgqoNCivjg5/jg6Ljg6os44K/44Kr44OS44KzDQor44Kt44Kv44OBLOODnuOCteOCv+OCqw0KK+ODpOODnuODouODiCzjgqvjg4TjgrgNCivjgqLjg6njgqvjg68s44K/44Kr44KqDQor44OI44Oi44Kv44OLLOODnuOCteOCrQ0KK+ODiOODn+OCvyzjg47jg6rjgqvjgroNCivjgr/jgqvjg4/jgrcs44K344Ol44Km44OY44KkDQor44OI44Ks44K3LOODjuODluOCqg0KK+OCq+ODr+ODoOODqSzjg4jjgrfjg5Ljg60NCivjg5Xjgq/jg4rjgqws44Kx44Kk44K4DQor44Oe44Kt44K/LOODiOOCr+ODnw0KK+OCteODjizjg5/jg47jg6sNCivjgrXjg4jjg6Djg6ks44Kx44Kk44K4DQor44K144Kr44OOLOOCuOODpeODs+ODpA0KK+ODhOODgeODj+OCtyzjgrfjgrLjgqLjgq0NCivjgqbjgqjjg44s44Kx44Oz44K+44KmDQor44OK44Kr44Ks44OvLOODkuODh+OCouOCrQ0KK+ODiOOCr+ODiuOCrCzjgrHjg7PjgrgNCivjgqTjg4jjgqYs44Kr44K644KqDQor44OS44K144Oe44OELOODiOODqOODiOOCtw0KK+OCquOCquODhOOCqyzjgqvjg6HjgqoNCivjgqvjg6/jg6Ljg4gs44K344Ky44KtDQor44OO44Og44OpLOODqOOCt+OCpOODgQ0KK+OCq+ODjuOCpizjg6bjgr/jgqsNCivjgqbjgqjjgrXjgqss44Om44Km44K4DQor44OV44K444Ov44OpLOODkuODqeOCqg0KK+OCquOCrOODryzjg57jgrXjg4gNCivjgq/jg6njgr8s44OI44Oi44OV44OfDQor44OP44OK44K944OILOODiOODqOODleODnw0KK+ODi+OCt+OCq+ODryzjgr/jgqvjg6jjgrcNCivjgqjjg5Pjgrks44OS44OH44KqDQor44Ok44K544OO44OqLOODqOOCt+ODj+ODqw0KK+OCteOCq+OCpCzjgr/jgrHjgrcNCivjg57jgqjjg4As44Oo44K344Ki44KtDQor44OV44Kv44OALOOCt+OCsuOCv+OCqw0KK+ODpOODnuODouODiCzjg57jgrXjgrrjg58NCivjgrfjgqrjgr8s44Ok44K544Oe44K1DQor44Og44Op44Kr44OfLOODiOODouODqA0KK+OCpOOCr+ODnyzjgr/jgqvjgrcNCivjg4rjgqvjgq4s44Om44OfDQor44OI44Kv44Oe44OELOOCv+OCq+OCqg0KK+OCv+ODi+OCpCzjg4jjgrfjg6bjgq0NCivjgqrjgqrjg6Tjg54s44Kx44Oz44K4DQor44K/44OOLOOCv+OCq+ODgeODmw0KK+OCquOCquOCvyzjg5Ljg63jg47jg5YNCivjgq/jg57jg44s44Ki44Kt44KqDQor44K144Ov44Kw44OBLOODnuOCteOCr+ODiw0KK+OCouOCteODjizjgqvjgrrjgqoNCivjgrXjgqvjgrDjg4Es44OO44Oq44Om44KtDQor44Ov44K/44OK44OZLOODhOODiOODoA0KK+OCq+ODiOOCpizjgqvjgrrjgqoNCivjg57jgqjjgqvjg68s44K/44Kr44K3DQor44Oe44OE44Oi44OILOOCq+OCuuOCqg0KK+ODnuODhOODouODiCzjg4jjgrfjgqoNCivjg6Tjg57jg4rjgqss44Ko44Kk44K4DQor44Kz44OQ44Ok44K3LOOCs+OCpuOCuA0KK+ODleOCuOOCvyzjgr/jg4TjgqoNCivjg6Tjgq4s44Oe44K144OfDQor44Kk44Ov44KkLOODnuOCteOCv+OCqw0KK+ODleOCr+OCt+ODnizjg5Ljg4fjg58NCivjg5Xjg6vjgqvjg68s44Kz44Km44Kk44OBDQor44Kq44Ks44K/LOODnuOCteODjuODqg0KK+OCueOCuuOCrSzjgr/jg4Djg5LjgrMNCivjgrfjgqvjg54s44K/44Kr44K3DQor44Kt44K344Oi44OILOOCt+ODpeODs+OCpOODgQ0KK+OCs+ODreOCrizjgqvjg4Tjg58NCivjg5Xjgr/jg58s44Kt44Oo44K3DQor44Ok44K344OtLOODiOOCt+OCqg0KK+ODj+ODquOCpOOCsSzjg6jjgrfjg4/jg6sNCivjgrfjg6Djg6ks44Ki44Oq44Oe44K1DQor44OK44Ks44Kv44OpLOOCpOODgeODreOCpg0KK+ODn+ODiuODnyzjgrPjgqbjgrgNCivjg4jjgq/jg4rjgqws44Kt44Oo44K3DQor44K/44OK44KrLOODleOCr+ODoA0KK+ODhuODqeOCteOCrSzjgrfjg63jgqYNCivjgqvjg4jjgqYs44OI44Kq44OrDQor44Of44K644OOLOODqOOCt+OCouOCrQ0KK+OCv+ODouODiCzjg5Ljg4jjgrcNCivjgqbjg4Hjg4As44OS44Ot44Kr44K6DQor44K/44Kx44Kk44OBLOODqOOCt+ODpuOCrQ0KK+ODkuODk+ODjizjg5Ljg63jgrcNCivjgrPjg5Djg6Tjgrcs44Oq44On44Km44OY44KkDQor44Ov44K/44OK44OZLOODkuODreOCv+ODgA0KK+ODleOCq+ODgCzjg57jgrXjg5Ljg60NCivjgqTjgrfjgr/jg4ss44Kr44K644OS44K1DQor44Kk44OHLOODqOOCt+ODpuOCrQ0KK+ODi+OCpOOCteODiCzjg57jgrXjg6bjgq0NCivjgrnjg4rjg4/jg6ks44K344On44Km44K4DQor44K344Of44K6LOODnuOCteOCqg0KK+OCq+ODiOOCpizjg47jg6rjg6bjgq0NCivjg4rjgqTjg4jjgqYs44K444Ol44Oz44K4DQor44Kz44Kk44KxLOODiOOCpuOCueOCsQ0KK+OCreOCv+ODoOODqSzjg4jjg6jjg5LjgrMNCivjgqvjgqzjg68s44OI44K344Om44KtDQor44Kk44Kx44OALOOCv+OCq+OCtw0KK+OCq+ODjuOCpizjgr/jgqvjgrcNCivjgqrjgqvjg6Ljg4gs44K944Km44K4DQor44Kz44OQ44Ok44K3LOOCteODgOODkuODrQ0KK+OCpOOCt+OCpCzjg57jgrXjg5Ljg60NCivjgrXjgqjjgq0s44Oe44K544Om44KtDQor44K144Ov44OALOOCv+OCq+OCtw0KK+OCtOODiOOCpizjg47jg5bjg6bjgq0NCivjgqrjg44s44Oe44K144OS44OtDQor44OV44OK44Kq44KrLOODnuOCteOCouOCrQ0KK+OCt+ODs+ODpCzjg57jgrXjgqvjgroNCivjg5vjg7Pjgrbjg68s44OS44Kr44OrDQor44Ok44Oe44Km44OBLOOCt+OCsuOCuA0KK+OCpOOCt+ODjizjg4Tjg4jjg6ANCivjgqTjgqrjgq8s44OS44OH44OI44K3DQor44Ki44Op44KtLOODqOOCpuOCsw0KK+ODleOCuOODr+OCrSzjg5/jg47jg6sNCivjgqTjg4Hjg6Djg6ks44Oe44K144KtDQor44OP44Ok44K3LOODqOOCt+OCteODgA0KK+ODouODqizjgr/jgq/jgrgNCivjgq3jg6Djg6ks44K344Ky44OrDQor44Om44Kt44OV44KtLOODnuOCteODkuOCtQ0KK+ODj+OCruODouODiCzjgqTjg6/jgqoNCivjg4/jgrfjg6Ljg4gs44OS44OH44KqDQor44Kt44K/44Ok44OeLOODqOOCt+ODhuODqw0KK+ODleOCuOODouODqizjgrHjg7PjgrgNCivjgqrjgq/jg44s44Kq44K144OgDQor44Ok44Oe44OALOODn+ODhOOCqg0KK+OCv+OCtCzjgr/jgqvjgrcNCivjgqLjgrXjgqQs44Oo44K344OS44OtDQor44Oi44Oq44OOLOODkuODreOCtw0KK+ODn+ODiuOCpCzjgrHjgqTjgrMNCivjg6Ljg6rjgrXjg68s44OI44Oo44KzDQor44OK44Oq44K144OvLOODleODn+OCsw0KK+ODouODquODouODiCzjg57jgrXjg6sNCivjgrPjg5Djg6Tjgrcs44Oo44K344OO44OqDQor44K344Oe44OALOODkuODh+OCrQ0KK+OCueOCuuOCrSzjg5/jgrXjgrMNCivjg5Xjgq/jg4As44Kx44KkDQor44Ki44Op44KkLOOCouOCreODjuODlg0KK+OCv+ODi+ODpOODnizjgrfjg6XjgqbjgqTjg4ENCivjgqrjgqvjg6Ljg4gs44Oe44OE44KqDQor44OA44Kk44Oi44OzLOODn+ODjuODqw0KK+ODj+ODpOOCtyzjg6jjgrfjg4rjgqoNCivjgqTjgrfjg4As44OV44Kv44KqDQor44OS44Ot44K144OvLOODqOOCt+ODn+ODgQ0KK+ODqOOCt+OCquOCqyzjg57jgrXjgrrjg58NCivjg57jg4Tjg6Ljg4gs44K344Oz44Kk44OBDQor44OK44Kr44K444OeLOOCteOCq+OCqA0KK+OCreOCvyzjgrXjg4rjgqgNCivjg4vjgrfjg6Djg6ks44K344Ky44Kr44K6DQor44OP44OD44OI44OqLOODkuODh+OCqg0KK+ODpOODnuODouODiCzjgqvjgrrjgqoNCivjgqTjg4jjgqYs44Ki44Kt44OpDQor44Kt44K/44Og44OpLOODnuOCueODnw0KK+OCv+ODiuOCqyzjg4jjg5/jgqoNCivjgqTjgqrjgq0s44OI44Of44Ok44K5DQor44Kr44Oe44K/LOOCs+OCpuOCuA0KK+OCt+ODn+OCuizjg5Ljg63jgrcNCivjg57jgrnjgqrjgqss44OS44OH44KqDQor44K144Ov44OALOOCt+ODp+OCpuOCsw0KK+ODiuOCq+OCpOOCtyzjgr/jgrHjg6bjgq0NCivjg6/jgr/jg4rjg5ks44Oe44K144OS44OtDQor44Oo44K344K244OvLOOCouOCreOCqg0KK+OCteOCteOCquOCqyzjg47jg6rjgqLjgq0NCivjg6Tjg57jgrDjg4Es44OI44K344KqDQor44Kk44Oe44OV44KvLOOCv+ODgOOCtw0KK+OCq+ODn+ODpCzjg4jjg5/jgqgNCivjg6/jgrUs44OS44OH44KqDQor44Kt44Kv44OBLOOCouOCreODkuOCsw0KK+OCpuOCq+OCpCzjg5/jgq3jgqoNCivjgqTjg6/jg54s44K744Kk44Kk44OBDQor44OE44K4LOODluODs+OCuA0KK+OCv+OCseODgCzjgrXjg4Djg4TjgrANCivjgrvjg4jjgqzjg68s44K344Ky44OI44K3DQor44Kz44K344Og44OpLOODnuOCteOCtw0KK+ODr+OCv+ODiuODmSzjgrjjg6Xjg7PjgqTjg4ENCivjgqbjgrXjg58s44Of44OE44OO44OWDQor44Kq44Kr44OALOODiOOCt+ODkuOCsw0KK+ODleOCuOODr+ODqSzjgrfjg6fjgqbjgrgNCivjgqvjg4jjgqYs44Ok44K544Om44KtDQor44Kk44K344OP44OpLOODnuOCteODqw0KK+ODkuODiuOCvyzjgq3jg6fjgqbjg5jjgqQNCivjgqbjgqjjgrnjgq4s44K344Ky44OS44OtDQor44K344OQ44K/LOODjuODluOCq+OCug0KK+OCquOCr+ODgCzjg57jgrXjg6sNCivjgrnjg4rjg6Tjg54s44Oo44K344KqDQor44Kk44Oe44KkLOOCouOCreODkuOCsw0KK+ODiuOCq+ODoOODqSzjg47jg5bjgqoNCivjg4rjgqvjg6Ljg6os44Kz44Km44K4DQor44OV44Kr44K144OvLOODoOODjeODkuOCtQ0KK+ODn+OCuuOCvyzjgrfjg7PjgqTjg4ENCivjgqrjg44s44Kr44K644K3DQor44K144Kk44OI44KmLOODkuODreOCtw0KK+OCt+ODpeODieOCpizjg5/jg47jg6sNCivjg5Xjgq/jgqQs44K/44OE44OS44KzDQor44OO44OALOOCq+ODiuOCqA0KK+OCquOCquODjizjg4/jg6vjgq0NCivjgrPjgqzjg58s44Oo44K344Oe44K1DQor44Of44KtLOODnuOCteODpuOCrQ0KK+OCpOOCseODgCzjg5Xjg5/jgqoNCivjg5Xjgrjjg6Ljg6os44OI44K344OS44KzDQor44K/44Kr44OALOOCq+OCuuOCqg0KK+OCpOOCseODgCzjg47jg5bjgr7jgqYNCivjgqTjg4jjgqYs44OO44OW44K/44KrDQor44Ov44K/44OK44OZLOOCq+OCuuODkuODrQ0KK+OCteODr+ODgCzjg57jgrXjg5Xjg58NCivjg57jgqjjgrjjg54s44Oe44Kz44OIDQor44Kk44OK44Og44OpLOOCueOCueODoA0KK+ODiuOCq+ODoOODqSzjg5Ljg63jgrcNCivjg4rjgqvjgrjjg54s44K344OO44OWDQor44Kk44Ov44OeLOODqOOCt+ODpuOCrQ0KK+ODr+OCq+ODhOOCrSzjg5Ljg4fjgq0NCivjg4/jgrvjgqzjg68s44Oo44K344Ot44KmDQor44Kk44OO44Km44KoLOOCv+OCq+OCtw0KK+OCq+OCteODj+ODqSzjgrPjgqbjgrgNCivjg4vjgrfjg6Tjg54s44Oe44K144OS44OtDQor44K544OJ44KmLOOCuOODpeODs+OCpOODgQ0KK+OCquOCq+ODmSzjg4jjgrfjg5Ljg60NCivjg5Xjgq/jg5As44Kx44Oz44K4DQor44Oe44OE44OK44KsLOODpOOCueOCqg0KK+OCteOCq+OCpCzjg5Ljg63jg5LjgrMNCivjg5Xjgrjjgr8s44Om44Kt44KqDQor44OK44Kr44Ok44OeLOOCv+OCq+ODpOOCuQ0KK+ODqOODjeODgCzjgrHjg7Pjgr7jgqYNCivjgq/jg57jgr8s44Kz44Km44Kk44OBDQor44Kz44Ok44OeLOODkuODreODpuOCrQ0KK+ODqOODjeODpOODnizjgr/jgrHjgrcNCivjg5Xjgrjjgqvjg68s44Kx44Oz44K4DQor44OP44Oq44Ks44OkLOODkuODreOCouOCrQ0KK+ODj+OCu+OCrOODryzjgqvjgrrjg5Ljg4gNCivjg6jjgrfjg4As44K/44OA44K3DQor44Kv44K544OO44KtLOODqOOCt+ODleODnw0KK+OCv+OCq+ODj+OCtyzjgrXjg4HjgrMNCivjg4rjgqzjgr8s44K344Oz44K4DQor44K944OO44Kv44OpLOODkuODreOCtw0KK+ODnuOCueODouODiCzjg6jjgrfjgqoNCivjgqrjgq7jg4/jg6ks44OS44Ot44K3DQor44Oo44K344OALOODnuODiuODlg0KK+OCv+ODiuOCqyzjg57jgrXjg5LjgrMNCivjgqjjg4As44K744Kk44Kk44OBDQor44OK44KrLOOCv+ODouODhA0KK+OCpOOCpOOCuuOCqyzjg47jg5zjg6sNCivjg4bjg6njg4vjgrcs44Oe44K144OO44OWDQor44OV44Kv44KkLOOCu+OCpOOCuA0KK+ODh+ODoOODqSzjgqvjgrrjg5LjgrMNCivjgrXjgqjjgq0s44K344Ky44OP44OrDQor44Km44OB44OALOODkuODh+ODjuODqg0KK+OCt+OCpOODiizjg47jg5bjgqoNCivjg5Xjg6vjg6Qs44Oo44K344OP44OrDQor44OK44Ks44Kv44OcLOOCquOCteODoA0KK+ODhuODqeOCpuODgSzjg5Ljg4fjgqLjgq0NCivjgqrjgqrjgr/jgqss44Oe44K144Ki44KtDQor44OV44K444Oo44K3LOODiOOCquODqw0KK+OCteOCpOODiOOCpizjg57jgrXjgqoNCivjgq/jg63jgrXjg68s44OV44K144KoDQor44Kk44K344Kr44OvLOOCseODs+OCveOCpg0KK+ODqOOCt+ODjizjgr/jgqvjgrcNCivjgrPjg5/jg6Qs44Kr44K644Oo44K3DQor44Ok44Oe44Ks44K/LOODiOOCt+OCqg0KK+ODhOODpCzjgqvjgqrjg6sNCivjg4vjgrfjg44s44OO44Oq44Om44KtDQor44Km44OB44OALOODkuOCteOCqg0KK+ODr+OCv+ODiuODmSzjgqvjgrrjg5/jg4ENCivjg6Ljg6rjgr8s44OO44Oc44OrDQor44Kz44K344OALOOCs+OCpuOCvuOCpg0KK+ODkuODreOCuyzjg6rjg6fjgqbjg5jjgqQNCivjg6jjgrfjg6Djg6ks44Kr44OE44OI44K3DQor44Of44Km44OpLOODqOOCt+OCq+OCug0KK+OCs+OCpOOCuuODnyzjg5Ljg4fjg47jg5YNCivjg4bjg6njgqos44Of44OE44OS44OtDQor44K744Ks44OvLOODn+ODgeOCqg0KK+OCq+OCpOOCuuOCqyzjgqLjgq3jg6kNCivjg5Xjgq/jg57jgrks44K544K644OoDQor44Kk44OI44Km44K6LOOCuA0KK+OCu+OCreOCrOODnyzjg5Ljg63jgrcNCivjg5Xjgrgs44Kk44K644OfDQor44Oo44K344Og44OpLOOCreODqOOCuA0KK+ODleODq+ODouODiCzjg6jjgrfjg6bjgq0NCivjgr/jgq3jgr8s44Oe44OK44OWDQor44Kq44Kr44OALOODkuODreODkuOCtQ0KK+OCv+OCq+ODj+OCtyzjgqLjgq3jg6kNCivjgr/jg4vjg5Xjgrgs44Oe44K144Ki44KtDQor44Kk44Oe44Kq44KrLOOCq+OCuuODkuODrQ0KK+ODr+OCv+ODiuODmSzjgrHjg7PjgrgNCivjg6Tjg57jg6Ljg4gs44Kr44Kq44OrDQor44Oo44OALOODpOOCueOCqg0KK+ODleOCq+ODpOODnizjg5Ljg63jgrcNCivjg6Tjg57jgrDjg4Es44OS44K144KqDQor44K144OOLOOCreODnw0KK+OCv+OCq+ODj+OCtyzjg6bjg6oNCivjg57jg4Tjg6Ljg4gs44Kt44Oo44K3DQor44Ok44OOLOODkuOCteOCtw0KK+OCouOCreODkCzjgqvjgrrjg6jjgrcNCivjg5/jg4njg6rjgqvjg68s44OS44Ot44Of44OEDQor44K/44Kr44K3LOODn+ODqOOCsw0KK+ODleODq+OCq+ODryzjg5/jg47jg6sNCivjg5Ljgq3jgr8s44Ko44Kk44K4DQor44Kq44K244KtLOODqOOCt+OCouOCrQ0KK+OCouOCquOCrSzjgrfjgrLjgqrjg58NCivjgrXjgqjjgrDjgrUs44Oe44K144OS44OtDQor44OV44K444Oi44OILOODkuODreOCtw0KK+OCs+ODi+OCtyzjg6bjgqbjgrgNCivjgqrjgqrjg4vjgrcs44K344Ol44Oz44K544KxDQor44OS44Kw44OBLOODleOCuOOCrQ0KK+OCr+ODnOOCvyzjgrjjg6Xjg7PjgqTjg4ENCivjg6Tjg57jgrDjg4Es44K344Ot44KmDQor44OV44Or44Kr44OvLOODnuOCteODiA0KK+ODiuODquOCvyzjgqTjg4Hjg63jgqYNCivjgr/jg4rjgqss44OV44K144Kk44OBDQor44OP44K/44Kx44Ok44OeLOODhuODhOOCqg0KK+ODn+ODpOODouODiCzjg5/jgrXjgqoNCivjg47jgrbjgq0s44Ok44K544OP44OrDQor44OP44K744Ks44OvLOODgeODp+OCpuOCt+ODreOCpg0KK+OCt+ODqeOCq+ODryzjg6jjgrfjg5LjgrMNCivjgqLjgqTjg4As44Kz44Km44OY44KkDQor44OS44Ot44Kr44OvLOODkuODreOCtw0KK+ODquODpeOCpuOCq+ODryzjg4Tjg6jjg6ANCivjg6Tjg57jgrDjg4Es44Oe44K544OfDQor44Kv44Oq44K144KtLOODkuODh+OCqg0KK+ODouODquODouODiCzjg6jjgrfjg5/jg4ENCivjgq/jg5zjgr8s44Oe44K144Ki44KtDQor44Kv44Oe44K144KzLOODouODquOCt+OCsg0KK+OCouODgOODgSzjgrHjg7Pjgr8NCivjgrPjg7Pjg44s44OS44Ot44Ki44KtDQor44Ok44Oe44Oi44OILOOCqOODhOOCsw0KK+OCpOODr+OCpCzjg6rjg6fjgqbjgr8NCivjgqrjgqrjg4/jg6ks44OS44OH44KqDQor44Kk44K344OP44OpLOODiOODouODjuODqg0KK+OCouOCquOCrSzjgr/jgrHjgrcNCivjg6Ljg6os44Oo44Oq44KzDQor44Ot44OD44Od44Oz44KuLOODnuOCteOCouOCrQ0KK+OCq+ODiOOCpizjgrPjgqbjgqTjg4ENCivjgrXjg4jjgqYs44Ok44K544KqDQor44Oe44Ko44K+44OOLOOCqOOCpOOCuOODreOCpg0KK+ODleOCuOODouODiCzjg5Ljg4fjg47jg5YNCivjgr/jg4vjg6Djg6ks44OS44Ot44K3DQor44OK44Kr44OL44K3LOODpuOCv+OCqw0KK+OCv+OCq+ODj+OCtyzjgrfjg7PjgrgNCivjg4rjgqvjgqQs44Kr44K644OfDQor44K/44Kr44OP44K3LOOCv+OCseODleODnw0KK+OCt+ODoizjg6bjgqbjgqTjg4Hjg60NCivjgrfjg5Djgr8s44Kk44K144OgDQor44OV44Or44Of44OBLOODqOOCt+OCqg0KK+OCv+OCseODgCzjgqLjgq3jg6kNCivjg5Xjgrjjgr8s44OS44Ot44K3DQor44Kr44Ku44Ok44OeLOODhuODhOODpA0KK+ODr+ODgSzjg57jgrXjg47jg6oNCivjg5Xjgrjjgr8s44OS44OI44K3DQor44Kz44Oz44OJLOOCt+OCsuODjuODqg0KK+ODnuODhOODouODiCzjgr/jgqvjgrcNCivjg5Xjgq/jgqQs44OS44OH44Om44KtDQor44K544Ks44Ov44OpLOOCs+OCpuOCuOODp+OCpg0KK+ODleOCq+ODpOODnizjgqLjgq3jg6kNCivjgqTjg57jgqQs44Oe44K144K/44KrDQor44K144OI44KmLOOCr+ODi+ODkuOCsw0KK+OCq+ODiuOCtuODryzjgqvjgrrjgqoNCivjg5Xjg4Hjgrbjgq0s44Kq44K144OgDQor44OE44Kr44OALOOCt+ODp+OCpuOCpOODgQ0KK+OCpOOCt+OCtuOCrSzjgr/jgqvjg6bjgq0NCivjg4jjgq/jg6ks44Of44Kt44KqDQor44OI44OO44K144KtLOODouODiOODqOOCtw0KK+OCv+OCq+OCrSzjg5Ljg4fjgqoNCivjg5Xjgrjjgr8s44OS44Ot44Om44KtDQor44OK44Ks44K7LOODrOOCpOOCsw0KK+OCv+ODiuOCqyzjg5Ljg63jg6bjgq0NCivjgr/jg4Tjg58s44Oo44K344Ki44KtDQor44Ok44Oe44Oi44OILOODpuOCpuOCpOODgQ0KK+ODleOCr+OCvyzjgr/jgqvjg4rjgqoNCivjgq/jg6/jg4/jg6ks44Oo44K344Om44KtDQor44OV44K444K/LOOCqOOCpOOCvuOCpg0KK+OCpOODiuOCr+ODnizjg4jjgrfjgrMNCivjg5/jgrXjgqos44Kz44Km44K+44KmDQor44OK44Kr44K344K/LOODnuOCs+ODiA0KK+OCquOCr+ODpOODnizjg6bjgqbjgrgNCivjg4rjgqzjgqgs44Kr44K644OS44OtDQor44OK44Ks44KkLOOCt+ODp+OCpuOCtA0KK+ODpOODnuOCtuOCrSzjg57jgrXjg6sNCivjgrfjg6njgqTjgrcs44K344On44Km44Kk44OBDQor44Km44Ko44OALOOCt+OCsuODqw0KK+OCquOCuOODnizjg5Ljg63jgqLjgq0NCivjg5Ljg63jgrss44Oe44K144OO44OWDQor44OS44Op44OOLOODnuOCteODqw0KK+ODleODq+OCvyzjgr/jgqvjgqoNCivjgrPjg4zjg54s44Kr44Kq44OrDQor44K/44Kr44Ok44OeLOODiOODouODj+ODqw0KK+OCouOCteOCt+OCvyzjg57jgrXjg5Xjg58NCivjg6jjg4Tjg4/jgrcs44OS44Ot44K3DQor44OE44OB44OkLOOCv+OCq+ODnw0KK+OCquOCquODi+OCtyzjgqTjgrXjgqoNCivjg6Tjg57jgrDjg4Es44K344On44Km44K4DQor44K344K644OOLOOCpOOCteODoA0KK+ODj+OCt+ODmSzjg6rjg6fjgqbjgqTjg4ENCivjg5vjg6rjgqQs44Of44Oo44K3DQor44OK44Ks44Kq44KrLOODjuODquOCsw0KK+OCr+ODquOCvyzjgrfjg6fjgqbjg5jjgqQNCivjgq3jg5As44K144OK44KoDQor44Kk44OALOODnuODgeOCsw0KK+ODleOCr+ODiOODnyzjgqvjgrrjg58NCivjgrPjg5Djg6Tjgrcs44OO44Oc44OrDQor44Kk44OqLOOCseODs+OCpOODgQ0KK+OCteOCvyzjg57jgrnjgrANCivjg57jg6vjg6Tjg54s44OS44Ot44OV44OfDQor44Ki44Kq44Ok44OeLOOCt+OCsuODqw0KK+OCt+ODs+ODieOCpizjg6TjgrnjgqoNCivjgqLjgqTjgqvjg68s44Kt44On44Km44K4DQor44K144Kr44OO44Km44KoLOOCseODs+OCpOODgQ0KK+ODleOCuOODnuOCrSzjgr/jg4DjgqLjgq0NCivjgqvjg6/jg4/jg6ks44Oe44Kz44OIDQor44Og44Op44K/LOODkuODh+ODpuOCrQ0KK+ODqOOCt+ODgCzjg6bjgqbjgqTjg4ENCivjgqTjgr/jgq/jg6ks44OG44OE44OkDQor44K444K+44OQ44OpLOODqOOCpg0KK+OCv+ODiuOCqyzjg4jjgrfjgqoNCivjgqvjgrjjg6/jg6ks44K344Ol44Km44Kk44OBDQor44K/44OK44KrLOOCquOCteODoA0KK+ODj+OCueOCpOOCsSzjgrfjg6XjgqbjgrgNCivjg4jjgqbjg54s44Om44Of44KzDQor44Kr44Ov44Kt44K/LOOCouOCreODqQ0KK+ODnuODhOODouODiCzjg6Tjgrnjg5LjgrMNCivjg4/jgrvjgqzjg68s44Of44OE44KqDQor44OV44K444KkLOODiOOCquODqw0KK+ODjuODoOODqSzjg5/jg4Hjgr/jgqsNCivjg6jjgqbjgrPjgr8s44OS44OH44KqDQor44Kr44OK44K244OvLOOCs+OCpuOCvuOCpg0KK+ODnuOCueODpOODnizjgrfjg7PjgqTjg4ENCivjgqvjg47jgqYs44OS44Ot44K3DQor44OV44OK44Ok44OeLOOCqOODhOOCqg0KK+ODpOODnuOCt+OCvyzjgq3jg4Hjg5LjgrMNCivjgrXjg4jjgqYs44Oe44K144Kr44K6DQor44Kr44Oh44Oi44OILOODqOOCt+ODleODnw0KK+OCpOODiOOCpizjgq3jg6jjgrcNCivjgqrjgq/jg6Djg6ks44K344Ky44KqDQor44OV44K444KkLOODhuODq+OCqg0KK+OCreODj+ODqSzjgr/jgqvjgrcNCivjg47jg6Djg6ks44Oq44K144KvDQor44Ki44Kv44K/44Ks44OvLOODhOODiOODoA0KK+OCpOOCt+ODgCzjgq/jg4vjgqoNCivjgqbjg6Hjg4/jg6ks44K344Ky44OrDQor44Kq44Kq44KuLOODiuOCquODpuOCrQ0KK+OCs+ODs+ODiSzjg4/jg6vjgqoNCivjgr/jgrHjg4As44Kx44Kk44KzDQor44Oe44OE44KkLOODleODn+OCqOOCpA0KK+OCq+ODn+OCquOCqyzjg57jgrXjg6sNCivjgqvjg6Ljgrfjgr8s44OS44Ot44OfDQor44Ok44OK44Ku44K144OvLOOCv+OCseODkuODrQ0KK+OCv+OCseOCpuODgSzjg57jg6Ljg6sNCivjg6Ljg7Pjg54s44Of44OO44OrDQor44Kk44Kk44OALOOCq+ODiuOCqA0KK+ODj+OCu+OCrOODryzjg4jjgrfjgrgNCivjg4rjgqzjg5vjg6os44OS44Ot44K3DQor44Oi44Oq44Kq44KrLOOCv+ODgOODjuODqg0KK+ODi+OCt+ODpOODnizjgqLjgq3jgqoNCivjg6Tjg57jg6Ljg4gs44Ok44K544KqDQor44Kk44K344OALOODiOOCt+OCqg0KK+ODleODq+ODiSzjg57jgrXjgqoNCivjgqvjg7Pjg4As44Oe44K144Ki44KtDQor44Kk44K344OALOOCt+OCsuODqw0KK+OCteOCpOODiOOCpizjgr/jgqvjg5Ljg60NCivjgq3jg6Djg6ks44OS44OI44K3DQor44Kk44Ov44OfLOODpOOCueODjuODlg0KK+ODouODqizjgrfjg6XjgqbjgqTjg4ENCivjgr/jgqvjg6Tjg54s44K344On44Km44K+44KmDQor44OP44Ok44K344Kw44OBLOOCouOCreODkuOCsw0KK+OCteOCpOODiOOCpizjg6TjgrnjgqoNCivjgrfjg5Djgr/jgq0s44Kv44OL44Ki44KtDQor44Kq44Ku44OP44OpLOODqOOCt+ODj+ODqw0KK+OCq+ODiOOCpizjgqTjgrXjg58NCivjg5Xjgq/jg4gs44OK44Kq44OkDQor44Kq44OALOODkuODh+OCouOCrQ0KK+OCteODiOOCpizjg57jgrXjg5Ljg60NCivjg4rjgqvjg6Djg6ks44Om44K/44KrDQor44OP44Oe44OALOOCv+OCq+ODkuODrQ0KK+OCquOCrOOCteODr+ODqSzjg4bjg4Tjg6QNCivjg6Djg6njgq0s44Kr44K644OS44KzDQor44Kq44Kq44OP44K3LOOCouOCreODkuODiA0KK+OCv+OCq+ODjizjgr/jgqvjgrcNCivjg4rjgqvjgrbjg68s44Kr44K644OI44K3DQor44Of44Ok44K4LOOCouOCreODkuODrQ0KK+OCueOCqOODiuOCrCzjg6TjgrnjgqoNCivjgr/jgr/jgq0s44Ki44Kt44OpDQor44Oo44K344OALOOCpOODr+OCqg0KK+OCouOCquOCrSzjg5Ljg4fjgrcNCivjgrnjgq7jg6Djg6ks44Kr44Kq44OrDQor44Kk44OI44KmLOODnuOCteODiOOCtw0KK+OCv+OCq+ODj+OCtyzjgrfjg7PjgqTjg4ENCivjgrnjgrrjgq0s44Kk44K144OgDQor44Kr44K/44Ok44OeLOODiOOCt+ODkuOCsw0KK+OCteOCpOODiOOCpizjg57jgrXjgrcNCivjgr/jgrjjg54s44OS44Ot44K3DQor44Ki44OZLOODqOOCpuOCpOODgeODreOCpg0KK+ODiuOCq+OCuOODnizjgrfjgrLjgq0NCivjg6Tjg57jgrDjg4Es44Oe44Kz44OIDQor44Ov44Kt44K244KrLOODnuOCteODkuOCsw0KK+OCteOCsyzjgrXjg4Djg4gNCivjgqrjgqrjg4Tjgqss44OI44Oi44OS44OtDQor44OE44Kr44Oi44OILOOCueOCueODoA0KK+OCpOODjuOCpuOCqCzjg5Xjg5/jgqoNCivjg4rjgqzjgqos44OI44Kq44OrDQor44Km44Op44OQLOODnuOCteOCqg0KK+OCs+OCuOODnizjg6Tjgrnjg5Ljg60NCivjgr/jgrHjg4As44Om44Km44K4DQor44Ki44Kq44OOLOOCuOODs+OCpOODgQ0KK+OCpOOCuuOCq+ODryzjg47jg5bjgqoNCivjgq/jg4njgqYs44Kr44K644Ki44KtDQor44OK44Kr44Og44OpLOODiOOCt+ODpuOCrQ0KK+ODnuODhOOCqizjg57jgrXjg5Xjg58NCivjgqTjg4rjgqzjgq0s44K344Oz44Kk44OBDQor44OL44K344Oi44OILOOCt+ODp+OCpuOCpOODgQ0KK+OCpOODjuOCpuOCqCzjg5Ljg4jjgrcNCivjgqrjg47jg4fjg6ks44OG44OE44OkDQor44Kk44K344K244KrLOODiOOCt+ODkuOCsw0KK+ODj+OCruODr+ODqSzjgrHjg7Pjgr7jgqYNCivjg5Xjg6vjgr8s44Oe44K144OrDQor44Km44Ko44K444OeLOODiOODn+OCqg0KK+ODjOODnuOCvyzjgrfjg6XjgqbjgqTjg4ENCivjgqjjg7Pjg4ks44Oe44K144OS44OtDQor44Kr44Ks44Ok44OeLOOCt+ODs+ODpA0KK+ODpuODquODouODiCzjg5Ljg4jjgrcNCivjg5Xjg4Es44K/44OA44KqDQor44OV44K444Kq44KtLOODkuODreODjuODlg0KK+OCteOCpOODiOOCpizjg57jgrXjg4jjgrcNCivjg57jg4Tjg6Ljg4gs44Of44OE44Ki44KtDQor44OS44Ot44K7LOODqOOCt+OCq+ODhA0KK+ODkOODkCzjgrjjg6Xjg7PjgqTjg4Hjg60NCivjgrPjg5Djg6Tjgrcs44OS44Ot44Om44KtDQor44K544K644KtLOODnuOCteODnw0KK+ODiuOCq+ODpOODnizjgqvjgrrjgqoNCivjgq3jgrcs44OS44Ot44K3DQor44Ki44K144OOLOODnuOCteOCq+OCug0KK+OCqOODs+ODiSzjgqLjgq3jgqoNCivjgqTjgrfjg5Djgrcs44OA44Kk44K0DQor44Kr44Kk44OALOODn+ODhOOCqg0KK+OCpOOCseOCuOODnizjg5Ljg4fjgqLjgq0NCivjg4/jg6njg4As44OI44K344KqDQor44OP44Oe44OOLOOCs+ODjuODoA0KK+OCq+ODr+OCpCzjg5/jg4Hjg6sNCivjg6/jg4As44OI44K344Oe44K1DQor44K144OI44KmLOODkuODreOCtw0KK+OCv+ODiuOCqyzjgrvjgqTjgrgNCivjgqLjgq/jg4Qs44Oo44K344OO44OqDQor44Kk44OI44KmLOOCreODqOODnw0KK+OCouODs+ODieOCpizjgqTjg6/jgrgNCivjgqLjgqTjgrbjg68s44OV44OI44K3DQor44Kv44Oc44K/LOOCreODqOOCtw0KK+ODleOCq+OCpuODnyzjgrXjg4jjgrcNCivjgrfjg5/jgros44OS44OI44K3DQor44K/44Kr44OP44K3LOOCteODiOOCtw0KK+ODiuODn+OCrSzjg4bjg4Tjg63jgqYNCivjg47jgrbjg68s44Ok44K544K3DQor44Kz44Kk44K/44OQ44K3LOOCreODqOODkuODrQ0KK+OCv+ODhuOCpOOCtyzjg5Ljg63jg58NCivjgqvjg6/jgqvjg58s44Kr44K644KqDQor44Kz44OQ44Ok44K3LOOCq+OCuuODjuODqg0KK+OCquODjuOCuuOCqyzjg5Ljg4fjgqoNCivjgr/jgrDjg4Es44Of44OE44KwDQor44K/44Kr44OP44K3LOODnuOCteOCouOCrQ0KK+OCteODiOOCpizjg6Tjgrnjg5Ljg60NCivjgq/jg6/jg4/jg6ks44K344Ot44KmDQor44K744OILOOCteODiOOCtw0KK+OCtOOCsSzjg5Ljg4fjgq0NCivjg6jjgrfjg6Djg6ks44Kt44Oo44K3DQor44K/44Kr44Ok44OeLOODjuODluODpuOCrQ0KK+OCteOCteOCrSzjg6bjgq3jgqoNCivjgqvjg47jgqYs44K344Ky44KtDQor44K/44Kr44OP44K3LOOCt+OCsuODj+ODqw0KK+ODiuOCrOOCquOCqyzjg4jjg6Ljg6bjgq0NCivjgrnjgrrjgq0s44OS44OH44KtDQor44Ok44Oe44Kw44OBLOOCouOCreODqQ0KK+ODouODqizjgrXjg4jjg6sNCivjgrnjgrrjgq0s44Kk44OE44KqDQor44Km44Ko44Og44OpLOODnuOCteODiOOCtw0KK+ODpOODluODj+ODqSzjg5/jg4Tjg6jjgrcNCivjgrfjg6njgqTjgrcs44Kr44K644KtDQor44Kt44Kv44K/LOODnuOCteODjuODlg0KK+ODiuOCq+OCpCzjg5/jg4Tjg47jg6oNCivjgq/jg6njg6Ljg4gs44Om44K/44KrDQor44K544Of44Oo44K3LOODkuODh+OCqg0KK+OCv+OCq+OCrizjg5Ljg63jg5LjgrUNCivjgrfjg6fjgqbjgrgs44OO44Oq44KqDQor44Kq44K144OALOODnuOCteODpuOCrQ0KK+OCouOCteODjizjgrXjg4jjgrcNCivjgqTjg6/jgrUs44Kt44Oo44K3DQor44OQ44OQLOODpuOCv+OCqw0KK+ODkuODreOCvyzjgrXjg4jjg6sNCivjg5Xjgrjjg6Ljg4gs44Of44K144KzDQor44K144OOLOODnuOCteODqw0KK+ODouODiOOCrSzjg6Tjgrnjg6bjgq0NCivjgqTjg4jjgqYs44Oe44K144OO44OqDQor44Km44Kx44Ks44OvLOODleODn+OCqg0KK+OCpuODoeODkOODpOOCtyzjgqTjgrXjgqoNCivjgqTjg4rjg4jjg58s44Kr44K644Oo44K3DQor44K/44Kr44Ok44OK44KuLOODnuOCteOCouOCrQ0KK+ODj+ODqSzjgqTjgrXjgqoNCivjg4rjgqvjg4/jg6ks44OW44Oz44Ot44KmDQor44K144Kk44K/44KxLOOCu+OCpOOCuA0KK+OCq+OCt+ODpOODnizjg5Ljg63jgrcNCivjgrXjgqvjgqQs44OI44Oi44Om44KtDQor44Kk44OI44KmLOODjuODquOCq+ODhA0KK+ODiuOCq+ODoOODqSzjg6jjgrfjg47jg5YNCivjgqrjgqrjg47jgq4s44K/44Kx44K3DQor44Kk44Kr44OfLOODpuOCv+OCqw0KK+OCv+OCq+ODj+OCtyzjgrfjg7PjgqTjg4ENCivjgrfjgqTjg4os44OI44Of44KqDQor44K/44Oe44OO44KkLOOCt+ODp+OCpuOCpOODgQ0KK+OCr+ODnCzjg5Ljg4fjgqLjgq0NCivjgq3jg6Djg6ks44K/44Kr44K3DQor44Ob44OD44K/LOODkuODiOOCtw0KK+ODm+OCq+ODqizjgr/jgqvjg6bjgq0NCivjgrXjg4jjgqYs44Ki44Kt44KqDQor44Ob44K344OOLOOCt+ODpeOCpuOCpOODgQ0KK+OCq+ODluODqeOCrizjg4jjgrfjg5Ljg60NCivjgqrjgrXjg4As44OI44K344OV44OfDQor44K544Ko44OS44OtLOOCv+OCq+OCqg0KK+ODoOODqeOCq+ODryzjg6jjgrfjg58NCivjgqTjg6/jgrXjgq0s44Kx44Oz44K4DQor44Ok44Oe44Og44OpLOOCt+ODs+OCuA0KK+ODouODquOCvyzjgr/jg4TjgqoNCivjgqTjgrHjg4As44Oo44K344OO44OqDQor44Ok44Km44OBLOODkuODreOCtw0KK+ODpOODnuOCt+OCvyzjgqvjgrrjg5Ljg4cNCivjg6/jgr/jg4rjg5ks44OS44Ot44K3DQor44Ki44OK44OzLOOCqOODhOOCuA0KK+ODi+OCt+ODjizjgr/jg4Tjg63jgqYNCivjgrPjgrfjg5/jgros44Ok44K544KqDQor44K/44Kr44OP44K3LOOCq+OCuuOCqg0KK+OCqOOCrOODryzjg4jjgrfjgqoNCivjg6Tjg57jgrbjgq0s44K/44OE44OS44OtDQor44Kk44Oe44K844KtLOODqOOCt+ODleODpg0KK+OCueOCuuOCrSzjg5Ljg4fjgq0NCivjg4vjgrfjg4/jg6ks44Om44Km44Kk44OBDQor44Kq44Kr44OZLOOCpOOCteODoA0KK+OCteOCq+OCpCzjg57jgrXjg5Ljg60NCivjgr/jg4As44OI44K344KqDQor44K544Ko44Oo44K3LOODn+OCreOCqg0KK+ODj+ODpOOCtyzjgqTjgr/jg6sNCivjgr/jgqvjg4/jgrcs44Kx44Oz44K4DQor44Kz44Ki44K3LOODj+OCuOODoQ0KK+ODouODquOCq+ODryzjgqjjgqTjgrcNCivjgqvjg4jjgqYs44Ok44K544Kv44OLDQor44Oe44Ko44OQLOODnuOCteODkuODrQ0KK+ODpOODjizjgr/jg4TjgqoNCivjgqTjg4jjgqYs44Oo44K344OP44OrDQor44OK44Kr44KkLOODkuODreOCtw0KK+OCquODgOOCruODqizjgqvjgrrjgqoNCivjgqjjg7Pjg4ks44OG44OE44KqDQor44K/44Kx44KkLOODpOOCueODpuOCrQ0KK+ODiuOCq+OCv+ODiyzjg5/jg4Hjg47jg6oNCivjgqTjg6/jgrXjgq0s44OI44Oi44OS44OtDQor44Kr44Op44Kr44K1LOOCouOCreODkuODrQ0KK+OCouOCteODjizjgrHjg7PjgqTjg4ENCivjgqTjg6/jg5bjg4Es44Oe44K144OrDQor44OP44Oz44OALOODiOOCquODqw0KK+ODhuODqeOCqizjg6jjgrfjg6bjgq0NCivjgr/jgrHjgqQs44Oo44K344Oi44OIDQor44OP44K344Oi44OILOODqOOCt+ODnw0KK+ODn+ODpOOCteOCqyzjg4Tjg4jjg6ANCivjg4bjg6njg4As44Kk44OB44Ot44KmDQor44K144Kr44K/LOODpOOCueODpuOCrQ0KK+ODiuOCrOODpCzjgqvjg4Tjg58NCivjg4/jgrfjg6Ljg4gs44Kx44Oz44K4DQor44Kq44Kq44Kv44OpLOODhOODiOODoA0KK+ODiuOCq+OCteOCrSzjg5/jg4TjgrANCivjgq3jg6rjg4/jg6ks44OI44K344Om44KtDQor44Ki44Op44KkLOOCt+ODpeODs+OCuA0KK+OCpOODr+ODjizjg5Ljg63jg6bjgq0NCivjg4/jg4Pjg4jjg6os44OS44Ot44OO44OqDQor44K544K644KtLOODiOOCquODqw0KK+ODi+OCt+ODj+ODqSzjg5Ljg63jgrcNCivjgrXjgrXjgq0s44K344K644KqDQor44OP44OK44OV44K1LOODhOODiOODoA0KK+ODjuODieODjizjgr/jg4Tjg6bjgq0NCivjgqvjg6/jg5Djgr8s44Kv44OL44KqDQor44K344Of44K6LOODqOOCt+ODiuOCqg0KK+ODiuOCrOOCt+ODnizjg4TjgrDjg5LjgrMNCivjg6Ljg6os44Kr44K644KqDQor44K344Of44K6LOOCt+OCsuOCouOCrQ0KK+ODkuOCteODpOOCuSzjgrHjgqTjgr7jgqYNCivjgqvjgr/jgqbjg6ks44K344Ky44Om44KtDQor44K/44Kx44Og44OpLOOCouOCreODn+ODhA0KK+OCpOODnuODi+OCtyzjg57jgrXjg4gNCivjgqrjgqvjg4As44Ki44Kt44OS44KzDQor44OK44Kr44KoLOOCquOCteODoA0KK+OCt+ODreODjizjgrjjg6Xjg7PjgqTjg4ENCivjg6jjgrPjg6Tjg54s44OO44OW44KqDQor44Kq44Kr44K244OvLOODnuOCteODkuOCsw0KK+OCq+ODnyzjg47jg6rjg4jjgrcNCivjgq/jg57jg5ks44Oe44K144KqDQor44K344Of44K6LOOCv+ODhOODreOCpg0KK+ODpOODiuOCruOCteODryzjgrfjg6fjgqbjgqTjg4ENCivjg57jgq3jg44s44Om44Km44K4DQor44K144OvLOODr+OCv+ODqw0KK+OCpuOCt+ODreODgCzjgq/jg4vjgqoNCivjg57jg4Hjg4As44OE44Kr44K1DQor44Kz44OQ44Ok44K3LOOCv+OCq+OCqg0KK+OCt+OCsuODoOODqSzjg4jjgrfjg4/jg6sNCivjg5LjgrDjg4Es44K/44Kr44K3DQor44Kk44Kk44OM44OeLOODnuOCteODpuOCrQ0KK+OCpOOCuuODnyzjg5/jg47jg6sNCivjg4/jg6Tjgrcs44OS44Ot44OI44K3DQor44Ok44KuLOODgeODj+ODqw0KK+OCquOCquOCq+ODr+ODqSzjgq3jg6jjgr/jgrENCivjg5Xjgq/jgqrjgrgs44Kq44K144OgDQor44Km44Ks44K444OzLOODnuOCteODnw0KK+OCv+ODiuODmSzjgrfjg7MNCivjgrTjgrfjg54s44Oe44K144OS44OHDQor44Ki44Oz44OJ44KmLOODkuODreOCtw0KK+OCquODgOODnizjg6bjgq3jgqoNCivjgqrjgqvjgrbjgq0s44Kk44Ov44KqDQor44Kk44K344Kr44OvLOODleODn+ODpuOCrQ0KK+ODoOODqeODpOODnizjg57jgrXjgrMNCivjg4/jg6TjgrXjgqss44Kx44Kk44K4DQor44OK44Kr44K444OeLOOCv+OCrw0KK+OCv+OCseODouODiCzjg6jjgrfjg58NCivjgq3jgr/jgrjjg54s44K444Ol44Oz44KzDQor44Of44Kr44OfLOODiuODnw0KK+ODr+ODqeOCt+ODiizjgrjjg6Xjg7Pjg6QNCivjgq3jg6Djg6ks44K344OzDQor44Kq44K244OvLOODqOOCt+OCq+OCug0KK+ODpOODnuODoOODqSzjg5Ljg4jjgrcNCivjg6jjgrfjg4As44K344Ky44KtDQor44K/44OB44OQ44OKLOOCv+OCr+ODreOCpg0KK+ODnuODhOODouODiCzjg47jg6rjg47jgrnjgrENCivjg5/jgrfjg54s44OS44OH44Ki44KtDQor44K744KtLOODkuODreOCtw0KK+OCv+OCq+ODj+OCtyzjg6Tjgrnjg5LjgrUNCivjgqrjgqrjgqTjgrEs44Oe44K144K3DQor44OV44K444Oi44OILOOCt+ODpeOCpuOCuA0KK+ODqOOCt+ODoOODqSzjg47jg5bjg5LjgrMNCivjgrPjg5Djg6Tjgrcs44Oh44Kk44K4DQor44Kq44Kq44Ks44OfLOODqOOCt+ODpuOCrQ0KK+OCq+OCpCzjgrfjg6fjgqbjgr/jg63jgqYNCivjgqvjgqjjg4Qs44Oe44K144OP44OrDQor44Oi44Ot44KkLOOCv+OCq+ODkuODrQ0KK+ODn+OCuuODjizjgqTjgq/jgqoNCivjgqrjgqrjg4Tjgqss44Ki44Kt44OS44KzDQor44Kq44Kq44K/LOOCq+OCquODqw0KK+OCu+OCreODjSzjg6rjg6XjgqbjgrgNCivjg5/jg6TjgrDjg4Es44Kr44K644K/44KrDQor44Oo44ON44OALOODiuODm+OCsw0KK+ODm+ODquOCpuODgSzjg57jgrXjgrMNCivjgqjjgrDjg4Es44Kr44OE44OfDQor44Km44K344Ot44Oe44OELOOCq+OCuuODnw0KK+OCpOOCpOODgCzjg6bjgq3jg5Ljg60NCivjg6jjgrfjg4As44Oo44K344OfDQor44OK44Kr44K7LOOCouOCreOCqg0KK+OCueOCuuOCrSzjg6bjgqbjgrMNCivjgqrjgqTjgqvjg68s44Ko44Kk44KzDQor44Kr44Ov44OZLOOCteODhOOCsw0KK+OCv+ODi+OCtuODryzjgr/jgqvjgqoNCivjgqvjg43jgrMs44OP44Or44OoDQor44OV44K444Kq44KrLOOCseOCpOOCsw0KK+ODoOODqeOCquOCqyzjg4Tjg6jjgrcNCivjgqbjg4zjg54s44Kx44Kk44KzDQor44Of44Ok44KxLOODleOCreOCsw0KK+ODiuOCq+ODoOODqSzjg4HjgqLjgq0NCivjgqrjgqrjg68s44Oe44K144OP44OrDQor44ON44Oi44OILOOCpOODgeODreOCpg0KK+ODi+OCt+ODoOODqSzjg4jjg6Ljg5LjgrUNCivjgr/jg4Tjg58s44Kk44Ov44KqDQor44K144OI44KmLOOCouOCreOCqg0KK+OCueODjuODj+ODqSzjg4jjgrfjg5LjgrMNCivjgqLjgrnjg54s44Kt44Oo44Kr44K6DQor44K/44Kr44OQLOODjuODluOCouOCrQ0KK+ODqOOCt+ODoOODqSzjgrXjg4jjgrcNCivjgqLjg5ks44OK44Kq44OIDQor44Kt44Kv44OBLOOCseOCpOOCuA0KK+ODiuOCq+ODoOODqSzjgqvjgrrjg57jgrUNCivjg4/jg6Djg6ks44OE44OI44OgDQor44K544K644KtLOODjuODluODkuODiA0KK+OCq+ODr+ODoOODqSzjg4jjgrfjg6QNCivjg5Ljg5Pjg44s44OS44K144KoDQor44Kt44K/44OALOODnuOCteODkuODrQ0KK+OCteODiOOCpizjg4Tjg43jgqoNCivjgqvjg4jjgqYs44Kr44K644KqDQor44Kk44OI44KmLOODpuOCpuOCuA0KK+ODleOCr+ODiOODnyzjg57jgrXjg6sNCivjg6Djg63jgrrjg58s44Oe44K144OS44OtDQor44Ok44Oe44OK44KrLOOCuOODpeODs+OCpOODgQ0KK+OCquOCq+ODgCzjgrHjg7PjgqTjg4ENCivjg4jjgqbjgrTjgqYs44K/44Kx44K3DQor44OK44Oq44K/LOOCv+OCq+OCtw0KK+OCpOOCseOCtuOCrSzjgr/jgrHjgrcNCivjgqvjg6/jg5Djgr8s44K344Ot44KmDQor44Oe44OE44Kq44KrLOODjuODluOCqg0KK+ODiuOCq+ODgCzjg5Ljg63jgrcNCivjgrXjg4jjgqYs44K344Oz44OkDQor44K/44Kx44K244OvLOODqOOCt+ODkuODrQ0KK+ODpOODiuOCrOODryzjg5Ljg63jgrcNCivjg6Tjg57jgrXjgq0s44OO44Oq44Om44KtDQor44K344Ks44KtLOODjuODquOCouOCrQ0KK+ODpuODnyzjgr/jgrHjgrcNCivjgqrjgrbjgq0s44OE44OI44OgDQor44OK44Ks44K344OeLOOCv+OCpOOCueOCsQ0KK+ODpOODluOCpuODgSzjg5LjgrXjgqoNCivjg5vjgr3jg6Qs44OS44K144K3DQor44OL44K344K244OvLOOCveOCpuOCuA0KK+ODj+ODpOODnyzjg6jjgrfjgqoNCivjg4/jgrvjgqzjg68s44OK44Kq44OfDQor44Kr44Ov44K144KtLOOCq+ODhOODkuOCsw0KK+ODiOODqOOCpOOCuuODnyzjgr/jgqvjg6bjgq0NCivjgqrjgq/jg6Djg6ks44Oe44K144OIDQor44Ok44Oe44OALOODjuODluODkuODrQ0KK+ODi+ODryzjgqjjgqTjg5LjgrMNCivjg4vjgrfjgrbjgq0s44OS44Ot44K3DQor44K544Ku44Oi44OILOOCt+OCsuODqw0KK+OCquOCquOCteODryzjg4jjg6Ljg4rjgqoNCivjg4jjg4As44OI44K344Ki44KtDQor44OK44Kr44OOLOODqOOCt+OCq+ODhA0KK+ODn+OCpuODqSzjg5LjgrXjgrcNCivjg6Tjg57jgrbjgq0s44OK44Kq44Om44KtDQor44K144Kr44Oi44OILOODkuODqeOCrw0KK+ODpOODnuODgCzjg5/jg4HjgrMNCivjgqTjg47jgqbjgqgs44Kr44Oo44KzDQor44Ok44K544KkLOODnuOCteODqA0KK+ODnuODhOODgCzjg6bjg58NCivjgqvjgr/jgqrjgqss44Ki44Kx44OfDQor44K544K644KtLOOCseOCpOOCsw0KK+ODj+ODpOOCtyzjgrHjgqTjgrMNCivjg4/jg57jg57jg4Qs44Ok44K544KzDQor44OP44Oe44OOLOOCqOODqg0KK+ODn+OCuuOCv+ODiyzjg5/jg6jjgrMNCivjgrnjg5/jgr8s44Oi44OI44OB44KrDQor44OP44Ok44K3LOODnuOCreOCsw0KK+ODiOOCr+ODiuOCrCzjg6bjg5/jgrMNCivjgqvjg4jjgqYs44OO44OW44KzDQor44Oe44OE44Km44OpLOODn+OCqOOCsw0KK+ODkuODo+OCr+ODiizjg5Ljg4fjgrMNCivjgqLjg7PjgrbjgqQs44Oo44Km44KzDQor44OV44Kr44Oe44OBLOOCueODn+OCqg0KK+ODn+OCteOCrSzjgr/jgrHjgrcNCivjg6Ljg4Hjgrrjgq0s44OI44Oo44OS44KzDQor44Ki44Kq44Ok44KuLOOCouOCreODqQ0KK+OCv+OCq+ODj+OCtyzjg6bjgq3jg5Ljg4cNCivjgq3jgrss44Ki44Kt44OpDQor44Km44Ko44Oi44OqLOOCt+OCsuODqw0KK+OCouOCuuODnizjg5/jgqjjgrMNCivjgqrjg4Djgq/jg6ks44OS44Ot44Of44OBDQor44K/44OK44KrLOODkuOCteOCqg0KK+ODiOOCpOOCv+ODiyzjgqvjg4Tjg63jgqYNCivjg6Tjg57jgrbjgq0s44Kx44Oz44Kk44OBDQor44OP44K344Oi44OILOOCv+OCq+OCtw0KK+ODnuODhOODn+ODpCzjg57jgrXjg5LjgrMNCivjg5Xjgrfjg58s44OB44Kr44OIDQor44Kt44On44Km44Ok44OeLOODhuODq+OCqg0KK+ODqOOCt+ODgCzjgrHjgqTjgrMNCivjgqbjg6vjgrfjg4ks44Ki44OE44KzDQor44K744KqLOODn+OCqOOCsw0KK+ODn+ODiuOCq+ODryzjg4Tjgq3jgrMNCivjg5Xjgrjjg44s44Kr44K644Om44KtDQor44OS44Ot44K/LOOCv+OCq+OCtw0KK+OCquOCquOCvyzjg6jjgrfjg58NCivjgqrjgqrjgqws44Oe44K144OO44OqDQor44OK44Ks44OP44OeLOOCv+ODhOOCqg0KK+OCuOODs+ODjizjg6Tjgrnjgq0NCivjgqTjg4Hjgqvjg68s44OP44K444OhDQor44OP44Ok44K3LOOCv+ODgOOCtw0KK+ODj+OCv+ODpCzjg4jjgrfjg6bjgq0NCivjg5vjg6rjgrPjgrcs44OO44OW44OS44KzDQor44Kr44OLLOOCouOCreOCqg0KK+ODm+ODs+ODgCzjg6Ljg4jjg5LjgrUNCivjg4Tjg4Hjg6Qs44OI44Of44KqDQor44K/44Oe44OGLOODn+ODhOODqw0KK+ODpuOCq+ODryzjgqjjgqTjgrgNCivjgrXjgqvjgqQs44Om44Km44K4DQor44Of44Ok44K4LOODpuOCpuOCpOODgQ0KK+OCv+ODoOODqSzjg5Ljg4jjgrcNCivjgqvjg6/jgrDjg4Es44OS44OH44Oe44OrDQor44K144OOLOODnuOCteOCq+OCug0KK+ODiuOCq+ODoOODqSzjg6bjgqbjgqTjg4ENCivjgrPjg5Djg6Tjgrcs44Om44Kt44KqDQor44Kk44OALOOCpOODgeODreOCpg0KK+OCu+OCreODouODiCzjg6jjgrfjg5Ljg60NCivjgqvjg6/jg57jgr8s44Kr44K644KqDQor44Kv44OcLOODkuODreOCtw0KK+OCv+OCq+ODjizjg6Tjgrnjg5Ljg60NCivjg6/jgr/jg4rjg5ks44Ok44Oo44KkDQor44Kk44Kr44Or44KuLOODn+ODjuODqw0KK+OCteODiOOCpizjgr/jg4DjgrcNCivjg5Ljg4Djgqss44Oo44K344OS44KzDQor44Oo44K344KkLOOCs+OCpuOCvuOCpg0KK+OCt+ODnuODoOODqSzjgqjjgqTjg60NCivjgqrjg5Ms44OI44K344KqDQor44OK44Kr44K444OeLOODiOOCr+ODjuODlg0KK+ODm+OCt+ODjizjg47jg5zjg6sNCivjgqvjg6/jg6Ljg4gs44K444Ol44Oz44K4DQor44OL44K344OALOODpOOCueODkuODhw0KK+OCt+ODn+OCuizjg57jgrXjgqLjgq0NCivjgr/jg6Djg6ks44K444Ol44OzDQor44OI44Oo44K344OeLOODqOOCt+ODn+ODhA0KK+OCqOODs+ODiSzjgr/jgqvjgqoNCivjgqrjgqzjg68s44OK44OE44Ki44KtDQor44Kt44K/44OP44OpLOODleODn+OCqg0KK+OCquOCsOODiyzjgrHjg7PjgrgNCivjgqrjg5bjg4Es44Kx44Kk44K+44KmDQor44Of44Oo44K3LOOCq+OCuuOCqg0KK+OCpOOCseODjizjgrfjg7PjgqTjg4ENCivjgqbjgqjjg57jg4Qs44Kr44OE44Ki44KtDQor44OV44Kv44K244OILOODquODpeOCpuOCpOODgQ0KK+OCouOCquOCrSzjgr/jgqvjgrcNCivjgrXjg6Hjgrjjg54s44K144OB44KqDQor44Kt44OJ44OeLOOCseODs+OCuA0KK+OCs+ODgOOCpOODqSzjgq3jgq/jgqoNCivjg5LjgrDjg4Es44K/44OE44KqDQor44Oe44Ko44K344OtLOOCq+OCuuODkuODrQ0KK+OCv+ODiuOCqyzjgrvjgqTjgrgNCivjg4rjgqvjgqzjg68s44Oo44Km44K544KxDQor44Kk44OO44Km44KoLOODpOOCueODkuODhw0KK+ODiOODquOCpizjg57jgrXjgqLjgq0NCivjg57jg6vjg6Tjg54s44OK44Kq44KtDQor44Oe44OE44Km44OpLOOCseODs+OCuA0KK+OCv+ODoeODgeOCqyzjgqvjgqrjg6sNCivjgrXjgrXjgq0s44Kt44On44Km44KzDQor44Kq44Kq44K/44KtLOOCt+ODs+OCueOCsQ0KK+OCquOCrOODryzjg57jgrPjg4gNCivjg57jg4Tjg58s44Oe44K544KoDQor44Ki44Oq44Oe44OELOOCt+OCsuOCqg0KK+OCs+ODqeOCryzjg6bjgqbjgr7jgqYNCivjg5/jg6Tjgrfjgr8s44Of44OO44OrDQor44Kq44K644OBLOODn+ODhOOCqg0KK+OCteOCq+OCreODkOODqSzjgr/jgqvjgrMNCivjgrXjg4jjgqYs44Ki44Kt44OpDQor44OS44Ot44K7LOODiOODouOCsw0KK+ODhOODgeODgCzjg4jjgrfjgqLjgq0NCivjg4/jgrfjg6ks44OB44OoDQor44OV44Ot44Oi44OILOODn+ODjuODqw0KK+OCs+OCteOCqyzjgqLjgq3jg5Ljg60NCivjgr/jgrHjgqTjg4Es44Oo44Km44Kk44OBDQor44OG44Op44OALOODqOOCt+OCq+OCug0KK+OCs+OCpOODhyzjg5Ljg4fjgq0NCivjgrXjgqTjg4jjgqYs44K344On44Km44Kk44OBDQor44Of44Ok44OK44KsLOODjuODquODkuOCsw0KK+ODi+OCt+ODoOODqSzjgrfjg7Pjg6QNCivjgr/jg4rjgqss44Om44Km44K+44KmDQorLOODpuODn+OCsw0KK+ODpuOCr+ODkuODrSzjg6zjgqTjgrMNCivjg6jjgrfjg6/jg6ks44K444Ol44OzDQor44Ki44Kq44KtLOODq+ODn+OCsw0KK+OCv+ODhuOCpOOCtyzjg6bjg6rjgrMNCivjgr/jgrHjg4As44OI44Of44KzDQor44Ok44K544OALOODleOCuOOCsw0KK+OCouOCquOCrSzjg5Ljg4fjg6bjgq0NCivjg6jjgrfjg4As44OK44Kq44KzDQor44Ki44OA44OBLOOCouOCreOCsw0KK+ODjuOCsOODgSzjg6jjgrfjg47jg5YNCivjg6/jgr/jg4rjg5ks44K344Ky44Om44KtDQor44K/44Kx44OI44OfLOOCs+OCpuOCpOODgQ0KK+OCr+ODquODr+OCrSzjg57jgrXjgq0NCivjgq3jgr/jgrrjg6Es44Oi44OI44OS44KzDQor44Kq44K144OALOODiOOCt+OCqg0KK+OCouOCt+OCrOOCpCzjg6jjgrfjgr/jgqsNCivjgrXjgqvjgrfjgr8s44Kt44Oo44K3DQor44OE44OB44OALOOCt+ODpeODs+OCpOODgQ0KK+OCquOCq+ODgCzjg5/jg4HjgqoNCivjgr/jg4rjgqss44OS44OH44OB44KrDQor44Kq44Kq44K/44K044K3LOOCs+OCpuOCvuOCpg0KK+OCr+ODreOCteOCqyzjgqjjgqTjgrgNCivjgrnjgrbjgq0s44Ki44OE44K3DQor44Kr44ON44Of44OELOODkuODreODpuOCrQ0KK+ODnuODiCzjgqvjgrrjg6bjgq0NCivjg4jjg6jjg5Xjgq8s44Oe44K144KqDQor44Ki44Op44KkLOODkuODreOCq+OCug0KK+ODleOCuOOCq+ODryzjg47jg5bjgqLjgq0NCivjg6jjgrPjgqos44K/44Kr44Oo44K3DQor44Ki44Oe44OOLOODj+ODq+OCqg0KK+OCquOCquODjizjgr/jgqvjg5Xjg58NCivjgrnjgrrjgq0s44Ki44Kt44Oo44K3DQor44Kr44OI44KmLOODnuOCteODpuOCrQ0KK+OCteOCpOODiOOCpizjg5/jg4TjgqoNCivjgqrjgqYs44Kr44OE44OfDQor44Of44Ok44K244KtLOOCpOOCteOCqg0KK+OCreODpCzjg5Xjg5/jgr/jg54NCivjg5Xjgrjjgr8s44Kr44K644OS44KzDQor44Og44Kr44KkLOODqOOCpuOCpOODgQ0KK+ODnuODhOODouODiCzjgqvjgqrjg6sNCivjgqvjg6/jgqQs44Om44Kt44KqDQor44Oe44OE44Oi44OILOOCreODqOOCv+OCqw0KK+OCv+OCseOCpuODgSzjg6rjg6fjgqbjgrgNCivjgrPjgrjjg54s44OS44OH44KqDQor44OP44K744Ks44OvLOOCv+ODhOOCqg0KK+OCs+OCrCzjg6TjgrnjgqoNCivjg6Tjg57jg4As44Kz44Km44Kk44OBDQor44Kq44Kq44K/LOODn+ODjuODqw0KK+ODpOODnuODouODiCzjgrfjg7PjgrnjgrENCivjgrXjgq/jg6njg6Ljg4gs44OV44K444OIDQor44Ok44OK44Ku44K144OvLOOCr+ODi+OCqg0KK+ODleOCr+OCpCzjgrPjgqbjgrgNCivjgqvjg4jjgqYs44Kr44K644OfDQor44Kk44Ov44K/LOODpOOCueODpuOCrQ0KK+ODleOCuOODouODiCzjgr/jg4Djg5XjgrUNCivjgq3jg47jgrfjgr8s44Ki44Kt44OS44KzDQor44Ok44Oe44OALOOCuOODreOCpg0KK+OCr+ODqeODnuOCqCzjgrPjgqbjgrgNCivjgq/jg6njgr8s44K/44Kr44K3DQor44Oo44Kz44KkLOODleODn+ODiOOCtw0KK+OCs+ODkOODpOOCtyzjg5Ljg4fjg6QNCivjgqvjg4jjgqYs44Oi44Oq44Oo44K3DQor44Oe44K544KkLOODkuODiOOCtw0KK+OCpuODqeOCvyzjg4bjg6vjgqLjgq0NCivjgr/jgqvjg4/jgrcs44Oe44K144OS44OtDQor44Km44K344K044OhLOODnuOCteOCv+OCqw0KK+ODj+ODqeOCpCzjgrfjg7PjgrgNCivjgqbjg4Djgqzjg68s44OI44K344Ot44KmDQor44K/44Kr44KuLOOCq+OCuuODpuOCrQ0KK+ODn+ODpOOCtuOCrSzjgrXjg4jjg58NCivjg6Tjg57jg6Djg6ks44Oe44K144OS44OtDQor44Ok44Oe44Ku44K3LOODquODpeOCpuOCpOODgQ0KK+OCs+ODnuODhCzjg6jjgrfjgr/jgqsNCivjg4/jg57jgrDjg4Es44Om44KrDQor44Oi44OqLOODkuODreOCq+OCug0KK+ODpOODnuODgCzjg6Tjgrnjg47jg6oNCivjgqvjgqzjg68s44Of44OB44KqDQor44Kt44Kv44OBLOODleODn+OCrQ0KK+OCr+OCuCzjg6TjgrnjgrcNCivjgqTjg4jjgqYs44OS44K144Ki44KtDQor44Kr44Ov44Kw44OBLOODqOOCt+OCq+OCug0KK+OCouODqeOCrSzjgrfjg7PjgrnjgrENCivjgqrjgqvjg5ks44OS44Ot44OfDQor44Kz44Oc44OqLOOCt+ODs+OCpOODgQ0KK+OCquODgSzjgqrjgrXjg6ANCivjg57jg6vjgqos44OP44K444OhDQor44K144OI44KmLOOCt+ODpeODs+OCueOCsQ0KK+OCv+ODiuOCqyzjg5Ljg4fjg47jg6oNCivjg57jg4Tjg6Tjg54s44OI44K344KqDQor44Kq44Kq44OE44KrLOOCr+ODi+OCqg0KK+ODpOODnuODouODiCzjgrHjg7PjgrgNCivjg5Xjgrjjgqos44Of44OE44KoDQor44OO44Og44OpLOODkuOCteOCv+OCqw0KK+ODkuODreOCuyzjg47jg6rjg6jjgrcNCivjgqLjg7PjgrbjgqQs44K344Ky44OO44OqDQor44Kq44Kq44OE44OcLOODn+ODgeODrQ0KK+OCteOCpOODiOOCpizjg6rjg6XjgqbjgrgNCivjgqTjg4jjgqYs44K144OI44K3DQor44Ov44Op44K144OvLOOCreOCr+OCqg0KK+OCouODqeOCq+ODryzjg6Tjgrnjg4rjg6oNCivjgrTjg58s44K444Ol44OzDQor44Ko44Oz44OJLOOCteODgeOCqg0KK+ODqOOCt+ODgCzjg57jgrXjg4/jg6sNCivjgqbjg4Hjg4As44OS44OH44KqDQor44Ki44K144Kk44ONLOODhuODhOODpA0KK+OCquOCt+ODnizjgrfjgrLjgqoNCivjgr/jg4rjgqss44K/44OE44KqDQor44Kq44Kq44KzLOODnuOCteODreOCpg0KK+OCpOOCuuODhCzjg4rjgqrjg6sNCivjg4/jg6Tjgrcs44Oe44K144Om44KtDQor44OV44K444KtLOODiOOCquODqw0KK+OCt+OCquOCq+OCpCzjgqvjgrrjg5LjgrMNCivjg4rjgqzjg5Xjg4Es44Kt44Oo44OE44KwDQor44Oe44OE44Oi44OILOOCv+OCpOOCpOODgQ0KK+OCq+ODiOOCpizjg5Ljg63jgrcNCivjg6/jgr/jg4rjg5ks44Kx44Kk44K4DQor44OP44Oe44Kw44OBLOODquODpeOCpuOCpOODgQ0KK+OCq+ODjeOCsyzjg6bjgr/jgqsNCivjgrXjg4jjgqYs44OI44K344KqDQor44Kq44Kq44KkLOODnuOCteOCrQ0KK+ODj+ODpOOCtyzjgrvjgqTjgrgNCivjgq3jg5/jg4Tjgqss44Oe44K144KqDQor44OV44Kv44OALOODnuODouODqw0KK+ODiuOCq+ODoOODqSzjgr/jg4DjgrcNCivjg6Tjg5Djgrcs44Kx44Oz44K4DQor44Kz44OQ44Ok44K3LOOCv+OCq+ODpuOCrQ0KK+ODiOOCr+ODgCzjg4jjg6LjgqvjgroNCivjgr/jgqvjg4/jgrcs44Kr44OE44OS44OtDQor44Kk44OI44KmLOODn+ODhOOCqg0KK+ODjuOCsOODgSzjg6jjgqbjgqTjg4Hjg63jgqYNCivjgqvjg6/jg4os44OO44Oq44KqDQor44OK44Kr44OOLOODhOODpOOCsw0KK+ODpOODnuODgCzjg57jgrXjgrMNCivjg5Ljg6njg57jg4Qs44K944Km44K/44Ot44KmDQor44Ki44Op44KkLOODiOOCt+ODpuOCrQ0KK+ODqOOCt+ODjizjgqvjgqrjg6oNCivjg4/jg57jg4As44Kr44K644KqDQor44Kq44Kq44K/LOODiOOCt+ODkuOCsw0KK+OCt+ODkOOCvyzjg57jgrnjgqLjgq0NCivjg6/jgqvjg6Tjg54s44Ki44Kt44OS44OtDQor44Ob44K3LOOCreODqOOCtw0KK+ODn+ODryzjg57jgrXjgqoNCivjgr/jg4rjgqss44Om44Km44K4DQor44Kr44OK44OkLOODjuODquODkuOCsw0KK+OCv+OCseODiuOCqyzjgrjjg7MNCivjgrXjg4jjgqYs44OI44K344Om44KtDQor44Of44K644K344OeLOODiOODqOOCpuOCpOODgQ0KK+ODhuODqeODgCzjgrfjgrLjg6sNCivjg6Ljg6rjg6Qs44K/44OA44Om44KtDQor44K544Ku44Ok44OeLOODouODiOODj+ODqw0KK+OCpuODnyzjg4/jg6vjgqoNCivjgq3jgrDjg4Es44Oo44Km44Kk44OB44Ot44KmDQor44Km44Or44Ov44K3LOOCv+OCseOCtw0KK+ODkuODqeODnuODhCzjg5/jg4Hjgqrjgq0NCivjgqTjgrrjg48s44OP44Or44KqDQor44Kk44OI44KmLOODnuOCs+ODiA0KK+OCteODiOOCpizjg57jgrnjgqoNCivjgrfjgrLjg47jg5Ys44Kx44Oz44K4DQor44Oo44K344Oi44OILOOCq+OCuuOCqg0KK+OCt+ODkOOCvyzjg4Tjg6jjgrcNCivjg5Xjg4rjgrPjgrcs44Kk44OB44K+44KmDQor44K544OK44OALOODpOOCueOCuOODreOCpg0KKyzjg6TjgrnjgqoNCivjgq3jgq/jg54s44OK44Kq44OS44KzDQor44K544OILOOCteODiOOCtw0KK+ODi+OCt+OCtuODryzjg5Ljg4fjgqoNCivjgrPjg5Djg6Tjgrcs44Of44OE44KzDQor44Kr44Ov44K044KoLOODnuOCteODkuOCsw0KK+OCpOOCuOODnizjg5Xjg5/jgqoNCivjg4vjgrfjgqos44OS44Ot44K3DQor44OL44K344Ok44OeLOODjuODluODpuOCrQ0KK+OCteOCpOODiOOCpizjg6jjgrfjgqLjgq0NCivjgqvjg4njg6/jgq0s44OS44Ot44OfDQor44OS44Ot44K7LOOCv+OCq+OCqg0KK+OCv+OCsOODgSzjgr/jgqvjg6jjgrcNCivjgr/jgqvjg4As44OI44K344OP44OrDQor44Ov44K/44OK44OZLOOCseODs+OCuA0KK+OCq+ODiOOCpizjgrfjgrLjgqLjgq0NCivjg4rjgqvjg4/jg6ks44Kv44OL44KqDQor44Kk44K344Kv44OcLOODquODpeOCpuOCpOODgQ0KK+ODpOODnuODgCzjg6jjgrfjgqoNCivjg6/jgqvjg57jg4Qs44Kz44Km44K4DQor44Kr44Ov44K344OeLOODkuODreODpuOCrQ0KK+OCq+OCv+ODouODiCzjgrHjg7PjgrgNCivjgr/jgqvjg6Tjg54s44Kt44Of44OS44KzDQor44OE44OB44OALOOCv+ODhOOCtw0KK+OCv+ODgeODkOODiizjg5Ljg4fjgqoNCivjgrPjg5Djg6Tjgrcs44Ki44Kt44OpDQor44OE44OALOODiOOCt+ODpuOCrQ0KK+ODouODquOCq+ODryzjg6bjgq3jgqoNCivjgqrjgq/jg44s44Oo44K344KqDQor44Kk44Oe44KkLOODnuODouODqw0KK+ODoOODqeOCqizjgr/jg4DjgrcNCivjgrfjg6Ljg6Djg6ks44K444Ot44KmDQor44Ko44Oz44OJLOODiOOCt+ODjuODlg0KK+ODm+OCt+OCr+ODnizjg57jgrXjg4/jg6sNCivjgqvjg6/jgrss44K344Oz44K144KvDQor44Oe44OB44OALOODoOODjeOCtw0KK+OCs+ODkOODpOOCtyzjgr/jg4TjgqoNCivjg4/jg4As44OS44Ot44K3DQor44OE44Kv44OALOODnuOCteODj+ODqw0KK+ODi+OCt+OCq+ODryzjgrfjg6fjgqYNCivjg5vjg7Pjg4As44OS44Ot44OfDQor44Ov44K344Kq44KrLOODiOOCt+ODkuODrQ0KK+ODoOODreOCpCzjg6jjgqYNCivjg6Tjgrnjg4As44Oe44K144K3DQor44Oo44K344OALOODkuODreODpuOCrQ0KK+ODm+ODqizjgqLjg4TjgrMNCivjgrPjgqbjg4As44Kz44Km44Ko44KkDQor44Kr44Oe44OALOOCqOOCpOOCuA0KK+OCpuOCqOODoOODqSzjg5Ljg63jg58NCivjg57jg4Tjg5Djg6ks44Kr44K644OkDQor44Of44OK44OI44Kw44OBLOOCt+OCsuODqw0KK+OCr+OCrOODhuODsyzjg6TjgrnjgrcNCivjgqTjg6/jgrss44OO44OW44OS44OtDQor44OP44Ok44K3LOODn+ODhOODkuODrQ0KK+OCpOOCr+ODiuODnyzjgrfjg7PjgrgNCivjgqTjg4jjgqYs44K/44Kr44K3DQor44Kz44Ok44OeLOODkuODreODn+ODgQ0KK+OCquODiOODnuODqyzjg6jjgrfjg5Ljg4gNCivjg4rjgqzjgqQs44Oi44OI44OP44OrDQor44Kk44OI44KmLOODnuOCs+ODiA0KK+OCpOODnuOCpCzjgr/jg4Tjg6sNCivjg57jgrnjg4As44K/44Kr44OS44OtDQor44Kr44Ov44OZLOODquODp+OCpuOCvw0KK+OCteODiOOCpizjgrHjgqTjgrgNCivjgrXjgrMs44Oe44K144OP44OrDQor44Og44Kr44KkLOOCuOODpeODs+OCpOODgQ0KK+OCquOCt+ODnizjgq/jgrnjgr/jgqsNCivjg4Tjg4Hjg6Qs44Kk44K644OfDQor44OP44Ok44K344Kw44OBLOODiOOCt+OCouOCrQ0KK+OCteODiOOCpizjgrvjgqTjgqTjg4ENCivjg6Djg6njgrXjg4gs44Om44Kt44OS44KzDQor44OP44Or44Ok44OeLOODnuOCteOCqg0KK+OCt+OCsuODouODqizjgrfjg6Xjg7PjgqTjg4ENCivjg5Xjg4rjgq0s44OS44K144KqDQor44Ov44OALOOCpOOCr+ODiA0KK+ODhOODnOOCqyzjgrfjg7PjgrnjgrENCivjg4jjg4As44K444Ol44Oz44Kk44OB44OtDQor44Ok44Oe44Og44OpLOOCv+ODgOOCouOCrQ0KK+OCpOOCt+OCsOODrSzjgrfjg7PjgqTjg4ENCivjg5Xjg4rjg4/jgrcs44Om44KtDQor44K544K644KtLOODqOOCt+OCqg0KK+ODqOOCt+ODgCzjgq3jg5/jg5Ljg60NCivjg6/jgr/jg4rjg5ks44OE44Ku44KqDQor44OK44Kr44OL44K3LOOCv+OCq+ODn+ODhA0KK+ODpOODnuODouODiCzjgrjjg6Xjg7PjgrgNCivjgqTjgrfjgqvjg68s44Oe44K144Om44KtDQor44K/44Kx44Km44OBLOOCs+OCpuOCpOODgQ0KK+OCquOCr+ODjizjgrXjg4jjgrcNCivjg4Djg4Ys44K444Ol44OzDQor44K/44OZLOODnuOCteODiOOCtw0KK+ODpOOCrizjg6rjg6fjgqbjgqTjg4ENCivjg6jjgrfjg4As44Kr44K644KqDQor44OV44Or44K/LOOCv+OCq+ODpuOCrQ0KK+OCq+ODr+OCsOODgSzjg6rjg6Xjgqbjgr/jg63jgqYNCivjg4/jgrnjgrMs44Oo44K344OO44OqDQor44OK44Ks44Of44ONLOOCt+ODpeODs+OCuA0KK+OCv+OCseOCt+OCvyzjgrXjg4jjgrcNCivjgqLjgqvjgqos44Kr44K644Om44KtDQor44Ov44Kt44Oi44OILOOCv+OCq+OCtw0KK+OCv+OCteOCqyzjgrHjg7PjgrgNCivjg4rjgqvjgrfjg54s44Ok44K544Oo44K3DQor44K/44Kx44OK44KrLOODkuODreOCouOCrQ0KK+ODpOODnuOCt+OCvyzjg4rjgqrjg5LjgrMNCivjgq/jg5zjgqgs44OG44Or44KqDQor44Kq44Kw44K3LOOCt+ODp+OCpuOCpOODgQ0KK+OCouOCteOCqyzjgrfjgrLjg4jjgrcNCivjgqjjgrDjg4Es44OS44Ot44Oo44K3DQor44Kq44Kq44K144KtLOODnuOCs+ODiA0KK+OCquOCr+ODgCzjgqvjgrrjgqoNCivjgqrjgq/jg6Djg6ks44Kr44K644OtDQor44Kr44OK44Oe44OrLOODqOOCt+ODkuOCsw0KK+OCreODjuOCt+OCvyzjgqrjgrXjg6ANCivjgrXjgrXjgq0s44Kt44Oo44OS44OHDQor44K/44Kr44OOLOOCv+ODhOOCqg0KK+ODj+OCt+ODgCzjgrfjgrLjg6sNCivjg5vjgrcs44Om44Km44K544KxDQor44Of44K644OOLOOCq+ODhOODkuOCsw0KK+ODn+ODhOODj+OCtyzjgr/jg4Tjg6QNCivjg6Ljg4jjg4/jgrcs44Oe44K144K3DQor44Ok44Oe44OALOODhuODhOOCuA0KK+ODiuOCrOODjizjg57jgrXjg6bjgq0NCivjgqTjgrfjgqQs44Om44Kt44OS44OtDQor44Kr44Oh44OALOOCq+OCquODqw0KK+OCreODj+OCvyzjgr/jgrHjg5Ljg4cNCivjgrPjg5Djg6Tjgrcs44Kq44K144OgDQor44K344Op44OV44ONLOOCv+OCq+ODqOOCtw0KK+ODiuODhOODj+ODqSzjg5Ljg63jgqLjgq0NCivjg4vjgrfjg4/jg6ks44Ok44K544OS44K1DQor44OP44K344OQLOOCv+OCr+OCqg0KK+ODkuOCt+ODjOODnizjg5Ljg63jg5Xjg58NCivjg5Ljg5Pjg6Qs44K344Oz44K/44Ot44KmDQor44Of44OkLOODkuODh+ODj+ODqw0KK+ODoOODqeOCq+ODnyzjg5Xjg5/jgqoNCivjg6Djg6njgr8s44OP44K444OhDQor44Ov44K/44OK44OZLOOCt+ODp+OCpuOCpOODgQ0KK+OCquOCquODi+OCtyzjg5Ljg63jgqLjgq0NCivjgr/jgrHjgrfjgr8s44OS44Ot44K3DQor44OE44OQ44Kt44Oi44OILOODpOOCueOCtw0KK+ODj+ODnuOCquOCqyzjgr/jgrHjgqoNCivjg5/jgrrjg44s44OI44Oo44K/44KrDQor44Ki44OZLOODkuODreODnw0KK+OCouODqeOCpOOCtyzjg57jgrXjg58NCivjgrXjg4jjgqYs44Oe44K144Ki44KtDQor44K144Ov44OOLOOCu+OCpOOCtuODluODreOCpg0KK+OCt+ODouOCuOODp+OCpizjgr/jg4Djg58NCivjgr/jgqvjg4As44Kr44K644OS44OHDQor44OK44Ks44K/LOODpOOCueODkuODrQ0KK+ODi+OCt+ODj+OCvyzjg57jgrXjg5Xjg58NCivjg4/jg6Tjgrcs44K944Km44Kk44OBDQor44Ob44K944Kr44OvLOOCouOCreODqQ0KK+OCouOCquOCrSzjg5/jgq3jg4jjgrcNCivjg6jjgrfjg4As44OS44Ot44OI44K3DQor44Ov44K/44OK44OZLOOCv+OCq+OCqg0KK+OCpOODr+OCteODryzjgr/jgqvjg4/jg6sNCivjg47jgrss44K544Ko44KqDQor44OS44Op44K344K/LOODkuODreODpOOCuQ0KK+ODqOOCt+OCtuODryzjg5Ljg4fjgqoNCivjg6Djg4jjgqYs44Kx44Kk44K+44KmDQor44Of44Ov44Km44OpLOODkuODh+OCouOCrQ0KK+OCreOCr+ODgSzjg4/jgrjjg6ENCivjgqjjgr7jgqgs44OS44Ot44OfDQor44Kk44K344Kr44OvLOOCv+OCseOCtw0KK+OCpOODgeOCq+ODryzjgr/jgqvjgrcNCivjg4/jg6njg4As44Oo44K344K/44KrDQor44Og44Op44K/LOODqOOCt+ODiA0KK+OCpOODiOOCpizjg5/jgq3jgqoNCivjg5vjgrfjg4os44Kx44Kk44OkDQor44OI44Kv44OALOODjuODquOCqg0KK+OCv+OCsOODqizjgqvjgrrjg6jjgrcNCivjgrXjgrXjgq0s44OI44Oi44Om44KtDQor44K/44Oe44OrLOODj+ODq+OCqg0KK+ODi+OCt+ODj+OCtyzjgrfjgrLjgqoNCivjgrjjg4Tjgqvjg68s44Kr44K644OS44KzDQor44K544K644KtLOOCteOCpOODgQ0KK+OCquOCquODi+OCtyzjgq3jg5/jgrMNCivjg4rjgqzjgrXjgq0s44Om44Km44KzDQor44Kk44Kk44OALOODkuODh+ODnw0KK+OCv+OCq+ODjizjg57jgrXjg5Ljg60NCivjg5LjgrXjg44s44OI44K344OE44KwDQor44Kk44OO44Km44KoLOODkuODh+OCrQ0KK+OCpOOCt+OCr+ODqSzjg57jgrXjg6bjgq0NCivjgqLjgq3jg6Tjg54s44Kz44Km44K4DQor44Kk44OB44Kr44OvLOOCu+ODs+ODqg0KK+OCreOCrOODryzjgrPjgqbjgqTjg4ENCivjgrXjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44Oo44OALOODn+OCreOCqg0KK+OCouODqeOCrSzjg6bjgqbjgrgNCivjgrnjgq7jg4/jg6ks44OS44OH44OS44K1DQor44Kr44Ov44Kw44OBLOODhuOCpOOCuA0KK+ODn+ODpCzjg57jgrXjg5LjgrMNCivjgqTjgrHjgqos44OS44Ot44Om44KtDQor44K144Kv44Op44KkLOODleOCuOOCqg0KK+OCs+OCt+ODjizjg6jjgqbjgrnjgrENCivjgq3jgq/jgqvjg68s44Kr44K644KqDQor44Om44Ki44K1LOOCv+OCq+OCtw0KK+OCueOCuuOCrSzjg6bjgqbjgrgNCivjg57jgrnjg4As44K344Oz44K/44Ot44KmDQor44Ki44Op44KkLOODpOOCueOCqg0KK+OCpOOCseODgCzjg4jjgrfjgqoNCivjgq3jgrks44Ki44Kt44OpDQor44Km44K344Ok44OeLOODrOOCpA0KK+OCq+ODnuOCvyzjgqjjg4TjgrcNCivjgqbjgrXjg58s44Kt44Oo44K3DQor44OK44Kr44OOLOOCv+OCseOCtw0KK+OCq+OCreOCq+ODryzjgrjjg6Xjg7PjgqTjg4ENCivjgq3jgrjjg54s44OS44Ot44Om44KtDQor44Og44Kr44KkLOODnuOCteODqOOCtw0KK+ODiuOCrOODpOODnizjg57jgrXjgrMNCivjg4/jg4Pjg4jjg6os44Oe44K144KqDQor44Of44K344OeLOODhOODqOOCtw0KK+OCtOODiOOCpizjgq/jg4vjg4jjgrcNCivjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44Kq44Ks44K/LOOCq+ODqOOCsw0KK+OCr+OCteODkCzjg4/jg6vjg6bjgq0NCivjg4bjg6njgqgs44OS44K144OIDQor44Ob44Oz44OALOODjuODquOCqg0KK+OCouOCr+OCv+OCrOODryzjg5/jg47jg6sNCivjg5/jg6TjgrPjgrcs44Ok44K544KoDQor44OV44Kv44K344OeLOOCseOCpOOCueOCsQ0KK+OCt+ODjuOCuuOCqyzjg4jjg6LjgrMNCivjgqrjgqrjgr/jgq0s44K344On44Km44K4DQor44OK44Ks44Oe44OELOOCu+OCpOOCpOODgeODreOCpg0KK+OCouODqeOCpCzjg57jgrXjg6sNCivjg57jg4Tjg4As44K144OB44OoDQor44OV44K444K/LOOCouODhOODnw0KK+OCq+ODn+OCsOODgSzjg5Ljg63jgqLjgq0NCivjgqvjg4jjgqYs44OS44OI44K3DQor44Ok44Oe44K244KtLOOCv+OCseODjuODqg0KK+OCpuODoeOCv+ODiyzjgqLjg4TjgrMNCivjg4rjg6vjgrss44K444Ol44Oz44KzDQor44Kv44OcLOOCr+ODi+OCqg0KK+OCr+ODqeOCvyzjg5Ljg63jg6bjgq0NCivjgrPjg7Pjg4ks44OG44Or44KqDQor44K/44Kx44Km44OBLOODn+OCreODpA0KK+OCpOODjuOCpuOCqCzjg47jg6rjgqoNCivjgr/jgqvjg4As44Oo44K344Kr44K6DQor44Ki44Kv44OELOOCq+ODhOODpuOCrQ0KK+ODiOODquOCpCzjg5Ljg63jg58NCivjg6Ljg6rjgqrjgqss44Om44Of44KzDQor44Kr44Kv44K/44OLLOODnuODiuODlg0KK+OCv+OCseOCpOODgSzjg4HjgqjjgrMNCivjgr/jgqQs44Kx44Kk44KzDQor44OE44OB44OkLOODnuOCteODleODnw0KK+ODnuOCueODgCzjg57jgrXjgr/jgqsNCivjgqvjg7Pjg4As44OS44K144KqDQor44Ok44Oe44Km44OpLOODpOOCueODqOOCtw0KK+OCreODjuOCt+OCvyzjgrfjgrLjg5/jg4QNCivjg5vjgrXjgqss44Kv44OL44KqDQor44Oe44Or44Kq44KrLOODkuODh+ODpuOCrQ0KK+OCq+ODnuOCvyzjg5Ljg63jgrcNCivjg4/jgr/jg4rjgqss44Oe44K144OfDQor44Kv44Ot44OPLOODqOOCpuOCsw0KK+ODiOODhOOCqyzjg6jjgqbjgrMNCivjgqTjgrfjgqQs44OV44OoDQor44Oi44Oq44K/LOODnuODgQ0KK+ODm+ODs+ODnizjgrfjgrLjg6sNCivjgqLjg6njgqvjgq0s44Oo44K344OI44OiDQor44K/44KxLOOCv+OCseODkuOCsw0KK+OCpOOCuuODj+ODqSzjg4rjgqrjgqvjgroNCivjg5LjgrXjg4jjg58s44K/44Ot44KmDQor44K544K644KtLOODqOOCt+ODkuODrQ0KK+ODi+OCt+ODiuOCqyzjg5LjgrXjg47jg6oNCivjg5/jgrrjg44s44Kz44Km44K+44KmDQor44Oi44Oq44Og44OpLOOCouOCreODqQ0KK+OCv+OCq+ODj+OCtyzjg4jjgrfjgqvjgroNCivjgrfjgrLjg4jjg6Es44Oo44K344Ki44KtDQor44K144OI44KmLOODpuOCpuOCuA0KK+ODnuOCqOOCq+ODryzjg57jgrXjg58NCivjg6jjgrfjgqQs44OI44K344OO44OqDQor44Ob44K944OkLOODkuODh+ODkuOCsw0KK+OCteOCq+ODouODiCzjgqvjgrrjgqoNCivjgrPjgqTjgrrjg58s44K344Ky44OfDQor44OL44K3LOODpOOCueODleODnw0KK+OCq+ODjeOCsyzjgqLjgq3jg6kNCivjgrnjg5/jgq/jg6ks44K344On44Km44OY44KkDQor44Oo44Kz44KqLOOCv+OCq+OCqg0KK+OCteOCteOCrSzjgqvjgrrjgqoNCivjg4/jg6Tjgrcs44Ki44Kt44OpDQor44K/44OK44KrLOOCreODqOOCtw0KK+OCouOCreODpOODnizjg4jjg5/jgqoNCivjgrXjgqTjgrks44Oo44K344Kr44K6DQor44OO44Ks44OfLOOCu+OCpOOCuA0KK+ODiOODqOOCt+ODnizjgrfjg6XjgqbjgqTjg4Hjg63jgqYNCivjgrfjg7Ms44K/44Kr44K3DQor44OV44Kt44OOLOODouODquODqOOCtw0KK+OCpOOCseODgCzjgqvjgrrjgq3jg4ENCivjgqrjg4Djg6/jg6ks44Oq44OEDQor44K/44Kr44OP44K3LOODiOOCt+OCq+ODhA0KK+OCseOCpOODnizjgrjjg6Xjg7MNCivjgrfjg5/jgros44Kz44Km44K4DQor44Kk44Oe44Kk44K644OfLOODiOODouOCuA0KK+ODouODquOCvyzjg6bjg5/jgrMNCivjg6Ljg6os44Ok44K544OfDQor44Oe44Ko44Kr44OvLOODpOOCueOCq+OCug0KK+ODpOODiuOCruODgCzjgrnjgrnjg6ANCivjg6Djg6njg6Ljg4gs44OS44Ot44K3DQor44K544K644KtLOODkuODreOCtw0KK+ODm+OCveOCqCzjg57jgrXjg5LjgrMNCivjgqTjgrfjgq/jg6ks44K744Kk44K4DQor44OS44Ot44Kr44OvLOODpuOCpuOCuA0KK+OCq+ODqeOCt+ODnizjgr/jgqvjgrcNCivjg57jg4Hjg4As44K344Oz44Kk44OBDQor44Oi44Oq44Ok44OeLOODkuOCteODjuODqg0KK+OCv+OCseODoOODqSzjg4bjg4Tjgr7jgqYNCivjg4Tjgqvjg6Ljg4gs44Ki44Kt44OV44OfDQor44Ok44Oe44Kw44OBLOODkuODreODkuODiA0KK+OCveODoeODpCzjgqLjgq3jgqoNCivjg4rjgqvjgrTjg6Es44OS44OH44KqDQor44Kk44Ov44OK44KsLOOCseOCpOOCueOCsQ0KK+OCu+OCreODpCzjgrHjg7PjgrgNCivjg4bjg6njgqQs44Kr44K644OS44OtDQor44K/44OK44KrLOODkuODh+OCqg0KK+OCu+OCreODpCzjgrjjg6Xjg7Pjg63jgqYNCivjgrXjgq/jg6njgqQs44Ko44Of44KzDQor44Kk44K944OZLOODnuODhOOCv+ODreOCpg0KK+ODnuODhOOCquOCqyzjgr/jgqvjg5LjgrMNCivjgqTjg4Es44Oe44K144OO44OqDQor44Ok44Oe44Oi44OILOOCt+ODreOCpg0KK+ODh+OCsOODgSzjgr/jgqvjg4jjgrcNCivjg5Ljg6njg57jg4Qs44Oo44K344KqDQor44Of44K644OOLOOCpOOCteODoA0KK+ODiOODn+ODiuOCrCzjg57jgrXjg5Ljg60NCivjgr/jgqvjgrfjg54s44OS44OI44K3DQor44OO44Ks44OfLOODkuODreOCtw0KK+OCquOCquODhCzjg5Ljg63jg5Xjg58NCivjgrPjg5Djg6Tjgrcs44Kx44Oz44Kk44OBDQor44OG44Op44OALOODiOOCt+OCq+OCug0KK+OCteOCpOODiOOCpizjgr/jg4Tjg6QNCivjgqLjgrXjg44s44K/44Kr44OkDQor44K344Oi44Og44OpLOODjuODquODiOOCtw0KK+OCquOCquOCpOOCtyzjg47jg6rjg6jjgrcNCivjgr/jg4rjgqss44OE44ON44KqDQor44Oe44OE44Oi44OILOOCreODqOOCtw0KK+ODkuODqeODnuODhCzjgrfjgrLjg6sNCivjgr/jgrHjgqbjg4Es44Of44OO44OrDQor44K344Ky44OP44OpLOODhuODq+ODnuOCtQ0KK+OCquOCq+ODouODiCzjg4/jgrjjg6ENCivjg6Djg6njg6Tjg54s44Oi44OI44KzDQor44Kz44Oe44OE44OQ44OpLOOCt+OCuuOCqg0KK+OCqOODkOOCvyzjgrHjg7PjgrgNCivjgqrjgqrjgr8s44K044Ot44KmDQor44OG44Op44KqLOODkuODreODpuOCrQ0KK+OCquOCquOCteODryzjg57jgrXjg6sNCivjgqvjg6/jgrfjg54s44K/44OE44OfDQor44Ki44Op44KkLOODnuOCteOCtw0KK+ODj+OCt+OCuuODoSzjgqLjgq3jg6kNCivjg5/jgrrjgrfjg54s44Kz44Km44K4DQor44OS44Op44Oe44OELOOCqOODhOOCqg0KK+OCquOCr+ODoOODqSzjg6jjgrfjgrMNCivjg5/jgrrjg4rjgqss44Kz44Km44K3DQor44Ob44Oq44Km44OBLOOCt+ODpeOCpuOCpOODgQ0KK+OCv+OCreODouODiCzjg4jjgrfjgqoNCivjg6Tjgrnjg5As44Kz44Km44K4DQor44Kt44K/44OOLOODouODiOODjuODlg0KK+ODi+OCt+ODgCzjg6bjgq3jgqoNCivjgqTjgrfjgqvjg68s44OI44K344OfDQor44Kq44Kq44OQLOODkuOCteOCqg0KK+OCq+OCt+ODr+OCrizjgqvjgrrjg6bjgq0NCivjgrXjg4jjgqYs44Kq44K144OgDQor44Oe44OE44OALOOCouOCreOCqg0KK+OCs+ODoOODrSzjg4rjgqrjgq0NCivjg6Djg6njgr8s44OS44OH44Om44KtDQor44K144K144Ks44OvLOOCq+OCuuOCqg0KK+OCteOCv+OCsSzjg4/jg6vjg4jjgrcNCivjgq/jg6/jg44s44OS44K144KqDQor44K044OI44KmLOOCq+ODhOODnw0KK+ODleOCuOOCpCzjgrfjg7PjgqTjg4ENCivjg5/jgrrjgrPjgrcs44Kx44Oz44Kk44OBDQor44OV44K444Oe44KtLOOCq+OCuuODpA0KK+OCpOODh+OCvyzjg5Ljg4jjgrcNCivjg4rjgqvjg4Tjgqss44K/44Kr44K3DQor44Km44Oz44OOLOOCv+OCseODnw0KK+OCueOCuuOCrSzjgqvjgrrjg5Ljg60NCivjg4/jg54s44OS44Ot44K3DQor44OI44Of44K/LOOCv+OCq+OCqg0KK+OCv+ODi+ODhCzjg6bjgqbjgrQNCivjgrnjgrrjgq0s44Oe44K144Of44OBDQor44Kq44Kv44Og44OpLOODgeODqOOCuA0KK+ODleOCr+OCt+ODnizjgqvjgrrjg5LjgrMNCivjgqrjgqrjg4/jgrcs44OS44Kr44OrDQor44Ok44Oe44K344K/LOOCv+OCq+OCqg0KK+OCq+ODr+ODnyzjgrvjgqTjgqTjg4ENCivjg4/jg6vjgr8s44Kx44Oz44Kk44OB44OtDQor44Of44Ok44Oi44OILOODkuODreOCtw0KK+ODhOOCuOOCvyzjg6bjgqbjgrMNCivjgqTjg57jg6Djg6ks44Oe44K144KqDQor44K144OI44KmLOOCteODluODreOCpg0KK+ODiuOCq+OCuOODnizjg6bjgq3jgrMNCivjgrfjgqTjg44s44K344Ky44KqDQor44K044OI44KmLOODn+ODjuODqw0KK+OCq+ODiOOCpizjg6Ljg4jjg4/jg6sNCivjg4rjgqzjgqQs44OB44Ko44KzDQor44Km44OB44OOLOOCouODhOOCtw0KK+OCqOOCpOOCuOODnizjgqrjgrXjg6ANCivjg6Tjg57jg4rjgqss44Kz44Km44K4DQor44OK44Kr44Og44OpLOODjuODluOCqg0KK+OCueOCuuOCrSzjg6Tjgrnjg6bjgq0NCivjgrvjg6Djg6ks44Oq44Ol44Km44Kk44OBDQor44OK44Kr44Ks44OvLOOCq+ODhOODkuODrQ0KK+OCv+ODpCzjgr/jgqvjgrcNCivjg6Djg6njgqvjg58s44OS44Ot44OO44OqDQor44Kk44K344Kr44OvLOOCs+OCpuOCpOODgQ0KK+OCu+OCreOCsOODgSzjgrfjg6fjgqbjgqTjg4Hjg63jgqYNCivjgqrjgqrjg44s44Oo44K344Om44KtDQor44Kq44Kk44Kr44OvLOODiOOCt+ODpA0KK+OCpOODr+OCpCzjgq/jg4vjg6TjgrkNCivjgqLjgrXjg5Is44Kx44Oz44K4DQor44K044OI44KmLOOCq+OCquODqw0KK+OCq+ODjeOCv+OCsSzjgqvjg4rjg6ENCivjgqbjgqjjg57jg4Qs44OI44K344OO44OqDQor44OV44Kv44K344OeLOODkuODreOCuA0KK+ODleOCr+ODgCzjgr/jgqvjg6bjgq0NCivjgrnjgrrjgq0s44Kt44On44Km44KzDQor44Kq44Kw44OpLOODpuOCreODkuOCsw0KK+ODkuODqeODhyzjg47jg5bjgqvjgroNCivjgqrjgrfjgrIs44K/44Kk44OBDQor44Oe44OE44Oi44OILOOCqOODquOCsw0KK+OCteOCteOCrSzjgqjjg4TjgqoNCivjgrTjg7Pjg4As44Oe44K144OrDQor44Oe44OE44Kq44KrLOOCu+OCpOOCuA0KK+OCpuODoeOCtuODryzjg57jgrXjg4TjgrANCivjg4vjgrfjgqos44Kr44K644OK44OqDQor44Kz44K444OeLOODpuOCpuOCvuOCpg0KK+OCv+ODi+OCsOODgSzjg6jjgrfjg4TjgrANCivjgqrjgqrjgq7jgrks44OS44Ot44K3DQor44K144OA44OS44K1LOOCs+OCpuOCpOODgQ0KK+ODleOCuOODr+ODqSzjg6Ljg6rjgqoNCivjg4/jg4Pjg4jjg6os44OK44Kq44Om44KtDQor44Kr44Oe44K/LOODiOOCt+OCqg0KK+ODiOODkCzjg57jgrPjg4gNCivjg6Tjg57jg4As44K/44OA44OS44OtDQor44Ok44Oe44Oi44OILOODn+OCreOCqg0KK+OCv+OCseOCpuODgSzjgr/jgrHjgrcNCivjgqLjg6njgq0s44OS44OH44OV44OfDQor44OL44K344KqLOOCu+ODhOOCsw0KK+ODouODquOCpuODgSzjgrXjg4rjgqgNCivjgqTjg6/jgr8s44OS44OH44Ki44KtDQor44K144K144KtLOODnuOCteODreOCpg0KK+ODnuOCqOOCrOODryzjg6Tjgrnjg4TjgrANCivjg5Xjgq/jg4vjgrcs44Kr44K644OO44OWDQor44Km44Ko44OALOODiOODouODqA0KK+ODpOODnuOCruOCtyzjg57jgrPjg4gNCivjgqrjg44s44Kx44Oz44K4DQor44OV44K444K/LOODleOCr+OCreODgQ0KK+OCreOCv+ODoOODqSzjg6jjgrfjg5/jg4QNCivjg6jjgrfjg4/jg6ks44Om44Oq44KzDQor44Kk44Ov44K144OvLOOCv+OCr+ODnw0KK+OCs+ODnuODhCzjgr/jg4Tjg6jjgrcNCivjgr/jg4vjg6Djg6ks44OS44Ot44Ki44KtDQor44Kz44K144KrLOODkuOCteOCv+OCsQ0KK+OCv+OCt+ODnizjg57jgrXjg6bjgq0NCivjg4vjgrfjgqrjgqss44Kr44OE44Om44KtDQor44K544K644KtLOODiOOCt+OCqg0KK+OCtOODiOOCpizjg6Tjgrnjg5Ljg6kNCivjgqvjg6/jg4/jg6ks44K444Ol44Oz44Kk44OBDQor44K/44K444OeLOOCt+ODp+OCpuOCuA0KK+OCq+ODs+ODjizjgqLjgq3jgqoNCivjgqvjgr/jgrfjg54s44K344Oz44OkDQor44OP44K344Oi44OILOODn+OCueOCug0KK+ODiuOCq+ODgCzjg5Ljg63jgrcNCivjgqvjgrXjg4/jg6ks44K744Kk44Kk44OBDQor44OG44Op44Oi44OILOOCv+OCq+OCouOCrQ0KK+ODr+OCq+ODnuODhCzjg57jg4rjg58NCivjgqTjg4jjgqYs44OI44K344OE44KwDQor44Ov44OALOODkuODh+ODnw0KK+OCv+ODs+OCuCzjg5Ljg63jgqLjgq0NCivjgqrjgqrjg4Tjgqss44Oh44Kw44OfDQor44OE44K444Oi44OILOOCseOCpOOCpOODgQ0KK+OCu+ODquOCtuODryzjg47jg5bjg4/jg6sNCivjg4jjg47jgrXjgq0s44OV44Of44KoDQor44K/44Kr44KuLOODn+ODgeOCsw0KK+OCquODleODgSzjgqvjg4Tjg4rjg6oNCivjgqLjg57jg44s44Of44OB44KqDQor44OK44Kr44Og44OpLOOCouOCreODqQ0KK+OCv+ODkOOCvyzjg6bjgqbjgrgNCivjg4jjg6jjgrrjg58s44Oe44K144Ki44KtDQor44K344Ol44Kv44OkLOODqOOCt+ODreOCpg0KK+OCv+OCq+ODjizjgrfjg7PjgqTjg4ENCivjg6Djg6njgqvjg58s44OS44OI44K3DQor44Kk44K344K644KrLOODjuODluODqOOCtw0KK+OCpOOCpOOCuuOCqyzjg4jjgrfjg5LjgrMNCivjgrfjg6njgqQs44Ki44Kt44OpDQor44OV44Kv44OP44OpLOOCueOCqOODj+ODqw0KK+OCpOODiuOCrOOCrSzjg4bjg4TjgqoNCivjg5Ljg6njgrfjg54s44OS44OI44K3DQor44OE44K444OQ44Ok44K3LOOCouODhOOCtw0KK+ODnuODhOOCqizjg57jgrXjg58NCivjg6Tjg57jg6Ljg4gs44Oe44OK44OWDQor44Oi44Oq44OOLOOCv+OCq+OCqg0KK+OCv+OCuOODnizjg4jjgrfjgqoNCivjg47jgrbjgq0s44K444Ol44OzDQor44Ki44OA44OBLOODjuODluOCv+OCqw0KK+OCv+OCq+ODpCzjgr/jgqvjgrcNCivjgqrjg44s44Oe44K144KqDQor44Oe44OE44Oi44OILOOCq+ODhOOCouOCrQ0KK+ODj+OCt+ODouODiCzjgqvjgrrjg5Ljg4cNCivjgqvjg44s44Ok44K544K3DQor44K/44Kx44OALOODleODn+OCsw0KK+OCreODquODj+ODqSzjgrHjgqTjgrMNCivjgr/jg4rjgqss44Ok44K544OS44KzDQor44OI44Oq44KkLOOCouOCreODjuODlg0KK+ODiuOCq+OCt+ODnizjg57jgrXjgqoNCivjgrvjgrnjg58s44K444Ol44OzDQor44Oe44Ko44OO44K944OOLOOCq+OCuuODiuODqg0KK+OCtOODiOOCpizjgrfjg7PjgrgNCivjg5vjg6os44Om44Kt44Oo44K3DQor44K/44Kr44Kk44OpLOOCreODp+OCpuOCpOODgQ0KK+OCv+ODi+ODgCzjgqLjgq3jg5Ljg60NCivjg5Xjg6vjg4njgqQs44K344Ol44Km44Kk44OB44Ot44KmDQor44Kq44Kq44Ku44OkLOODnuOCteODiuOCqg0KK+ODiuOCq+OCuOODnizjg47jg5bjg6jjgrcNCivjg5vjg6rjgqvjg68s44Kr44K644OS44OtDQor44K544K644KtLOODnuOCs+ODiA0KK+OCouOCquOCrSzjg47jg5bjg6bjgq0NCivjgqrjgq/jg4/jgr8s44Oe44K144OS44OtDQor44Kv44Ov44OQ44OpLOODpuOCpuOCueOCsQ0KK+OCq+ODs+ODgCzjg5Ljg63jg5/jg4QNCivjgrnjgq7jg6Ljg4gs44Oq44On44KmDQor44Ok44Oe44Oi44OILOODkuODh+OCouOCrQ0KK+OCq+ODjeOCsyzjg57jgrXjg6sNCivjg4rjg6rjgr8s44Oi44OI44Om44KtDQor44OL44K344KqLOOCv+OCseODkuODrQ0KK+OCpOOCq+ODqizjg4/jg6vjgqoNCivjg5Xjg6vjgqvjg68s44Kx44Oz44Kk44OBDQor44Ki44Op44KkLOOCu+OCpOOCuA0KK+OCr+OCuuOCq+ODnyzjg5Ljg63jgrcNCivjgrTjg4jjgqYs44K344Ol44Km44Kk44OBDQor44Ok44Oe44OP44OpLOODnuOCueODnw0KK+ODpOODnuODgCzjgrfjgrLjg6sNCivjgqTjgrgs44OI44K344Ot44KmDQor44Kv44Op44Oi44OBLOODn+OCreOCqg0KK+ODleOCuOODr+ODqSzjg5Ljg4fjgrnjgq4NCivjgr/jgrHjg4As44K144OI44K3DQor44K/44Kr44OO44K7LOOCqOODhOOCqg0KK+ODiOODouODoOODqSzjgrfjgrLjg5Xjg58NCivjgrXjg4jjgqYs44OP44K444OhDQor44K144Kr44Kt44OQ44OpLOODnuOCteODpuOCrQ0KK+ODn+ODpOOCtuOCrSzjg6bjgqbjgrgNCivjg6jjgrfjg4As44K344Ol44Km44Kk44OBDQor44K/44OK44KrLOODqOOCt+ODkuOCsw0KK+OCtOODiOOCpizjg5/jg4HjgqoNCivjg4vjgrfjg4As44Kx44Kk44Kk44OBDQor44OK44Kr44K344OeLOODn+ODhOODkuODrQ0KK+OCreODoOODqSzjgrfjgrLjg6bjgq0NCivjgqTjg47jgqbjgqgs44Oe44K144OI44K3DQor44Kq44K344OeLOOCv+OCseOCtw0KK+OCquOCquODpCzjg57jg6Ljg6sNCivjg5/jg6Tjg6Ljg4gs44Oe44K144OO44OqDQor44Ok44Oe44K344K/LOOCquOCteODoA0KK+OCv+ODiuOCqyzjg57jgrnjg58NCivjg6Ljg6os44Ki44OE44K3DQor44OK44Or44OfLOOCquOCteODoA0KK+OCtOODiOOCpizjg4DjgqTjgrjjg63jgqYNCivjg6Tjg57jg4Hjgqss44Ki44Kt44OpDQor44K144K144KtLOODnuOCteODkuODiA0KK+OCreOCt+ODgCzjg5/jg4HjgqoNCivjgqrjgqrjg6Tjg54s44Oo44Km44K544KxDQor44K344Kk44OOLOOCq+ODhOODpA0KK+OCpOOCuuODn+OCteODryzjg6jjgrfjg4jjg6INCivjgqvjg5/jg6Djg6ks44OA44Kk44OBDQor44K144Kr44KkLOOCseODs+OCpOODgQ0KK+OCtOODiOOCpizjgqvjgrrjgqoNCivjgqvjg4jjgqYs44Kt44Kk44OB44Ot44KmDQor44K/44Kr44OP44K3LOOCs+OCpuOCuA0KK+OCr+ODjizjgr/jg4Tjg5LjgrMNCivjgqTjg6/jg5bjg4Es44Oe44K144OE44KwDQor44Ob44Oz44OWLOODnuOCteODleODnw0KK+ODouODquOCvyzjgrjjg6Xjg7MNCivjgrvjgq3jg6Qs44KzDQor44OM44Oe44K/LOOCq+OCuuODpA0KK+OCtOODiOOCpizjg6HjgqTjgrXjgqQNCivjg57jg4rjg5ks44Oe44K144OrDQor44Kk44Oe44Kt44K/LOOCt+ODp+OCpuOCuA0KK+OCs+ODgOOCqyzjgrHjg7PjgrgNCivjg6jjgrfjg4As44K/44Kx44OS44K1DQor44K144OI44KmLOOCv+OCseOCtw0KK+OCr+OCueODnyzjgqvjgrrjg6bjgq0NCivjg4/jgq7jg6/jg6ks44OI44K344Kr44K6DQor44OV44Or44K7LOODhuODq+ODkuOCsw0KK+ODoOODqeOCvyzjgrfjg6fjgqbjgrMNCivjgqrjgq/jg6Djg6ks44Oe44K144OS44KzDQor44K/44OL44Ks44OfLOOCv+OCpOODgQ0KK+ODiuOCq+ODoOODqSzjgrfjg7PjgrgNCivjgrPjgqTjgrrjg58s44Oe44K144OS44KzDQor44K544OJ44KmLOODkuODreOCtw0KK+OCpOODhyzjg4bjg4Tjg6QNCivjgrfjg6Ljg44s44Kr44K644OS44OtDQor44K/44Kr44KuLOODqOOCt+OCouOCrQ0KK+OCteOCq+OCpCzjgqLjg4TjgrcNCivjgqTjg47jgqbjgqgs44Kr44K644KqDQor44OV44Or44K/LOODn+ODgeODjuODlg0KK+OCouOCteOCpCzjgq3jg6jjgrcNCivjg5XjgqvjgrXjg68s44Kv44OL44OS44KzDQor44K044Kr44Kk44OBLOOCs+OCpuOCuA0KK+OCquOCquODhOOCqyzjg6Tjgrnjg47jg6oNCivjgrXjg4jjgqYs44K144OI44K3DQor44Kk44OO44Km44KoLOOCt+OCsuODqw0KK+OCv+OCseODgCzjg57jgrXjg6bjgq0NCivjg57jgrnjg4As44Oo44K344OS44KzDQor44Ok44Oe44Oi44OILOODjuODnOODqw0KK+OCquOCquODj+ODqSzjg57jg4rjg5YNCivjg5Xjg4rjg4Qs44Kr44K644OS44KzDQor44Kz44Ok44OeLOOCuOODpeODs+OCvuOCpg0KK+ODpOODnuOCtuOCrSzjg4jjgrfjg5Ljg60NCivjgr/jgrjjg6os44Of44ON44OP44OrDQor44K144OI44KmLOODhOODqOOCtw0KK+ODiuOCrOOCt+ODnizjgrjjg63jgqYNCivjg4Tjg4As44K/44Kr44K3DQor44OK44Ks44KqLOODiOODouODnw0KK+OCquOCquOCueOCrizjg5Ljg63jg6bjgq0NCivjgqTjg4jjgqYs44OI44Oi44OK44OqDQor44K/44Oe44KkLOODpuOCv+OCqw0KK+ODn+ODpOOCt+OCvyzjg6jjgqbjgqTjg4Hjg63jgqYNCivjg5/jgrfjg54s44Oo44K344OS44OtDQor44Ob44Oq44KkLOODiuOCquOCouOCrQ0KK+OCtOODiOOCpizjg57jgrPjg4gNCivjg6Tjgqos44K444Ol44Oz44Kk44OBDQor44OS44K444OkLOOCv+ODhOODpA0KK+ODm+ODquOCpCzjg5Ljg4fjgrgNCivjgr/jgrHjg4As44K/44Kr44Oo44K3DQor44Ok44K544OK44KsLOOCq+ODhOODnw0KK+ODpOODnuOCtuOCrSzjg5Ljg4fjg5Ljg4gNCivjg6Tjg44s44Ki44Kt44OpDQor44K344Ov44KvLOODn+ODjuODqw0KK+OCq+ODn+ODjizjgqLjgq3jg6kNCivjg4rjgqvjgrjjg54s44K/44Kk44K444Ot44KmDQor44Oe44K544OALOOCr+ODi+ODkuOCsw0KK+OCquODleODgSzjgrjjg63jgqYNCivjg5Xjgq/jgrbjgq0s44Os44Kk44KzDQor44Kk44K/44Ks44KtLOOCt+OCsuOCrQ0KK+OCt+ODoizjg4HjgqgNCivjg5Xjgq/jgqQs44OO44OW44Ki44KtDQor44Kk44OTLOOCuOODs+OCpOODgQ0KK+OCs+ODoOOCq+OCpCzjgq3jg6jjg58NCivjg5Xjgrjjgqgs44OO44OW44Om44KtDQor44Oe44OE44KtLOOCq+OCuuODkuOCsw0KK+OCs+ODkOODpOOCtyzjgqvjgrrjg6jjgrcNCivjgrTjgqbjg4Es44Kr44K644OI44K3DQor44OP44K744Ks44OvLOOCseODsw0KK+OCq+ODr+OCtOOCqCzjg4jjg6Ljg5Xjg58NCivjg4rjgqzjgrXjg68s44K/44Kk44K744KkDQor44Ok44Oe44K344K/LOOCteOCq+OCqA0KK+OCpOOCt+OCtuOCrSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjgqrjg4As44Of44OB44OS44OtDQor44K344Oz44OJ44KmLOOCv+OCq+OCouOCrQ0KK+OCt+ODouOCteOCsyzjg4/jg6vjg5LjgrUNCivjg4Tjg4Tjg58s44Kt44Oo44K3DQor44Kt44K/44Kq44KrLOOCq+OCuuODkuOCsw0KK+OCreOCv+OCtuODryzjgrPjgqbjgrgNCivjg4rjgqvjgqrjgqss44Ko44Kk44K4DQor44Kk44K344OQ44K3LOODn+ODpuOCrQ0KK+ODj+OCt+OCsOODgSzjg5/jg6/jgrMNCivjg6/jgr/jg4rjg5ks44Ki44Kt44OS44OtDQor44Kq44Kq44OQLOOCq+ODiuODoQ0KK+ODj+ODqSzjgqvjgrrjg6QNCivjgrfjg5/jgros44Kz44Of44OKDQor44Kk44K244OvLOODqOOCt+ODkuOCsw0KK+ODqOOCt+ODpOODnizjgqLjgq3jg6kNCivjgrnjgq7jg6Ljg4gs44OS44Ot44Om44KtDQor44Kz44Oe44OELOOCs+OCpuOCpOODgQ0KK+ODmOODs+ODnyzjgrPjgqbjgr7jgqYNCivjg5Xjgqvjg4As44OO44Oq44OV44OfDQor44Kz44OQ44Ok44K3LOODqOOCt+ODkuOCtQ0KK+OCueOCruODouODiCzjgrHjg7PjgrgNCivjg6jjgrPjg6Tjg54s44OE44OI44OgDQor44K/44OK44KrLOODjuODquODkuOCsw0KK+ODn+ODpOOCv+ODiyzjgrXjg4jjg6sNCivjg4/jgrvjgqzjg68s44Ki44OE44K3DQor44Kt44K/44Ks44OvLOOCv+OCq+OCouOCrQ0KK+ODleOCr+OCquOCqyzjg5Ljg63jg6bjgq0NCivjgqrjg6Djg6ks44K144OI44OrDQor44Kk44Kw44OBLOODnuOCs+ODiA0KK+ODj+ODpOOCtyzjg57jg6rjgrMNCivjg5Ljg6njgqQs44Kr44Ko44KzDQor44Kq44Kq44Oi44OqLOODrOOCpOOCsw0KK+OCquOCruODjizjgqTjg4Hjg63jgqYNCivjgr/jg6Djg6ks44Of44OE44KqDQor44K/44Kx44OALOODkuODh+OCouOCrQ0KK+ODn+ODpOODiuOCrCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjg5Ljg6njgqQs44OO44Oq44Oe44K1DQor44OL44K344Og44OpLOODkuODreODpuOCrQ0KK+ODj+ODluODgSzjg5Ljg4fjgqvjgroNCivjgqrjgqrjgq/jg6ks44Oo44K344Ki44KtDQor44OP44OD44K/LOOCqOOCpOOCuA0KK+OCpOOCs+ODnizjg5Ljg63jg6bjgq0NCivjgqLjgrXjg5Ljg4os44K/44Kr44K3DQor44Kr44OO44KmLOOCt+ODs+OCtA0KK+ODiuOCq+ODi+OCtyzjgrfjg6XjgqbjgrgNCivjg5/jg6Tjgrbjgq0s44OS44Ot44OgDQor44Kk44OB44Kr44OJLOODiOODqOOCouOCrQ0KK+ODiuOCrOOCteODryzjgqLjgq3jg47jg5YNCivjg4/jg57jgrDjg4Es44OP44Or44KqDQor44Ok44K344OtLOODkuODreODjuODqg0KK+ODoOODqeOCqizjg57jgq0NCivjgqrjgqrjgq7jg57jg4Es44Ki44Kt44OpDQor44K344Ot44K/LOODnuOCteODpuOCrQ0KK+ODhuOCt+ODnizjg5/jg4TjgqoNCivjgqvjg6/jgrXjgq0s44Ok44K544Om44KtDQor44Ok44Oe44OALOOCquOCteODoA0KK+ODm+ODs+ODgCzjg57jgrXjg5Ljg4cNCivjgqvjg43jgrMs44K344Ky44OrDQor44Oe44OE44K344OeLOODkuODreOCuuODnw0KK+OCs+ODn+ODpCzjgrPjgqbjgrgNCivjg6/jg4As44OE44Oo44K3DQor44Oo44K344OALOOCv+OCq+OCtw0KK+ODouODquOCteOCrSzjg6bjgqbjgrgNCivjgqTjg57jg5Ljgqzjgrcs44OS44OH44KqDQor44Kv44Op44Oi44OBLOODr+OCv+ODqw0KK+ODpuOCq+ODryzjgrXjg4jjgrcNCivjg4bjg6njgqos44K444Ot44KmDQor44Kz44Oz44OJLOODnuOCrQ0KK+OCteOCpOODiOOCpizjg57jgrXjg6bjgq0NCivjg6jjgrfjg4rjgqws44OS44Ot44K3DQor44Om44Ki44K1LOODj+ODq+ODpuOCrQ0KK+OCu+ODs+OCrCzjg6jjgrfjgqoNCivjg4vjgrfjgrDjg4Es44OI44K344Ki44KtDQor44Km44Ko44OALOODiuOCquOCrQ0KK+ODpOODnuOCquOCqyzjg4jjgrfjgqoNCivjg6Tjg57jg6Ljg4gs44Kr44K644KqDQor44OV44K444Kr44OvLOODiOOCt+OCv+OCsQ0KK+OCquOCsOODqSzjgr/jgqvjgrcNCivjgqvjg6/jg44s44OS44OH44KqDQor44Kr44ON44K644KrLOODkuODreOCouOCrQ0KK+OCquOCq+ODouODiCzjg6bjgqbjgrnjgrENCivjgqvjg6/jg4Tjgq0s44Kr44K644KqDQor44K544Ko44Oo44K3LOOCv+ODhOODpA0KK+OCq+ODr+ODmSzjgrfjgrLjg6bjgq0NCivjgr/jgqvjg4/jgrcs44K/44Kr44Om44KtDQor44Oi44OqLOOCt+ODs+OCueOCsQ0KK+OCueOCruODpOODnizjg4bjg4TjgrgNCivjg57jgqjjg6Tjg54s44Kt44Oo44K3DQor44Kz44Oh44K/44OLLOODpuOCpuOCuA0KK+ODleOCuOODr+ODqSzjgq3jg6jjgrcNCivjgqLjg4fjgqzjg68s44OS44Ot44Om44KtDQor44OI44Of44K244OvLOOCquOCteODoA0KK+ODiuOCq+OCvyzjg57jgrXjgqLjgq0NCivjgr/jg4Hjg5Djg4rjgq0s44OP44Or44Ki44KtDQor44Kz44OA44OeLOOCt+ODp+OCpuOCtA0KK+ODj+ODiuOCpCzjg4Hjg5sNCivjg4Hjg47jg40s44Kr44K644KqDQor44K344Of44K6LOOCs+OCpuOCpOODgQ0KK+OCv+OCreOCtuODryzjg57jgrXjg4gNCivjgq/jg4njgqYs44Kx44Oz44K4DQor44Oi44Oq44Kq44KrLOODnuOCteOCq+OCug0KK+OCq+ODjeODkuODqSzjgqLjgq3jgqoNCivjgrXjg4jjgqYs44OS44Ot44OO44OWDQor44Ok44OQ44OKLOODiOOCt+OCqg0KK+OCteOCq+OCuuODoSzjg5Ljg63jg6bjgq0NCivjg4/jgrfjg6Ljg4gs44Kt44OoDQor44Oo44OO44Oi44OILOODkuODh+OCrQ0KK+ODkOODs+OCt+ODp+OCpizjgq/jg4vjgqoNCivjg5Xjg4Hjgqgs44Kr44K644KqDQor44K544K644KtLOOCpOOCr+OCqg0KK+OCueOCuuOCrSzjg6bjgq3jg47jg6oNCivjgrPjg5Djg6Tjgrcs44Kr44K644OS44OtDQor44Kr44OI44KmLOOCv+OCq+ODhOOCsA0KK+OCr+OCueODgCzjgqvjgrrjgqTjg4ENCivjg5/jg6Tjgr/jgrEs44Oo44K344OS44OtDQor44K144OOLOODkuODh+OCuA0KK+ODnuODq+OCvyzjg4jjgrfjgqLjgq0NCivjg57jgq3jgr8s44Oe44Oq44KzDQor44Kr44K344Ov44KuLOODj+OCuOODoQ0KK+OCv+ODiyzjg6jjgrfjg58NCivjgqLjg6rjg6Tjgrks44Ko44OE44KqDQor44Kr44OI44KmLOOCt+ODpeOCpuOCuA0KK+OCv+ODiuOCqyzjg57jgrXjg5Ljg4gNCivjg4Tjgrjjgr8s44OS44Ot44K3DQor44Kq44Kq44Ks44Ov44OpLOOCv+ODgOOCqg0KK+ODoOODqeOCteODryzjg4jjgrfjg5Ljg60NCivjgrvjgq3jg6Ljg4gs44OS44K144K3DQor44OE44K444Oi44OILOODkuOCteODiA0KK+OCt+OCquOCv+ODiyzjg6jjgqbjgqTjg4Hjg63jgqYNCivjg5/jg68s44OI44K344KqDQor44OK44Ks44K144KrLOOCu+OCpOOCuA0KK+OCs+OCpOODhyzjgqLjgq3jg6kNCivjgqrjgrDjg6ks44OE44OI44OgDQor44OE44OE44OfLOOCv+OCq+ODjuODqg0KK+ODleOCq+ODnyzjgrjjg6Xjg7PjgqTjg4ENCivjg6jjgrfjg4As44K/44Kr44K3DQor44Oi44Ot44Ob44K3LOOCueOCueODoA0KK+OCt+OCquODjizjgr/jg4Djg5Ljg4cNCivjg6Tjg57jgrDjg4Es44OO44OW44Of44OBDQor44Oe44Of44OkLOODhOOCq+OCtQ0KK+OCteOCpOODiOOCpizjgrfjgrLjg6bjgq0NCivjgqLjgq3jg6Tjg54s44Kt44Oo44K3DQor44Ki44OA44OBLOOCq+OCuuODkuODrQ0KK+OCq+ODr+ODjizjg4jjgrfjg5/jg4QNCivjg4rjgqvjg6Djg6ks44Ki44Kt44OS44OtDQor44Ok44Oe44Kw44OBLOODiOOCt+OCrQ0KK+OCteOCr+ODnizjg5Ljg4fjg58NCivjg6Ljg4Hjgrrjgq0s44Oo44K344K/44KrDQor44Ov44K/44OK44OZLOODqOOCpuOCuA0KK+OCs+ODkOODpOOCtyzjgrvjgqTjgrgNCivjgq3jgrcs44Of44Os44KkDQor44OP44Ok44K144KrLOODn+ODgeODqA0KK+OCs+ODleOCuCzjg57jgrXjg47jg5YNCivjgrXjgqTjg4jjgqYs44Ki44Kt44KzDQor44OO44Og44OpLOOCt+ODpeODs+OCuA0KK+ODnuODhOOCpCzjg6bjgq3jgqoNCivjg4/jg6Tjgrfjg4As44Oe44K144KoDQor44Kq44Ks44OvLOOCv+OCq+OCtw0KK+ODm+ODs+ODgCzjgr/jgqvjgrcNCivjgrPjgrbjg68s44Oo44K344Oi44OIDQor44K144K144KtLOODkuODh+OCouOCrQ0KK+ODr+ODgCzjgq3jg6jjgrcNCivjg6Tjg57jg6/jgq0s44K/44OfDQor44OV44K444KkLOODj+ODq+ODqA0KK+OCv+OCreOCtuODryzjg6Tjgrnjg5LjgrMNCivjgrXjg4jjgqYs44Kz44Km44K4DQor44Of44Kr44OfLOOCteODiOOCtw0KK+ODn+ODryzjg47jg5zjg6sNCivjgqrjg4Es44OS44Ot44K3DQor44OV44K444K/LOOCseOCpOOCuA0KK+ODiuOCrOOCvyzjgqTjg4Hjg63jgqYNCivjgq/jg5zjgr8s44Oo44Km44KzDQor44Ki44Kq44Ks44KtLOOCsuODsw0KK+OCq+ODquODpOODiSzjg4rjgqrjgrMNCivjg5/jg4/jgrcs44K344Oz44Kk44OBDQor44Og44Op44Oe44OELOODgeOCqOOCsw0KK+OCq+OCv+ODpOODnizjgqrjgrXjg6ANCivjg6Tjg57jgrbjgq0s44OI44K344OS44KzDQor44Kq44Kq44Ku44K9LOOCreODqOOCv+OCqw0KK+ODkOODkCzjg57jgrXjgqvjgroNCivjg5/jgrfjg54s44Oe44K144OS44KzDQor44Ok44OOLOOCquOCteODoA0KK+ODiuOCq+OCuOODnizjgqLjgq3jg5LjgrMNCivjgr/jgrHjgrfjgr8s44Kt44On44Km44KzDQor44OK44Kr44OOLOODn+ODjuODqw0KK+OCv+OCq+ODjizjg6bjgq0NCivjgqvjg6/jg4As44Kr44K644Oe44K1DQor44K/44K444OeLOOCs+OCpuOCv+ODreOCpg0KK+ODouODgeOCuuOCrSzjgq3jg6jjgrcNCivjgq3jg6Djg6ks44Kr44OE44OfDQor44Ki44Kt44ObLOODiOODn+ODouODiA0KK+ODpOODnuODouODiCzjgqLjgq0NCivjgqvjg6/jgrss44Om44K/44KrDQor44K144K1LOODkuOCteOCqg0KK+ODjuOCuyzjgqvjgrrjg4rjg6oNCivjg5Ljg6njgr8s44OK44Kq44KtDQor44Kz44OQ44Ok44K3LOOCt+ODpeOCpuOCpOODgQ0KK+OCouOCrOODryzjg6bjgqbjgrnjgrENCivjg4bjg6njg6Ljg4gs44OS44Ot44OV44OfDQor44Kq44K244KtLOOCteOCq+OCqA0KK+ODouODqizjgq3jg6fjgqbjgrMNCivjgqbjg4Qs44OS44OI44K3DQor44Ov44Kr44Oe44OELOODiOOCt+OCteODgA0KK+OCpOODnuOCpCzjg5Xjg5/jgrMNCivjgq/jg5ws44K/44Kr44OS44OtDQor44K/44Kr44OOLOOCuOODpeODs+OCuA0KK+ODkuODk+ODjizjg5Ljg4fjgqoNCivjgrnjgrrjgq0s44OP44Or44KtDQor44K/44OK44KrLOOCv+OCq+ODj+ODqw0KK+OCteOCq+ODouODqizjgqvjg6jjgrMNCivjgr/jgq3jgrbjg68s44OG44OEDQor44Oo44K344Kr44OvLOOCv+OCqOOCsw0KK+ODiOODqOODgCzjg6rjg6XjgqbjgqTjg4ENCivjgqbjg6njgrfjg54s44Om44Km44K4DQor44Kz44Oz44OOLOODouODiOODkuODrQ0KK+ODhuODqeOCq+ODryzjgr/jgrHjg4rjgqwNCivjgrPjg5Djg6Tjgrcs44Ki44Kt44OS44KzDQor44Kt44Og44OpLOOCv+OCq+OCsw0KK+OCq+ODn+OCqizjg6zjgqQNCivjgq/jg6zjg5Djg6Tjgrcs44Kt44Oo44OfDQor44Kr44ON44OALOODkuODreOCsw0KK+OCq+ODr+ODouODiCzjgrPjgqbjg5jjgqQNCivjgqTjg57jg6Djg6ks44Oo44K344OS44OtDQor44Kz44OP44Ku44K244OvLOODn+ODjuODqw0KK+OCt+ODjuOCtuOCrSzjgrfjg6XjgqbjgqTjg4Hjg63jgqYNCivjg6HjgrDjg60s44K144OI44K3DQor44Kv44OL44K144OALOODnuOCteODj+ODqw0KK+ODouODqizjgq3jg6gNCivjgqvjg6/jgq7jgrcs44K/44Kr44Om44KtDQor44Kq44Kq44K544KsLOOCq+OCqOODhw0KK+OCueODgCzjg5Ljg63jgrcNCivjg4rjgqvjg6Djg6ks44Kt44Oo44Kr44K6DQor44Kk44K344KzLOOCuOODpeODsw0KK+OCueOCuuOCrSzjg4rjgqrjg6QNCivjgq3jgq/jg4Es44Kr44K644OS44KzDQor44Kq44Ku44K/LOOCouOCreODqQ0KK+OCv+OCq+ODpOODnizjgr/jgqvjg4jjg6kNCivjg4rjgqvjgrfjg54s44Kt44Oo44K3DQor44OE44K444Oi44OILOODkuODreOCtw0KK+ODj+ODpOODnizjgq/jg4vjg5Ljg60NCivjgqTjgr/jgqzjgq0s44Oe44K144Ki44KtDQor44Ok44Oe44Oi44OILOODkuODreOCouOCrQ0KK+OCouODgOODgSzjg5Ljg63jgrcNCivjgq3jgr/jg58s44OS44Ot44OS44OHDQor44K/44Oe44KtLOODn+ODgeOCqg0KK+ODnuOCqOODgCzjg6bjgqbjgrgNCivjgqLjg4Djg4Es44K344On44Km44K+44KmDQor44K/44Oe44OALOOCsOODs+OCuA0KK+ODouODquOCsOODgSzjg6bjgqbjgrgNCivjg6jjgrfjg4rjgqws44OO44Oq44KzDQor44Oe44Ko44OALOOCv+OCqOOCsw0KK+ODr+OCv+ODiuODmSzjgr/jg57jgq0NCivjgr/jgqvjg4/jgrcs44Oo44Oq44K/44KrDQor44Kk44K344KzLOODhuODhOODreOCpg0KK+OCquOCuOODnizjgqvjg4TjgrgNCivjgrfjg5Djg6Tjg54s44Oo44K344Ki44KtDQor44K344OQLOOCv+OCseODkuOCsw0KK+ODiOODouODjizjgrHjg7PjgqTjg4ENCivjgrnjg58s44Oe44K144OV44OfDQor44Of44OE44OK44KsLOOCouOCreOCsw0KK+OCpuODqeODjizjg57jgrXjgq0NCivjg6jjgrPjgrrjgqss44K144OI44K3DQor44OV44K444Kr44OvLOODj+ODq+ODkuODrQ0KK+OCq+ODluODqeOCrizjg57jgrXjg6bjgq0NCivjg6jjgrfjg4As44Om44K/44KrDQor44K144Kk44OI44KmLOODqOOCt+OCouOCrQ0KK+ODpOODjizjgr/jgqvjg5LjgrUNCivjg6jjgrPjgr8s44OK44Kq44OfDQor44OK44Kr44Og44OpLOOCouODhOOCtw0KK+ODiuODn+OCteODiCzjg57jgrXjgqvjgroNCivjg43jgq7jgrcs44Kx44Kk44K+44KmDQor44Kt44OOLOODjuODnOODqw0KK+ODiuOCq+OCuOODnizjgqLjgq3jg6kNCivjg4Tjg4Tjg58s44K344Ol44Km44Kk44OBDQor44Kz44Km44OALOODpOOCueODkuOCsw0KK+ODm+ODqizjg5/jg6bjgq0NCivjgrPjg7Pjg44s44Kr44K644OkDQor44Ov44OALOODpuODn+OCsw0KK+ODnuODhOODiuOCrCzjgrXjg4DjgqoNCivjg4vjgrfjg6Djg6ks44OI44K344Om44KtDQor44Kk44KkLOODpOOCueODkuODrQ0KK+ODpOOCueOCpCzjg4rjgqrjgq0NCivjgrPjg5Djg6Tjgrcs44K344Ol44Km44Kk44OBDQor44Ok44Oe44K144KtLOODnuOCteODkuODrQ0KK+OCueOCuuOCrSzjg6Tjgrnjg6bjgq0NCivjgqTjg6/jgr8s44OP44Or44OS44KzDQor44K344Ky44Oi44OqLOOCv+OCq+OCtw0KK+OCpOODnuODoOODqSzjg47jg5bjgr/jgqsNCivjg4Tjgqvjg6Ljg4gs44Ki44Kt44OoDQor44Kk44OI44KmLOOCt+ODs+OCueOCpA0KK+OCr+ODnCzjgrjjg63jgqYNCivjgrXjg4rjgqgs44Kr44K644Oe44K1DQor44Kz44OA44OeLOOCouOCreOCqg0KK+OCpOODiOOCpizjgqvjg4TjgrcNCivjgqLjgq/jg4Qs44Oo44Km44KzDQor44Ki44K/44Op44K3LOODn+OCqOOCsw0KK+OCv+OCsOODqizjgrjjg6Xjg7PjgrMNCivjg44s44K/44OE44OkDQor44Ki44Kr44Oe44OELOOCseODs+OCuOODreOCpg0KK+OCouOCteODjizjgrHjg7PjgrgNCivjg4rjgqvjgqzjg68s44Oe44K144Ki44KtDQor44Kr44Ov44K344OeLOOCouOCteOCsw0KK+OCteODiOOCpizjg5Ljg4fjgqoNCivjgqrjgrDjg6ks44K744Kk44K4DQor44Kk44K344OQ44K3LOODkuODreODpuOCrQ0KK+ODnuODhOOCquOCqyzjgr/jgqvjg6jjgrcNCivjgr/jgq3jgrbjg68s44Oe44K144Oo44K3DQor44Kk44K/44Kv44OpLOOCteODiOOCtw0KK+ODm+ODs+OCtOOCpizjg6jjgrfjgqvjgroNCivjg4rjgqzjg6Tjgrks44K/44Kr44Om44KtDQor44Km44OB44OALOODkuODreOCtw0KK+ODpOODnuOCt+OCvyzjg4Tjg43jgqoNCivjgqTjgrfjgrDjg60s44OS44Ot44K3DQor44Oi44OqLOODiOODqOODkuOCsw0KK+OCv+ODiuOCqyzjgrPjgqbjgqTjg4ENCivjg5LjgrDjg4Es44K344Ky44OIDQor44Kt44OILOOCt+ODs+OCpOODgQ0KK+OCv+ODiuOCqyzjgqvjgrrjg6bjgq0NCivjgrnjgrrjgq0s44Kr44K644OS44OtDQor44K544Ks44KkLOOCseODs+OCuA0KK+ODqOODjeOCtuODryzjg6jjgrfjgqvjgroNCivjgqLjg6njgqvjg68s44Oq44Ol44Km44K4DQor44Kk44OO44OALOODpOOCueODkuOCtQ0KK+OCq+ODiOOCpizjg57jgrXjgqoNCivjgqvjgrLjg6Tjg54s44Oe44K144K3DQor44Of44Ok44Ov44KtLOODiOOCt+ODkuOCsw0KK+ODn+ODgeODpOODnizjgr/jg4Djg6TjgrkNCivjg6Ljg6os44OI44K344Ki44KtDQor44Oi44Oq44K144OvLOOCt+ODs+OCpOODgeODreOCpg0KK+ODi+OCt+ODoOODqSzjgqvjg4Tjg6bjgq0NCivjgrXjgqTjg4jjgqYs44Ok44K544OO44OqDQor44Ok44Oe44Oi44OILOODqOOCpuOCueOCsQ0KK+ODnuODhOOCpuODqSzjg6jjgrfjgqLjgq0NCivjg4/jgrvjgqzjg68s44OE44OI44OgDQor44Km44OB44OALOOCuOODpeODs+OCpOODgQ0KK+ODpOOCueODgCzjgrPjgqbjgqTjg4ENCivjgqTjgrfjg4As44OI44Kq44OrDQor44Oi44Oq44OOLOOCq+ODhOODnuOCtQ0KK+OCreOCv+ODpOODnizjg6jjgrfjg5Ljg60NCivjgrXjgqvjg6Ljg4gs44Oo44K344OO44OqDQor44K944Km44Of44OkLOODkuODreODpuOCrQ0KK+OCreOCr+ODgSzjgrfjg7PjgqTjg4ENCivjgrfjg5bjgqQs44Kz44Km44K4DQor44OI44Of44K/LOOCouODhOOCtw0KK+ODouODqizjgrPjgqbjgrgNCivjg6Tjg57jgrDjg4Es44K444Ol44Oz44K4DQor44Kt44K/44Ok44OeLOODqOOCt+ODkuODrQ0KK+ODnuODs+ODouODiCzjgqLjgq3jg6kNCivjgr/jg4rjgqss44Om44K/44KrDQor44Oi44OqLOOCq+OCuuODkuODrQ0KK+OCpOOCv+OCr+ODqSzjgqTjgrXjg6ANCivjgqTjg4Hjg5/jg6Qs44Oe44K144K3DQor44OL44K344Ok44OeLOOCq+ODhOOCuA0KK+ODr+OCv+ODiuODmSzjg5Ljg63jgrcNCivjg4/jg7PjgqzjgqQs44OP44Or44KqDQor44OK44Ks44OOLOOCseOCpOOCpOODgeODreOCpg0KK+OCt+ODkCzjgrHjg7PjgrgNCivjgrPjgrjjg54s44K544K544OgDQor44K/44K/44OOLOOCteODiOOCtw0KK+OCq+ODr+ODkOOCvyzjg57jgrXjg5LjgrMNCivjgr/jgrHjg4As44K/44Ot44KmDQor44Kq44Og44OpLOOCpOOCr+ODreOCpg0KK+OCteOCsyzjg5Ljg63jgrcNCivjgqTjgrfjg4/jg6ks44Of44OO44OrDQor44Kk44OB44OO44K7LOOCueOCueODoA0KK+OCreOCt+ODgCzjg6jjgrfjg58NCivjg5/jgqvjg58s44K444Ol44OzDQor44OP44Ok44K3LOOCv+OCr+OCuA0KK+OCteOCteOCrSzjgqLjg6bjg58NCivjg6jjg43jg5/jg4Qs44Kr44K644OK44OqDQor44K744Kt44ONLOODqOOCt+ODiuODqg0KK+OCpOODnuODi+OCtyzjgq3jg6jjgr/jg4ANCivjgqLjgqrjgq0s44K/44OA44K3DQor44K544Ku44Ok44OeLOOCpOOCteOCqg0KK+ODiuOCq+ODouODqizjg6jjgrfjg5Xjg58NCivjgrfjg57jg4As44Oe44K144OS44KzDQor44Oe44K544OALOODleOCteOCqg0KK+ODhOODnOOCpCzjg5Ljg63jgrcNCivjgrvjgq3jg6Qs44K544K544OgDQor44Kt44K444OeLOODjuODquOCqg0KK+ODqOOCt+OCuuODnyzjg5Ljg4fjgr/jgqsNCivjg6Tjg4rjgq7jg4Djg4Ys44K344Oz44OkDQor44K344Ky44Oe44OELOODj+ODq+ODpOOCuQ0KK+OCpOODjuOCpuOCqCzjg4rjgqrjgq0NCivjgr/jgrHjgqbjg4Es44Kx44Kk44KzDQor44K/44OK44KrLOOCv+OCseOCtw0KK+ODkuOCrOOCtyzjgrfjg6XjgqbjgrgNCivjgr/jgqvjgr8s44OK44Kq44OS44OtDQor44OK44Kr44KkLOODhOOCruOCqg0KK+ODj+OCu+OCrOODryzjgrjjg6Xjg7PjgqTjg4ENCivjgr/jg4ss44K/44Kr44K3DQor44Kz44OQ44Ok44K3LOODn+OCreODiOODqA0KK+OCv+OCq+ODj+OCtyzjgqLjgrXjgrMNCivjgqLjg5ks44Oe44K144OIDQor44Kz44OQ44Ok44K3LOODqOOCt+OCvuOCpg0KK+OCquODjizjgqTjgq/jg6QNCivjgr/jgqvjg4/jgrcs44Om44Kt44OS44OtDQor44Kv44Ot44OALOOCouODhOOCtw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jgrcNCivjgqLjg5ks44K344Oz44K4DQor44Kk44OO44Km44KoLOODqOOCpuOCsw0KK+OCqOODs+ODiSzjg6jjgrfjgqoNCivjg47jg47jgrfjgr8s44K344Ky44OV44OfDQor44Kr44OK44KkLOOCr+ODn+OCsw0KK+OCs+OCv+OCrSzjgrgNCivjgr/jgqvjg4/jgrcs44Oo44Km44KzDQor44K344Ky44Ok44OeLOODiOODn+OCqg0KK+ODleOCq+ODgCzjgqLjgq3jgqoNCivjgrfjgqrjgrgs44Kr44OE44Om44KtDQor44Oi44Oq44OkLOODleODn+ODkuODrQ0KK+OCquOCquODhOOCqyzjg57jgrXjg6QNCivjgqLjg5ks44Oe44K144K/44KrDQor44OS44Op44KkLOOCv+OCq+ODpuOCrQ0KK+ODoOODqeODnuODhCzjgrjjg6Xjg7MNCivjg5/jgrrjgr8s44Oe44K144OfDQor44Ob44Oq44KoLOOCq+OCuuODpuOCrQ0KK+ODkuOCq+OCtSzjg57jgrXjgr/jgqsNCivjgqrjgrfjgr/jg4ss44Oe44Kz44OIDQor44Kz44OQ44Ok44K3LOOCq+ODhOODnw0KK+OCr+ODqeODj+OCtyzjg5Ljg4fjg6bjgq0NCivjg5Ljg6njg5Djg6ss44K/44Kx44KqDQor44OV44K444Ko44OALOODnuOCs+ODiA0KK+ODiOOCtuODryzjgqvjg4Tjg58NCivjg6Tjg4rjgrss44K344Ky44OrDQor44Kv44Oc44K/LOODqOOCt+OCqg0KK+ODnuODn+ODpCzjg57jgrXjgq0NCivjg6bjg4/jg6njgq4s44Oe44K144OfDQor44OB44On44Km44OK44OzLOODqOOCt+ODnuODrQ0KK+ODn+ODqOOCtyzjg4jjgqrjg6sNCivjg47jgrjjg54s44Oo44K344OO44OqDQor44Oi44Oq44K144KtLOODnuOCs+ODiA0KK+OCs+ODpOODnizjg4jjgrfjgqLjgq0NCivjgqvjg4jjgqYs44OS44Ot44KtDQor44Kt44OO44K344K/LOODpOODgeODqA0KK+OCq+ODr+ODoOODrSzjgrXjg4jjgrcNCivjg6Ljg6os44Kx44Kk44Kk44OBDQor44OS44Op44K344K/LOOCteODgOOCrQ0KK+OCq+ODr+OCt+ODnizjg6rjg6fjgqYNCivjg5Xjg6vjgqvjg68s44Ki44Kt44OIDQor44Kk44Oz44OH44OzLOODnuOCteODkuOCsw0KK+ODpOODnuODgCzjg6Tjgrnjg6bjgq0NCivjg4Tjgq/jg4As44Of44OO44OrDQor44Kk44Ov44K144KtLOODnuOCteODkuODiA0KK+OCquODnuOCqCzjgqrjgrXjg6ANCivjgrnjgrrjgq0s44Oe44K144Om44KtDQor44OP44OpLOODnuOCteODkuOCsw0KK+OCteOCq+OCpCzjgr/jg4Tjg6Djg40NCivjg6Ljg6rjg6Qs44Kr44K644Oe44K1DQor44Of44Ok44Oi44OILOODiOOCt+ODkuODrQ0KK+OCt+OCsuOCvyzjg57jgrXjg5Ljg60NCivjgqTjgrfjgqvjg68s44OS44OH44OO44OqDQor44K/44K244KtLOOCteODgOODoA0KK+OCueOCqOODkuODrSzjg6Djg43jg6QNCivjgqvjg43jg4As44Kz44Km44Kk44OBDQor44K544Ko44OS44OtLOOCuOODpeODs+OCpOODgQ0KK+OCteOCteOCrSzjg6rjg6XjgqbjgrXjgq8NCivjg5Ljg6Tjg54s44K/44OE44OP44OrDQor44Kt44OJ44Kw44OBLOODqOOCt+ODkuODrQ0KK+OCt+ODnuODgCzjg4jjgrfjg6bjgq0NCivjg5/jg6TjgrEs44OS44OI44OfDQor44Oi44OqLOOCuOODreOCpg0KK+OCt+ODqeOCq+ODryzjgrPjgqbjgrgNCivjg6/jgqvjg5Djg6Tjgrcs44K344Oz44Kk44OB44Ot44KmDQor44Ok44Oe44K344K/LOOCq+OCuuOCqg0KK+OCouODnuODjizjgrjjg6Xjg7PjgrgNCivjgr/jgrHjgqTjg4Es44OS44Ot44K/44KrDQor44K344OzLOOCseOCpOOCsw0KK+OCq+OCteODj+ODqSzjg4bjg4Tjg6QNCivjgr/jg4rjgqss44Kx44Kk44K3DQor44Kq44Kv44OALOOCouOCreODqQ0KK+OCq+ODiOOCpizjg4jjg6LjgrMNCivjgqvjg6/jgrXjgq0s44Oe44K144KzDQor44Kr44OI44KmLOOCq+OCuuOCqg0KK+OCpOODgeOCuyzjg57jgrXjgqLjgq0NCivjgq3jgr/jgqzjg68s44Ky44Oz44OY44KkDQor44Ok44K544KkLOODqOOCt+ODjuODlg0KK+OCqOODgCzjg4jjg5/jgqvjgroNCivjg4/jg6Tjgrcs44K/44OE44K4DQor44OK44Ks44KkLOOCteODiOOCtw0KK+ODiOODjuODoOODqSzjg57jgrXjg47jg6oNCivjgr/jg4rjgqss44OO44OW44Om44KtDQor44Kv44Oq44OQ44Ok44K3LOODqOOCt+ODjuODqg0KK+OCreODoOODqSzjgqvjg4TjgrMNCivjg4/jgrzjgq0s44OO44OW44Om44KtDQor44Ki44Oz44OOLOOCouODhOOCtw0KK+OCv+OCq+ODqOOCtyzjg6jjgrfjgrXjg4gNCivjgqLjg7PjgrbjgqQs44K344On44Km44K444Ot44KmDQor44K/44Kr44OP44K3LOOCquOCteODoA0KK+ODj+ODqeODjizjg4Tjg43jgqoNCivjg4rjgqvjgqzjg68s44Kr44OE44Oo44K3DQor44OL44K344Kr44OvLOODpuOCreOCqg0KK+OCt+ODluODpCzjgqvjgrrjg5Ljg60NCivjgqvjg4jjgqYs44OO44OW44OS44OtDQor44Ki44OA44OBLOODiOOCt+ODkuODrQ0KK+OCteOCr+ODqeOCpCzjg6Tjgrnjgr/jgqsNCivjgq/jgrXjg44s44OI44K344OS44OtDQor44Of44OK44Of44K+44OOLOODn+ODjuODqw0KK+ODhOOCuOODoOODqSzjgqLjgq3jg4jjgrcNCivjg6Tjg57jg4As44Kk44K144OgDQor44Kr44OE44K344OeLOOCt+OCsuODnw0KK+OCs+ODpOODiuOCqyzjg5Ljg63jg6bjgq0NCivjgr/jg5Djgr8s44Ki44Kt44OpDQor44Ki44OA44OBLOODqOOCt+ODkuODrQ0KK+ODkuODreODjizjgrvjgqTjgqTjg4ENCivjg4Tjgrbjgq0s44OS44Ot44Ki44KtDQor44K/44OB44OQ44OKLOOCt+OCsuOCouOCrQ0KK+ODmeODg+OCt+ODpyzjgqvjgrrjg58NCivjg57jg4Tjgrfjgr8s44OB44Ol44Km44K+44KmDQor44K/44OL44Kw44OBLOOCseODs+OCt+ODpeOCpg0KK+ODiuOCq+ODiOODoizjg6Djg4Tjg58NCivjg4vjgrfjg6Djg6ks44OS44Ot44K3DQor44Of44Km44OpLOODnuOCs+ODiA0KK+OCs+ODs+ODiSzjgqrjgrXjg6ANCivjg57jg4TjgqQs44Oe44K144KtDQor44Oe44OE44Oi44OILOODkuODreOCq+OCug0KK+ODm+ODquOCpCzjg5Ljg63jgrcNCivjg57jgrnjg6Ljg4gs44OE44OI44OgDQor44OK44Kr44K444OeLOODgeOCq+OCtw0KK+OCreODoOODqSzjgrHjg7PjgqTjg4ENCivjg5/jg68s44OS44Ot44Om44KtDQor44Kk44K344OQ44K3LOODpOOCueOCtw0KK+OCqOOCsOODgSzjg47jg6rjg5LjgrUNCivjgqTjg4rjg5Xjgq8s44K444Ol44OzDQor44Ov44K/44OM44KtLOODpOOCueODkuODrQ0KK+ODkuOCsOODgSzjg6jjgrfjg5LjgrMNCivjgqTjgrHjg44s44Kt44Kv44KqDQor44Km44Oh44OP44OpLOODnuODiuODlg0KK+ODjuOCtuODryzjgr/jg4DjgrcNCivjgqTjg57jgqQs44Oe44K144KtDQor44K/44Kr44OP44K3LOOCq+ODhOOCuA0KK+OCpOOCpOODgCzjg4/jg6vjg5LjgrUNCivjg5Xjgrjjgqvjg68s44Kr44Kq44OrDQor44OL44K344KoLOOCv+ODgOODkuOCsw0KK+OCs+OCueOCsizjg5Ljg63jgrcNCivjgqrjgqrjgr8s44K444Ol44Oz44KzDQor44OO44K4LOOCr+ODi+ODkuOCsw0KK+OCs+ODnOODqizjg5/jgq3jgqoNCivjgrnjgq7jg6Tjg54s44Oo44K344Ki44KtDQor44Kr44Ov44K/LOODhuODhOODkuOCsw0KK+OCteODoeOCt+ODnizjg5/jg43jgqoNCivjgrPjg6Tjg54s44Kt44Oo44K/44KrDQor44Ko44Oz44Kr44KkLOOCv+OCq+OCtw0KK+OCs+ODouODgCzjg4Tjg4jjg6ANCivjgqrjgqzjg68s44Kz44Km44Kk44OBDQor44Ok44Oe44Og44OpLOOCq+OCuuODnuOCtQ0KK+OCqOODjuODouODiCzjg6zjgqTjgrgNCivjgr/jgqvjg4As44OS44K144K/44OADQor44OK44Kr44Of44K+LOODpuODn+OCsw0KK+OCquOCq+ODoOODqSzjg5Ljg63jgrcNCivjgqvjg5/jg5Djg6Tjgrcs44K744Kk44K4DQor44OV44K444Oi44OqLOODn+OCreOCqg0KK+OCr+ODreODgCzjgrfjg7PjgqTjg4ENCivjgrXjg4jjgqYs44Oo44Oq44KoDQor44Oo44K344Og44OpLOOCv+OCreOCqg0KK+ODouOCv+OCpCzjgr/jgq/jgrgNCivjg6Djg6njgr8s44OI44Kq44OrDQor44Of44OvLOODiuOCquODiA0KK+OCpOODj+ODqSzjgqjjg58NCivjgqTjg57jgqQs44K/44Kr44K3DQor44OS44OOLOOCq+OCuuOCqg0KK+ODnuODhOODouODiCzjgr/jgqvjgrcNCivjgrvjg4gs44Oo44Km44K4DQor44Kv44Oe44Ks44KkLOODpOOCueODkuODrQ0KK+ODpOODnuODgCzjg6jjgrfjgqoNCivjg6/jgr/jg4rjg5ks44Om44Km44KzDQor44Ok44K144KrLOODkuODreOCtw0KK+OCteODiOOCpizjgqLjgq3jg5Ljg60NCivjg5/jg6Tjgr/jgrEs44OS44Ot44OO44OWDQor44Oe44OE44Km44OpLOODkuODiOOCtw0KK+ODnuODhOOCt+OCvyzjg57jgrPjg4gNCivjgqbjg6njg5ks44Kk44K144OgDQor44K344Ks44KtLOODnuOCteODqOOCtw0KK+ODhuODqeODgCzjg6jjgrfjg5Ljg4gNCivjgqTjg6/jg6Ljg4gs44Oo44K344Ki44KtDQor44Kk44OO44Km44KoLOOCuOODreOCpg0KK+ODouODgeOCuuOCrSzjg6bjgq3jgqoNCivjg6jjgrfjgrrjg58s44Ko44Kk44Kk44OBDQor44Of44Km44OpLOODn+ODhOODqw0KK+ODn+OCuuODjizjgr/jgqvjg6bjgq0NCivjg6jjgrfjgqQs44K444Ol44Oz44Kk44OBDQor44OV44Or44KkLOODqOOCt+ODkuODrQ0KK+ODj+ODpOOCtyzjgrfjgrLjgqLjgq0NCivjgrfjg6njgqTjgrcs44OS44OH44KqDQor44K544Ks44Ov44OpLOOCv+ODhOOCqg0KK+ODiuOCq+OCpCzjgrHjgqTjgqTjg4ENCivjg47jg5Xjgrgs44Oo44K344OP44OrDQor44K144OI44KmLOODkuODreOCq+OCug0KK+OCr+ODreODgCzjgq3jgqTjg4ENCivjgqTjgrHjg4As44K/44Kr44K3DQor44K144KsLOOCseOCpOOCtw0KK+ODn+ODpOOCq+ODryzjgqTjgq/jg5LjgrUNCivjg6/jg6njgrfjg4os44K344Ky44OrDQor44Kt44K/44Ks44OvLOODjuODluODpuOCrQ0KK+OCpOODnuOCpCzjg5Xjg5/jgqLjgq0NCivjg5/jgrXjgq0s44OS44Ot44OO44OWDQor44Kk44K344OALOOCv+OCseOCtw0KK+ODquOCr+ODqSzjg5Ljg4fjgqLjgq0NCivjgrfjg6fjgqbjgrgs44Kz44Km44Kk44OB44Ot44KmDQor44OV44Kv44OK44KsLOODqOOCt+OCq+OCug0KK+OCr+ODreOCrSzjgr/jgqvjgqoNCivjg57jgr/jgq0s44K344On44Km44K244OzDQor44K744Kt44ONLOODnuOCteODj+ODqw0KK+ODpOODnuOCt+OCvyzjg5/jg4Tjg5Ljg60NCivjgr/jg4rjgqss44Oo44K344Ki44KtDQor44Kq44Kq44OP44OeLOODnuOCteODkuODrQ0KK+OCquOCquODhOODnCzjg6jjgrfjgqLjgq0NCivjgr/jgqQs44OS44K144OP44OrDQor44OE44Or44OkLOODnuOCteODjuODqg0KK+ODqOOCt+ODgCzjg6jjgqbjgqTjg4ENCivjg57jgrnjg5/jg4Qs44K/44Kr44K3DQor44Kr44K544OkLOOCt+OCsuOCqg0KK+ODqOOCt+ODgCzjg5/jg47jg6sNCivjgqvjg6/jg6Djg6ks44OS44OH44KtDQor44OP44Ok44K3LOOCr+ODi+ODkuOCsw0KK+OCr+ODi+ODouODiCzjg57jgrXjg6bjgq0NCivjgqLjg6njgqvjg68s44OS44OK44KzDQor44OK44Kr44Og44OpLOODnuOCteODjuODqg0KK+OCpOOCt+OCsOODrSzjgrvjgqTjgrgNCivjg4/jg6Tjg58s44Kr44OE44OS44KzDQor44Of44OK44Of44K+44OOLOOCreODs+OCuA0KK+OCteOCq+OCvyzjg5/jg47jg6sNCivjgqvjg6/jg6Ljg4gs44OV44Of44Kr44K6DQor44Og44Op44Kq44KrLOODpOOCueODjuODqg0KK+OCpOODiOOCpizjg6jjgrfjgqoNCivjg6/jgr/jg4rjg5ks44Of44OB44KqDQor44OO44Og44OpLOODnuOCteOCq+OCug0KK+OCteODiOOCpizjg4/jg6vjg4oNCivjg6/jgr/jg4rjg5ks44OS44Ot44K3DQor44Kz44OQ44Ok44K3LOODnuOCteOCq+ODhA0KK+ODjOODq+OCrSzjg5Ljg4fjg5LjgrMNCivjg6jjgrfjg4As44Oo44Km44Kk44OBDQor44K144Kk44OI44KmLOODkuODreOCtw0KK+ODkuODqeOCpCzjg6jjgrfjg6bjgq0NCivjgq3jg6Djg6ks44K/44Kr44K3DQor44Kq44KvLOODreOCpg0KK+ODj+ODpOOCteOCqyzjg6TjgrnjgrMNCivjgqLjgrXjg44s44Kx44Oz44K4DQor44OV44K444K144KtLOOCt+ODs+ODpA0KK+OCouOCreODouODiCzjg6rjgqsNCivjgrfjg57jg4As44Oe44K144KoDQor44Of44K644Kr44OfLOODnuOCteODj+ODqw0KK+ODiuOCq+OCrOODryzjg4jjgqrjg6sNCivjgrXjg4jjgqYs44OG44OE44OkDQor44Kz44OQ44K344OqLOOCseODs+OCuA0KK+OCouODqeOCrSzjg6jjgrfjgqoNCivjgrnjgrrjgq0s44OK44Kq44OI44K3DQor44OL44K344OHLOOCu+ODhA0KK+OCquODgeOCouOCpCzjg6jjgrfjg5LjgrUNCivjg47jg4rjgqss44K/44Kr44K3DQor44Ok44K544KkLOODquODpeOCpuOCuA0KK+OCs+ODj+OCvyzjgrHjg7PjgqTjg4ENCivjg5/jg47jgrfjg54s44Ki44OE44KqDQor44OG44Op44K344OeLOOCreODn+ODkuOCsw0KK+ODpOOCr+ODryzjg6jjgrfjgqoNCivjgrnjgqzjg6/jg6ks44Of44OB44KqDQor44Of44OE44OP44K3LOODhuODhOODreOCpg0KK+ODjuODoOODqSzjg47jg6rjgrMNCivjg4Hjg6fjgqYs44Ki44K644OfDQor44K144OI44KmLOODquODp+OCpuOCsw0KK+OCt+OCuuODj+ODqSzjg6zjgqTjgrMNCivjg4/jg6Tjgrfjgqvjg68s44Kx44Oz44K4DQor44OL44OvLOODqOOCt+OCqg0KK+ODn+OCqOODjizjgrHjg7PjgqTjg4ENCivjgrfjg57jg4As44OS44OH44OIDQor44OK44Kr44Og44OpLOODiOOCt+OCqg0KK+ODkuODqeODjizjg6rjg6fjgqbjgqTjg4ENCivjg6Tjg57jg4jjg6Qs44Kr44K644OS44KzDQor44OE44OO44OALOODpOOCueODjuODqg0KK+OCs+ODkOODpOOCtyzjg47jg5bjgqLjgq0NCivjgrXjgqvjgq/jg6ks44Kt44On44Km44KzDQor44Oe44OE44OALOODnuOCteOCouOCrQ0KK+OCpOODnuODoOODqSzjgrvjgqTjgrcNCivjg6Tjgq7jg4/jgrcs44OK44Kq44KzDQor44Kq44Ku44OOLOODkuODreOCqg0KK+OCv+ODiuOCqyzjg6jjgrfjg57jgrUNCivjg5Ljgqws44Oo44K344Kr44K6DQor44K144KzLOODhOODiOODoA0KK+OCv+OCtuOCrSzjgr/jg6Ljg4QNCivjgqTjgqTjg4As44Oe44K144OP44OrDQor44Kk44Kk44OALOODquODp+OCpuOCueOCsQ0KK+ODnuODhOOCsOODnizjgrfjgrLjg5sNCivjg6Djg6njgr8s44Kx44OzDQor44Ok44K544Oi44OILOODnuOCs+ODiA0KK+OCt+ODn+OCuizjg5Ljg63jgrcNCivjg6/jgq/jgqQs44Oo44K344K/44KrDQor44K/44Kr44OP44K3LOODqOOCt+OCqg0KK+OCreOCv+OCpCzjg4jjgrfjg5LjgrMNCivjgqLjg4Djg4Es44K344On44Km44Kk44OB44Ot44KmDQor44OP44OK44OW44OBLOODj+OCuOODoQ0KK+OCteODiOOCpizjgq/jg4vjg5Ljg60NCivjgqLjg6njgqQs44OI44K344OS44KzDQor44K/44Kx44OK44KrLOOCteODiOOCtw0KK+OCq+OCpCzjg5/jg5vjgrMNCivjgqLjgqvjg4As44K344K644KqDQor44Kv44OL44K544KoLOODkuODreOCouOCrQ0KK+ODnuOCqOOCq+ODryzjgqLjgq3jg6kNCivjg5/jg4rjg58s44Of44OE44K3DQor44K/44Kt44Ks44OfLOODkuODh+ODpuOCrQ0KK+ODnuODhOOCpCzjg57jgrPjg4gNCivjgrfjg6njgqQs44Oe44K144Of44OBDQor44K/44Kx44Oo44K3LOOCu+OCpOODjuOCueOCsQ0KK+OCv+OCq+ODgCzjgq3jg6jjgr/jgqsNCivjgr/jgqvjgq4s44K/44Kr44OS44KzDQor44Kv44OJ44KmLOOCreODqOOCv+OCqw0KK+OCt+ODnuODgCzjg47jg5bjgrMNCivjgqvjg4jjgqYs44Kr44K644KqDQor44K344Ku44On44KmLOODkuODh+OCouOCrQ0KK+ODkuODreODjizjgr3jgqrjgrjjg6MNCivjgq3jg47jgrfjgr8s44Oo44K344KoDQor44K344Of44K6LOOCt+ODp+OCpuOCvuOCpg0KK+OCt+ODoOODqSzjg5Ljg63jgqLjgq0NCivjgq/jgrXjgqvjg6os44Of44ObDQor44Kr44Or44OZLOODiOOCt+ODj+ODqw0KK+ODnuODhOODouODiCzjg4rjgqrjg6bjgq0NCivjgrfjg57jg6Djg6ks44OI44Oe44K1DQor44Kr44OE44Kr44OvLOOCv+OCq+OCqg0KK+OCpOOCuizjgqTjgrXjgqoNCivjgrXjgq/jg6njg6Ljg4gs44Kk44OE44K4DQor44Oi44Oq44K/LOOCuOODreOCpg0KK+OCv+ODiuODmSzjgq/jg4vjgqTjg4ENCivjg4/jg4Pjg4jjg6os44OV44Of44OIDQor44Oq44Ol44Km44K0LOOCt+ODpeODs+OCpOODgQ0KK+OCquODnuODhOOCtuODryzjg57jgrXjg4/jg6sNCivjgqrjg4jjg68s44Om44Kt44Oo44K3DQor44Kz44OA44OeLOOCu+OCpOOCpOODgQ0KK+OCq+ODpOOCt+ODnizjg6bjgqbjgrgNCivjgrPjg5Djg6Tjgrcs44K344Ky44OrDQor44Kv44OL44Ko44OALOODnuOCreOCqg0KK+OCs+OCpizjgqvjgrrjg4rjg6oNCivjg4vjgrfjg6Tjg54s44OS44OI44OfDQor44Ov44OALOODkuODreODpA0KK+ODi+OCt+ODouODiCzjgr/jgqvjgrcNCivjgrXjgqTjg4jjgqYs44Kr44OE44OO44OqDQor44OI44K344OeLOODqOOCpuOCpOODgQ0KK+OCquOCquODhOOCqyzjg5vjgrPjgq8NCivjgqrjg44s44Oe44K144OrDQor44K544K644KtLOOCv+OCq+OCtw0KK+OCteOCr+ODqeOCpCzjgr/jgqvjgrcNCivjgqrjgrzjgq0s44K/44Kr44K3DQor44Kq44Kr44OALOODnuOCteODn+ODhA0KK+OCquOCrOODryzjg5Ljg63jgrcNCivjgqTjgrHjgqzjg58s44OS44OH44OI44K3DQor44Kz44Oe44OELOOCv+OCq+ODjuODqg0KK+ODqOOCt+OCpCzjg6jjgrfjgqLjgq0NCivjg5Ljg6njg44s44K344On44Km44Kk44OBDQor44K/44Kr44K544KrLOODkuODreOCtw0KK+ODj+OCt+ODouODiCzjg6Tjgrnjg6bjgq0NCivjgq/jg6/jgqgs44Kt44Kv44KqDQor44Kr44ON44Oe44OELOOCq+ODjeODkuODhw0KK+ODnuODhOOCqizjgrHjgqTjgqTjg4ENCivjgqTjg4ks44K/44Kr44OS44KzDQor44Kk44OOLOOCuOODpeODs+OCpOODgQ0KK+OCteOCpOODiOOCpizjgr/jgrHjgrcNCivjgqvjg5/jg6Tjg54s44Kz44Km44K4DQor44Kz44K344Oi44OILOOCs+OCpuOCpOODgQ0KK+OCquOCquOCrOODr+ODqSzjg6jjgrfjg47jg5YNCivjgr/jgqvjg4/jgrcs44Oe44Kz44OIDQor44OK44Ks44Oe44OELOOCt+ODs+OCpOODgQ0KK+OCueOCuuOCrSzjgrTjg63jgqYNCivjg4bjg6njgqos44Oo44Km44K4DQor44Ob44Oq44KxLOOCq+OCquODqw0KK+OCueOCuuOCrSzjgr/jgqvjgrcNCivjgqrjgqzjg68s44Kz44Km44Kk44OBDQor44Of44Ok44Oi44OILOODjuODluOCqg0KK+OCquOCquOCueODnyzjg5Ljg63jg6bjgq0NCivjgqTjg6/jg5bjg4Es44OO44OW44Ok44K5DQor44Oe44OE44Km44OpLOOCv+ODhOOCqg0KK+OCteODr+ODgSzjg4HjgqvjgqoNCivjg4bjg6njg4As44K744OE44KzDQor44Kk44OQ44Ok44K3LOODpuOCv+OCqw0KK+OCpOODr+OCuyzjgrjjg6Xjg7PjgqTjg4Hjg60NCivjgqrjgqzjg68s44K744Kk44K4DQor44Ki44K9LOODpOOCueODiOODog0KK+ODleOCr+ODouODiCzjgrXjg6bjg6oNCivjgqTjg4cs44OV44Of44K/44KrDQor44Kr44Ov44K144KtLOODhuODhOOCuA0KK+ODj+ODq+ODiizjg57jgrXjg47jg6oNCivjgr/jgrjjg54s44Om44Kt44OV44OfDQor44Kr44OK44Ok44OeLOODqOOCpuOCuA0KK+OCv+ODiuOCqyzjg6/jgr/jg6sNCivjg57jg4Tjgrbjgq0s44Oe44K144KqDQor44Kk44OO44K144KrLOOCs+OCpuOCuA0KK+OCquOCt+ODpOODnizjg6jjgrfjg5LjgrUNCivjgr/jgrHjgqbjg4Es44K/44Kr44K3DQor44K144K144Kq44KrLOODiOOCt+ODpuOCrQ0KK+OCs+ODouODqizjg57jgrXjgqLjgq0NCivjgr/jgrjjg54s44OS44Ot44Ki44KtDQor44Kk44Kx44Ks44OfLOOCseODs+OCuA0KK+ODpOODnuOCsOODgSzjg57jgrXjgqLjgq0NCivjgqvjg6/jgqvjg58s44K344Ky44KtDQor44Kk44K744KtLOOCqOOCpOOCueOCsQ0KK+OCv+OCseODgCzjg5Ljg4fjg6bjgq0NCivjgr/jgqvjg6Tjgrks44Oe44OK44OWDQor44Kr44Oh44OALOOCv+OCseODiOOCtw0KK+ODleOCuOODjizjg57jgrPjg4gNCivjg5/jgrXjgq0s44Ok44K544OO44OqDQor44OK44Kr44Og44OpLOODiOOCt+OCouOCrQ0KK+OCquOCrOODryzjgrPjgqbjgrgNCivjg4rjgqvjgrbjg68s44OS44OH44OI44K3DQor44K744KtLOODpOOCueOCr+ODiw0KK+ODqOOCt+OCq+ODryzjgr/jgq/jg6QNCivjgr/jgqzjg68s44K/44Kr44K3DQor44Of44K/44OLLOODiOOCt+ODkuOCsw0KK+OCueOCqOOCvyzjgqLjgq3jg5Ljg4gNCivjgqTjg4zjgqQs44Kx44OzDQor44Kq44K144OALOOCteODiOOCtw0KK+ODleODq+OCq+ODryzjgqvjg4TjgqoNCivjgrnjgrrjgq0s44Oe44Kz44OIDQor44Kt44K/44Og44OpLOODquODp+OCpuOCueOCsQ0KK+OCs+ODnuODhCzjg5Ljg63jgr/jgqsNCivjgqLjgrXjg4As44Oo44Km44Kk44OB44Ot44KmDQor44Kr44Oz44K244KtLOODpOOCueODnuOCtQ0KK+OCpuOCueOCpCzjg6jjgrfjg5Xjg58NCivjg5Xjg6vjg6Qs44OI44K344OS44KzDQor44Oo44Kx44Og44OpLOODleODn+ODqOOCtw0KK+ODqOOCs+OCqCzjg6jjgrfjgq0NCivjgqLjgqvjgqTjg68s44OI44K344OS44KzDQor44OV44Kv44K344OeLOODkuODreODpOOCuQ0KK+ODpOOCuOODnizjg6TjgrnjgrcNCivjg4/jg6ks44Of44Om44KtDQor44Kt44K344OALOODpuOCpuOCvuOCpg0KK+OCr+ODnCzjg5/jg4Tjg6sNCivjgqvjgr/jgq7jg6os44Ok44K544OO44OqDQor44Kk44OB44KkLOODleODn+ODpA0KK+ODnuODhOOCrSzjg4jjgrfjgqLjgq0NCivjg6/jgrHjg5ks44Kx44Oz44K4DQor44Oe44Or44Ok44OeLOODkuODh+OCqg0KK+ODhOODkOOCrSzjgrfjgrLjg6sNCivjgrXjg44s44OS44Ot44K3DQor44Of44Ok44Oi44OILOODnuOCteODiOOCtw0KK+ODleOCr+ODpOODnizjg57jgrXjgqLjgq0NCivjgqbjgqjjg6Djg6ks44Oe44K144OrDQor44Kv44Ov44Kr44OJLOODquOCrQ0KK+OCr+ODi+ODnuODhCzjg57jgrXjg6sNCivjgqvjgr/jgqrjgqss44OO44Oq44Om44KtDQor44OI44Of44K/LOOCq+OCuuODjuODqg0KK+ODiuOCq+ODoOODqSzjgqLjg4Tjg5LjgrMNCivjgq/jg4njgqYs44Oo44K344OG44OrDQor44Kq44OW44OBLOODhuODq+ODkuOCsw0KK+ODqOOCt+OCq+ODryzjg4jjgqrjg6sNCivjgqvjgrLjg6Tjg54s44Oe44Kz44OIDQor44OI44OALOOCseOCpOOCpOODgQ0KK+OCv+OCq+ODj+ODqSzjgrXjg4jjgrcNCivjg57jg4Tjgrfjgr8s44K344Oz44K4DQor44Kz44OA44Kk44OpLOODkuODh+OCtw0KK+OCt+ODs+OCq+OCpCzjg6Ljg4jjgqoNCivjg4bjg6njg4As44Oe44K144OS44OIDQor44Kr44Ov44Kt44K/LOODj+OCuOODoQ0KK+ODn+OCpuODqSzjgrXjg4rjgqgNCivjgqLjg5ks44OS44OI44K3DQor44OL44K344Kr44OvLOODpuOCreODkuODrQ0KK+ODm+OCveODgCzjgqTjg6/jgqoNCivjg57jgrnjg4As44Oo44K344KqDQor44Kr44K244OeLOOCv+OCseOCtw0KK+OCouODqeODnuOCrSzjgqvjgrrjgqoNCivjg6/jgr/jg4zjgq0s44Of44OE44KuDQor44K144Kr44Oi44OILOODhOODqOOCtw0KK+OCouODnuOCrOODnyzjgrfjg7MNCivjgrPjg7Pjg44s44Kk44K144KqDQor44Kq44Kv44OALOODqOOCt+ODjuODqg0KK+OCquODj+OCryzjg5/jg4TjgqoNCivjg4rjgqvjg6Djg6ks44Oo44K344OV44OfDQor44OK44Kr44Og44OpLOODpuOCpuOCpOODgQ0KK+OCpuOCt+ODpOODnizjg6bjgq3jgqoNCivjg6Tjgrfjgq0s44Ki44Kk44Kk44OB44Ot44KmDQor44Kt44OO44K7LOOCt+ODpeODs+OCpOODgQ0KK+ODr+OCq+ODpOODnizjgrPjgqbjgqTjg4ENCivjgqTjg57jgqQs44Oe44K144Om44KtDQor44Oe44Ko44OALOOCreODqOOCtw0KK+ODnuODhOOCt+OCvyzjgqjjgqTjgrgNCivjg5Ljg6njgrDjg4Es44OS44Ot44K3DQor44Ov44OALOOCouODhOOCsw0KK+ODr+OCv+ODiuODmSzjgr3jgqbjgqTjg4ENCivjg57jg4TjgqQs44K344Oz44Kk44OBDQor44Oe44OE44Oi44OILOODn+OCreOCqg0KK+ODiuOCq+ODoOODqSzjgrjjg6Xjg7PjgqTjg4Hjg60NCivjgr/jgq3jgr8s44Oo44K344OIDQor44Oe44K544OALOODiOODouOCsw0KK+ODn+ODpOOCpuODgSzjg57jg6bjg58NCivjgrfjg6Djg6ks44K144Kr44KoDQor44Oe44OE44KkLOOCv+OCreOCsw0KK+ODj+ODqeODj+OCvyzjg4jjg5/jgr/jg63jgqYNCivjg5LjgrXjgr/jg4ss44Ki44OE44K3DQor44Kr44Ks44OfLOODnuOCteODhOOCsA0KK+ODqOOCt+ODoOODqSzjg6bjgqbjgrgNCivjgqrjgqrjg4Tjgqss44Kx44Kk44K0DQor44K/44OK44KrLOOCt+ODs+OCpOODgQ0KK+ODkuODqeODjizjgrfjg6XjgqYNCivjgr/jgrHjgrnjgqgs44OG44OE44OkDQor44OL44K344OOLOODqOOCt+ODpuOCrQ0KK+OCquOCquODhOOCqyzjg6HjgrDjg58NCivjgqrjg4As44K344Oz44K4DQor44K344Of44K6LOODpuOCv+OCqw0KK+ODj+ODnuODouODiCzjgr/jgqvjg6jjgrcNCivjg5/jg6Tjg57jgqgs44Oe44K144OK44OqDQor44OK44Ks44K344OeLOOCqOOCpOOCuA0KK+ODn+ODhOODoSzjgrPjgqbjgrgNCivjgqvjgrTjgr/jg4ss44Oo44K344Kr44K6DQor44Oo44Kz44Ok44OeLOOCv+OCq+ODleODnw0KK+OCteOCq+OCvyzjgrHjg7PjgrgNCivjgqrjgqTjgq/jg5ws44Ki44Kt44OS44OHDQor44Kv44Op44Oi44OBLOODkuODreODpA0KK+OCouODs+OCtuOCpCzjg57jgrXjg6bjgq0NCivjg5Xjgq/jgrfjg54s44Oq44KoDQor44OK44Kr44Og44OpLOODkuODiOODnw0KK+OCpOODiOOCpCzjg6bjg6rjgrMNCivjg5vjgrfjg44s44Of44OB44KzDQor44Kz44Kk44OHLOODkuODreODkuOCsw0KK+OCquOCtuOCrSzjgrjjg6Xjg7MNCivjgrvjgrjjg6Is44Oe44K144Of44OBDQor44K544OJ44KmLOODnuOCteODn+ODhA0KK+OCq+OCuOODr+ODqSzjg5/jg4njg6oNCivjgrnjgrrjgq0s44Kr44OE44OS44OtDQor44Ob44K344OOLOODj+ODq+OCsw0KK+ODiuOCq+ODoOODqSzjg6jjgrfjgqLjgq0NCivjg6Ljg6rjgr8s44Ki44Kt44Kr44K6DQor44Ok44Oe44K244KtLOODiOOCt+ODkuOCsw0KK+OCquOCr+OCrOODryzjg57jgrXjg5LjgrMNCivjg4rjgqzjg4/jg54s44OS44Ot44Om44KtDQor44Oo44K344Og44OpLOOCouOCreODn+ODhA0KK+ODnuODhOODgCzjgr/jgqvjg4jjgrcNCivjg5vjgqvjgr7jg44s44Ki44OE44OS44K1DQor44Ki44OZLOODiOOCt+ODhOOCsA0KK+ODiuOCrOOCpCzjgrPjgqbjgrgNCivjg4jjgqzjgrcs44OI44K344OS44OIDQor44Ok44K244KtLOODhuOCpOOCvuOCpg0KK+ODpOODnuOCpuODgSzjg5Ljg4fjgq0NCivjg5/jgrXjgq0s44OK44Kq44KtDQor44Oo44K344OALOOCt+ODs+OCuA0KK+ODiuOCq+ODouODiCzjgrfjgrLjg6sNCivjgrfjg47jg4/jg6ks44OE44ON44Kr44K6DQor44OK44Kr44OL44K3LOOCouOCreODqQ0KK+ODpOOCuOODnizjgq3jg6jjgrcNCivjg4jjg6jjg5Xjgq8s44Om44Km44K4DQor44K/44Kr44K344OeLOOCq+ODhOOCuA0KK+ODleOCt+ODi+OCtyzjgq3jg5/jgqgNCivjg6DjgqvjgqQs44OG44OE44OkDQor44OL44K344Og44OpLOODkuODreODpuOCtw0KK+OCq+ODr+ODkOOCvyzjgrXjg4jjgrcNCivjg6Djgqvjgqjjg4As44K144OI44OrDQor44K344K744KtLOOCpOODg+OCt+ODsw0KK+OCq+OCv+OCquOCqyzjg6jjgrfjg5Ljg4cNCivjg4rjgqTjg4jjgqYs44OS44Ot44KtDQor44Of44OILOODpOOCueODiA0KK+OCquOCquODi+OCtyzjg4jjgrfjg63jgqYNCivjg6jjgrPjg6Tjg54s44K/44Kr44K3DQor44OK44Kr44Og44OpLOOCv+ODhOOCouOCrQ0KK+OCpOOCtuODryzjg5LjgrXjg47jg6oNCivjgr/jg4vjgqzjg68s44OI44Of44KoDQor44K544Ku44K/LOODpuOCqw0KK+OCquOCt+OCvyzjg57jgrXjg6bjgq0NCivjgrfjg57jg4As44OI44Oi44KzDQor44Ok44Oe44Og44OpLOOCs+OCpuOCpOODgQ0KK+ODleOCr+OCquOCqyzjg57jgrXjgrcNCivjg6Tjg4rjg6os44OS44Ot44Ki44KtDQor44K544K644KtLOOCt+ODs+OCuA0KK+OCteOCq+OCpCzjgrXjg4jjg6sNCivjg6Tjg57jg4As44Om44Kt44OS44OtDQor44Ok44Oe44Kz44K3LOOCt+OCsuODqw0KK+ODjuODouODiCzjg4jjgrfjg6bjgq0NCivjgr/jgrHjgrfjgr8s44Oi44OI44KtDQor44Of44OO44OALOOCt+OCsuODpuOCrQ0KK+OCouOCteOCpCzjgrfjg5sNCivjg6Djg43jg6Tjgrks44OS44OH44Om44KtDQor44Kr44Ov44OL44K3LOODnuOCs+ODiA0KK+OCteOCq+OCsOODgSzjg6Tjgrnjg5LjgrUNCivjg6Tjg57jgrbjgq0s44OI44K344OS44KzDQor44Ki44K144Kq44KrLOODkuODh+ODjuODlg0KK+OCreODjuOCt+OCvyzjg5/jgq3jgr7jgqYNCivjg5/jg54s44Kt44Oo44OfDQor44OV44Kv44Oi44Oq44K/LOOCt+OCsuOCqg0KK+OCq+OCuOODpOODnizjg6jjgrfjgrMNCivjg6Tjg57jgrbjgq0s44K444Ol44Oz44Kk44OBDQor44K144OI44KmLOODiOOCt+ODpA0KK+OCq+ODr+ODmSzjg5/jg4Tjg5LjgrMNCivjg57jg6vjg6Tjg54s44OO44OW44Oo44K3DQor44Kq44Ks44Op44ONLOODjuODluOCsw0KK+ODieOCpCzjg6bjgqbjgr7jgqYNCivjgr/jg4rjgqss44Of44OE44KqDQor44Kq44Ku44K344OeLOOCquOCteODoA0KK+OCpOODjuOCpuOCqCzjg5Ljg63jg6bjgq0NCivjg5Xjg6vjg6Qs44OS44Ot44OO44OqDQor44OV44Kv44KkLOODhOODqOOCtw0KK+ODnuOCueODgCzjgr/jgqvjg5Ljg60NCivjg5vjg7Pjg4As44Om44Of44KzDQor44OK44Kr44OL44K3LOODiuOCquOCv+OCqw0KK+ODn+ODpOODnuOCqCzjg4rjgqrjg5LjgrMNCivjgqrjgqvjg44s44OS44OH44KqDQor44OQ44OQLOODqOOCpuOCpOODgeODreOCpg0KK+ODgOOCseODpOODnizjgrXjgq/jgrMNCivjg6Tjg57jgrDjg4Es44Ok44K544KqDQor44OP44Ok44K3LOODiOOCt+ODreOCpg0KK+ODiOODn+OCuuOCqyzjg6Tjgrnjg5Ljg60NCivjg4rjgqvjg4vjgrcs44OP44Or44OS44K1DQor44Ki44OZLOODj+OCuOODoQ0KK+OCouOCquODpOOCrizjg5Ljg63jgrMNCivjg4bjg6njg6/jgq0s44Kt44Oo44KzDQor44Kr44K/44Ku44OqLOODjuODnOODqw0KK+ODiuOCq+OCrOODryzjg57jgrXjgqoNCivjgrPjg5Djg6Tjgrcs44Kr44K644OS44OtDQor44Km44Ko44OALOODkuODreODnw0KK+ODleOCuOODr+ODqSzjgqLjgq3jg5Ljg60NCivjg4/jg6TjgrXjgqss44K/44OE44OfDQor44Kt44Og44OpLOODkuODreOCtw0KK+OCtOODiOOCpizjg57jgrXjg5Ljg60NCivjgrfjg6Djg6ks44Kx44Kk44K+44KmDQor44K744KtLOODiOOCt+OCq+OCug0KK+OCouOCpOOCtuODryzjgqLjgq3jgqoNCivjg47jg6Djg6ks44Kz44K544KxDQor44Kr44Oz44OALOOCt+ODpeOCpuOCuA0KK+OCpuODqeOCpCzjg57jgrnjg58NCivjg6Ljg4jjg6Tjg54s44Oo44K344OP44OrDQor44Kr44Of44Og44OpLOODhuODhOOCqg0KK+ODkuODqeOCpCzjg57jgrXjg6bjgq0NCivjgqLjg6njgqQs44OI44Oi44OK44OqDQor44K144Kk44OI44KmLOODqOOCpuOCpOODgQ0KK+ODnuOCreODj+ODqSzjg57jgrXjgrcNCivjgqrjgqrjg6/jgq8s44Kq44K144OgDQor44Oi44OB44K644KtLOODnuOCteODkuODrQ0KK+ODj+ODs+OCrOOCpCzjg6jjgrfjg5Ljg60NCivjgqTjg47jgqbjgqgs44Kr44K644OS44OIDQor44OK44Ks44Kk44K3LOOCq+ODhOODnw0KK+ODi+OCt+ODouODiCzjgqLjgq3jg6kNCivjg4Tjg4Hjg6Qs44K344On44Km44Kk44OBDQor44Oe44OE44Oi44OILOOCv+OCq+OCtw0KK+ODm+ODsyzjgrfjg6fjgqbjgrQNCivjgqTjg6/jgqQs44K/44OE44OkDQor44Kv44OcLOODnuOCteOCqg0KK+ODj+OCs+OCpCzjg57jgrXjgqoNCivjg6/jgr/jg4rjg5ks44OO44Oq44KqDQor44K544Ku44K/LOODiOOCt+ODn+ODhA0KK+ODiuOCq+ODoOODqSzjgqvjgrrjg5Ljg60NCivjgqvjg6njgrXjgq0s44Kz44Km44Kk44OBDQor44OO44Oq44Oe44OELOODn+ODhOODkuOCsw0KK+OCr+OCueODouODiCzjgr/jgqvjg6jjgrcNCivjg4vjgrfjg6Djg6ks44K144OI44K3DQor44Kz44K544KyLOODnuOCteODig0KK+ODleOCr+ODn+ODhCzjg6Tjgrnjg58NCivjg6Tjg57jgrDjg4Es44K144OW44Ot44KmDQor44Kk44K344Kw44OtLOOCq+OCuuODnw0KK+ODiOOCr+ODgCzjg4rjgqrjg6QNCivjgqLjg6rjg4jjg58s44K444OE44Ot44KmDQor44OS44Ok44OeLOOCt+ODs+OCpOODgQ0KK+ODkuODreOCuyzjg57jgrXjg4jjgrcNCivjg4vjgrfjg4As44OI44Kq44OrDQor44OP44OD44OI44OqLOODqOOCt+ODnw0KK+ODkuODqeODkOODpOOCtyzjgrHjg7PjgqTjg4ENCivjg4/jg6njgrfjg54s44Ko44Kk44K4DQor44OP44OpLOOCv+ODn+OCqg0KK+ODj+ODnuODjizjgqvjgrrjg6bjgq0NCivjg4/jg57jg4As44Oe44K144OI44K3DQor44OP44K344Oi44OILOOCq+ODhOODkuOCsw0KK+ODj+ODpOOCtyzjg5LjgrXjgrgNCivjg5LjgrDjg4Es44Oe44K144OfDQor44OS44Op44OOLOODpuOCv+OCqw0KK+ODm+ODs+ODnizjg57jgrXjg4/jg6sNCivjg4/jg6vjg57jgrcs44Oo44K344Oe44K1DQor44OP44K344Oi44OILOODpOOCueOCqg0KK+ODkuODgCzjgr/jgqvjgrcNCivjg5Ljg6njgrnjgqss44OB44On44Km44K4DQor44OP44Ku44Ov44OpLOOCs+OCpuOCpOODgQ0KK+ODj+ODnuODgCzjgq3jg5/jgqgNCivjg4/jgrfjg6Ljg4gs44Of44OB44OP44OrDQor44Ob44Oz44OeLOODn+ODqOOCtw0KK+ODm+OCq+ODqizjg6Tjgrnjg5Ljg60NCivjg4/jg6njg4As44Of44OB44KzDQor44OP44Ok44K3LOOCseODs+OCuA0KK+ODm+ODquODmSzjgqvjgrrjgqoNCivjg4/jgrfjg6Ljg4gs44Oe44K144KqDQor44OP44K744Ks44OvLOOCv+ODgOOCq+OCug0KK+ODkuODreODmSzjg5/jgq3jgqoNCivjg4/jgrfjg6Ljg4gs44Kr44K644OfDQor44OS44Op44OOLOODnuOCteODpuOCrQ0KK+ODj+OCt+ODouODiCzjgrHjg7MNCivjg5Ljgrjjgqvjgr8s44OE44Ku44KoDQor44Kq44Kq44OM44OeLOOCpOOCteOCqg0KK+ODj+ODluODhCzjg5Ljg63jg6bjgq0NCivjg5Ljg4Djgqss44Kr44K644OS44OtDQor44OP44K344Oi44OILOOCreODs+ODpA0KK+ODj+ODnuODjizjg4rjgqrjgq0NCivjg5Ljgrfjg4zjg54s44OO44OW44Om44KtDQor44OP44OpLOODqOOCt+ODnw0KK+ODj+ODiuOCrSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg4/jg6ks44Kx44Oz44K4DQor44OP44KsLOOCv+OCseOCqg0KK+ODj+ODiuODgCzjg57jgrXjg47jg6oNCivjg5Ljg6njg6Tjg4rjgq4s44OO44OW44K/44KrDQor44Ob44Oq44Kr44OvLOODn+ODhOODjuODqg0KK+ODm+ODquOCq+ODryzjgrHjg7MNCivjg4/jgrfjg6Ljg4gs44Ki44Kt44KzDQor44OP44K/LOODiOOCt+ODkuOCsw0KK+ODkuODqeOCpCzjgrjjg6Xjg7MNCivjg4/jg6njgrDjg4Es44Ok44K544Oe44K1DQor44OS44Op44KqLOODpuOCpuOCpOODgQ0KK+ODj+OCt+OCuuODoSzjgqvjg7Pjgr8NCivjg4Tjgrgs44Oe44OK44OWDQor44K144Kv44Op44K244OvLOODkuODh+ODiOOCtw0KK+OCouODmSzjgrPjgqbjgqTjg4ENCivjgqLjg5ks44Oe44K144OS44OtDQor44Ki44OZLOODkuODreOCvw0KK+OCouODmSzjgrPjgqbjgrgNCivjgqLjg5ks44Kq44K144OgDQor44Ki44OZLOOCv+OCq+OCqg0KK+OCouOCq+OCrizjg6Tjgrnjg5Ljg4gNCivjgqrjgqvjg6Ljg4gs44K344K644KqDQor44Ko44Oz44OJLOODn+ODgeOCsw0KK+OCouOCq+OCpOOCtyzjg4Tjg43jg4/jg6sNCivjg4vjgrfjg4os44Oe44Kz44OIDQor44Ki44Kt44Oi44OILOODiOOCt+OCqg0KK+OCouOCreOCuuOCrSzjg57jgrXjg4jjgrcNCivjg5Ljg6njg5Djg6Tjgrcs44K344Ky44Oe44K1DQor44Ki44Oh44Of44OkLOOCouOCreODqQ0KK+OCouODn+ODjizjgqLjgq3jg5Ljg60NCivjgqLjg4rjg58s44Oe44K144Kr44K6DQor44Ki44OK44K244OvLOOCq+OCquODqw0KK+OCouODs+ODieOCpizjg6bjgqbjgr7jgqYNCivjgqLjg7Pjg4njgqYs44OS44Ot44KtDQor44Ki44Kq44Ok44OeLOODnuOCteOCrQ0KK+OCouOCquODpOODnizjgrPjgqbjgrgNCivjgqLjgqrjg6Tjg54s44K344Oz44Kk44OBDQor44Ki44Op44KkLOOCs+OCpuOCpOODgQ0KK+OCouODqeOCpCzjg57jgrXjgrcNCivjgqLjg6njgqQs44Oe44Kz44OIDQor44Ki44Op44KkLOOCv+ODnuOCqg0KK+OCouODqeOCpCzjg57jgrXjg6TjgrkNCivjgqLjg6njgq0s44Of44Om44KtDQor44K544Ks44Ov44OpLOODiOODouODnw0KK+OCouOCteODkizjgrfjgrLjg6sNCivjgqLjgrXjgq/jg6ks44K/44Kr44K3DQor44Ki44K144OfLOODleODn+ODiOOCtw0KK+OCouOCteODoOODqSzjgqvjg4Tjg58NCivjg6Tjg57jgrfjg4os44Kr44K644KqDQor44Ki44K144OqLOODnuOCteOCsw0KK+OCouOCteOCuizjg4jjg6LjgrMNCivjgqLjg4Tjg58s44Oo44K344Om44KtDQor44OQ44OzLOODkuODreODpOOCuQ0KK+ODmeODg+OCt+ODpyzjgrHjgqTjgqTjg4ENCivjg4Hjg5As44Ki44KzDQor44OB44Kr44Kt44OoLOODiuOCquODkuOCtQ0KK+ODgeODoOODqSzjgr/jg5/jgqgNCivjg4njg5Djgrcs44K/44Kx44KqDQor44Ko44OQ44K3LOOCt+ODp+OCpuODmOOCpA0KK+OCqOODk+ODj+ODqSzjg6jjgrfjg5Xjg58NCivjgqjjgqzjg58s44Om44Kt44KqDQor44Ko44Kw44OBLOODpuOCreOCv+OCqw0KK+OCqOOCsOODgSzjgrXjg4jjgrcNCivjgqjjgrjjg6os44K544Kw44OrDQor44Ko44Oz44OJLOODnuODpuODnw0KK+OCqOODs+ODiSzjgr/jg4TjgqoNCivjgqjjg47jg6Ljg4gs44Oo44K344OE44KwDQor44OV44OB44OOLOODiOOCquODqw0KK+ODleOCuOOCpCzjgqrjgrXjg6ANCivjg5XjgrjjgqQs44OG44OEDQor44Kk44K344KkLOOCuOODpeODsw0KK+ODoOODqeODpOODnizjg4jjgrfjg5LjgrUNCivjg5Xjgrjjgqvjgr8s44K/44OE44OkDQor44OV44K444Kr44OvLOOCq+OCuuODiOODog0KK+ODleOCuOODnuODqyzjg5LjgrXjg4gNCivjg5Xjgrjjg6Ljg4gs44Kv44OL44OS44OtDQor44OV44K444Oi44OILOOCv+ODgOODqOOCtw0KK+ODleOCuOODouODiCzjg4jjgrfjgqvjgroNCivjg5Xjgrjjg44s44Ok44K544OI44OiDQor44OV44K444KqLOODiOOCt+OCouOCrQ0KK+ODleOCuOOCteOCqyzjgrXjg4jjgrcNCivjg5XjgrjjgrXjg68s44OO44Oq44KqDQor44OV44K444K144OvLOOCv+OCq+ODkuODrQ0KK+ODleOCuOOCvyzjg57jgrXjg6bjgq0NCivjg5Xjgrjjgr8s44Oe44K144Om44KtDQor44OV44K444Ov44OpLOODiOOCquODqw0KK+ODleOCuOODr+ODqSzjg57jgrXjg6bjgq0NCivjg5Xjgrjjg6/jg6ks44K344Oz44K344On44KmDQor44OV44Kr44OALOODleODn+ODkuODrQ0KK+ODleOCq+OCrOODryzjgqLjg4Tjg5Ljg60NCivjg5Xjgqvjg44s44Kx44KkDQor44OV44Kr44OvLOOCu+OCpOOCuA0KK+ODleOCq+ODpCzjg4jjgrfjgqvjgroNCivjg5Xjgqvjgrbjg68s44OS44OI44K3DQor44OV44Kv44OALOOCs+OCpuOCuA0KK+ODleOCr+OCpCzjg5Ljg63jgrcNCivjg5Xjgq/jg6Ljg4gs44OS44Ot44K/44KrDQor44OV44Kv44Oi44OILOODkuODreOCouOCrQ0KK+ODleOCr+ODouODiCzjg57jgrXjg5LjgrMNCivjg5Xjgq/jg6Ljg4gs44K544K544OgDQor44OV44Kv44K344OeLOODkuODreODpuOCrQ0KK+ODleOCr+ODiOODnyzjg6rjg6XjgqbjgrXjgq8NCivjg5Xjg4rjgq0s44K344Oz44K4DQor44OV44Or44K144OvLOOCv+ODreOCpg0KK+OCouODk+OCsyzjg57jgrXjg6bjgq0NCivjg5Xjgrss44OO44Oq44KqDQor44OV44K744Ks44OvLOODqOOCt+ODiuOCqg0KK+ODleOCt+ODnyzjg4rjgqrjg5LjgrUNCivjgq7jg54s44Kr44K644Oo44K3DQor44K044OfLOODnuOCs+ODiA0KK+OCtOODiOOCpizjg47jg6rjgrMNCivjgrTjg4jjgqYs44OI44Oi44Ki44KtDQor44K044OI44KmLOODkuOCteODjuODqg0KK+OCsOODs+OCuCzjg5/jg6gNCivjg4/jgq7jg6/jg6ks44Oo44K344KzDQor44OP44Ku44Ov44OpLOOCpOODgeODreOCpg0KK+ODj+OCpOODjizjg5LjgrXjg6jjgrcNCivjg4/jgqvjg57jg4As44OO44Oq44Om44KtDQor44OP44Oe44OALOODpuOCrQ0KK+ODj+ODnuODgCzjg6bjgq3jgqoNCivjg4/jg57jgrDjg4Es44Kx44Oz44K4DQor44OP44OpLOOCt+ODs+OCpOODgQ0KK+ODj+ODqSzjgq3jg6jjgr/jgqsNCivjg4/jg6ks44Kv44OL44OS44KzDQor44OP44OpLOODnuOCteODiuODqg0KK+ODj+ODqeODgCzjg57jgrnjg58NCivjg4/jg6njg4As44Of44OK44KzDQor44OP44Op44OALOODjuODquOCsw0KK+ODj+ODqeOCsyzjgr/jgqvjg5Ljg60NCivjg4/jg6vjg4os44K/44Kr44Ki44KtDQor44OP44K744Ks44OvLOOCv+OCr+ODpA0KK+OCquOCt+ODnizjgqLjgq3jg6kNCivjg4/jgrfjg6Ljg4gs44K/44Kr44K3DQor44OP44K/44OOLOOCq+OCuuODkuODrQ0KK+ODj+OCv+OCtuODryzjgqvjgrrjg5/jg4ENCivjg4/jg4gs44Oe44K144K3DQor44OP44OE44OfLOOCouOCuuOCtQ0KK+ODj+ODg+ODiOODqizjg4jjg6Ljg6bjgq0NCivjg4/jg6Tjgqvjg68s44OI44K344OS44OtDQor44OP44Ok44Kr44OvLOOCouODhOODreOCpg0KK+ODj+ODpOOCq+ODryzjg4jjgrfjg5LjgrMNCivjg4/jg6Tjg44s44Ki44OE44K3DQor44OP44Ok44K7LOOCt+ODs+OCtA0KK+ODj+ODpOOCtyzjgr/jgqvjg4/jg6sNCivjg4/jg6Tjgrcs44Kr44Kq44OqDQor44OP44Ok44K3LOODqOOCt+ODkuODrQ0KK+ODj+ODpOOCtyzjgrHjgqTjgrgNCivjg4/jg6Tjgrcs44K744Kk44K/DQor44Kk44Oi44OILOODnuOCteODqOOCtw0KK+ODj+ODpOODhCzjg5Ljg63jgrcNCivjg5Ljgqzjgq0s44OS44OH44Ki44KtDQor44OS44Ks44K3LOOCueODn+OCsw0KK+ODkuODjizjgrHjg7PjgrgNCivjg5Ljg6njg5Djg6Tjgrcs44OK44Kq44OIDQor44OS44Op44OOLOOCq+OCuuODkuODrQ0KK+ODkuODqeODjizjgrHjgqTjgqTjg4ENCivjg5Ljg6njgqrjgqss44Oe44Om44OfDQor44OP44Op44K144KtLOOCv+ODhOODpA0KK+ODkuODqeODhizjg5Ljg4fjgqoNCivjg5Ljg6njg6Tjg54s44OI44Kq44OrDQor44OS44Ot44KoLOODqOOCt+OCq+OCug0KK+ODkuODreOCq+ODryzjgrfjg6XjgqbjgqTjg4ENCivjg5Ljg63jgrss44OS44OH44K/44KrDQor44OS44Ot44K3LOODjuODluOCsw0KK+ODkuOCteODoOODjSzjgrHjgqTjgrMNCivjg5vjg7Pjg4As44Kz44Km44Kk44OBDQor44Ob44Oq44Kr44OvLOODjuODquOCouOCrQ0KK+ODm+ODquOCs+OCtyzjgrfjg7PjgqTjg4ENCivjg5vjg6rjgrPjgrcs44OS44Ot44Om44KtDQor44Ob44K3LOODpuOCreOCqg0KK+ODm+OCt+OCsyzjg57jgrXjg5Ljg60NCivjg5Ljg6njgrXjg68s44K144OA44Om44KtDQor44Ob44K944KkLOOCt+ODs+OCpOODgQ0KK+ODkuODp+OCpuODieOCpizjgr/jgqvjgrcNCivjg5Ljg6fjgqbjg4njgqYs44Om44Km44K544KxDQor44Kk44OZLOOCt+ODs+OCpOODgQ0KK+OCpOODgeOCq+ODryzjg57jgrXjg5Ljg60NCivjgqTjg4Hjgqvjg68s44Oe44K144OrDQor44Kk44OB44Kr44OvLOODpuODnw0KK+OCpOODgeODjuODn+ODpCzjg5/jg4Tjg6sNCivjgqTjg4cs44Of44OE44Om44KtDQor44Kk44OHLOODpuODqg0KK+OCpOOCrOODqeOCtyzjg6Tjgrnjg6bjgq0NCivjgqTjgqzjg68s44Kt44Oo44K3DQor44Kk44Kw44OBLOOCt+ODs+ODpA0KK+OCpOOCpOODgCzjgrfjg6XjgqbjgqTjg4ENCivjgqTjgqTjg4As44OS44Ot44K3DQor44Kk44Kk44K444OeLOOCs+OCpuOCpOODgQ0KK+OCpOOCpOODhOOCqyzjg47jg5bjgqoNCivjgqTjgqTjgrrjgqss44Kr44K644OO44OqDQor44Kk44Kk44K644KrLOOCouODquOCtQ0KK+OCpOOCq+ODqeOCtyzjg4jjg6Ljgq0NCivjgqTjgrHjg4As44OK44Kq44KtDQor44Kk44Kx44OALOODnuOCteODleODnw0KK+OCpOOCseODgCzjgrjjg6Xjg7MNCivjgqTjgrHjg4As44OS44OH44OIDQor44Kk44Kx44OK44KsLOODkuODreOCqg0KK+ODn+ODhOODouODiCzjg5Ljg63jgr/jgqsNCivjgqTjgrHjg6Tjg54s44OS44Ot44Om44KtDQor44Kk44Kx44K2LOODkuODiOOCtw0KK+OCpOOCseOCtuOCrSzjgqrjgrXjg6ANCivjgqTjgq/jgr8s44OG44Or44Om44KtDQor44Kk44Oe44KkLOODqOOCt+ODjuODqg0KK+OCpOODnuOCpOOCuuODnyzjg47jg6rjg5Ljg60NCivjgqTjg57jg6Djg6ks44OS44Ot44Om44KtDQor44Kk44Oe44Og44OpLOOCqOOCpOODqg0KK+OCpOODnuODi+OCtyzjg4jjg6Ljg5Ljg60NCivjgqTjg4rjgqzjgq0s44Kr44Kq44OqDQor44Kk44OK44Ks44KtLOOCq+ODhOODpuOCrQ0KK+OCpOODiuOCrOODryzjgr/jg4Tjg6QNCivjgqTjg4rjg5ss44Oe44K144OrDQor44Kk44OK44OfLOODkuODreODn+ODgQ0KK+OCpOODiuODhOOCsCzjg5/jgrXjgqoNCivjgqTjg4rjg6jjgrcs44K/44OE44KqDQor44Kk44OOLOOCq+OCuuODiA0KK+OCpOODjuOCquOCqyzjgrfjg7Pjg6QNCivjgqTjg47jgqbjgqgs44K/44Kr44Om44KtDQor44Kk44OO44Km44KoLOOCv+OCseOCtw0KK+OCpOODjuOCpuOCqCzjg5Ljg4fjgqvjgroNCivjgqTjg47jgqbjgqgs44K/44Kr44K3DQor44Kk44OO44Km44KoLOOCv+OCq+OCouOCrQ0KK+OCpOODjuOCpuOCqCzjg6bjgqbjgqTjg4ENCivjgqTjg47jgqbjgqgs44Kt44Kv44KqDQor44Kk44Oq44K144OvLOOCouOCreODkuOCsw0KK+OCpOOCuyzjg6bjgq3jgqoNCivjgqTjgrvjgq0s44Kr44OE44OkDQor44Kk44K344OALOODpOOCueODjuODqg0KK+OCpOOCt+ODgCzjg4Tjg6jjgrcNCivjgqrjgqvjg4As44OP44Or44OfDQor44Kk44K344KkLOOCqOOCpOOCuA0KK+ODpOODnuODgCzjg5Ljg63jg5bjg58NCivjgrnjgq7jg4/jg6ks44OS44Ot44K/44KrDQor44Kk44K344Kr44OvLOOCq+ODhOODqQ0KK+OCpOOCt+OCq+ODryzjg57jgrXjgrMNCivjgqTjgrfjgqvjg68s44Oe44K144OfDQor44Kk44K344Oe44OrLOODjuODquOCsw0KK+OCpOOCt+ODouODiCzjgr/jg4TjgqoNCivjgqTjgrfjg6Ljg4gs44Oe44K144OS44OtDQor44Kk44K344Oi44OILOOCseODs+OCuA0KK+OCpOOCt+ODjizjgqvjgq/jgqTjg4Hjg63jgqYNCivjgqTjgrfjg4Tjgqss44K144OI44K3DQor44Kk44K344Ov44K/LOOCv+OCr+ODpA0KK+OCpOOCt+ODr+OCvyzjg6bjgqbjgrgNCivjg5Ljg6njg5Djg6Tjgrcs44Ko44Kk44K4DQor44Kk44K344K244KtLOODouODiOODjuODqg0KK+OCpOOCt+OCuuOCqyzjg4jjgqrjg6sNCivjgqTjgr3jg4As44K/44Kx44K3DQor44OI44Kq44KrLOODiOOCt+ODpuOCrQ0KK+OCr+ODquODj+ODqSzjgrHjgqTjgrgNCivjgqTjg4jjgqYs44Kx44Oz44Kk44OBDQor44Kk44OI44KmLOODqOOCt+OCouOCrQ0KK+OCpOODiOOCpizjgqjjg4Tjgq0NCivjgqTjg4jjgqYs44Oo44Km44K4DQor44Kk44OI44KmLOOCteODiOOCtw0KK+OCpOODgeODpOODiuOCrizjgrfjgrLjg5Ljg4gNCivjgqTjg4jjgqYs44OE44ON44OS44OtDQor44OK44Ks44K/LOOCq+ODhOODnw0KK+OCpOODiOOCpizjgr/jgqvjg4/jg6sNCivjgqvjg5/jgqvjg68s44K/44OA44Of44OEDQor44Kk44Ov44KkLOODjuODnOODqw0KK+OCpOODr+OCq+ODryzjg4bjg6vjg5LjgrUNCivjgqTjg6/jg58s44OI44K344OS44KzDQor44Kk44Ov44OfLOOCv+OCq+OCtw0KK+OCpOODr+ODouODiCzjg4jjg6LjgrMNCivjgqTjg6/jg4rjgqws44Oe44K144OS44OtDQor44Kk44Ov44K144KtLOOCseOCpOOCsw0KK+OCpOODr+OCteOCrSzjg5Xjg5/jgqvjgroNCivjgqTjg6/jgrss44OS44Ot44Om44KtDQor44Kk44Ov44K344K/LOOCquOCteODoA0KK+OCpOODr+OCvyzjgrPjgqbjgrvjgqQNCivjgqTjg6/jgr8s44K144OI44K3DQor44Kk44Ov44K/44OGLOODkuODh+OCrQ0KK+OCpOOCuuODnyzjg5/jg68NCivjgrjjg7Pjg44s44K/44Kr44Ok44K5DQor44Kr44Ks44OvLOODkuODh+OCqg0KK+OCq+OCpOODjOODnizjg47jg5bjgqoNCivjgqvjgrjjgr8s44K/44Kr44Of44OBDQor44Kr44Kx44Ks44OvLOOCq+OCuuOCv+OCqw0KK+OCq+OCreODjOODnizjg4rjgqrjgq0NCivjgqvjg57jg4As44K/44Kr44OS44OtDQor44Kr44Oe44K/LOODkuODreOCrQ0KK+OCq+ODoeOCv+ODiyzjgq/jg4vjgqLjgq0NCivjgqvjg58s44Oe44K144OO44OqDQor44Kr44Of44Og44OpLOODnuOCteOCtw0KK+OCq+ODn+ODpOODnizjg57jgrXjg6bjgq0NCivjgqvjg4rjgqbjg4Es44K/44Kr44Om44KtDQor44K/44Kx44Km44OBLOODn+OCrQ0KK+OCq+ODjeOCsyzjg6Tjgrnjg47jg5YNCivjgqvjg43jgrMs44Ok44K544KtDQor44Kr44Oz44OM44KtLOOCu+OCpOOCpOODgQ0KK+OCq+ODjuOCpizjgq3jg6jjgq/jg4sNCivjgqvjg6njg4/jgrcs44OS44Ot44Ki44KtDQor44Kr44K144KkLOODn+ODjuODqw0KK+ODjuODoOODqSzjgqjjg5/jgrMNCivjgqvjgrXjgqQs44Oi44Oi44KzDQor44Kr44K7LOOCuOODpeODs+OCpOODgQ0KK+OCq+OCt+OCr+ODqSzjg6jjgrfjg63jgqYNCivjgqvjgrfjg6Djg6ks44K144OI44K3DQor44Kr44K344Ov44KuLOOCq+ODqOOCsw0KK+OCq+OCv+ODjizjg4bjg6vjg5LjgrUNCivjgqvjgr/jgqrjgqss44Ok44K544K3DQor44Kr44OI44KmLOOCquOCteODoA0KK+OCq+ODiOOCpizjg4rjgqrjgq0NCivjgqvjg4jjgqYs44Kx44KkDQor44Kr44OI44KmLOODnuOCteODj+ODqw0KK+OCq+ODiOOCpizjgr/jgqvjgqLjgq0NCivjgqvjg4jjgqYs44K/44Kr44K3DQor44Kr44OI44Km44Kq44KrLOODpuOCq+ODqg0KK+OCq+ODhOOCpCzjgrgNCivjgqvjg4Tjg57jgr8s44Of44OO44OrDQor44Kr44Ov44OQ44K/LOOCv+OCq+OCqg0KK+OCq+ODr+ODgeODpCzjg4jjgrfjgqLjgq0NCivjgqvjg6/jg4As44Oq44K744KkDQor44Kr44Ov44OALOODkuODreODpuOCrQ0KK+OCpOODquOCteODryzjg5Xjg5/jgqoNCivjgqvjg6/jgqQs44Of44OvDQor44Kr44Ov44Kr44OfLOOCseODs+OCuA0KK+OCq+ODr+OCq+ODnyzjg5/jg47jg6sNCivjgqvjg6/jg58s44Ki44Kt44OpDQor44Kr44Ov44Og44OpLOOCseODs+OCuA0KK+OCpOOCt+OCpCzjg6Tjgrnjgq0NCivjgqvjg6/jg44s44Oe44K144OS44OtDQor44Kr44Ov44Og44OpLOOCreODqOODkuODrQ0KK+OCq+ODr+OCteOCrSzjg47jg5bjg6bjgq0NCivjgqvjg6/jgrss44OK44Kq44KtDQor44Kr44Ov44K7LOODkuODreOCtw0KK+OCq+ODr+OCuyzjgqjjgqTjgrgNCivjgqvjg6/jgrfjg54s44Ko44Kk44KzDQor44Kr44Ov44K/44OLLOOCr+ODi+ODkuOCsw0KK+OCseOCpOODgCzjg57jgrXjgqLjgq0NCivjgq3jg4As44K344Ky44KzDQor44Kt44OA44OBLOOCt+OCsuOCqg0KK+OCreODj+ODqSzjg4jjg6LjgqgNCivjgq3jgq/jgqvjg68s44Om44Kr44OqDQor44Kt44Oi44OILOODnuOCteODkuODhw0KK+OCreODoOODqSzjgrHjg7PjgqTjg4ENCivjgqvjg57jgr8s44OS44Ot44Om44KtDQor44Kk44Kv44OfLOODnuODpuODnw0KK+OCreODjuOCt+OCvyzjgrfjgrLjgqvjgroNCivjgq3jg47jgqbjg4Es44Oe44KtDQor44Kt44K3LOOCv+OCr+OCtw0KK+OCreOCt+ODouODiCzjgqvjgrrjg5Ljg60NCivjgq3jgqbjg4Es44OI44Oo44Ki44KtDQor44Kz44OQLOODkuODreODpuOCrQ0KK+ODouODqizjg5Ljg4fjgq0NCivjgrPjg5Djg6Tjgqvjg68s44K/44Kx44K3DQor44Kv44Oc44K/LOODkuODiOOCtw0KK+OCs+ODkOODpOOCtyzjg4bjg4Tjg6QNCivjgqrjgqrjgqvjg68s44K344OzDQor44Kz44OQ44Ok44K3LOODhuODhOOCuA0KK+OCs+ODkOODpOOCtyzjgq3jg6jjg47jg6oNCivjgrPjg57jgr8s44Ko44Kk44K/44OEDQor44Kz44OQ44Ok44K3LOOCq+ODhOODnw0KK+OCs+ODkOODpOOCtyzjgqvjg4Tjg6bjgq0NCivjgrPjg5Djg6Tjgrcs44Kr44K644OS44KzDQor44Kz44OA44OeLOODpOOCueOCtw0KK+OCs+OCqOOCuCzjg4Tjg4jjg6ANCivjgrPjgrDjg4Es44Kx44Oz44K4DQor44Kz44OP44K/LOODiOOCt+ODkuOCsw0KK+OCs+ODkuODqSzjgq3jg5/jgqoNCivjg4rjgqvjgqzjg68s44Oq44Ko44KzDQor44Kz44Ok44OeLOOCouOCreODqQ0KK+OCs+OCpOODhyzjg6jjgrfjg63jgqYNCivjgrPjgqTjg4cs44K444Ol44OzDQor44Kz44Kk44KxLOOCt+OCsuODqw0KK+OCs+OCpOOCuuODnyzjg6Ljg4jjgrMNCivjgrPjgrjjg54s44K/44Kv44OkDQor44Kz44Kx44Kw44OBLOODpOOCueODnuOCtQ0KK+OCs+OCr+ODnCzjg6jjgqbjgrMNCivjgrPjg57jg4Qs44K/44Kr44KzDQor44Kz44Oe44OELOODpuODn+OCsw0KK+OCs+ODn+ODpCzjg6jjgqbjgrgNCivjgrPjg7Pjg4ks44Kr44K644OI44K3DQor44Kz44Oz44OJLOOCouOCreODqQ0KK+OCs+ODs+ODiSzjg5/jgqgNCivjgrPjg7Pjg4ks44K/44Kr44Om44KtDQor44Kz44Oz44OJLOOCv+ODhOOCqg0KK+OCs+ODi+OCtyzjgr/jgqvjgrMNCivjgrPjgrXjgqss44Oe44K144OS44OtDQor44Kz44K744KtLOODiOOCt+ODkuOCsw0KK+OCs+OCt+OCpOOCtyzjgr/jg4Tjg6QNCivjgrPjgrfjgqos44Oe44K144OI44K3DQor44Kz44K544KyLOODiOOCt+OCouOCrQ0KK+OCs+OCpuODpCzjg57jgrXjg47jg6oNCivjgrPjg6Tjg54s44Kr44K644K3DQor44Kz44Ok44OeLOOCquOCteODoA0KK+OCv+OCseODgSzjgrfjg6Xjgqbjgr7jgqYNCivjgq/jg5ws44OI44K344OkDQor44Kv44OcLOODhOODiOODoA0KK+OCr+ODnCzjg5Xjg5/jgq0NCivjgq/jgqzjgqQs44K/44Kr44Om44KtDQor44Kk44Kr44Op44K3LOOCq+OCuuODkuODrQ0KK+OCr+ODnuOCtuODryzjg47jg5bjgrMNCivjgq/jg4vjg5/jg4Qs44OS44K144Oo44K3DQor44Kv44OOLOOCu+OCpOOCtw0KK+ODm+OCt+ODjizjg4jjgrfjg6QNCivjgq/jg6njgrfjgrIs44Kz44Km44K4DQor44Kv44Oq44OP44OpLOODn+OCqw0KK+ODiuOCq+OCrOODryzjgrfjg6fjgqbjgqTjg4ENCivjg6Tjg4rjgq7jg4As44Om44Kt44KqDQor44Kv44Oq44Ok44OeLOODkuODh+OCouOCrQ0KK+OCr+ODreOCq+ODryzjg5Ljg4fjg6bjgq0NCivjgq/jgrXjgqvjg68s44Kx44Kk44Kk44OBDQor44Kv44K144OK44KuLOOCquOCteODoA0KK+OCr+OCteODjizjg5Ljg4fjg5LjgrMNCivjgq/jgrss44K144OI44OrDQor44Kv44K344OALOODgeOCqA0KK+OCr+OCueODgCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgq/jgrnjgq0s44OB44Ko44KzDQor44Kv44K544OfLOODpuOCv+OCqw0KK+ODnuOCqOODgCzjgr/jg4Tjg6QNCivjg57jgqjjg4As44Ki44Kt44KqDQor44Oe44Ko44Kr44OvLOODkuODreOCsw0KK+ODnuOCqOOCq+ODryzjgr/jgqvjgqoNCivjg57jgqzjg6rjg5Xjg4Es44Oo44K344KqDQor44Oe44Kt44OOLOODgeODkuODrQ0KK+ODnuOCreODjizjgrHjg7PjgrgNCivjg57jg4rjg5ks44Oe44K144OoDQor44Ki44Ks44OE44OeLOOCv+ODhOODpuOCrQ0KK+ODnuODq+OCqizjgrfjgrLjg6sNCivjg57jg6vjgr8s44OK44Kq44KtDQor44Oe44Or44Ok44OeLOODpuOCqw0KK+ODnuODq+ODpOODnizjg57jgrPjg4gNCivjg57jg6vjg6Tjg54s44K/44Kr44OS44OtDQor44Oe44Or44Ok44OeLOODpuOCpuOCuA0KK+ODnuOCueODgCzjg4bjg6vjg5/jg4QNCivjg57jgrnjg4As44OI44K344OkDQor44Kr44Oz44OQ44OpLOOCpOOCuuODnw0KK+ODnuODhOODkOODqSzjg5Ljg63jgrcNCivjg4rjgqvjg6Djg6ks44OB44OI44K7DQor44Oe44OE44OALOOCr+ODi+ODjuODqg0KK+ODnuODhOODgCzjg57jgrXjg6bjgq0NCivjg57jg4TjgqQs44OS44Ot44Om44KtDQor44Oe44OE44KkLOODqOOCt+ODjuODqg0KK+ODnuODhOOCpCzjgrfjg6XjgqbjgqTjg4Hjg63jgqYNCivjg57jg4TjgqQs44OB44Oo44KzDQor44Oe44OE44Oi44OILOOCouODhOOCtw0KK+ODnuODhOODouODiCzjgrHjg7PjgrgNCivjg57jg4Tjg6Ljg4gs44Oe44K144Kr44OEDQor44Oe44OE44Oi44OILOOCt+ODs+ODpA0KK+ODnuODhOOCquOCqyzjg5/jg5sNCivjg4rjg6vjgrss44Oq44Ol44Km44K4DQor44Oe44OE44OkLOODjuODluODkuOCsw0KK+ODoeOCtuODryzjg5Ljg4jjgrcNCivjg5/jgq7jgr8s44Oe44Om44OfDQor44Of44Kr44OfLOOCt+ODp+OCpuOCuA0KK+ODn+ODoOODqSzjgqvjgrrjg6QNCivjg6Tjg4rjgq4s44Kz44Km44Kk44OBDQor44Of44OK44Kr44K/LOODnuOCteODpuOCrQ0KK+ODn+ODjSzjg57jgrXjg6TjgrkNCivjg5/jg40s44Ok44K544Ko44KkDQor44Of44OO44OvLOOCreODqOOCqA0KK+ODn+OCteODryzjg57jgq3jgrMNCivjg5/jgrXjg68s44K/44Kr44OS44OtDQor44Of44K344OeLOODhOODqOOCtw0KK+ODn+OCv+ODoOODqSzjg4jjg6Ljg5Ljg60NCivjg5/jg4gs44OO44OW44KqDQor44Of44OE44OS44OpLOODnuODquOCsw0KK+ODn+ODhOOCpOOCtyzjg57jgrXjg5Xjg58NCivjg5/jg4Tjg4rjg6os44K/44Kr44KoDQor44Of44Km44OpLOODkuODreOCq+OCug0KK+ODn+ODpOODmSzjgrHjg7PjgrgNCivjg5/jg6Tjgrjjg54s44K344Ky44KtDQor44Of44Ok44Oi44OILOOCt+OCsuODqw0KK+ODn+ODpOODouODiCzjg4jjg6Ljg58NCivjg5/jg6TjgrXjgqss44Om44Km44Kk44OB44OtDQor44Of44Ok44K144KrLOOCseODs+OCpOODgeODrQ0KK+ODn+ODpOOCt+OCvyzjg5Ljg63jgqsNCivjg5/jg6Tjgrfjgr8s44K444Ol44Oz44KzDQor44Of44Ok44K244KtLOODjuODquOCt+OCsg0KK+ODn+ODpOOCtuODryzjgqvjg4Tjg58NCivjg5/jg6Tjgrbjg68s44K/44Kr44Om44KtDQor44Of44K+44OP44K3LOOCv+OCseODkuOCsw0KK+OCteOCq+OCpCzjg5Ljg63jgrcNCivjg5/jgrrjg44s44OS44Ot44Ki44KtDQor44Of44K644Kq44OBLOOCv+OCq+OCqg0KK+ODn+OCuuOCt+ODnizjgrHjg7PjgrgNCivjg5/jgrrjgr8s44Kx44Oz44K4DQor44Oi44OB44OP44OpLOOCr+ODiw0KK+ODouODgeOCuuOCrSzjgrPjgqbjgqTjg4ENCivjg6Ljg6Ljgrss44K344Ol44Km44Kk44OBDQor44Oi44OqLOODkuODreOCrQ0KK+ODouODqizjgqLjgq3jg5Ljg60NCivjg6Ljg6os44OB44KoDQor44Oi44OqLOODj+OCuuOCrQ0KK+ODouODqizjg5Ljg4fjgq0NCivjg6Ljg6os44Oe44Oi44OrDQor44Oi44Oq44Kr44OvLOODnuOCteODqA0KK+ODouODquODouODiCzjg6Tjgrnjg5Ljg60NCivjg6Ljg6rjg6Ljg4gs44Kz44Km44Kk44OBDQor44Oi44Oq44Oi44OILOODnuODiuODlg0KK+ODouODquODoOODqSzjgrfjg7PjgqTjg4ENCivjg6Ljg6rjg44s44Kr44K644OfDQor44Oi44Oq44K144OvLOOCr+ODi+OCq+OCug0KK+OCt+ODnuOCquOCqyzjgqrjgrXjg6ANCivjg6Ljg6rjgrfjgr8s44Om44KrDQor44Oi44Oq44Ok44OeLOODkuODreOCsw0KK+ODouODreOCquOCqyzjg5/jg4Tjg5Ljg60NCivjg6Ljg63jg4jjg58s44OK44Kq44KtDQor44Oi44OI44KtLOOCv+ODgOODiOOCtw0KK+ODouODiOODjizjgqvjg4Tjg6bjgq0NCivjg6Ljg4jjgr/jgqss44OS44OH44KtDQor44Og44Kw44Or44OeLOOCv+OCr+OCuA0KK+ODoOOCq+OCpCzjg6jjgrfjg58NCivjgqLjg7Pjg4njgqYs44Kk44Ov44KqDQor44OP44ONLOOCs+OCpuOCrQ0KK+ODoOODqeOCq+ODnyzjg4jjgrfjgqvjgroNCivjg6Djg6njg57jg4Qs44OE44OI44OgDQor44Og44Op44K344KyLOOCq+OCuuODpuOCrQ0KK+OCt+ODouODoOODqSzjgrjjg6Xjg7MNCivjg6Djg6njgr8s44Oe44Kz44OIDQor44Of44On44Km44KsLOOCv+OCq+ODpuOCrQ0KK+ODiuOCrOODj+ODqSzjg5Ljg63jgrcNCivjgqTjg4jjgqYs44Kr44OE44OfDQor44OK44Ks44KkLOOCseOCpOOCvw0KK+ODiuOCrOOCpCzjg4jjgqrjg6sNCivjgqTjg6/jg4gs44Oo44K344KtDQor44K/44Kx44K344KyLOODgeODm+OCsw0KK+ODiuOCrOOCqizjgqLjgq3jg5Ljg60NCivjg4rjgqzjgqos44Of44OB44OO44OqDQor44OK44Ks44KqLOOCpOOCteOCqA0KK+ODleOCr+ODhOOCqyzjgrHjgqTjgrMNCivjg4rjgqzjgrXjg68s44OS44OH44KtDQor44OK44Ks44K144OvLOODpOOCueODkuODrQ0KK+ODiuOCrOOCuyzjgrnjgrnjg6ANCivjg4rjgqzjgrfjg54s44Ki44Kt44KqDQor44OK44Ks44K/44OLLOODleODn+ODkuOCsw0KK+ODiuOCrOODr+OCrSzjg5Ljg63jg6TjgrkNCivjg4rjgqzjg6Tjg54s44Oe44K144OS44OHDQor44OK44K044OkLOODouODquOCqg0KK+ODiuOCpOODiOOCpizjg47jg5bjg6bjgq0NCivjg4rjgqTjg4jjgqYs44K144OA44Of44OEDQor44OK44Kr44OALOOCv+OCr+ODpA0KK+ODiuOCq+OCrOOCrSzjg5Ljg63jgqLjgq0NCivjg4rjgqvjgqzjg68s44OG44Or44OO44OWDQor44OK44Kr44Ks44OvLOODiOOCt+ODkuODrQ0KK+ODiuOCq+OCrOODryzjg6Tjgrnjg5Ljg60NCivjg4rjgqvjgqzjg68s44Oe44K144K3DQor44OK44Kr44K444OeLOODiOOCquODqw0KK+ODm+ODquOCpuODgSzjg4jjg6jjgrgNCivjg4rjgqvjg4/jg6ks44Kr44K644OS44OIDQor44OK44Kr44K444OeLOOCq+OCuuODpuOCrQ0KK+ODiuOCq+OCuOODnizjgrPjgqbjgrgNCivjgq3jgq/jgr8s44Of44KrDQor44OK44Kr44K444OeLOODiOOCt+OCouOCrQ0KK+ODiuOCq+ODnuODqyzjg4jjgrfjgrMNCivjg4rjgqvjg6Djg6ks44Oo44K3DQor44OK44Kr44Og44OpLOODnuOCs+ODiA0KK+ODiuOCq+ODoOODqSzjg4HjgqgNCivjg4rjgqvjg6Djg6ks44OO44Oq44KzDQor44OK44Kr44Og44OpLOOCv+OCq+OCqg0KK+ODiuOCq+ODoOODqSzjgr/jgqvjgrcNCivjg4rjgqvjg6Djg6ks44Oq44Ol44Km44Kk44OBDQor44OK44Kr44Og44OpLOOCt+OCsuOCq+OCug0KK+ODj+ODg+ODiOODqizjg57jg4rjg5YNCivjg4rjgqvjg6Djg6ks44K144OW44Ot44KmDQor44OK44Kr44Og44OpLOODiOOCquODqw0KK+ODiuOCq+ODoOODqSzjgr/jg4TjgrgNCivjg5/jg6Tjg6Ljg4gs44Kk44K644OrDQor44OK44Kr44OL44K3LOODkuODh+ODiA0KK+ODiuOCq+ODi+OCtyzjgrnjg4rjgqoNCivjg4rjgqvjg44s44Oo44K344Ki44KtDQor44OK44Kr44OOLOODgeODpuOCrQ0KK+ODiuOCq+ODjizjg6Tjgrnjg5Ljg4cNCivjg4rjgqvjg44s44Kq44K144OgDQor44OK44Kr44OOLOODhOOCq+OCtQ0KK+ODiuOCq+ODjizjgrHjgqQNCivjg4rjgqvjg44s44Oo44K344OO44OWDQor44OK44Kr44KqLOOCv+OCq+ODkuODrQ0KK+ODiuOCq+OCquOCqyzjg57jgrXjgqvjg4QNCivjg4rjgqvjgrfjg54s44K344Oz44Kk44OBDQor44OK44Kr44K344OeLOOCq+OCuuODiuODqg0KK+OCt+ODiuODgCzjgqLjgq3jg6kNCivjg4rjgqvjgr8s44Kr44K644OK44OqDQor44OK44Kr44OkLOOCv+OCr+OCuA0KK+OCteOCpOOCq+ODryzjg5Ljg4jjgrcNCivjg4/jgrvjgqzjg68s44OS44Ot44K3DQor44OK44Kr44K244OvLOODnuODnw0KK+ODiuODnuODhCzjg57jg58NCivjg4rjg6rjgr8s44K/44Kv44K4DQor44OK44K544OOLOOCv+OCq+OCouOCrQ0KK+ODjeODouODiCzjg5/jg43jgqLjgq0NCivjg43jgqrjgqQs44Oe44Kz44OIDQor44ON44K6LOODiuOCquOCrQ0KK+ODi+OCpOODoOODqSzjgqvjgrrjg57jgrUNCivjg4vjgqTjg6Tjg54s44OB44Kr44KyDQor44OL44Kk44Ok44OeLOODkuODreOCtw0KK+ODi+ODjuODn+ODpCzjg5Ljg63jgrcNCivjg4vjg47jg5/jg6Qs44Kr44K644Ki44KtDQor44OL44K3LOOCv+OCq+OCqg0KK+ODi+OCt+ODgCzjg57jgrXjg47jg6oNCivjg4vjgrfjg4As44Oe44K144K3DQor44OL44K344OJ44OOLOODqOOCt+ODjuODqg0KK+ODi+OCt+OCq+ODryzjgqLjgq3jg6kNCivjg4vjgrfjgq3jg4ks44Ki44Kt44OS44KzDQor44OL44K344Og44OpLOOCouOCreODqQ0KK+ODi+OCt+ODiizjg4DjgqTjgqTjg4QNCivjg4vjgrfjgqos44K444Ol44Oz44K4DQor44Kk44OO44Km44KoLOOCq+OCuuODiOOCtw0KK+ODi+OCt+OCtuODryzjgr/jgqvjgqLjgq0NCivjg4vjgrfjgrrjgqss44OI44K344OkDQor44OL44OD44K/LOODkuODiOODnw0KK+ODjuODgCzjg6/jgqvjgrMNCivjg47jg6Djg6ks44K144OI44K3DQor44OO44OO44Og44OpLOODkuODreODpuOCrQ0KK+ODjuODquODj+OCtyzjgqTjgrXjgqoNCivjg5Ljg44s44Kr44K644Om44KtDQor44OO44K244KtLOOCt+ODsw0KK+ODjuOCtuODryzjg57jgrXjg5Ljg60NCivjg4zjg57jg44s44OO44OW44KzDQor44Kq44OT44K7LOODkuODreOCrQ0KK+OCquODnOOCq+OCvyzjgrHjg7PjgrnjgrENCivjgqrjg4Es44Ki44Kt44OS44OtDQor44OP44K744Ks44OvLOODn+ODhOOCouOCrQ0KK+ODnuODiuODmSzjg5Ljg63jg6bjgq0NCivjgqrjg4As44Kr44OE44OfDQor44Kq44OALOOCt+ODs+OCueOCsQ0KK+OCquODgCzjg5Ljg4fjg5Ljg60NCivjgqrjg4As44K444Ol44Oz44KzDQor44Kq44OA44Kv44OpLOOCruODpw0KK+OCquOCrOOCvyzjg5Ljg4jjgrcNCivjgqrjgqzjg68s44OI44K344OS44KzDQor44Ki44OZLOODqOOCpuOCueOCsQ0KK+OCquOCsOODgSzjgrPjgqbjgq0NCivjgqrjgrDjg54s44Oe44K144Oo44K3DQor44Kq44Kw44OpLOOCv+ODnuOCrQ0KK+OCquOCsOODqSzjg5Ljg4fjgqoNCivjg6DjgrXjgrcs44Of44OE44OrDQor44Kq44Kw44OpLOODnuOCteODkuOCsw0KK+OCquOCsOODqizjg57jgrPjg4gNCivjgqrjgqrjg5As44Kx44Oz44K4DQor44Kq44Kq44OP44K3LOODqOOCpuOCpOODgQ0KK+OCquOCquOCpCzjg5Ljg63jgqvjgroNCivjgqrjgqrjgqTjgqgs44Kx44Oz44K4DQor44Kq44Kq44Kv44OcLOODj+ODq+OCtw0KK+OCquOCquOCr+ODnizjgqTjgrXjg6ANCivjgqrjgqrjgq/jg54s44OS44Ot44K3DQor44Kq44OOLOOCq+ODhOODnw0KK+OCquOCquODjOODnizjgqvjg6jjgrMNCivjgr/jgqvjgrss44Oo44K344OS44OHDQor44Kq44Kq44K144OvLOODkuODh+OCrQ0KK+OCquOCquOCteODryzjg5Ljg63jgrcNCivjgqrjgqrjgrXjg68s44Kx44Oz44K4DQor44Kq44Kq44K144OvLOOCveOCpuOCueOCsQ0KK+OCquOCt+ODnizjg57jg6rjgrMNCivjgqrjgrfjg54s44OS44Ot44KqDQor44Kq44K344OeLOODn+ODhOODkuODrQ0KK+OCquOCquOCvyzjgrfjg7PjgrgNCivjgqrjgqrjgr/jgqss44OS44Ot44Om44KtDQor44Kq44Kq44K/44KtLOOCv+OCseOCtw0KK+OCquOCquOCv+ODiyzjg6jjgqbjgrgNCivjgqrjgqrjg4Tjgqss44OS44Ot44OO44OWDQor44Kq44Kq44OE44KrLOODhuODhOOCqg0KK+OCquOCquODryzjg57jgrPjg4gNCivjgqrjgqrjg6/jg4As44OS44Ot44OO44OqDQor44Kq44Kq44Ok44OeLOODkuODiOOCtw0KK+OCquOCvuODjSzjg47jg5bjg6bjgq0NCivjgqrjgqss44Ok44K544K3DQor44Kq44KrLOODkuODreOCouOCrQ0KK+OCquOCqyzjgqvjgrrjgrfjgrINCivjgqrjgqss44K/44Kr44OO44OqDQor44Kq44Kr44OALOOCv+OCq+ODqOOCtw0KK+OCquOCq+ODgCzjg5Ljg4jjgrcNCivjgqrjgqvjg4As44Oe44K144Om44KtDQor44Kq44Kr44OALOODiOODqOOCouOCrQ0KK+OCquOCq+ODieODoSzjgq3jg6jjgqvjg4QNCivjgqrjgqvjg6Ljg4gs44Ok44K544K3DQor44Kq44Kr44Oi44OILOOCs+OCpuOCuA0KK+OCquOCq+ODouODiCzjg5Ljg63jgrcNCivjgqrjgqvjg6Djg6ks44Oq44KrDQor44Kq44Kr44OOLOOCouOCreODqQ0KK+OCquOCq+ODjuODpCzjg5/jg4Tjg6sNCivjgqrjgqvjgqos44Ok44K544K4DQor44Kq44Kr44K244KtLOODkuODh+OCqg0KK+OCquOCrSzjg5Ljg63jg6bjgq0NCivjgqrjgq3jg6Ljg4gs44Oe44K144OS44KzDQor44Kq44Kv44Og44OpLOODiOODouOCsw0KK+OCquOCr+ODoOODqSzjg6bjgq3jg5LjgrMNCivjgqrjgq/jg44s44Ki44KkDQor44Kq44Oe44K/LOOCouOCreODqOOCtw0KK+OCquODi+OCrSzjg5Ljg63jg6bjgq0NCivjgqrjg4vjg4Tjgqss44Oe44K144Ki44KtDQor44Kq44OO44OH44OpLOOCouOCreODqQ0KK+OCquODjuOCtuODryzjg5Ljg4fjg4TjgrANCivjgqrjgqrjg4vjgrcs44Kx44OzDQor44Kq44Kq44OL44K3LOOCr+ODi+ODqOOCtw0KK+OCquOCquODhOOCqyzjg4rjgqrjg5LjgrUNCivjgqrjgrXjg4As44OI44Oi44OO44OWDQor44Kq44K144KtLOOCv+OCq+OCtw0KK+OCquOCteODiuODnyzjgrfjgrrjg6jjgrcNCivjgqrjg6Tjg57jg4As44Ok44K544OO44OqDQor44Kq44K244OvLOOCs+OCpuOCuOODreOCpg0KK+OCquOCtuODryzjgrfjg63jgqYNCivjgqrjgrbjg68s44Ok44K544OO44OqDQor44K144Ko44Kw44K1LOODpOOCueODjuODqg0KK+OCteOCqOOCrSzjg6jjgrfjg5Ljg60NCivjg4rjgqvjgrjjg54s44K/44Kx44K3DQor44K144Kk44K/LOODgeOCqOOCsw0KK+OCquOCrOODryzjg6Tjgrnjg4/jg6sNCivjgrXjgqTjg4jjgqYs44Kr44K644OS44K1DQor44K144Kk44OI44KmLOOCv+OCq+ODkuOCsw0KK+OCteOCpOODiOOCpizjg6jjgrfjg47jg6oNCivjgrXjgqvjgqQs44Oq44On44Km44K4DQor44K144Kr44KkLOODkuODh+ODjuODqg0KK+OCteOCq+OCpCzjgrHjgqTjgrgNCivjgrXjgqvjgqQs44K/44Kx44K3DQor44K144Kr44KkLOOCv+OCrw0KK+OCteOCq+OCpCzjgrfjg6fjgqbjgrQNCivjgrXjgqvjgqTjg6os44OS44Ot44Om44KtDQor44K144Kr44KtLOOCreODp+OCpuOCsw0KK+OCteOCq+ODnizjg57jgrXjg47jg6oNCivjgrXjgqvjg57jgq0s44Oe44K144OI44OiDQor44K144Kr44Oi44OILOODnuOCteODiOOCtw0KK+OCteOCq+ODouODiCzjgrXjg4jjg6sNCivjgrXjgqvjg6Ljg4gs44K344Ol44Km44Kk44OBDQor44K144Kr44K/LOOCv+OCq+OCtw0KK+OCteOCq+OCpuOCqCzjgr/jgqvjg6bjgq0NCivjgrXjgqvjgrrjg6Es44K/44Kv44OfDQor44OK44Kr44OOLOODiOODouODkuODrQ0KK+OCteOCr+ODnizjg6jjgrfjg5LjgrMNCivjgrXjg7Pjg5zjg7Pjg57jg4Qs44Kr44K644OS44OtDQor44K144OOLOOCv+OCseOCtw0KK+OCteODjizjg4jjgrfjg5Xjg58NCivjgrXjgrXjgqzjg68s44Om44K/44KrDQor44K144K144KtLOODpuODquOCsw0KK+OCteOCteOCrSzjg6Tjgrnjg6bjgq0NCivjgrXjgrXjgq0s44Kr44K644Oo44K3DQor44K144K144KtLOOCs+OCpuOCuA0KK+OCteOCteOCtuODryzjg4jjgrfjg6bjgq0NCivjgrXjg4jjgqYs44Ok44K544K3DQor44K144OI44KmLOOCq+ODhOODkuODiA0KK+OCteODiOOCpizjg6jjgrfjgr/jgqsNCivjgrXjg4jjgqYs44K/44Kr44Om44KtDQor44K144OI44KmLOODjuODluOCv+OCqw0KK+OCteODiOOCpizjg6bjgqbjgrnjgrENCivjgrXjg4jjgqYs44OS44OH44Om44KtDQor44K144OI44KmLOOCteODiOOCtw0KK+OCteODiOOCpizjgqrjgrXjg6ANCivjgrXjg4jjgqYs44Oe44Om44OfDQor44K144OI44KmLOODjuODluOCqg0KK+OCteODiOOCpizjg5Ljg4fjg47jg6oNCivjgrXjg4Tjg54s44Of44Ov44KzDQor44K144Ov44Kw44OBLOODiuOCquODiA0KK+OCteODr+OCpCzjg5/jg4Hjg5Ljg60NCivjgrXjg6/jg6njgq4s44Ok44K544KqDQor44K144Ov44K/44OLLOOCr+ODi+OCqg0KK+OCu+OCpOOCvyzjgqLjg4TjgrcNCivjgrvjgq0s44Oe44K144Oe44OtDQor44K744KtLOODjuODluODkuODrQ0KK+OCu+OCrSzjg47jg6rjg6TjgrkNCivjgrvjgq3jg4/jg6ks44Ki44Kt44OpDQor44K744Kt44ONLOODpuOCpuOCueOCsQ0KK+OCu+OCreODjSzjg5Ljg63jg6bjgq0NCivjgrfjg6njgqTjgrcs44Oe44K144OS44OtDQor44K744Oz44KsLOODjuODluOCqg0KK+OCu+ODjizjg47jg6rjg6bjgq0NCivjgrvjgrfjg6Is44K344Ol44Km44Kk44OBDQor44K744OILOOCv+ODhOOCqg0KK+OCu+ODiOOCsOODgSzjgr/jg4Tjg6QNCivjg4bjg6vjg6Qs44Om44Km44Kk44OBDQor44K344Kk44OQLOODquOCqw0KK+OCt+ODkOODjizjg4jjg6Ljg6bjgq0NCivjgrfjg5DjgrXjgq0s44Kk44Kv44KzDQor44K344OQ44K/LOODhuODhOODreOCpg0KK+OCt+ODluOCteODryzjg57jgrXjg5Xjg58NCivjgrfjg5bjgrXjg68s44Oo44K344OS44OtDQor44K344OBLOODgOOCpOOCqOOCpA0KK+OCt+ODgeOCvyzjgr/jgqvjg6bjgq0NCivjgrfjgrLjg5LjgrUs44OI44Kq44OrDQor44K344Ky44K144OvLOODn+ODpuOCrQ0KK+ODoOODqeOCvyzjg6rjg6Xjgqbjgr/jg63jgqYNCivjgrfjg57jgros44K/44Kr44OE44KwDQor44K344Oe44K6LOOCv+ODhOOCtw0KK+OCreOCt+ODgCzjgr/jgqvjgrcNCivjgrfjg5/jgros44Of44OB44KqDQor44K344Of44K6LOOCqOOCpOOCpOODgQ0KK+OCt+ODn+OCuizjg5Ljg63jgrcNCivjgrfjg5/jgros44OP44Ok44OI44K3DQor44K344Of44K6LOOCr+ODs+OCuA0KK+OCt+ODn+OCuizjgrHjgqTjgrMNCivjgrfjg5/jgros44OS44Ot44K344KyDQor44Of44Ok44Kz44K3LOODiOOCt+ODkuODrQ0KK+OCt+ODouODn+ODgSzjg57jg6rjgrMNCivjg4rjgqvjg5Djg6Tjgrcs44Kr44Kq44OrDQor44K344Oi44Kq44K1LOOCv+OCseOCtw0KK+OCt+ODouODhOOCuCzjgrfjg7PjgrgNCivjgrfjg4rjg4As44OB44Kr44K3DQor44K344OK44Ks44OvLOODjuODluOCqg0KK+OCt+ODs+ODouODiCzjg57jgrXjg5Ljg60NCivjgrfjg44s44Oo44K344OO44OqDQor44K344OO44OALOODquODpeOCpuOCv+ODreOCpg0KK+OCt+ODjuODgCzjg4/jg4TjgqgNCivjgrfjg47jgrbjgq0s44K344On44Km44K4DQor44K344Kq44K/44OLLOODhuODhOODkuODrQ0KK+OCt+OCquODpCzjg4TjgqvjgrUNCivjgrfjg6njg5ks44Kk44OD44K744KkDQor44K344Op44Ks44KtLOODqOOCt+ODj+ODqw0KK+OCt+ODqeOCpCzjgqvjgrrjg5LjgrMNCivjgrfjg6njgqTjgrcs44Ko44OE44OS44OtDQor44K344Op44Kk44K3LOODkuODreOCtw0KK+OCt+ODqeOCrSzjgqvjgrrjg5Ljg60NCivjgrfjgrrjgr8s44Kx44Kk44KzDQor44K344On44Km44K4LOOCseOCpOOCvw0KK+OCveODjuODgCzjg5/jg4njg6oNCivjgrnjg4njgqYs44Oi44OI44Om44KtDQor44K544Ko44OALOOCu+OCpOOCsw0KK+OCueOCqOODhOOCsCzjgr/jgqvjgrcNCivjgrnjgqzjgr8s44Ok44K544K544KxDQor44K544Ks44Ov44OpLOODqOOCt+OCouOCrQ0KK+OCueOCruODjizjg6jjgrfjg47jg5YNCivjgrnjgq7jgrXjgq0s44Om44Km44K4DQor44K544Ku44K344OeLOODnuOCteODqw0KK+ODiuOCrOOCpCzjg57jg6rjgrMNCivjgrnjgq7jg6Tjg54s44OI44K344OS44OtDQor44K544OfLOOCq+ODhOODkuODrQ0KK+OCueODn+OCv+ODiyzjgrfjg7PjgqTjg4ENCivjgrnjgrXjgq0s44OS44Ot44Om44KtDQor44K544K544KtLOOCs+OCpuOCpOODgQ0KK+OCueODpOODnizjg4jjg6Ljg47jg6oNCivjgrnjgrrjgq0s44Of44OB44KqDQor44K544K644KtLOOCseODs+OCpOODgQ0KK+OCueOCuuOCrSzjgrPjgqbjgqTjg4ENCivjgr/jgrjjg54s44K144OI44KtDQor44K544K644KtLOOCv+OCr+ODpA0KK+OCueOCuuOCrSzjg6TjgrnjgrMNCivjgrnjgrrjgq0s44Om44K/44KrDQor44K544K644KtLOOCouOCreOCsw0KK+OCueOCuuOCrSzjgqLjg4TjgrcNCivjgrnjgrrjgq0s44OS44OH44OI44OiDQor44K544K644KtLOODkuODh+ODiOOCtw0KK+OCueOCuuOCrSzjg5Ljg4fjg4jjgrcNCivjgrnjgrrjgq0s44OS44Ot44KtDQor44K344Ol44Kv44OkLOOCuOODpeODs+OCpOODgQ0KK+OCv+ODgeODkOODiizjgqvjg6gNCivjgr/jg4Hjg6Tjg54s44Kz44Km44Kk44OBDQor44K/44OJ44Kz44OtLOODnuOCteOCouOCrQ0KK+OCv+OCrOODryzjg57jgrXjg5Ljg4gNCivjgr/jgrDjg4Es44Oi44OI44Kr44K6DQor44K/44Kw44OBLOODiuOCquODpuOCrQ0KK+OCv+OCsOODgSzjg47jg5bjg5LjgrUNCivjgr/jgqQs44OO44Oq44KqDQor44K/44K444OeLOOCteODgeOCqA0KK+OCv+OCq+ODgCzjgrXjg4jjg6sNCivjgr/jgqvjg4As44K344Ky44OO44OWDQor44K/44Kr44KuLOOCueOCueODoA0KK+ODn+ODpOODouODiCzjgr/jgqvjgrcNCivjgr/jgqvjg4/jg54s44OG44OE44KqDQor44K/44Kr44OP44K3LOODpOOCueOCouOCrQ0KK+OCv+OCq+ODj+OCtyzjg57jgrXjg47jg6oNCivjgr/jgqvjg4/jgrcs44OE44OI44OgDQor44K/44Kr44OP44K3LOODnuOCteODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg57jgrPjg4gNCivjgr/jgqvjg4/jgrcs44Kx44Oz44Oq44Ol44KmDQor44K/44Kr44OP44K3LOODiOOCt+ODkuOCtQ0KK+OCv+OCq+ODj+OCtyzjg6TjgrnjgrcNCivjgr/jgqvjg4/jgrcs44OS44Ot44Om44KtDQor44K/44Kr44OP44K3LOODpOOCueODjuODqg0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jgrcNCivjgr/jgqvjg4/jgrcs44Oi44OI44Ok44K5DQor44K/44Kr44OP44K3LOODpuOCreOCqA0KK+OCv+OCq+ODj+OCtyzjg6TjgrnjgrMNCivjgr/jgqvjg4/jgrcs44K/44Kr44K3DQor44K/44Kr44OP44K3LOODqOOCt+ODkuOCtQ0KK+OCv+OCq+ODj+OCtyzjg4jjgrfjg6bjgq0NCivjgr/jgqvjg4/jgrcs44K144OI44KzDQor44K/44Kr44OP44K3LOODkuODh+OCrQ0KK+OCv+OCq+ODj+OCtyzjgqTjg4Hjg63jgqYNCivjgr/jgqvjg4/jgrcs44OO44OW44Ki44KtDQor44K/44Kr44OP44K3LOODn+ODhOODqw0KK+OCv+OCq+ODiuOCtyzjgrfjg7MNCivjgr/jgqvjg44s44Kr44OE44OO44OqDQor44K/44Kr44Kq44KrLOODhuODhOODpA0KK+OCv+OCq+OCuyzjgrfjgrLjgq0NCivjgr/jgqvjgrfjg4os44Kz44Km44K744KkDQor44K/44Kr44K344OKLOODgOOCpOOCteOCrw0KK+OCv+OCq+OCvyzjg5Ljg63jgqLjgq0NCivjgr/jgqvjg6Tjg54s44OS44Ot44Om44KtDQor44K/44Kr44Ok44OK44KuLOOCuOODpeODsw0KK+OCv+OCseODkOODpOOCtyzjgqvjg4Tjg58NCivjg5/jgqvjg58s44Kx44Kk44K544KxDQor44K/44Kx44KkLOODnuOCs+ODiA0KK+OCv+OCseOCrSzjg57jgrfjg6XjgqYNCivjgr/jgrHjg6Ljg6os44OO44OW44OS44KzDQor44K/44Kx44Og44OpLOOCquOCteODoA0KK+OCv+OCseOCpuODgSzjgrHjg7MNCivjgr/jgrHjg6Qs44K344On44Km44Kk44OBDQor44K/44Kx44Ok44OeLOODiOOCt+OCouOCrQ0KK+OCv+OCreOCsOODgSzjg4jjgrfjgqvjgroNCivjgr/jgq3jgrfjgr8s44OI44K344Om44KtDQor44K/44Kt44K244OvLOOCouOCreODqQ0KK+OCv+ODnuOCpCzjgrfjgrLjg6sNCivjgr/jg5/jg6Qs44Ki44Kt44KzDQor44K/44Og44OpLOODqOOCpuOCueOCsQ0KK+OCv+ODiuODmSzjg5Ljg63jg6bjgq0NCivjgr/jg4rjg4/jgrcs44Oo44K344Om44KtDQor44K/44OK44KrLOOCt+OCsuODiA0KK+OCv+ODiuOCqyzjg5Ljg4fjg47jg6oNCivjgr/jg4rjgqss44OS44Ot44Om44KtDQor44K/44OK44KrLOODkuODreOCrQ0KK+OCv+ODiuOCqyzjg6bjgq3jgrMNCivjgr/jg4rjgqss44OS44Ot44KzDQor44K/44OK44KrLOOCuOODpeODs+OCpOODgQ0KK+OCv+ODiuOCqyzjgrfjg7MNCivjgr/jg4rjgqss44Oe44K144Kr44K6DQor44K/44OK44KrLOOCuOODpeODs+OCsw0KK+OCs+ODgOODnizjg6jjgrfjg5LjgrMNCivjgr/jg4rjgqss44Ki44K144KqDQor44K/44OK44KrLOODjuODquOCouOCrQ0KK+OCv+ODiuOCqyzjgrXjg4jjgrcNCivjgr/jg4rjgqss44Kq44K144OgDQor44K/44OK44Og44OpLOOCteODiOOCtw0KK+OCv+ODs+ODkCzjgqvjgrrjg4rjg6oNCivjgr/jg4vjgrDjg4Es44Kx44Kk44K4DQor44K/44OL44Kw44OBLOOCuOODpeODs+OCsw0KK+OCv+ODi+OCpCzjgrLjg7MNCivjgr/jg4vjg6Djg6ks44OI44Oi44OO44OqDQor44K/44OL44Ov44KtLOOCquOCteODoA0KK+OCv+ODq+OCpCzjgrfjg6fjgqbjgrgNCivjgr/jgrXjgq0s44Kr44K644Om44KtDQor44K/44K344OtLOODnuOCteODpA0KK+OCv+ODhuOCpOOCtyzjg4rjgqrjg6QNCivjgr/jgqbjg4Es44Oq44On44Km44KzDQor44K/44Km44OpLOODkuODreOCouOCrQ0KK+ODhuODqeODgCzjg6jjgrfjgqoNCivjgrXjg4jjgqYs44Ki44Kt44OpDQor44OG44Op44OL44K3LOODouODquODpuOCrQ0KK+ODhuODqeOCt+OCvyzjg5Ljg63jgrcNCivjg4bjg6vjgq3jg4os44Ki44Kt44OoDQor44OI44OZLOOCqOODquOCsw0KK+ODiOOCpuOCtOOCpizjgr/jgqvjg4/jg6sNCivjg4jjgrDjg4Es44Ko44Kk44K4DQor44OI44K4LOOCq+ODhOODjuODqg0KK+ODiOODn+ODiuOCrCzjg57jgrXjg4gNCivjg4jjg5/jg4rjgqws44Ok44K544Oe44K1DQor44OI44Of44Kq44KrLOODiuOCquOCrQ0KK+ODiOODn+OCvyzjgrnjgrDjg6sNCivjg4jjg5/jg6Tjg54s44OS44Ot44K/44KrDQor44OI44ON44Ks44OvLOOCouOCreODqQ0KK+ODiOOCt+ODiuODqizjgrjjg6Xjg7PjgrMNCivjg4jjg6jjg4As44Kz44Km44K4DQor44OI44Oo44OALOOCq+ODhOODpA0KK+ODiOODqOODgCzjg57jgrXjg5LjgrMNCivjgqrjgqrjg6Ljg6os44Oo44Km44Kk44OB44Ot44KmDQor44OI44K644KrLOODkuODh+OCqg0KK+ODpOODnuOCq+ODryzjg6rjg6Xjgqbjg5jjgqQNCivjg4Tjg5zjgqQs44K444Ol44Oz44KzDQor44OE44OB44OP44K3LOOCq+ODhOODnw0KK+ODhOODgeODjizjg5/jg47jg6sNCivjg4Tjg4Hjg6Qs44Oo44K344OS44OtDQor44Oe44KtLOODkuODh+ODjuODqg0KK+ODhOODgCzjg5/jg4Tjg47jg5YNCivjg4Tjgqzjg68s44Kx44Oz44K4DQor44OE44K4LOOCteODiOOCtw0KK+ODhOOCuCzjg4jjg6jjgqvjgroNCivjg4Tjgrgs44OS44Ot44K3DQor44OE44Kr44OALOODkuODreODpuOCrQ0KK+ODhOOCq+ODouODiCzjgq3jg6jjgrcNCivjg4Tjg6Djg6ks44K/44Kr44Om44KtDQor44OE44OK44K344OeLOODpuOCreOCqg0KK+OCquOCr+ODpOODnizjg57jg6Ljg6sNCivjg4Tjg47jg4As44K144OA44OP44OrDQor44OE44OO44Ks44KkLOODpOOCueODjuODqg0KK+ODhOOCt+ODnizjg47jg5zjg6sNCivjg4Tjg4Tjg58s44OS44Ot44K3DQor44OE44K644KtLOOCq+ODhOODnw0KK+ODhOODq+OCquOCqyzjg5Ljg4fjg4gNCivjgqbjg4Hjg4As44OS44K144K3DQor44Km44OB44OALOODnuOCteODqw0KK+OCpuODgeODgCzjg57jgrXjg5Xjg58NCivjgqbjg4Hjg4As44Ok44K544K3DQor44Km44OB44OOLOOCouOCreODkuOCsw0KK+OCpuODgeODjuOCr+ODqSzjg6HjgrDjg58NCivjgqbjg4Hjg6Tjg54s44Of44OB44OP44OrDQor44Km44OB44Ok44OeLOOCv+OCq+ODjuODqg0KK+OCpuODgeODpOODnizjg47jg5bjg5Ljg60NCivjgqbjg4As44Kx44Kk44K4DQor44Km44Ko44OALOOCt+OCsuODqw0KK+OCpuOCqOODgCzjg4rjg4TjgrMNCivjgqbjgqjjg4As44Oo44K344OIDQor44Km44Ko44OALOODiOOCt+ODj+ODqw0KK+OCpuOCqOODj+ODqSzjgrfjgrLjg6sNCivjgqbjgqjjg4/jg6ks44Oe44K144KqDQor44Km44Ko44OP44OpLOOCt+ODs+OCuA0KK+OCpuOCqOOCuOODnizjg5Ljg63jg6bjgq0NCivjgqbjgqjjgq0s44Ko44Oq44KzDQor44Km44Ko44Og44OpLOOCr+ODi+ODkuODrQ0KK+OCpuOCqOODjizjgr/jgqvjg5Ljg4cNCivjgqbjgqjjg44s44OI44Kv44OS44OtDQor44Km44Ko44OOLOODpuOCpuOCuA0KK+OCpuOCqOODpOODnizjg6jjgrfjgrMNCivjgqbjgqQs44Kx44Kk44K544KxDQor44Km44Oh44OALOOCt+ODp+OCpuOCpOODgQ0KK+OCpuODoeODgCzjgqLjg4TjgrcNCivjgqbjg6Hjg4As44OB44OP44OrDQor44Km44Oh44OALOOCseODs+OCuA0KK+OCpuODoeODj+ODqSzjg57jgrPjg4gNCivjgqbjg6Hjgqvjg68s44Oe44K144OO44OqDQor44Km44Or44K344OA44OLLOODnuOCteODpuOCrQ0KK+OCpOODjuOCpuOCqCzjgr/jgrHjgrcNCivjgqbjgrXjg58s44Om44Km44KzDQor44Km44K344Oe44OrLOOCv+ODhOODkuODrQ0KK+OCpuOCt+ODpOODnizjgqvjg4Tjg6bjgq0NCivjgqbjgrnjgqQs44Kz44Km44OY44KkDQor44Km44K544KkLOOCquOCteODoA0KK+OCpuODhOODnyzjgrjjg63jgqYNCivjgrXjgrXjgqzjg68s44Kr44K644Ki44KtDQor44K944Oh44OkLOOCseODs+OCuA0KK+ODr+ODgCzjg57jgrXjgqoNCivjg6/jg4As44Oe44K144Oo44K3DQor44Ov44OALOODqOOCt+OCouOCrQ0KK+OCv+ODjuOCpuOCqCzjg6bjgqbjgqTjg4ENCivjg6/jgrfjg4As44OS44OH44Ki44KtDQor44Ov44K/44KkLOODn+ODgeOCouOCrQ0KK+ODr+OCv+ODiuODmSzjg57jgrXjg6bjgq0NCivjg6/jgr/jg4rjg5ks44Ki44Kt44KqDQor44Ov44K/44OK44OZLOOCq+OCuuODkuOCtQ0KK+ODr+OCv+ODiuODmSzjgrXjg4jjgrcNCivjg6/jgr/jg4rjg5ks44OS44OH44KtDQor44Ov44K/44OK44OZLOODiOOCquODqw0KK+ODr+OCv+ODiuODmSzjg5Ljg63jg6bjgq0NCivjg6/jgr/jg4rjg5ks44Ki44Kt44OpDQor44Ok44KuLOOCq+OCuuOCqg0KK+ODpOOCtCzjg57jgrXjg5LjgrMNCivjg6Tjg4/jgq4s44OK44Kq44OV44OfDQor44Ok44Kv44K3LOOCquOCteODoA0KK+ODpOODnuODgCzjg6zjgqTjgq0NCivjg6Tjg57jg4As44K/44Kr44K3DQor44Ok44Oe44OALOODiOODn+ODpOOCuQ0KK+ODpOODnuODgCzjg4jjgrfjg5Ljg60NCivjg6Tjg57jg4As44OI44K344KqDQor44Ok44Oe44OALOODqOOCt+OCqg0KK+ODpOODnuODgCzjg6bjgqsNCivjg6Tjg57jgqzjgr8s44K/44Kx44K3DQor44Ok44Oe44Ku44K3LOODnuOCteOCqA0KK+ODj+ODqizjg57jgrXjg6bjgq0NCivjg6Tjg57jgrDjg4Es44Kr44OE44K3DQor44Ok44Oe44Kw44OBLOODiOODouOCq+OCug0KK+ODpOODnuOCsOODgSzjg4jjg6Ljg58NCivjgqLjgqrjg4Tjgqss44Oo44K344K144OIDQor44Ok44Oe44Kw44OBLOODnuOCteODjuODqg0KK+ODpOODnuOCuCzjg5/jg4HjgqoNCivjg6Tjg57jg6Ljg4gs44OS44Ot44OO44OqDQor44Ok44Oe44Oi44OILOOCuOODpeODs+OCpOODgQ0KK+ODpOODnuODouODiCzjgrHjg7Pjgrjjg63jgqYNCivjg6Tjg57jg6Ljg4gs44Kr44K644OS44OtDQor44Ok44Oe44Oi44OILOODkuODreODleODnw0KK+ODpOODnuODouODiCzjgr/jgqvjg6bjgq0NCivjg6Tjg57jg6Ljg4gs44Ki44Kt44OS44OHDQor44Ok44Oe44Oi44OILOODiOOCt+ODjuODqg0KK+ODpOODnuODouODiCzjgqjjgqTjgrgNCivjg6Tjg57jg6Ljg4gs44Oe44OK44OWDQor44Ok44Oe44Oi44OILOODiOOCt+ODpuOCrQ0KK+ODpOODnuODouODiCzjg4rjgqrjg5Xjg58NCivjg6Tjg57jg6Djg6ks44OI44Oi44Kr44K6DQor44Ok44Oe44OK44KrLOODpuOCv+OCqw0KK+ODpOODnuOCt+ODiizjgrfjg7PjgrgNCivjg6Tjg57jgrfjgr8s44Om44Kt44OS44OtDQor44Ok44Oe44K344K/LOODquODs+OCuOODpQ0KK+ODpOODnuOCt+OCvyzjgrHjg7PjgrgNCivjg6Tjg57jgrfjgr8s44OS44OI44K3DQor44Ok44Oe44OGLOOCseOCpA0KK+ODpOODnuOCpuODgSzjgqLjgq3jg6kNCivjg6Tjg57jgrbjgq0s44Om44Kt44OS44K1DQor44Ok44Oe44K244KtLOODjuODnOODqw0KK+ODpOODnuOCtuOCrSzjg5Ljg4jjgrcNCivjg6Tjg4rjgq4s44Kr44K644KqDQor44Ok44OK44Ku44OALOOCs+OCpuOCpOODgeODreOCpg0KK+ODpOODiuOCruODgCzjg5/jg5sNCivjg6Tjg4rjgqQs44K144OI44K3DQor44Ok44OK44KrLOOCv+ODgOOCtw0KK+ODpOOCueODgCzjg57jgrXjg58NCivjg6Tjgrnjg4As44Kk44Ov44KqDQor44Ok44K544OALOOCu+OCreOCsw0KK+ODpOOCueODouODiCzjgqvjgrrjg6QNCivjg6Tjg4Tjgqss44OK44Kq44KtDQor44Ok44K244OvLOODn+OCuuODmw0KK+ODqOODgCzjg4bjg4Tjg6QNCivjg6jjg4njgqzjg68s44OO44Oq44KqDQor44Oo44OALOODkuODreODjuODqg0KK+ODqOOCs+ODj+OCvyzjg5Ljg63jg6QNCivjg6jjgrPjg6Tjg54s44Kk44Ov44KqDQor44Oo44Kz44Ok44OeLOOCt+OCsuODqw0KK+ODqOODouODqizjgqLjgq3jg6jjgrcNCivjg6jjg43jg6Ljg4Es44Oo44K344OE44KwDQor44Oo44Ot44K644OkLOODiuOCquODkuOCtQ0KK+ODqOOCt+ODgCzjgr/jg4Tjgr7jgqYNCivjg6jjgrfjg4As44K/44Kr44K3DQor44Oo44K344OALOODjuODquOCqg0KK+ODleOCuOOCteOCrSzjgrPjgqbjgqTjg4ENCivjg6jjgrfjg4As44OS44OI44K3DQor44Oo44K344OALOODhuODhOOCqg0KK+ODqOOCt+ODnuODhCzjg4Hjg4/jg6sNCivjg6jjgrfjg6Ljg4gs44Om44Km44K544KxDQor44Oo44K344Og44OpLOOCq+ODhOODpA0KK+OCpOOCt+ODkOOCtyzjgr/jg4DjgrcNCivjg6jjgrfjg44s44K/44OE44OkDQor44K/44Kr44OOLOOCseOCpOOCtA0KK+ODpuODj+OCtyzjgrfjg6fjgqbjgrMNCivjgqjjg4Djg5Ljg60s44Of44OJ44OqDQor44OP44Op44OALOODnuOCteODpuOCrQ0KK+ODj+ODpOOCteOCqyzjg6rjg6XjgqbjgrvjgqQNCivjgqTjg4rjgqzjgq0s44Oe44K144KtDQor44Kk44OO44Km44KoLOOCteODiOOCtw0KK+OCpOOCt+ODj+ODqSzjgr/jgqvjgrcNCivjgrPjgrjjg54s44Ok44K544OS44K1DQor44Kz44K544KuLOOCt+ODs+OCtA0KK+OCr+ODnOOCvyzjg4rjg6vjg58NCivjg6Ljg6os44K/44Kr44K3DQor44OK44Kr44OQ44Ok44K3LOODiuOCquODkuOCtQ0KK+ODjeODouODiCzjgr/jgqvjgrcNCivjg4vjg47jg5/jg6Qs44Kx44KkDQor44Kq44Ks44OvLOODoeOCsOODnw0KK+OCquOCquOCv+ODiyzjg57jgrXjgrMNCivjgrvjgq0s44Kv44OfDQor44K344OW44K/44OLLOODhOODiOODoA0KK+OCt+ODs+ODiCzjg5Ljg63jg6bjgq0NCivjgr3jg5bjgqgs44OS44OI44K3DQor44K/44Kr44OP44K3LOOCv+OCseOCtw0KK+OCv+OCq+OCuyzjg57jg5/jgrMNCivjg4jjg6jjg4As44OS44Ot44OS44OHDQor44Km44Ko44OALOOCt+ODs+OCv+ODreOCpg0KK+ODpOODnuODouODiCzjg6Tjgrnjg6bjgq0NCivjg6Tjg57jgrrjg58s44OS44Ot44K3DQor44Oo44K344OALOOCs+OCpuOCuA0KK+OCouOCteOCq+OCpCzjg4rjg6vjg4jjgrcNCivjg5Xjgq/jgr8s44Kr44K644OfDQor44Kr44Ov44K144KtLOOCq+OCuuOCqg0KK+ODkuODreOCuyzjg6jjgrfjgqvjgroNCivjgqvjgrXjg4/jg6ks44K744OE44KzDQor44Kq44K244OvLOOCseOCpOOCpOODgQ0KK+OCq+ODiOOCpizjgrHjgqTjgqTjg4ENCivjg4rjgqvjg6Djg6ks44K744Kk44Ko44KkDQor44K/44Kw44OBLOODkuODreODoA0KK+OCouODgOODgSzjg6rjg6fjgqbjgrvjgqQNCivjgqLjgqvjgrcs44Oo44K344OS44K1DQor44Ki44Kt44Ok44OeLOOCqOODnw0KK+OCouOCquOCrSzjgrfjg6fjgqbjgrgNCivjgqLjg6njgq0s44OI44Oi44K/44KxDQor44Ki44K144OSLOODleODn+ODjuODqg0KK+OCouOCteODjizjg4jjgrfjg5LjgrMNCivjgqLjg6/jg44s44Kq44K144OgDQor44Ki44Ov44OOLOOCuOODpeODs+OCuOODreOCpg0KK+ODieOCpuOCuCzjg4rjgqrjg6bjgq0NCivjg4njgqbjgr7jg44s44K744Kk44OkDQor44OV44OB44Kr44OfLOOCq+ODhOODreOCpg0KK+ODleOCuOOCpCzjgrHjg7PjgrgNCivjg5XjgrjjgqQs44Kz44Km44Kk44OBDQor44OV44K444Kk44KoLOODjuODluODpA0KK+OCs+ODryzjgrfjg6Xjg7PjgqTjg4ENCivjg5Xjgrjjgrfjg60s44Oe44K144KqDQor44OV44K444K/LOODqOOCpuOCsw0KK+ODleOCuOOCvyzjg5Ljg63jg6bjgq0NCivjg5Xjgrjjg6/jg6ks44Kz44Km44K4DQor44OV44Kv44OALOODiuOCquODpuOCrQ0KK+ODleOCr+ODgCzjgr/jg4TjgqoNCivjg5Xjgq/jg4As44Kx44OzDQor44K144Kk44OI44KmLOOCquOCteODnw0KK+ODleOCr+ODpOODnizjgrjjg6Xjg7PjgqTjg4ENCivjg5Xjg6vjg4/jgr8s44Kz44Km44K4DQor44K044OI44KmLOODkuODreOCq+OCug0KK+ODj+ODoOODrSzjgqrjgrXjg6ANCivjg4/jgrss44K/44Kv44OS44K1DQor44OP44K344Oi44OILOODnuOCteODkuODrQ0KK+ODj+OCt+ODouODiCzjgrjjg6Xjg7PjgqTjg4ENCivjg4/jg4Pjg4jjg6os44K444Ol44OzDQor44OP44Ok44K3LOOCq+ODhOODkuOCsw0KK+ODj+ODpOOCtyzjg4jjgrfjgqLjgq0NCivjg4/jg6Tjgrcs44Oe44K144Kr44K6DQor44OP44Ok44K3LOOCt+OCsuODn+ODhA0KK+ODj+ODpOOCtyzjg6HjgqQNCivjg4/jg6Tjgrcs44Oe44K144OE44KwDQor44OS44OTLOODkuODreODpuOCrQ0KK+ODkuOCsOODnizjgr/jgq/jg6QNCivjg5Ljg6njgqQs44OS44Ot44K/44KrDQor44OS44Op44Kr44OvLOODhOODjeODiOODog0KK+ODkuODqeODjizjgqvjgrrjg5LjgrMNCivjg5Ljg63jg4rjgqss44Of44OO44OrDQor44Ob44Oq44Kw44OBLOODjuODluOCouOCrQ0KK+ODm+OCteOCqyzjgrXjg4jjgrcNCivjg5vjgr3jg6Qs44K744Kk44K4DQor44Kk44OB44KkLOOCt+OCsuODpuOCrQ0KK+OCpOODgeOCq+ODryzjg6Ljg4jjg5Ljg60NCivjgqTjgrDjg54s44Ko44Kk44Kk44OBDQor44Kk44Kk44K144KrLOODnuODpuODnw0KK+OCpOOCq+ODryzjgqTjg6/jgqoNCivjgqTjgrHjg4As44Ki44Om44KzDQor44Kk44Kx44OALOOCpOOCr+OCuOODreOCpg0KK+OCpOOCseOCrOODnyzjg57jg6Ljg6sNCivjgqTjg47jgqbjgqgs44K344Ot44KmDQor44Kk44OO44Km44KoLOODkuOCteOCouOCrQ0KK+OCs+ODkOODpOOCtyzjg4jjgq/jgrjjg63jgqYNCivjgqTjgrfjg5Djgrcs44Ok44K544OS44K1DQor44Kk44K344OALOODqOOCt+ODpuOCrQ0KK+OCpOOCt+ODnuODqyzjg5/jg68NCivjgqTjgrfjgrrjgqss44OI44K344Om44KtDQor44Kk44K9LOODkuODh+OCouOCrQ0KK+OCpOODiOOCpizjg5Ljg4fjgqLjgq0NCivjgqTjg4jjgqYs44Ki44Kt44OS44KzDQor44Kk44OI44KmLOODnuOCteODkuODrQ0KK+OCpOODiOOCpizjgrXjg6/jgrMNCivjgqTjg4jjgqYs44OG44OE44OkDQor44Kk44OI44KmLOODqOOCt+ODn+ODjQ0KK+OCpOODiOOCpizjgrHjg7PjgqTjg4ENCivjgqTjg6/jgr8s44K144OI44K3DQor44Kr44Oq44OkLOOCu+OCpOOCpOODgQ0KK+OCrOOCteOCrSzjgrfjgrLjgqoNCivjgqvjgqws44Kr44K644OS44K1DQor44Kr44Ky44Ok44OeLOODhOODqOOCtw0KK+OCq+OCuOODiuODnyzjgr/jgqvjg6bjgq0NCivjgqvjg5/jg5Ljg6njgr8s44OS44Ot44Om44KtDQor44Kr44OK44Oi44OqLOOCv+ODhOODpA0KK+OCq+ODjeOCsyzjg4bjg6vjgqoNCivjgqvjg43jgrMs44Oo44K344KqDQor44Kr44OL44OvLOOCouOCreODqQ0KK+OCq+OCteODnizjg47jg6rjg57jgrUNCivjgqvjgrss44OS44Ot44Om44KtDQor44Kr44K344Og44OpLOODleODn+ODiOOCtw0KK+OCq+OCv+OCquOCqyzjgrHjg7PjgrgNCivjgqvjg4jjgqYs44K444Ol44Oz44KzDQor44Kr44OI44KmLOOCseOCpOOCuA0KK+OCq+ODiOOCpizjgrPjgqbjgr8NCivjgqvjg4jjgqYs44Ki44Kt44OS44KzDQor44Kr44OI44KmLOODjuODluODkuODhw0KK+OCq+ODr+ODgSzjgrHjgqTjgrMNCivjgqvjg6/jgrDjg4Es44OB44K144OIDQor44Kr44Ov44OOLOODn+ODhOOCqg0KK+OCq+ODr+OCt+ODnizjg4bjg4TjgrgNCivjgq3jgq/jg4Es44OI44Oi44Ki44KtDQor44Kt44Oi44OILOODqOOCt+ODkuODrQ0KK+OCreODoOODqSzjgqvjg4Tjg6QNCivjgq3jg47jgrfjgr8s44OG44OEDQor44Kt44K344OP44OpLOODhOOCsOOCouOCrQ0KK+OCreOCt+OCq+ODryzjg5Ljg4fjg6bjgq0NCivjgq3jgr8s44Oq44KoDQor44Kt44K/44Ks44OvLOODn+ODgeODj+ODqw0KK+OCreOCv+ODjizjg6rjgqjjgrMNCivjgq3jgr/jg6Tjg54s44K744Kk44KzDQor44Kt44Oo44Kq44KrLOODnuOCteODqA0KK+OCreODqOOCuyzjg4TjgqvjgrUNCivjgrPjg5Djg6os44K/44OG44KtDQor44Kz44OQ44Ok44K3LOOCq+OCquODqw0KK+OCs+ODkOODpOOCtyzjgrPjgqbjgr/jg63jgqYNCivjgrPjg5zjg6os44K/44Oe44OfDQor44Kz44Kk44OvLOOCv+OCseOCtw0KK+OCs+OCuOODnizjg5Xjg5/jg6gNCivjg4/jgrfjg6Ljg4gs44Kz44Km44Kk44OBDQor44Kz44Of44Ok44OeLOOCv+OCq+ODkuODrQ0KK+OCs+ODs+ODiSzjg4jjg6Ljg6bjgq0NCivjgrPjg7Pjg4ks44OO44Oq44KzDQor44Kz44Oz44OJLOODqOOCpuOCueOCsQ0KK+OCs+OCt+OCq+ODryzjgqLjgq3jg5Xjg58NCivjgrPjg4bjgqzjg68s44Kx44Oz44K4DQor44Kz44OvLOODjuODluODpuOCrQ0KK+OCr+ODnOOCvyzjgrfjg6fjgqbjgqTjg4ENCivjgq/jg5zjgr8s44OS44Ot44Om44KtDQor44Kv44OJ44KmLOODj+ODpOODiA0KK+OCr+OCrCzjg6jjgrfjg5Ljg60NCivjg6Ljg6os44Om44Kt44OS44OtDQor44Kv44OL44K/44KxLOODj+OCuOODoQ0KK+OCr+ODqeOCq+OCsSzjg5Ljg63jgqvjgroNCivjgq/jg6os44Oe44K144OS44OIDQor44Kv44K144OV44KrLOOCt+ODjuODlg0KK+OCr+ODr+ODkOODqSzjg4jjgqrjg6sNCivjg57jg4Hjg4As44OS44Ot44Om44KtDQor44Oe44Or44Ok44OeLOODpuOCrQ0KK+OCv+OCseOCpuODgSzjgqLjgq3jgqoNCivjg57jg4Tjg5As44Ki44OE44K3DQor44Oe44OE44OQ44OpLOOCv+OCseODrQ0KK+ODnuODhOODgOOCpOODqSzjg57jgq0NCivjg57jg4Tjg6Ljg4gs44Oo44Oq44KzDQor44Oe44OE44Oi44OILOODqOOCt+OCouOCrQ0KK+ODnuODhOODiuOCrCzjg5/jg5sNCivjg57jg4Tjgqos44Oe44K144OkDQor44Oe44OE44KqLOODjuODquODpuOCrQ0KK+ODnuODhOOCqizjgrfjg7Pjg6QNCivjg5/jgq/jg4ss44Ok44K544K3DQor44Of44OK44Ks44OvLOODr+OCv+ODqw0KK+ODn+ODiuOCrOODryzjgrfjgrLjg6sNCivjg5/jg47jg4Ys44OI44Oi44Ki44KtDQor44Of44K/LOODqOOCt+OCr+ODiw0KK+ODn+ODiOODoSzjgr/jgrHjgrcNCivjg5/jg4Tjg6Tjg54s44K344Ol44Km44Kk44OBDQor44Of44Ok44OBLOOCv+OCq+ODleODnw0KK+ODn+ODpOOCuCzjgrPjgqbjgrgNCivjg5/jg6Tjgrjjg54s44Of44OE44KqDQor44Of44Ok44K/LOOCseOCpOOCsw0KK+ODn+ODpOOCtuOCrSzjgq3jg6jjgqLjgq0NCivjg5/jg6Tjgrbjgq0s44Oe44Kz44OIDQor44Of44Ok44K244OILOODqOOCt+ODiuODqg0KK+ODn+ODpOOCtuODryzjg5Ljg63jgq0NCivjg5/jgr7jgrDjg4Es44Oi44OI44KzDQor44Of44K644KkLOODnuOCteODqOOCtw0KK+ODouODs+ODjizjgqjjgqTjgrgNCivjg6Ljg6os44Of44OE44OS44OtDQor44Oi44OqLOODjuODquOCueODnw0KK+ODouODquOCvyzjgq/jg6vjg58NCivjg6Ljg6rjgr8s44OI44K344Ki44KtDQor44Oi44Oq44Ok44OeLOODnuODquOCsw0KK+ODoOODqeOCq+ODnyzjg6rjg6XjgqbjgqTjg4ENCivjg6Djg6njgqvjg58s44Kz44Km44Kk44OB44Ot44KmDQor44Og44Op44Kr44OfLOODn+ODjuODqw0KK+ODoOODqeODnuODhCzjgrfjg7PjgrnjgrENCivjg6Djg63jgr7jg44s44OS44Ot44Ki44KtDQor44OK44Ks44OW44OBLOODkuODreOCtw0KK+ODiuOCrOODjizjg5/jg4Tjg6sNCivjg4rjgqzjgrss44Oq44Ol44Km44Kk44OBDQor44OK44Ks44K/44OLLOOCt+ODmw0KK+ODiuOCtOODpCzjg5Ljg63jgqLjgq0NCivjg4rjgqvjgqzjg68s44Kr44Kq44OqDQor44OK44Kr44Of44OBLOOCt+ODp+OCpg0KK+ODiuOCq+ODoOODqSzjgrjjg6Xjg7PjgqTjg4Hjg60NCivjg4rjgqvjg6Djg6ks44Oe44K144OO44OqDQor44OK44Kr44OOLOODkuODreOCtw0KK+ODiuOCq+OCt+ODnizjg5Ljg63jg47jg6oNCivjg4vjgrfjg4As44K444Ol44OzDQor44OL44K344OP44OpLOOCouODhOODiA0KK+ODi+OCt+ODoOODqSzjgrfjg7Pjg6QNCivjg4vjgrfjgqrjgqss44Kr44K644OS44KzDQor44OO44Kw44OBLOODjuODnOODqw0KK+ODjuOCuyzjg57jgrXjgrrjg58NCivjgqrjg5Djgr8s44Om44Km44K4DQor44Kq44OB44Ki44KkLOOCpOOCr+OCsw0KK+OCquODgeOCouOCpCzjg5Ljg4fjg5LjgrMNCivjgqrjgqzjg68s44K/44Kr44K3DQor44Kq44Ks44OvLOODnuOCteODiA0KK+OCquOCrOODryzjgr/jg5/jg6QNCivjgqrjgqzjg68s44Kr44OE44OI44K3DQor44Kq44Ku44OOLOODnuODpuODnw0KK+OCquOCsOODqSzjgr/jgqvjgqLjgq0NCivjgrPjg7Pjg4ks44Ok44K544Om44KtDQor44Kq44Kq44KoLOODnuOCteODn+ODgQ0KK+OCquOCquOCrOOCrSzjgrjjg63jgqYNCivjgqrjgqrjg4vjgrcs44OO44Oq44Ki44KtDQor44Kq44Kq44OOLOODnuOCteODn+ODgQ0KK+OCquOCquOCvyzjg5Ljg63jgrcNCivjgqrjgrfjg60s44Kr44K644K344KyDQor44Kq44Kq44K/LOOCv+OCq+OCtw0KK+OCquOCquOCv+OCt+ODrSzjg5Ljg4fjgq0NCivjgqrjgqrjg4Qs44Oe44K144Kr44K6DQor44Kq44Kq44OELOODoeOCsOODnw0KK+OCquOCquODpOOCrizjgqjjgqTjgrgNCivjgqrjgqrjg6Tjg54s44OB44OP44OrDQor44Kq44Kr44Oi44OILOODkuODreODluODnw0KK+OCquOCq+ODpOODnizjg5/jg4Tjg6jjg6oNCivjgqrjgrHjgr/jg4ss44K/44OE44KzDQor44Kq44Kv44Ok44OeLOOCr+ODn+OCsw0KK+OCquODjuODh+ODqSzjg5Ljg4fjg4jjgrcNCivjgqrjgrbjg68s44Of44OO44OrDQor44K144Kk44OI44KmLOOCq+OCuuODkuODhw0KK+OCteOCpOODiOOCpizjg4bjg6vjgqoNCivjgrXjgqTjg4jjgqYs44K/44Kr44OO44OWDQor44K144Kr44Kw44OBLOODkuODreOCq+OCug0KK+OCteOCq+ODiuOCqyzjg6Ljg4jjg6ANCivjgrXjgqvjg4vjg68s44Oo44Oq44KzDQor44K144Kr44Km44OBLOODiOOCt+OCv+OCqw0KK+OCteOCr+ODqeOCpCzjg4Tjg4jjg6ANCivjgrXjgq/jg6njgqQs44Oe44K144Om44KtDQor44K144OOLOOCv+OCr+ODpA0KK+OCteOCteOCrSzjg57jgrXjg58NCivjgrXjgrXjgq0s44Ko44OqDQor44K144K144KtLOODquOCqA0KK+OCteOCteODnizjg57jgrXjgqvjgroNCivjgrXjg4jjgqYs44K/44Kx44OkDQor44K144OI44KmLOODkuODreODpuOCrQ0KK+OCteODiOOCpizjgr/jgqvjgrcNCivjgrXjg4jjgqYs44Of44OvDQor44OL44K344Oe44K/LOODhuODhOOCqg0KK+OCteODr+ODgCzjg57jgrXjg5LjgrUNCivjgrvjg7Pjg5As44Om44Km44Kk44OBDQor44K744OILOODqOOCt+ODjuODqg0KK+OCt+ODluODpCzjg6bjgq3jgqoNCivjgrfjgqQs44Of44K144KzDQor44K344Oe44OALOOCs+OCpuODmOOCpA0KK+OCt+ODnuODgCzjg5/jgqgNCivjgqrjgqvjg6Ljg4gs44Oe44K144OI44K3DQor44K344OK44Ks44OvLOOCteODgeOCqA0KK+OCt+ODs+OCq+ODryzjg5LjgrXjg6QNCivjgrfjg7Pjgq3jg6XjgqYs44Oe44K144Om44KtDQor44K344OO44OALOODhuODq+OCqA0KK+OCt+ODjuODj+ODqSzjgrvjgqTjgqTjg4ENCivjgqLjgrXjgqvjg68s44Kr44Kq44OrDQor44K344Kq44OP44OpLOODnuOCteODiA0KK+OCt+ODreOCvyzjgqvjg4Tjg5Ljg60NCivjgrnjgq7jg6Ljg4gs44Kr44K644OS44OHDQor44K544Ku44Ok44OeLOOCreODqOOCv+OCqw0KK+OCueOCsOODgSzjg47jg5bjgrMNCivjg6Ljg63jg4jjg58s44OP44Or44KzDQor44K544K644KtLOODnuOCteODleODnw0KK+OCv+OCsOODgSzjgqLjgq3jgqoNCivjgr/jgrDjg4Es44Om44Km44K4DQor44K/44OP44OpLOODkuODreODpuOCrQ0KK+OCv+OCq+OCrizjg6jjgrfjgqoNCivjgr/jgqvjg4/jgrcs44Kr44K644KqDQor44K/44Kr44KkLOOCseODs+OCuA0KK+OCv+OCq+ODpOODnizjgqvjgrrjgrMNCivjgr/jgrEs44OK44Kq44KtDQor44K/44Kx44OQ44Ok44K3LOODquODpeOCpuOCuA0KK+OCv+OCseOCq+ODryzjgrjjg6Xjg7PjgrMNCivjgr/jgrHjgqbjg4Es44Kr44Ob44OrDQor44Ov44K/44OK44OZLOOCs+OCpuOCuA0KK+OCv+OCseOCpuODgSzjg5Ljg4fjgq0NCivjgr/jg5/jg6Qs44Oe44K144Kr44K6DQor44K/44Og44OpLOODkuODreOCtw0KK+OCv+ODiuODmSzjg57jgrXjg5Ljg60NCivjgr/jg4rjgqss44Kx44Kk44KzDQor44K/44OK44KrLOODjuODluOCsw0KK+OCv+ODiuOCqyzjg4Tjg6jjgrcNCivjgr/jg4vjgrDjg4Es44Ki44OE44K3DQor44K/44OL44Kw44OBLOOCq+OCuuODkuODrQ0KK+OCv+ODi+ODoOODqSzjgr/jg4TjgqoNCivjgr/jg47jgqbjgqgs44Ki44Kt44OS44OtDQor44K/44Or44K144OvLOOCouOCreOCsw0KK+OCv+OCt+ODrSzjg4jjgrfjg4/jg6sNCivjg4bjg6njg4As44Om44Kt44OS44KzDQor44OI44Km44KsLOODkuODh+ODn+ODjQ0KK+ODiOOCrOOCtyzjgrfjgrLjgqoNCivjg4jjgqbjgrTjgqYs44K344Oz44OkDQor44OI44Kv44OK44KsLOOCouODpOOCsw0KK+ODiOODouODjizjgqvjgrrjg58NCivjg4jjg6jjg4As44Oo44Km44K444Ot44KmDQor44OE44OB44OkLOODkuODreOCouOCrQ0KK+ODhOOCq+ODj+ODqSzjg47jg5bjg5Ljg60NCivjgqbjg6njgrXjgq0s44Om44Km44K4DQor44Ov44OALOODiOODouODpOOCuQ0KK+ODr+ODgCzjg6zjgqTjgrMNCivjg6/jgr/jg4rjg5ks44Oe44K144OI44K3DQor44Ov44K/44OK44OZLOODleODn+OCqg0KK+ODpOOCruODjOODnizjgrHjgqTjgrMNCivjg6Tjg57jg4As44OI44K344Ki44KtDQor44Ok44Oe44OALOODkuOCteOCtw0KK+ODpOODnuODgCzjgrHjgqTjgrgNCivjg6Tjg57jg6Ljg4gs44Oe44K144Ki44KtDQor44Ok44Oe44Oi44OILOODkuODh+ODiA0KK+ODpOODnuODouODiCzjgr/jg4Tjg6QNCivjg6Tjg57jg6Ljg4gs44Om44Kt44OS44OtDQor44Ok44Oe44OK44KrLOODgeODkuODrQ0KK+ODpOODnuODiuOCqyzjgqvjgqrjg6sNCivjg6Tjg57jgrfjgr8s44Oe44K144OS44OtDQor44OS44Kw44OBLOOCuOODpeODs+OCuA0KK+ODpOODnuOCtuOCrSzjg5Xjg5/jg44NCivjg6Tjg4rjgq4s44OS44Ot44K3DQor44Ok44K544OALOODjuODluODpuOCrQ0KK+ODpOOCueOCqCzjg4jjgrfjg6QNCivjg6jjgrPjgqgs44OO44OW44Ki44KtDQor44Oo44Kz44Ok44OeLOODquOCqOOCsw0KK+ODqOODjeODj+ODqSzjgrPjgqbjgqTjg4ENCivjg6jjg43jg5/jg4Qs44Oe44Kz44OIDQor44Oo44Oq44Oe44OELOODiOODouOCsw0KK+ODqOOCt+ODgCzjg5Xjg5/jg5Ljg60NCivjg6jjgrfjg44s44Of44OE44OS44OtDQor44Oo44K344K/44KtLOOCquOCteODoA0KK+ODpuOCq+ODryzjgrjjg6Xjg7Pjg6QNCivjg6bjg6os44OI44Oi44KqDQor44Oi44OqLOOCv+OCq+ODkuOCtQ0KK+OCteOCteOCrSzjgqvjg4Tjg5LjgrMNCivjgrfjg6njg4/jg54s44K/44Kx44OS44OtDQor44OG44Oz44OR44KvLOODpuOCpuOCpOODgeODrQ0KK+OCpuODgeODgCzjg4rjgqrjg6QNCivjg6Tjg57jgqbjg6ks44OI44Kq44OrDQor44Oe44OE44Kw44OeLOODleODn+OCsw0KK+OCouODmSzjg5Ljg63jg6bjgq0NCivjgqLjg5ks44Kr44OE44OfDQor44Ki44OZLOOCq+OCuuOCqg0KK+OCouODmSzjg4rjgqrjgqLjgq0NCivjgqLjg4Djg4Es44OK44OK44KqDQor44Ki44Kk44OP44OpLOODhOODqOOCtw0KK+OCouOCuOODnizjg6TjgrnjgqLjgq0NCivjgqLjgqvjgrXjgqss44OI44Kq44OrDQor44Ki44Kt44Oi44OILOOCs+OCpuOCvuOCpg0KK+OCouOCreODpOODnizjgr/jgqvjgrcNCivjgqLjgq3jg6Tjg54s44K/44OE44OkDQor44Ki44Kv44ONLOODkuODreOCtw0KK+OCouODnuODjizjg57jg4rjg5YNCivjgqLjg57jg44s44OB44Ki44KtDQor44Ki44Oh44Of44OkLOODnuOCteODhOOCsA0KK+OCouODs+ODieOCpizjg5/jgq0NCivjgqLjg7Pjg4njgqYs44Of44OvDQor44Ki44Oz44OJ44KmLOOCq+OCuuOCqg0KK+OCouODs+OCuOOCrSzjg6bjgqbjgrMNCivjgqLjg7Pjg5rjgqTjgrgs44K344Ol44Oz44Kk44OBDQor44Ki44Kq44KtLOODqOOCt+OCsw0KK+OCouOCquOCrSzjgrfjgrLjg4/jg6sNCivjgqLjgqrjgq0s44Om44Kt44KzDQor44Ki44Kq44KtLOOCuOODpeODsw0KK+OCouOCquOCrSzjg4jjgrfjgqLjgq0NCivjg4/jg6njgrfjg54s44Oq44KrDQor44Ki44Kq44KtLOODhOODiOODoA0KK+OCouOCquOCrSzjg4rjgqrjg5LjgrUNCivjgqLjgqrjg6Tjgq4s44K/44Kr44Om44KtDQor44Ki44Kq44Ok44OeLOODqOOCpuOCpOODgQ0KK+OCouOCquODpOODnizjgrHjgqTjgrnjgrENCivjgqLjg6njgqQs44Kz44Km44Kk44OBDQor44Ki44Op44KtLOODnuOCs+ODiA0KK+OCouODqeOCrSzjgqvjg4TjgrgNCivjgqLjg6njgr8s44Of44KtDQor44Ki44Op44OkLOOCt+ODs+OCpOODgQ0KK+OCs+ODkOODpOOCq+ODryzjg6Tjgrnjg5Ljg60NCivjgqLjg6rjgr8s44OK44Or44OS44OIDQor44Ki44K144OQLOODqOOCt+ODpuOCrQ0KK+OCouOCteOCqyzjg4jjg6Ljg4HjgqsNCivjgqLjgrXjgq/jg6ks44K/44OE44KqDQor44Ki44K144OOLOOCt+ODpeOCpuOCuA0KK+OCouOCteODjizjg4jjg6LjgqLjgq0NCivjgqLjgrfjg5ks44Oe44K144OS44KzDQor44Ki44Ov44Of44OkLOODkuODreODpuOCrQ0KK+OCouOCtuODnyzjg4Tjg4jjg6ANCivjgqLjgrzjg6Tjg4rjgq4s44OS44Ot44OfDQor44Ki44K644OeLOODquOCqA0KK+OCouOCuuODnizjgr/jgqvjg6bjgq0NCivjgqLjgrrjg54s44OK44Kq44Om44KtDQor44OQ44OQLOODqOOCt+OCq+OCug0KK+ODkOODkCzjgqvjg4Tjg6bjgq0NCivjg5Djg5As44OA44Kk44K544KxDQor44OQ44OK44KrLOOCq+OCuuODpA0KK+OCteOCv+OCsSzjgrHjgqTjgrMNCivjg4Hjg5As44Oi44OI44OP44OrDQor44OB44Ku44OpLOODjuODluODkuOCsw0KK+ODgeODj+ODqSzjgr/jgqvjg5Xjg58NCivjg4HjgqvjgqQs44Ki44OE44K3DQor44OB44Ol44Km44OeLOOCv+OCseOCtw0KK+ODgOOCpCzjg57jgrXjg5Ljg60NCivjg4DjgqTjgqos44OS44OH44KtDQor44OA44OGLOODkuODreOCtw0KK+ODh+OCsOODgSzjgrPjgqbjgrgNCivjg4fjg68s44Ko44Of44KzDQor44OJ44KkLOOCv+OCpOOCvuOCpg0KK+OCqOODk+OCteODryzjg5Ljg63jg5/jg4QNCivjg4rjgqvjg6Djg6ks44K/44Kr44KzDQor44Ko44Kk44Oi44OqLOODj+ODq+ODnw0KK+OCqOODs+ODiSzjg4rjgqrjgq0NCivjgqjjg7Pjg4ks44K/44Kr44KqDQor44Ko44OO44Oi44OILOOCseOCpOOCsw0KK+ODleOCuOOCpCzjg5Ljg63jgqvjgroNCivjg5XjgrjjgqQs44Kx44Oz44Kk44OB44OtDQor44OV44K444KkLOOCv+ODhOODjuODqg0KK+ODleOCuOOCpCzjg5/jg4Tjg6jjgrcNCivjg5XjgrjjgqQs44OI44K344Ki44KtDQor44OV44K444Kr44OvLOOCt+ODjuODlg0KK+ODleOCuOODouODqizjgqLjgq3jgrMNCivjgqLjgqrjgq0s44Ki44Kt44OpDQor44OV44K444Oi44OILOODiuOCquODpA0KK+ODleOCuOOCquOCqyzjg4bjg4Tjg63jgqYNCivjg5Xjgrjjgr8s44Ok44K544OS44K1DQor44OV44K444K/LOODoOODhOOCqg0KK+ODleOCq+OCqizjgrfjg7PjgqTjg4ENCivjg5Xjgq/jg4As44Kr44OE44OS44KzDQor44OV44Kv44OALOODkuODreOCtw0KK+ODleOCr+OCpCzjg5Ljg4fjgqoNCivjg5Xjgq/jgqQs44Kz44Km44K4DQor44OV44Kv44Oi44OILOODkuODh+OCv+OCqw0KK+ODleOCr+OCt+ODnizjg5Ljg4fjg47jg5YNCivjg5Xjgq/jgrfjg54s44OO44OW44KzDQor44OS44OOLOOCteODgQ0KK+ODleOCr+OCtuODryzjgq3jg6fjgqbjgrMNCivjg5Xjgq/jgrbjg68s44Of44Kt44KzDQor44OV44OK44OALOODpuOCpuOCsw0KK+ODleODq+ODgOODhizjgrHjgqTjgrMNCivjg5Xjg6vjg6Qs44Kx44Kk44K544KxDQor44OV44K/44Og44OpLOODn+OCreODpA0KK+ODiuOCq+ODoOODqSzjg6Ljg4jjg5LjgrUNCivjgrTjg4jjgqYs44K344Ky44KtDQor44K044OI44KmLOOCq+OCuuODpA0KK+OCtOODiOOCpizjgqvjgqTjg4Hjg63jgqYNCivjgrTjg4jjgqYs44Oo44Km44KzDQor44OP44OQLOODqOOCpuOCsw0KK+ODj+ODgeODpOODnizjg57jgrXjg58NCivjg4/jgq7jg6/jg6ks44K344OzDQor44OP44Oe44OZLOOCv+OCq+ODpuOCrQ0KK+ODj+ODnuODgCzjg6jjgrfjg58NCivjg4/jg57jg4As44K/44Kr44OS44OHDQor44Oe44Ko44Kq44KrLOODkuODiOOCtw0KK+ODj+ODiuODnyzjg6Tjgrnjg5Ljg4cNCivjg4/jg4rjgqrjgqss44Ki44Kt44KzDQor44K744K244KkLOODiuOCquOCrQ0KK+ODj+ODqSzjg6rjg6fjgqbjgrgNCivjgrXjg4jjgqYs44K744Kk44K0DQor44OP44OpLOOCouODhOOCtw0KK+ODj+ODqeODgCzjg4rjg4Tjg58NCivjg4/jg6njg4As44Ko44Kk44Kk44OBDQor44OP44Op44OALOOCq+OCuuODkuOCsw0KK+ODj+ODqeODgCzjg57jgrXjgqLjgq0NCivjg4/jg6njg4As44Of44OE44OO44OqDQor44OP44Oq44OeLOODiuOCquOCrQ0KK+ODm+ODs+ODnizjg47jg5bjgqLjgq0NCivjg4/jg6vjg6Tjg54s44K344Ky44OrDQor44OP44K7LOODqOOCpuOCpOODgQ0KK+ODj+OCu+OCrOODryzjgr/jg4TjgqoNCivjg4/jgrvjgqzjg68s44Ok44Oo44KkDQor44OP44K744Ks44OvLOOCseODs+OCv+ODreOCpg0KK+ODj+OCu+OCrOODryzjgqLjgq3jg5LjgrMNCivjg4/jgrfjgrDjg4Es44OS44OI44K3DQor44OP44K344Oi44OILOOCq+ODhOOCsw0KK+ODj+OCt+ODouODiCzjgqvjgrrjg6QNCivjg4/jgrfjgrrjg6Es44Kz44Km44K/44Ot44KmDQor44OP44K344K644OhLOODn+ODrw0KK+ODj+OCt+OCuuODoSzjgrfjg6Xjg7PjgrnjgrENCivjg4/jgr8s44K344Oz44Kk44OB44Ot44KmDQor44OP44K/44OOLOODgeOCq+ODqQ0KK+ODj+OCv+ODjizjgqvjgrrjg4jjg6INCivjg4/jg4jjg6os44OK44Kq44KtDQor44OP44OD44OI44OqLOOCv+OCseOCtw0KK+ODj+ODg+ODiOODqizjg6jjgqbjgqTjg4ENCivjg4/jg4Pjg4jjg6os44Ki44Kt44OS44KzDQor44OP44OD44OI44OqLOODpuOCrQ0KK+ODj+ODg+ODiOODqizjgrXjg4jjgrcNCivjg4/jg4Pjg4jjg6os44Oe44K144KtDQor44OP44OD44OI44OqLOODr+OCv+ODqw0KK+ODj+ODpOOCq+ODryzjgrHjgqTjgrMNCivjg4/jg6Tjgqvjg68s44OK44Kq44OfDQor44OP44Ok44OfLOOCueODn+ODkuODiA0KK+ODj+ODpOOCtyzjg5Ljg4fjgqLjgq0NCivjg4/jg6Tjgrcs44Om44Of44KzDQor44OP44Ok44K3LOODnuOCteOCv+OCqw0KK+ODj+ODpOOCtyzjg57jg6bjg58NCivjg4/jg6Tjgrcs44Ok44K544OS44OtDQor44K144K144K/44OLLOOCouOCreODqQ0KK+ODj+ODpOOCtyzjg57jgrXjg47jg6oNCivjg4/jgrbjg54s44K744Kk44Kk44OBDQor44OY44Oz44OfLOOCq+ODiuOCsw0KK+ODkuODkyzjg4jjg6Ljg58NCivjg5Ljg4Djgqss44OI44Km44KzDQor44OS44OA44KrLOODpuOCpuOCsw0KK+ODkuODgOOCqyzjgr/jg63jgqYNCivjg5Ljgqjjg4As44Of44OB44Kr44K6DQor44OS44Ks44KtLOOCt+ODp+OCpuOCuA0KK+ODkuOCrOOCtyzjg6jjgrfjg5LjgrUNCivjg5LjgqTjg4njg6Es44OS44Ot44Of44OBDQor44OS44K444Kv44OtLOOCu+OCpOOCpOODgQ0KK+ODleOCr+OCpCzjgqTjgrXjgqoNCivjg5Ljg54s44Oo44K344KtDQor44OS44Kq44KtLOODiOOCpuODoeOCpA0KK+ODkuODqeOCpCzjg57jg6oNCivjg5/jgq0s44Oe44K144Om44KtDQor44OS44Op44OOLOODleOCreODqA0KK+ODkuODqeODjizjgqvjgrrjg5Ljg60NCivjg5Ljg6njgr8s44K344Ot44KmDQor44OS44Op44OE44KrLOODleODn+OCq+OCug0KK+ODm+ODgCzjg5Ljg63jgq0NCivjg5Ljg6njg6Tjg54s44OK44Kq44KzDQor44OS44Ot44OZLOOCreOCr+ODnw0KK+ODkuODreOCpCzjg57jgrXjg5Ljg60NCivjg5Ljg63jgrXjg68s44Oe44K144OS44OtDQor44OS44Ot44K144OvLOODiuOCquOCsw0KK+ODkuODreOCueOCqCzjgrjjg6Xjg7PjgrMNCivjg5Ljg63jgr8s44Kq44K144OgDQor44OP44Ok44OeLOODpuOCpuOCsw0KK+ODkuODreODr+OCv+ODqizjgrXjg6bjg6oNCivjg5LjgrXjg6Ljg4gs44Of44Kr44KzDQor44OS44K144OOLOODqOOCt+OCouOCrQ0KK+ODkuOCteODpuOCrSzjg6bjgqvjg6oNCivjg5Ljgrfjg4As44OS44Ot44K3DQor44OS44K344K/44OLLOODpOOCueOCtw0KK+ODr+ODgCzjg5Xjg5/jgqgNCivjg5Ljg6Tjg54s44OO44OW44OS44KzDQor44Ki44Oq44Kv44OpLOODpuOCv+OCqw0KK+ODm+ODs+ODgCzjg5/jg47jg6sNCivjg5vjg7Pjg4As44Kx44Kk44K544KxDQor44Ob44Oz44K044KmLOODnuOCteODiA0KK+ODm+ODs+ODnizjg6bjgqbjgqTjg4ENCivjg5vjg7Pjg54s44Ki44Kt44OO44OWDQor44Oe44OE44Oi44OILOOCseODs+OCvw0KK+ODm+ODqizjg57jg4rjg5YNCivjg5vjg6os44Ki44Kt44OIDQor44Ob44Oq44OZLOODiOOCt+ODpuOCrQ0KK+ODm+ODquOCqCzjgqLjgq3jg47jg6oNCivjg5vjg6rjgqgs44Oe44K144OS44KzDQor44Ob44Oq44KoLOOCv+ODgOOCtw0KK+ODm+ODquOCpuODgSzjg6jjgrfjg5Xjg58NCivjg5vjgrfjg5As44OI44Kq44OrDQor44Ob44K344Kr44OvLOODkuODh+OCqg0KK+OCq+ODiOOCpizjg4rjgqrjgq0NCivjg5vjgrfjg4os44Kz44Km44Kk44OBDQor44Ob44OqLOODjuODquODpuOCrQ0KK+ODm+OCt+ODjizjgr/jgqvjgrcNCivjg5vjgr3jg4As44OO44OW44KqDQor44Ob44OD44K/LOOCteOCquODqg0KK+ODm+ODgeODiSzjgr/jgqvjg6QNCivjgqTjg5bjgqss44Oo44K344OG44OrDQor44Kk44OB44Kr44OvLOODkuODiOOCtw0KK+OCpOODgeOCq+ODryzjg57jg6rjgrMNCivjgqTjg4Hjg57jgrks44OE44OI44OgDQor44Kk44OB44OO44K7LOOCq+ODhOODnw0KK+OCpOODhyzjg57jgrXjg5LjgrMNCivjgqTjgqzjg6njgrcs44Oe44K144OIDQor44Kk44Ks44K/LOOCqOOCpOOCpOODgeODreOCpg0KK+OCpOOCpCzjg6bjg6rjgrMNCivjgqTjgqTjg4As44Oe44K144Oo44K3DQor44Kk44Kk44OALOODnuOCteODpuOCrQ0KK+OCpOOCpOODgCzjgrfjg7PjgrgNCivjgqTjgqTjg44s44Kk44OB44Ot44KmDQor44Kk44Kk44Oo44OqLOODn+ODgeODj+ODqw0KK+OCpOOCpOOCuuOCqyzjg57jgrPjg4gNCivjgqTjgqvjg6vjgq4s44Kr44OE44OkDQor44Kk44Kr44OvLOOCseOCpOOCueOCsQ0KK+OCpOOCseODgSzjg57jg58NCivjgqTjgrHjg4As44Kz44Km44Kk44OB44Ot44KmDQor44Kk44Kx44OALOODouODiOODj+ODqw0KK+OCpOOCseODgCzjgr/jgqvjgrMNCivjgqTjgrHjg4As44K/44Kr44Om44KtDQor44Kk44Kx44Ks44OfLOODiOODouODkuODrQ0KK+OCpOOCseOCuOODqizjgqvjgrrjg6QNCivjgqTjgrHjgr/jgq0s44Kv44OL44Kq44OfDQor44Kk44Kv44Oi44OILOOCt+ODsw0KK+OCpOODnuOCpCzjgr/jgrHjgrcNCivjgqTjg57jgqQs44Os44Kk44KzDQor44Ob44K944KkLOOCseODs+OCv+ODreOCpg0KK+OCpOODnuOCpCzjgrXjg5bjg63jgqYNCivjgqTjg57jg4vjgrcs44K/44Kx44K3DQor44Kk44OK44OALOODj+OCuOODoQ0KK+OCpOODiuOCrOOCrSzjg57jg4rjg5YNCivjgqTjg4rjgrIs44Kx44Oz44Kk44OBDQor44OP44K244OeLOODkuOCteODouODiA0KK+OCpOODjizjgrjjg6Xjg7MNCivjgqTjg47jg57jgr8s44Kx44Kk44K/44Ot44KmDQor44Kk44OO44Km44KoLOODquOCqA0KK+ODpOOCueOCq+ODryzjgr/jgqvjg5Ljg4gNCivjg4/jg6ss44OI44Kq44OrDQor44Kk44OO44Km44KoLOODhuODq+OCqg0KK+OCpOODjuOCpuOCqCzjg4Tjg4jjg6ANCivjgqTjg47jgqbjgqgs44OV44Of44OO44OqDQor44Kk44OO44Km44KoLOODkuODreODkuOCtQ0KK+OCpOOCquOCrSzjg57jgrXjg5/jg4ENCivjgqTjg6rjgqgs44OO44OW44Om44KtDQor44Kk44K144KrLOODiOOCquODqw0KK+OCpOOCteOCqyzjg6/jgr/jg6sNCivjgqrjgqrjg6Ljg6os44Kx44Oz44Kk44OB44OtDQor44Kk44K344OQ44K3LOODnuODiuODlg0KK+OCpOOCt+ODgCzjgrHjgqTjgqTjg4ENCivjgqTjgrfjg4As44Km44Op44OpDQor44Kk44K344OP44OpLOODqOOCt+ODiA0KK+OCpOOCt+ODj+ODqSzjg4/jg6vjgqoNCivjg5Ljg6njg4gs44OS44OH44KqDQor44Kk44K344KkLOOCseOCpOOCuOODreOCpg0KK+OCpOOCt+OCpCzjg5/jgq3jgqoNCivjgqTjgrfjgqQs44Ki44OE44K3DQor44Kk44K344KkLOODj+ODq+OCqg0KK+OCpOOCt+OCpCzjgrHjgqTjgrgNCivjgqTjgrfjgqQs44Oe44K144KzDQor44OP44ON44Kk44K3LOOCt+ODs+OCueOCsQ0KK+OCpOOCt+OCpCzjg6TjgrnjgrcNCivjgqTjgrfjgqvjg68s44Oo44Km44KzDQor44Kk44K344Kr44OvLOODqOOCpuOCueOCsQ0KK+OCpOOCt+OCq+ODryzjg6jjgrfjg5LjgrMNCivjgqTjgrfjgqvjg68s44Om44KrDQor44Kk44K344Kr44OvLOODjuODquOCsw0KK+OCpOOCt+OCquOCqyzjg6jjgrfjg6bjgq0NCivjgqTjgrfjg4Tjgqss44OI44K344Om44KtDQor44Kk44K344Ov44K/LOOCouODquODkuODrQ0KK+OCpOOCt+OCtuOCqyzjgrPjgqbjgrgNCivjgqTjgrfjgrbjgqss44Ko44Kk44Kk44OBDQor44Kk44K344K244KtLOOCs+OCpuOCuA0KK+OCpOOCt+OCuuOCrSzjg4rjgqrjg4gNCivjgqTjgr0s44K344Ky44OS44OIDQor44Kk44K944Ks44KkLOODpuOCpuOCsw0KK+OCpOOCv+ODkCzjg6bjgqbjgrgNCivjgqTjg4jjgqYs44Kk44OO44OqDQor44Kk44OI44KmLOODnuOCteODkuODrQ0KK+OCpOODiOOCpizjg57jgrXjg5Ljg60NCivjgqTjg4jjgqYs44OQ44OzDQor44Kk44OI44KmLOOCteODiOOCtw0KK+OCpOODiOOCpizjgqLjg4TjgrcNCivjg5Ljg4Djgqss44OS44OH44OE44KwDQor44Kk44OI44KmLOODnuOCteODkuODrQ0KK+OCpOODiOOCpizjg6bjgq0NCivjg4vjgrcs44K344Oz44Kk44OBDQor44Kk44Ov44OA44OsLOODqOOCt+ODjuODqg0KK+OCpOODr+ODj+OCtyzjg6bjgqbjgrMNCivjgqTjg6/jgq0s44Of44K644ObDQor44Kk44Ov44Oi44OILOODqOOCt+ODjuODqg0KK+OCpOODr+OCteOCrSzjg47jg5bjgqvjgroNCivjg5Ljg6njg4Tjgqss44OS44Ot44K3DQor44Kk44Ov44K144KtLOODkuODreODpuOCrQ0KK+OCpOODr+OCteOCrSzjg57jgrXjg6bjgq0NCivjgqTjg6/jgrXjgq0s44OS44Ot44Om44KtDQor44K444Oz44Kw44KmLOOCteODiOOCsw0KK+OCpOODr+OCt+OCsizjg57jgrPjg4gNCivjgqTjg6/jgr8s44OS44Ot44K3DQor44K444Oz44Kw44KmLOODqOOCt+ODjuODqg0KK+OCtCzjg6TjgrnjgqvjgroNCivjgqvjgqws44Kr44OE44OkDQor44Kr44Ks44OWLOOCt+ODs+OCuOODreOCpg0KK+OCq+OCruODpOODnizjg5Ljg4fjgqoNCivjgqvjgqQs44Om44Km44K+44KmDQor44Kr44Kk44OALOODjuODquODpuOCrQ0KK+OCq+OCpOODgCzjg47jg6rjg57jgrUNCivjgqvjg57jg4Es44OS44Ot44Om44KtDQor44Kr44Oe44OALOODnuOCteOCsw0KK+OCq+ODnuODm+ODqizjg4jjg6Ljg5LjgrMNCivjgqvjg57jgr8s44Kz44Km44Kk44OB44Ot44KmDQor44Kr44Oh44OALOODnuODpuODnw0KK+OCq+ODoeOCpCzjg5Xjg5/jg5LjgrMNCivjgqvjg5/jg44s44K/44Kx44K3DQor44Kr44Of44OOLOODkuODiOOCtw0KK+OCq+ODn+ODiOODjizjg6rjg6XjgqbjgrgNCivjgqvjg5/jg6Qs44OO44OW44Om44KtDQor44Kr44Of44OkLOODgeOCouOCrQ0KK+OCq+ODn+ODpOODnizjgrHjg7Pjgq4NCivjgqvjg6Ljg7Ms44OS44OH44KtDQor44Kr44Oi44OzLOOCqOOCpOOCv+ODreOCpg0KK+OCq+ODsyzjg4jjg6Ljg47jg6oNCivjgqvjg4rjgqQs44OO44Oq44KzDQor44Kr44OK44KkLOOCueODn+OCsw0KK+OCq+ODiuOCuCzjg57jgrXjg6bjgq0NCivjgqvjg4rjgqrjgqss44K/44Of44KqDQor44Kr44OK44K244OvLOOCq+ODhOODkuOCtQ0KK+OCq+ODs+ODmSzjgrXjgqrjg6oNCivjgqvjg7Pjg4As44Ok44K544K/44KrDQor44Kr44Oz44OALOODgeOCqA0KK+OCq+ODjeOCrSzjgqjjgqTjgrnjgrENCivjgqvjg43jgq3jg6gs44OS44Ot44OIDQor44Kr44ON44KzLOODkuODreODpuOCrQ0KK+OCq+ODjeOCt+OCvyzjgqvjgrrjg5Ljg60NCivjgqvjg43jg6Tjgrks44OK44Kq44OkDQor44Kr44OO44KmLOOCt+ODs+OCuA0KK+OCq+ODjuOCpizjgr/jgrHjgrcNCivjgqvjg7PjgrrjgqQs44K/44Of44Om44KtDQor44Kr44K144OP44OpLOODiuODiuOCsw0KK+OCq+OCteODj+ODqSzjg5Ljg4fjg5LjgrUNCivjgqvjgrXjgqQs44Ko44Kk44Kk44OBDQor44Kr44K144Oe44OELOOCr+ODi+ODiOOCtw0KK+OCq+OCteODoizjgrHjg7PjgqTjg4Hjg60NCivjgr/jg57jgr/jg4ss44K344OeDQor44Kr44K344Ov44KuLOODpuODquODnw0KK+OCq+OCt+ODr+OCsOODqSzjg5Ljg4fjg6bjgq0NCivjgqvjgr/jg4As44K144OB44KzDQor44Kr44K/44Kq44KrLOODiuOCquOCrQ0KK+ODm+OCtyzjg5Ljg63jg4gNCivjgqvjgr/jgqrjgqss44K344Ol44Km44K4DQor44Kr44OI44KmLOODkuODreOCrQ0KK+OCq+ODiOOCpizjg6Tjgrnjg6bjgq0NCivjgqvjg4jjgqYs44Oi44Oq44OS44OtDQor44Kr44OI44KmLOOCt+ODs+OCpOODgQ0KK+OCq+ODiOOCpizjg6rjg6fjgqbjgr8NCivjgqvjg4jjgqYs44Kx44Kk44KzDQor44Kr44OI44KmLOODhuODq+ODkuOCsw0KK+OCq+ODiOOCpizjgrjjg6Xjg7PjgrMNCivjgqvjg4jjgqYs44Of44OB44OkDQor44Kr44OI44OOLOOCreODqOOCtw0KK+OCq+ODhOODoOODqSzjg5Ljg4fjgq0NCivjgqvjg6/jg5Djgr8s44Kk44OB44Ot44KmDQor44Kr44Ov44K044KoLOOCouOCreODqQ0KK+OCq+ODr+OCsOODgSzjgrPjgqbjgrgNCivjgqvjg6/jg4/jg6ks44Oe44K544OfDQor44Kr44K344Og44OpLOODpuOCpuOCsw0KK+OCq+ODr+OCpCzjg4rjgqrjg58NCivjgqvjg6/jgqQs44OS44Ot44Om44KtDQor44Kr44Ov44Oi44OILOODnuODiuODlg0KK+OCq+ODr+ODoOODqSzjgrXjg4jjg6sNCivjgqvjg6/jg6Djg6ks44K344Ol44Km44K4DQor44Kr44Ov44OKLOODpuOCreODkuODiA0KK+OCq+ODr+ODiizjg57jgrXjgqvjgroNCivjgqvjg6/jg4rjg58s44OS44OH44OS44KzDQor44Kr44Ov44OOLOOCt+ODs+OCuA0KK+OCq+ODr+OCuyzjgrjjg6Xjg7PjgqTjg4Hjg60NCivjg4/jg6njg4As44K344Ol44Km44Kz44KmDQor44Kr44Ov44K344OeLOODjuODluOCsw0KK+OCq+OCtuODnyzjg4rjgqrjg4gNCivjgqvjgrrjgrXjg68s44Ok44K544OS44OtDQor44Kt44OQ44Ok44K3LOODpuOCpuOCpOODgQ0KK+OCreODgCzjgr/jgrHjgrcNCivjgq3jg4/jg6ks44Oo44K344OS44KzDQor44Kt44Kv44OBLOODkuODreOCtw0KK+OCreOCr+ODgSzjgqTjg4Hjg63jgqYNCivjgrXjgqTjg4jjgqYs44Kx44Oz44K4DQor44Kt44Kv44KkLOODhOODqOOCtw0KK+OCreODouODiCzjg6jjgqbjgrMNCivjgq3jg6Djg6ks44OO44OW44Om44KtDQor44Kt44Og44OpLOODhOODqOOCtw0KK+OCreODoOODqSzjg4jjgrfjg4TjgrANCivjgq3jg6Djg6ks44K/44Kr44OS44K1DQor44Kt44Og44OpLOODj+ODq+ODnw0KK+OCreODjizjgqvjgrrjg57jgrUNCivjgq3jg6rjg44s44Kr44K644OkDQor44Kt44K144OM44KtLOODnuOCs+ODiA0KK+OCreOCtyzjg57jgrXjgq0NCivjgq3jgrcs44OK44Kq44KtDQor44Kt44K344OALOOCteODiOOCtw0KK+OCreOCt+OCq+ODryzjgrfjg7MNCivjg5Ljg6njg4Ys44K344Oz44K4DQor44Kt44K344OK44OfLOODpOOCueODnuOCtQ0KK+OCreOCvSzjg6jjgrfjgqoNCivjgq3jgr8s44OS44OH44Ki44KtDQor44Kt44K/44Ks44OvLOODiuOCquODnw0KK+OCreOCv+OCuOODnizjg5Ljg63jg6bjgq0NCivjgq3jgr/jgrjjg54s44K744Kk44KrDQor44Kt44K/44Og44OpLOODjuODquOCsw0KK+OCreOCv+ODjizjg4jjgrfjg6bjgq0NCivjgq3jgr/jgrbjgq0s44K/44OA44K3DQor44Kt44K/44K244OvLOOCv+ODhOOCtw0KK+OCreODqOODj+ODqSzjg4Tjg4jjg6ANCivjg4/jgrfjg6Ljg4gs44Kq44K144OgDQor44OO44K244KtLOODleODn+OCreODqA0KK+OCs+ODkOODpOOCtyzjg5Xjg5/jgqoNCivjgrPjg5Djg6Tjgrcs44Oe44K144Om44KtDQor44Kz44OQ44Ok44K3LOODiuOCquOCrQ0KK+OCs+ODkOODpOOCtyzjgr/jgqvjg4/jg6sNCivjgrPjg5Djg6Tjgrcs44Kx44Oz44K4DQor44Kz44OQ44Ok44K3LOOCouODhOOCtw0KK+OCs+ODkOODpOOCtyzjgqjjgqTjgrgNCivjgrPjg5Djg6Tjgrcs44K144OB44KzDQor44Kz44OQ44Ok44K3LOOCt+ODp+OCpuOCuA0KK+OCs+ODkOODpOOCtyzjg4jjg6Ljg5Ljg60NCivjgrPjgqbjg4Es44Om44KtDQor44Kz44OA44OeLOODpOOCueODkuODrQ0KK+OCs+OCrCzjgqLjgq3jg5Ljg60NCivjg4jjgqbjg4njgqYs44K344Ol44Km44Kk44OBDQor44Kz44OP44OpLOODiuOCquOCueODnw0KK+OCs+ODkizjg4/jg6vjg58NCivjgrPjg7Pjg44s44OS44Ot44OV44OfDQor44Kz44Kk44KxLOODiOOCquODqw0KK+OCs+OCpOODryzjg4jjg6Ljg6bjgq0NCivjgrPjgqTjgrrjg58s44K344Ol44Km44K0DQor44Kz44K444KrLOODn+OCqOOCsw0KK+OCs+OCuOODnizjg4rjgqzjgqoNCivjgrPjgrjjg54s44Oq44OB44KzDQor44Kz44K444OeLOOCq+OCuuODkuOCsw0KK+OCs+OCuOODnizjgrXjg4jjgrcNCivjgrPjg57jg4Tjg5Djg6ks44Oq44Ol44Km44K/DQor44Kz44Of44OkLOOCreODqOOCtw0KK+OCs+ODouODgCzjgqLjgq3jg6jjgrcNCivjgrPjg6Djg60s44OI44K344Om44KtDQor44Kz44Oz44OJLOODiuODhOODnw0KK+OCs+ODs+ODiSzjgrHjg7PjgrgNCivjgrPjg7Pjg4ks44Kx44Oz44Kk44OBDQor44Kz44K144KxLOOCs+OCpuOCpOODgQ0KK+OCs+OCuyzjgr/jgqvjgrcNCivjgrPjgrnjgq4s44K/44Kx44K3DQor44Kz44K644KrLOODpOOCueODjuODqg0KK+OCr+ODnCzjg4/jg6vjg58NCivjgq/jg5ws44K/44Kx44OS44OtDQor44Kv44OcLOODiuOCquOCrQ0KK+OCr+ODnCzjgrfjgrLjgqoNCivjgq/jg5ws44OS44Ot44K3DQor44Kv44OJ44KmLOODnuODqg0KK+OCr+ODieOCpizjgrvjgqTjgqTjg4ENCivjgq/jg4njgqYs44Oe44K144KtDQor44Kv44Oe44Kr44OvLOOCseODs+OCuA0KK+OCr+ODnuOCr+ODqSzjgrHjg7PjgqTjg4ENCivjgq/jg57jgrfjg60s44K744Kk44Kk44OBDQor44Kv44Oe44K/LOOCt+ODreOCpg0KK+OCr+ODi+ODouODiCzjgrjjg6Xjg7PjgrgNCivjgq/jg6njg6Ljg4Es44K344Ol44Km44Kk44OBDQor44Kv44Op44K344OeLOODkuODreOCtw0KK+OCr+ODquODj+ODqSzjgqvjgrrjg5Ljg60NCivjg5Ljg6njgqQs44Kz44Km44K4DQor44Kv44Oq44OP44OpLOODqOOCt+ODpuOCrQ0KK+OCr+ODquODj+ODqSzjgqvjg4Tjg6gNCivjgq/jg6rjg4/jg6ks44Om44Km44K4DQor44Kv44Oq44OP44OpLOODhuODhOOCqg0KK+OCr+ODquODj+OCtyzjg5/jg4Tjg47jg5YNCivjgq/jg6rjgrks44Oo44Km44KzDQor44Kv44Ot44OALOOCouODhOOCtw0KK+OCr+ODreODgCzjg5Ljg63jg6bjgq0NCivjgq/jg63jgq0s44K/44Kr44OS44OtDQor44Kv44Ot44KtLOODiOODouOCsw0KK+OCr+ODreOCrSzjgqjjgqTjgrgNCivjgq/jg63jg6Es44Oe44Kz44OIDQor44Kv44Ot44K144OvLOOCqOOCpOOCuOODreOCpg0KK+OCr+ODq+ODn+ODpCzjgrPjgqbjgq0NCivjgq/jgrXjg6Tjg4rjgq4s44Oe44K144OI44K3DQor44Kv44K544OO44K7LOODiuOCquOCquODnw0KK+OCr+ODr+ODj+ODqSzjgrfjg7PjgrgNCivjg57jg4Hjg4As44Oo44Km44KzDQor44Oe44OA44Op44OhLOODiOOCt+OCv+OCqw0KK+ODnuOCqOODgCzjgrXjg4jjgrcNCivjg57jgqjjg4As44K144OI44OrDQor44Oe44Ko44OALOOCt+ODs+OCpOODgeODreOCpg0KK+ODnuOCqOOCrOODryzjg5Xjg5/jg5Ljg4cNCivjg57jgqjjg4/jg6ks44Ku44Oz44K4DQor44Oe44Ko44Kt44K/LOOCq+OCuuOCsw0KK+ODnuOCreODjizjgr/jgqvjg5Ljg60NCivjgrfjg5bjgr/jg4ss44Kz44Km44K4DQor44Oe44OK44OZLOODqOOCt+ODjuODqg0KK+ODnuODq+ODpOODnizjgqLjgq3jg6kNCivjg57jg6vjg6Tjg54s44OS44Ot44Om44KtDQor44Oe44Or44Ok44OeLOOCseOCpOOCpOODgQ0KK+ODnuOCteOCquOCqyzjgr/jgqvjgrcNCivjg57jgrnjg5bjg4Es44Oo44K344OO44OqDQor44Oe44K544OALOODpuOCpuOCsw0KK+ODnuOCueODgCzjg6jjgrfjg4/jg6sNCivjg57jgrnjg4As44K/44Kr44OI44K3DQor44Oe44K544OALOOCv+OCr+ODpA0KK+ODnuOCueODgCzjg5Ljg63jgqvjgroNCivjg57jgrnjg4As44OS44Ot44KtDQor44Oe44OE44OQLOODjuOCvuODnw0KK+ODj+ODqSzjgrHjg7PjgrgNCivjg57jg4Tjg4As44Kx44Oz44K4DQor44Oe44OE44OALOODgOOCpOOCueOCsQ0KK+ODnuODhOODleOCuCzjgqLjgq3jgqoNCivjg57jg4Tjg5Xjgrgs44Kr44K644OK44OqDQor44K/44OB44Kv44KkLOODn+OCrQ0KK+ODnuODhOOCpCzjgrfjg7PjgrgNCivjg57jg4Tjgqvjg68s44K/44Kr44OS44OtDQor44Oe44OE44Oe44OrLOOCt+ODpeOCpuOCteOCrw0KK+ODnuODhOODouODiCzjgqLjgq3jgqoNCivjg57jg4Tjg6Ljg4gs44Kr44K644OO44OqDQor44Oe44OE44Oi44OILOOCouOCreODkuOCsw0KK+ODnuODhOODouODiCzjg47jg6rjgrMNCivjg57jg4Tjg6Ljg4gs44OS44Ot44K3DQor44Oe44OE44Oi44OILOODhOODiOODoA0KK+OCt+OCquODkOODqSzjgrfjg7PjgqTjg4ENCivjg57jg4Tjg6Djg6ks44K344Ol44Oz44Kk44OBDQor44Oe44OE44Og44OpLOODqOOCt+ODjuODqg0KK+ODnuODhOODiuOCrCzjg6bjgq3jgrMNCivjg57jg4Tjg4rjgqws44Oe44K144OS44OtDQor44Oe44OE44OK44OfLOODqOOCt+OCsw0KK+ODnuODhOOCqizjg4jjgrfjg6QNCivjg57jg4Tjgqos44OI44Oi44OS44OtDQor44Oe44OE44Kq44KrLOOCqOOCpOOCsw0KK+ODj+ODpOOCt+ODgCzjgqvjgrrjg5Ljg60NCivjg57jg4Tjgqrjgqss44K744Kk44Kk44OBDQor44Ki44K844Ok44OK44KuLOOCu+OCpOOCuA0KK+ODnuODhOOCquOCqyzjgrfjg7PjgrQNCivjg57jg4Tjgqrjgqss44OS44Ot44Ki44KtDQor44Oe44OE44K7LOOCv+OCq+ODpuOCrQ0KK+ODnuODhOOCt+ODnizjgrHjg7PjgrgNCivjg57jg4Tjgrfjgr8s44Kz44Km44K4DQor44Oe44OE44K/44OLLOOCt+ODs+OCuA0KK+ODnuODhOODr+OCqyzjgrXjg4jjgrcNCivjg57jg4Tjg6Tjg54s44Ki44Kt44OpDQor44Oe44OE44K244KtLOOCreOCr+OCqg0KK+ODnuODhOODiuOCrCzjg57jgrPjg4gNCivjg5vjg7Pjg4os44Kt44Ov44OgDQor44Oh44Kr44K/LOOCseODs+OCuA0KK+ODn+OCq+OCuOODqizjgq3jg6fjgqbjgrMNCivjg5/jgqvjg58s44K344Oz44K544KxDQor44Of44Kr44OfLOODkuODh+OCqg0KK+ODn+OCrSzjg57jgrXjg6bjgq0NCivjg5/jg5/jgr8s44Of44OB44OtDQor44Of44OK44Kv44OBLOODleODn+ODj+ODqw0KK+ODn+ODiuODnyzjgrXjg4jjgrcNCivjg5/jg4rjg58s44OI44Oi44Om44KtDQor44Of44OK44OfLOOCouOCreODqQ0KK+ODn+ODiuODiCzjgrfjg6fjgqbjgrgNCivjg5/jg40s44Oo44K344K/44KrDQor44Of44ONLOOCouODhOOCtw0KK+ODn+OCt+ODnizjgrPjgqbjgrgNCivjg5/jgrfjg54s44Kq44K144OgDQor44Of44K944OOLOODkuODreODkuOCtQ0KK+ODn+OCv+ODoOODqSzjg57jgrXjg4jjgrcNCivjg5/jgr/jg7Pjg4As44Kx44Oz44Kk44OBDQor44Of44OE44OcLOODqOOCt+OCq+OCug0KK+ODn+ODhOODnOOCtyzjg4jjgrfjg5Ljg60NCivjg4/jgrnjg6Djg6ks44OI44K344OV44OfDQor44Of44OE44OP44K3LOODkuODreODn+ODhA0KK+OCt+ODiuODgCzjg5Ljg63jg6bjgq0NCivjg5/jg4Tjg54s44Kr44K644OS44OIDQor44Of44Ok44OP44OpLOOCuOODhOODpA0KK+ODn+ODpOODj+ODqSzjg5Ljg4fjg4/jg6sNCivjg5/jg6TjgqQs44Of44Ko44KzDQor44Of44Ok44K444OeLOODpuOCq+OCsw0KK+ODn+ODpOODouODiCzjgqvjgrrjg4rjg6oNCivjg5/jg6Tjg6Ljg4gs44OS44OH44OO44OqDQor44Of44Ok44K344K/LOODkuODreODpuOCrQ0KK+ODn+ODpOOCvyzjg5Ljg63jg6bjgq0NCivjg5/jg6Tjgr8s44Kr44Kq44OrDQor44Of44Ok44Km44OBLOOCseODs+OCuA0KK+ODn+ODpOOCpuODgSzjgqrjgrXjg6ANCivjg5/jg6Tjgqbjg6ks44K/44Kx44OS44K1DQor44Of44Ok44K244KtLOOCv+OCseOCtw0KK+ODj+OCt+OCsOODgSzjgrfjgrLjgq0NCivjg5/jg6Tjgrbjg68s44Kz44Km44K4DQor44Of44Ok44K244OvLOOCouOCreOCqg0KK+ODn+ODpOOCuizjg6Tjgrnjg5Ljg4gNCivjg5/jgr7jgqvjg58s44K444Ol44Oz44Kk44OBDQor44Of44K644OOLOODhuODhOODkuOCsw0KK+ODn+OCuuODjizjg4jjgrfjg6bjgq0NCivjg5/jgrrjgr/jg4ss44OO44OW44Om44KtDQor44Oi44OB44OALOOCouOCreODkuODrQ0KK+ODouODgeOCuuOCrSzjgqLjgq3jgqoNCivjg6Ljg4Hjgrrjgq0s44K444Ot44KmDQor44Of44Oo44K3LOOCv+OCq+OCtw0KK+ODouODqizjg57jgrXjgq0NCivjg6Ljg6os44Oe44K144K3DQor44Oi44OqLOODgOOCpOOCpOODgQ0KK+ODouODqizjg57jgrXjg6bjgq0NCivjg6Ljg6os44OG44OE44OkDQor44Oi44OqLOODkuODreOCq+OCug0KK+ODouODqizjg4Tjg43jgqLjgq0NCivjg6Ljg6os44Kk44K644OfDQor44Oi44OqLOODkuODreOCq+OCug0KK+ODouODquOCsOODgSzjg5Ljg63jgq0NCivjg6Ljg6rjgqvjg68s44Kz44Km44K4DQor44Oi44Oq44OK44KsLOODnuOCteOCtw0KK+ODouODquOCteOCrSzjgqLjgrHjg58NCivjg6Ljg6rjgr8s44Oo44Km44Kk44OBDQor44Oi44Oq44K/LOOCqOOCpOOCuA0KK+ODouODquODpCzjg6Djg4TjgqoNCivjg6Ljg6rjg6Tjg54s44OS44OH44KqDQor44Oi44OG44KuLOODn+ODhOODkuODrQ0KK+ODouODiOOCrSzjgq/jg4vjg5Ljg60NCivjg4/jgq7jg6/jg6ks44OO44OW44Oo44K3DQor44Og44Kr44Kk44OALOOCt+OCsw0KK+ODoOODjeODkuODrSzjg5Ljg4fjg6bjgq0NCivjg6Djg43jgqvjgr8s44Kr44K644Oo44K3DQor44Og44Op44Kr44OfLOODhOODqOOCtw0KK+ODoOODqeOCq+ODnyzjg6Tjgrnjg5Ljg60NCivjg6Djg6njgqvjg58s44Ok44K544KqDQor44Og44Op44Kz44K3LOODkuODreOCsw0KK+ODoOODqeODnuODhCzjg57jgrXjg4gNCivjg6Djg6njg4zjgq0s44Kx44Kk44K4DQor44Og44Op44K/LOODpuOCreODouODiA0KK+ODoOODqeOCvyzjg57jgrXjgq0NCivjg6Djg6njgr8s44K744Kk44K4DQor44Og44Op44Ok44OeLOODqOOCt+ODj+ODqw0KK+ODpOODnuOCt+OCvyzjgqLjgq3jg5Ljg60NCivjg6Djg63jgr8s44OS44Ot44Kr44K6DQor44Of44On44Km44K444OzLOODn+ODgeOCqg0KK+ODiuOCrOOCpCzjg47jg6rjgrMNCivjg4rjgqzjg4zjg54s44Om44Kt44KqDQor44OK44Ks44KqLOOCqOODqg0KK+ODiuOCrOOCquOCqyzjg5/jg5sNCivjg4rjgqzjgrXjg68s44Kr44Kq44OrDQor44OK44Ks44K344OeLOOCv+OCq+OCtw0KK+ODiuOCrOOCt+ODnizjg6jjgrfjgqvjgroNCivjg4rjgqzjgr8s44Oo44K344Ok44K5DQor44OK44Ks44K/LOODgeOCqOOCsw0KK+ODj+OCu+OCrOODryzjg5Ljg63jgqLjgq0NCivjgqTjgqzjg6njgrcs44Kr44K644OS44OtDQor44OK44Ks44Ok44OeLOOCseODs+OCuA0KK+ODiuOCrOODqOOCtyzjg57jgrXjgqvjg4QNCivjg4rjgqTjg4jjgqYs44Oe44K144KtDQor44OK44Kr44OQ44Ok44K3LOODnuOCteODjuODqg0KK+ODiuOCq+OCrOODryzjgrfjg7PjgqTjg4ENCivjg4rjgqvjgrTjg6Es44K144OI44K3DQor44OK44Kr44K344OeLOODiOOCt+OCouOCrQ0KK+ODiuOCq+OCuOODnizjg6Tjgrnjg57jgrUNCivjg4rjgqvjgrjjg54s44Om44Km44KzDQor44OK44Kr44K444OeLOODhuODq+ODnw0KK+ODiuOCq+OCuOODnizjgq/jg6njg4gNCivjg4rjgqvjgrjjg54s44Om44Km44K4DQor44OK44Kr44Kv44KtLOOCt+ODs+OCpOODgeODreOCpg0KK+ODiuOCq+ODnuODqyzjg6rjgqsNCivjg4rjgqvjg5/jg4Es44Of44KrDQor44OK44Kr44Oi44OILOODpuOCreODkuODrQ0KK+ODiuOCq+ODouODiCzjg5Ljg63jgqvjgroNCivjg4rjgqvjg6Ljg4gs44OS44Ot44Om44KtDQor44Ov44K/44OK44OZLOODkuODreODleODnw0KK+ODiuOCq+ODoOODqSzjg57jgrXjg4rjg6oNCivjg4rjgqvjg6Djg6ks44K344Oz44Kk44OB44Ot44KmDQor44OK44Kr44Og44OpLOOCu+OCpOOCuA0KK+ODiuOCq+ODoOODqSzjgqvjgrrjg47jg6oNCivjg4rjgqvjg6Djg6ks44Om44Km44K4DQor44OK44Kr44Og44OpLOODhuODq+ODpuOCrQ0KK+ODj+OCruODr+ODqSzjgrXjg4jjgrMNCivjg4rjgqvjg6Djg6ks44Oe44Kt44KzDQor44OK44Kr44Og44OpLOODkuODh+ODpuOCrQ0KK+ODiuOCq+ODoOODqSzjg4bjg4Tjg6QNCivjg4rjgqvjg6Djg6ks44Kx44Oz44K/DQor44OK44Kr44OOLOODpOOCueOCtw0KK+ODiuOCq+OCqizjg6bjgqbjgrMNCivjg4rjgqvjgqos44OS44Ot44Om44KtDQor44OK44Kr44Kq44KrLOODiOODouODpuOCrQ0KK+ODiuOCq+OCt+ODnizjgrXjg4jjgrcNCivjg4vjgrfjgrjjg54s44K/44Kr44K3DQor44OK44Kr44OkLOODr+OCv+ODqw0KK+ODiuOCq+ODpOODnizjg5Ljg63jgrcNCivjg4rjgqvjgrbjg4gs44Kr44OE44Ki44KtDQor44OK44Oe44K/44OhLOODnuODouODqw0KK+ODiuODoeODqSzjg6Ljg6rjg5Ljg4gNCivjg4rjg4rjg58s44K/44OA44OI44K3DQor44OK44Oz44OQLOOCv+OCq+OCqg0KK+ODiuODsyzjgrHjgqTjgrnjgrENCivjg4rjg7Pjg50s44Ki44Kt44OpDQor44OK44Op44OWLOODkuODh+OCrQ0KK+ODiuODquODj+ODqSzjg5Ljg63jg58NCivjg4rjg6rjg4jjg58s44OK44Kq44KtDQor44OK44Or44K344OeLOODnuOCs+ODiA0KK+ODiuOCueOCq+ODryzjgrjjg6Xjg7Pjg6QNCivjg4rjg4jjg6os44Kx44Oz44OkDQor44ON44Ku44K3LOOCqOODn+OCsw0KK+ODjeODouODiCzjgqTjgrrjg58NCivjg4vjgqjjg4As44OI44Kq44OrDQor44OL44Kk44K444OeLOODnuOCs+ODiA0KK+ODi+OCpOOCr+ODqSzjg57jgrXjg6sNCivjg4vjgqTjg4Tjg54s44Kx44Oz44K4DQor44OL44Kk44K244OvLOODqOOCt+ODjuODqg0KK+ODi+OCt+ODgCzjg5Ljg63jg5Ljg4gNCivjg4vjgrfjg4As44K/44Kx44K3DQor44OL44K344OALOOCqOOCpOOCuA0KK+ODi+OCt+ODgCzjg5Ljg4fjg4gNCivjg5Ljg4Djgqss44Om44Kt44Oe44K1DQor44OL44K344OALOODpOOCueOCqg0KK+ODi+OCt+OCq+ODiSzjgqLjg4TjgrcNCivjg4vjgrfjgqvjg68s44Ko44Kk44K444OlDQor44OL44K344Kr44OvLOODiOODouOCouOCrQ0KK+ODi+OCt+OCq+ODryzjg57jgrXjg47jg5YNCivjg4vjgrfjg6Ljg4gs44OS44OH44OkDQor44OL44K344Og44OpLOODnuOCteODjuODqg0KK+ODi+OCt+ODiizjgq3jg6jjgrcNCivjg4vjgrfjg44s44OS44Ot44Kr44K6DQor44OL44K344K/LOODn+OCrQ0KK+ODleOCq+ODnyzjgqvjgrrjg6gNCivjg4vjgrfjg6/jgq0s44K/44Kx44OS44KzDQor44OL44K344Ok44OeLOOCq+ODhOOCtw0KK+ODi+OCt+ODpOODnizjg5Ljg4jjgrcNCivjg4vjgrfjgrbjg68s44Oo44K344OS44OtDQor44OL44OD44K/LOODkuODreODqOOCtw0KK+ODi+ODr+OCvyzjg5vjgrrjg58NCivjg4vjg6/jg6Tjg54s44OB44K6DQor44OO44Ki44OfLOOCr+ODi+OCsw0KK+ODjuODnOODquOCv+ODhizjg57jg4rjg5YNCivjg47jg4As44K/44Kr44Om44KtDQor44OO44Ks44OvLOODkuODreODpA0KK+ODjuOCsOODgSzjg4jjg6LjgqLjgq0NCivjg47jgrDjg4Es44K/44Kr44K3DQor44OO44K444OqLOODkuODreODpuOCrQ0KK+ODjuODouODiCzjg6bjgqbjgrMNCivjg47jg6Djg6ks44Of44Kt44KzDQor44OP44Ok44K144KrLOOCq+OCuuODkuODrQ0KK+ODjuODoOODqSzjg57jgrXjg5Ljg60NCivjg47jg4gs44K944OO44OfDQor44OO44K244KtLOODiOOCt+ODpA0KK+OCs+OCteOCqyzjg6TjgrnjgrcNCivjgqrjg5Djg4os44Ki44Ok44KzDQor44Kq44OBLOODnuOCteODhuODqw0KK+OCquODgCzjg4/jg6vjg47jg5YNCivjgqrjgqzjgrXjg6/jg6ks44Kr44K644OG44OrDQor44Kq44Ks44K/LOODkuODreODpOOCuQ0KK+OCr+OCrSzjg6bjgr/jgqsNCivjgqrjgqvjg4As44OS44Ot44Ki44KtDQor44Kq44Ks44OvLOODkuODreODpuOCrQ0KK+OCquOCrOODryzjg57jgrXjg6bjgq0NCivjgqrjgqzjg68s44Ok44K544OO44OqDQor44Kq44Ku44OP44OpLOOCq+OCuuODiOOCtw0KK+OCquOCruODjizjgrPjgqbjgqTjg4ENCivjgqrjg5Ys44Of44KrDQor44Kq44Kq44OP44OpLOOCv+ODgOODkuOCsw0KK+ODj+ODnuODouODiCzjg6TjgrnjgrMNCivjgqrjgqrjg4/jg6ks44Om44Km44K4DQor44Kq44OP44K3LOOCteODiOOCtw0KK+OCquOCquOCq+ODryzjg57jgrXjg4gNCivjgqrjgqrjgq/jg5ws44Oe44K144Ki44KtDQor44Kq44Kq44Of44OkLOOCu+OCpOOCuA0KK+OCquOCquODouODqizjg4bjg4Tjg6QNCivjgqrjg6Djg6ks44Oq44On44Km44Kk44OBDQor44Kq44Kq44OL44K3LOODnuOCteOCv+OCqw0KK+OCquOCquODjizjg5Ljg63jg6TjgrkNCivjgqrjgqrjg4zjgq0s44Kr44K644KqDQor44Kq44Kq44K144KtLOOCteODiOOCtw0KK+OCquOCquOCteOCrSzjg6bjgqbjgrMNCivjgqrjgqrjgrXjg68s44K344Ot44KmDQor44Kq44K344OeLOOCv+OCseOCtw0KK+OCquOCt+ODnizjgr/jgqvjgqoNCivjgqrjgrfjg54s44OE44OI44OgDQor44Kq44Kq44K/LOODpOOCueOCqg0KK+OCquOCquOCvyzjg47jg5bjg5Ljg60NCivjgqrjgqrjgr8s44Of44KrDQor44Kq44Kq44K/LOODkuODreOCtw0KK+OCouODs+ODieOCpizjgrHjg7PjgqTjg4ENCivjgqrjgr/jgqss44K/44Kr44Ki44KtDQor44Kq44Kq44K/44KtLOODleODiOOCtw0KK+OCquOCquOCv+ODiyzjgqvjgrrjg5LjgrMNCivjgqrjgqrjgr/jg4ss44OO44Oq44OS44K1DQor44Kq44Kq44K/44OLLOODnuOCteOCq+OCug0KK+ODj+ODpOOCtyzjg6bjgq3jgrMNCivjgqrjgqrjg4Tjg5ws44K/44Kx44OS44K1DQor44Kq44Kq44OE44KrLOODqOOCt+ODjuODqg0KK+OCquOCquODhOOCqyzjgqjjgqTjgq0NCivjgqrjgqrjg4Tjgqss44Ki44OE44K3DQor44OP44Ok44K3LOOCqOODn+OCsw0KK+OCquOCquODhOODqyzjg5/jg4HjgqgNCivjgqrjg5Xjg4Es44OI44K344KzDQor44Kq44Kq44OvLOOCv+OCseOCtw0KK+OCquOCquODpCzjg6Djg43jgqoNCivjgqrjgrjjgqos44OV44Of44OO44OWDQor44Kq44KrLOODnuOCteODiOOCtw0KK+OCquOCq+ODmSzjgqLjg6bjg6ANCivjgqrjgqvjg4As44Oe44K144KtDQor44Kq44Kr44OALOOCv+OCq+ODpA0KK+OCquOCq+ODgCzjg4jjgqrjg6sNCivjgqrjgqvjg4As44OS44Ot44Om44KtDQor44Kq44Kr44Oi44OILOOCv+OCq+ODpuOCrQ0KK+OCquOCq+ODouODiCzjg6bjgqYNCivjgqrjgqvjg6Ljg4gs44OI44Oi44Om44KtDQor44Kq44Kr44Og44OpLOODkuODreOCr+ODiw0KK+OCquOCq+ODoOODqSzjgrHjgqTjgqTjg4ENCivjgqrjgqvjgrbjgq0s44OS44Ot44OI44K3DQor44Kq44Kr44K244KtLOOCs+OCpuOCv+ODreOCpg0KK+OCquOCreODjizjgqvjgqrjg6sNCivjgqrjgq/jg4As44OP44K444OhDQor44Kq44Kv44OALOODnuOCteODjuODqg0KK+OCquOCr+OCrOODryzjgrjjg6Xjg7PjgqTjg4ENCivjg4/jgq7jg4/jg6ks44Kx44Oz44K4DQor44Kq44Kv44Km44OBLOODoOODjeOCtw0KK+OCquOCquODnyzjgqLjg6TjgrMNCivjgqrjg6Djg6ks44OS44OI44K3DQor44Kq44Oz44OALOOCq+OCuuODkuODrQ0KK+OCquOCquODjizjg6bjgr/jgqsNCivjgqrjgqrjg44s44OS44On44Km44K+44KmDQor44Kq44Kq44OOLOODn+ODjuODqw0KK+OCquOCquODjizjgrfjg6Xjg7PjgrnjgrENCivjgqrjg47jg4fjg6ks44Oe44K144OS44KzDQor44Kq44OO44OH44OpLOODqOOCt+ODjuODqg0KK+OCquODjuODh+ODqSzjg4jjgrfjgqoNCivjgqrjg47jg6Djg6ks44Of44OO44OrDQor44Kq44OO44K244OvLOOCt+ODs+ODpA0KK+OCquOCquODjOOCrSzjg4bjg4Tjg63jgqYNCivjgqrjg44s44K/44Kr44Ki44KtDQor44Kq44Kq44Ok44OeLOODkuODiOOCtw0KK+OCquODquODiSzjg5Ljg4fjgqLjgq0NCivjgqrjg6rjgrfjgq3jg4As44Kz44Km44Kk44OBDQor44Kq44Kq44K144KrLOOCv+ODgOOCqg0KK+OCquODpOODnizjgr/jgqTjg4ENCivjgqrjgrbjgq0s44K/44OE44OkDQor44Kq44K244KtLOODqOOCt+ODnuOCtQ0KK+OCquOCtuODryzjg6bjgqbjgrnjgrENCivjgrPjgrbjg68s44OS44Ot44K3DQor44Kq44K244OvLOODnuOCteODj+ODqw0KK+OCquOCtuODryzjgr/jgrHjgrcNCivjg4/jgr/jg4rjgqss44Of44OE44OS44OtDQor44K144Ko44KtLOODquODp+OCpuOCsw0KK+OCteOCpOODgCzjg6Ljg6LjgrMNCivjgrXjgqTjgrDjgrUs44OS44Ot44K3DQor44OP44Oz44OALOOCv+OCseOCtw0KK+OCteOCpOODiOOCpizjg6Tjgrnjg4jjg6INCivjgrXjgqTjg4jjgqYs44Oe44K144OS44K1DQor44K144Kk44OI44KmLOOCt+OCsuODkuODiA0KK+OCteOCq+ODgSzjg57jgrXjgqoNCivjgrXjgqvjgrDjg4Es44Kz44Km44K4DQor44K144Kr44KkLOODn+ODjuODqw0KK+OCteOCq+OCpCzjgrPjgqbjgr7jgqYNCivjg5Ljg6njg44s44Ki44Kt44OS44OtDQor44K144Kr44KkLOOCouOCreODqQ0KK+OCteOCq+OCpCzjg5Ljg63jg58NCivjgrXjgqvjgqQs44Of44Kt44KqDQor44K144Kr44KkLOODiuOCquOCrQ0KK+OCteOCq+ODouODiCzjgr/jgqvjgrcNCivjgrXjgqvjg6Ljg4gs44Ok44K544OS44OtDQor44OS44Ot44K7LOODqOOCt+OCouOCrQ0KK+OCteOCq+ODouODiCzjg6jjgqbjgq3jg4ENCivjgrXjgqvjgr8s44OI44Oi44K4DQor44Kt44K344OALOODkuODreOCouOCrQ0KK+OCteOCsyzjgqLjgqvjgrcNCivjgrXjgq/jg54s44Oe44K144OrDQor44K144Kv44Op44OQLOOCqOODnw0KK+OCteOCr+ODqeOCpCzjg4/jg6vjg58NCivjgrXjgq/jg6njg6Tjg54s44OS44Ot44K3DQor44K144Oh44K344OeLOOCq+OCuuODqOOCtw0KK+OCteODs+ODmSzjg57jgrPjg4gNCivjgrXjg6vjg6/jgr/jg6os44Oe44K144KtDQor44OP44K744Ks44OvLOODnuOCteODiA0KK+OCteOCteOCqCzjg4rjgqrjgq0NCivjgrXjgrXjg4/jg6ks44Oq44On44Km44K4DQor44K144K144KtLOOCv+OCq+ODnuOCtQ0KK+OCteOCteOCrSzjgr/jgqvjgrcNCivjgrXjgrXjgq0s44Om44K/44KrDQor44K144K144KtLOODpuOCreOCsw0KK+ODj+ODk+ODrSzjg6bjgr/jgqsNCivjgrXjgrXjgqos44Kr44K644K344KyDQor44K144K144Kq44KrLOODiOODouOCsw0KK+OCteOCteOCv+ODiyzjg6jjgrfjg58NCivjgrXjgr8s44OI44Oi44OfDQor44K144K/44KxLOODiOOCt+OCrQ0KK+OCteODiOOCpizjgrjjg6Xjg7MNCivjg5vjgrfjg44s44Kx44Kk44K4DQor44K144OI44KmLOODnuOCteODj+ODqw0KK+ODj+ODg+ODiOODqizjgrfjg7Pjg6QNCivjgrXjg4jjgqYs44OI44Kq44OrDQor44K144OI44KmLOOCt+OCsuOCrQ0KK+OCteODiOOCpizjg6bjgq3jgr/jgqsNCivjgrXjg4jjgqYs44Oq44On44Km44Kk44OBDQor44K144OI44KmLOOCv+ODhOOCrQ0KK+OCteODiOOCpizjgrHjgqTjgrgNCivjgrXjg4jjgqYs44Oe44Oq44KqDQor44K144OI44KmLOODiOOCt+OCouOCrQ0KK+OCteODiOOCpizjgrHjgqTjgqTjg4ENCivjg5Ljg6njg44s44OS44Ot44Ki44KtDQor44K144OI44KmLOODkuODreODpuOCrQ0KK+OCteODiOOCpizjg6Tjgrnjg47jg6oNCivjgrXjg6/jg4As44Kx44Kk44Kk44OBDQor44K144Ov44OALOOCs+OCpuODmOOCpA0KK+OCteODr+ODleOCuCzjgr/jgqvjg5Ljg60NCivjgrXjg6/jgq0s44Kz44Km44OY44KkDQor44K144Ov44Og44OpLOODkuODreOCtw0KK+OCu+OCrOODryzjgrfjg7Pjgr/jg63jgqYNCivjgrvjgqzjg68s44Kr44K644KtDQor44K744KtLOODquODhOOCsw0KK+OCu+OCrSzjgr/jgqTjg4ENCivjgrvjgq3jgrDjg4Es44OS44K144K3DQor44K744Kt44ONLOOCq+OCuuOCouOCrQ0KK+OCu+OCreODjSzjgqvjg4Tjg58NCivjg5Ljg6njg44s44Ko44Kk44Kk44OBDQor44K744Oz44K044KvLOODpOOCueOCtw0KK+OCu+OCqizjg5Ljg63jgrcNCivjgrvjg6ks44K/44OA44K3DQor44K744OpLOODkuODreOCq+ODhA0KK+OCt+ODkOODj+ODqSzjgqvjgrrjg44NCivjgrfjg5Djgr8s44Kr44K644OS44KzDQor44K344OQ44K/LOODiOODouODkuODrQ0KK+ODj+OCu+OCrOODryzjg4jjg6Ljg5/jg4QNCivjgrfjg5Djgr8s44Om44K/44KrDQor44K344OQ44K/LOODnuOCteOCv+OCsQ0KK+OCt+ODkOOCvyzjg57jgrXjg6bjgq0NCivjgrfjg5Djgrbjgq0s44Oe44K144KzDQor44K344OW44K/44OLLOODiOODouODj+ODqw0KK+OCt+ODluODpCzjg4jjg6Ljgqvjg4QNCivjgrfjg4Hjg5Ljg6fjgqYs44Kt44Of44Ki44KtDQor44K344KtLOODnuOCteODqw0KK+OCt+OCreOCt+ODnizjgr/jgrHjgrcNCivjgrfjg54s44Ki44Kt44KzDQor44K344OeLOOCs+OCueOCsQ0KK+OCt+ODnuODgCzjgqvjg4Tjg5Ljg60NCivjgrfjg57jg4zjgq0s44K/44Kr44K3DQor44K344Oe44Kq44KrLOODpOOCueOCv+OCqw0KK+OCt+ODnuOCt+OCvyzjg4rjgqrjg5Ljg60NCivjgrfjg57jgros44Kx44Kk44Kk44OBDQor44K344Of44K6LOODkuODh+OCrQ0KK+OCt+ODn+OCuizjgrHjgqTjgrnjgrENCivjg4/jgrvjgqzjg68s44OB44Ko44KzDQor44K344Of44K6LOODnuOCteOCqg0KK+OCt+ODn+OCuizjg6bjg6rjgrMNCivjgrfjg5/jgros44Kr44K644OS44K1DQor44K344Oi44Ks44KkLOODiOOCt+OCsw0KK+OCt+ODouOCq+ODr+ODmSzjgqLjgq3jg5Ljg60NCivjgrfjg6Ljgqrjgqss44Ki44Kt44OS44OtDQor44K344Oi44K144KrLOODkuODh+ODpuOCrQ0KK+OCt+ODouODpOODnizjg4bjg4Tjg6QNCivjgrfjg7Pjg5zjg6os44OS44Ot44KoDQor44K344OO44OP44OpLOODiuOCquOCv+OCqw0KK+OCt+ODjuODj+ODqSzjg5LjgrXjg4jjgrcNCivjgrfjg47jgrbjgq0s44OS44Ot44K3DQor44K344OO44K244KtLOODqOOCt+OCsw0KK+OCt+ODjuOCuuOCqyzjgrHjg7PjgqTjg4ENCivjgrfjg7Pjg6Qs44OS44OH44KzDQor44K344Kq44K/LOOCuOODpeODs+OCreODgQ0KK+OCt+OCquOCv+ODiyzjgrHjg7PjgrgNCivjgrfjgqrjg6Qs44OI44Kq44OrDQor44K344Op44OP44OeLOODn+ODgeODkuOCtQ0KK+OCt+ODqeOCpCzjg5/jgqsNCivjgrfjg6njgqTjgrcs44Of44K1DQor44K344Op44Kk44K3LOODpOOCueODkuODiA0KK+OCt+ODqeOCpOOCtyzjg4Tjg4jjg6ANCivjgrfjg6njgq0s44Kx44Kk44K544KxDQor44K344Op44K144KtLOOCq+OCuuODpuOCrQ0KK+OCt+ODp+OCpuODiuOCtCzjgr/jgqvjgrfjgrINCivjgqrjgqrjg6Tjg54s44Of44KrDQor44K344Ol44OI44KmLOODkuODreOCrQ0KK+OCt+ODouOCpOOCuizjg6jjg6rjg4gNCivjgr3jgqjjg4As44K/44Kv44OfDQor44Ob44Oq44OOLOODkuODreOCq+ODhA0KK+OCveODiOOCuOODnizjg5Xjg4jjgrcNCivjgrnjg4As44Oh44Kk44K444Ot44KmDQor44K544OALOOCs+OCpuOCsw0KK+OCueODieOCpizjg5Ljg4fjg5Ljg4gNCivjgrnjgqws44OP44K444OhDQor44K544Ks44OM44OeLOODkuODreOCq+OCug0KK+OCueOCrOODr+ODqSzjgrHjgqQNCivjgrnjgq7jg5Djg6Tjgrcs44Oe44K144OI44K3DQor44K544Ku44Oi44OILOODn+OCqw0KK+OCueOCruODouODiCzjg47jg5bjgrMNCivjgrnjgq7jg6Djg6ks44OO44Oq44OS44KzDQor44K544Ku44OOLOOCteODiOODqw0KK+OCueOCruOCteOCrSzjgrfjg7PjgqTjg4ENCivjgrnjgq7jgrXjg68s44K/44Kr44KqDQor44K544Ku44K/LOOCv+OCq+ODpuOCrQ0KK+ODj+ODpOOCtyzjgr/jg58NCivjgrnjgq7jgqbjg6ks44OI44Kq44OrDQor44K544Ku44Ok44OeLOODiOOCt+ODpA0KK+OCueOCruODpOODnizjgrfjg7PjgrgNCivjgrnjgrQs44Ok44K544KqDQor44K544Kk44K/LOODqOOCt+ODkuOCtQ0KK+OCueODn+ODgCzjgqLjg4TjgrcNCivjgrnjg5/jgqvjg68s44K144OI44K3DQor44K544OK44KsLOODiOOCquODqw0KK+OCueODjuODj+ODqSzjg57jgrXjg58NCivjgrnjgrrjgq0s44Ki44Kt44OpDQor44K544K644KtLOODiOODouODpuOCrQ0KK+OCueOCuuOCrSzjg6jjgrfjg6bjgq0NCivjgrnjgrrjgq0s44Oe44K144OV44OfDQor44K544K644KtLOOCt+ODp+OCpuOCtA0KK+OCueOCuuOCrSzjgr/jgrHjg5Ljg60NCivjgrnjgrrjgq0s44Oo44K344OO44OqDQor44K544K644KtLOOCq+OCuuODlQ0KK+OCueOCuuOCrSzjgqLjgq3jgrMNCivjgrnjgrrjgq0s44Kr44OE44OS44KzDQor44K544K644KtLOOCt+OCsuODqw0KK+ODpOODnuOCq+ODryzjgr/jg4TjgqoNCivjgrnjgrrjgq0s44Ki44K144KzDQor44K544K644KtLOOCouOCreODkuOCsw0KK+ODj+OCrCzjg5Ljg63jgqvjgroNCivjgrnjgrrjgq0s44Kk44K144OIDQor44K544K644KtLOOCq+OCquODqg0KK+OCueOCuuODjizjgqvjg4Tjg5Xjg58NCivjgrfjg6Xjg4jjgqYs44Kv44OL44OS44OHDQor44K/44OQ44OpLOODnuOCsw0KK+OCv+ODgCzjg57jgrXjg6sNCivjg4/jg6rjgqzjgqQs44K/44Kr44OO44OWDQor44K/44OALOODnuOCteODpuOCrQ0KK+OCv+OCrOOCt+ODqSzjg5/jg4rjgrMNCivjgr/jgrDjg4Es44Of44Om44KtDQor44K/44Kw44OBLOODjuODluOCouOCrQ0KK+OCv+OCuOODnizjgrfjg7PjgrgNCivjgr/jgrjjg54s44K344Oz44K4DQor44Ob44OD44K/LOOCt+ODpeODs+OCpOODgQ0KK+OCv+OCq+ODgCzjg4jjg6Ljg47jg6oNCivjgr/jgqvjgq4s44OI44K344Kr44K6DQor44K/44Kr44KuLOODqOOCpuOCpOODgQ0KK+OCv+OCq+OCrizjg6bjgqbjgrMNCivjgr/jgqvjg4/jgrcs44Ko44Kk44KzDQor44OP44K344Kw44OBLOODkuODreOCouOCrQ0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jgrcNCivjgr/jgqvjg4/jgrcs44OK44Kq44OfDQor44K/44Kr44OP44K3LOODkuODreODn+ODgQ0KK+OCv+OCq+ODj+OCtyzjgqvjg4Tjg4jjgrcNCivjgr/jgqvjg4/jgrcs44Kr44K644KzDQor44K/44Kr44OP44K3LOOCq+OCuuOCqg0KK+OCv+OCq+ODj+OCtyzjg4jjg6Ljg5Ljg60NCivjg4/jgrvjgqzjg68s44OG44Or44KqDQor44K/44Kr44OP44K3LOOCseODs+OCv+ODreOCpg0KK+OCv+OCq+ODj+OCtyzjg5Ljg4fjg47jg6oNCivjgr/jgqvjg4/jgrcs44Kr44OE44OfDQor44K/44Kr44OP44K3LOOCt+ODs+OCpOODgQ0KK+OCv+OCq+ODj+OCtyzjg6jjgrfjg5/jg4QNCivjgr/jgqvjg4/jgrcs44Kr44K644OS44OtDQor44K/44Kr44OP44K3LOOCpOODgeOCv+ODreOCpg0KK+OCv+OCq+ODj+OCtyzjgqLjg4Tjg47jg6oNCivjgr/jgqvjg4/jgrcs44Kx44Oz44Kk44OBDQor44K/44Kr44OP44K3LOODleOCteODkuOCsw0KK+OCquOCquODnyzjgrHjg7PjgrgNCivjgr/jgqvjg5Ljg6ks44Of44OO44OrDQor44K/44Kr44KkLOODqOOCt+ODiOODog0KK+OCv+OCq+ODn+ODpCzjgrPjgqbjgrgNCivjgr/jgqvjg4rjgrcs44Oq44ObDQor44K/44Kr44OOLOODn+OCreOCsw0KK+OCv+OCq+ODjizjg6jjgrfjg5Ljg60NCivjgr/jgqvjg44s44K/44Oe44OoDQor44K/44Kr44OOLOODqOOCt+ODkuODiA0KK+OCv+OCq+ODjizjgqLjgq3jg5Ljg60NCivjg4/jg6Tjgqvjg68s44Oi44OI44OS44OtDQor44K/44Kr44K344OeLOOCv+ODgOOCtw0KK+OCv+OCq+OCuSzjgqvjg4Tjg47jg6oNCivjgr/jgqvjg4jjgqbjg6os44OS44OH44OS44KzDQor44K/44Kr44OI44OqLOODleOCteODnw0KK+OCv+OCq+ODpCzjg47jg6rjgqLjgq0NCivjgr/jgrEs44Ki44Kt44OS44OtDQor44K/44Kx44OALOOCu+OCpOOCuA0KK+OCv+OCseODgCzjgqTjgrrjg58NCivjg5vjg6os44Kz44Km44K+44KmDQor44K/44Kx44OALOOCt+ODs+OCpOODgQ0KK+OCv+OCseODj+ODqSzjg5Ljgqvjg6sNCivjgr/jgrHjgqQs44K344Oz44Kk44OBDQor44K/44Kx44Oi44OILOOCouOCrQ0KK+OCv+OCseODouODiCzjgqLjgq3jgrnjgrENCivjgr/jgrHjg4rjgqss44Kx44Oz44Kk44OBDQor44OP44Ok44K3LOODnuOCteODkuOCsw0KK+OCv+OCq+OCrizjg57jgrXjgq0NCivjgr/jgrHjg4jjg58s44Oe44K144OO44OqDQor44K/44Kx44Km44OBLOODn+ODmw0KK+OCv+OCseOCpuODgSzjg5/jg4TjgqoNCivjgr/jgrHjgqbjg4Es44OO44OW44Oo44K3DQor44K/44Kx44Ok44K5LOODrOOCpOOCuA0KK+OCv+OCseOCtuODryzjg6rjg6fjgqbjgrgNCivjgr/jgq3jg5As44K144OI44K3DQor44K/44Kv44OcLOOCv+OCq+ODjuODqg0KK+ODj+ODi+ODpeOCpizjg4Tjg6jjgrcNCivjgr/jg57jg6jjg6os44Om44Km44KzDQor44K/44Oi44OELOODpuOCpuOCvw0KK+OCv+ODoOODqSzjg5Ljg63jg6bjgq0NCivjgr/jg6Djg6ks44Ki44Kx44OfDQor44K/44Og44OpLOOCouOCreODqQ0KK+OCv+ODiuODmSzjg6Tjgrnjg47jg6oNCivjgr/jg4rjg5ks44OS44OH44OS44KzDQor44K/44OK44KrLOODkuODreODpuOCrQ0KK+OCv+ODiuOCqyzjg6jjgrfjg6bjgq0NCivjgr/jg4rjgqss44Kz44Km44Kk44OBDQor44K/44OK44KrLOOCouODhOOCtw0KK+OCv+OCseODgCzjg6jjgrfjgrMNCivjgr/jg4rjgqss44K/44OA44K3DQor44OP44K744Ks44OvLOODnuOCteODqw0KK+OCv+ODiuOCqyzjg5Ljg4fjg6bjgq0NCivjgr/jg4rjgqss44K/44Kr44Oo44K3DQor44K/44OK44KrLOODnuODiuODlg0KK+OCv+ODiuOCqyzjgqvjg4Tjgq0NCivjgr/jg4rjgqss44Oe44Kz44OIDQor44K/44OK44KrLOODpuOCpuOCsw0KK+OCv+ODiuOCqyzjgrPjgqbjgqTjg4ENCivjgr/jg4rjgqss44Oo44K344KqDQor44K/44OK44KrLOODiOOCquODqw0KK+OCv+ODiyzjg5Ljg63jgrMNCivjg5/jgr/jg4ss44OY44Kk44K0DQor44K/44OL44Kw44OBLOODkuODh+OCouOCrQ0KK+ODj+ODg+ODiOODqizjg5Ljg63jgrMNCivjgr/jg4vjgrDjg4Es44Kx44Oz44Kk44OBDQor44K/44OL44Kw44OBLOODpuOCpuOCsw0KK+OCv+ODi+OCsOODgSzjgqvjg4Tjg5LjgrMNCivjgr/jg4vjgqvjg68s44Kx44Oz44K3DQor44K/44K144KrLOODnuOCs+ODiA0KK+OCv+OCt+ODnizjgrHjgqTjgrnjgrENCivjgr/jg4bjgqvjg68s44Oe44K144OrDQor44K/44OG44OOLOOCs+OCpuOCuA0KK+ODhuODqeOCuOODnizjg4/jgrjjg6ENCivjg4bjg6njg57jgqgs44K744Kk44Kk44OB44Ot44KmDQor44OG44Op44K144OvLOODnuOCs+ODiA0KK+ODhuODqeODpOODnizjg5/jg6jjgrMNCivjg4bjgrfjg54s44Ko44OE44Oe44K1DQor44OI44OALOODouODiOODpuOCrQ0KK+ODiOODiOODnyzjgr/jgrHjg5LjgrMNCivjg4jjgqrjg6Tjg54s44Om44Kt44OS44KzDQor44OI44Kt44OvLOODgeOCqOOCsw0KK+ODleOCr+ODpOODnizjgrHjg7PjgrgNCivjg4jjgq/jgrbjg68s44Oe44K144OrDQor44OI44Of44OK44KsLOOCs+OCpuOCuA0KK+ODiOODn+OCvyzjg5Ljg4fjgrcNCivjg4jjg5/jg6Tjg54s44Kr44K644OO44OqDQor44K144Ov44Og44OpLOOCv+ODhOODnw0KK+ODiOODquOCtOOCqCzjgrXjg4Djg6bjgq0NCivjg4jjg6rjgr/jg4ss44OS44OH44OO44OqDQor44OI44K144KrLOOCt+ODpeOCpuOCuA0KK+ODhOODnOOCpCzjg57jgrXjg5LjgrMNCivjg5Ljg6njg5Djg6Tjgrcs44OI44Oi44OK44OqDQor44OE44OB44OALOODkuODreODpuOCrQ0KK+ODhOODgeOCv+ODiyzjg5Ljg4fjgq0NCivjg4Tjg4Hjg6Qs44K344Ky44OIDQor44OE44OALOODkuODreOCtw0KK+ODhOODgCzjgqLjg4Tjg6jjgrcNCivjg4Tjgrgs44OS44Ot44K3DQor44OE44K444KkLOOCq+OCuuOCqg0KK+ODhOOCuOODoOODqSzjg4rjg6vjg4gNCivjg4Tjgrjjg6Djg6ks44K/44Kr44K3DQor44OE44K444OOLOOCt+ODpeOCpuOCpOODgQ0KK+ODhOOCuOOCteODryzjg6bjg58NCivjg4Tjgqvjg4As44K/44Kk44K+44KmDQor44OE44Kr44OP44OpLOODhuODhOOCqg0KK+ODhOOCq+ODouODiCzjg6Tjgrnjgq0NCivjg4Tjgqvjg6Ljg4gs44Oo44K344OfDQor44OE44Kr44Oi44OILOOCseODs+OCv+ODreOCpg0KK+ODhOODjeODgCzjg57jgrXjg5Ljg60NCivjg4Tjg47jg4As44K/44Kx44K3DQor44OE44OO44OALOOCseODs+OCpOODgeODrQ0KK+ODhOODq+ODnuODqyzjgr/jgqvjgrcNCivjg4TjgrXjgqss44Kx44OzDQor44OE44OE44KkLOOCv+OCq+OCt+OCsg0KK+ODhOODhOODnyzjg57jgrXjg47jg6oNCivjg4Tjg4Tjg58s44Oe44K144OP44OrDQor44OE44OE44Of44OP44OpLOOCv+OCq+OCqg0KK+OCpuODgeODgCzjg57jgrPjg4gNCivjgqbjg4Hjg4As44K144OA44Om44KtDQor44OP44Ok44K3LOOCv+OCq+ODpuOCrQ0KK+OCpuODgeODgCzjgr/jg4Tjg6QNCivjgqbjg4Hjg44s44K144OI44K3DQor44Km44OB44Ok44OeLOOCouODpOODjg0KK+OCpuODgOOCrOODryzjgrfjg7PjgqTjg4ENCivjgqbjgqjjg4As44OS44Ot44Om44KtDQor44Km44Ko44OALOOCseODs+OCuA0KK+OCpuOCqOODgCzjgr/jgrHjgrcNCivjg43jgros44OI44K344Ki44KtDQor44Km44Ko44Og44OpLOOCteODiOOCtw0KK+OCpuOCqOODoOODqSzjgrfjg6fjgqbjgr8NCivjgqbjgqjjg6Djg6ks44Kx44Oz44Kk44OBDQor44Km44Ko44OOLOOCt+ODs+ODpA0KK+OCpuOCqOODjizjg4jjg6Ljg5Xjg58NCivjgqbjgqjjgrXjg68s44OI44K344OS44OtDQor44Km44Ko44OE44OcLOODqOOCt+OCv+OCqw0KK+OCpuOCqOODhOOCrSzjg6jjgrfjg4bjg6sNCivjgqbjgrHjg44s44Om44Km44K544KxDQor44Km44Oe44OP44K3LOODkuODh+ODleODnw0KK+OCpuODoeODgCzjg6Tjgrnjgr/jgqsNCivjgqbjg6Hjg6Djg6ks44Kr44Kq44OrDQor44Km44Of44OALOOCs+OCpuOCreODgQ0KK+OCpuOCquOCuuODnyzjgrXjg7Pjg5rjgqQNCivjgqbjg6njgr8s44K744Oz44K/DQor44Km44K344Kv44K1LOODiOOCt+ODpuOCrQ0KK+OCpuOCueODiuODnyzjgrjjg6Xjg7MNCivjg6/jg4As44K444Ol44Oz44Kk44OBDQor44Ov44OALOOCq+OCquODqg0KK+ODr+ODgCzjg5/jgq0NCivjg6/jg4As44Of44OE44OO44OqDQor44Ov44Kr44K7LOOCteODiOODqOOCtw0KK+ODr+OCrSzjgr/jg4DjgrcNCivjg6/jgr/jg4rjg5ks44K/44Kx44K3DQor44Ov44K/44OK44OZLOODiOODouOCouOCrQ0KK+ODr+OCv+ODiuODmSzjg6jjgrfjg5LjgrUNCivjg6/jgr/jg4rjg5ks44OG44Kk44K4DQor44Ov44K/44OK44OZLOODqOOCt+OCrQ0KK+ODr+OCv+ODiuODmSzjg6jjgrfjg6bjgq0NCivjg6/jgr/jg4rjg5ks44Kr44K644OIDQor44Ov44K/44OM44KtLOODqOOCt+ODkuOCtQ0KK+ODr+OCv+ODjOOCrSzjg5Ljg4fjgqoNCivjg6/jgr/jg6os44OS44Ot44Of44OEDQor44OP44K344Kw44OBLOOCuOODpeODs+ODpA0KK+ODpOODlizjgrPjgqbjgrgNCivjg6Tjgq7jg4zjg54s44Of44OE44Ki44KtDQor44Ok44K444OeLOODiuOCquOCrQ0KK+ODpOODnuODgCzjgrfjgrLjg5Xjg58NCivjg6Tjg57jg4As44Oo44K344K/44KrDQor44Ok44Oe44OALOODpuOCpuOCueOCsQ0KK+ODpOODnuODgCzjg6bjgqbjgrMNCivjg6Tjg57jg4As44Ki44Kt44Ki44OEDQor44Ok44Oe44OALOOCouOCreODqQ0KK+ODpOODnuODgCzjg4HjgqgNCivjg6Tjg57jg4As44OS44Ot44KzDQor44Ok44Oe44OALOOCq+OCuuODnw0KK+ODpOODnuODgCzjg57jgrXjg6jjgrcNCivjg5LjgrXjg44s44Oq44KrDQor44Ok44Oe44OALOOCteODiOOCtw0KK+ODpOODnuODgCzjgrXjg6TjgqsNCivjg6Tjg57jg5Xjgrgs44K/44OE44OkDQor44Ok44Oe44Ku44OvLOODpOOCueODkuOCsw0KK+ODpOODnuOCsOODgSzjg6Tjgrnjg5Ljg60NCivjg6Tjg57jgrDjg4Es44Oo44K344OS44OtDQor44Ok44Oe44Kw44OBLOODjuODquODpuOCrQ0KK+ODpOODnuOCsOODgSzjg6bjgqQNCivjg6Tjg57jgrDjg4Es44Kk44K144KqDQor44Ok44Oe44Kw44OBLOODhuODhOODpA0KK+ODpOODnuOCsOODgSzjgr/jgrHjg4/jg6sNCivjg6Tjg57jgrDjg4Es44Ki44Kt44OpDQor44Ok44Oe44Kw44OBLOOCv+OCq+ODkuODrQ0KK+ODpOODnuOCq+ODryzjg6bjgq3jgrMNCivjg6Tjg57jg6Ljg4gs44OS44Ot44K3DQor44Ok44Oe44Oi44OILOOCq+ODiuOCsw0KK+ODn+OCuuOCv+ODiyzjgq3jg5/jgqoNCivjg6Tjg57jg6Ljg4gs44Of44OJ44OqDQor44Ok44Oe44Oi44OILOODn+ODhOODkuODrQ0KK+ODpOODnuODouODiCzjg6jjg47jgrnjgrENCivjg6Tjg57jg6Ljg4gs44OK44Kq44OIDQor44Ok44Oe44Oi44OILOOCv+OCq+OCtw0KK+ODpOODnuODouODiCzjgqvjg4TjgrgNCivjg6Tjg57jg6Ljg4gs44Kr44K6DQor44Ok44Oe44Oi44OILOOCq+OCuuOCouOCrQ0KK+ODpOODnuODouODiCzjg5Ljg4rjgrMNCivjg6Tjg57jg6Ljg4gs44K344Oz44Kk44OBDQor44Ok44Oe44ONLOODnuOCs+ODiA0KK+ODpOODnuODjSzjg6Tjgrnjg5LjgrUNCivjg6Tjg57jgrfjgr8s44OI44K344KqDQor44Ok44Oe44K344K/LOOCq+OCuuODkuOCtQ0KK+ODj+ODs+ODgCzjgqTjgrXjgqoNCivjg6Tjg57jgqbjg4Es44Oo44K344OkDQor44Ok44Oe44Km44OBLOOCt+ODs+OCpOODgeODreOCpg0KK+ODpOODnuOCpuODqSzjgr/jgqvjgrcNCivjg6Tjg57jgrbjgq0s44OS44Ot44OIDQor44Ok44Oe44K244KtLOOCq+OCuuODqOOCtw0KK+ODpOODnuOCtuOCrSzjgrHjg7PjgqTjg4ENCivjgr/jg6Djg6ks44Oe44K144OI44K3DQor44Ok44Oe44K244KtLOOCteODiOOCtw0KK+ODpOODnuOCtuOCrSzjgr/jgqvjgqoNCivjg6Tjg57jgr7jgqgs44K/44Kr44K3DQor44Ok44OK44Ku44K144OvLOODpuODn+OCsw0KK+ODpOODjizjgr/jgrHjgrcNCivjg6Tjgrnjg4As44OS44OH44KtDQor44Ok44K544OP44OpLOOCseOCpOOCsw0KK+OCs+OCt+ODouODiCzjg6Ljg4gNCivjg4/jgq7jg6/jg6ks44Of44Kt44KqDQor44Oo44Kz44K/LOODhuODq+ODkuOCtQ0KK+ODqOOCs+ODpOODnizjgr/jgrHjgrcNCivjg6jjg6Ljg4As44Ki44Kt44OpDQor44Oo44OK44KsLOOCteODiOOCtw0KK+ODqOODjeODgCzjg5Ljg63jgr/jgrENCivjg6jjg43jg6Tjg54s44K144OB44OoDQor44Oo44ON44K244OvLOOCqOODqg0KK+ODqOODjeOCtuODryzjg4jjg6Ljg5LjgrUNCivjg6jjgrfjg4As44Oe44Om44OfDQor44Oo44K344OALOODhuODq+ODpOOCuQ0KK+ODqOOCt+ODgCzjgqvjg4Tjg5Ljg60NCivjg6jjgrfjg4As44Oe44K144OIDQor44Oo44K344OALOOCouOCreODkuOCtQ0KK+ODqOOCt+ODgCzjgrXjg4HjgrMNCivjg6jjgrfjg4As44Kx44Oz44K0DQor44Oo44K344OALOOCreODqOODkuODiA0KK+ODqOOCt+OCsOODgSzjg47jg5bjgrMNCivjg6jjgrfjgqQs44Om44Kt44KqDQor44Oo44K344Kk44KxLOOCreODqOODpuOCrQ0KK+ODqOOCt+ODnuODhCzjgrHjg7Pjgr/jg63jgqYNCivjg6jjgrfjg44s44OS44K144Oo44K3DQor44Oo44K344OOLOOCt+OCsuOCqg0KK+ODqOOCt+OCtuODryzjgqrjgrXjg6ANCivjg6jjg4Tjgr/jg4ss44Of44OE44OS44OtDQor44Om44Kt44K244ONLOOCu+OCpOOCuA0KK+ODpuODpOODnizjg6jjgrfjg5LjgrUNCivjgrrjgrcs44Om44Kt44KqDQor44Ki44Op44KkLOODnuOCteODiA0KK+ODleOCuOOCrSzjg6bjgqbjgqTjg4ENCivjg5Ljg6njg44s44K344Ky44OrDQor44Kr44Oh44Ok44OeLOODkuODh+ODjuODlg0KK+OCs+OCuOODnizjgqvjgrrjgqoNCivjg4rjgqvjgqos44Oh44Kw44OfDQor44Kk44Ov44Kr44OvLOOCveOCpuOCv+ODreOCpg0KK+ODhOODgeODpCzjgr/jg4Tjg6QNCivjgqTjgrjjg60s44Kz44Km44K4DQor44Kv44OJ44KmLOODiOODouOCsw0KK+ODiuOCrOOCt+ODnizjgqvjgrrjg5Ljg4gNCivjg4/jgrfjgrDjg4Es44Kr44OE44Om44KtDQor44OE44OB44OkLOOCseOCpOOCsw0KK+OCpOOCt+ODnuODhCzjg5Ljg63jg6TjgrkNCivjg4/jg6njg4As44OS44Ot44K/44KrDQor44Of44K644OOLOODleODn+OCqg0KK+ODm+OCt+ODjizjg4/jg6vjgqoNCivjgqLjg5ks44K344Ky44OO44OqDQor44Ki44OZLOOCv+OCq+OCsw0KK+OCouODmSzjg6bjgr/jgqsNCivjgqLjg5ks44Ko44Kk44Kk44OBDQor44Ki44OW44Kr44OvLOODn+OCtQ0KK+OCouODgOODgSzjgrHjg7Pjgr/jg63jgqYNCivjgqLjgqTjgrbjg68s44Kt44Oq44KzDQor44Ki44K444OtLOODnuOCteODpuOCrQ0KK+OCouOCq+OCpCzjg4jjgrfjgqLjgq0NCivjgr/jg6Ljg4gs44Of44Kt44KqDQor44Ki44Kr44Kk44K3LOOCqOOCpOODgQ0KK+OCouOCq+OCtyzjg57jg6bjg58NCivjgqLjgq3jgqTjgrEs44Ok44K544OS44OtDQor44Ki44Kt44K/LOODjuODquODgeOCqw0KK+OCouOCreODpOODnizjg6Djg4Tjg58NCivjgqLjg57jgqzjgqQs44OS44OH44OV44OfDQor44Ki44Oe44Ks44K/LOOCv+OCq+OCtw0KK+OCouODnuODjizjg5/jg5sNCivjgqLjg6Hjg5/jg6Qs44Kr44OE44OfDQor44Ki44Oz44OJ44KmLOOCq+OCuuODkuODrQ0KK+OCouODs+ODieOCpizjgr/jgqvjg6bjgq0NCivjgqLjg7Pjg4njgqYs44OA44Kk44K0DQor44Ki44Oz44OJ44KmLOOCt+ODs+OCtA0KK+OCouODs+OCtuOCpCzjg57jgrXjg5Ljg4cNCivjgqLjgqrjgq0s44Oe44K144OI44K3DQor44Ki44Kq44KtLOOCouOCreODleODnw0KK+OCouOCquODpOOCrizjgqLjg4Tjg4gNCivjgqLjgqrjg6Tjg54s44Om44Km44KzDQor44Ki44Op44KkLOODnuOCteOCtw0KK+OCouODqeOCpCzjg4jjg6Ljg4rjg6oNCivjgqLjg6njgq0s44OI44K344Of44OEDQor44Ki44Op44OkLOODkuODreOCouOCrQ0KK+OCouODquODnizjgrfjg7PjgqTjg4ENCivjgqLjg6rjgr/jgrEs44K744Kk44K4DQor44Ki44K144OALOOCv+OCseOCqg0KK+OCouOCteODkizjg6bjgqbjgrgNCivjgqLjgrXjg44s44K444Ol44Oz44KzDQor44Ki44K344OALOOCteODiOOCtw0KK+OCouOCt+OCq+ODryzjgrXjg4jjgrcNCivjg5Djg5As44Ok44K544Om44KtDQor44OQ44OQLOOCv+OCq+ODj+ODqw0KK+ODkOODkCzjgrHjg7PjgrgNCivjg4Hjg5As44K444Ol44Oz44KzDQor44K044OI44KmLOODnuOCteODkuOCsw0KK+ODgeODp+OCpizjgqjjgqTjgrgNCivjg4DjgqTjg4ks44Om44Km44KzDQor44OJ44Ki44KkLOOCs+OCpuOCuA0KK+ODieOCpCzjg4jjg6Ljg5Ljg60NCivjg5vjgr3jgqQs44K/44Kv44K4DQor44OJ44KkLOOCpOOCteOCqg0KK+ODieOCpCzjgrHjg7PjgqTjg4ENCivjgqjjgqzjgrfjg6ks44OS44OH44K/44KrDQor44Ko44Kw44OBLOODpOOCueODkuODrQ0KK+OCqOODkOODqSzjg4Tjg4jjg6ANCivjgqjjg7Pjg4ks44K344Oz44Kk44OBDQor44Ko44Oz44OJLOOCteODiOOCtw0KK+OCouODnuODqizjgrHjg7PjgrgNCivjgqjjg47jg6Ljg4gs44Kt44Oo44OfDQor44Ko44OO44Oi44OILOODnuOCteODnw0KK+OCqOODjuODouODiCzjgqLjgq3jg6kNCivjgqjjg47jg6Ljg4gs44OB44Kr44OpDQor44Ko44K244KtLOOCq+OCuuODkuODiA0KK+ODleOCuOODj+ODqSzjg57jgrXjg4/jg6sNCivjg5XjgrjjgqQs44K/44Kr44K3DQor44OV44K444KkLOOCteODhOOCrQ0KK+ODkuODq+OCq+ODryzjgrHjg7MNCivjg5XjgrjjgqQs44Oe44K144OS44KzDQor44OV44K444K144OvLOODj+ODq+ODnw0KK+ODleOCuOOCteODryzjg5Ljg63jg6bjgq0NCivjg5LjgrQs44Kr44OE44Om44KtDQor44OV44K444K/LOODhOODqOOCtw0KK+ODleOCuOOCvyzjgr/jgqvjgrcNCivjg5Xjgrjjg6/jg6ks44OI44Kq44OrDQor44OV44Kr44OfLOODpOOCueODpuOCrQ0KK+ODleOCq+OCtuODryzjgr/jgrHjgrcNCivjg4/jgrvjgqzjg68s44Oo44Km44K544KxDQor44OV44Kv44OALOOCuOODpeODs+OCsw0KK+ODleOCr+ODouODiCzjg5/jg4TjgqoNCivjg5Xjgq/jg6Djg60s44K/44Kr44K3DQor44OV44Kv44OtLOODpOOCueOCsw0KK+ODleOCr+OCtyzjg5Ljg63jg58NCivjg5Xjgq/jgrfjg54s44K/44Kr44OfDQor44OV44Kv44K344OeLOOCt+ODs+OCpOODgQ0KK+ODj+OCruODr+ODqSzjg4jjgrfjgqoNCivjg5Xjgq/jgrfjg54s44Ki44Kt44OpDQor44OV44OK44KtLOODiuOCquOCrQ0KK+ODleODiuOCr+ODnCzjg5Xjg5/jgqoNCivjg4/jg6njg4As44Of44OO44OrDQor44OV44Or44OP44K/LOODouODiOODleODnw0KK+ODleODq+OCq+ODryzjg57jg4HjgrMNCivjg5Xjg6vjg6Ljg4gs44K/44Kr44K3DQor44OV44Or44OkLOODiOODouODpA0KK+ODleOCt+ODnyzjg5Ljg63jg58NCivjgrTjgqbjg4As44Of44Kt44KqDQor44Kk44Oq44KoLOOCt+ODs+OCuA0KK+OCpOOCt+ODj+ODqSzjgqLjgq3jg6kNCivjgqTjg4Hjgqvjg68s44Oe44K144Om44KtDQor44Kk44OQLOODnuODnw0KK+OCpOODr+OCteOCrSzjgrXjgqjjgrMNCivjgqTjg47jgqbjgqgs44Ki44Ok44KzDQor44Kk44Kk44Oi44OqLOODnuOCteODkuODrQ0KK+OCpOODj+ODqSzjgrvjgqTjgrgNCivjgqTjg6/jg6Djg6ks44K344On44Km44K/DQor44Kk44OK44Ks44KtLOODpuOCreOCqg0KK+OCpOOCt+OCuOODnizjgqvjgrrjg5Ljg60NCivjgqTjg4jjgqYs44K344Ot44KmDQor44K044Oz44OJ44KmLOOCt+ODpeOCpuOCuA0KK+OCtOODiOOCpizjgrnjg5/jg6wNCivjgqTjgrfjgqvjg68s44Oe44K144OS44KzDQor44Kk44OI44KmLOODnuOCteODjuODlg0KK+OCpOOCu+OCrSzjg6rjgrMNCivjgrTjg4jjgqYs44OS44Ot44Om44KtDQor44OP44OALOODkuODh+OCouOCrQ0KK+ODj+OCruODr+ODqSzjg5/jg6/jgrMNCivjg4/jgq7jg6/jg6ks44OI44Oi44KzDQor44OP44Kk44K444OeLOOCouOCpOOCsw0KK+ODj+ODnuODgCzjg5Ljg63jgrcNCivjg4/jg57jg44s44OS44Ot44OE44KwDQor44OP44Oe44Kq44KrLOOCs+OCueOCsQ0KK+ODj+ODiuODiSzjg5/jg47jg6sNCivjg4/jg4rjgr8s44OG44OE44OkDQor44OP44OpLOODiOODouODkuOCsw0KK+ODj+ODqSzjg6bjgqbjgrgNCivjg4/jg6ks44K/44Kx44K3DQor44OP44OpLOOCreODp+OCpuOCsw0KK+ODj+ODqeODgCzjgrfjg7MNCivjg4/jg6njg4As44K/44Kx44K3DQor44OP44Op44OALOOCouOCreODkuODiA0KK+OCueOCuuOCrSzjgr/jgrHjg60NCivjg4/jg6njgqws44K/44OE44OkDQor44OP44Op44OfLOOCseODs+OCv+ODreOCpg0KK+ODj+ODqeODpOODnizjg47jg5bjg5LjgrMNCivjg4/jg6njgr7jg44s44OO44OW44OS44OtDQor44OP44K744OZLOOCv+OCr+OCuA0KK+OCq+ODjeOCsyzjg4jjg6LjgqLjgq0NCivjg4Tjg4Hjg4As44Oo44Km44Kk44OBDQor44OP44K344Oi44OILOODquOCqA0KK+ODj+OCt+ODouODiCzjg5Xjg5/jg5Ljg60NCivjg4/jgrfjg6Ljg4gs44Kr44OK44KoDQor44OP44K344Oi44OILOOCteODiOOCtw0KK+ODj+OCt+ODouODiCzjgr/jgqvjgqLjgq0NCivjg4/jgrfjg6Ljg4gs44OS44OH44KtDQor44OP44K344Oi44OILOODkuODh+OCrQ0KK+ODj+OCt+ODouODiCzjg6jjgrfjg5LjgrMNCivjg4/jgr8s44Kx44Kk44KzDQor44OP44OD44OI44OqLOODkuODh+OCouOCrQ0KK+ODj+ODg+ODiOODqizjg57jgrPjg4gNCivjg4/jg4Pjg4jjg6os44K744Kk44K4DQor44OP44Ok44Kr44OvLOOCreODqOOCtw0KK+ODj+ODpOOCq+ODryzjg5Ljg4fjg4/jg6sNCivjg4/jg6TjgrXjgqss44Oo44K344Kr44K6DQor44OP44Ok44K144KtLOOCu+OCpOOCtA0KK+ODj+ODpOOCtyzjg4jjgrfjg5LjgrMNCivjg4/jg6Tjgrcs44K/44Kr44Oo44K3DQor44OP44Ok44K3LOOCv+OCq+ODiuODqg0KK+ODj+ODpOOCtyzjg6Tjgrnjgq0NCivjg4/jg6Tjgrcs44Ki44Kt44OpDQor44OP44Ok44K344OALOOCseODs+OCvuOCpg0KK+ODkuODkyzjgqvjgrrjg47jg5YNCivjg5Ljgqzjgrcs44Ok44K544OS44OtDQor44OS44Ks44K3LOOCq+OCuuOCqg0KK+ODkuOCsOODgSzjgrPjgqbjgqTjg4Hjg63jgqYNCivjg5Ljgrjjgqvjgr8s44Kx44Oz44K4DQor44OS44K444OkLOODqOOCt+OCqg0KK+ODkuODiuOCrCzjgr/jgrHjgrcNCivjg5Ljg6njgqvjg68s44OS44OH44Ki44KtDQor44OS44Op44OOLOODkuODreOCsw0KK+ODkuODqeODjizjgqTjgr/jg6sNCivjg5Ljg6njg44s44K/44OA44KqDQor44OS44Op44KqLOOCv+OCq+ODkuODiA0KK+ODkuODqeOCt+ODnizjg4rjgqrjgq0NCivjg5Ljg6njg6Tjg54s44OI44K344Ot44KmDQor44OS44Op44Ok44K5LOODkuODiOOCtw0KK+ODkuODquOCrSzjgrHjg7PjgqTjg4Hjg60NCivjg5Ljg63jg57jgrUs44Ov44K/44OrDQor44OS44Ot44Oi44OILOOCt+ODs+OCuA0KK+ODkuODreOCquOCqyzjg57jg4rjg5YNCivjg5Ljg63jgrss44Om44Of44KzDQor44OS44Ot44K7LOODnuODhOOCv+ODreOCpg0KK+OCpuODoeODgCzjg6rjg6fjgqbjgqTjg4ENCivjg5vjg7Pjg4As44K144OK44KoDQor44Ob44Oz44OJLOOCv+OCseOCtw0KK+ODm+ODquODouODiCzjg6Tjgrnjg6bjgq0NCivjg5vjg6rjg44s44Kr44K644K344KyDQor44Ob44Oq44Km44OBLOOCv+OCq+ODjQ0KK+ODm+OCteOCqyzjgqLjgq3jgrMNCivjg5vjgrfjg44s44Oe44Kz44OIDQor44Ob44K344Ok44OeLOODn+OCruODleODnw0KK+ODm+OCveOCq+ODryzjg4bjg4Tjg6QNCivjg5vjgr3jgqvjg68s44Oo44K344OS44OtDQor44Ob44K944Kr44OvLOOCt+OCsuOCqg0KK+ODm+OCveODpCzjg5Ljg63jgrcNCivjgqTjg5Djg6njgq0s44OO44OW44KqDQor44Kk44OB44OP44OpLOODkuOCteODn+ODhA0KK+OCpOODgeODj+ODqSzjgr/jgqvjgrcNCivjgqTjg4Hjg4/jg6ks44OO44OW44KzDQor44Kk44OB44Kr44OvLOOCseODs+OCpOODgQ0KK+OCpOODgeODjuOCuyzjgrXjg4jjgrcNCivjgqTjg4As44K/44Kx44K3DQor44Kk44OH44Kw44OBLOOCq+OCuuODkuODiA0KK+OCpOODiSzjg57jgrXjgrcNCivjgqTjgqzjg6njgrcs44Kr44OE44OO44OWDQor44Kk44Ks44Op44K3LOODpuOCreODkuOCsw0KK+OCpOOCrOODqeOCtyzjg5Ljg63jgrcNCivjgqTjgqTjg4As44OS44Ot44KqDQor44Kk44Kk44OALOOCq+ODhOODiOOCtw0KK+OCpOOCpOOCuOODnizjgrPjgqbjgrgNCivjgqTjgrHjg4As44Oq44On44KmDQor44Kk44Kx44OALOODiOODouODnw0KK+OCpOOCseODgCzjg4jjg6Ljg58NCivjgqTjgrHjg4As44Oo44Km44KzDQor44Kk44Oe44KkLOOCs+OCpuOCrQ0KK+OCpOODnuOCpOOCuuODnyzjgrHjgqTjgrMNCivjgqTjg57jgqTjgrrjg58s44Of44OvDQor44Kk44Oe44Og44OpLOOCquOCteODoA0KK+OCpOODnuODoOODqSzjg5/jg47jg6sNCivjgqTjg6Ljg7Ms44Kr44K644Om44KtDQor44Kk44OK44OALOODnuOCueODnw0KK+OCpOODiuOCrOOCrSzjgqvjgrrjg6QNCivjgqTjg4rjgqzjgq0s44Of44OE44OkDQor44Kk44OK44Og44OpLOOCv+OCq+OCtw0KK+OCpOODiuODoOODqSzjg4jjg6Ljg47jg6oNCivjgqTjg44s44K744Kk44Kk44OB44Ot44KmDQor44Kk44OO44Kr44OvLOOCouOCueOCsw0KK+OCpOODjuODnuOCvyzjgqvjgrrjg5Ljg4gNCivjgqTjg47jgqbjgqgs44OS44Ot44Kr44K6DQor44Kk44OO44Km44KoLOOCteODiOOCtw0KK+OCpOODjuOCpuOCqCzjgrfjg5sNCivjgqTjg47jgqbjgqgs44Ok44K544OS44OtDQor44Kk44OO44Km44KoLOODpuOCpuOCuA0KK+OCpOODjuOCpuOCqCzjg6bjgqbjgr8NCivjgqTjg47jgqbjgqgs44Kz44Km44Kk44OB44Ot44KmDQor44Kk44OM44KkLOOCt+ODs+OCpOODgeODreOCpg0KK+OCpOODjOOCt+ODnizjg57jg6bjg58NCivjgqTjg6rjgqgs44Oe44K144OO44OqDQor44Kk44K144KrLOOCt+OCsuODqw0KK+OCpOOCt+ODkCzjg4Hjg5Ljg60NCivjgqTjgrfjg5Djgrcs44OA44Kk44K544KxDQor44Kk44K344OQ44K3LOODkuODh+OCrQ0KK+OCpOOCt+ODgCzjg5Ljg63jg5/jg4QNCivjgqTjgrfjg4As44OS44Ot44K3DQor44Kk44K344OALOOCq+ODhOODkuODrQ0KK+OCpOOCt+ODgCzjgrHjgqTjgqTjg4ENCivjgqTjgrfjgqzjg58s44Kz44Km44Kk44OBDQor44Kk44K344Kw44OtLOOCs+OCpuOCuA0KK+OCpOOCt+ODj+ODqSzjg57jg6rjgrMNCivjgqTjgrfjgqQs44Oe44K144OS44OtDQor44Kk44K344KkLOODiuOCquODnw0KK+OCpOOCt+OCpCzjg47jg5zjg6sNCivjgqTjgrfjgqQs44K744OE44KzDQor44Kk44K344KkLOOCv+ODgOOCtw0KK+OCpOOCt+OCpCzjgr/jgqvjg4/jg6sNCivjgqTjgrfjgqvjg68s44OI44K344KqDQor44Kk44K344Oe44OrLOODhOODqOOCtw0KK+OCq+ODr+OCuizjg6jjgqbjgqTjg4ENCivjgqTjgrfjgrrjgqss44Om44Kt44KqDQor44Kk44K/44OkLOODjuODquODkuOCtQ0KK+OCpOOCpOODgCzjgqLjgq3jg5Ljg60NCivjgqTjg4jjgqYs44OS44Ot44Of44OBDQor44Kk44OI44KmLOODkuODreOCtw0KK+OCpOODiOOCpizjgqTjgq/jgqoNCivjgqTjg4jjgqYs44Kr44K644OkDQor44Kk44OI44KmLOOCt+ODp+OCpuOCsw0KK+OCpOODiOOCpizjgqvjgrrjg5Ljg60NCivjgqTjg4jjgqYs44K444Ol44OzDQor44Kk44OI44KmLOODnuOCs+ODiA0KK+OCpOODiOOCpizjgqrjgrXjg6ANCivjgqTjg4jjgqYs44Oo44K344Oe44K1DQor44Kk44OI44KmLOODnuOCteODpuOCrQ0KK+OCpOODiOOCpizjg57jgrXjg58NCivjgqTjg4jjgqYs44OS44Ot44Ki44KtDQor44Kk44OI44KmLOOCv+ODnuOCrQ0KK+OCpOODiOOCpizjgq3jg6jjgr/jgqsNCivjgqTjg4jjgqYs44Oe44K144OV44OfDQor44Kk44OI44KmLOODkuODreOCq+OCug0KK+OCpOODiOOCpizjg6bjgq3jgqoNCivjgqTjg4jjgqYs44Ko44Kk44K4DQor44Kk44OI44KmLOODn+ODm+OCsw0KK+OCpOODr+OCpCzjgr/jgqvjg6bjgq0NCivjgqTjg6/jgqQs44Kr44K644K344KyDQor44Kk44Ov44OfLOOCreODqOOCtw0KK+OCpOODr+ODoOODqSzjg6jjgrfjgr/jgqsNCivjgqTjg6/jg4rjgqws44OK44Kq44KzDQor44Kk44Ov44KqLOOCq+OCuuOCouOCrQ0KK+OCpOODr+OCteOCrSzjg6rjg6XjgqbjgrMNCivjgqTjg6/jgr8s44Kt44Oo44KzDQor44Kk44Ov44K/LOODn+ODhOODkuODrQ0KK+OCpOODr+OCvyzjgrfjg7PjgrgNCivjgqTjgrrjg58s44OO44K+44OgDQor44K444Oz44OQLOODhOODjeODjuODqg0KK+ODjuOCpuODgSzjg6rjgqgNCivjg6njgq8s44Oo44K344OO44OqDQor44Kr44Ks44OfLOODkuODreOCtw0KK+OCq+OCrOODryzjgrHjgqTjgr8NCivjgqvjgrLjg6Tjg54s44K/44Oe44KtDQor44Kr44KkLOOCuOODpeODsw0KK+OCq+OCuOODouODiCzjgr/jgq/jg6QNCivjgqvjgrjjg6/jg6ks44K744Kk44K4DQor44Kv44Oq44OP44OpLOOCqOOCpOOCuA0KK+OCq+OCreODoOODqSzjgrjjg6Xjg7MNCivjgqvjgq3jg47jgq0s44K/44Kr44Ki44KtDQor44Kr44Kt44Km44OBLOODkuODreODpuOCrQ0KK+OCq+OCreOCtuOCrSzjgrPjgqbjgrgNCivjgqvjgrMs44OI44K344OS44KzDQor44Kr44Oh44K344OeLOODgOOCpOOCueOCsQ0KK+OCq+ODn+OCqOOCuSzjgqjjgqTjgqTjg4ENCivjgqvjg5/jgq/jg6ks44OS44Ot44K3DQor44Kr44Of44Og44OpLOOCs+OCpuOCpOODgeODreOCpg0KK+OCq+ODn+OCv+OCrSzjg57jgrXjgrgNCivjgqvjg5/jg6jjgrfjgqvjg68s44Oe44K144Om44KtDQor44Kr44OzLOOCv+OCr+ODpA0KK+OCq+ODiuOCpCzjg4jjgrfjgqvjgroNCivjgqvjg7Pjg5Djg6Tjgrcs44Kk44OB44Ot44KmDQor44Kr44Oz44OALOODqOOCt+ODkuODiA0KK+OCq+ODjeOCsyzjgr/jgqvjg6bjgq0NCivjgqvjg43jgrMs44Ok44K544Om44KtDQor44Kr44ON44K/LOOCv+OCq+OCtw0KK+OCq+ODjuOCpizjg57jg6bjg58NCivjgqvjg6rjg44s44OS44Ot44K3DQor44Kr44K144OfLOOCq+ODiuOCqA0KK+OCq+OCteODiuODnyzjgr/jgqvjg4gNCivjgqvjgrss44Oe44Oi44OrDQor44Kr44K544KsLOODkuODreOCtw0KK+OCq+OCueODpCzjg57jgrXjg4rjg6oNCivjgqvjgr/jgqrjgqss44OO44Oq44KzDQor44Kr44OI44KmLOODiuOCquOCsw0KK+OCq+ODiOOCpizjg5Ljg63jgrcNCivjgqvjg4jjgqYs44Oe44K144Om44KtDQor44Kr44OI44KmLOODjuODquOCouOCrQ0KK+OCq+ODiOOCpizjgr/jg4DjgqLjgq0NCivjgqvjg4jjgqYs44Kx44Oz44K4DQor44Kr44OI44KmLOOCseODs+OCuA0KK+OCq+ODiOOCpizjgr/jgqvjg6bjgq0NCivjgqvjg4jjgqYs44Ki44Kt44OS44OIDQor44Kr44OI44KmLOOCuOODreOCpg0KK+OCq+ODhOODnuOCvyzjgq/jg58NCivjgqvjg4Tjg6ks44Oe44K144KtDQor44Kr44Ov44OZLOODqOOCt+ODpuOCrQ0KK+OCq+ODr+ODgCzjgr/jgrHjgrcNCivjgqvjg6/jgrDjg4Es44OS44OH44KtDQor44K144Kk44OI44KmLOODkuODh+OCv+OCqw0KK+OCq+ODr+OCsOODgSzjgqTjgq/jgrMNCivjgqvjg6/jg4/jgr8s44Kr44Kq44OqDQor44Kr44Ov44Kr44OfLOOCq+OCuuODqOOCtw0KK+OCq+ODr+OCq+ODnyzjgrHjg7PjgqTjg4ENCivjg6Tjgrjjg54s44Of44OE44OoDQor44Kr44Ov44Oi44OILOODhOODqOOCtw0KK+OCq+ODr+ODoOODqSzjg5Ljg4fjgqLjgq0NCivjgqvjg6/jg6Djg6ks44OS44Ot44K3DQor44Kr44Ov44Og44OpLOOCuOODpeODs+OCpOODgQ0KK+OCq+ODr+ODoOODqSzjg57jg6oNCivjgqvjg6/jg44s44Oe44K144OS44KzDQor44Kr44Ov44OOLOODnuOCteOCq+ODhA0KK+OCq+ODr+OCteOCrSzjgrfjgrLjg6bjgq0NCivjgqvjg6/jgrss44Kx44Oz44K4DQor44Kr44Ov44K344OeLOODiOOCt+ODpA0KK+OCq+ODr+OCt+ODnizjg6jjgrfjg4/jg6sNCivjgqvjg6/jgrfjg54s44OS44OH44KtDQor44Kr44Ov44K344OeLOODpOOCueODjuODlg0KK+OCreODgCzjg5/jg47jg6sNCivjgq3jgq/jg4Es44Kr44K644OkDQor44Kt44Kv44OBLOOCv+OCq+ODkuODhw0KK+ODpOODnuODouODiCzjg6Tjgrnjg5Ljg60NCivjgqLjgq3jg6jjgrcs44Ok44K544OS44OtDQor44Kt44Kv44OBLOODnuODouODqw0KK+OCreOCr+ODgSzjgr/jg4Tjg6QNCivjgq3jgq/jg4Es44Of44OE44OrDQor44Kt44Kv44OBLOOCouOCreOCsw0KK+OCreODoOODqSzjg5Xjg5/jg5LjgrMNCivjgq3jg6Djg6ks44Oe44K144OS44KzDQor44Kt44Og44OpLOOCouOCreODkuOCsw0KK+OCreODoOODqSzjgqLjg4TjgrcNCivjgq3jg6Djg6ks44OS44Ot44K3DQor44Kt44Og44OpLOODnuOCteOCrQ0KK+OCreODoOODqSzjg5/jg47jg6sNCivjgqvjg4jjgqYs44K344On44Km44K4DQor44Kt44OK44K7LOODpuOCpuOCuA0KK+OCreODjSzjg57jgrXjgrMNCivjgq3jg44s44Ki44KtDQor44Kt44OOLOOCq+OCuuODkuODrQ0KK+OCreODjuOCt+OCvyzjgrHjgqTjgr8NCivjgq3jg6ks44Oo44Km44KzDQor44Kt44K344Oi44OILOODiOOCquODqw0KK+OCreOCv+ODkOOCv+OCsSzjgqLjgq3jgqoNCivjgq3jgr/jg5Djgr/jgrEs44K/44Kr44OS44KzDQor44Kt44K/44Ks44OvLOOCquOCteODoA0KK+OCreOCv+OCrOODryzjg4HjgqvjgrMNCivjgq3jgr/jg6Djg6ks44OS44Ot44Ki44KtDQor44K/44Kr44OP44K3LOODoeOCsOODnw0KK+OCreOCv+ODpOODnizjgqjjgqTjgrgNCivjgq3jg6jjg4rjg6os44OS44Ot44K3DQor44Kz44OQ44Ok44K3LOOCreODqOOCtw0KK+OCs+ODkOODpOOCtyzjg4jjgrfjg5Ljg60NCivjgrPjg5Djg6Tjgrcs44Ki44Kt44KzDQor44Kz44OQ44Ok44K3LOOCv+OCq+OCtw0KK+OCs+ODkOODpOOCtyzjg5Ljg63jgrcNCivjgrPjg5Djg6Tjgrcs44OS44Ot44Ki44KtDQor44Kz44OQ44Ok44K3LOODiuOCquOCrQ0KK+OCpOODiOOCpizjgrfjg7PjgrgNCivjgrPjg7Pjg44s44Oo44Km44Kk44OBDQor44Kz44Oz44OOLOOCv+OCq+ODn+ODhA0KK+OCs+ODs+ODjizjg5Ljg63jgrcNCivjgrPjg7Pjg44s44Kr44K644Ki44KtDQor44Kz44Kk44KxLOODiOODouODleODnw0KK+OCs+OCuOODnizjg6/jgr/jg6sNCivjgrPjgq/jgrfjg6fjgqYs44Oe44K144OrDQor44Kz44Oe44KtLOOCq+OCuuODpA0KK+ODnuOCq+ODmSzjgrXjg5bjg63jgqYNCivjgrPjg57jg4Qs44K/44Kx44K3DQor44Kz44Oe44OELOODkuODreOCqA0KK+OCs+ODs+ODiSzjgrfjg7MNCivjgrPjg7Pjg4ks44K/44Kv44OfDQor44Kz44Oz44OJLOODnuOCteODpuOCrQ0KK+OCs+OCt+ODkCzjg5/jgq0NCivjg6jjgrPjgqgs44Ok44K544OO44OqDQor44Kz44OG44Ks44OvLOODnuOCteODjuODqg0KK+OCs+ODs+ODjizjgqvjgrrjgqLjgq0NCivjgrPjg6Tjg54s44Os44Kk44KzDQor44Kz44Ok44OeLOODouODiOOCr+ODiw0KK+OCs+ODpOODnizjg5Ljg63jgr/jgqsNCivjgrPjgrbjgrks44OI44K344OO44OqDQor44Kv44OB44Kk44K3LOOCq+OCuuODiOOCtw0KK+OCr+OCruODn+ODpCzjg6rjg6XjgqbjgrnjgrENCivjgq/jgrjjg6njgqQs44Ki44OE44K3DQor44Kv44Oe44OO44Of44OJLOODkuODreOCtw0KK+OCr+ODnuOCtuOCrSzjg4jjg6Ljgq0NCivjgq/jg6zjg57jg4Qs44K/44Kr44OS44OHDQor44Kv44Oq44KtLOODnuOCteODpuOCrQ0KK+OCr+ODquODpOODnizjg4jjgrfjg63jgqYNCivjgq/jg6rjg6Tjg54s44OS44Ot44K3DQor44Kv44Ot44OZLOODiuOCquODiA0KK+OCr+ODreOCteODryzjg4jjg6LjgqLjgq0NCivjgq/jg63jgrXjg68s44Ok44K544Om44KtDQor44Kv44Oq44Ol44KmLOODqOOCt+OCqA0KK+OCr+OCteODjizjgqvjg4Tjg6bjgq0NCivjgq/jg6/jg4/jg6ks44K444Ol44OzDQor44Kv44K644OOLOODqOOCt+OCv+OCqw0KK+OCreODpeOCpuODgCzjgr/jgq/jg6QNCivjg57jg5bjg4Es44Kx44Oz44Kk44OBDQor44Oe44OB44K/LOODnuOCteOCrQ0KK+ODnuOCqOODgCzjg6jjgqbjgqTjg4ENCivjg57jgqjjgqTjgqgs44Ki44Kt44OV44OfDQor44Oe44Ko44Kr44OvLOODgeOCouOCrQ0KK+ODnuODnuODgCzjg5Ljg63jgrcNCivjg57jg4rjg5ks44OS44Ot44K/44KrDQor44Oe44OK44OZLOOCq+OCuuOCqg0KK+ODnuODq+OCpOODgSzjg57jgrXjg6bjgq0NCivjg57jg6vjgr/jg4ss44K/44Kr44OS44OHDQor44Oe44Or44Ok44OeLOOCv+OCq+OCsw0KK+ODnuOCteOCquOCqyzjgr/jgqvjg6bjgq0NCivjg57jgrnjg4As44K/44OE44OfDQor44Oe44K544OALOODhOODqOOCtw0KK+ODnuOCueODgCzjg6jjgrfjg5bjg58NCivjg57jgrnjg4As44Om44Kt44KzDQor44Oe44K544OALOODkuODreOCq+OCug0KK+ODnuODhOODkOODqSzjgrPjgqbjgr7jgqYNCivjg57jg4Tjg4As44Kr44OE44OkDQor44Oe44OE44OALOODkuODreODpuOCrQ0KK+ODnuODhOODgOOCpOODqSzjg4jjgrfjg5Xjg58NCivjg57jg4Tjgqjjg4As44Ki44Om44OfDQor44Oe44OE44KkLOODkuODh+OCtw0KK+ODnuODhOOCpCzjg5Ljg63jgq0NCivjg57jg4Tjg6Ljg4gs44OO44OW44KqDQor44Oe44OE44Oi44OILOOCu+OCpOOCpOODgQ0KK+ODnuODhOODouODiCzjgqvjgrrjg5Ljg60NCivjg57jg4Tjg6Ljg4gs44Kt44Oo44Kr44K6DQor44Oe44OE44Oi44OILOOCreODp+OCpuOCsw0KK+ODnuODhOODouODiCzjg6jjgrfjgq0NCivjg57jg4Tjg6Ljg4gs44OK44Oq44Ki44KtDQor44Oe44OE44Oi44OILOOCouOCreODjuODqg0KK+ODnuODhOODouODiCzjgrHjg7MNCivjg57jg4Tjg6Ljg4gs44OI44K344Kr44K6DQor44Oe44OE44Oi44OILOOCseODsw0KK+ODnuODhOODouODiCzjg4DjgqQNCivjg4rjgqvjg6Djg6ks44OS44Ot44Om44KtDQor44Oe44OE44Og44OpLOOCr+ODnw0KK+ODnuODhOODiuOCrCzjgrHjg7Pjgrjjg63jgqYNCivjg57jg4Tjg44s44Kr44K644OIDQor44Oe44OE44KqLOODquODpeOCpuOCpOODgQ0KK+ODnuODhOOCqizjgr/jgqvjgqoNCivjg57jg4Tjgqrjgqss44K/44Kx44K3DQor44Oe44OE44Kq44KrLOOCq+OCuuODjuODqg0KK+ODnuODhOOCquOCqyzjgr/jg4DjgqLjgq0NCivjg57jg4Tjgqrjgqss44OS44Ot44K3DQor44Oe44OE44Kq44KrLOOCouODhOOCtw0KK+ODnuODhOOCt+ODnizjgq3jg5/jgqoNCivjg57jg4Tjgr/jg4ss44Ki44OkDQor44Oe44OE44Ok44OeLOOCs+OCpuOCv+ODreOCpg0KK+ODn+ODgeODouODiCzjg57jg6bjg58NCivjg5/jgqjjgq0s44K/44Kv44Ot44KmDQor44Of44Kr44OfLOOCq+OCuuODnw0KK+ODn+OCq+ODnyzjg6jjgrfjgr/jgqsNCivjg5/jg4rjgqzjg68s44OE44Oo44K3DQor44Of44OK44Kr44OvLOOCt+ODp+OCpuOCsw0KK+ODn+OCt+ODnizjgqvjgrrjg58NCivjg5/jgrfjg54s44K344OO44OWDQor44Of44K344OeLOODkuODreOCouOCrQ0KK+ODn+OCv+ODgSzjgrPjgqbjgrgNCivjg5/jg4Tjg4As44OK44Kq44KtDQor44Of44OE44OP44K3LOOCuOODpeODsw0KK+ODn+ODhOOCpCzjg5Ljg63jgrcNCivjg5/jg4Tjg6Ljg4gs44Kt44Oo44OfDQor44Of44Km44OpLOOCreODp+OCpuOCuA0KK+ODn+OCpuODqSzjg57jgrXjg5Ljg60NCivjg5/jg6Tjg5ks44Ki44Kt44OpDQor44Of44Ok44OBLOODnuOCteODpuOCrQ0KK+ODn+ODpOOCuOODnizjgqLjgq3jg47jg6oNCivjg5Djg7Ms44Oe44OK44OWDQor44Of44Ok44Oi44OILOODiOOCt+OCouOCrQ0KK+ODqOOCs+OCqCzjgrPjgqbjgr7jgqYNCivjg5/jg6TjgrXjgqss44Kx44Kk44Kk44OBDQor44Of44Ok44K/LOODkuODreODpuOCrQ0KK+ODn+ODpOOCvyzjgqvjgrrjgqoNCivjg5/jg6Tjgqbjg4Es44Oe44K144OS44OtDQor44Km44OB44Ok44OeLOODn+OCreOCsw0KK+OCteOCq+OCpCzjg6rjg6fjgqbjgrnjgrENCivjg5/jg6Tjgrbjg68s44OI44K344Ki44KtDQor44Of44K+44OW44OBLOOCqOOCpOOCsw0KK+ODn+OCvuOCsOODgSzjgqLjgq3jg6kNCivjg5/jgr7jgrDjg4Es44Kk44K644OfDQor44Of44K644Oi44OILOOCouODhOODkuOCsw0KK+ODn+OCuuODjizjg57jgrXjg6jjgrcNCivjg5/jgrrjg44s44Oe44K144Om44KtDQor44Of44K644OOLOODpuOCpuOCuA0KK+ODn+OCuuOCt+ODnizjg6bjgq3jgqoNCivjg5/jgrrjgr8s44Om44K/44KrDQor44Of44K644K/44OLLOODkuOCteODiA0KK+ODouOCrizjgqvjgrrjg47jg6oNCivjg6Ljgq4s44Oi44Om44OrDQor44Oi44KuLOODkuODreOCtw0KK+ODouODouOCuyzjg4DjgqTjgrnjgrENCivjg6Ljg7Pjg54s44Om44Km44K4DQor44Oi44OqLOODrOOCpOOCsw0KK+ODouODqizjgrHjgqTjgrnjgrENCivjg6Ljg6os44Kx44Oz44Kk44OBDQor44Oi44OqLOODnuOCteODkuODrQ0KK+ODouODqizjg6rjgqsNCivjg6Ljg6os44OE44OI44OgDQor44Oi44Oq44Oi44OILOODpuOCreODkuODrQ0KK+ODouODquODjizjg6jjgqbjgrnjgrENCivjg6jjgrfjg4As44OK44Kq44OV44OfDQor44Oi44Oq44K/LOODkuODh+ODjuODlg0KK+ODouODquOCvyzjgqvjgrrjg5LjgrUNCivjg6Ljg6rjgr8s44Kr44OE44OfDQor44Oi44Oq44K/LOODqOOCt+ODpA0KK+ODouODquOCvyzjgrfjgrLjgqoNCivjg6Ljg6rjg6/jgq0s44K/44Kv44KqDQor44Oi44OtLOODqOOCt+ODreOCpg0KK+ODouOCv+OCpCzjg5Ljg63jgrcNCivjg6Ljg4jjg5Djg6Tjgrcs44K144OI44OrDQor44Oi44OI44OP44K3LOOCt+OCsuODnuOCtQ0KK+ODouODiOODpOODnizjg57jgrXjg47jg6oNCivjg6Ljg4jjgrbjg68s44Om44Km44K4DQor44Og44Kr44OvLOOCpOODhOOCsw0KK+ODoOODiuOCq+OCvyzjg5Xjg5/jgrMNCivjg6Djg6njgqvjg58s44OS44Ot44Ki44KtDQor44Og44Op44Kr44OfLOODqOOCt+OCrQ0KK+ODoOODqeOCq+ODnyzjg5Ljg63jg6bjgq0NCivjg6Djg6njgqvjg58s44Ok44K544KzDQor44Og44Op44Kr44OfLOOCouOCreODkuOCtQ0KK+ODoOODqeOCq+ODryzjg57jgrXjgrMNCivjg6Djg6njg4rjgqss44Oe44Om44KzDQor44Og44Op44K/LOODiOODouODjuODqg0KK+ODoOODqeOCvyzjg5Ljg63jgq0NCivjg6Djg6njg6Tjg54s44Kx44Oz44K4DQor44Og44Op44Ok44OeLOODkuODreOCtw0KK+ODoOODreODj+OCtyzjgrPjgqbjgrgNCivjg6Djg4jjgqYs44Kr44Kq44OrDQor44Og44OI44KmLOOCouOCreOCsw0KK+ODiuODkCzjg5Ljg63jg6bjgq0NCivjg4rjgqzjgqQs44Oe44K144OrDQor44OK44Ks44KkLOODiuOCquOCouOCrQ0KK+ODiuOCrOODjizjgqvjg4Tjg6QNCivjg4rjgqzjg44s44K/44Oe44OfDQor44OK44Ks44KqLOODpOOCueODkuODrQ0KK+ODpOODnuODouODiCzjgqvjgrrjg5Ljg60NCivjg4rjgqzjgqrjgrEs44K144OI44K3DQor44OK44Ks44Kq44K1LOOCouOCreODkuODrQ0KK+ODiuOCrOOCt+ODnizjgqvjg4Tjg6QNCivjg4rjgqzjgrfjg54s44Kv44OfDQor44OK44Ks44K/LOODn+OCrQ0KK+OCquOCquODkCzjgrXjg4jjgrcNCivjg4rjgqzjgr8s44K344Oz44K4DQor44OK44Ks44K/LOOCt+ODp+OCpuODmOOCpA0KK+ODiuOCrOOCv+ODiyzjg4Tjg6jjgrcNCivjg4rjgqTjg4jjgqYs44Ok44K544OO44OqDQor44OK44Kr44OBLOODqOOCt+ODj+ODqw0KK+ODiuOCq+ODgCzjg6jjgrfjg6bjgq0NCivjg4rjgqvjg4DjgqQs44Om44Km44Kk44OBDQor44OK44Kr44Ks44OvLOODiuOCquODpuOCrQ0KK+ODiuOCq+OCrOODryzjg6jjgrfjg6bjgq0NCivjg4rjgqvjgqzjg68s44Ki44OE44K3DQor44OK44Kr44Ks44OvLOODkuODreODpuOCrQ0KK+ODiuOCq+ODj+ODqSzjgrjjg6Xjg7MNCivjg4rjgqvjgqQs44Kx44Kk44Kk44OBDQor44OK44Kr44KkLOOCt+ODjg0KK+ODiuOCq+OCuOODnizjgr/jgqvjgrcNCivjg4rjgqvjgrjjg54s44Kz44Km44K4DQor44OK44Kr44Og44OpLOOCt+ODpeOCpuOCtA0KK+ODiuOCq+ODoOODqSzjg57jgrXjg6bjgq0NCivjgq3jg5/jg5Ljg6ks44Of44KrDQor44Kk44OI44KmLOOCv+OCq+ODkuOCtQ0KK+ODiuOCq+ODoOODqSzjgrPjgqbjgrgNCivjg4rjgqvjg6Djg6ks44K/44OE44OkDQor44OK44Kr44Og44OpLOOCq+OCuuODpuOCrQ0KK+ODiuOCq+ODoOODqSzjg4/jgrjjg6ENCivjg4rjgqvjg6Djg6ks44Oe44K144Ki44KtDQor44OK44Kr44Og44OpLOODkuODreOCrQ0KK+ODiuOCq+ODoOODqSzjg5/jgq0NCivjg4rjgqvjg6Djg6ks44OI44Oi44KqDQor44OK44Kr44OL44K3LOOCpOOCuuODqw0KK+ODiuOCq+ODi+OCtyzjgr/jgqvjg5Ljg60NCivjg4rjgqvjg44s44Om44Km44KzDQor44OK44Kr44OOLOODpOOCueOCouOCrQ0KK+ODiuOCq+ODjizjg4bjg4Tjg6QNCivjg4rjgqvjg44s44Kr44K644OO44OqDQor44OK44Kr44OOLOOCouODhOOCtw0KK+ODiuOCq+OCqizjgqLjgq3jgrMNCivjg4rjgqvjgrXjgq8s44K344On44Km44K/44OEDQor44OK44Kr44K7LOODkuODreOCv+OCqw0KK+ODiuOCq+OCvyzjgq/jg6vjg58NCivjg4rjgqvjgr8s44OS44Ot44OfDQor44OK44Kr44K/LOODpOOCueODkuODrQ0KK+ODiuOCq+OCv+OCsSzjgr/jgq/jgqoNCivjg4rjgqvjg6Tjg54s44OV44Of44KqDQor44OK44Of44KtLOOCseOCpOOCtw0KK+ODiuODiuOCteODryzjg4rjg5/jgrgNCivjg4rjg7Pjg5As44OA44Kk44K544KxDQor44OK44Oz44Oi44KvLOOCqOODn+OCsw0KK+ODjeODouODiCzjg4rjg4TjgrMNCivjg43jg6Ljg4gs44Of44OE44Ki44KtDQor44OL44KkLOODqOOCt+OCsw0KK+ODi+OCpOODhyzjg5Ljg4fjg4TjgrANCivjg4vjgqTjgq/jg6ks44OS44OH44OkDQor44OL44Kk44K644OeLOOCv+OCpOODgeODreOCpg0KK+ODi+OCq+ODnyzjgqLjgq3jg6kNCivjg4vjgrfjg5Djg6Tjgrcs44Oe44K144OS44KzDQor44OL44K344OALOODqOOCt+ODpA0KK+ODi+OCt+ODj+ODqSzjgrfjgq3jgrMNCivjg4vjgrfjg4/jg6ks44K144OI44K3DQor44OL44K344Kr44OvLOOCv+OCq+ODkuODrQ0KK+ODi+OCt+OCq+OCvCzjgqvjgrrjg47jg6oNCivjg4vjgrfjg5/jg6Qs44K144OI44K3DQor44OL44K344Og44OpLOOCt+ODs+OCpOODgQ0KK+ODi+OCt+ODoOODqSzjgq3jg6/jg6ANCivjg4vjgrfjg6Tjg54s44OS44OI44K3DQor44OL44K344Ok44OeLOODouODiOOCouOCrQ0KK+ODi+ODg+OCvyzjgqvjg4TjgqLjgq0NCivjg4vjg68s44Kt44Oo44K3DQor44OI44Km44K044KmLOODnuODiuODlg0KK+ODi+ODryzjgqvjg4Tjg6QNCivjg47jg5bjg4/jg6ks44Kz44Km44K4DQor44Kq44Ks44OvLOODpuOCpuOCsw0KK+ODjuOCrOODnyzjgqrjgrXjg6ANCivjg47jgqzjg58s44K444Ol44Oz44Kk44OBDQor44OO44Oi44OILOODn+OCqw0KK+ODjuODoOODqSzjg57jg4rjg5YNCivjg47jg6Djg6ks44K/44Kr44OS44OtDQor44OO44K+44KoLOODj+OCuOODoQ0KK+ODjOODnuOCvyzjg4bjg4QNCivjgqrjg4Djgrjjg54s44Ko44OqDQor44Kq44Kq44Ks44Ko44OqLOODiOOCquODqw0KK+OCquOCrOOCvyzjg5Ljg4fjgq0NCivjgqrjgqzjg68s44K344Ky44OrDQor44Kq44Ks44OvLOOCv+OCseOCqg0KK+OCquOCquOCrizjgr/jgrHjgrcNCivjgqrjgq7jgq/jg5ws44Oo44Km44K444Ot44KmDQor44Kq44K0LOODiOODouOCrQ0KK+OCquOCsOODqSzjg5Ljg63jg6bjgq0NCivjgqrjgqrjg5As44OI44Oi44OS44OtDQor44Kq44Kq44OQ44Ok44K3LOODqOODquOCsw0KK+OCquOCquOCqCzjg6jjgqbjgqTjg4ENCivjgqrjgqrjgqzjg54s44Kz44Km44Kk44OBDQor44Kq44OP44K3LOODiuOCquOCrQ0KK+OCquOCquOCpOOCtyzjgrHjg7PjgrgNCivjgqrjgqrjgqvjg68s44Ok44K544OS44KzDQor44Kq44Kq44Kt44OJLOODnuOCteOCqg0KK+OCquOCquOCr+ODnCzjg5Ljg63jg6bjgq0NCivjgqrjgqrjgq/jg5ws44OS44Ot44OV44OfDQor44Kq44Kq44Kv44OeLOODnuOCs+ODiA0KK+OCquODnizjg57jg6Ljg6sNCivjgqrjg57jgqgs44Og44OE44Ot44KmDQor44Kq44Oe44KoLOOCv+OCq+OCtw0KK+OCquOCquODouODqizjg4jjg6Ljg5Ljg60NCivjgqrjgqrjg6Ljg6os44Of44OE44Oo44K3DQor44Kq44Kq44Oi44OqLOODiuOCquOCrQ0KK+OCquOCquODouODqizjg5Ljg63jgq0NCivjgqrjgqrjg6Ljg6os44Oe44K144Ok44K5DQor44Kq44Kq44Oi44OILOODn+ODhOODqw0KK+OCquOCquODi+OCtyzjgqLjgqTjgrMNCivjgqrjgqrjg4vjgrcs44Kx44Oz44K4DQor44Kq44Kq44OL44K3LOODnuOCteODhuODqw0KK+OCquODjizjgqLjgq3jg6kNCivjgqrjgqrjg4zjg54s44OS44Ot44KtDQor44Kq44Kq44K144KrLOODquOCtQ0KK+OCquOCquOCteODryzjgr/jgqvjg5Ljg60NCivjgqrjgqrjgrXjg68s44K544Of44KzDQor44Kq44K344OeLOOCv+OCq+OCtw0KK+OCquOCt+ODrSzjgrfjg7PjgqTjg4ENCivjgqrjgqrjgr8s44Ki44K144KzDQor44Kq44Kq44K/LOOCouODhOOCqg0KK+OCquOCquOCvyzjg5Ljg4fjg6bjgq0NCivjgqrjgqrjgr8s44Oe44K144OfDQor44Kq44Kq44K/LOODoOODjeODpOOCuQ0KK+OCquOCquOCvyzjgrfjg7PjgqTjg4Hjg63jgqYNCivjgqrjgqrjgr/jg4ss44Ok44K544OS44OtDQor44Kq44Kq44OELOODkuODreODpuOCrQ0KK+OCquOCquODhOOCqyzjgr/jgqvjgrcNCivjgqrjgqrjg4Tjgq0s44Ki44Kt44OS44OtDQor44Kq44Kk44Kr44OvLOODn+ODgeOCqg0KK+OCquOCqyzjg6jjgrfjg5LjgrUNCivjgqrjgqss44OS44OH44KtDQor44Kq44KrLOODleODn+OCsw0KK+OCquOCq+ODgCzjg5/jgq0NCivjgqrjgqvjg4As44Ok44K544K3DQor44Kq44Kr44OALOODpuOCpuOCpOODgQ0KK+OCquOCq+ODgCzjgrXjg4jjg6sNCivjgqrjgqvjgrDjg4Es44OO44OW44OS44OtDQor44Kq44Kr44KkLOODpuOCv+OCqw0KK+OCquOCq+ODnuODhCzjgr/jgqvjg5Ljg60NCivjgqrjgqvjg6Ljg4gs44Oo44K344Ki44KtDQor44Kq44Kr44Oi44OILOOCqOOCpOOCpOODgQ0KK+OCquOCq+ODouODiCzjg5Ljg4fjgqoNCivjgqrjgqvjg6Ljg4gs44Oe44K144OW44OfDQor44Kq44Kr44Oi44OILOODnuOCteODkuODrQ0KK+OCquOCq+ODouODiCzjg5/jg4Hjg4/jg6sNCivjgqrjgqvjg6Ljg4gs44OO44Oq44KqDQor44Kq44Kr44OOLOODiOODouODkuODrQ0KK+OCquOCq+OCtuOCrSzjg6bjgq3jg4gNCivjgqrjgq3jg6Ljg4gs44Ko44OE44KzDQor44Kq44Kv44OOLOODqOOCt+OCv+ODnw0KK+OCquOCr+ODpOODnizjg6TjgrnjgqoNCivjgqrjgqrjg58s44K344Ky44OrDQor44Kq44Kq44OOLOODiuOCquOCrQ0KK+OCquOCquODjizjg5Ljg63jg5Xjg58NCivjgqrjgqrjg44s44OS44Ot44K3DQor44Kq44Kq44OO44K7LOOCuOODpeODs+OCsw0KK+OCquODjuOCtuOCrSzjgr/jgqvjgrcNCivjgqrjg6rjgqgs44Oo44K344KzDQor44Kq44K244KtLOODnuOCteOCsw0KK+ODiOOCr+ODn+ODpCzjg4bjg4Tjg6QNCivjgrXjgqTjg4Es44Kr44Kq44OqDQor44K144Kk44OI44KmLOOCt+ODs+OCpOODgQ0KK+OCteOCpOODiOOCpizjg5Ljg4jjgq0NCivjgrXjgqTjg4jjgqYs44OS44OH44Ki44KtDQor44K144Kk44OI44KmLOODkuODreOCv+OCqw0KK+OCteOCpOODiOOCpizjg6bjgr/jgqsNCivjgrXjgqTjg4jjgqYs44Ok44K544OS44KzDQor44K144Kk44OI44KmLOOCv+OCpOOCtw0KK+OCteOCpOODiOOCpizjgqvjgqrjg6sNCivjg4/jgqvjg57jg4As44Kr44OoDQor44K144Kr44Kw44OBLOOCs+OCpuOCuA0KK+OCteOCq+OCpCzjg57jg6rjgrMNCivjgrXjgqvjgq3jg5Djg6ks44K/44Kr44KqDQor44K144Kr44Kt44Oi44OILOODqOOCt+OCqA0KK+OCteOCq+ODouODiCzjgqjjgqTjgrgNCivjgrXjgqvjg6Ljg4gs44Ko44OqDQor44K144Kr44Oi44OILOODkuODh+ODkuODrQ0KK+OCteOCq+ODouODiCzjgqTjgrrjg58NCivjgrXjgqvjg6Ljg4gs44Kx44Kk44Kk44OBDQor44Of44K/44OLLOOCseODs+OCpOODgQ0KK+OCteOCq+OCpuODgSzjgq/jg4vjg5LjgrMNCivjgrXjgq3jg6Ljg4gs44Oe44K144OS44KzDQor44K144Kv44OeLOODn+ODhOODqw0KK+OCteOCr+ODqeOCpCzjg6Ljg4jjg47jg6oNCivjgrXjg44s44Oq44Kt44OkDQor44K144OOLOODquODpeOCpuOCpOODgQ0KK+OCteODjizjgrfjg6Xjgqbjgr7jgqYNCivjgrXjgrXjg4As44K344Ol44Oz44K544KxDQor44K144K144OP44OpLOOCueOCueODoA0KK+OCteOCteOCrSzjgr/jgqvjg5Ljg4gNCivjgrXjgrXjgq0s44OI44K344OS44KzDQor44K144K144KtLOODpOOCueODleODnw0KK+ODiOODgOODiyzjg4Tjg6jjgrcNCivjgrXjgrXjgq0s44K744Kk44K4DQor44K144K/44KxLOODhOODjeODjuODqg0KK+OCteODiOOCpizjg6Tjgrnjg5Ljg60NCivjgrXjg4jjgqYs44K344Oz44K0DQor44K144OI44KmLOODkuOCteODj+ODqw0KK+OCteODiOOCpizjg6bjgqbjgqTjg4ENCivjgrXjg4jjgqYs44Oo44K344Ki44KtDQor44K144OI44KmLOOCv+OCq+OCq+OCug0KK+OCteODiOOCpizjg6rjgqjjgrMNCivjgrXjg4jjgqYs44OI44Kq44OrDQor44K144OI44KmLOODpuOCpuOCpOODgQ0KK+OCteODiOOCpizjg4/jg6vjgqoNCivjgrXjg4jjgqYs44K344Oz44Kk44OB44Ot44KmDQor44K144OI44KmLOODjuODnOODqw0KK+OCteODiOOCpizjgrPjgqbjgrgNCivjgrXjg4jjgqYs44OA44Kk44K544KxDQor44K144OI44KmLOOCouOCreODqQ0KK+OCteODiOOCpizjgrHjgqTjgr/jg63jgqYNCivjgrXjg4jjgqYs44OI44Oi44KzDQor44K144OI44KmLOOCuOODpeODs+OCuA0KK+OCteODiOOCpizjg4jjg6Ljgq0NCivjgrXjg6/jg4As44Kx44Kk44K/44Ot44KmDQor44K144Ov44OALOODnuOCsw0KK+OCteODr+ODgCzjg5/jg4Hjg6gNCivjgqTjg6/jgr8s44Oe44Om44OfDQor44K144Ov44KkLOODiOOCt+ODkuOCsw0KK+OCteODr+OCpCzjgr3jgqbjgqTjg4Hjg63jgqYNCivjgrXjg6Tjg44s44Kk44Kv44OkDQor44K744KtLOOCv+OCseOCtw0KK+OCu+OCreOCsOODgSzjg57jgrXjg6jjgrcNCivjgrvjgq3jgrDjg4Es44Of44KrDQor44K744Kt44Kw44OBLOOCouOCreODqQ0KK+OCu+OCreODjSzjgqLjgq3jg5Ljg60NCivjgrvjgq3jg44s44K/44Kr44K3DQor44K744Oz44OKLOODiOOCt+ODn+ODhA0KK+OCu+ODquOCtuODryzjg5Ljg63jg6bjgq0NCivjgrvjg4gs44Kr44OE44OkDQor44K344OQ44K/LOOCs+OCpuOCpOODgQ0KK+OCt+ODkOOCvyzjg57jgrXjg5Ljg4cNCivjgrfjg5Djgr8s44Kx44Kk44K544KxDQor44K344OQ44K/44OLLOOCteODiOOCtw0KK+OCt+ODluOCv+ODiyzjgq3jg6fjgqbjgrMNCivjgrfjgqws44K144OI44OrDQor44K344Ky44OO44OWLOOCq+OCuuODqOOCtw0KK+OCt+ODnizjg5/jgq3jgrMNCivjgrfjg57jg4As44Os44Kk44K444Ot44KmDQor44K344Oe44OALOOCteODiOOCsw0KK+OCt+ODnuODoOODqSzjg6jjgrfjg5/jg4QNCivjgrfjg5/jgros44K/44Kx44Kr44K6DQor44K344Of44K6LOOCteODgOODn+ODgQ0KK+OCt+ODouODkOODpOOCtyzjgq3jg6jjgrcNCivjgrfjg6Ljgqzjg68s44Kz44Km44K4DQor44K344Oi44OS44K044K3LOODhuODhOODkuOCtQ0KK+OCt+ODouOCpOODhyzjgr/jgqTjgrcNCivjgrfjg4rjg4As44Kr44OE44OfDQor44K344ON44KkLOODpuOCqw0KK+OCt+ODs+OCrOOCpCzjgr/jg4DjgrcNCivjgrfjg47jg4As44Kz44Km44K4DQor44K344OO44OP44OpLOOCv+OCq+ODkuODrQ0KK+OCt+ODjuOCtuOCrSzjg4jjg6Ljg6jjgrcNCivjgrfjgqrjg6Qs44K/44Kv44OkDQor44K344Op44OP44OeLOOCv+ODreOCpg0KK+OCt+ODqeOCpOOCtyzjg6bjgqbjgqTjg4ENCivjgrfjg6njgqTjgrcs44K/44Kr44K3DQor44K344K/44OpLOOCv+OCseOCtw0KK+OCt+ODp+OCpuOCuCzjg5Ljg63jg6bjgq0NCivjgrfjg6fjgqbjgrgs44K344OzDQor44Oe44K544Ok44OeLOODnuOCteODkuODhw0KK+OCt+ODpeODiOOCpizjg6bjg5/jgrMNCivjgr3jgqjjg4As44OS44OH44Kr44K6DQor44K944ONLOODkuODh+OCrQ0KK+OCveODjeODgCzjgr/jgq/jgqoNCivjgr3jg47jg5ks44Oe44K144OS44OtDQor44K944OO44OZLOODnuOCteOCtw0KK+OCveODqeODjizjg5/jg5sNCivjgrnjg4As44OK44Kq44OS44OtDQor44K544Ks44KkLOODjuODquODpuOCrQ0KK+OCueOCrOODr+ODqSzjgrvjgqTjg54NCivjgrnjgq7jg6Ljg4gs44K/44Kr44OS44OtDQor44K544Ku44Oi44OILOOCv+OCq+ODnuOCtQ0KK+OCueOCruOCpuODqSzjg6jjgrfjg47jg6oNCivjgrnjgq7jg6Tjg54s44Oe44K144OS44OtDQor44K544Ku44Ok44OeLOODkuODh+ODnuOCtQ0KK+OCueOCruODpOODnizjg6zjgqTjgrMNCivjgrnjgrjjg6Pjgq8s44K/44Kr44Ok44K5DQor44K544KrLOODiOOCquODqw0KK+OCueOCseOCrOODryzjg5Ljg63jg6bjgq0NCivjgrnjg5/jg4rjgqws44Kt44Of44KzDQor44K544Of44Kq44KrLOODiOODouODpA0KK+OCueODiuODpOODnizjgrHjg7PjgqTjg4ENCivjgrnjgrrjgq0s44Oe44K144OkDQor44K544K644KtLOODkuODreOCtw0KK+OCpOOCt+OCpCzjg6Tjgrnjg5LjgrMNCivjgrnjgrrjgq0s44K344Ky44OrDQor44K544K644KtLOOCv+OCq+ODpuOCrQ0KK+OCueOCuuOCrSzjg5Ljg4fjg5Ljg60NCivjg6Tjg57jgrfjg60s44OS44OH44KtDQor44K544K644KtLOODkuODreOCtw0KK+OCueOCuuOCrSwNCivjgrnjgrrjgq0s44Kr44OE44Om44KtDQor44K544K644KtLOOCq+OCuuODjuODqg0KK+OCueOCuuOCrSzjgrPjgqbjgqTjg4ENCivjgr/jg5DjgrMs44Kv44Of44KzDQor44K/44OQ44K/LOODnuOCteOCrQ0KK+ODiuOCq+OCuOODnizjg4bjg6vjg6bjgq0NCivjgr/jg5Djgr8s44Oo44K344OE44KwDQor44K/44OB44OQ44OKLOODiOOCt+ODpuOCrQ0KK+OCv+OCrOODnyzjgr/jgqTjgrvjgqQNCivjg57jg57jg4As44Kx44Oz44K4DQor44K/44Ks44OvLOODnuOCs+ODiA0KK+OCv+OCuOODnizjg6Ljg4jjg5Ljg60NCivjgr/jgqvjg5Djg6Tjgrcs44Om44KtDQor44K/44Kr44OALOODiOODouODqA0KK+OCv+OCq+ODgCzjgr/jgqvjg5Ljg60NCivjgr/jgqvjgq4s44Ko44OfDQor44K/44Kr44KuLOODgOOCpOOCueOCsQ0KK+OCv+OCq+ODj+OCtyzjgrfjg7Pjg6QNCivjgr/jgqvjg4/jgrcs44Om44Kt44KqDQor44K/44Kr44OP44K3LOODkuODreOCrQ0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jgrMNCivjgr/jgqvjg4/jgrcs44Kk44K644OrDQor44K/44Kr44OP44K3LOODnuOCteOCrQ0KK+OCv+OCq+ODj+OCtyzjg5/jgrfjg6fjgqYNCivjg6/jgr/jg4rjg5ks44Oe44KtDQor44K/44Kr44OP44K3LOODpOOCueOCtw0KK+OCv+OCq+ODj+OCtyzjg6bjgr/jgqsNCivjgr/jgqvjg4/jgrcs44Kz44Km44OY44KkDQor44K/44Kr44OP44K3LOODnuOCteODleODnw0KK+OCv+OCq+OCpCzjg5Ljg4fjgq0NCivjgr/jgqvjgq/jg6ks44Kx44Oz44K544KxDQor44K/44Kr44Kv44OpLOOCt+ODmw0KK+OCv+OCq+ODnuODgSzjgqvjg4Tjg47jg6oNCivjgr/jgqvjg57jg4Qs44Ki44Kt44Oo44K3DQor44Oe44OE44OK44KsLOODpOOCueODkuODrQ0KK+OCv+OCq+ODouODiCzjg6jjgrfjgq0NCivjgr/jgqvjg6Djg6ks44OO44OW44Kr44OEDQor44K/44Kr44Kq44KrLOOCtOOCpg0KK+OCv+OCq+OCueOCrizjg4/jg6vjgrMNCivjgr/jgqvjg6Qs44OS44OH44Ki44KtDQor44K/44Kr44Ok44OeLOODkuODreODpuOCrQ0KK+OCreOCv+ODj+ODqSzjgrHjg7PjgqTjg4ENCivjgr/jgrHjg4As44Kv44OL44OS44OHDQor44K/44Kx44OALOODnuOCteODkuODrQ0KK+OCv+OCseODj+ODiizjg57jgrXjgqvjg4QNCivjgr/jgrHjg57jg4Qs44Oe44K144OfDQor44K/44Kx44Kq44KrLOODn+ODjuODqw0KK+OCpOOCt+OCq+ODryzjg6Ljg4jjg5Xjg58NCivjgr/jgrHjgrfjgr8s44OK44Kq44KtDQor44K/44Kx44K/44OLLOODjuODluODpuOCrQ0KK+OCv+OCseOCpuODgSzjgrXjg4jjgrcNCivjgr/jgrHjgqbjg4Es44K144OI44K3DQor44K/44Kx44Ok44OeLOOCv+OCseOCtw0KK+OCv+OCseOCtuODryzjgq3jg6jjgrgNCivjgr/jgq3jgrbjg68s44OE44OI44OgDQor44K/44Kt44K244OvLOODgeOCq+ODqQ0KK+OCv+ODnuOCpCzjg4jjg6Ljg6bjgq0NCivjgr/jg4rjg4/jgrcs44OO44OW44Om44KtDQor44K/44OK44KrLOOCseODs+OCv+ODreOCpg0KK+OCv+ODiuOCqyzjgrPjgrnjgrENCivjgr/jg4rjgqss44OS44Ot44Om44KtDQor44K/44OK44KrLOODkuODreOCtw0KK+OCv+ODiuOCqyzjgrHjgqTjgrMNCivjgr/jg4rjgqss44Oi44OI44KtDQor44K/44OK44KrLOOCu+OCpOOCuA0KK+OCv+ODiuOCqyzjgqvjgrrjg5Ljg4gNCivjgr/jg4rjgqss44Om44Km44KzDQor44K/44OK44KrLOOCqOOCpOOCpOODgQ0KK+OCv+ODiuOCqyzjgqjjgqTjgrgNCivjgr/jg4rjgqss44OE44ON44OS44OtDQor44K/44OK44KrLOODnuOCteODkuODrQ0KK+OCv+ODiuOCqyzjg47jg6rjg5Ljg60NCivjgr/jg4rjgqss44Kr44K644OK44KqDQor44K/44OK44KrLOODjuODnOODqw0KK+OCpOOCt+ODgCzjgrHjg7Pjg6QNCivjgr/jg4rjgqss44Kr44K644KqDQor44K/44OL44Kw44OBLOOCt+OCsuODqw0KK+OCv+ODi+OCsOODgSzjgrHjg7PjgqTjg4ENCivjgr/jg4vjgqQs44Om44Oq44KzDQor44K/44OL44Og44OpLOODn+ODgeODqA0KK+OCv+ODi+OCquOCqyzjg4jjg6LjgrMNCivjgr/jg7Pjg44s44Om44Kt44KqDQor44K/44OM44OeLOODnuODouODqw0KK+ODqOOCs+ODpOODnizjg6/jgr/jg6sNCivjgr/jgrfjg60s44Ki44Kt44OpDQor44K/44K344OtLOOCseODs+OCpOODgQ0KK+OCv+ODhizjg5Ljg4fjg4gNCivjgr/jgqbjg6ks44Oe44Kz44OIDQor44K/44K+44KoLOODpuOCpuOCsw0KK+OCv+OCuuOCsSzjg57jgrPjg4gNCivjg4bjg7Pjg6Is44Kr44Oo44KzDQor44OG44Op44OALOODgeOCqOOCsw0KK+ODhuODqeODouODiCzjgqjjgqTjgrgNCivjg4bjg6njgqrjgqss44Kx44KkDQor44OG44K644KrLOODkuODreODpuOCrQ0KK+ODiOOCsOODgSzjgrjjg6Xjg7PjgrMNCivjg4jjgqbjg54s44Kz44Km44Kk44OBDQor44OI44Km44OeLOODkuODreODpOOCuQ0KK+ODiOOCquODpOODnizjgqvjgrrjg6bjgq0NCivjg4jjgq3jgqrjgqss44K/44Kr44K344KyDQor44K/44OL44Ok44OeLOODkuODh+OCouOCrQ0KK+ODn+OCpuODqSzjgr3jgqbjgqTjg4ENCivjg4jjgq/jg6ks44Kr44K644KqDQor44OI44Kv44Ok44OeLOODkuODreODpA0KK+ODiOODn+OCpOOCtyzjgq/jg4vjg5LjgrMNCivjg4jjg5/jgqvjg68s44OO44Oq44KzDQor44OI44Of44OK44KsLOOCouODhOOCtw0KK+ODiOODn+OCvyzjg5Xjg5/jgqgNCivjg4jjg5/jgr8s44Oi44OI44Oo44K3DQor44Kq44Kq44Oi44OqLOODnuOCteODpuOCrQ0KK+ODiOODouOCvyzjg5Ljg4fjg5LjgrMNCivjg4jjg6Ljg44s44Kx44Kk44K4DQor44OI44Oq44Kr44KkLOODiuOCquOCrQ0KK+ODiOODquOCpuODnyzjg6jjgrfjg47jg5YNCivjg4jjg4Tjgqss44Ki44Ok44KzDQor44OI44Oo44OALOOCseOCpOOCpOODgQ0KK+ODiOODqOODgCzjg5/jgq3jg5Ljg60NCivjg4jjg6jjgqrjgqss44K/44Kv44OO44OWDQor44OE44OB44OALOOCs+OCpuOCuA0KK+ODhOODgCzjgrPjgqbjgqTjg4ENCivjg4Tjgrjjgr/jg4ss44Oe44K144OE44KwDQor44OE44Kr44Oi44OILOODqOOCt+ODhuODqw0KK+ODhOOCq+ODouODiCzjg5Ljg63jgqLjgq0NCivjg4Tjgqvjg6/jgq0s44Oe44K144K/44KrDQor44OE44Or44Oe44KtLOODqOOCpuOCsw0KK+OCpOODgeODkOODs+OCrOOCuyzjg6bjgq3jgrMNCivjgrXjgqvjgqQs44Of44Ob44KzDQor44Km44OB44OALOOCq+OCuuODkuODrQ0KK+OCq+ODiuOCquOCqyzjgrPjgqbjg5jjgqQNCivjgqbjg4Hjg4As44K/44OE44OkDQor44Km44OB44Km44OfLOODiuOCquODkuOCsw0KK+OCpuODgeODpOODnizjg5Xjg5/jgr/jgqsNCivjgqbjg4Hjg6Tjg54s44Om44KtDQor44Km44OALOOCouODhOOCsw0KK+OCpuODgOOCrOODryzjgr/jg63jgqYNCivjgqrjgrfjg54s44Ki44OE44KzDQor44Km44Ko44OALOOCqOOCpOOCqw0KK+OCpuOCqOODgCzjg6jjgrfjg5/jg4QNCivjgqbjgqjjg4/jg6ks44OS44OH44Om44KtDQor44Km44Ko44Og44OpLOODnuOCteOCrQ0KK+OCpuOCqOODjizjgqrjgrXjg6ANCivjgqbjgqjjg44s44OS44Ot44OO44OqDQor44Km44Ko44K544KuLOODnuOCteODnw0KK+OCpuOCqOODhOOCrSzjgr/jgqTjg4ENCivjgqbjgqvjg68s44Oe44K144OS44OHDQor44Km44Oe44K644OhLOOCt+ODs+ODpA0KK+OCpuODoeODj+ODqSzjg4jjgrfjgqoNCivjgqbjg6Hjg6Djg6ks44OS44Ot44OV44OfDQor44Km44Oh44K244OvLOODkuODreOCtw0KK+OCpuODjizjg5Ljg63jgrcNCivjgqbjg44s44OS44K144OkDQor44Km44Op44Oi44OILOOCseOCpA0KK+OCpuODq+ODnizjg57jgrXjg5Xjg58NCivjgqbjgrfjg5As44Of44OO44OrDQor44OK44Ks44K/LOODquODpeOCpuOCvw0KK+OCpuOCt+OCsOOCtSzjg4jjgrfjgqLjgq0NCivjg4/jgrvjgqzjg68s44Oo44K344Ki44KtDQor44K144Kr44Oe44KtLOODpuODqg0KK+OCpuODr+ODmSzjg57jgrXjg6bjgq0NCivjg6/jg4As44Ki44Kt44KzDQor44Ov44Kr44KqLOOCseOCpOOCuA0KK+ODr+OCq+OCqizjg6zjgqTjgrMNCivjg6/jgq3jgr8s44Oo44Km44KzDQor44Kk44OO44Oe44K/LOODkuODreODnw0KK+ODr+OCr+OCpCzjg57jgrXjg6QNCivjg6/jgrfjgrbjg68s44Kx44Kk44KzDQor44Ov44K344K644KrLOOCs+OCpuOCuA0KK+ODr+OCv+ODmSzjg57jgrXjg4jjgrcNCivjg6/jgr/jg4rjg5ks44OO44Oq44Om44KtDQor44Ov44K/44OK44OZLOOCq+OCuuODkuODrQ0KK+ODr+OCv+ODiuODmSzjgrfjgrLjg6sNCivjg6/jgr/jg4rjg5ks44K/44Kr44KqDQor44Ov44K/44OK44OZLOODhOODqOOCtw0KK+ODr+OCv+ODiuODmSzjg4jjg6Ljg6bjgq0NCivjg6/jgr/jg4rjg5ks44OA44Kk44OBDQor44Ov44K/44OK44OZLOODkuODh+OCrQ0KK+ODr+OCv+ODiuODmSzjg5Ljg63jgqvjgroNCivjg6/jgr/jg4rjg5ks44OS44Ot44OfDQor44OI44Oo44K/LOODkuODiOOCtw0KK+ODr+OCv+ODqizjgrHjgqTjgrMNCivjg4jjg5/jg6Tjgrks44OI44K344OS44K1DQor44Ok44Ko44Ks44KtLOODqOOCt+OCouOCrQ0KK+ODpOOCrizjg5/jg6jjgrMNCivjg6Tjgq4s44Oo44K344Oe44K1DQor44Ok44Ku44OM44OeLOODgOOCpOOCueOCsQ0KK+ODpOOCryzjgqLjgq3jg4gNCivjg6Tjg57jg4As44Kr44K644OS44KzDQor44Ok44Oe44OALOODnuOCrQ0KK+ODpOODnuODgCzjg6jjgqbjgrMNCivjg6Tjg57jgq7jgrcs44Ki44OE44K3DQor44Ok44Oe44Kw44OBLOOCs+OCpuOCpOODgQ0KK+ODpOODnuOCsOODgSzjg4jjgrfjg6bjgq0NCivjg6Tjg57jgrDjg4Es44Kr44Kq44OrDQor44Ok44Oe44Kw44OBLOOCouOCreODqQ0KK+ODpOODnuOCs+OCtyzjg4DjgqTjgrnjgrENCivjg6Tjg57jg6Ljg4gs44Oe44K144OS44OtDQor44Ok44Oe44Oi44OILOOCseODs+OCuA0KK+ODpOODnuODouODiCzjgr/jgrHjgqoNCivjg6Tjg57jg6Ljg4gs44K744Kk44Kk44OBDQor44Ok44Oe44Oi44OILOOCt+ODpeOCpuOCuA0KK+OCv+ODgeODkOODiizjg57jgrXjg4jjgrcNCivjg6Tjg57jg6Ljg4gs44K444Ol44OzDQor44Ok44Oe44Oi44OILOOCseODs+OCpOODgQ0KK+ODj+ODqeOCv+ODiyzjg4jjg6LjgrMNCivjg6Tjg57jg4rjgqss44K/44Kr44K3DQor44Ok44Oe44ONLOODqOOCt+ODleODnw0KK+ODpOODnuOCt+OCvyzjgqLjgq3jg5LjgrMNCivjg6Tjg57jgrfjgr8s44OS44Ot44K3DQor44Ok44Oe44K344K/LOODiuOCquOCsw0KK+ODpOODnuOCv+ODiyzjgr/jgqvjgrcNCivjg6Tjg57jgqbjg4Es44OI44Oi44KzDQor44Ok44Oe44K244KtLOOCouOCreODqQ0KK+ODpOODiizjg5Ljg63jgqLjgq0NCivjg6Tjg4rjg5ks44OS44Ot44KtDQor44Ok44OK44Ks44OvLOODquODp+OCpg0KK+ODpOODiuOCrizjg4jjgrfjgqLjgq0NCivjg6Tjg4rjgq7jg4As44Oq44Ol44Km44Kk44OBDQor44Ok44K144KrLOOCq+OCuuODkuODhw0KK+ODpOOCueODgCzjg57jgrXjg5/jg4QNCivjg6Tjgrnjg5Xjgq8s44Om44K/44KrDQor44Ok44K544Kr44OvLOOCreODqOOCq+OCug0KK+ODqOOCs+OCteODryzjgr/jgq/jg6QNCivjg6jjgrPjgr8s44OS44Ot44K3DQor44Oo44Kz44K/LOOCq+OCuuODkuODrQ0KK+ODj+ODqeODgCzjgrPjgrnjgrENCivjg6jjgrPjgqbjg4Es44Oe44K144OS44OtDQor44Oo44Kz44Km44OBLOOCt+ODs+OCueOCsQ0KK+ODqOOCs+ODpOODnizjg57jgrPjg4gNCivjg6jjgrPjg6Tjg54s44Kr44K644OO44OWDQor44Oo44ON44OALOODiuOCquOCrQ0KK+ODqOODjeODjizjg4rjgqrjg58NCivjgqvjgrXjg4/jg6ks44K144OI44OfDQor44Oo44K344OALOODkuODh+OCqg0KK+ODqOOCt+ODgCzjgrjjg6Xjg7MNCivjg6jjgrfjg4As44OS44Ot44K3DQor44Oo44K344OALOODiuOCquODiA0KK+ODqOOCt+ODgCzjg5Ljg63jgrcNCivjg6jjgrfjg4njg6Es44K344K644KrDQor44Oo44K344OP44OpLOOCv+OCq+ODkuODrQ0KK+ODqOOCt+OCpCzjgrXjg4jjg6sNCivjg6jjgrfjgqQs44Oe44Kz44OIDQor44Oo44K344Kr44OvLOOCt+OCquODqg0KK+ODqOOCt+ODnyzjgr/jgqTjgq0NCivjg6jjgrfjg44s44OV44Of44KqDQor44Oo44K344OOLOODpOOCueOCtw0KK+ODqOOCt+ODjizjg4jjg6LjgrMNCivjg6jjgrfjgqrjgqss44Kx44Oz44Kk44OBDQor44Oo44K344Kq44KrLOOCs+OCpuOCpOODgeODreOCpg0KK+ODqOOCt+OCv+OCsSzjgr/jg4DjgrcNCivjg6jjgrfjgrbjg68s44OI44K344Kr44OEDQor44Om44K644OP44OpLOOCs+OCpuOCuA0KK+OCvOODs+OCsizjgqvjgrrjgr/jgqsNCivjgrrjgrcs44Of44KqDQor44K044OfLOODkuODreOCrQ0KK+OCtOODiOOCpizjg5Ljg63jgrcNCivjgqTjgrHjg4As44K/44Kx44OP44OrDQor44Kk44OeLOODnuOCteODkuODrQ0KK+OCouODmSzjg57jg4rjg5YNCivjgqvjg4jjgqYs44K344Ky44OrDQor44Kr44Ov44OQ44K/LOOCt+OCsuODqw0KK+OCs+ODkOODpOOCtyzjg6bjgq3jg5LjgrMNCivjgrPjg7Pjg4ks44Kv44OL44Og44ONDQor44Kv44OcLOODnuOCteODkuOCsw0KK+OCr+ODqeODouODgSzjg6jjgqbjgrMNCivjg57jg6vjg6Tjg54s44Oo44K344Ki44KtDQor44Oi44Oq44Kr44KvLOODpuOCreOCqg0KK+ODoOODqeOCquOCqyzjg5Ljg63jg6bjgq0NCivjg4rjgqzjgrfjg54s44Oo44Km44KzDQor44OK44KrLOODiOOCt+ODpA0KK+ODiuOCq+ODj+ODqSzjgr/jgq/jg6QNCivjg4rjgqvjg6Djg6ks44OE44Oo44K3DQor44OK44Kr44K7LOODiOODnw0KK+ODiuODquOCvyzjg5LjgrXjgqgNCivjg4vjgrfjg6Djg6ks44Ko44Of44KzDQor44OO44OK44KrLOODkuODh+ODiuOCqg0KK+OCquOCrOODryzjg6jjgrfjgqoNCivjgqrjgrDjg6ks44OI44Kq44OrDQor44Kq44Kq44OfLOODnuOCs+ODiA0KK+OCquOCq+ODjizjg57jgrXjg6QNCivjgrfjg57jg4As44K444Ol44Oz44K4DQor44K344Of44K6LOOCq+OCuuODjuOCt+ODsw0KK+OCt+ODoOODqSzjg5Ljg4fjg6bjgq0NCivjgr/jgqvjg4/jgrcs44Of44OE44Oe44K1DQor44K/44Kr44Oe44OELOOCseODs+OCpOODgQ0KK+OCpuOCqOODgCzjg6Djg4TjgqoNCivjgqbjgrgs44K044KmDQor44Km44OE44OfLOOCt+ODpeOCpuOCpOODgQ0KK+OCouODmSzjg6jjgqbjgqTjg4ENCivjgrPjg7Pjg4ks44K/44Kr44K3DQor44K/44Kr44OO44Km44OBLOOCseODs+OCteOCrw0KK+OCpOODjuOCpuOCqCzjg6Djg43jg5Ljg60NCivjg4rjgqvjg4/jg6ks44OS44OI44K3DQor44Ki44OA44OBLOODpuOCv+OCqw0KK+ODiuOCq+ODjizjg5Ljg63jgq0NCivjgqLjgqTjg5As44OO44Oq44Ki44KtDQor44Ki44Kk44OQLOOCv+OCseOCtw0KK+OCouOCpOODkCzjgrXjg4jjgrcNCivjgqLjgqTjg4As44Oe44K144OS44OtDQor44Ki44Kk44OP44OpLOOCouODhOOCtw0KK+OCouOCq+OCpOOCtyzjg57jgrXjgqrjg58NCivjgqLjgqvjgqTjg68s44Oo44K344OS44OtDQor44Ki44Kr44Kq44KuLOODiOOCt+ODkuODhw0KK+OCouOCreOCvyzjg4Tjg6jjgrcNCivjgqLjg57jg44s44OK44Kq44KzDQor44Ki44Kq44KtLOODkuODreOCsw0KK+OCouOCquOCrSzjg6bjgq3jgrMNCivjgqLjgqrjg4zjg54s44OS44OI44K3DQor44Ki44Kq44Ok44KuLOOCqOOCpOOCuA0KK+OCouODqeOCrSzjgqLjgq3jg6kNCivjgqLjg6rjg57jg4Es44OI44K344OO44OWDQor44Ki44Oq44K/LOODkuODh+OCouOCrQ0KK+OCouOCteODgCzjg4bjg4Tjg6QNCivjgqLjgrXjgqjjg4As44K/44Kr44OS44OtDQor44Ki44K144OP44OpLOODqOOCt+ODj+ODqw0KK+OCouOCteOCq+ODryzjgqvjgrrjg5LjgrMNCivjgqLjgrXjg6Ljg4gs44OE44OI44OgDQor44Ki44K144OOLOODpuOCv+OCqw0KK+OCouOCv+OCsOODgSzjg5Ljg63jgrcNCivjgqLjg6Tjgq0s44OP44Or44KzDQor44OQ44OQLOOCt+ODpeODs+OCueOCsQ0KK+ODkOODkCzjgqvjgqrjg6sNCivjg5Djg5As44OK44OK44KzDQor44OQ44OzLOOCv+OCseOCtw0KK+ODgOOCpOOCs+OCryzjg5/jg4Hjg6gNCivjg4Djg4Ys44K344Ky44OS44KzDQor44K144OOLOOCuOODpeODs+OCpOODgQ0KK+ODn+ODhOOCquOCqyzjgrfjgrLjgq0NCivjg4fjg7Pjg4As44Kr44K644OS44KzDQor44OJ44KkLOOCqOODnw0KK+OCqOODs+ODiSzjg4jjg6Ljg5LjgrMNCivjgqjjg7Pjg4ks44Oo44Km44Kk44OB44Ot44KmDQor44Ko44K244OvLOODiuODquODkuODhw0KK+ODleOCuOOCqCzjgr/jgrHjg5Xjg58NCivjg5XjgrjjgqQs44Kr44K644OS44OtDQor44OV44K444KkLOODnuOCteOCouOCrQ0KK+ODleOCuOODnuOCrSzjg57jgrXjgqvjg4QNCivjg5Xjgrjjg6Ljg4gs44Of44OvDQor44OV44K444Oi44OILOODn+OCreOCqg0KK+ODleOCuOODoOODrSzjgrPjgqbjgrgNCivjg6Ljg63jgrrjg58s44Kr44Oz44K4DQor44OV44K444K144OvLOOCseODs+OCuA0KK+ODleOCuOOCvyzjg5Ljg63jg6bjgq0NCivjg5Xjgqvjgrss44K/44OE44OkDQor44OV44Kv44OALOOCt+OCu+OCpA0KK+ODleOCr+ODieODoSzjgr/jgqvjgrcNCivjg5Xjgq/jgqQs44OS44K144K3DQor44OV44Kv44OK44KsLOODleODn+ODkuOCtQ0KK+ODleOCr+OCt+ODnizjg5Ljg4fjgqoNCivjg5Xjgq/jgrbjg68s44Oe44Oq44KrDQor44OV44Or44OQ44Ok44K3LOOCouOCreODqQ0KK+ODleODq+OCq+ODryzjg5Ljg4fjgq0NCivjg5Xjg6vjgqvjg68s44Ki44Kx44OfDQor44K044KmLOODj+ODig0KK+OCtOODnuODqyzjgrnjgrnjg6ANCivjgrTjg4jjgqYs44K344On44KmDQor44K044OI44KmLOOCv+ODhOODpA0KK+OCtOODiOOCpizjg4HjgrrjgqsNCivjg47jg6Ljg4gs44Kr44Kq44OrDQor44OP44Ku44Ov44OpLOODquODpeOCpuOCvw0KK+ODj+OCpOODpOODnizjgq3jg6fjgqbjgrMNCivjg4/jg54s44Kr44K644Of44OBDQor44OP44Oe44OBLOOCt+ODpeOCpuOCpOODgQ0KK+ODj+ODnuODgCzjg4rjgqrjg5LjgrUNCivjg4/jg57jgr/jg4ss44K344Ky44KqDQor44OP44OK44KkLOODpOOCueODkuODiA0KK+ODj+ODiuOCvyzjg5Ljg6njgq8NCivjg4/jg43jgrgs44OS44Ot44KzDQor44OP44Oz44K244OvLOODnuOCteODkuOCsw0KK+ODj+ODqSzjg5/jg5sNCivjg4/jg6ks44K344Oz44K4DQor44OP44Op44OALOOCq+OCuuODkuODhw0KK+ODj+ODqeODgCzjgq3jg6jjgrcNCivjg4/jgrvjgqzjg68s44Om44K/44KrDQor44OP44K744Ks44OvLOODiuOCquOCsw0KK+ODj+OCu+OCrOODryzjg4bjg4Tjg6QNCivjg4/jgrfjgrDjg4Es44Oe44K144Oo44K3DQor44OP44K344Oi44OILOODpOOCueODpuOCrQ0KK+OCtOODiOOCpizjgrHjgqQNCivjgqvjgrjjg6/jg6ks44Oo44K344KzDQor44OP44K544OfLOODhOOCsOODjuODqg0KK+OCq+OCv+ODpOODiuOCrizjgqjjgqTjgqTjg4ENCivjg4/jgr/jgrHjg6Tjg54s44K344Oz44Kk44OBDQor44Og44Op44KkLOODn+ODhOODpuOCrQ0KK+ODj+OCv+ODiyzjg6rjg6XjgqbjgqTjg4ENCivjg4/jg4Pjg4jjg6os44Ok44K544OO44OWDQor44OP44OD44OI44OqLOOCv+OCq+ODpuOCrQ0KK+ODj+ODpOOCtyzjgr/jgqvjg6bjgq0NCivjgqrjgqrjgrnjg58s44Oe44K144KzDQor44OP44Ok44K3LOOCq+OCuuODiuODqg0KK+ODj+ODpOOCtyzjg6jjgrfjg47jg5YNCivjg4/jg6Tjgrfjg4As44K144KtDQor44OS44KsLOOCv+OCseOCqg0KK+ODkuOCrOOCtyzjg6rjg6XjgqbjgrnjgrENCivjg5Ljgqzjgrfjg4As44K344Ol44Km44Kk44OBDQor44OI44Oo44OALOODpuOCpuOCpOODgeODrQ0KK+ODkuODjizjgr/jgrHjg5LjgrMNCivjg5Ljg6ks44OG44OE44OkDQor44OS44Op44Oi44OILOOCuOODpeODs+OCsw0KK+ODkuODqeOCqizjg57jgrXjg4gNCivjg5Ljg6njgqos44Oe44K144Om44KtDQor44OS44Op44K/LOODiuOCquODnw0KK+ODkuODqeODpOODnizjgr/jgrHjgrcNCivjg5Ljg63jgqQs44K/44Kr44K3DQor44OS44Ot44Kr44OvLOODjuODquOCq+OCug0KK+ODkuODreOCq+ODryzjg6jjgr/jg63jgqYNCivjg5Ljg63jg57jgrks44Kr44K644Om44KtDQor44OS44Ot44K7LOODn+ODhOODqw0KK+ODkuODreOCuyzjgr/jgqvjgqoNCivjg5Ljgrfjg6Qs44K144OI44K3DQor44Ob44Km44K344On44KmLOOCouOCreOCsw0KK+ODm+ODs+ODgCzjg5/jg5vjgrMNCivjg4/jg6Tjgrcs44OO44K+44OgDQor44Ob44Oz44OeLOOCv+OCseOCtw0KK+ODm+ODquOCsOODgSzjg4bjg6vjgqoNCivjg5vjg6rjgqQs44OS44Ot44OfDQor44Ob44K3LOOCouOCreODkuOCsw0KK+ODm+OCveOCpCzjgqvjg4Tjg6QNCivjg5vjgr3jg58s44Ok44K544KqDQor44Ob44OD44K/LOODnuOCteODkuODhw0KK+ODleOCr+ODreOCpCzjgrHjg7PjgrgNCivjg5Xjg6vjg6Qs44Ki44Kt44OS44OIDQor44Kk44OW44KrLOOCveOCpuOCpOODgQ0KK+OCpOODgeODkCzjgr/jgqvjgrcNCivjgqTjg4Hjg4/jg6ks44OS44Ot44K3DQor44Kk44OB44Kr44OvLOODkuODreOCtw0KK+OCpOODgeODoOODqSzjgrjjg6Xjg7PjgqTjg4Hjg60NCivjgqTjg4Hjg47jgrvjgq0s44OI44K344OS44OtDQor44Kk44Kk44OALOODiOOCt+ODpA0KK+OCpOOCpOODgCzjgrjjg6Xjg7PjgrMNCivjgqTjgqTjgrjjg54s44Oo44Km44KzDQor44K344OO44OP44OpLOODj+OCuOODoQ0KK+OCpOOCseODgCzjg6rjgqgNCivjgqTjgrHjg4As44Om44KtDQor44Kk44Kx44OALOODpuOCv+OCqw0KK+OCpOOCseODgCzjg6jjgqbjgrMNCivjgqTjgrHjgrbjg68s44Kr44K644K/44KrDQor44Kk44Oe44KkLOODnuODpuODnw0KK+OCpOODnuOCpCzjgrHjgqTjgr8NCivjgqTjg57jgqQs44Kv44OL44OS44KzDQor44Kk44Oe44KtLOODn+ODjuODqw0KK+OCpOODnuODoOODqSzjgrHjg7PjgrnjgrENCivjgqTjg6Ljg4gs44K344On44Km44Kk44OBDQor44Ki44OZLOODqOOCt+ODpOOCuQ0KK+OCpOODiuODgCzjg6bjgq3jgrMNCivjgqTjg47jgqbjgqgs44OI44Oi44OS44OtDQor44Kk44OO44Km44KoLOOCv+OCq+OCtw0KK+OCpOODjuOCpuOCqCzjg57jgrXjg5LjgrMNCivjgqTjg47jgqbjgqgs44Kr44K644KqDQor44Kk44Oq44KoLOODqOOCt+ODkuOCsw0KK+ODhOODq+OCquOCqyzjg5Ljg4jjgrcNCivjgqrjgqrjg4/jgrcs44OS44K144OI44K3DQor44Kk44K344OALOODpuOCpuOCuA0KK+OCpOOCt+ODgCzjgrHjg7PjgrgNCivjgqTjgrfjg4As44Kz44Km44K4DQor44Kk44K344OALOODj+OCuOODoQ0KK+OCpOOCt+OCsOODrSzjg6jjgrfjgq0NCivjgqTjgrfjg4/jg6ks44K344Ky44KqDQor44Kk44K344OP44OpLOOCuOODpeODs+OCsw0KK+OCpOOCt+OCpCzjg5/jg4Tjg5LjgrMNCivjgqTjgrfjgqvjg68s44Oe44K144OO44OqDQor44Kk44K344Kr44OvLOOCouOCreODqQ0KK+OCpOOCt+ODr+OCvyzjg57jgrXjg47jg6oNCivjgqTjg4jjgqYs44K/44Kr44K3DQor44Kk44OI44KmLOOCouOCreOCsw0KK+OCpOODiOODpOODnizjg4jjgrfjgqoNCivjgqTjg4Tjgq0s44Kr44K644OS44OtDQor44Kk44Ov44KtLOOCs+OCpuOCv+ODreOCpg0KK+OCpOODr+OCteOCrSzjgr/jgrHjgrcNCivjgqTjgrrjg4Qs44Om44Km44K4DQor44K444OWLOOCqOODn+OCsw0KK+OCq+ODieOCpCzjg4bjg6vjg6TjgrkNCivjgqLjg4Djg4Es44Kx44Oz44K4DQor44Kr44KkLOOCv+OCq+ODpuOCrQ0KK+OCq+OCpOOCuyzjg5Ljg63jgqLjgq0NCivjgqvjgqTjgrrjgqss44OS44Ot44KzDQor44Kr44K444Ov44OpLOODkuODreOCtw0KK+OCq+OCrSzjgqvjg4Tjg4jjgrcNCivjgqvjgq3jg58s44Kz44Km44K4DQor44K544Ku44K/LOODrOOCpOOCrQ0KK+OCq+OCr+OCv+ODiyzjg6TjgrnjgrMNCivjgqvjg5/jg5Djg6Tjgrcs44Kr44OE44OS44KzDQor44Kr44Of44Ks44KtLOODjuODquODkuODhw0KK+OCq+ODn+ODpCzjgrXjg4jjgrcNCivjgqvjg6Ljg4As44Kz44Km44Kk44OBDQor44Kr44Oi44OILOOCv+ODouODhA0KK+OCq+ODs+ODkOODpOOCtyzjg6Ljg4jjg5Ljg60NCivjgqvjg43jgrMs44K344Oz44K0DQor44Kr44ON44KzLOODn+ODhOODpA0KK+OCq+ODjeOCsyzjgq/jg4vjg5LjgrMNCivjgqvjg43jgrMs44Of44OE44KqDQor44Kr44OL44K144OvLOOCv+ODhOODpA0KK+OCq+ODqyzjgr/jgqvjg6bjgq0NCivjgqvjgrfjg6/jgq4s44OG44OE44OkDQor44Kr44K544OfLOODqOOCpuOCpOODgeODreOCpg0KK+OCq+OCv+OCruODqizjg4rjgqrjg6bjgq0NCivjgqvjg4jjgqYs44Of44OE44OS44OtDQor44Kr44OI44KmLOOCouODhOOCtw0KK+OCq+ODiOOCpizjg6bjgqbjgrMNCivjgqvjg4jjgqYs44OO44OW44KqDQor44Kr44OI44KmLOOCv+ODhOODreOCpg0KK+OCv+OCsOODgSzjgrjjg6Xjg7PjgrMNCivjgqvjg4jjgqYs44Kx44Oz44K4DQor44Kr44OI44KmLOOCs+OCpg0KK+OCq+ODiOOCpizjgrfjg7PjgqTjg4ENCivjgqvjg4Tjg6ks44Ki44Kt44OpDQor44K944K0LOOCseODsw0KK+OCq+ODr+ODkuODiCzjg57jgrPjg4gNCivjgqvjg6/jgqQs44Oq44Ko44KzDQor44Kr44Ov44Kr44OfLOOCs+OCpuOCuA0KK+OCq+ODr+ODnyzjgrfjgrLjg6sNCivjgqvjg6/jg6Djg6ks44K344Oz44K4DQor44Kr44Ov44Og44OpLOODhuODq+OCrQ0KK+OCq+ODr+OCteOCrSzjg5Ljg63jgrcNCivjgqvjg6/jgrXjgq0s44OI44Oi44Kr44K6DQor44Kr44Ov44Km44OBLOODnuOCteOCouOCrQ0KK+OCq+ODhOOCrSzjgqLjgq3jg4jjg6INCivjgq3jg4As44OY44Kk44K4DQor44Kt44OJ44Kz44OtLOODkuODreOCtw0KK+ODouODqizjgrHjg7PjgrgNCivjgq3jgq/jg4Es44Oe44Kz44OIDQor44Kt44Kv44Ks44OvLOODn+OCqA0KK+OCreODoOODqSzjg5/jg4Tjg5Ljg60NCivjgq3jg6Djg6ks44K144OI44OrDQor44Kt44Og44OpLOOCv+OCseOCtw0KK+OCreODoOODqSzjgr/jgq/jg58NCivjgq3jg47jgrfjgr8s44OI44Oo44KtDQor44Kt44OO44K344K/LOODqOOCt+OCouOCrQ0KK+OCreODjuOCt+OCvyzjg6jjgrfjg4/jg6sNCivjgq3jg47jgrfjgr8s44Om44Kr44OqDQor44Kt44K344OALOODpuOCreOCsw0KK+OCreOCt+OCq+ODryzjg57jgrXjg5LjgrMNCivjgq3jgr8s44OI44K344KqDQor44Kt44K/44Kw44OBLOOCseOCpOOCueOCsQ0KK+OCouODnuODjizjg5/jg4Hjg6gNCivjgq3jgr/jg6Djg6ks44Oe44OK44OWDQor44Kt44K/44Ok44OeLOODgeODkuODrQ0KK+OCs+ODkOODpOOCtyzjg4rjgqrjg4gNCivjgrPjg5Djg6Tjgrcs44Oi44OI44OO44OqDQor44Kz44OQ44Ok44K3LOODkuODreODpuOCrQ0KK+OCs+ODkOODpOOCtyzjg6Tjgrnjg4bjg6sNCivjgrPjg5Djg6Tjgrcs44OI44Oi44Ki44KtDQor44Kz44OQ44Ok44K3LOOCuOODpeODs+OCuA0KK+OCouODoeOCt+OCvyzjg4rjgqrjgq0NCivjgrPjg5Djg6Tjgrcs44Kz44Km44Kk44OBDQor44Kz44OQ44Ok44K3LOODkuODreODnw0KK+OCs+ODkOODpOOCtyzjgrHjg7PjgrgNCivjgrPjg5Djg6Tjgrcs44Kt44Oo44K/44KrDQor44Kz44OQ44Ok44K3LOODnuODpuODnw0KK+OCs+ODkOODpOOCtyzjg4DjgqTjgrnjgrENCivjgrPjg5Djg6Tjgrcs44K/44Kr44OS44OtDQor44Kq44OALOODnuOCteODkuOCsw0KK+OCs+ODnOODqizjg5Ljg4fjg58NCivjgrPjg4DjgqTjg6ks44OO44OW44OS44OtDQor44Kz44OA44OeLOOCu+OCpOOCuA0KK+OCq+ODr+OCsOODgSzjgqLjg4TjgrcNCivjgrPjg4Djg4Ys44Of44OE44OrDQor44Kz44KsLOODjuODquODpuOCrQ0KK+OCs+OCrCzjgqLjgq3jg6kNCivjgrPjgqzjg43jg57jg6ss44Oe44K144OfDQor44Kz44OP44OpLOODiOODouODiuODqg0KK+OCs+OCpuODgCzjgrHjg7PjgqTjg4ENCivjgrPjg7Pjg44s44Oe44OK44OWDQor44Kz44K244KkLOOCs+OCpuOCpOODgQ0KK+OCs+OCpOOCsSzjgqLjgq3jgqoNCivjgrPjgqTjgrrjg58s44Oe44K144KqDQor44Kz44K444OeLOODpOOCueODrQ0KK+OCs+OCuOODnizjgrHjg7MNCivjgrPjg57jg4Qs44K/44Kr44K3DQor44Kz44Oi44OqLOODqOOCt+OCv+OCqw0KK+OCs+ODs+ODiSzjg4jjg6Ljg47jg6oNCivjgrPjg7Pjg4ks44Kk44K144OgDQor44Kz44Oz44K/LOOCseODs+OCpOODgQ0KK+OCs+OCv+OCqyzjg5/jg4Tjg47jg6oNCivjgrPjgr/jgrEs44Oe44K144KtDQor44Kz44Ok44OeLOODiOOCpuODreOCrw0KK+OCr+ODnCzjg5Ljg63jgrcNCivjgq/jg5zjgq0s44Kk44Kv44KzDQor44Kv44Oc44K/LOODqOOCpuOCpOODgQ0KK+OCr+OCrCzjgr/jg4TjgrgNCivjgq/jg57jgqzjgqQs44Ok44K544OK44OqDQor44Kv44OL44Oi44OqLOODqOOCpuOCpOODgQ0KK+OCr+ODqeODouODiCzjgrjjg6Xjg7MNCivjgq/jg6njgrXjg68s44Ki44OE44K3DQor44Kv44Op44K344OKLOOCq+ODhOODkuODiA0KK+OCr+ODqeOCvyzjgrXjg4jjgrcNCivjgq/jg6rjg6Ljg4gs44K/44Kx44KqDQor44Kv44Oq44K/LOODqOOCt+ODnuOCtQ0KK+OCr+ODreODgCzjg4jjgrfjgqvjgroNCivjgq/jg63jg4As44OS44OH44Ki44KtDQor44Kv44Ot44Kr44OvLOOCt+ODs+OCtA0KK+OCr+ODreOCrSzjg4Tjg6jjgrcNCivjgq/jg63jgrXjgq0s44Oq44On44Km44Kk44OBDQor44Kv44Ot44K144OvLOODkuODreODpuOCrQ0KK+OCr+ODquODpeOCpizjgrHjg7PjgrgNCivjgq/jg6/jgr8s44Oe44K144OS44KzDQor44Kv44K644OfLOOCv+OCq+ODkuODrQ0KK+ODnuODluODgSzjgr/jgq/jg58NCivjg57jgqjjg4As44Ok44K544OS44OtDQor44Oe44Ko44OALOOCseOCpOOCtw0KK+ODnuOCqOOCrOODryzjgqLjgq3jg5LjgrMNCivjg57jgqjjgqvjg68s44Ok44K544OI44K3DQor44Oe44Kt44KqLOOCu+OCpOOCpOODgQ0KK+ODnuODoeODj+ODqSzjgqLjgq3jg5Ljg60NCivjg57jgrXjg4As44OS44Ot44Om44KtDQor44Oe44K544OALOODqOOCpuOCueOCsQ0KK+ODnuOCueODgCzjg5Ljg63jgrcNCivjg57jgrnjg4As44K/44Kr44K3DQor44Oe44K544OALOODiOODouOCsw0KK+ODnuOCueODpOODnizjg6rjg4TjgrMNCivjg57jg4Tjg4As44Og44OE44OfDQor44Oe44OE44OALOODiuOCquODnw0KK+ODnuODhOOCqOODgCzjg4Tjg6jjgrcNCivjg57jg4TjgqQs44K/44Kr44Oe44K1DQor44Oe44OE44Oi44OILOOCseODs+OCv+ODreOCpg0KK+ODnuODhOODouODiCzjgrHjgqTjgrgNCivjg57jg4Tjg6Ljg4gs44K744Kk44Kk44OBDQor44Oe44OE44Oi44OILOODpuOCpuOCpOODgQ0KK+ODnuODhOODouODiCzjgrfjg6XjgqbjgqTjg4ENCivjg57jg4Tjg6Ljg4gs44Oo44Km44K/44Ot44KmDQor44Oe44OE44OK44KsLOODnuOCteODpuOCrQ0KK+ODnuODhOODjizjg6Tjgrnjg5LjgrMNCivjg57jg4Tjg44s44K344Oz44Kk44OBDQor44Oe44OE44Kq44KrLOODn+ODgeOCsw0KK+ODnuODpuODnyzjgqLjgq3jg6kNCivjg6Hjgqvjgr8s44OS44Ot44KtDQor44Oh44OpLOOCs+OCpuOCuA0KK+ODn+OCv+ODiyzjgr/jg63jgqYNCivjg5/jgr/jg4ss44Of44OB44OS44OIDQor44Of44OILOODpuODn+OCsw0KK+ODn+ODpOOCrOODnyzjgrfjgrLjg5LjgrUNCivjgqTjgqrjgq0s44Oe44K144Ki44KtDQor44Of44Ok44Oi44OILOOCouOCreODkuODrQ0KK+ODn+ODpOODoOODqSzjg4jjg6Ljg6bjgq0NCivjg5/jg6Tjg44s44K/44Kr44Ki44KtDQor44Of44Ok44Km44OBLOODnuOCteODj+ODqw0KK+ODn+ODpOOCtuOCrSzjg57jgrXjgqvjg4QNCivjg6Ljg4Hjgrrjgq0s44Om44KtDQor44Oi44Oi44KkLOODkuODh+ODnuOCtQ0KK+ODouODqizjg6bjgqsNCivjg6Ljg6os44Kv44Of44KzDQor44Oi44Oq44Oi44OILOODqOOCpuOCpOODgQ0KK+ODouODquODouODiCzjg6Djg4TjgrMNCivjg6Ljg6rjgqrjgqss44Kx44Oz44K4DQor44Oi44Oq44K144OvLOODiOODouODkuODrQ0KK+ODouODquOCvyzjgqvjgrrjg6jjgrcNCivjg6Ljg6rjgr8s44OS44Ot44OO44OWDQor44Oi44Oq44K/LOOCouOCreODkuOCsw0KK+ODouODquOCvyzjgrfjg7Pjg6QNCivjg6Ljg6rjg6Tjg54s44K/44Kr44K3DQor44Oi44Oq44Ok44OeLOOCv+ODhOODkuOCsw0KK+ODouODhuOCrizjg4jjgqrjg6sNCivjg6Djg6njgqvjg58s44Oe44K144Ki44KtDQor44Ki44K144OOLOOCseODs+OCtA0KK+OCouODpuOCq+ODryzjgrXjg4jjgrcNCivjg6Djg6njgqos44OA44Kk44K544KxDQor44Og44Op44Kq44KrLOOCt+OCsuODqw0KK+ODoOODqeOCvyzjg4jjg6LjgqvjgroNCivjg6DjgrfjgqLjgrEs44Ko44Of44KzDQor44Og44K/LOODkuOCteOCtw0KK+ODiuODmeOCpCzjg57jgrXjg5Ljg60NCivjg4rjgqzjgqQs44Kz44Km44Kk44OBDQor44OK44Ks44KkLOODnuOCteOCsw0KK+ODiuOCrOODn+ODjSzjgrXjg6bjg6oNCivjg4rjgqzjgrXjg68s44K/44OA44K3DQor44OK44Ks44K/LOODhuODhOOCqg0KK+ODiuOCrOODpOODnizjg4bjg4Tjg6QNCivjg4rjgrDjg6ks44Om44Of44KzDQor44OK44Kk44OI44KmLOODkuODreOCtw0KK+ODiuOCq+OCrOODryzjg6rjg6XjgqbjgrgNCivjg4rjgqvjgqzjg68s44Om44Of44KzDQor44OK44Kr44Ks44OvLOODpOOCueOCtw0KK+ODiuOCq+OCrOODryzjg57jgrXjg5Ljg60NCivjg4rjgqvjg4/jg6ks44K/44Kr44KzDQor44OK44Kr44KkLOOCt+OCsuODqw0KK+ODiuOCq+OCpCzjgr/jgqvjg5Ljg60NCivjg4rjgqvjgrjjg54s44OI44Kq44OrDQor44OK44Kr44K444OeLOODpuODn+OCsw0KK+ODiuOCq+OCuOODnizjgqvjg4Tjg6QNCivjgrXjg6/jg4As44Of44Ko44KzDQor44OK44Kr44Og44OpLOOCouOCreODjuODlg0KK+ODkOODs+ODkCzjg4bjg4Tjg6QNCivjg4rjgqvjg6Djg6ks44OS44OH44OS44OIDQor44OK44Kr44Og44OpLOOCs+OCpuOCpOODgQ0KK+ODiuOCq+ODoOODqSzjg57jgrXjg47jg6oNCivjg4rjgqvjg6Djg6ks44Kr44K644KqDQor44OK44Kr44Og44OpLOODnuODqg0KK+ODiuOCq+ODoOODqSzjgr/jgrHjgrcNCivjg4rjgqvjg6Djg6ks44Ki44Kt44OS44OtDQor44OK44Kr44OOLOODleODn+OCsw0KK+ODiuOCq+ODjizjg5Ljg63jgqvjgroNCivjg4rjgqvjgqos44OO44OW44Om44KtDQor44OK44Kr44K344OeLOODpOOCueODkuODrQ0KK+ODiuOCq+OCvyzjgrPjgqbjgqTjg4ENCivjg4rjgqvjgr8s44Ki44Kt44KzDQor44OK44Kr44Ok44OeLOODiuOCquODpOOCuQ0KK+ODiuOCq+ODpOODnizjg5Ljg63jg5Xjg58NCivjg4rjgqvjg6Tjg54s44Ki44Kt44OS44OtDQor44OK44Kr44Ok44OeLOOCseOCpOOCsw0KK+ODiuOCq+OCtuODryzjgqvjg4Tjg6QNCivjg4rjgqvjgrbjg68s44Kx44Kk44K544KxDQor44OK44Ks44Kq44KrLOODpuOCv+OCqw0KK+ODiuODiuOCt+ODoyzjg6jjgrfjg5Ljg60NCivjg4rjg6rjgr8s44OE44Oo44K3DQor44OK44Oq44K/LOODnuOCs+ODiA0KK+ODiuOCuSzjgr/jgrHjgrcNCivjg4rjgrnjgr8s44OS44Ot44K3DQor44OL44K3LOOCq+ODjeODjuODlg0KK+ODi+OCt+ODgCzjg47jg5bjg6bjgq0NCivjg4vjgrfjg6Djg6ks44K144OB44KqDQor44Oe44K144OALOOCv+OCseODkuOCsw0KK+ODi+OCt+ODoOODqSzjg4jjg6LjgrMNCivjg4vjgrfjg6Djg6ks44Oe44K144Om44KtDQor44OL44K344KqLOODqOOCt+OCv+ODgA0KK+ODi+OCt+ODpOODnizjg5/jg4rjgrMNCivjg4vjg4Pjgr8s44Kr44Kq44OqDQor44OO44Ks44OfLOODpOOCueODkuODrQ0KK+ODjuODiuOCqyzjgr/jgqvjg5Ljg60NCivjg47jgrss44OS44OH44KqDQor44OO44K/44OZLOOCt+ODs+OCtA0KK+ODjuODiCzjgrjjg6Xjg7PjgqTjg4ENCivjg47jg4Ys44OS44Ot44KtDQor44OM44Kv44KkLOODnuOCteODkuODrQ0KK+OCquODgSzjgqLjgq3jg5LjgrMNCivjgqrjg4HjgqLjgqQs44OI44K344Om44KtDQor44Kq44OALOODqOOCt+OCq+OCug0KK+OCquOCrOOCteODr+ODqSzjg6bjgqbjgrgNCivjgqrjgqzjg68s44Oo44Km44K4DQor44Kq44Ks44OvLOOCs+OCpuOCuA0KK+OCquOCrOODryzjg57jgrXjg5LjgrMNCivjgqrjgqzjg68s44Oe44K144OkDQor44Kq44Ks44OvLOODiuOCquOCv+OCsQ0KK+OCquOCrOODryzjg4jjg6Ljg58NCivjgqrjgq7jg44s44Oe44Kz44OIDQor44Kq44Kq44OQLOODnuOCteODkuODhw0KK+OCv+OCreODn+ODpCzjg6bjgq3jgqoNCivjgqrjgqrjg4/jgrcs44K/44OA44Om44KtDQor44Kq44Kq44OP44K3LOOCv+OCr+ODn+ODsw0KK+OCquOCquOCpCzjg4HjgrXjg4gNCivjgqrjgqrjgqvjg68s44Ko44OfDQor44Kq44Kq44Oi44OqLOOCuOODpeODs+OCqw0KK+OCquODoOODqSzjg57jg6YNCivjgqrjg4rjgqvjg4/jg6ks44K/44Kx44OE44KwDQor44Kq44Kq44OL44K3LOODqOOCt+ODjuODqg0KK+OCquODjizjgqLjgq3jgrMNCivjgqrjgqrjgqrjgqss44K/44Kr44K3DQor44Kq44K344OeLOODjuODlg0KK+OCquOCt+ODnizjgrHjg7PjgqTjg4ENCivjgqTjgrHjg57jg4Qs44K/44Kr44KzDQor44Kq44Kq44K/LOOCv+OCseOCtw0KK+OCquOCquOCvyzjgr/jgqvjgrcNCivjgqrjgqrjgr8s44K144OB44KzDQor44Kq44Kq44K/LOOCv+ODn+OCsw0KK+ODleOCr+ODgCzjg5/jgqgNCivjgqrjgrzjgq0s44Kx44Kk44Kk44OBDQor44Kq44Kk44OALOODkuODiOOCtw0KK+OCquOCpOOCuCzjgq/jg4vjg5Ljg60NCivjgqrjgqvjg4As44K344Oz44K4DQor44K544Ku44Oi44OILOOCv+OCq+ODpuOCrQ0KK+OCquOCq+OCtuOCrSzjg6Tjgrnjg5Ljg60NCivjgqrjgqvjgrbjgq0s44Ok44K544K3DQor44Kq44Kr44K244OvLOODkuODiOOCtw0KK+OCquOCr+ODgCzjg4bjg4Tjg6QNCivjgqrjgq/jg4As44Oe44K144KtDQor44Kq44Kv44Og44OpLOOCt+OCsuODqw0KK+OCquOCr+ODoOODqSzjg5Ljg4fjg5Ljg4gNCivjgqrjgq/jg44s44Kz44Km44K/44Ot44KmDQor44Kq44Kv44Ok44OeLOOCouOCreODkuODrQ0KK+OCquODjizjg4rjgqrjg58NCivjgqrjgqrjg4zjgq0s44OS44OH44OO44OqDQor44Kq44Kq44OP44K3LOODiOOCt+OCqg0KK+ODiOOCquODpCzjg57jgrXjg5Ljg60NCivjgqrjg4jjgrDjg60s44OO44OW44Om44KtDQor44K144Kk44K044KmLOOCv+OCseODkuODrQ0KK+OCteOCpOODiOOCpizjg6jjgrfjgr/jg63jgqYNCivjgrXjgqTjg4jjgqYs44Ki44Kt44OS44K1DQor44K144Kk44OI44KmLOODleODn+ODkuOCsw0KK+OCteOCpOODiOOCpizjg5Ljg63jgq0NCivjgrXjgqTjg4jjgqYs44OS44Ot44K3DQor44K144Kk44OI44KmLOOCuOODpeODsw0KK+OCteOCpOODiOOCpizjgqvjg7PjgrgNCivjgrXjgqvjgqjjg4Djg4ss44Of44KrDQor44K144Kr44KkLOODjuODluODpOOCuQ0KK+OCteOCq+OCpCzjg4jjgq/jgrjjg63jgqYNCivjgrXjgqvjgr8s44OE44Oo44K3DQor44K144Kr44K/LOOCq+OCuuODkuOCsw0KK+OCteOCr+ODnizjgr/jgqvjg5Ljg60NCivjgrXjgq/jg6njg5Djg6Tjgrcs44Ki44OE44K3DQor44K144Kv44Op44KkLOODnuODhOOCqg0KK+OCteOCr+OCvyzjg6jjgrfjgqLjgq0NCivjgrXjgrXjgq0s44Oe44K144Kr44K6DQor44K144K144KtLOOCouOCreODqQ0KK+OCteOCteOCrSzjgrXjg4HjgrMNCivjgrXjgrXjgq0s44Oo44K344Om44KtDQor44K144K144OhLOODqOOCpuOCpOODgQ0KK+OCteODiOOCpizjgqvjgrrjg47jg6oNCivjgrXjg4jjgqYs44Oe44K144OS44KzDQor44K144OI44KmLOODqOOCt+ODkuODrQ0KK+OCteODiOOCpizjg6jjgrfjg63jgqYNCivjgrXjg4jjgqYs44OP44K444OhDQor44K144OI44KmLOODkuODreODnw0KK+OCteODiOOCpizjg5Ljg63jgrcNCivjgrXjg4jjgqYs44Kz44Km44K4DQor44K144OI44KmLOOCt+ODp+OCpuOCuA0KK+OCteODiOOCpizjg6TjgqgNCivjgrXjg4jjgqYs44Kv44Of44KzDQor44K144OI44KmLOODkuODreODpOOCuQ0KK+OCteODiOOCpizjg6rjgqgNCivjgrXjg6/jg4As44K/44Kr44ONDQor44K144Ov44OP44K3LOOCv+ODhOODpuOCrQ0KK+OCteODr+ODjizjgqvjgrrjg5Ljg60NCivjgrvjgrDjg4Es44K344Ol44Km44OY44KkDQor44K744KtLOODiOODouOCsw0KK+OCu+OCreOCsOODgSzjg6jjgrfjg5Ljg60NCivjgrvjgq3jgrDjg4Es44K144OI44K3DQor44K344OQLOOCq+OCquODqg0KK+OCt+ODkOOCvyzjgqLjg6TjgrMNCivjgrfjg5Djgr8s44Oe44K144OP44OrDQor44K344OW44OkLOOCv+OCq+OCtw0KK+OCt+ODnuODgCzjgrfjg6XjgqbjgrgNCivjgrfjg5/jgros44Kr44OE44Om44KtDQor44Kk44K344Kr44OvLOOCv+OCq+ODpuOCrQ0KK+OCt+ODn+OCuizjg4jjg6Ljg5Ljg60NCivjgrfjg5/jgros44Kr44OE44Om44KtDQor44K344Of44K6LOOCseODs+OCuA0KK+OCt+ODn+OCuizjgrHjg7Pjgr/jg63jgqYNCivjg5Xjgrjjgqjjg4As44Kz44Km44Kk44OB44Ot44KmDQor44K344Oi44Ok44Oe44OALOOCt+ODs+OCpOODgQ0KK+OCt+ODiuOCrOODryzjg4jjg6Ljg5Ljg4cNCivjgrfjg7Pjg6Qs44Of44OE44OO44OqDQor44K344Kq44OfLOOCt+ODs+OCuA0KK+OCt+OCquODhCzjgqvjg4Tjg5LjgrMNCivjgrvjgq3jgrDjg4Es44OI44Kq44OrDQor44OE44OO44OALOOCv+OCq+OCtw0KK+OCt+ODqeOCteOCqyzjgqLjg4TjgqoNCivjgrfjg63jgrfjgr8s44OS44Ot44Om44KtDQor44K344K/44OpLOODkuOCteOCtw0KK+OCt+ODp+OCpizjgrjjg6Xjg7PjgqTjg4ENCivjgrnjgqzjg6/jg6ks44Of44ObDQor44K544Ks44Ov44OpLOOCteODiOOCtw0KK+OCueOCruODouODiCzjgrfjg6fjgqbjgqTjg4ENCivjgrnjgq7jgr8s44OI44Oi44Kr44K6DQor44K544Ku44K/LOODnuOCteODqOODqg0KK+OCueOCruOCvyzjgqvjg4Tjg5LjgrMNCivjgrnjgq7jgqbjg6ks44K144OI44KzDQor44K544Ku44Km44OpLOODiOODqOODkuOCtQ0KK+OCueOCruODpOODnizjg5/jgrrjg5sNCivjgqTjgrHjgr7jgqgs44Oe44K144OI44K3DQor44K544Ku44Ok44OeLOODkuODreOCouOCrQ0KK+OCueOCqyzjg4jjg6Ljg6bjgq0NCivjgrnjgrHjgqzjg68s44OO44OW44Oo44K3DQor44K544Of44OO44Km44KoLOODkuODh+OCrQ0KK+OCueODn+ODqOOCtyzjgr/jg43jgqvjgroNCivjgrnjg5/jg6jjgrcs44OI44K344Of44OEDQor44K544OK44OfLOODkuODreODpuOCrQ0KK+OCueOCuuOCrSzjg6Tjg4Hjg6gNCivjgrnjgrrjgq0s44Oe44Oi44OrDQor44K544K644KtLOOCouOCreODkuODrQ0KK+OCueOCuuOCrSzjgqLjgq3jg6kNCivjgrnjgrrjgq0s44OS44Ot44Ki44KtDQor44K544K644KtLOOCpOODg+ODmuOCpA0KK+OCueOCuuOCrSzjg57jgrXjg4gNCivjgrnjgrrjgq0s44OO44OW44Ki44KtDQor44K344On44Km44K4LOOCt+OCug0KK+OCt+ODp+OCpizjgrfjg6fjgqbjgr/jg63jgqYNCivjgr/jg5Djgr8s44K944Km44Kk44OB44Ot44KmDQor44K/44OALOODiOOCt+OCqg0KK+OCv+ODieOCs+ODrSzjg5Ljg4fjg6bjgq0NCivjgr/jgqzjg58s44Kz44Km44K4DQor44K/44Kw44OBLOOCv+OCq+OCtw0KK+OCv+OCsOODgSzjg5Ljg63jgqLjgq0NCivjgr/jgqQs44Oe44K144OG44OrDQor44K/44Kk44OpLOOCouODhOOCtw0KK+OCv+OCpOOCtSzjg5/jg4Tjg5Ljg60NCivjgr/jgrjjg54s44Kt44Oo44K3DQor44K/44Kr44OALOOCv+ODgOODiuOCqg0KK+OCv+OCq+ODgCzjgqjjg4Tjg63jgqYNCivjgr/jgqvjgq4s44OG44OE44Ot44KmDQor44K/44Kr44OP44K3LOOCouODhOODpA0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jgrcNCivjgr/jgqvjg4/jgrcs44OI44Kq44OrDQor44K/44Kr44OP44K3LOODiuOCquOCrQ0KK+OCv+OCq+ODj+OCtyzjgrXjg4jjgrcNCivjgr/jgqvjg4/jgrcs44Om44Km44K4DQor44K/44Kr44OP44K3LOODiOOCt+OCqg0KK+OCv+OCq+ODj+OCtyzjg6bjgqbjgrnjgrENCivjgr/jgqvjg4/jgrcs44OK44Kq44KtDQor44K/44Kr44OP44K3LOODqOOCt+ODleODnw0KK+OCv+OCq+OCpCzjgrfjg47jg5YNCivjgr/jgqvjg44s44Kr44Oz44KzDQor44K/44Kr44K344OeLOODiuOCquODpA0KK+OCv+OCq+ODpOODnizjg5Ljg4fjg4TjgrANCivjgr/jgrHjg4As44Kr44K644Oo44K3DQor44K/44Kx44Kk44OBLOOCseOCpOOCueOCsQ0KK+OCv+OCseODnuOCtSzjgrHjg7PjgqTjg4ENCivjgr/jgrHjg6Djg6ks44K344ObDQor44K/44Kx44Og44OpLOOCt+ODpeODs+OCueOCsQ0KK+OCv+OCseODiuOCqyzjg4rjgqrjg4gNCivjgr/jgrHjgrfjgr8s44K344On44Km44K+44KmDQor44K/44Kx44Km44OBLOOCouODhOODiA0KK+OCv+OCseOCpuODgSzjg5Ljg4jjgrcNCivjgr/jgrHjgqbjg4Es44Ko44Kk44Kk44OB44Ot44KmDQor44K/44Kt44Kr44OvLOOCouODhOOCtw0KK+OCv+OCreOCreOCvyzjgr/jgqvjgrcNCivjgr/jgq3jgrbjg68s44OS44OH44OIDQor44K/44KzLOODqOOCt+OCrQ0KK+OCv+OCq+ODjizjg6Ljg4jjg6bjgq0NCivjgr/jg57jgqzjg68s44OS44Ot44Om44KtDQor44K/44Oe44KtLOOCquOCteODoA0KK+OCv+ODoOODqSzjgqvjgrrjgr/jgqsNCivjgr/jg4rjg5ks44OS44Ot44OO44OWDQor44K/44OK44OZLOODleODn+OCqg0KK+OCv+ODiuOCqyzjgq3jg6fjgqbjg5jjgqQNCivjgr/jg4rjgqss44Kt44On44Km44KzDQor44K/44OK44KrLOODn+ODmw0KK+OCv+ODiuOCqyzjg6jjgrfjg5LjgrUNCivjgr/jg4rjgqss44Oo44Km44KzDQor44K/44OK44KrLOODnuOCteODqOOCtw0KK+OCv+ODiyzjgqvjgrrjg4rjg6oNCivjgr/jg4vjgrDjg4Es44OO44OW44OS44OtDQor44K/44OL44K344On44KmLOOCt+ODs+OCtA0KK+OCv+ODhuODpOODnizjg6jjgrfjg5Xjg58NCivjgr/jg4Tjg58s44Oe44K544OfDQor44K/44Km44OpLOOCv+OCq+ODiOOCtw0KK+OCv+OCtuODryzjg4jjg6Ljg6bjgq0NCivjgr/jgrrjgrEs44K744Kk44Kk44OBDQor44OG44Op44OALOOCseOCpOOCsw0KK+ODiOOCpuODnizjgqvjgrrjg5Ljg60NCivjg4jjgqrjg6Tjg54s44Kr44K644OS44OtDQor44OI44Oh44Kq44KvLOOCouOCreOCqg0KK+ODiOODn+OCpOOCqCzjg4/jg6Tjg4gNCivjg5Xjgr/jg4Tjgq4s44OS44Ot44K3DQor44OI44Oi44OI44K3LOOCseODs+OCuA0KK+ODiOODjeOCrOODryzjgqLjgq3jgrMNCivjgqrjgq/jg6Djg6ks44OO44Oq44OS44KzDQor44OI44K344K344KyLOODkuODreOCtw0KK+ODiOODqOODgCzjgqvjgrrjg4rjg6oNCivjg4jjg6jjg4rjgqss44Oe44K144OkDQor44OE44OQ44KtLOODhuODhOODpA0KK+ODhOODgeODouODiCzjg5Xjg5/jgqoNCivjg4Tjg4As44K144OI44K3DQor44OE44OALOOCq+ODqA0KK+ODhOODgCzjg4jjgrfjgqgNCivjg4TjgrjjgqQs44OI44Oi44K/44KrDQor44OE44K444Og44OpLOODjuODquOCsw0KK+ODhOOCq+ODj+ODqSzjg4jjgrfjg63jgqYNCivjg4Tjg47jg4As44K344On44Km44K4DQor44OE44Or44KuLOODj+ODq+ODkuOCsw0KK+ODhOODq+OCvyzjg4bjg6vjg5LjgrMNCivjg4Tjgrfjg54s44Kt44OM44OoDQor44OE44OE44KkLOODkuODreODpuOCrQ0KK+ODhOODgeODgCzjgqvjg4Tjg6bjgq0NCivjgqbjg4Hjg4As44K144OI44OrDQor44Km44OB44OALOOCv+OCr+OCuA0KK+OCpuODgeOCr+ODqSzjgr/jgrHjgrcNCivjgqbjg4Hjgr/jg4ss44Kr44OE44KzDQor44Km44Ko44OALOOCteOCreOCsw0KK+OCpuOCqOODgCzjg4HjgqgNCivjgqbjgqjjg4As44Ks44KvDQor44Km44Ko44OALOOCouOCreODjuODqg0KK+OCpuOCqOODoOODqSzjg5Ljg63jgrMNCivjgqbjgqjjg44s44OS44Ot44K3DQor44Km44Ko44OE44KtLOODnuOCrQ0KK+OCpOOCsSzjg57jgrXjg6sNCivjgqbjg6Hjg4As44Of44ObDQor44Km44Oh44Og44OpLOODiuODhOOCsw0KK+OCpuODjuOCrSzjg47jg5bjg5LjgrMNCivjgqbjg6njgrfjgr8s44OI44Oi44KzDQor44Km44Op44K/LOODiOODouODpuOCrQ0KK+OCpuOCt+OCqizjg6jjgrfjgqoNCivjgqbjgr/jgqzjg68s44OG44OE44OkDQor44Ov44OALOODiOODouOCsw0KK+ODr+ODgCzjgqLjgq3jg5Ljg4gNCivjg6/jg4As44OS44Ot44K/44OEDQor44Ov44OALOODnuOCteODkuODrQ0KK+ODr+OCrOODhOODnizjgrfjg6fjgqbjgqTjg4ENCivjg6/jgqvjg57jg4Qs44Om44Km44K4DQor44Ov44Kt44K/LOODkuODreOCouOCrQ0KK+ODr+OCsyzjg5Ljg63jgqvjgroNCivjg6/jg6rjgqvjgr8s44OK44Kq44Om44KtDQor44Ov44K344K6LOOCt+ODp+OCpg0KK+ODr+OCv+ODiuODmSzjgrfjg6Xjg7PjgrgNCivjg6/jgr/jg4rjg5ks44Oo44K344Om44KtDQor44Ov44K/44OK44OZLOODiOOCt+OCqg0KK+ODr+OCv+ODiuODmSzjgqzjgq8NCivjg6/jgr/jg4rjg5ks44OS44Ot44OV44OfDQor44Kq44Og44OpLOODkuODreODkuODhw0KK+ODr+OCv+ODiuODmSzjgrPjgqbjgrvjgqQNCivjg6/jgr/jg4rjg5ks44OK44Kq44KzDQor44Ov44K/44OK44OZLOODquODpeOCpuOCpOODgQ0KK+ODr+OCv+ODiuODmSzjg4bjg4Tjg63jgqYNCivjg6Tjgq4s44OI44Oi44OfDQor44Ok44KuLOODpuOCpuOCsw0KK+ODpOODnuODgCzjgr/jgqvjg4gNCivjg6Tjg57jg4As44OO44Oq44OI44K3DQor44Ok44Oe44OALOODkuODh+ODleODnw0KK+ODpOODnuODgCzjgrfjgrLjgqoNCivjg6Tjg57jg4As44K/44Kx44OS44OtDQor44Ok44Oe44OV44KvLOODkuODh+OCqg0KK+ODpOODnuOCsOODgSzjg57jg6rjgrMNCivjg6Tjg57jgrDjg4Es44Oo44Km44K4DQor44Ok44Oe44Kw44OBLOODqOOCpuOCsw0KK+ODpOODnuOCsOODgSzjg5Ljg63jgqvjgroNCivjg6Tjg57jgrgs44OI44Kq44OrDQor44Ok44Oe44Kr44OvLOOCs+OCpuOCuA0KK+ODpOODnuODouODiCzjgr/jgqvjg47jg6oNCivjg6Tjg57jg6Ljg4gs44Kx44Oz44Kk44OBDQor44Ok44Oe44Oi44OILOODn+ODhOOCvuOCpg0KK+ODpOODnuODouODiCzjg6bjgq3jgrMNCivjg6Tjg57jg6Ljg4gs44OS44Ot44Ok44K5DQor44Ok44Oe44Oi44OILOOCs+OCpuOCuA0KK+ODpOODnuODouODiCzjg57jgrXjgq0NCivjg6Tjg57jg6Ljg4gs44Om44Km44K4DQor44Ok44Oe44Oi44OILOODpuOCv+OCqw0KK+ODpOODnuODiizjgrvjgqTjgqTjg4Hjg63jgqYNCivjg6Tjg57jgrXjgq0s44Kr44OE44OfDQor44Ok44Oe44K344K/LOODjuODquODiOOCtw0KK+ODpOODnuOCt+OCvyzjg4jjgqrjg6sNCivjg6Tjg57jgrbjgq0s44OS44Ot44K3DQor44Ok44OK44KuLOODquODp+OCpg0KK+ODpOODjizjgrHjg7Pjgr/jg63jgqYNCivjg6Tjgrfjg60s44K/44Kx44K3DQor44Ok44K544KkLOODleODiOOCtw0KK+ODpOOCueODoOODrSzjgr/jgqvjgrcNCivjg6Tjgrnjgqbjgrgs44Oo44K344Om44KtDQor44Oo44Kz44KoLOODkuODh+ODjuODqg0KK+ODqOOCs+OCpCzjg57jg6QNCivjg6jjgrPjg5/jgr4s44Kt44Oo44K344KyDQor44Oo44Kz44Ok44OeLOODnuOCteODkuOCsw0KK+ODqOODjeOCtuODryzjgqvjgrrjg5LjgrMNCivjg6jjgrfjg4As44Kx44Oz44OkDQor44Oo44K344OALOODjuODluODkuODrQ0KK+ODqOOCt+ODgCzjgqvjg4Tjg6QNCivjg6jjgrfjg4As44Kr44K644Ki44KtDQor44Oo44K344OALOODiOODouODnw0KK+ODqOOCt+OCpCzjgrfjgrLjg4gNCivjg6jjgrfjg6Djg6ks44OG44Or44Kr44K6DQor44Oo44K344Ok44OeLOOCqOOCpOOCuA0KK+ODqOOCt+OCtuODryzjgrXjg4HjgrMNCivjg5Xjgrjjgrfjg54s44Kx44Oz44K/44Ot44KmDQor44Om44Ki44K1LOOCseOCpA0KK+ODpuOCrSzjgrvjg4TjgrMNCivjg6bjgq0s44Ki44Kt44OoDQor44Om44KkLOODgOOCpOOCueOCsQ0KK+OCouODgOODgSzjg4rjgqrjgr/jgrENCivjg5Djg7Ms44K/44Kr44K3DQor44OV44Or44KkLOODqOOCt+ODjuODqg0KK+ODj+OCu+OCrOODryzjg4/jgrjjg6ENCivjg5Ljg6njgqvjg68s44Oe44OK44OWDQor44Kk44OI44KmLOODiOOCt+ODkuOCsw0KK+OCpOODr+OCteOCrSzjg6rjg6fjgqbjgrgNCivjgqvjg4jjgqYs44Kx44Oz44K4DQor44Kr44Ov44OP44OpLOODqOOCt+ODn+ODhA0KK+ODnuOCqOODj+ODqSzjgqrjgrXjg6ANCivjg57jg4Tjgr/jg4ss44K344Ky44KqDQor44Oi44Oq44Kk44OBLOOCqOOCpOOCuOODreOCpg0KK+ODi+OCt+OCpuODgSzjg47jg5bjg6bjgq0NCivjg5Xjgrjjg57jgq0s44K/44Kk44K+44KmDQor44Kq44Kq44OP44OpLOOCv+OCq+OCtw0KK+OCteODiuODgCzjg5Ljg4fjgqLjgq0NCivjgr3jg40s44OE44OI44OgDQor44OI44OO44Og44OpLOODqOOCt+ODpuOCrQ0KK+OCt+ODn+OCuizjgrHjgqQNCivjg5/jgrfjg54s44Oe44Oq44KzDQor44OV44K444K/LOOCv+ODreOCpg0KK+ODleOCuOOCvyzjg5Ljg4fjgq0NCivjg5Xjgrjjgr8s44Oo44KmDQor44OV44K444Ov44OpLOOCs+OCpuOCuOODreOCpg0KK+ODleOCuOODpeOCpizjgrfjg7PjgqTjg4ENCivjg5Xjgqvjg4As44K/44Kv44OkDQor44OV44Kv44OALOODpuOCv+OCqw0KK+ODleOCr+ODkuOCtSzjg4rjgqrjgr/jgqsNCivjg5Xjgq/jgrbjg4gs44Ki44OkDQor44OV44Kv44K244OvLOOCv+OCq+OCtw0KK+ODleODq+OCteODryzjgq3jg4/jg6sNCivjg4/jgqzjg68s44K/44Kr44K3DQor44OP44KuLOODkuODreOCv+OCqw0KK+ODj+ODqeODgCzjg5/jg4Tjg6sNCivjg4/jg6njg4As44OO44OW44OS44OtDQor44OP44Op44OALOODnuOCrQ0KK+ODj+ODqeODnuOCrSzjg4rjgqrjgrMNCivjg4/jgrvjgqzjg68s44Oq44KoDQor44OP44K744Ks44OvLOODkuODh+OCouOCrQ0KK+ODj+OCt+OCqizjg6bjgqsNCivjg4/jgrnjg58s44OS44Ot44K3DQor44OP44K544OfLOOCseODs+OCpOODgeODrQ0KK+ODj+ODg+ODiOODqizjg6jjg6rjgrMNCivjgqTjgrfjgqvjg68s44OW44Oz44Oa44KkDQor44OP44Ok44K3LOOCv+OCq+OCsw0KK+ODkuODqeODjizjgr/jgq/jg6QNCivjg5Ljg6njg44s44Kr44K644Ki44KtDQor44OS44Op44OOLOODiOOCt+OCouOCrQ0KK+ODkuODreODmSzjg5Ljg4fjgq0NCivjgrfjg47jg4As44Kx44Oz44K4DQor44OS44K144OALOOCv+OCq+ODpuOCrQ0KK+ODmyzjgr/jgrHjgrcNCivjg5vjg7PjgrTjgqYs44OG44Or44OS44KzDQor44Ob44K3LOODn+ODgeOCsw0KK+ODm+OCt+ODjizjg57jgrXjgq0NCivjg5vjgr3jgqvjg68s44OS44Ot44Kr44K6DQor44Ob44K944OOLOODpuODnw0KK+OCq+ODiOOCpizjg6jjgrfjg63jgqYNCivjgqTjgq4s44Oo44Km44KzDQor44Kk44Kx44OALOODiOOCt+ODpuOCrQ0KK+OCpOOCr+ODrSzjg47jg6rjg5Ljg60NCivjgqTjg57jgqQs44Kr44K644Oo44K3DQor44Kk44OK44OALOOCs+OCpuODmOOCpA0KK+OCpOODjuOCsOODgSzjgr/jgqvjg6bjgq0NCivjgqTjgrfjgrDjg60s44OE44Kw44Kr44K6DQor44Kk44K344Kr44OvLOODkuODreOCrQ0KK+OCpOOCt+OCq+ODryzjgrHjg7PjgrgNCivjgqTjgrfjgrbjgq0s44Om44Kr44OqDQor44Kk44K344K844KtLOODqOOCt+ODiA0KK+OCpOODiOOCpizjg4bjg4Tjg6QNCivjgqTjg4jjgqYs44Oe44K144Oo44K3DQor44Kk44OI44KmLOODiuOCquOCrQ0KK+OCpOODiOOCpizjg6jjgrfjg58NCivjgqTjg57jgqzjg68s44Kx44KkDQor44Kk44K244OvLOOCs+OCpuOCuA0KK+OCpOOCuuODnyzjgrfjg6fjgqbjgrgNCivjgqTjgrrjg5/jg4Djg4Ys44OO44Oq44OI44K3DQor44Kr44OW44Op44KuLOOCq+OCquODqg0KK+OCq+ODn+ODpOODnizjg4jjgqrjg6sNCivjgqvjg4rjg6Tjg54s44Kz44Km44K4DQor44Kr44OK44K244OvLOOCuOODreOCpg0KK+OCq+ODs+ODkOODqSzjgqvjg4Tjg6jjgrcNCivjgqvjg7Pjg4As44Om44Km44KzDQor44Kr44Oz44OALOODn+OCueODnuODqw0KK+OCq+ODjeOCsyzjg4rjg6rjg4jjg6INCivjgqvjgrfjg6Djg6ks44OS44Ot44K3DQor44Kr44K/44Ku44OqLOOCt+ODs+OCueOCsQ0KK+OCq+ODiOOCpizjg5Ljg63jg47jg6oNCivjgqvjg4jjgqYs44OO44OW44OS44K1DQor44Kr44Ov44OALOODj+ODq+ODnw0KK+OCq+ODr+OCueODnyzjg6jjgqbjgrMNCivjgq3jg4ks44K344Ol44Oz44Kk44OBDQor44Kt44Kv44OBLOODjuODluODkuODrQ0KK+OCreODouODiCzjgr/jgq/jg6QNCivjgq3jg6Djg6ks44Kx44Oz44K/DQor44Kt44Oz44OJLOODn+ODgeODj+ODqw0KK+OCreOCv+ODoOODqSzjg5/jg5sNCivjgq3jgr/jg44s44K144OA44KqDQor44Kt44K/44Ov44K/44K7LOOCueOCueODoA0KK+OCreODg+OCvyzjg6TjgrnjgrMNCivjgq3jg6Tjg54s44K744Kk44K4DQor44Kt44Oo44K/LOODkuODreODpuOCrQ0KK+OCs+ODkOODpOOCtyzjgrjjg6Xjg7PjgrgNCivjgrPjg5Djg6Tjgrcs44Oo44Km44KzDQor44Kz44KsLOOCouODhOODpA0KK+OCs+ODj+ODqSzjgr/jgqvjg6bjgq0NCivjgrPjgrjjg4os44Kx44OzDQor44Kz44Oz44OOLOOCseOCpOOCtA0KK+OCs+OCuuOCqyzjg57jgrXjgq0NCivjgrPjgqTjg4cs44K344Oz44K4DQor44Kz44Oe44OELOODquODpeOCpuOCueOCsQ0KK+OCs+ODn+ODiuODiCzjgrfjg6XjgqbjgrgNCivjgrPjg6Ljg6os44K144OI44KzDQor44Kz44Oz44OJLOODkuODreODkuOCsw0KK+OCs+ODi+OCtyzjg47jg6rjgrMNCivjgq/jg5zjg6Tjg54s44K/44OA44Ki44KtDQor44Kv44Oe44Ks44KkLOODquODp+OCpuOCuA0KK+OCr+ODnuOCvyzjgr/jgqvjgrMNCivjgq/jg6rjg4/jg6ks44K/44Kx44K3DQor44Kv44Oq44OP44OpLOOCseOCpOOCsw0KK+OCr+ODquOCvyzjgrXjg4jjgrcNCivjgq/jgrXjg44s44OS44Ot44OV44OfDQor44Kv44K344OALOOCouOCreODkuOCsw0KK+ODnuOCqOODgCzjg6bjgq0NCivjg57jgq0s44Kx44Kk44K544KxDQor44Oe44Kt44K/LOOCt+ODs+OCuA0KK+ODnuODq+ODpOODnizjg4Tjg43jgqoNCivjg57jgrnjg4As44OA44Kk44OBDQor44Oe44OE44OQ44OpLOODgeOCq+ODqQ0KK+ODnuODhOODkOODqSzjg5Ljg4fjg4jjgrcNCivjg57jg4TjgqQs44Kx44Kk44KzDQor44Oe44OE44Oi44OILOODnuOCteODpuOCrQ0KK+ODnuODhOODoOODqSzjgrfjg7Pjgr/jg63jgqYNCivjg57jg4Tjgqos44Kr44K644OS44OtDQor44Of44Kr44OfLOODn+ODhOOCqg0KK+ODn+OCrSzjgr/jgqvjgqLjgq0NCivjg5/jg47jgqbjg6ks44K744Kk44K4DQor44Of44K344OeLOOCseODs+OCpOODgQ0KK+ODn+ODhOODiuOCrCzjg6jjgrfjg6bjgq0NCivjg5/jgqbjg6ks44Oe44K144OO44OqDQor44Of44OvLOOCv+OCq+ODjuODlg0KK+ODn+ODpOOCqizjg6Tjgrnjg4/jg6sNCivjg5/jg6Tjgr8s44Kr44OK44KmDQor44Of44K644K/44OLLOOCq+OCuuODkuOCsw0KK+ODn+OCuuOCv+ODiyzjg5Ljg4fjg47jg5YNCivjg6Ljg4Hjgrrjgq0s44Of44OE44OrDQor44Oi44OB44K644KtLOOCr+ODn+OCsw0KK+ODouODgeOCuuOCrSzjg47jg5bjg6bjgq0NCivjg6Ljgq4s44OS44Ot44K3DQor44Oi44OqLOOCteODiOODqw0KK+ODouODqizjgr/jg4Djg5LjgrMNCivjg6Ljg6os44K/44OA44Om44KtDQor44Oi44OqLOODiOODouODkuOCtQ0KK+ODouODqizjg4jjgrfjgq0NCivjg6Ljg6rjg6Tjg54s44OI44K344KqDQor44Oi44Ot44Kq44KrLOODpuOCrQ0KK+ODouODiOODkCzjg4DjgqTjgrXjgq8NCivjg6Djg43jg4gs44Kr44OE44Oe44K1DQor44Og44Op44KkLOODqOOCt+OCsw0KK+ODoOODqeOCquOCqyzjgrHjg7MNCivjg6Djg63jgqQs44OS44OH44OS44OtDQor44OK44Ks44OV44K4LOOCreODn+ODkuODiA0KK+ODiuOCrOOCpCzjgqLjgq3jg6kNCivjg4rjgqTjg4jjgqYs44Om44Kt44KzDQor44OK44Kk44OI44KmLOOCv+ODreOCpg0KK+ODiuOCq+OCrOODryzjg5/jg47jg6sNCivjg4rjgqvjg4/jg6ks44Of44Ok44KzDQor44OK44Kr44K444OeLOODpuOCv+OCqw0KK+ODiuOCq+OCuOODnizjg57jgrXjg5LjgrMNCivjg4rjgqvjg6Djg6ks44K/44Kx44K3DQor44OK44Kr44Og44OpLOODkuODreOCtw0KK+ODiuOCq+ODoOODqSzjgqLjg6QNCivjg4rjgqvjg6Djg6ks44Ki44Kt44OpDQor44OK44Kr44Og44OpLOOCouOCreODqQ0KK+ODiuOCq+ODoOODqSzjgqLjg4TjgrcNCivjg4rjgqvjg6Djg6ks44OS44K144OIDQor44Ok44Oe44OALOOCv+OCq+OCtw0KK+ODiuOCq+OCqizjgqjjgqTjgrgNCivjg4rjgqvjg4TjgqvjgrUs44Kt44Oo44K3DQor44OK44Kr44Ok44OeLOODnuODqg0KK+ODiuODoOODqSzjg6Djg43jg6bjgq0NCivjg4rjgrnjg44s44OK44Kq44KtDQor44OL44Kk44K844KtLOODiOOCt+ODj+ODqw0KK+ODi+OCt+OCq+ODryzjgrPjgqbjgr7jgqYNCivjg4vjgrfjgq3jgqrjg6os44Oo44K344Ki44KtDQor44OL44K344K244OvLOOCq+ODhOODjuODqg0KK+ODjuOCouOCrSzjg6jjgqbjgrMNCivjg47jg4As44Kx44Oz44K/44Ot44KmDQor44OO44OALOODpuOCpuOCsw0KK+ODjuOCsOODgSzjg5LjgrXjgrcNCivjg47jg6Djg6ks44OS44OH44KtDQor44Kq44OB44Ki44KkLOOCs+OCueOCsQ0KK+ODouODqizjg57jg6rjgrMNCivjgqrjgqzjgrXjg6/jg6ks44Of44OE44OS44K1DQor44Kq44Ks44K144Ov44OpLOOCv+ODhOOCtw0KK+OCquOCrOODryzjg6rjg6fjgqbjgrMNCivjgqrjgqzjg68s44K/44Kr44OS44OtDQor44Kq44Ks44OvLOODpOOCueODkuOCtQ0KK+OCquOCsOODqSzjg5Xjg5/jg47jg6oNCivjgqrjgrDjg6ks44Oe44K144KtDQor44Kq44Kq44Kk44K3LOODkuODreODpA0KK+OCquOCquOCq+ODryzjg4jjgrfjgqLjgq0NCivjgqrjgqrjgqvjg68s44K444Ol44Oz44KzDQor44Kq44Kr44K8LOODiuOCquOCrQ0KK+OCquOCrSzjg4bjg4Tjg6QNCivjgqrjg6Djg6ks44Ki44OE44K3DQor44Kq44Kq44K544OfLOODnuOCteODkuODrQ0KK+OCquOCquOCvyzjg5Xjg5/jg5LjgrMNCivjgqrjgqrjgr/jgrEs44OG44OE44K4DQor44Kq44Kq44K/44OLLOOCseODsw0KK+OCquOCquODpOODnizjgrHjg7PjgrgNCivjgqrjgrzjgq0s44OS44Ot44K3DQor44Kq44Kr44Oi44OILOOCuOODpeODsw0KK+OCquOCq+ODoOODqSzjgrPjgqbjgrfjg7MNCivjgqrjgqvjg6Djg6ks44Oe44Oi44OrDQor44Kq44Kv44Og44OpLOODnuODiuODnw0KK+OCquODs+ODgCzjg47jg6rjg5LjgrMNCivjgqrjg47jg4fjg6ks44OO44Oq44Om44KtDQor44Kq44Ok44OZLOOCv+OCq+ODjuODqg0KK+OCteOCrCzjg4jjgrfjgqLjgq0NCivjgrXjgqTjg4jjgqYs44Om44Km44KzDQor44K144Kr44KkLOOCteODiuOCqA0KK+OCpOOCrizjgqLjgq3jg47jg6oNCivjgrXjgqvjg6Ljg4gs44OS44K144ONDQor44K144Kr44Oi44OILOODqOOCt+ODkuODrQ0KK+OCteOCq+ODhOOCrizjgqvjgrrjgqoNCivjgrXjgqvjgqbjgqgs44Kx44Oz44K4DQor44K144Kv44OeLOODnuODquOCsw0KK+OCteOCr+ODqSzjgqjjgqTjgq0NCivjgrXjg4rjg4As44Oo44K344OS44OtDQor44K144K144KtLOOCv+OCseOCqg0KK+OCteOCteOCrSzjg4rjgqrjg6QNCivjgrXjg4jjgqYs44Kr44OE44Om44KtDQor44K144OI44KmLOOCv+OCq+ODkuODrQ0KK+OCteODiOOCpizjg4jjgrfjgqLjgq0NCivjgrXjg4jjgqYs44K344Ol44Km44Kk44OBDQor44K144OI44KmLOODkuODh+ODkuOCtQ0KK+OCteODiOOCpizjgqvjg4Tjg5Ljg60NCivjgrXjg4jjgqYs44Kt44On44Km44KzDQor44K144OI44KmLOODpOOCueODkuODiA0KK+OCteODiOOCpizjgqvjgrrjg5Ljg4cNCivjgrXjg4jjgqYs44K144OI44OfDQor44K744Kk44KxLOODnuOCteODjuODqg0KK+OCu+OCrSzjg6jjgqbjgqTjg4ENCivjgrvjgq0s44OG44OE44OkDQor44K744KtLOODhuODhA0KK+OCu+OCreOCsOODgSzjgr/jgrHjgrcNCivjgrvjgr8s44OI44K344KqDQor44K344Oz44Ks44KkLOOCouOCreOCsw0KK+OCt+ODkOOCvyzjg6jjgrfjgrMNCivjgrfjg5Djgr8s44Om44Kt44OO44OqDQor44K344OW44KtLOOCuOODreOCpg0KK+OCt+OCsuODiOODnyzjgqvjgrrjg5/jg4QNCivjgrfjgqws44OS44Ot44K3DQor44K344Kk44OQLOODn+OCqw0KK+OCt+ODnuODgCzjgqTjg4Hjg63jgqYNCivjgrfjg57jgqvjg68s44K344Ky44OrDQor44K344Of44K6LOOCueOCueODoA0KK+OCt+ODn+OCuizjgr/jgqvjg4Tjg4oNCivjgrfjg5/jgros44Kq44K144OgDQor44K344Of44K6LOOCv+OCq+OCtw0KK+OCt+ODouODoOODqSzjgr/jgqvjgrcNCivjgrfjg6Ljg6Djg6ks44Ki44Kt44OpDQor44K344Kq44K444OqLOODkuODreOCtw0KK+OCt+OCquOCtuODryzjgqLjg6TjgrMNCivjgrfjg6njgqQs44Om44Km44KzDQor44K344Op44Kr44OvLOODleODn+OCqA0KK+OCveODnuODsyzjgrjjg7MNCivjgr3jgqbjg6Qs44Oe44K144OIDQor44K944OO44OALOODnuODpuODnw0KK+OCueODgCzjg4jjg6Ljg4/jg6sNCivjgrnjgqzjg44s44Kx44Oz44Kk44OBDQor44K544Ks44OM44OeLOOCteODiOOCtw0KK+OCueOCrOODryzjgrvjgqTjgqTjg4ENCivjgrnjgq7jgqbjg6ks44Kt44On44Km44K544KxDQor44K544Ku44Ok44OeLOODiOODouODkuODrQ0KK+OCueOCuuOCrSzjgrHjg7MNCivjgrnjgrrjgq0s44Kz44Km44K4DQor44K544K644KtLOOCouODhOOCtw0KK+OCueOCuuOCrSzjgrfjg7PjgqTjg4Hjg63jgqYNCivjgrfjg6fjgqbjgrgs44OG44OE44OkDQor44K/44Kw44OBLOOCq+ODhOODpA0KK+OCv+OCpOODqSzjgr/jg4Djg4gNCivjgr/jgrjjg54s44Oq44KoDQor44K/44Kr44OALOOCv+OCq+ODjuODqg0KK+OCquOCq+ODpOODnizjgqLjgrXjgrMNCivjgr/jgqvjgq7jgrcs44Of44Kr44KzDQor44K/44Kr44OP44K3LOOCt+ODs+OCpOODgeODreOCpg0KK+OCv+OCq+ODj+OCtyzjg6TjgrnjgrcNCivjgr/jgqvjg4/jgrcs44Oe44K144Oo44K3DQor44K/44Kr44OP44K3LOODiOOCquODqw0KK+OCv+OCq+ODj+OCtyzjgq3jg6fjgqbjgrMNCivjgr/jgqvjgq0s44Oo44Km44Kk44OBDQor44K/44Kr44Kq44KrLOOCv+OCr+ODpA0KK+OCv+OCq+OCquOCqyzjg5Ljg63jg6bjgq0NCivjgqTjg57jgqTjgrrjg58s44Oo44K344KqDQor44K/44Kr44K144OvLOOCv+OCq+OCtw0KK+OCv+OCq+OCuSzjg4Tjg6jjgrcNCivjgr/jgrHjgqQs44K744OE44KzDQor44K/44Kx44OK44KrLOOCv+OCseOCtw0KK+OCv+OCseOCtuOCrSzjg6jjgrfjgrMNCivjgr/jg57jgqTjgrcs44OS44OH44Ki44KtDQor44K/44Oe44KtLOOCt+OCsuODqw0KK+OCv+ODiuOCqyzjgqLjgq3jg6kNCivjgr/jg4vjgrDjg4Es44OK44Kq44KtDQor44K/44Km44OBLOODkuODreODiuOCqg0KK+ODhuODqeODn+ODhCzjg4DjgqTjgrnjgrENCivjg4jjg4As44Oe44OkDQor44OI44Of44OK44KsLOOCt+ODs+OCpOODgeODreOCpg0KK+ODiOODn+OCvyzjgqLjgq3jg6gNCivjg4jjg7PjgrDjgqYs44OS44OH44OI44K3DQor44OE44ON44Kr44OvLOODkuODreODleODnw0KK+ODhOODhOOCpCzjgqvjg4Tjg6jjgrcNCivjgqbjg4Hjg4As44K/44Kx44K3DQor44Km44OB44OP44K3LOOCv+OCr+OCqg0KK+OCpuOCqOODgCzjg57jgrXjg5LjgrMNCivjgqTjg4jjgqYs44Oo44Km44Kk44OBDQor44Km44Ko44OALOODkuODreOCtw0KK+OCpuOCqOODj+ODqSzjg5Ljg4fjgqLjgq0NCivjg5Xjgrjjgr8s44K344ObDQor44Km44Oh44OALOODhuODhOODpA0KK+OCpuODoeODj+ODqSzjg6Tjg6jjgqQNCivjgqbjg6njg5ks44OS44K144KzDQor44Ov44K/44OZLOODpOOCueOCtw0KK+ODpOOCrOOCteOCrSzjgrnjg5/jgqsNCivjg6Tjgq7jg6Ljg4gs44OS44Ot44K3DQor44Ok44K444OeLOOCq+ODhOODnw0KK+ODpOODnuODgCzjg5/jg4HjgrMNCivjg6Tjg57jg4As44K/44Kr44K3DQor44Ok44Oe44OALOODn+OCq+OCsw0KK+ODpOODnuOCsOODgSzjgrXjg4jjgrMNCivjg6Tjg57jgrDjg4Es44OI44Oi44KzDQor44Ok44Oe44Oi44OILOODpOOCueODkuODrQ0KK+ODpOODnuODouODiCzjg6Tjgrnjg5Ljg60NCivjg6Tjg57jg6Ljg4gs44OK44Kq44KtDQor44Ok44Oe44Oi44OILOOCs+OCpuOCuA0KK+ODpOODnuODjSzjgqvjgrrjg5Ljg60NCivjg6Tjg57jgrXjgq0s44OP44Or44OO44OqDQor44Ok44Oe44K344K/LOOCq+OCuuOCrQ0KK+ODpOODnuOCtuOCrSzjg57jgrXjg6bjgq0NCivjg6Tjg57jgrXjgq0s44OI44K344OkDQor44Ok44OK44Ks44OvLOOCv+OCseOCtw0KK+ODpOODiuOCruODgCzjg6TjgrnjgqoNCivjgqrjg44s44OS44OH44OO44OWDQor44Ok44OK44Ku44K144OvLOODpOOCueOCtw0KK+ODpOOCtuOCrSzjg4rjgqrjgq0NCivjg6Tjgrbjg68s44K744Kk44K4DQor44Oo44Kz44Ok44OeLOODkuODreOCsw0KK+ODqOOCs+ODpOODnizjgr/jgrHjgrcNCivjg6jjg6Is44Kt44On44Km44K4DQor44Oo44K344OALOODkuODh+OCqg0KK+ODqOOCt+ODgCzjg6bjgqbjgrgNCivjg6jjgrfjg4As44OP44Or44OS44KzDQor44Oo44K344OP44OpLOOCouODpuODnw0KK+ODqOOCt+ODj+ODqSzjg57jgrXjg5Ljg4cNCivjg6jjgrfjg6Ljg6os44K/44Kr44K3DQor44K844OD44OELOODkuODh+ODqA0KK+OCouODmSzjg6jjgrfjgr/jg4ANCivjgqLjg4Djg4Es44Kz44Km44K4DQor44Ki44Kk44Kr44OvLOODkuODreODleODnw0KK+OCouOCq+OCqCzjg5/jg4HjgrMNCivjgqLjg7Pjg4njgqYs44Oe44KtDQor44Ki44K144OfLOODn+OCtQ0KK+OCpOODnuODiuOCqyzjg4/jg6vjg6gNCivjg5njg4Pjg5cs44Om44Km44K544KxDQor44OZ44OD44OXLOODkuODreOCouOCrQ0KK+ODgeOCq+ODj+ODqSzjgqrjgrXjg6ANCivjg5XjgrjjgqQs44Of44OE44OI44K3DQor44OV44K444K144KtLOOCv+OCq+ODpuOCrQ0KK+ODleOCr+OCt+ODnizjgqLjgrrjgrUNCivjgq/jg63jg4As44OI44K344OfDQor44Oi44OqLOODnuOCteODkuODhw0KK+ODr+OCv+ODiuODmSzjgr/jgqvjgqgNCivjgq/jg63jg4As44Ki44K144KzDQor44Of44Ok44Km44OBLOOCuOODpeODs+OCsw0KK+OCpOODiOOCpizjgq3jgq/jgrMNCivjgqTjgqTjg4As44Oe44Om44OfDQor44Kr44Ov44OOLOODnuOCpA0KK+OCouOCpOOCpuODqSzjg4jjgrfjgqoNCivjg47jgrbjgq0s44OG44Or44Ki44KtDQor44OT44K/44OLLOOCouODpOODnw0KK+OCv+ODi+OCouOCpCzjg4DjgqTjgrnjgrENCivjgqLjgqrjgq0s44K444Ol44Oz44Kk44OBDQor44Kq44KtLOOCreOCteOCrw0KK+OCouOCquOCrSzjgqvjgrrjg6bjgq0NCivjgqLjgqrjg6Tjgq4s44Kx44Oz44K/DQor44Ki44Kr44OL44K3LOODiuOCquODkuODrQ0KK+OCouOCteOCqizjg57jgrXjg5LjgrMNCivjgqLjgrXjgq/jg6ks44Kr44KoDQor44Ki44K344K244OvLOOCq+OCuuOCrQ0KK+OCouOCv+OCryzjg5Ljg63jgrcNCivjgqLjg4Djg4Es44Om44Km44KzDQor44Kk44OI44KmLOODpuODqg0KK+OCt+ODnuODouODiCzjgqLjg4jjg6ANCivjgrXjgqTjg4jjgqYs44Oe44K144OrDQor44K344OO44OP44OpLOOCq+ODhOODnw0KK+OCquOCq+ODjizjg5Ljg4fjgrMNCivjgqrjgqvjg6Ljg4gs44OS44Ot44K3DQor44OS44Op44Kr44OvLOODqOOCtOODreOCpg0KK+OCueOCrOODjOODnizjg4jjg6Ljg5/jg4ENCivjgqLjg4rjgrbjg68s44Of44OO44OrDQor44Ki44Op44KkLOODiOOCt+OCq+OCug0KK+OCouODqeOCpCzjgq3jg7Pjg6QNCivjgqLjg6njgqvjg68s44Om44Of44KzDQor44Ki44Op44Kr44ONLOOCouOCreOCsw0KK+OCouODqeOCrSzjgrfjgrLjg47jg6oNCivjgqLjg7Pjg4njgqYs44OS44Ot44OS44K1DQor44Kk44Km44OBLOODnuOCs+ODiA0KK+OCpOOCseODgCzjg6Tjgrnjg5Ljg60NCivjgqTjgrHjg6Qs44Oe44K144KtDQor44Kk44K344Kr44OvLOODkuODreOCtw0KK+OCpOOCt+OCq+ODryzjg57jgrXjg58NCivjgqTjgrfjgqvjg68s44OS44Ot44K3DQor44Kk44K344Kr44OvLOOCs+OCpuOCpOODgQ0KK+OCpOOCt+OCrOOCrSzjg5Ljg63jgrcNCivjgqTjgrfjgrDjg60s44Kr44Kq44OrDQor44Kk44K344OP44OpLOODnuOCteOCrQ0KK+OCpOOCveODoOODqSzjgq/jg5/jgrMNCivjgqTjgr/jgqzjgq0s44Kt44Oo44OfDQor44Kk44Kk44OALOOCt+ODreOCpg0KK+OCpOODgeOCq+ODryzjgr3jg6gNCivjgqTjg4Hjgqvjg68s44Oo44K344OI44K3DQor44Kk44OHLOOCpOOCv+ODqw0KK+OCpOODiOOCpizjg5Ljg63jg5Xjg58NCivjgqTjg4zjgqQs44Oe44Kt44OIDQor44Kk44OO44Km44KoLOODjuODluODkuODrQ0KK+OCpOODnuODi+OCtyzjg6Djg43jgr/jgqsNCivjgqTjg57jg4/jg6Tjgrcs44K344Oz44Kk44OBDQor44Kk44Ov44K144KtLOODnuOCteODhOOCsA0KK+OCpOODr+OCteOCrSzjg57jg6bjg58NCivjgqTjg6/jg6Ljg4gs44Kx44Kk44Kk44OBDQor44Km44Ko44OOLOOCqOOCpOOCuA0KK+OCpuOCqOODjizjgqvjgrrjg47jg6oNCivjgqbjg4HjgqTjgrEs44Oo44K344Ki44KtDQor44Km44OB44Ok44OeLOODqOOCt+OCv+OCqw0KK+OCpuODoeODgCzjgrfjg6XjgqbjgrgNCivjgqbjg6Hjg6Djg6ks44K144OoDQor44Km44Oh44Oi44OILOODgeODm+OCsw0KK+OCpuODq+OCt+ODkOODqSzjg6jjgrfjg5LjgrMNCivjgqjjgrDjg54s44Ko44OqDQor44Ko44OpLOODiuOCquODpA0KK+OCquOCpuOCteOCqyzjg57jgrXjgr/jgqsNCivjgqrjgqrjgqvjg68s44Oe44K144Of44OEDQor44Kq44Kq44K144OvLOODnuOCteODkuOCsw0KK+OCquOCt+ODnizjg6jjgrfjgr/jgqsNCivjgqrjgrfjg54s44Oe44OK44OWDQor44Kq44Kq44K544KsLOOCv+ODhOODkuOCsw0KK+OCquOCquOCv+ODiyzjg5Ljg4fjgq0NCivjgqrjgqrjg4Qs44Oe44K144OV44OfDQor44Kq44Kq44OE44KrLOOCv+ODgOODkuOCtQ0KK+OCquODjSzjg57jgrXjg6bjgq0NCivjgqrjgqrjg44s44Ki44Kt44OpDQor44Kq44Kq44OP44K3LOOCseODs+OCpOODgQ0KK+OCquOCquODj+OCtyzjgrHjg7PjgrQNCivjgqrjgqrjg5Djg6Tjgrcs44K344Oz44K4DQor44Kq44Kq44Oo44K3LOOCv+OCq+ODpuOCrQ0KK+OCquOCq+ODouODiCzjgr/jg4Djg6bjgq0NCivjgqrjgqzjgrXjg6/jg6ks44Oo44K344KzDQor44Kq44Ks44OvLOODkuODh+ODjuODqg0KK+OCquOCr+OCv+ODiyzjgrTjgqYNCivjgqrjgq/jg6Djg6ks44Om44Km44KzDQor44Kq44Kw44OpLOODkuODreOCsw0KK+OCpOOCpOOCq+ODryzjgrHjg7PjgqTjg4Hjg60NCivjgqrjgrDjg6ks44K144OI44K3DQor44Kq44K244OvLOOCv+OCq+ODjuODqg0KK+OCquOCtuODryzjg5Ljg4fjg5LjgrMNCivjgqrjgqrjg44s44Ok44K544OO44OqDQor44Kr44Kt44Oi44OILOODrOOCpOOCsw0KK+OCq+OCreODouODiCzjg5Ljg63jgrcNCivjgqvjgrLjg6Tjg54s44OI44Oi44OfDQor44Kk44K344Kr44OvLOODkuODreOCtw0KK+OCq+OCveODqizjg6Tjgrnjg5Ljg4gNCivjgqvjg4Tjg58s44OK44Kq44KtDQor44Kr44OI44KmLOODiuOCquOCsw0KK+OCq+ODiOOCpizjg47jg6rjgrMNCivjgqvjg4jjgqYs44K344Ky44OO44OqDQor44Kr44OI44KmLOODgOOCpOOCueOCsQ0KK+OCq+ODiOOCpizjgrHjgqTjgrgNCivjgrHjgrrjgqss44Ki44Kt44OpDQor44Kr44OJ44Ov44KtLOODn+ODhOOCt+ODreOCpg0KK+OCq+ODjeOCsyzjgqLjgq3jg5Ljg60NCivjgqvjg47jgqYs44OO44Oq44KzDQor44Kr44Of44Ok44OeLOODkuODreOCq+OCug0KK+OCq+ODr+OCt+ODnizjg5Ljg63jg6bjgq0NCivjgqvjg6/jgrss44K144OI44OrDQor44Kr44Ov44OOLOOCq+OCuuOCrQ0KK+OCq+ODr+ODouODiCzjg57jgrXjgr/jgqsNCivjgqvjg6/jg6Ljg4gs44K344OzDQor44Kr44Ov44K7LOODiuOCquOCrQ0KK+OCq+ODs+ODgCzjg5Ljg4fjg4jjgrcNCivjgq3jgq/jg4Es44OS44K144Om44KtDQor44Kt44Kv44OBLOOCouOCreOCsw0KK+OCreOCr+ODgSzjg47jg5bjgqoNCivjgq3jgr/jgqLjg6njgrcs44Oe44Kk44KzDQor44Kt44K/44Kq44KrLOODn+ODpuOCrQ0KK+OCreOCv+OCuOODnizjgqLjgq3jg5Ljg60NCivjgq3jgr/jg6Djg6ks44K/44Kx44OfDQor44Kt44K/44Og44OpLOOCouODhOOCtw0KK+OCreODhuODqSzjgrXjg4jjgrcNCivjgq3jg47jgrfjgr8s44K444Ol44Oz44KzDQor44Kt44Og44OpLOOCv+OCq+ODkuODrQ0KK+OCreODquOCpizjgr/jgrHjgrcNCivjgq/jgrXjgqvjg5ks44Oe44Ko44KzDQor44Kv44Oc44K/LOOCs+OCueOCsQ0KK+OCr+ODnuOCrOOCpCzjgrHjg7Pjgrjjg63jgqYNCivjgq/jg57jg44s44K144OqDQor44Kv44Oq44OP44OpLOODnuOCteODiA0KK+OCr+ODq+OCt+ODnizjgqLjgq3jg6jjgrcNCivjg4rjgqvjgqzjg68s44OB44KrDQor44Kz44Kk44OHLOODkuODh+OCrQ0KK+OCs+ODs+ODjizjg57jgrXjgrcNCivjgrPjg6Ljg4gs44Om44Km44KzDQor44Kz44KsLOOCr+ODi+ODj+ODqw0KK+OCs+OCuOODnizjgr/jgqTjgrgNCivjgrPjg4vjgrcs44Kr44Oo44KzDQor44Kz44OQ44Ok44K3LOOCu+OCpOOCpg0KK+OCs+ODnuODhCzjgrHjgqTjgqTjg4ENCivjgrPjg5/jg6Qs44K344Oz44OkDQor44Kz44Oz44OJLOOCteODiOOCtw0KK+OCs+ODs+ODiSzjg4Tjg4jjg6ANCivjgrTjg4jjgqYs44OA44Kk44K544KxDQor44K144Kk44OI44KmLOOCv+ODhOODpA0KK+OCteOCpOODiOOCpizjgrPjgqbjgrgNCivjgrXjgqTjg4jjgqYs44OS44OH44KtDQor44K144Kr44Oi44OILOOCv+OCseOCqg0KK+OCteOCr+ODnizjg4jjgrfjgqvjgroNCivjgrfjg5/jgros44OK44Kq44KtDQor44K144OA44OB44KrLOOCseOCpOOCuOODpQ0KK+OCteODiCzjgrXjg6jjgrMNCivjgrXjg4jjgqYs44K444Ol44OzDQor44K144OI44KmLOODkuODiOODnw0KK+OCteODiOOCpizjg5/jgqsNCivjgrXjg4jjgqYs44Kr44OE44Om44KtDQor44K144Ov44OALOOCuOODpeODs+OCuA0KK+OCpOOCveODryzjg57jgrXjg5LjgrMNCivjgrfjg6Is44K/44Kr44Ki44KtDQor44K344Ol44KmLOODnuOCteODpA0KK+OCt+OCquOCq+ODryzjgqLjg6Tjg44NCivjgrfjgqrjgrbjg68s44Oe44K144OS44KzDQor44K344Kr44Km44OBLOODn+ODhOODqw0KK+OCt+OCuuODqizjgr/jgrHjgrcNCivjgrfjg44s44OG44OE44K4DQor44K344OO44K244KtLOOCuOODpeODs+OCuOODreOCpg0KK+OCt+ODjuODgCzjg57jgrnjg58NCivjgrfjg47jg4As44Om44Kt44KzDQor44K344OQ44K244KtLOOCouOCreODkuODiA0KK+OCt+ODkOOCvyzjgrXjgqrjg6oNCivjgrfjg57jg6Djg6ks44OO44Oc44OrDQor44K344Of44K6LOODn+ODnuOCsw0KK+OCt+ODn+OCuizjg6bjgqbjgrgNCivjgrfjg5/jgros44K144OI44K3DQor44K344Of44K6LOOCt+ODs+OCpOODgeODreOCpg0KK+OCv+OCreOCv+ODiyzjg6bjgqbjgqTjg4ENCivjgrfjg6njg44s44K/44Kr44Om44KtDQor44K544Ko44OS44OtLOOCseODsw0KK+OCueOCrOOCpCzjg5/jgq3jgqoNCivjgrnjgqzjg6jjgrcs44Kx44Oz44K4DQor44K544Ks44Ov44OpLOOCt+OCsuODleODnw0KK+OCueOCruOCpuODqSzjg47jg6rjgqLjgq0NCivjgrnjgq7jgrfjg54s44K344Ol44Oz44K544KxDQor44K544Ku44Oi44OILOODkuOCteOCtw0KK+OCueOCuuOCq+ODryzjg6jjgrfjgqgNCivjgrnjg4As44Ki44Kt44Oo44K3DQor44K544Of44Kr44OvLOOCq+ODhOOCouOCrQ0KK+OCueODn+ODjizjgrPjgqbjgrgNCivjgrvjgq3jgrDjg4Es44K344Ky44OfDQor44K944Ko44K444OeLOODpOOCueODiuODqg0KK+OCv+OCquOCqyzjgr/jg4DjgrcNCivjgr/jgqvjgq0s44Kt44On44Km44KzDQor44K/44Kr44K344OeLOOCt+ODs+OCpOODgQ0KK+OCv+OCq+OCuyzjgq3jg6jjgr/jgqsNCivjgr/jgqvjg4/jgrcs44Kr44OE44OkDQor44K/44Kr44OP44K3LOOCv+ODhOODpA0KK+OCv+OCq+ODj+OCtyzjgqjjgqTjgqTjg4ENCivjgr/jgq3jgr/jg4ss44OK44OKDQor44K/44Kx44Km44OBLOODkuODreODluODnw0KK+OCv+OCseODgCzjgr/jg4Djg6bjgq0NCivjgr/jgrHjg4As44Kx44Kk44Kk44OBDQor44K/44Kx44OALOOCpOOCr+ODkuOCsw0KK+OCv+OCseODoOODqSzjg4rjgqrjg5LjgrUNCivjgr/jgrQs44Oe44K144KzDQor44K/44Kt44K244OvLOODgeOCq+OCsw0KK+OCv+ODiuOCqyzjg6jjgqbjgrMNCivjgr/jg4rjgqss44Oq44On44Km44K544KxDQor44K/44OK44KrLOOCseODs+OCuA0KK+OCpOODr+ODjizjgqvjgrrjgrfjgrINCivjgr/jg4rjgqss44OS44Ot44K3DQor44K/44OL44KoLOOCteODgOODqOOCtw0KK+OCv+ODi+OCsOODgSzjgqvjgrrjgqgNCivjgr/jg4vjgrDjg4Es44K4DQor44K/44OL44Oe44OELOODkuODreOCtw0KK+OCv+ODkOOCvyzjg5/jg6/jgrMNCivjgr/jg57jgq0s44K/44OE44OkDQor44Kk44K744Oi44OILA0KK+OCv+ODn+ODpCzjgqLjgq0NCivjg4Hjg6Pjg6Ljg4gs44OV44K144K3DQor44OB44OOLOODqOOCpuOCpOODgeODreOCpg0KK+ODhOOCq+ODouODiCzjg6jjgqbjgrMNCivjg4Tjg4Hjg4/jgrcs44Og44ON44OS44OtDQor44OG44Op44K144OvLOOCv+ODhOODpA0KK+ODiCzjg5/jg4HjgrMNCivjg5Xjgq/jgrfjg54s44OK44Kq44K3DQor44OI44OQLOOCreODp+OCpuOCsw0KK+ODiOODn+ODqOOCtyzjg5Ljg4jjgq0NCivjg4jjg6Djg60s44OK44OE44OS44KzDQor44OI44Oo44K344OeLOOCuOODpeODs+OCpOODgQ0KK+ODiOODquODpOODnizjg4rjgqrjg6bjgq0NCivjg4rjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44Kk44OHLOODn+ODgeOCq+OCug0KK+ODj+OCvyzjg5XjgrXjgqoNCivjg4rjgqvjgqzjgq0s44Of44KtDQor44OK44Kr44Ks44OvLOOCv+OCq+OCsw0KK+ODiuOCq+OCtuODryzjg6jjgrfjgrMNCivjg4rjgqvjg4cs44K344On44Km44KzDQor44OK44Kr44OP44OpLOOCouODhOOCtw0KK+OCv+OCseOCpuODgSzjgqvjg4Tjg5LjgrUNCivjg4rjgqvjg6Djg6ks44K144OI44K3DQor44OK44Kr44Og44OpLOOCv+OCseOCtw0KK+ODiuOCuSzjg5Ljg63jgrcNCivjg4vjgqTjg6Djg6ks44OI44K344OS44OtDQor44OL44K344Kq44KrLOODkuODh+OCouOCrQ0KK+ODi+OCt+OCq+ODryzjgqLjgq3jg6kNCivjg4vjgrfjgrbjg68s44K344Ky44OrDQor44OL44K344OILOODpOOCueOCsw0KK+ODi+OCt+ODjizjgrPjgqbjgrgNCivjg4vjgrfjg4/jg6ks44OK44Kq44KtDQor44OL44K344Og44OpLOOCr+ODi+ODouODqg0KK+ODjeODouODiCzjgrXjg4Hjg6gNCivjg47jgrDjg4Es44Ko44OfDQor44OO44Kw44OBLOODnuOCteODpA0KK+ODjuOCuOODqizjg6jjgrfjg4rjgqoNCivjg47jgrjjg6os44K/44Kr44OS44OtDQor44OO44Og44OpLOOCq+OCuuODkuOCsw0KK+ODj+ODg+OCvyzjgqLjgq3jgrMNCivjg4/jgrfjg5As44OB44Kr44KzDQor44OP44K344Oi44OILOODpuOCqw0KK+ODj+OCt+ODouODiCzjgqTjg4Hjg63jgqYNCivjgqTjg47jgqbjgqgs44Kt44Oo44K3DQor44OP44K344Oi44OILOOCv+OCq+OCsw0KK+ODj+OCu+OCrOODryzjgrHjg7PjgqTjg4ENCivjg4/jgr8s44Kr44K644KtDQor44OP44K/LOODqOOCt+OCq+ODhA0KK+ODj+OCv+ODjizjg57jgqTjgrMNCivjg4/jg6Tjgrcs44OS44Ot44Om44KtDQor44OP44Ok44K3LOOCr+ODn+OCsw0KK+ODj+ODqeODgCzjg4jjg6LjgrMNCivjg4/jg6njg4As44Kx44Oz44Kk44OBDQor44OQ44OQLOODkuODreODleODnw0KK+ODkOODkCzjgqLjgrnjgqsNCivjg5LjgrDjg4Es44OO44OW44OS44KzDQor44OS44Kw44OBLOOCreODp+OCpuOCsw0KK+ODkuOCteOCrSzjgrTjgqbjgrgNCivjg5Ljgrjjg6os44Ko44OqDQor44OS44Op44Ok44OeLOOCv+OCq+ODpuOCrQ0KK+ODleOCr+ODgCzjg57jg6bjg58NCivjg5XjgrjjgqQs44OS44Ot44OV44OfDQor44K544Ks44KkLOOCteODiOODnw0KK+ODleOCuOOCvyzjgqvjgrrjg6QNCivjg5Xjgrjjgr8s44Om44Kt44KzDQor44OV44K444K/LOODjuODluOCsw0KK+ODleOCuOOCv+ODiyzjgrXjg4jjgrcNCivjg5Xjgrjjg4rjg58s44K344Ky44Om44KtDQor44OV44K444OOLOOCv+ODhOODpuOCrQ0KK+ODjuODjuODoOODqSzjgqvjg4TjgrgNCivjg5Xjgrss44K/44OG44OrDQor44K544Ku44Oi44OILOODqOOCpuOCpOODgeODreOCpg0KK+ODm+OCveOCq+ODryzjgr/jg4TjgqoNCivjg5vjg6rjgqbjg4Es44OK44Kq44OfDQor44Ob44Oq44Kr44OvLOODkuODreOCouOCrQ0KK+ODnuOCreODjizjgqTjgq/jgrMNCivjg57jgq3jg44s44OO44Oq44OS44KzDQor44Oe44K344KzLOODiOOCt+ODkuOCsw0KK+ODnuOCueODgCzjgqvjgrrjg6QNCivjg57jgrnjg5bjg4Es44K/44Kr44K3DQor44Oe44K544OW44OBLOOCouOCreODkuODrQ0KK+ODnuODhOOCpCzjg57jgq3jgrMNCivjg57jg4Tjgrbjg68s44Oe44K144OIDQor44OI44Of44OK44KsLOOCv+OCq+OCtw0KK+ODnuODhOODiuOCrCzjg6jjgrfjgrMNCivjg57jg4Tjg4rjgqws44Om44KtDQor44K544K644KtLOODpOOCueOCuA0KK+ODnuODhOODoOODqSzjgrHjgqTjgqTjg4ENCivjg57jg4Tjg6Ljg4gs44OS44OH44OV44OfDQor44Oe44OE44Oi44OILOODiOODouODkuOCtQ0KK+ODnuODhOODpOODnizjg47jg6rjgrMNCivjg57jg4Tjg6Tjg54s44Kz44Km44K4DQor44Oe44OE44Ok44OeLOODhuODhOODpA0KK+ODnuODhOODqOOCtyzjgqLjgq3jgrMNCivjg57jg44s44K744Kk44K4DQor44Oe44Or44Kq44KrLOODiOOCt+ODpOOCuQ0KK+ODn+OCq+ODnyzjg6jjgqbjgrMNCivjg5/jgq0s44OS44Ot44KtDQor44Of44K+44Kw44OBLOODnuOCteODnw0KK+ODn+OCvyzjg5/jg47jg6sNCivjg5/jg40s44OB44Ki44KtDQor44Of44ON44KqLOOCteODiOODqw0KK+OCteODiOOCpizjgqvjg4Tjg47jg6oNCivjgqTjgq/jgr8s44Ki44OkDQor44Of44Ok44K244KtLOODkuODh+OCrQ0KK+OCv+OCq+OCruODryzjgrfjgrLjg6sNCivjg5/jg6jjgrcs44Oo44Km44KzDQor44Og44Kr44KkLOODn+ODhOOCv+OCqw0KK+ODoOODqeOCq+ODnyzjg57jgrXjgqLjgq0NCivjgqTjgrfjg4As44OE44Kr44K1DQor44Og44Op44Kr44OfLOOCteODiOOCtw0KK+ODoOODqeOCq+ODnyzjgqvjgrrjgr/jgqsNCivjg6Djg6njg6Tjg54s44Kz44Km44K4DQor44Og44Op44Ok44OeLOODnuOCs+ODiA0KK+ODoOODreOCpCzjg57jgrXjgr/jgqsNCivjg6Ljgr/jgqQs44Kr44K644Oe44K1DQor44Oi44OI44KtLOOCq+OCuuODpA0KK+ODouODiOODoOODqSzjgrPjgqbjgrgNCivjg6Ljg6os44Kr44OE44OS44OtDQor44Kr44K7LOOCouOCreODqOOCtw0KK+ODouODquOCt+OCvyzjgqvjgrrjg5Ljg60NCivjg6Ljg6rjgr8s44OK44Kq44KtDQor44Oi44Ot44OI44OfLOODkuODh+ODjuODlg0KK+ODouODreODj+OCtyzjg6bjgq3jgrMNCivjgqvjg6/jg6Ljg4gs44OS44Ot44OO44OqDQor44Ok44Kw44OBLOODhuODq+ODkuOCsw0KK+ODpOOCuOODnizjg4rjgqrjgrMNCivjg6Tjgrnjgqvjg68s44OS44Ot44K3DQor44Ok44K544OALOODnuOCteODkuODiA0KK+ODpOODhOOCuuOCqyzjg57jg6rjgrMNCivjg6Tjg4rjgq7jgrXjg68s44Om44KtDQor44Ok44Oe44Kw44OBLOOCreODs+ODpA0KK+ODpOODnuOCteOCrSzjgr/jgqvjg6QNCivjg6Tjg57jgrbjgq0s44OS44Ot44Om44KtDQor44Ok44Oe44K244KtLOODqOOCt+OCsw0KK+ODpOODnuOCtuOCrSzjgrvjgqTjgrjjg63jgqYNCivjg6Tjg57jg4As44Kx44Oz44K/44Ot44KmDQor44Ok44Oe44OALOODiuOCquOCrQ0KK+ODpOODnuODgCzjgr/jgqvjg47jg6oNCivjg6Tjg57jg4rjgqss44K344Ol44Km44Kk44OBDQor44Kv44Oq44OP44OpLOODnuOCteOCrQ0KK+ODpOODnuODouODiCzjg57jgrXjgrMNCivjg6Tjg57jg6Ljg4gs44K344Oz44K/44Ot44KmDQor44Ok44Oe44Oi44OILOODpOOCueOCtw0KK+ODnuODhOOCqizjg57jgrnjg58NCivjg6jjgq4s44OB44OI44K7DQor44Oo44Kz44Ok44OeLOODkuODh+OCrQ0KK+ODqOOCs+ODpOODnizjg6jjgqbjgrMNCivjg6jjgrfjgqvjg68s44OK44Kq44OS44OHDQor44Oo44K344Kr44OvLOODqOOCt+OCsw0KK+ODqOOCt+ODgCzjgrPjgqbjgrgNCivjg6/jgq/jgqQs44OG44OE44OkDQor44Ov44K/44OK44OZLOOCseODs+OCv+ODreOCpg0KK+ODr+OCv+ODiuODmSzjgrfjg5sNCivjg6/jgr/jg4rjg5ks44Oo44K344OS44OIDQor44Ov44K/44OK44OZLOODnuODiuODlg0KK+ODj+ODpOOCtyzjgr/jgqvjgrcNCivjg6Tjg57jg4As44OO44OW44OkDQor44Ov44Kr44OQ44Ok44K3LOOCteODiOOCtw0KK+OCpOODr+ODoOODqSzjg47jg6rjg57jgrUNCivjg6/jgr/jg4rjg5ks44OO44Oc44OrDQor44Kv44Ov44K344OeLOOCueOCsOODqw0KK+OCquODkOOCvyzjgrXjg4jjg58NCivjgqLjg4rjgrbjg68s44OS44Kr44OrDQor44Ok44KuLOOCs+OCueOCsQ0KK+OCouOCq+OCqizjg4jjg6LjgqvjgroNCivjgrfjg5/jgros44OK44OE44KzDQor44K144Kr44Oi44OILOODkuODh+ODjuODlg0KK+OCouOCquOCrSzjgrfjgrLjgqLjgq0NCivjgqLjgrrjg54s44Kz44Km44Kk44OBDQor44Kk44Kk44OALOOCqOODig0KK+OCpOOCseOCpuODgSzjg6Hjg5DjgqgNCivjgqTjgrfjgqvjg68s44OG44OE44KqDQor44Kk44K944Ks44KkLOODnuOCs+ODiA0KK+OCpOODiOOCpizjgr/jg4Djg5Ljg60NCivjgqTjg5As44Ki44K644K1DQor44Kk44Ov44Oi44OILOOCt+ODs+OCuA0KK+OCpuOCqOOCteOCqyzjgr/jgrHjg5Ljg60NCivjgqbjgqjjg44s44Oe44Oi44OrDQor44Km44Ko44OS44OpLOOCseODs+OCtA0KK+OCpuODgeODpOODnizjgrHjg7PjgrgNCivjgqbjg6Hjg4rjgqQs44K544K544OgDQor44Ko44Og44OpLOOCv+OCq+ODkuODrQ0KK+OCquOCreOCvyzjgrjjg6Xjg7PjgqTjg4ENCivjgqrjgqrjgq/jg5ws44OS44Ot44K3DQor44Kq44Kq44K/44OLLOOCouODpA0KK+OCquOCquODhCzjg5Ljg63jgrMNCivjgqrjgqrjg4Tjgqss44Oo44K344OfDQor44Kq44Kr44K344OtLOOCt+ODreOCpg0KK+OCquODgCzjgqLjg4TjgrcNCivjgqrjg44s44OS44Ot44OfDQor44Kr44OI44KmLOODqOOCt+ODpuOCrQ0KK+OCq+ODjeODkuOCtSzjg4rjgqrjgrMNCivjgqvjg5/jg6Qs44Kq44K144OgDQor44Kr44Ov44KkLOOCv+OCr+ODqOOCtw0KK+OCq+ODr+OCquOCqyzjg5Ljg4fjgq0NCivjgq3jgr/jg44s44K444Ol44Oz44Kk44OBDQor44Kt44OW44K3LOODhOODmA0KK+OCreODoOODqSzjg57jgrXjgr/jgqsNCivjgq3jg6Djg6ks44Oe44K144KzDQor44Kv44K144KrLOOCteODiOODnw0KK+OCr+ODkCzjgr/jgqvjgrcNCivjgq/jg5zjgr8s44K344Ot44KmDQor44Kv44Ot44Kk44OvLOOCt+ODs+OCuA0KK+OCr+ODr+ODkOODqSzjgqjjgqTjgrgNCivjgrPjgqTjgrEs44K544Of44KqDQor44Kz44Kk44K/44OQ44K3LOODhOOCq+OCtQ0KK+OCs+OCpuODgCzjg5Ljg4fjgqoNCivjgrPjgqbjg4As44Oe44K144K/44KxDQor44Kz44K344Og44OpLOOCouODhOOCtw0KK+OCs+ODpOODiuOCrizjg5LjgrXjgrMNCivjg4/jg4jjg6os44Om44Km44KzDQor44K144Kr44Km44KoLOOCteODrw0KK+OCouODmSzjgrPjgqbjgqTjg4ENCivjgrXjg4jjgqYs44Ok44K544Of44OEDQor44K144OI44KmLOODnuODpuODnw0KK+OCteODiOOCpizjg6jjgrfjgqoNCivjgrfjg57jg4As44Oq44KoDQor44Kk44Oe44KkLOOCq+ODhOOCouOCrQ0KK+OCueOCrOODjOODnizjg4Hjg6gNCivjgrvjgq0s44Ki44Kt44OS44OtDQor44K744OOLOOCv+OCq+ODpOOCuQ0KK+OCouODmSzjg57jgrXjg4/jg6sNCivjgr/jgqvjgrnjgqws44Oe44Om44OfDQor44K/44Kr44K544KuLOODjuODluOCsw0KK+OCv+OCq+ODj+OCtyzjg4jjg6Ljg58NCivjgr/jgqvjg4/jgrcs44Kx44Oz44K/44Ot44KmDQor44K/44Kr44OP44K3LOOCouOCreODkuODiA0KK+OCv+OCq+ODj+OCtyzjgrPjgqbjgrgNCivjgr/jgqvjg4/jgrcs44OS44K144OfDQor44K/44Kt44Oi44OILOODpuOCpuOCvw0KK+OCv+OCr+ODnCzjg6jjgrfjg6bjgq0NCivjgr/jgrHjgqbjg4Es44OI44Oi44KzDQor44K/44Kx44OK44KrLOODpuOCreODkuOCsw0KK+OCv+ODiuOCqyzjg6Ljg4jjgqTjg4ENCivjgr/jg4rjgqss44OB44K644OrDQor44K/44OQ44K/LOOCq+ODhOODpuOCrQ0KK+OCv+ODn+ODpCzjgr/jgrHjgrcNCivjgr/jg6Djg6ks44Os44Kk44KzDQor44OB44Ol44Km44OeLOODkuODreOCv+OCqw0KK+ODm+ODs+OCtOOCpizjg6bjgqbjgrMNCivjg4rjgqvjgqos44OO44OW44Ki44KtDQor44OK44Kr44Ks44OvLOOCs+OCpuOCpOODgQ0KK+ODiuOCq+OCvuODjizjg5Ljg4fjg47jg6oNCivjg4rjgqvjg44s44Of44OE44OS44OtDQor44OL44OD44K/LOODj+ODig0KK+ODi+ODryzjg6rjg6fjgqbjgqTjg4ENCivjg47jgrgs44OS44Ot44Ki44KtDQor44OP44K244OOLOOCv+OCq+OCtw0KK+ODj+OCt+ODouODiCzjg4jjgqrjg6sNCivjg4/jgrfjg6Ljg4gs44Om44Km44KzDQor44OP44Ok44K3LOODgeOCquODqg0KK+ODj+ODpOOCtyzjg4jjgqbjgrMNCivjg4/jg6njgrDjg4Es44K/44Kr44K3DQor44OP44Or44Kw44OBLOODiOOCt+OCqg0KK+ODkuODqeODhyzjgqTjgrXjg6ANCivjg5Ljg6njg44s44Oe44K144K/44KrDQor44OS44Op44Ok44OeLOODpuOCrQ0KK+ODleOCq+OCtuODryzjg5Ljg63jg58NCivjg5Xjgq/jg57jgrks44Kr44OoDQor44OV44Kv44Oi44OqLOODnuOCteODqw0KK+ODleOCuOOCq+ODryzjgrfjgrLjg6sNCivjg5vjgrfjg44s44OO44Oq44KzDQor44Ob44K944OOLOOCouOCreODkuODiA0KK+ODnuODhOOCquOCqyzjg6jjgrfjg4rjg6oNCivjg57jg4Tjg6Djg6ks44OK44Of44KzDQor44Of44K644Kr44OfLOODhuODhOODreOCpg0KK+ODn+ODhOOCpCzjgr/jgqTjgrnjgrENCivjg5/jg47jgqvjg58s44OI44K344Om44KtDQor44Of44Ok44Oi44OILOOCv+ODhOOCtw0KK+ODoOODqeOCq+ODnyzjgrHjgqTjgrMNCivjg6Tjgr8s44OK44Kq44KzDQor44Ok44OK44Ku44K/LOODn+ODjuODqw0KK+ODpOODnuOCsOODgSzjgrPjgqbjgrgNCivjg6Tjg57jgrfjgr8s44Of44OB44KqDQor44Ok44Oe44Oi44OILOODpuOCpuOCpOODgeODrQ0KK+ODqOOCt+OCv+OCsSzjg5Ljg4fjg47jg6oNCivjg6jjgrfjg6Djg6ks44Ko44OqDQor44OS44Kw44OBLOOCv+OCseOCtw0KK+ODj+OCt+ODouODiCzjgqLjg4TjgrcNCivjg6/jgr/jg4rjg5ks44Om44KtDQor44Ki44Kt44OQLOOCv+OCseODkuOCsw0KK+OCouOCreODouODiCzjg5/jg4Tjg6gNCivjgqLjg57jg6Qs44Oe44K144OrDQor44Ki44Oz44OJ44KmLOODhuODhOODreOCpg0KK+OCouODs+OCtuODryzjg47jg5bjg5Ljg60NCivjgqLjgrXjg4/jgr8s44Kr44K644OS44OIDQor44OQ44OQLOODn+ODgeODkuODiA0KK+ODmeODg+OCt+ODpyzjg4bjg6vjg5Ljg4gNCivjg4Hjgqvjg6Ljg4gs44K144Kq44OqDQor44OB44On44KmLOODgOOCpOOCueOCsQ0KK+ODleOCuOODkuODqSzjg5/jg6/jgrMNCivjg5XjgrjjgqQs44Kx44Kk44KzDQor44OV44K444K/44OLLOODqOOCt+OCq+ODhA0KK+ODleOCq+ODgCzjg57jgrXjgqLjgq0NCivjg5Xjg6vjg4Djg4Ys44OK44Kq44KtDQor44OV44Or44Ok44OeLOODkuODreODpuOCrQ0KK+OCtOOCpuODgCzjgq3jg6jjg47jg5YNCivjgrPjgqTjgrEs44Oo44K344Om44KtDQor44OP44Kr44Oe44OALOOCs+OCpuOCvuOCpg0KK+ODj+OCu+OCrOODryzjgr/jgqvjgqoNCivjg4/jgrfjg6Ljg4gs44Kz44Km44Kk44OBDQor44OP44OD44K/LOOCseODs+OCpOODgQ0KK+ODj+ODg+ODiOODqizjgr/jgqvjg5Ljg60NCivjg4/jg6Tjgqvjg68s44OS44Ot44KtDQor44OP44Ok44Kr44OvLOODiuODq+ODhOOCsA0KK+ODkuODjOODnizjgr/jgq/jg6QNCivjg5Ljg63jgq0s44OI44Oi44OS44OHDQor44Ob44Oq44OO44Km44OBLOODpuOCpuOCuA0KK+ODm+OCveODjizjgqLjg4TjgrMNCivjg5Xjgrjjgqrjgqss44OS44OH44KtDQor44OV44Or44K/LOODiuODq+OCrQ0KK+ODleOCteODjizjgrHjg7MNCivjg5Xjgrfjg58s44Kq44K144OgDQor44Kk44K/44OJLOODkuODiOOCtw0KK+OCpOODgCzjg57jgrXjg5Ljg60NCivjgqTjg4/jg6ks44Kx44KkDQor44Kk44Kk44OALOOCv+OCq+ODkuODrQ0KK+OCpOODiuODpOODnizjg5Ljg63jgqvjgroNCivjgqTjg44s44K444Ol44Oz44Kk44OBDQor44Kk44OO44Km44KoLOODoeOCsOODnw0KK+OCpOOCt+ODgCzjg6jjgrfjg4TjgrANCivjgqTjgrfjg6Ljg4gs44Ok44K544Oo44K3DQor44Kk44K344OvLOODn+ODhOODqw0KK+OCpOOCt+ODr+OCv+ODqizjg5Ljg63jgqvjg4QNCivjgqTjgr/jgq/jg6ks44OK44Ob44KzDQor44Kk44OI44KmLOOCv+OCq+ODkuODrQ0KK+OCpOODiOOCpizjgrfjg6XjgqbjgqTjg4ENCivjgqTjg6/jgqQs44OK44OK44KzDQor44Kk44K244OvLA0KK+OCuOODlizjgrnjgrDjg6sNCivjgqvjg5Djg6Tjg54s44Oe44K144KtDQor44Kr44KkLOODpuOCpuOCsw0KK+OCq+OCreODjOODnizjgrjjg6Xjg7MNCivjgqvjgq3jgrbjgq0s44Oe44K144KtDQor44Kr44Kv44OALOOCt+ODpeOCpuOCueOCsQ0KK+OCq+ODiuOCrOODryzjgrfjg7MNCivjgqvjg7Pjg5ks44K/44Kx44KqDQor44Kr44Oz44OALOODpOOCueODkuODiA0KK+OCq+OCteODgCzjg5/jg4Hjgr/jgqsNCivjgqvjg6/jgqQs44OI44Oi44KzDQor44K144K144KtLOOCpOOCr+OCqA0KK+OCq+ODr+OCuyzjgrXjg5sNCivjgq3jg6Ljg4gs44Of44Kt44ONDQor44Kt44K/44OP44OpLOODjuODluOCqg0KK+OCreOCv+ODoOODqSzjg6jjgrfjgqoNCivjgrPjg5Djg6Tjgrcs44OS44Ot44KoDQor44Kz44OW44KxLOODpuOCpuOCsw0KK+OCs+OCpOOCuuODnyzjgqvjg4rjgrMNCivjgrPjg5/jg6Tjg54s44Oe44Oq44KzDQor44Kz44Oz44OO44Kr44K644OS44OtLOODpOOCueODkuODiA0KK+OCs+OCt+OCq+ODryzjgr/jgqvjg6bjgq0NCivjgrPjg7Pjg44s44Kz44Km44Kk44OBDQor44Kv44OcLOODnuOCteODjuODlg0KK+OCr+ODnOOCq+ODryzjg4rjg4Tjgq0NCivjgq/jg4njgqYs44OI44Oi44KrDQor44Kv44Oq44OP44OpLOOCq+ODhOOCpOODgQ0KK+OCr+ODreOCrizjgrXjgqjjgrMNCivjg57jg4Hjg4As44OP44Or44OfDQor44Oe44K444OeLOODpOOCueOCsw0KK+OCpOOCt+OCuizjg47jg6rjg6bjgq0NCivjg57jgqvjg5ks44OS44Ot44OoDQor44Oe44Or44Ok44OeLOODkuODh+OCouOCrQ0KK+ODnuOCueODgCzjgqvjg6gNCivjg57jg4TjgqzjgrXjgq0s44Ki44Kt44OpDQor44Oe44OE44KkLOOCv+OCseOCtw0KK+ODnuODhOOCpCzjgrXjgqrjg6oNCivjg57jg4Tjg6Ljg4gs44Kx44Oz44K4DQor44Oe44Ov44K/44OqLOOCq+ODs+OCuA0KK+ODn+ODgeODouODiCzjg4jjgrfjg5Ljg60NCivjg5/jgq0s44K544Of44KzDQor44Of44OE44OeLOOCv+OCq+ODjuODqg0KK+ODn+OCpuODqSzjgrHjgqTjgrQNCivjg5/jg68s44Oe44Kz44OIDQor44Of44Ok44Oi44OILOOCq+ODhOODkuOCtQ0KK+ODn+ODpOODouODiCzjg6Tjgrnjg47jg5YNCivjg5/jg6Tjg6Ljg4gs44K/44Kx44OO44OWDQor44Of44Ok44K/LOODnuOCteOCtw0KK+ODoOODqeOCq+ODnyzjg4jjgqrjg6sNCivjgr/jg4/jg6ks44OO44Oq44KzDQor44Of44K644K/44OLLOODiOODouOCqw0KK+ODouODqizjg6bjgq0NCivjg6Ljg6rjgrDjg4Es44Oe44K144OS44KzDQor44Oi44Oq44Kr44OvLOODkuODreOCtw0KK+ODouODquODouODiCzjgqvjgrrjg58NCivjg6Ljg6rjgr8s44Os44Kk44KzDQor44Og44Op44Kr44OfLOOCv+ODhOODkuOCsw0KK+OCouODh+OCrOODryzjgqLjgqQNCivjg4rjgqzjgrXjgqss44OS44Kr44OrDQor44OK44Ks44K/LOOCuOODpeODqg0KK+ODiuOCrOOCvyzjgqvjg4Tjg47jg5YNCivjgqTjgrbjg68s44Kr44Kq44OqDQor44OK44Kr44Of44ONLOODnuODouODqw0KK+ODiuOCq+ODoOODqSzjg5Ljg63jg47jg6oNCivjg4rjgqvjg6Djg6ks44K/44OE44OkDQor44Kk44Oi44OILOOCs+OCpuOCpOODgeODreOCpg0KK+ODiuOCq+ODoOODqSzjgr/jgrHjgrcNCivjg4rjgqvjgqos44Om44Km44K4DQor44OK44Kr44Ok44OeLOOCpuOCt+ODsw0KK+ODiuOCq+OCtuODryzjgq3jg6jjgrcNCivjg4rjg5/jgq0s44OP44Or44Oo44K3DQor44OL44Kk44OfLOOCouOCreODkuODrQ0KK+ODi+OCpOOCvOOCrSzjgqvjgqrjg6oNCivjg4vjgrfjg4cs44OS44OH44Ki44KtDQor44OL44OvLOODkuODh+OCrQ0KK+ODjuODmSzjg5/jgrUNCivjgqrjgqrjgr8s44K344Ky44Ki44KtDQor44Kq44Ks44OvLOODnuOCteODqOOCtw0KK+OCquOCsOOCuSzjg6bjgqbjgrnjgrENCivjgqrjgqrjg6Ljg4gs44K344On44Km44K4DQor44Kq44K344OeLOOCv+OCq+ODjuODqg0KK+OCquOCquOCvyzjgrHjg7PjgqTjg4ENCivjgqrjgqrjg6Qs44OS44Of44KzDQor44Kk44K344Kr44OvLOODqOOCpg0KK+OCquOCq+ODgCzjgr/jgrHjgrcNCivjgqrjgq8s44OV44Of44Om44KtDQor44Kq44Kv44OALOODnuOCteOCrQ0KK+OCquOCt+OCr+ODnCzjgrHjg7PjgqTjg4ENCivjgqrjgrzjgq0s44Kr44OE44OS44KzDQor44Op44KkLOODpuOCpuOCuA0KK+OCpOODiOOCpizjg4jjg6Ljg6QNCivjgrXjgqTjgq0s44OS44Ot44K3DQor44K144Kk44OI44KmLOOCv+ODhOODpA0KK+ODqOOCt+ODgCzjg5/jg4Hjg6TjgrkNCivjgrXjgrMs44K344Ky44Of44OEDQor44K144K144K444OeLOOCuOODpeODs+ODpA0KK+OCteOCteOCrSzjg6bjgq3jgrMNCivjgrXjg4jjgqYs44OE44Kw44OS44OHDQor44Kk44Ov44Oi44OILOOCq+OCuuODkuOCsw0KK+OCteODiOOCpizjg4HjgqjjgrMNCivjgrXjg6/jg4As44OS44OH44Ok44K5DQor44K744Kt44Kr44OvLOOCpOOCuuODnw0KK+OCu+OCreODjSzjg5/jg4TjgqoNCivjgrfjg5Djgr8s44OK44Kq44KtDQor44K344Ky44OP44OpLOOCt+ODs+ODpA0KK+OCt+ODnuOCquOCqyzjgqLjgq3jg5LjgrMNCivjgrfjg5/jgros44Kr44K644OS44OtDQor44K344OiLOODnuOCteOCouOCrQ0KK+OCt+ODouODoOODqSzjgr/jgqvjgrcNCivjgrfjg6Djg6ks44K/44Kr44OS44K1DQor44K944Oh44OkLOOCouOCreODkuOCsw0KK+OCueOCqOODqOOCtyzjgrHjg7PjgqTjg4ENCivjgrnjgrrjgq0s44OS44OH44Om44KtDQor44K544K644KtLOODiuOCquOCrQ0KK+OCv+OCq+ODgCzjgqTjg4Hjg63jgqYNCivjgr/jgqvjg4/jgrcsDQor44K/44Kr44K7LOODnuODiuODlg0KK+OCv+OCseODgCzjgqLjgq3jg6kNCivjgr/jgrHjgqQs44OS44K144Oo44K3DQor44K/44Kx44Oi44OILOODj+OCuOODoQ0KK+OCv+ODnuOCpCzjg4jjgrfjg5LjgrMNCivjgr/jg6Djg6ks44K/44Kr44Om44KtDQor44K/44Og44OpLOOCteODiOODqw0KK+OCpOOCt+OCq+ODryzjg5Ljg4jjgrcNCivjgr/jg4rjgqss44Kz44Km44Kk44OB44Ot44KmDQor44K/44OK44KrLOODnuOCteODkuODrQ0KK+OCv+ODi+OCsOODgSzjgr/jgrHjg47jg6oNCivjgr/jg4vjgrDjg4Es44OS44Ot44K/44KrDQor44K/44OL44Kw44OBLOOCseODs+OCuA0KK+OCv+ODi+OCsOODgSzjgrHjg7MNCivjgqTjgrfjg4As44Ki44OE44K3DQor44K/44OL44K344K/LOODleODn+ODjg0KK+ODhuODqeODi+OCtyzjg4Tjg6jjgrcNCivjg4jjgqrjg6Tjg54s44Kt44On44Km44KzDQor44OI44Of44K/LOODn+ODrw0KK+ODiOODjeOCrOODryzjgr/jgq8NCivjg4jjg6jjg4As44OO44Oq44KzDQor44OI44Oo44K/LOOCt+ODpeOCpuOCuA0KK+ODhOODgeODpCzjg6jjgrfjgrMNCivjgqTjgrfjgqvjg68s44OK44Kq44KtDQor44OE44Og44OpLOODiOOCt+OCouOCrQ0KK+ODhOODjuOCq+ODryzjg6jjgrfjg58NCivjgqbjg4Hjg4As44OS44OI44K3DQor44Km44K144OfLOOCv+OCseOCtw0KK+ODr+OCuOODnizjg6rjgrMNCivjg6/jgr/jg4rjg5ks44Oe44KtDQor44Ov44K/44OK44OZLOODqOOCpuOCpOODgQ0KK+ODr+OCv+ODiuODmSzjg6Tjg6jjgqQNCivjg6Tjgq4s44Kx44Kk44Kk44OBDQor44Ok44KuLOOCreODp+OCpuOCsw0KK+ODpOOCr+ODryzjg5Ljg63jg5Xjg58NCivjg6Tjg57jg4As44OS44Ot44KtDQor44Ok44Oe44OALOOCv+OCq+ODpuOCrQ0KK+ODpOODnuOCsOODgSzjg4jjgrfjg6bjgq0NCivjg6Tjg57jg47jgq/jg4Es44Oe44K144KzDQor44Ok44Oe44K344K/LOOCs+OCpuOCpOODgQ0KK+ODpOODnuOCt+OCvyzjg4rjgqrjg6bjgq0NCivjg6Tjg57jgrbjgq0s44OS44OH44Om44KtDQor44Ok44Oe44K244KtLOODpuOCv+OCqw0KK+ODpOODiuOCrOODryzjgr/jg4Tjg63jgqYNCivjg6Tjgrnjg4As44OI44Oo44Ki44KtDQor44Ok44K544KoLOODiOODouODpuOCrQ0KK+OCpOOCveOCrOOCpCzjgr/jg4Djg47jg5YNCivjg6Tjgr/jgqzjgqQs44Ko44OqDQor44Oo44K344OALOODquODp+OCpuOCsw0KK+OCv+OCq+ODj+OCtyzjg57jgrXjgq0NCivjgqrjgqvjg4As44K344Ol44Km44Kk44OBDQor44Ki44Kq44KtLOODnuOCteODqw0KK+OCouOCreODkCzjgqLjgq3jgrMNCivjgqLjg5ks44Ki44Kt44KzDQor44Ki44Oe44OOLOODnuOCteOCqg0KK+OCouODquODouODiCzjgrfjg6XjgqbjgrgNCivjgqLjg7Pjg4njgqYs44Om44KtDQor44Kk44Kr44OvLOOCv+OCpOODmOOCpA0KK+OCpOOCt+OCpCzjg47jg6rjg5Ljg60NCivjgqTjgrfjgqvjg68s44OK44Kq44KzDQor44Kk44K344K644KrLOODpuODnw0KK+OCpOOCt+ODkOOCtyzjgrfjg6Xjg7PjgrnjgrENCivjgqTjgrfjg6Ljg4gs44Oq44On44Km44K544KxDQor44Kk44OHLOOCteODiOOCsw0KK+OCpOODgeODjuOCuyzjgrXjg4jjgrcNCivjgqTjg4rjg4As44Oe44OK44OWDQor44Kk44OM44KkLOODpOOCueODqA0KK+OCpOODjuOCpuOCqCzjg57jg5/jgrMNCivjgqTjg6Tjg54s44Kz44Km44K4DQor44Kk44Ov44K144KtLOODn+OCuuODnuOCtQ0KK+OCpOODr+ODnizjgqvjgrrjgrMNCivjgqTjg6/jg57jg4Qs44Kq44K144OK44KqDQor44Km44Ko44OALOODkuODreOCsw0KK+OCpuOCqOODjizjg5Ljg63jgq0NCivjgqbjg4Hjg4As44K/44Kr44KqDQor44Km44OJLOOCseODs+OCuA0KK+OCpuODoeODj+ODqSzjgr/jgqvjgrcNCivjgqjjgrDjg4Es44OI44Of44K144OWDQor44Ko44OO44KtLOODqOOCt+OCsw0KK+OCqOODouODiCzjg5/jg4Tjg6Ljg4gNCivjgqjjg6Ljg6os44K744Kk44OkDQor44OK44Kr44Ks44OvLOODiuOCquOCouOCrQ0KK+OCquOCquOCvyzjg5Ljg4fjg6bjgq0NCivjgqrjgqzjgr8s44Ok44K544K3DQor44Kq44Ks44OvLOODjuODluOCv+OCqw0KK+OCquOCrOODryzjg6zjgqTjgrMNCivjgqrjgq/jgqQs44K/44Kv44K4DQor44Kq44Kv44Og44OpLOODouODiOOCsw0KK+OCquOCquOCv+ODiyzjg4bjg6vjgqLjgq0NCivjgqrjg4Tjg4jjg6Is44Om44Kt44KzDQor44Kq44OL44K244OvLOOCt+OCsuOCrQ0KK+OCquODjizjg47jg6rjgqLjgq0NCivjgqrjg5Djg4os44K744Kk44Kk44OB44Ot44KmDQor44Kq44Oe44Ks44OqLOODnuOCteODpA0KK+OCq+OCreOCtuODryzjg4bjg4Tjg5Ljg60NCivjgqvjgrHjg5Is44Ko44Oq44KzDQor44Kr44K144OP44OpLOODnuODieOCqw0KK+OCq+OCuCzjgqrjgrXjg6ANCivjgqvjgrjjgr8s44K/44Kr44KqDQor44Kr44K444K/LOOCv+OCq+OCqg0KK+OCq+OCuOODpOODnizjg5/jg47jg6sNCivjgqvjg4jjgqYs44Oo44K344OO44OWDQor44Kr44OK44OALOOCseOCpA0KK+OCq+ODjeOCsyzjg47jg5bjgqvjg4QNCivjgqvjg43jgrMs44Oq44On44Km44K/DQor44Kk44K/44OOLOOCseODs+OCueOCsQ0KK+ODiuOCrOODhOODnizjgrfjg6Xjgqbjg5jjgqQNCivjgqvjg47jgqYs44K744Kk44K4DQor44Kr44Oe44KoLOODiuOCquOCrQ0KK+OCq+ODr+OCpCzjg4bjg4TjgqoNCivjgqvjg6/jg57jgr8s44OS44Ot44KtDQor44Kr44Oz44OOLOODnuOCpOOCsw0KK+OCreOCpuODgSzjgqTjgrrjg58NCivjgq3jgrcs44Oo44Km44KzDQor44Kt44K/44Ks44OvLOODiOODouODjuODlg0KK+OCreODjuOCt+OCvyzjg4rjg6rjg4jjgrcNCivjgq3jg6fjgqbjgqzjgq8s44Oe44Kz44OIDQor44Kv44OcLOODiOODouODjuODqg0KK+OCr+ODnOOCvyzjgr/jgq/jg6QNCivjgq/jg5zjgr8s44K344Oz44Oa44KkDQor44Kv44Oq44OP44OpLOODquOCqA0KK+OCr+ODquODpOODnizjgrHjgqTjgrMNCivjgqTjgrfjgqzjgq0s44OI44K344OV44K1DQor44Kv44Ot44KkLOOCpOODhOODreOCpg0KK+OCs+OCpuOCteOCrSzjgrPjgqbjgqTjg4ENCivjgrPjgqbjg4As44Ki44OE44K3DQor44Kz44OQ44Ok44K3LOODjuODluOCouOCrQ0KK+OCs+ODkOODpOOCtyzjg4bjg4Tjg6QNCivjgrPjg5Djg6Tjgrcs44Om44Km44K544KxDQor44Kz44OQ44Ok44K3LOOCs+OCpuOCuA0KK+OCpOODjuOCpuOCqCzjg47jg5bjgqLjgq0NCivjgrXjgqTjg5ss44OK44Or44OS44OtDQor44K144Kr44Ks44OvLOODqOOCpuODmOOCpA0KK+OCq+ODr+ODoOODqSzjg6bjgr/jgqsNCivjgrXjgrXjgqrjgqss44Oo44Km44KzDQor44K144K144KtLOODjuODnOODqw0KK+OCteODiOOCpizjg47jg6rjgqvjgroNCivjgrXjg4jjgqYs44Oe44OK44OWDQor44K144OK44OALOOCquOCteODoA0KK+OCteODq+ODpOODnizjgrHjg7PjgqTjg4ENCivjgrfjgqrjg4Qs44Ko44Kk44K544KxDQor44K344Kq44OO44OkLOOCt+ODjuODlg0KK+OCt+OCquODpOODnizjg47jg5zjg6sNCivjgrfjgq7jg4/jg6ks44OS44Ot44Om44KtDQor44K344K344OJLOOCr+ODi+OCqg0KK+OCt+ODjuOCtuOCrSzjgqvjgrrjg5Ljg4gNCivjgrfjg5Djgr8s44Of44OO44OrDQor44K344Of44K6LA0KK+OCt+ODp+OCpuODjizjgrfjg7PjgqTjg4ENCivjgrfjg6njgq0s44OS44Ot44Om44KtDQor44K544Ku44Kq44KrLOODn+ODhOOCq+OCug0KK+OCueOCruODj+ODqSzjgq3jg6jjgrfjgrINCivjgrnjgrrjgq0s44OS44K144OG44OrDQor44K544K644KtLOOCt+OCsuODpuOCrQ0KK+OCueODn+ODpOODnizjgrvjgqTjgrgNCivjgrvjg4Pjgr8s44Oe44K144KtDQor44Kk44K344Ov44K/LOODgOOCpOOCuOODpQ0KK+OCu+ODs+OCtOOCryzjg5/jg47jg6sNCivjgr/jgqvjgqrjgqss44Om44OfDQor44K/44Kr44K244OvLOOCv+OCq+OCt+OCsg0KK+OCv+OCq+ODj+OCtyzjgqLjg6TjgrMNCivjgr/jgqvjg6Djg6ks44K/44Kr44Om44KtDQor44K/44Kt44OILOODkuODh+OCrQ0KK+OCv+ODiuOCqyzjgqvjgroNCivjgr/jg4rjgqss44Ki44Kt44KzDQor44Kk44OI44KmLOOCuOODpeODs+OCuA0KK+OCv+ODiuODmSzjgrHjg7PjgrgNCivjgr/jg4vjgrDjg4Es44Oe44OK44OWDQor44OB44Oj44Ov44Oz44OkLOODqOOCt+ODj+ODqw0KK+ODhuODqeOCteOCqyzjg5Ljg63jgq0NCivjg4jjgrPjg60s44K444Ol44Oz44Kk44OBDQor44OK44Kr44KkLOOCv+OCq+OCtw0KK+ODiuOCq+OCqizjgrfjg7PjgrgNCivjg4rjgqzjgqrjgqss44Of44ObDQor44OK44Kr44Ks44OvLOODouODiOOCouOCrQ0KK+ODiuOCq+OCuOODnizjgrnjg5Ljg4ENCivjg4rjgqzjgrss44K/44OE44OkDQor44OK44Kr44OOLOOCu+OCpOOCvw0KK+ODiuOCq+ODjizjgrgNCivjg4rjgqzjg44s44Om44Km44KzDQor44Kk44Kx44OALOOCouOCreOCsw0KK+ODiuOCq+ODoOODqSzjg57jg6rjgrMNCivjg4rjgqvjg6Tjg54s44Kr44OE44OI44K3DQor44OL44KqLOOCuOODpeODs+OCpOODgQ0KK+ODi+OCt+OCqizjg47jg6rjgrMNCivjg4vjgrfjgqvjgqQs44OI44K344Of44OEDQor44OL44K344K244KrLOODqOOCt+OCsw0KK+ODi+OCt+ODgCzjg4DjgqTjgrnjgrENCivjg4vjgrfjg4As44K/44Kr44K3DQor44Kk44Kk44K444OeLOODnuOCteOCrQ0KK+ODi+OCt+ODj+ODqSzjgqvjgrrjg6bjgq0NCivjg4vjgrfjg6Djg6ks44Kr44K644OkDQor44ON44Ot44OhLOODkuODreOCtw0KK+ODjuOCuOODnizjgrXjg43jg5Ljg60NCivjg47jg4rjgqss44OA44Kk44K544KxDQor44OP44K344OQLOODjuODquOCq+OCug0KK+ODj+ODgeODpCzjgr/jgqvjg5Ljg60NCivjg4/jg4Pjg4jjg6os44KzDQor44Kk44Kk44OALOODkuODreODpuOCrQ0KK+ODj+ODlizjg57jgrPjg4gNCivjg4/jg6Tjgqvjg68s44OG44OE44Ot44KmDQor44OP44Ok44K3LOODiuOCquOCsw0KK+ODj+ODpOOCt+ODnizjg5Ljg4fjgrcNCivjg4/jg6ks44K/44Kv44OfDQor44OS44Ks44K344OALOODnuOCteODqw0KK+OCu+OCreOCsOODgSzjgq3jg6fjgqbjgqTjg4ENCivjg5Ljg6njgqQs44Kr44Kq44OqDQor44OS44Ot44K544KoLOODkuODreODpuOCrQ0KK+ODkuODreODj+OCvyzjgr/jgq/jg6QNCivjg5Xjgq/jgrfjg54s44Of44OE44KqDQor44OV44K444KqLOODhuODs+ODmuOCpA0KK+ODleOCuOOCvyzjg6bjgqbjgqTjg4Hjg63jgqYNCivjg5Xjgrjjg57jgq0s44Om44Kt44OS44KzDQor44OV44K444Ov44OpLOODiOOCquODqw0KK+ODleODq+OCpOODgSzjg6bjgqbjgrnjgrENCivjg5vjgrXjgqss44K/44Kx44K3DQor44Ob44K344OOLOOCs+OCpuOCuA0KK+ODm+ODqizjg6bjgq3jgrMNCivjg5vjg6rjg6Ljg4gs44Om44Km44K4DQor44Ob44Oz44OeLOODpuOCreODjuODlg0KK+ODnuOCqOOCq+ODryzjgr/jgrHjg4/jg6sNCivjg57jgqjjg4As44K/44Kr44OS44OIDQor44Oe44Ko44OALOODn+OCreOCqg0KK+ODnuOCqOODgCzjgr/jg4Tjg6QNCivjg57jgrXjgqQs44Kv44OfDQor44Oe44OE44KkLOODkuODh+ODjuODlg0KK+ODnuODhOOCtuODryzjg4Hjgqvjg6kNCivjg57jg4Tjg4As44K/44Kr44Om44KtDQor44Oe44OE44OI44OiLOODnuOCteODiuOCqg0KK+ODnuODhOODiuOCrCzjgrHjg7PjgrgNCivjg57jg4Tjg6Ljg4gs44Oo44Km44K544KxDQor44Of44K644Kw44OBLOODiOODouOCv+OCqw0KK+ODn+ODpOODouODiCzjg57jg6bjg58NCivjg5/jg6Tjg6Ljg4gs44Ok44K544K4DQor44Og44Op44Kr44OfLOOCq+OCuuODkuODhw0KK+ODoOODqeOCq+ODnyzjg57jgrXjg5Ljg60NCivjg6Djg6njg4rjgqss44K144OI44K3DQor44Oi44OB44K644KtLOOCv+OCr+ODpA0KK+ODouODiOOCr+ODqSzjg4jjg6LjgrMNCivjg6Ljg6os44Kv44OL44Kr44K6DQor44Oi44Oq44OkLOODm+ODnuODrA0KK+ODpOOCueOCpCzjgr/jgqTjgrLjg7MNCivjg6Tjgrnjg4As44Of44Kt44KzDQor44Ok44K544OALOOCreODqOODkuODiA0KK+ODpOOCvyzjgqvjgrrjg5Ljg60NCivjg6Tjgr/jgq0s44OO44OW44KqDQor44Ok44OBLOODleODn+ODkuOCsw0KK+ODpOODjizjg5Ljg63jgrcNCivjg6Tjg57jgqTjgrrjg58s44Oo44K344Ki44KtDQor44Ok44Oe44Kq44KrLOODnuOCteOCrQ0KK+ODpOODnuOCsOODgSzjg6Tjgrnjg5Ljg60NCivjg6Tjg57jgrDjg4Es44Oo44K344OO44OqDQor44Ok44Oe44K244KtLOOCouOCreOCqg0KK+ODpOODnuOCtuOCrSzjg4rjg4oNCivjg6Tjg57jgrfjgr8s44Oe44Kk44KzDQor44Ok44Oe44Oi44OILOOCseODsw0KK+ODqOOCs+OCvOOCrSzjgr/jgqTjg4ENCivjg6jjgrfjg4As44OK44Kq44OIDQor44Oo44K344OOLOODpOOCueOCqg0KK+ODqOOCt+ODnyzjgr/jgqvjgrcNCivjg6jjg4As44K/44Kr44OS44OtDQor44Oo44OALOODkuODreOCouOCrQ0KK+ODreOCuCzjg5Xjg5/jgqLjgq0NCivjg6/jg4As44Oe44OfDQor44Ov44K/44OK44OZLOODpuOCreOCqg0KK+ODr+OCv+ODiuODmSzjg5Ljg4fjgq0NCivjg6/jgr/jg4rjg5ks44Kr44K644KqDQor44Ov44K/44OZLOOCv+OCq+OCtw0KK+OCq+ODjuOCpizjgr/jgqvjg4jjgrcNCivjg4vjg4Pjgr8s44Kq44K144OgDQor44Ki44Kq44KtLOOCt+ODpeOCpg0KK+OCouOCquOCrSzjg4/jg4rjgrMNCivjgqLjgqrjg6Tjg54s44Oe44K144Ki44KtDQor44Ki44Kq44Ok44OeLOODjOOCpA0KK+OCouOCreODkCzjgrHjgqTjgqTjg4ENCivjgqLjgrXjg4As44Oe44Oq44KzDQor44Ki44OA44OBLOODiOODouODnw0KK+OCouODgOODgSzjg6bjgqbjgrMNCivjgqLjg4jjg5ks44OP44Or44OIDQor44Ki44OZLOOCq+ODhOODkuOCsw0KK+OCouODmSzjg47jg5bjgqoNCivjgqLjg5ks44Oe44Om44OfDQor44Ki44Oe44OOLOODnuOCrQ0KK+OCouODnuODjizjgrjjg6Xjg7PjgqTjg4Hjg60NCivjgqLjg6njgqvjg68s44Oq44On44Km44K544KxDQor44Ki44Oq44K/LOODqOOCpuODmOOCpA0KK+OCouODquODiOODoizjg5Ljg63jgrcNCivjgqLjg7PjgrbjgqQs44OS44OH44Ki44KtDQor44Kk44OI44KmLOODqOOCpuOCuA0KK+OCouODs+ODieOCpizjg6rjgqjjgrMNCivjgqTjgqzjg6njgrcs44Of44Kq44KzDQor44Kk44Kx44OALOOCpOOCuuODnw0KK+OCv+OCq+ODj+OCtyzjgqLjg4TjgqoNCivjgqTjgrfjg5Djgrcs44K/44OA44K3DQor44Kk44K344Og44OpLOODpuODn+OCsw0KK+OCpOOCt+ODouODiCzjg57jg6rjgrMNCivjgqTjg4HjgqQs44Kx44Kk44KzDQor44Kk44OB44Kr44OvLOODkuODreODiA0KK+OCpOODgeOCq+ODryzjg57jgq3jgrMNCivjgqTjg4Hjg47jgrss44Kt44Oo44K3DQor44Kk44OI44KmLOOCouOCreODkuODrQ0KK+OCpOODiOOCpizjg57jgrXjg6sNCivjgqTjg4jjgqYs44Oq44K1DQor44Kk44OK44Kq44KrLOODnuOCteODleODnw0KK+OCpOODiuODkCzjg5Ljg63jgr/jgrENCivjgqTjg4zjgrrjgqss44Oe44Om44OfDQor44Kk44OO44Km44KoLOODkuODh+OCquODnw0KK+OCpOODjuOCq+ODryzjgrfjg6Xjg7PjgrnjgrENCivjgqTjg57jgqQs44K/44Kx44K3DQor44Kk44Oe44K344Ol44KvLOODquODp+OCpg0KK+OCpOODr+OCpCzjg4jjg6Ljg5LjgrMNCivjgqTjg6/jgrfjg54s44K344Ol44Km44Kk44OBDQor44Km44Ko44K+44OOLOODoeOCsOODnw0KK+OCpuOCqOODgCzjgr/jgqvjg5Ljg60NCivjgqbjgqjjg4/jg6ks44K/44Kr44Om44KtDQor44Km44Ko44OP44OpLOODouODiOOCsw0KK+OCq+OCreOCvyzjgrHjg7MNCivjgqbjgrXjg58s44OS44K444OqDQor44Km44OB44OALOODkuODreOCrQ0KK+OCpuODgeODgCzjgqLjg6TjgrMNCivjgqbjg4Hjg5zjg6os44Of44K144OIDQor44Km44Oh44Ks44KkLOOCq+OCuuOCqA0KK+OCpuODoeODhCzjgqLjgq3jg5LjgrMNCivjgqbjg6Hjg44s44K/44Kx44K3DQor44Km44Op44Kr44OvLOODpuOCrQ0KK+OCpuODqeODmSzjgrfjgrLjg5LjgrUNCivjgqjjgrDjg4Es44K/44OA44K3DQor44Ko44K644OfLOOCpOOCr+ODqA0KK+OCqOODjuODouODiCzjgr/jg63jgqYNCivjgqTjg57jg4vjgrcs44OS44Ot44Om44KtDQor44Ko44OO44Oi44OILOODleODn+OCsw0KK+OCqOODs+ODiSzjg6jjgrfjgq0NCivjgqrjgqTjgqvjg68s44Oe44K144KtDQor44Kq44Kk44Kr44OvLOODpuOCreODleODnw0KK+OCquOCquOCpCzjg6jjgqbjgrgNCivjgqrjgqrjgqTjgrcs44Oe44K144OP44OrDQor44Kq44Kq44K/LOODleODn+OCq+OCug0KK+OCquOCquODhOOCqyzjgrfjg7PjgrnjgrENCivjgqrjgqrjg4vjgrcs44Kr44OE44Ki44KtDQor44Kq44Kq44OL44K3LOODn+ODgeOCqA0KK+OCquOCq+ODgCzjg6TjgrnjgqoNCivjgqrjgqvjg4As44Oe44K144OrDQor44Kq44Kr44OOLOODpuOCrQ0KK+OCquOCq+ODmSzjg6jjgrfjg5Ljg60NCivjgqrjgqvjg5ks44OS44OH44Ki44KtDQor44Kq44Kr44Og44OpLOODquODp+OCpg0KK+OCquOCq+ODouODiCzjg5/jgq0NCivjgqrjgqvjg6Ljg4gs44Of44Om44KtDQor44Kq44Ks44OvLOOCv+OCqOOCsw0KK+OCquOCrOODryzjg4jjgqrjg6sNCivjgqrjgq/jg4As44Kx44OzDQor44Kq44Kv44OALOODhuODhOODpA0KK+OCquOCtuOCrSzjg57jg5/jgrMNCivjgqrjg44s44OK44Kq44KzDQor44Kq44Kq44Ok44OeLOOCv+OCq+OCtw0KK+OCq+OCpOOCuuOCqyzjg4jjgrfjg5Xjg58NCivjgqvjgqzjg58s44Ko44Oq44KrDQor44Kr44Kt44K/LOOCq+OCquODqw0KK+OCq+OCryzjgrPjgqbjgrgNCivjgqvjgrXjgqQs44Om44Kt44OO44OqDQor44Kr44K444KkLOOCouOCq+ODjQ0KK+OCq+OCuOOCvyzjg4rjgqrjg6QNCivjgqvjgr/jgqgs44Om44Km44K444OzDQor44Kr44K/44Ok44OeLOODn+ODhOOCsw0KK+OCq+ODhCzjg4jjgqrjg6sNCivjgqvjg4jjgqYs44K/44KvDQor44Kr44OI44KmLOODgOOCpOOCueOCsQ0KK+OCq+ODnyzjgqLjg4TjgrMNCivjgqvjg43jgrMs44Kv44OL44OS44OIDQor44Kr44Oe44OALOOCq+OCuuODkuODrQ0KK+OCq+ODnyzjg6jjgrfjg4bjg6sNCivjgqvjg5/jg5LjgrUs44Om44Km44K4DQor44Kr44Of44Oi44OILOOCq+OCquODqg0KK+OCq+ODn+ODpCzjgqvjgrrjgqoNCivjgqvjg5/jg6Tjg54s44Oe44KtDQor44Kr44Ov44Kr44OfLOODnuOCueODnw0KK+OCq+ODr+OCteOCrSzjg5Ljg4jjgrcNCivjgqvjg6/jgrss44OS44Ot44Kr44K6DQor44Kr44Ov44OP44K/LOOCv+OCseODgeOCqw0KK+OCq+ODr+ODj+ODqSzjgrjjg6Xjg7PjgrMNCivjgqvjg6/jg6Djg6ks44Kr44K644OS44OtDQor44Kr44Ov44Oi44OILOOCseOCpOOCueOCsQ0KK+OCq+ODr+ODouODiCzjg5Ljg63jgrcNCivjgqvjg6/jg6Ljg4gs44Of44OB44KqDQor44Kr44Oz44OALOOCv+OCseOCtw0KK+OCreOCr+ODgSzjgqjjg6oNCivjgq3jgr/jgqzjg68s44Oe44K144OW44OfDQor44Kt44K/44OK44KsLOOCteOCq+OCqA0KK+OCreOCv+ODjizjgrfjg7PjgrQNCivjgq3jgr/jg6Djg6ks44K/44OE44OkDQor44Kt44K/44Oi44OILOODhOODiOODoA0KK+OCreODjuOCqCzjg5Ljg63jgrcNCivjgq3jg5bjgrss44K/44Kr44KoDQor44Kt44Og44OpLOOCuOODpeODs+OCpOODgQ0KK+OCreODoOODqSzjg4jjg6Ljgq0NCivjgq3jg6Ljg4gs44OS44OH44Om44KtDQor44Kt44Oi44OILOODpuODqg0KK+OCruODp+OCpuODlizjg5Ljg63jgrMNCivjgq/jg4ss44Of44ObDQor44Kv44OL44Oe44K1LOODn+OCqOOCsw0KK+OCr+ODnuOCteOCqyzjgr/jgqTjgrvjg4QNCivjgq/jg6njgrfjgrIs44Ki44Kt44KqDQor44Kv44Oq44OP44OpLOOCv+OCseOCtw0KK+OCs+OCpOOCsSzjg6HjgrDjg58NCivjgrPjgqTjgrHjg4As44K/44OE44Ot44KmDQor44Kz44Kk44K644OfLOODkuODreOCtw0KK+OCs+OCpOODjOODnizjg5/jg4HjgrMNCivjgrPjg4Tjgqss44Kr44K644Ki44KtDQor44Kz44KsLOOCt+OCsuOCrQ0KK+OCs+OCt+ODouODiCzjg5Ljg63jg5/jg4QNCivjgrPjg4Djg54s44K/44Kk44OB44Ot44KmDQor44Kz44OA44OeLOODnuOCteOCq+OCug0KK+OCtOODiOOCpizjgqLjg6rjg6jjgrcNCivjgrPjg4vjgrcs44OI44Oi44KzDQor44Kz44OQ44Ok44K3LOODqOOCt+OCuA0KK+OCs+ODkOODpOOCtyzjg57jgrXjgq0NCivjgrPjg5Djg6Tjgrcs44Ok44K544K/44KrDQor44Kz44OQ44Ok44K3LOODkuODh+ODkuODiA0KK+OCs+ODnuOCrSzjgr/jg4Tjg6QNCivjgrPjg57jg5As44Kr44K644OO44OqDQor44Kz44Of44OkLOOCq+ODhOODkuOCsw0KK+OCs+ODpOODnizjg57jgrXjg47jg6oNCivjgrPjg6Tjg54s44Ok44K544OO44OqDQor44K144Kk44KtLOODiOODouODkuOCtQ0KK+OCteOCpOOCtOOCpizjg5/jg6/jgrMNCivjgrXjgqTjg4jjgqYs44Kx44Oz44K4DQor44K144Kk44OI44KmLOODhuODhOOCqg0KK+OCteOCpOODiOOCpizjgqTjgrXjg6ANCivjgqTjgqzjg6njgrcs44K344On44Km44K0DQor44K144Ko44Kw44K1LOODiuODnw0KK+OCteOCq+OCpCzjgqLjgq3jg6kNCivjgrXjgqvjgqzjg58s44Kk44OB44Ot44KmDQor44K144Kr44ONLOODgOOCpOOCrQ0KK+OCteOCq+ODouODiCzjg4jjg6Ljg47jg6oNCivjgrXjgqvjg6Ljg4gs44Oe44Kz44OIDQor44K144Kv44Op44KkLOODkuODreODnw0KK+OCteOCr+ODqeODgCzjg6rjg6fjgqbjgrgNCivjgrXjgrPjg7Ms44Oe44K144OS44OtDQor44K144K144KtLOODiuODiuOCqA0KK+OCteOCteODj+ODqSzjg6/jgqvjgrMNCivjgrXjg4jjgqYs44Ky44OzDQor44K144OI44KmLOOCuOODpeODs+OCpOODgQ0KK+OCteODiOOCpizjgrHjg7PjgrQNCivjgrXjg4jjgqYs44OK44Kq44OIDQor44K144OOLOODkuODh+OCouOCrQ0KK+OCteODryzjgrHjg7PjgrQNCivjgrfjg5bjg6Qs44K/44OA44K3DQor44K344OW44OkLOODkuODh+OCqg0KK+OCt+ODnuODgCzjg57jg4rjgqgNCivjgrfjg57jg4As44OS44OH44K/44KxDQor44K344Oe44OALOODpOODqOOCpA0KK+OCt+ODn+OCuizjg6bjgq3jgqoNCivjgrfjg5/jgros44OA44Kk44K544KxDQor44K344Of44K6LOODkuODh+OCrQ0KK+OCt+ODn+OCuizjgqLjgq3jg44NCivjgrfjg5/jgros44OK44Kq44Om44KtDQor44Kk44OO44Km44KoLOOCseOCpOOCueOCsQ0KK+OCt+ODoizjgrXjg4jjgrcNCivjgrfjg6fjgqbjg4As44K344Ky44OO44OqDQor44K444Oz44OOLOODnuOCs+ODiA0KK+OCuOODs+ODjizjg6rjg6XjgqbjgrgNCivjgrfjg7Pjg57jg4Es44K/44Kx44K3DQor44K544Ku44KkLOODnuOCteODiuOCqg0KK+OCueOCruOCquOCqyzjgr/jgqvjg5LjgrMNCivjgrnjgq7jg6Ljg4gs44Of44OB44OO44OqDQor44K544K644KtLOOCq+OCuuODkuODqQ0KK+OCueOCuuOCrSzjg4DjgqTjgrnjgrENCivjgrnjgrrjgq0s44Kr44K644OS44OtDQor44K544K644KtLOODkuODreOCt+OCsg0KK+OCueOCuuOCrSzjg6bjgqbjgqTjg4Hjg63jgqYNCivjgrvjgqos44OO44Oq44KzDQor44K744KtLOOCveOCpg0KK+OCpOOCt+ODj+ODnizjgrHjg7Pjg4gNCivjgr3jg47jg4As44Kz44Km44K/44Ot44KmDQor44K/44KkLOODqOOCt+OCouOCrQ0KK+OCv+OCq+OCpOODryzjgq3jg6jjgrcNCivjgr/jgqvjgq4s44Om44Km44K4DQor44K/44Kr44OP44K3LOODnuOCreOCsw0KK+OCv+OCq+ODj+OCtyzjg47jg5bjg6bjgq0NCivjgr/jgqvjg4/jgrcs44Oe44Kt44KzDQor44K/44Kr44OP44K3LOOCv+OCseOCtw0KK+OCv+OCq+ODj+OCtyzjgqLjgq3jg5LjgrMNCivjgr/jgqvjg6Djgq8s44Kx44Oz44K3DQor44K/44Kw44OBLOODkuODreOCsw0KK+OCv+OCseOCpuODgSzjg6jjgrfjgrMNCivjgr/jgrHjgqvjg68s44Oe44K144K3DQor44K/44Kx44OvLOOCt+ODs+OCuA0KK+OCv+ODgOODnuODhCzjg5Ljg4fjgq0NCivjgr/jgr/jg6ks44Kz44Km44K4DQor44K/44OK44KrLOOCv+OCq+OCtw0KK+OCv+ODi+ODouODiCzjg6bjgqbjgrgNCivjgr/jg43jg6Djg6ks44Ki44Kt44OV44OfDQor44K/44OP44OpLOOCteODiOOCtw0KK+OCv+ODoOODqSzjg5Ljg63jgrcNCivjg4Djg7Ms44K/44Kr44Om44KtDQor44Kk44Kk44OALOODoOODjeODjuODqg0KK+ODgeODkCzjgqjjgqTjgrnjgrENCivjg4Hjg6fjgqbjg4jjgq8s44OS44OH44Om44KtDQor44OE44Kr44OP44OpLOODkuODreODpuOCrQ0KK+ODhOODhOODnyzjg57jgrPjg4gNCivjg4Tjg6Ljg6os44Oe44Oq44KzDQor44OG44Op44K344K/LOODpuOCpuOCpOODgeODreOCpg0KK+ODieOCpCzjg6bjgr/jgqsNCivjg4njgqQs44Oo44K344KoDQor44OJ44KkLOODqOOCpuOCpOODgQ0KK+ODiOOCt+ODnizjgrPjgqbjg5jjgqQNCivjg4rjgqTjg4jjgqYs44Kz44Km44K4DQor44OK44Kr44KkLOODnuOCteODkuODrQ0KK+ODiuOCq+OCpCzjgrfjg6Xjgqbjg5jjgqQNCivjg4rjgqvjgqos44Kt44Ob44KzDQor44OK44Kr44Ks44OvLOODgeOCouOCrQ0KK+ODiuOCrOOCteOCrSzjgqvjgqrjg6oNCivjg4rjgqvjgrjjg54s44K/44Kr44OV44OfDQor44OK44Kr44K444OeLOODjuOCvuODoA0KK+ODiuOCq+OCt+ODnizjgrXjg4rjgqgNCivjg4rjgqvjg4As44Kt44Oo44KzDQor44OK44Kr44OP44OpLOODn+ODiuOCsw0KK+ODiuOCq+ODoOODqSzjgrjjg6Xjg7Pjgr7jgqYNCivjg4rjgqvjg6Djg6ks44K344Ol44Km44K/44Ot44KmDQor44OK44Kr44Og44OpLOODpuODqg0KK+ODiuOCq+ODoOODqSzjgr3jgqbjgqTjg4Hjg63jgqYNCivjg4rjgqvjg6Djg6ks44Of44OE44OS44OtDQor44OK44Kr44Og44OpLOOCq+ODhOODkuOCsw0KK+ODiuOCq+ODoOODqSzjg5Ljg4fjg6QNCivjg5vjgrfjg44s44OI44K344OP44OrDQor44OK44Kr44Oi44OILOOCouOCreOCsw0KK+OCpOOCseODgCzjg57jgrXjgr/jgqsNCivjg4rjgqvjg6Ljg6os44OI44Kq44OrDQor44OK44Ks44Oo44K3LOOCv+OCq+ODnuOCtQ0KK+ODiuODh+ODj+ODqSzjg5Ljg63jgrcNCivjg4rjg4rjg6Ljg6os44OE44OI44OgDQor44OK44Op44K144KrLOODkuODreOCtw0KK+ODiuODs+ODkCzjg6bjgq0NCivjg4vjgrcs44OE44ON44Ki44KtDQor44OL44K344Kr44OvLOODkuODh+OCouOCrQ0KK+ODi+OCt+ODgCzjgrHjg7PjgrcNCivjg4vjgrfjg6Djg6ks44Om44KtDQor44OO44Kw44OBLOOCteODiOOCtw0KK+ODjuODgCzjgrHjg7PjgqTjg4ENCivjg47jg4rjg58s44K544Kw44OrDQor44OO44OO44Kk44OB44OkLOODnuOCueOCqg0KK+ODjuODoOODqSzjg4jjg6Ljg5LjgrMNCivjg47jg6Ljg4gs44Om44Km44Kk44OBDQor44OP44Ks44OkLOODiuOCquODpuOCrQ0KK+ODj+OCruODr+ODqSzjg6Tjgrnjg6bjgq0NCivjg4/jgq8s44OI44Oi44OS44OIDQor44OP44K3LOOCv+OCq+OCtw0KK+ODj+OCt+OCuuODoSzjg6bjgqbjgrMNCivjg4/jgrfjg5As44Oe44Kz44OIDQor44OP44K744OZLOOCv+OCq+ODnuOCtQ0KK+ODj+OCvyzjg57jgrXjg5/jg4ENCivjg4/jgr/jgqgs44Of44Kt44OIDQor44OP44K/44OOLOOCouOCreODqOOCtw0KK+ODj+ODgeODjizjgrnjgrnjg6ANCivjg4/jg4Pjg4jjg6os44Om44KmDQor44OP44Ok44K3LOODrOOCpOOCsw0KK+ODj+ODpOOCt+ODgCzjgqLjgq3jg6kNCivjg4/jg6Tjg5Xjg40s44Oo44K344Ki44KtDQor44OP44OpLOOCv+ODhOOCuA0KK+ODj+ODqeODgCzjgq/jg5/jgrMNCivjg4/jg6njg4As44Oe44K144KzDQor44Kk44OO44Kw44OBLOOCq+ODhOODleODnw0KK+ODj+ODqeODgCzjgr/jgqvjg6bjgq0NCivjg5Ljgqzjgrfjg6Tjg54s44Oo44Km44KzDQor44OS44Kw44OBLOODkuODh+OCrQ0KK+ODkuOCtCzjg5Ljg63jgrcNCivjg5Ljg4Djg44s44OI44Oi44OkDQor44OS44Oe44KtLOODiOODouODjuODqg0KK+OCr+ODqeOCt+OCsizjgqvjgrrjg6bjgq0NCivjgqTjgrfjg4/jg6ks44Os44Kk44KzDQor44OS44Op44K/LOOCt+OCsuOCqg0KK+ODkuODreOCteODryzjg6bjgq3jgrMNCivjg5Ljg63jgr8s44Kx44Kk44KzDQor44OV44Kr44K144OvLOODn+OCreOCsw0KK+ODleOCq+OCtuODryzjg6rjgqgNCivjg5Xjgqvjgrbjg68s44K/44Kr44K3DQor44OV44Kv44Og44OtLOODnuOCteODiOODog0KK+ODleOCuOOCpCzjg4bjg4Tjg6QNCivjgqTjg4jjgqYs44Kx44Kk44KzDQor44OV44K444KkLOODn+OCquOCsw0KK+ODleOCuOODiuOCrCzjgrHjgqTjgrgNCivjg5Xjgrjjg4rjgqws44OV44Of44KzDQor44OV44K444Ov44OpLOODjuODquODkuODrQ0KK+ODleOCuOODr+ODqSzjg6rjgqgNCivjg5Xjgrjjg6/jg6ks44OK44Kq44Om44KtDQor44OV44K/44OE44KuLOODhOODqOOCtw0KK+ODleOCv+ODhOODouODqizjgrfjgrrjgqsNCivjg5Xjg6vjg4/jgr8s44OO44OW44Ki44KtDQor44OV44Or44OkLOODnuODquOCsw0KK+ODmOODs+ODnyzjg57jgrXjg6sNCivjg5vjgrcs44Oe44Kk44KzDQor44Ob44K344OOLOOCq+ODhOOCouOCrQ0KK+ODm+ODqizjgq3jg5/jg5Ljg60NCivjg5vjg6rjgqgs44K344Oz44K4DQor44Ob44Oq44Kq44KrLOOCouODhOOCsw0KK+ODm+ODquOCq+ODryzjg4jjg6Ljg5Ljg60NCivjg57jgqjjg5Xjg40s44OK44Of44KzDQor44Oe44Kt44OOLOODpOOCueODjuODqg0KK+ODnuOCueODgCzjgqrjgq/jg4gNCivjg57jg4Tjgqbjg6ks44K/44Kx44K3DQor44Oe44OE44K344K/LOOCouOCreOCtw0KK+ODnuODhOODouODiCzjg5Ljg4fjgr/jgqsNCivjgqTjgrDjg4Es44K/44Kr44OS44OtDQor44Oe44OE44Ok44OeLOODnuOCteODkuODrQ0KK+ODnuODiuODmSzjg4Hjg44NCivjg57jg6vjg6Tjg54s44OK44Kq44Om44KtDQor44Of44Km44OpLOODn+ODgeODqw0KK+ODn+OCrSzjgr/jgqvjg6bjgq0NCivjg5/jg4Tjg4/jgrcs44Ko44Kk44Kk44OBDQor44Of44OE44OZLOODnuOCteODiA0KK+ODn+ODiOODmSzjg5LjgrXjg6QNCivjg4Hjg6fjgqbjg4jjgq8s44K/44Oe44KtDQor44Kk44Kx44OV44K4LOODjuODluODqOOCtw0KK+ODn+ODpOOCtuOCrSzjg57jgrXjg4/jg6sNCivjg5/jg6Tjgrbjgq0s44Ki44Kt44OpDQor44Of44Ok44K344K/LOODqOOCpuOCsw0KK+ODn+ODpOOCvyzjgr/jgqvjgrcNCivjg6DjgrPjgqbjg6Tjg54s44Of44OB44OS44OHDQor44Og44Op44KkLOODn+ODmw0KK+ODoOODqeOCq+ODnyzjg57jg58NCivjg6Djg6njgqvjg58s44Of44OE44Ki44KtDQor44Og44Op44K/LOODiOODouODpuOCrQ0KK+ODoOODqeODnuODhCzjg57jgrXjg6bjgq0NCivjg6Ljg4jjgq0s44K444Ol44Oz44K/DQor44Oi44OI44Oo44K3LOOCu+OCpOOCpOODgQ0KK+ODouODn+ODpOODnizjgqjjgqTjgrgNCivjg6Ljg6os44K/44Kr44K3DQor44Oi44OqLOOCv+OCseODpA0KK+ODouODquOCpuOCqCzjg6jjgrfjgr/jgqsNCivjgqTjg47jgqbjgqgs44Ki44Kt44OO44OqDQor44Oi44Oq44Km44OBLOOCt+ODs+OCv+ODreOCpg0KK+ODouODquOCvyzjg6bjgqbjgq0NCivjg6Tjgq7jgrXjg68s44Kr44K644OfDQor44Ok44K344OeLOOCs+OCpuOCuA0KK+ODpOOCueODgCzjg5Xjg5/jg5LjgrMNCivjg6Tjg44s44Of44KtDQor44Ok44OOLOOCv+ODgOOCv+OCqw0KK+ODpOODnuOCsOODgSzjgrjjg6Xjg7MNCivjg6Tjg57jgrXjgq0s44OV44Of44OS44KzDQor44Ok44Oe44K244KtLOODjuODluODkuOCsw0KK+ODpOODnuOCt+OCvyzjgrHjgqTjgrgNCivjg6Tjg57jgrfjgr8s44Ki44OE44K3DQor44Ok44Oe44OALOOCv+ODhOOCqg0KK+ODpOODnuODiizjgqvjg4oNCivjg6Tjg57jg5/jg4Es44Kx44Kk44K544KxDQor44Kk44OK44KrLOOCsuODs+OCvw0KK+ODpOODnuODouODiCzjgrPjgqbjgrgNCivjg6Tjg57jg6Ljg4gs44K/44Kv44OkDQor44Ok44Oe44Oi44OILOODkuODh+OCqg0KK+ODpOODnuODouODiCzjg6Djg43jgr/jgqsNCivjg6bjg5As44Om44K/44KrDQor44Oo44Kz44K/44OLLOODnuOCs+ODiA0KK+ODqOOCs+ODpOODnizjg6jjgrfjgqoNCivjg6jjgrfjg4As44Kr44K644OS44OtDQor44Oo44K344OALOODiOOCt+OCq+OCug0KK+OCpOODr+OCteOCrSzjg4jjgrfjgqvjgroNCivjg6jjgrfjg4As44Oq44On44KmDQor44Oo44OALOOCqOODnw0KK+ODr+OCq+ODnuODhCzjg5/jg4HjgqgNCivjg6/jgrUs44Oq44On44Km44KzDQor44Ov44OALOOCq+OCquODqw0KK+ODr+OCv+ODiuODmSzjgrHjgqTjgr7jgqYNCivjgqTjg6/jgq/jg6ks44Ko44Kk44Kk44OBDQor44Ov44K/44OK44OZLOODkuODh+ODpuOCrQ0KK+ODr+OCv+ODiuODmSzjgqvjgrrjg5/jg40NCivjg6/jgr/jg4rjg5ks44K344On44Km44K/44Ot44KmDQor44Ov44K/44OK44OZLOODpuOCrQ0KK+ODr+OCv+ODiuODmSzjgrfjgrLjg6sNCivjg6/jgr/jg4rjg5ks44OS44Ot44Om44KtDQor44Ov44K/44OK44OZLOOCreODqOOCq+OCug0KK+ODr+OCv+ODiuODmSzjg4jjgrfjgqgNCivjgqrjgqrjgqQs44OO44OW44OS44OtDQor44Kk44Kk44OALOODpuOCreOCsw0KK+ODoOOCq+OCpCzjgr/jgqvjgrcNCivjg5Xjg5/jg4/jg6ks44Kr44Kq44OqDQor44Kr44Ov44K044KoLOODnuOCteODj+ODqw0KK+OCr+ODreOCq+ODryzjg5Ljg63jg58NCivjgrPjgqbjg4As44K144OI44OrDQor44OV44K444K/LOODpuOCpuOCsw0KK+OCs+ODkOODpOOCtyzjgr/jgrHjgrcNCivjg4/jg57jg6Djg6ks44Kr44OoDQor44Kk44Ov44K7LOODpOOCueODkuODrQ0KK+OCv+OCseODgCzjg57jgrXjg6sNCivjgqrjgqzjg68s44OS44Ot44Ki44KtDQor44Of44K644K/LOOCteODiOODqw0KK+OCpOOCpOODgCzjgqLjg4TjgrcNCivjgqLjgqTjg4/jg6ks44Ok44K544KzDQor44Ki44Kq44KmLOODiOOCt+OCrQ0KK+OCouOCquOCrSzjgrfjg7PjgrPjgqYNCivjgqLjgqrjg5As44OS44Ot44Oo44K3DQor44Ki44Kt44Oi44OILOOCueOCueODoA0KK+OCouOCteOCpCzjg6bjgqbjgrMNCivjgqTjgrfjg6Tjg54s44K344Ol44Oz44K544KxDQor44Ki44K144KqLOOCqOODn+OCsw0KK+OCouOCteODgCzjg4jjgrfjgq0NCivjgqLjgrXjg4As44Kx44Oz44K/44Ot44KmDQor44Ki44K144OOLOODleOCuOOCqg0KK+OCouOCteODjizjg4jjg6Ljg5LjgrMNCivjgqLjgrbjg58s44OI44K344Om44KtDQor44Ki44K544OeLOOCt+ODpeOCpuODmOOCpA0KK+OCouOCveOCpizjg6bjgqsNCivjgqLjg4Djg4Es44Kt44On44Km44Kk44OBDQor44Ki44OI44OfLOODjuODquODkuODrQ0KK+OCouODiuODnyzjg6Tjgrnjg5LjgrUNCivjgqLjg5ks44Oe44K144Kq44OfDQor44Ki44OZLOODnuOCs+ODiA0KK+OCouODmSzjg57jgrPjg4gNCivjgqLjg57jg44s44Oe44K144OI44K3DQor44Ki44Ok44OZLOOCv+ODreOCpg0KK+OCv+OCseOCreOCvyzjg57jg4rjg5YNCivjgqLjg6njgqQs44Oe44KtDQor44Kk44OE44OOLOODn+OCreOCqg0KK+OCouODquOCq+ODryzjg6jjgrfjg47jg5YNCivjgqLjg6rjgr8s44Kz44Km44Kk44OBDQor44Ki44Oz44K444OlLOODhOODqOOCtw0KK+OCouODs+ODieOCpizjg57jgrXjgq0NCivjgqLjg7Pjg4njgqYs44Oq44Ol44Km44K/DQor44Kk44OB44OO44K7LOOCs+OCuuOCqA0KK+OCpOOCpOODjOODnizjg5Ljg63jg6bjgq0NCivjgqTjgqbjgqgs44Oo44K344Ki44KtDQor44Kk44Ks44Op44K3LOOCouOCreOCsw0KK+OCpOOCseOCpuODgSzjgqrjg6rjgqsNCivjgqTjgrHjgqzjg58s44Of44OO44OrDQor44Kk44Kx44OALOOCv+OCseOCtw0KK+OCpOODquOCvyzjg6TjgrnjgqLjgq0NCivjgqTjgrHjg4As44K344Ol44Km44Kk44OBDQor44Kk44Kx44OALOOCt+ODp+OCpuOCpOODgQ0KK+OCpOOCseODgCzjgrjjg63jgqYNCivjgqTjgrfjgqQs44K444Ol44Oz44Kk44OBDQor44Kk44K344KkLOODiOODouOCsw0KK+OCpOOCt+OCpCzjg4rjgqrjg58NCivjgqTjgrfjgqrjgqss44K344Oz44Kk44OBDQor44Kk44Oe44KkLOOCv+OCseOCtw0KK+OCpOOCt+OCq+ODryzjg6rjg6fjgqbjg5jjgqQNCivjgqTjgrfjgqvjg68s44OI44Oi44OO44OWDQor44Kk44K344Kw44OtLOODpuOCreODkuODrQ0KK+OCpOOCt+ODgCzjgr/jg4Tjg6bjgq0NCivjgqTjgrvjgq0s44K/44Kx44K3DQor44Kk44OB44KtLOODnuOCteODiA0KK+OCpOODgeODjuOCuyzjg4jjg6Ljg5Ljg60NCivjgqTjg4Hjg47jg5/jg6Qs44OV44Of44K/44KxDQor44Kk44OI44KmLOOCt+ODs+OCpOODgQ0KK+OCpOODiOOCpizjg47jg6rjgrMNCivjgqTjg4rjg4As44Oo44K344K/44KrDQor44Kk44OK44OQLOOCu+OCpOOCpOODgeODreOCpg0KK+OCpOODj+ODqSzjgq3jg6jjgr/jgqsNCivjgqTjg47jgqbjgqgs44Kq44K144OgDQor44Kk44OO44Km44KoLOODjuODquOCsw0KK+OCpOODjuOCpuOCqCzjg4jjg6Ljg6bjgq0NCivjgqTjg57jgqTjgrrjg58s44Ki44OE44K3DQor44Kk44OeLOOCteODiOOCsw0KK+OCpOODnuODgCzjg5/jgqoNCivjgqTjg57jgros44OE44Oo44K3DQor44Kk44Oe44Og44OpLOODn+ODhOODiOOCtw0KK+OCpOODquOCv+ODiyzjgr/jgq/jgrgNCivjgqTjg6/jgq0s44K/44OE44OkDQor44Kk44Ov44K144KtLOODnuODqg0KK+OCpOODr+OCteOCrSzjg57jg4oNCivjgqTjg6/jgrnjgq4s44Of44KrDQor44Kk44Ov44OP44K3LOOCpOODgeODreOCpg0KK+OCpOODr+ODluODgSzjg4rjg5sNCivjgqTjg6/jg5vjg6os44Ki44Kt44OS44KzDQor44Km44Ko44OALOODjuODluOCqA0KK+OCpuOCqOODnuODhCzjgr/jgqvjgrcNCivjgqbjgrnjgqQs44OI44Oi44Kk44OBDQor44Km44K544KkLOODnuOCteODkuODrQ0KK+OCpuODgeODgCzjgqvjgqrjg6oNCivjgqbjg4Tjg58s44Oe44Kt44KzDQor44Km44Oh44OALOODkuODh+ODjuODlg0KK+OCpuODqeODjizjg6Tjgrnjg5Ljg60NCivjgqjjgqzjg68s44K/44Kx44K3DQor44Ko44K244KtLOOCouODhOOCsw0KK+OCqOODiOOCpizjgrHjg7PjgrgNCivjgqjjg47jg6Ljg4gs44OP44Or44OS44OpDQor44Ko44OO44Oi44OILOOCouOCreODqQ0KK+OCqOODnizjgqLjgq3jgrMNCivjgqjjg7Pjg4ks44OS44K144OO44OqDQor44Ko44Oz44OJLOODqOOCt+ODnuOCtQ0KK+OCquOCpOOCv+ODiyzjg6bjgq0NCivjgqrjgqYs44Oo44K344OS44OtDQor44Kq44Kq44KkLOOCq+OCquODqw0KK+OCquOCquOCqCzjgqLjgq3jg5Ljg60NCivjgqrjgq0s44Ki44OkDQor44Kq44Kq44Kv44OcLOODleODn+ODjuODqg0KK+OCquOCquOCteODryzjgqTjgrXjgqoNCivjgqrjgqrjgrXjg68s44OS44K144K3DQor44Kk44Ov44Kt44OqLOODr+OCv+ODqw0KK+OCquOCquOCueODnyzjg6Ljg4jjg5LjgrMNCivjgqrjgqrjgr8s44Of44OE44OS44OtDQor44Kq44Kq44K/LOOCv+OCq+OCtw0KK+OCquOCquODhOOCqyzjgqLjgq3jg47jg6oNCivjgqrjgqrjg4Tjgqss44Kz44Km44Kk44OBDQor44Kq44Kq44OE44KrLOODiOODouODkuODrQ0KK+OCquOCquODhOOCrSzjgrjjg6Xjg7MNCivjgqrjg4rjgqss44OA44Kk44K544KxDQor44Kq44Kq44OL44K3LOODqOOCpuOCsw0KK+OCquOCquODnCzjg57jgrXjgrMNCivjgqrjg54s44Kt44Oo44K3DQor44Kq44Og44OpLOOCt+ODjuODlg0KK+OCquODoOODqSzjgq/jg58NCivjgqTjgrfjgqQs44OK44Kq44KzDQor44Kq44Kq44Oi44OqLOODqOOCt+ODkuODrQ0KK+OCquOCquODouODqizjg5Ljg63jgqvjgroNCivjgqrjgqrjg6Ljg6os44OO44OW44OS44K1DQor44Kq44Kq44Ov44OALOOCv+OCq+ODleODnw0KK+OCquOCq+OCpCzjg6zjgqQNCivjgqrjgqvjgrbjgq0s44OI44Oi44Of44OBDQor44Kq44Kr44K244KtLOOCq+OCuuODkuODiA0KK+OCpOOCseODgCzjgqLjgq3jgqoNCivjgqrjgqvjg44s44Ko44Kk44Kk44OBDQor44Kq44Kr44OZLOOCpuODqeODqQ0KK+OCquOCq+ODouODiCzjgqjjg4TjgrMNCivjgqrjgqzjg68s44Om44Km44KzDQor44Kq44Ks44OvLOOCouOCreODqQ0KK+OCquOCrOODryzjg6rjg6fjgqbjgqTjg4ENCivjgqrjgqzjg68s44Kt44Oo44OODQor44Kq44Kq44Ks44Ov44OpLOOCr+ODi+ODj+ODqw0KK+OCquOCr+ODj+ODqSzjgrXjg4jjgrcNCivjgqrjgq/jg6Tjg54s44Oe44KzDQor44Kq44Kw44OpLOODpOOCueODj+ODqw0KK+OCreOCv+ODoOODqSzjg57jg6rjgrMNCivjgqrjgrbjg68s44K344Ky44Of44OEDQor44Kq44OBLOODouODiOODkuODrQ0KK+OCquODjizjgr/jgqvjgrcNCivjgqrjgqrjg44s44OB44KrDQor44Kq44OO44OH44OpLOOCseODs+OCtw0KK+OCquODkOOCvyzjgqvjg4Tjg6jjgrcNCivjgqrjgqrjg6Tjg54s44OB44K644OrDQor44Kq44Oz44K/LOODoeOCsOODnw0KK+OCpOODr+OCvyzjgr/jgrHjgrcNCivjgqvjgqTjg5bjgq0s44Om44OfDQor44Kr44Kt44Oi44OILOODnuODgeOCsw0KK+OCq+OCtuOCsOODgSzjg57jgrXjg47jg6oNCivjgqvjgrXjgrbjgq0s44Oo44K344OS44OtDQor44Kr44K4LOOCteOCquODqg0KK+OCq+OCuOODoOODqSzjg4/jg6vjg4oNCivjgqvjgrfjg6/jgqQs44OO44Oq44KzDQor44Kr44K344Ov44OQ44OpLOODiuOCquODpA0KK+OCq+OCv+OCr+ODqSzjg6jjgrfjg6bjgq0NCivjgqvjgr/jg6Tjg54s44Oe44Kk44KzDQor44Kr44OE44OOLOOCv+OCq+ODjuODqg0KK+OCq+ODiSzjg4HjgqjjgrMNCivjgqvjg4jjgqYs44OO44OW44Om44KtDQor44Kk44K944OOLOODn+ODieODqg0KK+OCq+ODiOOCpizjgr/jgqvjgrcNCivjgqvjg4jjgqYs44K344ObDQor44Kr44OI44KmLOOCouOCreODqOOCtw0KK+OCq+ODiOODqizjgrHjg7PjgrgNCivjgqvjg4rjgrXjgqss44Oi44OI44OS44OtDQor44Kr44OK44K244OvLOODn+ODgeOCsw0KK+OCq+ODiuODpOODnizjgqvjg4rjgrMNCivjgqvjg43jgrMs44Om44Kt44KqDQor44Kr44ON44KzLOODiOODouOCsw0KK+OCq+ODjeODgCzjg6Ljg4jjgq0NCivjgqzjg58s44OS44Ot44K3DQor44Kr44Oh44Kq44KrLOODnuODiuODnw0KK+OCq+ODqeOCteODryzjgqLjgq3jg4bjg6sNCivjgqvjg6njgrfjg54s44Kt44Oo44OV44OfDQor44Kr44Or44Kk44K3LOOCpOOCuuODnw0KK+OCq+ODr+OCpCzjg4rjgqrjg6bjgq0NCivjgqvjg6/jgqQs44K/44Kr44Kq44OfDQor44Kr44Ov44Kr44OfLOODnuOCteODnw0KK+OCq+ODr+OCq+ODnyzjgrHjg7Pjgr8NCivjgqvjg6/jgros44Ki44OE44K3DQor44Kr44Ov44OK44KrLOOCqOOCpOOCueOCsQ0KK+OCq+ODr+ODjizjgr/jgqvjgrcNCivjgqvjg6/jg5Djgr8s44OK44Kq44OkDQor44Kr44Ov44OZLOOCt+ODmw0KK+OCq+ODr+ODnyzjgrfjg7PjgrgNCivjgqvjg7Pjg5Djgrcs44Of44OB44KzDQor44Kr44Oz44OQ44OpLOOCouODhOOCtw0KK+OCreOCt+OCpCzjg6TjgrnjgqgNCivjgq3jgrfjg4As44Ki44Kt44OS44OtDQor44Kt44K/44Ks44OvLOODnuOCteOCrQ0KK+OCreOCv+OCt+ODrSzjgqvjgrrjg6jjgrcNCivjgq3jgr/jg4/jg6ks44Oo44K344Kr44K6DQor44Kt44K/44Og44OpLOODqOOCpuOCpOODgQ0KK+OCreODiSzjg4HjgqjjgrMNCivjgq3jg47jgrfjgr8s44Ov44Kr44KzDQor44Ko44OALOOCqOOCpA0KK+OCreODoOODqSzjg4rjg4TjgrMNCivjgq3jg6Djg6ks44K344Ky44OrDQor44Kt44Og44OpLOOCouODhOOCtw0KK+OCreODqOODiuOCrCzjg47jg6rjg5/jg4QNCivjgq3jg6jjg5/jg6Qs44K/44Kr44KqDQor44Kt44Oq44OkLOODnuOCteOCrQ0KK+OCpOODiOOCpizjg4jjg6Ljg6QNCivjgq/jgrfjg4As44Kt44On44Km44KzDQor44Kv44K444Op44Kq44KrLOODgOOCpOOCrQ0KK+OCr+ODi+ODouODiCzjgr/jgrHjg4jjgrcNCivjgq/jg4zjgq4s44OI44Kq44OrDQor44Kv44OcLOOCouODhOOCtw0KK+OCr+ODnOOCteODryzjg57jgrXjgq0NCivjgq/jg5zjgr8s44K/44Kr44OS44OtDQor44Kv44Oh44OOLOODjuODluOCqg0KK+OCpOOCt+OCsOODrSzjgr/jg63jgqYNCivjgq/jg6ks44OI44Oi44Ki44KtDQor44Kv44Op44K144OvLOODleODn+ODj+ODqw0KK+OCr+ODqeOCvyzjg6rjg6fjgqbjgrMNCivjgq/jg63jgqvjg68s44K/44Kr44OS44K1DQor44Kv44Ot44K5LOODnuODn+OCsw0KK+OCr+ODreODpOODiuOCrizjgrXjg7Pjgrfjg63jgqYNCivjgqTjg4rjg4jjg58s44OA44Kk44K544KxDQor44Kz44Kk44KxLOODnuODpuOCsw0KK+OCs+OCpOOCsSzjg6/jgr/jg6sNCivjgrPjgqTjgrfjgqvjg68s44OS44OH44Om44KtDQor44Kz44Kk44K644OfLOODhuODq+ODnw0KK+OCs+OCpOOCuuODnyzjg47jg6rjg57jgrUNCivjgrPjgqTjg4cs44Oe44OJ44KrDQor44Kz44K644OeLOODnuOCpOOCsw0KK+OCs+ODs+ODjizjgqLjg4TjgrMNCivjgrPjg6Tjg54s44OA44Kk44KtDQor44Kz44OqLOOCv+OCq+ODkuODhw0KK+OCq+ODhOOCq+ODryzjgrvjgqTjgqTjg4Hjg63jgqYNCivjgrPjgqzjg44s44Ki44Kt44OV44OfDQor44Kz44K344KkLOODiOODouODkuODrQ0KK+OCs+OCt+ODnuODqyzjg4DjgqTjg4jjgq8NCivjgrPjgrnjgq4s44Oe44K144K3DQor44Kz44K744KtLOODnuODiuODlg0KK+OCs+OCv+ODiyzjg6TjgqTjg4ENCivjgrPjg4Djg54s44K744Oz44K4DQor44Kz44OL44K3LOOCv+ODn+OCsw0KK+OCs+ODi+OCtyzjgr/jg4DjgrcNCivjgrPjg5As44OI44Oi44KtDQor44Kz44OQ44K/44KxLOOCseOCpOOCpOODgQ0KK+OCs+ODkOODpOOCtyzjgqLjgq3jgrMNCivjgrPjg5Djg6Tjgrcs44Ok44K544Om44KtDQor44Kz44OQ44Ok44K3LOODqOOCpuOCuA0KK+OCs+ODkOODpOOCtyzjg57jgrXjg6QNCivjgrPjg5Djg6Tjgrcs44Oo44K344KqDQor44OK44Kr44Og44OpLOODqOOCpuODmOOCpA0KK+OCs+ODkOODpOOCtyzjg5Ljg63jgrMNCivjgrPjg5zjg6os44Kv44OL44OS44KzDQor44Kz44Oe44OELOODhOODqOOCtw0KK+OCs+ODpOODnizjg4Tjgq7jgqoNCivjgrPjg7Pjg44s44K/44Kr44KzDQor44K144Kk44OI44KmLOODiOODouOCqA0KK+OCteOCpOODiOOCpizjgqLjg4TjgrMNCivjgrXjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44K144Kk44OI44KmLOODkuODreODpuOCrQ0KK+OCpOODiOOCpizjg5Xjgq3jgrMNCivjgrXjgqvjgqQs44OB44OS44OtDQor44K144Kr44KkLOOCreODqOOCtw0KK+OCteOCq+OCpCzjg5/jg43jgqoNCivjgrXjgqvjgq3jg5Djg6ks44OI44K344KtDQor44K144Kr44Kw44OBLOOCpOODgeODreOCpg0KK+OCpOODr+OCteOCrSzjg6zjgqTjgrMNCivjgrXjgqvjg6Ljg4gs44OO44Oq44KqDQor44K144Kr44Oi44OILOODqOOCpuOCuA0KK+OCteOCq+ODouODiCzjgrjjg6Xjg7PjgrMNCivjgrXjgrXjgq0s44Kr44OE44OI44K3DQor44K144K144KtLOOCs+OCteOCrw0KK+OCteOCteOCrSzjgrjjg6Xjg7PjgrMNCivjgrXjgrXjgq0s44Os44OKDQor44Kk44Oe44OP44K3LOODkuODreODnw0KK+OCteODhOODnyzjgr/jgqvjg6bjgq0NCivjgrXjg4jjgqYs44K344Oz44Kk44OB44Ot44KmDQor44K144OI44KmLOODpuOCpuOCuA0KK+OCteODiOOCpizjg4jjg6Ljgq/jg4sNCivjgrXjg4jjgqYs44Oe44Oq44KzDQor44K144OI44KmLOOCs+OCpuOCrQ0KK+OCteODiOOCpizjg6bjg5/jgrMNCivjgrXjg44s44K344OODQor44Kk44K344Kw44OtLOODkuODh+OCv+OCqw0KK+OCteODr+ODpOODiuOCrizjg5/jg4Tjg5Ljg60NCivjgrfjgqrjgr8s44Kx44Kk44K544KxDQor44K344KtLOODpuOCpuOCsw0KK+OCt+OCsuOCquOCqyzjg6zjgqQNCivjgrfjgrLjgr8s44Oe44Oi44OrDQor44K344K344OJLOODquOCqw0KK+OCt+ODiuODgCzjg6jjgrfjgrMNCivjgqTjg4cs44Oo44K344OV44OfDQor44K344OQ44K/LOODqOOCpuOCsw0KK+OCt+ODkOOCvyzjgqLjg6rjg5Ljg4gNCivjgrfjg5Djgr8s44Oq44On44KmDQor44K344OQ44K/LOOCt+ODpeOCpuOCpOODgQ0KK+OCt+ODnuOCuizjg6Ljg4rjg58NCivjgrfjg57jg4As44Oo44K344K144OADQor44K344Oe44K6LOODhOODjeOCqg0KK+OCt+ODn+OCuizjg5Ljg4fjgr/jg4ANCivjgrfjg5/jgros44Kv44OL44KoDQor44K344Oi44OP44K3LOODkuODreODjuODlg0KK+OCt+ODouODpOODnizjgqvjgqrjg6oNCivjgrjjg6fjgqYs44K/44Kr44K3DQor44Kk44OI44KmLOOCreODp+OCpuOCsw0KK+OCueOCrOOCvyzjg47jg5bjgqgNCivjgrnjgqzjg6Qs44Ki44Kt44OS44OtDQor44K544Ku44K/LOOCv+OCq+ODkuODrQ0KK+OCueOCruODiuOCqyzjgqjjgqTjgrgNCivjgrnjgq7jg6Ljg4gs44OV44Of44KqDQor44K544Ku44Ok44OeLOOCq+OCuuODig0KK+OCueOCruODpOODnizjg6bjgqbjgrgNCivjgrnjgq7jg6Tjg54s44OI44Kq44OrDQor44K544Ky44OOLOOCtOOCpg0KK+OCueOCuuOCrSzjgrPjgqbjgrgNCivjgrnjgrrjgq0s44Oe44K144OS44OtDQor44K544K644KtLOODkuODh+OCouOCrQ0KK+OCueOCuuOCrSzjgrPjgqbjgrgNCivjgrnjgrrjgq0s44Om44Km44KzDQor44Kk44Ov44K144KtLOODiOODouODleODnw0KK+OCueOCuuOCrSzjg6jjgqbjgrMNCivjgrnjgrrjgq0s44Kz44Km44K4DQor44Kk44OB44Kr44OvLOODquOCqw0KK+OCu+OCrSzjg57jgrXjg6jjgrcNCivjgrvjgq3jgrDjg4Es44Kx44Kk44KzDQor44K744Kt44OkLOOCseODs+OCuA0KK+OCu+OCsyzjgrHjg7Pjgr/jg63jgqYNCivjgrvjg6ks44OS44Ot44Om44KtDQor44K944KsLOODpuOCqw0KK+OCveOCrCzjgqjjgqTjgrMNCivjgqTjg4jjgqYs44Ki44Kt44OpDQor44Kr44Of44OkLOOCq+OCueODnw0KK+OCveODs+OCryzjg4jjgrfjgqvjgroNCivjgr/jgqvjgq0s44Om44Of44KzDQor44K/44Kr44KuLOODqOOCt+ODj+ODqw0KK+OCv+OCq+OCteOCrSzjg6TjgrnjgqoNCivjgqTjgrHjg4As44OS44OI44K3DQor44K/44Kr44K344OeLOODpOOCueODkuODiA0KK+OCv+OCq+ODjizjgrHjg7PjgqTjg4ENCivjgr/jgqvjg44s44OS44OH44KtDQor44K/44Kr44OOLOODnuOCreOCsw0KK+OCv+OCq+ODjizjg4rjgqrjg5Ljg60NCivjgr/jgqvjg44s44Oo44K344OS44K1DQor44K/44Kr44OP44K3LOODqOOCt+OCqg0KK+OCv+OCq+ODj+OCtyzjgrPjgqbjg5jjgqQNCivjgr/jgqvjg4/jgrcs44Kz44Km44Kk44OB44Ot44KmDQor44K/44Kr44OP44K3LOOCrOOCrw0KK+OCv+OCq+ODj+OCtyzjgqvjg4oNCivjgr/jgqvjg4/jgrcs44K/44Kr44OO44OqDQor44K/44Kr44Oe44OELOODkuODreOCtw0KK+OCv+OCrOODnyzjg5Ljg4jjgrcNCivjgr/jgqvjg5/jgrbjg68s44Oq44Ol44Km44KtDQor44K/44Kr44Op44OALOOCt+ODs+OCpOODgQ0KK+OCv+OCreOCq+ODryzjgqjjg5/jgrMNCivjgr/jgq3jgrbjg68s44Kk44Ov44KqDQor44Kk44Kk44OOLOODpuODnw0KK+OCv+OCseOCpCzjg6jjgrfjg5Ljg60NCivjgr/jgrHjgqbjg4Es44K344Oz44Kk44OB44Ot44KmDQor44K/44Kx44Km44OBLOOCv+OCq+OCreODqA0KK+OCv+OCseOCreOCvyzjg57jgq0NCivjgr/jgrHjg4rjgqss44OV44Of44KqDQor44K/44Kx44OO44Km44OBLOODquODp+OCpuOCuA0KK+OCv+OCseODj+ODiizjg5Xjg58NCivjgqTjg4jjgqYs44OI44Kv44KzDQor44K/44Kx44Oi44OILOODnuOCteODqw0KK+OCv+OCseODouODiCzjgqvjgrrjg5LjgrMNCivjgr/jgrQs44K544K544OgDQor44K/44K144KrLOODqOOCt+ODjuODlg0KK+OCv+OCuOODnizjg5Ljg63jgqvjgroNCivjgr/jgrfjg60s44Oo44K344KzDQor44K/44K344OtLOOCtOOCpg0KK+OCv+OCv+ODqSzjgrXjg4rjgqgNCivjgr/jg4Hjg5Djg4os44Ki44Ok44KzDQor44Kk44OB44Og44OpLOOCteODiOOCtw0KK+OCv+ODhuOCpOOCtyzjg6bjgq0NCivjgr/jg4bjg44s44OS44K144K3DQor44K/44OG44OOLOODgOOCpOOCvg0KK+OCv+ODiuOCqyzjgrHjg7PjgqTjg4Hjg60NCivjgr/jg4rjgqss44Oe44K144OS44OtDQor44K/44OK44KrLOODiuOCquOCsw0KK+OCv+ODiuOCqyzjg4jjgqrjg6sNCivjgr/jg4rjgqss44Kt44On44Km44KzDQor44K/44OK44KrLOODpOOCueOCtw0KK+OCv+ODiuOCqyzjg6jjgqbjgrMNCivjgqzjg58s44Oe44Kz44OIDQor44K/44OK44OfLOODhOODjeOCqg0KK+OCv+ODiyzjg57jg58NCivjgr/jg4vjgrDjg4Es44Om44Of44KzDQor44OK44Kr44Kq44KrLOODpuOCrQ0KK+OCv+ODi+OCtuODryzjg6jjgrfjg47jg6oNCivjgr/jg4vjg4As44OO44OW44Om44KtDQor44K/44OL44Oi44OILOOCouOCreODnw0KK+OCv+ODjuOCquOCqyzjg5/jgqjjgrMNCivjgr/jg5Djgr8s44Oe44K144KtDQor44K/44OP44OpLOODn+OCq+OCsw0KK+OCv+ODoOODqSzjg6bjgq3jg5Ljg60NCivjg4Hjgqvjgrbjg68s44OO44Oq44OS44OIDQor44OB44OOLOOCv+OCq+ODjuODlg0KK+ODgeODj+ODqSzjg5LjgrXjg44NCivjg4Hjg6XjgqYs44K144Ok44KrDQor44OB44Ol44Km44OeLOOCseOCpOOCpOODgQ0KK+ODhOOCq+ODgCzjg5Ljg4fjgr/jgrENCivjg4Tjgqvjg6Ljg4gs44OO44OW44K/44KrDQor44OE44Kr44Oi44OILOODpuOCv+OCqw0KK+ODhOODgCzjg4jjg6Ljg47jg6oNCivjg4Tjg4Hjg4As44Oe44K144KqDQor44OE44OB44OkLOOCu+ODrOODig0KK+ODhOODgeODpCzjgqLjgq0NCivjg4Tjg43jgq0s44Kv44Of44KzDQor44OH44Of44K7LOOCv+OCq+OCtw0KK+ODhuODqeOCquOCqyzjgqvjg4rjgrMNCivjgqTjgrrjg58s44Ki44OE44K3DQor44OI44KmLOOCu+OCpOOCuA0KK+ODiOOCuCzjg57jgrXjgrMNCivjg4jjgrfjgqrjgqss44Of44K544K6DQor44OI44OALOODj+ODiuOCqA0KK+ODiOODk+ODiuOCpCzjgqLjgq3jgrMNCivjg4jjg6LjgqQs44Of44ON44KtDQor44OI44Ok44OeLOOCouOCpOOCsw0KK+ODiOODqOOCt+ODnizjgrPjgqbjgqTjg4ENCivjg4jjg6jjg4As44K/44Kv44OkDQor44OI44Oo44OP44OeLOODiOOCt+OCqg0KK+ODiuOCrOOCqCzjgrHjg7PjgrgNCivjg4rjgqzjgqgs44K344ObDQor44OK44Kr44KqLOODiOODouODkuODhw0KK+ODiuOCq+OCqizjgrHjg7Pjgr/jg63jgqYNCivjg4rjgqvjgrjjg54s44OI44Oi44KzDQor44OK44Kr44K444OeLOODqOOCt+OCv+OCqw0KK+ODiuOCq+OCuOODnizjg4Tjg6jjgrcNCivjg4rjgqzjgrfjg54s44Oe44OqDQor44OK44Ks44K7LOOCs+OCpuOCpOODgeODreOCpg0KK+ODiuOCq+OCvuODjizjgrjjg6Xjg7PjgrMNCivjg4rjgqvjgr8s44Ki44K144KzDQor44OK44Ks44K/LOODqOOCt+ODkuOCsw0KK+ODiuOCrOODiCzjg57jg6rjgrMNCivjg4rjgqvjg4vjgrcs44Ky44OzDQor44OK44Kr44OOLOODqOOCt+OCsw0KK+ODiuOCrOODjizjg5Ljg63jgq0NCivjg4rjgqzjg44s44K/44Kr44K3DQor44OK44Ks44OOLOODhuODhOODpA0KK+ODiuOCrOODj+ODqSzjg6jjgrfjg6bjgq0NCivjg4rjgqvjg5Ljgqzjgrcs44Oh44Kw44OfDQor44OK44Kr44Og44OpLOOCreODleODnw0KK+OCpOODjOOCuuOCqyzjg4jjg6LjgqvjgroNCivjg4rjgqvjg6Djg6ks44OV44Of44KtDQor44OK44Kr44Og44OpLOODkuODiOOCtw0KK+ODiuOCq+ODoOODqSzjg5/jg5sNCivjg4rjgqvjg6Djg6ks44Oe44K144Kr44OEDQor44OK44Kr44OkLOODpuOCv+OCqw0KK+ODiuOCq+ODpCzjgrHjgqQNCivjg4rjg6njgrXjgq0s44OO44OW44OK44OqDQor44OK44Oq44K/LOODquODpeOCpuOCvw0KK+ODiuODquOCvyzjg6jjgrfjgrMNCivjg4vjgqTjg4As44OI44Oi44Ki44KtDQor44OL44K344Kr44OvLOOCpOODr+OCqg0KK+ODi+OCt+ODoOODqSzjg4Hjgq7jg6oNCivjg4vjgrfjg6Djg6ks44K/44Kk44Kk44OBDQor44OL44K344Og44OpLOOCq+ODhOODnw0KK+ODi+OCt+ODpOODnizjg4jjgqrjg6sNCivjg4vjgrfjg6Tjg54s44OO44Oq44Oe44K1DQor44OL44Og44OpLOODkuODreODpuOCrQ0KK+ODi+ODryzjg6bjgq3jgqgNCivjg4zjg57jgr8s44OK44Kq44KzDQor44OM44Oe44K/LOOCv+OCq+ODkuODrQ0KK+ODjOODnuODgCzjg4Tjg6jjgrcNCivjg43jgq7jgrcs44Kk44K144KqDQor44OO44K244KtLOOCv+OCq+ODiuOCqg0KK+ODjuOCrOODnyzjg6bjgqsNCivjg47jg4As44K/44OE44OkDQor44OO44OP44OpLOODhOODqOOCtw0KK+ODjuODluODj+ODqSzjg6bjgqbjgrMNCivjg4/jgqws44Oe44K144OIDQor44OP44Ku44Ov44OpLOOCv+ODgOOCq+OCug0KK+ODj+OCruODr+ODqSzjgqvjg4Tjg6kNCivjg4/jgrfjgrrjg6Es44K/44Kr44K3DQor44OP44K344Oi44OILOOCv+OCq+ODpuOCrQ0KK+ODj+OCt+ODouODiCzjgr3jg6jjgqsNCivjg4/jgrfjg6Ljg4gs44Ki44Kt44OpDQor44OP44K744Ks44OvLOODnuOCs+ODiA0KK+ODj+OCu+OCrOODryzjg57jg6bjg58NCivjg4/jgrvjgqzjg68s44Kr44K644K/44KrDQor44OP44K744OZLOODqOOCpuODmOOCpA0KK+ODj+OCvyzjg57jgrXjg5Ljg60NCivjg4/jgr/jgrHjg6Tjg54s44OP44K644KtDQor44OP44K/44OK44KrLOOCpOOCr+OCvuOCpg0KK+ODj+OCv+ODjizjgqLjg4Tjg6gNCivjg4/jg4Pjg4jjg6os44Ki44Kt44Oo44K3DQor44OP44OK44K244KtLOOCv+ODhOODpA0KK+ODj+ODiuODluOCtSzjgqrjgrXjg6ANCivjg4/jg4rjg6Djg6ks44K044KmDQor44OQ44OQLOOCouOCreOCsw0KK+ODj+ODnuOCteOCrSzjg6jjgrfjg6bjgq0NCivjg4/jg57jg4As44OE44Kw44KtDQor44OP44Ok44K3LOODnuODiuODlg0KK+ODj+ODpOOCtyzjgr/jgrHjg5Ljg60NCivjg4/jg6Tjgrcs44Oe44Kz44OIDQor44OP44Ok44K3LOODquODp+OCpg0KK+ODj+ODqSzjg57jgrXjg5Ljg4cNCivjg4/jg6njgrfjg54s44Kq44K144OgDQor44OP44Op44OALOODiuOCquODpA0KK+ODj+ODqeODgCzjg6rjgqgNCivjg4/jg6vjgr/jg4ss44K/44Kr44OS44OtDQor44OS44Ks44K344OOLOODnuOCrQ0KK+ODkuOCrOOCt+ODpOODnizjg6bjgqYNCivjg5LjgrDjg4Es44K344Ky44Of44OEDQor44Kk44K344OP44OpLOOCv+OCseODqOOCtw0KK+ODkuOCuOOCq+OCvyzjg5Ljg63jgqLjgq0NCivjg5Ljg5Ms44K/44OE44OIDQor44OS44On44Km44KoLOODiOODouODkuODrQ0KK+ODkuODqeOCpCzjg5Ljg4fjg47jg6oNCivjg5Ljg6njgqvjg68s44K444Ol44Oz44OkDQor44OS44Op44KvLOOCt+OCsuOCrQ0KK+ODkuODqeOCteODryzjgrHjg7PjgrgNCivjgqTjg47jg4/jg6ks44K/44Kv44OS44OtDQor44OS44Op44K/LOOCr+ODi+ODhOOCsA0KK+ODkuODqeODjOODnizjgqvjgrrjgqoNCivjg5Ljg6njg44s44K/44Ot44KmDQor44OS44Op44Ok44OeLOOCt+OCsuODqw0KK+ODkuODreOCpuODgSzjg6zjgqQNCivjg5Ljg63jgqrjgqss44Om44Kr44KzDQor44OS44Ot44Kr44OvLOOCseODs+OCv+ODreOCpg0KK+ODleOCr+OCpCzjg57jgrXjgq0NCivjg5Xjgq/jg4As44K/44Kr44OS44OtDQor44OV44Kv44OALOOCueOCueODoA0KK+OCs+ODqizjgq3jg6fjgqbjgrMNCivjg5XjgrjjgqQs44K444Ol44Oz44Kk44OBDQor44OV44K444KkLOODgOOCpOOCvg0KK+OCpOODhyzjg4HjgqjjgrMNCivjg5XjgrjjgqQs44OS44Ot44Kr44K6DQor44OV44K444KqLOOCv+OCq+ODpuOCrQ0KK+ODleOCuOOCquOCqyzjgrHjg7PjgqTjg4ENCivjg5Xjgrjjgq/jg6ks44Kt44Kv44KzDQor44OV44K444K144OvLOOCs+OCpuOCuA0KK+ODleOCuOOCteODryzjgrHjg7Pjgr/jg63jgqYNCivjg5XjgrjjgrfjgrIs44Kx44Kk44Kk44OBDQor44OV44K444K/LOOCseODs+OCpOODgQ0KK+OCpOODjuOCpuOCqCzjg47jg6rjgqoNCivjg5Xjgrjjg4gs44Om44KrDQor44OV44K444OK44KsLOODiuOCrOODnuOCtQ0KK+ODleOCuOODr+ODqSzjg4jjg6Ljg4/jg6sNCivjg5Xjgrjjg6/jg6ks44OI44K344KtDQor44OV44K7LOOCq+OCquODqw0KK+ODleODq+OCq+ODryzjg57jgrXjg5/jg4QNCivjg5Xjg6vjgqvjg68s44Om44Km44Kk44OBDQor44Kk44K344KkLOODgOOCpOOCueOCsQ0KK+ODleODq+OCteODryzjg5Ljg63jgq0NCivjg5Xjg6vjgr8s44Kz44Km44Kk44OBDQor44OV44Or44K/LOODqOOCt+OCouOCrQ0KK+ODleODq+OCvyzjg4rjgqrjgrMNCivjg5Xjg68s44Of44KqDQor44Ob44K3LOODnuODpuODnw0KK+ODm+OCveODgCzjgrHjgqTjgrnjgrENCivjgqTjgrfjgqQs44OS44Ot44Of44OBDQor44Ob44Oq44Kr44OvLOODiuOCquOCsw0KK+ODm+ODquOCs+OCtyzjg5Ljg63jgqLjgq0NCivjg5vjg7Pjg4As44OO44Oc44OrDQor44Oe44Ko44Kr44OvLOODq+ODnw0KK+ODnuOCqOODgCzjg5/jg4rjgrMNCivjg57jgqjjg4As44K/44Ot44KmDQor44Oe44Ko44OALOOCv+OCq+OCtw0KK+ODnuOCqOODjizjgrXjg4jjgrcNCivjg57jgq0s44OK44OfDQor44Oe44Kt44K+44OOLOOCteODpOOCqw0KK+ODnuOCreOCvyzjgqvjg4Tjg6bjgq0NCivjg57jgq3jg44s44Og44ON44KtDQor44Oe44K144KtLOODpuOCuuODqw0KK+ODnuOCueOCtuOCrSzjg6jjgrfjgrMNCivjg57jgrnjg4As44Om44Km44K544KxDQor44Oe44K544OW44OBLOOCq+OCuuODkuODrQ0KK+ODnuODgeODgCzjg5/jg6bjgq0NCivjg57jg4Tjgqbjg6ks44Ko44Oq44KzDQor44Oe44OE44Kr44OvLOODouODiOODqA0KK+ODnuODhOOCtuOCrSzjg4DjgqTjgrnjgrENCivjg57jg4Tjgrbjgq0s44Oe44KtDQor44Oe44OE44K344K/LOOCs+OCuuOCqA0KK+ODnuODhOOCt+ODnizjg5Ljg4fjgqoNCivjg57jg4Tjg4As44K344Ky44Om44KtDQor44Oe44OE44OALOOCv+OCq+OCtw0KK+ODnuODhOODgCzjgqLjg6bjg58NCivjg57jg4Tjg4rjgqws44K/44Kr44K3DQor44Oe44OE44OK44OfLOOCs+OCpuOCuA0KK+ODnuODhOODkOODqSzjg47jg6rjg5Xjg58NCivjg57jg4Tjg5Djg6ks44K144OI44OfDQor44Oe44OE44Of44OkLOOCseODs+OCpOODgQ0KK+ODnuODhOODouODiCzjg57jgrPjg4gNCivjg57jg4Tjg6Ljg4gs44Kr44K644OS44OHDQor44Oe44OE44Oi44OILOOCv+OCseODleODnw0KK+ODnuODhOODouODiCzjg6bjgqbjgrnjgrENCivjg57jg4Tjg6Ljg4gs44OS44Ot44KzDQor44Oe44OE44Ok44OeLOODgeOCuuOCsw0KK+ODnuODiuODmSzjg6rjg6fjgqbjgrnjgrENCivjg57jg6vjg6Tjg54s44Oe44K144KtDQor44Oe44Or44Ok44OeLOODkuODreOCrQ0KK+ODn+OCpuODqSzjg6Tjgrnjg5/jg4QNCivjg5/jgq/jg4ss44OV44Of44OK44OqDQor44Of44K644Kr44OfLOODkuODh+OCrQ0KK+ODn+ODhOODj+OCtyzjg47jg6rjg6jjgrcNCivjg5/jg4rjg4gs44OS44Ot44Om44KtDQor44Of44OK44OfLOOCv+OCq+ODpuOCrQ0KK+ODn+ODleODjSzjg6jjgrfjg5Ljg60NCivjg5/jg6Tjgqzjg68s44Oe44K144K3DQor44Of44Ok44K144KrLOOCt+ODjuODlg0KK+ODn+ODpOOCtuODryzjgrjjg6Xjg7MNCivjg6Djg6njgqos44Oe44K144KzDQor44Og44Op44Kr44OfLOODnuOCteODnw0KK+ODoOODqeOCvyzjgrHjg7PjgrnjgrENCivjg6Djg6njg57jg4Qs44OO44OW44Om44KtDQor44Og44Op44Ok44OeLOODiOOCt+OCqg0KK+ODoOODqeODpOODnizjgqvjgrrjgqLjgq0NCivjg6HjgrDjg60s44OI44Oi44OS44KzDQor44Oi44OB44K644KtLOOCs+OCpuOCpOODgQ0KK+ODouODiOODqOOCtyzjg57jgrPjg4gNCivjg6Ljg6Ljgros44Om44Kt44KzDQor44Oi44OqLOODnuOCteOCrQ0KK+ODouODqizjg6Tjgrnjgr/jgqsNCivjg6Ljg6os44Of44ObDQor44Oi44OqLOOCv+ODnuODqA0KK+ODouODquOCvyzjgrHjg7PjgrgNCivjg6Ljg6rjgr8s44Kx44Oz44Kk44OB44OtDQor44Oi44Oq44OOLOODn+ODgeOCqg0KK+ODouODquODouODiCzjgr/jgqvjgrcNCivjg6Ljg6rjg6Ljg4gs44Om44Kt44KzDQor44Oi44Oq44Ok44OeLOOCq+OCuuODpuOCrQ0KK+ODouODquODr+OCrSzjg5Xjg5/jgqLjgq0NCivjg6Tjgq4s44Kx44Kk44K544KxDQor44Ok44KuLOODpuOCv+OCqw0KK+ODpOOCr+OCt+OCuCzjgqrjgrXjg6ANCivjg6TjgrMs44OE44Oo44K3DQor44Ok44K244OvLOOCseODs+OCpOODgQ0KK+ODpOOCueODnizjgrHjg7Pjgrjjg63jgqYNCivjg6Tjg4jjgrQs44Ki44KkDQor44Ks44OzLOODj+ODiuOCqA0KK+ODpOODiuODlizjgrXjg4jjgrcNCivjg6Tjg44s44K344Ol44Km44Kz44KmDQor44Ok44OW44K/LOODkuODreOCtw0KK+ODpOODnuOCpuODgSzjg6bjgq3jgrMNCivjg6Tjg57jgqbjg4Es44Of44OE44OP44OrDQor44Ok44Oe44Kw44OBLOODquODp+OCpg0KK+ODpOODnuOCsOODgSzjg6Tjgrnjg57jgrUNCivjg6Tjg57jgrDjg4Es44OK44Kq44KzDQor44K444OA44KkLOODkuODreOCouOCrQ0KK+ODpOODnuOCsOODgSzjgqjjgqTjgr8NCivjg6Tjg57jgrDjg4Es44K744Kk44KzDQor44Ok44Oe44Kw44OBLOOCs+OCpuOCuA0KK+ODpOODnuOCteOCrSzjg6Tjgrnjg5Ljg60NCivjg6Tjg57jgrXjgq0s44K444Ol44OzDQor44Ok44Oe44K244KtLOOCouODhOODpA0KK+ODpOODnuOCt+OCvyzjgqvjgrrjg5Ljg60NCivjg6Tjg57jgrfjgr8s44Oe44K144OIDQor44Ok44Oe44K344K/LOOCv+OCr+ODpA0KK+ODpOODnuODgCzjgr/jgqvjgrcNCivjg6Tjg57jg4As44Ok44K544KqDQor44Ok44Oe44OALOOCv+ODhOOCuA0KK+ODpOODnuODgCzjg6Tjgrnjg5LjgrUNCivjg6Tjg57jg4As44Kt44On44Km44KzDQor44Ok44Oe44OI44OkLOODnuODquOCsw0KK+ODpOODnuODiuOCqyzjg5Ljg5Xjg58NCivjg6Tjg57jg4rjgrcs44K444Ol44OzDQor44Ok44Oe44OL44K3LOODiuOCquOCrQ0KK+ODpOODnuODouODiCzjg4HjgqsNCivjg6Tjg57jg6Ljg4gs44Kr44K644OkDQor44Ok44Oe44Oi44OILOODquOCqw0KK+ODpOODnuODouODiCzjg57jg4rjg58NCivjg6Tjg57jg6Ljg4gs44Oo44Km44K544KxDQor44Ok44Oe44Oi44OILOOCv+ODhOODpA0KK+ODqOOCs+OCvyzjg4jjg6Ljg5Xjg58NCivjg6jjgrPjgr8s44K344Ky44Om44KtDQor44Oo44Kz44K/LOOCq+ODqA0KK+ODqOOCs+ODhizjgrvjgqTjgqTjg4Hjg63jgqYNCivjg6jjgrfjgqrjgqss44K/44Kr44K3DQor44Oo44K344Kq44KrLOOCouODhOOCtw0KK+ODqOOCt+OCquOCqyzjg5Ljg4fjg4gNCivjg6jjgrfjgqvjg68s44K/44Kv44OkDQor44Oo44K344Kr44OvLOODquODp+OCpuOCpOODgQ0KK+ODqOOCt+ODgCzjg57jgrXjg6bjgq0NCivjg6jjgrfjg4As44K444Ol44Oz44KzDQor44Oo44K344OALOOCouOCq+ODjQ0KK+ODqOOCt+ODjizjg5/jg47jg6sNCivjg6jjgrfjg58s44Oe44K144Om44KtDQor44Oo44K344Og44OpLOOCr+ODi+ODkuOCsw0KK+ODqOODgCzjg47jg6rjg5LjgrUNCivjg6jjg43jgrbjg68s44Ki44Op44K/DQor44Oq44Ol44Km44OILOOCseOCpA0KK+ODr+OCq+ODhOOCrSzjgrfjg7PjgrnjgrENCivjg6/jgq3jgrbjgqss44K344Oz44OkDQor44Ov44Kt44K/LOODpuOCpuOCueOCsQ0KK+ODr+OCreOCvyzjg4jjgqrjg6sNCivjg6/jgq3jg6Ljg4gs44K344On44Km44KzDQor44Ov44OALOOCv+OCq+OCtw0KK+ODr+ODgCzjgqLjgq3jgrMNCivjg6/jgr/jgrss44OA44KkDQor44Ov44K/44OK44OZLOODpOOCueODj+ODqw0KK+ODr+OCv+ODiuODmSzjgr3jgqYNCivjg6/jgr/jg4rjg5ks44OS44Ot44Om44KtDQor44Ov44K/44OK44OZLOODiuOCquOCsw0KK+ODr+OCv+ODiuODmSzjg6jjgrfjgr/jgqsNCivjgq3jg47jgrfjgr8s44Om44Km44KzDQor44Ki44Kq44KtLOODqOOCt+ODkuOCsw0KK+ODpOODiuOCruODj+ODqSzjgq3jg6jjgrcNCivjgqLjg57jgrMs44Oo44K344KqDQor44Kz44Oz44OJ44KmLOOCt+OCquODqg0KK+OCt+ODqeOCq+ODryzjg6jjgqbjgrMNCivjgrPjg6Tjg54s44K/44Kr44Om44KtDQor44Kz44Oz44OJLOODnuOCs+ODiA0KK+ODouODqizjg4jjgrfjgqoNCivjgqrjgqrjg44s44OS44OH44Oo44K3DQor44Oe44OOLOOCouOCrQ0KK+ODiuOCrOODjizjgrnjg5/jgrMNCivjgrXjg4jjgqYs44Ko44OqDQor44Of44Ok44K244KtLOOCouODpA0KK+OCquOCrOODryzjgqLjgq3jg6kNCivjgq3jg6Djg6ks44OS44OH44OI44K3DQor44Oo44Kz44KqLOOCseODs+OCuA0KK+OCpuODgeODoOODqSzjg4Hjg4rjg4QNCivjgrTjgrfjg54s44Oq44Ol44Km44Kk44OBDQor44K144Ko44KtLOODn+OCrQ0KK+ODiuOCq+OCuOODnizjg5Ljg63jg58NCivjgqTjg6/jg58s44Of44ObDQor44Ko44KyLOODrOOCpA0KK+OCpuODoeOCvuODjizjgqvjgqrjg6oNCivjgrXjgq/jg6njgqQs44Oe44OfDQor44Ov44K/44OK44OZLOODnuODpA0KK+ODiuOCrOOCpCzjgrfjg6fjgqbjgrQNCivjgqrjgr3jgqzjg58s44Ki44OE44OS44KzDQor44Kv44Ot44Kr44OvLOODnuOCteODqOOCtw0KK+OCv+OCq+OCueOCqyzjg6jjgrfjgqvjgroNCivjgqrjg5Djgr8s44Oe44K144OS44KzDQor44K344Op44KkLOODpuOCv+OCqw0KK+ODnuODhOOCpuODqSzjg57jgrPjg4gNCivjg4rjgqvjgrbjg68s44Oo44K344OS44K1DQor44Oe44OE44KkLOODpuOCpuOCpOODgQ0KK+OCs+OCu+OCrSzjgrPjgqbjgr/jg63jgqYNCivjg4Tjgqvjg4As44OO44Oq44Om44KtDQor44OG44Op44Kv44OpLOODqOOCpuOCuA0KK+ODi+ODmOOCpCzjgq3jg6jjgrcNCivjgqvjg6/jg6Djg6ks44K/44Kr44Om44KtDQor44OS44K0LOODnuOCteODpuOCrQ0KK+OCs+ODkOODpOOCtyzjgq3jg6jjg47jg6oNCivjg5Xjg6vjgr8s44K/44Kr44Om44KtDQor44Oi44OB44K644KtLOODkuODreODpuOCrQ0KK+OCquOCq+ODgCzjgr/jg4TjgrcNCivjgrXjgqTjg4jjgqYs44Om44Kt44KzDQor44Kr44Ov44OP44OpLOODpuOCrQ0KK+OCueOCuuOCq+OCsSzjgr/jgq/jg6QNCivjgqTjg4jjgqYs44Ki44OE44KzDQor44Kk44K344K644KrLOODkuOCteODiA0KK+OCv+ODmeOCpCzjg6Tjgrnjg57jgrUNCivjgrTjg4jjgqYs44Ki44Kt44OS44OtDQor44K344Oi44K144KrLOODiOOCquODqw0KK+OCq+ODr+OCpCzjgqvjgrrjg54NCivjg6/jgr/jg4rjg5ks44Oo44K344Kr44K6DQor44K544K644KtLOOCpOODhOODleODnw0KK+ODnuODhOODpOODnizjg5Ljg63jgrcNCivjg4/jg6ks44Oq44On44Km44OY44KkDQor44OE44OQ44KtLOOCu+OCpOOCpOODgeODreOCpg0KK+ODpOOCueOCpCzjgr/jgqvjg6bjgq0NCivjgrPjg5Djg6Tjgrcs44Kx44Oz44K/44Ot44KmDQor44Kq44Kr44OZLOOCteODpuODqg0KK+OCquOCrOODryzjgrfjg6fjgqbjgrMNCivjg6Tjg57jgrDjg4Es44K144OI44K3DQor44OV44K444Kr44OvLOOCseODs+OCuA0KK+OCpOODiuOCrOOCrSzjg5Ljg4fjg4jjgrcNCivjg4Hjgr4s44OI44K344OS44KzDQor44OP44OK44OALOOCuOODpeODs+ODpA0KK+OCquOCquOCsyzjg6Ljg4jjgqLjgq0NCivjgqrjgqrjgq/jg6ks44K544Of44OS44OtDQor44Oe44OE44KqLOODhOODiOODoA0KK+OCqOODs+ODiSzjg57jg6rjgrMNCivjg5vjg6rjg5ks44Oi44OI44K4DQor44Kr44OELOODhuODhOODkuODrQ0KK+OCquOCv+OCqyzjg57jgrXjg47jg5YNCivjgr/jgqvjg4/jgrcs44OI44K344OkDQor44Og44Op44Ok44OeLOODpuOCpuOCsw0KK+ODqOOCt+OCquOCqyzjgrXjg6bjg6oNCivjgqvjgqQs44Oo44K344KoDQor44K/44Kr44OP44K3LOODr+OCq+OCsw0KK+OCsOODs+OCsizjgr/jg57jg6gNCivjg6Tjg44s44K/44KkDQor44OP44Ok44K3LOOCouODpOOCsw0KK+ODn+OCpuODqSzjg57jg4rjg58NCivjgqLjgqrjg6Tjgq4s44OS44Ot44K/44KrDQor44K/44Kr44OALOODiOOCr+ODkuOCsw0KK+ODjOODnuOCvyzjgrHjg7PjgrgNCivjgqvjgr/jgqrjgqss44Kr44Kq44OrDQor44K344Of44K6LOOCteODgeOCsw0KK+OCt+ODn+OCuizjg6bjgqbjgrMNCivjg57jg4Tjg6Djg6ks44K/44Ot44KmDQor44Kq44Oq44OILOOCteODiOOCtw0KK+OCs+OCv+ODiyzjg5Xjg5/jg5LjgrMNCivjgqrjgqrjg4/jgrcs44Oq44On44KmDQor44Kr44Oz44K744KtLOOCseOCpOOCsw0KK+OCreOCv+ODoOODqSzjgrPjgqbjgr/jg63jgqYNCivjgrXjgq/jgr8s44K344Oz44Kk44OB44Ot44KmDQor44Oo44K344OALOOCv+OCq+OCtw0KK+OCs+ODj+ODqSzjg4jjgqrjg6sNCivjgqTjg4/jg6ks44Kx44Kk44KzDQor44OE44K444Km44OpLOOCq+OCuuODkuODrQ0KK+ODiuOCq+ODoOODqSzjg4Tjg6jjgrcNCivjgqLjgqrjgq0s44Ki44Kt44KzDQor44Ki44Kq44Ok44OeLOODgOOCpOOCueOCsQ0KK+OCouOCq+OCpOOCsSzjg5Ljg63jg58NCivjgqLjgqvjg4Qs44K444Ol44OzDQor44Ki44Kt44OP44OpLOOCt+ODpeODs+OCueOCsQ0KK+OCouOCreODouODiCzjg57jg6oNCivjgqLjgrXjgq/jg6ks44K/44Kr44K3DQor44Ki44K144OOLOODquODp+OCpg0KK+OCouODk+ODqyzjgqLjgqTjgrMNCivjgqLjg5ks44OO44Oq44K/44KrDQor44Ki44OZLOODpuOCrQ0KK+OCouODmSzjgr/jgq/jg6QNCivjgqLjg5njgqvjg68s44OI44Oi44KzDQor44Ki44Op44KkLOODjuODquODkuODiA0KK+OCouODqeOCpCzjg57jgrXjg4jjgrcNCivjgqLjg6njgqvjg68s44OS44Ot44KtDQor44Ki44Op44KtLOOCv+OCq+OCouOCrQ0KK+OCouODqeOCrSzjg5Ljg63jgrcNCivjgqLjg6rjgqgs44Oe44K144OV44OfDQor44Ki44Oz44OJ44KmLOOCseODs+OCv+ODreOCpg0KK+OCpOOCpOODgCzjgrjjg6Xjg7PjgqTjg4ENCivjgqTjgrHjg4As44K344Ol44Oz44K544KxDQor44Kk44Kx44OALOOCv+OCseOCtw0KK+OCpOOCseODgCzjg4rjgqrjgq0NCivjgqTjgrfjgqQs44OO44OW44Ok44K5DQor44Kk44K344KkLOODj+ODpOODiA0KK+OCpOOCt+OCrOOCrSzjg5/jg6TjgrMNCivjgqTjgrfjgqvjg68s44Om44KtDQor44Kk44K344Kr44OvLOODpuODn+OCsw0KK+OCpOOCt+OCtuODryzjg4bjg6vjgq0NCivjgqTjgrfjgrrjg58s44K344Ol44Km44OY44KkDQor44Kk44K344K844KtLOODgOOCpOOCueOCsQ0KK+OCpOOCt+ODgCzjg6bjgqbjgrgNCivjgqTjgrfjg4As44Os44Kk44KzDQor44Kk44K344OALOODqOOCt+OCv+OCqw0KK+OCpOOCt+ODhSzjgr/jgqvjgrcNCivjgqTjgrfjg4/jg6ks44OV44Of44OK44KqDQor44Kk44K344Oe44OrLOOCt+ODpeOCpuOCpOODgQ0KK+OCpOOCv+ODiyzjgr/jgqvjgrcNCivjgqTjgr/jg4/jg6ks44OS44K144OE44KwDQor44Kk44OB44OeLOODiuOCquODiA0KK+OCpOODiOOCpizjg6bjgqbjgrMNCivjgqTjg4jjgqYs44Om44Km44Kk44OB44Ot44KmDQor44Kk44OI44KmLOODkuODreOCq+OCug0KK+OCpOODiOOCpizjgqLjgq3jgrMNCivjgqTjg4jjgqYs44K344K644KzDQor44Kk44OI44KmLOOCquOCrQ0KK+OCpOODiOOCpizjg4Tjg6jjgrcNCivjgqTjg4jjgqYs44OS44Ot44Om44KtDQor44Kk44OK44Ks44KtLOOCt+OCsuOCrQ0KK+OCpOODiuODnyzjg6zjgqoNCivjgqTjg44s44Of44KtDQor44Kk44OO44Km44KoLOODnuOCteOCrQ0KK+OCpOODjuOCpuOCqCzjgr/jgqvjgrcNCivjgqTjg57jgqos44K444Ol44Oz44Oa44KkDQor44Kk44Oe44OALOOCseODs+OCpOODgQ0KK+OCpOODr+OCq+ODnyzjg6bjgqbjgrnjgrENCivjgqTjg6/jgq/jg6ks44Om44K/44KrDQor44Kk44Ov44K244KtLOODkuODreOCv+OCqw0KK+OCpOODr+OCvyzjgrPjgqbjgrgNCivjgqTjg6/jg6Ljg4gs44OS44Ot44KtDQor44Km44Ko44K544KuLOOCuOODpeODs+OCsw0KK+OCpuOCqOODgCzjg57jgrXjg6QNCivjgqbjgqjjgr/jgqss44K344On44Km44K4DQor44Km44Ko44OBLOODnuODqg0KK+OCpuOCqOODjizjgrHjg7PjgrgNCivjg5Ljg6rjg6XjgqYs44Kz44Km44K4DQor44Km44Ko44Og44OpLOODnuOCteODkuODrQ0KK+OCpuODgeODgCzjgqLjg6QNCivjgqbjg4Hjg4As44Kt44Kk44OBDQor44Km44OB44OP44K3LOOCtOOCpg0KK+OCpuODgeODpOODnizjg6zjg58NCivjgqbjg6Hjg4/jg6ks44OK44OE44KzDQor44Km44Oq44K/44OLLOODnuOCueODnw0KK+OCquOCpOOCq+ODryzjgrHjg7Pjgr/jg63jgqYNCivjgqrjgqrjgqQs44OI44Oi44Om44KtDQor44Kq44Kq44KkLOOCq+ODqOOCsw0KK+OCquOCquOCpOOCtyzjg57jgrXjg5LjgrMNCivjgqrjgqbjg4Es44Kx44Oz44K344OzDQor44Kq44Kq44KoLOODgOOCpOOCueOCsQ0KK+OCquOCquOCquOCqyzjg57jgrXjg5Ljg60NCivjgqrjgqrjgqvjg68s44Oe44K144OkDQor44Kq44Kq44Kv44OcLOODquODp+OCpg0KK+OCquOCquOCr+ODnizjg47jg6rjg5Ljg60NCivjgqrjgqrjgr8s44OO44OW44OS44OtDQor44Kq44Kq44K/44OLLOOCt+OCuuOCqw0KK+OCquOCquODhCzjg4HjgqgNCivjgqrjgqrjg4Qs44OG44OE44OkDQor44Kq44Kq44OE44KrLOOCuOODpeODsw0KK+OCquOCquODhOOCqyzjg4bjg6vjg5Ljg60NCivjgqrjgqrjg4Tjgqss44Ki44Kt44OpDQor44Kq44Kq44OE44KrLOOCseOCpA0KK+OCquOCquODhOODnCzjg57jgrXjg5/jg4QNCivjgqrjgqrjg4/jgr8s44Ki44Kt44KzDQor44Kq44Kq44Oe44K1LOOCv+ODhOOCqg0KK+OCquOCquODpCzjgrHjgqTjgrgNCivjgqrjgqrjg6Tjg54s44K/44Kk44K544KxDQor44Kq44KrLOOCv+ODreOCpg0KK+OCquOCq+OCuOODnizjg5/jg4Tjg47jg5YNCivjgqrjgqvjg4As44K/44OE44OkDQor44Kq44Kr44OALOODgeODkuODrQ0KK+OCquOCq+ODgCzjg47jg6rjg6jjgrcNCivjgqrjgqvjg4As44K144OI44K3DQor44Kq44Kr44OALOODq+ODnw0KK+OCquOCq+ODj+OCvyzjgr/jg4Tjg6QNCivjgqrjgqvjg5ks44Ok44K544Oe44K1DQor44Kq44Kr44Oi44OILOODkuOCteOCtw0KK+OCquOCq+ODouODiCzjg6jjgrfjg47jg6oNCivjgqrjgqvjg6Ljg4gs44OS44OH44KtDQor44Kq44Ks44OvLOOCseOCpOOCsw0KK+OCquOCrOODryzjg4DjgqTjgrnjgrENCivjgqrjgq/jg4As44Kz44Km44OY44KkDQor44Kq44Kv44OILOOCteODgQ0KK+OCquOCr+ODiuOCqyzjgrvjgqTjgrcNCivjgqrjgrDjg6ks44K/44Ot44KmDQor44Kq44K244KtLOODjuODluOCouOCrQ0KK+OCquOCteODgCzjg5Ljg63jgrcNCivjgqrjgrbjg68s44OS44Ot44OfDQor44Kq44K444OeLOODnuOCs+ODiA0KK+OCquOCuOODnizjg57jgrXjgrcNCivjgqrjg5Djg6ks44Om44Oq44KzDQor44Kr44Kk44OI44KmLOOCv+OCq+OCtw0KK+OCq+OCreOCr+ODqSzjg57jgrXjg6bjgq0NCivjgqvjgq3jg6Ljg4gs44OG44OE44OkDQor44Kr44KvLOOCs+OCpuOCuA0KK+OCq+OCsuODpOODnizjgr/jg4Djg5LjgrUNCivjgqvjgrjjg4rjgqws44Om44K/44KrDQor44Kr44K344OeLOODqOOCt+ODkuOCsw0KK+OCq+OCv+OCquOCqyzjgr/jgqvjg5Ljg60NCivjgqvjgr/jgq7jg6os44OK44OE44KzDQor44Kr44K/44Ok44OeLOODnuODkuODiA0KK+OCq+ODiSzjg6bjg5/jgrMNCivjgqvjg4jjgqYs44Oq44OE44KzDQor44Kr44OI44KmLOODquODp+OCpg0KK+OCq+ODiOOCpizjg5Xjg58NCivjgqvjg4jjgqYs44Os44Kk44KzDQor44Kr44OI44KmLOOCueODn+ODrA0KK+OCq+ODiOOCpizjg5Ljg63jgrcNCivjgqvjg4jjgqYs44OG44OE44OkDQor44Kr44OI44KmLOOCteODiOOCtw0KK+OCq+ODiOOCpizjg6/jgr/jg6sNCivjgqvjg4jjgqYs44Kz44Km44Kk44OB44Ot44KmDQor44Kr44OK44Oi44OILOOCouOCreOCsw0KK+OCq+ODiuODpCzjgrfjg7Pjg6QNCivjgqvjg43jgrMs44Oo44K344Kr44K6DQor44Kr44ON44Oi44OqLOODpuOCpg0KK+OCq+ODryzjg6jjgrfjgqvjgroNCivjgqvjg6/jgqQs44Kz44Km44K4DQor44Kr44Ov44KkLOODj+ODq+OCsw0KK+OCq+ODr+OCq+ODnyzjg57jgrXjgqrjg58NCivjgqvjg6/jgrDjg4Es44OB44Kr44KzDQor44Kr44Ov44Kw44OBLOOCt+ODpeODs+OCueOCsQ0KK+OCq+ODr+OCsOODgSzjg4jjgrfjg5LjgrMNCivjgqvjg6/jgrDjg4Es44OS44Ot44KtDQor44Kr44Ov44Kw44OBLOOCueOCueODoA0KK+OCq+ODr+OCtOOCpOOCtyzjgr/jgqvjg6bjgq0NCivjgqvjg6/jgrfjg54s44K044Ot44KmDQor44Kr44Ov44OKLOOCv+OCseOCtw0KK+OCq+ODr+ODjuODmSzjg6bjgq3jgrMNCivjgqvjg7Pjg44s44Ok44K544OO44OWDQor44Kt44Kv44OBLOODjuOCvuODnw0KK+OCreOCtyzjg6zjgqTjgrMNCivjgq3jgrfjg6Ljg4gs44K/44Kx44K3DQor44Kt44K344OtLOODpOOCueOCtw0KK+OCreOCv+OCqizjgrfjg7MNCivjgq3jgr/jg4/jg54s44K/44Kx44OO44OqDQor44Kt44K/44Og44OpLOODqOOCt+ODjuODqg0KK+OCreODieOCs+ODrSzjgqLjg4TjgrcNCivjgq3jg6Djg6ks44Kz44Km44Kk44OBDQor44Kt44Og44OpLOODnuOCs+ODiA0KK+OCreODoOODqSzjgqLjgqTjgrMNCivjgq3jg6rjgqLjgrEs44Ko44Kk44K144KvDQor44Kv44Kt44Oi44OILOODiOOCt+OCrQ0KK+OCr+ODnCzjgq/jg4vjg6bjgq0NCivjgq/jg5zjgr8s44Oe44Om44OfDQor44Kv44Oe44Kv44OpLOODquOCqw0KK+OCr+ODnuODgCzjg6bjgqbjgrnjgrENCivjgq/jg57jg6Ljg4gs44OS44Ot44Ki44KtDQor44Kv44OhLOODnuOCteODkuODiA0KK+OCr+ODqeODpCzjgrPjgqbjg5jjgqQNCivjgq/jg6rjg6/jgq0s44Oe44Kt44KzDQor44Kv44Ov44OQ44OpLOODpuOCq+ODqg0KK+OCtOOCpizjg4bjg6vjgqoNCivjgrPjgqTjgrEs44K144OI44OrDQor44Kz44Kk44KxLOODrOOCquODig0KK+OCs+OCteOCqyzjg6Djg4Tjg58NCivjgrPjgqbjg4As44Ki44Ok44KzDQor44Kz44KsLOOCs+OCpuOCpOODgQ0KK+OCs+OCr+ODnCzjg6Ljg6LjgqgNCivjgrPjgq/jg6ks44Oq44KoDQor44Kz44K0LOODquODpeOCpuOCuA0KK+OCs+OCteOCrSzjg6rjg6fjgqbjgrnjgrENCivjgrPjgrjjg54s44OS44Ot44KzDQor44Kz44OH44OpLOOCq+OCuuODiA0KK+OCtOODiOOCpizjg4DjgqTjgrnjgrENCivjgrTjg4jjgqYs44Kx44Kk44KzDQor44K044OI44KmLOOCq+OCuuODjuODqg0KK+OCs+ODj+OCvyzjg4Hjg6jjg58NCivjgrPjg5Djg6Tjgrcs44OI44Kq44OrDQor44Kz44OQ44Ok44K3LOODiuODm+OCsw0KK+OCs+ODnuODhOODkOODqSzjg5/jg5sNCivjgrPjg5/jg6Qs44OI44Kv44KzDQor44Kz44Of44Ok44OeLOODnuOCteODqOOCtw0KK+OCs+ODpOODiuOCrizjgrfjg7Pjg6QNCivjgrPjg6Tjg54s44K/44Kr44KzDQor44Kz44Oz44OJLOODjuODluOCqw0KK+OCs+ODs+ODjizjg47jg5bjg5sNCivjgrXjgqTjg4jjgqYs44OS44Ot44OS44OHDQor44K144Kk44OI44KmLOOCt+OCsuODqw0KK+OCteOCpOODiOOCpizjgrHjg7PjgqTjg4ENCivjgrXjgqTjg4jjgqYs44Kx44Oz44K0DQor44K144Kk44OI44KmLOOCouOCpA0KK+OCteOCq+OCpCzjg6rjg6fjgqbjgrnjgrENCivjgrXjgqvjg44s44Om44Kt44KzDQor44K144Kr44Oi44OILOODr+OCv+ODqw0KK+OCteOCq+ODouODiCzjg4Hjgqvjg6kNCivjgrXjgq/jg6njgqQs44Oe44K144OV44OfDQor44K144K144KtLOODqOOCt+OCsw0KK+OCteOCteOCrSzjgr/jgrHjg6bjgq0NCivjgrXjgrXjgq0s44Om44Kt44KqDQor44K144K144KtLOOCteOCrQ0KK+OCteOCteOCrSzjg6Tjgrnjg5Ljg60NCivjgrXjgrXjg44s44Ki44Kr44KuDQor44K144OA44Oi44OILOOCsuODs+OCs+OCpg0KK+OCteODiOOCpizjg5Ljg63jgq0NCivjgrXjg4jjgqYs44Om44Km44Kk44OB44OtDQor44K144OI44KmLOOCv+OCq+OCtw0KK+OCteODiOOCpizjgr/jgqvjg5Ljg60NCivjgrXjg4jjgqYs44OI44Oi44KzDQor44K144OK44OALOODnuOCteODpuOCrQ0KK+OCteODjeOCt+OCsizjg4jjgrfjg47jg5YNCivjgrXjg44s44Kr44K644OS44KzDQor44K344Ky44OI44OfLOOCteODiOOCsw0KK+OCt+ODjuODj+ODqSzjg6Ljg6rjg5LjgrMNCivjgrfjg5Djgqvjg68s44Kx44Oz44K444Ot44KmDQor44K344OQ44OOLOODquODp+OCpg0KK+OCt+ODnuODgCzjgr/jgrHjgrcNCivjgrfjg57jg4As44K/44OE44Ot44KmDQor44K344Of44K6LOOCv+OCq+OCqg0KK+OCt+ODoOODqSzjgr/jgqvjg47jg6oNCivjgrfjg6Djg6ks44K/44Kx44K3DQor44K344Oi44Kr44OvLOODiOODouODpA0KK+OCt+ODouODleOCuCzjg47jg5bjg5LjgrMNCivjgrfjg6Ljg6Tjg54s44OS44OH44Kr44K6DQor44K344On44KmLOODkuODreODpuOCrQ0KK+OCt+ODqeOCpCzjg6rjgqgNCivjgrfjg6njgqws44Kz44Km44K4DQor44K344Op44Kr44OvLOODpOOCueOCsw0KK+OCt+ODqeOCuSzjg5/jg6bjgq0NCivjgrfjg68s44Kx44Oz44Kk44OBDQor44K344Oz44KxLOODiuOCpOOCt+ODsw0KK+OCt+ODs+ODieOCpizjg4jjg6LjgqvjgroNCivjgrnjgqzjg4/jg6ks44OS44Ot44Kr44K6DQor44K544Ku44Km44OBLOOCt+ODp+OCpuOCv+ODreOCpg0KK+OCueOCruOCpuODqSzjg4HjgqLjgq0NCivjgrnjgq7jgrXjg68s44Oo44Km44KzDQor44K544Ku44OP44OpLOODkuODreODjuODlg0KK+OCueOCruODouODiCzjg4bjg6vjg6bjgq0NCivjgrnjgq7jg6Tjg54s44K/44OE44OkDQor44K544K644KtLOODnuOCteODpuOCrQ0KK+OCueOCuuOCrSzjgrfjg7PjgqTjg4ENCivjgrnjgrrjgq0s44K/44Kk44K544KxDQor44K544K644KtLOODnuOCs+ODiA0KK+OCueOCuuOCrSzjg57jgrXjg6QNCivjgrnjgrrjgq0s44Oq44Ol44Km44K/DQor44K544K644KtLOODjuODquOCsw0KK+OCueOCuuOCrSzjg5/jgqvjgrMNCivjgrnjg4As44Oq44Oz44OkDQor44K544OILOODhuODhOODpA0KK+OCueODn+ODgCzjgqLjgq3jg5Ljg60NCivjgrvjgq0s44Ki44OE44OK44OqDQor44K744KtLOOCq+OCuuOCrQ0KK+OCu+ODs+ODgCzjg6bjgq3jgrMNCivjgr3jg6Hjg5/jg6Qs44OB44KoDQor44K944OkLOODkuODreOCrQ0KK+ODgOOCpOODnuODqyzjgqLjgq3jg6kNCivjgr/jgqvjgqos44OP44OK44KoDQor44K/44Kr44KuLOOCq+ODqA0KK+OCv+OCq+OCtuODryzjg4Djg7MNCivjgr/jgqvjgrss44Kx44Oz44K4DQor44K/44Kr44ONLOOCteODiOOCtw0KK+OCv+OCq+ODj+OCtyzjgrjjg6Xjg7PjgrMNCivjgr/jgqvjg4/jgrcs44K/44Kr44K3DQor44K/44Kr44OP44K3LOODkuODreODiuOCqg0KK+OCv+OCq+ODj+OCtyzjg5Ljg63jg6bjgq0NCivjgr/jgqvjg4/jgrcs44Oe44OK44OWDQor44K/44Kr44Ok44OeLOODpuOCreOCqg0KK+OCv+OCreOCpuODgSzjg6rjgqgNCivjgr/jgq3jgqvjg68s44Ki44Kt44OpDQor44K/44Kt44Kw44OBLOOCseODs+OCv+ODreOCpg0KK+OCv+OCreOCtuODryzjgrXjg4jjgrcNCivjgr/jgq3jgrbjg68s44Kz44Km44K444Ot44KmDQor44K/44Kt44K244OvLOODgeODkuODrQ0KK+OCv+OCreOCvyzjgqLjgq3jg6kNCivjgr/jgrDjg4Es44Kx44Oz44K/44Ot44KmDQor44K/44Kx44KkLOOCr+ODi+OCqg0KK+OCv+OCseOCpuODgSzjgrfjg7PjgrQNCivjgr/jgrHjg4As44Om44Km44Kk44OB44OtDQor44K/44Kx44OP44OpLOODqOOCpuOCsw0KK+OCv+ODhuODjizjg4rjgqrjgr/jgqsNCivjgr/jg4rjgqss44OA44Kk44K544KxDQor44K/44OK44KrLOOCueOCueODoA0KK+OCv+ODiuOCqyzjgqLjgq3jg6kNCivjgr/jg4rjgqss44OK44KqDQor44K/44OK44KrLOOCu+OCpOOCuA0KK+OCv+ODiuOCqyzjg4jjgqrjg6sNCivjgr/jg4rjgqss44OK44Kq44KzDQor44K/44OK44KrLOOCqOODquOCsw0KK+OCv+ODiuOCqyzjg5/jg4TjgqgNCivjgr/jg4rjg5ks44K344Oz44Kk44OB44Ot44KmDQor44K/44OLLOODgeOCq+ODqA0KK+OCv+ODi+OCq+ODryzjg6jjgrfjg4TjgrANCivjgr/jg4vjg4rjgqss44OS44Ot44K/44KrDQor44K/44OL44Oi44OILOODgeOCuuODqw0KK+OCv+ODjOODnizjg5Xjg5/jg5LjgrMNCivjgr/jg5Djgr8s44K444Ol44OzDQor44K/44OQ44K/LOOCsw0KK+OCv+ODkOOCvyzjg6jjgqbjgrnjgrENCivjgr/jg5Djgr8s44Kx44Kk44K/44Ot44KmDQor44K/44Og44OpLOOCs+OCpuOCpOODgQ0KK+OCv+ODq+OCrSzjg6bjgq0NCivjgr/jg7Pjgrgs44Kt44Oo44OO44OqDQor44OB44OQLOOCq+OCuuODpuOCrQ0KK+ODgeODkCzjg5Ljg63jgqvjgroNCivjg4Tjgqvjg4As44Oq44KoDQor44OE44Kt44Oi44OILOOCouODhOOCtw0KK+ODhOOCuCzjg5Ljg63jgrcNCivjg4Tjg4As44Kt44Of44OS44KzDQor44OE44OB44Oi44OILOOCt+ODs+OCtA0KK+ODhOODhOODnyzjg4jjg6LjgrMNCivjg4Tjg4Tjg58s44K444Ol44Oz44Kk44OBDQor44OE44Oc44K/LOODnuOCteODpA0KK+ODhuOCpCzjg6/jgqvjg58NCivjg4bjg6njgqvjg4ks44Of44OE44Ki44KtDQor44Of44OO44Km44OpLOODnuODiuODlg0KK+ODhuODq+OCpCzjg57jg6oNCivjg4njgqQs44Kz44Km44K/44Ot44KmDQor44OI44KmLOODnuOCreOCsw0KK+ODiOOCpuOCq+OCpOODquODsyzjg6bjg58NCivjg4njgqbjg6Hjg7Ms44Ko44OE44KzDQor44OI44Km44Kr44KkLOOCq+OCquODqg0KK+ODiOOCr+ODiuOCrCzjgq3jg5/jgr/jgqsNCivjg4jjgq/jg6Tjg54s44K/44Kk44KsDQor44OI44K344OeLOODn+ODr+OCsw0KK+ODieOCpuODgSzjg4jjg6Ljg6bjgq0NCivjg4jjg47jgqQs44Ki44Kt44KzDQor44OI44OO44Og44OpLOODquOCqOOCsw0KK+ODiOODn+OCvyzjgq/jg4vjgqoNCivjg4jjg6Ljg44s44OS44OH44Kr44K6DQor44OI44Oq44KkLOODnuODouODqw0KK+ODiuOCrOOCpCzjg4jjg6Ljg47jg6oNCivjg4rjgqvjgqzjg68s44Kk44Kv44OeDQor44OK44Kr44Ks44OvLOODqOOCt+ODjuODqg0KK+ODiuOCq+OCrOODryzjg4DjgqTjgrnjgrENCivjg4rjgqvjgrbjg4gs44Oi44OI44OO44OWDQor44OK44Kr44K344OeLOODgeOCq+OCsw0KK+ODiuOCrOOCvyzjg6bjgqsNCivjg4rjgqvjg44s44Kr44OKDQor44OK44Ks44OOLOODquODp+OCpuOCvw0KK+ODiuOCrOODjizjg6rjg6fjgqYNCivjg4rjgqvjg6Djg6ks44Oo44Km44KzDQor44OK44Kr44Og44OpLOOCteODiOOCtw0KK+ODiuOCq+ODoOODqSzjgr/jgrHjgrcNCivjg4rjgqvjg6Djg6ks44OG44OE44OkDQor44OK44Kr44Oi44OqLOODiOOCr+OCsw0KK+ODiuOCq+ODpOODnizjg4jjg6Ljg5Ljg60NCivjg4rjg6vjgrss44K/44Kr44K3DQor44OK44Oz44K0LOODnuOCteOCrQ0KK+ODiuODs+ODkCzjgrHjg7MNCivjg4rjg7Pjg5As44Kz44Km44K4DQor44OL44Kk44OfLOOCs+OCpuODmOOCpA0KK+ODi+OCt+OCqizjg6jjgqbjgrgNCivjg4vjgrfjgqrjgqss44K344Oz44Kk44OBDQor44OL44K344Kq44KrLOODiOODouOCsw0KK+ODi+OCt+OCteOCqyzjg57jg58NCivjg4vjgrfjgrbjgq0s44K/44Kv44OeDQor44OL44K344K244OvLOODiuOCquOCrQ0KK+ODi+OCt+ODjizjgrXjg4jjgrcNCivjg4zjg57jgr/jgq0s44Oi44OI44KtDQor44ON44Ku44K3LOODquOCqw0KK+ODjeODpOODnizjgr/jgrHjgrcNCivjg47jg4As44OB44Ki44KtDQor44OO44Kw44OBLOODjuODquOCsw0KK+ODjuOCsOODgSzjg6jjgqbjgrnjgrENCivjg47jgrDjg4Es44Kx44Kk44K4DQor44OO44Kw44OBLOOCt+ODs+OCreODgQ0KK+ODjuOCtuOCrSzjg4DjgqTjgrnjgrENCivjg47jg4As44OS44Ot44KzDQor44OO44Oc44OqLOODqOOCt+ODkuODrQ0KK+ODjuODoOODqSzjgrfjg6XjgqbjgqTjg4ENCivjg47jg6Djg6ks44Of44K144KzDQor44OO44Og44OpLOOCseODs+OCuA0KK+ODj+OCruODr+ODqSzjgrfjg6fjgqbjgr/jg63jgqYNCivjg4/jgrfjgrDjg4Es44OI44K344OS44OtDQor44OP44K344Oi44OILOOCv+OCq+ODleODnw0KK+ODnuOCrSzjgqvjgrrjg4gNCivjg4/jgrvjgqzjg68s44K/44Kx44KqDQor44OP44K744Ks44OvLOOCquOCteODoA0KK+ODj+ODgCzjgqLjg6TjgrMNCivjg4/jg4Pjg4jjg6os44Om44Km44Kk44OBDQor44OP44OD44OI44OqLOODnuODpuOCsw0KK+ODkOODkCzjg57jgrXjgq0NCivjg5Djg5As44Kx44Oz44K4DQor44OQ44OQLOOCt+ODs+OCpOODgeODreOCpg0KK+ODkOODkCzjg6rjgqvjgrMNCivjg4/jg57jg4As44Kv44Of44KzDQor44OP44Oe44OALOODgOOCpOOCuA0KK+ODj+ODnuODgCzjg6rjgrUNCivjg4/jg57jg4As44OV44Of44OS44OtDQor44OP44Oe44OOLOODnuOCteODpuOCrQ0KK+ODj+ODpOOCtyzjgqLjgq3jg47jg6oNCivjg5LjgrDjg4Es44Kz44Km44KtDQor44OS44K144OE44ONLOODnuOCs+ODiA0KK+ODkuOCt+ODjOODnizjgqLjg4TjgrcNCivjg5Pjg6fjgqbjg4njgqYs44OS44Ot44KzDQor44OS44Op44KkLOODnuOCteOCq+OCug0KK+ODkuODqeOCquOCqyzjg5/jgq0NCivjg5Ljg6njgqvjg68s44OI44Oi44OS44OtDQor44OS44Op44K144OvLOOCv+OCr+OCuA0KK+ODkuODqeOCt+ODnizjgrjjg63jgqYNCivjg5Ljg6njgr8s44Oe44Of44KzDQor44OS44Op44OOLOODpOODqOOCpA0KK+ODkuODq+ODnizjg6bjgqbjgqTjg4ENCivjg5Ljg63jgrss44OS44OH44KtDQor44OS44Ot44K7LOOCq+ODhOODqOOCtw0KK+ODkuODreOCvyzjg5Ljg63jgrcNCivjg5Xjgq/jgqQs44Ki44K644K1DQor44OV44Kv44OALOOCv+OCq+OCtw0KK+ODleOCr+ODkCzjgqvjg4rjg6ENCivjg5Xjgq/jg6Djg6ks44Om44Of44KzDQor44OV44Kv44Oi44OILOODgOOCpOOCueOCsQ0KK+ODleOCuOOCpCzjgrHjg7MNCivjg5XjgrjjgqQs44Om44KtDQor44OV44K444KkLOODn+ODrw0KK+ODleOCuOOCqOODgCzjg5LjgrXjgqvjgroNCivjg5Xjgrjjgr8s44OS44OH44Kr44K6DQor44OV44K444K/LOODpuOCreOCsw0KK+ODleOCuOODhCzjgr/jgrHjgrcNCivjg5Xjgrjjg44s44K/44Kr44ObDQor44OV44K444Oi44OILOOCteODiOOCsw0KK+ODleOCuOODr+ODqSzjgr/jgq/jg4gNCivjg5Xjgrjjg6/jg6ks44Oq44OKDQor44OV44K444Ov44OpLOOCr+ODnw0KK+ODleODq+OCq+ODryzjg6rjg6fjgqYNCivjg5ss44Oe44K144OO44OqDQor44Ob44K344OOLOODoOODjeODiOODog0KK+ODm+OCveOCq+ODryzjg4bjg6vjg5LjgrMNCivjg5vjg6rjgqvjg68s44K344Ol44Km44K4DQor44Ob44Oz44K044KmLOODqOOCt+OCouOCrQ0KK+ODnuOCqOODgCzjgqLjg4TjgrcNCivjg57jgqrjgqss44OE44OI44OgDQor44Oe44K544OW44OBLOODhOODqOOCtw0KK+ODnuOCueODn+ODhCzjgq3jg6fjgqbjg5jjgqQNCivjg57jg4TjgqQs44Kx44Oz44K/44Ot44KmDQor44Oe44OE44KqLOODkuODh+ODjuODqg0KK+ODnuODhOOCquOCqyzjgq3jg6fjgqbjgrnjgrENCivjg57jg4Tjgqrjgqss44K144OB44KzDQor44Oe44OE44OALOODquODp+OCpg0KK+ODnuODhOODkOODqSzjgqLjgq3jgrMNCivjg6/jgr/jg4rjg5ks44OA44Kk44K544KxDQor44Oe44OE44Ok44OeLOOCv+OCseOCtw0KK+ODnuODhOODpOODnizjg5/jg4Tjg4bjg6sNCivjg57jg4Tjg6Tjg54s44Oo44K344KtDQor44Oe44OI44OQLOODiOODouODkuODrQ0KK+ODn+OCpuODqSzjg57jgrXjgq0NCivjg5/jg4Tjgq4s44K/44Kx44K3DQor44Of44OILOOCt+ODpeOCpuOCpOODgQ0KK+ODn+ODjuOCpuODqSzjg6Tjgrnjg5LjgrUNCivjg5/jg6Qs44Ki44Kt44OpDQor44Of44Ok44KxLOODkuODh+ODnuOCtQ0KK+ODn+ODpOOCt+OCvyzjgqLjgqQNCivjg5/jg6Tjgrfjgr8s44Om44Kt44KqDQor44Of44Ok44K/LOOCouOCreODkuODrQ0KK+ODn+ODpOODouODiCzjgr/jg4Tjg6QNCivjg5/jg6Tjg6Ljg4gs44Kv44OL44KzDQor44Of44Ok44Oi44OILOODnuOCteODkuODrQ0KK+ODoOOCr+ODgCzjg4jjg6LjgqLjg6oNCivjg6Djgrfjgqss44Om44Kt44KzDQor44Og44OI44KmLOOCouOCreODqQ0KK+ODoOODqeOCq+ODnyzjg6bjgqsNCivjg6Djg6njgqvjg58s44Kr44OK44KzDQor44Og44Op44Kr44OfLOOCv+ODhOODkuODrQ0KK+ODoOODqeOCq+ODnyzjg5Ljg4fjg4TjgrANCivjg6Djg6njgr/jg4ss44Oi44OI44OS44OtDQor44Og44Op44Oe44OELOODnuOCteOCsw0KK+ODoOODqeODpOODnizjg6jjgrfjgqLjgq0NCivjg6Ljg4Hjgrrjgq0s44OI44K344OS44KzDQor44Oi44Oq44Kw44OBLOODn+OCteODiA0KK+ODouODquOCvyzjg57jg58NCivjg6Ljg6rjg5Djg6Tjgrcs44Kz44Km44Oh44KkDQor44Oi44Ot44OILOODkuODreOCv+ODhA0KK+ODpOOCqOOCrOOCtyzjg5Ljg4fjg6bjgq0NCivjg6Tjgqrjg6Tjg54s44Ky44Oz44K/DQor44Ok44Ks44OfLOODqOOCt+ODkuODrQ0KK+ODpOOCrizjgrHjgqTjgrgNCivjg6TjgrDjg6ks44K344Oz44K4DQor44Ok44K544Kz44OBLOODjuODnOODqw0KK+ODpOOCueODgCzjg6bjgqbjgrnjgrENCivjg6Tjgrnjg4As44OO44Oq44KzDQor44Ok44Oe44Kw44OBLOODpuOCpuOCueOCsQ0KK+ODpOODnuOCsOODgSzjgrfjg6fjgqbjgrfjg7MNCivjg6Tjg57jg4As44Ov44Kk44Kx44OzDQor44Ok44Oe44OALOODn+OCuuODmw0KK+ODpOODnuODgCzjgqLjgq3jg6kNCivjg6Tjg57jg5/jg4Es44Kr44OE44Om44KtDQor44Ok44Oe44Oi44OILOOCuOODpeODs+OCsw0KK+ODpOODnuODouODiCzjg5Ljg63jg58NCivjg6bjgq0s44Oe44Of44KzDQor44Om44Of44OQLOOCseOCpOOCpOODgQ0KK+ODpuODqSzjgrHjg7PjgqTjg4ENCivjg6jjgrPjgrnjgqss44OP44Or44OO44OWDQor44Oo44Kz44K/LOOCouOCpA0KK+ODqOOCs+ODpOODnizjgqLjg6TjgrMNCivjg6jjgrfjgqrjgqss44OK44Kq44KzDQor44Oo44K344Kq44KrLOOCq+OCuuODkuODrQ0KK+ODqOOCt+OCtuODryzjg6bjgqbjgrMNCivjg6jjgrfjg4As44Of44OE44OrDQor44Oo44K344OALOOCouOCq+ODqg0KK+ODqOOCt+ODgCzjgr/jgqvjgrcNCivjg6jjgrfjg44s44Kr44K644OfDQor44Oo44K344Og44OpLOODpuOCpuOCsw0KK+ODquODpeOCpizjgqjjgqTjgrgNCivjg63jgq8s44Ki44Kt44KzDQor44K144Kr44Oi44OILOOCseOCpOOCsw0KK+ODr+OCv+ODiuODmSzjg6zjgqTjg4oNCivjg6/jgr/jg4rjg5ks44Om44OV44KzDQor44Ov44K/44OK44OZLOODpuOCpg0KK+ODr+OCv+ODiuODmSzjgr/jgqvjgrMNCivjg6/jgr/jg4rjg5ks44Ok44Oo44KkDQor44Ov44Op44OTLOODkuODreODjuODqg0KK+ODjuOCtuODryzjg6bjgqbjgrMNCivjgq/jg5ws44Ok44K544KzDQor44Oo44K344Oi44OILOOCsw0KK+ODpOODnuODouODiCzjgr/jgqvjgrcNCivjg6Tjg57jg6Ljg4gs44K/44Kr44K3DQor44OS44Ot44K144OvLOODquOCqA0KK+ODn+ODkuODqSzjg6rjg6fjgqbjg5jjgqQNCivjgqrjgqrjg44s44OS44Ot44Om44KtDQor44Kq44OALOOCq+OCuuODkuOCsw0KK+OCquOCquODkOOCv+OCsSzjg5/jg5vjgrMNCivjgqvjg4njgqgs44Ki44KkDQor44OL44K344OALOODiOODqOODkuODrQ0KK+ODnuODhOODouODiCzjg6jjgrfjgqLjgq0NCivjg5/jgq7jgr8s44Oe44OKDQor44Of44Ok44Oi44OqLOODn+OCqg0KK+ODpOODnuOCt+OCvyzjg57jg4njgqsNCivjg6Tjg57jg4As44K344Oz44K0DQor44OO44Oq44OI44OfLOODgeOCqA0KK+OCpOOCseODgCzjg6bjgqbjgrnjgrENCivjg6Ljg6rjgr8s44Oq44On44Km44K4DQor44K/44Kx44Km44OBLOODquODp+OCpg0KK+ODn+OCvyzjg6jjgrfjg47jg6oNCivjgqTjg4zjgqQs44Kx44OzDQor44OI44KmLOODjuODquODpuOCrQ0KK+ODnuOCreODjizjg57jg6oNCivjg4rjg4Tjg6Es44K344Oz44OkDQor44Kq44OO44OH44OpLOOCr+ODi+ODkuODrQ0KK+OCquOCquOCvyzjg5/jgq3jgrMNCivjgqbjg6vjgrfjgrXjgrMs44Oq44OE44KzDQor44K144Kr44Kt44OQ44OpLOOCt+OCsuODjuODqg0KK+OCouOCquOCrSzjgqjjgqTjgrnjgrENCivjgqLjgqrjgq0s44OK44Kq44OIDQor44Ki44Kq44KtLOODpuOCpuOCsw0KK+OCouOCq+OCrOODryzjg6Ljg4jjgrMNCivjgqLjgqvjg4Tjgqss44Kr44K644OS44OIDQor44Ki44Kr44Ob44OqLOOCseOCpOOCuOODreOCpg0KK+OCouOCreODpOODnizjgqvjgrrjg5Ljg60NCivjgqLjgrXjgqQs44OG44Or44OfDQor44Ki44K144KkLOOCt+ODs+ODmuOCpA0KK+OCouOCteOCquOCqyzjgrHjg7PjgrgNCivjgqLjgrXjg4zjg54s44Ki44OkDQor44Ki44K9LOODiuOCquODleODnw0KK+OCouOCv+OCsSzjg4jjgrfjgq0NCivjgqLjg4Djg4Es44K344Oz44K0DQor44Ki44OZLOOCv+OCq+ODn+ODgQ0KK+OCouODmSzjg47jg5bjg6TjgrkNCivjgqLjg5ks44Om44Kt44KoDQor44Ki44Op44KkLOODhOODqOOCtw0KK+OCouODquODnizjg4jjg6LjgrMNCivjgqTjgqTjgrrjgqss44OA44Kk44K544KxDQor44Kk44Ks44Op44K3LOODpuOCv+OCqw0KK+OCpOOCseODgCzjgrPjgrrjgqgNCivjgqTjgrHjg4As44Kx44Oz44K/44Ot44KmDQor44Kk44Kx44OP44K/LOODkuODreOCrQ0KK+OCpOOCtuODryzjg4Hjg4/jg6sNCivjgqTjgrfjgqQs44Ok44K544K3DQor44Kk44K344Kr44OvLOODquODp+OCpuOCsw0KK+OCpOOCt+OCsOODrSzjgqLjgq3jg5Ljg60NCivjgqTjgrfjg4As44Kz44Km44K/44Ot44KmDQor44Kk44K344OALOOCv+ODhOOCqg0KK+OCpOOCt+ODkOOCtyzjg4jjgrfjg6bjgq0NCivjgqTjgrfjg4/jg6ks44K/44Kr44OS44OtDQor44Kk44K344Oi44OILOODnuODpuOCsw0KK+OCpOOCveODj+OCvyzjgqLjgrXjgrMNCivjgqTjgr/jg58s44K/44Kr44Ki44KtDQor44Kk44OB44Kr44OvLOODiuODq+OCv+OCqw0KK+OCpOODg+OCt+OCrSzjgr/jg4Tjg6QNCivjgqTjg4cs44OK44Or44OfDQor44Kk44OHLOOCs+OCpuOCuA0KK+OCpOODiOOCpizjg57jg6bjg58NCivjgqTjg4jjgqYs44K444Ol44Oz44Oa44KkDQor44Kk44OI44KmLOODnuOCteOCqg0KK+OCpOODiOOCpizjg4rjg4TjgrMNCivjgqTjg4jjgqYs44Oe44KkDQor44Kk44OO44Km44KoLOODnuOCs+ODiA0KK+OCpOODjuOCpuOCqCzjg6jjgqbjgrnjgrENCivjgqTjg47jgqbjgqgs44OK44Kq44KtDQor44Kk44OO44Km44KoLOOCq+ODhOOCrQ0KK+OCpOODjuOCr+ODgSzjg47jg6rjg6bjgq0NCivjgqTjg57jgqQs44Oq44ObDQor44Kk44Oe44Kt44Ol44Km44Os44KkLOODrOOCpOOCsw0KK+OCpOODnuOCvOOCrSzjgq/jg5/jgrMNCivjgqTjg57jg6Djg6ks44Oe44K544OfDQor44Kk44Oe44Og44OpLOOCseODs+OCpOODgeODrQ0KK+OCpOODr+OCpCzjgrXjg4jjg6sNCivjgqTjg6/jgqQs44K/44Kr44K3DQor44Kk44Ov44K144KtLOODiOODouOCsw0KK+OCpOODr+OCuyzjgrnjgrnjg6ANCivjgqTjg6/jgr8s44Kz44Km44K4DQor44Kk44Ov44OHLOOCseODs+OCv+ODreOCpg0KK+OCpOODr+ODoOODqSzjg57jgrXjg5Ljg4gNCivjgqbjgqjjg4As44OV44Of44KqDQor44Km44Ko44OOLOODnuOCteODleODnw0KK+OCpuOCqOODjizjgrfjg7PjgrgNCivjgqbjgqvjgqQs44OS44Ot44KtDQor44Km44K144OfLOODnuODquOCsw0KK+OCpuODgeOCpuODnyzjg6rjgqjjgrMNCivjgqbjg4Hjg6Tjg54s44Oe44K144OV44OfDQor44Km44Op44OP44OpLOOCv+OCpOOCuA0KK+OCqOOCrizjgr/jgqvjg5LjgrMNCivjgqjjgrjjg6os44OS44Ot44K3DQor44Ko44OO44Kt44OJLOODqOODquOCsw0KK+OCqOODouODqizjgqTjg4Tjgq0NCivjgqjjg7Pjg4ks44OP44K444OhDQor44Kq44Kq44KkLOODiuODhOOCsw0KK+OCquOCquOCpOOCsSzjg4jjg6LjgqvjgroNCivjgqrjg5Xjg6ks44OA44Kk44K544KxDQor44Kq44Kq44Kr44OvLOODqOOCt+OCsw0KK+OCquOCreOCvyzjg6bjgq3jg47jg6oNCivjgqrjgqrjgrXjg68s44Oe44K144Om44KtDQor44Kq44Kq44K/LOODiOODouOCsw0KK+OCquOCquOCvyzjgqLjgq3jg4rjgqoNCivjgqrjgqrjgr8s44Oo44Km44OY44KkDQor44Kq44Kq44K/44OLLOOCv+OCq+OCouOCrQ0KK+OCquOCquOCv+ODiyzjg6bjgq3jg5Ljg4cNCivjgqrjgqrjg4Tjgqss44Oi44OI44KkDQor44Kq44Kq44OE44KrLOODqOOCt+ODjuODqg0KK+OCquOCquODhOOCqyzjg4DjgqTjgrjjg63jgqYNCivjgqrjgqrjg4Tjgq0s44K144OI44OrDQor44Kq44OJLOOCv+OCr+ODnw0KK+OCquODiOODs+ODmSzjgr/jg4Tjg6QNCivjgqrjg44s44Oe44K144OS44KzDQor44Kq44OOLOODkuODreOCtw0KK+OCquOCquODj+OCtyzjgr/jg4Tjg6QNCivjgqrjgqrjg4/jgr8s44Ki44Kt44OpDQor44Kq44Kq44Of44OBLOODn+ODmw0KK+OCquOCquODpOODnizjg5/jgq3jg5Ljg4gNCivjgqrjgqvjgrbjgq0s44K/44OE44OV44OfDQor44Kq44Kr44K444OeLOODn+ODiuOCsw0KK+OCquOCq+ODgCzjgqvjgrrjg5Ljg60NCivjgqrjgqvjg4As44K/44Kv44OeDQor44Kq44Kr44Oi44OILOOCv+OCseOCtw0KK+OCquOCq+ODouODiCzjg4DjgqTjgrnjgrENCivjgqrjgqzjg68s44K444Ol44OzDQor44Kq44Ku44K/LOODiOOCt+ODleODnw0KK+OCquOCr+OCr+ODnCzjgr/jgqvjgrcNCivjgqrjg4HjgqLjgqQs44OI44Oi44OO44OqDQor44Kq44Oe44K/LOOCseODsw0KK+OCq+OCtSzjg6bjgq3jgrMNCivjgqvjgrfjg68s44OA44Kk44K544KxDQor44Kr44OI44KmLOOCs+OCpuODmOOCpA0KK+OCq+ODiOOCpizjgr/jg4DjgrcNCivjgqvjg4rjgqQs44Kx44Oz44Kk44OBDQor44Kr44OK44Ok44OeLOODgOOCpOOCueOCsQ0KK+OCq+ODjeOCsyzjg5Xjg5/jg6QNCivjgqvjg43jg4Tjgq0s44K444Ol44Oz44OkDQor44Kr44ON44Oe44OrLOOCouOCuuOCtQ0KK+OCq+ODmeOCpuODgSzjg4rjgqrjg4gNCivjgqvjg5/jg6Djg6ks44Kr44Kq44OqDQor44Kr44Of44OkLOOCteODgeOCsw0KK+OCq+ODn+ODpCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqvjg6/jgqQs44Om44Of44KzDQor44Kr44Ov44KkLOODkuODreOCtw0KK+OCq+ODr+OCq+ODnyzjg6njgqQNCivjgqvjg6/jgrXjgq0s44Ok44K544OS44OtDQor44Kr44Ov44K144KtLOODhuODhOOCouOCrQ0KK+OCq+ODr+OCteOCrSzjg5Ljg63jgq0NCivjgqvjg6/jgrfjg54s44K/44Kr44KqDQor44Kr44Ov44K/LOOCseOCpOOCpOODgQ0KK+OCq+ODr+ODnuOCvyzjgrPjgqbjgr8NCivjgqvjg6/jg6Ljg4gs44Kx44Kk44K544KxDQor44Kt44K344Oi44OILOOCouOCreODqOOCtw0KK+OCreOCt+ODrSzjgrHjgqTjgr8NCivjgq3jg4As44Ko44Kk44K544KxDQor44Kt44K/44Kq44KrLOOCuOODpeODsw0KK+OCreOCv+ODjizjg57jgrXjg5LjgrMNCivjgq3jgr/jg4/jg6ks44K944Km44OY44KkDQor44Kt44K/44Og44OpLOOCv+ODreOCpg0KK+OCreOCv+ODouODiCzjg5/jg5sNCivjgq3jg6Djg6ks44K/44Kx44OS44OtDQor44Kt44Og44OpLOODleODn+ODiA0KK+OCreODouODiCzjgrHjgqTjgrMNCivjgq3jg7Ms44Oo44K344Om44KtDQor44Kv44K344Ok44OeLOOCouOCreODqA0KK+OCr+ODieOCpizjg4jjg6Ljg47jg6oNCivjgq/jg4njgqYs44K344Ol44Oz44K544KxDQor44Kv44Oh44Km44OBLOOCseODs+OCuA0KK+OCr+ODqeOCt+OCsizjgrPjgqbjgrgNCivjgq/jg6njg4Es44Kr44K644OS44OtDQor44Kv44Op44OK44KrLOOCv+OCseOCtw0KK+OCr+ODquODj+ODqSzjg6jjgqbjgrnjgrENCivjgq/jg63jgq0s44Oe44K144KtDQor44Kv44Ot44K144KrLOODqOOCpuOCsw0KK+OCr+ODr+ODj+ODqSzjgrfjg44NCivjg6bjgqgs44Kr44OE44OO44OqDQor44Kz44Kk44K644OfLOOCt+ODs+ODpA0KK+OCs+OCpuOCuOODnizjg6jjgrfjg5LjgrMNCivjgrPjgqbjg4As44Kr44OE44Om44KtDQor44Kz44Oz44OOLOOCseODs+OCpOODgQ0KK+OCs+OCrCzjgrfjg6fjgqbjgqTjg4ENCivjgrPjgqws44K/44Kv44K4DQor44Kz44Kv44OW44OzLOODgeOCq+OCsw0KK+OCs+OCteOCqyzjgqLjgq3jgrMNCivjgrPjg4Pjg4Ys44Oe44Kk44KzDQor44OP44K/44OK44KrLOOCv+OCq+OCtw0KK+OCs+ODkOODpOOCtyzjg6bjgqsNCivjgrPjg5Djg6Tjgrcs44OS44OH44KtDQor44Kz44OQ44Ok44K3LOOCouODs+ODig0KK+OCs+ODkOODpOOCtyzjg47jg6rjgqLjgq0NCivjgrPjg5Djg6Tjgrcs44Kt44Of44OS44KzDQor44Kz44Oe44OELOOCt+ODs+OCueOCsQ0KK+OCs+ODnuODhOODkOODqSzjg5Xjg58NCivjgrPjg6Hjg4Djg4ss44OG44OE44Ot44KmDQor44K144Kk44KtLOOCouODhOOCtw0KK+OCteOCpOODiOOCpizjgrHjg7PjgqTjg4ENCivjgrXjgqvjgqQs44OS44Ot44Ki44KtDQor44K144Kr44Kw44OBLOOCv+ODreOCpg0KK+OCteOCr+ODnizjg6bjgq3jgrMNCivjgrXjgrMs44Oe44OkDQor44K144K144KkLOODiuOCquODpA0KK+OCteOCteOCqizjgqvjgrrjgq3jg58NCivjgrXjgrXjgq0s44OP44OK44KzDQor44K144K144KtLOODnuOCteOCqg0KK+OCteODiOOCpizjgqvjg4Tjg5LjgrMNCivjgrXjg4jjgqYs44Kr44K644Om44KtDQor44K144OI44KmLOODkuODreODkuODiA0KK+OCteODiOOCpizjg57jgrXjgq0NCivjgrXjg4jjgqYs44Of44KtDQor44K144OI44KmLOODnuOCteOCsw0KK+OCteODiOOCpizjg5/jgq0NCivjgrXjg4jjgqYs44OO44OW44Om44KtDQor44K144OI44KmLOODquODp+OCpuOCteOCrw0KK+OCteODjizjg57jgrXjgrMNCivjgrXjg44s44OK44Ku44K1DQor44K144OP44OpLOOCv+OCq+ODleODnw0KK+OCteODq+ODpOODnizjgr/jgqvjg6bjgq0NCivjgrXjg6/jgrDjg4Es44Ki44OkDQor44K344KkLOOCqOODnw0KK+OCt+OCquOCtuOCrSzjg5Ljg4fjgqLjgq0NCivjgrfjgqrjg4As44Ko44Kk44K4DQor44K344KtLOODnuOCteODqw0KK+OCt+ODgCzjg6jjgrfjg5Ljg60NCivjgrfjg47jg4/jg6ks44OS44OI44K3DQor44K344OO44OP44OpLOODkuOCteOCtw0KK+OCt+ODluOCteODryzjg6jjgqbjgrnjgrENCivjgrfjg57jg4As44Oq44Ol44Km44K/DQor44K344Oe44OALOODn+ODm+OCsw0KK+OCt+ODnuODgCzjgrHjg7Pjgr/jg63jgqYNCivjgrfjg5/jgros44K/44OE44KqDQor44K344Of44K6LOODr+OCv+ODqw0KK+OCt+ODn+OCuizjg4jjg6LjgrMNCivjgrfjg5/jgros44K144OI44KzDQor44K344Of44K6LOOCuOODpeODs+OCpOODgQ0KK+OCt+ODn+OCuizjgrjjg63jgqYNCivjgrfjg6Is44Kt44OM44KoDQor44K344Oi44K244KtLOOCv+ODhOODkuOCsw0KK+OCt+ODouOCuOODnizjgqjjgqTjgqTjg4Hjg63jgqYNCivjgrfjg6Ljg4Qs44K/44Kr44OS44OtDQor44K344Oi44OOLOOCouOCreODkuOCsw0KK+OCt+ODouODpCzjg6jjg6rjgrMNCivjgrfjg6njgrks44K344Oz44K0DQor44K544Ku44Km44OpLOODnuOCteODjuODlg0KK+OCueOCruOCpuODqSzjg4jjgrfjg63jgqYNCivjgrnjgrrjgq0s44OI44Oi44OfDQor44K544K644KtLOOCqOODquOCsw0KK+OCueOCuuOCrSzjg6bjgqbjgrnjgrENCivjgrnjgrrjgq0s44Oo44K344OO44OqDQor44K544K644KtLOODqOOCt+OCrQ0KK+OCueODiCzjgrXjg4jjgrcNCivjgrnjg4rjg4As44K144OI44K3DQor44K544Ok44OeLOODgOOCpOOCueOCsQ0KK+OCu+OCqizjgqvjgqrjg6oNCivjgrvjgq0s44Kz44Km44OY44KkDQor44K744Kt44ONLOODn+ODhOODqw0KK+OCu+OCreODkCzjg57jgq0NCivjgrvjg4gs44Kx44Kk44K4DQor44K744Oz44K044KvLOODjuODquODkuOCtQ0KK+OCu+ODs+ODgCzjg6bjgqbjgrMNCivjgrvjg7Pjg5As44Of44K644ObDQor44K944Oh44OkLOOCseOCpOOCtA0KK+OCv+OCq+OCrizjg5Ljg4fjgq0NCivjgr/jgqvjgq4s44Ki44KkDQor44K/44Kr44KuLOODjuODquODpuOCrQ0KK+OCv+OCq+OCuyzjg6jjgqbjgqTjg4Hjg63jgqYNCivjgr/jgqvjg4As44Oo44Km44K544KxDQor44K/44Kr44OP44K3LOODpOOCueODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjg6jjgrfjg47jg6oNCivjgr/jgqvjg4/jgrcs44K/44Kr44OO44OqDQor44K/44Kr44OP44K3LOODnuOCteODiA0KK+OCv+OCq+ODj+OCtyzjg5/jgqsNCivjgr/jgqvjg4/jgrcs44Ok44K544OS44OtDQor44K/44Kr44Of44K244OvLOOCs+OCuuOCqA0KK+OCv+OCreOCtuODryzjgrHjgqTjgr7jgqYNCivjgr/jgrDjg4Es44Kt44On44Km44KzDQor44K/44Kx44K344K/LOOCseODsw0KK+OCv+OCseODgCzjgqvjgrrjg54NCivjgr/jgrHjg4As44Om44Km44K4DQor44K/44Kx44OALOOCs+OCpuOCuA0KK+OCv+OCseODiuOCqyzjgr/jgqvjg5Ljg60NCivjgr/jgrHjg4/jg6ks44Of44Kt44KzDQor44K/44Kx44Ok44OeLOODn+ODhOODqw0KK+OCv+OCuCzjg5/jgqsNCivjgr/jg4As44Oo44K344K/44KrDQor44OA44OGLOOCr+ODn+OCsw0KK+OCv+ODiuOCqyzjg4Hjgqvjg5Xjg58NCivjgr/jg4rjgqss44OO44Oq44OS44KzDQor44K/44OK44KrLOOCv+OCr+ODiuOCrA0KK+OCv+ODiuOCqyzjgr/jgqvjg6bjgq0NCivjgr/jg4rjgqss44K/44Kr44Om44KtDQor44K/44OL44Kw44OBLOOCv+OCq+ODjuODqg0KK+OCv+ODi+OCs+OCtyzjgrHjg7Pjgr/jg63jgqYNCivjgr/jg4vjg44s44K/44Kr44Ki44KtDQor44K/44OW44KtLOOCv+ODreOCpg0KK+OCv+ODluODgSzjg6jjgrfjg5Ljg4gNCivjgr/jg57jgqrjgq0s44Oe44K144Oo44K3DQor44K/44Oe44Ks44OvLOODiOODouOCsw0KK+OCv+ODoOODqSzjgrHjgqTjgrMNCivjgr/jg6Hjg47jg6os44Oo44Km44OY44KkDQor44K/44Oz44OOLOOCqOODqg0KK+OCv+ODs+ODnCzjgqLjgq3jg5LjgrMNCivjg4Hjg4As44Kr44OE44OS44K1DQor44OB44ON44OzLOODpuOCrQ0KK+ODhOOCrOODjeOCtuODryzjg47jg5bjg6bjgq0NCivjg4Tjgqvjg4/jg6ks44Of44K644ObDQor44OE44OB44OkLOODnuODpuODnw0KK+ODhOODgeODpCzjg6jjgqbjgrnjgrENCivjg4Tjg4Hjg6Qs44Ok44K544Om44KtDQor44OE44K644KtLOODnuODnw0KK+ODhOOCuuODqeODj+ODqSzjgrXjg4HjgrMNCivjg4Tjg43jg6jjgrcs44OG44Or44OO44OWDQor44OE44Oc44Km44OBLOOCouOCreODleODnw0KK+ODhOODq+OCt+ODnizjg6rjgqgNCivjg4fjgrDjg4Es44K/44Kv44OkDQor44OG44K644KrLOODn+ODhOODjuODlg0KK+ODhuODqeOCq+ODryzjgr/jgqvjgrcNCivjg4bjg6njgrDjg4Es44Og44ON44OO44OqDQor44OG44Op44K344OeLOOCseODs+OCuA0KK+ODhuODqeODgCzjg6jjgrfjgq0NCivjg4jjgqzjgrcs44OA44Kk44K544KxDQor44OI44Kv44Og44OpLOOCs+OCpuOCpOODgQ0KK+ODiOOCtuODryzjg6bjgqbjgrMNCivjg4jjg5Pjgqrjgqss44K/44Kx44K3DQor44OI44Oe44Oq44OOLOOCuOODpeODs+OCsw0KK+ODiOODn+OCpCzjgrjjg6Xjg7PjgrMNCivjg4jjg5/jgrbjg68s44Ki44OkDQor44OI44Of44K/LOOCv+OCpOODgQ0KK+ODiOODn+OCvyzjg6bjgqbjgr8NCivjg4jjg5/jg4rjgqws44Oo44Km44KzDQor44OI44Oo44OALOOCveOCpuOCv+ODreOCpg0KK+ODiOODqeOCv+ODiyzjg57jgrXjgrMNCivjg4rjgqTjg4jjgqYs44K/44Kr44KqDQor44OK44Ks44KkLOODgeOCqA0KK+ODiuOCrOOCpCzjgrjjg6Xjg7PjgrMNCivjg4rjgqvjgqTjgrEs44K344Oz44K0DQor44OK44Kr44Km44KoLOODgOOCpOOCueOCsQ0KK+ODiuOCrOOCqizjg6rjg6fjgqbjgrMNCivjg4rjgqvjgrPjgrgs44K144Ok44KrDQor44OK44Ks44K144KrLOOCs+OCpuOCuA0KK+ODiuOCq+OCuOODnizjg6bjgq3jgrMNCivjg4rjgqvjgrjjg54s44Oe44OqDQor44OK44Ks44K/LOOCq+ODhOODpA0KK+ODiuOCrOOCvyzjgqLjg4Tjg5LjgrUNCivjg4rjgqzjgr8s44OK44Kq44KtDQor44OK44Kr44OE44OrLOODkuODreOCouOCrQ0KK+ODiuOCrOODjizjg6TjgrnjgqoNCivjg4rjgqvjg6Djg6ks44K144OI44OrDQor44OK44Kr44Og44OpLOODkuODreOCtw0KK+ODiuOCq+ODoOODqSzjgq/jg5/jgrMNCivjg4rjgqvjg6Djg6ks44OS44Ot44K3DQor44OK44Kr44Og44OpLOODpuOCqw0KK+ODiuOCq+ODoOODqSzjg57jgrXjgqLjgq0NCivjg4rjgqvjg6Djg6ks44Ko44Kk44K4DQor44OK44OE44OP44OpLOOCteODpOOCqw0KK+ODiuODquOCteODgCzjgrfjg7PjgrnjgrENCivjg4rjg7Pjg5Ys44OO44OW44Om44KtDQor44OL44Kr44Kk44OJ44KmLOODiOODouODpA0KK+ODi+OCtyzjgr3jgqbjgqTjg4Hjg63jgqYNCivjg4vjgrcs44OK44Kq44Om44KtDQor44OL44K344KqLOODiOOCt+ODpA0KK+ODi+OCt+OCq+ODryzjgrHjg7PjgrgNCivjg4vjgrfjgq/jg6ks44K144OI44KzDQor44OL44K344K244OvLOOCpOOCteODoA0KK+ODi+OCt+OCtuODryzjgqjjg6rjg4oNCivjg4vjgrfjg4As44K344Oz44Kk44OBDQor44OL44K344OALOODquODp+OCpuODmOOCpOOCvw0KK+ODi+OCt+ODpOODnizjg5LjgrXjg47jg6oNCivjg4zjg47jg6Qs44K344Ky44KqDQor44OM44Oe44K244KtLOODpuOCreOCqg0KK+ODjOODnuOCvyzjgr/jgrHjgrcNCivjg47jg4njg58s44Oq44OKDQor44OO44OfLOODnuOCteOCrQ0KK+ODjuOCsOODgSzjgqvjgrrjg6jjgrcNCivjg47jgrjjg54s44OG44Or44Ki44KtDQor44OO44K444OqLOODiOOCt+ODpuOCrQ0KK+ODjuODgCzjg5/jgq3jgrMNCivjg47jg4As44Om44Kt44KzDQor44OO44Og44OpLOOCt+ODs+ODmOOCpA0KK+ODjuODoOODqSzjgqvjgrrjgqgNCivjg47jg6Djg6ks44Kr44K644KqDQor44OP44Kz44K344OeLOODr+OCv+ODqw0KK+ODj+OCt+ODouODiCzjg6rjg6fjgqYNCivjg4/jgrfjg6Ljg4gs44Kx44KkDQor44OP44K744Ks44OvLOOCseODs+OCv+ODreOCpg0KK+ODj+OCv+OCseODpOODnizjg6bjg5XjgrMNCivjg4/jg4Pjgr8s44Om44OSDQor44OP44OD44OI44OqLOOCteODiOODnw0KK+ODj+ODiuOCpCzjgr/jgrHjg4/jg6sNCivjg4/jg4rjg4As44Kx44Kk44K544KxDQor44OP44Oe44Kw44OBLOOCseODsw0KK+ODj+ODnuODgCzjg57jg4rjg58NCivjg4/jg57jg4As44Kx44Kk44KzDQor44OP44Oe44OOLOOCv+OCq+ODpuOCrQ0KK+ODj+ODpOOCq+ODryzjg6bjgq0NCivjg4/jg6Tjgrcs44OG44OE44KqDQor44OP44Ok44K3LOODiOODouODiuOCrA0KK+ODj+ODpOOCtyzjgrHjg7Pjgr/jg63jgqYNCivjg4/jg6ks44OB44Kr44KzDQor44OP44OpLOODpOOCueOCouOCrQ0KK+ODj+ODqeODgCzjg5/jgqgNCivjg5Ljgqjjgqvjgr8s44K144OI44KzDQor44OS44Ks44K1LOOCouODhOOCtw0KK+ODkuOCrOODnyzjgrvjgqTjgrgNCivjg5Ljgq3jg44s44OG44OE44K4DQor44OS44OALOOCv+OCq+OCtw0KK+ODkuODgOOCqyzjgrfjg7MNCivjg5Ljg4fjgrfjg54s44Of44Kt44KzDQor44K144Kr44KkLOOCuOODpeODs+ODpA0KK+ODkuODqeOCpCzjg4/jg6Tjg4gNCivjg5Ljg6njgqTjg68s44Ko44OE44KzDQor44OS44Op44K/LOODkuODh+OCrQ0KK+ODkuODqeODkOODpOOCtyzjg4rjgqrjg6bjgq0NCivjg5Ljg63jgrss44Ki44Ok44KzDQor44OV44Kr44KqLOODn+ODpuOCrQ0KK+ODleOCr+OCpCzjg5Ljg4fjg5LjgrMNCivjg5Xjgq/jgrbjgq0s44Of44Os44KkDQor44OV44Kv44OALOODqOOCpuODmOOCpA0KK+ODleOCr+ODgCzjg6Tjgrnjg5Ljg60NCivjg5Xjgq/jg4As44Oe44K144OrDQor44OV44Kv44OALOOCuOODpeODs+OCpOODgQ0KK+ODleOCr+ODj+ODqSzjg6bjgq3jgrMNCivjg5Xjgq/jg6Djg60s44OS44Ot44OV44OfDQor44OV44K444Km44OpLOOCouODpA0KK+ODleOCuOOCquOCqyzjgrPjgqbjgqTjg4Hjg63jgqYNCivjg5Xjgrjjgqrjgqss44Oe44OkDQor44OV44K444K/LOOCt+OCsuODqw0KK+ODleOCuOODouODiCzjg6bjgqvjg6oNCivjg5Xjgrjjg6Ljg4gs44Ko44Oq44KzDQor44OV44K444Ov44OpLOOCouOCreODkuODrQ0KK+ODleOCv+ODoOODrCzjgqTjgrXjgqoNCivjg5Xjg6vjgrXjg68s44Kk44OB44Ot44KmDQor44OV44Or44K/LOODkuOCteOCqg0KK+ODleODq+ODpCzjg5Ljg4fjgqoNCivjg5vjgrPjg6ks44Oe44OE44KqDQor44Ob44K344OOLOOCueODn+OCqg0KK+ODm+OCt+ODjizjgr/jg6Ljg4QNCivjg5vjgr3jg44s44OS44Ot44Of44OBDQor44Ob44OqLOODiOOCtw0KK+ODm+ODquOCpuODgSzjgqjjg4TjgqoNCivjg5vjg6rjgqrjgqss44Ok44K544KqDQor44Ob44Oq44Kw44OBLOOCuOODpeODs+OCpOODgQ0KK+ODm+ODs+ODnizjgqTjgrXjgqoNCivjg57jgqjjgqvjg68s44OI44Oi44Om44KtDQor44Oe44Ko44K444OeLOOCs+OCpuOCuA0KK+ODnuOCqOODgCzjg4jjgrfjg5Ljg60NCivjg57jgqjjg4/jg6ks44OI44K344OS44KzDQor44Oe44KtLOOCt+OCsuODjuODqg0KK+ODnuOCreODjizjgr/jgrHjgqoNCivjg57jgrnjgqQs44OS44Ot44K3DQor44Oe44K544OALOOCreODqOOCtw0KK+ODnuOCueODgCzjg57jgrXjg5/jg4QNCivjg57jg4TjgqQs44Kr44Oz44K4DQor44Kv44Oe44Ks44KkLOOCq+ODhOODkuOCsw0KK+OCq+ODjeOCsyzjg6rjg6fjgqbjgrgNCivjgrPjg5/jg6Qs44OO44Oc44OrDQor44Kz44Ks44Kk44OILOODn+ODgeOCsw0KK+OCq+ODs+ODkOODpOOCtyzjg4bjg6vjg57jgrUNCivjgq3jg47jgrfjgr8s44OP44Or44OS44KzDQor44Kt44Kv44OBLOODn+ODjuODqw0KK+OCs+ODnuODkCzjg6bjgr/jgqsNCivjgrPjgq/jg5Ys44Of44OE44KzDQor44Kz44OQ44Ok44K3LOODkuODreOCtw0KK+OCs+ODkOODpOOCtyzjg4bjg6vjgqoNCivjgq3jg4Tjgr/jgqss44OB44Ol44Km44Kx44OzDQor44Oe44OE44KqLOOCv+OCq+ODpuOCrQ0KK+OCq+ODr+OCpCzjg57jg4rjg5YNCivjgq/jg6rjg4/jg6ks44OI44Kq44OrDQor44Kr44OJ44OOLOODkuODreODqOOCtw0KK+OCq+ODn+OCr+ODnCzjgrHjg7PjgrgNCivjgqvjg6/jgrDjg4Es44K/44Kr44K3DQor44Kr44Oe44K/LOODnuOCteODouODiA0KK+OCq+ODs+ODgCzjgqvjgrrjg58NCivjgqvjg7Pjg4As44Of44OE44KqDQor44Kz44K344Og44OpLOODiOOCt+ODpuOCrQ0KK+ODnuODhOOCqizjgq3jg6jjgrcNCivjgq/jgrXjgq0s44K444Ol44Oz44K4DQor44Kr44Oi44OP44OpLOODnuOCteODleODnw0KK+OCq+OCteOCuOODnizjg4jjgrfjg57jgrUNCivjg57jg4Tjgq0s44Oo44K344Kr44K6DQor44Kr44Of44Kv44OpLOODhOODjeOCqg0KK+OCr+ODquODj+ODqSzjg47jg5bjgqLjgq0NCivjg4rjgqvjg4Es44Kt44Oo44K3DQor44Kr44Ks44OvLOOCt+ODs+OCpOODgQ0KK+OCs+ODkOODpOOCtyzjgrvjgqTjgrgNCivjgqvjg7Pjg44s44OI44K344KqDQor44Oe44OE44K344K/LOODleODn+OCqg0KK+OCq+OCt+ODr+ODgCzjgqrjgrXjg6ANCivjgrPjg7Pjg44s44Kr44K644KqDQor44Kz44K544KuLOODqOOCt+ODnw0KK+OCs+ODouODqizjg4jjgrfjg63jgqYNCivjgqvjg6/jg44s44Om44Kt44KqDQor44Kt44K/44Og44OpLOOCv+OCseODkuOCsw0KK+OCq+OCuOODnizjg4bjg4Tjg6QNCivjgqvjg4jjgqYs44OS44OH44KqDQor44Kz44Ok44OOLOODpuOCreOCqg0KK+OCq+ODhOODnuOCvyzjg4jjgrfjgqvjgroNCivjgq/jg6/jg4As44Kx44Kk44K4DQor44Kz44K/44OLLOODpOODnuODiA0KK+OCq+OCuOOCpuODgSzjg47jg5bjgrMNCivjgrPjg7Pjg4ks44K/44Kr44K3DQor44Kz44Oz44OJLOODqOOCt+OCq+OCug0KK+ODnuODhOODiuODnyzjgrfjg7Pjg6QNCivjgqvjgqzjg6Tjg54s44Oe44K144OP44OrDQor44Kr44ON44KzLOODpOOCueODkuOCsw0KK+OCs+ODpOODnizjg6Tjgrnjg4/jg6sNCivjgq3jg4Tjgqvjg68s44Kz44Km44K744KkDQor44Kr44K344Kv44OpLOOCq+ODs+OCuA0KK+OCr+ODreOCrSzjg6jjgrfjg6bjgq0NCivjgrPjgqTjgrrjg58s44K344Ol44Km44OY44KkDQor44Kv44K8LOODn+OCreOCqg0KK+OCq+ODr+OCq+ODnyzjgrHjgqTjgrMNCivjgqvjg58s44K144OB44KqDQor44Kt44Og44OpLOODiOOCquODqw0KK+ODnuODhOODjizjgqvjgrrjg5LjgrUNCivjgq3jgq/jgr8s44Kq44K144OgDQor44Kv44Oe44OALOODnuOCteOCouOCrQ0KK+OCr+ODi+ODj+ODqSzjgrfjg6Xjg7PjgqTjg4ENCivjgrPjgrjjg54s44Om44K/44KrDQor44Kv44Oq44OP44OpLOODnuOCteODjuODqg0KK+ODqOODjeOCr+ODqSzjg6jjgrfjgr/jg58NCivjgrPjg5Djg6Tjgrcs44OE44ON44KqDQor44Kz44OQ44Ok44K3LOODhuODhOOCqg0KK+OCs+OCuOODp+OCpizjgrXjg4rjgqgNCivjgq3jg6Djg6ks44K444Ol44Oz44Kk44OBDQor44Kz44OQ44Ok44K3LOODnuOCteOCouOCrQ0KK+OCs+ODs+ODiSzjg47jg5bjgqvjgroNCivjgqvjg6/jgqQs44OI44K344Kr44OEDQor44Kv44Oe44OP44OpLOOCseODs+OCuA0KK+OCreOCuyzjg5/jg4Hjg6TjgrkNCivjgqvjgrfjgq/jg54s44Kx44Oz44K+44KmDQor44Kr44KzLOOCuOODpeODs+OCpOODgQ0KK+OCpOOCt+OCrOOCpCzjg6jjgrfjgqLjgq0NCivjgqvjg5/jgrDjg4Es44K/44OA44K3DQor44Kv44Oi44OALOODiOOCt+OCqg0KK+OCs+ODnuODhCzjgrfjg6fjgqbjgqTjg4ENCivjgqvjg43jg4As44Of44OE44KqDQor44Kt44Kv44OBLOODqOOCt+ODkuOCtQ0KK+OCs+OCv+ODiyzjg6jjgrfjg6bjgq0NCivjgrPjg5Djg6Tjgrcs44Ok44K544OIDQor44Kr44Ov44Kw44OBLOODqOOCt+OCqg0KK+OCq+ODjeOCsyzjg5Ljg63jgqLjgq0NCivjgqvjg6Is44Oo44K344Ki44KtDQor44Kr44Ov44Og44OpLOOCqOOCpOOCuA0KK+OCr+ODnuODjizjg57jgrXjg6bjgq0NCivjgrPjg5Djg6Tjgrcs44Oo44K344KoDQor44Kt44Og44OpLOOCq+OCuuODkuOCtQ0KK+OCreOCt+ODouODiCzjg5Ljg63jg5LjgrUNCivjgq3jg6Djg6ks44Kt44K344KqDQor44Kr44Of44Kw44OBLOODhuODhOODpA0KK+OCreODoOODqSzjg57jgrXjg4/jg4ENCivjgrPjg5Djg6Tjgrcs44K344Ol44Oz44K4DQor44Kr44OJ44Kv44OpLOOCq+ODiuOCsw0KK+OCreOCv+ODoOODqSzjg5Ljg4fjg6gNCivjgqvjg4Tjgq0s44OS44K144K3DQor44Kr44Oz44K244KtLOODnuOCteODjuODlg0KK+OCq+OCv+OCruODqizjgqTjgq/jg58NCivjgrPjg5Djg6Tjgrcs44OO44OW44KzDQor44Kz44Oe44OE44K244KtLOOCs+OCpuOCvuOCpg0KK+OCreOCvyzjg5Ljg63jg47jg6oNCivjgqvjg4Tjg4/jg6ks44K344Ol44KmDQor44Kz44Kw44OsLOOCouOCreOCqA0KK+OCs+OCuOODnizjgqLjg4TjgrcNCivjgrPjg6Hjg4As44OS44K144K3DQor44Kz44OL44K3LOOCseODs+OCpOODgQ0KK+OCr+ODr+ODj+ODqSzjg6Tjgrnjg57jgrUNCivjgrPjg6Tjg54s44OS44OH44Ki44KtDQor44Oe44OE44Oi44OILOODjuODquODpuOCrQ0KK+OCq+OCuOODouODiCzjg6jjgrfjgqLjgq0NCivjgq/jg57jgrbjg68s44Kr44OE44OfDQor44Kt44Og44OpLOODiOOCt+OCqg0KK+OCs+ODkOOCt+OCrOODryzjg5Ljg4jjgrcNCivjgqvjg5/jg6Qs44Om44KmDQor44Oe44OE44Oi44OILOOCt+ODp+OCpuOCuA0KK+OCs+ODj+OCtyzjgqjjgqTjgr7jgqYNCivjgrPjg4Djg54s44K844Oz44Kk44OBDQor44Kr44Ov44Kr44OfLOOCq+OCuuODnw0KK+ODnuODhOODouODiCzjg4/jg6vjgqoNCivjgqvjgqTjg4ks44Of44ObDQor44Kt44Og44OpLOODiOOCt+OCqg0KK+OCr+OCtCzjgq3jg6jjg58NCivjg57jg4Tjg6Ljg4gs44Oo44K344Om44KtDQor44Oe44OE44Ok44OeLOODquODp+OCpuOCueOCsQ0KK+ODnuODq+ODpOODnizjgrXjg4HjgrMNCivjgrPjg7Pjg44s44Kt44Oo44K3DQor44Kv44Ot44KtLOOCuOODpeODsw0KK+OCs+ODn+ODpCzjg6rjg6fjgqbjgrMNCivjgq3jg6Djg6ks44OK44Kq44Om44KtDQor44Kt44OOLOODn+OCog0KK+OCs+ODnuODhCzjg6bjgq0NCivjgqvjg43jg4Hjgqss44Oq44On44Km44K544KxDQor44Kr44OK44K/44OLLOODquOCqA0KK+OCs+ODkOODpOOCtyzjg6jjgrfjg63jgqYNCivjgq3jgr/jg6Tjg54s44Kr44OK44KzDQor44Kr44K4LOODkuODreOCsw0KK+OCq+ODr+OCt+ODnizjg4rjgqrjgq0NCivjgq3jg6Djg6ks44Oe44Kt44KzDQor44Kz44OQ44OpLOOCv+OCr+ODng0KK+OCreOCv+OCrOODryzjg4rjgqrjgr/jgqsNCivjg57jg6vjg6Tjg54s44OK44Ob44KzDQor44Kr44Oi44OzLOODnuOCteOCtw0KK+ODn+OCpuODqSzjgr/jgqvjgrcNCivjg5/jgrfjg54s44Kr44OE44OS44OtDQor44Of44K544KuLOODiOODouOCouOCrQ0KK+ODn+OCuuOCvyzjgrjjg6Xjg7PjgrMNCivjg5/jgrrjg6Ljg4gs44OK44Or44KtDQor44Of44K+44Kw44OBLOODnuOCteOCsw0KK+ODn+OCuuOCqyzjg6bjgr/jgqsNCivjg5/jg4rjg58s44K/44Kx44OrDQor44Of44OK44Of44K/44OLLOODnuOCteODiA0KK+ODn+ODjeOCvyzjg6bjgq3jgrMNCivjg5/jg6TjgqQs44Kz44Km44K/DQor44Of44Ok44Kq44KrLOOCseODs+ODreOCpg0KK+ODn+ODpOOCtuOCrSzjg57jg6bjg58NCivjg5/jg6Tjgrbjgq0s44K444Ol44OqDQor44Of44Ok44OP44OpLOOCv+ODhOODkuOCsw0KK+ODn+ODqOOCtyzjgqLjgq3jg47jg5YNCivjg6Djg6njgqvjg58s44Oe44K144OS44OHDQor44Og44Op44KtLOOCouODhOOCsw0KK+ODoOODqeOCvyzjgrHjg7PjgrgNCivjg6Djg6njgr8s44Of44OB44OkDQor44Og44Op44K/LOODoeOCsOODnw0KK+ODoOODqeODpOODnizjg57jgrXjgrMNCivjg6Ljg4jjg44s44Ok44K544Oe44K1DQor44Oi44OqLOODiOOCt+ODpuOCrQ0KK+ODouODqizjg4rjgqoNCivjg6Ljg6rjgr8s44OS44OH44OI44OiDQor44Oi44Oq44K/LOODquOCqA0KK+ODouODquODpOODnizjgqLjg4TjgrcNCivjg6Ljg6rjg6Tjg54s44Kr44Kq44OqDQor44Ok44K244OvLOOCq+OCuuOCsw0KK+ODpOOCuOODnizjg4jjg6Ljg5Ljg60NCivjg6Tjg4rjgq7jg4As44Ko44Oq44KzDQor44Ok44Oe44Ks44K/LOOCseOCpOOCpOODgQ0KK+ODpOODnuOCq+ODryzjgrfjg7Pjg6QNCivjg6Tjg57jgrDjg4Es44K144OI44OfDQor44Ok44Oe44Kw44OBLOODpuOCrQ0KK+ODpOODnuOCsOODgSzjgr/jg4Djg6bjgq0NCivjg6Tjg57jgrXjgq0s44Oe44K144KtDQor44Ok44Oe44K244KtLOOCseODsw0KK+ODpOODnuOCt+OCvyzjgrfjg6Xjgq/jg5sNCivjg6Tjg57jg4As44Oo44K344Ki44KtDQor44Ok44Oe44OALOOCseODs+OCpOODgQ0KK+ODpOODnuODgCzjgrfjg6Xjg7MNCivjg6Tjg57jg4rjgqss44Oe44K144K3DQor44Ok44Oe44ONLOOCt+ODs+OCtA0KK+ODpOODnuODouODiCzjg6Tjgrnjg47jg6oNCivjg6Tjg57jg6Ljg4gs44Kr44K644OS44OtDQor44Ok44Oe44Oi44OILOODkuODh+ODpuOCrQ0KK+ODpuOCq+ODryzjgrXjg4jjgrcNCivjg6bjgrYs44Ki44Kt44KzDQor44Om44K/44OLLOODquOCqA0KK+ODpuOCv+ODiyzjg4DjgqTjgrnjgrENCivjg6jjgrQs44OI44Oi44OO44OqDQor44Oo44Kz44Oc44OqLOODnuOCteOCv+OCsQ0KK+ODqOOCt+OCquOCqyzjgr/jg4DjgqLjgq0NCivjg6jjgrfjgqvjg68s44OS44Ot44OfDQor44Oo44K344OALOODkuODreOCv+OCqw0KK+ODqOOCt+ODgCzjgq3jg6fjgqbjgrMNCivjg6jjgrfjg6Ljg4gs44Oi44OI44KqDQor44Oo44ON44OALOODpuODn+OCsw0KK+ODr+OCq+OCteODpCzjgrfjgrrjgqsNCivjg6/jgr/jg4rjg5ks44K444Ol44Oz44Kk44OB44OtDQor44Ov44K/44OK44OZLOODpOOCueODkuODrQ0KK+ODn+ODhOODpOODnizjg57jgrXjg58NCivjg5Ljg6njgqrjgqss44Oq44K1DQor44Kr44Oz44OOLOOCq+ODhOODiA0KK+ODr+OCsyzjg6rjgqgNCivjgqLjgqrjgq0s44Ov44K/44OrDQor44Ki44Kr44KqLOODnuOCteODjuODqg0KK+OCouOCq+OCrizjg6rjg6fjgqbjg5jjgqQNCivjgqLjgqvjgrcs44OS44Ot44KzDQor44Ki44Kr44OE44KrLOODpOOCueODpuOCrQ0KK+OCouOCq+ODj+ODjSzjg5Ljg63jgqLjgq0NCivjgqLjgqvjg5vjg6os44Om44Km44KzDQor44Ki44Kt44Oi44OILOODgeOCqA0KK+OCouOCreODpOODnizjg5/jg5sNCivjgqLjgrXjgqQs44Oe44K144Kr44K6DQor44Ki44K144OOLOODpOOCueODkuODrQ0KK+OCouOCteODkizjgqLjgrXjgrMNCivjgqLjgrXjg5ks44Kr44OoDQor44Ki44OP44Os44OzLOODgOOCpOOCueOCsQ0KK+OCouODmSzjg4jjgrfjg5LjgrMNCivjgqLjg5ks44Kr44Kq44OrDQor44Ki44OZLOODkuODreODleODnw0KK+OCouODnuODjizjg57jgrXjg58NCivjgqLjg6Hjg6Ljg6os44Ki44Oq44K1DQor44Ki44Op44KkLOODkuODh+OCqg0KK+OCouODqeOCpCzjgqjjg4TjgrMNCivjgqLjg6njgqQs44Kr44OE44OS44OtDQor44Ki44Op44K/44OLLOOCteODhOOCrQ0KK+OCouODquODiuOCqyzjg4jjg6Ljg5Ljg60NCivjgqTjgqTjgrQs44OO44Oq44Ki44KtDQor44Kk44Kk44OALOODnuODpuODnw0KK+OCpOOCseODgCzjg6jjgrfjgr/jgqsNCivjgqTjgrPjgqws44Ko44Of44KzDQor44Kk44K344KkLOOCq+OCquODqg0KK+OCpOOCt+OCquOCqyzjgr/jgqvjgrcNCivjgqTjgrfjgrbjgqss44Om44Kt44KoDQor44Kk44K344K444OeLOODn+OCqg0KK+OCpOOCt+ODgCzjg6bjgqQNCivjgqTjgrfjg4ks44Om44Kt44KzDQor44Kk44K344OOLOOCv+OCq+OCqg0KK+OCpOOCt+ODnuODluOCtyzjgqLjgq3jg5Ljg4gNCivjgqTjgrvjg6os44Kq44OI44OS44KzDQor44Kk44K944OZLOODj+ODq+OCqw0KK+OCpOOCv+ODiyzjgr/jgqvjgqLjgq0NCivjgqTjgrrjg44s44Of44OE44OS44OtDQor44Kk44OH44OOLOODqOOCpuODmOOCpA0KK+OCpOODiOOCpizjg6jjgqbjgrMNCivjgqTjg4jjgqYs44Of44OE44K/44KrDQor44Kk44OI44KmLOODqOOCt+OCouOCrQ0KK+OCpOODiOOCpizjg6bjgqvjg6oNCivjgqTjg4jjgqYs44Oe44OKDQor44Kk44OI44KmLOOCv+OCseOCtw0KK+OCpOODiOODpOODnizjgqLjg4TjgrcNCivjgqTjg4os44Ki44Kt44OpDQor44Kk44OK44K144KtLOODpOOCueODjuODqg0KK+OCpOODiuODkCzjg6jjgqbjgrnjgrENCivjgqTjg4rjg5As44K/44OA44K3DQor44Kk44OO44Km44KoLOOCv+OCseOCtw0KK+OCpOODjuOCpuOCqCzjg47jg5bjgr/jgqsNCivjgqTjg47jgqbjgqgs44Oe44Oq44KzDQor44Kk44OZLOOCreODp+OCpuOCsw0KK+OCpOODnuOCpCzjg6bjgq3jgqgNCivjgqTjg57jgqrjgqss44K344Ol44Km44OY44KkDQor44Kk44Oe44Og44OpLOODnuOCteOCtw0KK+OCpOODr+OCvyzjgr/jgrHjg5Ljg60NCivjgqTjg6/jgr8s44Oo44K344OS44OtDQor44Kk44Ov44K/LOOCquOCteODoA0KK+OCpOODr+ODnyzjg6bjgqbjgrMNCivjgqTjg6/jg6Ljg4gs44Kx44Oz44Kk44OB44OtDQor44Km44Ko44OALOODrOOCpOOCsw0KK+OCpuOCqOODjizjgrXjg6kNCivjgqbjgqjjg4/jg6ks44K/44Kr44OO44OqDQor44Km44Kr44KkLOODkuOCteODiuOCrA0KK+OCpuODgOOCrOODryzjg6bjgqbjgqTjg4ENCivjgqbjg4Hjg6Tjg54s44OS44Ot44Oe44K1DQor44Km44OE44OfLOODkuODreODpuOCrQ0KK+OCpuODhOODnyzjg57jg6rjgrMNCivjgqbjg44s44Oe44Kz44OIDQor44Ko44Ks44K344OpLOOCt+ODpeODs+OCueOCsQ0KK+OCqOODiOOCpizjg5Ljg63jgq0NCivjgqjjg4jjg58s44OS44OH44OfDQor44Ko44Oz44OJLOODoeOCsOODnw0KK+OCqOODs+ODiSzjg5Ljg63jgq0NCivjgqrjgqvjg4ks44K/44Kr44OS44K1DQor44Kq44Kq44Kv44OpLOODkuODreOCsw0KK+OCquOCquOCteOCqyzjgr/jg4bjgq0NCivjgqrjgqrjgrXjgqss44Kz44Km44K/44Ot44KmDQor44Kq44Kq44K144OvLOOCteODgQ0KK+OCquOCquOCueODnyzjgrXjg4jjgrMNCivjgqrjgr8s44OB44Ko44KzDQor44Kq44Kq44K/44OLLOODnuOCs+ODiA0KK+OCquOCquODi+OCtyzjg57jgrXjg5Ljg60NCivjgqrjgqrjg4vjgrcs44Of44OE44OrDQor44Kq44Kq44OL44K3LOODoOOCteOCtw0KK+OCquOCquODi+OCtyzjg57jgrXjgqoNCivjgqrjgqrjg44s44OK44Ob44KzDQor44Kq44Kq44OOLOODn+OCq+OCsw0KK+OCquODjizjg6jjgqbjgrMNCivjgqrjg57jg4Qs44Oo44Km44K544KxDQor44Kq44Og44OpLOODiOODouOCsw0KK+OCquOCquODpCzjg6bjgq3jgqgNCivjgqrjgqss44OO44Oq44OS44OIDQor44Kq44Kr44KkLOOCseODs+OCpOODgQ0KK+OCquOCq+OCpuODgSzjg4jjg6Ljg47jg6oNCivjgqrjgqvjg4As44Om44Km44KtDQor44Kq44Kr44OALOODnuODquOCsw0KK+OCquOCq+ODjizjg6Tjgrnjg5Xjg58NCivjgqrjgqvjg6Djg6ks44Ki44Kr44OqDQor44Kq44Kr44Oi44OILOOCveOCpg0KK+OCquOCrOODryzjgqTjgrrjg58NCivjgqrjgqzjg68s44Kz44K644KoDQor44Kq44Ks44OvLOOCreODs+ODpA0KK+OCquOCrOODryzjg5/jg4HjgrMNCivjgqrjgqzjg68s44K/44Kv44OkDQor44Kq44Ks44OvLOODpuODn+OCsw0KK+OCquOCruODjizjgqjjg6rjgrMNCivjgqrjgq8s44K144Ok44KrDQor44Kq44Kv44Kr44OvLOODkuODreOCouOCrQ0KK+OCquOCr+ODgCzjgqLjgq3jgqoNCivjgqrjgq/jg6Djg6ks44K144OI44KzDQor44Kq44K244KtLOOCv+OCq+ODpuOCrQ0KK+OCquOCuOODnizjgr/jgqvjgrcNCivjgqrjgrzjgq0s44Kx44Kk44Kk44OBDQor44Kq44OALOODkuODreODpuOCrQ0KK+OCquODgCzjgqLjg4TjgrMNCivjgqrjg4HjgqLjgqQs44OK44Kq44KtDQor44Kq44OI44Ks44OvLOODquODp+OCpuOCsw0KK+OCquODjizjg5/jgrrjgq0NCivjgqrjgqrjg4/jg6ks44Kx44Kk44KzDQor44Kr44Kk44K444OeLOOCseODs+OCvw0KK+OCq+OCrOODryzjg4jjg6Ljg5/jg4QNCivjgqvjgq3jgqos44K/44Kr44OkDQor44Kr44Kx44OSLOODiOODouODnw0KK+OCq+OCteOCpCzjg4rjgqrjgrMNCivjgqvjgrXjg58s44Oo44K344OV44OfDQor44Kr44K444K/LOOCseOCpOOCpOODgQ0KK+OCq+OCuOOCv+ODiyzjg57jgrXjg4rjg6oNCivjgqvjgrfjg54s44Ok44K544OS44OtDQor44Kr44K344OeLOODpuOCpuOCsw0KK+OCq+OCuOODouODiCzjgqLjg6TjgrMNCivjgqvjgrnjgqws44K144OK44KzDQor44Kr44K7LOODrOOCpOOCsw0KK+OCq+OCv+OCruODqizjgqvjgrrjgrfjgrINCivjgqvjgr/jg6Tjg54s44Oq44On44Km44KzDQor44Kr44K/44Ok44OeLOODpuOCpuOCuA0KK+OCq+ODiOOCpizjg5Ljg4jjgrcNCivjgqvjg4jjgqYs44Kv44OL44Ki44KtDQor44Kr44OI44KmLOOCseODs+OCpOODgeODrQ0KK+OCq+ODiuOCtuODryzjg5Ljg63jgqvjgroNCivjgqvjg43jg5/jg4Qs44OI44Oi44OO44OqDQor44Kr44OO44KmLOODpuOCreOCqA0KK+OCq+ODnuOCvyzjg5Ljg63jgr/jgqsNCivjgqvjg5/jgrbjgq0s44Oe44K144OI44K3DQor44Kr44OfLOODqOOCpuOCpOODgQ0KK+OCq+ODoeOCv+OCqyzjgr/jgqTjgrnjgrENCivjgqvjg6Is44Kx44Oz44OkDQor44Kr44Ov44KkLOODiOODouOCq+OCug0KK+OCq+ODr+OCpCzjgrjjg6Xjg6oNCivjgqvjg6/jgqvjg58s44K/44Kr44K3DQor44Kr44Ov44Kr44OfLOODn+OCqg0KK+OCq+ODr+OCsOODgSzjgqLjg6bjg58NCivjgqvjg6/jgrDjg4Es44Kr44K644OS44OHDQor44Kr44Ov44Kw44OBLOOCteODiOOCtw0KK+OCq+ODr+OCteOCrSzjgrjjg7MNCivjgqvjg6/jgrXjgq0s44OK44Kq44KtDQor44Kr44Ov44OK44OfLOOCouOCreOCsw0KK+OCq+ODr+ODjSzjgqvjg4rjgrMNCivjgqvjg6/jg5Djgr8s44Ki44Om44OfDQor44Kr44Ov44Og44OpLOODouOCpg0KK+OCq+ODr+ODouODiCzjg6bjgqYNCivjgqvjg7Pjg4As44Of44OJ44OqDQor44Kr44Oz44OALOODiuOCquOCtw0KK+OCq+ODs+ODjizjg57jgrXjgrMNCivjgq3jgrfjg6Ljg4gs44Kx44Oz44K/44Ot44KmDQor44Kt44K/44Ks44OvLOOCv+OCseOCtw0KK+OCreOCv+ODj+ODqSzjg4jjg6Ljg4/jg6sNCivjgq3jgr/jg6Djg6ks44K344On44KmDQor44Kt44K/44Og44OpLOOCt+ODs+OCtA0KK+OCreODjOODpCzjg4jjgrfjg58NCivjgq3jg47jgrfjgr8s44OG44OEDQor44Kt44OP44OpLOOCv+ODhOODpA0KK+OCreODoOODqSzjg6jjgrfjgqvjgroNCivjgq3jg6Djg6ks44Oe44K144OS44OtDQor44Kt44Og44OpLOOCouOCreODqOOCtw0KK+OCreODoOODqSzjgrjjg6Xjg7MNCivjgq3jg6jjgrfjg54s44OP44Or44OfDQor44Kt44Oo44K644KrLOODpuOCrQ0KK+OCreODqSzjgr/jgqvjgrcNCivjgq3jg6rjgrXjgrMs44OG44OD44Oa44KkDQor44Kt44OzLOOCteODpuODqg0KK+OCreODsyzjg4rjgqrjgrMNCivjgq/jg4vjgqjjg4As44Kr44K644Ki44KtDQor44Kv44OcLOOCtOOCpg0KK+OCr+ODnuODjizjgr/jgrHjg4gNCivjgq/jg6njgr8s44Ki44Kt44OS44OtDQor44Kv44Op44OP44K3LOOCv+OCq+OCouOCrQ0KK+OCr+ODrCzjg4jjgqrjg6sNCivjgq/jg63jgqQs44Oo44K344K/44KrDQor44Kv44Ot44KtLOODpuOCpuOCsw0KK+OCr+ODr+ODjizjg5Ljg63jgr/jgqsNCivjgrTjgqYs44K144KoDQor44K044Km44OALOOCv+OCseODkuODrQ0KK+OCs+OCrCzjgrHjgqQNCivjgrPjgq/jgrfjg6fjgqYs44OE44Oo44K3DQor44Kz44K144KrLOOCt+ODpeOCpuOCpOODgeODreOCpg0KK+OCs+OCuOODnizjg6rjg6fjgqbjgrnjgrENCivjgrPjgr7jg44s44Ki44Kk44OvDQor44Kz44OA44OeLOOCpOOCr+OCqg0KK+OCs+ODhuODqSzjgq3jg5/jg5Ljg60NCivjgrPjg4fjg6ks44K344Oz44K/44Ot44KmDQor44K044OI44KmLOOCv+ODgOODjuODqg0KK+OCtOODiOOCpizjg5Ljg63jgrMNCivjgrPjg4vjgrcs44Of44K144KtDQor44Kz44OL44K3LOODqOOCpuOCsw0KK+OCs+ODi+OCtyzjg4jjg6Ljg6QNCivjgrPjg5Djg6Tjgrcs44OK44OE44KzDQor44Kz44OQ44Ok44K3LOOCs+OCpuOCuA0KK+OCs+ODkOODpOOCtyzjg4HjgqgNCivjgrPjg5Djg6Tjgrcs44OE44Oo44K3DQor44Kz44OW44K7LOODkuODh+ODpuOCrQ0KK+OCs+ODnuOCrSzjg5Ljg63jg4rjgqoNCivjgrPjg57jgrbjg68s44K/44Kr44Oe44K1DQor44Kz44Oe44OE44OQ44OpLOODiOODouODkuOCtQ0KK+OCs+ODpOODnizjgqTjg4Hjg63jgqYNCivjgrPjg7Pjg4ks44OS44Ot44KzDQor44K144Kk44KtLOOCq+OCquODqw0KK+OCteOCpCzjgqvjgrrjg6QNCivjgrXjgqTjg4jjgqYs44Kt44On44Km44KzDQor44K144Kk44OI44KmLOOCs+OCpuOCpOODgQ0KK+OCteOCpOODiOOCpizjg4bjg6vjg5LjgrUNCivjgrXjgqTjg4jjgqYs44OP44K444OhDQor44K144Kk44OI44KmLOODkuODreODnw0KK+OCteOCpOODiOOCpizjg5Xjg5/jgrMNCivjgrXjgqTjg4jjgqYs44OS44OI44K3DQor44K144Kk44OI44KmLOODnuOCreOCsw0KK+OCteOCq+OCpCzjgr/jgqvjg6bjgq0NCivjgrXjgqvjg58s44K/44Kr44K3DQor44K144Kr44Oi44OILOOCs+OCpuOCuA0KK+OCteOCq+ODouODiCzjg5Ljg4fjgq0NCivjgrXjgqvjg6Ljg4gs44Oe44K144Oo44K3DQor44K144Kr44Oi44OILOODiuODiuOCsw0KK+OCteOCq+ODouODiCzjg6jjgqbjgqTjg4Hjg63jgqYNCivjgrXjgq/jg6njgqQs44K144OA44Oo44K3DQor44K144Kv44Op44KuLOODiuODm+OCsw0KK+OCteOCteOCrSzjg57jgrXjgq0NCivjgrXjgrXjgq0s44Om44Of44KoDQor44K144OI44KmLOODleOCr+OCv+ODreOCpg0KK+OCteODiOOCpizjgrfjg6XjgqbjgrXjgq8NCivjgrXjg4jjgqYs44K/44Kr44K3DQor44K144OI44KmLOOCouOCrQ0KK+OCteODiOOCpizjgrHjg7PjgqTjg4Hjg60NCivjgrXjg4jjgqYs44Kr44K644Of44OBDQor44K144OI44KmLOODpuODnw0KK+OCteODiOOCpizjg6rjg6fjgqbjgrnjgrENCivjgrXjg44s44OI44Kq44OrDQor44K144OOLOODquODp+OCpuOCueOCsQ0KK+OCteODr+OCteOCrSzjgr/jgqvjgrcNCivjgrXjg6/jg4As44OS44Ot44KzDQor44K144Oz44Oa44KkLOOCteODiOODqw0KK+OCt+OCquOCuuOCqyzjgqLjg4TjgrcNCivjgrfjg44s44Kr44K644OO44OqDQor44K344OQ44K/LOOCq+OCuuOCv+OCqw0KK+OCt+ODnizjgrjjg6Xjg7MNCivjgrfjg57jg44s44OI44K344Ki44KtDQor44K344Of44K6LOODqOOCt+OCsw0KK+OCt+ODn+OCuizjg57jg58NCivjgrfjg6Ljgqvjg68s44Oo44K344Kq44OfDQor44K344Oi44Og44OpLOOCqOOCpOODlg0KK+OCt+ODpeOCr+ODqizjg57jg4rjg58NCivjgrfjg6fjgqbjgrjjg54s44K/44OE44KqDQor44K344On44Km44OALOOCr+ODnw0KK+OCt+ODqeOCpOOCtyzjg47jg6rjgqvjgroNCivjgrfjg6njgqvjgr8s44K444Ol44OzDQor44K344Op44K144KtLOODouODouOCsw0KK+OCt+ODreOCvyzjg57jgrXjg5Ljg60NCivjgrjjg7PjgrDjgqbjgrgs44K344Ky44Kr44K6DQor44K344Oz44K/44OLLOOCseODs+OCvw0KK+OCt+ODs+ODnCzjg47jg5bjg6bjgq0NCivjgrjjg7Pjg5ws44Oi44OI44OP44OrDQor44K344Oz44Og44OpLOODkuODh+ODiOOCtw0KK+OCueOCrOOCpCzjg4Tjg4jjg6ANCivjgrnjgq7jg6Ljg4gs44Of44ObDQor44K544Ku44Oi44OqLOODkuODreOCsw0KK+OCueOCruODpOODnizjgr/jgqvjg40NCivjgrnjgq7jg6Tjg54s44K444Ol44OzDQor44K544Ku44Ok44OeLOOCv+OCr+ODng0KK+OCueOCuuOCrSzjgq3jgq/jgrMNCivjgrvjgqzjg68s44K444Ol44OzDQor44K744KtLOOCseODs+OCuA0KK+OCu+OCreODjSzjg5Ljg63jgrcNCivjgrvjgq3jg6Ljg4gs44Kr44OE44Ki44KtDQor44K744OILOOCouODhOOCtw0KK+OCu+ODqSzjgqvjgrrjg6jjgrcNCivjgr3jg4fjg6Tjg54s44K944Op44KzDQor44K944OO44KkLOODhuODq+OCqA0KK+OCv+OCpOODqSzjg57jgrXjgrcNCivjgr/jgqvjgq0s44Of44OB44OrDQor44K/44Kr44OP44K3LOODrOOCpA0KK+OCv+OCq+ODj+OCtyzjg5/jg43jgrMNCivjgr/jgqvjg4/jgrcs44OI44Oi44KqDQor44K/44Kr44OP44OeLOOCs+OCpuOCrQ0KK+OCv+OCq+ODn+ODpCzjg4Hjg4/jg6sNCivjgr/jgqvjg6Tjg4rjgq4s44Kr44K644OS44KzDQor44K/44Kr44Ok44OeLOOCteODiOOCtw0KK+OCv+OCsOODgSzjg6/jgr/jg6sNCivjgr/jgrHjgqbjg4Es44Ki44OE44K3DQor44K/44Kx44K244KtLOODnuODpuOCsw0KK+OCv+OCseOCt+OCvyzjgrXjg4jjg58NCivjgr/jgrHjg6Ljg4gs44OS44Ot44OI44OiDQor44K/44OALOOCouODhOOCsw0KK+OCv+ODgeOCq+ODryzjg57jgrPjg4gNCivjgr/jg4Hjg5Djg4os44OK44Kq44OIDQor44K/44OE44Ks44OvLOODiOODouOCsw0KK+OCv+ODiuOCqyzjg6Tjgrnjg47jg6oNCivjgr/jg4rjgqss44Ki44Kt44OoDQor44K/44OK44KrLOODnuOCteOCv+OCqw0KK+OCv+ODiuOCqyzjgrPjgqbjgrnjgrENCivjgr/jg4rjgqss44K144OB44KoDQor44K/44OK44KrLOOCt+ODp+OCpuODmOOCpA0KK+OCv+ODiuODmSzjg47jg6rjgrMNCivjgr/jg4vjgrDjg4Es44K/44Kx44K3DQor44K/44OL44Ov44KtLOODkuODreODleODnw0KK+OCv+ODkOOCvyzjg6jjgrfjg5LjgrUNCivjgr/jg4/jg6ks44Kx44Oz44K4DQor44K/44Oe44KtLOODiuOCquOCsw0KK+OCv+ODnuODoOODqSzjg57jgrPjg4gNCivjgr/jg6vjg58s44OS44Ot44OfDQor44K/44Oz44OQ44OpLOODquODp+OCpuOCsw0KK+ODgeOCq+ODhCzjg4bjg4Tjg5LjgrMNCivjg4Hjg5As44Kr44Ob44OqDQor44OB44On44KmLOODquODp+OCpuOCvw0KK+ODhOOCq+ODgCzjg4bjg4Tjg6QNCivjg4Tjgqvjg6Ljg4gs44K144OB44KrDQor44OE44K444Oi44OILOODn+OCrQ0KK+ODhOODgeODgCzjgrHjgqTjgrMNCivjg4Tjg4Hjg6Qs44K/44Kr44Ki44KtDQor44OE44OB44OkLOODgeOCq+ODqQ0KK+ODhOODhOODnyzjgrXjg4jjgrcNCivjg4Tjg5zjgq/jg6ks44K/44Kv44OkDQor44OE44Og44OpLOODiOODouOCqA0KK+ODhuOCt+ODnizjgqLjgq3jgrMNCivjg4bjg6njgrXjgq0s44Oe44K144OS44OIDQor44OG44Op44K144KtLOOCr+ODnw0KK+ODhuODqeODgCzjgr/jgrHjg4/jg6sNCivjg4njgqQs44OI44Oi44KzDQor44OJ44KkLOODjuODluOCv+OCqw0KK+ODiOOCpizjg5Ljg63jgrMNCivjg4jjgq3jgr8s44K344Oz44Kk44OB44Ot44KmDQor44OI44Kt44OILOODquODp+OCpuOCueOCsQ0KK+ODiOOCr+ODgCzjgqjjg58NCivjg4jjgrfjgrrjg58s44Oe44ObDQor44OI44OALOOCt+ODpeODs+OCueOCsQ0KK+ODiOODqOODgCzjg5Ljg63jgqLjgq0NCivjg4rjgqTjg4jjgqYs44Oq44On44Km44K/DQor44OK44Kr44KkLOODnuOCteODiOOCtw0KK+ODiuOCq+OCqizjgqLjgq3jg5LjgrMNCivjg4rjgqzjgqos44Ko44Oq44KzDQor44OK44Kr44Ks44OvLOODiOODouODnw0KK+ODiuOCrOOCteOCqyzjg5/jg4HjgrMNCivjg4rjgqvjgrXjgqss44Ok44K544OS44OtDQor44OK44Ks44K144KtLOODpuOCpuOCpOODgeODrQ0KK+ODiuOCq+OCtuODryzjg6bjgqbjg5jjgqQNCivjg4rjgqvjgrbjg68s44Oo44Km44KzDQor44OK44Kr44K344OeLOODpuOCpuODpA0KK+ODiuOCq+OCuOODnizjgqjjg5/jgrMNCivjg4rjgqvjgrfjg54s44Ki44Kt44OS44OtDQor44OK44Kr44K444OeLOOCt+ODpeOCpuOCv+ODreOCpg0KK+ODiuOCq+OCuOODnizjg6rjg6fjgqbjgrnjgrENCivjg4rjgqvjg4As44Kr44Oo44KzDQor44OK44Kr44OALOOCouODpOOCsw0KK+ODiuOCrOODhOOCqyzjgqTjgrXjgqoNCivjg4rjgqvjg4gs44K344Ol44Km44K4DQor44OK44Kr44OL44K3LOODn+ODieODqg0KK+ODiuOCq+ODi+OCtyzjgrnjgrnjg6ANCivjg4rjgqvjg4vjgrcs44Kk44K/44OrDQor44OK44Ks44Oe44OELOODnuOCteODkuODrQ0KK+ODiuOCq+ODoOODqSzjgrfjgrLjg4jjgrcNCivjg4rjgqvjg6Djg6ks44Kt44On44Km44KzDQor44OK44Kr44Og44OpLOOCouODpOOCsw0KK+ODiuOCq+ODoOODqSzjg57jg6YNCivjg4rjgqvjg6Djg6ks44Kx44Kk44KzDQor44OK44Kr44Og44OpLOODiuOCquOCsw0KK+ODiuOCq+ODoOODqSzjg5Ljg63jgqvjgroNCivjg4rjgqvjg6Djg6ks44K144Ok44KzDQor44OK44Kr44Oi44OqLOODhuODhOODpA0KK+ODiuOCq+ODpCzjg6bjgqbjgrgNCivjg4rjgqvjg6Tjg54s44K/44Kx44K3DQor44OK44K5LOOCs+OCpuOCuA0KK+ODiuODquODiOODnyzjgrfjg7Pjgr/jg63jgqYNCivjg4rjg7Pjg5Ys44OI44Oi44OkDQor44OL44Kk44OfLOODpOOCueOCv+OCqw0KK+ODi+OCt+OCq+ODryzjgr3jg47jgrMNCivjg4vjgrfjg44s44Om44KrDQor44OL44K344Ok44OeLOOCv+OCq+ODkuODrQ0KK+ODjOOCq+ODgCzjg6jjgrfjgrMNCivjg4zjg57jgr8s44Om44Km44Kk44OBDQor44OM44Oe44K/LOOCteODiOOCtw0KK+ODjuOCrOODnyzjgrXjg4jjgrcNCivjg47jgq4s44Ki44Ok44KzDQor44OO44Kv44KqLOOCq+OCquODqg0KK+ODjuOCsOODgSzjgr/jgqvjg6bjgq0NCivjg47jgrbjgq0s44OK44OE44ONDQor44OO44K4LOODpuOCrQ0KK+ODjuODnizjg6zjgqTjgrMNCivjg47jg6Djg6ks44Oe44K144KqDQor44OO44Og44OpLOODpuOCpuOCpOODgQ0KK+ODkOOCs+OCtyzjgrfjg7PjgrQNCivjg4/jgrfjg6Ljg4gs44OK44Kq44KzDQor44OP44K544OM44OeLOODgeOCqA0KK+ODj+OCuyzjg6jjgqbjgqTjg4ENCivjg4/jgrvjgqzjg68s44OS44Ot44K3DQor44OP44K/44Ks44OvLOOCuOODpeODs+OCsw0KK+ODj+OCv+OCseODpOODnizjg6bjgqbjgrMNCivjg4/jgr/jg44s44Oo44Km44KzDQor44OP44OK44KkLOODquOCqw0KK+ODj+ODnuOCteOCrSzjg57jgrPjg4gNCivjg4/jg57jg4As44OS44Ot44K/44KrDQor44OP44Oe44OHLOOCv+OCq+OCtw0KK+ODj+ODpOOCq+ODryzjgqLjgq0NCivjg4/jg6Tjgrcs44Ki44OkDQor44OP44Ok44K3LOOCteODiOOCsw0KK+ODj+ODpOOCtyzjgrXjg4jjgrcNCivjg4/jg6Tjgrcs44K444Ol44OzDQor44OP44Ok44K3LOODqOOCpuOCsw0KK+ODj+ODpOOCtyzjgrnjgrnjg6ANCivjg4/jg6ks44OI44Oi44OS44K1DQor44OP44Op44K344OKLOODjuODluOCrQ0KK+ODj+ODqeODgCzjgqLjg4TjgrcNCivjg4/jg6njg4As44Of44OJ44OqDQor44OP44Or44OKLOOCt+ODpeOCpuOCueOCsQ0KK+ODkuOCreOCvyzjg5Ljg4fjg4gNCivjg5Ljg4DjgqQs44Oe44Om44OfDQor44OS44Op44KkLOOCreODp+OCpuOCsw0KK+ODkuODqeOCpCzjg6bjgqbjgrnjgrENCivjg5Ljg6njgqQs44Ko44Oq44KzDQor44OS44Op44Kk44OvLOOCr+ODn+OCsw0KK+ODkuODqeOCqizjg5Ljg4fjgqvjgroNCivjg5Ljg6njgqvjg68s44Oe44KtDQor44OS44Op44K/LOODqOOCt+OCouOCrQ0KK+ODkuODqeODnuODhCzjgr/jgqvjgqoNCivjg5Ljg63jgqgs44Ki44OE44K3DQor44OS44Ot44K7LOODkuODh+ODjuODqg0KK+ODleOCq+OCtuODryzjg5Ljg4fjg6bjgq0NCivjg5Xjgqvjg5vjg6os44OO44Oq44OS44OtDQor44OV44Kv44K344OeLOODnuOCreOCqg0KK+ODleOCr+ODgCzjg5Ljg63jg6bjgq0NCivjg5Xjgq/jg4As44OS44Ot44OV44OfDQor44OV44Kv44OALOOCteODpOOCqw0KK+ODleOCuOOCpCzjg6rjgqjjgrMNCivjg5Xjgrjjgqvjg68s44Kr44K644OfDQor44OV44K444K/LOOCseODs+OCuA0KK+ODleOCuOOCvyzjg57jgrXjgqoNCivjg5Xjgrjjgr8s44Oo44K344Ot44KmDQor44OV44K444Og44OpLOODiOODouODpuOCrQ0KK+ODleOCuOODoOODqSzjgqLjgq3jgrMNCivjg5Xjgrjjg6Ljg4gs44K344On44Km44OY44KkDQor44OV44K444Oi44OILOODquODpeOCpuODmOOCpA0KK+ODleOCuOODr+ODqSzjgrHjgqTjgrXjgq8NCivjg5Xjgrjjg6/jg6ks44K144OI44K3DQor44OV44K/44Kr44K/LOOCuOODreOCpg0KK+ODleODiuOCpCzjgrXjg4HjgrMNCivjg5Xjg6vjgqvjg68s44OS44Ot44KzDQor44OV44Or44Kr44OvLOOCuOODpeODs+OCpOODgQ0KK+ODleODq+ODnuOCvyzjg4jjg6Ljg6QNCivjg5vjgrcs44Om44KtDQor44Ob44K344Km44OpLOODkuODreOCtw0KK+ODm+OCt+ODrSzjgqTjg4Tjg58NCivjg5vjgr3jg4As44K344Ol44Oz44K0DQor44Ob44OqLOODjuODluODkuODhw0KK+ODm+ODqizjg6bjgq0NCivjg5vjg6rjgqgs44OO44OW44OIDQor44Ob44Oq44Kw44OBLOODjuOCvuODoA0KK+ODm+ODs+ODiizjgqvjgqrjg6sNCivjg5vjg7Pjg5ws44OS44Ot44Om44KtDQor44Oe44Ko44Kr44OvLOODn+ODrw0KK+ODnuOCqOODgCzjgrPjgrnjgrENCivjg57jgqjjg4As44K/44Kr44K3DQor44Oe44Ko44OALOOCqOODhOOCsw0KK+ODnuOCreOCpuODgSzjgrHjgqTjgrgNCivjg57jgq3jg44s44K344On44Km44KzDQor44Oe44Kt44Oi44OILOODiOODouODjuODqg0KK+ODnuOCteODiOOCpuODnyzjg57jgqTjgrMNCivjg57jgrnjgqQs44Oo44Km44K544KxDQor44Oe44K544OALOODnuOCteODpuOCrQ0KK+ODnuOCueODgCzjg5/jg5sNCivjg57jg4TjgqQs44Of44KqDQor44Oe44OE44Km44OpLOOCq+OCuuODkuOCtQ0KK+ODnuODhOOCquOCqyzjgqLjgq3jg5Ljg60NCivjg57jg4Tjgqrjgqss44OI44Oi44KzDQor44Oe44OE44Kq44KrLOODnuODpuODnw0KK+ODnuODhOOCquOCqyzjg4DjgqTjgrnjgrENCivjg57jg4TjgqvjgrIs44OS44K144KqDQor44Oe44OE44K344K/LOOCteODiOOCtw0KK+ODnuODhOODiuOCrCzjg6/jgr/jg6sNCivjg57jg4Tjg5Djg6ks44OO44K+44OfDQor44Oe44OE44OQ44OpLOOCouOCreOCsw0KK+ODnuODhOODouODiCzjg5Ljg63jg5/jg4QNCivjg57jg4Tjg6Ljg4gs44Ob44Kv44OIDQor44Oe44OE44Ok44OeLOODnuOCpOOCsw0KK+ODn+OCpuODqSzjg6rjg6fjgqYNCivjg5/jgqbjg6ks44Ki44OE44K3DQor44Of44Km44OpLOOCouODhOOCtw0KK+ODn+OCpuODqSzjgq3jg6jjg57jgrUNCivjg5/jgq0s44Om44Km44K4DQor44Of44K644Kr44OvLOODkuODreODpuOCrQ0KK+ODn+OCuuOCv+ODiyzjg6bjgq3jgrMNCivjg5/jgrrjg44s44Om44Km44K744KkDQor44Of44K944OOLOOCv+ODgOODnuOCtQ0KK+ODn+OCvuODj+OCvyzjg4HjgqgNCivjg5/jg4rjgqzjg68s44Oe44OB44KzDQor44Of44OK44Ks44OvLOOCouODpA0KK+ODn+ODiuODnyzjg5Ljg63jg6bjgq0NCivjg5/jg4rjg58s44K/44Kr44K3DQor44Of44OK44Of44Kr44K/LOOCv+OCq+ODjuODlg0KK+ODn+ODiuODn+ODoOODqSzjg5Ljg4fjgq0NCivjg5/jg4/jg6ks44Oe44K144KtDQor44Of44Og44OpLOODn+OCreOCsw0KK+ODn+ODpOOCpCzjg47jg5bjgqLjgq0NCivjg5/jg6Tjgrbjgq0s44Ki44OE44K3DQor44Of44Ok44K244OvLOODiuOCquODpA0KK+ODn+ODpOOCtuODryzjgqLjgq3jg6kNCivjg5/jg6Tjg6Djg6ks44Kr44Kq44OqDQor44Of44Ok44Og44OpLOOCouODpA0KK+ODn+ODpOODouODiCzjg6bjgqbjg5jjgqQNCivjg5/jg6Tjg6Ljg4gs44Oe44K144OkDQor44Of44Oo44K3LOODhOOCq+OCtQ0KK+ODoOODjeODoOODqSzjg4Hjgqvjg5Xjg58NCivjg6Djg6njgqvjgr8s44OI44Oi44Om44KtDQor44Og44Op44K644OfLOODn+ODhOODjuODqg0KK+ODoOODqeOCvyzjgq/jg5/jgrMNCivjg6Djg6njgr8s44Oe44KtDQor44Og44Op44Oi44OILOOCq+OCuuODjuODlg0KK+ODoOODqeODpOODnizjg4rjgqoNCivjg6Ljg6os44OK44Kq44KzDQor44Oi44OqLOOCq+ODhOODnuOCtQ0KK+ODouODqizjgqLjg4Tjg5LjgrMNCivjg6Ljg6os44Kv44Of44KzDQor44Oi44OqLOODn+OCrQ0KK+ODouODquOCpuODgSzjg47jg6rjgrMNCivjg6Ljg6rjgrfjgr8s44Om44Km44Kk44OB44OtDQor44Oi44Oq44K/44OLLOOCq+OCuuODiA0KK+ODouODquODouODiCzjgrLjg7MNCivjg6Ljg6rjg6Tjg54s44Kz44Km44K4DQor44Oi44Ot44KoLOODkuODreOCq+OCug0KK+ODpOOCtCzjg5/jg47jg6sNCivjg6Tjgrnjgqzjgq0s44OI44Oi44OV44OfDQor44Ok44K544OALOOCouODpOOCsw0KK+ODpOOCueODouODiCzjgqLjg4TjgrcNCivjg6Tjg4Tjg4rjg58s44Ki44Kt44KqDQor44Ok44OK44Ku44K144OvLOOCseOCpOOCueOCsQ0KK+ODpOODiuOCruODj+ODqSzjgrfjg7PjgrnjgrENCivjg6Tjg5bjg4rjgqss44K/44Kk44K3DQor44Ok44Oe44Km44OBLOOCv+OCq+ODpuOCrQ0KK+ODpOODnuOCquOCqyzjgr/jg4DjgrcNCivjg6Tjg57jgqrjgqss44OK44Kq44OkDQor44Ok44Oe44Kq44KtLOODkuODreODpuOCrQ0KK+ODpOODnuOCrOOCvyzjg57jgrPjg4gNCivjg6Tjg57jgrDjg4Es44K344Oz44Kk44OBDQor44Ok44Oe44Kw44OBLOODkuODreOCsw0KK+ODpOODnuOCt+OCvyzjg57jg4njgqsNCivjg6Tjg57jgrfjgr8s44OB44KoDQor44Ok44Oe44OALOODgeOCqA0KK+ODpOODnuODgCzjgrjjg6Xjg7PjgrgNCivjg6Tjg57jg4As44OO44OW44KzDQor44Ok44Oe44OALOOCouODpA0KK+ODpOODnuODgCzjg57jgq3jgrMNCivjg6Tjg57jg4rjgqss44Oh44Kw44OfDQor44Ok44Oe44Og44OpLOOCpOODg+OCu+OCpA0KK+ODpOODnuODoOODrSzjgqvjg4rjgrMNCivjg6Tjg57jg6Ljg4gs44Kz44Km44OY44KkDQor44Ok44Oe44Oi44OILOODhuODq+ODkuOCsw0KK+ODpOODnuODouODiCzjg57jgrXjg6bjgq0NCivjg6Tjg57jg6Ljg4gs44Of44OE44Oo44K3DQor44Ok44Oe44Oi44OILOODn+ODjuODqw0KK+ODpOODnuODouODiCzjgrfjg47jg5YNCivjg6Tjg57jg6Ljg4gs44OI44Kq44OrDQor44Ok44Oe44Oi44OILOOCouOCueOCqw0KK+ODpOODnuODouODiCzjg6/jgr/jg6sNCivjg6bjgqLjgrUs44Kv44Of44KzDQor44Om44KtLOODiuOCquOCsw0KK+ODpuODquODpOODnizjg47jg6rjg5Ljg60NCivjg6jjgrPjgr8s44Ki44OE44OS44K1DQor44Oo44Kz44OP44OeLOODiOOCt+ODpuOCrQ0KK+ODqOOCs+ODpOODnizjgqLjg6bjg58NCivjg6jjgrPjg6Tjg54s44Kr44K644KtDQor44Oo44K344Kq44KrLOOCreODp+OCpuOCsw0KK+ODqOOCt+OCquOCqyzjg57jgqTjgrMNCivjg6jjgrfjgqrjgqss44Oe44Oq44KzDQor44Oo44K344OALOOCv+OCq+ODiOOCtw0KK+ODqOOCt+ODgCzjg4rjgqrjgrMNCivjg6jjgrfjg4As44OK44Kq44KzDQor44Oo44K344OALOODnuODquOCqA0KK+ODqOOCt+ODgCzjg6bjgqbjgrgNCivjg6jjgrfjg4As44Om44Km44K4DQor44Oo44K344OOLOODpuOCqw0KK+ODqOOCt+ODkuODrSzjg6bjg58NCivjg6jjgrfjg57jg4Qs44OI44Kq44OrDQor44Oo44K344Og44OpLOODgOOCpOOCueOCsQ0KK+ODqOOCt+ODoOODqSzjgqvjgrrjg5Xjg58NCivjg6/jgqvjg57jg4Qs44OS44Ot44OkDQor44Ov44Kt44K/LOOCq+OCuuOCqg0KK+ODr+OCreOCvyzjgrHjg7Pjgrfjg63jgqYNCivjg6/jgrfjgqos44Oo44K344Ki44KtDQor44Ov44K344K244OvLOODgeOCouOCrQ0KK+ODr+ODgCzjgqTjgrXjg6ANCivjg6/jg4As44OI44K344KqDQor44Ov44OALOOCpOOCteOCqg0KK+ODr+ODgCzjgr/jgrHjgrcNCivjg6/jg4As44Kr44OE44KoDQor44Ov44K/44OK44OZLOOCq+OCuuOCt+ODsw0KK+ODr+OCv+ODiuODmSzjg4jjgq/jgrgNCivjg6/jgr/jg4rjg5ks44OS44Ot44K3DQor44Ov44K/44OK44OZLOOCreODqOOCquODnw0KK+ODr+OCv+ODiuODmSzjg6jjgrfjg5Ljg60NCivjg6/jgr/jg4rjg5ks44Oo44Oq44Of44OEDQor44Ov44K/44OK44OZLOOCseOCpOOCuA0KK+ODpOODnuOCsOODgSzjg6Ljg4jjgrgNCivjgrnjgrrjgq0s44K444Ot44KmDQor44K144K144OOLOOCueOCueODoA0KK+OCq+ODjeOCsyzjgr/jgrHjgrcNCivjgq/jg5zjgr8s44Os44Kk44KzDQor44Kz44K544Kx44Ks44OvLOODnuOCteODiuOCqg0KK+OCq+ODiuOCpCzjgrXjg5bjg63jgqYNCivjgqvjg4jjgqYs44Kz44Km44Kk44OBDQor44Kz44OA44OeLOOCv+OCq+ODkuOCsw0KK+OCs+ODkOODpOOCtyzjg4jjgrfjg5Ljg60NCivjgrPjgrjjg54s44OI44Kq44OrDQor44Kr44Oh44Ok44OeLOOCq+OCuuODkuOCsw0KK+OCr+ODqeODkOODpOOCtyzjg47jg5bjgqoNCivjgqvjg7Pjg4As44Kr44K644Om44KtDQor44Kz44Oz44OOLOOCuOODpeODs+OCuA0KK+OCq+ODr+OCt+ODnizjg57jgrXjg4rjg6oNCivjgqvjg6/jgqvjg58s44Kz44Km44K4DQor44Kr44OK44KrLOOCq+OCr+OCv+ODreOCpg0KK+OCq+ODr+ODoOODqSzjg5Ljg63jgqbjg58NCivjgq3jg6Djg6ks44K344Ol44Oz44Kk44OBDQor44Kr44K544KsLOODkuODreOCtw0KK+OCs+OCuOODnizjg6Ljg4jjg6jjgrcNCivjgqvjg6/jg44s44Kz44Km44Kk44OBDQor44Kr44Ov44OKLOODqOOCt+ODnuOCtQ0KK+OCs+OCuuODnizjgr/jgrHjgrcNCivjgqvjg6/jgrXjgq0s44Oe44K144Ki44KtDQor44Kr44K/44OOLOODnuOCteOCouOCrQ0KK+OCq+OCv+ODgCzjgqLjgq3jgqoNCivjgq3jgq/jg4Es44Oe44K144Kq44OfDQor44Kr44Of44Km44OpLOOCq+OCuuODkuODhw0KK+OCq+ODjeODgCzjg4bjg4TjgqoNCivjgrPjg7Pjg44s44Ok44K544KqDQor44Kr44Ov44Oi44OILOOCt+OCsuODnw0KK+OCq+ODkOODpCzjg5Ljg63jgrcNCivjgrPjg5bjgq/jg60s44Kx44Oz44Kt44OBDQor44Kv44Oe44Ks44KkLOODpuOCpuOCuA0KK+OCs+ODs+ODjizjg5Ljg4fjgq0NCivjgrPjg6Tjg54s44K344On44Km44Kk44OBDQor44Kt44K/44K344OtLOODkuODiOOCtw0KK+OCs+ODgOODnizjgr/jgrHjgrcNCivjgqvjg4jjgqYs44Ko44Kk44Kk44OBDQor44Kt44Og44OpLOODiOOCt+ODj+ODqw0KK+OCs+OCpOODhyzjgqTjgrXjgqoNCivjgq/jg6Tjg54s44K/44Kx44K3DQor44Kt44Oq44OP44OpLOODouODquODkuODrQ0KK+OCq+ODqCzjg57jgrXjgr/jg4ANCivjgqvjg43jgrMs44OI44K344KqDQor44Kz44OP44OpLOOCpOODr+OCqg0KK+OCq+ODiOOCpizjg6bjgq3jgqoNCivjgrPjgqQs44K744Kk44Kk44OB44Ot44KmDQor44Kr44Ok44OeLOOCpOOCteOCqg0KK+OCs+OCpOOCsSzjgq/jg4vjg5LjgrMNCivjgrPjgrjjg54s44Ki44Kt44OIDQor44Kz44Oe44OELOODnuOCteOCuA0KK+OCreOCv+ODoOODqSzjg47jg6rjg6jjgrcNCivjgq3jgr/jg6/jgq0s44K844Oz44Kk44OB44OtDQor44Kr44K144K444OeLOODkuODreODleODnw0KK+OCreODoOODqSzjg4bjg4Tjg63jgqYNCivjgqvjg5/jgrDjg4Es44K144OB44KqDQor44Kr44OI44KmLOODleOCuOOCqg0KK+OCq+ODr+ODoOODqSzjg4jjgrfjg5Ljg4gNCivjgqvjg4njgr8s44OO44OW44K/44KrDQor44Kq44Kq44K/44KxLOOCt+OCsuODqw0KK+OCq+ODiOOCpizjg4jjg6Ljg58NCivjgq3jg44s44OO44OW44OS44K1DQor44Kr44OfLOODnuOCteODnw0KK+OCreOCr+ODgSzjg57jgrXjg6bjgq0NCivjgqvjgq3jgqbjg4Es44OS44Ot44OS44K1DQor44Kz44K444OeLOODnuOCteODnw0KK+OCq+OCv+OCquOCqyzjgrfjg6Xjg7PjgrnjgrENCivjgq/jg5zjgr8s44OS44Ot44Om44KtDQor44Kt44K/44K244OvLOODnuOCteOCouOCrQ0KK+OCs+ODn+ODjSzjg6Ljg4jjg6bjgq0NCivjgq/jg5ws44K/44Kr44Om44KtDQor44Kt44K/44K644OhLOOCq+OCuuODiOOCtw0KK+OCs+ODkOODpOOCtyzjgqvjg4TjgqoNCivjgqvjg6/jgrDjg4Es44Oo44K344OS44KzDQor44Kx44Ks44K144OvLOODkuOCteOCtw0KK+OCs+OCpuODgSzjg5/jg4HjgqoNCivjgrPjg6Tjg54s44OI44Kq44OrDQor44Kr44Ov44Kt44K/LOOCv+OCq+ODkuODhw0KK+OCq+ODr+ODn+ODhCzjgrfjg6fjgqbjgr7jgqYNCivjgqvjgr/jg5Ljg6ks44Ki44OE44KqDQor44Kr44Ov44Ku44K3LOODkuODreOCtw0KK+OCs+ODs+ODiSzjg6jjgrfjg5/jg4QNCivjgq3jg6Djg6ks44Ki44Kt44OS44KzDQor44Kv44Oc44Ok44OeLOOCt+ODs+OCv+ODreOCpg0KK+OCr+ODnuODouODiCzjg57jgrXjgq0NCivjgqvjg6/jgr8s44OV44Of44OoDQor44Kv44OL44OO44OWLOODpOOCueOCqg0KK+OCq+ODnuODgCzjgr/jgqvjgrcNCivjgqvjgq8s44Kq44K144OgDQor44Kr44ON44KzLOOCquOCteODoA0KK+OCs+ODkOODpOOCtyzjgqLjgq3jg6kNCivjgqvjgrfjgqos44Kx44Oz44K4DQor44Kr44OK44Kk44OvLOOCseOCpOOCuA0KK+OCseODs+ODouODgSzjgr/jg4DjgrcNCivjgq3jgq/jg4Es44Kq44K144OgDQor44Kr44K244OeLOODpOOCueOCouOCrQ0KK+OCs+ODnuODhOODouODiCzjgqjjgqTjgrMNCivjgrPjg7Pjg4ks44Kr44OE44OS44KzDQor44Kt44Kv44K344OeLOOCq+ODhOODnuOCtQ0KK+OCs+ODkOODpOOCtyzjgrvjgqTjgrMNCivjgq/jg57jgqzjgqQs44Oe44K144OI44K3DQor44Kr44OI44KmLOOCq+OCuuODkuOCsw0KK+ODnuODq+ODkOODpOOCtyzjgr/jgqvjgrcNCivjg6Djg4jjgqYs44Kr44OE44OfDQor44Of44K/44OLLOOCv+OCseOCtw0KK+ODn+ODryzjg57jgrXjgrcNCivjgrfjg5/jgros44OE44OI44OgDQor44Of44K644OOLOODiOOCt+OCqg0KK+ODnuODgeODgCzjgqvjgrrjgqoNCivjg57jg4TjgqQs44Kr44K644K/44OfDQor44Of44Km44OpLOODquODpeOCpuOCpOODgQ0KK+ODkuODjizjg6rjg6fjgqbjgqTjg4ENCivjg6Djg6njgqvjg58s44Oe44K144OS44OtDQor44Of44Ok44OOLOODkuODreODpuOCrQ0KK+ODnuODq+OCpCzjg57jgrXjg47jg6oNCivjg6Djg6njgrXjgq0s44OI44K344KqDQor44Oe44K144KrLOODkuODh+ODjuODqg0KK+ODn+ODjeOCvyzjgr/jgrHjg58NCivjg57jg4Tjg4rjgqws44Om44K/44KrDQor44Of44OK44Ks44OvLOOCu+OCpOOCuA0KK+ODn+ODpOOCsSzjg4rjgqrjgqLjgq0NCivjg57jg4Tjg6Ljg4gs44Kx44Oz44Kk44OBDQor44Of44K144OvLOODiOOCt+ODpuOCrQ0KK+ODnuOCqOODgCzjgrPjgqbjgr7jgqYNCivjgqbjg4Djgqzjg68s44OI44K344Kr44OEDQor44Of44Ok44OP44OpLOOCs+OCpuOCuA0KK+ODoOODqeOCpCzjgrfjg6fjgqbjgrgNCivjg57jg4Tjg6Ljg6os44K344Ky44KtDQor44Oe44K144KtLOOCreOCr+OCqg0KK+ODn+OCpuODqSzjgqjjgqTjgrgNCivjg6Ljg4jjg5/jg6Qs44Kt44Oo44K3DQor44Og44Op44Kr44OfLOODkuODreODleODnw0KK+ODnuODiOODkCzjg57jgrXjgqLjgq0NCivjg5/jgqbjg6ks44OI44K344KqDQor44Oe44OE44Kr44OvLOOCq+OCuuODkuODrQ0KK+ODn+OCuuOCv+ODiyzjg4rjgqrjg5LjgrMNCivjg5/jg6Tjg44s44Oe44K144Om44KtDQor44Oe44OE44OALOODleOCteODgeOCqw0KK+ODn+OCuSzjgqLjgq3jg6kNCivjg57jg4Tjg6Tjg54s44OI44K344KoDQor44Of44Ok44Oi44OILOOCv+ODgOOCouODhA0KK+ODn+OCuuODjizjg5Xjg5/jgqoNCivjg57jg6vjg6Tjg54s44K744Kk44K4DQor44Oe44Or44KzLOODn+ODgeOCv+OCqw0KK+ODouODgeODgCzjg4jjgqrjg6sNCivjg6Ljg4jjg4/jgrcs44Oe44Oi44OrDQor44Of44K644OkLOOCs+OCpuOCuA0KK+ODn+ODpOOCtuOCrSzjg5/jg4Hjg57jgrUNCivjg5/jg6Tjgqzjg68s44Of44OE44OrDQor44Og44Op44K344OeLOOCv+ODgOOCqg0KK+ODnuOCueOCteOCsyzjgrvjgqTjgqTjg4ENCivjg6Ljg6os44Kk44OB44Ot44KmDQor44Oi44Oq44K/LOOCq+OCuuOCqg0KK+ODn+ODiuODnyzjg6jjgrfjgqLjgq0NCivjg5/jg6Tjgq0s44Oe44K144KqDQor44Oi44Oq44Ok44OeLOOCseODs+OCuA0KK+ODn+OCuuOCvyzjg6jjgrfjgqoNCivjg57jg4TjgqQs44Of44OE44KwDQor44Oe44OE44KqLOODnuOCteODqA0KK+ODnuODhOOCt+OCvyzjg6bjgr/jgqsNCivjgrPjg5Djg6Tjgrcs44Kr44OE44OfDQor44Og44Kr44KoLOODnuOCteOCuA0KK+ODouODquOCpCzjgq7jg6fjgrgNCivjg6Ljg6rjgr8s44K/44Kk44K+44KmDQor44Og44Kr44KkLOODnuOCteOCqg0KK+ODnuODhOOCqizjg4jjgq3jg68NCivjg6Djg6njg6Tjg54s44Oo44K344OS44KzDQor44Oe44OE44Oi44OILOODiOOCt+OCqg0KK+ODn+ODpOOCteODiCzjg5/jg47jg6sNCivjg5/jg6Tjgrbjg68s44Oo44K344KqDQor44Oi44Oq44Og44OpLOOCv+OCq+OCtw0KK+ODoOODqeODjizjg5Ljg4fjgqoNCivjg57jgrnjg4As44Of44OO44OrDQor44Og44Op44K/LOODjuODluOCqg0KK+ODn+ODpOOCteOCqyzjgrHjg7PjgrgNCivjg6Ljg4jjg5Djg6Tjgrcs44Oe44K144Of44OEDQor44Of44K644OOLOODpuODquOCsw0KK+ODouODouOCpCzjg6jjgrfjgqoNCivjg57jg4Tjg4As44OI44Kv44KqDQor44K544Ks44Ov44OpLOODiuOCquOCqA0KK+ODnuODhOODkOODqSzjg57jgrPjg4gNCivjg57jg4Tjg6Ljg4gs44Of44OO44OrDQor44Of44Ok44OP44OpLOOCouODhOODqOOCtw0KK+ODoOODqeOCpOOCtyzjg57jg6Ljg6sNCivjg57jg4Tjg6Djg6ks44Oe44Oi44OrDQor44Of44Oo44K3LOODhuODhOODqOOCtw0KK+ODouODquODouODiCzjgqvjgrrjgqoNCivjg5/jgrrjgr/jg4ss44K/44Kx44K3DQor44Oe44OE44OQLOOCouODhOOCtw0KK+ODnuODhOOCpCzjgqvjg7MNCivjg6Djg6njgqvjg58s44Kr44K644KqDQor44Oi44Oq44K/LOOCt+OCsuODj+ODqw0KK+ODoOODqeOCvyzjgrfjgrLjgqoNCivjg57jgrXjgq0s44OS44Ot44K3DQor44Of44Ok44K244KtLOODqOOCt+OCrQ0KK+ODnuODhOODkOODqSzjgrfjg7PjgqTjg4ENCivjg6Djg6njg57jg4Qs44Ki44OE44K3DQor44Oi44OqLOODjuODluODpuOCrQ0KK+ODouODquODoOODqSzjg57jgrXjgqvjgroNCivjgrnjg68s44Oo44K344OfDQor44Kz44Ov44K/44OqLOODiuOCquOCrQ0KK+ODnuODhOOCtuOCrSzjg6jjgrfjg47jg5YNCivjg57jg4PjgrXjgq0s44Oe44K144OS44OtDQor44Of44K/44KvLOOCseOCpOOCvuOCpg0KK+ODnuODhOOCq+ODryzjgrXjg4jjgrcNCivjg6Ljgq4s44K344KzDQor44Oe44OW44OBLOOCreODqOOCtw0KK+ODnuODhOODouODiCzjg4jjgrfjg63jgqYNCivjg6Ljg6os44Oq44On44Km44Kk44OBDQor44Oe44OE44Km44OpLOOCq+OCuuODiuODqg0KK+ODnuOCqOODgCzjgqLjgq3jgqoNCivjg57jgrnjg4As44OS44Ot44K3DQor44Oe44Ko44OL44K3LOODkuODreOCtw0KK+ODnuODq+ODpOODnizjg4rjgqrjg6QNCivjg57jg4Tjg4As44K/44Kr44KqDQor44Oe44KtLOODiOOCt+ODkuOCsw0KK+ODouOCpuOCqCzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg6Djg6njgqQs44OI44Oo44OfDQor44Oe44OE44KkLOOCr+ODi+ODkuOCsw0KK+ODouODquOCvyzjg57jgrXjg6sNCivjg57jgqjjg4As44K/44Kr44OW44OfDQor44Og44Op44Km44OBLOOCpOOCteODoA0KK+ODn+ODhOODpOOCuSzjgqLjgq3jg6kNCivjg6Ljg6os44Kx44Oz44K4DQor44Oe44OE44OALOOCteODiOOCtw0KK+ODnuODhOOCqizjg57jgrXjg5Xjg58NCivjg57jg6vjg6Tjg54s44Ki44Kt44KqDQor44Oe44OE44Ks44KoLOOCt+OCsuODkuODrQ0KK+OCq+ODn+OCr+ODqSzjgrPjgqbjgqTjg4ENCivjg5/jg4njg6rjgqvjg68s44Om44Km44K444Ot44KmDQor44Oe44K544OALOOCt+OCsuODjuODlg0KK+ODn+ODhuODqSzjg6TjgrnjgqoNCivjg57jg4Tjg4rjgqws44Ki44Kt44OpDQor44Oi44Oq44Kq44KrLOODqOOCt+ODnw0KK+ODn+OCveOCqizjgqjjg4TjgqoNCivjg6Djg6njg6Tjg54s44Kr44OE44Oo44K3DQor44Oi44Oq44Oi44OILOOCt+OCsuODqw0KK+ODouODqizjg4Tjg4jjg6ANCivjg57jgrnjg4As44OS44Ot44K/44KrDQor44Of44Ok44Oi44OILOOCq+ODhOODnuOCtQ0KK+ODoOODqeOCvyzjg6jjgrfjg4bjg6sNCivjg5/jg4rjg5/jgrXjg68s44Kr44K644OS44OtDQor44Oe44K344OeLOOCueODn+ODkuODrQ0KK+ODouODquOCsOODgSzjg6jjgrfjgqLjgq0NCivjg57jg4TjgqQs44K/44Kr44K3DQor44Oe44Ko44Kr44OvLOODkuODiOOCtw0KK+ODouODgeOCuuOCrSzjgrjjg6Xjg7MNCivjg57jgrnjg4As44K344Oz44Kt44OBDQor44Oe44OE44Oi44OILOOCuOODpeODs+OCvuOCpg0KK+ODouODquODiuOCrCzjgqvjgrrjg47jg6oNCivjg57jgrnjg4As44OS44Ot44K/44OfDQor44Of44Km44OpLOOCr+ODi+OCqg0KK+ODnuODhOODjizjgr/jg4DjgqoNCivjg57jg4Tjgqrjgqss44Oo44K344OG44OrDQor44Oe44OB44KkLOOCs+OCpuOCpOODgQ0KK+ODn+OCuuOCv+ODiyzjg4jjgrfjgqoNCivjg57jg4Tjg6Ljg4gs44Oo44K344OO44OqDQor44Oe44K144KtLOODkuODh+ODiA0KK+ODnuODhOODouODiCzjgr/jgrHjgrcNCivjg5/jg4Tjg6Qs44OS44OH44Ok44K5DQor44Of44K644OOLOOCuOODreOCpg0KK+ODnuOCqOODgCzjg5Xjg5/jgqoNCivjg6Djg6njg57jg4Qs44Kx44Oz44K4DQor44Og44K144K344OOLOOCouOCreODqQ0KK+ODnuOCqOODj+OCvyzjg57jgrXjg5LjgrMNCivjg57jg4Tjgrbjg68s44Oo44K344KqDQor44Of44OE44KkLOODqOOCt+OCq+OCug0KK+ODouODouODgCzjg5/jg4TjgqvjgroNCivjg57jg4Tjgqos44Kr44OE44OfDQor44Of44OvLOOCt+ODpeOCpuOCuA0KK+ODoOODqeOCq+ODnyzjg4bjg4Tjg6QNCivjg5/jgqvjg58s44OP44Or44KtDQor44OM44Kr44K244OvLOOCt+ODs+OCuA0KK+ODiuOCq+ODoOODqSzjgrfjgrrjgqgNCivjg4vjgrfjg6Djg6ks44Kv44OL44OS44KzDQor44OL44OD44K/LOOCseODs+OCuA0KK+ODiuOCrOODhOODpizjg4jjgq3jg6TjgrkNCivjg4vjgqTjg44s44OS44Ot44K3DQor44K/44OW44OBLOOCseODs+OCuA0KK+ODi+OCt+ODjizjgrXjg5bjg63jgqYNCivjg4zjgqvjgr8s44K/44Oi44OEDQor44OL44K344Og44OpLOODkuOCteOCqg0KK+ODiuOCrOODjizjgr/jgqvjg6bjgq0NCivjg4rjgqvjgqzjg68s44Oo44K344Ki44KtDQor44OL44K344Ok44OeLOODkuODreOCtw0KK+ODiuOCq+OCuOODnizjg57jgrXjg5Ljg60NCivjg4vjgrfjg4As44Of44OE44KqDQor44OK44Kr44Og44OpLOODleODn+OCqg0KK+ODjuODoOODqSzjg6bjgq3jgqoNCivjg4rjgqvjg6Ljg4gs44OO44Oq44Ki44KtDQor44OK44Kr44Ks44OvLOOCq+OCuuOCv+ODnw0KK+ODiuODq+OCteODryzjg4Tjg43jgqoNCivjg4rjgqTjg4jjgqYs44K/44Kx44KqDQor44OO44OZLOODqOOCt+ODkuODhw0KK+ODi+OCt+ODiizjg6Tjgrnjg47jg6oNCivjg47jg6Djg6ks44K/44OA44K3DQor44OK44Kr44Og44OpLOOCt+ODs+OCuOODreOCpg0KK+ODi+OCq+OCpOODieOCpizjg6jjgrfjg6TjgrkNCivjg4rjgqvjg4As44K/44OE44KqDQor44OL44K344OKLOOCreODn+ODkuODiA0KK+ODiuODquOCvyzjg4jjgrfjgqoNCivjg47jgrDjg4Es44Oo44K344OS44OtDQor44OO44OkLOOCs+OCpuOCrQ0KK+ODiuOCrOOCpCzjg57jgrXjg4gNCivjg4rjgqvjg6Djg6ks44Kt44Oo44K3DQor44OL44Kk44K644OeLOOCv+OCq+ODnw0KK+ODiuOCq+OCrOODnyzjgrfjg6XjgqbjgqTjg4ENCivjg4rjgqzjgr8s44Kt44K344KqDQor44OL44K344K244OvLOODj+ODhOOCqA0KK+ODjuOCuyzjgrjjg6Xjgqbjg63jgqYNCivjg4rjgqzjgqQs44Om44Kt44KqDQor44OL44K344K244OvLOODnuOCteOCqg0KK+ODiuOCq+ODj+OCvyzjgqvjgrrjg4jjgrcNCivjg4rjgqvjgrjjg54s44OS44Ot44K3DQor44OK44Kr44OALOODnuODhOOCqg0KK+ODjuODiuOCqyzjg57jgrXjgq0NCivjg4rjgqvjgqzjg68s44Oe44K144Ki44KtDQor44OK44Kr44K344OeLOOCv+ODn+OCqg0KK+ODiuOCq+ODouODiCzjg57jgrXjg6sNCivjg4vjgrfjgqrjgqss44OS44Ot44K3DQor44OL44K344Oe44KoLOOCt+ODs+OCv+ODreOCpg0KK+ODiuOCq+ODoOODqSzjg57jgrXjgqoNCivjg4rjgqvjg4vjgrcs44Kr44K644KqDQor44OO44OALOODoOODhOODpA0KK+ODiuOCq+ODoOODqSzjgqLjgq3jg5LjgrMNCivjg4rjgqvjgrbjg68s44Oq44On44Km44Kk44OBDQor44OL44K344OALOODqOOCt+ODreOCpg0KK+ODi+OCt+ODgCzjgr/jg4Djg6bjgq0NCivjg4vjgqQs44Oq44On44Km44K4DQor44Ok44Oe44Oi44OILOODkuODiOOCtw0KK+ODiuOCq+OCpuODgSzjg6TjgrnjgqoNCivjg4rjgqvjgrjjg54s44Kr44K644K/44KrDQor44OK44Kr44Og44OpLOODnuOCteODnw0KK+ODjuODoOODqSzjgq/jg4vjg5LjgrMNCivjg4vjgrfjg6Djg6ks44Ok44K544OS44OtDQor44OO44OK44KrLOOCv+ODgOODkuOCsw0KK+ODi+OCt+ODoOODqSzjg4jjgrfjg5Ljg4cNCivjg4vjgrfjgqos44Kt44Oo44K3DQor44OK44Ks44KqLOOCreODqOOCtw0KK+ODi+OCpOODnyzjgrHjg7PjgrgNCivjg4rjgqvjg6Djg6ks44OS44OH44Om44KtDQor44ON44K644KrLOODqOOCt+ODjuODqg0KK+ODiuOCq+ODoOODqSzjg6bjgq3jg4jjgrcNCivjg4rjgqvjgrbjg4gs44OG44OE44OkDQor44Ki44K144OOLOOCuOODpeODsw0KK+ODjuOCrOODnyzjgq/jg4vjg5Ljg60NCivjg4rjgqvjgrjjg54s44Kr44K644OS44KzDQor44OK44Kk44OI44KmLOOCq+OCuuOCouOCrQ0KK+ODiuOCq+ODoOODqSzjg6jjgrfjg47jg6oNCivjg4rjgqvjg4vjgrcs44Kt44Oo44Ki44KtDQor44OK44Kr44OALOOCv+ODn+OCqg0KK+ODiuOCrOOCteODryzjgr/jgqvjgrcNCivjg4rjgqzjg44s44Kr44K644Om44KtDQor44OL44OD44K/LOODpuOCv+OCqw0KK+ODiuODs+ODkCzjg5/jg4Tjg5Ljg60NCivjg47jgrrjgqgs44Kv44OL44Of44OEDQor44OK44Ks44OfLOODkuODreOCtw0KK+ODiuOCrOOCpCzjgrjjg6Xjg7PjgqTjg4ENCivjg4rjgqvjg4/jg6ks44Of44K644ObDQor44OK44Kr44K444OeLOOCv+OCseODqOOCtw0KK+ODiuOCq+OCuOODnizjgqvjg4TjgqoNCivjg4vjgrfjg4As44Ki44Kt44OS44KzDQor44OK44Kq44KkLOOCt+ODgeODreOCpg0KK+ODiuODmeOCt+ODnizjg6jjgrfjg57jgrUNCivjg4rjgqvjg44s44K344On44Km44Kk44OBDQor44OK44Kr44Og44OpLOODj+ODq+OCqg0KK+ODjuODgCzjg5/jg4Tjg6jjgrcNCivjg4rjgqvjgrss44OI44K344Ki44KtDQor44OK44Kr44K444OeLOODn+ODhOOCt+OCsg0KK+ODiuOCrOOCteODryzjgr/jg4DjgrcNCivjg4vjg5jjgqQs44Of44OE44OoDQor44OK44Ks44KkLOODquODp+OCpuOCueOCsQ0KK+ODiuOCq+OCt+ODnizjgr/jgqvjgqoNCivjg4rjgqvjgqos44K744KkDQor44OK44Kr44Ks44OvLOODjuODluOCqg0KK+ODiuOCpOODiOOCpizjgrPjgqbjgqTjg4Hjg63jgqYNCivjg47jgrjjg54s44Om44Km44K544KxDQor44OK44Ks44OOLOODpuOCreOCqg0KK+ODi+OCt+ODgCzjgqvjgrrjgqoNCivjg4rjgqvjg4As44Kt44Oo44K3DQor44OK44Kr44OP44OpLOOCv+OCq+ODjuOCueOCsQ0KK+ODiuOCq+OCuOODnizjg6Djg43jgr/jgqsNCivjg43jg6Ljg4gs44Kt44Oo44K3DQor44OK44Kr44Og44OpLOOCseODs+OCuA0KK+ODiuOCrOODiOODoizjg57jgrXjg58NCivjg4rjgqvjg6Djg6ks44OS44OI44OfDQor44OK44Kr44Ok44OeLOODqOOCt+OCqg0KK+ODiuOCq+ODoOODqSzjg5vjgrrjg58NCivjg4rjgqvjg6Djg6ks44OV44Of44OO44OqDQor44OO44K444OeLOODhuODhOODreOCpg0KK+ODiuOCrOODleODgSzjg6Tjgrnjg60NCivjg4rjgqvjg44s44K044Kk44OBDQor44OL44K344Ok44OeLOOCt+ODs+OCpOODgQ0KK+ODiuOCq+ODoOODqSzjg57jgrXjg6bjgq0NCivjg4rjgqzjgrfjg54s44OK44Kq44K4DQor44OL44OvLOODpuOCv+OCqw0KK+ODiuOCq+ODjizjg6TjgrnjgqLjgq0NCivjgqrjg4vjgrbjg68s44Om44Kt44KqDQor44Kq44K344Kr44K/LOODnuOCteOCqg0KK+OCquOCqyzjgqvjg4Tjg5Ljg60NCivjgqrjgq/jg6Tjg54s44OO44Oc44OrDQor44Kq44KtLOOCueODn+OCqg0KK+OCquOCq+ODn+ODpCzjgrHjg7PjgrgNCivjgqrjgrDjg6ks44Oe44K144KtDQor44Kq44Kq44OHLOODnuOCteODjuODqg0KK+OCquODjuODgCzjg57jgrXjg5LjgrMNCivjgqrjgqrjg4vjgrcs44Oe44K144KtDQor44Kq44Kv44OALOOCreODp+OCpuOCpOODgeODreOCpg0KK+OCquOCr+ODgCzjg4jjgrfjgqoNCivjgqrjgqzjg68s44Kz44Km44K4DQor44Kq44OOLOODnuOCteOCqg0KK+OCquOCquOCueODnyzjgrPjgqbjgrgNCivjgqrjgqrjg4Tjgqss44K/44Kr44K3DQor44Kq44Kq44OI44OiLOODnuOCteOCouOCrQ0KK+OCquOCq+OCtuOCrSzjg6bjgqbjgrgNCivjgqrjgqrjg4/jgrcs44OS44Ot44K3DQor44Kq44Ku44OOLOODleODn+OCqg0KK+OCquOCteODgCzjgrfjgrrjgqLjgq0NCivjgqrjgqrjg5As44OS44K144K3DQor44Kq44K344OeLOOCouODpOOCsw0KK+OCquOCquOCq+ODryzjgqvjgrrjg6QNCivjgqrjgqvjg6Ljg4gs44OS44Ot44K3DQor44Kq44Ks44OvLOODiOOCquODqw0KK+OCquODjizjgq3jg6jjg4gNCivjgqrjgqvjg44s44OI44Kq44OrDQor44Kq44K244OvLOODpuOCreODnuOCtQ0KK+OCquODj+OCryzjg5Ljg63jgrcNCivjgqrjgrfjgr/jg4ss44K/44Kr44K3DQor44Kq44K244OvLOODkuODreOCtw0KK+OCquOCquODj+OCtyzjgr/jgqvjg47jg5YNCivjgqrjgqrjg4/jgr8s44Kz44Km44OI44KvDQor44Kq44OO44OH44OpLOODn+ODpA0KK+OCquODjizjg5Xjg5/jgqoNCivjgqrjgqrjgqrjgqss44OV44K444KzDQor44Kq44Kq44OOLOODqOOCt+ODjuODqg0KK+OCquOCquODj+OCtyzjg6bjgr/jgqsNCivjgqrjgqrjgr8s44K/44Kr44K3DQor44Kq44Kq44Oi44OqLOOCseODs+OCv+ODreOCpg0KK+OCquOCt+ODnizjgrMNCivjgqrjgqvjg6Ljg4gs44Kz44Km44Kk44OBDQor44OS44Ot44K7LOODiOODouODpuOCrQ0KK+OCquOCquODn+OCuizjg6TjgrnjgqoNCivjgqrjgqrjg44s44Of44OE44KqDQor44Kq44OB44Ki44KkLOODnuOCteODkuOCtQ0KK+OCquOCq+ODmSzjgr/jgqQNCivjgqrjgqrjgr/jg4ss44Ki44Kt44OS44OtDQor44Kq44Kv44OOLOOCt+OCsuOCqg0KK+OCquOCquOCueOCrCzjgrHjg7PjgqTjg4ENCivjgqrjgqrjg47jgq0s44Kr44Kq44OrDQor44Kq44Kq44Kk44K3LOOCuA0KK+OCquOCq+ODgCzjg6Ljg4jjg4TjgrANCivjgqrjgqrjg5/jg6Qs44Om44Kt44OS44OtDQor44K144K/44KxLOODhOODjeOCqg0KK+OCquODgOOCrizjg4/jg4Hjg63jgqYNCivjgqrjgqrjgr8s44K144OI44OrDQor44Kq44OV44OBLOOCv+ODgOODqOOCtw0KK+OCquOCquOCq+ODryzjgqvjgqrjg6sNCivjgqrjgqvjg4ks44K144OI44OrDQor44Kq44Kq44K144OvLOODkuODh+OCrQ0KK+OCquOCruOCteODryzjg6bjgq3jg5Ljg60NCivjgqrjgqvjg5ks44Ki44OE44K3DQor44Kq44OI44Oo44K3LOODkuODh+OCqg0KK+OCquOCrOODryzjgr/jg4Tjg63jgqYNCivjgqrjg6rjgqzjgrUs44Ok44K544K/44KxDQor44Kq44Kq44OQLOODpuOCreOCsw0KK+OCquODkOOCvyzjgr/jgqvjgrcNCivjgqrjgqrjg44s44K/44Kr44Oo44K3DQor44Kq44Kq44K144KrLOODnuOCteODpA0KK+OCquOCquODn+ODjSzjgrHjg7Pjgr7jgqYNCivjgqrjgqrjgr8s44Oo44K344OS44KzDQor44Kk44OO44Km44KoLOOCouOCreOCqg0KK+OCquOCquOCs+OCtyzjgrfjgrLjgq0NCivjgqrjgrbjg68s44OS44OH44KqDQor44Kq44Kr44OZLOOCseOCpOOCpOODgQ0KK+OCquOCquODnOODqSzjgqjjgqTjgrjjg63jgqYNCivjgqrjgqrjgr8s44K444On44Km44Kk44OB44Ot44KmDQor44Kq44K244KtLOOCuOODpeODs+OCpOODgQ0KK+OCquOCr+ODgCzjg6Tjgrnjg5Ljg60NCivjgqrjgrbjg68s44OG44Or44Ki44KtDQor44Kq44Kr44OALOOCueOCueODoA0KK+OCquOCquODhOOCqyzjgrPjgqbjgrgNCivjgqrjg47jg4fjg6ks44Kz44Km44Kk44OBDQor44Kq44K344KqLOOCv+ODgOOCt+OCsg0KK+OCquODgOOCt+ODnizjgr/jg4DjgrcNCivjgqrjgrbjgq0s44K344Ky44OrDQor44Oe44Ko44OALOODn+ODhOOCqg0KK+OCquOCrSzjg57jgrXjgqoNCivjgqrjg47jg4As44OI44Kt44KoDQor44Kq44OK44KuLOOCouOCreODqQ0KK+OCquOCr+ODgCzjg6jjgrfjgq3jg6gNCivjgqrjgqrjg5Ljg6ks44K744OE44K4DQor44Kq44OO44K244OvLOODiOOCt+ODkuOCsw0KK+OCquOCruODj+ODqSzjgq/jg4vjgqLjgq0NCivjgqrjgqrjgq/jg54s44Kr44K644KqDQor44Kq44Kq44OP44OpLOODjuODluODkuODrQ0KK+OCquOCrSzjgqvjg4TjgrnjgrENCivjgqrjgqzjg68s44K/44OE44OkDQor44Kq44Kq44OkLOODkuODh+ODmw0KK+OCquOCquOCteODryzjgrXjg5bjg63jgqYNCivjgqrjgqrjg4/jg6ks44OS44Ot44Oo44K3DQor44Kq44OALOOCv+OCq+OCsw0KK+OCquOCtuODryzjg5/jg4TjgqoNCivjgqrjgqzjgr8s44Oq44On44Km44K544KxDQor44Kq44Kr44OOLOOCouOCreOCsw0KK+OCquOCquOCpOOCtyzjgrfjg54NCivjgqrjg4rjgqQs44OS44Ot44Om44KtDQor44Kq44Kq44OE44KrLOOCuOODpeODs+OCsw0KK+OCquOCquODhOOCqyzjg4bjg4TjgqoNCivjgqrjgqTjg4cs44Oo44K344Ki44KtDQor44Kq44Kt44Ok44OeLOOCq+OCuuOCsw0KK+OCquOCsOOCtyzjgqLjgrHjg58NCivjgqrjg4As44Ok44K544K3DQor44Kq44Kr44OQ44Ok44K3LOOCv+ODgOODkuODrQ0KK+OCquOCquOCv+ODiyzjgrjjg6Xjg7PjgrgNCivjgqrjgqrjg4Tjgq0s44Ki44Om44OfDQor44Kq44Kr44OALOODkuODreOCtw0KK+OCquOCquOCueODnyzjg4Hjg4/jg6sNCivjgqrjgqrjgqTjgqzjg68s44K/44Kr44OP44OrDQor44Kq44Kr44OALOOCueOCueODoA0KK+OCquOCtuODryzjgqvjgrrjg5LjgrMNCivjgqrjgqrjgr/jg4ss44OG44OE44Ot44KmDQor44Kq44K244KtLOODkuODreODpuOCrQ0KK+OCquOCquOCvyzjg57jgrXjgrMNCivjg6Tjg4rjgq7jg6Qs44Om44Kr44OqDQor44OK44Kr44K/44OLLOOCt+ODs+OCpOODgQ0KK+OCs+ODkOODpOOCtyzjg5Ljg4fjgrcNCivjg5/jgq/jg4ss44Oo44K344OS44OtDQor44K544K644KtLOOCuOODpeODs+OCpOODgQ0KK+ODj+ODgOODjizjg6bjgq3jg57jgrUNCivjg5/jg6Tjg54s44Kr44Kq44OqDQor44K/44Kr44OP44K3LOODnuOCteODiA0KK+OCt+ODqeOCquOCrOODryzjg6njgqTjgr8NCivjg4rjgqvjg6Djg6ks44Ki44K944KrDQor44Oe44OE44K244KtLOOCreOCpOODgeODreOCpg0KK+ODpOODnuOCt+OCvyzjgr/jgqvjg6jjgrcNCivjgrfjg6Ljg6Tjg54s44K344Ky44OrDQor44OV44K/44Og44OpLOODjuODluODpuOCrQ0KK+OCr+ODryzjgr/jgqvjgrcNCivjg4rjgqvjg6Djg6ks44OI44K344Of44OEDQor44Oo44Kz44Ok44OeLOODkuODreOCouOCrQ0KK+ODkuODq+ODnizjg6bjgq3jgrMNCivjgr/jg4Hjgqvjg68s44OK44Kq44OfDQor44Ov44Kr44OQ44Ok44K3LOODhuODq+ODnw0KK+OCv+OCq+ODj+OCvyzjg4jjg6INCivjgqLjg5ks44Ko44Of44KzDQor44K744KtLOODquODpeOCpuOCtA0KK+ODpOODnuOCtuOCrSzjg5Ljg4jjgrcNCivjg6Tjg57jg40s44Oo44K344OS44OtDQor44K/44K244OvLOOCuOODpeODs+OCuA0KK+OCq+OCuOOCq+ODryzjgqLjgrXjgrMNCivjgrXjg4jjgqYs44Oe44K144OS44OtDQor44Kr44Ov44Km44OBLOODnuODquOCqA0KK+OCquOCquODpOODnizjg47jg5bjgrMNCivjgrfjg7Pjg5/jg6fjgqYs44K444Ol44Oz44KzDQor44K/44OB44Ov44OALOODiuOCquODnw0KK+OCquOCquOCr+ODnCzjg4bjg4Tjg6QNCivjg4jjgqbjgrTjgqYs44OS44Ot44Om44KtDQor44OK44Ks44Kv44OpLOOCv+OCq+ODj+ODqw0KK+OCpOODiOOCpizjgrHjg7Pjgr3jgqYNCivjg6Tjg57jgrbjgq0s44K744KkDQor44Kr44K244OeLOODj+ODq+ODpuOCrQ0KK+OCq+ODs+ODkOODpOOCtyzjg5Ljg4fjgqoNCivjgrXjgrXjg44s44Oh44Kk44KzDQor44Kr44Ov44K344OeLOODn+ODpuOCrQ0KK+OCt+ODs+OCsOOCpizjg47jg6rjgqLjgq0NCivjgrPjgqTjgrrjg58s44K/44Kv44OkDQor44Kr44ON44KzLOODqOOCt+ODnw0KK+OCs+ODkOODpOOCtyzjgrnjgqjjg4TjgrANCivjgqvjg6Ljgrfjgr8s44K344Ol44Km44Kk44OBDQor44K/44Og44OpLOOCteODgeODqA0KK+ODj+OCu+OCrOODryzjgr/jgqvjgrcNCivjgq/jg6rjg4/jg6ks44OS44Ot44OV44OfDQor44Kr44OK44Kq44KrLOODkuODreOCtw0KK+OCs+ODkOODpOOCtyzjg6bjgq3jgr/jgqsNCivjg5LjgqTjgrcs44K/44Kr44Om44KtDQor44OL44OY44KkLOOCpOOCr+OCsw0KK+ODnuODq+OCvyzjg4rjgqrjgrMNCivjg4jjgqrjg6Tjg54s44OK44OfDQor44K744Kt44K244OvLOODgeOCqw0KK+OCouODquODnizjg6Tjg6jjgqQNCivjgq/jg6rjg4/jg6ks44OI44Oi44KoDQor44K544Of44OOLOODn+ODjuODqw0KK+ODqOOCt+ODgCzjg5Ljg4fjgq0NCivjgq3jg47jgrfjgr8s44OI44Oi44KzDQor44Kq44OB44Ki44KkLOODn+ODpuOCrQ0KK+OCpuODnuODpOODj+ODqSzjg6Tjgrnjg58NCivjg5vjgr3jgqvjg68s44OS44Ot44KzDQor44OV44Kr44Ks44OvLOOCt+ODs+OCuA0KK+OCq+ODr+ODoOODqSzjgqjjgqTjgr7jgqYNCivjg57jg4TjgqQs44Kx44Kk44KzDQor44Oo44K344Oi44OILOOCv+OCq+ODkuODrQ0KK+OCpuODiuOCq+ODnyzjg4jjg6LjgrMNCivjgqvjg43jg57jg4Qs44K144Kt44KzDQor44Kr44Ov44Kr44OfLOODnuOCs+ODiA0KK+ODiOODqOODgCzjg5Ljg4fjgqoNCivjg6Tjg44s44Ki44Kt44OS44KzDQor44K744KtLOOCv+OCq+OCouOCrQ0KK+ODiuOCq+ODi+OCtyzjg5Ljg4jjgrcNCivjg4/jgrfjg6Ljg4gs44Ki44KtDQor44OV44Kr44OkLOOCr+ODi+OCouOCrQ0KK+ODn+ODpOODouODiCzjg5Ljg4fjgq/jg4sNCivjgr/jgrHjg4As44OI44K344OV44OfDQor44Of44Ok44K244OvLOODn+OCreOCqg0KK+OCpOOCseODgCzjgqvjgrrjg5LjgrMNCivjgqrjgrfjg54s44OS44Ot44K3DQor44OK44Kr44Og44OpLOOCqOODquOCsw0KK+OCtOODiOOCpizjg6bjgqbjgqTjg4Hjg63jgqYNCivjgqbjgrfjgrTjg6Es44OS44Ot44K3DQor44Kv44Ov44Ok44OeLOODkuODreOCouOCrQ0KK+ODhOOCq+ODgCzjg4Hjg4/jg6sNCivjg6Djg6njgr8s44OB44Kr44KqDQor44K144OI44KmLOODqOOCt+OCv+OCqw0KK+OCr+ODreODgCzjgqvjgqrjg6oNCivjgrnjgq7jg6Ljg4gs44Kv44OL44KqDQor44Ok44K544OALOOCs+OCpuOCpOODgQ0KK+OCreOCpuODgSzjgrXjg4jjgrcNCivjgrHjg4njgqbjgqTjg7Ms44K444Ol44Oz44Kk44OBDQor44K/44OK44KrLOODgeOCqw0KK+ODiuOCq+ODoOODqSzjg5Ljg63jgqLjgq0NCivjgq/jg6rjg4/jg6ks44OI44Oo44OS44KzDQor44K/44Kt44K244OvLOOCq+OCuuODjuODqg0KK+OCpuOCqOODgCzjg5Ljg4fjgqLjgq0NCivjgrPjg5ks44OS44OH44Ki44KtDQor44OO44Kw44OBLOODleODn+OCqg0KK+OCs+ODs+ODjizjg4jjg6Ljg5LjgrMNCivjg4jjg5/jgr8s44Kr44OK44OhDQor44Kq44Kq44K/LOODpuOCreOCsw0KK+ODnuOCrSzjg5Ljgqvjg6sNCivjgqLjg57jg44s44Kx44Oz44Kk44OB44OtDQor44Kz44Of44ONLOOCouOCreODkuODrQ0KK+OCteODiOOCpizjg4jjg6Ljg6QNCivjgqTjg57jg4cs44Om44Km44K4DQor44Oe44OE44OK44KsLOOCv+ODhOODpA0KK+OCueOCuuOCrSzjgr/jgrHjgrcNCivjg57jg4Tjgqos44Kr44KoDQor44K144Kk44OI44KmLOOCreODp+OCpuOCpOODgQ0KK+ODqOOCt+OCtuODryzjg6/jgr/jg6sNCivjgqbjg6Tjg54s44Kx44Kk44KzDQor44Ki44Oz44OJ44KmLOODnuOCteODkuOCsw0KK+OCueOCuuOCrSzjgrXjg4jjgrcNCivjg6jjgrfjg4As44Kr44K644OI44K3DQor44Kr44Ov44OALOOCqOODn+OCsw0KK+ODleOCr+ODgCzjgrHjgqQNCivjg6Ljg6rjgrfjg54s44Oe44K144K3DQor44OE44OB44OALOODiOOCquODqw0KK+OCteOCq+OCpCzjg5/jg4Hjg6TjgrkNCivjg4Tjgqvjg4As44Ki44OE44K3DQor44OP44OD44OI44OqLOODkuODreOCtw0KK+OCv+ODoOODqSzjgrPjgqbjgrgNCivjg6/jgr/jg4rjg5ks44OK44Kq44KtDQor44Kz44K544KuLOOCv+OCq+OCouOCrQ0KK+ODkuODqeOCvyzjgrHjgqTjgr8NCivjgrnjgq7jg6Tjg54s44Oo44K344Om44KtDQor44Oi44Oq44Kr44OvLOODouODiOODj+ODqw0KK+OCq+ODieOCvyzjgqLjgq3jg5Ljg60NCivjgrXjg44s44OS44Ot44K3DQor44Kq44K244KtLOODhuODhOOCqg0KK+ODqOOCs+ODnuODhCzjgqvjg4Tjg5LjgrUNCivjgr/jg4rjgqss44Om44Of44KzDQor44Kk44K344K144KrLOOCs+OCpuOCpOODgeODreOCpg0KK+OCpOOCt+OCtuODryzjg6bjgrrjgq0NCivjgrPjg5Djg6Tjgrcs44K444Ol44OzDQor44Oo44K344OALOODiOODouOCouOCrQ0KK+OCreODoOODqSzjg6rjgqjjgrMNCivjgqrjgqrjg4Tjgqss44K/44Kx44OrDQor44Ki44OA44OBLOOCv+OCq+OCtw0KK+OCouOCq+OCteOCqyzjgrfjg6fjgqbjgrgNCivjg5/jg6Tjg6Ljg4gs44Of44OJ44OqDQor44Kk44OB44Og44OpLOOCq+OCquODqg0KK+OCquOCt+OCvyzjg47jg5bjg6bjgq0NCivjg5vjg7Pjg4As44Kq44K144OgDQor44Kr44Ok44OM44OeLOOCs+OCpuOCuA0KK+ODjuOCtuOCrSzjg6bjgqbjgrgNCivjgqvjg4njg6/jgq0s44OV44K444KoDQor44Kq44K4LOODpOOCueODkuODrQ0KK+OCv+OCsOODgSzjg6Tjgrnjg4Tjg40NCivjgr/jgrHjgqTjgrcs44Ki44Kt44OIDQor44OS44Op44KkLOOCt+ODs+OCuA0KK+OCq+ODiuOCtuODryzjgrjjg6Xjg7PjgqTjg4ENCivjg5Xjg6vjgqvjg68s44Ko44Oq44KrDQor44Oi44Oq44OK44KrLOODnuOCteODqA0KK+OCouODqeOCpCzjg4jjgrfjgqLjgq0NCivjgr/jg4rjgqss44Oo44K344OO44OqDQor44K344Of44K6LOODqOOCt+ODpuOCrQ0KK+OCpOODgeODj+ODqSzjg57jgrXjg6sNCivjgq3jgr/jg47jg4/jg6ks44OS44OH44OS44OtDQor44Kt44K/44KqLOODiOODouODkuODiA0KK+ODouODquODouODiCzjg5Ljg4fjgq0NCivjgq3jgr/jg6Djg6ks44Oq44Kr44KzDQor44K144K144K244OvLOOCv+OCseOCtw0KK+ODnuODhOOCquOCqyzjg4rjgqrjgrMNCivjgrPjgqbjg6ks44K/44Kr44OS44OtDQor44Of44OvLOODkuODreOCsw0KK+ODqOOCt+OCquOCqyzjg5Ljg63jgrMNCivjg5vjg6os44Om44Of44KzDQor44K144Kk44OI44KmLOODqOOCt+ODkuODiA0KK+ODiuOCrOOCuyzjg5Ljg4fjg4/jg6sNCivjg6Ljg6rjgrfjg54s44OS44Ot44KrDQor44Kq44Ov44OqLOODnuOCreOCsw0KK+OCv+ODiuOCqyzjg5/jgq0NCivjg4bjg6njg6Djg6ks44OI44K344Oe44K1DQor44Kz44OQ44Ok44K3LOOCreODp+OCpuOCvuOCpg0KK+OCteOCpOODiOOCpizjg5Ljg63jg47jg6oNCivjgq3jg6Djg6ks44K/44Kx44K3DQor44OP44K344Oi44OILOODqOOCt+ODkuOCtQ0KK+ODiuOCq+OCrOODryzjg4bjg4Tjg6QNCivjg4rjgqvjg6Djg6ks44Oe44K144Kq44KtDQor44OP44Ku44Ov44OpLOOCr+ODi+ODkuOCsw0KK+ODi+OCt+OCq+ODryzjg4jjg6Ljg58NCivjgq3jgr/jgrjjg54s44Kz44Km44Kk44OBDQor44K/44Kr44Km44OpLOODpOOCueOCqg0KK+OCouOCteODgCzjg5Ljg4fjg6gNCivjgq3jgr/jgrrjg6Es44Ki44Op44K/DQor44ON44Oi44OILOODr+OCq+OCsw0KK+OCv+ODiuOCqyzjg57jgrXjg5LjgrMNCivjgr/jg4rjgqss44Kr44K644OS44OtDQor44Ki44OA44OBLOOCq+OCuuODkuOCsw0KK+ODj+ODqSzjg57jgrXjg6bjgq0NCivjgqLjgqvjg57jg4Qs44Kx44Oz44K0DQor44Kk44Oe44Og44OpLOOCouODhOOCtw0KK+ODoOODqeODpOODnizjg6jjgqbjgrgNCivjgr/jgrHjgqbjg4Es44K/44Kr44Om44KtDQor44K644K3LOODpOOCueOCqg0KK+OCs+ODkOODpOOCtyzjgqvjg5sNCivjg6Tjg57jgrbjgq0s44Ki44OE44KzDQor44OP44Oe44Kw44OBLOOCveOCpuOCpOODgQ0KK+OCq+OCsuODpOODnizjg5Ljg63jg6bjgq0NCivjgqvjg4rjg6Ljg6os44OS44OH44KtDQor44Kr44OI44OqLOODhOODqOOCtw0KK+OCouODqeOCpCzjgrfjg6fjgqbjg5jjgqQNCivjg5/jg6Tjgr8s44Oe44Oq44KzDQor44K544K644KtLOOCqOODn+OCsw0KK+ODj+ODq+OCvyzjg5Ljg4fjg6QNCivjg4rjgqvjgrbjg68s44K/44Kr44K3DQor44K544KsLOODnuOCteODpuOCrQ0KK+ODnuOCqOODh+ODqSzjg4bjg6vjg6bjgq0NCivjgqLjg6njg57jgq0s44Ki44OE44K3DQor44Kt44K/44OOLOOCv+ODhOODpA0KK+ODqOOCt+ODjizjgrfjgrLjg5/jg4QNCivjg5/jgq/jg6rjg6Qs44Oo44Km44KzDQor44Kq44Kv44OO44KuLOOCseODs+OCuA0KK+OCteOCr+ODqeOCpCzjg6jjgrfjgqvjg4QNCivjgrPjg7Pjg4ks44OK44KqDQor44K544K644KtLOODjuODquOCsw0KK+OCr+ODquODj+ODqSzjgq/jg5/jgrMNCivjg6DjgrPjgqbjgrDjg4Es44Oe44KtDQor44OV44K444KkLOOCouOCreODkuODrQ0KK+OCq+OCsizjg6bjgqbjgrMNCivjg57jgqjjg4As44OO44OW44OkDQor44OK44Ks44Ob44OqLOODpuOCreOCsw0KK+ODhOOCuCzjg6Ljg6LjgrMNCivjgq3jg6Djg6ks44K344Oz44K/44Ot44KmDQor44Oe44OE44KqLOOCs+OCpuOCpOODgQ0KK+OCv+ODhuODjizjg47jg6rjg6jjgrcNCivjgq3jg6Djg6ks44Oe44Kz44OIDQor44K544K244KtLOOCv+ODhOODpA0KK+OCpOODr+OCteOCrSzjg5/jg6Tjg5MNCivjgrXjg4jjgqYs44Om44OqDQor44OL44OD44K/LOODgOOCpOOCq+ODsw0KK+OCv+ODiuOCqyzjg57jg6oNCivjgrfjg57jg4As44Ki44Kr44ONDQor44K/44OL44Kw44OBLOODjuODquOCsw0KK+ODm+ODs+ODgCzjgrnjg4rjgqoNCivjg4rjgqvjgr/jg4ss44K/44Kr44K3DQor44Of44Ok44K444OeLOOCt+ODpeODsw0KK+OCr+OCreODpOODnizjgrPjgqbjgrgNCivjgrvjgq3jg40s44Oq44On44Km44K/44Ot44KmDQor44Oo44K344OP44OpLOOCteODiOODqw0KK+ODkuODqeOCvyzjg57jgrXjgqvjgroNCivjg4rjgqzjgrXjg68s44OI44K344KqDQor44OK44Kr44Ks44KtLOOCseOCpOOCsw0KK+OCr+ODreOCq+ODryzjg6Tjgrnjg6bjgq0NCivjgqvjgrHjgr/jg6os44Kx44Oz44K444Ot44KmDQor44Kk44OI44KmLOOCq+ODqOOCsw0KK+ODnuOCqOOCq+ODryzjgrjjg6Xjg7PjgrgNCivjg57jg4Tjg4As44Ki44Kt44KqDQor44Kv44Ov44OP44OpLOODnuOCs+ODiA0KK+OCpOOCpOOCuuOCqyzjg6/jgqvjgrMNCivjg57jgrjjg54s44OS44OH44Om44KtDQor44Og44Op44K/LOODiOODouOCsw0KK+OCouOCreOCpOOCsSzjg6bjgqbjgqTjg4ENCivjg4rjg5/jgq0s44OG44OE44OkDQor44Oo44K344OOLOODn+OCreOCsw0KK+OCueOCuuOCrSzjg6bjgq0NCivjgr/jg6Djg6ks44Of44OJ44OqDQor44Kr44Oh44OALOOCt+ODs+ODpA0KK+ODi+OCtyzjg6TjgrnjgrcNCivjgqTjg4rjgqrjgqss44Kx44Oz44K4DQor44Kk44Ov44K144KtLOODpuOCpuOCuA0KK+OCq+ODs+ODgCzjg4rjg58NCivjgr/jg4As44Ko44Kk44KtDQor44Km44OELOODiOODouOCouOCrQ0KK+OCt+ODnuODgCzjg57jgrXjgqoNCivjg6jjgrfjg4As44OS44Ot44Om44KtDQor44Kq44Kv44Ks44OvLOODqOOCt+ODleODnw0KK+OCueOCuuOCrSzjgrHjgqTjgrMNCivjgr/jg7Pjg50s44Of44ON44KzDQor44Ov44OALOODiuOCquOCsw0KK+OCpuODq+OCt+ODj+ODqSzjgqjjgqTjgrnjgrENCivjgqTjgqTjgqos44K/44Ot44KmDQor44OL44Kk44OP44OpLOOCreODp+OCpuOCsw0KK+OCquODoOODqSzjgr/jgq/jg6QNCivjgqTjg47jgqbjgqgs44K844Oz44K444Ot44KmDQor44Oi44Oq44OK44KsLOODiOOCt+ODkuODrQ0KK+OCteODjizjg5Ljg63jgrcNCivjg4rjgqvjgr/jg4ss44Oe44K144Ok44K5DQor44Ki44OZLOODnuOCteODiuOCqg0KK+OCpuODgeODgCzjgrHjg7PjgrgNCivjg5Ljg63jgr8s44Om44Km44K144KvDQor44Kk44Ov44Kv44OpLOOCq+OCpOOCuOODreOCpg0KK+OCpOOCt+OCquOCqyzjg5Ljg4fjgqLjgq0NCivjg4jjgq3jgr8s44OK44OE44KzDQor44Kt44OO44K344K/LOODiuOCquOCueOCsQ0KK+ODn+OCuuODjizjgqLjgqTjgrMNCivjg6Tjgrnjgqgs44Oe44K144OfDQor44Kk44Ov44Oi44OILOOCteODiOODqw0KK+ODpOODnuOCuCzjg6bjgqvjg6oNCivjgrPjgrXjgqQs44Om44Km44KzDQor44Kv44OcLOODiOOCt+OCqA0KK+ODgeODkCzjg5Ljgqvjg6sNCivjg6Tjg4Tjgr/jg4ss44Ki44OE44K3DQor44Kk44Ks44Op44K3LOOCv+OCq+OCuuODnw0KK+OCouODqeOCq+ODryzjgqLjgqvjg40NCivjg4bjg6njgrXjgq0s44Oi44OI44Ki44KtDQor44K744K044KoLOOCteODiOOCsw0KK+ODiOOCr+OCt+ODnizjg57jgrXjgrMNCivjg5Djg7Pjg4njgqYs44K344On44Km44KzDQor44K/44Kt44K244OvLOOCseODs+OCuA0KK+ODn+OCuuOCteOCrSzjgrHjg7Pjgr/jg63jgqYNCivjgr/jgq3jgrDjg4Es44Kx44KkDQor44OS44Kq44KtLOODnuOCteOCtw0KK+ODiuOCq+OCpCzjgqLjg4Tjg58NCivjgqrjgqTjgqvjg68s44Os44Kk44KzDQor44Oe44OE44Og44OpLOODgeOCsOOCtQ0KK+OCqOODs+ODiSzjg6jjgrfjgqoNCivjgr/jgrjjg54s44K144OI44KzDQor44Ok44Oe44K244KtLOOCqOOCpOOCuA0KK+OCu+ODjuOCqizjgrPjgqbjgrgNCivjg4/jg6njg4As44OI44K344Oe44K1DQor44OV44Kv44KkLOODiOODouOCqw0KK+ODnuODhOOCpuODqSzjgrHjgqQNCivjgqvjg6/jg6Djg6ks44Om44Km44Kk44OBDQor44OG44Op44Oi44OILOOCv+OCq+ODn+ODgQ0KK+ODj+OCruODr+ODqSzjgr/jgq/jg58NCivjg4rjgqvjgrfjg54s44Ko44Of44KzDQor44Kt44OO44K344K/LOODn+ODgeOCqg0KK+OCouODqeOCpCzjg4Hjgrrjg6sNCivjg6Djg6njg6Tjg54s44K444Ol44Oz44KzDQor44K144Ko44Kw44K1LOODiOODouODnw0KK+OCv+ODiuOCqyzjg5/jg4TjgrMNCivjg57jgqjjg4As44Kq44K144OgDQor44Of44Ok44K244KtLOOCq+OCuuODnw0KK+OCpOOCseODmSzjgqLjgq3jg6kNCivjgq/jg6/jg5Djg6ks44K/44Kr44OO44OqDQor44Oo44OALOOCv+OCq+OCqg0KK+OCv+ODgeODkOODiizjg6TjgrnjgqLjgq0NCivjg6Tjg57jgrDjg4Es44Oo44K344Ki44KtDQor44Kk44K344OP44OpLOOCseOCpOOCsw0KK+OCv+OCreOCtuODryzjg57jgrXjgqLjgq0NCivjg5Ljg6njg44s44Oo44K344OW44OfDQor44Kr44Ov44K144KtLOOCv+OCq+ODqOOCtw0KK+ODpOODnuODouODiCzjg5LjgrXjg4jjgrcNCivjgqLjg6njgrss44Ki44OE44K3DQor44Ok44OK44Ku44K144OvLOODnuOCteODjuODlg0KK+OCt+OCquODpCzjgqLjgq3jgqgNCivjgrXjg4jjgqYs44Kz44Km44Kk44OB44Ot44KmDQor44Kr44OI44KmLOODkuODiOODnw0KK+OCquODjizjg6jjgrfjgr/jgqsNCivjgq3jgr/jg4/jg54s44Ok44K544Oe44K1DQor44K044OI44KmLOODjuODquOCsw0KK+ODi+ODjuODn+ODpCzjg57jg6bjg58NCivjgqbjgrnjgqQs44OI44Oi44OO44OqDQor44Of44K644K344OeLOOCv+OCseODqw0KK+OCueODieOCpizjg57jgrPjg4gNCivjgqTjgrHjg4As44Ki44Kt44KzDQor44OK44Kr44OS44Ks44K3LOOCouODquOCt+OCsg0KK+OCr+ODquODouODiCzjg63jg6/jg6sNCivjg4jjg4As44OS44Ot44K/44KrDQor44OP44Kr44Oe44K/LOOCouODhOODjuODlg0KK+OCv+ODi+OCsOODgSzjg4/jg6vjg58NCivjgqTjg57jgrzjgq0s44Kk44Kv44KzDQor44Ob44Oq44KqLOODnuODpuODnw0KK+OCq+OCueOCrCzjg4Tjg6jjgrcNCivjgqvjg6/jgrss44OK44Kq44KzDQor44K144OI44KmLOODkuODreODnw0KK+OCv+OCq+ODiuOCtyzjg47jg5bjgqLjgq0NCivjg57jg4Tjgrfjgr8s44K/44Kr44K3DQor44Ok44Kw44OBLOODkuODh+OCrQ0KK+OCq+ODjeOCsyzjgqvjgrrjg6bjgq0NCivjg5Ljg4Djgqss44Of44KqDQor44K144OD44K1LOOCv+OCpOODgQ0KK+OCveOCrCzjgr/jgq/jg6QNCivjgrnjgq7jgqbjg6ks44Kx44Oz44K/44Ot44KmDQor44K144OI44KmLOOCouODn+OCsw0KK+OCv+ODi+ODkOODpOOCtyzjgrXjg4HjgrMNCivjg4vjgrfjgqrjgqss44K/44Kr44K3DQor44OI44Oi44OK44KsLOODiuOCquOCrQ0KK+OCquOCquODj+OCtyzjg5Ljg4fjgq0NCivjg4rjgqzjgrfjg54s44K744Kk44K/DQor44K/44OL44Ks44KtLOOCu+OCpOOCsw0KK+OCs+OCpuODgCzjgrPjg5/jg4oNCivjgq3jg6jjg44s44K144OI44K3DQor44Ok44Oe44Kr44OvLOODiOOCt+OCqg0KK+ODiuOCq+OCuOODnizjg5Ljg63jgrcNCivjg6Ljg4bjgq4s44Kz44Km44K4DQor44Kq44Kq44OM44OeLOODpuOCv+OCqw0KK+OCteODiOOCpizjgrfjgrLjgqoNCivjg5Xjg6vjgqTjgqgs44Oo44K344KzDQor44Ki44Kk44Oi44OILOODouODiOODleODnw0KK+ODqOOCs+OCqizjgq/jg4vjgqoNCivjg4vjgrfjgqvjg68s44Kx44Oz44K4DQor44OT44OI44KmLOODqOOCt+ODiuOCrA0KK+OCreOCv+ODoOODqSzjgrfjg7Pjg6QNCivjg6Tjg57jgqvjg68s44K144OA44OP44OrDQor44OI44Of44K/LOOCv+OCseOCtw0KK+ODhOODgeODgCzjg5Ljg4fjg4gNCivjgqTjgrfjgrDjg60s44Oq44KoDQor44Oe44OE44KqLOODiOOCquODqw0KK+OCpuOCqOODouODiCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgqTjgqTjg4As44Of44Kt44KzDQor44K544K644KtLOOCt+OCsuODkuODrQ0KK+OCv+ODoOODqSzjgqvjgrrjg6jjgrcNCivjgqrjgq/jg4As44OO44Oc44OrDQor44Ob44OqLOODqOOCt+ODnw0KK+OCr+OCteODhOOCsCzjg6TjgrnjgrcNCivjg6Tjg57jg4As44Oe44K144OK44KqDQor44Ki44K144OP44OpLOOCv+OCq+ODkuODrQ0KK+ODiOOCr+ODgCzjg57jg7Pjg4rjg6oNCivjgqTjg4fjgr8s44Oo44K344OS44OtDQor44Kk44OI44KmLOODhuODq+ODn+ODgQ0KK+OCteODiOOCpizjgq3jgqTjg4Hjg63jgqYNCivjg4TjgrjjgrXjg68s44Kx44KkDQor44Kq44OOLOOCs+OCpuOCuA0KK+OCpOODr+ODnizjg47jg5bjgqLjgq0NCivjg4DjgqTjgrTjgq8s44K444Ol44Oz44Kk44OBDQor44Ok44Oe44Og44OpLOODqOOCt+OCq+OCug0KK+ODj+OCu+OCrOODryzjg4jjgrfjgqvjgroNCivjgqTjgq4s44K/44Kr44OS44OtDQor44Oe44Kr44OZLOODnuOCteOCq+ODhA0KK+OCquOCq+ODouODiCzjgqvjg4TjgqoNCivjgqrjgqrjg4/jg6ks44Om44Kt44OK44KqDQor44K744Kt44Ok44OeLOOCq+OCuuOCqg0KK+OCreOCv+OCuOODnizjg5Ljg63jgqLjgq0NCivjg4jjg6rjgqbjg58s44Oe44K144OS44OtDQor44Of44Ok44K244KtLOOCv+ODhuOCqg0KK+OCpuOCpCzjg6jjgrfjg5Ljg4gNCivjgq/jg6njg6Ljg4Es44Kr44K644OS44OtDQor44K344Kq44OM44OeLOODkuODh+ODiOOCtw0KK+ODqeOCpOOCvyzjgqTjgq/jgqoNCivjgrfjg6LjgrPjgqbjg5ks44OO44OW44Kr44K6DQor44K144Ov44OOLOODhuODq+OCqg0KK+OCteOCq+ODi+OCtyzjg6bjgqbjgrgNCivjgrXjgrXjgq0s44OI44K344KqDQor44K744Kk44OOLOOCseOCpOOCvuOCpg0KK+OCueOCuuOCrSzjgqLjgq3jg6jjgrcNCivjgrXjgqvjg6Ljg4gs44OI44K344KqDQor44K544K644KtLOOCt+ODreOCpg0KK+OCteODr+ODjizjgqvjg4Tjg6QNCivjgrfjgqws44OG44OE44OkDQor44K044OI44KmLOODiOOCr+ODnuOCtQ0KK+OCueODgCzjgrjjg6Xjg7PjgrgNCivjgrnjgrrjgq0s44Oo44K344KzDQor44K144Kr44Kt44OQ44OpLOODiOOCt+OCqg0KK+OCteODiOOCpizjgrHjg7PjgrgNCivjgrXjgqvjgrDjg4Es44Oo44K344OO44OqDQor44K544Ku44K144KtLOODn+ODhOOCr+ODiw0KK+OCueOCqOOCrSzjgr/jgqvjgrcNCivjgrnjgrrjgq0s44OO44OW44Ki44KtDQor44K344OQ44K/LOOCs+ODiOOCuA0KK+OCueOCruODpOODnizjgr/jg4DjgqoNCivjgrXjgqvjgqQs44Oe44K144Om44KtDQor44K344Of44K6LOOCv+ODgOOCtw0KK+OCueOCruODouODiCzjg4jjgrfjgqoNCivjgrXjg4jjgqYs44K/44Kv44K4DQor44K744KtLOOCquOCteODoA0KK+OCteOCr+ODqeOCpCzjg4/jg6vjg6bjgq0NCivjgrvjgq3jgrDjg4Es44Kz44K544KxDQor44K144OI44KmLOOCqOOCpOOCuA0KK+OCueOCuuOCrSzjg6bjgqbjg47jgrnjgrENCivjgrXjgqTjg4jjgqYs44K/44OA44KqDQor44K744Kt44ONLOODiOODqOODleODnw0KK+OCueOCuuOCrSzjg4Tjg4jjg6ANCivjgqTjgqTjg4As44Kt44Oo44K/44KrDQor44K544K644KtLOODkuODreOCtw0KK+OCteOCteOCrSzjg5/jg4TjgqoNCivjgrnjgqjjg4rjgqws44OI44K344KqDQor44K144Kr44Oi44OILOODkuODh+OCouOCrQ0KK+OCteOCpOODiOOCpizjg57jgrXjg58NCivjgrnjgqzjgqos44OG44OE44K4DQor44K344Oe44K6LOODn+ODjuODqw0KK+OCteOCpOODiOOCpizjg5Xjg5/jgqoNCivjgrfjg47jgrbjgq0s44Ki44Kt44OpDQor44K544K644KtLOODqOOCt+ODpuOCrQ0KK+OCueODiuOCrCzjgrHjg7MNCivjgrXjg4jjgqYs44Kq44K144OgDQor44K544K644KtLOOCseOCpOOCv+ODreOCpg0KK+OCu+OCreODjSzjgrXjg4Djg47jg6oNCivjgrXjgrXjgq0s44OI44K344KqDQor44K144Ov44OALOOCouOCreODqQ0KK+OCteOCpOODiOOCpizjgqvjgrrjgqoNCivjgrfjg6Ljgr7jg44s44K/44OA44OS44KzDQor44K544KoLOOCv+OCq+OCtw0KK+OCteODieODiOODoizjgqLjgq3jg6kNCivjgrvjgq3jg40s44Kx44Oz44K544KxDQor44K144OI44KmLOOCteODiOOCtw0KK+OCteODs+OCtCzjg6jjgrfjg47jg5YNCivjgrnjg4njgqYs44Kv44OL44Ki44KtDQor44K944OO44OALOODiuOCquODnw0KK+OCt+ODnizjg5/jg47jg6sNCivjgrXjg4jjgqYs44Oo44ON44K+44KmDQor44K144OI44KmLOODiOODn+OCqg0KK+OCt+ODluODpCzjgqvjgrrjgqLjgq0NCivjgrXjg4jjgqYs44Kr44K644KqDQor44K144OI44KmLOODhuODq+ODkuOCsw0KK+OCteOCq+OCvyzjg6jjg43jgqoNCivjgrXjgqTjg4jjgqYs44Kq44K144OgDQor44K544Ov44KtLOOCv+OCq+OCtw0KK+OCveODqizjgr/jgrHjgrgNCivjgrXjgqvjg6Ljg4gs44K344Ol44Oz44Kk44OBDQor44K344Op44Kk44K3LOODnuOCteODiOOCtw0KK+OCueOCuuOCrSzjgqLjgq3jgqoNCivjgrfjg57jg4As44OI44K344KqDQor44K544K644KtLOODnuOCteODkuODrQ0KK+OCueOCuuOCrSzjg6jjgrfjgqoNCivjgrXjg4jjgqYs44OP44K444OhDQor44K544K644KtLOOCreODqOOCtw0KK+OCteODiOOCpizjg4Tjg4jjg6ANCivjgrfjgrLjg57jg4Qs44Kt44Oo44K3DQor44K144Ks44OpLOOCv+OCq+ODiOOCtw0KK+OCteOCpOODiOOCpizjg6bjgq3jgqoNCivjgrfjg7PjgrDjgqYs44K/44Kr44KqDQor44K544Ks44OM44OeLOODhuODq+ODjuODlg0KK+OCveOCrCzjgr/jgrHjgrcNCivjgrXjgrXjgq0s44OO44OW44Om44KtDQor44K144OI44KmLOOCt+OCsuODqw0KK+OCteODr+ODgCzjg4bjg4TjgqoNCivjgr3jg54s44Kq44K144OgDQor44K344OQ44K/LOOCv+OCseOCqg0KK+OCteODiOOCpizjg5/jg4HjgrMNCivjgrXjg4jjgqYs44Kt44Oo44K3DQor44K344Oe44OALOODkuODh+OCqg0KK+OCteOCteOCrSzjg47jg5bjgqoNCivjgrXjg4jjgqYs44Kx44Oz44K4DQor44K144Kk44OI44KmLOOCt+OCsuODqw0KK+OCt+ODouODhyzjg5Ljg4fjgq0NCivjgrXjgrXjgq0s44OI44K344KqDQor44K144OI44KmLOODqOOCpg0KK+OCteODiOOCpizjg5LjgrXjgqoNCivjgrXjg6/jg4As44K344Oz44Kk44OBDQor44K344Ot44K144KtLOODqOOCpuOCpOODgQ0KK+OCt+ODkOOCpCzjgrnjgrnjg6ANCivjgrXjgqTjg4jjgqYs44Of44OB44KqDQor44K544K644KtLOODiOOCt+OCqg0KK+OCveOCrOODmSzjgqTjgrXjgqoNCivjgrvjgqzjg68s44OB44OS44OtDQor44K344Of44K6LOODn+ODjuODqw0KK+OCueOCuuOCrSzjg6jjgqbjgrjjg63jgqYNCivjgrfjg63jg6Tjg54s44Oo44K344OS44KzDQor44K344Kk44OKLOODqOOCt+OCqg0KK+OCteODpOODnizjg57jg6Ljg6sNCivjgrXjgqvjg6Ljg4gs44Oe44Kz44OIDQor44K144OI44KmLOODkuODreOCtw0KK+OCueOCuuOCrSzjgr/jg4Djg6jjgrcNCivjgrnjgrrjgq0s44OG44OE44Ot44KmDQor44K144K144K7LOOCq+ODhOODpuOCrQ0KK+OCteOCr+ODqeOCpCzjg57jgrXjgq0NCivjgrfjg57jg4As44K744Kk44K4DQor44K144OI44KmLOOCq+ODhOODkuODrQ0KK+OCt+ODouODjizjg6jjgqbjgrnjgrENCivjgrnjgrrjgq0s44Oo44K344OK44OqDQor44K544Ku44Oi44OILOODnuOCteOCqg0KK+OCt+ODn+OCuizjgr/jgrHjgqoNCivjgrXjg44s44Oo44K344OO44OWDQor44K544K644KtLOOCs+OCpuODmOOCpA0KK+OCt+ODnuODgCzjgqvjgrrjg5LjgrMNCivjgrnjgrrjgq0s44OP44Or44OS44K1DQor44K544Ku44OV44K4LOODkuODiOOCtw0KK+OCteOCq+OCpCzjgrfjg7PjgqTjg4ENCivjgrXjgqvjgrDjg4Es44Ko44Kk44K4DQor44K544Ks44Ov44OpLOODgOOCpOOCteOCrw0KK+OCt+ODjuOCuuOCqyzjgrjjg6Xjg7PjgqTjg4ENCivjgrfjgqws44Of44OE44KqDQor44K144Kr44Ks44OfLOODiOODqOODng0KK+OCueOCuuOCrSzjgqvjgrrjg6bjgq0NCivjgrnjgq7jg44s44OS44OH44KqDQor44K544Ku44Km44OpLOOCueOCueODoA0KK+OCt+ODn+OCuizjgqvjgrrjg58NCivjgrnjgrrjgq0s44K/44Kx44K344KyDQor44K144K144KzLOOCu+OCpOOCvuOCpg0KK+OCu+OCrSzjg6bjgq3jg6jjgrcNCivjgrXjg4jjgqYs44K/44OE44K4DQor44K344OeLOODkuODreOCtw0KK+OCueOCuuOCrSzjgq3jg6jjg4bjg6sNCivjgrXjgqvjg6Ljg4gs44Oo44K344Kr44K6DQor44K144K144KtLOODkuODreOCtw0KK+OCt+ODnuODgCzjgqTjgr3jgrgNCivjgrXjgqTjg4jjgqYs44K/44OA44OS44K1DQor44K344Kq44K/LOODiOODqOOCqg0KK+OCt+OCquODgCzjgqTjgrXjg6ANCivjgrnjg4As44Ko44Kk44K4DQor44K344Kk44OKLOOCseODs+OCvuOCpg0KK+OCt+OCquODjuODpCzjg4bjg4TjgqoNCivjgrXjgqTjgrfjg6fjgqYs44Ok44K544OS44OtDQor44K944Kk44OALOOCqOOCpOOCpOODgQ0KK+OCveODnizjgqvjg7PjgrgNCivjgrXjg4jjgqYs44OS44Ot44K3DQor44K144OI44KmLOOCv+OCseODn+ODgQ0KK+OCt+OCquODkOODqSzjgq3jg6jjgqgNCivjgrXjgrXjgqrjgqss44Oo44K344K/44KrDQor44K144K144KtLOODn+ODhOODjuODlg0KK+OCu+ODiCzjg5Xjg5/jgqoNCivjgrfjg6Xjg4njgqYs44K/44Kr44KqDQor44K144Kr44Oi44OILOODkuODreOCtw0KK+OCteOCr+ODnizjgr/jgqvjgrcNCivjgrfjg47jgrbjg68s44OE44Oo44K3DQor44K344Kq44OQ44OpLOODkuODreODpuOCrQ0KK+OCteOCr+ODqeOCpCzjg6bjgrrjg6sNCivjgrXjg4jjgqYs44Oh44Kw44OgDQor44K144Kv44Op44KkLOODiOOCt+OCqg0KK+OCteOCteODmSzjg5Ljg63jgrcNCivjgrXjg4jjgqYs44Oq44Ol44Km44K+44KmDQor44K544Ku44Km44OpLOODpuOCpuOCvuOCpg0KK+OCteOCq+OCpCzjg57jgrXjgqoNCivjgr3jg54s44OO44OW44KqDQor44K944Km44OkLOOCu+OCpOOCuA0KK+OCveODjeOCq+ODhCzjgqLjgq3jg6kNCivjgrvjgq3jg40s44K/44Kx44KqDQor44K544K644KtLOODjuODquOCqg0KK+OCu+OCreODjSzjg4jjgrfjg4TjgrANCivjgrXjgqvjgq3jg5Djg6ks44Kr44K644OI44K3DQor44K344Oi44Kr44Ov44OZLOOCseODsw0KK+OCteODr+ODoOODqSzjg4rjg6vjg58NCivjgrvjgq0s44K444Ol44Oz44Kk44OBDQor44K544K644KtLOOCs+OCuuOCqA0KK+OCteOCq+ODnuOCrSzjg5Ljg4fjgqLjgq0NCivjgrXjgqzjg68s44OI44K344OS44K1DQor44K544Ku44Ok44OeLOOCv+OCseODpuOCrQ0KK+OCueOCruODouODiCzjgrMNCivjgrvjgqos44Om44Km44K4DQor44K144Kk44OI44KmLOOCv+OCq+OCtw0KK+OCteOCq+OCpCzjg5/jgq3jgqoNCivjgrXjgq/jg6njgqQs44K/44OA44OS44OtDQor44K744Kt44ONLOODnuOCteODjuODqg0KK+OCteODiOOCpizjg4/jg4Tjg58NCivjgrfjg5/jgros44K/44Kr44K3DQor44K344Of44K6LOODiOOCt+OCqg0KK+OCteOCpOODiOOCpizjg57jgrXjgqoNCivjgrXjgq/jg6njgqQs44Oe44K144Ki44KtDQor44K544Ku44Ok44OeLOODpOOCueOCqg0KK+OCt+OCuuOCqyzjg5LjgrXjg4rjgqoNCivjgrfjg6njgqvjg68s44Ki44Kt44OpDQor44K144Kk44OI44KmLOODpuOCuuODqw0KK+OCteOCreODouODqizjgqTjg6/jgqoNCivjgrXjg4jjgqYs44OG44OE44KqDQor44K744Kt44Kw44OBLOOCquOCreODiOOCtw0KK+OCu+OCreODjSzjg47jg6rjgrMNCivjgrfjg5Djgr8s44Kz44Km44K444Ot44KmDQor44K544K644KtLOOCv+OCq+ODkuODrQ0KK+OCteOCpOODiOOCpizjg5LjgrXjgqoNCivjgrXjg4jjgqYs44OO44Oq44KqDQor44K744Kt44ONLOOCquOCteODoA0KK+OCteOCq+OCpCzjg4/jg6vjg5LjgrMNCivjgrXjgrXjgqos44K344Oz44K4DQor44K544OJ44KmLOODnuOCs+ODiA0KK+ODouODqizjgrfjg6fjgqbjgrgNCivjgrfjg5/jgros44Ko44Kk44K+44KmDQor44K144OI44KmLOODhuODq+OCqg0KK+OCueOCuuOCrSzjgqTjgrXjgqoNCivjgrfjg6Djg6ks44OS44Ot44OI44K3DQor44K344OQ44K144KtLOODkuODreOCtw0KK+OCueOCrOODnuOCvyzjgqvjgrrjgqoNCivjgrnjgrrjgq0s44OS44Ot44K3DQor44K344Kq44OO44OkLOOCreODqOOCq+OCug0KK+OCv+OCq+ODj+OCtyzjg4jjgrfjg63jgqYNCivjg4Tjgq3jg6Tjg54s44Kt44Kv44KqDQor44OE44OO44OALOODqOOCt+OCrQ0KK+OCv+OCq+ODj+OCtyzjg4rjgqrjg4gNCivjg4jjgq/jgrbjg68s44Oi44Oq44OP44OrDQor44K/44Kw44OBLOODnuOCteOCqg0KK+OCv+OCq+OCrizjg5Ljg4fjgqoNCivjgr/jgqvjg44s44OG44Or44Of44OEDQor44K/44OP44OpLOOCreODqOOCq+OCug0KK+ODiOODqOOCteODryzjgrPjgqbjgqTjg4ENCivjg4jjg6jjg57jgrks44Kx44Kk44Kk44OBDQor44K/44Kr44OP44K3LOODnuOCteODjuODlg0KK+OCv+OCseOCpuODgSzjg4bjgqTjgrgNCivjgr/jgq3jgqTjgrcs44Oq44On44Km44K4DQor44K/44Kr44Kk44K3LOOCt+OCsuOCqg0KK+OCv+OCq+OCteOCrSzjgrHjg7PjgrgNCivjgr/jg4vjgqzjg68s44OS44Ot44Om44KtDQor44K/44Kr44OP44K3LOODnuOCteODiOOCtw0KK+OCv+ODiuODj+OCtyzjgrPjgqbjgrgNCivjgr/jg57jgq0s44OS44Ot44K3DQor44OI44OQLOODnuOCteOCtw0KK+OCv+ODkOOCvyzjgr/jgqvjgrcNCivjg4Tjgrgs44K/44Kr44KqDQor44K/44OK44KrLOOCouODhOOCtw0KK+OCv+OCq+ODj+OCtyzjg57jgrXjg47jg6oNCivjg4jjgq/jg4rjgqws44Kt44Of44KqDQor44K/44Kw44OBLOODnuOCteOCqg0KK+OCv+OCreOCtuODryzjgqvjg4TjgrfjgrINCivjg4jjg58s44K/44ON44Oe44K1DQor44OE44K4LOOCseOCpOOCsw0KK+OCpuODgeODgCzjg4jjgrfjgqoNCivjgr/jg4rjgqss44Kk44Ov44KqDQor44OE44ON44Oo44K3LOODjuODquOCq+OCug0KK+OCv+OCq+ODjizjg6Djg43jgqoNCivjgr/jgqvjg4/jgrcs44Om44Kt44OBDQor44K/44Kr44Ok44OK44KuLOODqOOCpuOCpOODgQ0KK+OCv+OCseODgCzjgrHjgqTjgrnjgrENCivjgr/jg5ws44Om44K/44KrDQor44K/44OK44KrLOOCq+OCuuOCqg0KK+OCv+OCseOCpuODgSzjg57jgrXjgq0NCivjgr/jgqvjg6Tjgrks44OI44Oo44OfDQor44OE44OB44OkLOODpuODj+ODhA0KK+ODiOOCr+ODiuOCrCzjgrHjg7PjgrgNCivjg4Tjg4Hjg4As44OK44Kq44Kr44K/DQor44OE44Oc44KkLOOCqOOCpOOCqOODhA0KK+OCv+OCq+ODj+OCtyzjg57jgrXjgrfjgrINCivjg4Tjgqvjg6Ljg4gs44K144OA44OgDQor44K/44OK44KrLOOCt+OCsuODqw0KK+ODiOODouODhOODjSzjgrnjgrnjg6ANCivjg4Hjgrgs44OI44K344OP44OrDQor44K144OI44KmLOOCu+OCpOOCuA0KK+OCv+OCq+OCvyzjg4Tjg43jgqoNCivjg4jjg4/jgr8s44Oo44K344OfDQor44K/44Kr44OP44K3LOODn+ODjuODqw0KK+OCv+OCq+ODj+ODnizjg6jjgrfjgqLjgq0NCivjg4bjg6njgrXjg68s44OK44Kq44KzDQor44K/44Kr44OQ44Ok44K3LOOCt+ODp+OCpuOCuA0KK+ODhuODqeODgCzjgrfjg6XjgqbjgrgNCivjg4Tjgqvjg4As44K744Kk44K4DQor44K/44OK44KrLOODkuODh+OCqg0KK+ODiOODquODnuODqyzjgr/jg5/jgqoNCivjg4Tjg4Hjg4As44Oe44Oi44OrDQor44K/44Kt44Oi44OILOODiOOCt+ODkuOCsw0KK+OCv+OCreOCpCzjg5Ljg4fjgqLjgq0NCivjgr/jg43jg4As44Kx44Oz44K4DQor44K/44Og44OpLOODqOOCt+ODjuODqg0KK+OCv+ODieOCs+ODrSzjg5LjgrXjgqoNCivjgr/jgqvjgqos44Oe44K544OfDQor44K/44OK44KrLOODkuOCq+ODqw0KK+OCv+OCq+ODj+OCtyzjg4/jg4TjgqoNCivjgr/jgqvjg4/jgrcs44K344Ky44Om44KtDQor44K/44Kr44OP44K3LOODleOCuOOCqg0KK+ODiOODn+OCvyzjg4jjgqrjg6sNCivjgr/jgqvjg4/jgrcs44Ki44OE44OO44OqDQor44K/44OL44Kw44OBLOODn+ODgeOCouOCrQ0KK+OCv+ODiuOCqyzjg6bjgqbjgr7jgqYNCivjg4Tjg5zjgqQs44OS44Ot44OfDQor44K/44Kx44Km44OBLOODm+ODluODsw0KK+ODhOODgCzjg4jjg6jjgrcNCivjgr/jgrHjg4As44Oe44K144Om44KtDQor44K/44Kx44KkLOOCt+OCsuOCqg0KK+ODhOOCuOOCq+ODryzjg6bjgqbjgqTjg4ENCivjgr/jgrHjg6Djg6ks44K744Kk44K444OlDQor44K/44KtLOODnuOCteOCouOCrQ0KK+OCv+OCq+ODgCzjg57jgrXjgqLjgq0NCivjgr/jgq3jgrbjg68s44K344Ky44OrDQor44K/44OK44KrLOODnuOCteOCuA0KK+OCv+ODi+ODoOODqSzjgr/jgrHjg6jjgrcNCivjg6jjgrfjgrbjg68s44Oe44K144OP44OrDQor44OE44ON44Kr44OvLOOCv+ODreOCpg0KK+OCv+ODiuOCqyzjg5Ljg63jgrcNCivjgr/jgqvjg4As44Kr44OE44KqDQor44OE44OrLOOCouOCreODqQ0KK+OCv+ODiyzjg57jgrXjg5Ljg60NCivjgr/jgrDjg4Es44Kk44K144KqDQor44K/44OK44KrLOOCuOODpeODs+OCvuOCpg0KK+OCv+ODi+OCsOODgSzjgqvjgrrjg5Ljg60NCivjgr/jg4rjgqss44OO44Oq44Of44OEDQor44OE44K4LOODpuOCpuOCpOODgQ0KK+OCv+ODiuOCqyzjgqvjg4Tjg58NCivjg4Tjg6bjgq0s44OS44K144KqDQor44K/44Oe44OrLOODnuOCteODnw0KK+ODhOODgeODpCzjgrHjgqTjgrgNCivjg4Tjg6vjgqrjgqss44OO44OW44KqDQor44K/44Kr44OP44K3LOODhuODhOOCqg0KK+OCv+OCq+ODj+OCtyzjg5/jg4TjgrMNCivjg4jjgqbjg5Xjgq/jgrgs44OI44K344KqDQor44K/44OK44KrLOOCquOCreODhOOCsA0KK+OCv+OCq+OCrizjgq3jg6fjgqbjgrMNCivjgr/jgqvjg4/jgrcs44Oo44K344OS44K1DQor44K/44OL44Kw44OBLOODquODp+OCpuOCuA0KK+ODiOODqOODgCzjg5Ljg4jjgrcNCivjgr/jgqvjgq4s44K/44Kx44K3DQor44K/44Kx44KkLOOCt+OCsuODqw0KK+ODhOODgCzjg5Xjg5/jgqoNCivjg4Tjg43jg5Ljg60s44K444Ol44Oz44K4DQor44K/44Kt44K244OvLOODiOOCt+OCqg0KK+OCv+ODgeODkOODiizjgrTjgqTjg4ENCivjgr/jgqvjg4/jgrcs44Kr44OE44Om44KtDQor44K/44OL44Kw44OBLOOCs+OCueOCsQ0KK+OCv+OCseODgCzjgqvjgrrjg4gNCivjg4Tjg4Hjg6Qs44Kx44Oz44Kk44OBDQor44K/44Kr44OP44K3LOODiOOCt+OCouOCrQ0KK+OCv+ODjuOCpuOCqCzjg5LjgrPjgrXjg5bjg63jgqYNCivjgr/jgqvjg5Djgr/jgrEs44Oe44K144OO44OWDQor44K/44Kr44OP44K3LOODnuOCv+OCteODluODreOCpg0KK+ODleODiuOCrSzjg4bjg6vjg6TjgrkNCivjgr/jgrHjg4As44Kr44OE44Oe44K1DQor44OI44Kv44OK44KsLOOCv+ODhA0KK+OCouOCteOCpCzjg6bjgqbjgrgNCivjgr/jgqvjg4/jgrcs44Of44Kt44KzDQor44K/44Kr44OP44K3LOODjuODquOCqg0KK+OCv+OCrOODryzjgrfjg6fjgqbjgqTjg4ENCivjgr/jg4rjgqss44OO44OW44Om44KtDQor44K/44OB44Kr44OvLOOCv+OCseOCtw0KK+OCv+OCsOODgSzjgqvjgrrjg6jjgrcNCivjgr/jgqvjgrXjgq0s44Ki44Kt44OpDQor44K/44Oe44Kq44KtLOOCt+OCuuOCqg0KK+OCv+ODiuOCqyzjgrvjgqTjgqTjg4Hjg63jgqYNCivjgr/jgqvjg44s44K344OzDQor44K/44Kx44Km44OBLOOCt+OCsuODqw0KK+ODhOODgCzjgrvjg7PjgrgNCivjgr/jgqvjg4rjg58s44Oe44K144OrDQor44OE44Kt44OK44OvLOODqOOCt+ODiuOCqg0KK+ODiOODn+ODouODqizjgrnjgrnjg6ANCivjgr/jgrHjg4As44OI44Kq44OrDQor44OI44Ks44K3LOODhuODhOODkuOCsw0KK+ODhOOCuuOCrSzjgrfjgrLjg4jjgrcNCivjg4jjg5Pjgr8s44OO44OW44Ki44KtDQor44OI44Oi44OK44KsLOODhOODjeOCq+OCug0KK+ODhOODhOOCpCzjgrfjgrLjgqLjgq0NCivjgr/jgqvjgq4s44K444Ol44Oz44K4DQor44K/44OL44Kw44OBLOOCq+OCuuODiOOCtw0KK+OCv+OCq+ODjizjg4jjgrfjg5Ljg60NCivjgr/jg4rjgqss44K144OI44K3DQor44OI44Oe44OE44OqLOOCt+ODreOCpg0KK+OCv+OCq+OCrizjgqTjg4TjgqoNCivjgr/jgqvjgrfjg54s44OV44Of44KqDQor44K/44OP44OpLOODqOOCt+OCouOCrQ0KK+OCv+ODiuOCqyzjgqvjgrrjgrMNCivjgr/jgqvjg4As44Oo44K344KqDQor44OI44Oq44KkLOODn+ODhOODpuOCrQ0KK+OCv+OCseODmSzjg47jg5bjg6bjgq0NCivjg4Tjgqvjg6Ljg4gs44Ki44Kt44KqDQor44K/44Og44OpLOODjuODluODkuODrQ0KK+ODiOODn+ODiuOCrCzjgrXjgqvjgqgNCivjgr/jgqvjgqTjg68s44K144OI44K3DQor44K/44OQ44K/LOOCseODs+OCuA0KK+OCv+OCq+ODj+OCtyzjgq/jg4vjgqoNCivjg4bjg7Pjg53jgqbjg6rjg7Ms44K944Km44Kk44OBDQor44OG44Op44Km44OBLOOCteODgOODpuOCrQ0KK+OCv+OCq+ODj+OCtyzjgq3jg6jjgrcNCivjgr/jgqvjgrss44OB44Kr44OpDQor44K/44Kx44Og44OpLOODouODiOOCpA0KK+OCv+ODoOOCq+OCpCzjg5Xjg5/jgqoNCivjgr/jgqvjg4/jgrcs44Om44Km44K4DQor44K/44Kx44OELOOCq+ODhOOCuA0KK+OCv+ODjuOCquOCqyzjgrnjgrnjg6ANCivjgr/jgqvjg4/jgrcs44K/44OA44K3DQor44OI44Kq44Ok44OeLOOCreODqOODjuODlg0KK+OCv+OCseOCpuODgSzjgqLjg4TjgrcNCivjgr/jgqvjg4/jgrcs44Oe44K144KqDQor44Km44K344KqLOODpuOCuuODqw0KK+OCpuOCueOCrizjgqvjgrrjg5Ljg60NCivjgqbjg4Hjg6Tjg54s44Oo44Km44Kk44OBDQor44Km44Oh44OALOOCq+OCuuOCueOCsQ0KK+OCpuOCseODouODqizjg57jgrXjg4oNCivjgqbjg4Hjg4As44Of44OB44OkDQor44Km44Ko44OALOODkuOCteOCqg0KK+OCpuODgeODgCzjgrHjgqTjgrgNCivjgqbjg4Tjgq0s44OG44OE44KqDQor44Km44Ko44OALOODn+OCreODkuOCsw0KK+OCpuODgeODgCzjg5Ljg4fjgq0NCivjgqbjgqjjg4/jg6ks44K344Ol44KmDQor44Km44Ko44Og44OpLOODjuODluODpA0KK+OCpuODgeODgCzjgrXjg4Djg6bjgq0NCivjgqbjg4Hjg6Djg6ks44Kx44Kk44Kk44OBDQor44Km44OB44OALOOCseODs+OCueOCsQ0KK+OCpuODgeODgCzjgrHjgqTjgqTjg4ENCivjgqbjgqjjgq0s44Ki44Kt44KzDQor44Km44Kr44K4LOODnuOCteODhuODqw0KK+OCpuODgeODgCzjg57jgrXjgqLjgq0NCivjgqbjgqjjg6Djg6ks44OS44OH44KqDQor44Km44K344KqLOODiOOCr+OCuA0KK+OCpuODoeODoOODqSzjg4jjgrfjgqoNCivjgqbjg6Hjgrfjg54s44Oq44Kt44OE44KwDQor44Km44Kz44OzLOOCq+OCquODqw0KK+OCpuODgeOCpOOCsSzjgrjjg6Xjg7PjgqTjg4ENCivjgqbjg6vjgrfjg44s44K/44Kr44Ki44KtDQor44Km44OB44OK44K3LOODmOOCpOOCvw0KK+OCpuOCsOOCtSzjg57jgrXjg6bjgq0NCivjgqbjg44s44OI44K344OS44OHDQor44Km44Ko44KtLOODn+ODjuODqw0KK+OCpuOCqOODouODiCzjgrHjg7MNCivjgqbjgqjjg6Djg6ks44Om44Kt44KqDQor44Km44Ko44OP44OpLOODkuODreOCtw0KK+OCpuOCqOODgCzjgrfjg7Pjg5rjgqQNCivjg6/jgr/jg4rjg5ks44OS44K144Om44KtDQor44Ov44K/44OK44OZLOOCq+ODhOODnw0KK+ODr+OCv+ODiuODmSzjgq3jg7Pjg6QNCivjg6/jgqvjg6Djg6ks44Ok44K544OtDQor44Ov44K/44OK44OZLOODkuODh+OCuA0KK+ODr+OCv+ODiuODmSzjg6jjgrfjgr/jgqsNCivjg6/jgr/jg4rjg5ks44OS44Ot44OP44OrDQor44Ov44K/44OK44OZLOOCq+ODhOODiuODqg0KK+ODr+OCv+ODiuODmSzjg5Ljg4fjgqoNCivjg6/jgr/jg4rjg5ks44Kr44OE44OS44KzDQor44Ov44K/44OK44OZLOODpOOCueOCouOCrQ0KK+ODr+OCv+ODiuODmSzjgr/jg4DjgrcNCivjg6/jgq3jgr8s44Kz44Km44Oh44KkDQor44Ov44K/44OK44OZLOODiOOCreOCqg0KK+ODr+OCv+ODiuODmSzjgrPjg7PjgrTjgqYNCivjg6/jgr/jg4rjg5ks44Ki44Kt44OpDQor44Ov44K/44OK44OZLOOCquOCteODoA0KK+ODr+OCv+ODiuODmSzjgrHjg7PjgrgNCivjg6/jgr/jg4rjg5ks44K544Of44K/44OADQor44Ov44OALOODpOOCueOCtw0KK+ODr+OCv+ODiuODmSzjgr/jg4Tjg5LjgrMNCivjg6/jg4As44K/44Kx44Of44OEDQor44Ov44OALOODm+ODnuODrA0KK+ODr+OCv+ODiuODmSzjg57jgrXjgqLjgq0NCivjg6/jgr/jg4rjg5ks44Ki44Kt44OpDQor44Ov44K/44OK44OZLOOCt+OCsuOCouOCrQ0KK+ODr+OCq+ODkOODpOOCtyzjg5/jg43jgqoNCivjg6/jgr/jg4rjg5ks44OS44K144KqDQor44Kq44Kq44K/LOODnuOCs+ODiA0KK+ODleOCuOODr+ODqSzjgrnjg5/jgqLjgq0NCivjgrPjgqTjgrEs44Of44OB44KqDQor44Kr44K/44Kq44KrLOODhuODhOODpA0KK+ODkuODreOCt+OCsizjgq3jg6jjgrcNCivjgrfjg7Pjgrbjg68s44OS44Ot44K3DQor44Of44K644Kr44OfLOODnuOCteODn+ODhA0KK+ODiuOCq+OCuOODnizjgrHjgqTjgqTjg4ENCivjg5Xjgq/jgrfjg54s44K344Ky44KtDQor44OK44KrLOODkuODreOCtw0KK+ODkuODqeODpOODnizjg57jgrXjgrMNCivjg4vjg6/jg6Tjg54s44Kr44OE44K4DQor44K344Of44K6LOOCveOCpuOCuOODreOCpg0KK+ODleODq+OCteODryzjg4Tjg6jjgrcNCivjgrXjgq/jg6njgqQs44Of44K644ObDQor44K/44Kx44OK44KrLOOCouODhOODjuODlg0KK+OCueOCruOCpuODqSzjgqvjg6jjgrMNCivjgqvjg4jjgqYs44Kx44Oz44K4DQor44Ob44K344Kr44OvLOODnuOCteOCqg0KK+OCquOCrOODryzjgqTjgrXjgqoNCivjgqvjgrfjg6/jgq4s44KzDQor44K144Kr44KkLOODkuODreOCsw0KK+ODouODqizjg4/jg6vjgqoNCivjg5vjg7Pjg5ws44OO44OW44Om44KtDQor44Kk44Kk44K444OeLOODqOOCt+OCouOCrQ0KK+OCs+OCuOODnizjgr/jgqvjgqoNCivjgr/jgqvjg4/jgrcs44OO44Oc44OrDQor44OP44K/LOOCt+ODp+OCpuOCueOCsQ0KK+OCquOCrOODryzjgqLjgq3jg47jg6oNCivjg4Tjg4Hjg6Qs44Kr44OE44OkDQor44Kz44Ok44OeLOOCpOOCteOCqg0KK+ODleODq+ODnyzjg4bjg4TjgqoNCivjgq/jg6Es44OE44ON44KqDQor44Kv44Op44K/LOOCu+ODhOOCqg0KK+OCpuOCt+OCuOODnizjg57jgrXjgqvjgroNCivjgqjjg5Djg4gs44Kr44OE44OO44OqDQor44K144OI44KmLOODjuODluODpuOCrQ0KK+ODoOOCt+ODoyzjg4rjgqrjg5LjgrMNCivjg6bjgqLjgrUs44Oe44Oi44OrDQor44Kt44Kv44OBLOODiuOCquOCrQ0KK+ODnuODhOODkOODpOOCtyzjg4bjg6vjg6jjgrcNCivjg57jg4TjgqQs44Ki44Kt44OpDQor44K/44Kx44Og44OpLOODkuODreOCtw0KK+ODhuODqeOCt+ODnizjg6jjgqbjgrnjgrENCivjgq/jg6ks44OS44OH44Kv44OLDQor44Oe44OE44KkLOODqOOCt+OCqg0KK+OCpuOCqOODgCzjgqTjgrXjgqoNCivjg4/jg6Tjgrcs44K344Oz44Kk44OBDQor44Kr44Ov44OKLOODgOOCpOOCuOODreOCpg0KK+ODj+ODpOOCtyzjgqvjgrrjgqoNCivjg4fjg6Ljg4gs44Oe44K144OS44OtDQor44K344OW44KtLOOCv+OCseOCtw0KK+ODj+ODnizjgr/jg4TjgqoNCivjgqjjg7Pjg4ks44Kz44Km44K244OW44Ot44KmDQor44Of44Ok44Oi44OILOOCv+OCq+ODkuOCtQ0KK+ODnuODhOODgCzjg5Ljg63jgrcNCivjg6Tjg57jg6Ljg4gs44OI44Oi44KzDQor44Og44Op44Kr44OfLOOCt+OCsuOCqg0KK+OCquOCq+ODgCzjg4DjgqTjgq3jg4ENCivjg6/jgr/jg4rjg5ks44Kr44K644Om44KtDQor44Kk44Ov44K144KtLOOCouOCreODqA0KK+ODqOOCt+ODgCzjgrnjg5/jg6bjgq0NCivjgqrjgqrjg6Ljg6os44Oe44K144OO44OqDQor44Of44K644K/44OLLOODkuOCteOCqA0KK+OCueOCruOCpuODqSzjgqvjgrrjgqoNCivjg47jg4rjgqss44Of44OE44K/44KrDQor44Ov44K/44OK44OZLOOCpOOCteODoA0KK+OCteOCpOODiOOCpizjgr/jgrHjgqoNCivjgqrjgqrjgqvjg6/jg6ks44Ky44Oz44K/44Ot44KmDQor44Kr44OJ44Kk44KxLOOCv+OCseOCv+ODgA0KK+ODnuODhOODouODiCzjg47jg6rjgqvjgroNCivjg4rjgqss44K/44Kr44KqDQor44Kr44OI44KmLOOCseODs+OCvuOCpg0KK+OCq+ODr+OCpOOCtyzjg6bjgqbjgrMNCivjg4rjgqzjgrXjg68s44OE44OI44OgDQor44K544Ok44OeLOOCr+ODs+ODreOCpg0KK+OCr+ODnuOCt+ODrSzjg5Ljg63jgrcNCivjgr/jgqvjg5Djg6Tjgrcs44OS44OH44KqDQor44Kz44Oz44OJLOOCseODs+OCvuOCpg0KK+OCpOODiuODkCzjgrXjg4jjg6sNCivjgrPjg5Djg6Tjgrcs44OI44K344OS44OtDQor44Ok44Oe44Kw44OBLOODn+OCq+OCsw0KK+OCueOCuuOCrSzjg6bjgqbjgrgNCivjgqLjgq3jg6Tjg54s44Om44K/44KrDQor44K/44Kr44OALOOCouOCreODqQ0KK+OCteODr+OCpCzjg57jgrXjg5LjgrMNCivjg4rjgqvjgr8s44Kt44Oo44Om44KtDQor44Kk44K/44OQLOODpuOCpuOCpOODgQ0KK+OCr+ODi+OCruOCvyzjg6jjgqbjgqTjg4ENCivjg6Tjg57jg4As44Oo44Km44KzDQor44Ok44Oe44OALOODpuOCpuOCsw0KK+OCv+OCq+ODj+OCtyzjg6jjgqbjgqTjg4Hjg63jgqYNCivjgqbjg6Hjg6Djg6ks44OO44Oq44OS44KzDQor44Kz44OQ44Ok44K3LOODjuODluOCouOCrQ0KK+OCq+ODjeODn+ODhCzjgr/jg4DjgqoNCivjgq3jg4ks44Oe44K144K3DQor44Kr44ON44KtLOOCv+ODgOOCqg0KK+OCs+ODoOODqSzjg57jgrXjg5Ljg60NCivjg5Xjgrjjg6Ljg6os44Kx44Oz44Kk44OBDQor44Ok44Oe44K344K/LOODhuODq+OCv+OCsQ0KK+OCr+ODquODpOODnizjg57jgrXjg5Ljg60NCivjg4jjgrbjg68s44K/44Kr44K3DQor44Kk44K344KkLOODgeOCq+ODiOOCtw0KK+OCv+OCq+ODj+OCtyzjg6jjgqbjgqTjg4ENCivjgr/jg4rjgqss44Kr44K644OfDQor44Kk44K344K244KtLOODhuODhOOCqg0KK+ODj+ODqeODgCzjg57jgrXjg5Ljg60NCivjg4jjgq/jg5LjgrUs44K344Ky44Ok44K5DQor44Kk44K344Og44OpLOOCv+ODgOODkuODrQ0KK+OCpuOCqOODgCzjgr/jgqvjgrcNCivjgqrjg5Xjg4Es44Kv44OL44OS44OtDQor44Ok44OE44Or44KuLOODn+ODhOOCqg0KK+ODn+ODiuODiCzjg57jg6bjg58NCivjg6jjgrfjg4As44Oe44K144OS44OtDQor44Of44OK44OfLOODpOOCueOCqg0KK+OCquOCqyzjgqLjgq3jgqoNCivjgqTjg4Hjgqvjg68s44Kr44K644KqDQor44Kq44Kq44Kv44OcLOODkuODh+OCrQ0KK+OCpOOCt+ODgCzjg5Ljg63jg6bjgq0NCivjg4jjg5/jgr8s44Kk44K144KqDQor44OS44Op44Kq44KrLOODkuODreODkuOCtQ0KK+OCq+ODiOOCpizjg5Ljg4fjgqoNCivjgqrjg6Djg6ks44Og44OE44KqDQor44Kq44K144K444OeLOODiOOCt+ODpA0KK+ODleODiuOCs+OCtyzjgrvjg4TjgqoNCivjgrPjgqbjg4As44OS44OH44Ki44KtDQor44Ki44K144Kq44KrLOOCv+ODhOOCqg0KK+OCq+OCueOCrCzjgqLjgrHjg58NCivjg6Ljg6Ljg4/jg6ks44OW44Oz44Kk44OBDQor44Km44Ko44Og44OpLOODiOOCt+ODkuODhw0KK+OCquODkOOCvyzjgqvjgrrjgrMNCivjgqrjg47jg4As44Om44Kt44KqDQor44Of44Ok44K344K/LOOCq+ODs+OCuA0KK+ODm+OCveODpCzjg6TjgrnjgqoNCivjg6Tjgrfjg60s44Om44Kt44KqDQor44Ov44K/44OK44OZLOOCouODhOOCtw0KK+OCreODoOODqSzjg4jjgq3jg4ENCivjgqvjg5/jgrjjg6fjgqYs44OS44K144KoDQor44K144OI44KmLOODqOOCt+OCquOCrQ0KK+ODnuODhOOCt+ODnizjgqLjgq3jg6kNCivjgqvjgr/jg6Tjg54s44Oo44Km44KzDQor44OS44Op44OOLOOCtOODmOOCpA0KK+ODiuOCq+ODqeOCpCzjg4DjgqTjgrnjgrENCivjg6jjgrPjg6Tjg54s44OS44K144KqDQor44Kq44Kq44Ks44ONLOODiOODouODkuODrQ0KK+OCreODoOODqSzjg57jgrPjg4gNCivjg47jgrbjgrUs44Oo44K344OO44OqDQor44Oi44Oq44OOLOOCq+OCuuOCt+OCsg0KK+OCqOODgeOCtOODpCzjg5/jg4Hjg5LjgrMNCivjg5Xjgq/jgrfjg54s44OS44OH44KqDQor44Kk44OI44KmLOODnuOCteODpuOCrQ0KK+OCpOOCseODgCzjg6bjgq3jgrMNCivjg4jjgq/jg4rjgqws44Oq44KoDQor44Kt44Oi44OILOOCouOCpOOCsw0KK+OCquOCt+ODgCzjgrXjg4jjgrMNCivjg4/jgrfjg6Ljg4gs44OO44Oq44Kr44K6DQor44OO44Kw44OBLOODiOOCt+ODjuODqg0KK+ODn+ODpOODmSzjgqvjgrrjg4gNCivjgq/jg6/jg4/jg6ks44Ok44K544KoDQor44Kt44Og44OpLOODkuODreODnw0KK+OCquODgCzjgqvjgrrjg6bjgq0NCivjgqLjgqTjgrbjg68s44K/44Of44KqDQor44Km44Ko44OOLOOCq+ODhOOCqg0KK+ODnuODhOODkOODqSzjg47jg6rjg6bjgq0NCivjgr/jg57jgqQs44Kr44K644Of44OBDQor44K344Op44KkLOODqOOCt+OCqg0KK+OCquOCquODj+OCtyzjgrPjgqbjgrgNCivjgr/jg5/jg6Qs44OV44Of44OkDQor44OP44Op44OALOODqOOCt+OCsw0KK+OCpuOCueOCpCzjgr/jgqvjgrcNCivjgrPjg6os44Kz44Km44Kk44OB44Ot44KmDQor44OO44OALOOCt+OCsuODkuOCsw0KK+ODiuODn+OCrSzjg57jgrXjg4gNCivjg4rjgqvjgqos44Oe44K144Of44OEDQor44Kr44OJ44OkLOOCouOCreODqQ0KK+OCquODjizjg4jjgrfjg5Ljg4cNCivjgrfjg5bjgqvjg68s44K344Oz44Kk44OBDQor44Kk44Ov44K144OvLOODnuODiuODlg0KK+OCv+ODluOCuyzjgqTjg4Hjg63jgqYNCivjgqrjgrXjg68s44K/44Kr44Oo44K3DQor44OK44Kr44OA44KkLOOCseODs+OCuA0KK+OCqOOCrOOCt+ODqSzjg5Ljg63jg6bjgq0NCivjgrXjgrXjgq0s44Kr44OE44KqDQor44OV44Kv44OBLOOCq+OCuuODkuOCsw0KK+ODqOOCt+ODpOOCuSzjgrTjgqYNCivjg6/jgr/jg4rjg5ks44Kz44K144OIDQor44Km44Ko44OOLOODrOOCpOOCsw0KK+OCqOODiOOCpizjg57jgrXjg47jg6oNCivjg6jjgrfjg4As44Oe44K144KqDQor44K/44Kx44KkLOODpuOCpuOCpOODgQ0KK+ODj+ODpOOCtyzjg5LjgrXjgrcNCivjg57jgr/jgq0s44K344Oz44K0DQor44Oi44Oq44Oi44OILOOCpOODgeODreOCpg0KK+OCpOODj+ODqSzjgrHjg7PjgrgNCivjg4Tjgqvjg4/jg6ks44OG44Or44KqDQor44Kr44OO44KmLOODiOODouOCsw0KK+ODoOODjeODpuOCrSzjg5Ljg4fjg57jgrUNCivjgqrjgqrjg4Tjg5ws44Oo44K344K/44KrDQor44Ok44Oe44Oi44OqLOOCq+ODhOOCqg0KK+OCouODs+ODieOCpizjgrvjgqTjgq0NCivjg6Tjg57jgrbjgq0s44Oo44K344Ki44KtDQor44K/44Kt44Oi44OILOODqOOCpuOCpOODgQ0KK+OCv+OCseODoOODqSzjg4rjgqrjgqvjgroNCivjg6Djg6njgqvjg58s44Oe44Kz44OIDQor44K/44Kr44K/LOODjuODquOCqg0KK+ODkuODreOCuyzjg4Tjgr/jg5Ljg60NCivjg6Tjgq/jg68s44K/44Kr44K3DQor44K344Oz44Kw44Oq44On44KmLOODqOOCpuOCsw0KK+OCv+ODgSzjg57jgrXjgrcNCivjgrXjg4jjgqYs44Kr44K644KqDQor44Ok44Oe44Oi44OILOODnuOCteODkuODrQ0KK+OCueODieOCpizjgrfjg6fjgqbjgrMNCivjg5vjg7Pjg54s44OS44Ot44KtDQor44Kq44Kq44OE44OcLOODiOOCt+OCqg0KK+OCq+OCtuODnizjg5/jg4Tjg5Ljg60NCivjgqLjgqzjg68s44Of44Ob44KzDQor44Kk44OO44Km44KoLOODquODpeOCpuOCpOODgQ0KK+OCouODqeOCpCzjg57jgrXjg4ENCivjgqbjgqjjg6Djg6ks44Om44K/44KrDQor44OL44K344Kv44OpLOODnuOCteODkuODrQ0KK+ODn+ODpOOCtuOCrSzjg6jjgrfjgqvjgroNCivjg5Xjgq/jg4As44Oi44Oq44Oe44K1DQor44OE44Oq44OkLOOCv+ODgOOCqg0KK+OCv+ODiuOCqyzjg5Ljg63jgqvjgroNCivjgqrjgqzjg68s44Kz44Km44K4DQor44K544K644KtLOODn+ODjuODqw0KK+ODj+ODnuOCsOODgSzjgr/jgq/jgrgNCivjgqvjg6Hjg4As44Kr44OE44OkDQor44Oi44Oi44OP44OpLOODkuODh+OCqg0KK+ODkuODqeOCqizjgr/jgqvjgrMNCivjgr/jgqvjg4As44OK44Kq44Om44KtDQor44Kk44Kx44OALOODqOOCt+ODkuODrQ0KK+OCueOCuuOCrSzjgqLjgq3jg6kNCivjgr/jgqvjg4/jgrcs44Kr44K644Oo44K3DQor44K/44OK44KrLOOCuOODreOCpg0KK+OCu+ODqSzjgr/jgqTjg4ENCivjgr/jgrHjg6Djg6ks44OI44K344Ki44KtDQor44Ob44Oq44Kt44OqLOODnuODouODqw0KK+OCpOOCseODgCzjg5/jg47jg6sNCivjgqLjg6njgq0s44K744Kt44ONDQor44Kq44Kq44OE44KrLOOCq+OCuuOCpOODgeODreOCpg0KK+OCr+ODi+ODnuODhCzjgrvjgqTjgrbjg5bjg63jgqYNCivjgqbjgrfjg5As44K/44Kr44K3DQor44OP44Ok44K3LOODnuOCteODiA0KK+OCpOOCt+OCpCzjg5/jgq3jgqoNCivjgqvjg4As44Ki44Kt44OpDQor44Ok44KuLOOCv+ODgOOCqg0KK+ODkuODqeOCpCzjgrPjgqbjgqTjg4Hjg63jgqYNCivjgq/jg63jgrss44OS44Ot44K3DQor44Kq44Kr44OZLOOCpOOCteODoA0KK+OCq+ODjeOCsyzjg4jjgrfjg6bjgq0NCivjgrPjgrjjg54s44K144OI44OrDQor44OL44K344Oo44OqLOODn+ODjuODqw0KK+ODiuOCq+OCuOODp+OCpizjgrjjg63jgqYNCivjg4/jgrfjgq/jg6ks44OE44OI44OgDQor44K/44Kr44OP44K3LOOCv+ODhOOCqg0KK+OCpuOCqOOCr+OCtSzjg47jg5bjgqLjgq0NCivjgrfjg5Djgr8s44OS44Ot44K3DQor44K/44Kr44OP44K3LOODhuODq+OCqg0KK+OCpOODiuODkCzjgqvjgrrjg4gNCivjgrjjg6Xjg7PjgqTjg4Hjg60s44Ki44Kt44OO44OqDQor44OP44Ok44Kr44OvLOODkuODh+OCqg0KK+OCpOODiOOCpizjgr/jgrHjgrcNCivjgq3jg6Ljg4gs44Oe44K144OE44KwDQor44Kk44OALOODkuODreOCtw0KK+ODm+OCpuOCuOODp+OCpizjgqvjg4Tjg5LjgrMNCivjg5vjg6rjgqQs44OE44ON44KqDQor44Kr44Kk44K7LOOCouODhOOCtw0KK+ODj+OCt+ODouODiCzjg6TjgrnjgqLjgq0NCivjgrnjgrrjgq0s44OS44OI44K3DQor44Kr44ON44K144KrLOODqOOCt+OCqg0KK+ODpOODnuOCsOODgSzjg6bjgqbjgrgNCivjgrnjgrrjgq0s44Oe44K144Kr44K6DQor44K544OJ44KmLOODnuOCteODkuOCsw0KK+OCquOCquODkCzjg5/jg5vjgrMNCivjg6Djg6njgr8s44OI44K344KzDQor44Ki44Kt44Ok44OeLOODnuOCteOCtw0KK+OCouOCueODnizjgr/jgrHjgqoNCivjgqvjg6/jgrjjg6os44OS44OH44KqDQor44Oe44OE44Oi44OILOOCreODp+OCpuOCuA0KK+OCt+ODreODpOODnizjgrMNCivjg5XjgrjjgqQs44Ki44OE44KzDQor44K044OI44KmLOODgOOCpOOCueOCsQ0KK+OCv+ODi+OCouOCpCzjg6Tjgrnjg57jgrUNCivjgqvjg4Tjg5zjg6os44Oe44KtDQor44OS44Ki44OGLOOCr+ODn+OCsw0KK+ODhuODqeOCpCzjgqLjgq3jgrMNCivjg4/jg7Pjg4As44Oe44K144KzDQor44Of44K344OeLOODkuODreODnw0KK+OCv+OCq+OCt+ODnizjgqvjgrrjg58NCivjg57jg4Tjg4As44Ki44Kt44OpDQor44Kz44Oz44OJLOODjuODquOCsw0KK+OCpOOCv+ODpCzjgrHjg7PjgrgNCivjg57jg4Tjg6Ljg4gs44OK44Kq44K/44KxDQor44Kk44Kk44Ok44OeLOODkuODh+OCqg0KK+OCuOODg+ODiCzjgqvjg4Tjg5Ljg60NCivjgq/jg5zjgr8s44K144OB44KzDQor44Kk44K344Kw44OtLOOCqOOCpOOCuA0KK+ODouODqizjgqbjg4Tjg58NCivjgqvjg7Pjg44s44K144OB44KzDQor44Kk44OI44KmLOOCu+OCpOOCuA0KK+ODqOOCt+ODgCzjg6rjg6XjgqbjgrgNCivjg57jg6vjg6Tjg54s44Kv44OL44KqDQor44K144OI44KmLOODiuODmw0KK+OCs+OCpuODgCzjg6jjgqbjgrgNCivjg6/jgr/jg4ss44Oe44Oi44OrDQor44K144K7LOOCpOOCr+OCqg0KK+OCveODiOODpOODnizjgqvjg4Tjg47jg6oNCivjg5vjg7Pjg4As44OG44Or44Kv44OLDQor44Kk44OM44KkLOODpuOCv+OCqw0KK+OCueOCuuOCrSzjg6jjgrfjg47jg6oNCivjgrPjg4vjgrcs44Oo44K344OO44OWDQor44K544Ku44KkLOODpuOCreODkuOCtQ0KK+OCouODqeOCrSzjg47jg5bjgqoNCivjg5Ljg6njgqrjgqss44Ok44K544K3DQor44Kq44Kq44OE44KrLOODoOODhOOCqg0KK+OCq+ODiOOCpizjgrfjgrLjgqoNCivjgrfjgqrjg44s44OS44Ot44K3DQor44Kr44K/44Ok44OeLOODkuODreODjuODqg0KK+ODleODgeOCq+ODnyzjgr/jgrHjg5LjgrMNCivjg5Ljg6njgq0s44K/44Oi44OEDQor44Kk44Ov44K144KtLOOCreODn+OCqg0KK+OCqOODjuOCrSzjgrjjg6Xjg7MNCivjgqTjg6/jgr8s44K744Kk44Kk44OBDQor44K344Ol44OI44KmLOOCv+ODgOOCtw0KK+ODiOOCquODpOODnizjg57jg4Tjg47jg6oNCivjgrPjgqTjg4cs44K444Ol44Oz44K244OW44OtDQor44K/44OK44OZLOODpuOCpuOCuOODreOCpg0KK+ODpOODnuODouODiCzjgrfjg6Xjg7PjgqTjg4ENCivjgqvjgqTjg4/jg4Qs44K744Kk44K3DQor44Ki44Op44KkLOOCq+ODhOOCuA0KK+OCpuOCqOODgCzjg6bjgqbjgr7jgqYNCivjgq/jg6njgqrjgqss44K944Km44Kk44OB44Ot44KmDQor44Kz44OQ44Ok44K3LOOCqOODhOODkuODrQ0KK+OCv+ODoeODgeOCqyzjgr/jg4bjgqoNCivjg6jjgrfjg4As44K344K644KqDQor44Oe44OE44Oi44OILOOCt+OCsuODqw0KK+OCteOCq+OCt+OCvyzjgqvjg43jgqoNCivjg6/jg4As44OI44K344Ki44KtDQor44Kk44OI44KmLOODpOOCueOCqg0KK+ODqOOCt+ODgCzjgqvjg4TjgrgNCivjg6jjg43jg4As44OI44K344OS44OHDQor44Kq44Og44OpLOODnuOCteODnw0KK+OCv+OCq+OCrizjgrfjg4Hjg63jgqYNCivjgqbjg4Hjg6Tjg54s44Ki44Kt44KzDQor44Kr44K344Ov44KuLOOCseOCpOOCsw0KK+ODi+OCt+ODgCzjgrvjg4TjgqoNCivjgqrjgrfjgqss44K/44Kx44KqDQor44Ko44K444OeLOODiOODouODjuODqg0KK+OCquOCqyzjgrHjg7PjgqTjg4ENCivjg6jjgrfjg4As44Ok44K544KoDQor44Kk44Oe44KkLOODpOOCueOCt+ODreOCpg0KK+ODpOODnuODn+ODgSzjg4jjg6LjgrMNCivjgqLjgqTjg6Ljg44s44Kr44OE44KqDQor44OS44OOLOODouODiOOCsw0KK+OCv+OCq+ODj+OCtyzjg5/jgrXjgrMNCivjg6jjgrPjgr8s44Ko44Kk44KzDQor44Kk44OO44KmLOOCv+OCqOOCsw0KK+ODqOOCt+ODgCzjg5Ljg63jgrMNCivjg6jjgrfjgqrjgqss44Ki44Kt44KzDQor44Km44Oh44K244OvLOOCpuOCreOCsw0KK+ODhuODqeOCqizjg5Ljg63jg5LjgrUNCivjgqvjg6/jg4/jg6ks44OP44Or44KqDQor44OP44K744Ks44OvLOODn+ODjuODqw0KK+OCreOCtyzjg4bjg6vjgrMNCivjg4/jgrfjgrrjg6Es44Of44OE44OS44OtDQor44Oo44K344OALOODoeOCsOODnw0KK+ODn+ODjeODleOCuCzjg4rjgqrjgrMNCivjg5vjg7Pjg4As44Om44OfDQor44K/44Kr44K144OvLOODn+ODpuOCrQ0KK+OCquOCquODj+OCtyzjg6jjgqbjgrMNCivjgqvjgqzjg68s44OB44KrDQor44OL44K344OALOODnuODqg0KK+OCpOOCv+OCrOOCrSzjgqLjgq3jgrMNCivjgqLjgq3jg6Tjg54s44OO44Oq44OS44OtDQor44Kq44OB44OqLOODpOOCueODkuODrQ0KK+ODjuOCtuODryzjgrPjgqbjgrgNCivjgrXjgqTjg4jjgqYs44Kx44Oz44K4DQor44Kt44Og44OpLOODgeOCqA0KK+OCouODmSzjg4rjgqrjg4gNCivjgq/jgrnjg47jgq0s44OI44Oi44KzDQor44OP44Ok44K3LOODpOOCueODkuODrQ0KK+OCquOCquOCpCzjg4rjgqrjg58NCivjgqvjg5/jgqrjgqss44OP44Or44Oo44K3DQor44Ki44Kt44Ok44OeLOOCpOOCteOCqg0KK+OCouODquOCvyzjgqvjg4Tjg58NCivjgq3jgr/jg6Djg6ks44Of44OB44Om44KtDQor44Oe44K544Og44OpLOOCv+OCq+ODjuODqg0KK+OCquOCquOCteODryzjgrHjg7MNCivjgqvjg6/jgqQs44Of44OO44OrDQor44Kk44K/44Ks44KtLOODkuODh+OCqg0KK+ODouODqizjgr/jgqvjgqoNCivjgqLjgqrjgq0s44Of44Kt44KqDQor44OV44K444K344OtLOOCs+OCpuOCuA0KK+OCt+ODn+OCuizjg6Ljg4jjgrfjgrINCivjg6Djg6njgqvjg58s44Of44Oo44K3DQor44OK44Kr44K444OeLOODhuODhOOCqg0KK+ODouOCrizjgqLjgq3jgqoNCivjg5/jgqbjg6ks44Kr44K644KqDQor44K/44Kr44Oe44OELOOCseODs+OCuA0KK+OCv+OCq+ODgCzjgrfjg6fjgqbjgqTjg4ENCivjgrPjg7Pjg4ks44Oe44K144KzDQor44OK44Kr44K444OeLOODkuODiOOCtw0KK+ODjeODrOOCpCzjg5Ljg63jgrcNCivjgqbjgrfjgq8s44Kq44K144OgDQor44Kt44K/44K244OvLOOCsw0KK+OCteODg+OCtSzjg47jg5bjg5Ljg60NCivjgqTjg4Pjgrfjgq0s44Oo44K344OS44OtDQor44Kr44Ov44OOLOODjuODquODhOOCsA0KK+OCpOOCt+ODj+ODqSzjg5Xjg5/jgr/jgqsNCivjgqvjg6Hjgqrjgqss44K/44OA44KqDQor44Kt44Km44OBLOODjuODquOCq+OCug0KK+ODiuOCrOOCpCzjg5Ljg4jjgrcNCivjg47jgrDjg4Es44Of44OB44KqDQor44Kq44K344K/LOOCv+OCq+OCqg0KK+ODqOOCt+ODoOODqSzjg4jjgrfjg5/jg4ENCivjgqLjgqvjg5vjg6os44Of44OE44OO44OWDQor44Oe44Or44OK44KsLOODqOOCt+ODhOOCsA0KK+ODqOOCt+ODjizjgrPjgqbjgr/jg63jgqYNCivjg6Tjg44s44Oo44K344OS44OtDQor44Ok44Oe44Kw44OBLOODnuOCteODkuODhw0KK+ODpOODnuOCsOODgSzjgqvjg4Tjg4jjgrcNCivjgrvjg7Pjg4njg4As44Oe44K144OrDQor44Ok44K544OALOOCouOCreODqQ0KK+ODqOOCs+OCqCzjgrjjg6Xjg7PjgqTjg4ENCivjg6Tjg57jgrfjgr8s44K744Kk44K244OW44Ot44KmDQor44Oo44K344OALOODiOODn+OCvuOCpg0KK+ODpOODnuOCt+OCvyzjgrnjgrnjg6ANCivjg6TjgrnjgqQs44Kr44K644KqDQor44Ok44Oe44Kq44KrLOOCreODp+OCpuOCueOCsQ0KK+ODqOOCs+OCuyzjg4jjg6LjgrfjgrINCivjg6Tjg57jgrDjg4Es44Kx44Oz44K4DQor44Ok44OP44KuLOODpOOCueODj+ODqw0KK+ODpOODnuOCquOCqyzjg5Ljg63jg57jg6sNCivjg6jjg4Tjg6Qs44OI44Kq44OrDQor44Ok44Oe44Oi44OILOOCuOODpeODs+OCsw0KK+ODqOOCt+OCq+ODryzjg4jjgrfjg63jgqYNCivjg6Tjg57jgrfjgr8s44K344On44Km44K4DQor44Ok44Oe44Kq44KrLOODkuODreOCsw0KK+ODqOODjeODn+ODhCzjgrvjgqTjgrgNCivjg6jjgrfjg4As44Kx44Oz44Kk44OBDQor44Ok44Oe44K244KtLOODhuODhOOCqg0KK+ODpOODnuODouODiCzjg5Ljgqvjg6sNCivjg6Tjg57jgrDjg4Es44Of44OO44OrDQor44Ok44Oe44Km44OBLOOCteOCq+OCqA0KK+ODqOOCt+OCtuODryzjgqvjg4Tjg58NCivjg6jjgrfjgqrjgqss44Kr44OE44OS44OIDQor44Ok44Oe44Oi44OILOODjuODluOCqg0KK+ODpOODnuOCquOCqyzjg5/jg4Hjg4jjgrcNCivjg6Tjg57jgrbjgq0s44Ki44Kt44OpDQor44Oo44K344Og44OpLOODnuOCteODkuOCsw0KK+ODpOOCueODgCzjgrPjgqbjgrgNCivjg6Tjg57jgrfjgr8s44K744Kk44Kk44OBDQor44Ok44OALOOCt+ODs+ODpA0KK+ODqOOCt+ODgCzjgqTjg4Hjg63jgqYNCivjg6Tjg57jg6Ljg4gs44OE44OI44OgDQor44Ok44Oe44OALOOCtOODreOCpg0KK+ODqOODjeODgCzjgqvjgqrjg6sNCivjg6jjgrfjg4As44Oe44K144OS44OtDQor44Ok44Oe44OALOOCr+OCueOCqg0KK+ODpOODnuOCsOODgSzjgr/jgqvjg5Xjg58NCivjg6Tjg57jgrDjg4Es44OV44Of44OS44OtDQor44Ok44Oe44Oi44OILOOCv+OCq+OCsw0KK+ODqOOCt+ODgCzjgrnjgrnjg6ANCivjg6Tjg57jgrfjgr8s44K344On44Km44K+44KmDQor44Ok44Oz44OZLOOCouODhOODkuODrQ0KK+ODpOODnuOCsOODgSzjg47jg6rjg6jjgrcNCivjg6Tjg57jg6Ljg4gs44K444Ol44Oz44K4DQor44Ok44Oe44ONLOOCs+OCpuOCuOODreOCpg0KK+ODpOODnuOCteOCrSzjgrHjg7Pjgr/jg63jgqYNCivjg6Tjgrnjgqrjgqss44Om44Kt44KqDQor44Ok44Oe44OALOOCqOOCpOOCvuOCpg0KK+ODqOOCt+OCtuODryzjgrjjg63jgqYNCivjg6Tjgrjjg54s44Ki44Kt44OpDQor44Ok44OK44KkLOODhuODhOOCqg0KK+ODpOODnuOCtuOCrSzjgqvjgrrjgqoNCivjg6Tjg57jgqbjg4Es44OV44Kv44Of44OBDQor44Ok44Oe44K244KtLOOCueOCueODoA0KK+ODqOOCt+ODjizjgr/jg4Tjg6bjgq0NCivjg6Tjg57jgqvjgrIs44K/44OA44OO44OWDQor44Ok44KuLOOCuOODhOODjuODqg0KK+ODpOOCueODgCzjg57jgrXjgqoNCivjg6Tjg57jg6Qs44OO44OW44KqDQor44K/44Kr44Kw44OBLOODjuODnOODqw0KK+ODqOOCt+ODgCzjg5Ljg63jgrcNCivjg6jjgrfjg44s44Kz44Km44K4DQor44Ok44Oe44Og44OpLOOCuOODpeODs+OCpOODgQ0KK+ODpOOCrizjgqvjg4Tjg47jg6oNCivjg6Tjg57jg4As44Kz44K544KxDQor44Om44Kr44OvLOODnuOCteODiOOCtw0KK+ODpOODnuODouODiCzjgrjjg6fjgqbjgrgNCivjg6Tjg57jgr/jg4ss44OS44Ot44OE44KwDQor44Ok44Oe44Og44OtLOODqOOCt+OCq+ODjQ0KK+ODqOOCt+ODgCzjg4jjgrfjg5LjgrMNCivjg6jjgrPjgqvjg68s44OI44Oi44Oo44K3DQor44Ok44Oe44K244KtLOOCs+OCpuOCpOODgQ0KK+ODpOODnuODouODiCzjgr/jgrHjgqoNCivjg6jjgrfjg44s44Kt44Oo44K3DQor44Ok44Oe44ONLOODqOODjeOCv+OCqw0KK+ODpOOCueODiuOCrCzjgqLjgq3jg5Ljg60NCivjg6Tjg4rjgqss44Kx44Kk44Kk44OBDQor44Ok44Oe44ONLOODhuODhOOCqg0KK+ODpOODnuOCpuODgSzjg6jjgrfjg6bjgq0NCivjg6Tjg57jgrDjg4Es44Om44Km44K4DQor44Ok44Oe44Ov44KtLOOCt+ODp+OCpuOCv+ODreOCpg0KK+ODpOODnuOCq+ODryzjgrjjg6Xjg7PjgqTjg4ENCivjg6Tjg57jg4As44Kr44K644OfDQor44Oo44Kz44Ok44OeLOOCt+ODp+OCpuOCv+ODreOCpg0KK+ODpOODnuODouODiCzjg6Tjgr3jg58NCivjg6Tjg57jgrDjg4Es44OO44Oc44OrDQor44Ok44Oe44Kw44OBLOOCv+OCq+ODqOOCtw0KK+ODqOOCt+ODgCzjgr/jgqvjgqoNCivjg6Tjg57jg4rjgqss44Kr44K644OfDQor44Ok44Oe44Oi44OILOOCv+ODgOODj+ODqw0KK+ODqOOCt+ODgCzjgr/jgqvjgqoNCivjg6Tjg57jg4As44K144OI44OrDQor44Ok44Oe44Kq44KrLOODqOOCt+ODiOODog0KK+ODqOOCs+ODpOODnizjg57jgrXjg5LjgrUNCivjg6Tjg57jgrXjgq0s44OO44Oq44KqDQor44Ok44Oe44Oi44OILOOCq+ODhOODkuOCsw0KK+ODpOODnuOCq+ODryzjg57jgrXjg6jjgrcNCivjg6Tjgqbjg4Es44K/44OA44Oo44K3DQor44Oo44K344OP44OpLOOCq+ODhOOCuA0KK+ODqOOCs+ODn+OCvizjgrfjgrLjg6sNCivjg6Tjg57jg6Ljg4gs44K344Ol44Km44K+44KmDQor44Ok44Oe44Oi44OILOODhuODq+OCqg0KK+ODpOODnuODouODiCzjgqjjgqTjgqTjg4Hjg63jgqYNCivjg6jjgrfjg4As44Oe44K144OS44OtDQor44Oo44K344OALOODleODn+ODkuODrQ0KK+ODpOOCueOCpCzjg5/jg47jg6sNCivjg6Tjg57jgrDjg4Es44K344Ky44OrDQor44Ok44Oe44Oi44OILOOCouOCreODqQ0KK+ODqOOCs+OCvyzjgqjjgqTjgqTjg4ENCivjg6jjgrfjg4As44Om44K/44KrDQor44Oo44Kz44Ok44OeLOODkuODh+OCrQ0KK+ODpOOCueOCpCzjgqvjgrrjg6Ljg4gNCivjg6Tjg57jgrXjgq0s44Kr44K644OS44OtDQor44Oo44K344Kq44KrLOODjuODluOCqg0KK+ODqOOCt+ODgCzjgrfjg6Xjg7Pjg63jgq8NCivjg6Tjg57jg4As44Kr44OE44OS44OtDQor44Ok44Oe44Oi44OILOODqOOCpuOCuA0KK+ODqOOCt+ODgCzjgrvjgqTjgr7jgqYNCivjg6Tjg57jgrbjgq0s44K744Kk44K344Ot44KmDQor44Ok44Oe44ONLOODiuOCquOCuA0KK+ODpuOCv+ODiyzjgrnjgrnjg6ANCivjg6jjg43jgrbjg68s44Oo44K344OS44OtDQor44Oo44K344OOLOODgOOCpOOCueOCsQ0KK+ODqOOCt+ODgCzjgr/jgrHjgqoNCivjg6jjgrfjg6Ljg6os44OS44K144OI44OoDQor44Oo44K344Ov44OpLOOCv+OCseOCtw0KK+ODpOODnuODgCzjg4jjgrfjgq0NCivjg6jjgrfjg4As44OI44K344Kr44K6DQor44Oo44K344OALOODoOODhOOCqg0KK+ODpOODnuODouODiCzjg6Ljg6rjg5LjgrMNCivjgrPjgrjjg54s44Kv44OL44Kr44OEDQor44Kq44OOLOOCt+OCsuOCqg0KK+ODnuOCqOOCq+ODryzjgrPjgqbjgr/jg63jgqYNCivjgrPjg7Pjg44s44OO44OW44Om44KtDQor44Oe44Kt44K7LOOCreODqOOCtw0KK+ODjuODoOODqSzjg57jgrXjgr/jgqsNCivjg6Tjgrnjg4/jg6ks44Oe44K144OS44KzDQor44OK44Ks44K344OeLOOCouODhOODqOOCtw0KK+OCreOCv+ODj+OCtyzjg57jgrXjgqoNCivjg4Tjg6ss44Kt44Oo44Of44OBDQor44OE44Kv44OALOODn+ODgeOCqg0KK+ODhuODqeOCpuODgSzjgr/jgrHjgrcNCivjg6Tjg57jg4As44K144OI44OrDQor44K744Oz44OQLOOCueOCueODoA0KK+OCteOCqOOCrSzjg47jg6rjgqoNCivjgqrjgqvjg4As44K344On44Km44Kk44OBDQor44Of44Ok44Km44OBLOODkuOCteOCqg0KK+OCs+ODs+ODiSzjg4jjgrfjgqoNCivjg5Xjgq3jgqLjgrIs44Ok44K544KqDQor44Kk44K344Kr44OvLOODgeODqOOCv+OCsQ0KK+OCpOODr+ODouODiCzjg57jgrXjgqoNCivjgq/jg5ws44K444Ol44Oz44Kk44OB44OtDQor44K/44OK44KrLOODkuODreOCq+ODhA0KK+ODr+ODgCzjg47jg6rjgqoNCivjgqTjg6/jgqos44OE44ON44OO44OqDQor44Kv44Oe44Ks44KkLOOCv+OCq+ODkuODrQ0KK+OCueOCuuOCrSzjg5Ljg63jg5Xjg58NCivjgr/jgqvjg6Djg6ks44OS44Ot44K3DQor44OL44K344Km44OpLOOCu+OCpOOCpOODgeODreOCpg0KK+ODn+ODhOOCuCzjg57jgrXjgrcNCivjgr/jgq3jgq3jgr8s44Ki44Kt44OpDQor44Kq44Km44OBLOOCseODs+OCuA0KK+OCs+ODnizjgqLjgq3jgqoNCivjg57jgrnjg4As44Kx44Oz44K4DQor44Kr44OI44KmLOODiOOCt+ODreOCpg0KK+OCpOOCpOOCuuOCqyzjgqvjgrrjg5LjgrMNCivjg57jg6vjg6Tjg54s44OO44OW44Ki44KtDQor44OI44K344K/44OLLOODiOOCquODqw0KK+ODj+ODiuODluODgSzjg57jgrXjg5Ljg60NCivjgqTjg57jgqQs44Oe44K144K+44KmDQor44Kq44Kr44OS44OtLOODhOODjeOCqg0KK+OCreODoOODqSzjg4jjgrfjg5LjgrMNCivjgr/jgrjjg54s44Oe44K144OP44OrDQor44Kr44Oz44OALOODhOODqeODpuOCrQ0KK+ODieOCpCzjgqrjgrXjg6ANCivjgqLjg6njgqzjgq0s44Ok44K544OO44OWDQor44Kt44Ol44Km44K944K444OzLOOCseODs+OCueOCsQ0KK+OCv+OCseOCpuODgSzjg4Tjg43jg6gNCivjgqbjg4zjg54s44OS44OH44OK44OqDQor44Ok44Oe44Kw44OBLOODqOOCt+OCv+OCqw0KK+ODqOODouODqizjg6Ljg4jjg5LjgrUNCivjgrfjg57jgrbjgq0s44Kv44OL44OS44KzDQor44OI44Kv44OkLOODiOOCt+OCqg0KK+ODpOODnuODgCzjgqLjgq3jg6kNCivjg5Xjgqvjg6Qs44K344Ky44KqDQor44Ko44Kw44OBLOODj+ODq+OCqg0KK+OCteODjizjg5Ljg4fjg47jg5YNCivjg4jjgq/jg44s44Ki44Kt44OpDQor44Kq44Kq44OI44OiLOOCteODgOODoA0KK+OCt+ODqeOCquOCrOODryzjg5Ljg63jgrcNCivjg5Ljg6njg44s44K/44Kk44KtDQor44Kq44OALOODpuOCpuOCuA0KK+OCv+ODiuOCqyzjg6rjg6fjgqbjgr7jgqYNCivjg5Xjgrjjgr8s44Ki44Kt44OpDQor44Ki44Op44KkLOOCouOCreODkuODhw0KK+ODleOCuOOCvyzjg6bjgqbjgrgNCivjg4rjgqvjgqzjg68s44OS44Ot44Om44KtDQor44OK44Kr44OL44K3LOOCq+OCuuOCt+OCsg0KK+ODj+ODqSzjgqLjgq3jg5Ljg60NCivjg4Hjg5As44OI44K344KzDQor44Kk44K344Ov44K/LOODiOOCt+ODkuOCtQ0KK+ODpOOCsOODgSzjgr/jgrHjg5Ljg60NCivjg4bjgrjjg54s44Kr44K644KqDQor44K/44OE44K/LOOCt+OCsuODqw0KK+OCr+OCteOCqyzjgr/jgrHjgrcNCivjg5Xjg6vjgr8s44K/44Kx44OP44OrDQor44K044OI44KmLOODnuOCteODjuODlg0KK+OCquODgOOCruODqizjgr/jg4DjgrcNCivjgq/jg57jgqzjgqQs44K/44Kx44OrDQor44Og44Op44Kr44OfLOODn+OCuuODmw0KK+ODn+ODoOODqSzjg57jgrXjgqoNCivjg6jjgrPjgqQs44Kv44OL44OS44KzDQor44Kk44OK44KyLOODiOODouODpuOCrQ0KK+OCouODoeODn+ODpCzjg5/jg4TjgqoNCivjgqTjg47jgqbjgqgs44K144OA44KqDQor44OM44Oe44K/LOOCuOODs+OCpOODgQ0KK+OCteOCq+ODouODiCzjgrTjg5jjgqQNCivjg5Ljg6njg57jg4Qs44K144OA44KqDQor44OK44Oq44K/LOOCq+OCquODqw0KK+ODhOODjeODnyzjgqTjg4Hjg63jgqYNCivjgr/jgqvjgrfjg54s44OV44K144OS44KzDQor44Of44K5LOOCq+OCuuODnw0KK+OCteOCreODpOODnizjg6jjgrfjg5LjgrMNCivjg5Xjgrjjg6/jg6ks44K/44OA44K3DQor44OI44Of44K/LOODnuOCteODkuODrQ0KK+ODhOODiuODr+OCrSzjg5/jg43jgqoNCivjg4/jgrvjgqzjg68s44K/44Kx44K3DQor44OV44Kv44K244OvLOODpuOCpuOCvuOCpg0KK+OCtOOCqOOCsSzjgqLjgq3jg6kNCivjg4rjgqss44Oe44K144OS44OtDQor44Ko44OQ44OILOOCseOCpOOCsw0KK+OCs+ODkOODpOOCtyzjgrfjg7PjgqTjg4Hjg63jgqYNCivjg5Ljg6njg4Tjgqss44Kt44Oo44K3DQor44K144OI44KmLOODjuODluOCqg0KK+OCpOODjuOCpuOCqCzjgqLjgq3jg6kNCivjg4/jgrnjg4zjg54s44Oe44K144KqDQor44OV44Or44OP44K/LOOCouOCteOCsw0KK+OCpuOCqOODjizjgqLjg4TjgrcNCivjgr/jgrHjg4rjgqss44Oe44K144OS44OtDQor44Kv44OL44K/44KxLOODqOOCt+OCqg0KK+ODkuODqeOCvyzjg6bjgqbjgrMNCivjg4/jgrvjgqzjg68s44Ky44OzDQor44OV44Kv44OP44OpLOOCouODhOOCtw0KK+ODleODiuOCsOODgSzjg4jjgqrjg6sNCivjgqLjg57jg44s44OO44Oq44KzDQor44Kq44Kq44OOLOODn+OCuuODjuODqg0KK+OCueODryzjg47jg6rjgrMNCivjg47jgqzjg58s44Of44KrDQor44Km44Oh44OOLOODpOOCueODpuOCrQ0KK+OCpOOCseODjizjg6bjgqbjgrMNCivjg4rjgqvjgrjjg54s44OP44OK44KzDQor44Kk44K344KkLOOCreODp+OCpuOCsw0KK+OCteOCpOODiOOCpizjg4jjg6LjgrMNCivjgr/jg4rjgqss44Kr44K644Om44KtDQor44K/44OG44Kk44K3LOODiOOCt+OCq+OCug0KK+OCueOCuuOCrSzjg6jjgrfjg5LjgrMNCivjgq3jg47jgrfjgr8s44OS44Kr44OrDQor44Kq44Kq44K144OvLOODqOOCt+ODkuODrQ0KK+OCpOODhyzjgrXjgq3jgrMNCivjgqrjgqzjg68s44K344ObDQor44Ko44OO44Oi44OILOODr+OCreOCsw0KK+OCquOCtuODryzjg5/jgrrjg5sNCivjg4/jgr/jgrHjg6Tjg54s44OI44Oi44OS44OtDQor44Kk44Kk44OALOODn+ODhOOCouOCrQ0KK+OCt+ODjuOCtuOCrSzjgrjjg6Xjg7PjgqTjg4ENCivjgqrjgqvjg4As44Oq44Ko44KzDQor44K/44Kr44OeLOODnuOCteOCtw0KK+ODpOOCrizjg5Ljg63jg6bjgq0NCivjgrXjgqvjgqQs44Oe44K144OoDQor44K344Of44K6LOOCs+OCpuOCuA0KK+ODm+ODquOCq+ODryzjg6jjgqbjgrMNCivjg4rjgqzjgqos44Kz44Km44OY44KkDQor44OS44Op44Kk44K3LOODnuODqg0KK+OCteOCrOODryzjgr/jg6Ljg4QNCivjg4/jg6njg4As44Oe44K144OfDQor44K/44Kr44OP44K3LOODquODpeOCpuOCpOODgQ0KK+OCv+ODgSzjg57jgrXjg6gNCivjg5Ljgqgs44Kt44Of44KqDQor44K/44OALOODn+ODiuOCsw0KK+ODqOOCt+ODouODiCzjg5Ljg63jgrMNCivjg6Ljg4Hjgrrjgq0s44OB44OS44OtDQor44K/44OK44KrLOOCs+OCpuOCuA0KK+OCv+OCsOODgSzjg57jg6bjg58NCivjgrXjg4jjgqYs44Kk44Kv44KqDQor44K144Kr44K344K/LOODpuOCreOCqA0KK+OCq+ODr+OCt+ODnizjg57jg6bjg58NCivjg5vjg6rjgrDjg4Es44Kr44Kq44OqDQor44OV44Kv44OeLOOCueODn+OCv+OCqw0KK+OCq+ODr+OCv+ODiyzjgqLjgq3jg6kNCivjgrjjg5Pjgq0s44Kq44K144OgDQor44K144Kk44OI44KmLOODn+ODhOODqw0KK+OCt+OCquODhCzjgqTjgrXjgqoNCivjg4jjg5Djgr8s44OO44Oq44Kr44K6DQor44Ok44Oe44Oi44OILOODnuOCteODkuOCsw0KK+OCquODleODgSzjg5Ljg63jg5/jg4ENCivjgrfjg47jg4/jg6ks44OO44OW44KqDQor44Ok44Oe44Kr44OvLOOCq+OCuuOCv+ODgA0KK+OCv+ODoOODqSzjg4jjgrfjgqoNCivjg4/jgr/jgrHjg6Tjg54s44K/44Kr44KzDQor44K/44OK44KrLOODkuOCq+ODqw0KK+OCq+ODiuOCtuODryzjg5Ljg4fjgqLjgq0NCivjgr/jgqvjg4/jgrcs44Ko44Oq44KzDQor44OV44K444Og44OpLOODn+ODiuOCsw0KK+ODiuOCrOOCt+ODnizjg6jjgrfjg6bjgq0NCivjgq3jg47jgrfjgr8s44OI44Kt44KzDQor44Kz44Oz44OJLOODnuODnw0KK+OCouODs+ODmSzjg57jg4rjg58NCivjgrXjgqTjg4jjgqYs44Kk44K644OfDQor44Ki44K144OALOODn+OCrQ0KK+OCreODjuOCt+OCvyzjg5Xjg5/jgqgNCivjgqvjg4njg6Qs44Ki44Kt44KzDQor44Km44Ko44OALOODiOOCquODqw0KK+OCteOCpOODiOOCpizjg6Ljg4sNCivjgr/jgqvjg4/jgrcs44Oe44K144OS44OtDQor44Kk44K344K244KtLOOCt+ODouODsw0KK+OCquOCtuODryzjg4bjg6vjg5LjgrUNCivjg4/jg6Tjgrcs44Kq44K144OgDQor44Ok44Ks44OvLOODn+ODgeOCqg0KK+OCv+OCq+ODj+OCtyzjgr/jg5/jgqoNCivjg4jjg5/jg6Tjg54s44Oo44K344Ki44KtDQor44Ki44OA44OBLOODpuOCpuOCvuOCpg0KK+OCouOCq+OCpOODryzjgrfjg6fjgqbjgrnjgrENCivjgqvjgqzjg6Qs44Om44Kt44OO44OWDQor44Ki44Op44KkLOOCteOCquODqg0KK+OCquOCt+OCreODqizjgr/jgqvjgrcNCivjg6Tjg57jg6Djg6ks44Ko44Kk44K4DQor44K/44Kr44Ok44OeLOODiOOCt+ODpuOCrQ0KK+ODqOOCs+ODpOODnizjgqrjgrXjg6ANCivjg5Djg7Ms44OE44Kw44KqDQor44Kk44K644OfLOODqOOCt+ODjuODqg0KK+ODn+OCuuODjizjgr/jg4DjgqoNCivjg5bjg7Pjg6Qs44Of44OO44OrDQor44OG44Op44Kq44KrLOOCt+ODp+OCpuOCuA0KK+ODn+ODpOOCt+OCvyzjg5/jg47jg6sNCivjgqLjgrXjg54s44Kx44Kk44KzDQor44K144K144KtLOODhuODhOOCqg0KK+ODi+OCt+OCqizjg6jjg6rjg4gNCivjg5Xjg6vjg6Qs44OG44OE44KqDQor44Kk44Oe44OALOODkuODh+ODpuOCrQ0KK+OCpOOCt+ODj+ODqSzjgqTjgq/jgqgNCivjg4/jgrfjg6Ljg4gs44Of44Kt44KqDQor44Oe44Or44Ok44OeLOODiOODouODpuOCrQ0KK+OCq+OCuCzjgqvjgrrjgr/jgqsNCivjgqvjg43jgrMs44OP44OK44KzDQor44OK44Kr44OALOODjuODquODkuODiA0KK+ODgeOCtuODryzjg4rjg5sNCivjgrXjg68s44Ki44K144KzDQor44OI44Ks44OhLOODn+ODr+OCsw0KK+ODqOOCt+ODgCzjgrLjg7MNCivjgqrjgqrjg44s44OS44Ot44KzDQor44Ok44KzLOODnuOCteODkuOCsw0KK+OCpOOCt+OCq+ODryzjgqLjgq3jg47jg6oNCivjgrPjg4jjg4As44OS44Ot44KzDQor44K144Ks44OvLOOCq+OCuuODng0KK+ODjuOCsOODgSzjgqvjgrrjg57jgrUNCivjg4fjg7Pjg5ws44OS44Ot44OV44OfDQor44OP44Or44KtLOOCouOCreODkuOCsw0KK+OCpOODjSzjgrfjg6fjgqbjgqjjgqQNCivjgqrjgqrjg44s44Kv44OL44KqDQor44Kr44ON44OALOOCv+ODhOODkuOCsw0KK+ODjuOCsOODgSzjgqLjgq3jg6kNCivjgqrjgqrjg5As44OS44Ot44Of44OEDQor44Kq44K/LOODiOOCr+OCpOODgeODreOCpg0KK+OCt+ODouODnuOCrSzjg6TjgrnjgqoNCivjg6/jgr/jg5Ljgq0s44Om44Km44KzDQor44Ok44Oe44Oi44OILOODnuODqg0KK+ODleOCuOODoOODqSzjg57jg6rjgrMNCivjgr3jgqbjg5/jg6Qs44Kx44Oz44K4DQor44K344OeLOOCr+ODnw0KK+OCteOCteOCrSzjgr/jgqvjg6bjgq0NCivjgqvjgqzjg68s44Os44Kk44KzDQor44K/44Kx44Km44OBLOOCr+ODn+OCsw0KK+OCteOCpOOCrSzjg5/jg6jjgrMNCivjgqTjg4jjgqYs44OO44Oq44KzDQor44Kt44Og44OpLOODqOOCpuOCuA0KK+OCv+ODkOOCvyzjgr/jgqvjg5Ljg60NCivjgq/jg6Es44OI44Oo44Ki44KtDQor44K/44Kr44OALOODnuODquOCsw0KK+OCv+ODoOODqSzjg5/jgqgNCivjgr/jgqvjg57jg4Qs44Oe44Kt44KzDQor44K344Ot44K344K/LOOCt+ODpeOCpuOCteOCrw0KK+OCq+ODiOOCpizjg4jjg6Ljg6bjgq0NCivjgqLjg6/jgqQs44OI44K344OO44OqDQor44Ob44K144KrLOODjuODquOCsw0KK+OCv+ODiuOCqyzjg6vjg58NCivjg5/jg5Ljg6ks44K344Ol44Km44K144KvDQor44K144OI44KmLOOCseOCpOOCsw0KK+OCquOCtuODryzjg6bjgq3jgqoNCivjgrnjgrrjgq0s44Kx44Oz44K4DQor44Of44Ok44K244KtLOODquODpeOCpuOCvuOCpg0KK+ODouODquOCv+ODiyzjg6bjgqvjg6oNCivjgqTjg6/jgrDjg60s44OE44OI44OgDQor44Km44Ko44OeLOOCt+ODp+OCpuOCsw0KK+ODleOCq+OCvyzjg4HjgqsNCivjg5Ljg63jgrss44Ki44Kt44KzDQor44Kq44Kr44OALOODkuODreODnw0KK+OCq+ODiOOCpizjgqLjg6rjgqsNCivjg57jgq0s44K144Om44OqDQor44OO44OALOODiOODouOCq+OCug0KK+OCr+ODnCzjgq3jg6fjgqbjgrMNCivjg4vjgrfjgq3jgqrjg6os44OE44Ku44KqDQor44Ok44OOLOOCuOODpeODs+OCsw0KK+OCq+ODr+ODoOOCs+OCpizjg4rjgqrjgq0NCivjg6Tjgrnjg6Djg6ks44Of44Oo44KzDQor44OI44OL44K3LOODiOODouOCsw0KK+ODpOODnuODouODiCzjg5Ljgqvjg6sNCivjgrfjg6Ljg4As44OA44Kk44K544KxDQor44Kq44Kq44K/44OLLOOCr+ODi+OCqg0KK+OCquODjuOCteODiCzjg4/jg7MNCivjgqvjg4rjgrbjg68s44OS44Ot44Ki44KtDQor44Kq44Kr44Oi44OILOODn+ODr+OCsw0KK+OCteOCpOODiOOCpizjg5/jg4rjgrMNCivjgqvjgrfjg6/jg5Djg6ks44OO44OW44KzDQor44K/44Kr44OP44K3LOODnuOCteODjuODlg0KK+OCteOCpOODiOOCpizjg57jg4rjg5YNCivjg57jg4Tjg4As44Oo44K344Ki44KtDQor44K/44OB44K244KtLOODr+OCq+OCsw0KK+OCs+ODs+ODiSzjg4jjg6LjgrMNCivjgrfjg5/jgros44OA44Kk44K544KxDQor44OK44Ks44Kq44KrLOOCq+OCquODqg0KK+ODiuOCq+OCrOODryzjgqLjg4TjgrcNCivjgr/jgqvjg4gs44OS44Ot44Om44KtDQor44Kt44Og44OpLOOCv+OCq+OCtw0KK+ODiuODq+OCuyzjgq3jg6jjg58NCivjgqrjgrDjg54s44Kr44KoDQor44K/44Kr44OP44K3LOODn+ODiuOCqA0KK+OCreOCr+ODgSzjgrvjgqTjgrMNCivjgrXjg4jjgqYs44OP44K444OhDQor44Ko44Oz44OJLOODnuODquOCsw0KK+OCv+ODoOODqSzjg4jjg6Ljg47jg6oNCivjg6Tjg57jg6Ljg4gs44Kz44Km44K4DQor44Ki44K144KkLOODqOOCt+ODkuODrQ0KK+ODouODqizjgqrjgrXjg6ANCivjgr/jgqvjgrfjg60s44Oh44Kw44OfDQor44Kq44KrLOOCteOCpOOCqw0KK+OCq+ODiOOCpizjg4jjgrfjg6QNCivjgqTjgrDjg4Es44K144OB44KzDQor44K/44OK44KrLOOCreODp+OCpuOCsw0KK+ODqOOCt+ODgCzjgrPjgqbjgrgNCivjgqLjgq3jg6Ljg4gs44Oe44OJ44KrDQor44OL44K344KkLOOCuOODpeODs+OCuA0KK+ODr+OCt+OCquOCqyzjgrPjgqbjgrgNCivjgqTjg4zjg57jg6ss44OS44Ot44K4DQor44Ob44K3LOOCt+OCuuOCqw0KK+ODqOODjeODpOODnizjg57jgrXjg47jg5YNCivjgq/jg63jg5ks44Om44Km44Kk44OBDQor44Kk44K344KkLOODkuOCteOCqA0KK+ODkuOCsOODgSzjgrjjg6Xjg7PjgqTjg4ENCivjg4rjgqvjg4As44K/44Kr44OP44OrDQor44Kq44OO44OH44OpLOODiuOCquOCsw0KK+ODiOODgCzjg4jjgrfjg6bjgq0NCivjg57jgqjjg4As44OS44Ot44KzDQor44OK44Ks44KkLOODpuOCreOCsw0KK+OCs+ODjOOCvyzjg5LjgrXjg6jjgrcNCivjgrfjg5DjgrXjgq0s44Kr44OE44OI44K3DQor44Km44Kr44KkLOOCouOCreOCqw0KK+OCueOCuuOCrSzjg4Hjg4/jg6sNCivjg5Ljg6njgq0s44OO44OW44KzDQor44OK44Kr44Og44OpLOODpuOCpuOCsw0KK+ODpOODnuODgCzjg57jgrXjg58NCivjgqvjg4njgq/jg6ks44Oe44K144K3DQor44K/44Kr44K144KtLOOCs+OCpuOCuA0KK+ODiuOCq+OCvyzjgq3jg6jjg58NCivjgr/jg4vjgqvjg68s44Ob44K644KoDQor44OL44K344Og44OpLOODnuOCteODpA0KK+ODn+ODiuODnyzjgqLjg6Tjg58NCivjgqrjgqrjg4zjgq0s44Of44OO44OrDQor44K144OI44KmLOODkuODreOCtw0KK+OCv+OCq+ODj+OCtyzjgr/jgqvjgqoNCivjg5Ljg4As44Kq44K144OgDQor44K144Kv44OeLOOCt+ODng0KK+ODi+OCqOODgCzjgr/jgqvjgrcNCivjg6jjgrPjgqQs44Os44OfDQor44Oo44ON44Kv44OpLOOCv+OCseOCqg0KK+ODkOODs+ODkCzjg6rjgqgNCivjg6Tjg57jg4As44Ki44Kt44OS44OHDQor44Kk44Oe44Og44OpLOODq+ODquOCsw0KK+OCpOOCseODgCzjg4HjgqLjgq0NCivjg4rjgqvjg6Djg6ks44Of44OK44KzDQor44K544OJ44KmLOODquOCqA0KK+ODiuOCq+OCveODjSzjgqvjgqrjg6oNCivjgqrjgqrjgrXjg68s44OB44Kr44KzDQor44K144OI44KmLOOCt+ODgeODreOCpg0KK+OCqOOCpOODieODoSzjg6bjgq0NCivjgqTjgqzjg6njgrcs44Of44KrDQor44K/44OkLOOCv+OCq+OCsw0KK+OCquOCquODkuODqSzjg6jjgrfjgrMNCivjgrXjgqvjg6Ljg4gs44K144OI44K3DQor44K544Ku44Oi44OILOOCs+OCpuOCuA0KK+OCq+ODiOOCpizjg5/jg4rjgrMNCivjg6jjgrfjgqQs44K/44OA44OS44OtDQor44Kk44Ov44OkLOODqOOCpuOCsw0KK+OCreODjuOCt+OCvyzjgq3jg6fjgqbjgrMNCivjgrnjgq7jgrXjg68s44Kr44K644OoDQor44Ov44OALOODn+ODqOOCsw0KK+ODn+ODpOOCt+OCvyzjgqjjg5/jgrMNCivjgqbjgqjjg44s44OO44OW44KzDQor44Kq44Kq44K/44KtLOODpuODn+OCsw0KK+OCpOOCt+ODkOOCtyzjgq3jg6fjgqbjgrMNCivjgqTjg6/jgrfjgr8s44Oe44K144KqDQor44Kk44K344Kr44OvLOODkuODh+ODkuOCsw0KK+OCreOCtyzjgr/jg4bjgqoNCivjg57jg6vjg6Tjg54s44OS44K144KqDQor44Ob44Oz44OeLOOCv+OCq+OCqg0KK+OCr+OCueODouODiCzjgqTjgrXjgqoNCivjgqTjg57jg44s44Kt44Of44OS44OHDQor44Kq44Kq44OL44K3LOOCu+OCpOOCvuOCpg0KK+ODpOODnuODgCzjgrfjg6fjgqYNCivjg5Xjgrjjgqrjgqss44OI44Op44KqDQor44OP44OK44OALOODpOOCueOCq+OCug0KK+OCt+ODkOOCvyzjgqLjgrXjgqoNCivjg5/jg6Tjgrfjgr8s44Om44Kt44KqDQor44Kr44K144OP44OpLOODnuOCteOCqg0KK+OCquOCquODpOOCsSzjg4/jg6vjgqoNCivjgqTjg57jgqQs44Kv44OL44KqDQor44Kz44K744KtLOODnuODquOCsw0KK+OCquOCquOCvyzjg47jg5zjg6sNCivjg57jg4HjgqQs44Kr44K644OS44OtDQor44Kt44Kv44OBLOOCu+ODhOOCqg0KK+ODkuOCsOODgSzjgqvjgrrjgqgNCivjg5/jg4rjg6jjgrcs44K444Ol44Oz44K4DQor44K544K644KtLOODkuODreOCq+OCug0KK+ODiuODs+ODkCzjg4rjgqrjgq0NCivjgqrjgqrjg4vjgrcs44OA44Kk44K144KvDQor44OP44Ok44K344OALOOCv+OCq+ODiOOCtw0KK+OCv+ODiuOCqyzjg5Ljg4fjg5Ljg60NCivjgqvjg43jgrMs44Kr44K644OO44OqDQor44OE44OB44OkLOODiOODouODpuOCrQ0KK+OCpOOCpOODgCzjgqjjg4TjgqoNCivjg5Xjg6vjg6Qs44Kr44K644KqDQor44OK44Kr44Og44OpLOODn+ODhOOCsA0KK+ODj+ODq+ODj+ODqSzjgr/jgqvjgrcNCivjg5vjg6rjgqgs44Oo44Oq44K344KyDQor44Kq44Kq44K/LOOCv+OCseOCtw0KK+OCueOCuuOCrSzjg6Tjgrnjg4TjgrANCivjgqrjg4gs44Oe44K144OI44K3DQor44OK44Kr44Ks44OvLOODnuODpuODnw0KK+OCq+ODr+OCt+ODnizjg6jjgqbjg5jjgqQNCivjg4bjg6njg6Ljg4gs44Om44Km44K444Ot44KmDQor44Kt44Og44OpLOOCouOCreODqQ0KK+ODqOODieODiuODryzjg6bjgqvjg6oNCivjgrPjg4DjgqTjg6ks44OS44OH44Ki44KtDQor44Kr44Kv44Op44KkLOODqOOCpuOCsw0KK+OCquOCsOODqizjg5Ljg63jg6jjgrcNCivjg4/jgr8s44Kx44Oz44K4DQor44Oe44OE44Oi44OqLOOCq+OCuuOCqg0KK+ODqOOCt+OCquOCqyzjgrvjgqTjgrgNCivjgrfjgrLjgr8s44Of44OB44Ki44KtDQor44Kr44Ov44Kw44OBLOODiOODouODkuODrQ0KK+OCq+ODjeOCsyzjg57jgrXjgqoNCivjgqLjgrXjg5Is44K/44OA44Ki44KtDQor44Ov44K/44OK44OZLOOCs+OCpuOCuA0KK+OCouODquODpOODnizjg4TjgrDjgqoNCivjg4Tjgrjjgr8s44K/44OE44KqDQor44Oo44K344OP44K3LOODkuODh+OCqg0KK+ODn+OCt+ODnizjgrvjgqTjgrcNCivjgrXjg4jjgqYs44Kr44OE44K4DQor44Kr44ON44Oe44OrLOOCqOODhOODkuODrQ0KK+OCq+ODjeOCsyzjg6TjgrnjgrcNCivjgqjjgrjjg54s44OS44Ot44Ki44KtDQor44Of44OE44Kv44OBLOOCuOODpeODsw0KK+ODouODqizjgq3jg5/jgqoNCivjgqrjg4Es44K744Kk44Kk44OBDQor44Oe44Ko44Kr44OvLOOCq+OCuuOCqg0KK+OCv+ODiuOCqyzjg57jgrXjg47jg6oNCivjgqrjg6rjgqzjgrUs44Oe44OE44OO44OqDQor44Kz44K744KtLOOCq+OCquODqw0KK+ODkuODqeODpOODnizjgr/jg4DjgrcNCivjgrPjg5zjg6os44Ko44OE44Oo44K3DQor44OK44Kr44Km44KoLOOCv+ODhOOCqg0KK+OCueODiOOCpizjg57jgrXjgqoNCivjgrTjg4jjgqYs44Kt44Oo44OS44KzDQor44OE44Kr44Oi44OILOODkuODreODn+ODgQ0KK+OCqOODk+ODj+ODqSzjg6jjgrfjgqLjgq0NCivjg6Ljg6rjg44s44OS44OH44OO44OqDQor44K544K644KtLOODnuOCteOCouOCrQ0KK+ODqOOCt+ODgCzjg57jgrPjg4gNCivjgqTjg57jgqQs44Oe44K144KtDQor44OS44OOLOODoOODjeOCv+OCqw0KK+ODqOOCt+ODgCzjg5/jg4oNCivjgqrjg4vjgrrjgqss44K544Of44K/44OADQor44K/44Kr44KuLOODnuOCteODkuOCsw0KK+OCquODoOODqSzjgqvjg4Tjg5Ljg4gNCivjgqbjg4Hjg6Tjg54s44Ko44OE44KzDQor44Kv44Ot44Kr44OvLOODqOOCt+ODjuODlg0KK+ODpOODnuOCt+OCvyzjgr/jgq3jgqoNCivjg4vjgrfjg4As44OS44K144KoDQor44Kr44K344Ov44KuLOODkuODreOCtw0KK+OCq+ODjeOCsyzjg6bjgq3jgrMNCivjgq/jg57jg4As44Of44Kt44KqDQor44Kz44K444OeLOODiuOCquOCuuODnw0KK+OCt+ODqeOCpCzjg4bjg4Tjg5LjgrMNCivjg5Xjg6vjgqvjg68s44Oq44KoDQor44Og44K344KmLOOCv+ODgOOCouOCrQ0KK+ODqOOCt+ODjizjg4jjgrfjgqoNCivjgrnjgq7jgqbjg6ks44K744Kk44Kk44OBDQor44OV44K444K144OvLOODnuODqg0KK+OCteODiOOCpizjgqLjgq3jg5Ljg60NCivjgqjjgrbjgq0s44K/44Kr44Om44KtDQor44Og44Op44Kr44OfLOOCv+OCq+OCqg0KK+ODi+ODr+ODpOODnizjg57jg4Tjg6Ljg6oNCivjg6Tjgrnjg44s44Of44KrDQor44OJ44Km44OALOODiOODouODkuOCsw0KK+OCq+OCuOOCpCzjg6Ljg4rjg58NCivjgr/jg4rjgqss44Oo44Km44KzDQor44Oe44OE44OK44OqLOOCpOOCteOCqg0KK+OCquOCquODkOODpOOCtyzjgrPjgqbjgq3jg4ENCivjgr/jgqvjg4/jgrcs44K/44Kv44OkDQor44Oe44OE44Og44OpLOODpOOCueODnuOCtQ0KK+OCs+ODouODqizjg57jgq3jgrMNCivjg47jgr7jgqgs44Kr44K644KoDQor44Kq44OOLOOCreODqOODnw0KK+OCq+ODs+ODjizjgrPjgrrjgqgNCivjgrXjg4jjgqYs44Kx44Kk44KzDQor44OO44OK44KrLOODr+OCq+OCsw0KK+OCq+ODr+ODj+ODqSzjg6bjg58NCivjg4rjgqvjg6Djg6ks44Oe44Om44OfDQor44Ok44Oe44K344K/LOODiOOCt+OCq+OCug0KK+OCs+OCpuOCpOODgSzjg6Ljg6LjgqgNCivjgqTjgr/jg6Qs44OS44OH44KqDQor44Ok44OeLOODleODn+OCsw0KK+ODpOODnuODouODiCzjgr3jgqbjgqTjg4Hjg63jgqYNCivjgq/jg6njgr8s44Ok44K544KzDQor44Kr44Ov44K6LOOCpOOCv+ODqw0KK+ODn+OCq+ODnyzjgrPjgqbjgqTjg4ENCivjgr/jgq3jgqzjg68s44Oo44K344Kr44K6DQor44K/44OK44KrLOODkuODreOCouOCrQ0KK+ODn+ODpOOCvyzjgr/jgqvjg4bjg6sKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfS29yZWFuLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19Lb3JlYW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhY2E0NDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfS29yZWFuLnR4dApAQCAtMCwwICsxLDQ5Nzk1IEBACivvu78jLyoqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqDQorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqLw0KKw0KK+qwgOyerOuylA0KK+qwgO2aqOumvA0KK+qwgOq4uOq4sA0KK+qwgOybkO2VmQ0KK+qwgOyerOyZhA0KK+qwgOuPmeyImA0KK+qwgOykkeyihQ0KK+qwgOuzkeu0iQ0KK+qwiOuztOq4iA0KK+qwiOyDgeyihQ0KK+qwiOyatOq2jA0KK+qwiOyImOyXtA0KK+qwiOyiheyaqQ0KK+qwiOuzkeybkA0KK+qwiOq4sOyErQ0KK+qwiOuLrOuNlQ0KK+qwkOuPme2biA0KK+qwkOqwkeyatA0KK+qwkOqwle2VmA0KK+qwkOq1re2drA0KK+qwkOygle2ZlA0KK+qwkOyEseyyoA0KK+qwkOuvvOyyoA0KK+qwkOyEseybkA0KK+qwleqyveq1rA0KK+qwleyYgeyDnQ0KK+qwley2mOyLnQ0KK+qwleyaqeuNlQ0KK+qwleqyveuhgA0KK+qwleuzkeq3nA0KK+qwle2VnOyImA0KK+qwleygleydtA0KK+qwleqyveuhnQ0KK+qwleyiheyImA0KK+qwleq3nOu0iQ0KK+qwleunjOyEsQ0KK+qwleqyveyImQ0KK+qwleyEne2VmA0KK+qwleygle2ZlA0KK+qwleygkOyhsA0KK+qwleqyveyduA0KK+qwleyKue2YhA0KK+qwleuzke2XjA0KK+qwleydgO2ZmA0KK+qwleqyveyekA0KK+qwleuqhe2DnA0KK+qwleyEseyhsA0KK+qwleuvuOyhsA0KK+qwleqyveyekA0KK+qwleyihe2drA0KK+qwleyaqeyEnQ0KK+qwleq4sO2VmA0KK+qwleqzoeyngA0KK+qwleuMgOyInA0KK+qwleuMgOyInA0KK+qwleqyveq3vA0KK+qwleq0keyLnQ0KK+qwle2ajOyhsA0KK+qwleyEneyImA0KK+qwleyihey2mA0KK+qwleq1rOyKuQ0KK+qwleyerOyyoA0KK+qwley2qeq1rA0KK+qwleq0keyXtA0KK+qwleq1rO2ZmA0KK+qwleunjOyYgQ0KK+qwleyihe2ZmA0KK+qwleq4uOuylA0KK+qwleq3gOygkA0KK+qwleyepeyasA0KK+qwleq4sOyaqQ0KK+qwleygle2ctA0KK+qwleq3gO2ZmA0KK+qwleygkOyInA0KK+qwlSDrsKkNCivqsJXqsr3tmLgNCivqsJXqt7zsiJgNCivqsJXqsr3siJgNCivqsJXsmqntm4gNCivqsJXrs5HsiJwNCivqsJXqt7ztmZgNCivqsJXtlbTshKANCivqsJXtmY3shJ0NCivqsJXstpjqt5wNCivqsJXquIjrsLANCivqsJXrqoXsl7ANCivqsJXshLjtg5wNCivqsJXsp4TsiJkNCivqsJXquIjrsLANCivqsJXsooXsl7ANCivqsJXsoJXsirkNCivqsJXsm5TrtoQNCivqsJXquIjsnpANCivqsJXssqDsiJgNCivqsJXqsr3tlZkNCivqsJXshJ3tg5wNCivqsJXquLDsiJwNCivqsJXtmITshKANCivqsJXsg4HtlZgNCivqsJXsnqzsp4QNCivqsJXquLDsmYQNCivqsJXsoJXspIANCivqsJXrs7jtmZgNCivqsJXtlZjtlYQNCivqsJXquLDsm5ANCivqsJXsgqztnawNCivqsJXsmqnrrLgNCivqsJXsm5Dsp4QNCivqsJXquLDsnoQNCivqsJXsg4HsobANCivqsJXrj5ntg5wNCivqsJXsnqztl4wNCivqsJXquLDtmJUNCivqsJXsiJzrtIkNCivqsJXqtJHsmKUNCivqsJXsnbjtnawNCivqsJXquLDtmJUNCivqsJXrs5HsmqkNCivqsJXtg5ztg5wNCivqsJXrtInsm5ANCivqsJXquLjsm5ANCivqsJXtlZntmIQNCivqsJXsnqzsi50NCivqsJXqsJHsgrwNCivqsJXrgqjspJENCivqsJXsoJXsnoQNCivqsJXsmIHsm5ANCivqsJXtg5ztmLgNCivqsJXrgqjspJENCivqsJXsmqnsp4QNCivqsJXrjZXri6wNCivqsJXtmITtnaANCivqsJXrhbjtmJUNCivqsJXsoJDsobANCivqsJXtmozrtoQNCivqsJXsmIHsi50NCivqsJXri6zsiJgNCivqsJXstpjsmIENCivqsJXslrXssqANCivqsJXsooXsp4QNCivqsJXrjIDshJ0NCivqsJXqtZDtlZkNCivqsJXsg4Hso7wNCivqsJXsnbTssqANCivqsJXrjIDsmIENCivqsJXssKjsiJwNCivqsJXsmIHqta0NCivqsJXsiJjtnawNCivqsJXrjIDsmqkNCivqsJXsiJntlqUNCivqsJXsg4HtnawNCivqsJXsnKTssqANCivqsJXrjIDsmqkNCivqsJXtg5ztg50NCivqsJXqt5zsiKANCivqsJXtmY3tlZkNCivqsJXrjIDsnbUNCivqsJXrp4zquLgNCivqsJXsnbzrnpgNCivqsJXsg4HshJ0NCivqsJXrjIDsp4QNCivqsJXrgqjtmLgNCivqsJXsg4HtmLgNCivqsJXrrLTsnZgNCivqsJXrjIDtmIQNCivqsJXsmIHrnoANCivqsJXshKDquIgNCivqsJXssL3sl7QNCivqsJXrjIDtmJUNCivqsJXsnqzsiJgNCivqsJXsiJzqt7wNCivqsJXsnqztmZgNCivqsJXrjIDtnawNCivqsJXtlbTsg50NCivqsJXsiJjtmIQNCivqsJXqt5zsiJkNCivqsJXrjZXsiJgNCivqsJXqsr3sm5ANCivqsJXtlqXshJ0NCivqsJXrrLTrjZUNCivqsJXrjZXsmqkNCivqsJXsmYTtg5wNCivqsJXsmKXsm5ANCivqsJXspJHsnoQNCivqsJXrjZXsnKQNCivqsJXtg5zsmrQNCivqsJXsnqXroYANCivqsJXsmIHtlZkNCivqsJXrj5nspJENCivqsJXsmqnsl7QNCivqsJXsiJjsmrQNCivqsJUg6riIDQor6rCV64+Z7LKgDQor6rCV64us642VDQor6rCV6reA7YOcDQor6rCV66qF7ZWZDQor6rCV64+Z7LKgDQor6rCV6rSR7JWUDQor6rCV7IOB66qoDQor6rCV7Jil66eMDQor6rCV64+Z7ZiEDQor6rCV7YOc7IStDQor6rCV7J6s7IigDQor6rCV7Iug7KGwDQor6rCV65GQ7KeEDQor6rCV7IOB6rWtDQor6rCV7Jyh7Je0DQor6rCV7JiB7KKFDQor6rCV66Gd7KSRDQor6rCV7ISx67O1DQor6rCV66+87ISdDQor6rCV7ISg7J6QDQor6rCV66eM7IiYDQor6rCV6rSA7ZiEDQor6rCV7J6s7ZmNDQor6rCV67OR7ISgDQor6rCV66eM7Z2lDQor6rCV7KCQ6riwDQor6rCV6reA7IKwDQor6rCV7LKc7JykDQor6rCV66eQ67aEDQor6rCV7J6s6rWsDQor6rCV7Iic7KGwDQor6rCV7KCV7LmgDQor6rCV66eQ7J6EDQor6rCV7J6s7IiYDQor6rCV7JiB7JqpDQor6rCV67OR7LCsDQor6rCV66qF6rSADQor6rCV66qF7KGwDQor6rCV7J6s7J20DQor6rCV7ISd7Zi4DQor6rCV66qF7JWUDQor6rCV7IiY6rOkDQor6rCV6raM6recDQor6rCV7ISx6rWsDQor6rCV66y07KSRDQor6rCV7YOd7LKgDQor6rCV7KKF7ZmYDQor6rCV64yA7ISdDQor6rCV66y464+MDQor6rCV7LKg7Zi4DQor6rCV7IOB7KeEDQor6rCV7ZmY656ADQor6rCV66y47IigDQor6rCV7Jqp7Zi4DQor6rCV7ZiV7ZiEDQor6rCV7ZiE7IStDQor6rCV66+47IiZDQor6rCV7Iq57ZmUDQor6rCV7YOc7IudDQor6rCV7ISx7J6QDQor6rCV67OR6recDQor6rCV7ISx67O1DQor6rCV7J287KKFDQor6rCV64+Z7Z2sDQor6rCV67OR7ISdDQor6rCV7LC966+4DQor6rCV7ZWE6riwDQor6rCV6rOE7ZiEDQor6rCV67OR7Je0DQor6rCV67O16ri4DQor6rCV6rSR7IiYDQor6rCV7JiB7ISdDQor6rCV67OR7ZmYDQor6rCV7Jew66OhDQor6rCV7LKg7IigDQor6rCV7KeE7J20DQor6rCV67O17LaYDQor6rCV64+Z7LKgDQor6rCV7KCV7KGwDQor6rCV7IOB67CxDQor6rCV67SJ7JqwDQor6rCV7JuQ7IiYDQor6rCV66qF7Zi4DQor6rCV6raM7ZiEDQor6rCV67aE64+EDQor6rCV64+E7ISdDQor6rCV7ZW07YOcDQor6rCV7JyE7IStDQor6rCV7IKs7ZiEDQor6rCV7ZuE7IiYDQor6rCV7Jyk7IOBDQor6rCV7Z2s6rWtDQor6rCV7IK866GdDQor6rCV66qF7ISdDQor6rCV7ZmU7J6EDQor6rCV7LKg7ZmUDQor6rCV7IK866y4DQor6rCV6rCV7IiYDQor6rCV67O17Zi4DQor6rCV7ISg7IStDQor6rCV7IK866y4DQor6rCV7ZWc7ZiEDQor6rCV7Jqp6rCRDQor6rCV7YOc64+ZDQor6rCV7IK87KGwDQor6rCV7YOc7KCVDQor6rCV7LC97J28DQor6rCV7ZW07JuQDQor6rCV7IOB67CxDQor6rCV67O17JqpDQor6rCV6riw7Je0DQor6rCV7LC96recDQor6rCV7IOB67O1DQor6rCV6rK97KCcDQor6rCV7Iic7JuQDQor6rCV7Iic7Je0DQor6rCV7IOB67SJDQor6rCV7JiB7J2YDQor6rCV7KKF7JykDQor6rCV7Zqo7JuQDQor6rCV7IOB7JykDQor6rCV7IiY7JiBDQor6rCV64us7LKgDQor6rCV7JiB7IiZDQor6rCV7IOB7Z2sDQor6rCV67OR67CwDQor6rCV7Iic6recDQor6rCV6reA7IOBDQor6rCV7ISd64yADQor6rCV7J247Jq0DQor6rCV7JuQ7IiYDQor6rCV7KCV7IudDQor6rCV7ISd7KO8DQor6rCV7Jqp67O1DQor6rCV7Z2s6ri4DQor6rCV7KKF64KoDQor6rCV7ISd7KO8DQor6rCV7YOc67SJDQor6rCV7ISx7ZWcDQor6rCV7IOB7ISxDQor6rCV7ISg64+ZDQor6rCV66qF66qFDQor6rCV6riw6rCRDQor6rCV7Z2s7IiYDQor6rCV7ISg7KGwDQor6rCV7LaY7LacDQor6rCV7J247ISdDQor6rCV7KCV7JilDQor6rCV7ISx6529DQor6rCV7ZiE66GdDQor6rCV7ZWZ7KeBDQor6rCV7JuU7IStDQor6rCV7ISx67CwDQor6rCV7JuU7KeEDQor6rCV7IOB7ZmYDQor6rCV7KeE7ZmYDQor6rCV7ISx7J28DQor6rCV7KCV7J6QDQor6rCV64us7KO8DQor6rCV7J6s6rWQDQor6rCV7ISx7ZW0DQor6rCV6riw7IiZDQor6rCV7Jqp66qFDQor6rCV66qF7ZeMDQor6rCV7IS46recDQor6rCV6riw6riwDQor6rCV7KCV6riwDQor6rCV65GQ7J6QDQor6rCV7IaM7KSADQor6rCV7J6s7Zi4DQor6rCV7KCV6riwDQor6rCV6rSR6riwDQor6rCV7IiY6riwDQor6rCV6rOE7ZiEDQor6rCV7KeE7ZiVDQor6rCV7J247Zi4DQor6rCV7IiY7KeEDQor6rCV7Iic7ZmUDQor6rCV7KKF7IudDQor6rCV7Iig66+8DQor6rCV7IiY7ZiVDQor6rCV7J6s67CwDQor6rCV7Jil7J2ADQor6rCV7ISx6riwDQor6rCV7IiZ7Z2sDQor6rCV64KZ7JqwDQor6rCV7ZWE67aEDQor6rCV7KKF7IudDQor6rCV7Iic6rK9DQor6rCV7JiB7JuQDQor6rCV67O17Je0DQor6rCV6riI7JWFDQor6rCV7Iic7JilDQor6rCV7LaY7ZmYDQor6rCV64yA6rK9DQor6rCV7IOB64KcDQor6rCV7Iic7J20DQor6rCV7KKF7J28DQor6rCV6rK97KCVDQor6rCV67OR7ZeMDQor6rCV7Iug6regDQor6rCV7ZeM7IiYDQor6rCV66eQ7KGwDQor6rCV7J2A7IiZDQor6rCV7Iug7JiBDQor6rCV7Zi466eMDQor6rCV7JiB7YOcDQor6rCV7Jqp66GdDQor6rCV7Iug7JiBDQor6rCV7Zi47JqpDQor6rCV7IiY7IudDQor6rCV7LaY7IiYDQor6rCV7Iug7J6EDQor6rCV7J2Y7LCsDQor6rCV7YyQ7ISgDQor6rCV7Iq566y4DQor6rCV7Iug7LCsDQor6rCV67OR7JuFDQor6rCV67O1656YDQor6rCV66eM7Je0DQor6rCV7Iug7YOdDQor6rCV66qF6rWsDQor6rCV7ZiE6rCRDQor6rCV7J247ISdDQor6rCV7IyN65OdDQor6rCV7LKc7JqpDQor6rCV7J6s6rWtDQor6rCV6riw7KGwDQor6rCV7Ja47IigDQor6rCV7J2Y7IiYDQor6rCV6rK97Zi4DQor6rCV6re87JuQDQor6rCV7Jew6rWsDQor6rCV7Z2s7ISdDQor6rCV7JiB7KSADQor6rCV67OR7KeEDQor6rCV7Jew7J20DQor6rCV7LC97JewDQor6rCV7IOB7Z2sDQor6rCV7IOB7Je0DQor6rCV7JiB6recDQor6rCV7J6s67SJDQor6rCV7Zi46rSADQor6rCV7Jew7KeEDQor6rCV7JiB7IiYDQor6rCV7YyQ7Zi4DQor6rCV7JiB7ZiEDQor6rCV6riI7Zy0DQor6rCV7JiB7IiYDQor6rCV6rK97IiYDQor6rCV7J6s7IudDQor6rCV7LKc7J20DQor6rCV7JiB7IiYDQor6rCV6rSR7YOcDQor6rCV66m07KCcDQor6rCV7Jyk7ISdDQor6rCV7JiB7IiYDQor6rCV7ZmY66GADQor6rCV6rOE6rSRDQor6rCV66eQ6recDQor6rCV7JiB7IiYDQor6rCV67OR64+EDQor6rCV7Jqp6rKsDQor6rCV7IK87IudDQor6rCV7JiB7JuQDQor6rCV7ZW07ZmYDQor6rCV7ISg7IiYDQor6rCV66eQ7KeEDQor6rCV7Jil6rWsDQor6rCV7ZWZ7JuQDQor6rCV66eM7ISgDQor6rCV7Lmg7IudDQor6rCV7Jil6rWsDQor6rCV67OR7Z2sDQor6rCV7IiY6rSRDQor6rCV7Zmp7J20DQor6rCV7Jil6riIDQor6rCV7YOc7KKFDQor6rCV7KCV6riwDQor6rCV7IOB7IK8DQor6rCV7Jm47IicDQor6rCV7J247LCsDQor6rCV67OR7YOdDQor6rCV7Jew7IudDQor6rCV7Jqp642VDQor6rCV67OR67SJDQor6rCV7ISd7J28DQor6rCV7IOB7JewDQor6rCV7Jqp7IudDQor6rCV6rK97JqpDQor6rCV7JiB7ZmUDQor6rCV7J2E7KCVDQor6rCV7Jqp7YyQDQor6rCV67aA7Z2sDQor6rCV7ISx7J6QDQor6rCV7IOB7IicDQor6rCV7Jqp7Z2sDQor6rCV7J6s7J20DQor6rCV7JWg7YOcDQor6rCV7ISd66+4DQor6rCV7JuQ7KCVDQor6rCV7ISd7Jq0DQor6rCV7IiY6riwDQor6rCV64yA67CwDQor6rCV7JuQ7KeEDQor6rCV6riw7Zi4DQor6rCV64+Z7J6QDQor6rCV7ZmN7IeEDQor6rCV7JuQ7YOcDQor6rCV64u07IudDQor6rCV7KKF7YOcDQor6rCV7LC97IudDQor6rCV7Jyg67O1DQor6rCV6rK9642VDQor6rCV7KCV66qFDQor6rCV7Iic7IiYDQor6rCV7Jyh66y4DQor6rCV7ISd64yADQor6rCV7JiB7IicDQor6rCV7J6s7ZWcDQor6rCV7Jyk65OdDQor6rCV7ISx7ZWYDQor6rCV7Jqp6riIDQor6rCV6rec7KGwDQor6rCV7Jyk7J6QDQor6rCV7Jqx7JWUDQor6rCV67KU6rWtDQor6rCV7J207KGwDQor6rCV7J247IiYDQor6rCV7Jqp7JuQDQor6rCV7J6s7JqpDQor6rCV7KKF7J24DQor6rCV7J247Je0DQor6rCV67OR6recDQor6rCV7J2A7YOcDQor6rCV67Cw7JWgDQor6rCV7J2867aEDQor6rCV7J2464WEDQor6rCV67aE7JykDQor6rCV7KCV7Z2gDQor6rCV7J287Zi4DQor6rCV7J6l7IudDQor6rCV7J6s7IiYDQor6rCV6riw7Je0DQor6rCV7J6l7IiYDQor6rCV6rK97ISxDQor6rCV64+Z7Je0DQor6rCV7ISx6riwDQor6rCV7J6s7JiBDQor6rCV7IiY7JewDQor6rCV7ZmN7KO8DQor6rCV7LaY67O4DQor6rCV7KCE7LKgDQor6rCV7YOc7Zi4DQor6rCV7ISx7IicDQor6rCV7JiB6ri4DQor6rCV7KCQ642VDQor6rCV7ZeM7JuFDQor6rCV66+87LCsDQor6rCV66eM7JiBDQor6rCV7KCQ67O1DQor6rCV6rCR7JqpDQor6rCV7ZW07KO8DQor6rCV67OR7ZiEDQor6rCV7KCQ7IiZDQor6rCV7IOB7IiYDQor6rCV7J6s7LacDQor6rCV7ZmN64yADQor6rCV7KCV6ri4DQor6rCV65GQ7IiYDQor6rCV66y46rWtDQor6rCV6rK97ISdDQor6rCV7KCV66qoDQor6rCV7KKF6rSADQor6rCV7IOB67O1DQor6rCV7ZW064+EDQor6rCV7KCV67O1DQor6rCV66y47Zi4DQor6rCV7ISx7ZWEDQor6rCV6riw6rWtDQor6rCV7KCV7ISdDQor6rCV6riw7LKgDQor6rCV7J6s66GdDQor6rCV7KCQ7ZiEDQor6rCV7KCV7IiZDQor6rCV6rK97JqwDQor6rCV7J6s7J6QDQor6rCV7Iig7JqwDQor6rCV7KCV7IiZDQor6rCV7IiY7Z2sDQor6rCV7ISx7IudDQor6rCV7KCV7Jq0DQor6rCV7KCV7IiZDQor6rCV67O17ISdDQor6rCV7YyQ7IOdDQor6rCV7ISd67CwDQor6rCV7KCV7JWgDQor6rCV7Jqw66eMDQor6rCV6rWs6recDQor6rCV7JuQ7Je0DQor6rCV7KCV7Je0DQor6rCV7J6s7Zi4DQor6rCV7JiB6rOkDQor6rCV7KKF7JygDQor6rCV7KKF642VDQor6rCV7JmE7ZiEDQor6rCV7IOB7Zi4DQor6rCV6rWs7IudDQor6rCV7KKF66eMDQor6rCV66qF7IS4DQor6rCV7ISx67KUDQor6rCV7JiB67CwDQor6rCV7KKF7Je0DQor6rCV64yA66eMDQor6rCV7J6s7Zi4DQor6rCV7ISg7ZiEDQor6rCV7KKF7LCoDQor6rCV64yA7YOcDQor6rCV7Zi47KCVDQor6rCV7YOc7ISgDQor6rCV7KKF7ZWEDQor6rCV7ZiE64yADQor6rCV7YOc7J20DQor6rCV7KeA7KSADQor6rCV7KO87ISdDQor6rCV64yA7KGwDQor6rCV6rWQ6regDQor6rCV6rK97ZmUDQor6rCV7KO87JuQDQor6rCV7Iic7YOcDQor6rCV6rCV7JmEDQor6rCV7JiB7Je0DQor6rCV7KO87ZuIDQor6rCV6riw642VDQor6rCV6riI6riwDQor6rCV7JiB7IicDQor6rCV7KSR67aADQor6rCV7Iic7LacDQor6rCV7ZWc7IiYDQor6rCV64+Z6rWQDQor6rCV7KeE7JiBDQor6rCV7YOc7IudDQor6rCV7Jyg7ZmYDQor6rCV7JiB64yADQor6rCV7KeE7Zi4DQor6rCV64yA6rWsDQor6rCV66eQ6rSRDQor6rCV7IOB7IiYDQor6rCV7KeE7Zi4DQor6rCV7Jil64yADQor6rCV6re87JuQDQor6rCV66eM7LacDQor6rCV7LC966GdDQor6rCV7KCV7IStDQor6rCV7JaR6re8DQor6rCV7J247KCVDQor6rCV7LC97ISdDQor6rCV6rCc7IudDQor6rCV7YOc7ZmYDQor6rCV7KKF7IiYDQor6rCV7LC97IStDQor6rCV7KCV64+ZDQor6rCV7KKF6recDQor6rCV6rCQ7Zi4DQor6rCV7LC97IiYDQor6rCV66y07JewDQor6rCV7ZW07ZmYDQor6rCV7Jqp7Jq0DQor6rCV7LC97JuQDQor6rCV66qF7ZWZDQor6rCV7JiB6recDQor6rCV66y064u0DQor6rCV7LKc7ISdDQor6rCV64+Z66y4DQor6rCV7Jyk7KGwDQor6rCV7KSA7LKgDQor6rCV7Lap6recDQor6rCV7Jqp6rSADQor6rCV7Iq57JuQDQor6rCV7JuQ7KGwDQor6rCV7L6M7IiYDQor6rCV7J6s7KCQDQor6rCV7IOB7LKgDQor6rCV7ISd6rOEDQor6rCV7YOc66y4DQor6rCV7LaY7ZmYDQor6rCV6rec7Jq0DQor6rCV7IOB7KGwDQor6rCV7YOc7IOBDQor6rCV7KKF6ri4DQor6rCV7ISx7J20DQor6rCV7JiB67CwDQor6rCV7YOc7ISdDQor6rCV7ZKN7IigDQor6rCV7Jew66eMDQor6rCV7Jqp7IS4DQor6rCV7YOc7ISxDQor6rCV7KCV7ZWcDQor6rCV7KKF7YOcDQor6rCV7KCV6rK9DQor6rCV7YOc7IiYDQor6rCV64+Z66qoDQor6rCV64us7JqpDQor6rCV7YOc656ADQor6rCV7YOc7IicDQor6rCV6rSR66qFDQor6rCV7JiB64+MDQor6rCV7Iic7ISdDQor6rCV7YOc7Iq5DQor6rCV7ISd7J6lDQor6rCV7YOc6recDQor6rCV7JiB7Z2sDQor6rCV7YOc7J28DQor6rCV7KCV7JiBDQor6rCV7JiB7Z2sDQor6rCV6rec7IicDQor6rCV7YOc7J6QDQor6rCV7KCQ7JuQDQor6rCV66y47ZeMDQor6rCV7ZW07KO8DQor6rCV7YOc7KeEDQor6rCV7LGE7KGwDQor6rCV7IiY642VDQor6rCV66eM64+EDQor6rCV7YOc7KeEDQor6rCV7Jqp64yADQor6rCV6ri46re8DQor6rCV7KeA7IiZDQor6rCV7YOc7ZiVDQor6rCV7JiB7ZyYDQor6rCV6rK97J6sDQor6rCV7Z2l7IStDQor6rCV7YOc7Zi4DQor6rCV7Iic7ZmYDQor6rCV6rK96riwDQor6rCV7KCV7Zi4DQor6rCV7YyU6raMDQor6rCV6rec7J6QDQor6rCV7YyQ7YOcDQor6rCV7Jyk7KGwDQor6rCV7ZWE7J6EDQor6rCV6re87IOBDQor6rCV7Jqw7ISgDQor6rCV7ISx7ZmYDQor6rCV7ZWZ6rWsDQor6rCV7KCV7IudDQor6rCV7JWg7IOBDQor6rCV6rSR6riwDQor6rCV7ZWZ6recDQor6rCV7LCs7ZmYDQor6rCV67aA7IStDQor6rCV7J247KO8DQor6rCV7ZeM7KSRDQor6rCV7ZW07JuQDQor6rCV64KZ66eMDQor6rCV7YOc7IiYDQor6rCV7ZiE7ISdDQor6rCV7IOB64W4DQor6rCV7J6s7J6QDQor6rCV6rCR7IiYDQor6rCV7ZiE7JmEDQor6rCV7IiZ7LacDQor6rCV6riI66asDQor6rCV7JaR7IiZDQor6rCV7Zic7JuQDQor6rCV7JiB7KKFDQor6rCV7IyN7J28DQor6rCV6riw7IiZDQor6rCV7Zi46rK9DQor6rCV64+Z7ZmYDQor6rCV6rK97KCQDQor6rCV7ISx7KKFDQor6rCV7ZmN6re8DQor6rCV7LaY7YOdDQor6rCV7JiB7JuQDQor6rCV6rK96rWtDQor6rCV7ZmN67CwDQor6rCV7ZeM7IudDQor6rCV7JuQ6rWQDQor6rCV7Jqp7IiZDQor6rCV7ZmN7IStDQor6rCV7KKF7J6EDQor6rCV7LC97Zi4DQor6rCV6rOk7JuQDQor6rCV7Zqo6re8DQor6rCV6reA67KUDQor6rCV7Iic7LCsDQor6rCV66eM7JilDQor6rCV7ZyY6recDQor6rCV7J6s7Zi4DQor6rCV7IiY7KGwDQor6rCV7YOc6regDQor6rCV7ZyY6recDQor6rCV67OR7KKFDQor6rCV7YOc7IOBDQor6rCV7Z2s7IiYDQor6rCV7Z2l7LCsDQor6rCV66+46riwDQor6rCV7KKF7IugDQor6rCV6riw7YOcDQor6rCV7Z2s6rCRDQor6rCV7J6s7Zi4DQor6rCV6reA7IucDQor6rCV7ISd7IudDQor6rCV7Z2s6recDQor6rCV7ZW07ISxDQor6rCV7ISx6re8DQor6rCV7Jqp64+EDQor6rCV7Z2s7ISdDQor6rCV66qF6re8DQor6rCV67SJ7ZWcDQor6rCV7KCV7ZuIDQor6rCV7Z2s7JiBDQor6rCV7L6M7JqwDQor6rCV7IiY7ZiEDQor6rCV7ISx7JewDQor6rCV7Z2s7KCQDQor6rCV7J2Y7IudDQor6rCV6rK97IiYDQor6rCV7LC97Je0DQor6rK96raM7Zi4DQor6rK97JiB7IiYDQor6rK96rK96rWQDQor6rK97Jqp7IudDQor6rK965GQ7Zi4DQor6rK97IOB7YOcDQor6rK97Jil7JqxDQor6rK97ISd64KoDQor6rK97IS47Zi4DQor6rK97Jqp7J6QDQor6rK966e57J6QDQor6rK97ISd7Je0DQor6rOg6rSR7IiYDQor6rOg7ZmN6ri4DQor6rOg6riw7J6QDQor6rOg7LC97ISdDQor6rOg6rSR7IiZDQor6rOg7J6s7KSADQor6rOg7JiB7KO8DQor6rOg7KeE7IiYDQor6rOg6rSR7Z2sDQor6rOg7IOB6raMDQor6rOg7KKF7JilDQor6rOg7ZmN7IiYDQor6rOg6reA7J6EDQor6rOg7Jqw6recDQor6rOg6rK97JuQDQor6rOg7J6s7J21DQor6rOg64yA7KKFDQor6rOg66qF7JqwDQor6rOg66eJ7ISkDQor6rOg7Jew7J24DQor6rOg642V7JqpDQor6rOg6rK97IusDQor6rOg7KO87Zi4DQor6rOgIOyLnQ0KK+qzoOuNleydtA0KK+qzoOuzte2YhA0KK+qzoO2DgOqwkQ0KK+qzoOyerOyasA0KK+qzoOuPmeyInA0KK+qzoCDslZQNCivqs6DtmITtmIQNCivqs6DtlZzsiJgNCivqs6Drj5ntmIQNCivqs6Drs7Xtg5wNCivqs6Dsp4Tqs6QNCivqs6Drp4ztmLgNCivqs6DrnpjsnoQNCivqs6DqsJHsobANCivqs6DrrLTsnKQNCivqs6DshLHsiJwNCivqs6Drp5DrgqgNCivqs6DrjZXtmZQNCivqs6DrkZDshLENCivqs6Dtg5ztmLgNCivqs6DrqoXsi50NCivqs6DtlZntmqgNCivqs6Drj5nsiJkNCivqs6Dqs6Trk50NCivqs6Drr7ztnawNCivqs6DsmbjtmLgNCivqs6DqtJHsnbQNCivqs6Dsg4HsiJkNCivqs6Drs5HsmrENCivqs6Dsnqzsi50NCivqs6Drj5ntlbQNCivqs6DsoITtmLgNCivqs6Drs5HtnawNCivqs6Drp4zsnbwNCivqs6DsmqntmZQNCivqs6Drj5ntg5wNCivqs6DshJ3qtowNCivqs6DsiJzslaANCivqs6DsoJDshJ0NCivqs6DsnqzsobANCivqs6DshJ3sm5ANCivqs6DtmY3rnoANCivqs6DsiJztmLgNCivqs6Dtg5zrtIkNCivqs6DshLHsm4UNCivqs6DqtozsiJwNCivqs6DsmrTso7wNCivqs6DsmIHsiJkNCivqs6DsiJjqtowNCivqs6DsmqnquLANCivqs6DssqDsobANCivqs6Drs7XsiJgNCivqs6DsiJjruYgNCivqs6Dqs4Tro6ENCivqs6Drs5HsmrQNCivqs6DrjZXsiJgNCivqs6DsiJzrp7kNCivqs6DsooXso7wNCivqs6DtjJDsiJwNCivqs6Dsnqzrs7UNCivqs6DsiJztmLgNCivqs6Dsoozsi50NCivqs6DshLHqtZANCivqs6Dqt7zssqANCivqs6Dsi5zrqqkNCivqs6DsoJXtmLgNCivqs6DshJ3tnawNCivqs6DshJ3smrENCivqs6DsmIHquLgNCivqs6DqsJHsiJkNCivqs6DsooXsnpANCivqs6DtlbTtlbQNCivqs6DsmIHsm5ANCivqs6DsnqztnawNCivqs6DsmIHroZ0NCivqs6DsooXsmqkNCivqs6DsnKDsp4QNCivqs6DsmIHsiJgNCivqs6DsiJztg50NCivqs6DsnZHtlZwNCivqs6DsnKTrspQNCivqs6Dtg5zquLgNCivqs6DrrLTrjZUNCivqs6DssL3shJ0NCivqs6DsnYDshKANCivqs6DshLHsm5ANCivqs6DshJ3tmLgNCivqs6DtmY3siJkNCivqs6DsnZjrp4wNCivqs6Dsmqnsm5ANCivqs6Dsp4TspIANCivqs6DsnoTsiJwNCivqs6DsnZjsp4QNCivqs6Dsgrztm4gNCivqs6Drj5nshKANCivqs6Dsm5DtnawNCivqs6DsnbjshJ0NCivqs6Dtg5zssKwNCivqs6DsooXsobANCivqs6Drr7zrj5kNCivqs6DsnbztmZgNCivqs6DquLDsnbUNCivqs6DshozshK0NCivqs6DtmJXsiJgNCivqs6DsnqXqta0NCivqs6DqsJHtmJwNCivqs6DsoJDrgqgNCivqs6Dsspzqt6ANCivqs6DsnqzsmYQNCivqs6DsooXsiJwNCivqs6Dqsr3qsr0NCivqs6Dsl7Dqt7wNCivqs6DsoJXshJ0NCivqs6DsnoTtg50NCivqs6Dtg5zsp4ANCivqs6DstpjtnawNCivqs6DsoJXshJ0NCivqs6DrtInquLANCivqs6DsirnquLANCivqs6DtmITtmJUNCivqs6DspJHshJ0NCivqs6DsmqntnawNCivqs6DquLDtmLgNCivqs6DsmIHsiJgNCivqs6DssL3shJ0NCivqs6Dsg4HsmrANCivqs6Dsp4TsiJwNCivqs6Drj4TsiJgNCivqs6DssqDqt5wNCivqs6DsnKTsobANCivqs6Dsg4HssqANCivqs6DsooXsiJgNCivqs6Dstqnqta0NCivqs6DtjJDtmZgNCivqs6DsmIHtg5wNCivqs6DsmKXqsbQNCivqs6Dtg5zqsr0NCivqs6DsiJzroKgNCivqs6DsiJzrp4wNCivqs6DsmIHqt7wNCivqs6DtlZnrrLgNCivqs6Dqsr3siJwNCivqs6Dsg4HsiJgNCivqs6DrtoDrs7QNCivqs6DtmITsgrANCivqs6DrtInsnbwNCivqs6Dqsr3quLgNCivqs6DsiJztnawNCivqs6DtmqjsmIENCivqs6Drj5nquLANCivqs6Drr7jstpwNCivqs6DtmITsnYANCivqs6DtmqjsmIENCivqs6DshLHrp4wNCivqs6DsnoTrspQNCivqs6Dtg5ztg5wNCivqs6DtmqjsmIENCivqs6DshozsmqkNCivqs6DsmrDsiJgNCivqs6DtlZnsiJkNCivqs6DtnazshJ0NCivqs6DsmqnrtoQNCivqs6DsnqzshJ0NCivqs6DsnqzsmrANCivqs7XqtJHsmqkNCivqs7XquIjstqkNCivqs7XsoJXroLkNCivqs7XshLjsnbUNCivqs7Xrp4zsiJgNCivqs7XsnYDshJwNCivqs7Xqt7zsiJgNCivqs7XsnoTsiJgNCivqs7XrqoXsiJgNCivqs7XrtoDsiJwNCivqs7XtlbTshJ0NCivqs7XsooXslZQNCivqs7Xrs5HrnpgNCivqs7Xrs5Hqt7wNCivqs7XtmZTrj4QNCivqs7XssL3quLANCivqs7XshJ3rtpUNCivqs7XsnqzrtoQNCivqs7Xsnqzsm5ANCivqs7XsooXtlZkNCivqs7XshJ3snbQNCivqs7XssL3siJgNCivqs7XquLDspJENCivqs7XtmY3tnJgNCivqs7XshJ3ssqANCivqs7XsnbjtmLgNCivqs7XstpjsmIENCivqs7XshJ3rjZUNCivqs7XsiJjrgqgNCivqs7XsjI3siJwNCivqs7Xsnqzrj4QNCivqs7XsnqzshJ0NCivqs7XsiJzrtoQNCivqs7Xsi6DtmIQNCivqs7XsoJXshLENCivqs7XsnKTrp4wNCivqs7Xsi5zrj5kNCivqs7Xsp4TsmqkNCivqs7Xsg4HtmIQNCivqs7XtjJDsmKUNCivqs7XslrXsiJgNCivqs7XsnqzsmrQNCivqs7XsiJjsiJgNCivqs7XtmITtnawNCivqs7XsmIHrjIANCivqs7XsooXsmrANCivqs7XsooXsiJkNCivqs7XsmIHshJ0NCivqs7XsmIHshKANCivqs7XshLHqt7wNCivqs7XsnbXsiKANCivqs7Xsspzrj4QNCivqs7XsmIHsnpANCivqs7Xqsr3shLENCivqs7XspIDsiJgNCivqs7XshLHtmLgNCivqs7XsnoTshJ0NCivqs7Xsg4Hsl7ANCivqs7Xri6zsp4QNCivqs7Xrs5Hsi50NCivqs7XsnqzqsJENCivqs7XsnqzsiJwNCivqs7XsnbztmIQNCivqs7XsiJztnawNCivqs7XsnqzsiJkNCivqs7XspIDsmqkNCivqs7XtnazrnoANCivqs7Xslrjsi50NCivqs7XsnqzsnbUNCivqs7XssqDtg50NCivqs7XsiJjtmLgNCivqs7Xtg5zsl7QNCivqs7XsnqzsnbUNCivqs7XqtJHsiKANCivqs7Xtg5ztmZgNCivqs7Xrs5HtmIQNCivqs7XsooXsl7QNCivqs7Xrs7XtmIQNCivqs7XtjJDrjZUNCivqs7XrkZDquIgNCivqs7XsooXstpgNCivqs7Xtko3tmZQNCivqs7Xqs4TsmIENCivqs7XstpjsiJgNCivqs7XsooXstpgNCivqs7XrjZXsl7QNCivqs7XsooXquLANCivqs7XsuaDtlZkNCivqs70g7Y+sDQor6rO967OR7JqwDQor6rO96riw7IudDQor6rO97YOc7IiYDQor6rO96rCR7JiBDQor6rO966eM7ZiEDQor6rO967OR7ISxDQor6rO97KCV64+ZDQor6rO96rK96re8DQor6rO96rSR7ZmUDQor6rO97LC96riwDQor6rO966+47KCVDQor6rO96rK966OhDQor6rO97JiB7JewDQor6rO97IOB7IiYDQor6rO97LKt7JilDQor6rO96rK97IicDQor6rO964+Z7ISdDQor6rO97ZW066y4DQor6rO96rSR6recDQor6rO96rK97JqpDQor6rO97YOc7JewDQor6rO97YyU7ISgDQor6rO97KeE7JilDQor6rO96rK97Zi4DQor6rO97ZWc7IiYDQor6rO97KKF7IStDQor6rO97Lmg7J6QDQor6rO96rSR7IStDQor6rO9642V7Z2sDQor6rO97Zqo7KGwDQor6rO97J2E7IigDQor6rO96rSR7IStDQor6rO97YOc7IicDQor6rO97J2A7Je0DQor6rO965GQ7KSADQor6rO96rSR7IiYDQor6rO966eM7ISdDQor6rO97KKF7KCVDQor6rO97Jyk7J28DQor6rO96rWQ7IicDQor6rO964Ko7Zi4DQor6rO97KeE7YOcDQor6rO96re87IiYDQor6rO96raM7IStDQor6rO97LCo7IudDQor6rO97KKF7LCsDQor6rO964+Z67aEDQor6rO96riw7ISkDQor6rO9IOqyvQ0KK+qzveq4sOyImA0KK+qzveunkO2YuA0KK+qzveq4sOyInA0KK+qzveyiheuNlQ0KK+qzveyKue2MkA0KK+qzveyWkeyImA0KK+qzveq4sOynhA0KK+qzveyCvOyYgQ0KK+qzveq3nO2ZmA0KK+qzveydvOyjvA0KK+qzveq4uO2VnA0KK+qzveywveq4sA0KK+qzveqyveyerA0KK+qzve2YhOyXtA0KK+qzveq4uO2ZmA0KK+qzveyImO2MkA0KK+qzveyatOuwsA0KK+qzveyaqe2YhA0KK+qzveuCqOyYpQ0KK+qzveyiheyasA0KK+qzveq1kOq4sA0KK+qzve2DnOq1rQ0KK+qzveuFuOywvQ0KK+qzveyEse2YuA0KK+qzveykgOq1rA0KK+qzvSDsiJgNCivqs73rj4TsmIENCivqs73tnazspIANCivqs73smqnsi5wNCivqs73qsr3shLENCivqs73rj4TsmIENCivqs73shozshJ0NCivqs73snKTsiJwNCivqs73smIHsmKUNCivqs73rj4jsmIENCivqs73qs4TsiJkNCivqs73siJjrp4wNCivqs73rtInqt5wNCivqs73rj5nrk50NCivqs73snqzrp4wNCivqs73shLHtmLgNCivqs73soJXrk50NCivqs73rj5nrp4wNCivqs73rtoTqt5wNCivqs73smqnsl7QNCivqs73qtZDtmZgNCivqs73rj5nrr7wNCivqs73qt5zsiJkNCivqs73rqoXqs6QNCivqs73ri6zrtoANCivqs73rj5nsi6ANCivqs73rs7XsiJwNCivqs73quIjsi50NCivqs73rqoXsiJgNCivqs73rj5nsmqkNCivqs73rrLjtmLgNCivqs73qt4DtmZQNCivqs73tmITqsbgNCivqs73rj5nsmqkNCivqs73qtJHshKANCivqs73snbzquLgNCivqs73qtJHspIANCivqs73rj5ntl4wNCivqs73tg5zspIANCivqs73tg5ztnJgNCivqs73sooXshJ0NCivqs73rkZDsi50NCivqs73smqnstpgNCivqs73smqnrsLANCivqs73rj5nqs6QNCivqs73rp4zsiJgNCivqs73qsr3tmLgNCivqs73tmqjsiJgNCivqs73smIHsiJkNCivqs73rp4zsiJgNCivqs73qt5zshJ0NCivqs73tmZTrj4wNCivqs73smIHrgqgNCivqs73rp4zsobANCivqs73sl7DtmIQNCivqs73qtIDsnbwNCivqs73smIHtg50NCivqs73rp4ztmLgNCivqs73smIHspIANCivqs73snqztg5wNCivqs73siJzsm4UNCivqs73rp5DsmqkNCivqs73sirnsnbQNCivqs73rtInqt7wNCivqs73soJXtmJUNCivqs73rqoXshK0NCivqs73snqXsmIENCivqs70g7ISdDQor6rO97KSA7IicDQor6rO966qF7IudDQor6rO966eM7JqwDQor6rO97LC97Je0DQor6rO97ISx7JilDQor6rO966qF7JqxDQor6rO97Jqw7IudDQor6rO97KKF6rCRDQor6rO97KKF7JuQDQor6rO966qF7Zi4DQor6rO97J6s7J6EDQor6rO967OR7IudDQor6rO97ZW066qFDQor6rO966y07ISgDQor6rO97J287IicDQor6rO97J6s7KeEDQor6rO966qF7ZaJDQor6rO966y07J21DQor6rO964Kc7ZiEDQor6rO97Jil7JikDQor6rO97KCV7JiBDQor6rO966y07ZiEDQor6rO97JeF7LacDQor6rO97ZeM6riwDQor6rO97JiB7KeEDQor6rO966y47IicDQor6rO96rG07ISxDQor6rO97YOc7JqwDQor6rO964us7ZWZDQor6rO966+47ISdDQor6rO97ZmU7JiBDQor6rO966as7Je0DQor6rO96rK97JuQDQor6rO966+87LC9DQor6rO96riw7JqwDQor6rO97Lmg7J28DQor6rO97KCV6riwDQor6rO967KU6raMDQor6rO97IiY7ZuIDQor6rO97IiY7JiBDQor6rO97ISx7JuQDQor6rO967OR64+EDQor6rO97J6s7JqpDQor6rO97KKF7KeEDQor6rO97KCV6riwDQor6rO967OR66y1DQor6rO97LCo7JilDQor6rO97JWg7IiYDQor6rO96riw7ISdDQor6rO967OR7IiYDQor6rO96raM7ZmUDQor6rO97Kad66GdDQor6rO97YOc7ZiEDQor6rO967OR7IiZDQor6rO9IOygnA0KK+qzve2VtOqyvQ0KK+qzveuNleusuA0KK+qzveuzkeyXtA0KK+qzveywqOuCqA0KK+qzve2biOyerA0KK+qzveqyve2DnA0KK+qzveuzkeyYpA0KK+qzveyEoOyYpA0KK+qzveqzhOuwsA0KK+qzveywqOyXsA0KK+qzveuzkeycqA0KK+qzveyduO2YuA0KK+qzve2ZmOyaqQ0KK+qzve2VtOyEnQ0KK+qzveuzkeyyoA0KK+qzveyEseynhA0KK+qzveuzkeyjvA0KK+qzveybkOynhA0KK+qzveuzke2DnA0KK+qzveyerOuvuA0KK+qzve2drOyLnQ0KK+qzveykgOyXtA0KK+qzveuzke2DnA0KK+qzveycoOyInA0KK+qzve2ZjeyekA0KK+qzveycpOyEoA0KK+qzveuzke2XjA0KK+qzve2YuOyXtA0KK+qzveyehOyasA0KK+qzveycpOuNlQ0KK+qzveuztOyInA0KK+qzveq4sO2YhA0KK+qzveqwleyYgQ0KK+qzve2DnOyekA0KK+qzveu0ieyEoA0KK+qzveuqheq4uA0KK+qzveyiheyekA0KK+qzveyDgeuhnQ0KK+qzveu0ie2VmA0KK+qzveydvOudvQ0KK+qzveyEseqwnA0KK+qzveyerOyhsA0KK+qzveu2gOy5mA0KK+qzveycpOyImA0KK+qzveyYgeyEnQ0KK+qzveygleyasA0KK+qzveu2hOq3nA0KK+qzveyehO2YuA0KK+qzveqwle2YuA0KK+qzveyaqeuNlQ0KK+qzveu2hO2YnA0KK+qzveyEseyImQ0KK+qzveyInO2drA0KK+qzveuPmeyEoA0KK+qzveyCrOyYgQ0KK+qzveuzkeu0iQ0KK+qzvSDrsLANCivqs70g7LacDQor6rO97IOB6rCRDQor6rO97IaM7YOdDQor6rO97LC97IStDQor6rO97LKt67O1DQor6rO97IOB6rG0DQor6rO97Jil7ZmUDQor6rO97Iic7YOcDQor6rO97ISg7IudDQor6rO97IOB6rWtDQor6rO97YyQ6riwDQor6rO97Jqx6ri4DQor6rO97Jew6rK9DQor6rO97IOB6recDQor6rO97ISx6riwDQor6rO964+Z7IicDQor6rO97KKF7J6sDQor6rO97IOB6recDQor6rO97IS47Zi4DQor6rO96riw6re8DQor6rO97KeE6rWtDQor6rO97IOB64+EDQor6rO97JiB7IStDQor6rO97Iq567SJDQor6rO97Jqp7ZiBDQor6rO97IOB65GQDQor6rO97KKF7JiBDQor6rO97JuQ7ISxDQor6rO97JuQ7KCcDQor6rO97IOB7JiBDQor6rO964+E6raMDQor6rO967aA67SJDQor6rO97J247Je0DQor6rO97IOB7JikDQor6rO97IaM7J6sDQor6rO967OR7J6QDQor6rO97YOc7IudDQor6rO97IOB7KGwDQor6rO97IOB6riwDQor6rO965GQ7ZWYDQor6rO97YyQ7Zi4DQor6rO97IOB7LKgDQor6rO97Zi47IudDQor6rO9IOq3vA0KK+qzveyihe2DnA0KK+qzveyDgey2mA0KK+qzveyYgeyduA0KK+qzveyYgeyInA0KK+qzveyiheyCvA0KK+qzveyDge2VmQ0KK+qzveyiheyImA0KK+qzveyDgeyhsA0KK+qzveycpOyEnQ0KK+qzveyDge2YhA0KK+qzveyjvOyyoA0KK+qzveyWkeuemA0KK+qzveyjvOq1rA0KK+qzveyDge2YhA0KK+qzve2YhOuhgA0KK+qzveyjvOyYgQ0KK+qzveyasO2DnA0KK+qzveyEneydtA0KK+qzveyImO2drA0KK+qzveywrOynhA0KK+qzveq4sO2DnA0KK+qzveyEneyhsA0KK+qzveyEseyXtA0KK+qzve2MkO2drA0KK+qzveuNleyImA0KK+qzveyEseq3nA0KK+qzveyEseykgA0KK+qzveyEseq2jA0KK+qzveygkOyduA0KK+qzveyEseq3nA0KK+qzveyduOyEnQ0KK+qzve2Sjeq3vA0KK+qzve2YuOuMgA0KK+qzveyEseyErQ0KK+qzveygleq3vA0KK+qzveyImOyInA0KK+qzve2DnOuTnQ0KK+qzveyEseyYgQ0KK+qzveyiheyyoA0KK+qzveqyve2YhA0KK+qzveuqheyVlA0KK+qzveyEse2YuA0KK+qzveuRkOykgA0KK+qzveycpOyImA0KK+qzveynhO2drA0KK+qzveyEse2ZlA0KK+qzve2YnOyjvA0KK+qzve2DnO2YhA0KK+qzveyImOyLnQ0KK+qzveyGjOyEoA0KK+qzveyGjO2VmQ0KK+qzveyEseyjvA0KK+qzveuCqOyjvA0KK+qzveyGjOyInA0KK+qzveymne2WiQ0KK+qzveq3gOq3nA0KK+qzveyerO2ZlA0KK+qzveyImOq3vA0KK+qzveyiheyjvA0KK+qzvSDsiJgNCivqs73soJDtlbQNCivqs73siJjsl7ANCivqs73shLHtmLgNCivqs73sooXquLANCivqs73shJ3shJ0NCivqs73siJjsmIENCivqs73snqzqsr0NCivqs73si6DsmIENCivqs73snqztnLQNCivqs73siJjtmZgNCivqs73sg4HshJ0NCivqs73siJzsiJgNCivqs73shLHshK0NCivqs73siJzsmIENCivqs73soJXqt7wNCivqs73shLHsoJwNCivqs73qs4TtmIQNCivqs73siJzsnbQNCivqs73tg5zsoJUNCivqs73smIHtmIQNCivqs73qtJHsiJgNCivqs73siJztmLgNCivqs73tmLjshKANCivqs73rs5HsspwNCivqs73siJjruYgNCivqs73siKDsmqkNCivqs73qsr3quIgNCivqs73tmY3rqoUNCivqs73tmoztmZgNCivqs73si6DshK0NCivqs73rqoXsl7QNCivqs73sooXquLANCivqs73tlZntm4gNCivqs73si6DtmqgNCivqs73si6DsmIENCivqs73qsr3snZENCivqs73qsr3tmLgNCivqs73slpHrgqgNCivqs73tg5ztg5wNCivqs73rhbjrj4QNCivqs73rj5nrqqgNCivqs73slpHsm4UNCivqs73sg4HsiJgNCivqs73ri6ztmY0NCivqs73rj5nqs6QNCivqs73sl7Tqt5wNCivqs73smIHtmLgNCivqs73sooXtg5wNCivqs73qtJHspIANCivqs73smIHquLgNCivqs73snqzsnZENCivqs73snKTsiJkNCivqs73tjJTsmrANCivqs73smIHquLgNCivqs73siJjrj5kNCivqs73sobDsmKUNCivqs73tg5zqsJENCivqs73smIHrp4wNCivqs73smIHsspwNCivqs73ssqDtmLgNCivqs73so7zrj5kNCivqs73smIHsg4ENCivqs73ssL3rj5kNCivqs73snbzqtZANCivqs73tnaXtmZgNCivqs73smIHshK0NCivqs73tmLjsiJkNCivqs73tmJXsiJwNCivqs73quLDsl7QNCivqs73smIHsmKUNCivqs73rr7jstpgNCivqs73tg5zshJ0NCivqs73siJjshJ0NCivqs73smIHsnpANCivqs73smqnso7wNCivqs73tlZntg5wNCivqs73shqHrtIkNCivqs73smIHsobANCivqs73tg5zsiJgNCivqs73qsr3rj5kNCivqs73tg5zsmrANCivqs73smIHssqANCivqs73smIHqt7wNCivqs73rrLjsgrwNCivqs73rs5HtmIQNCivqs73smIHtg5wNCivqs73sm5DsmqkNCivqs73tg5ztjrgNCivqs73sp4TsmrANCivqs73smIHtmLgNCivqs73snqzsiJgNCivqs73rtInsi50NCivqs73qsr3smKQNCivqs73smIHtmZQNCivqs70g7IOBDQor6rO97ZWE7ISxDQor6rO964yA7J21DQor6rO97JiB7Z2sDQor6rO97ISx7Zi4DQor6rO96rK97JmEDQor6rO97Jik7LKgDQor6rO97Jil7ISgDQor6rO97KKF6rWtDQor6rO97KKF7ZiEDQor6rO97YOc7ZiEDQor6rO97Jil7JewDQor6rO967OR7ZGcDQor6rO97ZmN7LKcDQor6rO966qF6rCRDQor6rO97JmV6recDQor6rO97ZWE6riwDQor6rO97JuQ7KGwDQor6rO97IOB7ZmYDQor6rO97Jm47IStDQor6rO97ISx7IudDQor6rO97JiB7IStDQor6rO97ISx7IudDQor6rO97Jqp7IiYDQor6rO97YOc65OdDQor6rO97KO864+ZDQor6rO97YyU7KCVDQor6rO97Jqp7IiZDQor6rO97J6s7KGwDQor6rO97J247J20DQor6rO96rec6rCVDQor6rO97Jqp7IicDQor6rO97KeA67SJDQor6rO97Iug67KUDQor6rO97ZmN7Zi4DQor6rO97Jqw7IudDQor6rO97ZmN7JewDQor6rO97YOc7J20DQor6rO97KCQ66e5DQor6rO97Jqw7Je0DQor6rO97ZmY7LKgDQor6rO97YOc7Zi4DQor6rO97KGw7IiYDQor6rO97Jqw7JiBDQor6rO97Jqp64+EDQor6rO966qo6recDQor6rO97KCQ7IicDQor6rO97JuQ6recDQor6rO96rSA7JikDQor6rO97KKF7ZW0DQor6rO97J2866GcDQor6rO97JuQ6recDQor6rO97IyN6rWtDQor6rO97JuU6rOkDQor6rO97KO87IudDQor6rO97JuQ7JiBDQor6rO97J287J28DQor6rO96rO17J28DQor6rO964+E642VDQor6rO97JuQ7JiBDQor6rO97ZiE7J6QDQor6rO97YyU7IOdDQor6rO97Jyg6recDQor6rO97Jyg7ISxDQor6rO97J6s7IudDQor6rO97ISd7IiZDQor6rO964Ko7LacDQor6rO97Jyg7YOcDQor6rO96riw7IicDQor6rO96re86raMDQor6rO97Z2s6raMDQor6rO97Jyk6rSRDQor6rO97Jqp7JuQDQor6rO96rCV7KCVDQor6rO96riw7JiBDQor6rO97Jyk6rWsDQor6rO967OR7ISxDQor6rO97Jqp7IudDQor6rO97Iic7ISgDQor6rO97Jyk6recDQor6rO967OR67O1DQor6rO97IK87JmEDQor6rO97Jil7JewDQor6rO97J2A7Je0DQor6rO96rWQ6regDQor6rO97KKF7IOBDQor6rO967aA7JikDQor6rO97J2E7IicDQor6rO97J6s7IiYDQor6rO964+E7ISgDQor6rO96riw7ISgDQor6rO97J2Y7Zi4DQor6rO967aE6rCADQor6rO97JiB7ZmYDQor6rO96rSR6re8DQor6rO97J2866OhDQor6rO97J246rCRDQor6rO96rCR7IStDQor6rO97ISx7LKgDQor6rO97J6E7IiYDQor6rO96riw7KO8DQor6rO97LC97ZmUDQor6rO97KeE7JikDQor6rO97J6Q7JqpDQor6rO97KKF7Z2sDQor6rO97Jew64KoDQor6rO97J2A7JuQDQor6rO97J6s6rK9DQor6rO97Jik6re8DQor6rO966eM7KGwDQor6rO967OR64+EDQor6rO97J6s6re8DQor6rO97KSA66GdDQor6rO97ZiV7J6QDQor6rO97Jyk7IiYDQor6rO97J6s7ISdDQor6rO97Zi47LGEDQor6rO97ISx6ri4DQor6rO97Z2s6rSADQor6rO97J6s7IudDQor6rO97ZqM7ZiEDQor6rO96rOE7ZiRDQor6rO97LaY642VDQor6rO97J6s7Je0DQor6rO97ISx6riwDQor6rO97ZiE7IiYDQor6rO97IK87LKcDQor6rO97J6s7JiBDQor6rO97IKw7IiZDQor6rO97KCV7Jq0DQor6rO97Jqx7J6QDQor6rO97J6s7JiBDQor6rO97ISx7YOcDQor6rO97IOB7IudDQor6rO97Jqp7ZWYDQor6rO97J6s7JiBDQor6rO97JiB7IiYDQor6rO97JuQ7IicDQor6rO97Jqp7IudDQor6rO97J6s7JqxDQor6rO966qF7IiZDQor6rO97JiB6riIDQor6rO97Jew7LKgDQor6rO97J6s7JuQDQor6rO97ISd6rWsDQor6rO97ZiE7J6sDQor6rO97Zi47Zi4DQor6rO97J6s7LKcDQor6rO97IK87IiYDQor6rO9642V7JqpDQor6rO97LC96riwDQor6rO97J6s7LKgDQor6rO96rSR7ZW0DQor6rO97IK87Zi4DQor6rO97YOc7LKgDQor6rO97J6s7LKgDQor6rO97KKF64+MDQor6rO97KKF7KeEDQor6rO966y07LacDQor6rO97J6s7Zi4DQor6rO964yA7JewDQor6rO96rK97JaRDQor6rO97JiB7IiYDQor6rO97J6s7ZmYDQor6rO97KCV7JuQDQor6rO97IiY7KKFDQor6rO97JiB64+EDQor6rO97J6s7ZuIDQor6rO97LCo7Zi4DQor6rO97J6R7KGwDQor6rO97Jqp7J28DQor6rO97KCQ7JqpDQor6rO97J6s7LacDQor6rO97Jm46recDQor6rO97KCV7KGwDQor6rO97KCV66eMDQor6rO96riw7Z2gDQor6rO97YOc7Z2sDQor6rO97J6s7J6QDQor6rO97KCV7JewDQor6rO97KCc7KKFDQor6rO97KCV7JyoDQor6rO97Iic7IiYDQor6rO97KKF6rSADQor6rO96rK97J6sDQor6rO97JWI7IiYDQor6rO96rSR7ZmYDQor6rO97KKF6rWtDQor6rO97JiB7Je0DQor6rO97KKF7IiYDQor6rO97JuQ7J6QDQor6rO97KKF6raMDQor6rO97ISd7Ja4DQor6rO97IOB7LKgDQor6rO96rCR7JilDQor6rO97KKF64yADQor6rO97J2867SJDQor6rO97Jm47IiYDQor6rO97Z2s7JiBDQor6rO97KKF64yADQor6rO97ZWc7ISgDQor6rO97KO866y4DQor6rO96riw7J6QDQor6rO97KKF642VDQor6rO96rG07JiBDQor6rO97IOB6riwDQor6rO97KCV7ISdDQor6rO97KKF66eMDQor6rO97Jyk6rWsDQor6rO96re87IudDQor6rO97KO87IiZDQor6rO97KKF7JWUDQor6rO97KCV66eMDQor6rO97KKF7LKgDQor6rO97JiB7JqpDQor6rO97KKF7Je0DQor6rO97KCV6riwDQor6rO97J6s7JWUDQor6rO97Iic7Zi4DQor6rO97KKF7KO8DQor6rO96ri47IucDQor6rO97ZeM64yADQor6rO967OR7KKFDQor6rO97KKF7ZWZDQor6rO966GA7Zi4DQor6rO964Ko7ZWZDQor6rO97JiB7KeEDQor6rO97KKF7ZiVDQor6rO97KCV7Z2sDQor6rO966y07KO8DQor6rO97IOB7J28DQor6rO97KKF7ZuIDQor6rO97KeE7YOcDQor6rO97KCV7Zi4DQor6rO97KSA7LKgDQor6rO97KO87ISdDQor6rO96rSR7IudDQor6rO97KKF7KGwDQor6rO97YOc7ISdDQor6rO97KO87IStDQor6rO97Jqw656YDQor6rO96reA642VDQor6rO96rK97IiYDQor6rO97KeA7JiBDQor6rO97KKF7KSADQor6rO97YOc64yADQor6rO97J6l7ZyYDQor6rO97KeE6rOkDQor6rO967SJ6rCRDQor6rO966qF64+ZDQor6rO97KKF7Zi4DQor6rO97KeE7IiYDQor6rO97Iq57Je0DQor6rO97IK87IicDQor6rO97Jik7IicDQor6rO97LCo7IOBDQor6rO97KKF65OdDQor6rO97J6s7KeEDQor6rO96rOE7ZmYDQor6rO97LCo7JqpDQor6rO97Zqo7IiYDQor6rO966eM7J6QDQor6rO97IK87JuQDQor6rO97LC97IStDQor6rO964+Z7JqwDQor6rO97J286rSADQor6rO97KCV7IK8DQor6rO97LC97IiYDQor6rO97Jq07JyoDQor6rO97JiB7JqpDQor6rO96riw7Ja4DQor6rO97LC97IudDQor6rO97JuQ7ISdDQor6rO97ZiE7IukDQor6rO96riw7IiYDQor6rO97LC97JmVDQor6rO97JiB64+ZDQor6rO97LC97JykDQor6rO97JuQ7JmEDQor6rO97LKc7ISdDQor6rO97JyE7YOdDQor6rO964Ko7ZmYDQor6rO97IK87J20DQor6rO97LKg7IiYDQor6rO967O17IStDQor6rO97Iq567aEDQor6rO97YOc7JilDQor6rO97LKg7ZmYDQor6rO97KCV7KO8DQor6rO96rK97ZalDQor6rO97LC97Z2sDQor6rO97Lmg7JqpDQor6rO97KeE7KGwDQor6rO97JWg7ISgDQor6rO97KKF7JilDQor6rO97YOc6rK9DQor6rO97YOc7KCVDQor6rO97JuQ7IiYDQor6rO97Jyk6riwDQor6rO97YOc7ISdDQor6rO964+Z7IudDQor6rO966y07J28DQor6rO964yA7KGwDQor6rO97YOc7ISdDQor6rO97IOB7JewDQor6rO97IS47IudDQor6rO97JiB7Z2sDQor6rO97YOc7IStDQor6rO97J6s66eMDQor6rO97ISg6rK9DQor6rO96rG07LacDQor6rO97YOc7IudDQor6rO97IOB7IudDQor6rO97J6s7IudDQor6rO97ZW06raMDQor6rO97YOc7IudDQor6rO96riw7IiYDQor6rO97ISd7YOdDQor6rO964+Z7ZuIDQor6rO97YOc7Je0DQor6rO97JiB6rG0DQor6rO97YyQ7IiYDQor6rO97LaY7JqwDQor6rO97YOc7JiBDQor6rO97KSA7Zi4DQor6rO97Jqp7ISdDQor6rO96riw7ZmYDQor6rO97YOc7JqpDQor6rO966y47KGwDQor6rO97YOc7ZmYDQor6rO97J6s7IigDQor6rO97YOc7KSRDQor6rO964Ko64WEDQor6rO97Jqx7Zi4DQor6rO97LC97Je0DQor6rO97YOc7ZmYDQor6rO9642V6re8DQor6rO97LKt7JqpDQor6rO966qF7IudDQor6rO97YOc7Z2sDQor6rO966+47KGwDQor6rO96rCR64+ZDQor6rO96re57J21DQor6rO97YOd7Je0DQor6rO97Iq566eMDQor6rO96riw66y4DQor6rO97ZmY64yADQor6rO97YyQ6rCcDQor6rO97IOB7Zi4DQor6rO97KKF7J6QDQor6rO966qF7ZmNDQor6rO97YyQ7IiYDQor6rO97YOc6rSRDQor6rO97KO87JqpDQor6rO96rSR7ZeMDQor6rO97Y+J7IStDQor6rO966eM7JewDQor6rO97ISx66OhDQor6rO97LKc67CwDQor6rO97ZGc6rK9DQor6rO97IOB66qoDQor6rO97Jm47ISxDQor6rO967OR64+ZDQor6rO97ZWZ7LacDQor6rO97KCV7LacDQor6rO97KO87YOcDQor6rO97KeE7JqwDQor6rO97ZWc6rOkDQor6rO97JiB7JqpDQor6rO967KU7ZeMDQor6rO97LCo7KGwDQor6rO97ZWc7IiYDQor6rO967OR7YOdDQor6rO97ISx7Zi4DQor6rO97YOc7IStDQor6rO97ZWc7JiBDQor6rO97Jqp7IiZDQor6rO97KSA7ISdDQor6rO97ZiE7YOdDQor6rO97ZW06recDQor6rO97ZiE7Zi4DQor6rO967OR67aEDQor6rO97ISx6riwDQor6rO97ZW066eMDQor6rO96riw7KSADQor6rO97Iq57JqwDQor6rO97ZWc7KSRDQor6rO97ZW07ISdDQor6rO964+Z7ZeMDQor6rO97YOc7YOcDQor6rO966y47IudDQor6rO97ZW07ISdDQor6rO97J6s7IiYDQor6rO97YOc7ZmNDQor6rO96rSR64usDQor6rO97Zi47IicDQor6rO96rK97Z2sDQor6rO97KCQ7IicDQor6rO97JiB66GdDQor6rO97ZmN6recDQor6rO97KKF7Zi4DQor6rO964+Z7ZiEDQor6rO97Iic7Je0DQor6rO97ZmU7Je0DQor6rO97YOc67KUDQor6rO97Ja16recDQor6rO97Jqw7IiYDQor6rO97ZuE7Je0DQor6rO97YyQ7ZiEDQor6rO97KSA6raMDQor6rO97Ja17JikDQor6rO97ZyY7IaMDQor6rO97Jqp7IiYDQor6rO97ISx7LaYDQor6rO97IK87IudDQor6rO97Z2l7IStDQor6rO97YOc7KSADQor6rO97YOc7IK8DQor6rO96rK96ri4DQor6rO97Z2s7IicDQor6rO96rK97IStDQor6rO9642V7JqwDQor6rO97KeE7KeRDQor6rO97Z2s7JuFDQor6rO966y47Je0DQor6rO967OR7KSADQor6rO97Zic7ZiEDQor6rWs6rK97IScDQor6rWs7KKF7KGwDQor6rWs7IyN7ISdDQor6rWs7LCo67aADQor6rWs6rK97IiZDQor6rWs7JuQ7JilDQor6rWs7ZWc6rWtDQor6rWs7ISk7JqwDQor6rWs6rK97IiZDQor6rWs65Od7IiZDQor6rWs7IiY7Z2sDQor6rWs7Jyk64yADQor6rWs6reA7ZmUDQor6rWs7IOB7ZmUDQor6rWs66eQ66GdDQor6rWs66qF7YOcDQor6rWs6ri47ZqMDQor6rWs7ISx7KeEDQor6rWs7J287IOBDQor6rWs642V7JqwDQor6rWs64+Z66eMDQor6rWs6rK97ZiEDQor6rWs7J247J20DQor6rWs7ISx7IiYDQor6rWs64+Z7ISdDQor6rWs6re867SJDQor6rWs7IK87IudDQor6rWs7KKF7ZeMDQor6rWs64+Z7IiYDQor6rWs7J6s7JuQDQor6rWs67OR7ZiEDQor6rWs7IyN7JqwDQor6rWs64+Z7JuQDQor6rWs7Lap7IicDQor6rWs6riw64KoDQor6rWs7ISd67ORDQor6rWs64+Z7LKgDQor6rWs7Iq57Z2sDQor6rWs7J287IudDQor6rWs6riw7IudDQor6rWs65GQ7ISgDQor6rWs66qF7Jq0DQor6rWs7KO87Zi4DQor6rWs7JiB7IicDQor6rWs66qF7IiZDQor6rWs67O17Z2sDQor6rWs7Iic7JilDQor6rWs7YOc656YDQor6rWs66+87ZqMDQor6rWs6rec7ISgDQor6rWs6riI7JqxDQor6rWs6rK97ZWZDQor6rWs67OR7IiYDQor6rWs64us7IStDQor6rWs7JiB7ISdDQor6rWs7Z2s7IudDQor6rWs67OR7LCsDQor6rWs7Iic66CoDQor6rWs65GQ6re8DQor6rWs7J207IiYDQor6rWs67O47ISgDQor6rWs7Iic7Z2sDQor6rWs7IiY67ORDQor6rWs7IiY7LaYDQor6rWs67O47Iq5DQor6rWs7Jyk7JuFDQor6rWs7JiB7IiYDQor6rWs7KO87KO8DQor6rWs67O47ZiEDQor6rWs7J6s7J6QDQor6rWs6rSR7ZiEDQor6rWs7ZWc7IigDQor6rWs67aA7J6EDQor6rWs7J6s7ZeMDQor6rWs7KCV7ZGcDQor6rWs7YOc7ISkDQor6rWs7ISd67SJDQor6rWs7YOc7YOcDQor6rWs7J6s7IudDQor6rWs7YOc7J21DQor6rWs7ISg7J20DQor6rWs7ZmN66qoDQor6rWs7ZiE7LKgDQor6rWs66y07JykDQor6rWs7Jqp6ri4DQor6rWs7IiY7JuFDQor6rWs6riw7IudDQor6rWs7LKg7IiYDQor6rWs7Jqp7YOcDQor6rWs7JiB7YOdDQor6rWs7Jm47ZmUDQor6rWs7KSR7Zi4DQor6rWs7J207JqpDQor6rWs7YOc7ZWYDQor6rWs64+I7J6sDQor6rWs7KKF7IiYDQor6rWs7J6Q6rSADQor6rWs7LC97ZiEDQor6rWs7JuQ7ISgDQor6rWs6rWs6riwDQor6rWs7J6Q642VDQor6rWs7KCV67aADQor6rWs7YOc7Zi4DQor6rWs6riw7Zi4DQor6rWs7J6Q7JqwDQor6rWs7Jyk7JikDQor6rWs7KKF66qpDQor6rWs7ISd7ISxDQor6rWs7J6Q7J21DQor6rWs64+Z64+ZDQor6rWs7J6s7ZmUDQor6rWs67SJ6riwDQor6rWs7KCQ7IudDQor6rWs7ISx7J6QDQor6rWs66eM7JewDQor6rWs7IOB7KSRDQor6rWs7KCc64KoDQor6rWs6riI7J20DQor6rWs7Jew7ZmYDQor6rWs7Jqp7LmYDQor6rWs7KSR7IScDQor6rWs7ZWZ7J6QDQor6rWs7KCV64usDQor6rWs7LCo7JewDQor6rWs7LaY7IudDQor6rWs7KeE7YOcDQor6rWs7J6l7IicDQor6rWs7JuQ7JewDQor6rWs7LaY7IudDQor6rWs6riw6ri4DQor6rWs7JiB6regDQor6rWs64+Z7YOBDQor6rWs7Lap66qoDQor6rWs67O17J6QDQor6rWs67OR7ZWcDQor6rWs7ZuI7Z2sDQor6rWs7YOc7Z2sDQor6rWs66y07JqpDQor6rWs67OR6rOgDQor6rWs64+Z7ISdDQor6rWs7Y+J6ri4DQor6rWs7ISx7IudDQor6rWs7IK865GQDQor6rWs7JiB7Z2sDQor6rWs7ZiE7JilDQor6rWs7Zqo7Z2sDQor6rWs7Iic7JqpDQor6rWs7JaR7JqpDQor6rWs7ZmU7J20DQor6rWs7IOB6recDQor6rWs7ISx7JuQDQor6rWs7JiB7IiYDQor6rWs7Z2s6rK9DQor6rWs67OR7LKgDQor6rWs7J6s7KSADQor6rWs7JiB66GdDQor6rWs7Z2s7IiZDQor6rWs7JiB67KUDQor6rWs67SJ7ZeMDQor6rWs67aA7IiYDQor6rWt7Jyk7ZmYDQor6rWt7IOB7ISdDQor6rWt7ZmY64KoDQor6rWt66+87YOcDQor6raMIOyImA0KK+q2jOyYgeq1rQ0KK+q2jOuMgO2YhA0KK+q2jOygleyjvA0KK+q2jOqwkeyhsA0KK+q2jOyDgeuegA0KK+q2jOyEse2YhA0KK+q2jO2DnOq3nA0KK+q2jOqyveq0gA0KK+q2jOyerOybkA0KK+q2jOq4sOyInA0KK+q2jOyDgeyImA0KK+q2jOqyveuNlQ0KK+q2jOywveyXsA0KK+q2jOygkOy2mA0KK+q2jOu0ieybhQ0KK+q2jOqyveuegA0KK+q2jOyEneyEsQ0KK+q2jOyerOu5iA0KK+q2jOyImOyEnQ0KK+q2jOqyveyDnQ0KK+q2jOq3nOq4uA0KK+q2jO2ZjeyjvA0KK+q2jOq4sOycpA0KK+q2jOqyveyImQ0KK+q2jOq4sOybkA0KK+q2jOy2qeyYpA0KK+q2jO2dpeyDgQ0KK+q2jOqyveyIoA0KK+q2jOyaqe2drA0KK+q2jOq3nOyLrQ0KK+q2jOyiheyYpQ0KK+q2jOqyveyekA0KK+q2jOyihe2ZmA0KK+q2jOywveuPmQ0KK+q2jOyEseqwkQ0KK+q2jOqyveyhsA0KK+q2jOyYgeyEnQ0KK+q2jOyYge2YhA0KK+q2jOyWteyErQ0KK+q2jOqyve2ZmA0KK+q2jOu0ieq4sA0KK+q2jOyEseyInA0KK+q2jOynhOuPjA0KK+q2jOq0keyLnQ0KK+q2jO2drOywvQ0KK+q2jOyEseyDgQ0KK+q2jOyEseyngA0KK+q2jOq0keybhQ0KK+q2jOuylOuwsA0KK+q2jOuqheuPmQ0KK+q2jOyerOyErQ0KK+q2jOq0ke2YuA0KK+q2jOyKueyYgQ0KK+q2jOyyoOqzpA0KK+q2jOyCvOq1rQ0KK+q2jOq3gOuCqA0KK+q2jOyKueyYpA0KK+q2jOyduOyEnQ0KK+q2jOyEoOuTnQ0KK+q2jOq3gOyehA0KK+q2jOuFuO2ZmA0KK+q2jOq2jO2YhA0KK+q2jOyEneq3vA0KK+q2jOq4iOyVhQ0KK+q2jOygleyImA0KK+q2jCDtmLgNCivqtoztl4zrqqgNCivqtozquIjsl7ANCivqtozqsr3sl7QNCivqtozsiJjsm5ANCivqtozrp4ztmqgNCivqtozquLDrj5kNCivqtozsnKTsiJwNCivqtozquIjspIANCivqtozsi5zquLANCivqtozquLDshK0NCivqtozsnqXsmYQNCivqtozrp4zqtZANCivqtozsoJDtmLgNCivqtozquLDshLENCivqtozsmIHstpwNCivqtoztl4zsiJgNCivqtozqs4Trj4QNCivqtozquLDsiJgNCivqtozrqoXsiJgNCivqtozrs7XtnLQNCivqtozsl7Drr7wNCivqtozquLDsmIENCivqtozssqDquLANCivqtozsooXstpgNCivqtoztnaztmLgNCivqtozquLDsmqkNCivqtozrjZXsiJkNCivqtozsnbzshJ0NCivqtozquLDtg5wNCivqtozquLDsooUNCivqtozsoJXtjJQNCivqtozquIjtmZgNCivqtozqsJHtmY0NCivqtozquLDssqANCivqtozsmIHsl7QNCivqtozshJ3slaANCivqtozsnqztnawNCivqtozquLDtl4wNCivqtoztlbTsi6ANCivqtozrjZXqt7wNCivqtozqs4TruYgNCivqtozrgqjsiJgNCivqtozsmbjsiJwNCivqtozspp3shK0NCivqtozsg4Hrj4QNCivqtozriqDsnbQNCivqtozsmqnsi50NCivqtozssL3shK0NCivqtozshLjsmqkNCivqtozri6zstpwNCivqtozshLHsiJgNCivqtozsiJzsmrENCivqtozsnKTsnbUNCivqtozrjIDsmIENCivqtozssKzssqANCivqtozshLHtmZQNCivqtozsnbzsoJUNCivqtozrjIDsnKQNCivqtozrj5nsiJgNCivqtozsp4Trr7wNCivqtozquLDtnawNCivqtozrjZXsmqkNCivqtozshLHsnpANCivqtozsnqztm4gNCivqtozstpjstpwNCivqtozrj4TsnbgNCivqtozsirntl4wNCivqtozstpjquLANCivqtozrj5nrspQNCivqtozrj4zsnbQNCivqtozsiJjquLgNCivqtoztjJDshJ0NCivqtozsspzshK0NCivqtozrj5nqtowNCivqtozsooXsmIENCivqtozsooXroZ0NCivqtoztmITsm4UNCivqtozrkZDrpqwNCivqtozsooXslZQNCivqtozrs5HsmIENCivqtozquLDqsr0NCivqtozrkZDtmIQNCivqtoztl4zsobANCivqtozsg4Hsl7ANCivqtozsmqnquLANCivqtozrk53siJgNCivqtozqsr3sm4UNCivqtozrj4TsiJgNCivqtoztlYTsmIENCivqtozroLntmIQNCivqtozsiJztm4gNCivqtozssL3quLANCivqtoztmY3tmZQNCivqtozrp5DsiJgNCivqtozsnbzqtZANCivqtozqtJHspIANCivqtozsp4Tsg50NCivqtozrp5DsmqkNCivqtozrjIDsm5ANCivqtozsooXtmLgNCivqtozrrLjsooUNCivqtozrp5DsnoQNCivqtozrs7Xqs6QNCivqtozqsr3qt5wNCivqtozsnbzqt7wNCivqtozrqoXrs7UNCivqtozsnbjsiJgNCivqtozsp4Ttm4QNCivqtoztmLjshJ0NCivqtozrqoXsgrwNCivqtoztg5zssqANCivqtozsnZHsp4QNCivqtozsiJztmLgNCivqtozrqoXsmqkNCivqtoztm4TsgrwNCivqtozsoJXsl7ANCivqtozsmIHtmY0NCivqtozrrLTsm4UNCivqtozsnoTqtowNCivqtoztg5zsmKUNCivqtozsmqnsp4QNCivqtozrrLTtmY0NCivqtozrrLjrjZUNCivqtozsooXqs4QNCivqtoztg5ztmZQNCivqtozrr7jrnoANCivqtozso7zsl7ANCivqtozsoJXrjIANCivqtozsnqzsiJgNCivqtozrr7jrnoANCivqtozshJ3snpANCivqtozsiJjqtawNCivqtozsl4XsnpANCivqtozrr7jsmIENCivqtozquLDsmIENCivqtozsmqnsm4UNCivqtozsmZXsmIENCivqtozrr7jsnpANCivqtozsooXsgrwNCivqtozri6zrjIANCivqtoztj4nsiJwNCivqtozrr7jsnpANCivqtoztg5zsnpANCivqtozsmrDshKANCivqtozsmIHsmrANCivqtozrs5HrrLgNCivqtozso7zqtZANCivqtozsnqXsoJUNCivqtoztg5zsg4ENCivqtozrs5HssqANCivqtozslrjtmIQNCivqtozrj5ntkZwNCivqtoztg5zqtbANCivqtozrs7XquLgNCivqtozsi6DtmY0NCivqtozrkZDtmY0NCivqtozsi5zquLgNCivqtozrs7XquLgNCivqtozsoJXsoJUNCivqtozrs5HsmKUNCivqtoztg5zsoJUNCivqtozrs7Xrp4wNCivqtozsnqzsm5ANCivqtozsmIHsnpANCivqtoztmqjrgqgNCivqtozrs7Xso7wNCivqtozsooXsl7ANCivqtoztmZTsi50NCivqtozshLHsoJUNCivqtozrtIntlZkNCivqtozshKDrjZUNCivqtozqsr3tnawNCivqtoztmY3tnawNCivqtozrtoTtlqUNCivqtozsoJXroKwNCivqtozsg4Hrr7gNCivqtozshLHtlZkNCivqtozrtoTtlqUNCivqtozsnbjqt5wNCivqtozrtInsi50NCivqtozquLDtlZwNCivqtozsgrzrn4kNCivqtozsnqztmZgNCivqtozsnoTshJ0NCivqtoztlYTrpr0NCivqtozsgrzsiKANCivqtozsnqzrtIkNCivqtozrjZXquLANCivqtozshLHrsLANCivqtozsg4Hqt5wNCivqtozquLDrs7UNCivqtoztg5zsnbQNCivqtozsg4HrsLANCivqtozsg4HsmrANCivqtozsmrDtmZgNCivqtozrkZDsiJkNCivqtozrs5HshJ0NCivqtozshJ3smrANCivqtozsm5DsoJwNCivqtoztg5zsnbQNCivqtozsmIHsl7QNCivqtozshKDrs7UNCivqtozspJHshJ0NCivqtoztmITsiJwNCivqtozsmIHshLENCivqtozshKDtnawNCivqtozsg4HqtawNCivqtozrqoXsm5ANCivqtozso7zsmIENCivqtozshKDtnawNCivqtozrr7jssqANCivqtozsooXsiJgNCivqtozrjIDstpwNCivqtozshLHqt7wNCivqtozrj5nshJ0NCivqtozsooXquLANCivqtozsoJXsmqkNCivqtozshLHquLANCivqtozrs5Hsm4UNCivqtozshLjshJ0NCivqtozsiJjtnawNCivqtozshLHrjIANCivqtozsmqnstpwNCivqtozsoJXssqANCivqtozsmqnspIANCivqtozshLHsm4UNCivqtozso7zsmrANCivqtoztlYTshLENCivqtozsoJXtmLgNCivqtozshLHspIANCivqtozsmqnssqANCivqtozsoJXtmLgNCivqtozsm5DtnawNCivqtozshLjsmqkNCivqtozqt4DtnawNCivqtozsg4HsmIENCivqtozsg4HtmLgNCivqtozshLjsmqkNCivqtozrgpjrrLgNCivqtozsnqzsi50NCivqtozsnqzsiJkNCivqtozshozqtIANCivqtozrs5Hsp4QNCivqtozrqoXqs6QNCivqtozqtJHsmKQNCivqtozshozrj4wNCivqtozrj5nrrLgNCivqtozrrLjsm5ANCivqtozshLjtg50NCivqtozsiJjrp4wNCivqtozsoJDsmKUNCivqtozsm5DtlZkNCivqtozrj5nsl7QNCivqtozsiJjrp4wNCivqtozrtoTsiJgNCivqtozqt5zstpwNCivqtozsoJXtnawNCivqtozsiJjsm5ANCivqtozqsr3stpwNCivqtozquLDtkZwNCivqtozsooXso7wNCivqtozsiJjsnpANCivqtozsooXqtawNCivqtozsnqzrsLANCivqtozsnZjtg4ENCivqtozsiJjsnpANCivqtozsnKTsmqkNCivqtozssKjtmLgNCivqtozqtJHtmIQNCivqtozsiJjsnpANCivqtozrqoXsobANCivqtozsnYDsi50NCivqtozsoJXtmLgNCivqtozsiJjsnpANCivqtozrj5ntmLgNCivqtozsnbjsnbQNCivqtozrs5HrqqgNCivqtozsiJzrjZUNCivqtozsp4DtlZkNCivqtozrr7jquLANCivqtozsi5zqta0NCivqtozsiJzrqqkNCivqtozshLHshJ0NCivqtozrs5HtmLgNCivqtozsmqnqsbQNCivqtozsiJzsmKUNCivqtozsgqztmLgNCivqtozsnqzri6wNCivqtozshLHtmY0NCivqtozsiJztmZgNCivqtozquIjsm5ANCivqtozqt4DsooUNCivqtozspJHqt7wNCivqtozslZTsmrANCivqtozqsJHsiJwNCivqtozrs7TsnpANCivqtozsnKTsiJgNCivqtozslaDsnpANCivqtozqs4Tsg50NCivqtozrjIDstpgNCivqtozsmIHsiJkNCivqtozsl7Dso7wNCivqtoztg5zsiJgNCivqtozrjIDsmqkNCivqtoztlZzsm5ANCivqtozsmIHqs4QNCivqtozsoJXsiJgNCivqtozsmrHsobANCivqtozsg4Hsl7QNCivqtozsmIHqtIANCivqtoztlZzso7wNCivqtozspJHqta0NCivqtoztg5zqsr0NCivqtozsmIHqtZANCivqtozsmqnquLgNCivqtozstqntmJUNCivqtoztlZnspIANCivqtozsmIHqtawNCivqtozshLHtlZkNCivqtozsooXtlqUNCivqtozsnbjrs7UNCivqtozsmIHqtawNCivqtozshLHsmqkNCivqtozso7zsiJgNCivqtozsirntmLgNCivqtozsmIHqtawNCivqtozrs5Hrj4wNCivqtozrs5HqtZANCivqtozquLDshKANCivqtozsmIHqta0NCivqtozroKTrrLgNCivqtozsg4Htg5wNCivqtozquLDrj5kNCivqtozsmIHqt7wNCivqtozsg4Hrs7UNCivqtoztmLjshJ0NCivqtozsg4HtmZgNCivqtozsmIHrjIANCivqtozshJ3rs7UNCivqtozsooXsnpANCivqtozrrLTsnpANCivqtozsmIHrj4gNCivqtozrs7XtlZwNCivqtozquLDsiJkNCivqtozsg4Hsi50NCivqtozsmIHroZ0NCivqtozsp4TsiJgNCivqtozsnbjsmrANCivqtozsg4Hqs6QNCivqtozsmIHrqqkNCivqtozqtozrjIANCivqtoztlYTtg5wNCivqtozsnqzquLgNCivqtozsmIHrrLgNCivqtozrhbjsl7ANCivqtozrj4TsiJgNCivqtozsnpDsi50NCivqtozsmIHrs7QNCivqtozsmqnrgqgNCivqtozsooXquLgNCivqtozshLjtnawNCivqtozsmIHrs7UNCivqtozqsr3smKUNCivqtozrrLTsiJgNCivqtozssKzsnqwNCivqtozsmIHrs7UNCivqtozsp4Tsi50NCivqtozsnYDsmrANCivqtozsiJjssKwNCivqtozsmIHrtIkNCivqtozsnbjqt7wNCivqtoztnazqsr0NCivqtozsooXtnawNCivqtozsmIHrtIkNCivqtozssL3qt7wNCivqtozsmKXstpwNCivqtozspIDtmLgNCivqtozsmIHsiJgNCivqtozsirnso7wNCivqtozsnqXshJ0NCivqtozrqoXsmIENCivqtozsmIHsiJwNCivqtozrp7ntmIQNCivqtozsnbzqsr0NCivqtozrrLTtmLgNCivqtozsmIHsiJwNCivqtozsmqnsnoQNCivqtozrj5nqsJENCivqtozrs7Xsm5ANCivqtozsmIHsiJwNCivqtozshLHrp4wNCivqtozsmIHtmLgNCivqtozssqDshLgNCivqtozsmIHslYQNCivqtozsoJXqt5wNCivqtozqs4TqsJENCivqtozshLHsiJwNCivqtozsmIHsnbwNCivqtozrjIDquLANCivqtozrs5Hqs4QNCivqtozsmIHsiJgNCivqtozsmIHsoJwNCivqtozshKDsg50NCivqtozrtoTshK0NCivqtozshLHsnpANCivqtozsmIHso7wNCivqtozrjZXrpqwNCivqtozqtJHtlbQNCivqtozqtJHsiJwNCivqtozsmIHspIANCivqtoztg5zsiJgNCivqtozsmIHrtoQNCivqtozsnZjquLgNCivqtozsmIHssL0NCivqtozrjZXqsr0NCivqtozquIjtmqgNCivqtozquLDsnbQNCivqtozsmIHsuaANCivqtozshLHsmIENCivqtozquIjqsr0NCivqtozquIjrsLANCivqtozsmIHtg50NCivqtozsmqntmZgNCivqtoztg5zquLANCivqtozsmqnspIANCivqtozsmIHtlYQNCivqtozsnqzsiJgNCivqtozsoJXtnawNCivqtozstpjsiJgNCivqtozsmIHtlZgNCivqtozsmKXso7wNCivqtozqt4Dro6ENCivqtozsmIHtmZQNCivqtozsmIHtlZgNCivqtoztmITstpwNCivqtozsg4HsnbUNCivqtozsoJXrjIANCivqtozsmIHtl4wNCivqtozstpjsi50NCivqtozquLDsm5ANCivqtoztg5zsl7QNCivqtozsmIHtmIQNCivqtozrs5Hsl7ANCivqtozqsr3rsLANCivqtozsp4DrrLQNCivqtozsmIHtmLgNCivqtozsnKTqta0NCivqtozshJ3tmLgNCivqtozsoJXsobANCivqtozsmIHtmZgNCivqtozsnITquLgNCivqtozsuaDtmZQNCivqtozrqoXqtJENCivqtozsmKTqtJENCivqtoztg5zsiJgNCivqtoztmZjsnpANCivqtozsooXrkZANCivqtozsmKTqtJENCivqtozquLjqs6QNCivqtozqtJHsiJgNCivqtozsooXrnb0NCivqtozsmKTqt7wNCivqtozsg4HsobANCivqtozspJHqt6ANCivqtozshKDqsbQNCivqtozsmKTqt7wNCivqtozsiJjquLANCivqtozsooXsi50NCivqtozquLjqsbQNCivqtozsmKTro6ENCivqtozsmIHtg5wNCivqtozrr7jsiJgNCivqtozrp4zsi50NCivqtozsmKTrp4wNCivqtoztg5zsoJUNCivqtozsoJDrtIkNCivqtoztmJXsg4ENCivqtozsmKTrp4wNCivqtozquIjtlZkNCivqtozshLHsl7QNCivqtozqtozssqANCivqtozsmKTrqoUNCivqtozsnqzqtowNCivqtozqs6Hrj5kNCivqtozquLDrp4wNCivqtozsmKTsg4ENCivqtoztg5ztnawNCivqtozrkZDtmLgNCivqtozshJ3si50NCivqtozsmKTsg4ENCivqtozrp4zqt7wNCivqtozshozsoJwNCivqtozsmKXrrLgNCivqtozsmKTsg4ENCivqtozsooXsp4QNCivqtozshJ3shK0NCivqtoztm4jrjZUNCivqtozsmKTshJ0NCivqtozsoJXsm5ANCivqtozshLHsiJgNCivqtozsoJXsmrANCivqtozsmKTshJ0NCivqtoztg5zroKgNCivqtozroZ3soJwNCivqtozsp4TssqANCivqtozsmKTshJ0NCivqtozsnYDsoJUNCivqtozrgqjtlZkNCivqtozsnbjsiJgNCivqtozsmKTshLENCivqtozrnb3smrANCivqtozsmbjtmLgNCivqtozsnqzrp4wNCivqtozsmKTshLENCivqtozsmIHqtawNCivqtozrhbjsiJgNCivqtozrs5Hrj4QNCivqtozsmKTshLENCivqtozsnYDssqANCivqtoztmqjsmIENCivqtozsl7DsiKANCivqtozsmKTshLENCivqtozsirnqtawNCivqtozsmqnsl7QNCivqtozquLDqsr0NCivqtozsmKTsiJgNCivqtozrj5nqsIENCivqtozsg4HrsLANCivqtozsmIHtmIQNCivqtozsmKTsiJgNCivqtozshLHtlZwNCivqtoztg5zrjZUNCivqtozsoJDrtoQNCivqtozsmKTsiJgNCivqtozrj5nrhYQNCivqtozsm5DrjZUNCivqtozsp4DsmqkNCivqtozsmKTsirkNCivqtozrj5nsi6ANCivqtozsooXrrLgNCivqtowg7YOcDQor6raM7Jik7Je0DQor6raM7ZqM7JewDQor6raM7JiB6recDQor6raM7KCV7LacDQor6raM7Jik7JqxDQor6raM66qF7JqxDQor6raM7ZmN7JiBDQor6raM6riw7Je0DQor6raM7Jik7JuFDQor6raM7J6s6riwDQor6raM66e56rOkDQor6raM7KKF7IStDQor6raM7Jik7KO8DQor6raM64+E7J6sDQor6raM7JiB7IudDQor6raM7JiB7ZWcDQor6raM7Jik7KSADQor6raM7ZmN6rK9DQor6raM7ISx7LacDQor6raM7KO87ZqoDQor6raM7Jik7LaUDQor6raM7ZWc7JqpDQor6raM6rK97LC9DQor6raM7ISd7Zi4DQor6raM7Jik7LmgDQor6raM7Zi47ZWYDQor6raM7J6s7JyoDQor6raM7IOB7J20DQor6raM7Jik7ZiEDQor6raM7JiB7Z2sDQor6raM67OR7Je0DQor6raM66y47Zi4DQor6raM7Jik7Zi4DQor6raM7YOc7LKcDQor6raM6rCR7LacDQor6raM66eM7ZmYDQor6raM7Jik7ZyYDQor6raM6rWs7JiBDQor6raM66qF67CwDQor6raM7J6s7Z2sDQor6raM7Jil7ISxDQor6raM67O17Zi4DQor6raM642V7KO8DQor6raM7J6s7ISxDQor6raM7Jil7LacDQor6raM65Od66CkDQor6raM6rK97JykDQor6raM7ISx7IudDQor6raM7Jm47IiYDQor6raM7JiB7JqxDQor6raM66y47J6EDQor6raM66qF7IiZDQor6raM7Jqp6riwDQor6raM7YyQ7IiYDQor6raM7J206rK9DQor6raM7KCV6rOkDQor6raM7Jqp65OdDQor6raM7ISx67SJDQor6raM7Jio7JqpDQor6raM7ISd7KCVDQor6raM7Jqp66eMDQor6raM7KeA64+ZDQor6raM6rK97ZeMDQor6raM7Iug7Z2sDQor6raM7Jqp7LKgDQor6raM7Jqp7ISxDQor6raM7J287JilDQor6raM7Zmp7Jq0DQor6raM7Jqp7YOcDQor6raM66qF7IiYDQor6raM7Jqx66CoDQor6raM6rK966GADQor6raM7Jqp7YOcDQor6raM7KKF7Zi4DQor6raM642V64+ZDQor6raM7YyQ7ZiVDQor6raM7Jqp7YOcDQor6raM64+Z7Z2sDQor6raM7Ja47LC9DQor6raM7ZWc7IiYDQor6raM7JuQ6rWtDQor6raM6rSR7JqpDQor6raM7ISx7KSADQor6raM7JiB7J20DQor6raM7JuQ7KGwDQor6raM7LC97Z2sDQor6raM7Iuk7IigDQor6raM7YOc7ZWZDQor6raM7JuQ7LacDQor6raM7KCV7KGwDQor6raM67OR7LGEDQor6raM7KeE6riwDQor6raM7JuU7YOcDQor6raM7KCV6ri4DQor6raM7JaR7IigDQor6raM7KeE7Je0DQor6raM7J2A7KCVDQor6raM7IaM64+EDQor6raM67O167aEDQor6raM656Y6rK9DQor6raM7J2Y7ZqoDQor6raM7JmE66GcDQor6raM67OR7KSRDQor6raM66eM7Je0DQor6raM7J217ZiEDQor6raM7ISx7ZiEDQor6raM7ISd6recDQor6raM67OR7JuQDQor6raM7J6E7ISgDQor6raM66qF7YOdDQor6raM7ZiE7JuQDQor6raM7IK87JqpDQor6raM7J6s6rG0DQor6raM6re87IiYDQor6raM7IOB6raMDQor6raM7J247LC9DQor6raM7J6s642VDQor6raM66qF7YOcDQor6raM7J207JykDQor6raM7JiB6re8DQor6raM7J6s7ZmUDQor6raM64+Z7J28DQor6raM7J6l7IiYDQor6raM7LCo7Z2sDQor6raM7KCQ7IicDQor6raM7Zqo7ISgDQor6raM6riw7IiYDQor6raM7JiB7ZqoDQor6raM7KCQ7YOcDQor6raM7KCV7Z2sDQor6raM67O06rOkDQor6raM66+47Ja1DQor6raM7KCV7JWEDQor6raM6rec67O1DQor6raM7J6s7IOBDQor6raM7IK87J6QDQor6raM7KCV7JikDQor6raM6rK47JilDQor6raM7IOB7Zi4DQor6raM7ZiV7IiYDQor6raM7KCV7Z2sDQor6raM7ZWt7IiZDQor6raM7ZWE7IicDQor6raM7IOB7J2YDQor6raM7KCc7Zi4DQor6raM7J207IudDQor6raM7J6s7J20DQor6raM7KeE7J21DQor6raM7KKF66+8DQor6raM7IOB7KGwDQor6raM7J6s7IudDQor6raM7JiB7IiYDQor6raM7KKF7JWIDQor6raM7Jyk6riwDQor6raM7Jqw7ISgDQor6raM7Jqp642VDQor6raM7KKF7J6EDQor6raM7J247Z2sDQor6raM7JiB7ZmYDQor6raM66eM7JikDQor6raM7KKM6re8DQor6raM6riw7Je0DQor6raM7J2A7JiBDQor6raM7Jyk7IudDQor6raM7KO87LCsDQor6raM7ISd7ZWZDQor6raM7ZeM7JikDQor6raM66y47IiYDQor6raM7KO87ZiBDQor6raM7IKs7IicDQor6raM7J6l6riwDQor6raM7KKF7Z2sDQor6raM7KSA7JqwDQor6raM7KKF7JewDQor6raM7JiB7ZiBDQor6raM67O17JqpDQor6raM7KSA7JqwDQor6raM7JiB7JewDQor6raM6re87IiYDQor6raM7J6s6re8DQor6raM7KSA7J28DQor6raM7Jqw6re8DQor6raM67OR7IudDQor6raM7Jil7KCcDQor6raM7KSA7J28DQor6raM7KO87LCsDQor6raM7Jqp67ORDQor6raM66y47ZmUDQor6raM7KSA7J28DQor6raM7KSR7Zi4DQor6raM6riw7YOcDQor6raM6rec6ri4DQor6raM7KSR6recDQor6raM7ZiV7LKgDQor6raM6riw7Zi4DQor6raM66qF66+8DQor6raM7KSR6riwDQor6raM7Jqp64usDQor6raM7IOB64+EDQor6raM6rCA7ZWEDQor6raM7KSR6riwDQor6raM7Iic7ZmUDQor6raM7Ja17ZiEDQor6raM7IiY7IiZDQor6raM7KSR64usDQor6raM7ZmN7JewDQor6raM7Iug7LaYDQor6raM6rK97IudDQor6raM7KSR64yADQor6raM7IK87IiYDQor6raM7J6s7ISdDQor6raM7Jyk7J21DQor6raM7KSR64yADQor6raM7J6s7ISgDQor6raM7J6s66qFDQor6raM66y07ISxDQor6raM7KSR66eMDQor6raM7Iic7ISdDQor6raM64+I7ZmYDQor6raM6rOE7JewDQor6raM7KSR7IOBDQor6raM7KKF7LacDQor6raM7J6l6raMDQor6raM66qF7Je0DQor6raM7KSR7IOBDQor6raM7JWI7KeEDQor6raM7JyE7J6sDQor6raM7ZiE7JuQDQor6raM7KSR7ISdDQor6raM7Iq57ZGcDQor6raM642V7J2RDQor6raM67OR65OdDQor6raM7KSR7Je0DQor6raM67OR6regDQor6raM7ISx6rK9DQor6raM7JiB7J6QDQor6raM7KSR7Je0DQor6raM6rK96rCBDQor6raM7J6l7LacDQor6raM67SJ7JuFDQor6raM7KSR7LKgDQor6raM7Y+J7LKgDQor6raM7Zi47ISdDQor6raM6rK97J21DQor6raM7KSR7ZmUDQor6raM7JiB64uoDQor6raM6re87KSADQor6raM67O07KCVDQor6raM7KeA7JiBDQor6raM7Iic7KKFDQor6raM6reA7JqxDQor6raM6rOE6ri4DQor6raM7KeE7IOBDQor6raM7Jqw7J6EDQor6raM7LKg7LKgDQor6raM7KKF7IugDQor6raM7LCo64KoDQor6raM7LaY6riwDQor6raM7IiY7Je0DQor6raM64Ko7JewDQor6raM7LCo7IigDQor6raM67SJ7IiYDQor6raM7ZiE7Je0DQor6raM7KKF7JqpDQor6raM7LCo7JewDQor6raM6ri47J20DQor6raM7J6l7Je0DQor6raM66+47IicDQor6raM7LC96riwDQor6raM7KCV7JuUDQor6raM7ISd65OdDQor6raM7Jq066GdDQor6raM7LC97IudDQor6raM7Z2l7J20DQor6raM7ISx7Zi4DQor6raM7JiB7JqxDQor6raM7LC97ZmUDQor6raM7KeE67SJDQor6raM7KCV67CwDQor6raM7IS47IiYDQor6raM7LaY6raBDQor6raM7Iq57Jq0DQor6raM66+87JilDQor6raM6rK97JqwDQor6raM7LaY7IudDQor6raM66y47ZGcDQor6raM7KSA7ZuIDQor6raM7LCo7J6sDQor6raM7LaY7IudDQor6raM7IOB7Je0DQor6raM7IOB7IudDQor6raM7ISx67CwDQor6raM7LaY7JikDQor6raM7ZWc6riwDQor6raM7IOB6re8DQor6raM7JiB7J6EDQor6raM7LaY7J6QDQor6raM7J2E67KUDQor6raM6riI7IiYDQor6raM7ZW066qpDQor6raM7LaY7J6QDQor6raM7JiB7Zi4DQor6raM7KSA7ZmUDQor6raM67O17IiYDQor6raM7LaY7J6QDQor6raM7IyN7ZWEDQor6raM7KKF7IStDQor6raM7JiB7JesDQor6raM7LaY7YOcDQor6raM7Iic6rWsDQor6raM7ZW07LKgDQor6raM6ri47Z2sDQor6raM7Lmg66eMDQor6raM7KKF7KGwDQor6raM7ZmY7IiYDQor6raM6re867SJDQor6raM7YOc6rSADQor6raM7IaM7ISxDQor6raM6rK97JilDQor6raM7IOB6regDQor6raM7YOc6rSADQor6raM66qF7ZuIDQor6raM7KKF7LKgDQor6raM66qF7IiZDQor6raM7YOc6rWtDQor6raM7YOc6recDQor6raM7IOB7LKcDQor6raM7J247IiYDQor6raM7YOc6re8DQor6raM7KO87Zi4DQor6raM7Jqp67CwDQor6raM66eM7Zi4DQor6raM7YOc64usDQor6raM66qF6rWsDQor6raM7JiB6rSADQor6raM7JiB7LacDQor6raM7YOc64+ZDQor6raM7LC97JuFDQor6raM67OR7LKgDQor6raM7Zi47IiZDQor6raM7YOc7IOdDQor6raM642V7J6sDQor6raM64Kc66y4DQor6raM7Z2s642VDQor6raM7YOc7IiZDQor6raM7IOB7ISdDQor6raM7JuQ7JWUDQor6raM7ZWZ7Jm4DQor6raM7YOc7IigDQor6raM64+Z7ZuIDQor6raM64+Z66qFDQor6raM7KCQ7Z2sDQor6raM7YOc7IudDQor6raM7KCV7Z2sDQor6raM7YOc7ISdDQor6raM7Jyk6re8DQor6raM7YOc7IudDQor6raM7IOB6riwDQor6raM7YOc7IiZDQor6raM67KU7J24DQor6raM7YOc7JWUDQor6raM7KCQ7ISxDQor6raM7JiB7ISgDQor6raM7ISx7IK8DQor6raM7YOc7JqpDQor6raM67SJ7Z2gDQor6raM7Iuc7LKgDQor6raM7J2Y65OdDQor6raM7YOc7JqwDQor6raM67OR7JilDQor6raM6rK97IudDQor6raM7IiY7Je9DQor6raM7YOc7JuQDQor6raM7IiY6rSADQor6raM7KCV67SJDQor6raM7J6s7J28DQor6raM7YOc7J28DQor6raM7JiB7Z2sDQor6raM66y47ZmYDQor6raM7KSR7ISdDQor6raM7YOc7KCVDQor6raM7YOc7ZiEDQor6raM7Iq57ZuIDQor6raM7JiB7JuQDQor6raM7YOc7KKFDQor6raM7JiB7JiBDQor6raM7J6s7ZmYDQor6raM7J6l67SJDQor6raM7YOc7LC9DQor6raM7ZiE7Je0DQor6raM7KCV66qFDQor6raM67id64+EDQor6raM7YOc7LKgDQor6raM7ISx64uoDQor6raM7ISd7JqxDQor6raM7IOB67aEDQor6raM7YOc7LKgDQor6raM7KCV6rCRDQor6raM66Gd7IiYDQor6raM7ZiE7J20DQor6raM7YOc7ZeMDQor6raM66y07ISxDQor6raM7KSR6re8DQor6raM7JiB7IStDQor6raM7YOc7ZmNDQor6raM66eM7J28DQor6raM7KCV66eMDQor6raM7JiB7ZmUDQor6raM7YOc7ZyYDQor6raM7Jqw6rWsDQor6raM6riw7IKwDQor6raM7LCs7IudDQor6raM7YOc7Z2sDQor6raM7KKF64+ZDQor6raM7JiB6rG0DQor6raM7LKc7JqpDQor6raM7YOd7KKFDQor6raM67OR66eMDQor6raM7KSA7J6sDQor6raM66qo64+EDQor6raM7YyQ7IicDQor6raM7Jqp7JewDQor6raM7Lap7IiYDQor6raM7JiB7IudDQor6raM7ZW07LKgDQor6raM7YOc7JqpDQor6raM7YOc7LKgDQor6raM7J6s7KeEDQor6raM7ZiB64+ZDQor6raM7JiB7JaRDQor6raM7IyN7KCVDQor6raM66y07IStDQor6raM7ZiB66WgDQor6raM6rK97LaYDQor6raM7JuQ7IK8DQor6raM7KCV6riwDQor6raM7ZiB7JqwDQor6raM7ZiE7Zi4DQor6raM7J6l7KCcDQor6raM7JaR7JuQDQor6raM7ZiB7J28DQor6raM6rK97KGwDQor6raM7Jqp7IicDQor6raM7IyN7ZWYDQor6raM7ZiB7KKFDQor6raM7KeE7IugDQor6raM7Z2s7ISgDQor6raM7ISx7LKgDQor6raM7ZiB7YOcDQor6raM7ZiV7IudDQor6raM7IK87J6QDQor6raM66eQ7IiZDQor6raM7ZiB7Zi4DQor6raM67O1656YDQor6raM7JuQ6rWsDQor6raM7J287IicDQor6raM7ZiB7ZuIDQor6raM7KKF64+ZDQor6raM7IOB7Z2sDQor6raM6riw7IicDQor6raM7ZiE7IicDQor6raM7KKF7ZiEDQor6raM7IaM7KGwDQor6raM7ISd7JqpDQor6raM7ZmN6riwDQor6raM67OR7LKcDQor6raM7ISd6riwDQor6raM6rWQ656YDQor6raM7ZmN6riwDQor6raM7Iic7IStDQor6raM7KCQ6ri4DQor6raM7J6s7Zi4DQor6raM7ZmU7J6QDQor6raM7ISx7IicDQor6raM7ZW064KoDQor6raM6rWs7LCoDQor6riI6riw7IiZDQor6riI7ISx7IiYDQor6riI6rK97IS4DQor6riI6riI6re8DQor6riI7IS47ZmYDQor6riI7JiB7JqpDQor6riI6rK96rWtDQor6riI7KCV7KO8DQor6riI7J6E64WEDQor6riI6re87JqwDQor6riI7YOc7Z2sDQor6riI7Iic7JqwDQor6riI7J6s7ZiEDQor6riI66eQ7LacDQor6riI7Zi47IiYDQor6riI64W47Z2sDQor6riI7J6s7Zi4DQor6riI7J6s7ZmYDQor6riI67OR7IicDQor6riI67OR7IicDQor6riw6rSR7IStDQor6riw6reA67SJDQor6riw7J6s7JaRDQor6riw64+Z7IicDQor6riw6rSR7IStDQor6riw7ISx6re8DQor6riw7ZiE7Z2sDQor6riw7J6s7ZmUDQor6riw6rSR7IStDQor6riw7JiB7ISgDQor6riw7Iuc7ISgDQor6riw7ISd7Zi4DQor6riw6raM7IStDQor6riw7KCV66qoDQor6riw7ISg7KCcDQor6riw7KeE6rOkDQor6riw64Ko7IStDQor6riw7KeE7J6EDQor6riw7Jqp7IicDQor6riw7ISx7ZmNDQor6riw66eQ7J6EDQor6riw7KKF6re8DQor6riw7YOc7ZyYDQor6riw7IOB7KSADQor6riw66y07IStDQor6riw7J6s7J6sDQor6riw66y07ZeMDQor6riw7IaM64yADQor6riw67KU7ISdDQor6riw7ISx67KUDQor6riw7KCQ7IOdDQor6riw7Ja47IicDQor6riw7ISx7ZiEDQor6riw7J2464+MDQor6riw7J6E7KeADQor6riw7KCV7ISgDQor6riw7IS46rWtDQor6riw7Iq567SJDQor6riw7LKg7ZuIDQor6riw7LKg7IStDQor6riw7IS466GdDQor6riw64yA7YOcDQor6riw7KCV7ISdDQor6riw7Jyk6rK9DQor6riw7IS466GdDQor6riw7LC97ZiEDQor6riw7KKF64+EDQor6riw7KCV7ISxDQor6riw7IS466y4DQor6riw7ISx7KSRDQor6riw7IOB7IicDQor6riw7Jqx7KGwDQor6riw7IS47KSADQor6riw7IOB7LKcDQor6riw642V7IKwDQor6riw67aE6rSRDQor6riw7Iug6rWtDQor6riw7Jqp7IiYDQor6riw6re87JWFDQor6riw7KO87ZuIDQor6riw7Jqw6re8DQor6riw66+47JqwDQor6riw67OR7ZiEDQor6riw7KKF7IiYDQor6riw7Jqw64usDQor6riw7JiB7JykDQor6riw6rec64yADQor6riw64+Z7ZWYDQor6riw7Jqw67SJDQor6riw67OR7ISdDQor6riw66y07ZiEDQor6riwIOybkA0KK+q4sOyasOu2hA0KK+q4sOywveqzpA0KK+q4sOyiheq2jA0KK+q4sO2DnO2drA0KK+q4sOyasOyInA0KK+q4sO2drO2DnA0KK+q4sOyblOynhA0KK+q4sOuqheqzpA0KK+q4sOyasOyihQ0KK+q4sOuLrOyXsA0KK+q4sOuFuOuPjA0KK+q4sOyYgeyImQ0KK+q4sOyasOyjvA0KK+q4sOyYpeuegA0KK+q4sO2VtOyhsA0KK+q4sOyImOy2nA0KK+q4sOyasOyyoA0KK+q4sOyiheyasQ0KK+q4sOyiheuhgA0KK+q4sOuPmeykgA0KK+q4sOyasO2VtA0KK+q4sOuMgOybkA0KK+q4sO2MkOyEnQ0KK+q4sOyCvOyEnQ0KK+q4sOyduO2YhA0KK+q4sOyaseq3nA0KK+q4sOyiheyasA0KK+q4sOyCvOynhA0KK+q4sOyduO2drA0KK+q4sOyjvOyhsA0KK+q4sO2MkOq1rQ0KK+q4sOyiheynhA0KK+q4sOydvOyEoA0KK+q4sOyEseyaqQ0KK+q4sO2ZjeyaqQ0KK+q4sOydgOq4uA0KK+q4sOygkO2ZmA0KK+q4sOygkOyaqQ0KK+q4sOqyveyYgQ0KK+q4sOynhOyLnQ0KK+q4sOygleyErQ0KK+q4sO2VmeyEnQ0KK+q4sOykgOuTnQ0KK+q4sOyEse2drA0KK+q4sOyiheyEnQ0KK+q4sO2DnOyDnQ0KK+q4sOyerOyEoA0KK+q4sOyZhOuvuA0KK+q4sOykgOyEnQ0KK+q4sOycoOu0iQ0KK+q4sOuzkeq3nA0KK+q4sOyihe2YhA0KK+q4sOynhOyXsA0KK+q4sOyKueyXhQ0KK+q4sOy2mOyXtA0KK+q4sOq4sOyjvA0KK+q4sOyyreq4uA0KK+q4sOyEoO2YuA0KK+q4sO2MkO2YuA0KK+q4sOyYpeyLnQ0KK+q4sO2WieuCqA0KK+q4sOynhOy2nA0KK+q4sOuPhOyihQ0KK+q4sOq3vOqzpA0KK+q4sO2aqOyXsA0KK+q4sOuCtOyatA0KK+q4sOynhOy2nA0KK+q4sOynhOyXtA0KK+q4sO2drOyEnQ0KK+q4sOygleyynA0KK+q4sO2DnOuztQ0KK+q4sOyGoe2DnA0KK+q4uOyEne2ZmA0KK+q4uOydvOybkA0KK+q4uOyKueynhA0KK+q4uOuqheyhsA0KK+q5gCDrk7ENCivquYDqsJHshKANCivquYDsnZjsiJgNCivquYDsmKTsl7QNCivquYAg7ISxDQor6rmA64Ko7IiYDQor6rmA6rOh67O1DQor6rmA66qF7JmEDQor6rmAIOyEsQ0KK+q5gOyYgeyYpQ0KK+q5gOuPmeq3vA0KK+q5gOq0keq3nA0KK+q5gCDsmqkNCivquYDsiKDrj5kNCivquYDquLDstpgNCivquYDquLDsmqkNCivquYAg7JuQDQor6rmA7Iic66y1DQor6rmA64Ko6rWQDQor6rmA7Z2s7ZuIDQor6rmAIOycpA0KK+q5gOq0keq4sA0KK+q5gOyyoOyekA0KK+q5gOyYpOqzpA0KK+q5gCDsnbgNCivquYDsooXquLgNCivquYDshLHtmIQNCivquYDtg5zrp4wNCivquYAg7LKtDQor6rmA7Jqp7ISxDQor6rmA7J6s7LKcDQor6rmA7JiB7ZmYDQor6rmAIO2YgQ0KK+q5gOyXsOydvA0KK+q5gOuvuO2doA0KK+q5gO2ZlOq4sA0KK+q5gCDtmIQNCivquYDsirnrnpgNCivquYDslrXtmLgNCivquYDspJHtmJUNCivquYAg7Zi4DQor6rmA6riw64KoDQor6rmA66qF6rOkDQor6rmA7Jq064+ZDQor6rmAIO2biA0KK+q5gOyEneyaqQ0KK+q5gOydvOyaqQ0KK+q5gOyYgeyyoA0KK+q5gOqwgO2drA0KK+q5gO2VtOqyvQ0KK+q5gOu0ieyyoA0KK+q5gOygleyekA0KK+q5gOqwgeykkQ0KK+q5gOyerOuRkA0KK+q5gOy2mOyImA0KK+q5gOyyre2ctA0KK+q5gOqwkeujoQ0KK+q5gOyEseuqqA0KK+q5gOy2mOyLnQ0KK+q5gOqwke2ZmA0KK+q5gOqwkeunjA0KK+q5gOyiheyYpQ0KK+q5gOyiheyLnQ0KK+q5gO2YnOqwkQ0KK+q5gOqwkeusuA0KK+q5gOuNleuhnQ0KK+q5gOuqheyngQ0KK+q5gOq3nO2DnA0KK+q5gOqwkeyDnQ0KK+q5gOycpOyLnQ0KK+q5gOuzkeyglQ0KK+q5gOyiheuCqA0KK+q5gOqwkeyImA0KK+q5gOynhOyEnQ0KK+q5gOyInOq3oA0KK+q5gO2drO2ZmA0KK+q5gOqwkeyImA0KK+q5gOqyveykkQ0KK+q5gOyYgeyImA0KK+q5gO2VtOyyoA0KK+q5gOqwkeyInA0KK+q5gOuzke2YuA0KK+q5gOyduOq1rA0KK+q5gOq4sOyCvA0KK+q5gOqwkeyXsA0KK+q5gO2ZmOuPmQ0KK+q5gOuNleuqqA0KK+q5gOyDgeyYgQ0KK+q5gOqwkeyjvA0KK+q5gOqyveyglQ0KK+q5gOywve2doA0KK+q5gOyerOyatA0KK+q5gOqwkeykgA0KK+q5gOyYgeuqqA0KK+q5gO2VhOq3nA0KK+q5gOyInO2VmQ0KK+q5gOqwkeynhA0KK+q5gOyepe2YhA0KK+q5gO2DnOyImA0KK+q5gOyYpOuylA0KK+q5gOqwkeynhA0KK+q5gOuRkOq4uA0KK+q5gOyXsO2VhA0KK+q5gOqyveyInA0KK+q5gOqwke2YhA0KK+q5gOyiheyekA0KK+q5gO2DnO2YuA0KK+q5gOyiheyLnQ0KK+q5gOqwleuNlQ0KK+q5gO2dpeybkA0KK+q5gOybkOy2mA0KK+q5gOyduOyYpA0KK+q5gOqwleyImA0KK+q5gOyjvOyekA0KK+q5gOyDge2ZmA0KK+q5gO2YhOumvA0KK+q5gOqwleyLnQ0KK+q5gOuvuOyImA0KK+q5gO2MkO2YuA0KK+q5gOqyveyImA0KK+q5gOqwle2WiQ0KK+q5gOq0ke2RnA0KK+q5gOyYge2YhA0KK+q5gO2YnOuLiA0KK+q5gOqwle2YuA0KK+q5gOustO2YhA0KK+q5gOuztO2drA0KK+q5gOywve2YuA0KK+q5gOqwle2ZlA0KK+q5gOy2mOyYgQ0KK+q5gOynhOyXsA0KK+q5gOyXheyekA0KK+q5gOqwnOyEoA0KK+q5gO2aqOyhsA0KK+q5gOyEseyyoA0KK+q5gOuztOycpA0KK+q5gOqxtOqwnA0KK+q5gOuzkeu0iQ0KK+q5gO2YuOyIoA0KK+q5gOyerOydvA0KK+q5gOqxtOq4sA0KK+q5gOyaqeyImA0KK+q5gOyEoOyDgQ0KK+q5gOyEseq4uA0KK+q5gOqxtOuNlQ0KK+q5gOyEneyduA0KK+q5gOyggeuPhA0KK+q5gOyerOyynA0KK+q5gOqyveq1rA0KK+q5gOyyoOyImA0KK+q5gOyaqeuloA0KK+q5gOyDgeyImA0KK+q5gOqyveuPhA0KK+q5gOykgOyjvA0KK+q5gOq3vOyYgQ0KK+q5gOyEseybkA0KK+q5gOqyveuegA0KK+q5gOydgOyatA0KK+q5gOyerOyXsA0KK+q5gOuMgOyLnQ0KK+q5gOqyveuhgA0KK+q5gOuLrO2YuA0KK+q5gOyEuO2ZjQ0KK+q5gCDsiJgNCivquYDqsr3rp4wNCivquYDshLHsnbwNCivquYDrjZXsmqkNCivquYDshJ3siJkNCivquYDqsr3sg4ENCivquYDrp4ztg5wNCivquYDsnqXsiJgNCivquYDrqoXtmZQNCivquYDqsr3shJ0NCivquYDsooXsiJgNCivquYDsiJjsoJUNCivquYDqt5ztmIQNCivquYDqsr3siJgNCivquYDsooXtmLgNCivquYDsm5DroKgNCivquYDsmIHtmZQNCivquYDqsr3siJgNCivquYDsmqnsiJgNCivquYDsmIHsiJgNCivquYDsooXsiJgNCivquYDqsr3siJgNCivquYDsooXtg50NCivquYDshLHshKANCivquYDrj5nsmqkNCivquYDqsr3siJgNCivquYDsnpHqtZANCivquYDsmIHqt5wNCivquYDqtJHqsqwNCivquYDqsr3siJgNCivquYDqtZDsobANCivquYDsnbjrjZUNCivquYDqtozspIANCivquYDqsr3siJkNCivquYDsmIHsnpANCivquYDtg5zsm5ANCivquYDtg5ztmIQNCivquYDqsr3si50NCivquYDsooXtmLgNCivquYDsmqnsiJwNCivquYDsnqzsnpANCivquYDqsr3slZQNCivquYDqta3qtbANCivquYDsnKTsobANCivquYDtjJDtmLgNCivquYDqsr3slaANCivquYDrkZDrjZUNCivquYDqsJHtmakNCivquYDrj5ntmLgNCivquYDqsr3slaANCivquYDso7ztlYQNCivquYDrrLTquIgNCivquYDsg4HtmLgNCivquYDqsr3smKQNCivquYDqsr3snKQNCivquYDrs7Xrs7UNCivquYDtl4zsnqwNCivquYDqsr3smKQNCivquYDslrjshKANCivquYDsnbzsm4UNCivquYDrrLTtnawNCivquYDqsr3smKUNCivquYDtg5zqtowNCivquYDsmIHqtIANCivquYDtlZjssqANCivquYDqsr3smrANCivquYDsiJjstpwNCivquYDsnKTsnpANCivquYDsi5zqt5wNCivquYDqsr3sm5ANCivquYDtg5ztjJQNCivquYDtjJTsg4ENCivquYDqtJHtmIQNCivquYDqsr3sm5ANCivquYDsnKTrs7UNCivquYDsoJXrtoQNCivquYDshLHsmKQNCivquYDqsr3snbgNCivquYDsnqzshKANCivquYDshLHrjZUNCivquYDri6zqt6ANCivquYDqsr3snpANCivquYDtmZTrk50NCivquYDsmIHsmrANCivquYDqtJHsnbQNCivquYDqsr3snpANCivquYDshJ3snqwNCivquYDrrLjsg50NCivquYDsm5DtmIQNCivquYDqsr3snpANCivquYDsnqzsm5ANCivquYDsuaDtmIQNCivquYDtmITsiJwNCivquYDqsr3snpANCivquYDshLjtnawNCivquYDrs5HtmLgNCivquYDsnqzsmqkNCivquYDqsr3snqwNCivquYDsnqzqtIANCivquYDrr7jtmY0NCivquYDsooXtmLgNCivquYDqsr3sobANCivquYDsooXtlZkNCivquYDrs7jsmIENCivquYDshLjsmrANCivquYDqsr3sobANCivquYDrqoXsiJgNCivquYDsmIHshKANCivquYDsnoTrj4wNCivquYDqsr3sooUNCivquYDsp4TsnbgNCivquYDsp4Trj5kNCivquYDsg4Htg5wNCivquYDqsr3tg5wNCivquYDsnbzshJ0NCivquYDqta3tg50NCivquYDspJHtmZgNCivquYDqsr3tg5wNCivquYDssqDtnawNCivquYDsiJztnawNCivquYDsg4Hqt7wNCivquYDqsr3tg5wNCivquYDrj5nrspQNCivquYDslpHquLANCivquYDsiJjsg50NCivquYDqsr3tg5wNCivquYDsg4Hqs4QNCivquYDsg4Hrj5kNCivquYDsnqzqs6QNCivquYDqsr3tjJQNCivquYDsg4Hsp4QNCivquYDsl6zshJ0NCivquYDsooXsmrQNCivquYDqsr3tmLgNCivquYDsnqztg50NCivquYDsnqzstpwNCivquYDso7zsiJgNCivquYDqsr3tmLgNCivquYDssL3so7wNCivquYDsmIHspIANCivquYDrkZDtmLgNCivquYDqsr3tmLgNCivquYDstpjqt5wNCivquYDqsr3siJwNCivquYDsi5ztlZwNCivquYDqsr3tmZgNCivquYDtlZntg50NCivquYDsnqzstpwNCivquYDtg5ztmIQNCivquYDqsr3tmZgNCivquYDsmqnsi6QNCivquYDqtJHsp4ANCivquYDrp4nsiJwNCivquYDqsr3tnawNCivquYDsnbzsiJgNCivquYDsoJXsmIENCivquYDstpjsiJkNCivquYDqsr3tnawNCivquYDsmIHsmqkNCivquYDtg5zslYgNCivquYDtlYTslaANCivquYDqsr3tnawNCivquYDspIDrsKkNCivquYDsnqztmZgNCivquYDsvozqt7wNCivquYDqsr3tnawNCivquYDri6zsobANCivquYDtmITqt5wNCivquYDsmqnsm5ANCivquYDqsr3tnawNCivquYDrrLTsiJgNCivquYDshozsnpANCivquYDrtInsmrENCivquYDqsr3tnawNCivquYDsmIHqta0NCivquYDsg4Hrj5kNCivquYDsnqzsnpANCivquYDqs4TsnKQNCivquYDsg4HsiJwNCivquYDsoJXsi50NCivquYDsoJXslZQNCivquYDqs4Ttg50NCivquYDsooXsnbwNCivquYDsp4Tqt7kNCivquYDshLHsmrANCivquYDqs4TtlZwNCivquYDspJHsnpANCivquYDsnYDtmY0NCivquYDsmIHtmLgNCivquYDqs4TtmLgNCivquYDsnbzsmqkNCivquYDsoJXshK0NCivquYDsnqzshKANCivquYDqs7Xso7wNCivquYDsm5Dsi50NCivquYDsiJzssqANCivquYDquLDtmZgNCivquYDqtIDrkZANCivquYDsoJDtnawNCivquYDsmqnsp4QNCivquYDssKjsiJgNCivquYDqtIDsmIENCivquYDtmLjtmZgNCivquYDtmLjtlZgNCivquYDsm5DtnaANCivquYDqtIDsmrANCivquYDspJHtmJUNCivquYDshKDshJ0NCivquYDrrLTrj5kNCivquYDqtIDsnbQNCivquYDshJ3quLANCivquYDsi6Drj4QNCivquYDsp4TtlZgNCivquYDqtJHqs6QNCivquYDsiJjsl70NCivquYDsmqnsm4UNCivquYDsiJzsiJkNCivquYDqtJHqt5wNCivquYDtnaztmZgNCivquYDquLDtnaUNCivquYDqtazrj4QNCivquYDqtJHrjZUNCivquYDquLjqt7wNCivquYDsoJXqtowNCivquYDsnqzsl7QNCivquYDqtJHrj5kNCivquYDso7ztg50NCivquYDrrLTtnawNCivquYDsnYDqtawNCivquYDqtJHrkZANCivquYDsoJXtnawNCivquYDsnqzqtowNCivquYDqtJHsmqkNCivquYDqtJHshJ0NCivquYDssL3sirkNCivquYDsirnrhYANCivquYDsg4Hsi50NCivquYDqtJHshJ0NCivquYDrs5HssqANCivquYDsmIHrj5kNCivquYDso7zsnpANCivquYDqtJHsiJgNCivquYDrj5nquLgNCivquYDrj4TrtIkNCivquYDsnqzssqANCivquYDqtJHsiJgNCivquYDtg5zshJ0NCivquYDslpHsi50NCivquYDrj4Tqsr0NCivquYDqtJHsiJgNCivquYDshLHsiJgNCivquYDstpjsmrANCivquYDrtoTsobANCivquYDqtJHsiJgNCivquYDsoJXsiKANCivquYDqtJHtmZQNCivquYDtmZTtmLgNCivquYDqtJHsiJgNCivquYDqt7nsmrQNCivquYDrtoTtmZgNCivquYDrkZDtmLgNCivquYDqtJHsiJgNCivquYDtlbTtj6wNCivquYDsp4Tsi50NCivquYDroZ3rk50NCivquYDqtJHsiJgNCivquYDrs5HsiJgNCivquYDshLHqsr0NCivquYDssqDtm4gNCivquYDqtJHsi50NCivquYDquIjtmZgNCivquYDsnqzsi50NCivquYDsnbztmIQNCivquYDqtJHsl7ANCivquYDrj5nssqANCivquYDsnqzsiJgNCivquYDqsJXquLANCivquYDqtJHsl7ANCivquYDspIDtmZQNCivquYDrjZXsobANCivquYDshLHrnpgNCivquYDqtJHsl7QNCivquYDrs5HsmrANCivquYDqsr3qt5wNCivquYDstpjsnqwNCivquYDqtJHsl7QNCivquYDtmJXshK0NCivquYDri6zruYgNCivquYDshLHrtIkNCivquYDqtJHsl70NCivquYDsmIHqt6ANCivquYDshLHsm5ANCivquYDsiJzroKgNCivquYDqtJHsmIENCivquYDqsJHso7wNCivquYDtlonssqANCivquYDssKjquLgNCivquYDqtJHsmIENCivquYDqt5zsmrQNCivquYDsoJXtmLgNCivquYDsnqzsiJgNCivquYDqtJHsmIENCivquYDspIDsi50NCivquYDtg5zsnbQNCivquYDsmqnrtoQNCivquYDqtJHsmrANCivquYDqsr3siJgNCivquYDquLDqs6QNCivquYDso7zrjIANCivquYDqtJHsm4UNCivquYDsmrDsnoQNCivquYDsmrDtmY0NCivquYDsmIHshK0NCivquYDqtJHsm4UNCivquYDqsJHsnpANCivquYDqsbTsiJgNCivquYDtnazsobANCivquYDqtJHsm4UNCivquYDrr7zsuaANCivquYDshozsiJgNCivquYDtnaztmqgNCivquYDqtJHsm4UNCivquYDqsr3siJgNCivquYDqtJHqt7wNCivquYDsmqnroZ0NCivquYDqtJHsnKQNCivquYDslpHssYQNCivquYDsnbzshJ0NCivquYDsp4TtmZgNCivquYDqtJHsnbwNCivquYDqsJHspJENCivquYDtmLjsiJgNCivquYDsoJXrqqkNCivquYDqtJHsnbwNCivquYDsg4HsmrANCivquYDsnqzssqANCivquYDquLDsiJgNCivquYDqtJHsobANCivquYDtg5zrsLANCivquYDsnbjsmqkNCivquYDqsr3siJwNCivquYDqtJHsp4QNCivquYDtg5zsiJgNCivquYDsmKTsmYQNCivquYDqsbTrj4QNCivquYDqtJHtg50NCivquYDsgrzsiJgNCivquYDqsr3sp4ENCivquYDtmqjslZQNCivquYDqtJHtg50NCivquYDquLDtmZQNCivquYDssKztmIQNCivquYDsiJjshKANCivquYDqtJHtmIQNCivquYDrj5nsmqkNCivquYDshLjtmZgNCivquYDsnqzsmrQNCivquYDqtJHtmLgNCivquYDrhbjrr7wNCivquYDsmqnsiJgNCivquYDsiJzrhYQNCivquYDqtJHtmLgNCivquYDqsr3smrANCivquYDsooXtlqUNCivquYDrrLTsiJgNCivquYDqtJHtmZQNCivquYDsoJXtmLgNCivquYDssqDtlZkNCivquYDqsJXrj4gNCivquYDqtJHtmowNCivquYDsl7DsmrQNCivquYDsnoTqtowNCivquYDshLHsobANCivquYDqtJHtmqgNCivquYDrqoXsirkNCivquYDsnbzsm4UNCivquYDrp5DtmLgNCivquYDqtJHtnawNCivquYDshKDsmrANCivquYDsiJzquLgNCivquYDtlbTsgrwNCivquYDqtZDrnb0NCivquYDsmIHsm5ANCivquYDshJ3tmZgNCivquYDsnbzso7wNCivquYDqtZDsiJwNCivquYDrjIDsl7QNCivquYDsmIHshK0NCivquYAg7Je0DQor6rmA6rWQ7KSADQor6rmA6re87KO8DQor6rmA7IOB64+EDQor6rmA6riw67CwDQor6rmA6rWQ7KSADQor6rmA7ZWc6recDQor6rmA7KKF7LKgDQor6rmA7KSR6rSADQor6rmA6rWQ7YOcDQor6rmA7ZWc66y4DQor6rmA7JiB7IudDQor6rmA6riw7ISdDQor6rmA6rWQ7Z2sDQor6rmA7LCo7Je0DQor6rmA7JiB7Zi4DQor6rmA6rK96riwDQor6rmA6rWs67SJDQor6rmA7ISg6recDQor6rmA7KeE7IudDQor6rmA7Jqp642VDQor6rmA6rWs7ZiEDQor6rmA7J207JqwDQor6rmA7JuQ6re8DQor6rmA7KKF7JuFDQor6rmA6rWs7ZiEDQor6rmA6rSR7IudDQor6rmA7IOB7LKgDQor6rmA67O166qpDQor6rmA6rWt64+ZDQor6rmA7LaY7IOBDQor6rmA66eM6re8DQor6rmA67OR7ISgDQor6rmA6rWt64+ZDQor6rmA64+E7IiYDQor6rmA7ISx7KO8DQor6rmA6riw7ZeMDQor6rmA6rWw64KoDQor6rmA66eM7IiYDQor6rmA7KKF7JqxDQor6rmA7JiB7ISgDQor6rmA6rWw7J6QDQor6rmA7Jyk7J6QDQor6rmA7JiB67O1DQor6rmA67SJ7ISkDQor6rmA6raM7IudDQor6rmA7Iic7J6sDQor6rmA7ZWE7J6QDQor6rmA642V7ZalDQor6rmA6reA6rSADQor6rmA7Iug7ZWZDQor6rmA6riw7ISgDQor6rmA7LKg7J2ADQor6rmA6reA64KoDQor6rmA7IOB7Je0DQor6rmA7Z2s7JiBDQor6rmA7J287JewDQor6rmA6reA642VDQor6rmA7KCQ66qoDQor6rmA7Jqp64KcDQor6rmA6ri47LaUDQor6rmA6reA7ISgDQor6rmA7Z2s7J6QDQor6rmA7IOB7ISxDQor6rmA6rec7IiYDQor6rmA6reA7IicDQor6rmA7J6s7ZiEDQor6rmA7ISc7ZmYDQor6rmA7Iq57ZalDQor6rmA6reA7JewDQor6rmA7JiB7JqpDQor6rmA7YOc7IudDQor6rmA7IOB7ZiEDQor6rmA6reA7JewDQor6rmA7KCV7IicDQor6rmA7Jm46rWtDQor6rmA7J287Zi4DQor6rmA6reA7Je0DQor6rmA6rG07ZmYDQor6rmA7KCV7Zi4DQor6rmA7LC97KKFDQor6rmA6reA7JqpDQor6rmA7KeE7Zi4DQor6rmA67OR7LKgDQor6rmA7KO87J6QDQor6rmA6reA7KGwDQor6rmA7KCV64KoDQor6rmA6riw7JilDQor6rmA7J2Y7IiYDQor6rmA6rec64yADQor6rmA7LKg7IiYDQor6rmA66y47KO8DQor6rmA7Jqp6re8DQor6rmA6rec67CwDQor6rmA7JiB7Zy0DQor6rmA7KSR7IiYDQor6rmA7IK87IudDQor6rmA6rec7IOBDQor6rmA7YOc7ISsDQor6rmA7KSA7Je0DQor6rmA6rec7YOdDQor6rmA6rec7IStDQor6rmA7JiB7KGwDQor6rmA64+Z6recDQor6rmA7J6s67aEDQor6rmA6rec7IStDQor6rmA7IOB7IiYDQor6rmA7Iuk7JuQDQor6rmA7JiB7JyoDQor6rmA6rec7ISxDQor6rmA64W47IStDQor6rmA7ZmN7ZiEDQor6rmA6rSR7LKgDQor6rmA6rec7JiBDQor6rmA7Jqp7IiYDQor6rmA7IS46raBDQor6rmA67OR7IiYDQor6rmA6rec7JqwDQor6rmA7JiB7LacDQor6rmA7YyU6rWtDQor6rmA7ZmN7IiYDQor6rmA6rec7JqxDQor6rmA7J247JiBDQor6rmA7JuQ7KeEDQor6rmA7JuQ66y4DQor6rmA6rec7LKgDQor6rmA7Jqp7J6QDQor6rmA6riw7IiYDQor6rmA7ZW07JewDQor6rmA6rec7LKgDQor6rmA7Iug7ZmYDQor6rmA7Iq57JqpDQor6rmA7KCV6raMDQor6rmA6rec7LKgDQor6rmA7KKF66y0DQor6rmA7KO86re8DQor6rmA7YOc7ZiEDQor6rmA6rec7LKgDQor6rmA7LC96raMDQor6rmA7ZW06riwDQor6rmA7Zi47IudDQor6rmA6rec7YOcDQor6rmA7IOB7Je0DQor6rmA7Jqp7JqwDQor6rmA7ISd7YyUDQor6rmA6rec7YOcDQor6rmA6rWt642VDQor6rmA7J207J6sDQor6rmA7ZiE7IudDQor6rmA6rec7ZiEDQor6rmA7JiB7JWFDQor6rmA7Zi47IiYDQor6rmA7KSA7ZiEDQor6rmA6rec7ZiEDQor6rmA67KU6re8DQor6rmA7J6s6re8DQor6rmA7ISx7ZmpDQor6rmA6rec7ZiEDQor6rmA67SJ7IudDQor6rmA64+Z7Zi4DQor6rmA7IOB7JiBDQor6rmA6rec7ZmYDQor6rmA66+47KeEDQor6rmA7IiY7IiYDQor6rmA7Jqp7ISgDQor6rmA6rec7Z2sDQor6rmA66qF6529DQor6rmA7LCo7ISgDQor6rmA65GQ7ZiEDQor6rmA6re87IOdDQor6rmA64+Z64+EDQor6rmA7ZWZ7ISdDQor6rmA6rSR7KGwDQor6rmA6re87IudDQor6rmA7KCV7ZiEDQor6rmA7JWg67O1DQor6rmA7J6s7Zi4DQor6rmA6re87IudDQor6rmA7IOB6rWQDQor6rmA6rWt65OdDQor6rmA7J6s7J21DQor6rmA6re87KSRDQor6rmA7KeA7YOcDQor6rmA7Jyk6rWtDQor6rmA67SJ7Jq0DQor6rmA6re87Zi4DQor6rmA7IOB7J6sDQor6rmA7Iic66y4DQor6rmA7Iic7JiBDQor6rmA6re87Zi4DQor6rmA7Zic7KO8DQor6rmA7JiB7Je0DQor6rmA7YyQ7IiYDQor6rmA6riI64KcDQor6rmA6rSR7JqwDQor6rmA6rK964+EDQor6rmA6rK97IigDQor6rmA6riI67O0DQor6rmA64W464+EDQor6rmA7KCV7KCcDQor6rmA7JiB7ISxDQor6rmA6riI7ISdDQor6rmA7ZmY7ZiEDQor6rmA66qF7JqxDQor6rmA7ZWc7JuFDQor6rmA6riI7ISgDQor6rmA7IOB7IudDQor6rmA6riI7JiBDQor6rmA7ZW07ZmYDQor6rmA6riI7IicDQor6rmA7LCo7LKgDQor6rmA7IaM7JilDQor6rmA7ZmN67SJDQor6rmA6riI7IicDQor6rmA7IOB7KCcDQor6rmA7Z2s7ZmYDQor6rmA7JiB7IiYDQor6rmA6riI7IicDQor6rmA7KKF7JWFDQor6rmA66qF7Je0DQor6rmA7YOc7ZiVDQor6rmA6riI7JewDQor6rmA7Jqp7ZmYDQor6rmA7Jyk7JqpDQor6rmA7ISx67O0DQor6rmA6riI7JewDQor6rmA7Jqp7Zi4DQor6rmA66eM7LKcDQor6rmA7ZWZ7KO8DQor6rmA6riI7JilDQor6rmA7JWg7ISxDQor6rmA7KCV7KCVDQor6rmA7ZmN7JqwDQor6rmA6riI7JilDQor6rmA6riw7ISdDQor6rmA66eM66eMDQor6rmA7Jqp7Je0DQor6rmA6riI7JqpDQor6rmA7YOA7J28DQor6rmA7LmY67SJDQor6rmA6rSR7J28DQor6rmA6riI7J20DQor6rmA6rK96re8DQor6rmA7JuQ7KeEDQor6rmA7LaY7IiYDQor6rmA6riI7J20DQor6rmA7LaY7IudDQor6rmA7J6s7IOBDQor6rmA67KU6rWtDQor6rmA6riI7J20DQor6rmA7IiY6recDQor6rmA7Jqw7YyUDQor6rmA7IOB6regDQor6rmA6riI7J6QDQor6rmA67aE64+ZDQor6rmA7KO87J20DQor6rmA7ZW06recDQor6rmA6riI7J6QDQor6rmA6re87ZiEDQor6rmA7ISg7ZWZDQor6rmA7ZW07ZmYDQor6rmA6riI7ZWYDQor6rmA7J247ZiVDQor6rmA7Zqo7ISgDQor6rmA7J2E7ZmpDQor6rmA6riN7Zi4DQor6rmA7LC965OdDQor6rmA7KeE7KGwDQor6rmA6rec64+MDQor6rmA6riw6rOgDQor6rmA64+I67CwDQor6rmA66y47KKFDQor6rmA7J247ZWYDQor6rmA6riw6regDQor6rmAIO2ZmA0KK+q5gO2DnOqzpA0KK+q5gOyerO2ZmA0KK+q5gOq4sOq3oA0KK+q5gOyYgeybhQ0KK+q5gO2VtOyduA0KK+q5gOyCvOyYpA0KK+q5gOq4sOuFhA0KK+q5gOusuOyekA0KK+q5gOyYgeyEoA0KK+q5gOq0keq3nA0KK+q5gOq4sOuFhA0KK+q5gOuPmeyekA0KK+q5gOyYgeuylA0KK+q5gOu0ieyInA0KK+q5gOq4sOuFhA0KK+q5gOyduOuylA0KK+q5gOqwleyInA0KK+q5gO2WieyyoA0KK+q5gOq4sOuNlQ0KK+q5gOq4iOyatA0KK+q5gOygle2ZmA0KK+q5gO2VhOq4sA0KK+q5gOq4sOuNlQ0KK+q5gOqyveyaqQ0KK+q5gO2ZjeyImQ0KK+q5gOuPmeyImA0KK+q5gOq4sOuNlQ0KK+q5gOqyveq3oA0KK+q5gOuRkOyYpQ0KK+q5gOygleyErQ0KK+q5gOq4sOuPhA0KK+q5gOyerO2YuA0KK+q5gOybkO2VnA0KK+q5gO2ZjeyekA0KK+q5gOq4sOuvuA0KK+q5gOqzoeunjA0KK+q5gOyduOyerA0KK+q5gOyVlOyjvA0KK+q5gOq4sOuylA0KK+q5gOq4sOyEnQ0KK+q5gO2DnOuMgA0KK+q5gOyatOyImA0KK+q5gOq4sOuzkQ0KK+q5gOunjOq3nA0KK+q5gOyaqeusuA0KK+q5gO2DnOyXsA0KK+q5gOq4sOu0iQ0KK+q5gOyInOykkQ0KK+q5gOq3nOq4sA0KK+q5gOuPmeunjA0KK+q5gOq4sOu0iQ0KK+q5gOq0keq2jA0KK+q5gO2XjOyErQ0KK+q5gOyepeyLnQ0KK+q5gOq4sOu2hA0KK+q5gOuqheyEoA0KK+q5gOuzkeyInA0KK+q5gOyDge2biA0KK+q5gOq4sOyCvA0KK+q5gOyInOqyvQ0KK+q5gOyDgeyImA0KK+q5gOyYgeyIoA0KK+q5gOq4sOyEnQ0KK+q5gOunjO2drA0KK+q5gOyepeuMgA0KK+q5gOyImOyglQ0KK+q5gOq4sOyEnQ0KK+q5gOyDgeyyoA0KK+q5gOuPmeyXtA0KK+q5gOyEoO2YhA0KK+q5gOq4sOyEoA0KK+q5gOq0keuMgA0KK+q5gOyYgeyXtA0KK+q5gOydmOyLnQ0KK+q5gOq4sOyEsQ0KK+q5gO2PieyImA0KK+q5gOq4iOuemA0KK+q5gO2drO2VmA0KK+q5gOq4sOyImA0KK+q5gO2VtOu2hA0KK+q5gOyGjOuCqA0KK+q5gOyEoOq4sA0KK+q5gOq4sOyImA0KK+q5gOygleykgA0KK+q5gOq0keuPmQ0KK+q5gOuPmeyYgQ0KK+q5gOq4sOyImA0KK+q5gOyerOuhnQ0KK+q5gOyiheyImQ0KK+q5gOywqOyImA0KK+q5gOq4sOyImA0KK+q5gOyiheyerA0KK+q5gOyWkeqyvQ0KK+q5gO2DnOq4sA0KK+q5gOq4sOyImA0KK+q5gOyekOydgA0KK+q5gOyYgeyyoA0KK+q5gO2VnOyLnQ0KK+q5gOq4sOyImA0KK+q5gO2DnOyImA0KK+q5gO2YgeyYpA0KK+q5gOyEseyYgQ0KK+q5gOq4sOyInA0KK+q5gOykgOyImQ0KK+q5gCDsi50NCivquYDshLHrs5ENCivquYDquLDsiKANCivquYDsnbzqt5wNCivquYDrs5HqtowNCivquYDsmqntlZwNCivquYDquLDsiKANCivquYDqtJHsm5ANCivquYDtg5zqt5wNCivquYDsnZjsmKQNCivquYDquLDsi50NCivquYDtg5zsiJkNCivquYDsiJztlZgNCivquYDqt5zqtawNCivquYDquLDsi50NCivquYDsg4HshJ0NCivquYDtg5zsmrANCivquYDsm5DsnKQNCivquYDquLDsi50NCivquYDsoJXsnqwNCivquYDtmqjsnbwNCivquYDsp4TshJ0NCivquYDquLDsi50NCivquYDsp4TsiKANCivquYDrs5HsspwNCivquYDsmqntm4gNCivquYDquLDsi50NCivquYDsnqzsnqwNCivquYDsmIHsl7QNCivquYDqsr3smKUNCivquYDquLDsl7ANCivquYDsmIHqsbQNCivquYDqt7zsiJwNCivquYDslZTspIANCivquYDquLDsl7ANCivquYDtlYTsl7QNCivquYDrtInshJ0NCivquYDsp4TsmqkNCivquYDquLDsl7QNCivquYDsmYTsmKUNCivquYDshJ3tmIQNCivquYDrrLTshLgNCivquYDquLDsmIENCivquYDsmqnri6wNCivquYDrs5HquLANCivquYDqsJHtmZgNCivquYDquLDsmKUNCivquYDtmJXtmIQNCivquYDquIjruYgNCivquYDtjJDsmKUNCivquYDquLDsmqkNCivquYDquLDshJ0NCivquYDtg5zssqANCivquYDqtozsmIENCivquYDquLDsmqkNCivquYDshKDsm5ANCivquYDsi6DrsLANCivquYDsnqzrr7gNCivquYDquLDsmqkNCivquYDrj4Tqt5wNCivquYDsnKTsobANCivquYDsooXslZQNCivquYDquLDsm5ANCivquYDsiJzquLANCivquYDtmY3qt5wNCivquYDqsJXsmrANCivquYDquLDsm5ANCivquYDtnazsiJwNCivquYDtg5zslYUNCivquYDsm5DshKANCivquYDquLDsm5ANCivquYDqs7XqtowNCivquYDsiJjrj5kNCivquYDsmIHtmZgNCivquYDquLDsoJUNCivquYDtlbTrr7gNCivquYDsnKTsnbUNCivquYDsoJXsiJwNCivquYDquLDspIANCivquYDsooXtlZkNCivquYDrqoXtnawNCivquYDsjI3tmZQNCivquYDquLDspIANCivquYDsnqzqt5wNCivquYDtg5ztnawNCivquYDquLDtmZQNCivquYDquLDspJENCivquYDsnbjtmLgNCivquYDsi6TquLANCivquYDrrLjshK0NCivquYDquLDssqANCivquYDsoJXsg50NCivquYDslYjrjZUNCivquYDquLDqt7wNCivquYDquLDssqANCivquYDshozsiJgNCivquYDqtoztg5wNCivquYDtg5zsspwNCivquYDquLDssqANCivquYDsooXsoJUNCivquYDsnqztlZkNCivquYDtlZnsiJgNCivquYDquLDtg5wNCivquYDsmqnsi50NCivquYDsoJXsp4QNCivquYDtmLjsp4QNCivquYDquLDtlYQNCivquYDsiJjshJ0NCivquYDtg5zsnpANCivquYDrs5HsmrQNCivquYDquLDtmIQNCivquYDssKjqt7wNCivquYDsm5DrjZUNCivquYDqt7zshJ0NCivquYDquLDtmIQNCivquYDrj5ntnawNCivquYDsiJzsoJUNCivquYDsiJzsiJgNCivquYDquLDtmJENCivquYDrhbjsiJkNCivquYDsoJXtmLgNCivquYDsnqzrtoQNCivquYDquLDtmLgNCivquYDri6zsiKANCivquYDrhbjtm4gNCivquYDrj5nrs7QNCivquYDquLDtmLgNCivquYDsoJDsp4QNCivquYDsg4HtnawNCivquYDsnZjtg4ENCivquYDquLDtmLgNCivquYDsnKTsmqkNCivquYDtg5ztm4gNCivquYDsmIHsooUNCivquYDquLDtmLgNCivquYDtlZjrsLANCivquYDsmIHsl7QNCivquYDsp4TtmIQNCivquYDquLDtmY0NCivquYDrj5nsmIENCivquYDsiJztg5wNCivquYDsiJztnawNCivquYDquLDtmY0NCivquYDsmqnsm5ANCivquYDrs5HtlZwNCivquYDshLHsiJgNCivquYDquLDtmY0NCivquYDsnqzsi50NCivquYDsg4Hsm5ANCivquYDtjJDtmJUNCivquYDquLDtmZgNCivquYDssqDrspQNCivquYDso7zrtIkNCivquYDrtInsl7QNCivquYDquLDtmZgNCivquYDqtoHsnKgNCivquYDqs6TshJ0NCivquYDsiJzsnqwNCivquYDquLDtmZgNCivquYDsg4Hqsr0NCivquYDsiJjspIANCivquYDtg5zsmrANCivquYDquLDtnawNCivquYDsnbzsnpANCivquYDsg4HtnLQNCivquYDsnqzshJ0NCivquYDquLjrj5kNCivquYDrs5HqsJUNCivquYDtnaXsiJwNCivquYDrr7jssqANCivquYDquLjrj5kNCivquYDtlZnqt5wNCivquYDssL3qt5wNCivquYDrs5HroZ0NCivquYDquLjsg4ENCivquYDqsr3rrLgNCivquYDqsr3smqkNCivquYDrj5nsp4ANCivquYDquLjsiJgNCivquYDquLDsspwNCivquYDsmqnshKANCivquYDrgpnquLgNCivquYDquLjtmZgNCivquYDsmrTsiKANCivquYDtg53smIENCivquYDsnKTtg5wNCivquYDrgpjsp4TsnpANCivquYDsoJXsiJjsmqkNCivquYDsm5DsmrDsmIENCivquYDsoJXsiJzsoJUNCivquYDrgpjtmIQNCivquYDsmqnrj5kNCivquYDsp4DsmIENCivquYDsirnqtowNCivquYDrgpnrj5kNCivquYDsg4Htg5wNCivquYDsmIHro6ENCivquYDtmITtmLgNCivquYDrgpntmLgNCivquYDsiJjsg4ENCivquYDrtIntkZwNCivquYDrtoDtmIQNCivquYDrgpzsnbQNCivquYDsoJDqsrgNCivquYDspIDqtowNCivquYDtnazsiKANCivquYDrgqjqt7wNCivquYDtmJztmLgNCivquYDsspzsnbwNCivquYDrp4zsnbQNCivquYDrgqjquLANCivquYDsirnrp4wNCivquYDsnbjrjIANCivquYDsnqzsl7ANCivquYDrgqjsiJgNCivquYDsl7DtnawNCivquYDshLHtmLgNCivquYDtlbTtg4ENCivquYDrgqjsiJgNCivquYDssKjtmLgNCivquYDsooXtmLgNCivquYDsoJXsmKUNCivquYDrgqjsiJgNCivquYAg7JilDQor6rmA7J6E7J20DQor6rmA7JiB7ZGcDQor6rmA64Ko7IicDQor6rmA7J2864usDQor6rmA7Z2s7Z2sDQor6rmA7ZiE67CwDQor6rmA64Ko7JqpDQor6rmA7J6s7J21DQor6rmA7YOc6rWsDQor6rmA7ZW07JqwDQor6rmA64Ko7JqwDQor6rmA7ZeM7ISgDQor6rmA6rK97ISgDQor6rmA7LmY7ISdDQor6rmA64Ko7J20DQor6rmA7KCV7KCVDQor6rmA6rOh6riwDQor6rmA64+Z7JuQDQor6rmA64Ko7KGwDQor6rmA7LGE7ZiEDQor6rmA642V7J28DQor6rmA66eM6re8DQor6rmA64W47IiYDQor6rmA64+Z7IudDQor6rmA7ZiE7J6QDQor6rmA7LC97LKgDQor6rmA64uk64KoDQor6rmA7IiY7JuFDQor6rmA7ZW07KO8DQor6rmA7LCs6rOEDQor6rmA64us66eJDQor6rmA7LKg7Zi4DQor6rmA7KKF6rOkDQor6rmA67OR7J28DQor6rmA64us66eJDQor6rmA7ZmN7JWgDQor6rmA6riw7ISxDQor6rmA7KKF7JuQDQor6rmA64us67aEDQor6rmA7LmY7Zi4DQor6rmA7Jm47ISgDQor6rmA6rK96rWQDQor6rmA64us7ISxDQor6rmA7Jew7ZmYDQor6rmA7J6s7Zi4DQor6rmA66y47JWUDQor6rmA64us7IiYDQor6rmA64+Z67SJDQor6rmA7JiB7ZiEDQor6rmA7JiB66eMDQor6rmA64us7IudDQor6rmA7LKc6rOkDQor6rmA65GQ7JilDQor6rmA7KeA7JqpDQor6rmA64us7IudDQor6rmA7IaM6re8DQor6rmA7Iic7IigDQor6rmA7JiB7JuFDQor6rmA64us7JWUDQor6rmA7YOc6rWwDQor6rmA67O17IiYDQor6rmA7KCV7ZmYDQor6rmA64us7JygDQor6rmA6rSR7IiZDQor6rmA7Iic6riwDQor6rmA7Jil7KSADQor6rmA64us7YOcDQor6rmA7ISg65+JDQor6rmA66+47IigDQor6rmA7IaM7KeADQor6rmA64us7Zi4DQor6rmA7KCV7ZmYDQor6rmA67OR7IStDQor6rmA6ri47JqwDQor6rmA64us7ZmUDQor6rmA7ZWE7ZalDQor6rmA7JiB7J6QDQor6rmA7JiB642VDQor6rmA64yA6rK9DQor6rmA7IOB67SJDQor6rmA7IiY7IudDQor6rmA7ISx7YOcDQor6rmA64yA6recDQor6rmA66+465OdDQor6rmA7Jyk7KSADQor6rmA7JiB7YOdDQor6rmA64yA6riwDQor6rmA7ZiE7ZWEDQor6rmA7KeE7ZiEDQor6rmA66y064KoDQor6rmA64yA6riwDQor6rmA7IOB7IudDQor6rmA7ISx7ZiBDQor6rmA7Jyk67O1DQor6rmA64yA7ISdDQor6rmA7Zmp66eMDQor6rmA7J6l642VDQor6rmA7ISx7ZmNDQor6rmA64yA7ISxDQor6rmA7LKg7ZeMDQor6rmA7IOB7JuQDQor6rmA7J6s7ZmYDQor6rmA64yA7IiYDQor6rmA7IOB6riwDQor6rmA7ISx7LKgDQor6rmA7Iq57LacDQor6rmA64yA7IudDQor6rmA67OR6riwDQor6rmA7J6s7ZmUDQor6rmA7LCs7JiBDQor6rmA64yA7IudDQor6rmA7KCV7LKgDQor6rmA65Od7KGwDQor6rmA7IOB6re8DQor6rmA64yA7IudDQor6rmA66+87LKgDQor6rmA7KCV7KO8DQor6rmA7KKF6raMDQor6rmA64yA7JewDQor6rmA7Iic7IigDQor6rmA7Zqo7ISgDQor6rmA66y07IOBDQor6rmA64yA7JqpDQor6rmA7J2A66+4DQor6rmA6rec7ISdDQor6rmA7ZiE7ZmYDQor6rmA64yA7JuQDQor6rmA7J6s7LC9DQor6rmA7ZiV7J6EDQor6rmA66qF66eMDQor6rmA64yA7JykDQor6rmA6riw7JewDQor6rmA6rK97ISdDQor6rmA7KKF66GADQor6rmA64yA7J2RDQor6rmA7IiY7LacDQor6rmA64KZ7ZmYDQor6rmA7J287IukDQor6rmA64yA7J28DQor6rmA64+E7LKgDQor6rmA67O07Zi4DQor6rmA7J6E7LKgDQor6rmA64yA7J28DQor6rmA7Z2s7KSADQor6rmA7J2E7ISdDQor6rmA7Jyk6riwDQor6rmA64yA7KKFDQor6rmA64+Z66eMDQor6rmA7J6s7ZmUDQor6rmA642V67CpDQor6rmA64yA7KeEDQor6rmA7KCV7JilDQor6rmA67SJ7ZqMDQor6rmA7KO87JuQDQor6rmA64yA7ZiEDQor6rmA7IOB6raMDQor6rmA7LaY7JikDQor6rmA7Jqp7LC9DQor6rmA64yA7ZiEDQor6rmA64yA7Zi4DQor6rmA67O17ISdDQor6rmA7ISx7Zy0DQor6rmA64yA7ZiEDQor6rmA7IOB7YOdDQor6rmA7Jyk7Z2sDQor6rmA64W46rOkDQor6rmA64yA7Zi4DQor6rmA6rO87IiYDQor6rmA7J6s7IiYDQor6rmA67SJ7ISxDQor6rmA64yA7ZmYDQor6rmA6riw7IiYDQor6rmA6rOE7ZWcDQor6rmA7ISx7ISdDQor6rmA64yA7Z2sDQor6rmA7J2A7ZmYDQor6rmA7KKF7Je0DQor6rmA67OR7Z2sDQor6rmA642V6rOgDQor6rmA7IOB67mIDQor6rmA7ZW06rOkDQor6rmA7KKF66eMDQor6rmA642V6rOkDQor6rmA7J287IiYDQor6rmA6riw7ISxDQor6rmA7J6l7ISdDQor6rmA642V66asDQor6rmA6riw7JuQDQor6rmA7KeA7KCVDQor6rmA7Iq57Zi4DQor6rmA642V66a8DQor6rmA66eM66y4DQor6rmA6riI7KCVDQor6rmA6rCV64+ZDQor6rmA642V66eMDQor6rmA7KKF67CwDQor6rmA67SJ7IudDQor6rmA7KCV7ZGcDQor6rmA642V7IiYDQor6rmA7IOB7IiYDQor6rmA7KCV7Z2sDQor6rmA7JiB7KGwDQor6rmA642V7IiYDQor6rmA7YOc66GcDQor6rmA7Jew7LKgDQor6rmA7KO87JqpDQor6rmA642V7IicDQor6rmA7IOB7Je0DQor6rmA7KKF6riwDQor6rmA7ZmU6rCRDQor6rmA642V7IicDQor6rmA7ISx65GQDQor6rmA7IiY7JewDQor6rmA7ZWY66y1DQor6rmA642V7JewDQor6rmA6reA7ZiEDQor6rmA7Jm47ZWcDQor6rmA6rSR7J6QDQor6rmA642V7JewDQor6rmA7ISx7J20DQor6rmA7ZWc6recDQor6rmA7KKF67CwDQor6rmA642V7Je0DQor6rmA7J6E7LaYDQor6rmA7J6s6recDQor6rmA7IOB7ZiEDQor6rmA642V7JqpDQor6rmA7Jqp7JmEDQor6rmA7ZW07JqpDQor6rmA7ISg7JuFDQor6rmA642V7JuQDQor6rmA64Ko66eMDQor6rmA7LC964+MDQor6rmA7IiY6rOkDQor6rmA642V7KGwDQor6rmA7ZiE7IK8DQor6rmA7JiB6rWsDQor6rmA7KSA7KCcDQor6rmA642V7KGwDQor6rmA6rK96recDQor6rmA7YOc6recDQor6rmA7J247LKgDQor6rmA642V7KSRDQor6rmA7ISx66GcDQor6rmA7ISd7IudDQor6rmA66y07IiYDQor6rmA642V7ZW0DQor6rmA7Zi47LKgDQor6rmA7ZmN7LC9DQor6rmA7JuQ7ZyYDQor6rmA64+E6rK9DQor6rmA7YOc7KO8DQor6rmA6rK97ISgDQor6rmA7IiY7JuQDQor6rmA64+E6riwDQor6rmA7IOB7KKFDQor6rmA64+Z64yADQor6rmA6riw7IiYDQor6rmA64+E7JWUDQor6rmA7JiB7ZuIDQor6rmA7KO86regDQor6rmA7Zic7IiZDQor6rmA64+E7JiBDQor6rmA67SJ6raMDQor6rmA7YOc66+4DQor6rmA67SJ6ri4DQor6rmA64+E7JuQDQor6rmA7JiB6re8DQor6rmA64W466qpDQor6rmA7KCV66eQDQor6rmA64+E7JykDQor6rmA7YOc7IicDQor6rmA7IS47IudDQor6rmA7J6s7Z2sDQor6rmA64+E7KSRDQor6rmA7Lmg7JqpDQor6rmA7ISx7JiBDQor6rmA7J6s6rOkDQor6rmA64+E7ZWcDQor6rmA6rSR642VDQor6rmA7ISx6recDQor6rmA66qF7Jq0DQor6rmA64+E7ZuIDQor6rmA7LCo7JilDQor6rmA67SJ6rCRDQor6rmA6rCV66qoDQor6rmA64+E7Z2sDQor6rmA7Jqp7ISgDQor6rmA7ZW07J28DQor6rmA7J6s7JikDQor6rmA64+Z6rOkDQor6rmA7J207ISdDQor6rmA7Jqp7YOdDQor6rmA7ISx7ISdDQor6rmA64+Z6raMDQor6rmA7YOc67ORDQor6rmA7J2864+EDQor6rmA7J247IudDQor6rmA64+Z6re8DQor6rmA6rG0642VDQor6rmA7KCV67O1DQor6rmA7JiB7J28DQor6rmA64+Z6riwDQor6rmA7Jqp64yADQor6rmA7Z2l6riwDQor6rmA64yA7Zi4DQor6rmA64+Z6riwDQor6rmA6rK965GQDQor6rmA7J6E7Zi4DQor6rmA7Iq57IiYDQor6rmA64+Z6riwDQor6rmA7IiY7Jq0DQor6rmA66qF642VDQor6rmA66qF7ZmYDQor6rmA64+Z6ri4DQor6rmA6riw66qoDQor6rmA67O17ISgDQor6rmA7JiB7IiYDQor6rmA64+Z64KoDQor6rmA7Jyk66eMDQor6rmA7KCV7IicDQor6rmA7ISg7IicDQor6rmA64+Z66GADQor6rmA66qF7IiYDQor6rmA6rCV7IiZDQor6rmA7ISd65OdDQor6rmA64+Z66eMDQor6rmA7YOc7ZmYDQor6rmA7IyN7ZqoDQor6rmA7IK87Z2sDQor6rmA64+Z7IStDQor6rmA7IOB7JewDQor6rmA7Jyg7JuQDQor6rmA7J6l6raMDQor6rmA64+Z7ISxDQor6rmA7ZW06rK9DQor6rmA6rK97ISgDQor6rmA7ISg66GdDQor6rmA64+Z7ISxDQor6rmA6rWw7JiBDQor6rmA66e57Zi4DQor6rmA6rCR7KSADQor6rmA64+Z7IiZDQor6rmA7JuU7ZmYDQor6rmA7YOc6rWQDQor6rmA7Jyk7IiYDQor6rmA64+Z7IicDQor6rmA7IOB7ISgDQor6rmA7J6s7LGEDQor6rmA66+46529DQor6rmA64+Z7IudDQor6rmA7IiZ66eMDQor6rmA7KKF7LacDQor6rmA7Jyk6riwDQor6rmA64+Z7IudDQor6rmA7ZWZ7ZWZDQor6rmA6riw6riwDQor6rmA7IiY7JqpDQor6rmA64+Z7Je0DQor6rmA7KSA7IicDQor6rmA66qF6rK9DQor6rmA67OR7ZmYDQor6rmA64+Z7Je0DQor6rmA7KCV66WgDQor6rmA6rSR64KoDQor6rmA7Jqp6recDQor6rmA64+Z7Je0DQor6rmA7J6s7J20DQor6rmA7YOc7IStDQor6rmA7J287ZmYDQor6rmA64+Z7JqpDQor6rmA7Jqx7JykDQor6rmA7ZeM7JqwDQor6rmA67OR7LKgDQor6rmA64+Z7JuQDQor6rmA7LCo6ri4DQor6rmA7KCV7J2ADQor6rmA7IKs7Je0DQor6rmA64+Z7KO8DQor6rmA7IOB65OdDQor6rmA7Lap7KO8DQor6rmA7Jqp7LCsDQor6rmA64+Z7KO8DQor6rmA7KSA642VDQor6rmA7ZmN7J2ADQor6rmA64+Z6re8DQor6rmA64+Z7KSADQor6rmA7ZmN7ZiVDQor6rmA7ZW07ZiEDQor6rmA7JiB6recDQor6rmA64+Z7KeEDQor6rmA7J6s6rSADQor6rmA7ZWE6rOkDQor6rmA7IiY7ZiEDQor6rmA64+Z7KeEDQor6rmA7Z2s7IK8DQor6rmA7ISx7ZuEDQor6rmA7J2464+ZDQor6rmA64+Z7LaYDQor6rmA7KCV66qpDQor6rmA7KCc7JqpDQor6rmA7YOc7IudDQor6rmA64+Z7LaYDQor6rmA7Jyk7IigDQor6rmA66qF6recDQor6rmA7JiB64usDQor6rmA64+Z7LaYDQor6rmA7J247ZiEDQor6rmA7KSR7ZiEDQor6rmA7Iq5656YDQor6rmA64+Z7ZiEDQor6rmA7Jqp7ZmUDQor6rmA7KeE7IiYDQor6rmA7KCV7ZqMDQor6rmA64+Z7Zi4DQor6rmA7Iic6rK9DQor6rmA67OR7IStDQor6rmA7IiY7ISdDQor6rmA64+Z7ZmYDQor6rmA7Jyk7JikDQor6rmA7KKF7IOBDQor6rmA66+47J20DQor6rmA64+Z7ZmYDQor6rmA7LaY6rK9DQor6rmA7KKF7IigDQor6rmA7ZWt6riwDQor6rmA64+Z7ZmYDQor6rmA67OR6rWsDQor6rmA7ISx7IudDQor6rmA7J287JqpDQor6rmA64+Z7ZmYDQor6rmA7ISd7JikDQor6rmA64KZ7IucDQor6rmA6rK97ISxDQor6rmA64+Z7ZmYDQor6rmA67OR7IiYDQor6rmA7J247JuFDQor6rmA7LC97LKgDQor6rmA64+Z7ZqoDQor6rmA7YOc7ZmNDQor6rmA64Ko7KSADQor6rmA7Jew7JuQDQor6rmA64+Z7ZqoDQor6rmA7KCV7IudDQor6rmA6rWs6recDQor6rmA6rec7J6EDQor6rmA65GQ7IudDQor6rmA7LC97Zi4DQor6rmA6re87IicDQor6rmA66y065GUDQor6rmA65GQ7JewDQor6rmA7Z2s64usDQor6rmA7JiB7KSADQor6rmA7JuQ7KGwDQor6rmA65GQ7JewDQor6rmA7JiB7IiZDQor6rmA7J246rOkDQor6rmA7J247J28DQor6rmA65GQ7JmEDQor6rmA7LCo7IOdDQor6rmA7IOB64+ZDQor6rmA7LC964WEDQor6rmA65GQ7LKcDQor6rmA7JuQ7Zi4DQor6rmA66eM66eMDQor6rmA7YOc7IOBDQor6rmA65GQ7LacDQor6rmA7LaY7KCVDQor6rmA7KCV7IicDQor6rmA7Iic6rG0DQor6rmA65GQ7Zi4DQor6rmA7KCV7JiBDQor6rmA7Jqp7Z2sDQor6rmA67KU67CxDQor6rmA65GQ7ZmYDQor6rmA7J6s6recDQor6rmA7IOB7J6EDQor6rmA7ZWE7ZmYDQor6rmA65GQ7Z2sDQor6rmA7JiB7LKgDQor6rmA7ZWY7Je0DQor6rmA7KKF7KGwDQor6rmA65Od6recDQor6rmA7YyQ6rSADQor6rmA7KCV7ZuIDQor6rmA7IOB7LKcDQor6rmA65Od7ISdDQor6rmA7JiB7ZWZDQor6rmA7ZmN6rK9DQor6rmA64yA7Zy0DQor6rmA65Od7JqpDQor6rmA7YOc6rWsDQor6rmA7J247IiYDQor6rmA7ZW06recDQor6rmA65Ox6ri4DQor6rmA7Iic7JuFDQor6rmA7J6s7JqwDQor6rmA66eQ7ZmUDQor6rmA66eM6regDQor6rmA7ZuE7IusDQor6rmA7ISg7Z2sDQor6rmA7JiB7ZiEDQor6rmA66eM6riIDQor6rmA7KKF7IiZDQor6rmA7KCV65GQDQor6rmA7Jq07Zi4DQor6rmA66eM6riIDQor6rmA67OR7ZiEDQor6rmA7YOc7IigDQor6rmA7J247Z2sDQor6rmA66eM6ri4DQor6rmA7KeA7KSADQor6rmA642V66eMDQor6rmA7IS47ZiEDQor6rmA66eM6ri4DQor6rmA66eM66y4DQor6rmA7LGE7IStDQor6rmA6rK964KoDQor6rmA66eM64usDQor6rmA7IOB7ZWcDQor6rmA7Jqp6ri4DQor6rmA7JiB6recDQor6rmA66eM642VDQor6rmA6rWt7IiYDQor6rmA66+47ZmNDQor6rmA7ZiE7JmEDQor6rmA66eM642VDQor6rmA7IiY7IiYDQor6rmA7J6s7JikDQor6rmA7KCV7Zi4DQor6rmA66eM64+EDQor6rmA7Jqw64usDQor6rmA7ZWc7IudDQor6rmA7YOc7JqpDQor6rmA66eM65OdDQor6rmA6riw6rCRDQor6rmA7Lmg7IudDQor6rmA7JmE6rWsDQor6rmA66eM67O1DQor6rmA67O17JqpDQor6rmA7J207KKFDQor6rmA7ISd7JilDQor6rmA66eM7ISdDQor6rmA67OR7IStDQor6rmA7ISx7JuQDQor6rmA7J6E6recDQor6rmA66eM7ISgDQor6rmA642V7KGwDQor6rmA7LCo7IicDQor6rmA7YOc7JWgDQor6rmA66eM7IiYDQor6rmA7Zqo67SJDQor6rmA66y46rSRDQor6rmA7YOc7YyQDQor6rmA66eM7IiYDQor6rmA6riI7KO8DQor6rmA67SJ7IiYDQor6rmA67OR7IigDQor6rmA66eM7IiYDQor6rmA66ek64usDQor6rmA7Jyk7ISxDQor6rmA7J6s7ZiEDQor6rmA66eM7IigDQor6rmA7Jqp7Zi4DQor6rmA6riI7ZmYDQor6rmA7Iic7Zi4DQor6rmA66eM7Je0DQor6rmA7ZmN7Je0DQor6rmA7J6l6raMDQor6rmA7J247ISdDQor6rmA66eM7JqpDQor6rmA7IOB642VDQor6rmA7KSA6rOkDQor6rmA7KKF7IicDQor6rmA66eM7JuQDQor6rmA7LC97Zi4DQor6rmA7ZW07J6QDQor6rmA7JuQ7LKgDQor6rmA66eM7JuQDQor6rmA7JiB7IicDQor6rmA7KeA6re8DQor6rmA7LC97LKgDQor6rmA66eM7J20DQor6rmA7IOB7IicDQor6rmA7JiB7Y+JDQor6rmA64yA7IiYDQor6rmA66eM7KGwDQor6rmA7J6Q7Je0DQor6rmA7IiZ7Zi4DQor6rmA7KCV64+EDQor6rmA66eM7KKFDQor6rmA64+Z7ISxDQor6rmA7KeA7LacDQor6rmA7KKF6regDQor6rmA66eM7YOcDQor6rmA64+Z6re8DQor6rmA7ISd6re8DQor6rmA7ISd7J6sDQor6rmA66eM7ZuIDQor6rmA7KCV7IiYDQor6rmA7IOB64+EDQor6rmA7LC96recDQor6rmA66eQ64KcDQor6rmA67O17Je0DQor6rmA7Z2s7Zi4DQor6rmA7Z2s642VDQor6rmA66eQ656YDQor6rmA7Iq56riwDQor6rmA7Iic7IiYDQor6rmA64+Z67SJDQor6rmA66eQ66CoDQor6rmA7KCV7Zi4DQor6rmA7Lac7JuQDQor6rmA7Jil7KeEDQor6rmA66eQ67aEDQor6rmA7YOc7JewDQor6rmA7LCo6riIDQor6rmA7Jyk6raMDQor6rmA66eQ7ISdDQor6rmA6riw656YDQor6rmA7J6s7JiBDQor6rmA7Iic7J6EDQor6rmA66eQ7ISgDQor6rmA64us7LKgDQor6rmA6rSR7JykDQor6rmA67O17KSADQor6rmA66eQ7IiYDQor6rmA7KSA7ISgDQor6rmA7YOc66GdDQor6rmA64us6riwDQor6rmA66eQ7IigDQor6rmA64+Z7JqwDQor6rmA7YOc6rWtDQor6rmA7IiY7J20DQor6rmA66eQ7JWUDQor6rmA7JiB7IigDQor6rmA7YyQ7JiBDQor6rmA7J287IiZDQor6rmA66eQ7J20DQor6rmA7Iic67aEDQor6rmA6rG06rOkDQor6rmA7KCV7JmVDQor6rmA66eQ7J6EDQor6rmA7Jqp6rWtDQor6rmA64+Z7KKFDQor6rmA7YOc7Zi4DQor6rmA66eQ7KGwDQor6rmA7LKg642VDQor6rmA66qF6recDQor6rmA6rSR7J6QDQor6rmA66e57ZmYDQor6rmA7ZWc64usDQor6rmA7JiB6re8DQor6rmA6re57J20DQor6rmA66qF6rOkDQor6rmA7Iig66eMDQor6rmA7J287J20DQor6rmA7YyQ64yADQor6rmA66qF6rOkDQor6rmA7IaM7ZalDQor6rmA6riw7Zi4DQor6rmA7J6s66WgDQor6rmA66qF6rWtDQor6rmA7IOB7Zi4DQor6rmA7LCo7Z2sDQor6rmA7KKF7Zi4DQor6rmA66qF6recDQor6rmA7Jyk67KUDQor6rmA7YOc64KoDQor6rmA66qF7LKgDQor6rmA66qF6recDQor6rmA6rK97Zi4DQor6rmA7KKF64+MDQor6rmA64+Z7IudDQor6rmA66qF6529DQor6rmA6rCR6riwDQor6rmAIOyEoA0KK+q5gOyKueycpA0KK+q5gOuqheyErQ0KK+q5gOuzkeyInA0KK+q5gOyKueyImA0KK+q5gOyEse2doA0KK+q5gOuqheyImA0KK+q5gOywqO2YuA0KK+q5gOustOq2jA0KK+q5gOyImeyInA0KK+q5gOuqheyImA0KK+q5gO2DnO2ZmA0KK+q5gOuvuOyjvA0KK+q5gO2VtOq1rQ0KK+q5gOuqheyImQ0KK+q5gOygkOyImA0KK+q5gO2ZlOq1rA0KK+q5gO2DnOq4sA0KK+q5gOuqheyImQ0KK+q5gOuzkeuNlQ0KK+q5gOywveuMgA0KK+q5gOyViO2ZjQ0KK+q5gOuqheyImQ0KK+q5gO2DnOyImA0KK+q5gOuqheyLnQ0KK+q5gOyiheyInA0KK+q5gOuqheyInA0KK+q5gO2DnOyhsA0KK+q5gOyYpO2ZlA0KK+q5gOyaqeyImA0KK+q5gOuqheyInA0KK+q5gO2DnOydtA0KK+q5gO2YhOqzpA0KK+q5gOyehOq1rA0KK+q5gOuqheyInA0KK+q5gOyYge2ZlA0KK+q5gOygleyhsA0KK+q5gOyYpeyImQ0KK+q5gOuqheyInA0KK+q5gOq3nO2ZlA0KK+q5gOyEseyihQ0KK+q5gOq3gOykgA0KK+q5gOuqheyLnQ0KK+q5gOydhOydgA0KK+q5gOuPhOuwnA0KK+q5gOyatOuemA0KK+q5gOuqheyVoA0KK+q5gOusuO2YuA0KK+q5gO2DnOqyvQ0KK+q5gOybkOyInA0KK+q5gOuqheyYpA0KK+q5gOydvOyImQ0KK+q5gOycpO2drA0KK+q5gO2ZmOyEuA0KK+q5gOuqheyYpQ0KK+q5gOuPhO2YuA0KK+q5gOyxhOyaqQ0KK+q5gOuRkOyXtA0KK+q5gOuqheyekA0KK+q5gO2YhOyekA0KK+q5gOyDgeuTnQ0KK+q5gOyImOyZhA0KK+q5gOuqheyekA0KK+q5gOusuOycqA0KK+q5gOq3nOyInA0KK+q5gO2DnOyZhA0KK+q5gOuqheyglQ0KK+q5gO2ZjeyYgQ0KK+q5gOq3nO2YuA0KK+q5gOyYge2DnA0KK+q5gOuqheykkQ0KK+q5gOyEseyGjA0KK+q5gOyInO2DnQ0KK+q5gOyghOq3nA0KK+q5gOuqheynhA0KK+q5gO2VreuztQ0KK+q5gOyInOuemA0KK+q5gOynhOq4iA0KK+q5gOuqheynhA0KK+q5gOy2mOq3nA0KK+q5gOygleyLnQ0KK+q5gOuCnOyYgQ0KK+q5gOuqheyyoA0KK+q5gOyiheyYgQ0KK+q5gOyekOyInA0KK+q5gOyEseu2lQ0KK+q5gOuqheyyoA0KK+q5gO2DnOycpA0KK+q5gOydvOyIoA0KK+q5gOq0keuhgA0KK+q5gOuqhey2nA0KK+q5gOy2mO2ZlA0KK+q5gOyGjO2drA0KK+q5gOyInOq4sA0KK+q5gOuqhey2nA0KK+q5gOunjOydtA0KK+q5gOygleyWkQ0KK+q5gO2DnOyyoA0KK+q5gOuqhey2nA0KK+q5gOyInOynhA0KK+q5gOuCmeyImQ0KK+q5gOyEseqzpA0KK+q5gOuqhe2VmA0KK+q5gOyerOyImA0KK+q5gOuPme2YuA0KK+q5gOywveyEnQ0KK+q5gOuqhe2VmQ0KK+q5gOuCqO2YuA0KK+q5gO2DnOyXtA0KK+q5gOyInOq3nA0KK+q5gOuqhe2YuA0KK+q5gOyEneydvA0KK+q5gOyerOu2hA0KK+q5gOq0gOyInA0KK+q5gOuqhe2ZlA0KK+q5gOyDgeyyoA0KK+q5gOydvO2YuA0KK+q5gOuvvOyYgQ0KK+q5gOuqhe2ZmA0KK+q5gOygleyImA0KK+q5gOq4uOuPmQ0KK+q5gOywqOq4uA0KK+q5gOuqhe2drA0KK+q5gOyDge2ZlA0KK+q5gOyDgeyLnQ0KK+q5gOuPmeyYpQ0KK+q5gOuqhe2drA0KK+q5gOq4sO2drA0KK+q5gOqyveqwgA0KK+q5gOyInOq4sA0KK+q5gOuqhe2drA0KK+q5gOyDge2YhA0KK+q5gOq4sO2DnA0KK+q5gOuRkOq1rA0KK+q5gOusmOyblA0KK+q5gOuzkeyjvA0KK+q5gOyerOq1kA0KK+q5gOq4sOyglQ0KK+q5gOustOq3vA0KK+q5gOyepeyEoA0KK+q5gOqwkeydvA0KK+q5gO2XjOyerA0KK+q5gOustOq4iA0KK+q5gOunjOy2nA0KK+q5gOyEseyLnQ0KK+q5gOqzhOyInA0KK+q5gOustOuwsA0KK+q5gOuLrO2ctA0KK+q5gOuCqOyhsA0KK+q5gOyerOqzpA0KK+q5gOustOuwsA0KK+q5gOq4uOykgA0KK+q5gOyerOyyoA0KK+q5gOyerOuTnQ0KK+q5gOustOyEoA0KK+q5gOq0keuPmQ0KK+q5gOuzkeynhA0KK+q5gO2DnO2DgQ0KK+q5gOustOyLnQ0KK+q5gOuzkeuMgA0KK+q5gOyEseq1rA0KK+q5gOyEse2YhA0KK+q5gOustOyXsA0KK+q5gOq3nO2YuA0KK+q5gO2VtOyaqQ0KK+q5gOqzhOyLnQ0KK+q5gOustOyXtA0KK+q5gOqyve2YuA0KK+q5gOuylOyekA0KK+q5gOyDge2DgQ0KK+q5gOustOyXtA0KK+q5gO2DnOqwkQ0KK+q5gOychOyImA0KK+q5gOynhOy2nA0KK+q5gOustOyyoA0KK+q5gO2ZmOydvA0KK+q5gO2YhOyImA0KK+q5gOyerOq3nA0KK+q5gOustO2DnA0KK+q5gOuzteyasQ0KK+q5gCDsi50NCivquYDsooXsmIENCivquYDrrLTtmIQNCivquYDrrLTsiJgNCivquYDrqoXsiJgNCivquYDrp4zsobANCivquYDrrLTtmLgNCivquYDsooXsiJgNCivquYDtg5ztmZgNCivquYDtmY3slrgNCivquYDrrLTtmZgNCivquYDqt4DsmqkNCivquYDqtIDsspwNCivquYDqt5zsi50NCivquYDrrLTtmZgNCivquYDshozrj5kNCivquYDsnYTrj4wNCivquYDsnKTsnbQNCivquYDrrLjqtawNCivquYDsmIHqt6ANCivquYDsnqzsiJgNCivquYDshLHshJ0NCivquYDrrLjquLANCivquYDsoJXqtIANCivquYDtg5ztmY0NCivquYDquLDshK0NCivquYDrrLjrj4wNCivquYDsooXtnawNCivquYDquLDsspwNCivquYDtjJDtnawNCivquYDrrLjrsLANCivquYDsiJzsl7ANCivquYDqtZDsiJgNCivquYDsooXrtIkNCivquYDrrLjrsLANCivquYDshLHsmKUNCivquYDsmqnrj4QNCivquYDsg4HsiJgNCivquYDrrLjsiJgNCivquYDrqr3qs6QNCivquYDsnqztnawNCivquYDssL3si50NCivquYDrrLjsiJgNCivquYDtjJDshKANCivquYDrs5Hsi50NCivquYDsmIHqs6QNCivquYDrrLjsiJgNCivquYDsiJjsm5ANCivquYDtg5zqtJENCivquYDsnbjtnawNCivquYDrrLjsi50NCivquYDrj5nrprwNCivquYDshKDquLANCivquYDsoJXrjZUNCivquYDrrLjsl7QNCivquYDshLHspIANCivquYDsm5DsobANCivquYDsnqzsmrANCivquYDrrLjsl7QNCivquYDsnKTrp4wNCivquYDsnqzspIANCivquYDsg4Hrj5kNCivquYDrrLjsmIENCivquYDsmIHsi50NCivquYDrtoTtlZgNCivquYDsnZjtlZgNCivquYDrrLjsmqkNCivquYDsnbzrs7QNCivquYDsoJXsiJgNCivquYDrp5Dso7wNCivquYDrrLjso7wNCivquYDshLHsm5ANCivquYDsnqzrp4wNCivquYDquLDsmrENCivquYDrrLjtmLgNCivquYDrqoXqta0NCivquYDsooXrj5kNCivquYDslrXsspwNCivquYDrr7jqsr0NCivquYDsi6DsmqkNCivquYDsmIHtnLQNCivquYDsiJjssqANCivquYDrr7jsiJkNCivquYDsmIHquLANCivquYDsmqnspIANCivquYDsnqzsiJgNCivquYDrr7jsmKUNCivquYDsspzqtawNCivquYDsmrTsp4QNCivquYDrs7TsmrANCivquYDrr7jsnpANCivquYDsooXqt7wNCivquYDsg4HtlYQNCivquYDri6zqt7wNCivquYDrr7jsoJUNCivquYDsgrzquLgNCivquYDqtJHqs6QNCivquYDshLHsiJwNCivquYDrr7jsoJUNCivquYDsg4HspIANCivquYDrs5HsiJwNCivquYDsmqnsl7ANCivquYDrr7zslaANCivquYDqt7zsl7QNCivquYDsmIHtmZgNCivquYDsmqnsmqkNCivquYDrr7zsmrANCivquYDrjZXtmIQNCivquYDqsJXsnKQNCivquYDqsIDtmLgNCivquYDrr7zsnpANCivquYDsnqXrs7UNCivquYDsnbjsobANCivquYDshLHsmIENCivquYDrr7zsoJUNCivquYDsnqztnawNCivquYDrs5HsnpANCivquYDtmY3tmLgNCivquYDrr7zssqANCivquYDsiJzsi50NCivquYDrqoXqtZANCivquYDsooXstpgNCivquYDrspTsiJgNCivquYDsmIHtm4gNCivquYDtlbTsi50NCivquYDsnbXsiJwNCivquYDrspTspIANCivquYDrs5HqtowNCivquYDrtInsl7ANCivquYDrs5HshK0NCivquYDrspTstpwNCivquYDquLDtmIQNCivquYDsnqXrkZANCivquYDtmqjqtawNCivquYDrspTtg5wNCivquYDslpHquLgNCivquYDtg5zsiJwNCivquYDsmqnsnqwNCivquYDrs5HqtIANCivquYDstqntm4gNCivquYDsmqnquLANCivquYDsiJjtmLgNCivquYDrs5HqtowNCivquYDsmIHtg50NCivquYDsg4HsiJgNCivquYDsp4TsmrENCivquYDrs5Hqt5wNCivquYDtmLjqsJANCivquYDrr7jrhbgNCivquYDrgpntmLgNCivquYDrs5Hqt7wNCivquYDqs4TquLANCivquYDtl4zrrLgNCivquYDsnbztmZgNCivquYDrs5HquLANCivquYDsmqnsiKANCivquYDsiJnsobANCivquYDsg4HsmrENCivquYDrs5Hri6wNCivquYDssKjshK0NCivquYDsg4HsmIENCivquYDstqnsmIENCivquYDrs5HrjZUNCivquYDqt5zsl7QNCivquYDsg4HspIANCivquYDrp4zsmrANCivquYDrs5HrjZUNCivquYDstqnsiJgNCivquYDsoJDrhbgNCivquYDslrjsi50NCivquYDrs5HroKQNCivquYDshqHtmLgNCivquYDsiJjrtIkNCivquYDsooXtnawNCivquYDrs5HroKgNCivquYDsooXqs6QNCivquYDsirnsiJkNCivquYDsooXsl7ANCivquYDrs5HrprwNCivquYDrhbjsiJkNCivquYDrj5nsmqkNCivquYDshLHqt6ANCivquYDrs5Hrp4wNCivquYDtmLjtnLQNCivquYDsiJjsnpANCivquYDrrLjrj4QNCivquYDrs5HsgrwNCivquYDshLHsm5ANCivquYDsmrDsiJkNCivquYDsm5DrtIkNCivquYDrs5HsgrwNCivquYDsnbjsiJgNCivquYDssL3siJwNCivquYDrj5nqta0NCivquYDrs5Hsg4ENCivquYDrs7jsnpANCivquYDqt5zsmYQNCivquYDsooXqsJENCivquYDrs5HsiJgNCivquYDsuZjsiJwNCivquYDrj5nsmIENCivquYDrs7TrqqgNCivquYDrs5HsiJgNCivquYDsl7DshJ0NCivquYDsiJjsiJwNCivquYDsmIHrj4QNCivquYDrs5HsiJgNCivquYDshJ3rnpgNCivquYDsooXsmIENCivquYDtmJzqtowNCivquYDrs5Hsi50NCivquYAg67aADQor6rmA64+E7JqpDQor6rmA66eM64+EDQor6rmA67OR7JewDQor6rmA7ZW07LaYDQor6rmA7KKF64+EDQor6rmA6rCV7IStDQor6rmA67OR7Je0DQor6rmA7IiZ7IicDQor6rmA7KCV7IiYDQor6rmA7Iq56ri4DQor6rmA67OR7JmEDQor6rmA7ISd6ri4DQor6rmA7Jyk7JqwDQor6rmA7Jqp67KUDQor6rmA67OR7JqpDQor6rmA7IaM66eMDQor6rmA64+Z6ri4DQor6rmA7Jqp6riwDQor6rmA67OR7JqwDQor6rmA7Jqp7KO8DQor6rmA66eQ7Je9DQor6rmA7J2A7IiYDQor6rmA67OR7JqwDQor6rmA67OR7JilDQor6rmA7JuQ6rWsDQor6rmA7Jqw7IiYDQor6rmA67OR7JuQDQor6rmA7LC966GdDQor6rmA64us7Zi4DQor6rmA7ZWE7KKFDQor6rmA67OR7J21DQor6rmA7KO87Zi4DQor6rmA7Iq57ISdDQor6rmA67SJ64+EDQor6rmA67OR7KO8DQor6rmA7KCV66y4DQor6rmA7ZiE66GADQor6rmA7IOB6re8DQor6rmA67OR7KSADQor6rmA7ZmN7JuQDQor6rmA6riw7ISxDQor6rmA7YOd7IiYDQor6rmA67OR7KSADQor6rmA7KCV7IiYDQor6rmA7ZKN7IaMDQor6rmA66qF6recDQor6rmA67OR7KeEDQor6rmA6rK97J28DQor6rmA7ZiV7KeEDQor6rmA7J6s7ZmYDQor6rmA67OR7LKgDQor6rmA7Jyg6riwDQor6rmA7JiB7ZWZDQor6rmA66qF7ISxDQor6rmA67OR7LaYDQor6rmA64us7ZiEDQor6rmA7YOc7IicDQor6rmA642V7J6QDQor6rmA67OR7YOcDQor6rmA7J2A66y4DQor6rmA7KCV7JqwDQor6rmA7J247IicDQor6rmA67OR7Zi4DQor6rmA6rK97IudDQor6rmA642V7ZWEDQor6rmA7YOc642VDQor6rmA67OR7Zi4DQor6rmA7Zqo7IStDQor6rmA7JmV7ZmYDQor6rmA7IiY7YOcDQor6rmA67OR7ZmYDQor6rmA67OR7ZmYDQor6rmA7IOB64+EDQor6rmA7KCV7IiZDQor6rmA67OR7ZuIDQor6rmA7YOc6riIDQor6rmA7Z2s7IukDQor6rmA6rWt7IOBDQor6rmA67OR7ZuIDQor6rmA7KeE7ISgDQor6rmA7KO86rWtDQor6rmA6rWs6riwDQor6rmA67OR7Z2sDQor6rmA7Jil7Zi4DQor6rmA7ZW07Zi4DQor6rmA7KCV7IiZDQor6rmA67O07ZmYDQor6rmA7Jes7KGwDQor6rmA6rCR7ZyYDQor6rmA7J6E6rOkDQor6rmA67O1656ADQor6rmA64us67aEDQor6rmA7IiY7J6QDQor6rmA64yA6riIDQor6rmA67O166CoDQor6rmA7J6s6rOkDQor6rmA7KKF7JWgDQor6rmA7JiB7JiBDQor6rmA67O166GADQor6rmA7KKF7IudDQor6rmA7ZWE64+EDQor6rmA7IOB7LKgDQor6rmA67O17ISdDQor6rmA7KCQ7ISdDQor6rmA67KU7KCVDQor6rmA6riw7KGwDQor6rmA67O17IiYDQor6rmA67OR7JqwDQor6rmA7JiB6recDQor6rmA6rWQ66+8DQor6rmA67O17IiYDQor6rmA7IOB64+ZDQor6rmA7Jyk66eMDQor6rmA7JiB7YOdDQor6rmA67O17IiZDQor6rmA6rK97J6QDQor6rmA66+47Zi4DQor6rmA7Jm47ZmYDQor6rmA67O17IicDQor6rmA7ISx7Z2sDQor6rmA64+Z7ZmYDQor6rmA7YOc6recDQor6rmA67O17IicDQor6rmA7Iug7KGwDQor6rmA67OR7IStDQor6rmA7JiB7JilDQor6rmA67O17IigDQor6rmA7IOB6rWsDQor6rmA7IS46rCRDQor6rmA66y064+IDQor6rmA67O17IucDQor6rmA7J6s7ISgDQor6rmA7JiB7Je0DQor6rmA7J6s7J21DQor6rmA67O17IusDQor6rmA67SJ7ZuIDQor6rmA7IiY67aEDQor6rmA64+E7ZiEDQor6rmA67O17JewDQor6rmA6rOE6recDQor6rmA7Jyk7JuQDQor6rmA7Jqp7Zi4DQor6rmA67O17JewDQor6rmA7J24656YDQor6rmA7KeE67SJDQor6rmA7IOB6riwDQor6rmA67O17JqpDQor6rmA7Jil67SJDQor6rmA7JiB66GADQor6rmA7ZWZ6riwDQor6rmA67O17J6EDQor6rmA7Jqp7JqpDQor6rmA7YOc7LKgDQor6rmA7J2E7YOdDQor6rmA67O17KGwDQor6rmA7LaY7IiZDQor6rmA66eM66GdDQor6rmA6rSR7JqpDQor6rmA67O17KSADQor6rmA6riw65GQDQor6rmA66eM6rK9DQor6rmA7J6s7ZW0DQor6rmA67O17ZiEDQor6rmA7KeE7JqwDQor6rmA6riw6recDQor6rmA7YOc7KSADQor6rmA67O17Z2sDQor6rmA6riw7JewDQor6rmA7ZWE6raMDQor6rmA66eM6rOkDQor6rmA67SJ6rCRDQor6rmA7Jyk7Z2sDQor6rmA7JiB7JyoDQor6rmA7JiB6re8DQor6rmA67SJ6rSADQor6rmA6rSR64+EDQor6rmA7IOB7JqxDQor6rmA7JuQ7Je0DQor6rmA67SJ6raMDQor6rmA7IiY7IudDQor6rmA6reA7ISxDQor6rmA7IOB7J20DQor6rmA67SJ6raMDQor6rmA7KeE6raMDQor6rmA7ISx6ri4DQor6rmA7LaY7KKFDQor6rmA67SJ6riwDQor6rmA7YOc7IicDQor6rmA7YOc6recDQor6rmA64+Z7ISgDQor6rmA67SJ6riwDQor6rmA7KSR7JiBDQor6rmA6rCR7JiBDQor6rmA7J207ISdDQor6rmA67SJ6ri4DQor6rmA7YOc7KSADQor6rmA7KKF7Z2sDQor6rmA6rCV7Z2sDQor6rmA67SJ64qgDQor6rmA7ISd7LKgDQor6rmA7J2Y7JW8DQor6rmA6rSR7ZWZDQor6rmA67SJ64+EDQor6rmA6re87YOdDQor6rmA7LaU7ISdDQor6rmA7Iug7KeEDQor6rmA67SJ7ISgDQor6rmA7Z2l66eMDQor6rmA64Ko7IiZDQor6rmA7ISx67aEDQor6rmA67SJ7ISgDQor6rmA65GQ66qpDQor6rmA7KCV7JilDQor6rmA6riI7Je0DQor6rmA67SJ7IStDQor6rmA7LC964+EDQor6rmA64yA66eMDQor6rmA6riw7J6QDQor6rmA67SJ7IiYDQor6rmAIOuNlQ0KK+q5gOyiheyekA0KK+q5gOygle2YhA0KK+q5gOu0ieyImA0KK+q5gOyerOyhsA0KK+q5gOyjvO2VmQ0KK+q5gO2aqOywrA0KK+q5gOu0ieyekA0KK+q5gOuPmeyasQ0KK+q5gOuRkOyInA0KK+q5gOyEseykgA0KK+q5gOu0ieyjvA0KK+q5gOyInO2DnA0KK+q5gOyKueyaqQ0KK+q5gOuPmeyasQ0KK+q5gOu0ieynhA0KK+q5gOycpOuCtA0KK+q5gOyerOyLnQ0KK+q5gOqyveq4uA0KK+q5gOu0ieynhA0KK+q5gO2DnO2ZmA0KK+q5gOyDgeuCqA0KK+q5gOuPmeyerA0KK+q5gOu0ie2YuA0KK+q5gOykgOyLnQ0KK+q5gOydgOq3nA0KK+q5gO2aqOustA0KK+q5gOu0ie2YuA0KK+q5gOusuO2XjA0KK+q5gO2drOyasA0KK+q5gOq3gO2drA0KK+q5gOu0ie2YuA0KK+q5gOqyveyImA0KK+q5gO2VmeuTnQ0KK+q5gO2VtO2YuA0KK+q5gOu2gOq3vA0KK+q5gOu2hOyXsA0KK+q5gO2aqOyDnQ0KK+q5gOq4sOq3oA0KK+q5gOu2gO2YlQ0KK+q5gOyYgeyCvA0KK+q5gOygleuPmQ0KK+q5gOuzkeyhsA0KK+q5gOu2hOuCqA0KK+q5gOygleyekA0KK+q5gOq4uOyjvA0KK+q5gOuMgOu2hA0KK+q5gOu2hOyEoA0KK+q5gO2drOuLrA0KK+q5gOyCvOyLnQ0KK+q5gO2DnOq1rA0KK+q5gOu2hOyVhQ0KK+q5gOygleyaqQ0KK+q5gOyImOuwsA0KK+q5gOygnOuNlQ0KK+q5gOu2hOyXtA0KK+q5gOq0ke2YuA0KK+q5gOyYgeyImA0KK+q5gOq0keyImA0KK+q5gOu2hOydtA0KK+q5gOuPmeuemA0KK+q5gO2DnOyekA0KK+q5gO2DnOyInA0KK+q5gOu2hOydtA0KK+q5gOyYgeqzhA0KK+q5gOyasOuCqA0KK+q5gOyWkeykgA0KK+q5gOu2hOyhsA0KK+q5gOywqO2drA0KK+q5gOq0gOuMgA0KK+q5gOyEseyEoA0KK+q5gOyCrOqzpA0KK+q5gO2DnOyLnQ0KK+q5gOynhOyasA0KK+q5gOyImOyLnQ0KK+q5gOyCrOyInA0KK+q5gOyDgeyyoA0KK+q5gOyerOykgA0KK+q5gOyiheyhsA0KK+q5gOyCrOydvA0KK+q5gOycpOyYgQ0KK+q5gOqyveq4sA0KK+q5gOq4sOuPmQ0KK+q5gOyCrOyhsA0KK+q5gOygleyImA0KK+q5gOyEseyyoA0KK+q5gOunjOyVoA0KK+q5gOyCvOq1rQ0KK+q5gOyEseq3vA0KK+q5gOq3nO2YuA0KK+q5gOq4sOu2hA0KK+q5gOyCvOuCqA0KK+q5gOyaqeyasA0KK+q5gO2DnOykkQ0KK+q5gOuzkeyEsQ0KK+q5gOyCvOuPmQ0KK+q5gOyCvO2DnA0KK+q5gOygleyLnQ0KK+q5gOyalOyEnQ0KK+q5gOyCvOuqhQ0KK+q5gOywve2drA0KK+q5gO2Zje2drA0KK+q5gO2DnOyInA0KK+q5gOyCvOuwqQ0KK+q5gOuzkeu0iQ0KK+q5gOyYge2biA0KK+q5gOugpOq4uA0KK+q5gOyCvOu0iQ0KK+q5gOq4sOq2jA0KK+q5gOyYgeykgA0KK+q5gOyiheyLnQ0KK+q5gOyCvOyDgQ0KK+q5gOuMgOyImA0KK+q5gOuqheq1rA0KK+q5gOyDge2drA0KK+q5gOyCvOyImA0KK+q5gO2drOyDgQ0KK+q5gOyiheykkQ0KK+q5gOq4iOuemA0KK+q5gOyCvOyImA0KK+q5gOyiheyatA0KK+q5gOygle2YhA0KK+q5gOyYgeyImA0KK+q5gOyCvOyaqQ0KK+q5gOydteynhA0KK+q5gOuqhe2YuA0KK+q5gOyerOybkA0KK+q5gOyCvOyaqQ0KK+q5gOyEseuPmQ0KK+q5gOyInOuhnA0KK+q5gOyGjO2YuA0KK+q5gOyCvOyhsA0KK+q5gOyYgeuemA0KK+q5gOuzte2VnA0KK+q5gOybkO2ZmA0KK+q5gOyCvOynhA0KK+q5gOyYgeyihQ0KK+q5gOyiheq3nA0KK+q5gOyihe2VtA0KK+q5gOyCvOy2nA0KK+q5gO2DnOy2mA0KK+q5gOydvOq1rA0KK+q5gOyDgeykgA0KK+q5gOyCvOy2nA0KK+q5gOycpOyLnQ0KK+q5gOynhOq4iA0KK+q5gOyYgeyEnQ0KK+q5gOyCvO2YuA0KK+q5gOyyoOyDgQ0KK+q5gOyduOu0iQ0KK+q5gOydmO2YuA0KK+q5gOyDgQ0KK+q5gO2DnQ0KK+q5gOyyoA0KK+q5gO2DnA0KK+q5gOyDgeqzpA0KK+q5gOyYgeq1rA0KK+q5gOyDgeu5iA0KK+q5gOuRkOyihQ0KK+q5gOyDgeqzpA0KK+q5gOynhOyVlA0KK+q5gOqzte2YhA0KK+q5gOynhOq3nA0KK+q5gOyDgeqzpA0KK+q5gOykgOy2nA0KK+q5gOyInOyekA0KK+q5gOyEseyatA0KK+q5gOyDgeq0gA0KK+q5gO2drOyImA0KK+q5gOyEoOq2jA0KK+q5gOyImOyErQ0KK+q5gOyDgeq1rA0KK+q5gOyEoOyEnQ0KK+q5gOuvuOyaqQ0KK+q5gO2VtOyEoA0KK+q5gOyDgeq1rA0KK+q5gO2DnO2VmA0KK+q5gOq3nOyXsA0KK+q5gOyXsOyImA0KK+q5gOyDgeq1rA0KK+q5gOq3ueydvA0KK+q5gO2DnOyatA0KK+q5gOyiheyaqQ0KK+q5gOyDgeq1rA0KK+q5gO2drO2biA0KK+q5gO2VtOybkA0KK+q5gOycpOy2nA0KK+q5gOyDgeq2jA0KK+q5gOuzke2RnA0KK+q5gOyDgeyynA0KK+q5gO2VhOuCnA0KK+q5gOyDgeq3nA0KK+q5gOyEseqyvQ0KK+q5gOqzoeywrA0KK+q5gOq3gO2YuA0KK+q5gOyDgeq3nA0KK+q5gOyInOqzpA0KK+q5gOuqheyXsA0KK+q5gOyynOuzkQ0KK+q5gOyDgeq3nA0KK+q5gOyaqeyYgQ0KK+q5gOyiheyErQ0KK+q5gOyiheyImQ0KK+q5gOyDgeq3nA0KK+q5gOustO2drA0KK+q5gOyasOy2nA0KK+q5gOqyveq4sA0KK+q5gOyDgeq3oA0KK+q5gOyYgeyImA0KK+q5gOydmOydvA0KK+q5gOydke2drA0KK+q5gOyDgeq3vA0KK+q5gOy2mO2DgQ0KK+q5gOyEseygkA0KK+q5gOybkOyYpQ0KK+q5gOyDgeq3vA0KK+q5gOywqOu0iQ0KK+q5gOygleuylA0KK+q5gOyijOyInA0KK+q5gOyDgeq4sA0KK+q5gO2drOuwsA0KK+q5gOyiheuNlQ0KK+q5gOuzkeyglQ0KK+q5gOyDgeq4uA0KK+q5gOyase2ctA0KK+q5gOydvOuwsA0KK+q5gOyEuOyImA0KK+q5gOyDgeuNlQ0KK+q5gO2VtOyEoA0KK+q5gOuMgOqwkQ0KK+q5gOyXsOu0iQ0KK+q5gOyDgeuNlQ0KK+q5gOywveu0iQ0KK+q5gOyerOyEoA0KK+q5gOyerO2drA0KK+q5gOyDgeuNlQ0KK+q5gOqyve2DnA0KK+q5gOu2hOyynA0KK+q5gOqwkeyImA0KK+q5gOyDgeuNlQ0KK+q5gOyInOuLrA0KK+q5gOyerO2YuA0KK+q5gOuvuOynhA0KK+q5gOyDgeuPiA0KK+q5gOyaqeyekA0KK+q5gOyYgeyLnQ0KK+q5gOuzke2YuA0KK+q5gOyDgeuhnQ0KK+q5gOuvuOyErQ0KK+q5gO2YuO2YuA0KK+q5gOqyveyLnQ0KK+q5gOyDgeunjA0KK+q5gOydhOyasA0KK+q5gOuqheyaqQ0KK+q5gOyXtOynhA0KK+q5gOyDgeunjA0KK+q5gOuLrOyEuA0KK+q5gOyekOyasQ0KK+q5gOycpO2YuA0KK+q5gOyDgeusuA0KK+q5gOyYpeyaqQ0KK+q5gCDssL0NCivquYDtnaztg50NCivquYDsg4HrrLgNCivquYDsmqnsmqkNCivquYDtl4ztg50NCivquYDrqoXtmIQNCivquYDsg4Hrr7gNCivquYDquLDsmIENCivquYDssYTsnbwNCivquYDshLHtmLgNCivquYDsg4HrsLANCivquYDsmIHquLgNCivquYDrqoXtmIQNCivquYDsg4HsiJwNCivquYDsg4HshJ0NCivquYDstpTsl7ANCivquYDsnKTqsbQNCivquYDsoJXsl7QNCivquYDsg4HshK0NCivquYDsooXsi50NCivquYDsiJzstpwNCivquYDsooXqta0NCivquYDsg4HsiJgNCivquYDslrjrjZUNCivquYDsgrztmJwNCivquYDsiJjrnpgNCivquYDsg4HsiJgNCivquYDsnqzsnbQNCivquYDsg4HtmIQNCivquYDqsJXshKANCivquYDsg4HsiJgNCivquYDsoJXrtIkNCivquYDtg5zsmKUNCivquYDsgrzrnpgNCivquYDsg4HsiJgNCivquYDsp4Trj5kNCivquYDsuaDsnbQNCivquYDshLHtlZwNCivquYDsg4HsiJkNCivquYDtmY3shJ0NCivquYDrs5HsobANCivquYDsm5TtmZgNCivquYDsg4HsiKANCivquYDtmLjrsLANCivquYDsgrzshJ0NCivquYDshpDshJ0NCivquYDsg4Hsi5wNCivquYDsnqXsnKQNCivquYDquLDtmIQNCivquYDsnqzsnbQNCivquYDsg4Hsi50NCivquYDsooXshLENCivquYDsnYDtmZQNCivquYDstpjtmIQNCivquYDsg4Hsl7ANCivquYDsmIHtg5wNCivquYDsp4TqtIANCivquYDshKDspIANCivquYDsg4Hsl7ANCivquYDsmqntlbQNCivquYDsg4Hqs6QNCivquYDqsbTsm5ANCivquYDsg4Hsl7QNCivquYDrjZXssKwNCivquYDsnKTsmrANCivquYDso7zshLENCivquYDsg4Hsl7QNCivquYDrs5Htm4gNCivquYDsg4Hqt7wNCivquYDrqoXri6wNCivquYDsg4HsmIENCivquYDquIjrj5kNCivquYDrtoTshJ0NCivquYDspJHsi50NCivquYDsg4HsmKQNCivquYDrs5HtmLgNCivquYDsiJzrj5kNCivquYDssL3smqkNCivquYDsg4HsmqkNCivquYDsoJXtmIQNCivquYDtmY3spIANCivquYDrp5DqtZANCivquYDsg4HsmqkNCivquYDssKzsm5ANCivquYDquLDsi50NCivquYDrs7TtlZgNCivquYDsg4HsmqkNCivquYDspIDrjZUNCivquYDsnKTqt7wNCivquYDsnbzro6ENCivquYDsg4HsmrQNCivquYDsl7DtmLgNCivquYDrr7jqs6QNCivquYDqsr3rp4wNCivquYDsg4Hsm5ANCivquYDrj5nqs4QNCivquYDsoJDtnawNCivquYDrj4Tsi50NCivquYDsg4HsnKQNCivquYDsnZHrrLgNCivquYDtmLjroZ0NCivquYDsnbjsg50NCivquYDsg4HsnKgNCivquYDsmIHtlZgNCivquYDtmZTsiJwNCivquYDqsr3roZ0NCivquYDsg4HsnKgNCivquYDsmqnsiJgNCivquYDrj5nqt7wNCivquYDsnqzshLENCivquYDsg4HsnKgNCivquYDsp4Ttg5wNCivquYDqtJHtlZkNCivquYDtlbTsobANCivquYDsg4HsnZENCivquYDrtInquLANCivquYDrs5Hqta0NCivquYDrhbjqt6ANCivquYDsg4HsnbwNCivquYDsnKTtlZkNCivquYDsg4HsooUNCivquYDqtJHsoJUNCivquYDsg4HsnbwNCivquYDrs5HssKwNCivquYDssL3tmJUNCivquYDshJ3shK0NCivquYDsg4HsnbwNCivquYDshozrjIANCivquYDsirnrnbwNCivquYDsg4Hqt7wNCivquYDsg4HsnqwNCivquYDsnKDsiJgNCivquYDqsbTsm5ANCivquYDsooXtmZgNCivquYDsg4HsobANCivquYDstpjrj4QNCivquYDsi53rjZUNCivquYDrj5ntmLgNCivquYDsg4HsooUNCivquYDstpjshK0NCivquYDtmY3siJgNCivquYDsnqzsmYQNCivquYDsg4HspJENCivquYDsg4HtnawNCivquYDsg4Htm4QNCivquYDsnqXrtIkNCivquYDsg4Hsp4QNCivquYDrhbjshJ0NCivquYDri6zrgqgNCivquYDsmqnsm5ANCivquYDsg4Hsp4QNCivquYDrqoXshJ0NCivquYDrs5Hsl7QNCivquYDsnYDsiKANCivquYDsg4HsspwNCivquYDsiJzsp4QNCivquYDtg5zqtawNCivquYDsmIHsnpANCivquYDsg4HssqANCivquYDshqHsiJgNCivquYDsi6TtlZwNCivquYDtmITsmIENCivquYDsg4HssqANCivquYDsmqnquLgNCivquYDsg4HtmLgNCivquYDquIjsnpANCivquYDsg4HssqANCivquYDrgqjshJ0NCivquYDsmIHsiJgNCivquYDsm4XrjIANCivquYDsg4Htg5wNCivquYDrr7jshJ0NCivquYDtmLjqt5wNCivquYDsmIHsmKUNCivquYDsg4Htg5wNCivquYDsp4DtmLgNCivquYDspIDshLENCivquYDtg5zsi50NCivquYDsg4Htg5wNCivquYDspJHtmLgNCivquYDsirnrs7UNCivquYDsnqzqtowNCivquYDsg4HtlZgNCivquYDsg4HshK0NCivquYDrqbTtmLgNCivquYDsg4HsmKUNCivquYDsg4HtlZwNCivquYDtmLjtm4gNCivquYDrtInqtowNCivquYDrj5nsi50NCivquYDsg4Htl4wNCivquYDsmIHsnpANCivquYDsp4DtmLgNCivquYDqtIDtmIQNCivquYDsg4HtmIENCivquYDsmIHtmZgNCivquYDsooXtnawNCivquYDrqoXssKwNCivquYDsg4HtmIQNCivquYDqsr3spIANCivquYDsoJDrtIkNCivquYDspJHtlZkNCivquYDsg4HtmIQNCivquYDsgrzsiJgNCivquYDtmqjstpgNCivquYDsmIHrs7UNCivquYDsg4HtmIQNCivquYDshLHtmZgNCivquYDquLDrrLgNCivquYDsooXshLENCivquYDsg4HtmLgNCivquYDsmrDqt5wNCivquYDqsr3qsJENCivquYDssL3tmIQNCivquYDsg4HtmLgNCivquYDsnYDtmIQNCivquYDquLDqsr0NCivquYDqsr3rk50NCivquYDsg4HtmLgNCivquYDrs7XsiKANCivquYDsnqzsiJwNCivquYDrtoTtmqgNCivquYDsg4HtmLgNCivquYDrgrTtg50NCivquYDsnYDshLENCivquYDsnYDsnpANCivquYDsg4HtmY0NCivquYDsmIHslZQNCivquYDsiJnrr7gNCivquYDssYTtnawNCivquYDsg4HtmZgNCivquYDsnbztmZgNCivquYDstpjtmLgNCivquYDrr7jtmIQNCivquYDsg4Htm4gNCivquYDsnqztlZgNCivquYDri6zsiJwNCivquYDsmrDtmLgNCivquYDsg4HtnawNCivquYDqtJHsmIENCivquYDqsbTquLANCivquYDrp4zssqANCivquYDsg4HtnawNCivquYDquLDsmKUNCivquYDtl4ztnawNCivquYDrrLjsiJkNCivquYDsg4HtnawNCivquYDtg5zsmrANCivquYDtlZnsiKANCivquYDsmqnshJ0NCivquYDshJzslZQNCivquYDrjIDtg5wNCivquYDqs4TshJ0NCivquYDsooXquIgNCivquYDshJ3qs6QNCivquYDsiJzslaANCivquYDtg5zsobANCivquYDrhbjtnawNCivquYDshJ3qtIANCivquYDrs7XslpENCivquYDsmqntmZgNCivquYDtlbTtmIQNCivquYDshJ3qt5wNCivquYDsmIHqt5wNCivquYDtg5zrk50NCivquYDsooXsmIENCivquYDshJ3qt6ANCivquYDqsr3tnawNCivquYDrjIDtmakNCivquYDssKjsmqkNCivquYDshJ3qt7wNCivquYDsoJDqsr0NCivquYDtjJDtlYQNCivquYDsoJXsspwNCivquYDshJ3qt7wNCivquYDsnbjsmKUNCivquYDssL3sl7QNCivquYDtg5zshLgNCivquYDshJ3qt7wNCivquYDqsJHrp4wNCivquYDsoJXslZQNCivquYDtlbTqs6QNCivquYDshJ3rhbgNCivquYDsoJXrkZANCivquYDrj4TssL0NCivquYDsiJntkZwNCivquYDshJ3rj4QNCivquYDsiJzsnqwNCivquYDtg5zsm5ANCivquYDtlbTrp4wNCivquYDshJ3rj5kNCivquYDtjJDsoIQNCivquYDsmqntmLgNCivquYDsnbzsiJgNCivquYDshJ3rnoANCivquYDsooXrtIkNCivquYDrs5HsiJgNCivquYDsm5Dtj4kNCivquYDshJ3siJgNCivquYDrtInrjZUNCivquYDstpjsl7QNCivquYDrp5Dqt7wNCivquYDshJ3siJwNCivquYDquLjrs7UNCivquYDqsr3siKANCivquYDsobDtmIQNCivquYDshJ3slZQNCivquYDrj5nsgrwNCivquYDrjIDsi50NCivquYDqsr3tmLgNCivquYDshJ3sl7ANCivquYDqt4DrtIkNCivquYDsg4HstpwNCivquYDsp4TqsbQNCivquYDshJ3sl7QNCivquYDsp4TtmIQNCivquYDrhbjrtIkNCivquYDquLjslaANCivquYDshJ3snbQNCivquYDtg5zsl7ANCivquYDsmrTsi50NCivquYDtg5zrp4wNCivquYDshJ3snqwNCivquYDri6ztg4ENCivquYDsooXroZ0NCivquYDsg4HtmIQNCivquYDshJ3sobANCivquYDqtozsnbUNCivquYDrrLjqt5wNCivquYDsg4HrspQNCivquYDshJ3sooUNCivquYDtl4zqt5wNCivquYDrr7jspIANCivquYDtg5zrp4wNCivquYDshJ3spIANCivquYDrj5nshJ0NCivquYDrr7jsnbwNCivquYDquLDrs7UNCivquYDshJ3sp4QNCivquYDsg4HshJ0NCivquYDsiJjsnoQNCivquYDsmqnsobANCivquYDshJ3sspwNCivquYDqsr3qtIANCivquYDsmIHsnKANCivquYDshLHshJ0NCivquYDshJ3ssqANCivquYDsnqzquIgNCivquYDsmIHsmqkNCivquYDqt5zspIANCivquYDshJ3tmZgNCivquYDshozsnqUNCivquYDrgpnsiJwNCivquYDrjIDsoJUNCivquYDshKDqtZANCivquYDsmIHsiJgNCivquYDspJHqsJENCivquYDshLHsiJgNCivquYDshKDrjZUNCivquYDsmIHsnoQNCivquYDrs5HshK0NCivquYDsoJXsiJgNCivquYDshKDrp4wNCivquYDshLHsoJwNCivquYDssKjsmKQNCivquYDstpjsiJgNCivquYDshKDrr7gNCivquYDssL3snpANCivquYDtmqjrr7gNCivquYDsoJXsiJgNCivquYDshKDrtIkNCivquYDsmqnsnKQNCivquYDrs7XshLENCivquYDsmrDsmIENCivquYDshKDrtoQNCivquYDshLHshLENCivquYDtlYTtg5wNCivquYDqtJHtmIQNCivquYDshKDsiKANCivquYDsp4TsnpANCivquYDtmY3qsIENCivquYDtg5zsspwNCivquYDshKDsmrANCivquYDrs7XsmqkNCivquYDsooXtnawNCivquYDrs7XtmZgNCivquYDshKDsmrENCivquYDsoJDsmqkNCivquYDrs5HsiJgNCivquYDsg4HsiJgNCivquYDshKDsmrENCivquYDquLDsmrQNCivquYDspIDtmLgNCivquYDtlbTsnqwNCivquYDshKDsnbQNCivquYDsoJXsiJgNCivquYDsg4HsiJkNCivquYDquLDsnpANCivquYDshKDsnbQNCivquYDstpjsmrANCivquYDsoJXsi50NCivquYDsiJzsnbgNCivquYDshKDsnbQNCivquYDqsr3tmLgNCivquYDshKDsiJgNCivquYDtnazshK0NCivquYDshKDsnbQNCivquYDsnKTsm5ANCivquYDsoJXtkZwNCivquYDsnKTqtbANCivquYDshKDsnbQNCivquYDsmIHslaANCivquYDsnqzsiJgNCivquYDsgrzqt5wNCivquYDshKDsnpANCivquYDqt7zso7wNCivquYDrj5nspJENCivquYDqsr3shJ0NCivquYDshKDsnpANCivquYDsoJXroKgNCivquYDrj5nsnpANCivquYDtmY3rj5kNCivquYDshKDspJENCivquYDshJ3shKANCivquYDsmIHtm4gNCivquYDsl7Dsp4QNCivquYDshKDtg5wNCivquYDsmIHsi50NCivquYDqt5zsm4UNCivquYDsnqzsp4QNCivquYDshKDtg5wNCivquYDrs5Hrj4wNCivquYDsg4HrjZUNCivquYDsjI3tkZwNCivquYDshKDtg5wNCivquYDsg4HtlokNCivquYDsmIHrj5kNCivquYDsiJjsobANCivquYDshKDtmqgNCivquYDsiJjsspwNCivquYDsmKXsnbwNCivquYDsooXtj6wNCivquYDshKDtnawNCivquYDsooXri6wNCivquYDrrLTquLANCivquYDqsr3shJ0NCivquYDshKDtnawNCivquYDsgrztmZQNCivquYDsnZjtlZwNCivquYDsobDqs6ANCivquYDshKDtnawNCivquYDso7zsnoQNCivquYDtmZjquLANCivquYDtmIHsiJgNCivquYDshKTsnpANCivquYDso7zrj5kNCivquYDsg4HsiKANCivquYDsnqzsm5ANCivquYDshLHqs4QNCivquYDssKjsnKQNCivquYDrjZXruYgNCivquYDqsr3tnawNCivquYDshLHqs6QNCivquYDsmKXquLgNCivquYDsnbjrj5kNCivquYDshoztm4gNCivquYDshLHqs6QNCivquYDsgqzshKQNCivquYDtjJDrp4wNCivquYDrj5nsspwNCivquYDshLHqs6QNCivquYDsnKTspIANCivquYDtg5zqt6ANCivquYDtjJTsmKUNCivquYDshLHqs6QNCivquYDsp4TtlZgNCivquYDshoztmqgNCivquYDshLHtmZgNCivquYDshLHqtawNCivquYDsnqzsnbwNCivquYDsooXsiJgNCivquYDsmrDsiJwNCivquYDshLHqtawNCivquYDsg4HrjIANCivquYDsnbjsiJgNCivquYDsmIHrjIANCivquYDshLHqtawNCivquYDrp4ztmZgNCivquYDtnazquLANCivquYDshJ3rtoQNCivquYDshLHqtawNCivquYDsmIHrrLgNCivquYDrs5HqtawNCivquYDsp4TqtowNCivquYDshLHqtawNCivquYDtg5zquLANCivquYDsiJzsoJANCivquYDsg4HsobANCivquYDshLHqt5wNCivquYDsiJzssqANCivquYDsgqzqt5wNCivquYDsnbztmLgNCivquYDshLHqt5wNCivquYDrrLTrsLANCivquYDsmIHtmIQNCivquYDsnqzsmKUNCivquYDshLHqt5wNCivquYDrtInqt5wNCivquYDsp4TsmrANCivquYDshLHrj4QNCivquYDshLHqt7wNCivquYDrspTsiJkNCivquYDtm4jssqANCivquYDsmrDtmZgNCivquYDshLHqt7wNCivquYDtmLjtnawNCivquYDtg5zsnpANCivquYDsirnshKANCivquYDshLHquLANCivquYDsooXtmIQNCivquYDsoJDrspQNCivquYDsmqnsiJgNCivquYDshLHquLANCivquYDsnoTsoJwNCivquYDshLHsnbwNCivquYDrs5Htg5wNCivquYDshLHquLANCivquYDsmKXqta0NCivquYDtg5ztmZQNCivquYDsspztnawNCivquYDshLHquLANCivquYDsmIHrtoQNCivquYDsmKXshJ0NCivquYDrjZXqtIANCivquYDshLHquLANCivquYDrhbjsm5ANCivquYDsmIHsi50NCivquYDsnKTrj5kNCivquYDshLHquLANCivquYDsmrTsmrQNCivquYDsmIHsiJwNCivquYDsg4HsooUNCivquYDshLHquLANCivquYDrs5Hso7wNCivquYDrrLTtmLgNCivquYDsmqntlZkNCivquYDshLHquLANCivquYDsg4HsmrANCivquYDrs5HtlZkNCivquYDsoJXsp4QNCivquYDshLHrgqgNCivquYDspJHsg4ENCivquYDspIDtnawNCivquYDsooXsmYQNCivquYDshLHrjZUNCivquYDtlbTsmqkNCivquYDsmIHqtawNCivquYDsg4Hsp4QNCivquYDshLHrj4QNCivquYDsm5Dqs6QNCivquYDsnbjsm5ANCivquYDrnb3si50NCivquYDshLHrj4QNCivquYDrtInsnbQNCivquYDsnKDssYQNCivquYDsoJXsobANCivquYDshLHrnb0NCivquYDsg4HtmZgNCivquYDso7zsuaANCivquYDsl7DsmKUNCivquYDshLHroKwNCivquYDsoJXssqANCivquYDsg4HssqANCivquYDslrXrqqkNCivquYDshLHroYANCivquYDsnZHso7wNCivquYDsiJjtmZgNCivquYDtg4DsiJkNCivquYDshLHrpaANCivquYDtmLjsiJgNCivquYDqsr3tmLgNCivquYDtmITrnb0NCivquYDshLHrp4wNCivquYDssL3snbwNCivquYDssqDtkZwNCivquYDtnaztlZkNCivquYDshLHrqqkNCivquYDqtJHrp4wNCivquYDtg53slrgNCivquYDsp4TshowNCivquYDshLHrrLgNCivquYDqt7zquLANCivquYDsnYTso7wNCivquYDsiJzrj4wNCivquYDshLHrsLANCivquYDsoJXsg50NCivquYDshozqtowNCivquYDqsbTquLANCivquYDshLHrsLANCivquYDqtIDqsbQNCivquYDsoJXtnawNCivquYDshLHtmZgNCivquYDshLHrs7UNCivquYDsmqntnawNCivquYDrtoTtj6wNCivquYDquLDrqqkNCivquYDshLHrs7UNCivquYDsmqntmIQNCivquYDqtJHrqqgNCivquYDspIDtg50NCivquYDshLHsg50NCivquYDrqoXtmY0NCivquYDso7zsm4UNCivquYDsooXqsbQNCivquYDshLHshKANCivquYDquLDtmY0NCivquYDsoJDtg4ENCivquYDsnqzqtowNCivquYDshLHsiJgNCivquYDshKDsiJkNCivquYDrgpnsp4QNCivquYDrtoTrrLgNCivquYDshLHsiJgNCivquYDrj5nsoJwNCivquYDstpjrsJUNCivquYDquLDsm4UNCivquYDshLHsiJgNCivquYDtg5zrs7UNCivquYDsmYTsmKUNCivquYDqtJHsiJwNCivquYDshLHsiJgNCivquYDstpjsnbUNCivquYDquLjtmLgNCivquYDshLHsmIENCivquYDshLHsiJwNCivquYDshLjsp4QNCivquYDshozsi50NCivquYDqt7zsp4QNCivquYDshLHsi50NCivquYDsmqnso7wNCivquYDsnpDsi50NCivquYDrqoXtmY0NCivquYDshLHsl7QNCivquYDsmIHsmrANCivquYDsoJXqtJENCivquYDtl4zsnbwNCivquYDshLHsl7QNCivquYDrrLTsiJwNCivquYDsi6zsnoQNCivquYDqsJHsiJgNCivquYDshLHsl7QNCivquYDsspzsnbwNCivquYDsnqzrjIANCivquYDsmIHrj4QNCivquYDshLHsl7QNCivquYDrj5nsi50NCivquYDsnKDsi50NCivquYDsmIHrnb0NCivquYDshLHsmIENCivquYDsnbjrjZUNCivquYDstqnrqqkNCivquYDshLHtmLgNCivquYDshLHsmqkNCivquYDrgqjsiJwNCivquYDsooXtmZgNCivquYDrrLjqt5wNCivquYDshLHsmqkNCivquYDsmbjrj5kNCivquYDsuaDrj4QNCivquYDqsr3rhbgNCivquYDshLHsmqkNCivquYDspJHssqANCivquYDsiJjtmIQNCivquYDsmKXrs7UNCivquYDshLHsmrANCivquYDsnqXsiKANCivquYDsmIHsoJUNCivquYDtg5zsspwNCivquYDshLHsmrANCivquYDqsbTquLgNCivquYDrqoXsi50NCivquYDqtIDqt7wNCivquYDshLHsmrANCivquYDrqoXshKQNCivquYDsgrzsnbgNCivquYDsooXtnawNCivquYDshLHsmrANCivquYDsnZjsmrANCivquYDsiJjsnbgNCivquYDsi5zsiKANCivquYDshLHsmrENCivquYDshozrkZANCivquYDqt7zrsLANCivquYDshLHsiJgNCivquYDshLHsmrQNCivquYDqt7zsp4QNCivquYDsmIHri6wNCivquYDtmITtg5wNCivquYDshLHsmrQNCivquYDsnqzsooUNCivquYDsoJXstpgNCivquYDqtJHsiJwNCivquYDshLHsmrQNCivquYDqsr3tmLgNCivquYDsp4TtmZgNCivquYDrp4zqt7wNCivquYDshLHsnKQNCivquYDsoJXshJ0NCivquYDrj4Tso7wNCivquYDrs5HtlZwNCivquYDshLHsnbwNCivquYDsi5ztlZkNCivquYDsiJjtlZkNCivquYDqsJXquLANCivquYDshLHsnbwNCivquYDsnqXqsJwNCivquYDrjZXqtZANCivquYDqt7zrj5kNCivquYDshLHsnbwNCivquYDrs5HsmrANCivquYDsg4HslrgNCivquYDquLDsm4UNCivquYDshLHsnqwNCivquYDqtJHssqANCivquYDrs5HsuZgNCivquYDsnqzsiJwNCivquYDshLHsobANCivquYDsnqztmZgNCivquYDrp4zssqANCivquYDsl7DsiJwNCivquYDshLHso7wNCivquYDrjZXtg5wNCivquYDsm5Dqt5wNCivquYDsnqztmLgNCivquYDshLHspIANCivquYDtg5zsiJwNCivquYDsoJXquLANCivquYDtmJzrk50NCivquYDshLHsp4QNCivquYDsmqnso7wNCivquYDquIjsmYQNCivquYDsnqzrj4QNCivquYDshLHsp4QNCivquYDstpjsnbQNCivquYDtmITsobANCivquYDtnazroYANCivquYDshLHstpwNCivquYDsooXtmLgNCivquYAg7JqpDQor6rmA7Jyg7IStDQor6rmA7ISx7LmYDQor6rmA67OR64+EDQor6rmA7J6s7KeEDQor6rmA7J6s7ISdDQor6rmA7ISx7YOcDQor6rmA7KCV7Zi4DQor6rmA7Jqp7ZW0DQor6rmA7ISx6ri4DQor6rmA7ISx7YOcDQor6rmA7KeE7ZmYDQor6rmA66qF7ISgDQor6rmA7JiB7LKgDQor6rmA7ISx7YOcDQor6rmA7Zqo7KCQDQor6rmA7YOc7KKFDQor6rmA7JmV7IaMDQor6rmA7ISx7YOcDQor6rmA7YOc656ADQor6rmA64W47Z2sDQor6rmA6riw7ISgDQor6rmA7ISx7YOdDQor6rmA7IiY7LKgDQor6rmA7KCQ7JqwDQor6rmA7ISx7JykDQor6rmA7ISx7ZWEDQor6rmA67OR7JiBDQor6rmA7J6s7Zi4DQor6rmA67OR7IigDQor6rmA7ISx7ZWcDQor6rmA7KKF7J6sDQor6rmA7JuU6rK9DQor6rmA7ZmN7ISgDQor6rmA7ISx7Zi4DQor6rmA67OR6ri4DQor6rmA66qF7KO8DQor6rmA7Zqo642VDQor6rmA7ISx7Zi4DQor6rmA642V66qFDQor6rmA66eM6riwDQor6rmA7ISx6re8DQor6rmA7ISx7Zi4DQor6rmA64W46riwDQor6rmA7J6s7JilDQor6rmA66qF642VDQor6rmA7ISx7ZmYDQor6rmA7L6M66y4DQor6rmA7JiB66aEDQor6rmA7YOc7ZWYDQor6rmA7ISx7ZmYDQor6rmA7J2E64+EDQor6rmA7ISd67SJDQor6rmA7IiY7JqpDQor6rmA7ISx7ZuIDQor6rmA7IOB7IiYDQor6rmA7YyQ66GcDQor6rmA7LCo7J20DQor6rmA7ISx7ZuIDQor6rmA7Jil7YOcDQor6rmA7JiB65OdDQor6rmA7ISd7KGwDQor6rmA7ISx7ZuIDQor6rmA7LKg67SJDQor6rmA7KKF7KSADQor6rmA7LCs66qFDQor6rmA7ISx7Z2sDQor6rmA7IOB7KO8DQor6rmA7ZW07IiYDQor6rmA7KCV7Je0DQor6rmA7ISx7Z2sDQor6rmA7J6s7JWgDQor6rmA6rK97YOdDQor6rmA7JiB7LKcDQor6rmA7ISx7Z2sDQor6rmA7Iic7JqwDQor6rmA7Jil642VDQor6rmA7KKF7Z2sDQor6rmA7IS46riwDQor6rmA7ISx7YOcDQor6rmA7Iq5656ADQor6rmA67SJ7IudDQor6rmA7IS4642VDQor6rmA7KKF7JqpDQor6rmA7ZW07ZmYDQor6rmA7IOB6rWtDQor6rmA7IS47JewDQor6rmA7YOc7IudDQor6rmA7ISx7ZmNDQor6rmA7J28642VDQor6rmA7IS47JmEDQor6rmA7IiY6529DQor6rmA7KKF7J6QDQor6rmA67aE7IStDQor6rmA7IS47Jq0DQor6rmA64+Z7ISdDQor6rmA7ZaJ7IigDQor6rmA6rSR7IOBDQor6rmA7IS47Zi4DQor6rmA66+47KeEDQor6rmA7ZW06rWsDQor6rmA7Jqp6raMDQor6rmA7IS47ZuIDQor6rmA6rec7JuQDQor6rmA7ZiE64+ZDQor6rmA7KeE7IaMDQor6rmA7IaM6rK9DQor6rmA67aA7ISxDQor6rmA7J6s7ZiEDQor6rmA7LKg7ISgDQor6rmA7IaM64KoDQor6rmA7JiB64+ZDQor6rmA6rSA7JuFDQor6rmA6riw7JuFDQor6rmA7IaM642VDQor6rmA7ZWE67O1DQor6rmA6rSA7Zy0DQor6rmA7KCV7IicDQor6rmA7IaM642VDQor6rmA7YOc7JiBDQor6rmA7JuQ6riwDQor6rmA6riw6rWsDQor6rmA7IaM64+EDQor6rmA7IiY7ZiEDQor6rmA7Jyk64KoDQor6rmA7J6s6rWQDQor6rmA7IaM64+EDQor6rmA7J6E642VDQor6rmA6rec7JuQDQor6rmA6rec7LKgDQor6rmA7IaM65OdDQor6rmA67SJ7ZmYDQor6rmA7YOc7ZmYDQor6rmA67OR7KeEDQor6rmA7IaM67CwDQor6rmA6rOE7KGwDQor6rmA7JiB7JqpDQor6rmA7IiZ7Je0DQor6rmA7IaM7ISgDQor6rmA7YOd7JWgDQor6rmA7LaY7IiYDQor6rmA7YyQ7Ja4DQor6rmA7IaM7IicDQor6rmA7Jqp7JiBDQor6rmA6riw7Ja1DQor6rmA7KCV7Zi4DQor6rmA7IaM7JewDQor6rmA7JWF7ISgDQor6rmA7ZiE7KSRDQor6rmA64Ko7IigDQor6rmA7IaM7KGwDQor6rmA7ISx7IiZDQor6rmA7IOB7Je0DQor6rmA7JiB7Z2sDQor6rmA7IaM7LKgDQor6rmA67OR6rCRDQor6rmA7Jqp656ADQor6rmA66eM7Zy0DQor6rmA7IaM7LKgDQor6rmA7Jew7ZWZDQor6rmA7ISx7Z2sDQor6rmA6riw7ISdDQor6rmA7IaM7LaYDQor6rmA64yA7YOcDQor6rmA6rK97J20DQor6rmA7KKF66qpDQor6rmA7IaM7ZWcDQor6rmA7Jqw66y4DQor6rmA7KKF7KSADQor6rmA7JiB7Z2sDQor6rmA7IaM7ZalDQor6rmA67OR7LKgDQor6rmA6rCV6re8DQor6rmA7KCV66CoDQor6rmA7IiY6rCRDQor6rmA7Jqp7J28DQor6rmA7KGw66y0DQor6rmA6rCR7Zi4DQor6rmA7IiY6rCVDQor6rmA7YOc7JqwDQor6rmA7ZW067CwDQor6rmA7Z2s6rK9DQor6rmA7IiY6rK9DQor6rmA6rK97Zi4DQor6rmA67SJ7Z2sDQor6rmA7KSR6recDQor6rmA7IiY6rSADQor6rmA7KCV7JuQDQor6rmA7Zic66qoDQor6rmA67OR7IiYDQor6rmA7IiY6ri4DQor6rmA6rOE7J6QDQor6rmA7ZmN7ZWZDQor6rmA7JiB66a8DQor6rmA7IiY6ri4DQor6rmA7IiY7JuQDQor6rmA7IiY64yADQor6rmA7Z2s7J6EDQor6rmA7IiY6ri4DQor6rmA7Ja17JuFDQor6rmA7JiB7JewDQor6rmA7J6l7JqwDQor6rmA7IiY6ri4DQor6rmA66+47Jq0DQor6rmA7YOc7JqwDQor6rmA67aE66qFDQor6rmA7IiY64WEDQor6rmA64+Z7Zi4DQor6rmA7Z2s7Y+sDQor6rmA6ri47ISgDQor6rmA7IiY64+ZDQor6rmA7KeA7IicDQor6rmA7ISx7JqwDQor6rmA7KO87LacDQor6rmA7IiY66eMDQor6rmA7KKF7LCsDQor6rmA7IiY7YOcDQor6rmA67O065GQDQor6rmA7IiY67ORDQor6rmA7IiY67aEDQor6rmA7KCV64+EDQor6rmA7KeE7J20DQor6rmA7IiY67O1DQor6rmA7Z2s7ISdDQor6rmA7ISx7KSADQor6rmA7ZmN7ZmYDQor6rmA7IiY67O1DQor6rmA6riw67CxDQor6rmA7JiB7J20DQor6rmA67SJ67aEDQor6rmA7IiY7IOBDQor6rmA7LC964KoDQor6rmA7LGE6rOkDQor6rmA7KSR7JqpDQor6rmA7IiY7ISdDQor6rmA7IiY7ZWZDQor6rmA7YOc7YOcDQor6rmA7IOB7IudDQor6rmA7IiY7ISgDQor6rmA66y07Zi4DQor6rmA7ZWc7ISgDQor6rmA7KCQ7JilDQor6rmA7IiY7IudDQor6rmA66y07ZiEDQor6rmA66qF7JqpDQor6rmA6rK966eMDQor6rmA7IiY7JewDQor6rmA7JiB6recDQor6rmA6rec7IiYDQor6rmA7J6l7LKgDQor6rmA7IiY7Je0DQor6rmA66qF6riIDQor6rmA7Jqp7ZWZDQor6rmA66eQ7ISgDQor6rmA7IiY7Je0DQor6rmA7KCV7Zi4DQor6rmA7Zqo7LacDQor6rmA7IOB7JmEDQor6rmA7IiY7JiBDQor6rmA7ISd7JewDQor6rmA7ZaJ6re8DQor6rmA7IOB7IiYDQor6rmA7IiY7JqpDQor6rmA7KCV7ISdDQor6rmA7KeE7KO8DQor6rmA7LaY64+MDQor6rmA7IiY7Jq0DQor6rmA7YOc66qFDQor6rmA64KZ7KeEDQor6rmA7J6Q7IiYDQor6rmA7IiY7JuFDQor6rmA7J6s7IiYDQor6rmA7KeE67KUDQor6rmA6rSR7JuFDQor6rmA7IiY7JuQDQor6rmA67O17ISgDQor6rmA7J6s7J2ADQor6rmA7J287ISdDQor6rmA7IiY7J21DQor6rmA66qo6riwDQor6rmA64yA7Je0DQor6rmA7KO87Je9DQor6rmA7IiY7J28DQor6rmA7J246riwDQor6rmA6riw7J6sDQor6rmA67OR7ZmYDQor6rmA7IiY7KCVDQor6rmA6rSR7Z2gDQor6rmA7J6s6riIDQor6rmA64us7IudDQor6rmA7IiY7KKFDQor6rmA7Lap7Je0DQor6rmA7Iic7J6QDQor6rmA6rK97KGwDQor6rmA7IiY7KSADQor6rmA6riw7IicDQor6rmA67OR67SJDQor6rmA7ISx64WEDQor6rmA7IiY7LC9DQor6rmA7J287Zi4DQor6rmA7YOc7Zi4DQor6rmA7J247JqwDQor6rmA7IiY7LKgDQor6rmA7Je07JykDQor6rmA7Jil7Zi4DQor6rmA7Iuc7IiYDQor6rmA7IiY7LKgDQor6rmA6rOE6regDQor6rmA7Iic7ISgDQor6rmA7JuF67aEDQor6rmA7IiY7YOcDQor6rmA65Ox6ri4DQor6rmA64KY6riwDQor6rmA7IOB7JiBDQor6rmA7IiY7YOcDQor6rmA7LaY7LaYDQor6rmA7J2A7KGwDQor6rmA66qF7IiYDQor6rmA7IiY7YOdDQor6rmA6riI7IicDQor6rmA7KCV7KGwDQor6rmA7YOc7ISgDQor6rmA7IiY7YOdDQor6rmA7Jqw6riwDQor6rmA7LC96riwDQor6rmA7J247IigDQor6rmA7IiY7ZiEDQor6rmA66+47IudDQor6rmA7J6l66OhDQor6rmA7KCV6raBDQor6rmA7IiY7ZiEDQor6rmA6rSR7J6QDQor6rmA7KeE7ZiEDQor6rmA6riI6regDQor6rmA7IiY7Zi4DQor6rmA7LC97JqwDQor6rmA7J287IudDQor6rmA7JuQ6ri4DQor6rmA7IiY7Zi4DQor6rmA7KO866eMDQor6rmA7ISx7J6QDQor6rmA7J217J6QDQor6rmA7IiY7Zi4DQor6rmA7IOB66OhDQor6rmA67Cp7JuQDQor6rmA7Jyg7ZWcDQor6rmA7IiY7Zi4DQor6rmA7JmE7J28DQor6rmA7ZaJ642VDQor6rmA67OR7ZiEDQor6rmA7IiY7ZmUDQor6rmA7KeA7IiYDQor6rmA7ISx7JuQDQor6rmA7ISx7ZWcDQor6rmA7IiY7ZmYDQor6rmA7LaY7ZiBDQor6rmA64+Z7KeEDQor6rmA64+Z7JilDQor6rmA7IiY7ZmYDQor6rmA67OR67KUDQor6rmA7ISx7LKgDQor6rmA7KO87ISdDQor6rmA7IiY7ZqoDQor6rmA7JiB7JewDQor6rmA7KCV642VDQor6rmA7Jyk7IiYDQor6rmA7IiY7ZqoDQor6rmA67OR7KCQDQor6rmA7JiB7KGwDQor6rmA6rOE7JikDQor6rmA7IiZ7J20DQor6rmA7KCV7LKgDQor6rmA7J6l656YDQor6rmA7ISd7IiYDQor6rmA7IiZ7J6QDQor6rmA7Jqp7KSRDQor6rmA7JuU7KCVDQor6rmA7IOB64W4DQor6rmA7IiZ7J6QDQor6rmA64u07IiYDQor6rmA7Jqw7IicDQor6rmA7IK87IiZDQor6rmA7IiZ7J6QDQor6rmA6rec7ISgDQor6rmA7ZW07ZmUDQor6rmA7KKF6re8DQor6rmA7IiZ7ZiEDQor6rmA7J6l7KGwDQor6rmA7J6l7YOcDQor6rmA66y07JiBDQor6rmA7IiZ7Z2sDQor6rmA7KeE7IOBDQor6rmA64+Z7Je0DQor6rmA7ZW07IS4DQor6rmA7Iic6rWtDQor6rmA7KSA6raMDQor6rmA7J247YOdDQor6rmA7KKF7IiYDQor6rmA7Iic6riIDQor6rmA7JiB7ZWEDQor6rmA7JiB7IigDQor6rmA7IiZ6raMDQor6rmA7Iic6riwDQor6rmA7Jyk6re8DQor6rmA7IaM7ISgDQor6rmA7Iq57JewDQor6rmA7Iic64KoDQor6rmA7JiB7ISxDQor6rmA66y467SJDQor6rmA7ISx7ZmUDQor6rmA7Iic64KoDQor6rmA7Iic7IudDQor6rmA7Iic6ri4DQor6rmA7LKg7JuQDQor6rmA7Iic64KoDQor6rmA66qF6recDQor6rmA66y47KGwDQor6rmA7LC97JiBDQor6rmA7Iic64KoDQor6rmA7ZiV7J6QDQor6rmA64+E7Zi4DQor6rmA6raM7ZeMDQor6rmA7Iic642VDQor6rmA7IOB7IicDQor6rmA7KeE7JuFDQor6rmA7JyE7LKgDQor6rmA7Iic64+ZDQor6rmA66qF7J28DQor6rmA7KKF7Zy0DQor6rmA7J6s7IOBDQor6rmA7Iic65OdDQor6rmA7JiB7J28DQor6rmA7IS47Je0DQor6rmA7ISd7ZmNDQor6rmA7Iic66GADQor6rmA67OR7KSADQor6rmA7ZWc6re8DQor6rmA6rec7ZmYDQor6rmA7Iic67CwDQor6rmA6rSR7JuQDQor6rmA7IOB7KO8DQor6rmA7KCQ7IStDQor6rmA7Iic67aEDQor6rmA7Jqw6rK9DQor6rmA7YOc7IiYDQor6rmA7KKF7YOBDQor6rmA7Iic7IOdDQor6rmA7Iug7IK8DQor6rmA7JiB7JiBDQor6rmA7KKF7ZuIDQor6rmA7Iic7ISgDQor6rmA6rWQ6riwDQor6rmA7KCc7ZmUDQor6rmA7KCV7Z2sDQor6rmA7Iic7ISgDQor6rmA6rOk7ZWZDQor6rmA7ISx6rWsDQor6rmA7JuQ7ZWZDQor6rmA7Iic7IudDQor6rmA7KCV7ZmYDQor6rmA7Jqp7KO8DQor6rmA66eQ7Zy0DQor6rmA7Iic7JWgDQor6rmA7IOB7LC9DQor6rmA7Zic64+EDQor6rmA7ZiB7JqpDQor6rmA7Iic7JewDQor6rmA7KKF7J28DQor6rmA7KCV7IiYDQor6rmA7KKF64+ZDQor6rmA7Iic7JewDQor6rmA7IOB7JykDQor6rmA7J6s7Zi4DQor6rmA7LaY7KeEDQor6rmA7Iic7JewDQor6rmA7JiB7IudDQor6rmA7JiB7IK8DQor6rmA7Iug7JuQDQor6rmA7Iic7JilDQor6rmA7ZiE7KGwDQor6rmA6rK97YOcDQor6rmA64+E7Je0DQor6rmA7Iic7JmEDQor6rmA67OR67aEDQor6rmA7KCV7KO8DQor6rmA7Jik7JikDQor6rmA7Iic7J20DQor6rmA7YOc7JiBDQor6rmA7Iic7Zi4DQor6rmA7JiB7ISgDQor6rmA7Iic7J20DQor6rmA7ZaJ7ZalDQor6rmA7ISx64yADQor6rmA7ZWY64+ZDQor6rmA7Iic7J20DQor6rmA7Iic7ZmYDQor6rmA67O06rWsDQor6rmA7JiB7JiBDQor6rmA7Iic7J6EDQor6rmA65GQ7IOdDQor6rmA7J6s6riwDQor6rmA7Z2s7YOcDQor6rmA7Iic7J6EDQor6rmA7JmE7Z2gDQor6rmA7LaY7ZmYDQor6rmA7IiY7IiYDQor6rmA7Iic7J6QDQor6rmA67SJ7IiYDQor6rmA7ISd6rSADQor6rmA66y47KeADQor6rmA7Iic7Zi4DQor6rmA6rK966y0DQor6rmA7KCV7JqpDQor6rmA67KU7KGwDQor6rmA7Iic7ZmUDQor6rmA7JiB7J20DQor6rmA7IiY642VDQor6rmA64KZ7JewDQor6rmA7Iic7Z2sDQor6rmA7KCV66eQDQor6rmA7KCV7IudDQor6rmA7Jil64yADQor6rmA7Iic7Z2sDQor6rmA7J6s7IudDQor6rmA7ZW07ZWcDQor6rmA6rSR6raMDQor6rmA7Iic7Z2sDQor6rmA67aE7IudDQor6rmA7JuQ7Zi4DQor6rmA6rWt7IudDQor6rmA7Iig7J20DQor6rmA7J2Y7Z2sDQor6rmA7ISx7JWUDQor6rmA66eM7J6sDQor6rmA7Iig7J20DQor6rmA7KSA7KeBDQor6rmA7KCV6riwDQor6rmA6reA64+MDQor6rmA7Iq56rWsDQor6rmA64+Z7ZiEDQor6rmA7JiB7J24DQor6rmAIOyInA0KK+q5gOyKueq1rA0KK+q5gO2ZlO2VtA0KK+q5gOyInOumvA0KK+q5gOuPmeyLnQ0KK+q5gOyKueuqqQ0KK+q5gOyDgeyErQ0KK+q5gOyihe2ZlA0KK+q5gOyYgeyImQ0KK+q5gOyKueuvvA0KK+q5gOygkOuPjA0KK+q5gO2DnOyaqQ0KK+q5gOq4sOq3vA0KK+q5gOyKueyglQ0KK+q5gOyihe2YuA0KK+q5gOyDgeyEnQ0KK+q5gOy2mOyImA0KK+q5gOyKueynhA0KK+q5gOyepeyyoA0KK+q5gOycoOq3vA0KK+q5gOyiheuMgA0KK+q5gOyKue2YuA0KK+q5gO2MkOyInA0KK+q5gOuqhe2drA0KK+q5gOygleq4iA0KK+q5gOyLnOqyvQ0KK+q5gOykgO2ZmA0KK+q5gOyKue2YuA0KK+q5gO2YuOyehA0KK+q5gOyLnOuNlQ0KK+q5gOykgO2drA0KK+q5gOyDge2MkA0KK+q5gOyEneusuA0KK+q5gOyLnOuPmQ0KK+q5gOybkO2ZmA0KK+q5gO2DnOq1kA0KK+q5gOuylOq3vA0KK+q5gOyLnOuemA0KK+q5gOuzkeq3nA0KK+q5gOq3ueyVoA0KK+q5gOuCqOuqqA0KK+q5gOyLnOyatA0KK+q5gOyYge2biA0KK+q5gOyaqeydvA0KK+q5gO2drOyLnQ0KK+q5gOyLnO2VmA0KK+q5gOycpOyImA0KK+q5gOyaqe2ZmA0KK+q5gOq3vOygkA0KK+q5gOyLnO2ZmA0KK+q5gOunjOywrA0KK+q5gOyjvO2YuA0KK+q5gOu2hOuNlQ0KK+q5gOyLnO2ZmA0KK+q5gOynhO2DnA0KK+q5gOyasOqyvQ0KK+q5gO2VmOuemA0KK+q5gOyLneq3nA0KK+q5gOyEseyWtQ0KK+q5gOydtOyjvA0KK+q5gOyDgeybkA0KK+q5gOyLoOyImQ0KK+q5gO2VhOyhsA0KK+q5gOuzkeyImQ0KK+q5gOygleuLrA0KK+q5gOyLoOyLnQ0KK+q5gOuCqO2YuA0KK+q5gOyInOyEnQ0KK+q5gO2DnOykgA0KK+q5gOyLoOyXtA0KK+q5gO2DnOybkA0KK+q5gO2XjOybkA0KK+q5gO2VhOygkA0KK+q5gOyLoOyasA0KK+q5gOuzteuPhA0KK+q5gO2biOyEnQ0KK+q5gOyerOybkA0KK+q5gOyLoOydvA0KK+q5gOuMgO2DnA0KK+q5gOu2hO2WpQ0KK+q5gO2YhOyImA0KK+q5gOyLpOqyvQ0KK+q5gOyehOuLrA0KK+q5gOygle2YuA0KK+q5gOuzkeyLnQ0KK+q5gOyLpOq0kQ0KK+q5gOuLrO2YuA0KK+q5gOygkOyErQ0KK+q5gOyjvOyasQ0KK+q5gOyLpOq0kQ0KK+q5gOuPhOyImA0KK+q5gOuFuOyXtA0KK+q5gOy2mOybkA0KK+q5gOyMjeq4uA0KK+q5gOygleuNlQ0KK+q5gOyYgeuFuA0KK+q5gOyWkeyEoA0KK+q5gOyMjeuhgA0KK+q5gOqyveuztQ0KK+q5gOyYge2YuA0KK+q5gO2DnOyImA0KK+q5gOyMjeu0iQ0KK+q5gOq4iOyZhA0KK+q5gOyaqeybkA0KK+q5gOusuOyatA0KK+q5gOyMjeyErQ0KK+q5gOyduOuPhA0KK+q5gOqyve2YuA0KK+q5gOyiheq2jA0KK+q5gOyMjeyVlA0KK+q5gOuPmeyImQ0KK+q5gOq4sOq1rA0KK+q5gOyInOyekA0KK+q5gOyVhOyImA0KK+q5gOyGkOq2jA0KK+q5gOyiheyImA0KK+q5gOq4iOydtA0KK+q5gOyVheydtA0KK+q5gOyInOyImA0KK+q5gOycpOyImA0KK+q5gOuPme2DnA0KK+q5gOyViOyImA0KK+q5gOyInOq4uA0KK+q5gOyDgeyImA0KK+q5gOq0ke2DnA0KK+q5gOyVlOuCqA0KK+q5gOyepeyDnQ0KK+q5gOu0ieyYpA0KK+q5gOuzkeyYpQ0KK+q5gOyVoOyXsA0KK+q5gOydteybkA0KK+q5gOy+jOyYpQ0KK+q5gCDrqqgNCivquYDslpHshJ0NCivquYDsp4TsmrQNCivquYDtlbTshKANCivquYDsmIHsm5ANCivquYDslpHsiJwNCivquYDsg4HshK0NCivquYDshLHtg5wNCivquYDtnazsl7QNCivquYDslpHsiJwNCivquYDssL3spIANCivquYDsnpHrnb0NCivquYDsnqzsiKANCivquYDslpHsi50NCivquYDqtZDsl7QNCivquYDsnbzrjZUNCivquYDrnpjstpwNCivquYDslpHsm4UNCivquYDsg4HrnpgNCivquYDshKDtmIQNCivquYDshLHqs6QNCivquYDslpHsm4UNCivquYDsiJzshJ0NCivquYDrqoXsiJwNCivquYDqsr3si50NCivquYDslpHsm5ANCivquYDsnbjquLANCivquYDrqoXtlZwNCivquYDshLHtkZwNCivquYDslpHso7wNCivquYDqtIDqtawNCivquYDrtInsnbwNCivquYDso7zsmrQNCivquYDslpHtmowNCivquYDrr7ztnawNCivquYDqtJHsmqkNCivquYDsmKXtmZgNCivquYDslpHtnaANCivquYDsnqztlZwNCivquYDrjIDqt5wNCivquYDsiJjrjZUNCivquYDslpHtnawNCivquYDqt5zqt5wNCivquYDrrLTsmrANCivquYDqsJXrp4wNCivquYDslrXrhYQNCivquYDssqDtmZQNCivquYDrjZXqsr0NCivquYDshLjrrLgNCivquYDslrXrp4wNCivquYDsnKTsiJgNCivquYDtmITqsbgNCivquYDtg5zrpaANCivquYDslrXrsLANCivquYDsuZjtmLgNCivquYDrs5HshLENCivquYDsiJzsg50NCivquYDslrXsiJgNCivquYDrtInqtIANCivquYDsmIHslYUNCivquYDsnKTqtowNCivquYDslrjsiJkNCivquYDshLHsnKQNCivquYDrrLjtmY0NCivquYDsooXrs7gNCivquYDslrjsi50NCivquYDsiJjsm5ANCivquYDstpjsi50NCivquYDrtoTqsr0NCivquYDsl7DshKANCivquYDrtIntmZgNCivquYDrs7XtmIQNCivquYDtmY3qsr0NCivquYDsl7DshKANCivquYDsooXrpaANCivquYDtmY3si50NCivquYDrjIDrj5kNCivquYDsl7DsiJgNCivquYDstpjqs6QNCivquYDsmIHtmZgNCivquYDsnZjsnpANCivquYDsl7DsiJgNCivquYDsoJXqt5wNCivquYDsoJXshLENCivquYDsjI3smKQNCivquYDsl7DsiJgNCivquYDsgrzsi50NCivquYDsmqnsuKENCivquYDsnbTsnbwNCivquYDsl7DsiJwNCivquYDquIjshJ0NCivquYDsp4Trj4QNCivquYDtlonsooUNCivquYDsl7DsnbQNCivquYDrp4zsi50NCivquYDrspTtg4ENCivquYDsooXsnqwNCivquYDsl7DsobANCivquYDsnbjssqANCivquYDrj5nqt7wNCivquYDrp5DsiJgNCivquYDsl7DsobANCivquYDshLHsg50NCivquYDsnbjqt5wNCivquYDsmqnsnpANCivquYDsl7Dso7wNCivquYDshJ3slZQNCivquYDshozrj5kNCivquYDshKDsiJgNCivquYDsl7DtlqUNCivquYDsnbjsooUNCivquYDtg5zsmqkNCivquYDsmIHsiJwNCivquYDsl7DtnawNCivquYDslpHqt7wNCivquYDsoJDso7wNCivquYDrs5Hso7wNCivquYDsl7DtnawNCivquYDtmJXtmY0NCivquYDsnqzquLgNCivquYDsiJjquLgNCivquYDsmIHqsJENCivquYDsooXrs7QNCivquYDssKzqsr0NCivquYDtg5zsmIENCivquYDsmIHqs4QNCivquYDsnKTrtoQNCivquYDsmKXqt5wNCivquYDtg5zrj4QNCivquYDsmIHqs4QNCivquYDqsJHsiJkNCivquYDqtazqs4QNCivquYDrj5nsl7ANCivquYDsmIHqs7UNCivquYDsg4HtmZQNCivquYDshLjsmrANCivquYDsspzsl7ANCivquYDsmIHqtIANCivquYDsoJXqsr0NCivquYDtlbTrr7wNCivquYDsmqnsnqwNCivquYDsmIHqtJENCivquYDsnKTquLgNCivquYDsnITsiJgNCivquYDqsr3qt5wNCivquYDsmIHqtZANCivquYDsmIHtg5wNCivquYDquLDtg5wNCivquYDsooXqsIENCivquYDsmIHqtawNCivquYDssYTtmZQNCivquYDsooXsm5ANCivquYDrs5HsnbwNCivquYDsmIHqtawNCivquYDsm5Dsm5ANCivquYDsmqntnawNCivquYDssqDsmqkNCivquYDsmIHqtawNCivquYDsmIHtg5wNCivquYDsmIHtmIQNCivquYDtlbTsi50NCivquYDsmIHqta0NCivquYDspIDsmqkNCivquYDsnoTsiJgNCivquYDrqbTshLENCivquYDsmIHqta0NCivquYDrj5nshLENCivquYDshLHtmIQNCivquYDsnqztmLgNCivquYDsmIHqt4ANCivquYDsiJzsp4QNCivquYDsiJzsmqkNCivquYDsoJXrj5kNCivquYDsmIHqt5wNCivquYDsmqnrspQNCivquYDrj5ntmZgNCivquYDsiJjsp4QNCivquYDsmIHqt5wNCivquYDshJ3shLENCivquYDqsr3qsr0NCivquYDtlZnsmIENCivquYDsmIHqt5wNCivquYDsmqnsi50NCivquYDqt4DrjZUNCivquYDsmIHtl4wNCivquYDsmIHqt5wNCivquYDtlZzsobANCivquYDqtazsnqwNCivquYDsmIHslrUNCivquYDsmIHqt5wNCivquYDrs5HsiJgNCivquYDtm4Trj4QNCivquYDtg5ztmZgNCivquYDsmIHqt6ANCivquYDsnqzqt5wNCivquYDrr7ztnaANCivquYDtlYTsmqkNCivquYDsmIHqt7wNCivquYDsp4TsnKQNCivquYDsnqzsi6wNCivquYDsnqzsnbwNCivquYDsmIHqt7wNCivquYDsmrDtmZgNCivquYDqsr3tg5wNCivquYDtmITrtIkNCivquYDsmIHquLANCivquYDrqoXsmKUNCivquYDsnKTsnoQNCivquYDqsr3smqkNCivquYDsmIHquLANCivquYDqtJHtmLgNCivquYDqsr3tmZgNCivquYDqsr3smKQNCivquYDsmIHquLANCivquYDqsbTso7wNCivquYDshJ3snZgNCivquYDtmJXsmrQNCivquYDsmIHquLANCivquYDtlZzspJENCivquYDrj5nsiJkNCivquYDslpHsmIENCivquYDsmIHquLgNCivquYDtnazshJ0NCivquYDshLHrnpgNCivquYDssL3tmIQNCivquYDsmIHquLgNCivquYDrqoXtmLgNCivquYDspJHsmqkNCivquYDsmqntg5wNCivquYDsmIHquLgNCivquYDsooXsiJgNCivquYDtjJDsmqkNCivquYDsmqnsiJkNCivquYDsmIHquLgNCivquYDshJ3siJwNCivquYDsmKTsi50NCivquYDsmIHshJ0NCivquYDsmIHrjIANCivquYDtlbTrhYQNCivquYDsmqnsnbQNCivquYDrhbjssqANCivquYDsmIHrjIANCivquYDsp4Dqt5wNCivquYDtg5ztnawNCivquYDsoJXtnawNCivquYDsmIHrj4QNCivquYDtg5zshJ0NCivquYDtg5zsnqwNCivquYDsg4HsspwNCivquYDsmIHrj4QNCivquYDsnqzroZ0NCivquYDshozsi50NCivquYDsooXtmLgNCivquYDsmIHrj4gNCivquYDsoJXrj4QNCivquYDsooXtlZkNCivquYDsnoTshK0NCivquYDsmIHrk50NCivquYDsnoTtmIQNCivquYDsnbjrj5kNCivquYDrr7jsiJwNCivquYDsmIHrnb0NCivquYDsoJXqt7wNCivquYDssL3tlqUNCivquYDsg4HsiJwNCivquYDsmIHrnoANCivquYDsi6Dqsr0NCivquYDsmqnrj4QNCivquYDsm5TtmZgNCivquYDsmIHrnoANCivquYDsnqztmZgNCivquYDsnKTsmqkNCivquYDsgrzrjZUNCivquYDsmIHrp4wNCivquYDroZ3snbwNCivquYDstpjssqANCivquYDrp5DqtJENCivquYDsmIHrp4wNCivquYDsnbzrtoANCivquYDsnqztg5wNCivquYDtmLjqt5wNCivquYDsmIHrp4wNCivquYDsirnqsJENCivquYDsjI3qsbQNCivquYDsooXsobANCivquYDsmIHrp4wNCivquYDsnqXsi50NCivquYDqt4DsnZENCivquYDsoJDsi50NCivquYDsmIHrqqgNCivquYDsi5ztmLgNCivquYDssKjrj5kNCivquYDshLHshKANCivquYDsmIHrqqgNCivquYDshLHsiJwNCivquYDsooXsnpANCivquYDqtJHsmIENCivquYDsmIHrr7gNCivquYDsm5DquLANCivquYDsg4HtmIQNCivquYDsnqzsiJgNCivquYDsmIHrr7gNCivquYDsooXshLENCivquYDsnZjsnbQNCivquYDshKDtmIQNCivquYDsmIHrsLANCivquYDsmIHquLgNCivquYDrqoXrrLgNCivquYDssL3snbQNCivquYDsmIHrsLANCivquYDsnKTsiKANCivquYDsmIHqt7wNCivquYDtlZntmowNCivquYDsmIHrtIkNCivquYDsooXtmLgNCivquYDsiJjrsLENCivquYDsnbjtmZgNCivquYDsmIHrtIkNCivquYDsg4HshJ0NCivquYDqtJHqta0NCivquYDshLHqsr0NCivquYDsmIHrtoANCivquYDsnqztmLgNCivquYDquLjqt7wNCivquYDtg5zrnpgNCivquYDsmIHruYgNCivquYDsoJXsnbgNCivquYDrrLjshJ0NCivquYDsiJjsm5ANCivquYDsmIHsgrwNCivquYDsiJjshJ0NCivquYDsmqnqs6QNCivquYDsnqzsoJUNCivquYDsmIHsgrwNCivquYDqt5zsl7QNCivquYDsnbXtmZgNCivquYDsmIHtmZgNCivquYDsmIHsg4ENCivquYDsmIHsp4ENCivquYDssL3siJgNCivquYDshLHsnpANCivquYDsmIHshJ0NCivquYDsg4HtlqUNCivquYDsnqzsiJgNCivquYDsp4TshLgNCivquYDsmIHshJ0NCivquYDsiJjrr7gNCivquYDrrLTssqANCivquYDqt5zspIANCivquYDsmIHshJ0NCivquYDsg4HsmIENCivquYDsg4Hqt5wNCivquYDrtInsnKQNCivquYDsmIHshJ0NCivquYDtmJXsl7ANCivquYDtjJDshK0NCivquYDsg4HsnbwNCivquYDsmIHshJ0NCivquYDsnYTsi50NCivquYDrs5HshKANCivquYDsnbTqsr0NCivquYDsmIHshJ0NCivquYDrr7jrs7UNCivquYDsmIHroZ0NCivquYDrjIDrp4wNCivquYDsmIHshLENCivquYDsm5Dtl4wNCivquYDrp7nsnbQNCivquYDrs5HsmrANCivquYDsmIHsiJgNCivquYDtl4zsg4ENCivquYDquIjsiJwNCivquYDsnqzrtoQNCivquYDsmIHsiJgNCivquYDtnazsiJkNCivquYDshLjquLgNCivquYDrs5HsiJgNCivquYDsmIHsiJgNCivquYDtmJXslaANCivquYDqsJHquLANCivquYDtnazsl7QNCivquYDsmIHsiJgNCivquYDsnqzqtZANCivquYDsiJzqtJENCivquYDsmqntmIQNCivquYDsmIHsiJgNCivquYDrtIntnawNCivquYDrjIDsi50NCivquYDtmqjssqANCivquYDsmIHsiJgNCivquYDshJ3ssqANCivquYDrrLTrrLUNCivquYDssqDsnpANCivquYDsmIHsiJgNCivquYDslpHquLANCivquYDsoJXsmrANCivquYDsmIHqt6ANCivquYDsmIHsiJgNCivquYDsoJDrtoQNCivquYDsiJzsnKQNCivquYDsmqntg5wNCivquYDsmIHsiJgNCivquYDqsJHrgpwNCivquYDso7ztnawNCivquYDrs5Hsl7QNCivquYDsmIHsiJgNCivquYDqsr3tnawNCivquYDsnbjtmLgNCivquYDsl7DsoJUNCivquYDsmIHsiJgNCivquYDrkZDrj4QNCivquYDtlYTtg5wNCivquYDsnbjsi50NCivquYDsmIHsiJgNCivquYDstpjtl4wNCivquYDspIDsiJwNCivquYDsg4HquLANCivquYDsmIHsiJgNCivquYDshLHtmLgNCivquYDquIjsobANCivquYDso7zsnbQNCivquYDsmIHsiJgNCivquYDtl4zqtowNCivquYDsp4TrhbgNCivquYDqs4TquLgNCivquYDsmIHsiJkNCivquYDsg4Hqt7wNCivquYDtlZzrqqkNCivquYDsg4Hsl7QNCivquYDsmIHsiJkNCivquYDsoJXsl7ANCivquYDsnbTshJwNCivquYDqs4Tqt7wNCivquYDsmIHsiJkNCivquYDqtozssqANCivquYDsmqnrjZUNCivquYDrj5nrp4wNCivquYDsmIHsiJkNCivquYDsnqzqt5wNCivquYDrp5DrtoQNCivquYDsmqnspIANCivquYDsmIHsiJkNCivquYDrjIDsiJgNCivquYDrr7zsi50NCivquYDsmIHshKANCivquYDsmIHsiJkNCivquYDtnazqt6ANCivquYDsooXqsr0NCivquYDsm5DrqqgNCivquYDsmIHsiJkNCivquYDssqDsmIENCivquYDsp4DrrLgNCivquYDtmJzrsLANCivquYDsmIHsiJkNCivquYDsiJjsnbgNCivquYDsmIHsp4QNCivquYDspJHqsJENCivquYDsmIHsiJkNCivquYDqsJHtnJgNCivquYDssKjsmqkNCivquYDquLDshKANCivquYDsmIHsiJkNCivquYDsnZjqsr0NCivquYDtlZzqta0NCivquYDsoJXtlokNCivquYDsmIHsiJkNCivquYDsnqzsnqwNCivquYDri6zsi50NCivquYDquIjrtoQNCivquYDsmIHsiJkNCivquYDtg53tg50NCivquYDqt7ztmLgNCivquYDsuZjqtZANCivquYDsmIHsiJwNCivquYDsm5Dsl7ANCivquYDsm5Dsi6QNCivquYDqsr3siJgNCivquYDsmIHsiJwNCivquYDqs4TrjZUNCivquYDsg4HssqANCivquYDquLDquLANCivquYDsmIHsiJwNCivquYDsm5Tsl7QNCivquYDshLHtmZgNCivquYDrj5nsooUNCivquYDsmIHsiJwNCivquYDsspzshLENCivquYDtmY3qtawNCivquYDsl7DtmJwNCivquYDsmIHsi50NCivquYDsg4HquLgNCivquYDshJ3sl7ANCivquYDtnazqtIANCivquYDsmIHsi50NCivquYDssL3slaANCivquYDrjIDrspQNCivquYDsirnsnoQNCivquYDsmIHsi50NCivquYDtmITsmqkNCivquYDsoITrk50NCivquYDrr7ztmZQNCivquYDsmIHsi50NCivquYDsmqnso7wNCivquYDsnoTslZQNCivquYDrs5HtmLgNCivquYDsmIHsi50NCivquYDtg5zsi50NCivquYDsmqnsiJgNCivquYDsoJXsnbQNCivquYDsmIHsi50NCivquYDtmJXqt7wNCivquYDsg4HtnaANCivquYDspJHtmLgNCivquYDsmIHsi50NCivquYDsg4Hsi50NCivquYDqtazsiJkNCivquYDtko3tnawNCivquYDsmIHsi50NCivquYDrjIDtlZwNCivquYDsi5zsmKUNCivquYDsnoTqtIANCivquYDsmIHsi50NCivquYDsnqXsiJkNCivquYDtjJDtmIQNCivquYDsnqzsi50NCivquYDsmIHsi50NCivquYDssL3sm4UNCivquYDsnqztm4gNCivquYDsooXsiJwNCivquYDsmIHsi6ANCivquYDtg5zsiJgNCivquYDrj5nshK0NCivquYDqta3qsJENCivquYDsmIHsmKUNCivquYDsnbjtmIQNCivquYDshLHtnawNCivquYDsnqzrs7UNCivquYDsmIHsmKUNCivquYDssL3tlZwNCivquYDrtInroKQNCivquYDtmY3smrENCivquYDsmIHsmKUNCivquYDtg53rk50NCivquYDsmKTsmIENCivquYDquLDsobANCivquYDsmIHsmKUNCivquYDrjIDtmZgNCivquYDrs5HtmJUNCivquYDsmIHsi50NCivquYDsmIHsmYQNCivquYDrp4ntmLgNCivquYDsmIHrp4wNCivquYDshoztmZQNCivquYDsmIHsmYQNCivquYDsg4HssYQNCivquYDsp4DsnbwNCivquYDsoJXspIANCivquYDsmIHsmrANCivquYDrj5nsmrQNCivquYDrtoTsmIENCivquYDtnazrqqgNCivquYDsmIHsm5QNCivquYDsmIHssqANCivquYDtg5zrp4wNCivquYDri6ztmLgNCivquYDsmIHsnKQNCivquYDsoJXrp4wNCivquYDquLDshLENCivquYDsmIHquLANCivquYDsmIHsnYANCivquYDsg4HshK0NCivquYDtg5zrs7UNCivquYDri6zrrLgNCivquYDsmIHsnbQNCivquYDsg4HrsLANCivquYDsmIHsl7ANCivquYDsirnrj4wNCivquYDsmIHsnbgNCivquYDsmIHtmLgNCivquYDtmJzsnqwNCivquYDrnpjrj4QNCivquYDsmIHsnbwNCivquYDtg5ztg5wNCivquYDsmKXqt5wNCivquYDsp4DtmZQNCivquYDsmIHsnbwNCivquYDrs5HrqqgNCivquYDssq3si50NCivquYDqsr3sp4QNCivquYDsmIHsnpANCivquYDtg4Dsm5ANCivquYDsgqztnawNCivquYDrs5HtmLgNCivquYDsmIHsnpANCivquYDsiJnsp4QNCivquYDshozquLgNCivquYDtg5ztg5wNCivquYDsmIHsnpANCivquYDsoJXsiJkNCivquYDtg5zquLgNCivquYDsgrzsg50NCivquYDsmIHsnpANCivquYDtg5zqs6ANCivquYDshozstpgNCivquYDrr7zsl7ANCivquYDsmIHsnpANCivquYDsg4HssKwNCivquYDrgpnqt5wNCivquYDsirnsl7QNCivquYDsmIHsnpANCivquYDsmrDspIANCivquYDsi5zsiKANCivquYDtlbTsiJkNCivquYDsmIHsnpANCivquYDqsJXtmqgNCivquYDsnqzsm4UNCivquYDsmIHtmIQNCivquYDsmIHsnpANCivquYDtmLjtg5wNCivquYDsp4TsmqkNCivquYDrr7zsiJwNCivquYDsmIHsobANCivquYDsnbjrs7UNCivquYDqtJHsnqwNCivquYDssKjqtZANCivquYDsmIHsobANCivquYDsooXsnoUNCivquYDqsr3siJgNCivquYDrj5nsmIENCivquYDsmIHso7wNCivquYDrjIDsi50NCivquYDsiJjsobANCivquYDsmqntmY0NCivquYDsmIHspIANCivquYDsm5DsmrANCivquYDsnqzsmqkNCivquYDsg4HtnawNCivquYDsmIHspIANCivquYDqs6TsspwNCivquYDsgqzsmYQNCivquYDshJ3qt7wNCivquYDsmIHspIANCivquYAg6ri4DQor6rmA7ISx7J6QDQor6rmA7ISd66OhDQor6rmA7JiB7KSADQor6rmA67SJ7IiYDQor6rmA6riI7IiYDQor6rmA7ZWE7JqpDQor6rmA7JiB7KeEDQor6rmA7LCo7YyUDQor6rmA7IOB6rWsDQor6rmA7LKc7ZmUDQor6rmA7JiB7KeEDQor6rmA7Jew7ISgDQor6rmA7KCV7KeADQor6rmA66eQ7KO8DQor6rmA7JiB7KeEDQor6rmA7Jyg7Z2sDQor6rmA7J6l7J28DQor6rmA7Zi46re8DQor6rmA7JiB7KeEDQor6rmA7KKF7KGwDQor6rmA7JiB7ZWcDQor6rmA7YOc66OhDQor6rmA7JiB7KeRDQor6rmA6re87J6QDQor6rmA7KCV6raMDQor6rmA64us7LKgDQor6rmA7JiB7KeRDQor6rmA7Jqw7ZiEDQor6rmA7KCV6rG0DQor6rmA64+Z7IiYDQor6rmA7JiB7LKgDQor6rmA64+Z7JewDQor6rmA7ZWc7ISgDQor6rmA65GQ7YOcDQor6rmA7JiB7LKgDQor6rmA7IOB7ZaJDQor6rmA7KCV6rOEDQor6rmA7JiB6raMDQor6rmA7JiB7LKgDQor6rmA6rK97ZWZDQor6rmA67O17ZiEDQor6rmA7IOB6raMDQor6rmA7JiB7LaYDQor6rmA6rec7ZuIDQor6rmA7IK87JqwDQor6rmA7ISx7ZmYDQor6rmA7JiB7LaYDQor6rmA7ISx7JuQDQor6rmA7JiB7LacDQor6rmA7IOB6raMDQor6rmA7JiB7LacDQor6rmA7ISx6re8DQor6rmA7J6s64+ZDQor6rmA6re87ZmYDQor6rmA7JiB7LacDQor6rmA7IOB7YOdDQor6rmA7JiB6rWtDQor6rmA7J6s7J6sDQor6rmA7JiB7LacDQor6rmA7ZiE64+EDQor6rmA7Jyk7JilDQor6rmA7Zi47JqpDQor6rmA7JiB7LacDQor6rmA66eM7ZmUDQor6rmA7KKF7JmEDQor6rmA7Jqw64+EDQor6rmA7JiB7LmgDQor6rmA7IOB7IicDQor6rmA7JiB7IudDQor6rmA7Jyk6recDQor6rmA7JiB7YOcDQor6rmA7ZWc66GdDQor6rmA7JiB7J6QDQor6rmA67OR7J28DQor6rmA7JiB7YOcDQor6rmA7IOB7ZiEDQor6rmA7Jm466qoDQor6rmA67aE64yADQor6rmA7JiB7YOdDQor6rmA7JiB7IudDQor6rmA7Jew7JilDQor6rmA7KKF7LCsDQor6rmA7JiB7YOdDQor6rmA7JuU7ZeMDQor6rmA66eQ7ZqoDQor6rmA7LKt7LKcDQor6rmA7JiB7YOdDQor6rmA7IiY7KCVDQor6rmA6rec7JqwDQor6rmA7ZuI642VDQor6rmA7JiB7YOdDQor6rmA7KKF7YOcDQor6rmA7Zi467KUDQor6rmA67O17JqpDQor6rmA7JiB7ZWZDQor6rmA7J217JikDQor6rmA7IOB7IiYDQor6rmA7J246recDQor6rmA7JiB7ZWcDQor6rmA7JuQ6rSADQor6rmA7ISx7ZiVDQor6rmA7JuU6ri4DQor6rmA7JiB7ZiEDQor6rmA7Zi46riwDQor6rmA6riI7JuQDQor6rmA7YOc7IiYDQor6rmA7JiB7Zi4DQor6rmA7JiB6rWsDQor6rmA7J6s7JewDQor6rmA7Iig7JuQDQor6rmA7JiB7Zi4DQor6rmA7JiB7ZmYDQor6rmA7Zqo6raMDQor6rmA6rK96re8DQor6rmA7JiB7Zi4DQor6rmA7Jik6recDQor6rmA7KCQ7KCBDQor6rmA7LCo7ZmYDQor6rmA7JiB7Zi4DQor6rmA7Iic7IudDQor6rmA7IaM7YOcDQor6rmA7ZWZ7IigDQor6rmA7JiB7Zi4DQor6rmA7IaM7JqwDQor6rmA7J6s7JiBDQor6rmA7Iic7IStDQor6rmA7JiB7Zi4DQor6rmA7ZiE7ISdDQor6rmA67OR7IigDQor6rmA7KKF66qoDQor6rmA7JiB7Zi4DQor6rmA7KKF64yADQor6rmA7KCV7LKgDQor6rmA7ZiE7ZmYDQor6rmA7JiB7Zi4DQor6rmA7Lap7JewDQor6rmA67OR7ZiEDQor6rmA7YyQ7KKFDQor6rmA7JiB7Zi4DQor6rmA7ISx66GcDQor6rmA66eM7LKgDQor6rmA7JiB642VDQor6rmA7JiB7ZmUDQor6rmA7KKF7JqwDQor6rmAIOqyvQ0KK+q5gO2XjOykgA0KK+q5gOyYge2ZmA0KK+q5gOqwkeyInA0KK+q5gOyerOyVoA0KK+q5gOyEseunjA0KK+q5gOyYge2ZmA0KK+q5gOyYgeyhsA0KK+q5gOyduO2ZmA0KK+q5gOq4sOydvA0KK+q5gOyYge2ZmA0KK+q5gO2drOyYgQ0KK+q5gOq0keyVoA0KK+q5gOywveyglQ0KK+q5gOyYge2ZmA0KK+q5gOuvvOqyvQ0KK+q5gOu0ie2ZmA0KK+q5gOyepeyKuQ0KK+q5gOyYge2ZmA0KK+q5gOygleuMgA0KK+q5gO2YhOyImQ0KK+q5gOyDgeuwsA0KK+q5gOyYge2drA0KK+q5gOyDgeyEuA0KK+q5gOygle2drA0KK+q5gOyCvOuTnQ0KK+q5gOyYge2drA0KK+q5gOyihe2ZmA0KK+q5gOyDgeu2gA0KK+q5gOydvOyInA0KK+q5gOyYge2drA0KK+q5gCDsnpANCivquYDsnbzshJ0NCivquYDshJ3rk50NCivquYDsmIHtnawNCivquYDsmqnsg4ENCivquYDqsr3shJ0NCivquYDshozqt7wNCivquYDsmIHtnawNCivquYDqt5ztnawNCivquYDsmIHsnqUNCivquYDsnqzsiJgNCivquYDsmIHtnawNCivquYDsp4Ttg5wNCivquYDtmY3tg5wNCivquYDshLHrkZANCivquYDsmKTquIgNCivquYDqsr3ssqANCivquYDsoJXtl4wNCivquYDshLHsnbQNCivquYDsmKTquLANCivquYDrk53rjZUNCivquYDsnqzsobANCivquYDqsr3shJ0NCivquYDsmKTsiJgNCivquYDrp4ztnawNCivquYDsoJXrs7UNCivquYDrkZDsnqwNCivquYDsmKTspJENCivquYDshLHsooUNCivquYDshLHrpqwNCivquYDsnKTrs7QNCivquYDsmKTspJENCivquYDtg5zspJENCivquYDsuaDrnoANCivquYDsiJjtmZQNCivquYDsmKTtg5wNCivquYDsg4HquLgNCivquYDsnqzshLENCivquYDqt5zquLANCivquYDsmKTtmIQNCivquYDsmIHsiJwNCivquYDsp4Dtg5wNCivquYDsg4HtmZgNCivquYDsmKXrgqgNCivquYDstqnso7wNCivquYDquLDspIANCivquYDsp4TquLgNCivquYDsmKXrtoQNCivquYDsnbjtlZwNCivquYDquLDsiJgNCivquYDqsJHsl7QNCivquYDsmKXshKANCivquYDsm5DtlqUNCivquYDrjIDsg50NCivquYDtg5zsm5ANCivquYDsmKXshKANCivquYDshJ3snoQNCivquYDrqoXtl4wNCivquYDqtIDshLgNCivquYDsmKXshKANCivquYDrtInqt5wNCivquYDsmIHsmqkNCivquYDtg5zsmrANCivquYDsmKXsiJgNCivquYDtlZzqt7wNCivquYDstpjrj5kNCivquYDrs5Htg5wNCivquYDsmKXsiJwNCivquYDrgpnrqoUNCivquYDspJHsiJwNCivquYDsmIHqtZANCivquYDsmKXsiJwNCivquYDtg5zso7wNCivquYDsnYDshJ0NCivquYDsnbzsmqkNCivquYDsmKXsiJwNCivquYDrjIDtlZkNCivquYDsirnshKANCivquYDqt5ztmLgNCivquYDsmKXsiJwNCivquYDtg5zsiJgNCivquYDsmbjsnbQNCivquYDtlZzsiKANCivquYDsmKXsiJwNCivquYDsg4Htl4wNCivquYDrp4zsmIENCivquYDsnqzquLANCivquYDsmKXsiKANCivquYDssKzssKwNCivquYDtnaztmZgNCivquYDshqHsl7ANCivquYDsmKXsl7ANCivquYDshKDsiJgNCivquYDsmIHtmLgNCivquYDqtJHsmqkNCivquYDsmKXsnbQNCivquYDsmqnrqqkNCivquYDsp4TsiJgNCivquYDsiJzstpgNCivquYDsmKXsnbQNCivquYDrj5nsmIENCivquYDqt5zshLENCivquYDsmKXsiJwNCivquYDsmKXsnpANCivquYDsnZHtnawNCivquYDsnqzrs7UNCivquYDrtIntnawNCivquYDsmKXsoJUNCivquYDshLHrnb0NCivquYAg7JiBDQor6rmA7Zi47ISxDQor6rmA7Jil7KSRDQor6rmA7ZeM7ZmYDQor6rmA7ISd6ri4DQor6rmA7ISx7KSADQor6rmA7Jil7LKcDQor6rmA7IOB66qoDQor6rmA7ZeM66eMDQor6rmA7YOc7IiYDQor6rmA7JmE7ISdDQor6rmA7ZmU6rWsDQor6rmA7ZWZ7IigDQor6rmA7KKF7J6QDQor6rmA7JmE7IiYDQor6rmA7ZaJ7YOcDQor6rmA6rec66qpDQor6rmA7ISx6riwDQor6rmA7JmE7IicDQor6rmA7ISx64yADQor6rmA7Iic7IiZDQor6rmA6rK97JqpDQor6rmA7JmV6recDQor6rmA66eQ7IiZDQor6rmA7JuU7Je0DQor6rmA7KKF7IudDQor6rmA7JmV7IicDQor6rmA7ZWZ7YOcDQor6rmA67SJ7JilDQor6rmA64+Z7JWUDQor6rmA7Jm466eMDQor6rmA7JiB7KeEDQor6rmA7J6s64+ZDQor6rmA7JiB7KGwDQor6rmA7Jm466eMDQor6rmA7J286riwDQor6rmA67OR7J6sDQor6rmA7KCV67mIDQor6rmA7Jm467aEDQor6rmA7J247KGwDQor6rmA7JiB7JewDQor6rmA7Iic7ZqoDQor6rmA7Jm47IOBDQor6rmA642V7Iq5DQor6rmA7J2A7IiYDQor6rmA67SJ7JqpDQor6rmA7Jm47IOdDQor6rmA7JiB7ZiEDQor6rmA7LC97ZmUDQor6rmA7JuQ7Jq0DQor6rmA7Jm47IiYDQor6rmA6riI7IiYDQor6rmA7KeE7ISdDQor6rmA7IiY7Zi4DQor6rmA7Jm47IicDQor6rmA66eQ7Zi4DQor6rmA66eQ7JqpDQor6rmA7KeE7ISxDQor6rmA7Jm47IicDQor6rmA7IaM67O1DQor6rmA7KCV7IudDQor6rmA66eM7J20DQor6rmA7Jm47IigDQor6rmA7Jqp7ISxDQor6rmA7YOc7IudDQor6rmA7KO86rOEDQor6rmA7Jqp6rCRDQor6rmA67OR7ISgDQor6rmA6riI6rCRDQor6rmA7LKg7J28DQor6rmA7Jqp6rK4DQor6rmA7KSR7ZuIDQor6rmA7YOc7ZiEDQor6rmA7JiB7ZmYDQor6rmA7Jqp6rWsDQor6rmA6rOE7JyoDQor6rmA7JiB7JewDQor6rmA7Iq567CwDQor6rmA7Jqp6rWtDQor6rmA7KKF656YDQor6rmA7J6s6riwDQor6rmA642V7ISxDQor6rmA7Jqp6rWtDQor6rmA642V7ISdDQor6rmA7JiB7IiYDQor6rmA7J287ZeMDQor6rmA7Jqp6recDQor6rmA7YOc7LKgDQor6rmA7KKF7IiYDQor6rmA7Jil7YOcDQor6rmA7Jqp6recDQor6rmA7YyQ64+MDQor6rmA6rec7ZmYDQor6rmA6rCR6rK9DQor6rmA7Jqp6recDQor6rmA7ISx7ISgDQor6rmA7J2A7IiYDQor6rmA7KCV66qFDQor6rmA7Jqp6regDQor6rmA7KCV7IiYDQor6rmA7IiY7J28DQor6rmA7ZmN6recDQor6rmA7Jqp6re8DQor6rmA7J6E67aADQor6rmA7ISd67aEDQor6rmAIO2YuA0KK+q5gOyaqeq3vA0KK+q5gOyerOuTnQ0KK+q5gO2ZjeyLnQ0KK+q5gOuPme2doA0KK+q5gOyaqeq3vA0KK+q5gOuCqOq3vA0KK+q5gOyaqeyEnQ0KK+q5gOuzke2VmA0KK+q5gOyaqeq4sA0KK+q5gOyGjO2YuA0KK+q5gO2aqOyYpA0KK+q5gO2MkOyihQ0KK+q5gOyaqeq4uA0KK+q5gOyEse2ZqQ0KK+q5gOuRkOyIoA0KK+q5gOygleuwsA0KK+q5gOyaqeq4uA0KK+q5gOq0keq1rQ0KK+q5gO2DnOydtA0KK+q5gOu0ieyaqQ0KK+q5gOyaqeuCqA0KK+q5gO2YhOuNlQ0KK+q5gOyEoOuqqA0KK+q5gOygleq3vA0KK+q5gOyaqeuMgA0KK+q5gOyYge2DnA0KK+q5gOykgOqzpA0KK+q5gOyInOyLnQ0KK+q5gOyaqeuMgA0KK+q5gO2DnOyImA0KK+q5gOyyoOyXtA0KK+q5gOy2mOuNlQ0KK+q5gOyaqeuNlQ0KK+q5gOyepeyInA0KK+q5gOyZuO2DnA0KK+q5gOyWteyImA0KK+q5gOyaqeuPhA0KK+q5gOyImOyEnQ0KK+q5gOuPme2VmA0KK+q5gOuzkeyynA0KK+q5gOyaqeuPjA0KK+q5gOyiheyDgQ0KK+q5gOyInOq3vA0KK+q5gOyehO2ZmA0KK+q5gOyaqeuPmQ0KK+q5gOuzke2aqA0KK+q5gOyDgeq3nA0KK+q5gOykkeq4sA0KK+q5gOyaqeuTnQ0KK+q5gOq4sOyXhQ0KK+q5gOybkO2YhA0KK+q5gO2VtO2YhA0KK+q5gOyaqeunjA0KK+q5gOyiheusuA0KK+q5gOywveyLnQ0KK+q5gOq4iOq3nA0KK+q5gOyaqeunjA0KK+q5gOyiheuwsA0KK+q5gOu2gO2YuA0KK+q5gO2DnO2RnA0KK+q5gOyaqeusuA0KK+q5gOuzkeuqhQ0KK+q5gOygleybkA0KK+q5gOunjOyIoA0KK+q5gOyaqeuwsA0KK+q5gOyYpe2drA0KK+q5gO2VtOyaqQ0KK+q5gO2VtO2YhA0KK+q5gOyaqeuwsA0KK+q5gOyInOuNlQ0KK+q5gOycpOuztQ0KK+q5gOygleyXsA0KK+q5gOyaqeyEnQ0KK+q5gOyihe2ZmA0KK+q5gOuzkeyImA0KK+q5gOyYge2DnQ0KK+q5gOyaqeyEnQ0KK+q5gOuNleycpA0KK+q5gOq4sOq4sA0KK+q5gOyXtOyaqQ0KK+q5gOyaqeyEoA0KK+q5gO2DnOyYpQ0KK+q5gOyImOq1kA0KK+q5gOyInOyCvA0KK+q5gOyaqeyImA0KK+q5gOyerO2DnA0KK+q5gOyYgeuPmQ0KK+q5gOycpOyImA0KK+q5gOyaqeyImA0KK+q5gOydkeyasQ0KK+q5gOyYpeyInA0KK+q5gOyiheuCqA0KK+q5gOyaqeyImA0KK+q5gOyDgeyImA0KK+q5gOywqOuegA0KK+q5gOyEneqzhA0KK+q5gOyaqeyImA0KK+q5gOyiheyEnQ0KK+q5gOyihe2YhA0KK+q5gOyiheuhgA0KK+q5gOyaqeyImA0KK+q5gOyCvOyEnQ0KK+q5gOyiheyynA0KK+q5gOyerOyasA0KK+q5gOyaqeyImA0KK+q5gOy2mOu0iQ0KK+q5gOyYgeynhA0KK+q5gOq4sOyglQ0KK+q5gOyaqeyImA0KK+q5gOyGjO2doA0KK+q5gOyImOuemA0KK+q5gOywveyekA0KK+q5gOyaqeyImA0KK+q5gOyKueuCqA0KK+q5gOuRkOuPmQ0KK+q5gCDtmZgNCivquYDsmqnsiKANCivquYDqsr3snbQNCivquYDsmKXrqoUNCivquYDsooXtg4ENCivquYDsmqnsiKANCivquYDrqoXshJ0NCivquYDsmIHqtawNCivquYDsiJjtmIQNCivquYDsmqnsi50NCivquYDsl7DsmqkNCivquYDsg4HtmZgNCivquYDsnqzsiJgNCivquYDsmqnsi50NCivquYDsnqzsobANCivquYDsmrDtnawNCivquYDrs5HrpZwNCivquYDsmqnslZQNCivquYDsoJXtmLgNCivquYDshJzrtIkNCivquYDrj5nrsLANCivquYDsmqnslZQNCivquYDrs5HrnoANCivquYDsg4HshKANCivquYDrs5HsnKgNCivquYDsmqnsmrQNCivquYDsoJXqt5wNCivquYDqt4DquLANCivquYDstqnsiJkNCivquYDsmqnsmrQNCivquYDrrLTsiJgNCivquYDso7ztjJQNCivquYDrp7ntmIQNCivquYDsmqnsmrQNCivquYDsoJXstpgNCivquYDshLHsiJwNCivquYDrqoXtmZgNCivquYDsmqnsmrQNCivquYDsoJXtnaANCivquYDsmIHsmrANCivquYDsnZjrjZUNCivquYDsmqnsnKQNCivquYDsp4TsobANCivquYDsiJjqsJENCivquYDsmIHqsIENCivquYDsmqnsnbQNCivquYDsoJXsi50NCivquYDsp4TsmIENCivquYDtlZnqt5wNCivquYDsmqnsnbUNCivquYDsnqztmLgNCivquYDrj5nspIANCivquYDrj4TsmqkNCivquYDsmqnsnpANCivquYDtlZnsmqkNCivquYDstpjtlZgNCivquYDtnazsmYQNCivquYDsmqnsoIQNCivquYDshLHsmYQNCivquYDsnqzsm5ANCivquYDtg5zsl7QNCivquYDsmqnso7wNCivquYDtmITqt7wNCivquYDshLHsiJwNCivquYDshKDsnpANCivquYDsmqnso7wNCivquYDshJ3sobANCivquYDtlbTsmqkNCivquYDslrXshJ0NCivquYDsmqnspIANCivquYDsnKTsmIENCivquYDshLHsnqwNCivquYDsmIHsp4ANCivquYDsmqnspIANCivquYDri6zqtZANCivquYDsmIHsiJgNCivquYDsoJXqsrgNCivquYDsmqnssqANCivquYDsnqzqtJENCivquYDshLHtm4gNCivquYDsnbjtmZgNCivquYDsmqnssqANCivquYDsiJjsi50NCivquYDsnKTssqANCivquYDspJHrqqkNCivquYDsmqnssqANCivquYDssKjsobANCivquYDsnYTshK0NCivquYDsiJjsiJgNCivquYDsmqnstpwNCivquYDsmIHshK0NCivquYDrs5HsobANCivquYDrp4ztmLgNCivquYDsmqnstpwNCivquYDssL3spIANCivquYDsoJXsnKQNCivquYDsmIHrjZUNCivquYDsmqntg50NCivquYDtlZzsobANCivquYDsmqnsiJgNCivquYDsnbTsiKANCivquYDsmqntg50NCivquYDtmJXtlZkNCivquYDqtJHsi50NCivquYDsnqzsnpANCivquYDsmqntjJANCivquYDsooXsm5ANCivquYDsooXquLgNCivquYDrj5ntmLgNCivquYDsmqntlZkNCivquYDshLHsuZkNCivquYDrrLTsi6QNCivquYDsmIHshLENCivquYDsmqntlbQNCivquYDsiJzsiJgNCivquYDrqoXtg4ENCivquYDsg4Hrp7kNCivquYDsmqntmIQNCivquYDsnqztlqUNCivquYDsmIHsnKQNCivquYDshJ3qt5wNCivquYDsmqntmLgNCivquYDsooXrp4wNCivquYDrj5nslYUNCivquYDssqDshK0NCivquYDsmqntmZQNCivquYDtmZTsiJgNCivquYDtlbTsi50NCivquYDrs7XslrgNCivquYDsmqntmZQNCivquYDrp4jtmZgNCivquYDsmqnstpgNCivquYDrs5HrtoQNCivquYDsmqntmZQNCivquYDrrLTqsr0NCivquYDqsr3rj5kNCivquYDsnYTqt6ANCivquYDsmqntmZgNCivquYDsnqzqsr0NCivquYDshLHshKANCivquYDqsJHtmLgNCivquYDsmqntmZgNCivquYDsiJjsmYQNCivquYDshLjslYgNCivquYDrkZDtnawNCivquYDsmqntmZgNCivquYDrj5nsmrANCivquYDtnazqs6QNCivquYDshLHsnKQNCivquYDsmqntmZgNCivquYDsnbjsi50NCivquYDrgqjslaANCivquYDsm5DslZQNCivquYDsmqntmowNCivquYDtg4Dqt7wNCivquYDsmIHsiJkNCivquYDtla3smIENCivquYDsmrDqsqwNCivquYDsnKTrs7UNCivquYDshJ3shLENCivquYDsnbjtg5wNCivquYDsmrDqs6QNCivquYDrqoXsmqkNCivquYDshLjsp4QNCivquYDsiJzshJ0NCivquYDsmrDquIgNCivquYDsnqzrj4QNCivquYDsg4HquLANCivquYDtmJXrhbgNCivquYDsmrDquLANCivquYDri6TsmrANCivquYDrs5HsmqkNCivquYDstpjsnbQNCivquYDsmrDshJ0NCivquYDtlZntmZQNCivquYDrqoXrtoANCivquYDsooXrjZUNCivquYDsmrDsiJgNCivquYDsnqzquLgNCivquYDsmKXsiJgNCivquYDqsJHqs6QNCivquYDsmrDsi50NCivquYDtmY3rnb0NCivquYDqsr3snpANCivquYDtmLjrnpgNCivquYDsmrDsi50NCivquYDsoJXroZ0NCivquYDsgrzsobANCivquYDsg4HsiJgNCivquYDsmrDsl7ANCivquYDsgrzsobANCivquYDri6zsiJwNCivquYDsoJXrj5kNCivquYDsmrDsooUNCivquYDsnqzsmrQNCivquYDso7ztmLgNCivquYDrs5Hrj5kNCivquYDsmrDspJENCivquYDsnbjqt5wNCivquYDrs5HqtowNCivquYDrrLTtmZgNCivquYDsmrDssKwNCivquYDsnKDsl7QNCivquYDtmITsmIENCivquYDsirnsi50NCivquYDsmrDssqANCivquYDso7zrj4QNCivquYDrtInquLANCivquYDsnqzsspwNCivquYDsmrDtlZwNCivquYDrs7XtmLgNCivquYDsooXsmYQNCivquYDsp4DrqqgNCivquYDsmrDtmIQNCivquYDrs5HtnawNCivquYDsiJjqta0NCivquYDso7zsnqwNCivquYDsmrDtmIQNCivquYDqsr3sg4ENCivquYDsg4HquLANCivquYDsnqzqs6QNCivquYDsmrDtmZgNCivquYDsooXrrJgNCivquYDtmY3smrQNCivquYDsg4Htg5wNCivquYDsmrDtnawNCivquYDsooXtmLgNCivquYDshLHtj4kNCivquYDsnZjqt5wNCivquYDsmrHsg50NCivquYDrj4TrtoQNCivquYDqta3rtIkNCivquYDshLHsi50NCivquYDsmrHssL0NCivquYDsp4TsnpANCivquYDspJHrp4wNCivquYDquLDtmLgNCivquYDsmrTquLgNCivquYDssYTsiJwNCivquYDsmIHrp4wNCivquYDstpjsnKQNCivquYDsmrTrgqgNCivquYDsspzsl7ANCivquYDtlbTqt7wNCivquYDsnbjsiJwNCivquYDsmrTrsLANCivquYDquLDrnpgNCivquYDsnoTsiJgNCivquYDrj5nsm5ANCivquYDsmrTshLgNCivquYDsg4Hri6wNCivquYDsnqzshKQNCivquYDsmKXspIANCivquYDsmrTsi50NCivquYDssL3qt7wNCivquYDrrLjqt7wNCivquYDsmrTsiJkNCivquYDsmrTsi50NCivquYDrs5HrhYANCivquYDtg5ztm4gNCivquYDssL3quLANCivquYDsmrTsmrANCivquYDtnazrqoUNCivquYDsoJXsm5ANCivquYDshKDsnYANCivquYDsmrTsmrANCivquYDsiJzsl7QNCivquYDsmIHssKwNCivquYDsmqnsnoQNCivquYDsmrTsobANCivquYDsmIHsi6ANCivquYDsmIHroYANCivquYDqt6DsnbwNCivquYDsmrTtg5wNCivquYDqtJHrhbgNCivquYDshLHsmrENCivquYDrj4TsiJgNCivquYDsmrTtmLgNCivquYDqt7zquLgNCivquYDqsJXtmLgNCivquYDqt7zqt5wNCivquYDsm5Dqs6QNCivquYDshoztmLgNCivquYDtmITqt6ANCivquYDsnqzsiJwNCivquYDsm5Dqt5wNCivquYDsmKTsmIENCivquYDrp4ztnawNCivquYDsg4HsiJwNCivquYDsm5DquLANCivquYDshozsuaANCivquYDqt7zsiJgNCivquYDsiJjrs7UNCivquYDsm5DquLgNCivquYDrqr3sooUNCivquYDtg5zqtawNCivquYDsooXsiJgNCivquYDsm5Drj4QNCivquYDsiJzsiJkNCivquYDrj4TsmrANCivquYDrhbjsiJgNCivquYDsm5Drj4wNCivquYDqtJHsiJgNCivquYDsnqzsmqkNCivquYDtg5zsnbwNCivquYDsm5Dsg4ENCivquYDrr7jsnpANCivquYDsg4HsmrANCivquYDssqDsnbwNCivquYDsm5DshJ0NCivquYDrs7Xtl4wNCivquYDsirnsl7QNCivquYDsgrzrjZUNCivquYDsm5DshJ0NCivquYDsmrDtmZgNCivquYDsmKXshKANCivquYDqtJHtmLgNCivquYDsm5DsiJgNCivquYDtmITsiKANCivquYDtg5zshKANCivquYDsmqnsg4ENCivquYDsm5Dsi50NCivquYDtlZztmIQNCivquYDshozqtIANCivquYDtirnsiJgNCivquYDsm5Dsi50NCivquYDssKzqs6QNCivquYDtlZjtlZkNCivquYDsiKDsiJgNCivquYDsm5DslrUNCivquYDshLHqsJENCivquYDrjIDsnbwNCivquYDsoJXsmqkNCivquYDsm5DsmqkNCivquYDsoJXsnbUNCivquYDsiJjrrLgNCivquYDsnoTsm5ANCivquYDsm5DstpwNCivquYDssL3qt7wNCivquYDroYDqt6ANCivquYDrgqjsi50NCivquYDsm5Dtg5wNCivquYDsooXtnawNCivquYDsnYDspJENCivquYDsmIHqtawNCivquYDsm5Dtj6wNCivquYDsmqnsmqkNCivquYDsg4HsiJwNCivquYDqt5zquLgNCivquYDsm5DtmLgNCivquYDstpjstpwNCivquYDsmKXsobANCivquYDshLHsmKUNCivquYDsm5DtmLgNCivquYDstpjqta0NCivquYDshLHtlZwNCivquYDqt5ztnLQNCivquYDsm5Tsg50NCivquYDssL3quLANCivquYDsoJXtmIQNCivquYDsnqzsm5ANCivquYDsm5TshKANCivquYDtmqjsl7QNCivquYDsmIHtmZgNCivquYDsoJDsnbUNCivquYDsm5TsiJwNCivquYDsnYDqsJENCivquYDrs5HrpqwNCivquYDqsr3tg50NCivquYDsm5TsiJwNCivquYDsoJXtmLgNCivquYDshLHqt5wNCivquYDso7ztmLgNCivquYDsm5TslYUNCivquYDsiJzsnpANCivquYDsoJzqsbgNCivquYDsg4Hsl7ANCivquYDsm5TsobANCivquYDsooXrp4wNCivquYDrp4zrspQNCivquYDshLHsiJgNCivquYDsm5TtmZQNCivquYDrjIDrj4gNCivquYDshozrqoUNCivquYDsm5TqtawNCivquYDsm5TtmZQNCivquYDsmIHshJ0NCivquYDtmqjqsJENCivquYDrgqjrj4QNCivquYDsnITsmIENCivquYDsnZjsiJgNCivquYDrsLHslbwNCivquYDsiJzsiJwNCivquYDsnKDqs6QNCivquYDsmrDrnpgNCivquYDrp5DsobANCivquYDsnqzsmrENCivquYDsnKDquIgNCivquYDrgqjsl7ANCivquYDqt5zrs7UNCivquYDtmITtmLgNCivquYDsnKDsi50NCivquYDssqDsnqwNCivquYDsuaDrgqgNCivquYDtg5ztmLgNCivquYDsnKDsi50NCivquYDsiJztmLgNCivquYDsg4HqtowNCivquYDsnqzrs7UNCivquYDsnKTqsbQNCivquYDsnqzssqANCivquYDsnKTtmLgNCivquYDtkZzsmKUNCivquYDsnKTqsbQNCivquYDsoJXshKANCivquYDqt4DrnoANCivquYDsoJXsmKUNCivquYDsnKTqtJENCivquYDtmY3rsLANCivquYDrs5HtmZQNCivquYDqtJHsiJwNCivquYDsnKTquLANCivquYDtmY3tg5wNCivquYDsooXssqANCivquYAg7ISdDQor6rmA7Jyk642VDQor6rmA7ISx7JqpDQor6rmA7Zi47Zi4DQor6rmA64us7ZiBDQor6rmA7Jyk64+MDQor6rmA64us7IudDQor6rmA6rK97Z2sDQor6rmA7LKg6recDQor6rmA7Jyk64+ZDQor6rmA6rec66GADQor6rmA7YyQ7IicDQor6rmA67O06re8DQor6rmA7Jyk66+4DQor6rmA7J2Y7IiYDQor6rmA6rK964KoDQor6rmA7IOB67aEDQor6rmA7Jyk67CwDQor6rmA7Zqo7ISxDQor6rmA7Iq57IaMDQor6rmA7KCV7ZmUDQor6rmA7Jyk67O1DQor6rmA7ZiE7JiBDQor6rmA7JuQ6rWtDQor6rmA7J6s7JiBDQor6rmA7Jyk7ISdDQor6rmA64yA7LKgDQor6rmA7IOB7J6sDQor6rmA7Jqp7YOcDQor6rmA7Jyk7ISgDQor6rmA7IOB7JewDQor6rmA6rK97ISgDQor6rmA6rSR7IiZDQor6rmA7Jyk7ISgDQor6rmA7Jqp7LKgDQor6rmA7JiB7J6QDQor6rmAIOybkA0KK+q5gOycpOyEoA0KK+q5gOuFuOydtA0KK+q5gOyEseqzpA0KK+q5gOuzkeq4sA0KK+q5gOycpOyErA0KK+q5gOyYgeyImQ0KK+q5gOyEuOuLtA0KK+q5gO2DnOq4sA0KK+q5gOycpOyErQ0KK+q5gOuvuOybkA0KK+q5gOyInOyasA0KK+q5gOuMgOyImQ0KK+q5gOycpOyImA0KK+q5gOyCrOuylA0KK+q5gOyEnOq2jA0KK+q5gO2DnOyEnQ0KK+q5gOycpOyImA0KK+q5gOqyveyaqQ0KK+q5gOuvuOydvA0KK+q5gOq1kOyXtA0KK+q5gOycpOyLnQ0KK+q5gOygleyInA0KK+q5gOyiheyhsA0KK+q5gOyDgeybhQ0KK+q5gOycpOyLnQ0KK+q5gOqwkeyImQ0KK+q5gO2VmO2ZlA0KK+q5gOyEuOusuA0KK+q5gOycpOyLnQ0KK+q5gOyEseyXtA0KK+q5gOyImOyImA0KK+q5gOyerOyDgQ0KK+q5gOycpOyLnQ0KK+q5gO2VtO2biA0KK+q5gO2DnOyXsA0KK+q5gOyYge2DnA0KK+q5gOycpOyYpQ0KK+q5gOuzte2YhA0KK+q5gOuzkeq1rQ0KK+q5gOuzkeyLnQ0KK+q5gOycpOybkA0KK+q5gOyImOyasQ0KK+q5gOuvvOyYpQ0KK+q5gOyEneuPhA0KK+q5gOycpOyekA0KK+q5gOuzkeyaqQ0KK+q5gOy2mO2drA0KK+q5gOyLnO2YuA0KK+q5gOycpOyekA0KK+q5gOydvOuqqA0KK+q5gOyYgeuPmQ0KK+q5gOywqO2ajA0KK+q5gOycpOyekA0KK+q5gOyYgeyEnQ0KK+q5gOyEseyXtA0KK+q5gOy2lOydtA0KK+q5gOycpOyekA0KK+q5gOq4iOyXsA0KK+q5gO2DnOyyoA0KK+q5gO2DnOuKoA0KK+q5gOycpOygkA0KK+q5gOynhOybkA0KK+q5gOuzkeq3vA0KK+q5gO2Wpe2YhA0KK+q5gOycpOyihQ0KK+q5gOynhOyyoA0KK+q5gOuzkeqwkQ0KK+q5gO2YhOywrA0KK+q5gOycpOyynA0KK+q5gOynhOyImQ0KK+q5gOuPmeuzkQ0KK+q5gO2Dne2YuA0KK+q5gOycpO2DnA0KK+q5gOynhOybhQ0KK+q5gOunkOyImA0KK+q5gOyaqeyEnQ0KK+q5gOycpO2DnQ0KK+q5gOyerOyXtA0KK+q5gO2MkOq1kA0KK+q5gOy2mOy2mA0KK+q5gOycpO2DnQ0KK+q5gOyImOq2jA0KK+q5gOywrOyIoA0KK+q5gOyYge2ZmA0KK+q5gOycpO2VmA0KK+q5gOygkOycpA0KK+q5gOyatOyErQ0KK+q5gOyerOyImA0KK+q5gOycpO2VmA0KK+q5gOyEoOyerA0KK+q5gO2XjO2YuA0KK+q5gOydvOyImA0KK+q5gOycpO2VmA0KK+q5gOy5oOuCqA0KK+q5gOyYgeusuA0KK+q5gOydvOygkA0KK+q5gOycpO2VmA0KK+q5gOuMgOybhQ0KK+q5gOyaseybhQ0KK+q5gOyiheyEoA0KK+q5gOycpO2YuA0KK+q5gOqyveyjvA0KK+q5gOq0ke2DnQ0KK+q5gOyEseyYgQ0KK+q5gOycpO2YuA0KK+q5gOuvuO2DgQ0KK+q5gOuvuO2YhA0KK+q5gOuzteuPmQ0KK+q5gOydgOq4sA0KK+q5gOu0ie2YhA0KK+q5gO2ZjeyImA0KK+q5gO2VtOyXtA0KK+q5gOydgOuPmQ0KK+q5gOyasOq4sA0KK+q5gOyCvO2drA0KK+q5gO2biOuPhA0KK+q5gOydgOuhgA0KK+q5gOyEseyerA0KK+q5gCDsmIENCivquYDshJ3qt6ANCivquYDsnYDsiJgNCivquYDsoJXsi50NCivquYDqsJHsiJgNCivquYDsg4HtlZkNCivquYDsnYDsiJkNCivquYDso7zsiJgNCivquYDsjI3rtIkNCivquYDquLDrtIkNCivquYDsnYDsiJkNCivquYDsmIHtlZkNCivquYDtjL3tmIQNCivquYDsiJzslaANCivquYDsnYDsi50NCivquYDsnqzrtIkNCivquYDqsJXquLANCivquYDqsr3rp4wNCivquYDsnYDslYQNCivquYDrs7XsnbUNCivquYDsiJnsiJwNCivquYDsiJzsoJUNCivquYDsnYDsmKUNCivquYDsoJDsnZgNCivquYDsg4Hsl7QNCivquYDshLHqt7wNCivquYDsnYDsnbQNCivquYDsg4Hso7wNCivquYDrs5HtnawNCivquYDrs5HrqqgNCivquYDsnYDsnqwNCivquYDtg5ztmIQNCivquYDrs5Hsl7QNCivquYDsp4Tsi50NCivquYDsnYDsoJUNCivquYDtmZTsi50NCivquYDsmIHtm4gNCivquYDsoJXsnpANCivquYDsnYDso7wNCivquYDsmIHtnawNCivquYDrj5nquLANCivquYDtg5zsiJkNCivquYDsnYDsp4QNCivquYDsnKTsmqkNCivquYDsiJnsi50NCivquYDsspzsiJwNCivquYDsnYDtnawNCivquYDtg5zsl7ANCivquYDsmqnsnbQNCivquYDquIjsg4ENCivquYDsnYDtnawNCivquYDsoJXsiJgNCivquYDsooXqtZANCivquYDshLHshKANCivquYDsnYTqt5wNCivquYDsnqzruYgNCivquYDqtZDtlZkNCivquYDsmIHssYQNCivquYDsnYTshLENCivquYDsmIHsiJgNCivquYDspIDtmLgNCivquYDsiJztm4QNCivquYDsnYTsiJgNCivquYDspIDsl7ANCivquYDsmqnssKgNCivquYDrtoDsiJkNCivquYDsnYTsiJgNCivquYDtmLjsmrANCivquYDquLDsiJwNCivquYDsgrzrp4wNCivquYDsnYTsnoQNCivquYDsm5DshJ0NCivquYDsm5DsiJwNCivquYDsmKXsobANCivquYDsnYTspIANCivquYDqs6Drp4wNCivquYDri6zrj5kNCivquYDrj5nsmKUNCivquYDsnZHqtowNCivquYDqt5zsl7QNCivquYDtmLjrjZUNCivquYDrj5nrr7wNCivquYDsnZHqtowNCivquYDsm5DsnoQNCivquYDsmIHsmqkNCivquYDsooXrjIANCivquYDsnZHrj4QNCivquYDqtJHrhbgNCivquYDrqoXtmLgNCivquYDsnbjrj4QNCivquYDsnZHrj4wNCivquYDspIDtmZgNCivquYDsmrTsnqwNCivquYDsg4HquLANCivquYDsnZHroKwNCivquYDsnqzsmYQNCivquYDsp4TsnbQNCivquYDrs5Hsm5ANCivquYDsnZHrrLQNCivquYDsmIHsiJkNCivquYDrs5HsmIENCivquYDsoJXtnawNCivquYDsnZjqsbQNCivquYDrs5Hri6wNCivquYDsnKTsiJwNCivquYDtmITtl4wNCivquYDsnZjqt7wNCivquYDsnqztm4gNCivquYDqsJXshJ0NCivquYDtlYTtlZwNCivquYDsnZjqt7wNCivquYDsg4HtmLgNCivquYDsuZjstpwNCivquYDsp4TsmrANCivquYDsnZjsiJgNCivquYDsnqzsobANCivquYDrj5ntmZgNCivquYDssq3sobANCivquYDsnZjsiJgNCivquYDsooXtmLgNCivquYDqsr3shLENCivquYDstpjsnbQNCivquYDsnZjsnbwNCivquYDsnqzsiJkNCivquYDsnYDrs7UNCivquYDshLHtnawNCivquYDsnZjsoJUNCivquYDstpjsmIENCivquYDsg4Hsg4ENCivquYDsmrDquLgNCivquYDsnZjtmIQNCivquYDsoJXsg50NCivquYDspJHsl7QNCivquYDsmIHshJ0NCivquYDsnbTqt7wNCivquYDsnqXso7wNCivquYDtmZjrqqkNCivquYDrs7XsnbQNCivquYDsnbTrj5kNCivquYDquLDrk50NCivquYDssL3qt5wNCivquYDsoJXqt7kNCivquYDsnbTsiJgNCivquYDsoJXqtIANCivquYDsnqzsiJgNCivquYDsnbzsl7ANCivquYDsnbjqta0NCivquYDquIjrp4wNCivquYDrrLjsnpANCivquYDsnqztnaUNCivquYDsnbjqt5wNCivquYDsirnshJ0NCivquYDsiJztmLgNCivquYDsg4HsoJUNCivquYDsnbjqt5wNCivquYDrjZXri6wNCivquYDssKjsnbwNCivquYDqsr3smrANCivquYDsnbjrjZUNCivquYDrs5HsoJUNCivquYDspIDrkZANCivquYDshJ3tmLgNCivquYDsnbjrsLANCivquYDquLDrj4QNCivquYDtg5zsmqkNCivquYDrkZDsmIENCivquYDsnbjshK0NCivquYDssYTrrLgNCivquYDqta3quLANCivquYDtmITshJ0NCivquYDsnbjsiJgNCivquYDsnYDsnpANCivquYDspIDsiJgNCivquYDtg5zspIANCivquYDsnbjsiJgNCivquYDqs6Trs7QNCivquYDsnZjqsr0NCivquYDstpjsm4UNCivquYDsnbjsiJgNCivquYDsoJXtnawNCivquYDsoJDso7wNCivquYDsmIHsl7QNCivquYDsnbjsiJgNCivquYDrqoXsuaANCivquYDsooXsmqkNCivquYDsnqzsmrANCivquYDsnbjsiJkNCivquYDssqDsnYANCivquYDsmIHshKANCivquYDrqoXshKANCivquYDsnbjsi50NCivquYDquLjqtZANCivquYDsg4HssqANCivquYDsiJzroYANCivquYDsnbjsnqwNCivquYDsnqXsg4ENCivquYDsg4HsmKUNCivquYDsg4HsiJwNCivquYDsnbjso7wNCivquYDsmYTsnbwNCivquYDshKDsg4ENCivquYDsiJztmLgNCivquYDsnbjtg4ENCivquYDrjIDstpQNCivquYDsg4HsgrwNCivquYDtl4zsiKANCivquYDsnbjtg5wNCivquYDsmIHsi50NCivquYDrj5ntg50NCivquYAg7JuQDQor6rmA7J247YOcDQor6rmA7ZWE7ISdDQor6rmA6rSR6rWQDQor6rmA7J6s7JWUDQor6rmA7J247YOdDQor6rmA64+Z7KCVDQor6rmA7J287YOdDQor6rmA7KCV7IigDQor6rmA7J247ZiBDQor6rmA7J206rCRDQor6rmA7LCs7YOcDQor6rmA7Zic7KSADQor6rmA7J247ZiEDQor6rmA7Jqp7JykDQor6rmA7IiY7IiYDQor6rmA67OR7ISgDQor6rmA7J247Zi4DQor6rmA7KO87JuFDQor6rmA6rSR7ZeMDQor6rmA7JiB7Je0DQor6rmA7J247ZmYDQor6rmA66eM7LKgDQor6rmA7Iic7Zi4DQor6rmA7J6s7JuQDQor6rmA7J247ZqMDQor6rmA7IiY7JWUDQor6rmA7ZmN7Zi4DQor6rmA7Zqo7LKgDQor6rmA7J286rOkDQor6rmA7KCV7KO8DQor6rmA7J6l7IudDQor6rmA7KO87ZiEDQor6rmA7J286rOkDQor6rmA6rCR6rWsDQor6rmA7ZW07JiBDQor6rmA7ZWZ7Je0DQor6rmA7J286recDQor6rmA7IaM7JqwDQor6rmA7IOB6recDQor6rmA7JiB67aEDQor6rmA7J2864WEDQor6rmA7IiY6reADQor6rmA7KCV67aEDQor6rmA7J6s7IicDQor6rmA7J2865GQDQor6rmAIOy5oA0KK+q5gO2DnOyYgQ0KK+q5gOyDgeydvA0KK+q5gOydvOunjA0KK+q5gOyYgeq4sA0KK+q5gOyerOyImA0KK+q5gOq3vOuFuA0KK+q5gOydvOu0iQ0KK+q5gOuzkeuztQ0KK+q5gOycoOyInA0KK+q5gOqzoeumrA0KK+q5gOydvOu0iQ0KK+q5gOq3gOydtA0KK+q5gOyDgeyasA0KK+q5gOq4sOq3vA0KK+q5gOydvOyEnQ0KK+q5gOyYgeyhsA0KK+q5gOygleyImA0KK+q5gOuPhOyLnQ0KK+q5gOydvOyImA0KK+q5gO2DnO2ZlA0KK+q5gOyEseyhsA0KK+q5gOyCvO2YuA0KK+q5gOydvOyImA0KK+q5gOybheyLnQ0KK+q5gOyEseybhQ0KK+q5gOu2gO2VnA0KK+q5gOydvOyInA0KK+q5gOyynO2DgQ0KK+q5gOuqheyduA0KK+q5gOyerOyEsQ0KK+q5gOydvOyIoA0KK+q5gOuTneyEsQ0KK+q5gO2YhOyjvA0KK+q5gOyImOyLnQ0KK+q5gOydvOyaqQ0KK+q5gO2DnOyyoA0KK+q5gO2drOyXsA0KK+q5gO2YhOyInA0KK+q5gOydvOyaqQ0KK+q5gOyZle2YuA0KK+q5gOyatO2DnA0KK+q5gOyasOuCqA0KK+q5gOydvOybhQ0KK+q5gOq3vOq4uA0KK+q5gOuLrOyIoA0KK+q5gOq3gOq3vA0KK+q5gOydvO2DnA0KK+q5gOyerOq4uA0KK+q5gOyaqeqyvQ0KK+q5gOykgOyXtA0KK+q5gOydvO2DnA0KK+q5gOyImOyInA0KK+q5gO2Zje2YuA0KK+q5gOygleyEoA0KK+q5gOydvO2VtA0KK+q5gOyYgeyyoA0KK+q5gOyYgeuqqQ0KK+q5gOuMgOuFuA0KK+q5gOydvO2YuA0KK+q5gOyYgeyImA0KK+q5gOyMje2YuA0KK+q5gOuCmeyaqQ0KK+q5gOydvO2YuA0KK+q5gOyKueuCqA0KK+q5gOyerOyInA0KK+q5gOqyveqyvQ0KK+q5gOydvO2ZjQ0KK+q5gOyEseyImQ0KK+q5gOyEoOyyoA0KK+q5gOyYgeuMgA0KK+q5gOydvO2ZlA0KK+q5gOqzoOq3oA0KK+q5gO2MkO2biA0KK+q5gOq3vOq4iA0KK+q5gOydvO2ZmA0KK+q5gOygleyXtA0KK+q5gO2ZlOyImA0KK+q5gOykgOyImA0KK+q5gOydvO2ZmA0KK+q5gOuzke2dlA0KK+q5gOq4sOydtA0KK+q5gOyiheuCqA0KK+q5gOydvO2drA0KK+q5gO2YhO2YuA0KK+q5gOyngOuloA0KK+q5gOqwleq4sA0KK+q5gOydvO2drA0KK+q5gO2DnOyynA0KK+q5gOunjOyYgQ0KK+q5gOusuO2drA0KK+q5gOyehOqzpA0KK+q5gOyDge2drA0KK+q5gOyZuOyLnQ0KK+q5gOy5oOyaqQ0KK+q5gOyehOyInA0KK+q5gCDshKANCivquYDsobDtmIQNCivquYDrr7jtmLgNCivquYDsnoTso7wNCivquYDrs7XshLENCivquYDshLHsiJgNCivquYDqsr3qtIANCivquYDsnpDqt7zqsoANCivquYDrtoDsp4TquLANCivquYDrp6TsnKDqt5wNCivquYDsoJXsiJjsmKQNCivquYDsnpDtnawNCivquYDshLHsl7QNCivquYDqsr3rgqgNCivquYDquIjtmLgNCivquYDsnqXrsLANCivquYDshLjtnawNCivquYDsmIHtmLgNCivquYDsnbjqt7wNCivquYDsnqXrs7QNCivquYDsnKDsnqwNCivquYDsmKXrj4QNCivquYDtmITqtIANCivquYDsnqXsmKUNCivquYDqsr3si50NCivquYDsnbjrhYQNCivquYDsnYDshK0NCivquYDsnqXsm5ANCivquYDssqDsmYQNCivquYDtlZnsi50NCivquYDsoJzqt4ANCivquYDsnqXsm5ANCivquYDrs7XtmLgNCivquYDsmIHsl7QNCivquYDquLDshJ0NCivquYDsnqXtmZgNCivquYDsnqztlqUNCivquYDsiJzsiJgNCivquYDsnKDshK0NCivquYDsnqXtnawNCivquYDsmrTrspQNCivquYDsmIHsobANCivquYDsp4DtlZgNCivquYDsnqzqs6QNCivquYDstpjsobANCivquYDsmrDtmZgNCivquYDsnqzrs7UNCivquYDsnqzqtJENCivquYDtg5zsl7QNCivquYDqsJXquLANCivquYDsmIHtmLgNCivquYDsnqzqtawNCivquYDsg4HshK0NCivquYDqtJHqsbQNCivquYDsg4Hrj4gNCivquYDsnqzqt5wNCivquYDsiJztg5wNCivquYDsmYTrgqgNCivquYDtlbTtmY0NCivquYDsnqzqt5wNCivquYDqt7zrjZUNCivquYDrs5HtnawNCivquYDshLHquLANCivquYDsnqzqt5wNCivquYDqsJXso7wNCivquYDsoJXrj4QNCivquYDtmITsl7ANCivquYDsnqzqt5wNCivquYDquLDsmqkNCivquYDstpjsnpANCivquYDshJ3snpANCivquYDsnqzqt6ANCivquYDsgrzqtawNCivquYDrr7zsl7QNCivquYDrs5HsiKANCivquYDsnqzqt7wNCivquYDsi6Dsp4QNCivquYDsnqzsm5ANCivquYDsmqnquLgNCivquYDsnqzrgqgNCivquYDsiJjslaANCivquYDqsbTrjZUNCivquYDsg4HrgqgNCivquYDsnqzrgqgNCivquYDrkZDqt5wNCivquYDqsbTtmZQNCivquYDtjJDsnpANCivquYDsnqzrjIANCivquYDsspzsm5ANCivquYDshLHqt5wNCivquYDtg5ztmZgNCivquYDsnqzrjZUNCivquYDsnqzsmrANCivquYDshLHso7wNCivquYDrj4TsmqkNCivquYDsnqzrjZUNCivquYDspJHqt5wNCivquYDrjZXri6wNCivquYDrrLTso7wNCivquYDsnqzrjZUNCivquYDsnbjri6wNCivquYDsmIHtmLgNCivquYDsnZjsobANCivquYDsnqzrjZUNCivquYDsiJzqt7wNCivquYDsnqztnaANCivquYDsmIHsiJwNCivquYDsnqzrj4QNCivquYDsm5DsiJgNCivquYDshLHsm5ANCivquYDtg5zqt6ANCivquYDsnqzrj4QNCivquYDshLHqt5wNCivquYDsmIHsm5ANCivquYDssL3tmIQNCivquYDsnqzrj5kNCivquYDssL3shLgNCivquYDtlYTsg4ENCivquYDsmIHsmIENCivquYDsnqzrk50NCivquYDsmrDsiJwNCivquYDsnYTqt6ANCivquYDsnoTrp4wNCivquYDsnqzrp4wNCivquYDsmqntlZkNCivquYDquIjsi50NCivquYDtlZztmZgNCivquYDsnqzrp4wNCivquYDsg4HtmLgNCivquYDsg4HsiJgNCivquYDsg4HtmZgNCivquYDsnqzrp4wNCivquYDshKDsm4UNCivquYDsmIHtmowNCivquYDsnbTsobANCivquYDsnqzrrLgNCivquYDrs5HsirkNCivquYDssL3sl7QNCivquYDshLHsm4UNCivquYDsnqzrs7UNCivquYDtnaztmLgNCivquYDtmLjssqANCivquYDqt5zsoJUNCivquYDsnqzrtIkNCivquYDrj5nsiJgNCivquYDtg5ztg5wNCivquYDsnqzsi50NCivquYDsnqzsg50NCivquYDrqoXqt7wNCivquYDsoJXqtowNCivquYDqt5zsmqkNCivquYDsnqzshJ0NCivquYDsp4TtmLgNCivquYDrs5HsmqkNCivquYDrjIDshLENCivquYDsnqzshKANCivquYDshJ3tmLgNCivquYDtlbTsobANCivquYDsnqzsp4QNCivquYDsnqzshK0NCivquYDrqoXrrLUNCivquYDrrLjshLENCivquYDtjJDsp4QNCivquYDsnqzsiJgNCivquYDsmIHrj4QNCivquYDsmqnqs6QNCivquYDso7zsobANCivquYDsnqzsiJgNCivquYDsnqzsmKUNCivquYDsg4Hrr7wNCivquYDsnKTtmLgNCivquYDsnqzsiJgNCivquYDtg5ztlZwNCivquYDrrLjsp4QNCivquYDtlZnqtowNCivquYDsnqzsiJgNCivquYDtmLjtnaANCivquYDrs5HrtIkNCivquYDrjIDshK0NCivquYDsnqzsiJgNCivquYDrrLTqt5wNCivquYDsnITssqANCivquYDtlbTslZQNCivquYDsnqzsiJwNCivquYDsnYDsiJkNCivquYDstpjsnbQNCivquYDrgqjshKQNCivquYDsnqzsi50NCivquYDrj5nsiJgNCivquYDquIjsm5ANCivquYDsmIHqt7wNCivquYDsnqzslpENCivquYDsnYDspp0NCivquYDshozsl7QNCivquYDsnqzsiJgNCivquYDsnqzsl7ANCivquYDsoJXquLANCivquYDtg5zsmqkNCivquYDsoJXtmIQNCivquYDsnqzsl7ANCivquYDsiJjshJ0NCivquYDsmIHshJ0NCivquYDsmIHsgrwNCivquYDsnqzsl7QNCivquYDsp4DshJ0NCivquYDsp4TsiJkNCivquYDsmqnsmqkNCivquYDsnqzsl7QNCivquYDrj4TrspQNCivquYDsnqzsiJgNCivquYAg7J20DQor6rmA7J6s7Je0DQor6rmA7Jm47ZuIDQor6rmA6riI67KUDQor6rmA6rK97ISdDQor6rmA7J6s7JiBDQor6rmA67OR7ZmUDQor6rmA7ZmN7JmEDQor6rmA7Lap7IOBDQor6rmA7J6s7JiBDQor6rmA7JiB6recDQor6rmA66y064yADQor6rmA7Jil6ri4DQor6rmA7J6s7JiBDQor6rmA7LGE64WADQor6rmA7YOc7ZiVDQor6rmA7IiY6rOkDQor6rmA7J6s7JilDQor6rmA7Jyk7JuQDQor6rmA7ISx7IiZDQor6rmA6rK97ISdDQor6rmA7J6s7JilDQor6rmA7ISx7LKgDQor6rmA6rSR7IiZDQor6rmA7JiB7ISgDQor6rmA7J6s7JqpDQor6rmA7Jyk7ISgDQor6rmA64yA6re8DQor6rmA7Zqo7ZiEDQor6rmA7J6s7JqpDQor6rmA7JmE7Je0DQor6rmA7Iic66GdDQor6rmA7Jqp7Zi4DQor6rmA7J6s7JqpDQor6rmA67O17Je0DQor6rmA6riw6raMDQor6rmA7IOB7IStDQor6rmA7J6s7JqpDQor6rmA7ISx67KUDQor6rmA7J2065+JDQor6rmA7Jil7KCVDQor6rmA7J6s7JqwDQor6rmA6rK97JmEDQor6rmA7Zi46rWQDQor6rmA7IOB7Je0DQor6rmA7J6s7JuQDQor6rmA7JiB7ZqMDQor6rmA7ISx7KGwDQor6rmA6rK97YOcDQor6rmA7J6s7JuQDQor6rmA67O17KCVDQor6rmA7IOB64KoDQor6rmA7Iic7ZmYDQor6rmA7J6s7J28DQor6rmA7IOB7JuFDQor6rmA7LmY7Zi4DQor6rmA7J6s7Z2sDQor6rmA7J6s7J6EDQor6rmA7KKF7Zi4DQor6rmA64+I6riwDQor6rmA67OR7KO8DQor6rmA7J6s7KCEDQor6rmA7J6s7IudDQor6rmA7Jqp7JilDQor6rmA7IK86rWQDQor6rmA7J6s7LKgDQor6rmA7JWg7LacDQor6rmA7Z2s7ZmNDQor6rmA7IOB7ISdDQor6rmA7J6s7LKgDQor6rmA7IiY7YOcDQor6rmA7JuQ6rWsDQor6rmA7ZeM6raMDQor6rmA7J6s7LKtDQor6rmA7KKF7ZWYDQor6rmA6re87Jq0DQor6rmA66qF7IudDQor6rmA7J6s7ZWZDQor6rmA7Jqp7IicDQor6rmA7KCQ6rWQDQor6rmA7ZmN7JqpDQor6rmA7J6s7ZWcDQor6rmA7ZWc6riwDQor6rmA64+Z7IiYDQor6rmA7ZWZ64+EDQor6rmA7J6s7ZiEDQor6rmA66+87JqpDQor6rmA7KKF7KeEDQor6rmA64+Z7KeEDQor6rmA7J6s7ZiEDQor6rmA7J6l6ri4DQor6rmA64us6re8DQor6rmA7J6E7JmEDQor6rmA7J6s7ZiEDQor6rmA7JiB7ISgDQor6rmA6rK97IiYDQor6rmA64+Z65OdDQor6rmA7J6s7ZiEDQor6rmA7ZiV7IiYDQor6rmA67KU7KSADQor6rmA7Iuc7YOcDQor6rmA7J6s7Zi4DQor6rmA6riI6rSADQor6rmA67SJ7ZmYDQor6rmA7ISx7IiZDQor6rmA7J6s7Zi4DQor6rmA7Iuk7J6sDQor6rmA64+Z7ISgDQor6rmA7LaY7Je0DQor6rmA7J6s7Zi4DQor6rmA7J287IicDQor6rmA7Iq57ZiEDQor6rmA64Ko7JewDQor6rmA7J6s7ZmNDQor6rmA7Zqo7JilDQor6rmA67SJ6rOkDQor6rmA6rCV7IiYDQor6rmA7J6s7ZmNDQor6rmA7YOc7JiBDQor6rmA66+47Zi4DQor6rmA7J6s7KeEDQor6rmA7J6s7ZmUDQor6rmA7KCV7JqwDQor6rmA7Jyk65GQDQor6rmA6riw7JqwDQor6rmA7J6s7ZmUDQor6rmA7Lap7JewDQor6rmA7ISx7IStDQor6rmA7JiB7JykDQor6rmA7J6s7ZmUDQor6rmA7KKF6recDQor6rmA7Jil7KCVDQor6rmA7JuQ7ISgDQor6rmA7J6s7ZmYDQor6rmA7KKF7YOcDQor6rmA7KKF7Zi4DQor6rmA7KeE7KKFDQor6rmA7J6s7ZmYDQor6rmA7LKc7Zi4DQor6rmAIOuNlQ0KK+q5gOygleq4uA0KK+q5gOyerO2ZmA0KK+q5gOynhOuFhA0KK+q5gOygkOyInA0KK+q5gOydvOyaqQ0KK+q5gOyerO2ZmA0KK+q5gOybkOyYgQ0KK+q5gOqyveq3nA0KK+q5gOqyvey2nA0KK+q5gOyerO2ZmA0KK+q5gOyerOyEoA0KK+q5gO2drOyasA0KK+q5gOyiheqwkQ0KK+q5gOyerO2bhA0KK+q5gOyEnOydtA0KK+q5gOydtOydtA0KK+q5gOyngOq3oA0KK+q5gOyerO2bhA0KK+q5gO2YnO2ZjQ0KK+q5gCDtmZgNCivquYDshKDsmYQNCivquYDsnqztm4UNCivquYDtmozsmqkNCivquYDsiJjso7wNCivquYDsiJjtmLgNCivquYDsnqztm4gNCivquYDsoJXrs7QNCivquYDqsr3siJgNCivquYDsnqzsiJkNCivquYDsnqztm4gNCivquYDqtJHrj4QNCivquYDsoJXqsr0NCivquYDsooXqsr0NCivquYDsnqztnawNCivquYDsoJXtmIQNCivquYDqta3tmIQNCivquYDrspTtnawNCivquYDsoIHtmZgNCivquYDrs5HslrgNCivquYDrs5HsiKANCivquYDsnqzsm5ANCivquYDsoITqt6ANCivquYDqsr3shKANCivquYDshKDsi6QNCivquYDrs5HsnbgNCivquYDsoITquLANCivquYDsnqzqt7wNCivquYDsmIHsp4QNCivquYDrs5HsnbQNCivquYDsoJDqt7wNCivquYDsmIHshK0NCivquYDrtoTssYQNCivquYDqsr3shJ0NCivquYDsoJDrgqgNCivquYDquLDshKANCivquYDsmrTssqANCivquYDrp4zsmqkNCivquYDsoJDrj4wNCivquYDrqoXsmrANCivquYDsspztmZgNCivquYDsmqntnawNCivquYDsoJDroYANCivquYDrjIDsnqwNCivquYDrjZXrtoQNCivquYDrp4zsiJwNCivquYDsoJDrp4wNCivquYDrs7Xtg5wNCivquYDsmqnrgqgNCivquYDsmbjqtawNCivquYDsoJDrtIkNCivquYDsnKTsiJwNCivquYDsnZHtmZgNCivquYDsm5DsmIENCivquYDsoJDsg50NCivquYAg7ZGcDQor6rmA64Ko7JqpDQor6rmA7IK86rOkDQor6rmA7KCQ7IiYDQor6rmAIOydtA0KK+q5gOustOydtQ0KK+q5gOq0keq4sA0KK+q5gOygkOyImA0KK+q5gOyduOyLnQ0KK+q5gOyjvOynhA0KK+q5gOyXheugqA0KK+q5gOygkOyImQ0KK+q5gOyYge2YhA0KK+q5gO2DnOyYpQ0KK+q5gOuNleyImA0KK+q5gOygkOyInA0KK+q5gOywqOyasQ0KK+q5gOyKue2VmQ0KK+q5gOyDgeyErQ0KK+q5gOygkOyInA0KK+q5gOyduOunjA0KK+q5gOunjOyImA0KK+q5gOycpOyYgQ0KK+q5gOygkOyIoA0KK+q5gOydvOyekA0KK+q5gOq4iOybkA0KK+q5gOyatOyjvA0KK+q5gOygkOyIoA0KK+q5gOygkOyIoA0KK+q5gOuCqOunjA0KK+q5gOyEseykgA0KK+q5gOygkOyYpQ0KK+q5gOuPmeyXsA0KK+q5gOyImO2ZmA0KK+q5gO2DnOyEoA0KK+q5gOygkOyekA0KK+q5gOyDge2ZmA0KK+q5gOunjO2DnA0KK+q5gOuPmeyImQ0KK+q5gOygkOyyoA0KK+q5gOyEseyhsA0KK+q5gOuqheuCqA0KK+q5gOqyveuhgA0KK+q5gOygkOy2nA0KK+q5gOywveyInA0KK+q5gOunjOyaqQ0KK+q5gOyEse2DnQ0KK+q5gOygkO2MlA0KK+q5gOy2mOuhnQ0KK+q5gOuPmeq1kA0KK+q5gOyaqe2ZlA0KK+q5gOygkO2YuA0KK+q5gOunjOuLrA0KK+q5gO2ZjeyLnQ0KK+q5gOyYge2YhA0KK+q5gOygkO2ZmA0KK+q5gOuzkeycqA0KK+q5gOyduOyEoA0KK+q5gOyjvOuztA0KK+q5gOygleqwlQ0KK+q5gO2drOujoQ0KK+q5gOyaqeyerA0KK+q5gOuzkeuvvA0KK+q5gOygleqwlQ0KK+q5gOyxhOyXtA0KK+q5gOqxtOq4sA0KK+q5gOyiheuPmQ0KK+q5gOygleqxtA0KK+q5gOuCqOuwsA0KK+q5gOybkOynhA0KK+q5gO2DnOq4sA0KK+q5gOygleqxtA0KK+q5gOygleuegA0KK+q5gOyduOyekA0KK+q5gO2DnO2ZmA0KK+q5gOygleqzoA0KK+q5gOykkeyEnQ0KK+q5gOqwhOq3nA0KK+q5gOyEseyImA0KK+q5gOygleq2jA0KK+q5gOygleqzpA0KK+q5gOydhOuCqA0KK+q5gOykgOybhQ0KK+q5gOygleq2jA0KK+q5gOyEneybhQ0KK+q5gOq4sOyasA0KK+q5gO2aqO2ZqQ0KK+q5gOygleq3nA0KK+q5gOq1kO2VnA0KK+q5gOyEseyEnQ0KK+q5gO2ZjeyYgQ0KK+q5gOygleq3nA0KK+q5gOyIoOyImQ0KK+q5gOq3vOyImA0KK+q5gOyEuOyasA0KK+q5gOygleq3vA0KK+q5gOu0ieyLnQ0KK+q5gOyiheyXsA0KK+q5gOygle2ctA0KK+q5gOygleq3vA0KK+q5gOyImO2DnQ0KK+q5gOygleq4sA0KK+q5gOyaqeycpA0KK+q5gOygleq3vA0KK+q5gOynhOyaqQ0KK+q5gOyYgeq3vA0KK+q5gO2DnOy2nA0KK+q5gOygleq4sA0KK+q5gOuzke2drA0KK+q5gOuPmeuPhA0KK+q5gOyImeyjvA0KK+q5gOygleq4uA0KK+q5gOyasOumhA0KK+q5gOybkO2biA0KK+q5gOyerOuPhA0KK+q5gOygleq4uA0KK+q5gOyaqeyyoA0KK+q5gO2ZjeyImA0KK+q5gOyaqe2YuA0KK+q5gOygleuCqA0KK+q5gO2VtOyErQ0KK+q5gOydkeq4sA0KK+q5gOyaseyjvA0KK+q5gOygleuMgA0KK+q5gOyXsOyxhA0KK+q5gOyduOyyoA0KK+q5gOuvuO2DnQ0KK+q5gOygleuMgA0KK+q5gOyihe2biA0KK+q5gOyDgeuPmQ0KK+q5gOybkOyInA0KK+q5gOygleuNlQ0KK+q5gOydmOyhsA0KK+q5gOyInOqzpA0KK+q5gOykgOygnA0KK+q5gOygleuPhA0KK+q5gOyYpOq3nA0KK+q5gOygleykgA0KK+q5gOyEoOyyoA0KK+q5gOygleuPmQ0KK+q5gOyEseykgA0KK+q5gOyCvOyImA0KK+q5gOyynO2ZmA0KK+q5gOygleuTnQ0KK+q5gO2VnOyWkQ0KK+q5gOyEseqzpA0KK+q5gOyYgeyDnQ0KK+q5gOygleuTnQ0KK+q5gOycpOqzpA0KK+q5gOuPmeyInA0KK+q5gOywveyImA0KK+q5gOygleuTnQ0KK+q5gOyEseyEnQ0KK+q5gOuzke2YuA0KK+q5gOyImO2biA0KK+q5gOygleudvQ0KK+q5gOyXsOyHhA0KK+q5gOyKueyYgQ0KK+q5gO2YleuMgA0KK+q5gOygleuhnQ0KK+q5gOyYgeyImQ0KK+q5gOyiheyDgQ0KK+q5gOuzke2DnA0KK+q5gOygleustQ0KK+q5gOydgOyduA0KK+q5gOyYgeqzoA0KK+q5gOyerO2VmQ0KK+q5gOygleusuA0KK+q5gOq3nO2YhA0KK+q5gOyduOyImA0KK+q5gOq2jOyngA0KK+q5gOygleuvuA0KK+q5gOuLrOyDgQ0KK+q5gOyerOyWkQ0KK+q5gOuqheyImA0KK+q5gOygleuvvA0KK+q5gOq4sOuekQ0KK+q5gOygleyLnQ0KK+q5gOyEoOq3vA0KK+q5gOygleuwsA0KK+q5gOykkeyEnQ0KK+q5gOyiheyImA0KK+q5gOyEseq3nA0KK+q5gOygleuylA0KK+q5gOyEseyhsA0KK+q5gOyYgeywvQ0KK+q5gO2drOq1rA0KK+q5gOygleuylA0KK+q5gOyYgeybkA0KK+q5gOyCrOq3vA0KK+q5gO2DnOq1rQ0KK+q5gOygleuztQ0KK+q5gOyiheyasA0KK+q5gOyEseq4uA0KK+q5gOyduOq4sA0KK+q5gOygleu0iQ0KK+q5gOyerOq3nA0KK+q5gOygleyInA0KK+q5gOydvO2DnQ0KK+q5gOygleu0iQ0KK+q5gOybheyLnQ0KK+q5gOyerOycpA0KK+q5gOyEseyLnQ0KK+q5gOygleu2gA0KK+q5gOyYpeyImA0KK+q5gOygkOuCqA0KK+q5gOygleq1rA0KK+q5gOygleu2gA0KK+q5gOustOyekA0KK+q5gOyYge2YuA0KK+q5gOqwkeq1rQ0KK+q5gOygleu2gA0KK+q5gOqyveq2jA0KK+q5gOuqheyImA0KK+q5gOq3nOyasA0KK+q5gOygleu5iA0KK+q5gOunjOq3nA0KK+q5gOyDgeyglQ0KK+q5gOqyveyInA0KK+q5gOygleyDgQ0KK+q5gOyerOq3oA0KK+q5gOuzkeyXtA0KK+q5gOyInO2DnQ0KK+q5gOygleyDnQ0KK+q5gOydtO2ZmA0KK+q5gOyiheq1rA0KK+q5gOq4sO2YhA0KK+q5gOygleyEnQ0KK+q5gO2DnOyImA0KK+q5gOybkOyLnQ0KK+q5gOybkOu0iQ0KK+q5gOygleyEoA0KK+q5gOyerOyglQ0KK+q5gOyduOqwkQ0KK+q5gOynhO2doA0KK+q5gOygleyEoA0KK+q5gOuLrOyEoA0KK+q5gOu0ieyXvQ0KK+q5gOyImOyErQ0KK+q5gOygleyEoA0KK+q5gO2DnOyInA0KK+q5gO2Zqe2YhA0KK+q5gOyYgeyjvA0KK+q5gOygleyImA0KK+q5gOuylOuemA0KK+q5gCDsnbQNCivquYDsp4DsiJkNCivquYDsoJXsiJgNCivquYDsgrzsnpANCivquYDspJHshJ0NCivquYDsgqzsiJgNCivquYDsoJXsiJgNCivquYDshJ3qtowNCivquYDsmKXsl7ANCivquYDsnbjsiJkNCivquYDsoJXsiJgNCivquYDtlZzsnbwNCivquYDsoJXtmJwNCivquYDsmIHsspwNCivquYDsoJXsiJgNCivquYDqt5zsl7ANCivquYDsoJXrqoUNCivquYDsooXslZQNCivquYDsoJXsiJgNCivquYDrs5HtmLgNCivquYDshozrgqgNCivquYDsooXsgrwNCivquYDsoJXsiJgNCivquYDtg4Hsp4QNCivquYDqsr3sm5ANCivquYDqtJHsmrENCivquYDsoJXsiJkNCivquYDssqDtnawNCivquYDsmIHtmLgNCivquYDshJ3qtowNCivquYDsoJXsiJkNCivquYDrtInsg4ENCivquYDstqnrs7QNCivquYDsoJXssqANCivquYDsoJXsiJkNCivquYDsooXssqANCivquYDssYTsnqwNCivquYDspIDshJ0NCivquYDsoJXsiJwNCivquYDsmqnrqqgNCivquYDsoJXtg50NCivquYDsmrTrj4QNCivquYDsoJXsiJwNCivquYDrs5HsnbQNCivquYDsmrTspIANCivquYDspJHtmLgNCivquYDsoJXsiJwNCivquYDshLHsmrQNCivquYDstpzsiJgNCivquYDsg4HrhYQNCivquYDsoJXsiJwNCivquYDrjIDssqANCivquYAg66qpDQor6rmA7Jqp7Jq0DQor6rmA7KCV7IicDQor6rmA7JuU7IicDQor6rmA7JiB7IicDQor6rmA7J6l66+8DQor6rmA7KCV7IicDQor6rmA7KKF7JWgDQor6rmA7Jqw7LacDQor6rmA7J2E7ZWZDQor6rmA7KCV7IigDQor6rmA7YOc7ZalDQor6rmA6rSR7IiYDQor6rmA7Jyk7KO8DQor6rmA7KCV7IudDQor6rmA7Jil7Je0DQor6rmA7J6s6riwDQor6rmA7J247JilDQor6rmA7KCV7JWgDQor6rmA7Jew7JiBDQor6rmA7J2A7J28DQor6rmA67OR7ZWcDQor6rmA7KCV7JWgDQor6rmA64W47KeEDQor6rmA7J6s6rWsDQor6rmA7YOc7Je0DQor6rmA7KCV7JaRDQor6rmA7Jqp7ISxDQor6rmA7IiZ6reADQor6rmA7ZWc7IudDQor6rmA7KCV7JewDQor6rmA7Zal7Je9DQor6rmA7ZeM7Zi4DQor6rmA7ZWE6rWsDQor6rmA7KCV7Je0DQor6rmA7KKF7Je0DQor6rmA7IiY7JewDQor6rmA7Jil7ISgDQor6rmA7KCV7Je0DQor6rmA7ISx7Z2sDQor6rmA7KKF7YOcDQor6rmA7IOB7IicDQor6rmA7KCV7Je0DQor6rmA64Ko7IudDQor6rmA7JyE7ZuIDQor6rmA7ZWY7LaYDQor6rmA7KCV7JikDQor6rmA7IOB7ZiEDQor6rmA7IOB7IicDQor6rmA7KeE7ZmNDQor6rmA7KCV7JilDQor6rmA64+E7Z2sDQor6rmA66eM7ZeMDQor6rmA6riI66eMDQor6rmA7KCV7JilDQor6rmA67aA6riwDQor6rmA67SJ6regDQor6rmA7ISx7ZqoDQor6rmA7KCV7JqpDQor6rmA7KCV7Je0DQor6rmA7IOB6recDQor6rmA7JaR7JWFDQor6rmA7KCV7JqwDQor6rmA7YOc7IiYDQor6rmA7YOc66qpDQor6rmA7ISd7IiYDQor6rmA7KCV7JuFDQor6rmA7Jqp7JqpDQor6rmA6riw7JuQDQor6rmA7YOA7Zi4DQor6rmA7KCV7JykDQor6rmA67SJ7IigDQor6rmA7LCo6rWsDQor6rmA7LC97Jq0DQor6rmA7KCV7J2ADQor6rmA66qF6re8DQor6rmA6rK97IudDQor6rmA7J6s66asDQor6rmA7KCV7J20DQor6rmA64yA7IicDQor6rmA6rK97JewDQor6rmA7JiB7IiYDQor6rmA7KCV7J20DQor6rmA7YyQ6re8DQor6rmA7KKF7ISdDQor6rmA6rK96riwDQor6rmA7KCV7J28DQor6rmA64us66eMDQor6rmA7Jqp7IiYDQor6rmA7IiY7Zi4DQor6rmA7KCV7J6QDQor6rmA7J247JqwDQor6rmA7Iq564+EDQor6rmA7Iic7JiBDQor6rmA7KCV7J6sDQor6rmA6rK97JuQDQor6rmA6rK966+4DQor6rmA7Jqw7Jq0DQor6rmA7KCV7LCoDQor6rmA7ISx6rK9DQor6rmA7ZiB7Zi4DQor6rmAIOycoA0KK+q5gOygleywqA0KK+q5gOq4iOyEnQ0KK+q5gOyerO2dpQ0KK+q5gO2MkOq2jA0KK+q5gOygley2nA0KK+q5gOyEseyEsQ0KK+q5gO2SjeuzkQ0KK+q5gOyInOyaqQ0KK+q5gOygley5mA0KK+q5gOuPmeynhA0KK+q5gOyerOyXsA0KK+q5gOyImO2YhA0KK+q5gOygle2DnA0KK+q5gOyCvOyerA0KK+q5gOu0ieykgA0KK+q5gOyEne2drA0KK+q5gOygle2DnA0KK+q5gOyDgeyImA0KK+q5gOuPmeyXtA0KK+q5gOyCvO2ZlA0KK+q5gOygle2DnA0KK+q5gOyWkeqwkQ0KK+q5gO2ZlOuvuA0KK+q5gOynhO2YuA0KK+q5gOygle2VmQ0KK+q5gOyYpeyVlA0KK+q5gOuNleuNlQ0KK+q5gOuMgOydtQ0KK+q5gOygle2VmQ0KK+q5gOygle2YhA0KK+q5gOuMgO2ZmA0KK+q5gOuzkeuztQ0KK+q5gOygle2XjA0KK+q5gOygleywvQ0KK+q5gOuzkeuPjA0KK+q5gOq0gO2ZlA0KK+q5gOygle2YuA0KK+q5gOyatO2YhA0KK+q5gOygkOuNlQ0KK+q5gOyLrOyXsA0KK+q5gOygle2YuA0KK+q5gOyYgeuztQ0KK+q5gO2YhOuqqQ0KK+q5gOygle2ZjQ0KK+q5gOygle2YuA0KK+q5gOygleugqA0KK+q5gOyerO2DnA0KK+q5gOyImOyehA0KK+q5gOygle2YuA0KK+q5gOyDge2DnA0KK+q5gOyerOq4sA0KK+q5gOyDgeyYgQ0KK+q5gOygle2YuA0KK+q5gOuzkeykgA0KK+q5gOygleyaqQ0KK+q5gOyiheydvA0KK+q5gOygle2YuA0KK+q5gOykkeuNlQ0KK+q5gO2YuOybhQ0KK+q5gO2YhO2DgQ0KK+q5gOygle2YuA0KK+q5gOyiheuwsA0KK+q5gOq0keuqhQ0KK+q5gOq0gOycpA0KK+q5gOygle2YuA0KK+q5gOyjvO2YuA0KK+q5gOuMgOyaqQ0KK+q5gOyYge2ZmA0KK+q5gOygle2YuA0KK+q5gOqyveyYgQ0KK+q5gOyEneyEnQ0KK+q5gOunjOybkA0KK+q5gOygle2YuA0KK+q5gO2DnO2ZmA0KK+q5gOyduOuPiA0KK+q5gOqwkeyErQ0KK+q5gOygle2ZjQ0KK+q5gOunjOyLnQ0KK+q5gOyDgeyglQ0KK+q5gOybkOyYgQ0KK+q5gOygle2ZlA0KK+q5gOyerOybhQ0KK+q5gOywveyEoA0KK+q5gOyEneyyoA0KK+q5gOygle2ZlA0KK+q5gOyiheykgA0KK+q5gOyerO2VnA0KK+q5gOygkO2YhA0KK+q5gOygle2ZmA0KK+q5gOyduOyLnQ0KK+q5gOyYge2YhA0KK+q5gOyInOq1rQ0KK+q5gOygle2ZmA0KK+q5gO2Zjeu0iQ0KK+q5gOykkeyXtA0KK+q5gOygle2VnA0KK+q5gOygle2ZmA0KK+q5gOuNle2YuA0KK+q5gOuzkeq1kA0KK+q5gOynhOyImA0KK+q5gOygle2ZmA0KK+q5gO2PieuzkQ0KK+q5gOunkOyEsQ0KK+q5gO2Zqe2YuA0KK+q5gOygle2ZmA0KK+q5gOyEneyDnQ0KK+q5gOyiheyImA0KK+q5gOyLoOyyoA0KK+q5gOygle2ZmA0KK+q5gOy2mOyImQ0KK+q5gOq4uOyEnQ0KK+q5gOyerOq4sA0KK+q5gOygle2ZmA0KK+q5gOuqheuPjA0KK+q5gO2drOq3nA0KK+q5gOydvOyImQ0KK+q5gOygle2ZmA0KK+q5gOuCqO2XjA0KK+q5gOqyve2biA0KK+q5gOygleyEsQ0KK+q5gOygle2biA0KK+q5gOydgOyWuA0KK+q5gOyKueyKuQ0KK+q5gOygleyYpA0KK+q5gOygle2doA0KK+q5gOybkO2ZmA0KK+q5gOycpOuNlQ0KK+q5gOydvOyIoA0KK+q5gOygle2drA0KK+q5gOyYgeuNlQ0KK+q5gOu0ieydtA0KK+q5gOqyveyLnQ0KK+q5gOygle2drA0KK+q5gOykgOyaqQ0KK+q5gOqyveyjvA0KK+q5gOuCqOqwkQ0KK+q5gOygle2drA0KK+q5gOydtO2YuA0KK+q5gOuPme2YhA0KK+q5gOuPhOqzpA0KK+q5gOygle2drA0KK+q5gOyiheybkA0KK+q5gO2YnOq1rQ0KK+q5gOydvO2YuA0KK+q5gOygle2drA0KK+q5gOyerOyaqQ0KK+q5gOycpOyImA0KK+q5gOyZuO2MlA0KK+q5gOygle2drA0KK+q5gOyInOyImQ0KK+q5gO2DnOuPmQ0KK+q5gOygkOyEnQ0KK+q5gOygnOq4sA0KK+q5gOqyveyYpQ0KK+q5gOyKue2biA0KK+q5gOunkO2drA0KK+q5gOygnOybkA0KK+q5gOyZuOy2mA0KK+q5gOyEseyyoA0KK+q5gOyerOyImA0KK+q5gOygnOyynA0KK+q5gOyImOuNlQ0KK+q5gOuzte2ZlA0KK+q5gOy2mO2YhA0KK+q5gOygnO2YhA0KK+q5gOygkOyLnQ0KK+q5gO2DnOyhsA0KK+q5gO2ZlO2YuA0KK+q5gOygnO2doA0KK+q5gOuMgOykgA0KK+q5gOq4sOyEnQ0KK+q5gO2drOq4uA0KK+q5gOygnO2doA0KK+q5gOyEuOy2nA0KK+q5gOyaqeuPjA0KK+q5gOyEuO2YuA0KK+q5gOyhsOybhQ0KK+q5gO2YleydvA0KK+q5gOq3gO2DnA0KK+q5gOustOqyvQ0KK+q5gOyiheqwkQ0KK+q5gOyiheyErQ0KK+q5gOyDgeq1rA0KK+q5gOuqhe2drA0KK+q5gOyiheqysA0KK+q5gOyYgeqyvQ0KK+q5gOq4sOyImA0KK+q5gOy2qeuqqQ0KK+q5gOyiheqyvQ0KK+q5gOyDgeuMgA0KK+q5gO2DnOyEnQ0KK+q5gOydjOugpA0KK+q5gOyiheq0kQ0KK+q5gOuzkeyaqQ0KK+q5gOygleyatA0KK+q5gOy+jOu0iQ0KK+q5gOyiheq1rA0KK+q5gOyYpeydvA0KK+q5gOynhOyasA0KK+q5gOuMgOyxhA0KK+q5gOyiheq1rA0KK+q5gOyerOyLnQ0KK+q5gOyInOuMgA0KK+q5gOyEneydtA0KK+q5gOyiheq1rA0KK+q5gOqzhO2VmQ0KK+q5gOyInOq2jA0KK+q5gOyDgeyImQ0KK+q5gOyiheq1rA0KK+q5gOyiheuhnQ0KK+q5gOuRkOyhsA0KK+q5gOqyveq3nA0KK+q5gOyiheq1rA0KK+q5gOq1rOyLnQ0KK+q5gOyYge2YhA0KK+q5gOusmOyerA0KK+q5gOyiheq1rA0KK+q5gOyblOyhsA0KK+q5gOyGjO2MlA0KK+q5gOyYge2ZmA0KK+q5gOyiheq1rA0KK+q5gOychOuNlQ0KK+q5gOy2mOyekA0KK+q5gOyYpeq3nA0KK+q5gOyiheq3nA0KK+q5gOyEneybhQ0KK+q5gOybkO2WpQ0KK+q5gOyYgeunjA0KK+q5gOyiheq3nA0KK+q5gOynhOybkA0KK+q5gOygkOq3vA0KK+q5gOycoOyImA0KK+q5gOyiheq3nA0KK+q5gOybkOycpA0KK+q5gOygkOq4uA0KK+q5gOygleybkA0KK+q5gOyiheq3nA0KK+q5gO2DnOy2nA0KK+q5gOyImO2ZmA0KK+q5gOqyve2YuA0KK+q5gOyiheq3oA0KK+q5gO2DnOyerA0KK+q5gO2ZmOyEoA0KK+q5gOygle2YuA0KK+q5gOyiheq3vA0KK+q5gOq4sOyasA0KK+q5gOydhOyynA0KK+q5gOyerOyXtA0KK+q5gOyiheq4sA0KK+q5gOyYgeuztQ0KK+q5gOuTneyImA0KK+q5gOuMgOuNlQ0KK+q5gOyiheq4uA0KK+q5gOyiheq3vA0KK+q5gO2YhOyDgQ0KK+q5gO2YhO2YhA0KK+q5gOyiheq4uA0KK+q5gO2VtOyXtA0KK+q5gOuPmeuMgA0KK+q5gOyEneq1rA0KK+q5gOyiheq4uA0KK+q5gOuCmeyEsQ0KK+q5gOq4iOq2jA0KK+q5gOqwkeyduA0KK+q5gOyiheq4uA0KK+q5gOyCrOyLnQ0KK+q5gOykke2ZlA0KK+q5gOuqheyLnQ0KK+q5gOyiheuLrA0KK+q5gOyerO2RnA0KK+q5gOyYpOumvQ0KK+q5gOywqOyLnQ0KK+q5gOyiheuLrA0KK+q5gOynhO2biA0KK+q5gOqwley5mA0KK+q5gOuNle2YhA0KK+q5gOyiheuMgA0KK+q5gO2VnOyLnQ0KK+q5gOyduO2YuA0KK+q5gOuzke2biA0KK+q5gOyiheuMgA0KK+q5gOyXsOuMgA0KK+q5gOyDgeuPjA0KK+q5gOqyveyEoA0KK+q5gOyiheuNlQ0KK+q5gO2MkO2YuA0KK+q5gOyEuOyasA0KK+q5gOyaqeyEnQ0KK+q5gOyiheuemA0KK+q5gOyEneuPmQ0KK+q5gOyDgeq4iA0KK+q5gOywqO2YhA0KK+q5gOyiheumvQ0KK+q5gOyerOyDgQ0KK+q5gOyihe2ZlA0KK+q5gOunjOyehA0KK+q5gOyiheunjA0KK+q5gOydvOq4sA0KK+q5gOqwle2ZjQ0KK+q5gOqyveynhA0KK+q5gOyiheunjA0KK+q5gO2YhO2DnA0KK+q5gOuzteyLnQ0KK+q5gOygleuPhA0KK+q5gOyiheunjA0KK+q5gOyepeuCqA0KK+q5gOyiheydtA0KK+q5gOyasO2ZjQ0KK+q5gOyiheuwsA0KK+q5gOyGjOq3vA0KK+q5gOydmOyaqQ0KK+q5gOq4sOyImA0KK+q5gOyiheuwsA0KK+q5gOyDgeyglQ0KK+q5gOy5oOyLnQ0KK+q5gOyaqeyImQ0KK+q5gOyiheuwsQ0KK+q5gO2YuOyImA0KK+q5gOyerO2YuA0KK+q5gOydhOqzhA0KK+q5gOyiheuylA0KK+q5gOu2gOyaqQ0KK+q5gOuzteudvQ0KK+q5gOq4sOyImA0KK+q5gOyiheuylA0KK+q5gO2YleyjvA0KK+q5gOycpOydtA0KK+q5gOq3nOyyoA0KK+q5gOyiheuztQ0KK+q5gOynhOyImQ0KK+q5gOyiheyasA0KK+q5gOyynOunkA0KK+q5gOyiheuztQ0KK+q5gOyYgeyEnQ0KK+q5gOyDgeyasA0KK+q5gOyblOq1rA0KK+q5gOyiheuztQ0KK+q5gOyihe2doA0KK+q5gOqyveyjvA0KK+q5gOyduO2YuA0KK+q5gOyiheuztQ0KK+q5gOyEse2ctA0KK+q5gOyDge2VnA0KK+q5gO2drOyXsA0KK+q5gOyiheuztQ0KK+q5gOyiheqyvQ0KK+q5gOuRkOq4sA0KK+q5gOyihe2YgQ0KK+q5gOyiheu0iQ0KK+q5gOykgOyjvA0KK+q5gOq4sOq2jA0KK+q5gOyDgeyYgQ0KK+q5gOyiheyEnQ0KK+q5gO2DnOyEuA0KK+q5gOygleyImQ0KK+q5gOuPhO2YuA0KK+q5gOyiheyEnQ0KK+q5gOunjO2drA0KK+q5gOyXsOq2jA0KK+q5gO2drO2DnA0KK+q5gOyiheyEnQ0KK+q5gOyerOuNlQ0KK+q5gOu0ieu2hA0KK+q5gOusuOyEoA0KK+q5gOyiheyEoA0KK+q5gOuzkeyEnQ0KK+q5gOq4sOq1rA0KK+q5gO2XjOyErQ0KK+q5gOyiheyEoA0KK+q5gOuNleq3vA0KK+q5gO2DnOuMgA0KK+q5gOuvuOydvA0KK+q5gOyiheyEsQ0KK+q5gO2drOybkA0KK+q5gO2DnOyImQ0KK+q5gOyduOyEnQ0KK+q5gOyiheyEsQ0KK+q5gOustOyerA0KK+q5gOyDgeqwlQ0KK+q5gOybkOyYpQ0KK+q5gOyiheyImA0KK+q5gO2drOynhA0KK+q5gOuTneyImA0KK+q5gOuqheq3oA0KK+q5gOyiheyImA0KK+q5gOq4iOu0iQ0KK+q5gOustOyInA0KK+q5gOuzkeunjA0KK+q5gOyiheyImA0KK+q5gOyyoO2ZjQ0KK+q5gOyYpeynhA0KK+q5gOuqhe2DnA0KK+q5gOyiheyImA0KK+q5gO2VnOq3nA0KK+q5gOynhOq3nA0KK+q5gOywqOyxhA0KK+q5gOyiheyInA0KK+q5gOyImOyLrQ0KK+q5gOyerO2drA0KK+q5gOycpOyynA0KK+q5gOyiheyLnQ0KK+q5gOuptOuNlQ0KK+q5gO2YhOyGjA0KK+q5gO2ZmOyImA0KK+q5gOyiheyLnQ0KK+q5gOyYgeybhQ0KK+q5gOy2mOyehA0KK+q5gOyEse2ZmA0KK+q5gOyiheyLrQ0KK+q5gOyDgeyyoA0KK+q5gOu0ieuztQ0KK+q5gOyerOydtA0KK+q5gOyiheyWtQ0KK+q5gOusuOyatA0KK+q5gOunjO2YhA0KK+q5gOywqO2YuA0KK+q5gOyiheyXsA0KK+q5gOyEse2DnA0KK+q5gO2drOuNlQ0KK+q5gOyYgeybkA0KK+q5gOyiheyXsA0KK+q5gOy5oOyLnQ0KK+q5gO2VmeydgA0KK+q5gOuNleywrA0KK+q5gOyiheyXtA0KK+q5gO2ZjeuMgA0KK+q5gOusuOq0kQ0KK+q5gOuPhOyynA0KK+q5gOyiheyXvQ0KK+q5gOyduOuCqA0KK+q5gO2VhOyYgQ0KK+q5gOyGjOyhsA0KK+q5gOyiheyYgQ0KK+q5gOusuOyLnQ0KK+q5gOunkOyImA0KK+q5gOustOq3vA0KK+q5gOyiheyYpA0KK+q5gOuvvOq3vA0KK+q5gOycpO2MkA0KK+q5gOyYgeykgA0KK+q5gOyiheyasQ0KK+q5gO2ZlOydvA0KK+q5gOyerOyEoA0KK+q5gOyYpOyYgQ0KK+q5gOyiheyatA0KK+q5gOyInO2RnA0KK+q5gOqxtOq2jA0KK+q5gOyihey2mA0KK+q5gOyiheybkA0KK+q5gOq3nOyInA0KK+q5gOykkeyasQ0KK+q5gOyDgeyYgQ0KK+q5gOyiheybkA0KK+q5gO2ZjeyVlA0KK+q5gOyasOq4uA0KK+q5gOq3vOunjA0KK+q5gOyiheybkA0KK+q5gO2ZlOyDnQ0KK+q5gOyEuO2DgQ0KK+q5gO2VhOq3nA0KK+q5gOyiheycpA0KK+q5gOuMgOuzkQ0KK+q5gOyyoOyglQ0KK+q5gOq4sOyaqQ0KK+q5gOyiheycqA0KK+q5gOq0keyYgQ0KK+q5gOyDgeuMgA0KK+q5gOqwkeq1rA0KK+q5gOyiheydtA0KK+q5gOyEseq4sA0KK+q5gOyImeyInA0KK+q5gOyDgeydtA0KK+q5gOyiheydtA0KK+q5gOyDge2aqA0KK+q5gOuzuOq4uA0KK+q5gO2YhOq2jA0KK+q5gOyiheydvA0KK+q5gO2DnOyEnQ0KK+q5gOuTne2aqA0KK+q5gOuTne2drA0KK+q5gOyiheyhsA0KK+q5gO2YuOyehQ0KK+q5gO2YhOuNlQ0KK+q5gOy5mOunjA0KK+q5gOyiheynhA0KK+q5gOyInOyjvA0KK+q5gO2DnOyglQ0KK+q5gO2VhO2YuA0KK+q5gOyiheynhA0KK+q5gOuylOusuA0KK+q5gOuzkeybkA0KK+q5gOyaqe2YuA0KK+q5gOyiheyyoA0KK+q5gOygle2ZlA0KK+q5gOygle2YuA0KK+q5gOyiheyyoA0KK+q5gOyiheyyoA0KK+q5gOuNle2ZlA0KK+q5gOyInOyduA0KK+q5gOywveuNlQ0KK+q5gOyiheyyoA0KK+q5gOykgOyImQ0KK+q5gOuMgOuTnQ0KK+q5gOygkOyhsA0KK+q5gOyihe2DnA0KK+q5gOyYgeyInA0KK+q5gOyiheyhsA0KK+q5gOunjOyEnQ0KK+q5gOyihe2DnA0KK+q5gOyInOynhA0KK+q5gOq4sOqwkQ0KK+q5gOydvOyInA0KK+q5gOyihe2DnA0KK+q5gOyYgeyasA0KK+q5gO2YuOqyvQ0KK+q5gOydmOyYpQ0KK+q5gOyihe2DnA0KK+q5gOyjvOq1rA0KK+q5gOyKueyLnQ0KK+q5gOy5oOq3vA0KK+q5gOyihe2DnA0KK+q5gOyxhOyynA0KK+q5gOyImOyImA0KK+q5gOyDgeygnA0KK+q5gOyihe2DnA0KK+q5gOy5mOuCqA0KK+q5gOuPmeq1rA0KK+q5gOuPmeyaqQ0KK+q5gOyihe2DnA0KK+q5gO2DnOu0iQ0KK+q5gOyynOyDgQ0KK+q5gOyGoeqyvQ0KK+q5gOyihe2VmA0KK+q5gOyYgeu2hA0KK+q5gOq3nOyVhQ0KK+q5gOyCvO2YhA0KK+q5gOyihe2VmQ0KK+q5gOuzkeyYgQ0KK+q5gOyaqeybkA0KK+q5gOygleyYgQ0KK+q5gOyihe2VmQ0KK+q5gOycoOydtA0KK+q5gOyLne2DnA0KK+q5gOygleyXsA0KK+q5gOyihe2VnA0KK+q5gOyaqeyekA0KK+q5gOynhOyehA0KK+q5gO2ZmOyYgQ0KK+q5gOyihe2VtA0KK+q5gO2YhOywrA0KK+q5gOq3nOyLnQ0KK+q5gOyYgeyWkQ0KK+q5gOyihe2YhA0KK+q5gO2cmOyZhA0KK+q5gOyduOyglQ0KK+q5gOq4uOuCqA0KK+q5gOyihe2YhA0KK+q5gOu0ie2biA0KK+q5gO2XjOq4sA0KK+q5gOqwkeuguQ0KK+q5gOyihe2YuA0KK+q5gOyerOyLnQ0KK+q5gOyerOqyvQ0KK+q5gO2Zje2ZmA0KK+q5gOyihe2YuA0KK+q5gOyDgeyEnQ0KK+q5gOuPhOq3nA0KK+q5gOybkOqysA0KK+q5gOyihe2YuA0KK+q5gOydmOybkA0KK+q5gOywqOyImA0KK+q5gOq1rO2YuA0KK+q5gOyihe2ZlA0KK+q5gO2YhOykkQ0KK+q5gOq4sOumvQ0KK+q5gOydvOyCvA0KK+q5gOyihe2ZlA0KK+q5gOu0ieykkQ0KK+q5gOunjOybhQ0KK+q5gOyImO2VmQ0KK+q5gOyihe2ZmA0KK+q5gOyEuOyXvQ0KK+q5gOyerOuNlQ0KK+q5gO2VtOyhsA0KK+q5gOyihe2ZmA0KK+q5gOunkO2VhA0KK+q5gOuPmeyErQ0KK+q5gOyaqeyEsQ0KK+q5gOyihe2biA0KK+q5gOydtOyYgQ0KK+q5gOydvOyInA0KK+q5gOyDgeyImA0KK+q5gOyihe2doA0KK+q5gOyaqeq3vA0KK+q5gOyblOyLnQ0KK+q5gOywveq4uA0KK+q5gOyihe2drA0KK+q5gOyasOy2nA0KK+q5gOuqqOyImQ0KK+q5gOyaqeyEoA0KK+q5gOyjvOqwkQ0KK+q5gOykkeyaqQ0KK+q5gO2YhO2ZjQ0KK+q5gO2DnOqyuA0KK+q5gOyjvOuNlQ0KK+q5gOyerOuylA0KK+q5gOynhOuNlQ0KK+q5gOydmOuFuA0KK+q5gOyjvOuztQ0KK+q5gOuMgOyekA0KK+q5gOyiheuegA0KK+q5gOu0ie2drA0KK+q5gOyjvOu0iQ0KK+q5gOyKue2ZmA0KK+q5gOydteyImA0KK+q5gOyImOynhA0KK+q5gOyjvOyDgQ0KK+q5gOq3gOyyoA0KK+q5gOybkOyWkQ0KK+q5gOqzhOydtA0KK+q5gOyjvOyDgQ0KK+q5gOynhO2YhA0KK+q5gOyCvOyImA0KK+q5gOyYgeqyvQ0KK+q5gOyjvOyEnQ0KK+q5gOuPmeyasA0KK+q5gOyiheyEoA0KK+q5gOyblOyEoA0KK+q5gOyjvOyEnQ0KK+q5gOyEneq3vA0KK+q5gOydvO2ZmA0KK+q5gOuvuOyekA0KK+q5gOyjvOyEsQ0KK+q5gOyEoOyaqQ0KK+q5gOq3vOyXsA0KK+q5gOq1rOyaqQ0KK+q5gOyjvOyInA0KK+q5gOuPme2DnA0KK+q5gOyerOq2jA0KK+q5gOyblOq3nA0KK+q5gOyjvOyduA0KK+q5gOyLnOu0iQ0KK+q5gO2YuO2RnA0KK+q5gOykkeyerA0KK+q5gOyjvOydvA0KK+q5gOyiheyXsA0KK+q5gOyaqeyImA0KK+q5gOywveyEnQ0KK+q5gOyjvO2DnA0KK+q5gOyatO2drA0KK+q5gOyihe2DnA0KK+q5gOydvOyyoA0KK+q5gOyjvO2DnQ0KK+q5gOyEneu2hA0KK+q5gOyduOyhsA0KK+q5gOybkOynhA0KK+q5gOyjvO2VmA0KK+q5gOyEneyYgQ0KK+q5gO2DnOyLnQ0KK+q5gCDsmrANCivquYDso7ztlZkNCivquYDsg4HtmLgNCivquYDsmIHtm4gNCivquYDsnbjrqqkNCivquYDso7ztmIQNCivquYDtmLjtnawNCivquYDrs5HtmLgNCivquYDsgrzrnpgNCivquYDso7ztmLgNCivquYDrjZXsobANCivquYDsmqnsiJgNCivquYDtlZjssKwNCivquYDso7ztmZgNCivquYDsoJXrj4QNCivquYDso7zsg50NCivquYDsiJnsiJgNCivquYDso7ztnaANCivquYDsp4jsnbQNCivquYDrqoXtnJgNCivquYDsnbzrjIANCivquYDso73shKANCivquYDsnKDsnbwNCivquYDrp5DtlZkNCivquYDtlZnqtawNCivquYDspIDqs6QNCivquYDtnJjsg4ENCivquYAg642VDQor6rmA7Jqp64+ZDQor6rmA7KSA6recDQor6rmA7LC97J20DQor6rmA7JiB66GcDQor6rmA7KeA66a9DQor6rmA7KSA6riwDQor6rmA7IK866CoDQor6rmA7Iuc7IudDQor6rmA7JuQ7JuQDQor6rmA7KSA67O0DQor6rmA7LKt7ZiEDQor6rmA7Jqp7JyoDQor6rmA64Ko7IiYDQor6rmA7KSA7IudDQor6rmA7YyQ7ISdDQor6rmA7J6s7JWEDQor6rmA7KCV7J28DQor6rmA7KSA7IudDQor6rmA7ZuI7KSADQor6rmA7IOB7KeEDQor6rmA7KKF7KCVDQor6rmA7KSA7JewDQor6rmA7Iic7ISdDQor6rmA7KCV7KCVDQor6rmA7Zi46rG0DQor6rmA7KSA7JiBDQor6rmA7YyQ7Zi4DQor6rmA7ZW07Zi4DQor6rmA6rK97LKgDQor6rmA7KSA7JqwDQor6rmA7IOB7IudDQor6rmA7Jyk7Je0DQor6rmA7ZW07YOcDQor6rmA7KSA7JuFDQor6rmA7ISd6recDQor6rmA6rCR642VDQor6rmA7KKF7JiBDQor6rmA7KSA7J6QDQor6rmA7KKF7IiYDQor6rmA7IOB64+EDQor6rmA66qF6rOkDQor6rmA7KSA7LKgDQor6rmA7ZiE7IicDQor6rmA7ZyY6rCADQor6rmA7Jyk7JuFDQor6rmA7KSA7YOdDQor6rmA66y07Zi4DQor6rmA7ZWZ7Zi4DQor6rmA7YOc7J6QDQor6rmA7KSA7YOdDQor6rmA7ZWc7ZmNDQor6rmA7J2A6raMDQor6rmA7IOB7LKgDQor6rmA7KSA7Zi4DQor6rmA7JiB7J28DQor6rmA7KSR65OxDQor6rmA7ZiE7ISgDQor6rmA7KSA7Zi4DQor6rmA7Jqp64KoDQor6rmA7KKF7IicDQor6rmA7Jqp7J20DQor6rmA7KSA7Zi4DQor6rmA7Jyk7JewDQor6rmA7IOB66eMDQor6rmA7ZWY7IOBDQor6rmA7KSA7ZmYDQor6rmA7ISx7JuQDQor6rmA7ZWc7ZiEDQor6rmA67OR6rK9DQor6rmA7KSR6rG0DQor6rmA7KCQ6riwDQor6rmA7ISx7ZmYDQor6rmA7KO87Z2sDQor6rmA7KSR6rG0DQor6rmA6rK97IStDQor6rmA7J6s7IiYDQor6rmA64+Z7KGwDQor6rmA7KSR6rSRDQor6rmA6riI7Zy0DQor6rmA7ISx7ZiEDQor6rmA7Jew65OdDQor6rmA7KSR6re8DQor6rmA64+Z7Je0DQor6rmA7JuQ7IiYDQor6rmA6rSR7ZiEDQor6rmA7KSR6riwDQor6rmA7ZWc7ZmUDQor6rmA7Iic7IiYDQor6rmA7IOB7ZiBDQor6rmA7KSR66CoDQor6rmA7JiB7IicDQor6rmA7Jm47Zi4DQor6rmA7Jyg7IOBDQor6rmA7KSR66CoDQor6rmA7J2R7IicDQor6rmA7KSA7ZmUDQor6rmA7IOB7IudDQor6rmA7KSR7ISdDQor6rmA64+Z7Jq0DQor6rmA7IOB7JykDQor6rmA6rWt7ZmYDQor6rmA7KSR7IiYDQor6rmA7IOB65OdDQor6rmA7Jq07Ja1DQor6rmA7IiY6rSRDQor6rmA7KSR7IiYDQor6rmA6rec7IukDQor6rmA6riI642VDQor6rmA7ZmN7ISxDQor6rmA7KSR7JuQDQor6rmA7IOB7Zi4DQor6rmA7ISx7JqwDQor6rmA7LKg7Zi4DQor6rmA7KSR7J28DQor6rmA7Zqo67CwDQor6rmA7Jm466CsDQor6rmA7IiZ7YOcDQor6rmA7KSR7J6QDQor6rmA64+Z7Zi4DQor6rmA64yA7Zi4DQor6rmA7J247YOdDQor6rmA7KSR7ZiEDQor6rmA7JiB6riwDQor6rmA6rOE7Zi4DQor6rmA6rK97IiYDQor6rmA7KSR7ZicDQor6rmA7Jqw7Je0DQor6rmA66qF7Zi4DQor6rmA6riw6rOkDQor6rmA7KSR7Z2sDQor6rmA7KCQ7ISdDQor6rmA7Z2s7JqpDQor6rmA67aE7LC9DQor6rmA7Kad7IiZDQor6rmA7LCo65OdDQor6rmA7J2E7ZiEDQor6rmA6rCR7JWgDQor6rmA7Kad7IicDQor6rmA7IiY7LGEDQor6rmA67OR64W4DQor6rmA64+E7YOcDQor6rmA7Kad7KSADQor6rmA7JuQ7IiYDQor6rmA7JiB7ZmYDQor6rmA7JWg7KCcDQor6rmA7KeA6re8DQor6rmA7Jqp7JikDQor6rmA7LKc7ISdDQor6rmA7ZWc7KKFDQor6rmA7KeA67SJDQor6rmA7Iic7JuQDQor6rmA7IOB7Zi4DQor6rmA7Zqo6re8DQor6rmA7KeA67SJDQor6rmA7ISg7J6QDQor6rmA7YOc7Zi4DQor6rmA7JiB7J28DQor6rmA7KeA7Iq5DQor6rmA7Iq57IudDQor6rmA7Iq57JqpDQor6rmA7ZiE66y1DQor6rmA7KeA7JWgDQor6rmA6reA7JqpDQor6rmA7ZWc7JiBDQor6rmA7ZWZ7JuQDQor6rmA7KeA7JewDQor6rmA7ISx7Z2sDQor6rmA7KKF6rCRDQor6rmA7ISx6rWtDQor6rmA7KeA7ZiEDQor6rmA7J6s7IiYDQor6rmA7KKF7ZGcDQor6rmA67OR7IigDQor6rmA7KeA7ZicDQor6rmA7J2464+ZDQor6rmA7LaY7JWUDQor6rmA7ZmN7ZiEDQor6rmA7KeA7Z2sDQor6rmA7YOc7JuQDQor6rmA7IK87ZmUDQor6rmA66qF7Z2sDQor6rmA7KeE6rK9DQor6rmA64+Z7KGwDQor6rmA67O17IusDQor6rmA7Jqp7ZmNDQor6rmA7KeE6rOkDQor6rmA7Jew7ZiEDQor6rmA7Jqp7IiYDQor6rmA7Jqp6raMDQor6rmA7KeE6rOkDQor6rmAIOyYpQ0KK+q5gOyInOyLnQ0KK+q5gOq4sOyImA0KK+q5gOynhOqzpA0KK+q5gOyEoOyekA0KK+q5gOyEoO2YuA0KK+q5gOunjOyInA0KK+q5gOynhOq1rA0KK+q5gO2DnOydvA0KK+q5gOyyoOybkA0KK+q5gOygleydvA0KK+q5gOynhOq2jA0KK+q5gOusuOyerA0KK+q5gOydgOq3vA0KK+q5gOyXsO2YlQ0KK+q5gOynhOq2jA0KK+q5gOq3nOq2jA0KK+q5gOyerO2ZlA0KK+q5gOygle2YuA0KK+q5gOynhOq3nA0KK+q5gOy2mOyLnQ0KK+q5gOyYgeyInA0KK+q5gO2YnOq0gA0KK+q5gOynhOq3nA0KK+q5gOyerOyepQ0KK+q5gO2Yle2YhA0KK+q5gOuzke2YuA0KK+q5gOynhOq3nA0KK+q5gOyDgeyhsA0KK+q5gOynhOyImQ0KK+q5gOuvuO2YhA0KK+q5gOynhOq4sA0KK+q5gOygkOyekA0KK+q5gOuCqOydtA0KK+q5gOuTsey2nA0KK+q5gOynhOuMgA0KK+q5gOuRkOyDnQ0KK+q5gO2SjeyVvA0KK+q5gOuzkeygkA0KK+q5gOynhOuMgA0KK+q5gO2ZjeyasQ0KK+q5gOq3vOyyoA0KK+q5gOuRkOyInA0KK+q5gOynhOuPmQ0KK+q5gOqyveyImQ0KK+q5gOybkOynhA0KK+q5gOuPme2YuA0KK+q5gOynhOuPmQ0KK+q5gOuzkeyImA0KK+q5gOydgOyhsA0KK+q5gO2ZmO2DnA0KK+q5gOynhOuPmQ0KK+q5gOyasOuTnQ0KK+q5gOyDgeyInA0KK+q5gO2DnOuPmQ0KK+q5gOynhOuhnQ0KK+q5gOyyoOumvA0KK+q5gOyEseykgA0KK+q5gOyynOqwkQ0KK+q5gOynhOuwsA0KK+q5gOyInOuqqQ0KK+q5gO2DnOyyoA0KK+q5gOyEseybhQ0KK+q5gOynhOyEnQ0KK+q5gOq4sO2XjA0KK+q5gOygle2DnA0KK+q5gOyerOuPjA0KK+q5gOynhOyEnQ0KK+q5gO2Dne2WpQ0KK+q5gOyiheydvA0KK+q5gOuMgOydvA0KK+q5gOynhOyErQ0KK+q5gOy+jOydvA0KK+q5gOyerOuPhA0KK+q5gOygleq0gA0KK+q5gOynhOyErQ0KK+q5gO2bhO2ZmA0KK+q5gOydmO2VmA0KK+q5gOyDgeyekA0KK+q5gOynhOyImA0KK+q5gOyYgeunjA0KK+q5gOyDgeyEoA0KK+q5gOybkOywqA0KK+q5gOynhOyImA0KK+q5gOyaqeqyvQ0KK+q5gOyYgeygnA0KK+q5gOydvOq1rA0KK+q5gOynhOyImQ0KK+q5gOyYge2YhA0KK+q5gOyihe2YuA0KK+q5gOyXsOyjvA0KK+q5gOynhOyImQ0KK+q5gOunkO2ZmA0KK+q5gOuPmey2mA0KK+q5gOq2ge2VnA0KK+q5gOynhOyIoA0KK+q5gO2DnO2DnA0KK+q5gOybkOyDgQ0KK+q5gOqyveuwsA0KK+q5gOynhOyLnQ0KK+q5gOyasO2XjA0KK+q5gOyEseyEnQ0KK+q5gOq4sOyasA0KK+q5gOynhOyLnQ0KK+q5gOyerOyXtA0KK+q5gOyerOyImA0KK+q5gOyEuOyihQ0KK+q5gOynhOyXtA0KK+q5gOyDgeyLnQ0KK+q5gOq4sOuTnQ0KK+q5gOydvOuPmQ0KK+q5gOynhOyYgQ0KK+q5gOq3nOyImA0KK+q5gOygleq3nA0KK+q5gOyYgeyVlA0KK+q5gOynhOyYgQ0KK+q5gOydtOuPmQ0KK+q5gO2DnOyLnQ0KK+q5gOq4sO2WpQ0KK+q5gOynhOyYpA0KK+q5gOyEseyLnQ0KK+q5gOyghOq4sA0KK+q5gOybkOuCqA0KK+q5gOynhOyaqQ0KK+q5gOuvuOq3vA0KK+q5gOycpOybhQ0KK+q5gOyKueyyoA0KK+q5gOynhOyasA0KK+q5gOyYgeyihQ0KK+q5gOy5oO2YhA0KK+q5gOyYgeyImA0KK+q5gOynhOybhQ0KK+q5gO2DnOyglQ0KK+q5gO2YleuztQ0KK+q5gOuzkeuPhA0KK+q5gOynhOydvA0KK+q5gOygley2mA0KK+q5gOyduO2biA0KK+q5gOyxhOqxtA0KK+q5gOynhOyihQ0KK+q5gOyduOunjA0KK+q5gOyiheyImA0KK+q5gOyXsOyynA0KK+q5gOynhOyjvA0KK+q5gOynhO2drA0KK+q5gOuMgOydtA0KK+q5gOywvey5oA0KK+q5gOynhOyynA0KK+q5gOyaqe2drA0KK+q5gOywrOybhQ0KK+q5gOyImOyjvA0KK+q5gOynhO2DnA0KK+q5gOuMgO2biA0KK+q5gOygleyImA0KK+q5gOygkOyXtA0KK+q5gOynhO2DnA0KK+q5gOuzkeybkA0KK+q5gOygleyInA0KK+q5gOyYgey2mA0KK+q5gOynhO2DnA0KK+q5gOq3vOyXtA0KK+q5gOyerOyEoA0KK+q5gOq4sOqwlQ0KK+q5gOynhO2DnA0KK+q5gOydvOqyrA0KK+q5gOydvOq4uA0KK+q5gOygleyYgQ0KK+q5gOynhO2DnQ0KK+q5gOq4sO2DgQ0KK+q5gO2DnOyInA0KK+q5gOybkOynhA0KK+q5gOynhO2VmQ0KK+q5gOyjvOyekA0KK+q5gOyduO2DnA0KK+q5gOyerOulnA0KK+q5gOynhO2VmQ0KK+q5gOunjOyglQ0KK+q5gO2VtO2YlQ0KK+q5gOuzkeustA0KK+q5gOynhO2YlQ0KK+q5gOyWuOynhA0KK+q5gOyImOybkA0KK+q5gOyerOydvA0KK+q5gOynhO2YuA0KK+q5gOyerOuPiA0KK+q5gOygle2YuA0KK+q5gOyiheq4sA0KK+q5gOynhO2YuA0KK+q5gO2ZjeyyoA0KK+q5gOyerOyLnQ0KK+q5gOyInOuCqA0KK+q5gOynhO2YuA0KK+q5gOyerO2ZmA0KK+q5gOydteq4sA0KK+q5gOygle2YuA0KK+q5gOynhO2YuA0KK+q5gOyaqeyaqQ0KK+q5gOq1rOykgA0KK+q5gOydvOq3nA0KK+q5gOynhO2ZjQ0KK+q5gOygleywrA0KK+q5gOyCrOyEnQ0KK+q5gOyEse2DnA0KK+q5gOynhO2ZmA0KK+q5gOyYgeyYpA0KK+q5gOyImOyImQ0KK+q5gO2DnOyEnQ0KK+q5gOynhO2aqA0KK+q5gCDqtowNCivquYDsnbztmZgNCivquYDshLHquLgNCivquYDsp4TtnawNCivquYDshozsiJwNCivquYDrjZXsnpANCivquYDsm5DshKANCivquYDsp4TtnawNCivquYDquLDtlZkNCivquYDsnqzsnbwNCivquYDsooXqtawNCivquYDsp4TtnawNCivquYDrjIDsmrQNCivquYDtg5zqtowNCivquYDrtIntmZgNCivquYDsp4TtnawNCivquYDsiJjsm5ANCivquYDsiJzrtIkNCivquYDsl7DsiKANCivquYDsp4jtjJANCivquYDsiJjrj4wNCivquYDsooXqtowNCivquYDqtJHsiJgNCivquYDssKjrhbgNCivquYDshJ3snoQNCivquYDrs5HsmqkNCivquYDsooXrgqgNCivquYDssKjrtIkNCivquYDsnqzqsbQNCivquYDqsJHsl7ANCivquYDsnqzsp4QNCivquYDssKjshJ0NCivquYDsmIHtm4gNCivquYDsiJzsi50NCivquYDsoJXrkZANCivquYDssKjshJ0NCivquYDrs5HtmLgNCivquYDsi5zsi50NCivquYDquLDsi6wNCivquYDssKjslZQNCivquYDsnKTsiKANCivquYDsmKTsoJwNCivquYDssq3rnb0NCivquYDssKjslZQNCivquYDsnbztlZwNCivquYDsg4HtmZgNCivquYDsnYDtm4gNCivquYDssKjsl7ANCivquYDsmqnsiJgNCivquYDsg4Hqsr0NCivquYDsg4HsnKgNCivquYDssKjsmIENCivquYDrj4TtlbQNCivquYDqt5zsiJgNCivquYDtjJDtnawNCivquYDssKjsspwNCivquYDqta3sobANCivquYDsiJnqt5wNCivquYDsgrzqtIANCivquYDssKjstpwNCivquYDsoJXrj4wNCivquYDsnqzrj5kNCivquYDtlZzsiJkNCivquYDssKjtmY0NCivquYDsmYTsoJUNCivquYDqt4DrrLgNCivquYDtl4zsiJwNCivquYDssKjtnawNCivquYDstpjtmLgNCivquYDrgpnssqANCivquYDsiJjslrgNCivquYDssKzqsr0NCivquYDrhbjshK0NCivquYDsl7DquLANCivquYDtg5zspIANCivquYDssKzsiJgNCivquYDsnqXsmrENCivquYDquLDsnqwNCivquYDrrJjtmZgNCivquYDssL3qtawNCivquYDrqoXtmLgNCivquYDsoJXsnbQNCivquYDqt7ztg5wNCivquYDssL3qt7wNCivquYDrtoTshJ0NCivquYDstpjsiJkNCivquYDsoJXssqANCivquYDssL3qt7wNCivquYDshLHsiJgNCivquYDqsr3tg5wNCivquYDquLDqt7kNCivquYDssL3quLANCivquYDtg4Dsi50NCivquYDrtInrhZUNCivquYDrr7zsgrwNCivquYDssL3quLANCivquYDsiJjshJ0NCivquYDsnqXrk50NCivquYDsnKTqt5wNCivquYDssL3rrLgNCivquYDsg4HrsLANCivquYDshKDsiJgNCivquYDrs5HtnawNCivquYDssL3rsLANCivquYDsoJXsi50NCivquYDssL3siJgNCivquYDrj5nsiJwNCivquYDssL3shKANCivquYDsiJntmIQNCivquYDqsr3ssqANCivquYDsmIHsmKQNCivquYDssL3shLENCivquYDsg4Htg5wNCivquYDslrXquLANCivquYDquLDtnLQNCivquYDssL3siJgNCivquYDsiJjtmZgNCivquYDrs5HrgqgNCivquYDsiJjssqANCivquYDssL3siJgNCivquYDsmqntmLgNCivquYDtg5ztnawNCivquYDqt5ztmqgNCivquYDssL3siJgNCivquYDsg4HspIANCivquYDsirnsl7ANCivquYDtmLjslZQNCivquYDssL3siJkNCivquYDrs5HsiJkNCivquYDsg4HsiJwNCivquYDsi6Dqt7wNCivquYDssL3si50NCivquYDqsr3si50NCivquYDqsbTrp4wNCivquYDsnqzsiJgNCivquYDssL3si50NCivquYDshLHspIANCivquYDsnqXsnpANCivquYDsspzsl7ANCivquYDssL3si50NCivquYDsmbjslYQNCivquYDshJ3sobANCivquYDshJ3siJgNCivquYDssL3slaANCivquYDsooXrj5kNCivquYDrgqjqtoENCivquYDsm5DrkZANCivquYDssL3slrUNCivquYDsmqnsiJwNCivquYDsirnrsLANCivquYDsoJXqs4QNCivquYDssL3slrUNCivquYDrs5HrtIkNCivquYDsmrDtnawNCivquYDrj5ntmIQNCivquYDssL3sl7QNCivquYDsoJXtmLgNCivquYDsnqzqt7wNCivquYDsg4HtmZgNCivquYDssL3sl7QNCivquYDsmIHsmrENCivquYDtg5zrp4wNCivquYDsoJXshKANCivquYDssL3sl7QNCivquYDrqoXrjZUNCivquYDquLDstpwNCivquYDsoJXtlZwNCivquYDssL3smYQNCivquYDsnqzsnqwNCivquYDsnYTsiJgNCivquYDsg4HrtoQNCivquYDssL3smrQNCivquYDsooXsnYQNCivquYDsmIHqt5wNCivquYDqt5ztmLgNCivquYDssL3snbwNCivquYDrtoDsiJwNCivquYDsg4HtmZQNCivquYDtg5zstpgNCivquYDssL3sp4QNCivquYDrsLHtmIQNCivquYDsspzqt5wNCivquYDsmIHrsLANCivquYDssL3tg5wNCivquYDsoJXsiJkNCivquYDspIDtnawNCivquYDsgrDqt5wNCivquYDssL3tlZkNCivquYDrrLjrrLgNCivquYDtjJDrk50NCivquYDtg5zssqANCivquYDssL3tlbQNCivquYDtmqjtmLgNCivquYDtnJjtmLgNCivquYDsmKXqt5wNCivquYDssL3tmIQNCivquYDtnaztg50NCivquYDsoJXsmqkNCivquYDtlbTqtZANCivquYDssL3tmIQNCivquYDsnoTsmKUNCivquYDrqoXtmLgNCivquYDssqDsnKQNCivquYDssL3tmLgNCivquYDqsr3spIANCivquYDshLHssqANCivquYDtmITsiJgNCivquYDssL3tmLgNCivquYDtmZjsiJgNCivquYDrs5HshJ0NCivquYDquLDqt5wNCivquYDssL3tmLgNCivquYDtg53sp4QNCivquYDsoJXqt7wNCivquYDsoJXsiJgNCivquYDssL3tmLgNCivquYDsoJXtlZkNCivquYDtmJXtmIENCivquYDspJHstpgNCivquYDssL3tmLgNCivquYDtg5ztmIQNCivquYDquIjsiJwNCivquYDrtInsiJwNCivquYDssL3tmLgNCivquYDsg4HssqANCivquYDshLHrjZUNCivquYDquLDsnbgNCivquYDssL3tmZgNCivquYDssL3quLgNCivquYDrgqjquLANCivquYDsnqztg5wNCivquYDssYTsiJgNCivquYDrjZXrrLgNCivquYDtlZzrs7UNCivquYDsi6TtnLQNCivquYDssYTsi50NCivquYDsm5DquLANCivquYDsg4Htg5wNCivquYDshJ3tmZgNCivquYDsspzrk50NCivquYDspIDsiJkNCivquYDsnqzsl7ANCivquYDsm5DtnawNCivquYDsspzshJ0NCivquYDsmIHslrgNCivquYDsnqzsiJgNCivquYDtlonqtawNCivquYDsspzsiJgNCivquYDrtIntnawNCivquYDrkZDsnbQNCivquYDsmIHrtoQNCivquYDsspztlZkNCivquYDtlbTqt6ANCivquYDsmIHtmLgNCivquYDsgrzrtIkNCivquYDsspztmLgNCivquYDqt4DtlYQNCivquYDquIjrs7UNCivquYDsoJXsnbwNCivquYDssqDquLANCivquYDsiJztlbQNCivquYDrj5nrnoANCivquYDsooXtm4gNCivquYDssqDrkZANCivquYDrj5nsiJgNCivquYDsg4HtlZwNCivquYDsmIHrk50NCivquYDssqDrnpENCivquYDstpjsmYQNCivquYDshKDrjZUNCivquYDsnbjrs7UNCivquYDssqDsiJgNCivquYDsnbjrj5kNCivquYDshLHruYgNCivquYDsnqzqtZANCivquYDssqDsiJgNCivquYDtjJDtmIQNCivquYDqtozsiJgNCivquYDsmIHsoJUNCivquYDssqDsiJgNCivquYDsoJXspJENCivquYDsiJjqt5wNCivquYDsoJXsl7QNCivquYDssqDsiJgNCivquYDtnJjtmIQNCivquYDshLHshJ0NCivquYDqsr3sobANCivquYDssqDsiJgNCivquYDsg4HssqANCivquYDqsr3siJkNCivquYDtlbTstpgNCivquYDssqDsiJgNCivquYDsnqXquIgNCivquYDsmIHrj5kNCivquYDtg5zsnbwNCivquYDssqDsoJUNCivquYDsgqztg5wNCivquYDsoJXspIANCivquYDsp4Dtm4gNCivquYDssq3shJ0NCivquYDsm5TtnawNCivquYDsg4HsiJgNCivquYDrs5HquLgNCivquYDstpTrn4kNCivquYDquLDrqqkNCivquYDsnqzsmqkNCivquYDssL3tmJUNCivquYDstpTsnpANCivquYDsooXroZ0NCivquYDtnazrrLgNCivquYDsp4Tsi50NCivquYDstpTtmZgNCivquYDsg4HtmIQNCivquYDquLDsm4UNCivquYDqsr3tlokNCivquYDstpjqt6ANCivquYDquLDsl7ANCivquYDsgqzro6ENCivquYDso7zrtoQNCivquYDstpjquLgNCivquYDrtoTsmKUNCivquYDtg5zsiJwNCivquYDrs5HsiJgNCivquYDstpjrhYANCivquYDsnqzrp4kNCivquYDtjJDshK0NCivquYDsoJDsmIENCivquYDstpjrsLANCivquYDtjJDqt7wNCivquYDsnbXshJ0NCivquYDshLjsiJgNCivquYDstpjrs7UNCivquYDsoJXsmKQNCivquYDsiJztmIQNCivquYDtg5zsi50NCivquYDstpjsg50NCivquYDspJHtmLgNCivquYDqsr3ssqANCivquYDsnqzsp4QNCivquYDstpjsiJgNCivquYDsnbzrpaANCivquYDrgqjssqANCivquYDtlbTsiJwNCivquYDstpjsi50NCivquYDsiJntmLgNCivquYDtmJzstpwNCivquYDsmIHshJ0NCivquYDstpjsi50NCivquYDsiJzshK0NCivquYDshLHrk50NCivquYDsnbjtg50NCivquYDstpjsi6QNCivquYDtmLjtmLgNCivquYDsnqzsmrANCivquYDso7zsmKUNCivquYDstpjsnpANCivquYDrj5ntlZwNCivquYDrtInsobANCivquYDsg4HsnbgNCivquYDstpjsnpANCivquYDsmIHrj5kNCivquYDqt5zsmKQNCivquYDqs6HtmZgNCivquYDstpjsnpANCivquYDqt5zrqoUNCivquYDtmY3qsJENCivquYDsg4HslpENCivquYDstpjtlZgNCivquYDqsr3qtZANCivquYDsnqXspIANCivquYDrtInspIANCivquYDstpjtlZgNCivquYDrj5nsi50NCivquYDtg5zshKANCivquYDsiJzsiJwNCivquYDstpjtnawNCivquYDsooXssqANCivquYDsmqnsl7ANCivquYDquIjtm4gNCivquYDstqnqtowNCivquYDsuZjqsbQNCivquYDsmIHsnpANCivquYDslpHquLANCivquYDstqnrgqgNCivquYDsmIHsnbwNCivquYDsiJjrr7gNCivquYDso7zqtowNCivquYDstqnrtoANCivquYDsnqztmLgNCivquYDsmqnsiJgNCivquYDqtJHqtowNCivquYDstqnsm5ANCivquYDsirnsiJwNCivquYDsmKTsg4ENCivquYDshJ3siJgNCivquYDstqnsm5ANCivquYDsg4HqtZANCivquYDrkZDsl4UNCivquYDsnKTrtIkNCivquYDstqntl4wNCivquYDtmY3smKUNCivquYDtmLjsi50NCivquYDsp4Ttg5wNCivquYDstqntmZgNCivquYDsmIHquLgNCivquYDsuaDsiJgNCivquYDtjJDsmqkNCivquYDstqntm4gNCivquYDstqnssqANCivquYDshKDtlZkNCivquYDsmIHqt7wNCivquYDstqntnawNCivquYDrjZXtg50NCivquYDsnqXquLANCivquYDrj5nqsJENCivquYDsuZjqtowNCivquYDsnKTsmIENCivquYAg7YOcDQor6rmA7KSR7LacDQor6rmA7LmY6raMDQor6rmA64uk7JqpDQor6rmA66qF7J28DQor6rmA6rK97JykDQor6rmA7LmY6raMDQor6rmA7KKF6riwDQor6rmA7JiB7IicDQor6rmA7J2E7JiBDQor6rmA7LmY7ISgDQor6rmA7KCQ7JewDQor6rmA7J6l7IOBDQor6rmA7Jil6raMDQor6rmA7LmY7J28DQor6rmA7IOB7ZWYDQor6rmA7JiB6re8DQor6rmA64+Z66qoDQor6rmA7LmY7ZuIDQor6rmA6riI67CwDQor6rmA7LCo7YOcDQor6rmA7IKs7IiZDQor6rmA7LmY7ZyYDQor6rmA7KO87J6QDQor6rmA7LC97IudDQor6rmA7KKF6regDQor6rmA7Lmg64+ZDQor6rmA7KeA66eMDQor6rmA66eM7ISdDQor6rmA7KCV6raMDQor6rmA7Lmg64+ZDQor6rmA7KCV6riwDQor6rmA64+Z7ZmpDQor6rmA64+E7Zy0DQor6rmA7Lmg7ISgDQor6rmA7LC97IiYDQor6rmA66qF7ZmYDQor6rmA7J2E7LaYDQor6rmA7Lmg7JqpDQor6rmA7Jqp7IiYDQor6rmA7KeE64+ZDQor6rmA7KO87Je0DQor6rmA7Lmg7JqpDQor6rmA6rSR7JqwDQor6rmA7KO87LacDQor6rmA7ISd7JmVDQor6rmA7Lmg7ZmNDQor6rmA6riI7Z2sDQor6rmA7ISd7JqpDQor6rmA7ZiE7JiBDQor6rmA7Lmg7Z2sDQor6rmA6rWs7JqwDQor6rmA7J2M64+ZDQor6rmA7Jil7IOBDQor6rmA7L6M7ISdDQor6rmA7J247IudDQor6rmA7Y+J7KGwDQor6rmA66qF7IStDQor6rmA7YOA7JuQDQor6rmA7J287ZWYDQor6rmA7ISd7Zi4DQor6rmA7JiB6riwDQor6rmA7YOc6rOkDQor6rmA64W47YOcDQor6rmA7KCQ7IicDQor6rmA6rK97ZmYDQor6rmA7YOc6rWQDQor6rmA7Jyk67CwDQor6rmA7IS4642VDQor6rmA7ISd7ZiEDQor6rmA7YOc6rWsDQor6rmA7IOB7LC9DQor6rmA7Jqp7IiZDQor6rmA7KCV7ZiEDQor6rmA7YOc6rWsDQor6rmA7Jyk642VDQor6rmA64Kc7JuQDQor6rmA7Z2s7LacDQor6rmA7YOc6raMDQor6rmA6rK97IiYDQor6rmA7ZmN656YDQor6rmA7YOc6rK9DQor6rmA7YOc6recDQor6rmA7IiY64+ZDQor6rmA7IOB7ZiEDQor6rmA67SJ7IudDQor6rmA7YOc6re8DQor6rmA7JiB7ZuIDQor6rmA642V6rG4DQor6rmA6rK97IOBDQor6rmA7YOc6re8DQor6rmA7YyQ7KGwDQor6rmA7ISd7ZiEDQor6rmA7ISx6rWsDQor6rmA7YOc6ri4DQor6rmA6rec7LKgDQor6rmA7Ja47Z2sDQor6rmA6reE6rK9DQor6rmA7YOc6ri4DQor6rmA7LC97ZiEDQor6rmA7J6s6riwDQor6rmA7KeE6riwDQor6rmA7YOc64+EDQor6rmA7JiB7IiYDQor6rmA7Zi47ISdDQor6rmA7Iug7J6QDQor6rmA7YOc64+MDQor6rmA6re87ISxDQor6rmA7Jqp64usDQor6rmA7JiB7KSADQor6rmA7YOc64+ZDQor6rmA7ZWc67aEDQor6rmA7ISx6rWsDQor6rmA7IS47IiYDQor6rmA7YOc64+ZDQor6rmA64Ko6riwDQor6rmA7ISx64+EDQor6rmA7JiB7ISgDQor6rmA7YOc66eMDQor6rmA67aE6rWsDQor6rmA7JiB7ZWZDQor6rmA66qF7IOBDQor6rmA7YOc66qFDQor6rmA7KeE66GcDQor6rmA67SJ7IicDQor6rmA7KKF64+ZDQor6rmA7YOc66y4DQor6rmA7J6s7ISxDQor6rmA7YOc7LKgDQor6rmA7LKc7IiYDQor6rmA7YOc67O1DQor6rmA6rSR7JqxDQor6rmA7J6s7ZGcDQor6rmA7ISd7ISgDQor6rmA7YOc67SJDQor6rmA64+Z6re8DQor6rmA66qF7KeEDQor6rmA6rK97ZWZDQor6rmA7YOc7ISdDQor6rmA7ZeM7Jq0DQor6rmA7Iic67KUDQor6rmA6rK97YOcDQor6rmA7YOc7ISgDQor6rmA7ISx64KoDQor6rmA7J2467O1DQor6rmA7IiY6rWsDQor6rmA7YOc7IStDQor6rmA66eM7Zi4DQor6rmA7ZWE7Zi4DQor6rmA7ZWZ7ZW0DQor6rmA7YOc7IStDQor6rmA7J2E66qFDQor6rmA7Jqw7ZiEDQor6rmA7Jqp7J6sDQor6rmA7YOc7ISxDQor6rmA67OR6re8DQor6rmA7ISx7JiBDQor6rmA6rec7Je0DQor6rmA7YOc7IiYDQor6rmA7KeE7KSADQor6rmA7KCQ7ZuIDQor6rmA7KCV7ZWYDQor6rmA7YOc7IiYDQor6rmA7IiY7JuQDQor6rmA7J2E7IiYDQor6rmA7Je07ISdDQor6rmA7YOc7IiYDQor6rmA7JuQ7IudDQor6rmA67SJ7LacDQor6rmA7ISg7IudDQor6rmA7YOc7IiYDQor6rmA7JiB7IiYDQor6rmA7Jq07JWUDQor6rmA7ZmU67CwDQor6rmA7YOc7IiYDQor6rmA7ZWZ7Zi4DQor6rmA7J6s7ZmUDQor6rmA7Jm47ZicDQor6rmA7YOc7IiYDQor6rmA7KeE6re8DQor6rmA7J2A7IiYDQor6rmA6rWt6rCcDQor6rmA7YOc7IiZDQor6rmA7Iug7KCVDQor6rmA7JiB7JqwDQor6rmA7KKF6rWsDQor6rmA7YOc7IiZDQor6rmA7J2E7YOdDQor6rmA7KSA7Z2sDQor6rmA7KeE7JewDQor6rmA7YOc7IicDQor6rmA67OR7JewDQor6rmA7JmE7ISgDQor6rmA7Jm47JqwDQor6rmA7YOc7IicDQor6rmA6riw7ZmYDQor6rmA7YyQ7JmEDQor6rmA7JiB6rOkDQor6rmA7YOc7IigDQor6rmA7YOc7ISgDQor6rmA7ISx7IiYDQor6rmA64W47JqpDQor6rmA7YOc7IudDQor6rmA7ISd7ISdDQor6rmA67O17IiYDQor6rmA6rSR7Zi4DQor6rmA7YOc7IudDQor6rmA7Jqp66y4DQor6rmA7JiB7KSADQor6rmA7IiY7JWUDQor6rmA7YOc7JewDQor6rmA67SJ64+EDQor6rmA7Jqp7JykDQor6rmA7KSR7Je0DQor6rmA7YOc7Je0DQor6rmA7JiB7KSADQor6rmA7Iic66qoDQor6rmA7LC97J28DQor6rmA7YOc7Je9DQor6rmA6rWt7IK8DQor6rmA7KeE6recDQor6rmA7IOB7JilDQor6rmA7YOc7JiBDQor6rmA6rec6recDQor6rmA7J6s7LKgDQor6rmA7J247LKgDQor6rmA7YOc7JiBDQor6rmA7Iah7ZiEDQor6rmA7ZWc7KeEDQor6rmA7J2R6re8DQor6rmA7YOc7JiBDQor6rmA7ISx7ISxDQor6rmA7IOB7KSADQor6rmA6rCR7Zy0DQor6rmA7YOc7JikDQor6rmA66y06raMDQor6rmA7YyQ7J6EDQor6rmA7JiB6ri4DQor6rmA7YOc7JqpDQor6rmA7KeE7ZmUDQor6rmA7JuQ7IKwDQor6rmA66y07IiYDQor6rmA7YOc7JqpDQor6rmA67OR7Zi4DQor6rmA7KCV7ZmUDQor6rmA7Jqw7Z2sDQor6rmA7YOc7JqpDQor6rmA7Jqp7IiYDQor6rmA7IKs6riwDQor6rmA6riw7J6EDQor6rmA7YOc7JqpDQor6rmA7KCV7JikDQor6rmA67O17KGwDQor6rmA66qF7JiBDQor6rmA7YOc7JqxDQor6rmA7Jqx7IiZDQor6rmA7IiY7ISgDQor6rmA7Jyk7IudDQor6rmA7YOc7Jq0DQor6rmA64+Z7IiYDQor6rmA6rec7J6QDQor6rmA7J6s7ISgDQor6rmA7YOc7JuQDQor6rmA642V6riwDQor6rmA7ISd7LacDQor6rmA7JiB7ZmNDQor6rmA7YOc7JuQDQor6rmA7KeA7ISdDQor6rmA7Jqp7IudDQor6rmA7JiB6ri4DQor6rmA7YOc7JuQDQor6rmA7Z2s7ZeMDQor6rmA6rK97Je0DQor6rmA7Jyk7IudDQor6rmA7YOc7JuQDQor6rmA67OR6raMDQor6rmA7Jqp7Z2sDQor6rmA7KeE7ZiEDQor6rmA7YOc7JygDQor6rmA7ISx7IicDQor6rmA66eM7ZWZDQor6rmA7KKF7IudDQor6rmA7YOc7JyhDQor6rmA64us7JewDQor6rmA67OR7IudDQor6rmA7ISx7KCcDQor6rmA7YOc7JyoDQor6rmA7JiB7IiYDQor6rmA7IOB642VDQor6rmA7Zi47JiBDQor6rmA7YOc7J2ADQor6rmA7KCQ6riwDQor6rmA7IOB6re5DQor6rmA7ISd67SJDQor6rmA7YOc7J2YDQor6rmA7J2466qFDQor6rmA7JiB6rWtDQor6rmA7KeE7JqxDQor6rmA7YOc7J20DQor6rmA7JiB66eQDQor6rmA65GQ7IiZDQor6rmA6riw7IStDQor6rmA7YOc7J28DQor6rmA7Jyk7IOdDQor6rmA7J6s64yADQor6rmA7IOB7IudDQor6rmA7YOc7J28DQor6rmA7J247ZWZDQor6rmA7ZWc6ri4DQor6rmA7KCV7ZeMDQor6rmA7YOc7J28DQor6rmA7IOB7KSADQor6rmA6rSR6rWsDQor6rmA7J247ZmUDQor6rmA7YOc7J28DQor6rmA6rCR7ISdDQor6rmA7ZeM7ZmYDQor6rmA7KO87IicDQor6rmA7YOc7J28DQor6rmA7KCQ7JiBDQor6rmA7IOB7IStDQor6rmA7YOc7KGwDQor6rmA7YOc7KCVDQor6rmA7KCV67SJDQor6rmA7YOc7ZiEDQor6rmA6reA7IiYDQor6rmA7YOc7KGwDQor6rmA6rCR7ISdDQor6rmA7KO87IiYDQor6rmA6riw7YOcDQor6rmA7YOc7KGwDQor6rmA7KKF7KSADQor6rmA7JiB7KGwDQor6rmA7J247ZW0DQor6rmA7YOc7KSRDQor6rmA64+Z7J28DQor6rmA7JuQ7Z2sDQor6rmA7IS47IiYDQor6rmA7YOc7KSRDQor6rmA7YOc7ZWcDQor6rmA7JuQ7IiZDQor6rmA66eM7J6QDQor6rmA7YOc7KeADQor6rmA67SJ66GdDQor6rmA7J6E6rOkDQor6rmA7J6s7IicDQor6rmA7YOc7KeEDQor6rmA64+E7JqwDQor6rmA7KCV7IudDQor6rmA7YOc7ZeMDQor6rmA7YOc7LKgDQor6rmA7J206rSADQor6rmA67SJ7IiYDQor6rmA67OR7IiYDQor6rmA7YOc7LKgDQor6rmA66eQ7ZmYDQor6rmA66qF7IiYDQor6rmA7J6s7Zi4DQor6rmA7YOc7LKgDQor6rmA7KKF7JqwDQor6rmA7LCo7YOcDQor6rmA7KKF7IudDQor6rmA7YOc7LKgDQor6rmA64yA7KSADQor6rmA7ISg7Zi4DQor6rmA7YOc7YOcDQor6rmA7YOc7LacDQor6rmA7Jyk66qpDQor6rmA7ISd7Zi4DQor6rmA6rOE7KSADQor6rmA7YOc7LacDQor6rmA7KCV7IukDQor6rmA7YOc7IudDQor6rmA7IaM7KSADQor6rmA7YOc7ZeMDQor6rmA7ZiE7Je0DQor6rmA7Jqp7IahDQor6rmA7IOB7ZmYDQor6rmA7YOc7ZiEDQor6rmA7KKF7J20DQor6rmA7ZWc7Je0DQor6rmA7JiB7JqwDQor6rmA7YOc7ZiVDQor6rmA7Jyk7ISxDQor6rmA6rec7JqwDQor6rmA7IiY7ZiEDQor6rmA7YOc7ZiVDQor6rmA7ZW07J6sDQor6rmA7Iic66eMDQor6rmA7YOc7ISdDQor6rmA7YOc7Zi4DQor6rmA7JuQ7JuQDQor6rmA7ISx7LKgDQor6rmA7JuF7JiBDQor6rmA7YOc7Zi4DQor6rmA7Iah6recDQor6rmA7KCV7JqwDQor6rmA7IOB7LKgDQor6rmA7YOc7Zi4DQor6rmA7ISg7ZiEDQor6rmA66+87ZmYDQor6rmA7JuQ7KSADQor6rmA7YOc7Zi4DQor6rmA7IOB67aEDQor6rmA7IiY642VDQor6rmA7JiB7J6EDQor6rmA7YOc7Zi4DQor6rmA7J2A66y4DQor6rmA7JiB7JqwDQor6rmA7ZmN67KUDQor6rmA7YOc7Zi4DQor6rmA7KCV7IicDQor6rmA7JuU7KO8DQor6rmA7Jil7JeFDQor6rmA7YOc7Zi4DQor6rmA7KKF7LacDQor6rmA7Zi466eMDQor6rmA7J2A6re8DQor6rmA7YOc7Zi4DQor6rmA7Jqp7KCVDQor6rmA67OR7JuFDQor6rmA7JiB64+EDQor6rmA7YOc7Zi4DQor6rmA64yA7ZmYDQor6rmA7KKF7JWUDQor6rmA7IOB7IOdDQor6rmA7YOc7Zi4DQor6rmA64+Z7JilDQor6rmA7Jqp7KGwDQor6rmA7J6E7ISgDQor6rmA7YOc7ZmUDQor6rmA67O17KSADQor6rmA64Kc6re8DQor6rmA7KKF7JWUDQor6rmA7YOc7ZmYDQor6rmA7KCV7ZmUDQor6rmA7IiY7IiZDQor6rmA7J2Y7LKgDQor6rmA7YOc7ZmYDQor6rmA7KeA7IiYDQor6rmA6riw67SJDQor6rmA7Iic7Zi4DQor6rmA7YOc7Z2sDQor6rmA7KKF6rK9DQor6rmA7JiB7KO8DQor6rmA67OR6riwDQor6rmA7YOc7Z2sDQor6rmA7Iic7IiYDQor6rmA64+Z7IStDQor6rmA7JuQ7LKgDQor6rmA7YOc7Z2sDQor6rmA6riI7J20DQor6rmA7IOB7IicDQor6rmA7IK864+EDQor6rmA7YyQ6rK9DQor6rmA6rOE7IudDQor6rmA7IK867CwDQor6rmA7Jik65OdDQor6rmA7YyQ6recDQor6rmA7Iah64+IDQor6rmA7Iic66asDQor6rmA6rec6riwDQor6rmA7YyQ6ri4DQor6rmA7Z2l6re8DQor6rmA7ISd65GQDQor6rmA67OR7JqxDQor6rmA7YyQ642VDQor6rmA66y47JqpDQor6rmA7KeE7ISdDQor6rmA7Iic6re8DQor6rmA7YyQ64+MDQor6rmA7Iic7ZiEDQor6rmA7Z2s6recDQor6rmA7YOc7ISxDQor6rmA7YyQ67SJDQor6rmA7KKF7ZiEDQor6rmA7J247J6QDQor6rmA64Ko7IukDQor6rmA7YyQ7ISdDQor6rmA7Jil7Zi4DQor6rmA7Zqo7J6QDQor6rmA7J247ISxDQor6rmA7YyQ7ISdDQor6rmA7JiB7ZalDQor6rmA6rK97Z2sDQor6rmA66eQ7Je0DQor6rmA7YyQ7IiYDQor6rmA7J6s7ISdDQor6rmA7ISx7ISgDQor6rmA7ZiE6re8DQor6rmA7YyQ7IiYDQor6rmA7IiY6recDQor6rmA7KKF7ZWcDQor6rmA6rK97IiYDQor6rmA7YyQ7IigDQor6rmA7IaM7Je0DQor6rmA7KCQ7JqwDQor6rmA7KKF656ADQor6rmA7YyQ7JewDQor6rmA7KCV7ZmYDQor6rmA66qF64+MDQor6rmA7IyN6re8DQor6rmA7YyQ7Je0DQor6rmA7KO87IiYDQor6rmA7Iic7IudDQor6rmA7KeE7LKgDQor6rmA7YyQ7JqpDQor6rmA7J6s7JuQDQor6rmA67SJ6riIDQor6rmA7ISg7KGwDQor6rmA7YyQ7Jq0DQor6rmA7J6l7JuQDQor6rmA6re86rCRDQor6rmA7Jyk7KO8DQor6rmA7YyQ7KGwDQor6rmA7J2864WEDQor6rmA7YOc7J2ADQor6rmA7YyQ7KSRDQor6rmA7YyQ7KeEDQor6rmA7Iic7JWUDQor6rmA6rSR6recDQor6rmA66+87JqpDQor6rmA7YyQ7YOcDQor6rmA7LKg7IOdDQor6rmA7JiB7ZuIDQor6rmA6rCR7KeRDQor6rmA7YyQ7ZiEDQor6rmA7KCV6rWQDQor6rmA7KKF7JqpDQor6rmA67OR7KCVDQor6rmA7YyQ7Zi4DQor6rmA64+Z7Zi4DQor6rmA6riI656ADQor6rmA7IyN7KO8DQor6rmA7YyU6rOkDQor6rmA7LC964+ZDQor6rmA7J6s7KGwDQor6rmA7YOc66eMDQor6rmA7YyU67SJDQor6rmA7YOc7JqwDQor6rmA6rWt6recDQor6rmA7IS464yADQor6rmA7ZGc7JuQDQor6rmA7IOB64yADQor6rmA7IOB67CwDQor6rmA7LC966a8DQor6rmA7ZWE6rWsDQor6rmA7Jyk7J28DQor6rmA7JiB7IicDQor6rmA7J217IudDQor6rmA7ZWE7JewDQor6rmA6rK97ZmYDQor6rmA7IOB7ISdDQor6rmA7IS466eMDQor6rmA7ZWY7ISdDQor6rmA7LaY7Zi4DQor6rmA7J247IStDQor6rmA66y07ZGcDQor6rmA7ZWY7KGwDQor6rmA7KCV66eMDQor6rmA7Iq567ORDQor6rmA6rec6rWtDQor6rmA7ZWZ6raMDQor6rmA6rSR66eMDQor6rmA6riw7J24DQor6rmA6rec6rWtDQor6rmA7ZWZ6riwDQor6rmA7Jq07JiBDQor6rmA7LaY6re8DQor6rmA64Ko7ZmYDQor6rmA7ZWZ6riwDQor6rmA7JiB6riwDQor6rmA7Zmp7JewDQor6rmA7KO866y4DQor6rmA7ZWZ64+EDQor6rmA6riI7YOcDQor6rmA7Jil6raMDQor6rmA7Iic7JqpDQor6rmA7ZWZ67SJDQor6rmA7Iic642VDQor6rmA7Iic7ZiEDQor6rmA7J2E7KeEDQor6rmA7ZWZ67SJDQor6rmA7ZmN7ZmYDQor6rmA7JeF7IOdDQor6rmA7ZW07J6QDQor6rmA7ZWZ67SJDQor6rmA67Cp7LaYDQor6rmA7Jik6raMDQor6rmA6riw7ZiEDQor6rmA7ZWZ7ISdDQor6rmA7J2A6rOkDQor6rmA66qF7IicDQor6rmA66eQ7LKgDQor6rmA7ZWZ7IiYDQor6rmA7ISd7JiBDQor6rmA7ZmN7ZmYDQor6rmA67OR7Z2sDQor6rmA7ZWZ7JqwDQor6rmA7KKF6rOkDQor6rmA7ZeM7Z2sDQor6rmA7ZiE7J6sDQor6rmA7ZWZ7JqwDQor6rmA66eM7KGwDQor6rmA7KeE7JewDQor6rmA7ISx6riwDQor6rmA7ZWZ7JykDQor6rmA7J247ISdDQor6rmA6rCR6re8DQor6rmA7Z2s7ISxDQor6rmA7ZWZ7J20DQor6rmA7KKF7Z2sDQor6rmA7Jqp7IicDQor6rmA67SJ7IudDQor6rmA7ZWZ7J20DQor6rmA6riw7IiYDQor6rmA7J6s6rSADQor6rmA6rec7IudDQor6rmA7ZWZ7KO8DQor6rmA7KCV7JqpDQor6rmA7LKg66+4DQor6rmA7YyQ7Z2sDQor6rmA7ZWc6rOkDQor6rmA7ZiE7JuQDQor6rmA7ISd67KUDQor6rmA7Lmg7Zi4DQor6rmA7ZWc6raMDQor6rmA7YOc6rCRDQor6rmA7KKF7JiBDQor6rmA7YyQ7ZiEDQor6rmA7ZWc6recDQor6rmA6re87KCVDQor6rmA66qF7J20DQor6rmA7ZW067CwDQor6rmA7ZWc6recDQor6rmA7KCV7ZmYDQor6rmA7JiB7JqpDQor6rmA6rSR6rK9DQor6rmA7ZWc6riwDQor6rmA6riI6rSADQor6rmA66+47YOcDQor6rmA7ZiV6rCQDQor6rmA7ZWc64+EDQor6rmA6reA7KSADQor6rmA7Zi47IiZDQor6rmA7JiB7J20DQor6rmA7ZWc67CwDQor6rmA7ZW07IicDQor6rmA6raM7JuFDQor6rmA66e57J6QDQor6rmA7ZWc7ISdDQor6rmA642V7IiYDQor6rmA7JiB7IigDQor6rmA7JiB7ZWZDQor6rmA7ZWc7IiYDQor6rmA7J246recDQor6rmA7JiB7Zi4DQor6rmA7KKF7IicDQor6rmA7ZWc7IiYDQor6rmA7KCV7LKgDQor6rmA7YOc7ZeMDQor6rmA65GQ7KSADQor6rmA7ZWc7IiYDQor6rmA7IOB7ZmUDQor6rmA7ISx7YOBDQor6rmA7J6s6rG4DQor6rmA7ZWc7IiYDQor6rmA7JiB7J20DQor6rmA64+I7IiYDQor6rmA7IiY7ISxDQor6rmA7ZWc7IicDQor6rmA66y47Zi4DQor6rmA7Jyk7KGwDQor6rmA6rOE642VDQor6rmA7ZWc7IicDQor6rmA7ISd7KGwDQor6rmA7J6s7JuUDQor6rmA7IK86re8DQor6rmA7ZWc7IudDQor6rmA7ZiV7Z2sDQor6rmA7ZmN7JWgDQor6rmA64Kc7ZW0DQor6rmA7ZWc7JqpDQor6rmA7Jyk7ZWZDQor6rmA7KeA6ri4DQor6rmA7IiY7ISgDQor6rmA7ZWc7KGwDQor6rmA7KKF66C5DQor6rmA7Iq57LKgDQor6rmA6rK97JqpDQor6rmA7ZWc7KKFDQor6rmA7KCV7Z2sDQor6rmA66+47Z2sDQor6rmA67OR67CwDQor6rmA7ZWc7KSRDQor6rmA7KSR656YDQor6rmA64Ko6rOkDQor6rmA7ISx7IicDQor6rmA7ZWc7YOcDQor6rmA64KZ7YOdDQor6rmA7Jqp7ZmUDQor6rmA7Jil6recDQor6rmA7ZWc7Zi4DQor6rmA7JuQ7J28DQor6rmA66eM656ADQor6rmA7Jyk67O0DQor6rmA7ZWc7ZmNDQor6rmA7KKF7JWgDQor6rmA7Jyk7KCVDQor6rmA64yA642VDQor6rmA7ZWc7ZmNDQor6rmA7Jq07IudDQor6rmA64+Z7JWUDQor6rmA7J247ZmUDQor6rmA7ZWc7Z2sDQor6rmA6rCR67O0DQor6rmA7KKF7Z2sDQor6rmA6reA7J28DQor6rmA7ZW06rOkDQor6rmA7J6s7KO8DQor6rmA7JiB64usDQor6rmA6riw7LacDQor6rmA7ZW064+ZDQor6rmA7Jyh7ZWcDQor6rmA7ISx7Z2sDQor6rmA6rCR6riwDQor6rmA7ZW066a8DQor6rmA7IOB7JmEDQor6rmA7KO87ISdDQor6rmA7YOc7ZmYDQor6rmA7ZW067SJDQor6rmA7J2Y7KGwDQor6rmA7ZWc66qoDQor6rmA64yA7Zi4DQor6rmA7ZW07ISdDQor6rmA6rSR7KSADQor6rmA7ISd7KGwDQor6rmA64+Z7Zi4DQor6rmA7ZW07ISdDQor6rmA7LC97ZiEDQor6rmA66+87ZmYDQor6rmA7LKg67O1DQor6rmA7ZW07ISgDQor6rmA7IiZ7IicDQor6rmA7JiB6raMDQor6rmA7JaR7LC9DQor6rmA7ZW07IiYDQor6rmA7JuQ6rWsDQor6rmA7J6E7ZmYDQor6rmA7LC96re8DQor6rmA7ZW07IiYDQor6rmA64yA7ISxDQor6rmA7Jew6ri4DQor6rmA7ZmU642VDQor6rmA7ZW07IiYDQor6rmA66y06riwDQor6rmA7ZW06riwDQor6rmA642V7KGwDQor6rmA7ZW07JewDQor6rmA7Iic642VDQor6rmA7J2Y7IicDQor6rmA7ISx7J6QDQor6rmA7ZW07Je0DQor6rmA6reA67SJDQor6rmA7J247IicDQor6rmA7IK87IStDQor6rmA7ZW07JqpDQor6rmA7KKF6rOgDQor6rmA7ISx7LKgDQor6rmA7Jq07Zi4DQor6rmA7ZW07J2ADQor6rmA6riw6recDQor6rmA7Zi47IiYDQor6rmA7JiB7ZuFDQor6rmA7ZW07J2ADQor6rmA7Iug6re8DQor6rmA7KCE6recDQor6rmA6riw7KSADQor6rmA7ZW07J2ADQor6rmA7IS47ZmYDQor6rmA7KKF64+ZDQor6rmA7Jik7Zi4DQor6rmA7ZW07KCVDQor6rmA67OR64+ZDQor6rmA7LCo7IiYDQor6rmA6reA6regDQor6rmA7ZW07KGwDQor6rmA7Jyk7ISxDQor6rmA7LaY7JewDQor6rmA7KCV7Zi4DQor6rmA7ZW07KeEDQor6rmA7IiY6re8DQor6rmA7YOc7Z2sDQor6rmA7J6s6rOkDQor6rmA7ZaJ7IicDQor6rmA7ISx7ZWYDQor6rmA7KCV7IiYDQor6rmA6rK97ZmNDQor6rmA7Zal7JewDQor6rmA6riw66qFDQor6rmA7KCV7ZmYDQor6rmA6re87LKgDQor6rmA7Zal7J20DQor6rmA66+47ZmYDQor6rmA7KCV7IiZDQor6rmA7Jqp656YDQor6rmA7ZeM6rCRDQor6rmA7Zmp7YOdDQor6rmA6riw7ZmUDQor6rmA7Jqp64KoDQor6rmA7ZeM7IudDQor6rmA7KCQ7IudDQor6rmA7Zic6rG0DQor6rmA7Iic7LKgDQor6rmA7ZeM7J6sDQor6rmA65Od7JewDQor6rmA6rec7J21DQor6rmA7KeE64yADQor6rmA7ZeM7YOcDQor6rmA7JiB7LKgDQor6rmA7YOc67SJDQor6rmA7Jyk7JewDQor6rmA7ZiE6riwDQor6rmA66qF7ISgDQor6rmA67O17J24DQor6rmA6riw7Jq0DQor6rmA7ZiE6riwDQor6rmA7YOc7JuQDQor6rmA7Zi47ZmNDQor6rmA7ISg7Je0DQor6rmA7ZiE65OdDQor6rmA6re56rK9DQor6rmA7ZmY7JqpDQor6rmA7Jil7J21DQor6rmA7ZiE656YDQor6rmA7J2Y7JqwDQor6rmA67OR7KGwDQor6rmA64us7ZW0DQor6rmA7ZiE66y1DQor6rmA7JiB7KSADQor6rmA6rK97JqpDQor6rmA6rSR7LacDQor6rmA7ZiE67O1DQor6rmA7J6s7JqpDQor6rmA642V7ZiEDQor6rmA7Z2s6re8DQor6rmA7ZiE7ISdDQor6rmA7Zi47IiYDQor6rmA64+Z66OhDQor6rmA7ZmY7LKgDQor6rmA7ZiE7IiYDQor6rmA66y47Jq0DQor6rmA64+Z6riwDQor6rmA7J6s7IicDQor6rmA7ZiE7IiYDQor6rmA67OR7J6lDQor6rmA7J6s7Z2sDQor6rmA7ZWZ7LKgDQor6rmA7ZiE7IiZDQor6rmA7Iic64+EDQor6rmA7ISx7JiBDQor6rmA7Jqw7Zi4DQor6rmA7ZiE7IiZDQor6rmA7ISx66eMDQor6rmA7KSA7Zi4DQor6rmA7J6E6recDQor6rmA7ZiE7IiZDQor6rmA6rCR67SJDQor6rmA7KCQ6recDQor6rmA7KKF7JqxDQor6rmA7ZiE7JilDQor6rmA7IOB6rOkDQor6rmA7J6s7ISgDQor6rmA7Iic66y4DQor6rmA7ZiE7JqxDQor6rmA7KSR642VDQor6rmA66e57IigDQor6rmA7KCV7IudDQor6rmA7ZiE7JuFDQor6rmA7JiB7J6sDQor6rmA64us7J24DQor6rmA66m067CwDQor6rmA7ZiE7J6sDQor6rmA6rSR6recDQor6rmA7IOB7IiYDQor6rmA6rSR7IiYDQor6rmA7ZiE7LC9DQor6rmA64+Z64yADQor6rmA7KCV642VDQor6rmA7ZWY7LKgDQor6rmA7ZiE7LKgDQor6rmA64us7JyoDQor6rmA7ISg7JWUDQor6rmA7J6s7ZmYDQor6rmA7ZiE7LKgDQor6rmA7ZmN7ZiEDQor6rmA642V7ISdDQor6rmA7Jq07JiBDQor6rmA7ZiE7LKgDQor6rmA7JiB7ZmYDQor6rmA7J6Q7J20DQor6rmA7KCV7ZWZDQor6rmA7ZiV6rWsDQor6rmA7JiB67O1DQor6rmA7KKF7IiZDQor6rmA7J6s7KGwDQor6rmA7ZiV64+ZDQor6rmA67SJ7IudDQor6rmA6rK966WcDQor6rmA7Jyk7ZuIDQor6rmA7ZiV6529DQor6rmA7KKF7Jq0DQor6rmA7KCV6raMDQor6rmA7KCV7IiYDQor6rmA7ZiV7IStDQor6rmA7IOB7IicDQor6rmA64+Z7Zi4DQor6rmA6riw7ISdDQor6rmA7ZiV7IiYDQor6rmA7ZeM7J20DQor6rmA7JiB7JiBDQor6rmA66y066+8DQor6rmA7ZiV7LKgDQor6rmA7ISx7JqwDQor6rmA7KKF7KeRDQor6rmA7ZWE7IiZDQor6rmA7ZiV7YOcDQor6rmA64yA642VDQor6rmA7ISx7ZWZDQor6rmA7KSR7JuQDQor6rmA7ZiV7ZW0DQor6rmA7JiB6rOkDQor6rmA7J2A6recDQor6rmA7KCV7LKcDQor6rmA7ZiV7Z2sDQor6rmA7KKF6rWsDQor6rmA7ZWZ6riwDQor6rmA66qF7ZmYDQor6rmA7Zic6rK9DQor6rmA67OR7J6QDQor6rmA67OR64usDQor6rmA7IKs7IiZDQor6rmA7Zic6rK9DQor6rmA6riw6rWwDQor6rmA7ISx7LmYDQor6rmA64+E7J2ADQor6rmA7Zic6rK9DQor6rmA6rCV7Z2sDQor6rmA7IiY67CxDQor6rmA6rec7LKgDQor6rmA7Zic6rK9DQor6rmA64us66y4DQor6rmA67OR7ZmYDQor6rmA7Jqw7KCVDQor6rmA7Zic7IiZDQor6rmA7J6s64+ZDQor6rmA7JiB7JWgDQor6rmA7ZW07JqwDQor6rmA7Zic7JiBDQor6rmA7J287JuQDQor6rmA7Jil7IicDQor6rmA7Jik6raMDQor6rmA7Zic7J6QDQor6rmA7KCQ7ZuIDQor6rmA66+87IudDQor6rmA7Jm46raMDQor6rmA7Zi46re8DQor6rmA7LCo7ISgDQor6rmA7KKF7IudDQor6rmA7Jyg67SJDQor6rmA7Zi46riwDQor6rmA7ISx7JiBDQor6rmA67OR7Z2sDQor6rmA67OR7IicDQor6rmA7Zi466OhDQor6rmA7ZiE7LKgDQor6rmA7J6s7J28DQor6rmA7KO87LKgDQor6rmA7Zi467SJDQor6rmA7IS46529DQor6rmA64+Z7ZeMDQor6rmA7KCV7J6QDQor6rmA7Zi47ISdDQor6rmA7Jqw7JilDQor6rmA7Z2s7J20DQor6rmA7Jqp66eMDQor6rmA7Zi47ISxDQor6rmA7LKg7IiYDQor6rmA67aE67CwDQor6rmA7JiB7IiYDQor6rmA7Zi47JW8DQor6rmA6rK97IicDQor6rmA7KCE7IicDQor6rmA7IOB7ISdDQor6rmA7Zi47JqpDQor6rmA7Jqp67mIDQor6rmA67O17JykDQor6rmA7Jyg6recDQor6rmA7Zi47JqpDQor6rmA67OR7YOcDQor6rmA7IiY7ISgDQor6rmA7Jew7KSADQor6rmA7Zi47J24DQor6rmA7IOB6recDQor6rmA7KCV7KeEDQor6rmA6riw7IigDQor6rmA7Zi47J28DQor6rmA66y47J6EDQor6rmA7J6l7LKtDQor6rmA7YOc642VDQor6rmA7Zi47KGwDQor6rmA7JiB7YOdDQor6rmA7ISx6recDQor6rmA64Ko7ZGcDQor6rmA7Zi47KSADQor6rmA7IiY6rSRDQor6rmA7JiB7IicDQor6rmA7Jil7LC9DQor6rmA7Zi47LKgDQor6rmA7KCV7ZWZDQor6rmA64KZ7IigDQor6rmA7KeE7KSADQor6rmA7ZmN6rG0DQor6rmAIOy2mA0KK+q5gO2YuOq4sA0KK+q5gOuzkeyInA0KK+q5gO2ZjeqyuA0KK+q5gOuMgOyErQ0KK+q5gOq4sOy2mA0KK+q5gO2DnOq4iA0KK+q5gO2Zjeq1rA0KK+q5gOq4sO2YuA0KK+q5gOuNleyjvA0KK+q5gOqyve2YuA0KK+q5gO2Zjeq1rQ0KK+q5gOyihe2YuA0KK+q5gO2dpeq4sA0KK+q5gOq1rOq3nA0KK+q5gO2Zjeq3nA0KK+q5gOygleq3oA0KK+q5gOqyveyEnQ0KK+q5gOyIoOyEsQ0KK+q5gO2Zjeq3nA0KK+q5gOygkO2VmQ0KK+q5gO2DnOyXtA0KK+q5gOyerOyImQ0KK+q5gO2Zjeq3nA0KK+q5gO2VmeyImA0KK+q5gOyDgeyasA0KK+q5gOydmOyYgQ0KK+q5gO2Zjeq3oA0KK+q5gOyImOunjA0KK+q5gOyYgeuTnQ0KK+q5gO2DnO2DnA0KK+q5gO2Zjeq3vA0KK+q5gOygleyynA0KK+q5gCDsmrANCivquYDsmIHsi50NCivquYDtmY3qt7wNCivquYDqs4TtmZQNCivquYDsmIHrjZUNCivquYDsmqnsiJwNCivquYDtmY3ri6wNCivquYDsm5DrsLANCivquYDsmKXqt5wNCivquYDsnpDsm4UNCivquYDtmY3rjZUNCivquYDtlYTsspwNCivquYDshozrs7UNCivquYDssL3sl7QNCivquYDtmY3rspQNCivquYDsm5TsmIENCivquYDtmY3smrANCivquYDsooXsmqkNCivquYDtmY3shK0NCivquYDsooXsiJgNCivquYDtg5zsnqwNCivquYDspIDshKANCivquYDtmY3siJgNCivquYDrtInsnbwNCivquYDsg4HrnpgNCivquYDsoJXsmKUNCivquYDtmY3siJgNCivquYDsp4TrgqgNCivquYDtg5zsiJkNCivquYDshozrnb0NCivquYDtmY3si50NCivquYDqtJHsi50NCivquYDtmqjsspwNCivquYDqt5zrtIkNCivquYDtmY3si50NCivquYDsg4HsmrANCivquYDsnqXtlZkNCivquYDsmKXshLENCivquYDtmY3sl7QNCivquYDrs5HshK0NCivquYDsmqnqtJENCivquYDsiJjtmLgNCivquYDtmY3sl7QNCivquYDsnbzshLENCivquYDsnZjrqqkNCivquYDqt7ztg5wNCivquYDtmY3sl70NCivquYDtlZnshKANCivquYDqsJHtg5wNCivquYDssqDqtowNCivquYDtmY3snbwNCivquYDsp4TsiJkNCivquYDsoJDsobANCivquYDssqDrs7UNCivquYDtmY3sobANCivquYDsnKDsnbQNCivquYDtjJDtmZgNCivquYDquIjtmZgNCivquYDtmY3spIANCivquYDrj4TsmrANCivquYDrjIDtmIQNCivquYDsmqntnawNCivquYDtmZTsg50NCivquYDso7zruYgNCivquYDrs5HsiJgNCivquYDshKDsnYANCivquYDtmZTsi50NCivquYDsspzspJENCivquYDstpjtmZgNCivquYDssL3smIENCivquYDtmZTsi50NCivquYDsooXsmKUNCivquYDsnqztnawNCivquYDsnbjsobANCivquYDtmZjshLENCivquYDsgrzssqANCivquYDsnbzrp5ANCivquYDsnbjsl7ANCivquYDtmZjsnbQNCivquYDrp4zsi50NCivquYDsg4HssqANCivquYDqsr3rr7gNCivquYDtmZjsnbQNCivquYDsnqzqsr0NCivquYDsnqzquLgNCivquYDrs7XsiJwNCivquYDtmZjssqANCivquYDrrLjquLANCivquYDtmITqsJENCivquYDrjIDqt5wNCivquYDtmZjtmLgNCivquYDtg5zsmIENCivquYDqtJHrtIkNCivquYDspp3qsr0NCivquYDtmanqt5wNCivquYDqsr3tlbQNCivquYDrjIDsiKANCivquYDsmIHsiJwNCivquYDtmqjrrLgNCivquYDsiJzqtJENCivquYDshKDrjZUNCivquYDsiKDslZQNCivquYDtmqjshKANCivquYDsiJztmIQNCivquYDrqoXrqqgNCivquYDrs5HquLANCivquYDtmqjshKANCivquYDtjJDrnoANCivquYDsmKTsg4ENCivquYDssL3sobANCivquYDtmqjsiJkNCivquYDspJHsm5ANCivquYDsobDsi50NCivquYDquLDspJENCivquYDtmqjsiJwNCivquYDqsbTtlZkNCivquYDtg5ztmqgNCivquYDsmYTtmqgNCivquYDtmqjsi50NCivquYDrp4zrj5kNCivquYDssL3tnawNCivquYDshLHqtIANCivquYDtmqjsm5ANCivquYDrkZDsiJgNCivquYDshLHspJENCivquYDsl7DsobANCivquYDtmqjsoJANCivquYDsgrzsmrANCivquYDso7ztg5wNCivquYDqt5zsmqkNCivquYDtmqjsp4QNCivquYDrtoDtmZgNCivquYDshLHsnKgNCivquYDsmIHtmLgNCivquYDtm4jqtZANCivquYDsg4HsiKANCivquYDshJ3snbQNCivquYDsnbjsi50NCivquYDtnaXsiJkNCivquYDrrLTrs7UNCivquYDsoJzquLANCivquYDsooXqtawNCivquYDtnawNCivquYDshJ0NCivquYDslZQNCivquYDsiJwNCivquYDtnazquLgNCivquYDspIDtmowNCivquYDslrjqs4QNCivquYDsmIHsiJgNCivquYDtnazrjZUNCivquYDsnqzsiJwNCivquYDsiJjtmZQNCivquYDsoJDsnbgNCivquYDtnazrj4QNCivquYDrs5Hqt5wNCivquYDtnazsl7QNCivquYDssqDsmqkNCivquYDtnazrj5kNCivquYDrrLjsmrENCivquYDshKDrtoQNCivquYDrj5nsnbQNCivquYDtnazshKANCivquYDsl7DsnKQNCivquYDtlontmLgNCivquYDsoJXrj5kNCivquYDtnazshLENCivquYDsmIHqsr0NCivquYDsmKXqsJENCivquYDrj5nqt5wNCivquYDtnazsiJgNCivquYDslpHsoIQNCivquYDtmITtnawNCivquYDtg5ztmIQNCivquYDtnazsiJgNCivquYDsnbzqt5wNCivquYDsiJjsiJgNCivquYDsnqzqt7wNCivquYDtnazsiJgNCivquYDrgpztmZgNCivquYDrjZXrjZUNCivquYDshKDsiJgNCivquYDtnazsiJgNCivquYDqsJHtmLgNCivquYDqt4DrjZUNCivquYDqt5zsnbgNCivquYDtnazsiJkNCivquYDsnbTqsr0NCivquYDqt5ztl4wNCivquYDtl4zsm5ANCivquYDtnazsiJwNCivquYDsiJnrj5kNCivquYDqtJHsl7ANCivquYDtmqjsiJgNCivquYDtnazsiJwNCivquYDsooXsiJwNCivquYDshKDrjZUNCivquYDrs5HssqANCivquYDtnazsoJUNCivquYDsmqnqsIENCivquYDrp4ztmLgNCivquYDsnZjtmLgNCivquYDtnazspIANCivquYDtmZTtnawNCivquYDtlZntlZwNCivquYDshLHsl7QNCivquYDtnazspIANCivquYDsoJXso7wNCivquYDrrLjsiJwNCivquYDsp4Ttm4gNCivquYDtnazspIANCivquYDsmqnstpwNCivquYDsmrTtmLgNCivquYDsp4Dtm4gNCivquYDtnazsp4QNCivquYDsoJXsiJkNCivquYDsirntg4ENCivquYDqsJHsg4ENCivquYDtnaztg5wNCivquYDsm4XtnawNCivquYDshJ3tmZgNCivquYDqs7Xqsr0NCivrgpjqsJHsl7ANCivrgpjquLDslrgNCivrgpjqsr3shJwNCivrgpjtmITqtZANCivrgpjqsbTsiJgNCivrgpjsoJXsnbQNCivrgpjtg5zsl7ANCivrgpjtg5zsiJgNCivrgpjqtJHsiJgNCivrgpjtlonsmIENCivrgpjssqDtmLgNCivrgpjshKDtg5wNCivrgpjqta3tg50NCivrgpjsmIHtmY0NCivrgpjrrLTshKANCivrgpjsgrztmIQNCivrgpjqt5zsi50NCivrgpjsi6Drp4wNCivrgpjso7zsmIENCivrgpjqsr3smIENCivrgpjqt5ztg50NCivrgpjtm4TsiJwNCivrgpjsmIHsiJgNCivrgpgg7JuQDQor64KY6rec7YOdDQor64KY7JiB7J21DQor64KY7LC97Jq0DQor64KY7KCV7JiBDQor64KY6rec7YOdDQor64KY6rK97JilDQor64KY6rec7IiYDQor64KY7ISx6rCRDQor64KY6riI7J6QDQor64KY66eM67aEDQor64KY7YOc7ZiEDQor64KY67OR6rWQDQor64KY6riI7J6QDQor64KY7JuQ7J20DQor64KY7YyQ7JiBDQor64KY6rec66qFDQor64KY6riw64KoDQor64KY7JiB6raMDQor64KY7J6s7ISdDQor64KY6riw7LGEDQor64KY6riw7KGwDQor64KY642V7IicDQor64KY7KCV7KO8DQor64KY7JiB7KeEDQor64KY64eM7ISxDQor64KY6riI66eJDQor64KY7Jyk7Zi4DQor64KY7ZiV6riwDQor64KY64yA7ZiEDQor64KY7J2Y7IiYDQor64KY7JuQ7IiZDQor64KY7Lap7JewDQor64KY642V7IucDQor64KY7ISx7JuFDQor64KY7JiB6rSADQor64KY7IiY7KCVDQor64KY64+Z7ISgDQor64KY7JiB64yADQor64KY7J6s66a9DQor64KY7Iig7YOcDQor64KY64+Z7JewDQor64KYIO2ZmA0KK+uCmOyEse2YhA0KK+uCmOuzkeuhnQ0KK+uCmOuPmey2mA0KK+uCmOu2gOyWuA0KK+uCmOyInOuvuA0KK+uCmOygleq1rA0KK+uCmOuPmey2mA0KK+uCmOyEseyasA0KK+uCmOyYgey2nA0KK+uCmO2YuOqyvQ0KK+uCmOuqheyyoA0KK+uCmOyImOyEoA0KK+uCmOyImOu0iQ0KK+uCmO2VmeybhQ0KK+uCmOuqheyyoA0KK+uCmOygle2DnA0KK+uCmOuTneyImQ0KK+uCmOyInOyngA0KK+uCmOustOyXtA0KK+uCmOuylOyIoA0KK+uCmO2VtOqyvQ0KK+uCmOqyveq4sA0KK+uCmOustOyXtA0KK+uCmOyduOyEoA0KK+uCmO2VtOydtQ0KK+uCmOyInOyLnQ0KK+uCmOuzke2DnQ0KK+uCmOyKue2drA0KK+uCmOuzkeuwsA0KK+uCmOyDge2ctA0KK+uCmOuzke2DnQ0KK+uCmOywqOqxtA0KK+uCmOu0ieq3vA0KK+uCmOq4iO2ZjQ0KK+uCmOyEseyImA0KK+uCmOuPmeyEnQ0KK+uCmOynhOyekA0KK+uCmOuNley2nA0KK+uCmOyEse2DnQ0KK+uCmOq0keyekA0KK+uCmOyYgeybkA0KK+uCmOuzke2DnA0KK+uCmOyEse2DnQ0KK+uCmOuCqOyEnQ0KK+uCmOygleyImA0KK+uCmOyCrOuNlQ0KK+uCmOyInOyEuA0KK+uCmOyYgeyIoA0KK+uCmO2drOyLnQ0KK+uCmOyYge2YuA0KK+uCmOyInOyXsA0KK+uCmOyEse2doA0KK+uCmOygleyYpA0KK+uCmO2XjOyLnQ0KK+uCmOyMjeyEoA0KK+uCmOq3gOydvA0KK+uCmOyduOyasA0KK+uCmOygle2YhA0KK+uCmOyWkeq3oA0KK+uCmOydvOuqqA0KK+uCmOyyoOyDnQ0KK+uCmOq4sOyaqQ0KK+uCmOyWteq4sA0KK+uCmOyImOyynA0KK+uCmO2XjOyasQ0KK+uCmOyYgeyerA0KK+uCmOyYgeuylA0KK+uCmOyInOq3vA0KK+uCmOyduOykgA0KK+uCmOu0ieyngA0KK+uCmOyYgeyCvA0KK+uCmOyImOyYgQ0KK+uCmOyerOyImA0KK+uCmOygle2ZmA0KK+uCmOyYgeyCvA0KK+uCmO2Zje2drA0KK+uCmOyehOyYgQ0KK+uCmOyiheuqhQ0KK+uCmOyYgeyLnQ0KK+uCmOuLrOyEnQ0KK+uCmOuzkeyEoA0KK+uCmO2DnOyglQ0KK+uCmOyYgeyZhA0KK+uCmOynhOyImA0KK+uCmO2ZjeyImQ0KK+uCmO2YhOyImA0KK+uCmOyYgeybkA0KK+uCmOyZuOyXtA0KK+uCmOyYpeyImA0KK+uCmOy2qeyImA0KK+uCmOyYgeyekA0KK+uCmOyYge2biA0KK+uCmO2Vmeq3nA0KK+uCmOuvuOynhA0KK+uCmOyYgeyjvA0KK+uCmOq3vO2MkA0KK+uCmOydvOyImQ0KK+uCmOq3nOyasA0KK+uCmOyYgeynhA0KK+uCmOyDgeyEnQ0KK+uCmO2YleyaqQ0KK+uCmOyiheyaqQ0KK+uCmOyYge2YuA0KK+uCmOy2mO2YuA0KK+uCmOqyve2YhA0KK+uCmO2DnOyXtA0KK+uCmOyYge2drA0KK+uCmOyyoOuCqA0KK+uCmOuzkeyImA0KK+uCmOyCrOuvuA0KK+uCmOyYge2drA0KK+uCmOq0keyImA0KK+uCmOyiheyYgQ0KK+uCmOyMjeybkA0KK+uCmOyaqeyXvQ0KK+uCmOyImO2YuA0KK+uCmOyaqeyekA0KK+uCmOygle2YuA0KK+uCmOyasOuNlQ0KK+uCmOyInOyLnQ0KK+uCmOy5oO2drA0KK+uCmOq1reyLnQ0KK+uCmOyasOyXsA0KK+uCmOyEseyhsA0KK+uCmOuPmeyEnQ0KK+uCmOqyveyXsA0KK+uCmOybkOyLnQ0KK+uCmOyEseykgA0KK+uCmOynhO2YhA0KK+uCmOyiheyImQ0KK+uCmOyblOu0iQ0KK+uCmOyatOynkQ0KK+uCmOuPmeuPhA0KK+uCmOyYpeyVoA0KK+uCmOyblOyDnQ0KK+uCmOyaqe2YuA0KK+uCmOyEseq4sA0KK+uCmOunkO2VnA0KK+uCmOydte2RnA0KK+uCmOyInOyIoA0KK+uCmOq0ke2ZjQ0KK+uCmOuvvOuCqA0KK+uCmOyerOq4sA0KK+uCmOyerOybhQ0KK+uCmOqzhO2drA0KK+uCmOyerOyImA0KK+uCmOyerOyLnQ0KK+uCmOunjOyEnQ0KK+uCmOyEseyImA0KK+uCmOqyveuCqA0KK+uCmOygleq4iA0KK+uCmOy5mOuylA0KK+uCmOuylOyglQ0KK+uCmOuzkeyasA0KK+uCmOygleydmA0KK+uCmOuqhe2YuA0KK+uCmOyYgeuhnA0KK+uCmOycpOuCqA0KK+uCmOygle2DnA0KK+uCmOyerOqyvQ0KK+uCmO2VnOykgA0KK+uCmOyYgeyImA0KK+uCmOygle2drA0KK+uCmOuqheyEnQ0KK+uCmOyatOq4sA0KK+uCmOuqheyXsA0KK+uCmOyiheqzpA0KK+uCmOyerOynhA0KK+uCmOyEoOuCqA0KK+uCmOyiheyImA0KK+uCmOyiheusuA0KK+uCmOuzkeuPhA0KK+uCmOygkOyaqQ0KK+uCmOustOyhsA0KK+uCmOyiheyXtA0KK+uCmOygleyehA0KK+uCmOyCvOugqA0KK+uCmOydgOyYgQ0KK+uCmOyihe2DnA0KK+uCmOyEseyXtA0KK+uCmOyInO2ZmA0KK+uCmOy2mOuPhA0KK+uCmOyihe2DnQ0KK+uCmOuPmeu2gA0KK+uCmO2PieyYpQ0KK+uCmOyiheyLoA0KK+uCmOyihe2VnA0KK+uCmOyerO2ZlA0KK+uCmOyduOycqA0KK+uCmOygleyjvA0KK+uCmOyjvO2DnQ0KK+uCmOq4uOyaqQ0KK+uCmOyjvOycpA0KK+uCmO2DnOyLnQ0KK+uCmOyngOyXsA0KK+uCmOu0ieyLnQ0KK+uCmOyYge2ZmA0KK+uCmOuwqeyInA0KK+uCmOynhOq0gA0KK+uCmO2YhOuLrA0KK+uCmO2MkOyhsA0KK+uCmOynhO2RnA0KK+uCmOynhOq0gA0KK+uCmOygleunjA0KK+uCmOyYgeyImQ0KK+uCmOqxtOyImA0KK+uCmOynhOq4uA0KK+uCmOuzkeuvuA0KK+uCmOqwkeyYpA0KK+uCmOyaqe2WpQ0KK+uCmOynhOuPhA0KK+uCmOu0ieyatA0KK+uCmOyYge2DnQ0KK+uCmOygleyatA0KK+uCmOynhOuPhA0KK+uCmOuvvOyekA0KK+uCmOqwkeyImQ0KK+uCmO2MkOyekA0KK+uCmOynhOudvQ0KK+uCmOyEoO2YhA0KK+uCmOywrOyyoA0KK+uCmOq3vOyXsA0KK+uCmOynhOyDgQ0KK+uCmOuCqOyekA0KK+uCmOyViO2YhA0KK+uCmOyynOykgA0KK+uCmOynhOyYpA0KK+uCmO2drOyyoA0KK+uCmOyYpeyEsQ0KK+uCmOybkOuPjA0KK+uCmOynhOycoA0KK+uCmOybkO2drA0KK+uCmOyImOuMgA0KK+uCmOyKueyYpA0KK+uCmOynhO2VnA0KK+uCmOyDgeynhA0KK+uCmO2VnOuhnQ0KK+uCmOycpOyLnQ0KK+uCmOynhO2VtA0KK+uCmOygkOyekA0KK+uCmOqyveuMgA0KK+uCmOyaqeqwlQ0KK+uCmOynhO2drA0KK+uCmOykkeyImA0KK+uCmOyImOyLnQ0KK+uCmOq2jOq1kA0KK+uCmOyxhOq0gA0KK+uCmOqwiOybkA0KK+uCmOygleyYpA0KK+uCmOqyve2YuA0KK+uCmOyxhOq2jA0KK+uCmO2DnOuPmQ0KK+uCmOyEne2DnA0KK+uCmOyihe2YuA0KK+uCmOyxhOyEsQ0KK+uCmO2aqOqyvQ0KK+uCmOygleq0gA0KK+uCmOyGjOyYgQ0KK+uCmOyxhOyLnQ0KK+uCmOyYgeq4uA0KK+uCmOyiheyhsA0KK+uCmOq3vOyLnQ0KK+uCmOyxhO2WpQ0KK+uCmOyihe2DnA0KK+uCmOuMgOyLrA0KK+uCmO2DnOyyoA0KK+uCmOy2mO2DnQ0KK+uCmO2DnOyYpQ0KK+uCmOyerOyaqQ0KK+uCmOydtOyngA0KK+uCmO2DnOyehA0KK+uCmOuqhe2WpQ0KK+uCmOy2qeycpA0KK+uCmOyerOq3vA0KK+uCmO2VtOyaqQ0KK+uCmOyijOyInA0KK+uCmOyYge2YhA0KK+uCmO2DnO2YuA0KK+uCmO2VtOyaqQ0KK+uCmOyatOustA0KK+uCmOuzkeyyoA0KK+uCmOyerOyEoA0KK+uCmO2YuOyXsA0KK+uCmOuqheywrA0KK+uCmO2ZjeyekA0KK+uCmOyaqe2biA0KK+uCmO2drOyXtA0KK+uCmO2ZmOyErQ0KK+uCmOycpOyaqQ0KK+uCmOyaqeyekA0KK+uCmO2drOyglQ0KK+uCmOydvOyLnQ0KK+uCmOyKue2YuA0KK+uCmOybkOuPmQ0KK+uCqCDtm4gNCivrgqjtg5ztl4wNCivrgqjrtIntmLgNCivrgqjrjIDtlbQNCivrgqjqsJzqs6QNCivrgqjshLHsiKANCivrgqjtnaztnawNCivrgqjspJHquLANCivrgqjqtoHsoJUNCivrgqjtjJDsi50NCivrgqjsg4HsiJkNCivrgqjqt5zrsLANCivrgqjqt5zrqoUNCivrgqjsm5DshKANCivrgqjsiJzrr7gNCivrgqjsnqzri6wNCivrgqjqt5zsp4QNCivrgqjshLHsm4UNCivrgqjsmqntmLgNCivrgqjrgpntj6wNCivrgqjquLDsiKANCivrgqjsmIHtmJUNCivrgqjrjIDqtIANCivrgqjrqoXsiJgNCivrgqjquLDsoJUNCivrgqjquLDtmLgNCivrgqjsoJDsp4ENCivrgqjsm5DsiJkNCivrgqjquLDtmY0NCivrgqjshLHquLANCivrgqjshLHqt5wNCivrgqjqt7zsl7QNCivrgqjrjZXsiJgNCivrgqjsnqzrs7UNCivrgqjslYjslaANCivrgqjsg4HquLgNCivrgqjrrLjtnawNCivrgqjrsLDtmLgNCivrgqjrp5DslZQNCivrgqjsnbzsi50NCivrgqjrs5HrkZANCivrgqjssL3tg5wNCivrgqjshKDtg5wNCivrgqjsmrTrs7QNCivrgqjrs5HstpgNCivrgqjrjIDqtawNCivrgqjqsr3quLANCivrgqjquIjsmIENCivrgqjsg4HsiJgNCivrgqjshJ3rtIkNCivrgqjssqDquLANCivrgqjsp4Tqs6QNCivrgqjsg4HsiKANCivrgqjsnYDrgqgNCivrgqjqtJHsi50NCivrgqjsnKTqs6QNCivrgqjsg4Hsl7wNCivrgqjsgrztm4gNCivrgqjrtIntg5wNCivrgqjsnKTtg5wNCivrgqjsg4HsnbgNCivrgqjtnazqtIANCivrgqjqtJHtmIQNCivrgqjsmIHtl4wNCivrgqjsg4Htm4gNCivrgqjsmIHsiJgNCivrgqjtjJDtmIQNCivrgqjrjIDshK0NCivrgqjshJ3tmIQNCivrgqjqsbTquLANCivrgqjsooXssL0NCivrgqjrqoXtg5wNCivrgqjshLHsmrANCivrgqjsg4HqtJENCivrgqgg7IiYDQor64Ko7IOB7Zi4DQor64Ko7IiY7JqpDQor64Ko7ZmN67SJDQor64Ko6reA7IudDQor64Ko7ZiE6rOkDQor64Ko7Iic7JqwDQor64Ko7JiB66y0DQor64Ko7JiB7J6sDQor64Ko7YOc7KSADQor64Ko7JiB7JqwDQor64Ko7YyQ6re8DQor64Ko7J6s6rWQDQor64Ko7Jqp6re8DQor64Ko7JiB7ZiEDQor64Ko7IOB7ISgDQor64Ko7LC964+EDQor64Ko7KCV66y4DQor64Ko7JiB7ZiEDQor64Ko7ZWY7Zi4DQor64Ko66qF7LmYDQor64Ko7J2E6re8DQor64Ko7Jik7KGwDQor64Ko7IOB7ZiEDQor64Ko7JiB6rWtDQor64Ko67OR7YOdDQor64Ko7Jil7Z2sDQor64Ko7KKF7ZmUDQor64Ko7J6s7ZiEDQor64Ko7KCV7JewDQor64Ko7Jqp642VDQor64Ko7JiB7JWUDQor64Ko66y47YOdDQor64Ko7JiB7Z2sDQor64Ko7JuQ642VDQor64Ko7KKF6riwDQor64Ko64+Z7J6QDQor64Ko7YOc7IicDQor64Ko7JuQ7Z2sDQor64Ko67SJ7LKgDQor64Ko64us7ZWtDQor64Ko6rOE64+ZDQor64Ko7Jyk7IiZDQor64Ko7J6E6rWQDQor64Ko7KKF7IiYDQor64Ko6re86riwDQor64Ko7Jyk7KGwDQor64Ko7Jqp7Z2sDQor64Ko7JuQ7LKcDQor64Ko7J207IiYDQor64Ko7J2A7KCVDQor64Ko66+864yADQor64Ko67aE7ZmYDQor64Ko7ZiE7ZmUDQor64Ko7J2E7IicDQor64Ko7KKF7JiBDQor64Ko6rCA7ISgDQor64Ko7IOB6rWsDQor64Ko7J207IudDQor64Ko7LC97YOcDQor64Ko7LCs7IiYDQor64Ko67KU7KeEDQor64Ko7J207IudDQor64Ko6rWt7Z2gDQor64Ko6rWs7LacDQor64Ko7Iic7IusDQor64Ko7J207KeBDQor64Ko7KCV7KeEDQor64Ko6rSR6rK9DQor64Ko7LC97JikDQor64Ko7J247IudDQor64Ko7IK87ZuIDQor64Ko7J6l6rWtDQor64Ko7YOc7IudDQor64Ko7J6s66eMDQor64Ko7IOB7J20DQor64Ko7KKF642VDQor64Ko6rSR7IiYDQor64Ko7J6s67SJDQor64Ko66y07JqwDQor64Ko7IK866eMDQor64Ko7ZaJ6riwDQor64Ko7J6s7JqwDQor64Ko66qF7Je0DQor64Ko7JiB7IStDQor64Ko64Ko7IudDQor64Ko7J6s7JqwDQor64Ko7Iic7ZeMDQor64Ko7KSA6rOkDQor64Ko7KCV7IiYDQor64Ko7KCV7Zi4DQor64Ko7Zi47KeEDQor64Ko7J247J6QDQor64Ko7IOB66eMDQor64Ko7KCV7Zi4DQor64Ko7J6s7KCVDQor64Ko7IOB7JqxDQor64Ko7KCV7KGwDQor64Ko7LC96riwDQor64Ko7ZmU7Je0DQor64Ko7Jil67SJDQor64Ko7JiB7JilDQor64Ko7LKg7JqwDQor64Ko7KO87IudDQor64Ko7KKF7Zi4DQor64Ko64+Z7JWUDQor64Ko7LaY7ZmUDQor64Ko67OR67aADQor64Ko7Lmg7Zi4DQor64Ko7Z2l7IudDQor64Ko7Lmg7KGwDQor64Ko7YOc64+ZDQor64Ko67OR7JqwDQor64Ko7ISg6raMDQor64Ko7YOc7KKFDQor64Ko7Zi47ISdDQor64Ko7Zic7ISxDQor64Ko7J6s7ZW0DQor64Ko7YyQ7KSADQor64Ko7J6s7ZiEDQor64Ko7JuQ6rWtDQor64Ko7JiB7IudDQor64Ko7ZWY7JqwDQor64Ko7KeE7J20DQor64Ko7IOB7IicDQor64Ko7KSR7ZmUDQor64Ko7ZiE7J28DQor64Ko64+E7ZmNDQor64Ko7IiY7ZmUDQor64Ko7Iic7IiYDQor64Ko7ZiE7J28DQor64Ko7J2Y7IicDQor64Ko7Z2s6recDQor64Ko6ri46recDQor64W46rCR7IiYDQor64W46rWw6raMDQor64W46rec7IS4DQor64W47ISx7JWEDQor64W46rK964+EDQor64W46rK97ISdDQor64W47YOc7ZeMDQor64W47J287J6QDQor64W46rSR642VDQor64W464yA7JykDQor64W47Jqp7J6QDQor64W47IK87KKFDQor64W46rSR7JuFDQor64W46rCV7Ja4DQor64W47Iq564+ZDQor64W46rK96re8DQor64W46re87Je0DQor64W47ZeM7Zi4DQor64W466y06recDQor64W467OR7IicDQor64W46riw6re8DQor64W47Zal7LacDQor64W47IK866+4DQor64W47KSR7KeEDQor64W46riw66GdDQor64W47KSA7YOcDQor64W47Jm46recDQor64W47KKF7ZmYDQor64W46riw7IiYDQor64W47Z2s7Z2sDQor64W464+Z7IStDQor64W47Jil7ISdDQor64W46riw7LC9DQor64W47ISd7IicDQor64W47ISx7ZuEDQor64W47IiY7IiYDQor64W46riw7ZiEDQor64W47KSA7IiYDQor64W464+E7ISdDQor64W47J6l7ZmYDQor64W464yA6rOkDQor64W467OR7ISgDQor64W47KSR7JqxDQor64W47ZWc7KCVDQor64W464+Z64KoDQor64W47LC97IOBDQor64W47J6s7IOdDQor64W47L6M7IiZDQor64W464+Z642VDQor64W47LC97JWUDQor64W46rK967aEDQor64W47ZmN7YOdDQor64W464+Z7IiYDQor64W47YOc7IudDQor64W47Jil7Je0DQor64W47LKg6recDQor64W464+Z7KGwDQor64W46rK47KGwDQor64W47Jqw66GdDQor64W46re87J6QDQor64W464+Z7KGwDQor64W47KSR7Zi4DQor64W47J2Y7ZWcDQor64W47JiB7ZmUDQor64W466qF67aEDQor64W47IiY7IudDQor64W47KCV7ZmYDQor64W47KCV6rKsDQor64W466qF7JWUDQor64W47Iq57IigDQor64W47JiB7KCQDQor64W46rK97YOBDQor64W466y07IiYDQor64W47LaY7IudDQor64W47KKF7KCVDQor64W47KCV7IicDQor64W466y07KKFDQor64W47Jyk64+MDQor64W47KCV7KeEDQor64W47J6s66eMDQor64W467Cp7IudDQor64W47IOB6rCRDQor64W47JiB7Je0DQor64W47J2E7YOdDQor64W467OR7JqwDQor64W47ZeM64+EDQor64W47KeE7YOcDQor64W47LKg7ZiEDQor64W467O17LKcDQor64W47Jyk7JuQDQor64W466qF7Zi4DQor64W47LCo7IicDQor64W467SJ7Je0DQor64W47KO866WgDQor64W47JiB66y4DQor64W47Jqp67ORDQor64W467aE7KGwDQor64W47KSR6recDQor64W47Z2s7LKcDQor64W464+Z7IiYDQor64W47IKs7Zi4DQor64W47KKF6rK9DQor64W47J287JesDQor64W47ZiE7IiYDQor64W47IK87IiYDQor64W47J287J20DQor64W47Jqw7IiYDQor64W47J247IicDQor64W47IOB7IiYDQor64W47KSR66a8DQor64W47J2A7IiYDQor64W47Iic642VDQor64W47IOB7Je0DQor64W47KeE67SJDQor64W47IOB6rWsDQor64W47LaY7KeEDQor64W47IOB7YOcDQor64W47LaY7Zi4DQor64W466+87ZmUDQor64W47KeE7IiYDQor64W47IOB7ZWEDQor64W467OR7JqwDQor64W47JiB6rWQDQor64W47KCV6rWwDQor64W47IOB7ZmUDQor64W47YOc66eMDQor64W47ZWc64yADQor64W47J6s7IudDQor64W47ISd7IiYDQor64W47YOc7YOcDQor64W47ISx7ZmYDQor64W467OR66y4DQor64W47ISd7IudDQor64W47ZWc6rCRDQor64W47KKF7Z2sDQor64W47ZWc7Zi4DQor64W47ISd7IudDQor64W467OR7IiZDQor64W47ISx7IOBDQor64W465GQ7IiYDQor64W47ISd7Je0DQor64W47JiB7J6QDQor64W464eM7LC9DQor64W47IiY7LKgDQor64W47ISd7Zi4DQor64W466eQ6riwDQor64W46raM64+EDQor64W46rK97ZiBDQor64W47ISx64yADQor64W46ri47ZiEDQor64W47Jqp64+EDQor64W464us6riwDQor64W47ISx642VDQor64W47LKg6rWtDQor64W467SJ7ZWcDQor64W47ZmN7ZmYDQor64W47ISx66GADQor64W464+Z7ZmYDQor64W47JiB7ISxDQor64W47IOB7J6QDQor64W47ISx7IudDQor64W47YOc7IiZDQor64W47KeE7JmEDQor64W467OR7LacDQor64W47ISx7Je0DQor64W47JiB6riwDQor64W47IOB7Z2sDQor64W467OR7ZiEDQor64W47ISx7ZmYDQor64W466y07IicDQor64W467OR7Zi4DQor64W47KCc6riwDQor64W47IiY7ZWcDQor64W47IOB6riwDQor64W47KCV7ISgDQor64W47Jew7ZiEDQor64W47Iic64KoDQor64W47JiB7ISdDQor64W47KCV7KGwDQor64W465GQ7JuQDQor64W47Iic7KGwDQor64W46rK97KeEDQor64W47Jqp7IudDQor64W47Iq57IiZDQor64W47Iic7ZWZDQor64W47ZWc7ISxDQor64W47JiB6rOkDQor64W47IOB7Je0DQor64W47Iic7ZW0DQor64W47Iic7ZmUDQor64W47LC966y4DQor64W47LC97ZiEDQor64W47JiB7IiYDQor64W47KeE7KGwDQor64W467OR64+ZDQor64W47IiY7ISxDQor64W47JiB7IiZDQor64W47IiY7KKFDQor64W47KO87JWgDQor64W47Lmg7JewDQor64W47JmE6rWsDQor64W47KKF7LacDQor64W47KSA7IiYDQor64W47YOc7LKgDQor64W47JmE7IudDQor64W47KKF6riwDQor64W47Jik7ZmYDQor64W47KCV7ISdDQor64W47Jqp6recDQor64W464+E7Zi4DQor64W47ISx6rCRDQor64W47J287KCcDQor64W47Jqp66y4DQor64W466qF64KcDQor64W46rK97IOBDQor64W47Iic7IudDQor64W47Jqp67KUDQor64W47YOc7JqwDQor64W47IiY6rWQDQor64W467OR6regDQor64W47Jqp7IudDQor64W47Jik7IiZDQor64W47ZWc67aEDQor64W47IOB7ZmNDQor64W47Jqp7J6QDQor64W47Iuc7LaYDQor64W46rK96rSADQor64W467aA7ZiVDQor64W47Jq064+ZDQor64W47LCo6rWtDQor64W47ISx7ZmUDQor64W47KKF7Je0DQor64W47JuU7ISgDQor64W47IOB7JilDQor64W47IKs7IudDQor64W47YyQ7JqwDQor64W47Jyk6recDQor64W466y07Jq0DQor64W4642V7YOcDQor64W47KCQ67O1DQor64W47Jyk6riIDQor64W47Jik6rWQDQor64W466qF7ISdDQor64W47KCV6riIDQor64W47J2A7IStDQor64W46rK96ri4DQor64W47IOB6rSADQor64W46rSR7J6QDQor64W47J2A7Z2sDQor64W466qF7IiZDQor64W466qF7ISdDQor64W466eM7IiYDQor64W47J2E7JewDQor64W47ZiE7IiYDQor64W464yA7JqpDQor64W467OR7IugDQor64W47J247IOBDQor64W47Jqx7IudDQor64W46rSR7ZmUDQor64W466qF7JewDQor64W47J247Zi4DQor64W47JuQ7Zi4DQor64W47J6s7KeEDQor64W47JiB7JqwDQor64W47J6l7IiYDQor64W47JiB7KO8DQor64W466qF6rK9DQor64W47KKF7Zy0DQor64W47J6l7JikDQor64W47LaY67SJDQor64W47Jqw7JilDQor64W464yA7JuFDQor64W47J6s7JewDQor64W47Jqp7LacDQor64W467OR7YOBDQor64W47IOB7IOBDQor64W47J6s7JykDQor64W47J2167aADQor64W47Jyk7Zy0DQor64W464us7ZiEDQor64W47J6s7LC9DQor64W466eM7IiZDQor64W47KCV66eMDQor64W47Lmg6ri4DQor64W47J6s7ZmYDQor64W47KKF7LKgDQor64W47YOc7Z2sDQor64W47YyQ7KeEDQor64W47J6s7ZmYDQor64W46rec7IicDQor64W47JiB7Z2sDQor64W464us7Zi4DQor64W47KCV7J21DQor64W47ZW066eMDQor64W47ISx7IudDQor64W47LaY7IiZDQor64W47KCV7ZmYDQor64W47JiB6re8DQor64W466eM6rOkDQor64W47Jqp7IigDQor64W47KKF6raMDQor64W47Jqp6regDQor64W47J287JilDQor64W466eM64+EDQor64W47KKF7Jq0DQor64W47IOB7J20DQor64W46re8642VDQor64W464+Z6riwDQor64W47KKF7ZiEDQor64W47LKc7IiYDQor64W47J287IicDQor64W47Iuc7Je0DQor64W47KSA7ZiEDQor64W46rK97JqpDQor64W47ISx6re8DQor64W47ZWc7JqwDQor64W47KSA7ZiEDQor64W46rSR7ZiEDQor64W467SJ7J20DQor64W47KCV7ZmUDQor64W47KeE7IudDQor64W47ZWc7ISdDQor64W46re87IudDQor64W47KeE66CsDQor64W47LC96529DQor64W46rCV64KoDQor64W47JuQ7J20DQor64W47ISg7IicDQor64W47LC97ISdDQor64W47ZiE7J28DQor64W47LKg6raMDQor64W467aE7ZWYDQor64W47LC97Zi4DQor64W47Ja17ZWZDQor64W466y07LKgDQor64W47ZWE7ZiEDQor64W47LC97ZmUDQor64W47KCV7YOcDQor64W467OR6rOkDQor64W47Jqp7JqwDQor64W47LKg6recDQor64W46ri47YOcDQor64W47Zi47LKgDQor64W47JiB66eMDQor64W47LaY6ri4DQor64W466qF7JewDQor64W46rK97Z2sDQor64W47KCV7IicDQor64W47Lmg6recDQor64W47KCV7LmYDQor64W47KCV7ISdDQor64W464yA7JqxDQor64W47YOc6ri4DQor64W47ZmN6rSADQor64W47YOc6re5DQor64W466y07J6QDQor64W47YOc7IigDQor64W47KeE7ISgDQor64W47J6s7J6QDQor64W47IOB7J20DQor64W47YOc7JuQDQor64W47YOc67SJDQor64W47IS466eMDQor64W47Jqp7LKgDQor64W47YOd67SJDQor64W47Jqp7ZmUDQor64W47LaY7Z2sDQor64W4642V7ZmYDQor64W47YyQ6recDQor64W464W47LKgDQor64W47JiB7ISdDQor64W47Iic7Zi4DQor64W47ZWE7KO8DQor64W466qF7JuQDQor64W46riw7ISgDQor64W47J6s7JuQDQor64W47ZWc6recDQor64W47JiB7Je0DQor64W466+46raMDQor64W466y47ISxDQor64W47ZiE67CwDQor64W47KKF7IicDQor64W47IOB6recDQor64W47ZWc7ZmUDQor64W47ZiE7KCVDQor64W465GQ7IOBDQor64W47IK87J21DQor64W47Zi467SJDQor64W47Zic6rK9DQor64W47KeI6recDQor64W46rSR7IStDQor64W47J6s7JqpDQor64W47ZqM7KSADQor64W47KCV7IiYDQor64W47Zi47KSRDQor64W465GQ7J28DQor64W47Zqo64+ZDQor64W46rK97IaMDQor64W47ISx7ISxDQor64W47LCo7ISdDQor64W47ZuE65OdDQor64W47J2E67CwDQor64W47J6s6rOEDQor64W466eM7JewDQor64W47Z2s7IiYDQor64W47JiB7JuFDQor64W47ISx6recDQor64W47IOB66eMDQor64W47Z2s7Je0DQor64W47YOc7KGwDQor64W47YOc7YOcDQor64W47J6s7Zi4DQor64W47Z2s7LCsDQor64W47Jyk7JqxDQor64W464W47Zi4DQor64W47IOB7Je0DQor64+E6rec7YOBDQor64+E7J6E7JqpDQor64+E6rSR7IiYDQor64+E7Zi46riwDQor64+E64+Z7Iq5DQor64+E7Jyk7ISxDQor64+E7KCV7KCEDQor64+E7KO87YOcDQor64+E65GQ7YOBDQor64+E7IaM7ZmNDQor64+E67OR6rG0DQor64+E7KO87ISdDQor64+E66y47ZmYDQor64+E66y47JewDQor64+E7LKg7JqpDQor64+E7YyU6rCRDQor64+E67OR6riwDQor64+E7Jyo7J21DQor64+E7JiB7IiYDQor64+E7Iic7J24DQor64+E7IOB6riwDQor64+E7Zi47IOdDQor64+E7YOc6rCRDQor64+E6rec7ZmYDQor64+E7IOB7LKgDQor64+E67OR7ZmYDQor64+E7ISx7JqwDQor64+E67OR7JqpDQor64+E7IOB7Zi4DQor64+E7J6s7IudDQor64+E7LCs7J6QDQor64+E7KCB7J6sDQor64+E7IiY7JiBDQor64+E7IaM7JiBDQor64+E7ZeM7IudDQor64+E7ZWZ7IudDQor64+E7IiY7JiBDQor64+E7Jqp67O0DQor64+E7J6s7KCVDQor64+E7ZmN7IiYDQor64+E7Iug7JqwDQor64+E6riw6re8DQor64+E7ZW07JqpDQor64+E7KCV6re8DQor64+E7JiB7LKgDQor64+E67aE6re8DQor64+E7ZiE7LC9DQor64+E7ZW07IOdDQor64+E7JiB7Z2sDQor64+E66y47J20DQor64+E642V7JqwDQor64+E6riw66eMDQor64+E7Jil7Z2sDQor64+E6rO166a8DQor64+E7J2467aEDQor64+E7ZW07IiYDQor64+E7JuQ7IiYDQor64+E7Jqp7IicDQor64+E7IK87LKgDQor64+E7JiB7ISgDQor64+E7J6E7IigDQor64+E7Iic7IicDQor64+E6rWt7IicDQor64+E7LCo7Zi4DQor64+E7J6s64+ZDQor64+E7JiB7J6QDQor64+E6rSR7IiZDQor64+E7IOB7JuQDQor64+E7J6s64+ZDQor64+E7Jyk6rG0DQor64+E7ISd7ISdDQor64+E7Iq566eMDQor64+E7J6s7JqxDQor64+E7Iic7LCsDQor64+E66qF6rWsDQor64+E7LCo642VDQor64+E7KCV66eMDQor64+E7LC97Zi4DQor64+E7IOB6riwDQor64+E7J287JqwDQor64+E7KCV67SJDQor64+E7YyQ6ri4DQor64+E7Jil66GcDQor64+E7LKg7Z2sDQor64+E7KCV7YOBDQor64+E6rK96recDQor64+E7J6s7IudDQor64+E7LKg7IS4DQor64+E7KCc7ZiEDQor64+E642V7IiYDQor64+E7L6M7ISgDQor64+E6riw7YOcDQor64+E7KKF7ZmYDQor64+E7YOc6re8DQor64+E7KKF66GdDQor64+E7J247ISgDQor64+E7KSA7YOBDQor64+E7JiB66qoDQor64+E6rCc7ZmUDQor64+E67OR7IudDQor64+E7Kad7KGwDQor64+E6rCR6rSADQor64+E7JiB7IicDQor64+E7YOc7IiYDQor64+E7LC966GdDQor64+E67OR7ZmYDQor64+E67OR67O1DQor64+E7LC97ISxDQor64+E7LC97IiYDQor64+E7YOc7Z2sDQor64+E66y47KeEDQor64+E7KO87KCcDQor64+E7YyU66eMDQor64+E7Zqo7JqpDQor64+E7ISg7IiYDQor64+E7ZiE7KCVDQor64+E7ZWY7ISdDQor64+E7ZmU6rWQDQor64+E7KCV7KGwDQor64+E66eM7JaRDQor64+E7ZiE7ISdDQor64+E7Jew7JWUDQor64+E6rWw7IudDQor64+E7YOc7LaYDQor64+E7ZiE7JiBDQor64+E7ZWc7IOBDQor64+E66eM7ISxDQor64+E64+Z7KO8DQor64+E7Zi46ri4DQor64+E7J247ZiEDQor64+E6rec7LaYDQor64+E7Zqo7Z2sDQor64+E7ZmU7ISdDQor64+E64yA7ISdDQor64+E7KeE7ISdDQor64+E64W466qpDQor64+E7ZqM7Jq0DQor64+E6rK964+ZDQor64+E64+Z7IK8DQor64+E7YOc7IudDQor65286rec7ZiBDQor65286riw67SJDQor65287IiZ6riwDQor65287J6s64+MDQor652867OR7Zi4DQor65287J287JqpDQor65287J6s7KCVDQor65286rWQ7KGwDQor652867O07JuQDQor65286riw6rK9DQor652867OR6re8DQor65287LCo7ZiEDQor65287ISd66y4DQor65287KKF66qpDQor65287Lap6riwDQor65287Jqp66+4DQor65287IS466eMDQor652864us7KO8DQor65287IaM7ZmYDQor65287JmE7Zi4DQor65287Jew64u5DQor65287Iq56riwDQor65287YOc7JuQDQor65287Jyk7IiYDQor65287JiB64W4DQor652866qF6rOEDQor65287KKF6rSADQor65286rec7JiBDQor65287JiB64+EDQor65287Z2s7ISxDQor652867OR7J21DQor65287JuQ64+MDQor65287JiB7KSADQor652866+4656YDQor65287JiB7J6EDQor65287IK87JiBDQor65287JqU7ZWcDQor65287Z2s7IicDQor652866eM7JewDQor65287KO864u0DQor65287Jqw6rOkDQor65287J286regDQor652865GQ7YOcDQor65287Z2s64+MDQor65287J247IiYDQor65287IS47IStDQor65287YOc7KGwDQor652864yA7IudDQor65287J6l7IiYDQor65287ZW064+EDQor65287JiB66+8DQor65287IiY66OhDQor65287KKF7LKgDQor65287Z2s7ZmNDQor65287Iic7IiYDQor65287KO86rG0DQor65287KO87YOdDQor652867SJ6riwDQor652864+E7KeEDQor65287KCV7ISxDQor65287KeE6rCVDQor65287Jew7ISdDQor65287Iic7IicDQor652867OR7IiZDQor65287KeE7IudDQor65287IOB7ZmYDQor65287J6s7IiZDQor65287JuQ6ri4DQor65287KeE7ZWcDQor65286rec7IOBDQor65287JiB7IudDQor65287Iq57Jq0DQor65287LmY7Jq0DQor65286rK96riwDQor65287Jqp7IiYDQor65287KCV7KeEDQor65287YOd7JewDQor65287IOB7ISdDQor65287JiB7ISdDQor652867SJ7J6sDQor65287ZWc6ri4DQor65287IOB7IicDQor65287LC97J6sDQor65287ZmN66eMDQor65287ZiE66y4DQor65287J2866eMDQor65287KCV7KeEDQor65287ZWE7KO8DQor66WYIOqwlQ0KK+ulmOydgOyekA0KK+ulmOyYgeybkA0KK+ulmOuzte2YuA0KK+ulmOqwkeuhnQ0KK+ulmOyYgeq1rA0KK+ulmO2DnOyLnQ0KK+ulmO2VmOyInA0KK+ulmOq0keyXtA0KK+ulmO2DnOyYgQ0KK+ulmOyerO2VmQ0KK+ulmOqyveuCqA0KK+ulmOq0keyngA0KK+ulmO2VqOyErQ0KK+ulmO2YhOuPmQ0KK+ulmO2VmeyImA0KK+ulmOq3vOyImQ0KK+ulmOyZhO2biA0KK+ulmO2VtOyasA0KK+ulmOustOuztQ0KK+ulmOuPhOyaqQ0KK+ulmOyKueyEoA0KK+ulmOydtOynkQ0KK+ulmOyDgeuekQ0KK+ulmOuPme2biA0KK+ulmOusuOyehA0KK+ulmOq3vOq4sA0KK+ulmO2YhOyasQ0KK+ulmOuPme2biA0KK+ulmOyyoOqwkQ0KK+ulmOyCrOustA0KK+ulmOyEuOyihQ0KK+ulmOuzkey5oA0KK+ulmOq4iOyVoA0KK+ulmOuqheu2gA0KK+ulmOusuO2aqA0KK+ulmOyDgeugrA0KK+ulmOyyoOuPmQ0KK+ulmOyerOuPmQ0KK+ulmO2YleydtA0KK+ulmOyDgeyasA0KK+ulmOq0keyaqQ0KK+ulmOyiheyerA0KK+ulmOyerOyyoA0KK+ulmOyEseuztQ0KK+ulmOydgOyYpQ0KK+ulmOykkeyEsQ0KK+ulmOq3nOuCqA0KK+ulmOyEseuztQ0KK+ulmOusuOyXsA0KK+ulmOq4iOq4sA0KK+ulmOyDgeq3vA0KK+ulmOyEse2YuA0KK+ulmOyYgeuMgA0KK+ulmOyLnOyhsA0KK+ulmOyyoOyyoA0KK+ulmOyImOu5iA0KK+ulmOyEseyYgQ0KK+ulmOq4uOq1rQ0KK+ulmOusuOyaqQ0KK+ulmOyLnOyerA0KK+ulmO2Yle2drA0KK+ulmOq3nOyglQ0KK+ulmO2VmeuTnQ0KK+ulmOyXsOyekA0KK+ulmOyGjOuNlQ0KK+ulmOqyve2YhA0KK+ulmOuPmeyImA0KK+ulmOyaqe2drA0KK+ulmOyEuO2YuA0KK+ulmOyDge2DnA0KK+ulmOyInOuNlQ0KK+ulmOycpO2YlQ0KK+ulmOunjOyLnQ0KK+ulmOqwleykgA0KK+ulmOq0keuwsA0KK+ulmOydmOyImA0KK+ulmOydhOqzpA0KK+ulmOuzkeuvvA0KK+ulmOyEseyLpA0KK+ulmOyepe2ZlA0KK+ulmOyEnO2ZjQ0KK+ulmOq4sOyYgQ0KK+ulmOyLpO2VmQ0KK+ulmOyiheuemA0KK+ulmOyiheyaqQ0KK+ulmOuPme2YuA0KK+ulmO2YuO2YhA0KK+ulmOyiheusuA0KK+ulmOyImOyEoA0KK+ulmOyaqe2DnQ0KK+ulmO2YnOyYgQ0KK+ulmOyiheyxhA0KK+ulmOyihe2DgQ0KK+ulmOywveyImA0KK+ulmOyImO2ZmA0KK+ulmO2DnOuqhQ0KK+ulmOyImOqzpA0KK+ulmO2YhO2YuA0KK+ulmOydtOybkA0KK+ulmO2DnOusuA0KK+ulmOyKue2DnA0KK+ulmOyYge2ZmA0KK+ulmOu0ieyEnQ0KK+ulmO2DnOy2mA0KK+ulmOygleyEoA0KK+ulmO2VhOyCvA0KK+ulmOybkO2YuA0KK+ulmO2VhOyEoA0KK+ulmOygleyImA0KK+ulmOyYgeywvQ0KK+ulmOyDgeq4sA0KK+ulmO2VtOuztQ0KK+ulmOuzteq4sA0KK+ulmOyImOyEsQ0KK+ulmOyDgey2nA0KK+ulmO2VtOyWkQ0KK+ulmOuPmeyjvA0KK+ulmOq4sOu0iQ0KK+ulmO2MkOyLnQ0KK+ulmO2VtOy2mA0KK+ulmO2YnO2YuA0KK+ulmOyEuOyXsA0KK+ulmOyLoOyInA0KK+ulmO2YuOuMgA0KK+ulmOyEoOyasA0KK+ulmOyDgeustA0KK+ulmOygleq3uQ0KK+uniOyEneydvA0KK+uniOuPme2YgQ0KK+uniO2DnOyEoA0KK+uniOyDgeyEnQ0KK+unueqyveudvQ0KK+unueyjvOyYpQ0KK+unueq4iOq3nA0KK+unue2YnOq3oA0KK+uqqOyDgeyYgQ0KK+uqqOyVlO2DnA0KK+uqqO2VtOyImA0KK+uqqOyEseq4uA0KK+uqqeyEseyImA0KK+uqqeuLrOq3vA0KK+uqqe2ZlOq2jA0KK+uqqeyerO2MlA0KK+usuOqwleuvvA0KK+usuOyyoO2YhA0KK+usuOq4sO2DnA0KK+usuOq4uO2RnA0KK+usuOqxtO2DnQ0KK+usuOyiheykgA0KK+usuOuPmeunjA0KK+usuOyYgeyYpA0KK+usuOqyveyIoA0KK+usuO2XjO2YuA0KK+usuO2VtOuNlQ0KK+usuOuztO2YuA0KK+usuOqyveyVoA0KK+usuOyaqeq4sA0KK+usuOuMgOyYgQ0KK+usuOyEseuMgA0KK+usuOqyve2YuA0KK+usuOuqheyIoA0KK+usuOyYge2ZmA0KK+usuOqwleybkA0KK+usuOqyve2drA0KK+usuOydhOuMgA0KK+usuOqzhOyEoA0KK+usuOyXsOyLnQ0KK+usuOqzhOuCqA0KK+usuOygkOyXtA0KK+usuOyerOq4sA0KK+usuOyerOyErQ0KK+usuOqzhOyEoA0KK+usuOyEneykgA0KK+usuO2MkOyEnQ0KK+usuOyerOyYpA0KK+usuOq0keyerA0KK+usuOyDgey2nA0KK+usuOyMjeybkA0KK+usuO2YleusuA0KK+usuOq1kOydtQ0KK+usuOyjvOyekA0KK+usuOyerOyerA0KK+usuOygleyErQ0KK+usuOq1rOydmA0KK+usuOq1kOyyoA0KK+usuOyaqeyImA0KK+usuOyiheyImA0KK+usuOq3gOyXtA0KK+usuO2DnOq4sA0KK+usuOyEne2DnA0KK+usuO2DnOqyvQ0KK+usuOq3vOyLnQ0KK+usuOq1sOyLoA0KK+usuOywveyLnQ0KK+usuO2YhO2DnA0KK+usuOq3vOyYgQ0KK+usuOygle2drA0KK+usuOyerOyInA0KK+usuOunkOyImA0KK+usuOq3vOyYgQ0KK+usuOq3vO2biA0KK+usuO2DnO2VmA0KK+usuOyYge2YnA0KK+usuOq4sOyImA0KK+usuOyImOyImQ0KK+usuOyEseqyvQ0KK+usuOycpOuqqQ0KK+usuOq4sO2DnQ0KK+usuOuMgOyasA0KK+usuOykgO2drA0KK+usuOyKueunjA0KK+usuOq4sO2DnQ0KK+usuO2VtO2DnQ0KK+usuOyInOq2jA0KK+usuOynhOuztQ0KK+usuOuCqOyLnQ0KK+usuOyYgeyghA0KK+usuOyDgeq4iA0KK+usuOyiheyXtA0KK+usuOuCqOyynA0KK+usuOyDge2DnQ0KK+usuO2ZjeqyvQ0KK+usuOygleyLnQ0KK+usuOuLrOyImA0KK+usuOyDgeqwgQ0KK+usuO2ZjeqyvQ0KK+usuOuCmeyInA0KK+usuOuMgO2drA0KK+usuOykkeyXtA0KK+usuOuzkeu0iQ0KK+usuOyEseuPjA0KK+usuOuPmeyImA0KK+usuOywveyInA0KK+usuOyYgeyImA0KK+usuOyImOq4uA0KK+usuOuRkOyXtA0KK+usuOyaqe2DnA0KK+usuOyduOq3vA0KK+usuOydvOqyvQ0KK+usuOunjOyXtA0KK+usuOyDgeuztQ0KK+usuOyYgeyglQ0KK+usuOyEseyglQ0KK+usuOunkOyXsA0KK+usuOuqhe2ZmA0KK+usuOunkOyLnQ0KK+usuOuvuOuFuA0KK+usuOunpOyekA0KK+usuOyDgeu2hA0KK+usuOykkeyXtA0KK+usuOydvOyYpQ0KK+usuOunueyjvA0KK+usuO2DnO2YuA0KK+usuOyDgeuMgA0KK+usuOyEneyXtA0KK+usuOuqheyaqQ0KK+usuOyiheyLnQ0KK+usuO2drOyVoA0KK+usuOuMgOybkA0KK+usuOustOyXsA0KK+usuOygleyEnQ0KK+usuOyYge2ZlA0KK+usuOynhOyEoA0KK+usuOuvuOyYgQ0KK+usuOuzkeyVoA0KK+usuOyihe2WiQ0KK+usuOunkOyImA0KK+usuOuzkeq3vA0KK+usuOygleuCqA0KK+usuO2VmeyEnQ0KK+usuOuzkeyImQ0KK+usuOuzkeyduA0KK+usuOyYgeygkA0KK+usuOuPhOyhsA0KK+usuO2VtOq3vA0KK+usuOuzkeyngA0KK+usuOyDgeyEoA0KK+usuOydvOq4sA0KK+usuOq4iOq3nA0KK+usuOuzteqzpA0KK+usuOuqhe2DgQ0KK+usuOybkO2ZlA0KK+usuOyEse2YgQ0KK+usuOuzteyInA0KK+usuOuzkeq4sA0KK+usuOqwke2biA0KK+usuOyerOyInA0KK+usuOuzteyXtA0KK+usuOyKue2DnA0KK+usuOuqheyDgQ0KK+usuO2drO2ZmA0KK+usuOyDgeuPhA0KK+usuOyEseyImQ0KK+usuOyEoO2aqA0KK+usuOqwkeyLnQ0KK+usuOyDgeuemA0KK+usuOyEseynhA0KK+usuOuzkeuwsQ0KK+usuOywveyXtA0KK+usuOyDgeuqqA0KK+usuOuzteq3vA0KK+usuOq4sOyWuA0KK+usuOyiheyInA0KK+usuOyDgeyEnQ0KK+usuOusuOyasA0KK+usuOyDgeyerA0KK+usuOygleqyvQ0KK+usuOyDgeyImA0KK+usuOuPme2biA0KK+usuOyEneqyvQ0KK+usuO2DnOyjvA0KK+usuOyDgeyImA0KK+usuOyViOyEsQ0KK+usuOq4sOyLnQ0KK+usuOyyoOyLnQ0KK+usuOyDgeyatA0KK+usuOyerOykkQ0KK+usuOyiheyhsA0KK+usuOyMjeybkA0KK+usuOyDgeybhQ0KK+usuOuzteuztQ0KK+usuOyEseyImQ0KK+usuO2YhOuemA0KK+usuOyDge2YhA0KK+usuOy2mOyekA0KK+usuOq4sOybkA0KK+usuOyYge2PrA0KK+usuOyDge2YuA0KK+usuO2DnOyekA0KK+usuOq4sOyEoA0KK+usuO2MkOqwlQ0KK+usuOyDge2ZlA0KK+usuOyerOyYpA0KK+usuOuzkeuegA0KK+usuO2DnO2YuA0KK+usuOyDge2doA0KK+usuOyaqeujoQ0KK+usuOuCmeyInA0KK+usuOuvuOyEoA0KK+usuOyDge2drA0KK+usuOuzke2ZlA0KK+usuOyDgeyekA0KK+usuOyImeyekA0KK+usuOyEoOuCqA0KK+usuOyGjOyImA0KK+usuOyYgeyEsQ0KK+usuOq3nOykgA0KK+usuOyEoO2YuA0KK+usuOyihe2ZjQ0KK+usuOu0ieqyvQ0KK+usuOyEne2VnA0KK+usuOyEseykgA0KK+usuOuPmeyekA0KK+usuOyDgeuNlQ0KK+usuOychO2YuA0KK+usuOyEuOyXtA0KK+usuOusuOy2nA0KK+usuOyjvO2DgQ0KK+usuOqyveqyvQ0KK+usuOyInOq1rA0KK+usuOyepeyImA0KK+usuOynhOybkA0KK+usuOyYpeu5iA0KK+usuOyInOuhgA0KK+usuO2ajOuwsA0KK+usuOyaqeuztQ0KK+usuOykgOusuA0KK+usuOyInOyekA0KK+usuOyDgeyImA0KK+usuOyYgeyWtQ0KK+usuO2DnOydvA0KK+usuOyInOyhsA0KK+usuO2ZjeuqhQ0KK+usuOusuOyInA0KK+usuOyEseyXsA0KK+usuOyInO2WpQ0KK+usuOu0ieyIoA0KK+usuO2DnOq4sA0KK+usuO2Wieq4uA0KK+usuOyLoO2YhA0KK+usuOynhOyEnQ0KK+usuOyEseyghA0KK+usuOq0keyIoA0KK+usuOyWkeybhQ0KK+usuO2DnOydvA0KK+usuOyYgeyLnQ0KK+usuO2MkO2ZmA0KK+usuOyYgeuztQ0KK+usuOyiheq4sA0KK+usuOu2hOunjA0KK+usuOycpOyEnQ0KK+usuOyYgeyDgQ0KK+usuOyEseyVhA0KK+usuOyEseyYgQ0KK+usuOyduOykgA0KK+usuOyYgeyEnQ0KK+usuO2SjeyLnQ0KK+usuOyblOq4sA0KK+usuOqyve2YuA0KK+usuOyYgeyYpA0KK+usuOydgOuNlQ0KK+usuO2DnOyehA0KK+usuOyerOyXhQ0KK+usuOyYgeyxhA0KK+usuOuzkeybkA0KK+usuOq4sOq3vA0KK+usuOyduOywvQ0KK+usuOyYge2drA0KK+usuOyCvOq4sA0KK+usuOyXsOyImA0KK+usuOyDgeyWuA0KK+usuOyYpOq1kA0KK+usuOyaqeyInA0KK+usuOyGoeyInA0KK+usuO2DnOusuA0KK+usuOyYpeyjvA0KK+usuOyerO2YuA0KK+usuOuNleq3gA0KK+usuO2drOyduA0KK+usuOyYqOyImQ0KK+usuOyaqe2DnA0KK+usuOyYpeuemA0KK+usuOyiheyErQ0KK+usuOyaqeyatA0KK+usuOygleydgA0KK+usuOyEpOq1rQ0KK+usuOyYge2YuA0KK+usuOyasOyEoA0KK+usuO2DnOyLnQ0KK+usuOyduOyErQ0KK+usuOymneyasA0KK+usuOybheyXtA0KK+usuOyImOyImQ0KK+usuOywvey2nA0KK+usuOyduOyImA0KK+usuOybkOy2nA0KK+usuOyInOyImA0KK+usuOqxtOuNlQ0KK+usuOyiheq4uA0KK+usuOydgOq4sA0KK+usuOyduOq1rQ0KK+usuOuPhOuqqA0KK+usuOuqheuNlQ0KK+usuOydgOyLnQ0KK+usuOybkOyLnQ0KK+usuOqyveyEsQ0KK+usuO2DnOyEnQ0KK+usuOydhOyDnQ0KK+usuOyGjO2biA0KK+usuOyEse2VmQ0KK+usuOyEneyekA0KK+usuOydke2VmQ0KK+usuOyduOyLnQ0KK+usuOyLoO2VnA0KK+usuOyKueycoA0KK+usuOydteq4sA0KK+usuOq3nOybkA0KK+usuOuCnOuNlQ0KK+usuOyEseq4sA0KK+usuOyduOqzpA0KK+usuOq4sOyerA0KK+usuOyEseq3oA0KK+usuOyYgeyYpQ0KK+usuOyduOq4sA0KK+usuOuzteq3nA0KK+usuOyDgeyyoA0KK+usuOuzke2drA0KK+usuOyduOq4sA0KK+usuOy+jOyynA0KK+usuOycpO2drA0KK+usuOyDgeyLnQ0KK+usuOyduOyImA0KK+usuOyInO2YuA0KK+usuOyDgeyerA0KK+usuOuvvOydmA0KK+usuOydvOyjvA0KK+usuOyGjO2YuA0KK+usuOyYge2VtA0KK+usuOykkeuLiA0KK+usuOyepeyatA0KK+usuOyYgeqzpA0KK+usuOygleyInA0KK+usuOyerOyaqQ0KK+usuOyepe2YuA0KK+usuOywrOyasQ0KK+usuOyerOq1kA0KK+usuOyViOyhsA0KK+usuOyerOyyoA0KK+usuOy+jOuPhA0KK+usuOyaqeykgA0KK+usuOq4uOyhsA0KK+usuOyerO2drA0KK+usuOq4sOqwkQ0KK+usuO2aqOyjvA0KK+usuOyihe2YuA0KK+usuOyghOq1rQ0KK+usuOydgOyaqQ0KK+usuOunjOybkA0KK+usuOuzteyhsA0KK+usuOyghOq1rQ0KK+usuOydte2drA0KK+usuOyerO2drA0KK+usuO2drOyXtA0KK+usuOygkOuekQ0KK+usuO2YhO2YhA0KK+usuOyYgeq1kA0KK+usuOuRkO2DnA0KK+usuOygkOu2hA0KK+usuOuMgOuvvA0KK+usuOyInO2ZmA0KK+usuOycpOyYpQ0KK+usuOygleq1rQ0KK+usuOunkOyihQ0KK+usuOyZuOyekA0KK+usuOyerOyImA0KK+usuOygleuylA0KK+usuOyYgeynhA0KK+usuO2DnOq3nA0KK+usuOq3vOuztQ0KK+usuOygleu2hA0KK+usuOyEseyImA0KK+usuOqyve2ZlA0KK+usuOyiheyihQ0KK+usuOygleyEoA0KK+usuOyngOu0iQ0KK+usuOyYpeq2jA0KK+usuOyEne2ZmA0KK+usuOygleyImA0KK+usuOq4iOyImQ0KK+usuOygle2YuA0KK+usuOyYgeyImA0KK+usuOygleyInA0KK+usuOygleyLnQ0KK+usuOyasOykgA0KK+usuOydmOyImA0KK+usuOygleyIoA0KK+usuOqxtOq3vA0KK+usuOusuOuguQ0KK+usuOyYgeq1rA0KK+usuOygleyekA0KK+usuOyYpOyInA0KK+usuOyerOyEnQ0KK+usuOygleyasA0KK+usuOygleyekA0KK+usuOydvOq1rQ0KK+usuOyiheqxuA0KK+usuOqxtOyImA0KK+usuOygleyekA0KK+usuOyXsOq3vA0KK+usuOqyveuPmQ0KK+usuOq4sOyyoA0KK+usuOygleyekA0KK+usuOyEseyLpA0KK+usuOyInOyXsA0KK+usuOyduOyEnQ0KK+usuOygle2drA0KK+usuOybkOykgA0KK+usuOyGjO2YhA0KK+usuOuqhe2YuA0KK+usuOyiheuemA0KK+usuOy2lOu0iQ0KK+usuOuqheyXtA0KK+usuOydmO2DnA0KK+usuOyjvOyEoA0KK+usuOybkO2ZjQ0KK+usuOuzte2biA0KK+usuO2YuOyImA0KK+usuOyjvOyErQ0KK+usuOywveuCqA0KK+usuOuMgO2ZmA0KK+usuOyaqeyYgQ0KK+usuOyjvOyihQ0KK+usuOunjOyjvA0KK+usuO2DnOyXtA0KK+usuOuzke2ctA0KK+usuOyjvO2YuA0KK+usuOyehOunjA0KK+usuOqyveyYpA0KK+usuOyiheyImA0KK+usuOywqOq0gA0KK+usuOyEoO2ZjQ0KK+usuO2DnOq1kA0KK+usuOyerOyhsA0KK+usuOywveuemA0KK+usuOy5oOydgA0KK+usuOunkOyImA0KK+usuOyaqeykgA0KK+usuOywveyLnQ0KK+usuOyiheyaqQ0KK+usuOyDgeyImA0KK+usuOuzke2DnQ0KK+usuOywveyXtA0KK+usuOyerOq3nA0KK+usuOuNleyErQ0KK+usuOuzkeyLnQ0KK+usuOywveyXtA0KK+usuOyCrOyXsA0KK+usuOustOyasA0KK+usuOynhOybkA0KK+usuOyyoOyatA0KK+usuOycoeyEnQ0KK+usuOynhOyLnQ0KK+usuO2DnOq1rQ0KK+usuOy2mOyYpQ0KK+usuOyDge2VmQ0KK+usuOyjvOq4uA0KK+usuOuFuOqwkQ0KK+usuO2MkOq2jA0KK+usuOu2hOuLrA0KK+usuOunkO2YuA0KK+usuO2VtO2biA0KK+usuO2MkOyInA0KK+usuOyInOyXsA0KK+usuOuzkeydvA0KK+usuOyYge2DnQ0KK+usuO2MkOyYpA0KK+usuOyiheyImA0KK+usuOybkO2drA0KK+usuOyDge2VmQ0KK+usuO2MlOu0iQ0KK+usuOyYgeuFgA0KK+usuOunjOyEnQ0KK+usuO2VtOyEoA0KK+usuO2VhOyInA0KK+usuO2DnOyjvA0KK+usuO2VnOykgA0KK+usuOyEseyDgQ0KK+usuO2VmeyhsA0KK+usuOyduOyYgQ0KK+usuOyerOyjvA0KK+usuOqyveq2jA0KK+usuO2WieyEsQ0KK+usuOuLrOyEoA0KK+usuOyduOyglQ0KK+usuOy2mOydvA0KK+usuO2YhOyekA0KK+usuOyCvOq2jA0KK+usuOyaqeywvQ0KK+usuOq0keuylA0KK+usuO2YuOyLnQ0KK+usuOunjOyImA0KK+usuOyngOyhsA0KK+usuOuTneyLnQ0KK+usuO2ZjeyerA0KK+usuOygle2VnA0KK+usuOu2hO2drA0KK+usuOq2geykgA0KK+usuO2ZjeyerA0KK+usuOykkeq4sA0KK+usuO2VtO2ZmA0KK+usuOyaqe2DnA0KK+usuO2ZjeyjvA0KK+usuOyaqe2cmA0KK+usuOyepeuztQ0KK+usuOycpOuPhA0KK+usuO2ZlOy2mA0KK+usuOycpOuCnA0KK+usuOuLrOyehA0KK+usuOynhOq1sA0KK+usuO2ZmOyjvA0KK+usuOq3vO2YuA0KK+usuOuPmeyDgQ0KK+usuOyerOyInA0KK+usuO2aqOyXtA0KK+usuOq4sOyVoA0KK+usuOyDgeydvA0KK+usuOuTseuCqA0KK+usuO2drOq1kA0KK+usuOuLrO2ZmA0KK+usuOygleq3vA0KK+usuO2VtOyEnQ0KK+usuO2drOyEsQ0KK+usuOyYpOyYpQ0KK+usuOuzkeuPhA0KK+usuO2ZjeyekA0KK+usuO2drOyInA0KK+usuOyYgeyImA0KK+usuO2drOuzkQ0KK+usuOyDge2YuA0KK+usuO2drOyLnQ0KK+usuOustOy2mA0KK+usuOqyve2ZlA0KK+usuOuvuO2YuA0KK+usuO2drOyXsA0KK+usuOyEseybkA0KK+usuOyDgeyXtA0KK+usuOyKueyjvA0KK+usuO2drOybkA0KK+usuOyEseyyoA0KK+usuOyYpeq3oA0KK+usuOunkOu2hA0KK+uvvOqzteyLnQ0KK+uvvOydvOyyoA0KK+uvvOyYgeuztA0KK+uvvOyLoOykgA0KK+uvvOuPhOq4sA0KK+uvvOybkOq4uA0KK+uvvOyatOyEnQ0KK+uvvOyEse2biA0KK+uvvOusuO2drA0KK+uvvOyGjOyjvA0KK+uvvOyihe2ZmA0KK+uvvOydmOybkA0KK+uvvOuzkeq4sA0KK+uvvOycpO2drA0KK+uvvO2Zjeq3vA0KK+uvvOuPhOyImA0KK+uvvOuzkeuqqQ0KK+uvvOu2hOq1rA0KK+uvvOyiheyInA0KK+uvvOu2gOyglQ0KK+uvvOuzkeyEsQ0KK+uvvOq4uOuztQ0KK+uvvOyImOyIoA0KK+uvvOyjvOyihQ0KK+uvvOuzkeyYpA0KK+uvvOywveyImA0KK+uvvOuCqOyerA0KK+uvvOyEne2drA0KK+uvvOuzkeyYpA0KK+uvvOynhOyasA0KK+uvvOuMgOuwsQ0KK+uvvOqwle2ZmA0KK+uvvOuzkeyYpA0KK+uvvOywve2YuA0KK+uvvOuzkeycpA0KK+uvvOyaqeyasQ0KK+uvvOuzkeyasA0KK+uvvOynhOyaqQ0KK+uvvOygleuqqQ0KK+uvvOyEoOyInA0KK+uvvOuzkeyasQ0KK+uvvOygleycoQ0KK+uvvO2DnOyImQ0KK+uvvOyerO2YhA0KK+uvvOuzkeywvQ0KK+uvvOygleyGjA0KK+uvvOyYgeyerA0KK+uvvOygkOyYpA0KK+uvvOuzkeyynA0KK+uvvOqzhOyEnQ0KK+uvvOycoOydtA0KK+uvvOyEse2biA0KK+uvvOuzke2YhA0KK+uvvOyjvOyXhQ0KK+uvvO2YhOyEnQ0KK+uvvOq4sOq4sA0KK+uvvOuzteq4sA0KK+uvvOyImeydvA0KK+uvvOyYgeq1rA0KK+uvvOyjvO2YhA0KK+uvvOu0ieq3vA0KK+uvvCDtg5wNCivrr7ztg5zsoJUNCivrr7zsg4Hsm5ANCivrr7zshJ3sobANCivrr7zsg4HtmowNCivrr7zshLHsi50NCivrr7zsnbjspIANCivrr7zshLHquLANCivrr7ztl4ztnawNCivrr7zsjI3tmIQNCivrr7ztmLjsiJgNCivrr7zshLHsnqwNCivrr7wg7IiYDQor66+87IOB7ZiEDQor66+87JiB7JewDQor66+87JiB7JqwDQor66+87Zi464WEDQor66+86rK97JqpDQor66+86riw7LKgDQor66+87J6s6riwDQor66+87ISx7LCoDQor66+866eM66+8DQor66+87Yq57ZalDQor66+87KCQ7IiYDQor66+87KO87KO8DQor66+8IOq1kA0KK+uvvOqyve2YuA0KK+uvvOyiheyEoA0KK+uvvOydvOyXsA0KK+uvvOyerOyImQ0KK+uvvOuqheuMgA0KK+uvvOynhOuFuA0KK+uvvOygleq3nA0KK+uvvO2Wie2ZjQ0KK+uvvOyaqeq4sA0KK+uvvOynhOyImA0KK+uvvOyerO2ZmA0KK+uvvOyYgeyVlA0KK+uvvOyCvOyImA0KK+uvvOywrOyLnQ0KK+uvvOuzkeyXtA0KK+uvvOyyoOyImA0KK+uvvOyImO2ZmA0KK+uvvOywveyLnQ0KK+uvvOyZuOuTnQ0KK+uvvOygleyYgQ0KK+uvvOyEneydgA0KK+uvvOyyoOynhA0KK+uvvOydtOyInA0KK+uvvOygleyInA0KK+uvvOyImOunjA0KK+uvvO2DnOyLnQ0KK+uvvO2YnOyImA0KK+uvvOybkOq3nA0KK+uvvOyerOq3nA0KK+uvvO2WpeuegA0KK+uvvOyDgeyLnQ0KK+uvvO2SjeuTnQ0KK+uvvOusuOq0gA0KK+uvvO2YhOyImQ0KK+uvvOqyve2drA0KK+uvvOyerOunjA0KK+uvvOyDgeyImQ0KK+uvvO2YnOybkA0KK+uvvO2DnOyerA0KK+uvvOygleyLnQ0KK+uvvOuTneykgA0KK+uwlSDqtZANCivrsJXsmqnsobANCivrsJXsnbjquLANCivrsJXrr7zshJ0NCivrsJUg6re8DQor67CV7ISg6re8DQor67CV7IOB7JilDQor67CV7IiY6raMDQor67CVIOyYpQ0KK+uwleq0keuTnQ0KK+uwleyaqeqzpA0KK+uwleyasOyhsA0KK+uwlSDsmqkNCivrsJXsnKTrjZUNCivrsJXrs7jqs6QNCivrsJXsmqnqtowNCivrsJUg7JqpDQor67CV7YOc6rK9DQor67CV7ISd7ZWZDQor67CV6rOE7ISdDQor67CVIOydgA0KK+uwleq4sOyerA0KK+uwleqyveyImQ0KK+uwle2DnOyInA0KK+uwlSDtm4gNCivrsJXtmLjtnawNCivrsJXssKzsiJgNCivrsJXrj4Tsl7QNCivrsJXqsJHrj4QNCivrsJXsnKTsi50NCivrsJXshLjsiJwNCivrsJXshJ3qt5wNCivrsJXqsJHsg4ENCivrsJXsnqzsmKUNCivrsJXrjZXsmrANCivrsJXsi6DqsJENCivrsJXqsJHshKANCivrsJXtg5zrs7UNCivrsJXtlbTtmLgNCivrsJXsm5DtmZQNCivrsJXqsJHsiJgNCivrsJXrj5nrj5kNCivrsJXsnbztnawNCivrsJXrj5nshJ0NCivrsJXqsJHsiJgNCivrsJXrj5nsi50NCivrsJXqsr3tmIQNCivrsJXsnqXrqqgNCivrsJXqsJHsiJwNCivrsJXtg5zrs7UNCivrsJXsoJXtlZwNCivrsJXshLHsiJkNCivrsJXqsJHslYUNCivrsJXrs5Htg5wNCivrsJXsooXsmrANCivrsJXshLHtmIQNCivrsJXqsJHso7wNCivrsJXsnoTsiJwNCivrsJXtmIHsiJwNCivrsJXsoozqt7wNCivrsJXqsJXrs7gNCivrsJXstqnqt7wNCivrsJXtg5zrjZUNCivrsJXrjIDsl7ANCivrsJXqsJXsobANCivrsJXtmqjtg50NCivrsJXsnbzsiKANCivrsJXsl7DsmrANCivrsJXqsbTrj5kNCivrsJXqsr3tmLgNCivrsJXquLDtmLgNCivrsJXsmIHrj4QNCivrsJXqsr3qt5wNCivrsJXsg4HshowNCivrsJXrs7XtmZgNCivrsJXtg5zsnoQNCivrsJXqsr3quLANCivrsJXsmIHqt7wNCivrsJXshJ3tmIQNCivrsJXsnbjquLgNCivrsJXqsr3ri6wNCivrsJXsnbjsooUNCivrsJXtlbTrtIkNCivrsJXquLDsiJgNCivrsJXqsr3rj5kNCivrsJXsnKTrnpgNCivrsJXssKzslYQNCivrsJXsnqXqtawNCivrsJXqsr3rj5kNCivrsJXsnoTqt7wNCivrsJXsoJXtmZgNCivrsJXsoJXsmqkNCivrsJXqsr3shKANCivrsJXsiJzsp4QNCivrsJXsg4HsnbgNCivrsJXqtazsl7ANCivrsJXqsr3siJgNCivrsJXrs5HssqANCivrsJXqta3qsr0NCivrsJXso7zsiJgNCivrsJXqsr3siJgNCivrsJXtg5zrj5kNCivrsJXrjZXstpwNCivrsJXsmIHshLENCivrsJXqsr3siJgNCivrsJXsmrDtnawNCivrsJXsp4TsobANCivrsJXstpjtlZwNCivrsJXqsr3siJgNCivrsJXsnoTstpwNCivrsJXsg4HsnqwNCivrsJXrgrTsl7ANCivrsJXqsr3siKANCivrsJXsooXsg50NCivrsJXquLDshK0NCivrsJXsmKXquLANCivrsJXqsr3sl7QNCivrsJXtmZTslYQNCivrsJXtmJXsmpQNCivrsJXsl7DrsLANCivrsJXqsr3smIENCivrsJXssq3ssqANCivrsJXsp4DshJ0NCivrsJXquLjsm5ANCivrsJXqsr3smqkNCivrsJXsmKTquLgNCivrsJXrs5HsiJgNCivrsJXtg5ztjJANCivrsJXqsr3smrANCivrsJXsnqzsmrENCivrsJXrspTtmZQNCivrsJXrr7zssqANCivrsJXqsr3sm5ANCivrsJXrs5HsmrANCivrsJXrqoXshJ0NCivrsJXrjZXshJ0NCivrsJXqsr3snqwNCivrsJXqt5zsspwNCivrsJXrtInshJ0NCivrsJXrs5HshJ0NCivrsJXqsr3sobANCivrsJXtmY3rrLgNCivrsJXssL3stpwNCivrsJXquIjsiJgNCivrsJXqsr3spIANCivrsJXrp4zsnqwNCivrsJXsjI3tmIQNCivrsJXsm5DstpgNCivrsJXqsr3stpwNCivrsJXqtJHtjrgNCivrsJXsnqzshJ0NCivrsJXsmrTqsr0NCivrsJXqsr3tmLgNCivrsJXsiJzsoJUNCivrsJXsg4Hqt7wNCivrsJXrp4zsiJgNCivrsJXqsr3tmLgNCivrsJXrqoXqt7wNCivrsJXsi6DsnpANCivrsJXsp4TsiJgNCivrsJXqsr3tmZQNCivrsJXsnKTssqANCivrsJXqt7zsl7QNCivrsJXqsJHsiJgNCivrsJXqsr3tnawNCivrsJXsnYDrnb0NCivrsJXtmY3siJkNCivrsJXsnZHsmqkNCivrsJXqs4Trp4wNCivrsJXshLjsiJwNCivrsJXqsr3rk50NCivrsJXtlZnsi6wNCivrsJXqs4TsiJwNCivrsJXtlZjrk7ENCivrsJXqsr3soJANCivrsJXrrLjsm5ANCivrsJXqs4TsiJwNCivrsJXso7ztmLgNCivrsJXtmJXsspwNCivrsJXtlYTsmIENCivrsJXqs4TsiJwNCivrsJXtg5zsi50NCivrsJXsnqzshKANCivrsJXtjJDrrLgNCivrsJXqs4TslpENCivrsJXsnqztmZgNCivrsJXsgqzsnpANCivrsJXssqDsobANCivrsJXqs6DsnKQNCivrsJXrj4Trp4wNCivrsJXsmIHtmLgNCivrsJXrr7jssqANCivrsJXqs6Hsp4ANCivrsJXsg4Htg5wNCivrsJXspJHsiJgNCivrsJXtl4zshKANCivrsJXqtIDsmrENCivrsJXquLDrjZUNCivrsJXtmZjtg5wNCivrsJXsp4TrnpgNCivrsJXqtJHqt7wNCivrsJXrtInsspwNCivrsJXsmIHquLANCivrsJXtmJXsi50NCivrsJXqtJHqt7wNCivrsJXssKzrj4wNCivrsJXtnJjsspwNCivrsJXsmIHsobANCivrsJXqtJHquLANCivrsJUg7KeEDQor67CV7LaU7JqpDQor67CV7JuU7LCoDQor67CV6rSR67CwDQor67CV7YOc7YOcDQor67CV66y47JWUDQor67CV7KKF7IiZDQor67CV6rSR67CwDQor67CV7JaR656YDQor67CV67OR7YOcDQor67CV7Jqw7ISdDQor67CV6rSR67mIDQor67CV7KKF642VDQor67CV66qF7Zi4DQor67CV6rSR7IiYDQor67CV6rSR7ISdDQor67CV7ZiE7IiYDQor67CV7KCV64+EDQor67CV7KKF642VDQor67CV6rSR7ISgDQor67CV6riw6rOkDQor67CV64+Z64+EDQor67CV7YOc7JqpDQor67CV6rSR7IiYDQor67CV67OR64+EDQor67CV7LaY7ISdDQor67CV6rOE7IiYDQor67CV6rSR7IiYDQor67CV7IOB66qoDQor67CV7YOc7IiYDQor67CV7ISx6ri4DQor67CV6rSR7Je0DQor67CV7ZWE642VDQor67CV7ISx6rOkDQor67CV7Iic6529DQor67CV6rSR7Je0DQor67CV7Iic6riwDQor67CV7LC97IStDQor67CV7KKF66CsDQor67CV6rSR7JqpDQor67CV66eM7IiYDQor67CV7ISd7Y+sDQor67CV7J2A7KCVDQor67CV6rSR7JqpDQor67CV6riw6re8DQor67CV7ZmN642VDQor67CV7LC96re8DQor67CV6rSR7JqxDQor67CV7KSR7JewDQor67CV7ZWE7KCVDQor67CV7ZmY7Je0DQor67CV6rSR7KeEDQor67CV7KCV642VDQor67CV7LaY7LacDQor67CV7YOc66CoDQor67CV6rSR7KeEDQor67CV6rec7LaYDQor67CV6rSR66qoDQor67CV67OR7JewDQor67CV6rSR7Zi4DQor67CV66y07ZeMDQor67CV7KKF7IicDQor67CV7ISx6riwDQor67CV6rSR7ZuIDQor67CV7Lmg7ZuIDQor67CV66qF7Zi4DQor67CV7LKc7IudDQor67CV6rWQ7LCsDQor67CV642V6re8DQor67CV7Iic7IiYDQor67CV7IiZ7IudDQor67CV6rWs7Je0DQor67CV7J2E7KGwDQor67CV66eQ7ISdDQor67CV7LCo7ZmYDQor67CV6rWt7KO8DQor67CV7Jew7IigDQor67CV7IOB7Z2sDQor67CV7IOB7J20DQor67CV6reA7IicDQor67CV7Jil7Zi4DQor67CV7IiY7KeEDQor67CV7IOB7J6lDQor67CV6reA7ZmYDQor67CV7YOc67CwDQor67CV7ISx6rOkDQor67CV66eQ7KKFDQor67CV6rec6re8DQor67CV7ZmN7IiYDQor67CV7LC97JewDQor67CV7YOc65GQDQor67CV6rec66eMDQor67CV6rCR7KeEDQor67CV7Iq57Zi4DQor67CV6rCV7KSADQor67CV6rec67SJDQor67CV7KO87IigDQor67CV7J247JyoDQor67CV7J2A7IiYDQor67CV6rec7J20DQor67CV7IOB7ZuIDQor67CV7IS47JewDQor67CV7KCV7KO8DQor67CV6rec7LKcDQor67CV7JiB7YOdDQor67CV67OR7IicDQor67CV7KSR66OhDQor67CV6rec7ZWZDQor67CV7Jil7J6QDQor67CV7ISx7IudDQor67CV7ZWZ7JqwDQor67CV6rec7Z2gDQor67CV65GQ7Zi4DQor67CV7Lap7Zi4DQor67CV7LC97ZmYDQor67CV6re8642VDQor67CV7IOB7JmEDQor67CV64W47ISxDQor67CV64+Z7ZiEDQor67CV6re867CwDQor67CV7JiB7KeEDQor67CV7JiB7Zi4DQor67CV7Jqw6rWtDQor67CV6re867CwDQor67CV6riw642VDQor67CV67O17IOBDQor67CV7KCV7J6QDQor67CV6re87IicDQor67CV7YOc67CwDQor67CV7IOB7J28DQor67CV66qF64usDQor67CV6re87IudDQor67CV6rK97ISgDQor67CV6riw7KSADQor67CV67O17Z2sDQor67CV6re87JiBDQor67CV7ISx7J6sDQor67CV67aA7ZmYDQor67CV7Jew6recDQor67CV6re87JqwDQor67CV7Iic7IiZDQor67CV7ZWc7Zi4DQor67CV66y07JiBDQor67CV6re87JykDQor67CV7IaM7JqwDQor67CV7KCV6recDQor67CV7IOB7ZqMDQor67CV6re87JykDQor67CV67O07Zi4DQor67CV6ri47JewDQor67CV7JiB66qFDQor67CV6re87J6QDQor67CV7IOB7IiYDQor67CV7KCV7Je0DQor67CV7ZiE7Z2sDQor67CV6re87ZW0DQor67CV7ISd7LKgDQor67CV64us656ADQor67CV7Jqp7IudDQor67CV6re87ZmUDQor67CV7IKs7JWUDQor67CV7ZmY7KKFDQor67CV6riw7IOBDQor67CV6re87Z2sDQor67CV66eM7ISdDQor67CV64u07IiYDQor67CV7J247KSADQor67CV6riI7ISdDQor67CV7IiZ7ZmNDQor67CV7ISx67ORDQor67CV7LC97IudDQor67CV6riI7JewDQor67CV7Iic7J6QDQor67CV7KKF6rOkDQor67CV7LC96rSADQor67CV6riI7KO8DQor67CV7Jqp7JmEDQor67CV7LaY7IudDQor67CV7Iq57IudDQor67CV6riw6rOkDQor67CV66+87J20DQor67CV7KCV7ZuIDQor67CV7JiB7IicDQor67CV6riw66qoDQor67CV7KO87IicDQor67CV6rec7JiBDQor67CV7YOc6rOEDQor67CV6riw66y4DQor67CV64KZ7J20DQor67CV6rK97J6QDQor67CV7Iq565OdDQor67CV6riw67SJDQor67CV7ISx7JikDQor67CV6riI7Zi4DQor67CV6riI7IicDQor67CV6riw67SJDQor67CV7JiB7IudDQor67CV7IK87IK8DQor67CV7J2A7ZmYDQor67CV6riw7ISxDQor67CV7J6Q7ISdDQor67CV7LKg7ZeMDQor67CV6rG07JuQDQor67CV6riw7ISxDQor67CV6rCR642VDQor67CV7J6s7KKFDQor67CV6riw7IiYDQor67CV6riw7IicDQor67CV64yA64+ZDQor67CV66+87JewDQor67CV7Jm46rK9DQor67CV6riw7JilDQor67CV7J6s67SJDQor67CV7JiB7ZmUDQor67CV7YOc7LKgDQor67CV6riw7JmEDQor67CV7JuQ7ISgDQor67CV7J6s7YOdDQor67CV7Iic7Je0DQor67CV6riw7JuQDQor67CV7JiB6re8DQor67CV7YOc6rK9DQor67CV7JiB7ISdDQor67CV6riw7JuQDQor67CV7JiB7JesDQor67CV7KeE7Z2sDQor67CV7JiB7Zi4DQor67CV6riw7KCVDQor67CV7L6M7ISdDQor67CV7J6s7YOcDQor67CV67OR7ISdDQor67CV6riw7KKFDQor67CV7ZmU7Z2sDQor67CV7ZWZ7JiBDQor67CV7J247YOcDQor67CV6riw7YOcDQor67CV67OR7YOcDQor67CV7ZiE7JqwDQor67CV7JiB7YOcDQor67CV6riw7YOcDQor67CV7Jqw7YOcDQor67CV7IiY66eMDQor67CV7J287IicDQor67CV6riw7YOcDQor67CV64yA7IicDQor67CV6rOE7J21DQor67CV7JWI7KO8DQor67CV6riw7YOdDQor67CV7YOc6rCRDQor67CV7JuQ67KUDQor67CV7KKF7ZiEDQor67CV6riw7ZiEDQor67CV6riw6riwDQor67CV64+E7J6sDQor67CV7LKc7LCsDQor67CV6riw7ZiEDQor67CV7Zi47ISgDQor67CV7J6l7IStDQor67CV6rCR66eMDQor67CV6riw7ZmNDQor67CV6riI7J21DQor67CV7JiB6rWQDQor67CV64+E6recDQor67CV6riw7ZmNDQor67CV7IOB7Z2sDQor67CV7Jew7KO8DQor67CV7KSR7J24DQor67CV6riw7ZmNDQor67CV6riw7IiYDQor67CV6rec7Z2sDQor67CV7IOB7Z2gDQor67CV6riw7ZmNDQor67CV7KO87J28DQor67CV7IOB7LCsDQor67CV66+866eMDQor67CV6riw7ZmUDQor67CV7Jqp7Y+JDQor67CV7J6s7Z2gDQor67CV7KCV7ZmYDQor67CV6riw7ZuIDQor67CV67OR7Zi4DQor67CV7Iq56raMDQor67CV66+47ZmUDQor67CV6ri47ZqoDQor67CV6rK9642VDQor67CV7KCV7JmEDQor67CV7ISx7KGwDQor67CV64KZ7ZWYDQor67CV7LCo67CwDQor67CV7KKF7IicDQor67CV7KSA66GADQor67CV64Ko7ISdDQor67CV6rK96raMDQor67CV66eM7KCVDQor67CV7Iic7IiYDQor67CV64Ko7IiZDQor67CV7LC96recDQor67CV7Zi47KGwDQor67CV7ZWZ7IStDQor67CV64Ko7IudDQor67CV7YyQ64+ZDQor67CV6rSR7Jq0DQor67CV7KCV7YOcDQor67CV64Ko7KCVDQor67CV7J2E7J28DQor67CV7Iic7ZqMDQor67CV7YOc7KeEDQor67CV64W46rCRDQor67CV7IOB7ZmUDQor67CV7JiB7IudDQor67CV7KCV7J6QDQor67CV64W46rCRDQor67CVIOq3vA0KK+uwleuvuOykgA0KK+uwleyerOyjvA0KK+uwleuFuOq2jA0KK+uwleq4sOynhA0KK+uwle2YuO2biA0KK+uwleuMgOyLnQ0KK+uwleuFuOq4sA0KK+uwleyEseyEoA0KK+uwleyEneyaqQ0KK+uwleunjOuylA0KK+uwleuFuOunjA0KK+uwleychOyYpQ0KK+uwleyEseqyvQ0KK+uwleynhO2VhA0KK+uwleuFuOu2hA0KK+uwleyerOyYpQ0KK+uwleyDgeyekA0KK+uwle2MlOuwsA0KK+uwleuFuOyInA0KK+uwleyEseuNlQ0KK+uwleuLrO2YuA0KK+uwleyYgeuNlQ0KK+uwleuFuOyLoA0KK+uwleyIme2YhA0KK+uwle2DnOyImA0KK+uwle2DnO2YgQ0KK+uwleuFuOyXtA0KK+uwleyImO2YnA0KK+uwleyXvOyEnQ0KK+uwleygleu2hA0KK+uwleuFuOyYgQ0KK+uwleq0keuPmQ0KK+uwleyLrOujoQ0KK+uwleqyve2YuA0KK+uwleuFuOyaqQ0KK+uwleyduOq3nA0KK+uwleyduOuPhA0KK+uwleyYgeyDnQ0KK+uwleuFuOycpA0KK+uwle2Zjeq3nA0KK+uwleyihe2YuA0KK+uwleyYpeuwsA0KK+uwleuFuOycpA0KK+uwleyYgeykgA0KK+uwleyYgeyaqQ0KK+uwle2Vmeq3vA0KK+uwleuFuOyglQ0KK+uwleybkOq3nA0KK+uwleyInOyInA0KK+uwleyatOycpA0KK+uwleuFuOyyoA0KK+uwleyerOqyvQ0KK+uwleuPme2RnA0KK+uwleyEuOuPhA0KK+uwleuFuO2VmQ0KK+uwleywveyImA0KK+uwleyInOyDgQ0KK+uwleydmOyImA0KK+uwleuFuO2YhA0KK+uwleyihe2YuA0KK+uwleygleybhQ0KK+uwleykgOyaqQ0KK+uwleuFuO2ZlA0KK+uwle2DnOyIoA0KK+uwleyehOq3nA0KK+uwleqyveq3nA0KK+uwleuLrOq3nA0KK+uwleygleydvA0KK+uwleq3vOyErQ0KK+uwleywveykgA0KK+uwleuLrOyEoA0KK+uwlSDsiJkNCivrsJXqtozsiJwNCivrsJXrtInrtIkNCivrsJXri6zsiJgNCivrsJXsoJXshLENCivrsJXrjZXtmLgNCivrsJXrj5nsnoQNCivrsJXri6zsmqkNCivrsJXrhbjtmY0NCivrsJXtlZzsnpANCivrsJXshJ3siJwNCivrsJXri6ztmowNCivrsJXsoJXtmZgNCivrsJXsm5DshKANCivrsJXri6zrgqgNCivrsJXrjIDshLENCivrsJXsnqzsnpANCivrsJXtlbTso7wNCivrsJXsmIHrtIkNCivrsJXrjIDshLENCivrsJXsoJXsnbwNCivrsJXsmZXsnpANCivrsJXsp4TtmLgNCivrsJXrjIDshLENCivrsJXssL3siJgNCivrsJXqsJHshLENCivrsJXtmJXtg5wNCivrsJXrjIDshLENCivrsJXqt7zssqANCivrsJXssL3qt7wNCivrsJXquLjshKANCivrsJXrjIDsi50NCivrsJXsg4Hsl7QNCivrsJXshLHsobANCivrsJXrs5HsnbwNCivrsJXrjIDsi50NCivrsJXqsr3tmLgNCivrsJXtg5zsmKUNCivrsJXquLDspIANCivrsJXrjIDsm5ANCivrsJXsiJjsi6QNCivrsJXrqoXsnpANCivrsJXrqoXtg5wNCivrsJXrjIDssqANCivrsJXrj5nsmIENCivrsJXtlZntmLgNCivrsJXqt5zquLANCivrsJXrjIDtmJUNCivrsJXtm4jslZQNCivrsJXsmKTsobANCivrsJXsooXrs7UNCivrsJXrjZXqt7wNCivrsJXtjJDssqANCivrsJXsgrzsnpANCivrsJXtg5zqtawNCivrsJXrjZXsiJwNCivrsJXtmLjrtIkNCivrsJXsnqXquLANCivrsJXqsr3rgqgNCivrsJXrjZXslZQNCivrsJXrj5nsmqkNCivrsJXsiJjshKANCivrsJXsnKTstpgNCivrsJXrjZXsnbQNCivrsJXsp4TrjZUNCivrsJXslrXshLENCivrsJXsmKXsi50NCivrsJXrj4TquIgNCivrsJXqs4TssqANCivrsJXsnYDtmZgNCivrsJXsnqXsm5ANCivrsJXrj4TshKANCivrsJXsoJzsmrANCivrsJXsmIHsmIENCivrsJXtmITsiJgNCivrsJXrj4TtmZgNCivrsJXqt5ztmZQNCivrsJXsmrTsi50NCivrsJXtlZjsiJkNCivrsJXrj4TtmZgNCivrsJXsnbjtmLgNCivrsJXsmIHtmLgNCivrsJXsmqnrrLgNCivrsJXrj4jtl4wNCivrsJXsmIHsnbwNCivrsJXsoJXquLANCivrsJXrjIDtlZgNCivrsJXrj5nqt7wNCivrsJXrtInquLANCivrsJXqt6DtmLgNCivrsJXsmrHrtoQNCivrsJXrj5nquLgNCivrsJXshLjtg50NCivrsJXssq3snqwNCivrsJXtlYTtg5wNCivrsJXrj5nrqoUNCivrsJXrjZXsiJwNCivrsJXqtJHsmrANCivrsJXsooXtmIQNCivrsJXrj5nrqoUNCivrsJXsg4Hrj4wNCivrsJXsoJXtg5wNCivrsJXsmIHqt5wNCivrsJXrj5nshLENCivrsJXquIjqt5wNCivrsJXrs5Hqsr0NCivrsJXqsr3sl7ANCivrsJXrj5nsiJgNCivrsJXsooXsnbwNCivrsJXsmIHsnpANCivrsJXrjIDqs6QNCivrsJXrj5nsiJgNCivrsJXtmJzshKANCivrsJXsg4HtmLgNCivrsJXtnazsi50NCivrsJXrj5nsiJgNCivrsJXrs5HtmZQNCivrsJXsnZjsnbQNCivrsJXsmqnshKANCivrsJXrj5nsiJkNCivrsJXqtJHsnbwNCivrsJXsmrDtmZgNCivrsJXqtJHtkZwNCivrsJXrj5nsi50NCivrsJXqsr3ssqANCivrsJXsooXsnbwNCivrsJXrqoXsp4ENCivrsJXrj5nsi50NCivrsJXsmrTsiJwNCivrsJXshLHsiJkNCivrsJXsg4Hrr7wNCivrsJXrj5nsl7QNCivrsJXrtInrs7UNCivrsJXqt7zsobANCivrsJXrqoXspIANCivrsJXrj5nsl7QNCivrsJXsoJXsi50NCivrsJXsi6DsiKANCivrsJXsmrDssqANCivrsJXrj5nsmIENCivrsJXrs5HshKANCivrsJXsoJXsmKUNCivrsJXrgpnsnbUNCivrsJXrj5nsmqkNCivrsJXshJ3soJUNCivrsJXquLDrj5kNCivrsJXsmKXtmLgNCivrsJXrj5nsmrENCivrsJXsmIHsi50NCivrsJXrjIDtmIQNCivrsJXstqntg50NCivrsJXrj5nsmrQNCivrsJXrs7XsnbQNCivrsJXsooXrp4wNCivrsJXquLDsobANCivrsJXrj5nsnbwNCivrsJXsnqztmJUNCivrsJXrp5DsiJgNCivrsJXqs4TsiJgNCivrsJXrj5nsnbwNCivrsJXsg4Hsl7ANCivrsJXtg5zquLANCivrsJXsoJDsiJwNCivrsJXrj5nsnpANCivrsJXsmqnrjZUNCivrsJXrjZXqtawNCivrsJXsmIHroKgNCivrsJXrj5nsoJUNCivrsJXsoJXqt7wNCivrsJXsg4HtlZwNCivrsJXtnaztmLgNCivrsJXrj5nspIANCivrsJXsnqzshLENCivrsJXqsr3shLENCivrsJXrjZXsi6QNCivrsJXrj5nspIANCivrsJXsmIHsoJwNCivrsJXrgqjsmrENCivrsJXsmqntmZgNCivrsJXrj5nspIANCivrsJXtlbTtnawNCivrsJXsnqzsmrANCivrsJXrp5DrsLANCivrsJXrj5nsspwNCivrsJXssqDsnKgNCivrsJXqsJXqt7wNCivrsJXsg4HsnbwNCivrsJXrj5nssqANCivrsJXqsJHtmZgNCivrsJXsmIHrk50NCivrsJXrrLjsl7QNCivrsJXrj5nssqANCivrsJXsmIHrtIkNCivrsJXsmIHsiJgNCivrsJXtjJDtmIQNCivrsJXrj5nstpgNCivrsJXsnbjsmIENCivrsJXsoJXqt5wNCivrsJXsnYTqs6ANCivrsJXrj5ntl4wNCivrsJXtg53snbwNCivrsJXsg4HsmrANCivrsJXsnKTsmIENCivrsJXrkZDsmqkNCivrsJXshLHrjZUNCivrsJXsoJXtmZQNCivrsJXsiJzsiJkNCivrsJXrkZDsnbUNCivrsJXsnZjsnbQNCivrsJXqsJHrr7wNCivrsJXtg5zsiKANCivrsJXrkZDtl4wNCivrsJXrp4zsoIQNCivrsJXqtIDsm5ANCivrsJXspIDsmKUNCivrsJXrkZDtmLgNCivrsJXsuZjsi50NCivrsJXqtZDtmLgNCivrsJXssL3tmZgNCivrsJXrkZDtmZgNCivrsJXsmIHrrLgNCivrsJXsmIHrp4wNCivrsJXsmqntmZgNCivrsJXrkZDtnawNCivrsJXsoJDsmIENCivrsJXrhbjsiJwNCivrsJXsnqztmIQNCivrsJXrk53qt7wNCivrsJXsp4TsiJgNCivrsJXshKDsi50NCivrsJXsiJzsi50NCivrsJXrnpjtlZgNCivrsJXssL3si50NCivrsJXquLDsmqkNCivrsJXsnqztmqgNCivrsJXrp4nrnpgNCivrsJXquLjtmLgNCivrsJXrrLjsi50NCivrsJUg7IiYDQor67CV66eM6recDQor67CV7KCV7ISdDQor67CV7Z2s7IicDQor67CV7KCV7J6QDQor67CV66eM6recDQor67CV7IOB7Z2sDQor67CV7KCV7KSADQor67CV6reA7Jq0DQor67CV66eM7ISdDQor67CV7JiB7LGEDQor67CV66eQ7JiBDQor67CV67OR6rCRDQor67CV66eM7IiYDQor67CV7J6s7Z2sDQor67CV7ZmU7JuFDQor67CV7ZiE7JikDQor67CV66eM7IiYDQor67CV7YOc7ISdDQor67CV7ZiE7JqpDQor67CV7Jqx6recDQor67CV66eM7IiYDQor67CV7KKF7JqpDQor67CV64+Z7LKgDQor67CV67OR64yADQor67CV66eM7IusDQor67CV7YOc7JuQDQor67CV7ZWc64+ZDQor67CV7ZW07ZmYDQor67CV66eM7KCVDQor67CV7Z2s7JqpDQor67CV7JiB7IicDQor67CV7YOc7KKFDQor67CV66eM7KGwDQor67CV7J287Zi4DQor67CV7IaM6rK9DQor67CV7IiY6rOkDQor67CV66eM7LacDQor67CV7JiB7ZWZDQor67CV67OR7JiBDQor67CV66y07KO8DQor67CV66eM7Z2gDQor67CV7KCV7LmZDQor67CV6rOE66CsDQor67CV7JuU7IudDQor67CV66eQ7IiYDQor67CV6rec7Z2sDQor67CV7ZW07LacDQor67CV64yA7LSIDQor67CV66eQ7IicDQor67CV7J2A7IiYDQor67CV7Jqp6recDQor67CV7LCo7KGwDQor67CV66eQ7IicDQor67CV67O07J20DQor67CV7ISx7ZiEDQor67CV67OR7ISdDQor67CV66eQ7KGwDQor67CV7J2E7Je0DQor67CV7Iq564KoDQor67CV6rec7Jq0DQor67CV66eQ7LacDQor67CV7YOc7IiYDQor67CV7KCQ7ZWZDQor67CV7YOc7ZalDQor67CV66eQ7ZWcDQor67CV7IaM6recDQor67CV7Iic6re8DQor67CV7Iig66qoDQor67CV66qF64+MDQor67CV6rWt7KSADQor67CV7KCV6ri4DQor67CV6rec7KeEDQor67CV66qF67SJDQor67CV7J6l7JqpDQor67CV6rSR7ISgDQor67CV7ZWc6rK9DQor67CV66qF7IudDQor67CV7ZeM7LKgDQor67CV7KCV7KO8DQor67CV6rK97JilDQor67CV66qF7JilDQor67CV7LKg7IiZDQor67CV7J2E7ZiEDQor67CV7J6E7ZGcDQor67CV66qF7JqpDQor67CV7LCo7ZmYDQor67CV7ZW07ZWcDQor67CV7LKg7YOdDQor67CV66qF7J6EDQor67CV66+87YOdDQor67CV7ZmU7Je0DQor67CV7KKF7JiBDQor67CV66qF7KeEDQor67CV7JuQ7J6sDQor67CV7ZmN7Z2sDQor67CV7ZWc7JiBDQor67CV66qF7LKgDQor67CV7IOB7IiYDQor67CV7KeE7ISgDQor67CV642V6rWQDQor67CV66qF7ZWcDQor67CV7ZWt6riwDQor67CV7KSR7LmgDQor67CV67OR7IiYDQor67CV66qF7Zi4DQor67CV64yA66GdDQor67CV7KCQ7JqpDQor67CV67O07Je0DQor67CV66qF7Zi4DQor67CV7J6s7IiYDQor67CV6rK97IStDQor67CV7IiY6rWsDQor67CV66qF7ZqMDQor67CV7J2A7J6QDQor67CV7YOc64usDQor67CV7KKF656ADQor67CV66qF7Z2sDQor67CV67OR7JikDQor67CV66y07IicDQor67CV7JiB7LKgDQor67CV66yY64WEDQor67CV7IyN6rOkDQor67CV7JiB64+MDQor67CV7KKF7IiYDQor67CV66y06ri4DQor67CV7Ja47J2RDQor67CV7KCV7ISdDQor67CV66+47ZuIDQor67CV66y07JuFDQor67CV7KCQ7JuQDQor67CV7YOc7JqpDQor67CV7LCo7IiYDQor67CV66y07JuFDQor67CV6rSR7KeEDQor67CV6rec7Jq0DQor67CV7ZmN7JqpDQor67CV66y07Zi4DQor67CV7LCo7LCsDQor67CV7KSA7ISdDQor67CV7IOB642VDQor67CV66y07ZmYDQor67CV7KKF6riwDQor67CV6rCR7JqpDQor67CV6reA6re5DQor67CV66y46rCRDQor67CV66qF6re8DQor67CV7ZiV7JqwDQor67CV6rSR7IudDQor67CV66y46raMDQor67CV7YyQ67aEDQor67CV64yA7JuQDQor67CV7Jil7ZiEDQor67CV66y46recDQor67CV67OR7ZmYDQor67CV7ZmN7LKgDQor67CV7JeF7ISgDQor67CV66y47IiYDQor67CV7IiY7Zi4DQor67CV7JiB7IudDQor67CV7ISk7JykDQor67CV66y47IudDQor67CV7ZW066CoDQor67CV7ZWE7JesDQor67CV7J2A7IudDQor67CV66y47KGwDQor67CV7JiB7IiYDQor67CV67OR7KCVDQor67CV67O066qFDQor67CV66y47KGwDQor67CV7Jq07IicDQor67CV7ISx7Zi4DQor67CV7LKc7JWFDQor67CV66y47LKgDQor67CV7Z2s7LKgDQor67CV67OR7JiBDQor67CV7KO87J20DQor67CV66y47Zi4DQor67CV7ISx7JWFDQor67CV7Jqp66CoDQor67CV7YOc7J28DQor67CV66y47Z2sDQor67CV7YyQ7KKFDQor67CV7ISd7ZiVDQor67CV64+Z7LKgDQor67CV66+47J6QDQor67CV7ISx6riwDQor67CV7ZW07IicDQor67CV7YOc6recDQor67CV66+47J6QDQor67CV7JyE64+EDQor67CV6rCV67CwDQor67CV7ZWc6rWsDQor67CV66+47J6QDQor67CV7KCV7Jq0DQor67CV7JiB642VDQor67CV7LC97Z2sDQor67CV66+47KCVDQor67CV7ISx7Zi4DQor67CV7IOB7ZiEDQor67CV7KKF7JiBDQor67CV66+47ZmUDQor67CV7Jik7Z2sDQor67CV7KCV7ZiEDQor67CV7Iig7KGwDQor67CV66+87JqwDQor67CV7KeE7IudDQor67CV7ISx66eMDQor67CV7LCo6rK9DQor67CV67Cp7J6QDQor67CV7ISx7ZmUDQor67CV642V7Y+JDQor67CV7KCc6rWsDQor67CV67KU7YOcDQor67CV67OR7IiYDQor67CV7IyN64yADQor67CV7KCV7Zi4DQor67CV67OR6rWsDQor67CV67OR7J6sDQor67CV64Ko7JiBDQor67CV7YOc66GcDQor67CV67OR6re8DQor67CV6riw7IiYDQor67CV7KCV7Z2sDQor67CV6rK97Z2sDQor67CV67OR6riwDQor67CV66qF7LC9DQor67CV7KKF7IicDQor67CV7J2A7ISgDQor67CV67OR6riwDQor67CV6rSR67O0DQor67CV7ZmU7IudDQor67CV66+4656YDQor67CV67OR6riwDQor67CV7Jil7J6QDQor67CV7YOc7Je0DQor67CV64yA67SJDQor67CV67OR64KoDQor67CV7ISd6rK9DQor67CV7Jqp7J20DQor67CV7JiB7IiYDQor67CV67OR66a9DQor67CV7Jqp7ZWcDQor67CV7KeE6rWsDQor67CV7KCV6riwDQor67CV67OR66qpDQor67CV7KCQ7J28DQor67CV7ZiE66+8DQor67CV7JiB7ZmYDQor67CV67OR7ISgDQor67CV7Iig7IudDQor67CV7Iq57JyoDQor67CV67OR7J6QDQor67CV67OR7IicDQor67CV6riI7J6QDQor67CV6rK97Jq0DQor67CV7J6s7LKgDQor67CV67OR7JqpDQor67CV7ZWc7Zi4DQor67CV7J6s7JiBDQor67CV7KCQ7JWFDQor67CV67OR7JqpDQor67CV642V7ZiEDQor67CV7JiB7IudDQor67CV7IOB642VDQor67CV67OR7KeEDQor67CV7LC97Z2sDQor67CV7ZWZ7IiYDQor67CV7J2A7IudDQor67CV67OR7LKcDQor67CV7JuQ7IudDQor67CV7IiY7J6EDQor67CV7Jqp7Zi4DQor67CV67OR7ZeMDQor67CV7J6s7IicDQor67CV66+87IiYDQor67CV7KCc7ISdDQor67CV67OR7Zi4DQor67CV6rK97IiYDQor67CV7Iic66a8DQor67CV7KCV7KKFDQor67CV67OR7Zi4DQor67CV7Jyk7KeADQor67CV7Iq57Z2sDQor67CV7KCV7IigDQor67CV67OR7Zi4DQor67CV7YOc7ZWcDQor67CV7Jqp7ZiEDQor67CV7KCV7Z2sDQor67CV67O06re8DQor67CV7ZW07J6QDQor67CV6rCI656ADQor67CV7JuF7IS4DQor67CV67O16re8DQor67CV7LaY64+EDQor67CV7Jyk7JuFDQor67CV7Jyk7IigDQor67CV67O164KcDQor67CV66qF6rWQDQor67CV7ISx7ISdDQor67CV7JyE7ISdDQor67CV67O166eMDQor67CV7ISg7JWUDQor67CV7IiY67aADQor67CV7J2066qFDQor67CV67O17JewDQor67CV7Z2s7ZmYDQor67CV7JuQ7J6QDQor67CV7KCV7KCVDQor67CV67SJ6re8DQor67CV6riw6ri4DQor67CV7KeE7Zi4DQor67CV6re86regDQor67CV67SJ6riwDQor67CV7Iic7Jq0DQor67CV7ZmN7KGwDQor67CV64+Z7Z2sDQor67CV67SJ67ORDQor67CV6rec7Z2sDQor67CV7J287KSRDQor67CV66y07IOBDQor67CV67SJ7IOBDQor67CV7J6s7IOdDQor67CV64+Z67O0DQor67CV7Iic7KCVDQor67CV67SJ7ISdDQor67CV642V6raMDQor67CV7KCc642VDQor67CVIOq4uA0KK+uwleu0iey2nA0KK+uwleyngOyhsA0KK+uwleqyveynhA0KK+uwleyImeyaqQ0KK+uwleu0ie2VmA0KK+uwleyEne2drA0KK+uwleyYgeuPjA0KK+uwleyYgeq4uA0KK+uwleu0ie2ZmA0KK+uwleykgOykgA0KK+uwleygleywrA0KK+uwleygle2YuA0KK+uwleu2hOyEoA0KK+uwleyihe2VhA0KK+uwleycpOqzpA0KK+uwleyCvO2ZmA0KK+uwleu2hOyIoA0KK+uwleyDgeuRkA0KK+uwleyYgeyLnQ0KK+uwleuPhOyjvA0KK+uwleu2hOydtA0KK+uwleq3nO2biA0KK+uwleyZhO2VmQ0KK+uwleu0ieyLnQ0KK+uwleyCvOuPmQ0KK+uwleq3nOuztQ0KK+uwleygleyLnQ0KK+uwleyasOyInA0KK+uwleyCvOyIoA0KK+uwleybkOyEsQ0KK+uwleunjOybkA0KK+uwle2DnOyCsA0KK+uwleyCvOyVlA0KK+uwleyYpOyDgQ0KK+uwle2DnO2YuA0KK+uwleyYgeuPjA0KK+uwleyCvOyhsA0KK+uwleymneyYpQ0KK+uwleyDgeyInA0KK+uwleyInOyLnQ0KK+uwleyCvOyhsA0KK+uwle2drOuTnQ0KK+uwleyehOq2jA0KK+uwleyerOuqqA0KK+uwleyCvOy2nA0KK+uwleynhOyerA0KK+uwleyYgeyynA0KK+uwleq0ke2drA0KK+uwleyCvO2XjA0KK+uwleyaqeybkA0KK+uwleuPmeyyoA0KK+uwleqwleu0iQ0KK+uwleyDgeq1rA0KK+uwleyEse2VmA0KK+uwleq4sOuztQ0KK+uwleuCnOuPmQ0KK+uwleyDgeq3nA0KK+uwleq3nO2YuA0KK+uwleuqhe2ZmA0KK+uwle2aqOyaqQ0KK+uwleyDgeq3nA0KK+uwleusuOq4sA0KK+uwleqwkeyInA0KK+uwleuzteyImA0KK+uwleyDgeq3nA0KK+uwleyngOydtA0KK+uwleqyveuhgA0KK+uwleyDgeyLnQ0KK+uwleyDgeq3nA0KK+uwleyerO2YuA0KK+uwleyYge2YuA0KK+uwleyInOyehA0KK+uwleyDgeq4sA0KK+uwleqwkeuPmQ0KK+uwleyKueuCqA0KK+uwleyYgeyEoA0KK+uwleyDgeq4uA0KK+uwleyepe2ZmA0KK+uwleydvOyImA0KK+uwleyInOyErQ0KK+uwleyDgeuLrA0KK+uwleq1kOyjvA0KK+uwleq0gOyImQ0KK+uwle2VtOuNlQ0KK+uwleyDgeuPhA0KK+uwleq4uO2VmA0KK+uwle2YuOyImQ0KK+uwleydvOuegA0KK+uwleyDgeuhnQ0KK+uwleq4sO2ZmA0KK+uwleyInOyLnQ0KK+uwleydhOyekA0KK+uwleyDgeuloA0KK+uwleyImOyImA0KK+uwleuPmeybkA0KK+uwleq0keydtA0KK+uwleyDgeunjA0KK+uwle2VmeuylA0KK+uwleydhOuPmQ0KK+uwlSDsnqwNCivrsJXsg4HrspQNCivrsJXqsr3rtIkNCivrsJXtg5zsi50NCivrsJXtg5zqtZANCivrsJXsg4HshJwNCivrsJXsooXsnpANCivrsJXsnqzsnpANCivrsJXspJHsiJgNCivrsJXsg4HsiJgNCivrsJXqsr3tmLgNCivrsJXtl4zsp4QNCivrsJXsnqzsiJgNCivrsJXsg4HsiJwNCivrsJXshLHsnpANCivrsJXsnbjsiJgNCivrsJXtmITsi50NCivrsJXsg4HsiKANCivrsJXqt5zsm5ANCivrsJXsnbjsi50NCivrsJUg7ZiEDQor67CV7IOB7IudDQor67CV67OR7JqwDQor67CV7Jyk7JqpDQor67CV7ZiV7JilDQor67CV7IOB7IudDQor67CV7J2A7YOcDQor67CV7IiY7Zi4DQor67CVIO2ZlA0KK+uwleyDgeyXsA0KK+uwleyduO2YhA0KK+uwleyiheq1rA0KK+uwleyepeyDgQ0KK+uwleyDgeyXtA0KK+uwle2Pie2YuA0KK+uwle2VtO2YhA0KK+uwleyInOyYpQ0KK+uwleyDgeyYpQ0KK+uwleuzkeq4sA0KK+uwleuCqOynhA0KK+uwleu0ieuFhA0KK+uwleyDgeyaqQ0KK+uwleuNle2YuA0KK+uwleunkO2biA0KK+uwleybkOyghA0KK+uwleyDgeyaqQ0KK+uwleunjOuPjA0KK+uwle2DnOyjvA0KK+uwleuqheyyoA0KK+uwleyDgeyasQ0KK+uwleyYgeyyoA0KK+uwleyDgey2nA0KK+uwleyYgeq3vA0KK+uwleyDgeycpA0KK+uwleyImOyInA0KK+uwleygleyDgQ0KK+uwle2DnOyImA0KK+uwleyDge2DnA0KK+uwleyaqeudvQ0KK+uwleyYgeyImA0KK+uwleydvO2ZmA0KK+uwleyDge2DnA0KK+uwleydgOyYpA0KK+uwleuLrOyImA0KK+uwleyMjeymnQ0KK+uwleyDge2YhA0KK+uwleyaqeyImA0KK+uwleygleyekA0KK+uwleuPmeq3nA0KK+uwleyDge2YuA0KK+uwleynhOybkA0KK+uwleyYgeyhsA0KK+uwle2MkOyImA0KK+uwleyDge2ZjQ0KK+uwleydmOyImA0KK+uwle2DnOyerA0KK+uwleuqheuqqA0KK+uwleyDge2biA0KK+uwleuylOq3nA0KK+uwleyYgeq1kA0KK+uwleyerOyekA0KK+uwleyDge2drA0KK+uwleuNleyImA0KK+uwle2aqOyImQ0KK+uwleyiheynhA0KK+uwleyDge2drA0KK+uwleyImOyEnQ0KK+uwle2VhO2YuA0KK+uwle2DnO2YhA0KK+uwleyEneq3nA0KK+uwleyYge2YuA0KK+uwleyCvOybkA0KK+uwleq3nOyEnQ0KK+uwleyEneq3vA0KK+uwleydvOyImA0KK+uwleyDgeq4sA0KK+uwleykgOuNlQ0KK+uwleyEneuPmQ0KK+uwleuRkO2ZmA0KK+uwleygle2YhA0KK+uwleq3nOyyoA0KK+uwleyEneyLnQ0KK+uwley5oO2VmA0KK+uwleyduO2VmA0KK+uwleuzkeuPmQ0KK+uwleyEneyyoA0KK+uwley2mOq3nA0KK+uwle2DnO2drA0KK+uwleuPmeyhsA0KK+uwleyEoOyYgQ0KK+uwleyDgey2nA0KK+uwleyDge2drA0KK+uwleuzkeuCqA0KK+uwleyEoOyYpQ0KK+uwleuzkeyLnQ0KK+uwleuNleq1rA0KK+uwleuCqOydtQ0KK+uwleyEoOynhA0KK+uwleyXsOyInA0KK+uwleyYgeyXsA0KK+uwleyDgeyYgQ0KK+uwleyEoO2YuA0KK+uwleyDgeyaqQ0KK+uwleyepeuhnQ0KK+uwleywveyynA0KK+uwleyEseqzpA0KK+uwleydvOyImA0KK+uwle2DnOyhsA0KK+uwleyerOyVoA0KK+uwleyEseq1rA0KK+uwleydvOybkA0KK+uwleygleuztA0KK+uwleyYgeybkA0KK+uwleyEseq3nA0KK+uwleyerOyEuA0KK+uwleyYge2YuA0KK+uwleydgOybkA0KK+uwleyEseq3nA0KK+uwleygleusuA0KK+uwleycpOyyoA0KK+uwleq3nOyEsQ0KK+uwleyEseq3nA0KK+uwleyDgeydtQ0KK+uwleyYgeyYgQ0KK+uwleyiheyhsA0KK+uwleyEseq4sA0KK+uwleq4sO2ZlA0KK+uwleyImOuNlQ0KK+uwleuMgOq3oA0KK+uwleyEseq4sA0KK+uwleq3nOykgA0KK+uwleyasOyEnQ0KK+uwleygleyXsA0KK+uwleyEseuCqA0KK+uwleynhOyehA0KK+uwleyGjOyjvA0KK+uwleydvOuhnQ0KK+uwleyEseuLrA0KK+uwleuvuO2YuA0KK+uwlSDquIgNCivrsJXshLjsl7QNCivrsJXshLHrk50NCivrsJXrj5nsmrENCivrsJXshJ3tg50NCivrsJXshKDrjZUNCivrsJXshLHrk50NCivrsJXqtIDrtoQNCivrsJXtlYTsiJgNCivrsJXqt7zssq0NCivrsJXshLHro6ENCivrsJUg7JikDQor67CV7ISg7IicDQor67CV64+Z7KKFDQor67CV7ISx67CwDQor67CV7KKF7YOcDQor67CV7IOB67CwDQor67CV7J6s7JWgDQor67CV7ISx67CwDQor67CV7ISd7IudDQor67CV7Jqp7Zy0DQor67CV7KCQ7JewDQor67CV7ISx67CwDQor67CV7KKF7ZqMDQor67CV66eM7IicDQor67CV7KeE64+ZDQor67CV7ISx67CwDQor67CV66qF64yADQor67CV6rSR7JWUDQor67CV64+Z6ri4DQor67CV7ISx67CwDQor67CV7KCQ7YOcDQor67CV7Jyk7JqpDQor67CV7Zmp7IudDQor67CV7ISx67KUDQor67CV7LC97IudDQor67CV7ZWE7JqwDQor67CV7KCV7JWUDQor67CV7ISx67SJDQor67CV6raM7LKgDQor67CV7J247KGwDQor67CV7YOc6raMDQor67CV7ISx67aEDQor67CV7J287Z2sDQor67CV7J6s7IicDQor67CV7Jq07IOBDQor67CV7ISx67mIDQor67CV7IOB7IiYDQor67CV7KKF7KO8DQor67CV7KCQ7LKgDQor67CV7ISx7IicDQor67CV66qF7IiZDQor67CV7ZmN7Z2sDQor67CV66+47ZmUDQor67CV7ISx7IicDQor67CV7J247J6QDQor67CV7JiB7Z2gDQor67CV7KCV7J6EDQor67CV7ISx7IudDQor67CVIO2VmQ0KK+uwleyCrOq3nA0KK+uwleyEse2biA0KK+uwleyEseyLpA0KK+uwleyEseyImA0KK+uwleuvvOyLnQ0KK+uwle2DgOq1rA0KK+uwleyEseyWkQ0KK+uwleyYpe2DnA0KK+uwle2VhO2ZlA0KK+uwleyduOyIoA0KK+uwleyEseyXtA0KK+uwleyGoeq3vA0KK+uwleydvOyXsA0KK+uwle2Yge2YuA0KK+uwleyEseyXtA0KK+uwleyYpeyInA0KK+uwleyDgeyhsA0KK+uwleynhOyLpA0KK+uwleyEseyaqQ0KK+uwleyEseyekQ0KK+uwleyduOyImA0KK+uwleuvuOq1kA0KK+uwleyEseycqA0KK+uwleuRkOyXtA0KK+uwle2ZqeyYpA0KK+uwleyImOu0iQ0KK+uwleyEseydvA0KK+uwleu0ie2ZmA0KK+uwleyEneuNlQ0KK+uwleq4iOyasA0KK+uwleyEseyyoA0KK+uwle2dpeywqA0KK+uwleqwkeyEnQ0KK+uwleyiheq4uA0KK+uwleyEse2VnA0KK+uwleygle2YuA0KK+uwle2VhOyImA0KK+uwleq3nOuPhA0KK+uwleyEse2YhA0KK+uwleq4sOuvvA0KK+uwleyiheu0iQ0KK+uwleyiheyXtA0KK+uwleyEse2YhA0KK+uwleydvOyehA0KK+uwleydvOqyvQ0KK+uwleywveyImA0KK+uwleyEse2YuA0KK+uwle2DnOyEnQ0KK+uwle2DnOyaqQ0KK+uwleyerOq4sA0KK+uwleyEse2YuA0KK+uwle2DnOq3oA0KK+uwle2YnOyEnQ0KK+uwleustOybkA0KK+uwleyEse2ZmA0KK+uwleyerOyInA0KK+uwle2DnOyInA0KK+uwleyYgeq4sA0KK+uwleyEse2drA0KK+uwle2YuOykgA0KK+uwleyGjOyaqQ0KK+uwleq3nOyImA0KK+uwleyEuO2VmQ0KK+uwleyYgeu2gA0KK+uwle2MkOyXtA0KK+uwleunjOybhQ0KK+uwleyEuO2XjA0KK+uwle2DnOyxhA0KK+uwleycpO2ajA0KK+uwleyYgeq3nA0KK+uwleyGjOyEoA0KK+uwle2WieyyoA0KK+uwley2qeyCvA0KK+uwleyLne2YhA0KK+uwleyGoeqyrA0KK+uwleyYgeyasA0KK+uwley2mOydtA0KK+uwleyEse2YhA0KK+uwleyGoeyXsA0KK+uwleu0ieyyoA0KK+uwleuqve2YuA0KK+uwleyYgeyasA0KK+uwleyImOqwkQ0KK+uwleyduOyLpA0KK+uwleuMgOyImA0KK+uwleqwleyihQ0KK+uwleyImOqxuA0KK+uwleyerOyImA0KK+uwleynhO2ZlA0KK+uwleuRkO2XjA0KK+uwleyImOqyvQ0KK+uwleyEseynhA0KK+uwleyerOyLnQ0KK+uwleq3nOyatA0KK+uwleyImOq3nA0KK+uwleyEoOyEsQ0KK+uwleywveuegA0KK+uwleuzkeuPhA0KK+uwleyImOuqhQ0KK+uwleyDgeyyoA0KK+uwleuCqOyEsQ0KK+uwleyEoOq4uA0KK+uwleyImOuqqQ0KK+uwle2DnOuNlQ0KK+uwleyCvOq4uA0KK+uwleygle2ZjQ0KK+uwleyImOuvvA0KK+uwleyImOuPhA0KK+uwle2XjOyXtA0KK+uwleyEseyXtA0KK+uwleyImOuztQ0KK+uwleynhOqzpA0KK+uwleywqOyaqQ0KK+uwleustOumrA0KK+uwleyImOyXtA0KK+uwleyEneyInA0KK+uwleuzkeyasA0KK+uwleyerOyEoA0KK+uwleyImOybkA0KK+uwleyImOyLnQ0KK+uwleyYgeyImA0KK+uwleu0ieyImQ0KK+uwleyImOywrA0KK+uwlSDsiJgNCivrsJXsmrDsl7ANCivrsJXtlZnsi6ANCivrsJXsiJjsspwNCivrsJXslaDrs7UNCivrsJXsnKTsmrANCivrsJXrs7XruYgNCivrsJXsiJjtlZkNCivrsJXsnqztjJQNCivrsJXsooXqs6QNCivrsJXtmY3quLgNCivrsJXsiJjtlZwNCivrsJXqtJHsmqkNCivrsJXsooXqt7wNCivrsJXrrLjsnbgNCivrsJXsiJjtlqUNCivrsJXsnqztmZgNCivrsJXrs5Htg50NCivrsJXqsbTsnqwNCivrsJXsiJjtmLgNCivrsJXquIjsnpANCivrsJXsoJXqta0NCivrsJXrp4zstpwNCivrsJXsiJjtnawNCivrsJXsnqzsiJgNCivrsJXsmIHsmrANCivrsJXsnqzsl7QNCivrsJXsiJntmIQNCivrsJXshLHrrLgNCivrsJXrgpnquLgNCivrsJXsgqztnLQNCivrsJXsiJntnawNCivrsJXsnqzssqANCivrsJXtg5zsl7QNCivrsJXsm5TrqqgNCivrsJXsiJzqsJENCivrsJXshLHrj5kNCivrsJXsooXshJ0NCivrsJXtlbTsi50NCivrsJXsiJzqtIANCivrsJXtjJDsnbQNCivrsJXsm5TsnbQNCivrsJXqsJXsspwNCivrsJXsiJzquIgNCivrsJXssqDqt6ANCivrsJXtg5zsi50NCivrsJXsooXsi50NCivrsJXsiJzquLgNCivrsJXso7zshLENCivrsJUg7JuFDQor67CV7KCV7JuFDQor67CV7Iic64KoDQor67CV7Iic7IiYDQor67CV7ISd7IudDQor67CV64+E7JiBDQor67CV7Iic642VDQor67CV7J6s7KGwDQor67CV7ZWY7ZmYDQor67CV7Zi47JuQDQor67CV7Iic64+EDQor67CV66y07IiYDQor67CV7IOB7IiZDQor67CV7JiB64+ZDQor67CV7Iic64+MDQor67CV7KKF67CwDQor67CV7ISd7IicDQor67CV7ZW06ri4DQor67CV7Iic64+ZDQor67CV7ZiE7IiYDQor67CV6rec7ZWYDQor67CV7J287YOdDQor67CV7Iic65OdDQor67CV7JiB7J24DQor67CV7ISx7Zi4DQor67CV7Iq57J6sDQor67CV7Iic67O1DQor67CV7J2M7KeEDQor67CV7Jqp642VDQor67CV7LCo7Jq0DQor67CV7Iic7ISdDQor67CV7IOB7J20DQor67CV7YOc7Je0DQor67CV7J247IiYDQor67CV7Iic7JWUDQor67CV7KeE6rK9DQor67CV7IOB7IiYDQor67CV7JiB7KO8DQor67CV7Iic7JilDQor67CV7Jq07JykDQor67CV7Jqp656ADQor67CV6rSR66qpDQor67CV7Iic7JilDQor67CV7JiB7ZiEDQor67CV7Jqp7IiYDQor67CV7KCQ7JqwDQor67CV7Iic7JilDQor67CV7LCs7J6QDQor67CV6rSR7JqpDQor67CV7KKF7KKFDQor67CV7Iic7JilDQor67CV7KSR7IudDQor67CV67SJ7ISxDQor67CV7Jew66qFDQor67CV7Iic7JilDQor67CV7IaM7IicDQor67CV7J2A7ZuIDQor67CV7LC96rCRDQor67CV7Iic7JilDQor67CV642V7KCcDQor67CV7ZW07YOcDQor67CV7Jik7JqpDQor67CV7Iic7J6EDQor67CV7ISx7JqpDQor67CV7IiY7ZeMDQor67CV66+464yADQor67CV7Iic7J6QDQor67CV7ISg7Zi4DQor67CV7JWI7JWUDQor67CV6riw7KCQDQor67CV7Iic7J6QDQor67CV6rK97ZiEDQor67CV7KKF7KCcDQor67CV7Lmg7IiZDQor67CV7Iic7J6QDQor67CV7ZWc7IicDQor67CV7Jm47KGwDQor67CV7Lap7JuQDQor67CV7Iic7J6QDQor67CV7Jik6recDQor67CV7KeE7ISgDQor67CV7JiB7IicDQor67CV7Iic7KGwDQor67CV7Iq57JewDQor67CV7LKg6rCVDQor67CV7Jqp7LKcDQor67CV7Iic7KeBDQor67CV7Jqp66qpDQor67CV7LC96rWtDQor67CV7KCV7YOcDQor67CV7Iic7LCsDQor67CV7ZmN7IigDQor67CV7KeE67O1DQor67CV7JiB7JqxDQor67CV7Iic7LKcDQor67CVIOyLnQ0KK+uwleyerOyLnQ0KK+uwleyaqeykkQ0KK+uwleyInO2YuA0KK+uwle2aqOuwsA0KK+uwleyGjOq4sA0KK+uwleydvOuCqA0KK+uwleyInO2drA0KK+uwleq0keyEnQ0KK+uwleq3nOyasA0KK+uwleq4sOyDgQ0KK+uwleyIoO2XjA0KK+uwle2YhOyLnQ0KK+uwleq2jO2YuA0KK+uwleuqheu2hA0KK+uwleyKueq3nA0KK+uwle2VhOyImA0KK+uwleyngeyYgQ0KK+uwleyjvO2VnA0KK+uwleyKueuMgA0KK+uwleq4sO2DnA0KK+uwleyInOyekA0KK+uwleyInOydvA0KK+uwleyKueumvQ0KK+uwleyaqe2YuA0KK+uwleyEse2YuA0KK+uwleydvO2VnA0KK+uwleyKueuqqQ0KK+uwleuzkeywrA0KK+uwleuPhOunjA0KK+uwleyImOq4iA0KK+uwleyLoOybhQ0KK+uwleuPmeyEnQ0KK+uwleuPmeu2gA0KK+uwle2DnO2YhA0KK+uwleyLoOycqA0KK+uwleyEneyYgQ0KK+uwleuMgOuPhA0KK+uwle2DnOyImQ0KK+uwleyLoOygnA0KK+uwleyInO2drA0KK+uwleyDgeq3oA0KK+uwleyYgeyImA0KK+uwleyLoOyngA0KK+uwleqyve2YhA0KK+uwleunjOyjvA0KK+uwleyihe2DnQ0KK+uwleyLoO2VmA0KK+uwleyEoO2YuA0KK+uwleygkOydvA0KK+uwleuqheyInA0KK+uwleyLoO2ajA0KK+uwleyDgeyyoA0KK+uwleqyveyVlA0KK+uwleunkOyatA0KK+uwleyMjeyIoA0KK+uwleyiheyVlA0KK+uwle2drOyImQ0KK+uwleygleuztQ0KK+uwleyVlOu2gA0KK+uwleyaqeq4uA0KK+uwleyihe2drA0KK+uwleyepeyhsA0KK+uwleyWkeyInA0KK+uwleuRkOycpA0KK+uwleyyreyLnQ0KK+uwley5oOykkQ0KK+uwleyWke2ajA0KK+uwleuzkeyhsA0KK+uwleunjOq4sA0KK+uwleyjvO2YuA0KK+uwleyWuOq3nA0KK+uwleyDgeunjA0KK+uwleyerOyEsQ0KK+uwleyjvOujoQ0KK+uwleyWuOyImQ0KK+uwleunjOyImA0KK+uwle2ZjeudvQ0KK+uwleq4iOyEnQ0KK+uwleyWuOyXhQ0KK+uwleuCqOynhA0KK+uwleq4iOyDgQ0KK+uwleyaqeyImA0KK+uwleyXsOyImA0KK+uwleyatOuqqQ0KK+uwle2DnOyEsQ0KK+uwleunjOq2jA0KK+uwleyXsOyInA0KK+uwleuzkeyEsQ0KK+uwleyDgeyYpA0KK+uwleygkO2YuA0KK+uwleyXsOyLrA0KK+uwleyYgeyEoA0KK+uwle2DnOuNlQ0KK+uwle2MlOyLnQ0KK+uwleyXsOyaqQ0KK+uwleyhsOunkA0KK+uwle2DnOuPhA0KK+uwleyDgeyhsA0KK+uwleyXsOywqA0KK+uwleyerOuztQ0KK+uwleyKue2biA0KK+uwleynhOuegA0KK+uwleyXsO2ZqQ0KK+uwle2Vme2YuA0KK+uwleuqheuegA0KK+uwleygleq4sA0KK+uwleyXsO2doA0KK+uwleyEoOyasA0KK+uwle2drOyInA0KK+uwleygleyekQ0KK+uwleyXsO2drA0KK+uwleydgOyInA0KK+uwle2DnOuqhQ0KK+uwleygleyblA0KK+uwleyYgeq3nA0KK+uwleyihe2drA0KK+uwleynhOycpA0KK+uwleyDgeynhA0KK+uwleyYgeq4uA0KK+uwleq3gOuqqA0KK+uwleustOyasQ0KK+uwleydmOynhA0KK+uwleyYgeuNlQ0KK+uwleyepeyLnQ0KK+uwleyCvOq1sA0KK+uwleyYgeybhQ0KK+uwleyYgeuTnQ0KK+uwle2VhOyduA0KK+uwle2drOyLnQ0KK+uwleygleyImA0KK+uwleyYgeuegA0KK+uwleyLoOyYpA0KK+uwleyerOqxuA0KK+uwleyEseyEoA0KK+uwleyYgeuhnQ0KK+uwleuPmeybkA0KK+uwleq4sOydtA0KK+uwleuNleyyoA0KK+uwleyYgeu0iQ0KK+uwleuNleyInA0KK+uwleywveuPhA0KK+uwleuzkeydvA0KK+uwleyYgeyEoA0KK+uwleuPmeyImA0KK+uwleyGjOyaqQ0KK+uwle2VmeynhA0KK+uwleyYgeyEoA0KK+uwley2mOyXtA0KK+uwleuztOyImA0KK+uwleyVoOqyvQ0KK+uwleyYgeyEoA0KK+uwleyihe2cmA0KK+uwle2VmOq4sA0KK+uwleynhOydtA0KK+uwleyYgeyErQ0KK+uwleuzkeyXsA0KK+uwleygkO2VmQ0KK+uwle2DgOq3nA0KK+uwleyYgeyImA0KK+uwleyYgeyVhQ0KK+uwleyYgeq3oA0KK+uwleq3nO2YuA0KK+uwleyYgeyIoA0KK+uwleq3nOq3nA0KK+uwleykgOyLnQ0KK+uwleyerOyImA0KK+uwleyYgeyLnQ0KK+uwleyInOyImA0KK+uwleyiheyhsA0KK+uwle2YleynhA0KK+uwleyYgeyLnQ0KK+uwleyerOyekA0KK+uwleunjOq4sA0KK+uwleyEseyEoA0KK+uwleyYgeyYpA0KK+uwleyerO2YuA0KK+uwleykke2ZlA0KK+uwley2qeyLnQ0KK+uwleyYgeyasA0KK+uwleyInOuylA0KK+uwleq0keyEsQ0KK+uwleuzke2YhA0KK+uwleyYgeyasQ0KK+uwleuPme2ZmA0KK+uwleynhO2DnA0KK+uwleyYgeuqhQ0KK+uwleyYgeydtA0KK+uwleqyve2ZqQ0KK+uwle2DnO2biA0KK+uwleyYgeycpA0KK+uwleyYgeydvA0KK+uwleq3nOuhnQ0KK+uwleqyveu0iQ0KK+uwleyEneyImA0KK+uwleyYgeyekA0KK+uwleuCqO2YuA0KK+uwleyInOyEnA0KK+uwleyEseq0gA0KK+uwleyYgeyerA0KK+uwleywveyLnQ0KK+uwleusuOyImA0KK+uwle2VtOyEnQ0KK+uwleyYgeygnA0KK+uwleyYpOyerA0KK+uwle2VmOyerA0KK+uwleyjvOq3nA0KK+uwleyYgeyhsA0KK+uwleq0keybkA0KK+uwleu0ie2DnA0KK+uwleq4sOqwkQ0KK+uwleyYgeyjvA0KK+uwleygleyYpQ0KK+uwleusuO2biA0KK+uwleydtOyYgQ0KK+uwleyYgeykgA0KK+uwleuNleyehA0KK+uwleuzteq1rA0KK+uwleyCvOyImA0KK+uwleyYgeyyoA0KK+uwleyEse2ZmA0KK+uwleyerOyEnQ0KK+uwleygleyVhQ0KK+uwleyYgeyyoA0KK+uwleuPmeusuA0KK+uwleyLnOqysA0KK+uwleyerOybkA0KK+uwleyYgeyyoA0KK+uwle2DgeyInA0KK+uwleyEneqyvQ0KK+uwleyatOuPjA0KK+uwleyYgeyyoA0KK+uwleywveyEnQ0KK+uwleunkOyImA0KK+uwleq4sO2DnA0KK+uwleyYgey2mA0KK+uwleyerOusuA0KK+uwley+jO2ZmA0KK+uwleyyreqyvQ0KK+uwleyYgey2nA0KK+uwleyImO2DnQ0KK+uwleyDgeuFgA0KK+uwleq3nOuzkQ0KK+uwleyYge2DnA0KK+uwleykkeyaqQ0KK+uwleyerOyEnQ0KK+uwleyYgeyhsA0KK+uwleyYge2VhA0KK+uwleyYgeu0iQ0KK+uwleuLrOyImA0KK+uwleybkOyKuQ0KK+uwleyYge2VmA0KK+uwleuPmeyXtA0KK+uwleyYgeuztQ0KK+uwleyInOyImA0KK+uwleyYge2ZlA0KK+uwleynhOu2hA0KK+uwleuzkeyekA0KK+uwleunjOyLrA0KK+uwleyYge2ZlA0KK+uwleygleqyvQ0KK+uwleyepe2drA0KK+uwleykke2drA0KK+uwleyYge2ZlA0KK+uwleyDgeyImQ0KK+uwleykkeyImQ0KK+uwleq0keyhsA0KK+uwleyYge2ZmA0KK+uwleuCqOyYpA0KK+uwleyjvOyYpQ0KK+uwleyblOyjvA0KK+uwleyYge2ZmA0KK+uwley5oOuTnQ0KK+uwleyasOuztQ0KK+uwleunjOydgA0KK+uwleyYge2cmA0KK+uwleq3gO2YuA0KK+uwleyiheyImA0KK+uwleu0ieugqA0KK+uwleyYpOuTnQ0KK+uwleq0keyYpQ0KK+uwle2Vme2DnA0KK+uwleyiheyEnQ0KK+uwleyYpOyInA0KK+uwleuqhe2DnQ0KK+uwleyYgeyImA0KK+uwle2VmeydgA0KK+uwleyYpOyjvA0KK+uwley2mO2YuA0KK+uwleyKueyErQ0KK+uwley2mO2YuA0KK+uwleyYpeq3oA0KK+uwleygle2ZlA0KK+uwleynhOyKuQ0KK+uwleyYgeykkQ0KK+uwleyYpeuPmQ0KK+uwle2XjOuNlQ0KK+uwleyYgeyXtA0KK+uwleq4uOyInA0KK+uwleyYpeyImA0KK+uwleyImOyYgQ0KK+uwleq4sOq3vA0KK+uwleyerO2ZjQ0KK+uwleyYpeyInA0KK+uwleyXsOyZhA0KK+uwleuzkeuNlQ0KK+uwleydgOuemA0KK+uwleyYpeyInA0KK+uwleyerOyEuA0KK+uwleydkeyInA0KK+uwleuzteyErQ0KK+uwleyYpeydtA0KK+uwleyasOyYgQ0KK+uwleuPme2DnA0KK+uwleyYgeyZhA0KK+uwleyYpeyekA0KK+uwleqyveq3nA0KK+uwleqyveuzkQ0KK+uwleyEseyYgQ0KK+uwleyYpe2DnA0KK+uwleyGjO2ZjQ0KK+uwleuPme2YhA0KK+uwleyEse2YgQ0KK+uwleyZleugrA0KK+uwleyiheyEoA0KK+uwle2ZmO2VmA0KK+uwleyasOykgA0KK+uwleyZuOyImA0KK+uwle2YleyekA0KK+uwleyasOq4sA0KK+uwleunjOyEnQ0KK+uwleyZuO2ZmA0KK+uwleyDge2YhA0KK+uwleuRkOq1rQ0KK+uwleyaqeyEoA0KK+uwleyaqeq0gA0KK+uwleuPme2YuA0KK+uwleyYge2ZmA0KK+uwleyiheycqA0KK+uwleyaqeq1rA0KK+uwle2MkOykgA0KK+uwle2YhO2YuA0KK+uwleygleustQ0KK+uwleyaqeq2jA0KK+uwleyKueuNlQ0KK+uwlSDtmZQNCivrsJXsnqztmLgNCivrsJXsmqnqt7wNCivrsJXsnKDsmIENCivrsJXrs5HtnawNCivrsJXri6zrsLANCivrsJXsmqnqt7wNCivrsJXrqoXsg4ENCivrsJXtg5ztg50NCivrsJXrs7XssYQNCivrsJXsmqnrjIANCivrsJXsiJjquLgNCivrsJXrrLjrqqkNCivrsJXqtJHtmLgNCivrsJXsmqnrj4QNCivrsJXrp4zqtIANCivrsJXsoJDsmYQNCivrsJXsjI3smKUNCivrsJXsmqnrp4wNCivrsJXrp5Drj4QNCivrsJXsiJntnawNCivrsJXssL3rp4wNCivrsJXsmqnrs7QNCivrsJXsmIHsmrANCivrsJXrj5nqtawNCivrsJXtnazquLANCivrsJXsmqnshJ0NCivrsJXquLDspIANCivrsJXrrJjsp4QNCivrsJXsooXsiJwNCivrsJXsmqnsiJgNCivrsJXsnZjtnawNCivrsJXsmqnrqqgNCivrsJXsmqnqtIANCivrsJXsmqnsiJgNCivrsJXtlbTspIANCivrsJXsg4HsmIENCivrsJXsiJnstpgNCivrsJXsmqnsiJgNCivrsJXso7ztlZwNCivrsJXquLDqt5wNCivrsJXsmZXtmZgNCivrsJXsmqnsiJwNCivrsJXstpjsi50NCivrsJXssL3sl7QNCivrsJXsmIHrp4wNCivrsJXsmqnslZQNCivrsJXqsr3quLANCivrsJXsg4Htg5wNCivrsJXrgpntmY0NCivrsJXsmqnspIANCivrsJXsl7Dsi50NCivrsJXtg5zro6ENCivrsJXspIDsiJgNCivrsJXsmqnspIANCivrsJXsg4HroZ0NCivrsJXrj5nsl7QNCivrsJXsmIHqt5wNCivrsJXsmqnssqANCivrsJXsmIHsi50NCivrsJXsmrDsiJgNCivrsJXsnqzqtIANCivrsJXsmqnssqANCivrsJXrs5HtmZgNCivrsJXslZTrtIkNCivrsJXsg4Hsl7ANCivrsJXsmqntlZkNCivrsJXrr7zsl7ANCivrsJXsmIHqta0NCivrsJXsg4Hsl7ANCivrsJXsmqntlZkNCivrsJXquLDsiJwNCivrsJXsmIHqta0NCivrsJXsnqXshJ0NCivrsJXsmqntlZwNCivrsJXsiJjrgqgNCivrsJXsooXtmLgNCivrsJXrp4zshLENCivrsJXsmqntl4wNCivrsJXtg5zsmKQNCivrsJXrtInspJENCivrsJXsnoTroKwNCivrsJXsmqntl4wNCivrsJXtmJzsiKANCivrsJXrj5nrs7QNCivrsJXsm5DsnoQNCivrsJXsmqntmIQNCivrsJXrkZDsiJgNCivrsJXstpjquLANCivrsJXqtJHsm4UNCivrsJXsmqntmLgNCivrsJXtg5zsg50NCivrsJXtg5ztnawNCivrsJXsg4Hrj4wNCivrsJXsmqntmLgNCivrsJXtjJDslZQNCivrsJXsmqnquLgNCivrsJXsiJjsnbwNCivrsJXsmrDrqqkNCivrsJXstpjtmIQNCivrsJXtjJDsnbwNCivrsJXtlZjqsr0NCivrsJXsmrDrr7gNCivrsJXqsr3snpANCivrsJXrj5nqt7wNCivrsJXsg4HsiJgNCivrsJXsmrDsi50NCivrsJXsnqXsiJwNCivrsJXspJHsi50NCivrsJXsnqXtmLgNCivrsJXsmrTtmZgNCivrsJXshLHqtowNCivrsJXsmIHtmZgNCivrsJXqsr3tmLgNCivrsJXsm5DqtawNCivrsJXsooXsiJgNCivrsJXsmqnsobANCivrsJXqtJHshJ0NCivrsJXsm5DshJ0NCivrsJXsooXrr7wNCivrsJXsoJXshJ0NCivrsJXqtJHsiJgNCivrsJXsm5DshJ0NCivrsJXsmIHsobANCivrsJXshKDsnbQNCivrsJXrqoXrr7gNCivrsJXsm5Dsl6wNCivrsJXqsr3sobANCivrsJXsmIHqsJENCivrsJXsiJjspJENCivrsJXsm5DsnbQNCivrsJXsg4HtmLgNCivrsJXsp4TrqqgNCivrsJXsnZjqt7wNCivrsJXsm5DsooUNCivrsJXqsJXtg4ENCivrsJXsp4DtmIQNCivrsJXsnbXsiKANCivrsJXsm5DsooUNCivrsJXquLDtmLgNCivrsJXsmIHquLANCivrsJXshLHrnbwNCivrsJXsm5Dtg5wNCivrsJXsg4HssqANCivrsJXtmLjqt5wNCivrsJXsmqntmY0NCivrsJXsm5DtlZkNCivrsJXsnbztnawNCivrsJXrp4zsiJwNCivrsJXsoJXtlqUNCivrsJXsm5DtmowNCivrsJXssqDsobANCivrsJXrrLjtmJUNCivrsJXspJHssYQNCivrsJXsm5TrgqgNCivrsJXsmIHsm5ANCivrsJXsnKTsi50NCivrsJXqtoztlZkNCivrsJXsm5TshKANCivrsJXsooXtg5wNCivrsJXsoJXsi50NCivrsJXrrLjsiJwNCivrsJXsm5TsiJgNCivrsJXsnqzsi50NCivrsJXqsr3sp4QNCivrsJXsmIHsl7QNCivrsJXsnITsiJwNCivrsJXtmqjsmIENCivrsJXsmrTtlYQNCivrsJXshLjrj5kNCivrsJXsnITtlZwNCivrsJXsnbzqt5wNCivrsJXsmqnrsLANCivrsJXtmITsi50NCivrsJXsnKDrjZUNCivrsJUg66WcDQor67CV7J247IicDQor67CV7Jil7Y+sDQor67CV7Jyk64+EDQor67CV7ZmY6riwDQor67CV6riw7ISgDQor67CV7ISx7KO8DQor67CV7Jyk6529DQor67CV7J287Z2sDQor67CV7KKF7IiYDQor67CV7ZiE7IudDQor67CV7Jyk66qpDQor67CV7IaM7IicDQor67CV67O17YOdDQor67CV7IOB7ISgDQor67CV7Jyk7IiYDQor67CV7J6s6riwDQor67CV64Ko7KCVDQor67CV7YOc7KGwDQor67CV7Jyk7JilDQor67CV7KeE7JqpDQor67CV7Z2s7KeEDQor67CV7ISx7J2ADQor67CV7Jyk7KCVDQor67CV7ZiE7KSADQor67CV64+Z7JqpDQor67CV7IiZ6ri4DQor67CV7Jyk7KCVDQor67CV7IOB7ISgDQor67CV6riI6rCRDQor67CV7JiB7JewDQor67CV7Jyk7KCVDQor67CV7IOB64W4DQor67CV7J6s7YOcDQor67CV64us7KO8DQor67CV7Jyk7KSADQor67CV7Zqo7KeEDQor67CV7KeE7JWUDQor67CV7KeE7IicDQor67CV7Jyk7ZeMDQor67CV7JuQ7ZiEDQor67CV67OR66y4DQor67CV7YOc7IicDQor67CV7Jyk7ZiEDQor67CV64yA7Zi4DQor67CV7LGE7JewDQor67CV66eQ7ISgDQor67CV7Jyk7ZmYDQor67CV64W46raMDQor67CV7YOc6regDQor67CV7KCV7IiYDQor67CV7J2A6rK9DQor67CV66eQ6ri4DQor67CV7Jyk7J20DQor67CV67OR64+IDQor67CV7J2A6rWQDQor67CV7JiB7IicDQor67CV7YyQ7LKgDQor67CV7ZWc7ISxDQor67CV7J2A64+ZDQor67CV7ISg7ZmYDQor67CV7JWI7KO8DQor67CV7Iic7ZiEDQor67CV7J2A7IiYDQor67CV7Iic66y4DQor67CV7ZWE7IicDQor67CV64us7ZWcDQor67CV7J2A7IiYDQor67CV7YOc6raMDQor67CV7IiY6ri4DQor67CV7ZWc7LCsDQor67CV7J2A7IiYDQor67CV7ZeM7Z2UDQor67CV7Jqp7IudDQor67CV7Lap7KSADQor67CV7J2A7KO8DQor67CV7IS47IicDQor67CV7YOc7KGwDQor67CV7JiB6rWtDQor67CV7J2A7LCsDQor67CV67aE66GADQor67CV7Iic64+ZDQor67CV7ZW07ZiEDQor67CV7J2E7ISgDQor67CV7KCV7Zi4DQor67CV6riI7IicDQor67CV6rSR7Z2sDQor67CV7J2R66qoDQor67CV7JuQ6rOkDQor67CV7J2466eMDQor67CV7LaY7Je0DQor67CV7J2Y7J24DQor67CV7Jil67aADQor67CV67aA6recDQor67CV7KCV7J28DQor67CV7J206recDQor67CV7JiB6re5DQor67CV7J6s7IicDQor67CV7IiY7KGwDQor67CV7J207IOBDQor67CV66+464KoDQor67CV7YyQ7LaYDQor67CV6riw7J6QDQor67CV7J207IigDQor67CV7ISx7IudDQor67CV64+E7YOcDQor67CV6rO17IiYDQor67CV7J207ZiVDQor67CV7YOc6re8DQor67CV7Lap7IigDQor67CV7Jyk7ZiBDQor67CV7J207Zi4DQor67CV7Zqo7IiYDQor67CV7ZmU7KGwDQor67CV7IiY7IiZDQor67CV7J207ZmYDQor67CV6riw7LKgDQor67CV6re87IudDQor67CV7IS47YOcDQor67CV7J216recDQor67CV7ZW07IiYDQor67CV7IOB7Je0DQor67CV7J6s7LGEDQor67CV7J246raMDQor67CV66qF7IiYDQor67CV7KO867O0DQor67CV7YOc7IudDQor67CV7J2467CwDQor67CV7KCV7IiYDQor67CV6rOE7IicDQor67CV7KSA7Z2sDQor67CV7J247IiZDQor67CV7KCV6re8DQor67CV7JiB64KoDQor67CV7LKc7Zi4DQor67CV7J247IicDQor67CV7IiY7JqpDQor67CV7LKg7YOdDQor67CV7JaR64+MDQor67CV7J247IigDQor67CV66e57IiYDQor67CV7JiB7JWgDQor67CV7IOB7ZiEDQor67CV7J247IudDQor67CV7JuQ642VDQor67CV7IiY7JuQDQor67CV7ISx7YOdDQor67CV7J247J6QDQor67CV7ZmN7JikDQor67CV7J2464usDQor67CV7Zi47JiBDQor67CV7J247LKgDQor67CV7IiY7J20DQor67CV6rCR7IudDQor67CV7J6l7JqwDQor67CV7J247ZGcDQor67CV7ZW07KeEDQor67CV64+E7JqpDQor67CV7KeE7JuQDQor67CV7J247ZeMDQor67CV67OR6riwDQor67CV7Iic7KGwDQor67CV7ZW07Zi4DQor67CV7J286raMDQor67CV7Jew7KKFDQor67CV66qF7IicDQor67CV64yA7JqwDQor67CV7J286raMDQor67CV66ek67ORDQor67CV7J6s7JqpDQor67CV7LC96rOkDQor67CV7J286recDQor67CV7KKF7LmYDQor67CV7Jqw7ISgDQor67CV7IOB6rWQDQor67CV7J286recDQor67CV64yA66eMDQor67CV7J247IigDQor67CV7KCV6recDQor67CV7J2864+ZDQor67CV7J2467CwDQor67CV7Jqw7JuQDQor67CV7KeE7ISdDQor67CV7J2864+ZDQor67CV7IOB67CwDQor67CV7LKc66y4DQor67CV6rCR7IigDQor67CV7J2866qFDQor67CV7ZW07KGwDQor67CV7Iic7LKgDQor67CV7KO86regDQor67CV7J2867ORDQor67CV7KCQ67CwDQor67CV64yA66eMDQor67CV7Lap7ISxDQor67CV7J2867SJDQor67CVIOuCqA0KK+uwleygleyIoA0KK+uwleycpOyyoA0KK+uwleydvOyEnQ0KK+uwleuvvOuztQ0KK+uwleyiheyepQ0KK+uwleyYpeyjvA0KK+uwleydvOyEoA0KK+uwleyEseyhsA0KK+uwleyDgey5oA0KK+uwleyEseyglQ0KK+uwleydvOyaqQ0KK+uwleynhOu0iQ0KK+uwleyiheuylA0KK+uwle2DnOuNlQ0KK+uwleydvO2XjA0KK+uwleygleyEnQ0KK+uwleq0gOyihQ0KK+uwleyYpOuPjA0KK+uwleydvO2YuA0KK+uwleynhOyihQ0KK+uwleyihe2drA0KK+uwleynhOyLnQ0KK+uwleydvO2ZlA0KK+uwleuzkeunjA0KK+uwleyInO2YuA0KK+uwle2VtOyyoA0KK+uwleyehOq3uQ0KK+uwleqyveyEoA0KK+uwle2DgOyImA0KK+uwleuMgOyatA0KK+uwleyehOybkA0KK+uwleu2gOyaqQ0KK+uwleydvOuylA0KK+uwleyDgeqwlQ0KK+uwleyekOuPmQ0KK+uwleuPhOyEnQ0KK+uwleq4iOyEsQ0KK+uwleyngOq2jA0KK+uwleyepeq4uA0KK+uwleyepeyhsA0KK+uwleyEse2ZlA0KK+uwle2DnOuNlQ0KK+uwleyepeuqhQ0KK+uwleuzkeyEnQ0KK+uwleyDge2ZjQ0KK+uwleykgO2YuA0KK+uwleyepey2nA0KK+uwleu0ieyEoA0KK+uwleyImOyIoA0KK+uwley2qeybkA0KK+uwleyepe2ajA0KK+uwleuFuO2VmQ0KK+uwleqyveyLnQ0KK+uwle2DnO2YhA0KK+uwleyepe2doA0KK+uwleydmOyihQ0KK+uwleunjO2doA0KK+uwleuqheyekA0KK+uwleyerOqwkQ0KK+uwleyjvOuPhA0KK+uwleyViO2XjA0KK+uwleyDgeyerA0KK+uwleyerOqwkQ0KK+uwleyase2YhA0KK+uwle2MkOyYgQ0KK+uwleuztO2doA0KK+uwleyerOqyvQ0KK+uwleyerOyImA0KK+uwleuqheqyvQ0KK+uwleustOqyvQ0KK+uwleyerOqyvQ0KK+uwleq4iOyInA0KK+uwleygleyZhA0KK+uwleyiheyLnQ0KK+uwleyerOqyvQ0KK+uwleuTneyLnQ0KK+uwleqzoeyImA0KK+uwleqwkeq3vA0KK+uwleyerOqzpA0KK+uwleycpOyaqQ0KK+uwleykgOyXtA0KK+uwleyEseyXtA0KK+uwleyerOq0gA0KK+uwleygleuPhA0KK+uwleyGjOyyrQ0KK+uwleuzkeyjvA0KK+uwleyerOq2jA0KK+uwleyYge2ZmA0KK+uwleuqheq3nA0KK+uwleyasOydgA0KK+uwleyerOq3nA0KK+uwleqyveyduA0KK+uwleyDgeyjvA0KK+uwleyerOu0iQ0KK+uwleyerOq3nA0KK+uwle2YhOyhsA0KK+uwleyynOuTnQ0KK+uwleyiheyYgQ0KK+uwleyerOq3nA0KK+uwleyWke2YuA0KK+uwleuPmeybkA0KK+uwleyEneq3nA0KK+uwleyerOq3nA0KK+uwleqyve2YuA0KK+uwleykgOq2jA0KK+uwleu0ieyekA0KK+uwleyerOq3nA0KK+uwleydvOydvA0KK+uwleyImOyXsA0KK+uwleq4uOyhsA0KK+uwleyerOq3vA0KK+uwleymneycpA0KK+uwle2XjOyLnQ0KK+uwleyaqeynhA0KK+uwleyerOq3vA0KK+uwleq3nO2WpQ0KK+uwleyEse2YhA0KK+uwleyImO2VmA0KK+uwleyerOq4iA0KK+uwleuPmeyEnQ0KK+uwley2mO2ZmA0KK+uwle2DnOyDnQ0KK+uwleyerOq4sA0KK+uwleyerOyImA0KK+uwley2qeyyoA0KK+uwleyYgeq3vA0KK+uwleyerOq4sA0KK+uwleyYge2YhA0KK+uwleyEseyImA0KK+uwleyaqeqwkQ0KK+uwleyerOq4sA0KK+uwleydgO2drA0KK+uwleyEseyEnQ0KK+uwleyiheq4uA0KK+uwleyerOuFuA0KK+uwleyYgeyjvA0KK+uwleyYge2YuA0KK+uwle2drOq3nA0KK+uwleyerOuPmQ0KK+uwleqzhOyhsA0KK+uwleq4sO2ZlA0KK+uwle2DnOyImA0KK+uwleyerOuRkA0KK+uwleyYgeusuA0KK+uwleusuOuniQ0KK+uwleq3gO2YuA0KK+uwleyerOuegA0KK+uwleydmOq1rA0KK+uwleyYpeyekA0KK+uwleyEoO2VmQ0KK+uwleyerOumrA0KK+uwleyWuO2ZmA0KK+uwle2YnO2ZmA0KK+uwleyInOyErQ0KK+uwleyerOumvA0KK+uwleyEseuPhA0KK+uwle2DnO2DnA0KK+uwleyKue2DnA0KK+uwleyerOunjA0KK+uwleygleyerA0KK+uwleyerOyngA0KK+uwleyInOq4sA0KK+uwleyerOuqhQ0KK+uwleyGjOuPmQ0KK+uwleykgOqxtA0KK+uwleudveyhsA0KK+uwleyerOuztQ0KK+uwle2MkOyInA0KK+uwleq4sOustQ0KK+uwleygleynhA0KK+uwleyerOu2hA0KK+uwleyduOyerA0KK+uwleycpO2drA0KK+uwleyiheuCqA0KK+uwleyerOyDgQ0KK+uwleyCvOyLnQ0KK+uwleyDge2biA0KK+uwle2cmO2ZmA0KK+uwleyerOyEoA0KK+uwleyEseyekA0KK+uwleuFuOykgA0KK+uwleuMgOq4sA0KK+uwleyerOyXtA0KK+uwle2drOuemA0KK+uwleyerOyVlA0KK+uwle2VtOyYgQ0KK+uwleyerOyYgQ0KK+uwleyduOyhsA0KK+uwleyaqeq3nA0KK+uwle2Zje2biA0KK+uwleyerOyYpQ0KK+uwleyatOyErQ0KK+uwleqxtOyInA0KK+uwleynhOuqqA0KK+uwleyerOyYpQ0KK+uwleq3gO2YhA0KK+uwleyyoOuztQ0KK+uwleuNleuhnQ0KK+uwleyerOyZhA0KK+uwleuPmeyjvA0KK+uwleyEne2drA0KK+uwle2DnOyxhA0KK+uwleyerOyZhA0KK+uwleyYgeyYgQ0KK+uwleyDgeqwkQ0KK+uwleu0ieydtA0KK+uwleyerOyaqQ0KK+uwleqwle2YkQ0KK+uwleywqOqxtA0KK+uwleuzkeyjvA0KK+uwleyerOyatA0KK+uwleyEseyEnQ0KK+uwleq4sOq3vA0KK+uwleuvuOy2nA0KK+uwleyerOybkA0KK+uwleq2jOuPmQ0KK+uwleyDgeuhgA0KK+uwleuqheq3vA0KK+uwleyerOybkA0KK+uwle2DnOyXsA0KK+uwle2VtOyDgQ0KK+uwleyZuOyLnQ0KK+uwleyerOycpA0KK+uwle2XjOq3nA0KK+uwleq3nOybhQ0KK+uwleustOyDgQ0KK+uwleyerOydvA0KK+uwle2DnO2YhA0KK+uwle2Zjeq4uA0KK+uwle2YuOyLnQ0KK+uwleyerOydvA0KK+uwleyiheyekA0KK+uwle2DnOq4sA0KK+uwle2VhOyyoA0KK+uwleyerOynhA0KK+uwle2VreyjvA0KK+uwleygkOyLnQ0KK+uwleq4sOqxuA0KK+uwleyerOynhA0KK+uwleyImO2drA0KK+uwleyerOu0iQ0KK+uwleu0ieyLnQ0KK+uwleyerOyyoA0KK+uwleyDgeyjvA0KK+uwleyduOyLnQ0KK+uwleyerOuztQ0KK+uwleyerOy2nA0KK+uwleyWke2DnA0KK+uwleyDge2ctA0KK+uwleydmO2YhA0KK+uwleyerO2VmQ0KK+uwleybkOuPhA0KK+uwleyDgeydvA0KK+uwle2Zje2YhA0KK+uwleyerO2VrQ0KK+uwleyYgeybkA0KK+uwleyasO2VmQ0KK+uwleuNleyYgQ0KK+uwleyerO2YhA0KK+uwleq4sOyYgQ0KK+uwleuPmeykkQ0KK+uwle2DnO2drA0KK+uwleyerO2YhA0KK+uwleynhOq2jA0KK+uwleygleusuA0KK+uwleyaqeuwsA0KK+uwleyerO2YhA0KK+uwleusuOqwlQ0KK+uwleycpOq4sA0KK+uwleuzkeyXsA0KK+uwleyerO2YuA0KK+uwleyduOybkA0KK+uwleuzkeyhsA0KK+uwleydvO2YhA0KK+uwleyerO2YuA0KK+uwleyiheyCvA0KK+uwleydmO2VtA0KK+uwleyerO2DnA0KK+uwleyerO2YuA0KK+uwleyasOyImQ0KK+uwleq3nOyEoA0KK+uwleynhOuMgA0KK+uwleyerO2ZjQ0KK+uwleunkO2YuA0KK+uwleyDgeyEnQ0KK+uwleq3gOuwsA0KK+uwleyerO2ZjQ0KK+uwle2DnOyImA0KK+uwle2DnOuztQ0KK+uwleynhOybhQ0KK+uwleyerO2ZjQ0KK+uwleuRkO2YuA0KK+uwleyEse2YuA0KK+uwleyYgeu0iQ0KK+uwleyerO2ZjQ0KK+uwleyIoO2ZmA0KK+uwle2DnOyYgQ0KK+uwleq4sOuTnQ0KK+uwleyerO2ZmA0KK+uwleyyoOybhQ0KK+uwleyerOyLnQ0KK+uwleqyveuhnA0KK+uwleyerO2ZmA0KK+uwleykkeyatA0KK+uwleywve2ctA0KK+uwleynhOyepQ0KK+uwleyerO2ZmA0KK+uwleyaqeyekA0KK+uwleuqheybkA0KK+uwleydgOyngA0KK+uwleyerO2ZmA0KK+uwleykkeq3vA0KK+uwle2DnOyyoA0KK+uwleyasOuNlQ0KK+uwleyerO2biA0KK+uwleyasOq4sA0KK+uwleyihe2ZmA0KK+uwleyYgeyDgQ0KK+uwleygkOuPmQ0KK+uwleyEneyEoA0KK+uwleyYpe2ZjQ0KK+uwleygle2YhA0KK+uwleygkOuztA0KK+uwleywveuPmQ0KK+uwleywveyZhA0KK+uwleq1rO2DnQ0KK+uwleygkOyImA0KK+uwleygkOydtA0KK+uwleyEneyImA0KK+uwleyWteycpA0KK+uwleygkOyInA0KK+uwleuNleustQ0KK+uwleywve2ajA0KK+uwleuqhe2YhA0KK+uwleygkOyIoA0KK+uwleyiheuNlQ0KK+uwleynhOyEoA0KK+uwle2Yle2ZlA0KK+uwleygkOyIoA0KK+uwle2ZlOyLnQ0KK+uwleyYgeuqhQ0KK+uwleq0keyjvA0KK+uwleygkOyLnQ0KK+uwleuzke2ZmA0KK+uwleunjO2YuA0KK+uwleywqOyWuA0KK+uwleygkOyaqQ0KK+uwleuRkOyhsA0KK+uwleycpO2YuA0KK+uwleqzhOyerA0KK+uwleygkOydtA0KK+uwle2XjO2ZmA0KK+uwleunjOyhsA0KK+uwle2XjOyImQ0KK+uwleygleq1rQ0KK+uwleykgOyImA0KK+uwleuPmeq3nA0KK+uwleydhOyYgQ0KK+uwleygleq3nA0KK+uwleyasOq4sA0KK+uwleyKueusuA0KK+uwleqyve2ZlA0KK+uwleygleq4sA0KK+uwleu2gOuNlQ0KK+uwleuqheyDgQ0KK+uwleyDgeyImQ0KK+uwleygleq4sA0KK+uwleusmOybkA0KK+uwleyYgeqyvQ0KK+uwleyDgeqyvQ0KK+uwleygleuCqA0KK+uwleyDge2YhA0KK+uwleyYgey2mA0KK+uwleyerOuPjA0KK+uwleygleuNlQ0KK+uwleyiheyekA0KK+uwleq4iOyXtA0KK+uwleyYge2YuA0KK+uwleygleuNlQ0KK+uwleyiheuCqA0KK+uwleyerOq4uA0KK+uwleuzteyImA0KK+uwleygleuPhA0KK+uwleqyveyImA0KK+uwleyEseyYpQ0KK+uwleyXsOyInA0KK+uwleygleuPhA0KK+uwleuPme2YuA0KK+uwleuCqOq4sA0KK+uwle2DnOyImA0KK+uwleygleuPmQ0KK+uwle2VmeuqqQ0KK+uwleyInOu2hA0KK+uwleyduOyLnQ0KK+uwleygleuTnQ0KK+uwleyEoOyLnQ0KK+uwleyYgeyekA0KK+uwleyInO2VmQ0KK+uwleygleuhgA0KK+uwleyCvO2YuA0KK+uwle2DnOyYpQ0KK+uwleyjvOyWuA0KK+uwleygleuwsA0KK+uwleuMgO2YuA0KK+uwleyEse2XjA0KK+uwleuylOyerA0KK+uwleygleu0iQ0KK+uwleq0keq1rA0KK+uwleuvuOyImA0KK+uwleusuOyImA0KK+uwleygleu2gA0KK+uwleyerOyekA0KK+uwleyYgeyEoA0KK+uwleyImOyVoA0KK+uwleygleyEsQ0KK+uwle2drO2YuA0KK+uwleuzteusuA0KK+uwleyYge2drA0KK+uwleygleyImA0KK+uwleuPmeyEnQ0KK+uwleyiheuwsA0KK+uwleuzkeyImQ0KK+uwleygleyImA0KK+uwley2mOyXsA0KK+uwleuPhOq3nA0KK+uwleyEoOuwsA0KK+uwleygleyImA0KK+uwleyEsey2nA0KK+uwleyEneyLnQ0KK+uwleyblOq4uA0KK+uwleygleyImA0KK+uwleyKueuCqA0KK+uwleyGjOybkA0KK+uwleyImOyImA0KK+uwleygleyImA0KK+uwleq4sOyEoA0KK+uwleyehOydtQ0KK+uwleyDgeyKuQ0KK+uwleygleyImA0KK+uwleyaqeuNlQ0KK+uwleyaqeywrA0KK+uwleyEneuztQ0KK+uwleygleyInA0KK+uwleq0gOydvA0KK+uwleuRkOyhsA0KK+uwleyehOuNlQ0KK+uwleygleyInA0KK+uwleuMgOuCqA0KK+uwleyerOyyoA0KK+uwleyInOyLnQ0KK+uwleygleyLnQ0KK+uwleq4sOydvA0KK+uwleyblO2VmA0KK+uwleyImO2VmA0KK+uwleygleyLnQ0KK+uwleuzkeyasA0KK+uwleq4iOq0gA0KK+uwleygleqzpA0KK+uwleygleyLpA0KK+uwleyDgeyEoA0KK+uwleyiheybkA0KK+uwleuzkeuMgA0KK+uwleygleyVoA0KK+uwleq1reuCqA0KK+uwleywveq4uA0KK+uwleuzkeyaqQ0KK+uwleygleyXsA0KK+uwle2VhO2YhA0KK+uwleyYgeykkQ0KK+uwleyerOybhQ0KK+uwleygleyXtA0KK+uwleyKueyInA0KK+uwleyYgeuhgA0KK+uwleyihe2YuA0KK+uwleygleyYpA0KK+uwle2XjOybhQ0KK+uwleyduOuPhA0KK+uwle2DnOuPjA0KK+uwleygleyaqQ0KK+uwleyYgeyEnQ0KK+uwleydvOyaqQ0KK+uwleyjvO2YhA0KK+uwleygleyaqQ0KK+uwley2mOyyoA0KK+uwleuTneyhsA0KK+uwle2Vmeq3nA0KK+uwleygleyatA0KK+uwleyDgey2nA0KK+uwleyEneq4sA0KK+uwleybkOy2mA0KK+uwleygleyatA0KK+uwleuCme2VmQ0KK+uwleyjvOybhQ0KK+uwleuzkeyEnQ0KK+uwleygleydvA0KK+uwleqyuOqwkQ0KK+uwleyiheuPmQ0KK+uwleyWkeuFuA0KK+uwleygleyehA0KK+uwleuPmeyImA0KK+uwleq0gOyImA0KK+uwleqyve2YhA0KK+uwleygleyekA0KK+uwleyDge2ZlA0KK+uwleuPmeyImA0KK+uwleyynOynhA0KK+uwleygleyekA0KK+uwleyaseyInA0KK+uwlSDstpgNCivrsJXsgqztmIQNCivrsJXsoJXsnpANCivrsJXquLDtmLgNCivrsJXsmbjshJ0NCivrsJXsnKTsobANCivrsJXsoJXssqANCivrsJXsoJDtlZgNCivrsJXsiJjrj5kNCivrsJXshLHsi50NCivrsJXsoJXstpwNCivrsJXsmIHtlZkNCivrsJXshKDtg5wNCivrsJXsiJzstpwNCivrsJXsoJXtlZgNCivrsJXrj5nsmrENCivrsJXsirntnawNCivrsJXtmJzsobANCivrsJXsoJXtlZgNCivrsJXso7zquLANCivrsJXshJ3tmIQNCivrsJXqtJHroZ0NCivrsJXsoJXtlZkNCivrsJXsnqzshJ0NCivrsJXsmIHsnKQNCivrsJXso7zsiJwNCivrsJXsoJXtlZwNCivrsJXrhbjsspwNCivrsJXsi5zrjIANCivrsJXsmIHsiJgNCivrsJXsoJXtlqUNCivrsJUg7IOBDQor67CV7KCV7ZiEDQor67CV67OR66eMDQor67CV7KCV7ZeMDQor67CV7KCV66eMDQor67CV7Z2s7JqpDQor67CV7Jqp7Zi4DQor67CV7KCV7Zi4DQor67CV6riw6re8DQor67CV7JiB6regDQor67CV7IS47IudDQor67CV7KCV7ZmUDQor67CV7ZiE7J20DQor67CV7ZWc7Zi4DQor67CV67aE7KeEDQor67CV7KCV7Z2sDQor67CV6riw66CsDQor67CV64+E7IudDQor67CV7IOB7LC9DQor67CV7KCV7Z2sDQor67CV7Zal7Z2sDQor67CV66qF7Zi4DQor67CV7YyQ7JWEDQor67CV7KCV7Z2sDQor67CV7ZW07KSRDQor67CV7Lap7JilDQor67CV6rOE7IigDQor67CV7KCc64KoDQor67CV7Z2s7ZmYDQor67CV7Jik6re8DQor67CV7JmV7ISdDQor67CV7KGw7J20DQor67CV7J207KGwDQor67CV64Ko65OdDQor67CV7J6E67O1DQor67CV7KGw7J20DQor67CV7Jqp67KUDQor67CV6rK97ZmYDQor67CV7KeE7ISdDQor67CV7KKF6rG4DQor67CV7ISg7IiYDQor67CV67O07IicDQor67CV6rSR67SJDQor67CV7KKF6rWtDQor67CV7KO86rCADQor67CV7J2464+EDQor67CV6rSR7KeEDQor67CV7KKF6raMDQor67CV7YOc67SJDQor67CV64Kc7IiZDQor67CV7IOB66qpDQor67CV7KKF6recDQor67CV6rOE7Z2lDQor67CV7IOB6riwDQor67CV64yA7JqpDQor67CV7KKF6recDQor67CV7ISg7ZmUDQor67CV7IS47KCcDQor67CV7ISg7Je0DQor67CV7KKF6re8DQor67CV64+Z7IudDQor67CV6riw7Z2sDQor67CV7KCV7Zi4DQor67CV7KKF6re8DQor67CV6rK97LKgDQor67CV7Jew7ZuIDQor67CV7KKF7JewDQor67CV7KKF6re8DQor67CV67OR7JiBDQor67CV7J6s67CwDQor67CV7KCV7J6QDQor67CV7KKF6riwDQor67CV64yA6re8DQor67CV7Zmp7Zi4DQor67CV7KCV7KCQDQor67CV7KKF6ri4DQor67CV64Ko6riwDQor67CV6riw7IiZDQor67CV7LaY67aEDQor67CV7KKF64usDQor67CV7J6s7KCVDQor67CV7KeE7LacDQor67CV66e57IiYDQor67CV7KKF64yADQor67CV7JiB6rK9DQor67CV7KKF7IiZDQor67CV6rOE7ISdDQor67CV7KKF65OdDQor67CV7Jqp7IicDQor67CV67SJ7J20DQor67CV7ZeM7IiYDQor67CV7KKF6529DQor67CV7Z2s6raMDQor67CV67OR7JyoDQor67CV6rK9642VDQor67CV7KKF656YDQor67CV7J6s64W4DQor67CV7J6s7ISxDQor67CV67OR7IStDQor67CV7KKF66+8DQor67CV7YOc7JykDQor67CV7ZmY6raMDQor67CV7Zic6rWsDQor67CV7KKF66+8DQor67CV7JuQ7ZuIDQor67CV7Jil7ZiEDQor67CV7IOB7LacDQor67CV7KKF67O1DQor67CV6rK97KGwDQor67CV7ISx7JiBDQor67CV67OR7Zi4DQor67CV7KKF7IOBDQor67CV7JiB7IStDQor67CV7Jqp7JqwDQor67CV7IK87ZWZDQor67CV7KKF7ISdDQor67CV7Jqp7ISxDQor67CV7ISx656YDQor67CV7J6s6rSADQor67CV7KKF7ISdDQor67CVIOykkQ0KK+uwle2ZjeyVhA0KK+uwleyjvOq3vA0KK+uwleyiheyErQ0KK+uwleuzkeuPhA0KK+uwleygnOyEoA0KK+uwleqyveq3vA0KK+uwleyiheyErQ0KK+uwleyEseyhsA0KK+uwleyCvOyImA0KK+uwleyerOyYgQ0KK+uwleyiheyImA0KK+uwleuPme2VmA0KK+uwleyjvOu0iQ0KK+uwleyDgeq3nA0KK+uwleyiheyImA0KK+uwleq4uO2ZlA0KK+uwleygleyLnQ0KK+uwleygleyInA0KK+uwleyiheyImA0KK+uwle2YhOyglQ0KK+uwleuPhOq0gA0KK+uwleyImO2drA0KK+uwleyiheyImQ0KK+uwleynhOyEoA0KK+uwleyZuO2PrA0KK+uwleuzkeuvvA0KK+uwleyiheyInA0KK+uwle2VtOq2jA0KK+uwleyjvOyImA0KK+uwleuPmeq4sA0KK+uwleyiheyInA0KK+uwleyYge2DnA0KK+uwleyImOyErQ0KK+uwleuMgOywrA0KK+uwleyiheyIoA0KK+uwle2VtOyXtA0KK+uwleykkeyasA0KK+uwleyaqe2WpQ0KK+uwleyiheyLnQ0KK+uwleuzteyImA0KK+uwleuCqOyaqQ0KK+uwle2DnOuwsA0KK+uwleyiheyLnQ0KK+uwleqxtO2YuA0KK+uwleywveyasA0KK+uwleyMjeuPhA0KK+uwleyiheyLnQ0KK+uwleygleqzpA0KK+uwleuzkeyInA0KK+uwleycpOq4sA0KK+uwleyiheyLnQ0KK+uwleyYgeqyvQ0KK+uwleuqheyCvA0KK+uwleyjvOyLnQ0KK+uwleyiheyXtA0KK+uwleyXsOyIoA0KK+uwle2drOybkA0KK+uwleyihe2YuA0KK+uwleyiheyXtA0KK+uwleunkO2ZmA0KK+uwleuNleyhsA0KK+uwle2DnO2VtA0KK+uwleyiheyYgQ0KK+uwleyihe2YuA0KK+uwleygleyehA0KK+uwleq0gOq3oA0KK+uwleyiheyYpA0KK+uwleyInOqxtA0KK+uwle2DnOyyoA0KK+uwleywveuhnQ0KK+uwleyiheyYpA0KK+uwleq0ke2YhA0KK+uwleyjvOyXtA0KK+uwle2drO2ZmA0KK+uwleyiheyYpQ0KK+uwleuzkeyyoA0KK+uwleyaqeyImA0KK+uwleyGjOyEnQ0KK+uwleyiheyasA0KK+uwleq3ueq0gA0KK+uwleuvvOybkA0KK+uwleygleyImA0KK+uwleyiheyasQ0KK+uwleq3vOyKuQ0KK+uwleu0ieyImQ0KK+uwleyImOyEnQ0KK+uwleyiheybkA0KK+uwleyCrOq2jA0KK+uwleydvOy2nA0KK+uwle2MkOuwsA0KK+uwleyiheybkA0KK+uwleusuO2YuA0KK+uwleyaqeq4sA0KK+uwleq4iOyLnQ0KK+uwleyiheycqA0KK+uwleyCvOyEsQ0KK+uwleu0ieudvQ0KK+uwleuvuOu2gA0KK+uwleyiheyduA0KK+uwleyEseyYpQ0KK+uwleyerOyLnQ0KK+uwleygleq4sA0KK+uwleyiheyjvA0KK+uwleyImO2VmQ0KK+uwleyiheuPhA0KK+uwleq3nOuztQ0KK+uwleyiheynhA0KK+uwleygkO2ZmA0KK+uwleydvOyYpQ0KK+uwleuTneuhgA0KK+uwleyiheynhA0KK+uwle2MkOyglQ0KK+uwleyatOyaqQ0KK+uwleuCqOyatA0KK+uwleyiheyyoA0KK+uwleyDge2YuA0KK+uwleyImOq3oA0KK+uwleyDgeyhsA0KK+uwleyihe2VnA0KK+uwleq3nOyLnQ0KK+uwleuzke2drA0KK+uwleyEseyEnQ0KK+uwleyihe2YuA0KK+uwleuqhe2ZmA0KK+uwleunjOyImA0KK+uwleyDge2DnA0KK+uwleyihe2YuA0KK+uwleyEseq3nA0KK+uwleyInOyLnQ0KK+uwleqzhOqzpA0KK+uwleyihe2YuA0KK+uwleyerOyaqQ0KK+uwleyDgeykgA0KK+uwleyKueybkA0KK+uwleyihe2YuA0KK+uwleyYgeq3nA0KK+uwleuzteyIoA0KK+uwleuzkeyxhA0KK+uwleyihe2YuA0KK+uwleyiheyEnQ0KK+uwle2drOyduA0KK+uwleu2gOyehA0KK+uwleyihe2ZlA0KK+uwleyEse2YhA0KK+uwleq4uOq3nA0KK+uwleyaqeyEsQ0KK+uwleyihe2ZlA0KK+uwleywveunjA0KK+uwleuzkeq4sA0KK+uwleyiheykgA0KK+uwleyihe2biA0KK+uwleyehO2YhA0KK+uwleyjvO2YuA0KK+uwle2MkOqzpA0KK+uwleyihe2biA0KK+uwleuzkeycpA0KK+uwleuPmeykgA0KK+uwleyepeq4sA0KK+uwleyihe2cmA0KK+uwleqyveyInA0KK+uwleywrOu2gA0KK+uwleydvOyImA0KK+uwleyihe2drA0KK+uwleuztOyYgQ0KK+uwley5oOyjvA0KK+uwleyYgeyhsA0KK+uwleyjvOq0gA0KK+uwleuNle2YuA0KK+uwleyDgeyVoA0KK+uwle2DnOyVoA0KK+uwleyjvOq1rQ0KK+uwleyiheyInA0KK+uwleuPhO2ZmA0KK+uwle2YuOuztQ0KK+uwleyjvOuFuA0KK+uwleyDgeyEnQ0KK+uwleyDgeyyoA0KK+uwleyEseuPhA0KK+uwleyjvOuPhA0KK+uwle2YuOyImA0KK+uwleq4sOyDnQ0KK+uwle2VtOyYgQ0KK+uwleyjvOuPjA0KK+uwleyLoOq4sA0KK+uwleq4sOqxuA0KK+uwleyerOyLnQ0KK+uwleyjvOunkA0KK+uwle2VtOyatA0KK+uwleywveyImA0KK+uwle2DnOydvA0KK+uwleyjvOuztQ0KK+uwleyEoOyXsA0KK+uwleygnO2PrA0KK+uwleyerO2VmQ0KK+uwleyjvOyEnQ0KK+uwle2YhOyImQ0KK+uwleyImO2DnQ0KK+uwleq3nO2DnQ0KK+uwleyjvOyEsQ0KK+uwleqzhOumrA0KK+uwleuLrOq4sA0KK+uwleunjOy5mA0KK+uwleyjvOyImA0KK+uwleuzteqwkQ0KK+uwleyaqe2ZmA0KK+uwleyGjO2YuA0KK+uwleyjvOyWkQ0KK+uwle2DnOyaqQ0KK+uwleygleuztQ0KK+uwleyaqeq4uA0KK+uwleyjvOyYpA0KK+uwle2MkOyhsA0KK+uwleq3gOunjA0KK+uwleyEseuemA0KK+uwleyjvOyZhA0KK+uwle2YuOyYpQ0KK+uwle2drOuwsA0KK+uwleqyveuhnA0KK+uwleyjvOyasA0KK+uwleyDgeqzpA0KK+uwle2ZmOugqA0KK+uwleyDgeyImA0KK+uwleyjvOybkA0KK+uwleyKueykgA0KK+uwleyKueyEoA0KK+uwleygleuNlQ0KK+uwleyjvO2DgQ0KK+uwle2aqOyYpQ0KK+uwleycpOyErQ0KK+uwlSDqt7wNCivrsJXso7ztg5wNCivrsJXshLHrj4QNCivrsJXsmIHshKANCivrsJXsnKTtmZgNCivrsJXso7ztg50NCivrsJXsmIHrqoUNCivrsJXsmIHqt5wNCivrsJXsg4Hrs7UNCivrsJXso7ztjJQNCivrsJXrqbTrj4wNCivrsJXsoJXsl7ANCivrsJXsmIHsnbgNCivrsJXso7ztlbQNCivrsJXrs5HtmIQNCivrsJXrqoXsiJgNCivrsJXrr7jri6wNCivrsJXso7ztmIQNCivrsJXso7zsmKQNCivrsJXsoJXrp4wNCivrsJXshLHsiJkNCivrsJXso7ztmZgNCivrsJXsiJztmZQNCivrsJXsmqnsnoQNCivrsJXsmqnsobANCivrsJXspIDqt5wNCivrsJXsnqzsl7ANCivrsJXrs5HrsLENCivrsJXrj5ntlZwNCivrsJXspIDrrLQNCivrsJXsnqzshJ0NCivrsJXri6zshJ0NCivrsJXshJ3tmJUNCivrsJXspIDrsLANCivrsJXrjIDsi50NCivrsJXtlbTtmLgNCivrsJXtmY3spIANCivrsJXspIDshJ0NCivrsJXshLHqt5wNCivrsJXso7ztmLgNCivrsJXsiJjqs6QNCivrsJXspIDsl7QNCivrsJXqt4Drn4kNCivrsJXtg5zslrgNCivrsJXsnqzrs7UNCivrsJXspIDsmqkNCivrsJXshJ3qt7wNCivrsJXssKjsiKANCivrsJXrkZDsnqwNCivrsJXspIDtg5wNCivrsJXslpHtlZgNCivrsJXspJHsiJgNCivrsJXsmKXshJ0NCivrsJXspIDtmLgNCivrsJXsnYDrhYQNCivrsJXtlZnsiJwNCivrsJXsp4Tso7wNCivrsJXspIDtmLgNCivrsJXrj4Tsi5wNCivrsJXsiJzssKgNCivrsJXrp4zqsr0NCivrsJXspJHqsbQNCivrsJXsp4Tsi50NCivrsJXqsJHtm4gNCivrsJXsg4Hsi50NCivrsJXspJHqt5wNCivrsJXshJ3rpr0NCivrsJXsmqnsiJgNCivrsJXtmqjsiJgNCivrsJXspJHssYQNCivrsJXsg4HsmrANCivrsJXshLHquLANCivrsJXsnqzshKANCivrsJXsp4DshK0NCivrsJXsl7Dqt6ANCivrsJXsiJjslZQNCivrsJXrs5HsoIQNCivrsJXsp4DsiJgNCivrsJXsg4HsiJgNCivrsJXsooXtmLgNCivrsJXshKDrjZUNCivrsJXsp4DsiKANCivrsJXrs5HsiJgNCivrsJXspJHsmrANCivrsJXsmIHsmKUNCivrsJXsp4DsmKUNCivrsJXrs5HsnKANCivrsJXsmIHsp4QNCivrsJXsmqnsobANCivrsJXsp4DsmqkNCivrsJXstpjtmLgNCivrsJXsmIHsspwNCivrsJXqt7zshowNCivrsJXsp4DsmqkNCivrsJXsooXsi50NCivrsJXrjIDshK0NCivrsJXshozsi50NCivrsJXsp4Dso7wNCivrsJXsp4Tsi50NCivrsJXsmIHqt7wNCivrsJXtmLjsmIENCivrsJXsp4DtlZwNCivrsJXsnqztmZgNCivrsJXstpjshKANCivrsJXsgrzso7wNCivrsJXsp4DtmIENCivrsJXsnKTso7wNCivrsJXquLjshLENCivrsJXsoJXsnpANCivrsJXsp4DtmLgNCivrsJXsmrDquLgNCivrsJXsnbXsiJgNCivrsJXtg5zstpwNCivrsJXsp4DtmZgNCivrsJXsoJDrj4QNCivrsJXsoJXtmowNCivrsJXsp4TsiJkNCivrsJXsp4Dtm4gNCivrsJXsooXssqANCivrsJXqt5zsiJgNCivrsJXqsJHsmrANCivrsJXsp4Tqt5wNCivrsJXshLHsnpANCivrsJXsm5Dtl4wNCivrsJXrtoDqs6QNCivrsJXsp4Tqt5wNCivrsJXsiJjtmZgNCivrsJXrs5Hsi50NCivrsJXsnqzsiJgNCivrsJXsp4TrtoANCivrsJXquLjtmIQNCivrsJXsooXtg4ENCivrsJXtmITsnpANCivrsJXsp4TshLENCivrsJXrjZXshJ0NCivrsJXsg4Hsi50NCivrsJXsnbjrsLANCivrsJXsp4TshLENCivrsJXrrLTtg5wNCivrsJXsg4Hsm4UNCivrsJXqsr3tmZgNCivrsJXsp4TsmrANCivrsJXsnqzsooUNCivrsJXrs5HshKANCivrsJXsmIHsmqkNCivrsJXsp4TsmrANCivrsJXsgrzshLENCivrsJXqt6DrqoUNCivrsJXrj5ntnawNCivrsJXsp4TssqANCivrsJXsiJjtmLgNCivrsJXsiJjtmZQNCivrsJXrs5HsiJgNCivrsJXsp4Ttl4wNCivrsJXsiJnsp4QNCivrsJXsoJXsnpANCivrsJXssKzsl7QNCivrsJXsp4TtmLgNCivrsJXsjI3tg5wNCivrsJXsl7DrpaANCivrsJXtg5ztmLgNCivrsJXsp4TtmZQNCivrsJXsnqzsmrQNCivrsJXsg4Hso7wNCivrsJXtlonsnKQNCivrsJXsp4TtmZgNCivrsJXshLHtmZgNCivrsJXrjIDrgqgNCivrsJXquLDtg5wNCivrsJXssKjqt7wNCivrsJXrrJjqs6QNCivrsJXqsr3snbQNCivrsJXsg4HsiJgNCivrsJXssKjrp4wNCivrsJXsoJXsmKUNCivrsJXsiJnrj5kNCivrsJXsoJXqt5wNCivrsJXssKjrtIkNCivrsJXssqDsirkNCivrsJXsnqzsmKUNCivrsJXrspTshJ0NCivrsJXssKjsiJgNCivrsJXtmITsi50NCivrsJXsmIHshKANCivrsJXso7zso7wNCivrsJXssKjsnoQNCivrsJXsm5Dsl7ANCivrsJXsmIHsi50NCivrsJXtlbTqs6QNCivrsJXssKjtl4wNCivrsJXshKDsiJwNCivrsJXssL3tmZgNCivrsJXsmqnrr7wNCivrsJXssKzqt5wNCivrsJXtg5zqtIANCivrsJXsoJXstpwNCivrsJXsnbTtnawNCivrsJXssKzrj5kNCivrsJXsjI3rs7UNCivrsJXsmqnsiJkNCivrsJXrjZXtlZkNCivrsJXssKzrtoANCivrsJXsnqXsmrANCivrsJXsnqztmLgNCivrsJXtlZnqta0NCivrsJXssKzsiJgNCivrsJXsooXsiJgNCivrsJXsnqzrj5kNCivrsJXsg4HshKANCivrsJXssKztmIQNCivrsJXsoJXsiJgNCivrsJXshJ3tmLgNCivrsJXqt7zrtIkNCivrsJXssKztmLgNCivrsJXsnbXsmIENCivrsJXssL3stpwNCivrsJXshLHqtIANCivrsJXssKztmLgNCivrsJXtnazsiJkNCivrsJXsiJzsi50NCivrsJXtg5ztnawNCivrsJXssKztm4gNCivrsJXquLDtjJANCivrsJXqsJXri6gNCivrsJXsnbzshJ0NCivrsJXssL3qsJENCivrsJXsp4Ttg5wNCivrsJXtg5zsi50NCivrsJXsoJXsnKQNCivrsJXssL3qt5wNCivrsJXsm5TtnaANCivrsJXshLHsi50NCivrsJXsmqnshLENCivrsJXssL3qt5wNCivrsJXsooXsi50NCivrsJXsiJzqs6ANCivrsJXrtInrp4wNCivrsJXssL3qt6ANCivrsJXshJ3sl7QNCivrsJXsnqztmZgNCivrsJXrtoTshLENCivrsJXssL3rjIANCivrsJXtlZnsmIENCivrsJXtg5ztg50NCivrsJXtlZzqsbQNCivrsJXssL3siJgNCivrsJXrnpjsiJgNCivrsJXqsr3tnawNCivrsJXrrLTtmZgNCivrsJXssL3siJgNCivrsJXsg4HtlZkNCivrsJXsnbjtmLgNCivrsJXsnqXtg50NCivrsJXssL3siJwNCivrsJXrj5nsiJgNCivrsJXsm5DquLgNCivrsJXsoJXqs4QNCivrsJXssL3si50NCivrsJXsmIHso7wNCivrsJXsiJztmLgNCivrsJXsnqzsnqwNCivrsJXssL3tmIQNCivrsJXsoJXspIANCivrsJXshLHsnYANCivrsJXsnqzsnpANCivrsJXssL3tmLgNCivrsJXsmqnsmrENCivrsJXsm5DtmZgNCivrsJXsiJztmIQNCivrsJXssL3tmLgNCivrsJXrj5nsiJgNCivrsJXtmZTqt5wNCivrsJXshLHqt7wNCivrsJXssL3tmLgNCivrsJXspIDtmZgNCivrsJXsoJDsiJwNCivrsJXtjJDrp4wNCivrsJXssL3tmLgNCivrsJXsg4Hsl7ANCivrsJXshJ3siJwNCivrsJXsooXtmLgNCivrsJXssL3tmZgNCivrsJXsoJXsiJkNCivrsJXsmKXshKANCivrsJXsmIHquLANCivrsJXsspzrjZUNCivrsJXqt7zquLANCivrsJXquLDsiJgNCivrsJXsl7Dtm4gNCivrsJXsspzshK0NCivrsJXtlbTssqANCivrsJXsmZXtlZgNCivrsJXsgqztmZQNCivrsJXsspzsiJgNCivrsJXsmIHssqANCivrsJXrj5ntlqUNCivrsJXspJHsp4QNCivrsJXsspztm4QNCivrsJXshLHtm4gNCivrsJXsgrzsnKQNCivrsJXqsJHqt5wNCivrsJXssqDqt5wNCivrsJXtlZzqtJENCivrsJXsmIHrsLANCivrsJXsnYDssqANCivrsJXssqDqt5wNCivrsJXrspTrnpENCivrsJXsg4Htm4gNCivrsJXtmqjtmZgNCivrsJXssqDsiJgNCivrsJXsnqzquLANCivrsJXsoJXsmrANCivrsJXsmIHrs7UNCivrsJXssqDsmrANCivrsJXso7ztnawNCivrsJXsmIHtm4gNCivrsJXrj5nsiJgNCivrsJXssqDtmLgNCivrsJXspJHtg5wNCivrsJXtg5zqs6QNCivrsJXrr7jsnpANCivrsJXssqDtmLgNCivrsJXqt5zqt5wNCivrsJXrjIDtm4gNCivrsJXsnqzsp4QNCivrsJXssqDtmowNCivrsJXsnqztmY0NCivrsJXqsr3shK0NCivrsJXqtJHsiJkNCivrsJXssq3snbQNCivrsJXqtozsiJgNCivrsJXrp4zsg4ENCivrsJXrs7Xrs5ENCivrsJXssq3tmowNCivrsJXsooXquLANCivrsJXsi5zrrLgNCivrsJXspp3siJwNCivrsJXstpgNCivrsJXrs5ENCivrsJXsiJwNCivrsJXrkZANCivrsJXstpjqsr0NCivrsJXsoJDrqqgNCivrsJXsoJXrnoANCivrsJXshoztmakNCivrsJXstpjqtJENCivrsJXsnbXspIANCivrsJXsoJXsg50NCivrsJXsuaDsmqkNCivrsJXstpjquLgNCivrsJXsirnshJwNCivrsJXrjZXsiJgNCivrsJXsmIHrj4QNCivrsJXstpjrs7UNCivrsJXsiJzsmIENCivrsJXshLHtmZgNCivrsJXsg4Hrp4wNCivrsJXstpjshKANCivrsJXrrLTsmKUNCivrsJXrhbjsmrANCivrsJXrspTqt7wNCivrsJXstpjsiJgNCivrsJXrjZXrqoUNCivrsJXrjIDsspwNCivrsJXstpjspIANCivrsJXstpjsiJgNCivrsJXtlbTtm4gNCivrsJXtnaXtmLgNCivrsJXtmITrr7gNCivrsJXstpjsi50NCivrsJXspJHrnpgNCivrsJXtmLjshK0NCivrsJXquLDqs4QNCivrsJXstpjsmIENCivrsJXshJ3siJkNCivrsJXsooXsspwNCivrsJXtlZntmZgNCivrsJXstpjsmIENCivrsJXsp4TtmIQNCivrsJXsoJXshKANCivrsJXrs5Hrj5kNCivrsJXstpjsmIENCivrsJXtg5ztmLgNCivrsJXsg4Hsm5ANCivrsJXrqoXqsr0NCivrsJXstpjsnbwNCivrsJXsg4Hqs6QNCivrsJXsg4HtmLgNCivrsJXsgrztnawNCivrsJXstpjtmLgNCivrsJXqsr3rj4QNCivrsJXsmqntmZgNCivrsJXtg5zsnqwNCivrsJXstpjtmZQNCivrsJXtg5zsiJgNCivrsJXtjJDsmqkNCivrsJXquLDsi6QNCivrsJXstpjtnawNCivrsJXquIjsmrQNCivrsJXsjI3rj4QNCivrsJXrkZDssqANCivrsJXstqntnaANCivrsJXshLHsmrANCivrsJXrr7jqt6ANCivrsJXspJHsi50NCivrsJXsuZjsiJkNCivrsJXsooXshKANCivrsJXsiJzqtJENCivrsJXsspzsiJgNCivrsJXsuaDrrLgNCivrsJXssL3sm5ANCivrsJXtj4nrrLQNCivrsJXqsr3tnaANCivrsJXsuaDsmqkNCivrsJXrp4zsiJgNCivrsJXshJ3siJgNCivrsJXtlZzso7wNCivrsJXtg5zqsr0NCivrsJXrs5Hri6wNCivrsJXstqnsmqkNCivrsJXsnqzsnbUNCivrsJXtg5zqs6QNCivrsJXrs5Hrj4wNCivrsJXqsr3ssKwNCivrsJXsnbjslpENCivrsJXtg5zqt5wNCivrsJXquLDsiJwNCivrsJXsooXqt5wNCivrsJXrj5nsl7ANCivrsJXtg5zqt5wNCivrsJXshLHtnawNCivrsJUg7JikDQor67CV642V7Z2sDQor67CV7YOc6recDQor67CV67OR7Jq0DQor67CV7J6E7JewDQor67CV67O166eMDQor67CV7YOc6regDQor67CV6rSR7IiYDQor67CV67OR6re8DQor67CV7J2E7J24DQor67CV7YOc6re8DQor67CV7IaM7Z2sDQor67CV7KeE66qpDQor67CV7J6s7IicDQor67CV7YOc6re8DQor67CV7KCV6recDQor67CV7Jqp7KeEDQor67CV64yA7ZmUDQor67CV7YOc64+ZDQor67CV7Jqp7JilDQor67CV7KeE6rWsDQor67CV7IOB7J6QDQor67CV7YOc65OdDQor67CV7KCV7JWUDQor67CV7J6s7JykDQor67CV7KKF7IudDQor67CV7YOc66a8DQor67CV7Lap7YOcDQor67CV7Iuc7Zi4DQor67CV67SJ67aEDQor67CV7YOc66y4DQor67CV7IiY7KGwDQor67CV7Iq57KO8DQor67CV7JWU7ISgDQor67CV7YOc67KUDQor67CV7JiB66+4DQor67CV7Z2s7ZuIDQor67CV7IOB7J28DQor67CV7YOc67SJDQor67CV7Jqp656YDQor67CV7KKF6re8DQor67CV7JiB6re8DQor67CV7YOc67SJDQor67CV66qF7YOdDQor67CV7YOc7LKgDQor67CV7KeE7IiYDQor67CV7YOc7IOBDQor67CV7LCs67aADQor67CV6riI7IudDQor67CV7JaR7IicDQor67CV7YOc7ISdDQor67CV7ZWE7IiYDQor67CV7ISx6recDQor67CV64Ko7ZmYDQor67CV7YOc7ISgDQor67CV7Zi47IudDQor67CV7ZW07ISxDQor67CV7IiY7Zi4DQor67CV7YOc7IStDQor67CV7J6s6recDQor67CV7L6M7ISgDQor67CV64KZ7LacDQor67CV7YOc7ISxDQor67CV7JaR7YOcDQor67CV7J6s67mIDQor67CV7JuQ7IudDQor67CV7YOc7ISxDQor67CV7IOB67O0DQor67CV7YOc7IudDQor67CV7JiB6rSADQor67CV7YOc7IiYDQor67CV7IOB6rWtDQor67CV7Jq06re8DQor67CV7JiB6riwDQor67CV7YOc7IiYDQor67CV67SJ7YOdDQor67CV6rG07JykDQor67CV7Jqw7YOdDQor67CV7YOc7IicDQor67CV7ZmY7YOdDQor67CV6re87IiYDQor67CV7IOB7IicDQor67CV7YOc7IudDQor67CV7JiB6re8DQor67CV7J2A7JqpDQor67CV7J287KeEDQor67CV7YOc7IudDQor67CV7KKF7JewDQor67CV7JaR7J6sDQor67CV7ZWZ7Z2sDQor67CV7YOc7JWUDQor67CV7Jqw7JikDQor67CV67OR67O1DQor67CV7IaM7Je0DQor67CV7YOc7JewDQor67CV7ZKN7J20DQor67CV66eM66qFDQor67CV7IiZ6re8DQor67CV7YOc7JiBDQor67CV7Iuc67O1DQor67CV64+Z7IigDQor67CV6rK967O1DQor67CV7YOc7JiBDQor67CV7JuQ6re8DQor67CV6rSR66CoDQor67CV7KCV7JiBDQor67CV7YOc7JmEDQor67CV7ISx7JilDQor67CV6rec7Je0DQor67CV7ZeM7J6QDQor67CV7YOc7JqpDQor67CV7JiB7IicDQor67CV7KCV7LGEDQor67CV66qF7YOcDQor67CV7YOc7JqwDQor67CV6rSR7IiYDQor67CV6rSR6rK9DQor67CV6rec7IStDQor67CV7YOc7JuQDQor67CV7Jqp7JiBDQor67CV7LCo7IiYDQor67CV6rCR7KGwDQor67CV7YOc7JykDQor67CV7ZWZ7IudDQor67CV64yA6ri4DQor67CV7YOc7YOdDQor67CV7YOc7J28DQor67CV66y07IudDQor67CV7JiB66eMDQor67CV7KSA7IiYDQor67CV7YOc7KCVDQor67CV7IK87IicDQor67CV7IiY7ZiEDQor67CV7Z2s7J6EDQor67CV7YOc7KO8DQor67CV7IOB7Zi4DQor67CV7Jqp7ZiVDQor67CV7ISx7ISgDQor67CV7YOc7KO8DQor67CV7KCV6rK9DQor67CV6ri47IicDQor67CV7Zqo7ZmYDQor67CV7YOc7LKgDQor67CV7JiB7J20DQor67CV7JuU7Zi4DQor67CV7KeE7IiYDQor67CV7YOc7ZWZDQor67CV7KCV7IigDQor67CV64Ko7KeEDQor67CV7Zic7KGwDQor67CV7YOc7ZeMDQor67CV7KCV66y4DQor67CV7ZW06rWtDQor67CV7Jew7IicDQor67CV7YOc7ZiEDQor67CV64+Z7IiYDQor67CV7IiY7JiBDQor67CV7J2E7ZiEDQor67CV7YOc7ZiVDQor67CV7ISd7Zi4DQor67CV67OR6re8DQor67CV66y07ISgDQor67CV7YOc7Zi4DQor67CV6riw6riwDQor67CV6rK97IStDQor67CV7Jqp7IiYDQor67CV7YOc7Zi4DQor67CV7J2167SJDQor67CV7KKF7KGwDQor67CV7KeE6riwDQor67CV7YOc7Zi4DQor67CV7J6E66GdDQor67CV7KKF7LaYDQor67CV7LCo7ZiEDQor67CV7YOc7ZmNDQor67CV7ZeM7YOcDQor67CV67OR7KeEDQor67CV7J6s7ISgDQor67CV7YOc7ZmUDQor67CV64Ko6riIDQor67CV7JiB7KCVDQor67CV6ri47ZuIDQor67CV7YOc7ZmYDQor67CV7KKF7KO8DQor67CV7KO87JqwDQor67CV7Iah7LKgDQor67CV7YOc7ZqMDQor67CV7KCV7IicDQor67CV64+Z6raMDQor67CV7KO87JiBDQor67CV7YOc7ZuIDQor67CV7J6s7IiZDQor67CV7JiB7IOBDQor67CV7ISk6ri4DQor67CV7YyQ6rOgDQor67CV7KCV6raMDQor67CV7Iic7IiZDQor67CV7Zqo6re8DQor67CV7YyQ6re8DQor67CV66qF7IudDQor67CV7KKF64yADQor67CV7Jqx64+ZDQor67CV7YyQ642VDQor67CV7YOc66eMDQor67CV7JiB7Zi4DQor67CV7Jil7J20DQor67CV7YyQ64+EDQor67CV7KKF7IiYDQor67CV7IiY7IiYDQor67CV7KKF7IudDQor67CV7YyQ7ISdDQor67CV7Jew6raMDQor67CV7IK87Zi4DQor67CV7KCV7J21DQor67CV7YyQ7LacDQor67CV7ISx656RDQor67CV6riw7Zi4DQor67CV7ISx7IudDQor67CV7YyQ7ZeMDQor67CV7JiB7KO8DQor67CV67O06rOgDQor67CV7IiY7ISdDQor67CV7YyU7IiYDQor67CV7KKF7IiYDQor67CV6rWs7YOdDQor67CV66y47KO8DQor67CV7ZKN7Ja4DQor67CV7ZmU7JewDQor67CV7IiY6recDQor67CV7Z2s7KSADQor67CV7ZWY6rK9DQor67CV66y07IudDQor67CV7Z2s656ADQor67CV6rK97J20DQor67CV7ZWZ7IScDQor67CV7YOc7JqpDQor67CV64+Z67SJDQor67CV7Jyk7JqwDQor67CV7ZWc6recDQor67CV66yY7JuQDQor67CV7LKg7J2ADQor67CV7Iug7ISdDQor67CV7ZWc6riwDQor67CV7LKg7IudDQor67CV7YOc7IudDQor67CV6re867CwDQor67CV7ZWc7IiYDQor67CV67aA6re8DQor67CV67OR6recDQor67CV7KCV7Zi4DQor67CV7ZWc7KGwDQor67CV7J6s7ZmYDQor67CV7ISg6rCRDQor67CV7J6l7IK8DQor67CV7ZWt7LmYDQor67CV64us7IicDQor67CV7ISx7JqpDQor67CV7LGE7JilDQor67CV7ZW06recDQor67CV7Zqo7JilDQor67CV7IiY6riwDQor67CV7Jqp7ZuIDQor67CV7ZW064+EDQor67CV7LaY6rCVDQor67CV7ISd7IudDQor67CV7ISx7Zi4DQor67CV7ZW064+EDQor67CV7YOc7IudDQor67CV7Z2s6riwDQor67CV7LaY64W4DQor67CV7ZW064+ZDQor67CV67SJ7ZiEDQor67CV6rSR6riwDQor67CV7Iic6riwDQor67CV7ZW064+ZDQor67CV7Iug6recDQor67CV7Jew7JewDQor67CV7KCV7JmVDQor67CV7ZW064+ZDQor67CV7KCV7IK8DQor67CV7KCV7ZmYDQor67CV7J247ISdDQor67CV7ZW066OhDQor67CV6ri47IStDQor67CV7ISx7IicDQor67CV6reA67SJDQor67CV7ZW066OhDQor67CV67OR7IiYDQor67CV7ISx7IOBDQor67CV7IiY6rWsDQor67CV7ZW067aVDQor67CV67aE7JiBDQor67CV7IOB7ISgDQor67CV7Jyg7JewDQor67CV7ZW07ISdDQor67CV7J6Q7IicDQor67CV6rWs7J6QDQor67CV67SJ7IiYDQor67CV7ZW07ISxDQor67CV6rec7IiYDQor67CV7ZuE7JewDQor67CV7JiB7IiYDQor67CV7ZW07J6QDQor67CV7KCV6rWsDQor67CV6riw7J6sDQor67CV7JiB64+ZDQor67CV7ZW07KGwDQor67CV64+E7IiZDQor67CV7IOB7J20DQor67CV7IOB7JqpDQor67CV7Zal7JewDQor67CV66m06riwDQor67CV7IK87ZmYDQor67CV64+Z7JqpDQor67CV7ZeM6recDQor67CV7ISx7ZqMDQor67CV7YOc7Jq0DQor67CV7KCV6ri4DQor67CV7ZeM642VDQor67CV7Iic7IiYDQor67CV66qF7IK8DQor67CV67OR7ZWcDQor67CV7ZeM7JuQDQor67CV7KCQ7ISgDQor67CV6re864KoDQor67CV7LC97LKcDQor67CV7ZiE66+8DQor67CV6rCR67SJDQor67CV7JiB7YOdDQor67CV7IOB7KGwDQor67CV7ZiE7IStDQor67CV7J6s7ISgDQor67CV67OR7IudDQor67CV7JaR7IiYDQor67CV7ZiE7IStDQor67CV6riI7ISgDQor67CV7ISx7IiYDQor67CV6riw7ZmNDQor67CV7ZiE7IiYDQor67CV7J247IicDQor67CV6rCR7ZmYDQor67CV7ZiE6rCRDQor67CV7ZiE7IiYDQor67CV7ZqM7KeEDQor67CV6rSR66CoDQor67CV7Jil64+EDQor67CV7ZiE7IiYDQor67CV7J2464+EDQor67CV6riw7Je0DQor67CV7ZWZ6riwDQor67CV7ZiE7IiZDQor67CV7YOc7JiBDQor67CV67O17JqwDQor67CV7Iq564+EDQor67CV7ZiE7IugDQor67CV67SJ7ZmNDQor67CV7JiB7JuFDQor67CV7Iq57Je0DQor67CV7ZiE7JeFDQor67CV6riw7ZeMDQor67CV7J2A7J6QDQor67CV7JiB7IicDQor67CV7ZiE7JqwDQor67CV6rec6rOEDQor67CV7ZmN6recDQor67CV7KKF7Zi4DQor67CV7ZiE7KO8DQor67CV7YOc6rCVDQor67CV7KSR6re8DQor67CV7KeE7IiYDQor67CV7ZiE7LGEDQor67CV7J287JiBDQor67CV7IiY6recDQor67CV6rOE7KCcDQor67CV7ZiE7YOcDQor67CV7Iic7ISxDQor67CV7J6s7YOBDQor67CV64+Z7Je0DQor67CV7ZiE7ZmYDQor67CV7JiB6riwDQor67CV67OR64+ZDQor67CV64+Z67aEDQor67CV7ZiV656YDQor67CV7ZW07JuQDQor67CV7LCo7JilDQor67CV6riw7ZalDQor67CV7ZiV7IScDQor67CV7JiB7Z2sDQor67CV7JiB7KGwDQor67CV7JuQ7ZmNDQor67CV7ZiV7J6sDQor67CV7ZiV7J6QDQor67CV67OR7ZW0DQor67CV7Z2s7JiBDQor67CV7Zic7J6QDQor67CV67SJ7IicDQor67CV7LKg7IiZDQor67CV67aE7JqpDQor67CV7Zi46recDQor67CV7Jil6rWsDQor67CV7IOB66y4DQor67CV7IK87IicDQor67CV7Zi46re8DQor67CV7JiB7JyoDQor67CV7KKF7IStDQor67CV7JiB6rWsDQor67CV7Zi464+ZDQor67CV6rCR7JiBDQor67CV6rec7KGwDQor67CV7KCV7YOcDQor67CV7Zi467SJDQor67CV7IOB7ZmYDQor67CV7KKF7IudDQor67CV7YOc7JWUDQor67CV7Zi47ISdDQor67CV7ZWc7IudDQor67CV7ISx6rCRDQor67CV7Zqo64KoDQor67CV7Zi47KCVDQor67CV7LC97JWUDQor67CV64+Z7KKFDQor67CV66qF7ISgDQor67CV7Zi47KeEDQor67CV7Jil7KO8DQor67CV7J6s7IiYDQor67CV642V7LKgDQor67CV7Zi47LaYDQor67CV6rK966eMDQor67CV7J6l7J20DQor67CV7IOB7JuQDQor67CV7ZmN6re8DQor67CV64+Z7IiYDQor67CV7LCs6riwDQor67CV64us7YOcDQor67CV7ZmN6ri4DQor67CV6rK97JiBDQor67CV7Jqp7ZWEDQor67CV7ZmU7IicDQor67CV7ZmN64+ZDQor67CV6reA7ISgDQor67CV7JyE7LKgDQor67CV7Iic7JqwDQor67CV7ZmN66y1DQor67CV7IaM66+4DQor67CV7JiB7J21DQor67CV67O16recDQor67CV7ZmN67mIDQor67CV7J247KSADQor67CV7YOc6regDQor67CV7IK87ISgDQor67CV7ZmY7Je0DQor67CV7ISx7ZmYDQor67CV6rSR6rWsDQor67CV7ISx7J6sDQor67CV7ZmY7J20DQor67CV7JiB7IiZDQor67CV66+47ZeMDQor67CV66qF7JW8DQor67CV7Zmp6rK9DQor67CV66y07JqwDQor67CV7YOd7Zi4DQor67CV7Jqp7JykDQor67CV7ZqM6re8DQor67CV7LaY7YOdDQor67CV7ISg6riIDQor67CV6rWs6ri4DQor67CV7Zqo6recDQor67CV7IOB7IigDQor67CV66eQ7Zi4DQor67CV64yA7IudDQor67CV7Zqo7KKFDQor67CV642V66GADQor67CV7KeE7IOBDQor67CV67OR6recDQor67CV7ZyY7IK8DQor67CV7KeE7JilDQor67CV7Jil7JuQDQor67CV7IOB7IicDQor67CV7Z2s64+ZDQor67CV7IiY64+ZDQor67CV7Iic7IStDQor67CV7JiB7Zi4DQor67CV7Z2s67O1DQor67CV6rCR64KcDQor67CV7JiB7ZiEDQor67CV7J287ZeMDQor67CV7Z2s7IOBDQor67CV7ZmN64+EDQor67CV7J6s7ZiEDQor67CV7Iuc7KCcDQor67CV7Z2s7ISdDQor67CV67OR7ISxDQor67CV6rSR7IudDQor67CV7KKF7J6sDQor67CV7Z2s7ISxDQor67CV7ISx66CoDQor67CV7KCV66y4DQor67CV7J6s7IS4DQor67CV7Z2s7ISxDQor67CV6rSR6riIDQor67CV64yA64+MDQor67CV67SJ7ZmYDQor67CV7Z2s7IahDQor67CV7ISg67KUDQor67CV65+J7LKgDQor67CV7J6s6rWtDQor67CV7Z2s7JewDQor67CV66+8642VDQor67CV65GQ7Zi4DQor67CV7ISx64+ZDQor67CV7Z2s7Je0DQor67CV64+Z7ISdDQor67CV7YOc7J6sDQor67CV6rK97LKgDQor67CV7Z2s7J6lDQor67CV7KKF656ADQor67CV7Jil6raMDQor67CV642V7LmYDQor67CV7Z2s7KeEDQor67CV7IiY6recDQor67CV7ISx6rG4DQor67CV7IOB7IOBDQor67CV7Z2s7LGEDQor67CV6rCR7JuQDQor67CV7KKF6rCRDQor67CV6riw6re8DQor67CV7Z2s7LKgDQor67CV7ISx656YDQor67CV7ISx67O1DQor67CV6rK47ZmYDQor67CV7Z2s7LKgDQor67CVIOu0iQ0KK+uwleyerO2YhA0KK+uwleyihe2ZlA0KK+uwle2drO2DnA0KK+uwleywveuCqA0KK+uwleq4uOq4sA0KK+uwleuMgOyaqQ0KK+uwqSDquLgNCivrsKnsnbztmJUNCivrsKntg5zsoJwNCivrsKnsmqnsl4UNCivrsKnqsr3sobANCivrsKnrj4jsiJgNCivrsKnsmKXspJENCivrsKnsnpDshK0NCivrsKnquLjsoJUNCivrsKnsi5ztmIQNCivrsKnqsbTtlbQNCivrsKnsirntmZQNCivrsKnrjZXspIANCivrsKnsmKXsnbQNCivrsKnsiJjsmqkNCivrsKntg5zsobANCivrsKnrr7jsoJUNCivrsKnsnbjtmZQNCivrsKnsnbjsi50NCivrsKnsiJztmLgNCivrsKnrs5HshK0NCivrsKnsooXsmIENCivrsKnrs5HsoJUNCivrsKnsmKXsiJgNCivrsKnsg4Hqs6QNCivrsKnsmIHsi50NCivrsKnqsr3tmZgNCivrsKnsmKTsl7ANCivrsKnsirnqt5wNCivrsKnsnqzsiJgNCivrsKnsg4Hsm5ANCivrsKnsg4HsmrQNCivrsKnsi6DshKANCivrsKnshKDsnpANCivrsKnqsJHrj4QNCivrsKnsg4HqtawNCivrsKnsmIHqt6ANCivrsKnsnoTsiJwNCivrsKnsg4HsmrANCivrsKnrs5HsiJgNCivrsKnsmIHrjIANCivrsKntmLjssL0NCivrsKnsooXtg50NCivrsKnsnqzsiJwNCivrsKnsmIHsnbUNCivrsKnrgpnrrJgNCivrsKnsoJXsl7ANCivrsKnrhbjtmLgNCivrsKnsmKXquIgNCivrsKnsmIHqtIANCivrsKnrjIDsiKANCivrsKnsmIHrj4QNCivrsKnsm5DsoJwNCivrsKnsirnsnqwNCivrsKntmITtl4wNCivrsKntlZzshLENCivrsKnsnKTshKANCivrsKnsg4HrhbgNCivrsKnqtJHstpwNCivrsKnsnYTrjZUNCivrsKnsnKTsobANCivrsKnsuaDshKANCivrsKntla3snpANCivrsKnsoJDtnawNCivrsKnsoJDsiJwNCivrsKnsg4Hsm4UNCivrsKnspJHslaANCivrsKnrs5HslrgNCivrsKnsoJDsl7ANCivrsKnsoJXsnbgNCivrsKnshLHsm4UNCivrsKnso7zqt5wNCivrsKnsoJXsiJwNCivrsKnquLDsnpANCivrsKnsmrDsiJgNCivrsKnsg4HshKANCivrsKnsooXquLANCivrsKnquLDrgqgNCivrsKnso7zsl7QNCivrsKnsnqzsiJwNCivrsKnso7zrgqgNCivrsKntjJDqtawNCivrsKnssKjtlZgNCivrsKnrj4TsmrANCivrsKntg5ztm4gNCivrsKnsg4HsiJgNCivrsKnsmIHsiJgNCivrsKnqsr3shJ0NCivrsKntlZzsoJUNCivrsKnrrLTrtIkNCivrsKnsp4Drj5kNCivrsKnrtoDsnbwNCivrsKntlZzsoJUNCivrsKnslrXshKANCivrsKnsnZHsi6QNCivrsKnrp5DsmYQNCivrsLAg7JqpDQor67Cw7ISx7Zi4DQor67Cw7ISd7JikDQor67Cw7YOc7KSADQor67Cw6rCR642VDQor67Cw7Jyk7Zi4DQor67Cw67OR67aEDQor67Cw67OR7ZiEDQor67Cw6rCR7ISdDQor67Cw7ISd7KGwDQor67Cw7KKF6recDQor67Cw7KKF7ZuIDQor67Cw6rK966WcDQor67Cw7KKF7LacDQor67Cw7Jil7IicDQor67Cw7KKF6recDQor67Cw6rK967ORDQor67Cw7IOB7J20DQor67Cw7Jqp7ZWZDQor67Cw7Jqp7KO8DQor67Cw6rK97Je0DQor67Cw7ZW07LKgDQor67Cw7IiY7KSADQor67Cw6rCV7IicDQor67Cw6rK97Zi4DQor67Cw7ZiE7JiBDQor67Cw7KCV7J20DQor67Cw7YOc7ZWcDQor67Cw6rOE7IigDQor67Cw7KKF7J6QDQor67Cw7IS47IiYDQor67Cw7JiB67O1DQor67Cw6rSA7Zi4DQor67Cw7JuQ66eMDQor67Cw7Jyk7KO8DQor67Cw6riw6rWsDQor67Cw6rSR7IiYDQor67Cw7J6s7YOdDQor67Cw7J2867aEDQor67Cw7ISx7ZWZDQor67Cw6rWQ66y4DQor67Cw7ZeM7IiYDQor67Cw7Jyk6re8DQor67Cw66eM7IudDQor67Cw6rWt66asDQor67Cw66+467CwDQor67Cw7JiB7ZmYDQor67Cw7IiY7JqwDQor67Cw6raM7IudDQor67Cw7J6s7JWUDQor67Cw7YOc7Zi4DQor67Cw7KCV7Zi4DQor67Cw6raM7ZalDQor67Cw7ISx6rOgDQor67Cw7KKF7ZeMDQor67Cw7IOB642VDQor67Cw6reA7ISgDQor67Cw6ri47JiBDQor67Cw7JiB642VDQor67Cw7JiB7IiYDQor67Cw6rec7ZmYDQor67Cw7Zi47IudDQor67Cw7ZW07LCsDQor67Cw7Jqp7IStDQor67Cw6re87JilDQor67Cw7JiB7IOBDQor67Cw7JiB7IicDQor67Cw7Zi46re8DQor67Cw6re87Zi4DQor67Cw7ZWY7JuQDQor67Cw66y47IStDQor67Cw7KKF7Zi4DQor67Cw6riI7IicDQor67Cw7IS47JuFDQor67Cw7JiB7KCQDQor67Cw66qF7Z2sDQor67Cw6riI7JWFDQor67Cw7ZWc7ISgDQor67Cw7J2A6rCcDQor67Cw7JiB65OdDQor67Cw6riw67SJDQor67Cw7YOc6riwDQor67Cw7KeE67KUDQor67Cw7ISx7KO8DQor67Cw6riw67aEDQor67Cw7ZeM7KeADQor67Cw7J6s7IiYDQor67Cw7ZW07JqxDQor67Cw6riw7IScDQor67Cw6riw7IicDQor67Cw7IOB6recDQor67Cw7KSA7LKgDQor67Cw6riw7ZqoDQor67Cw7JiB7YOcDQor67Cw7ZWZ6riwDQor67Cw67aE7ZmYDQor67Cw6ri47ZmYDQor67Cw7ZmN7IOBDQor67Cw7J207KSADQor67Cw7Iq57JqpDQor67Cw64KZ7Y+sDQor67Cw7KCV7ZiEDQor67Cw7ISx7ZmUDQor67Cw67OR64+ZDQor67Cw64Ko7KGwDQor67Cw66qF7ISdDQor67Cw6re87J20DQor67Cw7ZeM66+4DQor67Cw64Ko7Z2sDQor67Cw67OR6ri4DQor67Cw6rSR7LKgDQor67Cw7J2E6re8DQor67Cw64us6raMDQor67Cw7IKs6riwDQor67Cw7KeA7J6sDQor67Cw7Iic7JilDQor67Cw64yA7IudDQor67Cw7JiB6riwDQor67Cw6rK97IudDQor67Cw7Jqp7IigDQor67Cw64yA7Zi4DQor67Cw7ISx7IiZDQor67Cw7JuQ7IicDQor67Cw7KKF7JuFDQor67Cw642V66y4DQor67Cw7JiB7ISxDQor67Cw7JiB7JqpDQor67Cw7KKF7Je0DQor67Cw642V66y4DQor67Cw7Jyk7YOcDQor67Cw7IiY6rWtDQor67Cw7J6s7IiYDQor67Cw642V7ISdDQor67Cw7KKF67CwDQor67Cw7KeE7J20DQor67Cw7KSR6riwDQor67Cw642V7IiYDQor67Cw67O17Z2gDQor67Cw7J6Q6rCRDQor67Cw7JiB7JqpDQor67Cw642V7J6sDQor67Cw6re87ZmYDQor67Cw7KKF7ISdDQor67Cw6riw7J6QDQor67Cw64+E7JewDQor67Cw7IOB7ZmYDQor67Cw64+Z7ISdDQor67Cw7JiB7KKFDQor67Cw64+E7JewDQor67Cw7IiY6recDQor67Cw66eQ7JewDQor67Cw67aE7J28DQor67Cw64+Z7IiYDQor67Cw67OR7J6QDQor67Cw7YOc7ZiEDQor67Cw7J286rOkDQor67Cw64+Z7Ja4DQor67Cw7KCV7J6QDQor67Cw7Z2l7Z2sDQor67Cw7Iic7IK8DQor67Cw64+Z7ZuIDQor67Cw6riw7IOBDQor67Cw7Jqp7LKgDQor67Cw7J6s7ZaJDQor67Cw66eM6raMDQor67Cw7IOB7LKgDQor67Cw7J2Y7J21DQor67Cw7J6s7J28DQor67Cw66eM7IudDQor67Cw7LaY7J20DQor67Cw7Iic7LaYDQor67Cw7JiB656YDQor67Cw66eM7IukDQor67Cw64Ko7JqpDQor67Cw7JuQ7LKgDQor67Cw7YOc7J28DQor67Cw66eM7JiBDQor67Cw66y07JewDQor67Cw7IiY6re8DQor67Cw7Jyk7LKgDQor67Cw66eM7ZiEDQor67Cw6riw7ZmNDQor67Cw66+4642VDQor67Cw7ZmN7J6QDQor67Cw66eQ66eMDQor67Cw7Zic66y0DQor67Cw7KCV7Z2sDQor67Cw6rCR7Zi4DQor67Cw66eQ66eMDQor67Cw67OR66CoDQor67Cw7Iic7JqpDQor67Cw7ISx7YOcDQor67Cw66eQ7IudDQor67Cw7ISd7YOdDQor67Cw6riw6recDQor67Cw7ZiE7IiYDQor67Cw66y06ri4DQor67Cw7JiB7JykDQor67Cw6rOE7IiZDQor67Cw7JiB7JqwDQor67Cw66y07ISxDQor67Cw7Lmg6re8DQor67Cw7IS47IStDQor67Cw6riw7IiYDQor67Cw66y07Z2gDQor67Cw7ZWc7IicDQor67Cw7ZW067O0DQor67Cw7Jyk7ZiEDQor67Cw66y47J6QDQor67Cw7KeE7Z2sDQor67Cw6rK97LaYDQor67Cw7Iic64+ZDQor67Cw66y47Zi4DQor67Cw7J6s642VDQor67Cw7JiB7IiYDQor67Cw7J6s7ZmYDQor67Cw66y47Zy0DQor67Cw7ISx7ZWYDQor67Cw7ZmU7IiZDQor67Cw7ISg6riwDQor67Cw67KU7JqpDQor67Cw64+Z7IiYDQor67Cw66y46rSADQor67Cw7ZiE7IudDQor67Cw67OR6rWtDQor67Cw6riw7ZicDQor67Cw7ZeM7Z2sDQor67Cw7LC964KoDQor67Cw67OR7JuQDQor67Cw67OR7IudDQor67Cw66m07Je0DQor67Cw7JiB7IigDQor67Cw67OR7KCcDQor67Cw7KCV7Z2sDQor67Cw6riI66y4DQor67Cw7Jil7LacDQor67Cw67OR7ZWYDQor67Cw6rOE6recDQor67Cw7JiB7JilDQor67Cw7Jm47JilDQor67Cw67OR7ZW0DQor67Cw7J2A64+EDQor67Cw67O17JuFDQor67Cw7Zic7Jq0DQor67Cw67O06re8DQor67Cw7ISd7KGwDQor67Cw6rK97JewDQor67Cw7IOB6re8DQor67Cw67O17IicDQor67Cw7ISx7KGwDQor67Cw7JiB7LC9DQor67Cw7Z2s66OhDQor67Cw67SJ6riIDQor67Cw66eQ7KeEDQor67Cw7KSR7IigDQor67Cw66+87ZWZDQor67Cw67SJ7ISdDQor67Cw7Jik7JqxDQor67Cw7ZWE7KeEDQor67Cw66y47Zi4DQor67Cw67SJ7JqpDQor67Cw7Iq57Z2gDQor67Cw7KeE7IStDQor67Cw7JiB7ZWcDQor67Cw67SJ7KGwDQor67Cw67O17ZWcDQor67Cw7Lap7ISxDQor67Cw7ISx7JikDQor67Cw67SJ7ZiEDQor67Cw7J6s7ISgDQor67Cw7KeE7JuUDQor67Cw66y07JWgDQor67Cw67SJ7Zi4DQor67Cw7J6s7JqxDQor67Cw66eM7KKFDQor67Cw7LKc7ZGcDQor67Cw67aE656ADQor67Cw7KKF7JuQDQor67Cw7ZW07IudDQor67Cw64yA6rSADQor67Cw67aE7KO8DQor67Cw7JiB7ZmUDQor67Cw66+4642VDQor67Cw7KKF7J6QDQor67Cw7IK87IudDQor67Cw7JiB7IudDQor67Cw64+Z7JqxDQor67Cw7J6E6riwDQor67Cw7IK87ZmYDQor67Cw6rec7IudDQor67Cw6rCR7KeADQor67Cw7J6s642VDQor67Cw7IOB6raMDQor67Cw7ZaJ7IiYDQor67Cw7LaY7JilDQor67Cw7Iic65OdDQor67Cw7IOB6recDQor67Cw6ri47IudDQor67Cw64Ko7KGwDQor67Cw7ZWc7LKgDQor67Cw7IOB6ri4DQor67Cw7KSR656YDQor67Cw7ZiV7JqwDQor67Cw7IaM7ZmNDQor67Cw7IOB6ri4DQor67Cw7J6s7JewDQor67Cw64+Z7IudDQor67Cw7Z2l6rKwDQor67Cw7IOB6ri4DQor67Cw67OR6rWsDQor67Cw6rCV656YDQor67Cw7YOc6re8DQor67Cw7IOB64yADQor67Cw67OR7JewDQor67Cw7KSA7YOcDQor67Cw7ZWZ6ri4DQor67Cw7IOB66qoDQor67Cw66eM7ZmUDQor67Cw7KeE7Zi4DQor67Cw7Jq06rWsDQor67Cw7IOB67SJDQor67Cw7LCo7LKgDQor67Cw7ISx7JqpDQor67Cw7J6s7Zi4DQor67Cw7IOB67SJDQor67Cw66+47KGwDQor67Cw7IiY7IahDQor67Cw6riw7IudDQor67Cw7IOB7IigDQor67Cw7ISx7IudDQor67Cw7KCQ7ISxDQor67Cw64Ko7JewDQor67Cw7IOB7Je0DQor67Cw7KO87JWUDQor67Cw7IiY7ZqMDQor67Cw66qF7JilDQor67Cw7IOB7JqpDQor67Cw6riw7J28DQor67Cw67aE67aADQor67Cw7J6s7ZWcDQor67Cw7IOB7J28DQor67Cw6rec6regDQor67Cw7IOB7IiYDQor67Cw7KKF7IiYDQor67Cw7IOB7KKFDQor67CwIOyynA0KK+uwsOqyveuTnQ0KK+uwsOq4sOyEoA0KK+uwsOyDgeywvQ0KK+uwsOyxhOyasA0KK+uwsOqwkeyEnQ0KK+uwsOyDge2DnA0KK+uwsOyDge2VnA0KK+uwsOygle2DnA0KK+uwsOyDgeuemA0KK+uwsO2YhOyInA0KK+uwsOyDge2YhA0KK+uwsOyjvOyInA0KK+uwsOyEoOuqqQ0KK+uwsOu2gOq4uA0KK+uwsOyDge2YhA0KK+uwsOyDgeyImA0KK+uwsOyerOqyvQ0KK+uwsOyiheuPmQ0KK+uwsOyDge2YuA0KK+uwsOyVoOyekA0KK+uwsOyerOyImQ0KK+uwsOyVoO2ZmA0KK+uwsOyDge2biA0KK+uwsO2MkOyatA0KK+uwsOyYpO2VmQ0KK+uwsOyjvO2YuA0KK+uwsOyDge2drA0KK+uwsOyYpOyhsA0KK+uwsOq4uOycpA0KK+uwsOydkeyImA0KK+uwsOyEneusuA0KK+uwsOq3gOyEsQ0KK+uwsOq4sOyLnQ0KK+uwsOyiheuPhA0KK+uwsOyEneyVlA0KK+uwsOykkeyyoA0KK+uwsO2DnOyImQ0KK+uwsOybkOyasA0KK+uwsOyEney2nA0KK+uwsOqyveyZhA0KK+uwsOyEse2DnA0KK+uwsOydgOydvA0KK+uwsOyEoOyaqQ0KK+uwsOuCnOyEnQ0KK+uwsOyyoOybkA0KK+uwsOyYgeykgA0KK+uwsOyEoOyglQ0KK+uwsOuPmeyInA0KK+uwsOuvuO2YuA0KK+uwsOyduOyalA0KK+uwsOyEoO2YuA0KK+uwsOydvOyLnQ0KK+uwsOyniO2ZmA0KK+uwsOyyreyYgQ0KK+uwsOyEseuhnQ0KK+uwsO2ZqeuCqA0KK+uwsOywveqzpA0KK+uwsOyEseq1sA0KK+uwsOyEseuylA0KK+uwsO2VmeyImQ0KK+uwsOyaqe2ZlA0KK+uwsOyImOq3nA0KK+uwsOyEseyasA0KK+uwsOyiheyImA0KK+uwsOqwkeqyvQ0KK+uwsOyatOyasA0KK+uwsOyEseyasQ0KK+uwsOq0keyEnQ0KK+uwsO2Vre2VnA0KK+uwsOuvuOqxtA0KK+uwsOyEseyhsA0KK+uwsOq4sOyVlA0KK+uwsOuNle2YuA0KK+uwsOunjOu5iA0KK+uwsOyEse2DnA0KK+uwsO2Zjeq0gA0KK+uwsOyyoOyekA0KK+uwsOq3gOyhsA0KK+uwsOyEse2VnA0KK+uwsOuzteykgA0KK+uwsOuPmeyVoA0KK+uwsOycoOyLnQ0KK+uwsOyEse2YnA0KK+uwsOyaqe2YhA0KK+uwsOqwleyImQ0KK+uwsOuNleuztQ0KK+uwsOyEuOyXtA0KK+uwsOyEseq1rA0KK+uwsOqyve2DnQ0KK+uwsOyYgeq1rQ0KK+uwsOyGjOuztQ0KK+uwsOyKueybkA0KK+uwsOqyveuwsA0KK+uwsOqyveyEnQ0KK+uwsOyGjOyInA0KK+uwsOuzkeyYgQ0KK+uwsOywve2drA0KK+uwsOykgOyErQ0KK+uwsOyImOq0kQ0KK+uwsCDsooUNCivrsLDtjJDshJ0NCivrsLDrs5HshLENCivrsLDsiJjqt5wNCivrsLDsiJztmZQNCivrsLDsmbjsg4ENCivrsLDquLDqsJENCivrsLDsiJjsnpANCivrsLDsmIHsoJUNCivrsLDtg5zsmqkNCivrsLDrj5nrj4QNCivrsLDsiJjsoJUNCivrsLDtlZzsiJgNCivrsLDsiKDspIANCivrsLDrqoXsmqkNCivrsLDsiJjtmIQNCivrsLDsiJjtmLgNCivrsLDtnaXsoJUNCivrsLDsnqzsiJwNCivrsLDsiJjtmLgNCivrsLDrgqjrrLgNCivrsLDrgpztnawNCivrsLDqtJHrqqgNCivrsLDsiJntmZgNCivrsLDsiJzsiJgNCivrsLDsmIHsiJgNCivrsLDrqoXrj4QNCivrsLDsiJzrjZUNCivrsLDsoJzslZQNCivrsLDrgpjtmZgNCivrsLDshLHtmLgNCivrsLDsiJzshJ0NCivrsLDsiJzqt5wNCivrsLDtmITtmLgNCivrsLDsooXtlZkNCivrsLDsiJzsl7ANCivrsLDrp5DsooUNCivrsLDsp4TsmbgNCivrsLDrgqjsmqkNCivrsLDsiJzsmKUNCivrsLDtlbTtmLgNCivrsLDsmIHsi50NCivrsLDsg4HshKANCivrsLDsiJztg5wNCivrsLDsiJjstpwNCivrsLDsoJXsmrQNCivrsLDsmIHqt5wNCivrsLDsiJztnaANCivrsLDssKjsmIENCivrsLDshKDtmLgNCivrsLDqt7zso7wNCivrsLDsiKDtmY0NCivrsLDsg4HqsJENCivrsLDrs5Hqt7wNCivrsLDtmY3siKANCivrsLDsi6Dqta0NCivrsLDsnYTsp4QNCivrsLDsg4HtnawNCivrsLDqtZDshKANCivrsLDsi6DtmLgNCivrsLDsooXtmZgNCivrsLDshLHtmLgNCivrsLDslpHrjIANCivrsLDsjI3si50NCivrsLDqtJHsmqkNCivrsLDrr7ztmLgNCivrsLDsgrzrnoANCivrsLDslZTsnbQNCivrsLDri6zsobANCivrsLDsooXshKANCivrsLDrs7Ttg5wNCivrsLDsmIHquLANCivrsLDtlbTquLANCivrsLDsnKDso7wNCivrsLDsg4HtmIQNCivrsLDsmIHquLANCivrsLDsooXquLANCivrsLDrs5HshKANCivrsLDsl7DsiJwNCivrsLDsmIHquLgNCivrsLDsnqztmY0NCivrsLDrqoXsuZgNCivrsLDrnpjtmIQNCivrsLDsmIHrjIANCivrsLDqtZDsiJgNCivrsLDtlonsi50NCivrsLDrs5HtmLgNCivrsLDsmIHrj4QNCivrsLDshJ3sg4ENCivrsLDrkZDquLANCivrsLDqt4DsmrANCivrsLDsmIHrrLgNCivrsLDspp3shJ0NCivrsLDrtInsl7ANCivrsLDrs5HsmrANCivrsLDsmIHrrLgNCivrsLDsnoTso7wNCivrsLDquLDsm5ANCivrsLDtg5ztmZQNCivrsLDsmIHrsLENCivrsLDquLDsuZgNCivrsLDsmqnsiJwNCivrsLDsoJzsiJgNCivrsLDsmIHshJ0NCivrsLDsiJjrj5kNCivrsLDsg4HtmIQNCivrsLDtnazsnpANCivrsLDsmIHshK0NCivrsLDshLHsp4QNCivrsLDsg4Hso7wNCivrsLDsiJjqtowNCivrsLDsmIHsiJgNCivrsLDsuaDtnawNCivrsLDsnKTstpgNCivrsLDsmIHqta0NCivrsLDsmIHsi50NCivrsLDsmIHtmZgNCivrsLDqtJHtg50NCivrsLDqtJHsi50NCivrsLDsmIHsi6QNCivrsLDsnKTrnpgNCivrsLDrs5Hrj5kNCivrsLDsmqnsiJkNCivrsLDsmIHsmKUNCivrsLDsoITqtZANCivrsLDtlZntnawNCivrsLDtg5zsiJwNCivrsLDsmIHsm5ANCivrsLDsnYTrjZUNCivrsLDqtJHsmrQNCivrsLDsoJzrj5kNCivrsLDsmIHsnKgNCivrsLAg7J6QDQor67Cw7J6s7ZqoDQor67Cw64+Z64KoDQor67Cw7JiB7KGwDQor67Cw7ISg6rWtDQor67Cw7Z2s7JilDQor67Cw7Jqp7IudDQor67Cw7JiB7KGwDQor67Cw7KKF7KCVDQor67Cw7JiB6riwDQor67Cw7Iic64+ZDQor67Cw7JiB7KSADQor67Cw64+Z66eMDQor67Cw7Jqp7YOcDQor67Cw7LC967O1DQor67Cw7JiB7YOcDQor67Cw64us7ZmYDQor67Cw7KCV7Zi4DQor67Cw7JiB7Z2sDQor67Cw7JiB7ZWEDQor67Cw7IOB7IigDQor67Cw7LC97J6QDQor67Cw7IOB64yADQor67Cw7JiB7Zi4DQor67Cw7LaY7J6QDQor67Cw7ISx66OhDQor67Cw7Jyk7ZiEDQor67Cw7JiB7Zi4DQor67Cw67Cx7LCsDQor67Cw66y06rOkDQor67Cw7JiB7ISxDQor67Cw7JiB7ZmYDQor67Cw6rCR7IudDQor67Cw7KCV6rWsDQor67Cw642V7YOcDQor67Cw7Jil7IicDQor67Cw7LC965+JDQor67Cw7KCV6ri4DQor67Cw66y07IiYDQor67Cw7Jil7J6QDQor67Cw64yA7ZiEDQor67Cw7ISg7JiBDQor67Cw7ZiE7IiYDQor67Cw7Jil7KKFDQor67Cw7KCV7JykDQor67Cw7ZiV7IicDQor67Cw7ZW07IudDQor67Cw7Jqp6riwDQor67Cw7Zqo67mIDQor67Cw7KCQ7KO8DQor67Cw7KeE7IiYDQor67Cw7Jqp65OdDQor67Cw6riI7IiYDQor67Cw7Jik6re8DQor67Cw7ZWc7ISxDQor67Cw7Jqp7IicDQor67Cw66qF7ISgDQor67Cw7YyQ6riIDQor67Cw64yA67KUDQor67Cw7Jqp7IigDQor67Cw7KCV7JikDQor67Cw7IOB7JuQDQor67Cw7Iic7ZmYDQor67Cw7Jqp7IudDQor67Cw7Jqp7ZiEDQor67Cw6rOE7ISxDQor67Cw7IKs7Zi4DQor67Cw7Jqp7IudDQor67Cw64yA7J28DQor67Cw7ISg6rCRDQor67Cw7ZWc66eMDQor67Cw7Jqp7JWUDQor67Cw64+E66GdDQor67Cw7J2Y7IicDQor67Cw7YyQ7KO8DQor67Cw7Jqp7KeEDQor67Cw7IiY7Z2sDQor67Cw6rK97J21DQor67Cw64+Z7ISxDQor67Cw7Jqp7YOdDQor67Cw67OR7IicDQor67Cw7KeA7J6sDQor67Cw7ZWc6riIDQor67Cw7Jqp7ZeMDQor67Cw7J2A7Z2sDQor67Cw6rWQ7KCVDQor67Cw7LCs7LKgDQor67Cw7Jqp7Zi4DQor67Cw7LKc7JiBDQor67Cw7Iuk7IiYDQor67Cw7KCV7IiYDQor67Cw7Jqw7JuQDQor67Cw642V7IiYDQor67Cw7ISx7ISgDQor67Cw7KeE7IiYDQor67Cw7Jqx6riwDQor67Cw7J287KCQDQor67Cw7ZWc7KeADQor67Cw7IaM7YOcDQor67Cw7JuQ67aEDQor67Cw7IaM6riwDQor67Cw7IiZ7KGwDQor67Cw7LaY7IiYDQor67Cw7JuQ7ISdDQor67Cw7Zi47ISxDQor67Cw7LC96regDQor67Cw7IyN7ZiEDQor67Cw7JuQ7ZGcDQor67Cw7LCs7KGwDQor67Cw7IiY7KSADQor67Cw7ISg7J6EDQor67Cw7JuQ7Zi4DQor67Cw7J247JqwDQor67Cw7J6R7IudDQor67Cw7KKF7IiYDQor67Cw7JuQ7ZmYDQor67Cw7Iic6riwDQor67Cw7ZmN67aEDQor67Cw7ZWZ7IiYDQor67Cw7JuQ7Z2sDQor67Cw6rK97J20DQor67Cw7LC97Z2sDQor67Cw7J247ZuEDQor67Cw7Jyk7IStDQor67Cw7YOc6rG0DQor67Cw6reA7ISdDQor67Cw7ZWc67CwDQor67Cw7Jyk7KKFDQor67Cw66eQ7J21DQor67Cw6rWs64KoDQor67Cw65GQ7KCVDQor67Cw7Jyk7KeEDQor67Cw7KCV7Z2sDQor67Cw7Ja47JuFDQor67Cw7Jil7Ja1DQor67Cw7Jyk7LKcDQor67Cw7KCV7IiYDQor67Cw7JiB6rSADQor67Cw6riw656ADQor67Cw7Jyk7ZGcDQor67Cw7KKF7Zi4DQor67Cw7IiY7JykDQor67Cw67O16re8DQor67Cw7Jyk7ZWcDQor67Cw7YOc6rCVDQor67Cw7KKF66GADQor67Cw67OR7IudDQor67Cw7J2E67SJDQor67Cw7Zi47JuFDQor67Cw7KCV7YOcDQor67Cw7ZmN7ZicDQor67Cw7J2E7ISgDQor67Cw7J6s64yADQor67Cw6rK97Zi4DQor67Cw7LCs6rWsDQor67Cw7J2M7JewDQor67Cw7J247IiYDQor67Cw7J2A7KeEDQor67Cw7Jqp7IStDQor67Cw7J2R7JuQDQor67Cw7JiB7ISgDQor67Cw7ISx7ISgDQor67Cw7YOc7LacDQor67Cw7J2Y7ZGcDQor67Cw7Jqw7JqUDQor67Cw7Jyg6re8DQor67Cw7KeA66y4DQor67Cw7J2Y7ZGcDQor67Cw7ZiE7Z2sDQor67Cw7J2A7IStDQor67Cw7ZW067SJDQor67Cw7J2Y7ZGcDQor67Cw7JiB7JWUDQor67Cw7LaY6rK9DQor67Cw7IOB66CkDQor67Cw7J207ZmUDQor67Cw7ISx7ZmYDQor67Cw7ZeM7ZuIDQor67Cw6riI66eQDQor67Cw7J246riwDQor67Cw6riw7Jq0DQor67Cw66qF7JewDQor67Cw66qF64+ZDQor67Cw7J247Zi4DQor67Cw66qF6rOkDQor67Cw7KKF64WEDQor67Cw6riw7Je0DQor67Cw7J286rK9DQor67Cw7KKF64usDQor67Cw7Iah6re8DQor67Cw6rSR7IiYDQor67Cw7J286raMDQor67Cw66y47KGwDQor67Cw66qF6recDQor67Cw7KKF6riwDQor67Cw7J287ISgDQor67Cw6rK9656YDQor67Cw6re57JilDQor67Cw7JiB66eMDQor67Cw7J287ZiEDQor67Cw7IiY7Z2sDQor67Cw7LKg7ZiEDQor67Cw7KKF7KO8DQor67Cw7J287ZiEDQor67Cw7JuQ67CwDQor67Cw66qF7J6QDQor67Cw6riw6rSADQor67Cw7J287ZmUDQor67Cw7J6s6re8DQor67Cw64+Z7JWUDQor67Cw7KKF7ZiEDQor67Cw7J287ZmYDQor67Cw7J6l66a8DQor67Cw67OR7Zi4DQor67Cw7Iic7ISgDQor67Cw7J6E64+EDQor67Cw7JiB6rOEDQor67Cw7ZeM7ZmUDQor67Cw7LaY6rWQDQor67Cw7J6E64+EDQor67Cw7J6s7IicDQor67Cw7LGE7ISdDQor67Cw6re87IStDQor67Cw7J6E7IicDQor67Cw7IS47IudDQor67Cw6rCV7IudDQor67Cw7JiB6riIDQor67Cw7J6l7IiYDQor67Cw7Iug7JqwDQor67Cw7JaR6riwDQor67Cw66+47JilDQor67Cw7J6l7Zi4DQor67Cw7KKF7ZiEDQor67Cw6rK97IiYDQor67Cw66eQ7KeBDQor67Cw7J6l7Zi4DQor67Cw7ZmN67SJDQor67Cw65GQ7KeEDQor67Cw6rec7Je0DQor67Cw7J6s6rSADQor67Cw67OR7KKFDQor67Cw7KKF7KeEDQor67Cw7Z2s67CwDQor67Cw7J6s6raMDQor67Cw64W47IucDQor67Cw66qF7JuQDQor67Cw7IiY7Z2gDQor67Cw7J6s6recDQor67Cw65Od7JyoDQor67Cw7ZiE6rWsDQor67Cw7JaR67SJDQor67Cw7J6s64WEDQor67Cw7YyQ7IiYDQor67Cw7KeE7ISgDQor67Cw642V7J6EDQor67Cw7J6s642VDQor67Cw7LCo66eMDQor67Cw7Jqp7IudDQor67Cw64+Z7IiYDQor67Cw7J6s66eMDQor67Cw7YOc7ISxDQor67Cw7J6s7KGwDQor67Cw7IS47YOdDQor67Cw7J6s67SJDQor67Cw7IiY7JikDQor67Cw7KKF7Zi4DQor67Cw7ISx67SJDQor67Cw7J6s7IOBDQor67Cw7IiY7IiYDQor67Cw7ISg65+JDQor67Cw7KKF7KGwDQor67Cw7J6s7IiYDQor67Cw64us7JqwDQor67Cw64+I7ZWEDQor67Cw7IiY64+ZDQor67Cw7J6s7JiBDQor67Cw7ISx7Y+sDQor67Cw7LKg7J6QDQor67Cw7JiB66eMDQor67Cw7J6s7JykDQor67Cw7KSA7J6sDQor67Cw7KSA7ZWtDQor67Cw7JiB7ZuIDQor67Cw7J6s7J2ADQor67Cw7IOB64KoDQor67Cw6rec7JqpDQor67Cw6rSR7JiBDQor67Cw7J6s7J21DQor67Cw7JiB7IudDQor67Cw7IS47ZiEDQor67Cw7J2E7ZuIDQor67Cw7J6s7Z2lDQor67Cw64+E7Je0DQor67Cw7ISx7JiBDQor67Cw7KCV7IudDQor67Cw7KCQ67O1DQor67Cw7YOc7JiBDQor67Cw7Iq57IiYDQor67Cw7ZWZ7JqpDQor67Cw7KCQ7ISgDQor67Cw64+Z7JWUDQor67Cw65GQ7LaYDQor67Cw6reA64WEDQor67Cw7KCQ7ZGcDQor67Cw7KCV7JqpDQor67Cw64W47IiYDQor67Cw66qF66eMDQor67Cw7KCV6rCRDQor67Cw7JiB7J20DQor67Cw6riw7ZiEDQor67Cw64+Z7J6QDQor67Cw7KCV6ri4DQor67Cw7IaM67O1DQor67Cw7KeE7IudDQor67Cw7ISx7JiBDQor67Cw7KCV64+EDQor67Cw66+47ZiVDQor67Cw7J6l7IiYDQor67Cw7JiB7JWUDQor67Cw7KCV7IiYDQor67Cw6ri467O0DQor67Cw7KCV7YOcDQor67Cw7KKF67CwDQor67Cw7KCV7IudDQor67Cw66eQ6rSRDQor67Cw7LaY6rWsDQor67Cw64us7JuQDQor67Cw7KCV7JuFDQor67Cw7J2R7JqpDQor67Cw7JuQ7KSADQor67Cw6riI7JuQDQor67Cw7KCV7JuQDQor67Cw6rCR6ri4DQor67Cw7KeE7ZmUDQor67Cw7ZmN7JqpDQor67Cw7KCV7KCcDQor67Cw6rK97YyUDQor67Cw66qF7ZiEDQor67Cw656Y7ISdDQor67Cw7KCV7YOcDQor67Cw7LC96rK9DQor67Cw6rK96raMDQor67Cw7JuQ6riwDQor67Cw7KCV7ZWcDQor67Cw64yA7ZiEDQor67Cw7LKt67CwDQor67Cw7ZeM7JikDQor67Cw7KCV7ZmYDQor67Cw7IiY7JiBDQor67Cw6rec6re8DQor67Cw66qF7JikDQor67Cw7KCV7Z2sDQor67Cw7KCV7ZiEDQor67Cw7JiB7ZmYDQor67Cw7J6l7ISgDQor67Cw7KKF66eMDQor67Cw7IK86recDQor67Cw7IS47JqpDQor67Cw7YOc7IigDQor67Cw7KKF7IudDQor67Cw67OR7JWgDQor67Cw6rK97IigDQor67Cw7LCo6rWtDQor67Cw7KKF7JqxDQor67Cw7ZmN7IiYDQor67Cw6riw7IudDQor67Cw7KKF7JesDQor67Cw7KKF7LKgDQor67Cw7ZiE7IStDQor67Cw6rK97JikDQor67Cw7KKF7J6QDQor67Cw7KKF7ZmUDQor67Cw642V7IudDQor67Cw7KKF7Zi4DQor67Cw7J6E6recDQor67Cw7KKF7Z2sDQor67Cw7YOc64+EDQor67Cw7IOB7Je0DQor67Cw6rWQ67SJDQor67Cw7KO87ZWcDQor67Cw66eM7IiYDQor67Cw7JuQ6riwDQor67Cw7Jq07JuQDQor67Cw7KSA6re8DQor67Cw7Jik7JqpDQor67Cw7Zqo7J6sDQor67Cw7JuQ7JWFDQor67Cw7KSA7Zi4DQor67Cw7KeA7IudDQor67Cw7YOc7JuFDQor67Cw7Iic6rK9DQor67Cw7KSR7Zi4DQor67Cw7JiB7ZmYDQor67Cw7ISg7ZuIDQor67Cw7ISx7IiYDQor67Cw7KeE64+ZDQor67Cw7LCo7IiYDQor67Cw7ISx7ZWZDQor67Cw6rK97ZiEDQor67Cw7KeE7JiBDQor67Cw7KO866e5DQor67Cw7IOB7IStDQor67Cw7ISd7J6QDQor67Cw7LCo66y4DQor67Cw7J287ISdDQor67Cw6rCR7Zi4DQor67Cw7J6Q6riwDQor67Cw7LC964yADQor67Cw7KeA7ZW0DQor67Cw6rec7IiYDQor67Cw7ISg6regDQor67Cw7LC97IiYDQor67Cw7ISx7IiYDQor67Cw66eQ7ZmUDQor67Cw6riI6recDQor67Cw7LC97IudDQor67Cw7KCV7IicDQor67Cw7IyN7IOBDQor67Cw7Jik7Je0DQor67Cw7LC97JqxDQor67Cw64us7JqpDQor67Cw7Jil7JWUDQor67Cw6rK97Je0DQor67Cw7LC97J24DQor67Cw7KKF7JikDQor67Cw6reA7IiYDQor67Cw67OR7KGwDQor67Cw7LC97Zi4DQor67Cw7Zi47IudDQor67Cw7KCV64+MDQor67Cw7Jqp7JqpDQor67Cw7LC97Zi4DQor67Cw7KCV7Z2sDQor67Cw7ISx7JqpDQor67Cw7J2E7ZiEDQor67Cw7LKc67KUDQor67Cw64us6re8DQor67Cw7KKF7KSADQor67Cw7KKF64yADQor67Cw7Lmg7KeEDQor67Cw7JiB6re8DQor67Cw7J6s7KSRDQor67Cw7J247Zi4DQor67Cw7Lmg7ZmYDQor67Cw64+E7LKgDQor67Cw7J2Y7Je0DQor67Cw7J6s7ZiEDQor67Cw7YOc6rOkDQor67Cw7IKs6riIDQor67Cw7IiZ7IiYDQor67Cw7YOc7Zi4DQor67Cw7YOc66eMDQor67Cw7IOB7Zi4DQor67Cw7KSA7Zi4DQor67Cw7Iah64KoDQor67Cw7YOc66qFDQor67Cw7KKF7YOcDQor67Cw7J247JykDQor67Cw6reA7JiBDQor67Cw7YOc7ISdDQor67Cw7J287J6QDQor67Cw7J6s7JuQDQor67Cw7IS46raMDQor67Cw7YOc7JewDQor67Cw7Zqo7LKgDQor67Cw7ISx7ZmYDQor67Cw6rK97Z2sDQor67Cw7YOc7J6QDQor67Cw7J6s7IusDQor67Cw67OR7ZWcDQor67Cw7KKF6rOkDQor67Cw7YOc7ZiEDQor67Cw656Y7Zi4DQor67Cw64+Z7IiYDQor67Cw7J2E7Zi5DQor67Cw7YOc7Zi4DQor67Cw7ZW07J6QDQor67Cw7JiB7Z2sDQor67Cw7Jqw7IicDQor67Cw7YOc7Zi4DQor67Cw7IOB7IiYDQor67Cw6rSR6recDQor67Cw7J6s7Z2sDQor67Cw7YOc7ZmYDQor67Cw7KeE7J28DQor67Cw7J6l7ZmYDQor67Cw6rCR7ISgDQor67Cw7YyQ7IudDQor67Cw642V7Ja4DQor67Cw66y464KoDQor67Cw7KKF7Je0DQor67Cw7YyQ7J20DQor67Cw7KCV7IiZDQor67Cw67OR7JWUDQor67Cw7LCo7JuQDQor67Cw7ZWE64KoDQor67Cw7ISx6rOEDQor67Cw6rK96riwDQor67Cw7KCV7ZiEDQor67Cw7ZWE66CoDQor67Cw7ZeM7IudDQor67Cw7ISx7J21DQor67Cw7IiY7KSADQor67Cw7ZWE7JewDQor67Cw7ZWZ6re8DQor67Cw6riw66y4DQor67Cw66+47IOdDQor67Cw7ZWY7JiBDQor67Cw66+47Zi4DQor67Cw7YOc7JqxDQor67Cw7KCV7IudDQor67Cw7ZWY7JiBDQor67Cw7Iq57LKgDQor67Cw7IOB7IiZDQor67Cw7Iic65OdDQor67Cw7ZWY7ZiEDQor67Cw7KCV67aADQor67Cw64yA64KoDQor67Cw7J6s7Z2sDQor67Cw7ZWZ64+MDQor67Cw7JiB7ZWYDQor67Cw67Cx7YOcDQor67Cw7YOc7Z2sDQor67Cw7ZWZ7IudDQor67Cw6rO16rWQDQor67Cw7Jyk7JiBDQor67Cw7Jm47IicDQor67Cw7ZWc66qoDQor67Cw7ZWZ6re8DQor67Cw7Jil7ZmYDQor67Cw7IK87IiYDQor67Cw7ZWc66qoDQor67Cw7ISx7ZmUDQor67Cw7JiB7IicDQor67Cw7ISx6raMDQor67Cw7ZWc7KGwDQor67Cw7IiY7KKFDQor67Cw67OR7Z2sDQor67Cw6rG07ZiEDQor67Cw7ZW066eMDQor67Cw7KSR7IicDQor67Cw7ZiE66OhDQor67Cw7ISx7Z2sDQor67Cw7ZW07ISdDQor67Cw7JuQ7ZyYDQor67Cw6riw7ISxDQor67Cw7KKM7Zi4DQor67Cw7ZW07ISxDQor67Cw7ISx7ZmUDQor67Cw7JiB7Je0DQor67Cw7IOB6rWsDQor67Cw7ZW07IigDQor67Cw7KSR6rOkDQor67Cw6rG07Z2sDQor67Cw64Ko7Zy0DQor67Cw7ZiE7IicDQor67Cw7Jq06re8DQor67Cw64uk6raMDQor67Cw7YOc66y4DQor67Cw7ZiV7ZWcDQor67Cw7J6E7LmYDQor67Cw7ZiE7J6QDQor67Cw642V7ZmNDQor67Cw7Zic7IiZDQor67Cw7JiB7Zy0DQor67Cw64yA7ISdDQor67Cw7KCQ7KGwDQor67Cw7Zi46rK9DQor67Cw64yA7JuQDQor67Cw7YOc7LKgDQor67Cw7KCV7Jq0DQor67Cw7Zi46raMDQor67Cw64us7KO8DQor67Cw7LC97IudDQor67Cw7KO87JuQDQor67Cw7Zi47KGwDQor67Cw7KCQ7J20DQor67Cw7ISx7KO8DQor67Cw67OR7Z2sDQor67Cw7Zi47KeEDQor67Cw66y07ZiVDQor67Cw66y06rOkDQor67Cw6riw7JiBDQor67Cw7ZmN64yADQor67Cw7ISd7ISdDQor67Cw7KKF6re8DQor67Cw64yA7LacDQor67Cw7ZmN642VDQor67Cw7KKF7KGwDQor67Cw64W47IiYDQor67Cw7IOB6rWtDQor67Cw7ZmN7Je0DQor67Cw7IS47Zi4DQor67Cw7KCV7Zi4DQor67Cw67OR7JewDQor67Cw7ZmN7YOBDQor67Cw7IiY6rSRDQor67Cw7Jqp66WcDQor67Cw7KKF6re8DQor67Cw7Zqo7JqxDQor67Cw7IiY7ZiEDQor67Cw7ZmN6re8DQor67Cw6rSR64KoDQor67Cw7Zqo7JuQDQor67Cw7JiB7IigDQor67Cw66y47IiYDQor67Cw7KCV7ZWZDQor67Cw7Zqo7JuQDQor67Cw7Jqp6recDQor67Cw7ISx7IiZDQor67Cw7YOc7ZyYDQor67Cw7Zqo7KO8DQor67Cw7KCV7J20DQor67Cw7YOc7IOBDQor67Cw7KCV6riwDQor67CxIOyEnQ0KK+uwseyImO2drA0KK+uwseyerOq3oA0KK+uwseyYgey2nA0KK+uwseqwke2doA0KK+uwse2VtO2drA0KK+uwseyerO2drA0KK+uwseyEse2YhA0KK+uwseqyveumvA0KK+uwse2drOq4uA0KK+uwseygleykgA0KK+uwseq0keydtQ0KK+uwseqyveyInA0KK+uwseqyvey2nA0KK+uwseuvvOyInA0KK+uwseygleyCsA0KK+uwseqyveyyoA0KK+uwseyEseuwsQ0KK+uwseyduOyehA0KK+uwseykgOyasA0KK+uwseq0keyImA0KK+uwseykkeyEoA0KK+uwse2Zjeq3oA0KK+uwseydmOuztQ0KK+uwseq0keybhQ0KK+uwse2ajOuPhA0KK+uwseyaqeyLnQ0KK+uwseyjvO2drA0KK+uwseq0keydvA0KK+uwseq4sOyLnQ0KK+uwseyGjOq4uA0KK+uwseq3nO2drA0KK+uwseq0keyghA0KK+uwseuzuOyerA0KK+uwseydmOykgA0KK+uwseyEseyLnQ0KK+uwseq2jOyasQ0KK+uwseqyveyInA0KK+uwseyDgeyyoA0KK+uwse2ZjeyEnQ0KK+uwseq3vO2YuA0KK+uwseq4iOyXtA0KK+uwseygle2ZmA0KK+uwseydhO2YuA0KK+uwseq4sOyhsA0KK+uwseyatOq3vA0KK+uwseyInOuNlQ0KK+uwse2VtO2ZmA0KK+uwseq4sO2DnA0KK+uwseuNleykgA0KK+uwseustOyjvA0KK+uwseuNleu2hA0KK+uwseq4uOyEoA0KK+uwseqyve2YuA0KK+uwseyerOyErQ0KK+uwseqyve2ZmA0KK+uwseuCqOujoQ0KK+uwseyEneyEsQ0KK+uwseynhOunjA0KK+uwseyInOyEsQ0KK+uwseuCqOyEnQ0KK+uwseusuOyEoA0KK+uwseyZuOycqA0KK+uwseyerOyXtA0KK+uwseuCqOyImA0KK+uwseuMgOyekA0KK+uwseq1kO2DnA0KK+uwseq3nOyLnQ0KK+uwseuCqOynhA0KK+uwseydvOyEuA0KK+uwsSDtmLgNCivrsLHshLHquLANCivrsLHrhbjsiJgNCivrsLHrrLTrrLQNCivrsLHtmLjsiJkNCivrsLHquIjsmYQNCivrsLHrjIDtlZkNCivrsLHsiKDsm5ANCivrsLHsg4HtmIQNCivrsLHtmZjslZQNCivrsLHrjIDtmIQNCivrsLHso7zrrLgNCivrsLHrkZDstpwNCivrsLHrj4TrrLgNCivrsLHrjIDtmLgNCivrsLHsmIHsmqkNCivrsLHsoJDssqANCivrsLHsmqnssqANCivrsLHrj4TrtIkNCivrsLHquLDrqoUNCivrsLHtg5zstpwNCivrsLHrqoXtmLgNCivrsLHrj5nsiKANCivrsLHtmITrtoQNCivrsLHsoJXtnawNCivrsLHtg5zsobANCivrsLHrj5nsoJwNCivrsLHso7zsl7QNCivrsLHsnZjtg50NCivrsLHtjJDsi50NCivrsLHrj5nsoJwNCivrsLHsmqnsmrQNCivrsLHsspzsi50NCivrsLHsl7DsmZUNCivrsLHrkZDsnqwNCivrsLHshLHqt7wNCivrsLHqsr3qtZANCivrsLHsmqnspIANCivrsLHrkZDtmIQNCivrsLHsg4HslrUNCivrsLHshLHqt5wNCivrsLHsnbzsi6wNCivrsLHrkZDtmIQNCivrsLHtmY3quLANCivrsLHtjJDtg50NCivrsLHrs7XrjZUNCivrsLHrkZDtmIQNCivrsLHrjZXsiJgNCivrsLHsmIHrs7UNCivrsLHsi6DsmKUNCivrsLHrkZDtmIQNCivrsLHrj5nrrLgNCivrsLHsg4HquLANCivrsLHsmIHshKANCivrsLHrp4zquLANCivrsLHso7ztmZgNCivrsLEg7Zi4DQor67Cx7KCQ7JqpDQor67Cx66eM64yADQor67Cx7KCV7ZiEDQor67Cx7KKF7JiBDQor67Cx7ZiV6regDQor67Cx66eQ7IiYDQor67Cx7KeI7ZiEDQor67Cx6rSA7ZmYDQor67Cx7KCV7JilDQor67Cx66ek7ZalDQor67Cx6rK97IiZDQor67Cx65Od7ZiEDQor67Cx7Z2s7ISdDQor67Cx66qF7IiYDQor67Cx7JiB6529DQor67Cx7Jyk6529DQor67Cx7KKF7ZmYDQor67Cx66qF7ZiEDQor67Cx64+Z7IScDQor67Cx7J2A7IigDQor67Cx7J287Zi4DQor67Cx66q966CoDQor67Cx7Iic7IudDQor67Cx66qF7KSADQor67Cx67KU6riwDQor67Cx66y06rCRDQor67CxIO2YhA0KK+uwseydgOy2mA0KK+uwseywqOuMgA0KK+uwseustOyaqQ0KK+uwseuLrOyEnQ0KK+uwse2XjOyImA0KK+uwseyCvOyehA0KK+uwseustOyhsA0KK+uwseq4sO2drA0KK+uwseyEse2biA0KK+uwseykke2drA0KK+uwseusuOunjA0KK+uwseyDgeq4sA0KK+uwseycoeydgA0KK+uwseyerOyImA0KK+uwseusuOyDgQ0KK+uwseuRkOyInA0KK+uwseyImeuNlQ0KK+uwseyjvOyYgQ0KK+uwseusuO2YhA0KK+uwseq3vO2DnA0KK+uwseuzteyglQ0KK+uwseu0ieybkA0KK+uwseuvvOyImQ0KK+uwseynhOyLnQ0KK+uwseywveykkQ0KK+uwseqyve2YhA0KK+uwseuwqeq4sA0KK+uwsSDsm5ANCivrsLHsmIHtnawNCivrsLHqsr3suZgNCivrsLHrs7TrsLANCivrsLHsmIHsi50NCivrsLHrh4zsgrwNCivrsLHtlZzsg4ENCivrsLHrs7TtmIQNCivrsLHsnbTtmLgNCivrsLHsmIHtm4gNCivrsLHrrLTsi50NCivrsLHrs7XquLANCivrsLHtmITtg4ENCivrsLHtmJXtmZQNCivrsLHssq3tmLgNCivrsLHrs7XsiJwNCivrsLHquLDsobANCivrsLHsmIHtmZgNCivrsLHrr7zrp4wNCivrsLHrtInrrLgNCivrsLHsg4Hsl7ANCivrsLHqtJHquLANCivrsLHtg5zsl4UNCivrsLHrtoDsnoQNCivrsLHtmLjsi50NCivrsLHshLHrgqgNCivrsLHshJ3tm4gNCivrsLHsgqzqsJUNCivrsLHsp4DsmIENCivrsLHqtJHtg5wNCivrsLHqt7ztmLgNCivrsLHsgrzsiJgNCivrsLHsoJXroYANCivrsLHsnqzsmrANCivrsLHrkZDsp4QNCivrsLHsg4HqsrANCivrsLHsnqzsm4UNCivrsLHqsr3suZgNCivrsLHshLHssYQNCivrsLHsg4HrjZUNCivrsLHrj5nsiJkNCivrsLHsooXqt5wNCivrsLHqt7zsl7ANCivrsLHshJ3rj4QNCivrsLHshLHrtIkNCivrsLHsnqzsi50NCivrsLHsmIHtnawNCivrsLHshJ3snpANCivrsLHsm5DsmIENCivrsLHqt4DtmLgNCivrsLHshLHrjZUNCivrsLHshJ3spIANCivrsLHqt5zsp4QNCivrsLHsnqzsoJUNCivrsLHshLHqta0NCivrsLHshJ3sp4QNCivrsLHtg5zsl7ANCivrsLHsmIHssKwNCivrsLHssKzrs7UNCivrsLHshKDtmIQNCivrsLHsnqztlqUNCivrsLHsnqXsiJgNCivrsLHssL3ssqANCivrsLHshLHqta0NCivrsLHsmIHsmKQNCivrsLHqta3smqkNCivrsLHqtazsoJUNCivrsLHshLHqtowNCivrsLHssL3qt5wNCivrsLHslYTtmLgNCivrsLHshJ3quLgNCivrsLHshLHquLANCivrsLHqsJHrjZUNCivrsLHshKDtmLgNCivrsLHsnYDrj4wNCivrsLHshLHquLANCivrsLHtg5zrprwNCivrsLHsi6DtmLgNCivrsLHqta3sp4QNCivrsLHshozrj4wNCivrsLHqsr3siJwNCivrsLHsgrzsnqwNCivrsLHsnITqt5wNCivrsLHshozrtoANCivrsLHsoJXri6wNCivrsLHsmqntmLgNCivrsLHtjJDsnqwNCivrsLHshozsiJgNCivrsLHtg5ztlZkNCivrsLHtjJDtm4gNCivrsLHtlZnrp4wNCivrsLHshozsm4UNCivrsLHshLHtmZgNCivrsLHsooXsobANCivrsLHtjJDqta0NCivrsLHshozsobANCivrsLHri6zqsr0NCivrsLHrj5nsiJgNCivrsLHsmqnsm5ANCivrsLHshqHtlZkNCivrsLHshLjsobANCivrsLHrtInqt6ANCivrsLHspIDslZQNCivrsLHsiJjsoJUNCivrsLHsooXsmqkNCivrsLHrtInstpgNCivrsLHrspTsg4ENCivrsLHsiJjssL0NCivrsLHtg5zquLANCivrsLHsgrzrhbgNCivrsLHquLDtmLgNCivrsLHsiJnsnpANCivrsLHsmqnsiJgNCivrsLHsmKXsobANCivrsLHsg4HtmLgNCivrsLHsiJzrjZUNCivrsLHsooXshJ0NCivrsLHsgqzsnoQNCivrsLHtmansmKUNCivrsLHsiJzshKANCivrsLHquLDrrLgNCivrsLHssL3rk50NCivrsLHtmIHspIANCivrsLHsiJzsmKUNCivrsLHrqoXsm5ANCivrsLHrrLjsiJgNCivrsLHsoJXsnpANCivrsLHsiJztg5wNCivrsLHsg4HstpwNCivrsLHshLHqt6ANCivrsLHquLDqsbQNCivrsLHsirnqt5wNCivrsLHrj5nsiJgNCivrsLHshLHshJ0NCivrsLHsmKXshLENCivrsLHsirnrjZUNCivrsLHtlbTtmZgNCivrsLHsmqnqt5wNCivrsLHrs5HtlZgNCivrsLHsirnroZwNCivrsLHrj5nquLgNCivrsLHrqoXsspwNCivrsLHsiJztnawNCivrsLHsirnrp4wNCivrsLHsoJXsmIENCivrsLHsoJXsi50NCivrsLHqt5zsiJgNCivrsLHsirnsl7QNCivrsLHssqDssKwNCivrsLHspJHsmrANCivrsLHshozsiJwNCivrsLHsirnsmrENCivrsLHrr7jsiJgNCivrsLHsiKDqt7wNCivrsLHsmqnqtJENCivrsLHsirntg5wNCivrsLHsoJDsm5ANCivrsLHsoJXsiJgNCivrsLHshLHquLgNCivrsLHsirntg5wNCivrsLHsmIHssqANCivrsLHsmIHqtawNCivrsLHsoJXtmqgNCivrsLHsirntg50NCivrsLHsnYDqt7kNCivrsLHsooXshKANCivrsLHrjZXtlZwNCivrsLHsmIHqt5wNCivrsLHsmIHsmIENCivrsLHqt5zsiKANCivrsLHsmIHtg5wNCivrsLHsmIHqt5wNCivrsLHtnaXsnZgNCivrsLHsiJjrpaANCivrsLHsmIHtmY0NCivrsLHsmIHquLANCivrsLHshJ3siJgNCivrsLHsmIHtmZgNCivrsLHquLDsiJgNCivrsLHsmIHrsLANCivrsLHsuaDsiJwNCivrsLHrp4zsmKQNCivrsLHsnqzsmKQNCivrsLHsmIHsiJgNCivrsLHsiJzsnbUNCivrsLHrj4Tqt7wNCivrsLHrqoXso7wNCivrsLHsmIHsiJgNCivrsLHsg4HqsbQNCivrsLHrgqjrsLANCivrsLHsooXquLgNCivrsLHsmIHsi50NCivrsLHqtJHstpwNCivrsLHsnbzspIANCivrsLEg66qFDQor67Cx7JiB7KO8DQor67Cx7ZmU7JqwDQor67Cx7ZmN7J6QDQor67Cx7Jqp67O0DQor67Cx7JiB7KSADQor67Cx7Jil7IiYDQor67Cx7IaQ7LKgDQor67Cx7KeE6recDQor67Cx7JiB7LKgDQor67Cx7J6s64+EDQor67Cx64yA7YOcDQor67Cx7LaY7KGwDQor67Cx7JiB7LaYDQor67Cx7Jq06rWtDQor67Cx7J6s7YOcDQor67Cx7Jq07ISgDQor67Cx7JiB7Zi4DQor67Cx67OR7JuQDQor67Cx6riw7ZqoDQor67Cx7YyQ64+ZDQor67Cx7JiB7Zi4DQor67Cx7IOB7Zi4DQor67Cx7JiB6raMDQor67Cx7KKF7KO8DQor67Cx7JiB7Zi4DQor67Cx7KCc64+ZDQor67Cx7Iic7ZmYDQor67Cx7JiB7ZWcDQor67Cx7JiB7Zi4DQor67Cx6re87KGwDQor67Cx7KKF6re8DQor67Cx6rWQ7J6QDQor67Cx7JiB7Z2sDQor67Cx7IOB6riwDQor67Cx6rec6raBDQor67Cx67SJ7IicDQor67Cx7Jil656ADQor67Cx66y47J6QDQor67Cx7ZmY7Z2sDQor67Cx64+Z7KeEDQor67Cx7Jqx7JqpDQor67Cx7Jew7IiYDQor67Cx7KSR7Ja1DQor67Cx7J6s7Z2sDQor67Cx7Jq066GcDQor67Cx7ISx7KKFDQor67Cx7Jyk7IicDQor67Cx7ISx66y4DQor67Cx7Jq07JqwDQor67Cx7LKt7KSRDQor67Cx7ISx7JqpDQor67Cx7IaM7KeEDQor67Cx7Jq07JqwDQor67Cx7KCV7IudDQor67Cx7KO87KGwDQor67Cx7KKF7ZWEDQor67Cx7Jq07LKgDQor67Cx64W47J20DQor67Cx67SJ7JuUDQor67Cx7YOc7IiYDQor67Cx7Jq07YOcDQor67Cx7ZWc7JewDQor67Cx7KeI64yADQor67Cx7ISx7LmYDQor67Cx7Jq07ZWZDQor67Cx7JaR64yADQor67Cx6rec7JqpDQor67Cx67aE7IiZDQor67Cx7Jq07Zi4DQor67Cx7J6s6rOkDQor67Cx7IK87IudDQor67Cx7JiB67KUDQor67Cx7JuF7Je0DQor67Cx7YOc6raMDQor67Cx7KCV7IiYDQor67Cx67OR6rK9DQor67Cx7JuQ6riwDQor67Cx7J6s7YOcDQor67Cx7J2R7ZmYDQor67Cx7KKF6rWtDQor67Cx7JuQ7LmYDQor67Cx7J6s7Z2sDQor67Cx7Iq57ZalDQor67Cx7J2Y7IigDQor67Cx7Jyg67aEDQor67Cx7ZmY7IiYDQor67Cx7IaM7ZiEDQor67Cx7KeE7ZiEDQor67Cx7Jyk7IudDQor67Cx7IOB7IicDQor67Cx7J6s7KKFDQor67Cx7KSR7IiZDQor67Cx7Jyk7LKgDQor67Cx7IOB67O1DQor67Cx7JiB7LaYDQor67Cx7J6s7IicDQor67Cx7Jyk7LKgDQor67Cx7J6s7IudDQor67Cx7LC97Zi4DQor67Cx6rSR66CoDQor67Cx7Jyk7ZiEDQor67Cx7KeA6529DQor67Cx7KCV7Je0DQor67Cx7IiY7KSADQor67Cx7J2A7IudDQor67Cx7JuQ66qoDQor67Cx7YOc7JqpDQor67Cx7KKF7IiYDQor67Cx7J246ri4DQor67Cx7JiB7IiYDQor67Cx6riw7JewDQor67Cx67O16rOkDQor67Cx7J247ISdDQor67Cx7JiB6ri4DQor67Cx7IK87KGwDQor67Cx7ISd642VDQor67Cx7J247LCsDQor67Cx6rOE7IigDQor67Cx7J2Y7Zi4DQor67Cx7Iic7J6EDQor67Cx7J247ZiEDQor67Cx7KCV7IudDQor67Cx7ISg7JykDQor67Cx7ISx7ZmYDQor67Cx7J247Z2gDQor67Cx7Iic7JewDQor67Cx7Jqp66qoDQor67Cx7J6s7JqwDQor67Cx7J286riwDQor67Cx7Iic67O1DQor67Cx67SJ7IicDQor67Cx7J2A7Z2sDQor67Cx7J287ZiEDQor67Cx7Jqp7ZmYDQor67Cx7YOc7ZmYDQor67Cx7J2Y7JqpDQor67Cx7J6l6rCcDQor67Cx6riw64+ZDQor67Cx7J6s7Jq0DQor67Cx7KCV6ri4DQor67Cx7J6s67SJDQor67Cx7YyQ7IiZDQor67Cx7KCc7ZmUDQor67Cx6rec7IiYDQor67Cx7J6s7ISgDQor67Cx7YOc7YOdDQor67Cx67aE7ISxDQor67Cx7KKF6riwDQor67Cx7J6s7ZiEDQor67Cx7ZWZ7JykDQor67Cx7YOc7JykDQor67Cx6rOk7IiYDQor67Cx7J6s7Zi4DQor67Cx7J6s6rOkDQor67Cx7Iah7JilDQor67Cx7KSA64KoDQor67Cx7J6s7Zi4DQor67Cx7LC97KCVDQor67Cx7ZWZ7KeEDQor67Cx6riI7ISxDQor67Cx7KCE7YOcDQor67Cx64+Z7JqpDQor67Cx7ISx6ri4DQor67Cx7ISx7J6QDQor67Cx7KCQ67SJDQor67Cx7ZWZ7JuQDQor67Cx7J6s7IudDQor67Cx65GQ6rK9DQor67Cx7KCQ7IiYDQor67Cx7Z2s6rWsDQor67Cx6rec7ISgDQor67Cx7Iic7YOcDQor67Cx7KCQ7IiYDQor67CxIOy2mA0KK+uwse2VtOq3oA0KK+uwseyehOynhA0KK+uwseygleuNlQ0KK+uwseygleyGjA0KK+uwse2DnOq3oA0KK+uwseyihe2YhA0KK+uwseygleyYgQ0KK+uwseuzkeyaqQ0KK+uwseygleq2gQ0KK+uwseygkOq3oA0KK+uwseygleyYgQ0KK+uwseygleykgA0KK+uwse2DnOyLnQ0KK+uwseyerOq1rA0KK+uwseygleyaqQ0KK+uwseuzkeq1rA0KK+uwseyEneyZhA0KK+uwseunjOq1rA0KK+uwseygleyihQ0KK+uwse2VhO2RnA0KK+uwseyYgeq3vA0KK+uwseyiheyhsA0KK+uwseygle2YhA0KK+uwseygle2DnA0KK+uwse2DnOusuA0KK+uwseybheyasA0KK+uwseygle2ZmA0KK+uwseycpOyImA0KK+uwseuCmey2nA0KK+uwseqwkeuMgA0KK+uwseygle2drA0KK+uwseyEseu0iQ0KK+uwseq4sO2ZjQ0KK+uwseq4sOyImA0KK+uwseyiheqzhA0KK+uwsey5oO2drA0KK+uwseqyveyLnQ0KK+uwseunjOyImA0KK+uwseyiheq4sA0KK+uwseyYgeuMgA0KK+uwseyYge2ZmA0KK+uwseq3nOyekA0KK+uwseyiheyyoA0KK+uwseyEseqzoA0KK+uwseqyveyYgQ0KK+uwseyiheyIoA0KK+uwseynhOybhQ0KK+uwseuPhOycpA0KK+uwseu0ieyLnQ0KK+uwseyyoOykgA0KK+uwseywveq4sA0KK+uwseyduO2VmQ0KK+uwseyerOq3nA0KK+uwseygnOydmA0KK+uwseyyreyatA0KK+uwseyDgeq4sA0KK+uwseyYpeyLnQ0KK+uwseyduOyerA0KK+uwsey2mOq4sA0KK+uwse2Vre2biA0KK+uwseustOyEnQ0KK+uwseyInOyerA0KK+uwse2DnOyasQ0KK+uwseyInOywvQ0KK+uwseyEseydtA0KK+uwseuzuOusuA0KK+uwse2DnOyihQ0KK+uwseyXsOuhnQ0KK+uwse2YhOyihQ0KK+uwseyImey5mA0KK+uwse2DnOynhA0KK+uwseyGjOq0kQ0KK+uwseuzkeykgA0KK+uwseq1rO2drA0KK+uwse2DnO2YhA0KK+uwseuzkeynhA0KK+uwseq3vOynhA0KK+uwseyerOyXsA0KK+uwse2DnO2YuA0KK+uwseyImOyEnQ0KK+uwseunjO2VhA0KK+uwseu0ie2XjA0KK+uwse2Vmeq4sA0KK+uwseyYge2DnA0KK+uwseyImOq0gA0KK+uwseynhO2MlA0KK+uwse2VmeyImA0KK+uwseyYpeuegA0KK+uwseyiheyDgQ0KK+uwseunjOynhA0KK+uwse2VnOq2jA0KK+uwsey2qe2ZlA0KK+uwseydgOqwkQ0KK+uwseyYgeyInA0KK+uwse2YhOyasA0KK+uwseqyveu0iQ0KK+uwseyehOyImA0KK+uwseyiheyEuA0KK+uwse2YhO2VmQ0KK+uwseu2hOybhQ0KK+uwseyblOuPhA0KK+uwsSDsiJwNCivrsLHtmITtlZkNCivrsLHsg4HsiJgNCivrsLHsnbjroYANCivrsLHsg4HsnbUNCivrsLHtmITtlZkNCivrsLHsmIHsi50NCivrsLHtg5zsi50NCivrsLHsg4HtnawNCivrsLHtmJXrj4QNCivrsLHsiJzsnoQNCivrsLHsnqzspIANCivrsLHqtazsnpANCivrsLHtmJXsnbwNCivrsLHso7zssKwNCivrsLHqsr3sm5ANCivrsLHrs7Xqt7wNCivrsLHtmLjtmIQNCivrsLHqtJHsiJkNCivrsLHqt5zsl7ANCivrsLHsmIHsnbwNCivrsLHtmZTsiJkNCivrsLHquLDsiJkNCivrsLHsooXsmIENCivrsLHsgqzroZ0NCivrs4DqsJHsobANCivrs4DssL3smIENCivrs4Dtg53shKANCivrs4Drj5nsl4UNCivrs4Dqsr3si50NCivrs4Dso7zquLANCivrs4DsmqntnawNCivrs4DssL3qsJENCivrs4DquIjsiJwNCivrs4DsnqzrtoQNCivrs4DrgqjsiJkNCivrs4Dsg4HtmLgNCivrs4Drj5ntlYQNCivrs4DspJHshJ0NCivrs4Dsi6Dsm5ANCivrs4DsoJXrj5kNCivrs4Drj5ntlbQNCivrs4Drs5Hqt6ANCivrs4Dsm5DstpwNCivrs4Ag7ZWcDQor67OA66qF6re8DQor67OA642V7Je0DQor67OA7JiB7ZWcDQor67OA7Iuc64+ZDQor67OA7IKs66OhDQor67OA7Jqp7J6sDQor67OA67O07IigDQor67OA66+866a8DQor67OA7IOB6re8DQor67OA7JaR66y4DQor67OA67OR642VDQor67OA7KO87JilDQor67OA7ISx7IiYDQor67OA7ZmN7IicDQor67OA6rWQ7Je0DQor67OA7KO87JuFDQor67OA7ISx7JuQDQor67OA7JiB7KSADQor67OA7IiY7JWUDQor67OA6rSR7Z2sDQor67OA7Iic7JesDQor67OA7JiB7IudDQor67OA67OR7KKFDQor67OA7YOc7KKFDQor67OA7Jik7IudDQor67OA66y46rCRDQor67OA7KSA7Zy0DQor67OA7LC97IiYDQor67OA7Jqp7IudDQor67OA7LaY66qpDQor67OA64us7JilDQor67OA67OR7IiYDQor67OA7Jqp7KeEDQor67OA6rK97JygDQor67OA7JiB7ZiEDQor67OA6rK96rWsDQor67OA7JyE7IudDQor67OA7ISx7IStDQor67OA67OR7ZmUDQor67OA7KSA7JqpDQor67OA7Jyk7IudDQor67OA6rSR7KGwDQor67OA7KCV7IiYDQor67OA7ISd7YOcDQor67OA7J2A7IudDQor67OA7Iic7IudDQor67OA7ZWZ7JuQDQor67OA67O17JuFDQor67OA7J206recDQor67OA7Lap7IiZDQor67OA7ISd7ISgDQor67OA7ISx7JilDQor67OA7J6l7JqwDQor67OA66qF7JykDQor67OA7YOc7Z2sDQor67OA7ZWE7YOdDQor67OA7J6s6rOkDQor67OA7KCV7JuQDQor67OA7ISx7IudDQor67OA7IOB7KGwDQor67OA7KKF67SJDQor67OA7IOB7ZmYDQor67OA67OR66OhDQor67OA7Jil6raMDQor67OA7KKF7IudDQor67OA7IOB6raMDQor67OA7ISx64K0DQor67OA7KCV64KoDQor67OA7LCs6riwDQor67OA7KO87Z2sDQor67OA7KCV7Ja1DQor67OA7YOc7IaMDQor67OA7LC97ZiBDQor67OA64yA7J28DQor67OA7J2A6raMDQor67OA66qF7JiBDQor67OA7LKg7JqwDQor67OA7YOc7JqpDQor67OA7LC97IiYDQor67OA7KSR7IigDQor67OA7LKg7JqwDQor67OA7JiB7ZalDQor67OA66qF7J20DQor67OA7KKF7JqpDQor67OA7YOc7IiYDQor67OA7J6s7ZmUDQor67OA6raM7JqwDQor67OA7LC96rWsDQor67OA7YyQ6recDQor67OA66qF7YOdDQor67OA7ZWZ7ZiEDQor67OA64yA6raMDQor67OA7Zi47ZiEDQor67OA7Jqp6rG4DQor67OA6rK97ZuIDQor67OA7YOc6rWtDQor67OA7ZmU7J6QDQor67OA7IaM7JewDQor67OA64yA7JqwDQor67OA6raM7IiYDQor67OA7ZmY6recDQor67OA7J247IiYDQor67OA7ZuI6re8DQor67OA7JiB7JuFDQor67mI7Jqx7LacDQor67mI6rSA7ZuIDQor67mI7ZW07Iq5DQor67mI66qF7JqwDQor67mI7KKF7JqxDQor67mI7LKc7JWUDQor67mI7ISd7ISdDQor67mI64+I7IicDQor67mI7LaY7JilDQor67mI7Jqp7Je0DQor67mI7KSR67O1DQor67mI7ISg7IOdDQor7IKs67O17ZmYDQor7IKs7KCV7IiZDQor7IKs7J2A7ZWZDQor7IKs67OR7JikDQor7IOB7KCV6regDQor7IOB6riw7J6QDQor7IOB7KCV7ZW0DQor7IOB7Zqo7ISdDQor7ISc6rCR66y4DQor7ISc66y47IiZDQor7ISc7IS47JqwDQor7ISc7ISx7IS4DQor7ISc6rCR7IiYDQor7ISc7KO97JikDQor7ISc7KCQ64usDQor7ISc7J286regDQor7ISc6rCR7IiYDQor7ISc6riw7ZmYDQor7ISc64+Z7KGwDQor7ISc6rSR7Je0DQor7ISc6rK96recDQor7ISc7IiY64usDQor7ISc7Jil7JqpDQor7ISc64Ko7Zi4DQor7ISc6rK96recDQor7ISc7YyQ7IStDQor7ISc7KeE6rK9DQor7ISc7Iug7Z2sDQor7ISc6rK96recDQor7ISc6rK97LKgDQor7ISc7IOB7KSADQor7ISc7KKF7Zi4DQor7ISc6rK97ISdDQor7ISc7J2A7IiZDQor7ISc642V7JiBDQor7ISc7J6s7Z2sDQor7ISc6rK97IiYDQor7ISc7IOB7ZmYDQor7ISc7LCs6rWQDQor7ISc7KSA6rOkDQor7ISc6rK97IiZDQor7ISc6rK97JikDQor7ISc64us7IicDQor7ISc7LKc66y4DQor7ISc6rK97JWUDQor7ISc67OR656YDQor7ISc7Jyk7J24DQor7ISc65GQ7ZWZDQor7ISc6rK97KCQDQor7ISc7Ja47IStDQor7ISc7JiB6riwDQor7ISc7JiB6recDQor7ISc6rK97ZmUDQor7ISc7ZW07JWUDQor7ISc7ZWZ7ZWZDQor7ISc7ISd67CwDQor7ISc6rK97Z2sDQor7ISc7J6s7ZeMDQor7ISc7Iic7J20DQor7ISc64+Z7ISgDQor7ISc6rK97Z2sDQor7ISc7Jq07IStDQor7ISc67O167O1DQor7ISc7IOB6rWsDQor7ISc6rK97Z2sDQor7ISc64+Z6re8DQor7ISc7KKF6rG0DQor7ISc7ZuE7JuQDQor7ISc6rOE7ISdDQor7ISc642V7ZWcDQor7ISc7IiY7ZiEDQor7ISc7ZW07JuFDQor7ISc6rOh7KeADQor7ISc66qF6rWtDQor7ISc65GQ7YOcDQor7ISc7KCV7LGEDQor7ISc6rSR7IudDQor7ISc7LCs7J6sDQor7ISc7KSA6ri4DQor7ISc7Jyk7JqwDQor7ISc6rSR7JWFDQor7ISc7Jil7J6sDQor7ISc7J6s66eMDQor7ISc7J206rWtDQor7ISc6rSR7Ja4DQor7ISc7Iug7Jq0DQor7ISc7LCo7JqwDQor7ISc65GQ7J6QDQor7ISc6rSR7YOdDQor7ISc7YOc7IiZDQor7ISc7IOB7JiBDQor7ISc7IOB6recDQor7ISc6rWQ7JqxDQor7ISc7KeE7KCQDQor7ISc6rSR7Z2sDQor7ISc7JaR7ISgDQor7ISc6rWQ7Z2sDQor7ISc7ISg6regDQor7ISc7Iq57ZGcDQor7ISc7KKF66qFDQor7ISc6rWQ7Z2sDQor7ISc7JiB67KUDQor7ISc67OR7JiBDQor7ISc7JiB7JuQDQor7ISc6rWs7ISdDQor7ISc7ZiV7IicDQor7ISc67OR7J20DQor7ISc67SJ6riwDQor7ISc6re87Zi4DQor7ISc7ZiE66y4DQor7ISc7IiY7Je0DQor7ISc7JmE7LKgDQor7ISc6riI7J20DQor7ISc7KCV7J6FDQor7ISc67OR7ZmUDQor7ISc7ISd64+ZDQor7ISc64Ko7IiZDQor7ISc7YOc7ISgDQor7ISc6rOE7IigDQor7ISc65Od7ISdDQor7ISc64Ko7KGwDQor7ISc64Ko7YOcDQor7ISc7Jqw7IiZDQor7ISc7YOc642VDQor7ISc64uk7J6EDQor7ISc67OR7JykDQor7ISc7LCo7IiYDQor7ISc6rec66y4DQor7ISc64us7ISgDQor7ISc7JiB6riwDQor7ISc6rec7JiBDQor7ISc6riw7KSADQor7ISc64yA6rK9DQor7ISc7KCV7ISxDQor7ISc6rCV7IiZDQor7ISc7ISd7ISdDQor7ISc64yA6rSADQor7ISc6ri47JewDQor7ISc7ZW06riwDQor7ISc7KCV6rWsDQor7ISc64yA7ZmYDQor7ISc7JiB7IiZDQor7ISc7IiY7ZGcDQor7ISc67OR66GdDQor7ISc642V7ISgDQor7ISc7JuQ66eMDQor7ISc7ZiV7YOBDQor7ISc7IK87IicDQor7ISc64+Z642VDQor7ISc7ISd6re8DQor7ISc7J6s7Je0DQor7ISc66qF7Z2sDQor7ISc64+Z7IiYDQor7ISc7Jew7JewDQor7ISc7Iug64+ZDQor7ISc7ZiV7Zi4DQor7ISc64+Z7IiYDQor7ISc7Jyk7ISgDQor7ISc6riw7JqpDQor7ISc66qF6re8DQor7ISc64+Z7J6sDQor7ISc6rSR7Zi4DQor7ISc7JWU7JmEDQor7ISc7YOd66+8DQor7ISc64+Z7KSADQor7ISc6rK96ri4DQor7ISc7YOc7ZmYDQor7ISc7ZW06recDQor7ISc64+Z7ZuIDQor7ISc6rCR7IudDQor7ISc67OR7IiZDQor7ISc7LC97KGwDQor7ISc65GQ7ISgDQor7ISc7Iic6rOgDQor7IScIOyErQ0KK+yEnOyLnOyInA0KK+yEnOunkOuPhA0KK+yEnOybkOuCqA0KK+yEnOuzkeyXtA0KK+yEnO2YhO2YuA0KK+yEnOunkOyEoA0KK+yEnOq1kOuztQ0KK+yEnOustOyImA0KK+yEnOq3nOyaqQ0KK+yEnOunueyImA0KK+yEnOq4sOyEoA0KK+yEnO2DnOq4sA0KK+yEnOybkOyIoA0KK+yEnOuqheqzpA0KK+yEnOq0keqzpA0KK+yEnOybkOyLnQ0KK+yEnOydgO2YhA0KK+yEnOuqheq1kA0KK+yEnOyduOybkA0KK+yEnOyaqeyYpQ0KK+yEnOyGjOyErQ0KK+yEnOuqheuLrA0KK+yEnOy2mOyWtQ0KK+yEnOqyveyEoA0KK+yEnOuzkeqzpA0KK+yEnOuqheyImA0KK+yEnOyYgeyImA0KK+yEnOyYpeyEoA0KK+yEnOyYgeydtA0KK+yEnOuqheyVlA0KK+yEnOyiheybkA0KK+yEnOyEoOq1kA0KK+yEnOuvuO2VmQ0KK+yEnOustOuCqA0KK+yEnOygkOq4uA0KK+yEnOydvO2biA0KK+yEnOyDge2YuA0KK+yEnOustOyhsA0KK+yEnCDsiJgNCivshJzrp4zsl7QNCivshJzsp4TtmLgNCivshJzrrLTsooUNCivshJzsoJXqt7wNCivshJzrgqjroZ0NCivshJztg5zsiJgNCivshJzrrLTtmLgNCivshJzsg4HsiJgNCivshJzrjIDtg50NCivshJztlZjsoJUNCivshJzrrLjrjZUNCivshJzrj5nshLENCivshJzstqnsg4ENCivshJzqtJHrtIkNCivshJzrrLjsiJgNCivshJzsooXsnKgNCivshJzrrLTsobANCivshJzsmqnsiKANCivshJzrrLjsiJgNCivshJzsmqnsm5ANCivshJzshLHquLANCivshJzsmIHtg5wNCivshJzrr7jqsr0NCivshJzssqDsmrQNCivshJzsnbjsi50NCivshJzsoJXtmY0NCivshJzrr7jsnpANCivshJzshKDtg5wNCivshJzshoztmIQNCivshJzrs5HtmZQNCivshJzrr7zshJ0NCivshJzsnqzsnbwNCivshJzsg4HsmrANCivshJzsiJzssqANCivshJzrspTsi50NCivshJzqsr3so7wNCivshJzsiJjsi50NCivshJzsiJzssqANCivshJzrs5HsiJgNCivshJzshLHqs6QNCivshJzsg4Hrs7QNCivshJzsnqzrpr0NCivshJzrs5HsnqwNCivshJzsp4TsmKUNCivshJzsiJzrtIkNCivshJzsiJzshJ0NCivshJzrs7Tqt7wNCivshJzssL3sobANCivshJzsmKXsiJgNCivshJztg5zsnpANCivshJzrs7TrjZUNCivshJzrj4TsmqkNCivshJzsoJXtmLgNCivshJzquLDsnpANCivshJzrs7TsmIENCivshJztg5zshJ0NCivshJztlbTsspwNCivshJztjJDsobANCivshJzrs7TsmrQNCivshJzsnbzsiJwNCivshJzstpjsnbQNCivshJzsg4HspJENCivshJzrs7Tsm5ANCivshJzsoJXshK0NCivshJzshJ3ssqANCivshJzssL3tmLgNCivshJzrs7Tsp4QNCivshJzrqoXrjZUNCivshJzsnbzrjZUNCivshJzshJ3sobANCivshJzrs7TssKwNCivshJzrjIDtmLgNCivshJzsuZjsmKUNCivshJzrrLTtnawNCivshJzrs7TtmIENCivshJzsm5DtnawNCivshJztmozsiJgNCivshJzsnZjsiJkNCivshJzrs7TtnawNCivshJzqtJHsnqwNCivshJzsnYTsoJUNCivshJzsnbzsi50NCivshJzrs7Xqsr0NCivshJzrqoXtnawNCivshJzssL3rsLANCivshJzsnKTsiKANCivshJzrs7XsiJwNCivshJzsi5ztmZgNCivshJzqsr3snZENCivshJzshJ3si50NCivshJzrtInqtZANCivshJztlonsi50NCivshJzsnqzsmYQNCivshJzsnbjsmrANCivshJzrtInrjZUNCivshJzslpHspIANCivshJzsiJzsspwNCivshJzsnqzrk50NCivshJzrtoTsiJwNCivshJzqta3tmY0NCivshJzqtJHsiJgNCivshJztjJDsiJgNCivshJzsgqztmIQNCivshJzsi5zshLENCivshJzsnITshK0NCivshJzqtozsiJgNCivshJzsgrzqtowNCivshJzsmqnrtIkNCivshJzshLHquLANCivshJzssKjsmIENCivshJzsg4Hqt7wNCivshJzsnqzsi50NCivshJzrs5Hqt5wNCivshJzsmqntnawNCivshJzsg4HrhbgNCivshJzqsr3shKANCivshJzrp4zsi50NCivshJzsnYDsnbQNCivshJzsg4HrjZUNCivshJzsiJjqtowNCivshJzsm5DsooUNCivshJzssqDquLANCivshJzsg4Hrj4wNCivshJzrs5HsiJwNCivshJzspIDsobANCivshJwg7JqwDQor7ISc7IOB66GdDQor7ISc6rWs67ORDQor7ISc7LC97IiYDQor7ISc7Jq07Jq0DQor7ISc7IOB66GdDQor7ISc7Jil6ri4DQor7ISc6riI7ISgDQor7ISc7IOB7ISdDQor7ISc7IOB66GdDQor7ISc7YOc7JuFDQor7ISc7JuQ7Zi4DQor7ISc7LC97ZmUDQor7ISc7IOB66eQDQor7ISc7JiB7LKgDQor7ISc7ZWZ6rOkDQor7ISc7IiY7IiYDQor7ISc7IOB66y4DQor7ISc6rOE7KGwDQor7ISc7ISd6rWsDQor7ISc7JuF7ZmYDQor7ISc7IOB7IS4DQor7ISc66qF7KeEDQor7ISc7YOc7Zi4DQor7ISc67OR6rK9DQor7ISc7IOB7IudDQor7ISc7LKg64u0DQor7ISc7KeE6rWQDQor7ISc7JiB7JqxDQor7ISc7IOB7Je0DQor7ISc7ISx7IiYDQor7ISc7J2A7LKgDQor7ISc642V7ZeMDQor7ISc7IOB7J6QDQor7ISc7IKs7Je0DQor7ISc7Jil64+ZDQor7ISc6re87Je0DQor7ISc7IOB7KSADQor7ISc7IKs6riwDQor7ISc7J6l7LacDQor7ISc7ISx65OdDQor7ISc7IOB7YOcDQor7ISc7ZiE7Zi4DQor7ISc6rSR7ZmYDQor7ISc7ZWE7IiYDQor7ISc7IOB7YOcDQor7ISc7ISx7IiYDQor7ISc7JiB7IOBDQor7ISc6rec7KGwDQor7ISc7IOB7YOcDQor7ISc7Jik7Je0DQor7ISc7JiB7LKgDQor7ISc6re866asDQor7ISc7IOB7ZiEDQor7ISc7Jik7Z2sDQor7ISc67SJ7YOcDQor7ISc7KCV7Je0DQor7ISc7IOB7ZiEDQor7ISc66eM7IiYDQor7ISc7J2A7IOdDQor7ISc7IOB7YOcDQor7ISc7IOB7Zi4DQor7ISc7ISd7ZuIDQor7ISc7J6l6recDQor7ISc7JiB7KGwDQor7ISc7IOB7ZmUDQor7ISc7J6s66qoDQor7ISc7JiB7KKFDQor7ISc7ZW07Z2sDQor7ISc7IOB7ZmUDQor7ISc7Jqp7KGwDQor7ISc6riw7Z2gDQor7ISc7ISx7IiYDQor7ISc7IOB7ZqoDQor7ISc7KKF7IiYDQor7ISc7Jil6rWsDQor7ISc6rCR66y4DQor7ISc7IOB7Z2sDQor7ISc7LCs7Je0DQor7ISc6rCR7ZiEDQor7ISc67OR67SJDQor7ISc7ISd6rWQDQor7ISc7IOB6recDQor7ISc7Jqp6rSADQor7ISc7IS466eMDQor7ISc7ISd6recDQor7ISc7YOc7LKcDQor7ISc7Jqp7Z2sDQor7ISc7KKF64+EDQor7ISc7ISd7JiBDQor7ISc7Jyh6riwDQor7ISc67OR7J2ADQor7ISc6riw6riwDQor7ISc7ISd7JykDQor7ISc6rK97Jq0DQor7ISc7YOc7JaRDQor7ISc7JiB7ISxDQor7ISc7ISd7ZmNDQor7ISc7Iic7ZiEDQor7ISc7KCV7LKgDQor7ISc67OR7KGwDQor7ISc7ISd7Z2sDQor7ISc7Jyg7JuQDQor7ISc7KCV7KO8DQor7ISc7Jyk7Jq0DQor7ISc7ISg6rWQDQor7ISc67OR7JewDQor7ISc7KSR7JewDQor7ISc7J6s7ZmUDQor7ISc7ISx6rWQDQor7ISc7KSR7JqxDQor7ISc7ZW07KGwDQor7ISc66qF7J20DQor7ISc7ISx66eMDQor7ISc6rCR7IiYDQor7ISc7J247ISdDQor7ISc7YyQ7Je0DQor7ISc7ISx7JWUDQor7ISc7ZaJ66y4DQor7ISc7IOB7YyUDQor7ISc7Iq564yADQor7ISc7ISx7JykDQor7ISc7Jm47IiZDQor7ISc7KCQ7LKgDQor7ISc7JiB7J2ADQor7ISc7ISx7LacDQor7ISc7Iic7J6sDQor7ISc7JiB67CwDQor7ISc7KKF7ZmYDQor7ISc7IaM6raMDQor7ISc7J287KGwDQor7ISc7KKF7IicDQor7ISc7YOc7IusDQor7ISc7IaM7JqpDQor7ISc64+E7ZWZDQor7ISc67OR7ZWcDQor7ISc7IiY7ZiVDQor7ISc7IiY6rK9DQor7ISc7J2864yADQor7ISc7ZiE7IiYDQor7ISc67O07ZWYDQor7ISc7IiY7JewDQor7ISc7J6s7ZmNDQor7ISc7J246recDQor7ISc7ZW07ISdDQor7ISc7IiY7JuFDQor7ISc7KKF7KO8DQor7ISc7Zi47KCVDQor7ISc67OR7JqwDQor7ISc7Iic6rWQDQor7ISc7Jew7YOcDQor7ISc7YOc6rK9DQor7ISc7KO87Z2sDQor7ISc7Iic64KoDQor7ISc7JiB7J6sDQor7ISc7YOc7IiZDQor7ISc7KCQ64yADQor7ISc7Iic64+EDQor7ISc6rK97ISxDQor7ISc67O07JqwDQor7ISc7J6l7ISdDQor7ISc7Iic64+MDQor7ISc67OR7JuQDQor7ISc7LC966eMDQor7ISc7J246riwDQor7ISc7Iic656ADQor7ISc7YOc7JewDQor7IScIOynhA0KK+yEnOyDgeuCnA0KK+yEnOyInOyEnQ0KK+yEnOywqOyErQ0KK+yEnOuqheyYpA0KK+yEnOyerOyhsA0KK+yEnOyInOydtA0KK+yEnOyerOq4sA0KK+yEnOyerO2YuA0KK+yEnOqyveyaqQ0KK+yEnOyKueq4sA0KK+yEnOq3nO2ZjQ0KK+yEnOyDge2VmA0KK+yEnOyXsOyYgQ0KK+yEnOyKueybkA0KK+yEnOuqheq3nA0KK+yEnOyDgeyLnQ0KK+yEnOq0ke2YhA0KK+yEnOyYgeq3nA0KK+yEnOyerOyekA0KK+yEnOydvOumvA0KK+yEnOq4uO2YuA0KK+yEnOyYgeuLrA0KK+yEnOu0ie2WpQ0KK+yEnOyYgeq3vA0KK+yEnOq3gOuhgA0KK+yEnOyYgeuLrA0KK+yEnOyjvOyXtA0KK+yEnOybkOyYpQ0KK+yEnOyerOuCqA0KK+yEnOyYgeuPjA0KK+yEnO2drOyaqQ0KK+yEnOyihe2WpQ0KK+yEnOuqhe2ZmA0KK+yEnOyYgeuqqQ0KK+yEnO2YhOq4sA0KK+yEnOuMgOqwkQ0KK+yEnOyEseyaqQ0KK+yEnOyYgeyEnQ0KK+yEnOqyve2YhA0KK+yEnO2MkOyasA0KK+yEnOuzkeyIoA0KK+yEnOyYgeyImA0KK+yEnOynhO2DnA0KK+yEnOygleyYpQ0KK+yEnOyEne2DnA0KK+yEnOyYgeybhQ0KK+yEnOyDgeq3nA0KK+yEnOuzke2MjA0KK+yEnOqyveq4uA0KK+yEnOyYgeybkA0KK+yEnOuMgO2YuA0KK+yEnOuzke2ZlA0KK+yEnOustOyaqQ0KK+yEnOyYgeydgA0KK+yEnOuqhe2YuA0KK+yEnOyYgeyVoA0KK+yEnOuzkeyInA0KK+yEnOyYgeywvQ0KK+yEnOyDgeyImQ0KK+yEnO2VtOqzpA0KK+yEnOuzkeq2jA0KK+yEnOyYge2DnA0KK+yEnOygle2YuA0KK+yEnOq4iOyErQ0KK+yEnO2YuOuPmQ0KK+yEnOyYpOyhsA0KK+yEnOyerOu0iQ0KK+yEnOykkeyaqQ0KK+yEnOuMgO2ZmA0KK+yEnOyYpey2nA0KK+yEnOqwkeuPmQ0KK+yEnOuPiOu2gA0KK+yEnOyaqe2VnA0KK+yEnOyZhOyLnQ0KK+yEnOyDgeyImA0KK+yEnOyerO2VmA0KK+yEnO2MkOuhnQ0KK+yEnOyZuOyImA0KK+yEnOy2qe2DnQ0KK+yEnOyDgeu0iQ0KK+yEnOunie2biA0KK+yEnOyaqeunjA0KK+yEnOunjOq0kQ0KK+yEnOuzke2biA0KK+yEnOq3nOyduA0KK+yEnOyaqeu2gA0KK+yEnOq4sOyInA0KK+yEnOu0ie2RnA0KK+yEnOyYgeunjA0KK+yEnOyaqeyEnQ0KK+yEnOyImOuwsA0KK+yEnOq4sOyhsA0KK+yEnOustOyjvA0KK+yEnOyaqeyhsA0KK+yEnOyEoOyihQ0KK+yEnOykgO2ZmA0KK+yEnOyEne2ZjQ0KK+yEnOyaqe2MkA0KK+yEnOyDge2VmQ0KK+yEnOyaqeyhsA0KK+yEnO2YuO2YuA0KK+yEnOyaqe2VtA0KK+yEnOywveyihQ0KK+yEnOyYpOyXsA0KK+yEnOq4sOyInA0KK+yEnOyaqe2VtA0KK+yEnOyiheqyrA0KK+yEnOyImeyImA0KK+yEnOycpOydkQ0KK+yEnOyaqe2YuA0KK+yEnOygle2drA0KK+yEnOyDge2ZjQ0KK+yEnOq3vO2biA0KK+yEnOyasOyyoA0KK+yEnOyEseyImQ0KK+yEnOuqhey2nA0KK+yEnO2DnO2drA0KK+yEnOybheq4uA0KK+yEnO2VmOyynA0KK+yEnOq4iOyEnQ0KK+yEnOyiheykgA0KK+yEnOycoOyCsA0KK+yEnOyEneyLnQ0KK+yEnOuztOyVhQ0KK+yEnOunjO2YlQ0KK+yEnOycpOyEnQ0KK+yEnOyerOuMgA0KK+yEnOy+jO2YuA0KK+yEnOywveyImA0KK+yEnOycpOyEoA0KK+yEnO2YuOyVoA0KK+yEnOyEseq4sA0KK+yEnOyerOygkA0KK+yEnOycpOyYpQ0KK+yEnOyerOuqqQ0KK+yEnOy2mOyihQ0KK+yEnOyerOuCqA0KK+yEnOycpOy2nA0KK+yEnOyiheykgA0KK+yEnOyduOyekA0KK+yEnOyiheyglQ0KK+yEnOycpO2drA0KK+yEnOyLnOqxtA0KK+yEnO2ZjeyImA0KK+yEnOy2mO2YuA0KK+yEnOydgOqyvQ0KK+yEnOyYgeq4sA0KK+yEnOyjvO2DnA0KK+yEnOuzkeyEnQ0KK+yEnOydtOyEoA0KK+yEnOuzkey5oA0KK+yEnOydkeq4uA0KK+yEnOyaqeyLnQ0KK+yEnOydtOynhA0KK+yEnOycpOyduA0KK+yEnOygleq1kA0KK+yEnO2DnOyaqQ0KK+yEnOydteyInA0KK+yEnOyEne2VmA0KK+yEnOuLrOyasA0KK+yEnOyImOq3vA0KK+yEnOyduOuNlQ0KK+yEnOuzkeyhsA0KK+yEnO2Vmeq4sA0KK+yEnOustO2drA0KK+yEnOyduOyInA0KK+yEnOyYge2YuA0KK+yEnOqxtOyaqQ0KK+yEnOyiheyhsA0KK+yEnOyduOyXtA0KK+yEnOq4sOyImA0KK+yEnOyEneyehA0KK+yEnOyEseyInA0KK+yEnOydvOq1kA0KK+yEnOyXsOyggQ0KK+yEnOyerOuCqA0KK+yEnOyerO2DnA0KK+yEnOydvOu2gA0KK+yEnOyiheuPmQ0KK+yEnOqyveyInA0KK+yEnOyYgeywqA0KK+yEnOyehOyEoA0KK+yEnOyEse2YhA0KK+yEnOq4iOyasA0KK+yEnOyWteuPmQ0KK+yEnOyehOyhsA0KK+yEnO2drOq2jA0KK+yEnOywveynhA0KK+yEnOyDgeusuA0KK+yEnOyepe2DnQ0KK+yEnOuCqOqyvQ0KK+yEnOu2hOy2mA0KK+yEnOuvvOyLnQ0KK+yEnOyerOq1kA0KK+yEnOydke2DnA0KK+yEnO2YhOydtA0KK+yEnOyerOyasA0KK+yEnOyerOuNlQ0KK+yEnOyduOyErA0KK+yEnOywveyDnQ0KK+yEnOq4sOqwgQ0KK+yEnOyerOuNlQ0KK+yEnOynhOq4sA0KK+yEnOyEseyLnQ0KK+yEnOyKueyyoA0KK+yEnOyerOyXtA0KK+yEnOyCrOqwnA0KK+yEnOywqOybkA0KK+yEnOu0ieuPmQ0KK+yEnOyerOyYgQ0KK+yEnOyYge2YuA0KK+yEnO2VtOuPhA0KK+yEnOyngOyEoA0KK+yEnOyerO2WiQ0KK+yEnOygleyYgQ0KK+yEnOyEne2YhA0KK+yEnO2DnO2ZjQ0KK+yEnOyerO2YuA0KK+yEnOygle2ZmA0KK+yEnOuMgOybkA0KK+yEnOyYgeybkA0KK+yEnOyerO2ZmA0KK+yEnOyihe2VmA0KK+yEnOusuOyerA0KK+yEnO2DnOyatA0KK+yEnOyerO2ZmA0KK+yEnOuPmeq3vA0KK+yEnOyDgeykgA0KK+yEnOq0keyYpA0KK+yEnOyerO2drA0KK+yEnOunjOyXsA0KK+yEnOyEuOq4uA0KK+yEnOyerOyerA0KK+yEnOygkOuPjA0KK+yEnOuqheyDgQ0KK+yEnOyerOyEnQ0KK+yEnOq0keq1rA0KK+yEnOygkOyImA0KK+yEnOyYgeywrA0KK+yEnOyEseyLnQ0KK+yEnOuCqOq1rA0KK+yEnOygkOyImA0KK+yEnOq3vOyEsQ0KK+yEnOyYpO2WiQ0KK+yEnOyerOyekA0KK+yEnOygkOyIoA0KK+yEnOuMgOyImA0KK+yEnO2DnOyekA0KK+yEnOq4sOyekA0KK+yEnOygkOyVlA0KK+yEnOq2jOydmA0KK+yEnOq4sO2DnQ0KK+yEnOqyveynkQ0KK+yEnOygkOyhsA0KK+yEnOygleq3nA0KK+yEnO2DnOq3nA0KK+yEnOyImOyInA0KK+yEnOygleqyvQ0KK+yEnO2DnOuPmQ0KK+yEnOuqhe2YuA0KK+yEnOyerOyImA0KK+yEnOygleqzhA0KK+yEnO2aqOuPhA0KK+yEnOq3gOq4sA0KK+yEnOuzke2ZmA0KK+yEnOygleq1rA0KK+yEnOycpOq1rA0KK+yEnOyEneyImA0KK+yEnOqxtOqyvQ0KK+yEnOygleq1sA0KK+yEnOyihe2YuA0KK+yEnOyYgeuPhA0KK+yEnO2ZmOyYgQ0KK+yEnOygleq3uQ0KK+yEnOunkOyImQ0KK+yEnO2DnOq3nA0KK+yEnOydvOuztQ0KK+yEnOygleq3vA0KK+yEnO2DnOyEoA0KK+yEnOuzkeuhnQ0KK+yEnOyepeybkA0KK+yEnOygleuPhA0KK+yEnOq0keyasA0KK+yEnOygleqzpA0KK+yEnOyiheuTnQ0KK+yEnOygleuhnQ0KK+yEnOuMgOyhsA0KK+yEnOunkO2YlQ0KK+yEnOq4sOufiQ0KK+yEnOygleuwlQ0KK+yEnOyyoOuNlQ0KK+yEnOyInOy2nA0KK+yEnOyEseyLnA0KK+yEnOygleyDnQ0KK+yEnOuCqO2YgQ0KK+yEnOyjvOq3nA0KK+yEnOygleyEnQ0KK+yEnOygleyEnQ0KK+yEnOyerO2biA0KK+yEnOq3nOqzhA0KK+yEnOywqOyekA0KK+yEnOygleyImA0KK+yEnOyGjOqyvQ0KK+yEnOyMje2YuA0KK+yEnOuPhO2YuA0KK+yEnOygleyImA0KK+yEnOyatOyglQ0KK+yEnOyEseyInA0KK+yEnOyatOyInA0KK+yEnOygleyImA0KK+yEnOyerOyYgQ0KK+yEnOygleq3nA0KK+yEnOyYge2drA0KK+yEnOygleyIoA0KK+yEnOq3vOyInA0KK+yEnOyerOyDgQ0KK+yEnOygleyhsA0KK+yEnOygleyLnQ0KK+yEnOyEse2aqA0KK+yEnOyasOyglQ0KK+yEnOyihe2DgQ0KK+yEnOygleyXtA0KK+yEnOynhOq3nA0KK+yEnOydhOyLnQ0KK+yEnO2YhOuCqA0KK+yEnOygleyasA0KK+yEnOyDgeyEnQ0KK+yEnOyerOuwsA0KK+yEnOyGjO2ZmA0KK+yEnOygleyasA0KK+yEnO2DnOyInA0KK+yEnOyYgeq4sA0KK+yEnOycpOybhQ0KK+yEnOygleyatA0KK+yEnOq0keyXvQ0KK+yEnOyerOycqA0KK+yEnOqyveydvA0KK+yEnOygleydmA0KK+yEnOynhOyngA0KK+yEnOyYpeqwlQ0KK+yEnOq4iOyekA0KK+yEnOygle2DnA0KK+yEnOyKueq4sA0KK+yEnOywqOyduA0KK+yEnOyYgeq1kA0KK+yEnOygle2DnA0KK+yEnOyerOu0iQ0KK+yEnOyYpeyImA0KK+yEnOyWkeq4sA0KK+yEnOygle2DnA0KK+yEnOyihey2qQ0KK+yEnOykke2YuA0KK+yEnO2VtOyerA0KK+yEnOygle2DnA0KK+yEnOyehOyyoA0KK+yEnOyiheyImA0KK+yEnOyYge2YuA0KK+yEnOygle2VnA0KK+yEnOyYgeyyoA0KK+yEnO2DnOyImQ0KK+yEnOyEneyInA0KK+yEnOygle2ZlA0KK+yEnOykgOyYgQ0KK+yEnOq4sOykgA0KK+yEnOyasO2ZmA0KK+yEnOygle2ZmA0KK+yEnOq3gOuTnQ0KK+yEnOygleyaqQ0KK+yEnOqwke2YhA0KK+yEnOygle2drA0KK+yEnOuzkeyIoA0KK+yEnO2VmeyYgQ0KK+yEnOu0ieyekA0KK+yEnOyiheydtA0KK+yEnOyepeyImA0KK+yEnOuFuO2XjA0KK+yEnOycpOydtA0KK+yEnOyjvOuNlQ0KK+yEnOyYpeywrA0KK+yEnOuzkeq2jA0KK+yEnOunkO2YuA0KK+yEnOyjvO2VhA0KK+yEnOynhOqyvQ0KK+yEnOyihe2aqA0KK+yEnOuPmeq4sA0KK+yEnOykgOq1kA0KK+yEnO2YnO2VnA0KK+yEnOunjO2YhA0KK+yEnOqzoOq0kQ0KK+yEnOykkeqwlQ0KK+yEnOuNle2YhA0KK+yEnOywveq3nA0KK+yEnOyYgeyXsA0KK+yEnOykkeq3nA0KK+yEnOuqhe2DnA0KK+yEnOyYgeqzpA0KK+yEnOyEseyLnQ0KK+yEnOynhOqzoA0KK+yEnOq3ueyekA0KK+yEnOyatOyImQ0KK+yEnO2Vmeq3nA0KK+yEnOynhOq1kA0KK+yEnOqxtO2drA0KK+yEnOycpO2drA0KK+yEnOyYgeyInA0KK+yEnOynhOq1kA0KK+yEnOyaqeyglQ0KK+yEnOuzkeynhA0KK+yEnOyEseyynA0KK+yEnOynhOyEnQ0KK+yEnOqyveyIoA0KK+yEnOyEseyLnQ0KK+yEnOuMgOydvA0KK+yEnOynhOyImA0KK+yEnO2ZjeuztA0KK+yEnOyerOygnA0KK+yEnOunkO2DnA0KK+yEnOywqOqwkQ0KK+yEnO2DnOybhQ0KK+yEnOyYge2drA0KK+yEnOuzkeuCqA0KK+yEnOywqOuekQ0KK+yEnOyerOyImA0KK+yEnOyiheq4sA0KK+yEnOustOuegA0KK+yEnOywqOyaqQ0KK+yEnOyImOybkA0KK+yEnOyYge2YuA0KK+yEnOq0keyLnQ0KK+yEnOywveq1kA0KK+yEnOustOyImA0KK+yEnOuzkeyImA0KK+yEnOyEseyaqQ0KK+yEnOywveuNlQ0KK+yEnOyImOyImA0KK+yEnOyerOuqqA0KK+yEnO2ZjeyImA0KK+yEnOywveuNlQ0KK+yEnOyasO2ZlA0KK+yEnOycpO2ZmA0KK+yEnOyInOyErQ0KK+yEnOywveyImA0KK+yEnO2DnOyglQ0KK+yEnOygkOyInA0KK+yEnOyerOuCqA0KK+yEnOywveyIoA0KK+yEnOy2qeyerA0KK+yEnOqyveuqqA0KK+yEnO2MkOyxhA0KK+yEnOywve2YhA0KK+yEnOyImOyYgQ0KK+yEnOuPme2YhA0KK+yEnOu2gO2DgQ0KK+yEnOyyoOq1kA0KK+yEnOq3nOyIoA0KK+yEnOyaqeyImQ0KK+yEnO2YleyglQ0KK+yEnOy2mOq4uA0KK+yEnOunieynhA0KK+yEnOqyveyEnQ0KK+yEnOyDgeyaqQ0KK+yEnOy2mOyImA0KK+yEnOuhnOyYgQ0KK+yEnOynhOyatA0KK+yEnOy+jOy2nA0KK+yEnOy2mOyekA0KK+yEnOydmOuNlQ0KK+yEnOqxtOyInA0KK+yEnOybkO2YhA0KK+yEnOy5oOq2jA0KK+yEnOu0ieq4sA0KK+yEnOyiheydtA0KK+yEnOu0ieybhQ0KK+yEnO2DnOq1kA0KK+yEnO2XjOynhA0KK+yEnOydvOuegA0KK+yEnOyiheyihQ0KK+yEnO2DnOq1rA0KK+yEnOyEne2YuA0KK+yEnOyInOyYgQ0KK+yEnOyDgey2mA0KK+yEnO2DnOunjA0KK+yEnOygleyZhA0KK+yEnOunkOusuA0KK+yEnOyKueyyoA0KK+yEnO2DnOyEnQ0KK+yEnOyImO2YuA0KK+yEnO2drOyInA0KK+yEnOycpOq3vA0KK+yEnO2DnOyImA0KK+yEnOyCvOyXhQ0KK+yEnOyXsOq4sA0KK+yEnOuztO2YuA0KK+yEnO2DnOyIoA0KK+yEnOqyve2drA0KK+yEnOy5oOyYgQ0KK+yEnOykgOyasQ0KK+yEnO2DnOyVlA0KK+yEnOygle2VmA0KK+yEnOyImO2YhA0KK+yEnOq0keyekA0KK+yEnO2DnOybkA0KK+yEnOyEseyImA0KK+yEnOyerOyekA0KK+yEnOyEoOq3nA0KK+yEnO2MlOu0iQ0KK+yEnOyYgeyYgQ0KK+yEnOuMgO2YuA0KK+yEnOyImO2YuA0KK+yEnO2VhOq4iA0KK+yEnOyImO2YuA0KK+yEnO2YuOyaqQ0KK+yEnOyLoOyLnQ0KK+yEnO2VhOyXsA0KK+yEnOydhOybkA0KK+yEnOyYgeyEoA0KK+yEnOyEseyYgQ0KK+yEnO2VmeybkA0KK+yEnO2DnOyImQ0KK+yEnO2VtOybkA0KK+yEnOyDgeyDgQ0KK+yEnO2VmeyhsA0KK+yEnOuPmeyEnQ0KK+yEnOyiheybkA0KK+yEnOuMgOyaqQ0KK+yEnO2VnOq1kA0KK+yEnOustO2drA0KK+yEnO2DnOy2nA0KK+yEnO2DnOyXtA0KK+yEnO2VnOq4sA0KK+yEnOybkOyekA0KK+yEnOyYge2YuA0KK+yEnOqyveyerA0KK+yEnO2VtOybkA0KK+yEnOy2mOyynA0KK+yEnOygleyImA0KK+yEnOq4sOyInA0KK+yEnO2XjOq1kA0KK+yEnOuzkeq1rA0KK+yEnOyImO2drA0KK+yEnOyEoOyErQ0KK+yEnO2YuOq0gA0KK+yEnOy2mOywrA0KK+yEnOyInOuCqA0KK+yEnOuPmeydvA0KK+yEnO2YuOywvQ0KK+yEnOywveuztQ0KK+yEnOuPmeq0gA0KK+yEnOuPmeyImA0KK+yEnO2YuOy2nA0KK+yEnOynhOq4sA0KK+yEnO2DnOyEoA0KK+yEnOy5oOyXtA0KK+yEnO2Zjeq1kA0KK+yEnO2DnOyLnQ0KK+yEnOuqheq1rA0KK+yEnOygleuPmQ0KK+yEnO2Zjeq1kA0KK+yEnO2VtO2ZmA0KK+yEnO2VnOyCvA0KK+yEnOqzhO2drA0KK+yEnO2ZjeyImQ0KK+yEnOyerO2YuA0KK+yEnO2MkOyImA0KK+yEnOyduOyDgQ0KK+yEnO2ZjeyLnQ0KK+yEnOywveyLnQ0KK+yEnOywrOyasA0KK+yEnOu0ieyjvA0KK+yEnO2ZmOyImA0KK+yEnO2VmeqxtA0KK+yEnO2ZlOuqhQ0KK+yEnO2DneusuA0KK+yEnO2biO2DnA0KK+yEnOygleyErQ0KK+yEnOyInO2RnA0KK+yEnOydvOyImQ0KK+yEnO2drOyyoA0KK+yEnOyGoe2YuA0KK+yEnOu2hOyekA0KK+yEnOywveyYpQ0KK+yEneq0keynhA0KK+yEne2VmeuwsA0KK+yEneyEseyWkQ0KK+yEneyblOyasA0KK+yEneq4sOu0iQ0KK+yEneyerO2drA0KK+yEneq0gOyEnQ0KK+yEneyEseuCnA0KK+yEneuPhOyglQ0KK+yEneyepeq3oA0KK+yEneuNle2ZmA0KK+yEne2YhOybkA0KK+yEneustOyYgQ0KK+yEneuNleyjvA0KK+yEneyImOydvA0KK+yEneustOyImA0KK+yEneustO2YuA0KK+yEneygleq1rA0KK+yEneyEneyInA0KK+yEneykgOykgA0KK+yEneu0ieuCqA0KK+yEneyXtOq2jA0KK+yEneyInOyngA0KK+yEneyDgeqyvQ0KK+yEneu2hOyEoA0KK+yEne2YhO2VmA0KK+yEneyDgeyImA0KK+yEneuzke2XjA0KK+yEneyDgeyImA0KK+yEneyerOy2nA0KK+yEneyYgeyLnQ0KK+yEne2VtOyekA0KK+yEneyDgeyatA0KK+yEneq1reqzpA0KK+yEneydhO2ZlA0KK+yEneuzkeq3nA0KK+yEneyEoOu2gA0KK+yEneqyveyImQ0KK+yEne2YnOq3oA0KK+yEneq3gOyVoA0KK+yEneyEseunjA0KK+yEneq0keuMgA0KK+yEneygleyaqQ0KK+yEney5oOuCqA0KK+yEneyGjOuPjA0KK+yEne2Yleq1rA0KK+yEney+jOq3nA0KK+yEneq3nOyEnQ0KK+yEneyKue2DnA0KK+yEneyEoOywvQ0KK+yEneqyveyInA0KK+yEneygleyatA0KK+yEneyXsOydtA0KK+yEneyDge2ZlA0KK+yEneyYgeufiQ0KK+yEne2DnO2VmQ0KK+yEneyYge2YuA0KK+yEneuzke2VtA0KK+yEneuzkeyImQ0KK+yEneyyoO2biA0KK+yEneycpOyVlA0KK+yEne2DnOyXtA0KK+yEney2mOyImA0KK+yEneqyveyEoA0KK+yEneydmOyekA0KK+yEneuzkeyLnQ0KK+yEneyYgeuNlQ0KK+yEneyYpe2YuA0KK+yEneydtO2aqA0KK+yEneyInO2YhA0KK+yEneyEse2DnA0KK+yEneyDgeyEoA0KK+yEneygkO2aqA0KK+yEneyerOq4uA0KK+yEney+jOuemA0KK+yEney2mOuPmQ0KK+yEneygley2nA0KK+yEney2mOyEuA0KK+yEneywqOyihQ0KK+yEneuCqOq4sA0KK+yEneygley2nA0KK+yEneq4sO2DnA0KK+yEneq3vOyInA0KK+yEneuPmeuvuA0KK+yEneyihe2ZlA0KK+yEneq0keuylA0KK+yEneuCqOq4sA0KK+yEneyDgeyImA0KK+yEneyihe2ZlA0KK+yEneuqheynhA0KK+yEney+jOybkA0KK+yEneywqOykgA0KK+yEneynhOyYgQ0KK+yEneyihe2VmA0KK+yEne2ZmOyDgQ0KK+yEneyEneyhsA0KK+yEneyniOyVlA0KK+yEneu0ie2drA0KK+yEneyDgeyhsA0KK+yEneqyveyEnQ0KK+yEneywqOyVlA0KK+yEneyiheuegA0KK+yEneuvuOyEnQ0KK+yEneq4sOyaqQ0KK+yEney2mOyYpQ0KK+yEneuPmeyVlA0KK+yEneywqOyEnQ0KK+yEneyYgeyhsA0KK+yEne2aqOyglQ0KK+yEne2drOygnA0KK+yEne2PieyImA0KK+yEneusuOyasA0KK+yEoOyKue2YuA0KK+yEoOyaqeyImA0KK+yEoOydvOykkQ0KK+yEoOunjO2MkA0KK+yEoOyasOqyvQ0KK+yEoOuzteuPjA0KK+yEoOyInOyekA0KK+yEoOybkO2ajA0KK+yEoOyasOyYgeq4uA0KK+yEoOuMgOuqqeq0kQ0KK+yEoOuNleq4sOqyvQ0KK+yEoOuCqOuwsOuzkQ0KK+yEpOqwleyImA0KK+yEpOywqOyInA0KK+yEpO2drOyXsA0KK+yEpOq4sO2DnQ0KK+yEpOuPmeyEnQ0KK+yEpOuzkeyXtA0KK+yEpOyYgeyEnQ0KK+yEpOyEuOyyoA0KK+yEpOuqheyInA0KK+yEpOq4iOyEnQ0KK+yEpOygleuPhA0KK+yEpOyInOyehA0KK+yEpOusmOyInA0KK+yEpOuzteuPjA0KK+yEpOywrOyXsA0KK+yEpOykgO2DnA0KK+yEpOyCvOyImA0KK+yEpOqzhO2YhA0KK+yEpO2VtOuNlQ0KK+yEpOyEseq4sA0KK+yEpOyDgeq3nA0KK+yEpOyDgeyLnQ0KK+yEpOyduOq3oA0KK+yEpOyerOuzkQ0KK+yEpOyEseq1rA0KK+yEpOyaqeyVlA0KK+yEpO2aqOyEoA0KK+yEpOyiheyYgQ0KK+yEpOyGjOyjvA0KK+yEpOyngOycpA0KK+yEpO2bhO2doA0KK+yEpOyaqe2DnQ0KK+yEpOyInOyYpQ0KK+yEpOyDgeybkA0KK+yEpOyerOyasQ0KK+yEpOuzkeyasA0KK+yEpOyYgeq1rA0KK+yEpOyDgeuNlQ0KK+yEpOyImOyasA0KK+yEpOq4iOyekA0KK+yEpOyYgeykgA0KK+yEpO2YuO2YuA0KK+yEpOustOuCqA0KK+yEpOy2qeyatA0KK+yEpOyaqeykgA0KK+yEpOq3gOynhA0KK+yEpOyerOu0iQ0KK+yEpOuzkeu2hA0KK+yEpOybkOyLnQ0KK+yEpOyCsOq3nA0KK+yEpOyngOyatA0KK+yEpOyInOyekA0KK+yEpOybkOykgA0KK+yEpOyblOuPjA0KK+yEpOq3nOu0iQ0KK+yEpOycpOq2jA0KK+yEpOycpOyEsQ0KK+yEpOycpOybkA0KK+yEpOyInOyasA0KK+yEpOyEpOyEnQ0KK+yEpOycpO2YlQ0KK+yEpOqzhOyasQ0KK+yEpOyDge2YuA0KK+yEpOyKueyasA0KK+yEpOydmOykgA0KK+yEpOuPme2YuA0KK+yEpOyEneqzoA0KK+yEpO2DnOyImA0KK+yEpOyduOqwkQ0KK+yEpOyDgeyLnA0KK+yEpOyImOyhsA0KK+yEpOyepe2VmQ0KK+yEpOygleykgA0KK+yEpOuqhey2nA0KK+yEpO2MkO2biA0KK+yEpOq1rOyIoA0KK+yEpOynhOq1rA0KK+yEpOq1kOyImQ0KK+yEpOq1kOykgA0KK+yEpOuzkeyEnQ0KK+yEpOywvQ0KK+yEpOyInA0KK+yEpOyihQ0KK+yEpOyYgQ0KK+yEpOywveyImA0KK+yEpOyiheq1rQ0KK+yEpOydvOu0iQ0KK+yEpO2XjOq4uA0KK+yEpOyynOyImA0KK+yEpOydgOyehA0KK+yEpO2VnOuNlQ0KK+yEpOq4sO2ZmA0KK+yEpOy2mOyImA0KK+yEpOycpOq3oA0KK+yEpOyEoO2YuA0KK+yEpOunpO2ZlA0KK+yEpO2YhOyImA0KK+yEpOyYge2YhA0KK+yEpO2DnOyihQ0KK+yEpOycpO2DnQ0KK+yEseqyveuqqA0KK+yEseykkeyLnQ0KK+yEseyerOyasA0KK+yEseyDgeyasA0KK+yEseqyve2DnA0KK+yEseyatO2drA0KK+yEseuqheyXsA0KK+yEseyYpeq4uA0KK+yEseqzhOyihQ0KK+yEseybkOqzoA0KK+yEseyInOq3nA0KK+yEse2drOyLnQ0KK+yEseq3nOyaqQ0KK+yEseyCvO2drA0KK+yEse2VtOyErQ0KK+yEseuqheuCqA0KK+yEseq4iOyaqQ0KK+yEseq3gOyErQ0KK+yEseunkO2ZjQ0KK+yEseyiheyLnQ0KK+yEseq4sOuNlQ0KK+yEseyKueuNlQ0KK+yEseq0keybkA0KK+yEseuwseuegA0KK+yEseq4sOuztQ0KK+yEseyEneyEoA0KK+yEseyEseyasQ0KK+yEse2DnOyYgQ0KK+yEseq4sOydgA0KK+yEsSDsiJwNCivshLHspIDtnawNCivshLHsnqzsmqkNCivshLHquLDtlZkNCivshLHsp4TrqoUNCivshLHquIjquIgNCivshLHtlbTrrLgNCivshLHquLDtnZQNCivshLHtmJzquLANCivshLHrgqjqt5wNCivshLHsmqntmZgNCivshLHrgpnqtawNCivshLEg7ZmYDQor7ISx7KKF7IiYDQor7ISx64+Z7JqpDQor7ISx64KZ6raMDQor7ISx6rSR67aEDQor7ISx66qF6riwDQor7ISx7LC97ISdDQor7ISx64KZ6regDQor7ISx7JiB7ZiEDQor7ISx7J6Q6recDQor7ISx7JiB7ZeMDQor7ISx64KZ64+ZDQor7ISx7J247ZiEDQor7ISx6rec7LacDQor7ISx7IK87YOcDQor7ISx64KZ64+ZDQor7ISx6reA7IudDQor7ISx7J6s7JqwDQor7ISx7ZiE7ISdDQor7ISx64KZ64+ZDQor7ISx66eQ7ISdDQor7ISx6riw7Z2sDQor7ISx7KCV6riwDQor7ISx64KZ64+ZDQor7ISx67aE64yADQor7ISx7Iic64+ZDQor7ISx7ISg6raMDQor7ISx64KZ7IicDQor7ISx7Iic7IiYDQor7ISx7ZWc7KGwDQor7ISx7J2466y4DQor7ISx64KZ7JiBDQor7ISx7ZyY7Jq0DQor7ISx7ZW07ZmYDQor7ISx7ZW07J6QDQor7ISx64KZ7JmEDQor7ISx67OR7KSADQor7ISx7LCo7IiYDQor7ISx7KeE7IiYDQor7ISx64KZ7KSRDQor7ISx67aA7Zi4DQor7ISx7ISg6riIDQor7ISx7Jqp6rG0DQor7ISx64KZ7KeEDQor7ISx7ISg7Zi4DQor7ISx66y07JmEDQor7ISx7J6s7IudDQor7ISx64KZ7LCsDQor7ISx7KeE7JiBDQor7ISx7IaM66y4DQor7ISx6rSR7J28DQor7ISx64KZ7YyUDQor7ISx7Jqw6regDQor7ISx642V7IugDQor7ISx7IiY7J21DQor7ISx64KZ7ZWYDQor7ISx7LC96rWQDQor7ISx7Jqp67O1DQor7ISx7YOc7J28DQor7ISx64KZ7ZuIDQor7ISx67OR6re8DQor7ISx7LaY7Z2sDQor7ISx7J6s7ZWcDQor7ISx64Ko6rK9DQor7ISx7LmY7KGwDQor7ISx7YOc7LKgDQor7ISx66qF6ri4DQor7ISx65GQ7JqpDQor7ISx7KSA6rK9DQor7ISx7LGE7IiYDQor7ISx7YOc7JilDQor7ISx65296rK9DQor7ISx7Jqw7KeEDQor7ISx7IOB7IudDQor7ISx7KKF7KKFDQor7ISx65296rSADQor7ISx7KSA64+ZDQor7ISx7LC97J6QDQor7ISx7Iug7ZmYDQor7ISx66eM7KCVDQor7ISx7J6s6riwDQor7ISx7JuQ7KO8DQor7ISx7YOc7KSRDQor7ISx66eQ7JewDQor7ISx7ISg7KGwDQor7ISx7LCo7IiYDQor7ISx6riw7KO8DQor7ISx66qF6re8DQor7ISx6rec7ISdDQor7ISx7Iic6riwDQor7ISx7Iic64+MDQor7ISx67Cx7IugDQor7ISx7KKF7Z2sDQor7ISx7J247IiYDQor7ISx7J287ISgDQor7ISx67OR64KoDQor7ISx7JiB7IiYDQor7ISx6riw66y4DQor7ISx7ZeM7Zi4DQor7ISx67OR7JqwDQor7ISx7ZWc7Zi4DQor7ISx7ZWc6rSADQor7ISx7IaM7KSADQor7ISx67O17IudDQor7ISx7KCV6recDQor7ISx7J2A7LKcDQor7ISx7J2E7Zi4DQor7ISx67aE7IucDQor7ISx7ZW07J6QDQor7ISx66y47JqpDQor7ISx7JiB7IiYDQor7ISx7IKs7JiBDQor7ISx7JiB66y4DQor7ISx7IS47IudDQor7ISx7KeA6rOkDQor7ISx7IOB66qoDQor7ISx6riw7ZiEDQor7ISx7KKF64+ZDQor7ISx66eQ7ZmYDQor7ISx7IOB7IiYDQor7ISx6riw7JewDQor7ISx7IOB64+EDQor7ISx7YOc7ZmYDQor7ISx7IOB7ZiEDQor7ISx7YyU6rWtDQor7ISx7J207JqpDQor7ISx7KCQ7IudDQor7ISx7ISd6rK9DQor7ISx7J6l6rWsDQor7ISx7KSR6riwDQor7ISx7KCQ7JqwDQor7ISx7ISg7J20DQor7ISx67OR7IicDQor7ISx66eQ7YyUDQor7ISx7ZaJ6recDQor7ISx7IaM7ZmYDQor7ISx67OR7ZeMDQor7ISx7ISx7JWUDQor7ISx7KeA7IOBDQor7ISx7IiY6rK9DQor7ISx7IOB7YOcDQor7ISx7YOc7ZiEDQor7ISx7KCV67SJDQor7ISx7IiY6rSRDQor7ISx7KCV6rOkDQor7ISx7YOc6recDQor7ISx7YyQ66y1DQor7ISx7Iic7J6QDQor7ISx66+87ISgDQor7ISx66y07IicDQor7ISx7JuQ7ZuIDQor7ISx7JaR7IiYDQor7ISx7IOB6regDQor7ISx67OR6re8DQor7ISx7ZW07ISgDQor7ISx7JiB6rK9DQor7ISx7KO87JikDQor7ISx7KCV66qoDQor7ISx7Jqp7JikDQor7ISx7JiB656ADQor7ISx6rSR64WEDQor7ISx7Zi466+8DQor7ISx7IiY7ZmYDQor7ISx7Jik7KCcDQor7ISx7YOc7IiYDQor7ISx7Iic7ZuIDQor7ISx6rWQ64+ZDQor7ISx7Jm47ISdDQor7ISx7Jqp7Z2sDQor7ISx7J246riwDQor7ISx6rWQ7IudDQor7ISx7Jqp6rK9DQor7ISx7KCV7IudDQor7ISx7KO87JykDQor7ISx7JiB7J28DQor7ISx7Jqp7LmgDQor7ISx7YyQ65OdDQor7ISx7KCQ7JiBDQor7ISx7IKs66CoDQor7ISx7Jqw6rK9DQor7ISx6rec7JmEDQor7ISx67O17ZeMDQor7ISx7KCV6ri4DQor7ISx7JuQ6rK9DQor7ISx67OR66y0DQor7ISx6rec7JewDQor7ISx66eM7IStDQor7ISx7JyE7ISgDQor7ISx7ZW07YOcDQor7ISx7KCV7Z2sDQor7ISx7KCQ7Je0DQor7ISx7J2A66qoDQor7ISx7YOc7JuQDQor7ISx7ISd7KGwDQor7ISx7Iq57ZmYDQor7ISx7J2A7JqpDQor7ISx7ZWY7Zi4DQor7ISx67OR7ZWZDQor7ISx7J6E64KcDQor7ISx7J2Y7KKFDQor7ISx66qF7JykDQor7ISx7ZWY7IK8DQor7ISx7J247IudDQor7ISx7J286riIDQor7ISx7KKF7Zi4DQor7ISx64yA7LKgDQor7ISx7J2Y7Zi4DQor7ISx7J6s6rCRDQor7ISx7IiY7JykDQor7ISx7YOc7Z2gDQor7ISx7IK87Z2sDQor7ISx7J6s6re8DQor7ISx7Zic6raMDQor7ISx7IiY7ZmYDQor7ISx7J6s6rK9DQor7ISx7KCV7IicDQor7ISx6rK97KCEDQor7ISx6riw7IucDQor7ISx7IOB7YOcDQor7ISx7KGw6re8DQor7ISx7IOB6ri4DQor7ISx7JiB7ISxDQor7ISx7Jew7Zi4DQor7ISx7KO86rOkDQor7ISx7Iic6riwDQor7ISx7KCV7Zi4DQor7ISx64+Z6recDQor7ISx7KSA7ZmYDQor7ISx7JmV6rWQDQor7ISx7KKF66+8DQor7ISx7KKF6raMDQor7ISx7KSR7ZmYDQor7ISx7LaY7KGwDQor7ISx7Jq07Zi4DQor7ISx7LCo64+ZDQor7ISx7Kad7JuQDQor7ISx7J6l7YOcDQor7ISx7Jqw7Zi4DQor7ISx7JiB7JuQDQor7ISx7LC96rK9DQor7ISx7KCQ7KO8DQor7ISx66eM6riwDQor7ISx7KCV7J6QDQor7ISx7LKg7JqpDQor7ISx7Iic7Zy0DQor7ISx7IOB7KeEDQor7ISx7ISx6raMDQor7ISx7YOc6rK9DQor7ISx7J6s7JygDQor7ISx7KCV7IiYDQor7ISx7KeE7JqxDQor7ISx7YOc642VDQor7ISx7IiY7JyoDQor7ISx67OR65OdDQor7ISx64+Z66eMDQor7ISx7YOc7JqpDQor7ISx7IaM6raMDQor7ISx6ri46rWtDQor7ISx67OR7Zi4DQor7ISx7ZKN6rWtDQor7ISx7KCV7IiYDQor7ISx7KCV7Z2sDQor7ISx7KCV7J20DQor7ISx7ZWc6rK9DQor7ISx7YOc6ri4DQor7ISx7KKF7YOdDQor7ISx7KCV7Z2sDQor7ISx7ZW07JqpDQor7ISx7LKg7JewDQor7ISx7KKF64+EDQor7ISx67OR7IicDQor7ISx7Z2l7IudDQor7ISx7JiB7IiYDQor7ISx66y07KeRDQor7ISx67SJ7ZmUDQor7ISx7Z2s7KSADQor7ISx7JiB7IigDQor7ISx67OR7KSADQor7ISx7ZWE7ZicDQor7IaM67OR66y4DQor7IaM7KCV7YOcDQor7IaM7KKF7Zi4DQor7IaM7J6s7IiYDQor7IaM67OR7JaRDQor7IaM7KKF7KSADQor7IaM7KSA7IS4DQor7IaM64Ko7ZWcDQor7IaM7IiY7IStDQor7IaM7IOB6rSADQor7IaM67OR7JqwDQor7IaM7KKF6re8DQor7IaM7JiB7Z2sDQor7IaM66eQ7J6QDQor7IaM6rSR7JqpDQor7IaM7ZmN7ZmYDQor7IaM7KeE642VDQor7IaM67OR66y4DQor7IaM7YyQ6regDQor7IaM67KU7LaYDQor7IaM7Zmp7JilDQor7IaM67OR7KeEDQor7IaM642V7J6EDQor7IaM6rSR7KGwDQor7IaQ6rOE66CoDQor7IaQ7IaM7JqpDQor7IaQ64+Z7JqpDQor7IaQ7ISx7ZiEDQor7IaQ6rOE7J6EDQor7IaQ7JiB6riwDQor7IaQ7ISx7IiYDQor7IaQIO2ZlA0KK+yGkOqzhO2DgQ0KK+yGkO2Vme2YuA0KK+yGkOq0keq4sA0KK+yGkOygleyYpA0KK+yGkOqzteyImA0KK+yGkO2VtOuhnQ0KK+yGkOqwke2YhA0KK+yGkOygkOykkQ0KK+yGkOq3gOyVhQ0KK+yGkOyEseqyvQ0KK+yGkOydgO2DnA0KK+yGkOq0keq4uA0KK+yGkOq3nOuLrA0KK+yGkOuzkeyasA0KK+yGkOyiheq1rA0KK+yGkOyDgeyglQ0KK+yGkOq3nOyYgQ0KK+yGkOyduOyXsA0KK+yGkOyaqeusuA0KK+yGkO2YuOyEsQ0KK+yGkOq3nO2VmQ0KK+yGkOyasOyduA0KK+yGkOyynOuRkA0KK+yGkOydkeyYpA0KK+yGkOq4iOyInA0KK+yGkO2DnOyLnQ0KK+yGkOqzhO2ZmA0KK+yGkOycpOyImA0KK+yGkOq4iOyInA0KK+yGkOyngOykgA0KK+yGkOyZleq1rQ0KK+yGkOyaqe2drA0KK+yGkOq4iOyhsA0KK+yGkOyYgeyImQ0KK+yGkOygleyekA0KK+yGkOuCqOyEnQ0KK+yGkOq4sOuqqQ0KK+yGkOuvuO2DnA0KK+yGkOyDgeuTnQ0KK+yGkOyImOyEnQ0KK+yGkOq4sOyaqQ0KK+yGkOyEseynhA0KK+yGkOyYge2bhA0KK+yGkOuMgO2biA0KK+yGkOuFuO2DgQ0KK+yGkOygleyXtA0KK+yGkO2VtOyInA0KK+yGkOuqheyErQ0KK+yGkOuLrOq3vA0KK+yGkOyYpeyasQ0KK+yGkOydvO2VhA0KK+yGkOyCvOyehA0KK+yGkOuMgOu0iQ0KK+yGkO2aqOyYgQ0KK+yGkOyerOyImQ0KK+yGkOyjvOyasA0KK+yGkOuPme2ZqQ0KK+yGkOyYgeq1rA0KK+yGkOyEuO2DnA0KK+yGkOqwkeyImQ0KK+yGkOuPme2ZqQ0KK+yGkOyDgeyInA0KK+yGkO2ZjeyEuA0KK+yGkOuzkeujoQ0KK+yGkOunieuCtA0KK+yGkO2VnOyaqQ0KK+yGkOyEseuwsA0KK+yGkOunjOyDgQ0KK+yGkOunjOyImA0KK+yGkO2XjO2ZjQ0KK+yGkOyYge2DnA0KK+yGkOyiheq1rA0KK+yGkOunkOyInA0KK+yGkO2YleyInA0KK+yGkOyYgeygnA0KK+yGkOyInO2YuA0KK+yGkOuqheq1rQ0KK+yGkOu0ieyasQ0KK+yGkOu0ieyjvA0KK+yGkOybkOyEnQ0KK+yGkOuqheq1rQ0KK+yGkOynhOq4sA0KK+yGkOyImOuwsA0KK+yGkOyGjOq2jA0KK+yGkOuqheyInA0KK+yGkO2YnOufiQ0KK+yGkOuzkeqzpA0KK+yGkOyasOq3nA0KK+yGkOuqheyIoA0KK+yGkO2VtO2YuA0KK+yGkOqzhOykgA0KK+yGkOuzkeyekA0KK+yGkOuqheyekA0KK+yGkOyDgeyYpA0KK+yGkOq0keuNlQ0KK+yGkOynhOydtA0KK+yGkOustOyihQ0KK+yGkOqyve2drA0KK+yGkOywrOq3vA0KK+yGkO2dpeydtA0KK+yGkOusuOq4sA0KK+yGkOyDge2ZmA0KK+yGkOu0ieyasA0KK+yGkOyZuOyehA0KK+yGkOuvvOyglQ0KK+yGkOygleyImA0KK+yGkOycpO2drA0KK+yGkOqyveq4uA0KK+yGkOuzkeq2jA0KK+yGkOuqheyjvA0KK+yGkOq1reuwsA0KK+yGkO2DnO2DnA0KK+yGkOuzkeq4sA0KK+yGkOyiheyYpA0KK+yGkOyDgeyImQ0KK+yGkOuzkeqztQ0KK+yGkOuzkeq4uA0KK+yGkOyYgeyynA0KK+yGkOuvvOyekA0KK+yGkOuNleq4sA0KK+yGkOuzkeusuA0KK+yGkO2VtO2YuA0KK+yGkOyerOq3vA0KK+yGkOynhOybkA0KK+yGkOuzkeyWuA0KK+yGkOycpO2RnA0KK+yGkOywve2ZmA0KK+yGkOuMgOyVlA0KK+yGkOuzkeyasA0KK+yGkOyDgeyImA0KK+yGkOygleyaqQ0KK+yGkOyEseyYpQ0KK+yGkOuzkeydgA0KK+yGkOunkOuPjA0KK+yGkOycpOyImA0KK+yGkOyDge2ZjQ0KK+yGkOuzkeyynA0KK+yGkOyasO2YuA0KK+yGkOyerO2VmQ0KK+yGkOyZhOyhsA0KK+yGkOuzke2YuA0KK+yGkOyasO2DnA0KK+yGkOykkeyImA0KK+yGkOyImO2YuA0KK+yGkOu0ieq2jA0KK+yGkOyDgeyyoA0KK+yGkOq4sOuPmQ0KK+yGkOyihe2YhA0KK+yGkOu0ieuemA0KK+yGkOyYpOydmA0KK+yGkO2DnOq3vA0KK+yGkOuzkeyEsQ0KK+yGkOu0ie2ZlA0KK+yGkOyInOyIoA0KK+yGkOuNle2YhA0KK+yGkOygleuPhA0KK+yGkOyCvOyhsA0KK+yGkO2VnOyLnQ0KK+yGkOyImeuPmQ0KK+yGkOuzkeyVoA0KK+yGkOyCvOy2nA0KK+yGkOuLtOq3oA0KK+yGkOywveyVoA0KK+yGkOyInOyLnA0KK+yGkOyDgeq2jA0KK+yGkOuLrO2YuA0KK+yGkOyiheyerA0KK+yGkOy5oOq3vA0KK+yGkOyDgeq3nA0KK+yGkOyYge2DnA0KK+yGkOyDgeyYgQ0KK+yGkOyImeq1kA0KK+yGkOyDgeq3nA0KK+yGkOywrO2DnA0KK+yGkOyEoO2DnA0KK+yGkOq4iOuPhA0KK+yGkOyDgeq3nA0KK+yGkOyInOyErQ0KK+yGkOyihe2YuA0KK+yGkOy2mOyynA0KK+yGkOyDgeq3nA0KK+yGkOynhOyLnQ0KK+yGkOuPmeyImA0KK+yGkOq0ke2ZmA0KK+yGkOyDgeq4sA0KK+yGkOuzteq2jA0KK+yGkOyCvOuzkQ0KK+yGkOyatOq4uA0KK+yGkOyDgeuqqA0KK+yGkOyDge2YuA0KK+yGkOyCvOyYpA0KK+yGkOykkeyXtA0KK+yGkOyDgeynhA0KK+yGkOykke2DnA0KK+yGkO2SjeyWtQ0KK+yGkOunjOuhnQ0KK+yGkOyDgeyyoA0KK+yGkOunieyekA0KK+yGkOuMgOq4uA0KK+yGkOyLnO2aqA0KK+yGkOyEoOqyvQ0KK+yGkOyDge2YuA0KK+yGkOq1kOyImQ0KK+yGkOyerO2YhA0KK+yGkOyEse2WpQ0KK+yGkOyYgeuekQ0KK+yGkOyDge2YuA0KK+yGkOyerOyLrA0KK+yGkOyGjOuylA0KK+yGkOyImOyLnQ0KK+yGkOyiheyatA0KK+yGkOyerOyImQ0KK+yGkOyImOq3vA0KK+yGkOyDgeyhsA0KK+yGkOyEne2YuA0KK+yGkOycpOyLnQ0KK+yGkOyImOuCnA0KK+yGkOyaqeq4sA0KK+yGkOywveyDgQ0KK+yGkOuPmeuNlQ0KK+yGkOyImOuqqA0KK+yGkOq3nOyhsA0KK+yGkOykke2YuA0KK+yGkOyDgeyXtA0KK+yGkOyImOyVlA0KK+yGkOyImO2ZmA0KK+yGkOuzkeynhA0KK+yGkOyDgeyyoA0KK+yGkOyImOyaqQ0KK+yGkO2Yleq1kA0KK+yGkO2DnOydtA0KK+yGkOynhOq4uA0KK+yGkOyImOybkA0KK+yGkO2VmOu2hA0KK+yGkO2VnO2DnA0KK+yGkOu0ieynhA0KK+yGkOyImOydtQ0KK+yGkOy2mOyYpQ0KK+yGkOu0ieyasQ0KK+yGkOqyveyImQ0KK+yGkOyImOyduA0KK+yGkOyerO2ZmA0KK+yGkOy5oOyInA0KK+yGkO2MkOqyvQ0KK+yGkOyInOqzhA0KK+yGkOyYgeu2hA0KK+yGkOuCqO2ZjQ0KK+yGkOyerOqxtA0KK+yGkOyInO2WpQ0KK+yGkOyImOuwsA0KK+yGkOyImOq4sA0KK+yGkOydvOyZhA0KK+yGkOyKueykgA0KK+yGkO2drOuztQ0KK+yGkOydtOuTnQ0KK+yGkOusuOybkA0KK+yGkOyKue2drA0KK+yGkOyInOuNlQ0KK+yGkOyerOq1rA0KK+yGkOuzkeyLnQ0KK+yGkOyLrOyImQ0KK+yGkOyerOyEnQ0KK+yGkO2DnOyasA0KK+yGkOunjO2drA0KK+yGkOyYgeyYpQ0KK+yGkO2XjOyYgQ0KK+yGkOybkOyasA0KK+yGkOyInOu0iQ0KK+yGkOyYgeygnA0KK+yGkOyyoOyglQ0KK+yGkOyYgeyyoA0KK+yGkOq4uOyXsA0KK+yGkOyYgeynhA0KK+yGkOyYgeybkA0KK+yGkOyepeywrA0KK+yGkOuzkeyEnQ0KK+yGkOyYpeuegA0KK+yGkOyInOyhsA0KK+yGkOuMgOyVlA0KK+yGkOuqheynhA0KK+yGkOyZuOyInA0KK+yGkOyEoO2ZmA0KK+yGkOuzke2ZjQ0KK+yGkOyerOuCqA0KK+yGkOyaqeyImA0KK+yGkOyerOyIoA0KK+yGkOygleyXsA0KK+yGkO2YuOyaqQ0KK+yGkOyaqeyLnQ0KK+yGkOuMgOybhQ0KK+yGkOyYpOyYpQ0KK+yGkCDso7wNCivshpDsmrDsi50NCivshpDsp4TtmZgNCivshpDqtJHsp4QNCivshpDqsJHsmIENCivshpDsmrDso7wNCivshpDrqoXtmIQNCivshpDshLHslZQNCivshpDquIjrsLANCivshpDsmrHsiJgNCivshpDshJ3roZ0NCivshpDsnbjsl7QNCivshpDrs5HsoJUNCivshpDsm5DsnbUNCivshpDrj5nsnpANCivshpDsnqzqt5wNCivshpDtlbTtnawNCivshpDsnKTsiJkNCivshpDsmrDroKwNCivshpDtnazspIANCivshpDshKDtmLgNCivshpDsnbjsg4ENCivshpDrs5HquLgNCivshpDquLDrnb0NCivshpDsmKXtmZgNCivshpDsnbzsi50NCivshpDspJHsiJgNCivshpDquIjrp5ANCivshpDstqnsm5ANCivshpDsnbztlqUNCivshpDrqoXsiJgNCivshpDtnazsiJwNCivshpDtmLjsmYQNCivshpDsnbztmLgNCivshpDsgrzrs7UNCivshpDtg5zssqANCivshpDssL3tmLgNCivshpDsnqXsiJgNCivshpDri6zshJ0NCivshpDrj5nsiJkNCivshpDshLHsnYANCivshpDsnqXsmKQNCivshpDspJHrnoANCivshpDsmrTsg4ENCivshpDsoJDrtoQNCivshpDsnqzsm5ANCivshpDqsr3sl7ANCivshpDsmIHsmIENCivshpDquLDrqqgNCivshpDsnqzsnKQNCivshpDsoJXtmLgNCivshpDsp4TtmLgNCivshpDsnZjrj4QNCivshpDsoJXshJ0NCivshpDsmqnsmIENCivshpDsmqnsp4QNCivshpDshLHsiJwNCivshpDsoJXsiJgNCivshpDrj5nstpwNCivshpDshLHsg4ENCivshpDsg4HsiJwNCivshpDsoJXsiJkNCivshpDrrJjsm5ANCivshpDsnqXtm4gNCivshpDsnqzsiJgNCivshpDsoJXsl7QNCivshpDsoJXsmIENCivshpDqtJHshJ0NCivshpDrqoXsmIENCivshpDsoJXsm5ANCivshpDrp5Dsi50NCivshpDsmIHsiJgNCivshpDsmrTsnpANCivshpDsoJXsnKANCivshpDspIDshKANCivshpDsnqzqta0NCivshpDrtInrjZUNCivshpDsoJXtnawNCivshpDsg4HstpgNCivshpDqtJHshLgNCivshpDsmrTtkZwNCivshpDsooXrqqgNCivshpDtmqjrj5kNCivshpDqtJHsi50NCivshpDrp4jrj4QNCivshpDsooXsi50NCivshpDsmqnsiJgNCivshpDtlZzsiJwNCivshpDsmKjtmIQNCivshpDsooXssYQNCivshpDslYjshKANCivshpDrr7jsi50NCivshpDtg5zruYgNCivshpDso7zsiJwNCivshpDtnazsl7ANCivshpDqtIDsnbUNCivshpDtmITshLENCivshpDspJHtmLgNCivshpDsuZjsmIENCivshpDsnqzsp4QNCivshpDtjJDssqANCivshpDssL3sm4UNCivshpDsoJXrp4kNCivshpDsnqzsmKUNCivshpDshozsi50NCivshpDssYTrtIkNCivshpDspIDtl4wNCivshpDtl4ztmZgNCivshpDquLDrjZUNCivshpDssq3siJwNCivshpDsmIHrqqgNCivshpDtg5zstpwNCivshpDqt7zsiKANCivshpDssq3tmLgNCivshpDqsr3tmIQNCivshpDspIDsmqkNCivshpDsnqztg5wNCivshpDsuaDrtIkNCivshpDsmIHrp4wNCivshpDshKDrs7QNCivshpDqsbTsm4UNCivshpDtg5zqs6QNCivshpDtmITsp4QNCivshpDsmqntlZkNCivshpDsooXtnawNCivshpDtg5zsmrENCivshpDshLjtmZgNCivshpDsooXspIANCivshpDsnYDtnawNCivshpDtg5zsmrENCivshpDsgrzsiJgNCivshpDspIDrj5kNCivshpDsm5DrrJgNCivshpDtg5zsm5ANCivshpDtl4zso7wNCivshpDquLDsl7QNCivshpDsp4Trs7UNCivshpDtg5zsm5ANCivshpDslpHrnpgNCivshpDstpjtmLgNCivshpDsiJjsiJkNCivshpDtg5zsm5ANCivshpDqtozrtIkNCivshpDshJ3shJ0NCivshpDquLDtlZkNCivshpDtg5zsobANCivshpDqtozsmrENCivshpDssqDtmZgNCivshpDqtJHso7wNCivshpDtg5zsooUNCivshpDsoJXtnawNCivshpDsnbzqt5wNCivshpDsp4DsnbUNCivshpDtg5ztmZgNCivshpDtmJXshJ0NCivshpDsiJzsiJgNCivshpDsmrDtm4gNCivshpDtg53qt7wNCivshpDsiJntmY0NCivshpDsuaDtmLgNCivshpDso7zsnpANCivshpDtjJDqtowNCivshpDsoJDsiJgNCivshpDtg5zrj4QNCivshpDsooXrj5kNCivshpDtjJDshJ0NCivshpDqsr3spJENCivshpDqtJHsiJgNCivshpDtg5zsi50NCivshpDtlZnquLANCivshpDsmIHslZQNCivshpDspIDso7wNCivshpDrj4TrhZUNCivshpDtlZnsi50NCivshpDtmITtg5wNCivshpDquLDshLgNCivshpDsmIHsmrENCivshpDtlbTqsr0NCivshpDrs5HsnpANCivshpDqsr3rjZUNCivshpDqsJHsi50NCivshpDtlbTrj5kNCivshpDsnbzsiJgNCivshpDrs5Hsi50NCivshpDrj4Trk50NCivshpDtmITqtowNCivshpDsp4Dsi50NCivshpDqt5zquLANCivshpDshJ3tmZgNCivshpDtmZTtg50NCivshpDrj4Tsg50NCivshpDqtJHsl7ANCivshpDtmqjsmrANCivshpDtm4jsnqwNCivshpDsnYDqt5wNCivshpDrqoXshJ0NCivshpDsnZjsmKUNCivshpDtnaXsl7QNCivshpDrs5HslZQNCivshpDssKjrsLANCivshpDsiJjsiKANCivshpDtnazslbwNCivshpDsnbTshKANCivshpDtg5zqt7wNCivshpDquLjshJ0NCivshpDtnaztg50NCivshpDsnZjtmZgNCivshpDquLDtmLgNCivshpDsnZHsiJwNCivshqHqsJXrtoANCivshqHrqoXrp4wNCivshqHrp4zshLENCivshqHsoJXtlZkNCivshqHqsJXtmLgNCivshqHqsr3sm4UNCivshqHtmY3qt5wNCivshqHtg5ztmZgNCivshqHqsr3shJ0NCivshqHsmKXsmrANCivshqHrp4zqt7wNCivshqHrgpnsiJgNCivshqHqtIDsnKgNCivshqHtmITqt5wNCivshqHshLHqsr0NCivshqHsi5zsmqkNCivshqHqtJHsnqwNCivshqHqsr3tlZgNCivshqHshJ3tmZgNCivshqHquLDqs6ANCivshqHqtazshK0NCivshqHsiJjsm5ANCivshqHtl4ztmLgNCivshqHssYTsoJUNCivshqHqt5zshK0NCivshqHsnqzsoJUNCivshqHquLDsi50NCivshqHshJ3siJwNCivshqHquIjsmKUNCivshqHsm5Dsi50NCivshqHrqoXqsr0NCivshqHquLjsiJgNCivshqHquLDsm5ANCivshqHsmIHrk50NCivshqHrs5HtnawNCivshqHrp4zsl7ANCivshqHquLDstpgNCivshqHqsr3snbwNCivshqHsp4TssqANCivshqHsooXquLANCivshqHri6ztmLgNCivshqHsnKTshJ0NCivshqHtlbTquLANCivshqHsmIHtmqgNCivshqHrjIDspJENCivshqHsmIHshKANCivshqHspJHsmrENCivshqHstpjshK0NCivshqHrjIDtmLgNCivshqHsgqztmIQNCivshqHrs5Hsi50NCivshqHrrLjslrgNCivshqHrjZXsiJwNCivshqHrs5HsmqkNCivshqHsnbjssqANCivshqHsiJzri6wNCivshqHrjZXtmY0NCivshqHqsr3rp4wNCivshqHtmqjrjZUNCivshqHsmIHsobANCivshqHrjZXtmZgNCivshqHsmIHsnoQNCivshqHsg53qt7wNCivshqHsnYTtmLgNCivshqHrj5nshK0NCivshqHsiJztmZgNCivshqHsnbzsiJkNCivshqHquLDtmZQNCivshqHrj5nsmIENCivshqHsm5DrsLANCivshqHshLHsiJgNCivshqHsg4HsobANCivshqHrp4zsmIENCivshqHsnbjtmLgNCivshqHspJHtmLgNCivshqHsiJjshLENCivshqHrp4ztl4wNCivshqHstpjrj5kNCivshqHsoJXtg5wNCivshqHspIDsiJwNCivshqHrp5DsobANCivshqHsiJjsl7QNCivshqHsooXsl7QNCivshqHrs5HroYANCivshqHrrLTsmIENCivshqHsnbjsiJwNCivshqHshKDsp4QNCivshqHsmIHtmZgNCivshqHrrLjsmKUNCivshqHsmIHquLANCivshqHsooXsi50NCivshqHsiJzsi50NCivshqHrrLjtlZwNCivshqHrr7jsiJgNCivshqHsmbjsiJgNCivshqHrrLjsiJgNCivshqHrr7jroLkNCivshqHsmqntnawNCivshqHrtoDquLANCivshqHrjIDtmZgNCivshqHrr7zsiJkNCivshqHrs5HstpwNCivshqHtmLjsiJwNCivshqHrr7zstpwNCivshqHrsojsiJgNCivshqHspIDqt7wNCivshqHsoJXsi50NCivshqHqtJHtj6wNCivshqHrs5HtnJgNCivshqHtmqjqt5wNCivshqHrj5nssqANCivshqHrkZDsp4QNCivshqHsg4HqtZANCivshqHqs4TtlZkNCivshqHquLjsl7QNCivshqHquIjsmrANCivshqHsg4Hsl7QNCivshqHrp4zquLgNCivshqHsg4HssqANCivshqHrp4zsi50NCivshqHshJ3qt5wNCivshqHsiJzrs7QNCivshqHrjIDtmZQNCivshqHqsr3tm4gNCivshqHshJ3tmLgNCivshqHqsJXtmZgNCivshqHsg4HsiJgNCivshqHtnaXtlZkNCivshqHshKDri6wNCivshqHsmIHrjZUNCivshqHsoJXsl7ANCivshqHtmITrhYQNCivshqHshKDsmIENCivshqHri6zspIANCivshqHrtInrtIkNCivshqHsoJXtmLgNCivshqHshLHqt7wNCivshqHrp4zshKANCivshqHsmIHsg4ENCivshqHrjZXquLgNCivshqHshLHrj5kNCivshqHrqoXrk50NCivshqHsiJjsiJgNCivshqHrrLTshJ0NCivshqHsiJjqt7wNCivshqHsooXrjZUNCivshqHsooXrqqgNCivshqHtjJDrr7wNCivshqHsiJjsnbwNCivshqHstpjsnbQNCivshqHrj5ntmZgNCivshqHrp5DquLANCivshqHsiJjtmIQNCivshqHsm5DsiJwNCivshqHspp3sl7QNCivshqHsiJzspJENCivshqHsiJzsnpANCivshqHsmqntlZkNCivshqHrs5Hso7wNCivshqHsp4DsobANCivshqHslaDsnpANCivshqHquLDrhYANCivshqHsoJDtnawNCivshqHsmrTrs7UNCivshqHsl7Dtg5wNCivshqHrjIDsnqwNCivshqHrp4zshKANCivshqHsm5Dqsr0NCivshqHsmIHqt5wNCivshqHrjIDsl7QNCivshqHrj5nroKgNCivshqHquLDsi50NCivshqHsmqnrjZUNCivshqHsi6DtnawNCivshqHqs4TtmIQNCivshqHssKjtmZQNCivshqHsmrTtlZwNCivshqHqsr3smKUNCivshqHquLDtmZgNCivshqHsiJjsg4ENCivshqHsm5Drs7UNCivshqHrs5HsnpANCivshqHtnazshKANCivshqHrs7XtmLgNCivshqHsm5DsnqwNCivshqHqsbTtlZwNCivshqHtlZnqt7wNCivshqHsnbjsi50NCivshqHsnbjsg4ENCivshqHtlZnsobANCivshqHshLjsmKUNCivshqHrj5nrs7UNCivshqHsnbjshKANCivshqHqtJHtmY0NCivshqHtjJDssqANCivshqHquLDtnLQNCivshqHsnqXtl4wNCivshqHsoJDtmZgNCivshqHrtInrrLUNCivshqHshozrkZANCivshqHsnqzri6wNCivshqHtmZTsiJgNCivshqHsg53siJgNCivshqHqs7XsmrENCivshqHsnqzrj4QNCivshqHsoJXspIANCivshqHsooXsg4kNCivshqHqtJHsmqkNCivshqHsnqzshJ0NCivshqHsg4HsnpANCivshqHrs5HsmrANCivshqHshLHsp4QNCivshqHsnqzsi6wNCivshqHtg5zsnpANCivshqHrrLjso7wNCivshqHrjIDsmqkNCivshqHsnqzsmqkNCivshqHsmIHsmKQNCivshqHrs5HsmrQNCivshqHsmIHtnawNCivshqHsnqzsmrENCivshqHrr7jquLANCivshqHtnazshJ0NCivshqHsnbTsiJgNCivshqHsnqzsnYANCivshqHso7zsm5ANCivshqHsi53siJgNCivshqHquIjtm4gNCivshqHsnqzspIANCivshqHshLjqtawNCivshqHshKDsmIENCivshqHtg5zqt7wNCivshqHsnqzsp4QNCivshqHsp4TshJ0NCivshqHqsr3smqkNCivshqHrp5DqtawNCivshqHsnqzssqANCivshqHqtJHtmLgNCivshqHsiJjqtZANCivshqHrtInsnKgNCivshqHsnqztg50NCivshqHqsJzsiJwNCivshqHqsr3sp4QNCivshqHshLHssqANCivshqHsoJXroZwNCivshqHsmIHrjZUNCivshqHshJ3quLANCivshqHtlbTtmIQNCivshqHsoJXrr7wNCivshqHqt4DssqANCivshqHtmqjqtawNCivshqHqsr3smqkNCivshqHsoJXshLENCivshqHsnYTssKgNCivshqHsmqnsm4UNCivshqHsmIHsiJkNCivshqHsoJXsobANCivshqHsnqzspJENCivshqHquIjrj5kNCivshqHstpjtlZkNCivshqHsooXsiJgNCivshqHsmbjsnpANCivshqHsirnsm4UNCivshqHshLHsnbgNCivshqHspIDshJ0NCivshqHsmIHsoJwNCivshqHrgpntmZgNCivshqHsgrzsnbwNCivshqHsp4HshKANCivshqHrjZXrj4wNCivshqHtlbTshK0NCivshqHqsr3sl7QNCivshqHsp4TssqANCivshqHso7zsiJgNCivshqHtmJXqt5wNCivshqHtg5ztnawNCivshqHssL3shK0NCivshqHqtazrr7wNCivshqHrkZDsiJwNCivshqHsoJzsl7QNCivshqHstpjshLENCivshqHtlZztmIQNCivshqHrs5HsmrANCivshqHsoJXsooUNCivshqHstpjsnbUNCivshqHsiJzsl7QNCivshqHshLHsiJgNCivshqHsnoTrqqgNCivshqHstpjtnawNCivshqHsmKXtlYQNCivshqHrs5Hsi6ANCivshqHrs5HsmqkNCivshqHtg5zsiJgNCivshqHrr7jsmKUNCivshqHqtJHtmIQNCivshqHsnYDsiJgNCivshqHtlZnshKANCivshqHshLHsmqkNCivshqHrqoXqta0NCivshqHqtJHtmIQNCivshqHtlZzssqANCivshqHrrLjsi50NCivshqHrs5HtmIQNCivshqHsoJXtnawNCivshqHtl4zsmIENCivshqHsnKTqt7wNCivshqHsirnshK0NCivshqHsoJXroZ0NCivshqHtmLjshKANCivshqHsiJjqtZANCivshqHsnqztmZgNCivshqHssKjshKANCivshqHtmLjshLENCivshqHrj5nshLENCivshqHtmJXsgrwNCivshqHtg5zqt7wNCivshqHtnazshLENCivshqHsmIHtmLgNCivshqHsnKTqtowNCivshqHsiJzqt7wNCivsi5zqtJHspIANCivsi5zshozqt7wNCivsi5zquLDsspwNCivsi5zsg4HtmLgNCivsi5zrp4zsi50NCivsi5ztlZnquLANCivsi5zssL3soJUNCivsi5zrjZXtnawNCivsi5zrp5DrtoQNCivsi5zrj4TrqqkNCivsi5zrkZDslZQNCivsi5zrs7TtlZwNCivsi5zrqoXsiKANCivsi5zsmrDtmLgNCivsi5zqt5zsg50NCivsi5zshozsi50NCivsi5zrqoXtmZgNCivsi5zqsr3tmLgNCivsi5zsirnquLgNCivsi5zquLDroZwNCivsi5zrrLTspIANCivsi5zqt5ztmLgNCivsi5zstpjtg5wNCivsi5zsnKTshLENCivsi5zrr7zquLANCivsi5zrs7XsiKANCivsi5ztmZTsiJgNCivsi5zsg4Htg5wNCivsi5zrs5Hqt5wNCivsi5ztlZztmLgNCivsi5zsnqzssKwNCivsi5zsnbzsmqkNCivsi5zrs5HquLANCivsi5ztlbTshKANCivsi5zrrLjrnb0NCivsi5zrrLTtmLgNCivsi5zrs5HrqqgNCivsi5zsg4HsiKANCivsi5zsnbjtl4wNCivsi5zsiJzsi50NCivsi5zrs5Hsg50NCivsi5zsmbjsnpANCivsi5zsiJjsm5ANCivsi5zshJ3sp4QNCivsi5zrs5HsiJgNCivsi5zsnqzqs6QNCivsi5zrr7jsiJgNCivsi5zqtIDsg50NCivsi5zrs5HsmIENCivsi5zsg4HsiJkNCivsi5ztnJjqsr0NCivsi5zsm5TtmZgNCivsi5zrs5HsnbUNCivsi5zssL3tnawNCivsi5zssKzsmrANCivsi5zsoJXqt5wNCivsi5zrs5HsnoQNCivsi5zsnbjtmY0NCivsi5zqt4DtnawNCivsi5zsmIHshK0NCivsi5zrs5Htg50NCivsi5zrjZXrp4wNCivsi5zsoJXrtoQNCivsi5zsnqzsiJgNCivsi5zrs5HtmZgNCivsi5zsoJDroZ0NCivsi5zsg4HshJwNCivsi5zshLHtmIQNCivsi5zrtIntmLgNCivsi5zso7ztmZgNCivsi5zsooXsi50NCivsi5zsnqzqt5wNCivsi5zsg4HspIANCivsi5zsoJXsl7ANCivsi5zsooXsmqkNCivsi5zsnbzqt7wNCivsi5zshJ3snbQNCivsi5zsnbzshJ0NCivsi5zsmIHrp4wNCivsi5zsoJXsp4ANCivsi5zshKDsi50NCivsi5zsirnshKANCivsi5zrs5HshJ0NCivsi5zsiJztmZgNCivsi5zshozsi50NCivsi5zsi6DtlZwNCivsi5zsg4HsmrENCivsi5zqsr3shLENCivsi5zsiJjspIANCivsi5zshLHsmKUNCivsi5zshJ3qt5wNCivsi5zsnZjsnpANCivsi5zsiK3qtawNCivsi5zssKjqt5wNCivsi5zsmIHtm4gNCivsi5zsg4HsiJgNCivsi5zsl7DspIANCivsi5zsnbzquLANCivsi5ztjJTtnawNCivsi5zsnqzsiJgNCivsi5zsmKXsiJwNCivsi5zsnYDtkZwNCivsi5zsooXqt5wNCivsi5zsmIHsiJgNCivsi5zsmqnsi50NCivsi5zsmIHqt7wNCivsi5zsmqnsmIENCivsi5zsooXtmZgNCivsi5zsmrDsi50NCivsi5zssL3qt7wNCivsi5zrqoXrp4wNCivsi5zsnITsnKQNCivsi5zsnbTspIANCivsi5zrqoXtmZgNCivsi5zrtIntmIQNCivsi5ztlbTssqANCivsi5zsnqzqt5wNCivsi5zrtoTroZ0NCivsi5ztlZzrtoQNCivsi5zsoJXssqANCivsi5zsooXqta0NCivsi5zsgrzrtIkNCivsi5zqta3sp4QNCivsi5zrtoTsiJgNCivsi5zsooXsm5ANCivsi5zsnKTqtZANCivsi5zsnZHqt7kNCivsi5ztjJDsiJkNCivsi5zsp4TqtowNCivsi5zsmqnsnoQNCivsi5zssL3rhYQNCivsi5zrhbjsi50NCivsi5zssKzspIANCivsi5zrk53qt6ANCivsi5zsmrTshLENCivsi5zsmqnso7wNCivsi5zstpjsnpANCivsi5zsooXrtIkNCivsi5zsnqzrqqkNCivsi5ztmITtmLgNCivsi5zsuaDrrLgNCivsi5zsp4TssqANCivsi5ztg5zsmqkNCivsi5ztnaztlZkNCivsi5ztg5zsiJgNCivsi5zsoJXsmqkNCivsi5zsiJzsiJgNCivsi5zsooXsmKUNCivsi5ztg5zsiKANCivsi5zslYTsmIENCivsi5zrtInsspwNCivsi5zspIDtnawNCivsi5ztg53qt5wNCivsi5ztlZnshK0NCivsi5zqsr3siJgNCivsi5zsnYTsp4QNCivsi5ztlbTshKANCivsi5ztg5ztmLgNCivsi5zsnYTrspQNCivsi5zsp4DtmLgNCivsi5ztmITquLANCivsi5zrqoXsnbQNCivsi5zsiJjsiJgNCivsi5ztlZntnawNCivsi5ztmLjspIANCivsi5zsoJDqt7wNCivsi5zrs5HtlZwNCivsi5zspIDtg50NCivsi5ztmLjsp4QNCivsi5zssqDshJ0NCivsi5zshozso7wNCivsi5zstpjsmqkNCivsi5ztmZjspIANCivsi5zrs7XquLANCivsi5zqtoztg50NCivsi5zsmKXsnqwNCivsi6DqsJHshLENCivsi6DsnbjssqANCivsi6Drs7XshJ0NCivsi6Dsl7Drs7UNCivsi6DqsJHsiJwNCivsi6Dtg53ssqANCivsi6DtmJzsnqwNCivsi6Ag7ZiEDQor7Iug6rCV7IudDQor7Iug7Iic7JmEDQor7Iug66+47IudDQor7Iug7Jqp7KGwDQor7Iug6rG07JqwDQor7Iug6rK97IicDQor7Iug7KKF7IiYDQor7Iug7KeE7ZmYDQor7Iug6rK966eMDQor7Iug7KKF6recDQor7Iug7J287Jq0DQor7Iug7ISx7JqwDQor7Iug6rK966qoDQor7Iug7IOB7JqwDQor7Iug7KKF7IOdDQor7Iug7KCV7ZiVDQor7Iug6rK97IudDQor7Iug7IOB6rK9DQor7Iug6rCV6raMDQor7Iug7J287ISdDQor7Iug6rK97JqwDQor7Iug7Iic6rK9DQor7Iug7ZW07IiYDQor7Iug7JiB7J2RDQor7Iug6rK97JuQDQor7Iug7J6E7ZmUDQor7Iug7YOc7IiYDQor7Iug67OR6rWwDQor7Iug6rK97KGwDQor7Iug6rec7ZmYDQor7Iug6ri47JqwDQor7Iug7IiY7JilDQor7Iug6rOE7KO8DQor7Iug6rCV7IicDQor7Iug6rK96re8DQor7Iug7J247J6QDQor7Iug6rOh7KCQDQor7Iug64+E7KSADQor7Iug7Jqw7JqwDQor7Iug7JiB6rWtDQor7Iug6rSR67O1DQor7Iug7Iq57JqpDQor7Iug66qF7ISdDQor7Iug7Jqp7IOBDQor7Iug6rSR7JqpDQor7Iug7KKF7Zi4DQor7Iug7LCo7ISgDQor7Iug7ZWY6re8DQor7Iug6rSR7J24DQor7Iug64+E7JqwDQor7Iug7Jik7ZiEDQor7Iug7JiB7IudDQor7Iug6rSR7KeADQor7Iug7ZeM7IStDQor7Iug7KCc6recDQor7Iug7ZmU7IiYDQor7Iug6rWs7IOdDQor7Iug7KCV67CwDQor7Iug7KO87JqwDQor7Iug7ISd6riwDQor7Iug6reA64KoDQor7Iug6riw7ZWYDQor7Iug7Iic7IudDQor7Iug7KSA6riwDQor7Iug6reg7JqwDQor7Iug7ISx7JuQDQor7Iug7KKF7LGEDQor7Iug6rK97J6QDQor7Iug6reg7JqwDQor7Iug7LC97IudDQor7Iug6rK96recDQor7Iug6raM6rWtDQor7Iug6riI64usDQor7Iug7LC97ISdDQor7Iug7JiB7Iq5DQor7Iug7Z2s7IiYDQor7Iug6riN7JqwDQor7Iug7KSR7ZWcDQor7Iug7KCV7Zi4DQor7Iug7ZiE6regDQor7Iug6riw7JqwDQor7Iug7KO87J6QDQor7Iug7IOB7Zi4DQor7Iug7KCV7J20DQor7Iug6riw7JuQDQor7Iug7LC97Zi4DQor7Iug7ZWc7ZWcDQor7IugIOqwkQ0KK+yLoOq4sOybkA0KK+yLoOybkO2DnQ0KK+yLoOyEseunjA0KK+yLoOyGjOq3nA0KK+yLoOq4sOy2nA0KK+yLoOyInO2drA0KK+yLoOuPhOqwnA0KK+yLoOqwiOq4sA0KK+yLoOq4sOy2nA0KK+yLoOy2lOyEsQ0KK+yLoOq0keq3uQ0KK+yLoOyaqeq0kQ0KK+yLoOq4uOyasA0KK+yLoOuLrOuqqA0KK+yLoOyXsOyErQ0KK+yLoOyDge2XjA0KK+yLoOq4uOyatA0KK+yLoOyGjOyhsA0KK+yLoOy2mOyerA0KK+yLoOybkOyImA0KK+yLoOuCnOyasA0KK+yLoOuMgOy2nA0KK+yLoOuzkeuvvA0KK+yLoOyiheyxhA0KK+yLoOuCqOq3vA0KK+yLoOuMgOq2jA0KK+yLoOyInOyerA0KK+yLoOqyve2VmQ0KK+yLoOuCqOyImQ0KK+yLoOygleuPmQ0KK+yLoOygleyDgQ0KK+yLoOuzkeyImQ0KK+yLoOuCqOyInA0KK+yLoOydtOyEnQ0KK+yLoOuNleugrA0KK+yLoOyYge2DnQ0KK+yLoOuLrO2ctA0KK+yLoOywqOq0gA0KK+yLoOuPhOyYgQ0KK+yLoOyInOybhQ0KK+yLoOuNleyasA0KK+yLoOq0keuTnQ0KK+yLoOyepeq4uA0KK+yLoO2DnOyjvA0KK+yLoOuPhOyaqQ0KK+yLoO2VnOykgA0KK+yLoOydgOq3nA0KK+yLoOyaqeyhsA0KK+yLoOuPiOyasA0KK+yLoOuqhe2DnQ0KK+yLoOygleq4sA0KK+yLoO2VtOyErQ0KK+yLoOuPiO2ctA0KK+yLoOyInOybkA0KK+yLoOuPhOyImQ0KK+yLoOyImOyYpQ0KK+yLoOuPmeq0gA0KK+yLoOu2hO2ZmA0KK+yLoO2DnOq3nA0KK+yLoOuzkeyYgQ0KK+yLoOuPmeq1rA0KK+yLoOuqheyEuA0KK+yLoOy2mO2YuA0KK+yLoO2DnOuylA0KK+yLoOuPmeq1rQ0KK+yLoOyDgeuhnA0KK+yLoOyImOuFuA0KK+yLoO2dpeyEuA0KK+yLoOuPmeynhA0KK+yLoOyEseyyoA0KK+yLoOygleq2jA0KK+yLoOygleyKuQ0KK+yLoOuPmeynhA0KK+yLoOydgO2drA0KK+yLoO2DnOybkA0KK+yLoOynhOuCqA0KK+yLoOuPme2YhA0KK+yLoOyerOyLnQ0KK+yLoOyImOyXtA0KK+yLoO2DnO2ZmA0KK+yLoOuPme2YhA0KK+yLoOuqhe2YhA0KK+yLoOyDgeyasA0KK+yLoOyEneyihQ0KK+yLoOuPme2YuA0KK+yLoOyDgeyImA0KK+yLoO2VtOy2nA0KK+yLoOyaqe2cmA0KK+yLoOuPme2YuA0KK+yLoOyImOq1rQ0KK+yLoOuMgOq3nA0KK+yLoOyynOufiQ0KK+yLoOuPme2ZlA0KK+yLoOydmOyImA0KK+yLoO2aqOuwsA0KK+yLoOyerO2YuA0KK+yLoOuPme2biA0KK+yLoOq4sOunjA0KK+yLoOuCqOuqqA0KK+yLoOyerOyImA0KK+yLoOuPme2biA0KK+yLoOyyoOunjA0KK+yLoOuCmeuPmQ0KK+yLoOyDgeyjvA0KK+yLoOunjOyLnQ0KK+yLoOyYgeyEsQ0KK+yLoOunjO2YuA0KK+yLoOygleulnA0KK+yLoOunkOyEoA0KK+yLoOyiheyyoA0KK+yLoOyYpeybkA0KK+yLoOyynOyYgQ0KK+yLoOuqheyImQ0KK+yLoOyEneuNlQ0KK+yLoOuFuO2YuA0KK+yLoOyngO2ZlA0KK+yLoOuqheyasA0KK+yLoOyImOywrA0KK+yLoOynhOydtA0KK+yLoOyEseq3vA0KK+yLoOuqheydgA0KK+yLoOyduOyatA0KK+yLoOyDgeq1rA0KK+yLoOq4sOyXsA0KK+yLoOuqheyekA0KK+yLoOuzkeyLnQ0KK+yLoOuNleyjvA0KK+yLoOyYgeydtQ0KK+yLoOuqveyasA0KK+yLoOycpO2ZmA0KK+yLoOyihe2YhA0KK+yLoOydvOyIoA0KK+yLoOusmOyInA0KK+yLoCDqs6QNCivsi6DsmIHspIANCivsi6DstpjtmZQNCivsi6DrrLTssqANCivsi6DsnYDtmLgNCivsi6Dtg5zssqANCivsi6DsmIHqt5wNCivsi6DrrLTtmY0NCivsi6DsmqnqsbQNCivsi6Drs5Hqt7wNCivsi6DrtoDsmIENCivsi6DrrLjtmLgNCivsi6Dstpjso7wNCivsi6Drs5Hsi50NCivsi6DshLHrjZUNCivsi6Drr7jsiJkNCivsi6DsnZjsiJgNCivsi6DtlYTsmrANCivsi6DquLDsnqwNCivsi6DrspTqt6ANCivsi6DsmrTsoJUNCivsi6Drs5HtmJUNCivsi6Dqsr3smIENCivsi6DrspTtmIQNCivsi6DstpjsmKUNCivsi6Dtko3siJgNCivsi6DsnqzshJ0NCivsi6Drs5Hsl7QNCivsi6DshLjsoJUNCivsi6Drj5nshJ0NCivsi6DssKjqt7wNCivsi6Drs5HsmrANCivsi6DtjJDrtIkNCivsi6Ag7ZWYDQor7Iug7IiY7IiYDQor7Iug67OR7KO8DQor7Iug7IOB7JWFDQor7Iug7JiB65OdDQor7Iug7J247IStDQor7Iug67OR7Zy0DQor7Iug7ISx7ZmYDQor7Iug66y07ISdDQor7Iug7KCV7IudDQor7Iug67SJ7Zy0DQor7Iug7J206re8DQor7Iug7JuQ66qoDQor7Iug7Zi47IudDQor7Iug67SJ7Zy0DQor7Iug7IaM6riwDQor7Iug64+Z66y4DQor7Iug6riw7IiYDQor7Iug7IK87JilDQor7Iug66eQ7Z2sDQor7Iug6rOh7J28DQor7Iug7ZWc7LKcDQor7Iug7IOB7IiYDQor7Iug7ZmU6re8DQor7Iug7YyQ7KKFDQor7Iug66qF67KUDQor7Iug7IOB7IiYDQor7Iug7ZWc7JqwDQor7Iug6rec6rWsDQor7Iug7J6s7YOcDQor7Iug7IOB7J6sDQor7Iug7IOB6rG0DQor7Iug64yA7IudDQor7Iug7ISd6rWtDQor7Iug7IOB7Zy0DQor7Iug6re87IiZDQor7Iug67Cx7YOcDQor7Iug7ZW06riwDQor7Iug7IOB7Zy0DQor7Iug642V7JqpDQor7Iug66eM64+EDQor7Iug6rOE7IiYDQor7Iug7ISd67O1DQor7Iug7JyE7IiYDQor7Iug7IOB7JaRDQor7Iug7KSR6riwDQor7Iug7ISd7KGwDQor7Iug7JiB7ISxDQor7Iug7KCQ7IiYDQor7Iug6rK97KGwDQor7Iug7ISd7LKgDQor7Iug66qF7LKcDQor7Iug6re86recDQor7Iug7JiB7YOcDQor7Iug7ISg66qFDQor7Iug6rSR7IiZDQor7Iug7IOB7KO8DQor7Iug7KeE7IiYDQor7Iug7ISg7IicDQor7Iug7ZiE7ZWcDQor7Iug7ISx7JikDQor7Iug7IK87JyoDQor7Iug7ISx6re8DQor7Iug6rSR7J6EDQor7Iug6rec7Zi4DQor7Iug7Iic7IiYDQor7Iug7ISx7JqwDQor7Iug7ZWc7KCVDQor7Iug7Jqw7ZWcDQor7Iug7Iic7J20DQor7Iug7ISx7Zi4DQor7Iug6riw7ZmUDQor7Iug7ISx7IiYDQor7Iug6rec7IudDQor7Iug7ISx7Zy0DQor7Iug7KCV7LKgDQor7Iug66qF7J6QDQor7Iug7LaY7Zi4DQor7Iug7ISx7Zy0DQor7Iug7J2R656YDQor7Iug7KKF7ZWcDQor7Iug7JiB7ZmYDQor7Iug7IaM67aEDQor7Iug7KCV7KO8DQor7Iug66y465OdDQor7Iug7ISx64+EDQor7Iug7IaM7ISgDQor7Iug7YOc7ZmYDQor7Iug7ZmN7IiYDQor7Iug7ZWt7JiBDQor7Iug7IiY7J6QDQor7Iug7ISd64KoDQor7Iug7Iic6riwDQor7Iug6rWs7LKgDQor7Iug7Iic65OdDQor7Iug67O07J20DQor7Iug66e56rWtDQor7Iug66qF7ZmUDQor7Iug7Iic67aEDQor7Iug67O17ZmUDQor7Iug7KKF7ZmYDQor7Iug66y47LaYDQor7Iug7Iic7IiYDQor7Iug7KCV7ZmYDQor7Iug7ISx7IS4DQor7Iug7JiB6recDQor7Iug7Iic7JilDQor7Iug7IOB7J6sDQor7Iug7KCV6recDQor7Iug7KCV7ZmYDQor7Iug7Iic7KGwDQor7Iug66m07ZiEDQor7Iug7YOc7ISxDQor7Iug7Iuc7KSADQor7Iug7Iic7Z2sDQor7Iug7J287KeRDQor7Iug7J6Q7ZWEDQor7Iug7IOB7IiZDQor7Iug7Iq567KUDQor7Iug67O07ISgDQor7Iug6rSR6riIDQor7Iug7J6s7YOcDQor7Iug7Iq57JqwDQor7Iug64+E6raMDQor7Iug7Iic66+8DQor7Iug7JuQ7JilDQor7Iug7JWg7Z2sDQor7Iug6rK97ZmNDQor7Iug6rec7IudDQor7Iug7KKF6re8DQor7Iug7JaR7JilDQor7Iug7Jqp66y4DQor7Iug6rec7Zi4DQor7Iug6raM7Je0DQor7Iug7JaR7JqwDQor7Iug7KCV6raMDQor7Iug7LKg67CpDQor7Iug6rOE7JuQDQor7Iug7Ja47Zi4DQor7Iug64us7KGwDQor7Iug7KCV7ISgDQor7Iug6rOE7IudDQor7Iug7Jew7J20DQor7Iug7Zi47Zi4DQor7Iug7JiB7JmEDQor7Iug7JuQ7J6QDQor7Iug7Je07Zy0DQor7Iug64yA67CxDQor7Iug7ZeM7Zi4DQor7Iug7J2A7KO8DQor7Iug7Je07Zy0DQor7Iug7JiB6re5DQor7Iug7KCV7KCVDQor7Iug6rSR7IutDQor7Iug7JiB6rG0DQor7Iug6rCR6rCVDQor7Iug6rec7JykDQor7Iug7ISx6rWtDQor7Iug7JiB7IudDQor7Iug6riw67SJDQor7Iug7JiB7JqwDQor7Iug7Iq57JewDQor7Iug7JiB7IudDQor7Iug7IiY7ZWYDQor7Iug7KO864+EDQor7Iug66eQ7ZiVDQor7Iug7JiB7J28DQor7Iug6rK97ZmUDQor7Iug66eQ7IicDQor7Iug6rG07KeBDQor7Iug7JiB7KGwDQor7Iug6rCR7IigDQor7Iug7J286rKwDQor7Iug7J6l6rOkDQor7Iug7JiB7KSADQor7Iug7ZW07J6sDQor7Iug64yA7LKgDQor7Iug7Zic7IudDQor7Iug7JiB7Zy0DQor7Iug7YyQ7IOBDQor7Iug7IaM67O1DQor7Iug7YyQ7J6QDQor7Iug7Jil7J6QDQor7Iug6re87J6QDQor7Iug7IOB7Zi4DQor7Iug67OR7IiZDQor7Iug7Jil7J6QDQor7Iug7Jqp7ZiEDQor7Iug64yA7LacDQor7Iug7Jqw7IudDQor7Iug7JmE66qoDQor7Iug7LC97Zi4DQor7Iug7JiB7ZmUDQor7Iug66qF64qgDQor7Iug7JmE7JqwDQor7Iug6rec64+ZDQor7Iug7ISx6rK9DQor7Iug7LC97Zi4DQor7Iug7Jm47IiZDQor7Iug6rK967KUDQor7Iug7JuQ7LacDQor7Iug7LC97LKcDQor7Iug7Jqp6rWsDQor7Iug7KeE7IudDQor7Iug7ISx7KGwDQor7Iug7Iug7Je0DQor7Iug7Jqp6re8DQor7Iug7KO87JewDQor7Iug6ri47ISgDQor7Iug6rK97Zi4DQor7Iug7Jqp7ISdDQor7Iug7KKF67SJDQor7Iug7KKF7KO8DQor7Iug64+Z7IiYDQor7Iug7Jqp7IiYDQor7Iug64W47LaYDQor7Iug67OR7ZmYDQor7Iug7KCV64yADQor7Iug7Jqp7KSADQor7Iug7Jil7IiYDQor7Iug7LC97Zi4DQor7Iug7LaY7IudDQor7Iug7Jqp7Zi4DQor7Iug6riI7YOdDQor7Iug7KO87JewDQor7Iug67O06rG0DQor7Iug7Jqw7LKgDQor7Iug7IiY7ZiEDQor7Iug6rK97ISgDQor7Iug64+Z7LKgDQor7Iug7JuF7JqpDQor7Iug7J6s7IS4DQor7Iug64W47JqwDQor7Iug7YOc7JqpDQor7Iug7JuQ7IicDQor7Iug6riI7J28DQor7Iug7Zic6re8DQor7Iug7Jik7ISdDQor7Iug7JuQ7JqwDQor7Iug66eM7Je0DQor7Iug7J6s7KGwDQor7Iug7JiB7KGwDQor7Iug7JuU6rWsDQor7Iug7Z2l66qFDQor7Iug7ISd64u0DQor7Iug7ISg6529DQor7Iug7Jyg7JW8DQor7Iug7ZmU7IStDQor7Iug7ZmY7YOcDQor7Iug6reA6rWsDQor7Iug7Jyh656ADQor7Iug7Jew64+ZDQor7Iug7JiB7JiBDQor7Iug64+Z7LaYDQor7Iug7Jyk7IOdDQor7Iug7ZmY64+EDQor7Iug6riw7JmEDQor7Iug6riw7LacDQor7Iug7Jyk7IiZDQor7Iug7LaY7Je0DQor7Iug7Z2s66eMDQor7Iug7YOc7YOdDQor7Iug7Jyk7IudDQor7Iug7JuQ7Zi4DQor7Iug7Iq566a8DQor7Iug6riI66eMDQor7Iug7Jyk7IudDQor7Iug7ZqM6528DQor7Iug6rK97JqpDQor7Iug6rK97Zi4DQor7Iug7Jyk7IudDQor7Iug7IOB7Z2sDQor7Iug7IOB7IOBDQor7Iug65GQ7Z2sDQor7Iug7Jyk7IudDQor7Iug7ISd7IudDQor7Iug66y07ZuIDQor7Iug7IiY6rSADQor7Iug7Jyk7JqwDQor7Iug67OR7YOcDQor7Iug7IOB7Je0DQor7Iug7Iic7JewDQor7Iug7Jyk7KGwDQor7Iug7KSA7YOdDQor7Iug66qF64KoDQor7Iug7YOc67O1DQor7Iug7J2E7IiYDQor7Iug6riw7ISxDQor7Iug7LCs656ADQor7Iug7IiZ66qFDQor7Iug7J2E7IudDQor7Iug7ISx7IahDQor7Iug64+Z7ZmYDQor7Iug6riw6riwDQor7Iug7J2E7LKgDQor7Iug7Jil7Zi4DQor7Iug7JWI7JiBDQor7Iug7IiY7JewDQor7Iug7J2R7YOcDQor7Iug7Jqp7LacDQor7Iug67aE7KKFDQor7Iug7Iug64KoDQor7Iug7J246riwDQor7Iug7IK87Iq5DQor7Iug64yA6re8DQor7Iug7YOc7JuQDQor7Iug7J247IiZDQor7Iug7ZiE64yADQor7Iug7KeE7IudDQor7Iug7IaM66qoDQor7Iug7J247IudDQor7Iug7ISg7LKgDQor7Iug7IOB7ISdDQor7Iug7ZWZ64+MDQor7Iug7J247JqwDQor7Iug7ISx7ZmYDQor7Iug7YyQ7IudDQor7Iug7IiY64+EDQor7Iug7J287IStDQor7Iug7ZqM7ISdDQor7Iug7YOc7JqpDQor7Iug7Jqp7JykDQor7Iug7J6E7J20DQor7Iug7KKF7IiYDQor7Iug7ZeM7LKcDQor7Iug7KeE6regDQor7Iug7J6E7Zy0DQor7Iug7KCV7KeEDQor7Iug7ZWY6529DQor7Iug6re87Z2sDQor7Iug7J6l6rK9DQor7Iug7JiB7KGwDQor7Iug66qF7JiBDQor7Iug7J6s7Z2sDQor7Iug7J6s66y4DQor7Iug7Zqo7JiBDQor7Iug7ISg67O1DQor7Iug7ZmN6riwDQor7Iug7J6s7IiYDQor7Iug7KKF7LKgDQor7Iug7ISx66OhDQor7Iug64us7JuQDQor7Iug7J6s7JqwDQor7Iug6rec7JqxDQor7Iug6rO164WEDQor7Iug67OR7IudDQor7Iug7J6s7Jq0DQor7Iug7J287Zi4DQor7Iug7J6s7YOcDQor7Iug642V7ISkDQor7Iug7J6s7Jq0DQor7Iug64+Z7JewDQor7Iug7LaY7IudDQor7Iug64W47ZmNDQor7Iug7J6s7J2YDQor7Iug7IiY7JewDQor7Iug66e57ZmYDQor7Iug7J2A7JqpDQor7Iug7J6s7ZWZDQor7Iug66q97J20DQor7Iug6rSR7Zi4DQor7Iug7KKF67aEDQor7Iug7J6s7Zi4DQor7Iug7KSR7Jq0DQor7Iug7LaY7IudDQor7Iug7Z2s7JewDQor7Iug7KCQ65OdDQor7Iug7IOB7JilDQor7Iug7LKg6re8DQor7Iug7J246recDQor7Iug7KCQ7JqpDQor7Iug67SJ7JqwDQor7Iug6rCR7JuFDQor7Iug7LKg7IicDQor7Iug7KCV6recDQor7Iug7ZaJ7LKgDQor7Iug6rK97IiZDQor7Iug7KCV7ZWZDQor7Iug7KCV7IicDQor7Iug7IOB7JuFDQor7Iug67SJ7ZiVDQor7Iug6rK97JuFDQor7Iug7KCV7IicDQor7Iug7ZWc7JuQDQor7Iug7Jq064+MDQor7Iug7JuQ7JWgDQor7Iug7KCV7IudDQor7Iug7ISx7J6sDQor7Iug7Jqp7Zi4DQor7Iug7KCV7IudDQor7Iug7KCV7LKgDQor7Iug67KU6rOkDQor7Iug7JiB7KeBDQor7Iug7J2A64WEDQor7Iug7KCV7Zy0DQor7Iug65GQ7JilDQor7IugIO2YuA0KK+yLoOygleuvvA0KK+yLoOygle2ctA0KK+yLoO2VnOyasA0KK+yLoO2YuO2drA0KK+yLoOyImeyihQ0KK+yLoOygnO2YuA0KK+yLoOq4sOyLnQ0KK+yLoOuPmeuqqQ0KK+yLoOygkO2ZmA0KK+yLoOyiheq1rA0KK+yLoOyYgeuTnQ0KK+yLoO2DnO2XjA0KK+yLoO2aqOq4sA0KK+yLoOyiheuPhA0KK+yLoOuzkeuPhA0KK+yLoOywveyyoA0KK+yLoOyEseywqA0KK+yLoOyiheyLnQ0KK+yLoO2DnO2DnQ0KK+yLoOygleyblA0KK+yLoOyerOq3gA0KK+yLoOyiheyduA0KK+yLoO2drOyImA0KK+yLoOyImOyngQ0KK+yLoO2VtOyerA0KK+yLoOyihe2ctA0KK+yLoO2drO2ZmA0KK+yLoOyiheyIoA0KK+yLoOygleyLnQ0KK+yLoOyihe2ctA0KK+yLoOuzkeuPhA0KK+yLoOyImO2ZmA0KK+yLoOyiheq2jA0KK+yLoOynhOq4iA0KK+yLoOyEseyaqQ0KK+yLoOuMgO2YhA0KK+yLoOuzkeyihQ0KK+yLoOynhOyErQ0KK+yLoOustOuPhA0KK+yLoO2YleyEnQ0KK+yLoOydgOyasA0KK+yLoOynhO2YuA0KK+yLoO2DnOyXsA0KK+yLoOy2nOy2mA0KK+yLoOydvOyaqQ0KK+yLoOywqOu2hA0KK+yLoOustOyYpQ0KK+yLoOyYge2YuA0KK+yLoOuzkeq3nA0KK+yLoOywqOyInA0KK+yLoOunjOu2gA0KK+yLoOuzte2VnA0KK+yLoOq4sO2ZlA0KK+yLoOywrOyLnQ0KK+yLoOyInO2RnA0KK+yLoO2dpeq4uA0KK+yLoOuqheyInA0KK+yLoOywve2YuA0KK+yLoOyImOyLnQ0KK+yLoO2VtOq4uA0KK+yLoOq4sOq3nA0KK+yLoOywve2biA0KK+yLoOyYgeuzkQ0KK+yLoOyImOyyoA0KK+yLoOyImOuNlQ0KK+yLoOyyoOyasA0KK+yLoCDtmIQNCivsi6DsooXssYQNCivsi6Drs5Hsi50NCivsi6DssqDsnbQNCivsi6Drp4zqsr0NCivsi6Dsm5DtmLgNCivsi6Drs5HsiJgNCivsi6Dssq3qt6ANCivsi6DsoJXqt7wNCivsi6Dqs4TsuaANCivsi6DrjZXrsJwNCivsi6DstpjquLANCivsi6Dqsr3rgqgNCivsi6Drp4zqt5wNCivsi6DsiJzshKANCivsi6DstpjtmLgNCivsi6DqtIDrj4wNCivsi6Dqs6DspIANCivsi6DrgqjroZ0NCivsi6Dstqnsi50NCivsi6Dsp4TtmLgNCivsi6DshLHtmZgNCivsi6DtmZjsiJgNCivsi6Dsvozsi50NCivsi6DshozsiJwNCivsi6DspJHrj4QNCivsi6Dtg5zsobANCivsi6Dtg5zslpENCivsi6DqtazquLgNCivsi6Dsgqzqt7wNCivsi6DspJHqs6QNCivsi6Dtg5zsmrANCivsi6DrtoTsg4ENCivsi6Drs7XtnawNCivsi6DsmIHsiJwNCivsi6Dtg5zsmrQNCivsi6DrrLTsi50NCivsi6DshJ3rj4QNCivsi6DtmIHqs6ANCivsi6Dtg5zsp4QNCivsi6Dsg4HshKANCivsi6Dsnqzrs7QNCivsi6DsoJDrjZUNCivsi6Dtg5ztnLQNCivsi6Drj5ntmLgNCivsi6Drs7XsiJkNCivsi6Dsi6Dsp4QNCivsi6DtjJDsiKANCivsi6DrjIDsmKQNCivsi6DquLDrpr0NCivsi6DsoJXsnKQNCivsi6DtlYTtmLgNCivsi6DsnqztlZwNCivsi6DsoJXtmLgNCivsi6Dtg5zqt5wNCivsi6DtlZjqt5wNCivsi6DspIDrp4wNCivsi6Dtg5zrk50NCivsi6Dsp4jso7wNCivsi6DtlZnrtIkNCivsi6DsoJXsiJgNCivsi6DsobDspIANCivsi6Dqt5zsmIENCivsi6DtlZnsi50NCivsi6Drs5Htg5wNCivsi6Dsp4TshJ0NCivsi6DrjIDsp4QNCivsi6DtlZzsmrANCivsi6DsmIHshLENCivsi6DsiJjsiJwNCivsi6DtmJXrsLANCivsi6Dtla3si50NCivsi6DsmIHsobANCivsi6DsmIHsi50NCivsi6DssqDqt5wNCivsi6DtlbTrtIkNCivsi6Dsp4DtmY0NCivsi6Dsnqzqt7wNCivsi6DshLHsp4QNCivsi6DtlbTsi50NCivsi6DrqoXsiJgNCivsi6DqsbTsi50NCivsi6DsooXsspwNCivsi6DtlbTsi50NCivsi6DshJ3si50NCivsi6DssL3shLENCivsi6Dsp4TrrLQNCivsi6DtmITqtawNCivsi6DsiJztnawNCivsi6DsooXrrLgNCivsi6DqtaztlZgNCivsi6DtmITqtawNCivsi6DsmIHrgqgNCivsi6DsoJztmIQNCivsi6DtmJXri6wNCivsi6DtmITqt7wNCivsi6DsmqntmJUNCivsi6Dstpjrp4wNCivsi6Dqt7zsmKQNCivsi6DtmITrjZUNCivsi6DsnqXqsr0NCivsi6DssKjsspwNCivsi6DrkZDtg5wNCivsi6DtmITrp4wNCivsi6Dsg4Htg50NCivsi6DsnbTsiKANCivsi6DshKTstpwNCivsi6DtmITshLgNCivsi6DsmIHsmqkNCivsi6Dtg5zqs6QNCivsi6Drp4zsmKUNCivsi6DtmITslYQNCivsi6Drs7TtmLgNCivsi6DsnqzsobANCivsi6DtmLjrtIkNCivsi6DtmITsmrANCivsi6DshKDtjJANCivsi6DshJ3tmLgNCivsi6DqtJHtmZQNCivsi6DtmITsnqUNCivsi6Ag7IiYDQor7Iug7Jq06rOkDQor7Iug6rec7Zi4DQor7Iug7ZiE7LC9DQor7Iug7IiY7LKgDQor7Iug7ZyY7J6sDQor7Iug7IKs7LKcDQor7Iug7ZiE7Zy0DQor7Iug7IK87JewDQor7Iug7JuU7ZqoDQor7Iug7LaY7IiYDQor7Iug7ZiV7Zy0DQor7Iug7KCQ7ZWZDQor7Iug7ISx7JqpDQor7Iug7KSA6raMDQor7Iug7Zic7IicDQor7Iug7J207J20DQor7Iug7YOc7ISdDQor7Iug6riw66eMDQor7Iug7Zic7ZiEDQor7Iug7ISd7IudDQor7Iug7JiB6regDQor7Iug7JiB7IiYDQor7Iug7Zi47JqwDQor7Iug7YOc7IiYDQor7Iug7IOB656ADQor7Iug66y46riwDQor7Iug7ZmN7IicDQor7Iug6rec7JikDQor7Iug7JuQ7JqwDQor7Iug7Jqx7ZWZDQor7Iug7ZmN7IudDQor7Iug67SJ7J20DQor7Iug7KCc6riwDQor7Iug7ISx7JiBDQor7Iug7ZmN7IudDQor7Iug6riw7IukDQor7Iug7ISx7ZmYDQor7Iug7LC97KO8DQor7Iug7ZmN7LKgDQor7Iug67O07LC9DQor7Iug7JiB7ISdDQor7Iug7IOB7ZmNDQor7Iug7Z2l7IudDQor7Iug7JiB66OhDQor7Iug7IOB642VDQor7Iug6rSR7Zi4DQor7Iug7Z2l7Je0DQor7Iug7KCV7JuFDQor7Iug7ZeM7IicDQor7Iug7Iug7JewDQor7Iug7Z2s7ISxDQor7Iug6rWs7ISdDQor7Iug6rK964usDQor7Iug7J6s66qFDQor7Ius6rK965GQDQor7Ius7Zqo6rWtDQor7Ius7JiB7Zi4DQor7Ius64+Z7Zi4DQor7Ius6rK97JWgDQor7Ius6riw7ZWZDQor7Ius7J6s6riwDQor7Ius7Jqp6recDQor7Ius6rSR7IiYDQor7Ius64+Z7IOBDQor7Ius66y07ZuEDQor7Ius67OR64+ZDQor7Ius6rec7JewDQor7Ius7J6E6re8DQor7Ius66qF7ZmYDQor7Ius66eQ64yADQor7Ius6re867O0DQor7Ius6riw7IudDQor7Ius67OR66eMDQor7Ius7LCo7J6QDQor7Ius6riw7YOdDQor7Ius7KCV6regDQor7Ius7LCo7IOBDQor7Ius7JuQ7Z2sDQor7Ius64+Z7ISdDQor7Ius6rK9656YDQor7Ius7ZmU7IiYDQor7Ius7J6s7Z2sDQor7Ius64+Z7JqxDQor7Ius7JmE6ri4DQor7Ius66eQ7J20DQor7Ius7J247IudDQor7Ius66qF67O0DQor7Ius7IOB7IiYDQor7Ius66+87KeEDQor7Ius7J6E7KCVDQor7Ius66y07J6QDQor7Ius6rCV6rSRDQor7Ius7ZiE7ISgDQor7Ius66y47J6sDQor7Ius66+87IicDQor7Ius6rSR7ZWZDQor7Ius7IyN7JilDQor7Ius7Jqp7Y+sDQor7Ius67O1656YDQor7Ius7J247KGwDQor7Ius7J6s7LaYDQor7Ius67OR7JqpDQor7Ius67aA7IaMDQor7Ius7JiB7IiYDQor7Ius7YyQ7IicDQor7Ius6rec7JilDQor7Ius67aA7J6QDQor7Ius7KKF7IicDQor7Ius7Jm47JiBDQor7Ius7JiB7JuQDQor7Ius7IOB7IStDQor7Ius7Zqo6re8DQor7Ius7ISg7IScDQor7Ius7Ja47ZmYDQor7Ius7IOB7Je0DQor7Ius7KCV7IudDQor7Ius6rCR7IiYDQor7Ius7Jyk7KeEDQor7Ius7IOB7Je0DQor7Ius7JuQ7JikDQor7Ius7ISg6recDQor7Ius7KKF6raMDQor7Ius7IOB7Z2sDQor7Ius6riI7KKFDQor7Ius7JuQ7ZiEDQor7Ius6rSR67aADQor7Ius7ISd67O0DQor7Ius7ISx7J6lDQor7Ius7Jqp7KGwDQor7IusIO2drA0KK+yLrOyEpO2ZlA0KK+yLrOuPmeyErQ0KK+yLrOy5oOyEoA0KK+yLrOyInO2YuA0KK+yLrOyImOuztA0KK+yLrOynhOyjvA0KK+yLrOuqheyjvA0KK+yLrOyduOyInA0KK+yLrOyYgeuztA0KK+yLrOuemOynhA0KK+yLrOuzkeuPhA0KK+yLrO2MkOyImA0KK+yLrOyYgeu0iQ0KK+yLrOynhO2DnA0KK+yLrOustOu0iQ0KK+yLrO2WieydtA0KK+yLrOyYgeyImQ0KK+yLrOq2jOyDgQ0KK+yLrOygnO2VmA0KK+yLrOuzkeq3nA0KK+yLrOyerOuLrA0KK+yLrOu0ie2YuA0KK+yLrOygleuqqQ0KK+yLrOuqheq4sA0KK+yLrOyerOu0iQ0KK+yLrOyDgeyYpA0KK+yLrOy2mOq4sA0KK+yLrOyDgeycpA0KK+yLrOyerOyaqQ0KK+yLrO2drO2YuA0KK+yLrOuqheycqA0KK+yLrOyerO2VnA0KK+yLrOyerOybkA0KK+yLrOyiheyYgQ0KK+yLrOyiheuPmQ0KK+yLrOq0ke2drA0KK+yLrOyerOydtQ0KK+yLrOuzteyerA0KK+yLrOy5oOq3vA0KK+yLrOuzkeuPmQ0KK+yLrOyerO2YhA0KK+yLrOu2hOyatA0KK+yLrCDtlbQNCivsi6zsnqzsm5ANCivsi6zsoJDssqANCivsi6ztg5zsmqkNCivsi6zqt7zsiJkNCivsi6zsnbTso7wNCivsi6zsoJXshK0NCivsi6ztmqjtmZQNCivsi6zsoJXqsr0NCivsi6zsm5TslZQNCivsi6zso7zshK0NCivsi6zqtJHtmIQNCivsi6zrtoTsl7QNCivsi6zsnKTso7wNCivsi6zspJHshK0NCivsi6zqt4DrgpwNCivsi6zsoJzshowNCivsi6zshLHtmIQNCivsi6zssKjsobANCivsi6ztg5zquLgNCivsi6zshJ3siJwNCivsi6zstpjrtIkNCivsi6zssL3shK0NCivsi6zsmIHspIANCivsi6zsi6DsnpANCivsi6zsiJzsnbQNCivsi6zstpjshK0NCivsi6zsooXtg50NCivsi6ztm4jqt5wNCivsi6zrj4jshJ0NCivsi6zstpjshK0NCivsi6zrj5nsnqwNCivsi6zsmIHsmYQNCivsi6zsmrTrgqgNCivsi6ztg5zspIANCivsi6ztmIHsiJgNCivsi6zsoJXqta0NCivsi6zrspTsmqkNCivsi6ztlbTsp4QNCivsi6zrjZXsnbwNCivsi6zqtIDsiJgNCivsi6zssL3snbQNCivsi6ztmITso7wNCivsi6zrj5nspJENCivsi6zsnYDtnaANCivsi6zrtInspIANCivslYgg7IicDQor7JWI7Jqp7ZmYDQor7JWI7J24656ADQor7JWI7KKF7IicDQor7JWI6rCR7ZiEDQor7JWI65Od7ZmUDQor7JWI7JiB7IiZDQor7JWI6reA7IicDQor7JWI6rK97IiZDQor7JWI7Jq07ISdDQor7JWI7IiY7YOdDQor7JWI7Iic67aADQor7JWI6rK97IiZDQor7JWI7ZaJ64+ZDQor7JWI67OR7IiYDQor7JWI7JiB64KoDQor7JWI6rK97JilDQor7JWI7Iic7KGwDQor7JWI7IOB7YOcDQor7JWI7JiB7ZiEDQor7JWI6rK97KGwDQor7JWI7Zi46rWQDQor7JWI67OR6rK9DQor7JWI7JiB7KGwDQor7JWI6rK97Zi4DQor7JWI7JuQ7KO8DQor7JWI7KCV7Z2sDQor7JWI6reA7YOcDQor7JWI6rOE7IicDQor7JWI7JuQ7ZWZDQor7JWI7J6s7ZmUDQor7JWI7Jqp7Zi4DQor7JWI6rSR7ISdDQor7JWI7IOB64+EDQor7JWI7JaR66+8DQor7JWI7YOc7IiYDQor7JWI6reA7ZWZDQor7JWI7Jqp67SJDQor7JWI7J6E6rK9DQor7JWI6rK964yADQor7JWI6rec7Zi4DQor7JWI6rSR7ZuIDQor7JWI6riw7IiYDQor7JWI7Jqp7IiYDQor7JWI64+E7IOBDQor7JWI7KSR7ISdDQor7JWI7J6s7Z2sDQor7JWI64yA7IudDQor7JWI64+Z66y4DQor7JWI7JiB7YOcDQor7JWI67KU7IicDQor7JWI66qF7IudDQor7JWI65GQ7J20DQor7JWI7JiB7JqpDQor7JWI7Zmp7Zi4DQor7JWI7JiB6recDQor7JWI66eQ7ISgDQor7JWI7KKF7Je0DQor7JWI64+Z7IiYDQor7JWI7ISx656ADQor7JWI66qF7KSADQor7JWI7J6s7IiYDQor7JWI7ISg66eMDQor7JWI7J287IicDQor7JWI66+47JWgDQor7JWI7ZWZ7JuQDQor7JWI7IOB7YyUDQor7JWI64+Z7KO8DQor7JWI66+47ZiEDQor7JWI7LaY7JqwDQor7JWI7JiB7ZmUDQor7JWI7YOc7ISdDQor7JWI66+86raMDQor7JWI7Jqp66+4DQor7JWI7Iic7J6EDQor7JWI7JuU7JqpDQor7JWI67SJ7JilDQor7JWI7J6s6raMDQor7JWI7KCQ6rOkDQor7JWI64Ko7IicDQor7JWI67SJ7KGwDQor7JWI7KKF7JuQDQor7JWI7YOc7IOdDQor7JWI7Jqp6rOEDQor7JWI67SJ7ZWYDQor7JWI7YOc7LmgDQor7JWI6rCR7KO8DQor7JWI7KKF7JiBDQor7JWI67aE64qgDQor7JWI7LaY7J28DQor7JWI7ZiE7IicDQor7JWI66qF7KeADQor7JWI7IOB6rWtDQor7JWI7KeA66CoDQor7JWI7KCV7IiYDQor7JWI7J2A6rCRDQor7JWI7IOB7JilDQor7JWI7Jqp6rWtDQor7JWI7KCc67CwDQor7JWI7IOB7Je0DQor7JWI7IOB7JqpDQor7JWI6re87JikDQor7JWI7J6s6recDQor7JWI6re86re8DQor7JWI7IOB7YOcDQor7JWI7J287KeEDQor7JWI7ZW07ZuIDQor7JWI7Iic64u0DQor7JWI7ISk7JWEDQor7JWI7KCV7JqpDQor7JWI7Iic7ZiEDQor7JWI6riw7ZWYDQor7JWI7ISx7IStDQor7JWI7Zi46recDQor7JWI6rWt66+4DQor7JWI7KSA6rOkDQor7JWI7ISx7J2ADQor7JWI7YOc7Z2sDQor7JWI6rK97JqpDQor7JWI66eQ7YOdDQor7JWI7ISx7J28DQor7JWI7ISd7KeADQor7JWI7Jew6recDQor7JWI7Lap66CsDQor7JWI7ISx7LKgDQor7JWI6raB7ISdDQor7JWI7Jyg7ZiEDQor7JWI7IyN7IudDQor7JWI7ISx7Zi4DQor7JWI7IaM7IicDQor7JWI7KSA7IudDQor7JWI7ISx6raMDQor7JWI7ISx7Z2sDQor7JWI7KeE7LKgDQor7JWI7ZWc7IudDQor7JWI7IOB7KeEDQor7JWI7IS467CpDQor7JWI7KO87KCVDQor7JWI6rCR7ZmNDQor7JWI7KCV7ZWcDQor7JWI7IiY64KoDQor7JWI67OR7ZiEDQor7JWI7KKF7ZmUDQor7JWI7Jqp7Zi4DQor7JWI7IiY7JqpDQor7JWI7LC97JuFDQor7JWI7YOc7J6sDQor7JWI67O07LKgDQor7JWI7IiY7KCVDQor7JWI7Iug7Zy0DQor7JWI7J6l7JiBDQor7JWI7Iic7ISdDQor7JWI7IiY7LKcDQor7JWI7JiB6rSADQor7JWI7JiB7YOBDQor7JWI6rK97JiBDQor7JWI7Iic65OdDQor7JWI7JiB67aADQor7JWI7KKF6rSADQor7JWI7ISx6riwDQor7JWI7Iic7J6QDQor7JWI7KO97KSRDQor7JWI7ISx7IigDQor7JWI7YOc7J28DQor7JWI7Iic7Z2sDQor7JWI7J6s7JqpDQor7JWI64us6raMDQor7JWI6rOE7ZWEDQor7JWI7Iq57IiYDQor7JWI67OR6riwDQor7JWI7ZiV7Je0DQor7JWI7ZiE7LmYDQor7JWI7Iug7LKgDQor7JWI64+Z7IicDQor7JWI6rCR64+ZDQor7JWI7YyQ7YOcDQor7JWI7JiB6rK9DQor7JWI66qF642VDQor7JWI7J6s7JqxDQor7JWI7LC97IiYDQor7JWI7JiB6re8DQor7JWI7J6s6rG0DQor7JWI67aE7J6QDQor7JWI7Iq57ISgDQor7JWI7JiB64usDQor7JWI66y47JiBDQor7JWI7ZW07IudDQor7JWI7IiY6raMDQor7JWI7JiB66y0DQor7JWI7JiB66y4DQor7JWI7Jew7Z2sDQor7JWI7KCV7YOBDQor7JWI7JiB7IiYDQor7JWI66eM66eMDQor7JWI7KCV656ADQor7JWI64Ko7IiYDQor7JWI7JiB7KO8DQor7JWIIOyaqQ0KK+yViO2XjOyaqQ0KK+yViOyInO2DnA0KK+yViOyYgeyyoA0KK+yViOycpO2DnQ0KK+yViOusuOyekA0KK+yViOyiheq2jA0KK+yViOyYge2VnA0KK+yViOyiheyEnQ0KK+yViOygleuRkA0KK+yViOygleyImA0KK+yViOyYge2YuA0KK+yViOyZhOujoQ0KK+yViO2DnOuNlQ0KK+yViOqyveqwkQ0KK+yViOyaqeyImA0KK+yViOq4iOuFuA0KK+yViOyiheqzpA0KK+yViOyInOq3vA0KK+yViOyaqe2DnA0KK+yViOyEneuPhA0KK+yViOyEoOyYgQ0KK+yViOygle2ZlA0KK+yViOyaqe2ZmA0KK+yViOuPmeyekA0KK+yViOqxtO2YuA0KK+yViOydvOyduA0KK+yViOycpOyglQ0KK+yViOygleqzpA0KK+yViOyjvOq4sA0KK+yViOyiheydvA0KK+yViOydgOuvuA0KK+yViO2YuO2DnA0KK+yViOunjOyLnQ0KK+yViO2VnO2YhA0KK+yViOydvO2biA0KK+yViCDrj5kNCivslYjrp4zsiJgNCivslYjsmrTsooUNCivslYjsnqzqtIANCivslYjtmITsmIENCivslYjsp4DsmqkNCivslYjsnbzsiJgNCivslYjsnqzsm5ANCivslYjsnZHtmLgNCivslYjqsbTqt5wNCivslYjqsr3sm5ANCivslYjsnqztnawNCivslYjsnpDsm5ANCivslYjslpHsnpANCivslYjsg4HslYgNCivslYjsoJXsm4UNCivslYjshLHsmKUNCivslYjrtoTsmqkNCivslYjsmIHrj4QNCivslYjsoJXtmIQNCivslYjsmIHsi50NCivslYjrs7TrnoANCivslYjrrLTtmLgNCivslYjsoJXtmLgNCivslYjshLHquLgNCivslYjsoJXrtoQNCivslYjsmIHrjIANCivslYjsooXqsJENCivslYjsnbzsiJgNCivslYjrtIntmZQNCivslYjssqDroZ0NCivslYjsooXtkZwNCivslYjtmY3smKUNCivslYjrj4TtmIQNCivslYjrtoDsiJkNCivslYjtg5zsi50NCivslYjshJ3siJwNCivslYjsmIHsmqkNCivslYjtlbTspIANCivslYjtg5zsi50NCivslYjsmYTshLgNCivslYjtlbTshLENCivslYjrs5HsiJwNCivslYjtj4nsiJgNCivslYjsooXtmZgNCivslYjqsJXsuaANCivslYjsnqzsmqkNCivslYjtlLzqsIDroZwNCivslYjsmIHtmZjspJENCivslYjsoJXstpjsmKQNCivslYjsmIHqtozsoJUNCivslYjtlZnso7wNCivslYjsiJzri6wNCivslYjrj4jsnpANCivslYjrkZDsiJgNCivslYjtlbTsiJkNCivslYjqtoztmLgNCivslYjqtZDqsJENCivslYjsgrzso7wNCivslYjtmITshJ0NCivslYjrp5DshLgNCivslYjsmYTtmLgNCivslYjrs5HsmIENCivslYjtmITsiJkNCivslYjsp4TsiJgNCivslYjstqnsobANCivslYjsooXtmZgNCivslYjtmJXrjIANCivslYjsnKTsmrANCivslYjtg5zrgqgNCivslYjsmIHqsr0NCivslYjtmLjshK0NCivslYjsnYDrp4wNCivslYjtg5zsnKANCivslYjqt7zsiJgNCivslYjtmLjspIANCivslYjsmIHsiJgNCivslYjsl7Dqt5wNCivslYjsg4HsnbUNCivslYjtmY3rrLgNCivslYjtlbTrj5kNCivslYjqtJHtg50NCivslYjqsr3qt7wNCivslYjtmY3siJgNCivslYjsp4TtnawNCivslYjtmITsmIENCivslYjsoJDsiJgNCivslYjtmqjrrLgNCivslYjsmIHsi50NCivslYjsnbTqta0NCivslYjtg53tg5wNCivslYjtmqjsmqkNCivslYjqtJHsiJgNCivslYjsmrTsg4ENCivslYjsmrDsnbwNCivslYjtnazrj4QNCivslYjsooXsmqkNCivslYjsoJXsmKUNCivslYjsnqzroZ0NCivslpHqsJHshJ0NCivslpHsnYDshJ0NCivslpHsmKjsiJkNCivslpHstqnrj4QNCivslpHqsJHsirkNCivslpHquLDsi50NCivslpHsmIHrj4QNCivslpHqt5zrgqgNCivslpHqsr3rr7gNCivslpHrqoXsiJkNCivslpHrj5nquLANCivslpHtmLjqtZANCivslpHqsr3tmZQNCivslpHshKDtg5wNCivslpHrjIDsnpANCivslpHrs7XsmKUNCivslpHqtaztmIQNCivslpHrj5nrjZUNCivslpHqsJHssqANCivslpHsiJjssYQNCivslpHqt4DshKANCivslpHqs4TrspQNCivslpHtlZntmLgNCivslpHquIjsnpANCivslpHquIjsmKUNCivslpHsnqXqtawNCivslpHsp4TsiJgNCivslpHqsr3tmZgNCivslpHquLDspIANCivslpHsoJXsiJgNCivslpHrs5HssqANCivslpHspp3qt7wNCivslpHquLDssqANCivslpHsi6Dsp4QNCivslpHsoJXshJ0NCivslpHquIjsl7ANCivslpHrjIDquLgNCivslpHsmrTsiKANCivslpHsnbTtnLQNCivslpHsmIHtmZQNCivslpHrj4TsnbwNCivslpHrtInsm5ANCivslpHsiJjsiJgNCivslpHsmIHquLgNCivslpHrj5nrqoUNCivslpHsl7DstpwNCivslpHsp4TtmakNCivslpHtlZnsp4QNCivslpHrj5nrrLgNCivslpHqsr3sp4QNCivslpHtg5zrp4wNCivslpHsnKTsi50NCivslpHrj5nsl7ANCivslpHtlbTsnbQNCivslpHsiJjsiJgNCivslpHtg5zsi50NCivslpHrp4zsiJgNCivslpHrs5HtmLgNCivslpHsnqzssYQNCivslpHshLHso7wNCivslpHrqbTsiJgNCivslpHshLHsobANCivslpHrtIntnawNCivslpHsgrztm4gNCivslpHrqbTsiJgNCivslpHshozqsr0NCivslpHsmYTqtZANCivslpHsoJXtnLQNCivslpHrrLjtmIQNCivslpHqsr3shK0NCivslpHrp5Dso7wNCivslpHssL3rtIkNCivslpHrr7jqsr0NCivslpHsg4HtnawNCivslpHssL3sobANCivslpHsiJzqs6QNCivslpHrtoDshJ0NCivslpHqt5zsiJgNCivslpHshLHshJ0NCivslpHsnbzsl7QNCivslpHsgqzsmqkNCivslpHrtIntmZgNCivslpHsiJjsiJgNCivslpHsmqnsi50NCivslpHsgrzsiJwNCivslpHrj5nsooUNCivslpHsnKTtmLgNCivslpHsmqnsnpANCivslpHsg4Hqt7wNCivslpHsiJzsp4QNCivslpHtmY3qtowNCivslpHsnqzrjZUNCivslpHsg4Hsl7QNCivslpHsg4Hsl7ANCivslpHshoztmIQNCivslpHsmqnshKANCivslpHsg4HtmZgNCivslpHrj5nsiJgNCivslpHsnbXsmIENCivslpHslaDtg5wNCivslpHshKDquLgNCivslpHsmIHtmLgNCivslpHtlZzsmIENCivslpHsmIHtg5wNCivslpHshLHqsr0NCivslpHtnazshLENCivslpHsnZjqsr0NCivslpHrs5HrgqgNCivslpHshLHqtIANCivslpHtmITtg5wNCivslpHri6zsoJUNCivslpHtmY3tg5wNCivslpHshLHsmKUNCivslpHrrLTsmrANCivslpHtmZjsmIENCivslpHsnZHqta0NCivslpHshLHsmKUNCivslpHsmKXtnawNCivslpHsp4TsiJgNCivslpHsmIHshJ0NCivslpHshLHsmrENCivslpHtmLjsi50NCivslpHsg4HqtowNCivslpHsmqnsiJgNCivslpHshLHtm4gNCivslpHsirnsp4QNCivslpHshKDsmIENCivslpHquLDrgqgNCivslpHshozroZ0NCivslpHqsr3snbgNCivslpHssqDtnawNCivslpHshLHsiJwNCivslpHsiJzsi6wNCivslpHsiJzqt5wNCivslpHsmIHsnKgNCivslpHsooXtl4wNCivslpHsiJzsl7ANCivslpHsnbjrtoQNCivslpHspIDsnpANCivslpHtmITqt5wNCivslpHsiJzsmqkNCivslpHsg4HtnawNCivslpHtlZzrhYQNCivslpHsnbjssqANCivslpHsirntg5wNCivslpHsmrTsnbQNCivslpHtg5zrp4wNCivslpHsl7DssL0NCivslpHsl7DsmKUNCivslpHtl4zsmKQNCivslpHqsJHrs7UNCivslpHsnbjtmLgNCivslpHsl7DsmqkNCivslpHrj5nquLANCivslpHquLDsi50NCivslpHsooXsmqkNCivslpHsmIHqt5wNCivslpHsooXsi50NCivslpHtg5zsiJkNCivslpHtg5zsl7QNCivslpHsmIHqt5wNCivslpHsm5DtnawNCivslpHquLDspIANCivslpHsmqnsmrANCivslpHsmIHrp4wNCivslpHslaDssqANCivslpHstpjtg50NCivslpHrtoTspJENCivslpHsmIHshJ0NCivslpHri7TsobANCivslpHsmrDsiJwNCivslpHsmqnrpqwNCivslpHsmIHshKANCivslpHquLDsm5ANCivslpHsiJzshK0NCivslpHquLDso7wNCivslpHsmKXsobANCivslpHsg4Hsm5ANCivslpHstpjtg5wNCivslpHtg5zsmKUNCivslpHsmqnsnbQNCivslpHsmIHsi50NCivslpHsmIHtg4ENCivslpHsl7DtmLgNCivslpHsmqntjJANCivslpHshKDspIANCivslpHsmKTtmLgNCivslpHrp5DtlbQNCivslpHsm5TsnoQNCivslpHsmIHtmIQNCivslpHshLjqt7wNCivslpHshLHsi50NCivslpHsnKDtmLgNCivslpHtlZjtmZgNCivslpHsooXrrLUNCivslpHqtazsg4ENCivslpHsnYDsmKUNCivslpHrtInsgrwNCivslpHsnbzsmrANCivslpHsoJXquLANCivslpHsnYTsg50NCivslpHrkZDtmJUNCivslpHtmITqsJENCivslpHrj5nsi50NCivslpHsnqXsiJgNCivslpHsoJXsnpANCivslpHtmZTshLENCivslpHqt5ztnawNCivslpHsnqzssqANCivslpHsmqntg50NCivslpHssqDtmLgNCivslpHqt7zsoJANCivslpHsnqzssqANCivslpHsooXtl4wNCivslpHtjJDtmLgNCivslpHsmbjqt5wNCivslpHsnqztl4wNCivslpHsmbjrs7UNCivslpHsmIHqsJENCivslpHsoJXrj5kNCivslpHsoJXshJ0NCivslpHsmqnshJ0NCivslpHssqDqs6QNCivslpHtlZntmIQNCivslpHsoJXtmLgNCivslpHqt7zsnpANCivslpHspIDqt5wNCivslpHqt7zrjIANCivslpHsoJXtmZgNCivslpHsoJXqtowNCivslpHsoJDssqANCivslpHtlZnquIgNCivslpHspp3siJgNCivslpHsnbjtmIQNCivslpHrtoDsiJkNCivslpHqt5zslZQNCivslpHsp4TshJ0NCivslpHrtoTsp4ANCivslpHsnqzrqqkNCivslpHqtZDtmZgNCivslpHsp4Ttg5wNCivslpHtlbTtg50NCivslpHsi5ztmLgNCivslpHqt7zqt5wNCivslpHssKjsiJgNCivslpHsmIHtmZgNCivslpHtg5zsiJkNCivslpHsooXsm5ANCivslpHssqDqs6QNCivslpHsp4TsnbwNCivslpHtjJDrr7wNCivslpHsooXquLANCivslpHstpjrpr0NCivslpHquLDrtoQNCivslpHtmITqt7wNCivslpHsg4HtlbQNCivslpHtlbTqt7wNCivslpHsiJjsp4ANCivslpHsl7DtmIQNCivslpHtg5zsm4UNCivslpHtlbTsnqUNCivslpHtmY3slaANCivslpHtg5zsiJgNCivslpHshKDrk50NCivslpHtl4zrj4QNCivslpHsnKTsiJkNCivslpHsiJjsnpANCivslpHsiJjqtIANCivslpHtmITshJ0NCivslpHqsr3spIANCivslpHsoJDsnbQNCivslpHsnqXsmqkNCivslpHtmJXtlZkNCivslpHshLHrj5kNCivslpHspIDqtIANCivslpHsnKTtm4UNCivslpHtmLjsirkNCivslpHsooXtmLgNCivslpHtlbTrj5kNCivslpHrjZXsp4QNCivslrTrrLjsobANCivslrTsm5DspJENCivslrTrj5ntmIENCivslrTqt7zssqANCivslrTtmITtg5wNCivslrTsooXrqqkNCivslrTsnqzqtawNCivslrTsnITsiJgNCivsl4TqsITsp4ENCivsl4TquLDtmLgNCivsl4Tqsr3sp4QNCivsl4Tsm5DtmIQNCivsl4Tqs4TrtIkNCivsl4Trp5DrgqgNCivsl4TsnqzsiJgNCivsl4TsmrDsiJgNCivsl4Tqt5ztmIQNCivsl4TtmZjsiJgNCivsl4TtjJDsnpANCivsl4TtlbTshKANCivsl4TquLDtmZgNCivsl4Trgqjsl7ANCivsl4TsoJXshK0NCivsl4TtnJjrj4QNCivsl4Trp4nsnbQNCivsl4Tsg4HsiJgNCivsl4TrtIntnawNCivsl4TrspTsp4QNCivsl4Tsgrzso7wNCivsl4TsmrDsi50NCivsl4TtlbTsm5ANCivsl4Tsg4HsiJgNCivsl4Tsg4HquLANCivsl4TsnITtl4wNCivsl4Tqt5zsiJgNCivsl4Trs5HrjIANCivsl4Tsg4HsmqkNCivsl4TsnpDsiJgNCivsl4TsmrTsp4QNCivsl4TshLHqtawNCivsl4Tsg4HsmqkNCivsl4TtjJDsiJgNCivsl4TsiJjsobANCivsl4TsnqXtmLgNCivsl4Tsg4HsmrANCivsl4TshJ3tmLgNCivsl4Tsg4HsiJgNCivsl4Tqt5zsiJkNCivsl4TshLHsnbwNCivsl4TqsJHquLgNCivsl4Tsi5zqt7wNCivsl4TssL3shKANCivsl4TshLHtnaANCivsl4TsgqzsiJwNCivsl4TsiJjtmY0NCivsl4TrqoXqt5wNCivsl4TshozrjZUNCivsl4TssKzqt7wNCivsl4Trs5HtlZkNCivsl4TqtJHtmY0NCivsl4TshozsoJANCivsl4TsnqzstpwNCivsl4TtmqjtmZgNCivsl4TsoJXsiJkNCivsl4TsmIHshK0NCivsl4TshJ3shJ0NCivsl4TrqoXtmJUNCivsl4TsirntmqgNCivsl4TsmbjrjZUNCivsl4TsiJjsobANCivsl4Tsg4HrjIANCivsl4TshLjsnqwNCivsl4TsmqnrjZUNCivsl4TqsJHshKANCivsl4TsiJzqta0NCivsl4TsnqzsnKgNCivsl4TsnbXqt6ANCivsl4TsoJXsl7ANCivsl4TspIDsiJwNCivsl4TsnpDsnpANCivsl4TsnbXquLANCivsl4Trs5Hqt4ANCivsl4Ttg5zssqANCivsl4Tsg4Hrj4wNCivsl4TsnbXrjZUNCivsl4Trp4ztg5wNCivsl4Tsp4TtmLgNCivsl4TsmrDrj5kNCivsl4TsoJXshK0NCivsl4TqsJXsiKANCivsl4TsiJzrs7UNCivsl4Tqt5zssqANCivsl4TsoJXsnpANCivsl4TtmY3siJgNCivsl4TsoJXrjIANCivsl4Trj4TriqANCivsl4TsooXshK0NCivsl4Tsg4Hrp4wNCivsl4TsoJXsiJgNCivsl4Tsm5DsnKQNCivsl4Tso7zshK0NCivsl4TspJHslpENCivsl4TsmIHtnawNCivsl4TsnbzsnqwNCivsl4TspJHtmIQNCivsl4TsmIHsiJgNCivsl4Tqs4Trj4QNCivsl4TsnKTqt5wNCivsl4TtlYTtmZQNCivsl4Trs5HsmIENCivsl4TsmKXsmIENCivsl4Tsm5DshKANCivsl4TtmLjsp4QNCivsl4Ttnaztg50NCivsl4TsooXtmLgNCivsl4Tsg4HqsbQNCivsl4TtnazsiJwNCivsl4Tqsr3sobANCivsl4Trp7nrjZUNCivsl4Tsmqntl4wNCivsl6zquLDrj5kNCivsl6zsmIHrhYQNCivsl6zshJ3tmZgNCivsl6ztg5zsi50NCivsl6zquLDsl7ANCivsl6ztnazsuaANCivsl6zsmqnqtawNCivsl6zssqDstpwNCivsl6zrgqjtmZgNCivsl6zsnKTtm4gNCivsl6zsiJzrjIANCivsl6zsnqzqtJENCivsl6zrp7nrj5kNCivsl6zsp4Ttg5wNCivsl6zrj5nsmIENCivsl6ztlZnsiJkNCivsl6zrqoXtmZgNCivsl6zsmqnsiJgNCivsl6zrs7TstpgNCivsl6zrp4zsiKANCivsl6zrs5HquLANCivsl6zsmIHshK0NCivsl6zsnqzqsJENCivsl6zsmKXsiJgNCivsl6zrs7Tsl7ANCivsl6ztg5zsl7QNCivsl6ztg5ztg5wNCivsl6zrs5Hsi50NCivsl6zrs7Xsl7ANCivsl6zsoJXtnLQNCivsl6zsi6Dtl4wNCivsl6ztlZzqt7wNCivsl6zsg4HqsJENCivsl6zrkZDtg5wNCivsl6zrj5nsmrENCivsl6ztjJDrqoUNCivsl6zsg4Hqt6ANCivsl6zsmqnsmrQNCivsl6zsooXtmIQNCivsl6zsmIHrrLUNCivsl6zsg4Hqt7wNCivsl6zsnZHtlokNCivsl6zsnbzstpwNCivsl6zrs5Hsi50NCivsl6zsg4HrjZUNCivsl6zsooXsmqkNCivsl6ztg5zsnKQNCivsl6ztnaztmLgNCivsl6zsg4HrqqkNCivsl6zrqoXquLgNCivsl6zsoJXsm5ANCivsl6zssqDspIANCivsl6zsg4HshKANCivsl6zshLHsnbQNCivsl6zsirnqs6QNCivsl6zrs5Hsi50NCivsl6zsg4Hsl7ANCivsl6zqsr3rgqgNCivsl6zsooXsiJgNCivsl6ztg5zrnoANCivsl6zsg4HsmrANCivsl6zshLHsiJgNCivsl6zsiK3snbgNCivsl6zrj5nsi50NCivsl6zsg4HsmrENCivsl6zshKDrtIkNCivsl6zsmKTtnawNCivsl6zsmqnsmqkNCivsl6zsg4HsspwNCivsl6zsiJjroZ0NCivsl6zsmIHsiJwNCivsl6zrtoTrtIkNCivsl6zsg4Htl4wNCivsl6zsnqzspIANCivsl6zsnqztmIQNCivsl6zsmIHtg5wNCivsl6zsg4HtmZQNCivsl6zrtoDsnpANCivsl6zqt7zrp4wNCivsl6zsjI3siJgNCivsl6zshJ3rj5kNCivsl6zrjIDsl7ANCivsl6zqtJHshKANCivsl6zsmKXsi5wNCivsl6zshJ3snKQNCivsl6zsoJXtlZwNCivsl6zsg4HsnpANCivsl6zsmqnsmrANCivsl6zshLHsl7ANCivsl6zrj5ntjJQNCivsl6zsmqnshJ0NCivsl6zrkZDsg50NCivsl6zsiJjsmqkNCivsl6zsmIHsmIENCivsl6zsooXrtIkNCivsl6zqsr3siJkNCivsl6zsiJjsm5ANCivsl6zrjIDsnqwNCivsl6zsoJDquIgNCivsl6zsooXsiJwNCivsl6zsiJjssqANCivsl6zsooXsiJgNCivsl6zssL3siKANCivsl6zshLHsiJkNCivsl6zsiKDsmqkNCivsl6zqsJHsiJwNCivsl6zsp4Tsi50NCivsl6zshozslZQNCivsl6zslrjsiJkNCivsl6zsooXtmIQNCivsl6zsnqzquLANCivsl6ztg5ztlZwNCivsl6zsm5Drj5kNCivsl6zqsJHsl7ANCivsl6zspIDrk50NCivsl6zsg4HsmrENCivsl6zsm5DshJ0NCivsl6zssL3qt7wNCivsl6zrs5HsiJkNCivsl6ztg5zsmrQNCivsl6zsnKDrj5kNCivsl6zsmIHsiJgNCivsl6zshLHsg4ENCivsl6zrqoXspIANCivsl6zsnbjtmJENCivsl6zrtoDqs6QNCivsl6zsnqzsnbwNCivsl6ztg5zsnbQNCivsl6zsnqztnawNCivsl6zshLHtg50NCivsl6zquLjsiJgNCivsl6zsiJjqsbQNCivsl6zsoJDslYUNCivsl6zrs5HtmLgNCivsl6zrjIDsnqwNCivsl6ztjJDrtIkNCivsl6zsoJDstpwNCivsl6zrs5HshKANCivsl6zshKDsmrANCivsl6zrj5nssqANCivsl6zsoJXqtawNCivsl6zshLHroZ0NCivsl6zsg4HtmLgNCivsl6zsg4HrtoQNCivsl6zspJHqsJENCivsl6zsmIHtmIQNCivsl6zshLHsoIQNCivsl6ztg5ztmIQNCivsl6zssq3quLgNCivsl6zrp4ztm4gNCivsl6zshLjqsr0NCivsl6zrqoXshKANCivsl6ztg5zsiJwNCivsl6zsmqnrgqgNCivsl6zsooXrp4wNCivsl6zsnZjssL0NCivsl6ztg5zsmrENCivsl6zqtJHtmLgNCivsl6ztl4zsm5ANCivsl6zsnLXsi50NCivsl6ztlZnrj5kNCivsl6zsuZjslaANCivsl6zrs7TtmJUNCivsl6ztmZjrtIkNCivsl6ztlbTrj5kNCivsl6zsooXtg5wNCivsl6zrjIDqtawNCivsl6zsg4HsnbwNCivsl6ztmY3rr7wNCivsl6zsmqnslpENCivsl6zsnKTtmZgNCivsl6ztmITsiJgNCivsl6ztmZjsiJgNCivsl6zsmKTshJ0NCivsl6zsnqztm4gNCivsl6zqsr3rj4QNCivsl6ztmZjsi50NCivsl6zsl7Drj4QNCivsl6zquLDqsJENCivsl6zquLjtg5wNCivsl6ztmZjsmKUNCivsl6zqt7zsmrANCivsl6zsnqzrp4wNCivsl6zsmZXquLgNCivsl7zqs6Hsp4ANCivsl7zsnbjsl7QNCivsl7zsmIHsnpANCivsl7zso7zsi50NCivsl7zquLDsspwNCivsl7zrtInrjZUNCivsl7zquLDtmZQNCivsl7zso7zsmrANCivsl7zrjIDrk50NCivsl7zrgqjtmLgNCivsl7zsnKTtg5wNCivsl7zsnqzrsLANCivsl7zrjZXsiKANCivsl7zsp4DsnoQNCivsl7zqsJHshJ0NCivsl7zrs5HroYANCivsl7zsg4HsmrANCivsl7zqsr3sp4QNCivsl7zshozsmqkNCivsl7zshJ3tnawNCivsl7zsiJnsnbQNCivsl7zsoJXsnbwNCivsl7ztmLjsmrANCivsl7zrqbTssqANCivsl7zsmqnspIANCivsl7ztg5ztmLgNCivsl7zsoJDtlZkNCivsl7zrgqjrk50NCivsl7zsnbjsi6QNCivsl7zsi53shJ0NCivsl7zqt5zssL0NCivsl7zqsr3rp4wNCivsl7zsoJDroYANCivsl7zsg4HsmrANCivsl7ztmY3tg50NCivsl7zquLDqtowNCivsl7zsooXrjZUNCivsl7zqt7zshKANCivsl7zshLHtmLgNCivsl7zsooXrj4QNCivsl7zsooXtmZgNCivsl7zsmIHsg4ENCivsl7zsiJjsnbQNCivsl7zsooXqsJENCivsmIjsiJjtlbQNCivsmIjshLjsi50NCivsmIjsnoTsnbwNCivsmIjsp4TrsLANCivsmIjsmqntlbQNCivsmIjrqoXrj5kNCivsmIjsirnsobANCivsmIjsg4HrspQNCivsmIjsooXrnb0NCivsmIjrgqjrpaANCivsmIjtmozsp4QNCivsmIjshLHtmZgNCivsmIjtlZzsi50NCivsmIjshLHtmLgNCivsmIjsiJjtg5wNCivsmIjsnqzsiJkNCivsmIjtlZztg5wNCivsmIjqt5zsnpANCivsmIjsmIHsmqkNCivsmIjshJ3sl7ANCivsmKTqsJHshKANCivsmKTsg4HsiJwNCivsmKTsoJDsp4QNCivsmKTsoJXrp4wNCivsmKTqsbTqta0NCivsmKTshJ3tmY0NCivsmKTqsr3smqkNCivsmKTqt7zsnqwNCivsmKTqsr3roKwNCivsmKTsiJzsnbUNCivsmKTqsJHsmYQNCivsmKTrqoXtkZwNCivsmKTqsr3stpwNCivsmKTsnYTsiJgNCivsmKTssqDsmKUNCivsmKTshozqt6ANCivsmKTqsr3tmZgNCivsmKTqt7ztmLgNCivsmKTquLjrpr0NCivsmKTrj5nsmrANCivsmKTqsr3tmZgNCivsmKTqsr3tkZwNCivsmKTsooXquLANCivsmKTsoJDtlZkNCivsmKTqsr3tmZgNCivsmKTsnqzrs7UNCivsmKTrkZDrqqgNCivsmKTsooXtmLgNCivsmKTqtJHshJ0NCivsmKTquIjsiJgNCivsmKTsuZjsi50NCivsmKTquIjsoJUNCivsmKTqtJHsl7QNCivsmKTtjJDsmqkNCivsmKTtlZjqt5wNCivsmKTsmIHrp4wNCivsmKTqtJHtg5wNCivsmKTshLHsl7QNCivsmKTsoJXsnbQNCivsmKTsmqnsi50NCivsmKTqtJHtmZgNCivsmKTsp4Dsl7QNCivsmKTrtoDqtawNCivsmKTrkZDtlZkNCivsmKTqta3ssL0NCivsmKTstpjquLgNCivsmKTqsr3rrLgNCivsmKTsgrztnawNCivsmKTqt4Dri5gNCivsmKTsg4HtmY0NCivsmKTrtInrnoANCivsmKTqsr3rp4wNCivsmKTqt5zsi50NCivsmKTsspzrgqgNCivsmKTsnbjshK0NCivsmKTsuZjtnawNCivsmKTqt5zsmIENCivsmKTqt5zsmqkNCivsmKTrsKnrjZUNCivsmKTqt7ztmLgNCivsmKTqt5zsmKQNCivsmKTsoJzshJ0NCivsmKTrj5nrj4wNCivsmKTquLDtlZkNCivsmKTqt5zsmKQNCivsmKTshLHrj5kNCivsmKTsmqnsobANCivsmKTshLHsg4ENCivsmKTqt5ztmIQNCivsmKTtmqjrnpgNCivsmKTsmIHsiKANCivsmKTsmIHsi50NCivsmKTqt7zsiJgNCivsmKTrj5nshLENCivsmKTrrLjtg5wNCivsmKTrjZXshKANCivsmKTqt7zsi50NCivsmKTtmY3qsr0NCivsmKTrs5HsmKUNCivsmKTsmqnqsr0NCivsmKTquIjsnbQNCivsmKTrtoTrp5ANCivsmKTsiJjsl7ANCivsmKTqsrjrp4wNCivsmKTquLDso7wNCivsmKTrqoXssKwNCivsmKTssL3tmLgNCivsmKTtg5zsoJUNCivsmKTquLDtmZgNCivsmKTsmIHrp4wNCivsmKTsnqzshJ0NCivsmKTrjZXsmqkNCivsmKTquLDtmZgNCivsmKTrj4Tsm5ANCivsmKTqtJHshJ0NCivsmKTqsr3sl4UNCivsmKTrgpzso7wNCivsmKTqt7nsi50NCivsmKTquLDshLENCivsmKTrs5HsnpANCivsmKTrgqjsp4QNCivsmKTtmY3tmIQNCivsmKTqsr3tg5wNCivsmKTtg5zssKwNCivsmKTrgqjsp4QNCivsmKTsp4TstpgNCivsmKQg7JewDQor7Jik7KKF6rOkDQor7Jik64us7ISgDQor7Jik7J6s7J21DQor7Jik7IOB7ZiEDQor7Jik64Ko7IudDQor7Jik64us7ZmYDQor7Jik7YOc7JWUDQor7Jik7Jew7JqpDQor7Jik66+87JuFDQor7Jik64yA6re8DQor7Jik7J2Y7J28DQor7Jik7IiY6recDQor7Jik7KeE7IiYDQor7Jik64yA7JqpDQor7Jik64Ko7J6QDQor7Jik7KKF6raMDQor7Jik7Jqp7KSADQor7Jik642V66eMDQor7Jik7Zi47ZmNDQor7Jik7J6s7ZiEDQor7Jik7KSA66a9DQor7Jik642V7Zi4DQor7Jik7KCV7J20DQor7Jik7Jqp7ZmYDQor7Jik6rCV7JiBDQor7Jik64+E642VDQor7Jik67OR7LKgDQor7Jik7ISx7JqpDQor7Jik7J2A7IiYDQor7Jik64+E7ZiEDQor7Jik66qF7ZiEDQor7Jik7J6s64KcDQor7Jik7KeE64usDQor7Jik64+Z7JewDQor7Jik7JuQ66GdDQor7Jik7YOc66+8DQor7Jik7Iq57IicDQor7Jik64+Z7Je0DQor7Jik6rCA7ZWcDQor7Jik7IK866qFDQor7Jik7IOB7Z2sDQor7Jik64+Z7LaYDQor7Jik64WE7ZmYDQor7Jik7ZmN7KSRDQor7Jik6rec7IicDQor7Jik64+Z7ZmYDQor7Jik7ZeM66qoDQor7Jik7KCQ7ISdDQor7Jik7ISg7J21DQor7Jik65Od7KGwDQor7Jik7Jm47ZalDQor7Jik6riI67aEDQor7Jik7YOc7ISdDQor7Jik65Od7ZmYDQor7Jik7ZyY7Zi4DQor7Jik67OR7J6QDQor7Jik7ZWZ7JuFDQor7Jik66qF66GdDQor7Jik7Zic7IS4DQor7Jik7KCQ7Zi4DQor7Jik7JuQ7JW8DQor7Jik66qF7IiYDQor7Jik7IOB7IicDQor7Jik7Jyk7ZiEDQor7Jik7KKF7KeEDQor7Jik66qF7IiZDQor7Jik7ZiV7Z2sDQor7Jik7LCs64KoDQor7Jik7ZWc7ISdDQor7Jik66qF7Z2sDQor7Jik7YOc7ZmUDQor7Jik7ISx7Zi4DQor7Jik7ZWY7YOcDQor7Jik66qF7Z2sDQor7Jik7J6l7KCVDQor7Jik7Kad7KO8DQor7Jik7JiB7ZWZDQor7Jik66y46rCRDQor7Jik7LaY7IiYDQor7Jik7ISx7Z2sDQor7Jik7Iuc656YDQor7Jik66y47ZmYDQor7Jik7KCV7KeEDQor7Jik7ZWZ642VDQor7Jik7KCV7KCVDQor7Jik67OR6raMDQor7Jik7Jil7JewDQor7Jik642V65GQDQor7Jik6rWt64+EDQor7Jik67OR7IiYDQor7Jik7J6s7JilDQor7Jik64+Z7IicDQor7Jik7JiB7JiBDQor7Jik67OR7LKgDQor7Jik7Jyg7JilDQor7Jik7YOc6recDQor7Jik7IK87JewDQor7Jik67OR7ZuIDQor7Jik7ISx7LGEDQor7Jik7YOc67CwDQor7Jik7IOB7J20DQor7Jik67O164KoDQor7Jik7KCQ7ZWcDQor7Jik7Jil7IiZDQor7Jik7JiB642VDQor7Jik67SJ7LaYDQor7Jik7LKt67CwDQor7Jik7Jqp7Zi4DQor7Jik7ZiE7ISdDQor7Jik67SJ7ZiEDQor7Jik7ZWE7KeADQor7Jik6rec7ZmNDQor7Jik7LKg7JWUDQor7Jik67aA6ri4DQor7Jik6rK97IudDQor7Jik7J6s64+ZDQor7Jik7JiB66qpDQor7Jik67aE7ISdDQor7Jik7Jqp7JmEDQor7Jik7KKF7ZmYDQor7Jik7IS467CxDQor7Jik7IK87JqpDQor7Jik7KCV7ZGcDQor7Jik6rec6rWQDQor7Jik7ISd6regDQor7Jik7IK87JqpDQor7Jik7JiB7IicDQor7Jik6rWs7LKgDQor7Jik7IiY7ZiEDQor7Jik7IOB6re8DQor7Jik66eM7LKgDQor7Jik7IOB7JilDQor7Jik7Iic7IiYDQor7Jik7IOB66eMDQor7Jik64+Z7LacDQor7Jik7LC97IS4DQor7Jik7LC97ZiEDQor7Jik7IOB7IS4DQor7Jik7IK865OdDQor7Jik7JiB7JiBDQor7Jik7ZiE7LKgDQor7Jik7IOB7KGwDQor7Jik7Iic6raMDQor7Jik7KKF6recDQor7Jik7ISg7ZmYDQor7Jik7ISd66eMDQor7Jik7Jyk7LC9DQor7Jik7Iic7KCVDQor7Jik64yA7JiBDQor7Jik7ISd7IicDQor7Jik7LC97Zi4DQor7Jik7Z2s6rWsDQor7Jik7IiY6rOEDQor7Jik7ISd7ZiEDQor7Jik7JiB7JqpDQor7Jik7Jq06rWtDQor7Jik7KKF7IigDQor7Jik7ISg66+4DQor7Jik67O17J6EDQor7Jik7JiB642VDQor7Jik67id7IiZDQor7Jik7ISg7IiZDQor7Jik7J6s7ZWZDQor7Jik7IiZ7YOcDQor7Jik642V7ISdDQor7Jik7ISx6re8DQor7Jik7Iic7JuQDQor7Jik7ISx7ISdDQor7Jik7LKg7JewDQor7Jik7ISx65OdDQor7Jik7KeE6rWsDQor7Jik67O16recDQor7Jik6ri47KGwDQor7Jik7ISx7Je0DQor7JikIOyasQ0KK+yYpOuzkeyhsA0KK+yYpOq3nO2VnA0KK+yYpOyEseywrA0KK+yYpOq3gOyInA0KK+yYpOyYgeyXtA0KK+yYpOqzpOyhsA0KK+yYpOyEuOq0kQ0KK+yYpOygleqzpA0KK+yYpOydvOydtQ0KK+yYpOq4sO2YuA0KK+yYpOyEuOybhQ0KK+yYpOq0keu0iQ0KK+yYpOyDgeyImA0KK+yYpOyImOyasQ0KK+yYpOyEuOybkA0KK+yYpOyerOyYgQ0KK+yYpOyiheyInA0KK+yYpOu0ieyhsA0KK+yYpOyEuOyduA0KK+yYpOynhOynhA0KK+yYpOyaqeyyoA0KK+yYpOyYpeq1rA0KK+yYpOyEuOydvA0KK+yYpOycpOyaqQ0KK+yYpO2bhOyIoA0KK+yYpO2VhOyXtA0KK+yYpOyImO2YhA0KK+yYpOyerOyekA0KK+yYpO2XjOyEnQ0KK+yYpOuqhe2drA0KK+yYpOyImO2ZmA0KK+yYpOuMgOuPhA0KK+yYpOyImO2biA0KK+yYpOyDgeyYgQ0KK+yYpOyInO2ZlA0KK+yYpOyEuOyekA0KK+yYpOyaqeyLnQ0KK+yYpOyerOyekA0KK+yYpOyIoO2YhA0KK+yYpO2aqOq3nA0KK+yYpOyYgeybkA0KK+yYpOqwke2ZmA0KK+yYpOyKueyXtA0KK+yYpOuRkO2VmQ0KK+yYpOygle2YuA0KK+yYpOyYpeykgA0KK+yYpOyXsOyEnQ0KK+yYpOyerOyImA0KK+yYpOq4iOuPjA0KK+yYpOq3gOuPmQ0KK+yYpOyXsO2YuA0KK+yYpO2VnOyXhQ0KK+yYpO2DnOq2jA0KK+yYpOygleyXtA0KK+yYpOyXvOqwgQ0KK+yYpO2dpeyInA0KK+yYpOyDgeyEoA0KK+yYpOq4sOuztQ0KK+yYpOyYgeyLnQ0KK+yYpOuqheuPmQ0KK+yYpOydteyasA0KK+yYpOunkOq4sA0KK+yYpOyYge2ZlA0KK+yYpOyImOyekA0KK+yYpOuMgOykgA0KK+yYpOyInO2YuA0KK+yYpOyYge2ZmA0KK+yYpOu2gOqwkQ0KK+yYpOygleyyoA0KK+yYpOybkOykgA0KK+yYpOyYpO2ZmA0KK+yYpOyMjeq2jA0KK+yYpOq0gOuPhA0KK+yYpOyEneyDgQ0KK+yYpOyYpeyEoA0KK+yYpO2VnOyXtA0KK+yYpOq3nOyEoA0KK+yYpOyaqeyLnQ0KK+yYpOyZleyImA0KK+yYpOyDge2doA0KK+yYpOuylOyInA0KK+yYpOyduOydtQ0KK+yYpOyaqeyIoA0KK+yYpOqyveyInA0KK+yYpOygleyaqQ0KK+yYpOyEse2YuA0KK+yYpOyasOy2mA0KK+yYpOyImeqyvQ0KK+yYpOusuOu5iA0KK+yYpOunjOyImA0KK+yYpOyatOyaqQ0KK+yYpO2DnOyDgQ0KK+yYpOywveyImA0KK+yYpOqwke2VnA0KK+yYpOybkOusuA0KK+yYpOyYgeyErQ0KK+yYpO2VtOuwsA0KK+yYpOykgOyImA0KK+yYpOybkOuwsA0KK+yYpOuzkeyglQ0KK+yYpOy5oOq3oA0KK+yYpOyYgeyXtA0KK+yYpOybkOyEoA0KK+yYpOyerOyerA0KK+yYpO2ZlOq4sA0KK+yYpOyImOyErQ0KK+yYpOybkOyImA0KK+yYpOusuOuqqA0KK+yYpOyehO2drA0KK+yYpOyCvOynhA0KK+yYpOyblOu0iQ0KK+yYpOyatOyYpQ0KK+yYpOyihe2ZmA0KK+yYpOyYpO2VmQ0KK+yYpOycpOq3nA0KK+yYpOyerOyerA0KK+yYpOyepeq4sA0KK+yYpOuzke2ZjQ0KK+yYpOycpOuztQ0KK+yYpOyYpe2YuA0KK+yYpO2drO2drA0KK+yYpOuPmeuPjA0KK+yYpOycpO2VtA0KK+yYpOyYgeyekA0KK+yYpOykkeywrA0KK+yYpOydhOyZhA0KK+yYpOycpO2ZmA0KK+yYpOyerO2ZmA0KK+yYpOuzteyerA0KK+yYpOycpOynhA0KK+yYpOydgOuPhA0KK+yYpOyEoOq3vA0KK+yYpOuzkeyyoA0KK+yYpOyCvOyEnQ0KK+yYpOydgO2ZmA0KK+yYpO2VtOuFhA0KK+yYpOycpOyLnQ0KK+yYpO2VmeuPmQ0KK+yYpOydmOyXtA0KK+yYpOyInO2ZmA0KK+yYpOuMgOyXtA0KK+yYpOyiheyatA0KK+yYpOyduO2YhA0KK+yYpOyEseyjvA0KK+yYpOyDge2ZlA0KK+yYpOyCvO2YuA0KK+yYpOydvOyEsQ0KK+yYpOyYgeuwsQ0KK+yYpOyYgeybkA0KK+yYpOygleqxuA0KK+yYpOyehOyEnQ0KK+yYpOq0keq1rA0KK+yYpOq3vO2VnA0KK+yYpOyDge2YuA0KK+yYpOyekOyihQ0KK+yYpOq3nOq4sA0KK+yYpOyEseq0kQ0KK+yYpOyjvOyaqQ0KK+yYpOyerOqzpA0KK+yYpOyepeuqqA0KK+yYpOygleq3nA0KK+yYpOuvuOqyvQ0KK+yYpOyerOq2jA0KK+yYpO2YnO2YuA0KK+yYpOycpO2RnA0KK+yYpOyGjO2DnA0KK+yYpOyerOq3vA0KK+yYpOyYge2MlA0KK+yYpOygleyErQ0KK+yYpO2DnOybkA0KK+yYpOyerOuPmQ0KK+yYpOuNleybhQ0KK+yYpO2DnOyXtA0KK+yYpO2VnOyEsQ0KK+yYpOyerOuylA0KK+yYpOycpO2YuA0KK+yYpOygnOu2hA0KK+yYpOybkO2DnA0KK+yYpOyerOyEnQ0KK+yYpOyYgeq4sA0KK+yYpOybkOyjvA0KK+yYpOuzke2doA0KK+yYpOyerOyImA0KK+yYpOywrOyEnQ0KK+yYpO2DnOydtA0KK+yYpOygleyDgQ0KK+yYpOyerOyInA0KK+yYpO2XjOq4sA0KK+yYpOunieyglQ0KK+yYpOyDgeq4sA0KK+yYpOyerOyYgQ0KK+yYpOuMgO2WpQ0KK+yYpOyDge2YgQ0KK+yYpOyEoOuwsA0KK+yYpOyerOyaqQ0KK+yYpOyGjOynhA0KK+yYpOq1rey2mA0KK+yYpOyduOu0iQ0KK+yYpOyerOyaqQ0KK+yYpOyKueybkA0KK+yYpO2drOyhsA0KK+yYpOuRkOq3vA0KK+yYpOyerOyasA0KK+yYpOqyveusuA0KK+yYpO2YleyYpQ0KK+yYpOydvOyatA0KK+yYpOyerOycpA0KK+yYpOyYgeuMgA0KK+yYpO2Zjeq4uA0KK+yYpO2DnOuPhA0KK+yYpOyerOydvA0KK+yYpOywve2biA0KK+yYpO2Dne2doA0KK+yYpOyEoO2VmQ0KK+yYpOyerOyynA0KK+yYpOyDgeydvA0KK+yYpOuzkeyihQ0KK+yYpOygkOuztA0KK+yYpOyerOy2mA0KK+yYpOyaqeyEoA0KK+yYpOunjOykgA0KK+yYpOq0keunjA0KK+yYpOygkOyInA0KK+yYpOuzteyWtQ0KK+yYpO2DnO2DnA0KK+yYpOyInOqzpA0KK+yYpOygkO2ZmA0KK+yYpOyepeyduA0KK+yYpOynhOyduA0KK+yYpOywveq3oA0KK+yYpOygleuemA0KK+yYpOyDgeyXsA0KK+yYpOyDgeybkA0KK+yYpOuzkeyasA0KK+yYpOygleyVoA0KK+yYpOusuOq3vA0KK+yYpO2YhOq3nA0KK+yYpOyerOyErQ0KK+yYpOygleyXtA0KK+yYpOyepeuNlQ0KK+yYpOuPmeqzpA0KK+yYpOqyveyEoA0KK+yYpOygleyXtA0KK+yYpOyYgeyasQ0KK+yYpOqwke2XjA0KK+yYpOyDgeq4sA0KK+yYpOygle2YhA0KK+yYpOyKueq1rA0KK+yYpOygleyXsA0KK+yYpO2YhOykgA0KK+yYpOygle2YuA0KK+yYpOycpOy2nA0KK+yYpOuvvOyEoA0KK+yYpOycpOyDgQ0KK+yYpOygle2ZmA0KK+yYpOuNleyyoA0KK+yYpOuhneyImQ0KK+yYpOq0keuMgA0KK+yYpOygle2ZmA0KK+yYpOydgOyasQ0KK+yYpOyerOyerA0KK+yYpO2DnOuPjA0KK+yYpOygnOyXtA0KK+yYpOyerOyYpQ0KK+yYpOyYgeyjvA0KK+yYpOu0ieyImA0KK+yYpOyiheyImA0KK+yYpOyDgeyerA0KK+yYpOygleyEoA0KK+yYpOyCvOydvA0KK+yYpOyihe2DgQ0KK+yYpOygleyYgQ0KK+yYpOyiheyYpQ0KK+yYpOybkOq3oA0KK+yYpOyihe2YuA0KK+yYpOyerO2ZlA0KK+yYpOyiheusuA0KK+yYpOybkOyInA0KK+yYpOyihe2ZlA0KK+yYpOyEseydvA0KK+yYpOyYgeuztQ0KK+yYpOynhO2YuA0KK+yYpOyihe2ZmA0KK+yYpOyEoOqyvQ0KK+yYpOydmOyXsA0KK+yYpOq3vOyDgQ0KK+yYpOyjvOuylA0KK+yYpO2drO2YuA0KK+yYpOq3nOyImA0KK+yYpOq4uOq4sA0KK+yYpOykgO2RnA0KK+yYpOuqheyLnQ0KK+yYpO2DnO2YgQ0KK+yYpO2DnO2ZmA0KK+yYpOykgO2YhA0KK+yYpOybkOyEsQ0KK+yYpO2VtOyepQ0KK+yYpOyYgeq3nA0KK+yYpOykgO2YuA0KK+yYpOuzkeyEnQ0KK+yYpO2YuOuwsA0KK+yYpOyiheykgA0KK+yYpOykgO2ZmA0KK+yYpOygkO2YuA0KK+yYpOyerO2ctA0KK+yYpOuCqOyImA0KK+yYpOykgO2drA0KK+yYpOuCqO2YhA0KK+yYpOyYgeyInA0KK+yYpO2ZjeyihQ0KK+yYpOykkeyXtA0KK+yYpOuqheyyoA0KK+yYpOqzhOyatA0KK+yYpO2ZjeqxtA0KK+yYpOywveq1rQ0KK+yYpOustO2YuA0KK+yYpOyWuOyImA0KK+yYpOq4uOyEsQ0KK+yYpOywve2ZmA0KK+yYpOq4iO2DnA0KK+yYpOyDgeyYgQ0KK+yYpOywrOqzhA0KK+yYpOy2mOyekA0KK+yYpOyasOyDnQ0KK+yYpOuztOyhsA0KK+yYpOyYgeyEsQ0KK+yYpOy5oOq3nA0KK+yYpOyiheyYgQ0KK+yYpOunkOuPhA0KK+yYpOu0ieyIoA0KK+yYpOy5oOyYpQ0KK+yYpOyImO2ZmA0KK+yYpOyYgeyEsQ0KK+yYpOyaqe2VhA0KK+yYpOy5oO2ZmA0KK+yYpOuCmeynhA0KK+yYpOyerOuhnA0KK+yYpOuPmeyaqQ0KK+yYpOy5oO2ZmA0KK+yYpOygleu0iQ0KK+yYpOyiheyInA0KK+yYpOyaqeyLnQ0KK+yYpO2DgOu2hA0KK+yYpOygkOq3nA0KK+yYpOygley2mA0KK+yYpOyEse2DnA0KK+yYpO2DnOyImA0KK+yYpO2MkOyXsA0KK+yYpOygkOyImQ0KK+yYpOq4sOyInA0KK+yYpO2DnOyerA0KK+yYpO2Zje2VnA0KK+yYpOyEneydmA0KK+yYpOuMgOyImQ0KK+yYpO2DnOykgA0KK+yYpOuqhe2YuA0KK+yYpOykgOyImQ0KK+yYpOuPmeyErA0KK+yYpO2DnOynhA0KK+yYpOyYgeydvA0KK+yYpOydvO2VmQ0KK+yYpOyiheyLnQ0KK+yYpO2DnO2YuA0KK+yYpOyaseykgA0KK+yYpOuPmeyLnQ0KK+yYpOyblOyImA0KK+yYpO2DnO2ZmA0KK+yYpOywrOyImA0KK+yYpO2DnOyEnQ0KK+yYpOyiheyLnQ0KK+yYpO2MkOynhA0KK+yYpOyYgeq4sA0KK+yYpOuPmeuLrA0KK+yYpOusuO2aqA0KK+yYpO2Vmeq3vA0KK+yYpOyYgeumvA0KK+yYpOyDge2YhA0KK+yYpOyaqeyImA0KK+yYpO2VnOq2jA0KK+yYpOq0keyasA0KK+yYpOuLrO2drA0KK+yYpOuCqOyLrA0KK+yYpO2VnOyyoA0KK+yYpOyYgeq4sA0KK+yYpOuPiOyImA0KK+yYpOyInOyVlA0KK+yYpO2VtOq3vA0KK+yYpOuwqeqzoA0KK+yYpO2DnOyXtA0KK+yYpOybkOq3vA0KK+yYpO2VtOunjA0KK+yYpO2VmeydtA0KK+yYpOyYgeu2hA0KK+yYpOydmOyXtA0KK+yYpO2VtOywrA0KK+yYpOyaqeuPmQ0KK+yYpOyerOq4sA0KK+yYpOuPmeyyoA0KK+yYpO2XjOyyoA0KK+yYpOyYge2DnQ0KK+yYpOunkO2ZjQ0KK+yYpO2XjOq1kA0KK+yYpO2YnOyglQ0KK+yYpOycpOyInA0KK+yYpOyjvOuemA0KK+yYpOyYgeydhA0KK+yYpO2YuOydtA0KK+yYpOq0keq4uA0KK+yYpO2VnO2YuA0KK+yYpOykkeq1kA0KK+yYpO2YuOywrA0KK+yYpOyKue2XjA0KK+yYpOyDgeyEsQ0KK+yYpOq4sOuegA0KK+yYpO2ZlOyekA0KK+yYpOusuOq4sA0KK+yYpOq1kO2YuA0KK+yYpO2DnOyyoA0KK+yYpO2ZlOynhA0KK+yYpOygkO2DnQ0KK+yYpOygle2ZmA0KK+yYpOyDgeuPmQ0KK+yYpO2aqOyerA0KK+yYpO2VnOqwkQ0KK+yYpOynhOyduA0KK+yYpOusuOydtA0KK+yYpO2dpeyXtA0KK+yYpOyYpe2VnA0KK+yYpO2YhO2doA0KK+yYpOyaqeq3vA0KK+yYpO2drOyImQ0KK+yYpOyCvO2ZmA0KK+yYpOy2qeyynA0KK+yYpOq4sOyatA0KK+yYpeycoOu0iQ0KK+yYpeygle2MlA0KK+yYpeyerOyjvA0KK+yYpeyiheuemA0KK+yZle2DnO2YuA0KK+yZleuPmeyImQ0KK+yZleuzkeyDgQ0KK+yZleyDgeyglQ0KK+yasOuPhOyXtA0KK+yasOuNleuegA0KK+yasOywrO2YuA0KK+yasOuFuOyhsA0KK+yasOuqheq1rA0KK+yasOq3vOuztQ0KK+yasOq1kOuMgA0KK+yasOyImOuTnQ0KK+yasOu0ieyynA0KK+yasOydmOyImA0KK+yasOyiheyyoA0KK+yasOyYge2YhA0KK+yasOyDgeyEoA0KK+yasOuRkOyyoA0KK+yasOuPhOuqhQ0KK+yasOygkOyXsA0KK+yasOyDgeyEoA0KK+yasOyepeyImA0KK+yasO2VnOycqA0KK+yasOyaqeq4sA0KK+yasOyDgeyImA0KK+yasOymneqzpA0KK+yasOyEseyXtA0KK+yasOunpOyjvA0KK+yasOyDgeyImA0KK+yasOuMgOyLnQ0KK+yasOyaqeuCqA0KK+yasOq3nOuqqQ0KK+yasOyDge2YhA0KK+yasOyihe2DnA0KK+yasOygleyekA0KK+yasOuNleygnA0KK+yasOyEneyhsA0KK+yasOyInOydvA0KK+yasOyerOyerA0KK+yasOywveyInA0KK+yasOyEseq3oA0KK+yasOuzkeuvvA0KK+yasOynhOyImA0KK+yasOuzke2YuA0KK+yasOyEseyaqQ0KK+yasOywve2YuA0KK+yasOyaqeuMgA0KK+yasOyiheycpA0KK+yasOyEuOq3vA0KK+yasOyerOuqhQ0KK+yasOyInO2ZlA0KK+yasOqyveyImQ0KK+yasOyImOyYgQ0KK+yasOyEoOqyvQ0KK+yasOunieyImA0KK+yasOyGjOyhsA0KK+yasOyImO2VmA0KK+yasOyYgeq1kA0KK+yasOq3nOuztA0KK+yasOyihe2WpQ0KK+yasOyInOuhgA0KK+yasOyiheyIoA0KK+yasOydvOuztQ0KK+yasOunjOyYpQ0KK+yasOyLpOyaqQ0KK+yasOycpOyImA0KK+yasOyiheyImA0KK+yasOq3nOyImA0KK+yasOyYgeusuA0KK+yasOq3vOyIoA0KK+yasOyerOyYgQ0KK+yasOyaqeyYgQ0KK+yasOyYge2DnA0KK+yasOyiheygkA0KK+yasOusuO2XjA0KK+yasOyiheywqA0KK+yasOyYpeq4sA0KK+yasOyImOydtQ0KK+yasOqwkeyasA0KK+yasO2VhOq3nA0KK+yasOybkO2ZmA0KK+yasO2drOyVlA0KK+yasOygleyLnQ0KK+yasOykke2YuA0KK+yasOychOyEoA0KK+yasOuqheyImA0KK+yasOyasOyVoA0KK+yasOyiheyInA0KK+yasOyduOqxuA0KK+yasOq3gO2ZlA0KK+yasOyInOyImQ0KK+yasOyWuOyEoA0KK+yasOyduOqxuA0KK+yasOyiheyXtA0KK+yasOuqhe2YhA0KK+yasOyImOq2jA0KK+yasOygleyInA0KK+yasOuylOyXtA0KK+yasOynhOyLpA0KK+yasOuPme2ZmA0KK+yasOygleyehA0KK+yasOusuOyImA0KK+yasOunjO2DnA0KK+yasOyYgeuqhQ0KK+yasOyiheqzpA0KK+yasO2DnOq3nA0KK+yasOyerOuqqA0KK+yasOq0keyLnQ0KK+yasOyiheuztA0KK+yasO2ZlOyyoA0KK+yasOuzkeyEnQ0KK+yasOuzkeyErQ0KK+yasOyiheyXtA0KK+yasOqwkeusuA0KK+yasOqwke2VmA0KK+yasOydvO2ZmA0KK+yasOyihe2VhA0KK+yasO2ZjeyLnQ0KK+yasOyInOyLnQ0KK+yasOynhOqzpA0KK+yasOyihe2VmQ0KK+yasOyerOyYpQ0KK+yasOykkeuqqQ0KK+yasOyYpOyhsA0KK+yasOyihe2ZmA0KK+yasOyInOyImA0KK+yasOunjOyIoA0KK+yasO2YuOyImA0KK+yasOyihe2drA0KK+yasOyerO2ZmA0KK+yasOycpO2VtA0KK+yasOyDgeusuA0KK+yasOynhO2YuA0KK+yasOyYpeyEsQ0KK+yasOyYgeyEsQ0KK+yasOqzteuCqA0KK+yasOywve2aqA0KK+yasOunjOq4sA0KK+yasOyiheycpA0KK+yasOyMjeyaqQ0KK+yasOy5mO2ZjQ0KK+yasOuPmeusuA0KK+yasOu0ieyglQ0KK+yasOygkO2VmQ0KK+yasO2DnOyErQ0KK+yasOuzkeyInA0KK+yasOyiheyekA0KK+yasOyaqeuztA0KK+yasO2WieyekA0KK+yasO2ZjeyjvA0KK+yasOyGjO2YhA0KK+yasOydvO2YuA0KK+yasO2ZlOy2mA0KK+yasOyDge2DnA0KK+yasOyInOuCqA0KK+yasOydtOyIoA0KK+yasO2drOuPhA0KK+yasO2ZjeyDnQ0KK+yasOyjvOyihQ0KK+yasOyasO2YgQ0KK+yasO2drOyhsA0KK+yasO2VmeyDgQ0KK+yasOuNleyErQ0KK+yasO2YnOyImQ0KK+ybkOyYgeyYpQ0KK+ybkOyXsOq3nA0KK+ybkO2biOq3nA0KK+ybkO2DnOyerA0KK+ybkOyaqeyjvA0KK+ybkOyEseuTnQ0KK+ybkOyDgeqzpA0KK+ybkO2DnOq4iA0KK+ybkOyiheq4uA0KK+ybkOybkOuemA0KK+ybkOu0ieuemA0KK+ybkOyInOyImA0KK+ychOyEseq4sA0KK+ychOyInOq3nA0KK+ychO2MkO2drA0KK+ychO2YleuNlQ0KK+ycoOqwkeyaqQ0KK+ycoO2ZlOuqqQ0KK+ycoOq3nOu2hA0KK+ycoOydteq1rQ0KK+ycoOqwkeynhA0KK+ycoO2VtOuLqA0KK+ycoOyDgeq3vA0KK+ycoOyiheyEsQ0KK+ycoOqyveyImA0KK+ycoO2YhOyLrA0KK+ycoOyduOyEoA0KK+ycoOyaqeyLnQ0KK+ycoOqyveyXtA0KK+ycoOyDgeyEoA0KK+ycoO2VnOuNlQ0KK+ycoOyynOy2nA0KK+ycoOqyveyerA0KK+ycoOyepeyImQ0KK+ycoO2YnOyXtA0KK+ycoOq1kOyZhA0KK+ycoOqyveyerA0KK+ycoOygleyImA0KK+ycoOq3gOuvuA0KK+ycoOu2hOyLnQ0KK+ycoOqyveyihQ0KK+ycoO2drOydvA0KK+ycoOyInOyLnQ0KK+ycoOydmOyImA0KK+ycoOqyve2MlA0KK+ycoOyEneyEoA0KK+ycoOyImeyImA0KK+ycoO2aqOy2mA0KK+ycoOqyve2drA0KK+ycoOy2mOyEoA0KK+ycoO2YnO2ZmA0KK+ycoO2MkOyIoA0KK+ycoOqzhOyXtA0KK+ycoOyInOyynA0KK+ycoOyYgeyInA0KK+ycoOqwkeyEnQ0KK+ycoOq0keyXtA0KK+ycoOq3nOy2nA0KK+ycoOuRkOq1rA0KK+ycoOyImO2YuA0KK+ycoOq0keyasA0KK+ycoOy2mOunjA0KK+ycoO2DnO2VtA0KK+ycoOuPmeuPmQ0KK+ycoOq0keydtQ0KK+ycoOuLrOyImA0KK+ycoOuzkeyDnQ0KK+ycoOygleyLnQ0KK+ycoOq0keyekA0KK+ycoOygleyEnQ0KK+ycoOunjOuekQ0KK+ycoO2MkO2drA0KK+ycoOq3gOu2hA0KK+ycoOuPmeyYpA0KK+ycoOyerOq3vA0KK+ycoOu0ie2VhA0KK+ycoOq3gOyXsA0KK+ycoOyaqeyImA0KK+ycoOqyveq3oA0KK+ycoOuzkeuMgA0KK+ycoOq3vOuwsA0KK+ycoOydmOuPmQ0KK+ycoOqyveyjvA0KK+ycoOyerOq3vA0KK+ycoOq3vOyEoA0KK+ycoOuwqe2YuA0KK+ycoOygleydtA0KK+ycoOyerOyEoA0KK+ycoOq3vOyLnQ0KK+ycoOyduOq2jA0KK+ycoO2drOyEoA0KK+ycoOq4sOyEsQ0KK+ycoOq4sOuylA0KK+ycoOyEseyImQ0KK+ycoOyDgeyEnQ0KK+ycoOyImOybkA0KK+ycoOq4sOyerA0KK+ycoO2ZmO2YlQ0KK+ycoO2DnOq3vA0KK+ycoOuLpOyImA0KK+ycoOq4uOuPjA0KK+ycoOykkeyglQ0KK+ycoOunjOuwsA0KK+ycoO2YuOq2jA0KK+ycoOuCqOyerA0KK+ycoOydvOyglQ0KK+ycoO2VtOyXsA0KK+ycoOu0ie2drA0KK+ycoOuLrOyImA0KK+ycoOyInOyImA0KK+ycoO2DnOq4sA0KK+ycoOuPmeyInA0KK+ycoOuMgOq3vA0KK+ycoOyaqeq1rA0KK+ycoOq4sOyVhQ0KK+ycoOqxtOyyoA0KK+ycoOuMgOq3vA0KK+ycoOyyre2drA0KK+ycoOuMgO2ZmA0KK+ycoOyDge2ZmA0KK+ycoOuMgOunjA0KK+ycoOyYgeyLnA0KK+ycoOyEseyImQ0KK+ycoOyYgeyEsQ0KK+ycoOuMgOybkA0KK+ycoOyihe2RnA0KK+ycoOyInOq4sA0KK+ycoOyYgeyImA0KK+ycoOuNle2ZmA0KK+ycoOuRkOyglQ0KK+ycoOq4sOyEoA0KK+ycoOyerO2ZmA0KK+ycoOuNle2drA0KK+ycoOyYpOuwsA0KK+ycoO2VmeuylA0KK+ycoO2YuO2YhA0KK+ycoOuPmeydvA0KK+ycoOuLrOyImA0KK+ycoOyyreyLnQ0KK+ycoOuqheybhQ0KK+ycoOuPmeyerA0KK+ycoO2YhOyImA0KK+ycoO2VtOuPjA0KK+ycoOq0keu0iQ0KK+ycoOuPme2drA0KK+ycoOyInO2biA0KK+ycoO2VnOu0iQ0KK+ycoOyYgey5oA0KK+ycoOuRkOyLnQ0KK+ycoOyiheuPhA0KK+ycoOusuOyehA0KK+ycoOuMgO2drA0KK+ycoOuRkOyXsA0KK+ycoOyCvO2YuA0KK+ycoO2YuO2DnQ0KK+ycoOyYpe2YhA0KK+ycoOuTne2ZmA0KK+ycoOqwleyImA0KK+ycoOydvOybhQ0KK+ycoOustOywrA0KK+ycoOunjOyErQ0KK+ycoOuCqOuCqA0KK+ycoOy5oOq1rQ0KK+ycoOq3nO2ZmA0KK+ycoOunjOyerA0KK+ycoOyaqeyglQ0KK+ycoOuzkeq4sA0KK+ycoOyiheyEuA0KK+ycoOunkOyehA0KK+ycoOuMgO2VtA0KK+ycoOyaqeyLnQ0KK+ycoO2Zje2drA0KK+ycoOuqheuMgA0KK+ycoOyerO2YuA0KK+ycoOynhOuCqA0KK+ycoOusuOuNlQ0KK+ycoOuqheyXtA0KK+ycoOuPmeyasA0KK+ycoO2YleywvQ0KK+ycoOycpOydtQ0KK+ycoOuqheydmA0KK+ycoOyYgeyXtA0KK+ycoOyiheydvA0KK+ycoO2XjOuCqA0KK+ycoOustOyDgQ0KK+ycoOq3gOyasA0KK+ycoO2XjO2VhA0KK+ycoOyyoOyXtA0KK+ycoOustO2VmA0KK+ycoOyYpOqyvQ0KK+ycoOyerOyghA0KK+ycoOuzteyYgQ0KK+ycoOusuOyerA0KK+ycoOuqheuPhA0KK+ycoOyerOyXrA0KK+ycoOyLpOyerA0KK+ycoOusuOyerA0KK+ycoOyInO2drA0KK+ycoOydmOyImQ0KK+ycoOygkO2ZlA0KK+ycoOuvuOyYgQ0KK+ycoCDtm4gNCivsnKDsg4Hqsr0NCivsnKDrs5HsiJgNCivsnKDrr7zsnpANCivsnKDso7zqsJENCivsnKDtg5ztg5wNCivsnKDsiJzrtIkNCivsnKDrsLDqt7wNCivsnKDsmKTsiKANCivsnKDrj5nsp4QNCivsnKDtg4DrpqwNCivsnKDrs5HqtIANCivsnKDrj5nsiJgNCivsnKDsmIHrjZUNCivsnKDsnqztmIQNCivsnKDrs5HqtowNCivsnKDtmqjsobANCivsnKDsg4HsnpANCivsnKDrjZXsmqkNCivsnKDrs5Hqt5wNCivsnKDrqoXqtawNCivsnKDrtIntmowNCivsnKDrs7XtnawNCivsnKDrs5HquLgNCivsnKDquLDso7wNCivsnKDshLHsi50NCivsnKDrj5nsi50NCivsnKDrs5HrjIANCivsnKDrjIDsiJgNCivsnKDshozsmqkNCivsnKDsoJDsmIENCivsnKDrs5HrjZUNCivsnKDsoJDshLENCivsnKDsmIHsnKQNCivsnKDshKTsiJkNCivsnKDrs5HrkZANCivsnKDstpjsmIENCivsnKDspJHsobANCivsnKDsg4HsooUNCivsnKDrs5HrnpgNCivsnKDqsJHssqANCivsnKDsmIHrp5ANCivsnKDsp4TsspwNCivsnKDrs5HroZ0NCivsnKDsmIHtmLgNCivsnKDtmITqt5wNCivsnKDsmIHtmLgNCivsnKDrs5HrrLUNCivsnKDsnbjspIANCivsnKDssYTshJ0NCivsnKDtmZjsiJgNCivsnKDrs5HrrLUNCivsnKDsmIHtnLQNCivsnKDtmITsnpANCivsnKDqt7zsmqkNCivsnKDrs5HrrLgNCivsnKDsgrzrnpgNCivsnKDshKDtg50NCivsnKDsnoTquLgNCivsnKDrs5HrsLANCivsnKDrrLTsl7QNCivsnKDsl7Drs7UNCivsnKDquLDsoJwNCivsnKDrs5HshJ0NCivsnKDsnoTsiJgNCivsnKDtmLjqtZANCivsnKDsgrzsp4QNCivsnKDrs5HshK0NCivsnKDtmITrj5kNCivsnKDsooXtlZkNCivsnKDsmIHtmLgNCivsnKDrs5HsiJgNCivsnKDstpjrgqgNCivsnKDsoJXsiJwNCivsnKDsnKTquLgNCivsnKDrs5HsiJwNCivsnKDsmqnqt5wNCivsnKDquLDsi50NCivsnKDsirnrnoANCivsnKDrs5Hsl7QNCivsnKDsoJXqsr0NCivsnKDquIjtjJQNCivsnKDsiJnsm5ANCivsnKDrs5HsmIENCivsnKDrqoXroZwNCivsnKDsmIHsl7QNCivsnKDrs5HsmKUNCivsnKDrs5HsmKUNCivsnKDrj5nrrLgNCivsnKDssL3sg50NCivsnKDsmqntmakNCivsnKDrs5HsmYQNCivsnKDsnZHtnawNCivsnKDsmIHsmqkNCivsnKDrjZXrhYANCivsnKDrs5HsmbgNCivsnKDso7zqsJENCivsnKDsmIHsiJwNCivsnKDshLjtmLgNCivsnKDrs5HsmqkNCivsnKDsiJzsiJwNCivsnKDtg5ztmLgNCivsnKDsm5DtlZwNCivsnKDrs5Hsm5ANCivsnKDqsr3shK0NCivsnKDsmrDshK0NCivsnKDtnazsmrENCivsnKDrs5Hsm5ANCivsnKDsm5Dri6wNCivsnKDsg4Hsg4ENCivsnKDssKjrrLgNCivsnKDrs5HsnKQNCivsnKDtmY3slZQNCivsnKDsiJjsiJgNCivsnKDshLHrk50NCivsnKDrs5HsnYANCivsnKDqtJHrjIANCivsnKDtg5zsl6wNCivsnKDsnqzsiKANCivsnKDrs5HsnbQNCivsnKDsmKXrsLANCivsnKDsoJXquLANCivsnKDshJ3rpqwNCivsnKDrs5Hso7wNCivsnKDtl4zsnpANCivsnKDsooXtmZgNCivsnKDshJ3soJwNCivsnKDrs5Hso7wNCivsnKDrjZXsi50NCivsnKDsmIHsiJwNCivsnKDsmqnrrLgNCivsnKDrs5Hso7wNCivsnKDstpjsmIENCivsnKDqt7zshJ0NCivsnKDrqoXqt7wNCivsnKDrs5HssqANCivsnKDsg4HsiJgNCivsnKDsiJzsmqkNCivsnKDsiJzrtIkNCivsnKDrs5HssqANCivsnKDsooXrnb0NCivsnKDrtoDsmIENCivsnKDsoJXtlZkNCivsnKDrs5HstpwNCivsnKDsmIHsiJwNCivsnKDsoJXsnbwNCivsnKDshozrgqgNCivsnKDrs5HstqkNCivsnKDtmqjsiJwNCivsnKDsoJXsiJgNCivsnKDtmLjqs6QNCivsnKDrs5Htg5wNCivsnKDsuaDqt7wNCivsnKDrjIDssqANCivsnKDtjJDsp4QNCivsnKDrs5Htg50NCivsnKDrqoXshLgNCivsnKDsoJXshJ0NCivsnKDsooXtmZgNCivsnKDrs5HtlZgNCivsnKDsg4HsiJgNCivsnKDsnZjso7wNCivsnKDqtazsm5ANCivsnKDrs5HtmIQNCivsnKDsmIHsiJgNCivsnKDtmqjqt6ANCivsnKDqsJHrjIANCivsnKDrs5HtmLgNCivsnKDrrLTsm5ANCivsnKDtmITtnawNCivsnKDrtInsg4ENCivsnKDrs5HtmLgNCivsnKDqsr3shKANCivsnKDsooXrtIkNCivsnKDsiJzsnpANCivsnKDrs5Htm4gNCivsnKDslpHsiJkNCivsnKDshLHtmZgNCivsnKAg7IScDQor7Jyg67SJ642VDQor7Jyg7Iic7JuFDQor7Jyg7J2R7ZWtDQor7Jyg66+47IStDQor7Jyg67SJ7IudDQor7Jyg64+Z7IudDQor7Jyg7ZWZ7LC9DQor7Jyg64+Z7KCEDQor7Jyg7IK87IiYDQor7Jyg66qF7YyQDQor7Jyg7Iic7IiZDQor7Jyg6rK96rWtDQor7Jyg7IOB6re8DQor7Jyg7Jil7KGwDQor7Jyg65GQ67O1DQor7Jyg67SJ6529DQor7Jyg7IOB6re8DQor7Jyg7Jyk7IiYDQor7Jyg7J287JiBDQor7Jyg7YOc7ZmUDQor7Jyg7IOB6re8DQor7Jyg6rec7ZmUDQor7Jyg7ISx7JqpDQor7Jyg7ISx6recDQor7Jyg7IOB6ri4DQor7Jyg7LC9642VDQor7Jyg7ISx7J28DQor7Jyg7KCV7KO8DQor7Jyg7IOB642VDQor7Jyg7LKg7YOcDQor7Jyg7Jqp7ISgDQor7Jyg64+E7IudDQor7Jyg7IOB7LKcDQor7Jyg7KKF7IudDQor7Jyg7Jqp7ZmYDQor7Jyg7KKF7LKcDQor7Jyg7IOB7YOcDQor7Jyg7ISg7KSRDQor7Jyg7KCQ7IiYDQor7Jyg7J247ZWcDQor7Jyg7ISd7J6sDQor7Jyg66y47JmEDQor7Jyg7ZWc7ZWEDQor7Jyg67SJ66y4DQor7Jyg7ISd7J6sDQor7Jyg67SJ7IudDQor7Jyg7Lap6rK9DQor7Jyg7KeA7KeADQor7Jyg7ISd7Zi4DQor7Jyg7ISx7Jq0DQor7Jyg7IiY7IiZDQor7Jyg67OR7ZW0DQor7Jyg7ISg7J6QDQor7Jyg7JiB7IucDQor7Jyg7KGw7IiYDQor7Jyg7IOB7J6QDQor7Jyg7ISg7YOcDQor7Jyg7KKF7ISdDQor7Jyg7KSA6rWQDQor7Jyg67aE6rWsDQor7Jyg7ISx7IiYDQor7Jyg7KKF6re8DQor7Jyg7YOc7ZWcDQor7Jyg6riw7IiYDQor7Jyg7ISx7J6QDQor7Jyg7ISg7JuQDQor7Jyg7KeE64usDQor7Jyg6rOE7Z2sDQor7Jyg7ISx7J6sDQor7Jyg7Jm47IudDQor7Jyg7Jqp6re8DQor7Jyg7ISx7IiYDQor7Jyg7IS466GdDQor7Jyg7YOc7JuQDQor7Jyg7JaR6re8DQor7Jyg7JiB6rG0DQor7Jyg7IaM7ISgDQor7Jyg7J6l642VDQor7Jyg7IiY7ISgDQor7Jyg7J246rK9DQor7Jyg7IaM7IicDQor7Jyg7LC96riwDQor7Jyg64+Z6raMDQor7Jyg7JuQ7IiYDQor7Jyg7Iah7JilDQor7Jyg7Iic7JqxDQor7Jyg7ISx7ZGcDQor7Jyg6rCR7ZqoDQor7Jyg7IiY64KoDQor7Jyg7Iic7ZmYDQor7Jyg64us7KSADQor7Jyg7IaM7J2ADQor7Jyg7IiZ7J6QDQor7Jyg7J6s6raMDQor7Jyg7Jqp64+EDQor7Jyg7KKF6rSADQor7Jyg7IiZ7Z2sDQor7Jyg7IOB7JilDQor7Jyg7Iug7Zi4DQor7Jyg7LaY6rCBDQor7Jyg7Iic64+EDQor7Jyg7Iic7IiYDQor7Jyg7ISd7IOBDQor7Jyg7ZiE64+MDQor7Jyg7Iic7JewDQor7Jyg7YOc6raMDQor7Jyg7Jyk7KCVDQor7Jyg7JiB656YDQor7Jyg7Iic7J6QDQor7Jyg7Kad7Jq0DQor7Jyg6riI66y0DQor7Jyg7ZmU7JiBDQor7Jyg7Iic7KGwDQor7Jyg7J6s6rKwDQor7Jyg7Iic7ZiEDQor7Jyg642V7YOcDQor7Jyg7Iq56rWQDQor7Jyg67aE7JiBDQor7Jyg6riw66OhDQor7Jyg7KCV7Z2sDQor7Jyg7Iq57ZuIDQor7Jyg64us6re8DQor7Jyg67OR7IigDQor7Jyg7KKF7KCVDQor7Jyg7JWU7J20DQor7Jyg66+47Z2gDQor7Jyg7ZmN7JuQDQor7Jyg7LC97IiYDQor7Jyg7JWg7J6QDQor7Jyg64yA7IicDQor7Jyg7KCV7KO8DQor7Jyg7ZmN7J20DQor7Jyg7JWg7Z2sDQor7Jyg7IK87ISxDQor7Jyg7ISx7Z2sDQor7Jyg7LKc6raMDQor7Jyg7JaR6re8DQor7Jyg66qF7YOcDQor7Jyg7ISx7IiYDQor7Jyg7Ja47IOdDQor7Jyg7Ja17IudDQor7Jyg7IOB64KoDQor7Jyg7ISx7ZiEDQor7Jyg7KCV7IiZDQor7Jyg7JiB6rOEDQor7Jyg6rOh7LKtDQor7Jyg7LC97ZWYDQor7Jyg7JuQ7ZWZDQor7Jyg7JiB7IiYDQor7Jyg7ISg7ISxDQor7Jyg66y47YyQDQor7Jyg7J2A6rCVDQor7Jyg7JiB7IicDQor7Jyg7ISg7J6sDQor7Jyg7Jik7LCsDQor7Jyg66qF66GdDQor7Jyg7JiB7J6sDQor7Jyg7IOB7KSADQor7Jyg7ZW07YyQDQor7Jyg7Jqw7KeEDQor7Jyg7JiB7YyUDQor7Jyg7KCV64KoDQor7Jyg66y07Z2sDQor7Jyg66+4656ADQor7Jyg7Jqp6rWsDQor7Jyg7YOc7ZWZDQor7Jyg7IOB6rWsDQor7Jyg67SJ7KCVDQor7Jyg7Jqp6rWsDQor7Jyg7KO87ZmUDQor7Jyg7KKF7ZWZDQor7Jyg66qF7Zi4DQor7Jyg7Jqp67KUDQor7Jyg6riw7KCVDQor7Jyg67O07JqpDQor7Jyg7KSR64+ZDQor7Jyg7Jqp7ISgDQor7Jyg7ISx7KSADQor7Jyg7ZWY6rWtDQor7Jyg7IiY7IiYDQor7Jyg7Jqp7IiYDQor7Jyg64+E67O1DQor7Jyg7KKF7ZmYDQor7Jyg7JiB7IicDQor7Jyg7Jqp7IudDQor7Jyg7J287YOcDQor7Jyg7Jqp7ISgDQor7Jyg7KCV7YOcDQor7Jyg7Jqp7J6sDQor7Jyg7KCV7ZiEDQor7Jyg64Ko6rWQDQor7Jyg7Lmg7KGwDQor7Jyg7Jqp7KGwDQor7Jyg7Iic7JmEDQor7Jyg7J6s656YDQor7Jyg67aE6raMDQor7Jyg7Jqw6ri4DQor7Jyg7KKF7ISdDQor7Jyg7KCV7KeEDQor7Jyg7Iic7ZiEDQor7Jyg7Jq07JiBDQor7Jyg7KCV66GdDQor7Jyg64+Z6rOkDQor7Jyg7IOB64+EDQor7Jyg7JuQ6re8DQor7Jyg7KeE7Zi4DQor7Jyg67OR7J6sDQor7Jyg7ZWc7IK8DQor7Jyg7JuQ7J28DQor7Jyg7J6s7JykDQor7Jyg7J2067SJDQor7Jyg64+Z67mIDQor7Jyg7JuQ7LacDQor7Jyg6rec7KeEDQor7Jyg7KKF7Zi4DQor7Jyg7Jqp66qpDQor7Jyg7JuQ7Zi4DQor7Jyg7Iic64KoDQor7Jyg7KCV7YOcDQor7Jyg7J2E7ZyYDQor7Jyg7JuU7IudDQor7Jyg642V65GQDQor7Jyg7ZWE7ISgDQor7Jyg66+87KCVDQor7Jyg7JyE7IOBDQor7Jyg7J2Y7KO8DQor7Jyg7J6s66eMDQor7Jyg7JiB7LKgDQor7Jyg7Jyk7IOBDQor7Jyg7LaY7LaYDQor7Jyg7ZWZ7ISdDQor7Jyg7JiB64KoDQor7Jyg7Jyk7J6sDQor7Jyg67OR656YDQor7Jyg7KCV7J6EDQor7Jyg7Jew7JqwDQor7Jyg7J2A7ISgDQor7Jyg7YOc7IiYDQor7Jyg6rSR7IS4DQor7Jyg66qF7Ja4DQor7Jyg7J2A7KCEDQor7Jyg7JuQ7ISdDQor7Jyg66eM7Zi4DQor7Jyg7Jyk7IudDQor7Jyg7J2A7KCVDQor7Jyg7LC97KO8DQor7Jyg7J6s7Zi4DQor7Jyg7KCV7ZuIDQor7Jyg7J2A7KeEDQor7Jyg7KCQ642VDQor7Jyg7Jqp6re8DQor7Jyg7KCV7Zi4DQor7Jyg7J2E7IiYDQor7Jyg7YOc66eMDQor7Jyg7Jyg6rOkDQor7Jyg7IiY67ORDQor7Jyg7J2E7Z2sDQor7Jyg7IOB7YOcDQor7Jyg66y07JilDQor7Jyg7ZWt7J20DQor7Jyg7J2467SJDQor7Jyg7IOB7JuFDQor7Jyg67OR6ri4DQor7Jyg7J6s7JikDQor7Jyg7J247J6sDQor7Jyg66y47ZmYDQor7Jyg6riI7IicDQor7Jyg7KSA7ISxDQor7Jyg7J287ISxDQor7Jyg7JiB7Zi4DQor7Jyg64yA7YOdDQor7Jyg7ISx6riwDQor7Jyg7J287ISxDQor7Jyg7KKF7IiZDQor7Jyg6ri47KSRDQor7Jyg7J6s7JqpDQor7Jyg7J287ISxDQor7Jyg7IOB7ZuIDQor7Jyg7JiB6recDQor7Jyg7JuQ7ZuIDQor7Jyg7J6l66asDQor7Jyg7ZmY7JuFDQor7Jyg7KCV6rWtDQor7Jyg6reg7IigDQor7Jyg7J6s6rKsDQor7Jyg7ISd6rWsDQor7Jyg7IOB7IiYDQor7Jyg7IOB7KCVDQor7Jyg7J6s6rOkDQor7Jyg7YOc7IudDQor7Jyg7IiY7IiYDQor7Jyg7J2A6re8DQor7Jyg7J6s6re8DQor7Jyg7Iud6rCRDQor7Jyg66+466eMDQor7Jyg7Iic7J6QDQor7Jyg7J6s64+EDQor7Jyg7LC97Zi4DQor7Jyg7JiB7LacDQor7Jyg7IOB7JqwDQor7Jyg7J6s65OxDQor7Jyg7ZWE7KeEDQor7Jyg64Ko66eMDQor7Jyg7Jq07ZiEDQor7Jyg7J6s66eMDQor7Jyg7J6s7ZuIDQor7Jyg7Jqp7JuQDQor7Jyg7YOc64usDQor7Jyg7J6s7IKsDQor7Jyg7J6s7KKFDQor7Jyg7ZmU7Z2sDQor7Jyg7J287Jq0DQor7Jyg7J6s7ISgDQor7Jyg7YyQ6regDQor7Jyg7LKt7YOcDQor7Jyg7KCV7JewDQor7Jyg7J6s7ISgDQor7Jyg7Zi47JWUDQor7Jyg7IiY67O1DQor7Jyg7Jil7Je0DQor7Jyg7J6s7ISxDQor7Jyg66eM7Je0DQor7Jyg7JuU7Je9DQor7Jyg7Iic7YOcDQor7Jyg7J6s7IiYDQor7Jyg7JiB7KGwDQor7Jyg7IiY67KUDQor7Jyg7J6s7YOcDQor7Jyg7J6s7IiYDQor7Jyg7LC97KCQDQor7Jyg7JiB7IiYDQor7Jyg7J2R7LCsDQor7Jyg7J6s7JiBDQor7Jyg7KCV7KeEDQor7Jyg7IK87JewDQor7Jyg7KCV66eMDQor7Jyg7J6s7JiBDQor7Jyg7KKF7JuQDQor7Jyg7Jqp7KCVDQor7Jyg7Lap7J6QDQor7Jyg7J6s7JqpDQor7Jyg64+Z7IiYDQor7Jyg7J6s7IigDQor7Jyg7KCV64usDQor7Jyg7J6s7JuFDQor7Jyg7KO867CwDQor7Jyg7KO87J28DQor7Jyg7Jqw67CwDQor7Jyg7J6s7LKgDQor7Jyg7J246rK9DQor7Jyg66qF7ISdDQor7Jyg7Zi47J6QDQor7Jyg7J6s7Zi4DQor7Jyg7JiB67SJDQor7Jyg642V7LacDQor7Jyg7Jew7Z2sDQor7Jyg7J6s7Zi4DQor7Jyg7KKF7JuQDQor7Jyg7LC97YOcDQor7Jyg6riw7KGwDQor7Jyg7J6s7ZmNDQor7Jyg7ZmN7IudDQor7Jyg7IKs7IiYDQor7Jyg7J6s7J6sDQor7Jyg7J6s7ZqMDQor7Jyg7IOB6rSADQor7Jyg7IOB656ADQor7Jyg6rOE7IiYDQor7Jyg7J6s7ZuIDQor7Jyg7J2E7ISgDQor7Jyg7IOB7IicDQor7Jyg64Ko7IiZDQor7Jyg7J6s7ZuIDQor7Jyg7KCV7IudDQor7Jyg7LKg7IudDQor7Jyg7KCV6rOEDQor7Jyg7J6s7ZuIDQor7Jyg7J247KSADQor7Jyg6rCV7JiBDQor7Jyg7KCV642VDQor7Jyg7KCQ67aEDQor7Jyg67Cx64+EDQor7Jyg7IOB7Zi4DQor7Jyg7LC97YOdDQor7Jyg7KCQ7YOcDQor7Jyg7Iug7JqxDQor7Jyg66y47IiYDQor7Jyg64yA642VDQor7Jyg7KCV6rK9DQor7Jyg7ISx64+EDQor7Jyg7JiB67ORDQor7Jyg7ZmN7ZWcDQor7Jyg7KCV6re8DQor7Jyg6rWt7ISxDQor7Jyg7J6s7KKFDQor7Jyg7Jyk7ZiEDQor7Jyg7KCV64+EDQor7Jyg7J287JiBDQor7Jyg7J6s6rOkDQor7Jyg7LC97KKFDQor7Jyg7KCV7IudDQor7Jyg6rSR7JuQDQor7Jyg6rK97ZiEDQor7Jyg6riw64+ZDQor7Jyg7KCV7IudDQor7Jyg7JaR6raMDQor7Jyg7ZWc7IudDQor7Jyg7JiB7JqpDQor7Jyg7KCV7IudDQor7Jyg7YOc7IudDQor7Jyg7J217KKFDQor7Jyg7LCo7ZWcDQor7Jyg7KCV7J6QDQor7Jyg7J2A7JuQDQor7Jyg7JiB7J20DQor7Jyg6rK97YOcDQor7Jyg7KCV7J6sDQor7Jyg64+Z7JuFDQor7Jyg7KKF7ZiEDQor7Jyg6rK97JewDQor7Jyg7KCV7ZmUDQor7Jyg67O17IudDQor7Jyg67O06riwDQor7Jyg7JiB64yADQor7Jyg7KCc7JewDQor7Jyg64yA7Zi4DQor7Jyg7JuQ7Zi4DQor7Jyg64KY6rWtDQor7Jyg7KCc7LaYDQor7Jyg7J6E7Je0DQor7Jyg66eQ7JmEDQor7Jyg67OR6rOkDQor7Jyg7KCc7Zi4DQor7Jyg7Jqw7JqxDQor7Jyg7YOc7YOdDQor7Jyg64+Z7Zi4DQor7Jyg7KKF6rWwDQor7Jyg7JiB7ZiVDQor7Jyg6riw7KKFDQor7Jyg7Jil6re8DQor7Jyg7KKF7IiYDQor7Jyg67OR7ZWEDQor7Jyg6rSR7ZiEDQor7Jyg7YOc64KcDQor7Jyg7KKF7IudDQor7Jyg7J6l67SJDQor7Jyg7ISx7KGwDQor7Jyg7LCo7LacDQor7Jyg7KKF7KSRDQor7Jyg7Iic642VDQor7Jyg67O16rCRDQor7Jyg7Iic7LaYDQor7Jyg7KKF7ZiEDQor7Jyg7Jil7Je0DQor7Jyg7ISd7Jq0DQor7Jyg7YOc7IiYDQor7Jyg7KeA7Zi4DQor7Jyg7IK87JiBDQor7Jyg7IOB6rWsDQor7Jyg7LmY66eMDQor7Jyg7KeE6re8DQor7Jyg7J6s7Z2sDQor7Jyg7JiB67O1DQor7Jyg7JuU7IudDQor7Jyg7LCo7ISdDQor7Jyg67OR7Zi4DQor7Jyg6riw7J20DQor7Jyg7ZiE7Je8DQor7Jyg7LCo7ISgDQor7Jyg7ZWZ7IicDQor7Jyg6rSR7ZuIDQor7Jyg7J2R7IudDQor7Jyg7LC96re8DQor7Jyg7JiB7J20DQor7Jyg7KKF6riwDQor7Jyg7IiY7ZGcDQor7Jyg7LaY7JiBDQor7Jyg67OR7IicDQor7Jyg67SJ64W4DQor7Jyg7LKg7IucDQor7Jyg7LaY7J6QDQor7Jyg7KKF7IukDQor7Jyg7Jqp7KGwDQor7Jyg64+E7KeEDQor7Jyg7Lmg7JqpDQor7Jyg7IK87JuQDQor7Jyg7J247J6QDQor7Jyg67OR7IStDQor7Jyg7YOc7ISgDQor7Jyg7LC97JqpDQor7Jyg7J247Je0DQor7Jyg7LKg7J28DQor7Jyg7YOc7IiYDQor7Jyg64+Z64yADQor7Jyg7Jyk7JewDQor7Jyg7Zic7Zi4DQor7Jyg7YOc7KKFDQor7Jyg7LKg7JiBDQor7Jyg7Jyk7LKgDQor7Jyg7ISx67O0DQor7Jyg7YyQ7JikDQor7Jyg7Iq57JuQDQor7Jyg642V7LKgDQor7Jyg6riI7IiYDQor7Jyg7ZWE7J20DQor7Jyg7J246re8DQor7Jyg7ZiE7JiBDQor7Jyg7J6s7JykDQor7Jyg7ZWc7IOBDQor7Jyg7KeA7JWUDQor7Jyg7J24642VDQor7Jyg7Z2s7IicDQor7Jyg7ZWc7IudDQor7Jyg7ISx6rWsDQor7Jyg7KeE7JiBDQor7Jyg67OR7ZWZDQor7Jyg7ZWc7Je0DQor7Jyg6rCc7ZmNDQor7Jyg7KKF7IOBDQor7Jyg6riw64+MDQor7Jyg7ZWc7KKFDQor7Jyg7KSA7IiYDQor7Jyg64+Z7JqpDQor7Jyg7IiY7IukDQor7Jyg7ZW064WEDQor7Jyg7LKg7KKFDQor7Jyg7ZmU7ZmYDQor7Jyg7IOB7YOdDQor7Jyg7ZW07Jq0DQor7Jyg7KKF7IicDQor7Jyg7LC97LKtDQor7Jyg7JaR7Z2sDQor7Jyg7ZW07KCVDQor7Jyg66eI7ZWYDQor7Jyg7LCo6raMDQor7Jyg7LKg67O1DQor7Jyg7ZW07KSADQor7Jyg7LmY7IicDQor7Jyg6re86recDQor7Jyg7KCV7IiZDQor7Jyg7ZaJ7KeADQor7Jyg7JiB7IiYDQor7Jyg6rK967ORDQor7Jyg64yA7IiYDQor7Jyg7ZeM7IudDQor7Jyg67SJ7LKgDQor7Jyg7J287IiYDQor7Jyg7KCV7IiYDQor7Jyg7ZiE7IudDQor7Jyg7Zqo7YOdDQor7Jyg7LCs7JuFDQor7Jyg7KeA7ZWcDQor7Jyg7ZiE7Zi4DQor7Jyg7ZiV7Zi4DQor7Jyg6riw7J6sDQor7Jyg66eQ64+ZDQor7Jyg7ZmN6re8DQor7Jyg7JiB6rWQDQor7Jyg6riw7IiZDQor7Jyg7Jqp7ZeMDQor7Jyg7ZmN7J6sDQor7Jyg7IiY7KKFDQor7Jyg7KSR7J20DQor7Jyg7ZW064usDQor7Jyg7ZmU7JuFDQor7Jyg7LKc6rOkDQor7Jyg7JiB7JqwDQor7Jyg7Jm46re8DQor7Jyg7Zqo642VDQor7Jyg6riI7IudDQor7Jyg642V6rSADQor7Jyg7Jqp7KGwDQor7Jyg7Zqo7ISgDQor7Jyg7KCV6reADQor7Jyg6rSR7JqwDQor7Jyg7JiB7IiYDQor7Jyg7ZuE6re8DQor7Jyg7KCQ67SJDQor7Jyg7JiB64+EDQor7Jyg7KeE7KKFDQor7Jyg7ZyY7ISgDQor7Jyg64+Z7JqxDQor7Jyg7J6s7IudDQor7Jyg66Gd6recDQor7Jyg7Z2l6rSADQor7Jyg7JiB7IicDQor7Jyg7JiB7J6QDQor7Jyg7LKg6rK9DQor7Jyg7Z2l6riwDQor7Jyg67aE656YDQor7Jyg7J217IicDQor7Jyg67OR7IiYDQor7Jyh66y07JuFDQor7Jyh7ISx7ISdDQor7Jyh64+Z7ZiEDQor7Jyh7KeE7KSRDQor7Jyh7KKF6re8DQor7Jyh7Lap67O1DQor7Jyh7JiB6recDQor7Jyh66y07IiYDQor7Jyh7KKF64yADQor7Jyh7ISd7J21DQor7Jyh7ISx7J28DQor7Jyh6reA6re8DQor7Jyh7Z2s7IiZDQor7Jyh7J2Y7KSADQor7Jyh7J6s7ZGcDQor7Jyh6rec7JqwDQor7JykIOyInA0KK+ycpOq4sOyErQ0KK+ycpOq0ke2ctA0KK+ycpO2ZlOyXtA0KK+ycpOqwkeyInA0KK+ycpOqwleqwnA0KK+ycpOyiheq1sA0KK+ycpOyihe2VnA0KK+ycpOqyveuztQ0KK+ycpOyaqeuhnQ0KK+ycpOyaqeq1rQ0KK+ycpO2MlOyXsA0KK+ycpOqyveyLnQ0KK+ycpOygleuTsQ0KK+ycpOq4iOyyoA0KK+ycpOyImOuFhA0KK+ycpOqyveyhsA0KK+ycpO2XjO2YuA0KK+ycpOygleyerA0KK+ycpCDsiJgNCivsnKTqsr3tmLgNCivsnKTrqoXquLANCivsnKTsspztmZgNCivsnKTshKTtg5wNCivsnKTqsr3tnawNCivsnKTso7zsmKUNCivsnKTssKjshKANCivsnKTstpjshJ0NCivsnKTqs4Tsl7ANCivsnKTshLjshKANCivsnKTtlbTsnpANCivsnKTrtInsg4ENCivsnKTqs7Xsm5ANCivsnKTrgpnqt5wNCivsnKTrqoXtnaUNCivsnKTslaDtmZgNCivsnKTqtIDsi50NCivsnKTtg5ztmIQNCivsnKTtlbTsmrANCivsnKTsnbjtlZkNCivsnKTqtJHquLANCivsnKTqs4TspIANCivsnKTrqoXshKANCivsnKTsg4HsobANCivsnKTqtozsi50NCivsnKTquIjquLANCivsnKTri6zssqANCivsnKTshKDsmqkNCivsnKTqtozsoJUNCivsnKTsmIHquLANCivsnKTsoJDssL0NCivsnKTtg5zssKwNCivsnKTqt4Dsl7ANCivsnKTsmqntlZkNCivsnKTsnqXsm5ANCivsnKTqs4TsiKANCivsnKTqt5zsmIENCivsnKTsmrDsmIENCivsnKTstpjqtawNCivsnKTslpHsp4QNCivsnKTqt5zsmIENCivsnKTquIjsi50NCivsnKTsnqzsiJgNCivsnKTssL3qt5wNCivsnKTqt7zrp4wNCivsnKTshKDtg5wNCivsnKTqtJHsobANCivsnKTtmLjqs4QNCivsnKTqt7zsiJgNCivsnKTsoJXshKANCivsnKTstpjsl7ANCivsnKTsnqztmZgNCivsnKTquIjshKANCivsnKTso7ztg50NCivsnKTtg5zsi50NCivsnKTstpjqt5wNCivsnKTquIjsi50NCivsnKTsooXquLANCivsnKTsmIHrs7QNCivsnKTsl7Dsi6QNCivsnKTquLDrjZUNCivsnKTsiJzqtawNCivsnKTsp4DtlbQNCivsnKTqsr3qtZANCivsnKTquLDsl7ANCivsnKTrqoXtmakNCivsnKTsp4TtmZgNCivsnKTsoJXquLANCivsnKTquLDsm5ANCivsnKTsiJzqt7wNCivsnKTquLDtg5wNCivsnKTsi6zsmIENCivsnKTquLjquLANCivsnKTsnKTsnbwNCivsnKTsmIHrpqwNCivsnKTrs5HtmLgNCivsnKTrgqjquLANCivsnKTsmIHso7wNCivsnKTsnqzsnbQNCivsnKTsooXquLgNCivsnKTrgqjsi50NCivsnKTsmqnquLgNCivsnKTsm5DsnbwNCivsnKTrk53rn4kNCivsnKTrjIDsmIENCivsnKTsnqzrr7gNCivsnKTsmqnrrLgNCivsnKTsg4HtmLgNCivsnKTrjIDtmIQNCivsnKTrs7jsl7ANCivsnKTtmIHrspQNCivsnKTsi6TssKwNCivsnKTrjZXquLANCivsnKTrs5HssL0NCivsnKTstpjspIANCivsnKTsiJjsoJANCivsnKTrjZXspIANCivsnKTsmIHtmLgNCivsnKTsmqnsm5ANCivsnKTrjZXtmLgNCivsnKTrj4Tqt6ANCivsnKTshozsm5ANCivsnKTsmIHsooUNCivsnKTtnaXssL0NCivsnKTrj4TtmZgNCivsnKTsmIHrs7QNCivsnKTsiJjtmIENCivsnKTsiJjquLANCivsnKTrj4TtnawNCivsnKTrtInsirkNCivsnKTslYjssqANCivsnKTsmKXrtIkNCivsnKTrj5nsi50NCivsnKTroYDqt6ANCivsnKTsoJDrgqgNCivsnKTsnqzsi50NCivsnKTrj5ntmZgNCivsnKTsmKXspJENCivsnKTssL3tmLgNCivsnKTsm4XrtIkNCivsnKTrkZDquLANCivsnKTrsKnrj5kNCivsnKTsnYDtlZkNCivsnKTsooXtnJgNCivsnKTrkZDsl7ANCivsnKTsooXssqANCivsnKTtlbTqt5wNCivsnKTsmKXrtIkNCivsnKTrqoXqta0NCivsnKTsoJXssqANCivsnKTso7zsi50NCivsnKTtl4zquLANCivsnKTrqoXquLANCivsnKTsoJXtnawNCivsnKTsg4HsiJgNCivsnKTrs5HtnawNCivsnKTrqqjsnoQNCivsnKTtmY3tg50NCivsnKTsg4Hsl7QNCivsnKTrrLTsiJgNCivsnKTrrLjqtawNCivsnKTsnbztnawNCivsnKTrr7jtmZgNCivsnKTrj4TrjIANCivsnKTrrLjquLANCivsnKTsiJjqt6ANCivsnKTsnYTtmLgNCivsnKTsnoTtm4gNCivsnKTrrLjsmIENCivsnKTtg5zqt5wNCivsnKTtg5zrgqgNCivsnKTquLDssqANCivsnKTrs5HqtIANCivsnKTrp5DtmIQNCivsnKTqt6DtmLgNCivsnKTrtInrtIkNCivsnKTrs5Hqta0NCivsnKTri6zrj5kNCivsnKTrp4zsnbwNCivsnKTtmLjsiKANCivsnKTrs5HquIgNCivsnKTrgqjrtoQNCivsnKTsgrzquLANCivsnKTsnbjssqANCivsnKTrs5HquLANCivsnKTshLHsiJwNCivsnKTrtInshJ0NCivsnKTqtozsi50NCivsnKTrs5HquLANCivsnKTrqoXtlZkNCivsnKTsp4TsnKQNCivsnKTshLHtmZgNCivsnKTrs5HquLgNCivsnKTsnbjqta0NCivsnKTsnqzqt6ANCivsnKTsooXrsLANCivsnKTrs5HquLgNCivsnKTshLHsm4UNCivsnKTsmIHqsJENCivsnKTsnbjshKANCivsnKTrs5HrhbgNCivsnKTsg4HsobANCivsnKTsiJzsm5ANCivsnKTrjZXtlZwNCivsnKTrs5Hrp4wNCivsnKTsiJjsl7ANCivsnKTrgpnshJ0NCivsnKTrrLjrrLUNCivsnKTrs5HshK0NCivsnKTrqoXsm5ANCivsnKTshJ3qsJUNCivsnKTrs5Hqsr0NCivsnKTrs5HsmrENCivsnKTsspzsgrwNCivsnKTsmqntnawNCivsnKTrs5HquLANCivsnKTrs5HsnoUNCivsnKTrr7ztmZQNCivsnKTrs5Hqta0NCivsnKTsnqzssqANCivsnKTrs5HsobANCivsnKTspJHshKANCivsnKTrrLjquLANCivsnKTsnbjqt5wNCivsnKTrs5HsspwNCivsnKTqtJHtnawNCivsnKTsnoTtg50NCivsnKTsoJXtmY0NCivsnKTrs5HtmIENCivsnKTsnqztnaANCivsnKTsooXsiJwNCivsnKTsnqzssqANCivsnKTrs5HtmZQNCivsnKTquLDqtowNCivsnKTsg4HsmqkNCivsnKTshLHsnZgNCivsnKTrs7TsiJgNCivsnKTsmIHtmLgNCivsnKTsgrztmIQNCivsnKTsiJjsi50NCivsnKTrs7XsmqkNCivsnKTsooXshLENCivsnKTsgrzstpwNCivsnKTsoJXrj5kNCivsnKTrtInstpgNCivsnKTsmIHtmIQNCivsnKTspIDshJ0NCivsnKTsmIHsooUNCivsnKTrtoTrjZUNCivsnKTsnKjsoJUNCivsnKTsoJXspJENCivsnKTrgqjtl4wNCivsnKTrtoTslYUNCivsnKTsoJXqta0NCivsnKTrs7XsnpANCivsnKTrjIDtmLgNCivsnKTrtoTsobANCivsnKTshpDqsr0NCivsnKTsp4TsmqkNCivsnKTtmY3tg5wNCivsnKTsgrzsiJgNCivsnKTsjI3tlZkNCivsnKTrp6TquIgNCivsnKTsmrHsg50NCivsnKTsgrzsiJwNCivsnKTso7zquLgNCivsnKTshLHtmqgNCivsnKTshLHsl7QNCivsnKTsgrzslZQNCivsnKTrtIntmZgNCivsnKTsm5DshLENCivsnKTsiJjrj5kNCivsnKTsg4HquLANCivsnKTrj5nsnKQNCivsnKTsirntmLgNCivsnKTtmLjsm5ANCivsnKTsg4HrhbgNCivsnKTshJ3smKUNCivsnKTtg5zsnbQNCivsnKTrrLTsnbQNCivsnKTsg4HrrLgNCivsnKTsmIHrs7UNCivsnKTsoJXtmLgNCivsnKTsiJzsiJwNCivsnKTsg4HtmLgNCivsnKTsl7DqsJUNCivsnKTtmansmrANCivsnKTrgqjshK0NCivsnKTshJ3quLANCivsnKTsnqztmIQNCivsnKTsmKTsnbwNCivsnKTrp5DsmqkNCivsnKTshJ3slZQNCivsnKTsoJXsspwNCivsnKTsoJXsl7QNCivsnKTqt7nsg4ENCivsnKTshJ3smqkNCivsnKTtg5zrnoANCivsnKTsnqzqt7wNCivsnKTsmbjshLgNCivsnKTshJ3so7wNCivsnKTrspTtlZgNCivsnKTsnqztmowNCivsnKTtg5zsl7QNCivsnKTshJ3ssKwNCivsnKTsgrztmLgNCivsnKTquLDsmrANCivsnKTsooXtmZQNCivsnKTshJ3tlZwNCivsnKTsg4HtmZgNCivsnKTsnbTrk50NCivsnKTsmIHquLANCivsnKTsiJjquLANCivsnKTrs7XsmKUNCivsnKTsmIHtmLgNCivsnKTsgqzrtoQNCivsnKTsiJjsm5ANCivsnKTqsJXslYUNCivsnKTrj5nsi50NCivsnKTsmqnrqoUNCivsnKTsiJjtlZwNCivsnKTsiJjssq0NCivsnKTquLDshLENCivsnKTtg5ztmIQNCivsnKTsiJnsnpANCivsnKTtg5zsp4QNCivsnKTsnqXshJ0NCivsnKTtmITsmqkNCivsnKTsiJzsnbQNCivsnKTquLDtg50NCivsnKTshLHssL0NCivsnKTrtoTtmY0NCivsnKTsiJzsobANCivsnKTsmIHqsIENCivsnKTsnqzsiKANCivsnKTtg53snbQNCivsnKTsiJztlZkNCivsnKTsmKTqtowNCivsnKTqt5zsiJgNCivsnKTquLDtg5wNCivsnKTsiJztmakNCivsnKTsnqzsmrANCivsnKTtmY3sl7ANCivsnKTsp4TtlZkNCivsnKTsi6DsmKQNCivsnKTtm4TsmrANCivsnKTqt7zssKgNCivsnKTrr7jrs7UNCivsnKTsi6Tqsr0NCivsnKTsoJDquLANCivsnKTqsr3siJgNCivsnKTsg4HtmLgNCivsnKTslrjquLANCivsnKTso7zrjIANCivsnKTsmKXso7wNCivsnKTsmIHquLgNCivsnKTslrjso7wNCivsnKTrs7TrnoANCivsnKTsg4HquLgNCivsnKTrk7HtnaANCivsnKTsmIHqta0NCivsnKTrs5Hrj5kNCivsnKTsmqnsnbwNCivsnKTsmKXsm4UNCivsnKTsmIHsiJkNCivsnKTqsJHtmZgNCivsnKTssL3qsr0NCivsnKTsi6DsmIENCivsnKTsmIHsnoQNCivsnKTshLHsiJwNCivsnKTtmY3tnawNCivsnKTtlZnroYANCivsnKTsmIHsnpANCivsnKTsoJXtmZgNCivsnKTsmKTrgqgNCivsnKTsnqXtmLgNCivsnKTsmIHssYQNCivsnKTsmIHsm4UNCivsnKTrjZXsiJwNCivsnKTshJ3tmZgNCivsnKTsmIHtmZQNCivsnKTspJHtmLgNCivsnKTshLHshJ0NCivsnKTrtInsnoQNCivsnKTsmIHtnawNCivsnKTsiJjsnbUNCivsnKTquLDqs6QNCivsnKTsoJXqt6ANCivsnKTsmIHtnawNCivsnKTsmIHrqqgNCivsnKTsl7Dsg50NCivsnKTsiJnqtawNCivsnKTsmKXsiJwNCivsnKTqta3siJgNCivsnKTstpjsl4UNCivsnKTsirnshJ0NCivsnKTsmqnqtIANCivsnKQg6riwDQor7Jyk7J6s7LKgDQor7Jyk642V6rWtDQor7Jyk7Jqp6re8DQor7Jyk7KeA6rKwDQor7Jyk7IKs7LacDQor7Jyk7JiB7IicDQor7Jyk7Jqp7IiYDQor7Jyk7Iig7YOcDQor7Jyk7IOB67O1DQor7Jyk7LKc65+JDQor7Jyk7JuQ7IudDQor7Jyk67SJ7JuFDQor7Jyk7KeE7KSADQor7Jyk7Jqp7J6sDQor7Jyk7JuQ7IudDQor7Jyk7IiY7J6sDQor7Jyk7J6s7JilDQor7Jyk7Jqp6recDQor7Jyk7JuU66eMDQor7Jyk64+Z7JewDQor7Jyk7Jil7LC9DQor7Jyk7KCQ7ZmYDQor7Jyk7J2E7IiYDQor7Jyk7IiY7JuQDQor7Jyk7Jqp7J6QDQor7Jyk67SJ6riwDQor7Jyk7J2Y7JuFDQor7Jyk7Iuk7LKgDQor7Jyk7J2864+ZDQor7Jyk7KCV7Z2sDQor7Jyk7J207IiYDQor7Jyk7JiB7Zi4DQor7Jyk7J2E7J6sDQor7Jyk7IK87IicDQor7Jyk7J247IStDQor7Jyk7ZW06rWsDQor7Jyk66eM7JuQDQor7Jyk7Jqp64+MDQor7Jyk7J287IudDQor7Jyk7ISg7Zi4DQor7Jyk64+Z7Je0DQor7Jyk7KKF7IudDQor7Jyk7J287IudDQor7Jyk7LKt7Je0DQor7Jyk7ZWt7IiYDQor7Jyk66eM6rOkDQor7Jyk7J287JiBDQor7Jyk7IK87ISxDQor7Jyk7KKF7IStDQor7Jyk6rSA7ZqoDQor7Jyk7J6E7IicDQor7Jyk66y47ZWYDQor7Jyk64W47LKgDQor7Jyk7IiY7ZmYDQor7Jyk7J6s6riwDQor7Jyk64+Z67O1DQor7Jyk7ISx7Zi4DQor7Jyk6rK97ISgDQor7Jyk7J6s7ISxDQor7Jyk7Jqp66qoDQor7Jyk7JiB7IiYDQor7Jyk7JiB7IudDQor7Jyk7KCQ7IudDQor7Jyk7JuQ7JqpDQor7Jyk6raM67CwDQor7Jyk7Z2s7YOcDQor7Jyk7KCQ7JuQDQor7Jyk66eQ7Zi4DQor7Jyk7J2Y7IiYDQor7Jyk7Jm47ISdDQor7Jyk7KCV6recDQor7Jyk7ZiE7ZmUDQor7Jyk64yA7ISdDQor7Jyk7JuQ7IigDQor7Jyk7KCV6ri4DQor7Jyk6riw7KSADQor7Jyk64+E7YOcDQor7Jyk7Jqx64+ZDQor7Jyk7KCV7JilDQor7Jyk7Iug7IudDQor7Jyk7JiB7KGwDQor7Jyk7YOc7IiYDQor7Jyk7KCV7ZiEDQor7Jyk642V7KSRDQor7Jyk6rK964+EDQor7Jyk7J6l7IiYDQor7Jyk7KCV7Zi4DQor7Jyk7Jm47ISdDQor7Jyk66y47IudDQor7Jyk6riw7IudDQor7Jyk7KCV7ZqoDQor7Jyk7KCV6rG0DQor7Jyk7ZWZ7IudDQor7Jyk7KCV7KGwDQor7Jyk7KKF6rCBDQor7Jyk7JiB66y4DQor7Jyk7KKF66OhDQor7Jyk7Ja17ZWZDQor7Jyk7KKF6rCRDQor7Jyk6riw7J24DQor7Jyk7KKF7ISgDQor7Jyk7YOc7KGwDQor7Jyk7KKF6rWsDQor7Jyk6riw7Zi4DQor7Jyk7Iic6ri4DQor7Jyk7Iic7J28DQor7Jyk7KKF6recDQor7Jyk7ZWZ642VDQor7Jyk6riw7JykDQor7Jyk67OR7ISxDQor7Jyk7KKF6re5DQor7Jyk7KSA7JuQDQor7Jyk7J6s7JqpDQor7Jyk7Iug7IiYDQor7Jyk7KKF64yADQor7Jyk642V7JWgDQor7Jyk67OR7KGwDQor7Jyk7LC96riwDQor7Jyk7KKF642VDQor7Jyk7LKg7IicDQor7Jyk7KKF64KoDQor7Jyk7ZW07IS4DQor7Jyk7KKF642VDQor7Jyk7Iic6riwDQor7Jyk7YyQ7YOdDQor7Jyk7KCV7ISgDQor7Jyk7KKF66GdDQor7Jyk7JiB6rWsDQor7Jyk67KU66+8DQor7Jyk7KCV7JaRDQor7Jyk7KKF66a9DQor7Jyk7YOc7ZmUDQor7Jyk7KO87Zi4DQor7Jyk7IiY7J6QDQor7Jyk7KKF66a9DQor7Jyk7YOc7Zi4DQor7Jyk7Jq0656YDQor7Jyk7Jil7IiYDQor7Jyk7KKF66y4DQor7Jyk7IaM7Zi4DQor7Jyk7ZWZ7JqpDQor7Jyk7J2Y6rK9DQor7Jyk7KKF66+8DQor7Jyk7JuQ7IudDQor7Jyk7KCV7ZmNDQor7Jyk7KKF7J6sDQor7Jyk7KKF7ISdDQor7Jyk7KCV67CwDQor7Jyk7JaR67CxDQor7Jyk65GQ7J20DQor7Jyk7KKF7ISgDQor7Jyk7JiB7IicDQor7Jyk7J6s7ISxDQor7Jyk6re57JqpDQor7Jyk7KKF7ISkDQor7Jyk7ISd7JqxDQor7Jyk7Jyk66eMDQor7Jyk7IaQ7Y+sDQor7Jyk7KKF7IudDQor7Jyk6rK97ISgDQor7Jyk64+Z7YOcDQor7Jyk7JuQ7IKsDQor7Jyk7KKF7JqwDQor7Jyk7KO86riIDQor7Jyk6riw66qFDQor7Jyk65Od7JiBDQor7Jyk7KKF7JuQDQor7Jyk7IS47LKgDQor7Jyk7ISx7Zi4DQor7Jyk7KKF6re8DQor7Jyk7KKF7JyoDQor7Jyk6riw7IiYDQor7Jyk67OR6re8DQor7Jyk7YOc7JqwDQor7Jyk7KKF7KGwDQor7Jyk6rOE7IiZDQor7Jyk7J247IOBDQor7Jyk67SJ7J20DQor7Jyk7KKF7LKgDQor7Jyk7Jyk7J21DQor7Jyk7ZmY64+EDQor7Jyk7IiY7IiYDQor7Jyk7KKF7ZW0DQor7Jyk7Jik7J21DQor7Jyk7KKF6re8DQor7Jyk7Jqx7IicDQor7Jyk7KKF7Z2sDQor7Jyk7ZWc6rSADQor7Jyk7Ja46rG0DQor7Jyk66+467SJDQor7Jyk7KO86rG0DQor7Jyk7JuQ7ISdDQor7Jyk7KeE7ZWYDQor7Jyk7Je07ZmYDQor7Jyk7KSA6rK4DQor7Jyk7IOB642VDQor7Jyk7ISx7JqwDQor7Jyk6rK97JqwDQor7Jyk7KSR6riwDQor7Jyk7IK86recDQor7Jyk7Iq564+EDQor7Jyk7IS47IicDQor7Jyk7KeA6regDQor7Jyk7Z2s7J6EDQor7Jyk7ZWc7JqpDQor7Jyk7ISx7Zi4DQor7Jyk7KeE6regDQor7Jyk66eQ6rWsDQor7Jyk7IaM7J6QDQor7Jyk7ISd7KSADQor7Jyk7KeE7JyoDQor7Jyk6rSR7Zi4DQor7Jyk7J2A7ZiEDQor7Jyk6riw67O0DQor7Jyk7KeE7LKgDQor7Jyk7ZiV7J6sDQor7Jyk6rSR7JqwDQor7Jyk7IOB6riIDQor7Jyk7LCs6riwDQor7Jyk7Jqp7ZiEDQor7Jyk642V7JiBDQor7Jyk7YOc64+MDQor7Jyk7LC96529DQor7Jyk7KO87ZWcDQor7Jyk7IOB7ZiEDQor7Jyk7Iic7Zi4DQor7Jyk7LKg7KSRDQor7Jyk67SJ7ISdDQor7Jyk64yA66OhDQor7Jyk7JuQ6rWsDQor7Jyk7Lap6ri4DQor7Jyk6rOE6regDQor7Jyk66qF7IStDQor7Jyk66y465GQDQor7Jyk7YOc6riIDQor7Jyk7IaM642VDQor7Jyk67OR7IudDQor7Jyk7Iq57KSADQor7Jyk7YOc7IiYDQor7Jyk67OR7IiZDQor7Jyk7KCV6ri4DQor7Jyk7ZWE6rCRDQor7Jyk7YOc7IudDQor7Jyk7YOc67O1DQor7Jyk7KKF7J20DQor7Jyk66qF7KeEDQor7Jyk7YOd6riwDQor7Jyk7IOB7IudDQor7Jyk7Zal7Z2sDQor7Jyk7J6s66+4DQor7Jyk7YyQ6regDQor7Jyk7Jew7Z2sDQor7Jyk7JiB6riIDQor7Jyk7KKF7LKgDQor7Jyk7YyQ6riwDQor7Jyk7ZW07LKgDQor7Jyk7ZmN7Z2sDQor7Jyk7LaY7ZmUDQor7Jyk7YyQ7IigDQor7Jyk6ri46rG0DQor7Jyk6riw7YOcDQor7Jyk7KCE7ZmNDQor7Jyk7ZWZ67KUDQor7Jyk7ISd642VDQor7Jyk7LC97IudDQor7Jyk7ISx7IicDQor7Jyk7ZWZ7JuQDQor7Jyk7Jqp7Zi4DQor7Jyk6riw64W4DQor7Jyk67OR6rWsDQor7Jyk7ZWZ7KGwDQor7Jyk7ZmY6riwDQor7Jyk7IOB7ISxDQor7Jyk7KCV7Je0DQor7Jyk7ZWc64+ZDQor7Jyk7YOc7J20DQor7Jyk7J247ZiEDQor7Jyk7ISx7ZuIDQor7Jyk7ZWc64+ZDQor7Jyk7ZWc7JqwDQor7Jyk7Jqp66eMDQor7Jyk7ISg7LKcDQor7Jyk7ZWc7IudDQor7Jyk7Jqp6rK9DQor7Jyk6rK97IicDQor7Jyk7KKM7ZmNDQor7Jyk7ZWo6regDQor7Jyk64W47Ja4DQor7Jyk7JuQ7IiYDQor7Jyk64yA7IiYDQor7Jyk7ZiE6rWQDQor7Jyk7ISx66asDQor7JykIOuTnQ0KK+ycpOyghOq4iA0KK+ycpO2YhOyImQ0KK+ycpOyEseyihQ0KK+ycpO2DnO2YuA0KK+ycpOyYgeyhsA0KK+ycpO2YhOyasA0KK+ycpOuqhe2ZjQ0KK+ycpOyiheuNlQ0KK+ycpOqyveyImA0KK+ycpO2YuOyaqQ0KK+ycpOynhOq1kA0KK+ycpOu0ie2drA0KK+ycpO2drO2DnA0KK+ycpO2ZlOyEoA0KK+ycpO2ZjeyyoA0KK+ycpOq4sOuPhA0KK+ycpOudveyLnQ0KK+ycpO2aqOq4sA0KK+ycpOq4iOydvA0KK+ycpO2DnOuegA0KK+ycpOyGjOuPmQ0KK+ycpO2drOuLrA0KK+ycpOuzteyVlA0KK+ycpO2DnOynhA0KK+ycpO2VmOyjvA0KK+ycpO2drOuMgA0KK+ycpOygleydtQ0KK+ycpOygleunjA0KK+ycpOu0ieu0iQ0KK+ycpO2drOuNlQ0KK+ycpOycpOyLnQ0KK+ycpO2ZjeuNlQ0KK+ycpOqwkeybkA0KK+ycpO2drOyEoA0KK+ycpOyiheq3nA0KK+ycpO2ZjeydtQ0KK+ycpOyEseq0kQ0KK+ydgOuNleq4sA0KK+ydgO2XjOyEoA0KK+ydgOyDgeyInA0KK+ydgOyaqeynhA0KK+ydgOy2qeq4sA0KK+ydgOq0ke2drA0KK+ydgOu2hOyImA0KK+ydgOyInOuzkQ0KK+ydtCDqsbQNCivsnbTsirnquLANCivsnbTsm5DslZQNCivsnbTtl4zqt7wNCivsnbQg6rK9DQor7J207IK87ZW0DQor7J2067OR7Zi4DQor7J207Jqp6raMDQor7J20IOyDgQ0KK+ydtOyihe2DnQ0KK+ydtOyEse2YuA0KK+ydtOygkOuwsQ0KK+ydtCDsiJgNCivsnbTsmIHsiJgNCivsnbTsooXsiJwNCivsnbTstpjsmIENCivsnbQg7IiZDQor7J2067OR6rWQDQor7J207KCV7ISdDQor7J206rOE7KGwDQor7J20IOyXhA0KK+ydtO2VtOyerA0KK+ydtOyerO2WiQ0KK+ydtOuMgOy2nA0KK+ydtCDsnbgNCivsnbTssL3qt7wNCivsnbTshJ3sm5ANCivsnbTsnqzshK0NCivsnbQg7KCVDQor7J207KCV66OhDQor7J207YOc7ZWZDQor7J207IOB7JewDQor7J20IOykgA0KK+ydtOyInOyEoA0KK+ydtOyiheq2jA0KK+ydtOy2mOyEnQ0KK+ydtCDspp0NCivsnbTstpjsnbwNCivsnbTsoJXsi50NCivsnbTsiJzqtawNCivsnbQg7KeEDQor7J207KCV64+EDQor7J207IaM7J6QDQor7J207KKF67KUDQor7J20IOyyrQ0KK+ydtOyDge2drA0KK+ydtOyCvOyImA0KK+ydtOyWuOuPjA0KK+ydtCDtlZkNCivsnbTtlajsiJwNCivsnbTsooXsnqwNCivsnbTqsr3quLgNCivsnbQg7Zi4DQor7J207J6s7ZmYDQor7J207LC97ZuIDQor7J206riI7IiYDQor7J20IO2biA0KK+ydtOydjOyyoA0KK+ydtOq1rOyaqQ0KK+ydtO2DnO2YuA0KK+ydtCDtm4gNCivsnbTrj4TsmrENCivsnbTsg4Hrp5ANCivsnbTqsr3ssqANCivsnbTqsIDrp6QNCivsnbTsooXsiJgNCivsnbTqt5zrp4wNCivsnbTsiJjsmKUNCivsnbTqsJDsmrANCivsnbTshLHqt7wNCivsnbTsmIHstpwNCivsnbTssqDsm5ANCivsnbTqsJHrhbgNCivsnbTshLjrtoANCivsnbTsmIHshLENCivsnbTqsr3rrLgNCivsnbTqsJHrk50NCivsnbTsg4HsiJgNCivsnbTsg4HtmZgNCivsnbTrj5ntmLgNCivsnbTqsJHshJ0NCivsnbTqsr3qsIENCivsnbTshKDtmLgNCivsnbTsmIHrs7QNCivsnbTqsJHshKANCivsnbTspIDsnKQNCivsnbTqs6DtmLgNCivsnbTsnqzquLANCivsnbTqsJHsiJgNCivsnbTtjJDsmqkNCivsnbTsooXstpgNCivsnbTsnKTquLANCivsnbTqsJHsiJwNCivsnbTsirnsobANCivsnbTsmIHtmLgNCivsnbTsmIHsiJgNCivsnbTqsJHsmqkNCivsnbTshKDsmIENCivsnbTsoJXqt7wNCivsnbTtmqjshK0NCivsnbTqsJHsmqkNCivsnbTsg4HtmLgNCivsnbTsoJDquLANCivsnbTqt7ztlZkNCivsnbTqsJHsnoQNCivsnbTrgrTsi50NCivsnbTsg4HsiJwNCivsnbTquLjrj5kNCivsnbTqsJHsnoQNCivsnbTqtJHqt6ANCivsnbTrqbTsnKgNCivsnbTsiKDqsJENCivsnbTqsJHsobANCivsnbTtg5zrtoQNCivsnbTqta3siKANCivsnbTsnqzquLANCivsnbTqsJHsobANCivsnbTquLDrj4QNCivsnbTquLDsiJwNCivsnbTtmqjtg5wNCivsnbTqsJHso7wNCivsnbTrrLTsi50NCivsnbTtg5zshK0NCivsnbTqtJHtnawNCivsnbTqsJXroKwNCivsnbTquLDsp5ENCivsnbTsiJjsiJkNCivsnbTsmIHqt5wNCivsnbTqsJXrqoUNCivsnbTsnYDsm5ANCivsnbTsg4Hsi50NCivsnbTspIDsnKgNCivsnbTqsJXshJ0NCivsnbTsnKTsiJwNCivsnbTqsr3siJgNCivsnbTssL3tnawNCivsnbTqsJXshJ0NCivsnbTshLHtmZQNCivsnbTrkZDrj5kNCivsnbTshLHtmIENCivsnbTqsJXshLgNCivsnbTtg5zsnpANCivsnbTsmIHshKANCivsnbTsnqzshK0NCivsnbTqsJXsiJgNCivsnbTrs7XsooUNCivsnbTshozqt5wNCivsnbTsnqzsm5ANCivsnbTqsJXsi50NCivsnbTrtInsiJgNCivsnbTri6zrjIANCivsnbTqsJHtlZwNCivsnbTqsJXsspwNCivsnbTsg4HsnKgNCivsnbTshLHshJ0NCivsnbTqtJHtmLgNCivsnbTqsJXtmLgNCivsnbTshLjsiJwNCivsnbTsiJjsmIENCivsnbTsnKTspJENCivsnbTqsJXtmLgNCivsnbTsmIHquLgNCivsnbTsiJjsnoQNCivsnbTsooXtm4gNCivsnbTqsJXtnawNCivsnbTquLDrs5ENCivsnbTrspTroKgNCivsnbTsoJXsiJgNCivsnbTqsJzrj5kNCivsnbTrrLTtmLgNCivsnbTquIjrj5kNCivsnbTsoJXshJ0NCivsnbTqsJzrj5kNCivsnbTsg4HsiJgNCivsnbTsg4Hsi50NCivsnbTrj5nshK0NCivsnbTqsbTqs6QNCivsnbTrs5HtmIQNCivsnbTqtoztlqUNCivsnbTrgpjssqANCivsnbTqsbTshJ0NCivsnbTqt5zsnpANCivsnbTsiJjsiJgNCivsnbTqsr3siJgNCivsnbTqsbTsmIENCivsnbTsp4Tqt6ANCivsnbTshKDshJ0NCivsnbTsnKTtmLgNCivsnbTqsbTsmKUNCivsnbTtmITrj4QNCivsnbTshKDssqANCivsnbTsmqnsmqkNCivsnbTqsbTsm4UNCivsnbTsmqnsmIENCivsnbTqsJHrtoQNCivsnbTshLHsiJwNCivsnbTqsbTtmLgNCivsnbTsmIHshJwNCivsnbTrqoXtmZgNCivsnbTsoJXtmZgNCivsnbTqsbTtnawNCivsnbTso7ztlZkNCivsnbTsnKTrsLANCivsnbTsooXtmLgNCivsnbTqsrjqsJENCivsnbTrr7jquLgNCivsnbTqtJHrp4wNCivsnbTsmIHspIANCivsnbTqsrjqsJENCivsnbTqtZDsi50NCivsnbTrs7XsmIENCivsnbTsmKXsiJwNCivsnbTqsr3qt7wNCivsnbTsgrztmZQNCivsnbTrjIDrrLgNCivsnbTrrLjsmrANCivsnbTqsr3rhbgNCivsnbTsooXtmLgNCivsnbTsooXsmrANCivsnbTsm5DtmIQNCivsnbTqsr3rj5kNCivsnbTsmbjqt5wNCivsnbTrhbjtmowNCivsnbTtmJzsmKUNCivsnbTqsr3rj5kNCivsnbTrhbjrs7UNCivsnbTsnqzsiJgNCivsnbTrqoXsoJwNCivsnbTqsr3rnoANCivsnbTssKzsoJUNCivsnbTsoJXqt6ANCivsnbTrs5Hsm5ANCivsnbTqsr3roKwNCivsnbTsmIHsl7QNCivsnbTshKDsnbQNCivsnbTsoJXsiJgNCivsnbTqsr3rp4wNCivsnbTrgqjtmowNCivsnbTsnqzrjZUNCivsnbTsnYTrp4wNCivsnbTqsr3rp4wNCivsnbTsnKTspIANCivsnbTrj5nqt7wNCivsnbTqt7zsm5ANCivsnbTqsr3rqqkNCivsnbTsoJDsmKQNCivsnbTslrjrtIkNCivsnbTrqoXtmZgNCivsnbTqsr3rrLgNCivsnbTshLHsl7ANCivsnbTsooXquLgNCivsnbTrp4zsnKQNCivsnbTqsr3rtIkNCivsnbTsoJXsp4QNCivsnbTquIjsiJwNCivsnbTstpjquLANCivsnbTqsr3shJ0NCivsnbTsmIHshJ0NCivsnbTqsr3rtoQNCivsnbTsooXroZ0NCivsnbTqsr3shJ0NCivsnbTspJHrtIkNCivsnbTrqoXshJ0NCivsnbTquLDqtIANCivsnbTqsr3shJ0NCivsnbTtg5zqt7wNCivsnbTtlZzsmqkNCivsnbTsgrzsiJkNCivsnbTqsr3shJ0NCivsnbTsiJzsooUNCivsnbTsgrzrtIkNCivsnbTsnqXsmrANCivsnbTqsr3shKANCivsnbTtnazsm5ANCivsnbTsoJDsnoQNCivsnbTrtIntmZgNCivsnbTqsr3siJgNCivsnbTshLHshLENCivsnbTsoJXshK0NCivsnbTsmIHsmrANCivsnbTqsr3siJgNCivsnbTsmrDssqANCivsnbTtjJDsiJgNCivsnbTspJHsiJwNCivsnbTqsr3siJkNCivsnbTrj5nshJ0NCivsnbTquLDssKwNCivsnbTrs7XstpwNCivsnbTqsr3siJkNCivsnbTsg4Hrk50NCivsnbTsmqnshKANCivsnbTsiJjquLANCivsnbTqsr3siJwNCivsnbTqsr3rj5kNCivsnbTsg4HtmLgNCivsnbTqtazroKwNCivsnbTqsr3siJwNCivsnbTsmKTsp4QNCivsnbTrjZXrjZUNCivsnbTtjJDquLgNCivsnbTqsr3siJwNCivsnbTshKDrs7UNCivsnbTsiJjrj5kNCivsnbTssL3rjZUNCivsnbTqsr3si50NCivsnbTsoJXsiJgNCivsnbTqsr3smqkNCivsnbTri6zrj5kNCivsnbTqsr3si50NCivsnbTsi6DqtowNCivsnbTsmIHrrLgNCivsnbTrp5DtmZgNCivsnbTqsr3slZQNCivsnbTrp4zquLANCivsnbTsiJzsiJkNCivsnbTrtInqt5wNCivsnbTqsr3smIENCivsnbTqtJHquLgNCivsnbTsooXshJ0NCivsnbTsiJzqtawNCivsnbTqsr3smKUNCivsnbQg7ZmUDQor7J206riw7ISdDQor7J207IK87IicDQor7J206rK97J20DQor7J207IiY7ZmYDQor7J207ISx7Zi4DQor7J2066qF7IiYDQor7J206rK97J6QDQor7J207IaM64+EDQor7J206rK97KeRDQor7J207ISd7IigDQor7J206rK97LacDQor7J207Jqw7J24DQor7J2067aE6rSADQor7J207KO87YOcDQor7J206rK97YOBDQor7J207KKF7IiZDQor7J2064W47YOdDQor7J206rK964+EDQor7J206rK97Zi4DQor7J207KKF7Zi4DQor7J2064+Z7IiYDQor7J207Jyk67aEDQor7J206rK97Zi4DQor7J207IK87LKgDQor7J207Z2s7Z2gDQor7J206ri47IStDQor7J206rK97Zi4DQor7J207ISx7IiYDQor7J207J247IiYDQor7J207LC97Z2sDQor7J206rK97ZuEDQor7J207YOc7KCVDQor7J207JiB7Jq0DQor7J2066eM7IOBDQor7J206rK97ZuIDQor7J2067OR7ZmNDQor7J206rK97ISdDQor7J207KO86re8DQor7J206rK97Z2sDQor7J207KKF66GdDQor7J207ZiB7KKFDQor7J207LGE7IStDQor7J206rK97Z2sDQor7J2067O17KGwDQor7J207IOB7IiYDQor7J207LCo7JiBDQor7J206rK97Z2sDQor7J207KCV7J6sDQor7J207KKF656YDQor7J207Jyg6re8DQor7J206rOE66GcDQor7J207KCV7ZiEDQor7J207Iic6riwDQor7J207IKs7JiBDQor7J206rOE66y4DQor7J206rK97ZmYDQor7J2066qF66y4DQor7J207KCV6rK9DQor7J206rOE67aEDQor7J206re87IudDQor7J207Jyk7J6FDQor7J207Zi47IOBDQor7J206rOE67aEDQor7J207JiB7JikDQor7J207KCQ6rK9DQor7J207JeF7LKgDQor7J206rOE7J6QDQor7J206rO17JWFDQor7J207Iic64+ZDQor7J207Iic6re8DQor7J206rOE7LacDQor7J207ZiE6rCVDQor7J207Lmg7JmEDQor7J207KCc6rWQDQor7J206rOE7Zi4DQor7J207JiB7ISgDQor7J207J247Je0DQor7J207J6l7J6QDQor7J206rOE7ZmNDQor7J207ZWE6rWsDQor7J207YOd6re8DQor7J207KCV6raMDQor7J206rOE7ZmUDQor7J207Jik6riwDQor7J207LaY7KGwDQor7J207Jes6rSADQor7J206rOE7ZuIDQor7J207J2Y7IudDQor7J207ZWE7IicDQor7J207Jqp7KSRDQor7J206rOg7ZuIDQor7J2066eM66a9DQor7J207YOc7LKcDQor7J207J6s6riwDQor7J206rO166eMDQor7J207LC97KCVDQor7J206rOE7YOcDQor7J207JiB7IiYDQor7J206rSA6riwDQor7J2066qF6riwDQor7J207IOB67CwDQor7J207ISx6riwDQor7J206rSA7IudDQor7J207Jyk66asDQor7J2064+Z7IiYDQor7J207IaM6ri4DQor7J206rSA7IudDQor7J207IOB7LKgDQor7J207YOc67SJDQor7J207KCV7LacDQor7J206rSA7J20DQor7J207KCQ64+ZDQor7J206rK97JuFDQor7J2066qF7J6FDQor7J206rSA7Z2sDQor7J206rec7JqpDQor7J207KeE64+EDQor7J2067OR6re8DQor7J206rSR642VDQor7J207JuQ7J28DQor7J207YOc66eMDQor7J2067aE7ZalDQor7J206rSR67CwDQor7J207IOB7IiYDQor7J2064yA6rG0DQor7J2064+Z7ZmYDQor7J206rSR7ISdDQor7J207JyE7Je0DQor7J2064Ko7IudDQor7J207IyN6re8DQor7J206rSR7ISdDQor7J207J6s7KO8DQor7J207YOc7ZiEDQor7J207IiY7JqpDQor7J206rSR7IiYDQor7J207KKF7J6sDQor7J207ISd7ISxDQor7J207IOB7J20DQor7J206rSR7IiYDQor7J207IOB67CwDQor7J207ZWc7IudDQor7J206riN7KGwDQor7J206rSR7IiYDQor7J207Iic7J6QDQor7J206rec6rK9DQor7J206riI7YOcDQor7J206rSR7IiYDQor7J2066qF67SJDQor7J207YOc6rWtDQor7J207IOB7JuQDQor7J206rSR7IiYDQor7J207Iq56rWtDQor7J2067OR7Zi4DQor7J207Ja17J6QDQor7J206rSR7IiYDQor7J207ISd7IK8DQor7J207IOB7KeEDQor7J207IiY7ZmUDQor7J206rSR7IudDQor7J2064+Z6re8DQor7J2066eM7JmEDQor7J207KeE7ZmYDQor7J206rSR7Je0DQor7J207IaM6rOkDQor7J2064+E7JuQDQor7J207IOB6recDQor7J206rSR7J28DQor7J207LCo7IudDQor7J2066qF64+ZDQor7J207YOc6riwDQor7J206rSR7J6QDQor7J2066qF7LKgDQor7J207ZWc7KO8DQor7J207Z2s6rWtDQor7J206rSR7J6sDQor7J207KKF7IiZDQor7J207KKF66+8DQor7J207IiY7Z2sDQor7J206rSR7J6sDQor7J2066eM656YDQor7J207ZW07ZWEDQor7J207KCV642VDQor7J206rSR7KGwDQor7J206riw7KSADQor7J207KKF7IicDQor7J207YOc64KoDQor7J206rSR7KGwDQor7J206riw66asDQor7J2066+47KKFDQor7J207IS47YOdDQor7J206rSR7KSADQor7J207ISx7ZWZDQor7J2067O17ISdDQor7J207LaY7ISdDQor7J206rSR7YOdDQor7J2067aE7ZmYDQor7J207Jyk7YOdDQor7J207KKF7Zi4DQor7J206rSR7ZaJDQor7J207IOB7IudDQor7J207Z2s64+EDQor7J207Iig7KGwDQor7J206rSR7Zi4DQor7J2066eM7ZWZDQor7J207Jew7YOdDQor7J206ri47LKgDQor7J206rSR7Zi4DQor7J207KKF7IigDQor7J207Jil7JqpDQor7J206rSR7Zi4DQor7J206rSR7Zi4DQor7J206riw6rSADQor7J207KeE67aADQor7J207ZWc7IiZDQor7J206rSR7Zi4DQor7J207J247JykDQor7J207J6s7JqwDQor7J20642V6rK9DQor7J206rSR7Zi4DQor7J207Iq56ri4DQor7J207Jil7Z2sDQor7J207Jyk7J28DQor7J206rSR7Zi4DQor7J2067OR7Zi4DQor7J207YOc7IStDQor7J207J6E7JqpDQor7J206rSR7Z2sDQor7J207ISx7IScDQor7J206rec7LKcDQor7J207KeE7ZuIDQor7J206rWQ7ISgDQor7J2066+47Z2sDQor7J207LaY6recDQor7J206riw7Zi4DQor7J206rWQ7KO8DQor7J207Iuk7JqxDQor7J207J6s6recDQor7J207KSA7ISdDQor7J206rWQ7KO8DQor7J207Ja46rCRDQor7J207J6s6riwDQor7J207YyQ7Je0DQor7J206rWQ7LKgDQor7J206riw67O1DQor7J207Z2l7JqpDQor7J207KKF7ZeMDQor7J206rWs67O1DQor7J207ISg64+ZDQor7J206rOE7LKgDQor7J207Jqp7JmEDQor7J206rWs7JuQDQor7J207KCV7IiYDQor7J207JiB7Je0DQor7J207Iq57YOcDQor7J206rWs7LKgDQor7J207Zi46rK9DQor7J207J2Y67O1DQor7J207Jqp7Z2sDQor7J206rWs7Zi4DQor7J2064+Z7Z2gDQor7J207JiB67aEDQor7J207IOB7IudDQor7J206rWs7ZmNDQor7J207IOB7ISgDQor7J207J6s66eMDQor7J2064KZ7IiYDQor7J206rWt6regDQor7J206rCR7J28DQor7J207ZW07JuQDQor7J2064yA7ISdDQor7J206rWt7KGwDQor7J207KSR7ZiVDQor7J2067OR64usDQor7J207IaM7LKcDQor7J206rWt7ZmYDQor7J207KeE7YOcDQor7J206riw6raMDQor7J207Jyh65GQDQor7J206rWt7Z2sDQor7J207YyQ7IiZDQor7J207KKF7ISdDQor7J207J6Q64KoDQor7J206raM64+EDQor7J207J6s67SJDQor7J207KCQ7ISxDQor7J207YOc7IudDQor7J206raM7IicDQor7J207ZWc7ZiEDQor7J207KKF7LmYDQor7J2066+46rSRDQor7J206raM7IigDQor7J206rWQ656YDQor7J207J287KeEDQor7J2064+E7ZiVDQor7J206raM7ZWcDQor7J207ZWZ64+EDQor7J207Jqp7IicDQor7J2066qF7IudDQor7J206raM7Zi4DQor7J207ZiE7IOBDQor7J207YOc6rOkDQor7J2064Ko67O1DQor7J206reA64KoDQor7J2064yA7IudDQor7J206rSR7IudDQor7J206re867O1DQor7J206reA64KoDQor7J2064+Z7JqwDQor7J206rCR7JqpDQor7J207ISx7Z2sDQor7J206reA642VDQor7J207J6s7IiZDQor7J2067OR7IicDQor7J207Iic7IudDQor7J206reA7Z2sDQor7J207J2E7J20DQor7J207JiB7JilDQor7J207KCV6rCRDQor7J206reE7IudDQor7J207IOB66qFDQor7J207J6l7ISdDQor7J207KCV7J21DQor7J206rec6rK9DQor7J207ZWZ7JqpDQor7J206rK967CwDQor7J207JiB642VDQor7J206rec64KoDQor7J207ISx7ZmYDQor7J2066eQ6recDQor7J207ISg67SJDQor7J206rec64WEDQor7J207IiY7IiYDQor7J206rCR7IiYDQor7J207Iic6rWsDQor7J206rec64u0DQor7J207JiB7IiYDQor7J207J247JqpDQor7J20642V6riwDQor7J206rec64+EDQor7J207Jil7LacDQor7J2067OR7JuQDQor7J207Iic6rOgDQor7J206rec64+IDQor7J207Iah6riwDQor7J207Jqp7ZiEDQor7J2064+Z7Je0DQor7J206rec66GADQor7J207IOB7IudDQor7J207ZmN7Je0DQor7J2067OR7ZmYDQor7J206rec66qFDQor7J2064+Z7ZWZDQor7J207KKF6re8DQor7J2064yA7ISdDQor7J206rec67O1DQor7J2065GQ7IOBDQor7J2066y47IudDQor7J207KSA6rK9DQor7J206rec67O1DQor7J207IOB7Zi4DQor7J207JaR7ZqMDQor7J207ZW07IStDQor7J206rec67aADQor7J207JuQ7JqpDQor7J2067OR7IudDQor7J207KKF6riwDQor7J206rec7IOBDQor7J207JuQ6recDQor7J207Iq57JqwDQor7J207J6s67SJDQor7J206rec7IOBDQor7J206rCR7ZeMDQor7J206rK97IiYDQor7J207ISx642VDQor7J206rec7ISdDQor7J207IOB7Zi4DQor7J206rK97Zi4DQor7J2067OR7ZuIDQor7J206rec7IStDQor7J207YOc6rWQDQor7J207JuU7JewDQor7J2064+E7YOcDQor7J206rec7IStDQor7J207J2Y7Zi4DQor7J2064+Z7KCQDQor7J207YOc7ISgDQor7J206rec7ISxDQor7J207KGw6rSADQor7J207ZW07ISgDQor7J207Iq56riwDQor7J206rec7IiZDQor7J207IOB7LaYDQor7J207Jq07LmgDQor7J207J6E7KadDQor7J206rec7JWIDQor7J207JuQ6rWwDQor7J207YOc7ZmYDQor7J207Jqp7Zi4DQor7J206rec7JilDQor7J207KeE7IudDQor7J206rK97KeEDQor7J207ISg7JqwDQor7J206rec7JilDQor7J206riw7Je0DQor7J207Ius7JikDQor7J207J286ri4DQor7J206rec7JmEDQor7J2067aA7ZmYDQor7J2066qF7J28DQor7J207ISd7ISdDQor7J206rec7JmEDQor7J206rSR7KGwDQor7J207LaY7ISgDQor7J207Jq0642VDQor7J206rec7JqpDQor7J207ISd67SJDQor7J207IiY7JqpDQor7J207JuQ6rOkDQor7J206rec7JqpDQor7J207JuQ7YOcDQor7J207ZeM65GQDQor7J207IOB64+ZDQor7J206rec7JuQDQor7J2065GQ7Zi4DQor7J207IOB6riwDQor7J2066eQ7YOcDQor7J206rec7J24DQor7J207KCV67KUDQor7J207YyQ7Ja1DQor7J207KCV67CwDQor7J206rec7KO8DQor7J207IiY7ZmYDQor7J207IiY7KeEDQor7J207KKF7IiZDQor7J206rec7KeEDQor7J207ZiE7YOcDQor7J207Iic6rK9DQor7J206rK97JqxDQor7J206rec7KeEDQor7J207Iq57ZGcDQor7J207JiB7JmEDQor7J207IOB6re8DQor7J206rec7LCsDQor7J207J6s7IiYDQor7J207KCV656ADQor7J207JiB65+JDQor7J206rec7LCsDQor7J206rec7J21DQor7J207ZWc7IiYDQor7J207Jew6recDQor7J206rec7YOcDQor7J207KCV7KO8DQor7J206re87ZW0DQor7J206rec7ZmNDQor7J206rec7YOcDQor7J207ZW07IiYDQor7J207JuQ66y4DQor7J2066qF7J6QDQor7J206rec7YOdDQor7J207J6l7J6QDQor7J207Jyk7Zi4DQor7J207IOB7ZiRDQor7J206rec7ZWcDQor7J206rWs7IicDQor7J20642V7Ja4DQor7J207Jqp7ZW0DQor7J206rec7ZiEDQor7J207KKF7JqwDQor7J207ISg7KGwDQor7J207Zi47JiBDQor7J206rec7ZmNDQor7J207Jyk7Je0DQor7J207Jqp7Z2sDQor7J207YOc7ZuIDQor7J206reg7JWUDQor7J207IiY7IOBDQor7J207IiY7JWUDQor7J207IOB7Zi4DQor7J206reg7Je0DQor7J207Zic7Z2sDQor7J207Z2s66y4DQor7J207Jyk64+ZDQor7J206reg7Zi4DQor7J207KSR7ZmUDQor7J2067SJ7KO8DQor7J207Zic66eMDQor7J206re86rCRDQor7J206rK967ORDQor7J207JiB7JiBDQor7J207LaY7IOdDQor7J206re86riwDQor7J2064+Z7JqpDQor7J2066C57IiYDQor7J2064KZ7J6sDQor7J206re86ri4DQor7J207IiY7ISgDQor7J207JiB7JqwDQor7J2066+47JiBDQor7J206re867CwDQor7J207Jyk7JuQDQor7J207LaY7IudDQor7J206rSR6ri4DQor7J206re867CxDQor7J207IOB7Zi4DQor7J2066eM6recDQor7J207Iic7JuQDQor7J206re867KUDQor7J207ZiE7ZmYDQor7J207Iic67O1DQor7J206rCR7IudDQor7J206re867O0DQor7J207Jqp7IicDQor7J207ISx7JewDQor7J207LKg67ORDQor7J206re867SJDQor7J206rec64+ZDQor7J207JiB7IigDQor7J20656Y7ZiVDQor7J206re87IScDQor7J207KCV7JuQDQor7J207ZWc66eMDQor7J207Jyk7LmYDQor7J206re87ISdDQor7J207LC97KO8DQor7J20IO2ZmA0KK+ydtO2DnOyInA0KK+ydtOq3vOyImA0KK+ydtOycpOq4sA0KK+ydtOyEseyEnQ0KK+ydtOq0ke2ZlA0KK+ydtOq3vOyYgQ0KK+ydtOyerO2WpQ0KK+ydtO2VnOyEnQ0KK+ydtOyImOyhsA0KK+ydtOq3vOyasA0KK+ydtOyCvOyIoA0KK+ydtOu2hOyDnQ0KK+ydtOyEseyImQ0KK+ydtOq3vOyasA0KK+ydtO2DnOuhgA0KK+ydtOy5oOyImA0KK+ydtO2YuOydtA0KK+ydtOq3vOyasA0KK+ydtOyaqeuMgA0KK+ydtOyIoOyDgQ0KK+ydtOqyveq4sA0KK+ydtOq3vOykgA0KK+ydtOyduOycpA0KK+ydtOunkOq3vA0KK+ydtOyYgeydvA0KK+ydtOq3vOykkQ0KK+ydtOyYgeyImQ0KK+ydtOyEuOyihQ0KK+ydtOyYge2drA0KK+ydtOq3vOyngQ0KK+ydtO2YuOyLnQ0KK+ydtOyasOyLnQ0KK+ydtOyaqe2YlQ0KK+ydtOq3vO2DnA0KK+ydtOyYgeyaqQ0KK+ydtOuPmeyaqQ0KK+ydtOyImOq2jA0KK+ydtOq3vO2DnQ0KK+ydtOyiheyImA0KK+ydtOywveydvA0KK+ydtOyZhOyaqQ0KK+ydtOq3vO2YuA0KK+ydtOqyveydtA0KK+ydtOq4sOyhsA0KK+ydtO2DnOq3nA0KK+ydtOq3vO2ZlA0KK+ydtOywve2aqA0KK+ydtOyaqe2ZmA0KK+ydtOyiheu2hA0KK+ydtOq3vO2ZqQ0KK+ydtOyEseynhA0KK+ydtOygle2YuA0KK+ydtOunueu0iQ0KK+ydtOq4iOuhgA0KK+ydtOyInOuTnQ0KK+ydtO2VnO2YuA0KK+ydtO2VnOyhsA0KK+ydtOq4iOyCvA0KK+ydtOyYpeuTnQ0KK+ydtOuqhe2YhA0KK+ydtOyYpeyEnQ0KK+ydtOq4iOyEnQ0KK+ydtOunjOyglQ0KK+ydtOyaqe2DnA0KK+ydtOyEoOyLnQ0KK+ydtOq4iOyEnQ0KK+ydtOuNleu2hA0KK+ydtOyEse2YhA0KK+ydtOuPmeqwkQ0KK+ydtOq4iOyEnQ0KK+ydtOyEseyImA0KK+ydtOuMgOq3nA0KK+ydtO2DnOunjA0KK+ydtOq4iOyEoA0KK+ydtOyiheqyvQ0KK+ydtOyEseyEuA0KK+ydtOu0ieyImA0KK+ydtOq4iOyEoA0KK+ydtOuPmeyInA0KK+ydtOyLoOyEnQ0KK+ydtOunjO2YuA0KK+ydtOq4iOyLnQ0KK+ydtOyGoeyImQ0KK+ydtOyDgeyYpQ0KK+ydtOyduOu0iQ0KK+ydtOq4iOyXsA0KK+ydtO2DnOyerA0KK+ydtOunkOyLnQ0KK+ydtOuCqO2YhA0KK+ydtOq4iOyXsA0KK+ydtOuzteyEnQ0KK+ydtOyYpe2ZmA0KK+ydtOqyve2DnQ0KK+ydtOq4iOyYpQ0KK+ydtOuMgOuzkQ0KK+ydtOyImOuCqA0KK+ydtOyEseyaqQ0KK+ydtOq4iOyYpQ0KK+ydtOqyveyLnQ0KK+ydtOyImOyInA0KK+ydtOq3nOuPmQ0KK+ydtOq4iOyekA0KK+ydtO2DnOy2nA0KK+ydtOyerOuwsA0KK+ydtOuMgOywvQ0KK+ydtOq4iOyjvA0KK+ydtOyduOyImA0KK+ydtOyasOu0iQ0KK+ydtOuPhOycpA0KK+ydtOq4iOy5mA0KK+ydtOygleyihQ0KK+ydtOygleyXsA0KK+ydtOyjvOyhsA0KK+ydtOq4sOuPmQ0KK+ydtOyZhOykgA0KK+ydtOygkOyyoA0KK+ydtOuzke2DnA0KK+ydtOq4sOuhnA0KK+ydtOyImOynhA0KK+ydtOqwkeyInA0KK+ydtO2dpeyImA0KK+ydtOq4sOunjA0KK+ydtO2aqOuCqA0KK+ydtO2DnO2ZmA0KK+ydtOqzhOywrA0KK+ydtOq4sOuqqQ0KK+ydtO2VnOyyoA0KK+ydtOyDgeyDgQ0KK+ydtOydtOyyoA0KK+ydtOq4sOuzkQ0KK+ydtOyduOqwlQ0KK+ydtOyEseq4sA0KK+ydtOuLrO2ZmA0KK+ydtOq4sOuztQ0KK+ydtOybkOyYpA0KK+ydtOuNle2YhA0KK+ydtOyiheyImQ0KK+ydtOq4sOu2hA0KK+ydtOyInOuylA0KK+ydtOyduOyjvA0KK+ydtOyDgeyLrA0KK+ydtOq4sOu5iA0KK+ydtOuzkeyEnQ0KK+ydtOq4uOyInA0KK+ydtOyerOuztA0KK+ydtOq4sOyDgQ0KK+ydtOqyve2YuA0KK+ydtOygle2YhA0KK+ydtO2DnOyYgQ0KK+ydtOq4sOyDgQ0KK+ydtO2DnOyyoA0KK+ydtOq0keu0iQ0KK+ydtOq4sO2VmQ0KK+ydtOq4sOyDgQ0KK+ydtOydvOyXsA0KK+ydtOyEseykgA0KK+ydtOydmOyInA0KK+ydtOq4sOyDnQ0KK+ydtOu0ieyasA0KK+ydtOy+jOq3nA0KK+ydtOywqOunjA0KK+ydtOq4sOyEuA0KK+ydtOyiheyEsQ0KK+ydtOybkOq3vA0KK+ydtOygleydtA0KK+ydtOq4sOyGoQ0KK+ydtOyInOuvvA0KK+ydtOygleyXtA0KK+ydtOygle2drA0KK+ydtOq4sOyInA0KK+ydtOynhO2VnA0KK+ydtOuPhO2VnA0KK+ydtOyepeyduA0KK+ydtOq4sOyInA0KK+ydtOyxhOyglQ0KK+ydtOyjvO2drA0KK+ydtOq0gO2ZlA0KK+ydtOq4sOyLnQ0KK+ydtOyDgeq3nA0KK+ydtOyepeyLnQ0KK+ydtOydmOunjA0KK+ydtOq4sOyVlA0KK+ydtO2YhOyImA0KK+ydtOyDgeyehA0KK+ydtOyiheq1rQ0KK+ydtOq4sOyXsA0KK+ydtOyxhOyyoA0KK+ydtO2DnOq3vA0KK+ydtOyxhOyInA0KK+ydtOq4sOyYgQ0KK+ydtOyYgeuPmQ0KK+ydtOuMgOyXtA0KK+ydtOyerOuztQ0KK+ydtOq4sOyYgQ0KK+ydtO2DgOyaqQ0KK+ydtOynhOyDgQ0KK+ydtOq0keyyoA0KK+ydtOq4sOyZhA0KK+ydtOycpO2VmQ0KK+ydtOybkO2drA0KK+ydtOykgOyynA0KK+ydtOq4sOyaqQ0KK+ydtOyInO2VmQ0KK+ydtOyEseyYpQ0KK+ydtOygleqzhA0KK+ydtOq4sOyasA0KK+ydtOyjvOyImA0KK+ydtOuPmeyInA0KK+ydtOy2lOuztQ0KK+ydtOq4sOybhQ0KK+ydtOy2qe2doA0KK+ydtOyEne2drA0KK+ydtOyDgeyEnQ0KK+ydtOq4sOybkA0KK+ydtOuzke2ZjQ0KK+ydtOuMgOqyvQ0KK+ydtOyYge2aqA0KK+ydtOq4sOybkA0KK+ydtOuMgOq3vA0KK+ydtOyVlOynhA0KK+ydtOy2nOuRkA0KK+ydtOq4sOyekA0KK+ydtOy2mO2drA0KK+ydtOqyve2drA0KK+ydtO2VnO2YuA0KK+ydtOq4sOyghA0KK+ydtOygleyImQ0KK+ydtO2DneuTnQ0KK+ydtOygle2drA0KK+ydtOq4sOyihQ0KK+ydtOyihe2biA0KK+ydtOq4sOyImA0KK+ydtOyImOyImQ0KK+ydtOq4sOyjvA0KK+ydtOuRkOq2jA0KK+ydtOuRkOqwkQ0KK+ydtOyDgeyImA0KK+ydtOq4sOyjvA0KK+ydtO2MkOynhA0KK+ydtO2Sjeq3vA0KK+ydtOqyveyXtA0KK+ydtOq4sOynhA0KK+ydtOu2gOyEoA0KK+ydtOyEseyekQ0KK+ydtOuMgOu0iQ0KK+ydtOq4sOywvQ0KK+ydtOygleyEnQ0KK+ydtOuzkeyXtA0KK+ydtOyynOyLnQ0KK+ydtOq4sOywvQ0KK+ydtOqwkeyImA0KK+ydtOq4sOyImA0KK+ydtOuPme2drA0KK+ydtOq4sOyyoA0KK+ydtOyDgeuPmQ0KK+ydtOy2qeunjA0KK+ydtO2MlO2biA0KK+ydtOq4sOyyoA0KK+ydtOyEseyyoA0KK+ydtOybkOyLnQ0KK+ydtOyynOyXsA0KK+ydtOq4sO2DnA0KK+ydtOygkO2DnA0KK+ydtOqwle2YuA0KK+ydtOuCmeyasA0KK+ydtOq4sO2DnA0KK+ydtOuPhO2RnA0KK+ydtOykgO2DnA0KK+ydtOyaqeq1rA0KK+ydtOq4sO2DnA0KK+ydtOqzhOyVhQ0KK+ydtO2VnO2ZmA0KK+ydtO2YuOyIoA0KK+ydtOq4sO2YuA0KK+ydtOyDge2YuA0KK+ydtO2Wieq3vA0KK+ydtOyDgeybkA0KK+ydtOq4sO2YuA0KK+ydtOuqheusuA0KK+ydtOyaseyatA0KK+ydtO2DnO2ZmA0KK+ydtOq4sO2YuA0KK+ydtOuRkOydvA0KK+ydtOunjOuCqA0KK+ydtOyEoO2YuA0KK+ydtOq4sO2ZjQ0KK+ydtOuqheykkQ0KK+ydtOuzkeykgA0KK+ydtOu2gOuMgA0KK+ydtOq4sO2ZjQ0KK+ydtOygleyImQ0KK+ydtOyihe2YhA0KK+ydtOyInOyekA0KK+ydtOq4sO2ZlA0KK+ydtOy2mOyInA0KK+ydtOyEse2YhA0KK+ydtO2DnOyXsA0KK+ydtOq4sO2ZmA0KK+ydtOy2mOyEnQ0KK+ydtOu0ieydvA0KK+ydtOygkOuhnA0KK+ydtOq4sO2biA0KK+ydtO2DnOq3nA0KK+ydtOyGjOyLnQ0KK+ydtOyiheyErQ0KK+ydtOq4uOyEnQ0KK+ydtOyasOu0iQ0KK+ydtOyLoOyXtA0KK+ydtOyYgeyhsA0KK+ydtOq4uOyEoA0KK+ydtOyihe2YuA0KK+ydtO2drO2doA0KK+ydtOuMgO2YhA0KK+ydtOq4uOyaqQ0KK+ydtO2YuOyImQ0KK+ydtOyerO2ZmA0KK+ydtOyEseyEnQ0KK+ydtOq4uOyaqQ0KK+ydtOyDgeyXvQ0KK+ydtO2VtOq4sA0KK+ydtOyerOyInA0KK+ydtOq4uOyerA0KK+ydtOuNle2ZmA0KK+ydtOyYpeuemA0KK+ydtO2drOyihQ0KK+ydtOq4uOyerA0KK+ydtOygleydkQ0KK+ydtOyasOyasQ0KK+ydtOyiheykkQ0KK+ydtOq4uOyyoA0KK+ydtOuvvOyIoA0KK+ydtOyiheyErQ0KK+ydtOydvOyYgQ0KK+ydtOq4uO2DnA0KK+ydtO2DnOyEnQ0KK+ydtOywve2ZlA0KK+ydtOynhOuqqQ0KK+ydtOq4uO2VnA0KK+ydtO2DnOyLnQ0KK+ydtOyInOuTnQ0KK+ydtO2aqO2ajA0KK+ydtOq4uO2YuA0KK+ydtOyiheyLnQ0KK+ydtOqzhOyInA0KK+ydtOq3nOuFgA0KK+ydtOq4uO2YuA0KK+ydtOyynOybkA0KK+ydtOykke2YuA0KK+ydtOuzkeykgA0KK+ydtOq4uO2ZmA0KK+ydtOyEoOyDgQ0KK+ydtOywveyEnQ0KK+ydtOuPmeyEoA0KK+ydtOq4uO2cmA0KK+ydtOyiheqyvQ0KK+ydtOycpOyaqQ0KK+ydtOykgO2XjA0KK+ydtOuCqOq4sA0KK+ydtOu2gOyLnQ0KK+ydtOyiheyYpA0KK+ydtO2DnO2VmQ0KK+ydtOuCqOq4sA0KK+ydtOuMgOq3vA0KK+ydtOyjvO2RnA0KK+ydtOydvO2YlQ0KK+ydtOuCqOuNlQ0KK+ydtOyDge2ZmA0KK+ydtOyihe2XjA0KK+ydtOyxhOq1rA0KK+ydtOuCqOyEoA0KK+ydtOq0keq1rA0KK+ydtOyerOyYgQ0KK+ydtOyerOyZhA0KK+ydtOuCqOyInA0KK+ydtOyjvOyLnQ0KK+ydtOygleu2hA0KK+ydtO2VtOyjvA0KK+ydtOuCqOyIoA0KK+ydtOyEoOugrA0KK+ydtOyYgeu2hA0KK+ydtOuqhe2drA0KK+ydtOuCqOyyoA0KK+ydtOqyveyXtA0KK+ydtOyYgeybhQ0KK+ydtO2MkOuPmQ0KK+ydtOuFuOq3vA0KK+ydtOq0keq1rA0KK+ydtOqyveyDgQ0KK+ydtO2DnOuPjA0KK+ydtOuFuOyEnQ0KK+ydtOyEseyEsQ0KK+ydtOyxhO2drA0KK+ydtOywveuwsA0KK+ydtOuFuOyihQ0KK+ydtOyjvOyasA0KK+ydtOygleunjA0KK+ydtOyYgeuRkA0KK+ydtOuLpOyInA0KK+ydtOq4sOuhnQ0KK+ydtOyDgeyIoA0KK+ydtO2ZmOuPmQ0KK+ydtOuLrOq0gA0KK+ydtO2YleycqA0KK+ydtO2MkOyXsA0KK+ydtOygle2YuA0KK+ydtOuLrOq4sA0KK+ydtOyYpeyYgQ0KK+ydtOyImOyEnQ0KK+ydtOyaqeyasQ0KK+ydtOuLrOq4sA0KK+ydtOu2hOyatA0KK+ydtOuqheujoQ0KK+ydtOuTseyjvA0KK+ydtOuLrOq4sA0KK+ydtOqzhOyVlA0KK+ydtOyatOuvvA0KK+ydtO2YhOyVlA0KK+ydtOuLrOuhgA0KK+ydtOyInO2ZmA0KK+ydtO2DnOyLnQ0KK+ydtOydgOyjvA0KK+ydtOuLrOuhnA0KK+ydtO2VtOyehA0KK+ydtOyYgeyEuA0KK+ydtOyDgeydtA0KK+ydtOuLrOu0iQ0KK+ydtOuzkeuhnQ0KK+ydtCDsmrQNCivsnbTshLHsmqkNCivsnbTri6zsgrwNCivsnbTsnbjsiJgNCivsnbTtlbTsl7ANCivsnbTtmITsiJwNCivsnbTri6zsiJgNCivsnbTsi6DsnqwNCivsnbTsg4Hrs7UNCivsnbTrr7zrjZUNCivsnbTri6zsmIENCivsnbTsiJzsl7ANCivsnbTrj5nquLANCivsnbTtlZztm4gNCivsnbTri6zsmIENCivsnbTsiJjsobANCivsnbTtmJXstpwNCivsnbTso7zqta0NCivsnbTri6zsmYQNCivsnbTsmIHtjJQNCivsnbTrp4zrr7gNCivsnbTsmKTtl4wNCivsnbTri6zsm4UNCivsnbTrqoXsp4QNCivsnbTshLjquLANCivsnbTsiJzso7wNCivsnbTri6zssL0NCivsnbTsmrDstpwNCivsnbTrtInsnbUNCivsnbTsmIHsiJgNCivsnbTri6zstIgNCivsnbTsmIHrnpgNCivsnbTsnqzrj5kNCivsnbTqsr3tmZgNCivsnbTri6ztjIwNCivsnbTsmIHtmZgNCivsnbTtnazsmrQNCivsnbTtl4zsp4QNCivsnbTri6ztj6wNCivsnbTsnbzrtoQNCivsnbTrs5HsmIENCivsnbTshLHqt5wNCivsnbTri6ztmLgNCivsnbTtlYTssL0NCivsnbTsoJXrp4wNCivsnbTsmrDqta0NCivsnbTri6ztmLgNCivsnbTsmrDrtIkNCivsnbTssqDsnYANCivsnbTsnqztmIQNCivsnbTri6ztmLgNCivsnbTssKztmLgNCivsnbTsg4HsiJgNCivsnbTrqoXsnqwNCivsnbTri6ztmLgNCivsnbTsooXsmrQNCivsnbTssqDrj4wNCivsnbTtlZzslZQNCivsnbTri6ztmZQNCivsnbTsnqXsmKUNCivsnbTqt7zqt7wNCivsnbTsiJjsnpANCivsnbTri6ztmZQNCivsnbTtlbTshLENCivsnbTsnqztlbQNCivsnbTslYjslZQNCivsnbTri6ztnLQNCivsnbTtlZzrtoQNCivsnbTsoJXsiJgNCivsnbTqsr3tnZQNCivsnbTri6ztnawNCivsnbTsiJzqt6ANCivsnbTrjIDtnawNCivsnbTrs5HsiJgNCivsnbTrjIDrs5ENCivsnbTrj5nshLENCivsnbTquLDsp4QNCivsnbTrj5nsiJgNCivsnbTrjIDshJ0NCivsnbTsmIHrn4kNCivsnbTquLDsspwNCivsnbTsspzrjZUNCivsnbTrjIDshLENCivsnbTsiJzsmrANCivsnbTquLDsiJwNCivsnbTslrXsiJgNCivsnbTrjIDshLENCivsnbTslpHsl7ANCivsnbTsm5Drp4wNCivsnbTsoJDsmYQNCivsnbTrjIDshLgNCivsnbTrs5Hrn4kNCivsnbTqta3tlYQNCivsnbTrs5Hrs5ENCivsnbTrjIDshLgNCivsnbTsp4Trs7UNCivsnbTtl4zquLANCivsnbTtg5zsmrANCivsnbTrjIDsi50NCivsnbTsnbjrs7UNCivsnbTshJ3qsr0NCivsnbTtmLjsp4QNCivsnbTrjIDsi50NCivsnbTrj5nqt7wNCivsnbTtlbTsi50NCivsnbTtg53siJwNCivsnbTrjIDsmqkNCivsnbTquLDsl7ANCivsnbTtmJXqt5wNCivsnbTsl7DsmrENCivsnbTrjIDsmrANCivsnbTtmLjrs7UNCivsnbTsoJXrpr0NCivsnbTrs5Hsl7ANCivsnbTrjIDsmrANCivsnbTsi5zshK0NCivsnbTrs5HsmqkNCivsnbTshLHtnawNCivsnbTrjIDsmrANCivsnbTrjIDtmIQNCivsnbTso7zsmYQNCivsnbTtlZnsmrANCivsnbTrjIDsm5ANCivsnbTshJ3tmY0NCivsnbTsp4TsiJwNCivsnbTrtInsmIENCivsnbTrjIDtla0NCivsnbTsg4HqtawNCivsnbTrkZDsmKQNCivsnbTsm5DsiJgNCivsnbTrjIDtm4gNCivsnbTqta3si50NCivsnbTrtInrhbgNCivsnbTsnbzslaANCivsnbTrjIDtm4gNCivsnbTslrjso7wNCivsnbTshLjsnpANCivsnbTsi6Dsi50NCivsnbTrjIDtnawNCivsnbTtl4zqt7wNCivsnbTsp4TstpwNCivsnbTrgqjslrUNCivsnbTrjZXrgqgNCivsnbTrs7XqtowNCivsnbTrp5Dsl7ANCivsnbTtmZTsm5ANCivsnbTrjZXrhZUNCivsnbTsvozrjZUNCivsnbTsiJztlbQNCivsnbTsmIHsnpANCivsnbTrjZXrnpgNCivsnbTrrLjqt5wNCivsnbTsiJzsiJgNCivsnbTqsr3snKQNCivsnbTrjZXrsLANCivsnbTsiJjsmIENCivsnbTtg5zsi50NCivsnbTrp5DtmLgNCivsnbTrjZXrtIkNCivsnbTshKDrgqgNCivsnbTsoJXssKwNCivsnbTsoJXsiJgNCivsnbTrjZXrtIkNCivsnbTtlbTqsJENCivsnbTsooXtnawNCivsnbTsoJXtmZQNCivsnbTrjZXsg4ENCivsnbTso7zsiJwNCivsnbTtmITrj4QNCivsnbTtg5zsiJwNCivsnbTrjZXshJ0NCivsnbTtg5ztmZgNCivsnbTsnbzrjZUNCivsnbTsm5DtmIQNCivsnbTrjZXsiJwNCivsnbTsmIHsmqkNCivsnbTrjZXrgqgNCivsnbTso7zrs7UNCivsnbTrjZXsiJwNCivsnbTssKzssKwNCivsnbTrjZXtmZgNCivsnbTsooXrprwNCivsnbTrjZXsiJwNCivsnbTrj5nsnpANCivsnbTrr7jsnpANCivsnbTrtInsg4ENCivsnbTrjZXsmIENCivsnbTsp4Tsl7ANCivsnbTsp4Trj5kNCivsnbTtlZzsobANCivsnbTrjZXsmqkNCivsnbTrjZXslaANCivsnbTsm5DsnbQNCivsnbTshozsmrANCivsnbTrjZXsnKQNCivsnbTtg5zsiJgNCivsnbTsmKXslaANCivsnbTsmIHtmZgNCivsnbTrjZXsnqwNCivsnbTtlbTtl4wNCivsnbTsoJDsnbgNCivsnbTsp4DspIANCivsnbTrjZXtmJUNCivsnbTsmqnsnpANCivsnbTrhbjsiJgNCivsnbTsnqztlqUNCivsnbTrjZXtmLgNCivsnbTrjIDsiJgNCivsnbTsoJXsiJwNCivsnbTqtJHrspQNCivsnbTrjZXtmZgNCivsnbTqta3shLgNCivsnbTso7zrj5kNCivsnbTsg4Hsl7QNCivsnbTrjZXtnawNCivsnbTsmrDtmIQNCivsnbTssKjsnKgNCivsnbTsmIHshJ0NCivsnbTrjZXtnawNCivsnbTsg4Hso7wNCivsnbTsp4TtmZgNCivsnbTrgqjrjZUNCivsnbTrj4TquLANCivsnbTquLjshLENCivsnbTqtJHsp4QNCivsnbTsnqzsm4UNCivsnbTrj4TshJ0NCivsnbTtg5zsnbwNCivsnbTsiJztmqgNCivsnbTrj5ntmZgNCivsnbTrj4TshJ0NCivsnbTsiJzrjZUNCivsnbTshLjshKANCivsnbTsnqztlZgNCivsnbTrj4TsiJgNCivsnbTrjIDsiJgNCivsnbTrj5nsmIENCivsnbTsg4Hsl7QNCivsnbTrj4Tsm5ANCivsnbTsmIHrprwNCivsnbTsp4TsnKQNCivsnbTsooXtg4ENCivsnbTrj4TtmZgNCivsnbTrj4TtnawNCivsnbTsiJjtmZgNCivsnbTtlZzsmrANCivsnbTrj4jstpgNCivsnbTsg4Hsl7ANCivsnbTsiJztmIQNCivsnbTrs5HtmLgNCivsnbTrj5nqsbQNCivsnbTsmqnqsJUNCivsnbTsm5DsnqwNCivsnbTsnqzspIANCivsnbTrj5nqt5wNCivsnbTtg5zrjZUNCivsnbTrgqjsiJwNCivsnbTsmIHsiJwNCivsnbTrj5nqt6ANCivsnbTsnqzsooUNCivsnbTrkZDslYUNCivsnbTshJ3sl7QNCivsnbTrj5nqt6ANCivsnbTsmIHtmLgNCivsnbTri6zrp4wNCivsnbTtmITrk50NCivsnbTrj5nrhZUNCivsnbTtmITtmLgNCivsnbTsiJjtg5wNCivsnbTsmrDtmIQNCivsnbTrj5nrjIANCivsnbTslpHssqANCivsnbTrj5ntmZgNCivsnbTsgrDsoJANCivsnbTrj5nrp4wNCivsnbTtmJzqsJUNCivsnbTtg5zsmqkNCivsnbTso7zsiJgNCivsnbTrj5nrsJwNCivsnbTtjJDsg4ENCivsnbTshKDsiJgNCivsnbTsnbjsm4UNCivsnbTrj5nrtIkNCivsnbTsnqzqtowNCivsnbTsuZjtlZkNCivsnbTtnazshKANCivsnbTrj5nshJ0NCivsnbTsg4HtmLgNCivsnbTqtJHsp4ENCivsnbTsmKXsnbUNCivsnbTrj5nshJ0NCivsnbTsnbztmLgNCivsnbTtlbTtmqgNCivsnbTsnKTsnpANCivsnbTrj5nshJ0NCivsnbTsoJXqtawNCivsnbTrj4jtlZkNCivsnbTssKzsmrANCivsnbTrj5nsiJgNCivsnbTsnYDrk50NCivsnbTrtoDsmKUNCivsnbTsnqzqtJENCivsnbTrj5nsiJwNCivsnbTssYTquLgNCivsnbTsoJXrjZUNCivsnbTqt5ztmZgNCivsnbTrj5nsl7QNCivsnbTsg4HsnbgNCivsnbTrgpnsiJgNCivsnbTsnbjtm4gNCivsnbTrj5nsmKUNCivsnbTsg4HtmZgNCivsnbTslpHsiJgNCivsnbTsmIHshJ0NCivsnbTrj5nsmrANCivsnbTrjZXtnawNCivsnbTqsr3qta0NCivsnbTssKjqtawNCivsnbTrj5nsmrQNCivsnbTsoJXsi50NCivsnbTsmKTtl4wNCivsnbTshLHsmIENCivsnbTrj5nsm5ANCivsnbTsp4DspIANCivsnbTsoJXqsr0NCivsnbTtg5zssqANCivsnbTrj5nsm5ANCivsnbTrj5ntnawNCivsnbTsnqzsi60NCivsnbTqtJHrjIANCivsnbTrj5nsm5ANCivsnbTsmqntnawNCivsnbTqt5zsiJgNCivsnbTsmIHsnbgNCivsnbTrj5nso7wNCivsnbTtg5ztmLgNCivsnbTshLHtmLgNCivsnbTsm5DsnKQNCivsnbTrj5nssKwNCivsnbTsmIHqt5wNCivsnbTrp4ztmLgNCivsnbTqsr3rj4QNCivsnbTrj5nsspwNCivsnbTrjIDsi50NCivsnbTsnoTshK0NCivsnbTrk53tg5wNCivsnbTrj5nssqANCivsnbTsmIHsiKANCivsnbTrp4ztmY0NCivsnbTsg4HtlbQNCivsnbTrj5nssqANCivsnbTsnbztmLgNCivsnbTqsr3siJwNCivsnbTqsr3quLANCivsnbTrj5nssqANCivsnbTsp4Trr7gNCivsnbTsg4HqtIANCivsnbTsmIHsl7QNCivsnbTrj5nstpgNCivsnbTsnqXsiJgNCivsnbTsiJzsmKUNCivsnbTqtJHsmKUNCivsnbTrj5nstpgNCivsnbTshoztmIQNCivsnbTtjJDsp4QNCivsnbTshLHsnbQNCivsnbTrj5ntg5wNCivsnbTssKjrj4QNCivsnbTsgrzsl7QNCivsnbTsm4Xqt7wNCivsnbTrj5ntg5wNCivsnbTrrLTsmKUNCivsnbTtmJXroZ0NCivsnbTsmqnrpqwNCivsnbTrj5ntlZkNCivsnbTsnbjtmZgNCivsnbTsnbjsmqkNCivsnbTrgqjshK0NCivsnbTrj5ntlbQNCivsnbTsmIHsnpANCivsnbTshLHsnqwNCivsnbTsoJXqta0NCivsnbTrj5ntl4wNCivsnbTqsr3tg5wNCivsnbTtmY3tmIQNCivsnbTrjIDsi50NCivsnbTrj5ntl4wNCivsnbTsnqzsoJwNCivsnbTsnKTsmqkNCivsnbTrr7jqtJENCivsnbTrj5ntmLgNCivsnbTsnoTsobANCivsnbTsi53sg4kNCivsnbTsnqXrgqgNCivsnbTrj5ntmLgNCivsnbTsmIHtlbQNCivsnbTtlbTsmKUNCivsnbTtnazssL0NCivsnbTrj5ntm4gNCivsnbTsp4TtmLgNCivsnbTsmqnstpwNCivsnbTsg4HshKANCivsnbTrj5ntm4gNCivsnbTrtInshK0NCivsnbTtg5ztmLgNCivsnbTtg5zqsr0NCivsnbTrkZDsl7QNCivsnbTsl7Dtg5wNCivsnbTrp5Drj4wNCivsnbTtmZTsnbgNCivsnbTrkZDsm5ANCivsnbTsoJDsm5ANCivsnbTssL3rjZUNCivsnbTsiJjrqqkNCivsnbTrkZDsm5ANCivsnbTsg4HshLENCivsnbTsnqzspIANCivsnbTrp4zsi50NCivsnbTrkZDsnbQNCivsnbTtlZnrqqkNCivsnbTrs5HsiJgNCivsnbTsiJztmY0NCivsnbTrkZDtmIQNCivsnbTsoJXsiJgNCivsnbTsooXsnbwNCivsnbTsmIHstpgNCivsnbTrkZDtmLgNCivsnbTsoJXrtoQNCivsnbTsiJjsiJwNCivsnbTtmITsi50NCivsnbTrkZDtmZgNCivsnbTsg4HrtoANCivsnbTsm4XsmYQNCivsnbTqsbTqtowNCivsnbTrkZDtnawNCivsnbTsmIHsm5ANCivsnbTstpTtg5wNCivsnbTshLHsl7QNCivsnbTrk53smrANCivsnbTsiJzshLENCivsnbTsmIHrj4QNCivsnbTsmIHsmqkNCivsnbTrk53stpgNCivsnbTtg5zqtZANCivsnbTsiJjsm4UNCivsnbTsooXqs6QNCivsnbTrnoDsiJwNCivsnbTsiJjsi50NCivsnbTsmKTsi50NCivsnbTsnKTsm5ANCivsnbTrnpjsl7ANCivsnbTsnKTqt6ANCivsnbTsl7DshLENCivsnbTqsr3smrANCivsnbTrn4nqt6ANCivsnbTsmIHqsJANCivsnbTsooXro6ENCivsnbTsirnqt7wNCivsnbTrpqzsnpANCivsnbTsmKXsg50NCivsnbTshKDqsr0NCivsnbTshLHssL0NCivsnbTrp4zqsr0NCivsnbTssqDqt7wNCivsnbTrkZDspIANCivsnbTsg4Hrj5kNCivsnbTrp4zqt5wNCivsnbTrqoXtnLQNCivsnbTtg53ssqANCivsnbTtg5zrnpgNCivsnbTrp4zquLANCivsnbTsmqnsm5ANCivsnbTsgrzrhbgNCivsnbTstpjsnbwNCivsnbTrp4zrj4QNCivsnbTrqoXtmLgNCivsnbTshLHtnLQNCivsnbTsoJXsnKQNCivsnbTrp4zshJ0NCivsnbTsiJjsg4ENCivsnbTsiJztlZkNCivsnbTssL3rqqgNCivsnbTrp4zshJ0NCivsnbTssKjsiJkNCivsnbTrtInrgqgNCivsnbTstpjsmqkNCivsnbTrp4zsiJgNCivsnbTsnKTso7wNCivsnbTsooXtmZgNCivsnbTsooXsiJgNCivsnbTrp4zsiJgNCivsnbTtmLjsp4QNCivsnbTsmIHsm5ANCivsnbTsnZjtl4wNCivsnbTrp4zsiJwNCivsnbTtmLjsnqwNCivsnbTsoJXrrLgNCivsnbTsmIHqtawNCivsnbTrp4zsmqkNCivsnbTshJ3tmZgNCivsnbTsgrztl4wNCivsnbTsnbXsooUNCivsnbTrp4zsmqkNCivsnbTsnbzsoJUNCivsnbTshozsiJgNCivsnbTsnKDslZQNCivsnbTrp4zsm5ANCivsnbTsiJjrk50NCivsnbTtl4zsiKANCivsnbTsnqzshLENCivsnbTrp4zsm5ANCivsnbTrkZDtnJgNCivsnbTshKDqtowNCivsnbTsmqnso7wNCivsnbTrp4zsm5ANCivsnbTssqDsiJwNCivsnbTsnqXrp4wNCivsnbTqtozsmrQNCivsnbTrp4zsm5ANCivsnbTtg5ztm4gNCivsnbTsoJDsoJUNCivsnbTtmITsmKQNCivsnbTrp4zsm5ANCivsnbTsmKXtmY0NCivsnbTssKjsmrQNCivsnbTshJ3tg5wNCivsnbTrp4zsobANCivsnbTtlZzqt5wNCivsnbTrs5HrrLgNCivsnbTtmLjrnpENCivsnbTrp4zsp4QNCivsnbTsirnssqANCivsnbTsmqnrnoANCivsnbTsiJzsnpANCivsnbTrp4ztmZQNCivsnbTtmLjsiKANCivsnbTrs5HsmrQNCivsnbTrj5nqtowNCivsnbTrp4ztmqgNCivsnbTsnqzshKANCivsnbTshozsiJgNCivsnbTrs5HrjZUNCivsnbTrp5DrrLgNCivsnbTsg4HsnpANCivsnbTrrLjtmLgNCivsnbTstpTsmrENCivsnbTrp5DrtoQNCivsnbTquLDtg5wNCivsnbTquIjsl7ANCivsnbTqtJHsp4ANCivsnbTrp5DsiJkNCivsnbTtmY3tmLgNCivsnbTsgrztmZQNCivsnbTrqoXsiJgNCivsnbTrp5DsiJwNCivsnbTsoJXsm4UNCivsnbTsmrTsnbwNCivsnbTsl7DtmJwNCivsnbTrp5DsiKANCivsnbTsg4HrsLANCivsnbTrgqjsp4QNCivsnbTsooXquLANCivsnbTrp5Dsl6wNCivsnbTsnYTsmqkNCivsnbTsmIHtnawNCivsnbTshLHsnbQNCivsnbTrp5DsnoQNCivsnbTrjZXsmIENCivsnbTrs5HspIANCivsnbTsmIHqt6ANCivsnbTrp5DspIANCivsnbTsiJjqtJENCivsnbTsoJDso7wNCivsnbTsoJXqtowNCivsnbTrp5Dtg5wNCivsnbTqsJXrjZUNCivsnbTsooXquLANCivsnbTsmqnsnpANCivsnbTrp7nsiJgNCivsnbTsnqzsi50NCivsnbTsp4TsiJwNCivsnbTtl4zshKANCivsnbTrqbTquLANCivsnbTsoJXsmqkNCivsnbTsi6DsiJwNCivsnbTtg5zqta0NCivsnbTrqbTsmrANCivsnbTrtInssqANCivsnbTrp4zsmYQNCivsnbTtnazsi50NCivsnbTrqbTtnawNCivsnbTsp4TsnbQNCivsnbTsnYDsiJgNCivsnbTqtJHso7wNCivsnbTrqoXqt7wNCivsnbTquLjso7wNCivsnbTsmYTqs4QNCivsnbTrp4ztnawNCivsnbTrqoXquLANCivsnbTquLDsmIENCivsnbTrs5Htg4ENCivsnbTsl7DtkZwNCivsnbTrqoXquLANCivsnbTrtInslpENCivsnbTsnqztmLgNCivsnbTrp5DtnawNCivsnbTrqoXrgqgNCivsnbTsnqzqsr0NCivsnbTshLHstpgNCivsnbTshLHtlZgNCivsnbTrqoXrjIANCivsnbTsooXsiJkNCivsnbTsiJjquLgNCivsnbTsooXtg5wNCivsnbTrqoXshJ0NCivsnbTtmJXquLANCivsnbTsp4TssqANCivsnbTrp4zqt7wNCivsnbTrqoXshKANCivsnbTsooXsiJwNCivsnbTtg5zshK0NCivsnbTsooXtmZgNCivsnbTrqoXshKANCivsnbTsiJjsiJgNCivsnbTqtJHsobANCivsnbTsoJXtg5wNCivsnbTrqoXshK0NCivsnbTsooXsmqkNCivsnbTsoJXsmrANCivsnbTrj5nqt5wNCivsnbTrqoXshLENCivsnbTquLDsmrENCivsnbTquLjshJ0NCivsnbTrtInqt7wNCivsnbTrqoXshLgNCivsnbTsnZjrkZANCivsnbTqsr3sg50NCivsnbTshJ3suaANCivsnbTrqoXsiJgNCivsnbTrjIDtmZgNCivsnbTsmqntmLgNCivsnbTrs5Hqs6QNCivsnbTrqoXsiJgNCivsnbTrj5nrtoQNCivsnbTtjJDssqANCivsnbTsmIHquLgNCivsnbTrqoXsiJgNCivsnbTqt4DrgqgNCivsnbTsiJjrr7gNCivsnbTqsr3shJ0NCivsnbTrqoXsiJkNCivsnbTshLHtg5wNCivsnbTtlbTsiJkNCivsnbTqsr3rnb0NCivsnbTrqoXsiJkNCivsnbTshLHrpqwNCivsnbTsmIHsobANCivsnbTspIDsnbQNCivsnbTrqoXsiJwNCivsnbTrrLTtm4gNCivsnbTtmqjtlZkNCivsnbTsoJXtg5wNCivsnbTrqoXsiJwNCivsnbTqsr3snpANCivsnbTsiJzrj5kNCivsnbTrk7Hsi50NCivsnbTrqoXsiKANCivsnbTqtJHsm4UNCivsnbTsnbTsobANCivsnbTsnKTrj4wNCivsnbTrqoXsiKANCivsnbTshKDsmrANCivsnbTssqDqta0NCivsnbTsiJzsnpANCivsnbTrqoXsiKANCivsnbTsg4HrtoQNCivsnbTrtIntmLgNCivsnbTshLHrtpUNCivsnbTrqoXslaANCivsnbTquIjqs6QNCivsnbTquLDrk50NCivsnbTrqoXrrLgNCivsnbTrqoXsl7ANCivsnbTssKjsiJwNCivsnbTsmqntmZgNCivsnbTqt5zshLENCivsnbTrqoXsmKQNCivsnbTrrLjtmZgNCivsnbTsg4HstpwNCivsnbTquLDrj5kNCivsnbTrqoXsmKQNCivsnbTrsKnsiJkNCivsnbTrp5DsmIENCivsnbTtg5zsiJgNCivsnbTrqoXsmKQNCivsnbTsmIHquLANCivsnbTtl4zrqqkNCivsnbTsg4HsnbQNCivsnbTrqoXsm5ANCivsnbTsl7DtnawNCivsnbTsnYDspIANCivsnbTsiJjtj6wNCivsnbTrqoXsnqwNCivsnbTrp5DssKwNCivsnbTrs5Hrk50NCivsnbTstpjtmJUNCivsnbTrqoXsobANCivsnbTshLHsmIENCivsnbTqtJHsnKQNCivsnbTsoJDqtawNCivsnbTrqoXsp4QNCivsnbTqsr3ssKwNCivsnbTsg4HsmrANCivsnbTri6zsmqkNCivsnbTrqoXtlZkNCivsnbTshLHsiJkNCivsnbTshLHquLANCivsnbTsnKTsnKQNCivsnbTrqoXtmLgNCivsnbTrr7jsnbwNCivsnbTsmKTsiJgNCivsnbTrgqjqt6ANCivsnbTrqoXtmLgNCivsnbTsg4HqtowNCivsnbTsiJjtnawNCivsnbTsoJXtnawNCivsnbTrqoXtmZgNCivsnbTsmIHsi50NCivsnbTrp4zshLENCivsnbTqt5zqs6QNCivsnbTrqoXtmZgNCivsnbTquLDrsLANCivsnbTshLHsnqwNCivsnbTshLHssKwNCivsnbTrqoXtmZgNCivsnbTshLHshK0NCivsnbTsg4HsmqkNCivsnbTtlbTsoJUNCivsnbTrqoXtmZgNCivsnbTqsJXtg5wNCivsnbTsooXri6wNCivsnbTsiJjsiJgNCivsnbTrqoXtnawNCivsnbTsnZHsi50NCivsnbTsg4HsiKANCivsnbTsnbjrrLgNCivsnbTrqoXtnawNCivsnbTsnKTshK0NCivsnbTrrLjsi50NCivsnbTtnJjrqqkNCivsnbTrqoXtnawNCivsnbTrqoXsi50NCivsnbTsp4TshLENCivsnbTsmIHsiJgNCivsnbTrqoXtnawNCivsnbTsmIHsl7ANCivsnbTqsJXsnKQNCivsnbTsnqztmZgNCivsnbTrqqjshKQNCivsnbTssL3qt5wNCivsnbTtlZzsnpANCivsnbTquLDri6wNCivsnbTrrJjquIgNCivsnbTqt4TsmIENCivsnbTqt7nsi50NCivsnbTrrLTsmqkNCivsnbTrrLTqt7wNCivsnbTsiJjquLgNCivsnbTssqDsiJgNCivsnbTrjIDsgrwNCivsnbTrrLTsg50NCivsnbTsoJXshLENCivsnbTsmIHsiJgNCivsnbTrjZXqt5wNCivsnbTrrLTshKANCivsnbTsmIHsmqkNCivsnbTsmIHtg5wNCivsnbTtlbTsiJkNCivsnbTrrLTshLENCivsnbTrj5nsnbwNCivsnbTshLHssL0NCivsnbTrsLHtmZQNCivsnbTrrLTsiJwNCivsnbTsmqnsnpANCivsnbTsooXshJ0NCivsnbTsiJjsnZENCivsnbTrrLTsiJwNCivsnbTquLjsl4UNCivsnbTsiJztl4wNCivsnbTsg4HsmKUNCivsnbTrrLTsmIENCivsnbTsnbjrnoANCivsnbTsnqzsnpANCivsnbTssKjsgrwNCivsnbTrrLTsmrANCivsnbTsmIHquLANCivsnbTsmKXsuaANCivsnbTsnbzsnbUNCivsnbTrrLTsm4UNCivsnbTsp4DtmLgNCivsnbTtmITtmowNCivsnbTsnqzsi50NCivsnbTrrLTsnbwNCivsnbTsoJXsi50NCivsnbTsnqzshJ0NCivsnbTsmqnsmrANCivsnbTrrLTsnoQNCivsnbTshLHquLgNCivsnbTsp4DsmqkNCivsnbTtl4ztmIQNCivsnbTrrLTsspwNCivsnbTtl4zsnbgNCivsnbTtnazqtowNCivsnbTqta3snYANCivsnbTrrLTtmIQNCivsnbTsmIHso7wNCivsnbTsuZjrj5kNCivsnbTssL3tmZgNCivsnbTrrLTtmIQNCivsnbTquLjquLANCivsnbTrr7jtnawNCivsnbTsoJXrjZUNCivsnbTrrLTtmLgNCivsnbTrgqjrs7UNCivsnbTsmIHtmZgNCivsnbTspIDsmrANCivsnbTrrLTtmLgNCivsnbTsoJXtmY0NCivsnbTsiJztg50NCivsnbTsiJntmJUNCivsnbTrrLTtmLgNCivsnbTsmIHsnpANCivsnbTrj5ntmIQNCivsnbTrtoDrj5kNCivsnbTrrLTtmZgNCivsnbTsnbjsiJgNCivsnbTtlbTshKANCivsnbTsooXsmqkNCivsnbTrrLjqsJENCivsnbTrjZXsiJgNCivsnbTsmIHssqANCivsnbTsmrDsg4ENCivsnbTrrLjsi50NCivsnbTtg5zsg4ENCivsnbTqt5zrr7wNCivsnbTsg4HtmZgNCivsnbTrrLjsnpANCivsnbTrqoXsmYQNCivsnbTtg5ztmIQNCivsnbTsp4TtlokNCivsnbTrrLjstpwNCivsnbTsmIHtnawNCivsnbTqsr3tmZgNCivsnbTrrLTsiJwNCivsnbTrrLjtg5wNCivsnbTquLDsnqwNCivsnbTsooXqt5wNCivsnbTsooXshJ0NCivsnbTrrLjtmLgNCivsnbTssL3sm5ANCivsnbTsmIHssqANCivsnbTrs5HquLANCivsnbTrrLjtmLgNCivsnbTstpjqt5wNCivsnbTsmqntmLgNCivsnbTrs5HshKANCivsnbTrr7jqsr0NCivsnbTrr7zrj5kNCivsnbTsoJDtmZgNCivsnbTsmqnrsLANCivsnbTrr7jqsr0NCivsnbTsoJXrnoANCivsnbTrp4zssqANCivsnbTtmY3tmIQNCivsnbTrr7jqsr0NCivsnbTri6zssKwNCivsnbTshLHrp4wNCivsnbTsg4Hqt5wNCivsnbTrr7jshKANCivsnbTsmKXtm4gNCivsnbTqsr3tmLgNCivsnbTrp4zsi50NCivsnbTrr7jsiJkNCivsnbTtmLjsg4ENCivsnbTsg4HsmqkNCivsnbTsmZXsmrANCivsnbTrr7jsiJkNCivsnbTrp4zstpwNCivsnbTsg4HrspQNCivsnbTrjIDtnawNCivsnbTrr7jsiJwNCivsnbTsiJjtmZQNCivsnbTrjIDqt5wNCivsnbTsiJjsiJgNCivsnbTrr7jsm5ANCivsnbTshLHtmIQNCivsnbTsnbjshLENCivsnbTsmIHsiJkNCivsnbTrr7jsnpANCivsnbTsnbjshJ0NCivsnbTsooXslYgNCivsnbTsiJjsiJgNCivsnbTrr7jsnqwNCivsnbTstpjrtoQNCivsnbTsoJXsiJgNCivsnbTrrLjtm4gNCivsnbTrr7jtmIQNCivsnbTsi53snpANCivsnbTssL3rqoUNCivsnbTqtJHsm5ANCivsnbTrr7jtmIQNCivsnbTrjIDtnawNCivsnbTrtIntg4ENCivsnbTsnKTqtbANCivsnbTrr7zsmqkNCivsnbTsooXrjIANCivsnbTsnqzqtJENCivsnbTtg5ztmZQNCivsnbTrr7zsmrANCivsnbTrs7XqtawNCivsnbTsg4Hqt5wNCivsnbTsnqztmZgNCivsnbTrr7zsnqwNCivsnbTsmIHstpwNCivsnbTrj5nrjZUNCivsnbTsoJXsm4UNCivsnbTrr7zspIANCivsnbTrrLTsmqkNCivsnbTqtJHrqqgNCivsnbTrjZXsm5ANCivsnbTrr7zssqANCivsnbTtmY3smrANCivsnbTso7zquLgNCivsnbTso7zsiJgNCivsnbTrr7ztmLgNCivsnbTrtInrj5kNCivsnbTshKDsi50NCivsnbTrj5nro6ENCivsnbTrr7ztmZgNCivsnbTquLDrk50NCivsnbTsmIHshKANCivsnbTsiJztlZwNCivsnbTrsKnrgqgNCivsnbTtl4ztnawNCivsnbTshozsnpANCivsnbTssKjspIANCivsnbTrsKnsi6QNCivsnbTssL3ssqANCivsnbTtlZzsiJgNCivsnbTsg4HtmIQNCivsnbTrsKnsmrANCivsnbTtmY3spIANCivsnbTqt5zsl7QNCivsnbTsooXsi50NCivsnbTrspQNCivsnbTsnoQNCivsnbTsg4ENCivsnbTrjIANCivsnbTrspTqsr0NCivsnbTsmIHtlZwNCivsnbTsirnsl7QNCivsnbTqs4TroKgNCivsnbTrspTshLgNCivsnbTsmIHtg5wNCivsnbTrj4TrjZUNCivsnbTsoJXso7wNCivsnbTrspTshLgNCivsnbTsg4Htg50NCivsnbTsg4Hrk50NCivsnbTrs5HstpwNCivsnbTrspTshLgNCivsnbTsmIHtg5wNCivsnbTsg4HqtowNCivsnbTsnKTsiJwNCivsnbTrspTsiJwNCivsnbTtg5zqtowNCivsnbTrj5nroKwNCivsnbTtg5zsiJkNCivsnbTrspTsi50NCivsnbTrtIntmLgNCivsnbTtmY3tmZgNCivsnbTsnoTrhZUNCivsnbTrspTsmrANCivsnbTstpjsiJkNCivsnbTsmqnsnbwNCivsnbTsoJXshJ0NCivsnbTrspTsnbQNCivsnbTsiJzsmqkNCivsnbTrtInsiJgNCivsnbTtnazsl7QNCivsnbTrspTtg50NCivsnbTshLHsiJwNCivsnbTsiJjshJ0NCivsnbTssqDsmqkNCivsnbTrs5HqsbgNCivsnbTsnKTqt7wNCivsnbTsmrTslYQNCivsnbTrj5nsnZgNCivsnbTrs5Hqta0NCivsnbTshJ3qtowNCivsnbTsmIHsmrANCivsnbTqsr3smIENCivsnbTrs5Hqta0NCivsnbTsnbjrs7UNCivsnbTshLHsmqkNCivsnbTtmJzshLENCivsnbTrs5HqtowNCivsnbTshozshJ0NCivsnbTsmIHsnbQNCivsnbTsnbjstpgNCivsnbTrs5HqtowNCivsnbTsooXsl7ANCivsnbTqta3rjIANCivsnbTsnqzqtawNCivsnbTrs5Hqt5wNCivsnbTsiJjrtoANCivsnbTrs5HtmLgNCivsnbTrjIDsiJgNCivsnbTrs5Hqt5wNCivsnbTsoJXrtoQNCivsnbTsnbTsi50NCivsnbTrp4ztj4kNCivsnbTrs5Hqt7kNCivsnbTsoJXsmrANCivsnbTsnYTqt5wNCivsnbTsiJjtmLgNCivsnbTrs5Hqt7kNCivsnbTsg4HssqANCivsnbTqsbTsmIENCivsnbTsm5Tsp4QNCivsnbTrs5HquLgNCivsnbTtlZzrs5ENCivsnbTsoJXsm5ANCivsnbTshJ3rjZUNCivsnbTrs5Hrk50NCivsnbTrqoXsiJgNCivsnbTtmqjsnbUNCivsnbTso7zso7wNCivsnbTrs5HrrLQNCivsnbTsoJXsmrANCivsnbTtg5ztg5wNCivsnbTshJ3qt7wNCivsnbTrs5HsgrwNCivsnbTtjJDsmIENCivsnbTsnqztmZgNCivsnbTsm5DtmLgNCivsnbTrs5HshKANCivsnbTspIDtnawNCivsnbTtg5zshJ0NCivsnbTqtJHquLANCivsnbTrs5HshowNCivsnbTrrLjtmIQNCivsnbTstpjrkZANCivsnbTri6ztmLgNCivsnbTrs5HsiJgNCivsnbTshLHsooUNCivsnbTrgpzrs7UNCivsnbTsnbztnawNCivsnbTrs5Hsi50NCivsnbTssL3smIENCivsnbTsmqnsnbwNCivsnbTssL3shJ0NCivsnbTrs5HsmKUNCivsnbTsoJXtmIQNCivsnbTsoJXrhYQNCivsnbTrqoXsnbgNCivsnbTrs5HsmrANCivsnbTtg5zsmrENCivsnbTsmIHsnbUNCivsnbTsoJXsnpANCivsnbTrs5HsmrENCivsnbTsmqntmLgNCivsnbTsnbjsiJwNCivsnbTsiJzsmrENCivsnbTrs5Hsm5ANCivsnbTrr7jtmLgNCivsnbTsooXrp4wNCivsnbTshJ3ri6wNCivsnbTrs5Hsm5ANCivsnbTsg4HstpgNCivsnbTsnqzso7wNCivsnbTtlZntnawNCivsnbTrs5HsnKQNCivsnbTsgrzsiJkNCivsnbTssqDsnYANCivsnbTstqntlbQNCivsnbTrs5HsnbgNCivsnbTstpjtmIQNCivsnbTsoJXtg5wNCivsnbTrnpjtmLgNCivsnbTrs5HsnqwNCivsnbTsmIHtnawNCivsnbTsooXrs7UNCivsnbTqsJHtnawNCivsnbTrs5HsoJUNCivsnbTqt5zrs7UNCivsnbTsuaDqt5wNCivsnbTrqoXquLANCivsnbTrs5Hso7wNCivsnbTtg5ztmZgNCivsnbTsmqnspIANCivsnbTrrLjsnoQNCivsnbTrs5Hso7wNCivsnbTtmZTsiJgNCivsnbTrjZXrj5kNCivsnbTsoJDrs7QNCivsnbTrs5HspIANCivsnbTrp4zshKANCivsnbTtlbTsoJUNCivsnbTri7TsiJwNCivsnbTrs5HssKwNCivsnbTquIjshKANCivsnbTsmqnqt5wNCivsnbTtlZzsmrQNCivsnbTrs5HsspwNCivsnbTsmIHqs6QNCivsnbTsnbjsoJANCivsnbTrs5HssqANCivsnbTrs5HssqANCivsnbTsmIHtm4gNCivsnbTqt5zquLANCivsnbTsmIHqs6QNCivsnbTrs5HssqANCivsnbTsnqzsmrANCivsnbTsnKTrspQNCivsnbTtla3smrANCivsnbTrs5HssqANCivsnbTsmIHsp4ANCivsnbTsmqntlqUNCivsnbTsooXspIANCivsnbTrs5HssqANCivsnbTsmqnquLANCivsnbTsnbTsmqkNCivsnbTtlZnssqANCivsnbTrs5Htg5wNCivsnbTshLHqs6QNCivsnbTshpDtg5wNCivsnbTrjIDshKANCivsnbTrs5Htg50NCivsnbTqsJXtmLgNCivsnbTrp4zqt5wNCivsnbTsmIHtmLgNCivsnbTrs5Htg50NCivsnbTqsr3si50NCivsnbTsiJjqta0NCivsnbTssL3qt7wNCivsnbTrs5HtlYQNCivsnbTsoJXstpgNCivsnbTtg5zqt7wNCivsnbTquLDrjZUNCivsnbTrs5HtlZgNCivsnbTsoJXsl7wNCivsnbTsmqnsnpANCivsnbTquLjsmKUNCivsnbTrs5HtlZgNCivsnbTsiJjrnpgNCivsnbTslpHtmIQNCivsnbTrjIDssqANCivsnbTrs5HtlZwNCivsnbTrs7XshKANCivsnbTtmLjrj4QNCivsnbTspJHsnpANCivsnbTrs5HtlbQNCivsnbTrkZDshJ0NCivsnbTsiJzrnpgNCivsnbTqtIDtlZgNCivsnbTrs5HtmJUNCivsnbTrjZXshJ0NCivsnbTsnqzsobANCivsnbTrs5HrjIANCivsnbTrs5HtmLgNCivsnbTsmIHrp4wNCivsnbTrkZDtmLgNCivsnbTssL3quLgNCivsnbTrs5HtmLgNCivsnbTspJHsmrQNCivsnbTrp4ztmZgNCivsnbTsg4HshK0NCivsnbTrs5HtmY0NCivsnbTrtoTshKANCivsnbTshJ3tmZgNCivsnbTtmY3quLANCivsnbTrs5HtmZQNCivsnbTrs7Tqt7wNCivsnbTslpHrtIkNCivsnbTsiJzrj4QNCivsnbTrs5HtmZQNCivsnbTshKDqt5wNCivsnbTsnqzsm5ANCivsnbTshKDrj5kNCivsnbTrs5HtmZQNCivsnbTsnqzsl7ANCivsnbTshozshKANCivsnbTshLHsnpANCivsnbTrs5HtnawNCivsnbTqsr3tmZQNCivsnbTtg5zshJwNCivsnbTtg5ztlZkNCivsnbTrs7Tqs6QNCivsnbTsooXrrLQNCivsnbTquLDrtIkNCivsnbTsoJXsl7QNCivsnbTrs7TtmIQNCivsnbTshJ3snqwNCivsnbTshLHshLENCivsnbTrkZDtmLgNCivsnbTrs7Xrj4QNCivsnbTsspzqt7wNCivsnbTsmIHtmLgNCivsnbTtjJDspJENCivsnbTrs7XrprwNCivsnbTsmrDsiKANCivsnbTsnYTquLANCivsnbTsnKTshJ0NCivsnbTrs7Xsg50NCivsnbTtmITquLgNCivsnbTsmrDrpaANCivsnbTrqoXrtoANCivsnbTrs7XsiKANCivsnbTsnqzro6ENCivsnbTtmLjtg50NCivsnbTqtJHqtZANCivsnbTrs7Xsi6QNCivsnbTsooXqsr0NCivsnbTrjIDshJ0NCivsnbTsiJzrs7QNCivsnbTrs7XsmqkNCivsnbTtg5zsiJwNCivsnbTqsr3si50NCivsnbTsiJntnawNCivsnbTrs7XsmrANCivsnbQg7JqpDQor7J207Iic7Zi4DQor7J207LaY66y0DQor7J2067O17KeEDQor7J207Jqp7KeEDQor7J2064+Z6re8DQor7J207Jqp7JiBDQor7J2067O17LacDQor7J207ZiV7IiYDQor7J207J287YOdDQor7J207JiB7KSRDQor7J2067O17ZiEDQor7J207LKc7LacDQor7J207ISd7ZmYDQor7J207J6E7JmEDQor7J2067SJ6rOkDQor7J207J6l7IStDQor7J207Zi4656YDQor7J206riw7Zi4DQor7J2067SJ6rOkDQor7J207J6s7IicDQor7J2066Oh7J24DQor7J206rK97IudDQor7J2067SJ6recDQor7J207IOB7IicDQor7J207KKF7Zi4DQor7J207ZmY7IudDQor7J2067SJ6riwDQor7J207KCV7LKgDQor7J207KSR7ZmYDQor7J207J2067SJDQor7J2067SJ6riwDQor7J207J2A7KO8DQor7J207Jyk7JWgDQor7J207IOB7LacDQor7J2067SJ6ri4DQor7J207IOB7Zi4DQor7J2064yA7IudDQor7J207Jew7JqpDQor7J2067SJ64WADQor7J2067aA6rSRDQor7J207IOB7ZmYDQor7J206rSR7ZmYDQor7J2067SJ64WADQor7J2065Od7JewDQor7J207J247J6EDQor7J207J2Y7ZmUDQor7J2067SJ64yADQor7J207Zi466qoDQor7J207KSR7ISdDQor7J207Jik6riwDQor7J2067SJ656YDQor7J206riw7IigDQor7J207JuQ64+EDQor7J207LCo7JewDQor7J2067SJ66qoDQor7J207Jm47KGwDQor7J2064+Z7JqpDQor7J206riw7YyUDQor7J2067SJ7ISgDQor7J206rOk6riwDQor7J207J216rK9DQor7J207LC97KeADQor7J2067SJ7JiBDQor7J207J6s7ISxDQor7J207KKF64KoDQor7J207KCV7Zi4DQor7J2067SJ7KO8DQor7J207KCQ66qFDQor7J207IiY7IStDQor7J206riw7ZWcDQor7J2067SJ7LKgDQor7J207Jqp7ZiEDQor7J207Jil64+ZDQor7J207ZeM7ZqMDQor7J2067SJ7LaYDQor7J207KSR67aADQor7J207ZyY64+ZDQor7J207Jqx7IiYDQor7J2067SJ7ZeMDQor7J207JuU7LaYDQor7J207Jqp6rWsDQor7J207IOB67O1DQor7J2067SJ7ZmYDQor7J207JiB6rSRDQor7J207Iig7IiZDQor7J207IOB64+EDQor7J2067SJ7ZmYDQor7J207IOB7IS4DQor7J207Iic7IicDQor7J207IOB67O1DQor7J2067SJ7Z2sDQor7J207KKF7JilDQor7J207JiB7IicDQor7J207KSR6recDQor7J2067aA6ri4DQor7J207JiB7YOcDQor7J207J6l7IicDQor7J206rWQ7JqpDQor7J2067aA64+MDQor7J207KCV7LacDQor7J207LC967CwDQor7J2064us7ISxDQor7J2067aA7IS4DQor7J207KO87ZmYDQor7J207Jm466GdDQor7J207ZiE7ZmYDQor7J2067aA7Je0DQor7J207ZmY6rK9DQor7J207Lmg7LacDQor7J206rec7J20DQor7J2067aE6riwDQor7J207ISd7Jq0DQor7J207LaY7IudDQor7J207ZWc7JuFDQor7J2067aE64KcDQor7J207J2R7Zi4DQor7J207KCV6riwDQor7J207ISx7IicDQor7J2067aE64KoDQor7J2066+47ZiVDQor7J207Jqp7ZWcDQor7J207Jqp7IiZDQor7J2067aE64KoDQor7J207ZWE66qoDQor7J207J2E6rOEDQor7J207Jew7IudDQor7J2067aE7ISgDQor7J207J6s7J28DQor7J207J6s7Z2sDQor7J207YOc7IudDQor7J2067aE7JewDQor7J207Lap7JqwDQor7J206rec7LKgDQor7J207KKF7JewDQor7J2067aE7JiBDQor7J207ISd7ZWZDQor7J2067OR6recDQor7J207ISx7ISgDQor7J2067aE7J20DQor7J207ISx7ISgDQor7J207Zi47Iq5DQor7J2066qF7IicDQor7J2067aE7J20DQor7J207JWI7Je0DQor7J207J287ZWcDQor7J207Jik7JqpDQor7J2067aE7J20DQor7J207J6s7JqxDQor7J207J6s7YOcDQor7J207J247ZalDQor7J2067aE7KGwDQor7J206reA64+EDQor7J2064+E6ri4DQor7J207J6s6rWtDQor7J2067aE7KGwDQor7J2067OR7Z2sDQor7J207KSR7ZiBDQor7J207LKc7LaYDQor7J2067aE7ZWZDQor7J207ISg7KSADQor7J207KO87ISgDQor7J206rK96rK9DQor7J2067aE7Z2sDQor7J206rCR6recDQor7J207Z2l7ZWYDQor7J207J247Jq0DQor7J2067id7IS4DQor7J207Jqp6ri4DQor7J207IaM7Z2sDQor7J2067OR7JmVDQor7J207IKs66CoDQor7J207Lmg7Zi4DQor7J207J207JqpDQor7J207KeA6riwDQor7J207IKs7KGwDQor7J207Zi47KCVDQor7J207ZiE64+MDQor7J207IiY7YOcDQor7J207IK8642VDQor7J207J6s7ISdDQor7J207KCV7J6QDQor7J207Zi47IudDQor7J207IK8656RDQor7J207LCo6rCQDQor7J207Jew7LaYDQor7J207KKF7ISxDQor7J207IK87IiYDQor7J20IO2ZmA0KK+ydtOqwkeyErQ0KK+ydtOyInOq1rA0KK+ydtOyCvOyImA0KK+ydtOu2hOq3vA0KK+ydtOyCvOyImA0KK+ydtOyjvOuPmQ0KK+ydtOyCvOyImA0KK+ydtOygleyYgQ0KK+ydtOybkOu0iQ0KK+ydtOywqO2YhA0KK+ydtOyCvOyYgQ0KK+ydtO2VtOynhA0KK+ydtOygle2drA0KK+ydtOuzkeusuA0KK+ydtOyCvOyaqQ0KK+ydtO2DnOydmA0KK+ydtOq4sOyImQ0KK+ydtOyduO2ZmA0KK+ydtOyCvOyhsA0KK+ydtOyiheyYpA0KK+ydtOyaqeuztQ0KK+ydtOyiheyLoA0KK+ydtOyCvOyhsA0KK+ydtOunjOq3nA0KK+ydtOyatOyaqQ0KK+ydtOu0ieyaqQ0KK+ydtOyCvO2biA0KK+ydtOyCvOqyvQ0KK+ydtO2VtOyLnQ0KK+ydtOy5oO2DnA0KK+ydtOyDgeqyvQ0KK+ydtOyImOynhA0KK+ydtOynhOyatA0KK+ydtOyynOyGoQ0KK+ydtOyDgeqyvQ0KK+ydtO2VnOyInA0KK+ydtOydhOyImA0KK+ydtOyKue2ZmA0KK+ydtOyDgeq1rA0KK+ydtOyiheyatA0KK+ydtOyYgeyehA0KK+ydtOyepe2DgQ0KK+ydtOyDgeq3nA0KK+ydtOygleyasA0KK+ydtOykkeustA0KK+ydtOymne2ZmA0KK+ydtOyDgeq3oA0KK+ydtOuqheyLnQ0KK+ydtOyGjOyglQ0KK+ydtOywrOuwlQ0KK+ydtOyDgeq3vA0KK+ydtOyYpeq4sA0KK+ydtOusuO2drA0KK+ydtOq3vO2YuA0KK+ydtOyDgeq3vA0KK+ydtOu0ieqxtA0KK+ydtOyaqeuwsA0KK+ydtOyEoOyImA0KK+ydtOyDgeq3vA0KK+ydtO2VtO2YuA0KK+ydtOyYgeyIoA0KK+ydtOyImOq4iA0KK+ydtOyDgeq4sA0KK+ydtOuzkeyjvA0KK+ydtOustOyEoA0KK+ydtOyjvOyngQ0KK+ydtOyDgeq4sA0KK+ydtOykgOyYgQ0KK+ydtO2DnO2biA0KK+ydtOyyoO2MkA0KK+ydtOyDgeq4sA0KK+ydtOuCqOq3vA0KK+ydtOygleq4sA0KK+ydtOygleyglQ0KK+ydtOyDgeq4uA0KK+ydtOyehOyaqQ0KK+ydtOygley2nA0KK+ydtOyViO2biA0KK+ydtOyDgeuLrA0KK+ydtO2DnOyyoA0KK+ydtOqxtOq0gA0KK+ydtOygle2PiQ0KK+ydtOyDgeuMgA0KK+ydtOu2hOyDgQ0KK+ydtOywqOyInA0KK+ydtO2MkOyaqQ0KK+ydtOyDgeuMgA0KK+ydtOuPmeyImA0KK+ydtOyaqeq3vA0KK+ydtOyInOu0iQ0KK+ydtOyDgeuNlQ0KK+ydtO2drOyVlA0KK+ydtOq3vOqyvQ0KK+ydtOuzkeuNlQ0KK+ydtOyDgeuPhA0KK+ydtOygkOydvA0KK+ydtOyasOq4sA0KK+ydtOq0keyekA0KK+ydtOyDgeuPiA0KK+ydtOyYgeq1rA0KK+ydtO2DnOq3nA0KK+ydtOuzteywqA0KK+ydtOyDgeuPiA0KK+ydtOywrOykgA0KK+ydtOyaqeuqqA0KK+ydtOygleyaqQ0KK+ydtOyDgeuTnQ0KK+ydtOuvvOyImA0KK+ydtOuPmeuPjA0KK+ydtOyjvO2DnA0KK+ydtOyDgeuegA0KK+ydtOyInOybkA0KK+ydtOuPhO2YuA0KK+ydtOyYgeyYpQ0KK+ydtOyDgeuhnQ0KK+ydtOqyvey2nA0KK+ydtOq0keyLnQ0KK+ydtOusuOuPhA0KK+ydtOyDgeuhnQ0KK+ydtOyImOyLnQ0KK+ydtOygleyihQ0KK+ydtOyEseyEnQ0KK+ydtOyDgeuloA0KK+ydtOuCqO2drA0KK+ydtOuzkeyErQ0KK+ydtOyerOq1kA0KK+ydtOyDgeuqqA0KK+ydtO2DnOyasA0KK+ydtOyEseyInA0KK+ydtOybkOq4sA0KK+ydtOyDgeusuA0KK+ydtOyYgeydtA0KK+ydtOyYpOyynA0KK+ydtOyYgeyhsA0KK+ydtOyDgeuvvA0KK+ydtOywveyjvA0KK+ydtO2XjOyyoA0KK+ydtOyiheybhQ0KK+ydtOyDgeuwsA0KK+ydtO2YuO2DnA0KK+ydtOyEseuNlQ0KK+ydtOyDgeuemA0KK+ydtOyDgeuztQ0KK+ydtOyerO2YhA0KK+ydtOyiheyaqQ0KK+ydtOyihe2drA0KK+ydtOyDgeuztQ0KK+ydtCDsiJgNCivsnbTtmZjstpwNCivsnbTrs5HsmIENCivsnbTsg4Hrs7UNCivsnbTrp4zsmqkNCivsnbTqt7zshJ0NCivsnbTsiJjtnawNCivsnbTsg4HrtIkNCivsnbTsgrztmZgNCivsnbTsiJjsiJgNCivsnbTtg5zsmKUNCivsnbTsg4HrtIkNCivsnbTtnaztmIQNCivsnbTsoJXtmIQNCivsnbTtlZnspIANCivsnbTsg4HruYgNCivsnbTrs5Hrk50NCivsnbTtlZntmLgNCivsnbTso7zrtIkNCivsnbTsg4HshKANCivsnbTrrLTrj4wNCivsnbTrjIDsiJgNCivsnbTsooXrj5kNCivsnbTsg4HshK0NCivsnbTsmIHqt5wNCivsnbTqsr3spJENCivsnbTtmITssqANCivsnbTsg4HsiJgNCivsnbTssKzshLENCivsnbTrkZDrtoQNCivsnbTsiJzroZ0NCivsnbTsg4HsiJgNCivsnbTsoJXsg50NCivsnbTsmIHquLgNCivsnbTsmrDsmqkNCivsnbTsg4HsiJgNCivsnbTrjZXquLANCivsnbTsiJztnawNCivsnbTsmqnshJ0NCivsnbTsg4HsiJkNCivsnbTsoJXstIwNCivsnbTshLHrgqgNCivsnbTqsr3sgrwNCivsnbTsg4HsiJkNCivsnbTsgqzsmrANCivsnbTshLHqt7wNCivsnbTtg5zsl70NCivsnbTsg4HsiJkNCivsnbTsmqnsp4QNCivsnbTssqDtmLgNCivsnbTsmIHrs7UNCivsnbTsg4Hsi50NCivsnbTsmqnrj5kNCivsnbTtg5zsmIENCivsnbTtmY3tg5wNCivsnbTsg4HslrgNCivsnbTspIDssqANCivsnbTtnaztmZgNCivsnbTsnbjrnpgNCivsnbTsg4Hsl7ANCivsnbTsoIHsm5ANCivsnbTtmITtnawNCivsnbTrj5nquLANCivsnbTsg4Hsl7QNCivsnbTslrXtmowNCivsnbTsgrzsg50NCivsnbTtlbTtg5wNCivsnbTsg4Hsl7QNCivsnbTtnazsmrENCivsnbTtmLjsmIENCivsnbTrj5ntkZwNCivsnbTsg4Hsl7QNCivsnbTtg5zqsJENCivsnbTqt5zsmKUNCivsnbTsirnsnbQNCivsnbTsg4Hsl7QNCivsnbTrp4zsg50NCivsnbTsm5DsiJgNCivsnbTshLHsiJgNCivsnbTsg4Hsl7QNCivsnbTquLDsiJgNCivsnbTsnYTtl4wNCivsnbTtnJjrjZUNCivsnbTsg4Hsl7QNCivsnbTtl4zsi50NCivsnbTsoJXtnaANCivsnbTsnbzsg4ENCivsnbTsg4HsmIENCivsnbTtg5zsp4QNCivsnbTrj4TtnawNCivsnbTtlZztmZgNCivsnbTsg4HsmKQNCivsnbTsmZXsnbQNCivsnbTso7zsl7ANCivsnbTsp4DtmowNCivsnbTsg4HsmYQNCivsnbTsg4HrjZUNCivsnbTrrLTtmLgNCivsnbTshLjtmIQNCivsnbTsg4HsmqkNCivsnbTqt5zqtZANCivsnbTtmITshLENCivsnbTsoJXtg5wNCivsnbTsg4HsmqkNCivsnbTsg4Hri6wNCivsnbQg7IudDQor7J207Jm47KGwDQor7J207IOB7JqpDQor7J207KSA7ISdDQor7J207J2Y7ZWcDQor7J20642V7IicDQor7J207IOB7JqwDQor7J207KCV7IudDQor7J2066qF6re8DQor7J206rK97JilDQor7J207IOB7JqwDQor7J207IOB7J6QDQor7J207KCV7ZmYDQor7J207YOc67KUDQor7J207IOB7JqxDQor7J207J6s7ZmNDQor7J207KSR7YyQDQor7J207YOc7YOcDQor7J207IOB7Jq0DQor7J207YOc7IigDQor7J20656A7ZiEDQor7J207YOc7JiBDQor7J207IOB7JuQDQor7J207KCV65OdDQor7J207JiB7LKgDQor7J207ZmN64+ZDQor7J207IOB7JuQDQor7J207ZmU7IiYDQor7J206rCR7Je0DQor7J207Jil7JyoDQor7J207IOB7JykDQor7J2067OR7Zi4DQor7J207Zic7ZiEDQor7J207J6l67SJDQor7J207IOB7JykDQor7J207KCE7ZWEDQor7J207IOB7ISdDQor7J207KCV64+ZDQor7J207IOB7J2ADQor7J207J247Je9DQor7J207Yy97ISgDQor7J207JiB7JesDQor7J207IOB7J28DQor7J2067SJ7JqpDQor7J207KKF7J20DQor7J206rK97LKgDQor7J207IOB7J28DQor7J2064Ko6riwDQor7J207Jqp64+EDQor7J207JiB7IicDQor7J207IOB7J28DQor7J206rec7IiYDQor7J206riw7IugDQor7J2064Ko7ISdDQor7J207IOB7J6sDQor7J206rSR7IudDQor7J2066+47YOcDQor7J207KKF6rOkDQor7J207IOB7KCVDQor7J207JWU7IiYDQor7J206rCQ7Je0DQor7J207J2E7J2ADQor7J207IOB7KGwDQor7J2067aE6recDQor7J2064us7LKgDQor7J207YOc67KUDQor7J207IOB7KGwDQor7J207JiB7JewDQor7J207LCo7YOdDQor7J207JiB7KO8DQor7J207IOB7KSADQor7J2067SJ7IiYDQor7J207YyQ7Jq0DQor7J207J6s7Je0DQor7J207IOB7KeBDQor7J207JiB7LKgDQor7J2066qF6ri4DQor7J2066+87IiYDQor7J207IOB7KeBDQor7J207KCQ7KCVDQor7J207Jqp656ADQor7J207ISd7LKcDQor7J207IOB7KeEDQor7J2064yA65OdDQor7J207IOB7IOBDQor7J206rWt7ISgDQor7J207IOB7LKcDQor7J207Iic6ri4DQor7J207KKF64yADQor7J207KSR7JuFDQor7J207IOB7LKcDQor7J207J207IudDQor7J207Jqw7IudDQor7J207JiB67aEDQor7J207IOB7LKcDQor7J207JiB6rSADQor7J207JiB7YOcDQor7J207JiB7ISgDQor7J207IOB7LKgDQor7J207LC97YOcDQor7J207J6s7IOdDQor7J207JiB65OdDQor7J207IOB7LKgDQor7J20IOq1rA0KK+ydtOygleuegA0KK+ydtOycpOyInA0KK+ydtOyDgeyyoA0KK+ydtOq4sOyYgQ0KK+ydtO2DnOykgA0KK+ydtOyEse2ZmA0KK+ydtOyDgeyyoA0KK+ydtOyduOyIoA0KK+ydtOq0keyYpQ0KK+ydtOyEuOq1rQ0KK+ydtOyDgeyyoA0KK+ydtOyjvOqyvQ0KK+ydtOqyveu2hA0KK+ydtOyerOynhA0KK+ydtOyDgeyyoA0KK+ydtOy5oOyyoA0KK+ydtOyEneq1kA0KK+ydtOuPmeyasA0KK+ydtOyDgeyyoA0KK+ydtOyCvO2ZmA0KK+ydtOuPhOyEoA0KK+ydtOuMgOyImA0KK+ydtOyDgeyyoA0KK+ydtOyjvOyEsQ0KK+ydtO2VtOq3nA0KK+ydtOyerOyImA0KK+ydtOyDge2DgQ0KK+ydtOynhOunjA0KK+ydtOq3nOqygQ0KK+ydtOyYpeyerA0KK+ydtOyDge2DnA0KK+ydtOydhOyekA0KK+ydtOyImOusuA0KK+ydtO2DnOq4uA0KK+ydtOyDge2DnA0KK+ydtOybkOyInA0KK+ydtOyerOyekA0KK+ydtOuPmeuzuA0KK+ydtOyDge2DnA0KK+ydtOyDgeyErQ0KK+ydtOuMgOq4uA0KK+ydtOq4sOynhA0KK+ydtOyDge2VmQ0KK+ydtOuqheyZhA0KK+ydtOygle2YuA0KK+ydtOyduOy2nA0KK+ydtOyDge2VnA0KK+ydtOyYpOyEnQ0KK+ydtOygleyyoA0KK+ydtOyihe2biA0KK+ydtOyDge2VtA0KK+ydtOq3vO2ZmA0KK+ydtOq3vOyehA0KK+ydtOq4sOyLnQ0KK+ydtOyDge2XjA0KK+ydtOyGjOuPmQ0KK+ydtOyduOyImQ0KK+ydtOykkeyEoA0KK+ydtOyDge2YhA0KK+ydtOykgO2YuA0KK+ydtO2aqO2YuA0KK+ydtOyasOyDgQ0KK+ydtOyDge2YhA0KK+ydtOyDgeq2jA0KK+ydtO2Zje2drA0KK+ydtOyImOq1sA0KK+ydtOyDge2YhA0KK+ydtOynhO2XjA0KK+ydtOyiheyImQ0KK+ydtOqyve2DnA0KK+ydtOyDge2YhA0KK+ydtO2Yle2YuA0KK+ydtOuzkeyXsA0KK+ydtOywqOygkA0KK+ydtOyDge2YhA0KK+ydtOyEseyLnQ0KK+ydtOyaqeyWkQ0KK+ydtOyaqe2drA0KK+ydtOyDge2YhA0KK+ydtO2DnOuqhQ0KK+ydtOusuOq3oA0KK+ydtOq4sOyImA0KK+ydtOyDge2YuA0KK+ydtO2ajOyasA0KK+ydtOyerOyEsQ0KK+ydtOyEneyjvA0KK+ydtOyDge2YuA0KK+ydtO2VmOynhA0KK+ydtOusuOuPhA0KK+ydtOyEse2YuA0KK+ydtOyDge2YuA0KK+ydtOustOq4uA0KK+ydtO2VtO2YhA0KK+ydtOy5oOq4uA0KK+ydtOyDge2YuA0KK+ydtO2VtOyihQ0KK+ydtOyYge2YuA0KK+ydtOyYgeyImA0KK+ydtOyDge2YuA0KK+ydtOygle2VmQ0KK+ydtOuqheq4iA0KK+ydtOyasO2drA0KK+ydtOyDge2YuA0KK+ydtOyInOqyvQ0KK+ydtOy2mO2DnA0KK+ydtOygleyZhA0KK+ydtOyDge2ZlA0KK+ydtOyYpOqxtA0KK+ydtOuMgOyhsA0KK+ydtO2YnO2doA0KK+ydtOyDge2ZlA0KK+ydtOyyoOyLoA0KK+ydtOu0ie2YuA0KK+ydtOyYgeq3vA0KK+ydtOyDge2ZlA0KK+ydtOyduOyekA0KK+ydtOqyveyVlA0KK+ydtOq4sOyEnQ0KK+ydtOyDge2ZlA0KK+ydtOyiheuLrA0KK+ydtOyerOykgA0KK+ydtOycoO2YgQ0KK+ydtOyDge2ZmA0KK+ydtO2aqOyhsA0KK+ydtOuvvOuFhA0KK+ydtOy2mOyhsA0KK+ydtOyDge2ZqQ0KK+ydtOyEseykkQ0KK+ydtOyInOyLnQ0KK+ydtOq3vOq4sA0KK+ydtOyDge2aqA0KK+ydtOq3vOyXtA0KK+ydtOuRkOuNlQ0KK+ydtOq0keq4sA0KK+ydtOyDge2biA0KK+ydtOyCvOy5oA0KK+ydtOywveyekA0KK+ydtOyYgeykgA0KK+ydtOyDge2biA0KK+ydtOq4iOuNlQ0KK+ydtOygle2YuA0KK+ydtOyerO2YhA0KK+ydtOyDneq3nA0KK+ydtOywrOq1rA0KK+ydtOuNleykgA0KK+ydtOuzkeyhsA0KK+ydtOyEnOu2hA0KK+ydtOuzkeq1kA0KK+ydtOuPhO2YuA0KK+ydtOydvOuylA0KK+ydtOyEnOyatA0KK+ydtO2DnOyImA0KK+ydtOyaqeyImA0KK+ydtOyDgeuNlQ0KK+ydtOyEneqwkQ0KK+ydtOywveuemA0KK+ydtOygleyVlA0KK+ydtOuzkeyImA0KK+ydtOyEneqzpA0KK+ydtOyaqeydtA0KK+ydtO2ajOyEnQ0KK+ydtOygleyVhA0KK+ydtOyEneq3gA0KK+ydtOyasOyLnQ0KK+ydtOuRkOuMgA0KK+ydtOyInOyasA0KK+ydtOyEneq3nA0KK+ydtOyYgeyaqQ0KK+ydtOyImOuwsA0KK+ydtOyEseyEnQ0KK+ydtOyEneuhnQ0KK+ydtOyduOunjA0KK+ydtOuPhOybhQ0KK+ydtOygleyhsA0KK+ydtOyEneuhnQ0KK+ydtOyEseyImA0KK+ydtOyYgeu0iQ0KK+ydtOyEseq0gA0KK+ydtOyEneunjA0KK+ydtOuLrOyyoA0KK+ydtO2Zjeu0iQ0KK+ydtOykke2YuA0KK+ydtOyEneuylA0KK+ydtOyInOyerA0KK+ydtOq0ke2drA0KK+ydtOu2hOyEnQ0KK+ydtOyEneuzkQ0KK+ydtOu2hOyImA0KK+ydtOynhO2ZlA0KK+ydtOyMjeyaqQ0KK+ydtOyEneuztQ0KK+ydtOuqhe2YuA0KK+ydtOuPme2YuA0KK+ydtO2ZjeyXtA0KK+ydtOyEneyImA0KK+ydtOyaqeyaqQ0KK+ydtOuMgOyasQ0KK+ydtOywveyjvA0KK+ydtOyEneyYgQ0KK+ydtO2VnOyasA0KK+ydtOyiheumvA0KK+ydtOy2mOyImA0KK+ydtOyEneyZhA0KK+ydtOqzoeygnA0KK+ydtOq4sOuqqA0KK+ydtOuzkeyekA0KK+ydtOyEneyaqQ0KK+ydtOygleuegA0KK+ydtOyduOq1rQ0KK+ydtOyWkeyImA0KK+ydtOyEneybkA0KK+ydtOuvvO2ZmA0KK+ydtOyjvOyWkQ0KK+ydtOykgOyhsA0KK+ydtOyEneydvA0KK+ydtOyImOyEoA0KK+ydtOyYgeyXtA0KK+ydtOyerOunjA0KK+ydtOyEneyerA0KK+ydtOunjOuqqQ0KK+ydtOyEseynkQ0KK+ydtOuzkeyXsA0KK+ydtOyEneyerA0KK+ydtOyiheyihQ0KK+ydtOyImOuCqA0KK+ydtOyaqe2VnA0KK+ydtOyEneyjvA0KK+ydtOuzkeyyoA0KK+ydtOuPmeybkA0KK+ydtOyXsOyImA0KK+ydtOyEneyngA0KK+ydtOq0keq3nA0KK+ydtOyjvO2VtA0KK+ydtOuzkeq3vA0KK+ydtOyEneynhA0KK+ydtOyInOyImQ0KK+ydtOuPhOq2jA0KK+ydtO2VnOyhsA0KK+ydtOyEneywrA0KK+ydtOq3vOyEsQ0KK+ydtOuzkeywvQ0KK+ydtOuzkeyImQ0KK+ydtOyEneyynA0KK+ydtOusuO2ZjQ0KK+ydtO2drOq3nA0KK+ydtOyYgeq3nA0KK+ydtOyEney2nA0KK+ydtOq4sOyYpQ0KK+ydtOyYpOyXsA0KK+ydtOuLrOyErQ0KK+ydtOyEne2DnA0KK+ydtOydgO2ZlA0KK+ydtOuPme2ZlA0KK+ydtOyCrOynhA0KK+ydtOyEne2YhA0KK+ydtOyYgeuqqA0KK+ydtOygkOyDnQ0KK+ydtOuNleq1rQ0KK+ydtOyEne2YhA0KK+ydtO2DnOydvA0KK+ydtOuztey2nA0KK+ydtOqyveyImQ0KK+ydtOyEne2ZjQ0KK+ydtOyxhOyInA0KK+ydtOyImOyYpQ0KK+ydtOuLpOqzpA0KK+ydtOyEne2ZmA0KK+ydtOuzkeydtA0KK+ydtO2VnOyVlA0KK+ydtOyVoOyEoA0KK+ydtOyEne2ZmA0KK+ydtOuNley2nA0KK+ydtOq4uOyjvA0KK+ydtOyXsOyyoA0KK+ydtOyEoOu0iQ0KK+ydtOyerOykkQ0KK+ydtOuMgOuqqQ0KK+ydtOymneyaqQ0KK+ydtOyEoOyImA0KK+ydtOyiheybkA0KK+ydtOu0ieyYgQ0KK+ydtOuMgOyCvA0KK+ydtOyEoOyYgQ0KK+ydtO2Vme2VmQ0KK+ydtO2aqOydtA0KK+ydtOyDgeu2hA0KK+ydtOyEoOyasA0KK+ydtO2DnOq1rA0KK+ydtOyepeyyoA0KK+ydtOyiheuztQ0KK+ydtOyEoOydtA0KK+ydtO2DnOyXsA0KK+ydtOuCmeygkA0KK+ydtOuFuOq2jA0KK+ydtOyEoO2YuA0KK+ydtOuRkOykkQ0KK+ydtOu0ieuylA0KK+ydtOyEneyatA0KK+ydtOyEseqzpA0KK+ydtOyDge2YhA0KK+ydtOy5oOyLnQ0KK+ydtOyInOyImA0KK+ydtOyEseq1rA0KK+ydtOyDgeyVhA0KK+ydtOuPmeyjvA0KK+ydtO2DnOyYgQ0KK+ydtOyEseq1rA0KK+ydtOyEuOuqqA0KK+ydtOyDgeq1rA0KK+ydtOydvOyekA0KK+ydtOyEseq1rA0KK+ydtO2MkOq4sA0KK+ydtO2ZlOybkA0KK+ydtOuzkeyaqQ0KK+ydtOyEseq2jA0KK+ydtOyekOuNlQ0KK+ydtOyImOq2jA0KK+ydtOyYge2YgQ0KK+ydtOyEseq2jA0KK+ydtO2ZjeyInA0KK+ydtOynhOyasA0KK+ydtOynhOuPhA0KK+ydtOyEseq3nA0KK+ydtOuqheyIoA0KK+ydtOyViOqyvQ0KK+ydtOuzkeuqqQ0KK+ydtOyEseq3vA0KK+ydtOyEneyImA0KK+ydtOyEseuNlQ0KK+ydtOyEneyjvA0KK+ydtOyEseq3vA0KK+ydtOuvuOyImA0KK+ydtOygkOqwkQ0KK+ydtOyihe2YuA0KK+ydtOyEseq4sA0KK+ydtO2YhOq4uA0KK+ydtOyYgeyglQ0KK+ydtOuMgOydtQ0KK+ydtOyEseq4sA0KK+ydtOuTneyXtA0KK+ydtO2VnO2YuA0KK+ydtOygleyLnQ0KK+ydtOyEseuPhA0KK+ydtOq3vOq4uA0KK+ydtOuptOyInA0KK+ydtOynhOq3vA0KK+ydtOyEseuPmQ0KK+ydtOyEseyInA0KK+ydtOuRkOuCqA0KK+ydtOyInO2XjA0KK+ydtOyEseuemA0KK+ydtOqxtOq1kA0KK+ydtOybkOuPhA0KK+ydtOygleyLnQ0KK+ydtOyEseujoQ0KK+ydtOyEseyEsQ0KK+ydtOyWkeyImA0KK+ydtCDsm5ANCivsnbTshLHrp4wNCivsnbTsg4HsmrANCivsnbTtg5zsiJwNCivsnbTqt5zqtowNCivsnbTshLHrp5ANCivsnbTsg4HssKwNCivsnbTrqoXsnKgNCivsnbTqsr3sooUNCivsnbTshLHrr7wNCivsnbTsp4Drp4wNCivsnbTsnqzshLENCivsnbTsp4DtmLgNCivsnbTshLHrspQNCivsnbTtlonrj5kNCivsnbTssL3ssqANCivsnbTsg4HsmqkNCivsnbTshLHrs7UNCivsnbTsmqnsgrwNCivsnbTrs5HtnawNCivsnbTslpHstpgNCivsnbTshLHrs7UNCivsnbTtl4zquLANCivsnbTqtJHsiJkNCivsnbTrrLTqt7wNCivsnbTshLHshLgNCivsnbTsoJDtl4wNCivsnbTsmrTrp4wNCivsnbTsg4HtmZgNCivsnbTshLHsiJgNCivsnbTsnYDrs7UNCivsnbTrjIDtlZgNCivsnbTrj5nsmKUNCivsnbTshLHsiJwNCivsnbTstpjquIgNCivsnbTsgrzshLENCivsnbTtnazrsLANCivsnbTshLHsi6QNCivsnbTshLHquLgNCivsnbTsnqzsmrENCivsnbTsooXqt5wNCivsnbTshLHslYgNCivsnbTsnYTshLENCivsnbTshLHrrLgNCivsnbTquLDquLgNCivsnbTshLHslaANCivsnbTrs5Htg50NCivsnbTrs5HtnawNCivsnbTsmIHsmrENCivsnbTshLHsl70NCivsnbTsoJXtmZgNCivsnbTsmqntmZgNCivsnbTsooXtmZQNCivsnbTshLHsmKUNCivsnbTsoJXsiJwNCivsnbTsoJXrk50NCivsnbTsmIHqt6ANCivsnbTshLHsmrANCivsnbTstqnsiJgNCivsnbTrtInsiJgNCivsnbTspIDtmLgNCivsnbTshLHsmrANCivsnbTqtJHsnpANCivsnbTsg4HsmKUNCivsnbTrj5nrsLANCivsnbTshLHsmrQNCivsnbTsnqzsnKgNCivsnbTsiJzsiJkNCivsnbTsl7DsiJwNCivsnbTshLHsm5ANCivsnbTsoJXsmrQNCivsnbTsmIHqsr0NCivsnbTrspTsnKgNCivsnbTshLHsnbUNCivsnbTsoJzsiJkNCivsnbTsg4HtmqgNCivsnbTquIjsl7QNCivsnbTshLHsnoQNCivsnbTtg5ztmZgNCivsnbTsoJXtlqUNCivsnbTtmqjsm5ANCivsnbTshLHsobANCivsnbTtg5zro6ENCivsnbTrqoXsp4QNCivsnbTsmIHtmZgNCivsnbTshLHspIANCivsnbTsg4Hqs6QNCivsnbTsg4HqtIANCivsnbTrrLTspIANCivsnbTshLHspIANCivsnbTsnbjsnKgNCivsnbTsp4Tsi50NCivsnbTslYjsi50NCivsnbTshLHspIANCivsnbTsnqztmLgNCivsnbTsg4HsiJgNCivsnbTstpjsnpANCivsnbTshLHssKwNCivsnbTsg4HtmLgNCivsnbTssL3shJ0NCivsnbTrkZDtmLgNCivsnbTshLHssqANCivsnbTsnbzrs7UNCivsnbTsnbjtmZgNCivsnbTshLHtmZQNCivsnbTshLHssqANCivsnbTrs5Hsl7ANCivsnbTshKDqs7UNCivsnbTsooXquLANCivsnbTshLHtg5wNCivsnbTtl4zrs7UNCivsnbTsi6DtkZwNCivsnbTrp4zsnbwNCivsnbTshLHtg5wNCivsnbTtg5zsmrENCivsnbTsmqnsobANCivsnbTrjIDsiJwNCivsnbTshLHtj4kNCivsnbTso7ztlZgNCivsnbTtmZjsi50NCivsnbTrgrTri6wNCivsnbTshLHtlZgNCivsnbTtlZzsp4QNCivsnbTtmLjsl7QNCivsnbTsoJXrpZwNCivsnbTshLHtmIQNCivsnbTrkZDtmLgNCivsnbTri6zshJ0NCivsnbTsoJXquLgNCivsnbTshLHtmIQNCivsnbTrs5Hso7wNCivsnbTrs5HquIgNCivsnbTqtJHstpgNCivsnbTshLHtmLgNCivsnbTsobDqtawNCivsnbTqtJHsmqkNCivsnbTrqoXshJ0NCivsnbTshLHtmLgNCivsnbTspJHsnpANCivsnbTsmIHqs6QNCivsnbTsnKTsooUNCivsnbTshLHtmLgNCivsnbTsg4HrqqkNCivsnbTsoJXsmrANCivsnbTquLDshJ0NCivsnbTshLHtmLgNCivsnbTsnYTshKANCivsnbTsp4TsiJwNCivsnbTsi6zqtowNCivsnbTshLHtmLgNCivsnbTsooXrjZUNCivsnbTrs5Hqsr0NCivsnbTsnqzrjZUNCivsnbTshLHtmLgNCivsnbTsnLXsnbwNCivsnbTrgpnstpwNCivsnbTrjIDqt7wNCivsnbTshLHtmY0NCivsnbTshJ3sobANCivsnbTsooXqt5wNCivsnbTsiJzsg4ENCivsnbTshLHtmZQNCivsnbTqta3sobANCivsnbTqtazrjZUNCivsnbTrj5nsmqkNCivsnbTshLHtmZgNCivsnbTsirntlbQNCivsnbTsg4HtmLgNCivsnbTsiJzrp4wNCivsnbTshLHtmZgNCivsnbTquLDqt5wNCivsnbTtmLjsmIENCivsnbTtg5zsmKQNCivsnbTshLHtmZgNCivsnbTsg4HqtowNCivsnbTrs5HsobANCivsnbTsnbzsnbwNCivsnbTshLHtm4gNCivsnbTrspTsm5ANCivsnbTsnZjsoJUNCivsnbTqtazshJwNCivsnbTshLHtnawNCivsnbTqt5zspJENCivsnbTrrLTshKANCivsnbTshLHtnLQNCivsnbTshLHtnawNCivsnbTsmIHrhYQNCivsnbTtl4ztg5wNCivsnbTqtoHsnbQNCivsnbTshLjrs5ENCivsnbTsmKXtmLgNCivsnbTsnZjqs4QNCivsnbTsooXrtoQNCivsnbTshLjsmIENCivsnbTshJ3tnawNCivsnbTsnbTsnbQNCivsnbTsg4HsnbQNCivsnbTshLjsmIENCivsnbTsiJzrs7UNCivsnbTsnKTqs6QNCivsnbTsgrzqt5wNCivsnbTshLjsmqkNCivsnbTrj5ntmIQNCivsnbTqsr3qt7wNCivsnbTqt7zsiJgNCivsnbTshLjsnbwNCivsnbTsmqnshK0NCivsnbTsnqXsnqUNCivsnbTqt7zssqANCivsnbTshLjspJENCivsnbTsnbzsobANCivsnbTsoJDrp4wNCivsnbTsnqzsm5ANCivsnbTshLjtmIQNCivsnbTsooXsi50NCivsnbTsmrDrnpgNCivsnbTrgqjtlqUNCivsnbTshLjtmIQNCivsnbTrj5nsmqkNCivsnbTsnbzqtbANCivsnbTshKDsi50NCivsnbTshLjtmLgNCivsnbTstqnsm4UNCivsnbTqsr3sobANCivsnbTsnYTqt7wNCivsnbTshozqsJENCivsnbTtg5zqt7wNCivsnbTtmY3snbwNCivsnbTrj5ntnawNCivsnbTshozrj4wNCivsnbTspIDqt7wNCivsnbTsoJXtmIQNCivsnbTsnqzquLANCivsnbTshozshJ0NCivsnbTsp4TsmIENCivsnbTrs5Htg4ENCivsnbTtg5zsnpANCivsnbTshozsiJgNCivsnbTsooXquLgNCivsnbTsmIHqt7wNCivsnbTrj5nsm5ANCivsnbTshozsiJgNCivsnbTsiJnqt5wNCivsnbTsmIHrtIkNCivsnbTrrLTsiJwNCivsnbTshozsiJgNCivsnbTsnLXtmLgNCivsnbTsgrztmLgNCivsnbTsnITrj5kNCivsnbTshozsiJgNCivsnbTtmLjsmrQNCivsnbTrj4Tri7QNCivsnbTslrjtmLgNCivsnbTshozsiJkNCivsnbTquIjqt7wNCivsnbTqsJHshLENCivsnbTsg4HquLgNCivsnbTshozsiJwNCivsnbTtmozrs7QNCivsnbTshLjtmIQNCivsnbTsmqnsoJwNCivsnbTshozsi50NCivsnbTshKDsiJwNCivsnbTrp5Dsl7ANCivsnbTssqDsiJgNCivsnbTshozslZQNCivsnbTsmrDqt7wNCivsnbTtlZzrpr0NCivsnbTsmqnsobANCivsnbTshozsm5ANCivsnbTrrLTsmrANCivsnbTri6ztnawNCivsnbTssL3rjZUNCivsnbTshozsobANCivsnbTtg5zsobANCivsnbTrgqjrs5ENCivsnbTsiJzsi50NCivsnbTshozsobANCivsnbTtg5zrnoANCivsnbTsp4TsmrQNCivsnbTqsr3snbQNCivsnbTshpDsiJkNCivsnbTshKDquLANCivsnbTso7zsmqkNCivsnbTtg5zsg4ENCivsnbTshpDso7wNCivsnbTrgqjquLgNCivsnbTsp4TquLANCivsnbTrj5ntmIQNCivsnbTshqHqsbQNCivsnbTrj5nqtawNCivsnbTtmLjsoJUNCivsnbTsg4Hsp4QNCivsnbTshqHroZ0NCivsnbTtmLjsmqkNCivsnbTshLjsl7QNCivsnbTsoJDroZwNCivsnbTshqHslpENCivsnbTsp4TsiJgNCivsnbTtmJXtmLgNCivsnbTrjIDshJ0NCivsnbTshqHsl7QNCivsnbTquLDquLgNCivsnbTrs5HsmKUNCivsnbTsmIHrp4wNCivsnbTsiJjqsr0NCivsnbTsmqnssqANCivsnbTsnqzqta0NCivsnbTqta3shJ0NCivsnbTsiJjqsr0NCivsnbTtg5ztm4gNCivsnbTqtazsnKENCivsnbTshJ3sm5ANCivsnbTsiJjqt7wNCivsnbTshLHtlZgNCivsnbTrqoXrj4gNCivsnbTsiJjsi50NCivsnbTsiJjquLANCivsnbTrspTtmLgNCivsnbTtmqjsiJkNCivsnbTsiJjqta0NCivsnbTsiJjquLgNCivsnbTsirnqsr0NCivsnbTsnqzrjIANCivsnbTsnKTrtIkNCivsnbTsiJjrjZUNCivsnbTtlbTsi50NCivsnbTsmIHsnbQNCivsnbTsiJzquLANCivsnbTsiJjrj4QNCivsnbTrs5HsmIENCivsnbTsnqzsiJgNCivsnbTsgrzsmrQNCivsnbTsiJjrp4wNCivsnbTshLHquLANCivsnbTrs5HsnbgNCivsnbTshLHsiKANCivsnbTsiJjrsLENCivsnbTrgqjrj4wNCivsnbTquLDsmqkNCivsnbTrqoXrjIANCivsnbTsiJjrs7UNCivsnbTsooXsl7QNCivsnbTrj4jsg4ENCivsnbTshLHshKANCivsnbTsiJjrs7UNCivsnbTsiJjso7wNCivsnbTtmIHsg4ENCivsnbTsg4HtmZgNCivsnbTsiJjrs7UNCivsnbTrj5nsiJkNCivsnbTsmIHsiJwNCivsnbTqtazsnpANCivsnbTsiJjsg4ENCivsnbTqsJHrgqgNCivsnbTsg4Hrnb0NCivsnbTsnbXsmqkNCivsnbTsiJjshJ0NCivsnbTsg4HssqANCivsnbTtg5zsnpANCivsnbTsiJjsg4ENCivsnbTsiJjslbwNCivsnbTrs5Hsl7ANCivsnbTssKjsi50NCivsnbTqt7zqtIANCivsnbTsiJjslrgNCivsnbTsnITsmqkNCivsnbTssKjqt5wNCivsnbTtnazqsr0NCivsnbTsiJjsl7QNCivsnbTsooXsnpANCivsnbTsi5ztkZwNCivsnbTsnqzsmYQNCivsnbTsiJjsl7QNCivsnbTshLHrtoQNCivsnbTsirnqtJENCivsnbTrs7jtmLgNCivsnbTsiJjsmKUNCivsnbTsoJXtmY0NCivsnbTshLHsiJgNCivsnbTrs5Hqt7wNCivsnbTsiJjsmqkNCivsnbTsooXsi50NCivsnbTrtInshLENCivsnbTsiJnsmqkNCivsnbTsiJjsmqkNCivsnbTsm5DshJ0NCivsnbTtlZnrtogNCivsnbTsgrztg5wNCivsnbTsiJjsmrANCivsnbTssL3rj4wNCivsnbTsnbzsiJgNCivsnbTsooXsnoQNCivsnbTsiJjsm4UNCivsnbTqtJHsi50NCivsnbTshJ3qtowNCivsnbTtg5zrpr0NCivsnbTsiJjsm5ANCivsnbTssL3rj4wNCivsnbTstpjrjZUNCivsnbQg67CwDQor7J207IiY7J2YDQor7J207JiB7KGwDQor7J207JiB6raMDQor7J207ZWZ7IudDQor7J207IiY7J24DQor7J207Iic7JuFDQor7J207JiB66eMDQor7J207LKc7Zi4DQor7J207IiY7KCQDQor7J207Jyk7Zi4DQor7J207IOB7LKcDQor7J207Jqp7JikDQor7J207IiY7KKFDQor7J207KKF7ZeMDQor7J2067OR7KeEDQor7J207Lac7IudDQor7J207IiY7KSADQor7J207KO87Je0DQor7J207JiB7Z2sDQor7J207LC97ISdDQor7J207IiY7KeEDQor7J2066y47J6QDQor7J207KKF7Zi4DQor7J206riI7ISxDQor7J207IiY7KeEDQor7J207JuU6rSADQor7J207KCV7JqpDQor7J207YOc6re8DQor7J207IiY7LCsDQor7J207IOB7JqpDQor7J2065GQ7ISdDQor7J207ZWY7ISxDQor7J207IiY7LC9DQor7J207ISx7ZiEDQor7J206rO17JWUDQor7J207KCV7ZmpDQor7J207IiY7LKgDQor7J207Iic7IicDQor7J207ZeM7KeEDQor7J207KO87Zi4DQor7J207IiY7ZWZDQor7J206rWw6riwDQor7J207J2E64+MDQor7J207YyQ7YOdDQor7J207IiY7ZiEDQor7J206rK97ZuIDQor7J207Iuk7Je0DQor7J206rWs66y4DQor7J207IiY7ZiEDQor7J207J2A7JqwDQor7J207ZmU66y4DQor7J207Z2s7Zi4DQor7J207IiY7ZiEDQor7J207Jqp7Zi4DQor7J207KeA7KSADQor7J207KKF7Zi4DQor7J207IiY7ZiEDQor7J207Iq57KCVDQor7J207ISx7Z2sDQor7J2067OR7ZiEDQor7J207IiY7Zi4DQor7J207IOB6recDQor7J207KSR7ZiEDQor7J207Iuk7ISdDQor7J207IiY7Zi4DQor7J207KKF7YOdDQor7J206rSR66qoDQor7J207KCV6ri4DQor7J207IiY7Zi4DQor7J207LaY7JilDQor7J207KSR7KO8DQor7J207KCV7J6EDQor7J207IiY7Zi4DQor7J2067O16recDQor7J206rK97LKcDQor7J207YOc6recDQor7J207IiY7ZmNDQor7J207J6s7IudDQor7J207ZiE7ZaJDQor7J207Zqo7Je0DQor7J207IiY7ZmYDQor7J207ISg7YOcDQor7J207IOB7LaYDQor7J207KKF7ISgDQor7J207IiY7ZmpDQor7J206riw7IudDQor7J207ISd7JWgDQor7J207Jqp67aEDQor7J207IiY7Z2lDQor7J2067OR7ZmYDQor7J2064Ko7IudDQor7J207Jqp7ZmUDQor7J207IiZ6rK9DQor7J2067SJ7IStDQor7J207ISd7Zy0DQor7J2066qF7JuQDQor7J207IiZ6riwDQor7J207ZmN7JuQDQor7J207Jqp7JikDQor7J206rWt6recDQor7J207IiZ7JewDQor7J206rSR7IudDQor7J2067OR7LKgDQor7J207Zi47ZeMDQor7J207IiZ7Z2sDQor7J207YOc6re8DQor7J206rOE6rWsDQor7J207JiB7J28DQor7J207Iic6rK9DQor7J207IiY7KGwDQor7J207IOB6recDQor7J2066qF66a9DQor7J207Iic6rWsDQor7J207KKF7Zi4DQor7J207KCQ6recDQor7J2066eM7ISxDQor7J207Iic6rWsDQor7J207Zqo7IOBDQor7J2067O164+EDQor7J207JiB7KO8DQor7J207Iic642VDQor7J206rSR7JikDQor7J207Zic7JqwDQor7J206riw7ZmYDQor7J207Iic64+EDQor7J2064+Z7KGwDQor7J207Iic7IiZDQor7J207LKc7JuQDQor7J207Iic66eQDQor7J2064W47LKgDQor7J2067O07ISgDQor7J207Jyk7ZeMDQor7J207Iic67aEDQor7J2066qF7KGwDQor7J207Iic7Zy0DQor7J207Kad7JikDQor7J207Iic67aEDQor7J206re87KSADQor7J207IS46re8DQor7J207ISg6riwDQor7J207Iic7IS4DQor7J2067SJ67CwDQor7J207KSR67SJDQor7J2064yA67O1DQor7J207Iic7IugDQor7J206riw6re8DQor7J207ZiE7J6QDQor7J207Jq07LKgDQor7J207Iic7JewDQor7J206rWs7IOBDQor7J207ZiV7JesDQor7J207J287IiYDQor7J207Iic7JiBDQor7J207KKF7KGwDQor7J2067O17KSADQor7J207JiB7LKgDQor7J207Iic7JqxDQor7J207ZWc7J20DQor7J207LKg64+ZDQor7J207J6s7JqpDQor7J207Iic7JuQDQor7J207J2E7JilDQor7J207YOc7IiYDQor7J206rec7JqpDQor7J207Iic7J20DQor7J2064+Z6recDQor7J206riw7Z2sDQor7J207KeE6rK9DQor7J207Iic7J6QDQor7J206re864+MDQor7J2067O06ri4DQor7J2064+Z7LaYDQor7J207Iic7J6QDQor7J207IaM6rWQDQor7J2064+Z7Je0DQor7J206rSA642VDQor7J207Iic7J6QDQor7J207JiB7IicDQor7J207J6s7JqwDQor7J207J6s7ISdDQor7J207Iic7J6QDQor7J207KKF7KCVDQor7J207LC97JuQDQor7J207YOc7JqxDQor7J207Iic7J6sDQor7J207ZmU7Z2gDQor7J207Je06regDQor7J206rec7ZWcDQor7J207Iic7KCQDQor7J207YOc7YOdDQor7J206rSR7IicDQor7J207KCc7JykDQor7J207Iic7KGwDQor7J207ISx7Zi4DQor7J2064+E64+ZDQor7J207ISx7IiZDQor7J207Iic7KGwDQor7J207KCQ7ZWZDQor7J207Jqw6rCBDQor7J2066eM7IiYDQor7J207Iic7YOcDQor7J207JiB7J6QDQor7J2064us7Zi4DQor7J207Z2s7IigDQor7J207Iic7ZiEDQor7J207KO86recDQor7J207Zqo66eMDQor7J2064yA7IutDQor7J207Iic7Zi4DQor7J207YOd7IudDQor7J207YyU7ZiEDQor7J2064W47JiBDQor7J207Iic7ZmNDQor7J207IOB7JmEDQor7J207Iig66CoDQor7J2066qF7ZmYDQor7J207Iic7ZmNDQor7J2067OR7JqwDQor7J207Jqp64yADQor7J207IOB7Je0DQor7J207Iic7Z2sDQor7J207YOc7IiYDQor7J207J6s67O1DQor7J207IOB7Je0DQor7J207Iic7Z2sDQor7J207Zi47Je0DQor7J207KCV7J28DQor7J2066eM7KO8DQor7J207Iig67SJDQor7J207IOB7IiYDQor7J207IOB66eMDQor7J207ZmY7IiYDQor7J207Iig7Z2sDQor7J2064+Z7JqpDQor7J207YOc7Zi4DQor7J207Iic7IukDQor7J207Iq56rOkDQor7J207Zi47IiYDQor7J206re866a8DQor7J207Jil7Jq0DQor7J207Iq564usDQor7J2067SJ7ZiEDQor7J206rWt7Zi4DQor7J206ri464yADQor7J207Iq564+ZDQor7J207Iic7Zy0DQor7J207J2Y7ZiEDQor7J207J2A7Je0DQor7J207Iq566CsDQor7J2067OR66qpDQor7J207Zi47IugDQor7J207ZiE7ISgDQor7J207Iq566qoDQor7J207Jik7ZiVDQor7J207ISd7J6sDQor7J207IS47Zi4DQor7J207Iq567CwDQor7J207KeE6raMDQor7J207ZW07Z2sDQor7J207J287IudDQor7J207Iq567aEDQor7J206rSR7KeEDQor7J207YOc7JewDQor7J2065Od7ISdDQor7J207Iq57Ja4DQor7J207KSA6rOEDQor7J206rCR7LKgDQor7J207LaY7Je0DQor7J207Iq57Je0DQor7J207ZW07IicDQor7J207YyQ7Je0DQor7J206rK97IOdDQor7J207Iq57JilDQor7J2064+Z6recDQor7J207IOB7JewDQor7J207ZWZ7ZmUDQor7J207Iq57JqwDQor7J206rK96rWtDQor7J207IK86rK9DQor7J207KO87JqwDQor7J207Iq57JqxDQor7J207KKF64+EDQor7J2066eM7JuQDQor7J207J2A64+ZDQor7J207Iq57KGwDQor7J207LaY7JqxDQor7J207Jqp6rWQDQor7J207J6l6rOkDQor7J207Iq57KO8DQor7J2067SJ7ZmUDQor7J207Lmg7IOBDQor7J2066eM7KSADQor7J207Iq57LKcDQor7J207ZeM6re8DQor7J207J6s7KSADQor7J207KKF6riwDQor7J207Iq57LKcDQor7J207J2Y7JqpDQor7J207JiB66eMDQor7J207YOc67KUDQor7J207Iq57LmgDQor7J207IS46rK9DQor7J207ZW06raMDQor7J207Lap7KCcDQor7J207Iq57ZiVDQor7J207KCV6re8DQor7J206rec6529DQor7J207IS47YOdDQor7J207Iq57ZmNDQor7J207JiB7ZqMDQor7J207Jqp7Zi4DQor7J207Jew7YOdDQor7J207Iq57ZmUDQor7J207JiB7ZWcDQor7J207J6l7KSRDQor7J2064+Z7Je0DQor7J207Iq57ZmUDQor7J207ZmN7ZiBDQor7J206riw7IiYDQor7J206rSR7IudDQor7J207Iq57ZuIDQor7J207ISx7ZWYDQor7J207JiB6recDQor7J207LaY6rCRDQor7J207Iq57ZuIDQor7J206riw7ZiEDQor7J207ISg6rWsDQor7J207Kad7KGwDQor7J207Iq57ZuIDQor7J207LC97IugDQor7J207J2466y1DQor7J2064yA6rWsDQor7J207Iq57Z2sDQor7J206riw67KUDQor7J207YOc7JuQDQor7J2067OR67aEDQor7J207Iuc64+ZDQor7J2067OR7JewDQor7J207JuQ7ZiEDQor7J2064Ko7JWgDQor7J207Iuc7JiBDQor7J207Iic6rOkDQor7J207IiY7ISdDQor7J207LaY66CoDQor7J207Iuc7JqwDQor7J207KeE7Zi4DQor7J207Jqp7IiYDQor7J207ISx6riwDQor7J207Iuc7JuQDQor7J2064+Z7J6sDQor7J207KCV6rWsDQor7J207Jik7Zi4DQor7J207Iuc7JuQDQor7J207YOc7Zi4DQor7J207IOB7JiBDQor7J2067OR7ZmYDQor7J207Iug6rWsDQor7J207Lap7JuQDQor7J2066qF7ZqoDQor7J207IK867CwDQor7J207Iug67O1DQor7J207Jyk7IiYDQor7J207ZWZ7ZiVDQor7J206rCR7Je0DQor7J207Iug7JqwDQor7J207YOA7J21DQor7J207JiB64+EDQor7J207JiB7LKgDQor7J207Iug7J20DQor7J2064+Z7JuQDQor7J207IOB7KeEDQor7J207Y+J7LKgDQor7J207IyN6rCRDQor7J207YOc7IudDQor7J207J6Q7JiBDQor7J207Iic7ZmYDQor7J207IyN7ISdDQor7J207IOB7ISdDQor7J207KCV7IudDQor7J207KCV7Jq0DQor7J207IyN7Iq5DQor7J207Zic7J6QDQor7J207JyE7ZqMDQor7J207Jqp6rWsDQor7J207IyN7JewDQor7J207KCV7IOBDQor7J207JiB7JuQDQor7J206rK96rK9DQor7J207JWI6riwDQor7J207KCV7YOBDQor7J206re86re8DQor7J206riw7IStDQor7J207JWI7IOdDQor7J207KeE7J28DQor7J207Jqp7JuUDQor7J207JuQ64+ZDQor7J207JWI7IicDQor7J207ISx64+EDQor7J207IOB7ISdDQor7J207KCQ7ZiEDQor7J207JWU7JqwDQor7J207J287IicDQor7J207KKF7IigDQor7J207KO87IStDQor7J207JaR7IiZDQor7J207JiB67CxDQor7J2066eM7ZmYDQor7J207IaM6ri4DQor7J207JaR7JqwDQor7J207KO87Z2sDQor7J206riw7Zy0DQor7J207ZW07JWgDQor7J207JaR7J6EDQor7J207IiZ6rSRDQor7J207IiY7ZmNDQor7J2066y47ZWcDQor7J207JaR7ZuIDQor7J2066e57J2ADQor7J2066y07IiYDQor7J207YyQ642VDQor7J207Ja16re8DQor7J207YOc7J28DQor7J207J2Y7IStDQor7J2067OR7J28DQor7J207JeF7KO8DQor7J207IOB7JiBDQor7J207J6s7LC9DQor7J207ZW07KCVDQor7J207Jew64+ZDQor7J207J6s7ZqMDQor7J2066eQ64W4DQor7J2066qF7IudDQor7J207Jew7IukDQor7J207J2A7KSADQor7J207IOB7ZmYDQor7J2066eM6rOkDQor7J207Jew7IukDQor7J207JiB6rOkDQor7J2067Cp7ZqoDQor7J2067OR6re8DQor7J207Jew7IukDQor7J2064K07ZmNDQor7J207KKF7IiZDQor7J2067aA6rWsDQor7J207Jew7J20DQor7J207YyQ7Zi4DQor7J207Jqp64+ZDQor7J207J6s7KO8DQor7J207JiB6rWsDQor7J206riI64+EDQor7J207ISx6rOkDQor7J206rOE6rK9DQor7J207JiB6rWtDQor7J207Iic6re8DQor7J207KCV7ZmYDQor7J207KCV7IicDQor7J207JiB6rWtDQor7J207YOc7LKgDQor7J207J6s6rK9DQor7J2066qF7IugDQor7J207JiB6re8DQor7J207IK86rKwDQor7J207ZmU7ZmUDQor7J207YOc7IudDQor7J207JiB6riwDQor7J207KCc7KeEDQor7J207ISg7Je0DQor7J207JiB7ZW0DQor7J207JiB6riwDQor7J207KKF66WgDQor7J207Iic7JuQDQor7J206riw7JqpDQor7J207JiB6riwDQor7J207JiB7KGwDQor7J207KCc6rK9DQor7J2067OR7ISdDQor7J207JiB6riwDQor7J207ISx7KeEDQor7J2064us7IudDQor7J206rec7J28DQor7J207JiB6riwDQor7J207JuQ7J6sDQor7J207ISx67SJDQor7J207YOc6recDQor7J207JiB6ri4DQor7J207IOB7Zi4DQor7J2066qF7KeEDQor7J2064yA7ISdDQor7J207JiB6ri4DQor7J207J2A7KO8DQor7J207Lap7YOdDQor7J207KCV7IicDQor7J207JiB6ri4DQor7J207JiB7ZaJDQor7J207Jil6rOkDQor7J2067OR7ZiEDQor7J207JiB64+ZDQor7J207Jqw7ZmYDQor7J207LKc66eMDQor7J207KSA7Z2sDQor7J207JiB6529DQor7J207KCV66CoDQor7J207Iq57IicDQor7J2067OR7ZGcDQor7J207JiB656ADQor7J20642V6riIDQor7J207KKF7JykDQor7J207KSR7Je0DQor7J207JiB66GcDQor7J207IOB64W4DQor7J207J2E7JqwDQor7J207IiY7ZWYDQor7J207JiB66qpDQor7J207LC97ZuIDQor7J207ZW07ISdDQor7J207ZmU7KeEDQor7J207JiB66+8DQor7J207YOc7KO8DQor7J207YOc67CwDQor7J207Jyk7LKgDQor7J207JiB66+8DQor7J206rCR7Jq0DQor7J207KCc7ZWYDQor7J206rK97Zi4DQor7J207JiB7IOBDQor7J207Iq564+EDQor7J207IiY7JewDQor7J207YOc64+EDQor7J207JiB7ISdDQor7J206rCR7IiYDQor7J2064+Z7ZmYDQor7J207YOc7ZmYDQor7J207JiB7ISgDQor7J2065GQ7IudDQor7J207ISc6recDQor7J207KO87IudDQor7J207JiB7IStDQor7J207Jqw7IigDQor7J2067OR7JuQDQor7J2067aE7IiYDQor7J207JiB7IS4DQor7J2065GQ7IicDQor7J206reg7JWUDQor7J207YyQ6rWQDQor7J207JiB7IS4DQor7J207ZmN7IudDQor7J207ZiE7J21DQor7J206riw64W4DQor7J207JiB7IiYDQor7J207KCQ7Z2sDQor7J207JaR7ZmYDQor7J206riw6recDQor7J207JiB7IiYDQor7J207IK867SJDQor7J207LC97Z2sDQor7J206rK97ZicDQor7J207JiB7IiYDQor7J207Jyk7ISdDQor7J2066qF7IiZDQor7J206riw6rCRDQor7J207JiB7IiYDQor7J207Z2s66GdDQor7J207J286recDQor7J207KeE7JiBDQor7J207JiB7IiYDQor7J207ISd6recDQor7J2067OR7Zi4DQor7J2064W464+EDQor7J207JiB7IiYDQor7J2064Ko6recDQor7J207YyU67CwDQor7J207ISx7IicDQor7J207JiB7IiZDQor7J2067OR7JWUDQor7J20642V7ZmUDQor7J2067O17ZGcDQor7J207JiB7IiZDQor7J207KCV642VDQor7J207YyQ66y0DQor7J20IOydvA0KK+ydtOyYgeyImQ0KK+ydtOyduOq1rA0KK+ydtOuqheynhA0KK+ydtOynhOyLnQ0KK+ydtOyYgeyImQ0KK+ydtOyiheuqqQ0KK+ydtO2VnOyglQ0KK+ydtOygkOyImA0KK+ydtOyYgeyInA0KK+ydtO2DnOyImA0KK+ydtOyYpeq4sA0KK+ydtOq3nOyEnQ0KK+ydtOyYgeyInA0KK+ydtO2MkO2ZmA0KK+ydtOyEse2VnA0KK+ydtOyDgeyImQ0KK+ydtOyYgeyInA0KK+ydtOyYpOyhsA0KK+ydtOywrOyhsA0KK+ydtOq3nO2drA0KK+ydtOyYgeyInA0KK+ydtOyaqeyYgQ0KK+ydtOyasOu2hA0KK+ydtO2aqO2drA0KK+ydtOyYgeyLnQ0KK+ydtOq3nOuqqA0KK+ydtOywveyatA0KK+ydtOyZuOq1kA0KK+ydtOyYgeyLnQ0KK+ydtOyasOyXsA0KK+ydtOusuOuNlQ0KK+ydtOunjO2YuA0KK+ydtOyYgeyXsA0KK+ydtOunjOyImA0KK+ydtOqzhOydtA0KK+ydtOq4sOyImA0KK+ydtOyYgeyXtA0KK+ydtOuFuO2drA0KK+ydtOyepeq4sA0KK+ydtOydgOyjvA0KK+ydtOyYgeyYpA0KK+ydtO2DnOyasA0KK+ydtOyaqeq3nA0KK+ydtOuzkeyekA0KK+ydtOyYgeyYpQ0KK+ydtOq0keyInA0KK+ydtOygleyYpQ0KK+ydtOyerOyjvA0KK+ydtOyYgeyasA0KK+ydtOunpO2DgQ0KK+ydtOyYgeyImA0KK+ydtOuqheyDgQ0KK+ydtOyYgeybhQ0KK+ydtO2MkOyekA0KK+ydtOyYpeq2jA0KK+ydtO2VtOqzpA0KK+ydtOyYgeybkA0KK+ydtOq3vOywrA0KK+ydtOqzoe2VmQ0KK+ydtOyiheq3vA0KK+ydtOyYgeycpA0KK+ydtOyYpOyasA0KK+ydtOyerOyDgQ0KK+ydtOyYgeykkQ0KK+ydtOyYgeyduA0KK+ydtOuRkOyasA0KK+ydtOq3nOyYpQ0KK+ydtO2Yle2YuA0KK+ydtOyYgeydvA0KK+ydtOyYgeyaqQ0KK+ydtOyyoO2ZmA0KK+ydtOqyveuwsA0KK+ydtOyYgeydvA0KK+ydtOyDgeyyoA0KK+ydtOyerO2YhA0KK+ydtOuzke2YhA0KK+ydtOyYgeyekA0KK+ydtOqyveu5iA0KK+ydtOq3vOyEoA0KK+ydtOyDgeyVhQ0KK+ydtOyYgeyerA0KK+ydtOygleyYpA0KK+ydtOq0keyIoA0KK+ydtOuPmeyEuA0KK+ydtOyYgeyhsA0KK+ydtO2DnOyaqQ0KK+ydtO2Yleq1rA0KK+ydtOyInOq1rA0KK+ydtOyYgeyhsA0KK+ydtOuPme2drA0KK+ydtOy5mOq3vA0KK+ydtOyduOyatA0KK+ydtOyYgeyhsA0KK+ydtOygkOywrA0KK+ydtOyDgeyXsA0KK+ydtOyImOyXsA0KK+ydtOyYgeyjvA0KK+ydtOqyveyynA0KK+ydtOydgO2drA0KK+ydtOuPmeuPhA0KK+ydtOyYgeynhA0KK+ydtOyYgeyImA0KK+ydtO2VnOyEnQ0KK+ydtOyYgeyInA0KK+ydtOyYgeyyoA0KK+ydtOuRkOyImA0KK+ydtOygleykgA0KK+ydtOq4sOyEnQ0KK+ydtOyYge2DnA0KK+ydtOyGjOqyvQ0KK+ydtOyEuO2YhA0KK+ydtO2ajOyatA0KK+ydtOyYge2VmQ0KK+ydtOyiheyImA0KK+ydtOyDgeuPmQ0KK+ydtOyEne2drA0KK+ydtOyYge2YuA0KK+ydtOyYgeu2hA0KK+ydtOyngOyLnQ0KK+ydtOyaqeyyoA0KK+ydtOyYge2YuA0KK+ydtO2DnO2ZmA0KK+ydtOq4sOuztQ0KK+ydtOyjvOyYgQ0KK+ydtOyYge2YuA0KK+ydtO2VhOqyvQ0KK+ydtOywve2aqA0KK+ydtOyDgeyerA0KK+ydtOyYge2YuA0KK+ydtOyInOunjA0KK+ydtOq4sOyehA0KK+ydtOuzke2DnA0KK+ydtOyYge2YuA0KK+ydtOyepeyihQ0KK+ydtOuLrO2XjA0KK+ydtOuvuOyyoA0KK+ydtOyYge2YuA0KK+ydtO2YhOu0iQ0KK+ydtO2VnOyCvA0KK+ydtOyEoOyyoA0KK+ydtOyYge2YuA0KK+ydtO2ZjeqyvQ0KK+ydtOuMgOybkA0KK+ydtOyiheyhsA0KK+ydtOyYge2YuA0KK+ydtOyYpOq3nA0KK+ydtOqyveustQ0KK+ydtOyDgeyYpQ0KK+ydtOyYge2ZlA0KK+ydtOyerOyImQ0KK+ydtOyCvOycpA0KK+ydtO2ZjeuwsA0KK+ydtOyYge2ZmA0KK+ydtOuzkeyekA0KK+ydtOyYgeyDgQ0KK+ydtO2YhO2ZlA0KK+ydtOyYge2ZmA0KK+ydtOygle2ZmA0KK+ydtO2VnOyInA0KK+ydtOynhOyVlA0KK+ydtOyYge2ZmA0KK+ydtOuqhey2mA0KK+ydtOyXrO2YuA0KK+ydtOyduO2ZlA0KK+ydtOyYge2biA0KK+ydtOyEuOyLnQ0KK+ydtOq4sOygkA0KK+ydtOyEseumvQ0KK+ydtOyYge2biA0KK+ydtOyYgeygnA0KK+ydtO2YleuztQ0KK+ydtOygle2aqA0KK+ydtOyYge2biA0KK+ydtOuzteyErQ0KK+ydtOyduO2cmA0KK+ydtO2DnOuPmQ0KK+ydtOyYge2drA0KK+ydtOygkOykgA0KK+ydtOyerOuylA0KK+ydtOybkOq1rA0KK+ydtOyYge2drA0KK+ydtOuvuOyEsQ0KK+ydtOyDge2YuA0KK+ydtOy2mOyyoA0KK+ydtOyYge2drA0KK+ydtOuvuOu0iQ0KK+ydtOyEoOuPhA0KK+ydtOykkeyXtA0KK+ydtOyYge2drA0KK+ydtOq3vOyhsA0KK+ydtOydtOuztQ0KK+ydtOyEoOyInA0KK+ydtOyYge2drA0KK+ydtOyYgeyImQ0KK+ydtOygleydtA0KK+ydtOuzkeqyvQ0KK+ydtOyYpOq3vA0KK+ydtOyduOq2jA0KK+ydtOynhOyjvA0KK+ydtOybkOyYgQ0KK+ydtOyYpeqyvQ0KK+ydtOyCvOydvA0KK+ydtOyImOq3nA0KK+ydtO2YuOyInA0KK+ydtOyYpeq4sA0KK+ydtOq0keuqhQ0KK+ydtO2DnO2ZmA0KK+ydtOyynOyImA0KK+ydtOyYpeuCnA0KK+ydtCDsiJgNCivsnbTqt5zsiJkNCivsnbTsnqzsoJUNCivsnbTsmKXrj4wNCivsnbTsnKTqsJENCivsnbTtmLjtmZgNCivsnbTshJ3tg5wNCivsnbTsmKXrnoANCivsnbTsnoTsmrANCivsnbTsmIHtmLgNCivsnbTrtInrj5kNCivsnbTsmKXrnoANCivsnbTsg4HtmLgNCivsnbTsnKTsmKQNCivsnbTsnbjrnpgNCivsnbTsmKXroKgNCivsnbTshKDrsLANCivsnbTsnqzsmIENCivsnbTsooXsiJgNCivsnbTsmKXrtoQNCivsnbTqtZDsiJwNCivsnbTsmIHrqqkNCivsnbTqt7nsnbQNCivsnbTsmKXshKANCivsnbTrs5HqtZANCivsnbTquLDsmqkNCivsnbTshLHrsLANCivsnbTsmKXshKANCivsnbTsp4TsnbQNCivsnbTtmLjsmKQNCivsnbTshLHtmLgNCivsnbTsmKXsiJwNCivsnbTsooXrj4QNCivsnbTqs7XsiKANCivsnbTrrLjtlZkNCivsnbTsmKXsl7ANCivsnbTsnbTrjZUNCivsnbTsnqzsnoQNCivsnbTsnqztlbQNCivsnbTsmKXsnbQNCivsnbTspIDtmIQNCivsnbTsmKXrjZUNCivsnbTrj5ntmZgNCivsnbTsmKXsnpANCivsnbTsmKTsl7ANCivsnbTri6zrj5kNCivsnbTtg5zrjIANCivsnbTsmKXso7wNCivsnbTrhbjsnbwNCivsnbTrp4zqsbQNCivsnbTsnbjrj4QNCivsnbTsmKXso7wNCivsnbTsooXtmZQNCivsnbTrqoXshJ0NCivsnbTshJ3snqwNCivsnbTsmKXtnawNCivsnbTsnbjshKANCivsnbTsgrztlYQNCivsnbTqsr3spIANCivsnbTsmYTqta0NCivsnbTshKDsm5ANCivsnbTsmqnsi50NCivsnbTtg5zsi50NCivsnbTsmYTrspQNCivsnbTrjZXsoJUNCivsnbTtg5zssqANCivsnbTsiJjtmLgNCivsnbTsmYTsnbQNCivsnbTquLDshKANCivsnbTslrjroZ0NCivsnbQg7JqpDQor7J207JmE7Z2sDQor7J207Jew6recDQor7J206riw7IiYDQor7J206riw7Zi4DQor7J207JmV7J6sDQor7J207YOc67CwDQor7J207ZmU7KeEDQor7J207Z2s7ZmUDQor7J207JmV7KGwDQor7J207ZW07Z2sDQor7J207KCQ7J28DQor7J207J2A6riwDQor7J207Jm464KoDQor7J2064+Z7ZmNDQor7J207KeA7LKgDQor7J207IKs656ADQor7J207Jm47IicDQor7J207KKF6riwDQor7J207IOB66OhDQor7J206reg7KGwDQor7J207Jm47KSADQor7J207YOc7ZmYDQor7J207IaM656YDQor7J20IOynhA0KK+ydtOyaqeqxtA0KK+ydtOunkO2YuA0KK+ydtOq3vO2YuQ0KK+ydtOygle2ZmA0KK+ydtOyaqeqyrA0KK+ydtOyDgeq4iA0KK+ydtOuzkeudvQ0KK+ydtO2dpeyImA0KK+ydtOyaqeq0gA0KK+ydtOuMgOybkA0KK+ydtOyiheuzkQ0KK+ydtOydgO2YuA0KK+ydtOyaqeq1rA0KK+ydtOyYgeuPmQ0KK+ydtOynhOykgA0KK+ydtOyiheyImA0KK+ydtOyaqeq1rA0KK+ydtO2YleyEoA0KK+ydtO2VtOyImA0KK+ydtOyasO2ZmA0KK+ydtOyaqeq1rQ0KK+ydtOyduOygnA0KK+ydtOygkOyYgQ0KK+ydtOyInOygkA0KK+ydtOyaqeq2jA0KK+ydtOqyveuMgA0KK+ydtOyEneyaqQ0KK+ydtO2VmeuFuA0KK+ydtOyaqeq3nA0KK+ydtOuqheyEsQ0KK+ydtOywqOyehA0KK+ydtOqyve2YuA0KK+ydtOyaqeq4sA0KK+ydtOuPmeygkA0KK+ydtOuMgOyImQ0KK+ydtOqxtOusuA0KK+ydtOyaqeq4sA0KK+ydtOqzhO2DgQ0KK+ydtOu0ieywrA0KK+ydtOynhOyWkQ0KK+ydtOyaqeuTnQ0KK+ydtOyYgeq1rQ0KK+ydtOu0ieyglQ0KK+ydtOyEseuPmQ0KK+ydtOyaqeusuA0KK+ydtOyghOyVlA0KK+ydtOyihe2YhA0KK+ydtOyynOyduA0KK+ydtOyaqeusuA0KK+ydtOyGjOyYgQ0KK+ydtO2aqOybkA0KK+ydtOyYgeuNlQ0KK+ydtOyaqeuwsQ0KK+ydtOyIoOuFhA0KK+ydtOq1rO2YlQ0KK+ydtOy2mO2YuA0KK+ydtOyaqeuztQ0KK+ydtOuqheuPhA0KK+ydtOyYgeuPmQ0KK+ydtOyehOyImQ0KK+ydtOyaqeyEnQ0KK+ydtOuzkeyLnQ0KK+ydtOq4iOyLnQ0KK+ydtOyaqeyInA0KK+ydtOyaqeyEnQ0KK+ydtOyduOyXtA0KK+ydtOq4sOyImA0KK+ydtO2DnOuNlQ0KK+ydtOyaqeyImA0KK+ydtOygnOyaqQ0KK+ydtOq3vOyasQ0KK+ydtOykke2DnA0KK+ydtOyaqeyImA0KK+ydtOunjO2YuA0KK+ydtOyKueybkA0KK+ydtO2VtOq3nA0KK+ydtOyaqeyLnQ0KK+ydtOywqOy2mA0KK+ydtOq3nOyImA0KK+ydtOyWuO2YhA0KK+ydtOyaqeyXhQ0KK+ydtOyEse2ZlA0KK+ydtOuzteumvA0KK+ydtOuqheuPjA0KK+ydtOyaqeyXhQ0KK+ydtOykgOuztQ0KK+ydtOyaqeyynA0KK+ydtOycpO2YuA0KK+ydtOyaqeyXtA0KK+ydtO2MkOu2hA0KK+ydtOyMjeq2jA0KK+ydtOydkeq1rA0KK+ydtOyaqeyatA0KK+ydtOyerOynhA0KK+ydtO2DnOuztQ0KK+ydtOyiheuekQ0KK+ydtOyaqeyatA0KK+ydtOycoOyLnQ0KK+ydtOydteyEsQ0KK+ydtOyerO2ZmA0KK+ydtOyaqeybkA0KK+ydtOuPmeuLrA0KK+ydtOuFuOyZlQ0KK+ydtOydvOyihQ0KK+ydtOyaqeyhsA0KK+ydtOyYgeyEnQ0KK+ydtOunkOq2jA0KK+ydtO2DnOyhsA0KK+ydtOyaqeyjvA0KK+ydtOuzkeyYgQ0KK+ydtOyCvOyXsA0KK+ydtOyiheyekA0KK+ydtOyaqeyjvA0KK+ydtOuzteyDgQ0KK+ydtOygleyekA0KK+ydtOuMgO2ZjQ0KK+ydtOyaqeyyoA0KK+ydtOygle2doA0KK+ydtOuzkeyatA0KK+ydtOunjOynhA0KK+ydtOyaqeyyoA0KK+ydtO2DnOuTnQ0KK+ydtOywveq1rQ0KK+ydtOyEseyImA0KK+ydtOyaqey2nA0KK+ydtOyInOq3nA0KK+ydtOunjOyEoA0KK+ydtOuMgOyekA0KK+ydtOyaqe2DnA0KK+ydtOyInOyaqQ0KK+ydtO2drOyImA0KK+ydtOyEneq3nA0KK+ydtOyaqe2DnQ0KK+ydtOyInOydvA0KK+ydtOyDgeyYpQ0KK+ydtOyEse2drA0KK+ydtOyaqe2DnQ0KK+ydtOuPhO2biA0KK+ydtOyihe2ctA0KK+ydtOuRkOykgA0KK+ydtOyaqe2DnQ0KK+ydtOyYgeq3oA0KK+ydtO2VtOyLnQ0KK+ydtOyYge2ZmA0KK+ydtOyaqe2MlA0KK+ydtOyGjOyEnQ0KK+ydtOyEneyEoA0KK+ydtOyerOyekA0KK+ydtOyaqe2MlA0KK+ydtOygley2nA0KK+ydtOqwkeyLnQ0KK+ydtOyYgeyImA0KK+ydtOyaqe2VnA0KK+ydtO2aqOuPhA0KK+ydtOyDgeywqA0KK+ydtOyEseq1kA0KK+ydtOyaqe2YgQ0KK+ydtOycpOyImQ0KK+ydtOyYgeyImQ0KK+ydtOuPmeyaqQ0KK+ydtOyaqe2YhA0KK+ydtOyatOyatA0KK+ydtOyerOyekA0KK+ydtOyZuOuPhA0KK+ydtOyaqe2YuA0KK+ydtOuqheyasQ0KK+ydtOycpOyasQ0KK+ydtOybkO2DnQ0KK+ydtOyaqe2ZlA0KK+ydtOyDge2YuA0KK+ydtOy2mO2YuA0KK+ydtOuPmeq1rQ0KK+ydtOyaqe2ZmA0KK+ydtOygle2biA0KK+ydtOq4sO2YuA0KK+ydtO2YuOycqA0KK+ydtOyaqe2ZmA0KK+ydtOydgOyyoA0KK+ydtOy2mOybhQ0KK+ydtOunjOuPjA0KK+ydtOyaqe2drA0KK+ydtOyYgeq4sA0KK+ydtO2DnOq3nA0KK+ydtOygleybkA0KK+ydtOyaqe2drA0KK+ydtOyDgeuPmQ0KK+ydtOyEseuMgA0KK+ydtO2YnOyImA0KK+ydtOyasOq3vA0KK+ydtOuqhe2YhA0KK+ydtOuzkeyaqQ0KK+ydtOyGjOyEoA0KK+ydtOyasOuPmQ0KK+ydtOyngOy5mQ0KK+ydtOuylOyKuQ0KK+ydtOycpOunjA0KK+ydtOyasOuPmQ0KK+ydtOyyoOugqA0KK+ydtOyYgeywvQ0KK+ydtOyDgeyLnQ0KK+ydtOyasOyEnQ0KK+ydtOyaqeyErQ0KK+ydtOyiheynhA0KK+ydtOuqheyLnQ0KK+ydtOyasOyLnQ0KK+ydtO2YuOq4sA0KK+ydtOuPiO2DnA0KK+ydtOyInOq3nA0KK+ydtOyasOyLnQ0KK+ydtOyaqeu2hA0KK+ydtOykke2DnQ0KK+ydtOqyveykgA0KK+ydtOyasOyLnQ0KK+ydtOuzkeyhsA0KK+ydtOuqheyaqQ0KK+ydtOyerOyXtA0KK+ydtOyasOyLnQ0KK+ydtOydkeydvA0KK+ydtOyYgeyjvA0KK+ydtOynhOqwgA0KK+ydtOyasOyehA0KK+ydtOygleyaqQ0KK+ydtOyYgeyEoA0KK+ydtOq3gOyEnQ0KK+ydtOyasO2ZmA0KK+ydtOyngO2ZjQ0KK+ydtOunkO2DnA0KK+ydtO2VtOyVlA0KK+ydtOyaseuFuA0KK+ydtOu2hOyImA0KK+ydtOyerO2drA0KK+ydtO2VreyasQ0KK+ydtOyase2ZmA0KK+ydtOqwkeuPhA0KK+ydtO2YhOyekA0KK+ydtOyImO2ZmA0KK+ydtOyase2ZmA0KK+ydtO2YuO2VmQ0KK+ydtOyasOyImA0KK+ydtOuCqOyImA0KK+ydtOyatOyEnQ0KK+ydtOyYgeyEnQ0KK+ydtOy2qeyLnQ0KK+ydtOyLoOyImA0KK+ydtOyatOyyoA0KK+ydtOuCqOykgA0KK+ydtO2DnOyDgQ0KK+ydtOyYgeuCqA0KK+ydtOyatO2VmQ0KK+ydtOygleygkA0KK+ydtO2YhOuPhA0KK+ydtOuzkeydtA0KK+ydtOyatO2YuA0KK+ydtOyDgeyerA0KK+ydtOq4sOyjvA0KK+ydtOydgOyInA0KK+ydtOybheyXtA0KK+ydtOyiheyekA0KK+ydtOydhOyImA0KK+ydtOykgOyaqQ0KK+ydtOybkOq1rA0KK+ydtOunjOyXtA0KK+ydtOuzteyaqQ0KK+ydtOu2hOyduA0KK+ydtOybkOq3nA0KK+ydtOyjvO2ZlA0KK+ydtOygleunjA0KK+ydtO2MkOu5iA0KK+ydtOybkOq3nA0KK+ydtOu0ieyyoA0KK+ydtOywveyImA0KK+ydtOq0ke2YuA0KK+ydtOybkOq3nA0KK+ydtO2aqOq0gA0KK+ydtOydkeyImQ0KK+ydtOyiheydvA0KK+ydtOybkOq4sA0KK+ydtOyEneuFhA0KK+ydtOybkOyLnQ0KK+ydtOu0ieyekA0KK+ydtOybkOq4sA0KK+ydtO2aqOu0iQ0KK+ydtOqzhOuCqA0KK+ydtOyImOuvuA0KK+ydtOybkOq4uA0KK+ydtOyyoOyhsA0KK+ydtOyKueq4sA0KK+ydtOq0ke2YuA0KK+ydtOybkOuMgA0KK+ydtOyEoOyLoA0KK+ydtOusuOyaqQ0KK+ydtO2VtO2YuA0KK+ydtOybkOuwsA0KK+ydtO2DnOu2hA0KK+ydtO2VnOq3nA0KK+ydtOq4sOyZhA0KK+ydtOybkOuwsA0KK+ydtCDsmKUNCivsnbTsnYTtmIQNCivsnbTsp4TtmZgNCivsnbTsm5DrtoQNCivsnbTsmrDrsLANCivsnbTsmIHtmLgNCivsnbTquLDsiJwNCivsnbTsm5DshowNCivsnbTsnqzquLANCivsnbTshKDsoJwNCivsnbTshozsiJwNCivsnbTsm5DsiJgNCivsnbTsmqntlZgNCivsnbTrj5nsmKUNCivsnbTsmIHsi50NCivsnbTsm5DsiJgNCivsnbTrjIDquLANCivsnbTshKDsl7QNCivsnbTshLHtg5wNCivsnbTsm5DsiJgNCivsnbTsg4HsiJgNCivsnbTsmqntmIQNCivsnbTsooXsmrQNCivsnbTsm5Dsi50NCivsnbTsnqztmLgNCivsnbTspIDtmIQNCivsnbTsnoTsiJgNCivsnbTsm5Dsi50NCivsnbTsiJjsmrENCivsnbTtg5zstpwNCivsnbTsmIHrj4gNCivsnbTsm5DsmIENCivsnbTshozrk50NCivsnbTtmITshK0NCivsnbTrs5Hsi50NCivsnbTsm5DsmrANCivsnbTshLHtmZgNCivsnbTrtInrqqgNCivsnbTsmqntl4wNCivsnbTsm5DsmrANCivsnbTrrLTsmYQNCivsnbTsmIHsooUNCivsnbTsspztm4gNCivsnbTsm5DsnbwNCivsnbTrj5nsp4QNCivsnbTrtInshKANCivsnbTrqbTstpwNCivsnbTsm5DsnpANCivsnbTqsr3quLgNCivsnbTsg4HsmYQNCivsnbTtlZzssqANCivsnbTsm5DsnqwNCivsnbTsp4TtmIQNCivsnbTqtZDtjJANCivsnbTsmIHsmYQNCivsnbTsm5DsobANCivsnbTrr7jtnLQNCivsnbTssL3shKANCivsnbTspJHshKANCivsnbTsm5Dsp4QNCivsnbTso7zslpENCivsnbTsm5DstpwNCivsnbTrtInssYQNCivsnbTsm5DssqANCivsnbTrj4TshLENCivsnbTsmqnsm4UNCivsnbTrrLjslpENCivsnbTsm5DstpwNCivsnbTsirnsnpANCivsnbTrr7jrjZUNCivsnbTtmJXqtZANCivsnbTsm5DtmJUNCivsnbTsoJXtnawNCivsnbTsnqXrs7UNCivsnbTsmqnqs4QNCivsnbTsm5DtmLgNCivsnbTquLjquLANCivsnbTsooXsmqkNCivsnbTsiJjtmIQNCivsnbTsm5DtmZQNCivsnbTrs7Xqt7wNCivsnbTsnbjsnpANCivsnbTsg4Hqsr0NCivsnbTsm5DtnawNCivsnbTsiJjshLENCivsnbTrqoXqt7wNCivsnbTsnpDrk50NCivsnbTsm5Tqs4QNCivsnbTsnqzsi50NCivsnbTqtJHtg50NCivsnbTrgqjsooUNCivsnbTsm5TshKANCivsnbTtmJXshJ0NCivsnbTsoJXrqqkNCivsnbTsnqzro6ENCivsnbTsm5TshLENCivsnbTrjIDtmIQNCivsnbTssqDrtoQNCivsnbTsoJzqt5wNCivsnbTsm5TtlZwNCivsnbTquIjtm4gNCivsnbTsoJztlZkNCivsnbTsnbzrjIANCivsnbTsm5TtnawNCivsnbTshJ3tmLgNCivsnbTrs5Hsl7ANCivsnbTsg4HshK0NCivsnbTsnITrp4wNCivsnbTrrLjsm4UNCivsnbTrs5HtmZgNCivsnbTsnqzquIgNCivsnbTsnITshK0NCivsnbTsiJjtmLgNCivsnbTsmrTshK0NCivsnbTsnqzrj5kNCivsnbTsnITsiJkNCivsnbTsmIHsnqwNCivsnbTsooXsnKQNCivsnbTslpHsiJkNCivsnbTsnITstpwNCivsnbTtmZTsnbQNCivsnbTquLDsiJgNCivsnbTtg5zslZQNCivsnbTsnITtmLgNCivsnbTshJ3snpANCivsnbTquLDsuaANCivsnbTrkZDrtIkNCivsnbTsnKDsl7QNCivsnbTqsJHtmZgNCivsnbTsnqzsmKQNCivsnbTquLDsnKQNCivsnbTsnKDsm5ANCivsnbTsvozsoJUNCivsnbTsoJXqt5wNCivsnbTssL3shJ0NCivsnbTsnKDtmZgNCivsnbTtmITsiJgNCivsnbTsnKDqta0NCivsnbTqsbTqt7wNCivsnbTsnKHtg50NCivsnbTshJ3smqkNCivsnbTsiJzqt7wNCivsnbTsiJzslaANCivsnbTsnKTqt5wNCivsnbTssYTsmrANCivsnbTsgrzrj4wNCivsnbTstpjri6wNCivsnbTsnKTqt7wNCivsnbTqsJXrnb0NCivsnbTssL3shKANCivsnbQg7Zi4DQor7J207Jyk6riwDQor7J207JeF6rWQDQor7J206rK964+EDQor7J207Zqo7JewDQor7J207Jyk6riwDQor7J207J6s7ISgDQor7J207IS46ri4DQor7J207LaY67SJDQor7J207Jyk64W4DQor7J207JiB7JewDQor7J207Iic7IiYDQor7J207Jm47Je0DQor7J207Jyk66eMDQor7J207IOB7LaYDQor7J207YOc7ISgDQor7J2067OR7IudDQor7J207Jyk7IiYDQor7J207Iic67CVDQor7J207YOc7ZWZDQor7J207JuQ7JuQDQor7J207Jyk7IiYDQor7J2066qF7Zi4DQor7J207KeA7JuQDQor7J207YOc7ZalDQor7J207Jyk7IudDQor7J206rK97YOcDQor7J2064+Z7ZiEDQor7J207LKg7KSADQor7J207Jyk7JilDQor7J207IiY64+ZDQor7J207KO87JilDQor7J207KKF7IiYDQor7J207Jyk7JuQDQor7J207ISx7ZiEDQor7J207J6s7JiBDQor7J207ZiV7IiYDQor7J207Jyk7J6sDQor7J207KKF7JikDQor7J207YyQ7JqpDQor7J207JuQ7KeEDQor7J207Jyk7KCVDQor7J207YOB7IiYDQor7J207Jyk6raMDQor7J2067OR7JiBDQor7J207Jyk7KKFDQor7J207KKF642VDQor7J207J286rG4DQor7J207J207KO8DQor7J207Jyk7KKFDQor7J2067aA7Z2sDQor7J206riw7KSADQor7J207KeA7IudDQor7J207Jyk7KeEDQor7J207JuQ7Z2sDQor7J207ISx7ZmpDQor7J207ISg7JilDQor7J207Jyk7LGEDQor7J207IK87YOdDQor7J207YOc7Je0DQor7J207KCV7J28DQor7J207Jyk7LKgDQor7J207YyQ7ZWEDQor7J2065GQ7IiYDQor7J207ZmN7JewDQor7J207Jyk7LKgDQor7J207IOB7JqpDQor7J207JiB7ZmUDQor7J207Zi47JqwDQor7J207Jyk7LKgDQor7J206rSR6rWtDQor7J207IiY6raMDQor7J207L6M7YOcDQor7J207Jyk7ZiEDQor7J2066+87KCVDQor7J207YOc7ZWZDQor7J2067OR7Zi4DQor7J207Jyk7ZiEDQor7J2066qF6riIDQor7J207IiY7KO8DQor7J207Zic7ZiEDQor7J207Jyk7ZuIDQor7J207JuU64yADQor7J207YOc67aEDQor7J206rWs7LCsDQor7J207Jyk7Z2sDQor7J207ZeM7JiBDQor7J207ZmN7YOcDQor7J207Jqp7IicDQor7J207Jy16riwDQor7J207YOc7ZuIDQor7J207J247IigDQor7J207ZiE66qpDQor7J207J2A6rK9DQor7J207ZW07JiBDQor7J2064Ko6riwDQor7J207Jyk7YOcDQor7J207J2A6rSRDQor7J207ZeM7Z2sDQor7J20IO2ZmA0KK+ydtOywve2ZjQ0KK+ydtOydgOyImQ0KK+ydtOqwleyasA0KK+ydtOunjO2YhA0KK+ydtO2VnOyVoA0KK+ydtOydgOyYgQ0KK+ydtOycpOy2nA0KK+ydtOyEseyEoA0KK+ydtOqxtO2drA0KK+ydtOydgOyasA0KK+ydtOyDge2VtA0KK+ydtO2MkOq3vA0KK+ydtOygle2YhA0KK+ydtOydgOyhsA0KK+ydtOyerOyLnQ0KK+ydtOuCqOumvQ0KK+ydtOqyveyLnQ0KK+ydtOydgOyjvA0KK+ydtOyEoOy5oA0KK+ydtOyEseuNlQ0KK+ydtOuPhOyLnQ0KK+ydtOydgOyjvA0KK+ydtO2YhOq3nA0KK+ydtOuRkOynhA0KK+ydtOyYgeyekA0KK+ydtOydgOyjvA0KK+ydtO2YhOq0gA0KK+ydtOyiheuMgA0KK+ydtOuqheyEsQ0KK+ydtOydgOyyoA0KK+ydtOyhsOuhgA0KK+ydtOu0ie2drA0KK+ydtOqyve2drA0KK+ydtOydgO2DgQ0KK+ydtOyDgey2qQ0KK+ydtOq0keyInA0KK+ydtOqyveyekA0KK+ydtOydhOyEoA0KK+ydtOuRkO2ZmA0KK+ydtOyihe2VnA0KK+ydtOyYgeq4sA0KK+ydtOydhOyjvA0KK+ydtOq4sO2DnQ0KK+ydtOydtOyYpA0KK+ydtOyerOqwlQ0KK+ydtOydhO2YlQ0KK+ydtOyYgeyyoA0KK+ydtOyCvO2ZjQ0KK+ydtO2bhO2drA0KK+ydtOydkeuPhA0KK+ydtOygleyasA0KK+ydtOq4sOq3nA0KK+ydtOyduO2biA0KK+ydtOydkeuztQ0KK+ydtOyerO2drA0KK+ydtOywqOyasQ0KK+ydtOyKueu2hA0KK+ydtOydkeykgA0KK+ydtOyMjeq3nA0KK+ydtOq0keyatA0KK+ydtOqzhOyekA0KK+ydtOydmOyGjA0KK+ydtCDshJ0NCivsnbTslpHstpwNCivsnbTqs6DslYgNCivsnbTsnZjsiJgNCivsnbTrrLTsmqkNCivsnbTsmIHtnaANCivsnbTtl4zsl7ANCivsnbTsnZjsi6ANCivsnbTspIDsnqwNCivsnbTrjIDqt7wNCivsnbTsoJXsiJwNCivsnbTsnZjsmqkNCivsnbTsnbjrj4QNCivsnbTsg4HsiJgNCivsnbTsiJztmLgNCivsnbTsnZjsm4UNCivsnbTrp4zquLANCivsnbTrs5HtmIQNCivsnbTsiJjsnYANCivsnbTsnZjstpwNCivsnbTsnKTshJ0NCivsnbTquIjtg50NCivsnbTrjZXtnawNCivsnbTsnZjtmZgNCivsnbTsmIHrgqgNCivsnbTsnqzsiJgNCivsnbTtlZzsobANCivsnbTsnbTqsr0NCivsnbTtlbTrp4wNCivsnbTsmIHstpgNCivsnbTsiJzsnKQNCivsnbTsnbTqt7wNCivsnbTsp4TsiJgNCivsnbTsg4HtlbQNCivsnbTrgqjrj4wNCivsnbTsnbTrgqgNCivsnbTsnqzshJ0NCivsnbTqsr3sp4QNCivsnbTssKjsnpANCivsnbTsnbTrk50NCivsnbTsmbjtlZgNCivsnbTspIDslZQNCivsnbTsnqztmIQNCivsnbTsnbTshJ0NCivsnbTsm5DqtIANCivsnbTsiJzrrLgNCivsnbTrrLjrjIANCivsnbTsnbTsmqkNCivsnbTsm5DshJ0NCivsnbTsmqnqtJENCivsnbTrp4zsp4QNCivsnbTsnbXtmIQNCivsnbTsuaDsl7QNCivsnbTtg5zqt5wNCivsnbTsnqXtlokNCivsnbTsnbjqs6QNCivsnbTsooXsiJkNCivsnbTsmKXtmIQNCivsnbTsg4HssqANCivsnbTsnbjqs6QNCivsnbTslpHsnbwNCivsnbTshJ3tmIQNCivsnbTsg4HsmqkNCivsnbTsnbjqtawNCivsnbTsnqztnawNCivsnbTsnbTqt5wNCivsnbTsg4Hqt5wNCivsnbTsnbjqt5wNCivsnbTspJHsiJwNCivsnbTtmZTrqoUNCivsnbTsm5TsiJwNCivsnbTsnbjrj5kNCivsnbTsjI3snKQNCivsnbTquLDqtZANCivsnbTssqDsoJUNCivsnbTsnbjrqqgNCivsnbTsnbTrsLANCivsnbTrqoXsg50NCivsnbTsiJjso7wNCivsnbTsnbjshJ0NCivsnbTshLHsnZgNCivsnbTsmIHshKANCivsnbTrhbjspIANCivsnbTsnbjshK0NCivsnbTqsr3so7wNCivsnbTsnZjrtIkNCivsnbTtmY3sobANCivsnbTsnbjsiJgNCivsnbTrrLTsiJgNCivsnbTsmIHssKwNCivsnbTsg4HstpgNCivsnbTsnbjsiJgNCivsnbTshJ3snpANCivsnbTsg4HtmZgNCivsnbTsnbzsiJkNCivsnbTsnbjsiJgNCivsnbTtmLjtm4gNCivsnbTqtJHtnawNCivsnbTsnqXsmrENCivsnbTsnbjsiJkNCivsnbTtlbTqt6ANCivsnbTshJ3snbQNCivsnbTsnqzsnYANCivsnbTsnbjsiJkNCivsnbTtg5zrjZUNCivsnbTtmY3qtowNCivsnbTsmIHrr7wNCivsnbTsnbjsmIENCivsnbTqt5zquIgNCivsnbTrs5HtmLgNCivsnbTsirnsoJwNCivsnbTsnbjsmrANCivsnbTsmqnrr7wNCivsnbTsnqzsnbQNCivsnbTtg5zrtoQNCivsnbTsnbjsnpANCivsnbTrp4zsooUNCivsnbTsmrTtnawNCivsnbTsnpDsl7ANCivsnbTsnbjssqANCivsnbTqtbDrtoQNCivsnbTrtoDsnqwNCivsnbTsnqzshK0NCivsnbTsnbjtkZwNCivsnbTshLHqs6QNCivsnbTrjIDsi50NCivsnbTquLDsmqkNCivsnbTsnbjtlqUNCivsnbTrrLjrjZUNCivsnbTtmZjrj4wNCivsnbTsiJnrk50NCivsnbTsnbjtmLgNCivsnbTsmIHtg5wNCivsnbTquLDsiJgNCivsnbTrqr3tmZgNCivsnbTsnbjtmLgNCivsnbTsmqnsoJUNCivsnbTslrjso7wNCivsnbTsmIHtmIQNCivsnbTsnbjtmLgNCivsnbTsmIHsnbgNCivsnbTsooXrjZUNCivsnbTspIDsm5ANCivsnbTsnbjtmZgNCivsnbTquIjrjIANCivsnbTrp5Dsi50NCivsnbTsmqnsp5ENCivsnbTsnbjtmZgNCivsnbTsg4HsiJwNCivsnbTtlZnrhYANCivsnbTrp4zshJ0NCivsnbTsnbjtmZgNCivsnbTsnbjtmZgNCivsnbTslpHsiJkNCivsnbTsirnsm4UNCivsnbTsnbzqtowNCivsnbTsp4TsmqkNCivsnbTsooXsobANCivsnbTrgqjqs6QNCivsnbTsnbzqt6ANCivsnbTsmrDrspQNCivsnbTtlbTquLANCivsnbTshLHtlZkNCivsnbTsnbzsg4kNCivsnbTrqoXrtIkNCivsnbTsiJjsi50NCivsnbTrqoXsmKUNCivsnbTsnbzsiJgNCivsnbTsmIHtmLgNCivsnbTstqnsmKUNCivsnbTtg5zrnoANCivsnbTsnbzsiJgNCivsnbTssL3roZ0NCivsnbTrs5HrjZUNCivsnbTsg4HtmLgNCivsnbTsnbzsiJwNCivsnbTrkZDsl7ANCivsnbTssKzsmIENCivsnbTsiJztmIQNCivsnbTsnbzsiJwNCivsnbTshLHrs7UNCivsnbTqsJDtg5wNCivsnbTshozsiJgNCivsnbTsnbzsiJwNCivsnbTshozrj4QNCivsnbTsmIHsiJkNCivsnbTtjJDtmLgNCivsnbTsnbzsm4UNCivsnbTtg5ztmLgNCivsnbTso7ztmIQNCivsnbTquLDsl7QNCivsnbTsnbzsm5ANCivsnbTrhbjqt7wNCivsnbTsooXtmIQNCivsnbTquIjsnqUNCivsnbTsnbztmLgNCivsnbTrp5Dsp4QNCivsnbTtmITsi50NCivsnbTsoJXsi50NCivsnbTsnbztmLgNCivsnbTrqoXsmKUNCivsnbTsnqzquLANCivsnbTrtInshJ0NCivsnbTsnbztmZgNCivsnbTshJztmIQNCivsnbTshLHqtZANCivsnbTslrjshLENCivsnbTsnbztmZgNCivsnbTsnZjtmZgNCivsnbTsg4HtmZQNCivsnbTshJ3qt5wNCivsnbTsnoTrk50NCivsnbTsiJzsmqkNCivsnbTtmITslYUNCivsnbTsooXquLgNCivsnbTsnoTshJ0NCivsnbTrgpnqtowNCivsnbTsnZjshJ0NCivsnbTssL3siJgNCivsnbTsnoTshKANCivsnbQg7IiYDQor7J207ZW07ZmNDQor7J207KCV7JilDQor7J207J6E7ISgDQor7J2067O07ISdDQor7J207KCV7Z2sDQor7J206rK97ISdDQor7J207J6E7ISgDQor7J207JiB7IicDQor7J207KCV66CoDQor7J207KCQ6ri4DQor7J207J6E7IiZDQor7J207Z2l7IiYDQor7J207ISg7ZiEDQor7J207ZW07LacDQor7J207J6E7IicDQor7J206rCR7ZWYDQor7J207ZWc7Zi4DQor7J207JiB7JqpDQor7J207J6E7IudDQor7J206rSR7J6QDQor7J2064+Z7KGwDQor7J2067O16rOkDQor7J207J6E7JqpDQor7J207JiB642VDQor7J207JuQ6recDQor7J207J247KSADQor7J207J6E7J20DQor7J207Jqp7YOcDQor7J207JiB7ISxDQor7J207KeE7Zi4DQor7J207J6E7J20DQor7J2067OR7Zi4DQor7J207KO87ZiBDQor7J207ZmN7JqpDQor7J207J6E7J6QDQor7J2064Ko7JewDQor7J2067OR7IiYDQor7J207ZW07Z2sDQor7J207J6E7ZWZDQor7J207IOB6riwDQor7J2064+E7JqpDQor7J207IK87J6QDQor7J207J6E7Zi4DQor7J206rSA7JqpDQor7J207IiY7JiBDQor7J2067SJ7Je0DQor7J207J6Q7JewDQor7J207J6s64usDQor7J207JiB7JikDQor7J207YyQ6recDQor7J207J6l6re8DQor7J206rec6regDQor7J207ZWc6rWtDQor7J2067aE7Jq0DQor7J207J6l64W4DQor7J207KCV7IiYDQor7J207JiB7IiYDQor7J207Iic66eMDQor7J207J6l642VDQor7J207ISd7IiYDQor7J20642V642VDQor7J207ZmU7IiYDQor7J207J6l67CwDQor7J207J287KO8DQor7J207IOB7IudDQor7J207KKF7JuQDQor7J207J6l7IeEDQor7J207KKF6riwDQor7J207ISx6rWtDQor7J2064+Z7Zi4DQor7J207J6l7IiYDQor7J207IOB64+EDQor7J207KCV7KGwDQor7J207Iic7Y+sDQor7J207J6l7IiYDQor7J207KCQ7KSRDQor7J207KeE7ISdDQor7J207ISg6reADQor7J207J6l7JikDQor7J206riw7J6sDQor7J207ISd7IiZDQor7J207JiB64+ZDQor7J207J6l7JqwDQor7J206rK96rCVDQor7J207J6s7JWgDQor7J207Jyk64+MDQor7J207J6l7JqwDQor7J206rCR7KGwDQor7J207J247IudDQor7J207ZW06riwDQor7J207J6l7JqxDQor7J2064+E6regDQor7J207LC97IiZDQor7J207J2R6riwDQor7J207J6l7KO8DQor7J207Iug7LKgDQor7J207ZW066WgDQor7J2067SJ6riwDQor7J207J6l7LaYDQor7J207YOc7ZmNDQor7J2064yA6rWtDQor7J206riI6rKsDQor7J207J6l7LaYDQor7J207JiB7LKgDQor7J207Jqp7KO8DQor7J207IOB6riwDQor7J207J6l7Zi4DQor7J207YOc7ZWcDQor7J207Kad7JilDQor7J207J6s7KSADQor7J207J6l7Zi4DQor7J207JiB7IiZDQor7J207J6s7ZiEDQor7J207YOc7J6sDQor7J207J6l7ZmYDQor7J207Jil7ZiBDQor7J207KKF7JiBDQor7J207JaR7IigDQor7J207J6l7ZmYDQor7J206riw7IudDQor7J207IiY7ZqMDQor7J207YOc6riwDQor7J207J6l7Z2sDQor7J206ri4642VDQor7J207KO866CkDQor7J207KCV7J6EDQor7J207J6s6rCRDQor7J207Jik7Z2sDQor7J207JiB7Je0DQor7J207JiB7ISdDQor7J207J6s6rK9DQor7J207LaY6ri4DQor7J206re87JiBDQor7J206rSR7IicDQor7J207J6s6rSADQor7J207ISd7JilDQor7J207JiB64usDQor7J207KKF6rWsDQor7J207J6s6rWsDQor7J207ZqM66a9DQor7J207JiB7IudDQor7J207IiZ7IiYDQor7J207J6s6rWsDQor7J207KCV7ZmUDQor7J207KCV6rWsDQor7J207KCV6ri4DQor7J207J6s6rWtDQor7J207KCQ7IicDQor7J2066qF7JqpDQor7J2067SJ7J6QDQor7J207J6s6raMDQor7J207IS467SJDQor7J207Jqp7Z2sDQor7J207J287IStDQor7J207J6s6regDQor7J207YyQ6rSRDQor7J207J6s7IudDQor7J207KKF7YOcDQor7J207J6s6re8DQor7J207ZW07ISdDQor7J207JiB7LKtDQor7J207KCV7ISdDQor7J207J6s6re8DQor7J207Jyk7Z2sDQor7J206rOE656YDQor7J2064+Z7JewDQor7J207J6s6riwDQor7J2064+E7IicDQor7J207YOc66eMDQor7J2066qF7J6QDQor7J207J6s6ri4DQor7J206rG07ZGcDQor7J2067OR64+MDQor7J2064+Z66y4DQor7J207J6s642VDQor7J206rOE6ri4DQor7J207KKF7JqpDQor7J2064us7ISxDQor7J207J6s642VDQor7J207KKF7KSRDQor7J207YyU7JqwDQor7J207Jil7LKgDQor7J207J6s642VDQor7J206riw66eMDQor7J207ISd64+EDQor7J207KKF7Y+sDQor7J207J6s64+EDQor7J207JuQ7Iq5DQor7J207KCQ64+ZDQor7J207YOc7IStDQor7J207J6s64+ZDQor7J207ISd7IiYDQor7J207ISx7JqpDQor7J207LC97ZWZDQor7J207J6s66eMDQor7J207ISx7ZWYDQor7J2066qF64+MDQor7J207J6s66qoDQor7J207J6s66eMDQor7J207IOB6rOkDQor7J2064+Z7KGwDQor7J206rCV6raMDQor7J207J6s66qFDQor7J2066m064yADQor7J207ISx7ZWYDQor7J207Ja17JqpDQor7J207J6s66y4DQor7J207JiB66eMDQor7J207JiB6recDQor7J207J6s7IiZDQor7J207J6s66y4DQor7J20IO2DnA0KK+ydtO2XjOustQ0KK+ydtO2VmOyEnQ0KK+ydtOyerOusuA0KK+ydtOyEseydtQ0KK+ydtOynhOuCqA0KK+ydtOu2hOyynA0KK+ydtOyerOuzkQ0KK+ydtOygle2ZlA0KK+ydtOq0keq3vA0KK+ydtOq4sOyaqQ0KK+ydtOyerOuztQ0KK+ydtOyiheyEnQ0KK+ydtOunjOyLnQ0KK+ydtOyEseq2jA0KK+ydtOyerOu0iQ0KK+ydtOuNleyXtA0KK+ydtOuPmeuCqA0KK+ydtOq3nOyerA0KK+ydtOyerOu0iQ0KK+ydtOydtO2XjA0KK+ydtO2YhO2doA0KK+ydtO2DnO2MlA0KK+ydtOyerOu0iQ0KK+ydtOyYgey2mA0KK+ydtOyduO2DnQ0KK+ydtOuqhe2biA0KK+ydtOyerOu2iA0KK+ydtOynhO2YhA0KK+ydtOyEseykgA0KK+ydtOydgOyImA0KK+ydtOyerOyEoA0KK+ydtO2cmOydvA0KK+ydtOyiheyEoA0KK+ydtO2dpe2ajA0KK+ydtOyerOyEoA0KK+ydtOuzkeyEsQ0KK+ydtO2DnO2MkA0KK+ydtOuNleykkQ0KK+ydtOyerOyEsQ0KK+ydtOqyve2YuA0KK+ydtOuRkOyhsA0KK+ydtOydvOyihQ0KK+ydtOyerOyEsQ0KK+ydtOyYgeuLtA0KK+ydtOuPmeyDnQ0KK+ydtOybkOyaqQ0KK+ydtOyerOyEsQ0KK+ydtOyatOunjA0KK+ydtO2DnO2DnQ0KK+ydtOyInOyImQ0KK+ydtOyerOyInA0KK+ydtOq4sO2YuA0KK+ydtOygleydvA0KK+ydtO2ZjeyasA0KK+ydtOyerOyLnQ0KK+ydtOyaqe2DnQ0KK+ydtOyiheywvQ0KK+ydtOyiheyYpA0KK+ydtOyerOyXsA0KK+ydtO2VmeyImA0KK+ydtOq4uOyHhA0KK+ydtO2VnOyatA0KK+ydtOyerOyXtA0KK+ydtOqyveywvQ0KK+ydtO2ZmOqzpA0KK+ydtOyngeyEoA0KK+ydtOyerOyYgQ0KK+ydtOyYgeycpA0KK+ydtOqyve2YhA0KK+ydtOyKueq4sA0KK+ydtOyerOyZhA0KK+ydtOuLrO2YhA0KK+ydtOyInOyXtA0KK+ydtO2DnOydtA0KK+ydtOyerOyasA0KK+ydtO2VmeyasA0KK+ydtOuPme2ZmA0KK+ydtOuzteyerA0KK+ydtOyerOyasA0KK+ydtOuPmeu0iQ0KK+ydtOuPme2YhA0KK+ydtO2drOyaqQ0KK+ydtOyerOyasA0KK+ydtOuqheyhsA0KK+ydtOyYgeq3nA0KK+ydtOyYgeyLnQ0KK+ydtOyerOyasA0KK+ydtO2YhOu2gA0KK+ydtOyaqeuPhA0KK+ydtOuLrOynhA0KK+ydtOyerOyasA0KK+ydtOu2hOyYgQ0KK+ydtOy2mOyWkQ0KK+ydtOyepe2DnA0KK+ydtOyerOybhQ0KK+ydtOyyoOuNlQ0KK+ydtOyYgeywqA0KK+ydtOq1rO2YuA0KK+ydtOyerOybkA0KK+ydtOyImOyerA0KK+ydtOyDgeyImA0KK+ydtOq3vOq3nA0KK+ydtOyerOycqA0KK+ydtOynhOuTnQ0KK+ydtOywveykgA0KK+ydtOyEseqyvQ0KK+ydtOyerOydtQ0KK+ydtO2MkOyEnQ0KK+ydtOygleyLnQ0KK+ydtOustOyerA0KK+ydtOyerOyduA0KK+ydtOycpO2DnQ0KK+ydtOyImOyasA0KK+ydtOyiheyYpQ0KK+ydtOyerOydvA0KK+ydtOygleuMgA0KK+ydtOyEse2doA0KK+ydtOq2jOyEuA0KK+ydtOyerOyglQ0KK+ydtOydvOyEnQ0KK+ydtOq0keyDgQ0KK+ydtOyjvO2YuA0KK+ydtOyerOykgA0KK+ydtOyYge2ctA0KK+ydtOycpOq4sA0KK+ydtOyaqeq0gA0KK+ydtOyerOyynA0KK+ydtOygkOyLrQ0KK+ydtOyEseyYpQ0KK+ydtOyEpOuNlQ0KK+ydtOyerOyynA0KK+ydtOyYgeyasA0KK+ydtOywveyImA0KK+ydtOyWkeyImA0KK+ydtOyerOyyoA0KK+ydtOuLrOuemA0KK+ydtOyXsOyYgQ0KK+ydtOu2hOq1rA0KK+ydtOyerO2YuA0KK+ydtOuzke2YhA0KK+ydtOyiheyImA0KK+ydtOuCmeu2hA0KK+ydtOyerO2YuA0KK+ydtOuPmeq3oA0KK+ydtOuPmeyLnQ0KK+ydtOuvuO2XjA0KK+ydtOyerO2YuA0KK+ydtOyYgeybkA0KK+ydtOy2mO2YhA0KK+ydtOyiheyyoA0KK+ydtOyerO2YuA0KK+ydtOqwkeyjvA0KK+ydtOyaqeq2jA0KK+ydtOyduOq1rQ0KK+ydtOyerO2YuA0KK+ydtOy2lOuqqA0KK+ydtOq1rOuPhA0KK+ydtOyyoOujoQ0KK+ydtOyerO2ZmA0KK+ydtOyerOyEnQ0KK+ydtOykke2ZlA0KK+ydtOq0keyYgQ0KK+ydtOyerO2biA0KK+ydtOyatOybhQ0KK+ydtOuzke2YhA0KK+ydtO2drO2DnA0KK+ydtOyerO2drA0KK+ydtOqyve2DgQ0KK+ydtOq4uOyYpA0KK+ydtOyYgeyLnQ0KK+ydtOyerO2drA0KK+ydtOyEseq3vA0KK+ydtO2DnOq3vA0KK+ydtOqwkeq4sA0KK+ydtOygkOuLiA0KK+ydtOybkOyasA0KK+ydtOyaqeq1rQ0KK+ydtOunjOyynA0KK+ydtOygkOuPhA0KK+ydtOycpOyaqQ0KK+ydtOyduOuMgA0KK+ydtOyerOuPhA0KK+ydtOygkOyEoA0KK+ydtOqzoeq4sA0KK+ydtOyEneybkA0KK+ydtO2YhO2YhA0KK+ydtOygkOyEuA0KK+ydtOyImOydtA0KK+ydtOyYpeyyoA0KK+ydtOygleqyvQ0KK+ydtOygkOyImA0KK+ydtOuzke2YuA0KK+ydtOyDgeyVlA0KK+ydtOyiheusuA0KK+ydtOygkOyImA0KK+ydtOuPmeyXtA0KK+ydtOuylOyjvA0KK+ydtOunjO2biA0KK+ydtOygkOyInA0KK+ydtOyImOq3vA0KK+ydtOyDge2ZlA0KK+ydtOqzte2VnA0KK+ydtOygkOyInA0KK+ydtOywveunjA0KK+ydtO2DnOyyoA0KK+ydtOuRkOyatA0KK+ydtOygkOyVlA0KK+ydtOy2qeybkA0KK+ydtOuPmeyhsA0KK+ydtOyaqe2DnA0KK+ydtOygkOyVlA0KK+ydtO2ZmOyXtA0KK+ydtO2DnO2ctA0KK+ydtO2VmOuTnQ0KK+ydtOygkOyVlA0KK+ydtOq0keuNlQ0KK+ydtOyduOyEsQ0KK+ydtOyngOyLnQ0KK+ydtOygkOyVlA0KK+ydtO2YhOyImQ0KK+ydtOu0ieyImA0KK+ydtOq4sOq3vA0KK+ydtOygkOyYpA0KK+ydtOyYgeqwkQ0KK+ydtOuzkeyErQ0KK+ydtO2drOq3nA0KK+ydtOygkOyhsA0KK+ydtOuPmey2mA0KK+ydtOyYgeqyuA0KK+ydtO2VnOyImA0KK+ydtOygkO2YuA0KK+ydtOu0ieq3nA0KK+ydtO2VnOyEoA0KK+ydtOyDgeyLnQ0KK+ydtOygleqwkQ0KK+ydtOyaqeydvA0KK+ydtOq3nOyLnQ0KK+ydtO2VnOq4sA0KK+ydtOygleqxtA0KK+ydtOyiheyasQ0KK+ydtOuzkeq4sA0KK+ydtOyEneynhA0KK+ydtOygleqzpA0KK+ydtOuzkeyImA0KK+ydtOyDge2ZmA0KK+ydtOqwnOyXtA0KK+ydtOygleq0gA0KK+ydtOuPmeq3nA0KK+ydtOuNleyDgQ0KK+ydtOq4uO2DnA0KK+ydtOygleq1rA0KK+ydtOuPme2DnA0KK+ydtOuqheyyoA0KK+ydtOq3gOq4sA0KK+ydtOygleq1rQ0KK+ydtOyYgeyasQ0KK+ydtOygleq4sA0KK+ydtOynhO2VmA0KK+ydtOygleq1rQ0KK+ydtOyYge2YuA0KK+ydtO2YhOydvA0KK+ydtOyCvOyImA0KK+ydtOygleq2jA0KK+ydtOyDgeuhnQ0KK+ydtOyEseyErQ0KK+ydtOuqheq3nA0KK+ydtOygleq3nA0KK+ydtOuzkeq1rQ0KK+ydtOyerOyerA0KK+ydtOuqheqyvQ0KK+ydtOygleq3nA0KK+ydtOuvvOyaqQ0KK+ydtO2ZjeydvA0KK+ydtOqyve2ZjQ0KK+ydtOygleq3nA0KK+ydtOyEseyYgQ0KK+ydtOyImOuqqA0KK+ydtOuRkOqwlQ0KK+ydtOygleq3oA0KK+ydtOyasO2drA0KK+ydtOuqheuztQ0KK+ydtOq0keyekA0KK+ydtOygleq3oA0KK+ydtOyaqeq4uA0KK+ydtO2DnOyhsA0KK+ydtOyYgeybkA0KK+ydtOygleq4sA0KK+ydtOyDgeyInA0KK+ydtOyEseuqqA0KK+ydtOynhO2ZjQ0KK+ydtOygleq4uA0KK+ydtOynhOyInA0KK+ydtO2DnOybkA0KK+ydtOygleyXtA0KK+ydtOygleuCqA0KK+ydtOyerO2VhA0KK+ydtOyEoOyIoA0KK+ydtOuCmeqyvQ0KK+ydtOygleuLrA0KK+ydtOydvOyerA0KK+ydtOyKue2VnA0KK+ydtOyYgeq3nA0KK+ydtOygleuNlQ0KK+ydtOyehOyyoA0KK+ydtOuzkeyImQ0KK+ydtOyaqeyjvA0KK+ydtOygleuNlQ0KK+ydtOy2qeq4sA0KK+ydtOyghOq3nA0KK+ydtOyYpOq3nA0KK+ydtOygleuPhA0KK+ydtOydvO2DnA0KK+ydtO2VnOqwgQ0KK+ydtOqyveyIoA0KK+ydtOygleuPjA0KK+ydtOyerOyXtA0KK+ydtOyYge2YuA0KK+ydtO2DnOyEoA0KK+ydtOygleuRkA0KK+ydtOyEneyImA0KK+ydtOyDgeyEoA0KK+ydtOygleuvvA0KK+ydtOygleuegA0KK+ydtOycpOq3vA0KK+ydtOyaqe2biA0KK+ydtOyiheygnA0KK+ydtOygleuhnA0KK+ydtOyihe2ZlA0KK+ydtOyDgeyynA0KK+ydtOyYgeyLnQ0KK+ydtOygleuloA0KK+ydtOybkOumrA0KK+ydtO2XjOyEnQ0KK+ydtOq1rOyXsA0KK+ydtOygleumvQ0KK+ydtOygkO2ZmA0KK+ydtOuzkeyEpA0KK+ydtO2DnOykgA0KK+ydtOygleuvuA0KK+ydtOyEseynhA0KK+ydtOyImOqzpA0KK+ydtOyEnOq1rA0KK+ydtOygleuvvA0KK+ydtO2VtOyImA0KK+ydtO2ZjeyhsA0KK+ydtOuNleyImA0KK+ydtOygleu2hA0KK+ydtOygnO2ZjQ0KK+ydtOyjvO2DnA0KK+ydtOyYgeyihQ0KK+ydtOygleyEoA0KK+ydtOyKueq4sA0KK+ydtOygle2DnA0KK+ydtOyLnO2ZmA0KK+ydtOygleyEuA0KK+ydtOyYpe2aqA0KK+ydtOyEuOyXsA0KK+ydtOywveyYgQ0KK+ydtOygleyEuA0KK+ydtOy5oOq4sA0KK+ydtOyekOq4sA0KK+ydtOyInOusuA0KK+ydtOygleyImA0KK+ydtOyEne2YuA0KK+ydtOyYgeydtA0KK+ydtOygle2DnA0KK+ydtOygleyImA0KK+ydtOyEseyaqQ0KK+ydtOycpOyDgQ0KK+ydtOyerOunjA0KK+ydtOygleyImA0KK+ydtOyasOyEsQ0KK+ydtOq4sO2YlQ0KK+ydtOyYgeynhA0KK+ydtOygleyImQ0KK+ydtOq0gOunjA0KK+ydtOyaqe2DnA0KK+ydtOyCvOyEoA0KK+ydtOygleyImQ0KK+ydtOyEoOu0iQ0KK+ydtOygleyZhA0KK+ydtO2DnO2VmQ0KK+ydtOygleyImQ0KK+ydtO2YhO2YuA0KK+ydtOyCvO2YuA0KK+ydtOyYgeqwkQ0KK+ydtOygleyImQ0KK+ydtOygle2drA0KK+ydtOyEseyekA0KK+ydtOyDgeycpA0KK+ydtOygleyImQ0KK+ydtOywrOq4sA0KK+ydtO2YhOybkA0KK+ydtOuLrOyLnQ0KK+ydtOygleyInA0KK+ydtOyaqe2DnA0KK+ydtOuLrOq4sA0KK+ydtOyiheyLnQ0KK+ydtOygleyInA0KK+ydtOyEseyyoA0KK+ydtO2DnOuLrA0KK+ydtO2VtOu2hA0KK+ydtOygleyInA0KK+ydtOygleywvQ0KK+ydtO2DnOqzpA0KK+ydtOyiheuCqA0KK+ydtOygleyLnQ0KK+ydtO2Vme2ZmA0KK+ydtOyaqeyImQ0KK+ydtOydteyEsQ0KK+ydtOygleyVoA0KK+ydtOuzkeqzpA0KK+ydtCDtg5wNCivsnbTsnbzsobANCivsnbTsoJXslaANCivsnbTsnoTqt6ANCivsnbTsmIHsnpANCivsnbTtg5zssqANCivsnbTsoJXslaANCivsnbTsnqztnawNCivsnbTtg5ztg5wNCivsnbTtmITtmZQNCivsnbTsoJXsl7ANCivsnbTshLHsmKUNCivsnbTtlbTsiJgNCivsnbTtg5zslZQNCivsnbTsoJXsl7QNCivsnbTrj5nsiJgNCivsnbTsiJzsiJgNCivsnbTsp4Tsm4UNCivsnbTsoJXsmKQNCivsnbTssqDspIANCivsnbTtlbTsooUNCivsnbTrqoXsp4QNCivsnbTsoJXsmKUNCivsnbTqsJzsiKANCivsnbTsp4TroZ0NCivsnbTrrLjqt7wNCivsnbTsoJXsm4UNCivsnbTsnqzqtZANCivsnbTtlontg5wNCivsnbTshLHsm4UNCivsnbTsoJXsm4UNCivsnbQg7Z2sDQor7J2064yA7KSRDQor7J207KKF7KGwDQor7J207KCV7JuFDQor7J207Jyk7YOdDQor7J207LaY7IiYDQor7J207JuQ7KSADQor7J207KCV7JuQDQor7J207KCV7IiYDQor7J207LC97IicDQor7J207KCV7ZmYDQor7J207KCV7JykDQor7J207KeE66eMDQor7J206rSR6ri4DQor7J207YOc6rOgDQor7J207KCV7J2YDQor7J20642V7IStDQor7J206riw7JqpDQor7J2067OR7ZeMDQor7J207KCV7J28DQor7J207ISx7KCVDQor7J207JiB7Je0DQor7J206rWQ7KeEDQor7J207KCV7J6EDQor7J207IaM7LKgDQor7J207KSR7LCsDQor7J207KCV7KSRDQor7J207KCV7J6EDQor7J207KCV7JuQDQor7J207KKF7IicDQor7J207ZiV64KoDQor7J207KCV7KO8DQor7J207JaR7IOBDQor7J207KO87ZqMDQor7J2066y467CwDQor7J207KCV7KO8DQor7J207Jqp6ri4DQor7J207J287KeEDQor7J2067SJ6regDQor7J207KCV7KO8DQor7J207ZiE7YOBDQor7J207Jyk7ZaJDQor7J207J28656YDQor7J207KCV7LGEDQor7J206rK964KcDQor7J207ZmN7LKgDQor7J207LKc7KeEDQor7J207KCV7LKgDQor7J207IOB7JiBDQor7J207JiB7J6sDQor7J207ISx64KoDQor7J207KCV7LacDQor7J207KeE7IStDQor7J207J6s7LKgDQor7J207ZmN7ZmYDQor7J207KCV7YOcDQor7J207IiY67CwDQor7J207ISx7KSADQor7J207ZWZ7J28DQor7J207KCV7YOdDQor7J207J6s7Zi4DQor7J207ISx7J6QDQor7J207Zic7YOcDQor7J207KCV7ZWYDQor7J207KCV642VDQor7J207JiB66qoDQor7J207ISx7ISxDQor7J207KCV7ZaJDQor7J207J6s7J6sDQor7J207YyQ6rSRDQor7J2064Ko6recDQor7J207KCV7ZeMDQor7J207KCV7J28DQor7J207JiB6rCRDQor7J207J6s7Z2sDQor7J207KCV7ZiEDQor7J207KKF7YOdDQor7J207IOB6ri4DQor7J207Zi47Jq0DQor7J207KCV7ZiVDQor7J207Z2s7KO8DQor7J206rSR7IStDQor7J206rWs6riwDQor7J207KCV7Zi4DQor7J207IOB7IS4DQor7J206rCR7JWgDQor7J2064+E6re8DQor7J207KCV7Zi4DQor7J207JiB7IicDQor7J207IOB7IiYDQor7J207YOc7IiYDQor7J207KCV7Zi4DQor7J207Jil67KUDQor7J207Z2s6rCVDQor7J206rSR6raMDQor7J207KCV7Zi4DQor7J207KSR6rSADQor7J207JiB65OdDQor7J207KCV7IicDQor7J207KCV7Zi4DQor7J2067Cp66qoDQor7J207ZiE7KO8DQor7J207ISx7IK8DQor7J207KCV7Zi4DQor7J207J2A6rWtDQor7J207KKF7KGwDQor7J207ZmY7KeEDQor7J207KCV7Zi4DQor7J207JiB67SJDQor7J207KCV6re8DQor7J207KCV7ISgDQor7J207KCV7ZmUDQor7J2064yA7LacDQor7J207IiY7LKgDQor7J207Zi464W4DQor7J207KCV7ZmYDQor7J207J2864W4DQor7J207J6s7YyMDQor7J207IOB7KCVDQor7J207KCV7ZmYDQor7J207Jqp7J20DQor7J207ISx7IOBDQor7J206rWs7IiYDQor7J207KCV7ZqoDQor7J207IiZ7ISdDQor7J207IOB7IiZDQor7J206rec7IudDQor7J207KCV7ZuIDQor7J207IiY6rSRDQor7J207J6s7IiYDQor7J206reA66eMDQor7J207KCV7Z2sDQor7J207Jyk64+EDQor7J207ZW07IiYDQor7J2064yA7JqpDQor7J207KCV7Z2sDQor7J207ZWc7Z2sDQor7J206rSR7ZiEDQor7J206rWQ7IiYDQor7J207KCV7Z2sDQor7J207Lmg7IicDQor7J207ZiV7Zi4DQor7J207Jyk6rWtDQor7J207KCV7Z2sDQor7J207Iic7KCVDQor7J207Iuk7LKgDQor7J2067OR7Zi4DQor7J207KCc7IusDQor7J207KCV7ZiEDQor7J207ZmY66+8DQor7J207JaR7ZmYDQor7J207KCc7LKgDQor7J206riw7ISxDQor7J207JiB7IiYDQor7J207ZeM66y4DQor7J207KGw7JiBDQor7J207J2467ORDQor7J207YOc7ZqoDQor7J206rCR7IiYDQor7J207KGw7JuQDQor7J207ZuI7KGwDQor7J207KCV7IiYDQor7J207ZWE7IiZDQor7J207KGw7J20DQor7J207LC97KSADQor7J206re86raMDQor7J207LaY64+IDQor7J207KKF6rCBDQor7J207Jqp7Z2sDQor7J207J6s6re8DQor7J207Z2s65OdDQor7J207KKF6rCRDQor7J2064+Z6re8DQor7J207Iic7J6QDQor7J207J6s7JqpDQor7J207KKF6rCRDQor7J206rCR6529DQor7J207Iic6riwDQor7J207J247YOcDQor7J207KKF6rK9DQor7J207J6s6recDQor7J207KSR7YOcDQor7J207IOB67O1DQor7J207KKF6rWsDQor7J206rCR7IudDQor7J207Zi47JWUDQor7J207Jik7Je0DQor7J207KKF6rWsDQor7J207J6E7ZiVDQor7J207KKF7ZmYDQor7J207IOB7ISgDQor7J207KKF6rWsDQor7J206rK9642VDQor7J207KeE7ISdDQor7J206rWw7KeEDQor7J207KKF6rWsDQor7J2064+Z64+ZDQor7J207J207ZGcDQor7J2067OR7J6sDQor7J207KKF6raMDQor7J2066eM7YOdDQor7J207J6s7IicDQor7J207JiB6re8DQor7J207KKF6reADQor7J2066qF7JWFDQor7J206rSR7Z2sDQor7J2066eM7ZmUDQor7J207KKF6recDQor7J2067aE7JewDQor7J207KeE67CwDQor7J207IS47J6QDQor7J207KKF6recDQor7J207ISg7IiYDQor7J207KCQ7LKgDQor7J207Zqo6regDQor7J207KKF6regDQor7J207J246rWQDQor7J20642V7KeADQor7J2064Ko7JikDQor7J207KKF6riwDQor7J2067aA7JewDQor7J206riw64yADQor7J206rSR6rSADQor7J207KKF6ri4DQor7J207Z2s7IiYDQor7J20IO2YhA0KK+ydtOygleuNlQ0KK+ydtOyiheuMgA0KK+ydtOyiheyXtA0KK+ydtOuPmeyEnQ0KK+ydtOq4sOyIoA0KK+ydtOyiheuMgA0KK+ydtOyaqeyEoA0KK+ydtO2MkOybkA0KK+ydtOyInOyEnQ0KK+ydtOyiheuNlQ0KK+ydtOycpOusuA0KK+ydtOyEuOq1rQ0KK+ydtOyYgeyImA0KK+ydtOyiheudvQ0KK+ydtOuMgOuFhA0KK+ydtO2DnO2drA0KK+ydtOq0keq1rQ0KK+ydtOyiheuhnQ0KK+ydtOuNle2DnA0KK+ydtO2VmeyInA0KK+ydtOyDne2YhA0KK+ydtOyiheuhnQ0KK+ydtOyerOuFhA0KK+ydtOuMgOyImA0KK+ydtOuzkeuqqA0KK+ydtOyiheunjA0KK+ydtOyYgeyInA0KK+ydtOyduOq3vA0KK+ydtOqzvO2ZqQ0KK+ydtOyiheunkA0KK+ydtOyDgeyLnQ0KK+ydtOyerOuztQ0KK+ydtOyiheykgA0KK+ydtOyiheuqhQ0KK+ydtOyjvOyImA0KK+ydtOq4sOuTnQ0KK+ydtOywveyasA0KK+ydtOyiheuqhQ0KK+ydtOykkeyEsQ0KK+ydtOynhOqwkQ0KK+ydtOyxhOyLnQ0KK+ydtOyiheuqqQ0KK+ydtOyYpeyEoA0KK+ydtOygleyYpA0KK+ydtOyEoO2DnA0KK+ydtOyiheusuA0KK+ydtOyblOyInA0KK+ydtOunkOybkA0KK+ydtOq3nOuemA0KK+ydtOyiheuwsA0KK+ydtOqwkeyEsQ0KK+ydtO2DnO2aqA0KK+ydtOuPmeyDgQ0KK+ydtOyiheuwsQ0KK+ydtOyyoO2ajA0KK+ydtO2Zqe2ZmA0KK+ydtOuvvOq1rQ0KK+ydtOyiheuztQ0KK+ydtO2VtOy2mA0KK+ydtOq4sOyYgQ0KK+ydtOqwkeyaqQ0KK+ydtOyiheuztQ0KK+ydtO2VnOyVlA0KK+ydtOyImOq3oA0KK+ydtOydtOqwkQ0KK+ydtOyiheyEnQ0KK+ydtOuPhO2DnA0KK+ydtOyYgeyEsQ0KK+ydtOyEseyihQ0KK+ydtOyiheyEnQ0KK+ydtOunkOulnA0KK+ydtOuqheyImA0KK+ydtOunjOyXtA0KK+ydtOyiheyEoA0KK+ydtOu0ieyhsA0KK+ydtOq0keq3oA0KK+ydtOyDgeynhA0KK+ydtOyiheyEsQ0KK+ydtOq2jOyehA0KK+ydtOyInOyImA0KK+ydtOuzteyXsA0KK+ydtOyiheyImA0KK+ydtOyerOyZhA0KK+ydtO2ajO2ZlA0KK+ydtOq4sOq1rA0KK+ydtOyiheyImA0KK+ydtCDshLENCivsnbTsg4Hsl7ANCivsnbTsnqXqt7wNCivsnbTsooXsiJgNCivsnbTrs5HssqANCivsnbTshLHssqANCivsnbTtg5zsiJgNCivsnbTsooXsiJgNCivsnbTsnqzsmqkNCivsnbTsnZHtnawNCivsnbTsoJXtmY0NCivsnbTsooXsiJgNCivsnbTtg5zso7wNCivsnbTsnbzsl7QNCivsnbTtg5zshK0NCivsnbTsooXsiKANCivsnbTshLjrrLgNCivsnbTquLDtnawNCivsnbTsmIHsp4QNCivsnbTsooXsi50NCivsnbTso7ztmZgNCivsnbTrp4zrj5kNCivsnbTsm5DsiJkNCivsnbTsooXsi50NCivsnbTrqoXtnawNCivsnbTqsIDsm4UNCivsnbTsooXsobANCivsnbTsooXsi50NCivsnbTsmqnrnoANCivsnbTtlbTsnbQNCivsnbTsnbXsmqkNCivsnbTsooXslaANCivsnbTqsr3rj4QNCivsnbTsmbjshJ0NCivsnbTsooXsgrwNCivsnbTsooXslrgNCivsnbTsjI3qt6ANCivsnbTqtJHsnqwNCivsnbTsg4HsnpANCivsnbTsooXslrgNCivsnbTso7zsmIENCivsnbTrtoTslbwNCivsnbTssKjsnbwNCivsnbTsooXsl7QNCivsnbTsg4HshJ0NCivsnbTtmLjsmqkNCivsnbTtg5zqtowNCivsnbTsooXsl7QNCivsnbTssL3tg4ENCivsnbTssqDsi50NCivsnbTtg5zshLENCivsnbTsooXsmKQNCivsnbQg7IudDQor7J207IK867aEDQor7J2064yA7ZmYDQor7J207KKF7JikDQor7J206rWs7JuQDQor7J207J6s7IOdDQor7J207IOB7J24DQor7J207KKF7JikDQor7J2066eQ7IicDQor7J207IOB6riwDQor7J207Iq57IicDQor7J207KKF7JqpDQor7J207YOc6rWQDQor7J207ISx7JuQDQor7J207JiB6riwDQor7J207KKF7JqwDQor7J207IaM7LKgDQor7J207IiY642VDQor7J207Jyk64usDQor7J207KKF7JqxDQor7J207ZWc7LKgDQor7J207IiY6recDQor7J206rWt7Je0DQor7J207KKF7JqxDQor7J207YOc64+EDQor7J207KSA7IudDQor7J2067OR7LKgDQor7J207KKF7JuQDQor7J207KKF7IicDQor7J207YyU7JiBDQor7J207J207IOBDQor7J207KKF7JuQDQor7J207JWg7JuQDQor7J2064+Z7ZiEDQor7J207J6s6re8DQor7J207KKF7JykDQor7J207KCV7ZuIDQor7J207KCV7YOcDQor7J2064+Z7Y+sDQor7J207KKF7JykDQor7J207JaR7ZiEDQor7J207Jyk66OhDQor7J206rCR7KSADQor7J207KKF7JykDQor7J207Jyk7ZiBDQor7J207KSA6re8DQor7J20IOunjA0KK+ydtOyiheycqA0KK+ydtOuPmeq3nA0KK+ydtOygleusuA0KK+ydtOyImOyerA0KK+ydtOyiheyjvA0KK+ydtO2YuOq4sA0KK+ydtOykgOqzpA0KK+ydtOyihe2drA0KK+ydtOyiheywrA0KK+ydtOyjvOybkA0KK+ydtO2MkOyyoA0KK+ydtOyihe2ZlA0KK+ydtOyiheyyoA0KK+ydtOyYpeywrA0KK+ydtO2DnOyEoA0KK+ydtOygleusuA0KK+ydtOyihey2mA0KK+ydtOyDgeuNlQ0KK+ydtO2DnOuFuA0KK+ydtOyiheydtA0KK+ydtOyihe2DnA0KK+ydtOygleuvuA0KK+ydtOusuOuqqA0KK+ydtO2MkOyImA0KK+ydtOyihe2DnA0KK+ydtOyEneq3nA0KK+ydtOuzkeydvA0KK+ydtOy5oOyasA0KK+ydtOyihe2DnA0KK+ydtOqwkeyIoA0KK+ydtOyyoOyatA0KK+ydtOyEseyImA0KK+ydtOyihe2DnA0KK+ydtOyDgeyglQ0KK+ydtOyerO2ZmA0KK+ydtOyEseyXtA0KK+ydtOyihe2DnQ0KK+ydtOydvOyaqQ0KK+ydtOy5oO2drA0KK+ydtOu0ieyIoA0KK+ydtOyihe2DnQ0KK+ydtOy2mOq3nA0KK+ydtOuFuOy2nA0KK+ydtO2drO2drA0KK+ydtOyihe2MkA0KK+ydtOyyoOq1kA0KK+ydtOyImOq0gA0KK+ydtOyImeq1kA0KK+ydtOyihe2VmA0KK+ydtOyEneyImA0KK+ydtOu0ieyImA0KK+ydtOyImOq3vA0KK+ydtOyihe2VmA0KK+ydtOustOyVlA0KK+ydtCDsnpANCivsnbTshKDri6gNCivsnbTsooXtlZkNCivsnbTqsJHquLgNCivsnbTsl7DquLANCivsnbTsooXtg5wNCivsnbTsooXtlZkNCivsnbTsoJDshLENCivsnbTsmKTssqANCivsnbTtg5zsgrwNCivsnbTsooXtlZkNCivsnbTsiJjquLANCivsnbTsnqXsmIENCivsnbTsmqnqtawNCivsnbTsooXtlZwNCivsnbTrp4zquLANCivsnbTrqoXtmLgNCivsnbTsnqztmLgNCivsnbTsooXtlZwNCivsnbTquIjsmKQNCivsnbTspJHsiJgNCivsnbTsnKTtmLgNCivsnbTsooXtlbQNCivsnbTsg4HrgqgNCivsnbTquLDsoJwNCivsnbTsnqzsmIENCivsnbTsooXtmIQNCivsnbTqs4TsmrANCivsnbTsnYDsmrQNCivsnbTsooXtnawNCivsnbTsooXtmLgNCivsnbTsiJzsnbwNCivsnbTshoztlbQNCivsnbTrj5nrtoANCivsnbTsooXtmLgNCivsnbTsmKXrp4wNCivsnbTsmqnstpwNCivsnbTshLjtg5wNCivsnbTsooXtmLgNCivsnbTsoJXshLENCivsnbTrj5nsnbgNCivsnbTsmIHqtowNCivsnbTsooXtmLgNCivsnbTspJHsm5ANCivsnbTsiJzrjIANCivsnbTstpjsspwNCivsnbTsooXtmLgNCivsnbTqtJHqtowNCivsnbTrjZXtlZkNCivsnbTsmIHsmqkNCivsnbTsooXtmLgNCivsnbTtmJzquLgNCivsnbTrs5HtmLgNCivsnbTrgpzsm4UNCivsnbTsooXtmLgNCivsnbTqsr3tmZgNCivsnbTrjZXqtawNCivsnbTsgrzquLgNCivsnbTsooXtmZgNCivsnbTqtJHqsr0NCivsnbTssL3smqkNCivsnbTsl7DsiJgNCivsnbTsooXtmZgNCivsnbTrj5nsiJgNCivsnbTtmITsiJgNCivsnbTrp5DsiJgNCivsnbTsooXtmZgNCivsnbTtnJjquLANCivsnbTstpjqtowNCivsnbTtmY3siJgNCivsnbTsooXtmZgNCivsnbTsoJXrhbgNCivsnbTssKzqs4QNCivsnbTsmrDqsJENCivsnbTsooXtmZgNCivsnbTsnKDsiJwNCivsnbTrjIDsmIENCivsnbTsmrDsiJwNCivsnbTsooXtm4gNCivsnbTsmIHtmLgNCivsnbTsiJzqtJENCivsnbTrtoTsm5ANCivsnbTsooXtnawNCivsnbTrtoDrjZUNCivsnbTsmqnsmKUNCivsnbTsiKDsmKUNCivsnbTsooXtnawNCivsnbTrqoXqtawNCivsnbTshLHrs7QNCivsnbTsiJzsiJgNCivsnbTso7zqsr0NCivsnbTrnpjqt7wNCivsnbTsg4HsiJgNCivsnbTsg4HsiKANCivsnbTso7zqsr0NCivsnbTspJHrsLANCivsnbTtg5zsp4QNCivsnbTtg5zqt7wNCivsnbTso7zqt7wNCivsnbTqt5zsp4ENCivsnbTsg4Hsg50NCivsnbTsiJzsiJwNCivsnbTso7zsgrwNCivsnbTstqnsiJkNCivsnbTrgqjrqqkNCivsnbTtlZzrjZUNCivsnbTso7zshJ0NCivsnbTsnqzsi50NCivsnbTshJ3tmZgNCivsnbTso7zsmIENCivsnbTso7zshJ0NCivsnbTrp4ztmJwNCivsnbTsnqzquLgNCivsnbTsnbzsnpANCivsnbTso7zshKANCivsnbTrqoXsl7QNCivsnbTqsJHrp4wNCivsnbTrp5Dqt5wNCivsnbTso7zshK0NCivsnbTrk53stpwNCivsnbTsmIHqt5wNCivsnbTquIjqs6QNCivsnbTso7zsirkNCivsnbTsoJXtnawNCivsnbTqtJHssqANCivsnbTsg4HsmrQNCivsnbTso7zsl7ANCivsnbTqt7zqt5wNCivsnbTsirnshKANCivsnbTrs7Xrj4QNCivsnbTso7zsmIENCivsnbTsmIHsiJgNCivsnbTqt5zqt6ANCivsnbTsoJXsiKANCivsnbTso7zsmIENCivsnbTsiJzrj4wNCivsnbTsnoTsmrANCivsnbTshJ3quLANCivsnbTso7zsmIENCivsnbTstpjrp4wNCivsnbTsmIHquLANCivsnbTsoJXrs7UNCivsnbTso7zsnbQNCivsnbTshJ3rrLgNCivsnbTquLDsmrANCivsnbTsoJXqt6ANCivsnbTso7ztg5wNCivsnbTrp5DsmqkNCivsnbTquLDtmLgNCivsnbTtlZzqtZANCivsnbTso7ztl4wNCivsnbTsg4HsmrQNCivsnbTshLHrrLgNCivsnbTsg4HsmqkNCivsnbTso7ztmIQNCivsnbTsg4HquLANCivsnbTshLHsm5ANCivsnbTrjZXsi50NCivsnbTso7ztmLgNCivsnbTrs5HquLANCivsnbTsiJzsnKQNCivsnbTsp4TrtIkNCivsnbTso7ztmLgNCivsnbTrtIntmLgNCivsnbTsmIHsobANCivsnbTsnqztmZgNCivsnbTso7ztmLgNCivsnbTrgqjsiJwNCivsnbTspJHtmIQNCivsnbTsiJjsnbwNCivsnbTspIDqtawNCivsnbTrp5DsiJgNCivsnbTrrLjsi50NCivsnbTsp4TsobANCivsnbTspIDsl7QNCivsnbTsg4HquLgNCivsnbTssL3shLENCivsnbTsmKXsl7ANCivsnbTspIDsmIENCivsnbTrs5HrqqgNCivsnbTqt5ztmLgNCivsnbTshLHsmrQNCivsnbTspIDsmIENCivsnbTqs6HtnawNCivsnbTsnpDsnqwNCivsnbTtnazsl7ANCivsnbTspIDsmIENCivsnbTsnoTrgqgNCivsnbTsoJDshKANCivsnbTrtoDtmZgNCivsnbTspIDsmqkNCivsnbTsoJDsl7QNCivsnbTrtoDtmY0NCivsnbTsnqzsmqkNCivsnbTspIDsm4UNCivsnbTsmqnsm4UNCivsnbTquLDtlZgNCivsnbTtlYTsiJwNCivsnbTspIDsnqwNCivsnbTtg5zsp4QNCivsnbTsp4TrqqkNCivsnbTtlbTtg5wNCivsnbTspIDsnqwNCivsnbTsnqXsiJwNCivsnbTqsJHtmY0NCivsnbTsnqzrj5kNCivsnbTspIDsobANCivsnbTsiJjtlYQNCivsnbTqt7zsmrANCivsnbTsiJjtj6wNCivsnbTspIDtlZgNCivsnbTsspztmZgNCivsnbTtlbTsmKQNCivsnbTsmbjsiJwNCivsnbTspIDtmIENCivsnbTquLDsmrQNCivsnbTqt5ztmZgNCivsnbTsmIHslZQNCivsnbTspIDtmLgNCivsnbTtlZztm4gNCivsnbTsooXtg5wNCivsnbTshJ3rtIkNCivsnbTspIDtmZgNCivsnbTrqoXrj4wNCivsnbTtg4HtmLgNCivsnbTsnqzsnpANCivsnbTspJHqsIENCivsnbTqsr3tlZwNCivsnbTsoJXsooUNCivsnbTsmIHsoJUNCivsnbTspJHqtowNCivsnbTquLDrs5ENCivsnbQg7JuQDQor7J207J2E7ZmUDQor7J207KSR6recDQor7J207ISc7Je0DQor7J2067KU7ZiEDQor7J207YOc7IStDQor7J207KSR6re8DQor7J207IK86riwDQor7J206riI7KeADQor7J2065GQ7LKgDQor7J207KSR6ri4DQor7J207IK87IudDQor7J207LCo7JewDQor7J207Jyk7ZWYDQor7J207KSR7LKgDQor7J207LC96ri4DQor7J207ZmY7IiYDQor7J207KO86recDQor7J207KSR7ZmUDQor7J207KKF7ZqoDQor7J207ISx7IiYDQor7J207J6s7LKgDQor7J207KSR7ZmYDQor7J2064Ko66eMDQor7J206rK97J6QDQor7J207ZeM6riwDQor7J207KSR7ZmYDQor7J207KCV7JilDQor7J207KCV7IudDQor7J207ISx7ISxDQor7J207KSR7Z2sDQor7J207JuQ7LacDQor7J2064yA64usDQor7J2066y07Zi4DQor7J207Kad7IiYDQor7J206rK97IiZDQor7J2067OR7Zi4DQor7J207YOc7JuQDQor7J207KeA66GcDQor7J207LaY64KoDQor7J207KeE7IOBDQor7J2066eM6recDQor7J207KeA7JewDQor7J207JuQ7JiBDQor7J207J6s7IucDQor7J207KCV66y1DQor7J207KeA7LKgDQor7J207JuQ7KO8DQor7J207IOB7Z2sDQor7J2067O17KCVDQor7J207KeA7Zic7J6QDQor7J207JiB7ZWZ7KCQDQor7J2064yA7YOB6ri4DQor7J207ISx6re87KCVDQor7J207KeA7Zi4DQor7J206rec7Zi4DQor7J2066y07ZeMDQor7J206rWt67O1DQor7J207KeB66GcDQor7J207LC97Zi4DQor7J207ZiE7KCVDQor7J206riI64yADQor7J207KeE6rWsDQor7J207KKF7KeADQor7J207Jyk7KSADQor7J207JiB66eMDQor7J207KeE64W4DQor7J207Jqp6rOkDQor7J207IKs7Zi4DQor7J207YOc66CoDQor7J207KeE64W4DQor7J207Iig7LKgDQor7J207ISx6rSRDQor7J207JiB6rCQDQor7J207KeE66y0DQor7J207Z2s7ISdDQor7J2064W47IigDQor7J207ZWc656YDQor7J207KeE7IS4DQor7J207LC96rWsDQor7J2067aE7ISgDQor7J207KeA67O1DQor7J207KeE7IiYDQor7J206rSR64usDQor7J207KCV7JykDQor7J207IOB64+MDQor7J207KeE7IiYDQor7J2066qF7ZuIDQor7J2067aA7YyUDQor7J207ZWE7IicDQor7J207KeE7JqpDQor7J20642V7IOBDQor7J2067O17ZmNDQor7J207IOB7IiZDQor7J207KeE7JqwDQor7J207ZeM7IicDQor7J207IOB7J20DQor7J206riI7ISdDQor7J207KeE7JqwDQor7J206riI7ISgDQor7J207J287Je0DQor7J207KKF7JilDQor7J207KeE7JuQDQor7J207J6s7Zi4DQor7J207KeE7JqwDQor7J207KCV7JewDQor7J207KeE7J28DQor7J207J247ZWcDQor7J207KCV7JilDQor7J207JiB7JuQDQor7J207KeE7J28DQor7J207Lap7IStDQor7J207KKF6rK9DQor7J207JuQ6re8DQor7J207KeE7J6sDQor7J207LCs6rK9DQor7J2067OR6rWtDQor7J207J247IStDQor7J207KeE7KCVDQor7J207J287JikDQor7J2064us7YOdDQor7J206riw7Z2sDQor7J207KeE7YOcDQor7J207YOd7IiYDQor7J207KKF7IicDQor7J207ISx7LacDQor7J207KeE7YOcDQor7J207Jil6re8DQor7J2064+I6rOkDQor7J206rK47KGwDQor7J207KeE7YOcDQor7J207J6s7IicDQor7J207IiZ7IudDQor7J207YOc7Je0DQor7J207KeE7ZWtDQor7J207J2A7JWUDQor7J207JiB7JWEDQor7J206rK97IudDQor7J207KeE7Zi4DQor7J207KO87ISgDQor7J207KCQ7Je0DQor7J207ISx7J28DQor7J207KeE7ZmYDQor7J207KCV7JiBDQor7J2064yA7J6QDQor7J207J6l7IigDQor7J207KeE7ZmYDQor7J207J6s7IiYDQor7J2066qF7IigDQor7J207KCV7ZiEDQor7J207KeE7Z2sDQor7J207KKF7IiZDQor7J206riw7JykDQor7J20642V6rWtDQor7J207KeE7Z2sDQor7J2064+Z7IudDQor7J206rec6riwDQor7J207IOB7JqwDQor7J207KeE7Z2sDQor7J206rSR7ZeMDQor7J2064KZ7IicDQor7J207Iug7IudDQor7J207LCo67SJDQor7J206riw64KoDQor7J207KCV7Zy0DQor7J207IiY7ZiVDQor7J207LCo67SJDQor7J207JaR7ISxDQor7J207Iic7YOBDQor7J207LaY7Iq5DQor7J207LCo67SJDQor7J207ZmN66eMDQor7J207Iic7IicDQor7J207LaY7KSRDQor7J207LCo7JewDQor7J206rSR7IiYDQor7J206rK97ZmNDQor7J207ISd7J6QDQor7J207LCo7KGwDQor7J2066eQ7IiZDQor7J207ISx7KCcDQor7J207ZiE7J6QDQor7J207LCo7ZmYDQor7J207YOc7IicDQor7J2066eM66eMDQor7J207ISg64+ZDQor7J207LCs6recDQor7J206rCV7LaYDQor7J207KeE7IiZDQor7J207IiZ7KO8DQor7J207LCs67O1DQor7J207J6s64+EDQor7J207KKF7YOdDQor7J207JuU6ri4DQor7J207LCs7ISxDQor7J207KCE6rCRDQor7J2066y06recDQor7J207Iic7LacDQor7J207LCs7IiYDQor7J2064+Z7Je0DQor7J2066m07J6QDQor7J207JiB7Z2lDQor7J207LCs7IiYDQor7J207IOB7ZalDQor7J207IK87IiYDQor7J207Zi47IudDQor7J207LCs7J20DQor7J206riw7Zi4DQor7J207ZiE7IicDQor7J2067O47IS4DQor7J207LCs7J20DQor7J2065Od67ORDQor7J207Jy17ISdDQor7J206rSR7Z2sDQor7J207LCs7ZmNDQor7J2066y47ISgDQor7J207ISx7ISdDQor7J207YOc7ZWcDQor7J207LCs7ZmYDQor7J207Jew7Je0DQor7J207ISd7IigDQor7J207IaM642VDQor7J207LC96recDQor7J207IOB6rCRDQor7J206riw6rCRDQor7J207IOB6rWsDQor7J207LC96re8DQor7J207Jqp7IiYDQor7J207JuU65OdDQor7J2067O16recDQor7J207LC96riwDQor7J207ZiE6rWsDQor7J207J6s7IiYDQor7J207KCV7IiYDQor7J207LC966a8DQor7J207KKF66CoDQor7J207ZWY642VDQor7J2066eM7ZiEDQor7J207LC97IiYDQor7J207Jqp642VDQor7J207KCc7IiYDQor7J207IOB7IiYDQor7J207LC97IicDQor7J2064yA7ZuIDQor7J2066eM7ZiEDQor7J2067OR7Zi4DQor7J207LC97IudDQor7J207IOB7ZiVDQor7J207ISg7LKgDQor7J207IOB7KSADQor7J207LC97Je0DQor7J207ISx7JewDQor7J207YyQ7ISxDQor7J207Z2s7KGwDQor7J207LC97JqpDQor7J207ZWt67SJDQor7J207IK87Zi4DQor7J207IOB65OdDQor7J207LC97JqwDQor7J207ISg6ri4DQor7J207ZmN7IicDQor7J207ZmN7JiBDQor7J207LC97JqwDQor7J2066y07JqwDQor7J207JiB7IiZDQor7J206rec7LKgDQor7J207LC97JykDQor7J207KCV67O1DQor7J207YOc6rK9DQor7J2064+E67aEDQor7J207LC97J6sDQor7J207KKF6riwDQor7J2066eM7J6QDQor7J207Iic6rWsDQor7J207LC97KCcDQor7J207J6s7JilDQor7J207KCV7IigDQor7J207ISx66y4DQor7J207LC97KO8DQor7J207KCV7LacDQor7J207Ja466+8DQor7J207Zic7JqwDQor7J207LC97KO8DQor7J207KKF7Je0DQor7J207KSA7ZuIDQor7J207J6s7YOcDQor7J207LC97KeBDQor7J207JuQ7IicDQor7J207Jqp7J6QDQor7J2067OR7JqwDQor7J207LC97ZWYDQor7J207KCV66+8DQor7J207JaR7IS4DQor7J207ZWZ7IudDQor7J207LC97ZeMDQor7J207J247JuQDQor7J207J2Y66eMDQor7J207J6s7YOdDQor7J207LC97Zi4DQor7J206rK97Zi4DQor7J206rK97ISxDQor7J2066+864+ZDQor7J207LC97Zi4DQor7J207IaM7KGwDQor7J2067SJ7LKgDQor7J207J6s7JqpDQor7J207LC97Zi4DQor7J207JiB6rOkDQor7J207YOd7ISgDQor7J207ISg7IudDQor7J207LC97Zi4DQor7J207Iuc7KO8DQor7J207Jm47YOcDQor7J207Jqw656YDQor7J207LC97ZmYDQor7J207KCV656ADQor7J207ISx7JiBDQor7J2064Ko7JeFDQor7J207LC97Z2sDQor7J207KKF7Zi4DQor7J207KeE7KO8DQor7J207Ja16recDQor7J207LGE7IudDQor7J2066e57JqwDQor7J207Iic7ISgDQor7J206rec7ISdDQor7J207LGE7ZuIDQor7J207ZmN7IudDQor7J206riw66GdDQor7J207JuQ7IiYDQor7J207LGE7ZuIDQor7J207Jqp7J6QDQor7J2064us7JilDQor7J2067O165OdDQor7J207LKc6rOkDQor7J207Jyg66qpDQor7J207ISx66y4DQor7J207IiY7Je0DQor7J207LKc6rSRDQor7J207ISx7J6QDQor7J207KO87J2ADQor7J207ISx7KKFDQor7J207LKc7IS4DQor7J207KCV642VDQor7J207KKF65OdDQor7J207Jyk7Zi4DQor7J207LKc7IiYDQor7J2064+Z7IOBDQor7J207KCV64uYDQor7J207Jm464WADQor7J207LKc7KGwDQor7J207KSA7J20DQor7J207Jqw6rKsDQor7J2067KU7ISdDQor7J207LKg6riwDQor7J207Jew7IOBDQor7J207ISx6ri4DQor7J207ISx6rWtDQor7J207LKg7IOBDQor7J207JiB7YOcDQor7J207IyN7KO8DQor7J207ZeM7J21DQor7J207LKg7IiYDQor7J207ZiE7LGEDQor7J206re57YOcDQor7J207J247IiYDQor7J207LKg7IiYDQor7J207JWI7ISxDQor7J207J2867ORDQor7J207ZW07LaYDQor7J207LKg7IiYDQor7J207KCV7YOdDQor7J207KeE7IiYDQor7J207J6s7JewDQor7J207LKg7IicDQor7J207Jm47JiBDQor7J207KKF7IudDQor7J206rSR6riwDQor7J207LKg7JqwDQor7J207KeE7ISdDQor7J2067OR7ISdDQor7J207ISg66GdDQor7J207LKg7JqwDQor7J207IKs67aEDQor7J207LC96ri4DQor7J2064+Z6rOkDQor7J207LKg7JqwDQor7J207LC97IudDQor7J207ZiE7ISdDQor7J206rK96recDQor7J207LKg7JqwDQor7J207Jqw7ZWcDQor7J207J6s7KeBDQor7J207JiB7JikDQor7J207LKg7KO8DQor7J207ISd7IicDQor7J207YOc66y1DQor7J2066y47KeEDQor7J207LKg7Zi4DQor7J2067OR6rWQDQor7J207J6s7ZmYDQor7J2066y06riwDQor7J207LKg7Zi4DQor7J206rK96rK9DQor7J207Jyk7KGwDQor7J2066y47J6QDQor7J207LKg7Zi4DQor7J207J2Y7J6sDQor7J2064us64+ZDQor7J207KCc7Jq0DQor7J207LKg7Zi4DQor7J207ZiV7JuQDQor7J206rK97KGwDQor7J207Zqo7JilDQor7J207LKg7ZmYDQor7J207KKF67SJDQor7J207ISx7J6EDQor7J207Lmg7ISdDQor7J207LKg7Z2sDQor7J207Jqp6rWtDQor7J207ISx7JqpDQor7J207KSA7IiYDQor7J207LKt6riwDQor7J207YOd7JqxDQor7J207KCV7LmYDQor7J207Jyk7JqpDQor7J207LKt7ISdDQor7J207ZWc7KeADQor7J207Iug7IudDQor7J2067O17KO8DQor7J207LKt7ISdDQor7J207ISd7J20DQor7J207KCV7JiBDQor7J2067aE6re8DQor7J207LKt7IiYDQor7J206rSR7ZiBDQor7J207Iic7LCsDQor7J207JiB6re8DQor7J207LKt7IiYDQor7J2064+Z7ZmUDQor7J207KCV7JqpDQor7J207IOB7JikDQor7J207LaU7J6QDQor7J2064+E7IudDQor7J207KKF7ZuIDQor7J2067O07KO8DQor7J207LaY6ri4DQor7J207KCV7KeEDQor7J207J207LKgDQor7J2067OR7KCcDQor7J207LaY6ri4DQor7J207ZiE66eMDQor7J207ZiE6recDQor7J207KCV7KSADQor7J207LaY6ri4DQor7J2064Ko7IKwDQor7J207KeE7IudDQor7J207ISx7JikDQor7J207LaY6ri4DQor7J207KCV7JuQDQor7J207JiB7IS4DQor7J207ISx7ISdDQor7J207LaY64KoDQor7J207KO87IiZDQor7J207Jik7IiYDQor7J207LmY6regDQor7J207LaY67CcDQor7J207Jm464uIDQor7J206riw7ZmUDQor7J207Zi47JyoDQor7J207LaY7ISdDQor7J207J6l6re8DQor7J207ZWc6re5DQor7J207IS47Zi4DQor7J207LaY7IS4DQor7J207JuQ7KCVDQor7J207ZiV7J6sDQor7J207KKF7KKFDQor7J207LaY7IudDQor7J206riw6rWsDQor7J20IO2DnQ0KK+ydtOqyveyImA0KK+ydtOy2mOyLnQ0KK+ydtOyLoOyasA0KK+ydtOyDge2aqA0KK+ydtOyaseyihQ0KK+ydtOy2mOyLpA0KK+ydtOykgOyEoA0KK+ydtOyngOuhnQ0KK+ydtOunueqyvQ0KK+ydtOy2mOyWuA0KK+ydtOq4sOuqqQ0KK+ydtOyInOuTnQ0KK+ydtOq4sOyImQ0KK+ydtOy2mOyYpQ0KK+ydtOu2hO2VhA0KK+ydtOyDgeyYgQ0KK+ydtOyerO2YuA0KK+ydtOy2mOyasA0KK+ydtOuRkOq3oA0KK+ydtOydmOyasA0KK+ydtO2YleygnA0KK+ydtOy2mOyasA0KK+ydtOyYpeyehA0KK+ydtOycpOyXsA0KK+ydtOyiheykgA0KK+ydtOy2mOyerA0KK+ydtOyInOyImA0KK+ydtOygleyEnQ0KK+ydtOyYgeuPjA0KK+ydtOy2mO2DgQ0KK+ydtOq3nOqwlQ0KK+ydtOywveyImA0KK+ydtOyYgeq0gA0KK+ydtOy2mO2DnQ0KK+ydtOyEseydvA0KK+ydtOuqhe2YhA0KK+ydtOuPmeyImA0KK+ydtOy2mO2DnQ0KK+ydtOyEseyInA0KK+ydtOyblOyglQ0KK+ydtOyEseyCvA0KK+ydtOy2mO2DnQ0KK+ydtO2YleyhsA0KK+ydtOyduOyjvA0KK+ydtOyynOuCqA0KK+ydtOy2mO2YuA0KK+ydtOykkeuMgA0KK+ydtOywveyekA0KK+ydtOyerOuPhA0KK+ydtOy2mO2YuA0KK+ydtO2DnOq4uA0KK+ydtO2VtO2VnA0KK+ydtOyCrOyhsA0KK+ydtOy2mO2drA0KK+ydtOyiheq4sA0KK+ydtOq4iOyynA0KK+ydtOq0keyhsA0KK+ydtOy2mO2drA0KK+ydtOybkOyerA0KK+ydtOuLrOyEnQ0KK+ydtOuzteyImA0KK+ydtOy2mO2drA0KK+ydtO2DgOyduA0KK+ydtOyaqeyEoA0KK+ydtOq4iO2drA0KK+ydtOy2mO2drA0KK+ydtOuqheyXtA0KK+ydtOyInOyDnQ0KK+ydtOq1rOuPmQ0KK+ydtOy2nOqzpA0KK+ydtOygle2DnA0KK+ydtO2DnO2ZmA0KK+ydtOyihe2YhA0KK+ydtOy2nOydtA0KK+ydtOyLpO2YuA0KK+ydtO2MkOunjA0KK+ydtOuMgOyInA0KK+ydtOy2qeq3vA0KK+ydtOusuOyInA0KK+ydtOyImOq1sA0KK+ydtOqwkOyYgQ0KK+ydtOy2qeq4sA0KK+ydtOyYgeyYgQ0KK+ydtOustOyVhA0KK+ydtOuzkeyImA0KK+ydtOy2qeq4uA0KK+ydtOyaqeuLrA0KK+ydtO2YleyasA0KK+ydtOqyveyEsQ0KK+ydtOy2qeq4uA0KK+ydtO2YhO2VmQ0KK+ydtO2ZjeyasA0KK+ydtOyInOq1rA0KK+ydtOy2qe2XjA0KK+ydtO2YhOyErQ0KK+ydtOyaqeuylA0KK+ydtOq0ke2DnQ0KK+ydtOy2qe2YlQ0KK+ydtOybkO2ZmA0KK+ydtOunieyImA0KK+ydtOyaqe2VhA0KK+ydtOy2qe2YuA0KK+ydtO2XjOqwgQ0KK+ydtOygleybhQ0KK+ydtO2drO2ZmA0KK+ydtOy2qe2ZmA0KK+ydtOunjOq4uA0KK+ydtOuzkeyekA0KK+ydtOygleybhQ0KK+ydtOy2qe2ZmA0KK+ydtOyEse2VnA0KK+ydtOyImOyasA0KK+ydtOyImOyInA0KK+ydtOy5mOq2jA0KK+ydtOyYpeyImA0KK+ydtOyYgeynhA0KK+ydtOyEneyXsA0KK+ydtOy5oOunjA0KK+ydtO2VhOyImA0KK+ydtO2VtOyXsA0KK+ydtOuzteyLnQ0KK+ydtOy5oOyImA0KK+ydtOyiheyaqQ0KK+ydtOuzke2YuA0KK+ydtOyblOyaqQ0KK+ydtOy5oOyVlA0KK+ydtOyCvO2drA0KK+ydtOyYgeuztQ0KK+ydtOydvOyasA0KK+ydtOy5oOyduA0KK+ydtOynhOyImQ0KK+ydtOyYgeyerA0KK+ydtOyYgeq3nA0KK+ydtOy+jOyasA0KK+ydtOyDgeuegA0KK+ydtOuLrOq1rA0KK+ydtOyImOyyoA0KK+ydtOy+jO2YuA0KK+ydtO2YuOyerA0KK+ydtO2YhOuPmQ0KK+ydtOusuOuLrA0KK+ydtO2DgeybkA0KK+ydtOqwkeq3vA0KK+ydtO2VnOyaqQ0KK+ydtOydhOyEnQ0KK+ydtO2DnOqyvQ0KK+ydtO2DnOyWtQ0KK+ydtOyImOuqqA0KK+ydtOqyveq1rA0KK+ydtO2DnOqyvQ0KK+ydtOynhO2doA0KK+ydtOq0keuwsA0KK+ydtOyepeyErQ0KK+ydtO2DnOqyvQ0KK+ydtO2DnO2DnQ0KK+ydtOyYgeyInA0KK+ydtO2YuOyImA0KK+ydtO2DnOqzpA0KK+ydtOyduOyImA0KK+ydtOyEseyEoA0KK+ydtOywve2DnA0KK+ydtO2DnOqzpA0KK+ydtOuMgOyWuA0KK+ydtO2drOusuA0KK+ydtOynhOyEnQ0KK+ydtO2DnOq3nA0KK+ydtO2VmeyImA0KK+ydtO2WieuwsQ0KK+ydtOyerOyaqQ0KK+ydtO2DnOq3vA0KK+ydtOygleyInA0KK+ydtO2YuOqwkQ0KK+ydtOyWkeu0iQ0KK+ydtO2DnOq3vA0KK+ydtOyImO2YuA0KK+ydtOy5oO2YuA0KK+ydtOywveyasA0KK+ydtO2DnOq3vA0KK+ydtOyYgeyImA0KK+ydtOyaqe2YuA0KK+ydtOybkOyhsA0KK+ydtO2DnOq3vA0KK+ydtOygleyYgQ0KK+ydtOycpOyDgQ0KK+ydtOyEseugrA0KK+ydtO2DnOq3vA0KK+ydtOuzkeyImA0KK+ydtOyEseyLoA0KK+ydtOuemOqzpA0KK+ydtO2DnOq3vA0KK+ydtO2DnOq1rA0KK+ydtOuLrOykkQ0KK+ydtOynhOybkA0KK+ydtO2DnOq3vA0KK+ydtOyduOyImQ0KK+ydtO2VnOyekA0KK+ydtOyInOydvA0KK+ydtO2DnOq3vA0KK+ydtOyDge2YuA0KK+ydtOygleuPmQ0KK+ydtOuzkeyYpQ0KK+ydtO2DnOq3vA0KK+ydtO2YhOyEnQ0KK+ydtOygleuNlQ0KK+ydtOyjvOyasA0KK+ydtO2DnOq3vA0KK+ydtOuRkO2YuA0KK+ydtOygleqwkQ0KK+ydtOqyveyInA0KK+ydtO2DnOq4sA0KK+ydtOu0ieyVlA0KK+ydtO2MkO2RnA0KK+ydtOyEne2doA0KK+ydtO2DnOuLrA0KK+ydtOyEseqyvQ0KK+ydtOuMgOyekA0KK+ydtOymneq3nA0KK+ydtO2DnOuNlQ0KK+ydtOuRkO2VmQ0KK+ydtOygnO2aqA0KK+ydtOq4iO2drA0KK+ydtO2DnOuPmQ0KK+ydtOyEse2DnA0KK+ydtOygle2DnA0KK+ydtO2DnOyWuA0KK+ydtO2DnOuztQ0KK+ydtOq3nO2YuA0KK+ydtOyInOyyoA0KK+ydtOyDgeydvA0KK+ydtO2DnOu0iQ0KK+ydtOuqheqzoA0KK+ydtOq3nOuwsA0KK+ydtOu0ieyasA0KK+ydtO2DnOu0iQ0KK+ydtOyCvOyXsA0KK+ydtOqwkeuhgA0KK+ydtO2ZjeqyvQ0KK+ydtO2DnOu2hA0KK+ydtOygleyXsA0KK+ydtOycpO2DnA0KK+ydtOyEse2XjA0KK+ydtO2DnOyEnQ0KK+ydtOyyoOyerA0KK+ydtO2Wieq1rA0KK+ydtOyYgeyekA0KK+ydtO2DnOyEnQ0KK+ydtOyerOyVhQ0KK+ydtOy5oO2ZmA0KK+ydtOyerO2YuA0KK+ydtO2DnOyEnQ0KK+ydtOyInOuCqA0KK+ydtOuCme2VmQ0KK+ydtO2MlOqyvQ0KK+ydtO2DnOyEoA0KK+ydtO2DnOybhQ0KK+ydtOyYgeuemA0KK+ydtOu0ie2biA0KK+ydtO2DnOyEoA0KK+ydtOq3vOyerA0KK+ydtO2PieyYpQ0KK+ydtO2YhO2drA0KK+ydtO2DnOyEsQ0KK+ydtOyiheyynA0KK+ydtO2DnO2YuA0KK+ydtOydgOyImQ0KK+ydtO2DnOyEsQ0KK+ydtOq3nOqxtA0KK+ydtOyDge2ZmA0KK+ydtOyImOuCqA0KK+ydtO2DnOyEsQ0KK+ydtOyiheyaqQ0KK+ydtOqzhOyYgQ0KK+ydtO2ajOywvQ0KK+ydtO2DnOyEsQ0KK+ydtOywqO2PrA0KK+ydtOuPhO2YuA0KK+ydtOyiheynhA0KK+ydtO2DnOyImA0KK+ydtOuhneq4uA0KK+ydtOyGjOuztQ0KK+ydtOygleydtA0KK+ydtO2DnOyImA0KK+ydtOyEseunjA0KK+ydtO2YhOq1rQ0KK+ydtOygle2drA0KK+ydtO2DnOyImA0KK+ydtOygleyEoA0KK+ydtOy2mOykgA0KK+ydtOyInOybhQ0KK+ydtO2DnOyImA0KK+ydtOunjOq3vA0KK+ydtOuzkeyVlA0KK+ydtOycpOy2nA0KK+ydtO2DnOyImA0KK+ydtO2DnOyekA0KK+ydtOyerOydtA0KK+ydtOycpOq3vA0KK+ydtO2DnOyInA0KK+ydtOustO2DnQ0KK+ydtOunkOq3gA0KK+ydtOyerOyaqQ0KK+ydtO2DnOyIoA0KK+ydtOq3vOq4sA0KK+ydtOyYgeyEnQ0KK+ydtOqyveuTnQ0KK+ydtO2DnOyIoA0KK+ydtOygleuPhA0KK+ydtOyEseyErQ0KK+ydtOyerO2DnA0KK+ydtO2DnOyIoA0KK+ydtOqyveyInA0KK+ydtOq4sOyekA0KK+ydtOyDgeyEoA0KK+ydtO2DnOyLnQ0KK+ydtOygkOuPhA0KK+ydtCDtmZgNCivsnbTsooXtmIQNCivsnbTtg5zsi50NCivsnbTsnYDsi50NCivsnbTsm5DsiJgNCivsnbTrs5Hqt7kNCivsnbTtg5zsi50NCivsnbTshLHsiJgNCivsnbTsnYTrtIkNCivsnbTrs5Hso7wNCivsnbTtg5zsi50NCivsnbTsiJjshK0NCivsnbTstqntmLgNCivsnbTtl4zsnbwNCivsnbTtg5zsi50NCivsnbTsoJXsl7ANCivsnbTsnbjrjIANCivsnbTsmIHtmLgNCivsnbTtg5zsi6ANCivsnbTqt5zsiJwNCivsnbTsoJXsnbwNCivsnbTshLHso7wNCivsnbTtg5zslZQNCivsnbTqt7zssqANCivsnbTsnKTso7wNCivsnbTrs7XtmLgNCivsnbTtg5zsl7ANCivsnbTsnKTsiJwNCivsnbTtg5zsi50NCivsnbTrqoXsmrANCivsnbTtg5zsl7QNCivsnbTsnqzshJ0NCivsnbTtmJXshJ0NCivsnbTsnqzssqANCivsnbTtg5zsmKUNCivsnbTsooXspIANCivsnbTsp4jtlYQNCivsnbTtlbTsmrENCivsnbTtg5zsm5ANCivsnbTspJHtg50NCivsnbTsirnsiJwNCivsnbTsmqnsi50NCivsnbTtg5zsm5ANCivsnbTspIDssqANCivsnbTsmIHsiJgNCivsnbTshLHsmqkNCivsnbTtg5zsm5ANCivsnbTtg5zshKANCivsnbTqsr3ssqANCivsnbTtg5zqsr0NCivsnbTtg5zsnKQNCivsnbTssL3rspQNCivsnbTqt7zrnpgNCivsnbTsmIHsi50NCivsnbTtg5zsnoQNCivsnbTrs7Xqt5wNCivsnbTsmrDtg5wNCivsnbTrs7Xtg5wNCivsnbTtg5zsobANCivsnbTsg4Htl4wNCivsnbTsmIHsmqkNCivsnbTrp4ztnawNCivsnbTtg5zsobANCivsnbTrj4TtnawNCivsnbTstqntlZwNCivsnbTrs5HtmZgNCivsnbTtg5zsobANCivsnbTsnbztmLgNCivsnbTquLDslaANCivsnbTrgpzqt7wNCivsnbTtg5zspIANCivsnbTsnqzsnpANCivsnbTqtJHtnawNCivsnbTrs7TshLENCivsnbTtg5zssqANCivsnbTsmKXsnbQNCivsnbTsmIHtmLgNCivsnbTrs5HrpqwNCivsnbTtg5ztmIQNCivsnbTsnbjqsr0NCivsnbTsnbTstpwNCivsnbTtlYTtmZgNCivsnbTtg5ztmIQNCivsnbTsm5TtmZgNCivsnbTtmZTtm4gNCivsnbTqsr3smqkNCivsnbTtg5ztmLgNCivsnbTsooXtmZQNCivsnbTsnqztnawNCivsnbTtmqjqt7wNCivsnbTtg5ztmLgNCivsnbTri6zsnbwNCivsnbTsnqzslrgNCivsnbTsmIHtmIQNCivsnbTtg5ztmLgNCivsnbTsooXsmqkNCivsnbTtmITsi50NCivsnbTslpHtnZQNCivsnbTtg5ztmZgNCivsnbTsiJzssqANCivsnbTrs5Hsi50NCivsnbTsoJXtg50NCivsnbTtg5ztmqgNCivsnbTtg5ztmLgNCivsnbTrqoXsiJgNCivsnbTqt5zshK0NCivsnbTtg5ztm4gNCivsnbTtnaXstpwNCivsnbTsmbjroZwNCivsnbTtl4zsnpANCivsnbTtg5ztm4gNCivsnbTsnZjtlZkNCivsnbTsnqXrgqgNCivsnbTsiJzstpwNCivsnbTtg5ztnawNCivsnbTqtJHqtbANCivsnbTqt4DtnawNCivsnbTsnoTsiJkNCivsnbTtg53qs6QNCivsnbTqsr3snbgNCivsnbTsnqztg5wNCivsnbTtl4zqt5wNCivsnbTtg53stpgNCivsnbTrrLjtmLgNCivsnbTsnbjrk50NCivsnbTrs5HrsLANCivsnbTtirnshLENCivsnbTsnqzssL0NCivsnbTsoJXsobANCivsnbTtlZjsnpANCivsnbTtjJDquLANCivsnbTquLDsiJkNCivsnbTshJ3qs6QNCivsnbTsoJXqs6QNCivsnbTtjJDrj4wNCivsnbQg7ZmYDQor7J207Jyk7Z2sDQor7J206ri46rWsDQor7J207YyQ64+ZDQor7J207Jqw7J28DQor7J206reA7Je0DQor7J207J247ISdDQor7J207YyQ7ISdDQor7J206re87IiZDQor7J207IOB7Zi4DQor7J207Lmg7ISgDQor7J207YyQ7IicDQor7J207Jqp6rK9DQor7J207KSA7Zi4DQor7J207J6s7KSADQor7J207YyQ7IicDQor7J207IiY7KeEDQor7J207Iic7ISxDQor7J207Jyk7IicDQor7J207YyQ7IigDQor7J207KSA7Z2sDQor7J207LC97ISdDQor7J207KO87LKgDQor7J207YyQ7IudDQor7J207KCV7JmEDQor7J2067aE7IiYDQor7J2067SJ7YOdDQor7J207YyQ7JqpDQor7J207KCV6ri4DQor7J206riw7ISkDQor7J2066eM7ZuIDQor7J207YyU7JqpDQor7J207Iic7JuQDQor7J207KeA7ISxDQor7J207Z2l7IigDQor7J207Y+J6rWsDQor7J2066y464usDQor7J2067OR7IicDQor7J207KKF7ZWYDQor7J207ZKN66+4DQor7J207ISx7JqUDQor7J206rK97ZiVDQor7J207KKF656YDQor7J207ZWE6riwDQor7J207YOA7IudDQor7J207ZeM7ZmYDQor7J2067O17ZiEDQor7J207ZWE64KoDQor7J207J6s64KoDQor7J207Jyk6rK9DQor7J207IiZ7KSRDQor7J207ZWE7IiYDQor7J207ISg6recDQor7J207KKF7JmVDQor7J206riw7Z2sDQor7J207ZWE7IiYDQor7J207J6s7ZmYDQor7J207KKF66GdDQor7J2064+E7JuQDQor7J207ZWE7JewDQor7J207J6s7KKFDQor7J2064yA7IiYDQor7J207KKF7ZiEDQor7J207ZWE7ZmYDQor7J207JiB7ZmYDQor7J207IyN67CxDQor7J207KCQ7JewDQor7J207ZWY6rK9DQor7J206riw7ZmUDQor7J207J6s6rCRDQor7J2066y464+ZDQor7J207ZWY7IudDQor7J207ISx656YDQor7J207KCV6rOkDQor7J207J6l7Zi4DQor7J207ZWZ64W4DQor7J207ISx7JmEDQor7J207KSR7YOdDQor7J207KKF7KO8DQor7J207ZWZ7ISdDQor7J206rec7Zi4DQor7J207KeE7IudDQor7J2064+Z7YOBDQor7J207ZWZ7KCcDQor7J206rK97ZiEDQor7J207LaY6raMDQor7J207Iuc7ZWcDQor7J207ZWZ7KGwDQor7J207LCo7Zi4DQor7J2067SJ7ZeMDQor7J207ISx7KeEDQor7J207ZWc6rWsDQor7J206riw6rOgDQor7J207KCV7LacDQor7J2067OR7KCVDQor7J207ZWc6regDQor7J20IOyhsA0KK+ydtOuqheq0gA0KK+ydtOyImeyekA0KK+ydtO2VnOq3vA0KK+ydtOygkOyLnQ0KK+ydtOuMgOywrA0KK+ydtOyInO2ZlA0KK+ydtO2VnOuNlQ0KK+ydtOuHjOyXtA0KK+ydtOyInOuztQ0KK+ydtOyduOuqqQ0KK+ydtO2VnOyEsQ0KK+ydtOuzkeq3vA0KK+ydtOu2hOyEnQ0KK+ydtOyYgeyXtA0KK+ydtO2VnOyInA0KK+ydtO2YhOuPhA0KK+ydtOy5oOynhA0KK+ydtOyYge2ZmA0KK+ydtO2VnOyLnQ0KK+ydtOustOuqhQ0KK+ydtOyYgeuMgA0KK+ydtOyImOuCqA0KK+ydtO2VnOyaqQ0KK+ydtO2MkOq2jA0KK+ydtOyEseyLnQ0KK+ydtOyYgeuPmQ0KK+ydtO2VnO2PiQ0KK+ydtOq0keyInA0KK+ydtOyaqeq1rA0KK+ydtOyDge2DnA0KK+ydtO2VnO2ZjQ0KK+ydtOyEseynhA0KK+ydtOygleuCqA0KK+ydtOyMjeynhA0KK+ydtO2VreyaqQ0KK+ydtOyInOyIoA0KK+ydtOy2mOyImA0KK+ydtOynhOyekA0KK+ydtO2VtOyEnQ0KK+ydtOyaqeyLnQ0KK+ydtO2DnOuNlQ0KK+ydtOyYge2ZmA0KK+ydtO2VtOyLnA0KK+ydtOyZuOyEsQ0KK+ydtO2Zje2ZmA0KK+ydtO2UvO2DnA0KK+ydtO2VtOyYgQ0KK+ydtOy2qe2YuA0KK+ydtOygleyEoA0KK+ydtOyYgeyEnQ0KK+ydtO2VtOyYpQ0KK+ydtOyImO2drA0KK+ydtOyYgeybhQ0KK+ydtOydmOyInA0KK+ydtO2VtOyasA0KK+ydtOyiheyasA0KK+ydtOyaqe2ZmA0KK+ydtOuqheyInA0KK+ydtO2VtOyasQ0KK+ydtOywveq1rQ0KK+ydtOyynO2YhA0KK+ydtOybkOyasA0KK+ydtO2VtOyatA0KK+ydtOyaqeygnA0KK+ydtOyiheunjA0KK+ydtOuemOq1kA0KK+ydtO2VtOybhQ0KK+ydtOq4uOyXsA0KK+ydtO2DnOyjvA0KK+ydtOq0keyEoA0KK+ydtO2VtOyekA0KK+ydtOyDgeyEnQ0KK+ydtOyiheyLnQ0KK+ydtOustOq3nA0KK+ydtO2VtOyglQ0KK+ydtOyEseyImA0KK+ydtOyDgeyXtA0KK+ydtO2VhOyEnQ0KK+ydtO2VtOyglQ0KK+ydtOygleuMgA0KK+ydtOq3nOuPhA0KK+ydtOqyveyXsA0KK+ydtO2VtOyhsA0KK+ydtOyYpeuPmQ0KK+ydtOyiheyEnA0KK+ydtOyYgeyaqQ0KK+ydtO2VtOyjvA0KK+ydtOuqheyInA0KK+ydtO2YuOykgA0KK+ydtOy5mOuCqA0KK+ydtO2VtOykgA0KK+ydtOuCqO2DnQ0KK+ydtOywqOyjvA0KK+ydtOyInOuNlQ0KK+ydtO2VtOyyoA0KK+ydtOydteyhsA0KK+ydtO2YgeqyvQ0KK+ydtOuzkeyYgQ0KK+ydtO2WieyImA0KK+ydtOunueyXtA0KK+ydtOyDgeyEoA0KK+ydtOygle2YnA0KK+ydtO2WieyatA0KK+ydtOu0ieyEuA0KK+ydtOywveqzpA0KK+ydtOynhOyhsA0KK+ydtO2WieyekA0KK+ydtOywqOyXsA0KK+ydtOyaqeyduA0KK+ydtOqyveu2hA0KK+ydtO2Wie2DgQ0KK+ydtOyGjOyasA0KK+ydtO2drOyImQ0KK+ydtOqyve2DnA0KK+ydtO2WpeuvuA0KK+ydtOq3vOybhQ0KK+ydtOuqheyyoA0KK+ydtOq4iOuPjA0KK+ydtO2WpeyEnQ0KK+ydtOyiheyErQ0KK+ydtOqyveydtQ0KK+ydtOyaqeyYgQ0KK+ydtO2XjOqwkQ0KK+ydtOyDgeyImQ0KK+ydtOyEseunjA0KK+ydtOyYgeuNlQ0KK+ydtO2XjOq1rQ0KK+ydtOq4sO2DnA0KK+ydtOq3gOq1rQ0KK+ydtOybkOuNlQ0KK+ydtO2XjOq4sA0KK+ydtO2DnO2drA0KK+ydtOyInO2biA0KK+ydtOyYge2YuA0KK+ydtO2XjOq4sA0KK+ydtOu0ieuNlQ0KK+ydtOydtOyLnQ0KK+ydtOyerO2YuA0KK+ydtO2XjOuLrA0KK+ydtOu0ieq3vA0KK+ydtOuqheq4iA0KK+ydtOqyveybkA0KK+ydtO2XjOusuA0KK+ydtOyImOyErQ0KK+ydtOuPme2YhA0KK+ydtOq4sOyEoA0KK+ydtO2XjOuwqQ0KK+ydtOyEoOyyoA0KK+ydtOyduO2drA0KK+ydtOyEneuylA0KK+ydtO2XjOyDgQ0KK+ydtOydvOy2nA0KK+ydtOq4iO2YhA0KK+ydtOyImOuylA0KK+ydtO2XjOyLnQ0KK+ydtOyepe2XjA0KK+ydtOyerOyImA0KK+ydtOuMgOyEoA0KK+ydtO2XjOyYgQ0KK+ydtOq0keyerA0KK+ydtOqyveq1rA0KK+ydtOq0keyaqQ0KK+ydtO2XjOyYpA0KK+ydtOyImOyasA0KK+ydtOyYge2ZmA0KK+ydtOyEuOyjvA0KK+ydtO2XjOyaqQ0KK+ydtOuzke2ZjQ0KK+ydtOyblOybkA0KK+ydtOyerOydtA0KK+ydtO2XjOyasA0KK+ydtOq4sO2VmQ0KK+ydtOqzhOyhsA0KK+ydtOuRkOyInA0KK+ydtO2XjOybhQ0KK+ydtOycpOyLnQ0KK+ydtOyImOy2nA0KK+ydtOuFuOydvA0KK+ydtO2XjOydtQ0KK+ydtOq4iO2VmA0KK+ydtOuPmeyInA0KK+ydtO2Vmeq4sA0KK+ydtO2XjOyggQ0KK+ydtOyInOyaqQ0KK+ydtOyepeyInA0KK+ydtO2DnOydvA0KK+ydtO2XjOyjvA0KK+ydtO2MlOyImA0KK+ydtOyZhO2aqA0KK+ydtOyGkOq3nA0KK+ydtO2XjOynhA0KK+ydtOyYgeyImQ0KK+ydtOyDgeq4sA0KK+ydtOuMgOuqqQ0KK+ydtO2XjOy2nA0KK+ydtOyYgeufiQ0KK+ydtOqyve2VmA0KK+ydtOqzteyEnQ0KK+ydtO2XjOy5mA0KK+ydtOyiheyyoA0KK+ydtOyZhOyLnQ0KK+ydtOuvuOybhQ0KK+ydtO2XjO2DgQ0KK+ydtOuzteq3nA0KK+ydtOyDgeyhsA0KK+ydtO2VtOq1rA0KK+ydtO2XjO2DnA0KK+ydtOyerOyLnQ0KK+ydtOyEseuNlQ0KK+ydtOqyve2DnA0KK+ydtO2XjO2DnA0KK+ydtOq4sO2DnA0KK+ydtOuqheq0kQ0KK+ydtOunjOyaqQ0KK+ydtO2XjO2DnA0KK+ydtOuPjOyInA0KK+ydtOyInOqzpA0KK+ydtOydvOyyoA0KK+ydtO2XjO2PrA0KK+ydtOyYge2YhA0KK+ydtOyerOy2nA0KK+ydtOuzteybhQ0KK+ydtO2XjO2PrA0KK+ydtOywqOynhA0KK+ydtOuMgO2ZjQ0KK+ydtOyaqeuPhA0KK+ydtO2XjO2YuA0KK+ydtOq3vOqyvQ0KK+ydtOuqheyEnQ0KK+ydtOqwkeu0iQ0KK+ydtO2XjO2YuA0KK+ydtOynhOuMgA0KK+ydtOq3nOybhQ0KK+ydtOyDge2ZmA0KK+ydtO2XjO2YuA0KK+ydtOyihe2drA0KK+ydtOygleyErQ0KK+ydtOyiheuqhQ0KK+ydtO2YgeynhA0KK+ydtOyiheyYgQ0KK+ydtOuPmeyEsQ0KK+ydtO2DnOybkA0KK+ydtO2YhOq1rA0KK+ydtOyaqeuwsA0KK+ydtO2YhOynhA0KK+ydtOydgOyaqQ0KK+ydtO2YhOuguQ0KK+ydtOuPmeq2jA0KK+ydtOybkO2YuA0KK+ydtOyDgeyaqQ0KK+ydtO2YhOuqqA0KK+ydtOyXhey2nA0KK+ydtO2ZlO2biA0KK+ydtOuPme2DnA0KK+ydtO2YhOyDgQ0KK+ydtOyiheyLnQ0KK+ydtOyYgeykgA0KK+ydtOqyveyDnQ0KK+ydtO2YhOyDgQ0KK+ydtO2VmO2drA0KK+ydtO2DnOyyoA0KK+ydtOq4iOq4uA0KK+ydtO2YhOyDgQ0KK+ydtOycpO2YuA0KK+ydtOuPmeyDnQ0KK+ydtOynhOyXtA0KK+ydtO2YhOyImQ0KK+ydtOyyoOyekA0KK+ydtOyImOynhA0KK+ydtO2ZjeydvA0KK+ydtO2YhOyLnQ0KK+ydtOygleyVoA0KK+ydtOyerOuwsA0KK+ydtOyYgeugqA0KK+ydtO2YhOyXtA0KK+ydtOyDgeyIoA0KK+ydtOydvO2DnQ0KK+ydtOq0ke2YuA0KK+ydtO2YhOyerA0KK+ydtOuPme2cmA0KK+ydtOyYgeyXsA0KK+ydtOuCnOyatA0KK+ydtO2YhOyglQ0KK+ydtOuzteyYpA0KK+ydtOyatOyEsQ0KK+ydtOyDgeybkA0KK+ydtO2YhOyhsA0KK+ydtOynhOq3oA0KK+ydtOq4sOyXtA0KK+ydtOychOyLnQ0KK+ydtO2YhOyihQ0KK+ydtO2DnO2drA0KK+ydtOyerOuPhA0KK+ydtOuylOyjvA0KK+ydtO2YhOyyoA0KK+ydtOq0keyIoA0KK+ydtOq4sOuPmQ0KK+ydtO2aqOyInA0KK+ydtO2YhOyyoA0KK+ydtOuzkeyerA0KK+ydtOyerOqzpA0KK+ydtOygleuylA0KK+ydtO2YhO2DnA0KK+ydtOyEne2YhA0KK+ydtOygkOyVlA0KK+ydtOycpOyLnQ0KK+ydtO2YhO2drA0KK+ydtOyInOyekA0KK+ydtOuzke2drA0KK+ydtOyImOyEnQ0KK+ydtO2Yleq0kQ0KK+ydtOyaqeybkA0KK+ydtOycpOywrA0KK+ydtOydtOyerA0KK+ydtO2YleuFuA0KK+ydtOyEoOyLnQ0KK+ydtOuqheydtQ0KK+ydtOunjOyasQ0KK+ydtO2YleuMgA0KK+ydtOyihe2DnA0KK+ydtOyIoO2DnQ0KK+ydtOyaqeusuA0KK+ydtO2YleustQ0KK+ydtO2UvOuTnQ0KK+ydtOunueyInA0KK+ydtOuzkeyhsA0KK+ydtO2YleyLnQ0KK+ydtOyDgeyEnQ0KK+ydtOy5mOunkA0KK+ydtOyerOyEoA0KK+ydtO2YleyLnQ0KK+ydtOyblOyImQ0KK+ydtOydmOusuA0KK+ydtOunkO2YuA0KK+ydtO2YleyhsA0KK+ydtOuNleuCqA0KK+ydtOuqheyVlA0KK+ydtOyYgeyasA0KK+ydtO2Yle2DnA0KK+ydtOq3nOyhsA0KK+ydtOyduO2YhA0KK+ydtOq0gOq3nA0KK+ydtO2Yle2DnA0KK+ydtO2DneyjvA0KK+ydtOyaqeydvA0KK+ydtOyerOyInA0KK+ydtO2YnOqyvQ0KK+ydtO2RnO2VrQ0KK+ydtOygle2YuA0KK+ydtOyLrOywvQ0KK+ydtO2YnOqyvQ0KK+ydtOuPmeyErQ0KK+ydtOydtOq3nA0KK+ydtOygley2nA0KK+ydtO2YnOqyvQ0KK+ydtOyDgeyLnQ0KK+ydtOyiheyEnQ0KK+ydtO2XjOyjvA0KK+ydtO2YnOumvA0KK+ydtOq4sOyasQ0KK+ydtOyEne2biA0KK+ydtOq3gOuCqA0KK+ydtO2YnOyImQ0KK+ydtOyerOyXtA0KK+ydtOq1rO2ZmA0KK+ydtO2aqOykgA0KK+ydtO2YnOyImQ0KK+ydtOywve2YuA0KK+ydtOybkOynhA0KK+ydtOydtOunjA0KK+ydtO2YnOyjvA0KK+ydtOq0keyLnQ0KK+ydtOyiheyIoA0KK+ydtOqwkeyhsA0KK+ydtO2YuOq2jA0KK+ydtOuqhe2ZmA0KK+ydtOuMgOyhsA0KK+ydtOyasOyEsQ0KK+ydtO2YuOq2jA0KK+ydtOyYpeq2jA0KK+ydtOyZuOuztQ0KK+ydtOyasOyYpQ0KK+ydtO2YuOuPmQ0KK+ydtO2VnO2YuA0KK+ydtO2DnOyEoA0KK+ydtOq0keyaqQ0KK+ydtO2YuOunjA0KK+ydtOqyveunjA0KK+ydtOqzhO2ZmA0KK+ydtOyKueuPhA0KK+ydtO2YuOyDgQ0KK+ydtO2MkOyXtA0KK+ydtOuzteygnA0KK+ydtOyYpOyEuA0KK+ydtO2YuOyEnQ0KK+ydtOyInOyImQ0KK+ydtOychOykgA0KK+ydtOygleykgA0KK+ydtO2YuOyEsQ0KK+ydtOyyoOyIoA0KK+ydtOyEseybhQ0KK+ydtOy2mOygnA0KK+ydtO2YuOyLoA0KK+ydtOygleyErQ0KK+ydtO2VmeuPhA0KK+ydtOq3nO2ZlA0KK+ydtO2YuOyYgQ0KK+ydtOuNle2VmA0KK+ydtOynhO2YuA0KK+ydtO2DnOq3oA0KK+ydtO2YuOybkA0KK+ydtOyerO2YuA0KK+ydtOyjvOyLpA0KK+ydtOq4sO2YuA0KK+ydtO2YuOybkA0KK+ydtOygleyXtA0KK+ydtOyaqeumvQ0KK+ydtOyiheyLnQ0KK+ydtO2YuOyerA0KK+ydtOuMgOyYgQ0KK+ydtO2DnOuMgA0KK+ydtOyEse2YuA0KK+ydtO2YuOyglQ0KK+ydtOyLoO2DgQ0KK+ydtOuPmeunjA0KK+ydtOygleyLnQ0KK+ydtO2YuOykkQ0KK+ydtOykgOykgA0KK+ydtO2ZjeyImA0KK+ydtOyerOyerA0KK+ydtO2YuOy2mA0KK+ydtOygleyXvQ0KK+ydtOyEneyImA0KK+ydtOq3nO2ZmA0KK+ydtO2YuOy4oQ0KK+ydtOq0keyatA0KK+ydtOyEneq3oA0KK+ydtOuzke2ZmA0KK+ydtO2Zjeq1rA0KK+ydtOuPmeyEoA0KK+ydtOyEseyLnQ0KK+ydtO2Yleq2jA0KK+ydtO2Zjeq1rA0KK+ydtOuzkeyhsA0KK+ydtOyImOyEnQ0KK+ydtOunkOyImA0KK+ydtO2Zjeq1rA0KK+ydtOybkO2ZmA0KK+ydtOycoeynhA0KK+ydtOq0keyEoA0KK+ydtO2Zjeq1rQ0KK+ydtOuPmeydtA0KK+ydtOyngOq3vA0KK+ydtO2MkOyhsA0KK+ydtO2Zjeq3oA0KK+ydtOyjvOyyoA0KK+ydtOyDgeyLnQ0KK+ydtOy2mOq3vA0KK+ydtO2Zjeq4sA0KK+ydtOuzkey2mA0KK+ydtOykgO2VmQ0KK+ydtOyYgeyEsQ0KK+ydtO2ZjeuegA0KK+ydtOydgOuztQ0KK+ydtOyiheyasA0KK+ydtOyerOyihQ0KK+ydtO2ZjeyEnQ0KK+ydtOuCqOyaqQ0KK+ydtOydhOq3vA0KK+ydtOyyreuPjA0KK+ydtO2ZjeyLnQ0KK+ydtOyYge2YuA0KK+ydtOyEneyImA0KK+ydtO2Zje2YhA0KK+ydtO2ZjeyLnQ0KK+ydtO2MkO2ZlA0KK+ydtOydtOuemA0KK+ydtOynhOuztQ0KK+ydtO2ZjeyXtA0KK+ydtOyngOyImA0KK+ydtOuLrOq3oA0KK+ydtOq3nOyekA0KK+ydtO2Zje2DnQ0KK+ydtOy2lO2VmQ0KK+ydtOycpOyImQ0KK+ydtOq4sOykgA0KK+ydtO2Zje2DnQ0KK+ydtOyiheyWuA0KK+ydtOy2lOuTnQ0KK+ydtOyiheq4sA0KK+ydtO2ZlOqyvQ0KK+ydtOydmOuNlQ0KK+ydtOuLrOq1rQ0KK+ydtOygleyerA0KK+ydtO2ZlOqyvQ0KK+ydtOuMgO2DnA0KK+ydtOyInOyImA0KK+ydtOuPme2VmQ0KK+ydtO2ZlOudvQ0KK+ydtO2DnOq3nA0KK+ydtOydtO2ZjQ0KK+ydtOyInOyErQ0KK+ydtO2ZlOyEnQ0KK+ydtO2VnOuemA0KK+ydtOyInO2YhA0KK+ydtO2drO2drA0KK+ydtO2ZlOyEuA0KK+ydtOyDgeyasA0KK+ydtOuzkeq0gA0KK+ydtOu0ieunjA0KK+ydtO2ZlOyImA0KK+ydtOqwkeyhsA0KK+ydtO2VhOyEnQ0KK+ydtOyihe2YlQ0KK+ydtO2ZlOyekA0KK+ydtOyerOyLnQ0KK+ydtO2DnOyXsA0KK+ydtO2YuOybkA0KK+ydtO2ZlOyihQ0KK+ydtOuzkeq0gA0KK+ydtOyYgeyIoA0KK+ydtOy2qey2mA0KK+ydtO2ZmOyImA0KK+ydtO2DnOuztQ0KK+ydtOuPmeyasA0KK+ydtOuvvOyXtA0KK+ydtO2ZmOydtA0KK+ydtOyGjO2drA0KK+ydtOygleynhA0KK+ydtOyerOqzpA0KK+ydtO2ZmOyihQ0KK+ydtOu2hOyerA0KK+ydtOq3gOqzpA0KK+ydtOyXsOyImQ0KK+ydtO2ZqeyImA0KK+ydtOu0ieq3vA0KK+ydtOyDgeydvA0KK+ydtOyYgeykgA0KK+ydtO2ajOyInA0KK+ydtOuvvOyImA0KK+ydtOuNleuMgA0KK+ydtOyYgeyhsA0KK+ydtO2aqOq3oA0KK+ydtOyDge2YuA0KK+ydtO2DnOyatA0KK+ydtOuNleyatA0KK+ydtO2aqOyImA0KK+ydtOyYgeyImA0KK+ydtO2YnOyasA0KK+ydtOygleq3nA0KK+ydtO2aqOybkA0KK+ydtOycpOyImA0KK+ydtO2ZlOuMgA0KK+ydtOuqhe2DnQ0KK+ydtO2bhOu0iQ0KK+ydtOycpOyihQ0KK+ydtO2Yle2YuA0KK+ydtO2DnO2ctA0KK+ydtO2dpeq4sA0KK+ydtOu0ieyDgQ0KK+ydtOyerOyEsQ0KK+ydtOyihe2XjA0KK+ydtO2dpeyInA0KK+ydtOuLrOyEoA0KK+ydtOqyveyWtQ0KK+ydtOunjOyEoA0KK+ydtO2dpeyLnQ0KK+ydtOyihe2ZlA0KK+ydtOq0keuwsA0KK+ydtOyYge2ZmA0KK+ydtO2dpeyerA0KK+ydtOyDge2YuA0KK+ydtOyImOygnA0KK+ydtOuzkeq3nA0KK+ydtO2drOydkQ0KK+ydtOyYge2YhA0KK+ydtOyEneyImA0KK+ydtOygleq4sA0KK+ydtO2drOyekA0KK+ydtOy2qeybkA0KK+ydtO2YhOyihQ0KK+ydtOydgOyLnQ0KK+ydtO2drOyekA0KK+ydtOydgOyyoA0KK+ydtO2YnOyImA0KK+ydtOyiheuMgA0KK+yduOuqhe2OuA0KK+yduOyiheq4sA0KK+yduOyMjeq1rA0KK+yduOygleyaqQ0KK+yduOyerO2ZmA0KK+yduOyerO2ZmA0KK+yduOyDgeynhA0KK+yduOuTneuPhA0KK+yehCDsmIENCivsnoTsnqXsnqwNCivsnoTrhbjqt5wNCivsnoTshLHtmLgNCivsnoTqsr3rsLANCivsnoTssL3siJgNCivsnoTrj5ntm4gNCivsnoTsnqzsp4QNCivsnoTqsr3shJ0NCivsnoTroKTssqANCivsnoTsmIHsnZgNCivsnoTsmbjtmLgNCivsnoTqsr3si50NCivsnoTsooXrj5kNCivsnoTsp4TsobANCivsnoTsiJjssqANCivsnoTqsr3smrANCivsnoTsmqnshJ0NCivsnoTshozrtoANCivsnoTshJ3tmLgNCivsnoTqsr3tmZQNCivsnoTrs5HsgrwNCivsnoTsoJXsiJgNCivsnoTrgqjsmIENCivsnoTqtJHrr7wNCivsnoTsm5Dsi50NCivsnoTsmqnqt7wNCivsnoTso7zrtoQNCivsnoTqtJHsi50NCivsnoTsmIHsnqwNCivsnoTquLDshJ0NCivsnoTtmITrsLANCivsnoTqtJHstpgNCivsnoTssKjtmIQNCivsnoTrtoTtmLgNCivsnoTsooXsoJwNCivsnoTqtaztmLgNCivsnoTssL3rj5kNCivsnoTsg4HtlZwNCivsnoTshLHrj4wNCivsnoTqt4DsiJkNCivsnoTtjJDshJ0NCivsnoTsnbzqtIANCivsnoTssqDtlZwNCivsnoTqt7zrjZUNCivsnoTsmIHrj4wNCivsnoTrqoXtg50NCivsnoTsiJjshKANCivsnoTquIjsmIENCivsnoTtnazsiJwNCivsnoTrhbjsnpANCivsnoTshLHsi50NCivsnoTquLDsmKQNCivsnoTsmIHtmqgNCivsnoTshLHsm5ANCivsnoTtg5zrj4QNCivsnoTquLDtkZwNCivsnoTsoJXrp4wNCivsnoTqsr3suZgNCivsnoTtmITshLENCivsnoTquLDtmIENCivsnoTrjIDrj4QNCivsnoTsm5TtnawNCivsnoTshKDsiJgNCivsnoTquLDtmLgNCivsnoTrtInsm5ANCivsnoTqt7ztnawNCivsnoTssKjssqANCivsnoTquLjsmqkNCivsnoTsmIHtmIQNCivsnoTqsJXsiJgNCivsnoTsoJXsi50NCivsnoTrgqjsiJwNCivsnoTqtaztmLgNCivsnoTrs5HqsJENCivsnoTsi6DsiJgNCivsnoTrhbjsi50NCivsnoTtmJXrgqgNCivsnoTrjZXquLgNCivsnoTsnbjrprwNCivsnoTri6zshJ0NCivsnoTsp4TtmZgNCivsnoTshJ3si6QNCivsnoTsiJjrp4wNCivsnoTri6zstpwNCivsnoTsg4Hqt5wNCivsnoTquLDrqoUNCivsnoTtg5zssqANCivsnoTri6ztmLgNCivsnoTshLHrr7gNCivsnoTrrLTsmrANCivsnoTrs7XsmrQNCivsnoTrjIDtnawNCivsnoTqsr3slZQNCivsnoTtl4zsp4QNCivsnoTqt7zrnpgNCivsnoTrj4TshJ0NCivsnoTsmIHsmIENCivsnoTrtoDsiJwNCivsnoTtmITtnawNCivsnoTrj5nsiJgNCivsnoTsnqzsg50NCivsnoTsoJXrsLANCivsnoTsooXtmZgNCivsnoTroZ3tlqUNCivsnoTsnbjqs6QNCivsnoTqs7zsiJkNCivsnoTqsr3soJUNCivsnoTroZ3tlqUNCivsnoTshLHrtIkNCivsnoTsmIHrnb0NCivsnoTsoJDrj5kNCivsnoTrqoXqtowNCivsnoTsm5DshK0NCivsnoTsnZHsm5ANCivsnoTsnKDsl7ANCivsnoTrqoXsiJwNCivsnoTsp4TsmrANCivsnoTsmIHrnpgNCivsnoTqt5zshKANCivsnoTrqoXslaANCivsnoTsnKTsg4ENCivsnoTrgpnquLANCivsnoTqtJHsspwNCivsnoTrqoXtnawNCivsnoTsg4HsiJgNCivsnoTsmqnqt7wNCivsnoTsp4TsnqwNCivsnoTrrLTsgrANCivsnoTqsr3tmLgNCivsnoTsmZXsiJgNCivsnoTsnZjrspQNCivsnoTrrLTsiJgNCivsnoTslaDsobANCivsnoTsmIHtmLgNCivsnoTsoJXquLANCivsnoTrrLTsl7ANCivsnoTsiJjtmIQNCivsnoTsmZXshLgNCivsnoTsnbjsg4ENCivsnoTrrLjsiJwNCivsnoTsoJXsmKUNCivsnoTtg5zrtIkNCivsnoTtmITsg4ENCivsnoTrs5Hqs6QNCivsnoTtnazquLANCivsnoTqtJHsmrANCivsnoTtl4ztg50NCivsnoTrs5Hqs6QNCivsnoTssL3smIENCivsnoTsnbjsp4QNCivsnoTsmqntnawNCivsnoTrs5HqtbANCivsnoTsiJzquLANCivsnoTshozssqANCivsnoTtnazqtJENCivsnoTrs5HquLgNCivsnoTsiJzssqANCivsnoTshLHsm5ANCivsnoTsiJzrtoANCivsnoTrs5HsgrwNCivsnoTrqoXsiJwNCivsnoTsg4HtmLgNCivsnoTsg4HtmY0NCivsnoTrs5HsiJgNCivsnoTsmbjsgrwNCivsnoTsmIHtm4gNCivsnoTsnZjrjZUNCivsnoTrs5HsmKQNCivsnoTrs5HsiJgNCivsnoTsmqntmZgNCivsnoTsiJzrhbgNCivsnoTrs5HssqANCivsnoTrk53slZQNCivsnoTsmIHtmIQNCivsnoTtmITsmrANCivsnoTrs5HssqANCivsnoTsg4HtmLgNCivsnoTrtIntmLgNCivsnoTshJ3tnaANCivsnoTrs5Htg5wNCivsnoTsm5Dsl7QNCivsnoTrqoXrtIkNCivsnoTshJ3qt5wNCivsnoTrs7XsmIENCivsnoTsuaDtg5wNCivsnoTsooXshJ0NCivsnoTrrLTsmIENCivsnoTrtInsmrANCivsnoTsmqnsmKUNCivsnoTsg4HsobANCivsnoTssYTsl7QNCivsnoTrtoTsobANCivsnoTsuZjrnb0NCivsnoTrrLTsnqwNCivsnoTsg4Hsg50NCivsnoTsg4HsiJgNCivsnoTsnqztmakNCivsnoTsoJXquLANCivsnoTssL3siJkNCivsnoTsg4HtlZkNCivsnoTsnKTtl4wNCivsnoTsmbjshKANCivsnoTrp5DrsLENCivsnoTshJ3soJANCivsnoTssL3rkZANCivsnoTtg5zshKANCivsnoTsnqzsiKANCivsnoTshKDrr7gNCivsnoTspIDtmJUNCivsnoTrs5HstpwNCivsnoTsnKTqs6QNCivsnoTshKDsmrANCivsnoTsgrzqsr0NCivsnoTquLDshKANCivsnoTsooXsiJgNCivsnoTshLHqt5wNCivsnoTqsJDsooUNCivsnoTtnazroKwNCivsnoTsspzsiJgNCivsnoTshLHquLANCivsnoTsmqnsmqkNCivsnoTsp4TsiJwNCivsnoTqtZDsmIENCivsnoTshLHsm5ANCivsnoTsiJzsobANCivsnoTrjZXshJ0NCivsnoTsmKTtmY0NCivsnoTshLHtmLgNCivsnoTqtJHslaANCivsnoTrjZXtmZQNCivsnoTsnqzroZ0NCivsnoTsiJjrj5kNCivsnoTstpjsi6ANCivsnoTsnqztm4gNCivsnoTtg5zshKANCivsnoTsiJjsi50NCivsnoTsmIHsmrANCivsnoTtg5ztnawNCivsnoTtg5zshJ0NCivsnoTsiJjsnbwNCivsnoTsoJXrtIkNCivsnoTrs5Hqsr0NCivsnoTsg4HtmZgNCivsnoTsiJjsuZkNCivsnoTsg4Hsl6wNCivsnoTsooXsoJUNCivsnoTsooXsiJgNCivsnoTsiJnsmIENCivsnoTsnYDtkZwNCivsnoTrr7jqs6QNCivsnoTrkZDqt5wNCivsnoTsiJnsnpANCivsnoTqsJHshJ0NCivsnoTrjIDqt5wNCivsnoTsooXsp4QNCivsnoTsiJnsnpANCivsnoTstpjrrLgNCivsnoTsnqztg5wNCivsnoTrp5Drs7QNCivsnoTsiJzrjZUNCivsnoTshJ3shKANCivsnoTrrLTrqqkNCivsnoTquLDshJ0NCivsnoTsiJzrjZUNCivsnoTsnbjtnLQNCivsnoTshLHsiJwNCivsnoTtjJDsiJgNCivsnoTsiJzsnoQNCivsnoTrr7jrgqgNCivsnoTsg4HtmZgNCivsnoTquLDssqANCivsnoTsiJzsnpANCivsnoTtmZjshJ0NCivsnoTqt5ztlZkNCivsnoTtmIHrj5kNCivsnoTsiJztmZgNCivsnoTqt7zsiJwNCivsnoTsp4TshK0NCivsnoTsmIHrnoANCivsnoTsiKDtmLgNCivsnoTsm5DsiJgNCivsnoTrqbTquLgNCivsnoTtmLjsmrENCivsnoTsirnqs6QNCivsnoTtmLjsiJgNCivsnoTrp5DsnYANCivsnoTsmIHqtZANCivsnoTsirnqtowNCivsnoTrgqjsi50NCivsnoTtlYTtmJUNCivsnoTsp4TsiJwNCivsnoTsirnrsLANCivsnoTsmIHtkZwNCivsnoTsg4HsiJgNCivsnoTsmIHrk50NCivsnoTsirnsiJwNCivsnoTtlonqt7wNCivsnoTsooXquLgNCivsnoTsuZjsobANCivsnoTsirntjJQNCivsnoTrgpnquLANCivsnoTsi6Dqt5wNCivsnoTsi6DsiJwNCivsnoTslpHsmrANCivsnoTrrLjsnbQNCivsnoTshLjsiJgNCivsnoTrqoXshJ0NCivsnoTsl7DtmLgNCivsnoTsiJjrsLANCivsnoTshLHrsLANCivsnoTqt5zshJ0NCivsnoTsmIHqta0NCivsnoTssKjtnawNCivsnoTqs4Tsp4QNCivsnoTsnbjtmZgNCivsnoTsmIHrqqgNCivsnoTsnbztmLgNCivsnoTrj5nsiJgNCivsnoTslrjssqANCivsnoTsmIHsooUNCivsnoTqsJHtnaANCivsnoTspJHsiJwNCivsnoTshLHsiJgNCivsnoTsmIHtg5wNCivsnoTtnJjsmKUNCivsnoTrp4zqsr0NCivsnoTshLHsiJgNCivsnoTsmIHtmLgNCivsnoTrs5HsmqkNCivsnoTqtbDssqANCivsnoTsnqzsl7ANCivsnoTsmIHtmLgNCivsnoTsi6DtmY0NCivsnoTrs5HsnpANCivsnoTqtazsnKQNCivsnoTsmIHtmLgNCivsnoTquIjroKgNCivsnoTssKzsiJwNCivsnoTsp4TsmKUNCivsnoTsmKXsl7ANCivsnoTsnKDtnaUNCivsnoTqsr3tg5wNCivsnoTsiJzsmqkNCivsnoTsmbjsiJgNCivsnoTsmqnquLANCivsnoTtmLjsp4QNCivsnoTsg4Hqsr0NCivsnoTsmqnsp4QNCivsnoTsmrTsl7QNCivsnoTqsr3rspQNCivsnoTsoJXtmLgNCivsnoTsmqnsp4QNCivsnoTsg4HtmZQNCivsnoTsiJjsobANCivsnoTquLDsiKANCivsnoTsmqntg50NCivsnoTrjZXsl7QNCivsnoTshKDrtpUNCivsnoTrtoDrs7UNCivsnoTsmqntlbQNCivsnoTsmqnsiJwNCivsnoTsmKXshK0NCivsnoTsmqnrjZUNCivsnoTsmrDshLENCivsnoTquLDsnpANCivsnoTsoJXsmrENCivsnoTqt5zshK0NCivsnoTsm5DsnpANCivsnoTrqoXsiJgNCivsnoTsiJzrsLANCivsnoTsooXqt5wNCivsnoTsm5DtnawNCivsnoTrs7XshJ0NCivsnoTshLHsoJUNCivsnoTsnqzqt5wNCivsnoTsnKTtmLgNCivsnoTsnbTtmZQNCivsnoTsooXsi50NCivsnoTsmIHqt6ANCivsnoTsnYDqsr0NCivsnoTsmrTtmIQNCivsnoTsnbjqsbgNCivsnoTsmqnsmqkNCivsnoTsnYTsg4ENCivsnoTsnbzsl7QNCivsnoTshJ3shKANCivsnoTqsr3siJgNCivsnoTsnbjsiJwNCivsnoTrs7Tsi50NCivsnoTrjZXroYANCivsnoTtlbTspIANCivsnoTsnbjsnqwNCivsnoTtnazqt7wNCivsnoTsnbXsiJwNCivsnoTsjI3quLgNCivsnoTsnbzsmrANCivsnoTstpjtmqgNCivsnoTssL3tmLgNCivsnoTstqnsnpANCivsnoTsnqXqt5wNCivsnoTsmIHqtawNCivsnoTtg5zsiJkNCivsnoTsnqXqsJENCivsnoTsnqzqsbQNCivsnoTsnbjshKANCivsnoTsoJXtmZgNCivsnoTsp4Ttm4gNCivsnoTsnqzqtowNCivsnoTso7zsg50NCivsnoTrs7Xrj4wNCivsnoTsnqztmIQNCivsnoTsnqzqt7wNCivsnoTqs4TsobANCivsnoTtg5zsmrANCivsnoTrp4zshLENCivsnoTsnqzqt7wNCivsnoTsmIHshK0NCivsnoTssKjsg4ENCivsnoTri6zrs7UNCivsnoTsnqzqt7wNCivsnoTssL3si50NCivsnoTsgrzsobANCivsnoTsiJjsp4QNCivsnoTsnqzsspwNCivsnoTqt7ztmZgNCivsnoTquLDsnqwNCivsnoTsmqntmLgNCivsnoTsnqztmLgNCivsnoTshLHsmKQNCivsnoTsiJzsmrANCivsnoTsnqzsiJgNCivsnoTsoJDsi50NCivsnoTsm5DrtIkNCivsnoTssL3smIENCivsnoTsiJzrrLgNCivsnoTsoJXqsJENCivsnoTtlZnsnbQNCivsnoTqt5ztlZkNCivsnoTsmIHsiJgNCivsnoTsoJXqsJENCivsnoTsgrzqt7wNCivsnoTtlbTsspwNCivsnoTtjJDsoJwNCivsnoTsoJXri6wNCivsnoTsooXrnoANCivsnoTqtZDquLANCivsnoTsg4HtlZkNCivsnoTsoJXrjIANCivsnoTssL3slYQNCivsnoTsooXsl7QNCivsnoTsnpDqtowNCivsnoTsoJXrqqgNCivsnoTsnbTsmYQNCivsnoTsg4HtlZkNCivsnoTstpjro6ENCivsnoTsoJXrsLANCivsnoTstpjtmIQNCivsnoTqtJHrjIANCivsnoTsmIHsl7QNCivsnoTsoJXsiJkNCivsnoTsmqnso7wNCivsnoTsoJXsnpANCivsnoTsmIHqs6QNCivsnoTsoJXsiKANCivsnoTsp4Tsi6ANCivsnoTsp4TqtowNCivsnoTrqbTsmrENCivsnoTsoJXsp4QNCivsnoTsnoTshKANCivsnoTsnqzsobANCivsnoTsnYDrk50NCivsnoTsoJXssqANCivsnoTsmqnsi50NCivsnoTsoJDsmqkNCivsnoTsmqnshJ0NCivsnoTsoJXtg5wNCivsnoTsiJjrjZUNCivsnoTsiJjsp4QNCivsnoTsiJjsnbQNCivsnoTsoJXtmJwNCivsnoTsnbzshK0NCivsnoTsg4HsnbQNCivsnoTsuZjsnbwNCivsnoTsoJXtmLgNCivsnoTqt4DshJ0NCivsnoTtla3rk7ENCivsnoTqtZDsl7QNCivsnoTsoJXtmZgNCivsnoTrgpnrspQNCivsnoTshJ3sg4ENCivsnoTsoJDtmIQNCivsnoTsoJzsmrANCivsnoTrs5Htl4wNCivsnoTsg4HstpgNCivsnoTsooXtnawNCivsnoTsobDqsJUNCivsnoTsmqntmZgNCivsnoTrjIDsg50NCivsnoTshLHshJ0NCivsnoTsooXqta0NCivsnoTsmqnsnpANCivsnoTsmYTtmZgNCivsnoTsnqzshKANCivsnoTsooXquLgNCivsnoTrs7TsiKANCivsnoTsiJztmZgNCivsnoTsiJzshLENCivsnoTsooXrp4wNCivsnoTsnqzsi50NCivsnoTssL3siJwNCivsnoTsoJXtmLgNCivsnoTsooXrp4wNCivsnoTsnYDshKANCivsnoTsoJXsmKUNCivsnoTsooXtnawNCivsnoTsooXsoJUNCivsnoTsiJjshK0NCivsnoTquLjshKANCivsnoTstpjsi50NCivsnoTsooXtg50NCivsnoTsiJzrj4QNCivsnoTsm5TsmrANCivsnoTrtIntmZQNCivsnoTsooXtmLgNCivsnoTsooXsmrENCivsnoTsg4HqtawNCivsnoTsoJXsiJgNCivsnoTsooXtmZgNCivsnoTsnqzsiJgNCivsnoTqtJHtlZwNCivsnoTrs7TtlZkNCivsnoTso7zshK0NCivsnoTsg4Htg5wNCivsnoTrqoXsiJgNCivsnoTsg4HquLANCivsnoTspJHsiJgNCivsnoTssKjqs6QNCivsnoTrqoXsobANCivsnoTrj5nqt6ANCivsnoTspp3qtowNCivsnoTqsr3tnawNCivsnoTsg4HsnoQNCivsnoTtg5ztmJENCivsnoTsp4DtmZgNCivsnoTsmqnquLANCivsnoTrj5nquLgNCivsnoTsmKXtg50NCivsnoTsp4Tqt5wNCivsnoTsnqzshK0NCivsnoTsm5DsiJwNCivsnoTsiJjtlokNCivsnoTsp4TrqqgNCivsnoTsoJXsiJwNCivsnoTstpjtg50NCivsnoTsoJDqtIANCivsnoTsp4TrqqkNCivsnoTsg4HsmqkNCivsnoTrj5ntg5wNCivsnoTsmIHtmIQNCivsnoTsp4Tsm4UNCivsnoTrqoXsspwNCivsnoTsgqzsmKQNCivsnoTsoJXtmLgNCivsnoTsp4Ttg5wNCivsnoTsg4HtnLQNCivsnoTrqoXquLANCivsnoTshLHqtowNCivsnoTssKjrj4QNCivsnoTsooXrgqgNCivsnoTsmIHrp4wNCivsnoTqsr3tnawNCivsnoTssKjsiKANCivsnoTqt7zslrUNCivsnoTsg4Htg5wNCivsnoTsl7DqsJENCivsnoTssL3qt7wNCivsnoTsnKTssqANCivsnoTsoJXtg5wNCivsnoTsmIHqs6QNCivsnoTssYTsi50NCivsnoTsmIHsnKQNCivsnoTtmJXtmIQNCivsnoTrrLjssqANCivsnoTssYTsmqkNCivsnoTsoJXssqANCivsnoTrj5nspIANCivsnoTrj4TsmKUNCivsnoTssYTtmLgNCivsnoTtg5zsmqkNCivsnoTqtIDsmqkNCivsnoTrj5ntmZgNCivsnoTsspztg50NCivsnoTsmIHsmqkNCivsnoTsooXsmrANCivsnoTrtoDtlYQNCivsnoTssq3shJ0NCivsnoTsp4TtnawNCivsnoTrtInqsr0NCivsnoTsoJXsnbwNCivsnoTstpjqt7wNCivsnoTsnYTshKANCivsnoTtg5zsiJwNCivsnoTtmZTsooUNCivsnoTstpjrsLANCivsnoTrj5nsmKUNCivsnoTsiKDrgqgNCivsnoTshLHsiJwNCivsnoTstpjsg50NCivsnoTspJHsmqkNCivsnoQg6riwDQor7J6E7Iq56rWsDQor7J6E7LaY7J6QDQor7J6E6rK97ZqoDQor7J6E6rCR7Je0DQor7J6E6riw7IudDQor7J6E7LmY7KGwDQor7J6E7KO87ISdDQor7J6E66eQ64+ZDQor7J6E7JiB6rG4DQor7J6E7YOc6rK9DQor7J6E6riw67aEDQor7J6E7LKg7J28DQor7J6E7Jil7KeEDQor7J6E7YOc6ri4DQor7J6E7Zqo7Zi4DQor7J6E67OR7J2YDQor7J6E66qo7J28DQor7J6E7YOc6ri4DQor7J6E7ISd6rOkDQor7J6E7JmE7YOdDQor7J6E67OR6rG4DQor7J6E7YOc7IiYDQor7J6E7Iuc7Jq0DQor7J6E7KKF6raMDQor7J6E7Iic7Z2sDQor7J6E7YOc7IicDQor7J6E7ZW07JykDQor7J6E7J6l6rWsDQor7J6E6rec7JWgDQor7J6E7YOc7IicDQor7J6E7KCQ7KKFDQor7J6E7ISg7J6sDQor7J6E7KCV7LGEDQor7J6E7YOc7IicDQor7J6E6rSR7Z2sDQor7J6E7ZWY7ZmUDQor7J6E7JuU7LaYDQor7J6E7YOc7J6QDQor7J6E7KKF7Zi5DQor7J6E7LaY66y4DQor7J6E67OR7J6QDQor7J6E7YOc7KGwDQor7J6E66qF7ZiEDQor7J6E7YOc7JqwDQor7J6E7Jyk7LKgDQor7J6E7YOc7KeEDQor7J6E7IOB6recDQor7J6E6rec7LacDQor7J6E7IaM7Je0DQor7J6E7YOc7Zi4DQor7J6E67OR6regDQor7J6E7J6s7LacDQor7J6E7KSR7JuFDQor7J6E7YOc7Zi4DQor7J6E7KKF7Zi4DQor7J6E7ZmN7ZmYDQor7J6E7KKF7JWgDQor7J6E7YyQ7ISdDQor7J6E6rK97JiBDQor7J6E7KKF7JmEDQor7J6E67OR6recDQor7J6E7YyQ7IiYDQor7J6E7JiB6rK9DQor7J6E7JiB7ZmYDQor7J6E66y07ZiEDQor7J6E7YyU7JqpDQor7J6E67O17J20DQor7J6E6re87ISdDQor7J6E7IaM7KGwDQor7J6E7ZWZ6riwDQor7J6E7JuQ6re8DQor7J6E66+87ZWcDQor7J6E66eQ7Zi4DQor7J6E7ZWZ7IigDQor7J6E7Zqo7ISgDQor7J6E7JiB7Je0DQor7J6E64+Z7IiYDQor7J6E7ZWc7JilDQor7J6E7IiY7YOcDQor7J6E7Iig6rSRDQor7J6E6rOk6rWsDQor7J6E7ZW07LKgDQor7J6E7ZW0642VDQor7J6E7Jyk7KGwDQor7J6E7J6s7ZiEDQor7J6E7ZaJ7YOdDQor7J6E7Iic7J6EDQor7J6E7Jqp6rK9DQor7J6E7JiB6rWsDQor7J6E7ZeM7JiBDQor7J6E7IiZ7IicDQor7J6E7Z2s7KGwDQor7J6E6rK96riwDQor7J6E7ZeM7JqwDQor7J6E6rWQ7IiZDQor7J6E65GQ7KO8DQor7J6E7ISx7LGEDQor7J6E7ZeM7LKgDQor7J6E7YOc66qoDQor7J6E6rK96rCcDQor7J6E7Zi47IiYDQor7J6E7Zi47JiBDQor7J6E7ZmN7LKcDQor7J6E7Jq07KGwDQor7J6E7ISg7Z2sDQor7J6E7ZmU7IicDQor7J6E66eM7JiBDQor7J6E7J6s7J6EDQor7J6EIOqwkQ0KK+yehO2ZmO2DnQ0KK+yehOyerO2ZmA0KK+yehOqyveyImQ0KK+yehOydtO2YuA0KK+yepSDtmLgNCivsnqXrs5HsiJkNCivsnqXsuZjsl7QNCivsnqXsmIHsoJUNCivsnqXqsr3siJkNCivsnqXstpjsnpANCivsnqXtnazqtowNCivsnqXquLDsl7ANCivsnqXqsr3siKANCivsnqXrs5HshKANCivsnqXtmJzsm4UNCivsnqXsiJzsm4UNCivsnqXqs4TslZQNCivsnqXqsr3tg50NCivsnqXqsJHsooUNCivsnqXrqoXtm4QNCivsnqXqtIDsi50NCivsnqXrrLjqsbQNCivsnqXrjZXtlZwNCivsnqXqtJHsl7QNCivsnqXqtJHsmKUNCivsnqXsoJXtnawNCivsnqXslZTqt7wNCivsnqXrs5HsmqkNCivsnqXqta3rgqgNCivsnqUg7ZiEDQor7J6l7Jqp7Z2sDQor7J6l7JiB6re8DQor7J6l6rec66y4DQor7J6l7Z2l66+8DQor7J6l66y06rSADQor7J6l7KeA7ISxDQor7J6l6rec7IudDQor7J6l67OR6riwDQor7J6l67SJ7IicDQor7J6l7JiB7IudDQor7J6l6rec7ZiEDQor7J6l7J247JmEDQor7J6l6rK97ISgDQor7J6l7ZWc7KeEDQor7J6l6rec7ZmNDQor7J6l7Iq57ZmUDQor7J6l7ZW07ISxDQor7J6l7J6s64yADQor7J6l6riI7JiBDQor7J6l64+E66qoDQor7J6l7Iah64+EDQor7J6l7J2A7ZmYDQor7J6l6riw66asDQor7J6l7KeE7Z2sDQor7J6l7Jil7ZeMDQor7J6l7J287Zi4DQor7J6l6riw7IudDQor7J6l66+867CxDQor7J6l7J6s642VDQor7J6l7J6s7JuQDQor7J6l6riw7JmVDQor7J6l7JiB7LKgDQor7J6l7KO866eMDQor7J6l7Kad7LaYDQor7J6l6riw7KO8DQor7J6l64+Z67SJDQor7J6l7ISx7LacDQor7J6l7JiB6riIDQor7J6l6riw7ZmUDQor7J6l7J6s7Zi4DQor7J6l7J2A7JqwDQor7J6l67OR64usDQor7J6l64Ko7IicDQor7J6l7Z2s67KUDQor7J6l7KeE7IiYDQor7J6l7J6s7JqwDQor7J6l64Ko7J20DQor7J6l6rOE7JikDQor7J6l6rec7KGwDQor7J6l6riw7ZiEDQor7J6l64yA7ISxDQor7J6l7JmE7JmEDQor7J6l7KKF7JqwDQor7J6l7Jyk66qFDQor7J6l642V7IudDQor7J6l7JuQ7Zi4DQor7J6l7KKF7YOcDQor7J6l7LaU6riwDQor7J6l642V7ZiEDQor7J6l66eQ7JqwDQor7J6l7IiY6recDQor7J6l7LaY7IiYDQor7J6l64+Z7ISdDQor7J6l6rOE67SJDQor7J6l7IOB7JikDQor7J6l66qF7LKtDQor7J6l64+Z7IudDQor7J6l64yA6rCcDQor7J6l7JuQ7IiYDQor7J6l6rSR7IigDQor7J6l64+Z7Zi4DQor7J6l7IOB7KGwDQor7J6l7J6s6ri4DQor7J6l7J287KGwDQor7J6l64+Z7Zi4DQor7J6l6re87IOdDQor7J6l7IiY7JikDQor7J6l7ZW07ZiEDQor7J6l65GQ6raMDQor7J6l64yA6re8DQor7J6l7Jqw7JewDQor7J6l6rK97JWEDQor7J6l65GQ7ISdDQor7J6l6rOE7KCQDQor7J6l6rOE7KO8DQor7J6l7KeA7KKFDQor7J6l65GQ7IicDQor7J6l7ZWc7JqpDQor7J6l7KKF7JiBDQor7J6l7ZWc7JqpDQor7J6l65GQ7Je0DQor7J6l7IOB67aEDQor7J6l67SJ7LKgDQor7J6l7Iic7ISdDQor7J6l65GQ7J21DQor7J6l7Iuc7JqwDQor7J6l7ISx7Zi4DQor7J6l7Iuc7LKcDQor7J6l66eM7IiYDQor7J6l67O16rSADQor7J6l7IiY7Zi4DQor7J6l7JuQ7IiYDQor7J6l66qF7Zi4DQor7J6l7ZWZ7IiZDQor7J6l7J287Zi4DQor7J6l7YOc7ISdDQor7J6l66+87IudDQor7J6l67OR7ZuIDQor7J6l7JiB7LacDQor7J6l7JiB7KGwDQor7J6l67OR6rWtDQor7J6l7KCV6raMDQor7J6l7KCV7JuQDQor7J6l7IOB7LacDQor7J6l67OR6recDQor7J6l7JiB7J6sDQor7J6lIOyImA0KK+yepeyerOunjA0KK+yepeuzkeuMgA0KK+yepeu2hOyasA0KK+yepeq1kOq1kA0KK+yepeyYgeyihQ0KK+yepeuzkeyLnQ0KK+yepeygleq3vA0KK+yepeyEoO2VnA0KK+yepeq4sOyasA0KK+yepeuzkeyYpA0KK+yepeyInOynhA0KK+yepe2DnOuTnQ0KK+yepeuKoOyekA0KK+yepeuzkeyasQ0KK+yepeyDgeyImQ0KK+yepeq3vOyXtA0KK+yepeygleyImA0KK+yepeuzkeyatA0KK+yepeyImOyasA0KK+yepeuPmeyekA0KK+yepeyatOqwkQ0KK+yepeuzkeykgA0KK+yepeyaqeyLnQ0KK+yepeyngOuvvA0KK+yepeq3gOyYpA0KK+yepeuzkeyyoA0KK+yepeyKue2YuA0KK+yepeyEneyasA0KK+yepeyEseyasA0KK+yepeuzke2XjA0KK+yepeywve2DnA0KK+yepeyDgeyEnQ0KK+yepeyEse2MlA0KK+yepeuzke2YuA0KK+yepeygle2ZmA0KK+yepeydteyLnQ0KK+yepeygkOyEoA0KK+yepeuzke2YuA0KK+yepeq4iOyglQ0KK+yepeyInOq4sA0KK+yepeustOyaqQ0KK+yepeuzteynhA0KK+yepeyDgeynhA0KK+yepeywveyhsA0KK+yepeqzhOuvvA0KK+yepeu0ieydtA0KK+yepeykkeyImA0KK+yepeyDgeq4sA0KK+yepeyInOyyoA0KK+yepeyCvOuztQ0KK+yepeuvuOyImA0KK+yepe2YnOuMgA0KK+yepeyEoOq2jA0KK+yepeyCvOyIoA0KK+yepeyiheyglQ0KK+yepeyInOyerA0KK+yepeuzkeyhsA0KK+yepeyCvOyhsA0KK+yepeq4sOyYpQ0KK+yepe2VtOyEnQ0KK+yepeyiheuTnQ0KK+yepeyCvO2ZmA0KK+yepeynhO2VmQ0KK+yepeq1rOybhQ0KK+yepeygleyImA0KK+yepeyDgeq4sA0KK+yepeyEseyasA0KK+yepeygleyaqQ0KK+yepey5oOq4uA0KK+yepeyDgeq4sA0KK+yepeybkOyynA0KK+yepeyYpeyEoA0KK+yepe2Yle2drA0KK+yepeyDgeq4sA0KK+yepeu2hO2ZmA0KK+yepeunjOyhsA0KK+yepeydmO2drA0KK+yepeyDgeuPhA0KK+yepeyCvO2YlQ0KK+yepeyekOuNlQ0KK+yepe2YuOy2mA0KK+yepeyDgeuqhQ0KK+yepeq3nOq4sA0KK+yepeuPmeuylA0KK+yepeqyve2YuA0KK+yepeyDgeu2gA0KK+yepeyerOyyoA0KK+yepeyYgeyErQ0KK+yepeyiheqzhA0KK+yepeyDgeyLnQ0KK+yepeuPmeuwsA0KK+yepe2YuOyasA0KK+yepeyjvOu2hA0KK+yepeyDge2VmA0KK+yepeyyoOyEoA0KK+yepeuNle2YuA0KK+yepeyduO2drA0KK+yepeyEneq4iA0KK+yepeunjOq4uA0KK+yepeuzkeyerA0KK+yepeuzkeyLnQ0KK+yepeyEneycpA0KK+yepeyiheyLnQ0KK+yepeuPmeuloA0KK+yepeynhOuylA0KK+yepeyEneyhsA0KK+yepeyInOyjvA0KK+yepeyEseq1kA0KK+yepeyyoOyekA0KK+yepeyEoOyLnQ0KK+yepeyYgeyEoA0KK+yepe2VmeuNlQ0KK+yepSDrnoANCivsnqXshLHqt5wNCivsnqXrp5Dsi50NCivsnqXqsr3shKANCivsnqXshLjtmLgNCivsnqXshLHquLANCivsnqXtg5zsiKANCivsnqXrjZXrj5kNCivsnqXrs7XquLANCivsnqXshLHsm4UNCivsnqXsm5DsmIENCivsnqXssKjsg4ENCivsnqXsmqnrj4QNCivsnqXshLHsobANCivsnqXsmIHrp4wNCivsnqXsooXslrgNCivsnqXsmIHtkZwNCivsnqXshLHtmZgNCivsnqXsooXshJwNCivsnqXsmrDslZQNCivsnqXsp4TshKANCivsnqXshLjsl7QNCivsnqXsmIHsiJkNCivsnqXshLHssqANCivsnqXslZTsi50NCivsnqXshLjsm5ANCivsnqXssL3rs7UNCivsnqXrs7TshLENCivsnqXtmIHshJ0NCivsnqXshLjspJENCivsnqXrjZXssqANCivsnqXtmJXsl7QNCivsnqXsiJjsi50NCivsnqXshozqtowNCivsnqXrkZDtg5wNCivsnqXsoJDtmIQNCivsnqXrs5HtmZgNCivsnqXshozshKANCivsnqXshJ3rj5kNCivsnqXtmITqs6QNCivsnqXrs5HtmZgNCivsnqXshozsiJwNCivsnqXrs5HsmqkNCivsnqXsooXsl7ANCivsnqXrs5HtmIQNCivsnqXshozsuKENCivsnqXsoJXsp4QNCivsnqXshLHtj4kNCivsnqXsooXsmrQNCivsnqXsiJzrqoUNCivsnqXrqoXsm5ANCivsnqXshLHtmZgNCivsnqXssqDrtoQNCivsnqXsiJzshKANCivsnqUg7ZiEDQor7J6l7LaY7KeEDQor7J6l7KKF64+EDQor7J6l7Iic7J6QDQor7J6l7YOc67O1DQor7J6l67OR7ZWYDQor7J6l67O46rK9DQor7J6l7Iic7YOcDQor7J6l7Jm47IiYDQor7J6l7IOB7KKFDQor7J6l7ISx6rOkDQor7J6l7Iic7ZGcDQor7J6l7JWI7ZeMDQor7J6l66qF7J20DQor7J6l67aE6rG0DQor7J6l7Iic7Z2sDQor7J6l6rK47JqpDQor7J6l6rCR7KeEDQor7J6l7ISd6raMDQor7J6l7Iq566GdDQor7J6l7J6s7J20DQor7J6l7LC964yADQor7J6l7ISd66y4DQor7J6l7Iq57JilDQor7J6l7J2Y7ZmUDQor7J6l7KKF7ZeMDQor7J6l7J2467aEDQor7J6l7Iq57Zi4DQor7J6l7KCV66+4DQor7J6l7IOB7J6EDQor7J6l7Iic6riwDQor7J6l7Iuc7ZicDQor7J6l7KCV67O1DQor7J6l7LaY7IudDQor7J6l7KKF67O1DQor7J6l7JWI7J6EDQor7J6l7ZiB7JmEDQor7J6l7ZiE7JW8DQor7J6l6rWQ7LKgDQor7J6l7Jew7IudDQor7J6l7LaY6ri4DQor7J6l7YOc6regDQor7J6l7JiB6re8DQor7J6l7Jew7ZmUDQor7J6l7ZiE7ZiEDQor7J6l7J287Zi4DQor7J6l66+47ISdDQor7J6l7JiB6rCRDQor7J6l7KSR7Zi4DQor7J6l7Ja17KO8DQor7J6l64+Z67O1DQor7J6l7JiB6raMDQor7J6l65GQ7LCsDQor7J6l7KKF7ZuIDQor7J6l7Jyg7IudDQor7J6l7JiB6riwDQor7J6l6rec642VDQor7J6lIOyImA0KK+yepeuzke2drA0KK+yepeyYgeq4uA0KK+yepeuqheugqA0KK+yepeuzkeuzkQ0KK+yepeyKueyhsA0KK+yepeyYgeuPhA0KK+yepeuPmeq0gA0KK+yepeykkeq2jA0KK+yepe2VnOq3nA0KK+yepeyYgeuztQ0KK+yepeuCme2dpQ0KK+yepeyZuOq3nA0KK+yepeywrOq4uA0KK+yepeyYgeyDgQ0KK+yepeyiheyaqQ0KK+yepe2YhOyYgQ0KK+yepeqyveuhgA0KK+yepeyYgeyImA0KK+yepeywveydtA0KK+yepeyYpOq4sA0KK+yepeyjvOyhsA0KK+yepeyYgeyekQ0KK+yepeuPhOyLnQ0KK+yepeyYgeyynA0KK+yepeuzke2YhA0KK+yepeyYgeyjvA0KK+yepeyEseyLnQ0KK+yepeyDgeuPhA0KK+yepe2ZjeyLnQ0KK+yepeyYge2ZmA0KK+yepeyYgeyEsQ0KK+yepeygle2ZmA0KK+yepe2DnOuhnQ0KK+yepeyYge2drA0KK+yepeyYpOyEoA0KK+yepeuzkeybhQ0KK+yepeuzkeyLnQ0KK+yepeyYpeyDgQ0KK+yepeyGjOyekA0KK+yepeunjO2drA0KK+yepeuPhOqyvQ0KK+yepeyYpeyInA0KK+yepeyYge2drA0KK+yepeygle2YuA0KK+yepeycpOq2jA0KK+yepeyYpeyInA0KK+yepeyInO2ZmA0KK+yepeyerOynhA0KK+yepeygleydtA0KK+yepeyZuOyekA0KK+yepey5oOyatA0KK+yepeygleuegA0KK+yepeycoOyXsA0KK+yepeyaqe2YhA0KK+yepeyYge2YuA0KK+yepeyImOyImQ0KK+yepeyaseyEsQ0KK+yepeyaqe2YuA0KK+yepeyImOq1rA0KK+yepeyXrOyjvA0KK+yepeyDgeyImQ0KK+yepeyasOy2nA0KK+yepeybkOyerA0KK+yepeyduOyihQ0KK+yepeq4sOq0gA0KK+yepeyatOu0iQ0KK+yepeyYgeyLnQ0KK+yepeyyreyImA0KK+yepeyDgeqyvQ0KK+yepeyatOyaqQ0KK+yepe2YuOqxtA0KK+yepeuMgOyEnQ0KK+yepeuFuOyglQ0KK+yepeyatOyaqQ0KK+yepeyInOyXtA0KK+yepeyEoO2drA0KK+yepeyEoOyEnQ0KK+yepeyatOyaqQ0KK+yepeq4iOu0iQ0KK+yepeyDgeyErQ0KK+yepeyYpOq3nA0KK+yepeybkOyLnQ0KK+yepeyWuO2ZmA0KK+yepe2DnOyjvA0KK+yepeygkOuNlQ0KK+yepeybkOyXtA0KK+yepeyepey2nA0KK+yepeyEoOu0iQ0KK+yepeyGjOykgA0KK+yepeybkOyerA0KK+yepeuPmeyCvA0KK+yepeuNleyInA0KK+yepeuztOyImA0KK+yepeyblOyIoA0KK+yepeunjOyDgQ0KK+yepe2VnO2ZmA0KK+yepeyKueyasA0KK+yepeycoeusuA0KK+yepeybkO2YuA0KK+yepe2VnOydvA0KK+yepeygle2YuA0KK+yepeycpOuPjA0KK+yepeuqheusuA0KK+yepeyImeuPhA0KK+yepeyerOqzpA0KK+yepeycqOydtA0KK+yepeywrOq3vA0KK+yepeyyreq1rQ0KK+yepeq3nOq4uA0KK+yepeydhOqyvQ0KK+yepe2XjOq2jA0KK+yepeyXsOydtQ0KK+yepeyEoOyasA0KK+yepeydhOyEsQ0KK+yepeq3nOyInA0KK+yepeygkOyImA0KK+yepeyEseyInA0KK+yepeydhOyIoA0KK+yepeuPmeusuA0KK+yepe2DnO2YhA0KK+yepeyYgeyLnQ0KK+yepeydhOyLnQ0KK+yepeyWuO2YuA0KK+yepe2MkOuPmQ0KK+yepeygleyaqQ0KK+yepeydteyaqQ0KK+yepeyDgeunjA0KK+yepeq0keyLnQ0KK+yepeygleunjA0KK+yepeyduOyEnQ0KK+yepeynhOyhsA0KK+yepeydte2DnA0KK+yepe2drOyglQ0KK+yepeyduOyLnQ0KK+yepeunjOyerA0KK+yepe2DnOyaqQ0KK+yepeyDgeuegA0KK+yepeyduO2VmQ0KK+yepe2YhOufiQ0KK+yepeuFuOuMgA0KK+yepe2YhO2DnA0KK+yepeyekeyngA0KK+yepe2ZjeqyvQ0KK+yepeyDge2DnA0KK+yepeq3gOyLnQ0KK+yepeyerOunjA0KK+yepeuRkOuPmQ0KK+yepeuNleq4sA0KK+yepe2YhOuPjA0KK+yepeyerOunjA0KK+yepeyYgeuhnQ0KK+yepeuzkeq2jA0KK+yepeycpO2YuA0KK+yepeyerOyEsQ0KK+yepeuNleyaqQ0KK+yepeyEne2YuA0KK+yepeyCvOydtA0KK+yepeyerOyLnQ0KK+yepeyihe2drA0KK+yepeyiheuegA0KK+yepe2MkOybhQ0KK+yepeyerOyLnQ0KK+yepeyMjeq0kQ0KK+yepe2drO2ZjQ0KK+yepeyEseydtA0KK+yepeyerOyLnQ0KK+yepe2drOyEsQ0KK+yepeyasOyYpQ0KK+yepeyInOuCqA0KK+yepeyerO2VmQ0KK+yepe2YhO2YuA0KK+yepeyaqe2ZlA0KK+yepeydtO2ajA0KK+yepeygkOuPhA0KK+yepeuCqO2WpQ0KK+yepeyerOyImQ0KK+yepeyZuOyhsA0KK+yepeygkOyImA0KK+yepeygleq2jA0KK+yepe2DnO2DnA0KK+yepeq0keuCqA0KK+yepeygleyEnQ0KK+yepeyGjO2ZlA0KK+yepeyXsOykkQ0KK+yepeyEseuNlQ0KK+yepeygleyEnQ0KK+yepeygleq1rA0KK+yepeycpOq1rA0KK+yepeykgOuPjA0KK+yepeygleyImQ0KK+yepeunkOuhnA0KK+yepeyImOyasA0KK+yepeyInOyynA0KK+yepeygleyInA0KK+yepeyEse2ajA0KK+yepSDqtJENCivsnqXsnbjshJ0NCivsnqXsoJXsiJwNCivsnqXquLDtnZQNCivsnqXsmIHtmIENCivsnqXsnqzquLgNCivsnqXsoJXsmqkNCivsnqXshLjqsr0NCivsnqXrgqjroZ0NCivsnqXqt4DquLgNCivsnqXsoJXsnpANCivsnqXsg4Hsm4UNCivsnqXsoJXshJwNCivsnqXsnITqsr0NCivsnqXsoJXtmLgNCivsnqXsmIHqsJENCivsnqXtl4zsi6ANCivsnqXrj5nshK0NCivsnqXsoJXtnawNCivsnqXsiJjsmqkNCivsnqXspIDsiJkNCivsnqXsnKTsnKANCivsnqXsooXqsr0NCivsnqXsnbjsirkNCivsnqXsg4HtmLgNCivsnqXsnqztg50NCivsnqXsooXsi50NCivsnqXtg5zso7wNCivsnqXsnqzstpwNCivsnqXsiJjtlqUNCivsnqXsooXtmZgNCivsnqXtlbTtmZQNCivsnqXrp4zrspQNCivsnqXqsbTrjIANCivsnqXspIDquLANCivsnqXqta3snbwNCivsnqXrs7XtmLgNCivsnqXtg5zsnpANCivsnqXspIDrj5kNCivsnqUg7J6QDQor7J6l7KCV6riwDQor7J6l6rK97IicDQor7J6l7KSA7IOBDQor7J6l6rSR7ZmYDQor7J6l66+47IiZDQor7J6l7KKF7IudDQor7J6l7KeA7ZiEDQor7J6l7IOB7LacDQor7J6l6riw7IicDQor7J6l7IiZ66a8DQor7J6l7KeE7Zi4DQor7J6l7ZW07KO8DQor7J6l7KCV7ZmNDQor7J6l7JiB6rCRDQor7J6l7LCo7IudDQor7J6l7IaM7J6EDQor7J6l7KeE7Z2sDQor7J6l7YyU7Z2sDQor7J6l7LC97IiYDQor7J6l7J247JilDQor7J6l7J6s7IudDQor7J6l6riw67CxDQor7J6l7LC97JiBDQor7J6l7Jqp7JqwDQor7J6l7KKF7KO8DQor7J6l7ISx7ZWcDQor7J6l7LC97KGwDQor7J6l7KSA6rOkDQor7J6l7IK87Zi4DQor7J6l7Iug7ISdDQor7J6l7LC97ZmYDQor7J6l7IiY64uIDQor7J6l7ZmY7IStDQor7J6l7LC97ZWZDQor7J6l7LKc7IiYDQor7J6l6rec7IiYDQor7J6l7Jqp7YOBDQor7J6l67O16regDQor7J6l7LKg6riwDQor7J6l7YOc7IudDQor7J6l7LCo7Z2sDQor7J6l66y07IaMDQor7J6l7LKg7IudDQor7J6l7JaR7JuQDQor7J6l6rec7IiZDQor7J6l7KKF7IStDQor7J6l7Lap6regDQor7J6l7ZeM7KCVDQor7J6l7Z2s6riwDQor7J6l7Jqp7ISdDQor7J6l7LmY7ZiBDQor7J6l66qF7ZWZDQor7J6l6re87KSRDQor7J6l7JiB7IiYDQor7J6l7YOc6raMDQor7J6l7KKF7YOcDQor7J6l7ISx7JqwDQor7J6l67OR7KGwDQor7J6l7YOc6raMDQor7J6l7Iud7IudDQor7J6l7LGE7J6QDQor7J6l7KeE7IudDQor7J6l7YOc67O1DQor7J6l7J287JWgDQor7J6l67OR7JWgDQor7J6l7J2A7Zi4DQor7J6l7YOc7ISxDQor7J6l7ISg6re8DQor7J6l7LGE7J6QDQor7J6l7Iic7IOBDQor7J6l7YOc7Z2sDQor7J6l7KCV7ISdDQor7J6l7KCV7KSADQor7J6l7KCV7KGwDQor7J6l7YyQ64+MDQor7J6l7Iic7KGwDQor7J6l7Jqp7IiYDQor7J6l6riI7LmYDQor7J6l7ZWZ7IiYDQor7J6l7IiZ7IudDQor7J6l7Jqp7YOcDQor7J6l7ZWY7ZmYDQor7J6l7ZWZ7J20DQor7J6l7YOc7JiBDQor7J6l7IOB66OhDQor7J6l66eM7Z2sDQor7J6l7ZWZ7KGwDQor7J6l7J6s7IigDQor7J6l7Jqw7J20DQor7J6l7J6s7JewDQor7J6l7ZW07KSADQor7J6l7LGE642VDQor7J6l7KeE6raMDQor7J6l7KCV7Je0DQor7J6l7ZiE7IiZDQor7J6l6rSR7IiZDQor7J6l7ZW064usDQor7J6l6riw64+EDQor7J6l7ZiE7IudDQor7J6l7KeE7ZmYDQor7J6l7ZeM7ISgDQor7J6l7Iq57JiBDQor7J6l7ZiV7Z2sDQor7J6l7ZiE7ZmYDQor7J6l6rWQ7Z2sDQor7J6l6riw7IudDQor7J6l7Zi47IicDQor7J6l66eM7JqxDQor7J6l67OR7Zi4DQor7J6lIO2ZmA0KK+yepe2ZjeyLnQ0KK+yepeu0ieq3nA0KK+yepe2DnO2ctA0KK+yepeq4sOyErQ0KK+yepe2ZjeynhA0KK+yepeyerOyLpA0KK+yepe2VnOq3nA0KK+yepeyYgeyYgQ0KK+yepe2ajOyDgQ0KK+yepeyYgeuylA0KK+yepeuMgOuPmQ0KK+yepeuMgO2YuA0KK+yepe2biOyLnQ0KK+yepeyduOuCqA0KK+yepe2DnOyasA0KK+yepeuRkOykkQ0KK+yepe2cmOyngA0KK+yepeyXsOuztA0KK+yepeyerOyLnQ0KK+yepeygkOyEoA0KK+yepe2drOq3nA0KK+yepeygkOyasA0KK+yepeuqheuztA0KK+yepeqyveyhsA0KK+yepe2drOyekA0KK+yepeyYpOyjvA0KK+yepeqzteybkA0KK+yepeuCmeyglQ0KK+yepe2drOyyoA0KK+yepeyerOq3nA0KK+yepeykgOyVlA0KK+yepeyYpeyImA0KK+yepe2drO2YhA0KK+yepeyImO2YuA0KK+yepe2XjOynhA0KK+yepeyYge2YhA0KK+yghOqwkeuNlQ0KK+yghO2YleuzkQ0KK+yghOq4iOyEoA0KK+yghOyInOydtQ0KK+yghOqwkeuNlQ0KK+yghOybkOu0iQ0KK+yghOq4uOyEnQ0KK+yghOyXsOq2jA0KK+yghOqwkeyLnQ0KK+yghOyYgeybkA0KK+yghOyduOyjvA0KK+yghOyiheyyoA0KK+yghOqwkeykgA0KK+yghOydvOyInA0KK+yghOq0keuNlQ0KK+yghOyihe2ZmA0KK+yghOqwleyImA0KK+yghO2VmO2ZlA0KK+yghO2drOyYpQ0KK+yghOuMgOybkA0KK+yghOqwleydvA0KK+yghOqwkeyYgQ0KK+yghOyduO2WpQ0KK+yghO2Zje2DnQ0KK+yghOqwle2YuA0KK+yghOq4uOyyoA0KK+yghO2VhOu0iQ0KK+yghOyEseuCqA0KK+yghOqyveugqA0KK+yghOuLrOyjvA0KK+yghO2DnOybhQ0KK+yghOyCvOqyvQ0KK+yghOqyveuwsA0KK+yghOuNleyEuA0KK+yghOq4uO2ZlA0KK+yghOyaqeyInA0KK+yghOqyveuwsA0KK+yghOuCnOyYpQ0KK+yghO2DnOq4iA0KK+yghOyLoOyYgQ0KK+yghOqyveyLnQ0KK+yghOyEuOyEoA0KK+yghOygkOyyoA0KK+yghOygleyEsQ0KK+yghOqyveyLnQ0KK+yghO2ZlOyIoA0KK+yghOq1rOyyoA0KK+yghOyEseqyvQ0KK+yghOqyveyVoA0KK+yghO2DnOyyoA0KK+yghOyiheyhsA0KK+yghOyDgeujoQ0KK+yghOqyve2DnA0KK+yghOyLoO2YuA0KK+yghOyaqeq2jA0KK+yghOyEseyyoA0KK+yghOqyve2RnA0KK+yghOyerOyImA0KK+yghOydke2YuA0KK+yghOqyveq2jA0KK+yghOqyve2YuA0KK+yghOyerO2VmQ0KK+yghOyInOyYpQ0KK+yghOyYpOykgA0KK+yghOqyve2drA0KK+yghO2drOu0iQ0KK+yghOyiheq0kQ0KK+yghOuMgOyDgQ0KK+yghOqzhOyInA0KK+yghOuqheyLnQ0KK+yghOuPmeuNlQ0KK+yghO2DneyerA0KK+yghOqzhOyIoA0KK+yghOuRkOq4sA0KK+yghOyEseyyoA0KK+yghOyjvOyYgQ0KK+yghOqzoeu2hA0KK+yghOu2gOuPmQ0KK+yghOyerOyjvA0KK+yghO2YhOyIoA0KK+yghOqzteyEnQ0KK+yghOq1kOyehA0KK+yghOyGjOyasA0KK+yghOunkOu2hA0KK+yghOq0keyLnQ0KK+yghOq4sOykgA0KK+yghO2VtOyImA0KK+yghOyDgeycpA0KK+yghOq3nOyEsQ0KK+yghOyYgeq4sA0KK+yghO2ZjeybkA0KK+yghOygleycpA0KK+yghOq3nOyyoA0KK+yghOq4sOyyoA0KK+yghOy5oOyynA0KK+yghOq3nOydtA0KK+yghOq3vOyLnQ0KK+yghOygleyYpQ0KK+yghOyaqeyasQ0KK+yghOyEseyYgQ0KK+yghOq4sOuylA0KK+yghOq4sO2YuA0KK+yghOyYgeyasA0KK+yghOq3nOuqhQ0KK+yghOq4sOyEnQ0KK+yghOqxtOyCvA0KK+yghOuqheyYpQ0KK+yghOyEseyehA0KK+yghOq4sOyEnQ0KK+yghOuvvOyIoA0KK+yghOyEneq1rQ0KK+yghOuPhOyihQ0KK+yghOq4sOykgA0KK+yghOygleyImA0KK+yghOq3nOyekA0KK+yghOyYgeuNlQ0KK+yghOq4sOywrA0KK+yghOyjvO2VnA0KK+yghOyYge2WpQ0KK+yghOuzkeq4uA0KK+yghOq4sOy2nA0KK+yghOyImO2YuA0KK+yghO2VnOuFlQ0KK+yghOyerOq4sA0KK+yghOq4sO2YhA0KK+yghOyehOyatA0KK+yghCDrnoANCivsoITrs5HtmZQNCivsoITquLDtmY0NCivsoITsmqnqta0NCivsoITsoJDtmIQNCivsoITtg5zquLANCivsoITquLDtmY0NCivsoITso7zsnpANCivsoITsnqzsmIENCivsoITrgqjtmZgNCivsoITquLDtmZgNCivsoITsmIHspIANCivsoITtmITsl7QNCivsoITrtInqsr0NCivsoITquLjsl7ANCivsoITsnqzsiJkNCivsoITrj5nsmKUNCivsoITspIDsiJkNCivsoITri6zsmqkNCivsoITsmKXrk50NCivsoITshKDtg4ENCivsoITssYTsnpANCivsoITrjIDrkZANCivsoITrqoXslYUNCivsoITsmIHsmIENCivsoITsnbjtmLgNCivsoITrjIDsi50NCivsoITsnZjqt5wNCivsoITsooXslpENCivsoITsoJXsnbwNCivsoITrjIDsi50NCivsoITsg4Hrj5kNCivsoITtlbTsl4UNCivsoITsmKTsi50NCivsoITrp5Dsl7ANCivsoITtl4zssqANCivsoITsnqztmZgNCivsoITsp4TquLANCivsoITrqoXshJ0NCivsoITri6zsiJkNCivsoITsiJzsmrANCivsoITsnbTrj4wNCivsoITrqoXsiJgNCivsoITqsJXsl7ANCivsoITsp4TtmIQNCivsoITrj5nsnpANCivsoITrqoXtmLgNCivsoITrs5HrjZUNCivsoITshJ3siJgNCivsoITsirnsp4QNCivsoITrrLjsi50NCivsoITsmIHrrLgNCivsoITssL3qsJUNCivsoITrs5HsobANCivsoITrrLjstpwNCivsoITsooXsnbQNCivsoITslpHqs6QNCivsoITspJHtmY0NCivsoITrrLjtj4kNCivsoITsspzrj5kNCivsoITshLjquIgNCivsoITqtJHssqANCivsoITrrLjtmLgNCivsoITsooXtg50NCivsoITsp4DrjZUNCivsoITsg4HtmLgNCivsoITrr7jsp4QNCivsoITshLHsl7QNCivsoITsp4TtmZgNCivsoITtmY3rj5kNCivsoITrs5HquLANCivsoITsnpDrj5kNCivsoITsiJzsl7ANCivsoITsoJXsi50NCivsoITrs5HquLgNCivsoITsiJjshLENCivsoITsm5DsobANCivsoITtlZjsnoQNCivsoITrs5Hri6wNCivsoITsm5DsuaANCivsoITslrjsiJwNCivsoITsoJXsiJgNCivsoITrs5HrjIANCivsoITstqnsiJkNCivsoITtjJDshKANCivsoITrs5HshJ0NCivsoITrs5HrkZANCivsoITrkZDtmIQNCivsoITssKzqtawNCivsoITqt5zspIANCivsoITrs5Hrpr0NCivsoITsnYDshLENCivsoITri6zrs7UNCivsoITsmIHssKwNCivsoITrs5HrqqkNCivsoITssqDrjZUNCivsoITrs5HrsLANCivsoITshLHsmrANCivsoITrs5HrrLQNCivsoITshLHtg5wNCivsoITsiJjsnqwNCivsoITsg4HsiJgNCivsoITrs5HshJ0NCivsoITrspTssq0NCivsoITsg4HsspwNCivsoITsmqntmowNCivsoITrs5HshK0NCivsoITrj5nsmqkNCivsoITsiJzssqANCivsoITsg4HsiJwNCivsoITrs5HsiJgNCivsoITqtJHsiJgNCivsoITsmqntg5wNCivsoITtj4nsmIENCivsoITrs5HsiJwNCivsoITrrLTtmIQNCivsoITsiJzrpoQNCivsoIQg7ISgDQor7KCE67OR7IicDQor7KCE7Iq57ZWEDQor7KCE7J6s66+8DQor7KCE64yA7IOBDQor7KCE67OR7IudDQor7KCE6rWs66eMDQor7KCE7LC97ISdDQor7KCE7JiB7ZWEDQor7KCE67OR7JilDQor7KCE7Iig7KGwDQor7KCE66+47ISdDQor7KCE7ISx7ZmNDQor7KCE67OR7JilDQor7KCE642V7KGwDQor7KCE67O17IudDQor7KCE64uk6recDQor7KCE67OR7JqpDQor7KCE67OR6recDQor7KCE7Iic7JewDQor7KCE7ZWc6529DQor7KCE67OR7JqpDQor7KCE7Jil642VDQor7KCE7KCQ7JikDQor7KCE67OR64+ZDQor7KCE67OR7JqxDQor7KCE7Iic7KCcDQor7KCE7Jyk7YyUDQor7KCE7JiB7ISdDQor7KCE67OR7JuQDQor7KCE7YOc7IiZDQor7KCE7Ja17IiYDQor7KCE7ISx6recDQor7KCE67OR7JuQDQor7KCE6riI7Zi4DQor7KCE7Jqw7Z2sDQor7KCE7J6E7ZuIDQor7KCE67OR7J6FDQor7KCE64yA7KeEDQor7KCE7ZiV7Zi4DQor7KCE7IOB7JaRDQor7KCE67OR7KO8DQor7KCE7Jew6riwDQor7KCE6riw7ZalDQor7KCE7KCV7ZmYDQor7KCE67OR7KSADQor7KCE6rK97ISxDQor7KCE67SJ7IiYDQor7KCE7KCV7JewDQor7KCE67OR7LC9DQor7KCE7Iic7JilDQor7KCE64yA67O1DQor7KCE7Jqp7ZmUDQor7KCE67OR7LKcDQor7KCE7ISd66y0DQor7KCE7J287J2YDQor7KCE7ZWY64+EDQor7KCE67OR7LKgDQor7KCE7YyQ6regDQor7KCE67aA67SJDQor7KCE7ZmN7JiBDQor7KCE67OR7YOBDQor7KCE7JiB7JqpDQor7KCE7KCV66eMDQor7KCE7YOc7Z2sDQor7KCE67OR7YOcDQor7KCE7YyQ7JuFDQor7KCE7LKg7IiYDQor7KCE7KCV7ZalDQor7KCE67OR7YOdDQor7KCE67SJ7J28DQor7KCE7YOc7IicDQor7KCE7L6M7IudDQor7KCE67OR7YOdDQor7KCE7JiB7KGwDQor7KCE7Jew66GdDQor7KCE7ISx67O1DQor7KCE67OR7ZiBDQor7KCE7J287JqwDQor7KCE6rSR7IudDQor7KCE7YOc6recDQor7KCE67OR7Zi4DQor7KCE7ZeM7Zi4DQor7KCE7YOc6ri4DQor7KCE7Jyk64KoDQor7KCE67OR7ZmUDQor7KCE7YOc7Y+JDQor7KCE7Z2s7J6QDQor7KCE7KKF7J20DQor7KCE67OR7ZmYDQor7KCE7KKF7KSADQor7KCE64+Z7J6QDQor7KCE7ZW067CwDQor7KCE67OR7Zy0DQor7KCE6rSR7ZuIDQor7KCE7IOB6riwDQor7KCE6rCV7JewDQor7KCE67O07IiYDQor7KCE64+Z7IudDQor7KCE7ZiE7IicDQor7KCE7J247LKgDQor7KCE67SJ6raMDQor7KCE7KCQ7IiZDQor7KCE7Jqp7ISdDQor7KCE7J6s7ZWZDQor7KCE67SJ7IiYDQor7KCE6rCV67O0DQor7KCE7ZiE7JWUDQor7KCE7KKF7IudDQor7KCE67aE7IigDQor7KCE7Iic64KoDQor7KCE66qF65OdDQor7KCE7IiY7Z2sDQor7KCE7IKs6rK9DQor7KCE6rK97Z2sDQor7KCE7KSA7ZmNDQor7KCE64yA7IStDQor7KCE7IK8642VDQor7KCE7Jqp7Zi4DQor7KCE7KSA7J20DQor7KCE7KeE7JqpDQor7KCE7IK87IiYDQor7KCE7IOB67O1DQor7KCE7IOB64yADQor7KCE7JuQ7JqpDQor7KCE7IK87LacDQor7KCE7LKt7Zi4DQor7KCE7Jqp7KGwDQor7KCE66qF6ri4DQor7KCE7IK87ZiEDQor7KCE7KeE7JuQDQor7KCE64+E7IOBDQor7KCE7YOc7Zi4DQor7KCE7IK87ZiEDQor7KCE7YOc7KGwDQor7KCE7Jqw6recDQor7KCE7ZiE7Z2sDQor7KCE7IOB64uoDQor7KCE7J6l7IiYDQor7KCE66qF7YOdDQor7KCE7Jil7JuFDQor7KCE7IOB66a9DQor7KCE7IOB6rK9DQor7KCE7ISx7J28DQor7KCE7JuU7IiZDQor7KCE7IOB67SJDQor7KCE67OR66eMDQor7KCE7ISg67O1DQor7KCE7IOB66CoDQor7KCE7IOB7JqwDQor7KCE7ZW07ISxDQor7KCE7KeA7J6QDQor7KCE7KKF7J28DQor7KCE7IOB7Jq0DQor7KCE6raM7IOBDQor7KCE7YOc7Z2sDQor7KCE7KCV6rG0DQor7KCE7IOB7Jq0DQor7KCE7IiY7JqwDQor7KCE7IOB7JiBDQor7KCE7KO87KeEDQor7KCE7IOB7KGwDQor7KCE7LC97KSRDQor7KCE6reA7J6QDQor7KCE7IiY7IicDQor7KCE7IOB7KSADQor7KCE65Od6rCRDQor7KCE7ISd7LKgDQor7KCE6rWQ7Zy0DQor7KCE7IOB7LKgDQor7KCE7IOB7ZiEDQor7KCE7Ja47ISgDQor7KCE7JuQ7Zi4DQor7KCE7IOB7ZmYDQor7KCE66+47Zi4DQor7KCE7Jyk7JqxDQor7KCE7ISx7IiYDQor7KCE7ISd66qoDQor7KCE7IiY6riwDQor7KCE7Je06rSADQor7KCE7IOB7Je0DQor7KCE7ISd7ISxDQor7KCE642V7JWgDQor7KCE7Jqp7J20DQor7KCE7ISx7IudDQor7KCE7ISd7KO8DQor7KCE7J286raMDQor7KCE7LC97YOcDQor7KCE7J2A7Je0DQor7KCE7ISg7ZiEDQor7KCE6rec7IudDQor7KCE7YOc7ZmYDQor7KCE7LKc7ZiEDQor7KCE7ISx6rOkDQor7KCE64yA67mIDQor7KCE7KKF7YOcDQor7KCE64+Z7ZiEDQor7KCE7ISx67CwDQor7KCE7JiB7JmEDQor7KCE7KCV7IiYDQor7KCE7KCV7JqpDQor7KCE7ISx67CwDQor7KCE6rK97JuQDQor7KCEIOyImA0KK+yghOq4sOyXtA0KK+yghOyEseyaqQ0KK+yghOuptOyglQ0KK+yghOyDge2YhA0KK+yghO2dpeyjvA0KK+yghOyEse2drA0KK+yghOyaqeyErQ0KK+yghOyGjOyngQ0KK+yghO2VtOynhA0KK+yghOyGjOyXsA0KK+yghOuzteydtA0KK+yghO2DnOyLnQ0KK+yghOyImOuNlQ0KK+yghOyGjOyYgQ0KK+yghOyerOyYpQ0KK+yghO2VtOq4sA0KK+yghOq3vO2ZmA0KK+yghOyImOq3vA0KK+yghOyEoOyekA0KK+yghOycpOuqhQ0KK+yghOydvOybkA0KK+yghOyImOuTnQ0KK+yghOyYge2ZmA0KK+yghO2YuOyEsQ0KK+yghOyImOuqhQ0KK+yghOyImOyLnQ0KK+yghOyerOyImQ0KK+yghOustOyImA0KK+yghO2drOyEoA0KK+yghOyImOyaqQ0KK+yghOqyve2VnA0KK+yghOusuOyekA0KK+yghOuqheuztQ0KK+yghOyImO2VmQ0KK+yghOyEuOq4uA0KK+yghOyImOu5iA0KK+yghOygleumvQ0KK+yghOyImO2VmQ0KK+yghOuNleu0iQ0KK+yghOydgOyehA0KK+yghOygleyyoA0KK+yghOyImO2YhA0KK+yghOyDge2DnA0KK+yghOyduO2YhA0KK+yghOyase2YuA0KK+yghOyImO2ZmA0KK+yghOyGjOyEoA0KK+yghOykkeyynA0KK+yghOyCvOyepQ0KK+yghOyImO2ZmA0KK+yghOyepeyLnQ0KK+yghOuzke2YuA0KK+yghOyiheyEsQ0KK+yghOyImeyekA0KK+yghOyihe2ZmA0KK+yghOyWkeuPmQ0KK+yghOyerOqzpA0KK+yghOyInOuLqA0KK+yghOqyveu2gA0KK+yghOusuOyaqQ0KK+yghOyasO2DnA0KK+yghOyInOuTnQ0KK+yghOq1reyImA0KK+yghOyImOyepQ0KK+yghOykgOumrA0KK+yghOyInOyXsA0KK+yghOuPmeyImA0KK+yghOqwleyYgQ0KK+yghOyMjeyImQ0KK+yghOyInOyekA0KK+yghO2DnOyaqQ0KK+yghOuzkeuPjA0KK+yghOygleynhA0KK+yghOyInOyxhA0KK+yghOy2mOq1rA0KK+yghOyCvO2VnA0KK+yghO2MkOyLnQ0KK+yghOyMjeq3vA0KK+yghOyYgeyImQ0KK+yghOq0keyWuA0KK+yghOyImOq4sA0KK+yghOyMjeyImA0KK+yghO2VtOyaqQ0KK+yghOywveybkA0KK+yghOuzkeudvQ0KK+yghOyXsOydtA0KK+yghOyKueyLnQ0KK+yghOyImO2DnA0KK+yghOyYge2YhA0KK+yghOyYgeq3oA0KK+yghOyerO2YuA0KK+yghOydvOq1rA0KK+yghOy5mOyDgQ0KK+yghOyYgeq3oA0KK+yghOywrOq3oA0KK+yghOqyveuNlQ0KK+yghOyjvOycpA0KK+yghOyYgeq4sA0KK+yghOuzteq4uA0KK+yghO2DnOq2jA0KK+yghOq4sOyynA0KK+yghOyYgeuNlQ0KK+yghOygkOyWkQ0KK+yghOq4sOu0iQ0KK+yghOq0keyImQ0KK+yghOyYgeuhnQ0KK+yghOyImOyLnQ0KK+yghOygleq3vA0KK+yghOywrOybkA0KK+yghOyYgeyCvA0KK+yghOybkO2YuA0KK+yghOyngOy2mA0KK+yghOybkOyYpQ0KK+yghOyYgeyEnQ0KK+yghO2DnOuemA0KK+yghOyaqe2VmA0KK+yghOyyoO2MlA0KK+yghOyYgeyasA0KK+yghO2cmOyLnQ0KK+yghOywveqzpA0KK+yghOuMgOq3uQ0KK+yghOyYgeyekA0KK+yghOyYgeyXsA0KK+yghOycpOyImA0KK+yghOyiheyglQ0KK+yghOyYgeyihQ0KK+yghOyImOyLnQ0KK+yghOy2qeyEoA0KK+yghO2DnO2drA0KK+yghOyYgeyxhA0KK+yghO2YhO2YuA0KK+yghO2DnOu2gA0KK+yghOq0keynhA0KK+yghOyYge2DgQ0KK+yghO2XjOq2jA0KK+yghOyEneyImQ0KK+yghOuPmeusuA0KK+yghOyYge2MkA0KK+yghOyCvO2YuA0KK+yghO2Yley2mA0KK+yghOygleyImQ0KK+yghOyYge2YuA0KK+yghOyerOyatA0KK+yghOygleq1rA0KK+yghOyYge2YnA0KK+yghOyYge2ZlA0KK+yghOycpOyEnQ0KK+yghOykkeyEnQ0KK+yghOy2lOyEnQ0KK+yghOyYge2ZlA0KK+yghOyiheyyoA0KK+yghOuMgOq2jA0KK+yghOqyveyYgQ0KK+yghOyYge2ZmA0KK+yghOunjOyLnQ0KK+yghOuPmeyyoA0KK+yghO2MkO2biA0KK+yghOyYge2drA0KK+yghOy2mOyEnQ0KK+yghOyepeuCqA0KK+yghOqyveuPmQ0KK+yghOyYpOy2nA0KK+yghOunjOyekA0KK+yghOyGjOq4sA0KK+yghOyDgeq4iA0KK+yghOyYpeu0iQ0KK+yghOyEneuwsA0KK+yghOuNleyekA0KK+yghOyKueyyoA0KK+yghOyYpeyEsQ0KK+yghOyiheycpA0KK+yghOyjvOyjvA0KK+yghOqwleyjvA0KK+yghOyYpeyInA0KK+yghOyImOuNlQ0KK+yghOyerOyInA0KK+yghOyDgeyehA0KK+yghOyZhOyEnQ0KK+yghOuzkeynhA0KK+yghOyEneyInA0KK+yghOyerO2drA0KK+yghOyZuOy2nA0KK+yghOyaqeq3oA0KK+yghOuvuOyEoA0KK+yghOq4sOyasA0KK+yghOyaqeq4sA0KK+yghOyImOyYpQ0KK+yghOyYgeyEsQ0KK+yghOq4sOuPjA0KK+yghOyaqeyEnQ0KK+yghOq3nOq3nA0KK+yghOuNleyEsQ0KK+yghOyEseuPmQ0KK+yghOyaqeyImA0KK+yghOuqheyyoA0KK+yghOygleyEnQ0KK+yghOygkOuTnQ0KK+yghOyaqeygnA0KK+yghOqyveyImA0KK+yghOuzke2VnA0KK+yghOyYgeyihQ0KK+yghOyaqeyxhA0KK+yghOyEseyEoA0KK+yghOyjvOq3nA0KK+yghO2DnOyImQ0KK+yghOyaqe2YuA0KK+yghOygleuztQ0KK+yghOuzke2ctA0KK+yghOuqheyEoA0KK+yghOyaqe2aqA0KK+yghOuNle2drA0KK+yghOynhOyaqQ0KK+yghOustOqxtA0KK+yghOyaqe2drA0KK+yghOyehOuztQ0KK+yghOywveyerA0KK+yghOyYgeybkA0KK+yghOyasOyImA0KK+yghOyiheuMgA0KK+yghOyEne2ZmA0KK+yghOuNleyYgQ0KK+yghOyasOynhA0KK+yghOyYgeykgA0KK+yghOuylOyYgQ0KK+yghOyYgeyInA0KK+yghOyaseuCqA0KK+yghOycoOyInA0KK+yghO2DnOyInA0KK+yghOydvOyXtA0KK+yghOybkOq4uA0KK+yghO2DnO2YuA0KK+yghOywveydvA0KK+yghOuRkO2YnA0KK+yghOybkOyEnQ0KK+yghO2VtO2ZmA0KK+yghOyaqeyyoA0KK+yghOuMgO2drA0KK+yghOybkOyihQ0KK+yghOyImOyInA0KK+yghOyDgeyInA0KK+yghOuzteyImA0KK+yghOybkOykkQ0KK+yghOyImOu2hA0KK+yghOyYgeuztA0KK+yghOyImOydvA0KK+yghOycpOuNlQ0KK+yghOy2mO2DnA0KK+yghOyEse2ZmA0KK+yghOuztOywvQ0KK+yghOycpOyDgQ0KK+yghOydgO2YuA0KK+yghO2ZlOyglQ0KK+yghOuzkeq0kQ0KK+yghOycpOy2nA0KK+yghOqyveyEoA0KK+yghOydvO2ZmA0KK+yghOykgOyekA0KK+yghOycpO2DnA0KK+yghO2YhOyImA0KK+yghOy2mOyekA0KK+yghOunjO2YuA0KK+yghOydgOq3vA0KK+yghOunkOusuA0KK+yghOycpO2ZmA0KK+yghOycoeq4sA0KK+yghOydhOuqqA0KK+yghOyaqeuCqA0KK+yghOyblOyaqQ0KK+yghOymneynhA0KK+yghOydhOyDgQ0KK+yghOu0iey2nA0KK+yghO2cmOyXtA0KK+yghOyYgeq3nA0KK+yghOydhOyInA0KK+yghO2VmOyXtA0KK+yghOy2mOq2jA0KK+yghOydvO2YhA0KK+yghOydmOykgA0KK+yghOycoO2DnQ0KK+yghOu0ieyjvA0KK+yghOuCqOq4sA0KK+yghOyepeyImA0KK+yghOyViO2YuA0KK+yghOq4sOuylA0KK+yghOq3nOyEuA0KK+yghOyepeyLnQ0KK+yghOq2jOyasA0KK+yghOynhO2ZmA0KK+yghOq3nO2ZmA0KK+yghOyerOu0iQ0KK+yghOyDgeyyoA0KK+yghOuPmeq4uA0KK+yghOq4sOyImQ0KK+yghOyerOyEsQ0KK+yghOycpOu0iQ0KK+yghO2drOyEoA0KK+yghOuqheq3oA0KK+yghOyerOyLnQ0KK+yghO2YuOq1rA0KK+yghOq3gOq3oA0KK+yghOqyve2YhA0KK+yghOyerOydtQ0KK+yghOuPmeyLnQ0KK+yghO2DnOyyoA0KK+yghOyngOq3vA0KK+yghOyerOy2mA0KK+yghO2YhOyImA0KK+yghO2ZjeyImA0KK+yghOyaqeyInA0KK+yghOyerO2YhA0KK+yghOyYgeyLnQ0KK+yghOuRkOynhA0KK+yghOq1kOuPhA0KK+yghOyerO2YhA0KK+yghOyImO2ZmA0KK+yghOuNle2YuA0KK+yghO2dpeqyvQ0KK+yghOyerO2YhA0KK+yghOyYge2YuA0KK+yghOyDgeyYgQ0KK+yghOuzkeqzpA0KK+yghOyerO2YhA0KK+yghO2aqO2ZmA0KK+yghOuMgO2YuA0KK+yghOybkO2XjA0KK+yghOyerO2YuA0KK+yghO2aqOynhA0KK+yghOyaqeyaqQ0KK+yghOyaqeyEnQ0KK+yghOygkOyDnQ0KK+yghOywqOq3vA0KK+yghOycpO2drA0KK+yghOyYgeyImQ0KK+yghOygkOyEsQ0KK+yghOyDgeyasA0KK+yghOydvOuPmQ0KK+yghOykgO2DnA0KK+yghOygleq3nA0KK+yghOyiheq1rQ0KK+yghOyEseq4sA0KK+yghOyYgeykgA0KK+yghOygleunjA0KK+yghO2YuOyYgQ0KK+yghOunjOyYpA0KK+yghOqyveq2jA0KK+yghOygleyImA0KK+yghO2YhOyImA0KK+yghOunkOyEnQ0KK+yghOyYgeykgA0KK+yghOygleyasA0KK+yghOyYgeyInA0KK+yghOybkOyYpQ0KK+yghOuLrOyImA0KK+yghOygleyekA0KK+yghOy2mOuMgA0KK+yghOyZuO2ajA0KK+yghOynhOuNlQ0KK+yghOygley0jA0KK+yghOycpOq4sA0KK+yghOq4sOydtA0KK+yghO2VhO2YuA0KK+yghOygle2DnA0KK+yghOydvOybkA0KK+yghOydgOuqhQ0KK+yghOyEse2RnA0KK+yghOygle2WpQ0KK+yghOykgOuwnA0KK+yghO2DnOyYgQ0KK+yghOyEseyaqQ0KK+yghOygle2YhA0KK+yghO2ZjeyerA0KK+yghOyyoOyglQ0KK+yghOyCvOyEoA0KK+yghOygnO2YhA0KK+yghOygkOybkA0KK+yghOuPmeyerA0KK+yghOyDgeyXsA0KK+yghOyiheq3vA0KK+yghOyImO2VmQ0KK+yghO2YnOyLnQ0KK+yghOuPhOyasA0KK+yghOyiheuRkA0KK+yghOyVlOq3nA0KK+yghO2XjOyatA0KK+yghOqxtO2YuA0KK+yghOyiheuTnQ0KK+yghOq4sOybkA0KK+yghO2DnOyInA0KK+yghOycpOyIoA0KK+yghOyiheyEnQ0KK+yghOuLrOudvQ0KK+yghO2VnOyImQ0KK+yghOyiheyImA0KK+yghOyiheyImA0KK+yghOyDgeyImA0KK+yghO2YuOuLtA0KK+yghOynhOq1rQ0KK+yghOyiheyXrA0KK+yghO2MkOyInA0KK+yghOyCvOyYpA0KK+yghOymneyatA0KK+yghOyihe2YhA0KK+yghOqwke2DgQ0KK+yghOunjO2YuA0KK+yghOyepeyatA0KK+yghOyihe2YuA0KK+yghOyYpOyDgQ0KK+yghOygley2mA0KK+yghOyepe2VmA0KK+yghOyjvOuPhA0KK+yghOygleuNlQ0KK+yghO2Dgeq3vA0KK+yghOynhO2drA0KK+yghOyjvOydtA0KK+yghOyynOyghA0KK+yghCDrqqgNCivsoITsirnsnYANCivsoITspIDrj4QNCivsoITsnKTtmLgNCivsoITtmY3so7wNCivsoITshKDsmIENCivsoITspIDtlbQNCivsoITquLDquLANCivsoITrj5nqsr0NCivsoITsmIHsmbgNCivsoITspIDtnawNCivsoITrrLjsm5ANCivsoITquIjqsr0NCivsoITsmIHsiJgNCivsoITssKjrjZUNCivsoITsoJXshK0NCivsoITrj5nshKANCivsoITsooXqsr0NCivsoITssKjstpwNCivsoITqsr3ri6wNCivsoITssKjqt5wNCivsoITqsr3tg50NCivsoITssL3qt5wNCivsoITsoJXsnbwNCivsoITssL3smKUNCivsoITshKDqs6QNCivsoITssL3qt7wNCivsoITsmYTqt5wNCivsoITrtInshKANCivsoITsoJXtmLgNCivsoITssL3siJgNCivsoITqtoHsi50NCivsoITtg5zqtawNCivsoITsoJXqsr0NCivsoITssL3siJgNCivsoITshLHsiJwNCivsoITrs5HsnbwNCivsoITquIjtmIQNCivsoITstpjqta0NCivsoITsoJXqtawNCivsoITtmY3rgqgNCivsoITsmIHtmZQNCivsoITstpjrnbwNCivsoITsnZHsmqkNCivsoITsnbjsiJgNCivsoITsmIHquLANCivsoITstpjrsLANCivsoITsnKDsmqkNCivsoITtg5zsiJgNCivsoITrtInsnYANCivsoITstpjsm4UNCivsoITtlZnsmqkNCivsoITsoJXqtJENCivsoITsuZjsmYQNCivsoITstpjsm4UNCivsoITsg4HssqANCivsoITsuaDtmZgNCivsoITrj5nsi50NCivsoITstpjtnawNCivsoITspJHri6wNCivsoITtlZnrp4wNCivsoITqsrjqsqwNCivsoITstqnsnbwNCivsoITtnazshJwNCivsoITssYTquLgNCivsoITsnbXsiJgNCivsoITsuaDsiJgNCivsoITrs7TsnqwNCivsoITrqoXspIANCivsoITsnqXrnpgNCivsoITtg5zqsr0NCivsoITsnqzsiJkNCivsoITssL3siJgNCivsoITsiJjsnqwNCivsoITtg5zqt6ANCivsoITrj4TspIANCivsoITrs5HrjZUNCivsoITri6ztnawNCivsoITtg5zrj4QNCivsoITrqoXsiJgNCivsoIQg6rWtDQor7KCE64yA7JqxDQor7KCE7YOc67SJDQor7KCE7Jqx642VDQor7KCE7JiB7ZmYDQor7KCE64yA7J6QDQor7KCE7YOc7IicDQor7KCE67Cp7IStDQor7KCE7LKg7LKgDQor7KCE7IiY7JqwDQor7KCE7YOc7IicDQor7KCE7Jil7J6QDQor7KCE7JiB64+ZDQor7KCE7YOc7JuQDQor7KCE7YOc7IudDQor7KCE7KKF7ISgDQor7KCE6rec7Z2sDQor7KCE6riw67KUDQor7KCE7YOc7KGwDQor7KCE7KCV7KSADQor7KCE66y07JiBDQor7KCE7JiB7ISdDQor7KCE7YOc7ZmYDQor7KCE7JyE7ZuIDQor7KCE7KeE7Z2sDQor7KCE7YOc6raMDQor7KCE7YyQ6rCRDQor7KCE6rK97ISxDQor7KCE7YOc7ZmYDQor7KCE7LKt7LKgDQor7KCE7YyQ6raMDQor7KCE6rWt66CoDQor7KCE7Jqp6rG0DQor7KCE7ISg66eQDQor7KCE7YyQ6re8DQor7KCE67O17JikDQor7KCE7Iug7IicDQor7KCE7KeA7IiYDQor7KCE7YyQ7IiYDQor7KCE7ISg7JilDQor7KCE7JiB7LacDQor7KCE7KeE7IudDQor7KCE7YyU7IutDQor7KCE66yY66a8DQor7KCE7Jew7JuQDQor7KCE7Iuc7JuFDQor7KCE7ZWE7IicDQor7KCE67OR64+EDQor7KCE6re86recDQor7KCE7JiB7KSADQor7KCE7ZWY7IiYDQor7KCE7ZmN6ri4DQor7KCE6rec6rK9DQor7KCE7J286recDQor7KCE7ZWZ7Je0DQor7KCE7Jik7ZyYDQor7KCE67OR6re8DQor7KCE7LaY7Z2sDQor7KCE7ZWc6rCRDQor7KCE7KCV7IStDQor7KCE7KKF7YOdDQor7KCE7J287Z2sDQor7KCE7ZWc6recDQor7KCE7Zi47ZiBDQor7KCE7LaY7KKFDQor7KCE7IOB7JiBDQor7KCE7ZWc7JqpDQor7KCE67O17LCsDQor7KCE7KCV7IiYDQor7KCE66qF7Zi4DQor7KCE7ZWt7KGwDQor7KCE65GQ7J6QDQor7KCE64Ko6recDQor7KCE7Z2s7IiYDQor7KCE7ZW06rSADQor7KCE64yA7IudDQor7KCE7Lmg656YDQor7KCE7LC97JqwDQor7KCE7ZW06re8DQor7KCE7JuQ7J6QDQor7KCE7Iq57ISdDQor7KCE7KCV6riwDQor7KCE7ZW07ISdDQor7KCE7LKg7IicDQor7KCE7JiB66qpDQor7KCE67OR7LKgDQor7KCE7ZW07KKFDQor7KCE7KeE7JqpDQor7KCE7Iic67SJDQor7KCE66y07KSRDQor7KCE7ZW07KO8DQor7KCE7Zi464+ZDQor7KCE7Jyk6rWQDQor7KCE7ZiV7Zi4DQor7KCE7ZW07LKgDQor7KCE7Iic7J2YDQor7KCE7ZmN7Je0DQor7KCE7ZiE7J6lDQor7KCE7ZW07LKgDQor7KCE7Jyk7LacDQor7KCE7ZWc7KGwDQor7KCE7Jew7KO8DQor7KCE7ZW07Y+sDQor7KCE7J6E7KGwDQor7KCE7J6s6rSADQor7KCE7ZmN7IudDQor7KCE7ZeM7IiYDQor7KCE7Iq57JWgDQor7KCE6riw7J6QDQor7KCE7KO87YOcDQor7KCE7ZiE6rWtDQor7KCE7ISx6re8DQor7KCE7KSR7ZiEDQor7KCE6rSR7KGwDQor7KCE7ZiE7IiYDQor7KCE7IOB7IiYDQor7KCE7IOB7ZmUDQor7KCE7J6s7JewDQor7KCE7ZiV67CwDQor7KCE6rK97JiBDQor7KCE7IK87JuQDQor7KCE7Jew7KSADQor7KCE7ZiV7LGEDQor7KCE7ISx7IiYDQor7KCE7J6s7KeEDQor7KCE7ISx7JqpDQor7KCE7ZiV7LGEDQor7KCE7KeE7J28DQor7KCE7YOc7ZiEDQor7KCE6riw6rK9DQor7KCE7Zic7ISgDQor7KCE7JiB7ZiEDQor7KCE67OR7KCVDQor7KCE7LKg7Je0DQor7KCE7Zic7IiZDQor7KCE66+47Zi4DQor7KCE7ISc7JuFDQor7KCE7Jqp7ZiEDQor7KCE7Zi46rK9DQor7KCE67SJ67CwDQor7KCE6rK97Je0DQor7KCE66qF7ZmNDQor7KCE7Zi46re8DQor7KCE7ZWZ6rWtDQor7KCE7ISx7KO8DQor7KCE66eM7IudDQor7KCE7Zi46re8DQor7KCE7ZmN7IiYDQor7KCE7KKF7J20DQor7KCE66qF656YDQor7KCE7Zi47IudDQor7KCE7LaY7LKcDQor7KCE66eM7IiZDQor7KCE6rOE7ISgDQor7KCE7Zi47KeEDQor7KCE67OR7J6sDQor7KCE7ZmN7IudDQor7KCE7KCV6recDQor7KCE7ZmN7IStDQor7KCE64us6rCRDQor7KCE66qF7ZalDQor7KCE6re87J28DQor7KCE7ZmN7Je0DQor7KCE6rec7IiYDQor7KCE7Jm46recDQor7KCE6rK97JqxDQor7KCE7ZmN7J28DQor7KCE66y06re8DQor7KCE7IOB7IiYDQor7KCE7YyU7IudDQor7KCE7ZmN7KeEDQor7KCE7YyU7J2RDQor7KCE7J6s7ZW0DQor7KCE7JiB7LacDQor7KCE7ZmN7YOcDQor7KCE7Iq57IiYDQor7KCE7KCV67aEDQor7KCE7ISd7ZGcDQor7KCE7ZmU7IiYDQor7KCE64+E7IOBDQor7KCE7J217ZmNDQor7KCE7Jqp642VDQor7KCE7ZmU7J6QDQor7KCE7ISd7IigDQor7KCE7IiY6raMDQor7KCE7J6s7JewDQor7KCE7Zqo6re8DQor7KCE7ZWZ7Z2sDQor7KCE7J2464KoDQor7KCE7KGw7Zi4DQor7KCE7Zqo6re8DQor7KCE7LC964+EDQor7KCE7Iah64usDQor7KCE64+Z7JewDQor7KCE7Zqo67CwDQor7KCE6rK9656RDQor7KCE7IaM7Z2sDQor7KCE64+E7IiYDQor7KCE7Zqo7KeEDQor7KCE67O17JqwDQor7KCE7IK864KoDQor7KCE6re87IicDQor7KCE7Z2l7IiYDQor7KCE6riw7IicDQor7KCE6riI6rWtDQor7KCE7J6s6riwDQor7KCE7Z2l7KO8DQor7KCE64+Z7Z2sDQor7KCE7JiB7LKgDQor7KCE7J6s66qpDQor7KCE7Z2s65OdDQor7KCE7J207ZmYDQor7KCE7Iic7IiYDQor7KCE7JiB6recDQor7KCE7Z2s7JiBDQor7KCE7Jqw7KKFDQor7KCE7J246recDQor7KCE7YOc7Je0DQor7KCE7Z2s7LKgDQor7KCE7KeA7ISgDQor7KCE7ZmY7JikDQor7KCE7ZmY67KUDQor7KCE7Z2s7ZmYDQor7KCE67SJ6recDQor7KCE7J6s7Zi4DQor7KCE7Zic7ZmUDQor7KCVIOqxuA0KK+ygleyEseyImQ0KK+ygleqyveyYpQ0KK+ygleyEse2DnA0KK+yglSDsiJkNCivsoJXsnqzsmIENCivsoJXtmLjsnbQNCivsoJXsnYDssKwNCivsoJUg7JqpDQor7KCV7KeE6re8DQor7KCV7Jqp7ZWZDQor7KCV67SJ66y0DQor7KCVIO2biA0KK+ygleyDgeuCqA0KK+ygle2DnOq4sA0KK+ygleunkO2ZmA0KK+ygleqwkeyLnQ0KK+ygleywveyImA0KK+ygleycpOydtA0KK+ygleuzke2drA0KK+ygleqwkeyjvA0KK+ygleyYgeyInA0KK+ygleqzte2VmQ0KK+ygley5oOyYgQ0KK+ygleqwkeynhA0KK+ygleyyoOyehA0KK+ygleyCvOyLnQ0KK+ygle2DnOyEnQ0KK+ygleqxtOyYgQ0KK+ygleyerOuhnQ0KK+ygleq3gOyLnQ0KK+ygleygle2drA0KK+ygleqyveuegA0KK+ygleyihe2VhA0KK+ygleqwkeq3vA0KK+ygleyiheyekA0KK+ygleqyveusuA0KK+ygleq1rOyImA0KK+ygleygleyYgQ0KK+ygle2DnOyaqQ0KK+ygleqyveyImQ0KK+ygleuNle2drA0KK+ygleq3oOq3nA0KK+ygle2DneqzpA0KK+ygleqyveyLnQ0KK+yglSDstpgNCivsoJXsm5DsiJgNCivsoJXrjZXsl7QNCivsoJXqsr3si50NCivsoJXrr7jrj5kNCivsoJXsmbjshKANCivsoJXqt5zqt7wNCivsoJXqsr3sl7ANCivsoJXsmIHtmqgNCivsoJUg7IudDQor7KCV7KSR7LGEDQor7KCV6rK97Je0DQor7KCV7KCV66a8DQor7KCV6riw6rWsDQor7KCV7Iic7LKgDQor7KCV6rK97KSADQor7KCV64yA7J20DQor7KCV7KCV7IiYDQor7KCV7ZiB7ISgDQor7KCV6rK97ZuIDQor7KCV7ISx7ZiEDQor7KCV7Jqp64+MDQor7KCV7IaM7ZmUDQor7KCV6rOE64KoDQor7KCV7KSR7Zi4DQor7KCV7ZWE7JqxDQor7KCV7ISd7Z2sDQor7KCV6rOE7JuQDQor7KCV66eQ7JilDQor7KCV7Z2s642VDQor7KCV7Jik7IiYDQor7KCV6rOE7ZalDQor7KCV66y07J20DQor7KCV7ZmY7IStDQor7KCV7JiB6rCRDQor7KCV6rSA7JilDQor7KCV7ZiB7Zi4DQor7KCV7IiY6recDQor7KCV6rSR7KGwDQor7KCV6rSA7J2YDQor7KCV7IyN7IiZDQor7KCV7J6s7IiZDQor7KCV6rK97JiBDQor7KCV6rSR64KoDQor7KCV66qF7KeEDQor7KCV7KO87JewDQor7KCV7YyQ7IudDQor7KCV6rSR642VDQor7KCV7Zi47LC9DQor7KCV7Zi47J20DQor7KCV67SJ7J20DQor7KCV6rSR66qFDQor7KCV66qF7JqwDQor7KCV7ZeM64yADQor7KCV7YOc7ZmUDQor7KCV6rSR7IudDQor7KCV66y07IiYDQor7KCV7ISd7JqUDQor7KCV7LKg7ZmYDQor7KCV6rSR7IudDQor7KCV66y47Zi4DQor7KCV7KCV7Y+sDQor7KCV7JWg7ZiEDQor7KCV6rSR7IudDQor7KCV7IiY65OdDQor7KCV7Z2s7JqpDQor7KCV7Jil7ZmNDQor7KCV6rSR7JiBDQor7KCV7J6s7J6EDQor7KCV7IOB7KeEDQor7KCV66y466OhDQor7KCV6rSR7JqpDQor7KCV7ZiE7ZmUDQor7KCV7Y+J7ZWEDQor7KCV66y07IigDQor7KCV6rSR7JuFDQor7KCV7IOB7YOcDQor7KCV7Jqp64+MDQor7KCV7Zi47IK8DQor7KCV6rSR7KeEDQor7KCV7JiB7KeEDQor7KCV7J247YOdDQor7KCV7Jqp7ISdDQor7KCV6rSR7YOcDQor7KCV66Oh7ISgDQor7KCV7IK87LKgDQor7KCV6riw7KeEDQor7KCV6rWQ7J24DQor7KCV7KGw7IudDQor7KCV7LC97ZuIDQor7KCV7KSA7KGwDQor7KCV6rWs6rSADQor7KCV7IK86riwDQor7KCV7ISg7IudDQor7KCV66y47Z2sDQor7KCV6rWs7IOBDQor7KCV7ISd7JWFDQor7KCV67O167aEDQor7KCV7ISx7IiYDQor7KCV6rWs7ISdDQor7KCV6rSR6riwDQor7KCV7KCV66qFDQor7KCV7KCV6raMDQor7KCV6rWs7KeEDQor7KCV67aE7LKgDQor7KCV6riw7ZWcDQor7KCV7KCV64usDQor7KCV6rWs7ZiEDQor7KCV7JiB7Je0DQor7KCV7KCV7JWUDQor7KCV7IOB7J20DQor7KCV6rWs7Zi4DQor7KCV7JiB7KGwDQor7KCV7J6s6rWtDQor7KCV64yA6riwDQor7KCV6rWt656ADQor7KCV7IOB7LacDQor7KCV7YyQ7KeEDQor7KCV7KeE7KCVDQor7KCV6raM66aEDQor7KCV67O17JuQDQor7KCV7J246riwDQor7KCV7YOc7J21DQor7KCV6raM7YyQDQor7KCV66qF7ISdDQor7KCV7J6l7ZmYDQor7KCV7JyE6riwDQor7KCV6raM7ZWcDQor7KCV7ZiE6riwDQor7KCV67aE7J28DQor7KCV7JiB7IukDQor7KCV6reA64+ZDQor7KCV7J2R7ZiEDQor7KCV7IOB7J20DQor7KCV66qF7JqwDQor7KCV6reA67SJDQor7KCV66eM6riwDQor7KCV67OR7JewDQor7KCV7J6s7JilDQor7KCV6reA7IStDQor7KCV7YOc66GADQor7KCV7KKF7JqpDQor7KCV7J6s642VDQor7KCV6reA7IicDQor7KCV7Iug7LKgDQor7KCV7ISx7Je0DQor7KCV7ISd6rOEDQor7KCV6rec64+ZDQor7KCV7YyQ7LGEDQor7KCV7Iic7IicDQor7KCV67O17Je0DQor7KCV6rec7IK8DQor7KCV7KCV7Je0DQor7KCV6riw7Zi4DQor7KCV7YOc6rSADQor7KCV6rec7IiYDQor7KCV7ISg7Zi4DQor7KCV7KCV7IicDQor7KCV7IOB7JilDQor7KCV6rec7J24DQor7KCV64yA6recDQor7KCV7IS47ISgDQor7KCV7KSA67CwDQor7KCV6rec7YOcDQor7KCV7Ja47JmEDQor7KCV7KKF7KeEDQor7KCV6rK97JqwDQor7KCV6rec7ZmYDQor7KCV66eQ64K0DQor7KCV7JuQ7J28DQor7KCV66y064+ZDQor7KCV6rec7ZmYDQor7KCV7J6s7IKwDQor7KCV7J6s7KGwDQor7KCV64+E7IiYDQor7KCV6re567O0DQor7KCV7Jqp7LKgDQor7KCV7Jyk6rWsDQor7KCV66y07J6QDQor7KCV6re87J6sDQor7KCV7JiB7JikDQor7KCV7ZeM6ri4DQor7KCV7IOB7IS4DQor7KCV6re87LKgDQor7KCV6rec7ISdDQor7KCV7Y+J7ZmNDQor7KCV67OR7KeEDQor7KCV6re87Y+sDQor7KCV7ISx7Z2gDQor7KCV7KO87Zi4DQor7KCV7J247J6QDQor7KCV6riI64KoDQor7KCV7Jqp7IiYDQor7KCV7J2Y7LacDQor7KCV7ISg66qpDQor7KCV6riI642VDQor7KCV7Z2s7IOdDQor7KCV7J6s7Zi4DQor7KCV64+Z7ZmNDQor7KCV6riI7JilDQor7KCV7Jqw7KCQDQor7KCV6riw7J6QDQor7KCV7Zqo7JewDQor7KCV6riI7J20DQor7KCV7IK87IicDQor7KCV7ISd7JykDQor7KCV7Iic7LCoDQor7KCV6riw65GUDQor7KCV7J286rWsDQor7KCV7Iic7JewDQor7KCV7LKg7JqpDQor7KCV6riw67SJDQor7KCV7IOB7IudDQor7KCV7J6s642VDQor7KCV66+47IigDQor7KCV6riw67SJDQor7KCV7KKF7IiYDQor7KCV6rec7Zi4DQor7KCV7ISx6recDQor7KCV6riw7IOBDQor7KCV7IOB7IusDQor7KCV6riI64W4DQor7KCV6riI7JqpDQor7KCV6riw7ISdDQor7KCV7ISx7Jq0DQor7KCV7J6s7Je0DQor7KCV6raM7ZWZDQor7KCV6riw7ISdDQor7KCV7KeE7J6sDQor7KCV7YOc7IiYDQor7KCV7JiB7ZiEDQor7KCV6riw7ISgDQor7KCV7JiB7ISdDQor7KCV7YyQ7Z2sDQor7KCV7Jyg7Zi4DQor7KCV6riw7IiYDQor7KCV7IS47ZmYDQor7KCV7J6s7JiBDQor7KCV66+87J2YDQor7KCV6riw7IiZDQor7KCV642V7JuQDQor7KCV7Jew7IudDQor7KCV7Iic67SJDQor7KCV6riw7IudDQor7KCV64Ko7YOdDQor7KCV7KSA7JqwDQor7KCV7JuQ7KO8DQor7KCV6riw7Je0DQor7KCV7LCo66a8DQor7KCV7IiZ7ISdDQor7KCV7IK87IiYDQor7KCV6riw7Je0DQor7KCV7KKF7ZmYDQor7KCV6riw7LKcDQor7KCV7KKF7JuFDQor7KCV6riw7J6QDQor7KCV67OR7J28DQor7KCV64KZ7YOdDQor7KCV7JiB7ZiEDQor7KCV6riw7KSADQor7KCV7JiB7JykDQor7KCV67O17JilDQor7KCV7KeE7IiYDQor7KCV6riw7KeEDQor7KCV64us67O0DQor7KCV6re87Zi4DQor7KCV7Jqp64+EDQor7KCV6riw7ZiEDQor7KCV6riw7KGwDQor7KCV7IOB7ISgDQor7KCV7ISd7ISgDQor7KCV6ri47JuQDQor7KCV64yA7Je0DQor7KCV7JiB67aEDQor7KCV66eM7ZmYDQor7KCV6ri47ZaJDQor7KCV66qF7ZWZDQor7KCV7IiY6rK9DQor7KCV64+Z65OdDQor7KCV6ri47Zi4DQor7KCV6rWw7ZqMDQor7KCV7ISg7ISdDQor7KCV7ZiE7J6QDQor7KCV6ri47Z2gDQor7KCV7Iic6riwDQor7KCV7IOB7ZmYDQor7KCV7JiB6rWtDQor7KCV6ri47Z2gDQor7KCV7Zi47J24DQor7KCV6rSR7Zi4DQor7KCV7J6s7JWFDQor7KCV64KZ64+EDQor7KCV64Ko6re8DQor7KCV7Z2s67mIDQor7KCV7KKF7IicDQor7KCV64Ko67O0DQor7KCV7J6s64KoDQor7KCV7KCQ7ZiEDQor7KCV7J246529DQor7KCV64Ko7ISdDQor7KCV7YOc7Z2sDQor7KCV7KSA67O0DQor7KCV6rG06riwDQor7KCV64Ko7IStDQor7KCV66qF7J28DQor7KCV7IOB67O1DQor7KCV7Jqw6rWsDQor7KCV64Ko7J20DQor7KCV6rK97YOcDQor7KCV7Jyk7JqpDQor7KCV64yA7IiZDQor7KCV64Ko7KGwDQor7KCV7Jew6riwDQor7KCV7ISk7Zi4DQor7KCV66y46re8DQor7KCV64Ko7YOdDQor7KCV66qF6ri4DQor7KCV7IiY7Zy0DQor7KCV7KCV7IicDQor7KCV64Ko7ZWEDQor7KCV7JuQ7ZmYDQor7KCV7J247Z2sDQor7KCV7LC97LacDQor7KCV64WE7J6QDQor7KCV7Jqw7JWUDQor7KCV67OR6riwDQor7KCV67KU6re8DQor7KCV64yA6rOkDQor7KCV7IOB67SJDQor7KCV66y47YOcDQor7KCV67OR7JilDQor7KCV64yA6regDQor7KCV67OR7YOcDQor7KCV7ZmN7Je0DQor7KCV7ZiE6riIDQor7KCV64yA7ISxDQor7KCV7J6s7JykDQor7KCV7Jik7ZuIDQor7KCV7Z2s6rOkDQor7KCV64yA7IudDQor7KCV7Z2s7JqpDQor7KCV67OR6riwDQor7KCV66Ck7JqwDQor7KCV64yA7JiBDQor7KCV7J6s7ZmYDQor7KCV7YOc64KoDQor7KCV7Jqw64+MDQor7KCV642V6ri4DQor7KCV7ZWZ7JuQDQor7KCV7IiY7IiZDQor7KCV7J217Zi4DQor7KCV642V6ri4DQor7KCV7KCV7IigDQor7KCV7YOc642VDQor7KCV7JiB7Zi4DQor7KCV642V66eMDQor7KCV7KKF7ZWZDQor7KCV7J6s67O1DQor7KCV7Jqp7Zi4DQor7KCV642V7JuQDQor7KCV6rec67SJDQor7KCV7ZW07ZWZDQor7KCV6rec7JewDQor7KCV642V7J6QDQor7KCV7ISd6rSADQor7KCV64W47ZiEDQor7KCV6ri47JiBDQor7KCV642V7ZWcDQor7KCV7KKF6rOkDQor7KCV7IaM7Z2sDQor7KCV67OR7IStDQor7KCV642V7ZmUDQor7KCV7ZWE7Je0DQor7KCV7KCV64+EDQor7KCV7JuQ7JikDQor7KCV642V7ZmYDQor7KCV67KU7Jm4DQor7KCV6riI6ri4DQor7KCV7Jyk6rOkDQor7KCV64+E7IudDQor7KCV7ISx7J28DQor7KCV7KSA7KGwDQor7KCV7KSA7ZmYDQor7KCV64+E7IudDQor7KCV7J6s7ZmNDQor7KCV7J2A7IigDQor7KCV7J287JilDQor7KCV64+E7JqpDQor7KCV7J6s7ZWZDQor7KCV7ISd7Zi4DQor7KCV6rec66eMDQor7KCV64+Z6re8DQor7KCV7JiB7J6sDQor7KCV7KCV7IiYDQor7KCV7Zi46raMDQor7KCV64+Z7IudDQor7KCV7JiB7JuQDQor7KCV7Jqw7KCcDQor7KCV64+E7KSADQor7KCV64+Z7JewDQor7KCV66eM7ZWYDQor7KCV7KSA7IiYDQor7KCV7JuQ6rSADQor7KCV64+Z7J28DQor7KCV6rK97ISdDQor7KCV6riw66eMDQor7KCV67OR7JilDQor7KCV64+Z7ZiEDQor7KCV7JmV7J28DQor7KCV7IiY7ISdDQor7KCV7Iud7JilDQor7KCV65GQ66eMDQor7KCV66y466qpDQor7KCV67O17IiYDQor7KCV7IOB7Z2sDQor7KCV65GQ7ZmYDQor7KCV6rK97JesDQor7KCV7ZmN7ISdDQor7KCV7Jq07ISdDQor7KCV65GQ7ZmYDQor7KCV7YOc7J20DQor7KCV7KO87Zi4DQor7KCV6rSA6rCRDQor7KCV65GQ7ZmYDQor7KCV65GQ7JeEDQor7KCV7Jm46recDQor7KCV7ISx7JqpDQor7KCV65Od7IOBDQor7KCV7ISx7ZmUDQor7KCV6raM7YOcDQor7KCV7JuQ7IiYDQor7KCV65Od7JqwDQor7KCV7LC97JqpDQor7KCV7ZmN64+ZDQor7KCV6rSR66OhDQor7KCV65Ox7JqpDQor7KCV67OR7J20DQor7KCV7J246riwDQor7KCV7IOB642VDQor7KCV66GA7IiYDQor7KCV6ri47KO8DQor7KCV7ISx7JqwDQor7KCV7IOd7LacDQor7KCV66Gc7IudDQor7KCV7KKF7LKgDQor7KCV7IOB7JuQDQor7KCV7KCQ7JuQDQor7KCV66eJ7IicDQor7KCV7IK87KO8DQor7KCV7Jyk7IiYDQor7KCV64Ko64+MDQor7KCV66eM6re8DQor7KCV7JiB6raMDQor7KCV67OR7LacDQor7KCV7ZaJ64+MDQor7KCV66eM642VDQor7KCV7KKF66y0DQor7KCV7JiB7LKcDQor7KCV66qF7ZuIDQor7KCV66eM7ISdDQor7KCV7ZWo7IiYDQor7KCV7LKc642VDQor7KCV7KCV7JuQDQor7KCV66eM7IigDQor7KCV6rSR7IicDQor7KCV7ZaJ7YOdDQor7KCV7Kad7JWUDQor7KCV66eM7JqwDQor7KCV7KCQ7ZalDQor7KCV7JuF6rWQDQor7KCV7ZKN7JewDQor7KCV66eM7Zi4DQor7KCV6rSR7KSADQor7KCV64yA7ISgDQor7KCV7IiY7Zi4DQor7KCV66eM7Zi4DQor7KCV7J6s7JewDQor7KCV6rK97Je0DQor7KCV6rK96ri4DQor7KCV66qF6rWtDQor7KCV7YOc7IudDQor7KCV7KCV67SJDQor7KCV6riw7JWUDQor7KCV66qF7IiYDQor7KCV7KCV7IicDQor7KCV7J6l6ri4DQor7KCV7ISg7JW8DQor7KCV66qF7IicDQor7KCV7KCV7LKgDQor7KCV7KCQ7JqwDQor7KCV7LC97JqpDQor7KCV66qF7IigDQor7KCV66+87Y+JDQor7KCV7J6s7ZiVDQor7KCV7ISg64+ZDQor7KCV66qF7JilDQor7KCV7IyN67aEDQor7KCV67SJ7IOBDQor7KCV67SJ6re8DQor7KCV66qF7JqpDQor7KCV7Iq57KSADQor7KCV7JiB67SJDQor7KCV7LaY642VDQor7KCV66qF7KeADQor7KCV7ISx656YDQor7KCV7KO87IicDQor7KCV6rec642VDQor7KCV66qF7ZGcDQor7KCV7KKF7LKgDQor7KCV7LC97YOcDQor7KCV7J2Y7Zi4DQor7KCV66qF7ZmYDQor7KCV7J247JiBDQor7KCV7KKF7J21DQor7KCV66y47KO8DQor7KCV66qF7Z2sDQor7KCV7KO864+ZDQor7KCV7IOB7IiYDQor7KCV7LC966qpDQor7KCV66qF7Z2sDQor7KCV6rOg6recDQor7KCV64+Z7IiYDQor7KCV66+87YOcDQor7KCV66qF7Z2sDQor7KCV7JiB7JewDQor7KCV7LKg66eMDQor7KCV7J6s7J20DQor7KCV66qp7J20DQor7KCV7Lmg64+MDQor7KCV66eM66a8DQor7KCV7YOc6rWsDQor7KCV66yY7ISgDQor7KCV7Z2s7IudDQor7KCV7KCV7JqpDQor7KCV67SJ7IudDQor7KCV66y07IOBDQor7KCV7Iq57YOcDQor7KCV7IiY6rOkDQor7KCV7IiY6re8DQor7KCV66y07ISxDQor7KCV7J2E6raMDQor7KCV66Gc7IiYDQor7KCV7IOB7LacDQor7KCV66y47ZiEDQor7KCV7JiB64u0DQor7KCV7IiY6riwDQor7KCV7ISx6riwDQor7KCV66+47IiZDQor7KCV7LCo7Zi4DQor7KCV66qF66eMDQor7KCV7YyQ7ZyYDQor7KCV66+47ZmUDQor7KCV7ZW06rWsDQor7KCV64yA7ZmNDQor7KCV7Zal67aEDQor7KCV66+87IiYDQor7KCV64+Z7J2YDQor7KCV7J6s7IiYDQor7KCV7Iic7IiYDQor7KCV66+87JuFDQor7KCV6rK97JuQDQor7KCV7IyN7IicDQor7KCV7J6s7IudDQor7KCV67OR7IiYDQor7KCV6rCR7Z2sDQor7KCV64+Z7J6EDQor7KCV7Z2s6rWsDQor7KCV67OR7JqpDQor7KCV7J6s6rWtDQor7KCV7Jil642VDQor7KCV7Jqp7IiYDQor7KCV67OR7J2ADQor7KCV7Jyk7IudDQor7KCV7ZiE7J6QDQor7KCV7ISd7Z2sDQor7KCV67OR7J2EDQor7KCV7IK87Je0DQor7KCV67Cp7ZmYDQor7KCV7JuQ7JmEDQor7KCV67OR7J28DQor7KCV67OR7ZuIDQor7KCV7ISd7ISxDQor7KCV7KCQ6riwDQor7KCV67OR7J6sDQor7KCV7ISx7Zi4DQor7KCV7KCQ7Zi4DQor7KCV6rCR7JiBDQor7KCV67OR7J6sDQor7KCV7Iq57ISgDQor7KCV7KKF7JWIDQor7KCV7ZWY7ISgDQor7KCV67OR7KKFDQor7KCV7IOB656ADQor7KCV7J6s7J28DQor7KCV7KCV7JikDQor7KCV67OR7KSADQor7KCV6rK96riwDQor7KCV66+46riwDQor7KCV6rec6re8DQor7KCV67OR7LKgDQor7KCV65Ox7YOcDQor7KCV7KKF67SJDQor7KCV7J6l7JqwDQor7KCV67OR7LmgDQor7KCV7J286riwDQor7KCV6rK96re8DQor7KCV66y47ZmUDQor7KCV67OR7YOdDQor7KCV7LaY7YyQDQor7KCV6rec7JilDQor7KCV7Jil7IOdDQor7KCV67OR7ZmUDQor7KCV7Jqw7KGwDQor7KCV7ZyY7YOBDQor7KCV6re87Je0DQor7KCV67O06rK9DQor7KCV7IiY7Jq0DQor7KCV67aE7JqpDQor7KCV7IOB7JuQDQor7KCV67O17IicDQor7KCV7LKg7Zi4DQor7KCV7KCV7ZmYDQor7KCV7J6s7JuQDQor7KCV67O17JiBDQor7KCV6rSR7IicDQor7KCV7IOB64yADQor7KCV7Jqp7Jq0DQor7KCV67SJ6rCRDQor7KCV7YOc7JWUDQor7KCV7KeE7IigDQor7KCV7JiB7J6QDQor7KCV67SJ6raMDQor7KCV64W467O1DQor7KCV7YOc7IudDQor7KCV7ZeM6rK9DQor7KCV67SJ7JqxDQor7KCV6rG066y4DQor7KCV7YOc7JqpDQor7KCV7LKg7ZeMDQor7KCV67SJ7JqxDQor7KCV7ZWZ6riwDQor7KCV7Iuc6riIDQor7KCV66y47JqpDQor7KCV67SJ7Jq0DQor7KCV7IiY7KCcDQor7KCV7LmY7JWUDQor7KCV7ISg7Zi4DQor7KCV67SJ7ZmYDQor7KCV7KKF7J6QDQor7KCV7JiB7J6QDQor7KCV7J286529DQor7KCV67aA6rSRDQor7KCV67SJ7IiYDQor7KCV7IiY7J6QDQor7KCV7LaY7Zi4DQor7KCV67aA7JiBDQor7KCV7JuQ7IiZDQor7KCV7IS47LaYDQor7KCV67O17KSRDQor7KCV67aE6rWQDQor7KCV7Jyk7JqpDQor7KCV6rO17IicDQor7KCV7JWI7Zi4DQor7KCV67aE64+MDQor7KCV7JiB7ZmYDQor7KCV7ZWc7IStDQor7KCV7KKF65OdDQor7KCV67aE7KGwDQor7KCV64us7IStDQor7KCV7JqU6rOkDQor7KCV7Jyk7Z2sDQor7KCV7IKw7JqpDQor7KCV7J287KeEDQor7KCV7Iug67O1DQor7KCV7J6l7JiBDQor7KCV7IK866qpDQor7KCV7J6s7JilDQor7KCV7J6s7ZWcDQor7KCV64W47LKgDQor7KCV7IK87IiYDQor7KCV65GQ7ZmNDQor7KCV6rec7ISxDQor7KCV7JiB7Z2sDQor7KCV7IK87IiYDQor7KCV6riI7YOcDQor7KCV7KKF7IiYDQor7KCV66qF7J28DQor7KCV7IK87JiBDQor7KCV64+Z7JqxDQor7KCV7JiB7ISdDQor7KCV7LC964KoDQor7KCV7IK87JqpDQor7KCV7Iig7ZGcDQor7KCV7J6s7LacDQor7KCV67OR67CwDQor7KCV7IK87KSADQor7KCV67OR7ISdDQor7KCV6rSR6ri4DQor7KCV7IS47ZiEDQor7KCV7IK87Zi4DQor7KCV7ZeM7IiYDQor7KCV7KeA6riwDQor7KCV7KCV6re8DQor7KCV7IOB6rSADQor7KCV7J6s7JuQDQor7KCV7KCV7KCVDQor7KCV64Ko6recDQor7KCV7IOB6riwDQor7KCV66eM7YyUDQor7KCV7KCc67KUDQor7KCV7Z2s7KCVDQor7KCV7IOB7IiYDQor7KCV7J2Y7IiZDQor7KCV7ZiE6rK9DQor7KCV7IK87J6sDQor7KCV7IOB7Je0DQor7KCV7J6s66OhDQor7KCV7ISg7JiBDQor7KCV7KKF64yADQor7KCV7IOB7JiBDQor7KCV7ZWZ7ISgDQor7KCV7YOc7JuFDQor7KCV7ZeM67KUDQor7KCV7IOB7JqpDQor7KCV7Iic7JqwDQor7KCV7ISd7JqpDQor7KCV7KKF7ISdDQor7KCV7IOB7JqpDQor7KCV67SJ7IicDQor7KCV7JiB7YOcDQor7KCV7JiB7KGwDQor7KCV7IOB7Jq0DQor7KCV7KO87JWFDQor7KCV7Jyg7IigDQor7KCV66+47JWEDQor7KCV7IOB7JuQDQor7KCV7ZmY7Zi4DQor7KCV66qF6529DQor7KCV66eM67CwDQor7KCV7IOB7J28DQor7KCV7YyQ7ISdDQor7KCV7LC97ISdDQor7KCV7Jil6rK9DQor7KCV7IOB7KCVDQor7KCV7KCV7ISdDQor7KCV6rSR7IicDQor7KCV7JiB7IicDQor7KCV7IOB7KeEDQor7KCV642V7IiYDQor7KCV7IOB7IiYDQor7KCV6rK96rOkDQor7KCV7IOB7LKgDQor7KCV7JiB64usDQor7KCV67OR7IudDQor7KCV65Od656ADQor7KCV7IOB7YOcDQor7KCV7Lmg7J6QDQor7KCV7ISx7JWgDQor7KCV7KKF66GADQor7KCV7IOB7YOcDQor7KCV6re87LKgDQor7KCV7Z2s7ISdDQor7KCV7KCV7J6QDQor7KCV7IOB7ZWZDQor7KCV6reA7ISxDQor7KCV6rWQ7ZmYDQor7KCV6rSA7KGwDQor7KCV7IOB7ZiEDQor7KCV7KCV7YOcDQor7KCV7KCQ67O0DQor7KCV64+Z7Zi4DQor7KCV7IOB7Zi4DQor7KCV7Jqp7ZmYDQor7KCV6riw64+EDQor7KCV64+E7ZmYDQor7KCV7IOB7Zi4DQor7KCV7J206rKsDQor7KCV7LC97JuFDQor7KCV7Jqp7ISgDQor7KCV7IOB7Zi4DQor7KCV7IOB66+4DQor7KCV7JuQ7ISgDQor7KCV7J247Z2sDQor7KCV7IOB7ZuIDQor7KCV66qF7ZmNDQor7KCV64yA6riwDQor7KCV7YOc7ZiBDQor7KCV7IOB7Z2sDQor7KCV7KKF6re8DQor7KCV7LC97IudDQor7KCV7ZmN7Zi4DQor7KCV7ISd6rSRDQor7KCV7ISx6rWtDQor7KCV67OR7IiYDQor7KCV7ZWY7KeEDQor7KCV7ISd7JqpDQor7KCV7YOc6rOkDQor7KCV6rSR6raMDQor7KCV7J246rWQDQor7KCV7ISd7JuQDQor7KCV67OR7JqpDQor7KCV7J6s64+EDQor7KCV7Zic7J20DQor7KCV7ISd7KGwDQor7KCV7LC967SJDQor7KCV7ZaJ7IOBDQor7KCV67SJ6re8DQor7KCV7ISd7LKgDQor7KCV7Jew7Zi4DQor7KCV6riI7JilDQor7KCV7IK87KCVDQor7KCV7ISd7ZiEDQor7KCV7LC97JuFDQor7KCV66y07IiZDQor7KCV67SJ656YDQor7KCV7ISd7ZmUDQor7KCVIOykgA0KK+ygleyaqeq3vA0KK+ygleqxtOqwkQ0KK+ygleyEoOyYpA0KK+ygleyYgeyekQ0KK+ygleyYgeyEoA0KK+ygleyiheqyvQ0KK+ygleyEoOyYpQ0KK+ygleq1rO2RnA0KK+ygleyEseudvQ0KK+ygleuMgOyasA0KK+ygleyEoO2YuA0KK+ygleq1rOuPmQ0KK+ygleygkOygnA0KK+ygleybhe2drA0KK+ygleyEoO2YuA0KK+ygleyEseydvA0KK+ygleyInOyErQ0KK+ygleykgOuPhA0KK+ygleyEoO2drA0KK+ygleq4sO2aqA0KK+ygleyaqe2drA0KK+ygley5oOuPmQ0KK+ygleyEseq3oA0KK+ygle2DnOyYpQ0KK+ygleygleyImA0KK+ygleyEseyaqQ0KK+ygleyEseq3oA0KK+ygleq4uOybhQ0KK+ygleyehOyEsQ0KK+ygleyDgeuNlQ0KK+ygleyEseq3vA0KK+ygleygleydtA0KK+ygle2DnOyasA0KK+ygleuLrOyIoA0KK+ygleyEseq3vA0KK+ygleyduOy2mA0KK+ygleuCqO2DnA0KK+ygleq4iO2ZmA0KK+ygleyEseq3vA0KK+ygleunjOyaqQ0KK+ygle2VmeyEoA0KK+ygleq4iOuPmQ0KK+ygleyEseq4sA0KK+ygle2XjOq4sA0KK+ygleq3oOumrA0KK+ygleyaqeyYpA0KK+ygleyEseuPhA0KK+ygleygleyXtA0KK+ygley2mOq4uA0KK+ygley2mO2biA0KK+ygleyEseuegA0KK+ygleyEse2ZmA0KK+ygleuPmeyEsQ0KK+ygleqyve2XjA0KK+ygleyEseyInA0KK+ygleyImO2DnA0KK+ygle2YhOumrA0KK+ygleuLrO2YuA0KK+ygleyEseyLnQ0KK+ygleyEseq4sA0KK+ygleyInOyImQ0KK+ygleyDgeyEnQ0KK+ygleyEseyLnQ0KK+ygleuPmeyaqQ0KK+ygleyInOyglQ0KK+ygle2Pieq4sA0KK+ygleyEseyLnQ0KK+ygleyngOuhnA0KK+ygleygkOq0kQ0KK+ygleyDgeyXtA0KK+ygleyEseyLnQ0KK+ygleywveu0iQ0KK+ygleyYgeqzpA0KK+ygleyiheqzpA0KK+ygleyEseyYgQ0KK+ygleyjvO2ZjQ0KK+ygle2XjO2YhA0KK+ygleunjOyEsQ0KK+ygleyEse2VnA0KK+ygleqyveyDgQ0KK+ygleyaqeyInA0KK+ygleuCqOyYgQ0KK+ygleyEse2YnA0KK+ygleu0ieyEnQ0KK+ygleq4sOyDgQ0KK+ygleyEse2VmQ0KK+ygleyEse2YuA0KK+ygleyInOyEsQ0KK+ygleyiheq3vA0KK+ygleygleyngA0KK+ygleyEse2YuA0KK+ygleyKueuTnQ0KK+ygleyImOqyvQ0KK+ygleuzteyhsA0KK+ygleyEse2ZjQ0KK+ygle2DnO2ZmA0KK+ygley2mOuemA0KK+ygleynhOuNlQ0KK+ygleyEse2ZmA0KK+ygleyDgeuMgA0KK+ygle2DnOuNlQ0KK+ygleyDge2YhA0KK+ygleyEse2ZmA0KK+ygleyYgeuCnA0KK+ygley2mOyCrA0KK+ygle2DnOynhA0KK+ygleyEse2biA0KK+ygleycpOyXvQ0KK+ygleyEseyEoA0KK+ygleuzkeq4sA0KK+ygleyEse2biA0KK+ygleuqheq3vA0KK+ygleygleq4sA0KK+ygleq4iOyhsA0KK+ygleyEuOyZhA0KK+ygleyInOyInA0KK+ygleuCnOyImA0KK+ygleyYgeyGjA0KK+ygleyGjOyhsA0KK+ygleq4sOyekA0KK+ygle2drOq4sA0KK+ygleunjOyErQ0KK+ygleyGkOuPjA0KK+ygle2DnOq3vA0KK+ygle2VnOydtA0KK+ygleyWuOyaqQ0KK+ygleyGkO2DnA0KK+ygle2DnOynhA0KK+ygleyiheyasA0KK+ygleyaqeyerA0KK+ygleyGoeuNlQ0KK+ygleyEoOq4sA0KK+ygle2DnOyImA0KK+ygleq4iOyImA0KK+ygleyGoeuqqQ0KK+ygleyImOq3nA0KK+ygleyEoOyaqQ0KK+ygleyDgeyIoA0KK+ygleyImOuFhA0KK+ygleuPme2ZmA0KK+ygleyInO2ctA0KK+ygleyduOyDnQ0KK+ygleyImOuNlQ0KK+ygleu0ieq4sA0KK+ygleygleyImQ0KK+ygleyCvOyLnQ0KK+ygleyImOuPmQ0KK+ygleyihe2YhA0KK+ygleydhOyImA0KK+ygleygleyErQ0KK+ygleyImOuqqQ0KK+ygleuFuOynhA0KK+ygleyYgeuztQ0KK+ygle2DnO2VmQ0KK+ygleyImOuztQ0KK+ygleywveykgA0KK+ygleyyoOugqA0KK+ygleq4sOyasA0KK+ygleyImOyDgQ0KK+ygleyEoOyglQ0KK+ygleuylOq0kQ0KK+ygleq0keyhsA0KK+ygleyImOyEnQ0KK+ygleyDgeyYpQ0KK+ygleq0keyVlA0KK+ygleyYgeqyvQ0KK+ygleyImOyEnQ0KK+ygleygleyaqQ0KK+ygleyYgeyihQ0KK+ygle2Vme2drA0KK+ygleyImOyWtQ0KK+ygleqyve2VtA0KK+ygleygleybkA0KK+ygleyInOynhA0KK+ygleyImOybhQ0KK+ygle2MkOyasQ0KK+ygleuMgO2YhA0KK+ygleyIme2VnA0KK+ygleyImOyhsA0KK+ygleyYgeynhA0KK+ygleywveq3nA0KK+ygleuzkeyLnQ0KK+ygleyImOyihQ0KK+ygleq4sO2DnA0KK+ygleq3vOq4sA0KK+ygleyWkeyerA0KK+ygleyImOyjvA0KK+ygleu0ieyIoA0KK+ygle2DnOyImA0KK+ygleydgOqxtA0KK+ygleyImOynhA0KK+ygle2DnOyInA0KK+ygleyDgeyIoA0KK+ygleyYgeuwsA0KK+ygleyImOyyoA0KK+ygleq0ke2YhA0KK+ygleuzke2YhA0KK+ygleq4sOuTnQ0KK+ygleyImO2VmQ0KK+ygleyatOyXsA0KK+ygleyYgeyjvA0KK+ygleygleq1rQ0KK+ygleyImO2VmQ0KK+ygleuqheyInA0KK+ygle2ZmOyIoA0KK+ygleykkeq4uA0KK+ygleyImO2VmQ0KK+ygleyYgeqyvQ0KK+ygleu0ieyhsA0KK+ygleuzkeq3nA0KK+ygleyImO2YhA0KK+ygleyYgeuLrA0KK+ygleyiheyihQ0KK+ygleyiheq4sA0KK+ygleyImO2YhA0KK+ygleyaqeyYgQ0KK+ygleuPmey2mA0KK+ygleyEuOuwsA0KK+ygleyImO2ZjQ0KK+ygleyYgeybkA0KK+ygle2aqO2doA0KK+ygleybkOyatA0KK+ygleyImO2ZmA0KK+ygleygkO2aqA0KK+ygleygle2DnQ0KK+ygleyZhOyyoA0KK+ygleyImO2ZmA0KK+ygleyDgeyekA0KK+ygleybkO2ZjQ0KK+ygleq4sO2YhA0KK+ygleyImO2ZmA0KK+ygleyerOykgA0KK+ygle2DnOudvQ0KK+ygle2DnOyEnQ0KK+ygleyImeuPhA0KK+ygleyEseq4sA0KK+ygleq3nO2YuA0KK+ygle2DnOyWkQ0KK+ygleyImeyekA0KK+ygle2drOq4sA0KK+ygleqyve2YuA0KK+ygleyYgeuylA0KK+ygleyInOq4sA0KK+ygleyiheustA0KK+ygleyaqeuztA0KK+ygleyDgeyCvA0KK+ygleyInOuTnQ0KK+ygleyihe2YuA0KK+ygleyInOq3vA0KK+ygleyaqeqzoA0KK+ygleyInOuqqQ0KK+ygleybkOyLnQ0KK+ygleuzkeyLnQ0KK+ygleygkOyjvA0KK+ygleyInOuylA0KK+ygleyEneyekA0KK+ygleqyve2ZmA0KK+ygleywveyImA0KK+ygleyInOu0iQ0KK+ygleq4sOyInA0KK+ygleyImeyWkQ0KK+ygleygleyYpA0KK+ygleyInOyEnQ0KK+ygle2Zjeq4sA0KK+ygle2RnOu0iQ0KK+ygleuPmeykgA0KK+ygleyInOyKuQ0KK+ygleyEuOyZhA0KK+ygleq4sOyImA0KK+ygleyaqeyImA0KK+ygleyInOyXhQ0KK+ygleuPmeyYgQ0KK+ygleyduOyXsA0KK+ygle2biO2ZmA0KK+ygleyInOyYgQ0KK+ygleusmOyInA0KK+ygleuNleyLnQ0KK+ygleyYpe2YuA0KK+ygleyInOyYpQ0KK+ygleyYpOyyoA0KK+ygleyeke2YuA0KK+ygleyYgeuCqA0KK+ygleyInOybkA0KK+ygleyYgeynkQ0KK+ygleq3gOuhnQ0KK+ygleuzkeyerA0KK+ygleyInOyhsA0KK+ygleyEseyImA0KK+ygleuhgO2YgQ0KK+ygleyInOydvA0KK+ygleyInO2DnA0KK+ygleq3vOyYgQ0KK+ygleyImeyImA0KK+ygleyiheyImA0KK+ygleyInO2RnA0KK+ygleyYgeyyoA0KK+ygleuCqOyekA0KK+ygleydmOq2jA0KK+ygleyInO2YhA0KK+ygleyepeydtA0KK+ygleyngOyasA0KK+ygleyihe2ZlA0KK+ygleyInO2ZlA0KK+ygleuPmeyYpQ0KK+ygleyImeqxtA0KK+ygleyyoOuCqA0KK+ygleyInO2ZmA0KK+ygleyerOyInA0KK+ygleunkOyImA0KK+ygle2MkOqyvQ0KK+ygleyInO2drA0KK+ygleyDgeydtA0KK+ygleuzke2YgQ0KK+ygleyEneyyoA0KK+ygleyInO2drA0KK+ygleyMjeyasA0KK+ygle2DnO2doA0KK+ygleyInOyImQ0KK+ygleyKueqzoA0KK+ygle2YhOugqA0KK+ygleuTneqyvQ0KK+ygleuzkeyDgQ0KK+ygleyKueq1kA0KK+ygle2YhOq3nA0KK+ygleywve2YhA0KK+ygleygleyLnQ0KK+ygleyKueycpA0KK+ygle2VtOyImQ0KK+ygle2ZjeyInA0KK+ygleqzhO2YhA0KK+ygleyLne2YhA0KK+ygleyngO2YuA0KK+ygleuPmeyImA0KK+ygleusuOyaqQ0KK+ygleyLoOyErQ0KK+ygleqyveq2jA0KK+ygleuMgOyImA0KK+ygleydvO2drA0KK+ygleyMjeuPhA0KK+ygle2YhOyerA0KK+ygleyerO2YuA0KK+ygleyihe2YuA0KK+ygleyMjeuTnQ0KK+ygleyYgeyYgQ0KK+ygle2drOyaqQ0KK+ygleyEseuRkA0KK+ygleyViOuvvA0KK+ygleyerOydtA0KK+ygleycpOyerA0KK+ygleunjO2drA0KK+ygleyViOyInA0KK+ygleuztOunjA0KK+ygleq3vOynkQ0KK+ygleyjvOudvQ0KK+ygleyWkeuMgA0KK+ygleyerOuPmQ0KK+ygleyiheunjA0KK+ygleq4sOuhnQ0KK+ygleyWkeyYgQ0KK+ygleycpOyImA0KK+ygleywveyjvA0KK+ygle2DnO2drA0KK+ygleyWteyhsA0KK+ygleyEuO2YuA0KK+ygleygle2VtA0KK+ygleygle2YuA0KK+ygleyXheyasA0KK+ygleq0keyImQ0KK+ygleyduOq3nA0KK+ygle2DnOqyvQ0KK+ygleyXrO2VhA0KK+ygleygleusuA0KK+ygle2drOyLnQ0KK+ygleyDge2DnA0KK+ygleyXsOuPmQ0KK+ygleyImOyImA0KK+ygleyEseydtA0KK+ygleuPmeyImQ0KK+ygleyXsOyYpA0KK+ygleustOyImA0KK+ygleywqOyEoA0KK+ygleyduO2VnA0KK+ygleyXsOyasA0KK+ygleyaqe2ZlA0KK+ygleygle2YhA0KK+ygleuzkey5mA0KK+ygleyXsOyasQ0KK+ygleu0ie2drA0KK+ygleynhOyXtA0KK+ygleyEseyDgQ0KK+ygleyXsOynhA0KK+ygleuzkeyXtA0KK+ygleyDgeyYpQ0KK+ygleyaqeyasA0KK+ygleyXsO2ZmA0KK+ygleq4sOq1kA0KK+ygleyCrOydvA0KK+ygleyiheyerA0KK+ygleyYgeq1rA0KK+ygleyatOq3nA0KK+ygleq4sOyXsA0KK+ygle2ZjeyEnQ0KK+ygleyYgeq1rA0KK+ygleustO2VnA0KK+ygleyDgeyXsA0KK+ygleqwkeyImA0KK+ygleyYgeq4sA0KK+ygleq1kOyYgQ0KK+ygleyLnOyaqQ0KK+ygle2YleyYgQ0KK+ygleyYgeq4uA0KK+ygleuRkOqyvQ0KK+ygleyInOyasA0KK+ygleyiheuPhA0KK+ygleyYgeuPhA0KK+ygley2mO2YuA0KK+ygleq4sOyjvA0KK+ygleywqO2WpQ0KK+ygleyYgeuztQ0KK+ygleyEneyhsA0KK+ygleuPmeuzkQ0KK+ygleunjOyErQ0KK+ygleyYgeyEnQ0KK+ygleyaqe2YuA0KK+ygleusuOyhsA0KK+ygleykgOyImQ0KK+ygleyYgeyEnQ0KK+ygleyEne2biA0KK+ygleqwleuPmQ0KK+ygleu2gO2PrA0KK+ygleyYgeyImA0KK+ygleyDge2VmQ0KK+ygleqyveyImA0KK+ygle2YhOydtQ0KK+ygleyYgeyImQ0KK+ygley2mOuztQ0KK+ygleyYgeuqqQ0KK+ygleyehOyaqQ0KK+ygleyYgeyYpQ0KK+ygleuNleyDgQ0KK+ygleyEoOyjvA0KK+ygleygkOyglQ0KK+ygleyYgeyekA0KK+ygleuPmeynhA0KK+ygleyZleyInA0KK+ygleuRkOyYpQ0KK+ygleyYgeyhsA0KK+ygleybkO2ZmA0KK+ygleyYgeuhnA0KK+ygleuqheyImQ0KK+ygleyYgeyjvA0KK+ygleyEseu0iQ0KK+ygleuzte2ZmA0KK+ygleyDgeq4uA0KK+ygleyYge2DnA0KK+ygle2ZjeyXsA0KK+ygleyjvOyImA0KK+ygle2VmOqwlQ0KK+ygleyYge2DnA0KK+ygle2VnOyDgQ0KK+ygleygleyjvA0KK+ygleuqhe2ZmA0KK+ygleyYge2YhA0KK+ygleyYgeyXtA0KK+ygleyEse2YuA0KK+ygle2VhOq4sA0KK+ygleyYge2ZmA0KK+ygleyYgeuPjA0KK+ygleyImOydtA0KK+ygleydvOyImA0KK+ygleyYge2ZmA0KK+ygleyImeyImA0KK+ygleuqheywrA0KK+ygleuzke2ZmA0KK+ygleyYpOyDgQ0KK+ygleu2gO2VmQ0KK+ygleyaqeybhQ0KK+ygleyaqeq3nA0KK+ygleyYpeuCqA0KK+ygley2mO2ZmA0KK+ygleyduOyImA0KK+ygley5mOynhA0KK+ygleyYpeugqA0KK+ygleuMgO2ZlA0KK+ygleywveyjvA0KK+ygleyYge2VtA0KK+ygleyYpeyInA0KK+ygleyerOyImA0KK+ygley2mOyYpQ0KK+ygleusuOydtQ0KK+ygleyZuOyImA0KK+ygle2MkOyImA0KK+ygleyblOyyoA0KK+ygleyepeyXtA0KK+ygleyZuO2ZmA0KK+ygleq3vOqyvQ0KK+ygle2VtOy2mA0KK+ygleyYgeyduA0KK+ygleyaqeq0gA0KK+ygleuzteybkA0KK+ygleyLoOyImA0KK+ygleyXsOuCqA0KK+ygleyaqeq2jA0KK+ygleyInOywrA0KK+ygleydvOyEnQ0KK+ygleuMgOybhQ0KK+ygleyaqeq3oA0KK+ygleuMgO2biA0KK+ygleuCqOyhsA0KK+ygleygleyhsA0KK+ygleyaqeuPjA0KK+ygleyYgeqxtA0KK+ygleynhO2WiQ0KK+ygleuPhOydhA0KK+ygleyaqeuqqA0KK+ygleyblO2DgQ0KK+ygleydvOyLpA0KK+ygleyDgeyekA0KK+ygleyaqeyVlA0KK+ygleustOykgA0KK+ygle2YuOyasA0KK+ygleywqOq3nA0KK+ygleyaqe2DnA0KK+ygleyCvOyEsQ0KK+ygleyYgeyErQ0KK+ygleyYpeq3vA0KK+ygleyaqe2YhA0KK+ygleyImOy2nA0KK+ygleygleyInA0KK+ygleyatOyEsQ0KK+ygleyaqe2YhA0KK+ygleykke2ZmA0KK+ygleyjvOybkA0KK+ygleuPmeyEnQ0KK+ygleyaqe2YuA0KK+ygleyWte2ZlA0KK+ygleuvuOyekA0KK+ygleyDgeq1rQ0KK+ygleyaqe2YuA0KK+ygleyatO2XjA0KK+ygleqyveyIoA0KK+ygleuzke2drA0KK+ygleyaqe2ZlA0KK+ygle2DnO2VmQ0KK+ygleygleqwkQ0KK+ygleyWteyImA0KK+ygleyaqe2ZlA0KK+ygle2DnO2VmA0KK+ygleq4iOq4sA0KK+ygleydvO2DnA0KK+ygleyasOyEnQ0KK+ygle2DnOyyoA0KK+ygleywveyVlA0KK+ygleyihe2drA0KK+ygleyasOyYgQ0KK+ygleychOuztQ0KK+ygleykkeuLrA0KK+ygleyerO2biA0KK+ygleyasO2YhA0KK+ygleyaqeyEsQ0KK+ygleybkOyXsA0KK+ygleuPme2WpQ0KK+ygleyasO2YhA0KK+ygleyGjOq1rQ0KK+ygleqyveyXtA0KK+ygleq4sOyEsQ0KK+ygleyatOuztQ0KK+ygleu0ieyEnQ0KK+ygleyyoOuMgA0KK+ygleuqheuwsA0KK+ygleyatO2YhA0KK+ygle2Zjeu2hA0KK+ygle2YhOywvQ0KK+ygleyEseyImA0KK+ygleybhe2drA0KK+ygleyYge2YlQ0KK+ygleydgO2ZmA0KK+ygleuzkeu0iQ0KK+ygleybkOq2jA0KK+ygleyYge2YlQ0KK+ygle2ZjeqzoA0KK+ygleu2gOyInA0KK+ygleybkOu2hA0KK+ygleyCrO2drA0KK+ygleydmO2ZmA0KK+ygleyYpOyYpA0KK+ygleybkOyEnQ0KK+ygleyerOuqhQ0KK+ygle2MkOyErQ0KK+ygleydhOyatA0KK+ygleybkOyKuQ0KK+ygle2ZjeyglQ0KK+ygleuLrOybkA0KK+ygleyEseyasA0KK+ygleybkOyaqQ0KK+ygleuRkOu2gA0KK+ygle2ZjeqzpA0KK+ygleygleyInA0KK+ygleybkOyhsA0KK+ygleycpOyInA0KK+ygleygleuemA0KK+ygleyaqeyIoA0KK+ygleybkOynhA0KK+ygleyEseyErQ0KK+ygleyEseyyoA0KK+ygleyYge2ZmA0KK+ygleybkO2DnQ0KK+ygleuwseycoA0KK+ygleyXsOyLnQ0KK+ygleyEse2DnA0KK+ygleybkO2YhA0KK+ygleuzkeyhsA0KK+ygle2VmeyekA0KK+ygleyEseyErQ0KK+ygleychO2DnA0KK+ygleynhOy2nA0KK+ygleq4uO2drA0KK+ygleygleuvvA0KK+ygleycoOyVlA0KK+ygleuMgOyYpQ0KK+ygleyaqeuztQ0KK+ygleyekOq1rQ0KK+ygleycoOyyoA0KK+ygleuPmeq1rA0KK+ygle2YhOyZhA0KK+ygleyiheyLnQ0KK+ygleycpOq2jA0KK+ygle2YuO2ZmA0KK+ygleq0ke2YuA0KK+ygleu0ieyImA0KK+ygleycpOq4sA0KK+ygleyerOuMgA0KK+ygleq1kO2DnQ0KK+ygleuLrOuvvA0KK+ygleycpOuNlQ0KK+ygle2VtOq3nA0KK+ygle2DnOydtA0KK+ygle2ZmOyErQ0KK+ygleycpOyDnQ0KK+ygleqyveyImA0KK+ygleyZuOyImA0KK+ygleyInOyasA0KK+ygleycpOyImA0KK+ygleyerOu0iQ0KK+ygleyEoO2doA0KK+ygleyaqe2drA0KK+ygleycpOyLnQ0KK+ygleuPmeu0iQ0KK+ygleykkeq1rQ0KK+ygleyerOyerA0KK+ygleycpO2ZlA0KK+ygleyCvOyLnQ0KK+ygleq4sOyLnQ0KK+ygleygleyXtA0KK+ygleydgOyYgQ0KK+ygleyXsOqzpA0KK+ygleywveyErQ0KK+ygleyDgeykgA0KK+ygleydgO2drA0KK+ygleywqOyEnQ0KK+ygleychOyEnQ0KK+ygleuPmeuztQ0KK+ygleydhOyEoA0KK+ygle2DnOyImA0KK+ygle2ajOykkQ0KK+ygleyYgeuhgA0KK+ygleydhOyInA0KK+ygleuqheyEnQ0KK+ygleygleyInA0KK+ygle2VtOyLpA0KK+ygleydmOybkA0KK+ygleygleyInA0KK+ygle2aqOynhA0KK+ygleycpOyEnQ0KK+ygleydmO2YhA0KK+ygleyjvOydtA0KK+ygleyVoOusuA0KK+ygleygle2drA0KK+ygleydtOq3nA0KK+ygleu2gOuNlQ0KK+ygleyiheq3nA0KK+ygley5oO2ZmA0KK+ygleydtOq3nA0KK+ygleyaqeq4sA0KK+ygleuzkeyyoA0KK+ygle2DnOyLnQ0KK+ygleydtOy2nA0KK+ygleyEse2DnQ0KK+ygleyInOuhgA0KK+ygleyYge2VtA0KK+ygleydtO2YuA0KK+ygley2mO2DnA0KK+ygleuzkeq4sA0KK+ygleyYgeydtA0KK+ygleydtO2ZmA0KK+ygleyyoOyInA0KK+ygle2XjO2YuA0KK+ygleyyoOynhA0KK+ygleydte2YuA0KK+ygle2VnOqwkQ0KK+ygleq4sOq3vA0KK+ygleuLrO2YhA0KK+ygleyduOq3nA0KK+ygleqyveyEsQ0KK+ygley2mOy0jA0KK+ygleyEseq3nA0KK+ygleyduOyDgQ0KK+ygle2YuOuPhA0KK+ygle2YuOyYgQ0KK+ygleygleq1kA0KK+ygleyduOyDgQ0KK+ygleq4sO2ZmA0KK+ygleu0ieydtA0KK+ygle2DnOq4sA0KK+ygleyduOyLnQ0KK+ygleyaqe2ZmA0KK+ygleywqOq3vA0KK+ygleqyveyXtA0KK+ygleyduOyLnQ0KK+ygleyEseyYgQ0KK+ygleyYgeyImA0KK+ygleyIoOyekA0KK+ygleyduOyerA0KK+ygleyepeyhsA0KK+ygleyYgeyEnQ0KK+ygleyYgeuPmQ0KK+ygleyduOynhA0KK+ygleqyveyEoA0KK+ygleyjvO2ZmA0KK+ygle2DnOyerA0KK+ygleyduOyxhA0KK+ygleyiheyLnQ0KK+ygleyEoOuPmQ0KK+ygley2mOyEnQ0KK+ygleyduO2DnA0KK+ygleyDgeyEsQ0KK+ygleyYpeyErQ0KK+ygleyDge2drA0KK+ygleyduO2DnA0KK+ygleuqheyEnQ0KK+ygleqwleyLnQ0KK+ygleyYgeyehA0KK+ygleyduO2ZmA0KK+ygleydvOyjvA0KK+ygleygleydtA0KK+ygleuqheyaqQ0KK+ygleyduO2ZmA0KK+ygleyImOuemA0KK+ygle2SjeqzpA0KK+ygle2DnOy2nA0KK+ygleyduO2drA0KK+ygleyYpeykkQ0KK+ygleygle2aqA0KK+ygleyiheydvA0KK+ygleydvOq2jA0KK+ygleunkO2YuA0KK+yglSDrjZUNCivsoJXsgrzslpENCivsoJXsnbzsmIENCivsoJXtlZzsnKQNCivsoJXrp4zqta0NCivsoJXsmIHtmIQNCivsoJXsnbzsmrANCivsoJXsp4Tsi50NCivsoJXtmJXsnoQNCivsoJXtlZzqt7wNCivsoJXsnbztlZwNCivsoJXsmqnshK0NCivsoJXrtInrqqgNCivsoJXsnKTtmZgNCivsoJXsnbztmLgNCivsoJXsnqzsmKUNCivsoJXshLHssqANCivsoJXsoJXsiJgNCivsoJXsnbztmZgNCivsoJXrs7TrrLgNCivsoJXsg4HrnpgNCivsoJXsiJjquLANCivsoJXsnoTquLgNCivsoJXsooXqt7wNCivsoJXsnqzrtIkNCivsoJXtg5zshJ0NCivsoJXsnoTshK0NCivsoJXtmITsmqkNCivsoJXsiJzsm5ANCivsoJXsmIHquLANCivsoJXsnoTtj4kNCivsoJXqt5zsspwNCivsoJXtg5zrgqgNCivsoJXtmITtmZgNCivsoJXsnqXrqqkNCivsoJXsiJzrs7UNCivsoJXsmIHsiJgNCivsoJXsmrDtmLgNCivsoJXsnqXshLENCivsoJXssL3qtowNCivsoJXsmIHslpENCivsoJXsnoTshJ0NCivsoJXsnqXsiJgNCivsoJXrqoXslaANCivsoJXrs7Xtg5wNCivsoJXquLjsg4ENCivsoJXsnqzqsr0NCivsoJXstqnroZ0NCivsoJXsnbzsiJwNCivsoJXtg5ztmJUNCivsoJXsnqzqt5wNCivsoJXrrLjsmrENCivsoJXrqoXroKwNCivsoJXshKDrj5kNCivsoJXsnqzqt5wNCivsoJXsnqXtnawNCivsoJXsoJXqtowNCivsoJXsoJDsmKQNCivsoJXsnqzqt7wNCivsoJXssqDqtowNCivsoJXsoJDsiJwNCivsoJXsiJzsnbUNCivsoJXsnqzqt7wNCivsoJXsnbjsi50NCivsoJXsmqnsnbUNCivsoJXtg5zsiKANCivsoJXsnqzrtIkNCivsoJXsp4TquLgNCivsoJXqt5zqs6QNCivsoJXsg4HsiJkNCivsoJXsnqzshKANCivsoJXsiJzrjIANCivsoJXquLDtjJANCivsoJXrnoDsmqkNCivsoJXsnqzshKANCivsoJXsm5Dsl7ANCivsoJXqsr3tmZgNCivsoJXshJ3rj5kNCivsoJXsnqzsiJgNCivsoJXshozqt5wNCivsoJXssKjqt6ANCivsoJXtnazsmKUNCivsoJXsnqzsi50NCivsoJXtjJTssqANCivsoJXsnKTsmqkNCivsoJXqsJXrj4wNCivsoJXsnqzsmIENCivsoJXsp4Tsm5ANCivsoJXtnJjsiJgNCivsoJXquLjsnKQNCivsoJXsnqzsmpQNCivsoJXsmrDtnawNCivsoJXsnqzsp4QNCivsoJXtg5ztmZQNCivsoJXsnqzssqANCivsoJXtmITtg5wNCivsoJXsp4Hsi6wNCivsoJXrs5HssqANCivsoJXsnqztmIQNCivsoJXsmIHruYgNCivsoJXsmqnssqANCivsoJXsoJXshKANCivsoJXsnqztmLgNCivsoJXsoJXsiJwNCivsoJXtmJzrp4wNCivsoJXsi6DrspQNCivsoJXsnqztmLgNCivsoJXqtJHtg50NCivsoJXsmIHtmLgNCivsoJXsjI3sm4UNCivsoJXsnqztmY0NCivsoJXsmIHrtIkNCivsoJXsoJXtmZgNCivsoJXsgrzsnpANCivsoJXsnqztmZgNCivsoJXsoJXsiJgNCivsoJXsmIHssKwNCivsoJXsiJztg5wNCivsoJXsoJDrjZUNCivsoJXsooXsiJgNCivsoJXtmITsg4ENCivsoJXtmY3rqqgNCivsoJXsoJDsiJwNCivsoJXrhbjsmIENCivsoJXsiJztmLgNCivsoJXsoJXtm4gNCivsoJXsoJDsmqkNCivsoJXsoJDrhbgNCivsoJXsnqXsoJUNCivsoJXrkZDsiJgNCivsoJXsoJDsobANCivsoJXsnKDtmZgNCivsoJXtg5zqtbANCivsoJXsg4HsuaANCivsoJXsoJXquLgNCivsoJXsnqzsmIENCivsoJXqt4DsmqkNCivsoJXshLHqtowNCivsoJXsoJXsg4ENCivsoJXrqoXrrLgNCivsoJXrgqjqtowNCivsoJXsg4HsmrENCivsoJXsoJXshK0NCivsoJXrs5Hqt7wNCivsoJXsg4Hqs4QNCivsoJXrtIntg5wNCivsoJXsoJXsiJkNCivsoJXsoJXtnawNCivsoJXsmIHqsbQNCivsoJXqtJHrj5kNCivsoJXsoJXsiJkNCivsoJXsmrHqsr0NCivsoJXtmITrjZUNCivsoJXsl7Dtg5wNCivsoJXsoJXsiJwNCivsoJXquLDsmrANCivsoJXquLDtmLgNCivsoJXsl7Drs5ENCivsoJXsoJXsi50NCivsoJXtjJDsnbUNCivsoJXtlbTtmIQNCivsoJXstqnrsLANCivsoJXsoJXsi50NCivsoJXsmIHqtowNCivsoJXquIjsiJgNCivsoJXri6zqs6QNCivsoJXsoJXsmqkNCivsoJXrqoXrtIkNCivsoJXsmqntmLgNCivsoJXsg4Hsi50NCivsoJXsoJXsm5ANCivsoJXrpqztlZwNCivsoJXqsr3rj5kNCivsoJXrs5Hsm5ANCivsoJXsoJXtmIQNCivsoJXstqntmLgNCivsoJXspIDsnKQNCivsoJXsp4TtlZwNCivsoJXsoJXtmZQNCivsoJXqt7zsi50NCivsoJXtmLjsmKUNCivsoJXshJ3tlZkNCivsoJXsoJXtmZgNCivsoJXqs6HtnJgNCivsoJXsnqzsm4UNCivsoJXtg5zso7wNCivsoJXsobDrrLgNCivsoJXsm5DsiJgNCivsoJXso7zshKANCivsoJXquLjsiJgNCivsoJXsooXri6wNCivsoJXqsr3siJgNCivsoJXqsr3spIANCivsoJXsmIHtjJANCivsoJXsooXrjIANCivsoJXsiJzsmKQNCivsoJXtmITsnpANCivsoJXrqoXtmZgNCivsoJXsooXrjZUNCivsoJXqtazsnpANCivsoJXtl4zslbwNCivsoJXrs5HqtowNCivsoJXsooXrqqkNCivsoJXsnbTtmIQNCivsoJXsiJzsnqwNCivsoJXrs7XsmrANCivsoJXsooXrr7wNCivsoJXtg5zsl7QNCivsoJXsnZjquLgNCivsoJXquLDsiJgNCivsoJXsooXshKANCivsoJXrs5Hrj4QNCivsoJXrs7Tsi50NCivsoJXsmrDtnaANCivsoJXsooXsiJgNCivsoJXtg5zquIgNCivsoJXrtoDtmZgNCivsoJXsnqztg5wNCivsoJXsooXsiJgNCivsoJUg7ISdDQor7KCV6riI7J24DQor7KCV7ISd7J6sDQor7KCV7KKF7IigDQor7KCV7J247KeEDQor7KCV7JiB7IicDQor7KCV7Jyk7IicDQor7KCV7KKF7J21DQor7KCV7ISg7ZiEDQor7KCV7ISd7LKgDQor7KCV7ZiE7J6QDQor7KCV7KKF7KeEDQor7KCV7J247ZWYDQor7KCV7ISg7JqpDQor7KCV7JiB7IiYDQor7KCV7KKF7YOcDQor7KCV7Iic6rK9DQor7KCV7ISx7IS4DQor7KCV7Jqp66eMDQor7KCV7KKF7YOcDQor7KCV7J6s6rSADQor7KCV7KKF6rG4DQor7KCV7ZiE7IK8DQor7KCV7KKF7YOcDQor7KCV6reA7Zi4DQor7KCV67O17IicDQor7KCV7J6s7JuFDQor7KCV7KKF7ZmYDQor7KCV7KKF7ISdDQor7KCV7J6s642VDQor7KCV7KCV7JikDQor7KCV7KO87Je0DQor7KCV67KU7IS4DQor7KCV7ISx7J20DQor7KCV7KKF6rCVDQor7KCV7KO87JiBDQor7KCV7JuU7J20DQor7KCV7ISd7ZWYDQor7KCV7IiY7KCVDQor7KCV7KO87ZeMDQor7KCV7YOc7IudDQor7KCV7YOc7ZWcDQor7KCV67SJ6riwDQor7KCV7KO87ZiEDQor7KCV7Zqo7IukDQor7KCV7KSR7YOBDQor7KCV7IiY7IiYDQor7KCV7KO87ZiEDQor7KCV7ZmY7JuQDQor7KCV7IiY7JiBDQor7KCV7JiB7IiYDQor7KCV7KO87Zi4DQor7KCV66qF7ZiEDQor7KCV7JiB642VDQor7KCV7KO866y4DQor7KCV7KO87Zi4DQor7KCV7YOc66a8DQor7KCVIOyhsA0KK+ygleykkeyaqQ0KK+ygleyjvO2ZmA0KK+ygleyEneydtA0KK+ygle2VhOq4iA0KK+ygleyInOq4uA0KK+ygleyjvO2ZmA0KK+ygle2XjOyasA0KK+ygleydmOqxtA0KK+ygle2DnOynhA0KK+ygleykgOyEnQ0KK+ygleyEseyYpQ0KK+ygleyxhOq0gA0KK+ygleyatOq2jA0KK+ygleykgOyLnQ0KK+ygleywveynhA0KK+ygleu0ieyLnQ0KK+yglSDsmqkNCivsoJXspJHtmZQNCivsoJXsiJjrs7QNCivsoJXsoJXqt7wNCivsoJXrs5HtlZwNCivsoJXsp4DsiJwNCivsoJXrqoXrjIANCivsoJXsnbzsl7ANCivsoJXsirnshJ0NCivsoJXsp4DsnpANCivsoJXsooXsiJwNCivsoJXsp4TquLgNCivsoJXsmIHsmrANCivsoJXsp4DtmZgNCivsoJXtg5zsmqkNCivsoJXso7zsmqkNCivsoJXrrLTqt5wNCivsoJXsp4Tqs6QNCivsoJXqsJHshK0NCivsoJXshJ3snqwNCivsoJXsmqnqt5wNCivsoJXsp4Tqta0NCivsoJXsoJXqsIENCivsoJXsmqnsnpANCivsoJXshKDshKANCivsoJXsp4Trj4wNCivsoJXsg4Htm4gNCivsoJXsooXqtIANCivsoJXsooXsiJgNCivsoJXsp4Tsg4ENCivsoJXsnbzsiJkNCivsoJXtlZnsiJgNCivsoJXsmIHtnaANCivsoJXsp4TshJ0NCivsoJXsnKDtlYQNCivsoJXrrLTsp4QNCivsoJXshLHqt5wNCivsoJXsp4TshLgNCivsoJXrqoXstpwNCivsoJXsmIHsnbwNCivsoJXrrLjsiJgNCivsoJXsp4Tsi50NCivsoJXsnbjsi50NCivsoJXrs5HshJ0NCivsoJXsspzrj4QNCivsoJXsp4TsmIENCivsoJXqsr3siJwNCivsoJXrtoTsi50NCivsoJXsmIHtmZgNCivsoJXsp4TsmIENCivsoJXsnqzsi50NCivsoJXtmoztmZgNCivsoJXtjJTsmYQNCivsoJXsp4TsmqkNCivsoJXsmIHqsbQNCivsoJXsooXsl7ANCivsoJXsoJXtmIQNCivsoJXsp4TsmrANCivsoJXsuaDsmKUNCivsoJXsp4DqtawNCivsoJXsl7Drj5kNCivsoJXssKjqsr0NCivsoJXsirnsiKANCivsoJXrs5HrsLANCivsoJXri6ztmZgNCivsoJXssKjqtowNCivsoJXtlbTqtZANCivsoJXtla3siJwNCivsoJXsnbTsmIENCivsoJXssKjrj4wNCivsoJXshLHsmrANCivsoJXrp4zqtZANCivsoJXshLjssqANCivsoJXssKjsi50NCivsoJXtg5zqtZANCivsoJXqsr3shJ0NCivsoJXsg4HssKwNCivsoJXssKjsi50NCivsoJXsooXtmLgNCivsoJXrgpjrj5kNCivsoJXsnqXsnbgNCivsoJXssKjsm5ANCivsoJXtmLjsmKUNCivsoJXquIjshLENCivsoJXrqbTtg5wNCivsoJXssL3rjZUNCivsoJXssKjtg5wNCivsoJXqt4Dtm4gNCivsoJXsoJXsnbUNCivsoJXssL3siJgNCivsoJXtlbTrp4wNCivsoJXstpjqtawNCivsoJXssKjrsLANCivsoJXssL3si50NCivsoJXsmIHroKgNCivsoJXssqDsiJwNCivsoJXsnqzsg4ENCivsoJXssL3sp4QNCivsoJXsnZHrj4wNCivsoJXsnKTtnawNCivsoJXsl7DshLENCivsoJXssL3tg50NCivsoJXtmITsl7QNCivsoJXsnbzsmIENCivsoJXrspTssqANCivsoJXssL3tmLgNCivsoJXsoJXsp4QNCivsoJXssL3tm4gNCivsoJXsnKTrnoANCivsoJXssL3tmZgNCivsoJXssq3tmIQNCivsoJXsnqzsmrANCivsoJXsoJXsiJkNCivsoJXssYTro6ENCivsoJXshLHrj5kNCivsoJXqt4DtmZQNCivsoJXsoJXquLANCivsoJXsspzsi50NCivsoJXsooXtnLQNCivsoJXrtInquLANCivsoJXsnbTqt7wNCivsoJXssqDqt5wNCivsoJXsoJXtmZQNCivsoJXrj4jspIANCivsoJXrqbTqta0NCivsoJXssqDsiJgNCivsoJXsp4TtmIQNCivsoJXsooXsl7ANCivsoJXrrLjso7wNCivsoJXssqDso7wNCivsoJXrhbjsiKANCivsoJXtl4zqt5wNCivsoJXsnbzsnbgNCivsoJXstpTsm5QNCivsoJXquLDrqoUNCivsoJXquLDsiJwNCivsoJXsmqnslrUNCivsoJXstpjqtZANCivsoJXtmLjqt7wNCivsoJXrjIDtmZQNCivsoJXsmIHrs7UNCivsoJXsuZjsm5ANCivsoJXsmqntmIQNCivsoJXrtoTsiJgNCivsoJXrr7zqs6ANCivsoJXsuaDshKANCivsoJXsoJXrnoANCivsoJXshJ3tnawNCivsoJXrtInqtowNCivsoJXsvozshKANCivsoJXrtoTqt5wNCivsoJXsmIHtnawNCivsoJXqsr3siJgNCivsoJXsvozsmqkNCivsoJXsmqnquLgNCivsoJXrjIDtmLgNCivsoJXsnqzshKANCivsoJXtg5zqsJENCivsoJXssL3qsbQNCivsoJXqsr3tmLgNCivsoJXqsr3quLANCivsoJXtg5zqs6QNCivsoJXsmrTsp5ENCivsoJXquLDrk50NCivsoJXsmIHsl7ANCivsoJXtg5zqt7wNCivsoJXrs5Htg50NCivsoJXstpTsi50NCivsoJXspIDtg5wNCivsoJXtg5zquLgNCivsoJXrp4ztnawNCivsoJXquLjqsJUNCivsoJXshLHtg5wNCivsoJXtg5zrj4QNCivsoJXsiJzsnbQNCivsoJXquLDsl7QNCivsoJXsoJXsiJwNCivsoJXtg5zrtIkNCivsoJXshLHsi50NCivsoJXsmqnsi50NCivsoJXsnqzsiJgNCivsoJXtg5zshJ0NCivsoJXtl4zshJ0NCivsoJXsg4HsiJkNCivsoJXsm5DsooUNCivsoJXtg5zshLENCivsoJXsgrzrp4wNCivsoJXtnaztmZgNCivsoJXquLDshKANCivsoJXtg5zshLENCivsoJXsoJXrj5kNCivsoJXrgqjtm4gNCivsoJXsnqzsl7QNCivsoJXtg5zsiJwNCivsoJXrj5ntmLgNCivsoJXsnbjtnZQNCivsoJXsnZjqt7wNCivsoJXtg5zsiKANCivsoJXrgqjqtowNCivsoJXqsbTsnbQNCivsoJXrgqjrr7wNCivsoJXtg5zsi50NCivsoJXtl4zsnpANCivsoJXsp4Tsi50NCivsoJXshLHrgqgNCivsoJXtg5zsi50NCivsoJXtg5ztg50NCivsoJXsiJzrrLgNCivsoJXsooXqsr0NCivsoJXtg5zsmIENCivsoJXsg4HquIgNCivsoJXshKDsnqwNCivsoJXshLjshK0NCivsoJXtg5zsmqkNCivsoJXtmLjsm5ANCivsoJXsiJjssKwNCivsoJXsiJjsi50NCivsoJXtg5zsmqkNCivsoJXsnqztg50NCivsoJXtlajsiJgNCivsoJXsmqnstpwNCivsoJXtg5zsm5ANCivsoJXrs5HtmLgNCivsoJXrj5nsooUNCivsoJXrgqjshJ0NCivsoJXtg5zsnKQNCivsoJXsnoTsmKUNCivsoJXrj5ntkZwNCivsoJXshJ3sobANCivsoJXtg5zsnbwNCivsoJXquLDtmZgNCivsoJXsmIHroZwNCivsoJXsiJzsiJgNCivsoJXtg5ztmLgNCivsoJXsnqztlZkNCivsoJXquLDtmLgNCivsoJXsmrTqtowNCivsoJXtg5ztmLgNCivsoJXsmqnqs6ANCivsoJXqt5zsi50NCivsoJXsl6zrgqgNCivsoJXtg5ztmZgNCivsoJXrhYTtmLgNCivsoJXssqDqt6ANCivsoJXsg4HsiJwNCivsoJXtg5ztmZgNCivsoJXsiJzsmqkNCivsoJXsmKTsnKANCivsoJXtlbTtmLgNCivsoJXtg5ztmZgNCivsoJXsoJXsg4ENCivsoJXsnqztmqgNCivsoJXsi5ztm4gNCivsoJXtjJDrk50NCivsoJXrqoXsnbQNCivsoJXrtInsl7QNCivsoJXsooXrj4QNCivsoJXtjJDrk50NCivsoJXrj4jsi6QNCivsoJXqsr3spJENCivsoJXsnYDshJ0NCivsoJXtjJDsoJUNCivsoJXsnqzsspwNCivsoJXri6zqs6QNCivsoJXtlZzrsLANCivsoJXtjJDtg5wNCivsoJXssq3sp4QNCivsoJXsnqzso7wNCivsoJXsnbTsnYANCivsoJXtjJDtmIQNCivsoJXsoJDtnawNCivsoJXsp4TstpgNCivsoJXtmZTsg4ENCivsoJXtj4nqt7wNCivsoJXrrLTtmZgNCivsoJXrs5HtnawNCivsoJXrs5HshLENCivsoJXtlYTrrJgNCivsoJXtlbTtm4gNCivsoJXsiJjtmLgNCivsoJXrtoTsl7ANCivsoJXtlYTrtoQNCivsoJXshJ3qsJENCivsoJXsiJztmLgNCivsoJXquIjtg5wNCivsoJXtlYTtmIQNCivsoJXtg5zri6gNCivsoJXsmIHtmLgNCivsoJXtjJDtg5wNCivsoJXtlZjsl7ANCivsoJXrs5HrjZUNCivsoJXshLHssqANCivsoJXsnITrp4wNCivsoJXtlZjsnKQNCivsoJXsnbjsmrANCivsoJXsmIHssKwNCivsoJXrj5ntmLgNCivsoJXtlZjsnpANCivsoJXtg5ztmZQNCivsoJXsooXsoJUNCivsoJXsnqztmLgNCivsoJXtlZnqt6ANCivsoJXsnKTsnKQNCivsoJUg7J20DQor7KCV7Zi47Zi4DQor7KCV7ZWZ64+ZDQor7KCV6rOk7Zi4DQor7KCV7JiB67CpDQor7KCV7Jqp67aEDQor7KCV7ZWZ656YDQor7KCV64yA7IudDQor7KCV7ZeM7IudDQor7KCV7JiB7KO8DQor7KCV7ZWc6rCQDQor7KCV7Zic7ZiEDQor7KCV7JiB7YOcDQor7KCV7J6s7KSRDQor7KCV7ZWc7JiBDQor7KCV67aA7ISgDQor7KCV7J2A7Zi4DQor7KCV7JuU67SJDQor7KCV7ZWc7KGwDQor7KCV67SJ7IiZDQor7KCV6rK966eMDQor7KCV6riw7IudDQor7KCV7ZWc7KGwDQor7KCV7Je07JqpDQor7KCV7IOB66y4DQor7KCV7JiB7ZmUDQor7KCV7ZWc7LKgDQor7KCV7ZyY7IiYDQor7KCV7Jqp7YOdDQor7KCV7Jyk7IiYDQor7KCV7ZW06rK9DQor7KCV7ISx6regDQor7KCV7Jqp6recDQor7KCV7Iic7ZWcDQor7KCV7ZW06recDQor7KCV7KKF7ZiEDQor7KCV7JiB642VDQor7KCV7ZWc7IOdDQor7KCV7ZW067SJDQor7KCV7YOc6riwDQor7KCV7Iic7Zi4DQor7KCV7Jm47Jq0DQor7KCV7ZW07IOBDQor7KCV7Iic7LaYDQor7KCV7Jqp7ISdDQor7KCV7JuQ7IiYDQor7KCV7ZW07ISxDQor7KCV7ISd67SJDQor7KCV7Iic64KoDQor7KCV7Jqp7Z2sDQor7KCV7ZW07ISxDQor7KCV7LCo65OdDQor7KCV7KCV6rWtDQor7KCV7LaY7IS4DQor7KCV7ZW07JiBDQor7KCV6rSA7IiZDQor7KCV7ISx7IiYDQor7KCV7JiB7ISdDQor7KCV7ZW07JqpDQor7KCV7LaY7Zi4DQor7KCV7JaR6rCRDQor7KCV7JiB7LKgDQor7KCV7ZW07JqpDQor7KCV67OR7ZiEDQor7KCV7IOB7IigDQor7KCV7LC97IiYDQor7KCV7ZW07Jq0DQor7KCV6rCR7JmEDQor7KCV6rSR7Z2lDQor7KCV7KO87JewDQor7KCV7ZW07KGwDQor7KCV7JWg7IStDQor7KCV7ZiE7ISdDQor7KCV7ZiE7Z2sDQor7KCV7ZW07LC9DQor7KCV7JuU6rK9DQor7KCV6rSR7ZiEDQor7KCV7YOc7ISdDQor7KCV7ZW07LKgDQor7KCV7Ja47JykDQor7KCV67OR7KGwDQor7KCV7ZWc66eMDQor7KCV7ZW07LaYDQor7KCV7KCV7KO8DQor7KCV7JuQ7KeEDQor7KCV7LC97Zi4DQor7KCV7ZeM7YOdDQor7KCV7KCQ7ISgDQor7KCV7JuQ7KSADQor7KCV64+E7IStDQor7KCV7ZiE64+EDQor7KCV7ISg7KCVDQor7KCV6riw6rOkDQor7KCV7YOc7JWUDQor7KCV7ZiE66+4DQor7KCV7JuF7JiBDQor7KCV7JiB7YOdDQor7KCV7KKF642VDQor7KCV7ZiE7JWEDQor7KCV7Jil66qpDQor7KCV7ISg7KO8DQor7KCV6rOE7ISxDQor7KCV7ZiE7JikDQor7KCV7J6s66qFDQor7KCV7IOB7IudDQor7KCV7IOB6regDQor7KCV7ZiV7JikDQor7KCV7Lap7J6QDQor7KCV7YyQ7KKFDQor7KCV7J287Zi4DQor7KCV7Zic7JiBDQor7KCV7ZWZ7JqpDQor7KCV7LaY7LacDQor7KCV7IOB7J20DQor7KCV7Zic7JuQDQor7KCV7Iic7KeBDQor7KCV7J6s7ZuIDQor7KCV7JuQ66eJDQor7KCV7Zi46rK9DQor7KCV7KCV7IiYDQor7KCV7ZWc7ZuIDQor7KCV7Lap66eMDQor7KCV7Zi46re8DQor7KCV7JiB7Z2sDQor7KCV7KCV66qoDQor7KCV7KCQ7Zi4DQor7KCV7Zi47JewDQor7KCV642V7JuFDQor7KCV64yA7ZiEDQor7KCV64+Z7J20DQor7KCV7Zi47ZiEDQor7KCV7JiB7YOBDQor7KCV6rCR7LKgDQor7KCV7J247YOcDQor7KCV7ZmN6riwDQor7KCV7KKF64W4DQor7KCV7IOB7IicDQor7KCV7ISd7KO8DQor7KCV7ZmN7ISdDQor7KCV67OR64+EDQor7KCV7LC97YOcDQor7KCVIOyEoA0KK+ygle2ZlOy2mA0KK+ygleyiheyjvA0KK+ygleuzkeyImA0KK+ygleyEseyglQ0KK+ygle2ZmOyDgQ0KK+ygleygle2DnA0KK+ygleq4sOyYgQ0KK+ygleyDge2YuA0KK+ygle2ZmO2DnQ0KK+ygleuRkOq3vA0KK+ygleyEneyasA0KK+ygleybkOycpA0KK+ygle2ZmO2DnQ0KK+ygle2DgOuTnQ0KK+ygleyduO2YuA0KK+ygleyaqeyEoA0KK+ygle2ajOu0iQ0KK+ygleuPmeydtA0KK+ygleyEsey2nA0KK+ygleuvvO2ZmA0KK+ygle2aqOyhsA0KK+ygle2DnOynhA0KK+ygleyYgeybhQ0KK+ygleyjvOydtA0KK+ygle2aqO2ZmA0KK+ygleyYgeq3nA0KK+ygleyYpOuCqA0KK+ygleyaqeyasA0KK+ygle2biOyLnQ0KK+ygleyaqeuztQ0KK+ygleyDgeu2hA0KK+ygleydgO2YuA0KK+ygle2dpeq1rQ0KK+ygleyYgeyImA0KK+ygleybkOuPmQ0KK+ygleuRkO2YuA0KK+ygle2dpeq4sA0KK+ygleyGoeq4uA0KK+ygle2MkOyZhA0KK+ygleqwkeu0iQ0KK+ygle2dpeyImQ0KK+ygleuPmeyImA0KK+ygle2VtOuemA0KK+ygleu2hO2YuA0KK+ygle2dpeyXtA0KK+ygleyYqOyyoA0KK+ygleyblOybkA0KK+ygleydmOy5mA0KK+ygle2drOybkA0KK+ygleq4sOq1rA0KK+ygleyYgeuylA0KK+ygleyDgeq3vA0KK+ygle2drO2DnQ0KK+ygleuqhe2YgQ0KK+ygleyblOqzpA0KK+ygleusuOyWuA0KK+ygle2drO2DnQ0KK+ygleuzkeyImA0KK+ygle2XjOuqqQ0KK+ygle2ZjeyaqQ0KK+ygnOqwiOuzkeuPhA0KK+ygnO2DnOybheyInA0KK+ygnOuMgO2YuOuPmQ0KK+ygnOydtOyEneyInA0KK+ygnOqwiOuzkeyIoA0KK+ygnOyImOq0gO2aqA0KK+ygnOuqheyynOq4uA0KK+ygnOykgOq3nOuCqA0KK+ygnOqwiO2DnOyVlA0KK+ygnOyynO2drOyepQ0KK+ygnOygleyImOuMgA0KK+ygnOyImOyWte2DnA0KK+ygnOqyveyImQ0KK+ygnO2DnOyaqQ0KK+ygnOyYgeyekA0KK+ygnOykgOyDgQ0KK+ygnOq3nOyLnQ0KK+ygnOyepe2VmQ0KK+ygnOyGjOykgA0KK+ygnOywrOynhA0KK+ygnOq4iOuylA0KK+ygnOyYpOyLnQ0KK+ygnOq4sOyyoA0KK+ygnO2VnO2YuA0KK+ygnOyDgeyasA0KK+ygnOywve2YuA0KK+ygnOqyve2ZlA0KK+ygnO2YuOybkA0KK+ygnOyInOyekA0KK+ygnOyaqe2ZmA0KK+ygnOqyveyImQ0KK+ygnO2DnOycpA0KK+ygnOyLpOqyvQ0KK+ygnCDrsLANCivsoJzsg4HtmIQNCivsoJzshJ3tmLgNCivsoJzsmIHtlbQNCivsoJzrs5Hsg4ENCivsoJztmY3shK0NCivsoJzrp7nsm5ANCivsoJzsnqzsi50NCivsoJzshJ3shKANCivsoJzshLHshLENCivsoJzrj5nsm5ANCivsoJzsoJDsmKUNCivsoJzsp4TsmrANCivsoJzqt4DshKANCivsoJzsoJXstpgNCivsoJzsoJXtmZQNCivsoJzquLDsobANCivsoJzsnqzshJ0NCivsoJzrj5nsg4ENCivsoJzsooXtmLgNCivsoJzrs5HsmqkNCivsoJzsnbjqt6ANCivsoJzssL3siJgNCivsoJzso7zsi50NCivsoJzquLDsiJwNCivsoJzsmIHsg4ENCivsoJzspJHsiJgNCivsoJzspIDsi50NCivsoJzrgqjrnoANCivsoJzrs5HquLANCivsoJzsirnsp4QNCivsoJzsspzrtIkNCivsoJzshozsiJwNCivsoJzsiJzsi50NCivsoJzsnbjtnawNCivsoJzsspzrtIkNCivsoJzrgqjtlZkNCivsoJzsooXtmLgNCivsoJzsg4Hsm4UNCivsoJztj4nsuZgNCivsoJzrjZXsmrQNCivsoJztlZzrqoUNCivsoJzrtInsiJwNCivsoJztmZjshJ0NCivsoJzsp4Tsg50NCivsoJzslrjsiJwNCivsoJzsl7TtnaANCivsobAg66y0DQor7KGw66eM7Zy0DQor7KGw7J287ISdDQor7KGw7Jyk6ri4DQor7KGwIOu2hA0KK+yhsOyEse2YhA0KK+yhsOyiheq4uA0KK+yhsOq4uOygkA0KK+yhsCDtmLgNCivsobDsooXtnawNCivsobDshLHsnqwNCivsobDssL3tmLgNCivsobAg7ZmNDQor7KGw6rK97IudDQor7KGw7LmY7Je0DQor7KGw66+87LaYDQor7KGwIO2ZmA0KK+yhsOyerOyEoA0KK+yhsO2XjOyImA0KK+yhsO2ZjeyErQ0KK+yhsOqwleuCqA0KK+yhsOq4iOyjvA0KK+yhsO2ZjeyasQ0KK+yhsOyEseyImA0KK+yhsOqxtOuemA0KK+yhsOuPhOyasA0KK+yhsOyYgeyYgQ0KK+yhsOyYgeyaqQ0KK+yhsOqyveq1rQ0KK+yhsOyYgeuNlQ0KK+yhsOy2mOyLnQ0KK+yhsOynhOyerA0KK+yhsOqyveuemA0KK+yhsO2VmeyZhA0KK+yhsO2ZjeyInA0KK+yhsO2DnOqyvQ0KK+yhsOqyveuemA0KK+yhsOyEoO2DnA0KK+yhsOyYge2ZjQ0KK+yhsOqyveyLnA0KK+yhsOqyveyImA0KK+yhsOyjvOyXsA0KK+yhsOyYge2YuA0KK+yhsOyGjOydvA0KK+yhsOqyveyImQ0KK+yhsOygleyasA0KK+yhsOuqheyYgQ0KK+yhsOybkOunjA0KK+yhsOqyveyYpQ0KK+yhsOuqheuNlQ0KK+yhsOydgOuCnA0KK+yhsOuzkeyEnQ0KK+yhsOqyvey2nA0KK+yhsOqyve2ZmA0KK+yhsOyDgeyYpQ0KK+yhsOyDgeyLnQ0KK+yhsOqyve2YuA0KK+yhsOyerOq4iA0KK+yhsOyiheq3vA0KK+yhsCDsnYQNCivsobDqsr3tmLgNCivsobDrs5Htm4gNCivsobDsooXstpwNCivsobDrs5HtmLgNCivsobDqs4Tsl7ANCivsobDsg4Hsl7ANCivsobDssqDrj4wNCivsobDsooXsl7QNCivsobDqs4Tsm5ANCivsobDsmqnso7wNCivsobDsm5DsobANCivsobDquLDtl4wNCivsobDqtJHrnpgNCivsobDsnqztg5wNCivsobDtmITsspwNCivsobDsnqzquLgNCivsobDqtJHrnpgNCivsobDsnqzsm5ANCivsobDrrLjssqANCivsobDsiJjtmLgNCivsobDqtJHrnpgNCivsobDssKjsl7ANCivsobDsg4HsnYANCivsobDsmKXtmLgNCivsobDqtJHsm4UNCivsobDsgrzsp4ANCivsobDsnbTtg5wNCivsobDtlZzshJ0NCivsobDqtJHtnaANCivsobDsnbjqsr0NCivsobDsnoTtmLgNCivsobDsnZHsmKUNCivsobDqta3qtJENCivsobDsoJXssqANCivsobDsooXrtIkNCivsobDrs5Hsg4ENCivsobDqt4Dsl7ANCivsobDsoJXsi6wNCivsobDsirnshJ0NCivsobDsooXsiJwNCivsobDqt4DsnpANCivsobDsg4Hsl7ANCivsobDquLDshJ0NCivsobDsooXqt5wNCivsobDqt5zrjIANCivsobDrp4zrj4QNCivsobDsgrztm4gNCivsobDsmIHqt5wNCivsobDqt5zsg4ENCivsobDrkZDtmIQNCivsobDquLDstpwNCivsobDshLHsiJwNCivsobDqt5zsg4ENCivsobDsmrDtg5wNCivsobDtlZntmLgNCivsobDsoJXqsqwNCivsobDqt5zsg4ENCivsobDssL3spIANCivsobDso7ztmIQNCivsobDsiJztkZwNCivsobDqt5zsiJgNCivsobDtnazsmKQNCivsobDssL3qt7wNCivsobDshLHtlZkNCivsobDqt5zsmKQNCivsobDsm5DsiJgNCivsobDtmLjssYQNCivsobDtnazqt5wNCivsobDqt5zsmKQNCivsobDrs7XsnbQNCivsobDsl7DtmZgNCivsobDtmLjtnawNCivsobDqt5zsoJUNCivsobDsmqnsiJkNCivsobAg7JqpDQor7KGw6rK966+4DQor7KGw6rec7LKcDQor7KGw7ZiE6rCRDQor7KGw7LKc7ZmUDQor7KGw6riI7KGwDQor7KGw6rec7ZmUDQor7KGw7JWI7IiZDQor7KGw7J286riwDQor7KGw7IOB7IicDQor7KGw6re87KCcDQor7KGw7LC97LKcDQor7KGw67OR7IudDQor7KGw7Iic7ZWcDQor7KGw6riI7JilDQor7KGw7ISx7KGwDQor7KGw7ZmN7J6QDQor7KGw64W467SJDQor7KGw6riI7J6QDQor7KGw7KSR7LKcDQor7KGw7Iq564+EDQor7KGw7J2R7Zy0DQor7KGw6riw64+ZDQor7KGw64+Z7ZmYDQor7KGw7ISd7ZmYDQor7KGw7LC97KeEDQor7KGw64Ko7ZiBDQor7KGw7KKF7IiYDQor7KGw7Jqp642VDQor7KGw7J6s7IiZDQor7KGw64K07JqpDQor7KGw7J206529DQor7KGw7KKF7KCVDQor7KGw7YyQ642VDQor7KGw64us6rK9DQor7KGw7J6s7ZW0DQor7KGw7YyQ7JqpDQor7KGw7KKF6recDQor7KGw64us6raMDQor7KGw7KO86rCRDQor7KGw7KCQ7JykDQor7KGw64us7ZmUDQor7KGw64us7ISdDQor7KGw7ZW07Zi4DQor7KGw67O167KUDQor7KGw6riI7ZmYDQor7KGw64us7ISdDQor7KGw7KCV6rWsDQor7KGw64+E6re8DQor7KGw7LaY6ri4DQor7KGw64yA7ZmUDQor7KGw7Z2s6riwDQor7KGw64yA7KeEDQor7KGw7IS47ZiEDQor7KGw64yA7ZmUDQor7KGw6re86rWtDQor7KGw7J6s6rK9DQor7KGw66y4656ADQor7KGw64yA7ZmUDQor7KGw7ISd66asDQor7KGw7J6s7Z2gDQor7KGw6riw7LacDQor7KGw642V656YDQor7KGw7JiB7KGwDQor7KGw7YOc7IiYDQor7KGw7Jqp6rWQDQor7KGw642V7J6EDQor7KGw67O17ZmUDQor7KGw7LC97IudDQor7KGw7J6l7JqwDQor7KGw642V7KO8DQor7KGw7KSA6recDQor7KGw7Jyk7LKgDQor7KGw64KZ7IiZDQor7KGw642V7Z2sDQor7KGw64+E7ISdDQor7KGw7J286rWtDQor7KGw66eM7Zi4DQor7KGw64+E7JqpDQor7KGw7J247Zi4DQor7KGw7KCV7IiYDQor7KGw7ZWc7ZmYDQor7KGw64+E7KCcDQor7KGw7KKF64+EDQor7KGw7IOB7ZmNDQor7KGw7Lap7IiYDQor7KGw64+Z7Je0DQor7KGw7IK86raMDQor7KGw7Jqp6re8DQor7KGw7ISg7ISkDQor7KGw64+Z7KCQDQor7KGw7KeE7JqwDQor7KGw7KCV7LKcDQor7KGw7KKF7Jq0DQor7KGw64+Z7LKgDQor7KGw7KCV7IiYDQor7KGw7Zi47LKgDQor7KGw7ZiE67SJDQor7KGw64+Z7ZuIDQor7KGw7KSR7IOBDQor7KGw67OR7IOBDQor7KGw64+Z64yADQor7KGw65GQ7ZiEDQor7KGw67O1642VDQor7KGw7JiB7IiYDQor7KGw66eM7JqwDQor7KGw65Od7JqpDQor7KGw6rec7ISdDQor7KGw7Zic7Zi4DQor7KGw6riw7ZWEDQor7KGw66eM7Zi4DQor7KGw7J6s7YOcDQor7KGw7Jqp6rOkDQor7KGw7Jik7ISdDQor7KGw66eQ7IOBDQor7KGw7ZqM7ZmYDQor7KGw7Lmg7IiYDQor7KGw67SJ7ZiEDQor7KGw66eQ7ZWZDQor7KGw7YOc7IiYDQor7KGw65GQ7J6sDQor7KGw7J6s7ISdDQor7KGw66e57KGwDQor7KGw7Jqp67SJDQor7KGw7J6s7J6sDQor7KGw7Zi47IicDQor7KGw66qF7IiZDQor7KGw7JiB7ZmYDQor7KGw7YOc7IudDQor7KGw7KCc7J6QDQor7KGw66qF7ZiEDQor7KGw7LKt6re8DQor7KGw7LKt7YOdDQor7KGw67SJ7IiYDQor7KGw66y07IStDQor7KGw66eM642VDQor7KGw7ZWE6rOkDQor7KGw7J207ZiEDQor7KGw66y07JuQDQor7KGw7KKF7JiBDQor7KGw7IOB7Zi4DQor7KGw7ISx7IicDQor7KGw66y46recDQor7KGw7KKF7Z2sDQor7KGw7J2A7ISxDQor7KGw7JWU7ISxDQor7KGw66y47ISdDQor7KGw7JiB656YDQor7KGw7IS46recDQor7KGw7YOc6recDQor7KGw66y47ZqoDQor7KGw67OR642VDQor7KGw7KeE7J28DQor7KGw6raM7Z2sDQor7KGw66+46rK9DQor7KGw7ISx7JiBDQor7KGw7YOc66eMDQor7KGw7ISx7KGwDQor7KGw66+47ISgDQor7KGw64Ko7KCVDQor7KGw7IiZ7ISgDQor7KGw7Iq56rOkDQor7KGw66+864KoDQor7KGw7KSR6ri4DQor7KGw7Jqp7J6QDQor7KGw7Y+J7IiYDQor7KGw66+87J6sDQor7KGw7Iug6riwDQor7KGw6rec7ZuIDQor7KGw7JuQ7Zi4DQor7KGw66+87Zi4DQor7KGw6rK96rK4DQor7KGw7J6l7YOcDQor7KGw7KSA6recDQor7KGw67Cx7IStDQor7KGw7ISg7Zi4DQor7KGw64yA7LacDQor7KGw7IiY7ZmYDQor7KGw67Cx7IStDQor7KGw66y06riwDQor7KGw7IiY67O1DQor7KGw7J6s7KSRDQor7KGw67KU656YDQor7KGw6riI7JqpDQor7KGw7ZmU7KeEDQor7KGw7IiY7IiYDQor7KGw67OR6rG0DQor7KGw6reg7ISdDQor7KGw7J6s7JiBDQor7KGw66y06rOkDQor7KGw67OR6rWsDQor7KGw7JiB7KeEDQor7KGw6riw7JWgDQor7KGw7ISx7IicDQor7KGw67OR6recDQor7KGw7Iug6recDQor7KGw6ri47ISdDQor7KGw7LCo7KO8DQor7KGw67OR7IiYDQor7KGw7Jm47KCVDQor7KGw7KO87JWgDQor7KGw66eQ6rK9DQor7KGw67OR7IicDQor7KGw7KCV7Je0DQor7KGw7KCV7ISdDQor7KGw7KCV7Z2sDQor7KGw67OR7JikDQor7KGw7IyN7ZiEDQor7KGw7J6l64+ZDQor7KGw7JiB7ZmYDQor7KGw67OR7JqwDQor7KGw7Iic6riwDQor7KGw7JuQ7JWUDQor7KGw7IOB6rWsDQor7KGw67OR7KSADQor7KGw7KCV7ISdDQor7KGw7Jyk7IudDQor7KGw7JiB642VDQor7KGw67OR7ZiEDQor7KGw7ZW067SJDQor7KGw7KeA7JilDQor7KGw67O17IicDQor7KGw67O1656YDQor7KGw642V64+ZDQor7KGw7Zi47IicDQor7KGw6riw7IigDQor7KGw67O1656YDQor7KGw64+Z7Z2sDQor7KGw7ISd7Zi4DQor7KGw7YOc7LKgDQor7KGw67O17JqpDQor7KGw7J2R7LKgDQor7KGw7J6s7Zi4DQor7KGw7Iq57JiBDQor7KGw67O17KCcDQor7KGw7KKF7Y+sDQor7KGw642V7IStDQor7KGw7ISx66y4DQor7KGw67SJ6recDQor7KGw7J6s7IiYDQor7KGw7LaY7J6sDQor7KGw67OR7Z2sDQor7KGw67SJ66OhDQor7KGw7KeE7ZiEDQor7KGw6rOE7LCoDQor7KGw7ZmN64+ZDQor7KGw67SJ7ISdDQor7KGw64KZ7Z2sDQor7KGw7YOc6ri4DQor7KGw7JiB66GADQor7KGw67SJ7IicDQor7KGw7J6s7KGwDQor7KGw64us7J6QDQor7KGw7JiB7JqxDQor7KGw67SJ7Zi4DQor7KGw67O16re8DQor7KGw7IOB6rCRDQor7KGw7IOB7KSADQor7KGw67aA7ZmYDQor7KGw7J6s7Z2sDQor7KGw7KeE7Z2gDQor7KGw64+Z7LKgDQor7KGw67aE7J20DQor7KGw7KKF7IiYDQor7KGw7ISx6rO1DQor7KGw7KCc7JqpDQor7KGw7IK864+MDQor7KGw7JuQ7YOdDQor7KGw7IK86ri4DQor7KGw7KeE6recDQor7KGw7IK864+MDQor7KGw7ISg7JewDQor7KGw7JiB66y4DQor7KGw66y47JiBDQor7KGw7IK87JqpDQor7KGw67aE6recDQor7KGw7IOB7IiYDQor7KGw67OR64KoDQor7KGw7IOB6riwDQor7KGw6rec6rOkDQor7KGw7Jqp7IicDQor7KGw7ISx7ZmUDQor7KGw7IOB656YDQor7KGw66eQ656ADQor7KGw7IOB7IStDQor7KGw7J6l7ZW0DQor7KGw7IOB66GdDQor7KGw7J207J24DQor7KGw7IS47Zi4DQor7KGw7KCV7JuQDQor7KGw7IOB66qpDQor7KGw7IOB7ISxDQor7KGw67OR7Z2sDQor7KGw7YOc7YOdDQor7KGw7IOB7JewDQor7KGw7KCV7JqpDQor7KGw7YOc7JqwDQor7KGw7KeE7JewDQor7KGw7IOB7JikDQor7KGw7JiB7YOdDQor7KGw64+Z7ZuIDQor7KGw64KZ7JuFDQor7KGw7IOB7JilDQor7KGw64yA7JqpDQor7KGw7J6s7KGwDQor7KGw7LCo67ORDQor7KGw7IOB7JqpDQor7KGw7KCV7LaYDQor7KGw7ZWc67SJDQor7KGw7JiB7IudDQor7KGw7IOB7YOcDQor7KGw7Jqp7IiZDQor7KGw7LKt7ZuIDQor7KGw7KCV7JaRDQor7KGw7IOB7ZWZDQor7KGw7IiZ7IiZDQor7KGw6riI7LKgDQor7KGw6re866eMDQor7KGw7IOB7Zi4DQor7KGw7ISg64yADQor7KGw7LaY7Z2gDQor7KGw64+E7IiZDQor7KGw7ISd6529DQor7KGw7ISd7J6QDQor7KGw7KKF7ZqoDQor7KGw7J6s642VDQor7KGw7ISd656YDQor7KGw7J6E7JewDQor7KGw7IaM7JiBDQor7KGw7Iic7KeEDQor7KGw7ISd66eMDQor7KGw6rOE7KCQDQor7KGw7IOB7JqpDQor7KGw7LKg7IigDQor7KGw7ISd7JWUDQor7KGw7ZW07JuQDQor7KGw6rK967CxDQor7KGw7Jyk6riwDQor7KGw7ISd7KeADQor7KGw7KKF7JilDQor7KGw7KCV7JqpDQor7KGw7Jqp7JykDQor7KGw7ISd7ZiEDQor7KGw7J6s64KoDQor7KGw64Ko7LKgDQor7KGw7J6E7KCVDQor7KGw7ISg7KCcDQor7KGw7KeE7KSRDQor7KGw7KeE7Zi4DQor7KGw7J6s7Z2sDQor7KGw7ISg7KCcDQor7KGw7LC97Zi4DQor7KGw7ZeM7ZiEDQor7KGw67OR6riwDQor7KGw7ISx6rOkDQor7KGw7Iic7IiYDQor7KGw6rK97KSADQor7KGw7JaR7KCVDQor7KGw7ISx6rWtDQor7KGw7J217KCcDQor7KGw7JiB7J6QDQor7KGw7J2R7IicDQor7KGw7ISx6raMDQor7KGw7KCV7J20DQor7KGw7ZWc7ISgDQor7KGwIOq3vA0KK+yhsOyEseq3vA0KK+yhsO2Zje2ZmA0KK+yhsOyEseydtA0KK+yhsOyYge2ZjQ0KK+yhsOyEseuTnQ0KK+yhsOuvuOy2mA0KK+yhsOyYgeyhsA0KK+yhsOuzkeq2jA0KK+yhsOyEseujoQ0KK+yhsOq3gOq4uA0KK+yhsOuLrOyDgQ0KK+yhsOy5oOq0gA0KK+yhsOyEseuztQ0KK+yhsOyduOu2gA0KK+yhsOydvOq2jA0KK+yhsOq0keyEoA0KK+yhsOyEseyInA0KK+yhsOygle2drA0KK+yhsOyInOyYgQ0KK+yhsOyEne2ZmA0KK+yhsOyEseyYpQ0KK+yhsOqwkeq4sA0KK+yhsOyynO2ZmA0KK+yhsOyLoOq1kA0KK+yhsOyEseyasA0KK+yhsOyerOu0iQ0KK+yhsOyInOyEnQ0KK+yhsOyerOyEoA0KK+yhsOyEseynhA0KK+yhsOyehOydvA0KK+yhsOq1kO2ZmA0KK+yhsOywrOyIoA0KK+yhsOyEseyynA0KK+yhsOyaqe2DnQ0KK+yhsOyatO2DnA0KK+yhsOyYgeuhnA0KK+yhsOyEse2YhA0KK+yhsOyerOuNlQ0KK+yhsOyGjO2VtA0KK+yhsOyImOyXtA0KK+yhsOyEse2ZmA0KK+yhsO2ZmOq1rQ0KK+yhsOyjvOyImQ0KK+yhsOuzke2VnA0KK+yhsOyGjOyEnQ0KK+yhsOq0ke2YuA0KK+yhsOydgOyLnQ0KK+yhsO2DnOyduA0KK+yhsOyGjOyInA0KK+yhsOq4iOyEoA0KK+yhsOuPmeq3vA0KK+yhsOyYgeq4sA0KK+yhsOyGjOyIoA0KK+yhsOyYge2VmQ0KK+yhsOyerOybkA0KK+yhsO2DnOybkA0KK+yhsOyGjOyhsA0KK+yhsOyEseunjA0KK+yhsOyInOynhA0KK+yhsOyblOyaqQ0KK+yhsOyGkOyaqQ0KK+yhsOydvOq1rA0KK+yhsOyYgeydtA0KK+yhsOygleyImA0KK+yhsOyImOuNlQ0KK+yhsOy2mOuPiA0KK+yhsO2XjOuTnQ0KK+yhsOyerOyInA0KK+yhsOyImOuPmQ0KK+yhsOuzteyYpQ0KK+yhsOyerOyLnQ0KK+yhsOyWuO2YuA0KK+yhsOyImOyVlA0KK+yhsOyEneuqqQ0KK+yhsOq3vOq3nA0KK+yhsOyerOyglQ0KK+yhsOyImOyVlA0KK+yhsOqwleyErQ0KK+yhsOy2lOyImA0KK+yhsOyjvO2ZmA0KK+yhsOyImOybkA0KK+yhsOymneq4sA0KK+yhsOuzkeunjA0KK+yhsOyEseq1rQ0KK+yhsOyImOywrA0KK+yhsOycpOuwsA0KK+yhsOyduOyhsA0KK+yhsOyCvOyEoA0KK+yhsOyImO2DnA0KK+yhsOuvvOyEsQ0KK+yhsOyekeyekA0KK+yhsOybkOuNlQ0KK+yhsOyImO2ZmA0KK+yhsOydvOyInA0KK+yhsOyaqeqyvQ0KK+yhsOywveybkA0KK+yhsOyInOuCqA0KK+yhsOyCvOuztQ0KK+yhsOyjvOq1rA0KK+yhsOyIoOyXtA0KK+yhsOyInOuTnQ0KK+yhsOqyveyyoA0KK+yhsOyYgeyImQ0KK+yhsOy2mOuPhA0KK+yhsOyInOyVlA0KK+yhsOyViOuNlQ0KK+yhsOuqheyZhA0KK+yhsOyaqeuPmQ0KK+yhsOyInOyVlA0KK+yhsOyiheyerA0KK+yhsOyerOyXsA0KK+yhsOuzkeyyoA0KK+yhsOyInOyXsA0KK+yhsOqyveuylA0KK+yhsO2DnOu2lQ0KK+yhsO2VtOuNlQ0KK+yhsOyInOyerA0KK+yhsOq4sOuFgA0KK+yhsOygkOq3vA0KK+yhsOyEseq3vA0KK+yhsOyInOyerA0KK+yhsOqyveyLpA0KK+yhsOygkOq3oA0KK+yhsOygleyYgQ0KK+yhsOyInOygnA0KK+yhsOqxtOuNlQ0KK+yhsOygleykgA0KK+yhsOusuO2drA0KK+yhsOyInOynkQ0KK+yhsOuNleyImA0KK+yhsOy5oOynhA0KK+yhsOyepeyXsA0KK+yhsOyInO2YhA0KK+yhsO2ZjeyLnQ0KK+yhsOyehOyXtA0KK+yhsOyduOuMgA0KK+yhsOyKueustA0KK+yhsOychO2YuA0KK+yhsOyduOynhA0KK+yhsOyImOyihQ0KK+yhsOyMjeydtA0KK+yhsOyLneuwsA0KK+yhsOyDgeyImA0KK+yhsO2YuOuwlQ0KK+yhsOyViOyerA0KK+yhsOyYgeyYpQ0KK+yhsOyaqeyasA0KK+yhsOuPmeyasA0KK+yhsOyVoOyjvA0KK+yhsOuzkeyasA0KK+yhsOyInOyaqQ0KK+yhsOyInOq3oA0KK+yhsOyWkeuemA0KK+yhsOuMgOyErQ0KK+yhsOynhOybkA0KK+yhsOygleyDgQ0KK+yhsOyWteygnA0KK+yhsOuzkeyLnQ0KK+yhsOyatO2drA0KK+yhsOqwkeyYpQ0KK+yhsOyXsOydtA0KK+yhsOuPhO2DnA0KK+yhsOuLrOyImQ0KK+yhsOygnOq3vA0KK+yhsOyXsOyekA0KK+yhsOyEoOyIoA0KK+yhsCDrk50NCivsobDsmKTtmLgNCivsobDsmIHquLANCivsobDsnqzsobANCivsobDtmITso7wNCivsobDrhbjsiJwNCivsobDsmIHquLANCivsobDri6TssqANCivsobDrtoTroZ0NCivsobDshozrnpgNCivsobDsmIHquLANCivsobDrtoTrqoUNCivsobDrqoXqt7wNCivsobDsmIHtnawNCivsobDsmIHquLgNCivsobDrhbjshK0NCivsobDtlbTshKANCivsobAg7ISdDQor7KGw7JiB656YDQor7KGw7JiB6re8DQor7KGw67O17IudDQor7KGw7Jyh7Zi4DQor7KGw7JiB656YDQor7KGw7Jqp7IiYDQor7KGw66y46re8DQor7KGw7Jq07ZmUDQor7KGw7JiB656YDQor7KGw7Jew7IicDQor7KGw7ZWZ7IOBDQor7KGw7LaY7ISxDQor7KGw7JiB66eMDQor7KGw64W47ISxDQor7KGw7IOB6recDQor7KGw7KCQ6rSADQor7KGw7JiB66qpDQor7KGw7Jqp6rOgDQor7KGw7Lmg7ISdDQor7KGw6riw7Z2sDQor7KGw7JiB7ISdDQor7KGw7KCV7YyQDQor7KGw66+47YOBDQor7KGwIO2drA0KK+yhsOyYgeyEsQ0KK+yhsOyEseyLnQ0KK+yhsOynhOyEnQ0KK+yhsOuPmeuPjA0KK+yhsOyYgeyImA0KK+yhsOygkOyYgQ0KK+yhsOyImeyjvA0KK+yhsOq4sOuNlQ0KK+yhsOyYgeyImA0KK+yhsOyiheyXtA0KK+yhsO2DnO2ZmA0KK+yhsOyEseyEnQ0KK+yhsOyYgeyImQ0KK+yhsOq0keyXtA0KK+yhsOq3gOybkA0KK+yhsOyImO2ZmA0KK+yhsOyYgeyYpQ0KK+yhsOuPmeyYpQ0KK+yhsO2VtOuNlQ0KK+yhsOq4uOyXsA0KK+yhsOyYgeyekA0KK+yhsOyDgeyekA0KK+yhsOqxtO2VmQ0KK+yhsOy2mO2ZmA0KK+yhsOyYgeyekA0KK+yhsOuqheyXvQ0KK+yhsO2YuOyhsA0KK+yhsOyDge2doA0KK+yhsOyYgeyerA0KK+yhsOuzkeyInA0KK+yhsOychOyEnQ0KK+yhsOuMgOyInA0KK+yhsOyYgeygnA0KK+yhsOynhOyasA0KK+yhsO2VnOyImA0KK+yhsOyEseuNlQ0KK+yhsOyYgeyhsA0KK+yhsOyYgeywrA0KK+yhsOyCvOyynA0KK+yhsO2DnOyErQ0KK+yhsOyYgeynkQ0KK+yhsOynhO2aqA0KK+yhsOyImOyjvA0KK+yhsOycpOyEnQ0KK+yhsOyYgeyyoA0KK+yhsOyiheyEsQ0KK+yhsOygleujoQ0KK+yhsO2Vmeq0gA0KK+yhsOyYge2DgQ0KK+yhsOyaseyErQ0KK+yhsOycpO2ZjQ0KK+yhsOyjvOyImA0KK+yhsOyYge2VmQ0KK+yhsOyXsOuztQ0KK+yhsOy2mOq4sA0KK+yhsOqwgOuNlQ0KK+yhsOyYge2YuA0KK+yhsOyImOuztQ0KK+yhsOyCvOuwsA0KK+yhsOuzkeuMgA0KK+yhsOyYge2YuA0KK+yhsOyDgeyDnQ0KK+yhsOyduOyngA0KK+yhsOydvOyglQ0KK+yhsOyYge2aqA0KK+yhsOyYpeyerA0KK+yhsOuMgOuPmQ0KK+yhsOyZuOumvA0KK+yhsOyYge2drA0KK+yhsOq4iOyVoA0KK+yhsO2VmeuemA0KK+yhsOq4sOydtA0KK+yhsOyYiOyduA0KK+yhsOynhOyWkQ0KK+yhsOyaqeuPhA0KK+yhsOyInOyXsA0KK+yhsOyYpO2DnA0KK+yhsOyiheyEnQ0KK+yhsOyepeqzpA0KK+yhsOu0ieyXsA0KK+yhsOyYpeqzhA0KK+yhsOygleyyoA0KK+yhsOyjvOyXsA0KK+yhsO2drO2RnA0KK+yhsOyYpeu2hA0KK+yhsOygleustA0KK+yhsOusuOyEoA0KK+yhsOygleyInA0KK+yhsOyYpeyEoA0KK+yhsOynhOuFuA0KK+yhsOuPme2aqA0KK+yhsOyInO2drA0KK+yhsOyYpe2YhA0KK+yhsO2VmOyZhA0KK+yhsOyiheyImA0KK+yhsOyerOuvvA0KK+yhsOyZuOyIoA0KK+yhsOyduO2YuA0KK+yhsOqyve2ZmA0KK+yhsOyImOyEnQ0KK+yhsOyaqeqxtA0KK+yhsOydgOyYgQ0KK+yhsOyerOunjA0KK+yhsOuMgOy2nA0KK+yhsOyaqeq2jA0KK+yhsOyInO2ZlA0KK+yhsOyEoOq3oA0KK+yhsO2YgeyEuA0KK+yhsOyaqeq3vA0KK+yhsOykgOyErQ0KK+yhsOq3nOyEoA0KK+yhsOuzkeyynA0KK+yhsOyaqeq4sA0KK+yhsOyLoOq3vA0KK+yhsO2DnOyhsA0KK+yhsOyiheykgA0KK+yhsOyaqeuMgA0KK+yhsOyepeyynA0KK+yhsOyerOyDgQ0KK+yhsO2MkOyImQ0KK+yhsOyaqeuPjA0KK+yhsOyiheywvQ0KK+yhsOyihe2YuA0KK+yhsOuCqOyIoA0KK+yhsOyaqeuztQ0KK+yhsOyiheyasA0KK+yhsOu0ieyYgQ0KK+yhsOyerOq3nA0KK+yhsOyaqeu2hA0KK+yhsOqyveyyoA0KK+yhsOq1rOy2mA0KK+yhsOydvOyYpQ0KK+yhsOyaqeyEsQ0KK+yhsOyEneynhA0KK+yhsOyIme2YuA0KK+yhsOyaqeyaqQ0KK+yhsOyaqeyInA0KK+yhsOyEse2YuA0KK+yhsOybkOyehA0KK+yhsOydvO2YuA0KK+yhsOyaqeyIoA0KK+yhsOyasOyEoA0KK+yhsO2ZjeyglQ0KK+yhsOydvO2ZmA0KK+yhsOyaqeykgA0KK+yhsO2DnOyXtA0KK+yhsOykkeyVvA0KK+yhsOyaqeqyvQ0KK+yhsOyaqey2nA0KK+yhsO2ZlOyEnQ0KK+yhsOusuO2YuA0KK+yhsOydvOydtA0KK+yhsOyaqe2DnQ0KK+yhsOyDgeyDgQ0KK+yhsOygkOyaqQ0KK+yhsO2DnOyDgQ0KK+yhsOyaqe2MkA0KK+yhsOywrOyglQ0KK+yhsCDsg4ENCivsobDsooXtmLgNCivsobDsmqntlZkNCivsobDqsr3tmLgNCivsobDsoJXrtoQNCivsobDtg5zsmIENCivsobDsmqntlZwNCivsobDqsr3rjZUNCivsobDtmITshK0NCivsobDrtoTtmZgNCivsobDsmqntmIENCivsobDsoJXtmLgNCivsobDtmqjtg5wNCivsobDso7zquLANCivsobDsmqntmLgNCivsobDrs5HsnbQNCivsobDrqoXsl7QNCivsobDstqntmLgNCivsobDsmrHrnpgNCivsobDsgrzshLENCivsobDsp4Dsp4QNCivsobDsnbjtg50NCivsobDsmrTtlZkNCivsobDsnITsnbwNCivsobDsooXtmZgNCivsobDsiJjqsJENCivsobDsm5Dqt5wNCivsobDsnKHtm4gNCivsobDrp4zssKwNCivsobDrqoXsnpANCivsobDsm5DsnqwNCivsobDsg4HsnbgNCivsobDtmLjtmLgNCivsobDtg5zsnbQNCivsobDsm5Dso7wNCivsobDqtZDtmLgNCivsobDssYTrjZUNCivsobDrjZXri6wNCivsobDsm5DtmIQNCivsobDspJHshJ0NCivsobDsg4HrsLANCivsobDsiJzsl7QNCivsobDsm5DtmLgNCivsobDsoJXtmIQNCivsobDtmLjtmIQNCivsobDsiJjsnpANCivsobDsnITsobANCivsobDtjJDsiJgNCivsobDssL3sobANCivsobDqsr3siJgNCivsobDsnKHsobANCivsobDsmIHsg50NCivsobDsiJzqs6QNCivsobDrtInshK0NCivsobDsnKTqtawNCivsobDqt7zsiJgNCivsobDsnKTtnawNCivsobDrs5HrtoANCivsobDsnKTquLANCivsobDshKDsiJgNCivsobDstpjqtZANCivsobDssKjquLANCivsobDsnKTrnpgNCivsobDsnqzqtowNCivsobDsi6DshKANCivsobDssqDssL0NCivsobDsnKTsgrwNCivsobDtlZntnawNCivsobDtmJXsiJgNCivsobDtjJDsnbUNCivsobDsnKTsi50NCivsobDquLDsmqkNCivsobDrqoXstpwNCivsobDsiJjsiJwNCivsobDsnKTsoJwNCivsobDrp4zsnbwNCivsobDsmqnsooUNCivsobDssqDssqANCivsobDsnKTsoJwNCivsobDrj5nqtawNCivsobDsmKXsnpANCivsobDshKDrj4wNCivsobDsnZjtjJANCivsobDsmIHquLANCivsobDsiJjsnpANCivsobDslpHtj6wNCivsobDsnZjtmZgNCivsobDquLjshK0NCivsobDsoJXrjZUNCivsobDtmITssqANCivsobDsnbTquLANCivsobDqtJHsmYQNCivsobDrkZDshJ0NCivsobDsnqzsiJkNCivsobDsnbTquLANCivsobDshLHrsLANCivsobDsooXsiJgNCivsobDsmIHsiJgNCivsobDsnbXshLENCivsobDsmqnro6ENCivsobDsoJDshJ0NCivsobDshJ3tmIQNCivsobDsnbjshJ0NCivsobDrj4TsiJwNCivsobDtg5zrp4wNCivsobDrrLTshKANCivsobDsnbjsiJgNCivsobDsoJXsiJgNCivsobDsoJXqs6QNCivsobDrjZXsi50NCivsobDsnbjsiJkNCivsobDqsr3siJwNCivsobDqsJHspIANCivsobDsnbTsspwNCivsobDsnbjsiJwNCivsobDsoJXssqANCivsobDstpjrj5kNCivsobDtg5zsi50NCivsobDsnbjsi50NCivsobDsnKTshJ0NCivsobDqsr3sl7QNCivsobDsnbjsmrANCivsobDsnbjsoJwNCivsobDrs7Xrr7gNCivsobDrqoXsmKUNCivsobDtlZzquLANCivsobDsnbjtlYQNCivsobDsmIHshJ0NCivsobDsirnsnKQNCivsobDshLHsiJgNCivsobDsnbjtmIQNCivsobDshKDqt7wNCivsobDssL3shK0NCivsobDrtoDsnpANCivsobDsnbjtmIQNCivsobDqsr3rk50NCivsobDrs7XtlqUNCivsobDtmqjsiJkNCivsobDsnbjtnawNCivsobDsmqntlZkNCivsobDsirnqt5wNCivsobDsm5DsiKANCivsobDsnbzrj4QNCivsobDtmLjsi50NCivsobDstpjquLANCivsobDshLHqt7wNCivsobDsnbzshKANCivsobDsooXsp4QNCivsobDssL3tmIQNCivsobDtmJzsm4UNCivsobDsnoTsi50NCivsobDsmIHtmIQNCivsobDqsJHsm5ANCivsobDsp4Tsl7QNCivsobDsnoTtlZkNCivsobDsiJjssL0NCivsobDrj5nsi50NCivsobDrjIDsl7ANCivsobDsnqXqt7wNCivsobDsm5TroZ0NCivsobDsooXtmIQNCivsobDrj5nsmqkNCivsobDsnqXrnpgNCivsobDshLHrprwNCivsobDrs5HsiKANCivsobDsnqzqs6QNCivsobDsnqXshK0NCivsobDsiJzsnqwNCivsobDsooXsobANCivsobDsnqzsiJgNCivsobDsnqXsiJgNCivsobDsg4HtnawNCivsobDsmKXtmZgNCivsobDtg5zquLANCivsobDsnqXtmLgNCivsobDtmITtg5wNCivsobDqtJHtmY0NCivsobDtmLjsoJUNCivsobDsnqzqt5wNCivsobDtmITsooUNCivsobDsmIHrjIANCivsobDtlZnsm4UNCivsobDsnqzrjIANCivsobDsoJXquLgNCivsobDsoJXquLANCivsobDtnazsl7ANCivsobDsnqzrjZUNCivsobDtg5zso7wNCivsobDsoJDsmYQNCivsobDsooXtmIQNCivsobDsnqzrj4QNCivsobDquLDshKANCivsobDsooXsm5ANCivsobDsm5Tsl7QNCivsobDsnqzrj5kNCivsobDsm5Dtg50NCivsobDsmKXso7wNCivsobDshLHsmIENCivsobDsnqzrp4wNCivsobDquLDrp4wNCivsobDrs5HsobANCivsobDsnqzsiKANCivsobDsnqzrrLgNCivsobDshLHsiJgNCivsobDqt7zssKwNCivsobDqsr3tnawNCivsobDsnqzrrLgNCivsobDtlZnsnbQNCivsobDrs5Hsi50NCivsobDssL3sm5ANCivsobDsnqzsiJwNCivsobDspIDssqANCivsobDsirnsi50NCivsobDri6ztg5wNCivsobDsnqzsmKUNCivsobDtnaztg5wNCivsobDrr7jtm4gNCivsobDsoJXsiJgNCivsobDsnqzsmqkNCivsobDsmIHsl7ANCivsobDsiJjrjZUNCivsobDrs5HsmqkNCivsobDsnqzsoJUNCivsobDrqoXsoJUNCivsobDshLHstpwNCivsobDshJ3tmIQNCivsobDsnqzsspwNCivsobDssL3snpANCivsobDshKDtmZQNCivsobDrqoXsiJgNCivsobDsnqzsspwNCivsobDso7zsiJgNCivsobDshpDstpwNCivsobDrr7jtg5wNCivsobDsnqzssqANCivsobDsnqzsmqkNCivsobDtmITrgqgNCivsobDtnaXssqANCivsobDsnqzssqANCivsobDsi6Tsi50NCivsobAg7IiZDQor7KGw64Ko7JqpDQor7KGw7J6s7LKgDQor7KGw66y066eMDQor7KGw7J6s7JuQDQor7KGw7IiY7J20DQor7KGw7J6s7YOcDQor7KGw7ZW07IiZDQor7KGw7J6s7ISdDQor7KGw7ISd7IiYDQor7KGw7J6s7YOcDQor7KGw7JiB7Zi4DQor7KGw66qF7Zi4DQor7KGw7LKg7IStDQor7KGw7J6s7ZWcDQor7KGw7IOB7Zi4DQor7KGw66qF7Z2sDQor7KGw7KeE66y1DQor7KGw7J6s7Zi4DQor7KGw7IOB7ZmNDQor7KGw6rK97Iq5DQor7KGw7Jqp7IudDQor7KGw7J6s7ZuIDQor7KGw7KCV6ri4DQor7KGw7J6s64KoDQor7KGw7Zi464yADQor7KGw7KCQ642VDQor7KGw6rCR6raMDQor7KGw64+Z7Zi4DQor7KGw7KCV7ZeMDQor7KGw7KCQ7IiYDQor7KGw7Iic6recDQor7KGw7J247IudDQor7KGw67OR7IOBDQor7KGw7KCQ7IigDQor7KGw7IOB66CoDQor7KGw7YOc7IiYDQor7KGw64Ko7Jq0DQor7KGw7KCQ7JilDQor7KGw7ISx67ORDQor7KGw7YOc64+ZDQor7KGw7Iuc64+ZDQor7KGw7KCV6rCBDQor7KGw64WE7ZiEDQor7KGw7ZmN7Z2sDQor7KGw67SJ7ZuIDQor7KGw7KCV6riwDQor7KGw7IiY7ZiEDQor7KGw7J6s7ZmYDQor7KGw7YOc7IicDQor7KGw7KCV656YDQor7KGw7ZWE7J6QDQor7KGw7YyQ7KKFDQor7KGw6riw7IiYDQor7KGw7KCV66+4DQor7KGw7J247Z2sDQor7KGw67KU67aVDQor7KGw7ISd7J6QDQor7KGw7KCV67O0DQor7KGw7Zal7ZmYDQor7KGw7YOc7Zi4DQor7KGw7ZaJ7IudDQor7KGw7KCV7IStDQor7KGw7KKF7ZiEDQor7KGw7KeE6rWsDQor7KGw7JiB7IicDQor7KGw7KCV7IiYDQor7KGw6riw67aEDQor7KGw7KSA7IiYDQor7KGw66qF7J6QDQor7KGw7KCV7IiYDQor7KGw7KCV7JuQDQor7KGw7J286ri4DQor7KGw66qF7JqxDQor7KGw7KCV7IiZDQor7KGw6rK97IS4DQor7KGw7ISd7YyQDQor7KGw7IOB6re8DQor7KGw7KCV7IudDQor7KGw7J6s7ISdDQor7KGw7KKF7ZuIDQor7KGw7JiB7IicDQor7KGw7KCV7ZiEDQor7KGw66eM7JuQDQor7KGw7J6s7Jq0DQor7KGw6rSR7Z2sDQor7KGw7KCV7ZiEDQor7KGw6rec7KeEDQor7KGw7ZKN7JuQDQor7KGw6rSR67CwDQor7KGw7KCV7Zi4DQor7KGw7LKg7IOBDQor7KGw7J286re8DQor7KGw7KCV7LKgDQor7KGw7KCV7Zi4DQor7KGw6rK96regDQor7KGw7IiY7IiYDQor7KGw7KKF7J24DQor7KGw7KCV7Zi4DQor7KGw7J246ri4DQor7KGw7J2A7LKcDQor7KGw7JuQ7IiZDQor7KGw7KCV7ZqoDQor7KGw7Jq07JqpDQor7KGw7Zi47YOBDQor7KGw7KeE7JqwDQor7KGw7KKF7ISdDQor7KGw7Iug7KeEDQor7KGw7KCQ7JqwDQor7KGw7IOB7Zi4DQor7KGw7KKF7ISdDQor7KGw7J247IiYDQor7KGw7IaM7IOBDQor7KGw67O17JqpDQor7KGw7KKF7IiYDQor7KGw7YOc6riwDQor7KGw66+47LKgDQor7KGw67OR7ZWZDQor7KGw7KKF7IiYDQor7KGw7YOc7KeEDQor7KGw7KCV7Zi4DQor7KGw7Y+J7KSADQor7KGw7KKF7IigDQor7KGw6re864WEDQor7KGw7IiZ7IudDQor7KGw7KKF7ISgDQor7KGw7KO87Z2sDQor7KGw66qF6riwDQor7KGw7KCQ656YDQor7KGw6rec7YOcDQor7KGw7KSA6riwDQor7KGw7ZiV7IOBDQor7KGw7IKs642VDQor7KGw6rCR67aEDQor7KGw7KSA7ISdDQor7KGw6rec6rWtDQor7KGw66y47IicDQor7KGw7Jyk7JuQDQor7KGw7KSA7JewDQor7KGw7KeE7Zi4DQor7KGw67O16rSADQor7KGw7JuQ7IStDQor7KGw7KSA7JqwDQor7KGw7Iq57ZWZDQor7KGw7LaY6ri4DQor7KGw7JiB7YOcDQor7KGw7KSA7LKgDQor7KGw7LCo66y4DQor7KGw7J6s67CwDQor7KGw7IiZ6rCRDQor7KGw7KSA7Z2sDQor7KGw7Jqp7KeEDQor7KGw7LaY7J6sDQor7KGw7ZeM7ZmYDQor7KGw7KSR7KCcDQor7KGw7ZiB67O1DQor7KGw7KCV6rSADQor7KGw6rCR7YOcDQor7KGw7KSR7ZmYDQor7KGw7IOB7IiYDQor7KGw7ISd7IudDQor7KGw64+I64yADQor7KGw7KeA6rCRDQor7KGw7ISx64yADQor7KGw7JiB7Z2sDQor7KGw7Lap7ISdDQor7KGw7KeE7JWgDQor7KGw7JiB7Y+sDQor7KGw6riI7JqwDQor7KGw7KO87LC9DQor7KGw7KeE7Zi4DQor7KGw6riw66eMDQor7KGw7ZWc6rK9DQor7KGw7KCV7ZicDQor7KGw7LCo7IOdDQor7KGw67SJ7ZiEDQor7KGw7Jqw7ZmUDQor7KGw7J6s7IicDQor7KGw7LCo7JqpDQor7KGw7ZqM656YDQor7KGw7LaY6re8DQor7KGw6rCR6re8DQor7KGw7LC96re8DQor7KGw7KeE7ZmYDQor7KGw7JiB7KSADQor7KGw67OR7J6lDQor7KGw7LC96riwDQor7KGw7ZeM7J20DQor7KGwIOyasA0KK+yhsOuNleyaqQ0KK+yhsOywveyEnQ0KK+yhsOuqheq4uA0KK+yhsO2DnOyImA0KK+yhsOyjvO2YuA0KK+yhsOywve2YuA0KK+yhsOyDge2VnA0KK+yhsOyYgeuNlQ0KK+yhsOuMgOycpA0KK+yhsOyynOyEnQ0KK+yhsOykgO2DnA0KK+yhsOu2hOq4sA0KK+yhsOynhOyYgQ0KK+yhsOyyoOyImA0KK+yhsOycoOyasA0KK+yhsOyDgeynhA0KK+yhsOynhOy2nA0KK+yhsOyyoOynhA0KK+yhsO2VhOybkA0KK+yhsOuvvOyhsA0KK+yhsOunkOyImA0KK+yhsOy2mOq4uA0KK+yhsO2YuOyInA0KK+yhsOuqheyImA0KK+yhsOyImO2ZmA0KK+yhsOy2mOunjA0KK+yhsOyEoOyYgQ0KK+yhsO2YhOuFgA0KK+yhsOyjvOq4uA0KK+yhsOy2mOyekA0KK+yhsOybkOyyoA0KK+yhsO2drOq3nA0KK+yhsOyEne2YuA0KK+yhsOy5oO2VmQ0KK+yhsOuzkeyHhA0KK+yhsOyerOyXtA0KK+yhsOyYgeq4uA0KK+yhsO2DgOyInA0KK+yhsOygleyXtA0KK+yhsOusuOyasA0KK+yhsOq0ke2VmA0KK+yhsO2DnOyImA0KK+yhsOyghOuPmQ0KK+yhsOy2qe2ajA0KK+yhsOuPme2RnA0KK+yhsO2DnOydvA0KK+yhsOyGoeyEoA0KK+yhsOqyveyhsA0KK+yhsOyInOq3nA0KK+yhsO2DnOyhsA0KK+yhsOykke2DgQ0KK+yhsOuCmeybkA0KK+yhsOyDgeydtA0KK+yhsO2DnO2ZmA0KK+yhsOybkO2doA0KK+yhsOuqhe2YhA0KK+yhsOyiheq4sA0KK+yhsO2DnO2drA0KK+yhsO2drOuhgA0KK+yhsO2YuOq1rQ0KK+yhsOyerOyjvA0KK+yhsO2DneyDgQ0KK+yhsOywveunjA0KK+yhsOuzkeyZhA0KK+yhsOuPmeyyoA0KK+yhsO2DneyDgQ0KK+yhsOq0ke2YhA0KK+yhsOyerOyasA0KK+yhsOqyveuPmQ0KK+yhsO2MkOuFhA0KK+yhsOuylOyYpA0KK+yhsOyYpeyInA0KK+yhsOyDgeybhQ0KK+yhsO2MkOyVlA0KK+yhsOyCvO2YhA0KK+yhsO2Zje2ZmA0KK+yhsOyhsO2DgQ0KK+yhsO2VhOyehA0KK+yhsOydvOu0iQ0KK+yhsOyDgeuMgA0KK+yhsOy2lOyImA0KK+yhsO2VmOqwlQ0KK+yhsOunjOuPhA0KK+yhsOyiheyImA0KK+yhsOyDgeqzoA0KK+yhsO2VmeuemA0KK+yhsOy2qeq2jA0KK+yhsOyYpOq3nA0KK+yhsOq4sOuwsA0KK+yhsO2VmeygnA0KK+yhsOuPmeyInA0KK+yhsOyaqeyaqQ0KK+yhsOuNleqyvQ0KK+yhsO2VnOyImA0KK+yhsOygkOydvA0KK+yhsOydvOuylA0KK+yhsOyynOyYgQ0KK+yhsO2VnOyYgQ0KK+yhsOyerO2YuA0KK+yhsOq3vOuqqA0KK+yhsOyInOuMgA0KK+yhsO2VtOuvvA0KK+yhsOydte2YuA0KK+yhsOyDgey2nA0KK+yhsOygleuhnQ0KK+yhsO2VtOyEoA0KK+yhsO2DnOyDgQ0KK+yhsOyEse2ZmA0KK+yhsOyYgeuwsA0KK+yhsO2VtOyImA0KK+yhsOyyoOyImA0KK+yhsOyduOyehA0KK+yhsOybkO2biA0KK+yhsO2VtOyImQ0KK+yhsOyduOyErQ0KK+yhsOyLoOyImQ0KK+yhsOyiheyerA0KK+yhsO2VtOyLnQ0KK+yhsOq4sOq4sA0KK+yhsOyEneyaqQ0KK+yhsOyaseq1sA0KK+yhsO2VtOyaqQ0KK+yhsOycpOykgA0KK+yhsOu2hOyVoA0KK+yhsOynhOyLnQ0KK+yhsO2XjOyerA0KK+yhsO2YuOyYgQ0KK+yhsO2drOyhsA0KK+yhsOunjOuPmQ0KK+yhsO2YhOyEnQ0KK+yhsOyImeykgA0KK+yhsOydkeyErQ0KK+yhsOuzkeyDgQ0KK+yhsO2YhOyEnQ0KK+yhsOuPmeyekA0KK+yhsO2YhO2MlA0KK+yhsOuvvOybhQ0KK+yhsO2YhOyImA0KK+yhsO2VtOyaqQ0KK+yhsOq4sOq3oA0KK+yhsOq0keyekA0KK+yhsO2YhOyYgQ0KK+yhsO2VnOyasQ0KK+yhsO2DnO2DnA0KK+yhsO2DnOyImA0KK+yhsO2YhOyaqQ0KK+yhsOyYge2YuA0KK+yhsOyaqeyImA0KK+yhsO2XjOq3oA0KK+yhsO2YhOyerA0KK+yhsOydtOyihQ0KK+yhsOq3nO2YuA0KK+yhsOygnOqwkQ0KK+yhsO2YhOyglQ0KK+yhsOyihe2VmA0KK+yhsOywve2drA0KK+yhsOyInOq1rA0KK+yhsO2YhOyhsA0KK+yhsOq4iOyEnQ0KK+yhsOyYge2YuA0KK+yhsOunkO2YuA0KK+yhsO2YhOyhsA0KK+yhsOy2mOuhgA0KK+yhsOyEseyEsQ0KK+yhsOyblOyImA0KK+yhsO2YhOykgA0KK+yhsOycpOyEsQ0KK+yhsOyDge2XjA0KK+yhsOyYgeuwsA0KK+yhsO2YhOykkQ0KK+yhsOuLrOyhsA0KK+yhsOyEoOuegA0KK+yhsO2VnOynhA0KK+yhsO2YhO2DnA0KK+yhsOyaqeyXsA0KK+yhsO2DnOyVlA0KK+yhsOycoeyImA0KK+yhsO2YhO2DnQ0KK+yhsOuzkeu0iQ0KK+yhsOycpO2YuA0KK+yhsOq4iOyEoA0KK+yhsO2YhO2YuA0KK+yhsO2DnOycpA0KK+yhsOyEse2ZmA0KK+yhsOq0ke2YhA0KK+yhsO2YhO2YuA0KK+yhsOuzke2aqA0KK+yhsOyDge2drA0KK+yhsOq1rOykgA0KK+yhsO2YhO2YuQ0KK+yhsOuRkOyImA0KK+yhsOyGjOyEoA0KK+yhsOyYpOyImA0KK+yhsO2YleyErQ0KK+yhsOykgOufiQ0KK+yhsOynhOyEsQ0KK+yhsOq0ke2DgQ0KK+yhsO2YleyXsA0KK+yhsO2WieyInA0KK+yhsOyekOyYpA0KK+yhsOyerOyInA0KK+yhsO2YuOq3nA0KK+yhsO2VtOydtQ0KK+yhsOyYgeyXtA0KK+yhsO2ZjeybkA0KK+yhsO2YuOyhsA0KK+yhsO2DnOydtQ0KK+yhsOqyveumrA0KK+yhsOyaqeyihQ0KK+yhsO2YuOyhsA0KK+yhsOyaqeyImA0KK+yhsOygleyLnQ0KK+yhsOuzke2DnA0KK+yhsO2YuO2YhA0KK+yhsOykgOq4sA0KK+yhsOuvvOu0iQ0KK+yhsOyImOyZhA0KK+yhsO2ZjeyEnQ0KK+yhsOyerOyhsA0KK+yhsOuqheyhsA0KK+yhsOyduOuvuA0KK+yhsO2ZjeyEnQ0KK+yhsOyEse2YuA0KK+yhsOyiheydtQ0KK+yhsOygle2YuA0KK+yhsO2ZjeyErQ0KK+yhsOunjO2YhA0KK+yhsOq0gOyekA0KK+yhsOy2mOyLnQ0KK+yhsO2ZmOq3nA0KK+yhsOyImOykgA0KK+yhsOuzkeqzpA0KK+yhsOyImOyImA0KK+yhsO2ZqeyEnQ0KK+yhsOunjOqwkQ0KK+yhsOyyoOyyoA0KK+yhsO2VnOq0kQ0KK+yhsO2drOqwkQ0KK+yhsOqyveyKuQ0KK+yhsOyerOuNlQ0KK+yhsOyiheyekA0KK+yhsO2drOq0gA0KK+yhsOyerOq3nA0KK+yhsOuvvOyehA0KK+yhsOuzteyaqQ0KK+yhsO2drOuPmQ0KK+yhsOyepe2VmQ0KK+yhsOuPhOunjA0KK+yhsOqyveu2hA0KK+yhsO2drOuemA0KK+yhsOyInOyjvA0KK+yhsOyerOyerA0KK+yhsOqwle2DnQ0KK+yhsO2drOyImA0KK+yhsOyLoOyEnQ0KK+yhsOusuOyImQ0KK+yhsOyDgeyaqQ0KK+yhsO2drOybkA0KK+yhsOyaqeyDnQ0KK+yhsOyEseyehA0KK+yhsOuPmey2mA0KK+yhsO2drOyglQ0KK+yhsOyYgeydtA0KK+yhsO2YhO2XjA0KK+yhsOyduOqwnA0KK+yhsO2drOykkQ0KK+yhsOyKueuPhA0KK+yhsOyEneq0gA0KK+yhsOyEse2ZmA0KK+yhsO2drOy2nA0KK+yhsOyerOyEnQ0KK+yhsOyImOydtA0KK+yhsOyDgeuhnA0KK+yhsO2drO2DnA0KK+yhsOyngOywrA0KK+yhsOusuO2YuA0KK+yhsO2DnOy2mA0KK+yjvCDqsJUNCivso7zsirntmZgNCivso7zrrLTslZQNCivso7zsp4TtnawNCivso7zqsr3sp4QNCivso7zsl7DshKANCivso7zsg4HtmLgNCivso7zssKjtjJQNCivso7zqs4TsiJkNCivso7zsmrDrjZUNCivso7zrp4zrhYANCivso7zsnbzrtIkNCivso7zrj4TtmY0NCivso7zsnZjsnKQNCivso7zshKDsiJkNCivso7ztg5zqt6ANCivso7zrj5nsi50NCivso7zrtInssqANCivso7ztjJDquLgNCivso7ztlZzrk50NCivso7zrp4zsiJwNCivso7zsnqzqtJENCivso7zsooXsm5ANCivso7ztlbTsnbUNCivso7zrqoXsnpANCivso7zsmIHsmIENCivso7zsnbzso7wNCivso7zsmKXsnbQNCivso7zrr7zqta0NCivso7zsnbjtg5wNCivso7zqtJHsiJgNCivso7zri6ztlqUNCivso7zrtInsiJwNCivso7zsmIHsmrANCivso7zrs5Hsp4QNCivso7zqt7zso7wNCivso7zsiJzsmKUNCivso7zsnbjsm4UNCivso7zsg4HqsJENCivso7zsooXqta0NCivso7zsiJzsnpANCivso7ztjJDshLgNCivso7ztlbTqtowNCivso7zsg4HsiJkNCivso7zsmKXrtoQNCivso7zslYXtmLgNCivso7ztlZjtmLgNCivso7zsiJjri6wNCivso7zsnKTtkZwNCivso7ztlZnsl7QNCivso7zshLHtmZgNCivso7zrtoDsg4ENCivso7zsoJXsm4UNCivso7zsmqntmLgNCivso7zqt4DsiJgNCivso7zsnqztmY0NCivso7zspJHshJ0NCivso7zrqoXsooUNCivso7zsirnspIANCivso7zrs5Htg5wNCivso7zsp4DsooUNCivso7zrtInsiJwNCivso7zssq3smIENCivso7ztmY3shKANCivso7zstpjtmLgNCivso7zsiJzsiJwNCivso7zsiJzroZ0NCivso7zrgqjrgqgNCivsp4Drs5HssqANCivsp4Dtl4ztmIQNCivsp4DssL3sobANCivsp4DqsJHsnpANCivsp4Drs5HtmLgNCivsp4Drs5HqtawNCivsp4DshLHsnbQNCivsp4DsiJjsm5ANCivsp4DsiJjrk50NCivsp4DrjZXtmqgNCivsp4DqtJHtnawNCivsp4DrhbjsiJgNCivsp4DsmIHso7wNCivsp4DtjJDsp4QNCivsp4DsmIHsnKQNCivsp4DsnYTqt5wNCivsp4DsmKXtmZgNCivsp4DsoJzsnpANCivsp4DsmqnroKwNCivsp4DquLDtmIQNCivsp4DsnqzsgrwNCivsp4Dsg4HrjZUNCivsp4DsgrzssqANCivsp4DsnZjrjIANCivsp4DsnqzsmqkNCivsp4DtlqXtmLgNCivsp4DsnKTsm5ANCivsp4Dtg5zspIANCivsp4DsooXtmLgNCivsp4DsoJXsiJkNCivsp4DquLjquLANCivsp4Dsspzso7wNCivsp4Dstpjsi50NCivsp4DsmrDsobANCivsp4Dsp4TsnoQNCivsp4DsmIHtlZwNCivsp4TqsJHsl7ANCivsp4TrqoXtlZgNCivsp4Tsnbjsg4ENCivsp4Tshozsg4ENCivsp4TqsJHsmqkNCivsp4TsoJXsm5ANCivsp4Trj5nrk50NCivsp4TsmrDqt6ANCivsp4Tqt5ztmY0NCivsp4TsmbjrrLgNCivsp4Trs5HsobANCivsp4Ttl4ztmZgNCivsp4TquLDsiJgNCivsp4Tsi5zqsJENCivsp4Tsl7DsiJgNCivsp4TsnKDquLANCivsp4TquLDsiJkNCivsp4Tsp4Drj4wNCivsp4Ttmqjqt5wNCivsp4Tsnqztg50NCivsp4TquLDsmqkNCivsp4TshJ3shLENCivsp4TsiJzsoJUNCivsp4TrjIDsmrANCivsp4TrjZXtnawNCivsp4TrtInsi50NCivsp4TsmqnshLgNCivsp4TssqDslZQNCivsp4TrkZDrtIkNCivsp4TrqoXqtowNCivsp4TshLHqt7wNCivsp4TshLHsi6QNCivsp4Trp5DshKANCivsp4TshozsooUNCivsp4TqsJHqt7wNCivsp4TsgrztmLgNCivsp4TrqoXsnpANCivsp4TrqoXtg5wNCivsp4TsoJXtmLgNCivsp4Tqs4TquLANCivsp4TrqoXsnpANCivsp4TqtozsmKQNCivsp4Tqs4TroYANCivsp4TsiJzsi50NCivsp4TrrLjqtZANCivsp4TshJ3tlZkNCivsp4TsmIHrjIANCivsp4Tsg4HsmqkNCivsp4Trs5HtlZkNCivsp4TsmIHtl4wNCivsp4TrkZDsi50NCivsp4Tqsr3si50NCivsp4TrtInquLgNCivsp4TrqoXrqqgNCivsp4TshLHrj4wNCivsp4TstpjrjZUNCivsp4TrtInsi50NCivsp4Tsm5DrsLANCivsp4TrqoXsnbQNCivsp4Trs7jtjJQNCivsp4TsgrzsobANCivsp4TsoJXqs6QNCivsp4TtmY3rnpgNCivsp4TrrLTtnawNCivsp4Tsg4HquLANCivsp4TsiJjtmLgNCivsp4TshozsoJUNCivsp4TshJ3siJgNCivsp4Tsg4HsmrENCivsp4TrtInquLgNCivsp4Tqt5ztmZgNCivsp4TsnqzsmrANCivsp4Tsg4HsmrQNCivsp4TsmqnstpgNCivsp4Tsm5Tqt5wNCivsp4Trj5nqtowNCivsp4Tsg4Hsp4QNCivsp4Tsg4HshKANCivsp4TshJ3si50NCivsp4Tqt7ntmLgNCivsp4Tsg4HtmZgNCivsp4TsnqzsiJwNCivsp4TsnqzspJENCivsp4TshLHshKANCivsp4TshJ3snYANCivsp4Tsmqnsi50NCivsp4TtlZztg5wNCivsp4TsmqnrjIANCivsp4TshJ3tmLgNCivsp4TtjJDtmLgNCivsp4TrrLjsmqkNCivsp4TquLjsiJgNCivsp4TshLHrp4wNCivsp4TrrLjsnpANCivsp4TsiJztmZgNCivsp4TtmZjsiKANCivsp4TshLHsmrENCivsp4Tqt5ztlqUNCivsp4TsnbjsmKUNCivsp4Tqsr3qt7wNCivsp4TsiJjsm4UNCivsp4TsmIHri6wNCivsp4TsooXssqANCivsp4TspIDslaANCivsp4TsiJjtjJANCivsp4Tsm5DsnpANCivsp4TtlbTsm4UNCivsp4Trs5HquLgNCivsp4TsiJzrj4QNCivsp4TsmKXshKANCivsp4Tri6zspIANCivsp4TtlZntjJANCivsp4TsmIHqta0NCivsp4TrrLTssqANCivsp4Trs5HsiJkNCivsp4Tqsr3smrENCivsp4TsmIHsiJgNCivsp4TssKztmLgNCivsp4Trj5nssL0NCivsp4TtmITquLgNCivsp4TsmIHsm4UNCivsp4TshJ3siJgNCivsp4Trp4zssqANCivsp4Trs5Hsl7ANCivsp4TsmIHsnpANCivsp4Tsg4HsiJgNCivsp4TshLHsnpANCivsp4TrqoXtmY0NCivsp4TsmbjsobANCivsp4Trj5nsmIENCivsp4TshLHshKANCivsp4Tsnqzqt5wNCivsp4Tsmqnrj4wNCivsp4TshLHsiJwNCivsp4Tsnqzqta0NCivsp4TsiJjrr7gNCivsp4TsmqnsiJgNCivsp4Trs7XsobANCivsp4TslZTsi50NCivsp4Trs5HrgqgNCivsp4TsmqnslZQNCivsp4TsoJXshKANCivsp4Tqt4Dqt5wNCivsp4TsooXsi50NCivsp4TsmqnsnbwNCivsp4TsmKXsoJUNCivsp4Tsg4HsmqkNCivsp4TsnqzqtIANCivsp4TsmqntmLgNCivsp4Tsnqzqt7wNCivsp4TsmIHsm5ANCivsp4TrjZXstpgNCivsp4TsmrDqtowNCivsp4TsoJXsg4ENCivsp4TsnZjsl7ANCivsp4TshLHsi50NCivsp4TsmrDshKANCivsp4TqsJHsi50NCivsp4TsoJDsooUNCivsp4Trs7Xtg5wNCivsp4Tsm5DshJ0NCivsp4TsmIHtmLgNCivsp4TsooXrj4QNCivsp4TsooXsnbwNCivsp4TsnbTsiJgNCivsp4Tsp4TsmIENCivsp4TquLDstpwNCivsp4TtmLjqt7wNCivsp4TsnqzsmqkNCivsp4Trs5Htm4gNCivsp4TtnazspJENCivsp4TrqoXsspwNCivsp4TsoJXrnoANCivsp4TrhbjqtIANCivsp4Tqt7zrj5kNCivsp4Tri6ztmZgNCivsp4TsoJXrnpgNCivsp4Tsg4Hsi50NCivsp4TtnazsiJgNCivsp4TqsJXtg5wNCivsp4TsoJXsg4ENCivsp4Tsp4Tsm5ANCivsp4Trs5Htg5wNCivsp4TshJ3shKANCivsp4TsoJXshLgNCivsp4TsnqzqtZANCivsp4TsnqXrsLANCivsp4Trgqjqt7wNCivsp4TsoJXsiJkNCivsp4Tri6zsi50NCivsp4TsmqntmIENCivsp4TsnqztmLgNCivsp4TsoJXsiJkNCivsp4TssL3smIENCivsp4Tsm5Tqt5wNCivsp4Tsp4Tsi50NCivsp4TsoJXslrgNCivsp4TsnqXtmIENCivsp4TqtIDsi50NCivsp4Tstpjsi50NCivsp4TsooXqt7wNCivsp4TsooXtlZkNCivsp4Ttg5zsmqkNCivsp4TsoJXtnawNCivsp4TsooXrjIANCivsp4Trp5DsiJwNCivsp4TsiJjshJ0NCivsp4Tsp4TshKANCivsp4TssKjsmqkNCivsp4Tsg4HsnKQNCivsp4Tqsr3qtawNCivsp4TstpjqtIANCivsp4TssKzsnoQNCivsp4TsmIHsiJgNCivsp4Ttl4zsiJwNCivsp4Tsg4HshLgNCivsp4TssKztmIQNCivsp4Trr7jsm5ANCivsp4TshJ3shJ0NCivsp4TsooXsp4QNCivsp4TssL3rj4wNCivsp4TtmY3smrANCivsp4TsmIHroZwNCivsp4TspIDtlZkNCivsp4TssL3shJ0NCivsp4Trgqjrr7gNCivsp4TsoJXqtawNCivsp4TrgqjtnawNCivsp4TssL3snKQNCivsp4TtlZztmZgNCivsp4Tssq3soJwNCivsp4TsnbTquLgNCivsp4Tsspzrj4QNCivsp4Tqsr3rp4wNCivsp4Tsg4HsiJkNCivsp4TshozrtIkNCivsp4TsspzsiJgNCivsp4TtlbTtnawNCivsp4Tsirntl4wNCivsp4Trp5DsiJgNCivsp4TsspzsiJgNCivsp4Tsi6Dso7wNCivsp4Tsm5DsmrANCivsp4TssKjsobANCivsp4TssqDsg4ENCivsp4TquIjtmZgNCivsp4TshLHtmY0NCivsp4TsoJXso7wNCivsp4TsuaDqtowNCivsp4TssKzsiJgNCivsp4TtmY3snoQNCivsp4TspIDsnbwNCivsp4TtjJDqsJwNCivsp4TsooXtkZwNCivsp4Tsg4Hsi50NCivsp4Ttmqjqt7wNCivsp4TtjJDrj4wNCivsp4Tsg4HtmIQNCivsp4TquIjsp4QNCivsp4TsmqnssYQNCivsp4TtjJDsnqwNCivsp4TsnKTrnpgNCivsp4TsnqzrjZUNCivsp4Trs5HshK0NCivsp4TtlonsnpANCivsp4Tsp4DsmqkNCivsp4TtlbTshK0NCivsp4Trs5Hsm4UNCivsp4Ttl4zsiJgNCivsp4Tri6zshLENCivsp4Tqsr3ssqANCivsp4Trs5Htm4gNCivsp4Ttl4ztg50NCivsp4TsnqztmZgNCivsp4TrqoXsmIENCivsp4TquLDrprwNCivsp4TtmITsnbQNCivsp4TsmIHrs7UNCivsp4TsooXrjZUNCivsp4TtmLjqt5wNCivsp4TtmJzsmIENCivsp4Trj5nsiJkNCivsp4Tsm5DshJ0NCivsp4TsmqnsooUNCivssKgg7IiZDQor7LCo6rCI7J20DQor7LCo67OR7JiBDQor7LCo7J6s64+EDQor7LCo6rCR7ISdDQor7LCo64+Z7ZuIDQor7LCo6rec6ri4DQor7LCo7Iic64WVDQor7LCo6rK97IicDQor7LCo7KKF7IicDQor7LCo67O17IStDQor7LCo7KCV6riwDQor7LCo6re57YOcDQor7LCo7IK87KeEDQor7LCo7ZW07JewDQor7LCo7KCV7ZmYDQor7LCo6re87ISdDQor7LCo7IOB7YyUDQor7LCo7IOB67SJDQor7LCo64+Z7KeEDQor7LCo6riw7IiYDQor7LCo7Jyk656YDQor7LCo7ISx7ZuIDQor7LCo7J247JuFDQor7LCo6riw7Zi4DQor7LCo7Iq57JilDQor7LCo7ZWc7IicDQor7LCo7LKg656YDQor7LCo6ri47IOBDQor7LCo7YyQ7ZqoDQor7LCo6rec7ISgDQor7LCo7Jqp7J6QDQor7LCo64yA66WcDQor7LCo7KCV642VDQor7LCo7YOc6re8DQor7LCo7J287KCcDQor7LCo642V7JqpDQor7LCo7IOB7ZuIDQor7LCo7J6s7YOdDQor7LCo7IaM7JqwDQor7LCo64+E7KCVDQor7LCo7IOB6rOkDQor7LCo7IOB7ZmNDQor7LCo7Zqo7JewDQor7LCo64+M7JqpDQor7LCo7ZiE7ISdDQor7LCo64+Z7ZmYDQor7LCo7KKF7J6EDQor7LCo64+Z7ISdDQor7LCo6rK964+ZDQor7LCo6rK97ZmUDQor7LCo7KCQ7JWUDQor7LCo64+Z7IStDQor7LCo7KO87IiYDQor7LCo6rec7ZmNDQor7LCo7J6s7YOdDQor7LCo66eM7JqpDQor7LCo7KCQ6rSADQor7LCo7Ja46recDQor7LCo7JiB7IicDQor7LCo66qF7ZaJDQor7LCo7JiB7JqwDQor7LCo7KCV7Z2sDQor7LCo7J6s7IiYDQor7LCo66+864+EDQor7LCo7JiB7IiYDQor7LCo7Lmg6rWwDQor7LCo67OR67SJDQor7LCo67SJ64+EDQor7LCo7YOc66y4DQor7LCo7ISx7Z2sDQor7LCo7J287IicDQor7LCo67SJ7ZuIDQor7LCo67OR7ZiEDQor7LCo7ISx7JiBDQor7LCo7ZmN7ISdDQor7LCo7IK87LKcDQor7LCo7LC97ZmYDQor7LCo7Jq067O1DQor7LCo7KCV6rK9DQor7LCo7IOB7JewDQor7LCo7Jqp7Jq0DQor7LCo7KKF7J6QDQor7LCo7Z2l7IiYDQor7LCo7IOB7JiBDQor7LCo7Z2s7IudDQor7LCo7IS47KadDQor7LCo642V7IiYDQor7LCo7IOB7ZmYDQor7LCo6re87Z2sDQor7LCo7Iug7IScDQor7LCo67O17Zi4DQor7LCo7ISg7J20DQor7LCo7Iic7ISdDQor7LCo7ZWE67CwDQor7LCo7LC96rWQDQor7LCo7ISg7J20DQor7LCo7IiZ7Je9DQor7LCo7Zqo7YOdDQor7LCo7KKF6rWtDQor7LCo7IyN7IigDQor7LCo6rCR7YOcDQor7LCo6riw64+MDQor7LCo67aE7JewDQor7LCo7JaR7ZiEDQor7LCo7J6s7KKFDQor7LCo7JiB7JqpDQor7LCo6rWt7Je0DQor7LCo7JiB7Je0DQor7LCo7Jyg7Zi4DQor7LCo7ISg7IStDQor7LCo7Jqp6rOEDQor7LCo7JiB7KeEDQor7LCo7JuQ7JiBDQor7LCo7J2A7IukDQor7LCo6rCR7KGwDQor7LCo7JiB7KeEDQor7LCo7IOB7Z2sDQor7LCo6riw64+ZDQor7LCo7YOc7KSADQor7LCo7JiB7ZmYDQor7LCo66eQ6re8DQor7LCo67Cp7IiYDQor7LCo7KCV6ri4DQor7LCo7Jil7ISgDQor7LCo64+E66eMDQor7LCo7YOc7IStDQor7LCo7ISx7Zi4DQor7LCo7Jqp642VDQor7LCo7YyQ7Je0DQor7LCo7KKF7ZmUDQor7LCo6riw7ISgDQor7LCo7Jqp7IStDQor7LCo7KeE7LCoDQor7LCo7ISd7LCsDQor7LCo64W46rCRDQor7LCo7Jqp7IiYDQor7LCo64KY6rWsDQor7LCo7LKg7ZGcDQor7LCo7J6s6rOkDQor7LCo7Jyg7IStDQor7LCo7IS47ISgDQor7LCo64+Z7KSADQor7LCo6riw66y0DQor7LCo7J207IicDQor7LCo7J6s7YOcDQor7LCo7ISx66y4DQor7LCo7YOc7IiYDQor7LCo7J247IudDQor7LCo66qF7JiBDQor7LCo67aE67CwDQor7LCo7Iic66GdDQor7LCo7J287JqpDQor7LCo7Z2s64+EDQor7LCo7ISx7JuQDQor7LCo64yA7ZmUDQor7LCo7J6E7ISgDQor7LCo7ISg7IiYDQor7LCo7JyE7JqpDQor7LCo7KeE66+8DQor7LCo7J6E7JqpDQor7LCo7ZWc7KO8DQor7LCo7ZW07Iq5DQor7LCo67KU6rK9DQor7LCo7J6l7ZmYDQor7LCo7Jqp66eMDQor7LCo64+Z7J6QDQor7LCo7IOB6raMDQor7LCo7J6s6recDQor7LCo7Jqw7ZmUDQor7LCo6rSR7IudDQor7LCo7KSA7JqwDQor7LCo7KCV7J6QDQor7LCo7LCo7Zi4DQor7LCo7IiY7J6QDQor7LCo7YyU7KCVDQor7LCo7KKF66GdDQor7LCo7IOB7ZuIDQor7LCo7IyN6rWtDQor7LCo6rec7ISdDQor7LCo7Kad7JqpDQor7LCo6riw7J6sDQor7LCo67SJ7J20DQor7LCo7ISc7IiYDQor7LCo7KeA7ZuIDQor7LCo7IOB7KSADQor7LCo7Lap7ISdDQor7LCo7JiB6recDQor7LCo7KeE7IStDQor7LCo7KKF7IicDQor7LCo7J6l6ri4DQor7LCo7ZiV7JqwDQor7LCo7KeI7JqpDQor7LCo7Zi464+ZDQor7LCo7ISd7IiYDQor7LCo7ZiE67aEDQor7LCo7LC97ISdDQor7LCo7Jil7KCEDQor7LCo66eM7J6QDQor7LCo7IaM7ZWYDQor7LCo7LKg7Zy0DQor7LCo7YOc7KGwDQor7LCo6rG07KKFDQor7LCo6rK97LacDQor7LCo7LaY7IicDQor7LCo7KCV7J21DQor7LCo66+464+ZDQor7LCo6rK97IiYDQor7LCo7LaY7Zi4DQor7LCo7Iug66eMDQor7LCo7LKg7IiYDQor7LCo6rWs6rCVDQor7LCo7L6M7JW8DQor7LCo66yY7LacDQor7LCo65GQ7LacDQor7LCo7IOB642VDQor7LCo7YOc7ISgDQor7LCo7J2A7ISgDQor7LCo7KKF7KGwDQor7LCo7YOc7IStDQor7LCo7YOc7KeEDQor7LCo66y07LKgDQor7LCo7LC97J6QDQor7LCo7IOB7Je0DQor7LCo7YyQ7IiYDQor7LCo7ISg6re8DQor7LCo7IOB6rCRDQor7LCo7Jqw7ZGcDQor7LCo7ZWE7IOBDQor7LCo7ISx7IicDQor7LCo7ISd7IudDQor7LCo6ri47Z2sDQor7LCo7ZWE7JqpDQor7LCo7KCV7ZiEDQor7LCo7KKF7ZiEDQor7LCo6rec65OdDQor7LCo7ZWc7JqpDQor7LCo7IK87IudDQor7LCo7KKF7JWEDQor7LCo7KCV7KGwDQor7LCo7ZWc7LKcDQor7LCo7LKg7KGwDQor7LCo7IiY7ZuIDQor7LCo7ISx7JqpDQor7LCo7ZWc7LacDQor7LCo7LC97JuQDQor7LCo7Zi47ZmUDQor7LCo7ISx64KoDQor7LCo7ZW07IStDQor7LCo7IOB6rSRDQor7LCo6rOk7IiZDQor7LCo67OR7J20DQor7LCo7Zi47IStDQor7LCo67O17IicDQor7LCo7YOc7Z2sDQor7LCo64W47ZmYDQor7LGE6rK97KSADQor7LGE7ISx6recDQor7LGE66y07LKcDQor7LGE7IOB7ZiEDQor7LGE6rWw66y1DQor7LGE64+Z7LacDQor7LGE7IOB7JiBDQor7LGE7Jil7ZmYDQor7LGE6rec7ZWZDQor7LGE7KKF7JqxDQor7LGE7ISd7IOBDQor7LGE6rSR7LCoDQor7LGE64W47ISdDQor7LGE7KKF7Zi4DQor7LGE64Ko7YOcDQor7LGE7J6s7ISdDQor7LGE66+87KSADQor7LGE66eM7JilDQor7LGE7KCV7ISdDQor7LGE7KCV7JuQDQor7LGE7JiB7Z2sDQor7LGE642V7ISdDQor7LGE66qF66GADQor7LGE7Jyk64KoDQor7LGE7Jyk642VDQor7LGE7ISd7ZmUDQor7LGE7ZmY7J6QDQor7LGE6rec7KO8DQor7LGE7J2866eMDQor7LGE7JiB7ZmYDQor7LGE7ZWY7J6QDQor7LGE7YOc7Je0DQor7LGE7KCV7JiBDQor7LGE66eQ64+EDQor7LGE7ZiE7J6QDQor7LGE7Zi46riwDQor7LGE7KKF66WgDQor7LGE7LKg6rK9DQor7LGE7KKF7KeEDQor7LGE7Iic7IiYDQor7LGE7KKF7JygDQor7LGE7Jqw6riwDQor7LGE6rec6re8DQor7LGE7Lmg7IiYDQor7LGE7KeE7JqwDQor7LGE7J6s7J6EDQor7LGE7ZmN7ISxDQor7LGE7IOB7Zi4DQor7LGE7LCo6rCRDQor7LGE7ISd7IudDQor7LGE64yA66qpDQor7LGE67OR67CwDQor7LGE7ZWc7IudDQor7LGE6ri46rWQDQor7LGE7ZmN67SJDQor7LGE7J24656YDQor7LKc6rK97JqpDQor7LKc7Iic64KoDQor7LKc6rSR6recDQor7LKc7JiB6recDQor7LKc6rK97Zi4DQor7LKc7ISx7IigDQor7LKc7Jqp66OhDQor7LKc6rK97ISdDQor7LKc67Cw7JiBDQor7LKc7JiB6rG0DQor7LKc6riI7JikDQor7LKc7YOc6rWsDQor7LKc7Jqw7JiBDQor7LKc7YOc7IiZDQor7LKc7J6s7ZmYDQor7LKc7Ja466GADQor7LKc7Jqw7YOcDQor7LKc7YOc7JqpDQor7LKc7JiB6re5DQor7LKc7Jqw7ZmYDQor7LKc7J6s6re8DQor7LKc7J207IiYDQor7LKc7Jyk6riwDQor7LKc67SJ7ZiEDQor7LKc7J6s7IudDQor7LKc7Jq0642VDQor7LKc7J2A7IiYDQor7LKc7LKc7Zi4DQor7LKc7YOc7KKFDQor7LKc7JuQ7JqpDQor7LKc7JiB7JuQDQor7LKc7IOB7IicDQor7LKc7Zi46regDQor7LKc7Jqp7YOdDQor7LKc7IiY7J20DQor7LKc7LKg7Z2sDQor7LWcIOqxtA0KK+y1nOqwkeuwsA0KK+y1nOygleyngA0KK+y1nOyYge2ZmA0KK+y1nCDqsbQNCivstZzrgqjstpgNCivstZztmJztnawNCivstZzqsr3tm4gNCivstZwg7IOBDQor7LWc7Jik7JWEDQor7LWc6riw66eMDQor7LWc67OR7IudDQor7LWcIOycpA0KK+y1nOyaqeyjvA0KK+y1nOynhOynhA0KK+y1nOyEseyduA0KK+y1nOqwkeuPmQ0KK+y1nOyasOu2lQ0KK+y1nOygleybkA0KK+y1nOyaqeyYpQ0KK+y1nOqwkeyyoA0KK+y1nOyEuOyImQ0KK+y1nOyCvOq2jA0KK+y1nOuvuOyImA0KK+y1nOqyveuPmQ0KK+y1nO2ZjeyEnQ0KK+y1nOygleyVoA0KK+y1nOyEneuwsA0KK+y1nOqyveyErQ0KK+y1nOyEoOy2nA0KK+y1nOyiheqwkQ0KK+y1nOq1sO2YhA0KK+y1nOqyveyInA0KK+y1nOyDge2YgQ0KK+y1nO2VtOq4uA0KK+y1nOq4sOyaqQ0KK+y1nOqyveyVoA0KK+y1nOygleuztQ0KK+y1nOygle2DnA0KK+y1nOyiheyLnQ0KK+y1nOqyveyYpQ0KK+y1nOyYgeqyvQ0KK+y1nOunjOyjvA0KK+y1nOyEseyhsA0KK+y1nOqyveydvA0KK+y1nOyGkOyZhA0KK+y1nOuNle2YuA0KK+y1nOybkOuPmQ0KK+y1nOqyveyekA0KK+y1nOq3vOuTnQ0KK+y1nOuzkeyImA0KK+y1nOyDgeyhsA0KK+y1nOqyveyekA0KK+y1nOyerOyLnQ0KK+y1nOyjvOydtA0KK+y1nOunjO2ZlA0KK+y1nOqyveywvQ0KK+y1nOycpO2DnA0KK+y1nOyEseyIoA0KK+y1nOyepeyaqQ0KK+y1nOqyvey5oA0KK+y1nO2DnOyasQ0KK+y1nOq4iOqzpA0KK+y1nO2DnO2YgQ0KK+y1nOqyvey5oA0KK+y1nO2drOycoA0KK+y1nOyDge2YuA0KK+y1nOyEneydtA0KK+y1nOqyve2YuA0KK+y1nOydhOy2nA0KK+y1nOykkeyaqQ0KK+y1nOyDgeyEnQ0KK+y1nOqyve2ZmA0KK+y1nOyDgeyXtA0KK+y1nOq4iO2YuA0KK+y1nOqwle2VmQ0KK+y1nOqyve2biA0KK+y1nOyInOyasA0KK+y1nOqyveyImA0KK+y1nOuNleydtA0KK+y1nOqyve2drA0KK+y1nOyihe2YuA0KK+y1nO2VnOq3vA0KK+y1nOyatOyEnQ0KK+y1nOqzpOydtA0KK+y1nOyerO2YuA0KK+y1nOyduOyLnQ0KK+y1nOyDgeyasA0KK+y1nOq0keyLnQ0KK+y1nO2VhOyInA0KK+y1nOydvOyImA0KK+y1nOq0keyImQ0KK+y1nOq0keyehA0KK+y1nOyCvOuCqA0KK+y1nOu0ieyEnQ0KK+y1nOuLrOyasA0KK+y1nOq0keyyoA0KK+y1nO2DnO2YuA0KK+y1nOuPme2YuA0KK+y1nOq1kOyEoA0KK+y1nOq1reugrA0KK+y1nOyKueyInA0KK+y1nOyerOqyvQ0KK+y1nOyDge2YuA0KK+y1nOq1reynhA0KK+y1nOyduOyInA0KK+y1nOq4sOuemA0KK+y1nOydvOyXsA0KK+y1nOq1reyyoA0KK+y1nOyaqey2nA0KK+y1nOq4sOuwsA0KK+y1nOydmOyImA0KK+y1nOq3gOqzpA0KK+y1nOuLrOyLnQ0KK+y1nOyaqeyXsA0KK+y1nOyaqeuztQ0KK+y1nOq3gOyjvA0KK+y1nOyiheq3oA0KK+y1nOyehOqxtA0KK+y1nO2drO2drA0KK+y1nOq3nOunjA0KK+y1nO2ZmO2YuA0KK+y1nOydteydtA0KK+y1nOyYgeuCqA0KK+y1nOq3nOuzkQ0KK+y1nOygle2YhA0KK+y1nOuzkeunjA0KK+y1nOyYgeq3vA0KK+y1nOq3nOyEnQ0KK+y1nOyDge2YuA0KK+y1nOuPmeyYgQ0KK+y1nOynhOqzpA0KK+y1nOq3nOywrA0KK+y1nOyLnOyImA0KK+y1nOywve2ZmA0KK+y1nOykkeuPmQ0KK+y1nOq3nO2DnA0KK+y1nOynhOq3gA0KK+y1nOyerOyhsA0KK+y1nOy5oOq4sA0KK+y1nOq3ueyaqQ0KK+y1nOq4sOyInA0KK+y1nOyEseyYgQ0KK+y1nOygkOyglQ0KK+y1nOq3vOuqqA0KK+y1nOyYgeyekA0KK+y1nOuzke2YhA0KK+y1nOuzke2ZmA0KK+y1nOq4iOuPjA0KK+y1nOykgOunjA0KK+y1nO2YuOyatA0KK+y1nOqwke2ZjQ0KK+y1nOq4iOyEoA0KK+y1nOyImeyLnQ0KK+y1nOuzkeuwsA0KK+y1nO2YhOyImA0KK+y1nOq4iOydtA0KK+y1nOu0ieyglQ0KK+y1nOu0ieu0iQ0KK+y1nOyEuOqzpA0KK+y1nOq4sOunjA0KK+y1nOyEseudvQ0KK+y1nOuPiOyImA0KK+y1nOyerO2YhA0KK+y1nOq4sOusuA0KK+y1nOygleqzpA0KK+y1nOyatO2YuA0KK+y1nOydtOyaqQ0KK+y1nOq4sOyEsQ0KK+y1nOyYge2YuA0KK+y1nOq4sOyVlA0KK+y1nOyerOyEnQ0KK+y1nOq4sOybkA0KK+y1nOy5mOyImA0KK+y1nOu2gOyLnQ0KK+y1nOuNleyEoA0KK+y1nOq4sO2ZmA0KK+y1nO2VtO2drA0KK+y1nOyYge2YhA0KK+y1nOu0ieuPmQ0KK+y1nOq4uOuPmQ0KK+y1nOuPmeyImA0KK+y1nOyerO2ZmA0KK+y1nOynhOq3nA0KK+y1nOq4uOuvuA0KK+y1nOykkeyXtA0KK+y1nOuzke2DnQ0KK+y1nOqwkeyImA0KK+y1nOq4uOyaqQ0KK+y1nOydtOyehA0KK+y1nO2YhOunjA0KK+y1nOykkeykgA0KK+y1nOuCmeusuA0KK+y1nOywveyXtA0KK+y1nOyiheq3nA0KK+y1nOq2jOybkA0KK+y1nOuCmeyduA0KK+y1nOuqhe2YhA0KK+y1nOuzke2ZmA0KK+y1nOyEseycoA0KK+y1nOuCnOyEoA0KK+y1nOyGjOyLnQ0KK+y1nOuFuOq1sA0KK+y1nO2YhOydvA0KK+y1nOuCqOybkA0KK+y1nO2VtOq4sA0KK+y1nOuzkeuTnQ0KK+y1nOynhO2DnQ0KK+y1nOuCqOydtA0KK+y1nOuzteq3oA0KK+y1nOy2mOyyoA0KK+y1nO2drO2drA0KK+y1nOuCqOyglQ0KK+y1nO2DnO2drA0KK+y1nOyerOyEpA0KK+y1nOygkOyLnQ0KK+y1nOuCqOyhsA0KK+y1nOycoO2drA0KK+y1nOyDgeyerA0KK+y1nOqyveyEoA0KK+y1nOuCqOyyoA0KK+y1nOygle2DnA0KK+y1nO2YuOyaqQ0KK+y1nOyDgeuztQ0KK+y1nOuCqO2drA0KK+y1nOyInOyImA0KK+y1nOq4iOydtA0KK+y1nOydvOyImA0KK+y1nOuCtOyCvA0KK+y1nOyaqe2drA0KK+y1nOyDgeykgA0KK+y1nOy2mOyyoA0KK+y1nOuMgOqzpA0KK+y1nOyYgeyVhA0KK+y1nOq4sOq3vA0KK+y1nOq3gO2ZmA0KK+y1nOuMgOybhQ0KK+y1nO2VtOyYgQ0KK+y1nOydvOuNlQ0KK+y1nOustO2ZlA0KK+y1nOuMgOyihQ0KK+y1nOydmOq1rQ0KK+y1nOq3vOuLrA0KK+y1nOqwley2mA0KK+y1nOuMgO2ZmA0KK+y1nOyYgeyImA0KK+y1nOyGjO2XjA0KK+y1nOuzke2VnA0KK+y1nOuNleyInA0KK+y1nO2VmeyLnQ0KK+y1nOq4sOyglQ0KK+y1nOuhneyglQ0KK+y1nOuPiOqzpA0KK+y1nOyDge2ZmA0KK+y1nOyaqeq4sA0KK+y1nO2DnOydvA0KK+y1nOuPiO2XjA0KK+y1nOydvO2PrA0KK+y1nO2VnOyLoA0KK+y1nOu2hOunjA0KK+y1nOuPmeqxtA0KK+y1nOyatOq3nA0KK+y1nOyihe2biA0KK+y1nOyDge2YuA0KK+y1nOuPmeq1rQ0KK+y1nOqxtOusuA0KK+y1nOyerOyImQ0KK+y1nOycpO2ZmA0KK+y1nOuPmeq4sA0KK+y1nOqyveuhnQ0KK+y1nOyKueyImQ0KK+y1nOq3gOu2hA0KK+y1nOuPmeq4uA0KK+y1nO2DnOyLnQ0KK+y1nOyerOqyvQ0KK+y1nOyekO2YuA0KK+y1nOuPmeuqqQ0KK+y1nOycoOuztQ0KK+y1nOyYge2ZmA0KK+y1nOyDgeyEsQ0KK+y1nOuPmeyEnA0KK+y1nOyasOyyoA0KK+y1nOyduOydtA0KK+y1nOygleydtA0KK+y1nOuPmeyIoA0KK+y1nOywve2ZmA0KK+y1nOq4sO2ZjQ0KK+y1nOyEneyIoA0KK+y1nOuPmeyLnQ0KK+y1nOygleyInA0KK+y1nOyZuOq3vA0KK+y1nOybkOyImQ0KK+y1nOuPmeyasQ0KK+y1nOq4uOuegA0KK+y1nOyiheyekA0KK+y1nCDsmrQNCivstZzrj5nso7wNCivstZzrhYTrrLgNCivstZzquLDtg5wNCivstZzsg4HruYgNCivstZzrj5nspIANCivstZzqsJHsiJwNCivstZzqsr3tmLgNCivstZztlbTsobANCivstZzrj5nsp4QNCivstZzsmrDqs6QNCivstZzsiJjsiJgNCivstZztl4zquLANCivstZzrj5nsp4QNCivstZzquLDqtawNCivstZzsnqztnaANCivstZzsg4HrnpgNCivstZzrj5nstpgNCivstZzsmIHtnawNCivstZzsmqnsnbwNCivstZzsmKTsoJUNCivstZzrj5ntmLgNCivstZzsg4Hsi50NCivstZzsg4Hsp4QNCivstZzqsr3stpgNCivstZzrj5ntmY0NCivstZzsmqnsnbQNCivstZzrj5nsiJgNCivstZzso7zqsJENCivstZzrj5ntmZQNCivstZzssL3rrLgNCivstZzsmKXsl7QNCivstZzsoJDtlbQNCivstZzrj5ntm4gNCivstZzsooXtmZgNCivstZzsiJzqsJENCivstZzsnqztmLgNCivstZzrkZDquLANCivstZztnaztjJANCivstZzsg53tlbQNCivstZzshLHssqANCivstZzrkZDsl7QNCivstZzsnqzsobANCivstZzsmIHsp4QNCivstZzsooXsm4UNCivstZzrkZDsm5ANCivstZztmZjsm5ANCivstZztg5zslaANCivstZzrr7jsi6wNCivstZzrkZDtmJUNCivstZzsp4TrrLgNCivstZzssKjsnbQNCivstZzsg4HtmZgNCivstZzroKTtmIQNCivstZzqt5ztg50NCivstZzsnbTsiJwNCivstZzrrJjshJ0NCivstZzrp4jsmqkNCivstZztmLjrj5kNCivstZzsmIHrj4QNCivstZwg66CoDQor7LWc66eM6raMDQor7LWc7YyQ6recDQor7LWc7IiY65GQDQor7LWc67SJ6rK9DQor7LWc66eM64+EDQor7LWc6rWQ7Z2sDQor7LWc66qF7KeEDQor7LWc7KSA7Z2gDQor7LWc66eM64+MDQor7LWc7KSA7JuQDQor7LWc67OR6recDQor7LWc7ZW06rWsDQor7LWc66eM7J6sDQor7LWc7IaM7IiYDQor7LWc7KKF6raMDQor7LWc7KCV7KGwDQor7LWc66eQ7ISdDQor7LWc64+Z7ZuIDQor7LWc7IOB7IicDQor7LWc7YOc66y4DQor7LWc66eQ7ISgDQor7LWc67OR7KSRDQor7LWc7J6s7ZmYDQor7LWc66y07Zi4DQor7LWc66eQ7ISgDQor7LWc7Jm47Zi4DQor7LWc7Jyk7JqpDQor7LWc7J6s7IiYDQor7LWc66eQ7ISgDQor7LWc7Jqp6riwDQor7LWc6re87JiBDQor7LWc7ISd7KeEDQor7LWc66qF6rWsDQor7LWc7J6s7IicDQor7LWc7Jyk7IiZDQor7LWc7J6s7IiYDQor7LWc66qF6re8DQor7LWc67SJ6recDQor7LWc7Iuc7IOBDQor7LWc7LC97IiYDQor7LWc66qF6riwDQor7LWc7ISx6riIDQor7LWc7J6s6rK9DQor7LWc6riw7IiYDQor7LWc66qF6ri4DQor7LWc7J247ZWcDQor7LWc7Jyk7JqpDQor7LWc7IK87ZmYDQor7LWc66qF6ri4DQor7LWc7ISx64yADQor7LWc66eM67aEDQor7LWc66eQ7Z2sDQor7LWc66qF642VDQor7LWc7IOB6riwDQor7LWc67OR6recDQor7LWc7KKF7ZmYDQor7LWc66qF656ADQor7LWc7Jew7KGwDQor7LWc7Jqp6regDQor7LWc7KeE6re8DQor7LWc66qF66OhDQor7LWc7Jqw7IudDQor7LWc7YOc6riIDQor7LWc7JiB7JmEDQor7LWc66qF7ISgDQor7LWc7ZaJ67SJDQor7LWc656A7Zi4DQor7LWc64us656YDQor7LWc66qF7IigDQor7LWc7IiZ7Z2sDQor7LWc7IiY7ISxDQor7LWc7JiB64KoDQor7LWc66qF7JuQDQor7LWc7J247ISxDQor7LWc7JiB64+ZDQor7LWc67aA7LKcDQor7LWc66qF7ZmUDQor7LWc7J2166y4DQor7LWc7LKc7IudDQor7LWc7J2Y7IudDQor7LWc66q96riwDQor7LWc7Jy17Z2sDQor7LWc6rOk7ZmUDQor7LWc7JiB7KKFDQor7LWc66y07KCVDQor7LWc7IOB7KSRDQor7LWc7JiB7KeEDQor7LWc65GQ67CwDQor7LWc66y07ZiEDQor7LWc7KSR7IiYDQor7LWc6rCR7IicDQor7LWc7J286rCBDQor7LWc66y467O1DQor7LWc7IK87LKgDQor7LWc7YOc6riwDQor7LWc6riw7ZiVDQor7LWc66y47ISdDQor7LWc7ISg6riwDQor7LWc7Zqo6riwDQor7LWc7J6l7LKgDQor7LWc66y47IStDQor7LWc7IOB7IicDQor7LWc7KKF7Z2sDQor7LWc7JWU7Zi4DQor7LWc66y47J6sDQor7LWc7IiY67CwDQor7LWc6rSR7IiZDQor7LWc7JuU7JewDQor7LWc66+47ISxDQor7LWc7ZW07J24DQor7LWc6rSR7IiYDQor7LWc7JiB7J24DQor7LWc66+47IiZDQor7LWc7KKF66+8DQor7LWc7Jqp7J6EDQor7LWc7KO87Zi4DQor7LWc66+87Z2sDQor7LWc7ZWE7LKgDQor7LWc6rCR67O1DQor7LWc7L6M7Je0DQor7LWc67KU7JqpDQor7LWc7YyQ656YDQor7LWc7Iic7ZmNDQor7LWc66eM7IS4DQor7LWc67KU7KO8DQor7LWc7JiB7Z2sDQor7LWc7KKF7Z2sDQor7LWc7LC97Zi4DQor7LWc67OR6recDQor7LWc7LKg7LKgDQor7LWc7KKF7J6EDQor7LWc6rCA7ZeMDQor7LWc67OR6ri4DQor7LWc66qF7Zi4DQor7LWc7LCo7KO8DQor7LWc7JiB7LSMDQor7LWc67OR6ri4DQor7LWc7LaY6rG0DQor7LWc7IOB7KeEDQor7LWc7ISx7J6EDQor7LWc67OR6ri4DQor7LWc7JiB7Z2sDQor7LWc7YOc67SJDQor7LWc7YOc6rSRDQor7LWc67OR64u0DQor7LWc7IS464KoDQor7LWc67OR7ZmYDQor7LWc7IS46rOkDQor7LWc67OR7IiYDQor7LWc7Jik7IiYDQor7LWc6rCR7JqxDQor7LWc7KCV6rWQDQor7LWc67OR7IiYDQor7LWc7J6s6rWsDQor7LWc7JiB6rWsDQor7LWc6riI6rK9DQor7LWc67OR7IiYDQor7LWc6rO17Zi4DQor7LWc7LaY656YDQor7LWc7LC97JqwDQor7LWc67OR7IigDQor7LWc66eM7KCVDQor7LWc7Zi47JewDQor7LWc7LaY7IOBDQor7LWc67OR7JWUDQor7LWc6rWs7ZuIDQor7LWc6rCR7IiYDQor7LWc7J6s67O1DQor7LWc67OR7Je0DQor7LWc64yA6riwDQor7LWc66y06riwDQor7LWc7Jqp6ri4DQor7LWc67OR7JikDQor7LWc6rOE7KSRDQor7LWc7KeE7JqwDQor7LWc7JiB7JqpDQor7LWc67OR7Jq0DQor7LWc7YOc7JiBDQor7LWc67O16rWQDQor7LWc67O07YOcDQor7LWc67OR7KO8DQor7LWc7J6s6riwDQor7LWc67KU7ZiEDQor7LWc7Iug7YOdDQor7LWc67OR7KSADQor7LWc7ZmU7Je0DQor7LWc7J2Y7Z2sDQor7LWc7KKF66eMDQor7LWc67OR7LCsDQor7LWc6rec7KGwDQor7LWc7IiY66y1DQor7LWc7JiB7Je0DQor7LWc67OR7LCsDQor7LWc7IOB6recDQor7LWc64yA7YOdDQor7LWc7LC97JqwDQor7LWc67OR7LKgDQor7LWc7ZW07ZuIDQor7LWc67O07IudDQor7LWc7IOB7JikDQor7LWc67OR7LKgDQor7LWc7ZiE7KSADQor7LWc6rec7ISxDQor7LWc7KCV6rSADQor7LWc67OR7YOdDQor7LWc7Z2l7LaUDQor7LWc7J28656ADQor7LWc64yA7JewDQor7LWc67OR7ZWEDQor7LWc64KZ7IiZDQor7LWc7Iq56rSADQor7LWc6rK97JqpDQor7LWc67OR7ZWYDQor7LWc7KSR64+EDQor7LWc7J2Y67KUDQor7LWc7YOc7J6QDQor7LWc67OR7ZmYDQor7LWc7IOB7IiYDQor7LWc7LaY7LKcDQor7LWc7LCo7Zi4DQor7LWc67O06re8DQor7LWc7JiB7IStDQor7LWc7ISx7IiYDQor7LWc6riw7Y+JDQor7LWc67O1656ADQor7LWc67OR7JykDQor7LWc7Iic7JilDQor7LWc7Iq57ZiEDQor7LWc67O166CoDQor7LWc7J2E7IicDQor7LWc7JiB7ZiEDQor7LWc7ISx66qFDQor7LWc67O17IicDQor7LWc64+E7KGwDQor7LWc7LKg7KGwDQor7LWc7IiY7LKcDQor7LWc67O17JewDQor7LWc7ZW07IStDQor7LWc64+E7JewDQor7LWc7J6E7KGwDQor7LWc67O17JiBDQor7LWc7KCQ7J20DQor7LWc7KKF7IiYDQor7LWc7ISx6re8DQor7LWc67O17JqpDQor7LWc6rSR6rCRDQor7LWc7Jqp7JqpDQor7LWc7J6l7KeEDQor7LWc67O17LacDQor7LWc7Iic7JqpDQor7LWc7Zqo6ri4DQor7LWc7JiB7IudDQor7LWc67O17Zi4DQor7LWc7JiB7Zy0DQor7LWc7ISd7Jq0DQor7LWc7Jqp7IiYDQor7LWc67SJ6raMDQor7LWc7ISd7YOdDQor7LWc7ZuI7JiBDQor7LWc7Jqp7Z2sDQor7LWc67SJ7ISgDQor7LWc7KKF6riwDQor7LWc64uk7ZiEDQor7LWc7Z2l66+8DQor7LWc67SJ7ZqoDQor7LWc64+Z7Zi4DQor7LWc7ZyY7IiYDQor7LWc66y0642VDQor7LWc67SJ7Z2sDQor7LWc7Jyk6rK9DQor7LWc7KKF7IiYDQor7LWc7KCV7JqpDQor7LWc67aA7IudDQor7LWc7KKF67O1DQor7LWc7J6s7Z2sDQor7LWc64Ko64usDQor7LWc67aE64KoDQor7LWc7YOc6recDQor7LWc67O17Z2sDQor7LWc7LCs7YOcDQor7LWc67aE7ISgDQor7LWc7JiB6rCRDQor7LWc7J6s6rWtDQor7LWc67aE7ZiEDQor7LWc67aE7JilDQor7LWc7ZiE7KKFDQor7LWc64Ko7JiBDQor7LWc7JiB7ZeMDQor7LWc67aE7J20DQor7LWc64Ko7ZW0DQor7LWc7YOc7Zi4DQor7LWc7ZyY7ZqoDQor7LWc7IK867O1DQor7LWc7ISx642VDQor7LWc6riw7IigDQor7LWc7Iq56ri4DQor7LWc7IK87IicDQor7LWc7KCV7LacDQor7LWc7KCV7JuQDQor7LWc6rec7JqxDQor7LWc7IK87JqpDQor7LWc7ZWZ7ISgDQor7LWc7KCV7JilDQor7LWc7KCV7KGwDQor7LWc7IK87KGwDQor7LWc7ZiV7KCVDQor7LWc6rSA7KeEDQor7LWc66qF7JuQDQor7LWc7IK87Z2sDQor7LWc66qF7ISkDQor7LWc64yA7IicDQor7LWc7ISd7KeADQor7LWc7IOB6rOkDQor7LWc7J6s7JikDQor7LWc67OR7J6sDQor7LWc67OR7JilDQor7LWc7IOB6regDQor7LWc6riw6rOkDQor7LWcIOyLnQ0KK+y1nOq1kOybhQ0KK+y1nOyDgeq4sA0KK+y1nOusuOu2hA0KK+y1nOyXsOyImA0KK+y1nO2aqOyDnQ0KK+y1nOyDgeuRkA0KK+y1nOybkOq1rA0KK+y1nOq3nOynhA0KK+y1nOuzkeyyoA0KK+y1nOyDgeumvA0KK+y1nO2DnOyCvA0KK+y1nO2YuOq1kA0KK+y1nO2MkOyInA0KK+y1nOyDgeumvA0KK+y1nOyiheyhsA0KK+y1nOusuO2YuA0KK+y1nOyYgeyLnQ0KK+y1nOyDgeumvA0KK+y1nOqwleq1rA0KK+y1nOyImOyatA0KK+y1nOqyveyglQ0KK+y1nOyDgeustA0KK+y1nOuPhO2ZmA0KK+y1nOyduO2drA0KK+y1nOyZuOynhA0KK+y1nOyDgeuwsQ0KK+y1nOygleq3vA0KK+y1nOunkOy5mA0KK+y1nOu0ieq3nA0KK+y1nOyDgeyEnQ0KK+y1nO2DnO2ZmA0KK+y1nOyDgeq3oA0KK+y1nOyiheyhsA0KK+y1nOyDgeyImQ0KK+y1nO2MkOyLnQ0KK+y1nO2VnOq3nA0KK+y1nOyiheq2jA0KK+y1nOyDgeyXtA0KK+y1nOyepeq1rA0KK+y1nOyngO2ZmA0KK+y1nOyaqeyLnQ0KK+y1nOyDgeyYgQ0KK+y1nOykke2YuA0KK+y1nOybkO2ZmA0KK+y1nOuztOyLnQ0KK+y1nOyDgeydtA0KK+y1nOyMjeyEoA0KK+y1nCDtg5wNCivstZztg5zsl7QNCivstZzsg4HsooUNCivstZzsnZjquLANCivstZzshLHrjZUNCivstZzshKDsi6QNCivstZzsg4HtmLgNCivstZzrjIDsmqkNCivstZzsgqzqt7wNCivstZzsoJDsmqkNCivstZzsg4HtmLgNCivstZzsg4HsiJgNCivstZzsnbTtmY0NCivstZzshLHsm5ANCivstZzsg4HtmLgNCivstZzshJ3snpANCivstZzquLjtmLgNCivstZztg5zsi50NCivstZzsg4HtmZgNCivstZzqsr3tmZgNCivstZzrrLTsmrQNCivstZzsg4HsiJgNCivstZzsg4HtmZgNCivstZzshLjsobANCivstZzrs5HrqqgNCivstZzrk53rtIkNCivstZzsg4Htm4gNCivstZzsmqnrrLgNCivstZzsi6DshK0NCivstZzsg4HrjZUNCivstZzshJ3qtIANCivstZzso7zsmrENCivstZzrjIDso7wNCivstZzrs5HquLANCivstZzshJ3qtJENCivstZzrqoXrsLANCivstZztlZztnawNCivstZzrk53sl7QNCivstZzshJ3qt7wNCivstZzshLHtg5wNCivstZzshLHshJ0NCivstZzsmqntg4ENCivstZzshJ3rqoUNCivstZzsg4Hqsr0NCivstZzspJHsobANCivstZzsmIHsiJgNCivstZzshJ3rrLgNCivstZzsnKDsnpANCivstZzqtJHtmLgNCivstZzsg4HsnqwNCivstZzshJ3rsLANCivstZzquIjqt5wNCivstZzsoJXsiJgNCivstZzsmrDshK0NCivstZzshJ3smKQNCivstZzshLjtmY0NCivstZzsmIHsl7QNCivstZzsiJjquIgNCivstZzshJ3snqwNCivstZzsmIHsiKANCivstZzshJ3soJUNCivstZzqtazsp4QNCivstZzshJ3ssqANCivstZztlZzsmqkNCivstZzsnqztl4wNCivstZzrr7jsiJgNCivstZzshJ3ssqANCivstZzsg4HqsJENCivstZzspIDsnbQNCivstZzsmqnsi50NCivstZzshJ3tl4wNCivstZzsnbzqsr0NCivstZzspJHshJ0NCivstZzrqoXsp4QNCivstZzshJ3tl4wNCivstZzsmqnqsbQNCivstZzsg4HtnLQNCivstZzsnZjsooUNCivstZzshJ3tmLgNCivstZzqtozroZ0NCivstZzsnYTsp4QNCivstZzsg4HsnpANCivstZzshKDqt5wNCivstZzsm5TssKwNCivstZzshLHqta0NCivstZzrspTqt6ANCivstZzshKDsnbQNCivstZzquIjtnawNCivstZzsiJjsl7ANCivstZzsnZjsl7QNCivstZzshKDtnawNCivstZzqsr3so7wNCivstZzsoJXqtowNCivstZzrspTtmZQNCivstZzshLHqsr0NCivstZzrr7jtmLgNCivstZzrs5HrnpgNCivstZzsm5Dqt7wNCivstZzshLHqs6QNCivstZzqsr3rj4wNCivstZzsoJDspIANCivstZzsnqzsiJgNCivstZzshLHqtIANCivstZzrs5HshLENCivstZzsmIHsmqkNCivstZzsooXtl4wNCivstZzshLHqtawNCivstZzshKDsmYQNCivstZzsoJXrqqkNCivstZzsoJXsl7QNCivstZzshLHqt5wNCivstZzshLHspIANCivstZzrjZXsiJwNCivstZzrr7jtlZwNCivstZzshLHqt5wNCivstZzsmqnsnpANCivstZzrj5nsl7QNCivstZzrgqjsnbwNCivstZzshLHqt5wNCivstZzqt5zsi50NCivstZzsnqzsi50NCivstZzsnqzrkZANCivstZzshLHqt5wNCivstZztnazsmrANCivstZzsmIHstpwNCivstZzsm5DquLANCivstZzshLHrjIANCivstZzsmIHsmqkNCivstZztl4zssqANCivstZzstpjsmqkNCivstZzshLHrjIANCivstZzsnITsnKQNCivstZzqt5zrj4gNCivstZzshLHsmqkNCivstZzshLHrjZUNCivstZzrjIDtmZgNCivstZzsm5TsmqkNCivstZztg5zqt7wNCivstZzshLHrj5kNCivstZzspIDqt7wNCivstZzso7zssqANCivstZzsoJXsp4QNCivstZzshLHro6ENCivstZzrspTrprwNCivstZzrgqjtmLgNCivstZzsp4TrnpgNCivstZzshLHrrLgNCivstZztlZzssqANCivstZzsooXshK0NCivstZzspIDsi50NCivstZzshLHrr7wNCivstZzsmIHtmIQNCivstZztl4zsiJgNCivstZzqt5zshJ0NCivstZzshLHrtIkNCivstZzsnpDrgqgNCivstZzsoJXtlqUNCivstZzshLHsiJkNCivstZzshLHsiJgNCivstZzqta3ssqANCivstZwg7ZiBDQor7LWc7Iq56riwDQor7LWc7ISx7Je0DQor7LWc66eQ7JqpDQor7LWc7KCV642VDQor7LWc7YyU7ZmUDQor7LWc7ISx7Je0DQor7LWc7YOc7KKFDQor7LWc7J217Zi4DQor7LWc7Iq57IStDQor7LWc7ISx7Je0DQor7LWc7L6M7KSADQor7LWc7Iq57J6EDQor7LWc7J6s7ZiEDQor7LWc7ISx7JqpDQor7LWc7J6s7J6QDQor7LWc7KCV7J6sDQor7LWc66qF7KSADQor7LWc7ISx7JqxDQor7LWc7Jqx7ZmUDQor7LWc7YOc7IiYDQor7LWc64yA7Zi4DQor7LWc7ISx7Jq0DQor7LWc6re87J20DQor7LWc7J6s6raMDQor7LWc7IOB7ZmNDQor7LWc7ISx7JuQDQor7LWc7ISx7JewDQor7LWc67O064W4DQor7LWc7ZW07Je0DQor7LWc7ISx7JuQDQor7LWc7KCV7YOdDQor7LWc7KKF67SJDQor7LWc7KCV7ZuIDQor7LWc7ISx7J6sDQor7LWc67Cp7J6QDQor7LWc7YOc7Zi4DQor7LWc7YOc7KCcDQor7LWc7ISx7J6sDQor7LWc7KKF64+EDQor7LWc7YyQ7IudDQor7LWc6re87IicDQor7LWc7ISx7KGwDQor7LWc7J6s7KeEDQor7LWc7IK87J28DQor7LWc7KCV7JqpDQor7LWc7ISx7KSADQor7LWc66y07ISdDQor7LWc7ZWZ6rG0DQor7LWc6rCR7KGwDQor7LWc7ISx7YOBDQor7LWc64us7ZWYDQor7LWc7J6s7ZqoDQor7LWc67OR7Z2sDQor7LWc7ISx7YOcDQor7LWc7KCV7KKFDQor7LWc7KSR7Ja4DQor7LWc7J2064+ZDQor7LWc7ISx7YOcDQor7LWc64+Z7KO8DQor7LWc7J6s7KGwDQor7LWc64+Z7J24DQor7LWc7ISx7YOdDQor7LWc7ISd67CwDQor7LWc7ZiV6rWsDQor7LWc7ZmY7JqpDQor7LWc7ISx7ZiEDQor7LWc7Iig6recDQor7LWc7Zi467CwDQor7LWc7Iic6riwDQor7LWc7ISx7Zi4DQor7LWc7LaY7ZmNDQor7LWc7KeE6rK9DQor7LWc7JiB66y4DQor7LWc7ISx7Zi4DQor7LWc6rK966y4DQor7LWc7ZmU7ISdDQor7LWc7J2A7Zy0DQor7LWc7ISx7ZmUDQor7LWc66eQ7LacDQor7LWc7KeE7JqpDQor7LWc7Zi47ZWYDQor7LWc7ISx7ZmUDQor7LWc64+Z7IiYDQor7LWc7ISx642VDQor7LWc7LCo67O1DQor7LWc7ISx7ZmYDQor7LWc7ISg7IiYDQor7LWc7ISx7JykDQor7LWc7J6s6rWsDQor7LWc7ISx7ZuIDQor7LWc7ISd7JqpDQor7LWc64+Z7Zi4DQor7LWc66y07Zi4DQor7LWc7IaM64+EDQor7LWc7ISd7JilDQor7LWc6rCR7Zi4DQor7LWc7ZmN7JqpDQor7LWc7IaM64+EDQor7LWc7KKF7JeFDQor7LWc66y06riwDQor7LWc7ZmN7JqpDQor7LWc7IaM7J6EDQor7LWc67OR7IicDQor7LWc7J2A7IiZDQor7LWc7ISd7J20DQor7LWc7IiY64KoDQor7LWc7ZWc64+ZDQor7LWc7Jyk67aADQor7LWc7IS47Zi4DQor7LWc7IiY64+ZDQor7LWc7J247LKgDQor7LWc7LCo7Zi4DQor7LWc7IOB64WADQor7LWc7IiY64+ZDQor7LWc7IS466OhDQor7LWc7JuQ7Jq0DQor7LWc7Iq57J6sDQor7LWc7IiY66CoDQor7LWc64+Z7ZuIDQor7LWc6rSA6recDQor7LWc7Jyg7KGwDQor7LWc7IiY66eMDQor7LWc6ri47Z2sDQor7LWc7J6s7ZiEDQor7LWc67OR7ZeMDQor7LWc7IiY7Je0DQor7LWc7IK87ZiEDQor7LWc7ZmU7ISxDQor7LWc7J6s6rK9DQor7LWc7IiY7J24DQor7LWc6riI7JqpDQor7LWc7ISx7IiYDQor7LWc7IOB7YOdDQor7LWc7IiY7J28DQor7LWc7J286recDQor7LWc64yA7ISgDQor7LWc7LKg7LKgDQor7LWc7IiY7J6lDQor7LWc64W46rSADQor7LWc7Iq57ZWcDQor7LWc7IS4642VDQor7LWc7IiY7KKFDQor7LWc7ZWZ7ISgDQor7LWc7Zi46recDQor7LWc7J6s7ZWZDQor7LWc7IiY7KKFDQor7LWc67KU7ZqMDQor7LWc7JiB6re8DQor7LWc642V7IudDQor7LWc7Iic6re8DQor7LWc7ZW07J20DQor7LWc7JiB7JuQDQor7LWc7JuU66y4DQor7LWc7Iic6riwDQor7LWc7KCV7Zi4DQor7LWc7KeE7IOBDQor7LWc6rWs66eMDQor7LWc7Iic6riwDQor7LWc7IOB7ZmNDQor7LWc7KSA7IigDQor7LWc7LaY67aEDQor7LWc7Iic6ri4DQor7LWc64yA7IiZDQor7LWc7YOc7LaYDQor7LWc7Iic7ZmYDQor7LWc7Iic64WADQor7LWc7J6s7JilDQor7LWc7J6E7IicDQor7LWc7Iic64+ZDQor7LWc7Iic642VDQor7LWc7LC97ZqMDQor7LWc6rK96rWtDQor7LWc7Iic7JqxDQor7LWc7Iic642VDQor7LWc66y06ri4DQor7LWc7KKF6recDQor7LWc7KCV6rCRDQor7LWc7Iic64+ZDQor7LWc7JuU66eMDQor7LWc7Jq07J21DQor7LWc6rOE7ZmYDQor7LWc7Iic7IOBDQor7LWc7KKF7Zi4DQor7LWc7KCV642VDQor7LWc7Iig6raMDQor7LWc7Iic7ISgDQor7LWc7KKF7IudDQor7LWc6rK97ISdDQor7LWc7ZWc7YOcDQor7LWc7Iic7IugDQor7LWc7KCV6rCRDQor7LWc67SJ7Z2sDQor7LWc7IiZ66qoDQor7LWc7Iic7JewDQor7LWc7Jyk7Zi4DQor7LWc7ZW07J6sDQor7LWcIOyYpA0KK+y1nOyInOyXsA0KK+y1nOygleykgA0KK+y1nO2VhOyYpQ0KK+y1nOuzteyaqQ0KK+y1nOyInOyasQ0KK+y1nOuqheynhA0KK+y1nOq4sOyImA0KK+y1nOyYgeyZhA0KK+y1nOyInOydtA0KK+y1nOyEseyekA0KK+y1nOyYgeyYgQ0KK+y1nOq0keyhsA0KK+y1nOyInOydtQ0KK+y1nCDqs6QNCivstZzrtoTqt5wNCivstZzqtJHqtowNCivstZzsiJzsnqwNCivstZzsoJDqtIANCivstZzsnbzssL0NCivstZzssYTtmLgNCivstZzsiJzsnqwNCivstZzqsr3sspwNCivstZzshLHrp4wNCivstZzqtozslZQNCivstZzsiJzstpwNCivstZzrhbjshJ0NCivstZzrs5HsiKANCivstZztko3smKUNCivstZzsiJztg50NCivstZzshozshJ0NCivstZzrs5HrrLgNCivstZzrj5ntlZkNCivstZzsiJztmLgNCivstZzsm5Dqt5wNCivstZztg5zsnbwNCivstZzquIjsgrwNCivstZzsiJztmZQNCivstZzsooXsmKUNCivstZzsm5Drj4QNCivstZzsoJXrrLgNCivstZzsiJztnawNCivstZzrj4jtlZkNCivstZzsmIHsooUNCivstZzsooXtmIQNCivstZzsirnrnb0NCivstZzsoJXqta0NCivstZzsmIHtmLgNCivstZzqtJHtmIQNCivstZzsirntmIQNCivstZzsg4HsmrQNCivstZzsnYTrtIkNCivstZzstpjqt6ANCivstZzsirntmZgNCivstZzrgqjrk50NCivstZzsoJDshK0NCivstZzrp5DtmZgNCivstZzsi5zsmIENCivstZztlbTrnpgNCivstZzqtJHtnJgNCivstZztmanso7wNCivstZzsi53tg5wNCivstZzrs5Hsm5ANCivstZzsmIHqt5wNCivstZzsp4TtmLgNCivstZzslaDsoJUNCivstZzsnKTsnbUNCivstZztmJzsobANCivstZzshLHtmZQNCivstZzslpHsnpANCivstZzrjIDrrLgNCivstZztmJXsl7QNCivstZzsg4HqtIANCivstZzslrjsi50NCivstZzrr7jsi50NCivstZzrqoXsl7ANCivstZzrjIDqt7wNCivstZzsl6zqtZANCivstZzsnqzri7QNCivstZzsirnsoIQNCivstZzsg4HsiJgNCivstZzsl7DqtawNCivstZzqs4Tso7wNCivstZzrp4nssKwNCivstZzrrLjsiJgNCivstZzsl7DtmY0NCivstZzsmIHsmIENCivstZzquLDqtowNCivstZzsiJztnawNCivstZzsmIHqs6QNCivstZzrs5HshKANCivstZzrjIDsiJkNCivstZzsm5TshJ0NCivstZzsmIHqtIANCivstZztmLjrs7UNCivstZzsmqnshLENCivstZzqt7zqt5wNCivstZzsmIHqta0NCivstZzsmKTqta0NCivstZztlbTsm5ANCivstZzsiJjsnbQNCivstZzsmIHqt5wNCivstZwg656YDQor7LWc66eM7Zi4DQor7LWc7J247JewDQor7LWc7JiB6recDQor7LWc7JWF6rCRDQor7LWc7IaM6recDQor7LWc7Jyk7IiYDQor7LWc7JiB6re8DQor7LWc7J287KGwDQor7LWc67OR7JuQDQor7LWc7ISx7ZuIDQor7LWc7JiB64yADQor7LWc7JaR7J6sDQor7LWc7Zqo7Zi4DQor7LWc7KKF7J6QDQor7LWc7JiB642VDQor7LWc6riw7ZmYDQor7LWc64KZ7LKgDQor7LWc66+47J6QDQor7LWc7JiB64+EDQor7LWc7IaM7YyQDQor7LWc7Iic7ZalDQor7LWc66eQ7JuQDQor7LWc7JiB64+ZDQor7LWc66qF7J6QDQor7LWc64yA6riIDQor7LWc642V6rOkDQor7LWc7JiB66eMDQor7LWc7JiB7Z2sDQor7LWc7IiY6rWsDQor7LWc7YOc7IOBDQor7LWc7JiB66eMDQor7LWc67KU6recDQor7LWc64+E7J24DQor7LWc7Jq066y4DQor7LWc7JiB66eMDQor7LWc7YyQ7KeEDQor7LWc7KCV7IiYDQor7LWc6reA7IOBDQor7LWc7JiB7ISdDQor7LWc7KKF7KeBDQor7LWc7KKF6recDQor7LWc7J6s7YOdDQor7LWc7JiB7IiYDQor7LWcIOyYgQ0KK+y1nOyblOuPhA0KK+y1nOyYgeuwsA0KK+y1nOyYgeyImA0KK+y1nOyEneyyoA0KK+y1nOyerO2YuA0KK+y1nO2YleyEnQ0KK+y1nOyYgeyImQ0KK+y1nO2aqOyEnQ0KK+y1nOyXsOyerA0KK+y1nOyEseybkA0KK+y1nOyYgeyInA0KK+y1nOygle2VnA0KK+y1nOunjOyaqQ0KK+y1nOyYgeq4sA0KK+y1nOyYgeyInA0KK+y1nOynhO2YhA0KK+y1nOq0keyImQ0KK+y1nO2YuOygkA0KK+y1nOyYgeyLnQ0KK+y1nOuqheyEpA0KK+y1nO2ZmOyInA0KK+y1nOyblOyInA0KK+y1nOyYgeyXvQ0KK+y1nOyEseyVlA0KK+y1nOygleyLnQ0KK+y1nOyyoOynhA0KK+y1nOyYgeyYpA0KK+y1nO2Yleq3vA0KK+y1nOygleyInA0KK+y1nOydtOq4sA0KK+y1nOyYgeydmA0KK+y1nOydteykkQ0KK+y1nOyCvOyLnQ0KK+y1nOycpO2VmQ0KK+y1nOyYgeyekA0KK+y1nOyaqeyCvA0KK+y1nOuqheugrA0KK+y1nOyGjOyImQ0KK+y1nOyYgeyekA0KK+y1nO2DnOyInA0KK+y1nOyImOuNlQ0KK+y1nOu2hOyImA0KK+y1nOyYgeyerA0KK+y1nOq2jOyImA0KK+y1nOyEuOyYpQ0KK+y1nO2DnOq3nA0KK+y1nOyYgeyjvA0KK+y1nOyImOyXtA0KK+y1nOynhOuPmQ0KK+y1nOyEpO2YuA0KK+y1nOyYgeykgA0KK+y1nOqyveunjA0KK+y1nOygleqyvQ0KK+y1nO2VmeyYgQ0KK+y1nOyYgeyngQ0KK+y1nOyEseqyvQ0KK+y1nOyInO2ZmA0KK+y1nOywrOydtA0KK+y1nOyYgeynhA0KK+y1nOyYpeyyoA0KK+y1nOyInO2YuA0KK+y1nOygleyhsA0KK+y1nOyYgeywrA0KK+y1nOywve2ZmA0KK+y1nOyZuOykgA0KK+y1nOyDgeyImA0KK+y1nOyYgeyxhA0KK+y1nOyLoOyglQ0KK+y1nOyiheq3nA0KK+y1nOuPmeydtA0KK+y1nOyYgeyyoA0KK+y1nO2Zje2YuA0KK+y1nOy2mO2drA0KK+y1nOyYgeyXrA0KK+y1nOyYge2DnA0KK+y1nOuLrOyekA0KK+y1nOygle2YgQ0KK+y1nOuMgO2VmA0KK+y1nOyYge2DnA0KK+y1nOyInOyasQ0KK+y1nOq3gOyImA0KK+y1nOyYgeyYgQ0KK+y1nOyYge2PrA0KK+y1nO2ZjeynhA0KK+y1nOustOyImA0KK+y1nOyImO2YuA0KK+y1nOyYge2VrQ0KK+y1nOywveyaqQ0KK+y1nOyInOuNlQ0KK+y1nOyEseywvQ0KK+y1nOyYge2YhA0KK+y1nOyynOuMgA0KK+y1nOuzkeyxhA0KK+y1nOyGjO2VhA0KK+y1nOyYge2YuA0KK+y1nOyerO2DnQ0KK+y1nOyKueyduA0KK+y1nOyerOuPmQ0KK+y1nOyYge2aqA0KK+y1nOyyreyaqQ0KK+y1nO2drOqwkQ0KK+y1nOuqheyImA0KK+y1nOyYge2drA0KK+y1nOy2mOq3nA0KK+y1nOyiheuLrA0KK+y1nOyInOyglQ0KK+y1nOyYpOq3vA0KK+y1nOyDgeyjvA0KK+y1nOq4iOyImA0KK+y1nOuzkeyXtA0KK+y1nOyYpOyDnQ0KK+y1nOuzkeyyoA0KK+y1nOyYgeyyoA0KK+y1nOqwleyaqQ0KK+y1nOyYpeq3oA0KK+y1nOyduOyEoA0KK+y1nOuMgOyVoA0KK+y1nOq4sO2YhA0KK+y1nOyYpeyVlA0KK+y1nOyaqeyImA0KK+y1nO2YuOyaqQ0KK+y1nOyerOyyoA0KK+y1nOyZuO2DnQ0KK+y1nOq3vOuPmQ0KK+y1nOygleq3vA0KK+y1nOyXsOybkA0KK+y1nOyaqeq2jA0KK+y1nOq4sOyYpA0KK+y1nO2VtOykgA0KK+y1nOyKue2ZjQ0KK+y1nOyaqeq3nA0KK+y1nOyerOuwsQ0KK+y1nOygleq1rA0KK+y1nOycoOuPmQ0KK+y1nOyaqeq3oA0KK+y1nOyImO2VmQ0KK+y1nOyiheuhgA0KK+y1nO2VnOuqqA0KK+y1nOyaqeq3vA0KK+y1nOyduOyImQ0KK+y1nOyInOq3vA0KK+y1nO2drO2ZmA0KK+y1nOyaqeq3vA0KK+y1nOyduOyYpQ0KK+y1nOyepeynhA0KK+y1nOyYge2YuA0KK+y1nOyaqeuNlQ0KK+y1nOuNleuFuA0KK+y1nOyatO2DnA0KK+y1nOyYgeyatA0KK+y1nOyaqeyEoA0KK+y1nOyDgeyekA0KK+y1nOq3nO2ZmA0KK+y1nOqyve2YuA0KK+y1nOyaqeyEsQ0KK+y1nOqyveyaqQ0KK+y1nOyDgeusuA0KK+y1nOyEseuCqA0KK+y1nOyaqeyImA0KK+y1nO2XjO2drA0KK+y1nOyatOyErQ0KK+y1nOq3nO2ZmA0KK+y1nOyaqeyImA0KK+y1nOynhOusuA0KK+y1nOygleyLnQ0KK+y1nOyInOq4uA0KK+y1nOyaqeyKuQ0KK+y1nOyYgeuqhQ0KK+y1nOynhO2YuA0KK+y1nO2DnOyDgQ0KK+y1nOyaqeyhsA0KK+y1nOykkeq4sA0KK+y1nOuzke2ZmA0KK+y1nOyerOyEnQ0KK+y1nOyaqeyjvA0KK+y1nO2VtOuNlQ0KK+y1nOyjvOqwkQ0KK+y1nOyInOuNlQ0KK+y1nOyaqeykgA0KK+y1nOyCvOyhsA0KK+y1nOyerOyVoA0KK+y1nOyerOuhnQ0KK+y1nOyaqe2DnA0KK+y1nOydkeuPhA0KK+y1nOuLrOqxtA0KK+y1nOyYge2biA0KK+y1nOyaqe2DnQ0KK+y1nOq4sO2DnA0KK+y1nOyYge2YuA0KK+y1nOqyveyaqQ0KK+y1nOyaqe2VnA0KK+y1nOygkOq4uA0KK+y1nOyEseyaqQ0KK+y1nOyYgeyLpA0KK+y1nOyaqe2ZmA0KK+y1nOuPmeyYpA0KK+y1nO2aqOyLnQ0KK+y1nO2YhO2YuA0KK+y1nOyasOq2jA0KK+y1nOywveuztQ0KK+y1nOuLrOyIoA0KK+y1nO2DnOyEoA0KK+y1nOyasOuTnQ0KK+y1nOyaqe2drA0KK+y1nOujoeqyvQ0KK+y1nOq4sO2drA0KK+y1nOyasOyInA0KK+y1nOykgOuqqA0KK+y1nOycpOy2nA0KK+y1nOycpO2DnA0KK+y1nOyasOyYgQ0KK+y1nOunjOyxhA0KK+y1nOyerOq4uA0KK+y1nOyaqeyynA0KK+y1nOyasOyYgQ0KK+y1nO2YuOuqhQ0KK+y1nOyEseybkA0KK+y1nOycoOyImA0KK+y1nOyatOqzpA0KK+y1nOyDgeyEnQ0KK+y1nOuvuOyXtA0KK+y1nOuzkeyXtA0KK+y1nOyatOyErQ0KK+y1nOyerOyehA0KK+y1nOyDge2drA0KK+y1nOqyveyImA0KK+y1nOyatOyaqQ0KK+y1nOuPmeuylA0KK+y1nOybkOq1rA0KK+y1nO2VtO2DnA0KK+y1nOyatOybkA0KK+y1nOu2hOuPmQ0KK+y1nOu2hOyYgQ0KK+y1nOygkOq4uA0KK+y1nOyatO2YlQ0KK+y1nOuzkeyIoA0KK+y1nOq3vOqzpA0KK+y1nOq2jO2VmA0KK+y1nOybkOq3nA0KK+y1nOyiheyImA0KK+y1nOywqOyZhA0KK+y1nOyDgeqyvQ0KK+y1nOybkOq4uA0KK+y1nOydhOywvQ0KK+y1nOyerOyYpA0KK+y1nOyYpeyihQ0KK+y1nOybkOuLrA0KK+y1nOyInOyXsA0KK+y1nOq4uOyImA0KK+y1nOyYgeyasA0KK+y1nOybkOuNlQ0KK+y1nO2DnOq3vA0KK+y1nOuPmeyVhA0KK+y1nO2MlO2drA0KK+y1nOybkOuztA0KK+y1nOygleqzpA0KK+y1nO2Zje2YuA0KK+y1nO2VtOq1rA0KK+y1nOybkOyEnQ0KK+y1nOyYgeyekA0KK+y1nOyjvOyYgQ0KK+y1nOykkey2qQ0KK+y1nOybkOydtQ0KK+y1nOygleuTnQ0KK+y1nOq0gO2drA0KK+y1nOuFuOycqA0KK+y1nOybkOydvA0KK+y1nOyYpeuztQ0KK+y1nOunkOyekA0KK+y1nOq4sOyEoA0KK+y1nOybkOyhsA0KK+y1nOyIoOq3nA0KK+y1nOygkO2YuA0KK+y1nOyInOynhA0KK+y1nOybkO2DnQ0KK+y1nOq4sO2YhA0KK+y1nOyEoOq4iA0KK+y1nOyiheqyvQ0KK+y1nOybkO2DnQ0KK+y1nOyiheyLnQ0KK+y1nOyCvO2biA0KK+y1nO2VmOykkQ0KK+y1nOybkO2YuA0KK+y1nO2aqOyhsA0KK+y1nOq1kO2PrA0KK+y1nOyjvO2WpQ0KK+y1nOybkO2ZjQ0KK+y1nOu2hO2ZmA0KK+y1nO2YhOyInA0KK+y1nOyImOuPjA0KK+y1nOybkO2ZjQ0KK+y1nOyEoOyasQ0KK+y1nO2ZlOuemA0KK+y1nOuCqOqxuA0KK+y1nOyblOyInA0KK+y1nOq3gO2ZjQ0KK+y1nOq4sO2VhA0KK+y1nOyEneyyoA0KK+y1nOychOqyvQ0KK+y1nOyEse2aqA0KK+y1nOunkOyVhQ0KK+y1nOykkeyXtA0KK+y1nOycpOqzpA0KK+y1nOygleq2jA0KK+y1nOyLoOyXtA0KK+y1nO2DnOyErQ0KK+y1nOycpOqzpA0KK+y1nOq4sOyEsQ0KK+y1nOq4sOykgA0KK+y1nOuqheynhA0KK+y1nOycpOq4sA0KK+y1nOyYpeq4iA0KK+y1nOynhOynhA0KK+y1nOybkOyImA0KK+y1nOycpOuCqA0KK+y1nOq0keugrA0KK+y1nOuzkeuzkQ0KK+y1nO2VnOyDgQ0KK+y1nOycpOuPhA0KK+y1nOyYgeyEnQ0KK+y1nOusuOyEoA0KK+y1nOybkOyyoA0KK+y1nOycpOuztQ0KK+y1nOyYgeycpA0KK+y1nOuzkeycpA0KK+y1nOu0ieyIoA0KK+y1nOycpOyYgQ0KK+y1nOyXsOyImA0KK+y1nOybkOqyrA0KK+y1nOyYpeyImA0KK+y1nOycpO2YuA0KK+y1nOyEse2ZmA0KK+y1nOyCvOyCvA0KK+y1nOyiheyjvA0KK+y1nOycpO2YuA0KK+y1nOybkOuMgA0KK+y1nOuRkOudvQ0KK+y1nOyDgeybkA0KK+y1nOycqO2DnA0KK+y1nOyYgeybhQ0KK+y1nOuzkeqyvQ0KK+y1nOyjvOyEoA0KK+y1nOydgOqyvQ0KK+y1nO2VnOyInA0KK+y1nOyYpe2YhA0KK+y1nOyerOy5oA0KK+y1nOydgOyYgQ0KK+y1nOyaqe2DnA0KK+y1nO2drO2VmQ0KK+y1nOyImO2drA0KK+y1nOydgOyihQ0KK+y1nOyDgeyEnQ0KK+y1nOyduOydtQ0KK+y1nOyYgeyhsA0KK+y1nOydkeqzpA0KK+y1nOychOq4sA0KK+y1nOyDge2ZlA0KK+y1nOuzke2XjA0KK+y1nOydmOq2jA0KK+y1nOyiheyxhA0KK+y1nOyDgeyImA0KK+y1nOyiheyImA0KK+y1nOydmO2YhA0KK+y1nOygkOqyrA0KK+y1nOyDge2ZmA0KK+y1nOq4sO2DgQ0KK+y1nOydtOq4sA0KK+y1nO2VmOuemA0KK+y1nO2DnOyXtA0KK+y1nOyEneuFgA0KK+y1nOydteq2jA0KK+y1nOyXsOy2mA0KK+y1nOybkOyEoA0KK+y1nOyerOyInA0KK+y1nOydteyDgQ0KK+y1nO2ZlOyErQ0KK+y1nOyDgeynhA0KK+y1nOuPme2YhA0KK+y1nOydte2YhA0KK+y1nOyEseuCqA0KK+y1nOyEseynhA0KK+y1nO2DnOyEnQ0KK+y1nOyduOq2jA0KK+y1nOyEse2VnA0KK+y1nOyGjO2XjA0KK+y1nOyiheu0iQ0KK+y1nOyduOuMgA0KK+y1nOynhOuztQ0KK+y1nOqzhOuylA0KK+y1nOyGjO2VhA0KK+y1nOyduOuPmQ0KK+y1nO2DnOuhnQ0KK+y1nOyWkeq4uA0KK+y1nO2YuOugqA0KK+y1nOyduOyImA0KK+y1nOuPmeyyoA0KK+y1nOunjOybkA0KK+y1nOyGjOyXtA0KK+y1nOyduOyLnQ0KK+y1nOyDgeyasA0KK+y1nO2DnOq3vA0KK+y1nO2DnOq3oA0KK+y1nOyduOyYpQ0KK+y1nOuqheyLnQ0KK+y1nOyImOy2mA0KK+y1nOyYgeunjA0KK+y1nOyduOyjvA0KK+y1nOygnOygnA0KK+y1nO2ZmOyyoA0KK+y1nO2DnOyIoA0KK+y1nOyduOyyoA0KK+y1nOyZuOyImA0KK+y1nOyInO2ZjQ0KK+y1nOu2hOyLnQ0KK+y1nOyduO2ZmA0KK+y1nOyaqeuFuA0KK+y1nOqyveuPmQ0KK+y1nOyatOuekQ0KK+y1nOydvOq4iA0KK+y1nO2WpeyjvA0KK+y1nOybkOyerA0KK+y1nOuRkOyjvA0KK+y1nOydvOuPmQ0KK+y1nOyYge2YuA0KK+y1nOybkOyImA0KK+y1nOq3nO2DnA0KK+y1nOydvOyImA0KK+y1nOyiheqyvQ0KK+y1nOyEse2ZlA0KK+y1nOuzkeq4uA0KK+y1nOydvOy2nA0KK+y1nOydvOq1kA0KK+y1nOqyveyImA0KK+y1nCDsi50NCivstZzsnbztmLgNCivstZztmY3rr7gNCivstZzssL3siJwNCivstZzrj5nsmqkNCivstZzsnbztmZgNCivstZzrj5nqsbQNCivstZzsuaDsmqkNCivstZzspIDsmqkNCivstZzsnbztmZgNCivstZzsmIHsnbUNCivstZzrtInqta0NCivstZzquLDshKANCivstZzsnbztm4gNCivstZzqsJHquLANCivstZzsg4HrrJgNCivstZzshLHsnbwNCivstZzsnpDrj4QNCivstZzqsr3sm4UNCivstZzsnqztg50NCivstZzsp4Tqsr0NCivstZzsnqXqsJUNCivstZzshKDshKANCivstZzrs7XrgpwNCivstZztmZTtmY0NCivstZzsnqXquLANCivstZzqtJHrjZUNCivstZzstpjtlokNCivstZzsnqzsiJwNCivstZzsnqXsiJgNCivstZzsl7Dqs6QNCivstZzssL3rjZUNCivstZzsm5Dsi50NCivstZzsnqXsiKANCivstZzsmbjtmZgNCivstZztg5ztmowNCivstZzsmqnrqqgNCivstZzsnqXspIANCivstZzqt5zqt7wNCivstZzssL3snbgNCivstZzrs7XtmZQNCivstZzsnqzqt5wNCivstZztlZnso7wNCivstZzsnqztmLgNCivstZzsm5DsnKQNCivstZzsnqzqt5wNCivstZzsmIHsnYANCivstZzqt6DsiJgNCivstZzspIDtmLgNCivstZzsnqzrjZUNCivstZzrqoXso7wNCivstZzsnqzshLENCivstZzrrLTtmY0NCivstZzsnqzrp4wNCivstZzsnbjsl7QNCivstZzshLHsnKQNCivstZztmITtmZgNCivstZzsnqzrrLgNCivstZzsmIHtmZQNCivstZzqtZDsi6wNCivstZzqsr3qs6QNCivstZzsnqzrs7UNCivstZzqsr3tlZwNCivstZzsmqntlZkNCivstZzsmIHsnKQNCivstZzsnqzrtIkNCivstZzslpHsnbQNCivstZzshLHsp4QNCivstZzsnbjri6wNCivstZzsnqzsg4ENCivstZzrj5ntmIQNCivstZzsmqnsi50NCivstZzquLDqsr0NCivstZzsnqzshJ0NCivstZzrjZXtmIQNCivstZzsnbztmZQNCivstZzsg4Hso7wNCivstZzsnqzsiJgNCivstZzsm5DrsLANCivstZzslpHtmLgNCivstZzsmIHrj4QNCivstZzsnqzsiJkNCivstZzsiJztmIQNCivstZzrtInsmKUNCivstZzsoJXshJ0NCivstZzsnqzsiJkNCivstZzsg4HsobANCivstZzshKDtkZwNCivstZzrs7XtlZgNCivstZzsnqzsi50NCivstZzsmIHsiJwNCivstZzsg4HsmYQNCivstZzqtJHsnbQNCivstZzsnqzsmKQNCivstZzspIDsiJgNCivstZzsoJXtlZkNCivstZzqsJXrjIANCivstZzsnqzsmrANCivstZzsiJjsmrANCivstZzrs7XquLANCivstZzrj5nsiJwNCivstZzsnqzsmrENCivstZzrp4ztg5wNCivstZwg6riwDQor7LWc7IOB7KGwDQor7LWc7J6s7Jq0DQor7LWc7Jqp7ISxDQor7LWc7J287ISxDQor7LWc7ISd7IiYDQor7LWc7J6s7JykDQor7LWc7IK87IiYDQor7LWc7J6s7JuQDQor7LWc64us7KCVDQor7LWc7J6s7LaYDQor7LWc6rWs7KSADQor7LWc64yA66CoDQor7LWc7YyU66y4DQor7LWc7J6s7LacDQor7LWc6rWQ7Je0DQor7LWc7IK87ISgDQor7LWc7Jm47JikDQor7LWc7J6s7ZWZDQor7LWc7KO87IiYDQor7LWc7Zic66qFDQor7LWc67OR7LmYDQor7LWc7J6s7ZeMDQor7LWc7IiY7IiYDQor7LWc66y07JewDQor7LWc7ISx7JewDQor7LWc7J6s7Zi4DQor7LWc7L6M6rSADQor7LWc7J6s7Z2sDQor7LWc7YOc7JqpDQor7LWc7J6s7Zi4DQor7LWc7IiY7KeEDQor7LWc7J6E7ISdDQor7LWc7LC97ISgDQor7LWc7J6s7Zi4DQor7LWc6ri47ZeMDQor7LWc64+E67CpDQor7LWc7ZWE7Z2sDQor7LWc7J6s7Zi4DQor7LWc67SJ7JWUDQor7LWc7J287YOcDQor7LWc66qF7Zi4DQor7LWc7J6s7ZmYDQor7LWc7Jew7IudDQor7LWc7Zi47ZmYDQor7LWc6riw7KO8DQor7LWc7KCE6re8DQor7LWc7Jil6rWtDQor7LWc7J247LC9DQor7LWc7J2E7Je0DQor7LWc7KCQ6riwDQor7LWc7Jqp7IStDQor7LWc7J2Y7ZiEDQor7LWc7KCQ7IudDQor7LWc7KCQ642VDQor7LWc7ISd66GdDQor7LWc7KCV7LKcDQor7LWc7J6s6riwDQor7LWc7KCQ7IudDQor7LWc7Jik64+EDQor7LWc66eM6ri4DQor7LWc7JiB7Zi4DQor7LWc7KCQ7JqpDQor7LWc7IiY66qFDQor7LWc6riw7LKgDQor7LWc7YOc7ISdDQor7LWc7KCQ7KSADQor7LWc7ISx7ISdDQor7LWc6rec7KGwDQor7LWc7LC97KGwDQor7LWc7KCV642VDQor7LWc7KKF6re8DQor7LWc7Iq57KGwDQor7LWc7IOB7LacDQor7LWc7KCV67SJDQor7LWc65GQ64usDQor7LWc7KCQ7Zi4DQor7LWc7LKc7IudDQor7LWc7KCV7IiYDQor7LWc7KKF7ISdDQor7LWc7J6s7Je0DQor7LWc7ISk7ISdDQor7LWc7KCV7IiYDQor7LWc66eM7IOdDQor7LWc7KeE7KCcDQor7LWc7Zi46ri4DQor7LWc7KCV7IiYDQor7LWc7J6s6rWtDQor7LWc6rSR7ZWZDQor7LWc67Cp6recDQor7LWc7KCV7JewDQor7LWc7Jqp7JqwDQor7LWc7J6s7KSADQor7LWc6riw67ORDQor7LWc7KCV7JikDQor7LWc7ISg7Zi4DQor7LWc7Jqp656YDQor7LWc7KeE6re8DQor7LWc7KCV7JqwDQor7LWc64Ko67O1DQor7LWc7LKg7ZmNDQor7LWc7JuQ7JqpDQor7LWc7KCV7JykDQor7LWc66y47IiYDQor7LWc6re87IiZDQor7LWc7KCV642VDQor7LWc7KCV7J6EDQor7LWc642V642VDQor7LWc7Ja47J20DQor7LWc7ZW07JqwDQor7LWc7KCV7KKFDQor7LWc7J6s7IicDQor7LWc67SJ7LCsDQor7LWc7IK87IStDQor7LWc7KCV7KSADQor7LWc7KCV7JuQDQor7LWc7J2E7Z2gDQor7LWc7KSR66+8DQor7LWc7KCV7LKgDQor7LWc7IOB6529DQor7LWc7KO87J20DQor7LWc7J287IicDQor7LWc7KCV7Zi4DQor7LWc7KKF6riwDQor7LWc7LC97IudDQor7LWc7JiB7ISdDQor7LWc7KCV7ZmYDQor7LWc7KCV7Zi4DQor7LWc6rSA7KKFDQor7LWc67OR7J20DQor7LWc7KCV7ZmYDQor7LWc6rO17JqwDQor7LWc67OR7IiYDQor7LWc7IiZ7IiZDQor7LWc7KCV7ZqoDQor7LWc6riw7JuQDQor7LWc6rK966y4DQor7LWc7J6l7JWgDQor7LWc7KKF6rCRDQor7LWc6ri466+4DQor7LWc6rCR66GcDQor7LWc7Jew6rG0DQor7LWc7KKF6rK9DQor7LWc7Zal6riwDQor7LWc7YOc7J6QDQor7LWc67OR656RDQor7LWc7KKF6rWQDQor7LWc7ISd7KSADQor7LWc6rK97IicDQor7LWc7KKF7ZiEDQor7LWc7KKF6rWtDQor7LWc7JiB7IudDQor7LWc6riw7J20DQor7LWc7ISx67aADQor7LWc7KKF6recDQor7LWc6rK97Zi4DQor7LWc7ZiE67KUDQor7LWc7J6E66eMDQor7LWc7KKF6riwDQor7LWc7J6s7JqwDQor7LWc7YOA7J6sDQor7LWc7Jyk7IicDQor7LWc7KKF6riwDQor7LWc7LC97IiYDQor7LWc7J2A7ZmUDQor7LWc7Lmg7ISdDQor7LWc7KKF6riwDQor7LWc6rCV6rWsDQor7LWc64+Z7KSRDQor7LWc7ZeM7Zi4DQor7LWc7KKF6riwDQor7LWc7ISx7ZuIDQor7LWc7Jyg7ZmUDQor7LWc67aE7ZalDQor7LWc7KKF6ri4DQor7LWc6riw7ZW0DQor7LWc7KKF6riwDQor7LWc7JuQ7KeEDQor7LWc7KKF6ri4DQor7LWc7J6s7LCsDQor7LWc7LCo7Z2gDQor7LWc7ISg67mIDQor7LWc7KKF66qFDQor7LWc7YOc7ZWYDQor7LWc7ZWZ7IiZDQor7LWc7Ja167aEDQor7LWc7KKF66+8DQor7LWc6riw7KKFDQor7LWc6riw7KGwDQor7LWc7IOB7IudDQor7LWc7KKF7ISgDQor7LWc7KKF7KSADQor7LWc7Jqp7Z2sDQor7LWc7JiB66CoDQor7LWc7KKF7ISxDQor7LWc7Iic7ZmNDQor7LWc7Z2s6riwDQor7LWc67aA67CwDQor7LWc7KKF7IiZDQor7LWc7KCV7ZmYDQor7LWc7YOc7KO8DQor7LWc64yA6recDQor7LWc7KKF7IudDQor7LWc7JiB7IiYDQor7LWc67OR64+MDQor7LWc6rSR6rOkDQor7LWc7KKF7Je0DQor7LWc7J6l67O1DQor7LWc67O165OdDQor7LWc67aE6rWtDQor7LWc7KKF7Jq0DQor7LWc64Kc7Z2sDQor7LWc7KCV67CxDQor7LWc7KCV7LKgDQor7LWc7KKF7JyoDQor7LWc7IOB7JilDQor7LWc7LaY7Y+JDQor7LWc66eQ7KGwDQor7LWc7KKF7J28DQor7LWc6rK97IudDQor7LWc7IOB7ZWZDQor7LWc6rCV6riwDQor7LWc7KKF7LCsDQor7LWc7ZW065OdDQor7LWc6rSR7ISdDQor7LWc7J2A67SJDQor7LWc7KKF7YOcDQor7LWc6rSR66+8DQor7LWc7Jqp7LKgDQor7LWc6rK97JWUDQor7LWc7KKF7YyUDQor7LWc66eM7ZeMDQor7LWc7KeA7J2YDQor7LWc7ZWZ6raMDQor7LWc7KKF7ZiEDQor7LWc7KKF7IiZDQor7LWc64+Z7IicDQor7LWc7KSR7JuQDQor7LWc7KKF7ZiEDQor7LWc66eM7JqwDQor7LWc67SJ7IudDQor7LWc7JiB7Zi4DQor7LWc7KKF7Zi4DQor7LWc7IOB7ZmUDQor7LWc6rec7LaYDQor7LWc7YOc7Z2sDQor7LWc7KKF7ZmNDQor7LWc7IK87Zi4DQor7LWc7ISx66y4DQor7LWc67O17Z2sDQor7LWc7KKF7ZmNDQor7LWc6riw7KSADQor7LWc7KeE7YOcDQor7LWc6riw7KO8DQor7LWc7KKF7ZmYDQor7LWc7ZWc6rOgDQor7LWc7J247IicDQor7LWc7ISd7J28DQor7LWc7KO87ZmYDQor7LWc7KCE64+EDQor7LWc7KeE7IStDQor7LWc6rK97KeEDQor7LWc7KSA67O1DQor7LWc7Jil7IudDQor7LWc7IOB7IOBDQor7LWc7J207ISgDQor7LWc7KSA7IOdDQor7LWc7IiY7IOBDQor7LWc7J2A7IiZDQor7LWc7Jyk7ZmYDQor7LWc7KSA7IudDQor7LWc7Jil7IiYDQor7LWc7KKF7IStDQor7LWc642V7ZmYDQor7LWc7KSA7IudDQor7LWc7Lap7ZmNDQor7LWc7J6s7IudDQor7LWc7ZiB7LKgDQor7LWc7KSR6rCVDQor7LWc7IOB67aEDQor7LWc6ri47LKgDQor7LWc7J247LaYDQor7LWc7KSR6rOkDQor7LWc7IK87IudDQor7LWc7IOB6recDQor7LWc6reA7ISdDQor7LWc7KSR6raMDQor7LWc7IS464+ZDQor7LWc67aE67SJDQor7LWc66+464+EDQor7LWc7KSR6riwDQor7LWc7KCV7JikDQor7LWc7KCV7YOBDQor7LWc7J6s7Zi4DQor7LWc7KeA7ZuIDQor7LWc6rec7JewDQor7LWc7KKF6rK9DQor7LWc7J6l7ZmYDQor7LWc7KeE6rWtDQor7LWc7IOB7LKgDQor7LWc7ZiE7IudDQor7LWc7IOB67ORDQor7LWc7KeE6rWtDQor7LWc7J247YOcDQor7LWc7ZW07J6sDQor7LWc6rK97IudDQor7LWc7KeE6recDQor7LWc7ISx6rOkDQor7LWc7J6s66ekDQor7LWc642V7ISxDQor7LWc7KeE64+ZDQor7LWc66eM7KSADQor7LWc7J246rOEDQor7LWc7IK867aEDQor7LWc7KeE7IiYDQor7LWc66qF6rK9DQor7LWc7ISx7ZmYDQor7LWc7KCV6ri4DQor7LWc7KeE7JqwDQor7LWc7LmY64+EDQor7LWc7J247Zi4DQor7LWc67OR7J6QDQor7LWc7KeE7Jq0DQor7LWc7KKF7JuQDQor7LWc642V7J20DQor7LWc7J6E7Zi4DQor7LWc7KeE7JuQDQor7LWc7Iq57JygDQor7LWc7Jqp7ISgDQor7LWc7KSA6rWQDQor7LWc7KeE7KKFDQor7LWc66eM7JqpDQor7LWc7YyQ7ZqMDQor7LWc6rK966GdDQor7LWc7KeE7LKgDQor7LWc7JuQ7ZmYDQor7LWc7KeE7LKgDQor7LWc7IK866CsDQor7LWc7KeI64+EDQor7LWc7J6l6recDQor7LWc67SJ7ZiVDQor7LWc7ISx7YOcDQor7LWc7KeI7J6EDQor7LWc67OR7JilDQor7LWc7LC97IiYDQor7LWc6re87J21DQor7LWc7LCo7ISdDQor7LWc7J2A6riIDQor7LWc64Ko7JiBDQor7LWc7IOB7ZiVDQor7LWc7LCo7JWUDQor7LWc7J287IicDQor7LWc7Zi47JilDQor7LWc7IiY6re8DQor7LWc7LCo7J6sDQor7LWc6rCR7JqwDQor7LWc67SJ7J6QDQor7LWc7Z2l6rK9DQor7LWc7LCs7IiYDQor7LWc7JiB7ZiRDQor7LWc7JuQ7YOcDQor7LWc7J6s7ISgDQor7LWc7LC96recDQor7LWc64yA7Zi4DQor7LWc7ZaJ7IicDQor7LWc64Ko7Z2sDQor7LWc7LC964KoDQor7LWc64+Z6ri4DQor7LWc7JuQ7ZuIDQor7LWc7Jqp6recDQor7LWc7LC964+ZDQor7LWc7ZeM7ZmYDQor7LWc7ISx7JewDQor7LWc67OR7ISdDQor7LWc7LC96529DQor7LWc7KKF66GADQor7LWc7J6s7J28DQor7LWc7KKF7YOcDQor7LWc7LC967O1DQor7LWc7KCV7IiYDQor7LWc67OR67SJDQor7LWc7Jqp7Zi4DQor7LWc7LC97IiYDQor7LWc7ISx7IiYDQor7LWc7Iuc7YyQDQor7LWc7J247JqwDQor7LWc7LC97IiZDQor7LWc7ISd7JewDQor7LWc7ISx7JikDQor7LWc6rec7IicDQor7LWc7LC97KeADQor7LWc66eM6rWtDQor7LWc66y47IudDQor7LWc7IaM6rKsDQor7LWc7LKc7IudDQor7LWc6rSR6rWtDQor7LWc67OR7LKgDQor7LWc7ZWZ7ZmYDQor7LWc7LKc7Zi4DQor7LWc66eQ7Z2sDQor7LWc7LaY7ZmYDQor7LWc7KSA64+ZDQor7LWc7LKg6recDQor7LWc7JiB7ISdDQor7LWc7ISx7IiYDQor7LWc7Iic64+MDQor7LWc7LKg6riwDQor7LWc7ISx6re8DQor7LWc7J247IiYDQor7LWc7YOc64+ZDQor7LWc7LKg64+ZDQor7LWc64us6rWsDQor7LWc66eM656ADQor7LWc67OR656YDQor7LWc7LKg7IiYDQor7LWc7KSR7ISdDQor7LWc7Jqp6riwDQor7LWc7YOc7J6sDQor7LWc7LKg7ZiEDQor7LWc7J6s7IiZDQor7LWc7J6s7KCVDQor7LWc7IiY7ZuIDQor7LWc7LKg7Zi4DQor7LWc7JuQ7JewDQor7LWc7J6s7LacDQor7LWc7JWg67SJDQor7LWc7LKg7Zi4DQor7LWc7J6s7JiBDQor7LWc7KKF64+MDQor7LWc7JiB6riwDQor7LWc7LKt7Jq0DQor7LWc7Jyk67O1DQor7LWc7IiY7IiYDQor7LWc7JuQ7IiYDQor7LWc7LaY64+MDQor7LWc7KO87YOcDQor7LWc7Jqp7ZmYDQor7LWc7KeA7Z2sDQor7LWc7LaY7IicDQor7LWc7J6s7J6EDQor7LWc7ZeM6rWsDQor7LWc7KCV7Z2sDQor7LWc7LaY7IudDQor7LWc7LC97J6QDQor7LWc6rCR66eMDQor7LWc7LaY7IicDQor7LWc7LaY7Z2sDQor7LWc7JuQ66GdDQor7LWc7ZWE7Je0DQor7LWc66y07J6QDQor7LWc7Lap6rWtDQor7LWc7IOB7JewDQor7LWc7JiB64+ZDQor7LWc7J287ZiEDQor7LWc7Lap6raMDQor7LWc7ZWZ7JiBDQor7LWc6riw7JuQDQor7LWc6raM6riIDQor7LWc7Lap7J28DQor7LWc7IOB7ZuIDQor7LWc67aE7ZiEDQor7LWc7ISg66y0DQor7LWc7L6M64+ZDQor7LWc7JiB7YOcDQor7LWc7Iic7J6sDQor7LWc7ISx7JqpDQor7LWc7YOA7JqpDQor7LWc64+Z6recDQor7LWc7J247J6QDQor7LWc7ISg6recDQor7LWc7YOc6rOkDQor7LWc7KCV7JiBDQor7LWc7KCV7ZmYDQor7LWc7KKF7JqpDQor7LWc7YOc6rOkDQor7LWc7IOB7IudDQor7LWc7Jqp7Zi4DQor7LWc7YOc7YOdDQor7LWc7YOc6raMDQor7LWc7J6s7IOdDQor7LWc7KCV7ZalDQor7LWc7KCQ7Zi4DQor7LWc7YOc6recDQor7LWc7JuQ7ZiVDQor7LWc7YOc7IiYDQor7LWc6rK97IiYDQor7LWc7YOc6riwDQor7LWc7Lmg7IiYDQor7LWc7KCE67SJDQor7LWc7LC97Zi4DQor7LWc7YOc6riwDQor7LWc6rSR7KGwDQor7LWc7LKc7Zi4DQor7LWc7YOc7Jq0DQor7LWc7YOc64KoDQor7LWc7ISg7JqpDQor7LWc7J6s64usDQor7LWc7Jqp6re8DQor7LWc7YOc64KoDQor7LWc6rec64usDQor7LWc7J6s7ISgDQor7LWc7ISx7KKFDQor7LWc7YOc67SJDQor7LWc7JuU7LacDQor7LWc7KKF7IOBDQor7LWc7JiB66qpDQor7LWc7YOc7IiYDQor7LWc7Jyk7ISdDQor7LWc6riw7ZW0DQor7LWc7Jqp7JiBDQor7LWc7YOc7IiYDQor7LWc7ZmN7Z2sDQor7LWc67OR7J6QDQor7LWc7IiY7LKcDQor7LWc7YOc7IiYDQor7LWc7Z2s7YOcDQor7LWc7JiB7KO8DQor7LWc7JyE7ZiEDQor7LWc7YOc7IiYDQor7LWc7KKF67O1DQor7LWc7KSA7ZicDQor7LWc7KeE7J6QDQor7LWc7YOc7IiYDQor7LWc7JuQ642VDQor7LWc7IOB6raMDQor7LWc6rCV6rCRDQor7LWc7YOc7IiZDQor7LWc66GA7JuQDQor7LWc7IS46re8DQor7LWc7J6l7J6sDQor7LWc7YOc7IigDQor7LWc7IOB7JqxDQor7LWc7Iug7IiYDQor7LWc66+47JWEDQor7LWc7YOc7Je0DQor7LWc66y066GdDQor7LWc7KKF7Zi4DQor7LWc7J2A7IudDQor7LWc7YOc7JiBDQor7LWc7KSA6ri4DQor7LWc66qF7YOcDQor7LWc7J286riwDQor7LWc7YOc7JiBDQor7LWc7IOB6riwDQor7LWc64+Z7KKFDQor7LWc7Zi47JqxDQor7LWc7YOc7J6QDQor7LWc7KCV7ZmYDQor7LWc6rK97IiYDQor7LWc7ISd6recDQor7LWc7YOc7KKFDQor7LWc7IaM64+EDQor7LWc7LKg6rWQDQor7LWc7J6s656YDQor7LWc7YOc7KKFDQor7LWc7JiB7JuFDQor7LWc7J6l7IOBDQor7LWc64yA6riwDQor7LWc7YOc7KeEDQor7LWc64yA67O1DQor7LWc7J286recDQor7LWc7ISx7YOcDQor7LWc7YOc7Zi4DQor7LWc6rK97IiZDQor7LWc7J246regDQor7LWc7Jqp7Jq0DQor7LWc7YOc7ZmUDQor7LWc7YOc7JewDQor7LWc7Iic7Zi4DQor7LWc7JiB64yADQor7LWc7YOc7Z2lDQor7LWc7ZWc7JqwDQor7LWc7YOc7ISdDQor7LWc7ISx7IigDQor7LWc7YyQ6rWwDQor7LWc7YOc7IudDQor7LWc7KCV7Zi4DQor7LWc64yA7JiBDQor7LWc7YyQ64KoDQor7LWc7IK87LKgDQor7LWc7IK87IiYDQor7LWc7KGw7KKFDQor7LWc7YyQ64+ZDQor7LWc6rSR7Ja4DQor7LWc7Iic7ISdDQor7LWc7IiY7IudDQor7LWc7YyQ67SJDQor7LWc7Jqw7ZmYDQor7LWc7KKF7IudDQor7LWc64W47Zi4DQor7LWc7YyQ7JWUDQor7LWc7ISd64+EDQor7LWc7ISx66eMDQor7LWc67OR7JilDQor7LWc7YyQ7Je0DQor7LWc7KCV7Zi4DQor7LWc7JuQ7JewDQor7LWc7Jqp7J24DQor7LWc7YyQ7JqpDQor7LWc7Jyk7J6sDQor7LWc64us7Zy0DQor7LWc7IOB7JikDQor7LWc7YyQ7YOcDQor7LWc67OR7IicDQor7LWc7YOc7IudDQor7LWc7IiY7J28DQor7LWc7YyQ7Zi4DQor7LWc7IiZ7JyoDQor7LWc7ZmN6rOkDQor7LWc7ISx7IiZDQor7LWc7YyU7IOdDQor7LWc67OR7IiZDQor7LWc6rWs6riwDQor7LWc6rec6rCRDQor7LWc7YyU7IiYDQor7LWc7KCV7ISdDQor7LWc67O16rWQDQor7LWc7ISg66qFDQor7LWc7Yy97KO8DQor7LWc7LC97JikDQor7LWc7KCV7LKgDQor7LWc7IOB7Je0DQor7LWc7ZKN7JuFDQor7LWc7ISx66eJDQor7LWc7YOc7IiYDQor7LWc7IOB64+EDQor7LWc7ZWE64+ZDQor7LWc7Jm464yADQor7LWc6ri47IiYDQor7LWc7J247JykDQor7LWc7ZWE67aEDQor7LWc6rCA7JuQDQor7LWc7IS46rK9DQor7LWc7KeE7J24DQor7LWc7ZWE7IicDQor7LWc7Z2s7Z2sDQor7LWc7J6l7KGwDQor7LWc7KCV7KGwDQor7LWc7ZWE7IudDQor7LWc7JuQ7JuQDQor7LWc7Jew7JqpDQor7LWc6rWQ7ZGcDQor7LWc7ZWY7JiBDQor7LWc64+Z6riwDQor7LWc7Iq57KSADQor7LWc6re86rOkDQor7LWc7ZWY7J6QDQor7LWc7Jqp67CwDQor7LWc7KeE7ZuIDQor7LWc7JaR6riwDQor7LWc7ZWZ64+EDQor7LWc64us7ZWZDQor7LWc7JaR7Zi4DQor7LWc7ZiE7ZmYDQor7LWc7ZWZ7ISdDQor7LWc6rCR7Zi4DQor7LWcIOuPmQ0KK+y1nOuztOq4sA0KK+y1nO2VmeyLnQ0KK+y1nOy2mOyEoA0KK+y1nOuzkeyImA0KK+y1nOyKueyEnQ0KK+y1nO2VnOyEsQ0KK+y1nOyEuOuztQ0KK+y1nOyjvO2drA0KK+y1nOyCrOyEsQ0KK+y1nO2VnOyImA0KK+y1nOywrOyInA0KK+y1nOyYgeuegA0KK+y1nO2Zqeu0iQ0KK+y1nO2VnOyImA0KK+y1nOuzkeyekA0KK+y1nO2drOyZhA0KK+y1nO2VhOuLrA0KK+y1nO2VnOyjvA0KK+y1nOuvuOq3nA0KK+y1nOyduOqzpA0KK+y1nOyasOqyvQ0KK+y1nO2VnOyynA0KK+y1nOy2mOyLoA0KK+y1nO2ZmOq2jA0KK+y1nOuzkeunjA0KK+y1nO2VnOyyoA0KK+y1nOyerOyImQ0KK+y1nOywveynhA0KK+y1nOyEoOyyoA0KK+y1nO2VnO2YuA0KK+y1nO2DnOusuA0KK+y1nOyMjeq3nA0KK+y1nOyduOq4uA0KK+y1nO2VtOqzpA0KK+y1nOuMgOyWkQ0KK+y1nOyImO2VmQ0KK+y1nOyDgeyekA0KK+y1nO2VtOyImQ0KK+y1nOyDge2ZjQ0KK+y1nOyYpOyLnQ0KK+y1nO2YhOujoQ0KK+y1nO2VtOyIoA0KK+y1nO2DnOq3nA0KK+y1nOyiheuNlQ0KK+y1nOuvvOyEnQ0KK+y1nO2VtOyLnQ0KK+y1nOq3nOyInA0KK+y1nOygleyImA0KK+y1nO2bhOyYgQ0KK+y1nO2VtOyjvA0KK+y1nOybkO2ZmA0KK+y1nO2YuOuPhA0KK+y1nOuqhe2YuA0KK+y1nO2VtOyynA0KK+y1nOy2mO2ZmA0KK+y1nOuvuOyYgQ0KK+y1nOyaqeyjvA0KK+y1nO2VtOyynA0KK+y1nOyiheyLnQ0KK+y1nOyImO2YuA0KK+y1nOq3vOyLnQ0KK+y1nO2VtOyyoA0KK+y1nOustOyLnQ0KK+y1nOq4uO2DnQ0KK+y1nOyCrOuPhA0KK+y1nO2VtO2ZmA0KK+y1nO2DnO2YlQ0KK+y1nOunjOyYpQ0KK+y1nOygle2DnA0KK+y1nO2Ygeq4sA0KK+y1nOq4uO2YuA0KK+y1nOyaqeyInA0KK+y1nOuPhOywrA0KK+y1nO2YhOyEsQ0KK+y1nOygkOyXsA0KK+y1nOyWkeqztQ0KK+y1nOyduOyaqQ0KK+y1nO2YleqzpA0KK+y1nOyCvOusuA0KK+y1nOuNleq2jA0KK+y1nOynhO2YgQ0KK+y1nO2Yleq0gA0KK+y1nOyEseuvuA0KK+y1nOyDgeyXtA0KK+y1nOyDgeyImQ0KK+y1nO2YleuhnA0KK+y1nOyjvO2YuA0KK+y1nO2VnOq4uA0KK+y1nO2DnOyasA0KK+y1nO2YleyEnQ0KK+y1nOyduOyYpQ0KK+y1nOqyveyasA0KK+y1nOuCmeq1rA0KK+y1nO2YuOqygQ0KK+y1nOynhOyImA0KK+y1nOydgOunjA0KK+y1nOqyveuvuA0KK+y1nO2YuOuTnQ0KK+y1nOyYpeyEnQ0KK+y1nOyaqeyduA0KK+y1nOyEseyngQ0KK+y1nO2YuOyEoA0KK+y1nOq4sOyynA0KK+y1nOuMgOyekA0KK+y1nOyEne2YuA0KK+y1nO2YuOynhA0KK+y1nOyYgeu2hA0KK+y1nOyYge2drA0KK+y1nOyyoOyngA0KK+y1nO2ZjeqzpA0KK+y1nO2MkOyyoA0KK+y1nOuzke2ZlA0KK+y1nOyYgeq3nA0KK+y1nO2ZjeyEnQ0KK+y1nO2VtOyXsA0KK+y1nOybkOyImQ0KK+y1nO2DnOyInA0KK+y1nO2ZjeyEnQ0KK+y1nOyerOq3nA0KK+y1nOyYpO2ZmA0KK+y1nOyYgeuFhA0KK+y1nO2ZjeyLnQ0KK+y1nOyCvOyyoA0KK+y1nOyDge2YuA0KK+y1nOuNle2DnA0KK+y1nO2ZjeyLnQ0KK+y1nO2drOuhnQ0KK+y1nOuvuOyImA0KK+y1nOyImOyglQ0KK+y1nO2ZjeyLnQ0KK+y1nOygleudvQ0KK+y1nO2aqO2PiQ0KK+y1nOyaqeuPmQ0KK+y1nO2ZjeydtQ0KK+y1nOyerOyasQ0KK+y1nO2YuOuCqA0KK+y1nOq3vOuqqA0KK+y1nO2ZjeynkQ0KK+y1nOy2mOywrA0KK+y1nOyEoOq1rA0KK+y1nOyDgeyhsA0KK+y1nO2ZlOyImQ0KK+y1nO2DnO2biA0KK+y1nOygkOydtQ0KK+y1nOusuOuwsA0KK+y1nO2ZmOuPmQ0KK+y1nOygle2drA0KK+y1nOyVoO2ZmA0KK+y1nOqwke2DnA0KK+y1nO2aqOqzpA0KK+y1nOyngOq4sA0KK+y1nOydhO2VnA0KK+y1nOunieyErQ0KK+y1nO2aqOuPmQ0KK+y1nO2VnO2YuA0KK+y1nOyDgey2lA0KK+y1nOq3nOq4uA0KK+y1nO2dpeq4sA0KK+y1nOq4sOyEoA0KK+y1nOyerO2ZmA0KK+y1nOydmOyekA0KK+y2lOuvuOyImQ0KK+y2lOqwkeq2jA0KK+y2lOyCvOyYpQ0KK+y2lOq4sOuhnQ0KK+y2lOyXsO2YhA0KK+y2lOuRkOyjvA0KK+y2lOyerOycpA0KK+y2lOyDge2aqA0KK+y2lOyYge2YuA0KK+y2lOyDgeq2jA0KK+y2lOycpOyYgQ0KK+y2lO2YhO2VnA0KK+y2lOyduOyImA0KK+y2lOyaqeyekA0KK+y2lOyerO2ZmA0KK+y2lOygleyImQ0KK+y2lOygleyYpQ0KK+y2lO2DnOynhA0KK+y2lOydtOyEoA0KK+y2lOyDgeynhA0KK+y2lO2DnO2YuA0KK+y2lOyyoOyWtQ0KK+y2lOq4iO2YuA0KK+y2lOuzke2DnQ0KK+2DgeuvuOyYpQ0KK+2DgeygleyynA0KK+2DgeyyoOq4sA0KK+2DgeyYgeqzoA0KK+2DgeyerOuPmQ0KK+2Dgeqwke2drA0KK+2DgeyerOyXtA0KK+2Dgeq2jOyDnQ0KK+2Dgeyihe2drA0KK+2Dgeywveq2jA0KK+2DgeyYgeuCqA0KK+2DgeuvuOuTnQ0KK+2Dge2drOqzpA0KK+2DgeyerOuCqA0KK+2Dgeq4sOyerA0KK+2DgeynhOq2jA0KK+2OuOyEneynhA0KK+2OuOuNleyglQ0KK+2OuOybkOyWkQ0KK+2OuOyImeyYpQ0KK+2RnOyEoO2drA0KK+2RnO2drOyImA0KK+2RnOycpO2ZmA0KK+2RnOu0ieq4sA0KK+2RnOyEuOusuA0KK+2RnOyDgey2mA0KK+2RnOyduOyLnQ0KK+2RnOykgOyhsA0KK+2RnOyInOq4sA0KK+2RnOyblOqyvQ0KK+2RnOyYgeyduA0KK+2RnOycpOyEnQ0KK+2RnOyYpe2YhA0KK+2RnOywqOyXsA0KK+2RnOqyveyglQ0KK+2RnOyCvOqwkQ0KK+2RnOybkOyErQ0KK+2RnOq4sOyyoA0KK+2RnOuzkeyErQ0KK+2RnOywveyYgQ0KK+2RnOyerOyImA0KK+2RnOyerOyInA0KK+2RnOyerOyVlA0KK+2RnOq1reyhsA0KK+2RnOygkOybkA0KK+2RnOyImOqzpA0KK+2RnOq0keyEoA0KK+2RnO2YuOq3vA0KK+2UvOuPmeyEnQ0KK+2UvOqwle2ZmA0KK+2UvOyYge2YuA0KK+2UvOycpO2ZjQ0KK+2VmOqwkeyLnQ0KK+2VmO2ZjeyjvA0KK+2VmO2Zqe2drA0KK+2VmOyYge2drA0KK+2VmOqyveunjA0KK+2VmOu0ieyXsA0KK+2VmOycpOyImA0KK+2VmOywqOuFuA0KK+2VmOqyveyhsA0KK+2VmOyImO2drA0KK+2VmOyihe2DnQ0KK+2VmOyYgeuNlQ0KK+2VmOqyve2drA0KK+2VmOq4sOyjvA0KK+2VmO2DnOyImA0KK+2VmOqyveunjA0KK+2VmOqzhOyEoA0KK+2VmOq0ke2YuA0KK+2VmOyiheunjA0KK+2VmOuzkeyasA0KK+2VmOq1rOuhnQ0KK+2VmOymneydtQ0KK+2VmOyEseyhsA0KK+2VmOuvuOyDnQ0KK+2VmOq4sOyjvA0KK+2VmOyDgeyXsA0KK+2VmOq0keyEnQ0KK+2VmOyYgeq4sA0KK+2VmOq4uOyImA0KK+2VmOyLrOyerA0KK+2VmOyerOyEnQ0KK+2VmOuMgOyImA0KK+2VmOuCqOyInA0KK+2VmOyDgeybkA0KK+2VmOy+jOyEuA0KK+2VmOq4sO2DnA0KK+2VmOuMgO2YuA0KK+2VmOyYpeyXtA0KK+2VmOyerOyekQ0KK+2VmOygleydtA0KK+2VmOuPmeywrA0KK+2VmO2DnOuPmQ0KK+2VmOyerO2YuA0KK+2VmOybkOyasQ0KK+2VmOunjO2DnA0KK+2VmOuvvOyEnQ0KK+2VmOuCtOyEsQ0KK+2VmOyYgeyaqQ0KK+2VmOuqheuPmQ0KK+2VmOyImO2ZmA0KK+2VmOyerOydvA0KK+2VmOynhOynhA0KK+2VmOustOyInA0KK+2VmOuzkeuzkQ0KK+2VmOqyveuPjA0KK+2VmOyYgeyDgQ0KK+2VmOuvuOqyvQ0KK+2VmOyImO2DnA0KK+2VmOyiheyEuA0KK+2VmOyerO2YuA0KK+2VmOuvuOyglQ0KK+2VmOuzkeyEsQ0KK+2VmOuPmeyImA0KK+2VmOyDge2YuA0KK+2VmOuzkeq0gA0KK+2VmOyEse2DgQ0KK+2VmOynhOuztA0KK+2VmOycpOuNlQ0KK+2VmOuzkeybkA0KK+2VmOyDgeuzkQ0KK+2VmO2DnOyasQ0KK+2VmOyerOyyoA0KK+2VmOu0ieqwkQ0KK+2VmOq0keyLnQ0KK+2VmOyEuOyyoA0KK+2VmOygleuLrA0KK+2VmOu2hOyhsA0KK+2VmOyerOu0iQ0KK+2VmOyEneyihQ0KK+2VmOunkOycpA0KK+2VmOyCvOq4iA0KK+2VmOunjO2ajA0KK+2VmOyYgeyYpA0KK+2VmOqyveuCnA0KK+2VmOyDgeyLnQ0KK+2VmOyiheyImA0KK+2VmOyEneyekA0KK+2VmOyaqe2YuA0KK+2VmOyEneq3vA0KK+2VmOq3nOuztQ0KK+2VmO2XjOyImA0KK+2VmO2VtOycpA0KK+2VmOyEneyImA0KK+2VmOyEseyImA0KK+2VmOyihe2YuA0KK+2VmO2drOyEuA0KK+2VmOyEuOynhA0KK+2VmOyiheq4sA0KK+2VmO2ZlOyyoA0KK+2VmOycpO2YuA0KK+2VmOyInOuCqA0KK+2VmOyEse2ZmA0KK+2VmOyWkeyInA0KK+2VmOuLrO2YuA0KK+2VmOyInOyImQ0KK+2VmOycpOq2jA0KK+2VmOyduOyekA0KK+2VmOyDge2YuA0KK+2VmOyInO2XjA0KK+2VmOuzkeq4iA0KK+2VmOyEseyVlA0KK+2VmOyasOqzpA0KK+2VmOyIoOyEsQ0KK+2VmOyImOybhQ0KK+2VmO2DnOq1kA0KK+2VmOycpOq1rA0KK+2VmOyLrO2ZjQ0KK+2VmOyXsOy2mA0KK+2VmCDqt5wNCivtlZjssL3smrENCivtlZjsl7DtnawNCivtlZjrs7Xqt7wNCivtlZjsm5DsmKQNCivtlZjqsbTsl7QNCivtlZjsmIHtg5wNCivtlZjsnbzrhbgNCivtlZjshJ3tnaANCivtlZjrr7jsi50NCivtlZjsmbjsiJgNCivtlZjqsr3tlqUNCivtlZjqsr3smrANCivtlZjrj5nstpwNCivtlZjsmqnsiJgNCivtlZjsmIHrk50NCivtlZjtg5zqsJENCivtlZjsmrDshLENCivtlZjsnKTsnbQNCivtlZjsoJXsl7QNCivtlZjsirnqt6ANCivtlZjshJ3rtIkNCivtlZjsnbjsiJgNCivtlZjsmqnshK0NCivtlZjsnbzsgrwNCivtlZjsirntmIQNCivtlZjsnbjsmKUNCivtlZjsoJXsnbwNCivtlZjrs7Trj5kNCivtlZjsi6DtmLgNCivtlZjsnoTsiJwNCivtlZjsnqzrgqgNCivtlZjshpDqsr0NCivtlZjso7ztg50NCivtlZjsnqXsl7ANCivtlZjri6zsobANCivtlZjrs5HsnpANCivtlZjsiJjrrLgNCivtlZjsnqzsiJwNCivtlZjrhbjso7wNCivtlZjsoJXqt5wNCivtlZjsnbjtmowNCivtlZjsnqzso7wNCivtlZjrtInrqqgNCivtlZjsmIHshKANCivtlZjrjZXsg4ENCivtlZjsoJDsiJwNCivtlZjsiJjsp4QNCivtlZjtlbTquLgNCivtlZjsoJDtmY0NCivtlZjsoJDsmKUNCivtlZjsnbXsl7QNCivtlZjsmqntmZgNCivtlZjsiJjsiJgNCivtlZjsoJXsl7ANCivtlZjsoJXshKANCivtlZjsirnshKANCivtlZjsg4HsnbQNCivtlZjsoJXsl7QNCivtlZjsuaDshKANCivtlZjsmqnso7wNCivtlZjsmIHsl7QNCivtlZjsoJXtnawNCivtlZjqsr3tg50NCivtlZjqt5zstpgNCivtlZjsnKTsp4QNCivtlZjsooXrsLANCivtlZjshLHtnawNCivtlZjsooXtmZgNCivtlZjsoJXshK0NCivtlZjsooXsl7ANCivtlZjsg4HtnaANCivtlZjsiJzquLANCivtlZjtmIHsiJgNCivtlZjssL3rtoANCivtlZjsnZHssKwNCivtlZjrs5HtmZgNCivtlZjsoJXtmLgNCivtlZjstpjro6ENCivtlZjsmIHrj5kNCivtlZjsooXshJ0NCivtlZjsnqzqsr0NCivtlZjtg4DsmqkNCivtlZjrk53tlZgNCivtlZjsmIHrqqgNCivtlZjsnqztlZkNCivtlZjtg5zqsJENCivtlZjsmKXsm5ANCivtlZjsmIHsl7ANCivtlZjqs7XsmIENCivtlZjtg5zqtawNCivtlZjsooXshJ0NCivtlZjsooXrsLANCivtlZjsnqzsl7ANCivtlZjtg5ztmZgNCivtlZjrnpjtm4gNCivtlZjrkZDrqoUNCivtlZjsnKTsuZgNCivtlZjtlZnsiKANCivtlZjsiJzquLANCivtlZjstpjrrLgNCivtlZjtlZjtmLgNCivtlZjtlZnsmqkNCivtlZjrrLTsp4QNCivtlZjsooXsg4ENCivtlZjrjIDsobANCivtlZjtlbTrqoUNCivtlZjsmIHrs7UNCivtlZjrtoTtmLgNCivtlZjsooXtmIQNCivtlZjtlbTrqoUNCivtlZjtlZzsl7ANCivtlZjrsLHsiJgNCivtlZjsiJztmIQNCivtlZjtmZTsiJwNCivtlZjtmITtnawNCivtlZjqta3sg50NCivtlZjssL3snpANCivtlZjtm4TsobANCivtlZjtmY3qt7wNCivtlZjsnbjsmqkNCivtlZjsg4HssL0NCivtlZwg6ri4DQor7ZWc7ZW067SJDQor7ZWc64us6re8DQor7ZWc66+47JiBDQor7ZWcIOyYpQ0KK+2VnOyerOyXtA0KK+2VnOybkOyImA0KK+2VnOuCqOyEnQ0KK+2VnOqwkeyImA0KK+2VnO2DnOujoQ0KK+2VnOychOyYpQ0KK+2VnOuzteyLnQ0KK+2VnOqwkeyInA0KK+2VnOyDgeyVhQ0KK+2VnOuqheynhA0KK+2VnOq0keyImA0KK+2VnOqwleygnA0KK+2VnOq3nOy5oA0KK+2VnOyEneyaqQ0KK+2VnOuzteyXsA0KK+2VnOqyveyVoA0KK+2VnO2YuOuMgA0KK+2VnOyEseyVhA0KK+2VnO2Zje2VmQ0KK+2VnOqyveydtA0KK+2VnO2MkOyEnQ0KK+2VnO2DnOyIoA0KK+2VnOuwqeq3vA0KK+2VnOqyveyyoA0KK+2VnOycpOydtA0KK+2VnOykkeuNlQ0KK+2VnO2ZjeybkA0KK+2VnOqzpOyEnQ0KK+2VnOqyveyCvA0KK+2VnOyInO2VnA0KK+2VnOyYge2YhA0KK+2VnOqzvO2drA0KK+2VnOy2mOyhsA0KK+2VnOu4neyImQ0KK+2VnO2YleydtA0KK+2VnOq0gO2YhA0KK+2VnOu2hOy2mA0KK+2VnOyyreyLnQ0KK+2VnOuNle2ZmA0KK+2VnOq1rOydvA0KK+2VnOyEneyerA0KK+2VnOyEseq3vA0KK+2VnO2Wpeq3nA0KK+2VnOq1reyLnQ0KK+2VnOq4sO2YuA0KK+2VnO2MkOunjA0KK+2VnOyyoOy2nA0KK+2VnOq4iOyErQ0KK+2VnOyerO2YhA0KK+2VnOuzkeuqqQ0KK+2VnOywqOuvuA0KK+2VnOq4sOyyoA0KK+2VnOyerO2YuA0KK+2VnOq4sOyEoA0KK+2VnOyInOyErQ0KK+2VnOq4sO2VmQ0KK+2VnOuzkeuqqQ0KK+2VnOydvOyhsA0KK+2VnOyYge2drA0KK+2VnOq4uOybhQ0KK+2VnOywrOyEnQ0KK+2VnOynhO2aqA0KK+2VnOyduO2YuA0KK+2VnOuFuOyImA0KK+2VnOyEseqwlQ0KK+2VnOyYgeyInA0KK+2VnO2DnOq3oA0KK+2VnOuLtOyYpQ0KK+2VnOygkOuNlQ0KK+2VnOydvOyihQ0KK+2VnOyInOuNlQ0KK+2VnOuMgOq3vA0KK+2VnOyCvO2ZjQ0KK+2VnOygleuTnQ0KK+2VnOyEseq3nA0KK+2VnOuMgOyEsQ0KK+2VnO2YhOyYpQ0KK+2VnOydvOq1rA0KK+2VnOynhOuPhA0KK+2VnOuMgOyYgQ0KK+2VnOyImOyEuA0KK+2VnOyYgeyYgQ0KK+2VnOydgOuztQ0KK+2VnOuNleq1kA0KK+2VnO2YnO2YhA0KK+2VnOyYgeyImA0KK+2VnOyCvOuPhA0KK+2VnOuNleycpA0KK+2VnOyniOyglQ0KK+2VnOyImOyYpA0KK+2VnO2DnOqwkQ0KK+2VnOuPhOy5mA0KK+2VnOyImeustQ0KK+2VnOygleyErQ0KK+2VnO2DnO2YuA0KK+2VnOuPmeq2jA0KK+2VnOuqheyImA0KK+2VnOyEseybkA0KK+2VnOyduO2YhA0KK+2VnOuPmeyImA0KK+2VnOywveq3vA0KK+2VnOyiheusuA0KK+2VnOyasOuTnQ0KK+2VnOuPmeyWkQ0KK+2VnOyImOyEnQ0KK+2VnOqyveyEoA0KK+2VnOyEseyInA0KK+2VnOuRkOq1kA0KK+2VnOyCvOyEnQ0KK+2VnOywqO2DnQ0KK+2VnOuNleyhsA0KK+2VnOuRkO2YhA0KK+2VnOydvOybkA0KK+2VnOq4sOq4uA0KK+2VnOqyveq1rA0KK+2VnOunjOychA0KK+2VnOydke2YuA0KK+2VnOyduOyLnQ0KK+2VnOustOunjA0KK+2VnOunjO2YuA0KK+2VnOyYpOyXtA0KK+2VnOyduO2aqA0KK+2VnOyImOydgA0KK+2VnOunueq1kA0KK+2VnOq3nOuNlQ0KK+2VnOy2qeyYgQ0KK+2VnOuPmeuPmQ0KK+2VnOuqheqwkQ0KK+2VnOyerOq1rQ0KK+2VnOyerO2DnQ0KK+2VnOq4sOq4sA0KK+2VnOuqheyImA0KK+2VnO2DnOq4sA0KK+2VnOy2mO2YhA0KK+2VnOyImOyImA0KK+2VnOuqheyInA0KK+2VnOyaqeyVlA0KK+2VnOyiheyErQ0KK+2VnO2DnOuNlQ0KK+2VnOustOq1kA0KK+2VnO2VmeyImA0KK+2VnOykkeyxhA0KK+2VnOyEneusuA0KK+2VnOustO2YhA0KK+2VnOuCnOunjA0KK+2VnOynhOywvQ0KK+2VnOqyveujoQ0KK+2VnOusuOq1kA0KK+2VnOykgOycpA0KK+2VnOuzke2YuA0KK+2VnOyjvOq3nA0KK+2VnOuvvOyekA0KK+2VnOy2mOq0kQ0KK+2VnO2VtO2ZjQ0KK+2VnOyiheyYpQ0KK+2VnOuzkeq2jA0KK+2VnOyCvO2drA0KK+2VnOykgOyErQ0KK+2VnOyYpeyjvA0KK+2VnOuzkeybkA0KK+2VnO2DnOyImA0KK+2VnO2YhOyerA0KK+2VnOyaqeyDgQ0KK+2VnOuzkeyyoA0KK+2VnO2VmOyasA0KK+2VnOyLnOq1kA0KK+2VnOyCvOuqhQ0KK+2VnOuzke2VnA0KK+2VnOyMje2YuA0KK+2VnO2MkO2YhA0KK+2VnOyInOyEsQ0KK+2VnOuzteuegA0KK+2VnOygleqyvQ0KK+2VnOuqveq4sA0KK+2VnOyiheuNlQ0KK+2VnOuzteyImA0KK+2VnO2DnOq3vA0KK+2VnOyYgeyZhA0KK+2VnOyYgeyInA0KK+2VnOuzteyImA0KK+2VnOuMgO2DnA0KK+2VnOqyveydtA0KK+2VnO2VmeyEnQ0KK+2VnOu0ieyEnQ0KK+2VnOydgO2ZmA0KK+2VnOuPmeyImA0KK+2VnO2ZqeyImA0KK+2VnOu0ieyEoA0KK+2VnOyEseyEnQ0KK+2VnO2DnO2DnA0KK+2VnOuvuOydvA0KK+2VnOu0ieyImA0KK+2VnOyaqeyasA0KK+2VnOyYgeuvvA0KK+2VnOustOydtA0KK+2VnOu0ie2drA0KK+2VnOuzkeyatA0KK+2VnOyaqe2YuA0KK+2VnOyerO2YuA0KK+2VnOu2gOq1kA0KK+2VnO2MkOyImA0KK+2VnOuCmeyZhA0KK+2VnO2DnOqwkQ0KK+2VnOyCrOydvA0KK+2VnO2VmeusuA0KK+2VnOyYge2ZlA0KK+2VnOq3nOyEoA0KK+2VnOyCvOyInA0KK+2VnOygleydtA0KK+2VnOq0keuPmQ0KK+2VnOqyve2ZmA0KK+2VnOyCvOycqA0KK+2VnOyDgeykgA0KK+2VnOyEney2nA0KK+2VnOusuO2YuA0KK+2VnOyDgeuMgA0KK+2VnOybkOynhA0KK+2VnOyKue2YuA0KK+2VnO2ZjeyXtA0KK+2VnOyDgeuqqA0KK+2VnOuNleyasA0KK+2VnOyDge2drA0KK+2VnOyiheq4sA0KK+2VnOyDgeu0iQ0KK+2VnOybkO2YuA0KK+2VnOynhOuqqQ0KK+2VnOywve2ZmA0KK+2VnOyDgeyEnQ0KK+2VnOyjvOyLnQ0KK+2VnOyYge2VmQ0KK+2VnO2YuOyXtA0KK+2VnOyDgeyEoA0KK+2VnOq0ke2ZlA0KK+2VnOq3gOuqqA0KK+2VnOyiheycoQ0KK+2VnOyDgeyEpA0KK+2VnOqwkeqwkQ0KK+2VnOyEseq3nA0KK+2VnO2aqOy2mA0KK+2VnOyDgeyImA0KK+2VnOyduOydvA0KK+2VnOyCvOq4sA0KK+2VnOyaqeybkA0KK+2VnOyDgeyImA0KK+2VnOygkOuvuA0KK+2VnOycoOyaqQ0KK+2VnO2VtOyasA0KK+2VnOyDgeyasA0KK+2VnOuCqO2YhA0KK+2VnOyDgeyhsA0KK+2VnOybkO2DnA0KK+2VnOyDgeyasQ0KK+2VnO2DnOunjA0KK+2VnOunjOyImA0KK+2VnOybkO2VmQ0KK+2VnOyDge2VmQ0KK+2VnOywrOq4sA0KK+2VnOyZleyYpA0KK+2VnOydvOyasA0KK+2VnOyDge2VmQ0KK+2VnO2DnOyIoA0KK+2VnOyWkeyImA0KK+2VnO2YuOuztA0KK+2VnOyDge2YuA0KK+2VnO2VtOyYgQ0KK+2VnOyhsO2biA0KK+2VnOustOyaqQ0KK+2VnOyDneq4sA0KK+2VnOyDge2YuA0KK+2VnOyaqeq3nA0KK+2VnOyDgeuhnQ0KK+2VnOyEneuhnQ0KK+2VnO2VmeuNlQ0KK+2VnOuCqOyXvQ0KK+2VnOyaqeyduA0KK+2VnOyEneuylA0KK+2VnOy2mOu0iQ0KK+2VnOyEseyErQ0KK+2VnOuqheuNlQ0KK+2VnOyEneyLnQ0KK+2VnOyiheyYgQ0KK+2VnOywveqzpA0KK+2VnO2Vme2RnA0KK+2VnOyEneybkA0KK+2VnOuPmeyGjA0KK+2VnOq4uOyEnQ0KK+2VnOyaqeuFhA0KK+2VnOyEoOyjvA0KK+2VnOq4sOyehA0KK+2VnOyWuO2YuA0KK+2VnOycpO2drA0KK+2VnOyEseq1kA0KK+2VnO2YhO2ZmA0KK+2VnOyEneq4sA0KK+2VnOyasO2ZlA0KK+2VnOyEseq1rA0KK+2VnO2Dneq3oA0KK+2VnOyaqeq4sA0KK+2VnOq4sOyLnQ0KK+2VnOyEseq1rA0KK+2VnO2YnOyEnQ0KK+2VnOusuOyhsA0KK+2VnOyImOyaqQ0KK+2VnOyEseq1rQ0KK+2VnO2drOuNlQ0KK+2VnOuzkeyyoA0KK+2VnOuqheyInA0KK+2VnOyEuOyYgQ0KK+2VnOyihe2YuA0KK+2VnOyyoOyyoA0KK+2VnOu0ieyImQ0KK+2VnOyEuOyaqQ0KK+2VnOuzkeq1rA0KK+2VnOyaqeqzpA0KK+2VnOu2hO2VmQ0KK+2VnOyGjOyInA0KK+2VnOyYgeyLnQ0KK+2VnOyaqeqwkQ0KK+2VnOyyoOyekA0KK+2VnOyImOyDgQ0KK+2VnOy2mOq4sA0KK+2VnOybhe2doA0KK+2VnOyYgeyLnQ0KK+2VnOyImOyZhA0KK+2VnOyerOq3vA0KK+2VnOunjOynhA0KK+2VnOyXsO2VmA0KK+2VnOyInOybkA0KK+2VnO2DnOuCqA0KK+2VnO2VnO2YuA0KK+2VnOydteuztA0KK+2VnOyInOywrA0KK+2VnOygleydgA0KK+2VnOyKueycqA0KK+2VnOyihe2YuA0KK+2VnOyKueyEuA0KK+2VnOq3nOyLnQ0KK+2VnOyerOyXsA0KK+2VnO2VhO2YuA0KK+2VnOyKueyduA0KK+2VnOydmOyhsA0KK+2VnO2DnOq4uA0KK+2VnOq3nOyyoA0KK+2VnOyKue2YuA0KK+2VnO2drOyLnQ0KK+2VnOyDgeyImA0KK+2VnOyGoeyEoA0KK+2VnOyXtOywrA0KK+2VnOyMje2YuA0KK+2VnOyaqeyYgQ0KK+2VnOycpO2VtA0KK+2VnOyYgeuMgA0KK+2VnOyKueuNlQ0KK+2VnOyDgeuhgA0KK+2VnOyYgeustQ0KK+2VnOyYgeuqqA0KK+2VnO2drO2DnA0KK+2VnOustOyXtA0KK+2VnOuzteyhsA0KK+2VnOyYgeyErQ0KK+2VnOqwke2YhA0KK+2VnOywveumvA0KK+2VnOybkOyImQ0KK+2VnOyYgeyImA0KK+2VnOuPmeuPjA0KK+2VnOynhOywvQ0KK+2VnOyaqeuegA0KK+2VnOyYgeyYpQ0KK+2VnOqyveuNlQ0KK+2VnOu2hO2YgQ0KK+2VnOyZuOuztQ0KK+2VnOyYgeyyoA0KK+2VnOuMgO2XjA0KK+2VnOq4sOyEnQ0KK+2VnOyDgeyYgQ0KK+2VnOyYge2DnA0KK+2VnOyduOyImA0KK+2VnOqyveyImQ0KK+2VnOyYge2drA0KK+2VnOyYge2YhA0KK+2VnOuzkeyImA0KK+2VnOyInOyInA0KK+2VnOyEse2YhA0KK+2VnOyYge2drA0KK+2VnOygleyImA0KK+2VnOyGjOyYpA0KK+2VnOyihe2DnA0KK+2VnOyaqeyImA0KK+2VnOyYge2YuA0KK+2VnOybkOusuA0KK+2VnOydke2ZjQ0KK+2VnOyasOyIoA0KK+2VnOyDgeyYpQ0KK+2VnOqwle2WpQ0KK+2VnO2YleuPmQ0KK+2VnOyasOywrA0KK+2VnO2VhOyaqQ0KK+2VnOyehOyImA0KK+2VnOyKue2VmQ0KK+2VnOybkOq1kA0KK+2VnOyDgey2nA0KK+2VnO2VnOynhA0KK+2VnOyaqeyLnQ0KK+2VnOybkOyImA0KK+2VnOycoO2drA0KK+2VnO2YleyLnQ0KK+2VnO2VnOyIoA0KK+2VnOycoOq1kA0KK+2VnOyDgeyEsQ0KK+2VnO2DnOq1rA0KK+2VnOymneyYgQ0KK+2VnOycoeyngA0KK+2VnOq4iOyDgQ0KK+2VnOqyve2DnA0KK+2VnOyiheqwkQ0KK+2VnOycpO2YhA0KK+2VnOygley2nA0KK+2VnOq3nOyErQ0KK+2VnOuPmeq3nA0KK+2VnOydtOyIoA0KK+2VnOyjvOyXsA0KK+2VnOuvuOq3nA0KK+2VnOyjvOyerA0KK+2VnOyduOq1kA0KK+2VnOq3nO2VmQ0KK+2VnOynhOyaqQ0KK+2VnOyerOyasA0KK+2VnOyduOyImQ0KK+2VnOyerO2ctA0KK+2VnOyxhOyZhA0KK+2VnOyYgeq3nA0KK+2VnOydvOyEnQ0KK+2VnOyKue2ZlA0KK+2VnO2DnOyehA0KK+2VnOyduO2YuA0KK+2VnOyepe2VmQ0KK+2VnOybkOyEnQ0KK+2VnOygleq1rQ0KK+2VnOyasO2DnA0KK+2VnOyepe2YhA0KK+2VnOy2qeyInA0KK+2VnOykkeykkQ0KK+2VnOu0ieq3nA0KK+2VnOyepe2YhA0KK+2VnOuzkeyaqQ0KK+2VnOydmOyImA0KK+2VnOyduOqyvQ0KK+2VnOyerOq2jA0KK+2VnO2MkOq3nA0KK+2VnOq1kOyasQ0KK+2VnOyDgeybkA0KK+2VnOyerOyImA0KK+2VnOyiheuCqA0KK+2VnOyWuOyImA0KK+2VnO2drO2DnQ0KK+2VnOygleq1kA0KK+2VnOyCvO2DnA0KK+2VnOyInOqyvQ0KK+2VnOyWteykgA0KK+2VnOygleyInA0KK+2VnOyDgeyDgQ0KK+2VnOyihe2DnA0KK+2VnOyDge2VmA0KK+2VnOygleynhA0KK+2VnOyasOu2gA0KK+2VnOuzkeyekA0KK+2VnOyYgeyhsA0KK+2VnOygle2YuA0KK+2VnOuPmeunjA0KK+2VnOy2mOyaqQ0KK+2VnOqyve2DnA0KK+2VnOyiheyImA0KK+2VnOyblOqyvQ0KK+2VnOyerOyekA0KK+2VnOybkOq3nA0KK+2VnOyiheyImA0KK+2VnOyEse2YuA0KK+2VnOyMje2ZmA0KK+2VnOyerO2ZmA0KK+2VnOyiheyXtA0KK+2VnOyWkeykgA0KK+2VnOyiheyImA0KK+2VnOunkOq1rQ0KK+2VnOyiheyxhA0KK+2VnOyWkeyErQ0KK+2VnOyYpe2YuA0KK+2VnOydhOyYpA0KK+2VnOykgOq1kA0KK+2VnOyEneyEnQ0KK+2VnOyYge2YhA0KK+2VnOyerO2VmQ0KK+2VnOykgOyImA0KK+2VnOyEseyjvA0KK+2VnOyDgeq4sA0KK+2VnOy2mOq4uA0KK+2VnOykkeyLnQ0KK+2VnOuCqO2drA0KK+2VnOyYgeyEsQ0KK+2VnOyIoO2YuA0KK+2VnOykkeyVhQ0KK+2VnOq4sOyhsA0KK+2VnOyWkeyLpA0KK+2VnOyLnOyyoA0KK+2VnOyngOybkA0KK+2VnOuzkeqyvQ0KK+2VnOybheq4uA0KK+2VnO2VhO2VtA0KK+2VnOynhOq1kA0KK+2VnOyaqeusuA0KK+2VnOyWkeyImA0KK+2VnOyduOyekA0KK+2VnOynhOyVoA0KK+2VnOyihe2YhA0KK+2VnOyImOynhA0KK+2VnOycpOydtQ0KK+2VnOywveq3vA0KK+2VnOq3vOyImA0KK+2VnOuqheq3vA0KK+2VnOq4sO2VnA0KK+2VnOywveyEnQ0KK+2VnO2YleyYpA0KK+2VnOyInOunjA0KK+2VnOuPmeuPmQ0KK+2VnOywveyImA0KK+2VnO2VhOyaqQ0KK+2VnOyerOq4uA0KK+2VnOuPme2YuA0KK+2VnOyyoOyImA0KK+2VnOyEne2ZjQ0KK+2VnOy2mOuqqA0KK+2VnOyDgeyYgQ0KK+2VnOy5oOyaqQ0KK+2VnOyEneumvQ0KK+2VnOq1reyasA0KK+2VnOyDge2ZjQ0KK+2VnO2DnOuCqA0KK+2VnOuLrOydvA0KK+2VnOq4sOyEsQ0KK+2VnOyEse2ZmA0KK+2VnO2DnOyInA0KK+2VnO2DnO2VmA0KK+2VnOyihe2YuA0KK+2VnOyYgeyLpA0KK+2VnO2DnOy2nA0KK+2VnOydvOywrA0KK+2VnOyaqeyImQ0KK+2VnOyerO2YhA0KK+2VnO2MkOuLrA0KK+2VnOunkOyjvA0KK+2VnOygle2XjA0KK+2VnOywrOq3vA0KK+2VnO2YhOyImA0KK+2VnO2DnOyhsA0KK+2VnOqzhOydmA0KK+2VnOqwkeyEnQ0KK+2VnO2YhOyglQ0KK+2VnO2ZmOq1rA0KK+2VnOy2mO2VmQ0KK+2VnOyaqey4oQ0KK+2VnO2YleyImA0KK+2VnOyMjeyIoA0KK+2VnOyImOyEnQ0KK+2VnOyMjeuNlQ0KK+2VnO2YuOyXtA0KK+2VnOyImOuMgA0KK+2VnOyaqeyLnQ0KK+2VnOuvuOqyvQ0KK+2VnO2ZjeyEnQ0KK+2VnOyEuOyInA0KK+2VnOyblOq2jA0KK+2VnOyEoOyImA0KK+2VnO2aqOq3oA0KK+2VnOuLrOyInA0KK+2VnOq0keyLnQ0KK+2VnOygle2YuA0KK+2VnO2aqOuPmQ0KK+2VnOygle2YuA0KK+2VnOyEseyasA0KK+2VnOyihe2DnA0KK+2VnO2dpeyImA0KK+2VnOq4sOusuA0KK+2VnO2drOu2hA0KK+2VnOyImOyEnQ0KK+2VnO2drOqyvQ0KK+2VnO2VnO2YhA0KK+2VnOq3vOyerA0KK+2VnOq0ke2YhA0KK+2VqOqzhOyIoA0KK+2VqOynhOuegA0KK+2VqOqyve2YuA0KK+2VqOyXsOu0iQ0KK+2VqOuzkeybkA0KK+2VqOyiheyekA0KK+2VqOuRkOyIoA0KK+2VqOuzkeuPmQ0KK+2VqOyImO2DnA0KK+2VqOyEseq3vA0KK+2VqOq1rOq3nA0KK+2VqOyInOyatA0KK+2VqOyYgeyhsA0KK+2VqO2DnOyInA0KK+2VqOyYgeyYpQ0KK+2VqOybkOyLnQ0KK+2VqOyasOyVlA0KK+2VqOyDge2YnA0KK+2VqOuPmeyInA0KK+2VqOygleyXsA0KK+2VqOybkO2ZmA0KK+2VqO2VtO2ZjQ0KK+2VqOygleyYpQ0KK+2VqOyduOuqqQ0KK+2VqOygleybhQ0KK+2VqOyDgeyerA0KK+2VqOq4sOq3vA0KK+2VqOq3vOyImQ0KK+2VqO2ZmOyihQ0KK+2VqOyDgeyaqQ0KK+2VqOq4sOybkA0KK+2VqOyEoO2VmQ0KK+2XiCDqtJENCivtl4jtmITsiJgNCivtl4jsoJXsmqkNCivtl4jsooXri6wNCivtl4gg64+ZDQor7ZeI66eM67SJDQor7ZeI7KO864+ZDQor7ZeI7Iq57ISdDQor7ZeIIOyEnQ0KK+2XiOydmOyIoA0KK+2XiOyEseybkA0KK+2XiOq3gOybkA0KK+2XiCDsiJwNCivtl4jsg4HtmLgNCivtl4jsg4HsnpANCivtl4jsp4TtmIQNCivtl4gg7JmEDQor7ZeI67OR7KSADQor7ZeI7Iic7J6sDQor7ZeI7Zi47ISgDQor7ZeIIOybkA0KK+2XiOygleuMgA0KK+2XiO2DnO2ZlA0KK+2XiOykkeqwkQ0KK+2XiCDsnKANCivtl4jsoJXsmIENCivtl4jsoJXrprwNCivtl4jrjZXsiJgNCivtl4gg7J6RDQor7ZeI64+Z7KCcDQor7ZeI7YOc64yADQor7ZeI7KO87ZmUDQor7ZeI6rK97LacDQor7ZeI7ZmN7Je0DQor7ZeI7IK87ZmYDQor7ZeI7KCV7IicDQor7ZeI6rSR7IiYDQor7ZeI7IiZ6rCRDQor7ZeI7KCV7ZuIDQor7ZeI7J6s66y4DQor7ZeI6raM7LCsDQor7ZeI7YyQ7IiYDQor7ZeI7LaY7IiYDQor7ZeI7ISd7LacDQor7ZeI6rec7YOcDQor7ZeI7J6l7IiYDQor7ZeI7Iig7JqpDQor7ZeI7Jil7LKgDQor7ZeI6riw7IudDQor7ZeI7ZWE7Je0DQor7ZeI66eM7Z2sDQor7ZeI7ISg6riwDQor7ZeI6riw7LKgDQor7ZeI7Z2s642VDQor7ZeI7KSA7Zi4DQor7ZeI7JiB7ZWtDQor7ZeI64Kc7JewDQor7ZeI64+Z7JuQDQor7ZeI7J6s7IudDQor7ZeI7Jyk7IudDQor7ZeI64Ko7J28DQor7ZeI7KKF7LC9DQor7ZeI67OR7ISdDQor7ZeI67SJ6rWtDQor7ZeI64+Z65+JDQor7ZeI7JiB7YOcDQor7ZeI64us7LKgDQor7ZeI7J207KSADQor7ZeI64+Z65+JDQor7ZeI7ISg7JWUDQor7ZeI64KZ7Z2sDQor7ZeI7LaY7IiYDQor7ZeI64+Z65+JDQor7ZeI7Zi466yYDQor7ZeI66qF6rG0DQor7ZeI7ISx7JuQDQor7ZeI64+Z66GdDQor7ZeI7JiB7ISdDQor7ZeI7LCs64usDQor7ZeI67O17IudDQor7ZeI64+Z7ISxDQor7ZeI7ZWZ7IStDQor7ZeI6rCE7IStDQor7ZeI6reA66qoDQor7ZeI64+Z7IiYDQor7ZeI7LKg7ISxDQor7ZeI7KCV642VDQor7ZeI7JiB7KSADQor7ZeI64+Z7KeEDQor7ZeI7J6l6riwDQor7ZeI6rec7J6QDQor7ZeI642V7JqpDQor7ZeI66eM6rWsDQor7ZeI7ZiE7IudDQor7ZeI6rec6529DQor7ZeI7IiY6rWQDQor7ZeI66eM7IOBDQor7ZeI6rec7LKgDQor7ZeI7KCV7J21DQor7ZeI7KKF7ZiEDQor7ZeI66eM7ISgDQor7ZeI64us7JewDQor7ZeI7Jm46riwDQor7ZeI7YOc7YOcDQor7ZeI66eM7JeFDQor7ZeI66qF7KeEDQor7ZeI7JuQ6rWsDQor7ZeI7ZiV7IStDQor7ZeI66eM7Je0DQor7ZeI7IOB7KeEDQor7ZeI7JiB7Je9DQor7ZeI7Jew6rK9DQor7ZeI66eM7JiBDQor7ZeI7J6l656YDQor7ZeI67OR6raMDQor7ZeI7LaY6rWsDQor7ZeI66eM7JilDQor7ZeI7J287JewDQor7ZeI7IOB7ZmYDQor7ZeI7IOB7IiYDQor7ZeI66eM7JqwDQor7ZeI7J6s7ISgDQor7ZeI7J6s7ZmNDQor7ZeI67OR7ZuIDQor7ZeI66eM7KCVDQor7ZeI7J6l7JqwDQor7ZeI6rK966eMDQor7ZeI66eM6re8DQor7ZeI66eM7KGwDQor7ZeI7IiY7IOBDQor7ZeI7Jil7J6sDQor7ZeI67SJ6rSADQor7ZeI66eM7LKgDQor7ZeI7KCV7YOcDQor7ZeI7KCV7J6EDQor7ZeI7KKF7Je0DQor7ZeI66eM7Z2sDQor7ZeI7JiB7JilDQor7ZeI7ISx7JqpDQor7ZeI6rSR6rWtDQor7ZeI66eM7Z2sDQor7ZeI6rK97ZiEDQor7ZeI7IOB64W4DQor7ZeI7ZmN7JuFDQor7ZeI66y46recDQor7ZeI64+Z7ZuIDQor7ZeI7Jqp6recDQor7ZeI7LC97IiYDQor7ZeI67SJ7IicDQor7ZeI6rSR6riwDQor7ZeI7IaM7Je0DQor7ZeI7Lap7ZWZDQor7ZeI7IK87IiYDQor7ZeI6re864yADQor7ZeI7IiY7JqpDQor7ZeI7LC97Zi4DQor7ZeI7IOB6riwDQor7ZeI7KCV7JqwDQor7ZeI7ISd7JqpDQor7ZeI7KCV7JuQDQor7ZeI7IOB7IiZDQor7ZeI7JiB7ISkDQor7ZeI6rSR642VDQor7ZeI6rCR7ISxDQor7ZeI7IOB7JqpDQor7ZeI6rCB7IiYDQor7ZeI64Ko6raMDQor7ZeI7Iic7JqpDQor7ZeI7IOB7LKgDQor7ZeI7LmY7ISdDQor7ZeI6rSR7JuFDQor7ZeI7KCV7JewDQor7ZeI7IOB7LacDQor7ZeI7Iuc7KCVDQor7ZeI7ISd66+8DQor7ZeI7IOB7JqxDQor7ZeI7ISd6rWsDQor7ZeI66yY6rWQDQor7ZeI7IiY7LaYDQor7ZeI7Lmg7LKgDQor7ZeI7ISd6rWsDQor7ZeI66y07LCsDQor7ZeI66eQ6rCRDQor7ZeI7JiB7IiYDQor7ZeI7ISg7LacDQor7ZeI7JiB7ZyYDQor7ZeI6riw7IStDQor7ZeI67aE7Je0DQor7ZeI7ISx7JqpDQor7ZeI7IOB6raMDQor7ZeI64+Z7JqwDQor7ZeI7J6s6re8DQor7ZeI7IiY7JaRDQor7ZeI7J2Y7JW8DQor7ZeI64+E6rK9DQor7ZeI66y47ISdDQor7ZeI7Iic7JaRDQor7ZeI64+Z66eMDQor7ZeI7LC97ZW0DQor7ZeI7KCV7ZiEDQor7ZeI7Iic7J20DQor7ZeI6rK97ZeMDQor7ZeIIOq3gA0KK+2XiOyCvO2VnA0KK+2XiOyKueyhsA0KK+2XiOyYgeq4uA0KK+2XiO2DnOyglQ0KK+2XiOygnOyYpA0KK+2XiOyWke2VmQ0KK+2XiOunjO2ZjQ0KK+2XiOq4sOyYpA0KK+2XiOuzke2ZmA0KK+2XiOyXsOq1rA0KK+2XiOyDgeyLnQ0KK+2XiOyImO2ZmA0KK+2XiOyEseyEnQ0KK+2XiOyYgeyEnQ0KK+2XiO2YhO2drA0KK+2XiO2DnOuTnQ0KK+2XiOqyveyXsA0KK+2XiOyYgeybkA0KK+2XiOunjOynhA0KK+2XiO2MlOusuA0KK+2XiOuzkeyXtA0KK+2XiOyYge2DnQ0KK+2XiOybkO2biA0KK+2XiOyYgeyIoA0KK+2XiOustOyXtA0KK+2XiOyYge2YuA0KK+2XiO2VnO2DnA0KK+2XiOygleyekA0KK+2XiOusuOy2mA0KK+2XiOyYpeyEoA0KK+2XiOyLoOyYgQ0KK+2XiOyEuOuMgA0KK+2XiOyDgeyglQ0KK+2XiOyaqeq2jA0KK+2XiOqyveyXsA0KK+2XiOqyveuPhA0KK+2XiOyiheyerA0KK+2XiOyaqe2VnA0KK+2XiOyInO2DgQ0KK+2XiOyEne2VmA0KK+2XiOuzkeyViA0KK+2XiOyatOyaqQ0KK+2XiOqyveq3oA0KK+2XiOyyoOqzpA0KK+2XiOyImOyEoA0KK+2XiOybheyErQ0KK+2XiOyDgeyyoA0KK+2XiOuPme2ZlA0KK+2XiOqzvOyInA0KK+2XiOychOq1rA0KK+2XiOybkOyImA0KK+2XiOq3nOy2nA0KK+2XiOykkeuemA0KK+2XiOydtOyEoA0KK+2XiOuzkeyLnQ0KK+2XiOygkOyekA0KK+2XiO2ZjeuTnQ0KK+2XiOydtO2YuA0KK+2XiOydvO2VtA0KK+2XiOygleuNlQ0KK+2XiOynhOycqA0KK+2XiOyduOq3nA0KK+2XiO2Zje2YhA0KK+2XiOq3vOyXtA0KK+2XiOuzkeqwlQ0KK+2XiOyduOykkQ0KK+2XiOuzkeyInA0KK+2XiOq4sOq1rQ0KK+2XiOyasOyImA0KK+2XiOyduOy2nA0KK+2XiOyYpOyLnQ0KK+2XiOy2mO2ZmA0KK+2XiOuzkeyWkQ0KK+2XiOyehOyWkQ0KK+2XiOygleyEoA0KK+2XiOuqheyaqQ0KK+2XiO2DnOyYgQ0KK+2XiOyerOuqhQ0KK+2XiOy2qeyihQ0KK+2XiOyerOuwsA0KK+2XiO2DnO2ctA0KK+2XiOyerOybkA0KK+2XiOyerOyDnQ0KK+2XiOuPjOyasA0KK+2XiOyEse2VhA0KK+2XiOyerO2VhA0KK+2XiOuNleyYpA0KK+2XiO2DneyXtA0KK+2XiOygkOyInA0KK+2XiOyerO2biA0KK+2XiOyiheyXsA0KK+2XiOyZhOyEoA0KK+2XiOydtOyaqQ0KK+2XiOygkOuPjA0KK+2XiOyInOuFuA0KK+2XiOyaqeq4uA0KK+2XiOyInOuqhQ0KK+2XiOygkOyVlA0KK+2XiOybkOyErQ0KK+2XiOq0keyLnQ0KK+2XiOyiheq2jA0KK+2XiOygleyLnQ0KK+2XiOyerOyYgQ0KK+2XiOustOyImA0KK+2XiOyEseyhsA0KK+2XiOygleyVhA0KK+2XiOyEseydvA0KK+2XiO2VnOq3nA0KK+2XiOuMgOyglQ0KK+2XiOygleyasA0KK+2XiOq4uOyyoA0KK+2XiOyEuOyImA0KK+2XiOyasOuhgA0KK+2XiOyiheuemA0KK+2XiOyGjO2XjA0KK+2XiO2DnOybkA0KK+2XiOynhOy2mA0KK+2XiOyjvO2YuA0KK+2XiOygleuPhA0KK+2XiOyZuOuqqA0KK+2XiCDsnpANCivtl4jspIANCivtl4jrrLgNCivtl4jtmZQNCivtl4jsnqUNCivtl4jsp4TshJ0NCivtl4jsg4HsmrANCivtl4jsmKXquLgNCivtl4jshLHqtawNCivtl4jsp4TsmrENCivtl4jquLDssqANCivtl4jtmITsmKUNCivtl4jqt5zsobANCivtl4jstpjsmrANCivtl4jsmIHssqANCivtl4jsnqztlYQNCivtl4jsmIHrgqgNCivtl4jstpjsnqwNCivtl4jsmIHshKANCivtl4jstqnrj4wNCivtl4jrrLTqt5wNCivtl4jtg5zsg4ENCivtl4jquLDtmIQNCivtl4jrqoXshJ0NCivtl4jsmqnsiJwNCivtl4jtg5zsiJgNCivtl4jqsJHsiJkNCivtl4jsobDtg5wNCivtl4jtjJDssqANCivtl4jtg5zsiJgNCivtl4jqsr3snbwNCivtl4jsmKTtm4gNCivtl4jsnYTssL0NCivtl4jtg5zsp4QNCivtl4jqt5zsg50NCivtl4jsnKTrtoQNCivtl4jtlZzsl7QNCivtl4jtjJDshLENCivtl4jspp3ssqANCivtl4jsmqntg50NCivtl4jsg4HsnbQNCivtl4jtjJDsiJgNCivtl4jshLHsiKANCivtl4jssL3siJwNCivtl4jqt7zsiJgNCivtl4jtlYTsobANCivtl4jtg4HssqANCivtl4jrj4Tqsr0NCivtl4jsmrTstpwNCivtl4jtmITsiJkNCivtl4jsnITrj4QNCivtl4jrj4Trj5kNCivtl4jsmbjquLgNCivtl4jtmY3qt5wNCivtl4jtg5zsm4UNCivtl4jsoJXtg5wNCivtl4jsoJXsl7ANCivtl4jtnJjsm4UNCivtl4jsmKXspJENCivtl4jsooXstpwNCivtl4jtg5zso7wNCivtmITquIjsiJwNCivtmITsoJXshJ0NCivtmITrkZDsm5ANCivtmITsg4HsiJwNCivtmITrj5nsl7QNCivtmITqt7zqtowNCivtmITqt5ztmY0NCivtmITsm5Dtg4ENCivtmITrrLjsi50NCivtmITtg5zsmIENCivtmITtg5zshJ0NCivtmITquLDqs6QNCivtmITshJ3sm5ANCivtmITshozshKANCivtmITstpjrjIANCivtmITstpjsmIENCivtmITsiJjsmqkNCivtmITrrLjtmZgNCivtmITqt7zqs6QNCivtmITtlZzsoJwNCivtmITsiJztnawNCivtmITsnqzqtZANCivtmITsg4Hsm5ANCivtmITsnqztlZwNCivtmITsmqnsi50NCivtmITtg5zrqqgNCivtmITso7ztmIQNCivtmITqt5zsi50NCivtmITssL3tmZgNCivtmITsoJXsiKANCivtmITtl4ztmIQNCivtmITstqnsmIENCivtmITtnaztm4gNCivtmITquIjsiJgNCivtmITqtJHtmLgNCivtmITtg5zsnpANCivtmJXrgqjsp4QNCivtmJXsg4HtmIQNCivtmJXsiJztmIQNCivtmJXtjJDsiJkNCivtmY0g7ZeMDQor7ZmN7J6s6recDQor7ZmN7KO86re8DQor7ZmN7Iq57Zi4DQor7ZmN6rCR7IicDQor7ZmN7IS47IiYDQor7ZmN66qF7ZmNDQor7ZmN67OR6rCRDQor7ZmN6rK964+EDQor7ZmN7IiY7IiYDQor7ZmN7KeA66+8DQor7ZmN7KCV7Zi4DQor7ZmN6rK97Zi4DQor7ZmN7KCV7JqxDQor7ZmN7J247JuQDQor7ZmN64+Z642VDQor7ZmN6rOE7JewDQor7ZmN67OR7IicDQor7ZmN7Jqw7JqpDQor7ZmN6riw65+JDQor7ZmN6rSR7IudDQor7ZmN7YOc7YOcDQor7ZmN7J247JqpDQor7ZmN7ZiE7IudDQor7ZmN6riw66y4DQor7ZmN7ISg7J6QDQor7ZmN7JiB7KSRDQor7ZmN7Jqp6riwDQor7ZmN64yA7IicDQor7ZmN67O07KeADQor7ZmN6reA64+ZDQor7ZmN64Ko6rSADQor7ZmN64+E7IOdDQor7ZmN7KeE7ISgDQor7ZmN66eM7KeADQor7ZmN6rSR656ADQor7ZmN64+Z6riwDQor7ZmN7YOc7IStDQor7ZmN6riI7Zi4DQor7ZmN7Z2s7LacDQor7ZmN64+Z7ISdDQor7ZmN7Jyk7KGwDQor7ZmN7JuQ66eMDQor7ZmN7ISd64usDQor7ZmN65GQ7IudDQor7ZmN7LmY7KeEDQor7ZmN7YOc7IudDQor7ZmN7JuQ656YDQor7ZmN65GQ7KeEDQor7ZmN7LaY6re8DQor7ZmN6rK97KeEDQor7ZmN64yA7IiYDQor7ZmN66qF7IicDQor7ZmN64us7ISdDQor7ZmN7YyQ7Z2sDQor7ZmN7J6s7IiYDQor7ZmN66y07JuFDQor7ZmN7ZS87J20DQor7ZmN7J6s67SJDQor7ZmN7ZmY7IiYDQor7ZmN66+47ZmUDQor7ZmN7LKt66qFDQor7ZmN7JiB7ISdDQor7ZmN7IOB7IudDQor7ZmN67OR7IiZDQor7ZmN7Jik7ISxDQor7ZmN66y067SJDQor7ZmN7IOB7IiYDQor7ZmN67O17IukDQor7ZmN7KSA7IicDQor7ZmN66eM6riwDQor7ZmN7IOB7KCVDQor7ZmN67aA6riwDQor7ZmN7KKF66a9DQor7ZmN7ISx7LKgDQor7ZmN7Jyk6riwDQor7ZmN67aE64KoDQor7ZmN7Lap6regDQor7ZmN64Ko7YOdDQor7ZmN66+87KeEDQor7ZmN7IK86riwDQor7ZmN7Jqp7ISdDQor7ZmN7Jyk7KSADQor7ZmN7KKF7LacDQor7ZmN7IOB6riwDQor7ZmN66eQ7KO8DQor7ZmN7IiY7ZmNDQor7ZmN7KKF66GADQor7ZmN7IOB7KGwDQor7ZmN7YyU7Zi4DQor7ZmN67OR7LCsDQor7ZmN6rSR7JqwDQor7ZmN7IOB7Z2sDQor7ZmN7JiB7IicDQor7ZmN7JiB7IicDQor7ZmN7Jyk64+EDQor7ZmN7ISd67SJDQor7ZmN7ISx7IicDQor7ZmN7JiB6rOkDQor7ZmN67OR6recDQor7ZmN7ISd7JykDQor7ZmN7YOc7ISdDQor7ZmN67OR7J6QDQor7ZmN7ZiE6recDQor7ZmN7ISd7KeEDQor7ZmN6reA7J6QDQor7ZmN6rSR7ZWEDQor7ZmN64W47KCQDQor7ZmN7ISd7ZmYDQor7ZmN7J6l7J6sDQor7ZmN7IOB67O1DQor7ZmN7JiB7J6EDQor7ZmN7ISg6regDQor7ZmN7Jqp67O1DQor7ZmN7KCV7Z2sDQor7ZmN7KCQ7J20DQor7ZmN7ISg66qoDQor7ZmN7Iic7KGwDQor7ZmN7IK87JuQDQor7ZmN7ISg7LKgDQor7ZmN7ISg7ZGcDQor7ZmN7J6s7ZmYDQor7ZmN7IOB6raMDQor7ZmN64+Z7YOdDQor7ZmN7ISg7Z2sDQor7ZmN6rWs6re8DQor7ZmN7KCV6rCRDQor7ZmN7Iic7ZW0DQor7ZmN7ISx6rSADQor7ZmN67SJ7JewDQor7ZmN7Jqp7KGwDQor7ZmN7KKF64+ZDQor7ZmN7ISx6re8DQor7ZmN64+Z7Zi4DQor7ZmN6rWQ7IStDQor7ZmN7IS47LKgDQor7ZmN7ISx6riwDQor7ZmN7IKs7JyoDQor7ZmN7JiB7IiZDQor7ZmN7ZW06ri4DQor7ZmN7ISx66+8DQor7ZmN67OR7Z2sDQor7ZmN7IOB7JWUDQor7ZmN6rCV7ZiEDQor7ZmN7ISx7IiYDQor7ZmN642V67ORDQor7ZmN65GQ642VDQor7ZmN66eM7Zi4DQor7ZmN7ISx7Je0DQor7ZmN7KCV6rOkDQor7ZmN7J6s7J6QDQor7ZmN66+467CwDQor7ZmN7ISx7JuQDQor7ZmN67SJ7Zi4DQor7ZmN7ZqM7ZiEDQor7ZmN6rec7ISdDQor7ZmN7ISx7JykDQor7ZmN7Jil7ISxDQor7ZmN7ISx7JqpDQor7ZmN7Jil7LKgDQor7ZmN7ISx7YOcDQor7ZmN67KU7IiYDQor7ZmN7ZWE7IOBDQor7ZmN7ISg7ZWZDQor7ZmN7ISx7YOcDQor7ZmN642V7JqpDQor7ZmN7KCQ7KeEDQor7ZmN7Iic6recDQor7ZmN7ISx7YOcDQor7ZmN7IOB7IucDQor7ZmN7Jqw7JuFDQor7ZmN7Jqp7JqpDQor7ZmN7ISx7ZmYDQor7ZmN7JiB7Zi4DQor7ZmN7KCV6ri4DQor7ZmN7KCV7ZmUDQor7ZmN7ISx7ZqoDQor7ZmN6riw6recDQor7ZmN7ISd7Zi4DQor7ZmN7J2A7IudDQor7ZmN7IS46riwDQor7ZmN7Iuc7IigDQor7ZmN66qF7ISdDQor7ZmN7Jyk6raMDQor7ZmN7IiY642VDQor7ZmN7YOc7IudDQor7ZmN66qF66eMDQor7ZmN7ISx7IOBDQor7ZmN7Iic6rWQDQor7ZmN7IS47Zi4DQor7ZmN6rSR7ISgDQor7ZmN7J6s64+EDQor7ZmN7Iic7Zi4DQor7ZmN7ZmU7JewDQor7ZmN64Ko7IScDQor7ZmN7KCV67SJDQor7ZmN7Iq57J28DQor7ZmN7Jqp7ISgDQor7ZmN7J6s7Zi4DQor7ZmN7KKF7ZWcDQor7ZmN7JiB6rWsDQor7ZmN7Jew66y0DQor7ZmN7YOc7KGwDQor7ZmN7JuF66GdDQor7ZmN7JiB6raMDQor7ZmN66y064+MDQor7ZmN7Jil7LacDQor7ZmN7Zi47JWUDQor7ZmN7JiB7JWgDQor7ZmN7J6E7J20DQor7ZmN7JiB6ri4DQor7ZmN7J247JuQDQor7ZmN7JiB7JqwDQor7ZmN7YOc7JewDQor7ZmN7IiY7Zi4DQor7ZmN6rec66qFDQor7ZmN7Jik6rOkDQor7ZmN7ISx7ISgDQor7ZmN7IOB64+EDQor7ZmN7YyQ7ZmYDQor7ZmN7Jil7ZGcDQor7ZmN67aE64+ZDQor7ZmN7Jqp7ZmYDQor7ZmN7Jqp7ZuIDQor7ZmN7Jqp7ZWZDQor7ZmN7Iic64KoDQor7ZmN7JiB7KeEDQor7ZmN6rec7YOcDQor7ZmN7Jqw7ISdDQor7ZmN7ISx7ZiEDQor7ZmN67SJ7JikDQor7ZmN7ZeM7KO8DQor7ZmN7Jq07Z2sDQor7ZmN7KCQ7JqwDQor7ZmN7IiY6re8DQor7ZmN7J6s656YDQor7ZmN7JuQ7KCEDQor7ZmN7Zic7ZaJDQor7ZmNIO2VmQ0KK+2ZjeyerOuhnQ0KK+2ZjeybkO2RnA0KK+2Zjeq4sOyImA0KK+2ZjeuqheyaqQ0KK+2ZjSDsmrANCivtmY3snZjsi50NCivtmY3sirnrsKkNCivtmY3soJXrs7QNCivtmY3sooXrgqgNCivtmY3snqzquLANCivtmY3rp4zsmIENCivtmY3smrDtmZgNCivtmY3rj5nsnqwNCivtmY3snqzquLANCivtmY3shqHsmqkNCivtmY3smIHslZQNCivtmY3tg53tl4wNCivtmY3snqzrgqgNCivtmY3snqzsnbQNCivtmY3tg4DsnqwNCivtmY3rgqjrjZUNCivtmY3snqzrqqgNCivtmY3tlbTsnpANCivtmY3tnazsuKENCivtmY3sirnri6wNCivtmY3soJXsiJgNCivtmY3sg4HsspwNCivtmY3sm5DtnawNCivtmY3qt7ztg50NCivtmY3soJXsl70NCivtmY3siJzsl7QNCivtmY3sp4TsobANCivtmY3rs5Hsi50NCivtmY3soJXsm4UNCivtmY3smIHstpgNCivtmY3rs5HtmLgNCivtmY3rj4TshLENCivtmY3soJXtkZwNCivtmY3soJDqt7wNCivtmY3tmLjquLANCivtmY3qsJHsm4UNCivtmY3sooXsnKQNCivtmY3rj5ntnawNCivtmY3tmLjquLgNCivtmY3qsr3snpANCivtmY3so7zrgpwNCivtmY3soITshJ0NCivtmY3sp4TtmZgNCivtmY3smqnruYgNCivtmY3sp4DsmrQNCivtmY3shJ3smqkNCivtmY3tg5ztmJUNCivtmY3tmITtmY0NCivtmY3sp4Tqs6QNCivtmY3sg4HqtawNCivtmY3shLjshKANCivtmY3snqztmJUNCivtmY3sp4TrhYQNCivtmY3snqzspIANCivtmY3so7zsl7QNCivtmY3rj5ntmZQNCivtmY3sp4TrrLgNCivtmY3rs5HssqANCivtmY3quLDsiJwNCivtmY3smIHshKANCivtmY3sp4TshJ0NCivtmY3siJzsnKQNCivtmY3soJXrrLgNCivtmY3quLDsi50NCivtmY3sp4TshLENCivtmY3rjIDroZ0NCivtmY3rrLjsnpANCivtmY3siJztnawNCivtmY3sp4TshLENCivtmY3stpjqs6QNCivtmY3soJXqt5wNCivtmY3qsJHsnbQNCivtmY3sp4TsiJgNCivtmY3ssqDsl7QNCivtmY3tlbTtlZwNCivtmY3sp4TsiJkNCivtmY3sp4TsmrENCivtmY3smIHsi50NCivtmY3soJXtg50NCivtmY3tlZjqsr0NCivtmY3sp4TssqANCivtmY3smIHqt5wNCivtmY3shozrp4wNCivtmY3rs5HsmIENCivtmY3sp4Ttj4kNCivtmY3snqzsm5ANCivtmY3rr7ztmZQNCivtmY3rs5HqtZANCivtmY3ssL3quLANCivtmY3smqntlZwNCivtmY3sooXtmZgNCivtmY3snbjsi50NCivtmY3ssL3quLANCivtmY3ssKjsiJgNCivtmY3qsr3siJgNCivtmY3ssq3tmLgNCivtmY3ssYTtnawNCivtmY3smIHtlZwNCivtmY3smKXsmKUNCivtmY3rr7zrj4QNCivtmY3ssqDquLANCivtmY3sg4HshJ0NCivtmY3spJHquLANCivtmY3shKDsiJgNCivtmY3ssqDquLANCivtmY3slYjtmIQNCivtmY3qsr3rj4QNCivtmY3rkZDrtIkNCivtmY3ssqDsnqwNCivtmY3sl7DsnZgNCivtmY3sgrzqsr0NCivtmY3qtJHsnKQNCivtmY3tg5zquLANCivtmY3si6DsiJkNCivtmY3tg5zshJ0NCivtmY3qsr3rjZUNCivtmY3tg5zslZQNCivtmY3sooXsmqkNCivtmY3snqzsl7QNCivtmY3rp4ztm4QNCivtmY3tg5ztnawNCivtmY3rs7XsobANCivtmY3tlZzsnqwNCivtmY3smbjsi50NCivtmY3tlZzquLANCivtmY3qsJzquLANCivtmY3smrTsnbUNCivtmY3smIHtm4gNCivtmY3tla3quLgNCivtmY3suaDsmqkNCivtmY3smIHsnbwNCivtmY3smqnrqqkNCivtmY3tlbTshLENCivtmY3tmJXsiJgNCivtmY3shLHtmZQNCivtmY3smqntnawNCivtmY3tmITsp4QNCivtmY3snYTrr7wNCivtmY3smIHrp4wNCivtmY3tg5zshJ0NCivtmY3tmITssqANCivtmY3rj5nqt5wNCivtmY3sm5DqtawNCivtmY3shJ3tlZgNCivtmY3tmITtlYQNCivtmY3tlYTtj4kNCivtmY3soJXshJ0NCivtmY3siJjsspwNCivtmY3tmanquLANCivtmY3tmqjrj5kNCivtmY3soJXsiKANCivtmY3rtoTsl7QNCivtmanqsbTsmKQNCivtmanshKDtlZwNCivtmanrjIDtmLgNCivtmanrs7XtmIQNCivtmanqsr3siJkNCivtmanquLDrs7UNCivtmansoJDsnqwNCivtmansooXroZ0NCivtmanqsr3siJwNCivtmansmIHsmrENCivtmantg53tmZgNCivtmansm5Drj4wNCivtmanqsr3siKANCivtmanslZTrqoUNCivtmantg5zsi6QNCivtmansmIHqt7wNCivtmanqsr3smrQNCivtmanrqoXsmrANCivtmanshJ3tmLgNCivtmanrjZXtmZgNCivtmanqsr3snoQNCivtmanrsLHshLENCivtmantnazsm5ANCivtmansnbzsg4ENCivtmanqsr3tlZwNCivtmanshKDrjZUNCivtmansg4HsobANCivtmansmqnquLgNCivtmanqtJHsl7ANCivtmansnZjsmYQNCivtmantlbTquLANCivtmanrp5DtnawNCivtmanqtJHsmqkNCivtmantg5zrj4QNCivtmanstpjtmZgNCivtmansmIHrj4QNCivtmanqtZDsnbwNCivtmansooXrs7UNCivtmansp4TtmZgNCivtmanqt7zsiJgNCivtmanqtZDsnqUNCivtmanqsr3smIENCivtmansooXqtZANCivtmantmJXrjZUNCivtmanqta3tlqUNCivtmansooXsobANCivtmansmIHsnoQNCivtmansoJDroKgNCivtmanqt5zrr7gNCivtmansnqzsspwNCivtmanquLDsmKUNCivtmansiJjtmIQNCivtmanqt5zsmYQNCivtmansmIHrs7UNCivtmansmIHtmLgNCivtmanqsr3smqkNCivtmanqt5zsoIQNCivtmanstpTssYQNCivtmansmIHsiJwNCivtmansnqzshKANCivtmanquIjrj4wNCivtmansnbzsi50NCivtmanrs5Hsi50NCivtmantmITqsJENCivtmanquIjshLENCivtmanquLDsnbQNCivtmantmITtnawNCivtmansmqnsmqkNCivtmanquLDrj4QNCivtmansiJjsnpANCivtmansm5TsnpANCivtmanquIjtnawNCivtmanquLDshJ0NCivtmansoJXsm5ANCivtmanrs5HsnpANCivtmansgrzsnpANCivtmanquLDtmLgNCivtmantlZztmZQNCivtmantlZnspIANCivtmansmKXsoJwNCivtmanquLjtmIQNCivtmanrtoTsmqkNCivtmansgrzsnbQNCivtmanqtJHrp4wNCivtmanrgqjsnbQNCivtmanso7zsobANCivtmansg4HshK0NCivtmansi6DshJ0NCivtmanri6zquIgNCivtmansiJjqt7wNCivtmanquLDroKwNCivtmantmITsm5ANCivtmanrjIDshKANCivtmanqsr3sooUNCivtmansl7DsiJwNCivtmansooXsm5ANCivtmanrjIDssqANCivtmanqt7zsiJkNCivtmansmKXsiJgNCivtmanrj5nqt5wNCivtmanrjZXshLENCivtmansi5zqs4QNCivtmansoJXtg5wNCivtmansm5Dtg5wNCivtmanrj5nshJ0NCivtmanrqoXsiJgNCivtmansoJXqsJENCivtmansl7DstpgNCivtmanrj5nsi50NCivtmansmIHtm4gNCivtmansmKTquLANCivtmansmqnssqANCivtmanrkZDssqANCivtmanqt4DsobANCivtmanrs5HshK0NCivtmansmrDrjIANCivtmanrnpjshLENCivtmanrs5Hsi50NCivtmantnazsiJgNCivtmantnazsiJgNCivtmanro6HquLANCivtmanri6zso7wNCivtmanrqoXrp4wNCivtmansoJXsiJgNCivtmanrp5DsiJgNCivtmansiJntmZgNCivtmantnaztl4wNCivtmantg5zslZQNCivtmanrp5DsiJwNCivtmanquLjrkZANCivtmantmqjrk50NCivtmantlZntnawNCivtmanrqoXqt5wNCivtmanshLHtmLgNCivtmanssL3slZQNCivtmansmIHqta0NCivtmanrqoXsiJwNCivtmantlqXsiKANCivtmansmIHssqANCivtmansi5zsnbwNCivtmanrs5HqtawNCivtmanqt5zshJ0NCivtmanssqDsiJgNCivtmanshLHtmLgNCivtmanrs5HsnbwNCivtmansgrztlZwNCivtmantg5zshKANCivtmansoJXtnawNCivtmanrs7TsmKXsiJgNCivtmanssL3rtInsmIENCivtmanqsr3shJ3snqwNCivtmantm4jsiJnrs5ENCivtmanrtoTso7wNCivtmanrrLTtmLgNCivtmansmrDqt5wNCivtmansiJjroZ0NCivtmansg4Hqt5wNCivtmansspzqs6ANCivtmantg5zsp4QNCivtmansiJjsnbwNCivtmansg4HsnoQNCivtmanshLHsmqkNCivtmanrqoXssYQNCivtmansnZjspIANCivtmansg4HtkZwNCivtmanshKDsmrANCivtmansmqnrj4QNCivtmanqsr3quIgNCivtmanshKDqt5wNCivtmantmZTsiJgNCivtmanqtJHso7wNCivtmansoJXsiJgNCivtmanshKDqt7wNCivtmanshJ3tnawNCivtmanshLHsmqkNCivtmansp4TssqANCivtmanshKDrj4QNCivtmansmqnsnqwNCivtmansiJjrp4wNCivtmansmbjslpENCivtmanshKDrj5kNCivtmantmLjsiJkNCivtmansm5DquIgNCivtmanrtInsiJgNCivtmanshKDrkZANCivtmanrqoXqt7wNCivtmantg5zshJ0NCivtmanqtaztmZgNCivtmanshKDsmqkNCivtmanrjZXsmqkNCivtmansnKTsl7QNCivtmanrrLjshJ0NCivtmanshKDsmrANCivtmansp4Tqt7wNCivtmanspIDssqANCivtmansooXqt5wNCivtmanshKDsmrENCivtmansiJzshKANCivtmansnbjtnaANCivtmansnKTrspQNCivtmanshKDsmrENCivtmansmIHsmKUNCivtmansnYDssqANCivtmantmY3snpANCivtmanshKDsm4UNCivtmansnKDsiJwNCivtmansl7DtlZwNCivtmansnqzsmKQNCivtmanshKDstpwNCivtmanshoztmZgNCivtmanrrLTquLANCivtmantg5zsp4QNCivtmanshKDtmY0NCivtmanshLjshKANCivtmansmIHtlqUNCivtmanrtInsiJwNCivtmanshLHqt5wNCivtmansoJXrnoANCivtmansnbjsi6QNCivtmansmKXsmrENCivtmanshLHqt7wNCivtmansnqzslpENCivtmanrp5Dso7wNCivtmansmqnsooUNCivtmanshLHtg5wNCivtmanrhbjri7kNCivtmanssL3siKANCivtmansnqzsm5ANCivtmanshoztmLgNCivtmanrj5ntg5wNCivtmanqt7zquLgNCivtmanrs7XsmqkNCivtmansiJjqt7wNCivtmansoJDtlokNCivtmanssKjrtIkNCivtmansoJXsmrANCivtmansiJjssKwNCivtmantg5ztg50NCivtmansg4Hsl7QNCivtmansnKTri6gNCivtmansiJnsnpANCivtmansmIHtmLgNCivtmanshLHsnqwNCivtmansmIHqt5wNCivtmansiJzqt5wNCivtmantmITsmqkNCivtmansoJXsmqkNCivtmansmqnsiJgNCivtmansiJzsobANCivtmanssL3qsIENCivtmanssL3spIANCivtmansmIHqsJENCivtmansi5zssqANCivtmansmKXsiJkNCivtmanshKDqtZANCivtmantmITquLANCivtmansmIHqta0NCivtmansooXrqqgNCivtmansmIHqtIANCivtmansmKXqtawNCivtmansmIHqta0NCivtmansmqnrpZwNCivtmansoJXtmZgNCivtmansp4Dsg4ENCivtmansmIHqt5wNCivtmansm5Dro6ENCivtmanquLjtnawNCivtmansoJXsnbgNCivtmansmIHquLgNCivtmansp4Tqt7wNCivtmanshLHsmrQNCivtmansg4HshKANCivtmansmIHrrLgNCivtmanrrLTtmZgNCivtmansnKTspIANCivtmansmKXsoJUNCivtmansmIHshKANCivtmantg5zri7kNCivtmantmZTsooUNCivtmansnqzsnoQNCivtmansmIHsiJkNCivtmantmY3smrENCivtmansoJXquLANCivtmanquIjsiJkNCivtmansmIHsiJwNCivtmanrqoXtl4wNCivtmansmKXsiJwNCivtmansooXsmIENCivtmansmIHsnqwNCivtmansnqzsm5ANCivtmansm5DquLANCivtmansp4DshJ0NCivtmansmIHtjJQNCivtmansmIHsi50NCivtmansmIHquLgNCivtmansmqntmLgNCivtmansmIHtmLgNCivtmanssL3ri6wNCivtmanshLHsnYANCivtmansgrztmLgNCivtmansmIHtmZgNCivtmanrqoXtmLgNCivtmantnaXssqANCivtmanqtZDrtoQNCivtmansmKTsp4QNCivtmantmY3ssKgNCivtmanri6zqt5wNCivtmansnbzqsr0NCivtmansmKXtnawNCivtmansiJjshJ0NCivtmanso7zsi50NCivtmansmrTrj5kNCivtmansmqnrjIANCivtmansg4HsnpANCivtmansuaDrj5kNCivtmanshLHssqANCivtmansmqnsnqUNCivtmanrs5HshLgNCivtmansnZjsiJwNCivtmanrqoXrsLANCivtmansmqntlZkNCivtmanshozsnbgNCivtmanrs5Hrj4wNCivtmansgrzsmrQNCivtmansm5DsnbQNCivtmansmIHtnawNCivtmanquIjtkZwNCivtmanrs5HshJ0NCivtmansm5DspIANCivtmanqtJHshJ0NCivtmansoJXtlZkNCivtmantnJjtmLgNCivtmansm5DtlZkNCivtmansmIHqs6QNCivtmansoJXrjZUNCivtmanqs4TsnqwNCivtmansnKTshJ0NCivtmansmqnsmKQNCivtmanrs5HrtIkNCivtmanrrLTsl7QNCivtmansnYTsiKANCivtmansspzsiJgNCivtmansp4TtmZgNCivtmansmIHtmLgNCivtmansnZHrs7UNCivtmanstpjtnawNCivtmansiJjsiJgNCivtmanrj5nqt7wNCivtmansnZjsmIENCivtmansmIHshKANCivtmansnqzrjIANCivtmanshLHroZ0NCivtmansnZjstpwNCivtmanshJ3siJkNCivtmanrs5HsnbwNCivtmansooXsspwNCivtmansnZjtm4gNCivtmansnqztlZwNCivtmansmrDtmLgNCivtmanssL3tmIQNCivtmansnbTssqANCivtmantg5zrjZUNCivtmansg4Hqt6ANCivtmanqt5zsi50NCivtmansnbjrjZUNCivtmansmrTstpwNCivtmansoJXsnKgNCivtmansmIHsiJwNCivtmansnbjrtIkNCivtmansnbTsiJkNCivtmanrs5Hsl7ANCivtmansnqzqtowNCivtmansnbjstpwNCivtmansirntlZkNCivtmansgrztnawNCivtmanrjIDtg5wNCivtmansnbzqtawNCivtmanqsJHsm4UNCivtmantlZzsoIENCivtmanssqDquLANCivtmansnbzshKANCivtmanqt5zsi50NCivtmansnKTsmIENCivtmansnZjtmZgNCivtmansnbzstpwNCivtmanshozshKANCivtmanrrLTrspQNCivtmansmIHtkZwNCivtmansnqzrs7UNCivtmanrs7XsmqkNCivtmansmIHrjZUNCivtmansooXsi50NCivtmansnqzsiJgNCivtmanqsr3sp4QNCivtmansnbzsobANCivtmanshLjsmqkNCivtmansnqzsmqkNCivtmanso7zqtZANCivtmanrtoDsiJkNCivtmanrrLTssqANCivtmansnqzsnZgNCivtmanrj5nsoJUNCivtmakg7IudDQor7Zmp64+Z7IiYDQor7Zmp7J6s7LKgDQor7Zmp7J6E64KoDQor7Zmp7IOB7ZWcDQor7Zmp64us66y4DQor7Zmp7J6s7ZWZDQor7Zmp64+Z7IicDQor7Zmp7ZeM7IigDQor7Zmp7ZWZ64KoDQor7Zmp7J6s7Zi4DQor7Zmp7J2E656RDQor7Zmp7YOc6riIDQor7Zmp7JuF7ZiEDQor7Zmp7KCV6rOkDQor7Zmp6riw7IiYDQor7Zmp7KKF7ISgDQor7Zmp7Y+J7YOdDQor7Zmp7KCV67SJDQor7Zmp7J6s7KCcDQor7Zmp7YOc7IicDQor7Zmp7J247KSRDQor7Zmp7KCV7IiYDQor7Zmp7Jqw7JqwDQor7Zmp6rK96rWtDQor7Zmp7Zmp7LKgDQor7Zmp7KCV7IiYDQor7Zmp7JuU64usDQor7Zmp66y47KGwDQor7Zmp7KKF7Z2sDQor7Zmp7KCV7ZmYDQor7Zmp7Zqo7ZmNDQor7Zmp67Cw7ZmYDQor7Zmp7Z2s66eMDQor7Zmp7KKF6rWsDQor7Zmp7JmE6re8DQor7Zmp7ZW066eMDQor7Zmp7J6s7ZiEDQor7Zmp7KKF642VDQor7Zmp7IK87ISdDQor7Zmp7Jew7IOBDQor7Zmp7J2466CoDQor7Zmp7KKF7ISdDQor7Zmp7IiY6rSADQor7Zmp7YOc7IiYDQor7Zmp7J2Y7JqpDQor7Zmp7KKF7JykDQor7Zmp7JiB6re8DQor7Zmp7LC96rK9DQor7Zmp66y47IigDQor7Zmp7KKF7J28DQor7Zmp6rec7JWEDQor7Zmp7JiB7Ja4DQor7ZmpIOuPmQ0KK+2ZqeyiheyyoA0KK+2ZqeybkOuPmQ0KK+2Zqeq4iOyImA0KK+2ZqeygleusuA0KK+2ZqeyngOy2nA0KK+2ZqeygnOybhQ0KK+2Zqe2YhOy2mA0KK+2ZqeyerOyYgQ0KK+2ZqeynhO2YuA0KK+2ZqeynhOq4sA0KK+2ZqeyEuO2YhA0KK+2Zqeq4uOynhA0KK+2ZqeynhO2ZmA0KK+2ZqeyYgeyyoA0KK+2Zqe2aqOuwsA0KK+2ZqeywqOyasA0KK+2Zqeywveq3nA0KK+2Zqe2DnOq3oA0KK+2ZqeyatOq1rA0KK+2ZqeqyveyEuA0KK+2ZqeywveyImA0KK+2ZqeyyreyEsQ0KK+2Zqeq4sOyVlA0KK+2Zqeq3nOyImQ0KK+2ZqeywveydtQ0KK+2ZqeyiheyLnQ0KK+2ZqeydtOyasA0KK+2ZqeuMgOy2nA0KK+2ZqeyynOq3nA0KK+2Zqeyaqeq1rQ0KK+2Zqeuzkey2mA0KK+2ZqeyYgeyImQ0KK+2ZqeyyoOqwkQ0KK+2ZqeyYgeyImA0KK+2Zqe2DnOyEoA0KK+2Zqeymne2ZmA0KK+2ZqeyyoOuPhA0KK+2ZqeyyoOyasA0KK+2ZqeyEse2DnA0KK+2ZqeyiheyImQ0KK+2ZqeyyreyInA0KK+2ZqeyaqeyaqQ0KK+2ZqeuvvOq1rA0KK+2ZqeyInOyImA0KK+2Zqe2DnOq4iA0KK+2ZqeywveyVoA0KK+2Zqe2YuOq4sA0KK+2ZqeyynOq1rA0KK+2Zqe2DnOyYpQ0KK+2Zqe2DnOyImA0KK+2Zqey2mO2drA0KK+2ZqeybkOyhsA0KK+2Zqe2DnOybkA0KK+2ZqeyepeyYgQ0KK+2ZqeyGoeyLnQ0KK+2Zqe2DnO2DnA0KK+2Zqe2VhOyEoA0KK+2ZqeyYgeyXtA0KK+2ZqeqyveuPhA0KK+2ZqeyaqeuPmQ0KK+2Zqe2VhOyEsQ0KK+2Zqey2qe2ZmA0KK+2ZqeyYge2YhA0KK+2Zqe2drO2XjA0KK+2Zqe2VhOyImA0KK+2ZqeyerOyekA0KK+2ZqeyEseq3nA0KK+2ZqeycpOyhsA0KK+2Zqe2VnOq3nA0KK+2ZqeyInOq2jA0KK+2Zqeq0gOyaqQ0KK+2Zqeq1kO2drA0KK+2Zqe2YgeyjvA0KK+2Zqeuzkey2nA0KK+2Zqe2YhOqwkQ0KK+2ZqeuLrOydtA0KK+2Zqe2YhOq1rA0KK+2ZqeyduOyEoA0KK+2ZqeuCmeyImA0KK+2Zqeygle2YhA0KK+2Zqe2aqOyYgQ0KK+2ZqeyImO2YuA0KK+2ZqeunkO2DnQ0KK+2ZqeyYgeq3nA0KK+2Zqe2drOyekA0KK+2Zqe2DnO2ZjQ0KK+2ZqeyDgeyLnQ0KK+2ZqeyerOyImA0KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19MYXRpbi50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfTGF0aW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3MjQzODYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfTGF0aW4udHh0CkBAIC0wLDAgKzEsNzYxMSBAQAor77u/Iy8qKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKg0KKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKi8NCisNCitBYWNoZW4sIEhhbnMgdm9uDQorQWFsdG8sIEFsdmFyDQorQWJha2Fub3dpY3osIE1hZ2RhbGVuYQ0KK0FiYXF1ZXNuZSwgTWFzc8Opb3QNCitBYmJhc2ksIFJpemEtaQ0KK0FiYmV5LCBFZHdpbiBBdXN0aW4NCitBYmJvdHQsIEJlcmVuaWNlDQorQWJib3R0LCBMZW11ZWwgRnJhbmNpcw0KK0EnQmVja2V0LCBNYXJpYQ0KK0FiZWwgZGUgUHVqb2wNCitBYmVyY3JvbWJpZSwgR2VydHJ1ZGUNCitBYmV5dGEsIFRvbnkNCitBYmlsZGdhYXJkLCBOaWNvbGFpDQorQWJyYWhhbXMsIEl2b3INCitBYnJhaGFtc29uLCBNYXJrDQorQWJyYW1vd2l0eiwgQWxiZXJ0DQorQWNjYXJkaSwgQ2FybGENCitBY2NvbmNpLCBWaXRvDQorQWNoZW5iYWNoLCBBbmRyZWFzDQorQWNoZW5iYWNoLCBPc3dhbGQNCitBY2hpbGxlcyBQYWludGVyLCBUaGUNCitBY29yZCwgSmFtZXMNCitBZGFtLCBMYW1iZXJ0LVNpZ2lzYmVydA0KK0FkYW0sIFJvYmVydA0KK0FkYW1zLCBBbnNlbA0KK0FkYW1zLCBIZXJiZXJ0DQorQWRhbXMsIEpvaG4gT3R0aXMNCitBZGFtcywgSm9obiBXb2xjb3R0DQorQWRhbXMsIFJvYmVydA0KK0FkYW1zLCBXYXltYW4NCitBZGRlcnNvbiwgV2FsdGVyDQorQWRlc2hpbmEsIEFnYm9uYmlvZmUNCitBZG9tZWl0LCBHZW9yZ2UNCitBZHNoZWFkLCBNYXJ5DQorQWVsc3QsIFBpZXRlciBDb2Vja2UgdmFuDQorQWVsc3QsIFdpbGxlbSB2YW4NCitBZXJ0c2VuLCBQaWV0ZXINCitBZmZlY3RlciwgVGhlDQorQWdhbSwgWWFhY292DQorQWdhciwgRWlsZWVuDQorQWdhc3NlLCBKYWNxdWVzLUxhdXJlbnQNCitBZ2dlciwgS251ZA0KK0Fnb3N0aW5vIGRlaSBNdXNpDQorQWdvc3Rpbm8gZGkgRHVjY2lvDQorQWdvc3Rpbm8gZGkgR2lvdmFubmkNCitBZ29zdGlubyBWZW5lemlhbm8NCitBZ3Jhc290IHkgSnVhbiwgSm9hcXXDrW4NCitBaXLDsiwgTWFyaW8NCitBaXZhem92c2t5LCBJdmFuDQorQWptb25lLCBHaXVzZXBwZQ0KK0FrYWdhd2EsIEtpbmppDQorQWtlbGV5LCBDYXJsIEV0aGFuDQorQWtlcnMsIEJlbmphbWluIFBhdWwNCitBbGJhbmksIEZyYW5jZXNjbw0KK0FsYmFyZWxsaSwgSmFjb3BvDQorQWxiZXJnaGV0dGkgSSwgR2lvdmFubmkNCitBbGJlcnMsIEFubmkNCitBbGJlcnMsIEpvc2VmDQorQWxiZXJ0aSwgQ2hlcnViaW5vDQorQWxiZXJ0aSwgR2lvdmFubmkNCitBbGJlcnRpLCBMZW9uIEJhcHRpc3RhDQorQWxiZXJ0aW5lbGxpLCBNYXJpb3R0bw0KK0FsYnJpZ2h0LCBJdmFuDQorQWxicml6aW8sIENvbnJhZA0KK0FsY2FpbiBQYXJ0ZWFycm95bywgQWxmcmVkbw0KK0FsY29sZWEsIENhcmxvcyBHYXJjw61hDQorQWxkZWdyZXZlciwgSGVpbnJpY2gNCitBbGVjaGluc2t5LCBQaWVycmUNCitBbGVuLCBXaWxsaWFtIFZhbg0KK0FsZXhhbmRlciwgRnJhbmNpcw0KK0FsZXhhbmRlciwgSm9obiBXaGl0ZQ0KK0FsZXhhbmRlciwgV2lsbGlhbQ0KK0FsZmFubywgQ2FybG8NCitBbGZhcm8sIEFuZHJldQ0KK0FsZ2FyZGksIEFsZXNzYW5kcm8NCitBbGkgaWJuIE11aGhhbWFkDQorQWxpLCBNaWhyDQorQWxpa2F0dWt0dWssIFRob21hc2llDQorQWxpbmFyaSwgRnJhdGVsbGkNCitBbGluYXJpLCBHaXVzZXBwZQ0KK0Fsa2VuIFNyLiwgU2FtdWVsDQorQWxrZW4sIEhlbnJ5IFRob21hcw0KK0FsbGFuLCBEYXZpZA0KK0FsbGFuLCBXaWxsaWFtDQorQWxsZWdyYWluLCBHYWJyaWVsDQorQWxsZW4sIEFubmUNCitBbGxlbiwgQW5uZSBIdW50aW5ndG9uDQorQWxsZW4sIERvdWdsYXMNCitBbGxlbiwgR3JldGENCitBbGxlbiwgTWFyaW9uIEJveWQNCitBbGxlbiwgTWFyeSBDZWNpbA0KK0FsbGVuLCBUZXJyeQ0KK0FsbGluZ2hhbSwgSGVsZW4NCitBbGxpbmd0b24sIEVkd2FyZA0KK0FsbG9yaSwgQWxlc3NhbmRybw0KK0FsbG9yaSwgQ3Jpc3RvZmFubw0KK0FsbHN0b24sIFdhc2hpbmd0b24NCitBbG1hLVRhZGVtYSwgTGF1cmENCitBbG1hLVRhZGVtYSwgU2lyIExhd3JlbmNlDQorQWxtZWlkYSBKw7puaW9yLCBKb3PDqSBGZXJyYXogZGUNCitBbHBlcm4sIFJhbWkNCitBbHMsIFBlZGVyDQorQWxzbG9vdCwgRGVueXMgdmFuDQorQWx0LCBKYWtvYg0KK0FsdCwgT3RtYXINCitBbHRkb3JmZXIsIEFsYnJlY2h0DQorQWx0aWNoaWVybw0KK0FsdHNvbiwgQWJ5DQorQWx2YSBkZSBsYSBDYW5hbCwgUmFtw7NuDQorQWx2YXJleiBCcmF2bywgTWFudWVsDQorQWx2YXJleiwgTWFiZWwNCitBbWFkZW8sIEdpb3Zhbm5pIEFudG9uaW8NCitBbWFuLUplYW4sIEVkbW9uZC1GcmFuw6dvaXMNCitBbWFudGVhLCBOaWNob2xhcw0KK0FtYXJhbCwgQW50w7RuaW8gSGVucmlxdWUNCitBbWFyYWwsIFRhcnNpbGEgZG8NCitBbWFzaXMgUGFpbnRlciwgVGhlDQorQW1hdXJ5LUR1dmFsLCBFdWfDqG5lLUVtbWFudWVsDQorQW1iZXJnZXIsIENocmlzdG9waA0KK0FtZW5vZmYsIEdyZWdvcnkNCitBbWljb25pLCBHaWFjb21vDQorQW1pdHR1LCBEYXZpZGlhbHVrIEFsYXNrYQ0KK0FtbWFuLCBKb3N0DQorQW1tYW5hdGksIEJhcnRvbG9tbWVvDQorQW4gSGUNCitBbmNoZXIsIEFubmENCitBbmNoZXIsIE1pY2hhZWwNCitBbmNoaSwgS2FpZ2V0c3Vkbw0KK0FuZGVyZWdnLCBXZXNsZXkNCitBbmRlcnNlbiwgTW9nZW5zDQorQW5kZXJzb24sIENhcmxvcw0KK0FuZGVyc29uLCBHb3Jkb24NCitBbmRlcnNvbiwgSi4NCitBbmRlcnNvbiwgUnV0aCBBLg0KK0FuZGVyc29uLCBTb3BoaWUNCitBbmRlcnNvbiwgU3RhbmxleQ0KK0FuZG9raWRlcw0KK0FuZHJlLCBDYXJsDQorQW5kcmVhIGRhIEZpcmVuemUNCitBbmRyZWEgZGVsIENhc3RhZ25vDQorQW5kcmVhIGRlbCBTYXJ0bw0KK0FuZHJlYSBkaSBCYXJ0b2xvDQorQW5kcmVhLCBab2FuDQorQW5kcmVhbmksIEFuZHJlDQorQW5kcmVvdHRpLCBMaWJlcm8NCitBbmRyw6lzIGRlIE7DoWplcmENCitBbmRyZXNvbiwgQ2FybG9zDQorQW5kcmV3cywgQmVubnkNCitBbmRyZXdzLCBTeWJpbA0KK0FuZHJpZXUsIFBpZXJyZQ0KK0FuZHJ1cywgQmFyYmFyYQ0KK0FuZ2VsLCBBYnJhaGFtDQorQW5nZWxpLCBHaXVzZXBwZQ0KK0FuZ2VsaSwgSGVpbnJpY2ggdm9uDQorQW5nZWxpY28sIEZyYQ0KK0FuZ2VsbGlzLCBQZXRlcg0KK0FuZ2xhZGEtQ2FtYXJhc2EsIEhlcm1lbmVnaWxkbw0KK0FuZ3VpYW5vIFZhbGFkZXosIFJhw7psDQorQW5ndWllciwgRnJhbsOnb2lzDQorQW5ndWllciwgTWljaGVsDQorQW5ndWlzc29sYSwgTHVjaWENCitBbmd1aXNzb2xhLCBTb2ZvbmlzYmENCitBbmtlciwgQWxiZXJ0DQorQW5uZXNsZXksIERhdmlkDQorQW5xdWV0aW4sIExvdWlzDQorQW5yYWFkdCwgUGlldGVyIHZhbg0KK0Fuc2VsbWksIE1pY2hlbGFuZ2Vsbw0KK0Fuc2VsbW8gZGEgQ2FtcGlvbmUNCitBbnNlbG1vLCBHaW92YW5uaQ0KK0Fuc2h1dHosIFRob21hcw0KK0FudGVsYW1pLCBCZW5lZGV0dG8NCitBbnRpY28NCitBbnRpZ25hLCBBbGV4YW5kcmUNCitBbnRpbWVuZXMgUGFpbnRlcg0KK0FudG9sw61uZXosIEpvc8OpIENsYXVkaW8NCitBbnRvbmFrb3MsIFN0ZXBoZW4NCitBbnRvbmVsbG8gZGEgTWVzc2luYQ0KK0FudG9uZWxsbyBkZSBTYWxpYmENCitBbnRvbmlvIGRhIEZhYnJpYW5vDQorQW50cmVhc2lhbiwgR2FybyBaYXJlaA0KK0FudHJvcG92LCBBbGVrc2VpDQorQW50w7puZXosIE5lbWVzaW8NCitBbnVzemtpZXdpY3osIFJpY2hhcmQNCitBb25vLCBLcmlzdGluZSBZdWtpDQorQXBhcmljaW8sIEpvc8OpDQorQXBvbm92aWNoLCBKYW1lcw0KK0FwcGVsLCBLYXJlbA0KK0FwcGlhbiwgQWRvbHBoZQ0KK0FwcGlhbmksIEFuZHJlYQ0KK0FwcGxlYnJvb2csIElkYQ0KK0FwdCB0aGUgRWxkZXIsIFVscmljaA0KK0FyYWdvbiwgSm9zZQ0KK0FyYWksIEp1bmljaGkNCitBcmFrYXdhLCBTaHVzYWt1DQorQXJhbGRpLCBBbGVzc2FuZHJvDQorQXJidXMsIERpYW5lDQorQXJjaGVyLCBKYW1lcw0KK0FyY2hpcGVua28sIEFsZXhhbmRlcg0KK0FyY2h1bGV0YSwgRmVsaXBlDQorQXJjaW1ib2xkbywgR2l1c2VwcGUNCitBcmRlbiwgUm95DQorQXJkb24sIE1vcmRlY2FpDQorQXJlbGxhbm8sIEp1YW4gZGUNCitBcmVudHN6LiwgQXJlbnQNCitBcmd1bm92LCBJdmFuIFBldHJvdmljaA0KK0FyaWtoYSwgQXZpZ2Rvcg0KK0FyaXNtYW4sIE1hcnNoYWxsDQorQXJtYWphbmksIFNpYWgNCitBcm1hbg0KK0FybWZpZWxkLCBNYXh3ZWxsDQorQXJtaXRhZ2UsIEVkd2FyZA0KK0FybWl0YWdlLCBLZW5uZXRoDQorQXJtcywgSm9obiBUYXlsb3INCitBcm1zdGVhZCwgSGVucnkgSHVnaA0KK0FybXN0cm9uZywgRGF2aWQgTWFpdGxhbmQNCitBcm1zdHJvbmcsIElhbg0KK0FybXN0cm9uZywgSm9obg0KK0FybXN0cm9uZywgV2lsbGlhbQ0KK0FybmFsZCwgR2VvcmdlDQorQXJuZXNvbiwgUm9iZXJ0DQorQXJub2xkLCBBZGVuDQorQXJub2xkaSwgQWxiZXJ0bw0KK0Fybm9sZm8gZGkgQ2FtYmlvDQorQXJub3VsZCwgSmVhbg0KK0FycCwgSmVhbg0KK0Fycm95bywgRWR1YXJkbw0KK0FydCBhbmQgTGFuZ3VhZ2UNCitBcnRhdWQsIFdpbGxpYW0NCitBcnRzY2h3YWdlciwgUmljaGFyZA0KK0FydmlsbGFuZA0KK0FzYW0sIEVnaWQgUXVpcmluDQorQXNhbSwgS29zbWFzIERhbWlhbg0KK0FzaCwgU2FtDQorQXNoZXIsIE1pY2hhZWwNCitBc2hldmFrLCBLZW5vanVhaw0KK0FzaGV2YWssIFRvbW15DQorQXNob29uYSwgS2FrYQ0KK0FzaG9vbmEsIEtpYXdhaw0KK0FzaG9vbmEsIFBpdHNlb2xhaw0KK0FzaHRvbiwgSnVsaWFuDQorQXNpbnMgUm9kcmlndWV6LCBFbGVuYQ0KK0FzcGVydGluaSwgQW1pY28NCitBc3BldHRpLCBUaXppYW5vDQorQXNzYWVsLCBTdGV2ZW4NCitBc3NlbHluLCBKYW4NCitBc3NlcmV0bywgR2lvYWNjaGlubw0KK0Fzc2xlciwgRmVkZXJpY28NCitBc3QsIEJhbHRoYXNhciB2YW4gZGVyDQorQXN0ZWFzDQorQXN0cnVjLCBaYWNoYXJpZQ0KK0F0Y2hlYWxhaywgRGF2aWUNCitBdGdldCwgRXVnw6huZQ0KK0F0a2luc29uLCBKb2huIEF1Z3VzdHVzDQorQXRraW5zb24sIFcuRS4NCitBdGtpc29uLCBHZW9yZ2UgQS4NCitBdGwsIERyLg0KK0F0dGF2YW50ZSBEZWdsaSBBdHRhdmFudGkNCitBdWR1Ym9uLCBKb2huIEphbWVzDQorQXVkdWJvbiwgSm9obiBXb29kaG91c2UNCitBdWVyYmFjaCwgRnJhbmsNCitBdWVyYmFjaC1MZXZ5LCBXaWxsaWFtDQorQXVndWluLCBMb3Vpcy1BdWd1c3Rpbg0KK0F1Z3VzdGUsIFJvYmVydC1Kb3NlcGgNCitBdWx0LCBHZW9yZ2UNCitBdW1vbmllciwgSmFtZXMNCitBdXN0aW4sIERhcnJlbA0KK0F1dGlvLCBMZWxhDQorQXV0aW8sIFJ1ZHkNCitBdmVkLCBKYWNxdWVzLUFuZHLDqS1Kb3NlcGgNCitBdmVkb24sIFJpY2hhcmQNCitBdmVsbGksIEZyYW5jZXNjbyBYYW50bw0KK0F2ZXJjYW1wLCBIZW5kcmljaw0KK0F2ZXJ5LCBNaWx0b24NCitBd2FsdCwgRWxpemFiZXRoDQorQXlsZXNmb3JkLCBIZW5lYWdlIEZpbmNoLCBGaWZ0aCBFYXJsIG9mDQorQXlsZXNmb3JkLCBIZW5lYWdlIEZpbmNoLCBGb3VydGggRWFybCBvZg0KK0F5LU8NCitBeXJ0b24sIE1pY2hhZWwNCitBemFjZXRhLCBMdWlzIENydXoNCitCYWJ1cmVuLCBEaXJjayB2YW4NCitCYWNjaGlhY2NhLCBGcmFuY2VzY28NCitCYWNjaWFyZWxsaSwgTWFyY2VsbG8NCitCYWNoYXIsIEpvc2VwaA0KK0JhY2hlciwgT3R0byBIZW5yeQ0KK0JhY2hyb2R0LCBTYXJhaA0KK0JhY2ljY2lvLCBJbA0KK0JhY2tlciwgSmFjb2IgQWRyaWFlbnN6Lg0KK0JhY2todXlzZW4sIEx1ZG9sZg0KK0JhY29uLCBGcmFuY2lzDQorQmFjb24sIEhlbnJ5DQorQmFjb24sIEpvaG4gSGVucnkgRi4NCitCYWNvbiwgUGVnZ3kNCitCYWNvbiwgU2lyIE5hdGhhbmllbA0KK0JhZGEgU2hhbnJlbg0KK0JhZGFsb2NjaGlvLCBTaXN0bw0KK0JhZGdlciwgSm9zZXBoDQorQmFlY2hsZXIsIERvbmFsZA0KK0JhZWRlciwgSm9obg0KK0JhZW4sIEphbiBkZQ0KK0JhZXIsIEdlb3JnZQ0KK0JhZ2csIEhlbnJ5IEhvd2FyZA0KK0JhZ2xpb25lLCBHaW92YW5uaQ0KK0JhZ25vbGksIE1hcmNvDQorQmFpaXRzdSwgWWFtYW1vdG8NCitCYWlsZXksIFJvZ2VyDQorQmFpbGV5LCBXaWxsaWFtDQorQmFpbGxhaXJnw6ksIEZyYW7Dp29pcw0KK0JhaWxseSwgRGF2aWQNCitCYWl6ZXJtYW4sIFNhdWwNCitCYWtlciwgV2lsbGlhbSBCbGlzcw0KK0Jha3N0LCBMZW9uDQorQmFsZGVzc2FyaSwgSm9obg0KK0JhbGRvdmluZXR0aSwgQWxlc3Npbw0KK0JhbGRyaWRnZSwgQ3lydXMgTGVSb3kNCitCYWxkdW5nIEdyaWVuLCBIYW5zDQorQmFsZHdpbiwgRG91Z2xhcw0KK0JhbGVuLCBIZW5kcmljayB2YW4NCitCYWxlc3RyYSwgQW50b25pbw0KK0JhbGwsIEFsaWNlIFdvcnRoaW5ndG9uDQorQmFsbCwgVGhvbWFzDQorQmFsbGEsIEdpYWNvbW8NCitCYWxsaW5nLCBPbGUgUGV0ZXIgSGFuc2VuDQorQmFsbG90dGEsIFBldGUNCitCYWxtZXMsIEpvc8OpDQorQmFsc29uLCBSYWxwaA0KK0JhbHRodXMNCitCYWx0aW1vcmUgUGFpbnRlciwgVGhlDQorQmFsemFjLCBBbGFpbg0KK0JhbHphYywgRWRtZS1QaWVycmUNCitCYW1hLCBKYW1lcw0KK0JhbWJhaWENCitCYW5kZWlyYSwgQW50w7RuaW8NCitCYW5kaW5lbGxpLCBCYWNjaW8NCitCYW5kaW5pLCBHaW92YW5uaQ0KK0JhbmtzLCBNZWwNCitCYW5uZXJtYW4sIEZyYW5jZXMgTS4gSm9uZXMNCitCYW5uaXN0ZXIsIEVkd2FyZCBNLg0KK0JhcHN0LCBFdnJhcmQNCitCYXB0aXN0YSwgTWFyY2lhbm8NCitCYXJhYsOhcywgTWlrbMOzcw0KK0JhcmFrLCBXaWxsaWFtDQorQmFyYW5laywgRnJpZGENCitCYXJhbm9mZi1Sb3NzaW5lLCBXbGFkaW1pcg0KK0JhcmJlDQorQmFyYmVyaSwgR2l1c2VwcGUNCitCYXJiZXQsIEplYW4NCitCYXJib3VyLCBDYXJsDQorQmFyY2h1cywgRWxpemEgUm9zYW5uYQ0KK0JhcmQsIEphbWVzDQorQmFyZCwgSm9obg0KK0JhcmVuZ2VyLCBKYW1lcw0KK0Jhcmd1ZSwgQ2hhcmxlcw0KK0JhcmlzYW5pLCBSZW5hdG8NCitCYXJpc2FubyBkYSBUcmFuaQ0KK0JhcmtlciBvZiBCYXRoLCBUaG9tYXMNCitCYXJrZXIsIEFsYmVydCBXaW5zbG93DQorQmFya2VyLCBDbGl2ZQ0KK0JhcmtlciwgTWFyZ2FyZXQNCitCYXJrZXIsIFdyaWdodA0KK0JhcmxhY2gsIEVybnN0DQorQmFybG93LCBGcmFuY2lzDQorQmFybmEgZGEgU2llbmENCitCYXJuYXJkLCBSZXYuIFdpbGxpYW0gSGVucnkNCitCYXJuZXMsIEVybmllDQorQmFybmV0LCBXaWxsDQorQmFybmV5LCBNYXR0aGV3DQorQmFybnNsZXksIEouTS4NCitCYXJvY2NpLCBGZWRlcmljbw0KK0JhcnJhZGFzLCBSYWZhZWwNCitCYXJyYXVkLCBIZW5yeQ0KK0JhcnJhdWQsIFdpbGxpYW0NCitCYXJyZXQgSnIuLCBHZW9yZ2UNCitCYXJyZXQgU3IuLCBHZW9yZ2UNCitCYXJyZXR0LCBCaWxsDQorQmFycmlhcywgTG91aXMtRXJuZXN0DQorQmFycmlvcywgR3JhY2lhDQorQmFycm9uLCBIdWdoDQorQmFycm9uLCBSb24NCitCYXJyb3csIEpvc2VwaCBDaGFybGVzDQorQmFycnksIEFubmUgTWVyZWRpdGgNCitCYXJyeSwgSmFtZXMNCitCYXJyeSwgV2lsbGlhbSBHZXJhcmQNCitCYXJzb3R0aSwgSMOpcmN1bGVzDQorQmFydGhlbCwgTWVsY2hpb3JyZQ0KK0JhcnRob2xkaSwgRnLDqWTDqXJpYy1BdWd1c3RlDQorQmFydGhvbG9tZQ0KK0JhcnRsZSwgU2FyYSBOb3J3b29kDQorQmFydGxldHQsIEJvDQorQmFydGxldHQsIEplbm5pZmVyDQorQmFydG9saW5pLCBMb3JlbnpvDQorQmFydG9sbyBkaSBGcmVkaQ0KK0JhcnRvbG9tZW8gZGEgQnJlc2NpYQ0KK0JhcnRvbG9tZW8gZGkgR2lvdmFubmkNCitCYXJ0b2xvbWVvIFZlbmV0bw0KK0JhcnRvbG9tbWVvLCBGcmENCitCYXJ0b2xvenppLCBGcmFuY2VzY28NCitCYXJ5LCBIZW5kcmlrDQorQmFyeWUsIEFudG9pbmUtTG91aXMNCitCYXNhaXRpLCBNYXJjbw0KK0Jhc2FsZGVsbGEsIE1pcmtvDQorQmFzYW4sIFBpZXJyZSBGcmFuw6dvaXMNCitCYXNjaGVuaXMsIEV2YXJpc3RvDQorQmFzZWxpdHosIEdlb3JnDQorQmFzaGtpcnRzZWZmLCBNYXJpYQ0KK0Jhc2lyZSwgSmFtZXMNCitCYXNraW4sIExlb25hcmQNCitCYXNxdWlhdCwgSmVhbi1NaWNoZWwNCitCYXNzYW5vLCBGcmFuY2VzY28NCitCYXNzYW5vLCBKYWNvcG8NCitCYXNzYW5vLCBMZWFuZHJvDQorQmFzc2VuLCBCYXJ0aG9sb21ldXMgdmFuDQorQmFzdGlhbmksIExhenphcm8NCitCYXN0aWFuaW5pLCBHaW92YW5uaQ0KK0Jhc3RpZW4tTGVwYWdlLCBKdWxlcw0KK0JhdGVtYW4gMTg0Mi0xOTIyLCBSb2JlcnQNCitCYXRlbWFuLCBKYW1lcw0KK0JhdGVtYW4sIFJvYmVydA0KK0JhdGVzLCBEYXZpZA0KK0JhdGVzLCBIYXJyeQ0KK0JhdGVzLCBNYXh3ZWxsDQorQmF0b25pLCBQb21wZW8NCitCYXVkb3VpbiwgUGllcnJlLUFudG9pbmUNCitCYXVkcnksIFBhdWwNCitCYXVnaW4sIEx1YmluDQorQmF1bSwgQ2hhcmxlcw0KK0JhdW1hbiwgTGVpbGEgVC4NCitCYXVtYW5uLCBHdXN0YXZlDQorQmF1bWFubiwgS2FybA0KK0JhdW1laXN0ZXIsIFdpbGxpDQorQmF1bWdhcnRlbiwgTG90aGFyDQorQmF1bWdhcnRuZXIsIFBldGVyDQorQmF3ZGVuLCBFZHdhcmQNCitCYXh0ZXIsIEdlb3JnZQ0KK0JheHRlciwgVGhvbWFzIFRlbm5hbnQNCitCYXlldSB5IFN1YsOtYXMsIEZyYW5jaXNjbw0KK0JheWV1LCBSYW1vbg0KK0JhemljYWx1dmEsIEVyY29sZQ0KK0JhemlsbGUsIEZyw6lkw6lyaWMNCitCYXppb3RlcywgV2lsbGlhbQ0KK0Jhenphcm8sIEVybmVzdG8NCitCZWFjaCwgVGhvbWFzDQorQmVhbCwgR2lmZm9yZA0KK0JlYWwsIEphY2sNCitCZWFsZSwgTWFyeQ0KK0JlYWxsLVNtaXRoLCBMYXdyZW5jZQ0KK0JlYWxzLCBKZXNzZSBUYXJib3gNCitCZWFtLCBDYXJsDQorQmVhbSwgTWFyaw0KK0JlYW4sIENhcm9saW5lIFZhbiBIb29rDQorQmVhcmQsIEFkZWxpYSBCZWxsZQ0KK0JlYXJkLCBSaWNoYXJkDQorQmVhcmQsIFdpbGxpYW0gSG9sYnJvb2sNCitCZWFyZGVuLCBSb21hcmUNCitCZWFyZHNsZXkgTGltbmVyLCBUaGUNCitCZWFyZHNsZXksIEF1YnJleQ0KK0JlYXJkeSwgSmFja3Nvbg0KK0JlYXJlLCBHZW9yZ2UNCitCZWFzbGV5LCBCcnVjZQ0KK0JlYXRvLCBGZWxpY2UgQS4NCitCZWF0dHksIEouVy4NCitCZWF1bW9udCwgU2lyIEdlb3JnZSBIb3dsYW5kDQorQmVhdW5ldmV1LCBBbmRyw6kNCitCZWF1eCwgQ2VjaWxpYQ0KK0JlY2NhZnVtaSwgRG9tZW5pY28NCitCZWNoZXIsIEJlcm5oYXJkDQorQmVjaGVyLCBIaWxsYQ0KK0JlY2h0ZWwsIE1lcmxpbg0KK0JlY2h0bGUsIFJvYmVydA0KK0JlY2ssIExlb25oYXJkDQorQmVja2VyLCBGZXJkaW5hbmQNCitCZWNrZXIsIEZyZWQNCitCZWNrZXR0LCBDbGFyaWNlDQorQmVja2V0dCwgRnJhbmNpcyBBLg0KK0JlY2stRnJpZWRtYW4sIFRvdmENCitCZWNrbWFubiwgTWF4DQorQmVja3dpdGgsIEphbWVzIENhcnJvbGwNCitCZWRmb3JkLCBGcmFuY2lzDQorQmVkaWEsIEpvc8OpDQorQmVkd2FzaCwgUmljaGFyZA0KK0JlZWNoZXksIFNpciBXaWxsaWFtDQorQmVlbSwgT2xpdmUNCitCZWVyYm9obSwgU2lyIE1heA0KK0JlZXJzLCBKdWxpZSBIYXJ0DQorQmVlcnN0cmF0ZW4sIEphbiBBYnJhaGFtc3ouDQorQmVlcnQgdGhlIEVsZGVyLCBPc2lhcw0KK0JlZ2EsIENvcm5lbGlzDQorQmVnYXksIEhhcnJpc29uDQorQmVnZXluLCBBYnJhaGFtDQorQmVoYW0sIEJhcnRoZWwNCitCZWhhbSwgSGFucyBTZWJhbGQNCitCZWhsZXMsIEVkbXVuZA0KK0JlaG5lcywgV2lsbGlhbQ0KK0JlaG5rZSwgTGVpZ2gNCitCZWxiZWxsbyBkYSBQYXZpYQ0KK0JlbGwsIENlY2lsIEMuDQorQmVsbCwgQ2hhcmxlcw0KK0JlbGwsIEVkd2FyZCBBLg0KK0JlbGwsIEdlb3JnZQ0KK0JlbGwsIEhhcnJpZXQNCitCZWxsLCBKb2huIFplcGhhbmlhaA0KK0JlbGwsIEtldmluDQorQmVsbCwgTGFycnkNCitCZWxsLCBQZXRlcg0KK0JlbGwsIFRyZXZvcg0KK0JlbGwsIFZhbmVzc2ENCitCZWxsYW5nw6ksIEhpcHBvbHl0ZQ0KK0JlbGxhbmdlLCBKYWNxdWVzDQorQmVsbGFubywgQmFydG9sb21lbw0KK0JlbGxlLCBBbGV4aXMgU2ltb24NCitCZWxsZWNob3NlLCBIZW5yaQ0KK0JlbGxlZ2FtYmUsIEplYW4NCitCZWxsZXR0ZSwgSmVhbg0KK0JlbGxpLCBWYWxlcmlvDQorQmVsbGluZ2hhbS1TbWl0aCwgRWxpbm9yDQorQmVsbGluaSwgR2VudGlsZQ0KK0JlbGxpbmksIEdpb3Zhbm5pDQorQmVsbGluaSwgSmFjb3BvDQorQmVsbG1lciwgSGFucw0KK0JlbGxvZ3VldCwgQS4NCitCZWxsb3R0bywgQmVybmFyZG8NCitCZWxsb3dzLCBBbGJlcnQgRml0Y2gNCitCZWxsb3dzLCBHZW9yZ2UgV2VzbGV5DQorQmVsbC1TbWl0aCwgRi5NLg0KK0JlbGx1Y2NpLCBBbnRvbmlvDQorQmVuYWdsaW8sIEZyYW5jZXNjbw0KK0JlbmF6ZWNoLCBQZXRlciBQYXVsDQorQmVuYnJpZGdlLCBIZW5yeQ0KK0JlbmR6LCBXaWxoZWxtDQorQmVuZHpzYSwgU3lsdmlhDQorQmVuZWRldHRvIGRhIE1haWFubw0KK0JlbmVkZXR0byBkYSBSb3Zlenphbm8NCitCZW5nbGlzLCBMeW5kYQ0KK0Jlbm4sIEJlbg0KK0Jlbm5ldHQsIEpvaG4NCitCZW5uZXR0LCBSYWluZXkNCitCZW5uZXR0LCBXaWxsaWFtIEphbWVzDQorQmVubmV5LCBSb2JlcnQNCitCZW5vaXMsIEFsZWtzYW5kcg0KK0Jlbm9pcywgTmFkaWENCitCZW5vaXN0LCBNYXJpZS1HdWlsbGVtaW5lDQorQmVuc29uLCBBbWJyb3NpdXMNCitCZW5zb24sIEZyYW5rIFdlc3Rvbg0KK0JlbnNvbiwgTGVzbGllIExhbmdpbGxlDQorQmVudGhhbSwgRG91Z2xhcyBXYXluZQ0KK0JlbnRvbiwgRmxldGNoZXINCitCZW50b24sIFRob21hcyBIYXJ0DQorQmVudmVudXRvIGRpIEdpb3Zhbm5pDQorQmVuemlnZXIsIEF1Z3VzdA0KK0JlbnpvbmksIEdpb3Zhbm5pIE1hcmlhDQorQsOpcmF1ZCwgSmVhbg0KK0JlcmNoZW0sIENsYWVzDQorQmVyY2hlbSwgTmljb2xhZXMNCitCZXJja2hleWRlLCBHZXJyaXQgQWRyaWFlbnN6Lg0KK0JlcmNraGV5ZGUsIEpvYg0KK0JlcmRhbm4sIEVsaXphYmV0aA0KK0JlcmcsIEFkcmlhbg0KK0JlcmdlciwgSmFjcXVlcw0KK0JlcmdoYXNoLCBNYXJrDQorQmVyZ2hlLCBDaHJpc3RvZmZlbCB2YW4gZGVuDQorQmVyZ23DvGxsZXIsIEpvaGFubiBHZW9yZw0KK0JlcmduZXIsIFlvc2wNCitCZXJnb2dub25lDQorQmVya2VsZXksIFJldi4gQy5KLlIuDQorQmVya21hbiwgQ2hyaXN0aW5lDQorQmVybGFudCwgVG9ueQ0KK0JlcmxpbiBQYWludGVyLCBUaGUNCitCZXJsaW5naGllcmksIEJvbmF2ZW50dXJhDQorQmVybWFuLCBFdWdlbmUNCitCZXJtZWpvLCBCYXJ0b2xvbcOpDQorQmVybmFyZCwgRW1pbGUNCitCZXJuYXJkaSwgR2lvdmFubmkNCitCZXJuYXQsIE1hcnRpbg0KK0Jlcm5pbmdoYXVzLCBPc2NhciBFZG11bmQNCitCZXJuaW5pLCBHaWFubG9yZW56bw0KK0Jlcm5pbmksIFBpZXRybw0KK0Jlcm5zdGVpbiwgVGhlcmVzYSBGZXJiZXINCitCw6lyb3VkLCBMb3Vpcw0KK0JlcnJ1Z3VldGUsIEFsb25zbw0KK0JlcnJ1Z3VldGUsIFBlZHJvDQorQmVycnksIERhdmlkDQorQmVyc2hhZCwgSGVsZW4NCitCZXJ0aW4sIMOJZG91YXJkDQorQmVydG9sZG8gZGkgR2lvdmFubmkNCitCZXJ0cmFuZCwgUmF5DQorQmVydHJhbmQsIFZpbmNlbnQNCitCZXJ0dWNjaSwgR2lvdmFubmkgQmF0dGlzdGENCitCZXNuYXJkLCBBbGJlcnQNCitCZXN0IE1hdWdhcmQsIEFkb2xmbw0KK0JldHRlbGhlaW0sIEpvbGFuIEdyb3NzDQorQmV0dGVyYSwgQmFydG9sb21lbw0KK0JldHRlcywgSm9obg0KK0JldHRzLCBMb3Vpcw0KK0JldWNrZWxhZXIsIEpvYWNoaW0NCitCZXVnLCBMb3JuZQ0KK0JldXlzLCBKb3NlcGgNCitCZXZhbiwgUm9iZXJ0DQorQmV2YW4sIFRvbnkNCitCZXllciwgSmFuIGRlDQorQmV5ZXJlbiwgQWJyYWhhbSBIZW5kcmlja3ouIHZhbg0KK0JpYWdpbyBkJ0FudG9uaW8gZGEgRmlyZW56ZQ0KK0JpYW5jaGksIERvbWVuaWNvDQorQmlhcmQsIFBpZXJyZQ0KK0JpYmllbmEsIEZlcmRpbmFuZG8gR2FsbGkNCitCaWJpZW5hLCBGcmFuY2VzY28gR2FsbGkNCitCaWJpZW5hLCBHaXVzZXBwZSBHYWxsaQ0KK0JpY2tuZWxsLCBGcmFuaw0KK0JpZGRsZSwgR2VvcmdlDQorQmlkdWlubw0KK0JpZWRlcm1hbiwgQ2hhcmxlcw0KK0JpZWdhcywgQm9sZXNsYXMNCitCaWVubmFpcywgTWFydGluLUd1aWxsYXVtZQ0KK0JpZXJzdGFkdCwgQWxiZXJ0DQorQmlnYXJlbGxpLCBHdWlkbw0KK0JpZ2dlcnMsIEpvaG4NCitCaWdnZXJzdGFmZiwgTXlyYQ0KK0JpZ290LCBUcm9waGltZQ0KK0JpZ3VtLCBNYXJ0aW4NCitCaWpsZXJ0LCBKYW4gdmFuDQorQmlsaW5za2EsIEFubmENCitCaWxpdmVydCwgR2lvdmFubmkNCitCaWxsZSwgRWpsZXINCitCaW5jaywgSmFjb2INCitCaW5naGFtLCBHZW9yZ2UgQ2FsZWINCitCaW5uaWUsIFBhdWwNCitCaXJjaCwgQ2hhcmxlcyBCZWxsDQorQmlyY2gsIFRob21hcw0KK0JpcmNoLCBXaWxsaWFtIFJ1c3NlbGwNCitCaXJsZXksIFNpciBPc3dhbGQgSG9ybmJ5IEpvc2VwaA0KK0Jpcm5iYXVtLCBEYXJhDQorQmlyb2xsaSwgUmVuYXRvDQorQmlzY2hvZmYsIEVsbWVyDQorQmlzY2hvZmYsIEZyYW56DQorQmlzaG9wLCBJc2FiZWwNCitCaXNvbiwgR2l1c2VwcGUgQmVybmFyZGlubw0KK0Jpc3NjaG9wLCBDb3JuZWxpcw0KK0Jpc3NpZXIsIEp1bGl1cw0KK0Jpc3Npw6hyZSwgUm9nZXINCitCaXNzb2xvLCBQaWVyIEZyYW5jZXNjbw0KK0Jpc3RvbGZpLCBMZW9uYXJkbw0KK0JpdG5lciwgUmhvbmENCitCbGFhcywgRXVnZW5lIGRlDQorQmxhY2ssIEhlbGVuZQ0KK0JsYWNrLCBPbGl2ZSBQYXJrZXINCitCbGFja2FkZGVyLCBFbGl6YWJldGgNCitCbGFja2J1cm4sIEVkDQorQmxhY2tidXJuLCBKb3NlcGgNCitCbGFja21hbiwgQ2hhcmxlcw0KK0JsYWNrd2VsbCwgVG9tDQorQmxhY2t3b29kLCBEYXZpZA0KK0JsYWRlbiwgUm9uYWxkDQorQmxhZ2csIERlbm5pcw0KK0JsYWlyLUxlaWdodG9uLCBFZG11bmQNCitCbGFpcywgTm9ybWFuZA0KK0JsYWtlLCBKaW0NCitCbGFrZSwgUGV0ZXINCitCbGFrZSwgV2lsbGlhbQ0KK0JsYWtlbG9jaywgTWFyaWFuDQorQmxha2Vsb2NrLCBSYWxwaCBBbGJlcnQNCitCbGFtZXksIE5vcm1hbg0KK0JsYW1waWVkLCBFZG11bmQNCitCbGFuY2hhcmQsIEphY3F1ZXMNCitCbGFuY2hhcmQsIE1hcsOtYQ0KK0JsYW5jaGUsIEphY3F1ZXMtRW1pbGUNCitCbGFuY2hldCwgTG91aXMtR2FicmllbA0KK0JsYW5kLCBCZWF0cmljZQ0KK0JsYXJlbmJlcmdoZSwgTG91aXMgTmljb2xhcyB2YW4NCitCbGFzaGZpZWxkLCBFZHdpbiBIb3dsYW5kDQorQmxhdXZlbHQsIENoYXJsZXMgRi4NCitCbGVjaGVuLCBDYXJsDQorQmxlY2tuZXIsIFJvc3MNCitCbGVyeSwgRXVnZW5lDQorQmxpc3MsIERvdWdsYXMgUGVyY3kNCitCbG9jaCwgQWxiZXJ0DQorQmxvY2gsIEx1Y2llbm5lDQorQmxvY2gsIE1hcnRpbg0KK0Jsb2NrLCBCZW5qYW1pbg0KK0Jsb2VtYWVydCwgQWJyYWhhbQ0KK0Jsb2VtZW4sIEphbiBGcmFucyB2YW4NCitCbG9uZGVsLCBNZXJyeS1Kb3NlcGgNCitCbG9vbSwgQmFyYmFyYQ0KK0Jsb3csIFNhbmRyYQ0KK0JsdWUgRWFnbGUsIEFjZWUNCitCbHVlbW5lciwgT3NjYXINCitCbHVobSwgTm9ybWFuDQorQmx1aG0sIE9zY2FyDQorQmx1bSwgUm9iZXJ0IEZyZWRlcmljaw0KK0JsdW1lLCBQZXRlcg0KK0JsdW1lbnNjaGVpbiwgRXJuZXN0IExlb25hcmQNCitCbHl0aGUsIERhdmlkIEdpbG1vdXINCitCb2NjYWNjaW5vLCBCb2NjYWNjaW8NCitCb2NjaW9uaSwgVW1iZXJ0bw0KK0JvY2huZXIsIE1lbA0KK0LDtmNrbGluLCBBcm5vbGQNCitCb2Nrc3RvcmZmZXIsIENocmlzdG9mZmVsDQorQm9kaW5pLCBGbG9yaWFubw0KK0JvZG1lciwgS2FybA0KK0JvZWNraG9yc3QsIEpvaGFubg0KK0JvZWhtLCBTaXIgSm9zZXBoIEVkZ2FyDQorQm9laG1lLCBLYXJsDQorQm9lbCwgUGlldGVyDQorQm9ldHRpLCBBbGlnaGllcm8gZQ0KK0JvZ2dzLCBGcmFuayBNLg0KK0JvZ2hvc3NpYW4sIFNrdW5kZXINCitCb2dsZSwgSm9obg0KK0JvaGwsIFdhbHRlciBFLg0KK0JvaHJvZCwgQWFyb24NCitCb2lsbHksIExvdWlzLUzDqW9wb2xkDQorQm9pc3NlYXUsIEFsZnJlZA0KK0JvaXNzZWxpZXIsIEbDqWxpeA0KK0JvaXNzaWV1LCBKZWFuLUphY3F1ZXMgZGUNCitCb2wsIEZlcmRpbmFuZA0KK0JvbCwgSGFucw0KK0JvbGRpbmksIEdpb3Zhbm5pDQorQm9sZHVxdWUsIFBlZHJvIGRlDQorQm9sb3Rvd3NreSwgSWx5YQ0KK0JvbHRhbnNraSwgQ2hyaXN0aWFuDQorQm9sdHJhZmZpbywgR2lvdmFubmkgQW50b25pbw0KK0JvbWJlcmcsIERhdmlkDQorQm9uLCBCYXJ0b2xvbWVvDQorQm9uLCBHaW92YW5uaQ0KK0JvbmFubm8gZGEgUGlzYQ0KK0JvbmFzb25lLCBHaXVsaW8gZGkgQW50b25pbw0KK0JvbmF6emEsIEFudG9uaW8NCitCb25jaW5lbGxpLCBFdmFyaXN0bw0KK0JvbmQsIENoYXJsZXMgVi4NCitCb25kLCBNYXJpb24NCitCb25lLCBIZW5yeQ0KK0JvbmUsIFNpciBNdWlyaGVhZA0KK0JvbmUsIFN0ZXBoZW4NCitCb25oZXVyLCBBdWd1c3RlDQorQm9uaGV1ciwgUm9zYQ0KK0JvbmluZ3RvbiwgUmljaGFyZCBQYXJrZXMNCitCb25pbm8gZGEgQ2FtcGlvbmUNCitCb25uYXJkLCBQaWVycmUNCitCb25uYXQsIEzDqW9uDQorQm9ubmF1ZCwgUGllcnJlDQorQm9ubmVmb25kLCBKZWFuLUNsYXVkZQ0KK0Jvbm5lbGwsIFdpbGxpYW0NCitCb25uZXIsIEpvbmF0aGFuDQorQm9ubmV0LCBMb3Vpcy1NYXJpbg0KK0JvbnNpZ25vcmksIEZyYW5jZXNjbw0KK0JvbnRlY291LCBMZWUNCitCb252aW4sIEZyYW7Dp29pcw0KK0Jvb3RoLCBDYW1lcm9uDQorQm9yY2h0LCBIZW5kcmlrIHZhbiBkZXINCitCb3JjaHQsIFBpZXRlciBWYW4gRGVyDQorQm9yZG9uZSwgUGFyaXMNCitCb3Jkb25pLCBGcmFuY2VzY28NCitCb3JkdWFzLCBQYXVsLcOJbWlsZQ0KK0JvcmVhZCBQYWludGVyLCBUaGUNCitCb3JlaW4sIEVkd2FyZA0KK0JvcmVzIExvcGV6LCBGcmFuY2lzY28NCitCb3JnLCBDYXJsIE9zY2FyDQorQm9yZ2VzLCBQZWRybyBBbGV4YW5kcmlubw0KK0JvcmdldCwgQXVndXN0ZQ0KK0JvcmdpYW5uaSwgT3JhemlvDQorQm9yZ2x1bSwgU29sb24gSC4NCitCb3Jnb8OxYSwgSnVhbiBkZQ0KK0Jvcm9mc2t5LCBKb25hdGhhbg0KK0Jvcm92aWtvdnNraWksIFZsYWRpbWlyIEx1a2ljaA0KK0JvcnJhc3PDoSwgTHXDrXMNCitCb3JyZWdhYXJkLCBFZHVhcmQNCitCb3JybywgTHVpZ2kNCitCb3Jyb21pbmksIEZyYW5jZXNjbw0KK0Jvc2Jvb20sIEpvaGFubmVzDQorQm9zY2gsIEhpZXJvbnltdXMNCitCb3Njb2xpLCBBbmRyZWENCitCb3NoaWVyLCBEZXJlaw0KK0Jvc2lvLCBGcmFuw6dvaXMtSm9zZXBoDQorQm9zcywgSG9tZXINCitCb3NzY2hhZXJ0IHRoZSBFbGRlciwgQW1icm9zaXVzDQorQm9zc2NoZSwgQWVydCB2YW4gZGVuDQorQm9zc2UsIEFicmFoYW0NCitCb3Rlcm8sIEZlcm5hbmRvDQorQm90aCwgQW5kcmllcw0KK0JvdGgsIEphbiBEaXJrc3oNCitCb3RrZSwgSmVzc2llIEFybXMNCitCb3R0aWNlbGxpLCBTYW5kcm8NCitCb3R0aWNpbmksIEZyYW5jZXNjbw0KK0JvdWNoYXJkb24sIEVkbcOpDQorQm91Y2jDqSwgTG91aXMNCitCb3VjaGVyLCBGcmFuw6dvaXMNCitCb3VkZXd5bnMsIEFkcmlhZW4gRnJhbnMNCitCb3VkaW4sIEV1Z8OobmUNCitCb3VnaCwgU2FtdWVsDQorQm91Z2h0b24sIEdlb3JnZSBIZW5yeQ0KK0JvdWd1ZXJlYXUsIEFkb2xwaGUgV2lsbGlhbQ0KK0JvdWd1ZXJlYXUsIEVsaXphYmV0aCBHYXJkbmVyDQorQm91bGFuZ2VyLCBHdXN0YXZlDQorQm91bGxlLCBBbmRyw6ktQ2hhcmxlcw0KK0JvdWxsw6llLCDDiXRpZW5uZS1Mb3Vpcw0KK0JvdWxvZ25lLCBWYWxlbnRpbiBkZQ0KK0JvdXJkZWxsZSwgRW1pbGUgQW50b2luZQ0KK0JvdXJkb24sIFPDqWJhc3RpZW4NCitCb3VyZ2VvaXMsIExvdWlzZQ0KK0JvdXJrZS1XaGl0ZSwgTWFyZ2FyZXQNCitCb3VybmUsIEphbWVzDQorQm91cnNzZSwgRXNhaWFzDQorQm91c3NhcmQsIERhbmENCitCb3V0ZXQgZGUgTW9udmVsLCBMb3Vpcy1NYXVyaWNlDQorQm91dGlib25uZSwgQ2hhcmxlcyBFZHdhcmQNCitCb3V0cyB0aGUgRWxkZXIsIERpZXJpYw0KK0JvdXRzIHRoZSBZb3VuZ2VyLCBEaWVyaWMNCitCb3V0cywgQWVsYnJlY2h0DQorQm91dmFyZCwgQW50b2luZQ0KK0JvdXZpZXIsIExhdXJlbnQgSm9zZXBoIERhbmllbA0KK0Jvd2RlbiwgSGFycnkNCitCb3dkZW4sIFBhdWwNCitCb3dkb2luLCBIYXJyaWV0dGUNCitCb3dlbiwgQXNobGV5DQorQm93bGVyLCBIZW5yeSBBbGV4YW5kZXINCitCb3dsaW5nLCBGcmFuaw0KK0Jvd2xpbmcsIFRvbQ0KK0Jvd21hbiwgUm9nZXINCitCb3hhbGwsIFNpciBXaWxsaWFtDQorQm95Y2UsIEdlb3JnZSBQcmljZQ0KK0JveWQgSnIuLCBBcnRodXINCitCb3lkIFNyLiwgQXJ0aHVyDQorQm95ZCwgRW1tYSBNaW5uaWUNCitCb3llciwgQm9iDQorQm95bGUsIEVsZWFub3IgVmVyZQ0KK0JveWxlLCBNYXJrDQorQm95bmUsIEpvaG4NCitCb3lzLCBUaG9tYXMgU2hvdHRlcg0KK0JvemlvdCwgRnJhbsOnb2lzLUpvc2VwaA0KK0JyYWJhem9uLCBIZXJjdWxlcyBCcmFiYXpvbg0KK0JyYWNjZXNjbywgQ2FybG8gZGkNCitCcmFjY2ksIFBpZXRybw0KK0JyYWNrLCBKb2huDQorQnJhY2ttYW4sIFJvYmVydA0KK0JyYWNxdWVtb25kLCBGw6lsaXgNCitCcmFjcXVlbW9uZCwgTWFyaWUNCitCcmFkZm9yZCwgV2lsbGlhbQ0KK0JyYWRsZXksIEpvaG4NCitCcmFkbGV5LCBNYXJ0aW4NCitCcmFkc2hhdywgRG92ZQ0KK0JyYWRzaGF3LCBKLlcuDQorQnJhZHksIENhcm9seW4NCitCcmFkeSwgTWF0aGV3DQorQnJhZWtlbGVlciwgSGVucmkgRGUNCitCcmFpbGVzLCBXaWxsaWFtIGRlDQorQnJha2hhZ2UsIFN0YW4NCitCcmFtYW50ZSwgRG9uYXRvDQorQnJhbWFudGlubw0KK0JyYW1lciwgTGVvbmFlcnQNCitCcmFtbGV5LCBGcmFuaw0KK0JyYW5jdXNpLCBDb25zdGFudGluDQorQnJhbmRhbmksIEZlZGVyaWNvDQorQnJhbmRhcmQsIFJvYmVydA0KK0JyYW5kaSwgR2lhY2ludG8NCitCcmFuZHQsIEJpbGwNCitCcmFuZ3d5biwgU2lyIEZyYW5rIFdpbGxpYW0NCitCcmFudHMsIFdhbGx5DQorQnJhcXVlLCBHZW9yZ2VzDQorQnJhc2Nhc3NhdCwgSmFjcXVlcy1SYXltb25kDQorQnJhc3Nhw68NCitCcmF0YnksIEpvaG4NCitCcmF1biwgTWF1cmljZQ0KK0JyYXZvLCBDZWNjbw0KK0JyYXZvLCBDbGF1ZGlvDQorQnJhdm8sIExvbGEgQWx2YXJleg0KK0JyYXksIEFsYW4NCitCcmF5LCBKYW4gZGUNCitCcsOpYmlldHRlLCBQaWVycmUNCitCcmVjaHQsIEdlb3JnZQ0KK0JyZWNrLCBKb2huIExlc2xpZQ0KK0JyZWNrZW5yaWRnZSwgSHVnaCBIZW5yeQ0KK0JyZWRhLCBDYXJsIEZyZWRyaWsgdm9uDQorQnJlZGluLCBSYWUgU2xvYW4NCitCcmVlbmJlcmdoLCBCYXJ0aG9sb21ldXMNCitCcmVnbm8sIEFuZHJlYQ0KK0JyZWdubywgQW50b25pbw0KK0JyZWtlbGVua2FtLCBRdWlyaWpuIHZhbg0KK0JyZW5ldCwgTmljb2xhcy1HdXkNCitCcmVzZGluLCBSb2RvbHBoZQ0KK0JyZXRvbiwgQW5kcsOpDQorQnJldG9uLCBKdWxlcw0KK0JyZXR0LCBKb2huDQorQnJldSB0aGUgRWxkZXIsIErDtnJnDQorQnJldSB0aGUgWW91bmdlciwgSsO2cmcNCitCcmV3c3RlciBKci4sIEpvaG4NCitCcmV3c3RlciwgQW5uYSBSaWNoYXJkcw0KK0JyZXd0bmFsbCwgRWR3YXJkIEZyZWRlcmljaw0KK0JyaWNoZXIsIEFsZnJlZCBUaG9tcHNvbg0KK0JyaWRnZXMsIEZpZGVsaWENCitCcmlkZ2VzLCBKb2huDQorQnJpZGdld29vZCwgSi5DLg0KK0JyaWdkZW4sIEYuSC4NCitCcmlnZ3MsIEhlbnJ5IFBlcnJvbmV0DQorQnJpZ2h0LCBIZW5yeQ0KK0JyaWwsIFBhdWwNCitCcmlvbiwgR3VzdGF2ZQ0KK0JyaW9zY28sIEJlbmVkZXR0bw0KK0JyaXNjb2UsIEFydGh1cg0KK0JyaXN0b2wsIEpvaG4gQnVueWFuDQorQnJpdWxsb3YsIEthcmwNCitCcm9jLCBKZWFuDQorQnJvY2ssIFNpciBUaG9tYXMNCitCcm9ja2h1cnN0LCBHZXJhbGQgTGVzbGllDQorQnJvZHNreSwgQWxleGFuZGVyDQorQnJvZWRlcmxhbSwgTWVsY2hpb3INCitCcm9lciwgUm9nZXINCitCcm9nZ2luaSwgTHVpZ2kNCitCcm9naGFtbWVyLCBKb3NlcGgNCitCcm9naSwgR2lhY29tbw0KK0Jyb21wdG9uLCBSaWNoYXJkDQorQnJvbnppbm8sIEFnbm9sbw0KK0Jyb29rZSwgV2lsbGlhbSBIZW5yeQ0KK0Jyb29rZXIsIEJlcnRyYW0NCitCcm9va2luZywgQ2hhcmxlcw0KK0Jyb29rcywgQ29yYSBTbWFsbGV5DQorQnJvb2tzLCBFcmljYQ0KK0Jyb29rcywgSGVucnkgSmFteW4NCitCcm9va3MsIEphbWVzDQorQnJvb2tzLCBOaWNob2xhcyBBbGRlbg0KK0Jyb3NhbWVyLCBIYW5zDQorQnJvdWV0LCBBdWd1c3RlDQorQnJvdWdoLCBSb2JlcnQNCitCcm91d2VyLCBBZHJpYWVuDQorQnJvd24sIEJvYg0KK0Jyb3duLCBDaHJpc3RvcGhlcg0KK0Jyb3duLCBEZWJvcmFoDQorQnJvd24sIERvdWdsYXMNCitCcm93biwgRm9yZCBNYWRveA0KK0Jyb3duLCBGcmVkZXJpY2sgSmFtZXMNCitCcm93biwgR2VvcmdlIExvcmluZw0KK0Jyb3duLCBKLiBBcHBsZXRvbg0KK0Jyb3duLCBKb2FuDQorQnJvd24sIEpvaG4gR2VvcmdlDQorQnJvd24sIEpvaG4tTGV3aXMNCitCcm93biwgTHVjeSBNYWRveA0KK0Jyb3duLCBNYWUgQmVubmV0dA0KK0Jyb3duLCBNYXRoZXINCitCcm93biwgTWlrZQ0KK0Jyb3duLCBSb2dlcg0KK0Jyb3duLCBXLkguDQorQnJvd24sIFdpbGxpYW0gTWFzb24NCitCcm93bmUsIEFyY2hpYmFsZA0KK0Jyb3duZSwgQmVsbW9yZQ0KK0Jyb3duZSwgQnlyb24NCitCcm93bmUsIEhhYmxvdCBLbmlnaHQNCitCcm93bmUsIEhlbnJpZXR0ZQ0KK0Jyb3duZSwgTWFyZ2FyZXQgRml0emh1Z2gNCitCcm93bmUsIE1hdGlsZGENCitCcm93bmUsIFN5ZA0KK0Jyb3duZWxsLCBGcmFua2xpbg0KK0Jyb3duaW5nLCBDb2xsZWVuDQorQnJvd25pbmcsIFJvYmVydCBCYXJyZXR0DQorQnJvd25zY29tYmUsIEplbm5pZSBBdWd1c3RhDQorQnJ1Y2UsIFBhdHJpY2sgSGVucnkNCitCcnVjZSwgV2lsbGlhbSBCbGFpcg0KK0JydWNoLCBLbGF1cyB2b24NCitCcnVlZ2VsIHRoZSBFbGRlciwgSmFuDQorQnJ1ZWdlbCB0aGUgRWxkZXIsIFBpZXRlcg0KK0JydWVnZWwgdGhlIFlvdW5nZXIsIEphbg0KK0JydWVnZWwgdGhlIFlvdW5nZXIsIFBpZXRlcg0KK0JydWVzdGxlLCBHZW9yZ2UgTS4NCitCcnVuZWxsZXNjaGksIEZpbGlwcG8NCitCcnVzLCBHw7xudGVyDQorQnJ1c2Fzb3JjaQ0KK0JydXNoLCBHZW9yZ2UgZGVGb3Jlc3QNCitCcnV5YSwgTWFyaWx5bg0KK0JydXluIHRoZSBFbGRlciwgQmFydGhlbA0KK0JydXluIHRoZSBZb3VuZ2VyLCBCYXJ0ZWwNCitCcnlhbnMsIExpbmENCitCcnlhbnQsIENoYXJsZXMNCitCcnlnb3MgUGFpbnRlciwgVGhlDQorQnJ5bW5lciwgV2lsbGlhbQ0KK0JyemV6aW5za2ksIEVtaWxpZSBCZW5lcw0KK0J1Y2NpIFBhaW50ZXIsIFRoZQ0KK0J1Y2hoZWl0LCBNYW5mcmVkDQorQnVjaHNlciwgRnJhbmsNCitCdWNrLCBKb2huDQorQnVja2xleSwgSmFtZXMNCitCdWNrbGV5LCBTdGVwaGVuDQorQnVja2xvdywgQ2hyaXN0b3BoZXINCitCdWRpbmd0b24sIEpvbmF0aGFuDQorQnVmZmV0LCBCZXJuYXJkDQorQnVnaWFyZGluaSwgR2l1bGlhbm8NCitCdWhsZXIsIFJvYmVydA0KK0J1aG90LCBGw6lsaXgtSGlsYWlyZQ0KK0J1bGFuZCwgRXVnw6huZQ0KK0J1bGZpbmNoLCBDaGFybGVzDQorQnVsbGVyLCBDZWNpbCBUcmVtYXluZQ0KK0J1bmJ1cnksIENoYXJsZXMNCitCdW5idXJ5LCBIZW5yeSBXaWxsaWFtDQorQnVuY2UsIEthdGUgRWxpemFiZXRoDQorQnVuY2UsIExvdWlzDQorQnVuZHksIEVkZ2FyDQorQnVuZHksIEhvcmFjZQ0KK0J1bmtlciwgRGVubmlzIE1pbGxlcg0KK0J1bm4sIEtlbg0KK0J1bm55LCBSdXBlcnQNCitCdW5yaW4sIFNoaW9rYXdhDQorQnVucsO0DQorQnVuc2UsIERvbmFsZA0KK0J1cmJhbmssIEVsYnJpZGdlIEF5ZXINCitCdXJjaCwgSGVuZHJpY2sgdmFuIGRlcg0KK0J1cmNoYXJkLCBQYWJsbw0KK0J1cmNoYXJ0eiwgTWF4DQorQnVyY2hmaWVsZCwgQ2hhcmxlcw0KK0J1cmNrLCBKYWNvYg0KK0J1cmRlbiwgQ2hyaXMNCitCdXJlbiwgRGFuaWVsDQorQnVyZ2VzcywgSm9zZXBoIEUuDQorQnVyZ2VzcywgTG93cnkNCitCdXJnZXNzLCBSdXRoIFBheW5lDQorQnVyZ2ttYWlyIHRoZSBFbGRlciwgSGFucw0KK0J1cm4sIEhlbnJ5DQorQnVybiwgSWFuDQorQnVybmFuZCwgRXVnw6huZQ0KK0J1cm5lLUpvbmVzLCBFZHdhcmQNCitCdXJuZWxsLCBCZW5qYW1pbg0KK0J1cm5ldCwgSmFtZXMNCitCdXJuZXQsIEpvaG4NCitCdXJuZXksIEVkd2FyZCBGcmFuY2lzDQorQnVycGVlLCBXaWxsaWFtIFBhcnRyaWRnZQ0KK0J1cnIsIEdlb3JnZSBFbGJlcnQNCitCdXJyaSwgQWxiZXJ0bw0KK0J1cnJpbGwsIEVkd2FyZA0KK0J1cnJvdWdocywgQnJ5c29uDQorQnVycm91Z2hzLCBNYXJnYXJldA0KK0J1cnJvd2VzLCBUaG9tYXMNCitCdXJ0b24sIEZyZWRlcmljIFdpbGxpYW0NCitCdXJ0b24sIEp1ZGl0aA0KK0J1cnRvbiwgU2NvdHQNCitCdXJ0b24sIFdpbGxpYW0gU2hha2VzcGVhcmUNCitCdXNoLCBDaGFybGVzDQorQnVzaCwgSmFjaw0KK0J1c2huZWxsLCBKb2huDQorQnVzc29sYSwgRGlvbmlnaQ0KK0J1c3RlciwgS2VuZGFsbA0KK0J1c3dlbGwsIFJpY2hhcmQgUy4NCitCdXRjaGVyLCBFbmlkDQorQnV0aW5vbmUsIEJlcm5hcmRpbm8gSmFjb3BpDQorQnV0bGVyLCBFbGl6YWJldGgNCitCdXRsZXIsIEphbWVzDQorQnV0bGVyLCBNYXJ5DQorQnV0bGVyLCBSZWcNCitCdXRsZXIsIFNhbXVlbA0KK0J1dGxlciwgVGhlb2RvcmUNCitCdXR0LCBHYWlsDQorQnV0dGVyZmllbGQsIERlYm9yYWgNCitCdXR0ZXJzd29ydGgsIEphbWVzIEUuDQorQnV0dGVyc3dvcnRoLCBUaG9tYXMNCitCdXR0cywgRnJlZW1hbg0KK0J1dmVsb3QsIExvdWlzDQorQnV5dGV3ZWNoLCBXaWxsZW0NCitCeWFycywgSmFtZXMgTGVlDQorQnlncmF2ZSwgV2lsbGlhbQ0KK0J5d2F0ZXJzLCBKZXJyeQ0KK0NhYmFuZWwsIEFsZXhhbmRyZQ0KK0NhYm90LCBIdWdoDQorQ2FicmVyYSwgUm9zYXJpbw0KK0NhY2NpbmksIEdpb3Zhbm5pDQorQ2FkbXVzLCBQYXVsDQorQ2Fkd2VsbCwgTWlrZQ0KK0NhZmZhLCBNZWxjaGlvcmUNCitDYWZmaWVyaSwgSmVhbi1KYWNxdWVzDQorQ2FnbmFjY2ksIEd1aWRvDQorQ2FoaWxsLCBXaWxsaWFtIFZpbmNlbnQNCitDYWhuLCBNaXJpYW0NCitDYWkgRGl6aGkNCitDYWkgTGlhbmcNCitDYWlsbGVib3R0ZSwgR3VzdGF2ZQ0KK0NhaXJvLCBGcmFuY2VzY28gZGVsDQorQ2Fqw6lzLCBFdWdlbmlvDQorQ2FsYW1lLCBBbGV4YW5kcmUNCitDYWxhbmRydWNjaSwgR2lhY2ludG8NCitDYWxjYWdubywgTGF3cmVuY2UNCitDYWxjYXIsIEpvaGFuIFN0ZXBoZW4gdm9uDQorQ2FsZGVyLCBBbGV4YW5kZXINCitDYWxkZXJvbiwgV2lsbGlhbSBGcmFuaw0KK0NhbGl4dG8gZGUgSmVzdXMsIEJlbmVkaXRvDQorQ2FsbCBJLCBKYW4gdmFuDQorQ2FsbCwgSC4NCitDYWxsYWhhbiwgSGFycnkNCitDYWxsY290dCwgU2lyIEF1Z3VzdHVzIFdhbGwNCitDYWxsZXJ5LCBNYXJ5DQorQ2FsbGV0LCBBbnRvaW5lIEZyYW7Dp29pcw0KK0NhbGxvdCwgSmFjcXVlcw0KK0NhbGxvdywgV2lsbGlhbQ0KK0NhbMOyLCBBbGRvDQorQ2FscmFldCwgQWJyYWhhbSB2YW4NCitDYWxzLCBBZG9scGhlLUZlbGl4DQorQ2FsdGhyb3AsIENsYXVkZQ0KK0NhbHZhZXJ0LCBEZW55cw0KK0NhbHZlcnQsIENoYXJsZXMNCitDYWx2ZXJ0LCBFZHdhcmQNCitDYWx6b2xhcmksIFBpZXIgUGFvbG8NCitDYW1iaWFzbywgTHVjYQ0KK0NhbWVsaW8NCitDYW1lbG90ZQ0KK0NhbWVyb24sIEVyaWMNCitDYW1lcm9uLCBKYW1lcw0KK0NhbWVyb24sIEpvaG4NCitDYW1lcm9uLCBKdWxpYSBNYXJnYXJldA0KK0NhbWVyb24sIFNpciBEYXZpZA0KK0NhbW1pbGxpZXJpLCBOaWNob2xhcyBTLg0KK0NhbW1pbGxpZXJpLCBOaWNvbGFzDQorQ2FtcCwgSmVmZmVyeQ0KK0NhbXBhZ25hLCBHaXJvbGFtbw0KK0NhbXBhZ25vbGEsIERvbWVuaWNvDQorQ2FtcGFnbm9sYSwgR2l1bGlvDQorQ2FtcGHDsWEsIFBlZHJvIGRlDQorQ2FtcGJlbGwsIElzYWJlbGxhIEZyb3dlDQorQ2FtcGJlbGwsIEphbWVzDQorQ2FtcGJlbGwsIEppbQ0KK0NhbXBlbiwgSmFjb2IgdmFuDQorQ2FtcGVuZG9uaywgSGVpbnJpY2gNCitDYW1waHV5c2VuLCBHb3ZlcnQgRGlyY2tzeg0KK0NhbXBpLCBHaXVsaW8NCitDYW1waSwgVmluY2Vuem8NCitDYW1waWdsaSwgTWFzc2ltbw0KK0NhbXBpbiwgUm9iZXJ0DQorQ2FuYWxldHRvDQorQ2FuZGlkLCBQaWV0ZXINCitDYW5lamEgQmV0ZWdvbiwgSnVhbg0KK0Nhbm5vbiwgVC5DLg0KK0Nhbm8gTWFuaWxsYSwgUmFtw7NuDQorQ2FubywgQWxvbnNvDQorQ2Fub2dhciwgUmFmYWVsDQorQ2Fub3ZhLCBBbnRvbmlvDQorQ2FudGFnYWxsaW5hLCBSZW1pZ2lvDQorQ2FudGFyaW5pLCBTaW1vbmUNCitDYW50YXRvcmUsIERvbWVuaWNvDQorQ2FudXRpLCBEb21lbmljbyBNYXJpYQ0KK0NhcGEsIFJvYmVydA0KK0NhcGFubmEsIFB1Y2Npbw0KK0NhcGxlLCBTcGVuY2VyDQorQ2Fwb25pZ3JvLCBQYXVsDQorQ2Fwb3JhbGksIEJhcnRvbG9tbWVvDQorQ2FwcGVsbGUsIEphbiB2YW4gZGUNCitDYXBwZWxsbywgQ2FybWVsbw0KK0NhcHBzLCBLZW5uZXRoDQorQ2FwcmlvbG8sIERvbWVuaWNvDQorQ2FyYWJpbiwgUnVwZXJ0DQorQ2FyYWNjaW9sbywgR2lvdmFubmkgQmF0dGlzdGENCitDYXJhZG9zc28NCitDYXJhZmZlLCBBcm1hbmQtQ2hhcmxlcw0KK0NhcmFnbGlvLCBHaWFuIEphY29wbw0KK0NhcmF2YWdnaW8NCitDYXJhdmFnZ2lvLCBQb2xpZG9ybyBkYQ0KK0NhcmJvbmUsIEdpb3Zhbm5pIEJlcm5hZG8NCitDYXJkdWNjaSwgQmFydG9sb21tZW8NCitDYXJkdWNjaSwgVmluY2Vuem8NCitDYXJpYW5pLCBHaW92YW5uaQ0KK0NhcmxlcywgQXJ0aHVyIEIuDQorQ2FybGV0b24sIEFubmUNCitDYXJsZXZhcmlzLCBMdWNhDQorQ2FybGluZSwgR2VvcmdlDQorQ2FybGluZSwgUmljaGFyZA0KK0Nhcmxpc2xlLCBHZW9yZ2UgSG93YXJkLCBOaW50aCBFYXJsIG9mDQorQ2FybG9uaSwgQ2FybG8NCitDYXJsc2VuLCBFbWlsDQorQ2FybHNvbiwgSm9obiBGYWJpYW4NCitDYXJsc29uLCBLZW4NCitDYXJsdSwgSmVhbg0KK0Nhcm1pY2hhZWwsIEZyYW5rbGluDQorQ2FybW9udGVsbGUsIExvdWlzIGRlDQorQ2FybmV2YWxlLCBGcmENCitDYXJuaWNlcm8sIEFudG9uaW8NCitDYXJvLCBTaXIgQW50aG9ueQ0KK0Nhcm9sdXMtRHVyYW4NCitDYXJvbiwgQW50b2luZQ0KK0Nhcm9uLCBQYXVsDQorQ2FycGFjY2lvLCBWaXR0b3JlDQorQ2FycGVhdXgsIEplYW4tQmFwdGlzdGUNCitDYXJwZW50ZXIgUGFpbnRlciwgVGhlDQorQ2FycGVudGVyLCBFZA0KK0NhcnBlbnRlciwgRnJhbmNpcyBCaWNrbmVsbA0KK0NhcnBpb25pLCBHaXVsaW8NCitDYXJyLCBFbWlseQ0KK0NhcnIsIFNhbXVlbCBTLg0KK0NhcnLDoCwgQ2FybG8NCitDYXJyYWNjaSwgQWdvc3Rpbm8NCitDYXJyYWNjaSwgQW5uaWJhbGUNCitDYXJyYWNjaSwgTG9kb3ZpY28NCitDYXJyZcOxbyBkZSBNaXJhbmRhLCBKdWFuDQorQ2FycmXDsW8sIE1hcmlvDQorQ2FycmllcmEsIFJvc2FsYmENCitDYXJyaWVyLUJlbGxldXNlLCBBbGJlcnQtRXJuZXN0DQorQ2FycmnDqHJlLCBFdWfDqG5lDQorQ2FycmluZ3RvbiwgRG9yYQ0KK0NhcnJpbmd0b24sIExlb25vcmENCitDYXJzLCBMYXVyZW50DQorQ2Fyc2UsIEouSC4NCitDYXJ0ZW4sIFZpcmdpbmlhDQorQ2FydGVyLCBIdWdoDQorQ2FydGVyLCBLZWl0aA0KK0NhcnRlciwgTGVlDQorQ2FydGllci1CcmVzc29uLCBIZW5yaQ0KK0NhcnR3cmlnaHQsIElzYWJlbCBCcmFuc29uDQorQ2FydmFsaG8sIEZsw6F2aW8gZGUNCitDYXJ3aXRoYW0sIFRob21hcw0KK0Nhc2Fub3ZhLCBHaW92YW5uaQ0KK0Nhc2FzLCBKdWFuIFZpbGENCitDYXNjZWxsYSwgQW5kcmVhDQorQ2FzaWxlYXIsIEpvaG4gV2lsbGlhbQ0KK0Nhc3NhbmRyZQ0KK0Nhc3NhcmEsIEZyYW5rDQorQ2Fzc2F0dCwgTWFyeQ0KK0Nhc3NlbGxpIEpyLiwgSGVucnkgQy4NCitDYXNzaWR5LCBTaGF1bg0KK0Nhc3NpbmFyaSwgQnJ1bm8NCitDYXNzb24sIEEuSi4NCitDYXN0YWduZXRvLCBKb8OjbyBCYXRpc3RhDQorQ2FzdGFnbm9sYSwgR2FicmllbGUNCitDYXN0ZWxsYW5pLCBFbnJpY28NCitDYXN0ZWxsYW5vcywgSnVsaW8NCitDYXN0ZWxsaSwgQWxmaW8NCitDYXN0ZWxsbywgQmVybmFyZG8NCitDYXN0ZWxsbywgVmFsZXJpbw0KK0Nhc3RlbGzDs24sIEZlZGVyaWNvDQorQ2FzdGlnbGlvbmUsIEdpb3Zhbm5pIEJlbmVkZXR0bw0KK0Nhc3RpZ2xpb25lLCBHaXVzZXBwZQ0KK0Nhc3RpbGxvIHkgU2FhdmVkcmEsIEFudG9uaW8NCitDYXN0aWxsbywgSm9zw6kgZGVsDQorQ2FzdGxlLCBKYW1lcw0KK0Nhc3RsZSwgV2VuZGVsbA0KK0NhdGVzYnksIE1hcmsNCitDYXRsZXR0LCBFbGl6YWJldGgNCitDYXRsaW4sIEdlb3JnZQ0KK0NhdHMsIEphY29iDQorQ2F0dGFuZW8sIERhbmVzZQ0KK0NhdHRlbGFuLCBNYXVyaXppbw0KK0NhdWxmaWVsZCwgUGF0cmljaw0KK0NhdmFlbCwgUm9sZg0KK0NhdmFsY2FudGksIEVtaWxpYW5vIERpDQorQ2F2YWxsYXJvLCBDb3NpbW8NCitDYXZhbGxpbmksIFBpZXRybw0KK0NhdmFsbGlubywgQmVybmFyZG8NCitDYXZlZG9uZSwgR2lhY29tbw0KK0NheW90LCBDbGF1ZGUtQXVndXN0aW4NCitDYXppbiwgSmVhbi1DaGFybGVzDQorQ2F6aW4sIE1hcmllDQorQ2VjaW9uaSwgQWRyaWFubw0KK0NlZGVyc3Ryw7ZtLCBHdXN0YWYNCitDZWxsaW5pLCBCZW52ZW51dG8NCitDZWxtaW5zLCBWaWphDQorQ2VyYWNjaGksIEdpdXNlcHBlDQorQ2VycXVvenppLCBNaWNoZWxhbmdlbG8NCitDw6lzYXINCitDZXNhcmUgZGEgU2VzdG8NCitDZXNhcmksIEdpdXNlcHBlDQorQ2VzYXJrLCBNYXJrDQorQ8OpemFubmUsIFBhdWwNCitDaGFib3QsIEx1Y2lsbGUNCitDaGFkd2ljaywgTHlubg0KK0NoYWR3aWNrLCBXaWxsaWFtDQorQ2hhZ2FsbCwgTWFyYw0KK0NoYWhpbmUsIEVkZ2FyDQorQ2hhbGxlbmVyLCBGLlMuDQorQ2hhbG9uLCBBbGZyZWQNCitDaGFsb24sIEhlbnJ5IEJlcm5hcmQNCitDaGFtYmVybGFpbiwgSm9obg0KK0NoYW1iZXJsYWluLCBTYW11ZWwNCitDaGFtYmVycywgVGhvbWFzDQorQ2hhbXBhaWduZSwgSmVhbi1CYXB0aXN0ZSBkZQ0KK0NoYW1wYWlnbmUsIFBoaWxpcHBlIGRlDQorQ2hhbiBIb25nc2hvdQ0KK0NoYW5kbGVyLCBKb3NlcGggR29vZGh1ZQ0KK0NoYW5kbGVyLCBXaW50aHJvcA0KK0NoYW5kb3IsIERvdWdsYXMNCitDaGFuZyBDaGktc2h1DQorQ2hhbmcgRGFpLWNoaWVuDQorQ2hhbmcgSmluDQorQ2hhbmcgU2h1aG9uZw0KK0NoYW5nLWJhZSwgSHdhbmcNCitDaGFuZy1zb3AsIENodW5nDQorQ2hhbnRyZXksIFNpciBGcmFuY2lzIExlZ2F0dA0KK0NoYW8gU2hhbydhbmcNCitDaGFwZXJvbiwgTmljb2xhcw0KK0NoYXBpbiwgSmFtZXMNCitDaGFwaW4sIEx1Y3kgR3Jvc3Zlbm9yDQorQ2hhcGxpbiwgTWFyeSBNaWxsaWNlbnQNCitDaGFwbWFuLCBDb25yYWQgV2lzZQ0KK0NoYXBtYW4sIEpvaG4gR2Fkc2J5DQorQ2hhcHBlbCwgQWxvbnpvDQorQ2hhcHUsIEhlbnJpIE1pY2hlbCBBbnRvaW5lDQorQ2hhcmRpbiwgSmVhbi1CYXB0aXN0ZS1TaW3DqW9uDQorQ2hhcmxlcywgSmFtZXMNCitDaGFybGVzLCBNaWNoYWVsIFJheQ0KK0NoYXJsZXN3b3J0aCwgU2FyYWgNCitDaGFybGV0LCBOaWNvbGFzLVRvdXNzYWludA0KK0NoYXJsaWVyLCBKYWNxdWVzDQorQ2hhcmx0b24sIEFsYW4NCitDaGFydG9uIGRlIFRyZXZpbGxlLCBFcm5lc3RvDQorQ2hhc2UsIEFkZWxhaWRlIENvbGUNCitDaGFzZSwgUmljaGFyZA0KK0NoYXNlLCBXaWxsaWFtIE1lcnJpdHQNCitDaGFzc8OpcmlhdSwgVGjDqW9kb3JlDQorQ2hhdGVsYWluLCBKZWFuIEJhcHRpc3RlIENsYXVkZQ0KK0NoYXRoYW0sIFJ1c3NlbGwNCitDaGF0dGVydG9uLCBDbGFyZW5jZSBLLg0KK0NoYXVkZXQsIEFudG9pbmUtRGVuaXMNCitDaGF1dmluLCBQaWVycmUtQXRoYW5hc2UNCitDaMOhdmV6IE1vcmFkbywgSm9zw6kNCitDaGF2ZXosIEVkd2FyZCBBcmNlbmlvDQorQ2hlZmZldHosIEFzYQ0KK0NoZW4gQmFuZGluZw0KK0NoZW4gQ2hpDQorQ2hlbiBEYW5xaW5nDQorQ2hlbiBGdXNoYW4NCitDaGVuIEhlbmdxdWUNCitDaGVuIEt1YW4NCitDaGVuIFBpbmcNCitDaGVuIFFpdWNhbw0KK0NoZW4gUm9uZw0KK0NoZW4gVGllZ2VuZw0KK0NoZW4gWWFubmluZw0KK0NoZW4gWWFucWlhbw0KK0NoZW4gWWlmZWkNCitDaGVuIFl1c2hlbmcNCitDaGVuIFpoaWZvDQorQ2hlbiBaaXlpDQorQ2hlbmcgQ29uZ2xpbg0KK0NoZW5nIFNoaWZhDQorQ2hlbmcgWmhhbmcNCitDaGVyY2hpLCBTYW5kcm8NCitDaGVyZXNobm92c2t5LCBNeWtoYWlsbw0KK0Now6lyZXQsIEp1bGVzDQorQ2hlcmljbywgRnJhbmNlc2NvIEFudG9uaW8gZGVsDQorQ2hldmFsaWVyLCBOaWNvbGFzDQorQ2hpYSwgU2FuZHJvDQorQ2hpYXJpLCBHaXVzZXBwaQ0KK0NoaWNhZ28gUGFpbnRlciwgVGhlDQorQ2hpY2FnbywgSnVkeQ0KK0NoaWZmbGFydCwgRnJhbsOnb2lzLU5pY29sYXMNCitDaGlodWx5LCBEYWxlDQorQ2hpJ2kgUGFpLXNoaWgNCitDaGlsZGUsIEphbWVzIFdhcnJlbg0KK0NoaWxsaWRhLCBFZHVhcmRvDQorQ2hpbWVudGksIEphY29wbw0KK0NoaW1lcmEgUGFpbnRlciwgVGhlDQorQ2hpbiwgTWVsDQorQ2hpbmFyZCwgSm9zZXBoDQorQ2hpbm5lcnksIEdlb3JnZQ0KK0NoaXBtYW4NCitDaGlyaW5vIEzDs3BleiwgTWFydMOtbg0KK0Nob2J1bnNhaSBFaXNoaQ0KK0Nob2Rvd2llY2tpLCBEYW5pZWwgTmlrb2xhdXMNCitDaG9lbnNhaSBFaXNoaW4NCitDaG9pIFNva2h3YW4NCitDaG9raSwgRWlzaG9zYWkNCitDaG9rb3NhaSBFaXNobw0KK0Nob25nLXl1bmcsIEtpbQ0KK0Nob3UsIFNoZW4NCitDaHJpc3RhbnNlbiwgSGFucw0KK0NocmlzdGVuYmVycnksIFdpbGxpYW0NCitDaHJpc3RlbnNlbiwgQy5DLkEuDQorQ2hyaXN0ZW5zZW4sIERhbg0KK0NocmlzdGlhbnNlbiwgUmFzbXVzDQorQ2hyaXN0aWUsIFJvYmVydCBEdW5jYW4NCitDaHJpc3RpbmVrLCBDYXJsLUx1ZHdpZw0KK0NocmlzdC1KYW5lciwgQWxiZXJ0IFdpbGxpYW0NCitDaHJpc3RvDQorQ2hyaXN0b3BoZSwgRXJuZXN0DQorQ2hyaXN0dXMsIFBldHJ1cw0KK0NocmlzdHksIEpvaG4NCitDaHVuZyBTb29rLCBLaW0NCitDaHVyY2gsIEZyZWRlcmljIEVkd2luDQorQ2h1cmNoLCBGcmVkZXJpY2sgU3R1YXJ0DQorQ2h1cmNoLCBNaWNoYWVsDQorQ2h1cmNoaWxsLCBXaW5zdG9uIFNwZW5jZXINCitDaHVyY2h5YXJkLCBUaG9tYXMNCitDaWVuZnVlZ29zIEJyb3duZSwgR29uemFsbw0KK0NpZ29saSwgTG9kb3ZpY28NCitDaW1hYnVlDQorQ2ltaW5hZ2hpLCBWaXJnaW5pbw0KK0NpbmNpbmF0bywgRnJhbmNlc2NvIFJvbXVsbw0KK0Npb2xpLCBWYWxlcmlvDQorQ2lwcmlhbmksIEdpb3Zhbm5pIEJhdHRpc3RhDQorQ2lyaW5vLCBBbnRvbmlvDQorQ2lzbmVyb3MsIERvbWluZ28NCitDaXRyb24sIE1pbm5hIFdyaWdodA0KK0NpdXJsaW9uaXMsIE1pa2Fsb2p1cw0KK0NpdmVyY2hpbywgVmluY2Vuem8NCitDaXZpdGFsZSwgTWF0dGVvDQorQ2l2aXRpY28sIEJydW5vDQorQ2xhZWlzc2VucyBJLCBQaWV0ZXINCitDbGFlc3osIFBpZXRlcg0KK0NsYWd1ZSwgUmljaGFyZA0KK0NsYWlyaW4sIEdlb3JnZXMNCitDbGFpcm1vbnQsIENvcndpbg0KK0NsYXBwLCBXaWxsaWFtIEhlbnJ5DQorQ2xhcsOhLCBKb3PDqQ0KK0NsYXJrLCBBbHNvbiBTa2lubmVyDQorQ2xhcmssIENsYXVkZQ0KK0NsYXJrLCBGbG95ZA0KK0NsYXJrLCBKb3NlcGgNCitDbGFyaywgS2F0ZSBGcmVlbWFuDQorQ2xhcmssIExhcnJ5DQorQ2xhcmssIFBhcmFza2V2YQ0KK0NsYXJrLCBUaG9tYXMNCitDbGFyaywgVGltDQorQ2xhcmtlIEhhbGwsIExhZHkgRWRuYQ0KK0NsYXJrZSwgR2VvZmZyZXkNCitDbGFya2UsIEpvaG4gQ2xlbQ0KK0NsYXVkZSBMb3JyYWluDQorQ2xhdWRlbCwgQ2FtaWxsZQ0KK0NsYXVkZXQsIEFudG9pbmUNCitDbGF1c2VsbCwgSm9hcXXDrW4NCitDbGF1c2VuLCBDLg0KK0NsYXVzZW4sIEZyYW5jaXNrYQ0KK0NsYXVzZW4sIFNpciBHZW9yZ2UNCitDbGF2w6ksIEFudG9uaW8NCitDbGF4dG9uLCBNYXJzaGFsbA0KK0NsYXksIEFseXNvbg0KK0NsYXllcywgR2VydHJ1ZGUgZGVzDQorQ2xlYXZlciwgQWxpY2UNCitDbGVtZW5zLCBKLkYuDQorQ2xlbWVudGUgZGEgVXJiaW5vDQorQ2xlbWVudGUsIEZyYW5jZXNjbw0KK0NsZXJjaywgSGVuZHJpayBkZQ0KK0Nsw6lzaW5nZXIsIEplYW4gQmFwdGlzdGUNCitDbGV2ZSwgSm9vcyB2YW4NCitDbGV5biwgRnJhbnoNCitDbGltZSwgV2luZmllbGQgU2NvdHQNCitDbGltbywgTGluZGVlDQorQ2xpbnQsIEdlb3JnZQ0KK0Nsb2Rpb24NCitDbG9zZSwgQ2h1Y2sNCitDbG9zZSwgTWF5IExld2lzDQorQ2xvdWRtYW4sIEpvaG4gR3JlZW5sZWFmDQorQ2xvdWV0IHRoZSBZb3VuZ2VyLCBKZWFuDQorQ2xvdWV0LCBGcmFuw6dvaXMNCitDbG91Z2gsIEdlb3JnZSBMYWZheWV0dGUNCitDbG91Z2gsIFBydW5lbGxhDQorQ2xvdmlvLCBHaW9yZ2lvIEdpdWxpbw0KK0NvYXRlcywgRWRtdW5kDQorQ29hdGVzLCBHZW9yZ2UNCitDb2J1cm4sIEZyYW5rDQorQ29jaGVyZWF1LCBMw6lvbi1NYXR0aGlldQ0KK0NvY2hpbiB0aGUgWW91bmdlciwgQ2hhcmxlcy1OaWNvbGFzDQorQ29jaHJhbiwgTWFsY29sbQ0KK0NvY2ssIEhpZXJvbnltb3VzDQorQ29jaywgTWF0dGh5cw0KK0NvZGF6emksIFZpdmlhbm8NCitDb2RkZSwgUGlldGVyDQorQ29kbWFuLCBDaGFybGVzDQorQ29lLCBFbGlhcyBWLg0KK0NvZSwgRXRoZWwgTG91aXNlDQorQ29lLCBTdWUNCitDb2VsbG8sIENsYXVkaW8NCitDb2duaWV0LCBMw6lvbg0KK0NvaGVuLCBCZWNreQ0KK0NvaGVuLCBCZXJuYXJkDQorQ29ob29uLCBIYW5uYWggSGFycmlzb24NCitDb2lnbmV0LCBKdWxlcw0KK0Nva2VyLCBQZXRlcg0KK0NvbGEgRGVsbCdBbWF0cmljZQ0KK0NvbGRzdHJlYW0sIFNpciBXaWxsaWFtDQorQ29sZSwgR2VvcmdlIFZpY2F0DQorQ29sZSwgSi4gRm94Y3JvZnQNCitDb2xlLCBUaG9tYXMNCitDb2xlLCBUaW1vdGh5DQorQ29sZSwgV2lsbGllDQorQ29sZW1hbiwgQ2hhcmxlcyBDYXJ5bA0KK0NvbGVtYW4sIE1pY2hhZWwNCitDb2xlb3B5LCBTdGV2ZQ0KK0NvbGVzY290dCwgUm9iZXJ0DQorQ29sbCwgSm9zZXBoIENsZW1lbnQNCitDb2xsYSwgRXR0b3JlDQorQ29sbGFlcnQsIEFkcmlhZW4NCitDb2xsYW50ZXMsIEZyYW5jaXNjbw0KK0NvbGxhem8sIFJhcGhhZWwNCitDb2xsZXQsIEpvaG4NCitDb2xsaWVyLCBFZHdhZXJ0DQorQ29sbGllciwgSm9obg0KK0NvbGxpbmdzLCBTYW11ZWwNCitDb2xsaW5zLCBDZWNpbA0KK0NvbGxpbnMsIENoYXJsZXMNCitDb2xsaW5zLCBDaGFybGVzIEFsbHN0b24NCitDb2xsaW5zLCBXaWxsaWFtDQorQ29sbGluc29uLCBKYW1lcw0KK0NvbGxvdCwgTWFyaWUtQW5uZQ0KK0NvbG1hbiAxNzgwLTE4NDUsIFNhbXVlbA0KK0NvbG1hbiAxODMyLTE5MjAsIFNhbXVlbA0KK0NvbG9tYmUsIE1pY2hlbA0KK0NvbHF1aG91biwgQWxleGFuZGVyDQorQ29scXVob3VuLCBSb2JlcnQNCitDb2x0b24sIFdpbGxpYW0gUm9iZXJ0DQorQ29sdmlsbGUsIEFsZXgNCitDb2x2aW4gQW5kcmFkZSwgTWFydGENCitDb21hbiwgQ2hhcmxvdHRlIEJ1ZWxsDQorQ29tZm9ydCwgQ2hhcmxlcyBGLg0KK0NvbmFudCBMaW1uZXIsIFRoZQ0KK0NvbmNhLCBTZWJhc3RpYW5vDQorQ29uZGUsIEVkdWFyZG8NCitDb25kZXIsIENoYXJsZXMNCitDb25kbywgR2VvcmdlDQorQ29uZSwgTWFydmluDQorQ29uZWdsaWFubywgR2lhbWJhdHRpc3RhIENpbWEgZGENCitDb25nZG9uLCBXaWxsaWFtDQorQ29uaW54bG9vLCBHaWxsaXMgdmFuDQorQ29ubmFoLCBKb2huDQorQ29ubmFyZCwgUGhpbGlwDQorQ29ubmVsbCwgU3RlcGhlbg0KK0Nvbm5lbGwsIFN5YmlsDQorQ29ubmVsbHksIEJyaWFuDQorQ29ucmFkLCBDeXJpbCBILg0KK0NvbnJveSwgU3RlcGhlbg0KK0NvbnNhZ3JhLCBQaWV0cm8NCitDb25zdGFibGUsIEpvaG4NCitDb25zdGFibGUsIExpb25lbCBCaWNrbmVsbA0KK0NvbnN0YW50LCBCZW5qYW1pbg0KK0NvbnN0YW50aW4sIERpbWl0cmlvcw0KK0Nvb2sgb2YgUGx5bW91dGgsIFdpbGxpYW0NCitDb29rLCBFdGhlbA0KK0Nvb2ssIEdsYWR5cyBFbWVyc29uDQorQ29vaywgSG93YXJkDQorQ29vaywgTGlhDQorQ29va2UsIEJhcnJpZQ0KK0Nvb2tlLCBFZHdhcmQgV2lsbGlhbQ0KK0Nvb2tlLCBHZW9yZ2UNCitDb29rZSwgTC5NLg0KK0Nvb3BlciBKci4sIFJpY2hhcmQNCitDb29wZXIsIEFicmFoYW0NCitDb29wZXIsIEFsZnJlZCBFZ2VydG9uDQorQ29vcGVyLCBDb2xpbiBDYW1wYmVsbA0KK0Nvb3BlciwgRW1tYSBMYW1wZXJ0DQorQ29vcGVyLCBHZW9yZ2UNCitDb29wZXIsIFNhbXVlbA0KK0Nvb3BlciwgVGhvbWFzIFNpZG5leQ0KK0Nvb3BlciwgV2FzaGluZ3RvbiBCb2dhcnQNCitDb29wZXIsIFdpbGxpYW0NCitDb29ybmhlcnQsIERpcmNrIFZvbGtlcnRzem9vbg0KK0NvcGUsIEdlb3JnZQ0KK0NvcGxleSwgSm9obiBTaW5nbGV0b24NCitDb3BwZWRnZSwgRmVybiBJc2FiZWwNCitDb3BwbyBkaSBNYXJjb3ZhbGRvDQorQ29xdWVzLCBHb256YWxlcw0KK0NvcmJldCwgTWF0dGhldyBSaWRsZXkNCitDb3JiZXR0LCBFZHdhcmQNCitDb3JiaW5vLCBKb24NCitDb3Jib3VsZCwgSGVucnkNCitDb3Jib3VsZCwgUmljaGFyZA0KK0NvcmJ1c2llciwgTGUNCitDb3JkaWVyLCBDaGFybGVzIEhlbnJpIEpvc2VwaA0KK0NvcmRpZXIsIE5pY29sYXMNCitDb3JlbnppbywgQmVsaXNhcmlvDQorQ29yaW50aCwgTG92aXMNCitDb3JpbnRoaWFuaXppbmcgUGFpbnRlciwgVGhlDQorQ29yaW9sYW5vLCBCYXJ0b2xvbWVvDQorQ29ybsOoLCBNaWNoZWxlIEZlbGljZQ0KK0Nvcm5laWxsZSBkZSBMeW9uDQorQ29ybmVpbGxlLCBKZWFuLUJhcHRpc3RlDQorQ29ybmVsaXVzLCBQZXRlciB2b24NCitDb3JuZWxsLCBKb3NlcGgNCitDb3JuZWxsLCBUaG9tYXMNCitDb3Jub3llciwgUGF1bA0KK0Nvcm90LCBKZWFuLUJhcHRpc3RlLUNhbWlsbGUNCitDb3JyYWRpbmksIEFudG9uaW8NCitDb3JyZWdnaW8NCitDb3J0ZXMsIEVkb3VhcmQNCitDb3J2aSwgRG9tZW5pY28NCitDb3Nncm92ZSwgU3RhbmxleQ0KK0Nvc3NhLCBGcmFuY2VzY28gZGVsDQorQ29zc2llcnMsIEphbg0KK0Nvc3NpbywgUGFuY2hvDQorQ29zdGEsIEFydHVyIFRpbcOzdGVvIGRhDQorQ29zdGEsIExvcmVuem8NCitDb3N0YSwgT2xnYQ0KK0Nvc3RhbnppLCBQbGFjaWRvDQorQ29zdGlnYW4sIEpvaG4gRS4NCitDb3N3YXksIE1hcmlhDQorQ29zd2F5LCBSaWNoYXJkDQorQ290LCBQaWVycmUtQXVndXN0ZQ0KK0NvdGVyLCBDb2xpam4gZGUNCitDb3RlcywgRnJhbmNpcw0KK0NvdG1hbiwgSm9obiBKb3NlcGgNCitDb3RtYW4sIEpvaG4gU2VsbA0KK0NvdHRpZXIsIERhbmllbA0KK0NvdHRpbmdoYW0sIFJvYmVydA0KK0NvdWRlciwgTG91aXMtQ2hhcmxlcy1BdWd1c3RlDQorQ291bmloYW4sIE5vZWwNCitDb3VwZXIsIFdpbGxpYW0NCitDb3VyYmV0LCBHdXN0YXZlDQorQ291cnRlciwgRnJhbmtsaW4gQy4NCitDb3VydG9pcywgR3VpbGxhdW1lDQorQ291cnRvaXMsIEphY3F1ZXMNCitDb3VzZSwgRWFuZ2VyIElydmluZw0KK0NvdXNpbiB0aGUgRWxkZXIsIEplYW4NCitDb3VzaW5ldCwgSGVucmktTmljb2xhcw0KK0NvdXNpbnMsIFNhbXVlbA0KK0NvdXN0b3UgdGhlIEVsZGVyLCBHdWlsbGF1bWUNCitDb3VzdG91LCBOaWNvbGFzDQorQ291dHVyZSwgQ2hyaXN0aW4NCitDb3V0dXJlLCBUaG9tYXMNCitDb3ZhcnJ1YmlhcywgTWlndWVsDQorQ293ZXJ0LCBIYW5rDQorQ293aW4sIEVpbGVlbg0KK0Nvd2xlcywgUnVzc2VsbA0KK0Nvd2xleSwgUmV0YSBNYWRlbGluZQ0KK0Nvd3BlciwgRnJhbmsNCitDb3gsIERhdmlkDQorQ294LCBHYXJkbmVyDQorQ294LCBKb2huIFJvZ2Vycw0KK0NveCwgS2VuDQorQ294LCBLZW55b24NCitDb3gsIFN0ZXBoZW4NCitDb3gsIFdhbHRlciBJLg0KK0NveGNpZSwgTWljaGllbCB2YW4NCitDb3llLCBMZWUgQnJvd24NCitDb3lwZWwsIEFudG9pbmUNCitDb3lwZWwsIENoYXJsZXMtQW50b2luZQ0KK0NveXBlbCwgTm/Dq2wNCitDb3lzZXZveCwgQW50b2luZQ0KK0NvemVucywgQWxleGFuZGVyDQorQ296ZW5zLCBKb2huIFJvYmVydA0KK0NvenphcmVsbGksIEdpYWNvbW8NCitDb3p6YXJlbGxpLCBHdWlkb2NjaW8NCitDcmFkb2NrLCBNYXJtYWR1a2UNCitDcmFnZywgVG9ueQ0KK0NyYWlnLU1hcnRpbiwgTWljaGFlbA0KK0NyYW5hY2ggdGhlIEVsZGVyLCBMdWNhcw0KK0NyYW5hY2ggdGhlIFlvdW5nZXIsIEx1Y2FzDQorQ3JhbmNoLCBKb2huDQorQ3JhbmUsIEFubmUNCitDcmFuZSwgQnJ1Y2UNCitDcmFuZSwgV2FsdGVyDQorQ3JhbnN0b24sIFRvbGxlcg0KK0NyYXdmb3JkLCBMZW4NCitDcmF3Zm9yZCwgUmFsc3Rvbg0KK0NyYXdmb3JkLCBUaG9tYXMNCitDcmF4dG9uLCBKb2huDQorQ3JheWVyLCBHYXNwYXIgZGUNCitDcmVtYSwgR2lvdmFuIEJhdHRpc3RhDQorQ3Jlc3BpLCBEYW5pZWxlDQorQ3Jlc3BpLCBHaW92YW5uaSBCYXR0aXN0YQ0KK0NyZXNwaSwgR2l1c2VwcGUgTWFyaWENCitDcmVzd2ljaywgVGhvbWFzDQorQ3JldGksIERvbmF0bw0KK0NyZXV6bmFjaCwgQ29ucmFkIEZhYmVyIHZvbg0KK0NyaW9sbG8sIEpvc8OpDQorQ3Jpc3MsIEouIEZyYW5jaXMNCitDcmlzdGFsbCwgSm9zaHVhDQorQ3Jpc3RvZm9sIFBlcmFsYmEsIExlYW5kcmUNCitDcmlzd2VsbCwgV2FycmVuDQorQ3JpdGNoZXIsIENhdGhlcmluZQ0KK0NyaXZlbGxpLCBDYXJsbw0KK0NyaXZlbGxpLCBWaXR0b3Jpbw0KK0Nyb2NlZmlzc2ksIFNpbW9uZSBkZWkNCitDcm9peCBJLCBKZWFuIGRlIGxhDQorQ3JvbGEsIEdlb3JnLUhlaW5yaWNoDQorQ3JvbWUsIEpvaG4NCitDcm9td2VsbCwgSm9hbmUNCitDcm9uYSwgUnVkb2xmDQorQ3Jvb2tlLCBSYXkNCitDcm9vcywgQW50aG9uaWUgSmFuc3ouIHZhbiBkZXINCitDcm9wc2V5LCBKYXNwZXIgRnJhbmNpcw0KK0Nyb3NhdG8sIEdpb3Zhbm5pIEJhdHRpc3RhDQorQ3Jvc3MsIERvcm90aHkNCitDcm9zcywgSGVucmktRWRtb25kDQorQ3JvdGNoLCBEci4gV2lsbGlhbQ0KK0Nyb3dlLCBFeXJlDQorQ3JvemllciwgV2lsbGlhbQ0KK0NydWlja3NoYW5rLCBXaWxsaWFtDQorQ3J1aWtzaGFuaywgR2VvcmdlDQorQ3J1aWtzaGFuaywgSXNhYWMNCitDcnVtYm8sIFdvb2R5DQorQ3J1eiwgRW1pbGlvDQorQ3J1eiwgSnVhbiBQYW50b2phIGRlIGxhDQorQ3PDs2ssIElzdHbDoW4NCitDc29udHbDoXJ5IEtvc3p0a2EsIFRpdmFkYXINCitDdWNjaGksIEVuem8NCitDdWV2YXMsIEpvc8OpIEx1aXMNCitDdWl0dCBKci4sIEdlb3JnZQ0KK0N1bGxlbiwgTWF1cmljZSBHYWxicmFpdGgNCitDdWx2ZXJob3VzZSwgSm9oYW5uIE0uDQorQ3VtbWluZ3MsIE1pY2hhZWwNCitDdW1wc3RvbiwgTmV2aW4NCitDdW5kYWxsLCBDaGFybGVzDQorQ3VuZW8sIFJpbmFsZG8NCitDdW5uaW5naGFtLCBCZW4NCitDdW5uaW5naGFtLCBFYXJsDQorQ3VubmluZ2hhbSwgSW1vZ2VuDQorQ3Vybm9lLCBHcmVnDQorQ3VycmFkaSwgRnJhbmNlc2NvDQorQ3VycmFuLCBDaGFybGVzIENvdXJ0bmV5DQorQ3VycmllciBhbmQgSXZlcw0KK0N1cnJ5ICxDaHVjaw0KK0N1cnJ5IElJLCBBdXN0aW4NCitDdXJyeSwgSm9obiBTdGV1YXJ0DQorQ3VydGlzLCBFZHdhcmQgUy4NCitDdXJ0aXMsIFBoaWxpcA0KK0N1cnRpcywgUi5XLg0KK0N1c3RpcywgRWxlYW5vciBQYXJrZQ0KK0N1dGhiZXJ0c29uLCBBcmNoDQorQ3V5Y2sgVmFuIE15ZXJvcCwgRnJhbnMNCitDdXlwLCBBZWxiZXJ0DQorQ3V5cCwgQmVuamFtaW4gR2Vycml0c3ouDQorQ3V5cCwgSmFjb2IgR2Vycml0ei4NCitEYWJvLCBMZW9uDQorRGFjb3N0YSwgTWlsdG9uDQorRGFjcmUsIExhZHkNCitEYWRkLCBSaWNoYXJkDQorRGFkZGksIEJlcm5hcmRvDQorRGFlbCwgSmFuIEZyYW5zIHZhbg0KK0RhZ25hbi1Cb3V2ZXJldCwgUGFzY2FsLUFkb2xwaGUtSmVhbg0KK0RhaGwsIEpvaGFuIENocmlzdGlhbg0KK0RhaGwsIE1pY2hhZWwNCitEYWluZ2VyZmllbGQsIEVsbGlvdHQNCitEYWwgUG9udGUsIEdpb3Zhbm5pDQorZGFsIFNvbGUsIEdpb3Zhbm5pIEdpb3NlZmZvDQorRGFsZW0sIENvcm5lbGlzIHZhbg0KK0RhbGdhYXJkLCBDaHJpc3Rlbg0KK0RhbMOtLCBTYWx2YWRvcg0KK0RhbGwsIE5pY2hvbGFzIFRob21hcw0KK0RhbGxlIE1hc2VnbmUsIEphY29iZWxsbw0KK0RhbG1hdGEsIEdpb3Zhbm5pDQorRGFsbWF1LCBMdcOtcw0KK0RhbG91LCBKdWxlcw0KK0RhbHNnYWFyZCwgU3Zlbg0KK0RhbHRvbiwgUmljaGFyZA0KK0RhbHksIFN0ZXZlDQorRGFseSwgU3RldmUNCitEYW1lciwgQW5uZSBTZXltb3VyDQorRGFuYSwgRnJhDQorRGFuYnksIEZyYW5jaXMNCitEYW5ieSwgS2VuDQorRGFuY2UgSUksIEdlb3JnZQ0KK0RhbmNlLUhvbGxhbmQsIFNpciBOYXRoYW5pZWwNCitEYW5kaW5pLCBDZXNhcmUNCitEYW5kcsOpLUJhcmRvbiwgTWljaGVsLUZyYW7Dp29pcw0KK0RhbmRyaWRnZSwgQmFydGhvbG9tZXcNCitkJ0FuZ2VycywgUGllcnJlIEplYW4gRGF2aWQNCitEYW5pZWxsLCBUaG9tYXMNCitEYW5pZWxsLCBXaWxsaWFtDQorRGFubG91eCwgSGVucmktUGllcnJlDQorRGFubmVyLCBKb3NlZg0KK0RhbnRpLCBWaW5jZW56bw0KK0RhbnppZ2VyLCBZaXR6aGFrDQorRGFwaG5pcywgTmFzc29zDQorRGFyYm92ZW4sIEhhbm5lDQorRGFyYnksIEhlbnJ5IEYuDQorRCdBcmNhbmdlbG8sIEFsbGFuDQorRGFyZXQsIEphY3F1ZXMNCitEYXJldCwgSmVhbg0KK0Rhcml1cyBQYWludGVyLCBUaGUNCitEYXJsZXksIEZlbGl4IE9jdGF2aXVzIENhcnINCitEYXNidXJnLCBBbmRyZXcNCitEYXViaWdueSwgQ2hhcmxlcy1GcmFuw6dvaXMNCitEYXVjaGVyLCBBZG9sZg0KK0RhdWxsw6ksIEplYW4NCitEYXVtaWVyLCBIb25vcsOpDQorRGF1eCwgQy4gRWRtb25kDQorRGF1emF0cywgQWRyaWVuDQorRGF2ZW5wb3J0LCBJYW4NCitEYXZpZCwgQ2hhcmxlcw0KK0RhdmlkLCBHZXJhcmQNCitEYXZpZCwgSmFjcXVlcy1Mb3Vpcw0KK0RhdmlkLCBNaWNoYWVsDQorRGF2aWRzb24sIEpvDQorRGF2aWRzb24sIFJvYmVydA0KK0RhdmllLCBBbGFuDQorRGF2aWVzLCBBcnRodXIgQm93ZW4NCitEYXZpZXMsIERhbm55DQorRGF2aWVzLCBEYXZpZA0KK0RhdmllcywgSm9obg0KK0RhdmllcywgS2VubmV0aA0KK0RhdmllcywgVC4NCitEYXZpcywgQ2hhcmxlcyBIYXJvbGQNCitEYXZpcywgRG91Z2xhcw0KK0RhdmlzLCBFbW1hIEVhcmxlbmJhdWdoDQorRGF2aXMsIEdlbmUNCitEYXZpcywgSGVucnkgV2lsbGlhbSBCYW5rcw0KK0RhdmlzLCBKb2huIFNjYXJsZXR0DQorRGF2aXMsIEpvc2VwaCBILg0KK0RhdmlzLCBSaWNoYXJkIFRob21hcw0KK0RhdmlzLCBTdHVhcnQNCitEYXZpcywgVWx5c3Nlcw0KK0RhdmlzLCBXaWxsaWFtDQorRGF3LCBMZWlsYQ0KK0Rhd2UsIEdlb3JnZQ0KK0Rhd2VzLCBFZHdpbg0KK0Rhd3NvbiwgRGF2aWQNCitEYXdzb24sIEphbmV0DQorRGF3c29uLVdhdHNvbiwgSm9obg0KK0RheSwgRm9yc2hhdw0KK0RheSwgRnJhbmNpcw0KK0RheSwgRnJhbmsNCitEYXllcywgRWR3YXJkDQorRGUgQmFja2VyLCBKYWNxdWVzDQorZGUgQ2hpcmljbywgR2lvcmdpbw0KK0RlIEZvcmVzdCwgUm95DQorRGUgRnJhbmNpYSwgUGV0ZXINCitEZSBHcmV5LCBTaXIgUm9nZXINCitEZSBIYXZlbiwgRnJhbmtsaW4NCitkZSBLb29uaW5nLCBFbGFpbmUgRnJpZWQNCitkZSBLb29uaW5nLCBXaWxsZW0NCitEZSBMb3V0aGVyYm91cmcsIFBoaWxpcHBlIEphY3F1ZXMNCitkZSBNZXllciwgQmFyb24gQWRvbGYgR2F5bmUNCitEZSBNb25jaGF1eCwgQ2F0aHkNCitEZSBNb3JnYW4sIEV2ZWx5bg0KK2RlIFJpdmVyYSwgSm9zw6kNCitkZSBTdGFlbCwgTmljaG9sYXMNCitkZSBWcmllcywgQXVrZQ0KK0RlIFdpbGRlLCBTYW11ZWwNCitEZSBXaW50LCBQZXRlcg0KK0RlIFdpdHRlLCBQZXRlcg0KK0RlYWNvbiwgSmFtZXMNCitEZWFjb24sIFJpY2hhcmQNCitEZcOhay3DiWJuZXIsIExham9zDQorRGVha2luLCBFZHdpbg0KK0RlQW5kcmVhLCBKb2huDQorRGVhcmUsIEpvaG4NCitEZWFydGgsIEhlbnJ5IEdvbGRlbg0KK2RlJ0JhcmJhcmksIEphY29wbw0KK0RlYmFzc2lnZSwgQmxha2UNCitEZWJhdC1Qb25zYW4sIEVkb3VhcmQNCitEZWJ1Y291cnQsIExvdWlzLVBoaWxpYmVydA0KK0RlQ2FtcCwgSm9zZXBoDQorRGVDYW1wLCBSYWxwaCBFLg0KK0RlY2FtcHMsIEFsZXhhbmRyZS1HYWJyaWVsDQorRGVDYXJhdmEsIFJveQ0KK0RlQ3JlZWZ0LCBKb3PDqQ0KK2RlRGVpZ28sIEp1bGlvDQorRGVmcmFuY2UsIEzDqW9uYXJkDQorRGVnYXMsIEVkZ2FyDQorRGVnb3V2ZSBkZSBOdW5jcXVlcywgV2lsbGlhbQ0KK0RlR3JhaWxseSwgVi4NCitEZWhhYXMsIEFsaWNlIFByZWJsZSBUdWNrZXINCitEZWhuLCBBZG9sZg0KK0RlaG5lciwgRG9yb3RoeQ0KK0Rla2tlcnMsIEFkDQorZGVsIENhc2VudGlubywgSmFjb3BvDQorRGVsIFBlenpvLCBMdWNpbw0KK0RlbGFjcm9peCwgRXVnw6huZQ0KK0RlbGFtb3R0ZSwgV2lsbGlhbSBBbGZyZWQNCitEZWxhbmV5LCBCZWF1Zm9yZA0KK0RlbGFuZXksIEpvc2VwaA0KK0RlbGFyb2NoZSwgUGF1bA0KK0RlbGF1bmF5LCBKdWxlcy1FbGllDQorRGVsYXVuYXksIFJvYmVydA0KK0RlbGF1bmF5LCBTb25pYQ0KK0RlbGF1bmUsIMOJdGllbm5lDQorRGVsYm9zLCBDLiBFZG11bmQNCitEZWxlbiwgRGlyY2sgdmFuDQorRGVsZmlubw0KK2RlbGxhIFZhbGxlLCBGaWxpcHBvDQorZGVsbCdBYmJhdGUsIE5pY2NvbMOyDQorRGVsb3J0LCBDaGFybGVzIEVkb3VhcmQNCitEZWx2YXV4LCBQYXVsDQorRGVsdmlsbGUsIEplYW4NCitEZWx2b3llLCBXaW0NCitEZWx5ZW4sIEphY3F1ZXMtRnJhbsOnb2lzDQorRGVtYXJuZSwgSmVhbi1Mb3Vpcw0KK0RlbWFydGVhdSwgR2lsbGVzDQorRGVNYXJ0ZWxseSwgSm9obiBTLg0KK2RlTWFydGluaSwgSm9zZXBoDQorRGVtdXRoLCBDaGFybGVzDQorRGVuZXMsIEFnbmVzDQorRGVuaGFtLCBKb2huIENoYXJsZXMNCitEZW5pcywgTWF1cmljZQ0KK0Rlbmlzb24gTGltbmVyLCBUaGUNCitEZW5uZXIsIEJhbHRoYXNhcg0KK0Rlbm5pbmcsIFN0ZXBoZW4gUG95bnR6DQorRGVubmlzLCBNaWNoYWVsDQorRGVubmlzLCBXYXluZQ0KK0Rlbm55LCBSb2J5bg0KK0Rlbm9uLCBCYXJvbiBEb21pbmlxdWUgVml2YW50DQorRGVwZXJvLCBGb3J0dW5hdG8NCitEZXBwZSwgRmVyZGluYW5kDQorRGVyYWluLCBBbmRyw6kNCitEZXJieSwgV2lsbGlhbQ0KK0Rlcm5vdmljaCwgRG9uDQorZGUnUm9iZXJ0aSwgRXJjb2xlDQorRGVyb3VpbiwgUmVuw6kNCitEZXJ1ZXQsIENsYXVkZQ0KK0RlcyBHcmFuZ2VzLCBEYXZpZA0KK0Rlc2JvdXRpbiwgTWFyY2VsbGluIEdpbGJlcnQNCitEZXNjaCwgRnJhbmsgSC4NCitEZXNjb3VydGlzLCBDaGFybGVzLU1lbGNoaW9yDQorRGVzaGF5cywgSmVhbi1CYXB0aXN0ZQ0KK0Rlc2lkZXJpbyBkYSBTZXR0aWduYW5vDQorRGVzaWRlcmlvLCBWaW5jZW50DQorRGVzamFyZGlucywgTWFydGluDQorRGVzcGlhdSwgQ2hhcmxlcw0KK0Rlc3BvcnRlcywgQWxleGFuZHJlLUZyYW7Dp29pcw0KK0Rlc3NhciwgTG91aXMgUGF1bA0KK0RlU3RhZWJsZXIsIFN0ZXBoZW4NCitEZXN1YmxlbywgTWljaGVsZQ0KK0TDqXRhaWxsZSwgw4lkb3VhcmQNCitEZXRvdWNoZSwgSGVucnktSnVsaWVuDQorRGV2YW1iZXosIEFuZHLDqQ0KK0RldmVyZWxsLCBXYWx0ZXIgSG93ZWxsDQorRGV2w6lyaWEsIEFjaGlsbGUNCitEZXZpbGx5LCBMb3Vpcy1UaMOpb2RvcmUNCitEZXZpcywgQW50aG9ueQ0KK0RldmlzLCBBcnRodXINCitEZXZvdG8sIEpvaG4NCitEZXcsIEphbWVzDQorRGVXZWVzZSwgQm9iDQorRGVXZWVzZSwgR2VubmllDQorRGVXZWVzZSwgUm9iZXJ0DQorRGV3aW5nLCBNYXJpYSBPYWtleQ0KK0Rld2luZywgVGhvbWFzIFdpbG1lcg0KK0RleHRlciwgSGVucnkNCitEZXh0ZXIsIFdhbHRlcg0KK2QnSG9uZGVjb2V0ZXIsIE1lbGNoaW9yDQorRGkgUnVnZ2llcm8sIENhcm1pbmUNCitkaSBTdXZlcm8sIE1hcmsNCitEaWFsIFNyLiwgVGhvcm50b24NCitEaWFtb25kLCBEci4gSHVnaCBXZWxjaA0KK0RpYW5hLCBCZW5lZGV0dG8NCitEw61heiBkZSBsYSBQZcOxYSwgTmFyY2lzc2UtVmlyZ2lsZQ0KK0RpYmJldHMsIEphbg0KK0RpY2tlcnNvbiwgUm9iZXJ0DQorRGlja2luc29uLCBQcmVzdG9uDQorRGlja2luc29uLCBTaWRuZXkgRS4NCitEaWNrc2VlLCBTaXIgRnJhbmsNCitEaWNrc2VlLCBUaG9tYXMgRnJhbmNpcw0KK0RpY2tzb24sIEphbmUNCitEaWViZW5rb3JuLCBSaWNoYXJkDQorRGllZ28gZGUgUGVzcXVlcmENCitEaWVwcmFhbSwgQWJyYWhhbQ0KK0RpZXRyaWNoLCBDaHJpc3RpYW4gV2lsaGVsbSBFcm5zdA0KK0RpZ2dzLCBQZWdneQ0KK0RpZ2h0b24sIFJpY2hhcmQNCitEaWdodG9uLCBSb2JlcnQNCitEaWpjaywgRmxvcmlzIHZhbg0KK0RpbGxpbmdoYW0sIFJpY2sNCitEaWxsaXMsIEpvaGFubiBHZW9yZyB2b24NCitEaW5lLCBKaW0NCitEaW5lcnN0ZWluLCBKYW1lcw0KK0RpbmcgQ29uZw0KK0RpbmcgWWFueW9uZw0KK0RpbmcgWXVucGVuZw0KK0RpbmdsaW5nZXIsIEpvaGFubiBNZWxjaGlvcg0KK0RpbnNtb3JlLCBTdGVwaGVuDQorRGlvbmlzaWkNCitEaXByZSwgTmljb2xhcw0KK0Rpc2NvbiwgV2FycmVuDQorRGl4LCBFdWxhYmVlDQorRGl4LCBPdHRvDQorRGl4b24sIEtlbg0KK0RpeG9uLCBNYXJpYQ0KK0RpeG9uLCBNYXluYXJkDQorRGl4b24sIFdpbGxpYW0NCitEaXppYW5pLCBHYXNwYXJlDQorRG8sIEdpb3Zhbm5pDQorRG9iYnMsIEV2ZXJldHQNCitEb2JlbGwsIFdpbGxpYW0NCitEb2Jzb24sIFdpbGxpYW0NCitEb2Jzb24sIFdpbGxpYW0gQ2hhcmxlcyBUaG9tYXMNCitEb2RkLCBEYW5pZWwNCitEb2RkLCBGcmFuY2lzDQorRG9kZCwgTGFtYXINCitEb2RkLCBSb2JlcnQNCitEb2RnZSwgV2lsbGlhbSBEZUxlZnR3aWNoDQorRG9lc2J1cmcsIFRoZW8gdmFuDQorRG9oYW4sIEthaWdldHN1ZG8NCitEb2hhbm9zLCBTdGV2YW4NCitEb2lnLCBQZXRlcg0KK0RvaXNuZWF1LCBSb2JlcnQNCitEb2xhbiwgRWxpemFiZXRoDQorRG9sY2ksIENhcmxvDQorRG9scGgsIEpvaG4gSGVucnkNCitEb21icm93c2tpLCBDYXJsIFJpdHRlciB2b24NCitEb21lbmljaGlubw0KK0RvbWVuaWNvIERlJ0NvcmkNCitEb21lbmljbyBkaSBCYXJ0b2xvDQorRG9tZW5pY28gZGkgUGFyaXMNCitEb21lbmljbyBWZW5lemlhbm8NCitEb21pbmd1ZXosIE9zY2FyDQorRG9taW5pY2lzLCBHaW5vIGRlDQorRG9uYWdoLCBSaXRhDQorRG9uYWh1ZSwgVmljDQorRG9uYWxkIExpcHNraQ0KK0RvbmFsZHNvbiwgQW50aG9ueQ0KK0RvbsOhdCwgSsOhbm9zDQorRG9uYXRlbGxvDQorRG9uYXRpLCBFbnJpY28NCitEb25jaywgR2VyYXJkDQorRG9uZXIsIE1pY2hlbGUgT2thDQorRG9uZyBRaWNoYW5nDQorRG9uZ2VuLCBEaW9ueXMgdmFuDQorRG9uZ2VuLCBLZWVzIHZhbg0KK0Rvbm5lbGx5LCBDaHVjaw0KK0Rvbm5lciwgR2VvcmcgUmFwaGFlbA0KK0Rvbm9naHVlLCBMeW5uDQorRG9ub2hvLCBHYWluZXMgUnVnZXINCitEb29saXR0bGUsIEFtb3MNCitEb29ybmlrLCBGcmFucyB2YW4NCitEb3JhemlvLCBQaWVybw0KK0RvcsOpLCBHdXN0YXZlDQorRG9yZm1laXN0ZXIsIElzdHbDoW4NCitkJ09ybMOpYW5zLCBFdnJhcmQNCitEb3JuZXIsIEpvaGFubg0KK0RvcnJpZW4sIENhcmxvcw0KK0RvcnJpcywgUm95DQorRG9yc2V5LCBKb2huDQorRCdPcnNpLCBBY2hpbGxlDQorRG9zYW1hbnRlcywgRnJhbmNpc2NvDQorRG9zc2ksIERvc3NvDQorRG91LCBHZXJyaXQNCitEb3VnaGVydHksIFBhdWwNCitEb3VnaHRlbiwgQWxpY2UNCitEb3VnaHR5LCBUaG9tYXMNCitEb3VnaHR5LCBXaWxsaWFtDQorRG91Z2xhcywgQWFyb24NCitEb3VnbGFzLCBFZHdpbg0KK0RvdWdsYXMsIFNpciBXaWxsaWFtIEZldHRlcw0KK0RvdXJpcw0KK0RvdXRuZXksIENoYXJsZXMNCitEb3ZlLCBBcnRodXINCitEb3dsaW5nLCBSb2JlcnQNCitEb3duYXJkLCBFYmVuZXplciBOZXdtYW4NCitEb3duaW5nLCBUb20NCitEb3dubWFuLCBKb2huDQorRG95bGUsIENoYXJsZXMgQWx0YW1vbnQNCitEb3lsZSwgUmljaGFyZA0KK0RyYXBlciwgSGVyYmVydA0KK0RyYXBlciwgV2lsbGlhbSBGcmFua2xpbg0KK0RyZWNoc2xlciwgSm9oYW5uIEJhcHRpc3QNCitEcmV3LCBDbGVtZW50DQorRHJld2VzLCBXZXJuZXINCitEcmV5ZXIsIENsYXJpY2UNCitEcmlnZ3MsIEVsc2llDQorRHLDtmxsaW5nLCBNYXJ0aW4NCitEcm9zdCwgV2lsbGVtDQorRHJvdWFpcywgRnJhbsOnb2lzLUh1YmVydA0KK0Ryb3VhaXMsIEplYW4tR2VybWFpbg0KK0RydW1tb25kLCBBcnRodXINCitEcnVtbW9uZCwgU2FtdWVsDQorRHJ5c2RhbGUsIFJ1c3NlbGwNCitEdSBNYXVyaWVyLCBHZW9yZ2UNCitEdSBaaWxpbmcNCitEdWJvaXMsIEphY3F1ZXMNCitEdWJvaXMtRHJhaG9uZXQsIEFsZXhhbmRyZS1KZWFuDQorRHVicmV1aWwsIFZpY3Rvcg0KK0R1YnVmZSwgTG91aXMtRWRvdWFyZA0KK0R1YnVmZmV0LCBKZWFuDQorRHVjY2lvIGRpIEJ1b25pbnNlZ25hDQorRHVjaGFtcCwgTWFyY2VsDQorRHVjaGFtcC1WaWxsb24sIFJheW1vbmQNCitEdWNrLCBKYWNvYg0KK0R1Y3JldXgsIEpvc2VwaA0KK0R1Y3JldXgsIFJvc2UgQWTDqWxhw69kZQ0KK0R1ZGxleSwgRnJhbmsgVi4NCitEdWV6LCBFcm5lc3QNCitEdWZyZXNuZSwgQ2hhcmxlcw0KK0R1ZnksIFJhb3VsDQorRHVnZGFsZSwgVGhvbWFzIENhbnRyZWxsDQorRHVnZ2VyLCBKb2huDQorRHVnaGV0LCBHYXNwYXJkDQorRHVqYXJkaW4sIEthcmVsDQorRHVrLWh5dW4sIENobw0KK0R1bGFjLCBFZG11bmQNCitEdW1lc25pbCB0aGUgWW91bmdlciwgUGllcnJlIExvdWlzDQorRHVtb25kLCBGcmFuaw0KK0R1bW9uc3RpZXIsIFBpZXJyZQ0KK0R1bW9udCwgSmFjcXVlcy1FZG1lDQorRHVtb3VzdGllciB0aGUgRWxkZXIsIFBpZXJyZQ0KK0R1bmFuZCwgSmVhbg0KK0R1bmJhciwgRXZlbHluDQorRHVuYmFyLCBIYXJvbGQgQ3JvY2tlcg0KK0R1bmJpZXIsIEF1Z3VzdHVzDQorRHVuY2FuLCBKb2huDQorRHVuY2FuLCBSb2JlcnQNCitEdW5jYW4sIFN0ZXZlDQorRHVuY2Fuc29uLCBSb2JlcnQgU2NvdHQNCitEdW5kYXMsIERvdWdsYXMNCitEdW5rZXIsIEJhbHRoYXphciBBbnRvbg0KK0R1bmxhcCwgV2lsbGlhbQ0KK0R1bm95ZXIgZGUgU2Vnb256YWMsIEFuZHLDqQ0KK0R1bnN0LCBIZWlucmljaA0KK0R1bnRvbiwgV2lsbGlhbSBIZXJiZXJ0DQorRHVwYXJjLCBGcmFuw6dvaXNlDQorRHVwYXMsIEplYW4NCitEdXBsZXNzaXMsIEpvc2VwaC1TaWZmcmVkDQorRHVwb250LCBHYWluc2Jvcm91Z2gNCitEdXByw6AsIERvbWVuaWNvDQorRHVwcsOpLCBHaW92YW5uaQ0KK0R1cHLDqSwgR3VpbGxhdW1lDQorRHVwcsOpLCBKdWxlcw0KK0R1cHLDqSwgSnVsaWVuDQorRHVwdWlzLCBHZW9yZ2VzDQorRHVxdWVzbm95LCBGcmFuw6dvaXMNCitEdXJhbmNlYXUsIFN1emFubmUNCitEdXJhbmQsIEFzaGVyIEIuDQorRHVyYW5kLCBKb2huDQorRHVyYW50aSwgRm9ydHVuYXRvDQorRHVyZW4sIFRlcmVuY2UNCitEw7xyZXIsIEFsYnJlY2h0DQorRHVyaGFtLCBKb3NlcGgNCitEdXJyaWUsIEdlb3JnZSBIZW5yeQ0KK0R1c2FydCwgQ29ybmVsaXMNCitEdXNlaWduZXVyLCBKZWhhbg0KK0R1c2VuYmVyeSwgV2FsdGVyDQorRHVza2lld2ljeiwgUmljaw0KK0R1c2tpZXdpY3osIFJpY2sNCitEdXZhbCwgSmVhbm5lDQorRHV2YWwsIE1hcmMNCitEdXZlbmVjaywgRWxpemFiZXRoIEx5bWFuIEJvb3R0DQorRHV2ZW5lY2ssIEZyYW5rDQorRHV2ZXQsIEplYW4NCitEdXlja2luY2ssIEdlcmFyZHVzDQorRHV5Zmh1eXNlbiwgUGlldGVyDQorRHV5c3RlciwgV2lsbGVtIENvcm5lbGlzei4NCitEd2lnaHQsIE1hYmVsDQorRHd5ZXIsIE5hbmN5DQorRHljZSwgV2lsbGlhbQ0KK0R5ZXIsIENoYXJsZXMgR2lmZm9yZA0KK0R5ZXIsIE5hbmN5DQorRWFnbGUgUGFpbnRlciwgVGhlDQorRWFraW5zLCBTdXNhbiBNYWNkb3dlbGwNCitFYWtpbnMsIFRob21hcw0KK0VhbWVzLCBDaGFybGVzDQorRWFtZXMsIFJheQ0KK0VhcmRsZXksIEpvYW4NCitFYXJsLCBNYXVkDQorRWFybCwgUmFscGgNCitFYXJsLCBSYWxwaCBFbGVhc2VyIFdoaXRlc2lkZQ0KK0VhcmxlLCBBdWd1c3R1cw0KK0VhcmxvbSwgUmljaGFyZA0KK0Vhc3QsIFNpciBBbGZyZWQNCitFYXN0bGFrZSwgU2lyIENoYXJsZXMgTG9jaw0KK0Vhc3RtYW4sIEVtaWx5DQorRWFzdG1hbiwgUmljbw0KK0Vhc3RtYW4sIFNldGgNCitFYXRvbiwgQ2hhcmxlcyBXYXJyZW4NCitFYXRvbiwgV2lsbGlhbSBCLg0KK0VhdG9uLCBXeWF0dA0KK0ViZXJ0LCBDaGFybGVzDQorRWJlcnQsIE1hcnkgUm9iZXJ0cw0KK0ViZXJ6LCBKb3NlZg0KK0VieSwgS2Vycg0KK0VjaGV2YXJyw61hLCBKdWFuIGRlDQorRWNrYXJ0LCBDaHJpc3RpYW4NCitFY2tlcnNiZXJnLCBDaHJpc3RvZmZlciBXaWxoZWxtDQorRWRkaXMsIEVkZW4gVXB0b24NCitFZGR5LCBEb24NCitFZGVsZmVsdCwgQWxiZXJ0DQorRWRlbnNoYXcsIENoYXJsZXMNCitFZG1vbmRzLCBGcmFuY2lzIFdpbGxpYW0NCitFZG1vbmRzb24sIFdpbGxpYW0NCitFZHJpZGdlLCBIZW5yeQ0KK0Vkc29uLCBBbGFuDQorRWR3YXJkcywgQmlsbHkNCitFZHdhcmRzLCBFZHdpbg0KK0Vkd2FyZHMsIEdlb3JnZSBXaGFydG9uDQorRWR3YXJkcywgTWVsdmluDQorRWVja2hvdXQsIEdlcmJyYW5kIHZhbiBkZW4NCitFZXJ0dmVsdCwgQW5kcmllcyB2YW4NCitFZ2VuYXUgTW9vcmUsIEp1YW4NCitFZ2VyaSwgS2FybCB2b24NCitFZ2csIEF1Z3VzdHVzIExlb3BvbGQNCitFZ2dlbWV5ZXIsIE1hdWRlIEthdWZtYW4NCitFZ2dlciwgVmlsbW9zDQorRWdnbGVzdG9uLCBXaWxsaWFtDQorRWdyeSwgSsOzenNlZg0KK0VobmluZ2VyLCBKb2huIFdoZXR0ZW4NCitFaHJlbmJlcmcsIFdpbGhlbG0gU2NodWJlcnQgdmFuDQorRWljaGVuYmVyZywgRnJpdHoNCitFaWNoaG9sdHosIEphY29iDQorRWlja2hvZmYsIEdvdHRmcmVkDQorRWlsc2hlbWl1cywgTG91aXMNCitFaXNlbiwgQ2hhcmxlcyBEb21pbmlxdWUNCitFaXNlbnRyYWdlciwgSmFtZXMNCitFaXN1aSwgSWNoaXJha3V0ZWkNCitFaXphbiwgS2lrdWdhd2ENCitFbGluZ2EsIFBpZXRlciBKYW5zc2Vucw0KK0VsaywgR2VyIHZhbg0KK0VsbGVyaHVzZW4sIEZsb3JlbmNlIENvb25leQ0KK0VsbGlvdHQsIENoYXJsZXMgTG9yaW5nDQorRWxsaXMsIEhhcnZleQ0KK0Vsc2hlaW1lciwgQWRhbQ0KK0VsdmdyZW4sIEdpbA0KK0VtZXJ5LCBMaW4NCitFbWluLCBUcmFjZXkNCitFbW1ldCwgTHlkaWEgRmllbGQNCitFbXNsaWUsIEFsZnJlZCBFZHdhcmQNCitFbmNrZWxsLCBNYWdudXMNCitFbmdsZWhlYXJ0LCBHZW9yZ2UNCitFbmpha3UNCitFbmpvcmxhcywgRGVscGhpbg0KK0Vua3lvLCBLYWJ1a2lkbw0KK0VubmVraW5nLCBKb2huIEouDQorRW5zb3IsIEphbWVzDQorRXBpa3RldG9zDQorRXBpbWVuZXMNCitFcHN0ZWluLCBKYWNvYg0KK0VyaGFyZHQsIE1pY2hlbA0KK0VyaGFydCwgR3JlZ29yDQorRXJpY2hzZW4sIFZpZ2lsaXVzDQorRXJpY2tzb24sIE5hbmN5DQorRXJpY3NvbiwgRGF2aWQNCitFcmxlYmFjaGVyLCBNYXJ0aGEgTWF5ZXINCitFcm5zdCwgSmltbXkNCitFcm5zdCwgTWF4DQorRXJuc3QsIFJ1ZG9scGgNCitFcnJpLCBBZ25vbG8gZGVnbGkNCitFcnLDsw0KK0VydMOpDQorRXMsIEphY29iIHZhbg0KK0VzY2FsYW50ZSwgSnVhbiBBbnRvbmlvDQorRXNjaGVyLCBNLkMuDQorRXNpZ3VvLCBNYWVzdHJvDQorRXNwaW5vc2EsIEp1YW4gZGUNCitFc3BveSwgQW5nZWwNCitFc3NlbGVucywgSmFjb2INCitFc3RlbnNlLCBCYWxkYXNzYXJlDQorRXN0ZXMsIFJpY2hhcmQNCitFdGlkbG9vaWUsIEtpbmdtZWF0YQ0KK0V0cm9nLCBTb3JlbA0KK0V0dHksIFdpbGxpYW0NCitFdW4taG8sIEtpbQ0KK0V1cGhyb25pb3MNCitFdXBvbGlzIFBhaW50ZXINCitFdXJpY2gsIFJpY2hhcmQNCitFdXN0YWNlLCBBLlcuDQorRXV4aXRoZW9zDQorRXZhbnMsIERlIFNjb3R0DQorRXZhbnMsIEVkd2luDQorRXZhbnMsIEZyZWRlcmljayBIZW5yeQ0KK0V2YW5zLCBHYXJ5DQorRXZhbnMsIEplc3NpZSBCZW50b24NCitFdmFucywgTWFyeSBQYWdlDQorRXZhbnMsIE1pbm5pZQ0KK0V2YW5zLCBXYWxrZXINCitFdmVyZGluZ2VuLCBBbGxhcnQgdmFuDQorRXZlcmRpbmdlbiwgQ2VzYXIgdmFuDQorRXZlcmdvb2QsIE1pbGVzDQorRXZlcmdvb2QsIFBoaWxpcA0KK0V2ZXJzZW4sIEFkcmlhbnVzDQorRXdiYW5rLCBKb2huIFdpbHNvbg0KK0V3ZW4sIFBhdGVyc29uDQorRXdvcnRoLCBIYW5zDQorRXhla2lhcw0KK0V5Y2ssIEh1YmVydCB2YW4NCitFeWNrLCBKYW4gdmFuDQorRXlyZSwgSXZhbg0KK0V5dG9uLCBBbnRob255DQorRmFiYnJpLCBBbmdlbm9yZQ0KK0ZhYmVyIHRoZSBZb3VuZ2VyLCBKb2huDQorRmFiZXJnw6ksIENhcmwNCitGYWJyZSwgRnJhbsOnb2lzLVhhdmllcg0KK0ZhYnJpdGl1cywgQmFyZW50DQorRmFicml0aXVzLCBDYXJlbA0KK0ZhYnJvLCBMdWNpYW5vDQorRmFjY2luaSwgUGlldHJvDQorRmFlZCwgSm9obg0KK0ZhZWQsIFRob21hcw0KK0ZhZXMsIFBldGVyDQorRmFmYXJkLCBKb2UNCitGYWdhbiwgUm9iZXJ0DQorRmFnZ2ksIEFsZmVvDQorRmFpcmJhbmtzLCBBdmFyZCBULg0KK0ZhaXJiYW5rcywgU2VtYW50aGENCitGYWlyYnJvdGhlciwgUm9iDQorRmFpcndlYXRoZXIsIElhbg0KK0ZhbGNpYXRvcmUsIEZpbGlwcG8NCitGYWxjaWVyaSwgQmlhZ2lvDQorRmFsY29uZXQsIMOJdGllbm5lLU1hdXJpY2UNCitGYWxjb25ldCwgUGllcnJlLcOJdGllbm5lDQorRmFsZXJvLCBMdWlzIFJpY2FyZG8NCitGYWxrLCBHYXRoaWUNCitGYWx0ZXIsIEpvaG4gUGhpbGxpcA0KK0ZhbiBLdWFuDQorRmFuY2VsbGksIENvc2ltbw0KK0ZhbmNlbGxpLCBQaWV0cm8NCitGYW5nIEppemhvbmcNCitGYW5nIFplbmd4aWFuDQorRmFuZyBaaGFvbGluDQorRmFudGluLUxhdG91ciwgSGVucmkNCitGYW56YWdvLCBDb3NpbW8NCitGYXJpbmF0aSwgUGFvbG8NCitGYXJpbmd0b24sIEpvc2VwaA0KK0ZhcmlzLCBKb3NlcGggQW5kZXJzb24NCitGYXJrYXMsIElzdHbDoW4NCitGYXJtLCBHZXJhbGQNCitGYXJtZXIsIEpvaG4NCitGYXJueSwgSGVucnkgRi4NCitGYXJxdWFyc29uLCBEYXZpZA0KK0ZhcnIsIEVsbGVuIEJ1cnBlZQ0KK0ZhcnJlbGwsIEthdGhlcmluZSBMZXZpbmUNCitGYXJyZXIsIENoYXJsZXMNCitGYXJyZXIsIEhlbnJ5DQorRmFycmVyYXMsIEZyYW5jaXNjbw0KK0ZhdHRvcmksIEdpb3Zhbm5pDQorRmF1dmVsZXQsIEplYW4tQmFwdGlzdGUNCitGYXhvbiwgUmljaGFyZA0KK0ZheWRoZXJiZSwgTHVjDQorRmF5ZSwgQXNzYW5lDQorRmF6emluaSwgUGVyaWNsZQ0KK0ZlYXJvbiwgSGlsZGENCitGZWNoaW4sIE5pY29sYWkNCitGZWRpLCBHaXVzZXBwaQ0KK0ZlaW5pbmdlciwgTHlvbmVsDQorRmVpdGVsc29uLCBMb3JzZXINCitGZWtlLCBSb2JlcnQNCitGZWxndcOpcmV6LCBNYW51ZWwNCitGZW5kZXJpY2gsIENoYXJsZXMNCitGZW5kaSwgUGV0ZXINCitGZW5nIEthbmdob3UNCitGZW5nIE1lbmdibw0KK0ZlbmcgWmlrYWkNCitGZW5uZWtlciwgSm9zZWYNCitGZW50b24sIFJvZ2VyDQorRmVudG9uLCBUZXJyeQ0KK0bDqW55ZXMsIEFkb2xmDQorRmVyYmVyLCBIZXJiZXJ0DQorRmVyZW5jenksIEvDoXJvbHkNCitGZXJndXNvbiwgR2VyYWxkDQorRmVybsOhbmRleiBMZWRlc21hLCBHYWJyaWVsDQorRmVybsOhbmRleiwgR3JlZ29yaW8NCitGZXJuw6FuZGV6LCBMdWlzDQorRmVybmVsZXkgSSwgSm9obg0KK0Zlcm5lbGV5IElJLCBKb2huDQorRmVycmFudCB5IFZhenF1ZXosIEFuZ2VsDQorRmVycmFyYSwgSmFja2llDQorRmVycmFyaSwgRGVmZW5kZW50ZQ0KK0ZlcnJhcmksIEdhdWRlbnppbw0KK0ZlcnJhdCwgSmVhbi1Kb3NlcGgtSGlwcG9seXRlLVJvbWFpbg0KK0ZlcnJhdGEsIEVyY29sZQ0KK0ZlcnJlbiwgSm9obg0KK0ZlcnJlciwgUmFmYWVsDQorRmVycmV0dGksIEdpb3Zhbm5pIERvbWVuaWNvDQorRmVycmnDqHJlLCBGcmFuw6dvaXMNCitGZXJyaWxsLCBNYXJ0aW4gRWRnYXINCitGZXJ5LCBKb2huDQorRmV0aSwgRG9tZW5pY28NCitGZXR0aW5nLCBSYWluZXINCitGZXVjaMOocmUsIEplYW4tSmFjcXVlcw0KK0ZldWVyYmFjaCwgQW5zZWxtDQorRmV1cmUsIEdlb3JnZXMgZGUNCitGaWVsZCwgRXJhc3R1cyBTYWxpc2J1cnkNCitGaWVsZCwgUm9iZXJ0DQorRmllbGRpbmcsIEFudGhvbnkgVmFuZHlrZSBDb3BsZXkNCitGaWVuZSwgRXJuZXN0DQorRmlndWVpcmVkbyBlIE1lbGxvLCBQZWRybyBBbcOpcmljbyBkZQ0KK0ZpbGFyZXRlDQorRmlsZGVzLCBTaXIgTHVrZQ0KK0ZpbGlwcGksIFNlYmFzdGlhbm8NCitGaWxsaWVyLCBTY290dA0KK0ZpbG9ub3YsIFBhdmVsDQorRmluY2gsIEZyYW5jaXMgT2xpdmVyDQorRmluY2ssIEhhemVsDQorRmluZSwgUGVybGUNCitGaW5lLCBTYWxseSBTLg0KK0ZpbmVsbGksIEdpdWxpYW5vDQorRmlubGF5LCBJYW4gSGFtaWx0b24NCitGaW5zb24sIEx1ZG92aWN1cw0KK0Zpb3JlbnRpbm8sIEFudG9uaW8NCitGaW9yZW50aW5vLCAnUHNldWRvJyBQaWVyIEZyYW5jZXNjbw0KK0Zpb3JpLCBFcm5lc3RvIGRlDQorRmlvcmluaSwgQ2xlbSAmIFRvbnkNCitGaXJtaW4tR2lyYXJkLCBNYXJpZS1GcmFuw6dvaXMNCitGaXNjaGVyLCBQYXVsDQorRmlzY2hsLCBFcmljDQorRmlzY2hsaSwgUGV0ZXINCitGaXNoLCBKYW5ldA0KK0Zpc2hlciwgQWx2YW4NCitGaXNoZXIsIEFubmENCitGaXNoZXIsIEVsaXphYmV0aCBDbGF5DQorRmlzaGVyLCBFbGxlbiBCb3dkaXRjaCBUaGF5ZXINCitGaXNoZXIsIE1hcmsNCitGaXNoZXIsIFNhbXVlbCBNZWx0b24NCitGaXNoZXIsIFZlcm5vbg0KK0Zpc2ssIExhcnMtRXJpaw0KK0Zpc2tlLCBHZXJ0cnVkZQ0KK0ZpdGNoLCBXYWx0ZXINCitGaXR0b24sIEhlZGxleQ0KK0ZpdHpnZXJhbGQsIEpvaG4gQW5zdGVyDQorRml0emdlcmFsZCwgTGlvbmVsDQorRmxhY2ssIEF1ZHJleQ0KK0ZsYWdnLCBKYW1lcyBNb250Z29tZXJ5DQorRmxhbWVuLCBBbnNlbG1lDQorRmxhbWVuZywgTMOpb3BvbGQNCitGbGFuYWdhbiwgQmFycnkNCitGbGFuZHJpbiwgSGlwcG9seXRlDQorRmxhbm5hZ2FuLCBKb2huIEJlcm5hcmQNCitGbGF2aW4sIERhbg0KK0ZsYXhtYW4sIEpvaG4NCitGbGVnZWwsIEdlb3JnDQorRmxlaXNjaG5lciwgUmljaGFyZA0KK0ZsZXhvciwgU2Ftc29uDQorRmxpY2tlLCBHZXJsYWNoDQorRmxpbmNrLCBHb3ZlcnQNCitGbGludCwgV2lsbGlhbSBMZXJveQ0KK0ZsaXBhcnQsIENoYXJsZXMNCitGbG9yaXMsIENvcm5lbGlzDQorRmxvcmlzLCBGcmFucw0KK0Zsb3J5LCBBcnRodXIgTC4NCitGb2dhcnR5LCBNYXJ5IEJldGgNCitGb2dnaW5pLCBHaWFtYmF0dGlzdGENCitGb2xleSwgSm9obiBIZW5yeQ0KK0ZvbGlhZ2UgTWFzdGVyDQorRm9saWdubywgQmFydG9sb21lbyBkaSBUb21tYXNvIGRhDQorRm9saW5zYmVlLCBKb2huIEZ1bHRvbg0KK0ZvbHdlbGwsIEpvZHkNCitGb250YW5hLCBBbm5pYmFsZQ0KK0ZvbnRhbmEsIExhdmluaWENCitGb250YW5hLCBMdWNpbw0KK0ZvbnRhbmEsIFByb3NwZXJvDQorRm9udGViYXNzbywgRnJhbmNlc2NvDQorRm9vdGUsIE1hcnkNCitGb290ZSwgV2lsbCBIb3dlDQorRm9wcGEsIFZpbmNlbnpvDQorRm9yYWJvc2NvLCBHaXJvbGFtbw0KK0ZvcmFpbiwgSmVhbi1Mb3Vpcw0KK0ZvcmJlcywgRG9uYWxkIEVtZXJ5DQorRm9yYmVzLCBFbGl6YWJldGggQWRlbGEgQXJtc3Ryb25nDQorRm9yYmVzLCBKb2huIENvbGluDQorRm9yYmVzLCBTdGFuaG9wZSBBbGV4YW5kZXINCitGb3JkLCBFZHdhcmQgT25zbG93DQorRm9yZCwgTGF1cmVuDQorRm9yZCwgV2lsbGlhbQ0KK0bDtnJnLCBHw7xudGVyDQorRm9ycmVzdCwgSm9uYXRoYW4gQWxpc3RhaXINCitGb3JyZXN0YWxsLCBUb20NCitGb3JzbWFuLCBDaHVjaw0KK0ZvcnN0ZXIsIFRob21hcw0KK0ZvcnN5dGgsIFdpbGxpYW0NCitGb3J0ZXNjdWUtQnJpY2tkYWxlLCBFbGVhbm9yDQorRm9ydGluLCBNYXJjLUF1csOobGUNCitGb3J0aW5pLCBHaW92YWNjaGlubw0KK0ZvcnR1bnkgeSBNYWRyYXpvLCBNYXJpYW5vDQorRm9ydHVueSB5IE1hcnNhbCwgTWFyaWFubw0KK0ZvcnR5LCBKZWFuIEphY3F1ZXMNCitGb3NjaGksIFBpZXJmcmFuY2VzY28NCitGb3NzYXRpLCBEYXZpZGUgQW50b25pbw0KK0Zvc3NvLCBTYW11ZWwNCitGb3N0ZXIsIEJlbg0KK0Zvc3RlciwgTXlsZXMgQmlya2V0DQorRm9zdGVyLCBXaWxsaWFtDQorRm91aml0YSwgVHN1Z29oYXJ1DQorRm91bmRyeSBQYWludGVyLCBUaGUNCitGb3VxdWV0LCBKZWFuDQorRm91ciBCZWFycw0KK0ZvdXJuaWVyLCBBbGV4aXMgSmVhbg0KK0Zvd2xlLCBJc2FhYw0KK0ZveCwgRS4gUGhpbGxpcHMNCitGb3kgU3V6b3ItQ290w6ksIE1hcmMtQXVyw6hsZSBkZQ0KK0ZyYWdvbmFyZCwgSmVhbi1Ib25vcsOpDQorRnJhZ29uYXJkLCBNYXJpZSBBbm5lIEfDqXJhcmQNCitGcmFtcHRvbiwgRWR3YXJkIFJlZ2luYWxkDQorRnJhbXB0b24sIEhvbGxpcw0KK0ZyYW1wdG9uLCBNZXJlZGl0aA0KK0ZyYW5jYWxhbmNpYSwgUmljY2FyZG8NCitGcmFuY2F2aWxsYSwgUGlldHJvDQorRnJhbmNlLCBFdXJpbGRhIExvb21pcw0KK0ZyYW5jZXMsIEVzdGViYW4NCitGcmFuY8OpcywgTmljb2zDoXMNCitGcmFuY2VzY2hpbmksIE1hcmNhbnRvbmlvDQorRnJhbmNlc2NvIGRlIE11cmENCitGcmFuY2VzY28gZGkgR2lvcmdpbyBNYXJ0aW5pDQorRnJhbmNlc2NvIGRpIFZhbm51Y2Npbw0KK0ZyYW5jaGluYSwgTmlubw0KK0ZyYW5jaG95cyB0aGUgWW91bmdlciwgTHVjYXMNCitGcmFuY2lhLCBGcmFuY2VzY28NCitGcmFuY2lhLCBGcmFuw6dvaXMgTG91aXMgVGhvbWFzDQorRnJhbmNpYWJpZ2lvDQorRnJhbmNpcywgSm9obiBGLg0KK0ZyYW5jaXMsIE1hcmsNCitGcmFuY2lzLCBTYW0NCitGcmFuY2tlbiBJLCBGcmFucw0KK0ZyYW5ja2VuIElJLCBGcmFucw0KK0ZyYW5ja2VuIElJLCBIaWVyb255bXVzDQorRnJhbmNvLCBHaW92YW5uaSBCYXR0aXN0YQ0KK0ZyYW5jcXVldmlsbGUsIFBpZXJyZQ0KK0ZyYW5rLCBNYXJ5DQorRnJhbmssIFJvYmVydA0KK0ZyYW5rZWwsIEdvZGZyZXkNCitGcmFua2VudGhhbGVyLCBIZWxlbg0KK0ZyYW56ZW4sIEF1Z3VzdA0KK0ZyYXNjb25pLCBBbnRvbmlvDQorRnJhc2VyLCBBbGV4YW5kZXINCitGcmFzZXIsIENhcm9sIEhvb3JuDQorRnJhc2VyLCBKYW1lcyBFYXJsZQ0KK0ZyYXRlciwgV2lsbGlhbQ0KK0ZyYXRpbiwgQ2hyaXN0b3BoZQ0KK0ZyYXpldHRhLCBGcmFuaw0KK0ZyZWFrZSBMaW1uZXIsIFRoZQ0KK0ZyZWNrZWx0b24sIFNvbmRyYQ0KK0ZyZWRkaWUsIFdpbGhlbG0NCitGcsOpZMOpcmljLCBMw6lvbg0KK0ZyZWVsYW5kLCBBbm5hIENoYW1iZXJsYWluDQorRnJlZW1hbiwgRG9uDQorRnJlZW1hbiwgRWRpdGgNCitGcmVlbWFuLCBKYW5lDQorRnJlaWJlcmdlciwgQmVubnkNCitGcmVpbGljaGVyLCBKYW5lDQorRnLDqWxhdXQsIEplYW4NCitGcmVtaW4sIFJlbsOpDQorRnJlbmNoLCBEYW5pZWwgQ2hlc3Rlcg0KK0ZyZW5jaCwgSmFyZWQNCitGcsOocmUsIENoYXJsZXMtVGjDqW9kb3JlDQorRnJlc25heWUsIFJvZ2VyIGRlIGxhDQorRnJldWQsIEx1Y2lhbg0KK0ZyZXVuZGxpY2gsIE90dG8NCitGcmV5LCBWaW9sYQ0KK0ZyaWViZXJ0LCBKb3NlcGgNCitGcmllZGViZXJnLCBQZWRybw0KK0ZyaWVkbGFuZGVyLCBJc2FjDQorRnJpZWRsYW5kZXIsIExlZQ0KK0ZyaWVkcmljaCwgQ2FzcGFyIERhdmlkDQorRnJpZW5kLCBEb25hbGQNCitGcmllbmQsIFdhc2hpbmd0b24NCitGcmllcywgRXJuc3QNCitGcmllc2UsIFJpY2hhcmQNCitGcmllc2VrZSwgRnJlZGVyaWNrIENhcmwNCitGcmllc3osIE90aG9uDQorRnJpbmssIERhbWUgRWxpc2FiZXRoDQorRnJpcHAsIEFsZnJlZCBEb3duaW5nDQorRnJpcHAsIEdlb3JnZSBBcnRodXINCitGcmlwcCwgVGhvbWFzDQorRnJpc2htdXRoLCBIYXJyaWV0IFdoaXRuZXkNCitGcml0aCwgV2lsbGlhbSBQb3dlbGwNCitGcml0c2NoLCBLYXRoYXJpbmENCitGcm9tZW50LCBOaWNvbGFzDQorRnJvbWVudGluLCBFdWfDqG5lDQorRnJvbWVudC1NZXVyaWNlLCBGcmFuw6dvaXMtRMOpc2lyw6kNCitGcm9zdCwgSm9obg0KK0Zyb3N0LCBUZXJyeQ0KK0Zyb3N0LCBXaWxsaWFtIEVkd2FyZA0KK0ZyeSwgUm9nZXINCitGcnllLCBUaG9tYXMNCitGdSBCYW9zaGkNCitGdSBFcnNoaQ0KK0Z1ZXJ0ZXMsIExvdWlzIEFnYXNzaXoNCitGw7xnZXIsIEZyaWVkcmljaCBIZWlucmljaA0KK0Z1aml3YXJhIE5vYnV6YW5lDQorRnVqaXdhcmEgVGFrYW5vYnUNCitGdWthLCBFdmENCitGdWxsZXIsIEJ1Y2ttaW5zdGVyDQorRnVsbGVyLCBHZW9yZ2UNCitGdWxsZXIsIE1ldGEgV2Fycmljaw0KK0Z1bGx3b29kLCBKb2huDQorRnVsdG9uLCBIYW1pc2gNCitGdW5nYWksIEJlcm5hcmRpbm8NCitGdXJpbmksIEZyYW5jZXNjbw0KK0Z1cnNlLCBDaGFybGVzIFdlbGxpbmd0b24NCitGdXNhdGFuZQ0KK0Z1c2VsaSwgSm9obiBIZW5yeQ0KK0Z1c3MsIEFkYW0NCitGeXQsIEphbg0KK0dhYmJpYW5pLCBBbnRvbiBEb21lbmljbw0KK0dhYm8sIE5hdW0NCitHYWRkaSwgQWdub2xvDQorR2FkZGksIFRhZGRlbw0KK0dhZXJ0bmVyLCBFZHVhcmQNCitHw6FnLCBXYW5kYQ0KK0dhZ2VuLCBSb2JlcnQNCitHYWdpbmksIERvbWVuaWNvDQorR2Fnbm9uLCBDbGFyZW5jZQ0KK0dhaW5zYm9yb3VnaCwgVGhvbWFzDQorR2Fsw6FuLCBKdWxpbw0KK0dhbGUsIFdpbGxpYW0NCitHYWxsYWdoZXIsIFNlYXJzDQorR2FsbGFpdCwgTG91aXMNCitHYWxsZSBJLCBDb3JuZWxpcw0KK0dhbGzDqSwgRW1pbGUNCitHYWxsZSwgUGhpbGlwDQorR2FsbGVnbywgRmVybmFuZG8NCitHYWxsZW4tS2FsbGVsYSwgQWtzZWxpDQorR2FsbGlhbmksIE9tYXINCitHYWxsbywgT3NjYXINCitHYW1iYXJhLCBMYXR0YW56aW8NCitHYW1ibGUsIEpvaG4NCitHYW1lbGluLCBKYWNxdWVzDQorR2FtbWVsbCwgUi5ILiBJdmVzDQorR2FuZG9sZmksIEdhZXRhbm8NCitHYW5kb2xmaSwgVWJhbGRvDQorR2FuZG9sZmlubyBkYSBSb3JldG8NCitHYW5vIGRpIEZhemlvDQorR2FucywgRG9ubmEgSC4NCitHYW5zZXZvb3J0IExpbW5lciwgVGhlDQorR2Fuc28sIEVtaWwNCitHYW8gRmVuZ2hhbg0KK0dhbyBKaWFuZnUNCitHYW8gUWlmZW5nDQorR2FyYmVyLCBEYW5pZWwNCitHYXJjaWEsIFJ1cGVydA0KK0dhcmRuZXIsIERhbmllbA0KK0dhcmRuZXIsIFRvZGQNCitHYXJlbGxpLCBGcmFuY28NCitHYXJnYWxsbywgUGFibG8NCitHYXJnaXVsbywgRG9tZW5pY28NCitHYXJtYW4sIEVkDQorR2FybmVyLCBTYXJhaA0KK0dhcm5pZXIsIE1pY2hlbA0KK0dhcm9mYWxvDQorR2FycmFyZCwgR2VvcmdlDQorR2FycmV0c29uLCBNYXJ0aW4gUy4NCitHYXJyaWd1cywgS2VpdGgNCitHYXJzdGluLCBOb3JtYW4NCitHYXJ0bmVyLCBBbGxhbg0KK0dhcnphLCBDYXJtZW4gTG9tYXMNCitHYXNwYXJkLCBMZW9uDQorR2Fzc2VsLCBMdWNhcw0KK0dhdWTDrSwgQW50b25pDQorR2F1ZGllci1Ccnplc2thLCBIZW5yaQ0KK0dhdWZmaWVyLCBMb3Vpcw0KK0dhdWdlbmdpZ2wsIElnbmF6IE1hcmNlbA0KK0dhdWd1aW4sIFBhdWwNCitHYXV0aGllciwgU3V6YW5uZQ0KK0dhdmFybmksIFBhdWwNCitHYXZhcnJvbmUsIERvbWVuaWNvDQorR2F5LCBFZHdhcmQNCitHYXksIE5pa29sYXkNCitHYXl3b29kLCBSaWNoYXJkDQorR2VkZGVzLCBBbmRyZXcNCitHZWRvdml1cywgR2VybcOhbg0KK0dlZXIsIEdyYWNlIFdvb2RicmlkZ2UNCitHZWhyaywgUm9iZXJ0IEouDQorR2VocnksIEZyYW5rDQorR2VpZ2VyLCBBbm5hIEJlbGxhDQorR2Vpa2llLCBXYWx0ZXINCitHZWlzdGVkLCBKw7hyZ2VuDQorR2VsZGVyLCBBZXJ0IGRlDQorR2Vsc2F2YWdlLCBKb2huIFp5Z211bmQNCitHZW1pdG8sIFZpbmNlbnpvDQorR2VuZ2EsIEdpcm9sYW1vDQorR2VubmFyaSwgQmVuZWRldHRvDQorR2Vuc2xlciwgTWFydGluDQorR2VudCwgRy5XLg0KK0dlbnRoLCBMaWxsaWFuIE1hdGhpbGRlDQorR2VudGhlLCBBcm5vbGQNCitHZW50aWxlIGRhIEZhYnJpYW5vDQorR2VudGlsZXNjaGksIEFydGVtaXNpYQ0KK0dlbnRpbGVzY2hpLCBPcmF6aW8NCitHZW50aWxpbmksIEZyYW5jbw0KK0dlbnRsaW5nLCBTY290dA0KK0dlb2Zmcm95LCBIZW5yeS1KdWxlcy1KZWFuDQorR2VvcmdlLCBSYXkNCitHw6lyYXJkLCBGcmFuw6dvaXMNCitHw6lyYXJkLCBNYXJndWVyaXRlDQorR2VyYXJkaSwgQWxiZXJ0bw0KK0dlcmFyZG8NCitHZXJoYWVydCwgTmljb2xhdXMNCitHZXJoYXJkLCBIdWJlcnQNCitHZXJob2xkLCBNZWwNCitHw6lyaWNhdWx0LCBUaMOpb2RvcmUNCitHZXJpbmksIE5pY2NvbMOyIGRpIFBpZXRybw0KK0dlcmxvdmluLCBWYWxlcml5DQorR2VybG92aW5hLCBSaW1tYQ0KK0dlcm1haW4sIEZyYW7Dp29pcy1UaG9tYXMNCitHZXJtYWluLCBMb3Vpcw0KK0fDqXLDtG1lLCBKZWFuLUzDqW9uDQorR2Vyc3RsLCBSaWNoYXJkDQorR2VydGxlciwgTWFyaw0KK0dlcnRzY2gsIEZyYW56DQorR2VydmV4LCBIZW5yaQ0KK0dlcnpzbywgR3VudGhlcg0KK0dldHosIEFydGh1cg0KK0dldWVyLCBKdWFuDQorR2hlZXJhZXJ0cyB0aGUgWW91bmdlciwgTWFyY3VzDQorR2hlcmFyZG8gZGkgR2lvdmFubmkNCitHaGV5biBJSSwgSmFjcXVlcyBkZQ0KK0doZXluLCBKYWNxdWVzIGRlDQorR2hlenppLCBQaWVyIExlb25lDQorR2hpYmVydGksIExvcmVuem8NCitHaGlybGFuZGFpbywgQmVuZWRldHRvDQorR2hpcmxhbmRhaW8sIERvbWVuaWNvDQorR2hpcmxhbmRhaW8sIFJpZG9sZm8NCitHaGlzbGFuZGksIEdpdXNlcHBlDQorR2lhY29tZXR0aSwgQWxiZXJ0bw0KK0dpYWNvbWV0dGksIEdpb3Zhbm5pDQorR2lhbWJvbG9nbmENCitHaWFtYm9ubywgTWljaGVsZQ0KK0dpYW1waWV0cmlubw0KK0dpYW5uZXR0aSwgUmFmZmFlbGUNCitHaWFubmljb2xhIGRpIFBhb2xvDQorR2lhcXVpbnRvLCBDb3JyYWRvDQorR2liYnMsIEhlbnJ5DQorR2liYnMsIFBlcmN5IFcuDQorR2lic29uLCBSYWxwaA0KK0dpZXJnbCwgQWxham9zIEd5w7ZyZ3lpDQorR2llc2JyZWNodCwgR2FycnkNCitHaWZmb3JkLCBTYW5mb3JkIFJvYmluc29uDQorR2lnZXIsIEguUi4NCitHaWdub3V4LCBSw6hnaXMtRnJhbsOnb2lzDQorR2lnb2xhLCBHaW92YW5uaSBCYXR0aXN0YQ0KK0dpanNicmVjaHRzLCBDb3JuZWxpdXMNCitHaWwgZGUgQ2FzdHJvLCBKb3PDqQ0KK0dpbGJlcnQgYW5kIEdlb3JnZQ0KK0dpbGJlcnQsIEFsZnJlZA0KK0dpbGJlcnQsIEFydGh1ciBIaWxsDQorR2lsYmVydCwgSm9obiBDb25yYWQNCitHaWxiZXJ0LCBTaXIgSm9obg0KK0dpbGJlcnQsIFZpY3Rvci1HYWJyaWVsDQorR2lsZGVyLCBSb2JlcnQNCitHaWxlLCBTZWxkZW4gQ29ubm9yDQorR2lsaG9vbHksIERhdmlkDQorR2lsbCwgRXJpYw0KK0dpbGxlc3BpZSwgR3JlZ29yeQ0KK0dpbGxldHQsIEZyYW5rDQorR2lsbGlhbSwgU2FtDQorR2lsbGluaSwgQWxiZXJ0bw0KK0dpbGxvdCwgQ2xhdWRlDQorR2lsbHJheSwgSmFtZXMNCitHaWxtYW4sIEhhcm9sZA0KK0dpbHBpbiwgUmV2LiBXaWxsaWFtDQorR2lscGluLCBTYXdyZXkNCitHaW5uZXZlciwgQ2hhcmxlcw0KK0dpb3JkYW5vLCBMdWNhDQorR2lvcmdpb25lDQorR2lvdHRpbm8NCitHaW90dG8gZGkgQm9uZG9uZQ0KK0dpb3Zhbm5pIGRhIEJhbGR1Y2Npbw0KK0dpb3Zhbm5pIGRhIENhbXBpb25lDQorR2lvdmFubmkgZGEgTWlsYW5vDQorR2lvdmFubmkgZGEgTm9sYQ0KK0dpb3Zhbm5pIGRhIFNhbiBHaW92YW5uaQ0KK0dpb3Zhbm5pIGRlbCBCaW9uZG8NCitHaW92YW5uaSBkaSBQYW9sbw0KK0dpb3Zlbm9uZSwgR2lyb2xhbW8NCitHaXBlLCBMYXdyZW5jZQ0KK0dpcmFyZG9uLCBGcmFuw6dvaXMNCitHaXJvZGV0IGRlIFJvdXNzeS1Ucmlvc29uLCBBbm5lLUxvdWlzDQorR2lyb2xhbW8gZGEgQ2FycGkNCitHaXJvbGFtbyBkYWkgTGlicmkNCitHaXJvbGFtbyBkaSBCZW52ZW51dG8NCitHaXJvbmVsbGEsIEFsYmVydG8NCitHaXJvdXgsIEFuZHLDqQ0KK0dpcnRpbiwgVGhvbWFzDQorR2l1bGlvIFJvbWFubw0KK0dsYWNrZW5zLCBXaWxsaWFtDQorR2xhaXplLCBBdWd1c3RlDQorR2xhaXplLCBQaWVycmUtUGF1bC1Mw6lvbg0KK0dsYXJuZXIsIEZyaXR6DQorR2xlZXNvbiwgSmFtZXMNCitHbGVobiwgV2lsZnJpZCBkZQ0KK0dsZWl6ZXMsIEFsYmVydA0KK0dsZW5kZW5uaW5nLCBBbGZyZWQNCitHbGV5cmUsIENoYXJsZXMNCitHbGljaywgSm9obg0KK0dsaW50ZW5rYW1wLCBIZW5kcmlrDQorR2xvdmVyLCBKb2huDQorR2x5ZGUsIEhlbnJ5IEdlb3JnZQ0KK0dvYmVyLCBSb2JlcnQNCitHb2JsZSwgUGF1bA0KK0dvZGZyZXksIERlV2l0dA0KK0dvZHdhcmQsIEpvaG4gV2lsbGlhbQ0KK0dvZW5ldXR0ZSwgTm9yYmVydA0KK0dvZXMsIEh1Z28gdmFuIGRlcg0KK0dvZ2FzLCBHZW9yZ2UNCitHb2luZ3MsIFJhbHBoDQorR29pdGlhLCBGcmFuY2lzY28NCitHb2xkYmVyZywgUnViZQ0KK0dvbGRpbiwgTmFuDQorR29sZHN3b3J0aHksIEFuZHkNCitHb2xpbmtpbiwgSm9zZXBoDQorR29sbGluZ3MsIEUuIFcuDQorR29sdHppdXMsIEhlbmRyaWNrDQorR29sdWIsIExlb24NCitHb21leiBkZSBNb3JhLCBKdWFuDQorR8OzbWV6LCBWaWNlbnRlIFNhbHZhZG9yDQorR29uw6dhbHZlcywgTnVubw0KK0dvbmNoYXJvdmEsIE5hdGFsaWENCitHb25nIFhpYW4NCitHb256YWdhLCBQaWV0cm8NCitHb256YWxlcywgRXZhDQorR29uesOhbGV6IEVzY29iYXIsIEp1YW4gRnJhbmNpc2NvDQorR29uesOhbGV6IFBlbGxpY2VyLCBKdWxpbw0KK0dvbnphbGV6IFJ1aXosIERhbmllbA0KK0dvbnphbGV6IHkgU2VycmFubywgQmFydG9sb21lDQorR29uesOhbGV6LCBKb2FuDQorR29uemFsZXosIEp1YW4NCitHb256w6FsZXosIFZpY2VudGUgUGFsbWFyb2xpDQorR29uemFsZXotVG9ycmVzLCBGZWxpeA0KK0dvb2QsIFRob21hcyBTd29yZA0KK0dvb2RhbGwsIEZyZWRlcmljaw0KK0dvb2RmZWxsb3csIFN0ZXBoZW4NCitHb29kbWFuLCBCcmVuZGENCitHb29kbWFuLCBTaWRuZXkNCitHb29kbm91Z2gsIFJvYmVydA0KK0dvb2RyaWRnZSwgRWxpemENCitHb29kc2lyLCBBZ25lcw0KK0dvb2R3aW4sIEFydGh1ciBDbGlmdG9uDQorR29vZHdpbiwgR2lsYmVydGEgRGFuaWVscw0KK0dvb2R3aW4sIFBoaWxpcCBSLg0KK0dvb2R3aW4sIFJpY2hhcmQgTGFCYXJyZQ0KK0dvb2R3aW4sIFN0ZXZlDQorR29va2lucywgSmFtZXMgRmFycmluZ3Rvbg0KK0dvcmRpbGxvLCBMdWlzIFJvZHLDrWd1ZXoNCitHb3Jkb24sIEFydHVybw0KK0dvcmRvbiwgRG91Z2xhcw0KK0dvcmRvbiwgSGFycnkgSC4NCitHb3Jkb24sIEp1bGlhIEVtaWx5DQorR29yZG9uLCBMYWR5DQorR29yZG9uLCBSdXNzZWxsIFQuDQorR29yZG9uLCBTaXIgSGFycnkgUGVyY3kNCitHb3Jkb24sIFNpciBKb2huIFdhdHNvbg0KK0dvcmUsIENoYXJsZXMNCitHb3JlLCBTcGVuY2VyDQorR29yZW5rbywgUmljaGFyZCBXaWxsaWFtcyBTYW11ZWwNCitHb3Jnb25pLCBHLg0KK0dvcmluLCBKZWFuDQorR29ya3ksIEFyc2hpbGUNCitHb3JtbGV5LCBBbnRvbnkNCitHb3JuaWssIEFwcmlsDQorR29ybyBkaSBHcmVnb3Jpbw0KK0dvcnNsaW5lLCBEb3VnbGFzDQorR29yc29uLCBBYXJvbiBIYXJyeQ0KK0dvc2hpbg0KK0dvc2h1biwgTWF0c3VtYXJhDQorR290Y2gsIFRob21hcyBDb29wZXINCitHb3R0bGllYiwgQWRvbHBoDQorR290dGxpZWIsIEhhcnJ5DQorR291ZGllLCBTY290dA0KK0dvdWR0LCBIZW5kcmlrDQorR291am9uLCBKZWFuDQorR291bGQsIFdpbGxpYW0NCitHb3VwaWwsIEp1bGVzLUFkb2xwaGUNCitHb3ZhZXJzLCBEYW5pZWwNCitHb3ZhZXJ0cywgQWJyYWhhbQ0KK0dvdywgQW5kcmV3IENhcnJpY2sNCitHb3dlciwgR2VvcmdlDQorR293aW5nLCBTaXIgTGF3cmVuY2UNCitHb3lhLCBGcmFuY2lzY28gZGUNCitHb3llbiwgSmFuIHZhbg0KK0dveW8sIEhhc2hpZ3VjaGkNCitHb3p6b2xpLCBCZW5venpvDQorR3JhZXZlbml0eiwgR2VyaGFyZCB2b24NCitHcmFmLCBHZW5ldmlldmUgR290aA0KK0dyYWYsIFVycw0KK0dyYWZmLCBBbnRvbg0KK0dyYWhhbSwgRGFuDQorR3JhaGFtLCBKb2huDQorR3JhaGFtLCBQYXVsDQorR3JhaGFtLCBQZXRlcg0KK0dyYWhhbSwgUm9iZXJ0DQorR3JhbXphLCBMZXJveQ0KK0dyYW5hY2NpLCBGcmFuY2VzY28NCitHcmFuZGksIEdpYW4gR2lyb2xhbW8NCitHcmFuZGksIEdpdXNlcHBlDQorR3JhbmRpbiwgRXVnZW5lDQorR3JhbmRtYWlzb24sIE5pY2hvbGFzIGRlDQorR3JhbmV0LCBGcmFuw6dvaXMtTWFyaXVzDQorR3JhbmdlciwgQ2hhcmxlcyBIZW5yeQ0KK0dyYW50LCBEdW5jYW4NCitHcmFudCwgRnJlZGVyaWMgTWlsdG9uDQorR3JhbnQsIEdvcmRvbg0KK0dyYW50LCBTaXIgRnJhbmNpcw0KK0dyYXMsIENhc3Bhcg0KK0dyYXNzLCBQaGlsaXBwZQ0KK0dyYXNzZXIsIEVyYXNtdXMNCitHcmF1c21hbiwgUGhpbGlwDQorR3JhdmVsb3QsIEh1YmVydCBGcmFuw6dvaXMNCitHcmF2ZXMsIEFiYm90dCBGdWxsZXINCitHcmF2ZXMsIEhlbnJ5IFJpY2hhcmQNCitHcmF2ZXMsIE1vcnJpcw0KK0dyYXZlcywgTmFuY3kNCitHcmF2ZXNhbmRlLCBDaGFybGVzIFN0b3JtIHZhbiBTJw0KK0dyYXksIENsZXZlDQorR3JheSwgR3VzdGF2ZSBMZQ0KK0dyYXksIEhlbnJ5IFBlcmN5DQorR3JheSwgSmFjaw0KK0dyYXksIE1hcnkNCitHcmF6aW9zZSwgUGhpbA0KK0dyZWFjZW4sIEVkbXVuZCBXLg0KK0dyZWFjZW4sIE5hbg0KK0dyZWF2ZXMsIFdhbHRlcg0KK0dyZWJiZXIsIFBpZXRlciBkZQ0KK0dyZWNvLCBFbA0KK0dyZWNvLCBFbWlsaW8NCitHcmVlbiwgQWxhbg0KK0dyZWVuLCBBbnRob255DQorR3JlZW4sIEMuRS5MLg0KK0dyZWVuLCBGcmFuayBSdXNzZWxsDQorR3JlZW4sIEhvbWVyDQorR3JlZW4sIFJlbsOpZQ0KK0dyZWVuLCBTYW11ZWwgTS4NCitHcmVlbiwgVmFsZW50aW5lDQorR3JlZW4sIFdhbHRlcg0KK0dyZWVuYW15ZXIsIEdlb3JnZQ0KK0dyZWVuYmxhdCwgUm9kbmV5IEFsYW4NCitHcmVlbmhhbSwgUGV0ZXINCitHcmVlbmhpbGwsIEhhcm9sZA0KK0dyZWVubGVhZiwgQmVuamFtaW4NCitHcmVlbm91Z2gsIEhvcmF0aW8NCitHcmVlbndvb2QsIEpvaG4NCitHcmVldmVzLCBSaWNoYXJkIFYuDQorR3JlZ29yeSwgRWR3YXJkIEpvaG4NCitHcmVnb3J5LCBTaGVpbGENCitHcmVpZmZlbmhhZ2VuLCBNYXVyaWNlIFdpbGxpYW0NCitHcmV1emUsIEplYW4tQmFwdGlzdGUNCitHcmV5LCBBbGV4DQorR3JpYmJyb2VrLCBSb2JlcnQNCitHcmlmZmEsIEdpb3JnaW8NCitHcmlmZmllciB0aGUgRWxkZXIsIEpvaG4NCitHcmlmZmluLCBXYWx0ZXINCitHcmlmZml0aHMsIEphbWVzDQorR3JpZ2dzLCBGcmVkZXJpY2sgTGFuZHNlZXIgTWF1cg0KK0dyaWdncywgTGVlDQorR3JpZ2dzLCBTYW11ZWwgVy4NCitHcmlnb3Jlc2N1LCBOaWNvbGFlDQorR3JpbWFsZGksIEdpb3Zhbm5pIEZyYW5jZXNjbw0KK0dyaW1tLCBTYW11ZWwgSGllcm9ueW1vdXMNCitHcmltbWVyLCBBYmVsDQorR3JpbW91LCBBbGV4aXMNCitHcmltc2hhdywgQXRraW5zb24NCitHcmluYWdlciwgQWxleA0KK0dyaXBwZSwgUGV0ZXINCitHcmlzLCBKdWFuDQorR3JpdHRlbiwgSGVucnkNCitHcm9nYW4sIE5hdGhhbmllbA0KK0dyb2xsLCBBbGJlcnQgTC4NCitHcm9vbXMsIFJlZA0KK0dyb3BwZXIsIFdpbGxpYW0NCitHcm9zLCBBbnRvaW5lLUplYW4NCitHcm9zZSwgSGFycmlldCBFc3RlbGxhDQorR3Jvc3MsIEFudGhvbnkNCitHcm9zcywgQ2hhaW0NCitHcm9zcywgU2lkbmV5DQorR3Jvc3NtYW4sIEVsaWFzIE0uDQorR3Jvc3NtYW5uLCBSdWRvbGYNCitHcm9zc28sIEx1aWdpDQorR3Jvc3osIEdlb3JnZQ0KK0dyb3V4LCBIZW5yeSBkZQ0KK0dydWFtb250ZQ0KK0dydWJlciwgRnJhbmNpcw0KK0dydWVsbGUsIFJpY2hhcmQgQi4NCitHcnVuZXIsIEVsaW90aA0KK0dyw7xuZXdhbGQsIE1hdHRoaWFzDQorR3J1cHDDqSwgRW1pbGUgQS4NCitHcnVwcGUsIFZpcmdpbmlhDQorR3UgTGluc2hpDQorR3UgWXVhbg0KK0d1IFl1bg0KK0d1YWxpdGllcmkgZGkgR2lvdmFubmkgZGEgUGlzYQ0KK0d1YW4gU2hhbnl1ZQ0KK0d1YW4gWmlsYW4NCitHdWFyZGksIEZyYW5jZXNjbw0KK0d1YXJkaSwgR2lhbiBBbnRvbmlvDQorR3VhcmllbnRvIGRpIEFycG8NCitHdWRlLCBIYW5zIEZyZWRyaWsNCitHdWRpbiwgVGjDqW9kb3JlDQorR3XDqXJhcmQsIEV1Z2VuZSB2b24NCitHdWVyY2lubw0KK0d1ZXJpbiwgR2lsbGVzDQorR3XDqXJpbiwgUGllcnJlLU5hcmNpc3NlDQorR3VlcnJlcm8gR2FsdsOhbiwgSmVzw7pzDQorR3VlcnJlcm8gR2FyY8OtYSwgSm9zw6kNCitHdWdsaWVsbWksIEdyZWdvcmlvDQorR3VnbGllbG1pLCBPLiBMb3Vpcw0KK0d1Z2xpZWxtbywgRnJhDQorR3VnbGllbG1vLCBNYXN0cm8NCitHdWlkaSwgRG9tZW5pY28NCitHdWlkaSwgVmlyZ2lsaW8NCitHdWlkbyBkYSBTaWVuYQ0KK0d1aWduZXQsIEFkcmllbg0KK0d1aWdvdSwgUGF1bC1DYW1pbGxlDQorR3VpbGQsIEx1cmVsbGUNCitHdWlsbGFpbiwgU2ltb24NCitHdWlsbGF1bWluLCBBcm1hbmQNCitHdWlsbG91LCBBbGZyZWQNCitHdWlub3ZhcnQgQmVydHJhbiwgSm9zZXANCitHdWlyYW5kIGRlIFNjZXZvbGEsIEx1Y2llbi1WaWN0b3INCitHdWzDoWNzeSwgTGFqb3MNCitHdW50aGVyLCBGcmFueiBJZ25heg0KK0d1byBCaQ0KK0d1cnNjaG5lciwgSGVyYmVydA0KK0d1cnNreSwgQW5kcmVhcw0KK0d1c3RvbiwgUGhpbGlwDQorR3V0aHJpZSwgU2lyIEphbWVzDQorR3V0acOpcnJleiwgSnVhbiBTaW3Ds24NCitHdXRtYW5uLCBCZXJuaGFyZA0KK0d1dG1hbm4sIEpvaG4NCitHdXR0dXNvLCBSZW5hdG8NCitHdXksIEZyYW5jaXMNCitHdXksIFNleW1vdXIgSm9zZXBoDQorR3V5cywgQ29uc3RhbnRpbg0KK0d1eXRvbiwgVHlyZWUNCitHd2F0aG1leSwgUm9iZXJ0DQorR3d5bm5lLUpvbmVzLCBBbGxhbg0KK0d5w6FyZsOhcywgSmVuw7MNCitHeWxlcywgSGVucnkNCitHeW9rdWRvLCBVcmFnYW1pDQorR3lzZWxzLCBQaWV0ZXINCitIYWFnZW4sIEpvcmlzIEFicmFoYW1zei4gdmFuIGRlcg0KK0hhYXJsZW0sIENvcm5lbGlzIENvcm5lbGlzei4gdmFuDQorSGFhcywgTWF1cml0eiBGLkguIERlDQorSGFiZXJsZSwgSm9obg0KK0hhY2thZXJ0LCBKYW4NCitIYWNrZXIsIEFydGh1cg0KK0hhY2tlcnQsIEphY29iIFBoaWxpcHBlDQorSGFkZG9jaywgQS4NCitIYWRlbiwgU2lyIEZyYW5jaXMgU2V5bW91cg0KK0hhZXMsIENhcmxvcyBkZQ0KK0hhaG4sIEVtYW51ZWwNCitIYWhuLCBHdXN0YXYNCitIYWhuLCBIZXJiZXJ0IEMuDQorSGFobiwgV2lsbGlhbQ0KK0hhaWQsIEpvaGFubiBMb3JlbnoNCitIYWlsZSwgU2FtdWVsDQorSGFsZSwgRWR3YXJkIE1hdHRoZXcNCitIYWxlLCBFbGxlbiBEYXkNCitIYWxlLCBKb3NlcGhpbmUNCitIYWxlLCBMaWxpYW4gV2VzdGNvdHQNCitIYWxlLCBQaGlsaXAgTGVzbGllDQorSGFsbCAxNzM5LTE3OTcsIEpvaG4NCitIYWxsIDE4ODUsIERvdWdsYXMNCitIYWxsLCBBbm4NCitIYWxsLCBCZXJuYXJkDQorSGFsbCwgQ3lyZW5pdXMNCitIYWxsLCBEb3VnDQorSGFsbCwgR2VvcmdlIEhlbnJ5DQorSGFsbCwgSGFycnkNCitIYWxsLCBKb2huDQorSGFsbCwgUGFtDQorSGFsbMOpLCBFZHdhcmQgQ2hhcmxlcw0KK0hhbGxlbiwgQW1icm9zZQ0KK0hhbGxleSwgUGV0ZXINCitIYWxsaWRheSwgRWR3YXJkIElydmluZQ0KK0hhbHMsIERpcmsNCitIYWxzLCBGcmFucw0KK0hhbHNtYW4sIFBoaWxpcHBlDQorSGFsc3dlbGxlLCBLZWVsZXkNCitIYW1ibGluLCBTdHVydGV2YW50IEouDQorSGFtZW4geSBMZcOzbiwgSnVhbiB2YW4gZGVyDQorSGFtaWx0b24sIEFubg0KK0hhbWlsdG9uLCBHYXZpbg0KK0hhbWlsdG9uLCBHYXdlbg0KK0hhbWlsdG9uLCBHcmFudA0KK0hhbWlsdG9uLCBIYW1pbHRvbg0KK0hhbWlsdG9uLCBIdWdoIERvdWdsYXMNCitIYW1pbHRvbiwgSmFtZXMNCitIYW1pbHRvbiwgSnVhbg0KK0hhbWlsdG9uLCBNYXJ5IFJpdGVyDQorSGFtaWx0b24sIE1pa2UNCitIYW1pbHRvbiwgUmljaGFyZA0KK0hhbWlsdG9uLCBXaWxsaWFtDQorSGFtbWVyc2jDuGksIFZpbGhlbG0NCitIYW1tb25kLCBKYW5lDQorSGFtbW9ucywgRGF2aWQNCitIYW1vbiwgSmVhbi1Mb3Vpcw0KK0hhbiBHYW4NCitIYW5mc3RhZW5nbCwgRHJlc2Rlbg0KK0hhbmlhcywgSm9oYW5uZXMNCitIYW5rZXksIFdpbGxpYW0gTGVlDQorSGFubmVtYW4sIEFkcmlhZW4NCitIYW5ub2NrLCBTdGVwaGVuDQorSGFuc2VuLCBBcm1pbiBDYXJsDQorSGFuc2VuLCBDb25zdGFudGluDQorSGFuc2VuLCBTdmVuZCBXaWlnDQorSGFuc29uLCBEdWFuZQ0KK0hhb3pvdXMsIEJvYg0KK0hhcmNvdXJ0LCBHZW9yZ2UNCitIYXJkaWUsIE1hcnRpbg0KK0hhcmRpbmcsIENoYXJsZXMgU3Rld2FydA0KK0hhcmRpbmcsIENoZXN0ZXINCitIYXJkaW5nLCBHZW9yZ2UgUGVyZmVjdA0KK0hhcmRpbmcsIEphbWVzIER1ZmZpZWxkDQorSGFyZGluZywgU3lsdmVzdGVyDQorSGFyZHJpY2ssIEpvaG4gV2VzbGV5DQorSGFyZHdpY2ssIEFsaWNlDQorSGFyZHdpY2ssIE1lbGJvdXJuZQ0KK0hhcmR5LCBBbm5hIEVsaXphDQorSGFyZHksIEhleXdvb2QNCitIYXJlLCBEYXZpZA0KK0hhcmZvcmQsIEpvaG4gU2NhbmRyZXR0DQorSGFyaW5nLCBLZWl0aA0KK0hhcmxvdywgR2VvcmdlIEhlbnJ5DQorSGFybmV0dCwgV2lsbGlhbSBNaWNoYWVsDQorSGFycGVyLCBIZW5yeSBBbmRyZXcNCitIYXJwaWduaWVzLCBIZW5yaS1Kb3NlcGgNCitIYXJyaWNoLCBKb2JzdA0KK0hhcnJpZXMsIE1hZ3MNCitIYXJyaXMsIEJvYg0KK0hhcnJpcywgSm9obg0KK0hhcnJpcywgTGF3cmVuIFMuDQorSGFycmlzLCBSb2JlcnQNCitIYXJyaXMsIFNhbSBIeWRlDQorSGFycmlzb24sIEguQi4NCitIYXJyaXNvbiwgVC4gQWxleGFuZGVyDQorSGFycmlzb24sIFdhbGxhY2UNCitIYXJ0LCBGcmVkZXJpY2sNCitIYXJ0LCBKYW1lcyBNY0RvdWdhbA0KK0hhcnQsIExldGl0aWEgQm9ubmV0DQorSGFydCwgJ1BvcCcNCitIYXJ0LCBTb2xvbW9uIEFsZXhhbmRlcg0KK0hhcnQsIFdpbGxpYW0NCitIYXJ0aWdhbiwgR3JhY2UNCitIYXJ0bGV5LCBKLiBTY290dA0KK0hhcnRsZXksIE1hcnNkZW4NCitIYXJ0cmF0aCwgTHVjaWUNCitIYXJ0dW5nLCBIYW5zDQorSGFydW5vYnUNCitIYXJ1c2hpZ2UsIFN1enVraQ0KK0hhcnZleSwgQnVubnkNCitIYXJ2ZXksIEhlcmJlcnQgSm9obnNvbg0KK0hhcnZleSwgV2lsbGlhbQ0KK0hhcndvb2QsIEZyYW5jaXMNCitIYXJ3b29kLCBKYW1lcyBUYXlsb3INCitIYXNlZ2F3YSBUb2hha3UNCitIYXNlbHRpbmUsIFdpbGxpYW0gU3RhbmxleQ0KK0hhc2hhZ2VuLCBBLg0KK0hhc2hpbW90bywgT2tpaWUNCitIYXNrZWxsLCBFcm5lc3QNCitIYXNzYW0sIENoaWxkZQ0KK0hhc3NlbGwsIEpvaG4NCitIYXN1aSwgS2F3YXNlDQorSGF0Y2gsIEppbQ0KK0hhdGNoZXIsIEJyb3dlcg0KK0hhdG91bSwgTW9uYQ0KK0hhdHQsIEVtaWxpZSBEZW1hbnQNCitIYXVlciwgU3RhbmxleQ0KK0hhdWdodG9uLCBNYXR0aGV3DQorSGF1cGVycywgQ2xlbWVudA0KK0hhdXNtYW5uLCBSYW91bA0KK0hhdmVsLCBKb3NlcGgNCitIYXZlbGwsIFJvYmVydA0KK0hhdmVsbCwgV2lsbGlhbQ0KK0hhdmVucywgTGVvbmFyZCBNLg0KK0hhd2tpbnMsIEJhc2lsDQorSGF3a2lucywgSGVucnkNCitIYXdraW5zLCBMb3VpcyBXZWxkZW4NCitIYXd0aG9ybmUsIENoYXJsZXMgV2Vic3Rlcg0KK0hheHRvbiwgRWxhaW5lDQorSGF5LCBHaWxiZXJ0DQorSGF5ZGVuLCBIZW5yaQ0KK0hheWRvbiwgQmVuamFtaW4gUm9iZXJ0DQorSGF5ZXMsIEVkd2luDQorSGF5ZXMsIEdlb3JnZSBBLg0KK0hheWV6LCBGcmFuY2VzY28NCitIYXlscywgSm9obg0KK0hheW1hbiwgRnJhbmNpcw0KK0hheW5lcywgRG91Z2xhcyBIZWN0b3INCitIYXluZXMsIEYuIEpheQ0KK0hheW5lcy1XaWxsaWFtcywgSm9obg0KK0hheW5pZSwgS2VpdGgNCitIYXlzLCBXaWxsaWFtIEphY29iDQorSGF5dGVyLCBKb2huDQorSGF5dGVyLCBTaXIgR2VvcmdlDQorSGF5dGVyLCBTdGFubGV5IFdpbGxpYW0NCitIYXl0bGV5LCBFZHdhcmQNCitIYXplbHRvbiwgTWFyeSBCcmV3c3Rlcg0KK0hlIEJhaXRhbw0KK0hlIEtvbmdkZQ0KK0hlIFRpYW5qaWFuDQorSGVhZCwgR3V5DQorSGVhZCwgVGltDQorSGVhZGUsIE1hcnRpbiBKb2huc29uDQorSGVhbHksIEdlb3JnZSBQLkEuDQorSGVhbmV5LCBDaGFybGVzDQorSGVhcGh5LCBUaG9tYXMNCitIZWFybmUsIFRob21hcw0KK0hlYXJ0ZmllbGQsIEpvaG4NCitIZWF0aCwgSGVucnkNCitIZWF0aCwgV2lsbGlhbQ0KK0hlYXZ5U2hpZWxkLCBGYXllDQorSMOpYmVydCwgQWRyaWVuDQorSMOpYmVydCwgRXJuZXN0DQorSMOpYmVydCwgUGllcnJlLUV1Z8OobmUtRW1pbGUNCitIZWNrZWwsIEVyaWNoDQorSGVja2VuLCBBYnJhaGFtIHZhbiBkZXINCitIZWNrbWFuLCBBbGJlcnQNCitIZWRhLCBHZXJyZXQgV2lsbGVtc3ouDQorSGVkYSwgV2lsbGVtIENsYWVzei4NCitIZWVtLCBDb3JuZWxpcyBkZQ0KK0hlZW0sIEphbiBEYXZpZHN6LiBkZQ0KK0hlZW0sIEphbiBKYW5zei4gZGUNCitIZWVtc2tlcmNrLCBNYWVydGVuIHZhbg0KK0hlZ2VkdXMsIExhc3psbw0KK0hlaWwsIERhbmllbCB2YW4NCitIZWlsYnV0aCwgRmVyZGluYW5kDQorSGVpbG1hbm4sIE1hcnkNCitIZWltLCBGcmFuw6dvaXMtSm9zZXBoDQorSGVpbWxpY2gsIEhlcm1hbg0KK0hlaW50eiwgSm9zZXBoDQorSGVpbnR6ZWxtYW4sIEFydGh1ciBXaWxsaWFtDQorSGVpemVyLCBNaWNoYWVsDQorSGVqZHVrLCBKb2huDQorSGVsZCBKci4sIEpvaG4NCitIZWxkLCBBbA0KK0hlbGQsIE1hcmlvbg0KK0hlbGRlciwgWmFtYSBWLg0KK0hlbGxlciwgSGVsZW4gV2VzdA0KK0hlbG0sIEFsaXNvbg0KK0hlbG1icmVrZXIsIERpcmsNCitIZWxtaWNrLCBSYWxwaA0KK0hlbHN0LCBCYXJ0aG9sb21ldXMgdmFuIGRlcg0KK0hlbHplciwgUmljaGFyZA0KK0hlbWVzc2VuLCBDYXRlcmluYSB2YW4NCitIZW1lc3NlbiwgSmFuIFNhbmRlcnMgdmFuDQorSGVtaW5nLCBBcnRodXINCitIZW15LCBDaGFybGVzIE5hcGllcg0KK0hlbmRlcnNvbiwgQ2hhcmxlcyBDb29wZXINCitIZW5kZXJzb24sIEpvaG4NCitIZW5kZXJzb24sIEpvc2VwaA0KK0hlbmRlcnNvbiwgTmlnZWwNCitIZW5kcmlja3NvbiwgRGFuaWVsDQorSGVubmVyLCBKZWFuLUphY3F1ZXMNCitIZW5uZXNzeSwgV2lsbGlhbSBKb2huDQorSGVubmluZ3MsIEUuIE1hcnRpbg0KK0hlbnJpLCBSb2JlcnQNCitIZW5yeSwgRWR3YXJkIExhbXNvbg0KK0hlbnNlbCwgU2Fsb21lDQorSGVwaGVyLCBEYXZpZA0KK0hlcHdvcnRoLCBCYXJiYXJhDQorSGVyYmVydCwgSm9obiBSb2dlcnMNCitIZXJiaW4sIEF1Z3VzdGUNCitIZXJsaWNrLCBHZW9yZ2UNCitIZXJuYW5kZXogUGlqdWFuLCBKb2FuDQorSGVyb24sIFBhdHJpY2sNCitIZXJyw6FuLCBTYXR1cm5pbm8NCitIZXJyZXJhIEJhcm51ZXZvLCBTZWJhc3RpYW4gZGUNCitIZXJyZXJhIHRoZSBZb3VuZ2VyLCBGcmFuY2lzY28gZGUNCitIZXJyaW5nLCBKb2huIEZyZWRlcmljaw0KK0hlcnRlciwgQWxiZXJ0DQorSGVydGhlbCwgTHVkd2lnDQorSGVydGxlLCBKYW1lcw0KK0hlcnpvZywgSGVybWFuDQorSGVzc2UsIEV2YQ0KK0hlc3NlbGl1cywgSm9obg0KK0hlc3NpbmcsIFZhbGplYW4NCitIZXdhcmQsIFBydWRlbmNlDQorSGV5LCBKZWFuDQorSGV5Ym9lciwgQW50b24NCitIZXlkZW4sIEphbiB2YW4gZGVyDQorSGV5ZGVuLCBQaWV0ZXIgdmFuIERlcg0KK0hleW5zaXVzLCBLZWVzDQorSGV5c2VuLCBIYW5zDQorSGV5d29vZCwgSi5DLg0KK0hpY2ssIEphY3F1ZWxpbmUNCitIaWNrZXksIERhbGUNCitIaWNrZXksIFRob21hcw0KK0hpY2tveCwgRWxpemFiZXRoDQorSGlja3MsIEVkd2FyZA0KK0hpY2tzLCBHZW9yZ2UgRWxnYXINCitIaWNrcywgU2hlaWxhDQorSGlja3MsIFRob21hcw0KK0hpY2tzLCBXaWxsaWFtDQorSGlkYWxnbywgSnVhbg0KK0hpZ2dpbnMgSUlJLCBFZHdhcmQgRi4NCitIaWdnaW5zLCBFdWdlbmUNCitIaWdnaW5zLCBWaWN0b3INCitIaWdobW9yZSwgSm9zZXBoDQorSGlnaHN0ZWluLCBKZW5lDQorSGlsZGVicmFuZHQsIEVkd2FyZA0KK0hpbGVyLCBIaWxhaXJlDQorSGlsbCwgQW50aG9ueQ0KK0hpbGwsIENhcmwgRnJlZHJpaw0KK0hpbGwsIERhdmlkIE9jdGF2aXVzDQorSGlsbCwgSm9obg0KK0hpbGwsIEpvaG4gV2lsbGlhbQ0KK0hpbGwsIFRob21hcw0KK0hpbGxpYXJkLCBOaWNob2xhcw0KK0hpbGxpZXIsIFRyaXN0cmFtDQorSGlsbGluZywgSm9obg0KK0hpbGxzLCBBbm5hIEFsdGhlYQ0KK0hpbGxzLCBMYXVyYSBDb29tYnMNCitIaWxscywgUm9iZXJ0DQorSGlsdG9uIHRoZSBZb3VuZ2VyLCBXaWxsaWFtDQorSGlsdG9uLCBSb2dlcg0KK0hpbWlkLCBMdWJhaW5hDQorSGluZCwgV2lsbGlhbSBHLlIuDQorSGluZSwgTGV3aXMgV2lja2VzDQorSGlua2xlLCBDbGFyZW5jZQ0KK0hpcmF0c3VrYSwgVW4naWNoaQ0KK0hpcm9ha2ksIE1vcmlubw0KK0hpcm9zYWRhDQorSGlyb3NoaWdlIElJDQorSGlyb3NoaWdlLCBBbmRvDQorSGlyc2NoLCBKb3NlcGgNCitIaXJzY2h2b2dlbCB0aGUgRWxkZXIsIFZlaXQNCitIaXJzY2h2b2dlbCwgQXVndXN0aW4NCitIaXJzdCwgQ2xhdWRlIFJhZ3VldA0KK0hpcnN0LCBEYW1pZW4NCitIaXJzemVuYmVyZywgU2FtdWVsDQorSGl0Y2hjb2NrLCBHZW9yZ2UNCitIaXRjaGNvY2ssIEhhcm9sZA0KK0hpdGNoZW5zLCBJdm9uDQorSG5pemRvdnNreSwgSmFjcXVlcw0KK0hvYXJlLCBQcmluY2UNCitIb2FyZSwgU2lyIFJpY2hhcmQgQ29sdA0KK0hvYXJlLCBXaWxsaWFtDQorSG9iYmVtYSwgTWVpbmRlcnQNCitIw7ZjaCwgSGFubmFoDQorSG9ja2luZywgUm9iZXJ0DQorSG9ja25leSwgRGF2aWQNCitIb2RnZXMsIEppbQ0KK0hvZGdlcywgV2lsbGlhbQ0KK0hvZGdraW4sIEhvd2FyZA0KK0hvZGdraW5zLCBGcmFuY2VzDQorSG9kbGVyLCBGZXJkaW5hbmQNCitIb2VjaywgUmljaGFyZA0KK0hvZWNrZSwgSmFuIHZhbiBkZW4NCitIb2VmbmFnZWwsIEpvcmlzDQorSG9lcm1hbiwgQ2FybA0KK0hvZmVyLCBDYXJsDQorSG9mZiwgUmF5bmVyDQorSG9mZmJhdWVyLCBDaGFybGVzDQorSG9mZm1hbiwgSXJ3aW4NCitIb2ZmbWFuLCBNYWx2aW5hDQorSG9mZm1hbm4sIEhhbnMNCitIb2ZmbWVpc3RlciwgR2VvcmdlDQorSG9mbGFuZCwgVGhvbWFzIENocmlzdG9waGVyDQorSG9mbWFubiwgQ2hhcmxlcyBDLg0KK0hvZm1hbm4sIEhhbnMNCitIb2ZtZWlzdGVyLCBBbmRyZXcNCitIb2dhcnRoLCBXaWxsaWFtDQorSG9nZXJzLCBKYWNvYg0KK0hvZ3VlLCBBbGV4YW5kcmUNCitIb2luLCBDbGF1ZGUNCitIb2l0LCBBbGJlcnQgR2FsbGF0aW4NCitIb2t1ZWkNCitIb2t1c2FpIEthdHN1c2hpa2ENCitIb2xiZWluIHRoZSBFbGRlciwgSGFucw0KK0hvbGJlaW4gdGhlIFlvdW5nZXIsIEhhbnMNCitIb2xiZWluLCBBbWJyb3NpdXMNCitIb2xiZXJnLCBSdXRoIExhbmdsYW5kDQorSG9sY29tYiwgQWxpY2UNCitIb2xkc3RvY2ssIEFsZnJlZCBXLg0KK0hvbGdhdGUsIEVkd2luDQorSG9saWRheSwgSGVucnkNCitIb2xsLCBGcmFuaw0KK0hvbGxhbmQsIEphbWVzDQorSG9sbGFuZCwgVGlzaA0KK0hvbGxhciwgV2VuY2VzbGF1cw0KK0hvbGzDs3N5LCBTaW1vbg0KK0hvbG0sIEp1bGl1cw0KK0hvbG1hbiwgRnJhbmNpcw0KK0hvbG1lcywgS2VubmV0aA0KK0hvbG1lcywgTWVsdmlsbGUNCitIb2xtZXMsIFRpbQ0KK0hvbG91biwgSGFsDQorSG9scm95ZCwgU2lyIENoYXJsZXMNCitIb2xzbWFuLCBFbGl6YWJldGggVC4NCitIb2x0LCBOYW5jeQ0KK0hvbHplciwgSmVubnkNCitIb21lciwgV2luc2xvdw0KK0hvbidhbWkgS29ldHN1DQorSG9uZGl1cyB0aGUgRWxkZXIsIEhlbmRyaWsNCitIb25kaXVzLCBBYnJhaGFtDQorSG9uZSwgTmF0aGFuaWVsDQorSG/DsWdlZcO9ZXNhDQorSG9uZy1Kb28sIEtpbQ0KK0hvbmdyZW4NCitIb250aG9yc3QsIEdlcnJpdCB2YW4NCitIb29jaCwgUGlldGVyIGRlDQorSG9vZCwgUmF5bW9uZA0KK0hvb2dzdHJhdGVuLCBTYW11ZWwgdmFuDQorSG9vaywgRHIuIFJpY2hhcmQNCitIb29rLCBKYW1lcyBDbGFya2UNCitIb29rLCBXYWx0ZXINCitIb3BmZXIsIERhbmllbA0KK0hvcGZlciwgSGllcm9ueW1vdXMNCitIb3BraW5zLCBGcmFuY2VzIEFubmUNCitIb3BraW5zLCBKYW1lcyBSLg0KK0hvcGtpbnMsIE1pbHRvbiBXLg0KK0hvcHBlciwgRWR3YXJkDQorSG9wcG5lciwgSm9obg0KK0hvcHdvb2QsIEhlbnJ5IFNpbGtzdG9uZQ0KK0hvcmVtYW5zIHRoZSBFbGRlciwgSmFuIEpvc2VmDQorSG9yaSwgVGV0c3V6YW4NCitIb3JuLCBSZWJlY2NhDQorSG9ybiwgUm9uaQ0KK0hvcm5lYm91dCwgR2VyYXJkDQorSG9ybnVuZywgUHJlYmVuDQorSG9yc2xleSwgSm9obiBDYWxsY290dA0KK0hvcnRvbiwgV2lsbGlhbSBTYW11ZWwNCitIb3NraW5zLCBKb2huDQorSG9zbWVyLCBIYXJyaWV0IEdvb2RodWUNCitIb3UgTW91Z29uZw0KK0hvdSBZaW1pbg0KK0hvdWFzc2UsIE1pY2hlbC1BbmdlDQorSG91YnJha2VuLCBKYWNvYnVzDQorSG91ZG9uLCBKZWFuLUFudG9pbmUNCitIb3VlbCwgSmVhbg0KK0hvdWdodG9uLCBBcnRodXIgQm95ZA0KK0hvdXNlLCBHb3Jkb24NCitIb3VzZSwgU2V0aA0KK0hvdXNlciwgQWxsYW4NCitIb3VzaGlhcnksIFNoaXJhemVoDQorSG92ZW5kZW4sIFRob21hcw0KK0hvdmV5LCBPdGlzDQorSG93YXJkLCBCZXNzaWUgSmVhbm5ldHRlDQorSG93YXJkLCBEYW4NCitIb3dhcmQsIEVkaXRoIEx1Y2lsZQ0KK0hvd2FyZCwgSm9zZXBoDQorSG93ZSwgT3NjYXINCitIb3dpdHQsIFNhbXVlbA0KK0hvd2xldHQsIFJvYmVydA0KK0hveWxhbmQsIEpvaG4NCitIcm9uLCBWaW5jZW50DQorSHUgWWljaHVhbg0KK0h1IFl1YW4NCitIdWEgWWFuDQorSHVhbmcgQmluaG9uZw0KK0h1YW5nIExpemhlbg0KK0h1YW5nIFhpbmJvDQorSHVhbmcgWmhvdQ0KK0h1YmJhcmQsIEpvaG4NCitIdWJiYXJkLCBXaGl0bmV5DQorSHViYmVsbCwgSGVucnkgU2FsZW0NCitIdWJlciwgV29sZg0KK0h1ZHNvbiwgR3JhY2UgQ2FycGVudGVyDQorSHVkc29uLCBIZW5yeSBKLg0KK0h1ZHNvbiwgVGhvbWFzDQorSHVldCwgSmVhbi1CYXB0aXN0ZSBNYXJpZQ0KK0h1ZXQsIFBhdWwNCitIdWZmbWFuLCBMYXRvbiBBbHRvbg0KK0h1Z2UsIEp1cmdhbiBGcmVkZXJpY2sNCitIdWdnaW5zLCBXaWxsaWFtDQorSHVnZ2lucywgV2lsbGlhbSBKb2huDQorSHVnaGVzLCBBcnRodXINCitIdWdoZXMsIENvcm5lbGl1cyBKYWJleg0KK0h1Z2hlcywgRWR3YXJkIFJvYmVydA0KK0h1Z2hlcywgUGF0cmljaw0KK0h1Z28sIEplYW4NCitIdWdvLCBWYWxlbnRpbmUNCitIdWdvLCBWaWN0b3INCitIdWdvbmluLCBKYW1lcw0KK0h1Z3VlLCBNYW51ZWwNCitIdWd1ZXQsIEphdW1lDQorSHVpbGxpb3QsIFBpZXJyZSBOaWNvbGFzDQorSHVpem9uZywgRW1wZXJvcg0KK0h1bGwsIEx5bm5lDQorSHVsbCwgTWFyaWUgQXRraW5zb24NCitIdW1waHJleSwgSmFjaw0KK0h1bXBocmV5LCBSYWxwaA0KK0h1bXBocmV5LCBUb20NCitIdW1waHJleXMsIENoYXJsZXMgUy4NCitIdW5kZXJ0d2Fzc2VyDQorSHVuZyBMaXUNCitIdW50LCBBbGZyZWQgV2lsbGlhbQ0KK0h1bnQsIEFsaWNlDQorSHVudCwgQnJ5YW4NCitIdW50LCBDYWx2aW4NCitIdW50LCBFc3RoZXIgQW5uYQ0KK0h1bnQsIE1hYmVsbGUgQWxjb3R0DQorSHVudCwgUmljaGFyZA0KK0h1bnQsIFRvbW15DQorSHVudCwgV2lsbGlhbSBIZW5yeQ0KK0h1bnQsIFdpbGxpYW0gSG9sbWFuDQorSHVudCwgV2lsbGlhbSBNb3JyaXMNCitIdW50ZXIsIENvbGluDQorSHVudGVyLCBHZW9yZ2UgTGVzbGllDQorSHVudGluZ3RvbiwgQW5uYSBWLiBIeWF0dA0KK0h1bnRpbmd0b24sIERhbmllbA0KK0h1bnRpbmd0b24sIEVsaXphYmV0aCBIYW1pbHRvbg0KK0h1bnRpbmd0b24sIEppbQ0KK0h1bnRsZXksIFZpY3RvcmlhIEh1dHNvbg0KK0h1bnRvb24sIE1hcnkNCitIdXJkLCBQZXRlcg0KK0h1cmxzdG9uZSwgRnJlZGVyaWNrIFllYXRlcw0KK0h1cnJlbGwsIEdlb3JnZQ0KK0h1c2FpbiwgTS5GLg0KK0h1c3NleSwgR2lsZXMNCitIdXN0d2ljaywgQy4NCitIdXRpbiwgQ2hhcmxlcy1GcmFuw6dvaXMNCitIdXR0eSwgQWxmcmVkIEhlYmVyDQorSHV5c21hbnMsIENvcm5laWxsZQ0KK0h1eXNtYW5zLCBKYWNvYg0KK0h1eXNtYW5zLCBKZWFuLUJhcHRpc3RlDQorSHV5c3VtLCBKYW4gdmFuDQorSHlkZSwgSGVsZW4NCitIeW8tam9vbmcsIFl1bg0KK0lhbmVsbGksIEFyY8OibmdlbG8NCitJYmJldHNvbiwgSnVsaXVzIENhZXNhcg0KK0liZWxzLCBIZW5yaSBHYWJyaWVsDQorSWNhemEsIEVybmVzdG8NCitJaGFyYSwgTWljaGlvDQorSWhsZSwgSm9obg0KK0lrZS1uby1UYWlnYQ0KK0ltYmVyLCBKb25hdGhhbg0KK0ltbWVuZG9yZmYsIEpvZXJnDQorSW1tZW5yYWV0LCBQaGlsaXBwZS1BdWd1c3Rpbg0KK0luY2UsIEpvc2VwaCBNdXJyYXkNCitJbmNoYm9sZCwgSm9obiBXaWxsaWFtDQorSW5kaWFuYSwgUm9iZXJ0DQorSW4tZHUsIEhhDQorSW5naGFtLCBDaGFybGVzIENyb213ZWxsDQorSW5nbMOpcywgSm9yZ2UNCitJbmdyZXMsIEplYW4tQXVndXN0ZS1Eb21pbmlxdWUNCitJbm1hbiwgSGVucnkNCitJbm5lcywgSmFtZXMgRGlja3Nvbg0KK0lubmVzcywgR2VvcmdlDQorSW5ub2NlbnpvIGRhIEltb2xhDQorSW5zY3JpcHRpb24gUGFpbnRlciwgVGhlDQorSW51cnJpYSwgTWF0ZW8NCitJbnphLCBKb2FxdcOtbg0KK0lydmluLCBBbGJlcnQNCitJcnZpbmUsIFdpbHNvbg0KK0lyd2luLCBSb2JlcnQNCitJc2FiZXksIEV1Z8OobmUNCitJc2FiZXksIEplYW4gQmFwdGlzdGUNCitJc2VuYnJhbnQsIEFkcmlhZW4NCitJc2hpa2F3YSBLb21laQ0KK0lza293aXR6LCBHZXJzaG9uDQorSXNyYWVscywgSXNhYWMNCitJc3Jhw6tscywgSm96ZWYNCitJdG8gSmFrdWNodQ0KK0l0dGVuLCBKb2hhbm5lcw0KK0l0dGVuYmFjaCwgRnJhbnoNCitJdmFub3YsIEFsZXhhbmRlcg0KK0l2YW5vdiwgQW5kcmVpDQorSXZhbm92LCBTZXJnZWkNCitJdmFub3YsIFZpY3Rvcg0KK0l2ZXJueSwgSmFjcXVlcw0KK0l2ZXMsIENoYXVuY2V5IEIuDQorSXpxdWllcmRvLCBNYXLDrWENCitKYWNrLCBNYWJlbCBXZWxsaW5ndG9uDQorSmFjaywgUmljaGFyZA0KK0phY2tzb24sIEEuWS4NCitKYWNrc29uLCBCaWxseSBNb3Jyb3cNCitKYWNrc29uLCBHaWxiZXJ0DQorSmFja3NvbiwgSm9obg0KK0phY2tzb24sIFNhbXVlbCBQaGlsbGlwcw0KK0phY2tzb24sIFdpbGxpYW0gSGVucnkNCitKYWNvYi1EZXNtYWx0ZXIsIEZyYW7Dp29pcy1Ib25vcsOpLUdlb3JnZXMNCitKYWNvYmVsbG8gRGVsIEZpb3JlDQorSmFjb2JpLCBPdHRvDQorSmFjb2JzZW4sIEFudG9uaW8NCitKYWNvYnNoYWdlbiwgS2VpdGgNCitKYWNvYnNvbiwgSmFrZQ0KK0phY29ic3osIERpcmNrDQorSmFjb2JzeiwgTGFtYmVydA0KK0phY29tZXR0bw0KK0phY29waW5vIGRlbCBDb250ZQ0KK0phY29wbyBkZWwgU2VsbGFpbw0KK0phY29wbyBkaSBDaW9uZQ0KK0phY29wbyBkaSBEb21lbmljbyBGb3NjaGkNCitKYWNvcG8gTml6em9sYSBkYSBUcmV6em8NCitKYWNvcG8sIE1lbGlvcmUgZGkNCitKYWNvdWxldCwgUGF1bA0KK0phY3F1YW5kLCBDbGF1ZGl1cw0KK0phY3F1ZSwgQ2hhcmxlcyDDiW1pbGUNCitKYWNxdWVtYXJ0IGRlIEhlc2Rpbg0KK0phY3F1ZW1hcnQsIEp1bGVzIEZlcmRpbmFuZA0KK0phY3F1ZW1pbiwgSmVhbm5lDQorSmFjcXVldCwgTWF0aGlldQ0KK0phY3F1ZXR0ZSwgWXZvbm5lDQorSmFmZmVlLCBKYXkNCitKYWxhYmVhdCwgQ2hhcmxlcyBGcmFuw6dvaXMNCitKYW1lcywgQWxleGFuZGVyDQorSmFtZXMsIEFsaWNlIEFyY2hlcg0KK0phbWVzLCBGcmVkZXJpY2sNCitKYW1lcywgUmViZWNjYSBTYWxzYnVyeQ0KK0phbWVzLCBXaWxsDQorSmFtZXNvbiwgQW5uZSBCcm93bmVsbA0KK0phbWllc29uLCBCZXJuaWNlIEV2ZWx5bg0KK0phbWllc29uLCBNaXRjaGVsbA0KK0phbWluLCBQYXVsDQorSmFuaW5ldCwgSmVhbi1GcmFuw6dvaXMNCitKYW5vd2l0eiwgSm9lbA0KK0phbnNlbiwgRnJhbnogTS4NCitKYW5zc2VucywgQWJyYWhhbQ0KK0phbnNzb24sIEV1Z2VuZQ0KK0phbnZpZXIsIEFsZXgNCitKYXJ2aXMsIENoYXJsZXMgV2VzbGV5DQorSmFydmlzLCBKb2huIFdlc2xleQ0KK0phd2xlbnNreSwgQWxleGVpDQorSmVhbiBkZSBMacOoZ2UNCitKZWFuIGRlIFRvdXlsDQorSmVhbm5lLUNsYXVkZQ0KK0plYXVyYXQsIMOJdGllbm5lDQorSmVmZmVyeXMsIEphbWVzDQorSmVmZnJpZXMsIEppbQ0KK0plZ2hlciwgQ2hyaXN0b2ZmZWwNCitKZW5raW5zLCBQYXVsDQorSmVubmV3ZWluLCBDLiBQYXVsDQorSmVubmV5LCBOZWlsDQorSmVubnlzLCBXaWxsaWFtDQorSsOpbm90LCBQYXVsaW4NCitKZW5zZW4sIEFsZnJlZA0KK0plbnNlbiwgQ2hyaXN0aWFuIEFsYnJlY2h0DQorSmVuc3NlbiwgT2xhdiBDaHJpc3RvcGhlcg0KK0plcnJ5IEtydXNzDQorSmVzcw0KK0plc3N1cCwgUm9iZXJ0DQorSmV3ZWxsLCBSb24NCitKZXdldHQsIFdpbGxpYW0NCitKaSwgQnl1biBTaGkNCitKaWEgWW91ZnUNCitKaWFuZyBGZW5nDQorSmlhbmcgVGluZ3hpDQorSmloZWksIFN1Z2ltdXJhDQorSmltw6luZXogQXJhbmRhLCBMdWlzDQorSmltw6luZXosIEx1aXMNCitKaW4gU2hhbmd5aQ0KK0ppbi1reXUsIEt3b24NCitKb2NlbHluLCBOYXRoYW5pZWwNCitKb2hhbm5vdCwgQW50b2luZQ0KK0pvaG4sIEF1Z3VzdHVzDQorSm9obiwgR3dlbg0KK0pvaG4sIFBoaWxpcA0KK0pvaG5zLCBKYXNwZXINCitKb2huc2dhcmQsIFBhdWwNCitKb2huc29uIEpyLiwgSi4gU2V3YXJkDQorSm9obnNvbiwgQ2hhcmxlcyBFZHdhcmQNCitKb2huc29uLCBDb3JuZWxpdXMNCitKb2huc29uLCBEYXZpZA0KK0pvaG5zb24sIEVhc3RtYW4NCitKb2huc29uLCBGcmFuayBUZW5uZXkNCitKb2huc29uLCBJc2FiZWxsZQ0KK0pvaG5zb24sIEpvc2h1YQ0KK0pvaG5zb24sIFBoaWxpcA0KK0pvaG5zb24sIFJhZQ0KK0pvaG5zb24sIFJheW1vbmQNCitKb2huc29uLCBTYXJnZW50IENsYXVkZQ0KK0pvaG5zb24sIFdpbGxpYW0gSC4NCitKb2huc29uLUNhbGxvd2F5LCBNYXJpZQ0KK0pvaG5zdG9uLCBGcmFuaw0KK0pvaG5zdG9uLCBKb2huDQorSm9obnN0b24sIFluZXoNCitKb2xpLCBBbnRvbmlvDQorSm9sbGFpbiwgTmljb2xhcy1SZW7DqQ0KK0pvbmFzLCBMb3VpcyBQYXVsDQorSm9uZXMsIEFsbGVuDQorSm9uZXMsIEJlbg0KK0pvbmVzLCBCcmFkbGV5DQorSm9uZXMsIERhdmlkDQorSm9uZXMsIEZheQ0KK0pvbmVzLCBGcmFuY2lzIENvYXRlcw0KK0pvbmVzLCBHZW9yZ2UNCitKb25lcywgSHVnaCBCb2x0b24NCitKb25lcywgSm9lDQorSm9uZXMsIExvw69zIE1haWxvdQ0KK0pvbmVzLCBMdXRoZXINCitKb25lcywgTWlsZHJlZA0KK0pvbmVzLCBOZWxsIENob2F0ZQ0KK0pvbmVzLCBUaG9tYXMNCitKb25lcywgV2lsbGlhbQ0KK0pvbmdoLCBMdWRvbGYgTGVlbmRlcnRzei4gZGUNCitKb25nLUhhaywgS2ltDQorSm9uZ2hlbGluY2ssIEphY3F1ZXMNCitKb25na2luZCwgSm9oYW4gQmFydGhvbGQNCitKb25zb24sIFJheW1vbmQNCitKw7Nuc3Nvbiwgw4FzZ3LDrW11cg0KK0pvbywgTWljaGFlbA0KK0pvb3MgdmFuIFdhc3NlbmhvdmUNCitKb3JkYWVucywgSmFjb2INCitKb3JkYW4sIFNhbXVlbA0KK0pvc2VwaHNvbiwgRXJuc3QNCitKb3NldHN1DQorSm9zbGluLCBSaWNoYXJkDQorSm91ZSBJSSwgSmFjcXVlcyBkZSBsYQ0KK0pvdWV0dCwgTWF0dGhldyBIYXJyaXMNCitKb3V2ZW5ldCwgSmVhbg0KK0pveSwgR2VvcmdlIFdpbGxpYW0NCitKdWFuIGRlIEZsYW5kZXMNCitKdWFuIGRlIEhlcnJlcmENCitKdWFuIGRlIEp1bmkNCitKdWFuIGRlIFZpbGxhbnVldmENCitKdWFuZXMsIEp1YW4gZGUNCitKdcOhcmV6LCBMdWlzDQorSnVhcmV6LCBSb2JlcnRvDQorSnVkZCwgRG9uYWxkDQorSnVkc29uLCBXaWxsaWFtIExlZXMNCitKdWVsLCBKZW5zDQorSnVsZXMsIE1lcnZpbg0KK0p1bGllbiwgSGVucmkNCitKdWxpZW4sIFBpZXJyZQ0KK0p1bWJvLCBKdWxpYQ0KK0p1dmFycmEsIEZpbGlwcG8NCitLYWJha292LCBJbHlhDQorS2Fib3RpZSwgRnJlZA0KK0thY2VyZSwgSm9obg0KK0thZGlzaG1hbiwgTWVuYXNoZQ0KK0thaGxvLCBGcmlkYQ0KK0thaG4sIEFsYmVydA0KK0thaG4sIFdvbGYNCitLYWlobyBZdXNobw0KK0thaW5lbiwgSmFjb2INCitLYWlzZXJtYW5uLCBGcmFueg0KK0thbGYsIFdpbGxlbQ0KK0thbGxlbywgSm9zZXBoaW5hDQorS2FtZW5ldiwgTC4NCitLYW5kaW5za3ksIFdhc3NpbHkNCitLYW5lLCBQYXVsDQorS2FuZyBTaGl5YW8NCitLYW5nIFlvdXdlaQ0KK0thbm8gRWl0b2t1DQorS2FubyBIaWRleW9yaQ0KK0thbm8gTW90b25vYnUNCitLYW5vIFNhbnJha3UNCitLYW5vIFNhbnNldHN1DQorS2FucMO0LCBZb3NoaWthd2ENCitLYW50b3IsIE1vcnJpcw0KK0thcG9vciwgQW5pc2gNCitLYXJwaWssIEFuZHJldw0KK0thcnNoLCBZb3VzdWYNCitLYXJ0bmVyIE1laXN0ZXINCitLw6RzZWJpZXIsIEdlcnRydWRlDQorS2FzcywgRGVib3JhaA0KK0thdHosIEFsZXgNCitLYXR6LCBDaW1hDQorS2F0emVuLCBMaWxhDQorS2F1ZmZtYW5uLCBBbmdlbGljYQ0KK0thdWZtYW5uLCBJc2lkb3INCitLYXVsYSwgTGVlIEx1Zmtpbg0KK0thd2FrYW1pLCBTdW1pbw0KK0thd2FubywgS2FvcnUNCitLYXdhcmEsIE9uDQorS2F5ZSwgT3Rpcw0KK0thenVtYSwgT2RhDQorS2Nobw0KK0tlYW5lLCBKb2huDQorS2VlbmUsIENoYXJsZXMgU2FtdWVsDQorS2Vlc2V5LCBXLk0uDQorS2VpYnVuDQorS2VpbCwgQmVybmhhcmQNCitLZWlyaW5jeCwgQWxleGFuZGVyDQorS2Vpc2FpIEVpc2VuDQorS2Vpc2FpIE1hc2F5b3NoaQ0KK0tlaXRoLCBFbGl6YWJldGgNCitLZWl0aCwgV2lsbGlhbQ0KK0tlbGxlciwgSGVucnkNCitLZWxsZXksIE1pa2UNCitLZWxseSwgRWxsc3dvcnRoDQorS2VtZXlzLCBFZHdhcmQNCitLZW1tZWxtZXllciwgRnJlZGVyaWNrDQorS2VtcHRvbiwgRWxtaXJhDQorS2VtcHRvbiwgR3JldGENCitLZW1wLVdlbGNoLCBMdWN5DQorS2VuZGFsbCwgV2lsbGlhbSBTZXJnZWFudA0KK0tlbmRyaWNrLCBNZWwNCitLZW5uZWR5LCBHYXJyeSBOZWlsDQorS2VubmVkeSwgTWFyeQ0KK0tlbm5lZHksIFNoYW5ub24NCitLZW5uaW5ndG9uLCBFcmljDQorS2Vuc2V0dCwgR2VvcmdlDQorS2Vuc2V0dCwgSm9obiBGcmVkZXJpY2sNCitLZW50LCBDb3JpdGENCitLZW50LCBSb2Nrd2VsbA0KK0tlcm4sIERlbm5pcw0KK0tlcm4sIExlb25oYXJkDQorS2VyciwgQ2hhcmxlcyBIZW5yeSBNYWxjb2xtDQorS2VyciwgSWxsaW5nd29ydGggSG9sZXkNCitLZXJyLUxhd3NvbiwgSmFtZXMNCitLZXJzdGluZywgR2VvcmcgRnJpZWRyaWNoDQorS2VydMOpc3osIEFuZHLDqQ0KK0tlc3NlbCB0aGUgWW91bmdlciwgSmFuIHZhbg0KK0tlc3NlbCwgSmFuIHZhbg0KK0tlc3NsZXIsIFd5bm4NCitLZXRjaHVtLCBSb2JlcnQgR2xlbm4NCitLZXRlbCwgQ29ybmVsaXMNCitLZXR0bGUsIFRpbGx5DQorS2V1bmluY2ssIEtlcnN0aWFlbiBkZQ0KK0tleSwgSm9obiBSb3NzDQorS2V5bCwgRnJpZWRyaWNoIFdpbGhlbG0NCitLZXlzZXIgSSwgSGVuZHJpY2sgZGUNCitLZXlzZXIsIFRob21hcyBkZQ0KK0toYXRjaGF0dXINCitLaG5vcGZmLCBGZXJuYW5kDQorS2hydXRza3ksIEl2YW4NCitLaWNrLCBTaW1vbg0KK0tpY2tpbmcgQmVhcg0KK0tpZGQsIEpvc2VwaCBCYXJ0aG9sb21ldw0KK0tpZWZlciwgQW5zZWxtDQorS2llbmVyaywgR2lvcmdpbw0KK0tpZW5ob2x6LCBFZHdhcmQNCitLaWVuaG9seiwgTmFuY3kgUmVkZGluDQorS2llbnplciwgTWljaGFlbA0KK0tpaXRzdSwgU3V6dWtpDQorS2ltLCBHdWlsaW4NCitLaW1iYWxsLCBXYXluZQ0KK0tpbmcsIENhcmwNCitLaW5nLCBDaGFybGVzIEJpcmQNCitLaW5nLCBKb2huIEhlbnJ5IFllZW5kDQorS2luZywgUGhpbGlwDQorS2luZywgUm9uYWxkDQorS2luZywgU2FtdWVsDQorS2luZywgV2lsbGlhbQ0KK0tpbmdtYW4sIERvbmcNCitLaW5rYWRlLCBUaG9tYXMNCitLaW5sZXksIFBldGVyDQorS2lubmFyZCwgVy4NCitLaW5vc2hpdGEsIFRvbWlvDQorS2luc29uLCBGcmFuw6dvaXMtSm9zZXBoDQorS2luc3RsZXIsIEV2ZXJldHQgUmF5bW9uZA0KK0tpcHAsIEx5bWFuDQorS2lwcGVsbCwgTmljbGF1c3MNCitLaXBwaW5nLCBCcmlhbg0KK0tpcHJlbnNreSwgT3Jlc3QNCitLaXJiZXJnLCBPdHRvIEthcmwNCitLaXJjaG5lciwgRXJuc3QgTHVkd2lnDQorS2lya2VieSwgUGVyDQorS2lya2xhbmQsIFZhbmNlDQorS2lybXNlLCBNYXJndWVyaXRlDQorS2lyc2NoLCBEd2lnaHQNCitLaXJzdGEsIEdlb3JnDQorS2lzcywgU8OhbXVlbA0KK0tpc3NlbCwgRWxlb25vcmENCitLaXRhaiwgUi5CLg0KK0tpdGFva2EsIEZ1bWlvDQorS2l0aSwgTXdhbWENCitLaXlvbWFzdSwgVG9yaWkNCitLaXlvbWl0c3UsIFRvcmlpDQorS2l5b25hZ2ENCitLaXlvbm9idQ0KK0tpeW9ub2J1IElJLCBUb3JpaQ0KK0tpeW90c3VuZSwgVG9yaWkNCitLbGViZSwgR2VuZQ0KK0tsZWUsIFBhdWwNCitLbGVlbWFubiwgUm9uDQorS2xlaW4sIFl2ZXMNCitLbGVpbmhvbHosIEZyYW5rDQorS2xlaXRzY2gsIEpvc2VwaA0KK0tsZW9waHJhZGVzIFBhaW50ZXIsIFRoZQ0KK0tsaW10LCBHdXN0YXYNCitLbGluZSwgRnJhbnoNCitLbGluZ2VyLCBNYXgNCitLbHVtcGtlLCBBbm5hIEVsaXphYmV0aA0KK0tsdW5kZXIsIFRpbQ0KK0tsdXRzaXMsIEd1c3Rhdg0KK0tuYXB0b24sIEdlb3JnZQ0KK0tuYXRocywgS2FybA0KK0tuYXViLCBSYXkNCitLbmF1YmVyLCBBbG1hIEpvcmRhbg0KK0tuZWFsZSwgQnJ5YW4NCitLbmVsbGVyLCBTaXIgR29kZnJleQ0KK0tuaWdodCwgRGFtZSBMYXVyYQ0KK0tuaWdodCwgRGFuaWVsIFJpZGd3YXkNCitLbmlnaHQsIEpvaG4gQmF2ZXJzdG9jaw0KK0tuaWdodCwgSm9obiBQcmVzY290dA0KK0tuaWdodCwgSm9obiBXaWxsaWFtIEJ1eHRvbg0KK0tuaWdodCwgSm9zZXBoDQorS25pZ2h0LCBMb3VpcyBBc3Rvbg0KK0tuaWdodCwgU3VzYW4NCitLbm9lYmVsLCBJbWkNCitLbm90dCwgSGVucnkNCitLbm93bGVzLCBEb3JvdGh5IEVsc2llDQorS25vd2xlcywgRmFycXVoYXIgTWNHaWxsaXZyYXkNCitLbm93bGluZywgS2F0aGxlZW4NCitLbm94LCBTdXNhbiBSaWNrZXINCitLbsO8cGZlciwgTmljb2xhdXMNCitLb2JlbGwsIFdpbGhlbG0gdm9uDQorS8O4YmtlLCBDaHJpc3Rlbg0KK0tvY2gsIEpvaG4NCitLb2NoLCBKb3NlcGggQW50b24NCitLb2VobGVyLCBSb2JlcnQNCitLb2Vra29laywgQmFyZW5kIENvcm5lbGl1cw0KK0tvZWtrb2VrLCBXaWxsZW0NCitLb2VsbGluLCBQZXRlcg0KK0tvZXJiZWNrZSwgSm9oYW5uDQorS29lcm5lciwgSGVucnkNCitLb2VzdGVyLCBBbGV4YW5kZXINCitLb2dsZXIsIFBldGVyDQorS29ndmlrLCBDaGFybGllDQorS29rZWksIFRzdXJ1eWENCitLb2tvc2Noa2EsIE9za2FyDQorS29sYmUsIEdlb3JnDQorS29sbGVyLCBSdWRvbGYNCitLb2xsd2l0eiwgS8OkdGhlDQorS29uY2hhbG92c2t5LCBQeW90cg0KK0tvbmluY2ssIFBoaWxpcHMNCitLb25yYWQgb2YgU29lc3QNCitLb28gTWVpDQorS29vbnMsIEplZmYNCitLb295b28gUGV0ZXINCitLb3BtYW4sIEJlbmphbWluDQorS29yaW4sIFBhdmVsDQorS29ybGluZywgVG9ya2VsDQorS29yb3ZpbiwgS29uc3RhbnRpbg0KK0tvcnl1c2FpDQorS29zYWthLCBHYWppbg0KK0tvc3NvZmYsIExlb24NCitLb3N0YWJpLCBNYXJrDQorS29zdXRoLCBKb3NlcGgNCitLb3Rha3UsIEhvc29pDQorS290b25kbywgVG9yaWkNCitLb3VuZWxsaXMsIEphbm5pcw0KK0tvdXdlbmJlcmdoLCBQaGlsaXAgdmFuDQorS293YWwsIERlbm5pcw0KK0tvemluYSwgU8OhbmRvcg0KK0tyYWZmdCwgSm9oYW5uIFBldGVyDQorS3JhZnQsIEFkYW0NCitLcmFtc2tveSwgSXZhbiBOaWtvbGFldmljaA0KK0tyYXNuZXIsIExlZQ0KK0tyZWhiaWVsLCBBbGJlcnQgSC4NCitLcmVtZXIsIE5pY29sYXVzDQorS3JldHNjaCwgS2FybA0KK0tyaWVnaG9mZiwgQ29ybmVsaXVzDQorS3JvaGcsIENocmlzdGlhbg0KK0tyb2xsLCBMZW9uDQorS3LDuHllciwgUGVkZXIgU2V2ZXJpbg0KK0tydWVnZXIsIERhdmlkDQorS3J1Z2VyLCBCYXJiYXJhDQorS3J1Z2VyLCBGcmFueg0KK0tydW1wZXIsIEhhbnMNCitLcnlsb3YsIE5pa2lmb3INCitLdWFuZyBZYW9kaW5nDQorS3ViaW4sIEFsZnJlZA0KK0t1YmlueWksIEthbG1hbg0KK0t1Ym90YSwgSXRjaGlrdQ0KK0t1Ym92eSwgSmlyw60NCitLdWVobmUsIE1heA0KK0t1ZW1tZWwsIENvcm5lbGlhDQorS3VobiwgQm9iDQorS8O8aG4sIEp1c3R1cyBFbmdlbGhhcmR0DQorS3VobiwgV2FsdA0KK0t1aG5lcnQsIEZyaWVkcmljaCBXaWxoZWxtDQorS3VpbmR6aGksIEFya2hpcCBJdmFub3ZpY2gNCitLdWl0Y2EsIEd1aWxsZXJtbw0KK0t1ay1rd2FuZywgQ2h1bg0KK0t1bGl1a3NpbiwgTmVrdGFyaWkNCitLdWxtYmFjaCwgSGFucyBTw7xzcyB2b24NCitLdW5jLCBLYXJlbg0KK0t1bmljaGlrYQ0KK0t1bmloaXJvLCBVdGFnYXdhDQorS3VuaWthenUNCitLdW5pbWFzYQ0KK0t1bmltYXN1DQorS3VuaXNhZGEsIFV0YWdhd2ENCitLdW5peW9zaGksIFV0YWdhd2ENCitLdW5peW9zaGksIFlhc3VvDQorS3Vuc3QsIFBpZXRlciBDb3JuZWxpc3ouDQorS3VwZmVybWFuLCBMYXdyZW5jZSBFLg0KK0t1cGZlcm1hbiwgTW9zaGUNCitLdXBrYSwgRnJhbnRpc2VrDQorS3Vyb3Nha2ksIEFraXJhDQorS3VzYW1hLCBZYXlvaQ0KK0t1c3RvZGlldiwgQm9yaXMNCitLdXl0ZW5icm91d2VyLCBNYXJ0aW51cyBBZHJpYW51cw0KK0t1em5ldHNvdiwgTmlrb2xhaSBEbWl0cmlldmljaA0KK0t1em5ldHNvdiwgUGF2ZWwNCitLd2FuLXNpaywgQnllb24NCitLeWxlLCBKb3NlcGgNCitLeW91bmcgQWUgQ2hvDQorS3l1bmctamEsIENodW4NCitMYSBDYXZlLCBQZXRlcg0KK0xhIENyb2l4IGRlIE1hcnNlaWxsZSwgQ2hhcmxlcw0KK0xhIEZhcmdlLCBKb2huDQorTGEgRm9zc2UsIENoYXJsZXMgZGUNCitMYSBIeXJlLCBMYXVyZW50IGRlDQorTGEgVGhhbmd1ZSwgSGVucnkgSC4NCitMYSBUb3VyLCBHZW9yZ2VzIGRlDQorTGEgVG91ciwgTWF1cmljZSBRdWVudGluIGRlDQorTGFiYXVkdCwgTHVjaWVuDQorTGFiaWxsZS1HdWlhcmQsIEFkw6lsYcOvZGUNCitMYWJvdXJldXIsIEplYW4tw4ltaWxlDQorTGFicnV6emksIENhcmxvDQorTGFjaGFpc2UsIEdhc3Rvbg0KK0xhY29tYmUsIEdlb3JnZXMNCitMYWNvc3RlLCBDaGFybGVzDQorTGFjb3VyLCBQaWVycmUNCitMYWNyb2l4LCBQYXVsDQorTGFkYnJvb2tlLCBSb2JlcnQNCitMYWRkLCBEYW5pZWwNCitMYWVtbWxlLCBDaGVyeWwNCitMYWVyLCBQaWV0ZXIgdmFuDQorTGFGYXJndWUsIFBhdWx1cyBDb25zdGFudGlqbg0KK0xhZnJlbnNlbiwgTmljbGFzDQorTGFnZXJpbm8sIFN0ZWZhbm8NCitMYWdyZW5lZSwgSmVhbi1KYWNxdWVzDQorTGFncmVuw6llLCBMb3VpcyBKZWFuIEZyYW7Dp29pcw0KK0xhZ3VhcmRpYSwgRWxveSBHaW3DqW5leg0KK0xhaSBTaGFvcWkNCitMYWkgU3VuZw0KK0xhaWIsIENvbnJhZA0KK0xhaWRsYXksIFdpbGxpYW0gSmFtZXMNCitMYWluZywgR2VyYWxkDQorTGFpbmcsIEouUy4NCitMYWlyZXNzZSwgR2VyYXJkIGRlDQorTGFsYW5uZSwgTWF4aW1lDQorTGFsaXF1ZSwgUmVuw6kNCitMYW0sIFdpbGZyZWRvDQorTGFtYiwgQS5BLg0KK0xhbWIsIEFuZHJpYW4NCitMYW1iLCBIZW5yeQ0KK0xhbWJkaW4sIEphbWVzIFJlaWQNCitMYW1iZXJ0LCBHZW9yZ2UNCitMYW1iZXJ0LCBHZW9yZ2UgVy4NCitMYW1iZXJ0LCBKYW1lcw0KK0xhbWJlcnRpLCBQaWVybyBkaSBOaWNjb2xvDQorTGFtaSwgRXVnw6huZQ0KK0xhbW0sIExlb25pZA0KK0xhTW9yZSwgQ2hldA0KK0xhbXF1YQ0KK0xhbiBZaW5nDQorTGFuY2FzdGVyLCBSZXYuIFJpY2hhcmQgSHVtZQ0KK0xhbmNlLCBHZW9yZ2UNCitMYW5jcmV0LCBOaWNvbGFzDQorTGFuZGFjcmUsIFBhdWwgSGFtYmVsdG9uDQorTGFuZGVjaywgQXJtaW4NCitMYW5kZWxsZSwgQ2hhcmxlcw0KK0xhbmRpbmksIFRhZGRlbw0KK0xhbmRpcywgSm9obg0KK0xhbmRzZWVyLCBDaGFybGVzDQorTGFuZHNlZXIsIFNpciBFZHdpbiBIZW5yeQ0KK0xhbmUsIEZpdHogSHVnaA0KK0xhbmUsIFNhbXVlbA0KK0xhbmUsIFRoZW9kb3JlDQorTGFuZXV2aWxsZSwgSmVhbi1Mb3Vpcw0KK0xhbmZyYW5jbywgR2lvdmFubmkNCitMYW5nZSwgRG9yb3RoZWENCitMYW5nZW5kaWprLCBEaXJrDQorTGFuZ2V0dGksIEdpb3ZhbiBCYXR0aXN0YQ0KK0xhbmdoYW5zLCBLYXJsIEZlcmRpbmFuZA0KK0xhbmdsb2lzLCBKw6lyw7RtZS1NYXJ0aW4NCitMYW5pbmcsIEVkd2FyZA0KK0xhbmlubywgQmVybmFyZGlubw0KK0xhTm91ZSwgVGVycmVuY2UNCitMYW5zaWwsIFdhbHRlciBGcmFua2xpbg0KK0xhbnRlcmksIEVkb3VhcmQNCitMYW55b24sIEVsbGVuDQorTGFueW9uLCBQZXRlcg0KK0xhcG9pbnRlLCBGcmFuaw0KK0xhcG9ydGUsIEdlb3JnZSBIZW5yeQ0KK0xhcG9ydGUsIEpvaG4NCitMYXByYWRlLCBQaWVycmUNCitMYXJjaWFuaSwgR2lvdmFubmkNCitMYXJkZXJhLCBCZXJ0bw0KK0xhcmdpbGxpw6hyZSwgTmljb2xhcyBkZQ0KK0xhcmlvbm92LCBNaWtoYWlsDQorTGFya2luLCBXaWxsaWFtDQorTGFyb29uIHRoZSBZb3VuZ2VyLCBNYXJjZWxsdXMNCitMYXJzb24sIFBoaWxpcA0KK0xhcnNzb24sIENhcmwNCitMYXJ0ZXIsIFJpY2hhcmQNCitMYXNhbnNreSwgTWF1cmljaW8NCitMYXNlcnN0ZWluLCBMb3R0ZQ0KK0xhc2gsIEpvbg0KK0xhc3NhdywgSWJyYW0NCitMYXNzbmlnLCBNYXJpYQ0KK0xhc3QsIEZpcnN0IG5hbWUNCitMYXN0bWFuLCBQaWV0ZXINCitMYXN6bG8sIFBoaWxpcCBBbGV4aXVzIGRlDQorTGF0aGFtLCBKb2huDQorTGF0aHJvcCwgSWRhIFB1bGlzDQorTGF1cmFuYSwgRnJhbmNlc2NvDQorTGF1cmVuY2UsIFNhbXVlbA0KK0xhdXJlbmNpbiwgTWFyaWUNCitMYXVyZW5zLCBIZW5yaQ0KK0xhdXJlbnMsIEplYW4tUGF1bA0KK0xhdXJlbnQsIEVybmVzdA0KK0xhdXJlbnQsIEouDQorTGF1cmVudCwgSmVhbiBBbnRvaW5lDQorTGF1cmVudCwgUm9iZXJ0DQorTGF1cmllLCBSb2JlcnQNCitMYXV0ZW5zYWNrLCBIYW5zIFNlYmFsZA0KK0xhdXZlcmduZSwgQmFydGhlbGVteQ0KK0xhdmVyeSwgU2lyIEpvaG4NCitMYXZpZXIsIEJlcnRyYW5kDQorTGFWaWduZSBJSSwgSm9zZXBoDQorTGF3LCBBbGZyZWQNCitMYXdyYW5zb24sIFRob21hcw0KK0xhd3JlbmNlLCBKYWNvYg0KK0xhd3JlbmNlLCBTaXIgVGhvbWFzDQorTGF3c29uLCBFcm5lc3QNCitMYXksIEVybmVzdA0KK0xhem8sIEFndXN0w61uDQorTGF6emVsbCwgQmxhbmNoZQ0KK0xlIEJhcmJpZXIsIEplYW4tSmFjcXVlcy1GcmFuw6dvaXMNCitMZSBCYXMsIEVkd2FyZA0KK0xlIEJsb24sIEpha29iIENocmlzdG9mDQorTGUgQnJ1biwgQ2hhcmxlcw0KK0xlIENvdXJ0LCBHaXVzdG8NCitMZSBGYXVjb25uaWVyLCBIZW5yaQ0KK0xlIEdyb3MgSSwgUGllcnJlDQorTGUgR3JvcyBJSSwgUGllcnJlDQorTGUgTG9ycmFpbiwgTG91aXMtSm9zZXBoDQorTGUgTG9ycmFpbiwgUm9iZXJ0DQorTGUgTWlyZSwgTm/Dq2wNCitMZSBNb3luZSwgRnJhbsOnb2lzDQorTGUgTmFpbiwgQW50b2luZQ0KK0xlIE5haW4sIExvdWlzDQorTGUgTmFpbiwgTWF0aGlldQ0KK0xlIFByaW5jZSwgSmVhbi1CYXB0aXN0ZQ0KK0xlIFNlY3EsIEhlbnJpIEplYW4tTG91aXMNCitMZSBTaWRhbmVyLCBIZW5yaSBFdWdlbmUgQXVndXN0aW4NCitMZSBTdWV1ciwgRXVzdGFjaGUNCitMZWEsIFRvbQ0KK0xlYWRlciwgQmVuamFtaW4gV2lsbGlhbXMNCitMZWFsLCBGZXJuYW5kbw0KK0zDqWFuZHJlLCBDaGFybGVzDQorTGVhciwgRWR3YXJkDQorTGVib3VyZywgQWxiZXJ0DQorTGVicnVuLCBSaWNvDQorTGVjaywgQmFydCB2YW4gZGVyDQorTGVDbGVhciwgVGhvbWFzDQorTGVkZXJlciwgSm9oYW5uIEdlb3JnDQorTGVkdWMsIE96aWFzDQorTGVlLCBEb3Jpcw0KK0xlZSwgRnJlZGVyaWNrIFJpY2hhcmQNCitMZWUsIEpvaG4NCitMZWVjaCwgSm9obg0KK0xlZWtlLCBGZXJkaW5hbmQNCitMZWVuLCBOaW5hDQorTGVlLVNtaXRoLCBIdWdoaWUNCitMZWZlYnZyZSwgSnVsZXMtSm9zZXBoDQorTGVmw6l2cmUsIFJvYmVydC1KYWNxdWVzLUZyYW7Dp29pcw0KK0xlZ2EsIFN5bHZlc3Rybw0KK0zDqWdhcsOpLCBKb3NlcGgNCitMw6lnZXIsIEZlcm5hbmQNCitMZWdyb3MsIEFscGhvbnNlDQorTGVoZXV0cmUsIEd1c3RhdmUNCitMZWhtYW5uLCBBcnRodXINCitMZWhtYW5uLCBIZW5yaQ0KK0xlaG1hbm4sIFJvbGYNCitMZWhtYnJ1Y2ssIFdpbGhlbG0NCitMZWhtZGVuLCBBbnRvbg0KK0xlaWJsLCBXaWxoZWxtDQorTGVpZ2gsIFdpbGxpYW0gUi4NCitMZWlnaHRvbiwgQS5DLg0KK0xlaWdodG9uLCBDbGFyZQ0KK0xlaWdodG9uLCBGcmVkZXJpYywgTG9yZA0KK0xlaWdodG9uLCBOaWNob2xhcyBXaW5maWVsZCBTY290dA0KK0xlaXJuZXIsIEphYw0KK0xlaXRjaCwgV2lsbGlhbSBMZWlnaHRvbg0KK0xlbGV1LCBKZWFuLUZyYW7Dp29pcw0KK0xlbHVqYQ0KK0xlbHksIFNpciBQZXRlcg0KK0xlbWFpcmUsIEplYW4NCitMZW1iZXJnZXIsIEdlb3JnDQorTGVtaWV1eCwgQW5uZXR0ZQ0KK0xlbWlldXgsIEplYW4gUGF1bA0KK0xlbW1lbiwgR2Vvcmdlcw0KK0xlbW1lbnMsIFRow6lvcGhpbGUtVmljdG9yLUVtaWxlDQorTGVtb2luZSwgSmFjcXVlcyBBbnRvaW5lIE1hcmllDQorTGVtb2luZSwgTWFyaWUtVmljdG9pcmUNCitMZW1veW5lIElJLCBKZWFuLUJhcHRpc3RlDQorTGVtb3luZSwgSmVhbi1Mb3Vpcw0KK0xlbXBpY2thLCBUYW1hcmEgZGUNCitMZW5iYWNoLCBGcmFueiB2b24NCitMZW5kZXJzLCBFbWlsIFcuDQorTGVuZXB2ZXUsIEp1bGVzLUV1Z8OobmUNCitMZW5pbmdyYWQgUGFpbnRlciwgVGhlDQorTGVubm94LCBMb3JkIFdpbGxpYW0gUGl0dA0KK0xlbnMsIEJlcm5hcmQNCitMZW5zb24sIE1pY2hhZWwNCitMZW9jaGFyZXMNCitMZW9uYXJkbyBkYSBWaW5jaQ0KK0xlb25jaWxsbywgTGVvbmFyZGkNCitMZW9uaSwgTGVvbmUNCitMZW9uaSwgT3R0YXZpbw0KK0xlb25pLCBQb21wZW8NCitMZW9uaWQNCitMZXDDqHJlLCBBdWd1c3RlLUxvdWlzDQorTGVwaWNpw6ksIE1pY2hhZWwgTmljb2xhcy1CZXJuYXJkDQorTMOpcGluZSwgU3RhbmlzbGFzDQorTGVybWFuLCBMZW9uaWQNCitMZXJtb25kLCBDaGFybGVzIEMuRS4NCitMZXJvbGxlLCBIZW5yeQ0KK0xlc2xpZSwgQWxmcmVkDQorTGVzbGllLCBDaGFybGVzIFJvYmVydA0KK0xlc3NvcmUsIEpvaG4NCitMZXRlbmRyZSwgUml0YQ0KK0xldGgsIEhhcmFsZA0KK0xldGhpw6hyZSwgR3VpbGxhdW1lDQorTGV1IHRoZSBFbGRlciwgSGFucw0KK0xldXR6ZSwgRW1hbnVlbCBHb3R0bGllYg0KK0xldmksIEp1bGlhbg0KK0xldmluZSwgSmFjaw0KK0xldmluZSwgTWFyaWx5bg0KK0xldmluZSwgU2hlcnJpZQ0KK0xldmludGhhbCwgRGF2aWQNCitMZXZpdGFuLCBJc2FhayBJbCdpY2gNCitMZXZpdHNraWksIERtaXRyaWkgR3JpZ29yZXZpY2gNCitMZXZpdHQsIEhlbGVuDQorTMOpdnksIEVtaWxlDQorTGV2eSwgSm9hbg0KK0zDqXZ5LURodXJtZXIsIEx1Y2llbg0KK0xld2FuZG93c2tpLCBFZG11bmQNCitMZXdpcywgRWRtb25pYQ0KK0xld2lzLCBHZW9yZ2UgUm9iZXJ0DQorTGV3aXMsIEplbm5pZQ0KK0xld2lzLCBKb2huIEZyZWRlcmljaw0KK0xld2lzLCBMdWN5IE0uDQorTGV3aXMsIE1hcnRpbg0KK0xld2lzLCBNYXVkDQorTGV3aXMsIE5vcm1hbg0KK0xld2lzLCBQcm9mZXNzb3IgSGVucnkNCitMZXdpcywgV3luZGhhbQ0KK0xld2l0dCwgU29sDQorTGV4aWVyLCBNaWNhaA0KK0xleWRlbiwgTHVjYXMgdmFuDQorTGV5cywgSGVuZHJpY2sNCitMZXlzdGVyLCBKdWRpdGgNCitMJ2hlcm1pdHRlLCBMw6lvbiBBdWd1c3Rpbg0KK0xoZXVyZXV4LCBMb3Vpcy1Fcm5lc3QNCitMaG90ZSwgQW5kcsOpDQorTGkgRmFuZ3lpbmcNCitMaSBIdWENCitMaSBIdWF5aQ0KK0xpIEh1aXhpYW4NCitMaSBLYW4NCitMaSBLZXJhbg0KK0xpIEt1Y2hhbg0KK0xpIFBpbmdmYW4NCitMaSBRaQ0KK0xpIFdlbnhpDQorTGkgWGlvbmdjYWkNCitMaWFuZyBaaGloZQ0KK0xpYW8gTHUNCitMaWJlcmFsZSBkYSBWZXJvbmENCitMaWJlcmksIFBpZXRybw0KK0xpYmVybWFuLCBBbGV4YW5kZXINCitMaWNoYW5vdHVzLCBJbmRyaXMNCitMaWNodGVuc3RlaW4sIFJveQ0KK0xpY2luaW8sIEJlcm5hcmRpbm8NCitMaWUsIEpvbmFzDQorTGllYmVybWFubiwgTWF4DQorTGllYmxpbmcsIEplcm9tZQ0KK0xpZWZyaW5jaywgQ29ybmVsaXVzDQorTGlldmVucywgSmFuDQorTGlnZXRpLCBBbnRhbA0KK0xpZ296emksIEphY29wbw0KK0xpbGVzLCBDYXRoYXJpbmUNCitMaWxqZWZvcnMsIEJydW5vIEFuZHJlYXMNCitMaWxsaW8sIEFuZHJlYQ0KK0xpbWJhY2gsIFJ1c3NlbGwNCitMaW1ib3VyZywgSGVybWFubg0KK0xpbWJvdXJnLCBKZWFuDQorTGltYm91cmcsIFBhdWwNCitMaW1vc2luLCBMw6lvbmFyZA0KK0xpbiBGZW5nbWlhbg0KK0xpbiBHYW5nDQorTGluIExpYW5nDQorTGluIFNhbnpoaQ0KK0xpbiBZb25nDQorTGluLCBNYXlhDQorTGluYXJlcywgRG9uDQorTGluYnVyZywgU3VlDQorTGluZGVyLCBSb25hbGQgRi4NCitMaW5kbmVyLCBSaWNoYXJkDQorTGluZHF1aXN0LCBNYXJrDQorTGluZHF1aXN0LCBNZWx2aW4NCitMaW5nZWxiYWNoLCBKb2hhbm5lcw0KK0xpbm5lbGwsIEpvaG4NCitMaW50b24sIFdpbGxpYW0NCitMaW90YXJkLCBKZWFuLcOJdGllbm5lDQorTGlwY2hpdHosIEphY3F1ZXMNCitMaXBwaSwgRmlsaXBwaW5vDQorTGlwcGksIEZyYSBGaWxpcHBvDQorTGlwcGksIFJhZmZhZWxlDQorTGlwc2NvbWIsIENEDQorTGlyYSwgUGVkcm8NCitMaXNtZXIsIEFydGh1cg0KK0xpc3MsIEpvaGFubg0KK0xpc3NpdHpreSwgRWwNCitMaXR0bGUsIEtlbg0KK0xpdHRsZWZpZWxkLCBXaWxsaWFtIEhvcmFjZQ0KK0xpdHRsZXRvbiwgSGFydmV5IEsuDQorTGl1IERhbnpoYWkNCitMaXUgR3Vvc29uZw0KK0xpdSBKaXlvdQ0KK0xpdSBLdWlsaW5nDQorTGl1IFNoaXJ1DQorTGl1IFdlbmZ1DQorTGl1IFdlbnhpDQorTGl1IFhpYW4NCitMaXUgWmlqaWFuDQorTGl2ZXJzZWVnZSwgSGVucnkNCitMaXZpbmdzdG9uLCBBbGV4DQorTGl4YXJzLCBTLkMuDQorTGl6YXJzLCBXaWxsaWFtIEhvbWUNCitMb2JlLCBSb2JlcnQNCitMb2NobmVyLCBTdGVwaGFuDQorTG9jaHJpZSwgRWxpemFiZXRoDQorTG9ja2UgSnIuIG9mIE5vcmJ1cnksIFdpbGxpYW0NCitMb2NrZSwgQ2hhcmxlcyBXaGVlbGVyDQorTG9ja2VyLCBFZHdhcmQgSGF3a2UNCitMb2NrZXksIFJvd2xhbmQNCitMb2NraGFydCwgU2hhcm9uDQorTG9nYW4sIEphbWVzDQorTG9nZ2FuLCBEYXZpZA0KK0xvZ3NkYWlsLCBXaWxsaWFtDQorTG9tYWhhZnRld2EsIERhbiBWLg0KK0xvbWJhcmQsIExhbWJlcnQNCitMb21iYXJkLCBXYXJyZW4gUC4NCitMb21iYXJkbywgQW50b25pbw0KK0xvbWJhcmRvLCBMb2Rvdmljbw0KK0xvbWJhcmRvLCBQaWV0cm8NCitMb21iYXJkbywgVHVsbGlvDQorTG9uZyBUaW5nYmENCitMb25nLCBBbWVsaWENCitMb25nLCBDaGFybGVzDQorTG9uZywgRWR3aW4NCitMb25nLCBNY0tlbmRyZWUgUm9iYmlucw0KK0xvbmcsIFJpY2hhcmQNCitMb25nLCBTeWRuZXkNCitMb25nLCBUZWQNCitMb25naGksIEFsZXNzYW5kcm8NCitMb25naGksIEJhcmJhcmENCitMb25naGksIFBpZXRybw0KK0xvbmdvLCBSb2JlcnQNCitMb25nc3RhZmYsIEpvaG4NCitMb25zZGFsZSwgSmFtZXMNCitMb25zaW5nLCBGcmFuw6dvaXMtTG91aXMNCitMb28sIEplYW4gQmFwdGlzdGUgdmFuDQorTG9vcCwgTGVvdGEgV2lsbGlhbXMNCitMb3BleiBHYXJjaWEsIEFudG9uaW8NCitMb3BleiBIZXJuYW5kZXosIEp1bGlvDQorTMOzcGV6IHkgUG9ydGHDsWEsIFZpY2VudGUNCitMb3BleiwgQmVybmFyZG8NCitMb3BleiwgQ2FybG9zDQorTG9wZXosIEdlb3JnZQ0KK0xvcGV6LCBHZW9yZ2UgVC4NCitMb3JkLCBDYXJvbGluZQ0KK0xvcmVueiwgUmljaGFyZA0KK0xvcmVuemV0dGksIEFtYnJvZ2lvDQorTG9yZW56ZXR0aSwgUGlldHJvDQorTG9yZW56ZXR0aSwgVWdvbGlubw0KK0xvcmVuemksIFN0b2xkbw0KK0xvcmVuem8gZGkgQ3JlZGkNCitMb3JlbnpvIE1vbmFjbw0KK0xvcmVuem8gVmVuZXppYW5vDQorTG90aCwgSm9oYW5uIENhcmwNCitMb3R0bywgTG9yZW56bw0KK0xvdHosIEvDoXJvbHkNCitMb3UsIExpemENCitMb3Vkb3VuLCBFZGl0aCBNYXVkIFJhd2Rvbi1IYXN0aW5ncywgQ291bnRlc3Mgb2YNCitMb3VnaCwgSm9obiBHcmFoYW0NCitMb3VpcyBkZSBDbGVyY3ENCitMb3VpcywgSHViZXJ0LU5vw6tsDQorTG91aXMsIE1vcnJpcw0KK0xvdWlzLCBWaWN0b3INCitMb3ZlLCBKaW0NCitMb3ZlbGwsIFNoYXVuDQorTG92ZXQtTG9yc2tpLCBCb3Jpcw0KK0xvdywgQmVydGhhIExlYQ0KK0xvd2UsIFRydW1hbg0KK0xvd2luc2t5LCBUaG9tYXMNCitMb3dyeSwgS2VpdGgNCitMb3dyeSwgTGF1cmVuY2UgUy4NCitMb3pvd2ljaywgTG91aXMNCitMdSBGdXNoZW5nDQorTHUgSHVpDQorTHUgU2hvdWt1bg0KK0x1IFh1bg0KK0x1IFlhbnNoYW8NCitMdSBaaGkNCitMdWJlciwgUGF0cmljaw0KK0x1Y2EgZGkgVG9tbcOoDQorTHVjYXMgVmlsbGFtaWwsIEV1Z2VuaW8NCitMdWNhcywgRGF2aWQNCitMdWNhcywgSm9obiBTZXltb3VyDQorTHVjY2hlc2ksIEJydW5vDQorTHVjZSwgTWF4aW1pbGllbg0KK0x1Y2VybywgTWljaGFlbA0KK0x1Y2hpYW4sIFN0ZWZhbg0KK0x1Y2llciwgTWFyeQ0KK0x1Y2lvbmksIEx1aWdpDQorTHVkaW5zLCBSeWFoDQorTHVpbmksIEJlcm5hcmRpbm8NCitMdWtzLCBHZW9yZ2UNCitMdW0sIEtlbg0KK0x1bWluYWlzLCBFdmFyaXN0ZS1WaXRhbA0KK0x1bWlzLCBIYXJyaWV0IFJhbmRhbGwNCitMdW1zZGVuLCBFcm5lc3QgU3RlcGhlbg0KK0x1bmEsIEphbWVzDQorTHVuZGViZXJnLCBIZWxlbg0KK0x1bmRlZW4sIEdlb3JnZQ0KK0x1bmRzdHLDuG0sIFZpbGhlbG0NCitMdW5ncmVuLCBGZXJuYW5kIEhhcnZleQ0KK0x1byBHb25nbGl1DQorTHVvIFpob25nbGkNCitMw7xwZXJ0eiwgTWFya3VzDQorTHVyw6dhdCwgSmVhbg0KK0x1cmllLCBOYW4NCitMdXNjb21iLCBXaWxsaWFtIEhlbnJ5DQorTHV6em8sIEdpb3Zhbm5pDQorTHlhbGwsIExhdXJhIE11bnR6DQorTHlkb3MNCitMeW1hbiwgSm9obiBHb29kd2luDQorTHlzaXBwaWRlcyBQYWludGVyLCBUaGUNCitMeXNpcHB1cw0KK01hIFl1YW4NCitNYWFzIHRoZSBZb3VuZ2VyLCBKb2hhbm5lcw0KK01hYmUsIE1hbmFidQ0KK01hYnVzZQ0KK01hY2FydG5leSwgQ2FybGlsZSBIZW5yeSBIYXllcw0KK01hYydBdm95DQorTWFjY2FsbHVtLCBBbmRyZXcNCitNYWNDYW1lcm9uLCBSb2JlcnQgTGVlDQorTWFjY2nDsywgUsOzbXVsbw0KK01hY2RvbmFsZCwgR2VvcmdpbmENCitNYWNEb25hbGQsIEouRS5ILg0KK01hY0RvbmFsZCwgSi5XLkcuDQorTWFjRG9uYWxkLCBNYXJnYXJldA0KK01hY2RvbmFsZC1XcmlnaHQsIFN0YW50b24NCitNYWNEb3dlbGwsIFBhdHJpY2sNCitNYWNoaWF2ZWxsaSwgWmFub2JpDQorTWFjSXZlciwgTG9yZW4NCitNYWNLYXkNCitNYWNrZSwgQXVndXN0DQorTWFja2VubmFsLCBCZXJ0cmFtDQorTWFja2VuemllLCBGcmVkZXJpY2sNCitNYWNrZXksIEJlYXRyaWNlIEhvd2llDQorTWFja2llLCBSYXkNCitNYWNraW50b3NoLCBDaGFybGVzIFJlbm5pZQ0KK01hY0xhdWdobGFuLCBEb25hbGQgU2hhdw0KK01hY2xpc2UsIERhbmllbA0KK01hY01vbm5pZXMsIEZyZWRlcmljayBXLg0KK01hY01vbm5pZXMsIE1hcnkgRmFpcmNoaWxkDQorTWFjTmFpciwgRnJhbmNlcw0KK01hY25haXIsIEhlcmJlcnQNCitNYWNOZWUsIENvbGluDQorTWFjTmVpbCwgSGVybW9uIEF0a2lucw0KK01hY29tYmVyLCBNYXJ5DQorTWFjUGhlcnNvbiwgUm9iZXJ0DQorTWFjcmFlLCBFbW1hIEZvcmR5Y2UNCitNYWNSaXRjaGllLCBMZXdpcw0KK01hZGRlbGVuYSBNYXN0ZXINCitNYWRlciwgTG91aXMNCitNYWRlcm5vLCBTdGVmYW5vDQorTWFkcmF6byB5IEFndWRvLCBKb3NlIERlDQorTWFkcmF6byB5IEdhcnJldGEsIFJhaW11bmRvIGRlDQorTWFkcmF6byB5IEvDvG50eiwgRmVkZXJpY28gZGUNCitNYWVzLCBOaWNvbGFlcw0KK01hZXN0b3NpLCBGcmFuY2VzY28NCitNYWVzdHJvIFB1Z2xpZXNlLUFicnV6emVzZQ0KK01hZmZlaSwgRnJhbmNlc2NvDQorTWFnYW56YSwgQWxlc3NhbmRybw0KK01hZ2dpb3R0bywgRG9tZW5pY28NCitNYWduYXNjbywgQWxlc3NhbmRybw0KK01hZ25lciwgUGhpbGlwcGUNCitNYWdyaXR0ZSwgUmVuw6kNCitNYWhhZmZleSwgTWVycmlsbA0KK01haGRpLCBNdWhhbW1hZA0KK01haGVyLCBBbGljZQ0KK01haG9uLCBKb3NlcGhpbmUNCitNYWhvbmV5LCBNaWtlDQorTWFpIFhpYW55YW5nDQorTWFpbGxvbCwgQXJpc3RpZGUNCitNYWluYXJkaSwgU2ViYXN0aWFubw0KK01haW5lLCBDYW1pbGxvDQorTWFpbmVyaSwgRnJhbmNlc2NvDQorTWFpbm9sZmksIEx1aWdpDQorTWFpciB2b24gTGFuZHNodXQNCitNYWlzLCBIaWxhcmllDQorTWFpc2NoLCBKb2hhbm4NCitNYWl0YW5pLCBMb3JlbnpvDQorTWFpdGxhbmQsIFBhdWwNCitNYWpvciwgRXJuZXN0IExlZQ0KK01ha2FydCwgSGFucw0KK01ha292c2t5LCBLb25zdGFudGluIEVnb3JvdmljaA0KK01ha293c2tpLCBUYWRldXN6DQorTWFsYm9uZSwgRWR3YXJkIEdyZWVuZQ0KK01hbGNoYWlyLCBKb2huIEJhcHRpc3QNCitNYWxkb25hZG8sIEFsZXhhbmRlciBBLg0KK01hbGVyIHp1IFNjaHdheiwgSGFucw0KK01hbGV2aWNoLCBLYXNpbWlyDQorTWFsZmF0dGksIEFuaXRhDQorTWFsaW5jb25pY28sIE5pY29sYQ0KK01hbGxldCwgSmVhbi1CYXB0aXN0ZQ0KK01hbGxvLCBNYXJ1amENCitNYWxvbmUsIFJvYmVydCBSLg0KK01hbG91ZWwsIEplYW4NCitNYWxwYXNzLCBNaWNoYWVsDQorTWFsdGVzZSwgRnJhbmNlc2NvDQorTWFsdHdvb2QsIEthdGhlcmluZSBFbW1hDQorTWFuIFJheQ0KK01hbmRlciwgS2FyZWwgdmFuDQorTWFuZGlqbiwgSmFuDQorTWFuZGxlYmF1bSwgQmlsbA0KK01hbmVzc2llciwgQWxmcmVkDQorTWFuZXQsIMOJZG91YXJkDQorTWFuZnJlZGksIEJhcnRvbG9tZW8NCitNYW5nb2xkLCBSb2JlcnQNCitNYW5nb2xkLCBTeWx2aWEgUGxpbWFjaw0KK01hbmdvcywgU2ltb25lDQorTWFuZ3VpbiwgSGVucmkNCitNYW5sZXksIFRob21hcw0KK01hbm4sIEouSC5TLg0KK01hbm4sIFNhbGx5DQorTWFuc2hpcCwgUGF1bA0KK01hbnNvbiwgSmFtZXMgQm9saXZhcg0KK01hbnN1ZXRpLCBHaW92YW5uaQ0KK01hbnRlZ2F6emEsIEFudG9uaW8NCitNYW50ZWdhenphLCBDcmlzdG9mb3JvDQorTWFudGVnbmEsIEFuZHJlYQ0KK01BTlVBTA0KK01hbnVlbCwgTmlrbGF1cw0KK01hbi15b3VuZywgSGFuDQorTWFuem9uaSwgUGllcm8NCitNYW56w7ksIEdpYWNvbW8NCitNYW56dW9saSwgVG9tbWFzbw0KK01hbyBMaXppIChaaGFuZyBaaHVubGkpDQorTWFveWUsIFNoZW5nDQorTWEtUGUtV2kNCitNYXBwbGV0aG9ycGUsIFJvYmVydA0KK01hcmF0dGEsIENhcmxvDQorTWFyYywgRnJhbnoNCitNYXJjYS1SZWxsaSwgQ29ucmFkDQorTWFyY2hlc2luaSwgQWxlc3NhbmRybw0KK01hcmNoaW9yaSwgR2lvdmFubmkNCitNYXJjaWxsYXQsIEd1aWxsYXVtZSBkZQ0KK01hcmNrcywgR2VyaGFyZA0KK01hcmNvIGQnT2dnaW9ubw0KK01hcmNvdXNzaXMsIExvdWlzDQorTWFyZGVuLCBCcmljZQ0KK01hcsOpZXMsIEhhbnMgdm9uDQorTWFyZXNjb3R0aSwgQW50b25pbw0KK01hcmdhcml0b25lIGQnQXJlenpvDQorTWFyZ29saWVzLCBTYW11ZWwNCitNYXJpYW5pLCBDYW1pbGxvDQorTWFyaWFuaSwgQ2FybG8gTWFyaWENCitNYXJpZSwgSmFuZSBHb2xkaW5nDQorTWFyaWVzY2hpLCBNaWNoZWxlIEdpb3Zhbm5pDQorTWFyaWxoYXQsIFByb3NwZXINCitNYXJpbGxpZXIsIENsw6ltZW50IFBpZXJyZQ0KK01hcmluLCBKYXZpZXINCitNYXJpbiwgSm9obg0KK01hcmluYWxpLCBPcmF6aW8NCitNYXJpbmFyaSwgT25vcmlvDQorTWFyaW5ldHRpLCBGaWxpcHBvIFRvbW1hc28NCitNYXJpbmksIE1hcmlubw0KK01hcmlvbmksIERhbnRlDQorTWFyaW9uaSwgSm9zZXBoDQorTWFyaXMsIEphY29iIEhlbnJpY3VzDQorTWFyaXMsIE1hdHRoaWpzDQorTWFyaXMsIFdpbGxlbQ0KK01hcmlzYWxkaSwgRXZhDQorTWFyaXNvbA0KK01hcmssIEdlb3JnZSBXYXNoaW5ndG9uDQorTWFyaywgTWFyeSBFbGxlbg0KK01hcmtoYW0sIEt5cmENCitNYXJrb3csIEphY2sNCitNYXJrcywgSGVucnkgU3RhY3kNCitNYXJsb3csIFdpbGxpYW0NCitNYXJtaW9uLCBTaW1vbg0KK01hcm1pdHRhLCBGcmFuY2VzY28NCitNYXJvY2hldHRpLCBDYXJsbw0KK01hcm9uLCBBbnRvbiB2b24NCitNYXJxdWV0LCBBbGJlcnQNCitNYXJxdWV6IGRlIFZlbGFzY28sIEVzdGViYW4NCitNYXJzaCwgUmVnaW5hbGQNCitNYXJzaGFsbCwgQmVuamFtaW4NCitNYXJzaW5nYWxsLCBBLg0KK01hcnN5IElJLCBHYXNwYXJkDQorTWFyc3lhcyBQYWludGVyLCBUaGUNCitNYXJ0YSwgTHVpZ2kNCitNYXJ0ZW5zLCBDb25yYWQNCitNYXJ0ZW5zLCBXaWxsZW0NCitNYXJ0aW4sIEFnbmVzDQorTWFydGluLCBDaGFybGVzDQorTWFydGluLCBEYXZpZCBTdG9uZQ0KK01hcnRpbiwgRGVubmlzDQorTWFydGluLCBEb3VnbGFzDQorTWFydGluLCBFbGlhcw0KK01hcnRpbiwgSGVucmkNCitNYXJ0aW4sIEhvbWVyIERvZGdlDQorTWFydGluLCBKb2huDQorTWFydGluLCBUaG9tYXMgTW93ZXINCitNYXJ0aW5lYXUsIFJvYmVydCBCcmFpdGh3YWl0ZQ0KK01hcnRpbmVrLCBEd2lnaHQNCitNYXJ0aW5lbGxpLCBHaW92YW5uaQ0KK01hcnRpbmV6LCBKdWxpYW4NCitNYXJ0aW5leiwgTWFyw61hDQorTWFydGluZXosIFNhbnRhbmENCitNYXJ0aW5pLCBBcnR1cm8NCitNYXJ0aW5pLCBTaW1vbmUNCitNYXJ0aW5vIGRpIEJhcnRvbG9tZW8gZGkgQmlhZ28NCitNYXJ0b3JlbGwsIEJlcm5hcmRvDQorTWFydXlhbWEgT2t5bw0KK01hc2FjY2lvDQorTWFzYWppIFlvc2hpZGENCitNYXNhbm9idSwgT2t1bXVyYQ0KK01hc2F5b3NoaSwgS2l0YW8NCitNYXNjaGVyaW5pLCBNYXJjZWxsbw0KK01hc2VrLCBWaXRlemxhdiBLYXJlbA0KK01hc28gZGkgQmFuY28NCitNYXNvbGlubyBkYSBQYW5pY2FsZQ0KK01hc29uLCBFbGFpbmUNCitNYXNvbiwgR2VvcmdlDQorTWFzb24sIEphbWVzDQorTWFzb24sIE1hdWQgTWFyeQ0KK01hc29uLCBSYXltb25kDQorTWFzb24sIFJveQ0KK01hc3NvbiwgQW5kcsOpDQorTWFzc291LCBCZW5vw650DQorTWFzc3lzLCBRdWVudGluDQorTWFzdGVyIEEuQy4NCitNYXN0ZXIgQS5HLg0KK01hc3RlciBCLiBvZiB0aGUgRGllDQorTWFzdGVyIEJlcnRyYW0NCitNYXN0ZXIgRS5TLg0KK01hc3RlciBGLlYuQi4NCitNYXN0ZXIgSS5LLg0KK01hc3RlciBKYWNvbW8NCitNYXN0ZXIgTEN6DQorTWFzdGVyIE0uUy4NCitNYXN0ZXIgTS5aLg0KK01hc3RlciBvZiAxNDE5DQorTWFzdGVyIG9mIEFwb2xsbyBhbmQgRGFwaG5lDQorTWFzdGVyIG9mIEZlbWFsZSBIYWxmLUxlbmd0aHMNCitNYXN0ZXIgb2YgRmxvcmENCitNYXN0ZXIgb2YgRnJhbmtmdXJ0DQorTWFzdGVyIG9mIEhlaWxpZ2Vua3JldXoNCitNYXN0ZXIgb2YgSG9vZ3N0cmFldGVuDQorTWFzdGVyIG9mIErDoW5vc3LDqXQNCitNYXN0ZXIgb2YgTWFyeSBvZiBCdXJndW5keQ0KK01hc3RlciBvZiBQcmF0b3ZlY2NoaW8NCitNYXN0ZXIgb2YgU2FpbnQgRnJhbmNpcw0KK01hc3RlciBvZiBTYWludCBHaWxsZXMNCitNYXN0ZXIgb2YgU2FpbnQgR3JlZ29yeQ0KK01hc3RlciBvZiBTYWludCBWZXJvbmljYQ0KK01hc3RlciBvZiBTYW4gRnJhbmNlc2NvIEJhcmRpDQorTWFzdGVyIG9mIFNhbiBKYWNvcG8gYSBNdWNjaWFuYQ0KK01hc3RlciBvZiBTYW50byBTcGlyaXRvDQorTWFzdGVyIG9mIHRoZSBBY3RzIG9mIE1lcmN5DQorTWFzdGVyIG9mIHRoZSBBaXgtZW4tQ2hhcGVsIEFsdGFycGllY2UNCitNYXN0ZXIgb2YgdGhlIEFubnVuY2lhdGlvbiB0byB0aGUgU2hlcGhlcmRzDQorTWFzdGVyIG9mIHRoZSBBdWdzYnVyZyBWaXNpdGF0aW9uDQorTWFzdGVyIG9mIHRoZSBBdmlnbm9uIFNjaG9vbA0KK01hc3RlciBvZiB0aGUgQmFyZGkgU2FpbnQgRnJhbmNpcw0KK01hc3RlciBvZiB0aGUgQmFyb25jZWxsaSBQb3J0cmFpdHMNCitNYXN0ZXIgb2YgdGhlIEJhdHRsZSBvZiBGb3Jub3ZvDQorTWFzdGVyIG9mIHRoZSBCZXJzd29yZHQgQWx0YXINCitNYXN0ZXIgb2YgdGhlIENhbmRsZQ0KK01hc3RlciBvZiB0aGUgQ2FzdGVsbG8gTmF0aXZpdHkNCitNYXN0ZXIgb2YgdGhlIENvYnVyZyBSb3VuZGVscw0KK01hc3RlciBvZiB0aGUgQ29kZXggb2YgU2FpbnQgR2VvcmdlDQorTWFzdGVyIG9mIHRoZSBDeXByZXNzZXMNCitNYXN0ZXIgb2YgdGhlIERhdmlkIGFuZCBTYWludCBKb2huIFN0YXR1ZXR0ZXMNCitNYXN0ZXIgb2YgdGhlIERpbnRldmlsbGUgQWxsZWdvcnkNCitNYXN0ZXIgb2YgdGhlIERvbWluaWNhbiBFZmZpZ2llcw0KK01hc3RlciBvZiB0aGUgRHVrZSBvZiBCZWRmb3JkDQorTWFzdGVyIG9mIHRoZSBFbWJyb2lkZXJlZCBGb2xpYWdlDQorTWFzdGVyIG9mIHRoZSBGb2dnIFBpZXTDoA0KK01hc3RlciBvZiB0aGUgRnJhbmNpc2NhbiBDcnVjaWZpeGVzDQorTWFzdGVyIG9mIHRoZSBHcmlzZWxkYSBMZWdlbmQNCitNYXN0ZXIgb2YgdGhlIEhvbHkgRmFtaWx5DQorTWFzdGVyIG9mIHRoZSBIb3VzZWJvb2sNCitNYXN0ZXIgb2YgdGhlIEpvc2VwaCBMZWdlbmQNCitNYXN0ZXIgb2YgdGhlIEthcmxzcnVoZSBQYXNzaW9uDQorTWFzdGVyIG9mIHRoZSBLaGFuZW5rbyBBZG9yYXRpb24NCitNYXN0ZXIgb2YgdGhlIExhdG91ciBkJ0F1dmVyZ25lIFRyaXB0eWNoDQorTWFzdGVyIG9mIHRoZSBMaWZlIG9mIFNhaW50IEpvaG4gdGhlIEJhcHRpc3QNCitNYXN0ZXIgb2YgdGhlIExpZmUgb2YgdGhlIFZpcmdpbg0KK01hc3RlciBvZiB0aGUgTWFnZGFsZW4gTGVnZW5kDQorTWFzdGVyIG9mIHRoZSBNYW5uYQ0KK01hc3RlciBvZiB0aGUgTWFyYmxlIE1hZG9ubmFzDQorTWFzdGVyIG9mIHRoZSBNYXNjb2xpIEFsdGFyDQorTWFzdGVyIG9mIHRoZSBNaWRkbGUtUmhpbmUNCitNYXN0ZXIgb2YgdGhlIE1vcnJpc29uIFRyaXB0eWNoDQorTWFzdGVyIG9mIHRoZSBPc3NlcnZhbnphDQorTWFzdGVyIG9mIHRoZSBQZnVsbGVuZG9yZiBBbHRhcg0KK01hc3RlciBvZiB0aGUgUGxheWluZyBDYXJkcw0KK01hc3RlciBvZiB0aGUgUG9sbGluZyBQYW5lbHMNCitNYXN0ZXIgb2YgdGhlIFBvcnRyYWl0cyBvZiB0aGUgUHJpbmNlcw0KK01hc3RlciBvZiB0aGUgUHJhZG8ncyBBZG9yYXRpb24gb2YgdGhlIE1hZ2kNCitNYXN0ZXIgb2YgdGhlIFByb2Nlc3Npb24NCitNYXN0ZXIgb2YgdGhlIFJlYmVsIEFuZ2Vscw0KK01hc3RlciBvZiB0aGUgUmV0YWJsbyBvZiB0aGUgUmV5ZXMgQ2F0b2xpY29zDQorTWFzdGVyIG9mIHRoZSBSaW51Y2NpbmkgQ2hhcGVsDQorTWFzdGVyIG9mIHRoZSBTYWludCBCYXJ0aG9sb21ldyBBbHRhcnBpZWNlDQorTWFzdGVyIG9mIHRoZSBTYWludCBDYXRoZXJpbmUgTGVnZW5kDQorTWFzdGVyIG9mIHRoZSBTYWludCBMdWN5IExlZ2VuZA0KK01hc3RlciBvZiB0aGUgU2FpbnQgVXJzdWxhIExlZ2VuZA0KK01hc3RlciBvZiB0aGUgU3TDtnR0ZXJpdHogQWx0YXINCitNYXN0ZXIgb2YgdGhlIFRlZ2VybnNlZSBQYXNzaW9uDQorTWFzdGVyIG9mIHRoZSBUaHVpc29uIEFsdGFycGllY2UNCitNYXN0ZXIgb2YgdGhlIFRpYmVydGluZSBTaWJ5bA0KK01hc3RlciBvZiB0aGUgVmlldyBvZiBTYWludGUgR3VkdWxlDQorTWFzdGVyIG9mIFZpcmdvIGludGVyIFZpcmdpbmVzDQorTWFzdGVyIFMuDQorTWFzdGVycyBvZiB0aGUgRm9udGFpbmVibGVhdQ0KK01hc3RlcnMsIEUuDQorTWFzdHJvaWFubmksIFVtYmVydG8NCitNYXN0cm8tVmFsZXJpbywgQWxlc3NhbmRybw0KK01hdGVqa28sIEphbg0KK01hdGhhbSwgSmFjb2INCitNYXRoZXdzLCBBcnRodXIgRnJhbmsNCitNYXRpc3NlLCBIZW5yaQ0KK01hdGlzc2UsIFBhdWwNCitNYXRzdWJhcmEsIE5hb2tvDQorTWF0dGEsIFJvYmVydG8NCitNYXR0YS1DbGFyaywgR29yZG9uDQorTWF0dGVpcywgUGFvbG8gZGUnDQorTWF0dGVvIGRhIEd1YWxkbw0KK01hdHRlbyBkaSBHaW92YW5uaQ0KK01hdHRlc29uLCBUb21wa2lucyBIYXJyaXNvbg0KK01hdHRoZXdzLCBNYXJtYWR1a2UNCitNYXR0aWFjY2ksIEVsaXNlbw0KK01hdHRpb2xpLCBDYXJsbw0KK01hdHRpcy1UZXV0c2NoLCBIYW5zDQorTWF0dWxrYSwgSmFuDQorTWF1ZnJhLCBNYXhpbWUNCitNYXVsYmVydHNjaCwgRnJhbnogQW50b24NCitNYXVwZXJjaMOpLCBIZW5yaQ0KK01hdXJlYXUsIEFscGhvbnNlDQorTWF1cmVyLCBBbGZyZWQgSGVucnkNCitNYXV2ZSwgQW50b24NCitNYXZlcmljaywgUGV0ZXIgUnVzaHRvbg0KK01heCwgUGV0ZXINCitNYXhlbmNlLCBFZGdhcg0KK01heHdlbGwsIERvbmFsZA0KK01heSwgUGhpbA0KK01heWFsbCwgSm9obiBKYWJleiBFZHdpbg0KK01heWVyLCBGcmFuayBCbGFja3dlbGwNCitNYXllci1MYW1hcnRpbmnDqHJlLCBNYXJpZS1GcmFuw6dvaXNlLUNvbnN0YW5jZQ0KK01heWhldywgRnJlZGVyaWNrIFcuDQorTWF5bm8sIEp1YW4gQmF1dGlzdGENCitNYXlyLCBDaHJpc3RpYW4NCitNYXpvLCBKdWFuIEJhdXRpc3RhIE1hcnTDrW5leiBkZWwNCitNYXp6YWN1cmF0aSwgTWFyaW5vDQorTWF6emluZ2hpLCBQaWV0cm8NCitNYXp6b2xhIEJlZG9saSwgR2lyb2xhbW8NCitNYXp6b2xpbm8sIEx1ZG92aWNvDQorTWF6em9uaSwgR3VpZG8NCitNYXp6dWNjb25pLCBNYXJjbw0KK01henp1b2xpLCBHaXVzZXBwZQ0KK01jQXZveSwgTWFyaWx5bg0KK01jQmV5LCBKYW1lcw0KK01jQ2FydGh5LCBDYXRoZXJpbmUNCitNY0NhcnRoeSwgR2FpbA0KK01jQ2FydG5leSwgTGluZGENCitNY0Nhc2xpbiwgSmFjaw0KK01jQ2xvc2tleSwgV2lsbGlhbSBKLg0KK01jQ29sbHVtLCBBbGxhbg0KK01jQ3ViYmluLCBGcmVkZXJpY2sNCitNY0Rlcm1vdHQsIEVtbWENCitNY0V2b3ksIEFtYnJvc2UNCitNY0V3ZW4sIEpvaG4NCitNY0ZhcmxhbmUsIER1bmNhbg0KK01jR2VlLCBDaGFybGVzDQorTWNJbnRvc2gsIEhhcnJpc29uDQorTWNLZW56aWUsIFJvYmVydCBUYWl0DQorTWNLaXNzaWNrLCBMb3Vpc2UNCitNY0xhdWdobGluLCBKb2huDQorTWNMZWFuLCBSaWNoYXJkDQorTWNMZWFuLCBULlcuDQorTWNNYXN0ZXIsIEdlcmFsZA0KK01jTWlsbGFuLCBMZW8NCitNY01pbGxlbiwgTWljaGFlbA0KK01jTmVpbCwgR2VvcmdlDQorTWNOaWNvbGwsIEhlbGVuDQorTWNTaGVlaHksIENvcm5lbGlhDQorTWNUYWdnYXJ0LCBXaWxsaWFtDQorTWNWZWlnaCwgQmxhbmNoZQ0KK01lYWQsIE1hcnkNCitNZWFkLCBSYXkNCitNZWFkb3dzLCBCZXJuYXJkDQorTWVhdHlhcmQsIFJhbHBoIEV1Z2VuZQ0KK01lY2tlbmVtLCBJc3JhaGVsIHZhbg0KK01lZWdhbiwgVGltDQorTWVob2ZmZXIsIErDs3plZg0KK01laWRpYXMgUGFpbnRlciwgVGhlDQorTWVpZG5lciwgTHVkd2lnDQorTWVpcmVsZXMgZGUgTGltYSwgVsOtdG9yDQorTWVpc3NuZXIsIExlbyBKLg0KK01laXNzb25pZXIsIEplYW4tTG91aXMtRXJuZXN0DQorTWVpc3Rlcm1hbm4sIEdlb3JnDQorTWVpdCwgQ29ucmFkDQorTWVsY2hlcnMsIEdhcmkNCitNZWxkcnVtLCBNYXgNCitNZWxlYWdlciBQYWludGVyLCBUaGUNCitNZWzDqW5kZXosIEx1aXMgRWdpZGlvDQorTWVsbGFuLCBDbGF1ZGUNCitNZWxsZXJ5LCBYYXZpZXINCitNZWxsaSwgUm9iZXJ0bw0KK01lbGxpcywgTWFyZ2FyZXQNCitNZWxvdHRpLCBGYXVzdG8NCitNZWxvenpvIGRhIEZvcmzDrQ0KK01lbHJvc2UsIEFuZHJldw0KK01lbHRzbmVyLCBQYXVsDQorTWVsdmlsbGUsIEFydGh1cg0KK01lbHppLCBGcmFuY2VzY28NCitNZW1saW5nLCBIYW5zDQorTWVtbWksIExpcHBvDQorTWVuYWJ1b2ksIEdpdXN0byBkZQ0KK03DqW5kZXosIExlb3BvbGRvDQorTWVuZGlldGEsIEFuYQ0KK01lbmRvemEsIEp1bmUNCitNZW5lLCBQaWVycmUtSnVsZXMNCitNZW5lc2VzIE9zb3JpbywgRnJhbmNpc2NvDQorTWVuZ2luLCBDaGFybGVzIEF1Z3VzdA0KK01lbmdzLCBBbnRvbiBSYXBoYWVsDQorTWVuacOocmUsIFBhdWwtTmljb2xhcw0KK01lbm5pZSwgU3RldmUNCitNZW5wZXMsIE1vcnRpbWVyDQorTWVuemVsLCBBZG9sZiB2b24NCitNZW56bGVyLVBheXRvbiwgQmVydGhhDQorTWVyY2nDqSwgTWFyaXVzLUplYW4tQW50b25pbg0KK01lcmNpZXIsIFBoaWxpcA0KK01lcmVkaXRoLCBKb2huDQorTWVyaWFuLCBNYXJpYSBTaWJ5bGxhDQorTcOpcmlkYSwgQ2FybG9zDQorTWVyaXZhbGUsIEZyYW5jaXMNCitNZXJsZSwgSHVndWVzDQorTWVycml0dCwgQW5uYSBMZWENCitNZXJ5b24sIENoYXJsZXMNCitNZXJ6LCBNYXJpbw0KK01lcnosIE1hcmlzYQ0KK01lc3NhZ2VyLCBBbm5ldHRlDQorTWVzc2Vyc2NobWlkdCwgRnJhbnogWGF2ZXINCitNZXNzaW5hLCBGcmFuY2VzY28NCitNZXN0cm92aWMsIEl2YW4NCitNZXQgZGUgQmxlcywgSGVucnkNCitNZXRjYWxmLCBXaWxsYXJkIExlcm95DQorTWV0ZXlhcmQsIFNpZG5leQ0KK01ldHNvbiwgR3JhaGFtDQorTWV0c3UsIEdhYnJpZWwNCitNZXR6aW5nZXIsIEplYW4NCitNZXR6bmVyLCBCYXJyeSANCitNZXVsZW4sIEFkYW0tRnJhbnogdmFuIGRlcg0KK01ldWxlbiwgU3RldmVuIHZhbiBkZXINCitNZXVyZXIsIENoYXJsZXMgQS4NCitNZXllciBJSSwgSGVuZHJpayBkZQ0KK01leWVyLCBKYW1lcw0KK01leWVyLCBKb2hhbm4gR2VvcmcNCitNZXllcm93aXR6LCBKb2VsDQorTWV5dGVucywgTWFydGluIHZhbg0KK01pIEZ1DQorTWljaGFlbHMsIEphbWVzDQorTWljaGFsbG9uLCBBY2hpbGxlIEV0bmENCitNaWNoYWxvdiwgQW5uDQorTWljaGVsLCBBbGZvbnNvDQorTWljaGVsLCBHZW9yZ2VzDQorTWljaGVsYW5nZWxvIEJ1b25hcnJvdGkNCitNaWNoZWxlIGRhIFZlcm9uYQ0KK01pY2hlbGUgUGFubm9uaW8NCitNaWNoZWxpLCBQYXJyYXNpbw0KK01pY2hlbGluLCBKZWFuDQorTWljaGVsbGksIEFuZHJlYQ0KK01pY2hlbG1vcmUsIFJpY2hhcmQNCitNaWNoZWxvenpvIGRpIEJhcnRvbG9tZW8NCitNaWVsLCBKYW4NCitNaWVsYXR6LCBDaGFybGVzIEZyZWRlcmljayBXaWxsaWFtDQorTWllbGljaCwgSGFucw0KK01pZXJldmVsZCwgTWljaGllbCBKYW5zei4NCitNaWVyaXMgdGhlIEVsZGVyLCBGcmFucyB2YW4NCitNaWVyaXMsIEphbiB2YW4NCitNaWVyaXMsIFdpbGxlbSB2YW4NCitNaWVzIHZhbiBkZXIgUm9oZSwgTHVkd2lnDQorTWlnbmFyZCwgTmljb2xhcw0KK01pZ25hcmQsIFBpZXJyZQ0KK01pZ25vbiwgQWJyYWhhbQ0KK01pZ25vdCwgTG91aXMgUsOpbXkNCitNaWpuLCBGcmFucyB2YW4gZGVyDQorTWlsYW5pLCBBdXJlbGlhbm8NCitNaWxhbmksIFVtYmVydG8NCitNaWxsYWlzLCBKb2huIEV2ZXJldHQNCitNaWxsYXIsIEphbWVzDQorTWlsbGFyZXMgU2FsbCwgTWFudWVsDQorTWlsbGVyLCBBbGZyZWQgSmFjb2INCitNaWxsZXIsIERld2V5DQorTWlsbGVyLCBGcmVkIEUuDQorTWlsbGVyLCBHZW9yZ2UgTS4NCitNaWxsZXIsIEphbWVzDQorTWlsbGVyLCBLZW5uZXRoIEhheWVzDQorTWlsbGVyLCBNZWxpc3NhDQorTWlsbGVyLCBSaWNoYXJkDQorTWlsbGVyLCBSaWNoYXJkIEVtaWwNCitNaWxsZXIsIFJvc3MNCitNaWxsZXIsIFNhbGx5DQorTWlsbGVyLCBTYW11ZWwNCitNaWxsZXIsIFdpbGxpYW0gUmlja2FyYnkNCitNaWxsZXQsIEZyYW5jaXMgRGF2aXMNCitNaWxsZXQsIEZyYW5jaXNxdWUNCitNaWxsZXQsIEplYW4tRnJhbsOnb2lzDQorTWlsbGllciwgQXJ0aHVyIEguDQorTWlsbGluZ3RvbiwgUHJvZmVzc29yDQorTWlsbmUsIERhdmlkDQorTWluZ3V6emksIEx1Y2lhbm8NCitNaW5uZSwgR2VvcmdlDQorTWlubyBkYSBGaWVzb2xlDQorTWlub3IsIEFubmUgUm9nZXJzDQorTWlub3p6aSwgRmxhbWluaW8gSW5ub2NlbnpvDQorTWludG9uLCBKb2huDQorTWlyLCBKb2FxdcOtbg0KK01pcmJlbCwgTGl6aW5rYS1BaW3DqWUtWm/DqSBkZQ0KK01pcsOzLCBKb2FuDQorTWlyb2xhLCBHaXJvbGFtbw0KK01pc2Vyb25pLCBPdHRhdmlvDQorTWl0Y2hlbGwsIEpvYW4NCitNaXRjaG5pY2ssIE5hbmN5DQorTWl0c3Vub2J1LCBIYXNlZ2F3YQ0KK01peWFqaW1hLCBUYXRzdW8NCitNb2NldHRvLCBHaXJvbGFtbw0KK01vY2hpLCBGcmFuY2VzY28NCitNb2Rlcm5vDQorTW9kZXJzb2huLUJlY2tlciwgUGF1bGENCitNb2RpZ2xpYW5pLCBBbWFkZW8NCitNb2RvdHRpLCBUaW5hDQorTW9lbGxlciwgTG91aXMgQ2hhcmxlcw0KK01vaGFseWksIFlvbGFuZGENCitNb2hvbHktTmFneSwgTMOhc3psw7MNCitNb2hybWFubiwgSm9obiBIZW5yeQ0KK01vaWxsb24sIExvdWlzYQ0KK01vbGEsIFBpZXIgRnJhbmNlc2NvDQorTW9sZHZheSwgQWxiZXJ0DQorTW9sZW5hZXIsIEphbiBNaWVuc2UNCitNb2xpbmFyaSwgR3VpZG8NCitNb2xsLCBDYXJsDQorTW9seW4sIFBpZXRlciBkZQ0KK01vbHphaG4sIEpvaGFubmVzDQorTW9tcGVyIElJLCBKb29zIGRlDQorTW9tcMOzLCBNYW51ZWwgSGVybsOhbmRleg0KK01vbmFsZGksIFBhb2xvDQorTW9uYW15LCBQZXRlcg0KK01vbmRyaWFuLCBQaWV0DQorTW9uZXQsIENsYXVkZQ0KK01vbm5pbmd0b24sIFNpciBUaG9tYXMNCitNb25ub3QsIFBpZXJyZSDDiXRpZW5uZQ0KK01vbm5veWVyLCBKZWFuLUJhcHRpc3RlDQorTW9ucm8sIERyLiBUaG9tYXMNCitNb250YWduYSwgQmFydG9sb21lbw0KK01vbnRhw7FleiwgSnVhbiBNYXJ0aW5leg0KK01vbnRhcmRpZXINCitNb250ZW5lZ3JvLCBSb2JlcnRvDQorTW9udGdvbWVyaWUsIFN0ZXdhcnQNCitNb250aSwgRnJhbmNlc2NvDQorTW9udGksIEdhZXRhbm8NCitNb250aWNlbGxpLCBBZG9scGhlLUpvc2VwaC1UaG9tYXMNCitNb250b3Jzb2xpLCBHaW92YW5uaSBBbmdlbG8NCitNb250b3lhLCBHdXN0YXZvDQorTW9udm9pc2luLCBSYXltb25kDQorTW9vZHksIFJvbmFsZA0KK01vb24tc2V1cCwgU2hpbQ0KK01vb3JlIDE4MzEtMTg5NSwgSGVucnkNCitNb29yZSwgQWxiZXJ0IEpvc2VwaA0KK01vb3JlLCBDaGFybGVzDQorTW9vcmUsIEhlbnJ5DQorTW9vcmUsIFQuDQorTW9vcmUtUGFyaywgQ2FydG9uDQorTW9veSwgSmFuDQorTW9wb3BlLCBTdGVwaGVuDQorTW9wcGV0dCwgQ2Fycm9sbA0KK01vciwgQW50aG9uaXMNCitNb3JhLCBGcmFuY2lzIEx1aXMNCitNb3JhbGRvLCBQYW9sbw0KK01vcmFsZXMsIEx1aXMgZGUNCitNb3JhbiwgRWR3YXJkDQorTW9yYW4sIEthdGUNCitNb3JhbiwgVGhvbWFzDQorTW9yYW5kaSwgR2lvcmdpbw0KK01vcmRlY2FpLCBKb3NlcGgNCitNb3JlLCBKYWNvYg0KK01vcmVhdSwgR3VzdGF2ZQ0KK01vcmVhdSwgSmVhbi1NaWNoZWwNCitNb3JlYXUsIExvdWlzIEdhYnJpZWwNCitNb3JlYXUsIEx1Yy1BbGJlcnQNCitNb3JlZWxzZSwgUGF1bHVzDQorTW9yZWxsZXQsIEZyYW7Dp29pcw0KK01vcmV0LCBIZW5yaQ0KK01vcmV0dG8gZGEgQnJlc2NpYQ0KK01vcmdhbiwgQmFyYmFyYQ0KK01vcmdhbiwgR2VvcmdpYSBXZXN0b24NCitNb3JnYW4sIExlc2xpZQ0KK01vcmdhbiwgV2lsbGlhbSBFdmFuIENoYXJsZXMNCitNb3JpIFlvc2hpdG9zaGkNCitNb3JpLCBDYW1pbG8NCitNb3JpLCBNYXJpa28NCitNb3JpbXVyYSwgWWFzdW1hc2ENCitNb3Jpc290LCBCZXJ0aGUNCitNb3JpeWFtYSwgRGFpZG8NCitNb3JsYWl0ZXIsIEdpb3ZhbiBNYXJpYQ0KK01vcmxhbmQsIEdlb3JnZQ0KK01vcmxhbmQsIEhlbnJ5IFJvYmVydA0KK01vcmxleSwgRXVnZW5lDQorTW9ybGV5LCBNYWxjb2xtDQorTW9ybG90dGksIEVubmlvDQorTW9ybywgTGlsaWFuYQ0KK01vcm9sZXMsIEplc8O6cyBCYXV0aXN0YQ0KK01vcm9uaSwgR2lvdmFubmkgQmF0dGlzdGENCitNb3Jvbm9idSwgSGlzaGlrYXdhDQorTW9ycmljZSwgSmFtZXMgV2lsc29uDQorTW9ycmlzLCBDaGFybGVzDQorTW9ycmlzLCBHZW9yZ2UgTC5LLg0KK01vcnJpcywgZ2xhc3NtYWtlciBXaWxsaWFtDQorTW9ycmlzLCBQaGlsaXAgUmljaGFyZA0KK01vcnJpcywgUm9iZXJ0DQorTW9ycmlzLCBTaXIgQ2VkcmljDQorTW9ycmlzLCBXaWxsaWFtDQorTW9ycmlzLCBXcmlnaHQNCitNb3JyaXNvbiwgR2VvcmdlDQorTW9ycmlzc2VhdSwgTm9ydmFsDQorTW9yc2UsIFNhbXVlbCBGLkIuDQorTW9ydGVuc2VuLCBSaWNoYXJkDQorTW9ydGltZXIsIEpvaG4gSGFtaWx0b24NCitNb3J0b24sIEFuZHJldw0KK01vcnRvbiwgQ2hyaXN0aW5hDQorTW9zZXMsIEVkDQorTW9zZXMsIEdyYW5kbWENCitNb3NlcywgSGVucnkNCitNb3NuaWVyLCBKZWFuLUxhdXJlbnQNCitNb3NzYSwgR3VzdGF2ZSBBZG9scGhlDQorTW9zdGFlcnQsIEphbg0KK01vdGhlcndlbGwsIFJvYmVydA0KK01vdGxleSwgQXJjaGliYWxkDQorTW90dGV0LCBKZWFuaWUgR2FsbHVwDQorTW90dGV6LCBWaWN0b3INCitNb3VjaGVyb24sIElzYWFjIGRlDQorTW91bGluLCBIeXBvbHl0ZS1BbGV4LUFuZHJlLUp1bGllbg0KK01vdW50LCBXaWxsaWFtIFNpZG5leQ0KK01vd2JyYXksIEguIFNpZGRvbnMNCitNb3luaWhhbiwgUm9kcmlnbw0KK011IFhpDQorTXVjY2luaSwgTWFyY2VsbG8NCitNdWNoYSwgQWxwaG9uc2UNCitNdWVsbGVyLCBPdHRvDQorTXVlcmFyaXR5LCBSLiBCcnVjZQ0KK03DvGhsLCBPdHRvDQorTXVsaWVyLCBQaWV0ZXINCitNw7xsbGVyLCBDaGFybGVzDQorTcO8bGxlciwgRnJpdHoNCitNdWxsZXIsIEphbiBILg0KK03DvGxsZXIsIFdpbGxpYW0gSmFtZXMNCitNdWxsaWNhbiwgTWF0dA0KK011bHJlYWR5LCBXaWxsaWFtDQorTXVsdHNjaGVyLCBIYW5zDQorTXVuYWthdGEsIFNoaWtvDQorTXVuYXJpLCBDcmlzdG9mb3JvDQorTXVuY2gsIEVkdmFyZA0KK011bmdlciwgR2lsYmVydA0KK011bmvDoWNzeSwgTWlow6FseQ0KK011bm4sIFBhdWwgU2FuZGJ5DQorTXVubmluZ3MsIFNpciBBbGZyZWQgSmFtZXMNCitNdcOxb3ogTWFydGluZXosIEx1Y2lvDQorTXXDsW96LCBKdWFuDQorTcO8bnRlciwgR2FicmllbGUNCitNdXJheSwgTmlja29sYXMNCitNdXJjaCwgV2FsdGVyDQorTXVyaWxsbywgQmFydG9sb23DqSBFc3RlYmFuDQorTXVycGh5LCBDYXRoZXJpbmUNCitNdXJwaHksIERlYm9yYWgNCitNdXJwaHksIEpvaG4gRnJhbmNpcw0KK011cnBoeSwgSm9obiBKLkEuDQorTXVycGh5LCBNaW5uaWUgTG9pcw0KK011cnBoeSwgTXlsZXMNCitNdXJwaHksIE5lbGx5IExpdHRsZWhhbGUNCitNdXJyYXksIEFsYmVydCBLLg0KK011cnJheSwgQ2hhcmxlcyBGYWlyZmF4DQorTXVycmF5LCBEci4gSm9obg0KK011cnJheSwgRWxpemFiZXRoDQorTXVycmF5LCBSb2JlcnQNCitNdXNncmF2ZSwgR2VvcmdlDQorTXVzaWtpeXNreSwgR3JpZ29yaWlzDQorTXVzc2NoZXIsIE1pY2hpZWwgdmFuDQorTXVzc29mZiwgSm9keQ0KK011eWJyaWRnZSwgRWFkd2VhcmQNCitNdXppYW5vLCBHaXJvbGFtbw0KK015ZXJzLCBKZXJvbWUNCitNeXRlbnMgdGhlIEVsZGVyLCBEYW5pZWwNCitOYWRhciwgRsOpbGl4DQorTmFkZWxtYW4sIEVsaWUNCitOYWdhaGlkZSwgWcO7cmFrdXNhaQ0KK05haGwsIENoYXJsZXMgQ2hyaXN0aWFuDQorTmFraWFuLCBSZXViZW4NCitOYWxkaW5pLCBHaW92YW5uaSBCYXR0aXN0YQ0KK05hbWluZ2hhLCBEYW4NCitOYW1wZXlvDQorTmFubmkgZGkgQmFuY28NCitOYW5uaSBkaSBCYXJ0b2xvDQorTmFudGV1aWwsIEPDqWxlc3RpbiBGcmFuw6dvaXMNCitOYW50ZXVpbCwgUm9iZXJ0DQorTmFwbGVzIFBhaW50ZXIsIFRoZQ0KK05hcmRvIGRpIENpb25lDQorTmFyZG8sIE1hcmlvdHRvIGRpDQorTmFyb3ZlYywgRy4NCitOYXNoLCBEYXZpZA0KK05hc2gsIEZyZWRlcmljaw0KK05hc2gsIEpvaG4NCitOYXNoLCBQYXVsDQorTmFzbXl0aCwgUGF0cmljaw0KK05hc29uLCBHZXJ0cnVkZQ0KK05hc29uLCBUaG9tYXMgV2lsbG91Z2hieQ0KK05hc3QsIFRob21hcw0KK05hdGtpbiwgUm9iZXJ0DQorTmF0b2lyZSwgQ2hhcmxlcyBKb3NlcGgNCitOYXR0LCBQaG9lYmUgRGF2aXMNCitOYXR0ZXMsIEpvaG4gQ2xhdWRlDQorTmF0dGllciwgSmVhbi1NYXJjDQorTmF1bWFuLCBCcnVjZQ0KK05hdmV6LCBGcmFuw6dvaXMtSm9zZXBoDQorTmF5LCBFcm5zdCBXaWxoZWxtDQorTmF5bG9yLCBNYXJpZSBKLg0KK05lYWdsZSwgSm9obg0KK05lYWxlLCBKb2huIFByZXN0b24NCitOZWJvdCwgQmFsdGhhemFyDQorTmVlZmZzIEksIFBlZXRlcg0KK05lZWwsIEFsaWNlDQorTmVlbCwgRGF2aWQNCitOZWVyLCBBZXJ0IHZhbiBkZXINCitOZWVyLCBFZ2xvbiBIZW5kcmljayB2YW4gZGVyDQorTmVmZiwgQmlsbA0KK07DqGdyZSwgQ2hhcmxlcw0KK05lZ3JpLCBNYXJpbw0KK05laGxpZywgVmljdG9yDQorTmVsc29uLCBFcmljDQorTmVyZHJ1bSwgT2RkDQorTmVyZ2VyLCBFdGhlbCBQZWFyY2UNCitOZXJpIGRpIEJpY2NpDQorTmVyaSwgTWFudWVsDQorTmVyb2NjaW8NCitOZXNiaXR0LCBMb3dlbGwNCitOZXNmaWVsZCwgV2lsbGlhbSBBbmRyZXdzDQorTmVzdGVyb3YsIE1pa2hhaWwgVmFzaWwnZXZpY2gNCitOZXRzY2hlciwgQ2FzcGFyDQorTmV0emVyLCBEb24NCitOZXVmY2hhdGVsLCBOaWNvbGFzDQorTmV1bWFubiwgR2lsYmVydCBGLg0KK05ldXZpbGxlLCBBbHBob25zZS1NYXJpZS1BZG9scGhlIGRlDQorTmV2ZWxzb24sIExvdWlzZQ0KK05ldmluc29uLCBDaHJpc3RvcGhlciBSaWNoYXJkIFd5bm5lDQorTmV2aXR0LCBSaWNoYXJkIEJhcnJpbmd0b24NCitOZXdkaWdhdGUsIEFubg0KK05ld2hhbGwsIEhhcnJpb3QNCitOZXdtYW4sIEJhcm5ldHQNCitOZXdtYW4sIEpvaG4NCitOZXdtYW4sIFJpY2hhcmQNCitOZXducywgQmlsbA0KK05ld3RvbiwgQW5uIE1hcnkNCitOZXd0b24sIEdpbGJlcnQgU3R1YXJ0DQorTmV3dG9uLCBMaWxpYXMgVG9ycmFuY2UNCitOZXd0b24sIFNpciBXaWxsaWFtDQorTmljY29sw7IgZCdBbmdlbG8NCitOaWNjb2xvIERlbGwnQXJjYQ0KK05pY2NvbG8gZGkgQnVvbmFjY29yc28NCitOaWNjb2zDsiBkaSBTZXIgU296em8gVGVnbGlhY2NpDQorTmljY29sw7IgRmlvcmVudGlubw0KK05pY2hvbGxzLCBCdXJyDQorTmljaG9sbHMsIFJob2RhIEhvbG1lcw0KK05pY2hvbHMsIERhbGUNCitOaWNob2xzb24sIEJlbg0KK05pY2hvbHNvbiwgRnJhbmNpcw0KK05pY2hvbHNvbiwgTWFiZWwNCitOaWNob2xzb24sIFNpciBXaWxsaWFtDQorTmljaG9sc29uLCBUaG9tYXMgSGVucnkNCitOaWNob2xzb24sIFdpbmlmcmVkDQorTmljaywgR2VvcmdlDQorTmlja2VsLCBHcmFjZQ0KK05pY2xhdXMgb2YgSGFndWVuYXUNCitOaWNvZGVtbyBkYSBHdWFyZGlhZ3JlbGUNCitOaWNvbCwgRXJza2luZQ0KK05pY29sYSBkYSBVcmJpbm8NCitOaWNvbGEgZGkgTWFlc3RybyBBbnRvbmlvIGQnQW5jb25hDQorTmljb2xhdXMNCitOaWNvbGwsIE1hcmlvbg0KK05pY29sw7INCitOaWNvbG8gZGEgQm9sb2duYQ0KK05pY29sbyBkZSBCb25pcw0KK05pY29zaWEsIE5pYw0KK05pZWxzZW4sIEphaXMNCitOaWVsc2VuLCBLYXkNCitOaWxzc29uLCBHbGFkeXMNCitOaW9iaWQgUGFpbnRlciwgVGhlDQorTml0c2NoLCBIZXJtYW5uDQorTml4LCBEYXJ3aW4NCitOaXhvbiwgSm9iDQorTml4b24sIEpvaG4NCitOb2RhLCBUZXRzdXlhDQorTm9lbCwgU2NvdHQNCitOb2dhcmksIEdpdXNlcHBlDQorTm9ndWNoaSwgSXNhbXUNCitOb2xhbiwgU2lkbmV5DQorTm9sYW5kLCBDYWR5DQorTm9sYW5kLCBLZW5uZXRoDQorTm9sZGUsIEVtaWwNCitOb2xsZWtlbnMsIEpvc2VwaA0KK05vbmVsbCwgSXNpZHJvDQorTm9vbXMsIFJlaW5pZXINCitOb29yZHQsIEpvYW4gdmFuDQorTm9yZGZlbGR0LCBCcm9yIEp1bGl1cyBPbHNzb24NCitOb3JkbWFuLCBNYXJpYQ0KK05vcnRoLCBGLkUuDQorTm9ydGhjb3RlLCBKYW1lcw0KK05vc2V3b3J0aHksIEdlb3JnZQ0KK05vdXJzZSwgRWxpemFiZXRoDQorTm92ZWxsaSwgUGlldHJvIEFudG9uaW8NCitOdW5leiBkZSBWaWxsYXZpY2VuY2lvLCBQZWRybw0KK051bmV6IGRlbCBWYWxsZSwgUGVkcm8NCitOdcOxZXosIEd1aWxsZXJtbw0KK051dHQsIEppbQ0KK051dmFxdWlycSwgTW9zZXNpZQ0KK051dm9sb25lLCBDYXJsbyBGcmFuY2VzY28NCitOdXllbiwgV2lqbmFuZA0KK051emksIEFsbGVncmV0dG8NCitPYWtsZXksIFZpb2xldA0KK8OTYmlkb3MsIEpvc2VmYSBkZQ0KK08nQnJpZW4sIEpvaG4NCitPJ0JyaWVuLCBMdWNpdXMgUi4NCitPY2FtcG8sIElzaWRvcm8NCitPY2hzbmVyLCBFcm5lc3QNCitPY2h0ZXJ2ZWx0LCBKYWNvYg0KK09jaHRtYW4sIERvcm90aHkNCitPY2h0bWFuLCBNaW5hIEZvbmRhDQorTydDb25ub3IsIEphbWVzIEFydGh1cg0KK09kamlnLCBEYXBobmUNCitPZG9tLCBSYW5keSBFLg0KK09lbHNjaGlnLCBBdWd1c3RhDQorT2ZmbmVyLCBFbGxpb3QNCitPZ2F0YSBLb3Jpbg0KK08nR29ybWFuLCBKdWFuDQorTydIaWdnaW5zLCBQYWJsbw0KK09ociwgR2VvcmdlIEUuDQorT2h0YWtlLCBUb21pZQ0KK08nS2VlZmZlLCBHZW9yZ2lhDQorT2xkZW5idXJnLCBDbGFlcw0KK09sZGVybWFubg0KK09sZGZpZWxkLCBPdGlzIFcuDQorT2xkcywgRWxpemFiZXRoDQorT2xpdmVpcmEsIE5hdGhhbg0KK09saXZlciwgSXNhYWMNCitPbGl2ZXIsIE1hZGdlDQorT2xpdmVyLCBULiBDbGFyaw0KK09saXZlciwgV2lsbGlhbQ0KK09sb3dlIG9mIElzZQ0KK09sdG9zDQorT21haGEgUGFpbnRlciwgVGhlDQorT25kZXJkb25rLCBSb2JlcnQNCitPJ05laWxsLCBHZW9yZ2UgQmVybmFyZA0KK09ub2ZyaWosIENyZXNjZW56aW8NCitPbm9mcmlvLCBKdWR5DQorT25vc2F0bywgVG9zaGlub2J1DQorT29uYXJrLCBKZXNzaWUNCitPb3N0IHRoZSBFbGRlciwgSmFjb2IgdmFuDQorT29zdHNhbmVuLCBKYWNvYiBDb3JuZWxpc3ogdmFuDQorT3BhbGthLCBSb21hbg0KK09wYXpvIEJlcm5hbGVzLCBSb2RvbGZvDQorT3BpZSwgSm9obg0KK09waWUsIEp1bGlhbg0KK09waXR6LCBHZW9yZyBFbWFudWVsDQorT3BwZW5oZWltLCBEZW5uaXMNCitPcHBlbmhlaW0sIE1lcmV0DQorT3BwZW5oZWltLCBNb3JpdHogRGFuaWVsDQorT3BwZW5oZWltZXIsIEouDQorT3BzdGFsLCBHZXJhcmQgdmFuDQorT3JhbSwgVy4NCitPcmF6aW8gRGUgRmVycmFyaQ0KK09yY2FnbmEsIEFuZHJlYSBkaQ0KK09yY2hhcmRzb24sIFNpciBXaWxsaWFtIFF1aWxsZXINCitPcmxleSwgQmVybmFlcnQgdmFuDQorT3Jsb2ZmLCBHcmVnb3J5DQorT3JvemNvIFJvbWVybywgQ2FybG9zDQorT3JvemNvLCBKb3PDqSBDbGVtZW50ZQ0KK09ycGVuLCBTaXIgV2lsbGlhbQ0KK09ycmVudGUsIFBlZHJvDQorT3JzaSwgTGVsaW8NCitPcnNvDQorT3J0aXosIEFuZ2VsDQorT3J0aXosIEZyYW5jaXNjbyBQcmFkaWxsYQ0KK09ydG1hbiwgR2VvcmdlDQorT3J0b2xhbm8gRmVycmFyZXNlDQorT3J0dXphciBXb3J0aGluZ3RvbiwgQ2FybG9zDQorT3MsIFBpZXRlciBHZXJhcmR1cyB2YW4NCitPc2FpDQorT3NiZXJ0LCBBbHBob25zZQ0KK09zYm9ybiwgRW1pbHkgTWFyeQ0KK09zYm9ybiwgV2lsbGlhbSBFdmVseW4NCitPc2Jvcm5lLCBNYWxjb2xtDQorT3Nib3JuZSwgTWljaGFlbA0KK09zYm9ybmUsIFdhbHRlciBGcmVkZXJpY2sNCitPc2dvb2QsIENoYXJsZXMNCitPc2h1aXRvcSwgTmluZ2VldWdhDQorT3NvcmlvLCBQZXDDs24NCitPc3NvcmlvLCBBbGZvbnNvDQorT3N0YWRlLCBBZHJpYWVuIHZhbg0KK09zdGFkZSwgSXNhYWNrIHZhbg0KK09zdGhhdXMsIEVkbXVuZCBIZW5yeQ0KK09zdWl0b2ssIElwZWVsZWUNCitPJ1N1bGxpdmFuLCBUaW1vdGh5DQorT3RlaXphIEVtYmlsLCBKb3JnZSBkZQ0KK090ZXJvLCBQYXVsDQorT3R0ZXJzb24sIEpvZWwNCitPdHRsZXksIFdpbGxpYW0gWW91bmcNCitPdWF0dGFyYQ0KK091ZHJ5LCBKZWFuLUJhcHRpc3RlDQorT3VpemlsbGUsIENoYXJsZXMNCitPdWxlc3MsIFdhbHRlciBXaWxsaWFtDQorT3VsdG9uLCBUaMOpcsOoc2UNCitPdXJzbGVyLCBUb255DQorT3V0dGVyYnJpZGdlLCBKb2huDQorT3ZlbnMsIErDvHJnZW4NCitPdmVyYmVjaywgSm9oYW5uIEZyaWVkcmljaA0KK093ZW4sIFdpbGxpYW0NCitQYWJsbyBkZSBTYW4gTGVvY2FkaW8NCitQYWNlY2NvIGRlIFJvc2ENCitQYWNoZXIsIE1pY2hhZWwNCitQYWNpbm8gZGkgQm9uYWd1aWRhDQorUGFlbGluY2ssIEpvc2VwaA0KK1BhZ2FuaSwgR3JlZ29yaW8NCitQYWdhbmluLCBHaW92YW5uaQ0KK1BhZ2UsIEVkd2FyZCBBLg0KK1BhZ2UsIFdpbGxpYW0NCitQYWksIEpvaG4NCitQYWlrLCBOYW0gSnVuZQ0KK1Bham91LCBBdWd1c3Rpbg0KK1BhbGFjaW9zLCBGcmFuY2lzY28gZGUNCitQYWxhZGlubywgTWltbW8NCitQYWxhenVlbG8sIFBhYmxvDQorUGFsZW5jaWEsIEJlbmphbcOtbg0KK1BhbGlzc3ksIEJlcm5hcmQNCitQYWxsYWRpbywgQW5kcmVhDQorUGFsbWEgR2lvdmFuZQ0KK1BhbG1hIFZlY2NoaW8NCitQYWxtZXIsIEFsZnJlZCBIZXJiZXJ0DQorUGFsbWVyLCBFcmFzdHVzIERvdw0KK1BhbG1lciwgRnJhbmNlcyBGbG9yYSBCb25kDQorUGFsbWVyLCBIZXJiZXJ0IFMuDQorUGFsbWVyLCBTYW11ZWwNCitQYWxtZXp6YW5vLCBNYXJjbw0KK1BhbXBoYWlvcw0KK1BhbiBQYWludGVyLCBUaGUNCitQYW4gVGlhbnNob3UNCitQYW4gWXVsaWFuZw0KK1BhbmFtYXJlbmtvDQorUGFuY2V0dGksIEpvc8OpDQorUGFuY2hvIFYNCitQYW5nIFRhbw0KK1BhbmcgWHVucWluDQorUGFubmluaSwgR2lvdmFubmkgUGFvbG8NCitQYW51bnppLCBCZW5pdG8NCitQYW9saW5pLCBHaXVsaW8NCitQYW9sbyBkaSBHaW92YW5uaSBGZWkNCitQYW9sbyBSb21hbm8NCitQYW9sbyBWZW5lemlhbm8NCitQYW9sb3p6aSwgRWR1YXJkbw0KK1BhcGFnZW9yZ2UsIEdlb3JnaWUNCitQYXDDqXR5LCBEb21pbmlxdWUgTG91aXMNCitQYXJlbnphbm8sIEJlcm5hcmRpbm8NCitQYXJpcywgTWF0dGhldw0KK1BhcmlzaCwgRGF2aWQNCitQYXJrLCBEYXZpZA0KK1BhcmssIExpbnRvbg0KK1BhcmtlciwgQmFycnkNCitQYXJrZXIsIExhd3Rvbg0KK1BhcmtlciwgV2lsbGlhbSBBLg0KK1BhcmtzLCBHb3Jkb24NCitQYXJsZXIsIFBldGVyDQorUGFybWlnaWFuaW5vDQorUGFyb2RpLCBGaWxpcHBvDQorUGFycg0KK1BhcnIsIE1pa2UNCitQYXJyaXMsIEVkbXVuZCBUaG9tYXMNCitQYXJyaXNoLCBNYXhmaWVsZA0KK1BhcnJvdHQsIFdpbGxpYW0NCitQYXJzLCBXaWxsaWFtDQorUGFyc29ucywgQWxmcmVkDQorUGFyc29ucywgQ2hhcmxlcw0KK1BhcnNvbnMsIFBhdWwNCitQYXJ0cmlkZ2UsIE5laGVtaWFoDQorUGFydHJpZGdlLCBSb2kNCitQYXNjYWxpLCBQaW5vDQorUGFzY2hrZSwgRWR3YXJkDQorUGFzY2luLCBKdWxlcw0KK1Bhc2luZWxsaSwgTG9yZW56bw0KK1Bhc21vcmUsIFZpY3Rvcg0KK1Bhc3F1aWVyLCBQaWVycmUNCitQYXNzZXJpLCBHaXVzZXBwZQ0KK1Bhc3Nlcm90dGksIEJhcnRvbG9tZW8NCitQYXRhcywgQ2hhcmxlcyBFbW1hbnVlbA0KK1BhdGVsLCBQaWVycmUNCitQYXRlciwgSmVhbi1CYXB0aXN0ZSBKb3NlcGgNCitQYXRpbmlyLCBKb2FjaGltDQorUGF0b24sIFNpciBKb3NlcGggTm9lbA0KK1BhdHJpY2ssIEphbWVzIE1jSW50b3NoDQorUGF0dGVpbiwgQ2VzYXINCitQYXR0ZW4sIEdlb3JnZQ0KK1BhdHRlbiwgV2lsbGlhbQ0KK1BhdWRpc3MsIENocmlzdG9waGVyDQorUGF1bCwgSm9zZXBoDQorUGF1bHNlbiwgQnJpYW4NCitQYXhzb24sIEVkZ2FyIFMuDQorUGF4c29uLCBFdGhlbA0KK1BheHRvbiwgV2lsbGlhbSBNY0dyZWdvcg0KK1BheWV0dGUsIEphY3F1ZXMNCitQYXluZSwgRWRnYXIgQWx3aW4NCitQYXluZSwgRWxzaWUNCitQYXluZSwgSGVucnkgQXJ0aHVyDQorUGF5bmUsIEpvbiwgQ01MDQorUGF5bmUsIFdpbGxpYW0NCitQZWFrZSwgUm9iZXJ0DQorUGVhbGUsIEFubmEgQ2xheXBvb2xlDQorUGVhbGUsIENoYXJsZXMgV2lsbHNvbg0KK1BlYWxlLCBIYXJyaWV0IENhbnkNCitQZWFsZSwgSmFtZXMNCitQZWFsZSwgTWFyZ2FyZXR0YSBBbmdlbGljYQ0KK1BlYWxlLCBNYXJ5DQorUGVhbGUsIFJhcGhhZWxsZQ0KK1BlYWxlLCBSZW1icmFuZHQNCitQZWFsZSwgUnViZW5zDQorUGVhbGUsIFNhcmFoIE1pcmlhbQ0KK1BlYWxlLCBUaXRpYW4NCitQZWFyY2UsIENoYXJsZXMgU3ByYWd1ZQ0KK1BlYXJjZSwgRWR3YXJkDQorUGVhcmNlLCBHYXJ5DQorUGVhcmxzdGVpbiwgUGhpbGlwDQorUGVhcnNvbiwgQnJ1Y2UNCitQZWFyc29uLCBNYXJndWVyaXRlIFN0dWJlcg0KK1BlYXJzb24sIE1hcnkgTWFydGhhDQorUGVjaHN0ZWluLCBNYXgNCitQZWNodCwgQXVndXN0IEZyaWVkcmljaA0KK1BlY2ssIEF1Z3VzdHVzIEguDQorUGVkcm8gZGUgbGEgQ3VhZHJhDQorUGVkcm8gZGUgTWVuYQ0KK1BlZWQsIE1pY2hhZWwNCitQZWVsLCBQYXVsDQorUGVldGVycyBJLCBCb25hdmVudHVyYQ0KK1BlZXRlcnMsIENsYXJhDQorUGVpLCBJLk0uDQorUGVsaGFtLCBQZXRlcg0KK1BlbGxhbiwgQWxmcmVkDQorUGVsbGVncmluLCBIb25vcsOpDQorUGVsbGVncmluaSwgRG9tZW5pY28NCitQZWxsZWdyaW5pLCBHaW92YW5uaSBBbnRvbmlvDQorUGVsb3VzZSwgTMOpb24tR2VybWFpbg0KK1BlbHMsIE1hcnNoYQ0KK1BlbWJlcnRvbiwgU29waGllDQorUGXDsWEsIFRvbml0YQ0KK1BlbmNrLCBBLlIuDQorUGVuY3osIEdlb3JnDQorUMOobmUgZHUgQm9pcywgR3V5DQorUGVubiwgSXJ2aW5nDQorUGVubmVsbCwgSm9zZXBoDQorUGVubmksIEdpb3ZhbiBGcmFuY2VzY28NCitQZW5uaW5ndG9uLCBCdWQNCitQZW5uaW5ndG9uLCBIYXJwZXINCitQZW5vbmUsIEdpdXNlcHBlDQorUGVucm9zZSwgU2lyIFJvbGFuZA0KK1BlbnNpb25hbnRlIGRlbCBTYXJhY2VuaQ0KK1BlcGlvbiwgRXJuaWUNCitQZXBwZXIsIEJldmVybHkNCitQZXJhY2lubywgTG9yZW56bw0KK1BlcmN5LCBMYWR5IFN1c2FuIEVsaXphYmV0aA0KK1BlcmVkYSwgQW50b25pbyBkZQ0KK1BlcmVodWRvZmYsIFdpbGxpYW0NCitQZXJlaXJhLCBJLiBSaWNlDQorUGVyZXNzLCBHaWxsZXMNCitQZXJleiwgQXVndXN0bw0KK1Blcmlnbm9uIEksIEFsZXhpcyBOaWNvbGFzDQorUGVyaW5vIGRlbCBWYWdhDQorUGVybGluLCBSYWUNCitQZXJtb3NlciwgQmFsdGhhc2FyDQorUGVycmF1ZCwgUGhpbGliZXJ0DQorUGVycsOpYWwsIEplYW4NCitQZXJyaW4sIFBoaWxpcHBlDQorUGVycm9ubmVhdSwgSmVhbi1CYXB0aXN0ZQ0KK1BlcnJ5LCBDbGFyYSBHcmVlbmxlYWYNCitQZXJyeSwgTGlsbGEgQ2Fib3QNCitQZXJzaWNvLCBNYXJpbw0KK1BlcnVnaW5pLCBDaGFybGVzIEUuDQorUGVydWdpbm8sIFBpZXRybw0KK1Blc2VsbGlubw0KK1Blc25lLCBBbnRvaW5lDQorUGV0ZWwsIErDtnJnDQorUGV0ZXJkaSwgR2Fib3INCitQZXRlcnNvbiwgSmFjb2INCitQZXRlcnNvbiwgSmFuZQ0KK1BldGVyc29uLCBMYXJyeQ0KK1BldGhlciwgQWJyYWhhbQ0KK1BldGhpY2ssIEplcnJ5DQorUGV0bywgSm9obiBGcmVkZXJpY2sNCitQZXRyYXNjdSwgR2hlb3JnaGUNCitQZXR0ZW5rb2ZlbiwgQXVndXN0IFhhdmVyIEthcmwNCitQZXR0ZXIsIEZyYW56IFhhdmVyDQorUGV0dGllLCBKb2huDQorUGV0dGl0LCBDYXJvbA0KK1BldHRyaWNoLCBGZXJkaW5hbmQNCitQZXlyb24sIFBpZXJyZQ0KK1BmYWZmLCBKdWR5DQorUGZlaWxlciwgTWF4aW1pbGlhbg0KK1Bmb3JyLCBGcmFueg0KK1BoaWFsZSBQYWludGVyDQorUGhpZGlhcw0KK1BoaWxsaXAsIEpvaG4NCitQaGlsbGlwcywgQW1taQ0KK1BoaWxsaXBzLCBHb3Jkb24NCitQaGlsbGlwcywgTGF1cmENCitQaGlsbGlwcywgTWFyam9yaWUNCitQaGlsbGlwcywgUGV0ZXINCitQaGlsbGlwcywgUmljaGFyZA0KK1BoaWxsaXBzLCBUb20NCitQaGlsbGlwcywgV2FsdGVyIEouDQorUGhpbHBvdCwgR2x5bg0KK1Bocnlub3MgUGFpbnRlciwgVGhlDQorUGlhemV0dGEsIEdpb3Zhbm5pIEJhdGlzdGENCitQaWF6emEsIENhbGxpc3RvDQorUGljYWJpYSwgRnJhbmNpcw0KK1BpY2FydCwgQmVybmFyZA0KK1BpY2Fzc28sIFBhYmxvDQorUGlja2Vub3ksIE5pY29sYWVzIEVsaWFzei4NCitQaWNrZXJzZ2lsbCwgRnJlZGVyaWNrIFJpY2hhcmQNCitQaWNrZXJzZ2lsbCwgSGVucnkgSGFsbA0KK1BpY2tlcnNnaWxsLCBIZW5yeSBXaWxsaWFtDQorUGllcmlubyBkYSBWaW5jaQ0KK1BpZXJvIGRlbGxhIEZyYW5jZXNjYQ0KK1BpZXJvIGRpIENvc2ltbw0KK1BpZXJyZSwgSmVhbi1CYXB0aXN0ZSBNYXJpZQ0KK1BpZXQsIEZlcm5hbmQNCitQaWV0ZXJzeiB0aGUgWW91bmdlciwgUGlldGVyDQorUGlldHJvIGRhIENvcnRvbmENCitQaWV0cm8gZGEgUmhvDQorUGlldHJvIGRlZ2xpIEluZ2FubmF0aQ0KK1BpZXRybyBkaSBHaW92YW5uaSBkJ0FtYnJvZ2lvDQorUGlldHRlLCBMdWRvdmljDQorUGlnYWxsZSwgSmVhbi1CYXB0aXN0ZQ0KK1BpZ25vbmksIFNpbW9uZQ0KK1Bpa2UsIEpvaG4NCitQaWxsZW1lbnQsIEplYW4gQmFwdGlzdGUNCitQaWxvLCBDYXJsIEd1c3RhZg0KK1BpbG9uLCBHZXJtYWluDQorUGlscywgSXNpZG9yZQ0KK1BpbmFpZ2llcnMsIEplYW4NCitQaW5kZWxsLCBIb3dhcmRlbmENCitQaW5lLCBSb2JlcnQgRWRnZQ0KK1BpbmUsIFRoZW9kb3JlIEUuDQorUGluZWRhLCBKb3NlDQorUGlua25leSwgSmVycnkNCitQaW5uZXksIEV1bmljZQ0KK1BpbnR1cmljY2hpbw0KK1BpbnR6LCBKb2hhbm4gR2VvcmcNCitQaW9sYSwgRG9tZW5pY28NCitQaXBlciwgSm9obg0KK1BpcGVyLCBSb3NlDQorUGlwcGluLCBIb3JhY2UNCitQaXF0b3VrdW4sIERhdmlkIFJ1YmVuDQorUGlyYW5lc2ksIEdpb3Zhbm5pIEJhdHRpc3RhDQorUGlzYW5lbGxvDQorUGlzYW5pLCBHaWFubmkNCitQaXNhbmksIFZldHRvcg0KK1Bpc2FubywgQW5kcmVhDQorUGlzYW5vLCBHaW92YW5uaQ0KK1Bpc2FubywgTmljb2xhDQorUGlzYW5vLCBOaW5vDQorUGlzc2Fycm8sIENhbWlsbGUNCitQaXNzYXJybywgTHVjaWVuDQorUGlzdG9sZXR0bywgTWljaGVsYW5nZWxvDQorUGl0c2l1bGFrLCBMaXBhDQorUGl0dG1hbiwgTGFyaQ0KK1BpdHRvbmksIEdpb3Zhbm5pIEJhdHRpc3RhDQorUGl6YSwgQXJ0aHVyIEx1aXoNCitQaXp6aW5hdG8sIEFybWFuZG8NCitQbGFjZSwgRnJhbmNpcw0KK1BsYW1vbmRvbiwgQW50b2luZQ0KK1BsYXMsIFBpZXRlciB2YW4gZGVyDQorUGxhdHplciwgSm9oYW5uIEdlb3JnDQorUGxlaXNzbmVyLCBPZ2Rlbg0KK1BsZXBwLCBKb3NlcGgNCitQbGV5ZGVud3VyZmYsIEhhbnMNCitQb2NjaSwgR3JhZiBGcmFueiBWb24NCitQb2NvY2ssIElzYWFjDQorUG9jb2NrLCBOaWNob2xhcw0KK1BvZWwsIEVnYmVydCB2YW4gZGVyDQorUG9lbGVuYnVyZ2gsIENvcm5lbGlzIHZhbg0KK1BvZ2dpbmksIERvbWVuaWNvDQorUG9pbnQsIEFybWFuZA0KK1BvbGFjaywgSmFuDQorUG9sZW5vdiwgVmFzaWxpeQ0KK1BvbGlha29mZiwgU2VyZ2UNCitQb2xpZG9ybyBMYW56YW5pDQorUG9saywgQ2hhcmxlcyBQZWFsZQ0KK1BvbGtlLCBTaWdtYXINCitQb2xsYWlvbG8sIEFudG9uaW8NCitQb2xsYWlvbG8sIFBpZXJvDQorUG9sbGFyZCBMaW1uZXIsIFRoZQ0KK1BvbGxhcmQsIEphbWVzDQorUG9sbGFyZCwgUm9iZXJ0DQorUG9sbG9jaywgSmFja3Nvbg0KK1BvbGxvY2ssIEpvaG4NCitQb2xvcywgVGhlb2RvcmUgQy4NCitQb2x5Z25vdG9zDQorUG9tbWVyLCBKdWxpdXMgSi4NCitQb21vZG9ybywgR2nDsg0KK1BvbsOnLCBKb2FuDQorUG9uY2UgZGUgTGVvbiB5IENhYmVsbG8sIEFsZm9uc28NCitQb250LCBDaGFybGVzIEVybmVzdA0KK1BvbnRvcm1vDQorUG9vbGUsIEFicmFtDQorUG9vbnMsIExhd3JlbmNlDQorUG9vdG9vZ29vaywgS2FuYW5naW5haw0KK1BvcGUgSnIuLCBDYXJsIFJvYmVydA0KK1BvcG92YSwgTGl1Ym92DQorUG9wcGksIElsDQorUG9yY2VsbGlzLCBKYW4NCitQb3JkZW5vbmUsIElsDQorUG9ydGEsIEdpYWNvbW8gZGVsbGENCitQb3J0YSwgR2l1c2VwcGUNCitQb3J0YSwgR3VnbGllbG1vIGRlbGxhDQorUG9ydGFpbCwgSmFjcXVlcyBBbmRyw6kNCitQb3J0ZXIsIEJyaWFuDQorUG9ydGVyLCBDaGFybGVzDQorUG9ydGVyLCBGYWlyZmllbGQNCitQb3J0ZXIsIFNpciBSb2JlcnQgS2VyDQorUG9ydGluYXJpLCBDYW5kaWRvDQorUG9zYWRhLCBKb3PDqSBHdWFkYWx1cGUNCitQb3N0LCBGcmFucw0KK1BvdCwgSGVuZHJpY2sgR2Vycml0c3ouDQorUG90cmUsIExlDQorUG90dGVyLCBCZWF0cml4DQorUG90dGVyLCBDYXJ0ZXINCitQb3R0ZXIsIEZyYW5rIEh1ZGRsZXN0b25lDQorUG90dGVyLCBNYXJ5DQorUG90dGVyLCBNaWtlDQorUG90dGVyLCBQYXVsdXMNCitQb3R0aGFzdCwgRWR3YXJkIEhlbnJ5DQorUG91Z255LCBKZWFuDQorUG91cmJ1cyB0aGUgRWxkZXIsIEZyYW5zDQorUG91cmJ1cyB0aGUgWW91bmdlciwgRnJhbnMNCitQb3VyYnVzLCBQaWV0ZXINCitQb3VzZXR0ZS1EYXJ0LCBSaWNoYXJkDQorUG91c3NpbiwgTmljb2xhcw0KK1Bvd2VsbCwgSm9zZXBoDQorUG93ZXJzLCBBc2FoZWwNCitQb3dlcnMsIEhpcmFtDQorUG93ZXJzLCBNYXJpb24NCitQb3lldCwgSmVhbg0KK1BveW50ZXIsIFNpciBFZHdhcmQNCitQb3p6YXR0aSwgUnVkeQ0KK1BvenppLCBMdWNpbw0KK1BvenpvLCBBbmRyZWENCitQcmFkaWVyLCBKYW1lcw0KK1ByYWRvLCBNYXJpbmEgTnXDsWV6IGRlbA0KK1ByYW1wb2xpbmksIEVucmljbw0KK1ByYW5naG9mZXIsIEZyYW5rDQorUHJhdHQsIEJlbGEgTHlvbg0KK1ByYXR0LCBDaHJpc3RvcGhlcg0KK1ByYXR0LCBGcmFuY2VzDQorUHJhdHQsIE1hcnkNCitQcmF0dCwgTWF0dGhldw0KK1ByYXhpdGVsZXMNCitQcmVkYXRvcg0KK1ByZWRpcywgQW1icm9naW8gZGUNCitQcmVuZGVyZ2FzdCwgQ2hhcmxlcw0KK1ByZW5kZXJnYXN0LCBNYXVyaWNlDQorUHJlbnRpY2UsIExldmkgV2VsbHMNCitQcmVzdG9uLCBKZXNzaWUgR29vZHdpbg0KK1ByZXN0b24sIE1hcmdhcmV0DQorUHJlc3RvcGlubywgR3JlZ29yaW8NCitQcmV0aSwgTWF0dGlhDQorUHJpY2UsIElyZW5lDQorUHJpZXVyLCBCYXJ0aMOpbMOpbXkNCitQcmlra2VyLCBKb2hhbiBUaG9ybg0KK1ByaW1hdGljY2lvLCBGcmFuY2VzY28NCitQcmluY2UsIFJpY2hhcmQNCitQcmluZ2xlLCBKLg0KK1ByaW5nbGUsIEpvaG4gUXVpbnRvbg0KK1ByaW5zZXAsIFZhbGVudGluZSBDYW1lcm9uDQorUHJpbnNlcCwgV2lsbGlhbQ0KK1ByaW50eiwgSGFuaw0KK1ByaW9yLCBTY290dA0KK1ByaW9yLCBXaWxsaWFtIE1hdHRoZXcNCitQcm9jYWNjaW5pIElsIEdpb3ZhbmUsIEVyY29sZQ0KK1Byb2NhY2NpbmksIEdpdWxpbyBDZXNhcmUNCitQcm9jdGVyLCBEb2QNCitQcm9jdG9yLCBBbGV4YW5kZXIgUGhpbWlzdGVyDQorUHJvcGVyemlhIGRlIFJvc3NpDQorUHJvdXQsIFNhbXVlbA0KK1Byb3Zvc3QsIEphbg0KK1BydWQnaG9uLCBQaWVycmUtUGF1bA0KK1BydW5hLCBQZWRybw0KK1BydXN6a293c2tpLCBXaXRvbGQNCitQdWNjaW8gZGkgU2ltb25lDQorUHVjZWxsZSwgSmVhbg0KK1B1ZGxhdCwgUHVkbG8NCitQdWVsbWEsIEhlcm7DoW4NCitQdWVseiwgU3VzYW4NCitQdWdhLCBBbnRvbmlvDQorUHVnZXQsIFBpZXJyZQ0KK1B1bGlnbywgRG9tZW5pY28NCitQdXJ5ZWFyLCBNYXJ0aW4NCitQdXNleSwgSm9obg0KK1B1c2htYW4sIEhvdnNlcA0KK1B1dGh1ZmYsIEhhbnNvbiBELg0KK1B1dG5hbSwgSmFuZQ0KK1B1dmlzIGRlIENoYXZhbm5lcywgUGllcnJlDQorUHV5LCBKZWFuDQorUHlsZSwgQWFyb24NCitQeWxlLCBIb3dhcmQNCitQeW5hY2tlciwgQWRhbQ0KK1B5bmFzLCBKYWNvYg0KK1B5bmFzLCBKYW4NCitQeW5lLCBXaWxsaWFtIEhlbnJ5DQorUHl0aG9uDQorUWkgQmFpc2hpDQorUWlhbiBKdW50YW8NCitRaWFuIFNvbmd5YW4NCitRaWFuIFh1YW4NCitRaWFubG9uZywgRW1wZXJvcg0KK1FpcGVpLCBHYW8NCitRaXUgVGkNCitRdSBEaW5nDQorUXVhZGFsLCBNYXJ0aW4gRmVyZGluYW5kDQorUXVhbiBTaGFuc2hpDQorUXVhcmVuZ2hpLCBHaWFjb21vDQorUXVhcnRvbiwgRW5ndWVycmFuZA0KK1F1YXN0LCBQaWV0ZXIgSmFuc3oNCitRdWVsbGludXMsIEVyYXNtdXMNCitRdWVyY2lhLCBKYWNvcG8gZGVsbGENCitRdWVzbmVsLCBGcmFuw6dvaXMNCitRdWlkb3IsIEpvaG4NCitRdWlubiwgTWFyYw0KK1F1aW5uLCBUaG9tYXMNCitRdWlubnVheXVhaywgTHVjeQ0KK1JhYWRhbCwgRXJpaw0KK1JhYm95LCBNYWMNCitSYWNraGFtLCBBcnRodXINCitSYWUsIEZpb25hDQorUmFlYnVybiwgU2lyIEhlbnJ5DQorUmFldHosIE1hcmt1cw0KK1JhZmZhZWwsIEpvc2VwaA0KK1JhZmZhw6tsbGksIEplYW4tRnJhbsOnb2lzDQorUmFmZmV0LCBEZW5pcyBBdWd1c3RlIE1hcmllDQorUsOhZm9scyBDYXNhbWFkYSwgQWxiZXJ0DQorUmFnYWx6aSwgU2VyZ2lvDQorUmFnZ2ksIEFudG9uaW8NCitSYWltb25kaSwgTWFyY2FudG9uaW8NCitSYWluLCBDaGFybGVzDQorUmFpbmVyLCBBcm51bGYNCitSYWxlaWdoLCBDaGFybGVzIFMuDQorUmFscGgsIEJlbmphbWluDQorUmFsc3RvbiwgSm9obg0KK1JhbWJhbGRpLCBDYXJsbyBBbnRvbmlvDQorUmFtZW5naGksIEdpb3ZhbiBCYXR0aXN0YQ0KK1JhbcOtcmV6IGRlIEFyZWxsYW5vLCBDaHJpc3TDs2JhbA0KK1JhbW9zIE1hcnTDrW5leiwgQWxmcmVkbw0KK1JhbW9zLCBNZWwNCitSYW1zYXksIEFsbGFuDQorUmFtc2F5LCBIdWdoDQorUmFtdW5ubywgVG9ueQ0KK1JhbmRhbGwsIEEuTS4NCitSYW5kYWxsLVBhZ2UsIFBldGVyDQorUmFuZG9scGgsIEx5bm4gTS4NCitSYW5nZWwsIFJpY2FyZG8NCitSYW5nZXIsIEhlbnJ5IFdhcmQNCitSYW5raW4sIEplcnJ5DQorUmFubmV5LCBXaWxsaWFtIFR5bGVlDQorUmFuc29uLCBQYXVsDQorUmFvdXgsIEplYW4NCitSYXBoYWVsDQorUmFwaGFlbCBNYWZhaSwgQW50b25pZXR0YQ0KK1JhcGhhZWwsIEpvc2VwaA0KK1JhcGhhZWwsIE1hcnkgRi4NCitSYXNjaGVuLCBIZW5yeQ0KK1JhdGdlYiwgSsO2cmcNCitSYXRoc2FjaywgU3RlcmxpbmcNCitSYXR0bmVyLCBBYnJhaGFtDQorUmF1LCBXaWxsaWFtIEhlcm1hbg0KK1JhdXNjaGVuYmVyZywgUm9iZXJ0DQorUmF2ZWVsLCBSb2dlcg0KK1JhdmVuLCBKb2huIFNhbXVlbA0KK1JhdmlsaW91cywgRXJpYw0KK1JheSwgQ2hhcmxlcw0KK1JlYWQsIERhdmlkIENoYXJsZXMNCitSZWFkLCBKYW1lcyBCLg0KK1JlYWQsIFRob21hcyBCdWNoYW5hbg0KK1JlYW0sIENhcmR1Y2l1cyBQLg0KK1JlYXJkb24sIFRpbQ0KK1JlYXVnaCwgQ2hhcmxlcyBGcmFua2xpbg0KK1JlYmVjY2EsIEJpYWdpbw0KK1JlYmlsbMOpLCBOaWNvbGFzDQorUmVjY28sIEdpdXNlcHBlDQorUmVkIFN0YXIsIEtldmluDQorUmVkZmllbGQsIEVkd2FyZCBXaWxsaXMNCitSZWRncmF2ZSwgUmljaGFyZA0KK1JlZG1vbmQsIEdyYW52aWxsZQ0KK1JlZG9uLCBPZGlsb24NCitSZWRvdXTDqSwgUGllcnJlIEpvc2VwaA0KK1JlZHBhdGgNCitSZWViLCBEYXZpZA0KK1JlZWQsIERhdmlkDQorUmVlZCwgUm9iZXJ0DQorUmVlcywgTWljaGFlbA0KK1JlZnJlZ2llciwgQW50b24NCitSZWdpc3RlciwgSm9obg0KK1JlZ25hdWx0LCBCYXJvbiBKZWFuIEJhcHRpc3RlDQorUmVnbmF1bHQsIEhlbnJpDQorUmVnbmllciwgTmljb2xhcw0KK1JlZ28sIFBhdWxhDQorUmVnb3lvcywgRGFyw61vIGRlDQorUmVpY2hlbCwgSGFucw0KK1JlaWNobGljaCwgTWFyeA0KK1JlaWQsIEJpbGwNCitSZWlkLCBHZW9yZ2UgQS4NCitSZWlkLCBKYW5ldA0KK1JlaWQsIEpvaG4gUm9iZXJ0c29uDQorUmVpZCwgUm9iZXJ0DQorUmVpZmZlbCwgQ2hhcmxlcw0KK1JlaW5hZ2xlLCBQaGlsaXANCitSZWluYWdsZSwgUmFtc2F5IFJpY2hhcmQNCitSZWluZGVsLCBXaWxsaWFtIEdlb3JnZQ0KK1JlaW5kZXJzLCBKaW0NCitSZWluaGFyZHQsIEFkDQorUmVpc21hbiwgUGhpbGlwDQorUmVqbGFuZGVyLCBPc2NhciBHdXN0YXZlDQorUmVtYnJhbmR0IHZhbiBSaWpuDQorUmVtaW5ndG9uLCBGcmVkZXJpYw0KK1JlbiBYaW9uZw0KK1JlbiBYdW4NCitSZW4gWWkNCitSZW5pLCBHdWlkbw0KK1JlbmllcmksIE5pY2NvbG8NCitSZW5vaXIsIFBpZXJyZS1BdWd1c3RlDQorUmVub3VmLCBFZGRhDQorUmVwaW4sIElsaXlhDQorUmVzbGVyLCBHZW9yZ2UgRWFybA0KK1Jlc21hbm4sIEZyYW5jZXNjbw0KK1Jlc3RvdXQsIEplYW4NCitSZXRoZWwsIEFsZnJlZA0KK1JldGhlbCwgUG9uY2UgSmFjcXVpb3QNCitSw6l0aSwgSXN0dsOhbg0KK1JldmVyZSwgUGF1bA0KK1LDqXZvaWwsIFBpZXJyZS1IZW5yaQ0KK1JleW1lcnN3YWVsZSwgTWFyaW51cyB2YW4NCitSZXltb25kLCBQaWVycmUNCitSZXluYXJkLCBHcmFudA0KK1JleW5vbGRzIEpyLiwgU2FtdWVsIFdpbGxpYW0NCitSZXlub2xkcywgQWxhbg0KK1JleW5vbGRzLCBTaXIgSm9zaHVhDQorUmV5c3NjaG9vdCwgUGV0ZXIgSm9obiBWYW4NCitSaGVhZCwgTG91aXMgSm9obg0KK1JoZWFtLCBIZW5yeSBNYXluZWxsDQorUmliYWx0YSwgRnJhbmNpc2NvDQorUmliYWx0YSwgSm9yZ2UNCitSaWJlcmEsIEp1c2VwZSBkZQ0KK1JpYmxlLCBEYXZlDQorUmlib3QsIEF1Z3VzdGluIFRow6lvZHVsZQ0KK1JpY2FyZCwgTG91aXMtR3VzdGF2ZQ0KK1JpY2NpLCBNYXJjbw0KK1JpY2NpLCBTZWJhc3RpYW5vDQorUmljY2lvLCBJbA0KK1JpY2gsIEFsZnJlZCBXaWxsaWFtDQorUmljaGFyZHMsIEZyYW5jZXMNCitSaWNoYXJkcywgSm9obiBJbmlnbw0KK1JpY2hhcmRzLCBXaWxsaWFtIFRyb3N0DQorUmljaGFyZHNvbiBJLCBKb25hdGhhbg0KK1JpY2hhcmRzb24gSnIuLCBUaG9tYXMgTWlsZXMNCitSaWNoYXJkc29uLCBTYW0NCitSaWNoYXJkc29uLCBTdGV2ZW4NCitSaWNoYXJkc29uLCBXaWxsaWFtDQorUmljaGllciwgR2VybWFpbmUNCitSaWNobW9uZCwgQWduZXMgTWlsbGVuDQorUmljaG1vbmQsIEdlb3JnZQ0KK1JpY2htb25kLCBTaXIgV2lsbGlhbSBCbGFrZQ0KK1JpY2h0ZXIsIEdlcmhhcmQNCitSaWNodGVyLCBHaW92YW5uaQ0KK1JpY2tleSwgR2VvcmdlDQorUmljbywgRGFuDQorUmlkZXIsIEFydGh1ciBHcm92ZXINCitSaWRnd2F5LCBQZXRlcg0KK1JpZWNoYXJkdCwgUmljaGFyZA0KK1JpZWRlbGwsIERvbg0KK1JpZW1lbnNjaG5laWRlciwgVGlsbWFuDQorUmllemlvLCBNYXJ0aW5vDQorUmlnYXVkLCBIeWFjaW50aGUNCitSaWdhdWQsIEpvaG4gRnJhbmNpcw0KK1JpZ2J5LCBFbGl6YWJldGgNCitSaWdncywgUm9iZXJ0DQorUmlnaGV0dGksIEZyYW5jZXNjbw0KK1JpaXMsIEphY29iDQorUmlsZXksIEJyaWRnZXQNCitSaWxleSwgSm9obg0KK1JpbW1lciwgV2lsbGlhbQ0KK1JpbmRpc2JhY2hlciwgUGV0ZXINCitSaW5laGFydCwgRnJhbmsNCitSaW5laGFydCwgV2lsbGlhbSBIZW5yeQ0KK1JpbmcsIEwuQS4NCitSaW5nLCBQaWV0ZXIgZGUNCitSaW5nZ29sZCwgRmFpdGgNCitSaW56eSwgSm9obiBIZW5yeSBkZQ0KK1Jpb3BlbGxlLCBKZWFuIFBhdWwNCitSaW9zLCBNaWd1ZWwgQW5nZWwNCitSaXBsZXksIEFpZGVuIExhc3NlbGwNCitSaXBwb24sIFRvbQ0KK1Jpc3QsIFBpcGlsb3R0aQ0KK1JpdGNoaWUsIFdpbGxpYW0gQi4NCitSaXRtYW4sIExvdWlzDQorUml0c2NoZWwsIFdpbGxpYW0NCitSaXR0ZXJtYW5uLCBQaGlsaXAgU2Nob2x6DQorUml0dHMsIEhlcmINCitSaXR6b3MsIEFuZHJlYXMNCitSaXZhbHosIEFudG9pbmUNCitSaXZlLCBSb2JlcnRvDQorUml2ZXJhIEhlcm5hbmRleiwgTWFudWVsDQorUml2ZXJhLCBEaWVnbw0KK1JpdmVycywgTGFycnkNCitSaXZpw6hyZSwgQnJpdG9uDQorUml4ZW5zLCBKZWFuIEFuZHLDqQ0KK1JpenpvLCBBbnRvbmlvDQorUm9iYmlhLCBBbmRyZWEgZGVsbGENCitSb2JiaWEsIEdpb3Zhbm5pIGRlbGxhDQorUm9iYmlhLCBHaXJvbGFtbyBkZWxsYQ0KK1JvYmJpYSwgTHVjYSBkZWxsYQ0KK1JvYmJpbnMsIERhdmlkDQorUm9iYmlucywgRWxsZW4NCitSb2JlcnQsIEh1YmVydA0KK1JvYmVydCwgSm9obg0KK1JvYmVydCwgTG91aXMtTMOpb3BvbGQNCitSb2JlcnQtRmxldXJ5LCBKb3NlcGgtTmljb2xhcw0KK1JvYmVydG8NCitSb2JlcnRzLCBEYXZpZA0KK1JvYmVydHMsIEdvb2RyaWRnZQ0KK1JvYmVydHMsIFRvbQ0KK1JvYmVydHMsIFdpbGxpYW0NCitSb2JlcnRzb24sIEFyY2hpYmFsZA0KK1JvYmVydHNvbiwgQ2hyaXN0aW5hDQorUm9iZXJ0c29uLCBTYXJhaA0KK1JvYmV0dGEsIENyaXN0b2Zhbm8NCitSb2JpbmVhdSwgQWRlbGFpZGUNCitSb2JpbnMsIFdpbGxpYW0gUGFsbWVyDQorUm9iaW5zb24sIEFubg0KK1JvYmluc29uLCBDaGFybGVzDQorUm9iaW5zb24sIEYuIENheWxleQ0KK1JvYmluc29uLCBKLkMuDQorUm9iaW5zb24sIExlb25hcmQNCitSb2JpbnNvbiwgVGhlb2RvcmUNCitSb2JpbnNvbiwgV2lsbGlhbQ0KK1JvYnNvbiwgR2VvcmdlIEZlbm5lbA0KK1JvYnVzdGksIERvbWVuaWNvDQorUm9jY2F0YWdsaWF0YSwgTmljY29sw7INCitSb2NoZSwgUGllcnJlDQorUm9jaGUtUmFiZWxsLCBBcm5hbGRvDQorUm9jaHVzc2VuLCBDaGFybGVzDQorUm9ja2Vuc2NoYXViLCBHZXJ3YWxkDQorUm9ja3dlbGwsIE5vcm1hbg0KK1JvZGNoZW5rbywgQWxleGFuZGVyDQorUm9kaW4sIEF1Z3VzdGUNCitSb2Ryw61ndWV6IExvemFubywgTWFudWVsDQorUm9lYmxpbmcsIEpvaG4NCitSb2VibGluZywgV2FzaGluZ3Rvbg0KK1JvZWxvZnMsIFdpbGxlbQ0KK1JvZW50Z2VuLCBBYnJhaGFtDQorUm9lbnRnZW4sIERhdmlkDQorUm9lcmljaCwgTmljaG9sYXMNCitSb2VzZW4sIFNldmVyaW4NCitSb2dlcnMsIEpvaG4NCitSb2dobWFuLCBSb2VsYW50DQorUm9obGZzLCBDaHJpc3RpYW4NCitSb2tvdG92LCBGZWRvcg0KK1JvbGFuZCwgUGhpbGlwcGUtTGF1cmVudA0KK1JvbGTDoW4sIEx1aXNhDQorUm9sbGlucywgVGltDQorUm9tYWtvLCBBbnRvbg0KK1JvbcOhbiBSb2phcywgU2FtdWVsDQorUm9tYW5lbGxpLCBSb21hbm8NCitSb21hbmlubywgR2lyb2xhbW8NCitSb21hbm8sIEdpYW4gQ3Jpc3RvZm9ybw0KK1JvbWJvdXRzLCBHaWxsaXMNCitSb21ib3V0cywgU2Fsb21vbg0KK1JvbWJvdXRzLCBUaMOpb2RvcmUNCitSb21uZXksIEdlb3JnZQ0KK1JvbmRlbCwgRnJlZGVyaWNrDQorUm9vLCBSb2Vsb2YgZGUNCitSb29rZXIsIE1pY2hhZWwgQW5nZWxvDQorUm9vcywgSm9oYW4gSGVpbnJpY2gNCitSb29zLCBKb3NlcGgNCitSb29zLCBQaGlsaXBwIFBldGVyDQorUm9wZXIsIFJpY2hhcmQNCitSb3BlcyBKci4sIEdlb3JnZQ0KK1JvcHMsIEbDqWxpY2llbg0KK1JvcXVlcGxhbiwgQ2FtaWxsZQ0KK1JvcXVlcywgSm9zZXBoDQorUm9zYSwgRXJjb2xlDQorUm9zYSwgU2FsdmF0b3INCitSb3NhaSwgT3R0b25lDQorUm9zYWxlcywgRWR1YXJkbw0KK1Jvc2FzLCBSdWLDqW4NCitSb3NhdGksIEphbWVzDQorUm9zZSwgR3V5DQorUm9zZSwgS251dA0KK1Jvc2VuYmVyZywgSGVucnkgTS4NCitSb3NlbmJlcmcsIElzYWFjDQorUm9zZW5iZXJnLCBMb3VpcyBDb25yYWQNCitSb3NlbmJsdW0sIFJpY2hhcmQNCitSb3NlbnF1aXN0LCBKYW1lcw0KK1Jvc2VudGhhbCwgQW5uIFRldnkNCitSb3NlbnRoYWwsIERvcmlzDQorUm9zZW50aGFsLCBUb255DQorUm9zaHUsIEZ1a2FlDQorUm9zbGluLCBBbGV4YW5kZXINCitSb3NsaW4sIExlIENoZXZhbGllcg0KK1Jvc2xpbiwgVCdvcm9zDQorUm9zcywgU2lyIFdpbGxpYW0gQ2hhcmxlcw0KK1Jvc3NiYWNoLCBFZHdhcmQNCitSb3NzZWxsaSwgQ29zaW1vDQorUm9zc2VsbGksIE1hdHRlbw0KK1Jvc3NlbGxpbm8sIEFudG9uaW8NCitSb3NzZWxsaW5vLCBCZXJuYXJkbw0KK1Jvc3NldHRpLCBEYW50ZSBHYWJyaWVsDQorUm9zc2l0ZXIsIFRob21hcyBQcmljaGFyZA0KK1Jvc3NvIEZpb3JlbnRpbm8NCitSb3NzbywgTWVkYXJkbw0KK1Jvc3NvLCBNaW5vDQorUm9zemFrLCBUaGVvZG9yZQ0KK1JvdGFyaSwgUGlldHJvDQorUm90ZWxsYSwgTWltbW8NCitSb3RoLCBFcm5lc3QgRGF2aWQNCitSb3RoZW5iZXJnLCBTdXNhbg0KK1JvdGhlbnN0ZWluLCBNaWNoYWVsDQorUm90aGVuc3RlaW4sIFNpciBXaWxsaWFtDQorUm90aGVybWVsLCBQZXRlciBGcmVkZXJpY2sNCitSb3Roa28sIE1hcmsNCitSb3Roc2NoaWxkLCBHYWlsDQorUm90aHN0ZWluLCBBcnRodXINCitSb3R0ZW5oYW1tZXIsIEhhbnMNCitSb3VhdWx0LCBHZW9yZ2VzDQorUm91YmlsaWFjLCBMb3Vpcy1GcmFuw6dvaXMNCitSb3VnZXQsIEdlb3JnZXMNCitSb3Vzc2VhdSwgSGVucmkNCitSb3Vzc2VhdSwgVGjDqW9kb3JlDQorUm91c3NlbCwgS2VyIFhhdmllcg0KK1JvdXNzZWwsIFRow6lvZG9yZQ0KK1JvdXNzZWxldCwgR2lsbGVzDQorUm91eCwgQW5nZS1Kb3NlcGggQW50b2luZQ0KK1JvdXgsIEZyYW7Dp29pcyBHZW9mZnJvaQ0KK1JvdXgsIEZyYW7Dp29pcyBKb3NlcGggRnLDqWTDqXJpYw0KK1JvdXgsIEpvc2VwaA0KK1JvdXgsIExvdWlzDQorUm91eCwgTWF0aGlldSBBbnRvaW5lDQorUm91eC1DaGFtcGlvbiwgSm9zZXBoIFZpY3Rvcg0KK1Jvd2FuLCBQYXRyaWNrDQorUm93ZSwgU2FuZHJhDQorUm93bGFuZHNvbiwgVGhvbWFzDQorUm93bGV5LCBSZXViZW4NCitSb3llbiwgV2lsbGVtIEZyZWRlcmlrIHZhbg0KK1JyYXAsIEp1bGllDQorUnViZW5zLCBQZXRlciBQYXVsDQorUnViaW4sIFJldXZlbg0KK1J1YmxldiwgQW5kcmVpDQorUnVkZSwgRnJhbsOnb2lzDQorUnVkZSwgT2xhZg0KK1J1ZWxhcywgSnVsaW8NCitSdWZmLCBUaG9tYXMNCitSdWdlbmRhcyBJLCBHZW9yZyBQaGlsaXBwDQorUnVnZW5kYXMsIEp1YW4gTWF1cmljaW8NCitSdWlzZGFlbCwgSmFjb2IgdmFuDQorUnVpeiwgQW50b25pbyBNLg0KK1J1bGZvLCBKdWFuDQorUnVtbWVsLCBKYXkNCitSdW1uZXksIFJhbHBoDQorUnVuZ2l1cywgQ2FybCBDbGVtZW5zIE1vcml0eg0KK1J1cGVydCwgUHJpbmNlDQorUnVzY2hhLCBFZA0KK1J1c2NvbmksIENhbWlsbG8NCitSdXNlbGwsIEVkd2FyZCBKLg0KK1J1c2gsIE9saXZlDQorUnVzaCwgV2lsbGlhbQ0KK1J1c2hidXJ5LCBIZW5yeQ0KK1J1c2tpbiwgSm9obg0KK1J1c3NlbGwsIEFuZHJldw0KK1J1c3NlbGwsIENoYXJsZXMgTS4NCitSdXNzZWxsLCBKb2huDQorUnVzc2VsbCwgTW9yZ2FuDQorUnVzc28sIEFsZXhhbmRlcg0KK1J1c3RpY2ksIEdpb3Zhbm5pIEZyYW5jZXNjbw0KK1J1dGVsbGksIE1hcmlvDQorUnV0aGFydCwgQ2FybCBCb3Jyb23DpHVzIEFuZHJlYXMNCitSdXlzY2gsIFJhY2hlbA0KK1J1eXNkYWVsLCBTYWxvbW9uIHZhbg0KK1J5YW4sIEFubmUNCitSeWNrZXJlLCBCZXJuaGFydCBkZQ0KK1J5Y3JvZnQgUGFpbnRlciwgVGhlDQorUnlkZXIsIEFsYmVydCBQaW5raGFtDQorUnlkaW5nc3ZhcmQsIFVyc3VsYSB2b24NCitSeWR6ZXdza2ksIFdpbGxpYW0gDQorUnltYW4sIFJvYmVydA0KK1NhYXIsIEFsaXNvbg0KK1NhYXIsIEJldHllDQorU2FhciwgTGV6bGV5DQorU2FhcmluZW4sIEVlcm8NCitTYWNjaGV0dGksIExvcmVuem8NCitTYWNjaGksIEFuZHJlYQ0KK1NhY2hzLCBMYW1iZXJ0DQorU2FkZWxlciBJLCBKYW4NCitTYWRlbGVyIElJLCBBZWdpZGl1cw0KK1NhZGxlciwgV2FsdGVyIERlbmR5DQorU2FlbnJlZGFtLCBKYW4NCitTYWVucmVkYW0sIFBpZXRlciBKYW5zei4NCitTYWZyYW4sIEJlcm5hcmQNCitTYWZ0bGV2ZW4gdGhlIFlvdW5nZXIsIEhlcm1hbg0KK1NhZnRsZXZlbiwgQ29ybmVsaXMNCitTYWdlLCBLYXkNCitTYWdlciwgUGV0ZXIgV2luY2hlbGwNCitTYWlkIEFiZHVsbGFoIG9mIHRoZSBNYXlhYw0KK1NhaWxhLCBQYXV0YQ0KK1NhaWxtYWtlciwgSXNhYWMNCitTYWludCBDZWNpbGlhIE1hc3Rlcg0KK1NhaW50LUFuZHJlLCBTaW1vbiBSZW5hcmQgZGUNCitTYWludC1BdWJpbiwgQXVndXN0aW4gZGUNCitTYWludC1BdWJpbiwgQ2hhcmxlcyBHZXJtYWluIGRlDQorU2FpbnQtQXViaW4sIEdhYnJpZWwgSmFjcXVlcyBkZQ0KK1NhaW50LUdhdWRlbnMsIEF1Z3VzdHVzDQorU2FpbnQtSmVhbiwgU2ltb24NCitTYWludC1Nw6ltaW4sIENoYXJsZXMtQmFsdGhhemFyLUp1bGllbiBGw6l2cmV0IGRlDQorU2FpbnQtUGhhbGxlLCBOaWtpIGRlDQorU2FpdG8sIEtpeW9zaGkNCitTYWl0b3dpdHosIFN0YW5sZXkNCitTYWthaSBIb2ljaGkNCitTYWthaSBIb2l0c3UNCitTYWxhLCBHZW9yZ2UgQXVndXN0dXMgSGVucnkNCitTYWxhdGjDqSwgRnJpZWRyaWNoDQorU2FsbGUsIERhdmlkDQorU2FsbGVlLCBDaGFybGVzDQorU2FsbW9uLCBSb2JlcnQNCitTYWx0LCBKb2huDQorU2FsdGVyLCBXaWxsaWFtDQorU2FsdmFkb3JpLCBSZW1vDQorU2FsdmksIE5pY29sYQ0KK1NhbHZpYXRpLCBGcmFuY2VzY28NCitTYWx5LCBKYWNxdWVzLUZyYW7Dp29pcy1Kb3NlcGgNCitTYW1hY2NoaW5pLCBPcmF6aW8NCitTYW1hcmFzLCBMdWNhcw0KK1NhbXBsZSwgUGF1bCBTdGFycmV0dA0KK1PDoW5jaGV6IENvZWxsbywgQWxvbnNvDQorU8OhbmNoZXogQ290w6FuLCBKdWFuDQorU8OhbmNoZXogUGVyZXosIEFsYmVydG8NCitTYW5jaGV6LCBBYmVsDQorU2FuY2hleiwgUGVkcm8NCitTYW5kYnksIFBhdWwNCitTYW5kYnksIFRob21hcw0KK1NhbmRlciwgQXVndXN0DQorU2FuZGVycywgQW5uDQorU2FuZGxlciwgQmFyYmFyYQ0KK1NhbmRyYXJ0LCBKb2FjaGltIHZvbg0KK1NhbmR5cywgRW1tYQ0KK1NhbmR5cywgRnJlZGVyaWNrDQorU2FuZ2FsbG8sIEZyYW5jZXNjbyBkYQ0KK1NhbmdhbGxvLCBHaXVsaWFubyBkYQ0KK1NhbmctSHdhLCBDaHVuZw0KK1Nhbm1hcnRpbm8sIEdpdXNlcHBlDQorU2FubyBkaSBQaWV0cm8NCitTYW5zZXZlcmlubywgTG9yZW56byBkaSBBbGVzc2FuZHJvIGRhDQorU2Fuc292aW5vLCBBbmRyZWENCitTYW5zb3Zpbm8sIEphY29wbw0KK1NhbnQsIEphbWVzDQorU2FudGFjcm9jZSwgR2lyb2xhbW8NCitTYW50ZXJyZSwgSmVhbi1CYXB0aXN0ZQ0KK1NhbnRvbWFzbywgR2l1c2VwcGUNCitTYW50b3MgVG9ycm9lbGxhLCBBbmdlbGVzDQorU2FueXUNCitTYXBvdXNlaywgRnJhbmsNCitTYXJhY2VuaSwgQ2FybG8NCitTYXJnZW50LCBIZW5yeQ0KK1NhcmdlbnQsIEpvaG4gU2luZ2VyDQorU2Fya2lzaWFuLCBQYXVsDQorU2Fya2lzaWFuLCBTYXJraXMNCitTYXJ0YWluLCBKb2huDQorU2FydG9yaXVzLCBKb2huIE5vc3QNCitTYXNhamltYSwgS2loZWkNCitTYXNzZXR0YQ0KK1Nhc3NvZmVycmF0bw0KK1Nhc3N1LCBBbGlnaQ0KK1NhdW5kZXJzLCBHYXJ5DQorU2F1cmEgQXRhcmVzLCBBbnRvbmlvDQorU2F2YWdlLCBFZHdhcmQNCitTYXZlcnksIFJvZWxhbmR0DQorU2F2b2xkbywgR2lvdmFubmkgR2lyb2xhbW8NCitTYXZyYXNvdiwgQWxleGV5DQorU2F3eWVyLCBIZWxlbg0KK1NheGUsIEFuZHJlcyBNYXJzYWwgZGUNCitTY2FuZ2EsIEl0YWxvDQorU2NhcmxldHQsIFJvbHBoDQorU2NhcnBpdHRhLCBTYWx2YXRvcmUNCitTY2Fyc2VsbGlubw0KK1NjaGFkLCBDaHJpc3RpYW4NCitTY2hhZG93LCBKb2hhbm4gR290dGZyaWVkDQorU2NoYWVjaHRlciwgSnVkaXRoDQorU2NoYWVmZXIsIENhcmwNCitTY2hhbGNrZW4sIEdvZGZyaWVkDQorU2NoYW1iZXJnLCBNb3J0b24gTGl2aW5nc3Rvbg0KK1NjaGFua2VyLCBMb3Vpcw0KK1NjaGFwaXJvLCBNaXJpYW0NCitTY2hhcmR0LCBCZXJuYXJkIFAuDQorU2NoYXJmLCBLZW5ueQ0KK1NjaGFyZmYsIEVkd2luDQorU2Now6R1ZmVsZWluLCBIYW5zIExlb25oYXJkDQorU2NoZWRvbmksIEJhcnRvbG9tZW8NCitTY2hlZmZlciwgQXJ5DQorU2NoZWliZXIsIEh1Z8OzDQorU2NoZWxmaG91dCwgQW5kcmVhcw0KK1NjaGVuYXUsIEpvaGFubiBFbGVhemFyDQorU2NoZXJlciwgSGVybWFubg0KK1NjaGVyc2NoZWwsIEpvc2VwaCBKLg0KK1NjaGlhZmZpbm8sIEZyYW5jZXNjbyBNYXJpYQ0KK1NjaGlhdm9uZSwgQW5kcmVhDQorU2NoaWVsZSwgRWdvbg0KK1NjaGluZGxlciwgRW1pbCBKYWtvYg0KK1NjaGlua2VsLCBLYXJsIEZyaWVkcmljaA0KK1NjaGxlbW1lciwgT3NrYXINCitTY2hsw7x0ZXIsIEFuZHJlYXMNCitTY2htaWR0LCBKdWxpdXMNCitTY2htaWR0LCBLYXRoZXJpbmUNCitTY2htaWR0LVJvdHRsdWZmLCBLYXJsDQorU2NobXV0emVyLCBGZXJkaW5hbmQNCitTY2huYWJlbCwgSnVsaWFuDQorU2NobmVpZGVyLCBCZXJuaGFyZA0KK1NjaG5vcnIgdm9uIENhcm9sc2ZlbGQsIEp1bGl1cw0KK1NjaG9sZGVyLCBGcml0eg0KK1NjaG9sZGVyZXIsIE90dG8NCitTY2hvbmZlbGQsIEpvaGFubiBIZWlucmljaA0KK1NjaG9uZ2F1ZXIsIE1hcnRpbg0KK1NjaG9uemVpdCwgQmVuDQorU2Nob29uaG92ZW4sIEphbg0KK1NjaG9vbm92ZXIsIEZyYW5rIEUuDQorU2Nob290ZW4sIEZsb3JpcyB2YW4NCitTY2hvcGluLCBIZW5yaS1GcsOpZMOpcmljDQorU2NocmFkZXIsIEp1bGl1cw0KK1NjaHJhZywgS2FybA0KK1NjaHJleWVyLCBBZG9sZg0KK1NjaHJleWVyLCBMb3RoYXINCitTY2hyZXl2b2dlbCwgQ2hhcmxlcw0KK1NjaHJvLCBEaWV0cmljaA0KK1NjaHVjaGFyZHQgSnIuLCBGZXJkaW5hbmQNCitTY2h1ZmZlbmVja2VyLCBDbGF1ZGUtRW1pbGUNCitTY2h1bHRlLCBMYXJyeQ0KK1NjaHVsdGhlaXNzLCBLYXJsIE1heA0KK1NjaHVsdHosIERhbmllbA0KK1NjaHVsdHplLCBSYXkNCitTY2h1bWFjaGVyLCBXaWxsaWFtDQorU2NodXBwZW4sIEphY29iIHZhbg0KK1NjaHVzc2VsZSwgQ2hyaXN0aWFuDQorU2NodXN0ZXIsIERvbm5hIE5vcmluZQ0KK1NjaHV0bGVyLCBKb2huDQorU2NodXlsZXIgTGltbmVyLCBUaGUNCitTY2h3YWJlLCBDYXJsb3MNCitTY2h3YWxiZSwgT2xlDQorU2Nod2FydHosIEF1YnJleQ0KK1NjaHdhcnR6LCBMZXN0ZXIgTy4NCitTY2h3ZWlja2hhcmR0LCBIZWlucmljaCBXaWxoZWxtDQorU2Nod2llZ2VyLCBDLiBSb2JlcnQNCitTY2h3aWVyaW5nLCBDb25yYWQNCitTY2h3aW5kLCBNb3JpdHogVm9uDQorU2Nod2l0dGVycywgS3VydA0KK1Njb2xhcmksIEdpdXNlcHBlDQorU2NvcmVsLCBKYW4gdmFuDQorU2NvdHQsIEFubmEgUGFnZQ0KK1Njb3R0LCBCaWxsDQorU2NvdHQsIEJvYg0KK1Njb3R0LCBGcmFuY2VzDQorU2NvdHQsIEpvaG4NCitTY290dCwgTG91aXNlDQorU2NvdHQsIE1hcnkNCitTY290dCwgU2FtdWVsDQorU2NvdHQsIFdpbGxpYW0NCitTY290dCwgV2lsbGlhbSBFZG91YXJkDQorU2N1ZGRlciwgSmFuZXQNCitTY3VsbHksIFNlYW4NCitTZWFnbywgRWR3YXJkDQorU2VhdmV5LCBKdWxpZW4gUi4NCitTZWJhLCBBbGJlcnQNCitTw6liYWgsIEouIFBhc2NhbA0KK1NlYmFzdGnDoW4NCitTZWJhc3RpYW5vIGRlbCBQaW9tYm8NCitTZWJyZWUsIENoYXJsZXMNCitTZWJyb24sIEh5cHBvbHl0ZSBWaWN0b3IgVmFsZW50aW4NCitTZS1jaG9vbmcsIEtpbQ0KK1NlY29uZCBHb3VkYSBXb29kY3V0dGVyDQorU2VjcmVzdCwgRGF2aWQNCitTZWRkb24sIFRob21hcw0KK1NlZ2FsLCBHZW9yZ2UNCitTZWdhbGwsIExhc2FyDQorU2VnYW50aW5pLCBHaW92YW5uaQ0KK1NlZ2Vyc3Ryb20sIFJpY2sNCitTZWdoZXJzLCBEYW5pZWwNCitTZWdoZXJzLCBHw6lyYXJkDQorU2VnaGVycywgSGVyY3VsZXMNCitTZWduYSBkaSBCdW9uYXZlbnR1cmUNCitTZWlzZW5lZ2dlciwgSmFjb2INCitTZWtpbm8sIEp1bidpY2hpcsO0DQorU2Vra2EsIEthbWlzYWthDQorU2VsaWdtYW5uLCBLdXJ0DQorU2VsbGllciwgQ2hhcmxlcw0KK1NlbG91cywgSGVucnkgQ291cnRuZXkNCitTZW1tZXMsIEJldmVybHkNCitTZW1wZXJlIEp1YW4sIEV1c2ViaW8NCitTZW5pb3IsIEMuRi4NCitTw6lvbiwgQWxleGFuZHJlDQorU2VyZ2VsLCBKb2hhbiBUb2JpYXMNCitTZXJpYWtvdiwgSWFrb3YgUGFuZmlsb3ZpY2gNCitTZXJvdiwgVmFsZW50aW4gQWxla3NhbmRyb3ZpY2gNCitTZXJwb3R0YSwgR2lhY29tbw0KK1NlcnJhLCBSaWNoYXJkDQorU2VycmFubyBBZ3VpbGFyLCBQYWJsbw0KK1NlcnJhbm8sIEFuZHJlcw0KK1NlcnJlcywgRG9taW5pYw0KK1NlcnJlcywgSm9obiBUaG9tYXMNCitTZXJydXIsIEhlbnJpDQorU8OpcnVzaWVyLCBQYXVsDQorU2Vzc2h1IFRveW8NCitTZXNzb24gU2h1a2VpDQorU2V0Y2gsIFRlcnJ5DQorU2V1cmF0LCBHZW9yZ2VzDQorU2V2ZXJpbmksIEdpbm8NCitTZXZlcm4sIEpvc2VwaA0KK1NldmVybyBkYSBSYXZlbm5hDQorU2V2aWxsYSBQb3J0aWxsbywgU29sZWRhZA0KK1NleWZmZXJ0LCBMZW9wb2xkDQorU2V5bGVyLCBKdWxpdXMNCitTZXltb3VyLCBEYXZpZA0KK1NleW1vdXIsIEphbWVzDQorU2hhIFFpDQorU2hhZGJvbHQsIEphY2sNCitTaGFobiwgQWJieQ0KK1NoYWhuLCBCZW4NCitTaGFtc3VkZGluLCBBc2FmIEphaGkNCitTaGFubm9uLCBTaXIgSmFtZXMgSmVidXNhDQorU2hhbm5vbmhvdXNlLCBTYW5keQ0KK1NoYXBpcm8sIERhdmlkDQorU2hhcGlybywgSm9lbA0KK1NoYXBpcm8sIEpvc2VwaA0KK1NoYXJhZg0KK1NoYXJwLCBKb3NlcGggSGVucnkNCitTaGFycGUsIENoYXJsZXMgS2lya3BhdHJpY2sNCitTaGFycGUsIFN0ZXBoZW4NCitTaGFycGxlcywgUm9saW5kYQ0KK1NoYXVnaG5lc3N5LCBNaWNoYWVsDQorU2hhdywgSm9obiBCeWFtDQorU2hhdywgSm9zaHVhDQorU2hhdywgUmljaGFyZA0KK1NoYXcsIFNjb3R0DQorU2hhdywgV2lsZnJlZCBCeXJvbg0KK1NoYXksIEVkDQorU2hheWVyIFNyLiwgV2lsbGlhbQ0KK1NoY2hlZHJpbiwgU2lsJ3Zlc3RyIEZlb2Rvc2lldmljaA0KK1NoZWEsIEp1ZGl0aA0KK1NoZWUsIFNpciBNYXJ0aW4gQXJjaGVyDQorU2hlZWxlciwgQ2hhcmxlcw0KK1NoZWV0cywgTWlsbGFyZA0KK1NoZWZmaWVsZCwgSXNhYWMNCitTaGVsYnksIExpbGEgTm9ybWENCitTaGVsbGV5LCBTYW11ZWwNCitTaGVsdG9uLCBNYXJnYXJldA0KK1NoZW4gSmlhd2VpDQorU2hlbiBZaW5tbw0KK1NoZW91YWsNCitTaGVwYXJkLCBFcm5lc3QNCitTaGVwaGVyZCwgSGVsZW4gUGFyc29ucw0KK1NoZXBoZXJkLCBSZWdpbmFsZA0KK1NoZXBsZXIsIER3aWdodA0KK1NoZXJpZGFuLCBNYXJ5DQorU2hlcmxvY2ssIFdpbGxpYW0gUC4NCitTaGVybWFuIExpbW5lciwgVGhlDQorU2hlcm1hbiwgQ2luZHkNCitTaGVyciwgUm9uDQorU2hpIERhd2VpDQorU2hpIEx1DQorU2hpZSwgU3VzYW4NCitTaGllbGRzLCBBbGFuDQorU2hpZWxkcywgRnJhbmNpcyBCLg0KK1NoaWdlbWFzYQ0KK1NoaWdlbmFnYSwgTmlzaGltdXJhDQorU2hpZ2Vub2J1IElJLCBZYW5hZ2F3YQ0KK1NoaWtpYnUgVGVydXRhZGENCitTaGltYSwgVGFtYW1pDQorU2hpbW9tdXJhLCBSb2dlcg0KK1NoaW5hZ2F3YSwgVGFrdW1pDQorU2hpbm4sIEV2ZXJldHQNCitTaGlub2hhcmEsIFVzaGlvDQorU2hpc2hraW4sIEl2YW4NCitTaGl0YW8NCitTaMO0a8O0c2FpLCBIYW5iZWkNCitTaG9ydCwgU2lyIEZyYW5rDQorU2hvc29uLCBPaGFyYQ0KK1NocmFkeSwgSGVucnkgTWVyd2luDQorU2h1IENodWFueGkNCitTaHVlYnJvb2ssIFJvbg0KK1Now7tow7QsIFlhbWFrYXdhDQorU2h1bHosIEFsYmVydGEgUmVobQ0KK1NodW5jaG8NCitTaHVuJ2VpLCBLYXRzdWthd2ENCitTaHVuc2VuLCBLYXRzdWthd2ENCitTaHVuc2VuLCBOYXRvcmkNCitTaHVuc28sIEthdHN1a2F3YQ0KK1NodW56YW4sIEthdHN1a2F3YQ0KK1NodXRlLCBOZWxsIENob2F0ZQ0KK1NpYmVyZWNodHMsIEphbg0KK1NpY2tlcnQsIEJlcm5hcmQNCitTaWNrZXJ0LCBXYWx0ZXIgUmljaGFyZA0KK1NpZGRhbCwgRWxpemFiZXRoIEVsZWFub3INCitTaWVtaXJhZHpraSwgSGVucnlrDQorU2llcnJhLCBQYXVsDQorU2lldmVyZGluZywgS2F0aGFyaW5hDQorU2lnbmFjLCBQYXVsDQorU2lnbmVyLCBSb21hbg0KK1NpZ25vcmVsbGksIEx1Y2ENCitTaWthbmRlciwgU2hhaHppYQ0KK1NpbG8sIEFkYW0NCitTaWxvw6ksIERpZWdvIGRlDQorU2lsb2UsIEdpbCBkZQ0KK1NpbHZhLCBGcmFuY2lzIEEuDQorU2lsdmEsIEd1aWxsZXJtbw0KK1NpbHZlciwgSm9uYXRoYW4NCitTaWx2ZXN0cmUgdGhlIFlvdW5nZXIsIElzcmFlbA0KK1NpbHZlc3RybyBEZWxsJ0FjcXVpbGENCitTaWx2eSwgQ2FtaWxsZS1Mw6lvbi1Mb3Vpcw0KK1NpbWJlcmcsIEh1Z28NCitTaW1vbiwgVC4gRnJhbnRpc2VrDQorU2ltb25kcywgQ2hhcmxlcw0KK1NpbW9uZSBkZWkgQ3JvY2lmaXNzaQ0KK1NpbW9uaW5pLCBGcmFuY2VzY28NCitTaW1wc29uLCBCdXN0ZXINCitTaW1wc29uLCBKb2huDQorU2ltcHNvbiwgTG9ybmENCitTaW1zLCBLYXJsDQorU2ltcywgTC5XLiAiUm9ja3kiDQorU2ltdW4sIEtvbnN0YW50aW4NCitTaW5nZXIsIENseWRlDQorU2luZ2VyLCBNaWNoYWVsDQorU2luZ2xldG9uLCBIZW5yeQ0KK1NpbnRlbmlzLCBSZW7DqWUNCitTaW50LUphbnMsIEdlZXJ0Z2VuIFRvdA0KK1NpcXVlaXJvcywgRGF2aWQgQWxmYXJvDQorU2lyYW5pLCBFbGlzYWJldHRhDQorU2lyb25pLCBNYXJpbw0KK1Npc2tpbmQsIEFhcm9uDQorU2lzbGV5LCBBbGZyZWQNCitTaXN5cGh1cyBQYWludGVyLCBUaGUNCitTaXR0b3csIE1pY2hlbA0KK1NpdnVyYXEsIFRob21hcw0KK1NrZWFmLCBELg0KK1NrZWx0b24sIEpvbmF0aGFuDQorU2tlcmJpc2NoLCBIYXJ0bXV0DQorU2tpbGxldCwgU3RlcGhhbiBELg0KK1NraW5uZXIsIENsYXJhDQorU2tpcHBlLCBKb2huDQorU2tvZ2x1bmQsIFNhbmR5DQorU2t5bm5lciwgVGhvbWFzDQorU2xhdWdodGVyLCBTdGVwaGVuDQorU2xldGVyLCBGcmFuY2VzY28NCitTbGV2b2d0LCBNYXgNCitTbGluZ2VsYW5kdCwgUGlldGVyIENvcm5lbGlzei4gdmFuDQorU2xvYW4sIEhlbGVuIEZhcnINCitTbG9hbiwgSmVhbmV0dGUgUGFzaW4NCitTbG9hbiwgSm9obg0KK1Nsb2FuLCBKdW5pdXMgUi4NCitTbG9hbiwgTWFyaWFubmENCitTbG9kdHosIE1pY2hlbGFuZ2Vsbw0KK1Nsb3R0LU3DuGxsZXIsIEhhcmFsZA0KK1Nsb3dpbnNraSwgUm9uYWxkDQorU2x1aWp0ZXJzLCBKYW4NCitTbHVzc2VyLCBKZWFuIFBhdWwNCitTbHV0ZXIsIENsYXVzDQorU21hbGx3b29kLCBXaWxsaWFtIEZyb21lDQorU21hcnQsIEpvaG4NCitTbWFydGx5LCBIZW5yeQ0KK1NtaWJlcnQsIEpvaG4NCitTbWlkdGgsIEhhbnMNCitTbWlsbGllLCBHZW9yZ2UgSGVucnkNCitTbWlya2UsIFJvYmVydA0KK1NtaXRoIElJSSwgTGVlIE4uDQorU21pdGgsIEFsZXhpcw0KK1NtaXRoLCBBbGZyZWQNCitTbWl0aCwgQWxsZW4NCitTbWl0aCwgRGFuYQ0KK1NtaXRoLCBEYXZpZA0KK1NtaXRoLCBEZWJiaWUNCitTbWl0aCwgRWRpdGggQWduZXMNCitTbWl0aCwgR3JhY2UgQ29zc2luZ3Rvbg0KK1NtaXRoLCBKYWNrDQorU21pdGgsIEphdW5lIFF1aWNrLVRvLVNlZQ0KK1NtaXRoLCBKZXNzaWUgV2lsbGNveA0KK1NtaXRoLCBKb2huIENocmlzdG9waGVyDQorU21pdGgsIEpvaG4gUmFwaGFlbA0KK1NtaXRoLCBKb2huIFRob21hcw0KK1NtaXRoLCBKb2huICdXYXJ3aWNrJw0KK1NtaXRoLCBKb3NlcGggQi4NCitTbWl0aCwgS2lraQ0KK1NtaXRoLCBMZW9uIFBvbGsNCitTbWl0aCwgTGV3aXMNCitTbWl0aCwgTWFyaW9uIEMuDQorU21pdGgsIE9saXZlciBQaGVscHMNCitTbWl0aCwgUGhlYmUgQS4NCitTbWl0aCwgUmljaw0KK1NtaXRoLCBSb3lhbGwgQnJld3N0ZXINCitTbWl0aCwgU2lyIE1hdHRoZXcNCitTbWl0aCwgVGhvbWFzDQorU21pdGgsIFRvbnkNCitTbWl0aCwgVHVja2VyDQorU21pdGgsIFcuIEV1Z2VuZQ0KK1NtaXRoLCBXYWx0ZXIgR3JhbnZpbGxlDQorU21pdGhlcnMsIENvbGxpZXINCitTbWl0aHNvbiwgUm9iZXJ0DQorU21pdHMsIEphY29iDQorU215dGhlLCBMaW9uZWwgUGVyY3kNCitTbm93LCBNaWNoYWVsDQorU25vd2RlbiwgR2lsZGENCitTbnlkZXIsIEFtYW5kYQ0KK1NueWRlciwgRGVhbg0KK1NueWRlcnMsIEZyYW5zDQorU29hbmUsIFNpciBKb2huDQorU29kb21hLCBJbA0KK1NvZXN0LCBHZXJhcmQNCitTb2dsaWFuaSwgR2lvdmFubmkgQW50b25pbw0KK1NvaGxiZXJnLCBIYXJhbGQNCitTb2xhbmEsIEpvc8OpIEd1dGnDqXJyZXoNCitTb2xhcmksIENyaXN0b2Zvcm8NCitTb2xhcmlvLCBBbmRyZWENCitTb2xhcm8sIEdlbnRpbmUNCitTb2xkYW5pLCBNYXNzaW1pbGlhbm8NCitTb2xkYXRpLCBBdGFuYXNpbw0KK1NvbGRuZXIsIFBhdWwNCitTb2xlcmksIFBhb2xvDQorU29saW1lbmEsIEZyYW5jZXNjbw0KK1NvbGlzLCBWaXJnaWwNCitTb2xvbW9uLCBBYnJhaGFtDQorU29sb21vbiwgUmViZWNjYQ0KK1NvbG9tb24sIFNpbWVvbg0KK1NvbG9tb24sIFNvbG9tb24gSm9zZXBoDQorU29tZXJzLCBGcmVkDQorU29tZXJzY2FsZXMsIFRob21hcyBKLg0KK1NvbW1lciwgRnJlZGVyaWNrDQorU29tbWVyLCBHaW9yZ2lvDQorU29tb2d5aSwgRMOhbmllbA0KK1NvbW92LCBLb25zdGFudGluDQorU8O4bmRlcmdhYXJkLCBKZW5zDQorU29uZyBXZW56aGkNCitTb25uaWVyLCBLZWl0aA0KK1Nvbm50YWcsIFdpbGxpYW0gTG91aXMNCitTb25zLCBHaW92YW5uaQ0KK1NvcmVhdSwgSXNhYWMNCitTw7hyZW5zZW4sIEFybmUgSGF1Z2VuDQorU29yZ2gsIEhlbmRyaWsgTWFydGVuc3oNCitTb3JpYW5vLCBKdWFuDQorU29yb2xsYSB5IEJhc3RpZGEsIEpvYXF1aW4NCitTb3Nla2kNCitTb3NlbiwgTW9yaQ0KK1NvdG8sIEplc8O6cy1SYWZhZWwNCitTb3VjaCwgSm9obg0KK1NvdWxhZ2VzLCBQaWVycmUNCitTb3V0aGFsbCwgSm9zZXBoIEVkd2FyZA0KK1NvdXRpbmUsIENoYWltDQorU295ZXIsIElzYWFjDQorU295ZXIsIE1vc2VzDQorU295ZXIsIFJhcGhhZWwNCitTcGFkaW5pLCBBcm1hbmRvDQorU3BhZXRoLCBNYXJpZSBIYXVnaHRvbg0KK1NwYWduYSwgTG8NCitTcGFsbGV0dGksIEV0dG9yZQ0KK1NwYXJhZ2FuYSwgSm9obg0KK1NwYXVsZGluZywgRnJlZGENCitTcGVhciwgUnVza2luDQorU3BlY2thZXJ0LCBIYW5zDQorU3BlbmNlLCBUaG9tYXMgUmFscGgNCitTcGVuY2VyLCBGcmVkZXJpY2sgUi4NCitTcGVuY2VyLCBHaWxiZXJ0DQorU3BlbmNlciwgSm9zZXBoDQorU3BlbmNlciwgTGFkeQ0KK1NwZW5jZXIsIExpbGx5IE1hcnRpbg0KK1NwZW5jZXIsIE5pbGVzDQorU3BlbmNlciwgU3RhbmxleQ0KK1NwZW5jZXIsIFRob21hcw0KK1NwZW5nbGVyLCBKZXJvbmltdXMNCitTcGVyYW5kaW8sIFNhdmVsbGkNCitTcGVybywgTmFuY3kNCitTcGllZ2VsLCBEb3Jpcw0KK1NwaWxiZXJnLCBKb2hhbm4NCitTcGlsbGlhZXJ0LCBMw6lvbg0KK1NwaW4sIEphY29iDQorU3BpbmVsbGksIFBhcnJpDQorU3BpbmVsbG8gQXJldGlubw0KK1NwaW5vc2EsIERvbWVuaWNvDQorU3BpdHp3ZWcsIENhcmwNCitTcG9lcnJpLCBEYW5pZWwNCitTcG9pbHVtDQorU3BvbHZlcmluaSwgSWxhcmlvDQorU3BvcnJpbmcsIE9sZQ0KK1NwcmFuZ2VyLCBCYXJ0aG9sb21ldXMNCitTcHJpbmdlciwgQ29ybmVsaXMNCitTcHJ1YW5jZSwgQmVudG9uIE11cmRvY2gNCitTcHlidWNrLCBFcm5lc3QNCitTcXVpcmVzLCBHZXJhbGQNCitTdGFkbGVyLCBKb3NlcGggQ29uc3RhbnRpbg0KK1N0YWR0YsOkdW1lciwgUGlhDQorU3RhaGxlY2tlciwgS2FyZW4NCitTdGFtb3MsIFRoZW9kb3Jvcw0KK1N0YW5jemFrLCBKdWxpYW4NCitTdGFuZmllbGQsIENsYXJrc29uIEZyZWRlcmljaw0KK1N0YW5ob3BlLCBKb2huIFJvZGRhbSBTcGVuY2VyDQorU3RhbmtpZXdpY3osIFJpY2hhcmQNCitTdGFubGF3cywgUGVucmh5bg0KK1N0YW5sZXksIEFicmFtIFJvc3MNCitTdGFubGV5LCBKYW5lIEMuDQorU3RhbmxleSwgSm9obiBNaXgNCitTdGFuemlvbmUsIE1hc3NpbW8NCitTdGFyaywgSmFtZXMNCitTdGFyaywgT3R0bw0KK1N0YXRpLCBDcmlzdG9mb3JvDQorU3RhdXRiZXJnLCBBbm4NCitTdGF2ZXJlbiwgSmFuIEFkcmlhZW5zei4gdmFuDQorU3RlYWQsIEdhcnkNCitTdGVhZG1hbiwgUmFscGgNCitTdGVhcm5zLCBKdW5pdXMgQnJ1dHVzDQorU3RlYXJucywgV2lsbGlhbQ0KK1N0ZWNrLCBQYXVsDQorU3RlZWxlLCBCZW4NCitTdGVlbGUsIEZyZWRlcmljIERvcnINCitTdGVlbGUsIFRoZW9kb3JlIENsZW1lbnQNCitTdGVlbiwgRXJsaW5nDQorU3RlZW4sIEphbg0KK1N0ZWVud2lqY2ssIEhhcm1lbg0KK1N0ZWVud3ljayB0aGUgWW91bmdlciwgSGVuZHJpayB2YW4NCitTdGVlciwgUGhpbGlwIFdpbHNvbg0KK1N0ZWZhbm8gZGEgVmVyb25hDQorU3RlZmFubyBkZWxsYSBCZWxsYQ0KK1N0ZWZhbm8gZGkgWmV2aW8NCitTdGVmZmVuLCBCZXJuYXJkIEouDQorU3RlaWNoZW4sIEVkd2FyZCBKLg0KK1N0ZWluYmFjaCwgSGFpbQ0KK1N0ZWluYmVyZywgU2F1bA0KK1N0ZWluYnJ1Y2ssIEVkb3VhcmQNCitTdGVpbmVyLCBKb2huDQorU3RlaW5sZW4sIFRow6lvcGhpbGUgQWxleGFuZHJlDQorU3RlaXIsIFBhdA0KK1NURUxBUkMNCitTdGVsbGEsIEZyYW5rDQorU3RlbGxhLCBKYWNxdWVzIGRlDQorU3RlbGxhLCBKb3NlcGgNCitTdGVwaGVucywgRnJlZGVyaWMgR2VvcmdlDQorU3RlcGhlbnMsIFRob21hcyBFZGdhcg0KK1N0ZXBoZW5zb24sIEpvaG4gQ2VjaWwNCitTdGVwaGVuc29uLCBQZXRlcg0KK1N0ZXJuYmVyZywgSGFycnkNCitTdGVybmUsIE1hdXJpY2UNCitTdGVybmVyLCBBbGJlcnQgRWR3YXJkDQorU3RldGgsIFJheW1vbmQNCitTdGV0dGhlaW1lciwgRmxvcmluZQ0KK1N0ZXR0bmVyLCBMb3Vpcw0KK1N0ZXZlbnMgMTgxNy0xODc1LCBBbGZyZWQNCitTdGV2ZW5zIDE4MjMtMTkwNiwgQWxmcmVkDQorU3RldmVucywgUnV0aCBUdW5hbmRlcg0KK1N0ZXdhcmQsIEpvc2VwaA0KK1N0ZXdhcmRzb24sIFRob21hcw0KK1N0ZXdhcnQsIEFsYmVydA0KK1N0ZXdhcnQsIERhdmlkDQorU3Rld2FydCwgSm9obiBQLg0KK1N0ZXdhcnQsIEp1bGl1cyBMLg0KK1N0aWVnbGl0eiwgQWxmcmVkDQorU3RpZWxlciwgSm9zZXBoDQorU3RpbGwsIENseWZmb3JkDQorU3RpbGxtYW4sIE1hcmllIFNwYXJ0YWxpDQorU3RpbGxtYW4tTXllcnMsIEpveWNlDQorU3RvY2ssIEFuZHJpZXMNCitTdG9jaywgSm9zZXBoIFdoaXRpbmcNCitTdG9ja3QsIFZyYW5ja2UgdmFuIGRlcg0KK1N0b2NrdG9uLCBCaWxsDQorU3RvZGFydCwgRWR3YXJkIFdpbGxpYW0NCitTdG9rZXMgMTg1NC0xOTM1LCBBZHJpYW4NCitTdG9rZXMgMTkwMi0xOTcyLCBBZHJpYW4NCitTdG9rZXMsIE1hcmlhbm5lDQorU3RvbGwsIExlb3BvbGQgdm9uDQorU3RvbHpsLCBHdW50YQ0KK1N0b21lciwgTWF0dGhpYXMNCitTdG9uZSwgQW5uZSBCZWxsZQ0KK1N0b25lLCBFbGlub3JlDQorU3RvbmUsIE1hcmN1cw0KK1N0b25lLCBOaWNob2xhcw0KK1N0b25lLCBSaWNoYXJkDQorU3Rvb3AsIERpcmNrDQorU3RvcmNrLCBBYnJhaGFtDQorU3RvcmNrLCBKYWNvYg0KK1N0b3JycywgRnJhbmNlcyBIdWRzb24NCitTdG9ycnMsIEpvaG4NCitTdG9yeSwgR2VvcmdlIEguDQorU3RvcnksIEp1bGlhbg0KK1N0b3J5LCBXaWxsaWFtIFdldG1vcmUNCitTdG9zcywgVmVpdA0KK1N0b3RoYXJkLCBUaG9tYXMNCitTdG90dCwgRWR3YXJkDQorU3RvdHQsIFdpbGxpYW0NCitTdG91ZiwgSmVhbi1CYXB0aXN0ZQ0KK1N0b3VtZW4sIExvdQ0KK1N0b3V0LCBSZW7DqWUNCitTdG91dGVyLCBELkcuDQorU3RyYWV0LCBKYW4gdmFuIGRlcg0KK1N0cmFuZCwgUGF1bA0KK1N0cmFuZywgV2lsbGlhbQ0KK1N0cmF0dG9uLCBNYXJ5IENoYXNlDQorU3RyYXViLCBQaGlsaXBwZSBKYWtvYg0KK1N0cmVldCwgUm9iZXJ0DQorU3RyZWV0b24sIEFydGh1cg0KK1N0cmV1bGksIEJlYXQNCitTdHJpZ2VsLCBCZXJuaGFyZA0KK1N0cm9tZXllciwgRGF2aWQNCitTdHJvbmcsIEVsaXphYmV0aA0KK1N0cm9uZy1DdWV2YXMNCitTdHJvdGhlciwgRGF2aWQgSHVudGVyDQorU3Ryb3p6aSwgQmVybmFyZG8NCitTdHJ1YiB0aGUgWW91bmdlciwgUGV0ZXINCitTdHJ1Y2ssIEhlcm1hbm4NCitTdHJ1ZHdpY2ssIEpvaG4gTWVsaHVpc2gNCitTdHJ1c3MsIEV0aGVsDQorU3RydXRoLCBUaG9tYXMNCitTdHJ1dHQsIEFydGh1ciBKb2huDQorU3R1YXJ0LCBHaWxiZXJ0DQorU3R1YXJ0LCBKYW5lDQorU3R1YXJ0LCBNaWNoZWxsZQ0KK1N0dWFydCwgU2lnbmUNCitTdHViYmlucywgS3lsZQ0KK1N0dWJicywgR2VvcmdlDQorU3R1YmVyLCBOaWtvbGF1cyBHb3R0ZnJpZWQNCitTdHVjaywgRnJhbnogdm9uDQorU3R1ZW1wZmlnLCBXYWx0ZXINCitTdHVydGV2YW50LCBIZWxlbmENCitTdSBIYW5jaGVuDQorU3VibGV5cmFzLCBQaWVycmUNCitTdWVoYXJ1LCBGdWthbWkNCitTdWdpbW90bywgSGlyb3NoaQ0KK1N1aW8sIFRhbXVyYQ0KK1N1a2Vub2J1DQorU3Vrb2xhLCBKYXNvbg0KK1N1a3dvbiwgUGFyaw0KK1N1bGVpbWFuLCBNYXN0ZXINCitTdWxsaXZhbiwgTG91aXMNCitTdWxsaXZhbiwgTWFydHkNCitTdWxseSwgVGhvbWFzDQorU3VsbHksIFRob21hcyBXaWxjb2Nrcw0KK1N1bHRhbiBNdWhhbW1hZA0KK1N1bHRhbiwgRG9uYWxkDQorU3VuIFppeGkNCitTdW5kZXJsYW5kLCBUaG9tYXMNCitTdW5xdWENCitTdXJscywgSmFtZXMNCitTdXNpbmksIEFudG9uaW8NCitTdXNpbmksIEdpYW5mcmFuY2VzY28NCitTdXN0ZXJtYW5zLCBKdXN0dXMNCitTdXRjbGlmZmUsIEZyYW5rDQorU3V0aGVybGFuZCwgRWxpemFiZXRoIExldmVzb24tR293ZXIsIENvdW50ZXNzIG9mDQorU3V0aGVybGFuZCwgR3JhaGFtDQorU3V0dG9uLCBEYXZpZA0KK1N1dsOpZSwgSm9zZXBoLUJlbm/DrnQNCitTdmVuZHNlbiwgQmphcmtlIFJlZ24NCitTdmVubnNvbiwgQ2Fyc3Rlbg0KK1N3YW4sIEpvaG4gTWFjYWxsYW4NCitTd2FuLCBNYXJnYXJldA0KK1N3YW5ldmVsdCwgSGVybWFuIHZhbg0KK1N3ZWVydHMsIE1pY2hpZWwNCitTd2VuZHNvbiwgVHJ5Z3ZlDQorU3dlbnR6ZWxsLCBSb3hhbm5lDQorU3dpbmcgUGFpbnRlciwgVGhlDQorU3d5bm5lcnRvbiwgQW5uaWUgTG91aXNlDQorU3lsZXVzIFBhaW50ZXIsIFRoZQ0KK1N5bW9uZHMsIFdpbGxpYW0gUm9iZXJ0DQorU3ltb25zLCBHZW9yZ2UgR2FyZG5lcg0KK1N5cmlza29zDQorU3rDqWtlbHksIEJlcnRhbGFuDQorU3ppbGFyZCwgVmljDQorU3ppbGFzaSwgR2Fib3INCitUYWFmZmUsIFBoaWxpcA0KK1RhY2NhLCBQaWV0cm8NCitUYWNrLCBBdWd1c3R1cyBWaW5jZW50DQorVGFkZGVvIGRpIEJhcnRvbG8NCitUYWZveWEsIE1hcmdhcmV0DQorVGFpbGZlYXRoZXJzLCBHZXJhbGQNCitUYWlsbGFzc29uLCBKZWFuLUpvc2VwaA0KK1RhaXQsIEFnbmVzDQorVGFrYWV6dSwgVG9zaGlrbw0KK1Rha2FoYXNoaSwgUmlraW8NCitUYWxib3QsIFRvbQ0KK1RhbGJvdCwgV2lsbGlhbSBIZW5yeSBGb3gNCitUYWwtQ29hdCwgUGllcnJlDQorVGFsaXJ1bmlsaSwgSm9lDQorVGFscGlubywgRW5lYQ0KK1RhbWF5bywgUnVmaW5vDQorVGFtb3R6dSwgQ2h1em8NCitUYW5hYmUsIFRha2FvDQorVGFuZyBNdWxpDQorVGFuZyBZaWhlDQorVGFuZyBZaW4NCitUYW5nIFlpbmd3ZWkNCitUYW5ndXksIFl2ZXMNCitUYW5uZXIsIEJlbmphbWluDQorVGFubmVyLCBIZW5yeSBPc3Nhd2ENCitUYW5uZXIsIEouRy4NCitUYW5uaW5nLCBEb3JvdGhlYQ0KK1RhbnNleSwgTWFyaw0KK1RhbnppbyBkYSBWYXJhbGxvDQorVCdhbyBDaCdlbmcNCitUYW8gWXVhbnFpbmcNCitUw6BwaWVzLCBBbnRvbmkNCitUYXBpZXMsIE1vZGVzdA0KK1RhcmF2YWwsIEh1Z2hlcw0KK1RhcmF2YWwsIExvdWlzIEd1c3RhdmUNCitUYXJiZWxsLCBFZG11bmQgQ2hhcmxlcw0KK1Rhc3NhZXJ0LCBKZWFuLVBpZXJyZS1BbnRvaW5lDQorVGFzc2FlcnQsIFBoaWxpcHBlIEpvc2VwaA0KK1RhdGFmaW9yZSwgR3VpZG8NCitUYXVuYXksIE5pY29sYXMtQW50b2luZQ0KK1RhdmVybmFyaSwgVml0dG9yaW8NCitUYXZlcm5lciwgV2lsbGlhbQ0KK1RhdmVybmllciwgSnVsZXMNCitUYXdhcmF5YSBTb3RhdHN1DQorVGF5bGVyLCBBbGJlcnQgQ2hldmFsbGllcg0KK1RheWxvciwgQW5uYSBIZXl3YXJkDQorVGF5bG9yLCBKb2huIFcuDQorVGF5bG9yLCBQcmVudGlzcw0KK1RheWxvciwgUmljaGFyZA0KK1RheWxvciwgV2VzDQorVGF5bG9yLUxpbmRvZSwgQ2Fycm9sbA0KK1RjaGVsaXRjaGV3LCBQYXZlbA0KK1RlZXJsaW5lLCBMZXZpbmENCitUZWljaGVydCwgTWluZXJ2YQ0KK1RlaXhlaXJhIGRlIE1hdHRvcywgSm9zZXBoDQorVGVtcGVsLCBBYnJhaGFtIHZhbiBkZW4NCitUZW1wbGV0b24sIFJvYmVydA0KK1RlbmVyYW5pLCBQaWV0cm8NCitUZW5nIEhpb2sgQ2hpdQ0KK1RlbmduYWdlbCwgSmFuDQorVGVuaWVycyB0aGUgWW91bmdlciwgRGF2aWQNCitUZW5uaWVsLCBTaXIgSm9obg0KK1Rlbnl1IFNob2tlaQ0KK1RlcmJvcmNoLCBHZXJhcmQNCitUZXJicnVnZ2hlbiwgSGVuZHJpY2sNCitUZXJyZWxsLCBFbGl6YWJldGgNCitUZXNpLCBNYXVybyBBbnRvbmlvDQorVGVzdGEsIFBpZXRybw0KK1RldXBrZW4gU3IuLCBELkEuDQorVGhhbiwgTcOzcg0KK1RoYXllciwgQWJib3R0IEhhbmRlcnNvbg0KK1RoZWVkLCBXaWxsaWFtDQorVGjDqW9kb24sIEplYW4gQmFwdGlzdGUNCitUaGVvcGhhbmVzIHRoZSBHcmVlaw0KK1RoZXJidXNjaCwgQW5uYSBEb3JvdGhlYQ0KK1RoZXJpZW4sIFJvYmVydA0KK1RoZXVzLCBKZXJlbWlhaA0KK1RoaWViYXVkLCBXYXluZQ0KK1RoaWVsZSBJSSwgSm9oYW5uIEZyaWVkcmljaCBBbGV4YW5kZXINCitUaGllbGVuLCBKYW4gUGhpbGlwcyB2YW4NCitUaGllbWUsIEFudGhvbnkNCitUaGllcnJ5LCBKZWFuDQorVGhpZXNzZW4sIExlb25hcmQNCitUaG9tYXMsIEFsbWENCitUaG9tYXMsIEphbWVzIEhhdmFyZA0KK1Rob21wc29uLCBCZW5qYW1pbg0KK1Rob21wc29uLCBCb2INCitUaG9tcHNvbiwgUmljaGFyZCBFYXJsDQorVGhvbXBzb24sIFdpbGZyZWQNCitUaG9tcHNvbiwgV29yZHN3b3J0aA0KK1Rob21zb24sIEFsZnJlZCBSZWdpbmFsZA0KK1Rob21zb24sIFJldi4gSm9obg0KK1Rob21zb24sIFRvbQ0KK1Rob24sIFdpbGxpYW0NCitUaG9ybmhpbGwsIFNpciBKYW1lcw0KK1Rob3JueWNyb2Z0LCBTaXIgSGFtbw0KK1Rob3J2YWxkc2VuLCBCZXJ0ZWwNCitUaHJhc2gsIERveA0KK1RodWxkZW4sIFRoZW9kb29yIHZhbg0KK1RpYW4gU2hpZ3VhbmcNCitUaWFyaW5pLCBBbGVzc2FuZHJvDQorVGliYWxkaSwgUGVsbGVncmlubw0KK1RpYmJldHRzLCBHYXJ5DQorVGljZSwgR2VvcmdlDQorVGllbiBDaGkNCitUaWVwb2xvLCBHaW92YW5uaSBCYXR0aXN0YQ0KK1RpZXBvbG8sIEdpb3Zhbm5pIERvbWVuaWNvDQorVGlmZmFueSwgTG91aXMgQ29tZm9ydA0KK1RpaXNhbGEsIEVldmENCitUaWxsZW1hbnMsIFBldGVyDQorVGlsbGVycywgSW1hbnRzDQorVGlsc29uLCBKb2UNCitUaW1jaGFrLCBHYXJ5DQorVGltbWFubiwgQmlsbA0KK1RpbmVsbGksIFRpYmVyaW8NCitUaW5nLCBXYWxhc3NlDQorVGluZ3F1YQ0KK1Rpbmd1ZWx5LCBKZWFuDQorVGlubyBkYSBDYW1haW5vDQorVGlucXVhDQorVGludG9yZXR0bw0KK1Rpcm9uaSwgRnJhbmNlc2NvDQorVGlzY2hiZWluLCBKb2hhbm4gSGVpbnJpY2ggV2lsaGVsbQ0KK1Rpc2NoYmVpbiwgSm9oYW5uLUZyaWVkcmljaC1BdWd1c3QNCitUaXNzb3QsIEphbWVzDQorVGl0aWFuDQorVGl0bGUsIENocmlzdGlhbg0KK1RvYmV5LCBNYXJrDQorVG9jcXXDqSwgTG91aXMNCitUb2RkLCBKYW1lcw0KK1RvZGQsIE1pY2hhZWwNCitUb2RlcmksIEdyYXppYQ0KK1RvZXB1dCwgTG9kZXd5aw0KK1RvZ29yZXMgaSBMbGFjaCwgSm9zw6kgZGUNCitUb2lra2EsIE9pdmENCitUb2xlZG8sIEZyYW5jaXNjbw0KK1RvbWVhLCBGaW9yZW56bw0KK1RvbWtpbnMsIFdpbGxpYW0NCitUb21tYXNvIENhenphbmlnYQ0KK1RvbW95dWtpLCBTaG9reXVzYWkNCitUb25nZXJlbiwgSGVyayBWYW4NCitUb25uYW5jb3VyLCBKYWNxdWVzIEcuIGRlDQorVG9va2VyLCBHZW9yZ2UNCitUb29rb29tZSwgU2ltb24NCitUb29sZSwgSm9obg0KK1Rvb2xleSBKci4sIEphbWVzDQorVG9vcm9wLCBDaGFybGV5DQorVG9vcm9wLCBKYW4NCitUb3BjaGV2c2t5LCBNb3JyaXMNCitUb3BvbHNraSwgRmVsaWtzDQorVG9yYmVydCwgU3RlcGhhbmllDQorVG9ybGFrc29uLCBKYW1lcw0KK1Rvcm9uaSwgTmllbGUNCitUb3JyZW5zLCBCZXJuYXJkbw0KK1RvcnJlcy1HYXJjw61hLCBKb2FxdcOtbg0KK1RvcnJldHRpLCBHaXVzZXBwZQ0KK1RvcnJleSwgSGlyYW0gRHdpZ2h0DQorVG9ycmlnaWFuaSwgU2ViYXN0aWFubw0KK1RvcnJpZ2lhbm8sIFBpZXRybw0KK1Rvc2EsIE1pdHN1eW9zaGkNCitUb3NhbmksIFBhdHJpY2sNCitUb3NjYW5pLCBHaW92YW5uaQ0KK1Rvc2h1c2FpIFNoYXJha3UNCitUb3NpbmksIE1pY2hlbGUNCitUb3Vsb3VzZS1MYXV0cmVjLCBIZW5yaSBkZQ0KK1RvdXJuaWVyLCBOaWNvbGFzDQorVG91c2lnbmFudCwgQ2xhdWRlDQorVG91dGFudCwgV2FsbHkNCitUb3duLCBIYXJvbGQNCitUb3duZSwgRnJhbmNpcw0KK1RveW9oYXJ1LCBVdGFnYXdhDQorVG95b2t1bmkNCitUb3lva3VuaSBJSSwgVXRhZ2F3YQ0KK1RveW9tYXNhLCBOYWl0bw0KK1RyYWluaSwgRnJhbmNlc2NvDQorVHJhdmVyLCBNYXJpb24gR3JheQ0KK1RyYXlsb3IsIEJpbGwNCitUcmVhdCwgSGVucnkNCitUcmVnb3IsIE5pc29uDQorVHJlaW1hbiwgSm95Y2UNCitUcmVzaGFtLCBIZW5yeQ0KK1RyZXZlbHlhbiwgSnVsaWFuDQorVHJldmlubywgSmVzc2UNCitUcmV2aXNhbmksIEZyYW5jZXNjbw0KK1RyaWJvbG8sIE5pY2NvbG8NCitUcmlucXVlc3NlLCBMb3VpcyBSb2xsYW5kDQorVHJpcXVldGksIEhlbnJpIGRlDQorVHJpc3TDoW4gZGUgRXNjYW1pbGxhLCBMdWlzDQorVHJvY2tlbCwgUm9zZW1hcmllDQorVHJvbWJhZG9yaSwgRnJhbmNlc2NvDQorVHJvb3N0d2lqaywgV291dGVyIEpvaGFubmVzIHZhbg0KK1Ryb3BpbmluLCBWYXNpbGlpIEFuZHJlZXZpY2gNCitUcm91aWxsZWJlcnQsIFBhdWwgRGVzaXLDqQ0KK1Ryb3dlciwgV2FsdGVyIEpvaG4NCitUcm95LCBGcmFuw6dvaXMgZGUNCitUcm95LCBKZWFuLUZyYW7Dp29pcyBkZQ0KK1Ryb3lvbiwgQ29uc3RhbnQNCitUcnVtYnVsbCwgSm9obg0KK1RyeW9uLCBEd2lnaHQgVy4NCitUc2lobmFoamlubmllLCBIdWxsZWFoDQorVHNpcmVoLCBBd2ENCitUc3VraW1hcm8sIEtpdGFnYXdhDQorVHUsIEJhaXhpb25nDQorVHVieSBJLCBKZWFuLUJhcHRpc3RlDQorVHVjaGZhcmJlciwgRnJhbmsNCitUdWNrZXIsIEFsbGVuDQorVHVja2VyLCBXaWxsaWFtDQorVHVja2VybWFuLCBKYW5lDQorVHVkZ2F5LCBGcmVkZXJpaw0KK1R1ZGdheSwgSm9obg0KK1R1ZGxpaw0KK1R1ZG90LCBFZG1vbmQNCitUdWxseSwgU3lkbmV5IFN0cmlja2xhbmQNCitUdW5uaWNsaWZmZSwgQ2hhcmxlcyBGcmVkZXJpY2sNCitUdW5uaWxsaWUsIE92aWxvbw0KK1R1cmEsIENvc23DqA0KK1R1cmNoaSwgQWxlc3NhbmRybw0KK1R1cm5idWxsLCBKYW1lcw0KK1R1cm5idWxsLCBXaWxsaWFtDQorVHVybmVyLCBDaGFybGVzDQorVHVybmVyLCBEYW5pZWwNCitUdXJuZXIsIEhlbGVuIE0uDQorVHVybmVyLCBKb3NlcGggTWFsbG9yZCBXaWxsaWFtDQorVHVybmVyLCBSb2Jpbg0KK1R1cm5lciwgVy4NCitUdXJwaW4gZGUgQ3Jpc3PDqSwgSGVucnkgUm9sYW5kIExhbmNlbG90DQorVHVycGluIGRlIENyaXNzw6ksIExhbmNlbG90LVRow6lvZG9yZQ0KK1R1cnJlbGwsIEphbWVzDQorVHVydG9uLCBNLg0KK1R1eGVuLCBMYXVyaXRzDQorVHdhY2h0bWFuLCBKb2huIEhlbnJ5DQorVHdpdHR5LCBKYW1lcw0KK1R3b21ibHksIEN5DQorVHdvcmtvdiwgSmFjaw0KK1R5bGVyLCBCcmFkDQorVHlsZXIsIEphbWVzIEdhbGUNCitVY2NlbGxvLCBQYW9sbw0KK1VjLWNoaW4sIENoYW5nDQorVWNoaWRhLCBCYXJ0DQorVWRhbHRzb3ZhLCBOYWRlemhkYSBBbmRyZWV2bmENCitVZGVsbCwgSmFuaWNlDQorVWRlbiwgTHVjYXMgdmFuDQorVWZlciwgV2FsdGVyDQorVWdvIERhIENhcnBpDQorVWdvbGlubyBkYSBTaWVuYQ0KK1VoZGUsIEZyaXR6IEthcmwgSGVybWFubiB2b24NCitVaGxtYW5uLCBIYW5zDQorVWtlbGVzLCBNaWVybGUgTGFkZXJtYW4NCitVa2l0YSBJa2tlaQ0KK1VsbGJlcmcsIEtlbnQNCitVbGx1bGFxLCBKdWRhcw0KK1VsbWFubiwgRG9yaXMNCitVbmRlcndvb2QsIFRob21hcyBSaWNoYXJkDQorVW5kZXJ3b3JsZCBQYWludGVyLCBUaGUNCitVbmtva3UgVG9nYW4NCitVbm9sZCwgTWF4DQorVXJ1c2hpYmFyYSwgWW9zaGlqaXJvDQorVXNoYWtvdiwgU2ltb24NCitVdGFtYXJvLCBLaXRhZ2F3YQ0KK1V0a2luLCBJbHlhDQorVXRyaWxsbywgTWF1cmljZQ0KK1V3aW5zLCBUaG9tYXMNCitVeXR0ZW5icm9lY2ssIE1vc2VzIHZhbg0KK1ZhLCBCYXJyeSBMZQ0KK1ZhY2Nhcm8sIEFuZHJlYQ0KK1ZhY2hlciwgQ2hhcmxlcw0KK1ZhZGRlciwgTG9kZXdpamsgZGUNCitWYWlsLCBFdWdlbmUgTGF3cmVuY2UNCitWYWlsbGFudCwgV2FsbGVyYW50DQorVmFsYWRvbiwgU3V6YW5uZQ0KK1ZhbGNrZW5ib3JjaCwgTHVjYXMgdmFuDQorVmFsZGFtYnJpbm8sIEZyYW5jZXNjbyBkaQ0KK1ZhbGTDqXMgTGVhbCwgSnVhbiBkZQ0KK1ZhbGVuY2llbm5lcywgUGllcnJlLUhlbnJpIGRlDQorVmFsZW56dWVsYSBMbGFub3MsIEFsYmVydG8NCitWYWxldCwgSm9hbg0KK1ZhbGxlam8sIEJvcmlzDQorVmFsbG90dG9uLCBGw6lsaXgNCitWYWxscyBTdWJpcmEsIFhhdmllcg0KK1ZhbHRhdCwgTG91aXMNCitWYW4gQWtlbiwgSm9zZXBoDQorVmFuIEFsc3RpbmUsIEpvaG4NCitWYW4gQXNzZW4sIEJlbmVkaWN0IEFudGhvbnkNCit2YW4gQmVlc3QsIEFsYmVydHVzDQordmFuIEJydWdnZW4sIENvb3NqZQ0KK1ZhbiBDbGV2ZSwgQ29ybmVpbGxlDQordmFuIGRlIFZlbGRlIElJSSwgSmFuIEphbnN6Lg0KK3ZhbiBkZXIgU2NoYXJkdCwgSm9oYW4gR3JlZ29yDQorVmFuIERlcnplZSwgSmFtZXMNCitWYW4gRHljaywgU2lyIEFudGhvbnkNCit2YW4gR29naCwgVmluY2VudA0KK3ZhbiBIZWVtc2tlcmsgSSwgRWdiZXJ0DQordmFuIEhlZW1za2VyayBJSUksIEVnYmVydA0KK1ZhbiBIb2VzZW4sIEJldGgNCit2YW4gSG92ZSwgSHViZXJ0dXMNCitWYW4gTGFhciwgVGltDQorVmFuIExhZXIsIEFsZXhhbmRlciBUaGVvYmFsZA0KK3ZhbiBMb28sIExvdWlzLU1pY2hlbA0KK1ZhbiBOZXNzLCBCZWF0cmljZSBXLg0KK1ZhbiBTb21lciwgUGF1bA0KK3ZhbiBTcGFlbmRvbmNrLCBDb3JuZWxpcw0KK3ZhbiBTdHJ5LCBBYnJhaGFtDQorVmFuZGVyYmFuaywgSm9obg0KK1ZhbmRlcmx5biwgSm9obg0KK1ZhbmxvbywgQ2FybGUNCitWYW5sb28sIENoYXJsZXMgQW3DqWTDqWUgUGhpbGlwcGUNCitWYW5uaSwgRnJhbmNlc2NvDQorVmFubmksIExpcHBvDQorVmFudml0ZWxsaSwgTHVpZ2kNCitWYXJnYXMsIEFsYmVydG8NCitWYXJpYW4sIExlc3RlciBFLg0KK1ZhcmxleSwgQ29ybmVsaXVzDQorVmFybGV5LCBGLkguDQorVmFybGV5LCBKb2huDQorVmFybGV5LCBXaWxsaWFtIEZsZWV0d29vZA0KK1Zhcm5lbGlzLCBLYXp5cw0KK1Zhcm8sIFJlbWVkaW9zDQorVmFzYXJlbHksIFZpY3Rvcg0KK1Zhc2FyaSwgR2lvcmdpbw0KK1Zhc2NvIGRlIGxhIFphcnphDQorVmFzbmV0c292LCBWaWt0b3IgTWlraGFpbG92aWNoDQorVmFzc2FsbGV0dG8sIFBpZXRybw0KK1Zhc3NhbGxvLCBBbnRvbmlvIE1hcmlhDQorVmF1dGllciwgQmVuDQorVsOhenF1ZXogRMOtYXosIERhbmllbA0KK1ZlYmVsbCwgRWR3YXJkDQorVmVjY2hpYSwgUGlldHJvIGRlbGxhDQorVmVjY2hpZXR0YQ0KK1ZlZGRlciwgRWxpaHUNCitWZWRvdmEsIEVtaWxpbw0KK1ZlZXJlbmRhZWwsIE5pY29sYWVzIHZhbg0KK1ZlbGEsIFZpbmNlbnpvDQorVmVsYXJkZSwgUGFibGl0YQ0KK1ZlbGFzY28gQmVsYXVzdGVndWlnb2l0aWEsIFJvc2FyaW8gZGUNCitWZWxhc2NvLCBKb3PDqSBNYXLDrWENCitWZWzDoXpxdWV6LCBEaWVnbw0KK1ZlbGRlIElJLCBKYW4gdmFuIGRlDQorVmVsZGUgdGhlIEVsZGVyLCBXaWxsZW0gdmFuIGRlDQorVmVsZGUgdGhlIFlvdW5nZXIsIFdpbGxlbSB2YW4gZGUNCitWZWxkZSwgQWRyaWFlbiB2YW4gZGUNCitWZWxkZSwgRXNhaWFzIHZhbiBkZQ0KK1Zlbm5lLCBBZHJpYWVuIFBpZXRlcnN6LiB2YW4gZGUNCitWZW51c3RpLCBNYXJjZWxsbw0KK1ZlcmJlZWNrLCBDb3JuZWxpcw0KK1ZlcmJvZWNraG92ZW4sIEV1Z8OobmUNCitWZXJicnVnZ2VuLCBIZW5kcmljayBGcmFucw0KK1ZlcmJ1cmcsIEpvQW5uDQorVmVyY3J1eXNzZSwgSmFuDQorVmVyZWxzdCwgSGFybWFuDQorVmVyZWxzdCwgTWFyaWENCitWZXJlbHN0LCBTaW1vbg0KK1ZlcmhhZWNodCwgVG9iaWFzDQorVmVyaG9lZiwgVG9vbg0KK1Zlcmh1bHN0LCBSb21ib3V0DQorVmVya2FkZSwgSmFuDQorVmVya29samUsIEphbg0KK1Zlcm1lZXIgSUlJLCBKYW4NCitWZXJtZWVyLCBKYW4NCitWZXJtZXllbiwgSmFuDQorVmVybmVyLCBFbGl6YWJldGggTydOZWlsbA0KK1Zlcm5lciwgRnJlZGVyaWNrIEEuDQorVmVybmV0LCBDYXJsZQ0KK1Zlcm5ldCwgQ2xhdWRlLUpvc2VwaA0KK1Zlcm5ldCwgSG9yYWNlDQorVmVyb25lc2UsIEJvbmlmYWNpbw0KK1Zlcm9uZXNlLCBQYW9sbw0KK1ZlcnJvY2NoaW8sIEFuZHJlYSBkZWwNCitWZXJzY2h1dXIsIFdvdXRlcnVzDQorVmVyc3Byb25jaywgSmFuIENvcm5lbGlzei4NCitWZXJzdGVyLCBGbG9yaXMNCitWZXJ0dWUsIEdlb3JnZQ0KK1Zlc3BpZ25hbmksIFJlbnpvDQorVmlhbmksIEFsYmVydG8NCitWaWJlcnQsIEplaGFuIEdlb3JnZXMNCitWaWNlbnRlLCBFc3RlYmFuDQorVmlja3JleSwgUm9iZXJ0DQorVmljdG9yaWEgTWFyeiwgU2FsdmFkb3INCitWaWN0b3JzLCBKYW4NCitWaWVuLCBKb3NlcGggTWFyaWUNCitWaWVzdWxhcywgUm9tYXMNCitWaWdhcm55LCBGZWxpcGUNCitWaWfDqWUtTGVicnVuLCBNYXJpZSBMb3Vpc2Ugw4lsaXNhYmV0aA0KK1ZpZ2VsYW5kLCBHdXN0YXYNCitWaWduYXVkLCBKZWFuDQorVmlsbGEsIENsYXVkaW8NCitWaWxsYWJyaWxsZSB5IFJvbiwgSnVhbiBBbG9uc28NCitWaWxsYWxiYSBGbG9yZXosIERhcsOtbw0KK1ZpbGxlcnMsIE1hcmllLURlbmlzZQ0KK1ZpbGxvbiwgSmFjcXVlcw0KK1ZpbmNlbnQsIEZyYW7Dp29pcy1BbmRyw6kNCitWaW5jZW56byBkaSBDYXRlbmENCitWaW5ja2Jvb25zLCBEYXZpZA0KK1Zpbm5lLCBWaW5jZW50IExhdXJlbnN6IHZhbiBkZXINCitWaW50b24sIEZyZWRlcmljayBQb3J0ZXINCitWaW9sYSwgQmlsbA0KK1Zpb2xhLCBHaWFuIEJhdHRpc3RhDQorVmlzY2hlciB0aGUgRWxkZXIsIFBldGVyDQorVmlzY2hlciB0aGUgWW91bmdlciwgUGV0ZXINCitWaXNjb250aSwgRWxpc2V1DQorVmlzaG55YWtvdiwgSXZhbg0KK1Zpc3NjaGVyLCBDbGFlcyBKYW5zei4NCitWaXRhbGUgZGEgQm9sb2duYQ0KK1ZpdHRvcmlhLCBBbGVzc2FuZHJvDQorVml0dWxsbywgU2Vzb3N0cmlzDQorVml2YXJpbmksIEFsdmlzZQ0KK1ZpdmFyaW5pLCBBbnRvbmlvDQorVml2YXJpbmksIEJhcnRvbG9tZW8NCitWbGFtaW5jaywgTWF1cmljZSBkZQ0KK1ZsaWVnZXIsIFNpbW9uIGRlDQorVmxpZXQsIEhlbmRyaWsgQ29ybmVsaXN6IHZhbiBkZXINCitWb2V0LCBGZXJkaW5hbmQNCitWb2dlbCwgSm9zZXBoDQorVm9pbGxlLCBKZWFuLUxvdWlzDQorVm9sYWlyZSwgUGllcnJlLUphY3F1ZXMNCitWb2xrLCBEb3VnbGFzDQorVm9sbCwgRi4gVXNoZXIgRGUNCitWb2xsbWVyLCBBZG9sZiBGcmllZHJpY2gNCitWb2xsb24sIEFudG9pbmUNCitWb2x0ZXJyYSwgRGFuaWVsZSBkYQ0KK3ZvbiBEZWZyZWdnZXIsIEZyYW56DQordm9uIEhlcmtvbWVyLCBTaXIgSHViZXJ0DQorVm9uY2ssIEphbg0KK1ZvbmRyb3VzLCBKYW4gQy4NCitWb25ub2gsIEJlc3NpZSBQb3R0ZXINCitWb25ub2gsIFJvYmVydA0KK1ZvcnN0ZXJtYW4gdGhlIEVsZGVyLCBMdWNhcw0KK1ZvcywgQ29ybmVsaXMgZGUNCitWb3MsIE1hcnRpbiBkZQ0KK1ZvcywgU2ltb24gZGUNCitWb3NtYWVyLCBEYW5pZWwNCitWb3NzLCBQYXVsDQorVm91ZXQsIEF1YmluDQorVm91ZXQsIFNpbW9uDQorVm91bGtvcywgUGV0ZXINCitWcmFuY3gsIEJhc3RpYWVuDQorVnJhbmtlbiwgRHV0Y2gNCitWcmVkZW1hbiBkZSBWcmllcywgSGFucw0KK1ZyZWwsIEphY29idXMNCitWcmVsYW50LCBXaWxsZW0NCitWcmllcywgQWJyYWhhbSBkZQ0KK1ZyaWVzLCBBZHJpYWVuIGRlDQorVnJvb20sIENvcm5lbGlzDQorVnJvb20sIEhlbmRyaWNrIENvcm5lbGlzei4NCitWcnViZWwsIE1pa2hhaWwNCitWdWlsbGFyZCwgw4lkb3VhcmQNCitWdW9sdmluaW8NCitXYWNodGVsLCBFbG1lcg0KK1dhY2h0ZWwsIE1hcmlvbiBLYXZhbmF1Z2gNCitXYWRkZWxsLCBUZWQNCitXYWRkZWxsLCBUaGVvZG9yZSBKLg0KK1dhZGxlaWdoLCBQZXRlDQorV2Fkc3dvcnRoLCBFZHdhcmQNCitXYWdlcywgQm9iDQorV2FnZ3Vubw0KK1dhZ25lciwgT3R0bw0KK1dhaW53cmlnaHQsIEpvaG4NCitXYWl0ZSwgRW1pbHkgQnVybGluZw0KK1dha2VsaW4sIFJvbGFuZA0KK1dhbGRtw7xsbGVyLCBGZXJkaW5hbmQgR2VvcmcNCitXYWxkbywgU2FtdWVsIExvdmV0dA0KK1dhbGRvcnAsIEFudG9uaWUNCitXYWxlLCBTYW11ZWwNCitXYWxlcywgS2l0dHkNCitXYWxrZXIsIEFudGhvbnkNCitXYWxrZXIsIERvdWdsYXMNCitXYWxrZXIsIEZyZWRlcmljaw0KK1dhbGtlciwgS2FyYQ0KK1dhbGtlciwgV2lsbGlhbSBBLg0KK1dhbGtsZXksIFBldGVyDQorV2Fsa293aXR6LCBBYnJhaGFtDQorV2FsbCwgQnJpYW4NCitXYWxsLCBKZWZmDQorV2FsbCwgV2lsbGlhbSBBbGxlbg0KK1dhbGwsIFdpbGxpYW0gR3V5DQorV2FsbGFjZSwgSWFuDQorV2FsbGFjZSwgSi4gTGF1cmllDQorV2FsbGlzLCBIZW5yeQ0KK1dhbHRlciwgTWFydGhhDQorV2FsdGVycywgTWlsZXMNCitXYWx0ZXJzLCBTYW11ZWwNCitXYWx0b24sIEVkd2FyZCBBcnRodXINCitXYWx0b24sIEhlbnJ5DQorV2FsdG9uLCBKb2huIFdoaXRlaGVhZA0KK1dhbHRyb3VzLCBIYXJyeSBXaWxzb24NCitXYW5nIENodW5qaWUNCitXYW5nIERvbmdsaW5nDQorV2FuZyBHZXlpDQorV2FuZyBIdWFpcWluZw0KK1dhbmcgSHVpDQorV2FuZyBKaXFpYW4gKEMuQy4gV2FuZykNCitXYW5nIE1lbmdxaQ0KK1dhbmcgU2hlbmdsaWUNCitXYW5nIFdlbg0KK1dhbmcgV3V4aWUgKFd1Y2l1cyBXb25nKQ0KK1dhbmcgWHVldGFvDQorV2FuZyBZaW5nY2h1bg0KK1dhbmcgWXVhbmdpDQorV2FuZyBZdW4NCitXYW5nIFpoZW4NCitXYW5nZXJza3ksIEJhcmJhcmEgUHJhdHQNCitXYXBwZXJzLCBHdXN0YXZlDQorV2FyZCwgRWR3YXJkIE1hdHRoZXcNCitXYXJkLCBKYW1lcw0KK1dhcmQsIEpvaG4gUXVpbmN5IEFkYW1zDQorV2FyZCwgTGVzbGllDQorV2FyZGxlLCBBcnRodXINCitXYXJob2wsIEFuZHkNCitXYXJsb3csIEhlcmJlcnQgR29yZG9uDQorV2FybmVyLCBFdmVyZXR0DQorV2FybmVyLCBPbGluIExldmkNCitXYXJyZW4sIEhlbnJ5DQorV2Fyc2FnZXIsIEh5bWFuDQorV2Fyc2hhd3NreSwgQWJyYWhhbSBHLg0KK1dhc2VyLCBBbm5hDQorV2FzaGluZ3RvbiwgRWxpemFiZXRoIEZpc2hlcg0KK1dhc2hpbmd0b24sIFRpbW90aHkNCitXYXRhbmFiZSBLYXphbg0KK1dhdGFuYWJlIFNoaWtvDQorV2F0YW5hYmUsIFNhZGFvDQorV2F0ZXJob3VzZSwgSm9obiBXaWxsaWFtDQorV2F0ZXJsb28sIEFudGhvbmllDQorV2F0ZXJsb3csIFNpciBFcm5lc3QgQWxiZXJ0DQorV2F0ZXJzLCBIZXJiZXJ0IE9nZGVuDQorV2F0ZXJzLCBTdXNhbiBDLg0KK1dhdGtpbnMsIENhcmxldG9uDQorV2F0c29uLCBIb21lcg0KK1dhdHQsIEFsaXNvbg0KK1dhdHRlYXUsIEplYW4tQW50b2luZQ0KK1dhdHRsZXMsIFZpcmdpbmlhDQorV2F0dHMsIEdlb3JnZSBGcmVkZXJpYw0KK1dhdWdoLCBGcmVkZXJpY2sgSnVkZA0KK1dhdXRlcnMsIEVtaWxlDQorV2F5LCBUaG9tYXMgUm9iZXJ0DQorV2VhcmluZywgR2lsbGlhbg0KK1dlYXZlciwgUm9iZXJ0DQorV2VhdmVyLCBUaG9tYXMNCitXZWJiLCBKYW1lcw0KK1dlYmIsIFRvZGQNCitXZWJlciwgQ2hyaXMNCitXZWJlciwgSWRlbGxlDQorV2ViZXIsIEpvaG4gUGl0bWFuDQorV2ViZXIsIE1heA0KK1dlYnN0ZXIsIE1lZw0KK1dlYnN0ZXIsIFRob21hcw0KK1dlZWdlZQ0KK1dlZWtlcywgSGVucnkNCitXZWVrcywgSmFtZXMNCitXZWVtcywgQ2FycmllIE1hZQ0KK1dlZW5peCBJSSwgSmFuDQorV2Vlbml4LCBKYW4gQmFwdGlzdA0KK1dlZXJ0cywgSmVhbi1Kb3NlcGgNCitXZWdnZWxhbmQsIFRlcnJ5DQorV2VnbWFuLCBXaWxsaWFtDQorV2VndWVsaW4sIEpvaG4gUmVpbmhhcmQNCitXZWkgSmluZ3NoYW4NCitXZWkgSml1ZGluZw0KK1dlaW5iZXJnLCBFbWlsaWUgU2lldmVydA0KK1dlaW5lciwgTGF3cmVuY2UNCitXZWlyLCBKdWxpYW4gQWxkZW4NCitXZWlyLCBSb2JlcnQgVy4NCitXZWlyb3R0ZXIsIEZyYW56IEVkbXVuZA0KK1dlaXNicm9kLCBDYXJsIFdpbGhlbG0NCitXZWlzcywgRGF2aWQNCitXZWlzc2VuYnJ1Y2gsIEphbg0KK1dlaXNzZW5icnVjaCwgSm9oYW4gSGVuZHJpaw0KK1dlaXNzbWFuLCBCYXJyeQ0KK1dlaXN3ZWlsZXIsIEFkYW0NCitXZWxjaCwgRGVudG9uDQorV2VsbGVyLCBQYXVsDQorV2VsbGl2ZXIsIE5laWwNCitXZWxscywgSGVucnkgVGFud29ydGgNCitXZWxscywgSm9hbm5hIE1hcnkNCitXZWxscywgTHludG9uDQorV2VsdGksIEFsYmVydA0KK1dlbiBCYW8NCitXZW4gTG91DQorV2VuIFpoZW5nbWluZw0KK1dlbiBaaGVubWluZw0KK1dlbmNrLCBFcm5zdA0KK1dlbmRlbCwgVGhlb2RvcmUNCitXZW5kb3JmLCBKaW0NCitXZW5kdCwgV2lsbGlhbQ0KK1dlbmdlbnJvdGgsIFN0b3cNCitXZW56ZWwgdm9uIE9sbXV0eg0KK1dlcmZmLCBBZHJpYWVuIHZhbiBkZXINCitXZXJuZXIsIEJldHRpbmENCitXZXJ0aGVpbSwgR2FyeQ0KK1dlcnRpbmdlciwgSGFucw0KK1dlcnRtw7xsbGVyLCBBZG9sZi1VbHJpaw0KK1dlc3NlbCwgQmVzc2llIEhvb3Zlcg0KK1dlc3NlbCwgSGVybWFuIEguDQorV2Vzc2VsbWFubiwgVG9tDQorV2VzdCwgQmVuamFtaW4NCitXZXN0LCBCZW5qYW1pbiBGcmFua2xpbg0KK1dlc3RhbGwsIFJpY2hhcmQNCitXZXN0bWFjb3R0LCBKYW1lcyBTaGVyd29vZA0KK1dlc3RvbiwgRWR3YXJkDQorV2V0LCBKYWNvYiBkZQ0KK1dleWRlbiwgUm9naWVyIHZhbiBkZXINCitXZXllciwgSGVybWFubg0KK1doYWxlLCBSb2JlcnQgUi4NCitXaGFybmNsaWZmZSwgTGFkeQ0KK1doZWF0bGV5LCBDbGFyYQ0KK1doZWF0bGV5LCBGcmFuY2lzDQorV2hlZWxlciwgU3RldmUNCitXaGVlbHdyaWdodCwgSm9zZXBoDQorV2hlZWx3cmlnaHQsIFJvbGFuZA0KK1doZXRzdG9uZSwgRGFuDQorV2hpc3RsZXIsIEphbWVzIE1jTmVpbGwNCitXaGl0ZSAxNzczLTE3OTQsIENoYXJsZXMNCitXaGl0ZSwgQ2hhcmxlcyBXaWxiZXJ0DQorV2hpdGUsIFJhbmR5IExlZQ0KK1doaXRlLCBSb2JlcnQNCitXaGl0ZWhlYWQsIEZyYW5jZXMNCitXaGl0ZWxleSwgQnJldHQNCitXaGl0ZW1hbiwgRXJuZXN0DQorV2hpdGVyZWFkLCBSYWNoZWwNCitXaGl0bmV5LCBBbm5lDQorV2hpdHRsZSwgQ2hhcmxlcw0KK1doaXR0cmVkZ2UsIFRob21hcyBXb3J0aGluZ3Rvbg0KK1dpY2FyLCBKZWFuLUJhcHRpc3RlIEpvc2VwaA0KK1dpY2tzLCBNYXJ5DQorV2llbGFuZCwgSm95Y2UNCitXaWVuZXIsIFBoeWxsaXMNCitXaWVyaW5nZW4sIENvcm5lbGlzIENsYWVzei4gdmFuDQorV2llcnR6LCBBbnRvaW5lDQorV2lnZ2lucywgR3V5DQorV2lsYmVyLCBKZXNzaWUNCitXaWxiZXJ0LCBSb2JlcnQNCitXaWxjb3gsIExlc2xpZQ0KK1dpbGRpbmcsIEFsaXNvbg0KK1dpbGRtYW4sIEpvaG4gUi4NCitXaWxkdCwgQWRvbGZvDQorV2lsZXMsIElydmluZyBSLg0KK1dpbGV5LCBXaWxsaWFtDQorV2lsaWdlbG1vDQorV2lsa2UsIEhhbm5haA0KK1dpbGtpZSwgUm9iZXJ0DQorV2lsa2llLCBTaXIgRGF2aWQNCitXaWxraW5zLCBNaWtlDQorV2lsbGFlcnRzLCBBYnJhaGFtDQorV2lsbGFyZCwgQXJjaGliYWxkIE0uDQorV2lsbGV0cywgUm9iZXJ0DQorV2lsbGlhbXMsIEFyY2gNCitXaWxsaWFtcywgRnJlZA0KK1dpbGxpYW1zLCBIdWdoIFdpbGxpYW0NCitXaWxsaWFtcywgS2VpdGggU2hhdw0KK1dpbGxpYW1zLCBNYXJnYXJldCBMaW5kc2F5DQorV2lsbGlhbXMsIFBhdWxpbmUgQmxpc3MNCitXaWxsaWFtcywgUm9kDQorV2lsbGlhbXMsIFdpbGxpYW0NCitXaWxsaWFtc29uLCBEYW5pZWwgQWxleGFuZGVyDQorV2lsbGluaywgQ2FyZWwNCitXaWxsbWFubiwgTWljaGFlbCBMdWthcyBMZW9wb2xkDQorV2lsbG91Z2hieSwgUm9iZXJ0DQorV2lsbHMsIFdpbGxpYW0gR29ybWFuDQorV2lsbHNvbiwgQmFyYmFyYQ0KK1dpbGxzb24sIE1hcnkgQW5uDQorV2lsc29uLCBBbmRyZXcNCitXaWxzb24sIEJlbmphbWluDQorV2lsc29uLCBDaGFybGVzIEouQS4NCitXaWxzb24sIEdlb3JnZSBXYXNoaW5ndG9uDQorV2lsc29uLCBKb2huDQorV2lsc29uLCBSaWNoYXJkDQorV2lsc29uLCBXaWxsaWFtIEEuDQorV2lsdG9uLCBKb3NlcGgNCitXaW1hciwgQ2hhcmxlcw0KK1dpbmR1cywgV2lsbGlhbSBMaW5kc2F5DQorV2luZWdhciwgQW5uYQ0KK1dpbmtsZXIsIEpvaG4gVy4NCitXaW5vZ3JhbmQsIEdhcnJ5DQorV2luc29yLCBKYWNraWUNCitXaW5zdGFubGV5LCBXaWxsaWFtDQorV2ludGVyLCBGcmllZHJpY2gNCitXaW50ZXIsIEdlb3JnZQ0KK1dpbnRlcmhhbHRlciwgRnJhbnogWGF2aWVyDQorV2ludGVyaGFsdGVyLCBIZXJtYW5uDQorV2ludGVycywgVGVycnkNCitXaW50b3VyLCBKb2huIENyYXdmb3JkDQorV2lyc3VtLCBLYXJsDQorV2lydCB2b24gV2lsLCBOaWNvbGF1cw0KK1dpcnR6LCBSb2JlcnQNCitXaXQsIEphY29iIGRlDQorV2l0aGVyaW5ndG9uLCBXaWxsaWFtIEZyZWRlcmljaw0KK1dpdGtpZXdpY3osIFN0YW5pc2xhdyBJZ25hY3kNCitXaXRraW4sIElzYWFjDQorV2l0a2luLCBKZXJvbWUgUGF1bA0KK1dpdHRlLCBFbWFudWVsIGRlDQorV2l0dGVsLCBHYXNwYXIgdmFuDQorV2l0eiwgQ29ucmFkDQorV28gWmhhDQorV29laHJtYW4sIFJhbHBoDQorV29pY2Vza2UsIFJvbmF1IFdpbGxpYW0NCitXb2p0a2lld2ljeiwgV2l0b2xkDQorV29sZiwgSGVucnkNCitXb2xmZSwgTWV5ZXINCitXb2xmZSwgUnV0aCBNaXRjaGVsbA0KK1dvbGZmb3J0LCBBcnR1cw0KK1fDtmxmbGksIEFkb2xmDQorV29sZnJhbSwgV2lsbGlhbQ0KK1dvbGxhc3RvbiwgSm9obg0KK1dvbGxoZWltLCBHZXJ0DQorV29vZCwgQ2hyaXN0b3BoZXINCitXb29kLCBFbGl6YWJldGggV3luDQorV29vZCwgRWxsYSBNaXJyaWFtDQorV29vZCwgR3JhbnQNCitXb29kLCBKb2huDQorV29vZCwgVGhvbWFzIFdhdGVybWFuDQorV29vZGJ1cnksIENoYXJsZXMgSGVyYmVydA0KK1dvb2RydWZmLCBIYWxlDQorV29vZHMsIEphbg0KK1dvb2R2aWxsZSwgUmljaGFyZCBDYXRvbg0KK1dvb2R3YXJkLCBHZW9yZ2UgTW9udGFyZA0KK1dvb2R3YXJkLCBKb2huIERvdWdsYXMNCitXb29kd2FyZCwgTWFiZWwgTWF5DQorV29vZHdhcmQsIFN0YW5sZXkgV2luZ2F0ZQ0KK1dvb2R3YXJkLCBUaG9tYXMNCitXb28taGVlLCBDaGENCitXb29rLUt5dW5nLCBDaG9pDQorV29vbCwgQ2hyaXN0b3BoZXINCitXb29sc2V5LCBDbGFyZW5jZQ0KK1dvb2xzZXksIEdyYWNlDQorV29vdHRvbiwgSm9obg0KK1dvcmVzLCBUaGVvZG9yZQ0KK1dvcmxpZGdlLCBUaG9tYXMNCitXb3RydWJhLCBGcml0eg0KK1dvdXRlcnMsIFJpaw0KK1dvdXdlcm1hbiwgUGhpbGlwcw0KK1dyZW4sIFNpciBDaHJpc3RvcGhlcg0KK1dyZW5uLCBDaGFybGVzDQorV3JpZ2h0IG9mIERlcmJ5LCBKb3NlcGgNCitXcmlnaHQsIEF1dGluDQorV3JpZ2h0LCBEb24NCitXcmlnaHQsIEZyYW5rIExsb3lkDQorV3JpZ2h0LCBKYW1lcyBIZW5yeQ0KK1dyaWdodCwgSm9obiBNaWNoYWVsDQorV3JpZ2h0LCBSZWRtb25kIFN0ZXBoZW5zDQorV3JpbmNoLCBNYXJ5DQorV3Rld2FlbCwgSm9hY2hpbSBBbnRvbmlzei4NCitXdSBCaWR1YW4NCitXdSBDaGFuZ3NoaQ0KK1d1IENoYW5nc2h1bw0KK1d1IEd1YW56aG9uZw0KK1d1IEh1ZmFuDQorV3UgSmlheW91DQorV3UgSmluZ3RpbmcNCitXdSBMaQ0KK1d1IFp1b3Jlbg0KK1d1amNpaywgVGhlbw0KK1d1cnR6YnVyZ2VyLCBTa2lwDQorV3VyemVsYmF1ZXIsIEJlbmVkaWt0DQorV3V0a3ksIE1pY2hhZWwNCitXeWFudCwgQWxleGFuZGVyIEhlbHdpZw0KK1d5Y2ssIEphbg0KK1d5Y2ssIFRob21hcw0KK1d5ZXRoLCBBbmRyZXcNCitXeWV0aCwgSGVucmlldHRlDQorV3lldGgsIEphbWllDQorV3lldGgsIE4uQy4NCitXeW5hbnRzLCBKYW4NCitXeW9uLCBFZHdhcmQgV2lsbGlhbQ0KK1d5c2UsIEFsZXgNCitYZW5vcGhhbnRvcw0KK1hpYSBHdWkNCitYaWFvIEhhaWNodW4NCitYaWFvIFl1bmNvbmcNCitYdSBCZWlob25nDQorWHUgRGFvbmluZw0KK1h1IExlaQ0KK1h1IExlbGUNCitYdSwgR3VvDQorWHVndQ0KK1lhIE1pbmcNCitZYW4gSGFuDQorWWFuIEh1aQ0KK1lhbiBMaWJlbg0KK1nDocOxZXosIEZlcm5hbmRvDQorWWFuZyBKaW5nc2hlbmcNCitZYW5nIEtld3UNCitZYW5nIEtleWFuZw0KK1lhbmcgTGl6aG91DQorWWFuZyBOYXdlaQ0KK1lhbmcgU2hhbnNoZW4NCitZYW5nIFlvbmcNCitZYW5nIFpoaWd1YW5nDQorWWUgTWlucmVuDQorWWVhbWVzLCBXaWxsaWFtIEZyZWRlcmljaw0KK1llYXRzLCBKYWNrIEIuDQorWWVnZ3N0ZXIgDQorWWVsbGFuZCwgUmF5bW9uZA0KK1lpbiBSb25nc2hlbmcNCitZa2VucywgRnJhbsOnb2lzDQorWW9uZy1Zb3AsIEh3YW5nDQorWW9ya2UsIFdpbGxpYW0gRy4NCitZb3JrZSwgV2lsbGlhbSBIb3dhcmQNCitZb3NhIEJ1c29uDQorWW9zaGlkYSwgSGlyb3NoaQ0KK1lvc2hpdGFraSwgTmFrYWkNCitZb3NoaXRvcmEsIFV0YWdhd2ENCitZb3NoaXRvc2hpLCBUc3VraW9rYQ0KK1lvc2hpdHN1eWEgSSwgSWNoaWVpc2FpDQorWW9zaGl5dWtpLCBSYWtrYWtlbg0KK1lvdW5nLCBCbGFtaXJlDQorWW91bmcsIEJyZW50IEtlZQ0KK1lvdW5nLCBNYWhvbnJpIE1hY2ludG9zaA0KK1lvdW5nLCBTdGVwaGVuIFNjb3R0DQorWW91bmctbGltLCBDaG9pDQorWW91bmctc29vLCBTb25nDQorWW91cXVhDQorWW91c2UsIEdheQ0KK1lwaGFudGlzLCBHZW9yZ2UNCitZdSBCZW4NCitZdSBZb3VyZW4NCitZdW4gR2UNCitZdW4gU2hvdXBpbmcNCitZdW5rZXJzLCBBZGphDQorWmFiYWxldGEgRnVlbnRlcywgUmFmYWVsDQorWmFnYW5lbGxpLCBGcmFuY2VzY28NCitaYWlzLCBHaXVzZXBwZQ0KK1phaywgRXVnw6huZQ0KK1pha2FuaXRjaCwgUm9iZXJ0DQorWmFsY2UsIEFsZnJlZG8NCitaYW5ndWlkaSwgSmFjb3BvDQorWmFvIFdvdS1raQ0KK1phcml0c2t5LCBZb3NzZWYNCitaw6FycmFnYSwgQW5nZWwNCitaZWhuYWNrZXIsIFJ1c3MNCitaZWxpZmYsIEFtemkgRW1tb25zDQorWmVuYWxlLCBCZXJuYXJkaW5vDQorWmVuZyBNaQ0KK1plbnR6LCBQYXRyaWNrDQorWmVyYmUsIEthcmwNCitaZXNoaW4sIFNoaWJhdGENCitaaGEgU2hpYmlhbw0KK1poYW4gSmlhbmp1bg0KK1poYW5nIERhcWlhbg0KK1poYW5nIERhemh1YW5nDQorWmhhbmcgSG9uZw0KK1poYW5nIEh1aQ0KK1poYW5nIFdhbmcNCitaaGFuZyBZaQ0KK1poYW8gQ2h1bmd4aWFuZw0KK1poYW8gU2hvdQ0KK1poYW8gWWFubmlhbg0KK1poYW8gWmhpcWlhbg0KK1poYW8gWmhpcXVhbg0KK1poZW5nIEd1b2d1DQorWmhlbmcgV3UNCitaaGVuZyBXdWNoYW5nDQorWmhvbmcgV2Vpc2hlbmcNCitaaG91IENoYW5namlhbmcNCitaaG91IEx1eXVuDQorWmhvdSBTaHVxaWFvDQorWmhvdSBTaWNvbmcNCitaaHUgRGENCitaaHUgUWl6aGFuDQorWmh1IFJ1aQ0KK1podSBYaW5naHVhDQorWmllbSwgRsOpbGl4DQorWmluZ2csIEFkcmlhbg0KK1ppdmVyaSwgQWxiZXJ0bw0KK1pvYmVybmlnLCBIZWltbw0KK1pvZmZhbnksIEpvaGFubg0KK1pvcHBvLCBNYXJjbw0KK1pvcmFjaCwgTWFyZ3Vlcml0ZSBUaG9tcHNvbg0KK1pvcmFjaCwgV2lsbGlhbQ0KK1pvcmlvLCBHaWxiZXJ0bw0KK1pvcm4sIEFuZGVycw0KK1pveCwgTGFycnkNCitadWNjYXJlbGxpLCBGcmFuY2VzY28NCitadWNjYXJvLCBGZWRlcmljbw0KK1p1Y2Nhcm8sIFRhZGRlbw0KK1p1Y2NoaSwgQW50b25pbw0KK1p1Y2NoaSwgSmFjb3BvDQorWnVja2VyLCBKb2UNCitadWdubywgRnJhbmNlc2NvDQorWnVsb2FnYSwgSWduYWNpbw0KK1rDvG5kdCwgTWF0aGlhcw0KK1rDusOxaWdhLCBGcmFuY2lzY28NCitadXJhd3NraSwgTm9ybQ0KK1p1cmJhcsOhbiwgRnJhbmNpc2NvIGRlDQorWnVyYmFyw6FuLCBKdWFuIGRlDQorWsO8cm4sIE1pY2hhZWwNCitaeW5za3ksIFRvb3RzDQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1J1c3NpYW4udHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1J1c3NpYW4udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4OWY4NzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfUnVzc2lhbi50eHQKQEAgLTAsMCArMSwxMzEwIEBACivvu78jLyoqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqDQorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqLw0KKw0KK9Cb0YPQutCw0YjQtdCyLCDQmNCz0L7RgNGMINCb0YzQstC+0LLQuNGHDQorQ9C10LzQtdC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQnNCw0LPQvtC80LXQtNC+0LLQuNGHDQor0JvRg9C60LDRiNC10L3QutC+LCDQkNC70LXQutGB0LDQvdC00YAg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9CQ0LHQsNC70LrQuNC9LCDQm9C10L7QvdC40LQg0JjQstCw0L3QvtCy0LjRhw0KK9Cb0YPQutCw0YjQtdC90LrQviwg0JTQvNC40YLRgNC40Lkg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JDQsdC00YPQu9Cw0YLQuNC/0L7Qsiwg0KDQsNC80LDQt9Cw0L0g0JPQsNC00LbQuNC80YPRgNCw0LTQvtCy0LjRhw0KK9Cb0YPQutC40L0sINCS0LvQsNC00LjQvNC40YAg0J/QtdGC0YDQvtCy0LjRhw0KK9CQ0LHQtNGD0LvQsdCw0YHQuNGA0L7Qsiwg0JzQsNCz0L7QvNC10LTRgtCw0LPQuNGAINCc0LXQtNC20LjQtNC+0LLQuNGHDQor0JvRg9C60YzRj9C90LXQvdC60L4sINCi0LDRgtGM0Y/QvdCwINCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC90LANCivQkNCx0LXQu9GM0YbQtdCyLCDQodC10YDQs9C10Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQm9GD0LrRjNGP0L3QvtCyLCDQkNC90LDRgtC+0LvQuNC5INCY0LLQsNC90L7QstC40YcNCivQkNCx0YDQsNC80LXQvdC60L7Qsiwg0JTQvNC40YLRgNC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQm9GD0LrRjNGP0L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JDQsdGA0LDQvNC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQodC10YDQs9C10LXQstC40YcNCivQm9GD0L3RgtC+0LLRgdC60LjQuSwg0JPQtdC+0YDQs9C40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CQ0LHRgNCw0LzQvtCy0LjRhywg0KDQvtC80LDQvSDQkNGA0LrQsNC00YzQtdCy0LjRhw0KK9Cb0YPRhdC80LDQvdC+0LIsINCd0LjQutC+0LvQsNC5INCV0LLQs9C10L3RjNC10LLQuNGHDQor0JDQstCw0LvQuNCw0L3QuCwg0KLQtdC50LzRg9GA0LDQtyDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9Cb0YPRh9C40L0sINCS0LjQutGC0L7RgCDQntGB0LjQv9C+0LLQuNGHDQor0JDQstCw0LvQuNGI0LLQuNC70LgsINCT0YPRgNCw0LzQuCDQlNC20LXQvNCw0LvQvtCy0LjRhw0KK9Cb0YvQttC40L0sINCu0YDQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JDQstC00LXQtdCyLCDQktCw0LvQtdGA0LjQuSDQktCw0LvQtdC90YLQuNC90L7QstC40YcNCivQm9GL0LzQsNGA0YwsINCb0Y7QsdC+0LLRjCDQnNC40YXQsNC50LvQvtCy0L3QsA0KK9Cb0YvRgdC10L3QutC+LCDQkNC90LDRgtC+0LvQuNC5INCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQkNCy0LXQvSwg0J/QtdGC0YAg0J7Qu9C10LPQvtCy0LjRhw0KK9Cb0YvRgdC10L3QutC+LCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JDQstC10YDRh9C10LIsINCS0LvQsNC00LjQvNC40YAg0J/QtdGC0YDQvtCy0LjRhw0KK9Cb0YvRgdC10L3QutC+LCDQndC40LrQvtC70LDQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cb0YvRh9Cw0LrQvtCyLCDQkNC90LTRgNC10Lkg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9CQ0LPQsNC/0L7Qsiwg0K7RgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQm9GO0LHQuNC80YbQtdCyLCDQkNC90LDRgtC+0LvQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JDQs9Cw0L/QvtCy0LAsINCV0LvQtdC90LAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC90LANCivQm9GP0YjQutC+LCDQrtGA0LjQuSDQk9Cw0LLRgNC40LvQvtCy0LjRhw0KK9CQ0LPQsNGE0L7QvdC+0LIsINCS0LDQu9C10L3RgtC40L0g0JDQu9C10LrRgdC10LXQstC40YcNCivQnNCw0LLRgNC+0LTQuCwg0KHQtdGA0LPQtdC5INCf0LDQvdGC0LXQu9C10LXQstC40YcNCivQkNCz0LDRhNC+0L3QvtCyLCDQldCz0L7RgCDQkNC90LTRgNC10LXQstC40YcNCivQnNCw0LPQvtC80LXQtNC+0LIsINCc0LDQs9C+0LzQtdC00LDQu9C4INCc0LDQs9C+0LzQtdC00L7QstC40YcNCivQkNCz0LXQtdCy0LAsINCb0Y7QsdC+0LLRjCDQkNC90LDRgtC+0LvRjNC10LLQvdCwDQor0JzQsNCz0L7QvNC10LTQvtCyLCDQodGC0LDQvdC40YHQu9Cw0LIg0K7QvdGD0YHQvtCy0LjRhw0KK9CQ0LTQsNC80LjRiNC40L0sINCQ0L3QsNGC0L7Qu9C40Lkg0JvQtdC+0L3QuNC00L7QstC40YcNCivQnNCw0LfRg9GALCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQkNC00LDQvNC+0LIsINCV0LLQs9C10L3QuNC5INCe0LvQtdCz0L7QstC40YcNCivQnNCw0LnQvtGA0L7Qsiwg0JvQtdC+0L3QuNC0INCh0LXRgNCz0LXQtdCy0LjRhw0KK9Cc0LDQutCw0YDQvtCyLCDQkNC90LTRgNC10Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQnNCw0LrQsNGI0L7Qsiwg0JDQu9GM0LHQtdGA0YIg0JzQuNGF0LDQudC70L7QstC40YcNCivQkNC60YHQtdC90LXQvdC60L4sINCd0LjQutC+0LvQsNC5INCV0LzQtdC70YzRj9C90L7QstC40YcNCivQnNCw0LrRgdCw0LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9CQ0LrRgdC10L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCS0LjQutGC0L7RgNC+0LLQuNGHDQor0JzQsNC60YHQuNC80L7Qsiwg0JXQstCz0LXQvdC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkNC60YHQtdC90YLRjNC10LIt0JrQuNC60LDQu9C40YjQstC40LvQuCwg0JDQvdC30L7RgNC4INCY0L7RgdC40YTQvtCy0LjRhw0KK9Cc0LDQutGB0LjQvNC+0LIsINCa0L7QvdGB0YLQsNC90YLQuNC9INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JDQutGB0Y7Rh9C40YYsINCS0LjQutGC0L7RgCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQnNCw0LvQsNC10LIsINCQ0LvQtdC60YHQtdC5INCd0LjQutC40YTQvtGA0L7QstC40YcNCivQnNCw0LvQsNGI0LXQvdC60L4sINCY0LPQvtGA0Ywg0JXQstCz0LXQvdGM0LXQstC40YcNCivQkNC70LXQutC/0LXRgNC+0LIsINCS0LDQs9C40YIg0K7RgdGD0YTQvtCy0LjRhw0KK9Cc0LDQu9C60LjQvSwg0JLQuNGC0LDQu9C40Lkg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JDQu9C10LrRgdCw0L3QtNGA0L7Qsiwg0JDQu9C10LrRgdC10Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cc0LDQu9GM0LrQvtCyLCDQmNCz0L7RgNGMINCe0LvQtdCz0L7QstC40YcNCivQkNC70LXQutGB0LXQtdCyLCDQkNC70LXQutGB0LDQvdC00YAg0KHQtdGA0LPQtdC10LLQuNGHLg0KK9Cc0LDQu9GM0YbQtdCyLCDQkNC70LXQutGB0LDQvdC00YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQkNC70LXQutGB0LXQtdCyLCDQk9C10L3QvdCw0LTQuNC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JzQsNC70YzRhtC10LIsINCR0L7RgNC40YEg0JDQu9C10LrRgdC10LXQstC40YcNCivQkNC70LXQutGB0LjQuSwg0JLRgtC+0YDQvtC5INC/0LDRgtGA0LjQsNGA0YUNCivQnNCw0LvRjtGC0LjQvdCwLCDQotCw0YLRjNGP0L3QsCDQk9GA0LjQs9C+0YDRjNC10LLQvdCwDQor0JzQsNC90LXQstC40YcsINCc0LjRhdCw0LjQuyDQktC70LDQtNC40YHQu9Cw0LLQvtCy0LjRhw0KK9CQ0LvQutGB0L3QuNGBLCDQktC40LrRgtC+0YAg0JjQvNCw0L3RgtC+0LLQuNGHDQor0JzQsNC90LbQvtGB0L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CQ0LvRgtGD0YXQvtCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JzQsNC90LjQu9C+0LIsINCS0LDQu9C10YDQuNC5INCb0LXQvtC90LjQtNC+0LLQuNGHDQor0JDQu9GC0YvQvdCx0LDQtdCyLCDQltCw0LrRgdC70YvQuiDQmtGD0LDQvdGC0LDQtdCy0LjRhw0KK9CQ0LvRhNC10YDQvtCyLCDQltC+0YDQtdGBINCY0LLQsNC90L7QstC40YcNCivQnNCw0L3Rj9C60LjQvSwg0KHQtdGA0LPQtdC5INCY0L7RgdC40YTQvtCy0LjRhw0KK9CQ0LvRjNC80Y/RiNC60LjQvSwg0JLQsNGB0LjQu9C40Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9Cc0LDRgNCz0LXQu9C+0LIsINCc0LjRhdCw0LjQuyDQktC40YLQsNC70YzQtdCy0LjRhw0KK9CQ0LzQsdCw0YDRhtGD0LzQvtCyLCDQldCy0LPQtdC90LjQuSDQkNGA0YjQsNC60L7QstC40YcNCivQnNCw0YDQutC10LvQvtCyLCDQm9C10L7QvdC40LQg0JjQs9C+0YDQtdCy0LjRhw0KK9CQ0LzQtdC70LjQvdCwLCDQkNC70LvQsCDQm9C10L7QvdC40LTQvtCy0L3QsA0KK9Cc0LDRgNC60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CQ0LzQtdGC0LjRgdGC0L7Qsiwg0K3RgNC90LXRgdGCINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JzQsNGA0LrQvtCy0LAsINCg0LjQvNC80LAg0JLQsNGB0LjQu9GM0LXQstC90LANCivQkNC90LDQvdGM0LXQsiwg0JXQstCz0LXQvdC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQnNCw0YDRgtGL0L3QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JPQsNCy0YDQuNC70L7QstC40YcNCivQkNC90LTRgNC10LXQsiwg0JDQu9C10LrRgdC10Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9Cc0LDRgNGC0YvQvdC+0LIsINCR0L7RgNC40YEg0JDQu9C10LrRgdC10LXQstC40YcNCivQnNCw0YDRh9C10L3QutC+LCDQn9C10YLRgCDQn9C10YLRgNC+0LLQuNGHDQor0JDQvdC00YDQtdC10LLQsCwg0J3QuNC90LAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC90LANCivQnNCw0YDRi9GH0LXQsiwg0JLRj9GH0LXRgdC70LDQsiDQkNC90YLQvtC90L7QstC40YcNCivQkNC90LjRh9C60LjQvSwg0JjQstCw0L0g0KHRgtC10L/QsNC90L7QstC40YcNCivQnNCw0YHQsNGA0YHQutC40LksINCc0LDRgNC6INCS0LXQvdC40LDQvNC40L3QvtCy0LjRhw0KK9CQ0L3Qv9C40LvQvtCyLCDQktC40LrRgtC+0YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cc0LDRgdC70L7Qsiwg0JzQuNGF0LDQuNC7INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JDQvdGC0L7QvdC+0LIsINCY0LPQvtGA0Ywg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQnNCw0YHQu9C+0LIsINCd0LjQutC+0LvQsNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JzQsNGB0LvRjtC60L7Qsiwg0K7RgNC40Lkg0JTQvNC40YLRgNC40LXQstC40YcNCivQkNC90YLRg9GE0YzQtdCyLCDQodC10YDQs9C10Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JzQsNGB0YXQsNC00L7Qsiwg0JDRgdC70LDQvSAo0KXQsNC70LjQtCkg0JDQu9C40LXQstC40YcNCivQkNC/0LDRgNC40L3QsCwg0JDQu9C10LLRgtC40L3QsCDQktC40LrRgtC+0YDQvtCy0L3QsA0KK9Cc0LDRgdGF0LDQtNC+0LIsINCQ0YHQu9Cw0L0g0JDQu9C40LXQstC40YcNCivQkNGA0LDQutGH0LDQsCwg0JrQsNGA0LAt0JrRi9GBINCU0L7QvdCz0LDQutC+0LLQvdCwDQor0JDRgNCx0LDRgtC+0LIsINCQ0LvQtdC60YHQtdC5INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JzQsNGC0LLQuNC10L3QutC+LCDQktCw0LvQtdC90YLQuNC90LAg0JjQstCw0L3QvtCy0L3QsA0KK9CQ0YDQsdGD0LfQvtCyLCDQktCw0LvQtdGA0LjQuSDQn9C10YLRgNC+0LLQuNGHDQor0JzQsNGC0L7Rh9C60LjQvSwg0K7RgNC40Lkg0KHQtdC80LXQvdC+0LLQuNGHDQor0JDRgNC10YTRjNC10LIsINCd0LjQutC+0LvQsNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JzQsNGC0Y/RiNC+0LIsINCf0LXRgtGAINCY0LLQsNC90L7QstC40YcNCivQkNGA0LjQvdC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CQ0YDRgdC70LDQvdC+0LLQsCwg0KTQsNC90YPQt9CwINCo0LDRgNCw0YTQuNC10LLQvdCwDQor0JzQsNGI0LjQvdGB0LrQuNC5LCDQktC40LrRgtC+0YAg0JvQtdC+0L3QuNC00L7QstC40YcNCivQnNCw0YjQutC+0LLRhtC10LIsINCc0LjRhdCw0LjQuyDQkdC+0YDQuNGB0L7QstC40YcNCivQkNGA0YLRjtGF0L7Qsiwg0JLQuNGC0LDQu9C40Lkg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Cc0LXQtNCy0LXQtNC10LIsINCS0LvQsNC00LjQvNC40YAg0KHQtdGA0LPQtdC10LLQuNGHDQor0JDRgNGF0LjQv9C+0LIsINCh0LXRgNCz0LXQuSDQodC10YDQs9C10LXQstC40YcNCivQnNC10LTQstC10LTQtdCyLCDQlNC80LjRgtGA0LjQuSDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0JDRgdCw0LXQsiwg0KDQsNC40YEg0JHQsNC00YvQs9GD0YLQtNC40L3QvtCy0LjRhw0KK9Cc0LXQtNCy0LXQtNC10LIsINCd0LjQutC+0LvQsNC5INCf0LDQstC70L7QstC40YcNCivQkNGB0LrQtdGA0YXQsNC90L7Qsiwg0JPQsNC80LjQtCDQoNCw0YjQuNC00L7QstC40YcNCivQnNC10LTQstC10LTQtdCyLCDQn9Cw0LLQtdC7INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JDRgdC70LDRhdCw0L3QvtCyLCDQkNGB0LvQsNC90LHQtdC6INCQ0YXQvNC10LTQvtCy0LjRhw0KK9Cc0LXQtNCy0LXQtNC10LIsINCg0L7QuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CQ0YHRgdC10LrRgNC40YLQvtCyLCDQodGC0LDQvdC40YHQu9Cw0LIg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JzQtdC00LLQtdC00LXQsiwg0KHQtdGA0LPQtdC5INCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQkNGB0YLQsNGE0YzQtdCyLCDQnNC40YXQsNC40Lsg0JPQtdC+0YDQs9C40LXQstC40YcNCivQnNC10LTQuNC60L7Qsiwg0JLQuNC60YLQvtGAINCv0LrQvtCy0LvQtdCy0LjRhw0KK9CQ0YHRgtCw0YTRjNC10LIsINCd0LjQutC+0LvQsNC5INCf0LDQstC70L7QstC40YcNCivQnNC10LvQuNC60YzRj9C9LCDQk9C10L3QvdCw0LTQuNC5INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JDRgdGC0YDQsNGF0LDQvdC60LjQvdCwLCDQotCw0YLRjNGP0L3QsCDQkNC70LXQutGB0LDQvdC00YDQvtCy0L3QsA0KK9Cc0LXQu9GM0LrQvtCyLCDQkNC70LXQutGB0LXQuSDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0JDRg9C70L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCf0LXRgtGA0L7QstC40YcNCivQnNC10LvRjNC90LjQutC+0LIsINCQ0LvQtdC60YHQtdC5INCu0YDRjNC10LLQuNGHDQor0JDRg9GI0LXQsiwg0JzRg9GF0LDRgNCx0LXQuiDQmNC30LzQsNC40LvQvtCy0LjRhw0KK9Cc0LXQu9GM0L3QuNC60L7Qsiwg0JjQstCw0L0g0JjQstCw0L3QvtCy0LjRhw0KK9CQ0YPRiNC10LIsINCg0YPRgdC70LDQvSDQodGD0LvRgtCw0L3QvtCy0LjRhw0KK9Cc0LXQvdGMLCDQnNC40YXQsNC40Lsg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQkNGF0LzQsNC00LjQtdCyLCDQpNCw0L3QuNC70Ywg0J3QsNC40LvQvtCy0LjRhw0KK9Cc0LXRgNC10LzRj9C90LjQvSwg0JrQvtC90YHRgtCw0L3RgtC40L0g0JPQtdC+0YDQs9C40LXQstC40YcNCivQkNGH0LDQu9C+0LIsINCS0LvQsNC00LjRgdC70LDQsiDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cc0LXRgNC60YPQu9C+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQpNC10LTQvtGA0L7QstC40YcNCivQkNGO0YjQuNC10LIsINCR0L7Qu9C+0YIg0JLQsNC90LTQsNC90L7QstC40YcNCivQnNC10YDQutGD0LvQvtCyLCDQk9C10L3QvdCw0LTQuNC5INCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQkNGP0YbQutC+0LIsINCU0LzQuNGC0YDQuNC5INCk0LXQtNC+0YDQvtCy0LjRhw0KK9Cc0LXRgNC60YPRiNC40L0sINCd0LjQutC+0LvQsNC5INCY0LLQsNC90L7QstC40YcNCivQkdCw0LHQuNC9LCDQndC40LrQvtC70LDQuSDQkNC90LTRgNC10LXQstC40YcNCivQnNC40LfRg9C70LjQvdCwLCDQldC70LXQvdCwINCR0L7RgNC40YHQvtCy0L3QsA0KK9CR0LDQsdC40YfQtdCyLCDQktC70LDQtNC40LzQuNGAINCh0YLQtdC/0LDQvdC+0LLQuNGHDQor0JzQuNC60LjRgtCw0LXQsiwg0JDQsdC00YPQu9Cw0YUg0JrQsNGB0LHRg9C70LDRgtC+0LLQuNGHDQor0JHQsNCx0LjRh9C10LIsINCY0LPQvtGA0Ywg0JLQuNC60YLQvtGA0L7QstC40YcNCivQkdCw0LHRg9GA0LjQvSwg0KHQtdGA0LPQtdC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JzQuNC70L7RgdC10YDQtNC+0LIsINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9CR0LDQsdGD0YUsINCb0LDRgNC40YHQsCDQktC70LDQtNC40LzQuNGA0L7QstC90LANCivQnNC40L3QsNC60L7Qsiwg0JLQuNC60YLQvtGAINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JHQsNCz0LDRg9GC0LTQuNC90L7Qsiwg0JPQsNCx0LTRg9C70LLQsNGF0LjQtCDQk9C40LvRjNC80YPRgtC00LjQvdC+0LLQuNGHDQor0JzQuNC90LrQuNC9LCDQkNC70LXQutGB0LDQvdC00YAg0JLQuNC60YLQvtGA0L7QstC40YcNCivQkdCw0LPQu9Cw0LksINCc0LDRgNCw0YIg0JLQuNC60YLQvtGA0L7QstC40YcNCivQnNC40YDQt9C+0LXQsiwg0JPQsNGB0LDQvSDQkdC+0YDQuNGB0L7QstC40YcNCivQkdCw0LbQtdC90L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0JzQuNGA0L7QvdC+0LIsINCS0LDQu9C10YDQuNC5INCY0LLQsNC90L7QstC40YcNCivQkdCw0LfRi9C70LXQstCwLCDQotCw0LzQsNGA0LAg0JLQsNGB0LjQu9GM0LXQstC90LANCivQnNC40YDQvtC90L7Qsiwg0JLQuNC60YLQvtGAINCf0LjQvNC10L3QvtCy0LjRhw0KK9CR0LDQutCw0YLQuNC9LCDQktCw0LTQuNC8INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0JzQuNGA0L7QvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQkdCw0LvQsNC60YjQuNC9LCDQn9Cw0LLQtdC7INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JzQuNGA0L7QvdC+0LIsINCT0LXQvdC90LDQtNC40Lkg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9CR0LDQu9Cw0LvQsNC10LIsINCS0Y/Rh9C10YHQu9Cw0LIg0JXRhNC40LzQvtCy0LjRhw0KK9Cc0LjRgNC+0L3QvtCyLCDQntC70LXQsyDQntGA0LXRgdGC0L7QstC40YcNCivQkdCw0LvRgtC40L0sINCt0LTRg9Cw0YDQtCDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Cc0LjRgdC90LjQuiwg0JHQvtGA0LjRgSDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JHQsNGA0LDQsdCw0L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JzQuNGC0LjQvSwg0KHQtdGA0LPQtdC5INCT0LXRgNCw0YHQuNC80L7QstC40YcNCivQkdCw0YDQsNC90L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LLQsNC90L7QstC40YcNCivQnNC40YLQuNC90LAsINCU0LDRgNGM0Y8g0JDQu9C10LrRgdCw0L3QtNGA0L7QstC90LANCivQkdCw0YDQsNC90L7Qsiwg0JLQsNC70LXRgNC40Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9Cc0LjRgtC60L7QstCwLCDQotCw0YLRjNGP0L3QsCDQoNC+0YHRgtC40YHQu9Cw0LLQvtCy0L3QsA0KK9CR0LDRgNC40LXQsiwg0JzQsNGA0LDRgiDQnNCw0L3RgdGD0YDQvtCy0LjRhw0KK9Cc0LjRgtGA0L7RhNCw0L3QvtCyLCDQkNC70LXQutGB0LXQuSDQktCw0LvQtdC90YLQuNC90L7QstC40YcNCivQkdCw0YDQutCw0YjQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0J/QtdGC0YDQvtCy0LjRhw0KK9Cc0LjRgtGA0L7RhdC40L0sINCh0LXRgNCz0LXQuSDQodC10YDQs9C10LXQstC40YcNCivQkdCw0YDRgdGD0LrQvtCyLCDQnNC40YXQsNC40Lsg0JjQstCw0L3QvtCy0LjRhw0KK9Cc0LjRgtGO0LrQvtCyLCDQnNC40YXQsNC40Lsg0JDQu9C10LrRgdC10LXQstC40YcNCivQkdCw0YDRi9GI0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JzQuNGC0Y/QtdCyLCDQmNCy0LDQvSDQmNCy0LDQvdC+0LLQuNGHDQor0JHQsNGA0YvRiNC90LjQutC+0LIsINCd0LjQutC+0LvQsNC5INCf0LDQstC70L7QstC40YcNCivQnNC40YXQsNC50LvQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQkdCw0YHQsNC10LIsINCo0LDQvNC40LvRjCDQodCw0LvQvNCw0L3QvtCy0LjRhw0KK9Cc0LjRhdCw0LnQu9C+0LIsINCQ0LvQtdC60YHQtdC5INCu0YDRjNC10LLQuNGHDQor0JHQsNGB0LjQvSwg0JXRhNC40Lwg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JzQuNGF0LDQudC70L7Qsiwg0JLQuNC60YLQvtGAINCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQkdCw0YLQsNCz0LDQtdCyLCDQkNC70LXQutGB0LXQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cc0LjRhdCw0LnQu9C+0LIsINCS0LjQutGC0L7RgCDQndC40LrQuNGC0L7QstC40YcNCivQkdCw0YLRg9GA0LjQvSwg0K7RgNC40Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQnNC40YXQsNC50LvQvtCyLCDQktGP0YfQtdGB0LvQsNCyINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JHQsNGD0Y3RgCwg0JLQu9Cw0LTQuNC80LjRgCDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0JzQuNGF0LDQudC70L7Qsiwg0JLRj9GH0LXRgdC70LDQsiDQpNC10LTQvtGA0L7QstC40YcNCivQkdCw0YjQvNCw0YfQvdC40LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCk0LXQtNC+0YDQvtCy0LjRhw0KK9Cc0LjRhdCw0LnQu9C+0LIsINCV0LLQs9C10L3QuNC5INCt0LTRg9Cw0YDQtNC+0LLQuNGHDQor0JHQsNGO0L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JzQuNGF0LDQudC70L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkdC10LfQsdC+0YDQvtC00L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JzQsNC60YHQuNC80L7QstC40YcNCivQnNC40YXQsNC50LvQvtCyLCDQodC10YDQs9C10Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JHQtdC30LLQtdGA0YXQuNC5LCDQodC10YDQs9C10Lkg0KTQtdC00L7RgNC+0LLQuNGHDQor0JzQuNGF0LDQudC70L7QstCwLCDQrdC70YzQvNC40YDQsCDQk9C10YDQvNCw0L3QvtCy0L3QsA0KK9CR0LXQt9C70LXQv9C60LjQvdCwLCDQm9GO0LTQvNC40LvQsCDQpNC10LTQvtGA0L7QstC90LANCivQnNC40YXQsNC70LrQvtCyLCDQndC40LrQuNGC0LAg0KHQtdGA0LPQtdC10LLQuNGHDQor0JHQtdC60LXRgtC+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQvdC00YDQtdC10LLQuNGHDQor0JzQuNGF0LDQu9C60L7Qsi3QmtC+0L3Rh9Cw0LvQvtCy0YHQutC40LksINCQ0L3QtNGA0L7QvSDQodC10YDQs9C10LXQstC40YcNCivQkdC10LrQu9C10LzQuNGJ0LXQstCwLCDQntC70YzQs9CwINCQ0LvQtdC60YHQtdC10LLQvdCwDQor0JzQuNGF0LXQtdCyLCDQnNC40YXQsNC40Lsg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQnNC40YjQuNC9LCDQktC40LrRgtC+0YAg0JzQsNC60YHQuNC80L7QstC40YcNCivQnNC+0LjRgdC10LXQsiwg0JHQvtGA0LjRgSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cc0L7QuNGB0LXQtdCy0LAsINCS0LXRgNC+0L3QuNC60LAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQvdCwDQor0JzQvtC90LDRgdGC0YvRgNGB0LrQuNC5LCDQnNC40YXQsNC40Lsg0JvRjNCy0L7QstC40YcNCivQkdC10LvQvtC30LXRgNGG0LXQsiwg0KHQtdGA0LPQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cc0L7RgNC+0LfQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCi0LjQvNC+0YTQtdC10LLQuNGHDQor0JHQtdC70L7QvdC+0LPQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JzQvtGA0L7Qt9C+0LIsINCS0LvQsNC00LjQvNC40YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQnNC+0YDQvtC30L7Qsiwg0J7Qu9C10LMg0JLQuNC60YLQvtGA0L7QstC40YcNCivQkdC10LvRj9C10LIsINCh0LXRgNCz0LXQuSDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9Cc0L7RgNGJ0LDQutC+0LLQsCwg0KLQsNC80LDRgNCwINCT0LXQvtGA0LPQuNC10LLQvdCwDQor0JHQtdC70Y/QutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQodC10LzQtdC90L7QstC40YcNCivQnNC+0YHRgtC+0LLQvtC5LCDQn9C10YLRgCDQn9C10YLRgNC+0LLQuNGHDQor0JHQtdC90LTRg9C60LjQtNC30LUsINCa0LDRhdCwINCQ0LLRgtCw0L3QtNC40LvQvtCy0LjRhw0KK9Cc0L7RiNC90Y/QutC+0LIsINCS0LDQu9C10YDQuNC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CR0LXQvdC+0LIsINCT0LXQvdC90LDQtNC40Lkg0JzQsNGC0LLQtdC10LLQuNGHDQor0JzRg9C60L7QvNC10LvRjCwg0JLQu9Cw0LTQuNC80LjRgCDQmNC30Y/QstC40YcNCivQkdC10YDQtNC90LjQutC+0LLQsCwg0J3QuNC90LAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQvdCwDQor0JzRg9C70LDQtNC20LDQvdC+0LIsINCo0L7QtCDQodCw0LjQtNC+0LLQuNGHDQor0JzRg9GA0LDQstC70LXQvdC60L4sINCh0LXRgNCz0LXQuSDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9CR0LXRgNC10LfQvtCy0YHQutC40LksINCR0L7RgNC40YEg0JDQsdGA0LDQvNC+0LLQuNGHDQor0JzRg9GB0LDQu9Cw0YLQvtCyLCDQpdCw0YHQsNC9INCQ0LvQsNGB0YXQsNC90L7QstC40YcNCivQkdC10YDQtdGB0YLQvtCy0L7QuSwg0JLQuNC60YLQvtGAINCY0LLQsNC90L7QstC40YcNCivQnNGD0YHQsNGC0L7Qsiwg0JzQuNGF0LDQuNC7INCY0LLQsNC90L7QstC40YcNCivQkdC10YHQv9Cw0LvQvtCyLCDQrtGA0LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cc0YPRhdCwLCDQktC40YLQsNC70LjQuSDQn9C10YLRgNC+0LLQuNGHDQor0JHQtdGB0YHQsNGA0LDQsdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Cd0LDQt9Cw0YDQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JLQuNC60YLQvtGA0L7QstC40YcNCivQndCw0LfQsNGA0YfRg9C6LCDQkNC70LXQutGB0LDQvdC00YAg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9CR0LjQs9C90L7Qsiwg0KDQsNC80LjQu9GMINCY0LzQsNC80LDQs9C30LDQvNC+0LLQuNGHDQor0J3QsNC30LTRgNCw0YLQtdC90LrQviwg0JXQstCz0LXQvdC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CR0LjQutCw0LvQvtCy0LAsINCd0LDQtNC10LbQtNCwINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQvdCwDQor0JHQuNC90LTRjtC60L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JPQsNCy0YDQuNC70L7QstC40YcNCivQndCw0LnRh9GD0LrQvtCy0LAsINCh0LLQtdGC0LvQsNC90LAg0JjQstCw0L3QvtCy0L3QsA0KK9Cd0LDQudGI0YPQu9GMLCDQktC40YLQsNC70LjQuSDQkNGA0LrQsNC00YzQtdCy0LjRhw0KK9CR0LjRgNGO0LrQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0J3QsNGA0L7Qu9C40L0sINCc0LjRhdCw0LjQuyDQotC40YXQvtC90L7QstC40YcNCivQkdC40YDRjtC60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNGE0LDQvdCw0YHRjNC10LLQuNGHDQor0J3QsNGA0YPRgdC+0LLQsCwg0JvRjtC00LzQuNC70LAg0JHQvtGA0LjRgdC+0LLQvdCwDQor0JHQuNGH0LXQu9C00LXQuSwg0JrQsNCw0LTRi9GALdCe0L7QuyDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cd0LDRhdC80LDQvdC+0LLQuNGHLCDQn9C10YLRgCDQkNCx0YDQsNC80L7QstC40YcNCivQkdC70LDQs9C+0LLQvtC70LjQvSwg0KHQtdGA0LPQtdC5INCV0LLQs9C10L3RjNC10LLQuNGHDQor0J3QtdCy0LXRgNC+0LIsINCS0LDQu9C10YDQuNC5INCY0LLQsNC90L7QstC40YcNCivQndC10LLQt9C70LjQvSwg0JvQtdC+0L3QuNC0INCR0L7RgNC40YHQvtCy0LjRhw0KK9CR0L7Qs9Cw0YLQvtCyLCDQktC70LDQtNC40LzQuNGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cd0LXQstC30L7RgNC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQk9C70LXQsdC+0LLQuNGHDQor0JHQvtCz0LDRh9C10LIsINCS0LvQsNC00LjQvNC40YAg0JLQsNC70LXQvdGC0LjQvdC+0LLQuNGHDQor0J3QtdC00LXQu9C40L0sINCT0LXQvdC90LDQtNC40Lkg0J/QsNCy0LvQvtCy0LjRhw0KK9CR0L7Qs9C00LDQvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JvQtdC+0L3QuNC00L7QstC40YcNCivQndC10LTQvtGI0LjQstC40L0sINCS0Y/Rh9C10YHQu9Cw0LIg0JzQuNGF0LDQudC70L7QstC40YcNCivQkdC+0LPQtNCw0L3QvtCy0LAsINCV0LvQtdC90LAg0JzQuNGF0LDQudC70L7QstC90LANCivQndC10LXQu9C+0LIsINCu0YDQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JHQvtCz0LTQsNC90YfQuNC60L7Qsiwg0KHQtdGA0LPQtdC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0J3QtdC60YDQsNGB0L7Qsiwg0JvQtdC+0L3QuNC0INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JHQvtCz0L7QvNC+0LvQvtCyLCDQntC70LXQsyDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cd0LXQutGA0YPRgtC10L3QutC+LCDQktC40LrRgtC+0YAg0K7RgNGM0LXQstC40YcNCivQkdC+0LbQtdC00L7QvNC+0LLQsCwg0JPQsNC70LjQvdCwINCa0LvQsNCy0LTQuNC10LLQvdCwDQor0J3QtdC80YbQvtCyLCDQkdC+0YDQuNGBINCV0YTQuNC80L7QstC40YcNCivQkdC+0LnQutC+LCDQktCw0LTQuNC8INCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQndC10YHRgtC10YDQtdC90LrQviwg0KLQsNGC0YzRj9C90LAg0JPQtdC90L3QsNC00YzQtdCy0L3QsA0KK9CR0L7QudC60L4sINCS0Y/Rh9C10YHQu9Cw0LIg0JDQvdC00YDQtdC10LLQuNGHDQor0J3QtdGB0YLQtdGA0L7Qsiwg0K7RgNC40Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQkdC+0LnQutC+LCDQnNCw0LrRgdC40Lwg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0J3QtdGD0LzRi9Cy0LDQutC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQr9C60L7QstC70LXQstC40YcNCivQndC10YfQsNC10LIsINCQ0L3QtNGA0LXQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CR0L7QudGG0LXQsiwg0JDQvdCw0YLQvtC70LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cd0LXRidCw0LTQuNC9LCDQkNC90LTRgNC10Lkg0JDRhNCw0L3QsNGB0YzQtdCy0LjRhw0KK9CR0L7QutC+0LLQuNC60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0J3QuNCz0LrQvtC10LIsINCh0LXRgNCz0LXQuSDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9CR0L7Qu9C00YvRgNC10LIsINCu0YDQuNC5INCu0YDRjNC10LLQuNGHDQor0J3QuNC60LjRgtC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JHQvtC70YzRiNCw0LrQvtCyLCDQkNC70LXQutGB0LXQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cd0LjQutC40YLQuNC9LCDQkNC90LTRgNC10Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JHQvtC70YzRiNCw0LrQvtCyLCDQldCy0LPQtdC90LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cd0LjQutC40YLQuNC9LCDQktCw0LvQtdC90YLQuNC9INCY0LLQsNC90L7QstC40YcNCivQkdC+0LvRjNGI0LDQutC+0LIsINCh0LXRgNCz0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQndC40LrQuNGC0LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQn9C10YLRgNC+0LLQuNGHDQor0JHQvtC90LTQsNGA0LXQsiwg0JPRgNC40LPQvtGA0LjQuSDQodC10LzQtdC90L7QstC40YcNCivQndC40LrQuNGC0LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Cd0LjQutC40YLRh9GD0LosINCY0LLQsNC9INCY0LPQvdCw0YLRjNC10LLQuNGHDQor0JHQvtC+0YEsINCT0LXQvtGA0LPQuNC5INCS0LDQu9C10L3RgtC40L3QvtCy0LjRhw0KK9Cd0LjQutC40YTQvtGA0LXQvdC60L4sINCu0YDQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JHQvtGA0LjRgdC10L3QutC+LCDQndC40LrQvtC70LDQuSDQmNCy0LDQvdC+0LLQuNGHDQor0J3QuNC60LjRhNC+0YDQvtCyLCDQodC10YDQs9C10Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQndC40LrQvtC70LDQtdCyLCDQkNC70LXQutGB0LXQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CR0L7RgNC40YHQvtCz0LvQtdCx0YHQutC40LksINCQ0LvQtdC60YHQsNC90LTRgCDQmNCz0L7RgNC10LLQuNGHDQor0J3QuNC60L7Qu9Cw0LXQsiwg0JDQvdC00YDQtdC5INCY0LLQsNC90L7QstC40YcNCivQkdC+0YDQvtCy0LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCh0LXQvNC10L3QvtCy0LjRhw0KK9Cd0LjQutC+0LvQsNC10LIsINCc0LjRhdCw0LjQuyDQldGE0LjQvNC+0LLQuNGHDQor0JHQvtGA0L7QstC+0LksINCa0L7QvdGB0YLQsNC90YLQuNC9INCd0LDRgtCw0L3QvtCy0LjRhw0KK9Cd0LjQutC+0LvQsNC10LLRgdC60LjQuSwg0JLQu9Cw0LTQuNC80LjRgCDQrtGA0YzQtdCy0LjRhw0KK9CR0L7RgNC+0LTQsNC10LIsINCS0LDQu9C10YDQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0J3QuNC60L7Qu9C+0LPQvtGA0YHQutC40LksINCS0LDQu9C10YDQuNC5INCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQkdC+0YDQvtC00LjQvSwg0JLQuNC60YLQvtGAINCY0LLQsNC90L7QstC40YcNCivQndC40LrQvtC90L7Qsiwg0JLRj9GH0LXRgdC70LDQsiDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cd0LjQutGD0LvQuNC9LCDQktCw0LvQtdGA0LjQuSDQkNGE0LDQvdCw0YHRjNC10LLQuNGHDQor0JHQvtGA0YnQtdCyLCDQktCw0LvQtdGA0LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cd0LjQutGD0LvQuNC9LCDQrtGA0LjQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQkdC+0YHRhdC+0LvQvtCyLCDQodC10YDQs9C10Lkg0KHQtdC80LXQvdC+0LLQuNGHDQor0J3QuNGP0LfQvtCyLCDQodCw0L/QsNGA0LzRg9GA0LDRgiDQkNGC0LDQtdCy0LjRhw0KK9CR0L7Rh9Cw0YDQvtCyLCDQnNC40YXQsNC40Lsg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQndC+0LLQuNC60L7Qsiwg0J7Qu9C10LMg0JjQstCw0L3QvtCy0LjRhw0KK9CR0L7Rh9C40L0sINCb0LXQvtC90LjQtCDQkNGA0L3QvtC70YzQtNC+0LLQuNGHDQor0J3QvtCy0L7QtNCy0L7RgNGB0LrQsNGPLCDQktCw0LvQtdGA0LjRjyDQmNC70YzQuNC90LjRh9C90LANCivQkdGA0LDQs9C40L3RgdC60LjQuSwg0JDQu9C10LrRgdCw0L3QtNGAINCf0LDQstC70L7QstC40YcNCivQndC+0LbQuNC60L7Qsiwg0K7RgNC40Lkg0JDQsdGA0LDQvNC+0LLQuNGHDQor0JHRgNCw0YLQuNGJ0LXQsiwg0JjQs9C+0YDRjCDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cd0L7RgdC+0LIsINCS0LDQu9C10YDQuNC5INCR0L7RgNC40YHQvtCy0LjRhw0KK9CR0YDQtdCy0L3QvtCyLCDQkdC+0YDQuNGBINCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQntCx0L7Qu9C10L3RgdC60LjQuSwg0JDQu9C10LrRgdCw0L3QtNGAINCc0LjRgtGA0L7RhNCw0L3QvtCy0LjRhw0KK9CR0YDRg9GB0L3QuNC60LjQvSwg0J3QuNC60L7Qu9Cw0Lkg0K7RgNGM0LXQstC40YcNCivQntCy0YfQtdC90LrQvtCyLCDQktGP0YfQtdGB0LvQsNCyINCY0LLQsNC90L7QstC40YcNCivQkdGA0YPRgdC90LjRhtGL0L0sINCu0YDQuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0J7QstGH0LjQvdC90LjQutC+0LIsINCa0L7QvdGB0YLQsNC90YLQuNC9INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JHRgNGL0L3RhtCw0LvQvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0J7Qt9C10YDQvtCyLCDQktC40LrRgtC+0YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQntC50LrQuNC90LAsINCX0L7RjyDQndC40LrQvtC70LDQtdCy0L3QsA0KK9CR0YDRi9C90YbQsNC70L7Qsiwg0K7RgNC40Lkg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Ce0LnQvdCy0LjQtCwg0JPRgNC40LPQvtGA0LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9CR0YPQs9C10YDQsCwg0JzQuNGF0LDQuNC7INCV0LLQs9C10L3RjNC10LLQuNGHDQor0J7Qu9C10LnQvdC40LosINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9CR0YPQtNCw0LbQsNC/0L7Qsiwg0KHQtdGA0LPQtdC5INCf0YPRgNCx0YPQtdCy0LjRhw0KK9Ce0LvQtdC50L3QuNC6LCDQm9GO0LHQvtCy0Ywg0JLQsNGB0LjQu9GM0LXQstC90LANCivQntC70YzRiNCw0L3RgdC60LjQuSwg0JTQvNC40YLRgNC40Lkg0JLQsNC00LjQvNC+0LLQuNGHDQor0JHRg9C60LDRgtC+LCDQktC40LrRgtC+0YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ce0L7RgNC20LDQuiwg0KjQtdGA0LjQsy3QvtC+0Lsg0JTQuNC30LjQttC40LrQvtCy0LjRhw0KK9CR0YPQu9Cw0LLQuNC90L7Qsiwg0JLQsNC00LjQvCDQldCy0LPQtdC90YzQtdCy0LjRhw0KK9Ce0YDQtNC20L7QvdC40LrQuNC00LfQtSwg0JjQvtGB0LjRhCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CR0YPQu9Cz0LDQuiwg0JLQu9Cw0LTQuNC80LjRgCDQkdC+0YDQuNGB0L7QstC40YcNCivQntGA0LvQvtCyLCDQktC40LrRgtC+0YAg0J/QtdGC0YDQvtCy0LjRhw0KK9Ce0YDQu9C+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQvdC00YDQtdC10LLQuNGHDQor0JHRg9C90LjRhywg0J/QsNCy0LXQuyDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0J7RgNC70L7QstCwLCDQodCy0LXRgtC70LDQvdCwINCu0YDRjNC10LLQvdCwDQor0JHRg9GA0LHRg9C70LjRgSwg0JPQtdC90L3QsNC00LjQuSDQrdC00YPQsNGA0LTQvtCy0LjRhw0KK9Ce0YHQvNCw0LXQsiwg0JDQvNC40L0g0JDRhdC80LXQtNC+0LLQuNGHDQor0JHRg9GA0LTRg9C60L7Qsiwg0J/QsNCy0LXQuyDQotC40LzQvtGE0LXQtdCy0LjRhw0KK9Ce0YHQvdC+0LLQvdCw0Y8sINC00LXRj9GC0LXQu9GM0L3QvtGB0YLRjDoNCivQkdGD0YDQtdC90LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQkNGA0YHQtdC90YzQtdCy0LjRhw0KK9Ce0YHRgtCw0LvRjNGB0LrQuNC5LCDQlNC80LjRgtGA0LjQuSDQktGB0LXQstC+0LvQvtC00L7QstC40YcNCivQntGB0YLQsNC90LjQvdCwLCDQndC40L3QsCDQkNC70LXQutGB0LDQvdC00YDQvtCy0L3QsA0KK9CR0YPRgNC60L7Qsiwg0KHQtdGA0LPQtdC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JHRg9GA0LvRg9GG0LrQuNC5LCDQrtGA0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0J/QsNCy0LvQvtCyLCDQndC40LrQvtC70LDQuSDQkNC70LXQutGB0LDQvdC0cNC+0LLQuNGHDQor0JHRg9GC0LDQtdCyLCDQktC70LDQtNC40LzQuNGAINCY0LLQsNC90L7QstC40YcNCivQn9Cw0LLQu9C+0LLRgdC60LjQuSwg0JPQu9C10LEg0J7Qu9C10LPQvtCy0LjRhw0KK9CR0YPRgtC+0LIsINCV0LLQs9C10L3QuNC5INCb0LXQvtC90LjQtNC+0LLQuNGHDQor0JHRg9GH0LXQvdC60L7Qsiwg0JXQstCz0LXQvdC40Lkg0JLQuNC60YLQvtGA0L7QstC40YcNCivQkdGD0YjQvNC40L0sINCV0LLQs9C10L3QuNC5INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0J/QsNC70YzRh9C10LLRgdC60LjQuSwg0JDQvdC00YDQtdC5INCY0LLQsNC90L7QstC40YcNCivQn9Cw0LzRhNC40LvQvtCy0LAsINCt0LvQu9CwINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQvdCwDQor0JHRi9C60L7Qsiwg0JLQsNC70LXRgNC40Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQn9Cw0L3QsNGA0LjQvSwg0J3QuNC60L7Qu9Cw0Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQkdGL0LrQvtCyLCDQoNC+0LvQu9Cw0L0g0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Cf0LDQvdC40L0sINCS0LjQutGC0L7RgCDQldCy0LPQtdC90YzQtdCy0LjRhw0KK9CR0YvQu9C10LLRgdC60LjQuSwg0J/QsNCy0LXQuyDQk9C10L3QvdCw0LTRjNC10LLQuNGHDQor0J/QsNC90LrQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCh0LXQvNC10L3QvtCy0LjRhw0KK9CR0YvRgdGC0YDQuNGG0LrQsNGPLCDQrdC70LjQvdCwINCQ0LLRgNCw0LDQvNC+0LLQvdCwDQor0J/QsNC90LrRgNCw0YLQvtCyLdCn0LXRgNC90YvQuSwg0JDQu9C10LrRgdCw0L3QtNGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0JHRi9GB0YLRgNC+0LIsINCh0LXRgNCz0LXQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cf0LDQvdGB0LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JHRi9GH0LrQvtCyLCDQkNC90LTRgNC10Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cf0LDQvdGE0LjQu9C+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQktCw0LLQuNC70L7Qsiwg0JDQvdC00YDQtdC5INCf0LXRgtGA0L7QstC40YcNCivQn9Cw0L3RhNC40LvQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQktCw0LLQuNC70L7Qsiwg0KHRgtCw0L3QuNGB0LvQsNCyINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cf0LDQvdGM0LrQuNC9LCDQktGP0YfQtdGB0LvQsNCyINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CS0LDQs9C40L0sINCS0LDQu9C10YDQuNC5INCQ0L3QtNGA0LXQtdCy0LjRhw0KK9Cf0LDRgNCw0LTQuNC3LCDQkNC70LXQutGB0LDQvdC00YAg0JvQsNC30LDRgNC10LLQuNGHDQor0JLQsNC50L3RiNGC0L7Quiwg0KHQtdC80LXQvSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cf0LDRgNCw0LzQvtC90L7QstCwLCDQotCw0YLRjNGP0L3QsCDQktC70LDQtNC40LzQuNGA0L7QstC90LANCivQktCw0LrRg9C70LXQvdC60L4sINCc0LjRhdCw0LjQuyDQrtGA0YzQtdCy0LjRhw0KK9Cf0LDRgNC40L3QvtCyLCDQktGP0YfQtdGB0LvQsNCyINCh0LXQvNC10L3QvtCy0LjRhw0KK9CS0LDRgNC10L3QvdC40LrQvtCyLCDQktCw0LvQtdC90YLQuNC9INCY0LLQsNC90L7QstC40YcNCivQktCw0YDQvdCw0LLRgdC60LjQuSwg0JLQu9Cw0LTQuNC80LjRgCDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cf0LDRgNGI0LDQutC+0LIsINCu0YDQuNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JLQsNGA0YLQsNC30LDRgNC+0LLQsCwg0JvRjtC00LzQuNC70LAg0KHRgtC10L/QsNC90L7QstC90LANCivQn9Cw0YHRgtGD0YXQvtCyLCDQkdC+0YDQuNGBINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JLQsNGB0LjQu9GM0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNCx0LTRg9Cw0LvQuNC10LLQuNGHDQor0J/QsNGC0YDRg9GI0LXQsiwg0J3QuNC60L7Qu9Cw0Lkg0J/Qu9Cw0YLQvtC90L7QstC40YcNCivQn9Cw0YjRg9GC0L4sINCS0LvQsNC00LjQvNC40YAg0KDQvtGB0YLQuNGB0LvQsNCy0L7QstC40YcNCivQktCw0YHQuNC70YzQtdCyLCDQodC10YDQs9C10Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQn9C10YDQvNC40L3QvtCyLCDQkNC90LDRgtC+0LvQuNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JLQsNGF0YDRg9C60L7Qsiwg0KHQtdGA0LPQtdC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0J/QtdGC0L7RiNC40L0sINCS0LvQsNC00LjQvNC40YAg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9CS0LXQtNC10YDQvdC40LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCf0LDQstC70L7QstC40YcNCivQn9C10YLRgNC10L3QutC+LCDQodC10YDQs9C10Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQktC10LTQtdGA0L3QuNC60L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0KLRgNC+0YTQuNC80L7QstC40YcNCivQn9C10YLRgNC40LosINCQ0LvQtdC60YHQsNC90LTRgCDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JLQtdC90LPQtdGA0L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQn9C10YLRgNC+0LIsINCQ0L3QtNGA0LXQuSDQrtGA0YzQtdCy0LjRhw0KK9CS0LXQvdCz0LXRgNC+0LLRgdC60LjQuSwg0JDQu9C10LrRgdCw0L3QtNGAINCU0LzQuNGC0YDQuNC10LLQuNGHDQor0J/QtdGC0YDQvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQktC10L/RgNC10LIsINCQ0YDQutCw0LTQuNC5INCk0LjQu9C40LzQvtC90L7QstC40YcNCivQn9C10YLRgNC+0LIsINCS0LvQsNC00LjQvNC40YAg0JjQstCw0L3QvtCy0LjRhw0KK9CS0LXRgNC10YnQsNCz0LjQvSwg0JLQuNC60YLQvtGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cf0LXRgtGA0L7Qsiwg0J7Qu9C10LMg0JLQsNC00LjQvNC+0LLQuNGHDQor0JLQtdGA0L3QuNCz0L7RgNCwLCDQktC70LDQtNC40LzQuNGAINCh0LXRgNCz0LXQtdCy0LjRhw0KK9Cf0LXRgtGA0L7Qsiwg0K7RgNC40Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JLQtdGA0YXQvtCy0YHQutC40LksINCQ0LvQtdC60YHQsNC90LTRgCDQnNCw0YDQutC+0LLQuNGHDQor0JLQtdGA0YjQuNC90LjQvSwg0J/QsNCy0LXQuyDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cf0LXRhdGC0LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CS0LXRgdC10LvQutC40L0sINCf0LDQstC10Lsg0JzQuNGF0LDQudC70L7QstC40YcNCivQn9C10YjQutC+0LIsINCS0LjQutGC0L7RgCDQn9C10YLRgNC+0LLQuNGHDQor0J/QuNCy0L3QtdC90LrQviwg0JLQsNC70LXQvdGC0LjQvdCwINCd0LjQutC+0LvQsNC10LLQvdCwDQor0JLQtdGH0LrQsNGB0L7Qsiwg0K7RgNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cf0LjQu9C40L/QtdC90LrQviwg0K7RgNC40Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JLQtdGI0L3Rj9C60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0LvRjNCx0LXRgNGC0L7QstC40YcNCivQn9C40LvQuNC/0LXRiNC40L0sINCd0LjQutC+0LvQsNC5INCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQktC40LPQtNC+0YDRh9C40LosINCV0LvQtdC90LAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC90LANCivQn9C40YHQutGD0L0sINCd0LjQutC+0LvQsNC5INCb0LXQvtC90LjQtNC+0LLQuNGHDQor0J/QuNGP0YjQtdCy0LAsINCb0LDRgNC40YHQsCDQmNCy0LDQvdC+0LLQvdCwDQor0JLQuNC60YLQvtGA0L7Qsiwg0JLQsNC70LXRgNGM0Y/QvSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cf0LvQsNGC0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQmNCz0L3QsNGC0YzQtdCy0LjRhw0KK9CS0LjQu9C40L3QsdCw0YXQvtCyLCDQk9C10L7RgNCz0LjQuSDQktCw0LTQuNC80L7QstC40YcNCivQn9C70LDRgtC+0L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQktC40L3QvtCz0YDQsNC00L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9Cf0LvQsNGC0L7QvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JzQuNGF0LDQudC70L7QstC40YcNCivQktC40L3QvtCz0YDQsNC00L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0J/Qu9C10YLQvdC10LLQsCwg0KLQsNC80LDRgNCwINCS0LDRgdC40LvRjNC10LLQvdCwDQor0JLQuNC90L7Qs9GA0LDQtNC+0LIsINCf0LDQstC10Lsg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0J/Qu9C40LXQsiwg0KDRg9GB0LvQsNC9INCh0YPQu9GC0LDQvdC+0LLQuNGHDQor0JLQuNGC0YDRg9C6LCDQndC40LrQvtC70LDQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cf0LvQvtGC0L3QuNC60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CS0LjRiNC90Y/QutC+0LIsINCS0LjQutGC0L7RgCDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0J/QvtCx0LXQtNC40L3RgdC60LDRjywg0JvRjtC00LzQuNC70LAg0JLQsNGB0LjQu9GM0LXQstC90LANCivQktC40YjQvdGP0LrQvtCyLCDQktC40YLQsNC70LjQuSDQldCy0LPQtdC90YzQtdCy0LjRhw0KK9Cf0L7QstC+0LTRi9GA0YwsINCh0LXRgNCz0LXQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CS0LvQsNC00LjRgdC70LDQstC70LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCf0LDQstC70L7QstC40YcNCivQn9C+0LLQvtC70Y/QtdCyLCDQktC70LDQtNC40LzQuNGAINCc0LjRgtGA0L7RhNCw0L3QvtCy0LjRhw0KK9CS0LvQsNGB0L7Qsiwg0JDQu9C10LrRgdC10Lkg0KTQtdC70LjQutGB0L7QstC40YcNCivQn9C+0LTQsdC10YDQtdC30LrQuNC9LCDQkNC70LXQutGB0LXQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JLQu9Cw0YHQvtCyLCDQktCw0LvQtdC90YLQuNC9INCh0YLQtdC/0LDQvdC+0LLQuNGHDQor0J/QvtC00LPQvtGA0L3QvtCyLCDQndC40LrQvtC70LDQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9CS0LvQsNGB0L7Qsiwg0K7RgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQn9C+0LTQutC+0LvQt9C40L0sINCV0LLQs9C10L3QuNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0J/QvtC00L7Qv9GA0LjQs9C+0YDQsCwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CS0LvQsNGB0L7QstCwLCDQkNC90L3QsCDQn9C10YLRgNC+0LLQvdCwDQor0J/QvtC00YPRhNCw0LvQvtCyLCDQndC40LrQvtC70LDQuSDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9CS0L7QtdCy0L7QtNC40L0sINCS0LDQtNC40Lwg0JDQu9C10LrRgdC10LXQstC40YcNCivQn9C+0LvQtNC90LjQutC+0LIsINCu0YDQuNC5INCY0LLQsNC90L7QstC40YcNCivQktC+0LnQutC+0LIsINCQ0L3QtNGA0LXQuSDQmNCy0LDQvdC+0LLQuNGHDQor0J/QvtC70LXQstCw0L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCf0LDQstC70L7QstC40YcNCivQktC+0LvQutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cf0L7Qu9C10LbQsNC10LIsINCb0LXQvtC90LjQtCDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0J/QvtC70YLQsNCy0YfQtdC90LrQviwg0JPQtdC+0YDQs9C40Lkg0KHQtdGA0LPQtdC10LLQuNGHDQor0JLQvtC70LrQvtCyLCDQktCw0YHQuNC70LjQuSDQn9C10YLRgNC+0LLQuNGHDQor0J/QvtC70YLQvtGA0LDQvdC40L0sINCc0LjRhdCw0LjQuyDQndC40LrQuNGE0L7RgNC+0LLQuNGHDQor0JLQvtC70LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0J/QvtC70YPRj9C90L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JDQvdC00YDQtdC10LLQuNGHDQor0JLQvtC70LrQvtCyLCDQk9C10L3QvdCw0LTQuNC5INCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQn9C+0LvRj9C60L7Qsiwg0JDQvdC00YDQtdC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JLQvtC70LrQvtCyLCDQndC40LrQvtC70LDQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cf0L7Qu9GP0LrQvtCyLCDQndC40LrQvtC70LDQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JLQvtC70LrQvtCy0LAsINCe0LvRjNCz0LAg0J3QuNC60L7Qu9Cw0LXQstC90LANCivQn9C+0LvRj9C60L7Qsiwg0K7RgNC40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQktC+0LvQvtCy0LjQuiwg0JDQu9C10LrRgdCw0L3QtNGAINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0J/QvtC80L7RgNC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQkNC00YDQuNCw0L3QvtCy0LjRhw0KK9CS0L7Qu9C+0LTQuNC9LCDQndC40LrQvtC70LDQuSDQkNC90LTRgNC10LXQstC40YcNCivQn9C+0L3QsNGB0L7Qsiwg0KHRgtC10L/QsNC9INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JLQvtC70L7RiNC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQodGC0LDQu9GM0LXQstC40YcNCivQn9C+0L3QvtC80LDRgNC10LIsINCQ0LvQtdC60YHQsNC90LTRgCDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9CS0L7Qu9GH0LXQuiwg0JPQsNC70LjQvdCwINCR0L7RgNC40YHQvtCy0L3QsA0KK9Cf0L7QvdC+0LzQsNGA0LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCh0LXRgNCz0LXQtdCy0LjRhw0KK9CS0L7Qu9GM0YHQutC40LksINCQ0YDQutCw0LTQuNC5INCY0LLQsNC90L7QstC40YcNCivQn9C+0L3QvtC80LDRgNC10LIsINCQ0LvQtdC60YHQtdC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JLQvtGA0L7QsdGM0LXQsiwg0K3QtNGD0LDRgNC0INCQ0YDQutCw0LTRjNC10LLQuNGHDQor0J/QvtC90L7QvNCw0YDQtdCyLCDQkNC70LXQutGB0LXQuSDQpNC40LvQuNC/0L/QvtCy0LjRhw0KK9CS0L7RgNC+0LPRg9GI0LjQvSwg0JLQuNC60YLQvtGAINCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQn9C+0L3QvtC80LDRgNC10LIsINCT0LXQvdC90LDQtNC40Lkg0KHQtdC80LXQvdC+0LLQuNGHDQor0JLQvtGA0L7QvdC40L0sINCS0LvQsNC00LjQvNC40YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQn9C+0L3QvtC80LDRgNC10LIsINCb0LXQsiDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CS0L7RgNC+0L3QuNC9LCDQk9C10L3QvdCw0LTQuNC5INCf0LXRgtGA0L7QstC40YcNCivQn9C+0L/QutC+0LLQuNGHLCDQoNC+0LzQsNC9INCh0LXQvNC10L3QvtCy0LjRhw0KK9CS0L7RgNC+0L3QuNC9LCDQrtGA0LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cf0L7Qv9C+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CS0L7RgNC+0L3RhtC+0LIsINCQ0LvQtdC60YHQtdC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0J/QvtC/0L7Qsiwg0JDQu9C10LrRgdC10Lkg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9CS0L7RgNC+0L3RhtC+0LLQsCwg0JfQvtGPINCY0LLQsNC90L7QstC90LANCivQn9C+0L/QvtCyLCDQkNGA0LrQsNC00LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CS0L7RgNC+0YLQvdC40LrQvtCyLCDQktCw0LvQtdGA0LjQuSDQn9Cw0LLQu9C+0LLQuNGHDQor0J/QvtC/0L7Qsiwg0JLQuNC60YLQvtGAINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JLRi9GD0YfQtdC50YHQutC40LksINCS0Y/Rh9C10YHQu9Cw0LIg0JDQu9C10LrRgdC10LXQstC40YcNCivQn9C+0L/QvtCyLCDQk9Cw0LLRgNC40LjQuyDQpdCw0YDQuNGC0L7QvdC+0LLQuNGHDQor0JLRj9GF0LjRgNC10LIsINCg0Y3QvCDQmNCy0LDQvdC+0LLQuNGHDQor0J/QvtC/0L7Qsiwg0KHQtdGA0LPQtdC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JPQsNCx0LjQtNGD0LvQu9C40L0sINCg0LjQvdCw0YIg0JPQuNC90LTRg9C70LvQvtCy0LjRhw0KK9Cf0L7Qv9C+0LIsINCh0LXRgNCz0LXQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQk9Cw0LHRg9C90LjRjywg0JPQtdC+0YDQs9C40Lkg0JLQsNC70LXRgNGM0LXQstC40YcNCivQn9C+0L/QvtCy0LAsINCi0LDRgtGM0Y/QvdCwINCb0YzQstC+0LLQvdCwDQor0J/QvtC/0YbQvtCyLCDQntC70LXQsyDQnNCw0LrRgdC40LzQvtCy0LjRhw0KK9CT0LDQtNC20LjQtdCyLCDQk9Cw0LTQuNGBINCQ0LHQtNGD0LvQu9Cw0LXQstC40YcNCivQn9C+0YDQvtGF0L7QstGJ0LjQutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQqNCw0LvQstC+0LLQuNGHDQor0JPQsNC10YAsINCV0LLQtNC+0LrQuNGPINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQvdCwDQor0J/QvtGC0LDQvdC40L0sINCS0LvQsNC00LjQvNC40YAg0J7Qu9C10LPQvtCy0LjRhw0KK9CT0LDQt9C10LXQsiwg0JXQstCz0LXQvdC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cf0L7RgtCw0L/QtdC90LrQviwg0JDQu9C10LrRgdCw0L3QtNGAINCk0LXQtNC+0YDQvtCy0LjRhw0KK9CT0LDQt9C40LfRg9C70LvQuNC9LCDQpNCw0YDQuNGCINCg0LDRhNC40LrQvtCy0LjRhw0KK9Cf0L7RgtCw0L/QvtCyLCDQm9C10L7QvdC40LQg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQk9Cw0LnQtNCw0YAsINCV0LPQvtGAINCi0LjQvNGD0YDQvtCy0LjRhw0KK9Cf0L7RgtCw0L/QvtCyLCDQodC10YDQs9C10Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQk9Cw0LnQtNCw0YgsINCc0LDRgNC40Y8g0JjQstCw0L3QvtCy0L3QsA0KK9Cf0L7RhdC80LXQu9C60LjQvSwg0JLQuNC60YLQvtGAINCS0LDQu9C10YDRjNC10LLQuNGHDQor0JPQsNC50YHQuNC9LCDQnNCw0LvQuNC6INCk0LDQstC30LDQstC40LXQstC40YcNCivQn9C+0YfQuNC90L7Quiwg0JDQu9C10LrRgdCw0L3QtNGAINCf0LXRgtGA0L7QstC40YcNCivQk9Cw0LvQsNCz0LDQvSwg0JTQvNC40YLRgNC40Lkg0JDQvdC00YDQtdC10LLQuNGHDQor0J/RgNC10LzRjNGP0LosINCf0LXRgtGAINCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQk9Cw0LvQsNC30LjQuSwg0JPRgNC40LPQvtGA0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0J/RgNC40LzQsNC60L7Qsiwg0JXQstCz0LXQvdC40Lkg0JzQsNC60YHQuNC80L7QstC40YcNCivQk9Cw0LvQsNC30L7Qsiwg0JDRhdGB0LDRgNCx0LXQuiDQpdCw0LTQttC40LzRg9GA0LfQsNC10LLQuNGHDQor0J/RgNC40YXQvtC00YzQutC+LCDQodC10YDQs9C10Lkg0K3QtNGD0LDRgNC00L7QstC40YcNCivQk9Cw0LvQuNC10LIsINCQ0YXQvNC10YLQs9Cw0LvQuCDQnNGD0YXQsNC80LXRgtCz0LDQu9C40LXQstC40YcNCivQn9GA0L7QutC+0L/QtdC90LrQviwg0JLQtdGA0LAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQvdCwDQor0JPQsNC80LfQsCwg0JPQtdC90L3QsNC00LjQuSDQldGE0LjQvNC+0LLQuNGHDQor0JPQsNC80LjQtNC+0LIsINCT0LDQvNC40LQg0JzRg9GB0YLQsNGE0LDQtdCy0LjRhw0KK9Cf0YDQvtGF0LDQvdC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQkNC90LTRgNC10LXQstC40YcNCivQk9Cw0L3QtdC10LIsINCc0YPQu9C70LDQvdGD0YAg0KTQsNGF0YDQsNC30LjQtdCy0LjRhw0KK9Cf0YDRg9C00L3QuNC60L7Qsiwg0JLQuNC60YLQvtGAINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JPQsNC90YLQsNC80LjRgNC+0LIsINCR0LjRgdC70LDQvSDQodCw0LnQtC3QkNC70LjQtdCy0LjRhw0KK9Cf0YDRg9GB0LDQuiwg0JzQuNGF0LDQuNC7INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JPQsNGA0LXQtdCyLCDQnNCw0YXQvNGD0YIg0JDRhdC80LXRgtC+0LLQuNGHDQor0J/Rg9C30LDQvdC+0LLRgdC60LjQuSwg0JDQtNGA0LjQsNC9INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JPQsNGO0LvRjNGB0LrQuNC5LCDQktC40LrRgtC+0YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cf0YPQu9C40LrQvtCy0YHQutC40LksINCa0L7QvdGB0YLQsNC90YLQuNC9INCR0L7RgNC40YHQvtCy0LjRhw0KK9CT0LLQvtC30LTQtdCy0LAsINCh0LLQtdGC0LvQsNC90LAg0J3QuNC60L7Qu9Cw0LXQstC90LANCivQn9GD0YLQuNC9LCDQktC70LDQtNC40LzQuNGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CT0LTQu9GP0L0sINCi0LXQu9GM0LzQsNC9INCl0L7RgNC10L3QvtCy0LjRhw0KK9Cf0YfQtdC70LrQuNC9LCDQktC70LDQtNC40LzQuNGAINCS0LjQutGC0L7RgNC+0LLQuNGHDQor0JPQtdC90LXRgNCw0LvQvtCyLCDQkNC90LTRgNC10Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cf0YvQt9C40L0sINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQk9C10L3QtdGA0LDQu9C+0LIsINCh0LXRgNCz0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQn9GL0LvRjNC90LXQsiwg0JLQuNC60YLQvtGAINCS0LjQutGC0L7RgNC+0LLQuNGHDQor0JPQtdC90LjQsNGC0YPQu9C40L0sINCg0LDQstC40LvRjCDQpNCw0YDQuNGC0L7QstC40YcNCivQn9GP0YLQvdC40YbQutC40LksINCu0YDQuNC5INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JPQtdGA0LDRgdC40LzQtdC90LrQviwg0J3QuNC60L7Qu9Cw0Lkg0KTQtdC00L7RgNC+0LLQuNGHDQor0KBv0LnRgtC80LDQvSwg0JjQu9GM0Y8g0JHQvtGA0LjRgdC+0LLQuNGHDQor0JPQtdGA0LDRgdC40LzQvtCyLCDQodC10YDQs9C10Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cg0LDQsdC00LDQvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0KDQsNCx0LTQsNC90L7QstC40YcNCivQk9C10YDQsNGJ0LXQvdC60L4sINCS0LjQutGC0L7RgCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQoNCw0LTRg9C10LIsINCh0LDQu9C80LDQvQ0KK9Cg0LDQtdCy0YHQutCw0Y8sINCd0LDRgtCw0LvQuNGPINCQ0LvQtdC60YHQtdC10LLQvdCwDQor0JPQuNC90LfQsdGD0YDQsywg0KHQvtC70L7QvNC+0L0g0JjQt9GA0LDQuNC70LXQstC40YcNCivQoNCw0LnQutC+0LIsINCT0LXQvdC90LDQtNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CT0LjRgtC40L0sINCS0LjQutGC0L7RgCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQoNCw0YXQuNC80L7Qsiwg0JzRg9GA0YLQsNC30LAg0JPRg9Cx0LDQudC00YPQu9C70L7QstC40YcNCivQk9C70LDQt9GM0LXQsiwg0KHQtdGA0LPQtdC5INCu0YDRjNC10LLQuNGHDQor0KDQsNGF0LzQsNC90LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQntC70LXQs9C+0LLQuNGHDQor0JPQu9C+0YLQvtCyLCDQodC10YDQs9C10Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQoNCw0YXQvNC+0L3QvtCyLCDQrdC80L7QvNCw0LvQuCDQqNCw0YDQuNC/0L7QstC40YcNCivQk9C70YPQsdC+0LrQvtCy0YHQutC40LksINCc0LjRhdCw0LjQuyDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0KDQtdC50LzQsNC9LCDQm9C10L7QvdC40LQg0JTQvtC00L7QtNC20L7QvdC+0LLQuNGHDQor0JPQu9GD0YXQuNGFLCDQktC40LrRgtC+0YAg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9Cg0LXRiNGD0LvRjNGB0LrQuNC5LCDQodC10YDQs9C10Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQk9C70YPRiNC10L3QutC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JXQs9C+0YDQvtCy0LjRhw0KK9Cg0LjQvNGB0LrQuNC5LCDQktC70LDQtNC40LzQuNGAINCb0YzQstC+0LLQuNGHDQor0JPQu9GD0YnQtdC90LrQviwg0JzQuNGF0LDQuNC7INCY0LLQsNC90L7QstC40YcNCivQoNC+0LPQvtC30LjQvSwg0JTQvNC40YLRgNC40Lkg0J7Qu9C10LPQvtCy0LjRhw0KK9CT0L7QstC+0YDQuNC9LCDQkdC+0YDQuNGBINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KDQvtC00LjQvtC90L7Qsiwg0JjQs9C+0YDRjCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CT0L7QstC+0YDRg9GF0LjQvSwg0KHRgtCw0L3QuNGB0LvQsNCyINCh0LXRgNCz0LXQtdCy0LjRhw0KK9Cg0L7QtNC40L7QvdC+0LIsINCf0LXRgtGAINCY0LLQsNC90L7QstC40YcNCivQk9C+0LvQtdC80LHQuNC+0LLRgdC60LjQuSwg0JjQs9C+0YDRjCDQndC10YHRgtC+0YDQvtCy0LjRhw0KK9Cg0L7QtNC40L7QvdC+0LIsINCh0LXRgNCz0LXQuSDQodC10YDQs9C10LXQstC40YcNCivQk9C+0LvQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQoNC+0LbQutC+0LIsINCS0LjQutGC0L7RgCDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9CT0L7Qu9C+0LLQutC+0LIsINCQ0LvQtdC60YHQtdC5INCb0LXQvtC90LDRgNC00L7QstC40YcNCivQoNC+0LrQtdGG0LrQuNC5LCDQm9C10L7QvdC40LQg0K7Qu9C40LDQvdC+0LLQuNGHDQor0JPQvtC70L7QstC70LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQmNCy0LDQvdC+0LLQuNGHDQor0KDQvtC80LDQvdC+0LIsINCS0LDQu9C10L3RgtC40L0g0KHRgtC10L/QsNC90L7QstC40YcNCivQk9C+0LzQsNC9LCDQktC70LDQtNC40LzQuNGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cg0L7QvNCw0L3QvtCyLCDQn9C10YLRgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CT0L7QvdC20LDRgNC+0LIsINCe0LvQtdCzINCf0LDQstC70L7QstC40YcNCivQoNC+0LzQsNC90L7QstGB0LrQuNC5LCDQnNC40YXQsNC40Lsg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQk9C+0L3Rh9Cw0YAsINCd0LjQutC+0LvQsNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KDQvtC80LDRiNC60LjQvSwg0JLQuNC60YLQvtGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0JPQvtGA0LHQsNGH0LXQsiwg0JzQuNGF0LDQuNC7INCh0LXRgNCz0LXQtdCy0LjRhw0KK9Cg0L7RgdGB0LXQu9GMLCDQrdC00YPQsNGA0LQg0K3RgNCz0LDRgNGC0L7QstC40YcNCivQk9C+0YDQsdCw0YfQtdCy0LAsINCg0LDQuNGB0LAg0JzQsNC60YHQuNC80L7QstC90LANCivQoNC+0YXQu9C40L0sINCb0LXQsiDQr9C60L7QstC70LXQstC40YcNCivQk9C+0YDQtNC10LXQsiwg0JDQu9C10LrRgdC10Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQoNC+0YnQuNC90LAsINCi0LDRgtGM0Y/QvdCwINCd0LjQutC+0LvQsNC10LLQvdCwDQor0JPQvtGA0LTQtdC10LIsINCQ0L3QsNGC0L7Qu9C40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQoNGD0LPQsCwg0JLQu9Cw0LTQuNC80LjRgCDQrdC00YPQsNGA0LTQvtCy0LjRhw0KK9CT0L7RgNC70L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCS0LjQutGC0L7RgNC+0LLQuNGHDQor0KDRg9C00LrQuNC9LCDQrtGA0LjQuSDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9CT0L7RgNGI0LrQvtCyLCDQnNC40YXQsNC40Lsg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9Cg0YPQtNC90L7Qsiwg0J7Qu9C10LMg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9CT0L7RgNGO0L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCU0LzQuNGC0YDQuNC10LLQuNGHDQor0KDRg9C80Y/QvdGG0LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCu0YDRjNC10LLQuNGHDQor0JPQvtGA0Y7QvdC+0LIsINCV0LLQs9C10L3QuNC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cg0YPQvNGP0L3RhtC10LIsINCe0LvQtdCzINCT0LXRgNC80LDQvdC+0LLQuNGHDQor0JPQvtGA0Y/Rh9C10LIsINCS0LDQu9C10YDQuNC5INCh0LXRgNCz0LXQtdCy0LjRhw0KK9CT0L7RgNGP0YfQtdCyLCDQnNCw0YDQuiDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Cg0YPRgtC60L7QstGB0LrQuNC5LCDQntC70LXQsyDQktGB0LXQstC+0LvQvtC00L7QstC40YcNCivQk9C+0YDRj9GH0LXQsiwg0K7RgNC40Lkg0KTRgNC+0LvQvtCy0LjRhw0KK9Cg0YPRhtC60L7QuSwg0JDQu9C10LrRgdCw0L3QtNGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CT0L7RgNGP0YfQtdCy0LAsINCh0LLQtdGC0LvQsNC90LAg0J/QtdGC0YDQvtCy0L3QsA0KK9Cg0YPRiNCw0LnQu9C+LCDQktC70LDQtNC40LzQuNGAINCR0L7RgNC40YHQvtCy0LjRhw0KK9CT0L7RgdGC0LXQsiwg0KDRg9GB0LvQsNC9INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0KDRi9Cx0LDQutC+0LIsINCu0LvQuNC5INCQ0L3QtNGA0LXQtdCy0LjRhw0KK9Cg0YvQsdC60LjQvSwg0JjQstCw0L0g0J/QtdGC0YDQvtCy0LjRhw0KK9CT0YDQsNGH0LXQsiwg0J/QsNCy0LXQuyDQodC10YDQs9C10LXQstC40YcNCivQoNGL0LPQsNC70L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0L3QtNGA0LXQtdCy0LjRhw0KK9CT0YDQtdCx0LXQvdC90LjQutC+0LIsINCS0LDQu9C10YDQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0KDRi9C20LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KDRi9C20LrQvtCyLCDQndC40LrQvtC70LDQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JPRgNC10YjQvdC10LLQuNC60L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cg0Y7RgNC40LrQvtCyLCDQlNC80LjRgtGA0LjQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQk9GA0LjQs9C+0YDQuNCw0LTQuCwg0JLQu9Cw0LTQuNC80LjRgCDQodGC0LjQu9C70LjQsNC90L7QstC40YcNCivQoNGP0LHQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9CT0YDQuNCz0L7RgNGM0LXQsiwg0JLQsNC70LXRgNC40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQoNGP0LHQvtCyLCDQndC40LrQvtC70LDQuSDQotC40LzQvtGE0LXQtdCy0LjRhw0KK9CT0YDQuNCz0L7RgNGM0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQpNC10LTQvtGA0L7QstC40YcNCivQk9GA0LjRiNC40L0sINCS0LDRgdC40LvQuNC5INCU0LzQuNGC0YDQuNC10LLQuNGHDQor0KDRj9Cx0YPRhdC40L0sINCh0LXRgNCz0LXQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CT0YDQuNGI0LrQtdCy0LjRhywg0J7Qu9C10LMg0J/QtdGC0YDQvtCy0LjRhw0KK9Ch0LDQsdC40YDQvtCyLCDQnNCw0YDQsNGCINCl0LDQvNC30LjQvdC+0LLQuNGHDQor0JPRgNC40YjRg9C60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQktC40YLQsNC70YzQtdCy0LjRhw0KK9Ch0LDQstC10LvRjNC10LIsINCQ0LvQtdC60YHQsNC90LTRgCDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9Ch0LDQstC10LvRjNC10LIsINCa0L7QvdGB0YLQsNC90YLQuNC9INCh0LXRgNCz0LXQtdCy0LjRhw0KK9CT0YDQvtC80L7Qsiwg0JHQvtGA0LjRgSDQktGB0LXQstC+0LvQvtC00L7QstC40YcNCivQodCw0LLQtdC70YzQtdCyLCDQndC40LrQvtC70LDQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CT0YDQvtC80L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQn9Cw0LLQu9C+0LLQuNGHDQor0JPRgNC+0LzQvtCyLCDQpNC10LvQuNC60YEg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQodCw0LLQuNC90YvRhSwg0JLQuNC60YLQvtGAINCf0LXRgtGA0L7QstC40YcNCivQk9GA0L7RiNC10LIsINCS0LvQsNC00LjQvNC40YAg0J/QsNCy0LvQvtCy0LjRhw0KK9Ch0LDQstC40YbQutCw0Y8sINCh0LLQtdGC0LvQsNC90LAg0JXQstCz0LXQvdGM0LXQstC90LANCivQk9GA0YPRidCw0LosINCh0LXRgNCz0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQodCw0LLQuNGG0LrQuNC5LCDQktC40YLQsNC70LjQuSDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9Ch0LDQstC40YbQutC40LksINCe0LvQtdCzINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CT0YPQsdC10L3QutC+LCDQndC40LrQvtC70LDQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ch0LDQstGH0LXQvdC60L4sINCV0LLQs9C10L3QuNC5INCh0YLQtdC/0LDQvdC+0LLQuNGHDQor0JPRg9Cx0LrQuNC9LCDQmNCz0L7RgNGMINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ch0LDQstGH0LXQvdC60L4sINCe0LvQtdCzINCS0LjRgtCw0LvRjNC10LLQuNGHDQor0JPRg9C00LjQvNCwLCDQotCw0LzQsNGA0LAg0JzQuNGF0LDQudC70L7QstC90LANCivQodCw0LLRh9GD0LosINCS0LXRgNCwINCh0LXQvNC10L3QvtCy0L3QsA0KK9CT0YPQttCy0LjQvSwg0JDQvdCw0YLQvtC70LjQuSDQn9C10YLRgNC+0LLQuNGHDQor0KHQsNCz0LDQu9Cw0LXQsiwg0K3QtNGD0LDRgNC0INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JPRg9GA0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LLQsNC90L7QstC40YcNCivQodCw0LTRh9C40LrQvtCyLCDQk9C10L7RgNCz0LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9CT0YPRgdCw0YDQvtCy0LAsINCT0LDQu9C40L3QsCDQmNCy0LDQvdC+0LLQvdCwDQor0KHQsNC10YLQs9Cw0LvQuNC10LIsINCX0LjRhNC60LDRgiDQmNGB0LvQsNC80L7QstC40YcNCivQk9GD0YHQtdCyLCDQktC70LDQtNC40LzQuNGAINCa0YPQt9GM0LzQuNGHDQor0KHQsNC20LjQvdC+0LIsINCf0LDQstC10Lsg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQk9GD0YHQtdCyLCDQn9Cw0LLQtdC7INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KHQsNC50YTRg9C70LvQuNC9LCDQkNC70YzQt9Cw0Lwg0KLRg9GF0LLQsNGC0YPQu9C70LjQvdC+0LLQuNGHDQor0JPRg9GB0LjQvdGB0LrQuNC5LCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KHQsNC50YTRg9C70LvQuNC9LCDQmNC90YHQsNGEINCo0LDRgNC40YTRg9C70LvQvtCy0LjRhw0KK9CT0YPRgdC80LDQvSwg0K7Qu9C40Lkg0KHQvtC70L7QvNC+0L3QvtCy0LjRhw0KK9Ch0LDQu9C40LksINCQ0LvQtdC60YHQsNC90LTRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JPRg9GB0YLQvtCyLCDQktCw0LTQuNC8INCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQodCw0LvQvtCyLCDQldCy0LPQtdC90LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JPRg9GB0YzQutC+0LIsINCu0YDQuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KHQsNC70YfQsNC6LCDQk9Cw0LvQuNC90LAg0JDQu9C10LrRgdC10LXQstC90LANCivQk9GD0YbQtdGA0LjQtdCyLCDQnNC40YXQsNC40Lsg0KHQsNGE0LDRgNCx0LXQutC+0LLQuNGHDQor0KHQsNC70YzQtSwg0JzQsNGA0LjQvdCwINCV0LLQs9C10L3RjNC10LLQvdCwDQor0JTQsNCy0LjQtNC10L3QutC+LCDQktC70LDQtNC40LzQuNGAINCY0LLQsNC90L7QstC40YcNCivQodCw0LvRjNC90LjQutC+0LIsINCS0LjQutGC0L7RgCDQmNCy0LDQvdC+0LLQuNGHDQor0JTQsNCy0LjRgtCw0YjQstC40LvQuCwg0JXQstCz0LXQvdC40Y8g0K7QstCw0YjQtdCy0L3QsCAo0JTQttGD0L3QsCkNCivQodCw0L3QtNC70LXRgCwg0JzQsNGA0LPQsNGA0LjRgtCwINCg0LXQstC80LjRgNC+0LLQvdCwDQor0JTQsNCy0YvQtNC60LjQvSwg0JLQuNC60YLQvtGAINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0KHQsNC/0LjRgNC+LCDQldCy0LPQtdC90LjQuSDQodCw0YPQu9C+0LLQuNGHDQor0JTQsNCy0YvQtNC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQodC10LzQtdC90L7QstC40YcNCivQodCw0L/QvtC20L3QuNC60L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CU0LDQstGL0LTQvtCyLCDQkNC90LTRgNC10Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQodCw0YLQsNGA0L7Qsiwg0JPQtdC+0YDQs9C40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQlNCw0LLRi9C00L7Qsiwg0JLQuNC60YLQvtGAINCk0LXQtNC+0YDQvtCy0LjRhw0KK9Ch0LDRhNCw0YDQvtCyLCDQoNCw0LTQttCw0LEg0KHQsNGC0YLQsNGA0L7QstC40YcNCivQlNCw0LLRi9C00L7Qsiwg0JLRgdC10LLQvtC70L7QtCDQk9C10L3QvdCw0LTRjNC10LLQuNGHDQor0KHQsNGE0YDQvtC90L7Qsiwg0JLQuNGC0LDQu9C40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQlNCw0LLRi9C00L7Qsiwg0J7Qu9C10LMg0JTQvNC40YLRgNC40LXQstC40YcNCivQodCw0YXQsNGA0LrQvtCyLCDQrtGA0LjQuSDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9CU0LDQstGL0LTQvtCyLCDQodC10YDQs9C10Lkg0JLRj9GH0LXRgdC70LDQstC+0LLQuNGHDQor0KHQstC10YfQvdC40LrQvtCyLCDQn9C10YLRgCDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JTQsNC70YzRgdC60LjQuSwg0J3QuNC60L7Qu9Cw0Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQodCy0LjQvdC40L0sINCh0LXRgNCz0LXQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CU0LDQvdC40LvQtdC90LrQviwg0KHQtdGA0LPQtdC5INCQ0L3QtNGA0LXQtdCy0LjRhw0KK9Ch0LXQstCw0YHRgtGM0Y/QvdC+0LIsINCS0LjRgtCw0LvQuNC5INCY0LLQsNC90L7QstC40YcNCivQlNCw0L3QuNC70L7Qsiwg0K7RgNC40Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQodC10LLQtdC90LDRgNC0LCDQmtC+0L3RgdGC0LDQvdGC0LjQvSDQrtGA0YzQtdCy0LjRhw0KK9CU0LDQvdC40LvQvtCy0LAsINCd0LjQvdCwINCf0LXRgtGA0L7QstC90LANCivQodC10LLQtdC90LDRgNC0LCDQrtGA0LjQuSDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0JTQsNC90YfQtdC90LrQviwg0JHQvtGA0LjRgSDQmNCy0LDQvdC+0LLQuNGHDQor0KHQtdCy0YDRjtCz0LjQvSwg0J3QuNC60L7Qu9Cw0Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQodC10LvQtdC30L3QtdCyLCDQk9C10L3QvdCw0LTQuNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JTQtdC50L3QtdC60LjQvSwg0J/QtdGC0YAg0KHRgtC10L/QsNC90L7QstC40YcNCivQodC10LvQtdC30L3QtdCyLCDQndC40LrQvtC70LDQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CU0LXQvNC10L3RgtGM0LXQstCwLCDQndCw0YLQsNC70YzRjyDQm9C10L7QvdC40LTQvtCy0L3QsA0KK9Ch0LXQu9C40LLQsNC90L7Qsiwg0JDQvdC00YDQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CU0LXQvNC40LTQvtCyLCDQmNCy0LDQvSDQmNCy0LDQvdC+0LLQuNGHDQor0KHQtdC70LjQstC10YDRgdGC0L7Qsiwg0K7RgNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Ch0LXQvNCw0LPQviwg0JLQu9Cw0LTQuNC80LjRgCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQlNC10L3QuNGB0LXQvdC60L4sINCR0Y3Qu9C70LAg0JDQvdCw0YLQvtC70YzQtdCy0L3QsA0KK9Ch0LXQvNC10L3QvtCyLCDQktC40LrRgtC+0YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQlNC10L3QuNGB0L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQmtGD0LfRjNC80LjRhw0KK9Ch0LXQvNC10L3QvtCyLCDQnNC40YXQsNC40Lsg0JjQvdC90L7QutC10L3RgtGM0LXQstC40YcNCivQlNC10YDQtdCy0Y/QvdC60L4sINCS0LjQutGC0L7RgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ch0LXQvNC10L3QvtCyLCDQodC10YDQs9C10Lkg0KHQtdGA0LPQtdC10LLQuNGHDQor0JTQtdGA0LjQv9Cw0YHQutCwLCDQntC70LXQsyDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQodC10LzQtdC90L7Qsiwg0K7RgNC40Lkg0J/QsNCy0LvQvtCy0LjRhw0KK9CU0LXRgNGO0LPQuNC9LCDQrtGA0LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0KHQtdC80LXRgNCz0LXQuSwg0JvQtdC+0L3QuNC0INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JTQtdGA0Y/QsdC40L0sINCu0YDQuNC5INCh0YLQtdC/0LDQvdC+0LLQuNGHDQor0KHQtdC90LjQvSwg0JPRgNC40LPQvtGA0LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CU0LXRgdGP0YLQvdC40LrQvtCyLCDQktCw0YHQuNC70LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Ch0LXRgNCz0LXQtdCyLCDQmNCz0L7RgNGMINCU0LzQuNGC0YDQuNC10LLQuNGHDQor0KHQtdGA0LPQtdC10L3QutC+0LIsINCS0LvQsNC00LjQvNC40YAg0J3QuNC70L7QstC40YcNCivQlNC20LDQvdC40LHQtdC60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ch0LXRgNCz0LjQtdC90LrQviwg0JLQsNC70LXRgNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CU0LbQsNGA0LjQvNC+0LIsINCQ0YHQu9Cw0L0g0JDQu9C40LXQstC40YcNCivQodC10YDQvtCyLCDQktCw0LvQtdGA0LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ch0LXRgdC70LDQstC40L3RgdC60LjQuSwg0JzQuNGF0LDQuNC7INCS0LDQtNC40LzQvtCy0LjRhw0KK9CU0LfQsNGB0L7RhdC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQodC10YDQs9C10LXQstC40YcNCivQodC40LLQsNC6LCDQkNC90LDRgtC+0LvQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JTQvNC40YLRgNC40LXQstCwLCDQntC60YHQsNC90LAg0JPQtdC90YDQuNGF0L7QstC90LANCivQodC40LPQsNGA0LXQsiwg0KHQtdGA0LPQtdC5INCk0LXQtNC+0YDQvtCy0LjRhw0KK9CU0LzQuNGC0YDQuNC10LLQsCwg0KLQsNGC0YzRj9C90LAg0JHQvtGA0LjRgdC+0LLQvdCwDQor0KHQuNC00L7RgNC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0KHRgtC10L/QsNC90L7QstC40YcNCivQlNC+0LvQs9C+0LvQsNC/0YLQtdCyLCDQkNC90LDRgtC+0LvQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0KHQuNC00L7RgNC+0LIsINCV0LLQs9C10L3QuNC5INCu0YDRjNC10LLQuNGHDQor0KHQuNC00L7RgNC+0LIsINCc0LjRhdCw0LjQuyDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9CU0L7QvdC00YPQutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ch0LjQvNC+0L3QvtCyLCDQkNC70LXQutGB0LXQuSDQmtC40YDQuNC70LvQvtCy0LjRhw0KK9CU0L7RgNC10L3QutC+LCDQodC10YDQs9C10Lkg0JvQtdC+0L3QuNC00L7QstC40YcNCivQodC40LzQvtC90L7Qsiwg0JLQsNC70LXRgNC40Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9CU0YDQsNGH0LXQstGB0LrQuNC5LCDQm9C10L7QvdC40LQg0JLQsNC00LjQvNC+0LLQuNGHDQor0KHQuNC80L7QvdC+0LIsINCc0LjRhdCw0LjQuyDQn9C10YLRgNC+0LLQuNGHDQor0JTRg9Cx0LXQvdC10YbQutC40LksINCv0LrQvtCyINCd0LjQutC+0LvQsNC10LLQuNGHDQor0KHQuNGA0L7RgtC60LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9CU0YPQsdC40L3QuNC9LCDQodC10YDQs9C10Lkg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9Ch0LjRgtC90LjQutC+0LIsINCQ0LvQtdC60YHQtdC5INCf0LXRgtGA0L7QstC40YcNCivQlNGD0LHRgNC+0LLQuNC90LAsINCV0LvQtdC90LAg0J/QsNCy0LvQvtCy0L3QsA0KK9Ch0LrQstC+0YDRhtC+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQlNGD0YDRj9Cz0LjQvSwg0JjQstCw0L0g0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQodC60LLQvtGA0YbQvtCyLCDQodC10YDQs9C10Lkg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JTRg9GI0LXQvdC+0LIsINCa0L7QvdGB0YLQsNC90YLQuNC9INCu0YDRjNC10LLQuNGHDQor0KHQutC70Y/RgNC+0LIsINCY0LLQsNC9INCf0LXRgtGA0L7QstC40YcNCivQlNGM0Y/Rh9C10L3QutC+LCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0KHQutC+0LrQvtCyLCDQrtGA0LjQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQlNGM0Y/Rh9C10L3QutC+LCDQotCw0YLRjNGP0L3QsCDQkdC+0YDQuNGB0L7QstC90LANCivQodC60YPRgNCw0YLQvtCyLCDQrtGA0LjQuSDQmNC70YzQuNGHDQor0JXQstGB0YLQsNGE0YzQtdCyLCDQkNGA0LrQsNC00LjQuSDQktGP0YfQtdGB0LvQsNCy0L7QstC40YcNCivQodC60YPRgNC40YXQuNC9LCDQodC10YDQs9C10Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQodC60YPRgNC70LDRgtC+0LIsINCS0LDQu9C10YDQuNC5INCY0LLQsNC90L7QstC40YcNCivQldCz0L7RgNC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQmtC40YDRjNGP0L3QvtCy0LjRhw0KK9Ch0LvQsNCy0L3Ri9C5LCDQktCw0YHQuNC70LjQuSDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9CV0LPQvtGA0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0KHQu9C40LLQsCwg0JDQvdCw0YLQvtC70LjQuSDQr9C60L7QstC70LXQstC40YcNCivQldCz0L7RgNC+0LIsINCc0LjRhdCw0LjQuyDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQuNGHDQor0KHQu9C40YHQutCwLCDQm9GO0LHQvtCy0Ywg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0L3QsA0KK9CV0LPQvtGA0L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JTQvNC40YLRgNC40LXQstC40YcNCivQodC80LXRgtCw0L3QutC40L0sINCV0LLQs9C10L3QuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JXQs9C+0YDQvtCyLCDQodC10YDQs9C10Lkg0JXRhNC40LzQvtCy0LjRhw0KK9Ch0LzQuNGA0L3QvtCyLCDQkNC90LDRgtC+0LvQuNC5INCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQldC70LDQs9C40L0sINCS0LvQsNC00LjQvNC40YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQodC80LjRgNC90L7Qsiwg0JLQsNC70LXRgNC40Lkg0JzQsNGA0LrRgdC+0LLQuNGHDQor0JXQu9C40YHQtdC10LIsINCQ0LvQtdC60YHQsNC90LTRgCDQmNCz0L7RgNC10LLQuNGHDQor0KHQvNC40YDQvdC+0LIsINCV0LLQs9C10L3QuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JXQu9GH0LXQsiwg0JLQuNC60YLQvtGAINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0KHQvNC40YDQvdC+0LIsINCc0LjRhdCw0LjQuyDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQldC70YzRhtC40L0sINCR0L7RgNC40YEg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQodC80L7Qu9C10L3RgdC60LjQuSwg0JDQu9C10LrRgdCw0L3QtNGAINCf0LDQstC70L7QstC40YcNCivQldC80LXQu9GM0Y/QvdC+0LIsINCQ0LvQtdC60YHQtdC5INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KHQvNC+0LvQuNC9LCDQntC70LXQsyDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CV0LzQtdC70YzRj9C90L7Qsiwg0JzQuNGF0LDQuNC7INCS0LDRgdC40LvRjNC10LLQuNGHDQor0KHQvNC+0LvRj9C60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CV0L3RjNC60L7Qsiwg0KHQtdGA0LPQtdC5INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0KHQvtCx0LDQutC40L0sINCV0LLQs9C10L3QuNC5INCu0YDRjNC10LLQuNGHDQor0KHQvtCx0L7Qu9C10LIsINCQ0L3QsNGC0L7Qu9C40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQldGA0LzQsNGH0LXQvdC60L4sINCh0YLQsNC90LjRgdC70LDQsiDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ch0L7QsdGH0LDQuiwg0JDQvdCw0YLQvtC70LjQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CV0YDQvNC40YjQuNC9LCDQkNC70LXQutGB0LDQvdC00YAg0JLQuNC60YLQvtGA0L7QstC40YcNCivQodC+0LHRj9C90LjQvSwg0KHQtdGA0LPQtdC5INCh0LXQvNC10L3QvtCy0LjRhw0KK9CV0YTQuNC80L7Qsiwg0JLQuNGC0LDQu9C40Lkg0JHQvtGA0LjRgdC+0LLQuNGHDQor0KHQvtC60L7Quywg0KHQstGP0YLQvtGB0LvQsNCyINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JXRhNGA0LXQvNC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JDQvdGC0L7QvdC+0LLQuNGHDQor0KHQvtC60L7Qu9C+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQodC10YDQs9C10LXQstC40YcNCivQltCw0LHQvtC10LIsINCc0LDRhdC80YPQtCDQndCw0LTQuNGA0L7QstC40YcNCivQodC+0LrQvtC70L7Qsiwg0JDQvdC00YDQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9CW0LDQvNGB0YPQtdCyLCDQkdCw0LjRgCDQkdCw0Y/RgdGF0LDQu9Cw0L3QvtCy0LjRhw0KK9Ch0L7QutC+0LvQvtCyLCDQktGP0YfQtdGB0LvQsNCyINCa0L7QvdGB0YLQsNC90YLQuNC90L7QstC40YcNCivQltC00LDQutCw0LXQsiwg0JjQstCw0L0g0JDQvdC00YDQtdC10LLQuNGHDQor0KHQvtC60YPRgCwg0JTQvNC40YLRgNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Ch0L7Qu9C+0LLRjNC10LIsINCQ0L3QsNGC0L7Qu9C40Lkg0K/QutC+0LLQu9C10LLQuNGHDQor0JbQtdCx0YDQvtCy0YHQutC40LksINCh0YLQsNC90LjRgdC70LDQsiDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ch0L7Qu9C+0LLRjNC10LIsINCS0LDQtNC40Lwg0J/QsNCy0LvQvtCy0LjRhw0KK9CW0LjQvNC40YDQvtCyLCDQktCw0LTQuNC8INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KHQvtC70L7QstGM0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQltC40YDQuNC90L7QstGB0LrQuNC5LCDQktC70LDQtNC40LzQuNGAINCS0L7Qu9GM0YTQvtCy0LjRhw0KK9Ch0L7Qu9C+0LzQsNGC0LjQvSwg0JDQvdCw0YLQvtC70LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9CW0YPQutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Ch0L7Qu9C+0LzQsNGC0LjQvSwg0JXQs9C+0YAg0K7RgNGM0LXQstC40YcNCivQltGD0LrQvtCy0LAsINCd0LXQu9C70Y8g0J3QuNC60L7Qu9Cw0LXQstC90LANCivQodC+0LvQvtC90L3QuNC60L7Qsiwg0JTQvNC40YLRgNC40Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JbRg9C60L7QstGB0LrQuNC5LCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ch0L7Qu9GC0LDQs9Cw0L3QvtCyLCDQktGP0YfQtdGB0LvQsNCyINCk0LXQtNC+0YDQvtCy0LjRhw0KK9CW0YPRgNCx0LXQvdC60L4sINCS0LvQsNC00LjQvNC40YAg0JzQuNGF0LDQudC70L7QstC40YcNCivQodC+0LvRg9GP0L3QvtCyLCDQkNC90LTRgNC10Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JbRg9GA0LrQviwg0JLQsNGB0LjQu9C40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQodC+0YDQvtC60LjQvdCwLCDQldC70LXQvdCwINCh0YLQsNC90LjRgdC70LDQstC+0LLQvdCwDQor0JfQsNCx0LXQudCy0L7RgNC+0YLQsCwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LLQsNC90L7QstC40YcNCivQodC+0YHQutC+0LLQtdGGLCDQntC70LXQsyDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CX0LDQstCz0LDQtdCyLCDQlNC+0LrRgyDQk9Cw0L/Rg9GA0L7QstC40YcNCivQodC+0YXQvtCyLCDQktC70LDQtNC40LzQuNGAINCa0LDQt9Cx0YPQu9Cw0YLQvtCy0LjRhw0KK9CX0LDQstC10YDRjtGF0LAsINCQ0LvQtdC60YHQsNC90LTRgCDQpdCw0YDQu9Cw0LzQv9C40LXQstC40YcNCivQodC/0LjRgNC40LTQvtC90L7Qsiwg0K7RgNC40Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQl9Cw0LLQuNC00LjRjywg0JDQvdC00YDQtdC5INCk0LXQtNC+0YDQvtCy0LjRhw0KK9Ch0YLQsNC90LrQtdCy0LjRhywg0KHQtdGA0LPQtdC5INCR0L7RgNC40YHQvtCy0LjRhw0KK9CX0LDQtNC+0YDQuNC9LCDQmNCz0L7RgNGMINCS0LXQvdC40LDQvNC40L3QvtCy0LjRhw0KK9Ch0YLQsNC90LrQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JfQsNC00L7RgNC90L7Qsiwg0JzQuNGF0LDQuNC7INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KHRgtCw0YDQutC+0LIsINCS0LvQsNC00LjRgdC70LDQsiDQkNC90LTRgNC10LXQstC40YcNCivQl9Cw0LnRhtC10LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQodGC0LDRgNC+0LLQvtC50YLQvtCy0LAsINCT0LDQu9C40L3QsCDQktCw0YHQuNC70YzQtdCy0L3QsA0KK9CX0LDQu9GL0LPQuNC9LCDQodC10YDQs9C10Lkg0J/QsNCy0LvQvtCy0LjRhw0KK9Ch0YLQsNGA0L7QtNGD0LHQvtCyLCDQktC70LDQtNC40LzQuNGAINCY0LLQsNC90L7QstC40YcNCivQl9Cw0YDQuNGH0LDQvdGB0LrQuNC5LCDQodGC0LDQvdC40YHQu9Cw0LIg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9Ch0YLQsNGA0L7QtNGD0LHRhtC10LIsINCS0LDRgdC40LvQuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JfQsNGB0LvQsNCy0YHQutCw0Y8sINCi0LDRgtGM0Y/QvdCwINCY0LLQsNC90L7QstC90LANCivQodGC0LDRgNC+0YHRgtC10L3QutC+LCDQktC70LDQtNC40LzQuNGAINCY0LLQsNC90L7QstC40YcNCivQl9Cw0YHRgtGA0L7QttC90LDRjywg0J7Qu9GM0LPQsCDQmtC40YDQuNC70LvQvtCy0L3QsA0KK9Ch0YLQtdC/0LDQvdC60L7Qsiwg0JLQsNC70LXQvdGC0LjQvSDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9CX0LDRgtGD0LvQuNC9LCDQmtC+0L3RgdGC0LDQvdGC0LjQvSDQpNC10LTQvtGA0L7QstC40YcNCivQodGC0LXQv9Cw0L3QvtCyLCDQkNC90LTRgNC10Lkg0JPQtdC+0YDQs9C40LXQstC40YcNCivQl9Cw0YXQsNGA0L7Qsiwg0JDQu9C10LrRgdC10Lkg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9Ch0YLQtdC/0LDQvdC+0LIsINCS0LjQutGC0L7RgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CX0LDRhtC10L/QuNC90LAsINCd0LjQvdCwINCQ0L3QtNGA0LXQtdCy0L3QsA0KK9Ch0YLQtdC/0LDQvdC+0LIsINCS0LjQutGC0L7RgCDQpNC10LTQvtGA0L7QstC40YcNCivQl9Cy0L7Qu9C40L3RgdC60LjQuSwg0JLRj9GH0LXRgdC70LDQsiDQn9C10YLRgNC+0LLQuNGHDQor0KHRgtC10L/QsNC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9CX0LXQu9C10L3QuNC9LCDQktC70LDQtNC40LzQuNGAINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KHRgtC10L/QsNC90L7Qsiwg0JXQstCz0LXQvdC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9CX0LXQu9C10L3QutC40L0sINCS0LjQutGC0L7RgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ch0YLQtdC/0LDQvdC+0LIsINCh0LXRgNCz0LXQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQl9C10LvQtdC90LrQuNC9LCDQktC40YLQsNC70LjQuSDQkNGE0LDQvdCw0YHRjNC10LLQuNGHDQor0KHRgtC10L/QsNC90L7Qsiwg0KLQtdC50LzRg9GA0LDQtyDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9CX0LXQu9C10L3QvtCyLCDQldCy0LPQtdC90LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Ch0YLQtdC/0LDRiNC40L0sINCh0LXRgNCz0LXQuSDQktCw0LTQuNC80L7QstC40YcNCivQl9C10LvQtdC90YIsINCY0LLQsNC9INCX0LjQs9C80YPQvdC00L7QstC40YcNCivQodGC0LXRgNC70LjQs9C+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9CX0LXRgNC10L3QutC+0LIsINCS0LDQu9C10YDQuNC5INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0KHRgtC+0LvRj9GA0L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0KHQtdGA0LPQtdC10LLQuNGHDQor0JfQu9C+0LHQuNC9LCDQktC70LDQtNC40LzQuNGAINCS0LXQvdC40LDQvNC40L3QvtCy0LjRhw0KK9Ch0YLQvtC70Y/RgNC+0LLQsCwg0J3QsNGB0LjQvNCwINCa0LDQu9C40LzQvtCy0L3QsA0KK9CX0LvQvtCx0LjQvdCwLCDQm9Cw0YDQuNGB0LAg0JDRhNCw0L3QsNGB0YzQtdCy0L3QsA0KK9Ch0YLRgNCw0YXQvtCyLCDQkNC70LXQutGB0LXQuSDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9CX0LvQvtGC0L3QuNC60L7QstCwLCDQotCw0LzQsNGA0LAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQvdCwDQor0KHRgtGA0LXQutC+0LfQvtCyLCDQktC70LDQtNC40LzQuNGAINCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JfQvtC70L7RgtCw0YDQtdCyLCDQktC40LrRgtC+0YAg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JfQvtC70L7RgtCw0YDQtdCyLCDQktC70LDQtNC40LzQuNGAINCQ0L3RgtC+0L3QvtCy0LjRhw0KK9Ch0YPQstC+0YDQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0KHQtdGA0LPQtdC10LLQuNGHDQor0JfQvtGA0LrQsNC70YzRhtC10LIsINCS0LjQutGC0L7RgCDQmNC70YzQuNGHDQor0KHRg9C00LDQutC+0LIsINCT0YPRgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQl9C+0YDRjNC60LjQvSwg0JLQsNC70LXRgNC40Lkg0JTQvNC40YLRgNC40LXQstC40YcNCivQodGD0LTQsNGA0LXQvdC60L7Qsiwg0JLQsNC70LXRgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQl9C+0YLQuNC60L7Qsiwg0JDQu9C10LrRgdC10Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQodGD0LvQsNC60YjQuNC9LCDQodGC0LXQv9Cw0L0g0KHRgtC10L/QsNC90L7QstC40YcNCivQl9C+0YLQuNC9LCDQktC70LDQtNC40YHQu9Cw0LIg0JzQsNC60YHQuNC80L7QstC40YcNCivQodGD0LvQtdC50LzQtdC90L7Qsiwg0JjQsdGA0LDQs9C40Lwg0JDQsdC00YPRgNCw0YXQvNCw0L3QvtCy0LjRhw0KK9Ch0YPQu9GC0LDQvdC+0LIsINCg0LjQvdCw0YIg0JjRiNCx0YPQu9C00L7QstC40YcNCivQl9GD0LHQvtCyLCDQktCw0LvQtdGA0LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ch0YPRgNCz0LDQvdC+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0KHQtdGA0LPQtdC10LLQuNGHDQor0JfRi9GA0Y/QvdC+0LIsINCh0LXRgNCz0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQodGD0YDQuNC60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JfRjtCz0LDQvdC+0LIsINCT0LXQvdC90LDQtNC40Lkg0JDQvdC00YDQtdC10LLQuNGHDQor0KHRg9GA0LrQvtCyLCDQnNC40YXQsNC40Lsg0KHQtdC80LXQvdC+0LLQuNGHDQor0JfRj9Cx0LvQuNGG0LXQsiwg0JXQstCz0LXQvdC40Lkg0JPQtdC90L3QsNC00YzQtdCy0LjRhw0KK9Ch0YPRgNC+0LIsINCf0LXRgtGAINCh0LXRgNCz0LXQtdCy0LjRhw0KK9CY0LLQsNC90LXQvdC60L4sINCh0LXRgNCz0LXQuSDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9Ch0YvRgdGD0LXQsiwg0J7Qu9C10LMg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmNCy0LDQvdC60L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQmNCy0LDQvdC+0LLQuNGHDQor0KHRi9GH0LXQsiwg0JDQvdCw0YLQvtC70LjQuSDQn9Cw0LLQu9C+0LLQuNGHDQor0JjQstCw0L3QvtCyLCDQktCw0YHQuNC70LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ch0YvRh9C10LIsINCh0LXRgNCz0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQotCw0L3QsNC10LIsINCa0LjRgNC40LvQuyDQktCw0LvQtdGA0YzQtdCy0LjRhw0KK9CY0LLQsNC90L7Qsiwg0JjQs9C+0YDRjCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQotCw0YDQsNC90YbQvtCyLCDQnNC40YXQsNC40Lsg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQmNCy0LDQvdC+0LIsINCY0LPQvtGA0Ywg0KHQtdGA0LPQtdC10LLQuNGHDQor0KLQsNGA0LDRgdC+0LIsINCQ0YDRgtC10Lwg0JzQuNGF0LDQudC70L7QstC40YcNCivQotCw0YDQsNGB0L7Qsiwg0JLQsNC70LXRgNC40Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQotCw0YDQsNGH0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9CY0LLQsNC90L7QstCwLCDQotCw0YLRjNGP0L3QsCDQkdC+0YDQuNGB0L7QstC90LANCivQotCw0YLQsNGA0LrQuNC9LCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9CY0LLQsNC90YfQtdC90LrQviwg0JvQtdC+0L3QuNC0INCQ0L3QtNGA0LXQtdCy0LjRhw0KK9Ci0LDRhtGO0L0sINCc0LjRgNC+0L0g0JLQsNGB0LjQu9GM0LXQstC40YcNCivQmNCy0LDQvdGO0LbQtdC90LrQvtCyLCDQkdC+0YDQuNGBINCS0LjQutGC0L7RgNC+0LLQuNGHDQor0KLQtdC80LjRgNC20LDQvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0KXQsNGB0LDQvdCx0LjQtdCy0LjRhw0KK9CY0LPQvdCw0YLQtdC90LrQviwg0JLQuNGC0LDQu9C40Lkg0J3QuNC60LjRgtC40YcNCivQotC10YDQtdCx0L7Qsiwg0J7Qu9C10LMg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JjQs9C90LDRgtGM0LXQsiwg0JjQs9C+0YDRjCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQotC10YDQtdC90YLRjNC10LIsINCS0LDRgdC40LvQuNC5INCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JjQs9C90LDRgtGM0LXQsiwg0JrQuNGA0LjQu9C7INCR0L7RgNC40YHQvtCy0LjRhw0KK9Ci0LXRgNC10YXQvtCyLCDQodGC0LDQvdC40YHQu9Cw0LIg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmNCz0L3QsNGC0YzQtdCyLCDQodC10YDQs9C10Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQotC10YLQtdC70YzQvNC40L0sINCS0LvQsNC00LjQvNC40YAg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JjQs9GA0YPQvdC+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KLQuNC30Y/QutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQmNCy0LDQvdC+0LLQuNGHDQor0JjQs9GD0LzQvdC+0LIsINCT0LXQvdC90LDQtNC40Lkg0JLRj9GH0LXRgdC70LDQstC+0LLQuNGHDQor0KLQuNGC0LrQuNC9LCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQmNC70LvQsNGA0LjQvtC90L7Qsiwg0JDQvdC00YDQtdC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KLQuNGC0L7Qsiwg0JPQtdGA0LzQsNC9INCh0YLQtdC/0LDQvdC+0LLQuNGHDQor0JjQu9GM0Y7RiNC10L3QutC+LCDQkNC70LXQutGB0LXQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ci0LjRgtC+0LIsINCa0L7QvdGB0YLQsNC90YLQuNC9INCQ0LvQtdC60YHQtdC10LLQuNGHDQor0JjQu9GM0Y/RgdC+0LIsINCh0YLQsNC90LjRgdC70LDQsiDQktCw0LvQtdC90YLQuNC90L7QstC40YcNCivQotC40YPQvdC+0LIsINCe0LvQtdCzINCY0LLQsNC90L7QstC40YcNCivQmNC70Y7QvNC20LjQvdC+0LIsINCa0LjRgNGB0LDQvSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ci0LjRhdC+0LzQuNGA0L7Qsiwg0JLQsNC70LXRgNC40Lkg0JLQuNC60YLQvtGA0L7QstC40YcNCivQmNC70Y7RhdC40L0sINCS0LjQutGC0L7RgCDQmNCy0LDQvdC+0LLQuNGHDQor0KLQuNGF0L7QvNC40YDQvtCyLCDQktC70LDQtNC40YHQu9Cw0LIg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmNC70Y7RiNC40L0sINCS0LjQutGC0L5wINCS0LDRgdC40LvRjNC10LLQuNGHDQor0KLQuNGF0L7QvdC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0JjQvtC90L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ci0LjRhdC+0L3QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmNC/0L/QvtC70LjRgtC+0LIsINCa0YHQtdC90L7RhNC+0L3RgiDQpdGA0LjRgdGC0L7RhNC+0YDQvtCy0LjRhw0KK9Ci0LjRhdC+0L3QvtCyLCDQktC40LrRgtC+0YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQmNGB0LDQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0JHQvtGA0LjRgdC+0LLQuNGHDQor0KLQuNGF0L7QvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JjQu9GM0LjRhw0KK9CY0YHQsNC60L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQotC40YXQvtC90L7Qsiwg0JPQtdC+0YDQs9C40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Ci0LjRiNC60L7Qsiwg0JDQvdC00YDQtdC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JjRiNC80YPRgNCw0YLQvtCyLCDQnNC40L3QvdC40LDRgNC40YEg0JzQuNC90LjQs9Cw0LvQuNC10LLQuNGHDQor0KLQutCw0YfQtdCyLCDQkNC70LXQutGB0LDQvdC00YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmNGJ0LXQvdC60L4sINCV0LLQs9C10L3QuNC5INCf0LXRgtGA0L7QstC40YcNCivQotC+0L/QvtGA0LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCk0LXQtNC+0YDQvtCy0LjRhw0KK9Ci0L7Qv9C+0YDQutC+0LIsINCc0LjRhdCw0LjQuyDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ca0LDQs9Cw0LvQvtCy0YHQutC40LksINCa0L7QvdGB0YLQsNC90YLQuNC9INCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQotC+0L/QvtGA0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ca0LDQtNCw0L3QvdC40LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0KLQvtGA0LvQvtC/0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ci0L7RgdGD0L3Rj9C9LCDQk9Cw0YDQtdCz0LjQvSDQkNGI0L7RgtC+0LLQuNGHDQor0JrQsNC30LDQutC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQmNCy0LDQvdC+0LLQuNGHDQor0KLQvtGC0LjQtdCyLCDQodC10YDQs9C10Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQmtCw0LfQsNC60L7Qsiwg0JvQtdC+0L3QuNC0INCQ0L3QtNGA0LXQtdCy0LjRhw0KK9Ci0L7RhdGC0LDQsdC40LXQsiwg0KHQtdGA0LPQtdC5INCQ0LzQuNC90L7QstC40YcNCivQmtCw0LfQsNC60L7QstCwLCDQoNC40LzQvNCwINCk0LXQtNC+0YDQvtCy0L3QsA0KK9Ci0YDQsNCy0LrQuNC9LCDQndC40LrQvtC70LDQuSDQmNC70YzQuNGHDQor0JrQsNC30LDQutC+0LLRhtC10LIsINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQotGA0LDQv9C10LfQvdC40LrQvtCyLCDQktCw0LvQtdGA0LjQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQmtCw0LfQsNC90L3QuNC6LCDQkNC70LXQutGB0LXQuSDQmNCy0LDQvdC+0LLQuNGHDQor0KLRgNC10YLRjNGP0LrQvtCyLCDQktC40YLQsNC70LjQuSDQotC+0LLQuNC10LLQuNGHDQor0KLRgNC+0YjQtdCyLCDQk9C10L3QvdCw0LTQuNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JrQsNC30LDRgNC+0LIsINCe0LvQtdCzINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ci0YDQvtGI0LrQuNC9LCDQndC40LrQvtC70LDQuSDQndC40LrQuNGC0LjRhw0KK9Ca0LDQt9C10L3QvdC+0LIsINCh0LXRgNCz0LXQuSDQrtGA0YzQtdCy0LjRhw0KK9Ci0YDRg9Cx0L3QuNC60L7Qsiwg0JLRj9GH0LXRgdC70LDQsiDQmNCy0LDQvdC+0LLQuNGHDQor0KLRgNGD0YjQvdC40LrQvtCyLCDQktCw0LvQtdGA0LjQuSDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9Ca0LDQu9Cw0LzQsNC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNCy0LTQsNGI0LXQstC40YcNCivQotGD0LvQtdC10LIsINCQ0LzQsNC9LdCz0LXQu9GM0LTRiyDQnNC+0LvQtNCw0LPQsNC30YvQtdCy0LjRhw0KK9Ca0LDQu9Cw0YfQtdCyLCDQmtC+0L3RgdGC0LDQvdGC0LjQvSDQrdC00YPQsNGA0LTQvtCy0LjRhw0KK9Ci0YPQvNCw0L3QvtCyLCDQktCw0LTQuNC8INCY0LLQsNC90L7QstC40YcNCivQmtCw0LvQsNGI0L3QuNC60L7Qsiwg0KHQtdGA0LPQtdC5INCS0Y/Rh9C10YHQu9Cw0LLQvtCy0LjRhw0KK9Ci0YPQvNCw0L3QvtCyLCDQktC70LDQtNC40LzQuNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JrQsNC70YPQs9C40L0sINCe0LvQtdCzINCU0LDQvdC40LvQvtCy0LjRhw0KK9Ci0YPQvNCw0L3QvtCyLCDQktC70LDQtNC40YHQu9Cw0LIg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtCw0LvRjtC20L3Ri9C5LCDQktC40LrRgtC+0YAg0JjQstCw0L3QvtCy0LjRhw0KK9Ci0YPQvNCw0L3QvtCyLCDQodC10YDQs9C10Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JrQsNC70Y/Qs9C40L0sINCS0LvQsNC00LjQvNC40YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQotGD0L/QvtC70LXQsiwg0JDQu9C10LrRgdC10Lkg0JDQvdC00YDQtdC10LLQuNGHDQor0JrQsNC80YvRiNC40L3RgdC60LjQuSwg0J3QuNC60L7Qu9Cw0Lkg0JDQutC40LzQvtCy0LjRhw0KK9Ci0YPRgNGD0YHQuNC9LCDQkNC90LDRgtC+0LvQuNC5INCQ0YTQsNC90LDRgdGM0LXQstC40YcNCivQmtCw0L3QsNC10LIsINCb0LXQvtC90LjQtCDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ci0Y7Qu9GM0LrQuNC9LCDQktC40LrRgtC+0YAg0JDRgNC60LDQtNGM0LXQstC40YcNCivQmtCw0YDQsNCz0LDQvdC+0LIsINCh0LXRgNCz0LXQuSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ci0Y/Qs9GD0L3QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQmtCw0YDQsNC/0LXRgtGP0L0sINCh0LDQsNC6INCQ0LvRjNCx0LXRgNGC0L7QstC40YcNCivQotGP0LbQu9C+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0KHRgtC10L/QsNC90L7QstC40YcNCivQmtCw0YDQtdCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0KPQsdC+0LbQutC+LCDQm9C10LIg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Ca0LDRgNC10LvQuNC9LCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQo9Cy0LDRgNC+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtCw0YDQtdC70L7QstCwLCDQk9Cw0LvQuNC90LAg0J3QuNC60L7Qu9Cw0LXQstC90LANCivQo9C00YPQs9C+0LIsINCc0L7QstC70LDQtNC4DQor0JrQsNGA0LjQvNC+0LLQsCwg0JTQsNC90LjRjyDQrtGB0YPRhNC+0LLQvdCwDQor0KPQu9GM0LHQsNGI0LXQsiwg0JzRg9GF0LDRgNCx0Lgg0JzQsNCz0L7QvNC10LTQvtCy0LjRhw0KK9Ca0LDRgNC/0L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQldCy0LPQtdC90YzQtdCy0LjRhw0KK9Cj0LvRjtC60LDQtdCyLCDQkNC70LXQutGB0LXQuSDQktCw0LvQtdC90YLQuNC90L7QstC40YcNCivQmtCw0YDQv9C+0LIsINCh0YLQsNC90LjRgdC70LDQsiDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0KPQvNCw0LvQsNGC0L7QstCwLCDQodCw0LbQuCDQl9Cw0LnQvdC00LjQvdC+0LLQvdCwDQor0JrQsNGB0LDRgtC+0L3QvtCyLCDQmNCz0L7RgNGMINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cj0YDQsNC30LHQsNC10LIsINCd0YPRgNC70LDQvSDQo9C70LDQvdC+0LLQuNGHDQor0JrQsNGB0YzRj9C90L7Qsiwg0JzQuNGF0LDQuNC7INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KPRgNC40L3RgdC+0L0sINCv0LrQvtCyINCc0L7QuNGB0LXQtdCy0LjRhw0KK9Ca0LDRgtCw0LvRjNC90LjQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0JTQvNC40YLRgNC40LXQstC40YcNCivQo9GB0YLQuNC90L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ca0LLQsNGI0L3QuNC9LCDQkNC90LDRgtC+0LvQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0KPRgdGC0Y7Qs9C+0LIsINCS0LDQu9C10YDQuNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JrQtdGH0LrQuNC9LCDQktCw0LvQtdGA0LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cj0YLQutC40L0sINCS0LvQsNC00LjQvNC40YAg0J/QtdGC0YDQvtCy0LjRhw0KK9Ca0LjQsdC40YDQtdCyLCDQkdC+0YDQuNGBINCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQo9GC0LrQuNC9LCDQrtGA0LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ca0LjQstC10LvQuNC00LgsINCY0LLQsNC9INCl0LDRgNC70LDQvNC/0LjQtdCy0LjRhw0KK9Cj0YjQsNC60L7Qsiwg0JLRj9GH0LXRgdC70LDQsiDQrtGA0YzQtdCy0LjRhw0KK9Ca0LjQvdC10LvQtdCyLCDQktC70LDQtNC40LzQuNGAINCT0LXQvtGA0LPQuNC10LLQuNGHDQor0KTQsNC70LDQu9C10LXQsiwg0KHQtdGA0LPQtdC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0JrQuNGA0LjQtdC90LrQviwg0KHQtdGA0LPQtdC5INCS0LvQsNC00LjQu9C10L3QvtCy0LjRhw0KK9Ck0LDRgNGF0YPRgtC00LjQvdC+0LIsINCY0LPQvtGA0Ywg0J/QsNCy0LvQvtCy0LjRhw0KK9Ca0LjRgNC40LvQuywg0LzQuNGC0YDQvtC/0L7Qu9C40YINCivQpNC10LTQvtGA0L7Qsiwg0JHQvtGA0LjRgSDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JrQuNGA0L/QuNGH0L3QuNC60L7Qsiwg0JLQsNC70LXRgNC40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQpNC10LTQvtGA0L7Qsiwg0JLQsNC70LXRgNC40Lkg0JLQsNC70LXRgNGM0LXQstC40YcNCivQmtC40YDQv9C40YfQvdC40LrQvtCyLCDQnNC40YXQsNC40Lsg0J/QtdGC0YDQvtCy0LjRhw0KK9Ck0LXQtNC+0YDQvtCyLCDQldCy0LPQtdC90LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Ca0LjRgNC/0LjRh9C90LjQutC+0LIsINCu0YDQuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KTQtdC00L7RgNC+0LIsINCd0LjQutC+0LvQsNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0JrQuNGB0LXQu9C10LIsINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ck0LXQtNC+0YDQvtCyLCDQodCy0Y/RgtC+0YHQu9Cw0LIg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtC40YHQtdC70LXQsiwg0JLRj9GH0LXRgdC70LDQsiDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9Ck0LXQtNC+0YHQtdC10LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQmtC40YHQtdC70LXQsiwg0JXQstCz0LXQvdC40Lkg0JDQu9C10LrRgdC10LXQstC40YcNCivQpNC10LTQvtGB0LXQtdCy0LAt0KjRg9C60YjQuNC90LAsINCb0LjQtNC40Y8g0J3QuNC60L7Qu9Cw0LXQstC90LANCivQmtC40YHQtdC70LXQsiwg0J7Qu9C10LMg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KTQtdC00L7RgdC+0LIsINCS0LjQutGC0L7RgCDQmNCy0LDQvdC+0LLQuNGHDQor0JrQuNGB0LvRjtC6LCDQnNC40YXQsNC40Lsg0JHQvtGA0LjRgdC+0LLQuNGHDQor0KTQtdC00YPQu9C+0LLQsCwg0JDQu9C10LLRgtC40L3QsCDQktCw0YHQuNC70YzQtdCy0L3QsA0KK9Ca0LjRhiwg0JDQu9C10LrRgdCw0L3QtNGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ck0LXQtNGD0YLQuNC90L7Qsiwg0K7RgNC40Lkg0K7RgNGM0LXQstC40YcNCivQmtC70LXQsdCw0L3QvtCyLCDQmNC70YzRjyDQmNC+0YHQuNGE0L7QstC40YcNCivQpNC40LvQsNGC0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCS0LDQu9C10L3RgtC40L3QvtCy0LjRhw0KK9Ca0LvQuNC80LDQvdGC0L7QstCwLCDQk9Cw0LvQuNC90LAg0JjQstCw0L3QvtCy0L3QsA0KK9Ck0LjQu9C40LzQvtC90L7Qsiwg0JLQsNC00LjQvCDQlNC+0L3QsNGC0L7QstC40YcNCivQmtC70Y/QvNC60LjQvSwg0JjQs9C+0YDRjCDQnNC+0LjRgdC10LXQstC40YcNCivQpNC40LvQuNC9LCDQktC70LDQtNC40LzQuNGAINCY0LLQsNC90L7QstC40YcNCivQmtC90YvRiCwg0JLQsNC70LXQvdGC0LjQvSDQpNC40LvQuNC/0L/QvtCy0LjRhw0KK9Ck0LjQu9C40L/QtdC90LrQviwg0JDQu9C10LrRgdCw0L3QtNGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0JrQvtCx0LXQu9C10LIsINCS0LjQutGC0L7RgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Ck0LjQu9C40L/Qv9C+0LIsINCS0LvQsNC00LjQvNC40YAg0JzQuNGF0LDQudC70L7QstC40YcNCivQmtC+0LHQtdGGLCDQmtC+0L3RgdGC0LDQvdGC0LjQvSDQmNCy0LDQvdC+0LLQuNGHDQor0KTQuNC70LjQv9C/0L7Qsiwg0J/QtdGC0YAg0KHQtdGA0LPQtdC10LLQuNGHDQor0JrQvtCx0LfQvtC9LCDQmNC+0YHQuNGEINCU0LDQstGL0LTQvtCy0LjRhw0KK9Ck0LjQu9GM0YjQuNC9LCDQnNC40YXQsNC40Lsg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JrQvtCx0YvQu9C60LjQvSwg0JLQsNGB0LjQu9C40Lkg0KTQtdC00L7RgNC+0LLQuNGHDQor0KTQuNC90YzQutC+LCDQntC70LXQsyDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ca0L7QstCw0LvQtdCyLCDQkNC70LXQutGB0LDQvdC00YAg0K/QutC+0LLQu9C10LLQuNGHDQor0KTQvtC80LjQvdGG0LXQsiwg0KHQtdGA0LPQtdC5INCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQmtC+0LLQsNC70LXQsiwg0JLQsNC70LXQvdGC0LjQvSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Ck0L7RgNGC0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQldCy0LPQtdC90YzQtdCy0LjRhw0KK9Ca0L7QstCw0LvQtdCyLCDQndC40LrQvtC70LDQuSDQlNC80LjRgtGA0LjQtdCy0LjRhw0KK9Ck0YDQsNC00LrQvtCyLCDQnNC40YXQsNC40Lsg0JXRhNC40LzQvtCy0LjRhw0KK9Ca0L7QstCw0LvQtdCyLCDQodC10YDQs9C10Lkg0JDQtNCw0LzQvtCy0LjRhw0KK9Ck0YDQsNC90LosINCh0LXRgNCz0LXQuSDQntGC0YLQvtCy0LjRhw0KK9Ca0L7QstCw0LvQtdC90L7Quiwg0JLQu9Cw0LTQuNC80LjRgCDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Cl0LDQsdCw0YDQvtCyLCDQktC70LDQtNC40LzQuNGAINCS0LjQutGC0L7RgNC+0LLQuNGHDQor0JrQvtCy0LDQu9GM0YHQutC40LksINCb0LXQvtC9INCY0L7RgdC40YTQvtCy0LjRhw0KK9Cl0LDQsdCw0YDQvtCyLCDQntC70LXQsyDQodC10YDQs9C10LXQstC40YcNCivQmtC+0LLQu9GP0LPQuNC9LCDQkNC90LDRgtC+0LvQuNC5INCk0LXQtNC+0YDQvtCy0LjRhw0KK9Cl0LDQutCw0LzQsNC00LAsINCY0YDQuNC90LAg0JzRg9GG0YPQvtCy0L3QsA0KK9Ca0L7Qs9Cw0L0sINCV0LLQs9C10L3QuNC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cl0LDQvNCw0LXQsiwg0JDQt9Cw0YIg0JrQuNGP0LzQvtCy0LjRhw0KK9Ca0L7QttC+0LrQuNC9LCDQldCy0LPQtdC90LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cl0LDRgNC40YLQvtC90L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCf0LXRgtGA0L7QstC40YcNCivQmtC+0LfQsNC6LCDQlNC80LjRgtGA0LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cl0LDRgNC40YLQvtC90L7Qsiwg0JXQstCz0LXQvdC40Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQmtC+0LfQtdGA0LDQtNGB0LrQuNC5LCDQkNC90LDRgtC+0LvQuNC5INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KXQsNGA0LjRgtC+0L3QvtCyLCDQndC40LrQvtC70LDQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ca0L7Qt9C40YbRi9C9LCDQndC40LrQvtC70LDQuSDQmNCy0LDQvdC+0LLQuNGHDQor0KXQsNGC0YLQsNCxLCAo0KXQsNCx0LjQsSDQkNCx0LTRg9C7INCg0LDRhdC80LDQvSkNCivQmtC+0LfQu9C+0LIsINCQ0L3QtNGA0LXQuSDQkNC90LTRgNC10LXQstC40YcNCivQpdCy0LDRgtC60L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0J/QsNCy0LvQvtCy0LjRhw0KK9Ca0L7Qt9C70L7Qsiwg0JXQstCz0LXQvdC40Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQpdC40LbQsCwg0JPQtdC+0YDQs9C40Lkg0KHRgtC10L/QsNC90L7QstC40YcNCivQmtC+0LfRi9GA0LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LLQsNC90L7QstC40YcNCivQpdC70YvRgdGC0YPQvSwg0JLQuNC60YLQvtGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JrQvtC30YvRgNC10LIsINCQ0L3QtNGA0LXQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQpdC+0LTQvtGA0LrQvtCy0YHQutC40LksINCc0LjRhdCw0LjQuyDQkdC+0YDQuNGB0L7QstC40YcNCivQmtC+0LfRi9GA0LXQstCwLCDQkNC70LXQutGB0LDQvdC00YDQsCDQnNC40YXQsNC50LvQvtCy0L3QsA0KK9Cl0L7QtNGL0YDQtdCyLCDQk9C10L3QvdCw0LTQuNC5INCc0LDQutGB0LjQvNC+0LLQuNGHDQor0JrQvtC60L7Qsiwg0JLQsNC70LXRgNC40Lkg0JzRg9GF0LDQvNC10LTQvtCy0LjRhw0KK9Cl0L7Qu9C+0LQsINCb0LXQvtC90LjQtCDQmNCy0LDQvdC+0LLQuNGHDQor0JrQvtC60L7RiNC40L0sINCQ0L3QtNGA0LXQuSDQkNGE0LDQvdCw0YHRjNC10LLQuNGHDQor0KXQvtGF0LvQvtCyLCDQktGP0YfQtdGB0LvQsNCyINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JrQvtC70LXRgdC90LjQutC+0LIsINCS0LjQutGC0L7RgCDQmNCy0LDQvdC+0LLQuNGHDQor0KXQvtGF0YDRj9C60L7QstCwLCDQntC70YzQs9CwINCh0LXRgNCz0LXQtdCy0L3QsA0KK9Ca0L7Qu9C10YHQvdC40LrQvtCyLCDQnNC40YXQsNC40Lsg0J/QtdGC0YDQvtCy0LjRhw0KK9Cl0YDQuNC/0LXQu9GMLCDQk9C10L3QvdCw0LTQuNC5INCi0LjQvNC+0YTQtdC10LLQuNGHDQor0KXRgNC40YHRgtC10L3QutC+LCDQktC40LrRgtC+0YAg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JrQvtC70Y7RiNC40L0sINCV0LLQs9C10L3QuNC5INCY0LLQsNC90L7QstC40YcNCivQpdGA0YPRgdGC0LDQu9C10LIsINCT0LXRgNC80LDQvSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ca0L7QvNCw0YDQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0KHQtdGA0LPQtdC10LLQuNGHDQor0KXRg9Cx0LjQtdCyLCDQktC70LDQtNC40LzQuNGAINCY0YHQu9Cw0LzQvtCy0LjRhw0KK9Ca0L7QvNCw0YDQvtCyLCDQldCy0LPQtdC90LjQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQpdGD0YLQsNC90L7Qsiwg0JvQtdC+0L3QuNC0INCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JrQvtC80LDRgNC+0LLRgdC60LjQuSwg0K7RgNC40Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0JrQvtC80L7Qsiwg0J3QuNC60L7Qu9Cw0Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQptCy0LXRgtC60L7Qsiwg0JLQsNC70LXQvdGC0LjQvSDQmNCy0LDQvdC+0LLQuNGHDQor0JrQvtC80YfQsNGC0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQpNC10LTQvtGA0L7QstC40YcNCivQptC40LHQu9C40LXQsiwg0JLQsNGB0LjQu9C40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQmtC+0L3QtNGA0LDRgtC10L3QutC+LCDQndC40LrQvtC70LDQuSDQmNCz0L3QsNGC0L7QstC40YcNCivQptC40LrRgywg0JrQsNC30LHQtdC6INCQ0YHQu9Cw0L3QsdC10YfQtdCy0LjRhw0KK9Ca0L7QvdC00YDQsNGC0YzQtdCyLCDQk9C10L7RgNCz0LjQuSDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0JrQvtC90L7QvdC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JvQtdC+0L3QuNC00L7QstC40YcNCivQp9Cw0LnQutCwLCDQrtGA0LjQuSDQr9C60L7QstC70LXQstC40YcNCivQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LIsINCY0LvRjNGPINCS0LvQsNC00LjRgdC70LDQstC+0LLQuNGHDQor0KfQsNC/0YLRi9C90L7Qsiwg0JLQsNC70LXRgNC90LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JrQvtC90YLQsNGI0L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQn9Cw0LLQu9C+0LLQuNGHDQor0KfQsNGF0LrQuNC10LIsINCR0LDRiNC40YAg0JDRhdC80LXQtNC+0LLQuNGHDQor0KfQtdGA0LXQv9C60L7Qsiwg0JLQuNC60YLQvtGAINCY0LLQsNC90L7QstC40YcNCivQmtC+0YDQs9GD0L3RjtC6LCDQrtGA0LjQuSDQk9GA0LjQs9C+0YDRjNC10LLQuNGHDQor0KfQtdGA0LrQtdGB0L7Qsiwg0JLQuNC60YLQvtGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0JrQvtGA0LbQsNC60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0KfQtdGA0L3QtdC90LrQviwg0JDQvdC00YDQtdC5INCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQmtC+0YDQvdC40LXQvdC60L4sINCS0LjQutGC0L7RgCDQo9C70YzRj9C90L7QstC40YcNCivQp9C10YDQvdC40YfQtdC90LrQviwg0K7RgNC40Lkg0JTQvNC40YLRgNC40LXQstC40YcNCivQmtC+0YDQvdC40LvQvtCy0LAsINCX0L7RjyDQkNGE0LDQvdCw0YHRjNC10LLQvdCwDQor0KfQtdGA0L3QvtCz0L7RgNC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Ca0L7RgNC90YPQutC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JzQuNGF0LDQudC70L7QstC40YcNCivQp9C10YDQvdC+0LzRi9GA0LTQuNC9LCDQktC40LrRgtC+0YAg0KHRgtC10L/QsNC90L7QstC40YcNCivQmtC+0YDQvtCy0L3QuNC60L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCS0LXQvdC40LTQuNC60YLQvtCy0LjRhw0KK9Cn0LXRgNC90YvQuSwgKNCn0LXRgNC90L7QuSkg0JzQuNGF0LDQuNC7INCh0LXQvNC10L3QvtCy0LjRhw0KK9Ca0L7RgNC+0LvQtdCyLCDQntC70LXQsyDQn9C10YLRgNC+0LLQuNGHDQor0KfQtdGA0L3Ri9GI0LXQsiwg0JDQu9C10LrRgdC10Lkg0JDQvdC00YDQtdC10LLQuNGHDQor0JrQvtGA0L7RgtC60L7Qsiwg0JvQtdC+0L3QuNC0INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0KfQtdGA0L3Ri9GI0LXQsiwg0JLQsNGB0LjQu9C40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Ca0L7RgNGB0LDQutC+0LIsINCd0LjQutC+0LvQsNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KfQtdGB0L3QsNC60L7Qsiwg0JDQu9C10LrRgdC10Lkg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQmtC+0YDRgdGD0L0sINCu0YDQuNC5INCd0LjQutC+0LvQsNC10LLQuNGHDQor0KfQtdGC0LjQvSwg0JjQstCw0L0g0JLQsNGB0LjQu9GM0LXQstC40YcNCivQmtC+0YDRiNGD0L3QvtCyLCDQm9C10LIg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQp9C10YXQvtC10LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JPQtdC+0YDQs9C40LXQstC40YcNCivQmtC+0YHQuNC60L7Qsiwg0JzQuNGF0LDQuNC7INCk0LjQu9C40L/Qv9C+0LLQuNGHDQor0KfQtdGH0LXQstCw0YLQvtCyLCDQktC40LrRgtC+0YAg0KHRgtC10L/QsNC90L7QstC40YcNCivQmtC+0YHRgtC10YDQuNC9LCDQldCy0LPQtdC90LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cn0LjQutC40L0sINCS0LDQu9C10L3RgtC40L0g0JLQsNGB0LjQu9GM0LXQstC40YcNCivQmtC+0YHRgtC40L0sINCT0LXQvtGA0LPQuNC5INCS0LDRgdC40LvRjNC10LLQuNGHDQor0KfQuNC70LjQvdCz0LDRgNC+0LIsINCQ0YDRgtGD0YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtC+0YHRgtC+0LXQsiwg0JjRgdGB0LAg0JzQsNCz0L7QvNC10LTQvtCy0LjRhw0KK9Cn0LjRgdGC0L7RhdC+0LTQvtCy0LAsINCg0LjRgtCwINCS0LDRgdC40LvRjNC10LLQvdCwDQor0JrQvtGB0YLRjtGC0LrQuNC9LCDQktC70LDQtNC40LzQuNGAINCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0KfRg9CxLCDQktC70LDQtNC40LzQuNGAINCk0LXQtNC+0YDQvtCy0LjRhw0KK9Cn0YPQsdCw0LnRgSwg0JDQvdCw0YLQvtC70LjQuSDQkdC+0YDQuNGB0L7QstC40YcNCivQmtC+0YLQtdC70LrQuNC9LCDQkNC70LXQutGB0LDQvdC00YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cn0YPQvNC40LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtC+0YLQtdC90LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9C10LrRgdC10LXQstC40YcNCivQp9GD0L3RjNC60L7Qsiwg0K7RgNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Ca0L7RgtC60L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQodGC0LXQv9Cw0L3QvtCy0LjRhw0KK9Cn0YPRgNC40LvQvtCyLCDQkNC70LXQutGB0LXQuSDQktC40LrRgtC+0YDQvtCy0LjRhw0KK9Ca0L7RhSwg0JDQu9GM0YTRgNC10LQg0KDQtdC50L3Qs9C+0LvRjNC00L7QstC40YcNCivQp9GD0YDQutC40L0sINCT0LXQvdC90LDQtNC40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Ca0L7RiNC10LLQsCwg0JLQuNC+0LvQtdGC0YLQsCDQmtC+0L3RgdGC0LDQvdGC0LjQvdC+0LLQvdCwDQor0KjQsNCx0LDQvdC+0LIsINCQ0LvQtdC60YHQsNC90LTRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Ca0L7RiNC10LvRjtC6LCDQnNC40YDQvtGB0LvQsNCyINCV0LLQs9C10L3RjNC10LLQuNGHDQor0KjQsNCx0LDQvdC+0LIsINCY0LLQsNC9INCc0LjRhdCw0LnQu9C+0LLQuNGHDQor0JrQvtGI0LrQuNC9LCDQnNC40YXQsNC40Lsg0J/QtdGC0YDQvtCy0LjRhw0KK9Co0LDQsdC00YPRgNCw0YHRg9C70L7Qsiwg0JjQs9C+0YDRjCDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQqNCw0LHRg9C90LjQvSwg0JjQstCw0L0g0J/QtdGC0YDQvtCy0LjRhw0KK9Ca0YDQsNCy0LXRhiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0LvQtdC60YHQtdC10LLQuNGHDQor0KjQsNCz0LjQtNGD0LvQuNC9LCDQkNC90LLQtdGAINCT0LDQu9C70Y/QvNC+0LLQuNGHDQor0JrRgNCw0LLRhtC+0LIsINCu0YDQuNC5INCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQqNCw0LjQvdGB0LrQuNC5LCDQktC70LDQtNC40LzQuNGAINCv0LrQvtCy0LvQtdCy0LjRhw0KK9Ca0YDQsNCy0YfRg9C6LCDQm9C10L7QvdC40LQg0JzQsNC60LDRgNC+0LLQuNGHDQor0KjQsNC50LzQuNC10LIsINCc0LjQvdGC0LjQvNC10YAg0KjQsNGA0LjQv9C+0LLQuNGHDQor0JrRgNCw0L/QuNCy0LjQvSwg0K7RgNC40Lkg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQqNCw0LrQutGD0LwsINCc0LDRgNGC0LjQvSDQm9GO0YbQuNCw0L3QvtCy0LjRhw0KK9Ca0YDQsNGB0L3QuNC60L7Qsiwg0JTQvNC40YLRgNC40Lkg0KTQtdC00L7RgNC+0LLQuNGHDQor0KjQsNC80LDQvdC+0LIsINCS0LvQsNC00LjQvNC40YAg0JDQvdCw0YLQvtC70YzQtdCy0LjRhw0KK9Ca0YDQsNGB0L3QvtCyLCDQnNC40YXQsNC40Lsg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQqNCw0L3QtNGL0LHQuNC9LCDQktCw0YHQuNC70LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JrRgNCw0YjQtdC90LjQvdC90LjQutC+0LIsINCf0LDQstC10Lsg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KjQsNC/0L7QstCw0LvRjNGP0L3Rhiwg0JDQvdC00YDQtdC5INCT0LXQvtGA0LPQuNC10LLQuNGHDQor0JrRgNC10LzQtdC90LXRhiwg0JjRgNC40L3QsCDQktCw0YHQuNC70YzQtdCy0L3QsA0KK9Co0LDQv9C+0YjQvdC40LrQvtCyLCDQldCy0LPQtdC90LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JrRgNC10YHRgSwg0JLQuNC60YLQvtGAINCc0LXQu9GM0YXQuNC+0YDQvtCy0LjRhw0KK9Co0LDRgNCw0L/QvtCyLCDQktC70LDQtNC40LzQuNGAINCk0LXQtNC+0YDQvtCy0LjRhw0KK9Ca0YDQtdGB0YLRjNGP0L3QuNC90L7Qsiwg0JXQstCz0LXQvdC40Lkg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0KjQsNGA0L7QstCwLCDQk9Cw0LvQuNC90LAg0JzQuNGF0LDQudC70L7QstC90LANCivQmtGA0LjQstC10LvRjNGB0LrQsNGPLCDQndC40L3QsCDQktC40LrRgtC+0YDQvtCy0L3QsA0KK9Co0LDRgtCw0LvQuNC9LCDQodGC0LDQvdC40YHQu9Cw0LIg0KHQtdGA0LPQtdC10LLQuNGHDQor0JrRgNGD0LPQu9C40LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JvQtdC+0L3QuNC00L7QstC40YcNCivQqNCw0YLQsNC70L7Qsiwg0KHQtdGA0LPQtdC5INCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JrRgNGD0LPQu9C+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0KHQtdGA0LPQtdC10LLQuNGHDQor0KjQsNGE0YDQsNC90LjQuiwg0K7RgNC40Lkg0JrQvtC90YHRgtCw0L3RgtC40L3QvtCy0LjRhw0KK9Ca0YDRg9C/0L3QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JXQstCz0LXQvdGM0LXQstC40YcNCivQqNCw0YXQvtCyLCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0JrRgNGO0YfQutC+0LIsINCQ0L3QsNGC0L7Qu9C40Lkg0JLQuNC60YLQvtGA0L7QstC40YcNCivQqNCw0YXRgNCw0LksINCh0LXRgNCz0LXQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ca0YPQstCw0LXQsiwg0JDQu9C10LrRgdCw0L3QtNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0KjQsNGI0YPRgNC40L0sINCh0LXRgNCz0LXQuSDQn9C10YLRgNC+0LLQuNGHDQor0JrRg9Cy0YjQuNC90L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCY0LLQsNC90L7QstC40YcNCivQqNCy0LXRhiwg0JvRjtCx0L7QstGMINCd0LjQutC40YLQuNGH0L3QsA0KK9Ca0YPQtNC10LvQuNC90LAsINCb0Y7QsdC+0LLRjCDQmtC+0L3QtNGA0LDRgtGM0LXQstC90LANCivQqNCy0LjQtNC70LXRgCwg0JXQstCz0LXQvdC40Lkg0JzQsNGA0LrQvtCy0LjRhw0KK9Ca0YPQtNGA0LjQvSwg0JDQu9C10LrRgdC10Lkg0JvQtdC+0L3QuNC00L7QstC40YcNCivQqNCy0YvQtNC60L7QuSwg0JzQuNGF0LDQuNC7INCV0YTQuNC80L7QstC40YcNCivQmtGD0LXQstC00LAsINCT0YDQuNCz0L7RgNC40Lkg0JDQvdC00YDQtdC10LLQuNGHDQor0KjQtdCy0LXQu9GD0YXQsCwg0JLQuNC60YLQvtGAINCh0YLQtdC/0LDQvdC+0LLQuNGHDQor0JrRg9C30L3QtdGG0L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Co0LXQstGH0LXQvdC60L4sINCS0Y/Rh9C10YHQu9Cw0LIg0JDQu9C10LrRgdC10LXQstC40YcNCivQmtGD0LfQvdC10YbQvtCyLCDQkdC+0YDQuNGBINCu0YDRjNC10LLQuNGHDQor0KjQtdCy0YfQtdC90LrQviwg0K7RgNC40Lkg0JvQtdC+0L3QuNC00L7QstC40YcNCivQmtGD0LfQvdC10YbQvtCyLCDQktC70LDQtNC40YHQu9Cw0LIg0JDQu9C10LrRgdC10LXQstC40YcNCivQqNC10LnQvdC40YEsINCS0LjQutGC0L7RgCDQm9C10L7QvdC40LTQvtCy0LjRhw0KK9Ca0YPQt9C90LXRhtC+0LIsINCS0Y/Rh9C10YHQu9Cw0LIg0K7RgNGM0LXQstC40YcNCivQqNC10LvQuNGJLCDQn9C10YLRgCDQkdC+0YDQuNGB0L7QstC40YcNCivQmtGD0LfQvdC10YbQvtCyLCDQm9C10L7QvdGC0LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Co0LXQvdC40L0sINCe0LvQtdCzINCh0LXQvNC10L3QvtCy0LjRhw0KK9Ca0YPQt9C90LXRhtC+0LIsINCc0LjRhdCw0LjQuyDQktCw0YDRhNC+0LvQvtC80LXQtdCy0LjRhw0KK9Co0LXQvdC60LDRgNC10LIsINCe0LvQtdCzINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JrRg9C30L3QtdGG0L7Qsiwg0K7RgNC40Lkg0J/QsNCy0LvQvtCy0LjRhw0KK9Co0LXRgdGC0LDQutC+0LIsINCS0LvQsNC00LjQvNC40YAg0JDRhNCw0L3QsNGB0YzQtdCy0LjRhw0KK9Ca0YPQt9GM0LzQuNC9LCDQktC70LDQtNC40LzQuNGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0KjQtdGB0YLQsNC60L7Qsiwg0JTQvNC40YLRgNC40Lkg0K7RgNGM0LXQstC40YcNCivQmtGD0LvQtdGI0L7Qsiwg0J7Qu9C10LMg0KHRgtC10L/QsNC90L7QstC40YcNCivQqNC40L/QvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JrRg9C70LjQuiwg0JPQtdC90L3QsNC00LjQuSDQktCw0YHQuNC70YzQtdCy0LjRhw0KK9Co0LjRiNC70L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Ca0YPQu9C40LrQvtCyLCDQkNC70LXQutGB0LDQvdC00YAg0JTQvNC40YLRgNC40LXQstC40YcNCivQqNC60LjRgNC60L4sINCQ0L3QsNGC0L7Qu9C40Lkg0JDRhNCw0L3QsNGB0YzQtdCy0LjRhw0KK9Ca0YPQu9C40LrQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCh0LXRgNCz0LXQtdCy0LjRhw0KK9Co0LzQsNC60L7Qsiwg0JzQuNGF0LDQuNC7INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0JrRg9C70YzQsdCw0LrQsCwg0J3QuNC90LAg0JjQstCw0L3QvtCy0L3QsA0KK9Co0LzQsNGC0L7Qsiwg0K7RgNC40Lkg0JDQvdC40YHQuNC80L7QstC40YcNCivQmtGD0LvRjNGP0L3QvtCyLCDQldCy0LPQtdC90LjQuSDQk9C10L7RgNCz0LjQtdCy0LjRhw0KK9Co0LzQtdC70LXQsiwg0J3QuNC60L7Qu9Cw0Lkg0J/QtdGC0YDQvtCy0LjRhw0KK9Ca0YPQu9GP0YHQvtCy0LAsINCd0LjQvdCwINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQvdCwDQor0KjQvtC50LPRgywg0KHQtdGA0LPQtdC5INCa0YPQttGD0LPQtdGC0L7QstC40YcNCivQmtGD0LzQsNGH0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Co0L7RhdC40L0sINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Ca0YPQv9GG0L7Qsiwg0JLQsNC70LXQvdGC0LjQvSDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Co0L/QuNCz0LXQu9GMLCDQm9C10L7QvdC40LQg0KLQtdC+0LTQvtGA0L7QstC40YcNCivQmtGD0YDQsNC80LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQn9C10YLRgNC+0LLQuNGHDQor0KjRgtC+0LPRgNC40L0sINCh0LXRgNCz0LXQuSDQmNCy0LDQvdC+0LLQuNGHDQor0JrRg9GA0LHQsNGC0L7Qsiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Co0YLRi9Cz0LDRiNC10LIsINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQmtGD0YDQs9C40L3Rj9C9LCDQodC10YDQs9C10Lkg0JXRgNCy0LDQvdC00L7QstC40YcNCivQqNGD0LHQsCwg0JLQuNGC0LDQu9C40Lkg0JHQvtGA0LjRgdC+0LLQuNGHDQor0JrRg9GA0LrQvtCy0LAsINCR0Y3Qu9C70LAg0JDQu9C10LrRgdC10LXQstC90LANCivQqNGD0LHQuNC90LAsINCi0LDRgtGM0Y/QvdCwINCY0LLQsNC90L7QstC90LANCivQmtGD0YDQvtC10LTQvtCyLCDQktC70LDQtNC40LzQuNGAINCY0LLQsNC90L7QstC40YcNCivQmtGD0YDQvtGH0LrQuNC9LCDQktC40LrRgtC+0YAg0JLQsNGB0LjQu9GM0LXQstC40YcNCivQqNGD0LPRg9GA0L7Qsiwg0KDQsNGB0YPQu9GMINCY0LPQtNC40YHQsNC80L7QstC40YcNCivQm9Cw0L/QuNC9LCDQkNC70LXQutGB0LDQvdC00YAg0JDQu9C10LrRgdCw0L3QtNGA0L7QstC40YcNCivQqNGD0LzQtdC50LrQviwg0JLQu9Cw0LTQuNC80LjRgCDQpNC40LvQu9C40L/QvtCy0LjRhw0KK9Cb0LDQv9GC0LXQsiwg0JjQstCw0L0g0JTQvNC40YLRgNC40LXQstC40YcNCivQqNGD0YDRh9Cw0L3QvtCyLCDQktCw0LvQtdC90YLQuNC9INCh0LXRgNCz0LXQtdCy0LjRhw0KK9Cb0LDQv9GI0LjQvSwg0JzQuNGF0LDQuNC7INCY0LLQsNC90L7QstC40YcNCivQqNGD0YLQtdC10LIsINCS0LDRgdC40LvQuNC5INCY0LLQsNC90L7QstC40YcNCivQm9Cw0YDQuNC+0L3QvtCyLCDQldCz0L7RgCDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Co0YPRiNC60LXQstC40YcsINCh0YLQsNC90LjRgdC70LDQsiDQodGC0LDQvdC40YHQu9Cw0LLQvtCy0LjRhw0KK9Cb0LDRgNC40YbQutC40LksINCS0LvQsNC00LjQvNC40YAg0JXRgNC80L7Qu9Cw0LXQstC40YcNCivQqdC10LrQvtGH0LjRhdC40L0sINCu0YDQuNC5INCf0LXRgtGA0L7QstC40YcNCivQm9Cw0YXQvtCy0LAsINCV0LrQsNGC0LXRgNC40L3QsCDQpNC40LvQuNC/0L/QvtCy0L3QsA0KK9Cp0LXRgNCx0LDQuiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cb0LDRhtC40YEsINCe0YLRgtC+INCg0YPQtNC+0LvRjNGE0L7QstC40YcNCivQqdC10YDQsdCw0LrQvtCyLCDQktC70LDQtNC40LzQuNGAINCY0LLQsNC90L7QstC40YcNCivQm9C10LHQtdC00LXQsiwg0JLRj9GH0LXRgdC70LDQsiDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Ct0LHQt9C10LXQsiwg0JHQvtGA0LjRgSDQodCw0YTQsNGA0L7QstC40YcNCivQm9C10LHQtdC00YwsINCQ0LvQtdC60YHQsNC90LRwINCY0LLQsNC90L7QstC40YcNCivQm9C10LHQtdC00YwsINCQ0LvQtdC60YHQtdC5INCY0LLQsNC90L7QstC40YcNCivQrtC80LDRiNC10LIsINCS0LDQu9C10L3RgtC40L0g0JHQvtGA0LjRgdC+0LLQuNGHDQor0JvQtdC80LXRiNC10LIsINCc0LjRhdCw0LjQuyDQr9C60L7QstC70LXQstC40YcNCivQrtGA0LrQvtCyLCDQkNC90LDRgtC+0LvQuNC5INCf0LXRgtGA0L7QstC40YcNCivQm9C10LzQtdGI0L7Qsiwg0JPQtdC90L3QsNC00LjQuSDQktC70LDQtNC40LzQuNGA0L7QstC40YcNCivQrtGA0YfQuNC6LCDQktC70LDQtNC40YHQu9Cw0LIg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Cb0LXQvtC90LjQtCwg0J3QuNC60L7Qu9Cw0LXQstC40Ycg0KfQtdGA0L3Ri9GI0LXQsg0KK9Cu0YDRjNC10LIsINCc0LjRhdCw0LjQuyDQl9C40L3QvtCy0YzQtdCy0LjRhw0KK9Cu0YjQtdC90LrQvtCyLCDQodC10YDQs9C10Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQm9C10L7QvdGH0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cv0LLQu9C40L3RgdC60LjQuSwg0JPRgNC40LPQvtGA0LjQuSDQkNC70LXQutGB0LXQtdCy0LjRhw0KK9Cb0LXRgdC40L0sINCc0LjRhdCw0LjQuyDQrtGA0YzQtdCy0LjRhw0KK9Cv0LrQuNC80L7Qsiwg0JDQvdCw0YLQvtC70LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KK9Cb0LXRg9GI0LrQuNC9LCDQodC10YDQs9C10Lkg0JPQtdC90L3QsNC00YzQtdCy0LjRhw0KK9Cv0LrQuNC80L7Qsiwg0JLQuNC60YLQvtGAINCS0LDRgdC40LvRjNC10LLQuNGHDQor0JvQuNCy0YjQuNGGLCDQkNC70LXQutGB0LDQvdC00YAg0K/QutC+0LLQu9C10LLQuNGHDQor0K/QutC+0LLQu9C10LIsINCS0LXQvdC40LDQvNC40L0g0KTQtdC00L7RgNC+0LLQuNGHDQor0JvQuNC80L7QvdC+0LIsICjQodCw0LLQtdC90LrQvikg0K3QtNGD0LDRgNC0INCS0LXQvdC40LDQvNC40L3QvtCy0LjRhw0KK9Cv0LrQvtCy0LvQtdCyLCDQktC70LDQtNC40LzQuNGAINCQ0L3QsNGC0L7Qu9GM0LXQstC40YcNCivQm9C40L3QvdC40LosINCS0LjRgtCw0LvQuNC5INCS0LjQutGC0L7RgNC+0LLQuNGHDQor0K/QutC+0LLQu9C10LIsINCS0LvQsNC00LjQvNC40YAg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQm9C40L/QuNGG0LrQuNC5LCDQktCw0YHQuNC70LjQuSDQodC10LzQtdC90L7QstC40YcNCivQr9C60YPQsdC+0LLQuNGHLCDQm9C10L7QvdC40LQg0JDRgNC60LDQtNGM0LXQstC40YcNCivQm9C40L/RgdC40YYsINCY0LPQvtGA0Ywg0JLQu9Cw0LTQuNC80LjRgNC+0LLQuNGHDQor0K/QutGD0L3QuNC9LCDQk9C70LXQsSDQn9Cw0LLQu9C+0LLQuNGHDQor0JvQuNGB0LXRhtC60LjQuSwg0J/QtdGC0YAg0JjQstCw0L3QvtCy0LjRhw0KK9Cv0LrRg9GILCDQnNC40YXQsNC40Lsg0JzQuNGF0LDQudC70L7QstC40YcNCivQm9C40YHQuNGG0LjQvSwg0JDQvdCw0YLQvtC70LjQuSDQmNCy0LDQvdC+0LLQuNGHDQor0K/QutGD0YjQutC40L0sINCU0LzQuNGC0YDQuNC5INCU0LzQuNGC0YDQuNC10LLQuNGHDQor0JvQuNGB0LjRh9C60LjQvSwg0JLQu9Cw0LTQuNC80LjRgCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhw0KK9Cv0L3QtNCw0YDQsdC40LXQsiwg0JfQtdC70LjQvNGF0LDQvSDQkNCx0LTRg9C80YPRgdC70LjQvNC+0LLQuNGHDQor0JvQuNGB0L7QstGB0LrQuNC5LCDQodC10YDQs9C10Lkg0KTQtdC00L7RgNC+0LLQuNGHDQor0K/QvdC60L7QstGB0LrQuNC5LCDQkNGA0LrQsNC00LjQuSDQrdC00YPQsNGA0LTQvtCy0LjRhw0KK9Cb0LjRhdCw0L3QvtCyLCDQkNC70YzQsdC10YDRgiDQkNC90LDRgtC+0LvRjNC10LLQuNGHDQor0K/RgNC40YXQsNC90L7Qsiwg0KXQvtC2LdCQ0YXQvNC10LQNCivQm9C40YXQsNGH0LXQsiwg0JLQsNGB0LjQu9C40Lkg0J3QuNC60L7Qu9Cw0LXQstC40YcNCivQm9C40YXQsNGH0LXQsiwg0JLQu9Cw0LTQuNC80LjRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cv0YDQvtGB0LvQsNCy0YbQtdCyLCDQktC70LDQtNC40LzQuNGAINCT0YDQuNCz0L7RgNGM0LXQstC40YcNCivQm9C+0LHQsNC90L7Qsiwg0JDQu9C10LrRgdCw0L3QtNGAINCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cv0YDQvtGI0LXQvdC60L4sINCQ0L3QsNGC0L7Qu9C40Lkg0JjQstCw0L3QvtCy0LjRhw0KK9Cv0YDRg9C70LvQuNC9LCDQktCw0YTQsCDQodC10LnRgtCx0LDRgtGC0LDQu9C+0LLQuNGHDQor0JvQvtCz0LjQvdC+0LIsINCV0LLQs9C10L3QuNC5INCu0YDRjNC10LLQuNGHDQor0K/RgNGL0LPQuNC90LAsINCi0LDRgtGM0Y/QvdCwINCS0LvQsNC00LjQvNC40YDQvtCy0L3QsA0KK9Cb0L7QtNC60LjQvSwg0K7RgNC40Lkg0JXQstCz0LXQvdGM0LXQstC40YcNCivQr9GB0LjQvSwg0JXQstCz0LXQvdC40Lkg0JPRgNC40LPQvtGA0YzQtdCy0LjRhw0KK9Cb0L7Qt9C40L3RgdC60LDRjywg0JbQsNC90L3QsCDQnNC40YXQsNC50LvQvtCy0L3QsA0KK9Cv0YHRgtGA0LbQtdC80LHRgdC60LjQuSwg0KHQtdGA0LPQtdC5INCS0LvQsNC00LjQvNC40YDQvtCy0LjRhw0KK9Cb0L7Qv9Cw0YLQuNC9LCDQktC70LDQtNC40LzQuNGAINCd0LjQutC+0LvQsNC10LLQuNGHDQor0K/RhdC40L0sINCl0LDQu9C40YIg0JDRhdC80LXRgtC+0LLQuNGHDQor0JvQvtGC0L7RgNC10LIsINCQ0LvQtdC60YHQsNC90LTRgCDQndC40LrQvtC70LDQtdCy0LjRhw0KK9Cv0YbQutC10LLQuNGHLCDQkdC+0YDQuNGBINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHDQor0JvRg9C20LrQvtCyLCDQrtGA0LjQuSDQnNC40YXQsNC50LvQvtCy0LjRhw0KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19TZXJiaWFuU0gudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NlcmJpYW5TSC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2UxOGRkNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19TZXJiaWFuU0gudHh0CkBAIC0wLDAgKzEsNjEyNTQgQEAKK++7vyMvKioNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoNCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICovDQorDQorxIxBxIxJxIYgQUxFS1NBTkRBUgorxIxBxIxJxIYgSkVMSUNBCivEjEHEjEnEhiBNQVJJSkEKK8SMQcSMScSGIE5JS09MQQorxIxBxIxJSkEgQlJBTktPCivEjEHEkEVOT1ZJxIYgxb1BUktPCivEjEHEkEVOT1ZJxIYgU0FCSU5BCivEjEFCQUkgQU5EUklKQQorxIxBQkFJIExBSk/FoAorxIxBQkFJIE1BUklKQQorxIxBQkFJIFNURVZBTgorxIxBQkFJIFNURVZBTgorxIxBQkFSS0FQQSBCUkFOS08KK8SMQUJBUktBUEEgTUlMRU5LTworxIxBQkFSS0FQQSBNSVJPU0xBVgorxIxBQkFSS0FQQSBTSU1PCivEjEFCQVJLQVBBIFNUQU5LTworxIxBQkFSS0FQQSBUQU1BUkEKK8SMQUJBUktBUEEgVE9NQcWgCivEjEFCREFSScSGIE5JS09MQQorxIxBQkRBUknEhiBaT1JJQ0EKK8SMQUJJIE5BTkRPUgorxIxBQk9WScSGIE1JTEFOCivEjEFCUkFESSBBR05FWklKQQorxIxBQlJBREkgSVZBTgorxIxBQlJBREkgSkVMRU5BCivEjEFCUkFESSBMSlVCSUNBCivEjEFCUkFESSBTVEVWQU4KK8SMQUJSREEgTUFSVElOCivEjEFCUklMTyBCT0dEQU4KK8SMQUJSSUxPIEJSQU5JU0xBVgorxIxBQlJJTE8gTEFaQVIKK8SMQUJSSUxPIExKVUJJQ0EKK8SMQUJSSUxPIFNQQVNPSkEKK8SMQURFxaAgWkRFTktBCivEjEFERVNLSSBCTEFHT0pFCivEjEFET1ZTS0kgVkxBRElNSVIKK8SMQUdMSkVWScSGIFRPTUEKK8SMQUdPUk9WScSGIFZMQURJTUlSCivEjEFKQSBWQU5LQQorxIxBSknEhiBCT0dPTEpVQgorxIxBSknEhiBCT1JJU0xBVgorxIxBSknEhiBSQURPU0xBVgorxIxBS8WgSVJBTiBNSUxBRElOCivEjEFLQU4gRVVHRU4KK8SMQUtBTiBFVkdFTklKRQorxIxBS0FOIElWQU4KK8SMQUtBTiBKVUxJSkFOCivEjEFLQU4gTUlIQUpMTworxIxBS0FOIFNURVZBTgorxIxBS0FOIFZMQURJTUlSCivEjEFLQU4gVkxBRElNSVIKK8SMQUtBTiBWTEFESU1JUgorxIxBS0FSQSBBTkEKK8SMQUtBUkVWScSGIE1PTUlSCivEjEFLQVJFVknEhiBORURFTEpLTworxIxBS0kgxaBBTkRPUgorxIxBS0kgQU1BTElKQQorxIxBS0kgQU5EUkHFoAorxIxBS0kgTEFESVNMQVYKK8SMQUtJIExBSk/FoAorxIxBS0kgTEFTTE8KK8SMQUtJIE1JSEFMSgorxIxBS0kgTUlIQUxKCivEjEFLSSBQSVJPxaBLQQorxIxBS0nEhiBTQVZBCivEjEFLScSGIFpMQVRPSkUgRFIKK8SMQUtNQUsgREFOSUNBCivEjEFLTUFLIERFSkFOCivEjEFLTUFLIExBWkFSCivEjEFLTUFLIExKSUxKQU5BCivEjEFLTUFLIExKVUJJQ0EKK8SMQUtNQUsgU09GSUpBCivEjEFLTUFLIFNWRVRPWkFSCivEjEFLTUFMIFZPSklTTEFWCivEjEFLT1ZBQyBCT1JJU0xBVgorxIxBS09WQUMgTUlST1NMQVYKK8SMQUtPVkFDIFBBTlRFTElKQQorxIxBS09WQUMgU0FWQQorxIxBS09WScSGIFpEUkFWS08KK8SMQUtSQSBNSUxFTkEKK8SMQUxBIMSQVUxBCivEjEFMQSBJUkVOCivEjEFMQSBJVkFOS0EKK8SMQUxBIExFTktBCivEjEFMQUtJxIYgQlJBTktPCivEjEFMQUtJxIYgTEpVQk9NSVIKK8SMQUxBS0nEhiBNQVJLTworxIxBTEFLScSGIE1JTEFOCivEjEFMRSBJVkFOCivEjEFMRSBKT1NJUAorxIxBTEUgTUlMQU4KK8SMQUxFIFNPRklKQQorxIxBTEUgVkxBRElNSVIKK8SMQUxFTknEhiBCT1JJU0xBVgorxIxBTEVOScSGIEJSQU5JU0xBVkEKK8SMQUxFTknEhiBESU5BCivEjEFMRU5JxIYgRFJBR0lDQQorxIxBTEVOScSGIExBWkFSCivEjEFMRU5JxIYgTEpJTEpBTkEKK8SMQUxFTknEhiBMSlVCT01JUgorxIxBTEVOScSGIExVS0EKK8SMQUxFTknEhiBNSUxPU0FWQQorxIxBTEVOScSGIE1JUkpBTkEKK8SMQUxFTknEhiBTVEVWQU4KK8SMQUxJxIYgQk/FoEtPCivEjEFMScSGIEpPVk8KK8SMQUxJxIYgTUFSSUpBCivEjEFMSUpBIERBTklDQQorxIxBTElKQSBKT1ZBTgorxIxBTElKQSBMQVpBUgorxIxBTElKQSBNSUxBTgorxIxBTcSQScSGIEpBSElKQQorxIxBTUFOR09TIMSQT1LEkEUKK8SMQU1BTkdPUyBLQVRJQ0EKK8SMQU1CRVIgTEpVQklDQQorxIxBTUJPUiDEkFVSTworxIxBTUJPUiBBTkRSSUpBCivEjEFNQk9SIEpPU0lQCivEjEFNRMW9ScSGIE5FQUQKK8SMQU1PIEJBUkJBUkEKK8SMQU1QUkFHIMSQT1LEkEUgTEVLQVIKK8SMQU1QUkFHIERSQUdBCivEjEFNUFJBRyBEVcWgQU4KK8SMQU1QUkFHIExKVUJJQ0EKK8SMQU1QUkFHIE1JTEFOCivEjEFOxIxBUiDEkE9SxJBFCivEjEFOxIxBUkVWScSGIEpPVkFOS0EKK8SMQU7EjEFSRVZJxIYgTUlST0xKVUIKK8SMQU7EjEFSRVZJxIYgTUxBREVOCivEjEFOQUTFvUnEhiDEkE9SxJBFCivEjEFOQUTFvUnEhiBKT1ZBTgorxIxBTkFExb1JxIYgU0FOSkEKK8SMQU5BREFOT1ZJxIYgQU5EUklKQQorxIxBTkFEQU5PVknEhiBNSVJLTworxIxBTkFEQU5PVknEhiBSQURNSUxBCivEjEFOQURJIEpBTk/FoCBNUgorxIxBTkFESSBMSklMSkFOQQorxIxBTkFHTEnEhiDEkE9LQQorxIxBTkFLIMW9RUxKS08KK8SMQU5BSyDEkFVSQQorxIxBTkFLIEJPU0lMSktBIERSCivEjEFOQUsgTUlIQUpMTworxIxBTkFLIE1JUktPCivEjEFOQUsgTU9NxIxJTE8KK8SMQU5BSyBORVZFTktBCivEjEFOQUsgTklLT0xBCivEjEFOQUsgTklLT0xBCivEjEFOQUsgTklLT0xBCivEjEFOQUsgT0xJVkVSQQorxIxBTkFLIFZFTEpLTworxIxBTkFLIFZFU0VMSU4KK8SMQU5BSyBWVUtBxaBJTgorxIxBTkdBTEnEhiBEVcWgQU4KK8SMQU5JxIYgTEpJTEpBTkEKK8SMQU5JxIYgTUlMT8WgCivEjEFOScSGIE9TVE9KQQorxIxBTkpFVkFDIMWgQVJMT1RBCivEjEFOSkkgQU5EUklKQQorxIxBTkpJIEdBQkkKK8SMQU5KSSBHQUJPUgorxIxBTkpJIEdJWkVMQQorxIxBTkpJIElSRU5BCivEjEFOSkkgSVJFTkEKK8SMQU5KSSBKQU5LTworxIxBTkpJIEtBUkxPCivEjEFOSkkgTEFTTE8KK8SMQU5KSSBMQVNMTworxIxBTkpJIE5BREEKK8SMQU5KSSBTQU1VRUwKK8SMQU5KSSBTVEVWQU4KK8SMQU5KSSBTVEVWQU4KK8SMQU5KSSBWTEFESU1JUgorxIxBTkpJIFpPTFRBTgorxIxBTkpJIFpVWkFOQQorxIxBTktPVknEhiDEkE9SxJBFCivEjEFOS09WScSGIEJPxaBLTworxIxBTktPVknEhiBCT0pBCivEjEFOS09WScSGIEJSQU5LTworxIxBTktPVknEhiBEQU5FCivEjEFOS09WScSGIERBTkUKK8SMQU5LT1ZJxIYgREFORQorxIxBTktPVknEhiBEQU5JQ0EKK8SMQU5LT1ZJxIYgSk9WQQorxIxBTktPVknEhiBMSlVCSU5LQQorxIxBTktPVknEhiBNQVJJSkEKK8SMQU5LT1ZJxIYgTUFSS08KK8SMQU5LT1ZJxIYgTUlLQQorxIxBTktPVknEhiBNSUxBTgorxIxBTktPVknEhiBNSUxBTgorxIxBTktPVknEhiBNSUxJVk9KCivEjEFOS09WScSGIE1JTE9SQUQKK8SMQU5LT1ZJxIYgTUxBREVOCivEjEFOS09WScSGIE9MR0EKK8SMQU5LT1ZJxIYgUEVUQVIgTVIKK8SMQU5LT1ZJxIYgUEVUQVIKK8SMQU5LT1ZJxIYgUkFET01JUgorxIxBTktPVknEhiBSQURPTUlSCivEjEFOS09WScSGIFNMQcSQQU5BCivEjEFOS09WScSGIFNMQVZLTworxIxBTktPVknEhiBTTE9CT0RBTgorxIxBTktPVknEhiBaTEFUQQorxIxBTktPVknEhiBaT1JBTgorxIxBUCBBTlRBTAorxIxBUEFOREEgSk9TSVAKK8SMQVBFTEpBIERSQUdBTgorxIxBUEVMSkEgSkFOIERSCivEjEFQRUxKQSBKT1ZBTgorxIxBUEVMSkEgUEFWTEUKK8SMQVBLTyBKVUxJSkFOCivEjEFQS08gTUlMT1JBRAorxIxBUEtPIE1JUk9TTEFWCivEjEFQS08gTkVTVE9SCivEjEFQTyBBREFNCivEjEFQTyBJTElKQQorxIxBUE8gSkFOT8WgCivEjEFQTyBNQVJJSkEKK8SMQVBPIE5BREEKK8SMQVBSScSGIE1JTE9SQUQKK8SMQVJBUEnEhiBUT01JU0xBVgorxIxBU05KSSBFUsW9RUJFVAorxIxBU05KSSBGRVJFTkMKK8SMQVNUVkVOIEpVTElKQU5BCivEjEFUIEFORFJJSkEKK8SMQVRBTElOQUMgTUlMQU4KK8SMQVRBTElOQUMgTklLT0xBCivEjEFUQUxPViBTVE9KQU4KK8SMQVRMQUpBIFNUQU5BCivEjEFUTEFLIE9MSVZFUkEKK8SMQVRVxaAgWkxBVEtPCivEjEFVxaBFVknEhiBLRU1BTAorxIxBVcWgRVZJxIYgTUlESEFUCivEjEFVxaBFVknEhiBUQVRKQU5BCivEjEFWScSGIMWgVEVGSUNBCivEjEFWScSGIMW9SVZLQQorxIxBVknEhiDEkE9SxJBFCivEjEFWScSGIEJPxaBLTworxIxBVknEhiBCUkFOSVNMQVYKK8SMQVZJxIYgREVKQU4KK8SMQVZJxIYgREVKQU4KK8SMQVZJxIYgRFJBR0lDQQorxIxBVknEhiBEUkFHTworxIxBVknEhiBHT1JEQU5BCivEjEFWScSGIEdPUkRBTkEKK8SMQVZJxIYgS1JTVEFOCivEjEFWScSGIExKVUJPTUlSCivEjEFWScSGIExKVUJPTUlSCivEjEFWScSGIExKVUJPTUlSCivEjEFWScSGIE1BUklKQQorxIxBVknEhiBNSUxFTkEKK8SMQVZJxIYgTUlSS08KK8SMQVZJxIYgUEVUQVIKK8SMQVZJxIYgUkFET01JUgorxIxBVknEhiBSQURPVkFOCivEjEFWScSGIFNMT0JPREFOCivEjEFWScSGIFNMT0JPREFOCivEjEFWScSGIFNPS0EKK8SMQVZJxIYgVE/FoEEKK8SMQVZJxIYgVkVMSVpBUgorxIxBVknEhiBWTEFETworxIxBVknEhiBaT1JLQQorxIxBWklNIMSMRUxFQklKQQorxIxFxIxFSyBEUkFHSUNBCivEjEXEjEVLIFZJTElNCivEjEXEjFVLIEFMRUtTQU5EQVIKK8SMRcSMVUsgQlJBTklTTEFWCivEjEXEjFVLIE1JTE/FoAorxIxFxIxVSyBTTEFWSUNBCivEjEXEjFVLIFNURVZBTgorxIxFxaBMSkFSIMSQVVJBCivEjEXFoExKQVIgQUxFS1NBTkRBUgorxIxFxaBMSkFSIERBUklOS0EKK8SMRcWgTEpBUiBKT1NJUAorxIxFxaBMSkFSIEpPVkFOCivEjEXFoExKQVIgU1RFVkFOCivEjEXFoExKRVZJxIYgRFXFoEFOCivEjEXFoExKRVZJxIYgS09TVEEKK8SMRcWgTEpFVknEhiBNSUxFTktPCivEjEXFoExKRVZJxIYgTUlST1NMQVZBCivEjEXFoExKRVZJxIYgTU9NxIxJTE8KK8SMRcWgTEpFVknEhiBTVEFOS08KK8SMRUJBQyBMSlVCSUNBCivEjEVCQUMgUEFWTEUKK8SMRUJFRMW9ScSGIE1JTEFOCivEjEVCU0tJIFZMQURJTUlSCivEjEVCWkFOIFBBTlRBCivEjEVEScSGIFJFRMW9TworxIxFR0FSIEJPxb1PCivEjEVHQVIgREVTQU5LQQorxIxFR0FSIERSQUdBTgorxIxFR0FSIE1JTE/FoAorxIxFR0FSIE1JUktPCivEjEVHQVIgUEFORQorxIxFR0FSIFNSRVRLTworxIxFR0FSIFNURVZBTklKQQorxIxFR0FSIFNWRVRMQU5BCivEjEVHQVIgVE9ET1IKK8SMRUggQU5UT04KK8SMRUggSk/FvUVGCivEjEVIIEpPU0lQCivEjEVIIEpPVkFOCivEjEVIIE1JS0xPxaAKK8SMRUggU1RBTktBCivEjEVIIFpMQVRBCivEjEVIQUsgS0FMTUFOIERSCivEjEVIT1YgSVZBTgorxIxFSE9WIFBFVEFSCivEjEVKT1ZJxIYgQklTRVJLQQorxIxFSk9WScSGIFNMT0JPREFOCivEjEVKT1ZJxIYgVkVMSU1JUgorxIxFSk9WScSGIFZMQURJTUlSCivEjEVLQU5PVknEhiDFvUlWQU5BCivEjEVLQU5PVknEhiBWSVRPTUlSCivEjEVLRSBERcW9RQorxIxFS0UgTUFSSUpBCivEjEVLRSBTTkXFvUFOQQorxIxFS0UgU1RFVkFOCivEjEVLRVJFVkFDIEJSQU5LTworxIxFS0VSSU5BQyBEVcWgQU4KK8SMRUtFUklOQUMgWk9SQU4KK8SMRUtJIERBUklOS0EKK8SMRUtJIERBVklECivEjEVLScSGIEFOQQorxIxFS0nEhiBEQVJJTktBCivEjEVLScSGIERJTUlUUklKRQorxIxFS0nEhiBEUkFHQU4KK8SMRUtJxIYgSUxJSkEKK8SMRUtJxIYgSk9WQU4KK8SMRUtJxIYgTUlMT1JBRAorxIxFS0nEhiBNSUxPUkFECivEjEVLScSGIE1JTE9WQU4KK8SMRUtJxIYgTUlSSkFOQQorxIxFS0nEhiBNT03EjElMTworxIxFS0nEhiBTQVZBCivEjEVLScSGIFNBVkEKK8SMRUtJxIYgVkFTQQorxIxFS0nEhiBaRFJBVktPCivEjEVLUkTFvUlOIFJBRElTTEFWCivEjEVMQVIgU1RFVkFOCivEjEVMRUJJxIYgQUxFS1NBTkRBUgorxIxFTEVCScSGIEJPxb1PCivEjEVMRUJJxIYgSUxJSkEKK8SMRUxFQknEhiBNSUxPUkFECivEjEVMRUJJxIYgTU9NxIxJTE8KK8SMRUxFQknEhiBPTEdBCivEjEVMRUJJxIYtVFVCScSGIFZFU05BCivEjEVMRUJJxIYgWk9SS0EKK8SMRUxFS0VUScSGIEpPVkFOCivEjEVMRUtFVEnEhiBKT1ZBTgorxIxFTEVLRVRJxIYgTUlST1NMQVYKK8SMRUxFS0VUScSGIE1JUk9TTEFWCivEjEVMRUtFVEnEhiBSQURPVkFOCivEjEVMRUtFVEnEhiBUQU1BUkEKK8SMRUxFTkFLIEtBVEFMSU4KK8SMRUxFU05JSyBEUkFHVVRJTgorxIxFTEnEhiBCQU5FCivEjEVMScSGIERJTktBCivEjEVMScSGIEdMSUdPUklKRQorxIxFTEnEhiBJTElKQQorxIxFTEnEhiBLQVRBUklOQQorxIxFTEnEhiBMSlVCSU5LTworxIxFTEnEhiBMSlVCT01JUgorxIxFTEnEhiBNSUxJVk9KCivEjEVMScSGIFBBVkxFCivEjEVMScSGIFNSxJBBTgorxIxFTEnEhiBTVEFOS08gRFIKK8SMRUxJxIYgVkVSQQorxIxFTElDQSBKRUxFTkEKK8SMRUxJS09WScSGIEVNSUwKK8SMRUxPRklHQSBBTlRPTklKQQorxIxFTE9WScSGIE1JUkpBTkEKK8SMRUxPVlNLSSBBTkRSRUoKK8SMRUxPVlNLSSBEUkFHSUNBCivEjEVNQU4gxJBPUsSQRQorxIxFTUFOIMSQVVJBCivEjEVNQU4gQU5EUklKQQorxIxFTUFOIERBTklMTworxIxFTUFOIEdPUkRBTkEKK8SMRU1BTiBKQU4KK8SMRU1BTiBKT1ZBTgorxIxFTUFOIE1JxaBBCivEjEVNQU4gTUlST1NMQVYKK8SMRU1BTiBPTEdBCivEjEVNQU4gUlXFvUVOS0EKK8SMRU1BTiBTQU1VRUwKK8SMRU1BTiBTVEVWQU4KK8SMRU1BTiBURVJFWkEKK8SMRU1CScSGIE1JTEFOCivEjEVNRVJFIEVSxb1FQkVUCivEjEVNRVJFIExBSk/FoAorxIxFTUVSTEnEhiBQRVRBUgorxIxFTkRFxaAgQlJBTktPCivEjEVORUpBQyDFvUlWQU4KK8SMRU5FSkFDIEdSVUpBCivEjEVORUpBQyBMSlVCSUNBCivEjEVORUpBQyBMSlVCSUNBCivEjEVORUpBQyBNSUxPxaAKK8SMRU5FSkFDIE1JTFVUSU4KK8SMRU5FSkFDIFRPTUlTTEFWCivEjEVORUpBQyBWRUxJU0xBVgorxIxFTkdFUkkgQVRJTEEKK8SMRU5HScSGIE1BUklKQQorxIxFTlXFoEEgR0VPUkdJTkEKK8SMRVDEjEFOSkkgTUlSSkFOQQorxIxFUEUgQU5JQ0EKK8SMRVBJIEpBTk/FoAorxIxFUEkgTEFTTE8KK8SMRVBJIE1BUklKQQorxIxFUEkgTkFORE9SCivEjEVQScSGIEJPUklTTEFWCivEjEVQScSGIFNMT0JPREFOCivEjEVQScSGIFNNSUxKQQorxIxFUEnEhiBWRUxJTUlSCivEjEVQSU4gVklLVE9SCivEjEVQTEUgU1RFVkFOCivEjEVQUkVHSSBJUkVOQQorxIxFUFJFR0kgSlVMSUpBCivEjEVQU0tJIEpPVkFOCivEjEVQU0tJIFNURVZBTgorxIxFUiDFoEFORE9SCivEjEVSIEFMRUtTQU5EQVIKK8SMRVIgRlJBTkpBCivEjEVSIExBRElTTEFWCivEjEVSIE1BUklKQQorxIxFUkVLT1ZJxIYgRUxJWkFCRVRBCivEjEVSRUtPVknEhiBSSVNUTworxIxFUkVLT1ZJxIYgU0xBVktPCivEjEVSRUtPVknEhiBWQVNLUlNJSkUKK8SMRVJFVknEhiBJVkFOCivEjEVSRVZJxIYgVkVSSUNBCivEjEVSRVZJQ0tJIEFMRUtTQU5EQVIKK8SMRVJFVklDS0kgRFXFoEFOCivEjEVSRVZJQ0tJIEpPVkFOCivEjEVSRVZJQ0tJIExKVUJJQ0EKK8SMRVJFVklDS0kgTUlUQQorxIxFUkVWSUNLSSBOQURBCivEjEVSRVZJQ0tJIFJBREEKK8SMRVJFVklDS0kgUlXFvUlDQQorxIxFUkVWSUNLSSBTVEVWQU4KK8SMRVJFVklDS0kgU1ZFVElTTEFWCivEjEVSRVZJQ0tJIFRFT0RPUgorxIxFUkdFIEJFTEEKK8SMRVJJIEpPxb1FRgorxIxFUktFWiBCT0dEQU5LQQorxIxFUktFWiBEVcWgQU5LQQorxIxFUktFWiBFVklDQQorxIxFUktFWiBKT1ZBTktBCivEjEVSS0VaIFNURVZBTgorxIxFUktFWk9WIERVxaBBTktBCivEjEVSS0nEhiBPU01BTgorxIxFUktJxIYgVkFTSUxJSkUKK8SMRVJOxIxFQyBWRVJBCivEjEVSTkFLIEVWQQorxIxFUk5FSy1BUFJPIMW9VcW9QU5BCivEjEVSTkVLQSBTVEVWQU4KK8SMRVJOSSBJxaBUVkFOCivEjEVSTknEjEVLIEVSxb1FQkVUCivEjEVSTknEjEVLIEnFoFRWQU4KK8SMRVJOScSMRUsgScWgVFZBTgorxIxFUk5JxIYgRFXFoEFOCivEjEVSTklLIEFUSUxBCivEjEVSTklLIEpPxb1FRgorxIxFUk5JSyBNQVJHSVRBCivEjEVSTklWRUMgVEFUSkFOQQorxIxFUk5KQSBNQVJJSkEKK8SMRVJOSkEgTUFUSUxEQQorxIxFUk5KQUsgTEFESVNMQVYKK8SMRVJOSkFOU0tJIERSQUdPTUlSCivEjEVSTkpFVlNLSSBTVkVUSVNMQVYKK8SMRVJOSlXFoCBKQUtJTQorxIxFUk5PR1VCT1YgQk9SSVMKK8SMRVJOVcWgIElCT0xKQQorxIxFUk5VxaAgVElCT1IKK8SMRVJPVknEhiBSQVRLTworxIxFUlVCRMW9ScSGIERSQUdPTUlSCivEjEVSVUJExb1JxIYgSk9WQU4KK8SMRVJVQkTFvUnEhiBNQVJHSVRBCivEjEVSVUJExb1JxIYgTUFSR0lUQQorxIxFUlVQT8W9ScSGIE9MR0EKK8SMRVJWQVJJIEVSxb1FQkVUCivEjEVSVkVOSkFLIEpFTElTQVZFVEEKK8SMRVJWRU5KQUsgSk9TSVAKK8SMRVJWRU5KQUsgTEpVQklDQQorxIxFUlZFTkpBSyBPTEdBCivEjEVSVkVOSkFLIFBFVEFSCivEjEVSVkVOSkFLIFpBR09SS0EKK8SMRVJWRU5LTyBBTEVLU0FOREFSCivEjEVSVkVOS08gQU5BCivEjEVTQUsgQU5EUklKQQorxIxFVEUgQVJPTiBESVBMIElORworxIxFVEnEhiBNSUxPUkFECivEjEVUTEUgTUFSSUpBCivEjEVUTklLIEJPR0RBTgorxIxFVE5JSyBKT1ZBTgorxIxFVE5JSyBaQUdPUktBCivEjEVUTklLT1ZJxIYgUEVUQVIgRElQTCBPRUMKK8SMRVRPSkVWScSGIE1JTEtBCivEjEVUT0pFVknEhiBSQURJVk9KRQorxIxFVkFSSSDEkE9SxJBFCivEjEVWQVJJIEFOVEFMCivEjEVWQVJJIE1BUklKQQorxIxFVkFSSSBNSUhBSkxPCivEjEVWQVJJIFpPTFRBTgorxIxJxIxBIEpPVkFOCivEjEnEjEEgTklLT0xBCivEjEnEjEFJIEpPxb1FRgorxIxJxIxBSyBBTktJQ0EKK8SMScSMQUsgTUlSS08KK8SMScSMQUtJTiBBTsSQRUxLQQorxIxJxIxBUkVWScSGIFNBVk8KK8SMScSMRUsgREFOSUpFTAorxIxJxIxJxIYgRFJBR09MSlVCCivEjEnEjEnEhiBNSUxFCivEjEnEjEnEhiBNSVJPU0xBVgorxIxJxIxLT1ZJxIYgU1ZFVEtPCivEjEnEjE9WQcSMS0kgQk9SSVNMQVYKK8SMScSMT1ZBxIxLSSBESU1JVFJJSkUKK8SMScSMT1ZBQyDEkE9SxJBFCivEjEnEjE9WQUMgS09TVEEKK8SMScSMT1ZBQyBNSUxJQ0EKK8SMScSMT1ZBQyBSQURPU0xBVgorxIxJxIxPVkFDIFZMQURJTUlSCivEjEnFvUVLIFBBVkxFCivEjEnFvUVLIFNMQVZPTUlSCivEjEnFvU1FxaBJSkEgSVZBTgorxIxJQlJJIEpBTk/FoAorxIxJQlJJIFBJUk/FoEtBCivEjElFRiBKQU4KK8SMSUVGIE1BUlRJTgorxIxJRUYgU0FNVUVMCivEjElISSBGRVJFTkMKK8SMSUhJIEpBTk/FoAorxIxJSEkgSkFOT8WgCivEjElLIEFORFJJSkEKK8SMSUsgSUxJSkEKK8SMSUsgSkVORQorxIxJSyBaT0xUQU4KK8SMSUtJIEpPU0lQCivEjElLSSBNQVJJSkEKK8SMSUtJxIYgxJBPUsSQRQorxIxJS0nEhiBDVkVUT01JUgorxIxJS0nEhiBEUkFHSUNBCivEjElLScSGIEVNSUwKK8SMSUtJxIYgRVZJQ0EKK8SMSUtJxIYgTUlMQU4KK8SMSUtJxIYgTklLT0xBCivEjElLScSGIFNURVZBTgorxIxJS0/FoCDFvVXFvUFOQQorxIxJS0/FoCDEkEVSxJAKK8SMSUtPxaAgxJBPUsSQRQorxIxJS0/FoCBFUsW9RUJFVAorxIxJS0/FoCBFUsW9RUJFVAorxIxJS0/FoCBGRVJFTkMKK8SMSUtPxaAgSk9TSVAgRFIKK8SMSUtPxaAgSlVMSUpBTkEKK8SMSUtPxaAgTEFESVNMQVYKK8SMSUtPxaAgTEVIRUwKK8SMSUtPxaAgTUFSSUpBCivEjElLT0pFVknEhiBWSU5LTworxIxJS09WScSGIFNSRVRLTworxIxJS1ZBUiBLQVJMTworxIxJTEFHIEpBTk/FoAorxIxJTEFHIE5BTkRPUgorxIxJTEFHIE5BTkRPUgorxIxJTEVHIEVWQQorxIxJTEnEhiBBVkRPCivEjElMScSGIEnFoFRWQU4KK8SMSUxJxIYgSk9TSVAKK8SMSUxJxIYgSlVMSUFOQQorxIxJTEnEhiBNQUxWSU5BCivEjElMScSGIE1BUktPCivEjElMSUsgQU5LQQorxIxJTElLIElMT05LQQorxIxJTElOR0lSSVMgUEFWTEUKK8SMSU7EjEFLIEdBQk9SCivEjElOxIxVUkFLIE1JSEFKTE8KK8SMSU7EjFVSQUsgUEFWTEUKK8SMSU7EjFVSQUsgU1RFVkFOCivEjElOxIxVUkVLIEJPxaBLTworxIxJTkRSQUsgREFVVAorxIxJTkRSQUsgU0FOSUpBCivEjElQIE1BVE8KK8SMSVBBSy1GQVpFS0HFoCBJQk9KQQorxIxJUEUgxJBPUsSQRQorxIxJUEUgRVLFvUVCRVQKK8SMSVBFIEVSxb1JS0EKK8SMSVBFIEZSQU5KQQorxIxJUEUgSVJFTgorxIxJUEUgSkFOT8WgCivEjElQRSBKT1NJUAorxIxJUEUgSlVMSUpBTkEKK8SMSVBFIExBU0xPCivEjElQRSBMQVNMTworxIxJUEUgTUFSSUpBCivEjElQRSBNQVJUQQorxIxJUEUgTUlIQUxKCivEjElQRSBNSUhBTEoKK8SMSVBFIFNUSkVQQU4KK8SMSVBJxIYgS0FUSUNBCivEjElQS0FSIEFORFJFSgorxIxJUEtBUiBTVEVWQU4KK8SMSVBMScSGIExBWkFSCivEjElQTEnEhiBNSUxBTgorxIxJUExJxIYgVkVSQQorxIxJUExJxIYgVklEQQorxIxJUkggREXFvUUKK8SMSVJIIFZBU0tBCivEjElSScSGIEpPxb1FRgorxIxJU0FSIEZFUkVOQyBESVBMIElORworxIxJU0FSIExBU0xPCivEjElUTFXEjEFOSU4gTUlMSUNBCivEjElWxIxJxIYgRVLFvUVCRVQKK8SMSVbEjEnEhiBNSUhBSkxPCivEjElWxIxJxIYgTUlMRQorxIxJVsSMScSGIE1JTEpBCivEjElWxIxJxIYgUkFET01JUgorxIxJVsSMScSGIFNBVk8KK8SMSVZPVknEhiBNSUxFVkEKK8SMSVZPVknEhiBSQURPVkFOCivEjElaTUFESUEgR1VTVEFWCivEjElaTUFESUEgVkVST05JS0EKK8SMSVpNQURJSkEgxJBVTEEKK8SMSVpNQURJSkEgScWgVFZBTgorxIxJWk1BRElKQSBKQU5PxaAKK8SMSVpNQURJSkEgS0FST0xKCivEjElaTUFESUpBIE1JS0kKK8SMSVpNQVIgQU5BCivEjElaTUFSIEFOSUNBCivEjElaTUFSIEpBTktPCivEjElaTUFSIEpPQUtJTQorxIxJWk1BUiBMQUpPxaAKK8SMSVpNQVIgTUFSSUpBCivEjElaTUFSIE1JUktPCivEjElaTUFSIFBBVkxFCivEjElaTUFSIFNURVZBTgorxIxJWk1BUiBWTEFESU1JUgorxIxJWk1FxaBJSkEgTUFHREEKK8SMSVpNScSGIEFOSUNBCivEjElaTUnEhiBJVkFOCivEjElaTUnEhiBSQURBCivEjElaTUnEhiBaT1JBCivEjElaTU9WScSGIFZJREFLCivEjE1FTElLIE1BUlRJTgorxIxNRUxJSyBSQVNUSVNMQVYKK8SMT8SMQUogU1VMTworxIxPxaBLT1YgTkFEQQorxIxPQcWgIElSRU5BCivEjE9CQU4gSk9OCivEjE9CQU4gSk9WQU4KK8SMT0JBTiBKT1ZBTgorxIxPQkFOIExJRElKQQorxIxPQkFOIE1BUklKQQorxIxPQkFOIE5JS1UKK8SMT0JBTk9WIMW9SVZLQQorxIxPQkFOT1YgQklMSkFOQQorxIxPQkFOT1YgRFJBR0lDQQorxIxPQkFOT1YgRFJBR09NSVIKK8SMT0JBTk9WIERVxaBBTgorxIxPQkFOT1YgSkVMRU5BCivEjE9CQU5PViBMSklMSkFOQQorxIxPQkFOT1YgTUVMQU5JSkEKK8SMT0JBTk9WIE1JTEpLQQorxIxPQkFOT1YgUlXFvUlDQQorxIxPQkFOT1YgU0xPQk9EQU4KK8SMT0JBTk9WIFNWRVRPCivEjE9CQU5PViBWQVNBCivEjE9CQU5PViBWTEFESVNMQVYKK8SMT0JBTk9WIFpPUkFOCivEjE9CQU5PVknEhiBCT8WgS08KK8SMT0JBTk9WScSGIEJSQU5JU0xBVgorxIxPQkFOT1ZJxIYgRFJBR0FOCivEjE9CQU5PVknEhiBEUkFHQU4KK8SMT0JBTk9WScSGIERSQUdBTgorxIxPQkFOT1ZJxIYgRFXFoEFOCivEjE9CQU5PVknEhi1HRVogTUFSSUpBCivEjE9CQU5PVknEhiBJTElKQQorxIxPQkFOT1ZJxIYgSkVMRU5BCivEjE9CQU5PVknEhiBMQVpBUgorxIxPQkFOT1ZJxIYgTEpJTEpBTkEKK8SMT0JBTk9WScSGIE5JS09MQQorxIxPQkFOT1ZJxIYgUkFETUlMQQorxIxPQkFOT1ZJxIYgU0FWQQorxIxPQkFOT1ZJxIYgU0FWTworxIxPQkFOT1ZJxIYgU0xPQk9EQU4KK8SMT0JBTk9WScSGIFZBTEVSSUpBCivEjE9CQU5PVknEhiBaT1JBTgorxIxPQkFOU0tJIERSQUdBTgorxIxPQkFOU0tJIE1JTEVOQQorxIxPQkFOU0tJIFJBRE9KS0EKK8SMT0JJxIYgUkVMSkEKK8SMT0JJxIYgU1RSQUhJTkpBCivEjE9CScSGIFRJTU9URUoKK8SMT0JPVCBJTE9OS0EKK8SMT0JSREEgSkFOS08KK8SMT0JSREEgSkFOS08KK8SMT0pJxIYgU1RFRkFOSURBCivEjE9LQSBJVkFOS0EKK8SMT0tBxaAgTFVDSUpBCivEjE9LQU4gTklLT0xBCivEjE9LQU5JQ0EgU0FWQQorxIxPS0FOSUNBIFNPRklKQQorxIxPS0nEhiBNSUxBTgorxIxPS0xKQVQgWkRFTktBCivEjE9LUkxJxIYgQkFSQkFSQQorxIxPS1JMScSGIEpPU0lQCivEjE9MQUsgQUxFS1NBTkRBUgorxIxPTEFLIERSQUdPTEpVQgorxIxPTEFLIERSQUdPTEpVQgorxIxPTEFLIEdPUkFOCivEjE9MQUsgS1JJU1RJTkEKK8SMT0xBSyBNSUhBSkxPCivEjE9MQUstTUlIQUxJSyBNQVJJSkEKK8SMT0xBS09WIE1JTEFOCivEjE9MQUtPViBNSUxFCivEjE9MQUtPViBQQVZMRQorxIxPTEFLT1ZJxIYgQU7EkEVMS0EKK8SMT0xBS09WScSGIE1PTUEKK8SMT0xBS09WScSGIE5JS09MQQorxIxPTEFLT1ZJxIYgU1ZFVE9aQVIKK8SMT0xBS09WScSGIFRFT0RPUgorxIxPTEFLT1ZJxIYgVkFOSkEKK8SMT0xFVknEhiBTVkVUSVNMQVYKK8SMT0xJxIYgxJBVUk8KK8SMT0xJxIYgQU7EkEVMS0EKK8SMT0xJxIYgQk9STworxIxPTEnEhiBERVNBCivEjE9MScSGIERVxaBBTgorxIxPTEnEhiBEVcWgS08KK8SMT0xJxIYgRUxJWkFCRVRBCivEjE9MScSGLUdBxIZFxaBBIFNMQVZJQ0EKK8SMT0xJxIYgSVZBTgorxIxPTEnEhiBKT1ZBTktBCivEjE9MScSGIEpPVkFOCivEjE9MScSGIEpPVkFOCivEjE9MScSGIExVS0EKK8SMT0xJxIYgTUFSQQorxIxPTEnEhiBNQVJJSkEKK8SMT0xJxIYgTUlMQU4KK8SMT0xJxIYgTUlMQU4KK8SMT0xJxIYgTUlMQU4KK8SMT0xJxIYgTUlSSkFOQQorxIxPTEnEhiBNSVJLTworxIxPTEnEhiBNSVJPU0xBVktBCivEjE9MScSGIFBFVEFSCivEjE9MScSGIFJBREEKK8SMT0xJxIYgUkFETUlMQQorxIxPTEnEhiBSSVNUTworxIxPTEnEhiBTQVZBCivEjE9MT1ZJxIYgQk9HT0xKVUIKK8SMT0xPVknEhiBEUkFHQU4KK8SMT0xPVknEhiBEVcWgQU4KK8SMT0xPVknEhiBNSUxFCivEjE9MT1ZJxIYgTUlMSUpBTkEKK8SMT0xPVknEhiBPTEdBCivEjE9MT1ZJxIYgUEVUQVIKK8SMT0xPVknEhiBSQURPU0xBVgorxIxPTE9WScSGIFJBRE9WQU4KK8SMT0xPVknEhiBTVEVWQU4KK8SMT0xPVknEhiBWSURPU0FWCivEjE9MT1ZJxIYgVkxBRE8KK8SMT01BIMSQVUxBCivEjE9NQSDEkFVMQQorxIxPTUnEhiDEkFVSxJBJTkEKK8SMT01JxIYgREFSQQorxIxPTUnEhiBEUkFHQU4KK8SMT01JxIYgRFXFoEFOS0EKK8SMT01JxIYgRVLFvUVCRVQKK8SMT01JxIYgSUxJSkEKK8SMT01JxIYgSkHFoEtPCivEjE9NScSGIEpBxaBLTworxIxPTUnEhiBLUlNUQQorxIxPTUnEhiBMSURJSkEKK8SMT01JxIYgTEpVQk9NSVIKK8SMT01JxIYgTUlMT8WgCivEjE9NScSGIE1JUk9MSlVCCivEjE9NScSGIE1MQURFTgorxIxPTUnEhiBTTE9CT0RBTgorxIxPTUnEhiBTTUlMSkFOQQorxIxPTUnEhiBUT0RPUgorxIxPTUnEhiBUT0RPUgorxIxPTU9SIElMT05LQQorxIxPTU9SIE1BVElMREEKK8SMT05HUkFEQUMgREFOSUpFTEEKK8SMT05HUkFEQUMgSVZBTktBCivEjE9OR1JBREFDIFJBRE9TTEFWCivEjE9OScSGIEFOS0EKK8SMT05JxIYgTUlMRU5LTworxIxPTknEhiBNSUxPxaAKK8SMT05JxIYgUEVUQVIKK8SMT05JxIYgVElKQU5BCivEjE9OScSGIFpPUkFOCivEjE9OS0EgxJBFUsSQCivEjE9OS0EgR09SREFOQQorxIxPTktBIEtBUk9MSgorxIxPTktBIFBFVEFSCivEjE9OS0HFoCBFTUlMCivEjE9OS0HFoCBHQUJSSUVMQQorxIxPTktBxaAgTEFESVNMQVYKK8SMT05LScSGIMW9SVZLTworxIxPTktJxIYgQUxFS1NBCivEjE9OS0nEhiBCSUxKQU5BCivEjE9OS0nEhiBCT0dPTEpVQiBMRUtBUgorxIxPTktJxIYgQk9SSVNMQVYKK8SMT05LScSGIERSQUdBTgorxIxPTktJxIYgSkVMQQorxIxPTktJxIYgSlVESVQKK8SMT05LScSGIExKSUxKQU5BCivEjE9OS0nEhiBNQVJJSkEKK8SMT05LScSGIE1JTEFOS0EKK8SMT05LScSGIE1JTEVOQQorxIxPTktJxIYgTUlMT8WgCivEjE9OS0nEhiBNSUxPUkFECivEjE9OS0nEhiBNSUxPUkFECivEjE9OS0nEhiBNSUxPVkFOCivEjE9OS0nEhiBNT03EjElMTyBESVBMIElORworxIxPTktJxIYgTkVCT0rFoEEKK8SMT05LScSGIE5FU1RPUgorxIxPTktJxIYgUEVUQVIKK8SMT05LScSGIFJBREVOS08KK8SMT05LScSGIFJBRE9TTEFWCivEjE9OS0nEhiBTQcWgQQorxIxPTktJxIYgU0xBVktPCivEjE9OS0nEhiBTTE9CT0RBTgorxIxPTktJxIYgU05Fxb1BTkEKK8SMT05LScSGIFNUQU1FTkEKK8SMT05LScSGIFNURVZBTgorxIxPTktJxIYgVElIT01JUgorxIxPTlRPxaAgSk/FvUVGCivEjE9OVE/FoCBaT1JBCivEjE9QxIxJxIYgTUFSVElOCivEjE9QSUsgUEVUQVIKK8SMT1BJSyBWQVNJTElKQQorxIxPUE9SREEgVlVLT1NBVkEKK8SMT1IgRlJBTkpBCivEjE9SIEpPU0lQCivEjE9SQUsgSk9TSVAKK8SMT1JBSyBTVElQRQorxIxPUkFMScSGIElWQU5LQQorxIxPUkJBIMSQRVLEkAorxIxPUkJBIEnFoFRWQU4KK8SMT1JCQSBKT1ZBTgorxIxPUkJBIEpPVkFOCivEjE9SQkEgTUlIQUxKCivEjE9SREEgQUxFS1NBTkRSQQorxIxPUkRBIEFMSUpBCivEjE9SREEgTkFERcW9REEKK8SMT1JEQSBUT01JU0xBVgorxIxPUkRBIFZFUkEKK8SMT1JEQcWgIEFORFJJSkEKK8SMT1JEQcWgIEFSUEFECivEjE9SREHFoCBEVcWgQU5LQQorxIxPUkRBxaAgRVLFvUVCRVQKK8SMT1JEQcWgIEhBUkdJVEEKK8SMT1JEQcWgIElSRU5BCivEjE9SREHFoCBMQVNMTworxIxPUkRBxaAgTUlIQUxKCivEjE9SREHFoCBTTEFWS08KK8SMT1JEQVIgQlJBTktPCivEjE9SREFSRVYgTEpJTEpBTkEKK8SMT1JEQVJFViBWRVJBCivEjE9SREFST1YgQk9SSVNMQVZLQQorxIxPUkRBUk9WIElWQU4KK8SMT1JEQVJPViBTVkVUSVNMQVYKK8SMT1JEQVJPViBURU9ET1IKK8SMT1JEQVJPViBURU9ET1IKK8SMT1JJxIYgTUFSSUpBTgorxIxPUk5FTktJIEJPUklTTEFWCivEjE9STkVOS0kgRFJBR09MSlVCCivEjE9STkVOS0kgSk9WQU4KK8SMT1JORU5LSSBWTEFEQQorxIxPUk5JIE1JTFVOQQorxIxPUk5JSiBNSVJPU0xBVgorxIxPUlRBTiDFvUlWS08KK8SMT1JUQU4gQk/FoEtPCivEjE9SVEFOIE1JTElDQQorxIxPUlRBTiBOQURBCivEjE9SVEFOIFJBRElWT0oKK8SMT1JUQU5PVkHEjEtJIFNMT0JPREFOCivEjE9WScSGIERBUktPCivEjE9WScSGIERBUktPCivEjE9WScSGIERSQUdBTgorxIxPVknEhiBHVVNUQVYKK8SMT1ZJxIYgSVZBTgorxIxPVknEhiBKQU5LTworxIxPVknEhiBKT1NJUAorxIxPVknEhiBLT1ZJTEpLQQorxIxPVknEhiBLUlNUTworxIxPVknEhiBMQURBCivEjE9WScSGIE1BUklKQU5BCivEjE9WScSGIE1JTEFOCivEjE9WScSGIE1JTEVWQQorxIxPVknEhiBNT01JUgorxIxPVknEhiBPTEdBCivEjE9WScSGIFBFVEFSCivEjE9WScSGIFJBRE/FoAorxIxPVknEhiBSQURPU0xBVgorxIxPVknEhiBSQVRLTworxIxPVknEhiBTTkXFvUFOQQorxIxPVknEhiBTVEFOS08KK8SMT1ZJxIYgVkxBREEKK8SMT1ZJxIYgVkxBVEtPCivEjE9WScSGIFpPUklDQQorxIxPVklMTyBCUkFOSVNMQVYKK8SMT1ZTIEpBxaBBCivEjE9WUyBQQVZMRQorxIxPVlMgUEFWTEUKK8SMT1ZTIFZFUklDQQorxIxSRVROSUstQ1ZFSkFOT1ZJxIYgT0xHQSBESVBMIElORworxIxSTkpFS0EgWkxBVEtPCivEjFJOT0pBxIxLSSBEQU5JU0xBVgorxIxVxIwgSkVMRU5BCivEjFXEjCBNQVJJSkEKK8SMVcSMSUxPVknEhiBCUkFOS0EKK8SMVcSMS09WScSGIMSMRURPCivEjFXEjEtPVknEhiDFvUVMSktPCivEjFXEjEtPVknEhiDEkFVSTworxIxVxIxLT1ZJxIYgQk/FvUlEQVIKK8SMVcSMS09WScSGIERSQUdBTgorxIxVxIxLT1ZJxIYgUkFET0pLQQorxIxVxIxLT1ZJxIYgU0FWQSBESVBMIElORworxIxVxIxLT1ZJxIYgU0xPQk9EQU4KK8SMVcSMS09WScSGIFNQQVNBCivEjFXEjEtPVknEhiBWTEFESU1JUgorxIxVxIxVTElTIERJTUlUUklKRQorxIxVQlJBTk9WScSGIFJBRE9NSVIKK8SMVUJSSUxPIEFOS0EKK8SMVUJSSUxPIERSQUdBTgorxIxVQlJJTE8gRFXFoEFOCivEjFVCUklMTyBKT1ZPCivEjFVCUklMTyBMQVpPCivEjFVCUklMTyBNSUxBTgorxIxVQlJJTE8gUEVUQVIKK8SMVUJSSUxPIFNPRklKQQorxIxVQlJJTE8gVkxBRElNSVIKK8SMVUJSSUxPVknEhiBNSUxBTgorxIxVQlJPVknEhiBTVEVWQU4KK8SMVURBTk9WIMSMRURBCivEjFVEQU5PViBBTEVLU0FOREFSCivEjFVEQU5PViBNQVJJSkEKK8SMVURBTk9WIE1JTElDQQorxIxVREnEhiBJVkFOCivEjFVEScSGIEpPVkFOS0EKK8SMVURJxIYgTUlMT1JBRAorxIxVREnEhiBOSUtPTEEKK8SMVURJxIYgUFJFRFJBRworxIxVREnEhiBTTE9CT0RBTgorxIxVRE9NSVJPVknEhiBCT0dEQU4KK8SMVURPTUlST1ZJxIYgVVJPxaAKK8SMVUdBTEogQU5LQQorxIxVR0FMSiBNSVJKQU5BCivEjFVHQUxKIFNWRVRPCivEjFVHRUxKIEFOR0VMSU5BCivEjFVIQSBNQVJJSkEKK8SMVUhBIFBBVkxFCivEjFVIQSBTTEFWS08KK8SMVUhBIFNURVZBTgorxIxVSEEtVlVKS09WIFJVxb1BCivEjFVIQSBaTEFUQQorxIxVSkFOT1YgQk9SSVMKK8SMVUtBIFZKRUtPU0xBVgorxIxVS0FMSknEhiBORVZFTktBCivEjFVLScSGIEJPUklWT0pFCivEjFVLScSGIE1JTEtBCivEjFVLScSGIE1JUlNBREEKK8SMVUtJxIYgU0xPQk9EQU4KK8SMVUtJxIYgWk9SQU4KK8SMVUtMSkHFoCBJVkFOCivEjFVLTEpFSyBGUkFOSkEKK8SMVUtMSkVLIE1BUkdJVEEKK8SMVUtMSkVWScSGIEJVRElNS0EKK8SMVUtPVknEhiBTTEFWS08KK8SMVUtVUkFOT1ZJxIYgxb1JS0EKK8SMVUtVUkFOT1ZJxIYgTUlKQQorxIxVTEFKRVZJxIYgSk9WQU4KK8SMVUxBSkVWScSGIFNUQU5LTworxIxVTEnEhiBKT1ZBCivEjFVMSUsgSEFKTkVSSUsKK8SMVUxJTkEgxb1FTEpLTworxIxVTEpBSyBEUkFHQQorxIxVTEpBSyBJVkFOCivEjFVMSkFLIEtBUkxPCivEjFVMSkFLIE1JUktPCivEjFVMSkFLIE5BREEKK8SMVUxKQVQgREFORQorxIxVTEpBVCBKQUtPVgorxIxVTEpJxIYgxb1JVk9KSU4KK8SMVUxPIEJPxb1BCivEjFVMTyBNQVJLTworxIxVTE8gTUFUTworxIxVTktPIEJSQU5LTworxIxVUEFLIEFMRUtTQU5EQVIKK8SMVVBFTEpJxIYgTUlMSVZPSkUKK8SMVVBJxIYgxJBPUsSQRQorxIxVUEnEhiBCT8W9SURBUgorxIxVUEnEhiBCT0pBTgorxIxVUEnEhiBCUkFOSVNMQVYKK8SMVVBJxIYgRFJBR0FOCivEjFVQScSGIERVxaBBTgorxIxVUEnEhiBIUklTVElGT1IKK8SMVVBJxIYgSkVMRU5BCivEjFVQScSGIEtBSktBCivEjFVQScSGIEtBSktBCivEjFVQScSGIEtBVElDQQorxIxVUEnEhiBLQVRJQ0EKK8SMVVBJxIYgS09TVEFESU5LQQorxIxVUEnEhiBLUklTVElOQQorxIxVUEnEhiBMSlVCT01JUgorxIxVUEnEhiBNSUxBTgorxIxVUEnEhiBNSUxJQ0EKK8SMVVBJxIYgTUlPRFJBRworxIxVUEnEhiBNSU9EUkFHCivEjFVQScSGIE1JT0RSQUcKK8SMVVBJxIYgTUlSSkFOQQorxIxVUEnEhiBNSVJPU0xBVgorxIxVUEnEhiBPTEdBCivEjFVQScSGIFJBRElOS0EKK8SMVVBJxIYgUkFET1NMQVYKK8SMVVBJxIYgU1BPTUVOS0EKK8SMVVBJxIYgU1RFVkFOCivEjFVQScSGIFNURVZBTgorxIxVUEnEhiBTVE9KQU4KK8SMVVBJxIYgVVJPxaAKK8SMVVBJxIYgWk9SQU4KK8SMVVLEjEnEhiBEVcWgQU4KK8SMVVLEjEnEhiBJTElKQQorxIxVUsSMScSGIExBWkFSCivEjFVSxIxJxIYgU0xPQk9EQU5LQQorxIxVUkdBTk9WIEVNSUwKK8SMVVJJxIYgxb1BUktPCivEjFVSScSGIMSQT1LEkEUKK8SMVVJJxIYgRFJBR09TTEFWQQorxIxVUknEhiBEVcWgQU5LQQorxIxVUknEhiBNSUxFTkEKK8SMVVJJxIYgTUlMT8WgCivEjFVSScSGIE5BVEFMSUpBCivEjFVSScSGIFJBRE9TTEFWIERSIFBST0YKK8SMVVJJxIYgU0xPQk9EQU4KK8SMVVJJxIYgVkFTQQorxIxVUknEhiBWRUxJTktBCivEjFVSScSGIFZJRE9TQVZBCivEjFVSScSGIFZJRE9TQVZBCivEjFVST1ZJxIYgREFOSUxPCivEjFVST1ZJxIYgVlVLU0FOCivEjFVSVcWgS0kgR0FWUkEKK8SMVVJVxaBLSSBNSUNBCivEjFVTVE9WScSGIEFSSUYKK8SMVVRVUkEgTUFSS08KK8SMVVRVUknEhiBKRVJPTklNCivEjFVUVVJJTE8gxIxFRE9NSVIKK8SMVVRVUklMTyBCT8W9QQorxIxVVFVSSUxPIE1JTElWT0pFCivEjFVUVVJJTE8gU0xPQk9EQU4gRElQTCBJTkcKK8SMVVRVUklMT1YgTUFSSUpBCivEjFVUVVJJTE9WIE1JTE/FoAorxIxVVFVSSUxPViBNSUxPxaAKK8SMVVRVUklMT1YgU1ZFVE9aQVIKK8SMVVRVUklMT1YgVkVMSU5LQQorxIxVVFVSSUxPViBWVUpJQ0EKK8SMVVZBTE8gTEpVQklDQQorxIxVVkFSREnEhiBBTlRVTgorxIxWT0tJxIYgTUFSS08KK8SMVk9LScSGIFJBVEtPCivEjFZPUknEhiBEVcWgQU4KK8SMVk9SScSGIE1JTE9KRQorxIxWT1JLT1YgTEpVQk9NSVIKK8SMVk9SS09WIFpEUkFWS08KK8SMVk9SS09WIFpMQVRBTgorxIxWT1JPLcSQVUtJxIYgRFXFoEFOS0EKK8SMVk9STyBET0JST1NMQVYKK8SMVk9ST1ZJxIYgSkVMRU5LQQorxIxWT1JPVknEhiBMSlVCTworxIxWT1JPVknEhiBSQVRLTworxIxWT1JPVknEhiBWVUpJQ0EKK8WgxIZFS0nEhiBCVURJTUlSCivFoMSGRUtJxIYgRFJBR09NSVIKK8WgxIZFS0nEhiBLT1NBCivFoMSGRUtJxIYgTUlMQU5LQQorxaDEhkVLScSGIE1JTEnEhgorxaDEhkVLScSGIE1JTElDQQorxaDEhkVLScSGIE1JT01JUgorxaDEhkVLScSGIFNMT0JPREFOCivFoMSGRUtJxIYgU1ZFVE9aQVIKK8WgxIZFS0nEhiBWVUtPCivFoMSGRVBBTsSMRVZJxIYgxJBPUsSQRQorxaDEhkVQQU7EjEVWScSGIE5JS09MQQorxaDEhkVQQU5PVknEhiBCT0dPTEpVQgorxaDEhkVQQU5PVknEhiBCUkFOSVNMQVYKK8WgxIZFUEFOT1ZJxIYgRE9CUk9TTEFWQQorxaDEhkVQQU5PVknEhiBEUkFHQU4KK8WgxIZFUEFOT1ZJxIYgRFJBR0FOCivFoMSGRVBBTk9WScSGIERSQUdVVElOCivFoMSGRVBBTk9WScSGIERVxaBBTgorxaDEhkVQQU5PVknEhiBHT1JBTgorxaDEhkVQQU5PVknEhiBHT1JEQU5BCivFoMSGRVBBTk9WScSGIExKVUJPTUlSCivFoMSGRVBBTk9WScSGIE1JTEVWQQorxaDEhkVQQU5PVknEhiBNSUxPVkFOCivFoMSGRVBBTk9WScSGIE1JT0RSQUcKK8WgxIZFUEFOT1ZJxIYgUkHFoEtPCivFoMSGRVBBTk9WScSGIFJBRE9WQU4KK8WgxIZFUEFOT1ZJxIYgUkFOS08gRElQTCBJTkcKK8WgxIZFUEFOT1ZJxIYgU0lOScWgQQorxaDEhkVQQU5PVknEhiBaT1JBTgorxaDEhkVQQU5PVknEhiBaT1JBCivFoMSGRVBPVknEhiBQRVRBUgorxaDEhkVSQkHEhkVWIEdMSUdPUklKRQorxaDEhkVWxIxJSyBQQVZMRQorxaDEhklCQU4gTUFSSU5BCivFoMSGT1BJxIYgTUlPRFJBRworxaDEhk9QScSGIFNUQU5JTUlSCivFoMSGT1BVTE9WScSGIFBFVEFSCivFoMSGVVJJQyBKT1NJUAorxaBBxaBJxIYgxb1JVktPCivFoEHFoEnEhiDEkE9SxJBFCivFoEHFoEnEhiBEVcWgQU4KK8WgQcWgScSGIE1JTEFOCivFoEHFoEnEhiBNSUxBTgorxaBBxaBJxIYgTUlMT8WgCivFoEHFoEnEhiBNSVJLTworxaBBxaBJxIYgTkVWRU5LQQorxaBBxaBJxIYgUEVUQVIKK8WgQcWgScSGIFNBVk8KK8WgQcWgScSGIFNURVZBTgorxaBBxaBJxIYgWk9SQU4KK8WgQcWgSU4gREFOSUNBCivFoEHFoElOIFJBRE9NSVIKK8WgQcWgSU5BxIxLSSBNQVJJSkEKK8WgQcWgSU5BxIxLSSBTT05KQQorxaBBxaBJTkHEjEtJIFZBU0lMSUpFCivFoEHFoExKSU4gTEFaQVIKK8WgQcWgT1ZJxIYgVFJJRktPCivFoEFCQU5JIE5BWklNCivFoEFCQU5PVknEhiBBQkRVUkFITUFOCivFoEFCQU5PVknEhiBPQlJBRAorxaBBQkVDIERSQUdJQ0EKK8WgQUJJxIYgxJBVUk8KK8WgQUJJxIYgSFVTRUlOCivFoEFCScSGIFBBVkxFCivFoEFCTEkgTUFSVE9OCivFoEFCTEkgTUlIQUpMTworxaBBQk9WScSGIE1FSE1FREFMSUpBCivFoEFERSBKRUxFTkEKK8WgQUZBUklLIExKSUxKQU5BCivFoEFGUkFOSiBBTkRSSUpBCivFoEFGUkFOSiBERcW9RQorxaBBRlJBTkogRlJBTkpBCivFoEFGUkFOSiBMQVNMTworxaBBRlJBTkogTEFTTE8KK8WgQUZSQU5KIFBJUk/FoEtBCivFoEFGUkFOSiBTVEVWQU4KK8WgQUZSQU5KIFRFT0RPUkEKK8WgQUdVTk9WScSGIERVxaBBTgorxaBBR1VOT1ZJxIYgTUlMSVZPSgorxaBBSU4gQU5EUklKQQorxaBBSU4gTUlMRVZBCivFoEFJTiBaQUdPUktBCivFoEFJTk9WScSGIERVxaBBTgorxaBBSU5PVknEhiBNQVJJTkEKK8WgQUpBVE9WScSGIEpFTElDQQorxaBBSkFUT1ZJxIYgWkRSQVZLTworxaBBSkJFUiBEQU5JQ0EKK8WgQUpCRVIgTUlMRU5LTworxaBBSkRJSyBGUkFOQ0nFoEtBCivFoEFKRkFSIFBBVkxFCivFoEFKSU4gTUlMT1JBRAorxaBBSklOT1ZJxIYgRFJBR09TTEFWCivFoEFKSU5PVknEhiBEVcWgQU4KK8WgQUpJTk9WScSGIEdPUkRBTkEKK8WgQUpJTk9WScSGIE1BUklOS08KK8WgQUpJTk9WScSGIFNJREEKK8WgQUpOIERVxaBBTgorxaBBSk5CRVJHRVIgSk9WQU4KK8WgQUpOQkVSR0VSIExJTEkKK8WgQUpOT1YgSk9WQU4KK8WgQUpOT1YgS0FUSUNBCivFoEFKTk9WIFBFVEFSCivFoEFKTk9WScSGIFJBRElOS0EKK8WgQUpUSSBFVEVMS0EKK8WgQUpUSSBHSVpFTEEKK8WgQUpUSSBLQVRJQ0EKK8WgQUpUSSBNQVJJSkEKK8WgQUpUT8WgIMSQT1LEkEUKK8WgQUpUT8WgIMSQVVJBCivFoEFKVE/FoCBMSlVCScWgQQorxaBBSlRPxaAgTklLT0xBCivFoEFKVE/FoCBTSU1BCivFoEFKVE/FoCBTSU1BCivFoEFLScSGIMW9RUxKS08KK8WgQUtJxIYgxJBPUsSQRQorxaBBS0nEhiBJTElKQQorxaBBS0nEhiBJTElKQQorxaBBS0nEhiBJTElKQQorxaBBS0nEhiBKQU5KQQorxaBBS0nEhiBLQVRBCivFoEFLScSGIE1BTkUKK8WgQUtJxIYgTUlMVVRJTgorxaBBS0nEhiBSQURFCivFoEFLScSGIFpPUktBCivFoEFLT1RBIERVxaBBTgorxaBBS09UQSBLT0pPCivFoEFLT1RBIE1JTEFOCivFoEFLT1RBIE1JTE9SQUQKK8WgQUtPVEEgU0lNRU9OCivFoEFLT1RJxIYgTEpVQk9NSVIKK8WgQUtPVEnEhiBNSVJKQU5BCivFoEFLVSBNRUhNRUQKK8WgQUxBQkFMSUpBIERSQUdPTUlSCivFoEFMQUJBTElKQSBWQVNPCivFoEFMQUpJxIYgU1RFVkFOCivFoEFMQU1PTiDFoEFORE9SCivFoEFMQU1PTiBBTkRSSUpBCivFoEFMQU1PTiBKT1NJUAorxaBBTEFNT04gSk9TSVAKK8WgQUxBTU9OIE1JxaBBCivFoEFMQU1PTiBNSUhBSkxPCivFoEFMQU1PTiBNSUhBSkxPCivFoEFMQU5LSSBKQU5PxaAKK8WgQUxBTktJIEpBTk/FoAorxaBBTEJPVCBaVVpBCivFoEFMRVIgVkVSQQorxaBBTEdPIEpFTElTQVZFVEEKK8WgQUxJUFVST1ZJxIYgTUlMT1ZBTgorxaBBTElQVVJPVknEhiBTTEFWScWgQQorxaBBTUFUScSGIE5FTUFOSkEKK8WgQU1FQyBNSUxJQ0EKK8WgQU5ET0wgQVRJTEEKK8WgQU5ET0wgQVRJTEEKK8WgQU5ET0wgScWgVFZBTgorxaBBTkRPTCBLQVRJQ0EKK8WgQU5ET0wgTUFUSUpBCivFoEFORE9MIE1JSEFKTE8KK8WgQU5ET1IgSUxPTkEKK8WgQU5ET1IgSk9TSVAKK8WgQU5ET1IgTEFESVNMQVYKK8WgQU5ET1IgTUFSSUpBCivFoEFORE9SIFRJQk9SCivFoEFORE9SSSDFoEFSSUtBCivFoEFOSknEhiBNSUxBRElOCivFoEFOT1ZJxIYgRFXFoEFOCivFoEFOVEEgxaBBTkRPUgorxaBBTlRBIEFNQUxJSkEKK8WgQU5UQSBCRUxBCivFoEFOVEEgRFXFoEFOS0EKK8WgQU5UQSBGRVJFTkMKK8WgQU5UQSBJxaBUVkFOCivFoEFOVEEgSUxPTktBCivFoEFOVEEgSU1SRQorxaBBTlRBIEpPU0lQCivFoEFOVEEgTEFTTE8KK8WgQU5UQSBNSVJPU0xBVgorxaBBTlRBIFBBTAorxaBBTlRBIFNJTUEKK8WgQU5UQSBTTEFWS08KK8WgQU5UQSBTT0ZJSkEKK8WgQU5UQSBTVEVWQU4KK8WgQU5UQSBWSU5LTworxaBBTlRBIFZMQURJTUlSCivFoEFOVEFLIEpPU0lQCivFoEFOVEFLIEtBUkxPCivFoEFOVEFMQUIgU09GSUpBCivFoEFOVEVLIMW9RUxKS08KK8WgQU5URUsgWkRFTktBCivFoEFQSSBQSVJPxaBLQSBESVBMIElORworxaBBUEnEhiBOSUtPTEEKK8WgQVBJTkEgTUlST1NMQVYKK8WgQVBPTkpBIEpPVkFOCivFoEFQT05KQSBNQVJLTworxaBBUE9OSkFDIMW9QVJLTworxaBBUE9OSkFDIMW9QVJLTworxaBBUE9OSkFDIEFMRUtTQU5EQVIKK8WgQVBPTkpBQyBKRUxLQSBQUk9GRVNPUgorxaBBUE9OSkFDIFJBREEKK8WgQVBPTkpBQyBTVEVWQU4KK8WgQVBPTkpTS0kgUkFESVZPSgorxaBBUFVSScSGIFNWRVRPWkFSCivFoEFSxIxBTlNLSSBKVUxLQQorxaBBUsSMQU5TS0kgTUlMSUNBCivFoEFSxIxBTlNLSSBNSVJPU0xBVgorxaBBUsSMRVYgQU5UT05JSkEKK8WgQVLEjEVWIEpFTEVOQQorxaBBUsSMRVYgTUlST1NMQVZBCivFoEFSxIxFViBOSUtPTEEKK8WgQVLEjEVWIFZMQURJTUlSCivFoEFSxIxFVknEhiDFvUFSS08KK8WgQVLEjEVWScSGIMW9RUxJTUlSCivFoEFSxIxFVknEhiBBTklDQQorxaBBUsSMRVZJxIYgQlJBVElNSVIKK8WgQVLEjEVWScSGIERVxaBBTgorxaBBUsSMRVZJxIYgR1JPWkRBTkEKK8WgQVLEjEVWScSGIElMS0EKK8WgQVLEjEVWScSGIEtBVElDQQorxaBBUsSMRVZJxIYgTUFSR0lUQSBEUgorxaBBUsSMRVZJxIYgTUlMRU5BCivFoEFSxIxFVknEhiBORUJPSsWgQQorxaBBUsSMRVZJxIYgUEVUQVIKK8WgQVLEjEVWScSGIFBSRURSQUcKK8WgQVLEjEVWScSGIFJBSktPCivFoEFSxIxFVknEhiBWSURPSkUKK8WgQVLEjEVWScSGIFZPSklTTEFWCivFoEFSxaBBTlNLSSBNQVJJTktPCivFoEFSxaBBTlNLSSBNSUxBTgorxaBBUkEgSU1SRQorxaBBUkEgSU1SRQorxaBBUkFDIMSQT1LEkEUKK8WgQVJBQyBCSUxKQU5BCivFoEFSQUMgQk/FoEtPCivFoEFSQUMgRFXFoEFOCivFoEFSQUMgRFXFoEFOCivFoEFSQUMgTUlMQU4KK8WgQVJBQyBNSUxFCivFoEFSQUMgTUlMSUNBCivFoEFSQUMgTUlPRFJBRworxaBBUkFDIFJBRE9KRQorxaBBUkFDIFJBRE9NSVIKK8WgQVJBQyBSQURPVkFOCivFoEFSQUMgUlXFvUlDQQorxaBBUkFDIFNURVZBCivFoEFSQUMgU1ZFVE9aQVIKK8WgQVJBTkRJIMWgQU5ET1IKK8WgQVJBTk9WScSGIEFOSVRBCivFoEFSQU5PVknEhiBEUkFHScWgQQorxaBBUkFOT1ZJxIYgTUlMQURJTiBEUiBMRUtBUgorxaBBUkFOT1ZJxIYgTUlMT8WgCivFoEFSQU5PVknEhiBNSU9EUkFHCivFoEFSQU5PVknEhiBaT1JBTgorxaBBUkVOQUMgQk/FvUlEQVIKK8WgQVJFTkFDIE1BUktPCivFoEFSRU5BQyBST1pJTkEKK8WgQVJFTkFDIFZJREFLCivFoEFSRU5BQyBWT0pJU0xBVgorxaBBUkdBxIwgQlJBTktPCivFoEFSR0nEhiBNSUxPUkFECivFoEFSR0nEhiBWTEFESU1JUgorxaBBUkdJxIYgWkxBVElDQQorxaBBUkdJTiDFvUFSS08KK8WgQVJHSU4gTUFSSUpBCivFoEFSSSBNQVJJSkEKK8WgQVJJIFNURVZBTgorxaBBUknEhiBKT1NJUAorxaBBUknEhiBLQVRBUklOQQorxaBBUknEhiBLT1NUQQorxaBBUknEhiBMSlVCSUNBCivFoEFSScSGIE1BUklKQQorxaBBUknEhiBNQVRPCivFoEFSScSGIE5FTkFECivFoEFSScSGIFNMT0JPREFOCivFoEFSScSGIFNPRklKQQorxaBBUknEhiBTVEVWQU4KK8WgQVJJxIYgVE9NSVNMQVYgTVIKK8WgQVJJxIYgWlZFWkRBTkEKK8WgQVJJSyBBTkEKK8WgQVJJSyBBTkRSSUpBCivFoEFSSUsgSk9WQU4KK8WgQVJJSyBLQVRJQ0EKK8WgQVJJSyBMSlVCSUNBCivFoEFSSUsgTUlST1NMQVYKK8WgQVJJSyBTVEVWQU4KK8WgQVJJSy1WSURJxIYgTkFEQQorxaBBUklLIFZMQURJTUlSCivFoEFSS0FESSBWRVJPTklLQQorxaBBUktBTkogQU5UT04KK8WgQVJLQU5KIEZFUkVOQworxaBBUktBTkogRlJBTkpBCivFoEFSS0FOSiBKQU5PxaAKK8WgQVJLQU5KQUMgRkVSRU5DCivFoEFSS0VaSS1QRVRSScSGIE1BUkdJVEEKK8WgQVJLScSGIFNSxJBBTgorxaBBUktPVknEhiBEVcWgQU4KK8WgQVJLT1ZJxIYgTUlPRFJBRyBEUgorxaBBUktPVknEhiBaT1JBTgorxaBBUk5KQUkgQU5LSUNBCivFoEFSTkpBSSBNSUtMT8WgCivFoEFSTkpBSSBQQUwKK8WgQVJPIEpPVkFOCivFoEFSTyBOQURBCivFoEFST8WgSSBWQUxFUklKQQorxaBBUk/FoEtPVknEhiBWVUtJQ0EKK8WgQVJPSS1TQUJPIFZFUkEKK8WgQVJPVknEhiDEkFVSTworxaBBUk9WScSGIE1JUktPCivFoEFST1ZJxIYgUEVUQVIKK8WgQVJVIERVxaBJQ0EKK8WgQVJWQVJJIMWgQU5ET1IKK8WgQVJWQVJJIEtBUk9MSgorxaBBUlZBUkkgTUFSVEEKK8WgQVJWQVJJIFJPWkFMSUpBCivFoEFSVkFSSSBWQUxFUklKQQorxaBBU0lWQVIgQUhNRUQKK8WgQVRBUkEgTUlMQU4KK8WgQVRPUkEgU1RPSkFOCivFoEFUUknEhiBBTkEKK8WgQVRSScSGIEJSQU5JU0xBVgorxaBBVUxBIEdPUkFOCivFoEFVTEEgUkFET1ZBTgorxaBBVUxJxIYgRElNSVRSSUpFCivFoEFWRUxJTiDFoEFORE9SCivFoEFWRUxJTiBKT1NJUAorxaBBVkVMSU4gSk9WQU4KK8WgQVZFTElOIEpVTElKQQorxaBBVkVSRElKQSBOSUtPTEEKK8WgQVZJSkEgRFXFoEFOCivFoEFWSUpBIE1JTEUKK8WgQVZJSkEgTUlMT1JBRAorxaBBVklKQSBQRVRBUgorxaBBVklKQSBSQURFCivFoEFWUkxKVUdBIE1JTEFOCivFoEXEjEnEhiBBTElKQQorxaBFxIxJxIYgSlVMS0EKK8WgRcWgQSBTTEFWS08KK8WgRcWgRUxKQSBCUkFOSU1JUgorxaBFxaBFTEpBIE1BUklKQU4KK8WgRcWgRVJJTkFDIMSQT1LEkEUKK8WgRcWgRVZJxIYgxJBPUsSQRQorxaBFxaBFVknEhiBEUkFHSUNBCivFoEXFoEVWScSGIExFT05BCivFoEXFoEVWScSGIExKSUxKQU5BCivFoEXFoEVWScSGIE1BUkEKK8WgRcWgRVZJxIYgTUlMSVZPSgorxaBFxaBFVknEhiBTVEVWQU4KK8WgRcWgScSGIMW9SVZPVEEgRElQTCBJTkcKK8WgRcWgScSGIEFVUkVMSUpBCivFoEXFoEnEhiBEUkFHT0xKVUIKK8WgRcWgScSGIERSQUdPTEpVQgorxaBFxaBJxIYgVkVSQQorxaBFxaBJxIYgVklEQQorxaBFxaBLQVIgTkFEQQorxaBFxaBMSUpBIMSMRURBCivFoEXFoExJSkEgQlJBTktPCivFoEXFoExJSkEgRFJBR0FOCivFoEXFoExJSkEgRFXFoEFOCivFoEXFoFVNIEJSQU5LTworxaBFxaBVTSBEUkFHT0xKVUIKK8WgRcWgVU0gSUxJSkEKK8WgRcWgVU0gTUlIQUpMTworxaBFxaBVTSBNSUxBTgorxaBFxaBVTSBNSUxBTgorxaBFxaBVTSBNSUxFTktPCivFoEXFoFVNIFNBVkEKK8WgRcWgVU0gU0xBVklDQQorxaBFxaBVTSBUT01BCivFoEXEhkVST1YgQU7EkEVMSUpBCivFoEXEhkVST1YgQklMSkFOQQorxaBFxIZFUk9WIEJSQU5JU0xBVgorxaBFxIZFUk9WIERSRU5LQQorxaBFxIZFUk9WIERVxaBBTgorxaBFxIZFUk9WIEVNSUwKK8WgRcSGRVJPViBJREEKK8WgRcSGRVJPViBJVkFOCivFoEXEhkVST1YgSk9WQU4KK8WgRcSGRVJPViBLQUpBCivFoEXEhkVST1YgTUFUQQorxaBFxIZFUk9WIE1JTEFOCivFoEXEhkVST1YgUEFWTEUKK8WgRcSGRVJPViBQRVRBUiBESVBMIElORworxaBFxIZFUk9WIFBFVEFSCivFoEXEhkVST1YgUFJPREFOCivFoEXEhkVST1YgUkFET1NMQVYKK8WgRcSGRVJPViBTQVZBCivFoEXEhkVST1YgU0lOScWgQQorxaBFxIZFUk9WIFNWRVRMQU5BCivFoEXEhkVST1YgU1ZFVE9aQVIKK8WgRcSGRVJPViBTVkVUT1pBUgorxaBFxIZFUk9WIFNWRVRPWkFSCivFoEXEhkVST1YgWkxBVE9KRQorxaBFxIZFUk9WIFpMQVRPSkUKK8WgRUJFxaDEhkVOIElNUkUKK8WgRUJFxaDEhkVOIEpPxb1FRgorxaBFQkVESU5JIE5FVlpBRAorxaBFQkVLIMSQVUxBCivFoEVCRUsgQU5VxaBLQQorxaBFQkVLIElWQU4KK8WgRUJFSyBKT1NJUAorxaBFQkVLT1ZJxIYgUEFWTEUKK8WgRUJFWiBEUkFHQU4KK8WgRUJFWiBEVcWgQU4KK8WgRUJFWiBMQVpPCivFoEVCRVogUkFET0pLQQorxaBFQkVaIFNJTU8KK8WgRUJFWiBTVEVWQU4KK8WgRUJFWiBTVEVWTworxaBFQkVaIFNURVZPCivFoEVCSSBKRUxJQ0EKK8WgRUbEjEnEhiBFTUlMCivFoEVGxIxJxIYgTUlSS08KK8WgRUZFUiDEkE9SxJBFIERJUEwgSU5HCivFoEVGRVIgQUxFS1NBTkRSQQorxaBFRkVSIEpVTElKRSBEUgorxaBFRkVSIEtBVEFSSU5BCivFoEVGRVIgS0xBUkEKK8WgRUZFUiBNSU9EUkFHCivFoEVGRVIgUEVUQVIKK8WgRUZFUiBSQURPSkUKK8WgRUZFUiBTTEFWS08KK8WgRUdFQyBFRFVBUkQKK8WgRUdJTkEgTklLT0xBCivFoEVHTyBOSUtPTEEKK8WgRUdPVknEhiBEUkFHQU4KK8WgRUdPVknEhiBNSUxPxaAKK8WgRUdSVCDEjEVET01JUgorxaBFR1JUIMSMRURPTUlSCivFoEVHUlQgSk9WTworxaBFR1JUIEpPVk8KK8WgRUdSVCBNQVRPCivFoEVHUlQgTUxBREVOCivFoEVHUlQgTkFEQQorxaBFR1JUIFBFVEFSCivFoEVHUlQgVk9KSVNMQVYKK8WgRUdVTEpFViBEVcWgQU4KK8WgRUdVTEpFViBEVcWgQU4KK8WgRUdVTEpFViBEVcWgQU4KK8WgRUdVTEpFViBHUlVKQQorxaBFR1VMSkVWIEpPVkFOCivFoEVHVUxKRVYgTUFSS08KK8WgRUdVTEpFViBNSUtBCivFoEVHVUxKRVYgTUlMRU5LTworxaBFR1VMSkVWIFBBSkEKK8WgRUdVTEpFViBQRVRBUgorxaBFR1VMSkVWIFJBRE9TTEFWCivFoEVHVUxKRVYgUlXFvUlDQQorxaBFR1VMSkVWIFNMQVZLTworxaBFR1VMSkVWIFNORcW9QU5BCivFoEVHVUxKRVYgWkFHT1JLQQorxaBFR1VMSkVWIFpPUklDQQorxaBFSEnEhiBMSlVCSUNBCivFoEVIScSGIE1JUlNBCivFoEVIScSGIFNMQVZJQ0EKK8WgRUhPVknEhiBSQU1JWgorxaBFSk1FxaBJIFNURVZBTgorxaBFSlBFxaAgxaBBUkxPVEEKK8WgRUpQRcWgIEZFRE9SCivFoEVKUEXFoCBGRURPUgorxaBFSlBFxaAgR0FMSU5BCivFoEVKUEXFoCBJTE9OQQorxaBFSyBKVUxJSkFOCivFoEVLQVJJxIYgTUlMT1NBVgorxaBFS0FSScSGIE5BREEKK8WgRUtFUk9WScSGIERSQUdBTgorxaBFS1VMQVJBQyBBTEVLU0FORFJBCivFoEVLVUxBUkFDIEJSQU5JU0xBViBESVBMIE9FQworxaBFS1VMQVJBQyBEVcWgQU4KK8WgRUtVTEFSQUMgUFJFRFJBRworxaBFS1VMQVJBQyBTQVZLQQorxaBFS1VMQVJBQyBTTE9CT0RBTgorxaBFTCBNQVJHSVRBCivFoEVMQiBMQVNMTworxaBFTEVTVCBTTE9CT0RBTktBCivFoEVMSkVNIEpVTElKQU5BCivFoEVMSkVNIEtBUk9MSiBESVBMIElORworxaBFTEpFTSBMSklMSkFOQQorxaBFTEpFTSBTVEVWQU4KK8WgRUxKRU0gWk9MVEFOCivFoEVMS0VOIElMT05LQQorxaBFTE1JxIYgVlVLT01BTiBESVBMIElORworxaBFTsSMRVZJxIYgTUlMT01JUgorxaBFTkJPUk4gQURBTEJFUlQgRFIgUFJPRgorxaBFTkRVTEEgxaBBTkRPUgorxaBFTkRVTEEgQU5UQUwKK8WgRU5EVUxBIEdBQk9SCivFoEVOSEFVWkVSIFRPTUlTTEFWCivFoEVOSyBBTEJJTkEKK8WgRU5LIElWQU4gRElQTCBJTkcKK8WgRU5LIFZPSklOCivFoEVOVEFMRVIgRU1JTAorxaBFUCBMRU5LQQorxaBFUMWgRUkgS1JJU1RJTkEKK8WgRVBBIFNWRVRPWkFSCivFoEVQQVJFVknEhiBEQVJLTworxaBFUEFST1ZJxIYgREFSS08KK8WgRVBBUk9WScSGIExKSUxKQU5BCivFoEVQQVJPVknEhiBNSVJPU0xBVgorxaBFUEFST1ZJxIYgWk9SQQorxaBFUEVDIFZMQURJTUlSCivFoEVQRUNBTk9WScSGIE1JTE/FoAorxaBFUEVMSiBMRU5LQQorxaBFUEVSQUMgUkFOS0EKK8WgRVBJxIYgWkFEQQorxaBFUElOU0tJIMSQVVJBCivFoEVQSU5TS0kgxJBVUkEKK8WgRVBJTlNLSSBKT0FLSU0KK8WgRVBJTlNLSSBTTEFWSUNBCivFoEVSQkFOIFNMT0JPREFOS0EKK8WgRVJCRUTFvUlKQSBEUkFHT0xKVUIKK8WgRVJCRUTFvUlKQSBNSVJLTworxaBFUkJFRMW9SUpBIE1JUktPCivFoEVSQknEhiBKRUxLQQorxaBFUkJJxIYgWkFHT1JLQQorxaBFUkJJxIYgWkFHT1JLQQorxaBFUkJVTEEgQlJBTktPCivFoEVSQlVMQSBNSUxBTgorxaBFUkXFoCDFoEFORE9SCivFoEVSRcWgIMW9VcW9QU5BCivFoEVSRcWgIEFOQQorxaBFUkXFoCBBTlRVTgorxaBFUkXFoCBFTkRSRQorxaBFUkXFoCBFU1RFUgorxaBFUkXFoCBGUkFOQ0nFoEtBCivFoEVSRcWgIEdJWkVMQQorxaBFUkXFoCBJTVJFCivFoEVSRcWgIEpBTk/FoAorxaBFUkXFoCBLQVJPTEogTVIKK8WgRVJFxaAgTEFTTE8KK8WgRVJFxaAgU1RFVkFOCivFoEVSRUdJIFpPTFRBTgorxaBFUkVNRVRLT1ZTS0kgQUxFS1NBCivFoEVSRU1FVEtPVlNLSSBCT05BCivFoEVSRVIgTEVOS0EKK8WgRVJGRVpJIMSQVVJBCivFoEVSScSGIE1JTEtBCivFoEVSSUYgTkXFoEFUCivFoEVSSUZJIFJBQklKQQorxaBFUklGSSBTQUZFVAorxaBFUktPViBMSklMSkFOQQorxaBFUktPViBSQURPU0xBVgorxaBFUk9WScSGIEpPVklDQQorxaBFU0VLIFNUQU5JU0xBVgorxaBFU1RBTiBCT1JJUworxaBFU1RBTk9WIEJSQU5LTworxaBFU1RBTk9WIE1JTEVOQQorxaBFU1RJxIYgQk9HREFOCivFoEVUQUxPIMWgQU5ET1IKK8WgRVRBTE8gRlJBTkpBCivFoEVUQUxPIElNUkUKK8WgRVRBTE8gSU1SRQorxaBFVEFMTyBLQVJMTworxaBFVEFMTyBLQVJPTEoKK8WgRVRLQSBLQVRBCivFoEVUS0EgVE9NSVNMQVYKK8WgRVRSQUrEjEnEhiBJTERJS08KK8WgRVbEjEnEhiDEkE9SxJBFCivFoEVWQVIgRU1JTElKQQorxaBFVkFSIEpPU0lQIFZFVEVSSU5BUgorxaBFVkFSIFZMQURJU0xBVgorxaBFVkFSTEnEhiBLT1NUQQorxaBFVkVST1YgUkFET1NMQVYKK8WgRVZJxIYgxJBPUsSQRSBNUgorxaBFVknEhiDEkE9SxJBFCivFoEVWScSGIMSQT1LEkEUKK8WgRVZJxIYgQUxFS1NBTkRBUgorxaBFVknEhiBCT1JJU0xBVgorxaBFVknEhiBEUkFHQU4KK8WgRVZJxIYgRFJBR09MSlVCCivFoEVWScSGIERSQUdPTEpVQgorxaBFVknEhiBKT1ZPCivFoEVWScSGIExBWkFSCivFoEVWScSGIE1JTEFOCivFoEVWScSGIE1JTE/FoAorxaBFVknEhiBNSUxPUkFECivFoEVWScSGIE1JUk9TTEFWQQorxaBFVknEhiBOQURBCivFoEVWScSGIE5BREEKK8WgRVZJxIYgUEVUQVIKK8WgRVZJxIYgUEVUQVIKK8WgRVZJxIYgUFJFRFJBRworxaBFVknEhiBSQURPVkFOCivFoEVWScSGIFNBVktBCivFoEVWScSGIFNMT0JPREFOCivFoEVWScSGIFNSxJBBTgorxaBFVknEhiBUUklWTworxaBFVk8gxIxFRE9NSVIKK8WgRVZPIEFMRUtTQU5EQVIKK8WgRVZPIEJPxaBLTworxaBFVk8gQk/FoEtPCivFoEVWTyBCUkFOS08KK8WgRVZPIERVxaBBTgorxaBFVk8gSk9WTworxaBFVk8gTUlMQU4KK8WgRVZPIE1JTEFOCivFoEVWTyBNSUxBTgorxaBFVk8gTUxBREVOCivFoEVWTyBTTEFWSUNBCivFoEVWTyBWTEFETworxaBJxaBBIEpPU0lQCivFoEnFoEEgSk9TSVAKK8WgScWgQUtPVknEhiBNSUxFTkEKK8WgScWgQUtPVknEhiBNSVJPU0xBVgorxaBJxaBBUklDQSBMSlVQS08KK8WgScWgQVJJQ0EgWkRSQVZLTworxaBJxaBFVknEhiBBTsSQRUxLQQorxaBJxaBJxIYgTUlMQU4KK8WgScWgScSGIE1MQURFTgorxaBJxaBJxIYgUEVUS0EKK8WgScWgScSGIFNUSkVQQU4KK8WgScWgS0EgTUFSR0lUQQorxaBJxaBLT1YgQU5URQorxaBJxaBLT1ZJxIYgRFJBR09MSlVCCivFoEnFoEtPVknEhiBEUkFHT0xKVUIKK8WgScWgTEpBR0nEhiDEjEVETworxaBJxaBMSkFHScSGIERVxaBBTgorxaBJxaBPVknEhiBEUkFHT0xKVUIKK8WgScWgT1ZJxIYgTUlMQcWgSU4KK8WgScSQQU5JTiBCUkFOSVNMQVYKK8WgScSQQU5JTiBEVcWgQU4gRElQTCBJTkcKK8WgScSQQU5JTiBNSUxJQ0EKK8WgScSQQU5JTiBNSUxPSkUgRElQTCBJTkcKK8WgScSQQU5TS0kgQlVESU1JUgorxaBJxJBBTlNLSSBNSVJPU0xBVgorxaBJQkFMScSGIElMSUpBCivFoElCQUxJxIYgTEpVQk9NSVIKK8WgSUJVTCBaT1JBTgorxaBJQlVMIFpPUklDQQorxaBJQlVMT1YgxJBVUkEKK8WgSUMgTUFSSUpBCivFoElDIFRFUkVaQQorxaBJRkxJxaAgSkFHT0RBCivFoElGTEnFoCBMQUpPxaAKK8WgSUZMScWgIFNMQVZLTworxaBJR1VEIMSQT1LEkEUKK8WgSUhBIEnFoFRWQU4KK8WgSUpBxIxJxIYgQUxFS1NBTkRBUgorxaBJSkHEjEnEhiBBTEVLU0FOREFSCivFoElKQcSMScSGIEJPUklTTEFWCivFoElKQcSMScSGIEJPU0lMSktBCivFoElKQcSMScSGIEJSQU5JU0xBVgorxaBJSkHEjEnEhiBEQU5JQ0EKK8WgSUpBxIxJxIYgREFOSUNBCivFoElKQcSMScSGIERBTklMTworxaBJSkHEjEnEhiBEQU5JTE8KK8WgSUpBxIxJxIYgRFXFoEFOCivFoElKQcSMScSGIERVxaBJQ0EKK8WgSUpBxIxJxIYgRFXFoElDQQorxaBJSkHEjEnEhiBKRUxJQ0EKK8WgSUpBxIxJxIYgTEVTQQorxaBJSkHEjEnEhiBNSUxJVk9KRQorxaBJSkHEjEnEhiBNSUxPUkFECivFoElKQcSMScSGIE1JUk9TTEFWCivFoElKQcSMScSGIFJBRE9TTEFWCivFoElKQcSMScSGIFNUQU5LQQorxaBJSkHEjEnEhiBTVEVWQU4KK8WgSUpBxIxJxIYgWk9SSUNBCivFoElKQcSMS0kgxb1JVkEKK8WgSUpBxIxLSSDFvUlWS08KK8WgSUpBxIxLSSDEkFVSxJBJTktBCivFoElKQcSMS0kgQk/FvUlEQVIKK8WgSUpBxIxLSSBEUkFHQU5BCivFoElKQcSMS0kgR09SREFOQQorxaBJSkHEjEtJIElTQQorxaBJSkHEjEtJIEpPVkFOCivFoElKQcSMS0kgS09TVEEKK8WgSUpBxIxLSSBMQVpBUgorxaBJSkHEjEtJIE1JTEFOCivFoElKQcSMS0kgTUlMRU5LTworxaBJSkHEjEtJIE1JTE/FoAorxaBJSkHEjEtJIE1JUkpBTkEKK8WgSUpBxIxLSSBORVNUT1IgRFIKK8WgSUpBxIxLSSBQRVRBUgorxaBJSkHEjEtJIFBSRURSQUcKK8WgSUpBxIxLSSBSQURPU0xBVkEKK8WgSUpBxIxLSSBTSU1BCivFoElKQcSMS0kgU0xBVktPCivFoElKQcSMS0kgU0xPQk9EQU4KK8WgSUpBxIxLSSBTVEVWQU4KK8WgSUpBxIxLSSBUT01JU0xBVgorxaBJSkHEjEtJIFZJVE9NSVIKK8WgSUpBxIxLSSBWVUpJQ0EKK8WgSUpBSyDEkE9SxJBFCivFoElKQUsgSkVMSUNBCivFoElKQUsgTUlMRU5LTworxaBJSkFLIE1JTE/FoAorxaBJSkFLIFBBVkxFCivFoElKQUsgUEVUQVIKK8WgSUpBSyBUT01BCivFoElKQUtPViBTVEFOSVNMQVZBCivFoElKQUtPViBWRUxKS08KK8WgSUpBS09WScSGIERSQUdJQ0EKK8WgSUpBS09WScSGIE1JTE9SQUQKK8WgSUpBS09WScSGIFNURVZBCivFoElKQUtPVknEhiBaT1JBTgorxaBJSkFOIEFMRUtTQU5EUkEKK8WgSUpBTiBCT0pBCivFoElKQU4gQlJBTktPCivFoElKQU4gQlJBTktPCivFoElKQU4gQlJBTktPCivFoElKQU4gREFORQorxaBJSkFOIElMSUpBCivFoElKQU4gTUlMRVZBCivFoElKQU4gTUlMT8WgCivFoElKQU4gTUlSS08KK8WgSUpBTiBORVZFTktBCivFoElKQU4gTklLT0xBCivFoElKQU4gUkFERQorxaBJSkFOIFNMT0JPREFOCivFoElKVUsgRFJBR0FOCivFoElLIFRJQk9SCivFoElLRVQgScWgVFZBTgorxaBJS0VUIEnFoFRWQU4KK8WgSUtFVCBJTVJFCivFoElLRVQgSk/FvUVGCivFoElLRVQgTEFTTE8KK8WgSUtFVCBMQVNMTworxaBJS0VUIExBU0xPCivFoElLRVQgTUFHREEKK8WgSUtFVCBTVEVWQU4KK8WgSUtJxIYgQk9HREFOCivFoElLScSGIFJBRE9TTEFWCivFoElLTUFOIFpWT05LTworxaBJS09QQVJJSkEgxJBPUsSQRQorxaBJS09QQVJJSkEgQk9SSVNMQVYKK8WgSUtPUEFSSUpBIERVxaBBTgorxaBJS09QQVJJSkEgSkVMRU5BCivFoElLT1BBUklKQSBNSUxBTgorxaBJS09QQVJJSkEgTkVWRU5BCivFoElLT1BBUklKQSBUSUhPTUlSCivFoElLT1BBUklKQSBUSUhPTUlSCivFoElLT1BBUklKQSBWTEFESU1JUgorxaBJTEUgxaBBTkRPUgorxaBJTEUgTEFESVNMQVYKK8WgSUxFIFpPTFRBTgorxaBJTEVSIE1JTE9SQUQKK8WgSUxFUiBNSUxPUkFECivFoElMSSBJxaBUVkFOCivFoElMSSBLQVJMTworxaBJTEkgTUlIQUpMTworxaBJTEkgVkFMRVJJSkEKK8WgSUxJxIYgxJBPUsSQRQorxaBJTEnEhiDEkE9SxJBFCivFoElMScSGIMSQT1LEkEUKK8WgSUxJxIYgQU5BCivFoElMScSGIEJPR0RBTgorxaBJTEnEhiBEQU5JQ0EKK8WgSUxJxIYgRFJBR09NSVIKK8WgSUxJxIYgRFXFoElDQQorxaBJTEnEhiBKT1ZBTgorxaBJTEnEhiBMSlVCSUNBCivFoElMScSGIE1JTE9SQUQgRFIKK8WgSUxJxIYgTUlMT1NBVkEKK8WgSUxJxIYgTUlSSkFOQQorxaBJTEnEhiBNSVJLTworxaBJTEnEhiBNSVJLTworxaBJTEnEhiBOQURBCivFoElMScSGIE5JS09MQQorxaBJTEnEhiBPTEdJQ0EKK8WgSUxJxIYgT0xHSUNBCivFoElMScSGIFBFVEFSCivFoElMScSGIFBFVEFSCivFoElMScSGIFJBQ0tPCivFoElMScSGIFNBVkEKK8WgSUxJxIYgU1BBU0VOS0EKK8WgSUxJxIYgU1RPSkFOCivFoElMScSGIFRPxaBBCivFoElMScSGIFRPRE9SCivFoElMScSGIFZBU0EKK8WgSUxJxIYgVkVSQQorxaBJTEnEhiBWSVRPTUlSCivFoElMSkVHIEpPWk8KK8WgSUxKRUdPVknEhiBCT8WgS08KK8WgSUxKRUdPVknEhiBCT8WgS08KK8WgSUxKRUdPVknEhiBEUkFHT0xKVUIKK8WgSUxKRUdPVknEhiBEVcWgQU4KK8WgSUxKRUdPVknEhiBKT1ZBTktBCivFoElMSkVHT1ZJxIYgTUlMQU4KK8WgSUxKRUdPVknEhiBOQURBCivFoElMSknEhiDEhkFNSUwKK8WgSUxKS1VUIE1JTEFOCivFoElMSktVVCBNSUxBTgorxaBJTEpLVVQgTUlSS08KK8WgSU3EjEnEhiBPTEdJQ0EKK8WgSU3FoEnEhiBEVcWgQU4KK8WgSU3FoEnEhiBJTElKQQorxaBJTcWgScSGIFNBVk8KK8WgSU1BIEpPQUtJTQorxaBJTUEgTUFSR0lUQQorxaBJTUEgVkVST05JS0EKK8WgSU1BSyBKQU4KK8WgSU1BTEEgVklLVE9SCivFoElNQU4gQUxFS1NFSgorxaBJTUFOREkgR0FCUklKRUxBCivFoElNQU5ESSBTVEVWQU4KK8WgSU1FSyBWTEFUS08KK8WgSU1JxIxJxIYgUEVUQVIKK8WgSU1JxIxJxIYgU1ZFVElTTEFWCivFoElNScSGIEFOVE8KK8WgSU1JxIYgQk/FvUFOQQorxaBJTUnEhiBGUkFOSk8KK8WgSU1JxIYgR0laRUxBCivFoElNScSGIEhSVk9KRQorxaBJTUnEhiBKVUxBIERJUEwgSU5HCivFoElNScSGIE1JTEFOCivFoElNScSGIE1JTEFOCivFoElNScSGIE1JUk9TTEFWCivFoElNScSGIE1MQURFTgorxaBJTUnEhiBOSU5PU0xBVgorxaBJTUnEhiBTTEFWS08KK8WgSU1JxIYgU0xBVktPCivFoElNScSGIFNURVZBTgorxaBJTUlHIFRJQk9SCivFoElNT0tPVknEhiBLQVRBUklOQQorxaBJTU9OIMWgQU5ET1IKK8WgSU1PTiDEkEVSxJAKK8WgSU1PTiBBUlBBRAorxaBJTU9OIEVSxb1FQkVUCivFoElNT04gTUFSSUNBCivFoElNT04gTUlIQUxKCivFoElNT04gVklMTU/FoCBEUgorxaBJTU9OSUsgVkxBREEKK8WgSU1PTkpJIMWgQU5ET1IKK8WgSU1PTkpJIEJBUkJBUkEKK8WgSU1PTkpJIEpBTk/FoAorxaBJTU9OSkkgU09GSUpBCivFoElNT05KSSBaT0xUQU4KK8WgSU1PTkpJIFpWT05LTworxaBJTU9OSklLIE1BVElKQQorxaBJTU9WScSGIEpPxb1FRgorxaBJTU9WScSGIE1JUk8KK8WgSU1QUkFHQSBEVcWgQU4KK8WgSU1QUkFHQSBKQURSQU5LQQorxaBJTVVEVkFSQUMgUEFWQU8KK8WgSU1VTElKQSBEUkHFvUVOCivFoElNVUxJSkEgSk9WTworxaBJTVVOxJBBIExKVUJPTUlSCivFoElNVU5FQyBNQVJJSkEKK8WgSU1VTknEhiBBTktBCivFoElNVU5JxIYgSVZBTgorxaBJTVVOScSGIEtBUkxPCivFoElNVU5JxIYgU1RFVkFOCivFoElNVU5PVkHEjEtJIEtBVElDQQorxaBJTVVOT1ZBxIxLSSBOSUtPTEEKK8WgSU1VTk9WQcSMS0kgTklLT0xBCivFoElNVU5PVkHEjEtJIFNMQVZLTworxaBJTVVOT1ZJxIYgR09SREFOQQorxaBJTVVOT1ZJxIYgR09SREFOQQorxaBJTVVOT1ZJxIYgSk9TSVAKK8WgSU1VTk9WScSGIEpPU0lQCivFoElNVU5PVknEhiBKT1NJUAorxaBJTVVOT1ZJxIYgTkVOQUQKK8WgSU1VTk9WScSGIE5JS09MQSBESVBMIElORworxaBJTVVOT1ZJxIYgU1RBTklTTEFWCivFoElNVU5PVknEhiBTVEFOS08KK8WgSU1VTk9WScSGIFNWRVRMQU5BCivFoElNVU5PVknEhiBUT01BCivFoElOQUdMIEtBUk9MSgorxaBJTkFHTCBLQVJPTEoKK8WgSU5BR0wgT1RPCivFoElOQUdMIFNURVZBTgorxaBJTklLIERSQUdBTgorxaBJTklLT1YgxJBPUsSQRQorxaBJTklLT1YgTUlMQU4KK8WgSU5LQSBNQVJHSVRBCivFoElOS0EgWkxBVEtPCivFoElOS08gR0laRUxBCivFoElOS08gSVZBTktBCivFoElOS08gSkFOT8WgCivFoElOS08gU1RFVkFOCivFoElOS08gVkxBRElTTEFWCivFoElOS09WScSGIE1BUklKQQorxaBJUMSMScSGIExKVUJPTUlSCivFoElQxIxJxIYgTUFSSUpBCivFoElQxIxJxIYgTUlETworxaBJUMSMScSGIE1JSk9EUkFHCivFoElQxIxJxIYgTklOT1NMQVYKK8WgSVBFSyBKT1NJUCBOT1ZJTkFSCivFoElQRVRJxIYgQU7EkEEKK8WgSVBFVEnEhiBNT03EjElMTworxaBJUEnEhiBBTEVLU0FORFJBCivFoElQSU4gSk9WQU5LQQorxaBJUEtBIEJPxb1BCivFoElQS0EgQk/FvU8KK8WgSVBLQSBCUkFOS08KK8WgSVBLQSBEUkFHQU4KK8WgSVBLQSBEUkFHTworxaBJUEtBIEdSVUpPCivFoElQS0EgTUFSS08KK8WgSVBLQSBNSVJLTworxaBJUEtBIE1JUk9TTEFWCivFoElQS0EgTUlSTworxaBJUEtBIE5FxJBPCivFoElQS0EgWk9SQU4KK8WgSVBLQSBaT1JBTgorxaBJUE/FoCDFoEFORE9SCivFoElQT8WgIMSQT1LEkEUKK8WgSVBPxaAgxJBPUsSQRQorxaBJUE/FoCDEkFVSQQorxaBJUE/FoCDEkFVSTworxaBJUE/FoCBFRElUCivFoElQT8WgIEVSxb1FQkVUCivFoElQT8WgIElHTkpBQworxaBJUE/FoCBKQU5PxaAKK8WgSVBPxaAgSk9WQU5LQQorxaBJUE/FoCBKT1ZBTgorxaBJUE/FoCBKVUxJSkFOQQorxaBJUE/FoCBNSVJKQU5BCivFoElQT8WgIFJPWkFMSUpBCivFoElQT8WgIFZMQURJTUlSCivFoElQT8WgRVZJxIYgUkFET0pLQQorxaBJUE9TS0kgS1JTVEUKK8WgSVBPVkFDIENWSUpFVEEKK8WgSVBPVkFDIERBTklMTworxaBJUE9WQUMgSkFOSkEKK8WgSVBPVkFDIE5FREVMSktPCivFoElQT1ZBQyBSQURJQ0EKK8WgSVBPVkFDIFZBU0lMSUpBCivFoElQUkFHQSBVUk/FoAorxaBJUFXFoEnEhiBIRUxFTkEKK8WgSVJBRE9WScSGIEJSQU5JU0xBVgorxaBJUklKT1ZTS0kgR09DRQorxaBJUktBIEpBTgorxaBJUktBIFNBTVVFTAorxaBJUk/EjEtBIEFOVFVOCivFoElST0tJIEFEQU0KK8WgSVJPTEEgSVZBTgorxaBJUk9OScSGIExKVUJPCivFoElTVE9WIERSQUdPCivFoElURSBLQVJPTEoKK8WgSVRFIE1BUklKQQorxaBJVEUgVElCT1IKK8WgSVRFUiBLQVJMTworxaBJVEVSIFJVxb1JQ0EKK8WgSVRFUiBTTE9CT0RBTgorxaBJVkVHSSBJTVJFCivFoEtBTEpBQyBTVEFOS08KK8WgS0FMSkFDIFpPUkFOCivFoEtBUknEjEnEhiBNSVJPU0xBVgorxaBLQVJJQ0EgRE9MT1JFUworxaBLQVJJQ0EgU1RKRVBBTgorxaBLQVJJTiBUT0RPUgorxaBLQVRBUknEhiBaT1JBTgorxaBLQVZJxIYgQ1ZJSk8KK8WgS0FWScSGIEpPVk8KK8WgS0FWScSGIE1JTEFOCivFoEtBVknEhiBOSUtPTEEKK8WgS0VLScSGIE1JT01JUgorxaBLSUxKQUpJQ0EgVkxBRElNSVIKK8WgS0lMSkVWScSGIE1JTElEUkFHCivFoEtPQkFMSiBOQURBCivFoEtPQkFMSiBWT0pJU0xBVgorxaBLT0RBSyBQQVZMRQorxaBLT0xPUElKQSBMQVpBUgorxaBLT05EUknEhiBEUkFHT01JUgorxaBLT1JJxIYgxIxFRE9NSVIKK8WgS09SScSGIMWgVFJBQ0lNSVIKK8WgS09SScSGIMSQVUpBCivFoEtPUknEhiDEkFVSTworxaBLT1JJxIYgQU5LQQorxaBLT1JJxIYgQk9TSUxKS0EKK8WgS09SScSGIEJSQU5JU0xBVgorxaBLT1JJxIYgQlJBTktPCivFoEtPUknEhiBEUkFHQU4gRFIKK8WgS09SScSGIERSQUdBTgorxaBLT1JJxIYgRFJBR0FOCivFoEtPUknEhiBEVcWgQU4KK8WgS09SScSGIERVxaBBTgorxaBLT1JJxIYgRFXFoEFOCivFoEtPUknEhiBEVcWgS08KK8WgS09SScSGIEdSVU1JS09WCivFoEtPUknEhiBKT1ZBTgorxaBLT1JJxIYgSk9WQU4KK8WgS09SScSGIEtTRU5JSkEKK8WgS09SScSGIExBWkFSCivFoEtPUknEhiBMSklMSkFOQQorxaBLT1JJxIYgTUFSQQorxaBLT1JJxIYgTUFSSUpBCivFoEtPUknEhiBNQVJJSkEKK8WgS09SScSGIE1JxIZPCivFoEtPUknEhiBNSUxBTgorxaBLT1JJxIYgTUlMQU4KK8WgS09SScSGIE1JTEFOCivFoEtPUknEhiBNSUxBTgorxaBLT1JJxIYgTUlMRU5LTworxaBLT1JJxIYgTUlMSVZPSgorxaBLT1JJxIYgTUlMS0EKK8WgS09SScSGIE1JTE/FoAorxaBLT1JJxIYgTUlSSkFOQQorxaBLT1JJxIYgTUlSS08KK8WgS09SScSGIE1JUktPCivFoEtPUknEhiBNSVJLTworxaBLT1JJxIYgTklLT0xBCivFoEtPUknEhiBOSUtPTEEKK8WgS09SScSGIFBBVkxFCivFoEtPUknEhiBQQVZMRQorxaBLT1JJxIYgUEVSTworxaBLT1JJxIYgU0xBVktPCivFoEtPUknEhiBTTE9CT0RBTgorxaBLT1JJxIYgU01JTEpBCivFoEtPUknEhiBTTUlMSkEKK8WgS09SScSGIFNSRcSGS08KK8WgS09SScSGIFNUQU5BCivFoEtPUknEhiBWTEFESU1JUgorxaBLT1JJxIYgWk9SQQorxaBLT1JPIMWgSU1FCivFoEtPUk8gTUlSSkFOQQorxaBLT1JPIFZBU0lMSUpBCivFoEtSQVZBTiBBTkRSSUpBCivFoEtSQknEhiDFvUVMSktPCivFoEtSQknEhiDEkFVSTworxaBLUkJJxIYgQU5JQ0EKK8WgS1JCScSGIEJMQcW9TworxaBLUkJJxIYgQk/FvU8KK8WgS1JCScSGIEJPSkFOQQorxaBLUkJJxIYgQlJBTktPCivFoEtSQknEhiBEUkFHSUNBCivFoEtSQknEhiBEVcWgQU4KK8WgS1JCScSGIEpPVkFOCivFoEtSQknEhiBKT1ZBTgorxaBLUkJJxIYgTEpVQklDQQorxaBLUkJJxIYgTUFSQQorxaBLUkJJxIYgTUFSSUNBCivFoEtSQknEhiBNSUxFCivFoEtSQknEhiBNSUxPUkFECivFoEtSQknEhiBNSUxPUkFECivFoEtSQknEhiBORUJPSsWgQQorxaBLUkJJxIYgT1NUT0pBCivFoEtSQknEhiBQRVRBUgorxaBLUkJJxIYgUkFET1NMQVYKK8WgS1JCScSGIFNWRVRPWkFSCivFoEtSQknEhiBaT1JLQQorxaBLUkJJTkEgU1RKRVBBTgorxaBLUkdFVCBKT1NJUAorxaBLUklKRUwgRFJBR0FOCivFoEtSSUpFTCBNSUxBTgorxaBLUklKRUxKIEFKTklKQQorxaBLUklKRUxKIFNBTUlSCivFoEtSSUpFTEogVkVIQk8KK8WgS1JJTkpBUiBLQVJPTEoKK8WgS1JJTkpBUiBNQVJJTworxaBLUklOSkFSIFpWT05JTUlSCivFoEtSSVZBTiDEkFVSQQorxaBLUklWQU4gQU5UVU4KK8WgS1JJVkFOIEZSQU5KQQorxaBLUklWQU4gS0FSTE8KK8WgS1JJVkFOIExBRElTTEFWCivFoEtSSVZBTiBQRVRBUgorxaBLUklWQU4gU1RFVkFOCivFoEtSSVZBTiBTVEVWQU4KK8WgS1JJVkFOSiBQScWgVEEKK8WgS1VMRVRJxIYgT0xHQQorxaBLVUxFVEnEhiBaT1JBTgorxaBLVU5DQSBJVkFOCivFoEtVTkNBIEpFTElDQQorxaBLVU5EUknEhiBEVcWgQU4KK8WgS1VORFJJxIYgTUlMSUNBCivFoEtVTkRSScSGIFBFVEFSCivFoEtVTkRSScSGIFJPWkFMSUpBCivFoEtWQVJFSyBWTEFEQQorxaBMQUhURVIgVkVOREVMCivFoExBSkVSIFJVRE9MRgorxaBMQVZJSyBJTE9OQQorxaBMRUhUQSBaREVOS08KK8WgTEVNRU5ERVIgxJBPUsSQRQorxaBMRU1FTkRFUiBBTkdFTEEKK8WgTEVNRU5ERVIgSVJFTkEKK8WgTEpBUEnEhiBHT1JBTgorxaBMSkFQScSGIE1JUkpBTkEKK8WgTEpBUEnEhiBPQlJFTgorxaBMSkFQScSGIFJVxb1JQ0EKK8WgTEpBUEnEhiBTVEVWQU4KK8WgTEpBUEnEhiBUQVRKQU5BCivFoExKQVBJxIYgVE9NSVNMQVYKK8WgTEpBUEnEhiBWRUxFTUlSCivFoExKSVZBTsSMQU5JTiBKT1ZBTgorxaBMSklWQU7EjEFOSU4gSk9WQU4KK8WgTEpJVkFOxIxBTklOIE1BUklKQQorxaBMSklWQU7EjEFOSU4gTUlMVVRJTgorxaBMSklWScSGIMSQT1LEkEUKK8WgTEpJVknEhiBCT1JLQQorxaBMSklWScSGIEpFTEVOQQorxaBMSklWScSGIExKSUxKQU5BCivFoExKSVZJxIYgTUlSSkFOQQorxaBMSklWScSGIFJBRE9KSUNBCivFoExKSVZJxIYgU1BBU09KRQorxaBMSklWScSGIFZMQURJU0xBVgorxaBMSklWS09WScSGIMSQT1LEkEUKK8WgTEpVS0EgRFJBR0nFoEEKK8WgTEpVS0EgTUlKT0RSQUcKK8WgTEpVS0EgTUlMQU4KK8WgTEpVS0EgTUlMT8WgCivFoExKVUtJxIYgxb1JVkFOIERSCivFoExKVUtJxIYgTUlMSVZPSgorxaBMSlVLScSGIFJPU0FOREEKK8WgTUFOSkEgTUlSS08KK8WgTUFOSkEgU0xBVktPCivFoE1JREVSS0FMIEZSQU5KQQorxaBNSUdFTEpTS0kgTklLT0xBCivFoE1JR0nEhiBCT1JJU0xBVgorxaBNSUdJxIYgTUlMT1JBRAorxaBNSUdJxIYgU1ZFVE9aQVIKK8WgTUlUIEZFUkRJTkFORAorxaBNSVQgR0laRUxBCivFoE1JVCBKT1NJUAorxaBNSVQgSk9WQU4KK8WgTUlULUtPVEEgS0FUSUNBCivFoE1JVCBNQVJJSkEKK8WgTUlUIE1JUkpBTkEKK8WgTUlULVBST0tJTiDEkFVSxJBJTkEKK8WgTUlUIFJFxb1FCivFoE1JVCBTVEFOQQorxaBNSVQgU1RBTk9KS0EKK8WgTUlUIFNURVZBTgorxaBNSVQgU1RFVkFOCivFoE1JVCBWSU9MRVRBCivFoE1JVCBaTEFUS08KK8WgTUlUUkFOIMSQT1LEkEUKK8WgTVVLIElWQU4KK8WgTkFKREVSIMWgQU5ET1IKK8WgTkFKREVSIEFOSUNBCivFoE5BSkRFUiBJTElOS0EKK8WgTkFKREVSIEpBTk/FoAorxaBOQUpERVIgSkFST1NMQVYKK8WgTkFKREVSIFNURVZBTgorxaBOQUpERVIgVkVSQQorxaBOQUpERVJPViBKT1NJUAorxaBOQUpERVJPViBWRVNOQQorxaBOQVVUSUwgRFJBR1VUSU4KK8WgTkVMIFBFVEVSCivFoE5KQVJJxIYgSVZBTgorxaBPxaAgQU5UQUwKK8WgT8WgIEFOVEFMCivFoE/FoCBCQUxJTlQKK8WgT8WgIERFWklERVIKK8WgT8WgIEdJWkVMQQorxaBPxaAgSUxPTkEKK8WgT8WgIEpFTElDQQorxaBPxaAgTEFKT8WgCivFoE/FoCBNQVJJSkEKK8WgT8WgIFRJQk9SCivFoE/FoEnEhiBNSVJLTworxaBPxaBJxIYgTkFUQcWgQQorxaBPxaBJxIYgT0xHQQorxaBPxaBJxIYgUkFET1NMQVYKK8WgT8WgScSGIFZVSworxaBPxaBLScSGIERSQUdPTUlSCivFoE/FoEtJxIYgTUlSQQorxaBPxIYgQk9KQU5BCivFoE/EhiBEVcWgQU4KK8WgT8SGIFRPTUlTTEFWCivFoE9CQUpJxIYgRFJBR09TTEFWCivFoE9CQUtJIE1BUklKQQorxaBPQknEhiBNSVJBCivFoE9CScSGIFJBREUKK8WgT0JJxIYgVkVSQQorxaBPQknEhiBaT1JBTgorxaBPQknEhiBaT1JBTgorxaBPQk9UIMSQVVJBCivFoE9CT1QgQk/FoEtPCivFoE9CT1QgQlJBTktPCivFoE9CT1QgRFJBR0FOCivFoE9CT1QgSk9WQU4KK8WgT0JPVCBMSlVCT01JUgorxaBPQk9UIE1JTEFOCivFoE9CT1QgTUlMSUNBCivFoE9CT1QgUEVUS08KK8WgT0JPVCBTRUtVTEEKK8WgT0JPVCBTTEFWSUNBCivFoE9EScSGIERPQlJJTEEKK8WgT0RJxIYgRFJBR0lOSkEKK8WgT0RJxIYgR0laRUxBCivFoE9EScSGIE1JTEFOCivFoE9EScSGIFRPRE9SCivFoE9ET1JPVknEhiBST1NBCivFoE9GSEFVWkVSIE1JSEFKTE8KK8WgT0ZIQVVaRVIgUk9aQUxJSkEKK8WgT0ZSQU4gTUFSSUpBCivFoE9GUkFOQUMgTUVMQU5JSkEKK8WgT0dPUk9WIFNURVZBTgorxaBPSknEhiDFvUlWS08KK8WgT0pJxIYgQlJBTktPCivFoE9KScSGIERSQUdJQ0EKK8WgT0pJxIYgTkVERUxKS0EKK8WgT0pMRVZTS0EgU0FOSkEKK8WgT0tJxIYgxJBPUsSQRQorxaBPS0nEhiBKVURJVEEKK8WgT0tJxIYgTUlMQU4KK8WgT0tJxIYgUEVUQVIKK8WgT0tJxIYgUkFET1ZBTgorxaBPS0nEhiBTTUlMSkEKK8WgT0tJQ0Egxb1JVktPCivFoE9LSUNBIEJSQU5JU0xBVgorxaBPS0lDQSBESU1JVFJJSkUKK8WgT0tJQ0EgRFJBR0nFoEEKK8WgT0tJQ0EgSk9WQU4KK8WgT0tJQ0EgSlVESVRBCivFoE9LSUNBIExKVUJJQ0EKK8WgT0tJQ0EgTUlMT8WgCivFoE9LSUNBIFpPUkEKK8WgT0tMT1ZBxIxLSSDFvUlWS08KK8WgT0tMT1ZBxIxLSSBEUkFHT0xKVUIKK8WgT0tMT1ZBxIxLSSBOQURBCivFoE9LTE9WQcSMS0kgUkFUT01JUgorxaBPTCBCRUxBCivFoE9MQUpBIMSQT1LEkEUKK8WgT0xBSkEgRElNSVRSSUpFCivFoE9MQUpBIEdPSktPCivFoE9MQUpBIE1JTEFOCivFoE9MQUpBIE1JUk9TTEFWCivFoE9MQUpBIE5BREEKK8WgT0xBSkEgTkFEQQorxaBPTEFKQSBSQURPU0xBVgorxaBPTEFKQSBTTEFWS08KK8WgT0xBSkEgU0xBVktPCivFoE9MQUpBIFNMT0JPREFOCivFoE9MQUpBIFZJxaBOSkEKK8WgT0xBSyBKT0tBCivFoE9MQUsgTUFSSU5LTworxaBPTEFLIE1JTEUKK8WgT0xBSyBSQURFCivFoE9MRVZJxIYgTUlMSVZPSkUKK8WgT0xURVMgxaBBTkRPUgorxaBPTFRFUyBJQk9MSkEKK8WgT0xURVMgSk/FvUVGCivFoE9NS0VSRUtJIElMT05LQQorxaBPTUtFUkVLSSBKT1NJUAorxaBPTUtFUkVLSSBKVUxJSkFOQQorxaBPTUtFUkVLSSBMQURJU0xBVgorxaBPTUtFUkVLSSBTVEVWQU4KK8WgT01LRVJFS0kgU1RFVkFOCivFoE9NT8SQSSDFvU9GSUpBCivFoE9NT8SQSSDEkE9SxJBFCivFoE9NT8SQSSBFVkEKK8WgT01PxJBJIEZSQU5KQQorxaBPTU/EkEkgScWgVFZBTgorxaBPTU/EkEkgSkVMRU5BCivFoE9NT8SQSSBKT1ZBTgorxaBPTU/EkEkgTEFTTE8KK8WgT01PxJBJIE1JSEFKTE8KK8WgT01PxJBJIFBBTAorxaBPTU/EkEkgUEFMCivFoE9NT8SQSSBQQUwKK8WgT01PxJBJIFJPWkEKK8WgT01PxJBJIFpPTFRBTgorxaBPTU/EkEkgWk9SQQorxaBPUCBNQUdEQUxFTkEKK8WgT1AgTUlMQU4KK8WgT1BBTE8gxJBVUsSQSU5BCivFoE9QQUxPIMSQVVLEkElOQQorxaBPUEFMTyBNSU9EUkFHIERJUEwgT0VDCivFoE9QQUxPIE1JT0RSQUcKK8WgT1LEkEFOIFJPTUFOCivFoE9SQUsgTUlSSkFOQQorxaBPUkFMT1YgTUlMT8WgCivFoE9SQUxPViBNSVJPU0xBVgorxaBPUk1BWiBEVcWgQU4KK8WgT1JNQVogTUlMQU4KK8WgT1JNQVogTklLT0xBCivFoE9STUFaIFZMQURJTUlSCivFoE9ST05KQSBTQVZBCivFoE9ST05KQSBWRVJBCivFoE9TQkVSR0VSIEJPUknFoEtBCivFoE9TQkVSR0VSIEpPU0lQIERJUEwgT0VDCivFoE9TQkVSR0VSIFBBVkxFCivFoE9TVEFLT1YgUkFTVElTTEFWIERJUEwgSU5HCivFoE9USS3EjEFMRU5JxIYgTUFSSUpBCivFoE9USSBGRcSQQQorxaBPVEkgSVZBTkEKK8WgT1RJIEpPU0lQCivFoE9USSBKT1NJUAorxaBPVEkgTUFSSUpBCivFoE9USSBNQVJJSkEKK8WgT1RSQSBNT03EjElMTworxaBPVUMgTUlMQU4KK8WgT1VDIE1JUk9TTEFWCivFoE9VQyBaTEFUQQorxaBPVsWgIEpBTktPCivFoE9WxaAgSk9BS0lNCivFoE9WQU5KIEpPQUtJTQorxaBPVkVOSiBBTEVLU0FOREFSCivFoE9WRU5KIEtBUkxPCivFoE9WRU5KIFZFUkEKK8WgT1ZMSkFLT1YgSk9WQU4KK8WgT1ZMSkFLT1YgTUlMT8WgCivFoE9WTEpBS09WIE1JTE/FoAorxaBPVkxKQU5TS0kgxJBPUsSQRSBESVBMIElORworxaBPVkxKQU5TS0kgxJBPUsSQRQorxaBPVkxKQU5TS0kgQU5LSUNBCivFoE9WTEpBTlNLSSBCT1NJTEpLQQorxaBPVkxKQU5TS0kgQlJBTktPCivFoE9WTEpBTlNLSSBEQU5JQ0EKK8WgT1ZMSkFOU0tJIERBTklMTworxaBPVkxKQU5TS0kgREFOS0EKK8WgT1ZMSkFOU0tJIERJTUlUUklKRQorxaBPVkxKQU5TS0kgRFJBR0nFoEEKK8WgT1ZMSkFOU0tJIERSQUdJQ0EKK8WgT1ZMSkFOU0tJIERSQUdJQ0EKK8WgT1ZMSkFOU0tJIERSQUdJQ0EKK8WgT1ZMSkFOU0tJIERSQUdPTUlSCivFoE9WTEpBTlNLSSBEUkFHT01JUgorxaBPVkxKQU5TS0kgRFJBR09TTEFWCivFoE9WTEpBTlNLSSBEUkVOS0EKK8WgT1ZMSkFOU0tJIEVNSUwKK8WgT1ZMSkFOU0tJIEpVTEtBCivFoE9WTEpBTlNLSSBMQVpBUgorxaBPVkxKQU5TS0kgTEpVQklDQQorxaBPVkxKQU5TS0kgTEpVQk9NSVIKK8WgT1ZMSkFOU0tJIE1BUkdJVEEKK8WgT1ZMSkFOU0tJIE1JTEFOCivFoE9WTEpBTlNLSSBNSUxPxaAKK8WgT1ZMSkFOU0tJIE1JTE9SQUQKK8WgT1ZMSkFOU0tJIE1JUkpBTkEKK8WgT1ZMSkFOU0tJIE1JUkpBTkEKK8WgT1ZMSkFOU0tJIE1JUkpBTkEKK8WgT1ZMSkFOU0tJIE1JUk9TTEFWIERSCivFoE9WTEpBTlNLSSBOQURBCivFoE9WTEpBTlNLSSBQQVZMRQorxaBPVkxKQU5TS0kgUkFESVZPSgorxaBPVkxKQU5TS0kgUkFET1NMQVYKK8WgT1ZMSkFOU0tJIFNBVkEKK8WgT1ZMSkFOU0tJIFNUT0pBTgorxaBQQURJSkVSIFRBVElKQU5BCivFoFBBR09WScSGIERSQUdPU0xBVgorxaBQQUsgVkxBRElNSVIKK8WgUEFOxIxJxIYgUkFETUlMQQorxaBQQU5HIExBU0xPCivFoFBBTkcgWk9MVEFOCivFoFBBTknEhiBCT8WgS08KK8WgUEFOScSGIEZSQU5KQQorxaBQQU5JxIYgTEFESVNMQVYKK8WgUEFOScSGIE5BREEKK8WgUEFOScSGIE9UTworxaBQQU5KRVZJxIYgU1VaQU5BCivFoFBBTkpFVknEhiBWVUtPVEEKK8WgUEFOT1ZJxIYgxJBPUsSQRQorxaBQQU5PVknEhiBBTEVLU0EKK8WgUEFOT1ZJxIYgTUlMT8WgCivFoFBBTk9WScSGIE5JS09MQQorxaBQQVJBVkFMTyBNQVJJSkEKK8WgUEFSQVZBTE8gTkFUQcWgQQorxaBQQVJBVkFMTyBTQVZBCivFoFBBUkFWQUxPIFpEUkFWS08KK8WgUEFST1ZJxIYgSUxJSkEKK8WgUEVHQVIgTEFaQVIKK8WgUEVIQVIgTUFSSUpBCivFoFBFUyBFVEVMCivFoFBFUyBWSUxJTQorxaBQRVMgVklMSU0KK8WgUElDQSBNSU9EUkFHCivFoFBJS0EgTUlMQU4KK8WgUElORExFUiBNQVJJSkEKK8WgUElORExFUi1UUkJPSkVWScSGIE1JUkpBTkEKK8WgUElSScSGIEJPUklWT0pFCivFoFBJUknEhiBHT1JEQU5BCivFoFBJUknEhiBHT1NQQVZBCivFoFBJUknEhiBJTEUKK8WgUElSScSGIEpPVk8KK8WgUElSScSGIExVS0EKK8WgUElSScSGIExVS0EKK8WgUElSScSGIE1JTEUKK8WgUElSScSGIE5FxJBPCivFoFBJUknEhiBPQlJBRAorxaBQSVJJxIYgU1RPSkFOCivFoFBJUknEhiBUT0RFCivFoFBJUknEhiBVUk/FoAorxaBQSVJJxIYgWk9SQU4KK8WgUElSS0EgTUFUSUxECivFoFBJUlRBIEFMRUtTQU5EQVIKK8WgUElSVEEgQUxFS1NBTkRBUgorxaBQSVMgREFOSUxPCivFoFBJUyBEQU5JTE8KK8WgUElTIExBSk/FoAorxaBQSVMgTUlSSkFOQQorxaBQSVMgTkFORE9SCivFoFBPTkpBIEtPVklMSktPCivFoFBST0ggRFJFTktBCivFoFBST0ggSkFOS08KK8WgUFJPSCBNQUdEQQorxaBQUk9IIFNMQVZLTworxaBQUk9IIFNUQU5LTworxaBQUk9IIFNURVZBTgorxaBSQUhPTCBISUxEQQorxaBSQUhPTCBLQVJMTworxaBSQUhPTCBMSlVERVZJVAorxaBSQUogVkxBRElNSVIKK8WgUkFLIEpPVklDQQorxaBSQUsgTEFESVNMQVYKK8WgUkFLIExBU0xPCivFoFJBSyBPVE8KK8WgUkFLIE9UTworxaBSQU0gSFVHTworxaBSQU5DIFJJSEFSRAorxaBSQU5DIFJJSEFSRAorxaBSQU5LQSBBTkEKK8WgUkFOS0EgREVTQU5LQQorxaBSRURFUiBKQU5PxaAKK8WgUkVERVIgSkFOT8WgCivFoFJFSyBBTkRSSUpBIERJUEwgSU5HCivFoFJFSyBTVEVWQU4gRElQTCBJTkcKK8WgVEFCSSDFoFRFRklDQQorxaBUQUpOIExJVklKQQorxaBUQUpORVIgS1JFxaBJTUlSCivFoFRBSk5FUiBNSVJKQU5BCivFoFRBSk5FUiBNSVJPU0xBVgorxaBUQUpORVIgWlZPTklNSVIKK8WgVEFKTkZFTEQgTUlIQUpMTworxaBUQUpOSUMgTUlST1NMQVYKK8WgVEFKTklDIFRJQk9SCivFoFRBTkRJIEtBVElDQQorxaBUQU5ESSBaT0xUQU4KK8WgVEFORkVMSiBBTE9KWgorxaBUQU5GRUxKIE1JUk9TTEFWCivFoFRBTkdMIMSQT1LEkEUKK8WgVEFOSk8tVE9UIEdJWkVMQQorxaBUQVJLIEVHT04gRElQTCBJTkcKK8WgVEFSSyBNSVJLTworxaBUQVNOSSBKT1NJUAorxaBUQVNOSSBLQVRJQ0EKK8WgVEFUS0nEhiBNSVJPU0xBVgorxaBUQVVIRVIgSk9TSVAKK8WgVEVCTCBKRUxFTkEKK8WgVEVGQU4gxJBPUsSQRQorxaBURUZBTiBFVcSQRU4KK8WgVEVGQU4gSlVMSUpBTkEKK8WgVEVGQU4gTUFUSUpBCivFoFRFRkFOIE9TS0FSCivFoFRFRkFOIFJVRE9MRgorxaBURUZBTiBUUkFKQU4KK8WgVEVGQU5BQyBTVEVWQU4KK8WgVEVGQU5JQ0tJIE1JxaBPCivFoFRFRkFOSURFUyBLQVJMTyBEUgorxaBURUZBTklERVMgS0FSTE8KK8WgVEVGQU5LTyBWSUtUT1JJSkEKK8WgVEVGQU5PVknEhiBEUkFHQU4KK8WgVEVGQU5PVknEhiBEUkFHVVRJTgorxaBURUZBTk9WScSGIFRPTUlTTEFWCivFoFRFRktPIMSQT1LEkEUKK8WgVEVGS08gxJBPUsSQRQorxaBURUZPVknEhiBWTEFESU1JUgorxaBURUZVTElLIEpPxb1FRgorxaBURUdFUiBST8W9SQorxaBURUdFUiBWQUxFTlRJTkEKK8WgVEVIRVIgUkFETUlMQQorxaBURUxDRVIgSk9TSVAKK8WgVEVMSSBBTlRVTgorxaBURVJMRSBKT1NJUAorxaBURVJMRSBTVEVWQU4KK8WgVEVSTEVNQU4gS1JJU1RJSkFOCivFoFRFUkxFTUFOIFBFUkEKK8WgVEVUScSGIEtSSVNUSU5BCivFoFRFVEnEhiBUSUhPTUlSCivFoFRFVEnEhiBWRVNOQQorxaBURVRJxIYgVklEQQorxaBURVRJTiBIRUxFTkEKK8WgVEVUSU4gTUlMQU4KK8WgVEVUSU4gTUlMRQorxaBURVRJTiBTVkVUSVNMQVYKK8WgVEVWQU7EjEVWIExKVUJPTUlSCivFoFRJQ0EgVklUT01JUgorxaBUSUdMRVIgSVZBTgorxaBUSUdMRVIgTUlMQU4KK8WgVElHTEnEhiBEUkFHQU4KK8WgVElHTEnEhiBTVkVUT1pBUgorxaBUSUtBVkFDIEtPU09WS0EKK8WgVElLT1ZBQyBTUEFTT0pFCivFoFRJTUFDIE9UTworxaBUSU1BQyBSVURPTEYKK8WgVE9LT1ZBQyBKT1ZBTgorxaBUT0tPVkFDIFRPTUlTTEFWCivFoFRPTEJBIFpWT05JTUlSCivFoFRPUyBLQVRJQ0EKK8WgVFJBSkggScWgVFZBTgorxaBUUkFKSCBKT1NJUAorxaBUUkFKSCBPVFRPCivFoFRSQU5HQVIgTkFEQQorxaBUUkFOR0FST1YgQk9SSVZPSgorxaBUUkFOR0FST1YgRElNSVRSSUpFCivFoFRSQU5HQVJPViBKRUxFTkEKK8WgVFJBTkdBUk9WIEpFTEVOQQorxaBUUkFOR0FST1YgTUlMSUNBCivFoFRSQU5HQVJPViBTTE9CT0RBTgorxaBUUkFQQUpFVknEhiBKVUxJSkFOQQorxaBUUkFTRVIgTUlIQUpMTyBEUiBMRUtBUgorxaBUUkFTRVIgTkFEQQorxaBUUkFVQiBFUsW9RUJFVAorxaBUUkFVQiBJxaBUVkFOCivFoFRSQVVCIFNURVZBTgorxaBUUkJBIERBTklMTworxaBUUkJBIE1JTEFOCivFoFRSQkHEjEtJIEJPUklTTEFWCivFoFRSQkFDIMW9RUxKS08KK8WgVFJCQUMgxJBPUsSQRQorxaBUUkJBQyDEkFVSTworxaBUUkJBQyBBTsSQRUxLQQorxaBUUkJBQyBCT8WgS08KK8WgVFJCQUMgQk9SSVNMQVYKK8WgVFJCQUMgQlJBTktBCivFoFRSQkFDIERBUklOS0EKK8WgVFJCQUMgREVTQU5LQQorxaBUUkJBQyBEUkFHQU4KK8WgVFJCQUMgRFXFoEFOCivFoFRSQkFDIERVxaBBTgorxaBUUkJBQyBEVcWgQU4KK8WgVFJCQUMgRFXFoEFOCivFoFRSQkFDIEpPVkFOCivFoFRSQkFDIExKVUJJQ0EKK8WgVFJCQUMgTEpVQk9NSVIKK8WgVFJCQUMgTUFSSUpBCivFoFRSQkFDIE1JxIZPCivFoFRSQkFDIE1JxIZPCivFoFRSQkFDIE1JTEFOS08KK8WgVFJCQUMgTUlMQU4KK8WgVFJCQUMgTUlMQU4KK8WgVFJCQUMgTUlMQU4KK8WgVFJCQUMgTUlMQU4KK8WgVFJCQUMgTUlMRU5BCivFoFRSQkFDIE1JTElDQQorxaBUUkJBQyBNSUxJVk9KCivFoFRSQkFDIE1JTE/FoAorxaBUUkJBQyBNSVJKQU5BCivFoFRSQkFDIE1JUktPCivFoFRSQkFDIE1PTcSMSUxPCivFoFRSQkFDIE5FTUFOSkEKK8WgVFJCQUMgTklLT0xBCivFoFRSQkFDIFJBRE9KS0EKK8WgVFJCQUMgUkFET1ZBTgorxaBUUkJBQyBTQVZLQQorxaBUUkJBQyBTTEFWSUNBCivFoFRSQkFDIFNMQVZLTworxaBUUkJBQyBTVEFOQQorxaBUUkJBQyBTVEVWQU4KK8WgVFJCQUMgVE9NSVNMQVYKK8WgVFJCQUMgVVJPxaAKK8WgVFJCQUMgVkxBRE8KK8WgVFJCQUMgVlVLSUNBCivFoFRSQkFDIFpPUklDQQorxaBUUkJFTksgSVZBTktBCivFoFRSQkVOSyBOSUtPTEEKK8WgVFJCT0pBIMW9SVZLTworxaBUUkJPSkEgxJBPUsSQRQorxaBUUkJPSkEgxJBPUsSQRQorxaBUUkJPSkEgUkFEQQorxaBUUkJPSkEgUkFESVZPSgorxaBUUkJPSkEgU1RFVkFOCivFoFRSQk9KRSBESU1JVFJJSkUKK8WgVFJJQ0tJIEpPU0lQCivFoFRSSyBKT1NJUAorxaBUUksgTUFSSUpBCivFoFRSS0nEhiBNSVJPU0xBVgorxaBUUktJxIYgTU9NSVIKK8WgVFJPSyDFvUVMSktPCivFoFRSVEFLIFNMQVZLTworxaBUUlRBSyBTTE9CT0RBTgorxaBUVUxBIE1JTEUKK8WgVFVMScSGIEJPxb1JREFSCivFoFRVTEnEhiBHT1JBTgorxaBUVUxJxIYgSk9WTworxaBUVUxJxIYgTUFSS08KK8WgVFVMScSGIFJBRE9WQU4KK8WgVFVNUEYgSEVMTVVUCivFoFRVTVBGIE9TVkFMRAorxaBVxaDEjEVWScSGIEpPVk8KK8WgVcWgxIxFVknEhiBaRFJBVktPCivFoFXFoEEgxIxFRE9NSVIKK8WgVcWgQSBEVcWgQU4KK8WgVcWgQSBKT1ZBTgorxaBVxaBBIEtFTUFMCivFoFXFoEEgU1RPSkFOS0EKK8WgVcWgQUsgxJBPS0EKK8WgVcWgQUsgxJBPUsSQRQorxaBVxaBBSyBHT1NQQVZBCivFoFXFoEFLIE1BUklKQQorxaBVxaBBSyBORVZFTkEKK8WgVcWgQUsgU1RBTUVOS08gRFIKK8WgVcWgQUsgVE9NSVNMQVYKK8WgVcWgQUtPViBQQUpBCivFoFXFoEVWU0tJIE1JTEFOCivFoFXFoEnEhiBSSVNUTworxaBVxaBJxIYgVE9NSVNMQVYKK8WgVcWgS0FWxIxFVknEhiBJTElKQQorxaBVxaBLQVbEjEVWScSGIE1JT0RSQUcKK8WgVcWgS09WScSGIEJPUklTCivFoFXFoExKSUsgSk9WQU4KK8WgVcWgTkpBUiDFvUFSS08KK8WgVcWgTkpBUiBCT1JJU0xBVgorxaBVxaBOSkFSIEJPUklTTEFWCivFoFXFoE5KQVIgTUlIQUpMTworxaBVxaBOSkFSIE1JTEFOCivFoFXFoE5KQVIgTUlMQU4KK8WgVcWgTkpBUiBQRVRBUgorxaBVxaBOSkFSIFBFVEFSCivFoFXFoE5KQVIgUEVUQVIKK8WgVcWgTkpBUiBTTEFWS08KK8WgVcWgTkpBUiBTT0ZJSkEKK8WgVcWgTkpBUiBTVEFOS08KK8WgVcWgTkpFVknEhiBEVcWgQU4KK8WgVcWgTkpFVknEhiBNT03EjElMTworxaBVxaBOSkVWScSGIFJBRE9TTEFWCivFoFXFoE5KScSGIFNUQU5LQQorxaBVxaBUUkFOIE1MQURFTgorxaBVxaBUVU0gSk9WQU4KK8WgVcSGQUsgTUlMQU4KK8WgVcSGT1YgxIZJUkEKK8WgVcSGT1YgREFOSUNBCivFoFXEhk9WIERBTklMTworxaBVxIZPViBNSUxPxaAKK8WgVcSGT1YgVlVLT1NBVkEKK8WgVUJBUkEgTUxBREVOCivFoFVCQVJJxIYgTFVLQQorxaBVQkFSScSGIFZMQVNUSU1JUgorxaBVQkFSScSGIFpPUkFOCivFoFVCRVJUIElMT05LQQorxaBVQknEhiBKT1ZBTktBCivFoFVCT05KIFNJTFZJVVMKK8WgVURBUiBKT8W9RUYKK8WgVURBUiBKT1NJUAorxaBVRElDS0kgSk/FvUVGCivFoFVHScSGIE1JTEFOCivFoFVHScSGIE5BREEKK8WgVUdJxIYgUEVUQVIKK8WgVUdJTiDFvUlWS08KK8WgVUdJTiBCRVJJU0FWCivFoFVHSU4gRElNSVRSSUpFCivFoFVHSU4gTEVLU0EKK8WgVUdJTiBMSklMSkFOQQorxaBVR0lOIExKSUxKQU5BCivFoFVHSU4gTUlMS0EKK8WgVUdJTiBNSU9EUkFHCivFoFVHSU4gTUlPRFJBRworxaBVR0lOIFJBREEKK8WgVUdJTiBSQU5LQQorxaBVSEFKREEgxJBVUkEKK8WgVUhBSkRBIElNUkUKK8WgVUhBSkRBIExBSk/FoAorxaBVSkRPVknEhiBaT1JBTgorxaBVSknEhiBEUkFHT01JUgorxaBVSknEhiBSRUTFvU8KK8WgVUpJQ0EgTUlMQU4KK8WgVUtBIEFMRUtTQQorxaBVS0FMT1ZJxIYgxJBPUsSQRQorxaBVS0FSQSBCT0dEQU4KK8WgVUtBUkEgRE1JVEFSCivFoFVLQVJBIERVxaBBTgorxaBVS0nEhiBEUkFHSUNBCivFoFVLScSGIE1JUk9MSlVCCivFoFVLScSGIFpPUklDQQorxaBVS0xBIFNMQVZLTworxaBVS09WScSGIE1JTEFOCivFoFVLT1ZJxIYgWk9SS0EKK8WgVUtVTkRBIE1BUklKQQorxaBVS1VOREEgTUlMQU4KK8WgVUtVUk1BIFNURVZPCivFoFVMQUpBIE1JUk9TTEFWCivFoFVMQyBBTkRSQcWgCivFoFVMQyBERUxJTUlSIERSIFBST0YKK8WgVUxDIElNUkUgRElQTCBJTkcKK8WgVUxDIElNUkUKK8WgVUxDIEpPxb1FRgorxaBVTEMgSk/FvUVGCivFoFVMQyBLT1NBTkEKK8WgVUxDIFZFUkEKK8WgVUxFTlRJxIYgTUlMRQorxaBVTEhPRiBKT8W9RUYgS05KScW9RVZOSUsKK8WgVUxKQU4gQU5BCivFoFVMSkFOIEpBTktPCivFoFVMSkFOIEpBTgorxaBVTEpBTiBKQU4KK8WgVUxKQU4gSkFST1NMQVYKK8WgVUxKQU4gUEFMCivFoFVMSk1BTkFDLcWgRcSGRVJPViBNSVJKQU5BCivFoFVMSk1BTkFDIEJSQU5JTUlSCivFoFVMSk1BTkFDIEpPVkFOCivFoFVMSk1BTkFDIFVST8WgCivFoFVMT1ZJxIYgUEVUQVIKK8WgVU1BSEVSIElMT05BCivFoFVNQUhFUiBKQU5PxaAKK8WgVU1BSlNLSSBCTEHFvUVOS0EKK8WgVU1BTiBWSVRPTUlSCivFoFVNQU5PVkFDIFBBVkxFIERJUEwgSU5HCivFoFVNQU5PVknEhiBCUkFOSVNMQVYKK8WgVU1BTk9WScSGIExKSUxKQU5BCivFoFVNQVIgQk/FvU8KK8WgVU1BUiBNSUxBTgorxaBVTUFSIFNJTUEKK8WgVU1BUkVWScSGIERSQUdPUkFECivFoFVNQVJPViBOSUtPTEEKK8WgVU1BUlVOQSBDVkVUQQorxaBVTUFSVU5JxIYgUEFWTEUKK8WgVU1FQyBFUk5BCivFoFVNRUMgSkFOT8WgCivFoFVNScSGIE1MQURFTgorxaBVTU9OSkEgTUlMQU4KK8WgVU5ET1ZBIEZMT1JBCivFoFVOScSGIEpPVk8KK8WgVU5KScSGIFBFVEFSCivFoFVOSktBIE1BUktPCivFoFVOSktBIE1JTElDQQorxaBVTkpLQSBSQVRLTworxaBVTktBIEpPVkFOCivFoFVOS0nEhiBMQVpBUgorxaBVTlRJxIYgTUFURUoKK8WgVVBFIMWgSU1FCivFoFVQSUNBIERVxaBBTgorxaBVUElDQSBMQVpBUgorxaBVUElDQSBMQVpBCivFoFVQSUNBIExKVUJJQ0EKK8WgVVBJQ0EgTUFSQQorxaBVUElDQSBNSUxBTgorxaBVUElDQSBNSUxPxaAKK8WgVVBJQ0EgUEVUQVIKK8WgVVBJQ0EgU0xBVktPCivFoFVQSUNBIFZBU0EKK8WgVVBVVCDFvUFSS08gRElQTCBJTkcKK8WgVVBVVCDEkFVSTworxaBVUFVUIERVxaBBTgorxaBVUFVUIFNMT0JPREFOCivFoFVQVVQgU1ZFVE9aQVIKK8WgVVJBTkpJIFRFUkVaSUpBCivFoFVSQkFOT1ZJxIYgQlJBTktPCivFoFVSSkFOIEpBTk/FoAorxaBVUkpBTiBKT1ZBTgorxaBVUkpBTsSMRVYgSVZBTgorxaBVUkpBTk9WScSGIE1JTEFOCivFoFVSSkFOT1ZJxIYgTUlMRU5BCivFoFVSS0FMT1ZJxIYgTUlMRU5BCivFoFVSS09WScSGIERPUkFOCivFoFVSS09WScSGIElSRkFOIERJUEwgSU5HCivFoFVSTEFOIMSMRURPTUlSCivFoFVSTEFOIMSQT1LEkE8KK8WgVVJMQU4gRFJBR09NSVIKK8WgVVJMQU4gRFJBR09TTEFWCivFoFVSTEFOIEdPSktPCivFoFVSTEFOIEpPVkFOCivFoFVSTEFOIE1BUklOS08KK8WgVVJMQU4gTUFSS08KK8WgVVJMQU4gTUlMT8WgCivFoFVSTEFOIE1JUktPCivFoFVSTEFOIE1PTUlSCivFoFVSTEFOIE5FREVMSktPCivFoFVSTEFOIFJVxaBLTworxaBVUkxBTiBWT0pJU0xBVgorxaBVUkxBTiBWVUtPU0FWQQorxaBVU1RFUiBORUdPU0xBVgorxaBVU1RSSUpBTiBPTEdBCivFoFVUQU5PVknEhiBOQURBCivFoFVUSUxPVknEhiBNSUxPUkFECivFoFVUSUxPVknEhiBORVZFTktBCivFoFVUVUxPVknEhiBEQU5LQQorxaBVVFVMT1ZJxIYgVkVTTkEKK8WgVVRWScSGIEJSQU5LQQorxaBVVkFLIE1JT0RSQUcKK8WgVVZBS09WIERBUklOS0EKK8WgVVZBS09WIERFSkFOCivFoFVWQUtPViBKT1ZBTgorxaBVVkFLT1YgTUlMRU5BCivFoFVWQUtPViBNSUxPUkFECivFoFVWQUtPViBTVEVWQU4KK8WgVVZBS09WIFRJSE9NSVIgRFIKK8WgVVZBS09WIFZFU0VMSU5LQQorxaBVVkFLT1ZJxIYgxJBVUsSQSUNBCivFoFVWQUtPVknEhiBCT0dPU0xBVgorxaBVVkFLT1ZJxIYgREFNSkFOIERSIExFS0FSCivFoFVWQUtPVknEhiBKVUxJSkFOQQorxaBVVkFLT1ZJxIYgWk9SQU4KK8WgVkFCIEVTVEVSCivFoFZBQiBIRU5SSUpFVEEKK8WgVkFHRVIgTUFSVElOCivFoFZBSkJFUknEhiBWSVJHSU5JSkEKK8WgVkFKQ0VSIEdJWkVMQQorxaBWQUpDRVIgSVZJQ0EKK8WgVkFKQ0VSLVJBS0nEhiBJUkVOQQorxaBWQUpDRVIgUk9aQUxJSkEKK8WgVkFORElMSUsgSk/FvUVGCivFoFZBUkMgSUxPTkEKK8WgVkFSQyBUSUJPUgorxaBWQVJDIFZMQURJTUlSCivFoFZFREnEhiBBxIZJTQorxaBWRURJxIYgRFXFoEFOCivFoFZFREnEhiBFTElaQUJFVEEKK8WgVkVEScSGIEVSxb1JS0EKK8WgVkVEScSGIEdSVUpBCivFoFZFREnEhiBKT1ZBTgorxaBWRURJxIYgTUlMSUNBCivFoFZFREnEhiBNSUxPUkFECivFoFZFREnEhiBNSUxVVElOCivFoFZFREnEhiBOSUtPTEEKK8WgVkVEScSGIFBFVEFSCivFoFZFTEpBIEJPR0RBTgorxaBWRUxKQSBQRVRBUgorxaBWRU0gxJBVUkEKK8WgVkVOREEgR09SQU4KK8WgVkVSIEtBUkxPCivFoFZFUkVSIFJVRE9MRgorxaBWRVJLTyBBTsSQRUxJSkEKK8WgVklORCBORU5BRAorxaBWT0IgSk9TSVAKK8WgVk9CIExBSk/FoAorxaBWT05KQSDFvUVMSktPCivFoFZPTkpBIMSQVVLEkElOS0EKK8WgVk9OSkEgQklMSkFOQQorxaBWT05KQSBCT8WgS08KK8WgVk9OSkEgQk/FoEtPCivFoFZPTkpBIEJPxb1JREFSCivFoFZPTkpBIEJPUklWT0oKK8WgVk9OSkEgQlJBTktPCivFoFZPTkpBIERSQUdPTEpVQgorxaBWT05KQSBEVcWgQU4KK8WgVk9OSkEgRFXFoEtPCivFoFZPTkpBIE1JTEFOCivFoFZPTkpBIE1JUkEKK8WgVk9OSkEgUkFUS08KK8WgVk9OSkEgUkFUS08KK8WgVk9OSkEgU1ZFVE9aQVIKK8WgVk9OSkEgVkVMSktPCivFoFZSQUtBIEZSQU5KTworxaBWUkFLQSBTVEVWQU4gRElQTCBJTkcKK8WgVlJBS0EgU1RFVkFOCivEhkHEhknEhiBEQU5JQ0EKK8SGQcSGScSGIERVxaBBTgorxIZBxIZJxIYgTUFSS08KK8SGQcSGScSGIE5JTk9TTEFWCivEhkFIVU4gS0FSTE8gRElQTCBJTkcKK8SGQUpBIFZBTktBCivEhkFLScSGIEdJWkEKK8SGQUxBU0FOIEpPVkFOCivEhkFMQVNBTiBTVE9KQU4KK8SGQUxFVEEgSVZJQ0EKK8SGQUxJxIYgSUxJSkEKK8SGQUxJxIYgSk9WQU4KK8SGQUxJxIYgSk9WQU4KK8SGQUxJxIYgTFVLQQorxIZBTEnEhiBNSUxPxaAKK8SGQUxJxIYgTU9NxIxJTE8KK8SGQUxJxIYgU0xPQk9EQU4KK8SGQUxJxIYgWk9SQU4KK8SGQUxPViBNSUxPUkFECivEhkFMT1ZJxIYgTEFLScSGCivEhkFMT1ZJxIYgUkFET01JUgorxIZBTFXFoEnEhiBKQUtPVgorxIZBVEnEhiBSQURFTktPCivEhkFUScSGIFNNSUxKQU5BCivEhkFUT1ZJxIYgRFJBR0FOCivEhkFUT1ZJxIYgR09TUEFWQQorxIZBVE9WScSGIE1BSElUCivEhkFUT1ZJxIYgU0lNQU4KK8SGQVZBUiBNQVJLTworxIZBWknEhiDEkE9SxJBFCivEhkFaScSGIE1JTEUKK8SGQVpJxIYgTUlMRQorxIZBWknEhiBQRVRBUgorxIZFQknEhiBCT1JJVk9KCivEhkVCScSGIE1JTEFOCivEhkVCScSGIFNMQVZJQ0EKK8SGRUJPVknEhiBORU5BRAorxIZFSEEgQlJBTkUKK8SGRUpJxIYgRFXFoEFOCivEhkVKScSGIERVxaBBTgorxIZFTEFQIE1MQURFTgorxIZFTEFQIFNWRVRPWkFSCivEhkVMScSGIExKVUJBCivEhkVMScSGIFNMQVZLTworxIZFTEnEhiBWSUtUT1JJSkEKK8SGRU5BTk9WScSGIE1JUkpBTkEKK8SGRVJBTiBCT8WgS08KK8SGRVJBTiBEVcWgQU4KK8SGRVJBTiBKRUxLQQorxIZFUkFOIE1JTEVOS08KK8SGRVJBTiBTVE9KQU4KK8SGRVJBTiBWRUxKS08KK8SGRVJBTiBaT1JBTktBCivEhkVSQU5JxIYgQlJBTklTTEFWCivEhkVSQU5JxIYgTUlMQU4KK8SGRVJBTknEhiBNSUxJQ0EKK8SGRVJBTknEhiBSQURJTktBCivEhkVSQU5JxIYgU05Fxb1BTkEKK8SGRVJBTknEhiBaT1JBTgorxIZFUklNQUdJxIYgRVRIRU0KK8SGRVJNT1YtS0FWRcSMQU4gQk9KQU5BCivEhkVTQVJPViDFvUFSS08KK8SGRVNBUk9WIEJSQU5JU0xBVgorxIZFU0FST1YgUlXFvUlDQQorxIZFU0FST1YgU0lNQQorxIZFU0FST1YgU1RFVkFOCivEhkVTQVJPViBTVkVUT1pBUgorxIZFU0FST1ZJxIYgQk9TSUxKS0EKK8SGRVNBUk9WScSGIFJBRElWT0oKK8SGRVRLT1ZJxIYgxb1BUktPCivEhkVUS09WScSGIEJPxb1JREFSCivEhkVUS09WScSGIERVxaBBTktBCivEhkVUS09WScSGIE1JTEVOS08KK8SGRVRLT1ZJxIYgTkVOQUQKK8SGRVRLT1ZJxIYgUFJFRFJBRworxIZFVE9KRVZJxIYgxJBPUsSQRQorxIZFVE9KRVZJxIYgQk9TQQorxIZFVE9KRVZJxIYgRFJBR09MSlVCCivEhkVUT0pFVknEhiBKT1ZPCivEhkVUT0pFVknEhiBNSUxPxaAKK8SGRVRPSkVWScSGIE1JTE9WQU4KK8SGRVRPSkVWScSGIE1JUk9TTEFWCivEhkVUT0pFVknEhiBORURFTEpLTworxIZFVE9KRVZJxIYgUkFET1ZBTgorxIZFVkFQIEJPxb1BCivEhknFoElOIERVxaBBTktBCivEhklOS1VMIFNBVkEKK8SGSU5LVUwgVkFMVEEKK8SGSVBFIEVSxb1FQkVUCivEhklQUk9WQUMgU0FWQQorxIZJUFJPVkFDIFRPxaBBCivEhklQUk9WQUMgWkRSQVZLTworxIZJUkFLIE1JTE9SQUQKK8SGSVJBS09WScSGIMW9SVZPUkFECivEhklSQUtPVknEhiBNQVJLTworxIZJUkFLT1ZJxIYgTUlMT1JBRAorxIZJUkFLT1ZJxIYgU0FKQQorxIZJUkVWU0tJIEJVRElNSVIKK8SGSVJJxIYgxIZJUkEKK8SGSVJJxIYgxb1JVktBCivEhklSScSGIMW9SVZLQQorxIZJUknEhiDEkE9SxJBFCivEhklSScSGIMSQT1LEkEUKK8SGSVJJxIYgxJBPUsSQRQorxIZJUknEhiDEkE9SxJBFCivEhklSScSGIMSQT1LEkEUKK8SGSVJJxIYgxJBPUsSQRQorxIZJUknEhiDEkE9SxJBFCivEhklSScSGIMSQVVLEkElOS0EKK8SGSVJJxIYgQU5JQ0EKK8SGSVJJxIYgQU5JVEEKK8SGSVJJxIYgQk/FoEtPCivEhklSScSGIEJPxb1JREFSIERSCivEhklSScSGIEJPxb1JREFSCivEhklSScSGIEJPxb1PCivEhklSScSGIEJPUklTTEFWCivEhklSScSGIEJPUklTTEFWCivEhklSScSGIEJPUklTTEFWCivEhklSScSGIEJSQU5LQQorxIZJUknEhiBCUkFOS08KK8SGSVJJxIYgREFOSUNBCivEhklSScSGIERBTklMTworxIZJUknEhiBERVNBTktBCivEhklSScSGIERJVktPCivEhklSScSGIERPQlJJTEEKK8SGSVJJxIYgRFJBR0FOCivEhklSScSGIERSQUdJQ0EKK8SGSVJJxIYgRFJBR0lOSkEKK8SGSVJJxIYgRFJBR09MSlVCCivEhklSScSGIERVxaBBTiBESVBMIElORworxIZJUknEhiBEVcWgQU5LQQorxIZJUknEhiBEVcWgQU4KK8SGSVJJxIYgRFXFoEFOCivEhklSScSGIERVxaBJQ0EKK8SGSVJJxIYgR0FWUklMTworxIZJUknEhiBHT1JEQU5BCivEhklSScSGIElWQU5LQQorxIZJUknEhiBJVkFOCivEhklSScSGIEpFTElTQVZFVEEKK8SGSVJJxIYgSk9SREFOCivEhklSScSGIEpPVkFOS0EKK8SGSVJJxIYgSk9WQU4KK8SGSVJJxIYgSk9WQU4KK8SGSVJJxIYgSk9WQU4KK8SGSVJJxIYgS0FNRU5LTworxIZJUknEhiBLQVRJQ0EKK8SGSVJJxIYgTEFaQVIKK8SGSVJJxIYgTEVOS0EKK8SGSVJJxIYgTEpVQklDQQorxIZJUknEhiBMSlVCSUNBCivEhklSScSGIExKVUJPTUlSCivEhklSScSGIE1BUktPCivEhklSScSGIE1JTEFOIERJUEwgSU5HCivEhklSScSGIE1JTEFOCivEhklSScSGIE1JTEVOS08KK8SGSVJJxIYgTUlMRU5LTworxIZJUknEhiBNSUxFVEEKK8SGSVJJxIYgTUlMSUNBCivEhklSScSGIE1JTEtBCivEhklSScSGIE1JTE/FoAorxIZJUknEhiBNSUxPxaAKK8SGSVJJxIYgTUlMT1JBRAorxIZJUknEhiBNSUxPUkFECivEhklSScSGIE1JT0RSQUcKK8SGSVJJxIYgTUlSQQorxIZJUknEhiBNTEFERU4KK8SGSVJJxIYgTklLT0xBCivEhklSScSGIFBBSkEKK8SGSVJJxIYgUEVUQVIKK8SGSVJJxIYgUEVUQVIKK8SGSVJJxIYtUEVUUk9WScSGIEtBVEFSSU5BCivEhklSScSGIFBSRURSQUcKK8SGSVJJxIYgUkFERQorxIZJUknEhiBSQURNSUxBCivEhklSScSGIFJBRE1JTE8KK8SGSVJJxIYgUkFET01JUgorxIZJUknEhiBSQURPVkFOCivEhklSScSGIFJPQkVSVAorxIZJUknEhiBTQVZBCivEhklSScSGIFNMQVZJQ0EKK8SGSVJJxIYgU0xBVktPCivEhklSScSGIFNMQVZLTworxIZJUknEhiBTTE9CT0RBTgorxIZJUknEhiBTTUlMSkEKK8SGSVJJxIYgU09GSUpBCivEhklSScSGIFNSRURPSkUKK8SGSVJJxIYgU1RBTklTTEFWCivEhklSScSGIFNURVZBTgorxIZJUknEhiBTVEVWQU4KK8SGSVJJxIYgU1RFVkFOCivEhklSScSGIFNWRVRJU0xBVgorxIZJUknEhiBTVkVUT1pBUgorxIZJUknEhiBTVkVUT1pBUgorxIZJUknEhiBTVkVUT1pBUgorxIZJUknEhiBTVkVUT1pBUgorxIZJUknEhiBUT01JU0xBVgorxIZJUknEhiBUT01JU0xBVgorxIZJUknEhi1UT04gSkVMSUNBCivEhklSScSGIFZBU0EKK8SGSVJJxIYgVkVSQQorxIZJUknEhiBWTEFESU1JUgorxIZJUknEhiBWTEFESU1JUgorxIZJUknEhiBWTEFESVNMQVYKK8SGSVJJxIYgVlXEjEtPCivEhklSScSGIFpPUkFOCivEhklSScSGIFpPUkEKK8SGSVJJxIYgWk9SQQorxIZJUknEhiBaT1JLQQorxIZJUklMT1YgTUlMQU4KK8SGSVJJTE9WScSGIEFOSUNBCivEhklSSUxPVknEhiBCUkFOSVNMQVYKK8SGSVJJTE9WScSGIE1JTElWT0oKK8SGSVJJTE9WScSGIE1MQURFTgorxIZJUklMT1ZJxIYgT0xHQQorxIZJUklMT1ZJxIYgUEVUQVIKK8SGSVJJTE9WScSGIFZFUkEKK8SGSVJJTiBEUkFHT1NMQVYKK8SGSVJJTi1OT1ZUQSBWRVJBCivEhklSSU4gU0xPQk9EQU4KK8SGSVJJVE9WScSGIERVxaBBTktBCivEhklSSkFLT1ZJxIYgR09SREFOQQorxIZJUkpBS09WScSGIFNMQVZPTEpVQgorxIZJUkpBS09WScSGIFNMT0JPREFOCivEhklSS09WScSGIMSQT1LEkEUKK8SGSVJLT1ZJxIYgQ1ZFVEFOS0EKK8SGSVJLT1ZJxIYgSVZBTgorxIZJUktPVknEhiBJVkFOCivEhklSS09WScSGIEpBTktPCivEhklSS09WScSGIEtBVElDQQorxIZJUktPVknEhiBNQVJLTworxIZJUktPVknEhiBNQVJUQQorxIZJUktPVknEhiBNSUxFTktPCivEhklSS09WScSGIE1JUk9TTEFWCivEhklSS09WScSGIE5FTkFECivEhklSS09WScSGIFJBRE1JTEEKK8SGSVJPVknEhiDFvUFSS08KK8SGSVJPVknEhiBERUpBTgorxIZJUk9WScSGIEdSVUpJQ0EKK8SGSVJPVknEhiBNSUxVVElOCivEhklST1ZJxIYgTklLT0xBCivEhklST1ZJxIYgVkVMSU1JUgorxIZJUk9WScSGIFZFTElNSVIKK8SGSVJQQU5PViBNSU9EUkFHCivEhklSVcWgScSGIFJBSktPCivEhklUScSGIERVxaBBTgorxIZJVEnEhiBNSUxPVkFOCivEhk/EhktBTE8gU0lNQQorxIZPSkFOT1ZJxIYgQk/FvUlEQVIKK8SGT0pBTk9WScSGIEJPUk8KK8SGT0pBTk9WScSGIE1JTEtBCivEhk9KREVSIEdPSktPCivEhk9NQSBLQVRBUklOQQorxIZPUEnEhiBBTkRSSUpBCivEhk9QScSGIEVWSUNBCivEhk9QScSGIE1JxIZBCivEhk9QScSGIE1JTEUKK8SGT1BJxIYgTUlMT8WgCivEhk9QScSGIFZFUkEKK8SGT1JJxIYtxJBPS0nEhiBOQURBCivEhk9SScSGIMSQT1LEkEUKK8SGT1JJxIYgxJBVUk8KK8SGT1JJxIYgxJBVUk8KK8SGT1JJxIYgQU5EUklKQQorxIZPUknEhiBCSVNFUktBCivEhk9SScSGIEJMQUdPSkUKK8SGT1JJxIYgQk9SQQorxIZPUknEhiBKT1ZBTgorxIZPUknEhiBLQVRBUklOQQorxIZPUknEhiBMSklMSkFOQQorxIZPUknEhiBNQVJJSkEKK8SGT1JJxIYgTUnEhk8KK8SGT1JJxIYgTUlLQUlMTworxIZPUknEhiBSQUpLTworxIZPUktPVknEhiBJVkFOCivEhk9SS09WScSGIE1BUktPCivEhk9ST1ZJxIYgREFOSUxPCivEhk9ST1ZJxIYgSk9WQU4KK8SGT1JPVknEhiBNSVLEjEVUQQorxIZPUk9WScSGIE1JUk8KK8SGT1JPVknEhiBSRU5BVEEKK8SGT1JPVknEhiBTTE9CT0RBTgorxIZPU0nEhiDFoFRFRklDQQorxIZPU0nEhiDFvUFSS08KK8SGT1NJxIYgxb1JVkFOQQorxIZPU0nEhiDFvUlWS0EKK8SGT1NJxIYgQUxFS1NBTkRBUgorxIZPU0nEhiBBTEVLU0FOREFSCivEhk9TScSGIEJPR0RBTiBTVURJSkEKK8SGT1NJxIYgQlJBTktPCivEhk9TScSGIEJSQU5LTworxIZPU0nEhiBEQU5JQ0EKK8SGT1NJxIYgRFJBR0FOQQorxIZPU0nEhiBEUkFHQU4KK8SGT1NJxIYgRFJBR0lDQQorxIZPU0nEhiBEUkFHSUNBCivEhk9TScSGIERVxaBBTgorxIZPU0nEhiBEVcWgQU4KK8SGT1NJxIYgRFXFoEtPCivEhk9TScSGIEZBRElMCivEhk9TScSGIElMSUpBCivEhk9TScSGIEpFTEtBCivEhk9TScSGIEpPVkFOCivEhk9TScSGIEpPVkFOCivEhk9TScSGIEpPVkFOCivEhk9TScSGIEpPWk8KK8SGT1NJxIYgTEpJTEpBTkEKK8SGT1NJxIYgTUFSSUpBCivEhk9TScSGIE1BUklKQQorxIZPU0nEhiBNSUxBTgorxIZPU0nEhiBNSUxFTkEKK8SGT1NJxIYgTUlMSUNBCivEhk9TScSGIE1JUkpBTkEKK8SGT1NJxIYgTVVIQU1FRAorxIZPU0nEhiBPTEdBCivEhk9TScSGIFBBTlRFTElKQQorxIZPU0nEhiBTQVZLQQorxIZPU0nEhiBTTUlMSkEKK8SGT1NJxIYgU05Fxb1BTkEKK8SGT1NJxIYgU1RBTktBCivEhk9TScSGIFNUT0pBTgorxIZPU0nEhiBUT0RPUiBESVBMIElORworxIZPU0nEhiBWRVJBCivEhk9TScSGIFZFUk9TTEFWCivEhk9TScSGIFZMQURJTUlSCivEhk9TScSGIFpPUkFOCivEhk9TScSGIFpPUktBCivEhk9TSU4gRFXFoEFOCivEhk9TSU4gWk9SQU4KK8SGT1NPIEdBVlJJTE8KK8SGT1NPVknEhiBKRUxFTkEKK8SGT1NPVknEhiBNSUxFVEEKK8SGT1NPVknEhiBUT01JU0xBVgorxIZPVknEhiBMQVpBUgorxIZPVklOIE1JTEFOCivEhlXEhkEgQURBTQorxIZVxIZJTE9WScSGIENWSUpBCivEhlXEhklMT1ZJxIYgTU9NxIxJTE8KK8SGVcSGSUxPVknEhiBSVcW9SUNBCivEhlXEhlVaIE1BUktPCivEhlXEhlVaIFNBxaBBCivEhlXEhlVaIFNUQU5LTworxIZVQkEgUkFUS08gRElQTCBJTkcKK8SGVUJJxIYgRFXFoEFOCivEhlVJxIYgSUxJSkEKK8SGVUnEhiBNQVJBCivEhlVJxIYgTUlMS0EKK8SGVUpJxIYgTEpVQklDQQorxIZVSknEhiBTVEVWQU4KK8SGVUsgxJBVUk8KK8SGVUsgRFJBR08KK8SGVUsgRFXFoEFOCivEhlVLIERVxaBBTgorxIZVSyBHT0pLTworxIZVSyBMRUxBCivEhlVLIExVS0EKK8SGVUsgTUFSQQorxIZVSyBNSUxBTiBESVBMIElORworxIZVSyBNSUxFCivEhlVLIE1JTElDQQorxIZVSyBNSUxLQU4KK8SGVUsgTUlMT1JBRAorxIZVSyBNSVJPU0xBVgorxIZVSyBOSUtPTEEKK8SGVUsgUkFESVZPSgorxIZVSyBSQVRLTworxIZVSyBTTE9CT0RBTgorxIZVSyBUT01JU0xBVgorxIZVSyBaT1JLQQorxIZVS09WScSGIE1JTFVOCivEhlVLT1ZJxIYgTUlSQQorxIZVS09WScSGIFJBRE9NSVIgRElQTCBJTkcKK8SGVUtPVknEhiBSQURPVkFOCivEhlVLT1ZJxIYgVElIT01JUktBCivEhlVLT1ZJxIYgWk9SQU4KK8SGVUxJxIYgxJBPUsSQRQorxIZVTEnEhiBKQVNNSU5LQQorxIZVTElCUksgQk9HREFOCivEhlVMSUJSSyBEUkFHQU4KK8SGVUxJQlJLIERSQUdBTgorxIZVTElCUksgRFJBR09TTEFWCivEhlVMSUJSSyBEVcWgQU5LQQorxIZVTElCUksgRFXFoEFOCivEhlVMSUJSSyBHT1NQQVZBCivEhlVMSUJSSyBKRUxJQ0EKK8SGVUxJQlJLIEpFTEtBCivEhlVMSUJSSyBNSUxBTgorxIZVTElCUksgTUlMRQorxIZVTElCUksgTUlMRQorxIZVTElCUksgTUlPRFJBRworxIZVTElCUksgTUlSS08KK8SGVUxJQlJLIE1MQURFTgorxIZVTElCUksgTU9NxIxJTE8KK8SGVUxJQlJLIFJBRElWT0pFCivEhlVMSUJSSyBSQURPSktBCivEhlVMSUJSSyBSQVRLTworxIZVTElCUksgUklTVE8KK8SGVUxJQlJLIFNMT0JPREFOCivEhlVMSUJSSyBTT0tBCivEhlVMSUJSSyBTVEVWQU4KK8SGVUxJQlJLIFRSSVZPCivEhlVMVU0gQlJBTktPCivEhlVMVU0gR09KS08KK8SGVUxVTSBJTElKQQorxIZVTFVNIEpFTElDQQorxIZVTFVNIEpPVkFOCivEhlVMVU0gTEFaQVIKK8SGVUxVTSBNQVJBCivEhlVMVU0gTUFSQQorxIZVTFVNIE1JSEFKTE8KK8SGVUxVTSBNSUxBTgorxIZVTFVNIE1JTEVUQQorxIZVTFVNIE1JTE/FoAorxIZVTFVNIE1JT0RSQUcKK8SGVUxVTSBNSVJLTworxIZVTFVNIE1JUktPCivEhlVMVU0gTkFEQQorxIZVTFVNIE5BREEKK8SGVUxVTSBOSUtPTEEKK8SGVUxVTSBQRVJPCivEhlVMVU0gUkFERQorxIZVTFVNIFJBREUKK8SGVUxVTSBTQVZBCivEhlVMVU0gU0xBVktPCivEhlVMVU0gU1RBTktBCivEhlVMVU0gU1RBTktBCivEhlVMVU0gU1RFVk8KK8SGVUxVTSBTVEVWTworxIZVTFVNIFVST8WgCivEhlVMVU0gVkFTQQorxIZVTFVNQU4gU1RFVkFOCivEhlVMVU1PVknEhiBTVEpFUEFOCivEhlVNVVJPVknEhiBTTEFWSUNBCivEhlVQScSGIERVxaBBTgorxIZVUElOQSBCUkFOS08KK8SGVVBJTkEgTUlMQURJTgorxIZVUElOQSBOT1ZJQ0EKK8SGVVBJTkEgVE9NSVNMQVYgRFIKK8SGVVBVUkRJSkEgSkVMRU5BCivEhlVQVVJESUpBIE1JTEFOCivEhlVQVVJESUpBIE1JTE9WQU4KK8SGVVBVUkRJSkEgU0HFoEEKK8SGVVBVUkRJSkEgU1RFVkFOCivEhlVSxIxJxIYgxIxFRE9NSVIKK8SGVVLEjEnEhiDFvUlWQU4KK8SGVVLEjEnEhiDFvUlWQU4KK8SGVVLEjEnEhiDFvUlWS08KK8SGVVLEjEnEhiDEkE9SxJBFCivEhlVSxIxJxIYgQUxFS1NBTkRBUgorxIZVUsSMScSGIEFORFJJSkEKK8SGVVLEjEnEhiBCT8WgS08KK8SGVVLEjEnEhiBCT0dEQU4KK8SGVVLEjEnEhiBCT1JJVk9KCivEhlVSxIxJxIYgQlJBTklTTEFWCivEhlVSxIxJxIYgQlJBTktPCivEhlVSxIxJxIYgQlJBTktPCivEhlVSxIxJxIYgQlJBTktPCivEhlVSxIxJxIYgREFOSUxPCivEhlVSxIxJxIYgREVTUElOQQorxIZVUsSMScSGIERSQUdBTgorxIZVUsSMScSGIERSQUdBTgorxIZVUsSMScSGIERSQUdBTgorxIZVUsSMScSGIERSQUdPTUlSCivEhlVSxIxJxIYgRFJBR09TTEFWCivEhlVSxIxJxIYgRFXFoEFOS0EKK8SGVVLEjEnEhiBEVcWgQU4KK8SGVVLEjEnEhiBEVcWgQU4KK8SGVVLEjEnEhiBEVcWgQU4KK8SGVVLEjEnEhiBHRU9SR0lKRQorxIZVUsSMScSGIEdPSktPCivEhlVSxIxJxIYgR09SREFOQQorxIZVUsSMScSGIElCT0pBCivEhlVSxIxJxIYgSUxJSkEKK8SGVVLEjEnEhiBJTElKQQorxIZVUsSMScSGIEpBU01JTkEKK8SGVVLEjEnEhiBKRUxFTkEKK8SGVVLEjEnEhiBKT1ZBTiBOT1ZJTkFSCivEhlVSxIxJxIYgSk9WQQorxIZVUsSMScSGIEtBTUVOS08KK8SGVVLEjEnEhi1LQVNBTElDQSBCT1NBCivEhlVSxIxJxIYgS0FUSUNBCivEhlVSxIxJxIYgTEFaQVIKK8SGVVLEjEnEhiBMQVpBUgorxIZVUsSMScSGIExKSUxKQU5BCivEhlVSxIxJxIYgTEpJTEpBTkEKK8SGVVLEjEnEhiBMSlVCScWgQQorxIZVUsSMScSGIExKVUJPTUlSCivEhlVSxIxJxIYgTUFSQQorxIZVUsSMScSGIE1BUkEKK8SGVVLEjEnEhiBNQVJJSkEKK8SGVVLEjEnEhiBNQVJJSkEKK8SGVVLEjEnEhiBNQVJJSkEKK8SGVVLEjEnEhiBNSUhBSkxPCivEhlVSxIxJxIYgTUlKTworxIZVUsSMScSGIE1JTEFOCivEhlVSxIxJxIYgTUlMQU4KK8SGVVLEjEnEhiBNSUxBTgorxIZVUsSMScSGIE1JTEFOCivEhlVSxIxJxIYgTUlMQU4KK8SGVVLEjEnEhiBNSUxFTkEKK8SGVVLEjEnEhiBNSUxFVkEKK8SGVVLEjEnEhiBNSUxFCivEhlVSxIxJxIYgTUlMRQorxIZVUsSMScSGIE1JTEnEhgorxIZVUsSMScSGIE1JTElDQQorxIZVUsSMScSGIE1JTElWT0oKK8SGVVLEjEnEhiBNSUxPUkFECivEhlVSxIxJxIYgTUlMT1JBRAorxIZVUsSMScSGIE1JT0RSQUcKK8SGVVLEjEnEhiBNSU9EUkFHCivEhlVSxIxJxIYgTUlSSkFOQQorxIZVUsSMScSGIE1JUkpBTkEKK8SGVVLEjEnEhiBNSVJLTworxIZVUsSMScSGIE1JUk9TTEFWCivEhlVSxIxJxIYgTUlST1NMQVYKK8SGVVLEjEnEhiBNTEFERU4KK8SGVVLEjEnEhiBNT03EjElMTworxIZVUsSMScSGIE5BREEKK8SGVVLEjEnEhiBORU5BRAorxIZVUsSMScSGIE5JS09MQQorxIZVUsSMScSGIE9MR0EKK8SGVVLEjEnEhiBPTEdBCivEhlVSxIxJxIYgUEFWTEUKK8SGVVLEjEnEhiBQRVRBUgorxIZVUsSMScSGIFJBREUKK8SGVVLEjEnEhiBSQURJVk9KCivEhlVSxIxJxIYgUkFETUlMQQorxIZVUsSMScSGIFJBRE1JTEEKK8SGVVLEjEnEhiBSQURPU0xBVgorxIZVUsSMScSGIFJBRE9TTEFWCivEhlVSxIxJxIYgUkFET1NMQVYKK8SGVVLEjEnEhiBSQUpLTworxIZVUsSMScSGIFJBSktPCivEhlVSxIxJxIYgUkFUS0EKK8SGVVLEjEnEhiBSQVRPTUlSCivEhlVSxIxJxIYgU0FWQQorxIZVUsSMScSGIFNMQVZJQ0EKK8SGVVLEjEnEhiBTTEFWS08KK8SGVVLEjEnEhiBTTE9CT0RBTgorxIZVUsSMScSGIFNMT0JPREFOCivEhlVSxIxJxIYgU0xPQk9EQU4KK8SGVVLEjEnEhiBTVEVWQU4KK8SGVVLEjEnEhiBTVEVWTworxIZVUsSMScSGIFVST8WgCivEhlVSxIxJxIYgVkFTSUxJSkUKK8SGVVLEjEnEhiBWRVJBCivEhlVSxIxJxIYgVkVTRUxJTktBCivEhlVSxIxJxIYgVlVLQcWgSU4KK8SGVVLEjEnEhiBaRFJBVktPCivEhlVSxIxJxIYgWkxBVEEKK8SGVVLEjEnEhiBaT1JBTgorxIZVUsSMScSGIFpPUkFOCivEhlVSxIxJSkEgU0lNQQorxIZVUsSMSU4gxb1JVktPCivEhlVSxIxJTiDFvUlWS08KK8SGVVLEjElOIMSQT1LEkEUKK8SGVVLEjElOIMSQVVJBCivEhlVSxIxJTiBBTEVLU0FOREFSCivEhlVSxIxJTiBCT8W9SURBUgorxIZVUsSMSU4gQlJBTktPCivEhlVSxIxJTiBEUkFHT01JUgorxIZVUsSMSU4gRFJBR09TTEFWCivEhlVSxIxJTiBEUkVOS0EKK8SGVVLEjElOIERVxaBBTgorxIZVUsSMSU4gRFXFoEFOCivEhlVSxIxJTiBFTUlMSUpBCivEhlVSxIxJTiBKRUxFTkEKK8SGVVLEjElOIEpFTElTQVZFVEEKK8SGVVLEjElOIExKVUJJQ0EKK8SGVVLEjElOIE1BS1NBCivEhlVSxIxJTiBNSUxBTgorxIZVUsSMSU4gTUlMRU5BCivEhlVSxIxJTiBNSUxPUkFECivEhlVSxIxJTiBNSUxPUkFECivEhlVSxIxJTiBPQlJBRAorxIZVUsSMSU4gUEVUQVIKK8SGVVLEjElOIFJBRElWT0oKK8SGVVLEjElOIFJBRE9TTEFWCivEhlVSxIxJTiBSVcW9QQorxIZVUsSMSU4gU0FSQQorxIZVUsSMSU4gU1ZFVE9aQVIKK8SGVVLEjElOIFRPRE9SCivEhlVSxIxJTiBWQVNBCivEhlVSxIxJTiBWRUxFTUlSCivEhlVSxIxJTiBWRUxJTUlSCivEhlVSxIxJTiBWRVJJQ0EKK8SGVVLEjElOIFZVS0lDQQorxIZVUsSMSU4gWk9SQQorxIZVUsSGSUpJxIYgUkFUT01JUgorxIZVUkRJxIYgSk9WQU4KK8SGVVJEScSGIFZBU0lMSUpFCivEhlVSREnEhiBaT1JBTgorxIZVUkdVWiBJTElKQQorxIZVUkdVWiBNSUxPUkFECivEhlVSR1VaIE5BREEKK8SGVVJHVVogVkVSSUNBCivEhlVSScSMScSGIFRBVEpBTkEKK8SGVVJJxIYgxJBPUsSQRQorxIZVUknEhiBKT1ZBTgorxIZVUknEhiBNSUxBTgorxIZVUknEhiBNSUxPxaAKK8SGVVJJxIYgTUlMT1JBRAorxIZVUknEhiBNSUxVVElOCivEhlVSScSGIFBFTEFHSUpBCivEhlVSScSGIFNBVk8KK8SGVVJJxIYgU0lNTworxIZVUknEhiBTSU5JxaBBCivEhlVSScSGIFNVWkFOQQorxIZVUknEhiBWTEFESVNMQVYKK8SGVVJLT1ZJxIYgxaBQSVJPCivEhlVSS09WScSGLcSQT1LEkEVWScSGIE1JT01JUkEKK8SGVVJLT1ZJxIYgS0FUSUNBCivEhlVSTElCUksgQk9TSUxKS0EKK8SGVVJVVklKQSBCUkFOS08KK8SGVVJVVklKQSBOSUtPTEEKK8SGVVJVVklKQSBOSUtPTEEKK8SGVVJVVklKQSBWTEFETworxIZVVElMTyBTVEVWTworxIZVWk9WScSGIEJSQU5FCivEhlVaT1ZJxIYgRFJBR09MSlVCCivEhlVaT1ZJxIYgRFJBR09MSlVCCivEhlVaT1ZJxIYgR09SQU4KK8SGVVpPVknEhiBNSVJLTworxb1BQkFMSkFDIFZPSklTTEFWCivFvUFCScSGIEdPUkFOCivFvUFCScSGIExKVUJPTUlSCivFvUFCVUxKQUMgUEFWTEUKK8W9QUZSQU4gTUFSVElOCivFvUFHQVIgRFJBR0FOCivFvUFHQVIgRVJORVNUCivFvUFHQVIgSVZBTgorxb1BR0FSIEpPVkFOCivFvUFHQVIgTEpJTEpBCivFvUFHQVIgTUFSSUpBCivFvUFHQVIgTUFUSUpBCivFvUFHQVIgUEFWQU8KK8W9QUdBUiBSQURPU0xBVkEKK8W9QUpBIFRPTUlTTEFWCivFvUFKQcSMS08gxb1FTEpLTworxb1BSyBEUkFHVVRJTgorxb1BS0nEhiBMSlVCSUNBCivFvUFLScSGIE1BUklKQQorxb1BS0nEhiBNSU9EUkFHCivFvUFLScSGIE1MQURFTgorxb1BS0nEhiBWRVJBCivFvUFLScSGIFZMQURJTUlSCivFvUFLScSGIFZPSklTTEFWCivFvUFLVUxBIEFSQU5LQQorxb1BS1VMQSBCT1JJU0xBVgorxb1BS1VMQSBNSUxBTgorxb1BS1VMQSBNSUxBTgorxb1BS1VMQSBNSU9EUkFHCivFvUFLVUxBIE1JUkEKK8W9QUtVTEEgUkFESVZPSiBEUiBQUk9GCivFvUFLVUxBIFpPUkEKK8W9QU1CT0tJIE1BUklKQQorxb1BTUJPS0kgVkVST05BCivFvUFSxIxBTklOIEJSQU5LTworxb1BUsSMQU5JTiBQUkVEUkFHCivFvUFSSU4gUkFET0pJQ0EKK8W9QVJJTiBTSU5JxaBBCivFvUFSSU4tVEFCQUsgTkFUQUxJSkEKK8W9QVJJTiBWRVNFTElOCivFvUFSS08gTEFESVNMQVYKK8W9QVJLTyBNSUhBSkxPCivFvUFSS09WIERVxaBBTgorxb1BUktPViBLT1NUQQorxb1BUktPViBMSklMSkFOQQorxb1BUktPViBWRVNFTEtBCivFvUFSS09WIFpMQVRPSkUKK8W9QVJLT1ZBxIxLSSBJTElKQQorxb1BUktPVkHEjEtJIE1JUktPCivFvUFSS09WScSGIMW9QVJLTworxb1BUktPVknEhiBEQU5JTE8KK8W9QVJLT1ZJxIYgREFOSUxPCivFvUFSS09WScSGIERSQUdPSkUgRFIgUFJPRgorxb1BUktPVknEhiBHT0pLTworxb1BUktPVknEhiBHT0pLTworxb1BUktPVknEhiBKT1ZBTgorxb1BUktPVknEhiBKT1ZBTgorxb1BUktPVknEhiBNSUxFTkEKK8W9QVJLT1ZJxIYgTUlPRFJBRworxb1BUktPVknEhiBNSU9EUkFHCivFvUFSS09WScSGIE1JUktPCivFvUFSS09WScSGIE5FQk9KxaBBCivFvUFSS09WScSGIE5FTkFECivFvUFSS09WScSGIE5FTkFECivFvUFSS09WScSGIE5PVklDQQorxb1BUktPVknEhiBSSVNUTworxb1BUktPVknEhiBSSVNUTworxb1BUktPVknEhiBTTEFWS08KK8W9QVJLT1ZJxIYgVkxBSktPCivFvUFSS09WScSGIFpEUkFWS08KK8W9QVJLT1ZJxIYgWkRSQVZLTworxb1BUktPVknEhiBaT1JBCivFvURFUknEhiBKRUxJQ0EKK8W9REVSScSGIE1BUklKQQorxb1ERVJJxIYgTUlMQU4KK8W9REVSScSGIE1JTEVOS08KK8W9REVSTyBEUkFHSU5KQQorxb1ERVJPIERVxaBJQ0EKK8W9REVSTyBHT0pLTworxb1ERVJPIE1BUklOS08KK8W9REVSTyBQRVRBUgorxb1ERVJPIFBFVEFSCivFvURFUk8gUkFET01JUgorxb1EUkFMRSBSQURPVkFOCivFvURSQUxJxIYgVkFTTworxb1EUk5KQSBNSUxBTgorxb1EUk5KQSBNSUxBTgorxb1EUk5KQSBNSVJLTworxb1EUk5KQSBORcSQTworxb1EUk5KQSBORcSQTworxb1EUk5KQSBTSU1PCivFvUXFvUVMSiBCUkFOS08KK8W9RcW9RUxKIE1JTEFOCivFvUXFvUVMSiBNSUxBTgorxb1Fxb1FTEogU0FWQQorxb1Fxb1FTEogU1ZFVElTTEFWCivFvUVCRUxKQU4gTUlMRU5BCivFvUVCRUxKQU4gTUlMRU5LTworxb1FQkVMSkFOIE1JTE9SQUQKK8W9RUJFTEpBTiBNSVRBCivFvUVCRUxKQU4gTkVERUxKS08KK8W9RUJFUkFOIEFOxJBFTEtBCivFvUVHQVJBQyDEkE9SxJBFCivFvUVHQVJBQyBEQU5JQ0EKK8W9RUdBUkFDIERVxaBBTgorxb1FR0FSQUMgTEFaQVIKK8W9RUdBUkFDIE1JTEFOCivFvUVHQVJBQyBNSUxFTktPCivFvUVHQVJBQyBNSVJKQU5BCivFvUVHQVJBQyBTVEVWQU4KK8W9RUdBUkFDIFZPSklTTEFWCivFvUVLScSGIMW9SVZLTworxb1FS0nEhiBCT8WgS08KK8W9RUtJxIYgUkFESVNMQVYKK8W9RUtJxIYgUlXFvUEKK8W9RUtJxIYgWk9SQU4KK8W9RUxFTSBTVEVWQU4KK8W9RUxFUiDEkFVSxJBFVktBCivFvUVMRVpFTiBKT1NJUAorxb1FTEkgQU5EUkHFoAorxb1FTEkgScWgVFZBTgorxb1FTEkgS0FUQVJJTkEKK8W9RUxJIFNJTFZFU1RFUgorxb1FTUJFUkkgxaBBTkRPUgorxb1FTUJFUkkgSk9TSVAKK8W9RU1CRVJJIFJPQkVSVAorxb1FTUJFUkkgUk9CRVJUCivFvUVORVIgS0FSTE8KK8W9RU5JTE8gQk/FvUlEQVIKK8W9RVJBSknEhiBHQVZSSUxPCivFvUVSQVZJQ0EgREFNSkFOCivFvUVSQVZJQ0EgTUlMQURJTgorxb1FUkFWSUNBIE5BREEKK8W9RVJBVklDQSBTVEFOT0pFCivFvUVSQVZMSkVWIElMSUpBCivFvUVSScSGIElSTUEKK8W9RVNUScSGIMWgVEVGQU5JSkEKK8W9ScW9QSBOQURBCivFvUnFvUFLScSGIFNBVkEKK8W9ScW9QUtPViBEUkFHT0xKVUIKK8W9ScW9QUtPViBLQVRJQ0EKK8W9ScW9QUtPViBNSUxPxaAKK8W9ScW9QUtPViBQQVZMRQorxb1Jxb1BS09WIFZFTElOS0EKK8W9ScW9QUtPViBWSVRPTUlSCivFvUnFvUFLT1YgVkxBREEKK8W9ScW9QUtPViBWTEFESU1JUgorxb1Jxb1JxIYgxIxFRE9NSVIKK8W9ScW9ScSGIEFOxJBFTElKQQorxb1Jxb1JxIYgQlJBTklTTEFWCivFvUnFvUnEhiBEUkFHQU4KK8W9ScW9ScSGIE1JTE9SQUQKK8W9ScW9ScSGIFZFU0VMSU4KK8W9ScW9T1ZJxIYgU0xPQk9EQU5LQQorxb1JQlJFRyBBTEVLU0FOREFSCivFvUlCUkVHIElWQU5BCivFvUlERUsgSk9TSVAKK8W9SURJxaBJxIYgWk9SQU4KK8W9SUdBIEpFTEVOQQorxb1JR0EgS0FSTE8KK8W9SUdBIE1JUktPCivFvUlHQSBNVVNUQUZBCivFvUlHQUxBQyBWRVJPTkEKK8W9SUdJxIYgQk9HREFOCivFvUlHScSGIEJSQU5LTworxb1JR0nEhiBEQU5JQ0EKK8W9SUdJxIYgRElNSVRSSUpFCivFvUlHScSGIERVxaBBTgorxb1JR0nEhiBKVUxJSkEKK8W9SUdJxIYgTEpVQknFoEEKK8W9SUdJxIYgTUlMQU4KK8W9SUdJxIYgTUlMQU4KK8W9SUdJxIYgTUlMQU4KK8W9SUdJxIYgTUlMRVZBCivFvUlHScSGIE1JTEtBCivFvUlHScSGIE1JUktPCivFvUlHScSGIE5FREVMSktPCivFvUlHScSGIE5JS09MQQorxb1JR0nEhiBQRVRBUgorxb1JR0nEhiBQRVRBUgorxb1JR0nEhiBQRVRBUgorxb1JR0nEhiBSQURFCivFvUlHScSGIFJBRE9TTEFWCivFvUlHScSGIFNBVktBCivFvUlHScSGIFZPSklOCivFvUlHTU9ORCBCRUxBCivFvUlHTU9ORCBCUkFOS0EKK8W9SUdSQUkgxJBPUsSQRQorxb1JR1JBSSBJxaBUVkFOIE1SCivFvUlHUkFJIEpPVkFOCivFvUlHUkkgSk9TSVAKK8W9SUdSSSBMSlVCSUNBCivFvUlHUkkgTUlSS08KK8W9SUdVUlNLSSBQQVZMRQorxb1JSEEgTUFSSUpBCivFvUlITEFWU0tJIEpVTEtBCivFvUlKScSGIFZVS09TQVZBCivFvUlLScSGIMSQT1LEkEUKK8W9SUtJxIYgxJBPUsSQRQorxb1JS0nEhiDEkE9SxJBFCivFvUlLScSGIEFMRUtTQU5EQVIKK8W9SUtJxIYgRElNSVRSSUpFCivFvUlLScSGIERPQlJJTEEKK8W9SUtJxIYgRFJBR0FOCivFvUlLScSGIERVxaBBTgorxb1JS0nEhiBKT1ZBTktBCivFvUlLScSGIEpPVkFOCivFvUlLScSGIEpPVkFOCivFvUlLScSGIEtBVElDQQorxb1JS0nEhiBMSlVCSUNBCivFvUlLScSGIE1BUklDQQorxb1JS0nEhiBNQVJJSkEKK8W9SUtJxIYgTUlIQUpMTworxb1JS0nEhiBNSUxBTgorxb1JS0nEhiBNSUxPUkFEIERSCivFvUlLScSGIE5FVkVOQQorxb1JS0nEhiBOSUtPTEEKK8W9SUtJxIYgTklLT0xBCivFvUlLScSGIE9MR0EKK8W9SUtJxIYgT0xJVkVSQQorxb1JS0nEhiBSQURJVk9KCivFvUlLScSGIFJBRE9NSVIKK8W9SUtJxIYgU0xPQk9EQU4KK8W9SUtJxIYgU09GSUpBCivFvUlLScSGIFRBTUFSQQorxb1JS0nEhiBUSUhPTUlSIERJUEwgSU5HCivFvUlLScSGIFRPRE9SCivFvUlLScSGIFZBU0EKK8W9SUtJxIYtVkFTScSGIFRBTUFSQQorxb1JS0nEhiBWRUxJTUlSCivFvUlLScSGIFZFUkEKK8W9SUtJxIYgVkVSSUNBCivFvUlLScSGIFZJVE9NSVIKK8W9SUtJxIYgVkxBRElNSVIKK8W9SUtPVknEhiBORU5BRAorxb1JTEVWU0tJIEtSU1RPCivFvUlMScSGIE1JTEVOS08KK8W9SUxJxIYgTUlST1NMQVYKK8W9SUxJxIYgU1RPSkFOCivFvUlMTklLIMSQVVJBCivFvUlMTklLIMSQVVJBCivFvUlMTklLIFBBVkxFIERJUEwgSU5HCivFvUlMTklLLVBFVFJPVknEhiDFvUVMSU1JUgorxb1JTknEhiBNQVJJTkEKK8W9SVJBVkFDIFNURVZBTgorxb1JUktBIFBBVkVMCivFvUlST8WgIE1JUk9OCivFvUlST1ZOSUsgQU5UT04KK8W9SVbEjEnEhiBTVkVUTEFOQQorxb1JVkFMSkVWScSGIERSQUdPTUlSCivFvUlWQUxKRVZJxIYgR09SQU4KK8W9SVZBTEpFVknEhiBPTEdBCivFvUlWQUxKRVZJxIYgU1RBTkEKK8W9SVZBTsSMRVYgSUxJSkEKK8W9SVZBTsSMRVYgSk9WQU4KK8W9SVZBTsSMRVYgS0FTQSBESVBMIElORworxb1JVkFOxIxFViBNSUtBCivFvUlWQU7EjEVWIE1JTEFOCivFvUlWQU7EjEVWIE1JTEFOCivFvUlWQU7EjEVWIFBBSkEKK8W9SVZBTsSMRVYgUkFEQQorxb1JVkFOxIxFViBSQU5LTworxb1JVkFOxIxFViBTVEVWQU4KK8W9SVZBTsSMRVYgU1RSQUhJTkpBCivFvUlWQU7EjEVWScSGIExBWkFSCivFvUlWQU7EjEVWScSGIE1JTEpLTworxb1JVkFOxIxFVknEhiBNSUxPUkFEIERSCivFvUlWQU7EjEVWScSGIFNMT0JPREFOCivFvUlWQU7EjEVWScSGIFZFTElNSVIKK8W9SVZBTkFDIERFSkFOCivFvUlWQU5BQyBERUpBTgorxb1JVkFOQUMgTEFaQVIKK8W9SVZBTkFDIFpPUklDQQorxb1JVkFOScSGIMSQT0tBCivFvUlWQU5JxIYgTUlIQUpMTworxb1JVkFOScSGIE1JTEFOCivFvUlWQU5JxIYgTUlMT1JBRAorxb1JVkFOScSGIE1JVEFSCivFvUlWQU5JxIYgUFJFRFJBRworxb1JVkFOScSGIFZMQURJTUlSCivFvUlWQU5JxIYgWk9SQU4KK8W9SVZBTktJxIYgRVZJQ0EKK8W9SVZBTktPViBJR05KQVQKK8W9SVZBTk9WIMW9QVJLTworxb1JVkFOT1Ygxb1JVkFOCivFvUlWQU5PViDFvUlWS08KK8W9SVZBTk9WIEFOxJBFTElKQQorxb1JVkFOT1YgQk9HT0xKVUIKK8W9SVZBTk9WIEJSQU5LTworxb1JVkFOT1YgREFOSUNBCivFvUlWQU5PViBESU1JVFJJSkUKK8W9SVZBTk9WIERPQlJJTEEKK8W9SVZBTk9WIERPQlJJVk9KCivFvUlWQU5PViBEUkFHT0pMQQorxb1JVkFOT1YgRFJBR09TTEFWCivFvUlWQU5PViBEUkFHT1NMQVYKK8W9SVZBTk9WIERVxaBBTgorxb1JVkFOT1YgR09ST1NMQVZBCivFvUlWQU5PViBKVVNUSU5BCivFvUlWQU5PViBMQVpBUgorxb1JVkFOT1YgTEFaQVIKK8W9SVZBTk9WIExFUE9TQVZBCivFvUlWQU5PViBMSlVCSUNBCivFvUlWQU5PViBNQUdEQQorxb1JVkFOT1YgTUFLU0lOCivFvUlWQU5PViBNQVJJSkEKK8W9SVZBTk9WIE1BUklKQQorxb1JVkFOT1YgTUFSSUpBCivFvUlWQU5PViBNQVJJSkEKK8W9SVZBTk9WIE1JTEFOCivFvUlWQU5PViBNSUxFVEEKK8W9SVZBTk9WIE1JTElWT0oKK8W9SVZBTk9WIE1JTE/FoAorxb1JVkFOT1YgTUlMT8WgCivFvUlWQU5PViBNSUxPUkFECivFvUlWQU5PViBNSU9EUkFHCivFvUlWQU5PViBNSU9NSVIKK8W9SVZBTk9WIE1JVEEKK8W9SVZBTk9WIE1MQURFTgorxb1JVkFOT1YgTUxBREVOCivFvUlWQU5PViBNTEFERU4KK8W9SVZBTk9WIE1PTUlSCivFvUlWQU5PViBOQVRBxaBBCivFvUlWQU5PViBOSUtPTEEKK8W9SVZBTk9WIFBBVklDQQorxb1JVkFOT1YgUEFWTEUKK8W9SVZBTk9WIFBBVkxFCivFvUlWQU5PViBQQVZMRQorxb1JVkFOT1YgUEFWTEUKK8W9SVZBTk9WIFJBREnFoEEKK8W9SVZBTk9WIFJBSktPCivFvUlWQU5PViBTQVZBCivFvUlWQU5PViBTTEFWS08KK8W9SVZBTk9WIFNSxJBBTgorxb1JVkFOT1YgU1JCSVNMQVYKK8W9SVZBTk9WIFNUQU5JU0xBVgorxb1JVkFOT1YgU1ZFVE9aQVIKK8W9SVZBTk9WIFRPRE9SCivFvUlWQU5PViBUT01JU0xBVgorxb1JVkFOT1YgVFVHT01JUgorxb1JVkFOT1YgVkVMSU1JUgorxb1JVkFOT1YgVkxBRElNSVIKK8W9SVZBTk9WIFZMQURJTUlSCivFvUlWQU5PViBWT0pJU0xBVgorxb1JVkFOT1YgWkxBVElOS0EKK8W9SVZBTk9WScSGIMW9QVJLTworxb1JVkFOT1ZJxIYgxb1JS0EKK8W9SVZBTk9WScSGIMW9SVZBTgorxb1JVkFOT1ZJxIYgxb1JVk9KSU4gRElQTCBQUkFWTklLCivFvUlWQU5PVknEhiDFvUlWT0pJTgorxb1JVkFOT1ZJxIYgxJBPUsSQRQorxb1JVkFOT1ZJxIYgQUxFS1NBTkRBUgorxb1JVkFOT1ZJxIYgQUxFS1NBTkRBUgorxb1JVkFOT1ZJxIYgQUxFS1NJSkEKK8W9SVZBTk9WScSGIEFOS0lDQQorxb1JVkFOT1ZJxIYgQk/FoEtPCivFvUlWQU5PVknEhiBCT8WgS08KK8W9SVZBTk9WScSGIEJPR0RBTgorxb1JVkFOT1ZJxIYgQk9SS0EKK8W9SVZBTk9WScSGIEJVRElNS0EKK8W9SVZBTk9WScSGIERSQUdJxaBBCivFvUlWQU5PVknEhiBEUkFHT0xKVUIKK8W9SVZBTk9WScSGIERSQUdPU0xBVgorxb1JVkFOT1ZJxIYgSkFEUkFOS0EKK8W9SVZBTk9WScSGIEpFTEVOQQorxb1JVkFOT1ZJxIYgSk9WQU4KK8W9SVZBTk9WScSGIEpPVkFOCivFvUlWQU5PVknEhiBMQVpBUgorxb1JVkFOT1ZJxIYtTEXFoCBEVcWgSUNBCivFvUlWQU5PVknEhiBMSklMSkFOQQorxb1JVkFOT1ZJxIYgTUFSSUNBCivFvUlWQU5PVknEhiBNQVJJSkEKK8W9SVZBTk9WScSGIE1JTEFOCivFvUlWQU5PVknEhiBNSUxJU0FWCivFvUlWQU5PVknEhiBNSUxJVk9KCivFvUlWQU5PVknEhiBNSUxPxaAKK8W9SVZBTk9WScSGIE1JTE9SQUQKK8W9SVZBTk9WScSGIE1JTE9WQU4KK8W9SVZBTk9WScSGIE1JT0RSQUcgRFIKK8W9SVZBTk9WScSGIE1JT0RSQUcKK8W9SVZBTk9WScSGIE1JUkpBTkEKK8W9SVZBTk9WScSGIE1PTcSMSUxPCivFvUlWQU5PVknEhiBOT1ZJQ0EKK8W9SVZBTk9WScSGIE9CUkFECivFvUlWQU5PVknEhiBQRVRBUgorxb1JVkFOT1ZJxIYgUEVUQVIKK8W9SVZBTk9WScSGIFBFVEFSCivFvUlWQU5PVknEhiBSQURBCivFvUlWQU5PVknEhiBSQURNSUxBCivFvUlWQU5PVknEhiBTTEFWS0EKK8W9SVZBTk9WScSGIFNMQVZLTworxb1JVkFOT1ZJxIYgU1RFVkFOCivFvUlWQU5PVknEhiBUT01JU0xBVgorxb1JVkFOT1ZJxIYgVklET0pFCivFvUlWQU5PVknEhiBWTEFESU1JUgorxb1JVkFOT1ZJxIYgVkxBRElTTEFWCivFvUlWQU5PVknEhiBWT0pJU0xBVgorxb1JVkFOT1ZJxIYgWk9SQU4KK8W9SVZBTk9WScSGIFpPUkFOCivFvUlWQU5PVknEhiBaT1JLQQorxb1JVknEhiDEkE9SxJBFCivFvUlWScSGIMSQT1LEkEUKK8W9SVZJxIYgQk/FvUlEQVIKK8W9SVZJxIYgR0FWUkEKK8W9SVZJxIYgSkVGVEEKK8W9SVZJxIYgSkVMSUNBCivFvUlWScSGIEpPVkFOCivFvUlWScSGIExBWkFSCivFvUlWScSGIExKVUJJQ0EKK8W9SVZJxIYgUkFET0pJQ0EKK8W9SVZJxIYgU0FWQQorxb1JVknEhiBTQVZBCivFvUlWScSGIFNNSUxKQQorxb1JVknEhiBTUEFTT0pFCivFvUlWScSGIFZFTElCT1IKK8W9SVZJxIYgVklOS0EgRFIKK8W9SVZJxIYgWk9SS0EKK8W9SVZJTiBOQURBCivFvUlWS0FOT1ZJxIYgSk9WQU4KK8W9SVZLScSGIFNURVZBTgorxb1JVktPViDEkE9SxJBFCivFvUlWS09WIEFOxJBFTEtBCivFvUlWS09WIEFOxJBFTEtBCivFvUlWS09WIEJPUklTTEFWQQorxb1JVktPViBCUkFOSVNMQVYKK8W9SVZLT1YgRFJBR0lOSkEKK8W9SVZLT1YgRFJBR09MSlVCCivFvUlWS09WIERVxaBLTworxb1JVktPViBFU1RFUgorxb1JVktPViBHUkFESU1JUgorxb1JVktPViBJVkFOCivFvUlWS09WIEtPU1RBCivFvUlWS09WIE1BUktPCivFvUlWS09WIE1FTEFOSUpBCivFvUlWS09WIE5FTkFECivFvUlWS09WIFBBVkxFCivFvUlWS09WIFJBRE9KS0EKK8W9SVZLT1YgU0FWQQorxb1JVktPViBTQVZBCivFvUlWS09WIFNMQVZLTworxb1JVktPViBTTEFWS08KK8W9SVZLT1YgVkFTQQorxb1JVktPVknEhiDEjEFTTEFWCivFvUlWS09WScSGIMW9QUtMSU5BCivFvUlWS09WScSGIMW9SVZLQQorxb1JVktPVknEhiDFvUlWT0pJTgorxb1JVktPVknEhiDEkE9LQQorxb1JVktPVknEhiDEkE9SxJBFCivFvUlWS09WScSGIMSQT1LEkEUKK8W9SVZLT1ZJxIYgQUpLQQorxb1JVktPVknEhiBBTEVLU0FOREFSCivFvUlWS09WScSGIEFMRUtTQU5EQVIKK8W9SVZLT1ZJxIYgQUxFS1NBTkRBUgorxb1JVktPVknEhiBBTEVLU0FOREFSCivFvUlWS09WScSGIEFMRUtTQU5EQVIKK8W9SVZLT1ZJxIYgQUxFS1NBTkRBUgorxb1JVktPVknEhiBBTEVLU0FOREFSCivFvUlWS09WScSGIEFMT0paSUpBCivFvUlWS09WScSGIEFOxJBFTEtBCivFvUlWS09WScSGIEJMQcWgS08KK8W9SVZLT1ZJxIYgQk9HREFOCivFvUlWS09WScSGIEJPR0RBTgorxb1JVktPVknEhiBCT0dPTEpVQgorxb1JVktPVknEhiBCT0dPTUlSCivFvUlWS09WScSGIEJPR09NSVIKK8W9SVZLT1ZJxIYgQk9SSVNMQVYKK8W9SVZLT1ZJxIYgQk9SSVNMQVYKK8W9SVZLT1ZJxIYgQk9STworxb1JVktPVknEhiBCUkFOSVNMQVYKK8W9SVZLT1ZJxIYgQlJBTklTTEFWCivFvUlWS09WScSGIEJSQU5JU0xBVgorxb1JVktPVknEhiBCUkFOS0EgRFIKK8W9SVZLT1ZJxIYgQlJBTktPCivFvUlWS09WScSGIERBTklMTworxb1JVktPVknEhiBERUpBTgorxb1JVktPVknEhiBESU1JVFJJSkUKK8W9SVZLT1ZJxIYgRElNSVRSSUpFCivFvUlWS09WScSGIERPQlJPU0FWCivFvUlWS09WScSGIERSQUdBTkEKK8W9SVZLT1ZJxIYgRFJBR0FOQQorxb1JVktPVknEhiBEUkFHQU4KK8W9SVZLT1ZJxIYgRFJBR0FOCivFvUlWS09WScSGIERSQUdBTgorxb1JVktPVknEhiBEUkFHQU4KK8W9SVZLT1ZJxIYgRFJBR0nFoEEgRFIKK8W9SVZLT1ZJxIYgRFJBR0nFoEEKK8W9SVZLT1ZJxIYgRFJBR0nEhgorxb1JVktPVknEhiBEUkFHT0xKVUIKK8W9SVZLT1ZJxIYgRFXFoEFOS0EKK8W9SVZLT1ZJxIYgRFXFoEFOCivFvUlWS09WScSGIERVxaBBTgorxb1JVktPVknEhiBEVcWgQU4KK8W9SVZLT1ZJxIYgRFXFoElDQQorxb1JVktPVknEhiBHQUJSSUpFTEEKK8W9SVZLT1ZJxIYgR0FCUklKRUxBCivFvUlWS09WScSGIEdPUkFOCivFvUlWS09WScSGIEdPUkRBTkEKK8W9SVZLT1ZJxIYgSUxJSkEKK8W9SVZLT1ZJxIYgSUxJSkEKK8W9SVZLT1ZJxIYgSUxPTktBCivFvUlWS09WScSGIElWQU5LQQorxb1JVktPVknEhiBJVklDQQorxb1JVktPVknEhiBKQVNNSU5BCivFvUlWS09WScSGIEpFTElDQQorxb1JVktPVknEhiBKRUxJQ0EKK8W9SVZLT1ZJxIYgSk9WQU4KK8W9SVZLT1ZJxIYgSk9WQU4KK8W9SVZLT1ZJxIYgSk9WSUNBCivFvUlWS09WScSGIEpVTEtBCivFvUlWS09WScSGIEpVTEtBCivFvUlWS09WScSGIEpVTEtJQ0EKK8W9SVZLT1ZJxIYgS09TVEEKK8W9SVZLT1ZJxIYgS1JFxaBPCivFvUlWS09WScSGIExBWkFSCivFvUlWS09WScSGIExBWkFSCivFvUlWS09WScSGIExFUE9TQVZBCivFvUlWS09WScSGIExKSUxKQU5BCivFvUlWS09WScSGIExKVUJJQ0EKK8W9SVZLT1ZJxIYgTEpVQklOS0EKK8W9SVZLT1ZJxIYgTEpVQk9NSVIKK8W9SVZLT1ZJxIYgTEpVQk9NSVIKK8W9SVZLT1ZJxIYgTUFSSUpBCivFvUlWS09WScSGIE1JSEFKTE8KK8W9SVZLT1ZJxIYgTUlMQU5LQQorxb1JVktPVknEhiBNSUxBTgorxb1JVktPVknEhiBNSUxJQ0EKK8W9SVZLT1ZJxIYgTUlMSVZPSgorxb1JVktPVknEhiBNSUxLQQorxb1JVktPVknEhiBNSUxLQQorxb1JVktPVknEhiBNSUxPxaAKK8W9SVZLT1ZJxIYgTUlMT8WgCivFvUlWS09WScSGIE1JTE9NSVIKK8W9SVZLT1ZJxIYgTUlMT1JBRAorxb1JVktPVknEhiBNSUxPUkFECivFvUlWS09WScSGIE1JTFVUSU4KK8W9SVZLT1ZJxIYgTUlPRFJBRworxb1JVktPVknEhiBNSVLEjEVUQQorxb1JVktPVknEhiBNSVJKQU5BCivFvUlWS09WScSGIE1JUktPCivFvUlWS09WScSGIE1JUk9TTEFWCivFvUlWS09WScSGIE1JUk9TTEFWCivFvUlWS09WScSGIE1PTcSMSUxPCivFvUlWS09WScSGIE5FQk9KxaBBCivFvUlWS09WScSGIE5FQk9KxaBBCivFvUlWS09WScSGIE5FREVMSktPCivFvUlWS09WScSGIE5JS09MQQorxb1JVktPVknEhiBPQlJBRAorxb1JVktPVknEhiBQQVZMRQorxb1JVktPVknEhiBQRVRBUgorxb1JVktPVknEhiBQRVRBUgorxb1JVktPVknEhiBQRVRBUgorxb1JVktPVknEhiBQRVRBUgorxb1JVktPVknEhiBSQURFTktPCivFvUlWS09WScSGIFJBREUKK8W9SVZLT1ZJxIYgUkFESVZPSgorxb1JVktPVknEhiBSQURNSUxBCivFvUlWS09WScSGIFJBRE1JTE8KK8W9SVZLT1ZJxIYgUkFET01JUgorxb1JVktPVknEhiBSQURPU0xBVkEKK8W9SVZLT1ZJxIYgUkFET1NMQVYKK8W9SVZLT1ZJxIYgUkFET1NMQVYKK8W9SVZLT1ZJxIYgUkFET1NMQVYKK8W9SVZLT1ZJxIYgUk9TQQorxb1JVktPVknEhiBSVcW9SUNBCivFvUlWS09WScSGIFNBxaBBCivFvUlWS09WScSGIFNBVkEKK8W9SVZLT1ZJxIYgU0FWQQorxb1JVktPVknEhiBTQVZBCivFvUlWS09WScSGIFNBVkEKK8W9SVZLT1ZJxIYgU0lOScWgQQorxb1JVktPVknEhiBTTEFWS08KK8W9SVZLT1ZJxIYgU0xBVktPCivFvUlWS09WScSGIFNMQVZLTworxb1JVktPVknEhiBTTE9CT0RBTiBEUgorxb1JVktPVknEhiBTTE9CT0RBTgorxb1JVktPVknEhiBTTUlMSktBCivFvUlWS09WScSGIFNORcW9QU5BCivFvUlWS09WScSGIFNSRVRFTgorxb1JVktPVknEhiBTVEFNRU5LTworxb1JVktPVknEhiBTVEVQQU4KK8W9SVZLT1ZJxIYgU1RFVkFOCivFvUlWS09WScSGIFNUT0pBTktBCivFvUlWS09WScSGIFNUT0pBTgorxb1JVktPVknEhiBTVE9KQU4KK8W9SVZLT1ZJxIYgU1ZFVElTTEFWCivFvUlWS09WScSGIFNWRVRMQU5BCivFvUlWS09WScSGIFNWRVRPWkFSCivFvUlWS09WScSGIFRBTkFTSUpFCivFvUlWS09WScSGIFRJTktBCivFvUlWS09WScSGIFRPxaBBCivFvUlWS09WScSGIFRPTUlTTEFWCivFvUlWS09WScSGIFRPTUlTTEFWCivFvUlWS09WScSGIFZFS09TTEFWCivFvUlWS09WScSGIFZFUkEKK8W9SVZLT1ZJxIYgVkVSQQorxb1JVktPVknEhiBWSURPSktPCivFvUlWS09WScSGIFZMQURBTgorxb1JVktPVknEhiBWTEFESU1JUgorxb1JVktPVknEhiBWTEFTVElNSVIKK8W9SVZLT1ZJxIYgVk9KSU4KK8W9SVZLT1ZJxIYgVk9KSVNMQVYKK8W9SVZLT1ZJxIYgWkRFTktBCivFvUlWS09WScSGIFpERU5LTworxb1JVktPVknEhiBaRFJBVktPCivFvUlWS09WScSGIFpMQVRPTUlSCivFvUlWS09WScSGIFpPUkFOCivFvUlWS09WScSGIFpPUkFOCivFvUlWS09WScSGIFpPUkFOCivFvUlWS09WScSGIFpPUkFOCivFvUlWS09WScSGIFpPUkFOCivFvUlWS09WTEpFVknEhiBWSURPU0FWQQorxb1JVktVQ0lOIE1JUk9TTEFWQQorxb1JVktVQ0lOIFNMT0JPREFOCivFvUlWTkkgQU5BCivFvUlWTkkgRlJBTkpBCivFvUlWT0pJTk9WIEJPUklWT0oKK8W9SVZPSklOT1YgTEpVQklDQQorxb1JVk9KSU5PViBNSUxPVkFOCivFvUlWT0pJTk9WIFJBRElWT0oKK8W9SVZPSklOT1ZJxIYgUk9aQUxJSkEKK8W9SVZPSklOT1ZJxIYgVkxBRElNSVIKK8W9SVZPSk5PViBCUkFOSVNMQVYKK8W9SVZPSk5PViBNSVJPU0xBVgorxb1JVk9KTk9WScSGIMW9SVZPSklOCivFvUlWT0pOT1ZJxIYgU0FOSkEKK8W9SVZPSk5PVknEhiBTUsSQQU4gRFIgTEVLQVIKK8W9SVZPSk5PVknEhiBaT1JLQQorxb1JVk9UScSGIEFOR0VMSU5BCivFvUlWT1RJxIYgRFXFoEFOCivFvUlWT1RJxIYgU1RBTklTTEFWCivFvUlWT1RJxIYgU1RFVkFOCivFvUlWT1RJxIYgVkVMSU1JUgorxb1JVk9USU4gTUFSSUNBCivFvUlWT1RJTiBNSVRBUgorxb1NVUtJxIYgQlJBTktPCivFvU1VS0nEhiBHT1JEQU5BCivFvU1VS0nEhiBOSUtPTEEKK8W9TklEQVLFoEnEhiBJR05BQworxb1OSURBUkVDIElWQU4KK8W9TklEQVJFQyBJVkFOCivFvU9MQ0VSIEZFUkVOQworxb1PTENFUiBWSUxNT8WgCivFvU9MSk9NIEtMQVJBCivFvU9MSk9NIE1JUkpBTkEKK8W9T1LFvSBBTEVLU0FOREFSCivFvU9SScSGIEZJTElQCivFvVXFvUEgTUlSS08KK8W9VUJPUkkgTUlMRU5BCivFvVVHScSGIERSQUdPTEpVQgorxb1VR0nEhiBLUlNUTworxb1VR0nEhiBNQVJJSkEKK8W9VUdJxIYgTUlMSUpBCivFvVVHScSGIE1JTElTQVYKK8W9VUdJxIYgTUlMT1JBRAorxb1VR0nEhiBNSVJLTworxb1VR0nEhiBSQURPSktBCivFvVVHScSGIFJBVEtPCivFvVVHScSGLVJJSkFWRUMgU0lMVklKQQorxb1VR0nEhiBTVEFOScWgQQorxb1VR0nEhiBTVEFOS08KK8W9VUpJxIYgTU9NSVIKK8W9VUpJxIYgU0xBVktPCivFvVVKTyBNQVJKQU4KK8W9VU1CRVJLT1ZJxIYgxJBPUsSQRSBNUgorxb1VTkFDIEpVTEtBCivFvVVOQUMgVE9NSVNMQVYKK8W9VU5HVUwgU01JTEpBCivFvVVOScSGIEJPxaBLTworxb1VTknEhiBEQVJLTworxb1VTknEhiBKT1ZJxaBBCivFvVVOScSGIE1JTEFOCivFvVVOScSGIE1JTEVOS08KK8W9VU5JxIYgTUlMSUpBTgorxb1VTknEhiBNT03EjElMTworxb1VTknEhiBORU5BRAorxb1VTknEhi1QT1BPViBTTkXFvUFOQQorxb1VTknEhiBSQURBCivFvVVOScSGIFNJTUEKK8W9VU5JxIYgU09OSkEKK8W9VU5JxIYgVkVMSU1JUgorxb1VTkpJxIYgRFJBR09NSVIKK8W9VU5URVIgQU5UVU4gRElQTCBJTkcKK8W9VU5URVIgQk/FvUFOQQorxb1VUEFOIEVEVUFSRAorxb1VUEFOIE1JUktPCivFvVVQQU7EjEnEhiBNQVJHQVJFVEEKK8W9VVBBTkVDIEFMQkVSVCBEUgorxb1VUEFORUMgS1NFTklKQQorxb1VUEFORUMgTUlSQQorxb1VUEFORUMgTUlSQQorxb1VUEFSScSGIFZJS1RPUgorxb1VUEnEhiBBTlRFCivFvVVQScSGIERBTkUKK8W9VVBJxIYgRFJBR0lDQQorxb1VUEnEhiBNSUpPCivFvVVQVU5TS0kgxb1BUktPCivFvVVQVU5TS0kgxb1JVk9SQUQKK8W9VVBVTlNLSSBHT0pLTworxb1VUFVOU0tJIEdST1pEQU5BCivFvVVQVU5TS0kgR1JVSklDQQorxb1VUFVOU0tJIEhFTEVOQQorxb1VUFVOU0tJIElWQU4KK8W9VVBVTlNLSSBNQVJJTktPCivFvVVQVU5TS0kgU1RFVkFOCivFvVVQVU5TS0kgVkVTRUxJTktBCivFvVVSxb1FVknEhiBDVkVUS08KK8W9VVLFvUlOT1ZJxIYgS09TVEEKK8W9VVLFvU9WQU4gTElBCivFvVVSxb1PVkFOIE5FTFUKK8W9VVLFvU9WQU4gVFJBTkRBRklSCivFvVVSxb1VTCBCT8WgS08KK8W9VVLFvVVMIFNUQU5PSkUKK8W9VVJJxIYgTUlIQUlMTworxb1VUknEhiBWQVNPCivFvVVSS0EgQVVST1JBCivFvVVUScSGIE1JTEtBCivFvVVUScSGIFBFVEFSCivFvVVUScSGIFNURVZPCivEkEHEjEFOSU4gUkFET1ZBTgorxJBBxIxJxIYgVkxBRElNSVIKK8SQQUnEhiBNSVJPU0xBVgorxJBBSknEhiDFvUFSS08KK8SQQUpJxIYgxb1FTEpLTworxJBBSknEhiBBTEVLU0FORFJBCivEkEFKScSGIEJPR0RBTgorxJBBSknEhiBKRUxFTktPCivEkEFKScSGLUpPVkFOT1ZJxIYgUkFKS0EKK8SQQUpJxIYgTUlMT1JBRAorxJBBSknEhiBOQURBCivEkEFKScSGIE5FVkVOQQorxJBBSknEhiBOSUtPTEEKK8SQQUpJxIYgVkVMSktPCivEkEFKScSGIFZMQURJU0xBVkEKK8SQQUtPTk9WIE1JTEtBCivEkEFLT05PViBTVEVWQU4KK8SQQUtPTk9WScSGIE1JTE9WQU4KK8SQQUtPTk9WScSGIFNMQVZJQ0EKK8SQQUtPTk9WScSGIFNURVZBTgorxJBBS09WIExKSUxKQU5BCivEkEFLT1YgTUlIQUpMTworxJBBS09WIE1JTEFOCivEkEFLT1ZJxIYgxb1JVktBCivEkEFLT1ZJxIYgxJBPUsSQRSBEUgorxJBBS09WScSGIMSQT1LEkEUKK8SQQUtPVknEhiDEkE9SxJBFCivEkEFLT1ZJxIYgxJBVUkEKK8SQQUtPVknEhiDEkFVSTworxJBBS09WScSGIMSQVVJPCivEkEFLT1ZJxIYgQU5LQQorxJBBS09WScSGIERBUkEKK8SQQUtPVknEhiBEUkFHQU4KK8SQQUtPVknEhiBEUkFHQU4KK8SQQUtPVknEhiBEUkFHT0xKVUIgRFIKK8SQQUtPVknEhiBEUkFHT0xKVUIKK8SQQUtPVknEhiBEVcWgQU4KK8SQQUtPVknEhiBJTEUKK8SQQUtPVknEhiBJTElKQQorxJBBS09WScSGIEpPS0EKK8SQQUtPVknEhiBKT1ZBTktBCivEkEFLT1ZJxIYgSk9WQU4KK8SQQUtPVknEhiBKT1ZJQ0EKK8SQQUtPVknEhiBKT1ZPCivEkEFLT1ZJxIYgTEpVQk9NSVIgRFIgSU5HCivEkEFLT1ZJxIYgTEpVQk9NSVIKK8SQQUtPVknEhiBNQVJJSkEKK8SQQUtPVknEhiBNSUxBTgorxJBBS09WScSGIE1JTEFOCivEkEFLT1ZJxIYgTUlMQU4KK8SQQUtPVknEhiBNSUxLQQorxJBBS09WScSGIE1JUkpBTkEKK8SQQUtPVknEhiBNSVJKQU5BCivEkEFLT1ZJxIYgTkXEkE8KK8SQQUtPVknEhiBORURFTEpLTworxJBBS09WScSGIE5JS09MQQorxJBBS09WScSGIE9TVE9KQQorxJBBS09WScSGIFBFUlNJREEKK8SQQUtPVknEhiBQRVRBUgorxJBBS09WScSGIFBSRURSQUcKK8SQQUtPVknEhiBQUkVEUkFHCivEkEFLT1ZJxIYgUkFET01JUgorxJBBS09WScSGIFJBRE9TQVYKK8SQQUtPVknEhiBSQU5LTworxJBBS09WScSGIFNBVkEKK8SQQUtPVknEhiBTTEFWSUNBCivEkEFLT1ZJxIYgU0xBVk9MSlVCCivEkEFLT1ZJxIYgU0xPQk9EQU4KK8SQQUtPVknEhiBTVEVWQU4KK8SQQUtPVknEhiBTVEVWQU4KK8SQQUtPVknEhiBTVE9KQU4KK8SQQUtPVknEhiBUQVRKQU5BCivEkEFLT1ZJxIYgVkFTTworxJBBS09WScSGIFZMQURJTUlSCivEkEFLT1ZJxIYgVk9KTworxJBBS09WScSGIFZVS09TQVZBCivEkEFLT1ZJxIYgWk9SQU4KK8SQQUxBSSBMQUpPxaAKK8SQQUxJTkFDIEdPUkRBTkEKK8SQQUxJTkFDIFJBRElWT0oKK8SQQUxPIE1JUktPCivEkEFMT1ZJxIYgUkFET1NMQVYKK8SQQUxVxaAgU1RFVkFOCivEkEFOIEpPVkFOCivEkEFOScWgIExBWkFSCivEkEFOScWgIE9MSVZFUkEKK8SQQU5JxIYgTUFUTworxJBBTktPVknEhiBNSUxPxaAKK8SQQU5UQVIgQU7EkEVMSUpBCivEkEFOVEFSIEpPxb1FRgorxJBBUEEgQUxFS1NBTkRBUgorxJBBUEEgRFXFoEFOCivEkEFQQSBNQVJLTworxJBBUEEgUEVUQVIKK8SQQVBJxIYgREFWSUQKK8SQQVBJxIYgS1JTVEEKK8SQQVBJxIYgTUlMRVNBCivEkEFQScSGIE1JTEVTQQorxJBBUEnEhi1NSUxJxIYgVEFUSkFOQSBMRUtBUgorxJBBUEnEhiBQQVZMRQorxJBBUk1BVEkgRlJBTkpBCivEkEFSTUFUSSBHSVpFTEEKK8SQQVJNQVRJIElMT05BCivEkEFSTUFUSSBKVUxJTworxJBBUk1BVEkgTEFTTE8KK8SQQVJNQVRJIE1JSEFKTE8KK8SQQVJNQVRJIFNORcW9QU5BCivEkEFUS09WIFJBREEKK8SQRUJOQVIgT0JSQUQKK8SQRUtFUiBST1pBTElKQQorxJBFS0nEhiDFvUlWT0pJTgorxJBFS0nEhiBLQVRJQ0EKK8SQRUtJxIYgTUlMQU4KK8SQRUtJxIYgTUlMRU5BCivEkEVLScSGIE1JTE9NSVIKK8SQRUtJxIYgTkFEQQorxJBFS0nEhiBORURFTEpLTworxJBFS0nEhiBQQVZMRQorxJBFS0nEhiBSQURFCivEkEVLScSGIFJBRE1JTEEKK8SQRUtJxIYgU1RBTkEKK8SQRUtJxIYgU1RPSkFOS0EKK8SQRUxJxIYgVVJPxaAKK8SQRU1CRVIgScWgVFZBTgorxJBFTVJPVlNLSSBUT01BxaAKK8SQRU1ST1ZTS0kgVkxBVEtPCivEkEVNUk9WU0tJIFpERU5LTworxJBFTkFEScSGIERSQUdJxaBBCivEkEVOQURJSkEgUEVUQVIKK8SQRU5EScSGIEpPVkFOIERJUEwgSU5HCivEkEVOREnEhiBMQVpBUgorxJBFTkXFoCBQRVRBUgorxJBFTkdFIEFORFJBxaAKK8SQRU5HRSBBTkRSSUpBCivEkEVOR0UgUEVURVIKK8SQRU5JxIYgSkVMRU5BCivEkEVOScSGIFNMT0JPREFOCivEkEVOScSGIFNMT0JPREFOCivEkEVOScSGIFpPUklDQQorxJBFTklTScSGIFNUQU5JTUlSCivEkEVSxJAgxJBVUkEKK8SQRVLEkCBBTlRVTgorxJBFUsSQIElHT1IKK8SQRVLEkCBKT1NJUAorxJBFUsSQIEtBVEFSSU5BCivEkEVSxJAgTEpVQklDQQorxJBFUsSQIFBFVEFSCivEkEVSxJAgVklMTU/FoAorxJBFUkUgS09STkVMCivEkEVSRSBaT0xUQU4KK8SQRVJGSSBBTEVLU0FOREFSCivEkEVSSSDFoEFORE9SCivEkEVSSSBFTkRSRQorxJBFUkkgRVLFvUVCRVQKK8SQRVJJIEdFWkEKK8SQRVJJIEtBUk9MSgorxJBFUkkgTEFESVNMQVYKK8SQRVJJIExBU0xPCivEkEVSSSBTQUJPTMSMCivEkEVSSSBTQUxPTUUKK8SQRVJJxIYgxb1JVkFOCivEkEVSScSGIMSQT1LEkEUKK8SQRVJJxIYgxJBVUkEKK8SQRVJJxIYgQlJBTktPCivEkEVSScSGIERBTklDQQorxJBFUknEhiBERVNBTktBCivEkEVSScSGIERJTUlUUklKRQorxJBFUknEhiBET0JSSU5LTworxJBFUknEhiBEUkFHQU4KK8SQRVJJxIYgRkVMSUtTCivEkEVSScSGIEpBUk9TTEFWCivEkEVSScSGIEpPVkFOCivEkEVSScSGIEpPVkFOCivEkEVSScSGIEpVTEtBCivEkEVSScSGIE1JQ0EKK8SQRVJJxIYgTUlIQUpMTworxJBFUknEhiBNSUxBTgorxJBFUknEhiBNSUxFTktPCivEkEVSScSGIE1JTEUKK8SQRVJJxIYgTUlMSVZPSkUKK8SQRVJJxIYgTUlMT8WgCivEkEVSScSGIE1JT0RSQUcKK8SQRVJJxIYgTUlSSkFOQQorxJBFUknEhiBOQURBCivEkEVSScSGIE9MR0EKK8SQRVJJxIYgT0xJVkVSQQorxJBFUknEhiBQRVRBUgorxJBFUknEhiBSQURFCivEkEVSScSGIFJBRElWT0oKK8SQRVJJxIYgUkFET01JUgorxJBFUknEhiBSQURPU0xBVgorxJBFUknEhiBSQURPVkFOCivEkEVSScSGIFNMQVZLTworxJBFUknEhiBTVEFOSVNMQVYKK8SQRVJJxIYgVkVMSktPCivEkEVSScSGIFZPSklOCivEkEVSS0kgVkVSQQorxJBFUktPVknEhiBNSVLEjEVUQQorxJBFUktPVknEhiBSQURPSktBCivEkEVSS09WScSGIFZMQURFVEEKK8SQRVJNQU4gxb1JVktPCivEkEVSTUFOIE5FREVMSktPCivEkEVSTUFOT1YgSVZBTgorxJBFUk1BTk9WIExKVUJPTUlSCivEkEVSTUFOT1YgTUlMQU4KK8SQRVJNQU5PViBNSUxFTkEKK8SQRVJNQU5PViBOQURFxb1EQQorxJBFUk1BTk9WIE9MR0EKK8SQRVJNQU5PViBQRVRBUgorxJBFUk1BTk9WIFRPRE9SCivEkEVSTUFOT1YgVkxBREEKK8SQRVJNQU5PVknEhiBKRUxJQ0EKK8SQRVJNQU5PVknEhiBNQVJJSkEKK8SQRVJNQU5PVknEhiBNSUxPREFOS0EKK8SQRVJNQU5PVknEhiBTTEFWS08KK8SQRVJNQU5PVknEhiBTVEFOS08KK8SQRVJNQVRJIElSRU5BCivEkEVUS0EgSkFOTworxJBFVEtBIE1JSEFMCivEkEVUS0EgTUlIQUwKK8SQRVRLQSBNSVJLTworxJBFVFZBSSBBTkRSQcWgIERJUEwgSU5HCivEkEVUVkFJIEFORFJBxaAKK8SQRVRWQUkgQU5JQ0EKK8SQRVRWQUkgRkVSRU5DCivEkEVUVkFJIElNUkUKK8SQRVRWQUkgTEFKT8WgCivEkEVWRUtJIEpPVkFOCivEkElEScSGIE1BUklKQQorxJBJREnEhiBNQVJJTktPCivEkElLScSGIFNUT0pBTgorxJBJS0nEhiBWSUtUT1JJSkEKK8SQSUxBUyBCT1JPCivEkElMQVMgRFJBR0FOCivEkElMQVMgRFXFoEFOCivEkElMQVMgR1JPWkRBTkEKK8SQSUxBUyBNQVJJTktPCivEkElMQVMgTUlMT1JBRAorxJBJTEFTIE1JTE9SQUQKK8SQSUxBUyBNSUxPUkFECivEkElMQVMgTklLT0xBCivEkElMQVMgU1RFVkFOCivEkElMVkVTSSDFoEFORE9SCivEkElMVkVTSSBLQVJMTworxJBJTiDEkFVSQQorxJBJTiBKVUxJSkFOQQorxJBJTsSQScSGIE1JTE9KS08KK8SQSU5JxIYgSVZJQ0EKK8SQSU5JxIYgTklLT0xBCivEkElOScSGIFNMQVZLQQorxJBJTknEhiBTT0ZJSkEKK8SQSU5JxIYgVkxBREVUQQorxJBJTknEhiBaT1JBTgorxJBJTkpBIEFORFJFSgorxJBJTk9WScSGIENWRVRLTworxJBJTk9WScSGIElWS08KK8SQSU5PVknEhiBLT0xFCivEkElQQUxPIMSQVVJPCivEkElQQUxPIEdPSktPCivEkElQQUxPIE1JTEFOCivEkElQQUxPIE1JUktPCivEkElQQUxPIE1JUk9TTEFWCivEkElQQUxPIFJBREUKK8SQSVBBTk9WIElEQQorxJBJUEFOT1YgTklLT0xBCivEkElQQU5PViBSRUxKQQorxJBJUEFOT1YgU1ZFVE9aQVIKK8SQSVJJxaBJIEnFoFRWQU4KK8SQSVJMScSGIFNURVZBTgorxJBJU0FMT1YgQlJBTklTTEFWCivEkElTQUxPViBKRUxFTkEKK8SQSVNBTE9WIEpFTEVOQQorxJBJU0FMT1YgTEFaQVIKK8SQSVNBTE9WIExKVUJJTktBCivEkElTQUxPViBNSUxBTgorxJBJU0FMT1YgTUlMQU4KK8SQSVNBTE9WIE1JTElWT0oKK8SQSVNBTE9WIE1JTElWT0oKK8SQSVNBTE9WIE1JT0RSQUcKK8SQSVNBTE9WIE1JT0RSQUcKK8SQSVNBTE9WIE5BREEKK8SQSVNBTE9WIFNPTkpBCivEkElTQUxPVknEhiBLQVRJQ0EKK8SQSVRLT1YgSk9WQU4KK8SQSVRLT1YgU09GSUpBCivEkEpBSyDFvUlWS08KK8SQT8SQScSGIE1JTE9SQUQKK8SQT0dPIE1JTE9WQU4KK8SQT0dPIE1JUkpBTkEKK8SQT0dPIFJVxb1JQ0EKK8SQT0dPIFpPUkFOCivEkE9HT1ZJxIYgTUlMT1JBRAorxJBPR09WScSGIFJBRElWT0pLQQorxJBPS0nEhiBBTEVLU0FOREFSCivEkE9LScSGIEJPxaBLTworxJBPS0nEhiBCT1JJVk9KRQorxJBPS0nEhiBCUkFUSVNMQVYKK8SQT0tJxIYgQ1ZFVEtPCivEkE9LScSGIERBUklOS0EKK8SQT0tJxIYgRFJBR0FOCivEkE9LScSGIERSQUdJxaBBCivEkE9LScSGIERSQUdPTEpVQgorxJBPS0nEhiBEUkFHTworxJBPS0nEhiBHT1JBTgorxJBPS0nEhiBJVkFOCivEkE9LScSGIEpFTElTQVZBCivEkE9LScSGIEpPUkRBTgorxJBPS0nEhiBMSlVCSU5LTworxJBPS0nEhiBMSlVCTworxJBPS0nEhiBMVUtBCivEkE9LScSGIE1BUklOS08KK8SQT0tJxIYgTUFUSUxEQQorxJBPS0nEhiBNSUhBSkxPCivEkE9LScSGIE1JTEFOCivEkE9LScSGIE1JTEFOCivEkE9LScSGIE1JTElTQVYKK8SQT0tJxIYgTUlMSVZPSkUKK8SQT0tJxIYgTUlMT1ZBTgorxJBPS0nEhiBNSUxVVElOCivEkE9LScSGIFBBTlRFTElKQQorxJBPS0nEhiBQRVRBUgorxJBPS0nEhiBSQURJU0FWCivEkE9LScSGIFJBRE9WQU4KK8SQT0tJxIYgUkFUS08KK8SQT0tJxIYgUlXFvUEKK8SQT0tJxIYgU0xPQk9EQU5LQQorxJBPS0nEhiBTTE9CT0RBTgorxJBPS0nEhiBTT0ZJSkEKK8SQT0tJxIYgU1RBTknFoEEKK8SQT0tJxIYgU1ZFVElTTEFWCivEkE9LScSGIFZFUkEKK8SQT0tJxIYgVkxBRElTTEFWCivEkE9LScSGIFZPSklTTEFWCivEkE9LScSGIFZVSkFESU4KK8SQT0tJxIYgVlVLQURJTgorxJBPS0nEhiBaT1JBTgorxJBPS09WScSGIERSQUdPTUlSCivEkE9LT1ZJxIYgTUFSS08KK8SQT0tPVknEhiBNSUxBTgorxJBPS09WScSGIE1JTE9WQU4KK8SQT0tPVknEhiBQRVRBUgorxJBPS09WScSGIFJBRE9NSVIKK8SQT0tPVknEhiBSQURPVkFOCivEkE9LT1ZJxIYgU1RPSkFOCivEkE9LVlXEjEnEhiBOQURBCivEkE9MQUkgSU1SRQorxJBPTEFJIE1BVElMREEKK8SQT0xKRVZJxIYgxJBPS0EKK8SQT0xPVknEhiDEjEVET01JUgorxJBPTVBBUknEhiBEVcWgQU4KK8SQT01QQVJJxIYgSUxJSkEKK8SQT01QQVJJxIYgTUVMQU5JSkEKK8SQT01QQVJJxIYgTklLT0xBCivEkE9NUEFSScSGIE5JS09MQQorxJBPTVBBUknEhiBOSUtPTEEKK8SQT01QQVJJxIYgVkxBRElTTEFWQQorxJBPTk9WScSGIMSQT1LEkElKRQorxJBPTk9WScSGIEtBUk9MSU5BCivEkE9OT1ZJxIYgWkFSSUpBCivEkE9SxJBFVknEhiDEjEVET01JUgorxJBPUsSQRVZJxIYgxb1JVktPCivEkE9SxJBFVknEhiDFvUlWT0pJTgorxJBPUsSQRVZJxIYgxb1JVk9KSU4KK8SQT1LEkEVWScSGIMW9SVZPSklOCivEkE9SxJBFVknEhiDFvUlWT1JBRAorxJBPUsSQRVZJxIYgxb1JVk9SQUQKK8SQT1LEkEVWScSGIMW9SVZPVEEKK8SQT1LEkEVWScSGIMSQT0tBCivEkE9SxJBFVknEhiDEkE9SxJBFCivEkE9SxJBFVknEhiDEkE9SxJBFCivEkE9SxJBFVknEhiDEkFVSQQorxJBPUsSQRVZJxIYgQUNBCivEkE9SxJBFVknEhiBBTEVLU0FOREFSCivEkE9SxJBFVknEhiBBTEVLU0FOREFSCivEkE9SxJBFVknEhiBBTEVLU0FOREFSCivEkE9SxJBFVknEhiBBTEVLU0FOREFSCivEkE9SxJBFVknEhiBBTEVLU0FOREFSCivEkE9SxJBFVknEhiBBTEVLU0FOREFSCivEkE9SxJBFVknEhiBBTEVLU0FOREFSCivEkE9SxJBFVknEhiBBTEVLU0FOREFSCivEkE9SxJBFVknEhiBBTEVLU0FOREFSCivEkE9SxJBFVknEhiBBTEVLU0FORFJBCivEkE9SxJBFVknEhiBCT0dEQU4KK8SQT1LEkEVWScSGIEJPUkEKK8SQT1LEkEVWScSGIEJPUklTQVYKK8SQT1LEkEVWScSGIEJPUklWT0pFCivEkE9SxJBFVknEhiBCUkFOSU1JUgorxJBPUsSQRVZJxIYgQlJBTklTTEFWCivEkE9SxJBFVknEhiBCUkFOSVNMQVYKK8SQT1LEkEVWScSGIEJSQU5JU0xBVgorxJBPUsSQRVZJxIYgQlJBTklTTEFWCivEkE9SxJBFVknEhiBCUkFOSVNMQVYKK8SQT1LEkEVWScSGIEJSQU5JU0xBVgorxJBPUsSQRVZJxIYgQlJBTktPCivEkE9SxJBFVknEhiBCVURJTUlSCivEkE9SxJBFVknEhiBCVURJTUlSCivEkE9SxJBFVknEhiBEQVJLTworxJBPUsSQRVZJxIYgREVTQU5LQQorxJBPUsSQRVZJxIYgREVTUE9UCivEkE9SxJBFVknEhiBESU1JVFJJSkUKK8SQT1LEkEVWScSGIERPQlJJVk9KRQorxJBPUsSQRVZJxIYgRFJBxb1BCivEkE9SxJBFVknEhiBEUkFHQU5BCivEkE9SxJBFVknEhiBEUkFHQU4KK8SQT1LEkEVWScSGIERSQUdBTgorxJBPUsSQRVZJxIYgRFJBR0FOCivEkE9SxJBFVknEhiBEUkFHQU4KK8SQT1LEkEVWScSGIERSQUdBTgorxJBPUsSQRVZJxIYgRFJBR0EKK8SQT1LEkEVWScSGIERSQUdJxaBBCivEkE9SxJBFVknEhiBEUkFHScWgQQorxJBPUsSQRVZJxIYgRFJBR0nFoEEKK8SQT1LEkEVWScSGIERSQUdPTEpVQiBEUgorxJBPUsSQRVZJxIYgRFJBR09MSlVCCivEkE9SxJBFVknEhiBEUkFHT0xKVUIKK8SQT1LEkEVWScSGIERSQUdPTEpVQgorxJBPUsSQRVZJxIYgRFJBR09MSlVCCivEkE9SxJBFVknEhiBEUkFHT1NMQVYKK8SQT1LEkEVWScSGIERSQUdVVElOCivEkE9SxJBFVknEhiBEVcWgQU5LQQorxJBPUsSQRVZJxIYgRFXFoEFOCivEkE9SxJBFVknEhiBEVcWgQU4KK8SQT1LEkEVWScSGIERVxaBBTgorxJBPUsSQRVZJxIYgRFXFoEFOCivEkE9SxJBFVknEhiBFUk5FU1QKK8SQT1LEkEVWScSGIEVWSUNBCivEkE9SxJBFVknEhiBGQVRJTUEKK8SQT1LEkEVWScSGIEdJWkVMQQorxJBPUsSQRVZJxIYgR09SQQorxJBPUsSQRVZJxIYgR09SREFOQQorxJBPUsSQRVZJxIYgR1JBRElNSVIKK8SQT1LEkEVWScSGIEdSQURJTUlSCivEkE9SxJBFVknEhiBIUkFOSVNMQVYKK8SQT1LEkEVWScSGIElMSU5LQQorxJBPUsSQRVZJxIYgSUxPTkEKK8SQT1LEkEVWScSGIElWQU5BCivEkE9SxJBFVknEhiBJVkFOCivEkE9SxJBFVknEhiBKQUdPREEKK8SQT1LEkEVWScSGIEpFTEVOQQorxJBPUsSQRVZJxIYgSkVMRU5BCivEkE9SxJBFVknEhiBKRUxFTkEKK8SQT1LEkEVWScSGIEpPVkFOCivEkE9SxJBFVknEhiBKT1ZBTgorxJBPUsSQRVZJxIYgSk9WQU4KK8SQT1LEkEVWScSGIEpPVkFOCivEkE9SxJBFVknEhiBKT1ZBTgorxJBPUsSQRVZJxIYgSk9WSUNBCivEkE9SxJBFVknEhiBKVUxLSUNBCivEkE9SxJBFVknEhiBKVUxLSUNBCivEkE9SxJBFVknEhiBLQVRBUklOQQorxJBPUsSQRVZJxIYgS09OU1RBTkRJTkEKK8SQT1LEkEVWScSGIEtPU1RBCivEkE9SxJBFVknEhiBMQVpBUgorxJBPUsSQRVZJxIYgTEFaQVIKK8SQT1LEkEVWScSGIExKSUxKQU5BCivEkE9SxJBFVknEhiBMSlVCQSBESVBMIElORworxJBPUsSQRVZJxIYgTEpVQknFoEEKK8SQT1LEkEVWScSGIExKVUJJxaBBCivEkE9SxJBFVknEhiBMSlVCSUNBCivEkE9SxJBFVknEhiBMSlVCSUNBCivEkE9SxJBFVknEhiBMSlVCSUNBCivEkE9SxJBFVknEhiBMSlVCSU5LQQorxJBPUsSQRVZJxIYgTEpVQklTQVYKK8SQT1LEkEVWScSGIExKVUJPTUlSCivEkE9SxJBFVknEhiBMSlVCT01JUgorxJBPUsSQRVZJxIYgTUFSSUpBCivEkE9SxJBFVknEhiBNQVJJSkEKK8SQT1LEkEVWScSGIE1JTEFOS0EKK8SQT1LEkEVWScSGIE1JTEFOS0EKK8SQT1LEkEVWScSGIE1JTEFOCivEkE9SxJBFVknEhiBNSUxBTgorxJBPUsSQRVZJxIYgTUlMRU5BCivEkE9SxJBFVknEhiBNSUxFTktPCivEkE9SxJBFVknEhiBNSUxFTktPCivEkE9SxJBFVknEhiBNSUxJSkEKK8SQT1LEkEVWScSGIE1JTE/FoCBEUgorxJBPUsSQRVZJxIYgTUlMT8WgCivEkE9SxJBFVknEhiBNSUxPUkFECivEkE9SxJBFVknEhiBNSUxPUkFECivEkE9SxJBFVknEhiBNSUxPU0FWCivEkE9SxJBFVknEhiBNSUxPVkFOCivEkE9SxJBFVknEhiBNSUxPVkFOCivEkE9SxJBFVknEhiBNSUxVVElOCivEkE9SxJBFVknEhiBNSU9EUkFHCivEkE9SxJBFVknEhiBNSU9EUkFHCivEkE9SxJBFVknEhiBNSU9EUkFHCivEkE9SxJBFVknEhiBNSVJKQU5BCivEkE9SxJBFVknEhiBNSVJKQU5BCivEkE9SxJBFVknEhiBNSVJLTworxJBPUsSQRVZJxIYgTUlSS08KK8SQT1LEkEVWScSGIE1JUk9TTEFWCivEkE9SxJBFVknEhiBNSVJPU0xBVgorxJBPUsSQRVZJxIYgTUlST1NMQVYKK8SQT1LEkEVWScSGIE1MQURFTgorxJBPUsSQRVZJxIYgTkFEQQorxJBPUsSQRVZJxIYgTkFEQQorxJBPUsSQRVZJxIYgTkVERUxKS08gRFIKK8SQT1LEkEVWScSGIE5FVkVOS0EKK8SQT1LEkEVWScSGIE5JS09MQQorxJBPUsSQRVZJxIYgUEFKQQorxJBPUsSQRVZJxIYgUEFOVEEKK8SQT1LEkEVWScSGIFBBVkxFCivEkE9SxJBFVknEhiBQQVZMRQorxJBPUsSQRVZJxIYgUEFWTEUKK8SQT1LEkEVWScSGIFBFVEFSCivEkE9SxJBFVknEhiBSQURPTUlSCivEkE9SxJBFVknEhiBSQURPTUlSCivEkE9SxJBFVknEhiBSQURPU0xBVgorxJBPUsSQRVZJxIYgUkFET1NMQVYKK8SQT1LEkEVWScSGIFJBRE9TTEFWCivEkE9SxJBFVknEhiBSQUpLQQorxJBPUsSQRVZJxIYgUkFOxJBFTAorxJBPUsSQRVZJxIYgU0HFoEEKK8SQT1LEkEVWScSGIFNBVkEKK8SQT1LEkEVWScSGIFNJTknFoEEKK8SQT1LEkEVWScSGIFNMQcSQQU5BCivEkE9SxJBFVknEhiBTTEFWS08KK8SQT1LEkEVWScSGIFNMQVZLTworxJBPUsSQRVZJxIYgU0xBVktPCivEkE9SxJBFVknEhiBTTE9CT0RBTgorxJBPUsSQRVZJxIYgU0xPQk9EQU4KK8SQT1LEkEVWScSGIFNMT0JPREFOCivEkE9SxJBFVknEhiBTTE9CT0RBTgorxJBPUsSQRVZJxIYgU05Fxb1BTkEKK8SQT1LEkEVWScSGIFNPRklKQQorxJBPUsSQRVZJxIYgU09GSUpBCivEkE9SxJBFVknEhiBTUsSQQU4KK8SQT1LEkEVWScSGIFNSxJBBTgorxJBPUsSQRVZJxIYgU1JFVEVOCivEkE9SxJBFVknEhiBTVEFOQQorxJBPUsSQRVZJxIYgU1RBTklTTEFWCivEkE9SxJBFVknEhiBTVEFOS0EKK8SQT1LEkEVWScSGIFNURVZBTkEKK8SQT1LEkEVWScSGIFNURVZBTgorxJBPUsSQRVZJxIYgU1RFVkFOCivEkE9SxJBFVknEhiBTVkVUSVNMQVYKK8SQT1LEkEVWScSGIFNWRVRJU0xBVgorxJBPUsSQRVZJxIYgU1ZFVE9aQVIKK8SQT1LEkEVWScSGIFRJT1NBVgorxJBPUsSQRVZJxIYgVE9NSVNMQVYKK8SQT1LEkEVWScSGIFRPTUlTTEFWCivEkE9SxJBFVknEhiBWRUxJU0FWCivEkE9SxJBFVknEhiBWRUxJWkFSCivEkE9SxJBFVknEhiBWRVJBCivEkE9SxJBFVknEhiBWRVJBCivEkE9SxJBFVknEhiBWSURPU0FWQQorxJBPUsSQRVZJxIYgVkxBRElNSVIKK8SQT1LEkEVWScSGIFZMQUpLTworxJBPUsSQRVZJxIYgVkxBU1RJTUlSCivEkE9SxJBFVknEhiBWTEFTVElNSVIKK8SQT1LEkEVWScSGIFZPSklOCivEkE9SxJBFVknEhiBWVcSMS08KK8SQT1LEkEVWScSGIFpPUkFOCivEkE9SxJBFVknEhiBaT1JBTgorxJBPUsSQRVZJxIYgWk9SQU4KK8SQT1LEkEVWScSGIFpPUkFOCivEkE9SxJBJxIYgQlJBTktPCivEkE9SxJBJxIYgTUFSS08KK8SQT1LEkEnEhiBNSUxBTgorxJBPUsSQSUpFVlNLSSBEUkFHQU4KK8SQT1LEkElKRVZTS0kgRFXFoEFOCivEkE9SxJBJSkVWU0tJIFpPUkFOCivEkE9SxJBJTiBGRU1LQQorxJBPUsSQSU4gUkFERQorxJBPUsSQSU4gU0FWQQorxJBPUsSQSU9TS0kgS0lSTworxJBPUkVWU0tJIEdPUkFOCivEkE9SR0lFVkEgSkVMSUNBCivEkE9SScSGIEFOVE9OSUpFCivEkE9SScSGIEdPUkRBTkEKK8SQT1JJxIYgTEpVQklTQVYKK8SQT1JJxIYgTUlMSVZPSkUKK8SQT1JJxIYgTUlPRFJBRworxJBPUknEhiBWRVJJQ0EKK8SQT1JPSkVWScSGIFZVS09UQQorxJBPVEVWQSBUUkFKQU5LQQorxJBPVFVOT1ZJxIYgQU7EkEVMSUpBCivEkE9aScSGIMWgVUtSSUpBCivEkFXEkEFSIE1FTEFOSUpBCivEkFXEkEFSIFZMQURBCivEkFXEkEFSIFZMQURJTUlSCivEkFXEkEFSIFpWT05JTUlSCivEkFXEkEnEhiBEUkFHQU4KK8SQVURVUk9WScSGIERVxaBBTgorxJBVR0EgUEFWRUwKK8SQVUtBTk9WIEJPUklWT0oKK8SQVUtBTk9WIEVNSUxJSkFOCivEkFVLQU5PViBNSUxBTgorxJBVS0FOT1YgTkFEQQorxJBVS0FOT1YgU0xPQk9EQU4KK8SQVUtBTk9WScSGIEFMRUtTQU5EQVIKK8SQVUtBTk9WScSGIEJSQU5LTworxJBVS0FOT1ZJxIYgSVZPCivEkFVLQU5PVknEhiBMSlVCSUNBCivEkFVLQU5PVknEhiBNQVJBCivEkFVLQU5PVknEhiBNSUxBTgorxJBVS0FOT1ZJxIYgTUlST0xKVUIKK8SQVUtBTk9WScSGIE5BREEKK8SQVUtBTk9WScSGIE5BREEKK8SQVUtBTk9WScSGIFBVTknFoEEKK8SQVUtBTk9WScSGIFNSRVRFTgorxJBVS0FOT1ZJxIYgU1RBS0EKK8SQVUtBTk9WScSGIFZMQURJTUlSCivEkFVLQU5PVknEhiBaT1JBCivEkFVLScSMSU4gSk9WQU5LQQorxJBVS0nEjElOIE1BUklKQQorxJBVS0nEjElOIFNSRURPSkUKK8SQVUtJxIxJTiBTUkVET0pFCivEkFVLScSGLcWgQUJJxIYgR09SREFOQQorxJBVS0nEhiDFvUFSS0EKK8SQVUtJxIYgxb1BUktPCivEkFVLScSGIMW9RUxKS08KK8SQVUtJxIYgxb1JVk9UQQorxJBVS0nEhiDEkE9SxJBFCivEkFVLScSGIMSQT1LEkEUKK8SQVUtJxIYgxJBPUsSQRQorxJBVS0nEhiDEkE9SxJBFCivEkFVLScSGIMSQVVIwCivEkFVLScSGIMSQVVJBCivEkFVLScSGIMSQVVJPCivEkFVLScSGIEFHTklDQQorxJBVS0nEhiBBTEVLU0FOREFSIERJUEwgSU5HCivEkFVLScSGIEFOQQorxJBVS0nEhiBBTkEKK8SQVUtJxIYgQU5EUklKQQorxJBVS0nEhiBBTklDQQorxJBVS0nEhiBCSUxKQU5BCivEkFVLScSGIEJPUklTTEFWCivEkFVLScSGIEJSQU5JU0xBVgorxJBVS0nEhiBCUkFOSVNMQVYKK8SQVUtJxIYgQlJBTktPCivEkFVLScSGIERBTklDQSBEUgorxJBVS0nEhiBEQU5JTE8KK8SQVUtJxIYgRElKQU5BCivEkFVLScSGIERJTUlUUklKRQorxJBVS0nEhiBET0JSSUxBCivEkFVLScSGIERPQlJJVk9KCivEkFVLScSGIERSQUdBTgorxJBVS0nEhiBEUkFHQU4KK8SQVUtJxIYgRFJBR09KTE8KK8SQVUtJxIYgRFJBR09NSVIKK8SQVUtJxIYgRFXFoEFOCivEkFVLScSGIERVxaBBTgorxJBVS0nEhiBEVcWgQU4KK8SQVUtJxIYgRFXFoEFOCivEkFVLScSGIERVxaBBTgorxJBVS0nEhiBHRU5BCivEkFVLScSGIEdFTk8KK8SQVUtJxIYgR0laRUxBCivEkFVLScSGIEdPUkRBTkEKK8SQVUtJxIYgSUxJSkEKK8SQVUtJxIYgSUxJSkEKK8SQVUtJxIYgSVZBTiBESVBMIElORworxJBVS0nEhiBJVkFOS0EKK8SQVUtJxIYgSkHFoEEKK8SQVUtJxIYgSkVMRU5BCivEkFVLScSGIEpPVkFOCivEkFVLScSGIEpPVklDQQorxJBVS0nEhiBKVUxLQQorxJBVS0nEhiBMRU8KK8SQVUtJxIYgTEpJTEpBTkEKK8SQVUtJxIYgTEpVQklDQQorxJBVS0nEhiBMSlVCT01JUgorxJBVS0nEhiBMSlVCT01JUgorxJBVS0nEhiBNQUtTSU0KK8SQVUtJxIYgTUFSQQorxJBVS0nEhiBNQVJJSkEKK8SQVUtJxIYgTUFSSU5BCivEkFVLScSGIE1JSk9EUkFHCivEkFVLScSGIE1JTEFOS0EKK8SQVUtJxIYgTUlMQU4KK8SQVUtJxIYgTUlMQU4KK8SQVUtJxIYgTUlMQU4KK8SQVUtJxIYgTUlMQU4KK8SQVUtJxIYgTUlMQU4KK8SQVUtJxIYgTUlMQU4KK8SQVUtJxIYgTUlMQU4KK8SQVUtJxIYgTUlMRU5LTworxJBVS0nEhiBNSUxFVkEKK8SQVUtJxIYgTUlMRQorxJBVS0nEhiBNSUxFCivEkFVLScSGIE1JTElDQQorxJBVS0nEhiBNSUxJQ0EKK8SQVUtJxIYgTUlMSktPCivEkFVLScSGIE1JTEtBCivEkFVLScSGIE1JTE/FoAorxJBVS0nEhiBNSUxPxaAKK8SQVUtJxIYgTUlMT1JBRAorxJBVS0nEhiBNSUxPVkFOCivEkFVLScSGIE1JUktPCivEkFVLScSGIE1JUktPCivEkFVLScSGIE1JUktPCivEkFVLScSGIE1JUktPCivEkFVLScSGIE1JUktPCivEkFVLScSGIE5FxJBPCivEkFVLScSGIE5FREVMSktPCivEkFVLScSGIE5JS09MQQorxJBVS0nEhiBOSUtPTEEKK8SQVUtJxIYgTk9WQUsKK8SQVUtJxIYgTk9WQUsKK8SQVUtJxIYgTk9WQUsKK8SQVUtJxIYgT1NUT0pBCivEkFVLScSGIFBBTkUKK8SQVUtJxIYgUEFWTEUKK8SQVUtJxIYgUEVSScWgQQorxJBVS0nEhiBQRVRBUgorxJBVS0nEhiBQRVRBUgorxJBVS0nEhiBSQURFCivEkFVLScSGIFJBRElWT0oKK8SQVUtJxIYgUkFET0pJQ0EKK8SQVUtJxIYgUkFET1ZBTgorxJBVS0nEhiBSQUpLTworxJBVS0nEhiBST1NBCivEkFVLScSGIFJVxb1JQ0EgTE9LQUwKK8SQVUtJxIYgU0FWQQorxJBVS0nEhiBTQVZLQQorxJBVS0nEhiBTQVZPIERSCivEkFVLScSGIFNMQVZJQ0EKK8SQVUtJxIYgU0xBVktPCivEkFVLScSGIFNMQVZPTEpVQgorxJBVS0nEhiBTTE9CT0RBTgorxJBVS0nEhiBTUsSQQU4KK8SQVUtJxIYgU1JCT0xKVUIKK8SQVUtJxIYgU1RBTkEKK8SQVUtJxIYgU1RBTktPCivEkFVLScSGIFNUQU5LTworxJBVS0nEhiBTVEVWQU4KK8SQVUtJxIYgU1RPSkFOS0EKK8SQVUtJxIYgU1RPSkFOCivEkFVLScSGIFNWRVRMQU5BCivEkFVLScSGIFNWRVRMQU5BCivEkFVLScSGIFRPTUlTTEFWCivEkFVLScSGIFRPTUlTTEFWCivEkFVLScSGIFZBTEVSSUpBCivEkFVLScSGIFZFTEVNSVIKK8SQVUtJxIYgVkVSSUNBCivEkFVLScSGIFZFUk9OSUtBCivEkFVLScSGIFZJREFLCivEkFVLScSGIFZJREEKK8SQVUtJxIYgVkxBRElNSVIKK8SQVUtJxIYgVkxBRElNSVIKK8SQVUtJxIYgVkxBRElNSVIKK8SQVUtJxIYgVkxBSktPCivEkFVLScSGIFZPSklOCivEkFVLScSGIFZPSklTTEFWCivEkFVLScSGIFZVS0FOCivEkFVLScSGIFpPUkFOCivEkFVLSU4gRFXFoEFOCivEkFVLSU4gU1RFVkFOCivEkFVLTknEhiBTUkVURU4KK8SQVUxBIEtBUkxPCivEkFVMSU5BQyBKRUxJQ0EKK8SQVUxJTkFDIFZFU0VMSU4KK8SQVUxJWklCQVJJxIYtT1JFxaBLT1ZJxIYgREFOSUNBCivEkFVMVkVaQU4gS09TQQorxJBVTFZFWkFOIE1JTE/FoAorxJBVTFZFWkFOIFJPWkFMSUpBCivEkFVNScSGIEJPR0RBTgorxJBVTUnEhiBEVcWgQU4KK8SQVU1JxIYgR09TUEFWQQorxJBVTUnEhiBJTElKQQorxJBVTUnEhiBNQVJJSkEKK8SQVU1JxIYgTUlMRU5LTworxJBVTUnEhiBTTEFWS08KK8SQVU1JxIYgU1RBTktPCivEkFVNScSGIFVST8WgCivEkFVOREnEhiBNQVJJTktPCivEkFVSxIxFSyBNSUxFTktPCivEkFVSxIxFVknEhiBLU0VOSUpBCivEkFVSxIxJQU5TS0kgTUlST1NMQVYKK8SQVVLEjElBTlNLSSBQQVZMRQorxJBVUsSMSUsgSk9TSVAKK8SQVVLEjEpBTlNLSSBNSVJPU0xBVgorxJBVUsSMT0sgTUlMSU5BCivEkFVSxJBFViDFvUFSS08KK8SQVVLEkEVWIMSQT1LEkEUKK8SQVVLEkEVWIEFMRUtTQU5EQVIKK8SQVVLEkEVWIEFMRUtTQU5EQVIKK8SQVVLEkEVWIEJPxb1JREFSCivEkFVSxJBFViBCUkFOSVNMQVYKK8SQVVLEkEVWIERJTUlUUklKRQorxJBVUsSQRVYgRE9CUklMQQorxJBVUsSQRVYgRFJBR09MSlVCCivEkFVSxJBFViBEVcWgQU4KK8SQVVLEkEVWIERVxaBBTgorxJBVUsSQRVYgS0HEhkEKK8SQVVLEkEVWIEtBVEEKK8SQVVLEkEVWIExKVUJJxaBBCivEkFVSxJBFViBNQVJJSkEKK8SQVVLEkEVWIE1BUklKQQorxJBVUsSQRVYgTUlMRVRBCivEkFVSxJBFViBNTEFERU4KK8SQVVLEkEVWIE5BREXFvURBCivEkFVSxJBFViBORVZFTktBCivEkFVSxJBFViBOT1ZBSworxJBVUsSQRVYgT0JSQUQKK8SQVVLEkEVWIFBBVkEKK8SQVVLEkEVWIFBSVk9TTEFWCivEkFVSxJBFViBTQVZJQ0EKK8SQVVLEkEVWIFNMQVZLTworxJBVUsSQRVYgU1RFVkFOCivEkFVSxJBFViBUT0RPUgorxJBVUsSQRVYgVkFTQQorxJBVUsSQRVYgVkVSQQorxJBVUsSQRVYgWk9SS0EKK8SQVVLEkEVWQUMgRFJBR09MSlVCCivEkFVSxJBFVknEhiDFvUVMSktPCivEkFVSxJBFVknEhiDFvUlWQU4KK8SQVVLEkEVWScSGIMW9SVZLTworxJBVUsSQRVZJxIYgxb1JVktPCivEkFVSxJBFVknEhiDEkE9SxJBFCivEkFVSxJBFVknEhiDEkFVSxJBJQ0EgRElQTCBJTkcKK8SQVVLEkEVWScSGIEFOxJBFTEtPCivEkFVSxJBFVknEhiBCT0dEQU4KK8SQVVLEkEVWScSGIEJSQU5LTworxJBVUsSQRVZJxIYgQlJBTktPCivEkFVSxJBFVknEhiBCVURJTUlSCivEkFVSxJBFVknEhiBEUkFHVVRJTgorxJBVUsSQRVZJxIYgRFXFoEFOCivEkFVSxJBFVknEhiBEVcWgQU4KK8SQVVLEkEVWScSGIERVxaBJQ0EKK8SQVVLEkEVWScSGIEdPUkRBTkEKK8SQVVLEkEVWScSGIEpBS09WCivEkFVSxJBFVknEhiBKRUxFTkEKK8SQVVLEkEVWScSGIEpFTEVOQQorxJBVUsSQRVZJxIYgSkVMSUNBCivEkFVSxJBFVknEhiBKT1ZBTktBCivEkFVSxJBFVknEhiBKT1ZBTgorxJBVUsSQRVZJxIYgSlVMS0EKK8SQVVLEkEVWScSGIExBWkFSCivEkFVSxJBFVknEhiBMQVpPCivEkFVSxJBFVknEhiBMSlVCT01JUgorxJBVUsSQRVZJxIYgTUFOT0pMTworxJBVUsSQRVZJxIYgTUFSSUpBCivEkFVSxJBFVknEhiBNSUxBTgorxJBVUsSQRVZJxIYgTUlMQU4KK8SQVVLEkEVWScSGIE1JTEFOCivEkFVSxJBFVknEhiBNSUxFTktPCivEkFVSxJBFVknEhiBNSUxJQ0EKK8SQVVLEkEVWScSGIE1JTElWT0oKK8SQVVLEkEVWScSGIE1JTE9SQUQKK8SQVVLEkEVWScSGIE1JTE9SQUQKK8SQVVLEkEVWScSGIE1JUkpBTkEKK8SQVVLEkEVWScSGIE1JUkpBTkEKK8SQVVLEkEVWScSGIE1PTcSMSUxPCivEkFVSxJBFVknEhiBORURFTEpLTworxJBVUsSQRVZJxIYgTklLT0xBCivEkFVSxJBFVknEhiBSQURJTktBCivEkFVSxJBFVknEhiBSQU5LTworxJBVUsSQRVZJxIYgU0FWQQorxJBVUsSQRVZJxIYgU0FWQQorxJBVUsSQRVZJxIYgU0xPQk9EQU4KK8SQVVLEkEVWScSGIFNSxJBBTiBEUgorxJBVUsSQRVZJxIYgU1RBTktPCivEkFVSxJBFVknEhiBTVEFOT0pLQQorxJBVUsSQRVZJxIYgU1RFVkFOCivEkFVSxJBFVknEhiBTVkVUT1pBUgorxJBVUsSQRVZJxIYgVE9ET1IKK8SQVVLEkEVWScSGIFRPTUlTTEFWCivEkFVSxJBFVknEhiBUT01JU0xBVgorxJBVUsSQRVZJxIYgVkVTRUxJTgorxJBVUsSQRVZJxIYgVklECivEkFVSxJBFVknEhiBWTEFEQQorxJBVUsSQRVZJxIYgVkxBREEKK8SQVVLEkEVWScSGIFZMQURJTUlSCivEkFVSxJBFVknEhiBWTEFESU1JUgorxJBVUsSQRVZJxIYgVkxBRElTTEFWCivEkFVSxJBFVknEhiBaT1JBTgorxJBVUsSQRVZJxIYgWk9SQU4KK8SQVVLEkEVWU0tJIEJPxaBLTworxJBVUsSQScSGIEJPxb1JREFSCivEkFVSxJBJxIYgTUlMT8WgCivEkFVSxJBJxIYgTU9NxIxJTE8KK8SQVVLEkEnEhiBTQVZPCivEkFVSxJBJxIYgU1RBTkEKK8SQVVLEkElOIFNURVZBTgorxJBVUsSQVUxPViBERUpBTgorxJBVUsSQVUxPViBFVklDQQorxJBVUkEgRlJBTkpBCivEkFVSQSBKRUxJU0FWRVRBCivEkFVSQSBKVUxJSkFOQSBNUgorxJBVUkHEjEnEhiBEUkFHQU4KK8SQVVJBxaAgTUlPRFJBRworxJBVUkHFoEVWScSGIMSQT1LEkEUKK8SQVVJBxaBFVknEhiDEkFVSTworxJBVUkHFoEVWScSGIEdPSktPCivEkFVSQcWgRVZJxIYgSVZPCivEkFVSQcWgRVZJxIYgTUFSSUpBTkEKK8SQVVJBxaBFVknEhiBNSUxFCivEkFVSQcWgRVZJxIYgUkFET01JUgorxJBVUkHFoEVWScSGIFRJQk9SCivEkFVSQcWgRVZJxIYgWk9SQU4KK8SQVVJBxaBJTk9WIFZFTElNSVIKK8SQVVJBxaBJTk9WScSGIElMSUpBCivEkFVSQcWgS09WScSGIMW9SVZPSklOCivEkFVSQcWgS09WScSGIEJPxb1PCivEkFVSQcWgS09WScSGIERSQUdBTgorxJBVUkHFoEtPVknEhiBEUkFHTworxJBVUkHFoEtPVknEhiBHT1JEQU5BCivEkFVSQcWgS09WScSGIEpPVkFOCivEkFVSQcWgS09WScSGIEpPVkFOCivEkFVSQcWgS09WScSGIEpPVklDQQorxJBVUkHFoEtPVknEhiBSQUpLTworxJBVUkHFoEtPVknEhiBTVEFOT0pFCivEkFVSQUdJxIYgxJBPUsSQRQorxJBVUkFHScSGIERJTEUKK8SQVVJBR0nEhiBEUkFHQU4KK8SQVVJBR0nEhiBHSUdBCivEkFVSQUdJxIYgSk9WQU4KK8SQVVJBR0nEhiBKVUxLQQorxJBVUkFHScSGIExBWkFSCivEkFVSQUdJxIYgTUlST1NMQVYKK8SQVVJBR0nEhiBTQVZBCivEkFVSQUdJxIYgU1RFVkFOCivEkFVSQUdJTiBKT1ZBTgorxJBVUkFHSU4gU1RBTktBCivEkFVSQUsgSk/FvUVGCivEkFVSQUsgSk9TSUYKK8SQVVJBS09WQUMgRkFUTUlSQQorxJBVUkFOIEJPSkFOQQorxJBVUkFOIElMSUpBCivEkFVSQU4gSkVMRU5BCivEkFVSQU4gSk9WTworxJBVUkFOIE1JTEFOCivEkFVSQU4gTUlMQU4KK8SQVVJBTiBSQUpLTworxJBVUkFOIFJBSktPCivEkFVSQU4gU0xBVktPCivEkFVSQU4gU05Fxb1BTkEKK8SQVVJBTiBaRFJBVktPCivEkFVSQU5PVknEhiBEVcWgQU4KK8SQVVJBTk9WScSGIElMT05BCivEkFVSQU5PVknEhiBNSUhBSUxPCivEkFVSQU5PVknEhiBNSUxBTgorxJBVUkFOT1ZJxIYgTUlPRFJBRworxJBVUkFOT1ZJxIYgTUlSS08KK8SQVVJBTk9WScSGIE5BREEKK8SQVVJBTk9WScSGIFNMQcSQQU5BCivEkFVSQVNJTk9WScSGIE1JTEUKK8SQVVJES09WIEVWQQorxJBVUkVLT1ZJxIYgS0FSTE8KK8SQVVJFS09WScSGIExKVUJJQ0EKK8SQVVJFS09WScSGIFpWT05JTUlSCivEkFVSRU5EScSGIMSQT1LEkEUKK8SQVVJFTkRJxIYgRFXFoEFOCivEkFVSRVRJxIYgTklLT0xBCivEkFVSScSMScSGIERSQUdJTkpBCivEkFVSScSMScSGIERSQUdPCivEkFVSScSMScSGIERSQUdVVElOCivEkFVSScSMScSGIERVxaBBTgorxJBVUknEjEnEhiBKT1ZBTgorxJBVUknEjEnEhiBNSUxKT0pLTworxJBVUknEjEnEhiBNSUxPxaAKK8SQVVJJxIxJxIYgTkXFoEtPCivEkFVSScSMScSGIE5JS09MQQorxJBVUknEjEnEhiBQQVZMRQorxJBVUknEjEnEhiBSVcW9QQorxJBVUknEjEnEhiBTTEFWS08KK8SQVVJJxIxJxIYgU0xBVktPCivEkFVSScSMScSGIFNUQU5LTworxJBVUknEjEnEhiBUQU5LT1NBVkEKK8SQVVJJxIxJxIYgWkxBVElDQQorxJBVUknEjEnEhiBaT1JBTgorxJBVUknEjElOIMSQT1LEkEUKK8SQVVJJxIxJTiBBTEVLU0FOREFSCivEkFVSScSMSU4gRFJBR0FOCivEkFVSScSMSU4gRFJBR1VUSU4KK8SQVVJJxIxJTiBLQVRBUklOQQorxJBVUknEjElOIEtBVElDQQorxJBVUknEjElOIE1BUktPCivEkFVSScSMSU4gTUlMQU4KK8SQVVJJxIxJTiBNSUxPUkFECivEkFVSScSMSU4gTUlPRFJBRworxJBVUknEjElOIFBFVEFSCivEkFVSScSMSU4gUkFET1NMQVZBCivEkFVSScSMSU4gUlXFvUlDQQorxJBVUknEjElOIFNJTknFoEEKK8SQVVJJxIxJTiBTT0ZJSkEKK8SQVVJJxIxJTiBTVEFOSUpBCivEkFVSScSMSU4gU1RFVkFOCivEkFVSScSMSU4gU1ZFVExBTkEKK8SQVVJJxIxJTiBUT01JU0xBVgorxJBVUknEjElOIFZBU0lMSUpFCivEkFVSScSMSU4gWk9SS0EKK8SQVVJJxIxLT1ZJxIYgTUlMT1JBRAorxJBVUknEjEtPVknEhiBQQVZMRQorxJBVUknEjEtPVknEhiBaTEFUQU5BCivEkFVSScWgIEtMQVJBCivEkFVSScWgIE1JUk9TTEFWCivEkFVSScWgIFBBTEpPCivEkFVSScWgRVZJxIYgTUlMRU5BCivEkFVSScWgScSGIERVxaBBTgorxJBVUknFoEnEhiBKRUxFTkEKK8SQVVJJxaBJxIYgTEFaQVIKK8SQVVJJxaBJxIYgTUFUTworxJBVUknFoEnEhiBNSUxBTgorxJBVUknFoEnEhiBNSUxBTgorxJBVUknFoEnEhiBNSUxJSkEKK8SQVVJJxaBJxIYgTUlMSVNBVgorxJBVUknFoEnEhiBOSUtPTEEKK8SQVVJJxaBJxIYgUkFETUlMQQorxJBVUknFoEnEhiBSQURPTUlSCivEkFVSScWgScSGIFNMQVZLTworxJBVUknFoEnEhiBTVkVUTEFOQQorxJBVUknFoEnEhiBWRVJBCivEkFVSScWgScSGIFZJREEKK8SQVVJJxaBJxIYgWkxBVEFOQQorxJBVUknFoEnEhiBaTEFUQQorxJBVUknEhiDFvUFSS08KK8SQVVJJxIYgxb1FTEpLTworxJBVUknEhiDFvUlWT1JBRAorxJBVUknEhiDEkEVSxJAKK8SQVVJJxIYgxJBPUsSQRQorxJBVUknEhiDEkE9SxJBFCivEkFVSScSGIMSQT1LEkEUKK8SQVVJJxIYgxJBVUkEKK8SQVVJJxIYgxJBVUklDQQorxJBVUknEhiBBTEVLU0FOREFSCivEkFVSScSGIEFOxJBFTEtBCivEkFVSScSGIEFOR0VMSU5BCivEkFVSScSGIEFOS0EKK8SQVVJJxIYgQVJTRU5JSkUKK8SQVVJJxIYgQkxBR09NSVIKK8SQVVJJxIYgQk/FvUlEQVIKK8SQVVJJxIYgQk/FvUlEQVIKK8SQVVJJxIYgQk9HT0xKVUIKK8SQVVJJxIYgQk9HT0xKVUIKK8SQVVJJxIYgQk9KQU4KK8SQVVJJxIYgQk9SSVZPSgorxJBVUknEhiBCT1JLQQorxJBVUknEhiBCT1JLQQorxJBVUknEhiBCUkFOSVNMQVYgRFIgTEVLQVIKK8SQVVJJxIYgQlJBTklTTEFWQQorxJBVUknEhiBCUkFOS0EKK8SQVVJJxIYgQlJBTktBCivEkFVSScSGIEJSQU5LTworxJBVUknEhiBCUkFUSVNMQVYKK8SQVVJJxIYgQlVESU1JUgorxJBVUknEhiBERUpBTgorxJBVUknEhiBERUpBTgorxJBVUknEhiBERVNQT1QKK8SQVVJJxIYgRE9CUkUKK8SQVVJJxIYgRE9CUklMQQorxJBVUknEhiBEUkFHQU4KK8SQVVJJxIYgRFJBR0FOCivEkFVSScSGIERSQUdBTgorxJBVUknEhiBEUkFHQU4KK8SQVVJJxIYgRFJBR0FOCivEkFVSScSGIERSQUdBTgorxJBVUknEhiBEUkFHQU4KK8SQVVJJxIYgRFJBR0lDQQorxJBVUknEhiBEUkFHSUNBCivEkFVSScSGIERSQUdVVElOIERSCivEkFVSScSGIERVxaBBTgorxJBVUknEhiBEVcWgQU4KK8SQVVJJxIYgRVZBCivEkFVSScSGIEZSQU5KQQorxJBVUknEhiBHT0pLTworxJBVUknEhiBHT0pLTworxJBVUknEhiBHT1JEQU5BCivEkFVSScSGIEhSQU5JU0xBVgorxJBVUknEhiBIUkFOSVNMQVYKK8SQVVJJxIYgSUxJSkEKK8SQVVJJxIYgSUxJSkEKK8SQVVJJxIYgSkFTTUlOS0EKK8SQVVJJxIYgSkVMSUNBCivEkFVSScSGIEpPVkFOCivEkFVSScSGIEpPVkFOCivEkFVSScSGIEpPVkFOCivEkFVSScSGIEpPVk8KK8SQVVJJxIYgS1JJU1RJTkEKK8SQVVJJxIYgTEpJTEpBTkEKK8SQVVJJxIYgTEpVQknFoEEKK8SQVVJJxIYgTEpVQknFoEEKK8SQVVJJxIYgTEpVQklDQQorxJBVUknEhiBMSlVCSUNBCivEkFVSScSGIExKVUJPRFJBRworxJBVUknEhiBMSlVCT01JUgorxJBVUknEhiBNQVJBCivEkFVSScSGIE1BUklKQQorxJBVUknEhiBNScSGQQorxJBVUknEhiBNSUxBTktPCivEkFVSScSGIE1JTEFOCivEkFVSScSGIE1JTEFOCivEkFVSScSGIE1JTEFOCivEkFVSScSGIE1JTEFOCivEkFVSScSGIE1JTEVOS08KK8SQVVJJxIYgTUlMSUNBCivEkFVSScSGIE1JTElWT0pFCivEkFVSScSGIE1JTE/FoAorxJBVUknEhiBNSUxPUkFECivEkFVSScSGIE1JTE9SQUQKK8SQVVJJxIYgTUlMT1ZBTgorxJBVUknEhiBNSUxVTgorxJBVUknEhiBNSU9EUkFHCivEkFVSScSGIE1JT0RSQUcKK8SQVVJJxIYgTUlSSkFOQQorxJBVUknEhiBNSVJLTworxJBVUknEhiBNSVJPTEpVQgorxJBVUknEhiBNSVJPU0xBVkEKK8SQVVJJxIYgTUlST1NMQVYKK8SQVVJJxIYgTUlUQVIKK8SQVVJJxIYgTU9NxIxJTE8KK8SQVVJJxIYgTkVERUxKS08KK8SQVVJJxIYgTkVNQU5KQQorxJBVUknEhiBORU5BRAorxJBVUknEhiBORVZFTktBCivEkFVSScSGIFBFVFJBCivEkFVSScSGIFBSRURSQUcKK8SQVVJJxIYgUFJFRFJBRworxJBVUknEhiBSQURJVk9KRQorxJBVUknEhiBSQURNSUxBCivEkFVSScSGIFJBRE9JQ0EKK8SQVVJJxIYgUkFET0pLQQorxJBVUknEhiBSQURPU0xBVgorxJBVUknEhiBSQVRLTworxJBVUknEhiBTQU5KQQorxJBVUknEhiBTQVZLQQorxJBVUknEhiBTQVZPCivEkFVSScSGIFNFS1VMQQorxJBVUknEhiBTTEFWSUNBCivEkFVSScSGIFNMQVZLQQorxJBVUknEhiBTTEFWS08KK8SQVVJJxIYgU0xBVktPCivEkFVSScSGIFNSQk9MSlVCCivEkFVSScSGIFNUQU5JTUlSCivEkFVSScSGIFNUQU5JTUlSCivEkFVSScSGIFNURVZBTgorxJBVUknEhiBTVE9KQU5LQQorxJBVUknEhiBTVE9KQU5LQQorxJBVUknEhiBURU9ET1IKK8SQVVJJxIYgVEVSRVpBCivEkFVSScSGIFRPRE9SCivEkFVSScSGIFRPRE9SCivEkFVSScSGIFRVR09NSVIKK8SQVVJJxIYgVkFTQQorxJBVUknEhiBWRUxKS08KK8SQVVJJxIYgVkVSQQorxJBVUknEhiBWRVJBCivEkFVSScSGIFZJREEKK8SQVVJJxIYgVklET0pFCivEkFVSScSGIFZMQURBCivEkFVSScSGIFZMQURJTUlSCivEkFVSScSGIFZMQURJTUlSCivEkFVSScSGIFZMQURJTUlSCivEkFVSScSGIFZPSklOCivEkFVSScSGIFZPSklTTEFWCivEkFVSScSGIFZVS0HFoElOCivEkFVSScSGIFpERU5LQQorxJBVUknEhiBaRFJBVktPCivEkFVSScSGIFpPUkFOCivEkFVSSUNBIE1JTE/FoAorxJBVUklDQSBORVZFTktBCivEkFVSSUNBIFJBREUKK8SQVVJJQ0EgUkFOS08KK8SQVVJJQ0EgUkFOS08KK8SQVVJJQ0EgUkFUS08KK8SQVVJJQ0EgU0xPQk9EQU4gRElQTCBPRUMKK8SQVVJJSyBEVcWgQU4KK8SQVVJJSyBKVUxLQQorxJBVUklLIE1JTEFOCivEkFVSSUsgT1RJTElKQQorxJBVUklLSU4gSUxJSkEKK8SQVVJJS0lOIFZFUkEKK8SQVVJJTiBJTElKQQorxJBVUklOIEpPU0lQCivEkFVSSU4gTk9WQQorxJBVUklOIE5PVkEKK8SQVVJJTiBTQVZBIERJUEwgSU5HCivEkFVSSU4gU1ZFVExBTkEKK8SQVVJJTiBURU9ET1IKK8SQVVJLScSGIERSQUdJQ0EKK8SQVVJLSU4gTUlMRU5LTworxJBVUktJTiBSQURJxaBLTworxJBVUktJTiBWTEFESU1JUgorxJBVUktPVknEhiDEjEFTTEFWCivEkFVSS09WScSGIMSQRU5BCivEkFVSS09WScSGIEFMRUtTQU5EQVIgRElQTCBJTkcKK8SQVVJLT1ZJxIYgQU5UT04KK8SQVVJLT1ZJxIYgTUFHREFMRU5BCivEkFVSS09WScSGIFBFUklDQQorxJBVUktPVknEhiBSQURFCivEkFVSS09WScSGIFJVxb1JQ0EKK8SQVVJLT1ZJxIYgU1RFVkFOCivEkFVSS09WScSGIFNWRVRPTUlSCivEkFVSS09WScSGIFZMQUpLTworxJBVUktPVlNLSSBQQVZFTAorxJBVUk5JxIYgUkFETUlMQQorxJBVUk5JxIYgVk9KSVNMQVYKK8SQVVJPVknEhiDFvUlWS0EKK8SQVVJPVknEhiBBTEVLU0FOREFSCivEkFVST1ZJxIYgQk/FoEtPCivEkFVST1ZJxIYgQk9KQQorxJBVUk9WScSGIEJPUklTTEFWCivEkFVST1ZJxIYgQk9TSUxKS0EKK8SQVVJPVknEhiBEQU5JTE8KK8SQVVJPVknEhiBEQVJJTktBCivEkFVST1ZJxIYgRFJBR0FOCivEkFVST1ZJxIYgRFJBR0FOCivEkFVST1ZJxIYgRFJBR0FOCivEkFVST1ZJxIYgRFJBR0FOCivEkFVST1ZJxIYgRFJBR0FOCivEkFVST1ZJxIYgRFJBR09MSlVCCivEkFVST1ZJxIYgR09KS08KK8SQVVJPVknEhiBKQVNNSU5LQQorxJBVUk9WScSGIEpPVkFOCivEkFVST1ZJxIYgTEpVQklDQQorxJBVUk9WScSGIE1JTEVOS08KK8SQVVJPVknEhiBNSUxJQ0EKK8SQVVJPVknEhiBNSUxJU0FWCivEkFVST1ZJxIYgTUlMS0EKK8SQVVJPVknEhiBOQURFxb1EQQorxJBVUk9WScSGIE5JS09MQQorxJBVUk9WScSGIE9MR0lDQQorxJBVUk9WScSGIFJBREVOS08KK8SQVVJPVknEhiBSQURFCivEkFVST1ZJxIYgUkFET01JUgorxJBVUk9WScSGIFJBRE9NSVIKK8SQVVJPVknEhiBSQURPU0xBVgorxJBVUk9WScSGIFJBRE9WQU4KK8SQVVJPVknEhiBTT0ZJSkEKK8SQVVJPVknEhiBTVkVUTEFOQQorxJBVUk9WScSGIFNWRVRPTUlSCivEkFVST1ZJxIYgVkFTTworxJBVUk9WScSGIFZFU05BCivEkFVST1ZJxIYgVlVLQcWgSU4KK8SQVVJPVknEhiBWVUtBRElOCivEkFVST1ZJxIYgWk9SS0EKK8SQVVJPVktBIE1BUklKQQorxJBVUk9WS0EgT05EUkVKCivEkFVST1ZLQSBWTEFESVNMQVYKK8SQVVJPVlNLSSBKT1ZJQ0EKK8SQVVNJxIYgTUlPRFJBRworxJBVWkEgU1RFVk8KK0HEjCDFoEFORE9SCitBxIwgRkVSRU5DCitBxIwgRlJBTkpBIERSIFBSSU1BUklKVVMKK0HEjCBHQUJPUgorQcSMIEpPxb1FRiBBS0FERU1TS0kgU0xJS0FSCitBxIwgSk/FvUVGIEJJT0xPRworQcSMIEpPVkFOCitBxIwgS0FUSUNBCitBxIwgTEFKT8WgCitBxIwtTklLT0xJxIYgRVLFvUVCRVQKK0HEjCBPVE8KK0HEjCBQQVZMRQorQcSMIFRJQk9SCitBxIxBSSBJxaBUVkFOCitBxIxBSSBaT0xUQU4KK0HEjEFOQVNLSSBWRVNOQQorQcSMQU5TS0kgxb1JVktPCitBxIxBTlNLSSBBTEJJTkEKK0HEjEFOU0tJIEFMRUtTQU5EQVIKK0HEjEFOU0tJIEJSQU5JU0xBVgorQcSMQU5TS0kgRE9CUklWT0oKK0HEjEFOU0tJIERSQUdJQ0EKK0HEjEFOU0tJIERSQUdPTUlSCitBxIxBTlNLSSBKRUxJU09WCitBxIxBTlNLSSBLT1NBTkEKK0HEjEFOU0tJIExBWkFSCitBxIxBTlNLSSBMQVpBUgorQcSMQU5TS0kgTklLT0xBCitBxIxBTlNLSSBSQURBCitBxIxBTlNLSSBTVEFOQQorQcSMQU5TS0kgU1RBTklTTEFWCitBxIxBTlNLSSBURU9ET1IgRElQTCBJTkcKK0HEjEFOU0tJIFRPRE9SCitBxIxBTlNLSSBWSURPU0FWQQorQcSMQU5TS0kgWkRSQVZLTworQcSMQU5TS0kgWk9SSUNBCitBxaDEhkVSScSGIFNURVZBTgorQcWgxIZFUknEhiBTVEVWQU4KK0HFoMSGRVJJxIYgWk9SQQorQcWgQU5JTiBSQURJVk9KRQorQcWgQU5JTiBaT1JBTgorQcWgSUtVIFZJVEFMSVMgRFIgTEVLQVIKK0HFoEtPVknEhiBTTEFWS08gRElQTCBJTkcKK0HFoEtPVknEhiBUT01JU0xBVgorQcWgS09WScSGIFZPSklTTEFWQQorQcWgT05KQSBORURFTEpLTworQcWgT05KQSBPTEdBCitBxaBUQUxLT1ZTS0kgQUxFS1NBTkRBUgorQcWgVEFMS09WU0tJIEtSSVNUSU5BCitBxIZBTlNLSSDEkE9SxJBFCitBxIZBTlNLSSBMQVpBUgorQcSGScSGIElMSUpBCitBxIZJxIYgTUlSS08KK0HEhknEhiBTVEVWQU4KK0HEhklNT1YgQUxFS1NBTkRBUgorQcSGSU1PViBCT8WgS08KK0HEhklNT1YgRFJBR0lDQQorQcSGSU1PViBMRUxBCitBxIZJTU9WIE1BUktPCitBxIZJTU9WIE1JTEFOCitBxIZJTU9WIE1JUkpBTkEgUFJPRkVTT1IKK0HEhklNT1YgTkVERUxKS08KK0HEhklNT1YgUkFESVZPSgorQcSGSU1PViBSQURPU0xBVkEKK0HEhklNT1ZJxIYgxb1JVktPCitBxIZJTU9WScSGIMW9SVZPSklOCitBxIZJTU9WScSGIMSQT1LEkEUKK0HEhklNT1ZJxIYgxJBPUsSQRQorQcSGSU1PVknEhiDEkFVSxJBJTktBCitBxIZJTU9WScSGIEJPxaBLTworQcSGSU1PVknEhiBCT0dEQU5LQQorQcSGSU1PVknEhiBCT1JLQQorQcSGSU1PVknEhiBCUkFOS08KK0HEhklNT1ZJxIYgQlJBTktPCitBxIZJTU9WScSGIERSQUdBTgorQcSGSU1PVknEhiBEUkFHT0xKVUIKK0HEhklNT1ZJxIYgRFJBR09TTEFWCitBxIZJTU9WScSGIERVxaBBTktBCitBxIZJTU9WScSGIERVxaBBTgorQcSGSU1PVknEhiBEVcWgQU4KK0HEhklNT1ZJxIYgR09KS08KK0HEhklNT1ZJxIYgSUxJSkEKK0HEhklNT1ZJxIYgSk9WQQorQcSGSU1PVknEhiBNSUxBTgorQcSGSU1PVknEhiBNSUxBCitBxIZJTU9WScSGIE1JTElWT0pFIERSCitBxIZJTU9WScSGIE1JTElWT0oKK0HEhklNT1ZJxIYgTUlMT0pJQ0EKK0HEhklNT1ZJxIYgTUlPRFJBRworQcSGSU1PVknEhiBPQlJBRAorQcSGSU1PVknEhiBSQURNSUxBCitBxIZJTU9WScSGIFJBRE9WQU4KK0HEhklNT1ZJxIYgUkFUS08KK0HEhklNT1ZJxIYgU0FWQQorQcSGSU1PVknEhiBTQVZBCitBxIZJTU9WScSGIFNMQVZLTworQcSGSU1PVknEhiBTTE9CT0RBTgorQcSGSU1PVknEhiBUQURJSkEKK0HEhklNT1ZJxIYgVkFTQQorQcSGSU1PVknEhiBWQVNJTElKRQorQcSGSU1QVknEhiBBTEVLU0FOREFSCitBxJBBTlNLSSBCUkFOSVNMQVYKK0HEkEFOU0tJIElWQU5BCitBxJBBTlNLSSBNSUxJVk9KCitBxJBBTlNLSSBOQURBCitBxJBBTlNLSSBTVEVWQU4KK0HEkEnEhiBEUkFHTworQcSQScSGIE9UTworQcSQSU4gQURBTQorQUJBRMW9ScSGIE1BUktPCitBQkFExb1JxIYgUkFETUlMQQorQUJBRMW9ScSGIFNBVk8KK0FCQUTFvUnEhiBTVEFOS08KK0FCQVpBIFZFU05BCitBQkFaSSBJTEpBWgorQUJBWkkgUkFNQURBTgorQUJBWk9WU0tJIFNVTFRBTgorQUJESUpFVknEhiDFoFVLUklKQQorQUJESUpFVknEhiBJU01FVAorQUJSQUhBTSBFVkEKK0FCUkFIQU0gSVJFTkEKK0FCUkFIQU0gUEFWRUwKK0FCUkFNT1ZJxIYgRFXFoEFOS0EKK0FCUkFNT1ZJxIYgTElWSUpBCitBQlJBTU9WScSGIE1JTE9SQUQKK0FCUkFNT1ZJxIYgTUlSSkFOQQorQUJSQU1PVknEhiBOQURBCitBQlJBTU9WScSGIFNUQU5BCitBQlJBTU9WScSGIFZBTEVSSUpBCitBQlJMScSGIE5BREEKK0FCVCBMQVNMTworQUJVLUFCRUQgTVVIQU1FRAorQUNJR0FOIEpPVkFOS0EKK0FDSU4tUEVUUk9WScSGIElWQU5LQQorQUNLRVRBIERSQUdBTgorQUNLRVRBIE1JUkpBTkEKK0FDS0VUQSBUSUhPTUlSCitBQ0tPVknEhiBNQVJBCitBRMW9QUlQIE1JTE9SQUQKK0FExb1BSVAgTUlSSkFOQQorQUTFvUVNT1ZJxIYgQUxFS1NBTkRBUgorQUTFvUVNT1ZJxIYgR1JVSk8KK0FExb1JxIYgxb1BUktPCitBRMW9ScSGIEJPxaBLTworQUTFvUnEhiBCUkFOS08KK0FExb1JxIYgREVTQU5LQQorQUTFvUnEhiBEUkFHT0xKVUIKK0FExb1JxIYgRFXFoElDQQorQUTFvUnEhiBHT1JBTgorQUTFvUnEhiBJTElKQQorQUTFvUnEhiBKT1ZBTktBCitBRMW9ScSGIEpPVkFOCitBRMW9ScSGIExKVUJPRFJBRworQUTFvUnEhiBNSUxBTgorQUTFvUnEhiBNSUxFTgorQUTFvUnEhiBNSUxJU0FWCitBRMW9ScSGIE1JTElWT0pFCitBRMW9ScSGIE1JTE9SQUQKK0FExb1JxIYgTkVERUxKS08KK0FExb1JxIYgUEVSTworQUTFvUnEhiBSQURJU0FWCitBRMW9ScSGIFJBRE9OSkEKK0FExb1JxIYgUkFOS08KK0FExb1JxIYgUkFUS08KK0FExb1JxIYgU0xPQk9EQU4KK0FExb1JxIYgVkxBRE8KK0FExb1JxIYgWk9SQU4KK0FExb1JQkFCQSBNSUxJQ0EKK0FExb1JQkFCQSBOSUtPTEEKK0FEQU0gxaBBUkxPVEEKK0FEQU0gxJBVUkEKK0FEQU0gREVORcWgCitBREFNIElSTUEKK0FEQU0gSk/FvUVGCitBREFNIEpPU0lQCitBREFNIEtSVU5JQ0EgRFIKK0FEQU0gTEFESVNMQVYKK0FEQU0gTEFESVNMQVYKK0FEQU0gTEFTTE8KK0FEQU0gT0xHSUNBCitBREFNIFRJQk9SIE5PVklOQVIKK0FEQU1PViDEkE9SxJBFCitBREFNT1YgQk/FvUlEQVIKK0FEQU1PViBEUkFHQU4KK0FEQU1PViBEVcWgQU4KK0FEQU1PViBJVkFOCitBREFNT1YgSk9WQU4KK0FEQU1PViBKVUxJQU5BCitBREFNT1YgSlVMS0EKK0FEQU1PViBKVUxLQQorQURBTU9WIEtBVEFSSU5BCitBREFNT1YgTEpVQkEKK0FEQU1PViBNQVJJSkEKK0FEQU1PViBNSVJPU0xBVkEKK0FEQU1PViBSQURPVkFOCitBREFNT1YgVElDQQorQURBTU9WIFZJVE9NSVIKK0FEQU1PVknEhiDEkFVSQQorQURBTU9WScSGIEJPxaBLTworQURBTU9WScSGIERSQUdBCitBREFNT1ZJxIYgRFJBR09MSlVCCitBREFNT1ZJxIYgRFJBR09MSlVCCitBREFNT1ZJxIYgRFJBR1VUSU4KK0FEQU1PVknEhiBEVcWgQU4KK0FEQU1PVknEhiBEVcWgQU4KK0FEQU1PVknEhiBEVcWgQU4KK0FEQU1PVknEhiBEVcWgQU4KK0FEQU1PVknEhiBHT0pLTworQURBTU9WScSGIEdPSktPCitBREFNT1ZJxIYgR09SQU4KK0FEQU1PVknEhiBJTE9OQQorQURBTU9WScSGIElWQU4KK0FEQU1PVknEhiBKRUxBCitBREFNT1ZJxIYgSkVMRU5BCitBREFNT1ZJxIYgSk9WQU5LQQorQURBTU9WScSGIEpPVkFOCitBREFNT1ZJxIYgS0FUQQorQURBTU9WScSGIExBWkFSCitBREFNT1ZJxIYgTEFaQVIKK0FEQU1PVknEhiBMSklMSkFOQQorQURBTU9WScSGIExKVUJPTUlSCitBREFNT1ZJxIYgTUFSQQorQURBTU9WScSGIE1BUkEKK0FEQU1PVknEhiBNQVJBCitBREFNT1ZJxIYgTUFSSU5LTworQURBTU9WScSGIE1JTEVOQQorQURBTU9WScSGIE1JTElDQQorQURBTU9WScSGIE1JTEtBTgorQURBTU9WScSGIE1JUktPCitBREFNT1ZJxIYgTUlSS08KK0FEQU1PVknEhiBNT03EjElMTworQURBTU9WScSGIE1PTcSMSUxPCitBREFNT1ZJxIYgTU9NxIxJTE8KK0FEQU1PVknEhiBSQURNSUxBCitBREFNT1ZJxIYgUkFET1NBVgorQURBTU9WScSGIFNMQVZLTworQURBTU9WScSGIFNPTkpBCitBREFNT1ZJxIYgU1RPSkFOS0EKK0FEQU1PVknEhiBTVkVUT1pBUgorQURBTU9WScSGIFRPTUlTTEFWCitBREFNT1ZJxIYgVE9NSVNMQVYKK0FEQU1PVknEhiBWTEFESU1JUgorQURFTUkgR09SREFOQQorQURFTUkgSU1FUgorQURFTU9WIEtFTUFMCitBREVNT1ZJxIYgSlVTVUYKK0FERU1PVknEhiBPU01BTgorQURMRcWgScSGIExKVUJJQ0EKK0FETkHEkEVWScSGIFNWRVRPWkFSCitBRE9SIEpPVkFOCitBR0FSU0tJIEpBTiBEUgorQUdBVEnEhiBNQVRFCitBR0FUScSGIE1JUktPCitBR0FUScSGIFZFTElNSVIKK0FHQkFCQSBCUkFOS0EKK0FHQkFCQSBEQU5FCitBR0JBQkEgREFOSUNBCitBR0JBQkEgREFOSUxPCitBR0JBQkEgRFXFoEFOCitBR0JBQkEgSk9WQU4KK0FHQkFCQSBORURFTEpLQQorQUdCQUJBIE5FREVMSktPCitBR0JBQkEgTklLT0xBIERSCitBR0JBQkEgTklLT0xBCitBR0JBQkEgVklEQQorQUdJxIYgTUFSS08KK0FHScSGIE5BREEKK0FHScSGIE5JS09MQUoKK0FHScSGIE5JS09MQQorQUdJxIYgU0xPQk9EQU4gRElQTCBPRUMKK0FHScSGIFNSQklTTEFWCitBR0nEhiBWTEFESU1JUgorQUdPIE1BUktPCitBR08gWk9SSUNBCitBR0/EjCBEVcWgQU4KK0FHT8WgVE9OIEJFTEEKK0FHT8WgVE9OIEZFUkVOQworQUdPxaBUT04gS0FST0xKCitBR0/FoFRPTiBMQVNMTworQUdPxaBUT04gTUlIQUxKCitBR0/FoFRPTiBWRVJBCitBR1JBTU9WScSGIERFU0FOS0EKK0FHUkFNT1ZJxIYgUkFERQorQUdVxaBFVknEhiBTTE9CT0RBTktBCitBR1VDScSGIE9MR0lDQQorQUhNRUQgRUxFWgorQUhNRVRPViDFoFVLUkkKK0FITUVUT1ZJxIYgS0FSTE8KK0FITUVUT1ZJxIYgU09GSUpBCitBSE1FVE9WScSGIFpMQVRLTworQUlSQUxESSBCT8W9SURBUgorQUogQlJBTklTTEFWCitBSiBWRVNOQQorQUpBTk9WScSGIFNBTEtPCitBSkNFViBEVcWgQU4KK0FKRMW9QU5PVknEhiBBTkFTVEFTSUpBIERSIExFS0FSCitBSkRBUknEhiBSQURPU0xBVgorQUpERVIgxb1FTEpLTworQUpERVIgQk/FoEtPCitBSkRFUiBEQU5JQ0EKK0FKREnEhiDEkE9SxJBFCitBSkRJTkkgU0FCUklKQQorQUpESU5PVknEhiBOSUtPTEEKK0FKRFVLIEpPU0lNCitBSkRVSyBNQVJLTworQUpEVUsgTUlMSUNBCitBSkRVSyBUT8WgQQorQUpEVUtPVknEhiBHT0pLTworQUpEVUtPVknEhiBMSklMSkFOQQorQUpEVUtPVknEhiBNSUxBTgorQUpEVUtPVknEhiBTT0ZJSkEKK0FKR0VOTUFIVCBNQVJJTkEKK0FKS1VOScSGIEFESUwKK0FKS1VOScSGIE5FWklSCitBSlJBTk9WScSGIEpVU1VGCitBSlRJxIYgU1ZFVElTTEFWCitBSlRMQkVaIE1JSkFUCitBSlRMQkVaIE1JSkFUCitBSlZBWk9WScSGIEHEhklGCitBSlZBWk9WScSGIEFTTEFOCitBSlZBWk9WScSGIEVTTUEKK0FKVkFaT1ZJxIYgRkFJRAorQUpWSUxFUiBTVEVWQU4KK0FKWkVOQkVSR0VSIEJFTEEKK0FLxaBBTU9WScSGIFBMQVbFoEEKK0FLSUsgRFJBR0lDQQorQUtJSyBEVcWgQU4KK0FLSU4gRFJBR0EKK0FLSU4gU09GSUpBCitBS09OxIxJxIYgWk9SQU4KK0FLUkFQIEZJTElQIFBST0YKK0FLUkFQT1ZJxIYgTUlST1NMQVYKK0FLU0VOVElKRVZJxIYgSk9WQU4KK0FLU0VOVElKRVZJxIYgTklLT0xBIFNVRElKQQorQUtTRU5USUpFVknEhiBTVE9KQURJTgorQUtTSU4gQlJBTklTTEFWCitBS1NJTiBNSUxPVkFOCitBS1NJTiBWTEFESU1JUiBEUiBJTkcKK0FMQcSQSSDFoEFORE9SCitBTEFCQcWgT1ZTS0kgR1JVSkEKK0FMQUJBxaBPVlNLSSBJQlJBSElNCitBTEFCVVJJxIYgUEFWTEUKK0FMQUJVUknEhiBURU9ET1IgRElQTCBJTkcKK0FMQUTFvUnEhiDEkE9SxJBPCitBTEFEScSGIEFMRUtTQU5EQVIKK0FMQURJxIYgQUxFS1NBTkRBUgorQUxBREnEhiBCUkFOSVNMQVZBCitBTEFEScSGIElEQQorQUxBREnEhiBTVEVWQU4KK0FMQUdJxIYgRFXFoEFOCitBTEFHScSGIE1VSk8KK0FMQUdJxIYgTkFEQQorQUxBR0nEhiBSQURPU0xBVgorQUxBR0nEhiBWRVJBCitBTEFJQ0EgUkFET0pLQQorQUxBSklDQSBCUkFOS08KK0FMQUpJQ0EgSk9WTworQUxBTiBWRVJBCitBTEFOT1YgUlXFvUlDQQorQUxBUkdJxIYgSkVMRU5BCitBTEFSR0nEhiBNSUxJQ0EKK0FMQVJHScSGIFBFVEFSCitBTEFSR0nEhiBSQURFCitBTEFSR0nEhiBSQU5LQQorQUxBUkdJxIYgVElNQQorQUxBU09WIERSQUdPU0xBVgorQUxBU09WIExBWkFSIERJUEwgSU5HCitBTEFWQU5KQSBNSVJKQU5BCitBTEJJSkFOScSGIEJPUk8KK0FMQklKQU5JxIYgRFJBR1VUSU4KK0FMQk9UIElMSUpBCitBTEJSRUhUIEpBTk/FoAorQUxCUkVIVCBNQVJJSkEKK0FMQlJFSFQgTUFSSUpBCitBTEJVTEogRElWTkEKK0FMQlVMSiBHT1JEQU5BCitBTEJVTEogVkVTRUxJTgorQUxCVUxKIFZPSklTTEFWS0EKK0FMRUtTQU5ERVIgQU5BCitBTEVLU0FOREVSIFJVRE9MRgorQUxFS1NBTkRSScSGIE1JTEVTQSBEUgorQUxFS1NBTkRST1YgU0xBVsSMQQorQUxFS1NBTkRST1ZJxIYgRFJBR0FOCitBTEVLU0FORFJPVknEhiBEVcWgQU4KK0FMRUtTSSBTVEVWQU4KK0FMRUtTScSGIMSMQVNMQVYKK0FMRUtTScSGIMSMRURPTUlSCitBTEVLU0nEhiDFvUlWT01JUgorQUxFS1NJxIYgxJBPUsSQRQorQUxFS1NJxIYgxJBVUkEKK0FMRUtTScSGIEFDQQorQUxFS1NJxIYgQURBTQorQUxFS1NJxIYgQVJTQQorQUxFS1NJxIYgQklTRVJLQQorQUxFS1NJxIYgQk/FvUlEQVIKK0FMRUtTScSGIEJPxb1JREFSCitBTEVLU0nEhiBCT0dEQU4KK0FMRUtTScSGIEJSQU5JU0xBVgorQUxFS1NJxIYgQlJBTktPCitBTEVLU0nEhiBCUkFOS08KK0FMRUtTScSGIEJSQU5LTworQUxFS1NJxIYgQlVESU1JUgorQUxFS1NJxIYgREFOSUNBCitBTEVLU0nEhiBEQVJJTktBCitBTEVLU0nEhiBEUkFHQU4KK0FMRUtTScSGIERSQUdBCitBTEVLU0nEhiBEUkFHT0xKVUIKK0FMRUtTScSGIERSQUdPTUlSCitBTEVLU0nEhiBEUkFHT1NMQVYgRFIKK0FMRUtTScSGIERVxaBBTgorQUxFS1NJxIYgRFXFoEFOCitBTEVLU0nEhiBFVklDQQorQUxFS1NJxIYgR09KS08KK0FMRUtTScSGIEdPUkFOCitBTEVLU0nEhiBHT1JEQU5BCitBTEVLU0nEhi1HUklTRVIgTklLT0xBCitBTEVLU0nEhiBJTElOS0EKK0FMRUtTScSGIElWQU4KK0FMRUtTScSGIEpFTEVOQQorQUxFS1NJxIYgSkVMSUNBCitBTEVLU0nEhiBKRUxJQ0EKK0FMRUtTScSGIEpPU0lQCitBTEVLU0nEhiBKT1ZBTgorQUxFS1NJxIYgSk9WTworQUxFS1NJxIYgS0FUQQorQUxFS1NJxIYgS0FUSUNBCitBTEVLU0nEhiBLQVRJQ0EKK0FMRUtTScSGIEtPU0EKK0FMRUtTScSGIEtPU1RBCitBTEVLU0nEhiBLT1NUQQorQUxFS1NJxIYgTEVQT1NBVkEKK0FMRUtTScSGIExFUE9TQVZBCitBTEVLU0nEhiBMSklMSkFOQQorQUxFS1NJxIYgTEpJTEpBTkEKK0FMRUtTScSGIExKVUJJxaBBCitBTEVLU0nEhiBMSlVUT01JUgorQUxFS1NJxIYgTUFSSU4KK0FMRUtTScSGIE1JTEFOS0EKK0FMRUtTScSGIE1JTEFOCitBTEVLU0nEhiBNSUxBTgorQUxFS1NJxIYgTUlMQU4KK0FMRUtTScSGIE1JTEVOQQorQUxFS1NJxIYgTUlMSU5LQQorQUxFS1NJxIYgTUlMSVZPSgorQUxFS1NJxIYgTUlMSVZPSgorQUxFS1NJxIYgTUlMT8WgCitBTEVLU0nEhiBNSUxPxaAKK0FMRUtTScSGIE1JTE/FoAorQUxFS1NJxIYgTUlMT0pFCitBTEVLU0nEhiBNSUxPUkFECitBTEVLU0nEhiBNSUxPVkFOCitBTEVLU0nEhiBNSU9EUkFHCitBTEVLU0nEhiBNSU9EUkFHCitBTEVLU0nEhiBNSU9EUkFHCitBTEVLU0nEhiBNSVJKQU5BCitBTEVLU0nEhiBNSVJLTworQUxFS1NJxIYgTUlST1NMQVYKK0FMRUtTScSGIE1PTcSMSUxPCitBTEVLU0nEhiBNT03EjElMTworQUxFS1NJxIYgTU9NSVIKK0FMRUtTScSGIE5BREEKK0FMRUtTScSGIE5BVEFMSUpBCitBTEVLU0nEhiBORUJPSsWgQQorQUxFS1NJxIYgTklLT0xBCitBTEVLU0nEhiBOSUtPTEEKK0FMRUtTScSGIFBBVUxJTkEKK0FMRUtTScSGIFBBVkxFCitBTEVLU0nEhiBQRVRBUgorQUxFS1NJxIYgUEVUQVIKK0FMRUtTScSGIFBFVEFSCitBTEVLU0nEhiBQUkVEUkFHCitBTEVLU0nEhiBSQURFCitBTEVLU0nEhiBSQURNSUxBCitBTEVLU0nEhiBSQURPTUlSCitBTEVLU0nEhiBSQUpLTworQUxFS1NJxIYgUkFUS08KK0FMRUtTScSGIFJBVEtPCitBTEVLU0nEhiBSSVNUTworQUxFS1NJxIYgU0FWTworQUxFS1NJxIYgU0xBVk5BCitBTEVLU0nEhiBTTUlMSkEKK0FMRUtTScSGIFNURVZBTgorQUxFS1NJxIYgU1RFVkFOCitBTEVLU0nEhiBWQVNBCitBTEVLU0nEhiBWRVJBCitBTEVLU0nEhiBWRVJBCitBTEVLU0nEhiBWRVNOQQorQUxFS1NJxIYgVklUT01JUgorQUxFS1NJxIYgVkxBU1RJTUlSCitBTEVLU0nEhiBWT0pJU0xBVgorQUxFS1NJxIYgWkRSQVZFTktBCitBTEVLU0nEhiBaRFJBVktPCitBTEVLU0nEhiBaTEFUSUJPUgorQUxFS1NJxIYgWk9SQU4KK0FMRUtTSUpFVknEhiBCT0dEQU4KK0FMRUtTSUpFVknEhiBCT1JBCitBTEVLU0lKRVZJxIYgSVNJRE9SCitBTEVLU0lKRVZJxIYgSk9WQU4KK0FMRUtTSUpFVknEhiBNQVJJSkEKK0FMRUtTT1YgR0VPUkdJCitBTEVLU09WIE1JTFVUSU4KK0FMRUtTT1YgU0lNRU9OCitBTEVLU09WIFpPUkFOCitBTEVLU09WU0tJIE1JTEUKK0FMRUtTT1ZTS0kgU1JCT0xKVUIKK0FMRU1QScSGIFNBVk8KK0FMRU1QSUpFVknEhiBaT1JBTgorQUxFTVBJSkVWScSGIFpPUkFOCitBTEVOREVSIMWgRUZJSworQUxJIEpVTElTVEFOCitBTEnFoEnEhiBCRVNJTQorQUxJxaBJxIYgTklKQVoKK0FMScWgScSGIFJFRMW9RVAKK0FMScWgScSGIFZBU1ZJSkEKK0FMScSQVUtJxIYgSUxJSkEKK0FMSUJBxaBJxIYgSEFNSUQKK0FMSUpBIEFCRElSQUhNQU4KK0FMSUpBIElaRVQKK0FMSUpFVknEhiBORVpJUgorQUxJSkVWScSGIFNBRFJJSkEKK0FMSUxPVknEhiBWSU5LTworQUxJTVBJxIYgxb1JVktPCitBTElNUEnEhiBBTEVLU0FOREFSCitBTElNUEnEhiBCQVJCQVJBCitBTElNUEnEhiBCT0dPTUlSCitBTElNUEnEhiBCT1JJVk9KRQorQUxJTVBJxIYgRFJBR0FOCitBTElNUEnEhiBEUkFHSUNBCitBTElNUEnEhiBKRUxBCitBTElNUEnEhiBKT1ZBTgorQUxJTVBJxIYgTEpVQklDQQorQUxJTVBJxIYgTU9NxIxJTE8KK0FMSU1QScSGIFNMQVZLQQorQUxJTVBJxIYgU0xBVktPCitBTElNUEnEhiBTVEVWQU4KK0FMSU1QScSGIFRJSE9NSVIKK0FMSU1QScSGIFRPTUlTTEFWCitBTElNUEnEhiBWT0pJU0xBVgorQUxJTVBJSkVWScSGIMSQT1LEkEUKK0FMSU1QSUpFVknEhiBESU1JVFJJSkUKK0FMSU1QSUpFVknEhiBKT1ZBTgorQUxJTVBJSkVWScSGIEpPVkFOCitBTElNUElKRVZJxIYgVkVTRUxJTktBCitBTElPViBIVVNFSU4KK0FMSU9WIE9NRVIKK0FMSkkgQUpSQURJTgorQUxKSSBNQUtTVVQKK0FMSknEhiBLQVRBUklOQQorQUxKScSGIFJBTU8KK0FMSklKVVBJIMSMRVJJTQorQUxLScSGIFNURVZBTgorQUxLScSGIFZMQURJTUlSCitBTE1BxaBJIEVURUwKK0FMTUHFoEkgTUFSScWgS0EKK0FMTUHFoEkgTUFUSUpBCitBTE1BxaBJIFNBTVVFTAorQUxNQcW9QU4gU0xBVktPIE5PVklOQVIKK0FMT1JJxIYgRFJBR09NSVJLQQorQUxPUknEhiBJTElKQQorQUxURVJPViBBTkEKK0FMVEtPUk4gTUFMVklOQQorQUxWQUTFvUlOIERSQUdVVElOCitBTFZJUk9WScSGIERSQUdPUkFECitBTFZJUk9WScSGIE1JT0RSQUcKK0FNQU1PVknEhiBEVcWgQU4KK0FNQU1PVknEhiBNSUxFVkEKK0FNQkFSRMW9SUpFViBIUklTVE8KK0FNQk8gSUxJSkEKK0FNQlJPWknEhiBSQVNUS08KK0FNQlJVxaAgQVRJTEEKK0FNQlJVxaBJxIYgTUFHREEKK0FNQlJVU09WIEpPVkFOCitBTUVUT1YgT1NNQU4KK0FNRVRPVknEhiDEkE9SxJBFCitBTUVUT1ZJxIYgxJBPUsSQTworQU1FVE9WScSGIMSQVVJPCitBTUVUT1ZJxIYgQlVESU1JUgorQU1FVE9WScSGIEpFTEVOQQorQU1FVE9WScSGIEpPVkFOCitBTUVUT1ZJxIYgS0FUSUNBCitBTUVUT1ZJxIYgTEFaQVIKK0FNRVRPVknEhiBMQVpBUgorQU1FVE9WScSGIE1BUktPCitBTUVUT1ZJxIYgTUlMQURJTgorQU1FVE9WScSGIE1JTE9SQUQKK0FNRVRPVknEhiBNSVJLTworQU1FVE9WScSGIE1PTcSMSUxPCitBTUVUT1ZJxIYgUkFKS08KK0FNRVRPVknEhiBSQVRLTworQU1FVE9WScSGIFJVU01JUkEKK0FNRVRPVknEhiBTT0ZJSkEKK0FNRVRPVknEhiBWT0pJTgorQU1Jxb1JxIYgREFOSUNBCitBTUnFvUnEhiBNSVJPU0xBVgorQU1Jxb1JxIYgVEVPRE9SQQorQU7EjEnEhiBBTEVLU0FORFJBCitBTsSMScSGIE1JTEFOCitBTsSMScSGIE5FVkVOS0EgRFIKK0FOxJBFTEnEhiBBTsSQRUxLTworQU7EkEVMScSGIEFORFJJSkEKK0FOxJBFTEnEhiBBTklDQQorQU7EkEVMScSGIEJJTEpBTkEKK0FOxJBFTEnEhiBCTEFHScWgQQorQU7EkEVMScSGIEJPxb1JREFSIERSCitBTsSQRUxJxIYgQk9SSVZPSkUKK0FOxJBFTEnEhiBCT1JJVk9KRQorQU7EkEVMScSGIEJSQU5JU0xBVgorQU7EkEVMScSGIERBUklOS0EKK0FOxJBFTEnEhiBEUkFHSUNBCitBTsSQRUxJxIYgRFJBR09NSVIKK0FOxJBFTEnEhiBEVcWgQU5LQQorQU7EkEVMScSGIEdPUkFOCitBTsSQRUxJxIYgSUxJSkEKK0FOxJBFTEnEhiBJTElKQQorQU7EkEVMScSGIE1JTEVOS08KK0FOxJBFTEnEhiBNSUxJVk9KRQorQU7EkEVMScSGIE1JTE9SQUQKK0FOxJBFTEnEhiBNSUxPUkFECitBTsSQRUxJxIYgTUlSSkFOQQorQU7EkEVMScSGIE1JUkpBTkEKK0FOxJBFTEnEhiBNSVRBUgorQU7EkEVMScSGIE5JS09MQQorQU7EkEVMScSGIFJBRE1JTEEKK0FOxJBFTEnEhiBSQURPSklDQQorQU7EkEVMScSGIFJBRE9TTEFWCitBTsSQRUxJxIYgU0FWQQorQU7EkEVMScSGIFNMT0JPREFOIERSIExFS0FSCitBTsSQRUxJxIYgU0xPQk9EQU4KK0FOxJBFTEnEhiBTTE9CT0RBTgorQU7EkEVMScSGIFNURVZBTgorQU7EkEVMScSGIFZBU0EKK0FOxJBFTEnEhiBWQVNPCitBTsSQRUxJxIYgVkVMSktPCitBTsSQRUxJxIYgVkVTRUxJTgorQU7EkEVMScSGIFZFU05BCitBTsSQRUxJxIYgVkxBREEKK0FOxJBFTEnEhiBWT0pJU0xBVgorQU7EkEVMS09WScSGIEFOxJBFTEtPCitBTsSQRUxLT1ZJxIYgQk/FvUlEQVIKK0FOxJBFTEtPVknEhiBEUkFHT01JUgorQU7EkEVMS09WScSGLURVREnEhiBaTEFUQQorQU7EkEVMS09WScSGIEpFTElDQQorQU7EkEVMS09WScSGIEpPVkFOCitBTsSQRUxLT1ZJxIYgTElESUpBCitBTsSQRUxLT1ZJxIYgTEpVQknFoEEKK0FOxJBFTEtPVknEhiBNSUxBTgorQU7EkEVMS09WScSGIE1JTE/FoAorQU7EkEVMS09WScSGIE1JTE9SQUQKK0FOxJBFTEtPVknEhiBNSVJPU0xBVgorQU7EkEVMS09WScSGIE1JUk9TTEFWCitBTsSQRUxLT1ZJxIYgTkFUQcWgQQorQU7EkEVMS09WScSGIFBFVEFSCitBTsSQRUxLT1ZJxIYgUFJFRFJBRworQU7EkEVMS09WScSGIFJBRE9NSVIKK0FOxJBFTEtPVknEhiBST0JFUlQKK0FOxJBFTEtPVknEhiBTSU1BCitBTsSQRUxLT1ZJxIYgU0xPQk9EQU4KK0FOxJBFTEtPVknEhiBTVEFOSU1JUgorQU7EkEVMS09WScSGIFNUQU5LTworQU7EkEVMS09WScSGIFNURVZBTgorQU7EkEVMS09WScSGIFNUT0pBTgorQU7EkEVMS09WScSGIFNWRVRJU0xBVgorQU7EkEVMS09WScSGIFNWRVRJU0xBVgorQU7EkEVMS09WScSGIFNWRVRPTUlSCitBTsSQRUxLT1ZJxIYgVkFMRVJJSkEKK0FOxJBFTEtPVknEhiBWRVJBCitBTsSQRUxLT1ZJxIYgVklOS08KK0FOxJBFTEtPVknEhiBWSU5LTworQU7EkEVMS09WScSGIFZJTktPCitBTsSQRUxLT1ZJxIYgVlVLQURJTgorQU7EkEVMS09WScSGIFpPUkFOCitBTsSQRUxLT1ZJxIYgWk9SQU4KK0FOxJBFTEtPVknEhiBaT1JBCitBTsSQRUxPVknEhiBMSlVCScWgQQorQU7EkEVMT1ZJxIYgVkVSSUNBCitBTsSQRUxPVlNLSSDEkE9SxJBFCitBTsSQScSGIFNURVZBTgorQU7EkFXFoEnEhiDFvUFSS08KK0FOxJBVxaBJxIYgSkVMSVNBVktBCitBTsSQVcWgScSGIE1JTE9SQUQKK0FOxJBVxaBJxIYgU0xPQk9EQU4KK0FOQVNUQVNJSkVWScSGIERVxaBBTgorQU5BU1RBU0lKRVZJxIYgSlVMS0lDQQorQU5BU1RBU0lKRVZJxIYgWk9SSUNBCitBTkFTVEFTSUpFVknEhiBaT1JJQ0EKK0FOQVNUQVNPViBNQVJLTworQU5BU1RBU09WIE5JS09MQQorQU5BU1RBU09WU0tJIEFMRUtTQU5EQVIKK0FOQVUgR0FCUklFTEEKK0FOQVUgU1RFVkFOCitBTkRBQkFLIE1BUktPCitBTkRBQkFLQSBBTlRFCitBTkRBQkFLQSBTTEFWSUNBCitBTkRFUiBJTVJFCitBTkRFUkxPTiBTVEVWSUNBCitBTkRFU0VMScSGIMWgVEVGSUNBCitBTkRFVlNLSSBSQURFCitBTkRJxIYgU1ZFVE9aQVIKK0FOREnEhiBWTEFESU1JUgorQU5ET05JQURJUyBNSUxJQ0EKK0FORE9OT1YgRElNSVRSSUpFCitBTkRPTk9WIE5FTkFECitBTkRPTk9WIFpPUklDQQorQU5ET05PVknEhiBESU1JVFJJSkUKK0FORFJBxaBJSyBQQVZFTAorQU5EUkVBVEEgU0xBVktPCitBTkRSRUnEhiBSQURPVkFOCitBTkRSRUpFViBIRUxFTkEKK0FORFJFSkVWIE1JSEFKTE8KK0FORFJFSkVWScSGIEJPR09TQVYKK0FORFJFSkVWScSGIEJPUklWT0pFCitBTkRSRUpFVknEhiBHUkFESU1JUgorQU5EUkVKRVZJxIYgSVZBTgorQU5EUkVKRVZJxIYgTUFSS08KK0FORFJFSkVWScSGIE1JTEFOCitBTkRSRUpFVknEhiBNSVJPU0xBVgorQU5EUkVKRVZJxIYgU0xPQk9EQU4KK0FORFJFSkVWScSGIFRFT0RPUgorQU5EUkVKRVZJxIYgVlVLQcWgSU4gRElQTCBJTkcKK0FORFJFSknEhiDFvUFSS08KK0FORFJFSknEhiBCT1JJU0xBVgorQU5EUkVKScSGIERSQUdBTgorQU5EUkVKScSGIFJBRE9TTEFWCitBTkRSRUpJxIYgU0xBVk9MSlVCCitBTkRSRUpJxIYgU1JFVEVOCitBTkRSRUpJxIYgVkVSQQorQU5EUkVKScSGIFpPUkFOCitBTkRSRUpJxIYgWk9SSUNBCitBTkRSRVMgQU7EkEVMS08KK0FORFJJxIxFSyBBTkEKK0FORFJJxIxFSyBMQUpPxaAKK0FORFJJxIxFSyBNQUdEQUxFTkEKK0FORFJJxIxFSyBQQVZBTworQU5EUknEjEVLIFBBVkxFCitBTkRSScSGIMW9RUxKS0EKK0FORFJJxIYgxb1JS0EKK0FORFJJxIYgxb1JVkFOCitBTkRSScSGIMSQT1LEkEUKK0FORFJJxIYgxJBVUsSQSU5BCitBTkRSScSGIEFMRUtTQU5EQVIKK0FORFJJxIYgQk9HT0xKVUIKK0FORFJJxIYgQk9KQU4KK0FORFJJxIYgQk9TSUxKS0EKK0FORFJJxIYgQlJBTklNSVIKK0FORFJJxIYgQlJBTklTTEFWCitBTkRSScSGIERBUklOS0EKK0FORFJJxIYgRE9TVEEKK0FORFJJxIYgRFJBR0FOCitBTkRSScSGIERSQUdPTEpVQgorQU5EUknEhiBEVcWgQU4KK0FORFJJxIYgRFXFoEFOCitBTkRSScSGIERVxaBBTgorQU5EUknEhiBEVcWgQU4KK0FORFJJxIYgRFXFoEFOCitBTkRSScSGIEZSSURBCitBTkRSScSGIElMSUpBCitBTkRSScSGIEpFTEVOQQorQU5EUknEhiBKRUxJU0FWRVRBCitBTkRSScSGIEpPVklDQQorQU5EUknEhi1LT1ZBxIxFVknEhiBPTElWRVJBCitBTkRSScSGIExBWkFSCitBTkRSScSGIExBWkEKK0FORFJJxIYgTEpJTEpBTkEKK0FORFJJxIYgTEpJTEpBTkEKK0FORFJJxIYgTFVETUlMQQorQU5EUknEhiBNSUxFCitBTkRSScSGIE1JTE/FoAorQU5EUknEhiBNSUxPxaAKK0FORFJJxIYgTkVCT0rFoEEKK0FORFJJxIYgTkVTVE9SCitBTkRSScSGIE5JS09MQQorQU5EUknEhiBQRVJJQ0EKK0FORFJJxIYgUEVUQVIKK0FORFJJxIYgUkFESVNBVgorQU5EUknEhiBSQURJU0xBVgorQU5EUknEhiBTQVZBCitBTkRSScSGIFNJTUEKK0FORFJJxIYgU0xBVktBCitBTkRSScSGIFNMQVZLQQorQU5EUknEhiBTTEFWT0xKVUIKK0FORFJJxIYgU0xPQk9EQU4KK0FORFJJxIYgU1RFVkFOCitBTkRSScSGIFNURVZBTgorQU5EUknEhiBUT0RPUgorQU5EUknEhiBUT01JU0xBVgorQU5EUknEhiBWRVJJQ0EKK0FORFJJxIYgVkxBREEKK0FORFJJxIYgVkxBRElNSVJBCitBTkRSScSGIFZVS09NQU4KK0FORFJJxIYgWk9SQQorQU5EUklHQSBBTEVLU0FOREFSCitBTkRSSUpBxaBFViBLT1NBTkEKK0FORFJJSkHFoEVWIFJVxb1JQ0EKK0FORFJJSkHFoEVWScSGIMW9RUxKS08KK0FORFJJSkHFoEVWScSGIEFOS0EKK0FORFJJSkHFoEVWScSGIEJSQU5LTworQU5EUklKQcWgRVZJxIYgSkVMRU5BCitBTkRSSUpBxaBFVknEhiBSQURPVkFOCitBTkRSSUpFVknEhiDFvUlWQQorQU5EUklKRVZJxIYgSk9WQU4KK0FORFJJTiBBTsSQRUxLQQorQU5EUklOIElTSURPUgorQU5EUklOIEtBVElDQQorQU5EUklOIE1JTEFESU5LQQorQU5EUklOIE5BREEKK0FORFJPQ0tJIFBBTCBESVBMIElORworQU5EVUxBSkVWScSGIFNURVZPCitBTkdFQlJBTlQgSUxPTktBCitBTkdFTEVTS0kgVkFOR0VMCitBTkdFTE9WIERVxaBBTgorQU5HRUxPViBTUkXEhktPCitBTkdFTE9WU0tJIERVxaBBTgorQU5HRUxPVlNLSSBJTElKQQorQU5HRUxPVlNLSSBKQU5EUkUKK0FOR0VMT1ZTS0kgTUlUUkUKK0FOR0VMT1ZTS0kgVE9NTworQU5JxIxJxIYgxb1JVk9UQQorQU5JxIxJxIYgQlJBTklTTEFWCitBTknEjEnEhiBEUkFHQU4KK0FOScSMScSGIERVxaBBTiBESVBMIE9FQworQU5JxIxJxIYgRklMSVAKK0FOScSMScSGIElMSUpBCitBTknEjEnEhiBLT1ZJTktBCitBTknEjEnEhiBNSUxFTkEgRElQTCBFQ0MKK0FOScSMScSGIE1JUktPCitBTknEjEnEhiBNSVJPCitBTknEjEnEhiBNSVJPCitBTknEjEnEhiBORU5BRAorQU5JxIxJxIYgT1NUT0pBCitBTknEjEnEhiBQUkVEUkFHCitBTknEjEnEhiBTVEFLQQorQU5JxIxJxIYgU1RPSkFOS0EKK0FOScSMScSGIFRPRE9SCitBTknEjEnEhiBaRFJBVktPCitBTknEjElOIMW9QVJLTworQU5JxIxJTiBCUkFOSVNMQVYKK0FOScWgScSGIEpBU01JTktBCitBTknEhiBEVcWgQU4KK0FOScSGIFNMT0JPREFOCitBTknEhiBaT1JBCitBTklLQSBHQVZSSUxPCitBTklLQSBKVUxJSkUgUFJPRkVTT1IKK0FOSVRJxIYgScWgVFZBTgorQU5LScSGIE1BUkpBTgorQU5LScSGIFBFUklDQQorQU5PSsSMScSGIMW9RUxKS08KK0FOT0rEjEnEhiBMQVpBUgorQU5PSsSMScSGIE1JTEFOCitBTk9KxIxJxIYgUkFESVZPSgorQU5PSsSMScSGIFJBRElWT0oKK0FOT0rEjEnEhiBTUEFTT0pFCitBTk9KxIxJxIYtU1RPSktPVknEhiBKQVNNSU5LQQorQU5UQUwgQUxFS1NBTkRBUgorQU5UQUwgVkVST05BCitBTlRBTkFTScSGIFNUQU5LTworQU5UQU5BU0lKRVZJxIYgQk9SQQorQU5URUxKRVZJxIYgQUxFS1NBTkRBUgorQU5UScSGIMSQT0tBCitBTlRJxIYgxJBPUsSQRQorQU5UScSGIMSQT1LEkEUKK0FOVEnEhiBBTEVLU0FOREFSCitBTlRJxIYgQU5HRUxJTkEKK0FOVEnEhiBCT8WgS08KK0FOVEnEhiBCT8W9SURBUiBEUiBTVE9NQVRPTE9HCitBTlRJxIYgQk/FvUlEQVIKK0FOVEnEhiBCUkFOS08KK0FOVEnEhiBCUkFUSVNMQVYKK0FOVEnEhiBESU1JVFJJSkUKK0FOVEnEhiBEUkFHQU4KK0FOVEnEhiBEUkFHQU4KK0FOVEnEhiBEUkFHScWgQQorQU5UScSGIERVxaBBTktBCitBTlRJxIYgRFXFoEFOS0EKK0FOVEnEhiBKVUxLQQorQU5UScSGIEtPU1RBCitBTlRJxIYgTEpVQknFoEEKK0FOVEnEhiBMVUtBCitBTlRJxIYgTUFSSUNBCitBTlRJxIYgTUFSSUpBCitBTlRJxIYgTUlMQU4KK0FOVEnEhiBNSUxBTgorQU5UScSGIE1JTEFOCitBTlRJxIYgTUlMQU4KK0FOVEnEhiBNSUxJVk9KCitBTlRJxIYgTUlMVVRJTgorQU5UScSGIE1JT0RSQUcKK0FOVEnEhiBNSVJLTworQU5UScSGIE1JUktPCitBTlRJxIYgTkVOQUQKK0FOVEnEhiBORVZFTkEKK0FOVEnEhiBPTEdBCitBTlRJxIYgUEFWTEUKK0FOVEnEhiBQQVZMRQorQU5UScSGIFBBVkxFCitBTlRJxIYgUEVUQVIKK0FOVEnEhiBSQURPSktPCitBTlRJxIYgUkFET01JUgorQU5UScSGIFJBRE9WQU4KK0FOVEnEhiBTTEHEkEFOQQorQU5UScSGIFNMQVZJQ0EKK0FOVEnEhiBTTE9CT0RBTgorQU5UScSGIFNNSUxKQQorQU5UScSGIFNNSUxKQQorQU5UScSGIFNPRklKQQorQU5UScSGIFNUQU7EjEEKK0FOVEnEhiBTVEFOSVNMQVYKK0FOVEnEhiBTVEFOT0pFCitBTlRJxIYgU1RPSkFOCitBTlRJxIYgU1ZFVElTTEFWCitBTlRJxIYgU1ZFVExBTkEKK0FOVEnEhiBTVkVUT1ZJRAorQU5UScSGIFZFUklDQQorQU5UScSGIFZVS0HFoElOCitBTlRJxIYgWkFHT1JLQQorQU5UScSGIFpMQVRBTgorQU5USU4gSVZBTktBCitBTlRJTiBWRUxFTUlSCitBTlRPTE9WScSGIElWQU4KK0FOVE9OScSGIMW9SVZLTyBESVBMIElORworQU5UT05JxIYgxb1JVktPCitBTlRPTknEhiDEkE9SxJBFCitBTlRPTknEhiBCT1JJVk9KCitBTlRPTknEhiBCUkFOS08KK0FOVE9OScSGIERPQlJJVk9KCitBTlRPTknEhiBEUkFHQU4KK0FOVE9OScSGIERSQUdBTgorQU5UT05JxIYgR09SREFOQQorQU5UT05JxIYgSkFEUkFOS0EKK0FOVE9OScSGIEpBU01JTktBCitBTlRPTknEhiBKRUxFTkEKK0FOVE9OScSGIExKVUJJQ0EKK0FOVE9OScSGIE1BUklKQQorQU5UT05JxIYgTUlMQU4KK0FOVE9OScSGIE1JTEFOCitBTlRPTknEhiBNSUxBTgorQU5UT05JxIYgTUlMSVZPSgorQU5UT05JxIYgTkVCT0rFoEEgRElQTCBJTkcKK0FOVE9OScSGIFJBRElTQVYKK0FOVE9OScSGIFJBTktPCitBTlRPTknEhiBSQVRLTworQU5UT05JxIYgU0lNQQorQU5UT05JxIYgU0xBVklDQQorQU5UT05JxIYgU0xPQk9EQU4KK0FOVE9OScSGIFNMT0JPREFOCitBTlRPTknEhiBTVEVWQU4KK0FOVE9OScSGIFpPUktBCitBTlRPTklKRVZJxIYgQUxFS1NBTkRBUgorQU5UT05JSkVWScSGIEJJTEpBTkEKK0FOVE9OSUpFVknEhiBCT8W9VVIKK0FOVE9OSUpFVknEhiBCUkFOS08KK0FOVE9OSUpFVknEhiBEQU1OSkFOCitBTlRPTklKRVZJxIYgRFXFoEFOIERSCitBTlRPTklKRVZJxIYgRFXFoEFOCitBTlRPTklKRVZJxIYgTEpJTEpBCitBTlRPTklKRVZJxIYgUEVUQVIKK0FOVE9OSUpFVknEhiBTVEVWQQorQU5UT05JTkkgTUFSSUpBCitBTlRPTk9WScSGIE1JTElWT0oKK0FOVE9WScSGIExKVUJJQ0EKK0FOVFVOIE1JTE/FoAorQU5UVU5PVknEhiBBTkRSSUpBCitBTlRVTk9WScSGIEJPR0RBTgorQU5UVU5PVknEhiBHSVpFTEEKK0FOVFVOT1ZJxIYgTEFaQVIKK0FOVFVOT1ZJxIYgTUxBREVOCitBTlRVTk9WScSGIE1PTcSMSUxPCitBTlRVTk9WScSGIE5FREEKK0FOVFVOT1ZJxIYgVE9NSVNMQVYKK0FOVcSMSU4gTkVOQUQKK0FOVUtJxIYgS09TVEEKK0FQQVJBQyBTVkVUT1pBUgorQVBBVE9WScSGIEpPVkFOCitBUEFUT1ZJxIYgTEFaQVIKK0FQQVRPVknEhiBOSUtPTEEKK0FQQVRPVknEhiBTQVZBCitBUEVSTEnEhiBWT0pJTgorQVBJxIYgxJBPUsSQRQorQVBJxIYgQU5LSUNBCitBUEnEhiBCUkFOS08gRFIgVkVURVJJTkUKK0FQScSGIEJSQU5LTworQVBJxIYgRFXFoEFOCitBUEnEhiBKVUxLQQorQVBJxIYgS0FUQVJJTkEKK0FQScSGIE1JTEFOCitBUEnEhiBNSUxBTgorQVBJxIYgTUlMSUNBCitBUEnEhiBNSUxPxaAKK0FQScSGIE1JTE9SQUQKK0FQScSGIE1JUkpBTkEKK0FQScSGIE1JUk9TTEFWCitBUEnEhiBPTElWRVJBCitBUEnEhiBQQUpBCitBUEnEhiBQQUpBCitBUEnEhiBSQURJxaBLTworQVBJxIYgUkFESVZPSkUKK0FQScSGIFJBVE9NSVIgRElQTCBJTkcKK0FQScSGIFNSRVRBCitBUEnEhiBTVEVWQU4KK0FQScSGIFNUT0pBTgorQVBJxIYgU1ZFVE9aQVIKK0FQScSGIFNWRVRPWkFSCitBUEnEhiBWRVJBCitBUEnEhiBaRFJBVktPCitBUEnEhiBaT1JLQQorQVBPU1RPTE9WIExKVUJPTUlSCitBUE9TVE9MT1ZJxIYgQk/FvUlEQVIKK0FQT1NUT0xPVknEhiBNSUxPUkFECitBUFJPIEZSQU5KQQorQVBSTyBKQU5PxaAKK0FQUk8gSk/FvUVGCitBUFJPIExBU0xPCitBUFJPIExKVUJPTUlSCitBUFJPIFJJSEFSRAorQVBSTy1TQU1BUkTFvUlKQSBWRVJBIERSCitBUFJPIFNURVZBTgorQVBSTyBaT0xUQU4KK0FQVCBCT0dPTEpVQgorQVBUIE1BUktPCitBUsWgSU5PViDEkE9SxJBFCitBUsWgSU5PViBNSUxPUkFECitBUsSQRUxBTS3FoFJBSyBFRElUCitBUsSQRUxBTiBJxaBUVkFOCitBUkHEjEnEhiBTTE9CT0RBTgorQVJBxJBBTklOIFRJTU9USUpFCitBUkHEkEFOU0tJIEtBVElDQQorQVJBxJBBTlNLSSBOQURBCitBUkHEkEFOU0tJLVJBSktPViBNQUpBCitBUkFDS0kgRVLFvUlLQQorQVJBQ0tJxIYgxJBPUsSQRQorQVJBQ0tJxIYgTUlMSUNBCitBUkFDS0nEhiBaTEFUT0pFIERJUEwgUFJBVk5JSworQVJBRFNLSSBBTEVLU0FOREFSIERJUEwgSU5HCitBUkFEU0tJIElWQU5LQQorQVJBRFNLSSBNSUxPUkFECitBUkFEU0tJIE1JVEEKK0FSQURTS0kgUkFESVZPSgorQVJBRFNLSSBTT0ZJSkEKK0FSQURTS0kgU1JFVEVOS0EKK0FSQURTS0kgU1RPSkFOS0EKK0FSQURTS0kgWkxBVEEKK0FSQUxJQ0EgUkFKS08KK0FSQU1CQcWgScSGIMSQT1LEkEUKK0FSQU1CQcWgScSGIERSQUdBTgorQVJBTsSMScSGIEFMRUtTQU5EQVIKK0FSQU7EjEnEhiBLQVJMTworQVJBTsSQRUxPVknEhiBBTEVLU0FOREFSCitBUkFOxJBFTE9WScSGIEJPxb1JREFSCitBUkFOxJBFTE9WScSGIERJTUlUUklKRQorQVJBTsSQRUxPVknEhiBOSkVHT1ZBTgorQVJBTsSQRUxPVknEhiBTQVZBCitBUkFOxJBFTE9WScSGIFNSRVRFTgorQVJBTsSQVVMgQU5UT04KK0FSQU5JQ0tJIERJTktBCitBUkFOSUNLSSBHTElHT1JJSkUKK0FSQU5JQ0tJIE1JTEFOQQorQVJBTklDS0kgTUlMSUNBCitBUkFOSUNLSSBNSUxPxaAgRFIgUFJPRgorQVJBTklDS0kgWkFHT1JLQQorQVJBTklDS0kgWk9SSUNBCitBUkFOSVRPVknEhiBMQVpBUgorQVJBTkpPxaAgUEFMCitBUkFQxIxJxIYgUEHFoEFHQQorQVJBUElOQUMgTUlMSUNBCitBUkFQT1ZJxIYgRFJBR08KK0FSQVBPVknEhiBEUkFHVVRJTgorQVJBUiBQRVRBUgorQVJBUyBCUkFOS08KK0FSQVMgSlVHT1NMQVYKK0FSQVMgTEpVQk8KK0FSQkVTIE5FTkFECitBUkJVTknEhiBQRVJBCitBUkJVVElOQSDEkFVSxJBJTktBCitBUkJVVElOQSBCUkFOSVNMQVYKK0FSQlVUSU5BIE1BUklKQQorQVJCVVRJTkEgTkFUQUxJSkEKK0FSQlVUSU5BIFZFTElNSVIKK0FSQlVUSU5BIFZMQURJTUlSCitBUkTFvU9OIE5BVEFMSUpBCitBUkRBTEnEhiBKT1ZBTktBCitBUkRBTEnEhiBMRVBPU0FWQQorQVJEQUxJxIYgU0xBVktPCitBUkRFTEpBTiBKT04KK0FSREVMSkFOIE1BUklKQQorQVJERUxKQU4gUEVUQVIKK0FSRE9DS0kgScWgVFZBTgorQVJFxb1JTkEgxJBPUsSQRQorQVJFxb1JTkEgQk/FoEtPCitBUklGSSBJQlJBSElNCitBUklGT1ZJxIYgU1JCSUNBCitBUklaQVRPVknEhiBKQVNNSU5BCitBUktVTEEgQkxBxb1FCitBUktVTEEgU0xBVklDQQorQVJLVUxBIFNMQVZJQ0EKK0FSTE9WIERSQUdBTgorQVJNQUNLSSBCUkFOSVNMQVYKK0FSTUFDS0kgUkFET1ZBTgorQVJNQUNLSSBTT0ZJSkEKK0FSTUFDS0kgU1RFVkFOCitBUk1CUlVTVEVSIExBU0xPCitBUk1CUlVTVEVSIE1BUklKQQorQVJOQVVUIMSQT1LEkEUKK0FSTkFVVCBEUkFHSU5KQQorQVJOQVVUIE1JTElDQQorQVJOQVVUIFZBU0EKK0FSTk9VUyBURVJFWkEKK0FSTk9WTEpFVknEhiBLQVRBUklOQQorQVJPSy1ESVZKQUsgR09SREFOQQorQVJQQcWgSSDEkE9SxJBFCitBUlBBxaBJIExBU0xPCitBUlNFTknEhiDFvUlWS08KK0FSU0VOScSGIEJSQVRJU0xBVkEKK0FSU0VOScSGIERJTUlUUklKRQorQVJTRU5JxIYgRFJBxaBLTworQVJTRU5JxIYgSk9WQU5LQQorQVJTRU5JxIYgTU9NSVIKK0FSU0VOScSGIE9MR0lDQQorQVJTRU5JxIYgVkVMSktPCitBUlNFTklKRVZJxIYgQk9SSVNMQVYKK0FSU0VOSUpFVknEhiBKT1ZBTgorQVJTRU5JSkVWScSGIE1JTEFOCitBUlNFTklKRVZJxIYgTUlMT1JBRAorQVJTRU5JSkVWScSGIE1JTE9WQU4KK0FSU0VOSUpFVknEhiBNSUxVTktBCitBUlNFTklKRVZJxIYgTU9NxIxJTE8gRFIKK0FSU0VOSUpFVknEhiBNT03EjElMTworQVJTRU5JSkVWScSGIE1PTUlSCitBUlNFTklKRVZJxIYgU0xBVktBCitBUlNFTklKRVZJxIYgU01JTEpBCitBUlNFTklKRVZJxIYgVk9KSVNMQVYKK0FSU0VOSUpFVknEhiBWT0pJU0xBVgorQVJTRU5JTiDEkFVSxJBJTktBCitBUlNFTklOIEFMRUtTQU5EQVIKK0FSU0VOSU4gQUxFS1NBTkRBUgorQVJTRU5JTiBCT0dPTEpVQgorQVJTRU5JTiBHQUpBCitBUlNFTklOIEpPVkFOCitBUlNFTklOIEpPVkFOCitBUlNFTklOIEtPU1RBCitBUlNFTklOIEtSSVNUSU5BCitBUlNFTklOIE1BUklKQQorQVJTRU5JTiBNSVRBCitBUlNFTklOIE1MQURFTgorQVJTRU5JTiBNTEFERU4KK0FSU0VOSU4gU1ZFVE9aQVIKK0FSU0VOSU4gVklUT01JUgorQVJTRU5JTiBWTEFESU1JUgorQVJTRU5KRVYgQUxFS1NFSgorQVJTRU5PViBBTEVLU0EKK0FSU0VOT1YgQVJJxaBLTworQVJTRU5PViBCUkFOSVNMQVYKK0FSU0VOT1YgQlJBTklTTEFWCitBUlNFTk9WIEJSQU5JU0xBVgorQVJTRU5PViBEUkFHSUNBCitBUlNFTk9WIEtBVElDQQorQVJTRU5PViBNSUxBTgorQVJTRU5PViBNSVJPU0xBVgorQVJTRU5PViBQRVJBCitBUlNFTk9WIFBFVEFSCitBUlNFTk9WIFBFVEFSCitBUlNFTk9WIFJBRElWT0oKK0FSU0VOT1YgU0HFoEEKK0FSU0VOT1YgVkFTSUxJSkUKK0FSU0VOT1ZJxIYgxb1JVktPCitBUlNFTk9WScSGIE1BUklDQQorQVJTRU5PVknEhiBOQURBIERSCitBUlNFTk9WScSGIFJBRElTQVYKK0FSU0VOT1ZJxIYgUkFET01JUgorQVJTRU5PVknEhiBTQVZPCitBUlNFTk9WScSGIFNSxJBBTgorQVJTRU5PVknEhiBTVE9KQURJTgorQVJTRU5PVknEhiBUUklWTworQVJTRU5PVknEhiBWRVNOQQorQVJTRU5PVknEhiBWTEFEQQorQVJTRU5PVknEhiBaT1JBTgorQVJTScSGIMSMRURPTUlSCitBUlNJxIYgxb1BUktPCitBUlNJxIYgxb1JVktPCitBUlNJxIYgQUxFS1NBTkRBUgorQVJTScSGIERPQlJJVk9KRQorQVJTScSGIERVxaBLTworQVJTScSGIEVSxb1FQkVUCitBUlNJxIYgTEFaQVIKK0FSU0nEhiBMSURJSkEKK0FSU0nEhiBMSlVCScWgQQorQVJTScSGIE1BUklKQQorQVJTScSGIE1JSEFJTE8KK0FSU0nEhiBNSUhPTEpLQQorQVJTScSGIE1JTE/FoAorQVJTScSGIE1JTE9TTEFWIERSCitBUlNJxIYgTUlMVVRJTgorQVJTScSGIE1JT0RSQUcKK0FSU0nEhiBNSU9NSVIKK0FSU0nEhiBNSVJKQU5BCitBUlNJxIYgTUlSSkFOQQorQVJTScSGIE1PTcSMSUxPCitBUlNJxIYgT0JSQUQKK0FSU0nEhiBQRVJJQ0EKK0FSU0nEhiBQRVRBUgorQVJTScSGIFJBRE9NSVIKK0FSU0nEhiBSQURPU0FWCitBUlNJxIYgU0FWRVRBCitBUlNJxIYgU0xBVktBCitBUlNJxIYgU0xBVk9KS0EKK0FSU0nEhiBTTEFWT0xKVUIKK0FSU0nEhiBTVEFOS08KK0FSU0nEhiBUT01JU0xBVgorQVJTScSGIFRPTUlTTEFWCitBUlNJxIYgVE9NSVNMQVYKK0FSU0nEhiBUUkFKQU4KK0FSU0nEhiBaT1JBTgorQVJTScSGIFpPUkFOCitBUlNJxIYgWk9SQU4KK0FSU0lLSU4gTUlMQU5LTworQVJTSUtJTiBQQVZMRQorQVJTTEFOQUdJxIYgTkHEkEEKK0FSU09WScSGIEFMRUtTQU5EQVIKK0FSU09WScSGIERPQlJPU0FWCitBUlNPVknEhiBKT1ZBTgorQVJTT1ZJxIYgTUFURUpBCitBUlNPVknEhiBNSUxBTgorQVJTT1ZJxIYgTUlMSUNBCitBUlQgxJBVUkEKK0FSVCBaVk9OSU1JUgorQVJUVUtPViBEVcWgQU4KK0FSVFVLT1YgT0xHQQorQVJVTEEgTUnEhk8KK0FSVkFJIEFMRUtTQU5EQVIKK0FSVkFJIEFSUEFECitBUlZBSSBEQU5JQ0EKK0FSVkFJIFBBVkFPCitBUlZBSSBURVJFWkEKK0FSVkFKSSBQQVZBTworQVJWQU5JVElESVMgU1RFUkpPUworQVNBTkkgQVNBTgorQVNBTkkgSFVSScWgQQorQVNBTkkgTkFJTEpBCitBU0FOSSBOQVpJRkEKK0FTQU5PViBaT1JBCitBU0FOT1ZJxIYgTUlMRVZBCitBU0FOT1ZJxIYgU1RBTktBCitBU0FOT1ZJxIYgWlVIUkEKK0FTQU5PVlNLSSBST1pBTElKQQorQVNJxIYgTUlMQU4KK0FTT0RJIEpBTk/FoAorQVNPREkgSk/FvUVGCitBU09ESSBNSVJLTworQVNPVEnEhiBNVUFNRVIKK0FTVEFIT1YtSkVSRU1JxIYgTUFSSUpBCitBU1RBTE/FoCBJxaBUVkFOCitBU1VSRMW9ScSGIEtSSVNUSU5BCitBU1VSRMW9ScSGIExVS0EKK0FTVVJExb1JxIYgTUlMT8WgCitBU1VSRMW9ScSGIE1JTE/FoAorQVNVUkTFvUnEhiBNSUxPxaAKK0FTVVJExb1JxIYgTU9MT8WgCitBU1VSRMW9ScSGIE5JS09MQQorQVNVUkTFvUnEhiBOSUtPTEEKK0FTVVJExb1JxIYgU09GSUpBCitBU1VSRMW9ScSGIFNURVZBTgorQVNVUkTFvUnEhiBURU9ET1IKK0FTVVJExb1JxIYgVEVPRE9SCitBVEFOQUNLT1YgxJBPUsSQRQorQVRBTkFDS09WIEJPUkEKK0FUQU5BQ0tPViBCT1JJVk9KCitBVEFOQUNLT1YgRFJBR0FOCitBVEFOQUNLT1YgSUxPTkEKK0FUQU5BQ0tPViBNQVJJSkEKK0FUQU5BQ0tPViBNSVJKQU5BCitBVEFOQUNLT1YgTUlSS08KK0FUQU5BQ0tPViBOT1ZBCitBVEFOQUNLT1YgT0xHQQorQVRBTkFDS09WIFBBVkxFCitBVEFOQUNLT1YgU0HFoEEKK0FUQU5BQ0tPViBTVEVWQU4KK0FUQU5BQ0tPViBTVEVWQU4KK0FUQU5BQ0tPVknEhiDFvUlWQU4KK0FUQU5BQ0tPVknEhiDEkE9SxJBFCitBVEFOQUNLT1ZJxIYgQUxFS1NBTkRBUgorQVRBTkFDS09WScSGIEFOQQorQVRBTkFDS09WScSGIEJPR09CT0oKK0FUQU5BQ0tPVknEhiBCT1JJU0xBVgorQVRBTkFDS09WScSGIEJPUklTTEFWCitBVEFOQUNLT1ZJxIYgQlJBTktBIERJUEwgUFJBVk5JSworQVRBTkFDS09WScSGIERSQUdJxaBBIERSCitBVEFOQUNLT1ZJxIYgRFXFoEFOIERSIExFS0FSCitBVEFOQUNLT1ZJxIYgR1JBRElNSVIKK0FUQU5BQ0tPVknEhiBJVkFOCitBVEFOQUNLT1ZJxIYgS0FUQVJJTkEKK0FUQU5BQ0tPVknEhiBMQVpBCitBVEFOQUNLT1ZJxIYgTFVLQQorQVRBTkFDS09WScSGIE1JTEVOS08KK0FUQU5BQ0tPVknEhiBNSUxFTktPCitBVEFOQUNLT1ZJxIYgTUlSS08KK0FUQU5BQ0tPVknEhiBNTEFERU4KK0FUQU5BQ0tPVknEhiBSQVRLTworQVRBTkFDS09WScSGIFNBVkEKK0FUQU5BQ0tPVknEhiBTTEHEkEFOQQorQVRBTkFDS09WScSGIFNURVZBTgorQVRBTkFDS09WScSGIFNWRVRPTUlSCitBVEFOQUNLT1ZJxIYgVEVPRE9SIERSCitBVEFOQUNLT1ZJxIYgVE/FoEEKK0FUQU5BQ0tPVknEhiBWQVNJTEpLQQorQVRBTkFDS09WScSGIFZMQURJTUlSIERJUEwgSU5HCitBVEFOQUNLT1ZJxIYgWk9SQU4KK0FUQU5BU0lBRElTIEhSSVNUT0ZPUk9TCitBVEFOQVNJSkFESVMgQU5FU1RJCitBVEFOQVNLT1ZJxIYgR09SREFOQQorQVRBTkFTS09WScSGIE1JUkpBTkEKK0FUQU5BU0tPVknEhiBNSVJPTEpVQgorQVRBTkFTT1NLSSBTVEVWTworQVRBTkFTT1YgTUFSS08KK0FUQU5BU09WU0tJIFJJU1RPCitBVEFSQUMgRFJBR0/FoAorQVRFTEpFVknEhiBEVcWgQU4KK0FURUxKRVZJxIYgTUlMT1ZBTgorQVRJxIYgREFOSUNBCitBVExBR0nEhiBCUkFOS08KK0FUTEFHScSGIEpPVkFOCitBVExBR0nEhiBNSUxBTgorQVRMQUdJxIYgTUlMSUNBCitBVExBR0nEhiBaRFJBVktPCitBVExBR0nEhiBaRFJBVktPCitBVExBUyDEkE9SxJBFIERSCitBVExBUyBJVkFOCitBVExBUyBNSVJLTworQVRMScSGIExBWkFSCitBVExJxIYgTUlMQU4KK0FVxb1JTkEgTUlMSUNBCitBVcW9SU5BIE1JUkEKK0FVxb1JTkEgTUlST1NMQVZBCitBVUVSIE1BUkEKK0FVR1VTVElOIElWSUNBCitBVUdVU1RJTk9WIEFOVE9OCitBVUdVU1RJTk9WIElWQU4KK0FVTElLIElMT05BCitBVVJFTElKQU4gxJBBTgorQVZBS1VNT1ZJxIYgTEpVQklOS0EKK0FWQUtVTU9WScSGIE5JS09MQQorQVZEQUxPVknEhiBHT1JEQU5BCitBVkRBTE9WScSGIE1JTEFESU4KK0FWREFMT1ZJxIYgVklET1NBVkEKK0FWREFMT1ZJxIYgVkxBRElNSVIKK0FWREkgUkFNQURBTgorQVZEScSGIEFMRUtTQU5EQVIKK0FWREnEhiBGVUFECitBVkRJxIYgR09SREFOQQorQVZEScSGIEhVU05JSkEKK0FWREnEhiBNQUxJxIYKK0FWREnEhiBNVUxJSkEKK0FWRU1BUklBIFBFVEFSCitBVlJBTU9WIEJPxaBLTworQVZSQU1PViBCUkFOSVNMQVYKK0FWUkFNT1YgRElNSVRSSUpFCitBVlJBTU9WIERPQlJJTEEKK0FWUkFNT1YgR0FWUkEKK0FWUkFNT1YgSVZBTgorQVZSQU1PViBKT1ZBTktBCitBVlJBTU9WIEpPVkFOCitBVlJBTU9WIExKSUxKQU5BCitBVlJBTU9WIE1JTEFESU4KK0FWUkFNT1YgTUlMRVZBCitBVlJBTU9WIE1JTEtBCitBVlJBTU9WIE1JUkpBTkEKK0FWUkFNT1YgTUlUQQorQVZSQU1PViBQQUpBCitBVlJBTU9WIFBFUkEKK0FWUkFNT1YgUEVUQVIKK0FWUkFNT1YgUkFESVZPSgorQVZSQU1PViBTVEVWQU4KK0FWUkFNT1YgU1ZFVE9MSUsKK0FWUkFNT1YgU1ZFVE9MSUsKK0FWUkFNT1YgWk9SQU4KK0FWUkFNT1YgWk9SQU4KK0FWUkFNT1ZJxIYgxb1JVktPCitBVlJBTU9WScSGIEJPUklWT0pFCitBVlJBTU9WScSGIERBUklOS0EKK0FWUkFNT1ZJxIYgRElNSVRSSUpFCitBVlJBTU9WScSGIERJTUlUUklKRQorQVZSQU1PVknEhiBEUkFHTworQVZSQU1PVknEhiBGUkFOQ0nFoEtBCitBVlJBTU9WScSGIEdPSktPCitBVlJBTU9WScSGIElMSU5LQQorQVZSQU1PVknEhiBKT1ZBTiBEUiBMRUtBUgorQVZSQU1PVknEhiBMSlVCScWgQQorQVZSQU1PVknEhiBMSlVCSU5LTworQVZSQU1PVknEhiBMSlVCT01JUgorQVZSQU1PVknEhiBNSUxBTgorQVZSQU1PVknEhiBNSUxBTgorQVZSQU1PVknEhiBNSUxBTgorQVZSQU1PVknEhiBNSUxJVk9KCitBVlJBTU9WScSGIE1JUkpBTkEKK0FWUkFNT1ZJxIYgTUlUQQorQVZSQU1PVknEhiBNT01JUgorQVZSQU1PVknEhiBOSUtPTEEKK0FWUkFNT1ZJxIYgUkFESVZPSgorQVZSQU1PVknEhiBSQURPU0xBVgorQVZSQU1PVknEhiBSQVRLTworQVZSQU1PVknEhiBSQVRLTworQVZSQU1PVknEhiBTSU5JxaBBCitBVlJBTU9WScSGIFNUQU5LQQorQVZSQU1PVknEhiBTVEVWQU4KK0FWUkFNT1ZJxIYgVEVPRE9SCitBVlJBTU9WScSGIFRPTUEKK0FWUkFNT1ZJxIYgVkVMSktPCitBVlJBTU9WScSGIFZFUkEKK0FWUkFNT1ZJxIYgVkVSQQorQVZSQU1PVknEhiBWRVJBCitBVlJBTU9WU0tJIEJPUklTCitBWkxFTiBCT1JJU0xBVgorQkHEjEEgxaBBTkRPUgorQkHEjEEgTEFESVNMQVYKK0JBxIxBTk9WScSGIE5FTkFECitCQcSMScSGIMSMRURPTUlSIFBST0ZFU09SCitCQcSMScSGIMW9SVZLTworQkHEjEnEhiDEkE9SxJBFCitCQcSMScSGIEFOVEUKK0JBxIxJxIYgQlJBTktBCitCQcSMScSGIERSQUdPU0xBVgorQkHEjEnEhiBKT1ZBTgorQkHEjEnEhiBLQVJBCitCQcSMScSGIE1BUklKQQorQkHEjEnEhiBNSUxBTiBEUiBWRVRFUklORQorQkHEjEnEhiBNSUxJQ0EKK0JBxIxJxIYgTUlSS08KK0JBxIxJxIYgTklLT0xBCitCQcSMScSGIFNNSUxKQU5BCitCQcSMS0FMScSGIMSQT1LEkEUKK0JBxIxLQUxJxIYgQUxFS1NBTkRBUgorQkHEjEtBTEnEhiBET0JSQQorQkHEjEtBTEnEhiBET0JSSUNBCitCQcSMS0FMScSGIEpPVkFOCitCQcSMS0FMScSGIExBWkFSCitCQcSMS0FMScSGIExKVUJJQ0EKK0JBxIxLQUxJxIYgTEpVQk9NSVIKK0JBxIxLQUxJxIYgTUlMQU4KK0JBxIxLQUxJxIYgTUlMQQorQkHEjEtBTEnEhiBOT1ZBSworQkHEjEtPIE1JTEFOQQorQkHEjEtPIFBFVEFSCitCQcSMTEnEhiDEkE9SxJBFCitCQcSMTEnEhiBCUkFOSVNMQVYKK0JBxIxMScSGIExBWkFSCitCQcSMTEnEhiBMSlVCSUNBCitCQcSMTElKQSBKT1NJUAorQkHEjExJSkEgTUFSS08KK0JBxIxMSUpBIFJVxb1JQ0EKK0JBxIxMSUpBIFNMQVZJQ0EKK0JBxIxVTE9WIFNURVZBTgorQkHEjFZBTklOIMW9SVZPSklOCitCQcSMVkFOU0tJIEJPxaBLTworQkHEjFZBTlNLSSBTVEVWQU4gRFIgSU5HCitCQcWgIEpVTElBCitCQcWgQSBEVcWgQU4KK0JBxaBBIEpPVkFOCitCQcWgRVZJxIYgxIxFRE9NSVIKK0JBxaBFVknEhiBORVZFTktBCitCQcWgScSMRVZJxIYgVk9KSU4gRFIKK0JBxaBJxIxFVknEhiBWT0pJTgorQkHFoEnEhiDFvUFSS08KK0JBxaBJxIYgxJBVUk8KK0JBxaBJxIYgQUxFS1NBTkRBUgorQkHFoEnEhiBCSUxKQU5BCitCQcWgScSGIEJPxb1PCitCQcWgScSGIERSQUdVVElOCitCQcWgScSGIERSQUdVVElOCitCQcWgScSGIERVxaBBTgorQkHFoEnEhiBEVcWgQU4KK0JBxaBJxIYgRFXFoEFOCitCQcWgScSGIERVxaBBTgorQkHFoEnEhiBEVcWgQU4KK0JBxaBJxIYgRlJBTkpPCitCQcWgScSGIEdBVlJBCitCQcWgScSGIEdSVUpJQ0EKK0JBxaBJxIYgSURSSVoKK0JBxaBJxIYgSUxJSkEKK0JBxaBJxIYgSkFOS08KK0JBxaBJxIYgSkVMQQorQkHFoEnEhiBKRUxFTkEKK0JBxaBJxIYgSk9WQU4KK0JBxaBJxIYgSk9WQU4KK0JBxaBJxIYgSlVSRQorQkHFoEnEhiBMQVpBUgorQkHFoEnEhiBMSlVCSUNBCitCQcWgScSGIExKVUJJQ0EKK0JBxaBJxIYgTFVLQQorQkHFoEnEhiBNQVJJSkEKK0JBxaBJxIYgTUlMQU4KK0JBxaBJxIYgTUlMQU4KK0JBxaBJxIYgTUlMQQorQkHFoEnEhiBNSUxJQ0EKK0JBxaBJxIYgTUlMVVRJTiBESVBMIElORworQkHFoEnEhiBNSVRBCitCQcWgScSGIE5FREVMSktBCitCQcWgScSGIE5FU1RPUgorQkHFoEnEhiBOSUtPTEEKK0JBxaBJxIYgUEFWTEUKK0JBxaBJxIYgUEVUQVIKK0JBxaBJxIYgUkFET1NMQVYKK0JBxaBJxIYgU0FWQQorQkHFoEnEhiBTQVZBCitCQcWgScSGIFNJTUtBCitCQcWgScSGIFNMT0JPREFOS0EKK0JBxaBJxIYgU0xPQk9EQU5LQQorQkHFoEnEhiBTTE9CT0RBTgorQkHFoEnEhiBTTE9CT0RBTgorQkHFoEnEhiBTT05KQQorQkHFoEnEhiBTUEFTT0pFCitCQcWgScSGIFNURVZBTgorQkHFoEnEhiBUT01JU0xBVgorQkHFoEnEhiBWRVJBCitCQcWgScSGRVZJxIYgREVTQQorQkHFoElDQSBNSUxBTgorQkHFoElDQSBSQU5LTworQkHFoElDQSBSSVNUTworQkHFoEtBTE8gTUFSS08KK0JBxaBORUMgSVZBTgorQkHFoFRJxIYgQk/FvUlEQVIKK0JBxaBUScSGIE1JTEtBCitCQcWgVEnEhiBQRVRBUgorQkHFoFRPVkFOT1YgREFOSUNBCitCQcWgVE9WQU5PViBTVEVWQU4KK0JBxaBUT1ZBTk9WScSGIElWQU4KK0JBxaBUT1ZBTk9WScSGIE1JTEFOCitCQcSGQU4gRFJBR09NSVIKK0JBxIZBTk9WIERSQUdJQ0EKK0JBxIZBTk9WIFNUQU5LTworQkHEhkFOT1YgU1RFVkFOCitCQcSGQU5PVknEhiBEQU5JQ0EKK0JBxIZBTk9WScSGIEpVQ0EKK0JBxIZBTk9WScSGIE1JTEFOCitCQcSGQU5PVknEhiBNSUxPxaAKK0JBxIZBTk9WScSGIE5FTUFOSkEKK0JBxIZBTk9WScSGIFNJTknFoEEKK0JBxIZBTk9WScSGIFNUT0pBTgorQkHEhknEhiBMSklMSkFOQQorQkHEhknEhiBMSlVCT01JUgorQkHEhklOQSBNTEFERU4KK0JBxIZJTkFDIFJBRE9TTEFWCitCQcW9QU7EjElLIEJFTEEKK0JBxb1BTlRJSyBNQVJBCitCQcW9REFSIEJSVU5PCitCQcW9REFSIE1JTE9SQUQKK0JBxb1FTk9WIEFOR0VMSU5BCitCQcSQSSDFoEFORE9SCitCQcSQSS1SSUJBUiBSRU5BVEEKK0JBxJBJTiBTTUlMSktBCitCQUJBIElMT05LQQorQkFCQSBKQU5PxaAKK0JBQkEgSk9OCitCQUJBSknEhiBBTEVLU0FOREFSCitCQUJBUklLSU4gTUFSS08KK0JBQkVDIFpPUkFOCitCQUJJIElWQU4KK0JBQknEhiDFvUFSS08KK0JBQknEhiDFvUVMSktBCitCQUJJxIYgxb1JVkFOCitCQUJJxIYgxb1JVkFOCitCQUJJxIYgxJBPUsSQRQorQkFCScSGIMSQT1LEkEUKK0JBQknEhiDEkE9SxJBFCitCQUJJxIYgxJBPUsSQRQorQkFCScSGIMSQT1LEkEUKK0JBQknEhiDEkFVSxJBJQ0EKK0JBQknEhiDEkFVSQQorQkFCScSGIMSQVVJBCitCQUJJxIYgxJBVUk8KK0JBQknEhiBBQ0EKK0JBQknEhiBBSURBCitCQUJJxIYgQUxFS1NBTkRBUgorQkFCScSGIEFMRUtTQU5EQVIKK0JBQknEhiBBTEVLU0FORFJBCitCQUJJxIYgQUxFS1NBCitCQUJJxIYgQUxLQQorQkFCScSGIEFOQQorQkFCScSGIEFOQQorQkFCScSGIEFOQQorQkFCScSGIEJJTEpBTkEKK0JBQknEhiBCT8W9SUNBCitCQUJJxIYgQk/FvUlEQVJLQQorQkFCScSGIEJPR0RBTgorQkFCScSGIEJPSkEKK0JBQknEhiBCT1JJxaBBCitCQUJJxIYgQk9SSVNMQVZBCitCQUJJxIYgQk9SSVZPSkUKK0JBQknEhiBCUkFOS08KK0JBQknEhiBDVklKTworQkFCScSGIERBTkUKK0JBQknEhiBEQVJJTktBCitCQUJJxIYgREFWSUQKK0JBQknEhiBEUkHFoEtPCitCQUJJxIYgRFJBR0FOQQorQkFCScSGIERSQUdBTgorQkFCScSGIERSQUdJxaBBCitCQUJJxIYgRFJBR0nFoEEKK0JBQknEhiBEUkFHScWgQQorQkFCScSGIERSQUdJxaBBCitCQUJJxIYgRFJBR0nFoEEKK0JBQknEhiBEUkFHTworQkFCScSGIERVxaBBTktBCitCQUJJxIYgRFXFoEFOCitCQUJJxIYgRFXFoEFOCitCQUJJxIYgRFXFoEFOCitCQUJJxIYgRFXFoEFOCitCQUJJxIYgRFXFoElDQQorQkFCScSGIEdPSktPCitCQUJJxIYgR09KS08KK0JBQknEhiBHT1JBTgorQkFCScSGIEdPUkRBTkEKK0JBQknEhiBHT1JJQ0EKK0JBQknEhiBHT1NQQVZBCitCQUJJxIYgSEVMRU5BCitCQUJJxIYgSUxJSkEKK0JBQknEhiBJTElKQQorQkFCScSGIElMSUpBCitCQUJJxIYgSUxJTktBCitCQUJJxIYgSVZBTgorQkFCScSGIElWQU4KK0JBQknEhiBJVkFOCitCQUJJxIYgSk9WQU4KK0JBQknEhiBKT1ZBTgorQkFCScSGIEpPVkFOCitCQUJJxIYgSk9WQU4KK0JBQknEhiBKT1ZBTgorQkFCScSGIEtBVElDQQorQkFCScSGIEtBWklNSVIKK0JBQknEhi1LT1BMSkFOIFJPxb1BCitCQUJJxIYgS09TQQorQkFCScSGIEtPU1RBRElOCitCQUJJxIYgS09TVEEKK0JBQknEhiBLUlNUQQorQkFCScSGIExBWk8KK0JBQknEhiBMQVpPCitCQUJJxIYgTEVPTklECitCQUJJxIYgTEpJTEpBTkEKK0JBQknEhiBMSklMSkFOQQorQkFCScSGIExKSUxKQU5BCitCQUJJxIYgTEpVQknFoEEKK0JBQknEhiBMSlVCSUNBCitCQUJJxIYgTEpVQk9NSVIKK0JBQknEhiBMSlVCT01JUgorQkFCScSGIExVS0EKK0JBQknEhiBNQUpBCitCQUJJxIYgTUFSSUpBTkEKK0JBQknEhiBNQVJJSkEKK0JBQknEhiBNQVJJTktPCitCQUJJxIYgTUFSS08KK0JBQknEhiBNQVRPCitCQUJJxIYgTUlKTworQkFCScSGIE1JTEFESU4KK0JBQknEhiBNSUxBTgorQkFCScSGIE1JTEFOCitCQUJJxIYgTUlMQU4KK0JBQknEhiBNSUxBTgorQkFCScSGIE1JTEFOCitCQUJJxIYgTUlMQU4KK0JBQknEhiBNSUxBTgorQkFCScSGIE1JTEFOCitCQUJJxIYgTUlMQU4KK0JBQknEhiBNSUxBTgorQkFCScSGIE1JTEVUQQorQkFCScSGIE1JTEVWQQorQkFCScSGIE1JTEVWQQorQkFCScSGIE1JTEnEhgorQkFCScSGIE1JTElWT0pFIERJUEwgSU5HCitCQUJJxIYgTUlMSVZPSgorQkFCScSGIE1JTElWT0oKK0JBQknEhiBNSUxPxaAKK0JBQknEhiBNSUxPxaAKK0JBQknEhiBNSUxPxaAKK0JBQknEhiBNSUxPxaAKK0JBQknEhiBNSUxPxaAKK0JBQknEhiBNSUxPxaAKK0JBQknEhiBNSUxPUkFECitCQUJJxIYgTUlMT1JBRAorQkFCScSGIE1JTE9SQUQKK0JBQknEhiBNSUxPU0FWCitCQUJJxIYgTUlSQQorQkFCScSGIE1JUkEKK0JBQknEhiBNSVJKQU5BCitCQUJJxIYgTUlST1NMQVYKK0JBQknEhiBNSVJPU0xBVgorQkFCScSGIE1JUk9TTEFWCitCQUJJxIYgTU9NxIxJTE8KK0JBQknEhiBNT01JUgorQkFCScSGLU1SS8WgScSGIEpVTEtBCitCQUJJxIYgTVVSSVoKK0JBQknEhiBOQURBCitCQUJJxIYgTkFEQQorQkFCScSGIE5BREEKK0JBQknEhiBOQVRBxaBBCitCQUJJxIYgTkVERUxKS08KK0JBQknEhiBORU5BRAorQkFCScSGIE5JS09MQQorQkFCScSGIE5JS09MQQorQkFCScSGIE5JS09MQQorQkFCScSGIE9MR0lDQQorQkFCScSGIE9TVE9KQQorQkFCScSGIE9TVE9KQQorQkFCScSGIFBFUlNBCitCQUJJxIYgUEVSU0lEQQorQkFCScSGIFBFVEFSCitCQUJJxIYgUEVUQVIKK0JBQknEhiBQRVRBUgorQkFCScSGIFBFVEFSCitCQUJJxIYgUEVUQVIKK0JBQknEhiBQUkVEUkFHCitCQUJJxIYgUkFERU5LTworQkFCScSGIFJBREUKK0JBQknEhiBSQURFCitCQUJJxIYgUkFESU5LQQorQkFCScSGIFJBRElTQVYKK0JBQknEhiBSQURJVk9KRQorQkFCScSGIFJBRE9KRQorQkFCScSGIFJBRE9KS0EKK0JBQknEhiBSQURPSktBCitCQUJJxIYgUkFET01JUgorQkFCScSGIFJBRE9TTEFWCitCQUJJxIYgUkFET1ZBTgorQkFCScSGIFJBRE9WQU4KK0JBQknEhiBSQUpLTworQkFCScSGIFJBSktPCitCQUJJxIYgUkFOS08KK0JBQknEhiBTQcWgQQorQkFCScSGIFNBVk8KK0JBQknEhiBTTEFERQorQkFCScSGIFNMQVZJQ0EKK0JBQknEhiBTTE9CT0RBTgorQkFCScSGIFNMT0JPREFOCitCQUJJxIYgU01JTEpLQQorQkFCScSGIFNNSUxKS0EKK0JBQknEhiBTTkXFvUFOQQorQkFCScSGIFNPRklKQQorQkFCScSGIFNUQUtBCitCQUJJxIYgU1RBTktPCitCQUJJxIYgU1RFVkFOCitCQUJJxIYgU1RFVkFOCitCQUJJxIYgU1RFVkFOCitCQUJJxIYgU1RFVkFOCitCQUJJxIYgU1RFVkFOCitCQUJJxIYgU1RFVk8KK0JBQknEhiBTVkVUTEFOQQorQkFCScSGIFNWRVRMQU5BCitCQUJJxIYgVE9NTworQkFCScSGIFZBU0EKK0JBQknEhiBWQVNBCitCQUJJxIYgVkVSQQorQkFCScSGIFZFUklDQQorQkFCScSGIFZFU05BCitCQUJJxIYgVklET1NBVkEKK0JBQknEhiBWVUpPCitCQUJJxIYgVlVLTUFOCitCQUJJxIYgWkFHT1JLQQorQkFCScSGIFpEUkFWS08KK0JBQknEhiBaT1JBTgorQkFCScSGIFpPUkFOCitCQUJJxIYgWk9SS0EKK0JBQklKQU5PVknEhiBKVUxLQQorQkFCSUxPTiBWTEFESU1JUgorQkFCSUxPTiBWTEFESU1JUgorQkFCSU4gxJBPUsSQRQorQkFCSU4gQk9HREFOCitCQUJJTiBCUkFOSVNMQVYKK0JBQklOIERJTUlUUklKRQorQkFCSU4gRFXFoEFOCitCQUJJTiBKT1ZBTgorQkFCSU4gS0FUQVJJTkEKK0JBQklOIEtSSVNUSU5BCitCQUJJTiBMQVpBUgorQkFCSU4gTEpVQk9NSVIKK0JBQklOIE1BUklKQQorQkFCSU4gTUFSSU4KK0JBQklOIE1JSEFKTE8KK0JBQklOIE1JTEFOCitCQUJJTiBNSUxFTkEKK0JBQklOIE1JTEVOS08gRFIgSU5HCitCQUJJTiBNSUxFTktPCitCQUJJTiBNSU9EUkFHCitCQUJJTiBNSVJKQU5BCitCQUJJTiBNSVJKQU5BCitCQUJJTiBOQURBCitCQUJJTiBOSUtPTEEKK0JBQklOIFBFVEFSCitCQUJJTiBSQURPSktBCitCQUJJTiBTQVZBCitCQUJJTiBaT1JBTgorQkFCSkFLIFNMT0JPREFOCitCQUJLQSBKQU4KK0JBQk9SQUMgRFJBR0FOCitCQUJPVknEhiDEjEVET01JUgorQkFCT1ZJxIYgQlJBTklTTEFWCitCQUJPVknEhiBKQVNNSU5BCitCQUJPVknEhiBKRUxFTkEKK0JBQk9WScSGIEpPVkFOCitCQUJPVknEhiBMSlVCT01JUgorQkFCT1ZJxIYgTUlIQUlMTworQkFCT1ZJxIYgTUlMSVNBVgorQkFCT1ZJxIYgTU9NxIxJTE8KK0JBQk9WScSGIFNJTknFoEEgRFIKK0JBQk9WScSGIFRPTUlTTEFWCitCQUJPVknEhiBaT1JBCitCQUNLT1ZJxIYgRE9CUk9TTEFWCitCQUNLT1ZJxIYgRFJBR0FOCitCQUNLT1ZJxIYgTUFSSUpBCitCQUNLT1ZJxIYgTUlMSUNBCitCQUNLT1ZJxIYgTUlMSVZPSkUKK0JBQ0tPVknEhiBNSUxPUkFECitCQUNLT1ZJxIYgTUlMT1ZBTgorQkFDS09WScSGIFJBRElWT0pFCitCQURBIEnFoFRWQU4KK0JBREFMScSGIE1BSkRBCitCQURBTkpBQyBKRUxFTkEKK0JBRE5KQVIgTUlMQU4KK0JBRE5KQVIgTUlMSVZPSkUKK0JBRE5KQVIgVkxBRE8KK0JBRE5KQVJFVknEhiBBTEVLU0FOREFSIERJUEwgUFJBVk5JSworQkFETkpBUkVWScSGIEJPxb1JREFSCitCQUROSkFSRVZJxIYgTUlMQU5BCitCQUROSkFSRVZJxIYgTUlPRFJBRworQkFETkpBUkVWScSGIFJBRE/FoAorQkFETkpBUkVWScSGIFNUQU5BCitCQURPVklOQUMgRFJBR1VUSU4KK0JBRE9WSU5BQyBOSUtPTEEKK0JBRFJLScSGIE5JS09MQQorQkFEUkxKSUNBIERVxaBJQ0EKK0JBRFJMSklDQSBHQVZSQQorQkFEUkxKSUNBIExBWkFSCitCQURSTEpJQ0EgTUxBREVOCitCQURSTEpJQ0EgT0xHQQorQkFEUkxKSUNBIFBFVEFSCitCQURSTEpJQ0EgUkFET0pLQQorQkFGVVMgTEFTTE8KK0JBR0kgxJBVTEEKK0JBR0ktQkVOS09WScSGIFBBTAorQkFHSSBGRVJFTkMKK0JBR0kgScWgVFZBTgorQkFHSSBKQU5PxaAKK0JBR0nEhiBNSVJKQU5BCitCQUdJTkogTEFaQVIKK0JBR0lOSiBMRVBPU0FWQQorQkFHTEFWQSBNSUxBTgorQkFHT05KQSBKQU4KK0JBR09OSkEgTUFSSUpBCitCQUdPTkpBIE5BREEKK0JBSCBFUk5BCitCQUhNQU4gTUFSS08KK0JBSFRJSkFSRVZJxIYgSkVMQQorQkFIVU4gTklLT0xBCitCQUhVTiBQRVRBUgorQkFJxIYgTUlSS08KK0JBScSGIFNUQU5BCitCQUrEjEVUQSBNT03EjElMTworQkFKxIxFVEEgUkFET1NMQVYKK0JBSsSMRVRJxIYgQk9HREFOIERSCitCQUrEjEVUScSGIExKVUJJQ0EKK0JBSsSMRVRJxIYgTUFSSUpBCitCQUrEjEVUScSGIE1BUktPCitCQUrEjEVUScSGIE1JTEVOS08KK0JBSsSMRVRJxIYgTUlSS08KK0JBSsSMRVRJxIYgUEFWTEUKK0JBSsSMRVRJxIYgUEVUQVIKK0JBSsSMRVYgSk9WQU4KK0JBSsSMRVYgTUlSSkFOQQorQkFKxaBBTlNLSSBEUkFHT1NMQVYKK0JBSsWgQU5TS0kgSk9WQU4KK0JBSsWgQU5TS0kgTEpJTEpBTkEKK0JBSsWgQU5TS0kgTUlMQURJTgorQkFKxaBBTlNLSSBNSUxFTktPCitCQUrFoEFOU0tJIFJBRE9WQU4KK0JBSsWgQU5TS0kgU0FWQQorQkFKxaBBTlNLSSBTQVZBCitCQUrFoEFOU0tJIFNNSUxKQQorQkFKxaBBTlNLSSBaT1JBTgorQkFKxaBFViBEUkFHT01JUgorQkFKxaBFViBJTElKQQorQkFKxaBFViBNSUxJQ0EKK0JBSsWgRVYgU1RFVkFOCitCQUrFoEVWIFNWRVRJU0xBVgorQkFKxaBJxIYgxb1BUktPCitCQUrFoEnEhiBEUkFHQU4KK0JBSsWgScSGIE1JTEFOCitCQUpBIMSQT1LEkEUKK0JBSkEgU1RFVkFOCitCQUpBQyBCT1JJU0xBVgorQkFKQUMgRU1JTElKQSBEUgorQkFKQUMgSVNBSworQkFKQUMgTEpVQklDQQorQkFKQUMgTUlMQU4KK0JBSkFDIE1JTE/FoAorQkFKQUMgTUlMVVRJTgorQkFKQUMgU1ZFVExBTkEKK0JBSkFDIFZFUkEKK0JBSkFHScSGIEtBVElDQQorQkFKQUdJxIYgTUlMRU5BCitCQUpBR0nEhiBNSU9EUkFHCitCQUpBR0nEhiBNT03EjElMTworQkFKQUdJxIYgTU9NxIxJTE8KK0JBSkFHScSGIFBFVEFSCitCQUpBR0nEhiBSQURBCitCQUpBR0nEhiBSQURFCitCQUpBR0nEhiBTQVZPCitCQUpBR0nEhiBTVkVUT1pBUgorQkFKQUdJxIYgVEFNQVJBCitCQUpBS0nEhiBNQVJBCitCQUpBTE8gSk9WQU5LQQorQkFKQUxPVknEhiBTT0ZJSkEKK0JBSkFMT1ZJxIYgU1ZFVElTTEFWCitCQUpBVCBNSUxPUkFECitCQUpBVCBNSVJLTworQkFKQVQgTUlSS08KK0JBSkFUIE5FREVMSktPCitCQUpBVCBOSUtPTEEKK0JBSkFUIFJBRE9WQU4KK0JBSkFUIFRSSUZVTgorQkFKQVQgVkVMSU1JUgorQkFKQVpFVCBKRVZHRU5JSkEKK0JBSkFaRVQgVE9ET1IKK0JBSkFaRVQgVkVSQSBESVBMIElORworQkFKQVpFVE9WIERSQUdBTgorQkFKQVpFVE9WIERSQUdBTgorQkFKQVpFVE9WIFJBRElWT0oKK0JBSkFaSVQgTUlMQU4KK0JBSkJBUkFLIElWQU4KK0JBSkdPIFpPTFRBTgorQkFKSSBBUkFOS0EKK0JBSkktSFJJQkFSIEpVTElKQQorQkFKSSBTVEVWQU4KK0JBSknEhiDEjEVET01JUgorQkFKScSGIMW9QVJLTworQkFKScSGIMW9SUtBCitCQUpJxIYgxb1JVktPCitCQUpJxIYgxb1JVk9KSU4KK0JBSknEhiDEkE9SxJBFIERSCitCQUpJxIYgxJBVUkEKK0JBSknEhiDEkFVSTworQkFKScSGIEFMRUtTQU5EQVIKK0JBSknEhiBCT8WgS08KK0JBSknEhiBCT8W9SUNBCitCQUpJxIYgQk9HREFOCitCQUpJxIYgQk9HT0xKVUIKK0JBSknEhiBCT0pLQQorQkFKScSGIEJPUkEKK0JBSknEhiBCT1JJVk9KRQorQkFKScSGIEJPU0lMSktBCitCQUpJxIYgQlJBTklTTEFWCitCQUpJxIYgQlJBTklTTEFWCitCQUpJxIYgQlJBTklTTEFWCitCQUpJxIYgQlJBTklTTEFWCitCQUpJxIYgQlJBTklTTEFWCitCQUpJxIYgQlJBTktPCitCQUpJxIYgREFOSUNBCitCQUpJxIYgRElNSVRSSUpFCitCQUpJxIYgRFJBR0lDQQorQkFKScSGIERSQUdPU0xBVgorQkFKScSGIERSQUdVVElOCitCQUpJxIYgRFXFoEFOCitCQUpJxIYgRFXFoEFOCitCQUpJxIYgRFXFoEFOCitCQUpJxIYgRFXFoEFOCitCQUpJxIYgRFXFoEFOCitCQUpJxIYgRFXFoEFOCitCQUpJxIYgRFXFoEtPCitCQUpJxIYgR09KS08KK0JBSknEhiBHT1JEQU5BCitCQUpJxIYgSUxJSkEKK0JBSknEhiBJTElOS0EKK0JBSknEhiBJTE9OQQorQkFKScSGIEpBR0/FoAorQkFKScSGIEpBTktPCitCQUpJxIYgSkFOS08KK0JBSknEhiBKRUxJQ0EKK0JBSknEhiBKT1ZBTgorQkFKScSGIEpPVkFOCitCQUpJxIYgSk9WQU4KK0JBSknEhiBKT1ZJQ0EKK0JBSknEhiBLUlNUQQorQkFKScSGIExBWkFSCitCQUpJxIYgTFVLQQorQkFKScSGIE1BUkEKK0JBSknEhiBNQVJBCitCQUpJxIYgTUFSSUNBCitCQUpJxIYgTUFSSUpBCitCQUpJxIYgTUFSSUpBCitCQUpJxIYgTUVMQU5JSkEKK0JBSknEhiBNScSGTworQkFKScSGIE1JSEFKTE8gRFIKK0JBSknEhiBNSUxBTiBEUiBQUk9GCitCQUpJxIYgTUlMQU4KK0JBSknEhiBNSUxBTgorQkFKScSGIE1JTEFOCitCQUpJxIYgTUlMQU4KK0JBSknEhiBNSUxBTgorQkFKScSGIE1JTEFOCitCQUpJxIYgTUlMQU4KK0JBSknEhiBNSUxFTktPCitCQUpJxIYgTUlMRQorQkFKScSGIE1JTElDQQorQkFKScSGIE1JTEtBCitCQUpJxIYgTUlMT1ZBTgorQkFKScSGIE1JT0RSQUcKK0JBSknEhiBNSVJLTworQkFKScSGIE1JUktPCitCQUpJxIYgTUlST1NMQVYKK0JBSknEhiBNSVJPU0xBVgorQkFKScSGIE1JUk9TTEFWCitCQUpJxIYgTUlST1NMQVYKK0JBSknEhiBNSVRBUgorQkFKScSGIE1JVEFSCitCQUpJxIYgTUlUQQorQkFKScSGIE1MQURFTgorQkFKScSGIE1MQURFTgorQkFKScSGIE1MQURFTgorQkFKScSGIE1PTcSMSUxPCitCQUpJxIYgTkFEQQorQkFKScSGIE5BREEKK0JBSknEhiBOQVRBxaBBCitCQUpJxIYgTkXEkE8KK0JBSknEhiBORVZFTkEKK0JBSknEhiBOSUtPTEEKK0JBSknEhiBOSUtPTEEKK0JBSknEhiBQRVJBCitCQUpJxIYgUEVSTworQkFKScSGIFBFUlNJREEKK0JBSknEhiBQRVRBUgorQkFKScSGIFBFVEFSCitCQUpJxIYgUkFERQorQkFKScSGIFJBREUKK0JBSknEhiBSQURFCitCQUpJxIYgUkFESVZPSgorQkFKScSGIFJBRE1JTEEKK0JBSknEhiBSQURPU0xBVgorQkFKScSGIFNBVkEKK0JBSknEhiBTQVZPCitCQUpJxIYgU0lNTworQkFKScSGIFNJTknFoEEKK0JBSknEhiBTTEFWS08KK0JBSknEhiBTTEFWS08KK0JBSknEhiBTTkXFvUFOQQorQkFKScSGIFNORcW9QU5BCitCQUpJxIYgU09GSUpBCitCQUpJxIYgU09GSUpBCitCQUpJxIYgU09GSUpBCitCQUpJxIYgU09OSkEKK0JBSknEhiBTUEFTT0pFCitCQUpJxIYgU1RBTklTTEFWCitCQUpJxIYgU1RFVkFOCitCQUpJxIYgU1RFVkFOCitCQUpJxIYgU1RFVkFOCitCQUpJxIYgU1RFVkFOCitCQUpJxIYgU1ZFVExBTkEKK0JBSknEhiBUT0RPUgorQkFKScSGIFRPTUlTTEFWCitCQUpJxIYtVFVSSU5TS0kgTUlSSkFOQQorQkFKScSGIFZBU0EKK0JBSknEhiBWQVNBCitCQUpJxIYgVkVST05BCitCQUpJxIYgVkVTRUxJTgorQkFKScSGIFZJREEKK0JBSknEhiBWTEFESU1JUgorQkFKScSGIFZMQURJTUlSCitCQUpJxIYgVkxBRElNSVIKK0JBSknEhiBaT1JBTktBCitCQUpJxIYgWk9SQU4KK0JBSknEhiBaT1JBTgorQkFKScSGIFpPUkFOCitCQUpJxIYgWk9SSUNBCitCQUpJTE8gRFJBR09NSVIKK0JBSklMTyBEUkFHT01JUgorQkFKSUxPIERVxaBBTgorQkFKSUxPIFBFUk8KK0JBSklMTyBWSURPU0FWQQorQkFKSUxPViBMSklMSkFOQQorQkFKSU4gQk9SSVNMQVYKK0JBSklOIEJSQU5JU0xBVgorQkFKSU4gR0FWUklMTworQkFKSU4gSVZBTgorQkFKSU4gS0HEhkEKK0JBSklOIExKVUJJQ0EKK0JBSklOIE1JTEFOS0EKK0JBSklOIE5BREEKK0JBSklOIFJBRE9KS0EKK0JBSklOIFJBSktPCitCQUpJTiBSVcW9SUNBCitCQUpJTiBTQVZBCitCQUpJTiBTQVZFVEEKK0JBSklOIFNUT0pBTktBCitCQUpLSU4gQU7EkEVMS08KK0JBSktJTiBTVE9KQU4KK0JBSktJTiBTVkVUT1pBUgorQkFKS0lOIFZFU0VMSU4KK0JBSktJTiBWSVRPTUlSCitCQUpPUiBNQVJJSkEKK0JBSk9WScSGIEJSQU5LTworQkFKT1ZJxIYgTUFSQQorQkFKT1ZJxIYgTUlUQVIKK0JBSk9WScSGIFZFUkEKK0JBSlJBTUkgxaBFRktJCitCQUpSQU1JIMWgRUZLSQorQkFKUkFNSSBBR1JPTgorQkFKUkFNSSBCQVRJSkEKK0JBSlJBTUkgR0FOSQorQkFKUkFNSSBTS0VOREVSCitCQUpSQU1PVknEhiDFoEVSSUYKK0JBSlJBTU9WScSGIEhJVlpJSkEKK0JBSlJJxIYgUkFETUlMQQorQkFKUyBGUkFOQworQkFKVU5PVknEhiBNTEFERU4KK0JBSlVTIEpPxb1FRgorQkFLxaBBIMSQT1LEkEUKK0JBS8WgQSBJTVJFCitCQUvFoEEgSk/FvUVGCitCQUvFoEEgTEFKT8WgCitCQUvFoEEgTEFKT8WgCitCQUvFoEEgTEFTTE8KK0JBS8WgQSBNQUdEQQorQkFLxaBBIE1JSEFKTE8KK0JBS8WgQSBaT0xUQU4KK0JBS8WgQSBaT0xUQU4KK0JBS0EgQU5UQUwKK0JBS0EgScWgVFZBTgorQkFLQSBJxaBUVkFOCitCQUtBIEnFoFRWQU4KK0JBS0EgSUJPTEpBCitCQUtBIE1JTElDQQorQkFLQUkgSVJFTgorQkFLQUogSVZBTgorQkFLQUogTUlMSktPCitCQUtBSknEhiBNSUxBTgorQkFLQUpJTiBET0JSSUxBCitCQUtBSklOIExKVUJPTUlSCitCQUtBSklOIE5FVkVOS0EKK0JBS0FKSU4gVE9ET1IKK0JBS0FMScSGIMSQVUxJTktBIFNVRElKQQorQkFLQUxJxIYgTUlIQUpMTworQkFLQUxJxIYgVk9KSVNMQVYKK0JBS0FMT1ZJxIYgTkVNQU5KQQorQkFLRVYgxJBPUsSQRQorQkFLSSBJUkVOQQorQkFLSSBPVE8KK0JBS0kgVkVSQQorQkFLScWgIMSMRURPTUlSIERJUEwgSU5HCitCQUtJxIYgQk9SSVZPSkUKK0JBS0nEhiBESU1JVFJJSkUKK0JBS0nEhiBEVcWgQU4gRElQTCBJTkcKK0JBS0nEhiBJVkFOCitCQUtJxIYgSk9WQU4KK0JBS0nEhiBLT1NUQQorQkFLScSGIE1JSk9NSVIKK0JBS0nEhiBNSUxPxaAKK0JBS0nEhiBNSUxPxaAKK0JBS0nEhiBNSUxVVElOCitCQUtJxIYgTUlSQQorQkFLScSGIE1JUk9TTEFWCitCQUtJxIYgTUlST1NMQVYKK0JBS0nEhiBOQURBCitCQUtJxIYgU0lOScWgQQorQkFLScSGIFNPTkpBCitCQUtMQUnEhiBKT1ZBTktBCitCQUtNQVogTEFaTworQkFLTUFaIExKVUJBTgorQkFLTUFaIFpPUkFOCitCQUtPIE1JxaBBCitCQUtPxIxFVknEhiBNSVJKQU5BCitCQUtPxaAgxJBFUsSQSQorQkFLT8WgIEdBQk9SCitCQUtPxaAgTEFKT8WgCitCQUtPxaAgTEFTTE8KK0JBS0/FoCBNQVJJSkEKK0JBS0/FoCBQQUwKK0JBS0/FoCBQRVRBUgorQkFLT8WgIFRFUkVaSUpBCitCQUtPVknEhiBSQURFCitCQUtUQUkgU1RFVkFOCitCQUtVTknEhiBJVkFOCitCQUtVTknEhiBWSURPU0FWQQorQkFLVknEhiBNSUxBTgorQkFMIEtBUkxPCitCQUwgWlZPTklNSVIKK0JBTMSMQUtPVknEhiBWQVNPCitCQUzFoEnEhiBSQU5LQQorQkFMQSBFVEVMS0EKK0JBTEEgScWgVFZBTgorQkFMQSBKQU5PxaAKK0JBTEEgSlVMSUpBTkEKK0JBTEEgSlVMSUpBCitCQUxBIEtBUkxPCitCQUxBIEtBUkxPCitCQUxBIEtBUk9MSgorQkFMQSBMQURJU0xBVgorQkFMQSBNSUhBTEoKK0JBTEEgVEVSRVoKK0JBTEHFoEEgSk/FvUVGCitCQUxBxIYgQU5BCitCQUxBxIYgRFXFoEFOS0EKK0JBTEHEhiBKT1ZBTgorQkFMQcSGIExKVUJPCitCQUxBxIYgTUlST1NMQVYKK0JBTEHEhiBNSVJPU0xBVgorQkFMQcSGIFNMQVZLTworQkFMQcSGIFNSQklTTEFWCitCQUxBxIYgU1RFVkFOCitCQUxBxIYgVlVKTworQkFMQcSGIFpPUkEKK0JBTEHFvSDFoEFORE9SCitCQUxBxb0gxJBVTEEKK0JBTEHFvSDEkFVMQQorQkFMQcW9IMSQVUxBCitCQUxBxb0gxJBVTEEKK0JBTEHFvSBBREFMQkVSVAorQkFMQcW9IEFOQQorQkFMQcW9IEVURUxLQQorQkFMQcW9IEdFWkEKK0JBTEHFvSBHRVpBCitCQUxBxb0gSVJFTkEKK0JBTEHFvSBJVkFOS0EKK0JBTEHFvSBKQU5JS0EKK0JBTEHFvSBKRUxJU0FWRVRBCitCQUxBxb0gSk9TSVAKK0JBTEHFvSBKT1ZBTgorQkFMQcW9IEtBVEFSSU5BCitCQUxBxb0gTEFTTE8KK0JBTEHFvSBQQUwKK0JBTEHFvSBQQUwKK0JBTEHFvS1QSVJJIMSQRVLEkAorQkFMQcW9IFpJVEEKK0JBTEHFvUVWIFNUSVBBTgorQkFMQcW9RVZJxIYgU0xPQk9EQU5LQQorQkFMQUJBTiBCT8WgS08KK0JBTEFCQU4gQlJBTktPCitCQUxBQkFOIE1JTE9WQU4KK0JBTEFCQU4gTUlMVVRJTgorQkFMQUJBTiBORcSQTworQkFMQUJBTiBQRVRBUgorQkFMQUJBTiBTQVZPCitCQUxBQkFOIFNQT01FTktBCitCQUxBQkFOIFZJRAorQkFMQUJBTiBWVUtBxaBJTgorQkFMQUJBTk9WIEFOQQorQkFMQUJBTk9WScSGIEJPxaBLTworQkFMQUJBTk9WScSGIE1JTE9SQUQKK0JBTEFCQU5PVknEhiBOSUtPTEEKK0JBTEFCQU5PVknEhiBQRVRBUgorQkFMQUJBTk9WScSGIFZPSklTTEFWCitCQUxBSiBNSUhBSkxPCitCQUxBTEnEhiBExb1FVkFEIERJUEwgSU5HCitCQUxBTEnEhiBExb1FVkFECitCQUxBTkVTS08gQUxFS1NBTkRBUgorQkFMQVQgSVJFTkEKK0JBTEFUT04gxJBFUsSQCitCQUxBVE9OIMSQRVLEkAorQkFMQVRPTiDEkEVSxJAKK0JBTEFUT04gQkVMQQorQkFMQVRPTiBJTVJFCitCQUxBVE9OIE1BR0RPTE5BCitCQUxBVE9OIFBFVEFSCitCQUxDQSBWTEFESU1JUgorQkFMQ0EgVkxBRElNSVIKK0JBTERJxIYgU0xPQk9EQU4KK0JBTEVOT1ZJxIYgQU5EUklKQQorQkFMRVIgSk9TSVAKK0JBTEVWScSGIE1JTElWT0oKK0JBTEdPIEZSQU5DScWgS0EKK0JBTEkgQUxFS1NBTkRSQQorQkFMSSBHQUJPUgorQkFMSSBMQVNMTworQkFMScSGIEVTQUQKK0JBTEnFvSBJTERBCitCQUxJxb0gTUlIQUxKCitCQUxJxb0gWk9MVEFOCitCQUxJTkQgUEFMCitCQUxJTkQgU0lMVklBCitCQUxJTk9WScSGIE1JTEVWQQorQkFMSU5PVknEhiBTSU5JxaBBCitCQUxJTlQgxaBBTkRPUiBNUgorQkFMSU5UIMW9SUdNVU5ECitCQUxJTlQgxJBPUsSQRQorQkFMSU5UIMSQVVJBCitCQUxJTlQgQU5EUkVKCitCQUxJTlQgREXFvUUKK0JBTElOVCBJxaBUVkFOCitCQUxJTlQgSUxPTkEKK0JBTElOVCBJTVJFCitCQUxJTlQgSU1SRQorQkFMSU5UIEpPxb1FRgorQkFMSU5UIEpPxb1FRgorQkFMSU5UIEpPU0lQCitCQUxJTlQgSk9TSVAKK0JBTElOVCBKT1NJUAorQkFMSU5UIEpVTElKQU5BCitCQUxJTlQgS0FST0xKCitCQUxJTlQgTUHEhkHFoAorQkFMSU5UIE1BUkdBUkVUQQorQkFMSU5UIE1BUklBCitCQUxJTlQgTUFSSUpBCitCQUxJTlQgTUFSSUpBCitCQUxJTlQgTUlIQUlMTworQkFMSU5UIE1JUk9TTEFWCitCQUxJTlQtTUlUUk9WScSGIE9MR0EKK0JBTElOVCBSQURPU0xBVgorQkFMSU5UIFJPQkVSVAorQkFMSU5UIFNMQVZPTUlSCitCQUxKIEJSQU5LTworQkFMSiBNSUxPUkFECitCQUxKIFNBVk8KK0JBTEpBIElEUklaCitCQUxKQUsgxIxFRE9NSVIKK0JBTEpPxaBFVknEhiBBTEVLU0FOREFSCitCQUxKT8WgRVZJxIYgQk9HREFOS0EKK0JBTEpPxaBFVknEhiBKT1ZBTgorQkFMSk/FoEVWScSGIE1JUk8KK0JBTEpPWk9WScSGIE9MSVZFUkEKK0JBTEpPWk9WScSGIFRPTUlTTEFWIERSCitCQUxLT1ZPSiBWTEFESU1JUgorQkFMTk/FvUFOIE5FVkVOS0EKK0JBTE5Pxb1BTiBTSU1BCitCQUxPIEdBxaBQQVIKK0JBTE8gUEVUQVIKK0JBTE/FoCBOVUNBCitCQUxPxaAgVE9ET1IKK0JBTE/FoCBUT0RPUgorQkFMT0JBTiBNSUxBTgorQkFMT0JBTiBNSUxBTgorQkFMT0cgxaBBTkRPUgorQkFMT0cgxb1JVktBCitCQUxPRyDFvVXFvUFOQQorQkFMT0cgxJBPUsSQRQorQkFMT0cgxJBPUsSQRQorQkFMT0cgxJBPUsSQRQorQkFMT0cgxJBVUkEKK0JBTE9HIMSQVVJBCitCQUxPRyBBTEVLU0FOREFSCitCQUxPRyBBTkEKK0JBTE9HIEFOQQorQkFMT0cgQU5BCitCQUxPRyBBTkRSQcWgCitCQUxPRyBBTkRSSUpBCitCQUxPRyBCRUxBCitCQUxPRyBCUkFOS08KK0JBTE9HIERFxb1FCitCQUxPRyBERcW9RQorQkFMT0cgRFJBR0FOCitCQUxPRyBEVcWgQU5LQQorQkFMT0cgRkVSRU5DCitCQUxPRyBGUkFOSkEKK0JBTE9HIEZSQU5KQQorQkFMT0cgRlJBTkpBCitCQUxPRyBJxaBUVkFOCitCQUxPRyBJQk9KS0EKK0JBTE9HIElNUkUKK0JBTE9HIElNUkUKK0JBTE9HIEpPxb1FRgorQkFMT0cgSk9DQQorQkFMT0cgSk9WQU4KK0JBTE9HIEpVTElKQU5BCitCQUxPRyBKVUxJSkFOQQorQkFMT0cgS0FMTUFOCitCQUxPRyBLQVJPTEoKK0JBTE9HIEtBUk9MSgorQkFMT0cgS0FUQVJJTkEKK0JBTE9HIExBRElTTEFWCitCQUxPRyBMQURJU0xBVgorQkFMT0cgTEFTTE8KK0JBTE9HIE1BR0RBCitCQUxPRyBNQVJBCitCQUxPRyBNQVJJSkEKK0JBTE9HIE1BUklKQQorQkFMT0cgTUFSSUpBCitCQUxPRyBNQVJJSkEKK0JBTE9HIE1BUklKQQorQkFMT0cgTUFSVEEKK0JBTE9HIE1JTEVOQQorQkFMT0cgTUlSS08KK0JBTE9HIE5JS09MQQorQkFMT0cgTklLT0xBCitCQUxPRyBQScWgVEEKK0JBTE9HIFBJUk/FoEtBCitCQUxPRyBTSU1BCitCQUxPRyBTTUlMSkEKK0JBTE9HIFNQT01FTktBCitCQUxPRyBTVEVWQU4KK0JBTE9HIFNURVZBTgorQkFMT0cgU1RFVkFOCitCQUxPRyBUSUJPUgorQkFMT0cgVkVMSU1JUgorQkFMT0cgWk9SQU4KK0JBTE9LIEnFoFRWQU4KK0JBTE9WScSGIE1JTEnEhgorQkFMVEEgQU5BCitCQUxUScSGIERBTklDQQorQkFMVEnEhiBSQURNSUxBCitCQUxUScSGIFZMQURJTUlSIERSCitCQUxUT1ZJxIYgRFJBR0FOCitCQUxUT1ZJxIYgUEVUQVIKK0JBTFVOT1ZJxIYgSVZBTgorQkFNQlVMT1ZJxIYgTUlMS0EKK0JBTiBTVEVWQU4KK0JBTsSMRVZJxIYgUEVUQVIKK0JBTsSMRVZJxIYgUkFERQorQkFOxIxJIEJBTElOVAorQkFOxIxJIEtBUk9MSgorQkFOxIxJxIYgxb1JVktPCitCQU7EjEnEhiBBTEVLU0FOREFSCitCQU7EjEnEhiBKT1ZBTgorQkFOxIxJxIYgSlVMS0EKK0JBTsSMScSGIExBWkEKK0JBTsSMScSGIE1BUklKQQorQkFOxIxJxIYgU09GSUpBCitCQU7EjEnEhiBTVEVWSUNBCitCQU7EjEnEhiBUT0RPUgorQkFOxJBVUiBNSVJLTworQkFOQcSGQU5JTiBMSklMSkFOQQorQkFOQcSGQU5JTiBPTEdBCitCQU5BSSBUSUJPUgorQkFOQUkgVkVSQQorQkFOQUogSk9TSVAKK0JBTkRBIMW9SVZLTworQkFOREnEhiBCTEFHT0pFCitCQU5EScSGIEpFTElDQQorQkFOREnEhiBMSlVCT01JUgorQkFOREnEhiBMSlVCTworQkFOREnEhiBSQURFCitCQU5EScSGIFNBVktBCitCQU5EScSGIFRPTUlTTEFWCitCQU5EScSGIFZFUklDQQorQkFOREnEhiBWVUpBRElOCitCQU5ESU4gxb1JVk9SQUQKK0JBTkRJTiBJVkFOCitCQU5ESU4gS0FUSUNBCitCQU5ESU4gTUlPRFJBRworQkFORElOIE1MQURFTgorQkFORE9CUkFOU0tJIE9MR0EKK0JBTkRPTE8gRFJBR0lDQQorQkFORFVLQSBEUkFHVVRJTgorQkFORkkgTUFSSUpBCitCQU5HTyBMSlVERVZJVAorQkFOScSGIEFOxJBBCitCQU5JxIYgQk/FvUlEQVIKK0JBTknEhiBCUkFOS08gRFIKK0JBTknEhiBFTUlMSUpBCitCQU5JxIYgRVZJQ0EKK0JBTknEhiBLQVRJQ0EKK0JBTknEhiBNSUxPxaAKK0JBTknEhiBNSUxPVkFOCitCQU5JxIYgUEFORQorQkFOScSGIFBFVEFSCitCQU5JxIYgUkFERQorQkFOScSGIFJBRE9NSVIKK0JBTknEhiBSQVNUS08KK0JBTknEhiBSVcW9SUNBCitCQU5JxIYgU0xBVktPCitCQU5JxIYgU1ZFVE9aQVIKK0JBTknEhiBaT1JLQQorQkFOScSGRVZJxIYgSkVMRU5BCitCQU5JxIZFVknEhiBWRVNFTElOCitCQU5JQS3FvUlWQURJTk9WScSGIE1JUkpBTkEKK0JBTkpBxaAgxJBVUkEKK0JBTkpBQyDEjEVET01JUgorQkFOSkFDIMSMRURPCitCQU5KQUMgxIxFRE8KK0JBTkpBQyDFoFBJUk8gRElQTCBJTkcKK0JBTkpBQyDFvUlWQU4KK0JBTkpBQyDEkE9SxJBFCitCQU5KQUMgxJBPUsSQRQorQkFOSkFDIMSQT1LEkEUKK0JBTkpBQyBCT1NJTEpLQQorQkFOSkFDIERBTklMTworQkFOSkFDIERNSVRBUgorQkFOSkFDIERSQUdBTiBESVBMIElORworQkFOSkFDIERSQUdBTgorQkFOSkFDIERSQUdJQ0EKK0JBTkpBQyBEUkFHSUNBCitCQU5KQUMgRFXFoEFOCitCQU5KQUMgRFXFoEtPCitCQU5KQUMgRFXFoEtPCitCQU5KQUMgRU1JTAorQkFOSkFDIEdBVlJBCitCQU5KQUMgR09KS08KK0JBTkpBQyBKRUxFTkEKK0JBTkpBQyBKT1ZBTgorQkFOSkFDIEpPVkFOCitCQU5KQUMgS0FUSUNBCitCQU5KQUMgTUlMQU4KK0JBTkpBQyBNSUxBTgorQkFOSkFDIE1JTEUKK0JBTkpBQyBNSUxPUkFECitCQU5KQUMgTUlSS08KK0JBTkpBQyBORURFTEpLTworQkFOSkFDIE5JS09MQQorQkFOSkFDIE9MR0EKK0JBTkpBQyBQRVJPCitCQU5KQUMgUEVUQVIKK0JBTkpBQyBSQURBCitCQU5KQUMgUkFET05KQQorQkFOSkFDIFNBVkEKK0JBTkpBQyBTQVZBCitCQU5KQUMgU0FWRVRBCitCQU5KQUMgU0FWTworQkFOSkFDIFNMQVZLTworQkFOSkFDIFNMQVZOQQorQkFOSkFDIFNMT0JPREFOCitCQU5KQUMgU1RFVkFOCitCQU5KQUMgVEVPRE9SCitCQU5KQUMgVkVTTkEKK0JBTkpBQyBWSU5LTworQkFOSkFDIFZJVE9NSVIKK0JBTkpBQyBWT0pJU0xBVgorQkFOSkFJIEpBR0EKK0JBTkpBSSBKQU5PxaAKK0JBTkpBSSBKT1ZBTgorQkFOSkFJIExBSk/FoAorQkFOSkFJIE1BxIZBxaAKK0JBTkpBSSBNQVJJSkEKK0JBTkpBSSBST01BTgorQkFOSkFJIFJVxb1BCitCQU5KQU5BQyBCUkFOS08KK0JBTkpBTkFDIEJSQVRJU0xBVgorQkFOSkFOQUMgTUlMQU4KK0JBTkpBTkFDIFJBREUKK0JBTkpBTkFDIFNMQVZJQ0EKK0JBTkpBTklOIERBTklDQQorQkFOSkFOSU4gREFSQQorQkFOSkFOSU4gSkVMRU5BCitCQU5KQU5JTiBKRUxJU0FWRVRBCitCQU5KQU5JTiBKT1ZBTgorQkFOSkFOSU4gTkVERUxKS08KK0JBTkpBTklOIE5FREVMSktPCitCQU5KQU5JTiBOSUtPTEEKK0JBTkpBTklOIE5JS09MQQorQkFOSkFOSU4gUkFETUlMQQorQkFOSkFOSU4gU09GSUpBCitCQU5KQU5JTiBWRUxJTUlSCitCQU5KQVJJIExBSk/FoAorQkFOSkVHTEFWIEJPxb1BCitCQU5KRUdMQVYgRFJBR0FOCitCQU5KRUdMQVYgRFXFoEFOCitCQU5KRUdMQVYgTklLT0xBCitCQU5KRUdMQVYgUkFESVZPSgorQkFOSkVWScSGIFNMT0JPREFOS0EKK0JBTktBIExBSk/FoAorQkFOS09WQcSMS0kgxJBVUkEKK0JBTktPVkHEjEtJIEpPVkFOCitCQU5LT1ZBxIxLSSBNQVJJSkEKK0JBTktPVkHEjEtJIE5BREEKK0JBTktPVkHEjEtJIFBFVEFSCitCQU5LT1ZBxIxLSSBTQVZBCitCQU5LT1ZBxIxLSSBTVkVUT1pBUgorQkFOS09WScSGIE1JTFVOCitCQU5PVsSMQU5JTiBEUkFHSUNBCitCQU5PVsSMQU5JTiBNSUxBTgorQkFOT1bEjEFOSU4gTU9NxIxJTE8KK0JBTk9WQcSMS0kgxJBPUsSQRQorQkFOT1ZBxIxLSSBKT1ZBTgorQkFOT1ZBxIxLSSBNQVJJSkEKK0JBTk9WQcSMS0kgUlXFvUlDQQorQkFOT1ZJxIYgxb1BUktPCitCQU5PVknEhiDFvUlWT1JBRAorQkFOT1ZJxIYgRFXFoEFOCitCQU5PVknEhiBKT1ZBTktBCitCQU5PVknEhiBMRVBPU0FWQQorQkFOT1ZJxIYtTE9DIE5BREEKK0JBTk9WScSGIE1JTEFOCitCQU5PVknEhiBNSUxBTgorQkFOT1ZJxIYgTUlMSktPCitCQU5PVknEhiBOSUtPTEEKK0JBTk9WScSGIFNMQVZBCitCQU5PVknEhiBTTE9CT0RBTgorQkFOU0tJIEVSSUtBCitCQU5TS0kgTUFSSUpBCitCQVLEjElLSU4gxJBPUsSQRQorQkFSxaBJIEVORFJFCitCQVLFoEkgTEFTTE8KK0JBUkHEjEFOSU4gREFOSUNBCitCQVJBxIxBTklOIExBWkFSCitCQVJBxIxBTklOIFBBSkEKK0JBUkHEjEFOSU4gU0FWS0EKK0JBUkHEjEkgU1RFVkFOCitCQVJBxIxLT1YgxIxFRE9NSVIKK0JBUkHEjEtPViDEkE9SxJBFCitCQVJBxIxLT1YgR09SSU5LQQorQkFSQcSMS09WIE1JTEFOCitCQVJBxIxLT1YgU1JFRE9KRQorQkFSQcSMS09WIFZFU0VMSU4KK0JBUkHFoEVWScSGIE1JUk9TTEFWQQorQkFSQcWgRVZJxIYgVE9NSVNMQVYKK0JBUkHFoElOIEdPUkFOCitCQVJBxaBJTiBMSlVCT01JUgorQkFSQcWgSU4gTkVWRU5LQQorQkFSQcWgSU4gU0FWQQorQkFSQcSGIMW9QVJLTworQkFSQcSGIERSQUdJQ0EKK0JBUkHEhiBEVcWgQU5LQQorQkFSQcSGIEdPRElNSVIKK0JBUkHEhiBHT0pLTworQkFSQcSGIEpPU0lQCitCQVJBxIYgS09WSUxKS0EKK0JBUkHEhiBNSUxBTgorQkFSQcSGIE1JTE/FoAorQkFSQcSGIE1JTE/FoAorQkFSQcSGIE1JTE9TQVZBCitCQVJBxIYgTU9NxIxJTE8KK0JBUkHEhiBSQURPTkpBCitCQVJBxIYgU0FSQUZJTkEKK0JBUkHEhiBTVEFOSU1JUktBCitCQVJBxIYgVkVTRUxJTgorQkFSQcSGIFZJREFLCitCQVJBxIYgVlXEjElOQQorQkFSQUMgTUFMScWgQQorQkFSQUMgTUFSS08KK0JBUkFDIE5PVk8KK0JBUkFDIFRPTUlTTEFWCitCQVJBSkVWQUMgSk9WQQorQkFSQUtPIFNBVkEKK0JBUkFMScSGIE1JUk9TTEFWCitCQVJBTiBKQUtJTQorQkFSQU4gTUlIQUpMTworQkFSQU4gTUlST04gRElQTCBJTkcKK0JBUkFOSU4gVkFTSUxJSkUKK0JBUkFOSkFJIEpFTkUKK0JBUkFOSkkgRkVSRU5DCitCQVJBTkpJIEZFUkVOQworQkFSQU5KSSBMQVNMTworQkFSQU5KSSBQQVZMRQorQkFSQU5KSSBTVEVWQU4KK0JBUkFOT1ZTS0kgVkxBREEKK0JBUkFTIFRPTUEgRFIKK0JBUkFUIEFMRUtTQU5EQVIKK0JBUkFUIERSQUdJQ0EKK0JBUkFUIERSQUdJTkpBCitCQVJBVCBGRVJFTkMKK0JBUkFUIElNUkUKK0JBUkFUIE9MR0EKK0JBUkFUIE9TS0FSCitCQVJBVE9WIEJPxaBLTworQkFSQkFSScSGIEFOVEUKK0JBUkJBUknEhiBQQVZMRQorQkFSQkFURVNLT1ZJxIYgTEpVQknFoEEKK0JBUkJFUknEhiBEUkFHQU4KK0JBUkJFUknEhiBNSVJLTworQkFSQklSIEFOVEUKK0JBUkJJUiBMSlVCQQorQkFSQlUgVkFTQQorQkFSQlVMIE1BUklKQQorQkFSQlVMIE1JTEFOCitCQVJCVUwgTUlMQU4KK0JBUkJVTCBTQVZBCitCQVJCVUwgU1RPSkFOCitCQVJCVUwgVkxBRElTTEFWQQorQkFSQlVMT1YgRElNSVRSSUpFCitCQVJCVUxPViBET0JSSVZPSgorQkFSQlVMT1YgTUlMSVZPSgorQkFSQlVMT1YgTklLT0xBCitCQVJCVUxPVknEhiBEUkFHQU4KK0JBUkJVWkFOIEpBU05BCitCQVJCVVpBTiBSVcW9SUNBCitCQVJDQUwgxJBFUsSQCitCQVJDQUwgQU5BCitCQVJDQUwgSk/FvUVGCitCQVJDQUwgTEFTTE8gRElQTCBJTkcKK0JBUkNFTCBLQVRJQ0EKK0JBUkRBSyBBTEVLU0FOREFSCitCQVJEQUsgQU5LSUNBCitCQVJEQUsgTFVLQQorQkFSREnEhiDFvUVMSktPCitCQVJEScSGIE1JUktPCitCQVJET8WgIEpPxb1FRgorQkFSRE/FoCBNRUxBTklKQQorQkFSRFVOIEtBUkxPCitCQVJFxaBJxIYgSVZBTgorQkFSRcWgScSGIE1BVE8KK0JBUkVUScSGIERSQUdPTEpVQgorQkFSScSMRVZJxIYgU1RJUEUKK0JBUknEjEnEhiBCSVNFUktBCitCQVJJxaBJxIYgQU7EkEVMS08KK0JBUknFoEnEhiBCTEFHT0pFCitCQVJJxaBJxIYgQk/FoEtPCitCQVJJxaBJxIYgSUxJSkEKK0JBUknFoEnEhiBJTElKQQorQkFSScWgScSGIEpBTkpBCitCQVJJxaBJxIYgTEpVQklDQQorQkFSScWgScSGIE1BUktPCitCQVJJxaBJxIYgTUlMQU4KK0JBUknFoEnEhiBNSUxBTgorQkFSScWgScSGIFBFVEFSCitCQVJJxaBJxIYgU1RKRVBBTgorQkFSScWgScSGIFZFUk9OSUtBCitCQVJJxaBJxIYgWk9SS0EKK0JBUknEhiBMSlVCSUNBCitCQVJJxIYgUEFVTElOQQorQkFSScSGIFNMQVZJQ0EKK0JBUkpBS1RBUiBTUEFTRU5JSkEKK0JBUkpBS1RBUiBTVEVWQQorQkFSSkFLVEFSRVZJxIYgxb1JVktPCitCQVJKQUtUQVJFVknEhiBEUkFHQU4KK0JBUkpBS1RBUkVWScSGIE1BUkEKK0JBUkpBS1RBUkVWScSGIE1BUkEKK0JBUkpBS1RBUkVWScSGIE1JTEFOCitCQVJKQUtUQVJFVknEhiBNSUxLQQorQkFSSkFLVEFSRVZJxIYgTUlMT0pFCitCQVJKQUtUQVJFVknEhiBWQUxFUklKQQorQkFSSkFLVEFSRVZJxIYgWkxBVEtPCitCQVJKQUtUQVJPViBNSUxJQ0EKK0JBUkpBS1RBUk9WScSGIMSQT0tPCitCQVJKQUtUQVJPVknEhiBBTktBCitCQVJKQUtUQVJPVknEhiBNSUxPxaAKK0JBUkpBS1RBUk9WScSGIFNORcW9QU5BCitCQVJKQUtUQVJPVknEhiBWVcSMSU5BCitCQVJKQUtUQVJPVknEhiBWVcSMSU5BCitCQVJKQUtUQVJPVknEhiBaT1JLQQorQkFSSkFNT1ZJxIYgQUxJTAorQkFSSkFNT1ZJxIYgQVJTRU5JSkUKK0JBUkpBTU9WScSGIFNMT0JPREFOCitCQVJOQSBHQcWgUEFSCitCQVJOQSBJVkFOCitCQVJOQSBKQU5PxaAKK0JBUk5BIEpPU0lQCitCQVJOQSBNSUhBTEoKK0JBUk8gRlJBTkpPCitCQVJPIEpFTEVOQQorQkFSTyBKT8W9RUYKK0JBUk8gSk/FvUVGCitCQVJPIEpPU0lQCitCQVJPxaAgQk/FvU8KK0JBUk/FoCBCT1JJU0xBViBEUgorQkFST8WgIEJPUklTTEFWCitCQVJPxaAgTEFaTworQkFST8WgIE5FQk9KxaBBCitCQVJPxaAgTklLT0xBCitCQVJPxaAgTklLT0xBCitCQVJPxaBFVknEhiBKT1ZPCitCQVJPVknEhiBWRUxJTUlSCitCQVJPVknEhiBWT0pJU0xBVgorQkFSVEEgxJBFUsSQCitCQVJUQSDEkE9SxJBFCitCQVJUQSBBUlBBRAorQkFSVEEgREXFvUUKK0JBUlRBIEVNQQorQkFSVEEgSUxESUtPCitCQVJUQSBJUk1BCitCQVJUQSBNQUdEQUxFTkEKK0JBUlRFSyBBTkRSSUpBCitCQVJURUsgS0FUQVJJTkEKK0JBUlRFSyBSVURPTEYgRElQTCBJTkcKK0JBUlRFSyBTVEVWQU4KK0JBUlRPxaAgREFOSUxPCitCQVJUT8WgIERSQUdJQ0EKK0JBUlRPxaAgSU1SRQorQkFSVE/FoCBMQURJU0xBVgorQkFSVE/FoCBMQVNMTworQkFSVE/FoCBTVkVUTEFOQQorQkFSVE/FoCBaVk9OSU1JUgorQkFSVE9KIE1JUkpBTkEKK0JBUlRPSyBNQVJHSVQKK0JBUlRPTE9WScSGIEFOVFVOCitCQVJUT0xPVknEhiBKT1NJUAorQkFSVE9MT1ZJxIYgTUFSSU4KK0JBUlRVTE9WScSGIFBBVkxFCitCQVJVxaBJxIYgTUFSVElOCitCQVJVRMW9SUpBIE1BUktPCitCQVJVREFOT1YgRFXFoEFOS0EKK0JBU0FSQSDEkFVSTworQkFTQVJBIEFOS0EKK0JBU0FSQSBESVZOQQorQkFTQVJBIERSQUdJQ0EKK0JBU0FSQSBKT1ZBTgorQkFTQVJBIE1BUlRBCitCQVNBUkEgTUlMSVZPSgorQkFTQVJBIE1JUkEKK0JBU0FSQSBQQUpPCitCQVNBUkFCQSBEVcWgSUNBCitCQVNBUknEhiBCT0dEQU4KK0JBU0FSScSGIERBTkUKK0JBU0FSScSGIERSQUdJTkpBCitCQVNBUknEhiBEVcWgQU4KK0JBU0FSScSGIEpFTEVOQQorQkFTQVJJxIYgSk9WQU4KK0JBU0FSScSGIExKVUJPTUlSCitCQVNBUknEhiBNSUxBTgorQkFTQVJJxIYgTUlMQU4KK0JBU0FSScSGIE1JTEtBCitCQVNBUknEhiBNSVJKQU5BCitCQVNBUknEhiBOSUtPTEEKK0JBU0FSScSGIFNURVZBTgorQkFTQVJJxIYgVkVSQQorQkFTScSGIEtPVklMSktBCitCQVNJxIYgU1LEkEFOCitCQVNJT0xJIFNSRcSGS08KK0JBU0tJSklOIFpPUkEKK0JBU1JBSyBCUkFOS08KK0JBU1JBSyBNSUxBTgorQkFTVEEgREFORQorQkFTVEEgREFOSUVMQQorQkFTVEEgRFJBR1VUSU4KK0JBU1RBIERVxaBBTgorQkFTVEEgSVZBTkEKK0JBU1RBIEtBVElDQQorQkFTVEEgTEpVQklDQQorQkFTVEEgTUFSSUpBCitCQVNUQSBNQVJJSkEKK0JBU1RBIE1BUklKQQorQkFTVEEgTUlMQU4KK0JBU1RBIE1JTE/FoAorQkFTVEEgTUlST1NMQVYKK0JBU1RBIE5JS09MQQorQkFTVEEgU1RFVkEKK0JBU1RBIFZMQURPCitCQVNUQUggQlJBTktPCitCQVNUQUpBIEJSQU5LTworQkFTVEFKQSBNSUxBTgorQkFUQSBERVpJREVSCitCQVRBIElMT05BCitCQVRBIEtBUk9MSgorQkFUQSBMQVNMTworQkFUQSBMQVNMTworQkFUQSBNQVJHSVRBCitCQVRBSknEhiBCT0dPTEpVQgorQkFUQUsgRU1JTAorQkFUQUsgTUlSS08KK0JBVEFLT1ZJxIYgS09TQVJBCitCQVRBS09WScSGIE1JTEFOCitCQVRBS09WScSGIFZJVE9NSVIKK0JBVEFMT1YgUkFESUNBCitCQVRBTsSMRVYgSk9WQU4KK0JBVEFOxIxFViBTTEFWTkEKK0JBVEFOSlNLSSBNSUxBTgorQkFUQU5KU0tJIE1JTEFOCitCQVRBTk9WScSGIEFOS0EKK0JBVEFSIMSMRURPTUlSCitCQVRBUiDEjEVET01JUgorQkFUQVIgTUlMT8WgCitCQVRBUiBNT01JUgorQkFUQVIgU0xPQk9EQU4KK0JBVEFSIFZFTElNSVIKK0JBVEFSIFZPSklOCitCQVRBUklMTyDFvUVMSktPCitCQVRBUyBCT8W9QU5BCitCQVRBWiBWTEFETworQkFURVJORUsgSVZBTgorQkFUScSGIMSQVVJBxJAKK0JBVEnEhiBCT8W9SURBUgorQkFUScSGIEJSQU5LQQorQkFUScSGIElWQU5BCitCQVRJxIYgTUlIQUpMTworQkFUSU5JxIYgxJBVUk8KK0JBVElOScSGIERSQUdBTgorQkFUSU5JxIYgR09SREFOQQorQkFUSU5JxIYgU0FWQQorQkFUSU5JxIYgU1BBU09KRQorQkFUSVNUScSGIElWQU4KK0JBVEtJxIYgSlVTVUYKK0JBVEtJxIYgU1RBTklTTEFWQQorQkFUS09WScSGIE1BUkEKK0JBVE9SSSBKQU5PxaAKK0JBVE9SSSBKT8W9RUYKK0JBVE9SSSBNQVJJSkEKK0JBVE9SSSBNQVJJSkEKK0JBVE9SSSBNSUhBTEoKK0JBVE9SSSBNSUhBTEoKK0JBVE9SSSBNSUhBTEoKK0JBVE9TIEFMRUtTQU5EQVIKK0JBVE9TIEJPxaBLTworQkFUT1MgQk/FoEtPCitCQVRPUyBNSUxBTgorQkFUT1MgTkFEQQorQkFUT1MgUkFESVZPSgorQkFUT1MgWk9SSUNBCitCQVRSTkVLIFpERU5LQQorQkFUVVJBTiBPQlJBRAorQkFUVVJBTiBSQURPVkFOCitCQVVFUiBFVkEKK0JBVUVSIEpVTElKQU5BCitCQVVFUiBLU0VOSUpBCitCQVVFUiBPVE8KK0JBVUsgRFJBR0FOCitCQVVLT1YgVkxBRElNSVIKK0JBVVJBTk9WIExBWkFSCitCQVZBUsSMScSGIE1JTE9SQUQKK0JBVkFSxIxJxIYgVkVTRUxJTgorQkFaQU7EjElLIFZBTEVSSUpBCitCQVpPS0lOIMW9SVZJQ0EKK0JFxIwgSkFOSkEKK0JFxIxFSSBMQUpPxaAKK0JFxIxFSkFDIEFMRUtTQU5EQVIKK0JFxIxFSkFDIEJPxaBLTworQkXEjEVKQUMgQlJBTklTTEFWCitCRcSMRUpBQyBKT1ZBTgorQkXEjEVKQUMgS0FNRU5LTworQkXEjEVKQUMgTUlMQU4KK0JFxIxFSkFDIFJBREVOS08KK0JFxIxFSkFDIFJBRE9KS0EKK0JFxIxFSkFDIFNBVkEKK0JFxIxFTEnEhiDEkE9SxJBFCitCRcSMRUxJxIYgQklTRVJLQQorQkXEjEVMScSGIEJPU0lMSktBCitCRcSMRUxJxIYgRE9CUklOS08KK0JFxIxFTEnEhiBEUkFHSUNBCitCRcSMRUxJxIYgR0lOQQorQkXEjEVMScSGIEpPVkFOCitCRcSMRUxJxIYgTEFaQVIKK0JFxIxFTEnEhiBNQVJJSkEKK0JFxIxFTEnEhiBNQVJJSkEKK0JFxIxFTEnEhiBNSUxBTgorQkXEjEVMScSGIE1JTEVOQQorQkXEjEVMScSGIE1JTElDQQorQkXEjEVMScSGIE1JTE/FoAorQkXEjEVMScSGIFBFVEFSCitCRcSMRUxJxIYgUkFESVZPSgorQkXEjEVMScSGIFJBRE9WQU4KK0JFxIxFTEnEhiBTVEVWQU4KK0JFxIxFTEnEhiBTVEVWQU4KK0JFxIxFTEnEhiBWQVNBCitCRcSMRUxJxIYgVkVTRUxJTgorQkXEjEVMScSGIFZFU0VMSU4KK0JFxIxJxIYgTVVISUJBCitCRcSMScSGIFZFUk9MSlVCCitCRcSMS0VJIEpBTk/FoAorQkXEjEtFSSBQRVRBUgorQkXEjEtFSkkgS0FSTE8KK0JFxIxWQVJESSBBTEVLU0FOREFSCitCRcSMVkFSREkgSk9TSVAKK0JFxaBBTknEhiBCT8W9QU5BCitCRcWgQU5JxIYgWkRSQVZLTworQkXFoEVOSkkgS0FSTE8KK0JFxaBFTkpJIEtBUkxPCitCRcWgRU5TS0kgTklLT0xBCitCRcWgRVZJxIYgQUxFS1NBCitCRcWgRVZJxIYgSk9WQU4KK0JFxaBFVknEhiBNSVJKQU5BCitCRcWgRVZJxIYgTklLT0xBIERJUEwgT0VDCitCRcWgScSGIE1BUklKQQorQkXFoEnEhiBNQVJJSkEKK0JFxaBJxIYgTUVITUVECitCRcWgScSGIE1JSEFKTE8KK0JFxaBJxIYgU0xPQk9EQU4KK0JFxaBJxIYgU1ZFVElTTEFWCitCRcWgS0VSIEFORFJJSkEKK0JFxaBLRVIgQk/FvU8KK0JFxaBLRVIgU1JFxIZLQQorQkXFoExJxIYgSk9WQU4KK0JFxaBMScSGIFRFUkVaSUpBCitCRcWgTElKQSBHT1NQQVZBCitCRcWgTElOIMW9SVZLTyBESVBMIE9FQworQkXFoExJTiBCUkFOS08KK0JFxaBMSU4gSVZBTgorQkXFoExJTiBJVklDQQorQkXFoExJTiBKRUxJU0FWRVRBCitCRcWgTElOIE1JT0RSQUcKK0JFxaBMSU4gU1RPSkFOCitCRcWgTElOIFZMQURJU0xBVkEKK0JFxIZBR1VMIFNBVkEKK0JFxIZJTiBBTEVLU0FOREFSCitCRcSGSU4gT0xHQQorQkXEhklST1ZTS0kgQURFTQorQkXFvUFOIFZJS1RPUgorQkXFvUFOT1YgQUxFS1NBTkRBUgorQkXFvUFOT1YgQlJBTklTTEFWCitCRcW9QU5PViBEUkFHT0xKVUIKK0JFxb1BTk9WIE1JUk9MSlVCCitCRcW9QU5PVknEhiDEkE9SxJBFCitCRUFERVIgSk9WQU4KK0JFQVJBIMW9SVZLTworQkVBUkEgxJBPUsSQRQorQkVBUkEgSk9WQU4KK0JFQVJBIE1BUktPCitCRUFSQSBQRVRBUgorQkVBUkEgUEVUQVIKK0JFQVRPVknEhiBORUJPSsWgQQorQkVCRUsgTUFUTworQkVCRUxKQS1NQVRVxaAgQU5LQQorQkVCScSGIEFOQQorQkVCScSGIExKSUxKQU5BCitCRUJJxIYgTkVWRU5LQQorQkVCScSGIE5FVkVOS0EKK0JFQknEhiBQRVRBUgorQkVCScSGIFNUT0pBTktBCitCRUNFIEJFTEEKK0JFQ0UgVElCT1IKK0JFQ0nEhiBTVEVWQU4KK0JFRMW9RVRJIE1BUklKQQorQkVEQUsgQklMSkFOQQorQkVERSDFoEFORE9SCitCRURFIFBFVEFSIERSCitCRURFIFBFVEFSCitCRURFS09WScSGIEFOVE9OCitCRUROQVJJSyBBTkRSSUpBCitCRUROQVJJSyBEQVJJTktBCitCRUROQVJJSyBKQU5PxaAKK0JFRE5BUklLIEpPU0lQCitCRUROQVJJSyBNSUhBTEoKK0JFRE9WIEJJU0VSS0EKK0JFRE9WIEpPVkFOCitCRURPViBMSlVCSUNBCitCRURPViBNQVJJSkEKK0JFRE9WIE1JUk9TTEFWCitCRURPViBOQURBCitCRURPViBQUkVEUkFHCitCRURPViBSQURBCitCRURPViBTUsSQQU4KK0JFRE9WIFNVTsSMSUNBCitCRURPViBTVkVUSVNMQVYKK0JFRFJJSyBBTEVLU0FOREFSCitCRUcgQU5EUklKQQorQkVHLVZBTE9WScSMScSGIEFOxJBFTEtPCitCRUctVk9MT1ZJxIxJxIYgSVZBTgorQkVHQU5JIMWgRVJJRgorQkVHQU5PVknEhiBNRUhNRUQKK0JFR0FOT1ZJxIYgU0FOSUQKK0JFR0XEjEtJIFJBSktPCitCRUdFxIxLSSBTQVZBCitCRUdFTknFoEnEhiBEUkFHT1JBRAorQkVHRU5JxaBJxIYgVlVLQcWgSU4KK0JFR0nEhiBNSUxPxaAKK0JFR0nEhiBNSVJLTworQkVHTEVSQkVHT1ZJxIYgRMW9RVZBRAorQkVHT0pFViBBTktBCitCRUdPSkVWIEJPR0RBTgorQkVHT0pFViBMQVpBUgorQkVHT0pFViBMQVpBCitCRUdPSkVWIFBFVEFSCitCRUdPSkVWIFJBRE9KS0EKK0JFR09KRVYgVE/FoEEKK0JFR09KRVZJxIYgUkFESVZPSgorQkVHT1ZJxIYgRVZJQ0EKK0JFR09WScSGIEpBU01JTkEKK0JFR09WScSGIEpPVkFOCitCRUdPVknEhiBMQURJU0xBVgorQkVHT1ZJxIYtTElWQUpBIElMSUpBCitCRUdPVknEhiBMSlVCQU4KK0JFR09WScSGIE1JTElKQQorQkVHT1ZJxIYgTUlMT1JBRAorQkVHT1ZJxIYgTUlSS08KK0JFR09WScSGIFJPxIZLTworQkVHT1ZJxIYgU0FWTworQkVHT1ZJxIYgVE9ET1IKK0JFR09WScSGIFpPUk8KK0JFSEVSIEVWQQorQkVIRVJBTk8gSk9TSVAKK0JFSFRFUiBBTEVLU0FOREFSCitCRUpBUk9WScSGIE1BUktPCitCRUpBUk9WScSGIE5FTkFECitCRUpBVE9WScSGIMSQT1LEkEUKK0JFSkFUT1ZJxIYgTUlMT1JBRAorQkVKQVRPVknEhiBNSVJLTworQkVKVE9WScSGIEFMSUpBCitCRUsgQU5UT05JSkEKK0JFSyBEUkFHQU5BCitCRUsgSk9WQU4KK0JFSyBMQURJU0xBVgorQkVLIExKSUxKQU5BCitCRUsgUlXFvUEKK0JFSyBTVEVWQU4KK0JFS8SMScSGIE1JTE9SQUQKK0JFS0FSRUsgSUxJTktBCitCRUtFIExBU0xPCitCRUtFIE1BUklKQU4KK0JFS0VSIEZSRURFUklLCitCRUtFUiBJxaBUVkFOCitCRUtFUiBJREEKK0JFS0VSIEpPxb1FRgorQkVLRVIgSk9TSVAKK0JFS0VSIFNURVZBTgorQkVLScSGIEJPUklTCitCRUtJxIYgQlJBTktBCitCRUtJxIYgSlVSRQorQkVLScSGIE1JTE9SQUQKK0JFS0nEhiBUT01JU0xBVgorQkVLScSGIFZFUkEKK0JFS1JJxIYgRFJBR0FOCitCRUtSScSGIE1JUkEKK0JFS1JJxIYgVE9NSVNMQVYKK0JFS1RBxaAgREFOSUNBCitCRUtUQcWgIFNMQVZLTworQkVLVVQgRFJBR0FOCitCRUtVVCBQRVRBUgorQkVLVkFMQUMgxb1JVkFOCitCRUtWQUxBQyBCUkFOSVNMQVYKK0JFS1ZBTEFDIEJSQU5JU0xBVgorQkVLVkFMQUMgQlJBTktBCitCRUtWQUxBQyBCUkFOS08KK0JFS1ZBTEFDIEJSQU5LTworQkVLVkFMQUMgRFJBR09MSlVCCitCRUtWQUxBQyBFTUlMSUpBCitCRUtWQUxBQyBJU0EKK0JFS1ZBTEFDIExBWkFSCitCRUtWQUxBQyBMSlVCSUNBCitCRUtWQUxBQyBMSlVCSUNBCitCRUtWQUxBQyBMSlVCSU5LTworQkVLVkFMQUMgTUFSQQorQkVLVkFMQUMgTUlKQQorQkVLVkFMQUMgTUlMQU5LTworQkVLVkFMQUMgTUlMQU4KK0JFS1ZBTEFDIE1JTElTQVYKK0JFS1ZBTEFDIE1JUkpBTkEKK0JFS1ZBTEFDIFJBRElWT0oKK0JFS1ZBTEFDIFJBRE1JTEEKK0JFS1ZBTEFDIFNFUkFGSU5BCitCRUtWQUxBQyBTVEVWQU4KK0JFTMSMRVZJxIYgR1JBRElNSVIKK0JFTMSMRVZJxIYgUkFUS08KK0JFTEFLIMWgQU5ET1IKK0JFTEFLIEFOQQorQkVMQUsgTUFSR0lUQQorQkVMQUsgTUlKTworQkVMQUsgVkxBREEKK0JFTEFOIEpPxb1FRgorQkVMQU7EjEnEhiBFTElaQUJFVEEKK0JFTEFOT1ZJxIYgxJBPUsSQRQorQkVMQU5PVknEhiBBTEVLU0FORFJBCitCRUxBTk9WScSGIEtBVElDQQorQkVMQU5PVknEhiBNSUxJVk9KCitCRUxBTk9WScSGIFRJQk9SCitCRUxFQ0tJIEpFTEVOQQorQkVMRUdJxaBBTklOIERSQUdPTUlSIERSCitCRUxFU0xJSklOIE1JTE9SQUQKK0JFTEVTTElKSU4gU0xPQk9EQU4KK0JFTEVTTElOIERPQlJJTEEKK0JFTEVTTElOIE1JUk9TTEFWCitCRUxFU0xJTiBTVkVUT1pBUiBEUgorQkVMRVRJxIYgSkVMRU5BCitCRUxJIEFORFJJSkEKK0JFTEkgRU1JTAorQkVMSSBST1pBTElKQQorQkVMSSBTVEVWQU4KK0JFTEkgVk9KSVNMQVYKK0JFTEnEjEtBIEFOQQorQkVMScSMS0EgQlJBTklTTEFWCitCRUxJxIxLQSBNSVJPU0xBVgorQkVMScSGIMW9SVZLQQorQkVMScSGIMSQT1LEkEUKK0JFTEnEhiDEkE9SxJBFCitCRUxJxIYgxJBVUklDQQorQkVMScSGIEJPxaBLTworQkVMScSGIEJPxb1JREFSCitCRUxJxIYgQk/FvUlEQVIKK0JFTEnEhiBCT1JJU0xBVgorQkVMScSGIEJPUklTTEFWCitCRUxJxIYgQk9SSVMKK0JFTEnEhiBCT1JJVk9KRQorQkVMScSGIEJPUklWT0pFCitCRUxJxIYgQlJBTklTTEFWCitCRUxJxIYtQlJLScSGIFZMQURJU0xBVkEKK0JFTEnEhiBEQU5JQ0EKK0JFTEnEhiBEQU5JSkVMQQorQkVMScSGIERSQUdBTgorQkVMScSGIERSQUdJQ0EKK0JFTEnEhiBEUkFHVVRJTgorQkVMScSGIERVxaBBTiBEUgorQkVMScSGIERVxaBBTiBEUgorQkVMScSGIERVxaBBTgorQkVMScSGIERVxaBBTgorQkVMScSGIERVxaBBTgorQkVMScSGIERVxaBLTworQkVMScSGIERVxaBLTworQkVMScSGIEZMT1JJS0EKK0JFTEnEhiBJTElKQQorQkVMScSGIEpPU0lNCitCRUxJxIYgSk9WQU5LQQorQkVMScSGIEpPVklDQQorQkVMScSGIEpVTElKQU5BCitCRUxJxIYgSlVMS0EKK0JFTEnEhiBMQVpBUgorQkVMScSGIExKVUJJQ0EKK0JFTEnEhiBNQVJJQ0EKK0JFTEnEhiBNSUxBTgorQkVMScSGIE1JTEFOCitCRUxJxIYgTUlMQU4KK0JFTEnEhiBNSUxBTgorQkVMScSGIE1JTEVOQQorQkVMScSGIE1JTElWT0oKK0JFTEnEhiBNSUxPxaAKK0JFTEnEhiBNSUxPUkFECitCRUxJxIYgTUlSSkFOQQorQkVMScSGIE1JUk9TTEFWCitCRUxJxIYgTkVOQUQKK0JFTEnEhiBORVNUT1IKK0JFTEnEhiBOSUtPTEEKK0JFTEnEhiBQRVRBUgorQkVMScSGIFBFVEFSCitCRUxJxIYgUkFESU5LQQorQkVMScSGIFJBRE9KS0EKK0JFTEnEhiBSQURPU0xBVgorQkVMScSGIFJBRE9WQU4KK0JFTEnEhiBTQVZBCitCRUxJxIYgU0VOQQorQkVMScSGIFNJTUEKK0JFTEnEhiBTTEFWS08gRElQTCBJTkcKK0JFTEnEhiBTTEFWS08KK0JFTEnEhiBTTE9CT0RBTktBCitCRUxJxIYgU09GSUpBCitCRUxJxIYgU1LEkEFOCitCRUxJxIYgU1RBTktPCitCRUxJxIYgU1RFVkFOCitCRUxJxIYgU1RPSkFOS0EKK0JFTEnEhiBTVE9KQU4KK0JFTEnEhiBTVkVUSVNMQVYKK0JFTEnEhiBTVkVUSVNMQVYKK0JFTEnEhiBTVkVUTEFOQQorQkVMScSGIFRPRE9SCitCRUxJxIYgVkVSQQorQkVMScSGIFZFU05BCitCRUxJxIYgVkxBRElTTEFWCitCRUxJxIYgVkxBRElTTEFWCitCRUxJxIYgVk9KSVNMQVYKK0JFTEnEhiBWVUtBCitCRUxJxIYgWk9SQQorQkVMSU1BUktPVknEhiBTTEFWT0xKVUIKK0JFTElOScSGIMSQVVJBCitCRUxJTlNLSSBBTEVLU0FOREFSCitCRUxJTlNLSSBTUEFTRU5JSkEKK0JFTEpBS09WIE1JTElDQQorQkVMSkFOU0tJIMW9SVZLQQorQkVMSkFOU0tJIMW9SVZLQQorQkVMSkFOU0tJIMSQT1LEkEUKK0JFTEpBTlNLSSDEkE9SxJBFCitCRUxKQU5TS0kgxJBPUsSQRQorQkVMSkFOU0tJIEFOxJBFTElKQQorQkVMSkFOU0tJIEFOS0lDQQorQkVMSkFOU0tJLUJBSknEhiBLQcSGVcWgQQorQkVMSkFOU0tJIEJPUkEKK0JFTEpBTlNLSSBCT1JBCitCRUxKQU5TS0kgQk9SSVZPSgorQkVMSkFOU0tJIERSQUdBTkEKK0JFTEpBTlNLSSBEUkFHSUNBCitCRUxKQU5TS0kgRU1JTElKQQorQkVMSkFOU0tJIEdBVlJBCitCRUxKQU5TS0kgR09SREFOQQorQkVMSkFOU0tJIEpFTElTQVZFVEEKK0JFTEpBTlNLSSBKT1ZBTgorQkVMSkFOU0tJIEpPVkFOCitCRUxKQU5TS0kgSlVMSUpBTkEKK0JFTEpBTlNLSSBMQVpBUgorQkVMSkFOU0tJIExBWkFSCitCRUxKQU5TS0kgTEFaQVIKK0JFTEpBTlNLSSBMRVBPSktBCitCRUxKQU5TS0kgTEpVQk9NSVIKK0JFTEpBTlNLSSBNSUxBTgorQkVMSkFOU0tJIE1JTEVOS08KK0JFTEpBTlNLSSBNSUxPUkFECitCRUxKQU5TS0kgTUlMT1JBRAorQkVMSkFOU0tJIE1JTFVUSU4KK0JFTEpBTlNLSSBNSVJKQU5BCitCRUxKQU5TS0kgUEFWTEUKK0JFTEpBTlNLSSBSQURBCitCRUxKQU5TS0kgUkFETUlMQQorQkVMSkFOU0tJIFJBRE9WQU4KK0JFTEpBTlNLSSBSQU5LTworQkVMSkFOU0tJIFJVxb1JQ0EKK0JFTEpBTlNLSSBTTE9CT0RBTgorQkVMSkFOU0tJIFNURVZBTgorQkVMSkFOU0tJIFRFT0RPUgorQkVMSkFOU0tJIFRPxaBBCitCRUxKQU5TS0kgVkFTSUxJSkUKK0JFTEpBTlNLSSBWRVJBCitCRUxKQU5TS0kgVkxBRElNSVIKK0JFTEpBTlNLSSBWTEFESVNMQVYKK0JFTEpBTlNLSSBWT0pJU0xBVgorQkVMSkFOU0tJIFpBR09SS0EKK0JFTEpBTlNLSSBaREVOS0EKK0JFTEpJTiDFvUlWQQorQkVMSklOIMSQT1LEkEUKK0JFTEpJTiBCUkFOSVNMQVZBCitCRUxKSU4gRElNSVRSSUpFCitCRUxKSU4gTUFSSUpBIE1BR0RBTEVOQQorQkVMSklOIE5FREVMSktPCitCRUxKSU4gUkFESVZPSgorQkVMSklOIFJBRE9TTEFWCitCRUxKSU4gUlXFvUEKK0JFTEpJTiBTQVZBCitCRUxKSU4gU09GSUpBCitCRUxKSU4gVkxBRElNSVIKK0JFTEpJTkFDIFpPUkFOCitCRUxPxaBFViBORVZFTktBCitCRUxPQlJBREnEhiBNSUxBTgorQkVMT0JSQURJxIYgU0FWQQorQkVMT0JSSyBCUkFOSVNMQVYKK0JFTE9CUksgRFJBR09TTEFWCitCRUxPQlJLIExJVklKRQorQkVMT0NJxIYgTUlMRU5LTworQkVMT0NJxIYgUkFETUlMQQorQkVMT0lDQSBSQURPU0xBVgorQkVMT0lDQSBWSURBTgorQkVMT1BBVkxPVknEhiBEUkFHQSBEUgorQkVMT1BBVkxPVknEhiBNSUxPSktPCitCRUxPUEFWTE9WScSGIFpPUkFOIERSCitCRUxPUEFWTE9WScSGIFpPUkFOIERSCitCRUxPU0FWScSGIEpFTElDQQorQkVMT1RJIElWQU5LTworQkVMT1ZBUkkgSVZBTgorQkVMT1ZJxIYgQklMSkFOQQorQkVMT1ZJxIYgUkFEQQorQkVMT1ZJxIYgU1RFVkFOCitCRUxVxaBFVknEhiBCT8W9SURBUgorQkVMVcWgRVZJxIYgTk9WSUNBCitCRUxVxb1JxIYgREFSSU5LQQorQkVMVcW9ScSGIFNUSkVQQU4KK0JFTSBJVkFOCitCRU0gSk9WQU4KK0JFTSBLQVJMTworQkVNIE1JUk9TTEFWCitCRU1JTEVSIE1BR0RBTEVOQQorQkVOxIxJSyDEkFVMQQorQkVOxIxJSyBJTE9OS0EKK0JFTkEgTUlMT1NBVkEKK0JFTkHFoEnEhiBWSU5LTworQkVOQUsgUEFMCitCRU5BUklLIExBU0xPCitCRU5BUklLIE1BR0RBTEVOQQorQkVOQyBCUkFOSVNMQVZBCitCRU5DIERSQUdBTgorQkVOQ0UgTUFSSUpBCitCRU5DRSBNSUhBTEoKK0JFTkNFIE1JS0XFoAorQkVOQ0VUScSGIEFORFJJSkEKK0JFTkNFVEnEhiBMSlVERVZJVAorQkVOQ1VOIFZFTElOS0EKK0JFTkRFSyBNSUxBTgorQkVORcWgIExKVURNSUxBCitCRU5Fxb1BTiBMSlVCSUNBCitCRU5FREVLT1ZJxIYgSVZBTgorQkVOR0lOLcSQVVJLScSGIE5FWkEKK0JFTkdJTiBCT8W9SURBUgorQkVOR0lOIERPQlJJTktBCitCRU5HSU4gRFXFoEFOCitCRU5HSU4gS09WSUNBCitCRU5HSU4gTUlMQU4KK0JFTknEjEFLIEtBUkxPCitCRU5JxIxBSyBNQUdEQUxFTkEKK0JFTknFoEVLIERSQUdVVElOCitCRU5JxIYgRVZBCitCRU5JxIYgR1JVSklDQQorQkVOScSGIFBFVEFSCitCRU5JxIYgU0VLVUxBCitCRU5JxIYgWkRFTktPCitCRU5JTiDFvUlWT0pJTgorQkVOSkEgS0FUQVJJTkEKK0JFTkpBSyBEUkFHT1NMQVZBCitCRU5KQUsgRVZJQ0EKK0JFTktBIE1BUklKQQorQkVOS0EgTUlIQUlMTworQkVOS0UgRUxaQQorQkVOS09WScSGIEpPQ0EKK0JFTktPVknEhiBKT0NBCitCRU5PIFRJQk9SCitCRU5PVknEhiBKT1NJUAorQkVOT1ZJxIYgU1RBTkEKK0JFT8SMQU5JTiBKT1ZBTgorQkVPxIxBTklOIE1JT0RSQUcKK0JFT8SMQU5JTiBQQVZMRQorQkVPRFJBTlNLSSBEUkFHT01JUgorQkVPRFJBTlNLSSBTVE9KQU4KK0JFT0tPVknEhiBEQU1JUgorQkVSIEFMRUtTSUpFCitCRVIgRlJBTkpPCitCRVLEjEVLIMSQRVLEkAorQkVSxIxFSyBCT8W9SURBUgorQkVSxIxFSyBGUkFOSkEKK0JFUsSMRUsgTEFESVNMQVYKK0JFUsSMRUsgTUFSSUpBCitCRVLEjEVLIE1JSEFJTE8KK0JFUsSMRUsgT1NLQVIKK0JFUsSMRUsgU0FOSVNMTworQkVSxIZBTiBNSVJKQU5BCitCRVLEhkFOIFBFVEFSCitCRVLEhkFOIFNMQVZLTworQkVSQSDEkE9SxJBPCitCRVJBIERSQUdBTgorQkVSQUsgTkVCT0rFoEEKK0JFUkFOT1ZJxIYgQUxFS1NBTkRBUgorQkVSQVIgxb1JVkFOQQorQkVSQVIgQk9SSVZPSgorQkVSQVIgQlJBTklTTEFWCitCRVJBUiBCUkFOSVNMQVYKK0JFUkFSIERVxaBBTktBCitCRVJBUiBNSUxBTgorQkVSQVIgTUlMQU4KK0JFUkFSIE1JTEFOCitCRVJBUiBSQURJVk9KCitCRVJBUiBTTE9CT0RBTgorQkVSQVIgU0xPQk9EQU4KK0JFUkFSIFRJTUEKK0JFUkFSIFZMQURJTUlSCitCRVJBUk9WIMSQVVJJQ0EKK0JFUkJBS09WIExKVUJJQ0EKK0JFUkJBS09WIE1BUkEKK0JFUkJBS09WIE1JTE/FoAorQkVSQkFLT1YgUEVUQVIKK0JFUkJBS09WIFNURVZBTgorQkVSQkFUT1ZJxIYgxb1BUktPCitCRVJCQVRPVknEhiBNSVJKQU5BCitCRVJCRVIgTEpJTEpBTkEKK0JFUkJFUiBTVEVWQU4KK0JFUkJFUknEhiBKRUxJU0FWRVRBCitCRVJCRVJJxIYgSk9WQU4KK0JFUkJFUknEhiBMQVpBUgorQkVSQkVSScSGIE1JTFVUSU4KK0JFUkXFoCDEkE9SxJBFCitCRVJFxaAgREFOSUxPCitCRVJFxaAgSUxPTkEKK0JFUkXFoCBKT1NJUAorQkVSRcWgIEpVTEnFoEtBCitCRVJFxaAgS0FST0xKCitCRVJFxaAgS09STkVMCitCRVJFxaAgVElCT1IKK0JFUkXFoC1UT1QgS09STkVMCitCRVJFSEFOScSGIEpVTEtBCitCRVJFTkpJIEVVR0VOCitCRVJFTkpJIEpBTk/FoAorQkVSRU5KSSBKRUxFTkEKK0JFUkVOSkkgTUlLTE/FoAorQkVSRU5KSSBNSUtMT8WgCitCRVJFTkpJIFJPWkFMSUpBCitCRVJFTkpJIFNURVZBTgorQkVSRU5KSSBUSUJPUgorQkVSRU5UQSBKT1NJUAorQkVSRU5URSBJTE9OQQorQkVSRVRJxIYgQU5UVU4KK0JFUkVUScSGIExBRElTTEFWCitCRVJFVEnEhiBNQVJHSVRBCitCRVJFVEtBIMWgQU5ET1IKK0JFUkVUS0EgR09SREFOQQorQkVSRVRLQSBKVUxJSkFOQQorQkVSRVRLQSBLQVJMTworQkVSRVRLQSBNSUhBTEoKK0JFUkdFTCDEkFVSQQorQkVSR0VMIEFOVFVOCitCRVJHRVIgRlJBTkpBIERSIFNUT01BVE9MT0cKK0JFUkdFUiBNSVJPU0xBVgorQkVSScWgQSBBWklTCitCRVJJxaBBIEJPSktBCitCRVJJxaBBIERFTU8KK0JFUknFoEEgRkFJSworQkVSScWgQSBNSVJWRVRBCitCRVJJxaBBIFJBR0lCCitCRVJJxIYgxb1JVktPCitCRVJJxIYgQU7EkEVMS08KK0JFUknEhiBBTlRBCitCRVJJxIYgQU5UQQorQkVSScSGIEJFUklTTEFWIERSIFBST0YKK0JFUknEhiBCSUxKQU5BCitCRVJJxIYgQk/FvUlEQVIKK0JFUknEhiBCT0dEQU4KK0JFUknEhiBEUkFHSU5KQQorQkVSScSGIERVxaBBTktBCitCRVJJxIYgRFXFoEFOCitCRVJJxIYgR09KS08KK0JFUknEhiBHT0pLTworQkVSScSGIEdPSktPCitCRVJJxIYgSUxJSkEKK0JFUknEhiBKT1JEQU5BCitCRVJJxIYgSk9WTworQkVSScSGIEtPU1RBCitCRVJJxIYgTUFSQQorQkVSScSGLU1BU0tBUkVMIEtBUk1FTlNJVEEgRFIKK0JFUknEhiBNSUxBTgorQkVSScSGIE1JTEFOCitCRVJJxIYgTUlMQU4KK0JFUknEhiBNSUxJQ0EgTVIKK0JFUknEhiBNSUxJVk9KCitCRVJJxIYgTUlMT1JBRAorQkVSScSGIE1JTE9SQUQKK0JFUknEhiBNSUxPVkFOCitCRVJJxIYgTkFEQQorQkVSScSGIE5JS09MQQorQkVSScSGIFBFUlNJREEKK0JFUknEhiBQRVRBUgorQkVSScSGIFJBRElWT0oKK0JFUknEhiBSQUpLTworQkVSScSGIFJBSktPCitCRVJJxIYgU0FWQQorQkVSScSGIFRPREUKK0JFUknEhiBWRVJBCitCRVJJxIYgVkVSSUNBCitCRVJJxIYgVkVTTkEgRFIKK0JFUknEhiBaT1JJQ0EKK0JFUklTQVZMSkVWScSGIFJBSktPCitCRVJJU0FWTEpFVknEhiBaT1JJQ0EKK0JFUktFxaAgScWgVFZBTgorQkVSS0kgSk/FvUVGCitCRVJLScSGIFJVxb1JQ0EKK0JFUktPVknEhiBCRVJJU0xBVgorQkVSS09WScSGIETFvUFGRVIKK0JFUktPVknEhiBNSVJPU0xBVgorQkVSS09WScSGIFNMQVZPTEpVQgorQkVSTEFOxIxJxIYgREFOSUpFTAorQkVSTE9WQU4gR0VPUkdJTkEKK0JFUk5BQ0tJIEFET0xGCitCRVJOQVJEIMSQT1LEkEUKK0JFUk5IQVJEIMW9QVJLTworQkVSTkhBUkQgQk/FvUlEQVIKK0JFUk5IQVJEIEJPSkFOQQorQkVSTkhBUkQgRklMSVAKK0JFUk5IQVJEIElMSUpBCitCRVJOSEFSRCBMSlVCQU4KK0JFUk5IQVJEIE1BUklKQQorQkVSTkhBUkQgTUlMQU4KK0JFUk5IQVJEIE1JTElDQSBEUgorQkVSTkhBUkQgTUlMT1JBRAorQkVSTkhBUkQgUkFET1NMQVYKK0JFUk5IQVJEIFJBSktPCitCRVJOSEFSRCBTSU1PCitCRVJOSEFSRCBUUklWTworQkVST8WgIExKVUJJQ0EKK0JFUlRBIEpBTk/FoAorQkVSVEEgTUlMSUNBCitCRVJUQSBQQUwKK0JFUlRBIFBFVEFSCitCRVJUScSGIFRBVEpBTkEKK0JFUlRJxIYgWlZPTktPCitCRVJUT0sgSkFOT8WgCitCRVJUT0sgSlVMSUpBTkEKK0JFUlRPSyBMQUpPxaAKK0JFUlRST04gTEVOS0UKK0JFUlVTIFZKRUtPU0xBVgorQkVSWkEgQUxFS1NBTkRBUgorQkVTRURFxaAgSk/FvUVGCitCRVNFUk1FTkpJIMSQT1LEkEUKK0JFU0VSTUVOSkkgQlJBTktPCitCRVNFUk1FTkpJIERJT05JWklKRQorQkVTRVJNRU5KSSBFVUZFTUlKQQorQkVTRVJNRU5KSSBJUkVOQQorQkVTRVJNRU5KSSBJVkFOCitCRVNFUk1FTkpJIEtJUklMCitCRVNFUk1FTkpJIEtTRU5JSkEKK0JFU0VSTUVOSkkgTEVPTkEKK0JFU0VSTUVOSkkgTUVMQU5JSkEKK0JFU0VSTUVOSkkgT0xHQQorQkVTRVJNRU5KSSBWTEFESU1JUgorQkVTRVJNRU5KSSBWTEFESU1JUgorQkVTS09ST1ZBSk5JIFZMQURJTUlSCitCRVNMQcSGIERSQUdBTkEKK0JFU0xBxIYgTUlMVVRJTgorQkVTTEHEhiBSQURNSUxBCitCRVNOSUxPViBCT8WgS08KK0JFU05JTE9WIE9MSVZFUkEKK0JFU1UgU0lMQQorQkVTVSBUT0RPUgorQkVTVSBUUkFOREFGSVIKK0JFVEkgU1RBTktPIEFEVk9LQVQKK0JFVUMgxb1JVkFOCitCRVVDIE1JUkEKK0JFVUMgT0xHQQorQkVaREFOIEFOQQorQkVaREFOIEZSQU5KQQorQkVaREFOIElMRElLTworQkVaREFOIElSRU5BCitCRVpEQU4gSk9TSVAKK0JFWkVOxaBFSyBOQVRBTElKQQorQkVaSSBLQVRJQ0EKK0JFWkpBSyBNSUxBTktBCitCRVpKQUsgWkRFTktPCitCRVpVTEogxJBPUsSQRQorQkVaVUxKIExKSUxKQU5BIFBST0ZFU09SCitCScSMQUsgSUdOQUMKK0JJxIxBSyBKVVNUSU5BCitCScSMQU4gQU5LQQorQknEjEFOIElWSUNBCitCScSMS0VJIFRFUkVaSUpBCitCScSGQU5JxIYgREFOSUNBCitCScSGQU5JxIYgS1JJU1RJTkEKK0JJxIZBTknEhiBNQVJJSkEKK0JJxIZBTknEhiBQRVRBUgorQknEhkFOScSGIFBFVFJBCitCSUJFUiBTVEVWQU4KK0JJQkVSRMW9ScSGIFJBRE9NSVIKK0JJQknEhiBBTEVLU0FOREFSCitCSUJJxIYgUEFWTEUKK0JJQknEhiBTT0ZJSkEKK0JJQknEhiBTVEpFUEFOCitCSUJJTiBKVUdPU0xBVgorQklCSU4gTUlMSU5LTworQklDSUtJTiBNSUxBTgorQklDSyBEUkFHVVRJTgorQklDTyBSVcW9SUNBCitCSUNPSyBFVEVMS0EKK0JJQ09LIE1BUkdJVEEKK0JJQ09LIE1BUkdJVEEKK0JJRUzEjElLIExJRElKQQorQklHQSBCT1JJU0xBVgorQklHQSBNSUxBTgorQklHQSBOQURBCitCSUdBIFNNSUxKQQorQklHT1ZJxIYtxaBJUk9LSSBaT1JJQ0EKK0JJR09WScSGIEFOQQorQklHT1ZJxIYgVk9KSU4KK0JJR09WScSGIFZPSklTTEFWCitCSUhPUkFDIE1JUkpBTkEKK0JJSkFOScSGIE1JTEVOS08KK0JJSkFOS08gUEVUQVIKK0JJSkVEScSGIE1JTE9SQUQKK0JJSkVMScSGIEFMRUtTQQorQklKRUxJxIYgQlJBTklTTEFWCitCSUpFTEnEhiBEQVJBCitCSUpFTEnEhiBJVklDQQorQklKRUxJxIYgSk9WQU4KK0JJSkVMScSGIEpPVklDQQorQklKRUxJxIYgTUFUTworQklKRUxJxIYgTUlMQU4KK0JJSkVMScSGIE1JTEUKK0JJSkVMScSGIE1JTEUKK0JJSkVMScSGIE1JTEUKK0JJSkVMScSGIE1JTEUKK0JJSkVMScSGIE5PVkFLCitCSUpFTEnEhiBQRVJPCitCSUpFTEnEhiBSSVNUTworQklKRUxJxIYgU1RPSkFOCitCSUpFTEnEhiBTVE9KQU4KK0JJSkVMSkFDIE5FREVMSktPIERJUEwgSU5HCitCSUpFTE9WScSGIE5PVktBCitCSUpVS0xJxIYgRFJBR09TTEFWCitCSUpVS0xJxIYgRFJBR09TTEFWCitCSUpVS0xJxIYgTUFSSU5LTworQklLQVIgRFJBR0FOQQorQklLQVIgRkVET1JBCitCSUtBUkVWScSGIERSQUdBTgorQklLScSGIMW9SVZBTgorQklLScSGIMSQT1LEkEUKK0JJS0nEhiBEQU5JQ0EKK0JJS0nEhiBEVcWgQU4KK0JJS0nEhiBLT05TVEFOVElOCitCSUtJxIYgTEpJTEpBTkEKK0JJS0nEhiBNSUxPVkFOCitCSUtJxIYgTUlPRFJBRworQklLScSGIE5JS09MQQorQklLScSGIFBFUkEKK0JJS0lDS0kgxJBPUsSQRQorQklLSUNLSSBBTEVLU0FOREFSCitCSUtJQ0tJIEJSQU5JU0xBVgorQklLSUNLSSBKRUxJQ0EKK0JJS0lDS0kgSkVMSUNBCitCSUtJQ0tJIEpPVkFOCitCSUtJQ0tJIEpPVkFOCitCSUtJQ0tJIEtBVEFSSU5BCitCSUtJQ0tJIE1JTE/FoAorQklLSUNLSSBNSVJPU0xBVgorQklLSUNLSSBSQURPSktBCitCSUtJQ0tJIFNJTknFoEEKK0JJS0lDS0kgU0lOScWgQQorQklLSUNLSSBWQVNJTElKRQorQklLSVQgTUFHRE9MTkEKK0JJS0lUIE5PUkJFUlQKK0JJS09WScSGIExKVUJJQ0EKK0JJS09WScSGIFZMQURJTUlSCitCSUzEjEFSIEhJTERBCitCSUzEjEFSIFZFUkEKK0JJTEEgTUlSS08KK0JJTEFLIE1JTEFOCitCSUxBSyBOQURBCitCSUxBTE9WScSGIFNBQkFIVURJTgorQklMQU5Exb1JSkEgREFOSUNBCitCSUxBTknEhiBOQURBCitCSUxBTk9WScSGIERVxaBBTgorQklMQU5PVknEhiBHT1JEQU5BCitCSUxBTk9WScSGIFBFUk8KK0JJTEFTIFNNSUxKQQorQklMQklKQSBCT0dEQU4KK0JJTEJJSkEgREVKQU4KK0JJTEJJSkEgRFJBR0FOCitCSUxCSUpBIEpBU05BCitCSUxCSUpBIE1JTEFOCitCSUxCSUpBIFNNSUxKQQorQklMRUsgTUlMSUNBCitCSUxFUiDEkE9SxJBFCitCSUxJIEpVTElKQQorQklMScSMScSGIFNUSkVQQU4KK0JJTEnEhiBBTlRFCitCSUxJxIYgQlJBTktJQ0EKK0JJTEnEhiBHT1JEQU5BCitCSUxJxIYgSVZBTiBESVBMIElORworQklMScSGIElWQU4KK0JJTEnEhiBKQUtPVgorQklMScSGIEpFTEVOQQorQklMScSGIE1JTEFOCitCSUxJxIYgTUlMQU4KK0JJTEnEhiBNSUxFTktPCitCSUxJxIYgTUlMT1JBRAorQklMScSGIE1JUk8KK0JJTEnEhiBQUkVEUkFHCitCSUxJxIYgU1LEkEFOCitCSUxJxIYgU1RKRVBBTgorQklMScSGIFNUUkFJTgorQklMSUNLSSBMQVNMTworQklMSU5PVknEhiBCT1JJUworQklMSU5PVknEhiBTQcWgQQorQklMSkFOScSGIFJBRE9KS0EKK0JJTEpOSkEgVkxBRElNSVIKK0JJTE9LQVBJxIYgSVZBTgorQklMT0tBUEnEhiBKVVJFCitCSUxPS0FQScSGIFNURVZBTgorQklMVcWgScSGIFNMQVZJQ0EKK0JJTiBBTEVLU0FOREFSCitCSU4gTVVIQU1FVAorQklOQUtBSiBCQUpSQU0KK0JJTkRBUyDEkFVSQQorQklOREFTIERSQUdJQ0EKK0JJTkRBUyBNSUhBSkxPCitCSU5ERVIgQVJBTktBCitCSU5HT0xEIERSQUdVVElOCitCSU5HT0xEIEtBUkxPCitCSU5HT0xEIFJVRE9MRgorQklOR1VMQUMgxb1JVktPCitCSU5HVUxBQyBCT0pBTkEKK0JJTkdVTEFDIE1JUkpBTkEKK0JJT05EScSGIEpFTEVOQQorQklPUkFDIERFU0lNSVIKK0JJT1JBQyBSQU5LTworQklSxIZBIFNSRVRLTworQklSQ0xJTiBSVcW9SUNBCitCSVJEScSGIEJFTEEKK0JJUkXFoCBMRU5LQQorQklSRcWgIFJPWkFMSUpBCitCSVJHRU1BSkVSIE1BUklKQQorQklSSE1BTiBBTkEKK0JJUklOSkkgREVORcWgCitCSVJJTkpJIEVVR0VOCitCSVJNQU5BQyBEVcWgQU4KK0JJUk8gQU5UT04KK0JJUk8gR0laRUxBCitCSVJPIEdJWkVMQQorQklSTyBJxaBUVkFOCitCSVJPIElMT05BCitCSVJPIElNUkUKK0JJUk8gSU1SRQorQklSTyBLQVRBTElOCitCSVJPIExBSk/FoAorQklSTyBNSUtMT8WgCitCSVJPIE1JTE/FoAorQklST8WgRVZJxIYgTUlMSUNBCitCSVJPVkxKRVYgQlJBTklNSVIKK0JJUk9WTEpFViBCUkFOSVNMQVYKK0JJUk9WTEpFViBNSUxBTgorQklST1ZMSkVWIE1JTE9SQUQKK0JJUk9WTEpFViBNSUxPU0FWCitCSVJPVkxKRVYgTUlST1NMQVYKK0JJUk9WTEpFViBUT0RPUiBEUgorQklST1ZMSkVWScSGIERSQUdBTgorQklST1ZMSkVWScSGIExKVUJJQ0EKK0JJUlRBIFZMQURJTUlSCitCSVJWQUxTS0kgRFXFoEFOCitCSVNFUsSMScSGIEFORFJJSkEKK0JJU0VSxIxJxIYgRFJBR08KK0JJU0VSxIxJxIYgTUlMS0FOQQorQklTScSGIEpPVkFOCitCSVNUUklDQU4gT0xHQQorQklTVFJPVknEhiBBTlRPTgorQklUScSGIETFvUVNQUlMCitCSVRPIFNURVZBTgorQklVSyBNQVJJSkEKK0JJVk9MQVJFVknEhiBWVUtBxaBJTgorQklaSkFLIFJFTkFUTworQklaVU1JxIYgR0VPUkdJSkUKK0JJWlVNScSGIEpFTEtBCitCSVpVTUnEhiBMQVpBUgorQklaVU1JxIYgTUlMQU4KK0JKRURJxIYgREVTQU5LQQorQkpFRE9WIMSQVUtBCitCSkVET1YgRFJBR08KK0JKRURPViBOSUtPTEEKK0JKRUdPVknEhiBEQU5JTEtBCitCSkVHT1ZJxIYgR09KS08KK0JKRUtJxIYgTFVLQQorQkpFS0nEhiBPU1RPSkEKK0JKRUtPVknEhiBNSVJKQU5BCitCSkVLT1ZJxIYgUkFERQorQkpFTEFDIMSQVVJBCitCSkVMQUMgRFJBR0FOCitCSkVMQUMgRFJBR0FOCitCSkVMQUMgRVRFTEtBCitCSkVMQUpBQyBEUkFHQU4KK0JKRUxBSkFDIE1JTEpBCitCSkVMQUpBQyBTVkVUT1pBUgorQkpFTEFLT1ZJxIYgUkFESVZPSkUKK0JKRUxBTk9WScSGIE1JTE9TQVYKK0JKRUxBTk9WScSGIE1JUktPCitCSkVMQU5PVknEhiBSQUpLTworQkpFTEFOT1ZJxIYgU1RBTklNSVIKK0JKRUxBTk9WScSGIFRBTkpBCitCSkVMRVRJxIYgQk9HREFOCitCSkVMRVRJxIYgTEpVQklDQQorQkpFTEVUScSGIExVS0EKK0JKRUxJLUhBRMW9ScSGIEpFTElDQQorQkpFTEnEhiDEkFVSQQorQkpFTEnEhiBCT1JJU0xBVgorQkpFTEnEhiBCUkFOS08KK0JKRUxJxIYgREFOSUxLQQorQkpFTEnEhiBETUlUQVIKK0JKRUxJxIYgR09SREFOQQorQkpFTEnEhiBKT1ZBTgorQkpFTEnEhiBLQVRJQ0EKK0JKRUxJxIYgS1JTVEFOCitCSkVMScSGIExKVUJPTUlSCitCSkVMScSGIE1JTEFOCitCSkVMScSGIE1JUktPCitCSkVMScSGIE5FREVMSktPCitCSkVMScSGIE9MR0EKK0JKRUxJxIYgUEVUQVIKK0JKRUxJxIYgUEVUQVIKK0JKRUxJxIYgU0xBVktPCitCSkVMScSGIFNMT0JPREFOCitCSkVMScSGIFNURVZPCitCSkVMScSGIFNWRVRMQU5BCitCSkVMScSGIFZFUkEKK0JKRUxJxIYgVkxBRElNSVIKK0JKRUxJQ0EgxIxFRE8KK0JKRUxJQ0EgxJBPUsSQSUpBCitCSkVMSUNBIEFMRUtTQQorQkpFTElDQSBCT0dEQU4KK0JKRUxJQ0EgQlJBTklTTEFWCitCSkVMSUNBIERBTklMTworQkpFTElDQSBET0JSSVZPSkUKK0JKRUxJQ0EgRFJBR1VUSU4KK0JKRUxJQ0EgR09KS08KK0JKRUxJQ0EgR09KS08KK0JKRUxJQ0EgSkFEUkFOS0EKK0JKRUxJQ0EgSkFEUkFOS0EKK0JKRUxJQ0EgTFVLQQorQkpFTElDQSBNSUxBTgorQkpFTElDQSBNSUxJQ0EKK0JKRUxJQ0EgTUlPRFJBRworQkpFTElDQSBOQURBCitCSkVMSUNBLVBPUE9WScSGIExKVUJJQ0EKK0JKRUxJQ0EgUkFKS08KK0JKRUxJQ0EgUkFLTworQkpFTElDQSBSQVRLTworQkpFTElDQSBTQVZLQQorQkpFTElDQSBTTEFWS08KK0JKRUxJQ0EgU1BBU09KRQorQkpFTElDQSBUSUdSQU4KK0JKRUxJQ0EgVkVMSktPCitCSkVMSUNBIFZFTEpLTworQkpFTElDQSBWT0pPCitCSkVMSUNBIFZVS09TQVZBCitCSkVMSUNBIFpPUkFOCitCSkVMSU5JxIYgREFSSU5LQQorQkpFTElOScSGIEpPVk8KK0JKRUxJVlVLIEdPUkFOCitCSkVMSVZVSyBWTEFESU1JUgorQkpFTEpBQyBBTkEKK0JKRUxKQUMgQk9SQQorQkpFTEpBQyBCUkFOS08KK0JKRUxKQUMgTUlMQU4KK0JKRUxKQUMgTUlMT1JBRAorQkpFTE/FoCBEQU5JQ0EKK0JKRUxPxaAgTUlST1NMQVYKK0JKRUxPxaAgTUlST1NMQVYKK0JKRUxPxaBFVknEhiBTTEFWS08KK0JKRUxPQkFCQSBBTEVLU0FOREFSCitCSkVMT0JBQkEgREFSQQorQkpFTE9CUksgQk/FoEtPCitCSkVMT0JSSyBCT8WgS08KK0JKRUxPQlJLIEdPUkFOCitCSkVMT0JSSyBMQVpBUgorQkpFTE9CUksgTEFaQVIKK0JKRUxPQlJLIE1BTkUKK0JKRUxPQlJLIE1BUktPCitCSkVMT0JSSyBNSUxBTgorQkpFTE9CUksgTUlMT8WgCitCSkVMT0JSSyBQRVRBUgorQkpFTE9CUkstVkFSR0EgSkFTTkEKK0JKRUxPR1JMScSGIMSQT1LEkEUKK0JKRUxPR1JMScSGIEJMQUdPSkUKK0JKRUxPR1JMScSGIERFSkFOQQorQkpFTE9HUkxJxIYgRFJBR0FOCitCSkVMT0dSTEnEhiBMSlVCSUNBCitCSkVMT0dSTEnEhiBMSlVCTworQkpFTE9HUkxJxIYgTUlUQVIKK0JKRUxPR1JMScSGIE1PTcSMSUxPCitCSkVMT1RPTUnEhiBKT1ZPCitCSkVMT1ZJxIYgUkFUS08KK0JKRUxPVlVLIE1JUkpBTkEKK0JKRUxPVlVLIFNMQVZJQ0EKK0JKRUxPVlVLIFNMQVZLTworQkxBxaBLTyBUSUJPUgorQkxBxaBLT1ZJxIYgRlJBTkpPCitCTEHFoEtPVknEhiBMQVNMTworQkxBxaBLT1ZJxIYgUEFWTEUKK0JMQcW9QU4gRlJBTkpPCitCTEHFvUFOIElWTworQkxBxb1BTiBNQVJLTworQkxBxb1BTiBTTEFWS08KK0JMQcW9RUsgR1VTVEFWCitCTEHFvUVLIEpFTEVOQQorQkxBxb1FSyBNQVJJSkEKK0JMQcW9RUsgTUlIQUxKCitCTEHFvUVWQSBPTEdBCitCTEHFvUVWScSGIEFORFJJSkEKK0JMQcW9RVZJxIYgRFJBR0FOQQorQkxBxb1FVknEhiBEUkFHTworQkxBxb1FVknEhiBEVcWgQU5LQQorQkxBxb1FVknEhiBEVcWgSUNBCitCTEHFvUVWScSGIERVQlJBVktBCitCTEHFvUVWScSGIEZSQU5KTworQkxBxb1FVknEhiBNSU9EUkFHCitCTEHFvUVWScSGIFJBREUgRFIgTEVLQVIKK0JMQcW9RVZJxIYgU1RKRVBBTgorQkxBxb1FVknEhiBTVVpBTkEKK0JMQcW9RVZJxIYgVkVSQQorQkxBxb1FVknEhiBaT1JBTgorQkxBxb1JxIYgxJBPUsSQRQorQkxBxb1JxIYgQk/FoEtPCitCTEHFvUnEhiBCUkFOSVNMQVZBCitCTEHFvUnEhiBEUkFHQU4KK0JMQcW9ScSGIERSQUdBTgorQkxBxb1JxIYgRFJBR09MSlVCCitCTEHFvUnEhiBIUklTVElOQQorQkxBxb1JxIYgSVZBTgorQkxBxb1JxIYgSkVMRU5BCitCTEHFvUnEhiBLU0VOSUpBCitCTEHFvUnEhiBNQVJJSkEKK0JMQcW9ScSGIE1FVE9ESUpFCitCTEHFvUnEhiBNSUhBSkxPCitCTEHFvUnEhiBTQVZBCitCTEHFvUnEhiBTQVZLTworQkxBxb1JxIYgU1ZFVE9aQVIKK0JMQcW9ScSGIFZJREEKK0JMQcW9SUsgQU5UQUwKK0JMQcW9SU4gRFJBR0lOSkEKK0JMQUdPSkVWIMW9SVZLTworQkxBR09KRVYgxb1JVktPCitCTEFHT0pFViDEkE9SxJBFCitCTEFHT0pFViBJVkFOCitCTEFHT0pFViBNSUxJVk9KCitCTEFHT0pFViBNSUxPUkFECitCTEFHT0pFViBNSVRBCitCTEFHT0pFViBSQURBCitCTEFHT0pFViBSQURPU0xBVgorQkxBR09KRVYgU1RFVkFOCitCTEFHT0pFViBWRUxJTUlSCitCTEFHT0pFVknEhiDEjEVETworQkxBR09KRVZJxIYgxb1BUktPCitCTEFHT0pFVknEhiDEkE9SxJBFCitCTEFHT0pFVknEhiDEkE9SxJBFCitCTEFHT0pFVknEhiBBTkEKK0JMQUdPSkVWScSGIEJFxIZLTworQkxBR09KRVZJxIYgQk9SQQorQkxBR09KRVZJxIYgQk9SSVNMQVYKK0JMQUdPSkVWScSGIEJPUklWT0pFCitCTEFHT0pFVknEhiBCT1JJVk9KCitCTEFHT0pFVknEhiBCT1JLTworQkxBR09KRVZJxIYgQlJBTklTTEFWCitCTEFHT0pFVknEhiBEQU5JQ0EKK0JMQUdPSkVWScSGIERSQUdPTUlSCitCTEFHT0pFVknEhiBEVcWgQU4gRElQTCBJTkcKK0JMQUdPSkVWScSGIERVxaBBTgorQkxBR09KRVZJxIYgSkFHSUNBCitCTEFHT0pFVknEhiBKQU5LTworQkxBR09KRVZJxIYgS1JTVEFOCitCTEFHT0pFVknEhiBMSlVCT01JUgorQkxBR09KRVZJxIYgTUFSSU5LTworQkxBR09KRVZJxIYgTUlLQQorQkxBR09KRVZJxIYgTUlLQQorQkxBR09KRVZJxIYgTUlMQU4KK0JMQUdPSkVWScSGIE1JTEFOCitCTEFHT0pFVknEhiBNSUxBTgorQkxBR09KRVZJxIYgTUlMRU5BCitCTEFHT0pFVknEhiBNSUxJQ0EKK0JMQUdPSkVWScSGIE1JTElWT0pFCitCTEFHT0pFVknEhiBNSUxPxaAKK0JMQUdPSkVWScSGIE1JUk9TTEFWCitCTEFHT0pFVknEhiBNTEHEkEEKK0JMQUdPSkVWScSGIE1PTUlSCitCTEFHT0pFVknEhiBOQURBCitCTEFHT0pFVknEhiBQUkVEUkFHCitCTEFHT0pFVknEhiBSQURFCitCTEFHT0pFVknEhiBSQURPTUlSCitCTEFHT0pFVknEhiBTRVJBRklOQQorQkxBR09KRVZJxIYgU0xPQk9EQU4KK0JMQUdPSkVWScSGIFNMT0JPREFOCitCTEFHT0pFVknEhiBTTE9CT0RBTgorQkxBR09KRVZJxIYgU05Fxb1BTkEKK0JMQUdPSkVWScSGIFNOSkXFvUFOQQorQkxBR09KRVZJxIYgU1RBTktPCitCTEFHT0pFVknEhiBTVEVWTworQkxBR09KRVZJxIYgU1ZFVEtPCitCTEFHT0pFVknEhiBWTEFESVNMQVYKK0JMQUdPVknEhiBNQVJJSkEKK0JMQUhPIEpPxb1FRgorQkxBTkFSSUsgxaBBTkRPUgorQkxBTkFSSUsgxJBVUkEKK0JMQU5BUklLIEFMRUtTQU5EQVIKK0JMQU5BUklLIEVURUxLQQorQkxBTkFSSUsgSUxPTkEKK0JMQU5BUklLIEpPxb1FRgorQkxBTkFSSUsgTEFESVNMQVYKK0JMQU5BUklLIE9MR0EKK0JMQU5BUklLIFNURVZBTgorQkxBTkFSSUsgVElCT1IKK0JMQU5BUklLIFZBTEVSSUpBCitCTEFOVcWgQSBCUkFOS08KK0JMQU5VxaBBIElMSUpBCitCTEFOVcWgQSBSQURFCitCTEFOVcWgQSBWRVJBCitCTEFOVcWgQSBaT1JBTgorQkxBVEXFoEnEhiBNSU9MSktBCitCTEFURcWgScSGIFJBSktPCitCTEFUTklDS0kgVkVTTkEKK0JMRcSMScSGIEpFTEVOQQorQkxFxIxJxIYgTEpVQklDQQorQkxFxIxJxIYgTUlMQURJTgorQkxFxIxJxIYgTUlPRFJBRworQkxFxIxJxIYgUkFET1NBViBNUgorQkxFxIxJxIYgU0HFoEEKK0JMRUhMIEpPVkFOS0EKK0JMSVRWQSDEkE9SxJBFCitCTElUVkEgQlJBTktPCitCTElaQU5BQyBET0JSSVZPSgorQkxJWkFOQUMgRFJBR09MSlVCCitCTElaQU5BQyBEVcWgQU4KK0JMSVpBTkFDIEpFTEtJQ0EKK0JMSVpBTkFDIExFUE9TQVZBCitCTElaQU5BQyBNSUxPUkFECitCTElaQU5BQyBNSVJPU0xBVgorQkxJWkFOQUMgTkVOQUQKK0JMSVpBTkFDIFNBVkEKK0JMSVpBTkFDIFZVSklDQQorQkxPxb1JxIYgRElNSVRSSUpFCitCTFVNRU7FoEFKTiBLQVJMTworQk/EjEFOIElWQU4KK0JPxIxLT1IgTklLT0xBCitCT8WgxIxBTklOIEJPxaBLTworQk/FoEtJxIYgQk9SS0EKK0JPxaBLScSGIE1JUkpBTkEKK0JPxaBLScSGIE5BVEHFoEEKK0JPxaBLScSGIFpPUkEKK0JPxaBLT1Ygxb1BUktPIERJUEwgSU5HCitCT8WgS09WIMW9SVZPSklOCitCT8WgS09WLUpBR09EScSGIFpPUklDQQorQk/FoEtPViBMSlVCSU5LQQorQk/FoEtPViBMVUtBCitCT8WgS09WIE1JTElWT0pFCitCT8WgS09WIE1JTE/FoAorQk/FoEtPViBNSVJKQU5BCitCT8WgS09WIFNBVktBCitCT8WgS09WIFNPRklKQQorQk/FoEtPViBTUkVURU4KK0JPxaBLT1YgU1RFVkFOCitCT8WgS09WIFNUT0pBTgorQk/FoEtPViBWRVNOQQorQk/FoEtPViBWVUpBRElOCitCT8WgS09WScSGIMW9RUxKS08KK0JPxaBLT1ZJxIYgxb1JVktPCitCT8WgS09WScSGIEFMRUtTQU5EQVIKK0JPxaBLT1ZJxIYgQUxFS1NBCitCT8WgS09WScSGIEFMRUtTQQorQk/FoEtPVknEhiBBTsSQQQorQk/FoEtPVknEhiBCSUxKQU5BCitCT8WgS09WScSGIEJMQUdPSkUKK0JPxaBLT1ZJxIYgQk/FoEtPCitCT8WgS09WScSGIEJPR0RBTktBCitCT8WgS09WScSGIEJPR0RBTgorQk/FoEtPVknEhiBCT1JJUworQk/FoEtPVknEhiBCVURJTUlSCitCT8WgS09WScSGIENWRVRLTworQk/FoEtPVknEhiBEQU5JTE8KK0JPxaBLT1ZJxIYgREVTQU5LQQorQk/FoEtPVknEhiBEUkFHQU4KK0JPxaBLT1ZJxIYgRFJBR0lDQQorQk/FoEtPVknEhiBEUkFHT0pMTworQk/FoEtPVknEhiBEUkFHT0xKVUIKK0JPxaBLT1ZJxIYgRFJBR09NSVIKK0JPxaBLT1ZJxIYgRFJBR09NSVIKK0JPxaBLT1ZJxIYgRFXFoEFOCitCT8WgS09WScSGIERVxaBBTgorQk/FoEtPVknEhiBEVcWgS08KK0JPxaBLT1ZJxIYgR09SQU4KK0JPxaBLT1ZJxIYgR09SQU4KK0JPxaBLT1ZJxIYgSEVEVklHQQorQk/FoEtPVknEhiBKT1ZBTgorQk/FoEtPVknEhiBLUlNUTworQk/FoEtPVknEhiBMSklMSkFOQQorQk/FoEtPVknEhiBMSlVCScWgQQorQk/FoEtPVknEhiBMSlVCSU5LQQorQk/FoEtPVknEhiBMSlVCT01JUgorQk/FoEtPVknEhiBMSlVCT01JUgorQk/FoEtPVknEhiBNSUxFVkEKK0JPxaBLT1ZJxIYgTUlMSVZPSkUKK0JPxaBLT1ZJxIYgTUlMSVZPSkUKK0JPxaBLT1ZJxIYgTUlMT1JBRAorQk/FoEtPVknEhiBNSUxPUkFECitCT8WgS09WScSGIE1JTE9SQUQKK0JPxaBLT1ZJxIYgTUlMT1JBRAorQk/FoEtPVknEhiBNSUxPVkFOCitCT8WgS09WScSGIE1JT0RSQUcKK0JPxaBLT1ZJxIYgTUlSS08KK0JPxaBLT1ZJxIYgTU9NxIxJTE8KK0JPxaBLT1ZJxIYgTU9NxIxJTE8KK0JPxaBLT1ZJxIYgTkFEQQorQk/FoEtPVknEhiBOQURBCitCT8WgS09WScSGIE5FREVMSktPCitCT8WgS09WScSGIE5JS09MQQorQk/FoEtPVknEhiBOSUtPTEEKK0JPxaBLT1ZJxIYgTk9WS0EKK0JPxaBLT1ZJxIYtUEVST1ZJxIYgSVZBTkEKK0JPxaBLT1ZJxIYgUEVUQVIKK0JPxaBLT1ZJxIYgUEVUQVIKK0JPxaBLT1ZJxIYgUEVUQVIKK0JPxaBLT1ZJxIYgUEVUQVIKK0JPxaBLT1ZJxIYgUEVUQVIKK0JPxaBLT1ZJxIYgUkFET01JUgorQk/FoEtPVknEhiBSQVRPTUlSCitCT8WgS09WScSGIFJPU0EKK0JPxaBLT1ZJxIYgU0FWQQorQk/FoEtPVknEhiBTTE9CT0RBTktBCitCT8WgS09WScSGIFNMT0JPREFOCitCT8WgS09WScSGIFNMT0JPREFOCitCT8WgS09WScSGIFNURVZBTiBBRFZPS0FUCitCT8WgS09WScSGIFNURVZBTgorQk/FoEtPVknEhiBTVEVWQU4KK0JPxaBLT1ZJxIYgVE9NSVNMQVYKK0JPxaBLT1ZJxIYgVE9NSVNMQVYKK0JPxaBLT1ZJxIYgVkVMSktPCitCT8WgS09WScSGIFZMQURBCitCT8WgS09WScSGIFZMQURJTUlSCitCT8WgS09WScSGIFZPSklTTEFWCitCT8WgS09WU0tJIERPSsSMSU4KK0JPxaBLT1ZTS0kgUkFEQQorQk/FoE5KQcSMScSGIFJBSktPCitCT8WgTkpBSyDEkE9SxJBFCitCT8WgTkpBSyDEkFVSQQorQk/FoE5KQUsgxJBVUk8KK0JPxaBOSkFLIEFOQQorQk/FoE5KQUsgQk/FvUlEQVIKK0JPxaBOSkFLIERBUktPCitCT8WgTkpBSyBERUpBTgorQk/FoE5KQUsgREVTQU5LQQorQk/FoE5KQUsgRkVSRU5DCitCT8WgTkpBSyBJxaBUVkFOCitCT8WgTkpBSyBKRUxFTkEKK0JPxaBOSkFLIEpFTElDQQorQk/FoE5KQUsgSkVMSUNBCitCT8WgTkpBSyBKVUxLQQorQk/FoE5KQUsgS0FUQVJJTkEKK0JPxaBOSkFLIEtPU1RBCitCT8WgTkpBSyBMSlVCT01JUgorQk/FoE5KQUsgTEpVQk9NSVIKK0JPxaBOSkFLIE1BR0RBTEVOQQorQk/FoE5KQUsgTUFSSUpBCitCT8WgTkpBSyBNSUxBTgorQk/FoE5KQUsgTUlMRU5BCitCT8WgTkpBSyBNSUxPUkFECitCT8WgTkpBSyBNSVJLTworQk/FoE5KQUsgTkXEkE8KK0JPxaBOSkFLIE5JS09MQQorQk/FoE5KQUsgUEFWTEUKK0JPxaBOSkFLIFBFVEFSCitCT8WgTkpBSyBSQURNSUxBCitCT8WgTkpBSyBSQURPSktBCitCT8WgTkpBSyBSQURPVkFOCitCT8WgTkpBSyBTTEFWS0EKK0JPxaBOSkFLIFNMQVZLTworQk/FoE5KQUsgVE9NSVNMQVYKK0JPxaBOSkFLIFZFTElNSVIKK0JPxaBOSkFLIFZJRE9TQVZBCitCT8WgTkpBSyBWSU5LQQorQk/FoE5KQUsgVk9KSVNMQVYKK0JPxaBOSkFLIFpPUkFOCitCT8WgTkpBS09WScSGIEFMRUtTQU5EQVIgRElQTCBJTkcKK0JPxaBOSkFLT1ZJxIYgQUxFS1NBTkRBUiBESVBMIFBSQVZOSUsKK0JPxaBOSkFLT1ZJxIYgQU5UT05JSkEKK0JPxaBOSkFLT1ZJxIYgQklMSkFOQQorQk/FoE5KQUtPVknEhiBCT1JJU0xBVgorQk/FoE5KQUtPVknEhiBCT1JJU0xBVgorQk/FoE5KQUtPVknEhiBCUkFOS0EKK0JPxaBOSkFLT1ZJxIYgQ1ZJSkVUSU4KK0JPxaBOSkFLT1ZJxIYgRE9CUklOS0EKK0JPxaBOSkFLT1ZJxIYgS09STkVMSUpFCitCT8WgTkpBS09WScSGIExKVUJPTUlSCitCT8WgTkpBS09WScSGIE1BUklDQSBESVBMIE9FQworQk/FoE5KQUtPVknEhiBNSUxVVElOCitCT8WgTkpBS09WScSGIE1JUk9TTEFWCitCT8WgTkpBS09WScSGIE1JVEFSCitCT8WgTkpBS09WScSGIFBBVkFPCitCT8WgTkpBS09WScSGIFJBRE9TTEFWCitCT8WgTkpBS09WScSGIFJBVEtPCitCT8WgTkpBS09WScSGIFNJTknFoEEKK0JPxaBOSkFLT1ZJxIYgU0xBVktBCitCT8SGQU4gTUFSSUpBCitCT8SGRVJFRyBaVVpBTkEKK0JPxb1BIFBBTAorQk/FvUFOScSGIMW9SUtBCitCT8W9QU5JxIYgxJBPUsSQRQorQk/FvUFOScSGIEFOxJBFTEtBCitCT8W9QU5JxIYgRFXFoEFOCitCT8W9QU5JxIYgR09KS08KK0JPxb1BTknEhiBKRUxFTkEKK0JPxb1BTknEhiBLT1NBCitCT8W9QU5JxIYgTUlMSUNBCitCT8W9QU5JxIYgTUlMT1JBRAorQk/FvUFOScSGIE5FVkVOS0EKK0JPxb1BTk9WScSGIFJBSktBCitCT8W9QU5PVknEhiBaT1JBTgorQk/FvUVSIExBSk/FoAorQk/FvUVSIExKVURFVklUCitCT8W9RVIgWk9SQQorQk/FvUnEjEnEhiBNSUxBTgorQk/FvUnEjEnEhiBNSUxFTktPCitCT8W9ScSMScSGIFBFVEFSCitCT8W9ScSMS09WScSGIEpPVkFOCitCT8W9ScSMS09WScSGIE5FREVMSktPIERSCitCT8W9ScSMS09WScSGIE5FUkEKK0JPxb1JxIxLT1ZJxIYgVk9KSVNMQVYKK0JPxb1JxIxLT1ZJxIYgWk9SS0EKK0JPxb1JxIYgxIxFRE9NSVIKK0JPxb1JxIYgxb1BUktPCitCT8W9ScSGIMW9SVZBTkEKK0JPxb1JxIYgxb1JVktPCitCT8W9ScSGIMSQT1LEkEUKK0JPxb1JxIYgxJBVUsSQSU5BCitCT8W9ScSGIMSQVVJBCitCT8W9ScSGIEFMRUtTQU5EQVIKK0JPxb1JxIYgQUxFS1NBTkRBUgorQk/FvUnEhiBBTsSQRUxLQQorQk/FvUnEhiBCT8WgS08KK0JPxb1JxIYgQk/FvUFOQQorQk/FvUnEhiBCT1JJVk9KCitCT8W9ScSGIEJPUktPCitCT8W9ScSGIEJSQU5JU0xBVgorQk/FvUnEhiBCUkFOSVNMQVYKK0JPxb1JxIYgREFSSU5LQQorQk/FvUnEhiBERUpPCitCT8W9ScSGIERFU0FOS0EKK0JPxb1JxIYgRFJBR0FOCitCT8W9ScSGIERSQUdBTgorQk/FvUnEhiBEUkFHQU4KK0JPxb1JxIYgRFJBR0FOCitCT8W9ScSGIERSQUdPTEpVQgorQk/FvUnEhiBEUkFHT01JUgorQk/FvUnEhiBEUkFHT01JUgorQk/FvUnEhiBEUkFHT01JUgorQk/FvUnEhiBEVcWgQU4KK0JPxb1JxIYgR0FWUk8KK0JPxb1JxIYgR09KS08KK0JPxb1JxIYgR09SREFOQQorQk/FvUnEhiBHT1JEQU5BCitCT8W9ScSGIEdSQURJTUlSCitCT8W9ScSGIElMSUpBCitCT8W9ScSGIElWQU4KK0JPxb1JxIYgSk9WQU5LQQorQk/FvUnEhiBKT1ZBTgorQk/FvUnEhiBKT1ZBTgorQk/FvUnEhiBKT1ZJQ0EKK0JPxb1JxIYgSlVMS0EKK0JPxb1JxIYgS1NFTklKQQorQk/FvUnEhiBMQVpBUgorQk/FvUnEhiBMQVpBUgorQk/FvUnEhiBMSklMSkFOQQorQk/FvUnEhiBNQVJBCitCT8W9ScSGIE1BUklOS08KK0JPxb1JxIYgTUFSS08KK0JPxb1JxIYgTUFSS08KK0JPxb1JxIYgTUFSS08KK0JPxb1JxIYgTUFUSUpBCitCT8W9ScSGIE1JTEFOCitCT8W9ScSGIE1JTEFOCitCT8W9ScSGIE1JTEFOCitCT8W9ScSGIE1JTEFOCitCT8W9ScSGIE1JTEFOCitCT8W9ScSGIE1JTEFOCitCT8W9ScSGIE1JTEVWQQorQk/FvUnEhiBNSUxFCitCT8W9ScSGIE1JTElTQVYKK0JPxb1JxIYgTUlMSktPCitCT8W9ScSGIE1JTE9SQUQKK0JPxb1JxIYgTUlPRFJBRworQk/FvUnEhiBNSVJKQU5BCitCT8W9ScSGIE1JUktPCitCT8W9ScSGIE1JUktPCitCT8W9ScSGIE1PTcSMSUxPCitCT8W9ScSGIE1PTcSMSUxPCitCT8W9ScSGIE5FxJBPCitCT8W9ScSGIE5FTkFECitCT8W9ScSGIE5FTkFECitCT8W9ScSGIE5JS09MQQorQk/FvUnEhiBPTEdBCitCT8W9ScSGIE9aUkVOCitCT8W9ScSGIFBBVkxFIERJUEwgSU5HCitCT8W9ScSGIFBFUkEKK0JPxb1JxIYgUEVUQVIKK0JPxb1JxIYgUkFESVZPSgorQk/FvUnEhiBSQURNSUxBCitCT8W9ScSGLVJBRE9NSVJPVknEhiBKT0tBCitCT8W9ScSGIFJBRE9WQU4KK0JPxb1JxIYgUkFKS08KK0JPxb1JxIYgUkFOS08KK0JPxb1JxIYgU0FOSkEKK0JPxb1JxIYgU0FWQQorQk/FvUnEhiBTQVZBCitCT8W9ScSGIFNBVk8KK0JPxb1JxIYgU0xPQk9EQU4KK0JPxb1JxIYgU0xPQk9EQU4KK0JPxb1JxIYgU1JFVEVOCitCT8W9ScSGIFNUQU5JTUlSCitCT8W9ScSGIFNURVZBTgorQk/FvUnEhiBTVEVWTworQk/FvUnEhiBTVE9KQU5LQQorQk/FvUnEhiBUQU1BUkEKK0JPxb1JxIYgVEFUSkFOQQorQk/FvUnEhiBURU9ET1IKK0JPxb1JxIYgVE9NSVNMQVYKK0JPxb1JxIYgVkVSSUNBCitCT8W9ScSGLVZJTEnEhiBKRUxFTkEKK0JPxb1JxIYgVkxBREFOS0EKK0JPxb1JxIYgVkxBREEKK0JPxb1JxIYgVkxBREEKK0JPxb1JxIYgVkxBREEKK0JPxb1JxIYgVkxBRElTTEFWCitCT8W9ScSGIFZVS09TQVZBCitCT8W9ScSGIFpMQVRBCitCT8W9ScSGIFpMQVRJQ0EKK0JPxb1JxIYgWk9SQU4KK0JPxb1JxIYgWk9SQU4KK0JPxb1JxIYgWk9SQU4KK0JPxb1JxIYgWk9SQU4KK0JPxb1JxIYgWk9SS0EKK0JPxb1JREFSIEFMRUtTQU5EQVIKK0JPxb1JREFSIEJPUklTTEFWCitCT8W9SURBUiBCT1JJU0xBVgorQk/FvUlEQVItS1JJxb1BSyBJUkVOQQorQk/FvUlEQVIgTEpVQk9NSVIKK0JPxb1JREFSRVZJxIYgxJBVUkEKK0JPxb1JREFSRVZJxIYgREVTQU5LQQorQk/FvUlEQVJFVknEhiBQRVJTSURBCitCT8W9SURBUkVWScSGIFZFTEpLTworQk/FvUlOIMW9QVJLTworQk/FvUlOIMSQT1LEkEUKK0JPxb1JTiBEQU5JQ0EKK0JPxb1JTiBEQVJJTktBCitCT8W9SU4gREVTQU5LQQorQk/FvUlOIElHTkpBVCBESVBMIElORworQk/FvUlOIElTSURPUgorQk/FvUlOIEpFTElDQQorQk/FvUlOIEpVTElKQU5BCitCT8W9SU4gS1JJU1RJTkEKK0JPxb1JTiBLU0VOSUpBCitCT8W9SU4gTEFaQVIKK0JPxb1JTiBMSlVCSUNBCitCT8W9SU4gTEpVQklDQQorQk/FvUlOIE1JTE/FoAorQk/FvUlOIE1JTE/FoAorQk/FvUlOIE1JUk9TTEFWCitCT8W9SU4gTklLT0xBCitCT8W9SU4gUEFWTEUKK0JPxb1JTiBQRVRBUgorQk/FvUlOIFJBRElWT0oKK0JPxb1JTiBSQURPVkFOCitCT8W9SU4gU0lOScWgQQorQk/FvUlOIFNMQVZJQ0EKK0JPxb1JTiBTTE9CT0RBTgorQk/FvUlOIFNURVZBTgorQk/FvUlOIFNURVZBTgorQk/FvUlOIFNURVZBTgorQk/FvUlOScSGIFJVxb1JQ0EKK0JPxb1JTk9WU0tJIEFOR0VMCitCT8W9SU5PVlNLSSBSSVNURQorQk/FvUlOT1ZTS0kgVFJBSkFOCitCT8W9SkFLIEZSQU5KTworQk/FvUpBSyBNSUtBCitCT8W9SkFLT1ZJxIYgTEpVQklOS0EKK0JPxb1PIEVMRU9OT1JBCitCT8W9T0tJIEVSTkUKK0JPxb1PS0kgSUxPTkEKK0JPxb1PVknEhiBCT8W9SURBUgorQk/FvU9WScSGIEJPUklWT0oKK0JPxb1PVknEhiBCUkFUSVNMQVYKK0JPxb1PVknEhiBHT1LEjElOCitCT8W9T1ZJxIYgR09SREFOQQorQk/FvU9WScSGIExKVUJJQ0EKK0JPxb1PVknEhiBNSUxBRElOIERJUEwgSU5HCitCT8W9T1ZJxIYgTUlMQURJTgorQk/FvU9WScSGIE1JTE9SQUQKK0JPxb1PVknEhiBNSUxPVkFOCitCT8W9T1ZJxIYgTUlSSkFOQQorQk/FvU9WScSGIE1JUk9MSlVCCitCT8W9T1ZJxIYgUkHFoEtPCitCT8W9T1ZJxIYgU0xBVktPCitCT8W9T1ZJxIYgU05Fxb1BTkEKK0JPxb1PVknEhiBTVEFOS0EKK0JPxb1PVknEhiBWRUxJTUlSCitCT8W9T1ZJxIYgVkVSQQorQk/FvU9WScSGIFZMQURJTUlSCitCT8W9VUxJxIYgQU7EkEVMS08KK0JPxb1VTEnEhiBJVkFOCitCT8W9VUxJxIYgSVZJQ0EKK0JPxb1VTEnEhiBTSU5JxaBBCitCT8W9VU5PVknEhiBEVcWgQU4KK0JPxJBBIMSQVVJBCitCT8SQQSBBTkRSSUpBCitCT8SQQSBBTkRSSUpBCitCT8SQQSBBTkRSSUpBCitCT8SQQSBJVkFOCitCT8SQQSBJVkFOCitCT8SQQSBKT1ZBTgorQk/EkEEgU0HFoEEKK0JPxJBBIFNURVZBTgorQk/EkEFOQUMgSkVMRU5BCitCT8SQQU5BQyBNSVJPU0xBVgorQk/EkEFOQUMgWkRSQVZLTworQk/EkEFOU0tJIEFMRUtTQU5EQVIKK0JPQVJPViBESU1JVFJJSkUKK0JPQVJPViBKT1ZBTgorQk9BUk9WIEtBVEFSSU5BCitCT0FST1YgTUlMQU5LQQorQk9CIEpVU1RJTkEKK0JPQkFLIEnFoFRWQU4KK0JPQkFLIEtBVElDQQorQk9CQU4gxJBFUsSQCitCT0JBTiBNQVJJSkEKK0JPQkFOIE1FUklNQQorQk9CQU4gTkVERUxKS08KK0JPQkFOIFNUSVBFCitCT0JBTiBTVVpBTkEKK0JPQkFOLVZBUk5VUyBFUsW9RUJFVAorQk9CQU5KIElNUkUKK0JPQkFSIEJPxaBLTworQk9CQVJFVknEhiBSVcW9SUNBCitCT0JFUknEhiBPTEdBCitCT0JFUknEhiBaT1JLQQorQk9CScSGIMSQT1LEkEUKK0JPQknEhiDEkE9SxJBFCitCT0JJxIYgQk9HREFOCitCT0JJxIYgQlJBTklTTEFWCitCT0JJxIYgSVZBTgorQk9CScSGIEpPU0lQCitCT0JJxIYgS0FKQQorQk9CScSGIExKVUJPTUlSCitCT0JJxIYgTUlMQU5LQQorQk9CScSGIE1JTElDQQorQk9CScSGIE1MQURFTgorQk9CScSGIE5FTkFECitCT0JJxIYgUlXFvUlDQQorQk9CScSGIFRBTkpBCitCT0JJTkFDIEpPU0lQCitCT0JJTkFDIExVQ0lKQQorQk9CSU5FQyBKT1NJUAorQk9CTEpBR09WScSGIEJPR09TTEFWCitCT0JPxaAgU1RBTktPCitCT0MgU1RFVkFOCitCT0NBIERBTkUKK0JPQ0EgRFXFoEFOCitCT0NBIE1JTEUKK0JPQ0EgTUlMT8WgCitCT0NPTkFESSBNQVJUT04KK0JPRMW9T05JIEdJWkVMQQorQk9Exb1PTkkgU1RFVkFOCitCT0RBIEpPVkFOCitCT0RBS0/FoCBKT1NJUAorQk9EQUtPxaAgU1RKRVBBTgorQk9ERUdSQUpBQyBTT0ZJSkEKK0JPREkgRVLFvUVCRVQKK0JPREkgSkFTTUlOQQorQk9ESSBMQUpPxaAKK0JPREkgTEFTTE8KK0JPREkgTUlIQUpMTworQk9EScWgIEpPxb1FRgorQk9EScWgIE1JTElDQQorQk9ESVJPxb1BIFBFVEFSCitCT0RJUk/FvUEgUkFESVZPSgorQk9ESVJPR0EgSk9WQU4KK0JPRElST0dBIE1BUklKQQorQk9ESVJPR0EgTklLTworQk9ESVJPR0EgUFJFRFJBRworQk9ETE9WScSGIE5JS09MQQorQk9ETkFSIMWgQU5ET1IKK0JPRE5BUiBSSVNUQQorQk9ETkFSIFNURVZBTgorQk9ETkFSIFZFUklDQQorQk9ETyBJxaBUVkFOCitCT0RPIEtBUk9MSgorQk9ETyBNQVJJSkEKK0JPRE8gTUFSSUpBCitCT0RPIE1BVElKQQorQk9ETyBTVEVWQU4KK0JPRE/EjEkgSk/FvUVGCitCT0RPTE8gxaBBTkRPUgorQk9ET0xPIEnFoFRWQU4KK0JPRE9OSkkgS0FSTE8KK0JPRE9SIEFOVE9OCitCT0RPUiBBTlRVTgorQk9ET1IgQk9TSUxKS0EKK0JPRE9SIEZSQU5KQQorQk9ET1IgRlJBTkpBCitCT0RPUiBJxaBUVkFOCitCT0RPUiBKQU5PxaAKK0JPRE9SIEpPU0lQCitCT0RPUiBQRVRBUgorQk9ET1IgU0lOScWgQQorQk9EUkUgScWgVFZBTgorQk9EUknEjC1IRVLEhkFOIEFSQU5LQQorQk9EUknEjCBNSUhBSkxPCitCT0RSScSMIFNURVZBTgorQk9EUknEjCBWRVNOQQorQk9EUknEhiBKRUxJU0FWRVRBCitCT0RST8W9QSBCUkFOS08KK0JPRFJPxb1BIE9MR0EKK0JPRFJPxb1JxIYgSUxJSkEKK0JPRFJPxb1JxIYgSUxJSkEKK0JPRFJPxb1JxIYgSk9WQU4KK0JPRFJPxb1JxIYgTUlMQU4KK0JPRFJPxb1JxIYgU1RFVkFOCitCT0RVTEnEhiDFoFRFRkFOSUpBCitCT0RVTEnEhiBKRUxFTkEKK0JPRFVMScSGIFBFVEFSCitCT0RVTEnEhiBTTE9CT0RBTgorQk9EVUxJxIYgU0xPQk9EQU4KK0JPRFZBSSBKQU5LTworQk9HQVJPxaBJIFNMT0JPREFOCitCT0dBUk/FoEtJIEFORFJJSkEKK0JPR0FUSU5PU0tJIFRPTUlTTEFWCitCT0dBVkFDIEFMRUtTQU5EQVIgRFIKK0JPR0FWQUMgQlJBTklTTEFWCitCT0dBVkFDIERSQUdJQ0EKK0JPR0FWQUMgSkFEUkFOS0EKK0JPR0FWQUMgTUlSSkFOQQorQk9HREFOIEFORFJBxaAKK0JPR0RBTiBCSUxKQU5BCitCT0dEQU4gRFXFoEFOCitCT0dEQU4gScWgVFZBTgorQk9HREFOIElNUkUKK0JPR0RBTiBJVkFOCitCT0dEQU4gSk9TSVAKK0JPR0RBTiBKT1NJUAorQk9HREFOIE1BTkUKK0JPR0RBTi1NSUpJTiBEVcWgQU5LQQorQk9HREFOIE1JTEtBCitCT0dEQU4gTklLT0xBCitCT0dEQU4gU1RFVkFOCitCT0dEQU4gU1RFVkEKK0JPR0RBTiBWRVJJQ0EKK0JPR0RBTiBaT1JBTgorQk9HREFORkkgxaBBTkRPUiBOT1ZJTkFSCitCT0dEQU5GSSBNQVJJTktPCitCT0dEQU5PVi1BTlRPTknEhiBCSUxKQU5BCitCT0dEQU5PViBCSVNFUktBCitCT0dEQU5PViBCUkFOSVNMQVYgRFIgUFJPRgorQk9HREFOT1YgQlJBTktBIERSIExFS0FSCitCT0dEQU5PViBEQU5JTE8KK0JPR0RBTk9WIERJTUlUUklKRQorQk9HREFOT1YgRFJBR0FOCitCT0dEQU5PViBEVcWgQU4KK0JPR0RBTk9WLUhJTCBET0JSSUxBCitCT0dEQU5PViBJUk1BCitCT0dEQU5PViBJVkFOCitCT0dEQU5PViBMQVpBUgorQk9HREFOT1YgTUFSSUNBCitCT0dEQU5PViBNSUxBTgorQk9HREFOT1YgTUlMRU5BCitCT0dEQU5PViBNSUxPxaAKK0JPR0RBTk9WIE1JTE9SQUQKK0JPR0RBTk9WIE5BREEKK0JPR0RBTk9WIE9MR0EKK0JPR0RBTk9WIFBFVEFSCitCT0dEQU5PViBTTEFWS08KK0JPR0RBTk9WIFNMQVZOQQorQk9HREFOT1YgU01JTEpBCitCT0dEQU5PViBTVEFOS08KK0JPR0RBTk9WIFNURVZBTgorQk9HREFOT1YgU1RFVkFOCitCT0dEQU5PViBaT1JBTgorQk9HREFOT1ZJxIYgxb1JVkFOIE1SCitCT0dEQU5PVknEhiDEkE9SxJBFCitCT0dEQU5PVknEhiDEkE9SxJBFCitCT0dEQU5PVknEhiDEkFVSQQorQk9HREFOT1ZJxIYgQUxFS1NBTkRBUgorQk9HREFOT1ZJxIYgQU5LQQorQk9HREFOT1ZJxIYgQkxBR09KQQorQk9HREFOT1ZJxIYgQk/FoEtPCitCT0dEQU5PVknEhiBCT8W9SURBUgorQk9HREFOT1ZJxIYgQk9HREFOCitCT0dEQU5PVknEhiBCT1JBCitCT0dEQU5PVknEhiBCT1JJVk9KCitCT0dEQU5PVknEhiBCUkFOSVNMQVZBCitCT0dEQU5PVknEhiBCUkFOSVNMQVYKK0JPR0RBTk9WScSGIEJSQU5JU0xBVgorQk9HREFOT1ZJxIYgQlJBTklTTEFWCitCT0dEQU5PVknEhiBCUkFOSVNMQVYKK0JPR0RBTk9WScSGIEJSQU5LTworQk9HREFOT1ZJxIYgREFSSU5LQQorQk9HREFOT1ZJxIYgREVTQU5LQQorQk9HREFOT1ZJxIYgRElNSVRSSUpFCitCT0dEQU5PVknEhiBET0JSSVZPSgorQk9HREFOT1ZJxIYgRFJBR0FOCitCT0dEQU5PVknEhiBEUkFHQU4KK0JPR0RBTk9WScSGIERSQUdPTEpVQgorQk9HREFOT1ZJxIYgRFJBR09MSlVCCitCT0dEQU5PVknEhiBEVcWgS08KK0JPR0RBTk9WScSGIEVURUxLQQorQk9HREFOT1ZJxIYgR0VERU9OCitCT0dEQU5PVknEhiBHT0pLTworQk9HREFOT1ZJxIYgR09SREFOQQorQk9HREFOT1ZJxIYgSUxJSkEKK0JPR0RBTk9WScSGIElMT05BCitCT0dEQU5PVknEhiBJVkFOCitCT0dEQU5PVknEhiBKT1ZBTgorQk9HREFOT1ZJxIYgSk9WSUNBCitCT0dEQU5PVknEhiBLU0VOSUpBCitCT0dEQU5PVknEhiBMQVpBUgorQk9HREFOT1ZJxIYgTEFaQVIKK0JPR0RBTk9WScSGIExKSUxKQU5BCitCT0dEQU5PVknEhiBMSlVCSVNBVgorQk9HREFOT1ZJxIYgTEpVQk9NSVIKK0JPR0RBTk9WScSGIExKVUJPTUlSCitCT0dEQU5PVknEhiBNQVJJTkEKK0JPR0RBTk9WScSGIE1JxIZPCitCT0dEQU5PVknEhiBNSUhBSkxPCitCT0dEQU5PVknEhiBNSUxBTgorQk9HREFOT1ZJxIYgTUlMQU4KK0JPR0RBTk9WScSGIE1JTEFOCitCT0dEQU5PVknEhiBNSUxBTgorQk9HREFOT1ZJxIYgTUlMS0EKK0JPR0RBTk9WScSGIE1JTE/FoAorQk9HREFOT1ZJxIYgTUlMT1NBVgorQk9HREFOT1ZJxIYgTUlPRFJBRworQk9HREFOT1ZJxIYgTUlSSkFOQQorQk9HREFOT1ZJxIYgTUlUQVIKK0JPR0RBTk9WScSGIE1MQURFTgorQk9HREFOT1ZJxIYgTkFEQQorQk9HREFOT1ZJxIYgTkFEQQorQk9HREFOT1ZJxIYgTkVERUxKS08KK0JPR0RBTk9WScSGIE5JS09MQQorQk9HREFOT1ZJxIYgTklLT0xBCitCT0dEQU5PVknEhiBOT1ZBSworQk9HREFOT1ZJxIYgUEFKQQorQk9HREFOT1ZJxIYgUEFWTEUKK0JPR0RBTk9WScSGIFBBVkxFCitCT0dEQU5PVknEhiBQRVRBUgorQk9HREFOT1ZJxIYgUEVUQVIKK0JPR0RBTk9WScSGIFBFVEFSCitCT0dEQU5PVknEhiBQRVRBUgorQk9HREFOT1ZJxIYgUFJWT1NMQVYKK0JPR0RBTk9WScSGIFJBRElTQVYKK0JPR0RBTk9WScSGIFJBRElWT0pFCitCT0dEQU5PVknEhiBSQURPU0xBVgorQk9HREFOT1ZJxIYgUkFET1ZBTgorQk9HREFOT1ZJxIYgUkFOS08KK0JPR0RBTk9WScSGIFJBVE9NSVIKK0JPR0RBTk9WScSGIFJVxb1JQ0EKK0JPR0RBTk9WScSGIFNMQVZLTyBNUiBQUkFWTklLCitCT0dEQU5PVknEhiBTTE9CT0RBTktBIFBST0ZFU09SCitCT0dEQU5PVknEhiBTTE9CT0RBTgorQk9HREFOT1ZJxIYgU0xPQk9EQU4KK0JPR0RBTk9WScSGIFNPRklKQQorQk9HREFOT1ZJxIYgU09OSkEKK0JPR0RBTk9WScSGIFNURVZBTgorQk9HREFOT1ZJxIYgU1RFVkFOCitCT0dEQU5PVknEhiBTVEVWTworQk9HREFOT1ZJxIYgU1ZFVElTTEFWCitCT0dEQU5PVknEhiBUSUhPTUlSCitCT0dEQU5PVknEhiBUSUhPTUlSCitCT0dEQU5PVknEhiBWQUpBCitCT0dEQU5PVknEhiBWQVNBCitCT0dEQU5PVknEhiBWRVJBCitCT0dEQU5PVknEhiBWSVRPTUlSCitCT0dEQU5PVknEhiBWTEFESU1JUgorQk9HREFOT1ZJxIYgVkxBSktPCitCT0dEQU5PVknEhiBaRFJBVktPCitCT0dEQU5PVknEhiBaT1JBTgorQk9HREFOT1ZTS0kgRElNSVRSSUpFCitCT0dEQU5PVlNLSSBTTE9CT0RBTgorQk9HRVRJxIYgRFJBR09MSlVCCitCT0dFVEnEhiBTQU5KQQorQk9HScSMRVZJxIYgxb1JVktPCitCT0dJxIxFVknEhiBBTsSQRUxLQQorQk9HScSMRVZJxIYgREFOSUNBCitCT0dJxIxFVknEhiBEVcWgQU4KK0JPR0nEjEVWScSGIEdFT1JHSUpFCitCT0dJxIxFVknEhiBLT1NUQURJTktBCitCT0dJxIxFVknEhiBLUlNUQQorQk9HScSMRVZJxIYgTEpVQknFoEEKK0JPR0nEjEVWScSGIExKVUJJQ0EKK0JPR0nEjEVWScSGIE1BUklKQQorQk9HScSMRVZJxIYgTUlMSUNBCitCT0dJxIxFVknEhiBOSUtPTEEKK0JPR0nEjEVWScSGIE5JS09MQQorQk9HScSMRVZJxIYgVElIT01JUgorQk9HScSMRVZJxIYgWk9SS0EKK0JPR0nFoEnEhiBBTkRSSUpBCitCT0dJxaBJxIYgRlJBTkpBCitCT0dJxaBJxIYgSk9TSVAKK0JPR0nEhiBBTEVLU0FOREFSCitCT0dJxIYgQU7EkEVMS0EKK0JPR0nEhiBCUkFOSVNMQVYKK0JPR0nEhiBESU1JVFJJSkUKK0JPR0nEhiBEUkFHQU4KK0JPR0nEhiBEVcWgQU5LQQorQk9HScSGIElMRElLTworQk9HScSGIEpFTEVOQQorQk9HScSGIEpFTElTQVZFVEEKK0JPR0nEhiBKT1ZBTgorQk9HScSGIExKVUJJQ0EKK0JPR0nEhiBNQVJJSkEKK0JPR0nEhiBNSUxBTgorQk9HScSGIE1JUkpBTkEKK0JPR0nEhiBTT0ZJSkEKK0JPR0nEhiBTUkXEhktPCitCT0dJxIYgU1RFVkFOCitCT0dJxIZFVknEhiDFvUVMSktBCitCT0dJxIZFVknEhiBBTsSQRUxLQQorQk9HScSGRVZJxIYgQlJBTklTTEFWCitCT0dJxIZFVknEhiBESU1JVFJJSkUKK0JPR0nEhkVWScSGIEpFTElTQVZFVEEKK0JPR0nEhkVWScSGIEpFTEtBCitCT0dJxIZFVknEhiBKT0xFVEEKK0JPR0nEhkVWScSGIEtPTlNUQU5USU4KK0JPR0nEhkVWScSGIE1JTEFOCitCT0dOQVIgxaBBTkRPUgorQk9HTkFSIEFMRUtTQU5EQVIgRElQTCBJTkcKK0JPR05BUiBBTlRBTAorQk9HTkFSIEVMSVpBQkVUQQorQk9HTkFSIEVMSVpBQkVUQQorQk9HTkFSIEdJWkVMQQorQk9HTkFSIEpPxb1FRgorQk9HTkFSIEtBTE1BTgorQk9HTkFSIExBSk/FoAorQk9HTkFSIE1BUklBCitCT0dOQVIgTUFSSUpBCitCT0dOQVIgTUlSS08KK0JPR05BUiBST1pJS0EKK0JPR05BUiBTSUxBUkQKK0JPR05BUiBTVEVWQU4gRFIKK0JPR09KRVYgxb1JVktPCitCT0dPSkVWQUMgRVLFvUVCRVQKK0JPR09KRVZBQyBKT1ZBTgorQk9HT0pFVknEhiBBTkdFTElOQQorQk9HT0pFVknEhiBCSUxKQU5BCitCT0dPSkVWScSGIEJPxb1PCitCT0dPSkVWScSGIEJSQU5JU0xBVgorQk9HT0pFVknEhiBCUkFOS08KK0JPR09KRVZJxIYgRFJBR08KK0JPR09KRVZJxIYgSk9WQU5LQQorQk9HT0pFVknEhiBMQVpPCitCT0dPSkVWScSGIExKVUJJU0FWCitCT0dPSkVWScSGIE1JTEFOCitCT0dPSkVWScSGIE1JTE9SQUQKK0JPR09KRVZJxIYgTUlUQVIKK0JPR09KRVZJxIYgTU9NxIxJTE8KK0JPR09KRVZJxIYgUkFETUlMQQorQk9HT0pFVknEhiBSQURPSktBCitCT0dPSkVWScSGIFJBRE9NSVIKK0JPR09KRVZJxIYgUkFET01JUgorQk9HT0pFVknEhiBSQUpLTworQk9HT0pFVknEhiBTVEFOSUpBCitCT0dPSkVWScSGIFRPRE9SCitCT0dPSkVWScSGIFZFTElNSVIKK0JPR09KRVZJxIYgVkxBREEKK0JPR09KRVZJxIYgVkxBRElDQQorQk9HT0pFVknEhiBWTEFKS08KK0JPR09TQVYgTUlMQU4KK0JPR09TQVZBQyBNSVJPU0xBVgorQk9HT1NBVkFDIE1JUk9TTEFWCitCT0dPU0FWQUMgWkRSQVZLTworQk9HT1NBVkxKRVYgSk9WQU5LQQorQk9HT1NBVkxKRVZJxIYgxb1BUktPCitCT0dPU0FWTEpFVknEhiBCUkFOSVNMQVYKK0JPR09TQVZMSkVWScSGIERPQlJJTEEKK0JPR09TQVZMSkVWScSGIERPQlJJVk9KRQorQk9HT1NBVkxKRVZJxIYgRFJBR0lDQQorQk9HT1NBVkxKRVZJxIYgRFJBR09NSVIKK0JPR09TQVZMSkVWScSGIE1JTEFESU4KK0JPR09TQVZMSkVWScSGIE1JT0RSQUcgRFIgSU5HCitCT0dPU0FWTEpFVknEhiBSQURFCitCT0dPU0FWTEpFVknEhiBTVEFOSU1JUgorQk9HT1NBVkxKRVZJxIYgWkxBVEEKK0JPR09WQUMgRE9CUk9TTEFWQQorQk9HT1ZBQyBEUkFHT0xKVUIKK0JPR09WQUMgTUlMQU4gRFIKK0JPR09WQUMgTklLT0xBCitCT0dPVkFDIFNMT0JPREFOCitCT0dPVknEhiBJQk9KQQorQk9HT1ZJxIYgTUlKTworQk9HT1ZJxIYgTklLT0xBCitCT0dPVknEhiBTVEVWQU4KK0JPR09WScSGIFRPTUlTTEFWCitCT0dPVknEhiBWRVNOQQorQk9HT1ZJxIYgVkVTTkEKK0JPR09WScSGIFpMQVRLTworQk9HVU5PVknEhiDEkE9SxJBFCitCT0dVTk9WScSGIEJPR0RBTgorQk9HVU5PVknEhiBCUkFOS08KK0JPR1VOT1ZJxIYgRFJBR0FOCitCT0dVTk9WScSGIE1JTEFOCitCT0dVTk9WScSGIFRPTUlTTEFWCitCT0dVTk9WScSGIFZMQURFCitCT0dVTk9WScSGIFpPUkFOCitCT0dVVCBMSlVCTworQk9HVVQgTkFEQQorQk9IQcSMRUsgVkFMVEVSCitCT0hJTkMgQk/FvUFOQQorQk9IT0NLSSBKQU5PxaAKK0JPSE9DS0kgSlVMSUpBTkEKK0JPSE9DS0kgUEVUQVIKK0JPSE9DS0kgUk9CRVJUCitCT0hPVEEgU0lMVkVTVEVSCitCT0hVxaAgSk9WQU4KK0JPSsSMRVRBIEdPUkFOCitCT0rEjEVWU0tJIE5BVU0KK0JPSsSMScSGIE1JTEFOCitCT0pBIEFORFJBxaAKK0JPSkEgRVJJS0EKK0JPSkFDIERBRklOQQorQk9KQUMgUkFESVZPSgorQk9KQURJxIYgTUlSS08KK0JPSkFHScSGIE1BUktPCitCT0pBTknEhiBBTEVLU0FOREFSCitCT0pBTknEhiBBTkEKK0JPSkFOScSGIEJPR09TQVYKK0JPSkFOScSGIEJPUklLQQorQk9KQU5JxIYgQk9TSUxKS0EKK0JPSkFOScSGIEJSQU5FCitCT0pBTknEhiBCVURJTUlSCitCT0pBTknEhiBEQVJJTktBCitCT0pBTknEhiBERVNBTktBCitCT0pBTknEhiBEUkFHSUNBCitCT0pBTknEhiBEUkFHT0xKVUIKK0JPSkFOScSGIERVxaBBTgorQk9KQU5JxIYgRFXFoEFOCitCT0pBTknEhiBJTElKQQorQk9KQU5JxIYgSkVMSUNBCitCT0pBTknEhiBMSlVCTworQk9KQU5JxIYgTUlMQU4KK0JPSkFOScSGIE1JTElWT0oKK0JPSkFOScSGIE1JTElWT0oKK0JPSkFOScSGIE1JTE/FoAorQk9KQU5JxIYgTUlMVU4KK0JPSkFOScSGIE1JT0RSQUcKK0JPSkFOScSGIFJBTktPCitCT0pBTknEhiBTTE9CT0RBTgorQk9KQU5JxIYgU1ZFVExBTkEKK0JPSkFOScSGIFZFTElNSVIKK0JPSkFOScSGIFpPUkFOCitCT0pBTknEhiBaT1JBCitCT0pBTk9WScSGIMSMRURPCitCT0pBTk9WScSGIERVxaBLTworQk9KQU5PVknEhiBMQVpBUgorQk9KQU5PVknEhiBNQVJKQU4KK0JPSkFOT1ZJxIYgTUlMT1JBRAorQk9KQU5PVknEhiBSSVNUQU4KK0JPSkFOT1ZJxIYgVlVKQURJTgorQk9KQU5PVknEhiBWVUpBRElOCitCT0pBVCBKQU5LTworQk9KQVQgTUlMT1JBRAorQk9KQVQgUkFET01JUgorQk9KQVQgVkVTRUxJTiBEUgorQk9KQknEhiBSQUpLTworQk9KScSMScSGIFJBRElWT0oKK0JPSknEhiBBTsSQRUxJSkEKK0JPSknEhiBCTEFHT1RBCitCT0pJxIYgQk9HREFOCitCT0pJxIYgQk9HT0xKVUIKK0JPSknEhiBCT0dPTUlSCitCT0pJxIYgQk9SSVNMQVYKK0JPSknEhiBCUkFOSVNMQVZBCitCT0pJxIYgQlJBTklTTEFWCitCT0pJxIYgQlJBTklTTEFWCitCT0pJxIYgQlJBTklTTEFWCitCT0pJxIYgREFOSUNBCitCT0pJxIYgREVKQU4KK0JPSknEhiBEUkFHQU4KK0JPSknEhiBEUkFHQU4KK0JPSknEhiBEUkFHSUNBCitCT0pJxIYgRFJBR0lOSkEKK0JPSknEhiBEVcWgQU5LQQorQk9KScSGIERVxaBBTgorQk9KScSGIERVxaBBTgorQk9KScSGIEdPUkRBTkEgRFIKK0JPSknEhiBHT1JEQU5BCitCT0pJxIYgR09SREFOQQorQk9KScSGIEtBVElDQQorQk9KScSGLUtPTEFSU0tJIEdPUkRBTkEKK0JPSknEhiBMQVpBUgorQk9KScSGIE1BUktPCitCT0pJxIYgTUnFoEtPCitCT0pJxIYgTUlMQQorQk9KScSGIE1JTEVOS08KK0JPSknEhiBNSUxJREFSCitCT0pJxIYgTUlMT1ZBTgorQk9KScSGIE1JT0RSQUcKK0JPSknEhiBNSVJLTworQk9KScSGIE1JUk9TTEFWCitCT0pJxIYgUkFET1NMQVZBCitCT0pJxIYgUkFKS08KK0JPSknEhiBSQUpLTworQk9KScSGIFNFTktBCitCT0pJxIYgU05Fxb1BTkEKK0JPSknEhiBTTkXFvUFOQQorQk9KScSGIFNPTkpJQ0EKK0JPSknEhiBTUkVURU4KK0JPSknEhiBTVEVWQU4KK0JPSknEhiBUT01JU0xBVgorQk9KScSGIFVHTEpFxaBBCitCT0pJxIYgVkVSQQorQk9KSU5PVknEhiBKRUxFTkEKK0JPSktJxIYgQUxFS1NBTkRBUgorQk9KS0nEhiBNSUxJQ0EKK0JPSktPIEFMRUtTQU5EQVIKK0JPSktPIEpPVkFOS0EKK0JPSktPIE1BUklKQQorQk9KS08gTkVWRU5LQQorQk9KS09WIEZFT0RPUgorQk9KS09WIFJPTUFOCitCT0pLT1ZJxIYgREFOSUNBCitCT0pLT1ZJxIYgS1JJU1RJTkEKK0JPSktPVknEhiBMRU5BCitCT0pLT1ZJxIYgTUlMSUNBCitCT0pLT1ZJxIYgU0xPQk9EQU4KK0JPSk9WScSGIMW9SVZPUkFECitCT0pPVknEhiBCT8WgS08KK0JPSk9WScSGIEJPR0RBTgorQk9KT1ZJxIYgQlJBTktPCitCT0pPVknEhiBCUkFOS08KK0JPSk9WScSGIERSQUdPSkUKK0JPSk9WScSGIERSQUdPU0xBVgorQk9KT1ZJxIYgRFJBR1VUSU4KK0JPSk9WScSGIERSQUdVVElOCitCT0pPVknEhiBJS09OSUpBCitCT0pPVknEhiBKQUtPVgorQk9KT1ZJxIYgTEpVQklDQQorQk9KT1ZJxIYgTEpVQk8KK0JPSk9WScSGIE1JTEFOCitCT0pPVknEhiBNSUxBTgorQk9KT1ZJxIYgTUlMSUNBCitCT0pPVknEhiBNSUxJQ0EKK0JPSk9WScSGIE1JTE9KRQorQk9KT1ZJxIYgTUlST1NMQVYKK0JPSk9WScSGIE5BREEKK0JPSk9WScSGIE5PVklDQQorQk9KT1ZJxIYgUEVUQVIKK0JPSk9WScSGIFNSRVRLTworQk9KT1ZJxIYgVE9NSVNMQVYKK0JPSk9WScSGIFZFTEnFoEEKK0JPSk9WScSGIFZFTEpLTworQk9KT1ZJxIYgVkxBREFOCitCT0pPVknEhiBWT0pJTgorQk9KT1ZJxIYgWk9SQU4KK0JPS8WgQU4gQU5LQQorQk9LxaBBTiBFTUlMSUpBTgorQk9LxaBBTiBTVE9KQU4KK0JPS8WgScSGIMSQT0tBCitCT0vFoEnEhiBKRUxFTkEKK0JPS8WgScSGIExBWkFSCitCT0vFoEnEhiBNSVJKQU5BCitCT0vFoEnEhiBNSVJKQU5BCitCT0vFoEnEhiBSQURBCitCT0vFoEnEhiBSQURPSktBCitCT0vFoEnEhiBSQURPU0xBVgorQk9LxaBJxIYgUlXFvUVOS0EKK0JPS8WgScSGIFNPS0EKK0JPS0Egxb1JVktBCitCT0tBIFNJTFZJTworQk9LQSBTVEpFUEFOCitCT0tBTiBBTsSQQQorQk9LQU4gQU5JQ0EKK0JPS0FOIERSQUdPCitCT0tBTiBNSUxBTgorQk9LQU4gTUlMQU4KK0JPS0FOIE1JTEVOQQorQk9LQU4gTUlSS08KK0JPS0FOIE5JS09MQQorQk9LQU4gUkFERQorQk9LQU4gUkFET01JUgorQk9LQU4gU0xPQk9EQU4KK0JPS0FOIFRPTUlTTEFWCitCT0tBTiBWRUxKS08KK0JPS0FOScSGIEJSQU5JU0xBVgorQk9LQU5JxIYgVkxBRElNSVIKK0JPS0nEhiBEQU5JTE8KK0JPS0nEhiBEVcWgQU4KK0JPS0nEhiBNSUxBTgorQk9LScSGIFJBRE9KSUNBCitCT0tJxIYgVklECitCT0tPUiDEkE9SxJBFIERJUEwgSU5HCitCT0tPUiDEkE9SxJBFCitCT0tPUiBHQVZSQQorQk9LT1IgTEFTTE8gRElQTCBJTkcKK0JPS09SIExBU0xPCitCT0tPUiBNQVJJSkEKK0JPS09ST1YgVEFOQVNJSkUgRElQTCBJTkcKK0JPS1VOIERVQlJBVktBCitCT0tVTiBOT1ZBSworQk9LVU4gUEVUQVIKK0JPS1VOIFNQQVNJSkEKK0JPS1VOIFNURVZBCitCT0tVTiBWTEFESU1JUgorQk9MQU5PVknEhiBSQUpLQQorQk9MREnFvUFSIEpPxb1FRgorQk9MREnFvUFSIExBU0xPCitCT0xESU4gUlVET0xGCitCT0xET0NLSSBKT8W9RUYKK0JPTERPQ0tJIFZMQURJTUlSCitCT0xET0cgTEFKT8WgCitCT0xFUkFDIEFOQQorQk9MRVNOSUtPViBCUkFOSVNMQVYKK0JPTEVTTklLT1YgREFSSU5LQQorQk9MRVNOSUtPViBNSUxPUkFECitCT0xFU05JS09WIFpPUkFOCitCT0xGIEJSQU5LTworQk9MRiBORVZFTktBCitCT0xGSUsgSk9TSVAKK0JPTEnEhiBaTEFUS08KK0JPTElOT1ZTS0EgU09GSUpBCitCT0xJTk9WU0tJIE1JUk9TTEFWCitCT0xKQU5PVknEhiDEkE9SxJBFCitCT0xKQU5PVknEhiBBTEVLU0FOREFSCitCT0xKQU5PVknEhiBNSUxJVk9KRQorQk9MSkFOT1ZJxIYgTklLT0xBCitCT0xKQU5PVknEhiBSQURPVkFOCitCT0xKQU5PVknEhiBaT1JJQ0EKK0JPTEpFVknEhiBTVkVUT1pBUgorQk9MTUFOQUMgQlJBTktPCitCT0xNQU5BQyBFVkdFTklKRQorQk9MTyDFvU9MVAorQk9MT0sgQU5EUkHFoAorQk9MT0sgSk/FvUVGCitCT0xPSyBLQVJMTworQk9MT0sgS0FST0xKCitCT0xPSyBQQUwKK0JPTE9SSU4gUkFESVZPSgorQk9MVEEgxb1FTEpLTworQk9MVEEgxJBVUkEKK0JPTFRBIEJSQU5LTworQk9MVEEgRFJBR0lDQQorQk9NRcWgVEFSIFJBREEKK0JPTkEgU1RFVkFOCitCT05Exb1JxIYgREVKQU4KK0JPTkRBUkVOS08gQUxFS1NBTkRBUiBEUgorQk9ORE9LScSGIEJPUklWT0pFCitCT05ET0tJxIYgTEpVQklDQQorQk9ORVJUIERVxaBBTiBEUgorQk9ORVJUIERVxaBBTgorQk9OScSGIERSQUdBTgorQk9OScSGIE1BUkpBTgorQk9OScSGIE1JTElDQQorQk9OScSGIFZMQURJTUlSCitCT05VUyBMSlVCSUNBCitCT1IgRU5EUkUKK0JPUsSMQU5JTiBMSlVCSUNBCitCT1LEjEFOSU4gU09GSUpBCitCT1LEjEFOU0tJIFRJTktBCitCT1LEjEnEhiBCVURFCitCT1LEjEnEhiBEUkFHQU5BCitCT1LEjEnEhiBKT1ZBTgorQk9SxaBJIFRJVkFEQVIgRElQTCBPRUMKK0JPUsWgT8WgIEFUSUxBCitCT1LFoE/FoCBCQVJCQVJBCitCT1LFoE/FoCBJxaBUVkFOCitCT1LFoE/FoCBJxaBUVkFOCitCT1LFoE/FoCBJTVJFCitCT1LFoFROQVIgSEVOUklLCitCT1LFoFRORVIgTkFEQQorQk9SxJBJTiBMQVpBUgorQk9SxJBPxaBLSSDEkE9SxJBFIERJUEwgSU5HCitCT1LEkE/FoEtJIEJPxaBLTworQk9SxJBPxaBLSSBNSUxJQ0EKK0JPUsSQT8WgS0kgVEFNQVJBCitCT1LEkE/FoEtJIFZPSklOCitCT1JBxaAgSVJFTkEKK0JPUkFTIEJPUklTTEFWCitCT1JBUyBNQVJJSkEKK0JPUkFTIE1JTElDQQorQk9SQkHFoCBLQVJPTEoKK0JPUkJBxaAgVklPTEVUQQorQk9SQkHFoCBaT0xUQU4KK0JPUkJFTEogQUxFS1NBTkRBUgorQk9SQkVMSiBKQU5PxaAKK0JPUkJFTEogSk9TSVAKK0JPUkJFTEogTEpVQklDQQorQk9SQkVMSiBNQVJJSkEKK0JPUkJFTEogTkVWRU5LQQorQk9SREHFoCDEkEVaRQorQk9SREHFoCBBS0/FoAorQk9SREHFoCBCRUxBCitCT1JEQcWgIEZFUkVOQworQk9SREHFoCBGUkFOSkEKK0JPUkRBxaAgSElMREEKK0JPUkVOT1ZJxIYgQU5UT05JSkUKK0JPUkVOT1ZJxIYgTUlMRQorQk9SRU5PVknEhiBWRVJBCitCT1JJIElNUkUgRFIKK0JPUkkgTUFSSUpBCitCT1JJxIxJxIYgTEFaQVIKK0JPUknEjEnEhiBOT1ZBSworQk9SScSMScSGIFJBRElWT0pFCitCT1JJxIxJxIYgUkFEVUxFCitCT1JJxaBFViBCT1JJU0xBVgorQk9SScWgRVYgTEpJTEpBTkEKK0JPUknFoEVWIE1JTEVOS08KK0JPUknFoEVWIE5JS09MQQorQk9SScWgRVYgUlXFvUlDQQorQk9SScWgRVYgU0FWQQorQk9SScWgRVYgVEVPRE9SCitCT1JJxaBFViBWQVNBCitCT1JJxaBJxIYgTUFSSUpBCitCT1JJxaBJxIYgVkxBRElNSVIKK0JPUknEhiDEjEVET01JUgorQk9SScSGIEFMRUtTQU5EQVIKK0JPUknEhiBEVcWgQU4KK0JPUknEhiBLQU1FTktPCitCT1JJxIYgS0FUSUNBCitCT1JJxIYgTUlMQU4KK0JPUknEhiBNSUxLQQorQk9SScSGIE5JS09MQQorQk9SScSGIFBFVEFSCitCT1JJxIYgU1RFVkFOCitCT1JJxIYgWk9SQU4KK0JPUknEhiBaT1JBTgorQk9SSVMgSk9TSVAKK0JPUklWT0pFVknEhiBWSVRPTUlSCitCT1JKQU5JTiBTTEFWS08KK0JPUkpBTk9WScSGIEdPUkRBTkEKK0JPUkpBTk9WScSGIElMSUpBCitCT1JKQU5PVknEhiBOSUtPTEEKK0JPUktPIFNUQU5JU0xBVgorQk9SS09WQcSMS0kgWk9SQU4KK0JPUktPVkFDIEtBVEFSSU5BCitCT1JLT1ZJxIYgRFJBR09TTEFWQQorQk9SS09WScSGIE1JTEFOCitCT1JMSkEgU1RFVkFOCitCT1JPxaAgxaBBTkRPUgorQk9ST8WgIMWgQU5ET1IKK0JPUk/FoCDEkEVSxJAKK0JPUk/FoC3EkEVWSSDFvUVMSktPCitCT1JPxaAgxJBPUsSQRQorQk9ST8WgIEFMRUtTQU5EQVIKK0JPUk/FoCBBTkRSSUpBCitCT1JPxaAgQU5UVU4KK0JPUk/FoCBFUk5FCitCT1JPxaAgRVZBCitCT1JPxaAgScWgVFZBTgorQk9ST8WgIEpPxb1FRgorQk9ST8WgIEpPTEFOCitCT1JPxaAgSlVMSUpBCitCT1JPxaAgTEFESVNMQVYKK0JPUk/FoCBMQUpPxaAKK0JPUk/FoCBNQVJHSVRBCitCT1JPxaAgTUlIQUpMTworQk9ST8WgIE1JSEFKTE8KK0JPUk/FoCBNSUtMT8WgCitCT1JPxaAgVkVSQQorQk9ST8WgScSGIEVMSVpBQkVUQQorQk9ST0NLSSBBTEVLU0FOREFSCitCT1JPQ0tJIERBTklDQQorQk9ST0NLSSBMSlVCSU5LQQorQk9ST0pBIExKVUJBTgorQk9ST0pBIFJVxb1JQ0EKK0JPUk9KRVYgQVJTRU4gRFIgTEVLQVIKK0JPUk9KRVYgRU1JTElKQU4gRFIKK0JPUk9KRVYgSkFHT0RBCitCT1JPSkVWIExKVUJPTUlSCitCT1JPSkVWIFJBRE1JTEEKK0JPUk9KRVZJxIYgQU5BCitCT1JPSkVWScSGIEJPxaBLTworQk9ST0pFVknEhiBCT8WgS08KK0JPUk9KRVZJxIYgQk/FoEtPCitCT1JPSkVWScSGIEJSQU5LTworQk9ST0pFVknEhiBEUkFHQU4KK0JPUk9KRVZJxIYgRFJBR09MSlVCCitCT1JPSkVWScSGIERVxaBBTgorQk9ST0pFVknEhiBLUlNUQQorQk9ST0pFVknEhiBMSklMSkFOQQorQk9ST0pFVknEhiBNSUxBTgorQk9ST0pFVknEhiBQQVZMRQorQk9ST0pFVknEhiBQRVRSQQorQk9ST0pFVknEhiBTTEFWS08gUFJPRgorQk9ST01JU0EgRFJBR0lDQQorQk9ST01JU0EgSkVMRU5BCitCT1JPTkpBQyBEUkFHQU4KK0JPUk9OSkFDIE1JTElDQQorQk9ST05KQUMgT0xHQQorQk9ST05KQUMgVkVSQQorQk9ST1RBIEFMRUtTQU5EQVIKK0JPUk9UQSBKT1ZBTktBCitCT1JPVEEgTUlMQU4KK0JPUk9UQSBNSUxPUkFECitCT1JPVEEgTUlSQQorQk9ST1RBIFJBRE9TTEFWIERSIExFS0FSCitCT1JPVsSMQU5JTiBMSlVCT01JUgorQk9ST1bEjEFOSU4gTUlMSVNBVgorQk9ST1bEjEFOSU4gTkVERUxKS08KK0JPUk9WxIxBTklOIFJBRE9NSVIKK0JPUk9WxIxBTklOIFNMT0JPREFOCitCT1JPVkFDIEFSU08KK0JPUk9WQUMgQlJBTklTTEFWCitCT1JPVkFDIEtBVElDQQorQk9ST1ZBQyBNSUxPUkFECitCT1JPVknEjEFOSU4gTUlMT1JBRAorQk9ST1ZJxIYgQVRJTEEKK0JPUk9WScSGIEpPU0lQCitCT1JPVknEhiBKT1ZBTgorQk9ST1ZJxIYgS09TVEEKK0JPUk9WScSGIE1FTkEKK0JPUk9WScSGIFBFVEFSCitCT1JPVknEhiBSVURPTEYKK0JPUk9WScSGIFZMQURFCitCT1JPVknEhkFOSU4gTUlST1NMQVYKK0JPUk9WSUNBIEJPSktBCitCT1JPVklDQSBJVkFOCitCT1JPVklDQSBJVkFOCitCT1JPVklDQSBKRUxFTkEKK0JPUk9WSUNBIE1JT0RSQUcKK0JPUk9WTklDQSBCUkFOS08KK0JPUk9WTklDQSBNQVJLTworQk9ST1ZOSUNBIE1JTEFOCitCT1JPVk5JQ0EgTUlMRVZBCitCT1JPWkFOIE1JTE9SQUQKK0JPUlXFoCBJxaBUVkFOCitCT1JVxaAgSVJFTkEKK0JPUlpBxaBLSSBCUkFUSVNMQVZBCitCT1JaQcWgS0kgUkFET01JUgorQk9SWkHFoEtJIFNURVZBTgorQk9TQUsgSVJFTkEKK0JPU0FLT1YgRFJBR0FOCitCT1NBTsSMScSGIEJPxaBLTworQk9TQU7EjEnEhiBCT0dEQU4KK0JPU0FOxIxJxIYgQk9HREFOCitCT1NBTsSMScSGIEpFTElDQQorQk9TQU7EjEnEhiBNQU5PSkxPCitCT1NBTsSMScSGIE1JTEVWQQorQk9TQU7EjEnEhiBNSU9EUkFHCitCT1NBTsSMScSGIFJBRE9WQU4KK0JPU0FOxIxJxIYgUkFKS08KK0JPU0FOxIxJxIYgVFJJVkEKK0JPU0FOxIxJxIYgVkFTTworQk9TQU7EjEnEhiBWTEFETworQk9TQU7EjEnEhiBWVUpPCitCT1NBTkFDIEpPVkFOCitCT1NBTkFDIExKVUJJQ0EKK0JPU0FOQUMgTUFSSUpBCitCT1NBTkFDIE5JS09MQQorQk9TQU5BQyBWRVJBCitCT1NJxIYgQk/FvUFOQQorQk9TScSGIEJSQU5LTworQk9TScSGIERVxaBBTiBEUgorQk9TScSGIEpPVkFOCitCT1NJxIYgTUlPRFJBRworQk9TScSGIFJBRE9WQU4KK0JPU0nEhiBTTEFWS0EKK0JPU0lMSktJxIYgTEFaQVIKK0JPU0lMSktJxIYgTFVLQQorQk9TSU4gU0xPQk9EQU4KK0JPU0lPSyBET1JVCitCT1NOQUktQkFCQSBMVUNJSkEKK0JPU05BSSBKQU5PxaAKK0JPU05JxIYgxIxFRE9NSVIKK0JPU05JxIYgxJBVUsSQSU5LQQorQk9TTknEhiBBTEVLU0FOREFSCitCT1NOScSGIEJPxb1JREFSCitCT1NOScSGIEJPU0lMSktBCitCT1NOScSGIERBVklECitCT1NOScSGIERBVklECitCT1NOScSGIEpPVkFOCitCT1NOScSGIE1BUkEKK0JPU05JxIYgTUlSS08KK0JPU05JxIYgTUxBREVOCitCT1NOScSGIE5BREEKK0JPU05JxIYgTlVSSUpBCitCT1NOScSGIFJBRE9TQQorQk9TTknEhiBSQUpLTworQk9TTknEhiBWRVJBCitCT1NOScSGIFZMQURBCitCT1NOScSGIFZMQURBCitCT1NOScSGIFpPUkFOCitCT1RBIEJSQU5JU0xBVgorQk9UScSMIE9MSVZFUkEKK0JPVEnEhiBBTEVLU0FOREFSCitCT1RJxIYgQk9HREFOCitCT1RJxIYgREFOSUNBCitCT1RJxIYgREFSS08KK0JPVEnEhiBEQVJLTworQk9UScSGIEdBVlJBCitCT1RJxIYgTUlMQU4KK0JPVEnEhiBNSUxBTgorQk9UScSGIE1JTEUKK0JPVEnEhiBNSUxPUkFEIEFEVk9LQVQKK0JPVEnEhiBNSVJPU0xBVkEKK0JPVEnEhiBPTElWRVJBCitCT1RJxIYgUFJPS0EKK0JPVEnEhiBSQURPU0xBVkEKK0JPVEnEhiBWRVJJQ0EKK0JPVEnEhiBWTEFESU1JUgorQk9UScSGIFpPUkFOS0EKK0JPVEtBIEFOVEFMCitCT1RLQSBEQVZJRAorQk9US0EgRVLFvUVCRVQKK0JPVEtBIFZFUk9OQQorQk9US0EgWk9MVEFOCitCT1RMSUsgR0VaQQorQk9UTElLIE1BUklKQQorQk9UT8WgS0kgRFJBR09WQU4KK0JPVE/FoEtJIFNBVkEKK0JPVE9SScSGIFJBRE9KSUNBCitCT1RaQSBJxaBUVkFOCitCT1pFSkFDIEFOVEFMIERJUEwgUFJBVk5JSworQk9aRUpBQyBEVcWgQU4KK0JPWkVKQUMgR09SREFOQQorQk9aRUpBQyBNSUxFTktPCitCT1pFSkFDIFNNSUxKS0EKK0JPWkVKQUMgU1ZFVElTTEFWCitCT1pFSkFDIFZFUkEKK0JPWk9LSU4gU1RFVklDQQorQlLEjEnEhiBJR05KQUMKK0JSxIxJxIYgTUlST1NMQVYKK0JSxIxJxIYgTkXEkE8KK0JSxIxJxIYgUkFET1ZBTgorQlLEjElOIMSQT1LEkEUKK0JSxIxJTiBNSUxJTktBCitCUsSMSU4gTklLT0xBCitCUsSMSU4gUkFUT01JUgorQlLEjElOIFNMQVZJQ0EKK0JSxIxJTiBTVkVUT1pBUgorQlLEjElOT1ZJxIYgUEFWTEUKK0JSxIxLQUxPVknEhiBMSlVCT01JUgorQlJBxIxFVknEhiBJVkFOCitCUkHEjEVWScSGIE1JUkpBTkEKK0JSQcWgQU5BQyBCT1JJU0xBVgorQlJBxaBBTkFDIEdBVlJJTE8gRElQTCBJTkcKK0JSQcWgQU5BQyBJTElKQQorQlJBxaBBTkFDIE1JUkpBTkEKK0JSQcWgQU5BQyBNSVJPU0xBVgorQlJBxaBLTyBKT8W9RUYKK0JSQcWgTkpPIEdVU1RBVgorQlJBxaBOSk8gScWgVFZBTgorQlJBxaBOSk8gScWgVFZBTgorQlJBQ0FOT1ZJxIYgREFNSkFOCitCUkFDQU5PVknEhiBNSUxVVElOCitCUkFDScSGIE1JTEFOCitCUkFEQcSMIEVMSVpBQkVUQQorQlJBREHEjCBJTVJFCitCUkFEQcWgIMW9SVZBIERJUEwgSU5HCitCUkFEQVJJxIYgTkVERUxKS08KK0JSQURJxIYgxJBPUsSQRQorQlJBREnEhiDEkE9SxJBFCitCUkFEScSGIEJPxb1JREFSCitCUkFEScSGIEJPR09MSlVCCitCUkFEScSGIEJPR09MSlVCCitCUkFEScSGIEJSQU5LTworQlJBREnEhiBFVkdFTklKQQorQlJBREnEhiBHQVZSSUxPCitCUkFEScSGIEpVU1RJTkEKK0JSQURJxIYgTUlMQU4gRElQTCBJTkcKK0JSQURJxIYgTUlMQU4KK0JSQURJxIYgTUlMSUNBCitCUkFEScSGIE1JTElWT0pFCitCUkFEScSGIE1JTEpLTworQlJBREnEhiBTTE9CT0RBTgorQlJBREnEhiBTUkVUQQorQlJBREnEhi1URU5KSSBaT1JJQ0EKK0JSQURJxIYgVEVPRE9SQQorQlJBREnEhiBUT01JU0xBVkEKK0JSQURJxIYgVklET0pFCitCUkFEScSGIFpPUklDQQorQlJBRE/FoCBTTE9CT0RBTgorQlJBSFRMIE1BUklDQQorQlJBSkRJxIYgSVZBTgorQlJBSkVSIEZSQU5KQQorQlJBSkVWScSGIFBSRURSQUcKK0JSQUpJxIYgTUlMSUNBCitCUkFKScSGIFJBRE9WQU4KK0JSQUpJxIYgU0xPQk9EQU4KK0JSQUpLT1YgTUFSS08KK0JSQUpLT1ZJxIYgSVZPCitCUkFKS09WScSGIE1JUkpBTkEKK0JSQUpPVknEhiBNSUxJVk9KRQorQlJBSk9WScSGIE1JTE/FoAorQlJBSk9WScSGIFNMQVZLQQorQlJBSk9WScSGIFNQQVNPSkUKK0JSQUpPVknEhiBTVEFOS0EKK0JSQUpPVknEhiBWRUxKS08KK0JSQUtPxIxFVknEhiBKT1ZBTgorQlJBS1VTIERVxaBBTktBCitCUkFLVVMgTEpJTEpBTkEKK0JSQUtVUyBNQVJJSkEKK0JSQUtVUyBNSUxBTgorQlJBS1VTIE1PTcSMSUxPCitCUkFMT1ZJxIYgUkFUS08KK0JSQU7EjEnEhiBCT1JJUyBESVBMIElORworQlJBTsSMScSGIEpBU05BCitCUkFOxIxJxIYgTUlMRU5BCitCUkFOxIxJxIYgTUlMVcWgS08KK0JSQU5BIFBFVEFSCitCUkFOSUxPVknEhiBTVEpFUEFOCitCUkFOS09WIMSQT1LEkEUKK0JSQU5LT1YgxJBPUsSQRQorQlJBTktPViBBTEVLU0FORFJBCitCUkFOS09WLUJPS0EgUk9aQUxJSkEKK0JSQU5LT1YgQk9SSVZPSgorQlJBTktPViBCUkFOSVNMQVYKK0JSQU5LT1YgRE9CUklDQQorQlJBTktPViBEUkFHQU5BCitCUkFOS09WIERSQUdBTgorQlJBTktPViBEVcWgQU4KK0JSQU5LT1YgRU1JTAorQlJBTktPViBJTElKQQorQlJBTktPViBKRUxJQ0EKK0JSQU5LT1YgSk9WQU5LQQorQlJBTktPViBLT1NUQQorQlJBTktPViBLT1NUQQorQlJBTktPViBMSlVCSUNBCitCUkFOS09WIExKVUJJQ0EKK0JSQU5LT1YgTEpVQklOS08KK0JSQU5LT1YgTUlMSUNBCitCUkFOS09WIE1JTE9SQUQKK0JSQU5LT1YgTUlSS08KK0JSQU5LT1YgTUlUQQorQlJBTktPViBNSVRBCitCUkFOS09WIE1MQURFTgorQlJBTktPViBNT01JUgorQlJBTktPViBOQURBCitCUkFOS09WIE9MSVZFUkEKK0JSQU5LT1YgUkFESVZPSgorQlJBTktPViBSQURPVkFOCitCUkFOS09WIFJBRE9WQU4KK0JSQU5LT1YgU1ZFVElTTEFWCitCUkFOS09WIFZFTEpLTworQlJBTktPViBWTEFESU1JUgorQlJBTktPViBaTEFUSU5LQQorQlJBTktPVkFOIMSQT1LEkEUKK0JSQU5LT1ZBTiBWTEFTVElNSVIKK0JSQU5LT1ZJxIYgQk9HT0xKVUIKK0JSQU5LT1ZJxIYgQk9KQQorQlJBTktPVknEhiBCUkFOS08KK0JSQU5LT1ZJxIYgQlJBTktPCitCUkFOS09WScSGIERSQUdBTgorQlJBTktPVknEhiBEVcWgQU5LQQorQlJBTktPVknEhiBEVcWgQU4KK0JSQU5LT1ZJxIYgRFXFoEFOCitCUkFOS09WScSGIElMSUpBCitCUkFOS09WScSGLUtPVkHEjEVWScSGIFJBRE1JTEEKK0JSQU5LT1ZJxIYgTEpJTEpBTkEKK0JSQU5LT1ZJxIYgTEpVQklDQQorQlJBTktPVknEhiBNSUxBTgorQlJBTktPVknEhiBNSUxFTkEKK0JSQU5LT1ZJxIYgTUlMT1JBRAorQlJBTktPVknEhiBNSVJLTworQlJBTktPVknEhiBNTEFERU4KK0JSQU5LT1ZJxIYgU0FWS0EKK0JSQU5LT1ZJxIYgU0xBVktPCitCUkFOS09WScSGIFNMQVZPTEpVQgorQlJBTktPVknEhiBTTEFWT0xKVUIKK0JSQU5LT1ZJxIYgU1ZFVExBTkEKK0JSQU5LT1ZJxIYgVFVHT01JUgorQlJBTktPVknEhiBaSU5BCitCUkFOS09WScSGIFpPUkFOCitCUkFOT1ZBxIxLSSDEkE9SxJBFCitCUkFOT1ZBxIxLSSBBTkdFTElOQQorQlJBTk9WQcSMS0kgR0FWUklMTworQlJBTk9WQcSMS0kgSVZBTkEKK0JSQU5PVkHEjEtJIExKVUJJQ0EKK0JSQU5PVkHEjEtJIE9MR0EKK0JSQU5PVkHEjEtJIFNWRVRJU0xBVgorQlJBTk9WScSGIEJJU0VSS0EKK0JSQU5PVknEhiBSVcW9QQorQlJBT1ZJxIYgU0FORFJBCitCUkFPVknEhiBWTEFESU1JUgorQlJBVCBEVcWgQU4KK0JSQVRJxIYgQcWgSVIKK0JSQVRJxIYgRFJBR08KK0JSQVRJxIYgRFXFoEFOCitCUkFUScSGIEdPUkFOCitCUkFUScSGIExKVUJJQ0EKK0JSQVRJxIYgTEpVQk9NSVIKK0JSQVRJxIYgTVVITworQlJBVEnEhiBORURFTEpLTworQlJBVEnEhiBSQURPVkFOCitCUkFUScSGIFZPSklTTEFWCitCUkFUT05Pxb1JxIYgTUFSR0lUQQorQlJCT1JJxIYgTEFaQVIKK0JSQk9SScSGIFNSQklTTEFWCitCUkNBTk9WIMSQVVLEkElOS0EKK0JSQ0FOT1YgT0xHQQorQlJDQU5PViBTSU1BCitCUkNBTk9WIFRJSE9NSVIKK0JSQ0FOU0tJIE5JS09MQQorQlJEQVIgREFORQorQlJEQVIgRFJBR08KK0JSREFSIElMSUpBCitCUkRBUiBJVkFOS0EKK0JSREFSIE1JTEFOCitCUkRBUiBQRVJPCitCUkRBUiBTTEFWScWgQQorQlJEQVJFVknEhiBEVcWgS08KK0JSREFSScSGIERSQUdPTUlSCitCUkRBUknEhiBLT1NUQQorQlJEQVJJxIYgTUlMQU4KK0JSREFSScSGIFBFVEFSCitCUkXFoMSGQU5TS0kgTUFSSUpBCitCUkXFoEtPVknEhiBTVEFOSVNMQVZBCitCUkXFoEtPVlNLSSBEUkFHSUNBCitCUkXFvUFOIElMT05BCitCUkXFvUFOIExFT05PUkEKK0JSRcW9QU4gTUFSSUpBCitCUkVCRVIgTEpVQklDQQorQlJFQkVSSU5BIE1JTEFOCitCUkVCRVJJTkEgU1RFVkFOCitCUkVHVU4gxJBPUsSQRQorQlJFR1VOIEFMRUtTQU5EUkEKK0JSRUdVTiBOSUtPTEEKK0JSRUdVTiBSQURPU0xBViBESVBMIElORworQlJFS0FMTyBKT1NJUAorQlJFS0nEhiBJTElKQQorQlJFS0nEhiBOSUtPTEEKK0JSRUtJxIYgU1RFVkFOCitCUkVORUNLSSBaRFJBVktPCitCUkVORVNFTCBEUkFHQU4KK0JSRU5FU0VMIEdBQlJJRUwKK0JSRU5FU0VMIE1JUkpBTkEKK0JSRU5FU0VMIE5JS09MQQorQlJFU1RPVkHEjEtJIElWQU4KK0JSRVNUT1ZBxIxLSSBKQVNNSU5BCitCUkVTVE9WQcSMS0kgTUlMS0EKK0JSRVNUT1ZBxIxLSSBTVEVWQQorQlJFVCBWRVJBCitCUkVUxaBOQUpERVIgQU5BCitCUkVaTklLIEVSTkUKK0JSRVpOSkFLIEpBTk/FoAorQlJFWk5KQUsgTUFSSUpBCitCUkVaT1bEjEVLIEpPVkFOS0EKK0JSRVpPVkFDIERSQUdJQ0EKK0JSRVpPVkFDIERVxaBBTgorQlJFWk9WQUMgSVZBTgorQlJFWk9WQUMgSVZBTgorQlJFWk9WQUMgSlVSQUoKK0JSRVpPVkFDIEtBVEFSSU5BCitCUkVaT1ZBQyBMSlVCSU5LQQorQlJFWk9WQUMgTUlMRU5BCitCUkVaT1ZBQyBNSUxPxaAKK0JSRVpPVkFDIFBFVEFSCitCUkVaT1ZBQyBTQVZBCitCUkVaT1ZJxIYgTUlSSkFOQQorQlJJxaBFVkFDIEpVUkUKK0JSSUtFUiBTTUlMSkFOQQorQlJJTkpBSyBEUkFHTworQlJJVFZFQyBNQVJLTworQlJJWkEgxb1FTE1JUkEKK0JSSVpBIEpBTgorQlJJWkEgTFVLUkVDSUpBCitCUksgU0lNTworQlJLQU5JxIYgTUFSS08KK0JSS0FOScSGIE1JTEVOS08KK0JSS0FOScSGIFRBVEpBTkEKK0JSS0FOTEnEhiDFvUVMSktPCitCUktBTkxJxIYgRFXFoEFOCitCUktJxIYgxJBPUsSQRQorQlJLScSGIMSQT1LEkEUKK0JSS0nEhiDEkFVSTworQlJLScSGIEFCQVoKK0JSS0nEhiBBTEVLU0FOREFSCitCUktJxIYgQUxFS1NBTkRBUgorQlJLScSGIEFOS0EKK0JSS0nEhiBBTktJQ0EKK0JSS0nEhi1CRUxJxIYgREFOSUNBCitCUktJxIYgQk9HREFOCitCUktJxIYgQlJBTktPCitCUktJxIYgRFJBR0FOCitCUktJxIYgRFJBR0EKK0JSS0nEhiBEUkFHTworQlJLScSGIERVxaBBTktBCitCUktJxIYgR09KS08KK0JSS0nEhiBJTElKQQorQlJLScSGIElWQU4KK0JSS0nEhiBJVklDQQorQlJLScSGIEpFTElTQVZFVEEKK0JSS0nEhiBKT1ZBTgorQlJLScSGIEpPVkFOCitCUktJxIYgSk9WQU4KK0JSS0nEhiBKT1ZBTgorQlJLScSGIExKVUJPTUlSCitCUktJxIYgTFVLQQorQlJLScSGIE1BR0RBTEVOQQorQlJLScSGIE1BTkRBCitCUktJxIYgTUFSSUpBCitCUktJxIYgTUFSSUpBCitCUktJxIYgTUlMQURJTgorQlJLScSGIE1JTEFOCitCUktJxIYgTUlMQU4KK0JSS0nEhiBNSUxBTgorQlJLScSGIE1JUkpBTkEKK0JSS0nEhiBNSVRBUgorQlJLScSGIE5BREEKK0JSS0nEhiBORUJPSsWgQQorQlJLScSGIE5JS09MQQorQlJLScSGIE5JS09MQQorQlJLScSGIFBFVEFSCitCUktJxIYgUEVUQVIKK0JSS0nEhiBQRVRSQQorQlJLScSGIFJBRE9KS0EKK0JSS0nEhiBSQURPU0xBVgorQlJLScSGIFJBRE9TTEFWCitCUktJxIYgUkFET1NMQVYKK0JSS0nEhiBSQVRLTworQlJLScSGIFJVxb1BCitCUktJxIYgU0lMVklKQQorQlJLScSGIFNMQVZLTworQlJLScSGIFNORcW9QU5BCitCUktJxIYgU05Fxb1BTkEKK0JSS0nEhiBUT01PIERJUEwgSU5HCitCUktJxIYgVVJPxaAKK0JSS0nEhiBWRVpJTElKQQorQlJLScSGIFZMQURJTUlSCitCUktJxIYgVkxBRElNSVIKK0JSS0nEhiBWTEFESU1JUgorQlJLScSGIFZPSklTTEFWCitCUktJxIYgWkRSQVZLTworQlJLScSGIFpPUkFOCitCUktMSkHEjCBCUkFOSU1JUgorQlJLTEpBxIwgQlJBTklTTEFWCitCUktMSkHEjCBEUkFHT0xKVUIKK0JSS0xKQcSMIElMSUpBCitCUktMSkHEjCBLQVRBUklOQQorQlJLTEpBxIwgTUlMQU5LTworQlJLTEpBxIwgTUlMQU4KK0JSS0xKQcSMIE5JS09MQQorQlJLTEpBxIwgTklLT0xBCitCUktMSkHEjCBSVcW9SUNBCitCUktMSkHEjCBTTE9CT0RBTgorQlJLTEpBxIwgU1RFVkFOCitCUktMSkHEjEEgQlJBVE9MSlVCCitCUktMSkHEjEnEhiBCT8W9RU5BCitCUktMSkHEjEnEhiBWTEFESU1JUgorQlJLTyBOSUtPTEEKK0JSS09WScSGIMSQT1LEkEUKK0JSS09WScSGIEFOVFVOCitCUktPVknEhiBCT1NJTEpLQQorQlJLT1ZJxIYgRFJBR08KK0JSS09WScSGIERVxaBBTgorQlJLT1ZJxIYgRU1JTElKQQorQlJLT1ZJxIYgSk9WQU5LQQorQlJLT1ZJxIYgTEpVQk9NSVIKK0JSS09WScSGIE1BR0RBCitCUktPVknEhiBNSUxBTgorQlJLT1ZJxIYgTUlMSUNBCitCUktPVknEhiBOQURBCitCUktPVknEhiBOSUtPTEEKK0JSS09WScSGIFJBRE9WQU4KK0JSS09WScSGIFZJT0RTQVZBCitCUktPVknEhiBWSkVLT1NMQVYKK0JSS09WScSGIFpMQVRLTworQlJMScSGIERSQUdVVElOCitCUkxJxIYgSVZBTgorQlJNQk9UQSBKT1ZBTgorQlJNQk9UQSBKT1ZBTgorQlJOSkFLT1ZJxIYgTUFSSUpBCitCUk5PVknEhiBTVkVUT1pBUgorQlJPxaBURUFOIFZJT1JFTAorQlJPxIZFVEEgQk9HREFOCitCUk/EhkVUQSBNScSGQQorQlJPxIZFVEEgTUlMT1JBRAorQlJPxIZFVEEgTkVERUxKS08KK0JST8SGRVRBIE9CUkFECitCUk9EUkFOU0tJIFNWRVRMQU5BCitCUk9KxIxJTiBEVcWgQU4KK0JST0rEjElOIFNBVkEKK0JST05aQSBEUkFHQU4KK0JST05aQSBSQUpLTworQlJPWk9WScSGIElWQU4KK0JSU0FOT1ZJxIYgS1JTVEEKK0JSU1RJTkEgVkFTSUxJSkUKK0JSVEFOIEpPU0lQCitCUlRLQSBKQU4KK0JSVcWgTkpBSSBKT1NJUAorQlJVxaBOSkFLIFBFUk8KK0JSVUpJxIYgRFXFoEFOCitCUlVKScSGIEpPVkFOCitCUlVKScSGIE1BTk9KTE8KK0JSVUpJxIYgTUlMQU4KK0JSVUpJxIYgTUlMSUNBCitCUlVKScSGIFNMQVZLTworQlJVSknEhiBWTEFESU1JUgorQlJVSyBBTkRSSUpBIERSCitCUlVLTkVSIEJPR0RBTgorQlJVS05FUiBCT0dEQU4KK0JSVU7EjEVWScSGIEhJVlpPCitCUlVOxIxFVknEhiBSRUTFvUVQCitCUlVORFpBIENFQ0lMSUpBCitCUlVORFpBIFZMQURJTUlSIE1SCitCUlVORVIgSk9TSVAKK0JSVU5FVCBFTEVNRVIKK0JSVU5FVCBGUkFOSkEKK0JSVU5FVCBJxaBUVkFOCitCUlVORVQgWk9MVEFOCitCUlVORVQgWk9MVEFOCitCUlVTSU4gRFXFoEtPCitCUlVTSU4gS0FKSUNBCitCUlVTSU4gTUlMT0pLTworQlJVU0lOIE1JTE9WQU4KK0JSVVNJTiBSQURJQ0EKK0JSVVNJTiBTTEFWS08KK0JSVVNOSkFJIEtBUkxPCitCUlVTTkpBSSBMQVNMTworQlJVU05KQUkgTUFSR0FSSVRBCitCUlpBSyDFvUlWS0EKK0JSWkFLIMW9SVZPUkFECitCUlpBSyDEkE9SxJBFCitCUlpBSyDEkE9SxJBFCitCUlpBSyDEkE9SxJBFCitCUlpBSyDEkE9SxJBFCitCUlpBSyDEkFVLQQorQlJaQUsgQUxFS1NBTkRBUgorQlJaQUsgQUxFS1NBTkRBUgorQlJaQUsgQU7EkEVMS0EKK0JSWkFLIEJPR0RBTktBCitCUlpBSyBCT1JJU0xBVgorQlJaQUsgQk9TQQorQlJaQUsgQlJBTklTTEFWCitCUlpBSyBEUkFHQU4KK0JSWkFLIERSQUdBTgorQlJaQUsgRFJBR0lDQQorQlJaQUsgRFJBR09NSVIKK0JSWkFLIERVxaBLTworQlJaQUsgR09KS08KK0JSWkFLIElMSUpBCitCUlpBSyBKQURSQU5LQQorQlJaQUsgSkVMRU5BCitCUlpBSyBKT1ZBTgorQlJaQUsgSk9WQU4KK0JSWkFLIEpPVkFOCitCUlpBSyBKT1ZBTgorQlJaQUsgSk9WQU4KK0JSWkFLIEpPVkFOCitCUlpBSyBLT1NUQQorQlJaQUsgTEFaQVIKK0JSWkFLIExFUE9TQVZBCitCUlpBSyBNQVJJSkEKK0JSWkFLIE1JTEEKK0JSWkFLIE1JTEVOS08KK0JSWkFLIE1JTEVOS08KK0JSWkFLIE1JTEVOS08KK0JSWkFLIE1JTE9WQU4KK0JSWkFLIE1JTE9WQU4KK0JSWkFLIE1JUkEKK0JSWkFLIE1JUkEKK0JSWkFLIE1JUk9TTEFWCitCUlpBSyBNSVRBUgorQlJaQUsgUEVUQVIKK0JSWkFLIFBSRURSQUcKK0JSWkFLIFJBRE9TTEFWCitCUlpBSyBTQVZBCitCUlpBSyBTQVZFVEEKK0JSWkFLIFNJTUVPTgorQlJaQUsgU0xBVktPCitCUlpBSyBTTE9CT0RBTktBCitCUlpBSyBTVEVWQU4KK0JSWkFLIFNURVZBTgorQlJaQUsgU1RFVkFOCitCUlpBSyBTVE9KQU5LQQorQlJaQUsgU1ZFVExBTkEKK0JSWkFLIFNWRVRPWkFSCitCUlpBSyBUT8WgQQorQlJaQUsgVE/FoEEKK0JSWkFLIFRPxaBJQ0EKK0JSWkFLIFRPRE9SCitCUlpBSyBWQVNBCitCUlpBSyBWQVNBCitCUlpBSyBWQVNBCitCUlpBSyBWRUxKS08KK0JSWkFLIFZJREEKK0JSWkFLIFZJRE9TQVZBCitCUlpBSyBWSURPU0xBVgorQlJaQUsgVkxBRElTTEFWCitCUlpBSyBaT1JBTgorQlJaQUtPVknEhiBJR09SCitCUlpBS09WScSGIE5FTkFEIERSCitCUlpBS09WScSGIFZJVE9NSVIgRFIgTEVLQVIKK0JSWkFOT1ZJxIYgRFJBR0FOCitCUlpJxIYgxb1JVkFOCitCUlpJxIYgxJBPUsSQRQorQlJaScSGIEJSQU5LTworQlJaScSGIEZSQU5KQQorQlJaScSGIElWQU4KK0JSWknEhiBKT1ZBTgorQlJaScSGIExBWkFSCitCUlpJxIYgTEFaQVIKK0JSWknEhiBNSVJKQU5BCitCUlpJxIYgUEVUQVIKK0JSWknEhiBQRVRBUgorQlJaScSGIFJBRE9TTEFWCitCUlpJxIYgU1RFVkFOCitCUlpJxIYgU1ZFVE9aQVIKK0JSWknEhiBUT0RPUgorQlJaScSGIFpMQVRBCitCUlpJQ0EgQlJBTktBCitCUlpJQ0EgRkVSRE8KK0JSWklDQSBJVkFOS0EKK0JSWklDQSBNQVJJTktPCitCUlpPVkFOIEJFSElKQQorQlUgScWgVFZBTgorQlXEjEEgRFXFoEFOCitCVcSMQSBEVcWgSUNBCitCVcSMQSBJUklOQQorQlXEjEEgVkFTQQorQlXEjEFOU0tJIEpPxb1FRgorQlXEjEnEhiBCT1JJU0xBVgorQlXEjEtPIEFITkVUQQorQlXEjEtPIEpBTktPCitCVcSMS08gTUFSSUpBCitCVcSMTyBEQU5JSkVMQQorQlXEjFUtTUFSVE9OT8WgSSBHSVpFTEEKK0JVxaAgQU5BCitCVcWgIE1BR0RBTEVOQQorQlXFoCBTSUxWRVNURVIKK0JVxaBJxIYgU1JFxIZLTworQlXFoExKRVRBIEJSQU5LQQorQlXFoFRSRVZJxIYgTUlSSkFOQQorQlXFoFRSRVZJxIYgU0xPQk9EQU5LQQorQlXFoFRST1ZJxIYgT0xHQQorQlXEhkFOIERVxaBBTgorQlXEhkFOIERVxaBBTgorQlXEhkFOIE1JTEVWQQorQlXEhkFOIFNMQVZLQQorQlXEhkFOU0tJIE1BxIZBxaAKK0JVxIZJTiBSQURFCitCVcSGTyBaQUdPUktBCitCVcW9QU7EjEnEhiBNSVJBCitCVcW9QU5JTiBNSUxFCitCVcSQSSDEkFVMQQorQlXEkElMQU4gUEVUQVIKK0JVQcSMQSBEUkFHQU4KK0JVQcSMQSBPTEdJQ0EKK0JVQcSMQSBTVEVWQU4KK0JVQkFMTyBEUkFHQU4KK0JVQkFMTyBEUkFHSU5KQQorQlVCQUxPIEdPUkFOCitCVUJBTE8gSUxJSkEKK0JVQkFMTyBKT1ZBTgorQlVCQUxPIEpPVk8KK0JVQkFMTyBNSVJPU0xBVgorQlVCQUxPIFBFVEFSCitCVUJBTE8gUkFUT01JUgorQlVCQUxPIFNJTU8KK0JVQkFMTyBURU9ET1JBCitCVUJBTkogQlJBTklTTEFWCitCVUJBTkogREFORQorQlVCQU5KIElWQU5LQQorQlVCQU5KIE1JTElDQQorQlVCQU5KIE1JTE/FoAorQlVCQU5KIFJBREUKK0JVQkFOSiBSQURPSktBCitCVUJBTkogU1JCT0xKVUIKK0JVQkFOSiBWSURPU0FWQQorQlVCQU5KQSBBTEVLU0FOREFSCitCVUJBTkpBIEJBVFJJxIYKK0JVQkFOSkEgREFSSU5LQQorQlVCQU5KQSBLQVRJQ0EKK0JVQkFOSkEgTUHFoEFOCitCVUJBTkpBIFJBRElTQVYKK0JVQkFOSkEgVEFESUpBCitCVUJBTkpBIFZPSklTTEFWCitCVUJBTkpBIFpPUktBCitCVUJJxIYgTUlMQU4KK0JVQk5JxIYgVkVST05BCitCVUJOSkVWScSGIMSQT1LEkEUKK0JVQk5KRVZJxIYgQk9SRQorQlVCTkpFVknEhiBEQVJBCitCVUJOSkVWScSGIERSQUdPCitCVUJOSkVWScSGIEdPSktPCitCVUJOSkVWScSGIEpBTkpBCitCVUJOSkVWScSGIExKVUJPTUlSCitCVUJOSkVWScSGIE1BUklDQQorQlVCTkpFVknEhiBNQVJJTktPCitCVUJOSkVWScSGIE1JUktPCitCVUJOSkVWScSGIE5FTkFECitCVUJOSkVWScSGIE9TVE9KQQorQlVCTkpFVknEhiBSQURBCitCVUJOSkVWScSGIFJBRE9NSVIKK0JVQk5KRVZJxIYgUkVMSkEKK0JVQk5KRVZJxIYgU1JCT0xKVUIKK0JVQk5KRVZJxIYgU1JFVEVOCitCVUJOSkVWScSGIFNUT0pBTktBCitCVUJOSkVWScSGIFZBU0tSU0lKRQorQlVCTkpFVknEhiBWTEFESU1JUgorQlVCTkpJxIYgxb1FTEpLTworQlVCT05KQSBCT1JJUworQlVCT05KQSBET1NUQU5BCitCVUJPTkpBIERVxaBBTgorQlVCT05KQSBSQURPVkFOCitCVUJSRcWgS08gR09SREFOQQorQlVCVUxKIE1JTEnEhgorQlVCVUxKIE5BREEKK0JVQlVMSiBTVE9KQU5LQQorQlVCVUxKIFNUT0pBCitCVUNBTE8gTUlMQURJTgorQlVDQUxPIE1JUkEKK0JVQ0FMTyBNSVRBUgorQlVDQUxPVknEhiBEVcWgQU4KK0JVQ0nEhiBBTlRFCitCVUNJxIYgTUlMSVZPSgorQlVDVUxKRVZJxIYgQUxFS1NBTkRBUgorQlVDVUxKRVZJxIYgWkxBVE9NSVIgRFIKK0JVRMW9QUtPU0tJIFRPTUEKK0JVRMW9QVJPViBTQVZBCitCVURBIEFEQQorQlVEQSBFVkEKK0JVREEgSEFKTkFMS0EKK0JVREEgSk/FvUVGCitCVURBIFRFUkVaQQorQlVEQcSGIFpPUkFOCitCVURBSSBHT1JJQ0EKK0JVREFJIElMT05LQQorQlVEQUkgSk/FvUVGCitCVURBSSBKT0xBTgorQlVEQUkgSk9WQU4KK0JVREFJIExBSk/FoAorQlVEQUkgTEFKT8WgCitCVURBSSBaT1JBCitCVURBSyBEUkFHQU4KK0JVREFLIElWSUNBCitCVURBSyBNSUxBTgorQlVEQUsgVkVSQQorQlVEQUtPViBBTEVLU0FORFJBCitCVURBS09WIEJSQU5JU0xBVgorQlVEQUtPViBEUkFHQU4KK0JVREFLT1YgR09SSUNBCitCVURBS09WIElWQU4KK0JVREFLT1YgTEpJTEpBTkEKK0JVREFLT1YgTUlMQU4KK0JVREFLT1YgTUlMVVRJTgorQlVEQUtPViBPTElWRVJBCitCVURBS09WIFNMT0JPREFOCitCVURBTk9WIEFOVEFMCitCVURBTk9WIERBTklDQQorQlVEQU5PVknEhiBTQVZFVEEKK0JVREFOT1ZJxIYgU1RBTkEKK0JVREVSS0EgTUFSSUpBCitCVURJxaBBIEJPxb1BCitCVURJxaBBIEJPUkEKK0JVREnFoEEgTUlSS08KK0JVREnFoEEgVElIT01JUgorQlVEScWgScSGIERSQUdBTgorQlVEScWgSU4gxJBPUsSQRQorQlVEScWgSU4gSVZBTgorQlVEScWgSU4gTUlMT8WgCitCVURJxaBJTiBNSUxPxaAKK0JVREnFoElOIE5JS09MQSBEUgorQlVEScWgSU4tU0FLQcSMIFNPTkpBIERSCitCVURJxaBJTiBWTEFESU1JUgorQlVEScSGIMW9RUxKS08KK0JVREnEhiBEQU5JTE8KK0JVREnEhiBEUkFHT1NMQVYKK0JVREnEhiBEVcWgQU5LQQorQlVEScSGIE1JTEFOCitCVURJxIYgWk9SS0EKK0JVRElNxIxJxIYgSk9WQU4KK0JVRElNxIxJxIYgTEpJTEpBTkEKK0JVRElNxIxJxIYgTUlMSVZPSgorQlVESU1BIEJBSlJVxaAKK0JVRElNQUMgQlVESU1JUgorQlVESU1BQyBaT1JBTgorQlVESU1JUiBNQVJJSkEKK0JVRElNSVIgTUlMQU4KK0JVRElNSVIgTUlMT0pLTworQlVESU1JUk9WScSGIERSQUdJQ0EKK0JVRElNSVJPVknEhiBORUdPVkFOCitCVURJTUlST1ZJxIYgVVJPxaAKK0JVRElNS0nEhi1LUlNUScSGIERSQUdBTkEKK0JVRElNTElKQSBBTEVLU0FOREFSCitCVURJTUxJSkEgRFJBR0lDQQorQlVESU1MSUpBIElMSUpBCitCVURJTUxJSkEgTUlMQU4KK0JVRElNTElKQSBNSUxBTgorQlVESU1MSUpBIFJBREUKK0JVRElNU0tJIMSQVVJBCitCVURJTVNLSSBTTEFWVUoKK0JVRElOxIxFVknEhiBHQUJPUgorQlVESU7EjEVWScSGIEpVTElKQU5BCitCVURJTsSMRVZJxIYgTUlSS08KK0JVRElOxIxFVknEhiBOSUtPTEEKK0JVRElOU0tJIEtJUklMCitCVURJTlNLSSBMSlVCQQorQlVESU5TS0kgTUFSSUpBCitCVURJTlNLSSBWTEFESU1JUgorQlVESVNBVkxKRVZJxIYgQlJBTktPCitCVURJU0FWTEpFVknEhiBEVcWgQU4KK0JVRElTQVZMSkVWScSGIEtBUk9MSU5BCitCVURJU0FWTEpFVknEhiBNQVJJSkEKK0JVRElTQVZMSkVWScSGIE5BVEFMSUpBCitCVURJU0FWTEpFVknEhiBORVZFTktBCitCVURJU0FWTEpFVknEhiBSVcW9SUNBCitCVURJU0FWTEpFVknEhiBWRVJJQ0EKK0JVREpJTEFOIFBFVEFSCitCVURPxaBBTiDFvUlWS08KK0JVRE/FoEFOIMSQT1LEkEUKK0JVRE/FoEFOIEFMRUtTQU5EQVIKK0JVRE/FoEFOLUtPVkHEjCBKRUxFTkEKK0JVRE/FoEFOIE1JTE/FoAorQlVET8WgQU4gTkFEQQorQlVET8WgQU4gU0FWQQorQlVET8WgQU4gU0FWQQorQlVET8WgQU4gU1RFVkFOCitCVURPxaBBTiBUT8WgSUNBCitCVURPxaBBTiBWQVNBCitCVURPxaBBTiBWQVNBCitCVURPxaBBTiBWVUtPU0FWQQorQlVET1ZBTMSMRVYgQVJTQQorQlVET1ZBTMSMRVYgT0xHQQorQlVET1ZBTMSMRVYgUEVUQVIKK0JVRE9WQUzEjEVWIFBFVEFSCitCVURVUklOIFJBRE9KRQorQlVHQUTFvUlKQSBMQUpPxaAKK0JVR0FExb1JSkEgU1RFVkFOCitCVUdBUsSMScSGIFBFVEFSCitCVUdBUsSMScSGIFJBRE1JTE8KK0JVR0FSxIxJxIYgU01JTEpLQQorQlVHQVJJTi3EjE9OS0nEhiBSQURPSktBCitCVUdBUklOIMW9SVZBTgorQlVHQVJJTiDFvUlWQU4KK0JVR0FSSU4gxb1JVkFOCitCVUdBUklOIMW9SVZBTgorQlVHQVJJTiBCT8WgS08KK0JVR0FSSU4gQk9SSVNMQVYKK0JVR0FSSU4gREFOSUNBCitCVUdBUklOIElMSUpBCitCVUdBUklOIElWQU5BCitCVUdBUklOIEpFVlJPU0lNQQorQlVHQVJJTiBMSklMSkFOQQorQlVHQVJJTiBMSlVCT01JUgorQlVHQVJJTiBNQVJJSkEKK0JVR0FSSU4gTUlMT8WgCitCVUdBUklOIE1JTE9SQUQKK0JVR0FSSU4gUkFESVNMQVYKK0JVR0FSSU4gUkFET1NMQVYKK0JVR0FSSU4gU0lOScWgQQorQlVHQVJJTiBTUEFTT0pFCitCVUdBUklOIFNURVZBTgorQlVHQVJJTiBWRUxJQk9SCitCVUdBUklOIFZFU05BCitCVUdBUklOIFpPUkFOCitCVUdBUklOIFpPUklDQQorQlVHQVJJTk9WScSGIE1BUkdBUkVUQQorQlVHQVJJVSBKVUxJSkFOCitCVUdBUlNLSSDFvUFSS08KK0JVR0FSU0tJIMW9SUtBCitCVUdBUlNLSSDFvUlWQU4gRElQTCBJTkcKK0JVR0FSU0tJIMSQT1LEkEUKK0JVR0FSU0tJIMSQT1LEkEUKK0JVR0FSU0tJIMSQVVJJQ0EKK0JVR0FSU0tJIEJPSkFOQQorQlVHQVJTS0kgQlJBTktPCitCVUdBUlNLSSBESU1JVFJJSkUKK0JVR0FSU0tJIERJTUlUUklKRQorQlVHQVJTS0kgRFJBR0FOCitCVUdBUlNLSSBEUkFHSUNBCitCVUdBUlNLSSBEUkFHT0xKVUIgRFIKK0JVR0FSU0tJIERSQUdPTEpVQgorQlVHQVJTS0kgRFJBR09TTEFWCitCVUdBUlNLSSBEUkFHT1NMQVYKK0JVR0FSU0tJIERSQUdPU0xBVgorQlVHQVJTS0kgRFXFoEFOIERSCitCVUdBUlNLSSBEVcWgQU4KK0JVR0FSU0tJIERVxaBJQ0EKK0JVR0FSU0tJIERVxaBJQ0EKK0JVR0FSU0tJIERVxaBLTworQlVHQVJTS0kgRVZJQ0EKK0JVR0FSU0tJIEpPVkFOCitCVUdBUlNLSSBKVUxLQQorQlVHQVJTS0kgS0FUQQorQlVHQVJTS0kgS1JTVEEKK0JVR0FSU0tJIEtTRU5JSkEKK0JVR0FSU0tJIExBWkFSCitCVUdBUlNLSSBMQVpBUgorQlVHQVJTS0kgTUlMQU4KK0JVR0FSU0tJIE1JTEFOCitCVUdBUlNLSSBNSUxFTkEKK0JVR0FSU0tJIE1JTEVOS08KK0JVR0FSU0tJIE1JTEVUQQorQlVHQVJTS0kgTUlMSUNBCitCVUdBUlNLSSBNSUxPUkFECitCVUdBUlNLSSBNSVJBCitCVUdBUlNLSSBNSVJKQU5BCitCVUdBUlNLSSBNSVJKQU5BCitCVUdBUlNLSSBNSVJPU0xBVkEKK0JVR0FSU0tJIE1JUk9TTEFWCitCVUdBUlNLSSBOQURBCitCVUdBUlNLSSBORURFTEpLTworQlVHQVJTS0kgTklLT0xBCitCVUdBUlNLSSBPTElWRVJBCitCVUdBUlNLSSBQQUpBCitCVUdBUlNLSSBQQVZMRQorQlVHQVJTS0kgUkFET1NMQVYKK0JVR0FSU0tJIFJBU1RLTworQlVHQVJTS0kgUkFUT01JUgorQlVHQVJTS0kgU0FWQQorQlVHQVJTS0kgU0FWQQorQlVHQVJTS0kgU0xPQk9EQU4KK0JVR0FSU0tJIFNMT0JPREFOCitCVUdBUlNLSSBTTE9CT0RBTgorQlVHQVJTS0kgU09GSUpBCitCVUdBUlNLSSBTVEVWQU4KK0JVR0FSU0tJIFNURVZBTgorQlVHQVJTS0kgU1RFVkFOCitCVUdBUlNLSSBTVEVWQU4KK0JVR0FSU0tJIFNWRVRMQU5BCitCVUdBUlNLSSBUQVRKQU5BCitCVUdBUlNLSSBWT0pJU0xBVkEKK0JVR0FSU0tJIFZPSklTTEFWCitCVUdBUlNLSSBWT0pJU0xBVgorQlVHQVJTS0kgWk9SQQorQlVHRUxKIElWQU4KK0JVSEEgQlJBTktBCitCVUhBIFJBRElWT0pFCitCVUhBIFZVS0HFoElOCitCVUhNSUxFUiBBR05FxaAKK0JVSE1JTEVSIEFUSUxBCitCVUhNSUxFUiBFVkEKK0JVSE1JTEVSIEpPU0lQCitCVUhNSUxFUiBKT1NJUAorQlVITUlMRVIgS0FSTE8KK0JVScWgQSBNSUxJTktPCitCVUlMQSBBTkEKK0JVSUxBIElSSU5FSgorQlVJTEEgTEpVQklDQQorQlVJTEEgTUFLU0lNSUxJSkFOCitCVUlMQSBNSVJPU0xBVgorQlVJTEEgU0xBVklDQQorQlVJTEEgU0xBVk9NSVIKK0JVSkFLIEVNSUwKK0JVSkFLIE1BVElMREEKK0JVSkFLIFNBVkEKK0JVSkFORFJJxIYgQU7EkEVMS0EKK0JVSkFORFJJxIYgSk9WQU4KK0JVSkFORFJJxIYgTEpVQklDQQorQlVKQU5EUknEhiBNQVJJSkEKK0JVSkFORFJJxIYgTUlMSVZPSgorQlVKQU5EUknEhiBNSVRBUgorQlVKQU5EUknEhiBOSUtPTEEKK0JVSkFORFJJxIYgUEFWTEUKK0JVSkFORFJJxIYgUEVUQVIKK0JVSkFORFJJxIYgU1ZFVE9aQVIKK0JVSkFORFJJxIYgVkxBRElNSVIKK0JVSkFTIE1JTEVOS08KK0JVSkFTIFZFTsSMRVNMQVYKK0JVSkRPxaBBIFNURVZBTgorQlVKRE/FoElLIEJPSE9NSUwKK0JVSkRPxaBJSyBLTEFSQQorQlVKRE/FoElLIE1JUk9TTEFWCitCVUpET8WgTyBJxaBUVkFOCitCVUpJxaBJxIYgxb1JVktPCitCVUpJxIYgQk9SSVZPSkUKK0JVSkxBIEVURUxLQQorQlVKTEEgSkFTTUlOQQorQlVKTk9WScSGIMSQT1LEkEUKK0JVSk5PVknEhiBNSUxJTktPCitCVUtBTE9WIFpPUkEKK0JVS0FSQSBEVcWgQU5LQQorQlVLQVJJQ0EgREFOSUNBCitCVUtBUklDQSBKT1ZBTgorQlVLQVRLQSBBTkRSRUoKK0JVS0FUS0EgUkFET1NMQVYKK0JVS0FUS08gVkxBRElNSVIKK0JVS0FUS09WIElWQU4KK0JVS0nEhiBKQUtPVgorQlVLSUxJxIYgRFJBR0EKK0JVS0lMScSGIERSQUdJQ0EKK0JVS0lOIE5JS09MQSBESVBMIElORworQlVLSU5BQyDEkE9SxJBFCitCVUtJTkFDIEJJTEpBTkEKK0JVS0lOQUMgQk9HVU1JTEEKK0JVS0lOQUMgRElOQQorQlVLSU5BQyBHTElHT1JJSkUKK0JVS0lOQUMgSVZBTgorQlVLSU5BQyBKVUxLQQorQlVLSU5BQyBMQVpBUgorQlVLSU5BQyBNSUxBRElOCitCVUtJTkFDIE1JTEFOCitCVUtJTkFDIE1JTElDQQorQlVLSU5BQyBNSUxPU0FWQQorQlVLSU5BQyBNSVJLTworQlVLSU5BQyBNSVJPU0xBVgorQlVLSU5BQyBSVcW9SUNBCitCVUtJTkFDIFNMQVZLTworQlVLSU5BQyBTVEFOS0EKK0JVS0lOQUMgU1RFVkFOCitCVUtJTkFDIFVST8WgCitCVUtPVsSMQU5JTiBBQ0EKK0JVS09WQcSMS0kgTUlPRFJBRworQlVLT1ZBxIxLSSBQRVJBCitCVUtPVkHEjEtJIFNWRVRPWkFSCitCVUtPVkFDIEFOS0lDQQorQlVLT1ZBQyBBVElMQQorQlVLT1ZBQyBTVEVWQU4KK0JVS09WQUMgVkxBRE8KK0JVS09WQUxBIERFU0FOS0EKK0JVS09WScSMQU5JTiBSRUxKQQorQlVLT1ZJxIYgQU5EUkHFoAorQlVLT1ZJQ0EgRElNSVRSSUpFCitCVUtPVklDQSBSQU5LTworQlVLVEEgTkFEQQorQlVLVEEgWlZPTktPCitCVUtVTUlST1ZJxIYgTUlMT01JUgorQlVLVU1JUk9WScSGIE1JTE9SQUQgRElQTCBJTkcKK0JVS1VSRUNLSSBCUkFOSVNMQVYKK0JVS1VSRUNLSSBTSU5JxaBBCitCVUtVUknEhiBUQVRKQU5BCitCVUtVUk9WIMW9QVJLTworQlVLVVJPViDFvUlWQU4KK0JVS1VST1Ygxb1JVkFOCitCVUtVUk9WIEJPxaBLTworQlVLVVJPViBCUkFOSVNMQVYgRFIgUFJPRgorQlVLVVJPViBLU0VOSUpBCitCVUtWQSBWRUxJTUlSCitCVUtWScSGIMW9RUxKS0EKK0JVS1ZJxIYgQUxFS1NBTkRBUgorQlVLVknEhiBCUkFOS08KK0JVS1ZJxIYgQlVERQorQlVLVknEhiBEQU5FCitCVUtWScSGIERBTklMTworQlVLVknEhiBEQU5JTE8KK0JVS1ZJxIYgRFJBR0FOCitCVUtWScSGIERVxaBBTgorQlVLVknEhiBJTElKQQorQlVLVknEhiBJTElOS0EKK0JVS1ZJxIYgSkFOS08KK0JVS1ZJxIYgSkVMSVNBVkVUQQorQlVLVknEhiBKT1ZBTgorQlVLVknEhiBLT1ZJTEpLQQorQlVLVknEhiBMSlVCT01JUgorQlVLVknEhiBNQVJJSkEKK0JVS1ZJxIYgTUFSSU5LTworQlVLVknEhiBNSUxFTktPCitCVUtWScSGIE1JTEtBCitCVUtWScSGIE1JTE/FoAorQlVLVknEhiBNSUxPxaAKK0JVS1ZJxIYgTUlMT8WgCitCVUtWScSGIE1JTE9SQUQKK0JVS1ZJxIYgTUlST1NMQVYKK0JVS1ZJxIYgTUxBREVOCitCVUtWScSGIE5PVklDQQorQlVLVknEhiBSQURPVkFOCitCVUtWScSGIFNMQVZJQ0EKK0JVS1ZJxIYgU09GSUpBCitCVUtWScSGIFNURVZBTgorQlVLVknEhiBTVkVUT1pBUgorQlVLVknEhiBUT01JU0xBVgorQlVLVknEhiBWRUxJTUlSCitCVUtWScSGIFZMQURPCitCVUxBScSGIFJFTEpBCitCVUxBSknEhiDEkFVSTworQlVMQUpJxIYgREFOSUNBCitCVUxBSknEhiBNSU9EUkFHCitCVUxBSknEhiBOQVRBTElKQQorQlVMQUpJxIYgTkVERUxKS08KK0JVTEFKScSGIFZMQURJTUlSCitCVUxBS0nEhiBWVUtBxaBJTgorQlVMQVRPVknEhiBBTEVLU0FOREFSCitCVUxBVE9WScSGIEJSQU5JU0xBVgorQlVMQVRPVknEhiBESU1JVFJJSkUKK0JVTEFUT1ZJxIYgRFJBR0FOCitCVUxBVE9WScSGIERSQUdBTgorQlVMQVRPVknEhiBEVcWgQU5LQQorQlVMQVRPVknEhiBEVcWgQU4KK0JVTEFUT1ZJxIYgR1JBRElNSVIKK0JVTEFUT1ZJxIYgSUxJSkEKK0JVTEFUT1ZJxIYgTUlMQURJTgorQlVMQVRPVknEhiBNSUxJSkFOQQorQlVMQVRPVknEhiBNSUxJTktPCitCVUxBVE9WScSGIE1JTFVUSU4KK0JVTEFUT1ZJxIYgTU9NSVIKK0JVTEFUT1ZJxIYgTklLT0xBCitCVUxBVE9WScSGIE5JS09MQQorQlVMQVRPVknEhiBOT1ZBSworQlVMQVRPVknEhiBQQVZMRQorQlVMQVRPVknEhiBQRVJPCitCVUxBVE9WScSGIFBSRURSQUcKK0JVTEFUT1ZJxIYgUkFETUlMTworQlVMQVRPVknEhiBSQURPTkpBCitCVUxBVE9WScSGIFNBVkEKK0JVTEFUT1ZJxIYgU0xBxJBBTkEKK0JVTEFUT1ZJxIYgU1BBU0EKK0JVTEFUT1ZJxIYgU1ZFVE9aQVIKK0JVTEFUT1ZJxIYgVk9KSU4KK0JVTEFUT1ZJxIYgVk9KSVNMQVYKK0JVTEFUT1ZJxIYgWkxBVElKQQorQlVMQVRPVknEhiBaT1JBTgorQlVMRVRJTkFDIE1JTE9WQU4KK0JVTEVWU0tBIFZFUkEKK0JVTEnEhiDFoFXEhk8KK0JVTEnEhiBBRElMQQorQlVMScSGIEFOVEUKK0JVTEnEhiBBUklGCitCVUxJxIYgQk9SSVMKK0JVTEnEhiBEUkFHQU4KK0JVTEnEhiBEUkFHT0xKVUIKK0JVTEnEhiBEVcWgQU4KK0JVTEnEhiBNQVJBCitCVUxJxIYgTUFSSUpBCitCVUxJxIYgTUFSSU5BCitCVUxJxIYgT1pSRU4KK0JVTEnEhiBQRVJTQQorQlVMScSGIFBFVEFSCitCVUxJxIYgUFJFRFJBRworQlVMScSGIFNNSUxKQQorQlVMScSGIFNURVZBTgorQlVMScSGIFRPTUlTTEFWCitCVUxJSy1JTEVBTkEgRE9SSU5BCitCVUxKIMSQVVJBCitCVUxKIEJPU0lMSktBCitCVUxKIE1JTEFOCitCVUxKxIxJSyBFVUdFTgorQlVMSsSMSUsgSk9BS0lNCitCVUxKxIxJSyBNSUhBSkxPCitCVUxKxIxJSyBOSUtPTEEKK0JVTErEjElLIFBBVUxJTkEKK0JVTEpBSyBSQVRLTworQlVMSkFOIERSQUdVVElOIERJUEwgSU5HCitCVUxKQU4gUEVUQVIKK0JVTEpBTiBTTEFWSUNBCitCVUxKScSGIElMSUpBCitCVUxKScSGIEpFTEVOQQorQlVMSknEhiBKT1ZBTgorQlVMSknEhiBMSlVCSUNBCitCVUxKScSGIE1JTEFOCitCVUxKScSGIE1JTEUKK0JVTEpJxIYgTk9WQUsKK0JVTEpJxIYgUEFWTworQlVMSknEhiBSQURPVkFOCitCVUxKScSGIFNFS1VMQQorQlVMSknEhiBTTkXFvUFOQQorQlVMSknEhiBTVEVWQQorQlVMSknEhiBWQVNPCitCVUxKSU4gQlJBTktPCitCVUxKSU4gU0xBVktPCitCVUxKSU4gVE9NSVNMQVYKK0JVTEpPVsSMScSGIFNUSVBBTgorQlVMSlVHScSGIFJBRE9KRQorQlVMT1ZBTiBCUkFOSVNMQVYKK0JVTE9WScSGIElSSU5FSgorQlVMVU0gUEVUQVIKK0JVTFVUIEFOxJBFTEtPCitCVUxVVCBOT1ZJQ0EKK0JVTUIgQU5UT04KK0JVTUJBUk9TS0kgUkFEQQorQlVNQknEhiBNSUxBRElOIERSCitCVU1CScSGIFJBRE1JTEEKK0JVTUJJxIYgUkFKS08KK0JVTUJJxIYgVkVMSktPCitCVU1CScSGIFZFTEpLTworQlVOxIxJxIYgxJBPUsSQRQorQlVOxIxJxIYgQUxFS1NBTkRBUgorQlVOxIxJxIYgQUxFS1NBTkRBUgorQlVOxIxJxIYgRFJBR0FOCitCVU7EjEnEhiBNQVJJSkFOQQorQlVOxIxJxIYgTUlMQU4KK0JVTkFKIE1VSEFNRUQKK0JVTkRBTEVTS0kgTUlMT8WgCitCVU5EQUxPIEJSQU5LTworQlVOREFMTyBORUJPSsWgQQorQlVOREFMTyBOSUtPTEEKK0JVTkRBTE8gU0xBVktPCitCVU5EQUxPIFNMT0JPREFOCitCVU5EQUxPIFNMT0JPREFOCitCVU5EScSGIEFOVFVOCitCVU5FVEEgQUxFS1NBTkRBUgorQlVORVRBIE1JTEFOCitCVU5FVEEgU05Fxb1BTkEKK0JVTkVUQSBWVUtPU0FWQQorQlVOScSGIERSQUdBTgorQlVOScSGIE1JTEFOCitCVU5KQUMgVkFTTworQlVOSkFDIFZPSklTTEFWCitCVU5KRVbEjEVWIMSQT1LEkEUKK0JVTkpFVsSMRVYgQUxFS1NBTkRBUgorQlVOSkVWxIxFViBTUsSQQU4KK0JVTkpFVkHEjEtJIMW9SVZPSklOCitCVU5KRVZBxIxLSSBCUkFOS08KK0JVTkpFVkHEjEtJIERSQUdJTkpBCitCVU5KRVZBxIxLSSBKT1ZBTktBCitCVU5KRVZBxIxLSSBMSlVCSUNBCitCVU5KRVZBxIxLSSBNSUxFTkEKK0JVTkpFVkHEjEtJIFZPSklTTEFWCitCVU5KSUsgxaBBTkRPUgorQlVOSklLIERSQUdJQ0EKK0JVTkpJSyBJVkFOCitCVU5KSUsgSk9TSVAKK0JVTkpJSyBLQVJPTEoKK0JVTkpJSyBaT0xUQU4KK0JVTkpJSyBaT0xUQU4KK0JVTk9WScSGIERSQUdVVElOCitCVU5PVknEhiBMQVpBUgorQlVOVCBNSUpPCitCVVLEjEVSIFRPTUlTTEFWCitCVVLFoEnEhiBUSU5LQQorQlVSQUkgQUxFS1NBTkRBUgorQlVSQUkgQU5EUkHFoAorQlVSQUkgS0FST0xKCitCVVJBSSBLQVRJQ0EKK0JVUkFJIFBFVEFSCitCVVJBSkkgSk9TSVAKK0JVUkFOSiBCRUxBIERSIExFS0FSCitCVVJBTkogRU5EUkUKK0JVUkFOSiBNQVJUQQorQlVSQU5KIE5BTkRPUgorQlVSQU5KIFNJRE9OSUpBCitCVVJBTkpJIE1BUklKQQorQlVSQU5KSSBOQU5ET1IKK0JVUkFaT1IgRFJBR09KQQorQlVSQVpPUiBaRFJBVktPCitCVVJCQUggR0VSSEFSRAorQlVSQkFOIEZJTElQCitCVVJEQSBNRUxJTkRBCitCVVJEQSBTVEFOSVNMQVYKK0JVUkVWScSGIE1JTEnEhgorQlVSR0nEhiBEUkFHT0pFCitCVVJHScSGIEpPVkFOCitCVVJHScSGIFBFVEFSCitCVVJHSUpBxaBFViBWRVNFTElOCitCVVJJxIYgxJBPS08gRElQTCBJTkcKK0JVUknEhiBESU1JVFJJSkUKK0JVUknEhiBEVcWgQU4gRFIKK0JVUknEhiBEVcWgQU5LQQorQlVSScSGIEZSQU5KQQorQlVSScSGIEdPUkRBTkEKK0JVUknEhiBLQVRJQ0EKK0JVUknEhiBLT1NUQQorQlVSScSGIExFT05PUkEKK0JVUknEhiBNSUxJVk9KRQorQlVSScSGIE5BREEKK0JVUkpBTiDEkE9SxJBFCitCVVJKQU5PVlNLSSBTVE9KQU4KK0JVUktBIEVMRU9OT1JBIERSCitCVVJLQSBFTUlMSUpBCitCVVJLQSBFUsW9RUJFVAorQlVSS0EgSk9WQU4KK0JVUktBIE1JUk9TTEFWCitCVVJLQSBQQVZMRQorQlVSS0EgUEVUQVIKK0JVUktBIFNPRklKQQorQlVSS0EgU1RFVkFOCitCVVJLQSBTVEVWQU4KK0JVUktFUlQgRURWSU4KK0JVUktJTiDFvUlWQU4KK0JVUktJTiDEkE9LQQorQlVSTEFLIE5BVEFMSUpBCitCVVJNQUpBIE5JS09MQQorQlVSTVVExb1JSkEgQlJBTktPCitCVVJNVUTFvUlKQSBNSUxBTgorQlVSTVVExb1JSkEgTklLT0xBCitCVVJOQcSGIEZFTElLUworQlVSTkHEhiBKRUxJU0FWRVRBCitCVVJOQcSGIFNURVZBTgorQlVSTkHEhiBWTEFESU1JUgorQlVSTk9WIElWQU5BCitCVVJOT1YgSVZBTgorQlVSTk9WIFZFU0VMSU5LQQorQlVST1ZBQyBOQURBCitCVVJTQcSGIERBUklOS0EKK0JVUlNBxIYgRFJBR09TTEFWQSBESVBMIFBSQVZOSUsKK0JVUlNBxIYgSk9WQU4KK0JVUlNBxIYgTEpVQk9NSVIKK0JVUlNBxIYgTUlMQU5LQQorQlVSU0HEhiBNSUxBTgorQlVSU0HEhiBNSUxJQ0EKK0JVUlNBxIYgTUlMT1JBRAorQlVSU0HEhiBNSVJLTworQlVSU0HEhiBOSUtPTEEKK0JVUlNBxIYgUEVSQQorQlVSU0HEhiBQRVJTQQorQlVSU0HEhiBTTE9CT0RBTgorQlVSU0HEhiBTTE9CT0RBTgorQlVSU0HEhiBWSkVLT1NMQVZBCitCVVJTQcSGIFZMQURPIERJUEwgUFJBVk5JSworQlVSU0nEhiBTVEVWQU4KK0JVUlNJxIYgVkxBRElNSVIKK0JVUlXFoCBBTEVLU0FORFJBCitCVVJVxaAgQk/FoEtPCitCVVJVTUTFvUlKQSBSQURFCitCVVJaQU4gTUlSSkFOQQorQlVSWkVMScSGIE1JTEtBCitCVVJaRUxJxIYgWkxBVEEKK0JVU0FSxIxFVknEhiBTTEFWSUNBCitCVVNBUsSMRVZJxIYgU1RFVkFOCitCVVNJSkEgTEpVQklOS0EKK0JVU0lKQSBNSUxBTgorQlVTT1YgQUxFS1NJSkUgRElQTCBJTkcKK0JVU09WIElHT1IKK0JVU1VMQUTFvUnEhiBNVVNUQUZBCitCVVRBIExBWkFSCitCVVRBIFZPSklTTEFWIERSCitCVVRBxaAgRkVSRU5DCitCVVRFUiBLU0VOSUpBCitCVVRFUkVSIEnFoFRWQU4KK0JVVEVSRVIgSlVMSUpBCitCVVRFUklOIERFxaBBCitCVVRPUiBBTEVLU0FOREFSCitCVVRPUiBFTkRSRQorQlVUT1IgTUlIQUpMTworQlVUT1JBQyBKT1NJUAorQlVUT1JBQyBNQVJJSkEKK0JVVE9SQUMgWk9SQU4KK0JVVFVMSUpBIEJSQU5JU0xBVgorQlVUVVJPVknEhiBSQVRLTworQlVUVVJPVknEhiBTVkVUT1pBUgorQlVaQSBJUkVOQQorQlVaQSBLT1JORUxJVQorQlVaQSBNSUhBTEoKK0JVWkHFoCDFoEFORE9SCitCVVpBxaAgSk9TSVAKK0JVWkHFoCBKT1NJUAorQlVaQcWgIExBSk/FoAorQlVaQcWgIFBBVkFPCitCVVpBxaAgUEFWTEUKK0JVWkHFoEkgSk9TSVAKK0JVWkHFoEkgTUlIQUpMTworQlVaQUTFvUnEhiBMSklMSkFOQQorQlVaQUTFvUnEhiBNSVJKQU5BCitCVVpBRMW9SUpBIE5FTkFECitCVVpBRMW9SUpBIE5PVkFLCitCVVpBTEpLTyBKVVNVRiBESVBMIElORworQlVaQU7EjEnEhiBKT1NJUAorQlVaQU7EjEnEhiBOQURFxb1EQQorQlVaQU5TS0kgTUnFoEEKK0JVWkFSRVZJxIYgQlJBTktPCitCVVpBUkVWScSGIFJBRE9KS0EKK0JVWkFSRVZJxIYgUlXFvUEKK0JVWkFST1Ygxb1JVkFOCitCVVpBUk9WIEpPVkFOCitCVVpBUk9WIFpPUkEKK0JVWkFSU0tJIMSQT1LEkEUKK0JVWkdPIEpBTk/FoAorQlVaT0dBTkogTUFSSUpBCitDQUNLTyBNQVJJSkEKK0NBSknEhiBNSUxPxaAKK0NBSk5FUiBKRUxFTkEKK0NBSk5FUiBMSlVCSUNBCitDQUpORVIgU1RFVkFOCitDQUpORVIgU1RFVkEKK0NBS0nEhiBEVcWgQU5LQQorQ0FLScSGIEdPUkRBTkEKK0NBS0nEhiBKRUxFTktPCitDQUtJxIYgTUlST1NMQVYKK0NBS0nEhiBQRVRBUgorQ0FLScSGIFNURVZBTgorQ0FORElSIEZSQU5KQQorQ0FOScSGIExKSUxKQU5BCitDQU5JxIYgVkVMSU1JUgorQ0FQIMSQVVJBCitDQVAgQk/FoEtPCitDQVAgSk9BS0lNCitDQVAgSk9WQU4KK0NBUCBORU5BRAorQ0FQIE5FTkFECitDQVAgUkFET0pLQQorQ0FQIFRBTUFSQQorQ0FQQVItSkFOS09WScSGIFZBTEVSSUpBCitDQVBBUiBKQU5PxaAKK0NBUEFSIEpPVkFOCitDQVBBUiBNQVJJSkEKK0NBUEFSIE1BUklKQQorQ0FQSUsgSk9TSVAKK0NBUElLIExKVURFVklUCitDQVIgTUFSSUpBCitDQVJBTiBCT8WgS08KK0NBUkFOIEdFT1JHRQorQ0FSQU4gUEVSU0EKK0NBUkFOIFBFVEFSCitDQVJBTk9WScSGIFNUQU5PSkUKK0NBUkVWScSGIMW9SVZBTgorQ0FSRVZJxIYgxb1JVktBCitDQVJFVknEhiDEkE9SxJBFCitDQVJFVknEhiBEVcWgQU4KK0NBUkVWScSGIEVTVEVSCitDQVJFVknEhiBLQVRJQ0EKK0NBUkVWScSGIE1JSEFKTE8KK0NBUkVWScSGIE1JTEVOQQorQ0FSRVZJxIYgTUlMRQorQ0FSRVZJxIYgTkFEQQorQ0FSRVZJxIYgUEVUQVIKK0NBUkVWScSGIFNBVkEKK0NBUkVWScSGIFNMQVZLTworQ0FSRVZJxIYgU0xBVktPCitDQVJFVknEhiBTVEVWQU4KK0NBUkVWScSGIFNWRVRPWkFSCitDQVJJxIxJxIYgU0xBVktPCitDQVJJxIYgQU5EUklKQQorQ0FSScSGIEJSQU5LTworQ0FSScSGIEdPSktPCitDQVJJxIYgTEFaQVIKK0NBUknEhiBNQVJJSkEKK0NBUknEhiBNSVJKQU5BCitDQVJJxIYgU0xBVktPIERSIFBST0YKK0NBUknEhiBTTE9CT0RBTiBEUgorQ0FSScSGRVZJxIYgTUlMRU5LTworQ0FSTyBHT1JBTgorQ0FUScSGIExBWkFSCitDQVZOScSGIE1BUlRBCitDQVZOScSGIFNWRVRMQU5BCitDQVpJTiBEUkFHQU4KK0NFIFBBVkxFCitDRUNFTCBNQVJJSkEKK0NFR0xFREkgxJBVUk8KK0NFSE9MQSBGRVJFTkMKK0NFS0nEhiBCT1JJU0xBVgorQ0VLScSGIEJPUklWT0pFCitDRUtJxIYgQk9SS08KK0NFS0nEhiBKVUxLQQorQ0VLScSGIFBFVEFSCitDRUtJxIYgUkFETUlMQQorQ0VLVcWgIEVWQQorQ0VMScSGIEJSQU5LTworQ0VMSU4gTUlMQU4KK0NFTElOIE1JTEFOCitDRU5BSiBUQUhJUgorQ0VOREVSIEFOR0VMSU5BCitDRU5JxIYgTUlMT1ZBTgorQ0VQIFNURVZBTgorQ0VQRiBTVEVWQU4KK0NFUkdPTCBWSURPU0FWQQorQ0VSScSGIERBTklDQQorQ0VSScSGIE1FSE1FRAorQ0VSTkEgUlVET0xGCitDRVJPVkFDIFpPUktBCitDRVJPVknEhiBCQVRSScSGCitDRVJPVknEhiBCT0dEQU4KK0NFUk9WScSGIEJPSkFOQQorQ0VST1ZJxIYgREFSSU5LQQorQ0VST1ZJxIYgSUtPTklKQQorQ0VST1ZJxIYgTEpVQklWT0pFCitDRVJPVknEhiBNScWgTworQ0VST1ZJxIYgTkVOQUQKK0NFUk9WScSGIE5PVkFLCitDRVJPVknEhiBQRVRBUgorQ0VST1ZJxIYgU0xPQk9EQU4KK0NFUk9WScSGIFNSRVRFTgorQ0VST1ZJxIYgVE9NSVNMQVYKK0NFUk9WScSGIFVST8WgCitDRVJPVlNLSSBEQU5JSkVMCitDRVNOQUsgSkFOS08KK0NFU05BSyBQQVZMRQorQ0VTTkFLIFpMQVRLTworQ0VURU5KSSBKT1ZBTgorQ0VUSU5BIEpPVkFOCitDRVRJTkEgTEpJTEpBTkEKK0NFVkMgRlJBTkpBCitDRVZDIFNPTkpBCitDSUJSScSGIFRPRE9SCitDSUJVTEEgxJBVUkEKK0NJQlVMQSBCRUxBCitDSUJVTEEgSkFOS08KK0NJQlVMQSBKT1ZBTgorQ0lCVUxBIEpPVkFOCitDSUJVTEEgTUFSSkVOS0EKK0NJQlVMQSBNScWgQQorQ0lCVUxBIFBFUkEKK0NJQ0VSSSBGRVJFTkMKK0NJQ0VSSSBLQVJPTEoKK0NJQ0VSSSBMQVNMTworQ0lDRVJJIE1BVElMREEKK0NJQ0VSSSBQRVJBCitDSUNFUkkgVklOS08KK0NJQ0tBIMWgxIZFRkFOCitDSUNLQSBKQU4KK0NJQ01JTCBCT8W9SURBUgorQ0lDTUlMIEJSQU5LTworQ0lDTUlMIEtSU1RPCitDSUNNSUwgTUFSSUpBCitDSUNNSUwgTUFSS08KK0NJQ01JTCBNSUxBTgorQ0lDTUlMIFNUT0pBTgorQ0lDTUlMIFRBVEpBTkEKK0NJQ01JTCBaT1JBTgorQ0lDTUlMT1ZJxIYgRFJBR0FOCitDSUNNSUxPVknEhiBaT1JLQQorQ0lDTyBEVcWgQU4KK0NJQ1ZBUklOIExKVUJPTUlSCitDSUZSScSGIEdBTElCCitDSUdBTiBBTlRVTgorQ0lHQU4gSVZBTgorQ0lHQU5KIEpPU0lQCitDSUdBTk9WScSGIEJSQU5LTworQ0lHQU5PVknEhiBEQU5FCitDSUdBTk9WScSGIERVxaBBTgorQ0lHQU5PVknEhiBNSUxPUkFECitDSUdBTk9WScSGIE9TVE9KQQorQ0lHQU5PVknEhiBSQUpLTworQ0lHQU5PVknEhiBTVEVWTworQ0lHScSGIElWQU4KK0NJR0xFUiBTTkXFvUFOQQorQ0lHTEpFQ0tJIEZSQU5KQQorQ0lHTEpFQ0tJIFZFUkEKK0NJS09SQSDFvVXFvUFOQQorQ0lLT1RBIMW9RUxKS08KK0NJS09UQSBPTEdBCitDSUtPVEEgU0xBVktPCitDSUtVxaBBIEpPVkFOCitDSUtVxaBBIFpPUkFOCitDSU1CQUwgQUxFS1NBTkRBUgorQ0lNQkFMIEFMRUtTQU5EQVIKK0NJTUJBTCBUSUJPUgorQ0lNQkFMIFZFUklDQQorQ0lNQkFMSkVWScSGIFpMQVRBTkEKK0NJTUVSTUFOIExBRElTTEFWCitDSU1FUk1BTiBTTUlMSkEKK0NJTkNPVknEhiDFvUlWS0EKK0NJTkRFUiBWSURBCitDSU5EUknEhiDEkE9SxJBFCitDSU5EUknEhiBFUsW9RUJFVAorQ0lORFJJxIYgUEVUQVIgRFIKK0NJTkdBUkEgQUxFS1NBTkRBUgorQ0lOR0VMSSBNSUxFTkEKK0NJTkdJIEtBUkxPCitDSU5LTEVSIEpFTElTQVZFVEEgRElQTCBJTkcKK0NJTktMRVIgSlVMSUpFCitDSU5LTEVSIEtBTE1BTiBESVBMIElORworQ0lOS0xFUiBLQUxNQU4gRElQTCBJTkcKK0NJTktMRVIgS0FMTUFOCitDSU5LTEVSIE1BR0RPTE5BCitDSU5LT0NLSSDEkE9SxJBFCitDSU5LT0NLSSBWT0pJU0xBVgorQ0lQUlXFoCBBTEVLU0FORFJBCitDSVJCVVMgTUFSSUpBCitDSVJHRVIgRFXFoEFOS0EKK0NJUk9LIMWgQU5ET1IKK0NJVEtPVknEhiBJVktBCitDSVRLT1ZJxIYgU0xPQk9EQU4KK0NJVlJJxIYgTUlMS0EKK0NNSUxKQU5PVknEhiBEUkFHScWgQQorQ09DRUsgxaBURUZBTklKQQorQ09DRUsgSU1SRQorQ09DRUsgSk9TSVAKK0NPQ0VLIFNURVZBTgorQ09DSU4gTUlSQQorQ09DTyBWQUhERVRBCitDT0xJxIYgQk/FvUlEQVIKK0NPTEnEhiBCT0dPU0FWCitDT0xJxIYgRlJBTkpBCitDT0xJxIYgSk9TSVAKK0NPTEnEhiBLQVRJQ0EKK0NPTEnEhiBMQURJU0xBVgorQ09MScSGIFNWRVRMQU5BCitDT05JxIYgRFJBR0lOSkEKK0NPTknEhiBKQU5LTyBNUiBJTkcKK0NPTknEhiBNSU9EUkFHCitDT1BLT1Ygxb1FTEpLTworQ1JFUEnEhiBMQURJU0xBVgorQ1JFUFVMScSGIFZJRE9TQVZBCitDUkVQVUxKQSBUT0RPUgorQ1JFVkFSIEJPR0RBTgorQ1JFVkFSIE1JTFVUSU4gRElQTCBJTkcKK0NSRVZBUiBTSU1BCitDUkVWQVIgU0xBVktPCitDUktWRU5KQUtPViBEQU5JQ0EKK0NSS1ZFTkpBS09WIERVxaBBTktBCitDUktWRU5KQUtPViBTVUxUQU5JSkEKK0NSTsSMRVZJxIYgREFSSU5LQQorQ1JOxIxFVknEhiBNSVJLTworQ1JOxIxFVknEhiBNSVJLTworQ1JOxIxFVknEhiBORURFTEpLQQorQ1JOxIxFVknEhiBTTEFWS08KK0NSTsSMRVZJxIYgVkVSQQorQ1JOxIxFVknEhiBWTEFETworQ1JOQURBSyBWTEFUS08KK0NSTkkgVkVSSUNBCitDUk5JIFpPUklDQQorQ1JOScSGIEJSQU5LQQorQ1JOScSGIERSQUdBTgorQ1JOScSGIEdPUkFOCitDUk5JxIYgTUFSS08KK0NSTknEhiBNSUxBTgorQ1JOScSGIE1JTFVUSU4KK0NSTknEhiBOSUtPTEEKK0NSTknEhiBPU1RPSkEKK0NSTknEhiBSQURPTUlSCitDUk5JxIYgU09GSUpBCitDUk5JxIYgVUdMSkXFoEEKK0NSTknEhiBWQVNBCitDUk5JxIYgVkVSQQorQ1JOSkFDIE1JTEVOQQorQ1JOSkFLIMW9SVZBTktBCitDUk5KQUtPViBESU1JVFJJSkUKK0NSTkpBTklOIEJSQU5JU0xBVkEKK0NSTkpBTklOIFpBR09SS0EKK0NSTkpBTlNLSS3EjEVOR0VSSSBLUklTVElOQQorQ1JOSkFOU0tJIMW9QVJLTworQ1JOSkFOU0tJIMSQT0tBCitDUk5KQU5TS0kgQlVESU1LQQorQ1JOSkFOU0tJIElWQU4KK0NSTkpBTlNLSSBKRUxFTkEKK0NSTkpBTlNLSSBLQVRJQ0EKK0NSTkpBTlNLSSBLVVpNQU4KK0NSTkpBTlNLSSBMQVpBUgorQ1JOSkFOU0tJIFJBRElWT0oKK0NSTkpBTlNLSSBTQU5KQQorQ1JOSkFOU0tJIFNURVZBTgorQ1JOSkFOU0tJIFZMQURJTUlSCitDUk5KQU5TS0kgWk9SQU4KK0NSTkpBTlNLSSBaT1JBTgorQ1JOS09WScSGIE5JS09MQQorQ1JOS09WScSGLVNBVknEhiBMSklMSkFOQQorQ1JOS09WScSGIFpMQVRBCitDUk5PQkFSQUMgRFXFoEFOCitDUk5PQkFSQUMgSk9WQU4KK0NSTk9CUk5KQSBNSUxBTgorQ1JOT0JSTkpBIE1JUkpBTkEKK0NSTk9CUk5KQSBQRVRBUgorQ1JOT0dMQVZBQyBNSUhBSkxPCitDUk5PR0xBVkFDIFJBRE9TTEFWCitDUk5PR09SxIxFVknEhiBKRUxJQ0EKK0NSTk9HT1JBQyDEkE9LTworQ1JOT0dPUkFDIEJPUknFoEEKK0NSTk9HT1JBQyBCT1NJTEpLQQorQ1JOT0dPUkFDIERSQUdBTgorQ1JOT0dPUkFDIERSQUdPTEpVQgorQ1JOT0dPUkFDIERVxaBBTgorQ1JOT0dPUkFDIE1JTEFOCitDUk5PR09SQUMgTUlMS0EKK0NSTk9HT1JBQyBNSUxPU0FWCitDUk5PR09SQUMgTUlST1NMQVYKK0NSTk9HT1JBQyBQQVZMRQorQ1JOT0dPUkFDIFNMT0JPREFOCitDUk5PR09SQUMgU1ZFVExBTkEKK0NSTk9HT1JBQyBWRUxJTUlSIERSCitDUk5PR09SQUMgWkRSQVZLTworQ1JOT0dPUkFDIFpPUklDQQorQ1JOT0pBIEFOVEUKK0NSTk9KQSBTTEFWSUNBCitDUk5PSkHEjEtJIEJPR0RBTgorQ1JOT0pBxIxLSSBEQU5JQ0EgRFIKK0NSTk9KQcSMS0kgREFOSUxPCitDUk5PSkHEjEtJIERSQUdBTgorQ1JOT0pBxIxLSSBEUkFHT01JUgorQ1JOT0pBxIxLSSBHT1JEQU5BCitDUk5PSkHEjEtJIEpPVkFOCitDUk5PSkHEjEtJIEtBVElDQQorQ1JOT0pBxIxLSSBNSUxFTkEgRFIKK0NSTk9KQcSMS0kgTUlMT8WgCitDUk5PSkHEjEtJIE1MQURFTgorQ1JOT0pBxIxLSSBPQlJBRAorQ1JOT0pBxIxLSSBPQlJBRAorQ1JOT0pBxIxLSSBSQURNSUxBCitDUk5PSkHEjEtJIFNPRklKQQorQ1JOT0pBxIxLSSBWTEFESU1JUgorQ1JOT0pBxIxLSSBaT1JJQ0EKK0NSTk9LUkFLIEpPVkFOCitDUk5PS1JBSyBNSUxPxaAKK0NSTk9LUkFLIFNURVZBTgorQ1JOT01BUktPVknEhiBCT0dEQU4KK0NSTk9NQVJLT1ZJxIYgRFXFoEFOCitDUk5PTUFSS09WScSGIERVxaBBTgorQ1JOT01BUktPVknEhiBHT0pLTworQ1JOT01BUktPVknEhiBMVUtBCitDUk5PTUFSS09WScSGIE5JS09MQQorQ1JOT01BUktPVknEhiBQRVRBUgorQ1JOT01BUktPVknEhiBSQU5LTworQ1JOT01BUktPVknEhiBTVE9KQU4KK0NSTk9NQVJLT1ZJxIYgVkVSSUNBCitDUk5PTVVUIE1JSEFKTE8KK0NSVkVOSSDFvUFSS08KK0NSVkVOSSBBTkEKK0NSVkVOSSBCSVNFUktBCitDUlZFTkkgRFJBR0FOCitDUlZFTkkgTUFSS08KK0NSVkVOSSBNSUxBTgorQ1JWRU5JIE1JTEVOS08KK0NSVkVOSSBNSU9NSVIKK0NSVkVOSSBTSU1BCitDUlZFTkkgU1RFVkFOCitDUlZFTkkgU1RFVkFOCitDUlZFTktPIEpBTktPCitDUlZFTktPIE1JTEFOCitDUlZFTktPIFJBRE9NSVIKK0NSVkVOS09WIEJPUklTTEFWCitDUlZFTktPViBNSUxPU0FWQQorQ1JWRU5LT1YgUEVUQVIKK0NSVkVOS09WScSGIMSQT1LEkEUKK0NSVkVOS09WScSGIMSQVVLEkElDQQorQ1JWRU5LT1ZJxIYgUEVUQVIKK0NSVkVOS09WScSGIFJBREVOS08KK0NSVkVOS09WScSGIFNJTknFoEEgRFIKK0NSVkVOS09WScSGIFZJVE9NSVIKK0NVQ0FLIE1JUkpBTkEKK0NVQ0FLIFJBSElNCitDVUNJxIYgQUxFS1NBTkRBUgorQ1VDScSGIEJPUklTTEFWCitDVUNJxIYgR0lOQQorQ1VDScSGIEpFTEtBCitDVUNJxIYgTEpJTEpBTkEKK0NVQ0nEhiBTVEFOQQorQ1VDScSGIFNUQU5PSkxPCitDVUNJxIYgVkVSQQorQ1VDScSGIFZFU05BCitDVUNJxIYgVkxBRElNSVIKK0NVQ09WScSGIFJBRkVUCitDVUdMSSBKT1ZBTgorQ1VLScSGIFJBREEKK0NVS0nEhiBSQURPSklDQQorQ1VLScSGIFNWRVRPWkFSCitDVU5KQUsgTUlMVVRJTgorQ1VQQcSGIFNWRVRPTUlSIERJUEwgUFJBVk5JSworQ1VQQVJJxIYgVE9NQQorQ1VSQUtPVknEhiBNSUxJVk9KRQorQ1ZFSkFOT1YgSkVMRU5BCitDVkVKQU5PViBORUJPSsWgQQorQ1ZFSkFOT1YgUFJFRFJBRworQ1ZFSkFOT1YgVkVMSUJPUgorQ1ZFSkFOT1ZJxIYgS1NFTklKQQorQ1ZFSkFOT1ZJxIYgTEFaQVIKK0NWRUpBTk9WScSGIE5BREEKK0NWRUpBTk9WScSGIE5JS09MQQorQ1ZFSkFOT1ZJxIYgU1BPTUVOS0EKK0NWRUpBTk9WScSGIFZJRE9TQVZBCitDVkVKQU5PVknEhiBWT0pJU0xBVgorQ1ZFSkFOT1ZJxIYgWk9SSUNBCitDVkVKScSGIMSMRURPTUlSCitDVkVKScSGIMW9QVJLTworQ1ZFSknEhiDFvUlWT0pJTgorQ1ZFSknEhiDEkE9SxJBFIERSCitDVkVKScSGIMSQVVLEkElOS0EKK0NWRUpJxIYgQUxFS1NBTkRBUiBEUgorQ1ZFSknEhiBBTEVLU0FOREFSCitDVkVKScSGIEFMRUtTQU5EQVIKK0NWRUpJxIYgQk/FvUlEQVIKK0NWRUpJxIYgQk9SSVZPSgorQ1ZFSknEhiBEUkFHQU4KK0NWRUpJxIYgRFJBR09TTEFWCitDVkVKScSGIERSQUdVVElOCitDVkVKScSGIElHTkpBVAorQ1ZFSknEhiBJVkFOCitDVkVKScSGIEpFTEVOQQorQ1ZFSknEhiBLQVRJQ0EKK0NWRUpJxIYgTEFaQVIKK0NWRUpJxIYgTUlMQU4KK0NWRUpJxIYgTUlMQU4KK0NWRUpJxIYgTUlMSVNBVgorQ1ZFSknEhiBNSUxPxaAKK0NWRUpJxIYgTUlPRFJBRworQ1ZFSknEhiBNSVJKQU5BCitDVkVKScSGIE5BREXFvURBCitDVkVKScSGIE5FREVMSktBCitDVkVKScSGIE5JS09MQSBESVBMIElORworQ1ZFSknEhiBOSUtPTEEKK0NWRUpJxIYgT0xHQQorQ1ZFSknEhiBQQVZMRQorQ1ZFSknEhiBSQURPU0xBVgorQ1ZFSknEhiBSQURPVkFOCitDVkVKScSGIFJVxb1JQ0EKK0NWRUpJxIYgU0xBVk9MSlVCCitDVkVKScSGIFNURVZBTgorQ1ZFSknEhiBTVEVWQU4KK0NWRUpJxIYgVkxBREFOCitDVkVKScSGIFpBR09SS0EKK0NWRUpJTiBCT8W9QQorQ1ZFSklOIEJPSkFOQQorQ1ZFSklOIERVxaBBTiBESVBMIElORworQ1ZFSklOIE1BUklKQQorQ1ZFSklOIE1JTEFOCitDVkVKSU4gTUlMT8WgCitDVkVKSU4gTUlSSkFOQQorQ1ZFSklOIE5PVkFLCitDVkVKSU4gU0xPQk9EQU4KK0NWRUpJTiBUUklWQQorQ1ZFS0nEhiBNSUxFVEEKK0NWRUtJxIYgVk9KSU4KK0NWRUtJxIYgWkxBVElDQQorQ1ZFUkRFTEogSkFOS08KK0NWRVJERUxKIFJVxb1BCitDVkVSTkpBSyBKRU5FCitDVkVUQU5PVknEhiBBTklUQQorQ1ZFVEFOT1ZJxIYgRFJBR09TTEFWCitDVkVUQU5PVknEhiBKRUxFTkEKK0NWRVRBTk9WScSGIEpFUk1JTkEgRFIgTEVLQVIKK0NWRVRBTk9WScSGIE1BR0RPTE5BCitDVkVUQU5PVknEhiBSQURJQ0EKK0NWRVRBTk9WScSGIFNUT0pBRElOCitDVkVUQU5PVknEhiBTVE9KQU5LQQorQ1ZFVEFOT1ZJxIYgVkVMSkEKK0NWRVRBTk9WScSGIFpPUkFOCitDVkVUQU5PVknEhiBaT1JBTgorQ1ZFVEFOT1ZJxIYgWk9SQU4KK0NWRVRBTk9WU0tJIE1BTk9KTE8KK0NWRVRBTk9WU0tJIE1JTEUKK0NWRVRJxIxBTklOIExKVUJJQ0EKK0NWRVRJxIxBTklOIE1JTEtBCitDVkVUScSMQU5JTiBWRVNOQQorQ1ZFVEnEjEFOSU4gWk9SQU4KK0NWRVRJxIYgQk/FoEtPCitDVkVUScSGIERSQUdPTUlSCitDVkVUScSGIExBWkFSCitDVkVUScSGIExBWk8KK0NWRVRJxIYgTEpVQklDQQorQ1ZFVEnEhiBNQVJJSkEKK0NWRVRJxIYgUEVUQVIKK0NWRVRJxIYgU0xBVktPCitDVkVUScSGIFNUQU5LTworQ1ZFVEnEhkFOSU4gQk/FoEtPCitDVkVUScSGQU5JTiBCUkFOS08KK0NWRVRJxIZBTklOIERBTkUKK0NWRVRJxIZBTklOIERBTklDQQorQ1ZFVEnEhkFOSU4gRFJBR09NSVIKK0NWRVRJxIZBTklOIElMSUpBCitDVkVUScSGQU5JTiBJUkVOQQorQ1ZFVEnEhkFOSU4gTUlMT8WgCitDVkVUScSGQU5JTiBNSUxPUkFECitDVkVUScSGQU5JTiBNSVJPU0xBVgorQ1ZFVEnEhkFOSU4gU05Fxb1BTkEKK0NWRVRJxIZBTklOIFpPUkFOCitDVkVUSU5JxIYgTUFSS08KK0NWRVRJTknEhiBNQVRJSkEKK0NWRVRJTkpBTklOIFRPTUlTTEFWCitDVkVUSU5PViBTQVZBCitDVkVUSU5PVknEhiBBTktBCitDVkVUSU5PVknEhiBCUkFOQQorQ1ZFVElOT1ZJxIYgQlJBTktPCitDVkVUSU5PVknEhiBESU1JVFJJSkUKK0NWRVRJTk9WScSGIElMSUpBCitDVkVUSU5PVknEhiBJVkFOS08KK0NWRVRJTk9WScSGIE1JTEFOCitDVkVUSU5PVknEhiBTSU1PCitDVkVUSU5PVknEhiBWRVJBCitDVkVUSU5PVknEhiBaT1JBCitDVkVUS09WIEpPVkFOCitDVkVUS09WIE1JTEFOIERJUEwgSU5HCitDVkVUS09WIFJBRE9KRQorQ1ZFVEtPVknEhiDEjEVET01JUgorQ1ZFVEtPVknEhiDFvUlWT0pJTgorQ1ZFVEtPVknEhiDEkE9SxJBFCitDVkVUS09WScSGIMSQT1LEkEUKK0NWRVRLT1ZJxIYgQUxFS1NBTkRBUgorQ1ZFVEtPVknEhiBBTEVLU0FOREFSCitDVkVUS09WScSGIEFMRUtTQU5EQVIKK0NWRVRLT1ZJxIYgQU5LQQorQ1ZFVEtPVknEhiBCT0pBTkEKK0NWRVRLT1ZJxIYgQk9SQQorQ1ZFVEtPVknEhiBCT1JJU0xBVgorQ1ZFVEtPVknEhiBCT1JJU0xBVgorQ1ZFVEtPVknEhiBCUkFOSVNMQVYKK0NWRVRLT1ZJxIYgQlJBTktPCitDVkVUS09WScSGIEJSQU5LTworQ1ZFVEtPVknEhiBCVURJTUlSCitDVkVUS09WScSGIERBUklOS0EKK0NWRVRLT1ZJxIYgREVTSU1JUgorQ1ZFVEtPVknEhiBEUkFHQU4KK0NWRVRLT1ZJxIYgRFJBR0FOCitDVkVUS09WScSGIERSQUdBTgorQ1ZFVEtPVknEhiBEUkFHQU4KK0NWRVRLT1ZJxIYgRFJBR0nFoEEKK0NWRVRLT1ZJxIYgRFJBR09MSlVCCitDVkVUS09WScSGIERSQUdPTUlSIE1SCitDVkVUS09WScSGIERSQUdPTUlSCitDVkVUS09WScSGIERVxaBBTgorQ1ZFVEtPVknEhiBEVcWgQU4KK0NWRVRLT1ZJxIYtR0xBREnEhiBTTUlMSkEKK0NWRVRLT1ZJxIYgR1JPWkRBCitDVkVUS09WScSGIElMSUpBCitDVkVUS09WScSGIElWQU5LQQorQ1ZFVEtPVknEhiBKRUxFTkEKK0NWRVRLT1ZJxIYgSkVMRU5BCitDVkVUS09WScSGIEpFTEtBCitDVkVUS09WScSGIEpPVkFOCitDVkVUS09WScSGIEpPVkFOCitDVkVUS09WScSGIEpPVkFOCitDVkVUS09WScSGIExJVklBCitDVkVUS09WScSGIExKSUxKQU5BCitDVkVUS09WScSGIExKSUxKQU5BCitDVkVUS09WScSGIE1FTEFOSUpBCitDVkVUS09WScSGIE1JTEFOCitDVkVUS09WScSGIE1JTEFOCitDVkVUS09WScSGIE1JTElDQQorQ1ZFVEtPVknEhiBNSU9EUkFHCitDVkVUS09WScSGIE1JT0RSQUcKK0NWRVRLT1ZJxIYgTUlPRFJBRworQ1ZFVEtPVknEhiBNSVJBCitDVkVUS09WScSGIE1JUkpBTkEKK0NWRVRLT1ZJxIYgTUlST1NMQVYgRFIKK0NWRVRLT1ZJxIYgTUlST1NMQVYKK0NWRVRLT1ZJxIYgTklLT0xBCitDVkVUS09WScSGIE5JS09MQQorQ1ZFVEtPVknEhiBOSUtPTEEKK0NWRVRLT1ZJxIYgUEVUQVIKK0NWRVRLT1ZJxIYgUkFETUlMQQorQ1ZFVEtPVknEhiBSQURPSktPCitDVkVUS09WScSGIFJBRE9TTEFWCitDVkVUS09WScSGIFJBRE9TTEFWCitDVkVUS09WScSGIFJBRE9WQU4KK0NWRVRLT1ZJxIYgUkFEVUxBCitDVkVUS09WScSGIFJBVE9NSVIKK0NWRVRLT1ZJxIYgUklTVE8KK0NWRVRLT1ZJxIYgUlXFvUlDQQorQ1ZFVEtPVknEhiBTTEFWT0xKVUIKK0NWRVRLT1ZJxIYgU09LQQorQ1ZFVEtPVknEhiBTUkJPQlJBTgorQ1ZFVEtPVknEhiBTVEFOS08KK0NWRVRLT1ZJxIYgU1RBTk9KRQorQ1ZFVEtPVknEhiBTVEFOT0pFCitDVkVUS09WScSGIFNWRVRPWkFSCitDVkVUS09WScSGIFRBVEpBTkEKK0NWRVRLT1ZJxIYgVE9OSQorQ1ZFVEtPVknEhiBWRUxJTUlSCitDVkVUS09WScSGIFZMQURJTUlSCitDVkVUS09WScSGIFpPUkEKK0NWRVRLT1ZTS0kgQk9SSVMKK0NWRVRLT1ZTS0kgRFJBR09MSlVCCitDVkVUS09WU0tJIE5JS09MQQorQ1ZFVEtPVlNLSSBWT0pPCitDVkVUT0pFVknEhiBMSklMSkFOQQorQ1ZFVE9KRVZJxIYgTEpJTEpBTkEKK0NWRVRPSkVWScSGIE1JTElTQVYKK0NWRVRPSkVWScSGIFNMQVZLTworQ1ZJSkFOIE1BUklKQQorQ1ZJSkFOIE1BUktPCitDVklKQU5PVknEhiBBTsSQQQorQ1ZJSkFOT1ZJxIYgQU5BCitDVklKQU5PVknEhiBBTlRPCitDVklKQU5PVknEhiBCT8WgS08KK0NWSUpBTk9WScSGIEJPUk8KK0NWSUpBTk9WScSGIERPQlJJQ0EKK0NWSUpBTk9WScSGIERSQUdBTgorQ1ZJSkFOT1ZJxIYgRFJBR1VUSU4KK0NWSUpBTk9WScSGIERVxaBBTktBCitDVklKQU5PVknEhiBJTElKQQorQ1ZJSkFOT1ZJxIYgTUlMQU4KK0NWSUpBTk9WScSGIE1JTEFOCitDVklKQU5PVknEhiBNSUxBTgorQ1ZJSkFOT1ZJxIYgTUlMRVZBCitDVklKQU5PVknEhiBNSVJPU0xBVgorQ1ZJSkFOT1ZJxIYgTU9NSVIKK0NWSUpBTk9WScSGIFBFVEFSCitDVklKQU5PVknEhiBSQURFCitDVklKQU5PVknEhiBSQU5LTworQ1ZJSkFOT1ZJxIYgU0FWQQorQ1ZJSkFOT1ZJxIYgU0xBVktPCitDVklKQU5PVknEhiBTTkXFvUFOQQorQ1ZJSkFOT1ZJxIYgVk9KSVNMQVYKK0NWSUpBTk9WScSGIFpMQVRBCitDVklKRVRBTiBNSVJLTworQ1ZJSkVUScSMQU5JTiBKT1ZPCitDVklKRVRJxIYgSUdPUgorQ1ZJSkVUScSGIEpPVk8KK0NWSUpFVEnEhiBNSUxFCitDVklKRVRJxIYgTkFEQQorQ1ZJSkVUSU5PVknEhiBSVcW9QQorQ1ZJSkVUSU5PVknEhiBSVcW9SUNBCitDVklKRVRJTk9WScSGIFNJTknFoEEKK0NWSUpJxIYgxb1FTEpLTworQ1ZJSknEhiBEUkFHQU4KK0NWSUpJxIYgR09SQU4KK0NWSUpJxIYgSkVMSVNBVkEKK0NWSUpJxIYgSk9WQU5LQQorQ1ZJSknEhiBNSUxFTktPCitDVklKScSGIE1JT0RSQUcKK0NWSUpJxIYgTUxBxJBBCitDVklKScSGIE5JS09MQQorQ1ZJSknEhiBQQU5URQorQ1ZJSknEhiBSVcW9SUNBCitDVklKScSGIFNURVZBTgorQ1ZJSklOIEJSQU5LTworQ1ZJSk9WScSGIE1JTEVOS08KK0NWSUpPVknEhiBNSUxJVk9KRQorQ1ZJSk9WScSGIE5FxJBFTEpLQQorQ1ZJSk9WScSGIFJBRE9TQVYKK0NWSUpPVknEhiBWT0pJTgorQ1ZJS0nEhiBNSUhBSUxPCitDVklORyBKT1NJUAorQ1ZJVEFOT1ZJxIYgU05Fxb1BTkEKK0NWSVRLTyBQRVRBUgorQ1ZJVEtPVkFDIE1BUktPCitDVkpFVEFOIE9MR0EKK0NWSkVUScSGIElMSUpBCitDVkpFVEnEhkFOSU4gxb1JVktPCitDVkpFVEnEhkFOSU4gR09KS08KK0NWSkVUScSGQU5JTiBTVEVWTworQ1ZKRVRLT1ZJxIYgTUlPRFJBRworQ1ZKRVRLT1ZJxIYgTkVCT0rFoEEKK0NWSkVUT0pFVknEhiDEjEVET01JUgorQ1ZPUk9WScSGIFJBRE/FoAorQ1ZSS0FMSiDEkFVSTworRMW9QUJBU0FOIERSQUdPSkUKK0TFvUFCScSGIE1JTEtBCitExb1BRMW9ScSGIFZVS09TQVZBCitExb1BRkVST1ZTS0kgUkXEkEVQCitExb1BRknEhiBIQU1ESUpBCitExb1BRk8gTUFUSUpBCitExb1BSkEgTUFSSUNBCitExb1BS0nEhiDEjEVETworRMW9QUtJxIYgQk/FvUFOQQorRMW9QUtJxIYgTEFaQQorRMW9QUtPVknEhiBEUkFHQU4KK0TFvUFLVUxBIEVSxb1FQkVUCitExb1BS1VMQSBFUsW9RUJFVAorRMW9QUtVTEEgSVZBTgorRMW9QUtVTEEgTUFSSUNBCitExb1BS1VMQSBORURFTEpLTworRMW9QUtVTEEgUEVUQVIKK0TFvUFLVUxBIFJBREUKK0TFvUFLVUxBIFZJRE9TQVYKK0TFvUFLVUxJTiBEVcWgQU5LQQorRMW9QUtVTElOIFBFVEFSCitExb1BS1VMSU4gU1RFVkFOCitExb1BTEnEhiBTVE9KQU4KK0TFvUFNQkFSU0tJIEpPVkFOCitExb1BTUJBUyBEVcWgQU4gRFIgTEVLQVIKK0TFvUFNQkFTIE1JTEUKK0TFvUFNQkFTT1ZJxIYgTUlMRU5LTworRMW9QU1CScSGIEJSQU5LTworRMW9QU1CScSGIE1JTE9WQU4KK0TFvUFNQknEhiBSQURPVkFOCitExb1BTUJJxIYgU0xBVktPCitExb1BTUJJxIYgU1JFVEEKK0TFvUFOScSGIFNBVkEKK0TFvUFOScSGIFNUQVpBCitExb1BUknEhiBET0JSSU5LQQorRMW9QVJJxIYgUkFET01JUgorRMW9RUxFVE9WScSGIE1JTEFESU4KK0TFvUVMRVRPVknEhiBNSUxBTgorRMW9RUxFVE9WScSGIE1MQURFTgorRMW9RUxFVE9WScSGIFJBRE9KS0EKK0TFvUVMRVRPVknEhiBTTE9CT0RBTgorRMW9RUxFVE9WScSGIFRPTU8KK0TFvUVMSUxPVknEhiBKQU5BCitExb1FUElOQSBKT1ZBTgorRMW9RVZFTEVLSURJUyBNQVJJTkEKK0TFvUVWRUxFS0lESVMgUEFOVEEKK0TFvUVWRVIgTkVERUxKS08KK0TFvUVWRVJEQU5PVknEhiBBTklUQQorRMW9RVZFUkRBTk9WScSGIExBWkFSCitExb1FVkVSREFOT1ZJxIYgTkFTVE8KK0TFvUVWRVJEQU5PVknEhiBWRUxJWkFSCitExb1JREEgS0FUSUNBCitExb1JREEgS0FUSUNBCitExb1JREEgTUlMQURJTgorRMW9SURBIE1JTE9NSVIKK0TFvUlHVVJBxaAgTUlMRU5LTworRMW9SUdVUlNLSSBCT1JJVk9KCitExb1JR1VSU0tJIEJSQU5JTUlSCitExb1JR1VSU0tJIEJSQU5LTworRMW9SUdVUlNLSSBEQU5JTE8KK0TFvUlHVVJTS0kgRFXFoEtPCitExb1JR1VSU0tJIExKSUxKQU5BCitExb1JR1VSU0tJIExKSUxKQU5BCitExb1JR1VSU0tJIE1BUklKQQorRMW9SUdVUlNLSSBNQVJJSkEKK0TFvUlHVVJTS0kgTUlMQU4KK0TFvUlHVVJTS0kgTUlMRU5LTworRMW9SUdVUlNLSSBQRVRBUgorRMW9SUdVUlNLSSBQUkVEUkFHCitExb1JS0nEhiBNSUxBTgorRMW9SUxJVE9WIEFMRUtTQU5EQVIKK0TFvUlMSVRPViBLQVRJQ0EKK0TFvUlMSVRPViBTVEVWQU4KK0TFvUlMSVRPViBTVEVWQQorRMW9SUxJVE9WIFZFTElOS0EKK0TFvUlMVklExb1JSkVWIE1JVEtPCitExb1JTiBNSVJLTworRMW9SU5JxIYgTUlST1NMQVYgRFIKK0TFvUlOScSGIE1JUk9TTEFWCitExb1JTk9WScSGIFZFU0VMSU4KK0TFvUlSScSGIFJVxb1JQ0EKK0TFvU9Exb1PIFJJU1RPCitExb1PREFOIERSQUdBCitExb1PREFOIE1JUkpBTkEKK0TFvU9EQU4gTklLT0xBCitExb1PREFOIFZFUkEKK0TFvU9HQU5PVknEhiBNSUxPUkFECitExb1PR09WScSGIMW9SVZBTgorRMW9T0dPVknEhiBNSUxVTgorRMW9T0xFViBBU0VOIERSIFNUT01BVE9MT0cKK0TFvU9MRVYgQVNFTgorRMW9T0xFViBBU0VOCitExb1PTEVWIE1JVEtPCitExb1PTEVWIFBBTkRFCitExb1PTEnEhiBHT1JEQU5BCitExb1PTEnEhiBUT01JU0xBVgorRMW9T01CQSDFvUlWS08KK0TFvU9NQkVUQSBLT1NUQQorRMW9T01CRVRBIE1JTE/FoAorRMW9T01CRVRBIE5JS09MQQorRMW9T01CRVRBIFNWRVRPWkFSCitExb1PTUJFVEEgVkxBRE8KK0TFvU9NQknEhiBEVcWgQU4KK0TFvU9NQknEhiBNSUxKQQorRMW9T01CScSGIFNPS0EKK0TFvU9OTEVaIFBJUk/FoEtBCitExb1PUEFMScSGIERSQUdBTgorRMW9VUTFvUFSIMSQVVJBCitExb1VRMW9QVIgSk9BS0lNCitExb1VRMW9QVIgU0xBVktPCitExb1VRE9WScSGIFNNSUxKS0EKK0TFvVVET1ZJxIYgVkFTTworRMW9VUtMRVZTS0kgU0HFoEEKK0TFvVVLTEpFViBEUkFHQU4KK0TFvVVLTEpFViBTVE9KQU4KK0TFvVVOScSGIMW9SVZPUkFECitExb1VTknEhiBNSUxJVk9KRQorRMW9VU5JxIYgTUlSSkFOQQorRMW9VU5JxIYgUkFET01JUgorRMW9VU5KQSBBTUFMSUpBCitExb1VTkpBIEVWR0VOSUpFCitExb1VTkpBIEdPUkRBTkEKK0TFvVVOSkEgSVJFTkEKK0TFvVVOSkEgSVZBTgorRMW9VU5KQSBKQUtJTQorRMW9VU5KQSBKQU5LTworRMW9VU5KQSBKRUxFTkEKK0TFvVVOSkEgTEpVQk9NSVIKK0TFvVVOSkEgTUlST04KK0TFvVVOSkEgVkxBRElNSVIKK0TFvVVOSkEgWlZPTklNSVIKK0TFvVVWRVIgVkVTRUxJTktBCitExb1VVkVSIFZPSklTTEFWCitExb1VVkVST1ZJxIYgSVZBTktBCitEQcSMRVZJxIYgTUlMQU4KK0RBxIxFVknEhiBNT01JUgorREHEjEnEhiBEVcWgQU4KK0RBxIxJxIYgS1JJU1RJTkEKK0RBxIxJxIYgTEpVQk9NSVIKK0RBxIxJxIYgTUnFoEEKK0RBxIxJxIYgTUlMQU4gUFJPRkVTT1IKK0RBxIxJxIYgTUlMQU4KK0RBxIxJxIYgTUlMSUNBCitEQcSMScSGIE5BREXFvURBCitEQcSMScSGIFJBRE1JTEEKK0RBxIxJxIYgVkVMSU5LQQorREHEjEnEhiBWTEFTVElNSVIKK0RBxaBJxIYtR1VMRCBMSklMSkFOQQorREHFoEnEhiBNQVJJSkEKK0RBxaBJxIYgTUlMRU5LTworREHFoEnEhiBSQURVTEUKK0RBxaBJxIYgVkxBRE8KK0RBxb3EkFUgTklTVE9SCitEQUJBTk9WScSGIERBTklDQQorREFCQU5PVknEhiBWQVNJTElKRQorREFCRVJFUiBBTlRPTklKQQorREFCRVRJxIYgUkFESVNBVgorREFCRVRJxIYgUkFET01JUgorREFCScSGIMSMRURPTUlSIERJUEwgT0VDCitEQUJJxIYgxJBPUsSQRQorREFCScSGIEFMRUtTQU5EQVIKK0RBQknEhiBCT1JLTworREFCScSGIEdPU1BBVkEKK0RBQknEhiBKT1ZBTgorREFCScSGIEpPVkFOCitEQUJJxIYgTUFSSUpBCitEQUJJxIYgTUFSS08KK0RBQknEhiBNSUxBTgorREFCScSGIE1JTE/FoAorREFCScSGIE1JTE9SQUQKK0RBQknEhiBNSUxVVElOCitEQUJJxIYgTUlPRFJBRworREFCScSGIE5FREVMSktPCitEQUJJxIYgTkVOQUQKK0RBQknEhiBORU5BRAorREFCScSGIE5FTkFECitEQUJJxIYgUkFET01JUgorREFCScSGIFNMQVZLTworREFCScSGIFNURVZBTgorREFCScSGIFNWRVRBCitEQUJJxIYgVk9KSVNMQVYKK0RBQklOIMSQT1LEkEUKK0RBQk9WScSGIEJPR0RBTgorREFCT1ZJxIYgQlJBTktPCitEQUNJTiDFvUVMSktPCitEQURBSSDEkFVMQQorREFEQUkgQkFSQkFSQQorREFEQUkgTEFESVNMQVYKK0RBREFJIExBRElTTEFWCitEQURBSSBMQVNMTworREFEQUkgU1RFVkFOCitEQURJxIYgQlJBTklTTEFWCitEQURJxIYgTEpVQklDQQorREFJxIYgTFVLQQorREFJxIYgTUlMQU4KK0RBSsSMIE1JSEFKTE8KK0RBSsSMIE5BREEKK0RBSsSMIFJVQkVOCitEQUrEjCBaT1JJQ0EKK0RBSknEhiBCUkFOS08KK0RBSknEhiBEUkFHSUNBCitEQUpJxIYgRFXFoEFOCitEQUpJxIYgTEpJTEpBTkEKK0RBSknEhiBWRUxJTUlSCitEQUpLTyBWTEFESU1JUgorREFKS08gVkxBRElNSVIKK0RBSk9WScSGIFpPUkEKK0RBS0nEhiDEkE9SxJBFCitEQUtJxIYgQU5URQorREFLScSGIEJPSkFOQQorREFLScSGIEJPUklTCitEQUtJxIYgQk9SS0EKK0RBS0nEhiBCUkFOS0EKK0RBS0nEhiBEQU5FCitEQUtJxIYgREFOSUxPCitEQUtJxIYgRFJBR08KK0RBS0nEhiBEUkFHTworREFLScSGIERVxaBBTktBCitEQUtJxIYgR09KS08KK0RBS0nEhiBJTElKQQorREFLScSGIEpFTEVOQQorREFLScSGIEtTRU5JSkEKK0RBS0nEhiBNSUxBTgorREFLScSGIE1JTE9KRQorREFLScSGIE1JTE9NSVIKK0RBS0nEhiBNSVRBUgorREFLScSGIE5FQk9KxaBBCitEQUtJxIYgTkVERUxKS08KK0RBS0nEhiBORURFTEpLTworREFLScSGIE5JS09MQQorREFLScSGIE5JS09MQQorREFLScSGIFBBVkxFCitEQUtJxIYgUEVUQVIKK0RBS0nEhiBSQUpLTworREFLScSGIFJBTktPCitEQUtJxIYgUkFUS08KK0RBS0nEhiBSRUxKQQorREFLScSGIFNMQVZJQ0EKK0RBS0nEhiBTTEFWS08KK0RBS0nEhiBTTE9CT0RBTgorREFLScSGIFNSRVRFTgorREFLScSGIFNWRVRPWkFSCitEQUtJxIYgVkxBRElNSVIgRFIKK0RBS0nEhiBWTEFESU1JUiBEUgorREFLScSGIFZMQURJTUlSCitEQUtJxIYgVkxBRElNSVIKK0RBS0nEhiBWTEFETworREFLScSGIFpPUkFOCitEQUtPVknEhiDEkE9LTworREFLT1ZJxIYgQlJBTktPCitEQUtPVknEhiBWRVNFTElOCitEQUtPVknEhiBaT1JBTgorREFLU0VSIEpPVkFOCitEQUtTRVIgU1RFVkFOCitEQUzEjEVLT1ZJxIYgSUxJSkEKK0RBTElQT1YgQlVESU1JUgorREFMSVBPVknEhiBBQkRVTAorREFMSkFDIExKVUJJQ0EKK0RBTEpFViBMSklMSkFOQQorREFMSkVWIE1JTEFOCitEQUxNQUNJSkEgSkFEUkFOS0EKK0RBTE1BQ0lKQSBNSVJLTworREFMT8WgIE1BUklKQQorREFNxaBJxIYgSk9TSUYKK0RBTUpBTiBKRUxJU0FWRVRBCitEQU1KQU4gSk9OCitEQU1KQU5BQyBSQURNSUxBCitEQU1KQU5BQyBSQURPVkFOCitEQU1KQU5BQyBTVE9KQU5LQQorREFNSkFOScSGIFpPUklDQQorREFNSkFOT1NLQSBTTEFWS0EKK0RBTUpBTk9WIMW9SUtBCitEQU1KQU5PViDEkE9SxJBFCitEQU1KQU5PViBCSUxKQU5BCitEQU1KQU5PViBCUkFOS0EKK0RBTUpBTk9WIENWRVRLTworREFNSkFOT1YgRElNSVRSSUpFCitEQU1KQU5PViBEUkFHT01JUgorREFNSkFOT1YgSURBCitEQU1KQU5PViBKT1JEQU5LQQorREFNSkFOT1YgSk9WQU4KK0RBTUpBTk9WIEtBVElDQQorREFNSkFOT1YgTEFaQQorREFNSkFOT1YgTUlMRU5LTworREFNSkFOT1YgTUlMRU5LTworREFNSkFOT1YgUEFWTEUKK0RBTUpBTk9WIFNPRklKQQorREFNSkFOT1YgU1RBTktPCitEQU1KQU5PViBTVEVWQU4KK0RBTUpBTk9WScSGIMSQT1LEkEUKK0RBTUpBTk9WScSGIEFMRUtTQU5EQVIKK0RBTUpBTk9WScSGIEFSU0VOSUpFCitEQU1KQU5PVknEhiBCT8WgS08KK0RBTUpBTk9WScSGIEJPUklTTEFWCitEQU1KQU5PVknEhiBEQVJJTktBCitEQU1KQU5PVknEhiBEUkFHSUNBCitEQU1KQU5PVknEhiBEUkFHT1NMQVYKK0RBTUpBTk9WScSGIERSQUdPCitEQU1KQU5PVknEhiBEUkFHVVRJTgorREFNSkFOT1ZJxIYgRFXFoEFOCitEQU1KQU5PVknEhiBEVcWgQU4KK0RBTUpBTk9WScSGIERVxaBJQ0EKK0RBTUpBTk9WScSGIERVxaBLTworREFNSkFOT1ZJxIYgRU1JTAorREFNSkFOT1ZJxIYgR09SREFOQQorREFNSkFOT1ZJxIYgSk9WQU4KK0RBTUpBTk9WScSGIEpPVkFOCitEQU1KQU5PVknEhiBKT1ZPCitEQU1KQU5PVknEhiBMSklMSkFOQQorREFNSkFOT1ZJxIYgTEpVQknFoEEKK0RBTUpBTk9WScSGIExKVUJJQ0EKK0RBTUpBTk9WScSGIE1BUklKQQorREFNSkFOT1ZJxIYgTUlMQU4KK0RBTUpBTk9WScSGIE1JTEFOCitEQU1KQU5PVknEhi1NSUxFTktPVknEhiBKRUxFTkEKK0RBTUpBTk9WScSGIE1JT0RSQUcKK0RBTUpBTk9WScSGIE5PVk8KK0RBTUpBTk9WScSGIE9CUkFECitEQU1KQU5PVknEhiBQRVRBUgorREFNSkFOT1ZJxIYgUkFERQorREFNSkFOT1ZJxIYgUkFET1ZBTgorREFNSkFOT1ZJxIYgUkFOS08KK0RBTUpBTk9WScSGIFJBVEtPCitEQU1KQU5PVknEhiBTSU1PCitEQU1KQU5PVknEhiBTSU5JxaBBCitEQU1KQU5PVknEhiBTTEFWS08KK0RBTUpBTk9WScSGIFNMT0JPREFOS0EKK0RBTUpBTk9WScSGIFNORcW9QU5BCitEQU1KQU5PVknEhiBTVEFOSVNMQVYKK0RBTUpBTk9WScSGIFNURVZBTgorREFNSkFOT1ZJxIYgU1RFVkFOCitEQU1KQU5PVknEhiBTVEVWTworREFNSkFOT1ZJxIYgVEVSRVpBCitEQU1KQU5PVknEhiBUT0RPUgorREFNSkFOT1ZJxIYgVE9NSVNMQVYKK0RBTUpBTk9WScSGIFZBU0lMSUpFIERSCitEQU1KQU5PVknEhiBWQVNJTElKRQorREFNSkFOT1ZJxIYgVkFTSUxJSkUKK0RBTUpBTk9WScSGIFZPSklTTEFWCitEQU1KQU5PVknEhiBaT1JBTgorREFNSkFOT1ZTS0kgxb1JVktPCitEQU1KQU5PVlNLSSBBTEVLU0FOREFSCitEQU1KQU5PVlNLSSBBTEVLU0FOREFSCitEQU1KQU5PVlNLSSBNSUxBTgorREFNSkFOT1ZTS0kgUlXFvUlDQQorREFNSkFOT1ZTS0kgVkxBRElNSVIKK0RBTUxKQU5PVknEhiDFvUlWT1RBCitEQU1OSkFOT1ZJxIYgQUxFS1NBTkRBUgorREFNTkpBTk9WScSGIEtSSVNUSU5BCitEQU1OSkFOT1ZJxIYgTEFaQVIKK0RBTU5KQU5PVknEhiBMSklMSkFOQQorREFNTkpBTk9WScSGIFNMQVZPTEpVQgorREFNTkpBTk9WScSGIFpPUkFOCitEQU1OSkFOT1ZJxIYgWk9SQU4KK0RBTiBNSVJBCitEQU7EjCBUSUJPUgorREFOxIxFVE9WScSGIFpPUklDQQorREFOxIxPIMSMQUJBCitEQU7EjE8gSkVORQorREFOQUlMT1YgQUNBCitEQU5BSUxPViBURVZBCitEQU5HVUJJxIYgxb1BUktPCitEQU5HVUJJxIYgUkFESVZPSkUgRElQTCBJTkcKK0RBTkdVQknEhiBSQVRLTworREFOR1VaT1YgRFXFoEFOCitEQU5JIEdBxaBQQVIKK0RBTkkgTEFTTE8KK0RBTknEjEnEhiBCT1JPCitEQU5JxIxJxIYgQlJBTklTTEFWCitEQU5JxIxJxIYgRFJBR09MSlVCCitEQU5JxIxJxIYgRFJBR08KK0RBTknEjEnEhiBJUkVOQQorREFOScSMScSGIFNBVklDQQorREFOScSMScSGIFpEUkFWS08KK0RBTknFoCBFVkEKK0RBTknFoCBJxaBUVkFOCitEQU5JxaAgTUFSSUpBCitEQU5JxIYgUEVUQVIgRElQTCBJTkcKK0RBTknEhiBWRVNOQQorREFOScSGIFpPUklDQQorREFOSUVMIEFORFJJSkEKK0RBTklFTCBBUkFOS0EKK0RBTklFTCBISUxEQQorREFOSUVMIEpPU0lQCitEQU5JRUwgUEVUQVIKK0RBTklFTCBQSVJPxaBLQQorREFOSUVMIFJVxb1BCitEQU5JS09WIE1JUk9MSlVCCitEQU5JS09WIFZBTEVSSUpBCitEQU5JTE9WIEFOSUNBCitEQU5JTE9WIEJPU0lMSktBCitEQU5JTE9WIERVxaBBTgorREFOSUxPViBNSUxBTgorREFOSUxPViBSQURPTUlSCitEQU5JTE9WIFNNSUxKQU5BCitEQU5JTE9WIFNUT0pBTgorREFOSUxPViBWQVNBCitEQU5JTE9WQUMgRElNSVRSSUpFCitEQU5JTE9WQUMgUEVUQVIKK0RBTklMT1ZBQyBSVcW9QQorREFOSUxPVkFDIFZJVE9NSVIKK0RBTklMT1ZJxIYgxb1JVkFOCitEQU5JTE9WScSGIMW9SVZPUkFECitEQU5JTE9WScSGIEFMRUtTQU5EQVIKK0RBTklMT1ZJxIYgQlJBTktPCitEQU5JTE9WScSGIEpPVkFOCitEQU5JTE9WScSGIEtBVEFSSU5BCitEQU5JTE9WScSGIExKSUxKQU5BCitEQU5JTE9WScSGIE1BUktPCitEQU5JTE9WScSGIE1JTEFOCitEQU5JTE9WScSGIE1JUktPIERSCitEQU5JTE9WScSGIE5JS09MQQorREFOSUxPVknEhiBOSUtPTEEKK0RBTklMT1ZJxIYgUEVSU0EKK0RBTklMT1ZJxIYgUkFEQQorREFOSUxPVknEhiBSQURNSUxBCitEQU5JTE9WScSGIFNUQU5JU0xBVkEKK0RBTklMT1ZJxIYgU1RFVkFOCitEQU5JTE9WScSGIFRJSE9NSVIKK0RBTklMT1ZJxIYtVkVTRUxJTk9WIFZFUkEKK0RBTklMT1ZJxIYgWkRSQVZLTworREFOSkkgRkVSRU5DCitEQU5KSSBHRVpBCitEQU5KSSBLQVJPTEoKK0RBTkpJIExBU0xPCitEQU5KSSBNQcSGQcWgCitEQU5LQSBNQVJLTworREFOS0EgWkxBVEEKK0RBTktPIEpBTktPCitEQU5LTyBKQVJPU0xBVgorREFOS09WScSGIEJPR09MSlVCCitEQU5LT1ZJxIYgU0xBVknFoEEKK0RBTktPVknEhiBTTEFWS0EKK0RBTktVQyBEUkFHQU4KK0RBTktVQyBNSUxJQ0EKK0RBTktVQyBWT0pJU0xBVgorREFOS1VDIFZPSklTTEFWCitEQU5PSkVWScSGIFNURVZBTgorREFQxIxFVknEhiBEVcWgQU4KK0RBUMSMRVZJxIYgSk9WQU4KK0RBUMSMRVZJxIYgTEpVQklDQQorREFQxIxFVknEhiBQQVZMRQorREFQxIxFVknEhiBSQUpLTworREFQxIxFVknEhiBSVcW9SUNBCitEQVDEjEVWScSGIFZFUklDQQorREFSQcWgIMW9RUxKS08KK0RBUkHFvSBKVUxJSkFOQQorREFSQcW9IFNURVZBTgorREFSQUJBTkogSk/FvUVGCitEQVJBQk/FoCBKVUxLQQorREFSQUJPxaAgTEFESVNMQVYKK0RBUkFCT8WgIE1BUklKQQorREFSQUJPxaAgUEVUQVIKK0RBUkFCVUMgTkVERUxKS08KK0RBUkFEScSGIFNURVZBTgorREFSTUFOT1ZJxIYgTUlMQU4KK0RBUk1BTk9WScSGIFNUQU5LTworREFSTUFOT1ZJxIYgVE9NSVNMQVYKK0RBUk9KRVZJxIYgTEFaQVIKK0RBUlZJxaAgWk9SSUNBCitEQVNPVknEhiBTVE9KQU5LQQorREFTT1ZJxIYgWkxBVEEKK0RBVVRPVkEtUlXFoEVWTEpBTiBWRUxJTktBIERSCitEQVVUT1ZJxIYgxJBPUsSQRQorREFVVE9WScSGIEJPR0RBTgorREFVVE9WScSGIETFvUVNQUwKK0RBVVRPVknEhiBEUkFHQU4KK0RBVVRPVknEhiBNSUxBTgorREFVVE9WScSGIE1JTEFOCitEQVZJxIYgQlJBTklTTEFWCitEQVZJRCBBTkRSQcWgCitEQVZJRCBJTE9OQQorREFWSURPViDEkFVSxJBJTkEKK0RBVklET1YgQk9HREFOCitEQVZJRE9WIEJVRElNS0EKK0RBVklET1YgSkVMSUNBCitEQVZJRE9WIEpPVkFOCitEQVZJRE9WIExKVUJPTUlSCitEQVZJRE9WIE1JTEFOCitEQVZJRE9WIE1JTEFOCitEQVZJRE9WIE1JTEnEhgorREFWSURPViBNSUxJVk9KCitEQVZJRE9WIE1JTEtBCitEQVZJRE9WIE5FR09WQU4KK0RBVklET1YgUkFET1NMQVYKK0RBVklET1YgUkFET1ZBTgorREFWSURPViBTTEFWS08KK0RBVklET1YgU1RPSkFOCitEQVZJRE9WIFRJSE9NSVIKK0RBVklET1ZBQyDEkE9SxJBFCitEQVZJRE9WQUMgQk/FoEtPCitEQVZJRE9WQUMgREFOSUxPCitEQVZJRE9WQUMgRFXFoEFOS0EKK0RBVklET1ZBQyBFTFZJUkEKK0RBVklET1ZBQyBHQVZSQQorREFWSURPVkFDIEdPSktPCitEQVZJRE9WQUMgTEpVQklDQQorREFWSURPVkFDIE1JUk9TTEFWCitEQVZJRE9WQUMgUkFESVZPSgorREFWSURPVkFDIFJBRElWT0oKK0RBVklET1ZBQyBSQURJVk9KCitEQVZJRE9WQUMgUkFESVZPSgorREFWSURPVkFDIFJBRE1JTEEKK0RBVklET1ZBQyBTVEVWQU4KK0RBVklET1ZBQyBUT0RPUgorREFWSURPVkFDIFZFUklDQQorREFWSURPVkFDIFZFU0VMSU5LQQorREFWSURPVkFDIFpEUkFWS08KK0RBVklET1ZJxIYgxIxBU0xBVgorREFWSURPVknEhiBEQVZPUgorREFWSURPVknEhiBEUkFHQU4KK0RBVklET1ZJxIYgRFJBR0lDQQorREFWSURPVknEhiBEVcWgQU5LQQorREFWSURPVknEhiBEVcWgS08KK0RBVklET1ZJxIYgR09SQU4KK0RBVklET1ZJxIYgSk9WQU4KK0RBVklET1ZJxIYgSk9WTworREFWSURPVknEhiBMSklMSkFOQQorREFWSURPVknEhiBNQVJJSkEKK0RBVklET1ZJxIYgTUFSSUpBCitEQVZJRE9WScSGIE1BUkpBTgorREFWSURPVknEhiBNSUhBSUxPCitEQVZJRE9WScSGIE1JTEFOCitEQVZJRE9WScSGIE1JTEFOCitEQVZJRE9WScSGIE1JTEFOCitEQVZJRE9WScSGIE1JTEFOCitEQVZJRE9WScSGIE1JTEFOCitEQVZJRE9WScSGIE1JTEFOCitEQVZJRE9WScSGIE1JTEEKK0RBVklET1ZJxIYgTUlMT8WgCitEQVZJRE9WScSGIE1JTE/FoAorREFWSURPVknEhiBNSUxPVkFOCitEQVZJRE9WScSGIE1JTFVUSU4KK0RBVklET1ZJxIYgTUlSS08KK0RBVklET1ZJxIYgTUlST1NMQVYKK0RBVklET1ZJxIYgTUlST1NMQVYKK0RBVklET1ZJxIYgTUxBREVOCitEQVZJRE9WScSGIE5FQk9KxaBBCitEQVZJRE9WScSGIE5FTkFECitEQVZJRE9WScSGIE9MR0EKK0RBVklET1ZJxIYgUEVSQQorREFWSURPVknEhiBQRVRBUgorREFWSURPVknEhiBQRVRBUgorREFWSURPVknEhiBQRVRBUgorREFWSURPVknEhiBSQURFIERSCitEQVZJRE9WScSGIFJBREUKK0RBVklET1ZJxIYgUkFET0pFCitEQVZJRE9WScSGIFJBRE9NSVIKK0RBVklET1ZJxIYgU0FWQQorREFWSURPVknEhiBTTEFWS08KK0RBVklET1ZJxIYgU1JFVEEKK0RBVklET1ZJxIYgU1RBTktPCitEQVZJRE9WScSGIFNURVZBTgorREFWSURPVknEhiBVUk/FoAorREFWSURPVknEhiBWQVNBCitEQVZJRE9WScSGIFZJVE9NSVIKK0RBVklET1ZJxIYgVkxBRElNSVIKK0RBVklET1ZJxIYgVk9KSVNMQVYKK0RBVklET1ZJxIYgWk9SQQorREFWSURPVlNLSSBNQVJBCitEQVZJTknEhiBTVE9KQU4KK0RBVk9HScSGIFRFT0RPUgorREFWT1NJUiBJVkFOCitEQVZPU0lSIE1BS1NJTQorREFWT1NJUiBURU9ET1IKK0RBVk9TSVIgVkxBRElNSVIKK0RFLVZSSUVTIElWQU5LQQorREXFoEkgWk9MVEFOCitERcWgScSGIE1BUkEKK0RFxaBPIMW9SVZBTktBCitERcW9RSBKT1ZBTgorREXFvUUgS0FSTE8KK0RFxb1FIFpERU5LQQorREXFvUVMScSGIEpPVkFOS0EKK0RFxJBBTlNLSSDEkE9SxJBFCitERcSQQU5TS0kgRFXFoEFOCitERcSQQU5TS0kgUEVUQVIKK0RFQUsgxb1BUktPCitERUFLIEFORFJBxaAKK0RFQUsgQU5EUklKQU5BCitERUFLIEFORFJJSkEKK0RFQUsgQVJBTktBCitERUFLIEZFUkVOQworREVBSyBJTEXFoAorREVBSyBMQVVSQQorREVBSyBNQVRJTERBCitERUFOIE5FVkVOS0EKK0RFQVJPU0tJIEZFSElNCitERUFST1ZJxIYgU0FMSU0KK0RFQkVMSkHEjEtJIMW9SVZPSklOCitERUJFTEpBxIxLSSDEkE9SxJBFCitERUJFTEpBxIxLSSBBTEVLU0FOREFSCitERUJFTEpBxIxLSSBBTEVLU0FOREFSCitERUJFTEpBxIxLSSBCT1NJTEpLQQorREVCRUxKQcSMS0kgRFJBR09NSVIKK0RFQkVMSkHEjEtJIElWQU4KK0RFQkVMSkHEjEtJIElWQU4KK0RFQkVMSkHEjEtJIEtBVElDQQorREVCRUxKQcSMS0kgTEpVQklDQQorREVCRUxKQcSMS0kgTUlSSkFOQQorREVCRUxKQcSMS0kgTUlST1NMQVYKK0RFQkVMSkHEjEtJIE5BREEKK0RFQkVMSkHEjEtJIFNSxJBBCitERUJFTEpBxIxLSSBTVkVUT1pBUgorREVCRUxKQcSMS0kgVkVSQQorREVCRUxKQcSMS0kgVlVLT1NBVkEKK0RFQkVMSkVWScSGIFZFTElNSVIKK0RFQyBBTklDQQorREVEQUogREFWSUQKK0RFREFKIExFS08KK0RFREVJIElMT05BCitERURFScSGIEVMSVpBQkVUQQorREVEScSGIEJSQU5JU0xBVgorREVEScSGIERPQlJPU0FWCitERURJxIYgRFJBR0FOCitERURJxIYgRFJBR09TTEFWCitERURJxIYgRUxJWkFCRVRBCitERURJxIYgR0FWUklMTworREVEScSGIEpPVk8KK0RFREnEhiBLT1ZJTktBCitERURJxIYgTUFSQQorREVEScSGIE1BUklKQQorREVEScSGIE1JTElWT0ogRFIgUFJPRgorREVEScSGIE1JTE8KK0RFREnEhiBNSU9EUkFHCitERURJxIYgTkVNQU5KQQorREVEScSGIFJBRElDQQorREVEScSGIFNMQVZLQQorREVEScSGIFNURVZBTgorREVEScSGLVRBU0nEhiBNSVJBCitERURJTiBERUpBTgorREVESU4gRElNSVRSSUpFCitERURJTiBESU1JVFJJSkUKK0RFRElOIFZBU0lMSUpFCitERURJTlNLSSBUSUJPUgorREVET1ZJxIYgTUnFoE8KK0RFRlJBTkdFUEFOIEZSQU5TT0EKK0RFR0EgQVZSQU0KK0RFSkFOQUMgTUlMT1JBRAorREVKQU5PU0tJIE1JTEFOCitERUpBTk9WIEJFUklTTEFWCitERUpBTk9WIERBTklMTworREVKQU5PViBKRUxFTkEKK0RFSkFOT1YgTUlUQQorREVKQU5PViBTSU1BCitERUpBTk9WScSGIMW9QVJLTworREVKQU5PVknEhiDFvUFSS08KK0RFSkFOT1ZJxIYgxb1JVkFOCitERUpBTk9WScSGIMW9SVZPSklOCitERUpBTk9WScSGIMSQT1LEkEUKK0RFSkFOT1ZJxIYgxJBVUsSQSU5LQQorREVKQU5PVknEhiDEkFVSSUNBCitERUpBTk9WScSGIEFMRUtTQU5EQVIKK0RFSkFOT1ZJxIYgQUxFS1NBTkRSQQorREVKQU5PVknEhiBBTsSQRUxJSkEKK0RFSkFOT1ZJxIYgQU5LSUNBCitERUpBTk9WScSGIEJPUklTTEFWQQorREVKQU5PVknEhiBEQU5JTE8KK0RFSkFOT1ZJxIYgRElNSVRSSUpFCitERUpBTk9WScSGIERPQlJJVk9KRQorREVKQU5PVknEhiBET0JSSVZPSkUKK0RFSkFOT1ZJxIYgRFJBR0FOCitERUpBTk9WScSGIERVxaBBTgorREVKQU5PVknEhiBEVcWgQU4KK0RFSkFOT1ZJxIYgRFXFoEFOCitERUpBTk9WScSGIElWQU4KK0RFSkFOT1ZJxIYgSkVMRU5BCitERUpBTk9WScSGIEpFTElDQQorREVKQU5PVknEhiBKT1JEQU4KK0RFSkFOT1ZJxIYgSk9WQU4KK0RFSkFOT1ZJxIYgS0FUSUNBCitERUpBTk9WScSGIExBWkFSCitERUpBTk9WScSGIExBWkFSCitERUpBTk9WScSGIE1JTEFOQQorREVKQU5PVknEhiBNSUxBTgorREVKQU5PVknEhiBNSUxBTgorREVKQU5PVknEhiBNSUxJQ0EKK0RFSkFOT1ZJxIYgTUlMT8WgCitERUpBTk9WScSGIE1JTE/FoAorREVKQU5PVknEhiBNSUxPUkFECitERUpBTk9WScSGIE1JTE9SQUQKK0RFSkFOT1ZJxIYgTUlSSkFOQQorREVKQU5PVknEhiBNSVJPU0xBVgorREVKQU5PVknEhiBQRVRBUgorREVKQU5PVknEhiBQRVRBUgorREVKQU5PVknEhiBQRVRBUgorREVKQU5PVknEhiBSQURBCitERUpBTk9WScSGIFNURVZBTgorREVKQU5PVknEhiBTVEVWQU4KK0RFSkFOT1ZJxIYgVk9KSVNMQVYKK0RFSkFOT1ZTS0kgTUxBREVOCitERUpBTk9WU0tJIFRPTUlTTEFWCitERUpBTk9WU0tJIFZFU0VMSU4KK0RFS0FOScSGIEJSQU5LTworREVLQU5JxIYgR0xJR09SSUpFCitERUtBTknEhiBNSUxPxaAKK0RFS0FOScSGIE1JTE/FoAorREVLQU5JxIYgVk9KSVNMQVYKK0RFS0FOScSGIFZPSklTTEFWCitERUtBTkogQU5UQUwKK0RFS0FOU0tJIERJTkEKK0RFS0FOU0tJIFBBVkxFCitERUtJxIYgREFORQorREVMQcSMIEZSQU5DScWgS0EKK0RFTEVUScSGIEdPUkRBTkEKK0RFTEnEhiDEkE9SxJBFCitERUxJxIYgQklMSkFOQQorREVMScSGIEJPxb1JREFSCitERUxJxIYgQk9HREFOCitERUxJxIYgREFSSU5LQQorREVMScSGIERFU0lNSVIKK0RFTEnEhiBEUkFHSUNBCitERUxJxIYgRFJBR0lDQQorREVMScSGIERSQUdVVElOCitERUxJxIYtSUJVS0nEhiBFU0FECitERUxJxIYgSUxJSkEKK0RFTEnEhiBKQU5KQQorREVMScSGIEpPVkFOCitERUxJxIYgTUFSQQorREVMScSGIE1JxIZPIERSCitERUxJxIYgTUlIQUpMTworREVMScSGIE1JTEFOQQorREVMScSGIE1JTEFOCitERUxJxIYgTUlMSUNBCitERUxJxIYgTUlMS0EKK0RFTEnEhiBNSUxPxaAKK0RFTEnEhiBNSUxPTUlSCitERUxJxIYgTUlMT1NBVkEKK0RFTEnEhiBNVVNUQUZBCitERUxJxIYgUEHFoEtPCitERUxJxIYgUEVUQVIKK0RFTEnEhiBSQURNSUxBCitERUxJxIYgUkFET0pLQSBEUgorREVMScSGIFJBRE9NSVIKK0RFTEnEhiBSQURPU0FWCitERUxJxIYtU0xBVktPVknEhiBWRVJBCitERUxJxIYgU1JFVEVOCitERUxJxIYgU1RPSkFOCitERUxJxIYgU1ZFVE9aQVIKK0RFTEnEhiBUT01JU0xBVgorREVMScSGIFZBU0EKK0RFTEnEhiBWRVNFTEtPCitERUxJxIYgVkVTTkEKK0RFTEnEhiBWTEFETworREVMScSGIFZMQURPCitERUxJxJBPUsSQRVZJxIYgU1RFVkFOS0EKK0RFTElCQcWgScSGIERFSkFOIERJUEwgSU5HCitERUxJQkHFoEnEhiBMSlVCScWgQQorREVMSUJBxaBJxIYgTEpVQklDQQorREVMSUJBxaBJxIYgTUFSSUNBCitERUxJQkHFoEnEhiBNSUxJVk9KRQorREVMSUJBxaBJxIYgTUlMSVZPSkUKK0RFTElCQcWgScSGIE1JTE9SQUQKK0RFTElCQcWgScSGIE1JT0RSQUcKK0RFTElCQcWgScSGIFNBVk8KK0RFTElCQcWgScSGIFNPRklKQQorREVMSUJBxaBJxIYgVE9NSVNMQVYKK0RFTElCTEHEhkFOSU4gSk9WQU4KK0RFTEtPVknEhiBKT1ZJQ0EKK0RFTE9JSyBEUkFHVVRJTgorREVMT05HQSBTVEFOS08KK0RFTE9WIE9SREFOxIxPCitERU3EjEXFoEVOIFZBU0lMSUpFCitERU3FoEFSIEdPUkRBTkEKK0RFTcWgQVItVkVHRVIgTUFSSUpBCitERU1BSyBNSVJPU0xBVgorREVNQU4gSkFOS08KK0RFTUFOIFJBU1RJU0xBVgorREVNQklDIFNNSUxKQU5BCitERU1FIEVNQQorREVNRSBGUkFOQ0nFoEtBCitERU1FIElSRU5BCitERU1FIEtMQVJBCitERU1FxaBJIEFSUEFECitERU1FTElTIExKVUJJQ0EKK0RFTUVOREkgQkVMQQorREVNRU5ESSBET1JPVEVBCitERU1FUiBCRUxBCitERU1FUiBGUkFOQworREVNRVRFUiBGRVJFTkMKK0RFTUVURVIgRlJBTkpBCitERU1FVEVSIFNURVZBTgorREVNScSGIMW9SVZPUkFECitERU1KRU4gQk9SSVNMQVYKK0RFTUtPLVJJSFRFUiBKT1NJUAorREVNT1ZTS0kgU0VWRElKQQorREVNVVQgUk9aQUxJSkEKK0RFTsSMSUsgVkxBRElTTEFWCitERU5EQSBEUkFHQU4KK0RFTkRBIE1JTElWT0oKK0RFTkRJxIYgU1JFVElNSVIKK0RFTkXFoEkgVklMSU0KK0RFTkdPUklDSUpBIFNUSkVQQU4KK0RFTknEhiDEjEVET01JUgorREVOScSGIMW9SVZPVEEKK0RFTknEhiBMSlVCScWgQQorREVOScSGIE1PTcSMSUxPIERJUEwgSU5HCitERU5JxIYgUkFESUNBCitERU5JxIYgU0lOScWgQQorREVOScSGIFpVWkFOQQorREVOS09WScSGIExKVUJPTUlSCitERU5LT1ZTS0kgSkFORQorREVQxIxFTkpTS0kgU1RFRkFOCitERVIgRlJBTkpBCitERVIgSk/FvUVGCitERVIgTEFKT8WgCitERVIgU1RFVkFOCitERVJBSknEhiBTVE9KQQorREVSQkFLT1YgTUFSS08KK0RFUkJPR09TSUpBTiBCUkFOS08KK0RFUkRJxIYgUlVET0xGCitERVJFSCBTSU1FT04KK0RFUkVUQSBNSUxBTgorREVSRVRBIFBFVEFSCitERVJFVEEgU1ZFVE9aQVIKK0RFUkVUScSGIFNWRVRPWkFSCitERVJJS1JBVkEgTUlDQQorREVSTUVOxJBJSkVWU0tJIERJTUlUQVIKK0RFUk9OSknEhiBUT0RPUgorREVSVcWgRUsgTUlMSkVOS08KK0RFUlZJxaBFVknEhiBKVVNVRgorREVSVknFoEVWScSGIE5FRMW9SUIKK0RFUlZJxaBFVknEhiBTTEFWS08KK0RFUlZJxaBJIE1JU0lOCitERVJWScWgSSBSQU1BREFOCitERVJWScWgSSBSVcWgSVQKK0RFUlZJxIYgxaBFRktBCitERVNOSUNBIMSQT1LEkEUKK0RFU05JQ0EgxJBVUk8gTVIKK0RFU05JQ0EgQk9HREFOCitERVNOSUNBIEJSQU5LTworREVTTklDQSBKQU5LTworREVTTklDQSBMVUtBCitERVNOSUNBIE5JS09MQQorREVTTklDQSBSQURPTUlSIERJUEwgSU5HCitERVNOSUNBIFJBRE9NSVIKK0RFU05JQ0EgUkVMSkEKK0RFU05JQ0EgU01JTEpLQQorREVTTklDQSBTVEFOQQorREVTUEVOScSGIEFMRUtTQU5EQVIKK0RFU1BJIEpPVkEKK0RFU1BJIFZFTEpLTworREVTUEnEhiBMQVpBUgorREVTUEnEhiBNQVJLTworREVTUEnEhiBNSVJKQU5BCitERVNQScSGIFNSRVRFTgorREVTUEnEhiBaT1JBTgorREVTUE9UIERVxaBBTgorREVTUE9UIE1JTEFOCitERVNQT1QgTUlMSUNBCitERVNQT1QgTUlSSkFOQQorREVTUE9UIE5BREEKK0RFU1BPVCBORU5BRAorREVTUE9UIFNMT0JPREFOCitERVNQT1RPViBBTEVLU0FOREFSCitERVNQT1RPViBET0JSSUxBCitERVNQT1RPViBFVkRPS0lKQQorREVTUE9UT1YgSUxJSkEKK0RFU1BPVE9WIEpPQ0EKK0RFU1BPVE9WIExKVUJJTktBCitERVNQT1RPViBNSUxBTgorREVTUE9UT1YgTUlMT1ZBTgorREVTUE9UT1YgUkFETUlMQQorREVTUE9UT1YgUlXFvUlDQQorREVTUE9UT1YgVklMTUEKK0RFU1BPVE9WIFZJVE9NSVJLQQorREVTUE9UT1YgVk9KSVNMQVYKK0RFU1BPVE9WIFpPUkFOCitERVNQT1RPVknEhiBCSUxKQU5BCitERVNQT1RPVknEhiBEUkFHVVRJTgorREVTUE9UT1ZJxIYgTEpJTEpBTkEKK0RFU1BPVE9WScSGIFBBTlRFTElKQQorREVTUE9UT1ZJxIYgUkFESVNMQVYKK0RFU1BPVE9WScSGIFJBRElTTEFWCitERVNQT1RPVknEhiBSQURJVk9KRQorREVTUE9UT1ZJxIYgUkFESVZPSkUKK0RFU1BPVE9WScSGIFJBRE1JTEEKK0RFU1BPVE9WScSGIFJBVEtPCitERVNQT1RPVknEhiBTSU1LQQorREVTUE9UT1ZJxIYgU1RBTktPCitERVNQT1RPVknEhiBWQVNPCitERVNQT1RPVknEhiBWT0pJU0xBVgorREVTUE9UT1ZTS0kgRFXFoEFOCitERVRBUkkgTUFSSUpBCitERVRFTElOIMSQVVJBCitERVRFTElOIEpPU0lQCitERVRFTElOIE5BREEKK0RFVVJBIERVxaBBTiBESVBMIFBSQVZOSUsKK0RFVVJBIFJBSktPCitERVVSQSBWRVJBCitERVVSScSGIFJBRE1JTEEKK0RFVkFJIMWgQU5ET1IKK0RFVkFJIElNUkUKK0RFVkFJIExBSk/FoAorREVWQUkgU0FOSkEKK0RFVkFJIFpPUklDQQorREVWQUpBIE5BREEKK0RFVkFKQSBPTUVSIERSCitERVZBTEQgRVRFTEtBCitERVZBTEQgSVZBTgorREVWQUxEIEpPSEFOCitERVZFxIxFUkkgS1JJU1RJTkEKK0RFVkXEjEVSU0tJIEFWUkFNCitERVZFxIxFUlNLSSBEQU5JQ0EKK0RFVkXEjEVSU0tJIFZBU0lMSUpFIERSCitERVZFREFOIMSQT1LEkEUKK0RFVkVEQU4gQk9HREFOCitERVZFREFOIERSQUdPSkUKK0RFVkVEQU4gTUFSQQorREVWRURBTiBNSUxPVkFOCitERVZFREFOIE1JUktPCitERVZFVEFLIFpPUkEKK0RFVknEhi3EjE9CQU5LU0kgTUlMSkVOS0EKK0RFVknEhiDFvUlWQU4KK0RFVknEhiDEkE9LQQorREVWScSGIMSQT1LEkEUKK0RFVknEhiBBTEVLU0FOREFSCitERVZJxIYgQU5LSUNBCitERVZJxIYgQklMSkFOQQorREVWScSGIEJSQU5JU0xBVkEKK0RFVknEhiBCUkFOS0EKK0RFVknEhiBDVklKRVRBCitERVZJxIYgREFOSUNBCitERVZJxIYgREFOSUxLQQorREVWScSGIERPQlJPU0FWCitERVZJxIYgRFJBR09MSlVCCitERVZJxIYgRFJBR09NSVIKK0RFVknEhiBEUkFHTworREVWScSGIERVxaBBTgorREVWScSGIEVWSUNBCitERVZJxIYgR09SQU4KK0RFVknEhiBHUk9aREEKK0RFVknEhiBJR05KQVQKK0RFVknEhiBJTElKQQorREVWScSGIEpPVkFOIERJUEwgSU5HCitERVZJxIYgSk9WQU5LQSBEUgorREVWScSGIEpPVkFOCitERVZJxIYgS0FUSUNBCitERVZJxIYgTUlMQU4KK0RFVknEhiBNSUxBTgorREVWScSGIE1JTEVOS08KK0RFVknEhiBNSUxFVEEKK0RFVknEhiBNSUxPxaAKK0RFVknEhiBNSU9EUkFHCitERVZJxIYgTUlSQQorREVWScSGIE1MQURFTgorREVWScSGIE5FQk9KxaBBCitERVZJxIYgTkVOQUQKK0RFVknEhiBOT1ZLQQorREVWScSGIFBFVEFSCitERVZJxIYgUkFET1NMQVYKK0RFVknEhiBTSU1BCitERVZJxIYgU0xBVktPCitERVZJxIYgU0xPQk9EQU4KK0RFVknEhiBUQVRKQU5BCitERVZJxIYgVE9NQQorREVWScSGIFZFTElOS0EKK0RFVknEhiBWTEFEQQorREVWScSGIFZPSklTTEFWIERJUEwgSU5HCitERVZJxIYgWkFHT1JLQQorREVWUk5KQSBCUkFOSVNMQVYKK0RFVlJOSkEgRFJBR0lDQQorREVWUk5KQSBMSlVCSUNBCitERVZSTkpBLU1JSEFKTE9WScSGIExKSUxKQU5BCitERVZSTkpBIE1JT0RSQUcKK0RFVlJOSkEgU1BBU09KRQorREVWVcWgScSGIE1JTEFOCitESUNLT1YgxJBPUsSQRQorRElDS09WIEFMRUtTQU5EUkEKK0RJQ0tPViBEUkFHQU4KK0RJQ0tPViBEUkFHQU4KK0RJQ0tPViBEVcWgS08KK0RJQ0tPViBJVkFOCitESUNLT1YgS09TVEEKK0RJQ0tPViBNSVJKQU5BCitESUNLT1YgTklLT0xBCitESUNLT1YgU1RFVkFOCitESUNLT1YgVkVTRUxJTgorRElDS09WIFZFU0VMSU4KK0RJQ0tPViBaT1JLQQorRElDTUFOIFpERU5LQQorRElEQU5PVknEhiDEjEVET01JUgorRElEQU5PVknEhiBCVURJTUlSCitESUpBS09WScSGIFBBVkEKK0RJSkFNQVRPVknEhiBEUkFHSUNBCitESUtJxIYgQlJBTklTTEFWCitESUtJxIYgQlJBTktPCitESUtJxIYgRFXFoEFOCitESUtJxIYgR09SQU4KK0RJS0nEhiBKT1ZBTktBCitESUtJxIYgSk9WQU4KK0RJS0nEhiBNSUxBTgorRElLScSGIFJBVEtPCitESUtJxIYgU0FWQSBESVBMIElORworRElLScSGIFNURVZBTgorRElLScSGIFZFTElOS0EKK0RJS0nEhiBaQUdPUktBCitESUtMScSGIEFMRUtTQU5EQVIKK0RJS0xJxIYgQUxFS1NBTkRBUgorRElLTEnEhiBCUkFOSVNMQVYKK0RJS0xJxIYgRFJBR0FOCitESUtMScSGIERSQUdBTgorRElLTEnEhiBEVcWgQU4KK0RJS0xJxIYgRFXFoEFOCitESUtMScSGIEpBU01JTkEKK0RJS0xJxIYgSk9WQU4KK0RJS0xJxIYgSlVESVQKK0RJS0xJxIYgTUFSVEEKK0RJS0xJxIYgTUlMQU4KK0RJS0xJxIYgTUlMRVRBCitESUtMScSGIE1JUk9TTEFWCitESUtMScSGIFBFVEFSCitESUtMScSGIFNUQU5LTworRElLT1ZJxIYgTklLT0xBCitESUxCRVJPVknEhiBBTlRPCitESU3EjE9WU0tJIFRSQUrEjEUKK0RJTcWgScSGIEFOS0EKK0RJTUEgQk9TQQorRElNQcWgRVZJxIYgQUxFS1NBTkRBUgorRElNQcWgRVZJxIYgUEVUQVIKK0RJTUFOScSGIEFOS0EKK0RJTUFOScSGIEJSQU5JU0xBVgorRElNRVNLSSBJTElKQQorRElNRVNLSSBNRVRPRElKRQorRElNScSGIMW9QVJLTworRElNScSGIMSQT1LEkEUKK0RJTUnEhiBBS1NFTlRJSkUKK0RJTUnEhiBBS1NFTlRJSkUKK0RJTUnEhiBBTsSQRUxLQQorRElNScSGIEJPR0RBTgorRElNScSGIEJSQU5LTworRElNScSGIERBTklDQQorRElNScSGIERJTUlUUklKRQorRElNScSGIERSQUdPTEpVQiBEUgorRElNScSGIERSQUdPTUlSCitESU1JxIYgRFJBR08KK0RJTUnEhiBEVcWgQU4gRFIKK0RJTUnEhiBEVcWgQU4KK0RJTUnEhiBEVcWgQU4KK0RJTUnEhiBFTUlMSUpBCitESU1JxIYgRVLFvUVCRVQKK0RJTUnEhiBJR05KQVQKK0RJTUnEhiBJVkFOCitESU1JxIYgSkFOS08KK0RJTUnEhiBLT1NUQQorRElNScSGIExBWkFSCitESU1JxIYgTEFaQVIKK0RJTUnEhiBMSlVCT01JUgorRElNScSGIE1JTEFOCitESU1JxIYgTUlMQU4KK0RJTUnEhiBNSUxFVkEKK0RJTUnEhiBNSUxJQ0EKK0RJTUnEhiBNSUxPxaAKK0RJTUnEhiBNSUxPSkUgRElQTCBJTkcKK0RJTUnEhiBNSVRBCitESU1JxIYgTkFEQQorRElNScSGIE5BREEKK0RJTUnEhiBORUJPSsWgQQorRElNScSGIE5JS09MQQorRElNScSGIE5JS09MQQorRElNScSGIE5JS09MQQorRElNScSGIE5JS09MQQorRElNScSGIE9MR0EKK0RJTUnEhiBPWlJFTgorRElNScSGIFBFVEFSCitESU1JxIYgU1RBTktPCitESU1JxIYgU1RFVkFOCitESU1JxIYgU1RFVkFOCitESU1JxIYgU1RFVkFOCitESU1JxIYgU1RFVkEKK0RJTUnEhiBWQVNBCitESU1JxIYgVkVSSUNBCitESU1JxIYgVklUT01JUgorRElNScSGIFZJVE9NSVIKK0RJTUnEhiBWTEFESU1JUgorRElNSVRSQcWgS09WScSGIFZMQURJTUlSCitESU1JVFJJxIYgxb1JVk9SQUQKK0RJTUlUUknEhiBCT0dPTEpVQgorRElNSVRSScSGIEJSQU5LTworRElNSVRSScSGIERSQUdBTgorRElNSVRSScSGIE1JTEVOS08KK0RJTUlUUknEhiBNSUxFVkEKK0RJTUlUUknEhiBOT1ZBSworRElNSVRSScSGIFBFUk8KK0RJTUlUUknEhiBSQVRLTworRElNSVRSScSGIFZMQURBTgorRElNSVRSScSGIFpPUkFOCitESU1JVFJJQURJUyBQQVZMT1MKK0RJTUlUUklKRVZJxIYgxIxFRE9NSVIKK0RJTUlUUklKRVZJxIYgxIxFRE9NSVIKK0RJTUlUUklKRVZJxIYgxJBPUsSQRQorRElNSVRSSUpFVknEhiDEkE9SxJBFCitESU1JVFJJSkVWScSGIMSQVVLEkEEKK0RJTUlUUklKRVZJxIYgQUxFS1NBTkRBUgorRElNSVRSSUpFVknEhiBBUlNBCitESU1JVFJJSkVWScSGIEFSU0VOCitESU1JVFJJSkVWScSGLUJFU0VSTUVOSkkgS0FUSUNBCitESU1JVFJJSkVWScSGIEJPUklWT0pFCitESU1JVFJJSkVWScSGIEJSQU5JU0xBVkEKK0RJTUlUUklKRVZJxIYgQlJBTklTTEFWCitESU1JVFJJSkVWScSGIEJSQU5JU0xBVgorRElNSVRSSUpFVknEhiBCUkFOS0EKK0RJTUlUUklKRVZJxIYgQlJaT01JUgorRElNSVRSSUpFVknEhiBEQU5JQ0EKK0RJTUlUUklKRVZJxIYgREFOSUNBCitESU1JVFJJSkVWScSGIERFU0FOS0EKK0RJTUlUUklKRVZJxIYgRElNSVRSSUpFCitESU1JVFJJSkVWScSGIERPQlJJQ0EKK0RJTUlUUklKRVZJxIYgRFJBR0FOCitESU1JVFJJSkVWScSGIERSQUdBTgorRElNSVRSSUpFVknEhiBEUkFHQU4KK0RJTUlUUklKRVZJxIYgRFJBR0FOCitESU1JVFJJSkVWScSGIERVxaBBTiBEUgorRElNSVRSSUpFVknEhiBEVcWgQU5LQQorRElNSVRSSUpFVknEhiBEVcWgQU4KK0RJTUlUUklKRVZJxIYgRVLFvUVCRVQKK0RJTUlUUklKRVZJxIYgRVRFTEEKK0RJTUlUUklKRVZJxIYgRVZJQ0EKK0RJTUlUUklKRVZJxIYgSkVMRU5BCitESU1JVFJJSkVWScSGIEpFTEVOQQorRElNSVRSSUpFVknEhiBKRUxJQ0EKK0RJTUlUUklKRVZJxIYgSk9WQU4KK0RJTUlUUklKRVZJxIYgSk9WQU4KK0RJTUlUUklKRVZJxIYgSk9WQU4KK0RJTUlUUklKRVZJxIYgTEFaQVIKK0RJTUlUUklKRVZJxIYgTEpVQklDQSBEUgorRElNSVRSSUpFVknEhiBMSlVCSUNBCitESU1JVFJJSkVWScSGIExKVUJJQ0EKK0RJTUlUUklKRVZJxIYgTEpVQklOS08KK0RJTUlUUklKRVZJxIYgTUFSR0lUQQorRElNSVRSSUpFVknEhiBNQVJJQ0EKK0RJTUlUUklKRVZJxIYgTUlMQU4gTVIKK0RJTUlUUklKRVZJxIYgTUlMQU4KK0RJTUlUUklKRVZJxIYgTUlMQU4KK0RJTUlUUklKRVZJxIYgTUlMQU4KK0RJTUlUUklKRVZJxIYgTUlMQQorRElNSVRSSUpFVknEhiBNSUxJVk9KCitESU1JVFJJSkVWScSGIE1JTEtBCitESU1JVFJJSkVWScSGIE1JTE9KRQorRElNSVRSSUpFVknEhiBNSUxPVkFOCitESU1JVFJJSkVWScSGIE1JTFVUSU4KK0RJTUlUUklKRVZJxIYgTUlPRFJBRworRElNSVRSSUpFVknEhiBNSU9EUkFHCitESU1JVFJJSkVWScSGIE1JT0RSQUcKK0RJTUlUUklKRVZJxIYgTUlSxIxFCitESU1JVFJJSkVWScSGIE1JUk9TTEFWS0EKK0RJTUlUUklKRVZJxIYgTUlST1NMQVYKK0RJTUlUUklKRVZJxIYgTUxBREVOCitESU1JVFJJSkVWScSGIE5BREEKK0RJTUlUUklKRVZJxIYgTkFEQQorRElNSVRSSUpFVknEhiBORU5BRAorRElNSVRSSUpFVknEhiBORVZFTktBCitESU1JVFJJSkVWScSGIFBBSkEKK0RJTUlUUklKRVZJxIYgUEVUQVIKK0RJTUlUUklKRVZJxIYgUEVUQVIKK0RJTUlUUklKRVZJxIYgUEVUQVIKK0RJTUlUUklKRVZJxIYgUFJFRFJBRworRElNSVRSSUpFVknEhiBQUkVEUkFHCitESU1JVFJJSkVWScSGIFJBRElTQVYKK0RJTUlUUklKRVZJxIYgUkFESVZPSkUKK0RJTUlUUklKRVZJxIYgUkFESVZPSgorRElNSVRSSUpFVknEhiBSQVRLTworRElNSVRSSUpFVknEhiBTQcWgQQorRElNSVRSSUpFVknEhiBTQVZBCitESU1JVFJJSkVWScSGIFNMQVZLTworRElNSVRSSUpFVknEhiBTTEFWT0xKVUIKK0RJTUlUUklKRVZJxIYgU1LEkEEKK0RJTUlUUklKRVZJxIYgU1RBTktPCitESU1JVFJJSkVWScSGIFNUQU5PSkUKK0RJTUlUUklKRVZJxIYgU1RFVkFOCitESU1JVFJJSkVWScSGIFNUT0pBRElOCitESU1JVFJJSkVWScSGIFNUT0pBRElOCitESU1JVFJJSkVWScSGIFNWRVRPTUlSCitESU1JVFJJSkVWScSGIFRJSE9NSVIKK0RJTUlUUklKRVZJxIYgVE9NSVNMQVYKK0RJTUlUUklKRVZJxIYgVkVSQQorRElNSVRSSUpFVknEhiBWSVRPTUlSCitESU1JVFJJSkVWScSGIFZVSklDQQorRElNSVRSSUpFVknEhiBWVUtPU0FWQQorRElNSVRSSUpFVknEhiBaTEFUSUJPUgorRElNSVRSSUpFVknEhiBaT1JBTgorRElNSVRSSUpFVknEhiBaT1JBTgorRElNSVRSSUpFVknEhiBaT1JJQ0EKK0RJTUlUUklKRVZJxIYgWk9SSUNBCitESU1JVFJJSkVWU0tJIE1JSEFKTE8KK0RJTUlUUk9WIMW9SVZPSklOCitESU1JVFJPViDEkE9LQQorRElNSVRST1YgxJBPUsSQRQorRElNSVRST1YgQk/FoEtPCitESU1JVFJPViBCT1JPCitESU1JVFJPViBCUkFOSVNMQVYKK0RJTUlUUk9WIEJSQU5LTworRElNSVRST1YgRElNSVRSSUpFCitESU1JVFJPViBEVcWgQU4KK0RJTUlUUk9WIERVxaBBTgorRElNSVRST1YgRUZUSU0KK0RJTUlUUk9WIEpPQ0EKK0RJTUlUUk9WIFBFVEFSCitESU1JVFJPViBSQURJU0xBVgorRElNSVRST1YgU0xBVktPCitESU1JVFJPViBTT1NBCitESU1JVFJPViBTVEVWQU4KK0RJTUlUUk9WIFNWRVRJU0xBVgorRElNSVRST1YgVVJPxaAKK0RJTUlUUk9WIFZFTEnEjEtPCitESU1JVFJPViBaTEFUQQorRElNSVRST1ZTS0kgSUxPTkEKK0RJTUlUUk9WU0tJIExKVUJPTUlSCitESU1JVFJPVlNLSSBMSlVCT01JUgorRElNSVRST1ZTS0kgUEFWTEUKK0RJTUtPVknEhiBCT1JJU0xBVgorRElNS09WU0tJIEdPUkFOCitESU1LT1ZTS0kgTEpVQknFoEEKK0RJTU9TS0kgTklLT0xBCitESU1PViBESU1JVEFSCitESU1PViBUT0RPUgorRElNT1ZBIEtBVElDQQorRElNT1ZJxIYgU09GSUpBCitESU1PVlNLSSDEkEVSTworRElNT1ZTS0kgQU5EUklKQQorRElNT1ZTS0kgTEpVQklDQQorRElNT1ZTS0kgTUFSSU5BCitESU1PVlNLSSBNSUxJQ0EKK0RJTU9WU0tJIFRSQUrEjEUKK0RJTsSMScSGIEtBVElDQQorRElOxIxJxIYgTUlMT1JBRAorRElOxIxJxIYgU0xPQk9EQU4KK0RJTsSMScSGIFNSRVRFTktBCitESU7EjElLIE1BUklKQQorRElOScSGIMSMRURPTUlSCitESU5JxIYgQk/FvUlEQVIKK0RJTknEhiBCT1NBCitESU5JxIYgSk/FoEtBCitESU5JxIYtS05Fxb1FVknEhiBEVcWgQU5LQQorRElOScSGIE1JTE9SQUQKK0RJTknEhiBSQURPTUlSCitESU5JxIYgVkFMRVJJSkEKK0RJTknEhiBWTEFERVRBCitESU5JxIYgWlZPTklNSVIKK0RJTkpBxaBLSSDFvUFSS08KK0RJTkpBxaBLSSBJUklOQQorRElOSkHFoEtJIEtTRU5JSkEKK0RJTkpBxaBLSSBMRVBBCitESU5KQcWgS0kgTkVTVE9SCitESU5KQcWgS0kgU1RBTklNSVIKK0RJTkpBxaBLSSBTVEFOS0EKK0RJTkpBxaBLSSBTVEVWQU4KK0RJTkpBxaBLSSBUUklWQQorRElOSkHFoEtJIFpEUkFWS08KK0RJTkpFxaAgSk9TSVAKK0RJTlVMT1ZJxIYgUkFET1NMQVYKK0RJT8WgSSBKT1NJUAorRElSTkVSIEFSQU5LQQorRElTScSGIExKVUJJxaBBCitESVNJxIYgVkxBRElNSVIKK0RJVFJJSCBBTkEKK0RJVFJJSCBST0JFUlQKK0RJVFJJSCBWTEFESU1JUgorRElWScSGIE1JTEVOS08KK0RJVklKQcSMS0kgRFJBR0FOCitESVZJSkHEjEtJIERSQUdBTgorRElWSUxEIMSQT1LEkEUKK0RJVklMRCBBTkRSSUpBCitESVZJTEQgSkVMSVNBVkVUQQorRElWSUxEIFJBRE9TTEFWCitESVZKQUsgRFXFoEFOCitESVZKQUsgRFXFoEFOCitESVZKQUsgRFXFoEFOCitESVZKQUsgTUFSSU5LTworRElWSkFLIE1JTEFOCitESVZKQUsgTUlMQU4KK0RJVkpBSyBNSUxBTgorRElWSkFLIFNBVkEKK0RJVkpBS09WScSGIMSQT1LEkEUKK0RJVkpBS09WScSGIEJSQU5LTworRElWSkFLT1ZJxIYgR0FWUkEKK0RJVkpBS09WScSGIEpFTElDQQorRElWSkFLT1ZJxIYgTEpVQklDQQorRElWSkFLT1ZJxIYgTUFSSUpBCitESVZKQUtPVknEhi1SQURJxIxFVkEgRE9SSU5BCitESVZKQUtPVknEhiBTVEVWQU4KK0RJVkpBS09WScSGIFRPRE9SCitESVZKQUtPVknEhiBWTEFEQQorRElWTEpBSyBBTEVLU0FOREFSCitESVZMSkFLIEFOR0VMSU5BCitESVZMSkFLIEJPxaBLTworRElWTEpBSyBERVNJTUlSCitESVZMSkFLIERPQlJJVk9KCitESVZMSkFLIERSQUdPCitESVZMSkFLIE1JUk9TTEFWCitESVZMSkFLIE1JUk9TTEFWCitESVZMSkFLIFJBVEtPCitESVZMSkFLIFpEUkFWS08KK0RJVkxKQUtPVknEhiBEUkFHVVRJTgorRElWTEpBS09WScSGIElWQU5LQQorRElWTEpBTiBORU5BRAorRElWTknEhiDFvUlWQU4KK0RJVk5JxIYgxJBPUsSQRQorRElWTknEhiBKRUxLQQorRElWTknEhiBNSVJKQU5BCitESVZOScSGIFBBSkEKK0RJVk5JxIYgU0xPQk9EQU4KK0RJVk5JxIYgU09OSkEKK0RJVk5JxIYgU1ZFVE9aQVIKK0RJVk9WScSGIFJBRE9WQU4KK0RJWkRBUiBBTsSQQQorRElaREFSIEFOS0lDQQorRElaREFSIElWSUNBCitESVpEQVIgSk9TSVAKK0RJWkRBUiBKVVJFCitESVpEQVIgSlVSTworRElaREFSIE1BUklKQQorRElaREFSIE1BUktPCitESVpEQVIgUEFWTworRElaREFSIFNBUkFGSU5BCitESVpEQVIgVkxBRE8KK0RJWkRBUkVWScSGIFJBRE9MSlVCCitETFVISSBKT1NJUAorRE1JVFJBxaBJTk9WScSGIFJBREUKK0RNSVRSSUpFViBMSURJSkEKK0RNSVRST1ZJxIYgREFOSUNBCitETUlUUk9WScSGIExKSUxKQU5BCitETUlUUk9WScSGIE1JTE/FoAorRE1JVFJPVknEhiBNSVJKQU5BCitETUlUUk9WScSGIFJBREVOS08gTEVLQVIKK0RNSVRST1ZJxIYgU1RFVkFOCitETUlUUk9WScSGIFNURVZBTgorRE/FoEVNT1ZJxIYgUFJFRFJBRworRE/FoEVOIMW9SVZBRElOCitET8WgRU4gQklMSkFOQQorRE/FoEVOIEJSQU5LTworRE/FoEVOIERFU0FOS0EKK0RPxaBFTiBEUkFHQU4KK0RPxaBFTiBEVcWgQU4KK0RPxaBFTiBEVcWgQU4KK0RPxaBFTiBEVcWgQU4KK0RPxaBFTiBEVUJSQVZLQQorRE/FoEVOIEhSSVNUSU5BIERSCitET8WgRU4gSUxJSkEKK0RPxaBFTiBJVkFOCitET8WgRU4gSVZBTgorRE/FoEVOIEpFTEVOQQorRE/FoEVOIE1JTEFOCitET8WgRU4gTUlMQU4KK0RPxaBFTiBNSUxFCitET8WgRU4gTUlMT8WgCitET8WgRU4gUkFET1NMQVYKK0RPxaBFTiBSQURPU0xBVgorRE/FoEVOIFJBVEtPCitET8WgRU4gU1ZFVExBTkEKK0RPxaBFTiBWT0pJTgorRE/FoEVOT1ZJxIYgxIxFRE9NSVIKK0RPxaBFTk9WScSGIE1JTElWT0pFCitET8WgRU5PVknEhiBNSVJPU0xBVkEKK0RPxaBFTk9WScSGIFZBU0lMSktBCitET8WgRU5PVknEhiBWT0pJTgorRE/FoEnEhiBHSVpFTEEKK0RPxaBMScSGIE1JTElDQQorRE/FoExJxIYgTkVOQUQKK0RPxaBMScSGIFJBRE9TTEFWCitET8WgTE9WIEtSU1RPCitET8WgTE9WIFNMQVZJQ0EKK0RPxb1JxIYgTEpJTEpBTkEKK0RPxb1JxIYgTUFSSUNBCitET8W9ScSGIFNURVZBTgorRE/FvUnEhiBTVEVWQU4KK0RPxb1JxIYgU1ZFVElTTEFWCitET8W9ScSGIFZBU0lMSktBCitET0JBTiBNQVLEjEVMCitET0JBTk9WQcSMS0kgxIxFRE9NSVIKK0RPQkFOT1ZBxIxLSSBBTEVLU0FOREFSCitET0JBTk9WQcSMS0kgQk9SSVNMQVYKK0RPQkFOT1ZBxIxLSSBCUkFOSVNMQVYKK0RPQkFOT1ZBxIxLSSBET0JSSU5LQQorRE9CQU5PVkHEjEtJIERVxaBBTktBCitET0JBTk9WQcSMS0kgRFXFoEFOS0EKK0RPQkFOT1ZBxIxLSSBEVcWgQU4KK0RPQkFOT1ZBxIxLSSBJUkVOQQorRE9CQU5PVkHEjEtJIEpFTEtBCitET0JBTk9WQcSMS0kgSlVMS0EKK0RPQkFOT1ZBxIxLSSBKVUxLSUNBCitET0JBTk9WQcSMS0kgTUFLU0lNCitET0JBTk9WQcSMS0kgTUlMQU4KK0RPQkFOT1ZBxIxLSSBNSUxBTgorRE9CQU5PVkHEjEtJIE1JUkpBTkEKK0RPQkFOT1ZBxIxLSSBNSVJLTworRE9CQU5PVkHEjEtJIFBFVEFSCitET0JBTk9WQcSMS0kgUkFET01JUgorRE9CQU5PVkHEjEtJIFNBVkEKK0RPQkFOT1ZBxIxLSSBTQVZBCitET0JBTk9WQcSMS0ktU0FWScSGIFRJTktBCitET0JBTk9WQcSMS0kgU1RFVkFOCitET0JBTk9WQcSMS0kgVElOS0EKK0RPQkFOT1ZBxIxLSSBaT1JJQ0EKK0RPQkFOT1ZJxIYgU09GSUpBCitET0JFxaAgSk9WQU4KK0RPQkkgSlVMSUpBTkEKK0RPQknEhiBCUkFOSVNMQVYKK0RPQknEhiBQRVRBUgorRE9CTyBJTEXFoAorRE9CTyBKT8W9RUYKK0RPQk8gSk/FvUVGCitET0JPxaAgSk/FvUVGCitET0JPxaBJIMWgQU5ET1IKK0RPQk/FoEkgxJBFUsSQCitET0JPxaBJIEVSxb1FQkVUCitET0JPxaBJIEpBTk/FoAorRE9CT8WgSSBMQVNMTworRE9CT8WgSSBNQUdEQUxFTkEKK0RPQk/FoEkgTUFSR0lUQQorRE9CT8WgSSBQQUwKK0RPQk9LQUkgTUlIQUpMTworRE9CT1ZJxIxFSyBGUkFOQworRE9CUkEgSVZBTgorRE9CUkHFoCBNSUxLQQorRE9CUkFOIFNMQVZLTworRE9CUkFOScSGIFJBRE9WQU4KK0RPQlJBTknEhiBWSURPU0FWQQorRE9CUkUgQk/FvUEKK0RPQlJFTk9WIERVxaBBTiBESVBMIElORworRE9CUkVOT1YgR1JFVEEKK0RPQlJFTk9WIEpFTElTQVZFVEEKK0RPQlJFTk9WIEpFTElTQVZFVEEKK0RPQlJFTk9WIE5JS09MQQorRE9CUkVOT1YgU0FORFJBCitET0JSRU5PViBWT0pJTgorRE9CUkVUScSGIE1BUklDQQorRE9CUknEjEtJIERVxaBBTgorRE9CUknEjEtJIE1BUklKQQorRE9CUknEhiDFvUlWS08KK0RPQlJJxIYgxJBPUsSQRQorRE9CUknEhiBCT8WgS08KK0RPQlJJxIYgQlJBTklTTEFWCitET0JSScSGIEVSxb1FQkVUCitET0JSScSGIEdPSktPCitET0JSScSGIEpPVkFOCitET0JSScSGIEtPU1RBCitET0JSScSGIExKVUJJQ0EKK0RPQlJJxIYgTUlMQURJTgorRE9CUknEhiBNSUxBTgorRE9CUknEhiBNSUxBTgorRE9CUknEhiBORUdPU0FWQQorRE9CUknEhiBSQURJU0xBVgorRE9CUknEhiBSQURJVk9KCitET0JSScSGIFNMT0JPREFOCitET0JSScSGIFNURVZBTgorRE9CUknEhiBVR0xKRcWgQQorRE9CUknEhiBWRVJPTklLQQorRE9CUknEhiBWRVNOQQorRE9CUknEhiBaRFJBVktPCitET0JSSUpFVknEhiBEVcWgQU4KK0RPQlJJSkVWScSGIFBFVEFSCitET0JSSUpFVknEhiBTTE9CT0RBTktBCitET0JSSUxPVknEhiBSQUpLTworRE9CUklMT1ZJxIYgUkFKS08KK0RPQlJJTE9WScSGIFNJTUEKK0RPQlJJTiBERcW9RQorRE9CUklOIE5JS09MQQorRE9CUklOIE9MR0EKK0RPQlJJTknEhiBEQVJJTktBCitET0JSSVZPSkVWScSGIERVxaBBTgorRE9CUklWT0pFVknEhiBTVkVUTEFOQQorRE9CUk5KQUMgU1RPSkFOS0EKK0RPQlJPREVMIEZSQU5KTworRE9CUk9ET0xTS0kgSkVMRU5BCitET0JST0RPTFNLSSBKVUxLQQorRE9CUk9ET0xTS0kgVlVLSUNBCitET0JST0tFUyBNSUxFTkEKK0RPQlJPTUlST1YgQUxFS1NBTkRBUgorRE9CUk9NSVJPViBBTEVLU0FOREFSCitET0JST01JUk9WIERVxaBBTgorRE9CUk9NSVJPViBFVUZJTUlKQQorRE9CUk9NSVJPViBOQURBCitET0JST01JUk9WIFBFVEFSCitET0JST01JUk9WIFZJVE9NSVIKK0RPQlJPTUlST1YgVkxBRElNSVIKK0RPQlJPTUlST1YgVk9KSVNMQVYKK0RPQlJPTUlST1ZJxIYgUEFWTEUKK0RPQlJPU0FWTEpFViBMQVpBUgorRE9CUk9TQVZMSkVWIExBWkFSCitET0JST1NBVkxKRVYgTUlMQU4KK0RPQlJPU0FWTEpFViBNSUxBTgorRE9CUk9TQVZMSkVWIE1JTEFOCitET0JST1NBVkxKRVYgTUlMT1ZBTgorRE9CUk9TQVZMSkVWIE1JUkEKK0RPQlJPU0FWTEpFViBQRVRBUgorRE9CUk9TQVZMSkVWIFJBREEKK0RPQlJPU0FWTEpFViBSQU5LTworRE9CUk9TQVZMSkVWIFNBVkEKK0RPQlJPU0FWTEpFViBTVkVUT1pBUgorRE9CUk9TQVZMSkVWScSGIERSRU5LQQorRE9CUk9TQVZMSkVWScSGIFNMQVZLTworRE9CUk9TQVZMSkVWScSGIFZBU0EgTk9WSU5BUgorRE9CUk9TQVZMSkVWScSGIFZBU0lMSUpFCitET0JST1NBVkxKRVZJxIYgVkFTSUxJSkUKK0RPQlJPVEEgQklTRVJLQQorRE9CUk9UQSBEQU1JUgorRE9CUk9WScSGIEFMRUtTQU5EUkEKK0RPQlJPVknEhiBEQU1KQU5LQQorRE9CUk9WScSGIExKVUJPTUlSCitET0RFUk9WScSGIE1JTE9TQVYKK0RPREVST1ZJxIYgUkFESVZPSgorRE9EScSGIElWQU4KK0RPREnEhiBKRUxFTkEKK0RPREnEhiBNSUxJVk9KCitET0RJxIYgTUlPRFJBRworRE9EScSGIE1JT0RSQUcKK0RPREnEhiBTQVZBCitET0RJxIYgU0xPQk9EQU4KK0RPREnEhiBTVEFOT0pFCitET0RJxIYgU1RPSkFOCitET0RJxIYgVkVSQQorRE9ESUsgQkFSVE9MCitET0RJSyBTVEVWQU4KK0RPRExFSyBWTEFESU1JUgorRE9ET8WgIExBWkFSCitET0dBTkTFvUnEhiBET0JSSVZPSkUKK0RPSsSMSU5PVknEhiDEkFVKQQorRE9KxIxJTk9WScSGIMSQVVLEkElDQQorRE9KxIxJTk9WScSGIEJMQUdPSkUKK0RPSsSMSU5PVknEhiBCT8W9SURBUgorRE9KxIxJTk9WScSGIERVxaBBTgorRE9KxIxJTk9WScSGIEpPU0lGCitET0rEjElOT1ZJxIYgTUlIQUpMTworRE9KxIxJTk9WScSGIE1JUk9TTEFWIERSCitET0rEjElOT1ZJxIYgUkFET1NMQVYKK0RPSsSMSU5PVknEhiBWTEFEQQorRE9KxIxJTk9WU0tJIFZBTsSMQQorRE9KREVSIElWTworRE9KREVSIEpBS09WCitET0pJxIYgTEFaQVIKK0RPSktJxIYgQk/FvUlEQVIKK0RPSktJxIYgSlVMS0lDQQorRE9KS0nEhiBLU0VOSUpBCitET0pLScSGIE1BUklKQQorRE9KS0nEhiBNSUxPUkFECitET0pLScSGIE1JTE9SQUQKK0RPSktJxIYgTUxBREVOCitET0pLScSGIE1MQURFTgorRE9KS0nEhiBQQUpBCitET0pLScSGIFBFVEFSIERSCitET0pLScSGIFBFVEFSCitET0pLScSGIFJBSktPCitET0pLScSGIFJBSktPCitET0pLScSGIFNMQVZLTworRE9KS0nEhiBWSkVLT1NMQVYKK0RPS0xFQU4gQURBTQorRE9LTUFOT1ZJxIYgQk9SSVZPSgorRE9LTUFOT1ZJxIYgREVKQU4KK0RPS01BTk9WScSGIE1BUklKQQorRE9LTUFOT1ZJxIYgTUlMSUNBCitET0tNQU5PVknEhiBOQURBCitET0tNQU5PVknEhiBSQURJVk9KCitET0tOScSGIFZFTEpLTworRE9LT8WgScSGIE1BUklKQQorRE9MQcWgIE1JTE9WQU4KK0RPTEVORUMgRkxPUklKQU4KK0RPTEdBIE1JTEVOQQorRE9MSU5BSiDEkFVSTworRE9MSU5BSiBKQVJPU0xBVkEKK0RPTElOQVIgTEpVQklDQQorRE9MSU5HQSBNQVJJT1JBCitET0xJTkdBIE5JS09MQUpFCitET0xPxaAgRlJBTkpBCitET0xPVsSMQUsgS0FUSUNBCitET0xPVkFDIEFOS0lDQQorRE9MT1ZBQyBCSVNFUktBCitET0xPVkFDIERSQUdJQ0EKK0RPTE9WQUMgSk9WQU4KK0RPTE9WQUMgTEFaQVIKK0RPTE9WQUMgTEFaQVIKK0RPTE9WQUMgTUFSSUpBCitET0xPVkFDIE1JTElDQQorRE9MT1ZBQyBNSUxPxaAKK0RPTE9WQUMgUkFESVZPSgorRE9MT1ZBQyBSQURPU0xBVgorRE9MT1ZBQyBSQURPU0xBVgorRE9MT1ZBQyBTTEFWS08KK0RPTE9WQUMgU0xBVktPCitET0xPVkFDIFNMT0JPREFOCitET0xPVkFDIFZFTElNSVIKK0RPTE9WQUMgWk9SS0EKK0RPTUFTVE9WScSGIERBTklDQQorRE9NQVpFVCBOSUtPTEEKK0RPTUFaRVQgWk9SSUNBCitET01BWkVUT1YgVkVMSU1JUgorRE9NQVpFVE9WScSGIMSMRURPTUlSCitET01BWkVUT1ZJxIYgTUlSSkFOQQorRE9NQVpFVE9WScSGIE1JUkpBTkEKK0RPTUJJIExBU0xPCitET01CSSBSQURPSktBCitET01CSSBTTUlMSktBCitET01JTknEhiBBTkEKK0RPTUlOScSGIE5JS09MQQorRE9NT05KSSBNQVJUSU4KK0RPTU9OS0/FoCBFVkEKK0RPTU9OS0/FoCBWSUxNT8WgCitET01PTktPUyBJxaBUVkFOCitET01PVknEhiBNSUxBTgorRE9OxIxFViBUT0RFCitET07EjEnEhiBOQURBCitET05BVCBEUkFHVVRJTgorRE9OQVQgU0FWRVRBCitET05EVVIgxb1JVktPCitET05EVVIgREFOSUNBCitET05EVVIgREFSSU5LQQorRE9ORFVSIE1JTElDQQorRE9ORFVSIFNMQVZLTworRE9ORFVSIFNUQU5LTworRE9ORFVSIFpEUkFWS08KK0RPTkVWIFRPRE9SCitET05FVlNLSSBKRUxFTkEKK0RPTkVWU0tJIEtSSVNUSU5BCitET05JxIYgxb1JVk9KSU4KK0RPTktPUiBExb1FTVMKK0RPTlNLT1YgU0VSR0lKRQorRE9OU0tPVkEgWk9KQSBEUiBMRUtBUgorRE9QVcSQIEJPxb1JREFSCitET1BVxJAgQlJBTktPCitET1BVxJAgRFVCUkFWS0EKK0RPUFXEkCBHT1JBTgorRE9QVcSQIE1BUklKQQorRE9QVcSQIE1JTEFOIERSCitET1BVxJAgTUlST1NMQVZBCitET1BVxJBBIMW9SVZLTworRE9QVcSQQSBEQVJBCitET1BVxJBBIERSQUdPTUlSCitET1BVxJBBIFNBVkEKK0RPUFXEkEEgVkxBRElNSVIKK0RPUsSMScSGIEFMT0paQQorRE9SxIxJxIYtQklLScSGIE9MR0lDQQorRE9SxIxJxIYgQk/FvU8KK0RPUsSMScSGIEtMRU1FTlQKK0RPUsSMScSGIE1BUkpBTgorRE9SScSGIMW9QVJLTworRE9SScSGIEJJTEpBTkEKK0RPUknEhiBCSUxKQU5BCitET1JJxIYgQk9SSVNMQVYKK0RPUknEhiBGUkFOSkEKK0RPUknEhiBJTElKQQorRE9SScSGIElSTUEKK0RPUknEhiBKT1NJUAorRE9SScSGIFBFVEFSCitET1JJxIYgU1RFVkFOCitET1JJxIYgVkVTRUxJTgorRE9SS08gU09GSUpBCitET1JNQU4gTEFTTE8KK0RPUk8gR0VaQSBEUgorRE9ST8WgRVYgxJBPUsSQRQorRE9ST8WgS0kgxJBPUsSQRQorRE9ST8WgS0kgQlJBTktPCitET1JPxaBLSSBERVNBTktBCitET1JPxaBLSSBKT1ZBTiBEUgorRE9ST8WgS0kgTEpJTEpBTkEKK0RPUk/FoEtJIE1BUklKQQorRE9ST8WgS0kgTUlMQU4KK0RPUk/FoEtJIE1JTEEKK0RPUk/FoEtJIE1JUkpBTkEKK0RPUk/FoEtJIE5JS09MQQorRE9ST8WgS0kgU0lNQQorRE9ST8WgS0kgVklET1NBVkEKK0RPUk/FoEtJIFZVSkFESU4KK0RPUk9DS0kgTUFIQUwKK0RPUk9HSEFaSSBJUklOQQorRE9ST0dJIMWgQU5ET1IKK0RPUk9OSlNLSSBEVcWgQU4KK0RPUk9OSlNLSSBLQVRBUklOQQorRE9ST1NMT1ZBxIxLSSDEkFVSQQorRE9ST1NMT1ZBxIxLSSBBTEVLU0FOREFSCitET1JPU0xPVkHEjEtJIEFOSUNBCitET1JPU0xPVkHEjEtJIERBTklDQQorRE9ST1NMT1ZBxIxLSSBHUlVKQQorRE9ST1NMT1ZBxIxLSSBKRUxFTkEKK0RPUk9TTE9WQcSMS0kgS1NFTklKQQorRE9ST1NMT1ZBxIxLSSBNQVJHSVRBCitET1JPU0xPVkHEjEtJIE1BUklOQQorRE9ST1NMT1ZBxIxLSSBNQVJKQU5BCitET1JPU0xPVkHEjEtJIE1JUk9TTEFWCitET1JPU0xPVkHEjEtJIE5JS09MQQorRE9ST1NMT1ZBxIxLSSBSQURFCitET1JPU0xPVkHEjEtJIFNBVkVUQQorRE9ST1NMT1ZBxIxLSSBTVEVWQU5LQQorRE9ST1NMT1ZBxIxLSSBWVUpBCitET1JPU0xPVkHEjEtJIFZVS0EKK0RPUk9TTE9WQUMgQlJBTklTTEFWQQorRE9ST1NMT1ZBQyBMQVpBUgorRE9ST1NMT1ZBQyBNQVJJSkEKK0RPUk9TTE9WQUMgTUlMQU5BCitET1JPU0xPVkFDIE1JUk9TTEFWCitET1JPU0xPVkFDIFBFVEFSCitET1JPU0xPVkFDIFpPUkFOCitET1JPVEnEhiDEkE9SxJBFCitET1JPVEnEhiDEkE9SxJBFCitET1JPVEnEhiBHSVpFTEEKK0RPUk9UScSGIEdPUkRBTgorRE9ST1RJxIYtR1VURcWgQSBMRU9OQQorRE9ST1RJxIYgSUxBIE1SIFBST0YKK0RPUk9UScSGIE1BUklKQQorRE9ST1RJxIYgU1RFVkFOCitET1JPVEtBIERSQUdBTgorRE9ST1RLQSBNSUxPxaAKK0RPU1RBTiBBTkEKK0RPU1RBTiBBUlBBRAorRE9TVEFOIERBUklOS0EKK0RPU1RBTiBJxaBUVkFOCitET1NUQU4gSk/FvUVGCitET1NUQU4gTEFESVNMQVYKK0RPU1RBTiBQRVRBUgorRE9TVEFOIFNURVZBTgorRE9TVEFOIFRJQk9SCitET1NUQU5JxIYgRFJBR0lDQQorRE9TVEFOScSGIFJBRE1JTE8KK0RPU1RBTknEhiBWT0lTTEFWCitET1NUQU5KIEpPU0lQCitET1NUQU5KIFJPWkFMSUpBCitET1NUScSGIFNMQVZLTworRE9TVEnEhiBTT0ZJSkEKK0RPVExJxIYgxb1JVktPCitET1RMScSGIEJPxaBLTworRE9UTEnEhiBCT1JJU0xBVgorRE9UTEnEhiBET0JSSUxBCitET1RMScSGIERVxaBBTgorRE9UTEnEhiBMQVpBUgorRE9UTEnEhiBMQVpBUgorRE9UTEnEhiBMVUtBCitET1RMScSGIFNBVkEKK0RPVExJxIYgU09GSUpBCitET1RMScSGIFZBU0EKK0RPVE9WIERSQUdPCitET1ZBVCBQQVZMRSBEUgorRE9WQVQgVkxBRElNSVIKK0RPVkFUT1YgQURBTQorRE9WRURFTiBCT1JJU0xBVgorRE9WR0FOIEpPU0lQCitET1ZJSkFST1YgTUlMT8WgCitET1ZJSkFST1YgUkFESVZPSgorRE9WSUpBUlNLSSBCUkFOS0EKK0RPVklKQVJTS0kgTUlMRU5BCitET1ZJSkFSU0tJIFNUQU5JTUlSCitET1ZOSUtPVknEhiBMQVpBUgorRE9aRVQgxJBPUsSQRQorRE9aRVQgQk/FvU8KK0RPWkVUIERSQUdJQ0EKK0RPWkVUIElMSUpBCitET1pFVCBKQVNOQQorRE9aRVQgSlVMS0lDQQorRE9aRVQgTEpVQklDQQorRE9aRVQgTEpVQk9NSVIKK0RPWkVUIE1JSEFKTE8KK0RPWkVUIE1JTEFOCitET1pFVCBNSUxPVkFOCitET1pFVCBOSUtPTEEKK0RPWkVUIFJBREUKK0RPWkVUIFJBRE1JTEEKK0RPWkVUIFJBRE9TTEFWS0EKK0RPWkVUIFNBVktBCitET1pFVCBTVEFOS08KK0RSxIxBIEFOQQorRFLEjEEgQlJBTktPCitEUsSMQSBEUkFHSUNBCitEUsSMQSBKQU5LTworRFLEjEEgTUlMQU4KK0RSxIxBIFJBVEtPCitEUsSMQSBTTEFWS08KK0RSxIxBIFNURVZBTgorRFLEjEEtVVJHRU4gTUFSSUpBCitEUsSMQSBWTEFUS08KK0RSxIxFTEnEhiBET0JSSVNBVgorRFLEjEVMScSGIE1JUkpBTkEKK0RSxb1BSknEhiBESU1JVFJJSkUgUFJPRkVTT1IKK0RSxb1JxIYgSUxJSkEKK0RSQcSMQSDFvUlWS08KK0RSQcSMQSDEkE9SxJBFCitEUkHEjEEgQUNBCitEUkHEjEEgRFVCUkFWS0EKK0RSQcSMQSBNSUxFCitEUkHEjEEgUEVUQVIgRFIKK0RSQcSMQSBQRVRBUgorRFJBxIxBIFNQQVNFTktBCitEUkHEjEEgVE9NTyBEUgorRFJBxIxJTiBLT1NUQQorRFJBxaBJxIYgTkFUQUxJSkEKK0RSQcWgS08gSkVMS0EKK0RSQcWgS08gTUlMT1ZBTgorRFJBxaBLTyBTTE9CT0RBTgorRFJBxaBLT1ZJxIYgQlJBTktPIERJUEwgT0VDCitEUkHFoEtPVknEhiBEUkFHQQorRFJBxaBLT1ZJxIYgRFXFoEFOCitEUkHFoEtPVknEhiBMSlVCT01JUgorRFJBxaBLT1ZJxIYgTUlIQUpMTworRFJBxaBLT1ZJxIYgTUlMT01JUgorRFJBxaBLT1ZJxIYgTUlMT1JBRAorRFJBxaBLT1ZJxIYgTkVOQUQKK0RSQcWgS09WScSGIFNBVk8KK0RSQcWgS09WScSGIFNMT0JPREFOS0EKK0RSQcWgS09WScSGIFNMT0JPREFOCitEUkHFoEtPVknEhiBTUkVURU4KK0RSQcW9RVRBIE1JTEVOS08KK0RSQcW9RVRBIFNURVZBTgorRFJBxb1FVElOIERVxaBBTgorRFJBxb1FVElOIE1MQURFTgorRFJBxb1JxIYgxb1BUktPCitEUkHFvUnEhiDEkE9SxJBFCitEUkHFvUnEhiDEkE9SxJBFCitEUkHFvUnEhiBBTEVLU0FOREFSCitEUkHFvUnEhiBCT0dEQU4KK0RSQcW9ScSGIEJVRE8KK0RSQcW9ScSGIERPQlJJVk9KCitEUkHFvUnEhiBEUkFHT0xKVUIKK0RSQcW9ScSGIERVxaBBTgorRFJBxb1JxIYgRFXFoEFOCitEUkHFvUnEhiBFTUlMCitEUkHFvUnEhiBHT1JEQU5BCitEUkHFvUnEhiBJTElKQQorRFJBxb1JxIYgSUxJSkEKK0RSQcW9ScSGIElSRU5BCitEUkHFvUnEhiBKQcWgQQorRFJBxb1JxIYgSkVMSUNBCitEUkHFvUnEhiBKT1ZBTgorRFJBxb1JxIYgSk9WQU4KK0RSQcW9ScSGIEpPVkFOCitEUkHFvUnEhiBKT1ZBTgorRFJBxb1JxIYgSk9WQU4KK0RSQcW9ScSGIEtBVElDQQorRFJBxb1JxIYgS09TVEEKK0RSQcW9ScSGIExBWkFSCitEUkHFvUnEhiBMSlVCSUNBCitEUkHFvUnEhiBNQVJJSkEKK0RSQcW9ScSGIE1JTEFOCitEUkHFvUnEhiBNSUxBTgorRFJBxb1JxIYgTUlMRU5LTworRFJBxb1JxIYgTUlMRU5LTworRFJBxb1JxIYgTUlMSU5LTyBESVBMIElORworRFJBxb1JxIYgTUlMT1JBRAorRFJBxb1JxIYgTUlMT1JBRAorRFJBxb1JxIYgTUlMT1JBRAorRFJBxb1JxIYgTUlSQQorRFJBxb1JxIYgTUlUQQorRFJBxb1JxIYgTkFUQUxJSkEKK0RSQcW9ScSGIE5BVEFMSUpBCitEUkHFvUnEhiBORVNUT1IKK0RSQcW9ScSGIE5FVkVOS0EKK0RSQcW9ScSGIE5JS09MQQorRFJBxb1JxIYgTklLT0xBCitEUkHFvUnEhiBPU1RPSkEKK0RSQcW9ScSGIFBFVEFSCitEUkHFvUnEhiBSQURPVkFOCitEUkHFvUnEhiBSRUxKQQorRFJBxb1JxIYgU0xBVktPCitEUkHFvUnEhiBTT0ZJSkEKK0RSQcW9ScSGIFNUQU5LTworRFJBxb1JxIYgU1RFVkFOCitEUkHFvUnEhiBTVEVWQU4KK0RSQcW9ScSGIFNVWkFOQQorRFJBxb1JxIYgVE9NSVNMQVYKK0RSQcW9ScSGIFZFTElOS0EKK0RSQcW9ScSGIFZFUkEKK0RSQcW9ScSGIFZFUkEKK0RSQcW9ScSGIFZFUkEKK0RSQcW9ScSGIFpMQVRLTworRFJBxb1JTE9WScSGIFNUQU5JxaBBCitEUkHFvUlOIEJPUklTTEFWCitEUkFHQcWgIMSQT1LEkEUKK0RSQUdBxaAgxJBVUk8KK0RSQUdBxaAgQk9SSVNMQVYKK0RSQUdBxaAgQlJBTktPCitEUkFHQcWgIERSQUdPTUlSCitEUkFHQcWgIElWQU4KK0RSQUdBxaAgS0FUSUNBCitEUkFHQcWgLUtPVkHEjCBMSlVCSUNBCitEUkFHQcWgIExFUE9TQVZBCitEUkFHQcWgIExKVUJJQ0EKK0RSQUdBxaAgTEpVQklDQQorRFJBR0HFoCBNQU5PSkxPCitEUkFHQcWgIE1JTEFOCitEUkFHQcWgIE1JTEVOS08KK0RSQUdBxaAgTUlSQQorRFJBR0HFoCBNSVJKQU5BCitEUkFHQcWgIE1PTcSMSUxPCitEUkFHQcWgIFJBRElWT0oKK0RSQUdBxaAgUkFET01JUgorRFJBR0HFoCBTUE9NRU5LQQorRFJBR0HFoCBTVkVUTEFOQQorRFJBR0HFoCBaT1JBTgorRFJBR0HFoEVWIFZMQURJTUlSCitEUkFHQU4gTUlMRU5BCitEUkFHQU5JxIYgRFJBR0EKK0RSQUdBTknEhiBKQU5LTworRFJBR0FOScSGIE1JSEFKTE8KK0RSQUdBTknEhiBNSUxJQ0EgRFIKK0RSQUdBTknEhiBNSUxLQQorRFJBR0FOScSGIE1JUktPCitEUkFHQU5JxIYgTUlST1NMQVYKK0RSQUdBTknEhiBOQURFxb1EQQorRFJBR0FOScSGIFJBTktPCitEUkFHQU5JxIYgVklEQQorRFJBR0FOScSGIFpFS08KK0RSQUdBTk9WIE1JTE/FoAorRFJBR0FOT1YgT0xHQQorRFJBR0FOT1YgU0xPQk9EQU4KK0RSQUdBTk9WIFNUT0pBTktBCitEUkFHQU5PVknEhiBTTEFWS08KK0RSQUdFTEpFVknEhiBEVcWgQU4KK0RSQUdFTEpFVknEhiBKT1ZBTgorRFJBR0nEjEVWScSGIEFEQU0KK0RSQUdJxIxFVknEhiBBTEVLU0FOREFSCitEUkFHScSMRVZJxIYgQk9SSVNMQVYKK0RSQUdJxIxFVknEhiBHT0pLTworRFJBR0nEjEVWScSGIElMSU5LQQorRFJBR0nEjEVWScSGIElWS0EKK0RSQUdJxIxFVknEhiBLUkXFoElNSVIKK0RSQUdJxIxFVknEhiBMQVpBUgorRFJBR0nEjEVWScSGIExKVUJJQ0EKK0RSQUdJxIxFVknEhiBMSlVCT01JUgorRFJBR0nEjEVWScSGIE1JTEpBCitEUkFHScSMRVZJxIYgTUlMT8WgCitEUkFHScSMRVZJxIYgTUlSS08KK0RSQUdJxIxFVknEhiBSQURFTktPCitEUkFHScSMRVZJxIYgU1BBU0EKK0RSQUdJxIxFVknEhiBTUkVURU4KK0RSQUdJxIxFVknEhiBWT0pJTgorRFJBR0nEjEVWScSGIFZPSklTTEFWCitEUkFHScSMRVZJxIYgWk9SQU4KK0RSQUdJxaBBIMW9QVJLTworRFJBR0nFoEnEhiBCT0dEQU4KK0RSQUdJxaBJxIYgQk9SSVNMQVZLQQorRFJBR0nFoEnEhiBKT1ZBTktBCitEUkFHScWgScSGIE5JS09MQQorRFJBR0nFoEnEhiBQRVRBUgorRFJBR0nFoEnEhiBSQURFCitEUkFHScSGIMSMRURPTUlSCitEUkFHScSGIMW9RUxKS08KK0RSQUdJxIYgxJBPUsSQRQorRFJBR0nEhiBBTkEKK0RSQUdJxIYgQlJBTktPCitEUkFHScSGIERVxaBBTgorRFJBR0nEhiBEVcWgQU4KK0RSQUdJxIYgRUxWSVJBCitEUkFHScSGIElMSUpBCitEUkFHScSGIElMSUpBCitEUkFHScSGIElMSUpBCitEUkFHScSGIEpFTEVOQQorRFJBR0nEhiBMSlVCScWgQQorRFJBR0nEhiBMSlVCScWgQQorRFJBR0nEhiBNQVJJSkFOQQorRFJBR0nEhiBNSUxFTktPCitEUkFHScSGIE1JTElWT0pFCitEUkFHScSGIE1JTEtBCitEUkFHScSGIE1JTE9SQUQKK0RSQUdJxIYgTkFEQQorRFJBR0nEhiBORURFTEpLTworRFJBR0nEhiBORVZFTktBCitEUkFHScSGIE5JS09MQQorRFJBR0nEhiBPQlJBRAorRFJBR0nEhiBQQVVMQQorRFJBR0nEhiBQQVZMRQorRFJBR0nEhiBQRVJBCitEUkFHScSGIFBFVEFSCitEUkFHScSGIFBFVEFSCitEUkFHScSGIFJBTktPCitEUkFHScSGIFNBVkEKK0RSQUdJxIYgU0xBVktPCitEUkFHScSGIFNQQVNPSkUKK0RSQUdJxIYgU1RFVkFOCitEUkFHScSGIFNURVZBTgorRFJBR0nEhiBUT01JU0xBVgorRFJBR0nEhiBWRVJBCitEUkFHScSGIFZFU05BCitEUkFHScSGRVZJxIYgQk9HSUNBCitEUkFHScSGRVZJxIYgQk9SSVNMQVYKK0RSQUdJxIZFVknEhiBCUkFOSVNMQVYKK0RSQUdJxIZFVknEhiBSQUpJQ0EKK0RSQUdJTiDFvUFSS08KK0RSQUdJTiBCT0dEQU4KK0RSQUdJTiBCT1JJVk9KCitEUkFHSU4gREFOSUxPCitEUkFHSU4gREVTQU5LQQorRFJBR0lOIERVxaBLTworRFJBR0lOIEdPUkRBTkEKK0RSQUdJTiBKT1ZBTiBESVBMIElORworRFJBR0lOIEpPVk8gRElQTCBJTkcKK0RSQUdJTiBMQVpBUgorRFJBR0lOIE1BUktPCitEUkFHSU4gTUlPRFJBRworRFJBR0lOIE1JT0RSQUcKK0RSQUdJTiBOSUtPTEEKK0RSQUdJTiBQRVRSSUpBCitEUkFHSU4gUkFESVZPSgorRFJBR0lOIFJJU1RPCitEUkFHSU4gU0HFoEEKK0RSQUdJTiBTT0tJQ0EKK0RSQUdJTiBTVEVWQU4KK0RSQUdJTiBTVkVUSVNMQVYKK0RSQUdJTiBWQVNBCitEUkFHSU4gVk9KSVNMQVYKK0RSQUdJTiBaT1JBTgorRFJBR0lOxIxJxIYgRFXFoEFOCitEUkFHSU7EjEnEhiBTTEFWS08KK0RSQUdPxaBFViBEUkFHQU4KK0RSQUdPSkVWScSGIMW9RUxKS08KK0RSQUdPSkVWScSGIEFOxJBFTEtPCitEUkFHT0pFVknEhiBCT8WgS08KK0RSQUdPSkVWScSGIEJSQU5JU0xBVgorRFJBR09KRVZJxIYgREFSSU5LQQorRFJBR09KRVZJxIYgRFJBR1VUSU4KK0RSQUdPSkVWScSGIEdPSktPCitEUkFHT0pFVknEhiBIUklTVElOQQorRFJBR09KRVZJxIYgTEpVQk9NSVIKK0RSQUdPSkVWScSGIE1JTEVOQQorRFJBR09KRVZJxIYgTUlMRU5LTworRFJBR09KRVZJxIYgTUlMRU5LTworRFJBR09KRVZJxIYgTUlMSUNBCitEUkFHT0pFVknEhiBNSUxPUkFECitEUkFHT0pFVknEhiBOSUtPTEEKK0RSQUdPSkVWScSGIFJBREnFoEEKK0RSQUdPSkVWScSGIFNURVZBTgorRFJBR09KRVZJxIYgWkxBVEFOQQorRFJBR09KTE9WIEFOS0lDQQorRFJBR09KTE9WIEJPxaBLTworRFJBR09KTE9WIERVxaBBTgorRFJBR09KTE9WIERVQlJBVktBCitEUkFHT0pMT1YgR0FWUkEKK0RSQUdPSkxPViBMQVpBUgorRFJBR09KTE9WIE1BUkdJVEEKK0RSQUdPSkxPViBNSUxPxaAKK0RSQUdPSkxPViBNSUxPxaAKK0RSQUdPSkxPViBNSVJPU0xBVgorRFJBR09KTE9WIFZPSklTTEFWCitEUkFHT0pMT1ZJxIYgRFXFoEtPCitEUkFHT0pMT1ZJxIYgTEFaQVIKK0RSQUdPSkxPVknEhiBNQVJBCitEUkFHT0pMT1ZJxIYgTUlMQU4KK0RSQUdPSkxPVknEhiBNSUxBTgorRFJBR09KTE9WScSGIFpPUklDQQorRFJBR09MSkVWScSGIEdPSktPCitEUkFHT0xKRVZJxIYgTUFSSU5LTworRFJBR09MSkVWScSGIE1JVEFSCitEUkFHT0xKRVZJxIYgUkFOS08KK0RSQUdPTEpFVknEhiBTRUtVTEEKK0RSQUdPTEpFVknEhiBTVE9KQU4KK0RSQUdPTEpFVknEhiBWTEFERQorRFJBR09NSVJPVknEhiDEkE9LQQorRFJBR09NSVJPVknEhiBESU1JVFJJSkUKK0RSQUdPTUlST1ZJxIYgRFJBR0lDQQorRFJBR09NSVJPVknEhiBJVkFOCitEUkFHT01JUk9WScSGIExKVUJJQ0EKK0RSQUdPTUlST1ZJxIYgU0FWQQorRFJBR09NSVJPVknEhiBUT0RPUgorRFJBR09TQVZBQyBBTkdFTElOQQorRFJBR09TQVZBQyBJTElKQQorRFJBR09TQVZBQyBLQVRJQ0EKK0RSQUdPU0FWQUMgTUVMQU5JSkEKK0RSQUdPU0FWQUMgTUlMQU5LTworRFJBR09TQVZBQyBNSUxPUkFECitEUkFHT1NBVkFDIE5JS09MQQorRFJBR09TQVZBQyBaVVpBTkEKK0RSQUdPU0FWTEpFVknEhiDEkFVSQQorRFJBR09TQVZMSkVWScSGIExKSUxKQU5BCitEUkFHT1NBVkxKRVZJxIYgTUFSSUpBCitEUkFHT1NBVkxKRVZJxIYgTUlSSkFOQQorRFJBR09TQVZMSkVWScSGIE1MQURFTgorRFJBR09TQVZMSkVWScSGIFNURVZBIERJUEwgSU5HCitEUkFHT1NBVkxKRVZJxIYgU1RPSsWgQQorRFJBR09TQVZMSkVWScSGIFZPSkEKK0RSQUdPU0xBVknEhiBWSURBSworRFJBR09WQUMgU0xBVktPCitEUkFHT1ZJxIYgxIxFRE8KK0RSQUdPVknEhiBCVURJTUlSCitEUkFHT1ZJxIYgRFJBR0FOCitEUkFHT1ZJxIYgR09KS08KK0RSQUdPVknEhiBHT1JEQU5BCitEUkFHT1ZJxIYgSkFTTUlOS0EKK0RSQUdPVknEhiBKT1ZBTktBCitEUkFHT1ZJxIYgTUlMQU4KK0RSQUdPVknEhiBNSUxJxIYKK0RSQUdPVknEhiBNSUxJQ0EKK0RSQUdPVknEhiBNSVJBCitEUkFHT1ZJxIYgUkFOS08KK0RSQUdPVknEhiBTTklKRcW9QU5BCitEUkFHT1ZJxIYgU1RBTUVOS0EKK0RSQUdPVknEhiBTVkVUSU1JUgorRFJBR09WScSGIFNWRVRPTUlSCitEUkFHT1ZJxIYgVkVSQQorRFJBR09WScSGIFZJREFLCitEUkFHT1ZJxIYgVkxBREEKK0RSQUdPVknEhiBaT1JBTgorRFJBR1VNSUxPIE1JTE9NSVIKK0RSQUdVTUlMTyBNSUxVVElOCitEUkFHVU5PVknEhiBCT1JJU0xBVgorRFJBR1VOT1ZJxIYgUEVSTworRFJBR1VUSU5PVknEhiDFvUlWS0EKK0RSQUdVVElOT1ZJxIYgTUlMQU4KK0RSQUdVVElOT1ZJxIYgUFJFRFJBRworRFJBR1VUSU5PVknEhiBaT1JBTgorRFJBSCBKRUxJU0FWRVRBCitEUkFIIEpFTElTQVZFVEEKK0RSQUhPVFVTS0kgQk9SSVNMQVYKK0RSQUhPVFVTS0kgUEVUQVIKK0RSQUtJxIYgRFJBR0nFoEEKK0RSQUtJxIYgU0xPQk9EQU4gRFIKK0RSQUtVTCBWQVNPCitEUkFLVUxBIERVxaBBTgorRFJBS1VMQSBSQURNSUxBCitEUkFLVUxJxIYgQUxFS1NBTkRBUgorRFJBS1VMScSGIEJSQU5JU0xBVgorRFJBS1VMScSGIERSQUdPTUlSIERSIFNUT01BVE9MT0cKK0RSQUtVTEnEhiBEUkFHT01JUgorRFJBS1VMScSGIEVSxb1FQkVUCitEUkFLVUxJxIYgSkVMRU5BCitEUkFLVUxJxIYgSk9WQU4KK0RSQUtVTEnEhiBLT1NUQQorRFJBS1VMScSGIExBWkFSCitEUkFLVUxJxIYgTEpVQklDQQorRFJBS1VMScSGIE1BUkEKK0RSQUtVTEnEhiBNQVJBCitEUkFLVUxJxIYgTUlMQU4KK0RSQUtVTEnEhiBNSUxBTgorRFJBS1VMScSGIE1JTEFOCitEUkFLVUxJxIYgTUlMSVZPSgorRFJBS1VMScSGIE1JUk9TTEFWCitEUkFLVUxJxIYgUFJFRFJBRworRFJBS1VMScSGIFNNSUxKQQorRFJBS1VMScSGIFNPRklKQQorRFJBS1VMScSGIFNURVZBTgorRFJBS1VMScSGIFNUT0pBTktBCitEUkFLVUxJxIYgU1ZFVElTTEFWCitEUkFLVUxJxIYgU1ZFVE9aQVIKK0RSQUtVTEnEhiBTVkVUT1pBUgorRFJBS1VMScSGIFRPRE9SCitEUkFLVUxJxIYgWk9SQU4KK0RSQVDFoElOIMSMQVZBCitEUkFQxaBJTiDEkE9SxJBFCitEUkFQxaBJTiBEQU5JQ0EKK0RSQVDFoElOIExFUE9TQVZBCitEUkFQxaBJTiBNSUxBTgorRFJBUMWgSU4gTUlMRU5LTworRFJBUMWgSU4gUEVUQVIKK0RSQVDFoElOIFBSRURSQUcKK0RSQVDFoElOIFNBVkEKK0RSQVDFoElOIFpBR09SS0EKK0RSQVDFoElOIFpPUkFOCitEUkFQScSGIEJPR0RBTgorRFJBUEnEhiBTRU5JVEEKK0RSQVBJxIYgU0xPQk9EQU4KK0RSQVBJxIYgVkVMSU1JUgorRFJBUE/FoCBTVEVWQU4KK0RSRcWgS0FJIMWgQU5ET1IKK0RSRUNVTiBWRUxKS08KK0RSRUhFUiBMQUpPxaAKK0RSRUhFUiBOSUtPTEEKK0RSRUhFUiBPVE8KK0RSRUhFUiBWSUxJTSBESVBMIElORworRFJFS09WScSGIMSQVVJPCitEUkVLT1ZJxIYgS0FUSUNBCitEUkVLT1ZJxIYgWk9SQU4KK0RSRU1QRVRJxIYgREFSS08KK0RSRU1QRVRJxIYgUEVUQVIKK0RSRU1QRVRJxIYgWkRFTktPCitEUkVOSkFLT1ZJxIYgSkVMSUNBCitEUkVOS09WScSGIExBU0xPCitEUkVOT1bEjEFOSU4gTEpVQk9NSVIKK0RSRU5PVkFDIFJBTktPCitEUkVOT1ZFQyBDVkVUTworRFJFVEFSIE1JUktPCitEUkVaR0EgSkFLT1YKK0RSRVpHQSBUT0RPUgorRFJFWkdJxIYgREFSQQorRFJFWkdJxIYgSUxJSkEKK0RSRVpHScSGIE1BUklKQQorRFJFWkdJxIYgTUlMQU4KK0RSRVpHScSGIFJBRElWT0oKK0RSRVpHScSGIFNWRVRMQU5BCitEUkVaR0nEhiBWTEFESU1JUgorRFJJR1VMT1YgU1BBU09KRQorRFJJTsSMRVZJxIYgxb1JVk9UQQorRFJJTsSMRVZJxIYgREVTQU5LQSBEUgorRFJJTsSMScSGIE1FTEFOSUpBCitEUklOxIxJxIYgTUlMT0pLTworRFJJTsSMScSGIFJBRE1JTEEKK0RSSU5JxIYgQUxFS1NBTkRBUgorRFJJTknEhiBCT1JJU0xBVgorRFJJTknEhiBKQUdPREEKK0RSSU5JxIYgTUlMQU4KK0RSSU5JxIYgTUlMRU5LTworRFJJTknEhiBNSUxFVEEKK0RSSU5JxIYgTUlMT1ZBTgorRFJJTknEhiBNSVJLTworRFJJTknEhiBORURFTEpLTworRFJJTknEhiBQRVJPCitEUklOScSGIFJBRE1JTEEKK0RSSU5JxIYgU0FWTworRFJJTknEhiBTTEFWSUNBCitEUklOScSGIFNURVZPCitEUklOScSGIFRPTU8KK0RSSU5JxIYgWkRSQVZLTworRFJJTkpPVlNLSSBBTEVLU0FOREFSCitEUklOSk9WU0tJIFZPSklTTEFWCitEUksgQkFSQkFSQQorRFJLVcWgScSGIElMSUpBCitEUkxKQcSMQSDEkE9SxJBFCitEUkxKQcSMQSDEkE9SxJBFCitEUkxKQcSMQSBCUkFOS0EKK0RSTEpBxIxBIERSQUdBTgorRFJMSkHEjEEgRFXFoEFOCitEUkxKQcSMQSBNQVJLTworRFJMSkHEjEEgTUnEhkEKK0RSTEpBxIxBIE1JTEFOS08KK0RSTEpBxIxBIE1JTE9SQUQKK0RSTEpBxIxBIE1JUktPCitEUkxKQcSMQSBORcSQTworRFJMSkHEjEEgTkVOQUQKK0RSTEpBxIxBIFJBRE9WQU4KK0RSTEpBxIxBIFJBRE9WQU4KK0RSTEpBxIxBIFNUT0pBCitEUkxKQcSMQSBaRFJBVktBCitEUkxKQcSMScSGIEtBVEEKK0RSTEpFVknEhiDEkFVSTworRFJMSkVWScSGIEFOSUNBCitEUkxKRVZJxIYgSk9WQU5LQQorRFJMSkVWScSGIE1JTEVUQQorRFJMSkVWScSGIE1JTEpBCitEUkxKRVZJxIYgTUlSSkFOQQorRFJMSknEhiBNSUxBRElOCitEUkxKScSGIFBSRURSQUcKK0RSTUFOQUMgTUlST1NMQVYKK0RSTUFOQUMgU1RBTktPCitEUk1BTk9WScSGIE1JTEVWQQorRFJOREFSRVZJxIYgQk9SQQorRFJOREFSRVZJxIYgQk9SQQorRFJOREFSRVZJxIYgS0FUSUNBCitEUk5EQVJTS0kgTUlMQU4KK0RSTkRBUlNLSSBWRUxJTUlSCitEUk9CQUMgxb1BUktPCitEUk9CQUMgxb1BUktPCitEUk9CQUMgxJBPUsSQRQorRFJPQkFDIEFOQQorRFJPQkFDIEJSQU5JU0xBVgorRFJPQkFDIExKSUxKQU5BCitEUk9CQUMgTUlMQU4KK0RST0JBQyBNSUxBTgorRFJPQkFDIE1JTE9SQUQKK0RST0JBQyBNSVJPU0xBVgorRFJPQkFDIE5FTkFECitEUk9CQUMgTklLT0xBCitEUk9CQUMgUFJFRFJBRworRFJPQkFDIFJBRE9KS0EKK0RST0JBQyBSQURPSktBCitEUk9CQUMgU0xBVktPCitEUk9CQUMgVkxBRE8KK0RST0JBQyBWVUtBxaBJTiBOT1ZJTkFSCitEUk9CQUMgWkRSQVZLTworRFJPQklOQSBKVUxJSkFOQQorRFJPQklOQSBMSlVCSUNBCitEUk9CSU5BIE1JSEFMSgorRFJPQklOSkFLIFJVxb1BCitEUk9CTkpBSyBFVklDQQorRFJPQk5KQUsgTEpJTEpBTkEKK0RST0JOSkFLIE1JTElWT0pFCitEUk9CTkpBSyBNSU9EUkFHCitEUk9CTkpBSyBNT03EjElMTworRFJPQk5KQUsgUkFEScWgQQorRFJPQk5KQUsgUkFET0pJQ0EKK0RST0JOSkFLIFJBRE9KSUNBCitEUk9CTkpBS09WScSGIERVxaBBTgorRFJPQk5KQUtPVknEhiBHVk9aREVOCitEUk9CTkpBS09WScSGIFJJU1RJVk9KRQorRFJPQk5KSUsgSk9TSVAKK0RST0JOSklLIEpVRElUCitEUk9OSkFLIMW9SVZBTkEKK0RST05KQUsgxb1JVktPCitEUk9OSkFLIMSQT1LEkEUKK0RST05KQUsgREFSSU5LQQorRFJPTkpBSyBNSUxBTgorRFJPTkpBSyBNSVJKQU5BCitEUk9OSkFLIE9MR0EKK0RST05KQUsgUkFTVEtPCitEUk9OSkFLIFNBVklOS0EKK0RST05KQUsgU1RFVkFOCitEUk9QS0EgQVJQQUQKK0RST1BLQSBKRUxFTkEKK0RST1BLQSBOQVRBxaBBCitEUk9QS0EgU1RFVkFOCitEUk9QTyBNSUxLQQorRFJPUE8gVkFTQQorRFJPUE8gWk9SQU4KK0RST1pESUsgSUxPTkEKK0RST1pESUsgTUFSSUpBCitEUlXFvUVUScSGIMW9SUtBCitEUlVHT1ZJxIYgUlXFvUlDQQorRFJVR09WScSGIFJVxb1JQ0EKK0RSVkVORMW9SUpBIFJBRE9WQU4KK0RSVkVORMW9SUpBIFNMQVZLTworRFJWRU5KQUsgVkVSSUNBCitEVcSMRVZJxIYgVkFTSUxJSkUKK0RVxIxJxIYgTUlMQU4KK0RVxIxJxIYgU0xPQk9EQU4KK0RVxaBBTknEhiBEUkFHQU4KK0RVxaBBTknEhiBMQVpBUgorRFXFoEFOScSGIExKVUJJQ0EKK0RVxaBBTknEhiBOQURBCitEVcWgQU5JxIYgTkVOQUQKK0RVxaBBTk9WScSGIFNUQU5PSkUKK0RVxaBBTk9WScSGIFpWRVpEQU5BCitEVcWgRUsgWkxBVEtPIERJUEwgT0VDCitEVcWgScSGIEJSQU5LTworRFXFoEnEhiBaT1JBTgorRFXEhkFLIEFORFJJSkEKK0RVxIZBSyBBUkFOS0EKK0RVxIZBSyBCQVJCQVJBCitEVcSGQUsgTUlIQUpMTworRFXEhkFLIFRPTUEKK0RVxJBBSyBEUkFHVVRJTgorRFXEkElLIEZSQU5KQQorRFVCQUnEhiBCT8W9SURBUgorRFVCQUnEhiBNSUxBTgorRFVCQUnEhiBNSVJLTworRFVCQUpJxIYgxb1BUktPCitEVUJBSknEhiDEkFVSQQorRFVCQUpJxIYgQUxFS1NBTkRBUgorRFVCQUpJxIYgQklMSkFOQQorRFVCQUpJxIYgRFJBR0FOCitEVUJBSknEhiBNSUxJQ0EKK0RVQkFKScSGIE1JTE/FoAorRFVCQUpJxIYgTUlSS08KK0RVQkFKScSGIFZJREEKK0RVQkxKRVZJxIYgU0xPQk9EQU4KK0RVQkxKRVZJxIYgU1RPSkFOCitEVUJMSkVWScSGIFZPSklTTEFWCitEVUJMSkVWScSGIFpMQVRBCitEVUJOSkFLT1ZJxIYgTUFSVEEKK0RVQk9WU0tBIE1JTE9UQQorRFVCT1ZTS0kgSkFOS08KK0RVQk9WU0tJIEtBVElDQQorRFVCUkFWQUMgRFXFoEFOCitEVUJST0pBIERBTklDQQorRFVCUk9KQSBTTE9CT0RBTgorRFVDQU5PVknEhiBCT8WgS08KK0RVQ0nEhiBNSUxBTgorRFVEQSBQQVZMRQorRFVEQcWgIMSQVVJBCitEVURBxaAgxJBVUkEKK0RVREHFoCDEkFVSQQorRFVEQcWgIEFOQQorRFVEQcWgIEFOVEFMCitEVURBxaAgQVJQQUQKK0RVREHFoCBBUlBBRAorRFVEQcWgIEJPUklTCitEVURBxaAgSEVMRU5BCitEVURBxaAgSkFOT8WgCitEVURBxaAgSlVMSUpBTgorRFVEQcWgIExBWkFSCitEVURBxaAgTUFSSU5LTworRFVEQcWgIE1JSEFMSgorRFVEQcWgIFBJUk/FoEtBCitEVURBxaAgUk9NQU4KK0RVREHFoCBTTEFWT01JUgorRFVEQUsgSkFST1NMQVYKK0RVREFLIE1BUklKQQorRFVEQUsgU1RFVkFOCitEVURBTiBNSUxJVk9KCitEVURBUiBOSUtPTEEKK0RVREFSSU4gxb1BUktPCitEVURBUklOIERSQUdBTgorRFVEQVJJTiBTQVZBCitEVURBUklOIFNURVZBTgorRFVEQVJJTiBTVEVWQU4KK0RVREFSSU4gVkVTRUxJTgorRFVEQVJJTiBaT1JBTgorRFVEQVJJTiBaT1JBTgorRFVEScSGIEFOSUNBCitEVURJxIYgS09TVEEKK0RVREnEhiBLT1NUQQorRFVEScSGIE1BVEUKK0RVREnEhiBNSUxBCitEVURJxIYgTUlMRQorRFVEScSGIE1JTE/FoAorRFVEScSGIE1JTE/FoAorRFVEScSGIE5BREEKK0RVREnEhiBTVkVUT1pBUgorRFVEScSGIFZBU0EKK0RVREnEhiBWQVNBCitEVURJxIYgVkVSSUNBCitEVURJxIYgWk9SQU4KK0RVRE9KRVZJxIYgTkVExb1BRAorRFVET0sgREFOSUVMIERSCitEVURPSyBKQU5LTworRFVET0sgUEFWRUwKK0RVRFVLT1ZJxIYgQUxFS1NBTkRBUgorRFVEVUtPVknEhiBTTE9CT0RBTgorRFVEVUtPVknEhiBTVEVWQU4KK0RVRFZBUlNLSSBCT8W9SURBUgorRFVEVkFSU0tJIERSQUdPTEpVQgorRFVEVkFSU0tJIElWQU4KK0RVRFZBUlNLSSBQQUpBCitEVURWQVJTS0kgVkVMSU5LQQorRFVHQUpMScSGIEFOxJBFTEtBCitEVUdBSkxJxIYgQVJKQU5BCitEVUdBSkxJxIYgTUlMT8WgCitEVUdBSkxJxIYgUkFET1ZBTgorRFVHQUxJxIYgRFJBR0FOCitEVUdBTkTFvUlKQSBCUkFOS08KK0RVR0FORMW9SUpBIERSQUdPTUlSCitEVUdBTkTFvUlKQSBEVcWgQU4KK0RVR0FORMW9SUpBIE5FREVMSktPCitEVUdJTiBTVE9KQU4KK0RVR0/FoElKQSDFvUlWS08KK0RVR0/FoElKQS1NQUtTSU1PVknEhiBOQURBCitEVUdPTkpJxIYgTUlMRQorRFVHT05KScSGIE1JTFVUSU4KK0RVR09OSknEhiBOSUtPTEEKK0RVR09OSknEhiBTVkVUT01JUgorRFVIIEtBVEFSSU5BCitEVUhBxIxFSyBWTEFETworRFVJxIYgSk9TSVAKK0RVSkFLT1ZJxIYgTUlMRU5BCitEVUpBS09WScSGIE1JTElDQQorRFVKQUtPVknEhiBOT1ZBCitEVUpBS09WScSGIFZFTEpLTworRFVKRVZTS0kgVkFOR0VMIERSCitEVUpJxIYgxJBPUsSQRQorRFVKScSGIElWQU4KK0RVSknEhiBJVklDQQorRFVKScSGIExKVUJJQ0EKK0RVSknEhiBTTE9CT0RBTgorRFVKScSGIFNMT0JPREFOCitEVUpJxIYgU0xPQk9EQU4KK0RVSknEhiBTTUlMSkEKK0RVSknEhiBTVE9KQU5LQQorRFVKSU4gxb1JVkEKK0RVSklOIMW9SVZLTworRFVKSU4gREFOSUNBCitEVUpJTiBMVUtBCitEVUpJTiBTSU1FT04KK0RVSklOIFNWRVRJU0xBVgorRFVKSU4gVEVPRE9SCitEVUpJTiBWSVRPTUlSCitEVUpLScSGIFZMQURJU0xBVgorRFVKS09WScSGIEJSQU5LTworRFVKS09WScSGIFBFVEFSCitEVUpLT1ZJxIYgVEVPRE9SCitEVUpLT1ZJxIYgVkxBRElNSVIKK0RVSkxPVknEhiBCT1JBCitEVUpNScSGIEFOVEUKK0RVSk1PVknEhiBFTElaQUJFVEEKK0RVSk1PVknEhiBFVkEKK0RVSk1PVknEhiBGRVJFTkMKK0RVSk1PVknEhiBKT1NJUAorRFVKT1ZJxIYgSUxJSkEKK0RVSk9WScSGIFJBRE1JTEEKK0RVSk9WScSGIFJBRE1JTEEKK0RVS0EgTUlST1NMQVYKK0RVS0FJIEFORFJBxaAKK0RVS0FOIE5BVEHFoEEKK0RVS0FSScSGIFZJREEKK0RVS0VTIEZPU0tBCitEVUtJxIYgxJBVUk8KK0RVS0nEhiBCT1JBCitEVUtJxIYgREFOSUxPCitEVUtJxIYgRFJBR0FOCitEVUtJxIYgRFJBR0lDQQorRFVLScSGIERVxaBBTgorRFVLScSGIElWQU5LQQorRFVLScSGIEpFTEVOQQorRFVLScSGIEpPVkFOCitEVUtJxIYgSk9WQU4KK0RVS0nEhiBLT1NBCitEVUtJxIYgTEpVQklDQQorRFVLScSGIE1JTEFOCitEVUtJxIYgTUlMQU4KK0RVS0nEhiBNSUxBTgorRFVLScSGIE1JTElDQQorRFVLScSGIE1JTElDQQorRFVLScSGIE1JUkpBTkEKK0RVS0nEhiBQUkVEUkFHCitEVUtJxIYgUkFERQorRFVLScSGIFJBREUKK0RVS0nEhiBSQUpLTworRFVLScSGIFNMQVZJQ0EKK0RVS0nEhiBTT0ZJSkEKK0RVS0nEhiBTVEVWTyBESVBMIElORworRFVLScSGIFZVS0HFoElOIERSCitEVUtJxIYgWk9SQU4KK0RVS09WQSBMSUxJCitEVUtPVlNLSSBTVkVUSVNMQVYKK0RVTEVKQU4gxb1JVkFESU5LQQorRFVMRUpBTiBTTEFWS08KK0RVTEnEhiDFoEFORE9SCitEVUxJxIYgQU5LQQorRFVMScSGIElWQU4KK0RVTEnEhiBKT1NJUAorRFVMScSGIEpPU0lQCitEVUxJxIYgTEpVREVWSVQKK0RVTEnEhiBNQUdEQQorRFVMScSGIE1JSEFKTE8KK0RVTEnEhiBNSVJPU0xBVgorRFVMScSGIE5JS09MQQorRFVMT1ZJxIYgQU7EkEVMS08KK0RVTE9WScSGIEJPR0RBTgorRFVMT1ZJxIYgQlJBTktPCitEVUxPVknEhiBEVcWgQU4KK0RVTE9WScSGIE1JTE9WQU4KK0RVTE9WScSGIE1JTFVOCitEVUxPVknEhiBSQURPVkFOCitEVUxPVknEhiBSQU5LTworRFVMT1ZJxIYgUkFUS0EKK0RVTE9WScSGIFpPUkFOCitEVU1BIE1JTE9SQUQKK0RVTUFOxIxJxIYgU0xBVklDQQorRFVNQU7EjEnEhiBaRFJBVktPCitEVU1BTk9WScSGIE1MQURFTgorRFVNRURBxaAgU1BBU09KRQorRFVNRURBxaAgVkFTSUxJSkUKK0RVTUVOxIxJxIYgSVZBTgorRFVNScSGIFNMQVZJQ0EKK0RVTUnEhiBTVEVWQU4gRElQTCBJTkcKK0RVTUlUUk9WIEFMRUtTQU5EQVIKK0RVTUlUUk9WIERJTUlUUklKRQorRFVNSVRST1YgTFVLQQorRFVNSVRST1YgTUFSSUpBCitEVU1JVFJPViBNSU9EUkFHCitEVU1JVFJPViBORURFTEpLTworRFVNSVRST1YgU0xBVktPCitEVU1JVFJPViBWRVJJQ0EKK0RVTUlUUk9WIFZPSklOCitEVU1OScSGIMWgQVJJS0EKK0RVTU5JxIYgTUlMQU4KK0RVTU9OScSGIEJSQU5LTworRFVNT05JxIYgUEVUQVIKK0RVTsSQRVIgUkFERQorRFVOxJBFUiBSQURFCitEVU7EkEVSSU4gxJBPUsSQRQorRFVOxJBFUk9WIEtPU0FOQQorRFVOxJBFUk9WIE5BREEKK0RVTsSQRVJPViBQSVJPxaBLQQorRFVOxJBFUk9WScSGIFJBRE9WQU4KK0RVTsSQRVJTS0kgxb1JVkFOCitEVU7EkEVSU0tJIMSQT1LEkEUKK0RVTsSQRVJTS0kgxJBPUsSQRQorRFVOxJBFUlNLSSBBTEVLU0FOREFSCitEVU7EkEVSU0tJIEFOQQorRFVOxJBFUlNLSSBDVkVUQU5BCitEVU7EkEVSU0tJIERSQUdBTgorRFVOxJBFUlNLSSBJVkFOS0EKK0RVTsSQRVJTS0kgSVZBTgorRFVOxJBFUlNLSSBKT1ZBTgorRFVOxJBFUlNLSSBNQVJJSkEKK0RVTsSQRVJTS0kgTUlMQU4KK0RVTsSQRVJTS0kgTUlSSkFOQQorRFVOxJBFUlNLSSBOT1ZBSworRFVOxJBFUlNLSSBTSU1BCitEVU7EkEVSU0tJIFNPRklKQQorRFVOxJBFUlNLSSBTVEFOSVNMQVYKK0RVTsSQRVJTS0kgVElIT01JUgorRFVOxJBFUlNLSSBUUklWQQorRFVOxJBFUlNLSSBaRFJBVktPCitEVU5EScSGIEhBUkFMQU1QSUpFCitEVU5EScSGIEpFTEVOQQorRFVOREnEhiBTTEFWS08KK0RVTkRPVknEhiBTVEpFUEFOCitEVU5JxIYgRFJBR0nEhgorRFVOSknEhiBTVE9KQU4KK0RVTk9WScSGIE1JTEtBCitEVU5PVknEhiBOQVRBxaBBCitEVVBBSyBJTVJFCitEVVBBSyBNQVJJSkEKK0RVUEFMTyBTTEFWS0EKK0RVUE9SIEdPUkRBTkEKK0RVUE9SIE1JTE/FoAorRFVQT1IgTUlSS08KK0RVUE9SIFpPUklDQQorRFVSQcSMS09WScSGIEJBSFJJSkEKK0RVUkHEjEtPVknEhiBTRU5JSkEKK0RVUkFLT1ZJxIYgxJBVUk8KK0RVUkFLT1ZJxIYgRFJBR0FOCitEVVJBS09WScSGIEdPSktPCitEVVJBS09WScSGIEdPSktPCitEVVJBTiBCUkFOS08KK0RVUkFOT1ZJxIYgVkxBRElNSVIKK0RVUkdVVE9WScSGIFJJRkFECitEVVJLQUxJxIYgVklLVE9SCitEVVJLT1ZJxIYgTUlMT1JBRAorRFVSS09WScSGIFZMQUpLTworRFVSS1VMScSGIEFMRUtTQU5EQVIKK0RVUktVTEnEhiBTUEFTT0pFCitEVVJMRVZJxIYgTUlMSUNBCitEVVJNQU4gRFJBR09MSlVCCitEVVJNQU4gR09KS08KK0RVUk1BTiBOQURBCitEVVJNQU4gUkFTVElTTEFWCitEVVJPxaBLQSDFoEFORE9SCitEVVJPxaBLQSBJVkFOS0EKK0RVUk/FoEtBIEpFTEVOQQorRFVST8WgS0EgTUlIQUpMTworRFVST8WgS0kgSlVMSUpBTkEKK0RVUlXFoEtBIFBBTAorRFVSVVRPVknEhiBEUkFHQU4KK0RVUlVUT1ZJxIYgUkFET1ZBTgorRFVSVVRPVknEhiBTRU5LQQorRFVTScSGIEdPU1BBVkEKK0RVU1BBUkEgTUlMRU5BCitEVVNQRVIgxaBJTU8KK0RVVElOQSBBTkRSSUpBCitEVVRJTkEgQlJBTklTTEFWCitEVVRJTkEgQlJBVE9MSlVCCitEVVRJTkEgRFJBR0FOCitEVVRJTkEgSVJFTkEKK0RVVElOQSBNSU9NSVIKK0RVVElOQSBTTE9CT0RBTgorRFVUSU5BIFZMQURJTUlSCitEVVZOSkFLIERJVk5BCitEVVZOSkFLIERJVk5BCitEVVZOSkFLIElWSUNBCitEVVZOSkFLIEtPU1RBCitEVVZOSkFLIExBWkFSCitEVVZOSkFLIExBWkFSCitEVVZOSkFLIE1BUkEKK0RVVk5KQUsgTUlMRU5LTworRFVWTkpBSyBNSUxPUkFECitEVVZOSkFLIE5FTkFECitEVVZOSkFLIFJBRE9KS0EKK0RVVk5KQUsgU1RBTkEKK0RWT1JBxIxLTyDFoEFORE9SCitEVk9STknEhiBNSVJKQU5BCitFxaBLSSBFUsW9RUJFVAorRcWgS0nEjEVWScSGIFZBU0EKK0XEhklNIFJBRE9WQU4KK0XEhklNT1ZJxIYgR09KS08KK0XEhklNT1ZJxIYgTklLT0xBCitFxIZJTU9WScSGIFZFU0VMSU4KK0XEkEVESSBKT8W9RUYKK0XEkEVESSBKVUxJSkFOQQorRUJFTkhFLUpPVkFOT1ZJxIYgSkFTTkEgRFIKK0VCRU5IRSBOSUtPTEEKK0VCRVJIQVJELU1BUktPVknEhiBNSVJKQU5BCitFQkVSSEFSVCBQRVRBUgorRUJFUlNULVNFRExBxIxFSyBHQUJSSUVMQQorRUNFVCBKT1ZBTgorRUNFVCBKT1ZBTgorRUNFVCBLQVRBTElOCitFQ0VUIFBBTAorRURFTEVOSkkgTUFSSUpBCitFREVMSU5TS0kgRVVHRU4KK0VERUxJTlNLSSBKT0FLSU0KK0VERUxJTlNLSSBMSlVCSUNBCitFREVMSU5TS0kgVkVSQQorRURFTElOU0tJIFZFUkEKK0VGVEVNSUpVIE5JS09MQQorRUdFTEpBIE1JTElDQQorRUdFTEpBIE5FQk9KxaBBCitFR0VSScSGIE1JUk9TTEFWIERSCitFR0nEhiDEjEVETUlMQQorRUdJxIYgxJBPS0EKK0VHScSGIEJSQUNPCitFR0nEhiBCUkFOSVNMQVYKK0VHScSGIENWRVRBTktBCitFR0nEhiBEUkFHQU4KK0VHScSGIE1BTkUKK0VHScSGIE1BUklKQU4KK0VHScSGIE1JQ0EKK0VHScSGIE1JTEFOCitFR0nEhiBNSUxBTgorRUdJxIYgT0xHQQorRUpJxIYgTUlMQU4KK0VLRcWgIEFMRUtTQU5EQVIKK0VLSEFSRFQgTEpVQklDQQorRUtMScSGIE1BUkpBTgorRUtNRcWgxIxJxIYgTUlMSVNBVgorRUtNRUTFvUnEhiBBTktBCitFS01FRMW9ScSGIE5JS09MQQorRUtSRVMgxJBPUsSQRQorRUtSRVMgQU5EUklKQQorRUtSRVMgSkFOT8WgCitFS1JFUyBKVUxJSkFOQQorRUtSRVMgTUlMS0EKK0VLUkVTIE5BTkRPUgorRUtSRVMgT1RPCitFS1JFUy1SQUtJxIYgVkVSSUNBCitFS1JFUyBST1pBTElKQQorRUtSRVMgVkFMRVJJSkEKK0VMRUsgRVZBCitFTEVSTyBaVkVaREFOQQorRUxFU0lOIEJSQU5JU0xBVgorRUxFU0lOIEJSQU5LQQorRUxFU0lOIERSQUdBCitFTEVTSU4gRFJBR09MSlVCCitFTEVTSU4gRFXFoEFOS0EKK0VMRVNJTiBHUkFESU1JUgorRUxFU0lOIE1JUk9TTEFWCitFTEVTSU4gU0FWQQorRUxFU0lOIFNJTknFoEEKK0VMRVNJTiBWTEFESU1JUgorRUxFWiDEkE9LQQorRUxFWiBHT1JBTgorRUxFWk9WScSGIE5JS09MQQorRUxFWk9WScSGIFBFVEFSCitFTEhBUlQgTEFaQVIKK0VMSEFSVCBMQVpBUgorRUxJQVMgSVJFTkEKK0VMSUpBxaAgSkFOCitFTElaRUsgxb1Vxb1BTkEKK0VMSVpFSyBJVkFOCitFTE9SIEnFoFRWQU4KK0VMT1IgSkFOT8WgCitFTE9SIExKVUJJQ0EKK0VMT1IgUEFWTEUKK0VMT1IgWk9SSUNBCitFTFRFUiBKQU5PxaAKK0VMVEVSIFpPTFRBTgorRU1FUiBKQUtPVgorRU1FUiBNQVJLTworRU1JTkkgQkFKUkFNCitFTUlOSSBHQU5JCitFTUlOSSBST1pBTElKQQorRU5BSE9MTyBOQURBCitFTkdFTE1BTiBLQVRJQ0EKK0VOR0VSVCBNSUhBSkxPCitFTkdMRVIgTEFKT8WgCitFUElGQU5JxIYgQ1ZFVEFOQQorRVBJRkFOScSGIERVxaBLTworRVLEjEktVkFSR0EgTUFSScWgS0EKK0VSxIxJxIYgQk9KQU5BCitFUsSMScSGIE1JTE9SQUQKK0VSxIxJxIYgUkFET1ZBTgorRVLFoFRFIMW9RUxKS08KK0VSQUsgQk9STworRVJBSyBEVcWgQU4KK0VSQUsgSUxJSkEKK0VSQUsgTEFaQVIKK0VSQUsgTUFSS08KK0VSQUtPVknEhiBCT0dEQU4KK0VSQUtPVknEhiBEQU5JTE8KK0VSQUtPVknEhiBEUkFHSUNBCitFUkFLT1ZJxIYgS1JJU1RJVk9KCitFUkFLT1ZJxIYgTEpVQknFoEEKK0VSQUtPVknEhiBMSlVCT0pFCitFUkFLT1ZJxIYgTUlMT1JBRAorRVJBS09WScSGIE1JVEFSCitFUkFLT1ZJxIYgUkFERQorRVJBS09WScSGIFJBSktPCitFUkFLT1ZJxIYgU1JFVEVOCitFUkJFxaAgRVLFvUVCRVQKK0VSQkXFvU5JSyBTT05KQQorRVJCRVMgQlJBTktBCitFUkJFUyBNQVJHSVRBCitFUkJFWiBCTEHFvU8KK0VSQkVaIEVSxb1FQkVUCitFUkNFRyDFoFBJUk8KK0VSQ0VHIMW9QVJLTworRVJDRUcgxb1JVktPCitFUkNFRyBEQVJBCitFUkNFRyBMSklMSkFOQQorRVJDRUcgTUlLQQorRVJDRUcgUkFET1ZBTgorRVJDRUcgUkFKS08KK0VSQ0VHIFJBSktPCitFUkNFRyBTTE9CT0RBTgorRVJDRUcgU1RBTkEKK0VSQ0VHIFpERU5LTworRVJDRUcgWkRSQVZLTworRVJDRUdBTiBHT1JBTgorRVJDRUdBTiBNSVRBCitFUkNFR09WxIxFVknEhiDFvUlWT0RBUgorRVJDRUdPVsSMRVZJxIYgRE9TVEEKK0VSQ0VHT1ZBQyBBTsSQRUxLTworRVJDRUdPVkFDIEJSQVRJU0xBVgorRVJDRUdPVkFDIE1JT0RSQUcKK0VSQ0VHT1ZBQyBNSVRBUgorRVJDRUdPVkFDIE5BREEKK0VSQ0VHT1ZBQyBTQVZBCitFUkNFR09WQUMgU0xPQk9EQU4KK0VSQ0VHT1ZBQyBTVEVWQU4KK0VSQ0VHT1ZBQyBUT01JU0xBVgorRVJDRUdPVknEhiBEQU5JQ0EKK0VSREXFoCBEQU5JRUwKK0VSREXFoCBFTUlMCitFUkRFxaAgRVNURVIKK0VSREXFoCBFVEVMS0EKK0VSREXFoCBJTE9OQQorRVJERcWgIElWQU4KK0VSREXFoCBKVUxJSkFOQQorRVJERcWgIEtMQVJBCitFUkRFxaAgTEFTTE8KK0VSREXFoCBQQUwKK0VSREXFoCBQRVRBUgorRVJERcWgSSBMQVNMTworRVJERcWgSSBWQUxFUklKQQorRVJERUcgQVJBTktBCitFUkRFRyBJTE9OQQorRVJERUcgSkFOT8WgCitFUkRFRyBKVVNUSU5BCitFUkRFRyBUT01JU0xBVgorRVJERUkgxaBBTkRPUgorRVJERUkgSk9TSVAKK0VSREVJIEpPVkFOCitFUkRFSSBNSUhBSkxPCitFUkRFSSBQRVRBUgorRVJERUkgWk9MVEFOCitFUkRFTEogQlJBTktPCitFUkRFTEogRU1JTAorRVJERUxKIEdPUkFOCitFUkRFTEogTFVETUlMQQorRVJERUxKIE1JTFVUSU4KK0VSREVMSkFOIMW9SVZLTworRVJERUxKQU4gQUxFS1NBTkRBUgorRVJERUxKQU4gQUxLU0FOREFSCitFUkRFTEpBTiBCSVNFUktBCitFUkRFTEpBTiBCT8WgS08KK0VSREVMSkFOLUJPR0RBTk9WIFNMQVZJQ0EKK0VSREVMSkFOIERBTklMTworRVJERUxKQU4gRE9CUklWT0oKK0VSREVMSkFOIERVxaBBTktBCitFUkRFTEpBTiBEVcWgQU4KK0VSREVMSkFOIERVxaBBTgorRVJERUxKQU4gRFXFoEFOCitFUkRFTEpBTiBEVcWgQU4KK0VSREVMSkFOIEpFTEVOQQorRVJERUxKQU4gS0FUSUNBCitFUkRFTEpBTiBMSlVCSUNBCitFUkRFTEpBTiBMSlVCT01JUgorRVJERUxKQU4gTUlMQURJTgorRVJERUxKQU4gTUlMQU4gRElQTCBJTkcKK0VSREVMSkFOIE1JTEFOCitFUkRFTEpBTiBNSUxFTktPCitFUkRFTEpBTiBNSUxJVk9KCitFUkRFTEpBTiBNSUxPUkFECitFUkRFTEpBTiBNSUxPUkFECitFUkRFTEpBTiBNSUxPVkFOCitFUkRFTEpBTiBNSVJKQU5BCitFUkRFTEpBTiBOQURFxb1EQQorRVJERUxKQU4gTklLT0xBCitFUkRFTEpBTiBQUkVEUkFHCitFUkRFTEpBTiBSQURJVk9KCitFUkRFTEpBTiBTTEFWS0EKK0VSREVMSkFOIFNMQVZLQQorRVJERUxKQU4gU0xPQk9EQU4gRElQTCBJTkcKK0VSREVMSkFOIFNSRURPSkUKK0VSREVMSkFOIFNURVZBTgorRVJERUxKQU4gU1ZFVElTTEFWCitFUkRFTEpBTiBUSUhPTUlSCitFUkRFTEpBTiBWRVJJQ0EKK0VSREVMSkFOIFZVS0lDQQorRVJERUxKQU4gWkxBVEtPCitFUkRFTEpBTiBaT1JBCitFUkRFTEpBTklOIEFOxJBFTEtPCitFUkRFTEpJIMSQRVLEkAorRVJERUxKSSBBTlRBTAorRVJERUxKSSBCRUxBCitFUkRFTEpJIEJJU0VSS0EKK0VSREVMSkkgQk9SQkFMQQorRVJERUxKSSBERcW9RQorRVJERUxKSSBEUkFHSUNBCitFUkRFTEpJIEZSQU5KQQorRVJERUxKSSBHQcWgUEFSCitFUkRFTEpJIEnFoFRWQU4KK0VSREVMSkkgSkVORQorRVJERUxKSSBKT8W9RUYKK0VSREVMSkkgS0FST0xKCitFUkRFTEpJIExBSk/FoAorRVJERUxKSSBMQVNMTyBESVBMIElORworRVJERUxKSSBNQVRJTERBCitFUkRFTEpJIFNPRlJPTkEKK0VSREVMSkkgU1RFVkFOCitFUkRFTEpJIFRJQk9SCitFUkRFVklLIE1BUkEKK0VSREVWSUsgTUFSSUpBCitFUkRFVklLIFNMT0JPREFOCitFUkRFVklLIFZPSklTTEFWCitFUkRFVklLIFZVS0lDQQorRVJERVZJSyBaRFJBVktPCitFUkXFoCDFoEFORE9SCitFUkXFoCBMQVNMTworRVJFxJBJTiBWVUtBxaBJTgorRVJFRyBMQUpPxaAKK0VSRU1JxIYgSkVMSUNBCitFUkVNScSGIEpPVkFOCitFUkVNScSGIE5JTk9TTEFWCitFUkVNScSGIFJBRE9WQU4KK0VSRU1JxIYgU0FWQQorRVJFTUnEhiBTTEFWSUNBCitFUkVNScSGIFNUQU5JU0xBVkEKK0VSRU1JxIYgVElIT01JUiBEUiBMRUtBUgorRVJFTUnEhiBWRVNFTElOS0EKK0VSRU1JSkEgTUlMQU4KK0VSRU1JSkEgU1RBTktPCitFUkVNSU4gTklLT0xBCitFUkVOVEEgTEpVQklDQQorRVJHIE9MR0EKK0VSR0VMQcWgRVYgRFVCUkFWS0EKK0VSR0VMQcWgRVYgSVZBTgorRVJHRUxBxaBFViBKT1ZBTgorRVJHRUxBxaBFViBNSUxBTgorRVJHRUxBxaBFViBNSUxPxaAKK0VSR0VMQcWgRVYgTU9NxIxJTE8KK0VSR0VMQcWgRVYgTkVTVE9SCitFUkdFTEHFoEVWIFNNSUxKS0EKK0VSR0VMQcWgRVYgVElIT01JUgorRVJHRUxBxaBFViBaT1JLQQorRVJIQVJUScSMIEFOQQorRVJIQVJUScSMIFJVRE9MRgorRVJJIElMT05BCitFUkkgSkFOT8WgCitFUkkgSk9WQU4KK0VSScSGIMSQVUxJTktBCitFUknEhiBCT8W9SU4KK0VSScSGIExKSUxKQU5BCitFUknEhiBNQVJLTworRVJJxIYgTUlMT01JUgorRVJJxIYgTkVCT0rFoEEKK0VSScSGIFBFUk8KK0VSScSGIFNORcW9QU5BCitFUknEhiBTVkVUT01JUgorRVJJxIYgWk9SSUNBCitFUktJxIYgxJBPUsSQRQorRVJLScSGIFBFVEFSCitFUkxBVUVSIElWQU4KK0VSTEFVRVIgSk9TSVAKK0VSTEVSIFZFUk9OQQorRVJORVNUIEZSQU5KQQorRVJPUiBKT1ZBTgorRVJPUiBQRVRBUgorRVJPUiBTVEVWQU4KK0VSU0tJIFBFVEFSCitFUlNLSS1QRVRLT1ZJxIYgU09OSkEKK0VSVEwgRkVSRU5DCitFUlRMIEhFRFZJR0EKK0VSVEwgTEFTTE8KK0VSVEwgVkxBU1RBCitFUyBLTEFSQQorRVNFIMWgQU5ET1IKK0VTS0nEhiBTVkVUT1pBUgorRVNURVIgSk9TSVAKK0VTVEVSIE1BUklKQSBEUgorRVNURVIgTUFSVEEKK0VUxaBCRVJHRVIgSkFLT0IKK0VURVIgT1RPCitFVEVST1ZJxIYgVkVSQQorRVRJTlNLSSDFvUlWQU4KK0VUSU5TS0kgxb1JVk9KSU4KK0VUSU5TS0kgxJBPUsSQRQorRVRJTlNLSSBEUkFHScSGCitFVElOU0tJIERSQUdJxIYKK0VUSU5TS0kgSk9WQU4KK0VUSU5TS0kgTEpVQknFoEEKK0VUSU5TS0kgTUlIQUpMTworRVRJTlNLSSBNSUxPxaAKK0VUSU5TS0kgTUlMT1JBRAorRVRJTlNLSSBNSUxPUkFECitFVElOU0tJIE1JTE9WQU4KK0VUSU5TS0kgTkFEQQorRVRJTlNLSSBQRVRBUgorRVRJTlNLSSBSQURPVkFOCitFVElOU0tJIFNMT0JPREFOS0EKK0VUSU5TS0kgVkVMSktPCitFVElOU0tJIFZFUkEKK0VUSU5TS0kgVkVSSUNBCitFVE9SRSDEkElOQQorRVbEkEnEhiBTVEFOS0EKK0VWRVRPVknEhiBCTEHFoEtPCitFVkVUT1ZJxIYgSk9TSVAKK0VWRVRPVknEhiBKT1ZBTgorRVZFVE9WScSGIEpPVkFOCitFVknEhiBBTEVLU0FOREFSCitFVknEhiBEUkFHSUNBCitFVknEhiBKRUxJU0FWRVRBCitFVknEhiBKT1ZBTgorRVZJxIYgTEFaQVIKK0VWScSGIExBWkFSCitFVknEhiBQRVRBUgorRVZJxIYgU0FWQQorRkEgTUVMQU5JSkEKK0ZBIE1JTEtBCitGQcSMQVIgU1RFVkFOCitGQcSMS08gSk/FvUVGCitGQcSMS08gU0lNQQorRkFCSUFOIEJPUkJBTEEKK0ZBQklBTiBJxaBUVkFOCitGQUJJQU4gSkFOT8WgCitGQUJJSkFOIMWgQU5ET1IKK0ZBQklKQU4gQU5BCitGQUJJSkFOIElMT05BCitGQUJJSkFOIElNUkUKK0ZBQklKQU4gSVZBTgorRkFCSUpBTiBKQU5PxaAKK0ZBQklKQU4gTEFTTE8KK0ZBQklKQU4gTklLT0xBCitGQUJJSkFOIFNURVZBTgorRkFCSUpBTiBTVEVWQU4KK0ZBQklKQU7EjEnEhiBJVkFOCitGQUJJSkFOxIxJxIYgU1RKRVBBTgorRkFCSUpBTknEhiBNQVJJSkEKK0ZBQklKQU5PVknEhiBBTkEKK0ZBQlJJIE1JS0xPxaAKK0ZBQlJJIE5BTkRPUgorRkFCUkkgU1RKRVBBTgorRkFCUkkgWlZPTktPCitGQUJSSUsgS0FUQUxJTgorRkFDSVMgUEFOVEEKK0ZBSU4gQU5BCitGQUlOIExBSk/FoAorRkFJTiBTVEVWQU4KK0ZBSiBHQUJPUgorRkFKREVUScSGIExKVUJJQ0EKK0ZBSkRJR0EgQUxFS1NBTkRBUgorRkFKRkVSIFBFVEFSCitGQUpHRUxKIElWQU4KK0ZBSkhORVIgSEVOUklLCitGQUpIVE5FUiBKT1NJUAorRkFKSFRORVIgUlXFvUEKK0ZBSklOIEnFoFRWQU4KK0ZBSktBIERBTklDQQorRkFKS0EgTkFEQQorRkFKS0EgUEFWTEUKK0ZBSk5JSyBNQVJJSkEKK0ZBSlQtR1JBTkVSIFJPxb1BCitGQUpUIEpFTElDQQorRkFKVE5FUiBWRVJPTklLQQorRkFLSU4gRlJBTkpBCitGQUtJTiBJVkFOCitGQUtJTiBaVk9OSU1JUgorRkFMQiDEkE9SxJBFCitGQUxCIEJPU0lMSktBCitGQUxCIEpPU0lQCitGQUxCIEtBUk9MSgorRkFMQiBLQVJPTEoKK0ZBTEIgTUFSSU5BCitGQUxCIE1BVElKQQorRkFMQiBPVE8KK0ZBTEIgWk9MVEFOCitGQU1JTEnEhiDEkE9SxJBFCitGQU1JTEnEhiBJVkFOCitGQU7EjEVWScSGIEFMRUtTQU5EQVIKK0ZBTsSMRVZJxIYgSk9TSVAKK0ZBTsSMRVZJxIYgS0FUQUxJTgorRkFOxIxFVknEhiBMSlVERVZJVAorRkFOxIxFVknEhiBURVJFWklKQQorRkFOS0EgRFXFoEFOCitGQU5LQSBNQVJBCitGQVJBR08gxaBBTkRPUgorRkFSQUdPIMWgQU5ET1IKK0ZBUkFHTyBBUkFOS0EKK0ZBUkFHTyBBUlBBRAorRkFSQUdPIEZSQU5KQQorRkFSQUdPIEpPxb1FRgorRkFSQUdPIEpPU0lQCitGQVJBR08gS0FSTE8KK0ZBUkFHTyBMQVNMTworRkFSQUdPIE1BUklKQQorRkFSSyBBTUFMSUpBCitGQVJLIEJFQVRBCitGQVJLQcWgIEFMRUtTQU5EQVIKK0ZBUktBxaAgQUxFS1NBTkRBUgorRkFSS0HFoCBCT8W9RU5BCitGQVJLQcWgIERSQUdVVElOCitGQVJLQcWgIEVMRU1FUgorRkFSS0HFoCBFTElaQUJFVEEKK0ZBUktBxaAgRUxaQQorRkFSS0HFoCBFU1RFUgorRkFSS0HFoCBFU1RFUgorRkFSS0HFoCBGRVJFTkMKK0ZBUktBxaAgRkVSRU5DCitGQVJLQcWgIEZFUkVOQworRkFSS0HFoCBGRVJFTkMKK0ZBUktBxaAgRlJBTkpBCitGQVJLQcWgIEdBQk9SCitGQVJLQcWgIEnFoFRWQU4KK0ZBUktBxaAgScWgVFZBTgorRkFSS0HFoCBJTE9OQQorRkFSS0HFoCBJTE9OS0EKK0ZBUktBxaAgSU1SRQorRkFSS0HFoCBKQU4KK0ZBUktBxaAgSkFST1NMQVYKK0ZBUktBxaAgSkVMSVNBVkVUQQorRkFSS0HFoCBKT8W9RUYKK0ZBUktBxaAgSk/FvUVGCitGQVJLQcWgIEpPxb1FRgorRkFSS0HFoCBKT8W9RUYKK0ZBUktBxaAgSk9TSVAKK0ZBUktBxaAgSk9TSVAKK0ZBUktBxaAgSk9WQU4KK0ZBUktBxaAgSk9WR0VOCitGQVJLQcWgIEpVRElUQQorRkFSS0HFoCBLQVJMTworRkFSS0HFoCBLQVRBTElOCitGQVJLQcWgIEtMQVJBCitGQVJLQcWgIExBRElTTEFWCitGQVJLQcWgIExBSk/FoAorRkFSS0HFoCBMQVNMTworRkFSS0HFoCBNQVJJSkEKK0ZBUktBxaAgTUFUSUxEQQorRkFSS0HFoCBNSUhBTEoKK0ZBUktBxaAgTkFEQQorRkFSS0HFoCBQQUwKK0ZBUktBxaAgUEFWTEUKK0ZBUktBxaAgUk9aQUxJSkEKK0ZBUktBxaAgU1RFVkFOCitGQVJLQcWgLVRPVCBWSUtUT1JJSkEKK0ZBUktBxaAgVkVSQQorRkFSS0HFoCBWRVJJQ0EKK0ZBUktJxIYgTUlMQU4KK0ZBUktPViBKT1ZBTktBCitGQVQgSk9TSVAKK0ZBVCBMQVNMTworRkFUIE1JSEFMCitGQVRJxIYgTUFSQQorRkFUVVJPVknEhiBSQUpLTworRkFVS09WScSGIE5BREEKK0ZBWkVLQcWgIEFOVEFMCitGQVpFS0HFoCBKQU5PxaAKK0ZBWkVLQcWgIEtBVEFMSU4KK0ZBWkVLQcWgIFRJQk9SCitGQVpMScSGIEpFTElDQQorRkFaTEnEhiBKT1ZBTktBCitGQVpMSU5PVknEhiBFTEJJU0EKK0ZBWkxJTk9WScSGIEpBU01JTktBCitGRcWgScWgIElNUkUKK0ZFxaBJxaAgSk/FvUVGCitGRcWgScWgIEpPxb1FRgorRkVDRSBJVkFOCitGRUNFIE1BUklKQQorRkVERVJFUiBKT1ZBTgorRkVERVJFUiBNSVJLTworRkVESSBKT8W9RUYKK0ZFSEVSIMWgQU5ET1IKK0ZFSEVSIMWgQU5ET1IKK0ZFSEVSIMSQRVLEkAorRkVIRVIgxJBVTEEKK0ZFSEVSIMSQVUxBCitGRUhFUiBBTkRSQcWgCitGRUhFUiBBUklTVElECitGRUhFUiBFUk5FCitGRUhFUiBFUk5FCitGRUhFUiBGRVJFTkMKK0ZFSEVSIEpBTk/FoAorRkVIRVIgSkFOT8WgCitGRUhFUiBKQU5PxaAKK0ZFSEVSIEpPxb1FRgorRkVIRVIgSk/FvUVGCitGRUhFUiBKT1ZBTgorRkVIRVIgSk9WQU4KK0ZFSEVSIEpVTElKQQorRkVIRVIgS0FMTUFOCitGRUhFUiBMQUpPxaAKK0ZFSEVSIExBU0xPCitGRUhFUiBMQVNMTworRkVIRVIgTUFSR0lUQQorRkVIRVIgTUFSSUpBCitGRUhFUiBNSUhBSkxPCitGRUhFUiBOQU5ET1IKK0ZFSEVSIFNURVZBTgorRkVIRVIgU1RFVkFOCitGRUhFUiBURVJFWkEKK0ZFSEVSIFZFUkEKK0ZFSEVSVkFSSSBKRUxJU0FWRVRBCitGRUhJUiBBTEVLU0FOREFSCitGRUhJUiBQRVRBUgorRkVISVJPViBBVlJBTQorRkVISVJPViBLT1NBTkEKK0ZFSElST1YgTUlSSkFOQQorRkVKxJBJIFZMQURJTUlSCitGRUpERVRJxIYgVE9NSVNMQVYKK0ZFSkXFoCDFoEFORE9SCitGRUpFxaAgxJBPUsSQRQorRkVKRcWgIEFSQU5LQQorRkVKRcWgIEdFTkEKK0ZFSkXFoCBJxaBUVkFOCitGRUpFxaAgScWgVFZBTgorRkVKRcWgIEpBTk/FoAorRkVKRcWgIEpBTk/FoAorRkVKRcWgIExKSUxKQU5BCitGRUpFxaAgWk9MVEFOCitGRUpFxaAgWk9MVEFOCitGRUpGQVIgSlVMSUpBTkEKK0ZFSlNBIEdFT1JHSUpFCitGRUpTQSBKQU5LTyBNUiBQSAorRkVKU0EgTUFSR0lUQQorRkVKU0EtUE9QT1ZJxIYgTEVPTkEKK0ZFSlNUSEFNRUwgUEFMCitGRUpaVUxBSEkgRkVKWlVMQUgKK0ZFS0VURSDFoEFORE9SCitGRUtFVEUgxaBBTkRPUgorRkVLRVRFIMW9VcW9QU5BCitGRUtFVEUgQURPTEYKK0ZFS0VURSBGRVJFTkMKK0ZFS0VURSBGRVJFTkMKK0ZFS0VURSBKQUdPREEKK0ZFS0VURSBLQVJMTworRkVLRVRFIEtBVElDQQorRkVLRVRFIExBU0xPCitGRUtFVEUgTUFSSUpBCitGRUtFVEUgTUFSSUpBCitGRUtFVEUgTUFSSUpBCitGRUtFVEUgTUlIQUpMTworRkVLRVRFIE1JSEFMSgorRkVLRVRFIFBFVEFSCitGRUtFVEUgU1RFVkFOCitGRUtFVEUgVkVTTkEKK0ZFS0nEhiBWTEFESU1JUgorRkVMQkFCIFJBREEKK0ZFTEJBQiBTQVZBCitGRUxCQUIgU1RBTklNSVIKK0ZFTEJBQk9WIERJTUlUUklKRQorRkVMQkFCT1YgSk9WQU4KK0ZFTEJBQk9WIFZMQURJU0xBVkEKK0ZFTEJBUCBKVUxLQQorRkVMQkFQIE5JS09MQQorRkVMQkFQT1YgRElNSVRSSUpFCitGRUxCQVBPViBNSUxBTktBCitGRUxCQVBPViBNSUxPUkFECitGRUxCQVBPViBORU1BTkpBCitGRUxCQVBPViBSQURNSUxBCitGRUxCQVBPViBSQURPU0xBVgorRkVMQkFQT1YgU1RFVkFOCitGRUxExaBFUiBBTkEKK0ZFTETFoEVSIEtBUkxPCitGRUxERcWgREkgQU5EUklKQQorRkVMREXFoEkgRlJBTkpBCitGRUxERcWgSSBJQk9MSkEgRFIKK0ZFTERFxaBJIE1BUklKQQorRkVMREXFvURJIEpVTElKQU5BCitGRUxERcW9REkgTEFTTE8KK0ZFTERFxb1ESSBQRVRBUgorRkVMREXFvURJIFNURVZBTgorRkVMREVBSyBEQU5JQ0EKK0ZFTERFQUsgSk/FvUVGCitGRUxESSDFoEFORE9SCitGRUxESSBFUsW9RUJFVAorRkVMREkgSkFST1NMQVYKK0ZFTERWQVJJIEpPU0lQCitGRUxEVkFSSSBKT1ZBTgorRkVMRFZBUkkgSlVTVElOQQorRkVMRFZBUkkgS0FMTUFOCitGRUxEVkFSSSBPTEdJQ0EKK0ZFTERWQVJJIFNURVZBTgorRkVMRFZFQkVMIFJPWkFMSUpBCitGRUxFIERSQcW9RU4gTEVLQVIKK0ZFTEXEhiBJWkVUCitGRUxFR0kgQU5BCitGRUxFR0kgTEFESVNMQVYKK0ZFTEpBIE1JUkpBTkEKK0ZFTE5FUiBEVcWgQU5LQQorRkVMTkVSIFRJQk9SCitGRU1JxIYgQUxFS1NJSkUKK0ZFTUnEhiBCTEFHT0pFCitGRU1JxIYgR1JVSklDQQorRkVNScSGIE1JTElKQQorRkVNScSGIE1JTE9WQU4KK0ZFTUnEhiBQRVRLTworRkVNScSGIFJBRE1JTEEKK0ZFTUnEhiBTVEFOS0EKK0ZFTUnEhiBWRUxKS08KK0ZFTUnEhiBaT1JBCitGRU5DIFJVxb1JQ0EKK0ZFTkRMRVIgSk9WQU4KK0ZFTkRSSUsgQU5EUklKQQorRkVORFJJSyBGUkFOSk8KK0ZFTkRSSUsgS0FSTE8KK0ZFTkpBQyBJVkFOCitGRU5KQUMgSk9WQU4KK0ZFTkpBQyBTSU5JxaBBCitGRU5KQUMgU0xPQk9EQU5LQQorRkVOSkXFoCBBTkEKK0ZFTkpFxaAgRlJBTkpBCitGRU5KVkXFoEkgTUFSScWgS0EKK0ZFUsSMSUsgQU5EUklKQQorRkVSQVJJTk9WIFBBVkxFCitGRVJBUklPIFNJTFZJTworRkVSQVRJIEFGSVoKK0ZFUkFUSSBCRVJPCitGRVJBVEkgRUhBVAorRkVSQVRJIFJBR0lQCitGRVJBVEkgU0VKRklESU4KK0ZFUkFUSSBTS0VOREVSCitGRVJFTsSMQUsgSVZJQ0EKK0ZFUkVOxIxFSyBMSlVCSUNBCitGRVJFTsSMRUsgT0xJVkVSIERJUEwgSU5HCitGRVJFTsSMRUsgVklMS08KK0ZFUkVOxIxFViBNSUxPUkFECitGRVJFTsSMRVYgWk9SQQorRkVSRU7EjEVWScSGIMSQT1LEkEUKK0ZFUkVOxIxFVknEhi1TQUxBSiBKRUxFTkEKK0ZFUkVOQUMgQU5EUklKQQorRkVSRU5BQyBBTkRSSUpBCitGRVJFTkFDIElWQU4KK0ZFUkVOQUMgUkFETUlMQQorRkVSRU5DIEFOVEFMCitGRVJFTkMgSk/FvUVGCitGRVJFTkMgSk/FvUVGCitGRVJFTkNJIMSQRVLEkAorRkVSRU5DSSBERVpJREVSCitGRVJFTkNJIEVVR0VOCitGRVJFTkNJIEZSQU5KQQorRkVSRU5DSSBKVUxJSkFOQQorRkVSRU5DSSBTVEVWQU4KK0ZFUkVOQ0kgVkVSQQorRkVSSUsgSlVSQUoKK0ZFUklLIEpVUkFKCitGRVJJWk9WScSGIEFITUVUCitGRVJLTyBBTkRSRUogRFIgTEVLQVIKK0ZFUktPIE1JTE/FoAorRkVSS08gUEFWRUwKK0ZFUktPIFBBVkxFCitGRVJMQU4gUkFETUlMQQorRkVUQUhJIEJBSlJBTQorRkVUQUhPVknEhiBJU01FVAorRkVUQUkgWklCRVIKK0ZJxIxPSyBBTE9KWklKRQorRknFoEFLT1YgS09OU1RBRElOCitGScWgQU5HIExKSUxKQU5BCitGScWgRVIgxJBPUsSQRSBEUiBMRUtBUgorRknFoEVSIMSQT1LEkEUKK0ZJxaBFUiBBTEVLU0FOREFSIERSCitGScWgRVIgQUxFS1NBTkRBUgorRknFoEVSIEFOVE9OCitGScWgRVIgQkxBTktBCitGScWgRVIgRFJBR1VUSU4KK0ZJxaBFUiBHQVZSQQorRknFoEVSIElSRU5BCitGScWgRVIgSVJFTkEKK0ZJxaBFUiBKRU5FCitGScWgRVIgSk9TSVAKK0ZJxaBFUiBLQVJPTEoKK0ZJxaBFUiBMQVNMTworRknFoEVSIExFTyBEUgorRknFoEVSIE5BVEFMSUpBCitGScWgRVIgUElST8WgS0EKK0ZJxaBFUiBTVEVWQU4KK0ZJxaBFUiBaVk9OSU1JUgorRknFoEwgRkVET1IKK0ZJxaBMIEpVTElKQSBESVBMIElORworRknFoFRFxaAgSU1SRQorRknFoFRFxaAgTUFSSUpBCitGScWgVEXFoCBNSUhBTEoKK0ZJxaBURcWgIFBJUk/FoEtBCitGSUFMQSBJVkFOS0EKK0ZJQUxBIElWQU4KK0ZJQknFoEFOIMSQVVJBxJAKK0ZJQknFoEFOIFNMQVZPTEpVQgorRklDRSBFUsW9RUJFVAorRklDSU5HRVIgVkFMRVJJSkEKK0ZJRFXFoEVLIEtBVElDQQorRklGQSBEUkFHSUNBCitGSUZBIE5FQkkKK0ZJR1VSQSDFoEFORE9SCitGSUpBVE9WScSGIE9MR0EKK0ZJSlVLT1ZJxIYgU0FERVRBCitGSUpVTEpBTklOIFpVTEZPCitGSUxFS0kgTUlST1NMQVYKK0ZJTEVLT1ZJxIYgU0VJRAorRklMRVAgxJBFUsSQCitGSUxFUCDEkE9SxJBFCitGSUxFUCDEkE9SxJBFCitGSUxFUCBBTlRBTAorRklMRVAgQkVMQQorRklMRVAgSURBCitGSUxFUCBKRU5FCitGSUxFUCBKT8W9RUYKK0ZJTEVQIEtBTE1BTgorRklMRVAgS0FMTUFOCitGSUxFUCBMQURJU0xBVgorRklMRVAgTUlSSkFOQQorRklMRVAgWk9MVEFOCitGSUxFUEkgTUlST1NMQVYKK0ZJTElNT05PVknEhiDFvUlWT1JBRAorRklMSU1PTk9WScSGIMSQT1LEkEUKK0ZJTElQIEpPVkFOIERSIFBSQVZOSUsKK0ZJTElQIFJBRE9TQVYKK0ZJTElQxIxFViBaRFJBVktPCitGSUxJUEHFoCBEUkFHQU4KK0ZJTElQQcWgRVYgTkFEQQorRklMSVBFQyBaSVRBCitGSUxJUEVORElOIE1BUktPCitGSUxJUE9WIElMSUpBCitGSUxJUE9WIE1JTE/FoAorRklMSVBPViBNSU9EUkFHCitGSUxJUE9WIE1PTUlSCitGSUxJUE9WIE5JS09MQQorRklMSVBPViBQUkVEUkFHCitGSUxJUE9WIFJBRE9WQU4KK0ZJTElQT1YgU0xBxJBBTkEKK0ZJTElQT1YgVElIT01JUgorRklMSVBPViBUSUpBTkEKK0ZJTElQT1ZJxIYgxIxFRE8KK0ZJTElQT1ZJxIYgQUxFS1NBTkRBUgorRklMSVBPVknEhiBBTlRPTgorRklMSVBPVknEhiBCT8WgS08KK0ZJTElQT1ZJxIYgQk9HT01JUgorRklMSVBPVknEhiBCT1JBCitGSUxJUE9WScSGIEJSQU5LTworRklMSVBPVknEhi1EQU1KQU5PViBOQURBCitGSUxJUE9WScSGIERFU0FOS0EKK0ZJTElQT1ZJxIYgRElKQU5BCitGSUxJUE9WScSGIERPQlJJQ0EKK0ZJTElQT1ZJxIYgRE9CUklMQQorRklMSVBPVknEhiBEUkFHQU4KK0ZJTElQT1ZJxIYgRFJBR0FOCitGSUxJUE9WScSGIERVxaBBTktBCitGSUxJUE9WScSGIERVxaBBTktBCitGSUxJUE9WScSGIEdPUkRBTkEKK0ZJTElQT1ZJxIYgSVZBTgorRklMSVBPVknEhiBJVkFOCitGSUxJUE9WScSGIEpFTElTQVZFVEEKK0ZJTElQT1ZJxIYgSk9WQU4KK0ZJTElQT1ZJxIYgSk9WQU4KK0ZJTElQT1ZJxIYgTEVQT1NBVkEKK0ZJTElQT1ZJxIYgTEpJTEpBTkEKK0ZJTElQT1ZJxIYgTEpVQklDQQorRklMSVBPVknEhiBMSlVCSU5LQQorRklMSVBPVknEhiBMSlVCSU5LTworRklMSVBPVknEhiBNSUxBRElOCitGSUxJUE9WScSGIE1JTEFESU4KK0ZJTElQT1ZJxIYgTUlMQU4gRElQTCBJTkcKK0ZJTElQT1ZJxIYgTUlMQU5LQQorRklMSVBPVknEhiBNSUxBTktBCitGSUxJUE9WScSGIE1JTEFOCitGSUxJUE9WScSGIE1JTEFOCitGSUxJUE9WScSGIE1JTEFOCitGSUxJUE9WScSGIE1JTEVOQQorRklMSVBPVknEhiBNSUxFTktPCitGSUxJUE9WScSGIE1JTElWT0pFCitGSUxJUE9WScSGIE1JTEtBCitGSUxJUE9WScSGIE1JTE9KS08KK0ZJTElQT1ZJxIYgTUlMT1ZBTgorRklMSVBPVknEhiBNSU9EUkFHCitGSUxJUE9WScSGIE1JT0RSQUcKK0ZJTElQT1ZJxIYgTUlSSkFOQQorRklMSVBPVknEhiBNSVJLTworRklMSVBPVknEhiBNSVJPU0xBVgorRklMSVBPVknEhiBOQVRBxaBBCitGSUxJUE9WScSGIE5JS09MQQorRklMSVBPVknEhiBOSUtPTEEKK0ZJTElQT1ZJxIYgTklLT0xBCitGSUxJUE9WScSGIE5JS09MQQorRklMSVBPVknEhiBOSUtPTElOQQorRklMSVBPVknEhiBQQVVMQQorRklMSVBPVknEhiBQRVJPCitGSUxJUE9WScSGIFJBRElWT0oKK0ZJTElQT1ZJxIYgUkFET0pLQQorRklMSVBPVknEhiBSQURPSktPCitGSUxJUE9WScSGIFJBRE9TTEFWCitGSUxJUE9WScSGIFJBRE9WQU4KK0ZJTElQT1ZJxIYgUkFOS0EKK0ZJTElQT1ZJxIYgUlXFvUFOQQorRklMSVBPVknEhiBSVURPTEYKK0ZJTElQT1ZJxIYgU0FWQSBESVBMIElORworRklMSVBPVknEhiBTQVZBCitGSUxJUE9WScSGIFNJQklOCitGSUxJUE9WScSGIFNMQVZLTworRklMSVBPVknEhiBTTkXFvUFOQQorRklMSVBPVknEhiBTUEFTT0pFCitGSUxJUE9WScSGIFNSxJBBTgorRklMSVBPVknEhiBTUkXEhktPCitGSUxJUE9WScSGIFNURVZBTiBEUiBTVE9NQVRPTE9HCitGSUxJUE9WScSGIFNUT0pBTgorRklMSVBPVknEhiBTVE9KQU4KK0ZJTElQT1ZJxIYgVE9NSVNMQVYKK0ZJTElQT1ZJxIYgVkVTTkEKK0ZJTElQT1ZJxIYgVklET1NBVgorRklMSVBPVknEhiBWTEFESU1JUgorRklMSVBPVknEhiBaT1JBTgorRklMSVBPVknEhiBaT1JBTgorRklMSVBPVknEhiBaT1JBTgorRklMSVBPVknEhiBaT1JBTgorRklMSVBPVknEhiBaT1JJQ0EKK0ZJTElQT1ZTS0EtT0JSQURPVknEhiBWRVJBCitGSUxJUE9WU0tJIEJPxb1PCitGSUxJUE9WU0tJIFRPRE9TCitGSUxLTyBEUkFHSUNBCitGSUxLTyBKT1NJUAorRklMS08gSk9WQU4KK0ZJTEtPIE1BUklKQQorRklMS08gTUlIQUxKCitGSUxLTyBNSUhBTEoKK0ZJTEtPIFBBVkVMCitGSUxLTyBUSUhPTUlSCitGSU7EjFVSIEFMRUtTQU5EQVIKK0ZJTsSMVVIgSk/FvUVGCitGSU7EjFVSIEpVTElKQU5BCitGSU7EjFVSIExBRElTTEFWCitGSU5Exb1BTk9WScSGIEdPSktPCitGSU5Exb1BTk9WScSGIE1JS08KK0ZJTkTFvUFOT1ZJxIYgTUlSS08KK0ZJTkTFvUFOT1ZJxIYgT0JSQUQKK0ZJTkstRElNSVRSSUpFVknEhiBET1JPVEVBCitGSU5LIFZJS1RPUiBOT1ZJTkFSCitGSU5LQSBHT1LEjEFOCitGSVIgQkVBVEEKK0ZJUkFOSiBKT8W9RUYKK0ZJUkFOSkkgxJBFUsSQCitGSVJBTkpJIMSQT1LEkEUKK0ZJUkFOSkkgxJBPUsSQRQorRklSQU5KSSBFUsW9RUJFVAorRklSQU5KSSBKT1ZBTgorRklSQU5KSSBWSUtUT1IKK0ZJUknEhiBNQVJJSkEKK0ZJUlVMT1ZJxIYgS09TVEFOVElOCitGSVNUUknEhiDEkE9SxJBFCitGSVNUUknEhiBNSVJKQU5BCitGSVZFxaBJIEdBQk9SCitGSVZFxaBJIFRJQk9SCitGTEFDIElWQU5LQQorRkxBQyBQRVRBUgorRkxBSlMgSkVMSVNBVkVUQQorRkxFR0VSIFNURVZBTgorRkxFR08gSVZBTgorRkxFR08gTUFSVEEKK0ZMRUtBxIwgVkxBRE8KK0ZMSVRORVIgT1NLQVIKK0ZMT0tBIMSQRU5JS0EKK0ZMT1JBIFZBU0EKK0ZMT1JJxIYgRElNSVRSSUpFCitGTE9SScSGIExKVUJJQ0EKK0ZMT1JJxIYgWk9SQU4KK0ZMT1JJxIYgWk9SQU4KK0ZMT1JJTiBWSU5LQQorRk9ET1Igxb1PRklKQQorRk9ET1IgQU5BCitGT0RPUiBBTkRSSUpBCitGT0RPUiBFUsW9RUJFVAorRk9ET1IgRkVSRU5DCitGT0RPUiBGUkFOSkEKK0ZPRE9SIEZSQU5KQQorRk9ET1IgSk9MQU4KK0ZPRE9SIEpPVkFOCitGT0RPUiBKT1ZBTgorRk9ET1IgS0FMTUFOCitGT0RPUiBLQVRBCitGT0RPUiBMQUpPxaAKK0ZPRE9SIExBU0xPCitGT0RPUiBMQVNMTworRk9ET1IgTEFTTE8KK0ZPRE9SIExBU0xPCitGT0RPUiBMSURJSkEKK0ZPRE9SIE1BUlRBCitGT0RPUiBPU0tBUiBESVBMIE9FQworRk9ET1IgVElCT1IKK0ZPRE9SIFRJQk9SCitGT0RPUiBUSUJPUgorRk9ET1IgWkRSQVZLTworRk9ET1JBIEpBTktPCitGT0dBUkHFoEkgxJBFUsSQIERSCitGT0dBUkHFoEkgxJBFUsSQCitGT0dBUkHFoEkgQU5EUklKQQorRk9HQVJBxaBJIEFOSUtPCitGT0dBUkHFoEkgSUxPTkEKK0ZPR0FSQcWgSSBTVEVWQU4KK0ZPR0wgTUFHREFMRU5BCitGT0pLQVIgSkFOS08KK0ZPTEnEhiBSQURPTUlSIERSCitGT0xUSU4gTUFSR0lUQQorRk9MVElOIE1JTElDQQorRk9OVEFOSiBMT1RBUgorRk9SQUkgWk9MVEFOCitGT1JBSSBaT1JJQ0EKK0ZPUkdBxIwgSkVMSVNBVkVUQQorRk9SR0nEhiBJVkFOCitGT1JHTyBJxaBUVkFOCitGT1JHTyBMQVNMTworRk9SScWgS09WIEpPVkFOS0EKK0ZPUknFoEtPViBMQVpBUgorRk9SScWgS09WScSGIEFMRUtTQU5EQVIKK0ZPUktBUEEgU0FWTworRk9SS0FQScSGIEFMRUtTQU5EQVIKK0ZPUktBUEnEhiBJVkFOS0EKK0ZPUktBUEnEhiBMQVpBUgorRk9SS0FQScSGIE1BUklKQQorRk9SS0FQScSGIE5JS09MQQorRk9SS0FQScSGIFNBVkEKK0ZPUktBUEnEhiBTTEFWSUNBCitGT1JLQVBJxIYgVkVMSU5LQQorRk9STyBJVkFOCitGT1JPIEpVTElKQU5BCitGT1RJxIYgxJBPUsSQRQorRk9aRUtPxaAgQU5LSUNBCitGUsSMRUsgxJBVUkEKK0ZSxIxFSyBNQVJJSkEKK0ZSxb1PUCBNScWgRQorRlLFvU9WScSGIMSQT1LEkEUKK0ZSxb1PVknEhiBHQVZSSUxPCitGUsW9T1ZJxIYgTUlIQUpMTworRlLFvU9WScSGIE1JTEVOQQorRlJBQ0lMRSBOSUNFCitGUkFKU1QgUlVET0xGCitGUkFKVE9WScSGIE1PTcSMSUxPCitGUkFKWiBQRVRBUgorRlJBTsSMScSGIFJPSworRlJBTkMgTUFHREFMRU5BIERJUEwgSU5HCitGUkFOQ0VMSiBGUkFOQworRlJBTkNFUiBJVkFOCitGUkFOQ0VSIElWQU4KK0ZSQU5DScWgS09WScSGIEFUSUxBCitGUkFOQ0nFoEtPVknEhiBJVkFOCitGUkFOQ0nFoEtPVknEhiBNQVRFCitGUkFOQ0lBIEFORFJJSkEKK0ZSQU5DSUEgScWgVFZBTgorRlJBTkNJQSBQRVRBUgorRlJBTkNJSkEgSk/FvUVGCitGUkFOQ0lKQS1LVUtJxIxLQSBNQVJHQVJFVEEKK0ZSQU5DSVNUSSDEkE9SxJBFCitGUkFOQ0lTVEkgSkFST1NMQVYKK0ZSQU5DSVNUSSBQQVZMRQorRlJBTkNJU1RJIFZMQURJTUlSCitGUkFOQ1VTS0kgQUxFS1NBCitGUkFOQ1VTS0kgQlJBTklTTEFWCitGUkFOQ1VTS0kgREFSSU5LQQorRlJBTkNVU0tJIERFU0FOS0EKK0ZSQU5DVVNLSSBEUkFHQU4KK0ZSQU5DVVNLSSBEVcWgQU4KK0ZSQU5DVVNLSSBJVkFOIERSCitGUkFOQ1VTS0kgSk9WQU5LQQorRlJBTkNVU0tJIE1BUktPCitGUkFOQ1VTS0kgTUlMQU4KK0ZSQU5DVVNLSSBNSVJPU0xBVgorRlJBTkNVU0tJIFBFVEFSCitGUkFOQ1VTS0kgUkFET1ZBTgorRlJBTkNVU0tJIFNMT0JPREFOS0EKK0ZSQU5DVVNLSSBTVFJBSElOSkEKK0ZSQU5DVVNLSSBaT1JBTgorRlJBTkNVU0tJIFpPUkFOCitGUkFOQ1VTS0kgWk9SS0EKK0ZSQU5DVVNLSSBaT1JLQQorRlJBTkNVWiBEQVJJTktBCitGUkFOQ1VaIEpFTEVOQQorRlJBTkNVWiBWRUxJTUlSCitGUkFOQ1VaIFZVSworRlJBTkVUQSBKT1ZPCitGUkFOScSGIElWQU4KK0ZSQU5JxIYgTUlMS0EKK0ZSQU5KScSMRVZJxIYgTklLT0xBCitGUkFOSknEhiBNQVJJQ0EKK0ZSQU5KTyDFvVXFvUFOQQorRlJBTksgxJBFUsSQCitGUkFOSyBGRVJFTkMKK0ZSQU5LIElMRcWgCitGUkFOSyBKQU5PxaAKK0ZSQU5LIFRJQk9SCitGUkFOS0EgTUlIQUpMTworRlJBTktPVknEhiBKT1ZBTgorRlJBTk9WScSGIEFMRUtTQU5EUkEKK0ZSQU5PVknEhiBWTEFESU1JUgorRlJBTlpFUiBJVkFOCitGUkFUT0ogSk9DQQorRlJBVFJJxIYgU0lHTVVORAorRlJBVFVDQU4gxJBPUsSQRQorRlJBVFVDQU4gxJBPUsSQRQorRlJBVFVDQU4gRklMSVAKK0ZSQVRVQ0FOIElWQU4KK0ZSQVRVQ0FOIE5FVkVOQQorRlJBVFVDQU4gUEVUQVIKK0ZSQVRVQ0FOT1YgSVZBTktBCitGUkVJIEVMSVpBQkVUQQorRlJFTUVSIEFOVFVOCitGUkVNTCDFoEFORE9SCitGUkVOS0VMIEFOQQorRlJFTktFTCBFVkEKK0ZSRU5LTCBEUkFHSUNBCitGUknEjCBCT8W9SURBUgorRlJJxIwgS0FUSUNBCitGUknFoCBEUkFHQU4KK0ZSScWgIE1JTEFOCitGUknFoMSMScSGIERSQUdVVElOCitGUklDIFJVRE9MRgorRlJJRFJJSCBBTkEKK0ZSSURSSUggSkVMRU5BCitGUklEUklIIE1BR0RBCitGUklEUklIIFpPUklDQQorRlJJTkRJSyBGUkFOSkEKK0ZSSU5ESUsgTUlIQUxKCitGUklORFJJSyBCRUxBCitGUktBIEFSVFVSCitGUktBIE5JS09MQQorRlJMSiBNVUhBUkVNCitGUk9MIE1BUklKQU4KK0ZST0wgTkFEQQorRlJPTCBWSUxJTQorRlJVxb1BIEFMRUtTQU5EQVIKK0ZVxIxJSyBLQVJMTworRlVERVJFUiBKVUxJSkUKK0ZVREVSRVIgTUFHREFMRU5BCitGVUpLQSDEkE9SxJBFCitGVUpUTyBWTEFESU1JUgorRlVMQUpURVIgxJBPUsSQRQorRlVOxIZJSyBQQVZMRQorRlVORFVSVUxKQSBNSUxFTktPCitGVU5LIMWgVEVGQU5JSkEKK0ZVTksgTEFKT8WgCitGVU5URUsgSVZBTgorRlVSSkFOT1ZJxIYgVkxBRElTTEFWCitGVVJMQU4gRVLFvUVCRVQKK0ZVUkxBTiBNQVJLTworRlVSTUFOIEZSQU5KQQorRlVSTUFOIEpPVkFOCitGVVJNQU4gTUFSSUpBCitGVVJNQU4gVElNT0ZFSgorRlVSTUFOIFRJTktBCitGVVJPIElNUkUKK0ZVU0tPIEFOR0VMQQorRlVTS08gScWgVFZBTgorRlVTS08gTUFSSUpBCitGVVNLTyBNSUhBTEoKK0ZVVE8gQU5UQUwKK0ZVVE8gSk/FvUVGCitGVVRPIEpPxb1FRgorRlVUTyBNSVJLTworRlVUT8WgS0kgTUlMQU4KK0ZVVE/FoEtJIE1JVEEKK0dBxIxBTk9WScSGIERSQUdBTgorR0HEjEVWScSGIE1JUk9TTEFWCitHQcSMRVZJxIYgUkFERU5LTworR0HEjEVWScSGIFRFUkVaQQorR0HEjEnEhiBCUkFOS08KK0dBxIxJxIYgREFOSUNBCitHQcSMScSGIERBTklMTworR0HEjEnEhiBNSUxBTgorR0HEjEnEhiBTVEVWQU4KK0dBxIxJxIYgU1RFVkFOCitHQcSMScSGIFZMQURBTgorR0HFoEVWScSGIE1JTE9SQUQKK0dBxaBFVknEhiBNSUxPVkFOCitHQcWgRVZJxIYgTU9NxIxJTE8KK0dBxaBFVknEhiBSQURNSUxBCitHQcWgRVZJxIYgU0FWS0EKK0dBxaBFVknEhiBaRFJBVktPCitHQcWgSSDEkEVNQUlMSgorR0HFoEkgSEFNREkKK0dBxaBJIEpVTElKQU5BCitHQcWgSSBMSlVBTgorR0HFoEkgWk9SQU4KK0dBxaBJxIYgQk9HREFOCitHQcWgScSGIERVxaBBTgorR0HFoEnEhiBLT1ZJTEpLQQorR0HFoEnEhiBLT1ZJTEpLQQorR0HFoEnEhiBLUlNUQQorR0HFoEnEhiBNSVJPTEpVQgorR0HFoEnEhiBOSUtPTEEKK0dBxaBJxIYgU0lMVkFOQQorR0HFoEnEhiBUT0RPUiBESVBMIElORworR0HFoEnEhiBWQUxFUklKQQorR0HFoEnEhiBaRFJBVktPCitHQcWgScSGIFpPUkEKK0dBxaBQQVIgQk9HREFOCitHQcWgUEFSIEpBTk/FoAorR0HFoFBBUiBMQUpPxaAKK0dBxaBQQVIgTElESUpBCitHQcWgUEFSIE1JTEVOS08KK0dBxaBQQVJFVknEhiBFUklLQQorR0HFoFBBUkVWScSGIExKSUxKQU5BCitHQcWgUEFSScSGIE5BREEKK0dBxaBQQVJJTiBMSklMSkFOQQorR0HFoFBBUk9WScSGIEpPU0lQCitHQcSGQSBCUkFOSVNMQVYKK0dBxIZBIE1JT0RSQUcKK0dBxIZBIFZMQURJTUlSCitHQcSGQcWgIERSQUdJQ0EKK0dBxIZBxaAgU0lOScWgQQorR0HEhkHFoCBTVEVWQU4KK0dBxIZFxaBBIMSQVVJPCitHQcSGRcWgQSBCUkFOS0EKK0dBxIZFxaBBIERSQUdBTgorR0HEhkXFoEEgRFJBR0FOCitHQcSGRcWgQSBJTElKQQorR0HEhkXFoEEgTUFOT0pMTworR0HEhkXFoEEgTUlMT8WgCitHQcSGRcWgQSBNSUxPUkFECitHQcSGRcWgQSBNSUxPVkFOIERSCitHQcSGRcWgQSBOSUtPTEEKK0dBxIZFxaBBIFNMQVZLTworR0HEhkXFoEEgVkVMSktPCitHQcSGRcWgQSBWTEFESU1JUgorR0HEhklOQSDFvUFSS08KK0dBxIZJTkEgTEpJTEpBTkEKK0dBxIZJTk9WScSGIEJPxb1PCitHQcSGSU5PVknEhiBCUkFOS08KK0dBxIZJTk9WScSGIE1JTElWT0pFCitHQcSGSU5PVknEhiBNSUxPUkFECitHQcSGSU5PVknEhiBSQUpLTworR0HFvUkgSkVMSVNBVkVUQQorR0HFvUlLIFRFUkVaSUpBCitHQcW9TyBLQVRJQ0EKK0dBxb1PLU1BVE/FoEtPVknEhiBPTEdJQ0EKK0dBxb1PIE1JSEFKTE8KK0dBxb1PIE1JS0xPxaAKK0dBxJBBTlNLSSBaT1JBTgorR0FCTEVSIFZJS1RPUklKQQorR0FCT1IgQVJQQUQKK0dBQk9SIEJFTEEKK0dBQk9SIEVSxb1FQkVUCitHQUJPUiBJUkVOQQorR0FCT1IgSk/FvUVGCitHQUJPUiBLQVJPTEoKK0dBQk9SIE5BTkRPUgorR0FCT1JPViBCUkFOSVNMQVYKK0dBQk9ST1YgQlJBTklTTEFWCitHQUJPUk9WIEdBVlJJTE8KK0dBQk9ST1YgTUlMQU4KK0dBQk9ST1YgTUlUQQorR0FCT1JPViBQQVZMRQorR0FCT1JPViBQRVRBUgorR0FCUkUgUk9LTworR0FCUknEhiBFVklDQQorR0FCUknEhiBLU0VOSUpBCitHQUJSScSGIE1JSEFKTE8KK0dBQlJJxIYgTkVTVE9SCitHQUJSScSGIFBFVEFSCitHQUJSScSGIFNMQVZLTworR0FCUklFTCBNSUtMT8WgCitHQUJSSUpFTMSMScSGIFpEUkFWS08KK0dBQlJPVknEhiBBTkRSQcWgCitHQUJST1ZJxIYgQU5EUklKQQorR0FDSU4gTUlST1NMQVYKK0dBRMW9QSBLUknFvUFOCitHQUTFvUEgUlXFvUEKK0dBRMW9ScSGIE1JTEFOCitHQUTFvUnEhiBWSU5LTworR0FExb1VUiBJVkFOCitHQUTFvVVSScSGIFpMQVRLTworR0FEQU5FQyBLQVRBUklOQQorR0FETkpBSSBKT1ZBCitHQUROSkFOU0tJIFZMQURJTUlSCitHQUdJxIYgQUxFS1NBTkRBUgorR0FHScSGIEFWUkFNCitHQUdJxIYgQk/FoEtPCitHQUdJxIYgQk9SSVZPSkUKK0dBR0nEhiBEUkFHSUNBCitHQUdJxIYgRFXFoEFOCitHQUdJxIYtR1JVQkXFoEEgTUlMRVZBCitHQUdJxIYgSk9WQU5LQQorR0FHScSGIEpPVkFOCitHQUdJxIYgTklLT0xBCitHQUdJxIYgTklLT0xBCitHQUdJxIYgUkFET1NMQVYKK0dBR0nEhiBSQURPVkFOCitHQUdJxIYgU0xPQk9EQU4KK0dBR0nEhiBWSURPU0FWQQorR0FHT1ZJxIYgTUlMT1JBRAorR0FHT1ZJxIYgTk9WQUsKK0dBR09WScSGIE9MR0EKK0dBR09WScSGIFJBRE9TQVYKK0dBR1LEjElOIExBWkFSCitHQUdSxIxJTiBNTEFERU4KK0dBR1JJQ0EgSk9WQU4KK0dBR1VMQSBNVUpPCitHQUnEhiBWRUxKS08KK0dBSUNLSSBOSUtPTEEKK0dBSUNLSSBTQU5KQQorR0FJQ0tJIFRBTkFTSUpFCitHQUlDS0kgVkVSSUNBCitHQUlOT1YgUkFET1ZBTgorR0FKxaBJTiBTTEFWSUNBCitHQUrFoElOIFNNSUxKQQorR0FKxaBJTiBTVEFOSVNMQVYKK0dBSkFOScSGIFNUSkVQQU4KK0dBSkRBIMWgQU5ET1IKK0dBSkRPxaAgxJBVTEEKK0dBSkRPxaAgScWgVFZBTgorR0FKRE/FoCBJQk9MSkEKK0dBSkRPxaAgTEFTTE8KK0dBSkRPxaAgTEpVQk9NSVIKK0dBSkRPxaAgTUlIQUpMTworR0FKRE/FoCBOSUtPTEEKK0dBSkRPxaAgUEVUQVIKK0dBSkRPxaBFVknEhiDEkE9SxJBFCitHQUpET0JSQU5TS0kgxJBPUsSQRSBEUgorR0FKRE9CUkFOU0tJIERBTklDQQorR0FKRE9CUkFOU0tJIERSQUdJQ0EKK0dBSkRPQlJBTlNLSSBMSlVCSUNBCitHQUpET0JSQU5TS0kgTUFSSUpBCitHQUpET0JSQU5TS0kgTUlMSVZPSgorR0FKRE9CUkFOU0tJIFBFVEFSCitHQUpET0JSQU5TS0kgVE9ET1IKK0dBSkVSIMSQVVJBCitHQUpFUiBKT0NBCitHQUpFUiBMRU9OQQorR0FKRVIgTUFOT0pMTworR0FKRVIgTkFEQQorR0FKR0VSIEpPxb1FRgorR0FKScWgSU4gREFSQQorR0FKScWgSU4gTEFaQVIKK0dBSknFoElOIE1JTElDQQorR0FKScWgSU4gUEVUQVIKK0dBSknFoElOIFNURVZBTgorR0FKScWgSU4gU1RFVkFOCitHQUpJxaBJTiBUT01JU0xBVgorR0FKScSGIMW9QVJLTworR0FKScSGIMW9QVJLTworR0FKScSGIMW9SVZLQQorR0FKScSGIMW9SVZLTworR0FKScSGIMW9SVZPVEEKK0dBSknEhiDEkE9SxJBFCitHQUpJxIYgxJBVUk8KK0dBSknEhiBBTEVLU0FOREFSCitHQUpJxIYgQU5BCitHQUpJxIYgQk/FvUlDQQorR0FKScSGIEJPxb1JREFSCitHQUpJxIYgQk9HREFOCitHQUpJxIYgQk9HT0xKVUIKK0dBSknEhiBCT1JJU0xBVgorR0FKScSGIEJSQU5LTworR0FKScSGIEJSQU5LTworR0FKScSGIENWSUpBTgorR0FKScSGIENWSUpBTgorR0FKScSGIERBTklDQQorR0FKScSGIERFSkFOCitHQUpJxIYgREVKQU4KK0dBSknEhiBERUpBTgorR0FKScSGIERJTUlUUklKRQorR0FKScSGIERSQUdBTgorR0FKScSGIERSQUdBTgorR0FKScSGIERSQUdJQ0EKK0dBSknEhiBEUkFHT0xKVUIKK0dBSknEhiBEUkFHTworR0FKScSGIERVxaBBTiBESVBMIElORworR0FKScSGIERVxaBLTyBESVBMIFBSQVZOSUsKK0dBSknEhiBHT0pLTworR0FKScSGIEdPUkFOCitHQUpJxIYgR09SREFOQQorR0FKScSGIElCT0xKQQorR0FKScSGIEpFTEVOQQorR0FKScSGIEtBVEFSSU5BCitHQUpJxIYgS1JJU1RJTkEKK0dBSknEhiBLUlVOQQorR0FKScSGIExBWkFSCitHQUpJxIYgTEFaTworR0FKScSGIE1BS1NBCitHQUpJxIYgTUFSSUpBIERSCitHQUpJxIYgTUFSSUpBCitHQUpJxIYgTUFSSU5LTyBEUgorR0FKScSGIE1JxIZPCitHQUpJxIYgTUlLQQorR0FKScSGIE1JTEFOQQorR0FKScSGIE1JTEFOCitHQUpJxIYgTUlMQU4KK0dBSknEhiBNSUxBTgorR0FKScSGIE1JTEFOCitHQUpJxIYgTUlMQU4KK0dBSknEhiBNSUxJTktPCitHQUpJxIYgTUlMSVZPSgorR0FKScSGIE1JTE/FoAorR0FKScSGIE1JTE9KS0EKK0dBSknEhiBNSUxPU0FWCitHQUpJxIYgTUlMT1ZBTgorR0FKScSGIE1JT0RSQUcKK0dBSknEhiBNSU9EUkFHCitHQUpJxIYgTUlSSkFOQQorR0FKScSGIE1JUktPIERSCitHQUpJxIYgTUlSS08KK0dBSknEhiBNSVJPU0xBVgorR0FKScSGIE1JVFJBCitHQUpJxIYgTUxBREVOS08KK0dBSknEhiBNTEFERU4KK0dBSknEhiBNT03EjElMTworR0FKScSGIE5FREVMSktPCitHQUpJxIYgTklLT0xBIERJUEwgSU5HCitHQUpJxIYgTklLT0xBCitHQUpJxIYgTklLT0xBCitHQUpJxIYgTk9WQUsKK0dBSknEhiBPTElWRVJBCitHQUpJxIYgUEVMS0EKK0dBSknEhiBQRVJTQQorR0FKScSGIFJBREVOS08KK0dBSknEhiBSQURNSUxBCitHQUpJxIYgUkFET01JUgorR0FKScSGIFJBSktBCitHQUpJxIYgUkFUS08KK0dBSknEhiBSQVRLTworR0FKScSGIFJPWkFMSUpBCitHQUpJxIYgUlXFvUlDQQorR0FKScSGIFNBVkEKK0dBSknEhiBTTEFLQQorR0FKScSGIFNMQVZJQ0EKK0dBSknEhiBTTEFWS08KK0dBSknEhiBTTEFWS08KK0dBSknEhiBTUkXEhktPCitHQUpJxIYgU1JFVE8KK0dBSknEhiBTVEFOSU1JUgorR0FKScSGIFNUQU5PSkxPCitHQUpJxIYgU1RPSkFOCitHQUpJxIYgU1RSQUhJTkpBCitHQUpJxIYgU1ZFVE9aQVIKK0dBSknEhiBUQU5BU0tPCitHQUpJxIYgVkVMSU1JUgorR0FKScSGIFZFU05BCitHQUpJxIYgVklEQQorR0FKScSGIFZJRE9TQVZBCitHQUpJxIYgVkxBRElTTEFWCitHQUpJxIYgWk9SQU4KK0dBSklDQSBCUkFOS08KK0dBSklDS0kgQlJBTktPCitHQUpJQ0tJIERVxaBBTgorR0FKSUNLSSBKRUxFTkEKK0dBSklDS0kgTEFaQVIKK0dBSklDS0kgTUFSSUpBCitHQUpJQ0tJIE1JTEEKK0dBSklDS0kgTUlMSUNBCitHQUpJQ0tJIFNBVkEKK0dBSklOIMW9SVZLTworR0FKSU4gxJBPUsSQRQorR0FKSU4gQUxFS1NBTkRBUgorR0FKSU4gQU5LQQorR0FKSU4gQlJBTktPCitHQUpJTiBEUkFHSUNBCitHQUpJTiBKT1ZBTgorR0FKSU4gTEFaQVIKK0dBSklOIE1JSEFKTE8KK0dBSklOIE1JTEFOCitHQUpJTiBNSUxFTktPCitHQUpJTiBNSUxPVkFOCitHQUpJTiBNSVJKQU5BCitHQUpJTiBOQURBCitHQUpJTiBORVZFTktBCitHQUpJTiBQRVRBUgorR0FKSU4gU0xBVktBIERSCitHQUpJTiBTVkVUTEFOQQorR0FKSU4gVkxBRElNSVIKK0dBSklOQSBEUkFHT01JUgorR0FKSU5PViDFvUlWQU4KK0dBSklOT1Ygxb1JVktPCitHQUpJTk9WIMW9SVZLTworR0FKSU5PViDEkE9LSUNBCitHQUpJTk9WIEFMRUtTQU5EQVIKK0dBSklOT1YgQU7EkEVMS0EKK0dBSklOT1YgQlJBTktPCitHQUpJTk9WIERJTUlUUklKRQorR0FKSU5PViBEUkFHT01JUgorR0FKSU5PViBJVkFOS0EKK0dBSklOT1YgSkVMRU5BCitHQUpJTk9WIEpPVkFOCitHQUpJTk9WIEpVTEtBCitHQUpJTk9WIEtPU1RBCitHQUpJTk9WIEtPU1RBCitHQUpJTk9WIExBWkFSCitHQUpJTk9WIExBWkFSCitHQUpJTk9WIExBWkFSCitHQUpJTk9WIExKSUxKQU5BCitHQUpJTk9WIExKVUJJQ0EKK0dBSklOT1YgTEpVQklDQQorR0FKSU5PViBNQVJJSkEKK0dBSklOT1YgTUFSS08KK0dBSklOT1YgTUFSS08KK0dBSklOT1YgTUlMQU4KK0dBSklOT1YgTUlMT1JBRAorR0FKSU5PViBNSUxPUkFECitHQUpJTk9WIE1JTE9SQUQKK0dBSklOT1YgTklLT0xBCitHQUpJTk9WIFBFUkEKK0dBSklOT1YgUEVSU0lEQQorR0FKSU5PViBSQURBCitHQUpJTk9WIFJBRElWT0oKK0dBSklOT1YgUkFESVZPSgorR0FKSU5PViBTQVZBCitHQUpJTk9WIFNURVZBTgorR0FKSU5PViBTVEVWQU4KK0dBSklOT1YgVE9ET1IKK0dBSklOT1YgVkVMSU1JUgorR0FKSU5PVknEhiDEkE9SxJBFCitHQUpJTk9WScSGIMSQT1LEkEUKK0dBSklOT1ZJxIYgREFOSUNBCitHQUpJTk9WScSGIERSQUdBTkEKK0dBSklOT1ZJxIYgRFXFoEFOCitHQUpJTk9WScSGIElLT05JSkEKK0dBSklOT1ZJxIYgSk9WQU4KK0dBSklOT1ZJxIYgSk9WQU4KK0dBSklOT1ZJxIYgS0FUSUNBCitHQUpJTk9WScSGIExKVUJJQ0EKK0dBSklOT1ZJxIYgTUlMQU4KK0dBSk8gScWgVFZBTgorR0FKT0RJIEpPxb1FRgorR0FKT0RJIE1BUklKQQorR0FKT1ZJxIYgSlVMSUpBTkEKK0dBSk9WScSGIE1PTcSMSUxPCitHQUpPVknEhiBSQURPSkUKK0dBSlRBIEFOSUNBCitHQUpUQSBBVVJFTElKQQorR0FLIEFMRUtTQU5EUkEKK0dBSyBNSUxBTgorR0FLIE5FVkVOS0EKK0dBSyBSQURFCitHQUsgU0xBVktPCitHQUsgU05Fxb1BTkEKK0dBSyBaT1JLQQorR0FLScSGIEJPxaBLTworR0FLT1ZJxIYgQU5UT05JSkEKK0dBS09WScSGIEpFTEVOQQorR0FLT1ZJxIYgTUFSSUpBCitHQUtPVknEhiBNSVJLTworR0FLT1ZJxIYgTUlSS08KK0dBS09WScSGIFJBTktPCitHQUtPVknEhiBaT1JBCitHQUwgxaBBTkRPUgorR0FMIMSQVUxBCitHQUwgxJBVTEEKK0dBTCBBTktBCitHQUwgRkVSRU5DCitHQUwgRkVSRU5DCitHQUwgRkVSRU5DCitHQUwgR0FCT1IKK0dBTCBHSVpFTEEKK0dBTCBKQU5PxaAKK0dBTCBKT8W9RUYKK0dBTCBKT8W9RUYKK0dBTCBKT1ZBTgorR0FMIEtBTE1BTgorR0FMIExBSk/FoAorR0FMIExBSk/FoAorR0FMIE1BUkdJVAorR0FMIE1BUklBCitHQUwgTUnFoEEKK0dBTCBNSUtMT8WgCitHQUwgUEFWTEUKK0dBTCBQRVRBUgorR0FMIFBFVEFSCitHQUwgU1RFVkFOCitHQUxBQyBKT1NJUAorR0FMQUMgUEFWTEUKK0dBTEFNQiBBVElMQQorR0FMQU1CT8WgIEFOQQorR0FMQU1CT8WgIEFOVE9OCitHQUxBTUJPxaAgRVLFvUVCRVQKK0dBTEFNQk/FoCBJTVJFCitHQUxBTUJPxaAgSk9TSVAKK0dBTEFNQk/FoCBMQVNMTworR0FMQU1CT8WgIExBU0xPCitHQUxCQcSMIEpPxb1FRgorR0FMRcSMScSGIEJSQU5JU0xBVgorR0FMRcSMScSGIERSQUdBTgorR0FMRcSMScSGIE1JUk9TTEFWCitHQUxFxIxJxIYgWk9SQU4KK0dBTEXEjEnEhiBaT1JBTgorR0FMRcWgRVYgxb1JVk9KSU4KK0dBTEXFoEVWIERVQlJBVktBCitHQUxFxaBFViBTTE9CT0RBTgorR0FMRVRJxIYgQUxFS1NBTkRBUgorR0FMRVRJxIYgTUFSSUpBCitHQUxFVEnEhiBNSUxBTgorR0FMRVRJxIYgVkFTQQorR0FMRVRJxIYgVkxBRElNSVIKK0dBTEVUScSGIFpPUkEKK0dBTEVUSU4gTUlMSUNBCitHQUxFVElOIE5JS09MQQorR0FMRVRJTiBQQUpJQ0EKK0dBTEVUSU4gU0lNQQorR0FMRVRJTiBTTEFWS08KK0dBTEVUSU4tU01JVCBSQURPSktBCitHQUxFVElOIFNURVZBTgorR0FMRVRJTiBaTEFUS08KK0dBTEZJIEpPU0lQCitHQUxGSSBNSUxFTkEKK0dBTEdPIEnFoFRWQU4KK0dBTEnEjEnEhiBCUkFOS08KK0dBTEnEjEnEhiBNSUxJQ0EKK0dBTEnEhiBEVcWgQU5LQQorR0FMScSGIElWQU5LQQorR0FMScSGIEpPVkFOCitHQUxJxIYgSk9WQU4KK0dBTEnEhiBKT1ZBTgorR0FMScSGIEtBVElDQQorR0FMScSGIEtBVElDQQorR0FMScSGIExBRElTTEFWCitHQUxJxIYgTEpVQklDQQorR0FMScSGIE1BUklKQU4KK0dBTEnEhiBNSUxBRElOCitHQUxJxIYgTUlMRU5LTworR0FMScSGIE1JTEtBCitHQUxJxIYgTUlMT8WgCitHQUxJxIYgTUlMT1ZBTgorR0FMScSGIE1JUktPCitHQUxJxIYgTUlUQVIKK0dBTEnEhiBNT03EjElMTworR0FMScSGIE5FREVMSktPCitHQUxJxIYgTklLT0xBCitHQUxJxIYgT0xHQQorR0FMScSGIFBFVEFSCitHQUxJxIYgUk/FvUlLQQorR0FMScSGIFNBTkpBCitHQUxJxIYgU0xBVktBCitHQUxJxIYgU1RFVk8KK0dBTEnEhiBURVJFWkEKK0dBTEnEhiBWT0pJU0xBVgorR0FMScSGIFpEUkFWS08KK0dBTElDS0kgxJBVUkEKK0dBTElLIEVURUxLQQorR0FMSVBPVknEhiBKT1ZJQ0EKK0dBTEtPIEpVTElBCitHQUxPIMSQVVJBCitHQUxPTkpBIERFU0FOS0EKK0dBTE9OSkEgRFJBR09MSlVCCitHQUxPTkpBIE1JT0RSQUcKK0dBTE9OSkEgTUlSS08KK0dBTE9OSkEgUkFERQorR0FMT1ZJxIYgxJBPUsSQRQorR0FMT1ZJxIYgxJBVUkEKK0dBTE9WScSGIEFMRUtTQU5EUkEKK0dBTE9WScSGIEFOxJBFTEtBCitHQUxPVknEhiBCUkFOS08KK0dBTE9WScSGIERSQUdJQ0EgRFIKK0dBTE9WScSGIElWSUNBCitHQUxPVknEhiBKRUxJQ0EKK0dBTE9WScSGIExKVUJJQ0EKK0dBTE9WScSGIE1JTEFOCitHQUxPVknEhiBNSUxBTgorR0FMT1ZJxIYgTUlMRU5LTworR0FMT1ZJxIYgUkFET01JUgorR0FMT1ZJxIYgU1RFVk8KK0dBTE9WScSGIFpPUktBCitHQUxVUyBMQVNMTworR0FNQkVSIFNMT0JPREFOCitHQU5Exb1JIFNBVktBCitHQU5HTEkgQU5BCitHQU5JxIYgQUxPSlpJSkUKK0dBTknEhiBBTE9KWklKRQorR0FOScSGIE1JxaBPCitHQU5JxIYgU1RBTklTTEFWQQorR0FOScSGIFpERU5LTworR0FOScSGIFpPUklDQQorR0FOSkkgU0FNVUVMCitHQU5UQVIgQUxFS1NBTkRSQQorR0FOVEFSIEZJTElQCitHQU5UQVIgTUlST1NMQVYgRFIKK0dBUsSMRVYgREFOSUNBCitHQVLEjEVWIE1JTFVUSU4KK0dBUsSMRVZJxIYgUEVSTworR0FSxIxFVknEhiBQRVJPCitHQVJBxaBFVknEhiBNSUxLQQorR0FSQUJBIEFORFJJSkEKK0dBUkFCQU5EScSGIMSQT1LEkEUKK0dBUkFCQU5EScSGIE1BUklKQQorR0FSQUJBTkRJxIYgTUlMRU5LTworR0FSQUJBTkRJxIYgTklLT0xBCitHQVJBQkFOVElOIElWQU4KK0dBUkFCQU5USU4gTUlMT1ZBTgorR0FSQUJBTlRJTiBTVEVWQU4KK0dBUkFJIEJFTEEKK0dBUkFJIEtPUk5FTElKQQorR0FSQUogQlJBTklNSVIKK0dBUkFKIEpFTEVOQQorR0FSQUogT0xHQQorR0FSQUxFSknEhiBWRVJJQ0EKK0dBUkFQScSGIEJSQU5LTyBESVBMIElORworR0FSREHFoEVWScSGIE1JTE/FoAorR0FSREHFoEVWScSGLVNUUknEjEVWScSGIEpPVkFOS0EKK0dBUkRBxaBFVknEhiBWRVNFTElOCitHQVJEScSGIEFMSUpBCitHQVJESU5PVkHEjEtJIMSQT1LEkEUKK0dBUkRJTk9WQcSMS0kgQk9SSVNMQVYKK0dBUkRJTk9WQcSMS0kgQlJBTklNSVIKK0dBUkRJTk9WQcSMS0kgQ1ZFVEEKK0dBUkRJTk9WQcSMS0kgTUlPUktBCitHQVJESU5PVkHEjEtJIE5FREVMSktPCitHQVJESU5PVkHEjEtJIFNURVZBTgorR0FSRElOT1ZBxIxLSSBTVkVUT1pBUgorR0FSRUxPVknEhiBNSVJPU0xBVgorR0FSRVZTS0kgRElNSVRSSUpBCitHQVJJxIYgxb1BUktPCitHQVJJxIYgTEFaQVIKK0dBUknEhiBMVUtBCitHQVJJxIYgTUlST1NMQVYKK0dBUknEhiBOQURBCitHQVJJxIYgU1RFVkFOCitHQVJPVknEhiBNSUxVVElOCitHQVJPVknEhiBNSUxVVElOCitHQVJPVk5JS09WIMSQT1LEkEUKK0dBUk9WTklLT1YgQk9SS0EKK0dBUlRORVIgUEVUQVIKK0dBUlVOT1ZJxIYgREFOSUNBCitHQVJVTk9WScSGIFZBU0EKK0dBVEFMTyBHT1JBTgorR0FUQUxPIFJBVEtPCitHQVRBUknEhiDFvUVMSktPCitHQVRBUknEhiDFvUVMSktPCitHQVRBUknEhiBCT8WgS08KK0dBVEFSScSGIERSQcW9RQorR0FUQVJJxIYgTUFOT0pMTworR0FUQVJJxIYgU0FWS0EKK0dBVEFSScSGIFNUQU5BCitHQVRBUknEhiBTVkVUT1pBUgorR0FUQVJJxIYgWkxBVElCT1IKK0dBVEVSIEpPU0lQCitHQVVERU5KSSBHQUJSSUpFTEEKK0dBVURFTkpJIE1BVElMRAorR0FVREVOSkkgVElWQURBUgorR0FWQSBBTEVLU0VKCitHQVZBTlNLSSBCUkFOSVNMQVYgQURWT0tBVAorR0FWQU5TS0kgQlJBTklTTEFWQQorR0FWQU5TS0kgQlJBTklTTEFWQQorR0FWQU5TS0kgREFSQQorR0FWQU5TS0kgRFJBR0FOCitHQVZBTlNLSSBEVcWgQU4KK0dBVkFOU0tJIEdBVlJJTE8KK0dBVkFOU0tJIElWQU4KK0dBVkFOU0tJIEpFTEVOQQorR0FWQU5TS0kgSlVESVRBCitHQVZBTlNLSSBLT05TVEFOVElOIERSCitHQVZBTlNLSSBLT1NUQSBEUEwgSU5HCitHQVZBTlNLSSBLT1NUQQorR0FWQU5TS0kgTEFaQVIKK0dBVkFOU0tJIExVS0EKK0dBVkFOU0tJIE1BUkdJVEEKK0dBVkFOU0tJIE1JTElDQQorR0FWQU5TS0kgTUlMSUNBCitHQVZBTlNLSSBOQURBCitHQVZBTlNLSSBOT1ZBSworR0FWQU5TS0kgUEFWTEUKK0dBVkFOU0tJIFBFVFJBCitHQVZBTlNLSSBTVEVWQU4KK0dBVkFOU0tJIFNURVZBTgorR0FWQU5TS0kgU1RFVkFOCitHQVZBTlNLSSBTVEVWQU4KK0dBVkFOU0tJIFNWRVRPWkFSCitHQVZBTlNLSSBaT1JBTgorR0FWQU5TS0kgWk9SQU4KK0dBVkFSScSGIEFMRUtTQU5EQVIKK0dBVkFSScSGIEdBVlJJTE8KK0dBVkFSScSGIEpFUkVNSUpFCitHQVZBUknEhiBMSlVCSUNBCitHQVZBUknEhiBNSUxFTktPCitHQVZMSUsgR0VSR0VMSgorR0FWT0RJIEVTVEVSCitHQVZSQU4gR09KS08KK0dBVlJBTiBMSlVCT01JUgorR0FWUkFOxIxJxIYgxJBVUsSQSUNBCitHQVZSQU7EjEnEhiBKT1ZBTgorR0FWUkFOxIxJxIYgS0FUSUNBCitHQVZSQU7EjEnEhiBNQVJHSVRBCitHQVZSQU7EjEnEhiBNQVJJSkEKK0dBVlJBTsSMScSGIE5JS09MQQorR0FWUkFOxIxJxIYgVkxBRElNSVIKK0dBVlJBTknEhiBHT0pLTworR0FWUkFOScSGIElMSUpBCitHQVZSQU5JxIYgWlZFWkRBTkEKK0dBVlJBTk9WIEJPU0EKK0dBVlJBTk9WIFNMT0JPREFOCitHQVZSQU5PVknEhiBUT01JU0xBVgorR0FWUkFOT1ZJxIYgWkRSQVZLTworR0FWUknEhiDEjEVET01JUgorR0FWUknEhiDFvUlWS0EKK0dBVlJJxIYgxJBPUsSQRQorR0FWUknEhiBCUkFOSVNMQVYKK0dBVlJJxIYgRElNSVRSSUpFCitHQVZSScSGLUdBWkRJxIYgTklLT0xBCitHQVZSScSGIElWQU4KK0dBVlJJxIYgSVZBTgorR0FWUknEhiBKT1ZBTgorR0FWUknEhiBKT1ZPCitHQVZSScSGIE1BUklKQQorR0FWUknEhiBNSUhBSkxPCitHQVZSScSGIE1JTEFOCitHQVZSScSGIE1JTEFOCitHQVZSScSGIE1JTEVOQQorR0FWUknEhiBNSUxFTktPCitHQVZSScSGIE1JTEVOS08KK0dBVlJJxIYgTUlMT8WgCitHQVZSScSGIE1JUktPCitHQVZSScSGIE1JUk9TTEFWCitHQVZSScSGIFBFVEFSCitHQVZSScSGIFJBRE9NSVIKK0dBVlJJxIYgUkFET1NMQVYKK0dBVlJJxIYgU0VOS0EKK0dBVlJJxIYgU0xBVktBCitHQVZSScSGIFNQQVNPSkUKK0dBVlJJxIYgU1ZFVE9aQVIKK0dBVlJJxIYgVkVMSU5LQQorR0FWUknEhiBWTEFESU1JUgorR0FWUknEhiBaT1JBTgorR0FWUknEhiBaT1JBCitHQVZSSUxPViDFvUlWS0EKK0dBVlJJTE9WIEFOS0lDQQorR0FWUklMT1YgQk9HREFOCitHQVZSSUxPViBHT1JEQU5BCitHQVZSSUxPViBIRVJNSU5BCitHQVZSSUxPViBKVUxLQQorR0FWUklMT1YgTEpVQklDQQorR0FWUklMT1YgTUFSVEEKK0dBVlJJTE9WIE1JTElWT0oKK0dBVlJJTE9WIE1JTElWT0oKK0dBVlJJTE9WIE1JTE9SQUQKK0dBVlJJTE9WIFJBRElWT0oKK0dBVlJJTE9WIFNMQVZLTworR0FWUklMT1YgU01JTEpBCitHQVZSSUxPViBUT0RPUgorR0FWUklMT1YgVVJPxaAKK0dBVlJJTE9WScSGIMW9SUtJQ0EKK0dBVlJJTE9WScSGIMW9SVZLQQorR0FWUklMT1ZJxIYgxb1JVk9KSU4gRFIKK0dBVlJJTE9WScSGIEFMRUtTQU5EQVIKK0dBVlJJTE9WScSGIEFMRUtTQU5EQVIKK0dBVlJJTE9WScSGIEFMRUtTQQorR0FWUklMT1ZJxIYgQk9HREFOS0EKK0dBVlJJTE9WScSGIEJPUklWT0oKK0dBVlJJTE9WScSGIEJSQU5LQQorR0FWUklMT1ZJxIYgQlJBTktPCitHQVZSSUxPVknEhiBET0JSSUxBCitHQVZSSUxPVknEhiBET0JSSVZPSkUKK0dBVlJJTE9WScSGIERVxaBJQ0EKK0dBVlJJTE9WScSGIEVNSUwKK0dBVlJJTE9WScSGIEdST1pEQU4KK0dBVlJJTE9WScSGIEpFTElTQVZLQQorR0FWUklMT1ZJxIYgSk9WQU4KK0dBVlJJTE9WScSGIEpPVkFOCitHQVZSSUxPVknEhiBLQVRJQ0EKK0dBVlJJTE9WScSGIEtMQVVESUpBCitHQVZSSUxPVknEhiBMQVpBUgorR0FWUklMT1ZJxIYgTEpVQk9NSVIKK0dBVlJJTE9WScSGIE1BUkEKK0dBVlJJTE9WScSGIE1BUklKQQorR0FWUklMT1ZJxIYgTUFSSUpBCitHQVZSSUxPVknEhiBNSUxFTkEKK0dBVlJJTE9WScSGIE1JTEVOS08KK0dBVlJJTE9WScSGIE1JTEVOS08KK0dBVlJJTE9WScSGIE1JTElDQQorR0FWUklMT1ZJxIYgTUlMT8WgCitHQVZSSUxPVknEhiBNSUxPxaAKK0dBVlJJTE9WScSGIE1JTE9KRQorR0FWUklMT1ZJxIYgTUlMT1NBVkEKK0dBVlJJTE9WScSGIE1JTE9WQU4KK0dBVlJJTE9WScSGIE1JUkEKK0dBVlJJTE9WScSGIE1JUkpBTkEKK0dBVlJJTE9WScSGIE1JUkpBTkEKK0dBVlJJTE9WScSGIE1JUktPCitHQVZSSUxPVknEhiBNSVJPU0xBVgorR0FWUklMT1ZJxIYgTUlST1NMQVYKK0dBVlJJTE9WScSGIE1JVEFSCitHQVZSSUxPVknEhiBNTEFERU4KK0dBVlJJTE9WScSGIE5FQk9KxaBBCitHQVZSSUxPVknEhiBOSUtPTEEgRFIgUFJPRgorR0FWUklMT1ZJxIYgTklLT0xBCitHQVZSSUxPVknEhiBQQVZMRQorR0FWUklMT1ZJxIYgUkFET1NMQVYKK0dBVlJJTE9WScSGIFJBSktBCitHQVZSSUxPVknEhiBTQVZBIERSCitHQVZSSUxPVknEhiBTQVZPCitHQVZSSUxPVknEhiBTTEFWSUNBCitHQVZSSUxPVknEhiBTTEFWS08gRFIKK0dBVlJJTE9WScSGIFNMQVZLTworR0FWUklMT1ZJxIYgU0xBVktPCitHQVZSSUxPVknEhiBTTEFWT0xKVUIKK0dBVlJJTE9WScSGIFNMT0JPREFOCitHQVZSSUxPVknEhiBTT0ZJSkEKK0dBVlJJTE9WScSGIFNUQU5BCitHQVZSSUxPVknEhiBTVEVWQQorR0FWUklMT1ZJxIYgU1RPSkFOCitHQVZSSUxPVknEhiBUT8WgQQorR0FWUklMT1ZJxIYgVE9ET1IKK0dBVlJJTE9WScSGIFZFUkEgRFIKK0dBVlJJTE9WScSGIFZFUklDQQorR0FWUklMT1ZJxIYgVkxBRElNSVIKK0dBVlJJTE9WScSGIFZMQURJTUlSCitHQVZSSUxPVknEhiBWTEFESU1JUgorR0FWUklMT1ZJxIYgVlVLSUNBCitHQVZSSUxPVknEhiBaTEFUQQorR0FWUklMT1ZTS0kgUEFWTElOQQorR0FWUk9WScSGIEdPUkFOCitHQVZST1ZJxIYgR09SREFOQQorR0FWUk9WScSGIExKVUJJVk9KRQorR0FWUk9WScSGIFNWRVRMQU5BIExPS0FMCitHQVpBRkkgTEFTTE8KK0dBWkRJxIYgQk9SSVZPSgorR0FaRVBPViBJTElKQQorR0FaScSGIElWQU4KK0dBWklCQVJJxIYgSVpFVEEKK0dBWklCQVJJxIYgSkVMRU5BCitHQVpJQkFSScSGIEpPVkFOS0EKK0dBWklCQVJJxIYgU0lNQQorR0FaSUpBIEpPVkFOCitHQVpJVk9EQSBHT0pLTworR0XEjEVWU0tJIFNSRVRLTworR0VCQVVFUiBFUlZJTiBEUgorR0VCRUxTIEFOQQorR0VDSSDEkFVSQQorR0VERUxPVlNLSSBEVcWgQU4KK0dFREVMT1ZTS0kgU09GSUpBCitHRUdFxaAgSlVMSUpBTkEKK0dFR0XFoCBOQU5ET1IKK0dFR0XFoCBTTEFWSUNBCitHRUdFTkJBVUVSIERSQUdVVElOCitHRUdFTkJBVUVSIElMT05LQQorR0VHRU5CQVVFUiBaT1JBCitHRUdJxIYgQUxFS1NBTkRBUgorR0VHScSGIE5FTUFOSkEKK0dFTEVJIEpFTkUKK0dFTEVSIMWgQU5ET1IKK0dFTEVSIMSQVUxBCitHRUxFUiBBREFNCitHRUxFUiBBTEVLU0FOREFSCitHRUxFUiBCRUxBCitHRUxFUiBKRUxJU0FWRVRBCitHRUxFUiBKT1ZBTgorR0VMRVIgTEFTTE8KK0dFTEVSIExBU0xPCitHRUxFUiBNQVJJSkEKK0dFTEVSIE1BUlRBCitHRUxFUiBPTEdBCitHRUxFUi1QRVRLT1ZJxIYgR0laRUxBCitHRUxFUiBUSUJPUgorR0VMSknEhiBNQVRPCitHRU1PVknEhiBBTEVLU0FOREFSCitHRU5DIEZFUkVOQworR0VOQyBMQUpPxaAKK0dFTkNFTCBKVUxJSkFOQQorR0VOQ0VMIE1BUklKQU5BCitHRU5DRUwgVkFMRVJJSkEKK0dFTkNJIEpPU0lQCitHRU5FVkFKTiDEkFVSQQorR0VORVZBSk4gSk9WQU4KK0dFTkVWQUpOIEtBUkxPCitHRU5FVkFKTiBMQUpPxaAKK0dFTkVWQUpOIExBSk/FoAorR0VOT1ZBIE1BSkRBIERJUEwgSU5HCitHRU5PVkEgTUlMSUNBIERJUEwgSU5HCitHRU9SR0lFViBMRVBPU0FWQQorR0VPUkdJRVZTS0kgUEVSTworR0VPUkdJRVZTS0kgVkFTSUwKK0dFT1JHSUpFVknEhiDFvUlWS08KK0dFT1JHSUpFVknEhiBBTEVLU0FOREFSCitHRU9SR0lKRVZJxIYgSVZBTkEKK0dFT1JHSUpFVknEhiBKT1ZBTgorR0VPUkdJSkVWScSGIEpPVkFOCitHRU9SR0lKRVZJxIYgTEFaQVIKK0dFT1JHSUpFVknEhiBMQVpBCitHRU9SR0lKRVZJxIYgTEpVQknFoEEKK0dFT1JHSUpFVknEhiBNSUxBTgorR0VPUkdJSkVWScSGIE1JTE9TQVYKK0dFT1JHSUpFVknEhiBNSUxPVkFOCitHRU9SR0lKRVZJxIYgTkVTVE9SCitHRU9SR0lKRVZJxIYgUkFET1ZBTgorR0VPUkdJSkVWScSGIFZPSklTTEFWCitHRVJBIElCT0xKQQorR0VSQUsgRU1JTElKQQorR0VSQVNJTU9WU0tJIFpMQVRFCitHRVJBVE9WScSGIFpPUkFOCitHRVJESUpBTiDEjEVET01JUgorR0VSRSBMQUpPxaAKK0dFUkUgWk9MVEFOCitHRVJFQ0kgSlVSQUoKK0dFUkVHIMW9VcW9QU5BCitHRVJFRyBBTkRSQcWgCitHRVJFRyBCTEFOS0EKK0dFUkVHIEVVR0VOCitHRVJFRyBUSUJPUgorR0VSR0XEjCBTTUlMSkEKK0dFUkdFTEogxaBJTU9OCitHRVJJIFRFUkVaQQorR0VSScSGIMW9QVJLTworR0VSScSGIMSQT1LEkEUKK0dFUknEhiBBTEVLU0FOREFSCitHRVJJxIYgQU5UT04KK0dFUknEhiBDVkVUQQorR0VSScSGIEdJTkEKK0dFUknEhiBHT1JEQU5BCitHRVJJxIYgSVZBTgorR0VSScSGIElWQU4KK0dFUknEhiBLT1NUQQorR0VSScSGIEtPVklDQQorR0VSScSGIExKVUJPTUlSCitHRVJJxIYgTUFSSUpBCitHRVJJxIYgTUlMQU4KK0dFUknEhiBNSUxPxaAKK0dFUknEhiBNSUxPxaAKK0dFUknEhiBNSVJLTworR0VSScSGIE5FREVMSktPCitHRVJJxIYgTkVTVE9SCitHRVJJxIYgT0JSQUQKK0dFUknEhiBQRVRBUgorR0VSScSGIFJBRElOS0EKK0dFUknEhiBTVEVWQU4KK0dFUklIIEFORFJJSkEKK0dFUkwgRkVSRE8KK0dFUkwgTUFSSUpBCitHRVJMQSBEUkFHQU5BCitHRVJMQSBMQURJU0xBVgorR0VSTEEgVEVPRE9SCitHRVJNQU5PVknEhiBNSUxBTgorR0VSTUFOT1ZJxIYgU1RBTk9KRQorR0VSTkHEjCDEkE9SxJBFCitHRVJOQcSMIEZSQU5KQQorR0VSTkHEjCBMQURJU0xBVgorR0VSTyDEkEVSxJAKK0dFUk8gRFXFoEFOS0EKK0dFUk8gSkFOT8WgCitHRVJPIEpPxb1FRgorR0VSTyBLQVJMTworR0VSTyBMQUpPxaAKK0dFUk8gTUFSR0lUQQorR0VST0xEIEpBS09CCitHRVJPTEQgTEFTTE8KK0dFUk9WIEFOR0VMIERJUEwgSU5HCitHRVJUTkVSIEFOQQorR0VSVE5FUiBGUkFOSkEKK0dFUlRORVIgSk/FvUVGCitHRVJUTkVSIFJFxb1FCitHRVRFTCBIRUxNVVQKK0dFWiBKQU5PxaAKK0dFWiBKRUxJQ0EKK0dFWiBLQVRJQ0EKK0dFWiBUSUJPUgorR0VaIFZFUk9OSUtBCitHSEFORE9VUi3FoEFMIEpVTElKQU5BCitHSUFEUk/FoEnEhiBNQVJJSkEKK0dJQkFOSUNBIEdFT1JHSU5BCitHSUdBIFNSRVRFTgorR0lHScSGIE1JT01JUgorR0lHScSGIE1JUkpBTkEKK0dJR0nEhiBaT1JBTgorR0lLScSGIEJPxb1JREFSCitHSUtJxIYgRElNSVRSSUpFCitHSUtJxIYgUkFESVZPSkUKK0dJS09WU0tJIE1JTk8KK0dJTEVaQU4gS09SSU9MQU4KK0dJTEcgSVJFTkEKK0dJTEnEhiBEUkFHQU4KK0dJTEnEhiBEUkFHQU4KK0dJTUJPxaAgRE9CUklWT0pFCitHSU5DVUxKIFNFUkdJSkUgRElQTCBJTkcKK0dJT04gQUxFS1NBTkRBUgorR0lPTiBBTkEgRFIKK0dJT04gScWgVFZBTgorR0lPTiBLQUxNQU4KK0dJT04gTkFORE9SCitHSVJJxIYgTUFUSUpBCitHSVJJQyBCRUxBCitHSVJJQyBFTEVOQQorR0lSSUMgSU1SRQorR0lSSUMgSk/FvUVGCitHSVJJQyBMQVNMTworR0lSSUMtTU9LVcWgIEtMQVJBCitHSVJJWkQgTEFTTE8gTk9WSU5BUgorR0lSTlQgUk9aQUxJSkEKK0dJUyBIRURWSUdBCitHSkFGTyBNQVRJSkEKK0dKRVIgVkxBRElNSVIKK0dMQURJxaAgU1RFVkFOCitHTEFEScSGIE1JTEFOCitHTEFEScSGIFJBSktPCitHTEFEScSGIFNWRVRPWkFSCitHTEFET1ZJxIYgRFXFoEFOCitHTEFET1ZJxIYgVEFUSkFOQQorR0xBSkggR0VPUkcKK0dMQU1PxIxBTklOIE5FVkVOS0EKK0dMQU1PxIxBTklOIE5FVkVOS0EKK0dMQU1PxIxBTklOIFBFUk8KK0dMQU1PxIxBTklOIFZMQURJTUlSCitHTEFNT8SMScSGIERBTkUKK0dMQU1PxIxJxIYgU05Fxb1BTkEKK0dMQU1PxIxMSUpBIFJVxb1JQ0EKK0dMQU5DIEFOVFVOCitHTEFTT1ZBQyBNQVJUQQorR0xBVsSMScSGIE1JTE9SQUQKK0dMQVZBxaAgxb1BUktPCitHTEFWQcWgIEpPVk8KK0dMQVZBxaAgTUlMQU4KK0dMQVZBxaAtVFJCScSGIEJPxaBLTworR0xBVkHFoEVWScSGIEFOxJBFTEtPCitHTEFWQcWgRVZJxIYgQU7EkEVMS08KK0dMQVZBxaBLSSDFvUlWT0pJTgorR0xBVkHFoEtJIEFMRUtTQU5EQVIKK0dMQVZBxaBLSSBBTEVLU0FORFJBCitHTEFWQcWgS0kgQU7EkEVMS0EKK0dMQVZBxaBLSSBCT0dEQU4gRElQTCBJTkcKK0dMQVZBxaBLSSBCUkFOSVNMQVYKK0dMQVZBxaBLSSBCUkFOS08gRElQTCBQUkFWTklLCitHTEFWQcWgS0kgRFJBR0FOCitHTEFWQcWgS0kgRFXFoEFOCitHTEFWQcWgS0kgR0xJxaBBCitHTEFWQcWgS0kgTUlMVVRJTgorR0xBVkHFoEtJIE5FTUFOSkEKK0dMQVZBxaBLSSBTSU1BCitHTEFWQcWgS0kgU0lOScWgQQorR0xBVkHFoEtJIFNNSUxKS0EKK0dMQVZBTiBKT1ZBTgorR0xBVkFOScSGIEJPU0lMSktBCitHTEFWQU5JxIYgSlVMS0EKK0dMQVZBTknEhiBNSVJLTworR0xBVkFSREFOT1YgQUxFS1NBTkRBUgorR0xBVkFSREFOT1YgSVZBTiBESVBMIElORworR0xBVkFSREFOT1YgTUFSSUpBCitHTEFWQVJEQU5PViBTT0tPCitHTEFWQVRPVknEhiBEUkFHQU4KK0dMQVZBVE9WScSGIERVxaBBTgorR0xBVknEjEnEhiBNQVJJSkFOQQorR0xBVknEhiBCT8WgS08KK0dMQVZJxIYgR0FWUk8KK0dMQVZJxIYgSkVMS0EKK0dMQVZJxIYgUkFESVNMQVYKK0dMQVZJTknEhiBKT1ZPCitHTEFWSU5JxIYgTUlMT1JBRAorR0xBVk/EjEVWScSGIElMSUpBCitHTEXEkEEgTUlMRU5LTworR0xFREnEhiBNSUxJQ0EKK0dMScWgScSGIMSQT1LEkE8KK0dMScWgScSGIEJPUklTTEFWCitHTEnFoEnEhiBCUkFOS08KK0dMScWgScSGIEdSQURJTUlSCitHTEnFoEnEhiBJTElKQQorR0xJxaBJxIYgSVZBTgorR0xJxaBJxIYgSkVMSUNBCitHTEnFoEnEhiBKT1ZBTgorR0xJxaBJxIYtS0VTRUcgVkFMRVJJSkEKK0dMScWgScSGIExKVUJJxaBBCitHTEnFoEnEhiBNSUxFVkEKK0dMScWgScSGIE5FTkFECitHTEnFoEnEhiBQUkVEUkFHCitHTEnFoEnEhiBSQURPTUlSCitHTEnFoEnEhiBTSU1PCitHTEnFoEnEhiBTUkVUQQorR0xJxaBJxIYgVkVTTkEKK0dMScWgScSGIFpPUkFOCitHTEnFoElOIMSQT1LEkEUKK0dMScWgSU4gQlJBTktBCitHTEnFoElOIE5FTkFECitHTEnFoE9WScSGIE1BUklKQQorR0xJQknEhiBNSUxBTgorR0xJQk9UQSBWTEFETworR0xJR0nEhiDFvUVMSktBCitHTElHScSGIE1JUkEKK0dMSUdJxIYgTkVERUxKS08KK0dMSUdJxIYgVE9NSVNMQVYKK0dMSUdPUkVWScSGIERVxaBLTworR0xJR09SRVZJxIYgVE9NTworR0xJR09SScSGIMW9RUxKS08KK0dMSUdPUknEhiDFvUlWT0pJTgorR0xJR09SScSGIMW9SVZPUkFECitHTElHT1JJxIYgQU7EkEVMS0EKK0dMSUdPUknEhiBDVkVUQU5LQQorR0xJR09SScSGIERSQUdBTgorR0xJR09SScSGIERSQUdBTgorR0xJR09SScSGIERSQUdJxaBBCitHTElHT1JJxIYgRFJBR0lDQQorR0xJR09SScSGIERSQUdJTkpBCitHTElHT1JJxIYgRFJBR09NSVIKK0dMSUdPUknEhiBKRUxFTkEKK0dMSUdPUknEhiBLQVRJQ0EKK0dMSUdPUknEhiBMSlVCT01JUgorR0xJR09SScSGIE1JTEFOCitHTElHT1JJxIYgTUlMQU4KK0dMSUdPUknEhiBNSUxPUkFECitHTElHT1JJxIYgTUxBREVOCitHTElHT1JJxIYgTklLT0xBCitHTElHT1JJxIYgUkFEScWgQQorR0xJR09SScSGIFNUQU5PSkUKK0dMSUdPUknEhiBTVEVWQU4KK0dMSUdPUknEhiBTVEVWQU4KK0dMSUdPUklKRVZJxIYgQUxFS1NBTkRBUgorR0xJR09SSUpFVknEhiBEUkFHQU5BCitHTElHT1JJSkVWScSGIERSQUdJQ0EKK0dMSUdPUklKRVZJxIYgS1JTVEEKK0dMSUdPUklKRVZJxIYgTUlIQUpMTworR0xJR09SSUpFVknEhiBNSU9EUkFHCitHTElHT1JJSkVWScSGIFBFVFJBCitHTElHT1JJSkVWScSGIFJVxb1JQ0EKK0dMSUdPUklOIMSQVVLEkElOS0EKK0dMSUdPUklOIEJPSkFOQQorR0xJR09SSU4gTUlST1NMQVYKK0dMSUdPUklOIFNMQVZJQ0EKK0dMSUdPUklOIFNURVZBTgorR0xJR09SSU4gVE9NSVNMQVYKK0dMSUdPUklOIFpPUkFOCitHTElHT1JJTiBaT1JLQQorR0xJR09ST1YgREVTSU1JUgorR0xJR09ST1YgSk9WQU4KK0dMSUdPUk9WIExFS0EKK0dMSUdPUk9WIExKVUJPTUlSCitHTElHT1JPVknEhiBTTEFWS08KK0dMSUdPUk9WU0tJIFRSQUpLTworR0xJTlRJxIYgTUlMRQorR0xJTlRJxIYgTUlPRFJBRworR0xJTlRJxIYgTklLT0xBCitHTElOVEnEhiBSQURPU0xBVgorR0xJTlRJxIYgU0FWS0EKK0dMSU5UScSGIFZFU0VMS0EKK0dMT8W9QU5TS0kgTUFSSUpBCitHTE/FvUFOU0tJIFBFVEFSCitHTE/FvUFOU0tJIFZPSklTTEFWCitHTE9HT05KQUMgVklUT01JUgorR0xPR09WxIxBTiBNSUxPxaAgRElQTCBJTkcKK0dMT0dPVkFDIEpFVlJFTQorR0xPR09WQUMgS09STkVMSUpBCitHTE9HT1ZBQyBNSVJLTworR0xPR09WQUMgTU9NxIxJTE8KK0dMVcWgQUMgQk/FvUlEQVIKK0dMVcWgQUMgRFXFoEFOCitHTFXFoEFDIE1JSEFKTE8KK0dMVcWgQUMgTUlMQU4KK0dMVcWgQUMgTUlMT8WgCitHTFXFoEFDIE1JTE9SQUQKK0dMVcWgQUMgUEVUQVIKK0dMVcWgScSGIEJSQU5LTworR0xVxaBJQ0EgTEpVQk9NSVIKK0dMVcWgSUNBIE1JTEFOCitHTFXFoElDQSBNSUxBTgorR0xVxaBJQ0EgTUlMRQorR0xVxaBJQ0EgTkVOQUQKK0dMVcWgSUNBIFBFVEFSCitHTFXFoElDQSBTTEHEkEFOQQorR0xVxaBJQ0EgU0xBVktBCitHTFXFoElDQSBaRFJBVktPCitHTFVIQUnEhiBBTsSQRUxLTworR0xVSEFKScSGIEJPxb1PCitHTFVIQUsgS0FSTE8KK0dMVUhPVknEhiBNSUxPxaAKK0dMVUhPVknEhiBNSUxPTUlSCitHTFVIT1ZJxIYgVkVMSktPCitHTFVNQUMgREFORQorR0xVTUFDIERBTklMTworR0xVTUFDIERBTklMTworR0xVTUFDIERSQUdBTgorR0xVTUFDIERVxaBBTgorR0xVTUFDIEdBVlJBCitHTFVNQUMgSkVMRU5BCitHTFVNQUMgTEFaTworR0xVTUFDIExKVUJPCitHTFVNQUMgTUFHREFMRU5BCitHTFVNQUMgTUlMQU4KK0dMVU1BQyBNSUxFCitHTFVNQUMgTUlPRFJBRyBEUgorR0xVTUFDIE1JUk9TTEFWCitHTFVNQUMgU0xPQk9EQU4gRFIKK0dMVU1JxIxJxIYgTUFOREEKK0dMVVZBScSGIMSQT1LEkEUKK0dMVVZBSknEhiBEUkFHQU4KK0dMVVZBSknEhiBKT1ZBTgorR0xVVkFLT1YgTUlMQURJTktBCitHTFVWQUtPViBQQVZMRQorR0xVVkFLT1ZJxIYgVkxBRElNSVIKK0dMVVZOSkEgU1RFVkFOCitHTUlaScSGIEJSQU5JU0xBVgorR01JWknEhiBORUdPVkFOCitHTUlaScSGIFZMQURBCitHTklQIEpPQUtJTQorR05JUCBWRUxJTUlSIERJUEwgSU5HCitHTklQIFZFUkEKK0dOSVAgVkxBRElNSVIKK0dOSkFUScSGIFNUT0pBTktBCitHTkpFxIwgU1ZFTgorR0/EjEFOSU4gUkFERQorR0/EjEnEhiBBTsSQQQorR0/FoEnEhiBKRVZSRU0KK0dPxaBJxIYgTEpJTEpBCitHT8WgScSGIFBBVkxFCitHT8WgScSGIFBBVkxFCitHT8WgScSGIFBBVkxFCitHT8WgScSGIFRPTUlTTEFWCitHT8WgScSGIFRPTUlTTEFWCitHT8WgTkpJxIYgRE9CUklWT0oKK0dPxJBFVkFDIEJPU0lMSktBCitHT0JFQyBLQVRJQ0EKK0dPQkVDIE1JTEFOCitHT0JFTEpJxIYgTUlMT1ZBTgorR09CRUxKScSGIFNUUkFISU5KQQorR09CRUxKScSGIFNWRVRJU0xBVgorR09CRUxKScSGIFZVS0FESU4KK0dPQkVMSknEhiBWVUsKK0dPQk9SIEFOQQorR09CT1IgTEFESVNMQVYKK0dPQk9SIFpPTFRBTgorR09CT1IgWk9MVEFOCitHT0NJxIYgQk9HT1NBVgorR09DScSGIEpFVlJPU0lNQQorR09DScSGIFZJRE9KS08KK0dPREEgT0xJVklKQQorR09EQVIgS0FUQVJJTkEKK0dPREnEhiBNQVJJSkEKK0dPREnEhiBaVk9OS08KK0dPREnEhiBaVk9OS08KK0dPRElOQSBEQVJLTworR09ESU5BIE1JTEtPCitHT0RJTlNLSSBWTEFESU1JUgorR09ET8WgRVYgS1JTVEEKK0dPRE9SIMWgQU5ET1IKK0dPRE9SIEpBTk/FoAorR09ET1IgSk9TSVAKK0dPRFVOQyBEVcWgQU4KK0dPR0nEhiBET0JSSUxPCitHT0dJxIYgRFJBR09MSlVCCitHT0dJxIYgTUFSQQorR09HScSGIFBBVkxFCitHT0dJxIYgU0xBVktPCitHT0dJxIYgVkVMSU5LQQorR09HT0xBSyBNQVJHSVRBCitHT0dPTEpFViBNSUhBSkxPCitHT0dPTEpFViBVTEpBTkEKK0dPR09MSkVWIFZBU0lMSUpFCitHT0dPViBNSUxBTgorR09KQU4gRkVSRU5DCitHT0pJxIYgRFJBR0FOCitHT0pJxIYgR09KS08KK0dPSknEhiBNSUxFTkEKK0dPSknEhiBNSUxFCitHT0pLT1Ygxb1JVktPCitHT0pLT1YgSlVMSUpBTkEKK0dPSktPViBNSUxFTkEKK0dPSktPViBSQURPTUlSCitHT0pLT1YgVkFTSUxJSkUKK0dPSktPVknEhiBET05LQQorR09KS09WScSGIERSQUdBTgorR09KS09WScSGIERSQUdPUkFECitHT0pLT1ZJxIYgRFXFoEFOCitHT0pLT1ZJxIYgR0VPUkdJSkUgRElQTCBJTkcKK0dPSktPVknEhiBJTElKQQorR09KS09WScSGIEpFTEEKK0dPSktPVknEhiBMSlVCScWgQQorR09KS09WScSGIE1JTElTQVYKK0dPSktPVknEhiBNSVRBCitHT0pLT1ZJxIYgTkFERcW9REEKK0dPSktPVknEhiBORVZFTktBCitHT0pLT1ZJxIYgUEFWTEUKK0dPSktPVknEhiBSQURNSUxPCitHT0pLT1ZJxIYgUkFET0xKVUIKK0dPSktPVknEhiBTQVZPCitHT0pLT1ZJxIYgVE9NSVNMQVYKK0dPSk5JxIYgREFWT1IKK0dPSk9WScSGIFZVS09TQVYKK0dPS0xFUiBJTE9OQQorR09MRE1BTiBBTktJQ0EKK0dPTERNQU4tVE9NQcWgRVZJxIYgRVZBCitHT0xFxaAgUlXFvUEKK0dPTEVOScSGIFNMQVZLTworR09MRU5KQSBCUkFOS08KK0dPTEVOSkEgSVJFTkEKK0dPTEVOSkEgTUlST1NMQVZBCitHT0xFTkpBIE1JUk9TTEFWQQorR09MRVZBIE5BREEKK0dPTEnFoEVWScSGIE1JUkpBTkEKK0dPTEnEhiDFvUlWQU4KK0dPTEnEhiDEkE9SxJBFCitHT0xJxIYgQUxFS1NBTkRBUgorR09MScSGIEFOSUNBCitHT0xJxIYgRE9CUklWT0pFCitHT0xJxIYgRkFJRAorR09MScSGIExKVUJPTUlSCitHT0xJxIYgTUFSS08KK0dPTEnEhiBTTEFWS0EKK0dPTEnEhiBTVEFOS0EKK0dPTEnEhiBUT01JU0xBVgorR09MScSGIFZPSklOCitHT0xJxIYgVk9KS08KK0dPTElKQU4gQU5BCitHT0xJSkFOSU4gRFXFoEFOS0EKK0dPTElKQU5JTiBFUsW9RUJFVAorR09MSUsgT0xHQQorR09MSUsgU0xPQk9EQU4KK0dPTEpFVkHEjEtJIERSQUdJQ0EKK0dPTE8gQUxFS1NBTkRBUgorR09MTyBEUkFHT1NMQVYKK0dPTE/EjE9SQklOIFNMQVZVSgorR09MT8SMT1JESU4gRFJBR08KK0dPTE/FoElOLURJTUlUUklKRVZJxIYgTEpJTEpBTkEKK0dPTE/FoElOIFNURVZJQ0EKK0dPTE9CT8SMQU5JTiBNSUxPU0FWCitHT0xPTUVKScSGIE1JTE9SQUQKK0dPTE9OScSGIFpBR09SS0EKK0dPTE9VSCBJVkFOCitHT0xPVknEhiBKT1ZBTgorR09MVcWgSU4gQlJBTklTTEFWCitHT0xVxaBJTiBEUkFHQU4KK0dPTFXFoElOIExKVUJJQ0EKK0dPTFXFoElOIExKVUJPTUlSCitHT0xVxaBJTi1NScSGScSGIE1JTEVOS08KK0dPTFXFoElOIE1JT0RSQUcKK0dPTFXFoElOIE5BREEKK0dPTFXFoElOIE5JS09MQQorR09MVUJJxIxJxIYgVkVSQQorR09MVUJJxIYgTUlMSVZPSkUKK0dPTFVCSkFUTklLT1ZBIE5JTkEKK0dPTFVCT1YgTkFLQQorR09MVUJPVknEhiDEjEVET01JUgorR09MVUJPVknEhiDEkE9SxJBFCitHT0xVQk9WScSGIEFMRUtTQU5EQVIKK0dPTFVCT1ZJxIYgQVJTRU4KK0dPTFVCT1ZJxIYgQk/FoEtPCitHT0xVQk9WScSGIEJPR0RBTgorR09MVUJPVknEhiBCT1JJVk9KCitHT0xVQk9WScSGIEJSQU5LTworR09MVUJPVknEhiBESU1JVFJJSkUKK0dPTFVCT1ZJxIYgRE9CUklMQQorR09MVUJPVknEhiBEUkFHQU5BCitHT0xVQk9WScSGIERSQUdBTgorR09MVUJPVknEhiBEUkFHQQorR09MVUJPVknEhiBHT0xVQgorR09MVUJPVknEhiBHT0xVQgorR09MVUJPVknEhiBJTElKQQorR09MVUJPVknEhiBJVkFOCitHT0xVQk9WScSGIEpFUkVNSUpFCitHT0xVQk9WScSGIEpPVkFOCitHT0xVQk9WScSGIEtTRU5JSkEKK0dPTFVCT1ZJxIYgTEpJTEpBTkEKK0dPTFVCT1ZJxIYgTEpVQklOS0EKK0dPTFVCT1ZJxIYgTFVLQQorR09MVUJPVknEhiBNQU5PSkxPCitHT0xVQk9WScSGIE1BTk9KTE8KK0dPTFVCT1ZJxIYgTUFSSUpBCitHT0xVQk9WScSGIE1JSEFKTE8KK0dPTFVCT1ZJxIYgTUlMQU4KK0dPTFVCT1ZJxIYgTUlMRU5LTworR09MVUJPVknEhiBNSUxFTktPCitHT0xVQk9WScSGIE1JTFVOCitHT0xVQk9WScSGIE1JTFVUSU4KK0dPTFVCT1ZJxIYgTUlPRFJBRworR09MVUJPVknEhiBNSVJKQU5BCitHT0xVQk9WScSGIE1JUk9TTEFWCitHT0xVQk9WScSGIE1MQcSQRU4KK0dPTFVCT1ZJxIYgTU9NxIxJTE8KK0dPTFVCT1ZJxIYgTU9NxIxJTE8KK0dPTFVCT1ZJxIYgTU9NxIxJTE8KK0dPTFVCT1ZJxIYgTkFEQQorR09MVUJPVknEhiBOSUtPTEEKK0dPTFVCT1ZJxIYgT0xHSUNBCitHT0xVQk9WScSGIFBFUknFoEEKK0dPTFVCT1ZJxIYgU0VLVUxBCitHT0xVQk9WScSGIFNUQU5BCitHT0xVQk9WScSGIFNUQU5BCitHT0xVQk9WScSGIFRFT0RPUkEKK0dPTFVCT1ZJxIYgVElIT01JUgorR09MVUJPVknEhiBUT01PCitHT0xVQk9WScSGIFZBTEVSSUpBCitHT0xVQk9WScSGIFZFTElaQVIKK0dPTFVCT1ZJxIYgVlVLQcWgSU4KK0dPTFVCT1ZJxIYgVlVLQcWgSU4KK0dPTFVCT1ZJxIYgWk9SQU4KK0dPTFVCT1ZJxIYgWlZPTklNSVIKK0dPTFVCU0tJIE1JTElDQQorR09MVUJTS0kgUlXFvUEKK0dPTUJBxaAgVEFNQcWgCitHT01CQVIgxaBBTkRPUgorR09NQkFSIEVMSVpBQkVUQQorR09NQkFSIEZFUkVOQworR09NQkFSIEnFoFRWQU4KK0dPTUJBUiBKQU5PxaAKK0dPTUJBUiBKQU5PxaAKK0dPTUJBUiBLQVRBTElOCitHT01CQVIgTUlIQUxKCitHT01CQVIgUk9aQUxJSkEKK0dPTUJPxaAgScWgVFZBTgorR09NQk/FoCBJVklDQQorR09NQk/FoCBLQVJMTworR09NQk9WScSGIEJSQU5LTworR09NSVJBQyDFvUlWS08KK0dPTUlSQUMgQlJBTktPCitHT01JUkFDIFNUT0pBTgorR09OxIxJTiBTUkVUS08KK0dPTsSQQSDFvUlWQU4KK0dPTsSQQSBNSUxFTkEKK0dPTsSQQSBQRVRBUgorR09OREEgTEFESVNMQVYKK0dPTkRBUiBSVcW9QQorR09OSkEgQlJBTklNSVIKK0dPTkpBIE1JTE9TTEFWCitHT05KQSBQRVRBUgorR09SxaBFIEFORFJJSkEKK0dPUkFOT1ZJxIYgRFJBR08KK0dPUkFOT1ZJxIYgTUlSS08KK0dPUkJBTk9WIElWQU4KK0dPUkRBTknEhiBTVE9KQU4KK0dPUkRJxIYgREFSSU5LQQorR09SREnEhiBHT0pLTworR09SREnEhiBMQVZJTklKQQorR09SREnEhiBNSUxPUkFECitHT1JEScSGIE1JTE9WQU4KK0dPUkRJxIYgUklTVE8KK0dPUkRJxIYgU0xBVktPCitHT1JEScSGIFNURVZBTgorR09SREnEhiBWSVRPTUlSCitHT1JET8WgIMW9VcW9QU5BCitHT1JFxIxBTiBLQVJMTworR09SRUMgRFJBR1VUSU4KK0dPUkVDIE5BREEKK0dPUkVOSkFLIFJVRE9MRgorR09SScSMQU5FQyBNSUpPCitHT1JKQU5BQyBCUkFOS08KK0dPUkpBTkFDIE1BUklOCitHT1JOSkFLIEtBVElDQQorR09SVFZBIEpPU0lQCitHT1NBUknEhiBGUkFOSkEKK0dPU1BJxIYgTkVERUxKS08KK0dPU1BPxJBJTkHEjEtJIFJBRE9WQU4KK0dPU1BPRElOT1ZJxIYgSVZBTgorR09TVEnEhiBaRFJBVktPCitHT1NUSU1JUk9WScSGIE1BUklOCitHT1NUSU1JUk9WScSGIFBFVEFSCitHT1NUT0pJxIYgxJBVUsSQSU5LQQorR09TVE9KScSGIERVxaBBTgorR09TVE9KScSGIEpPVkFOCitHT1NUT0pJxIYgTEFaQVIKK0dPU1RPSknEhiBNSUxBTkEKK0dPU1RPSknEhiBNSUxPxaAKK0dPU1RPSknEhiBNSVJPU0xBVgorR09TVE9KScSGIE1JVEFSCitHT1NUT0pJxIYgU0xBVktBCitHT1NUT0pJxIYgU0xPQk9EQU5LQQorR09TVE9KScSGIFRFT0RPUgorR09TVE9WScSGIMSQT1LEkEUKK0dPU1RPVknEhiBCT0dEQU4KK0dPU1RPVknEhiBJS0EKK0dPU1RPVknEhiBMSlVCT01JUgorR09TVE9WScSGIE1PTUlSCitHT1TFoFRBSk4gRkVSRU5DCitHT1ZFREFSSUNBIMSMRURPCitHT1ZFREFSSUNBIMW9RUxJTUlSCitHT1ZFREFSSUNBIERFSkFOCitHT1ZFREFSSUNBIERSQUdJQ0EKK0dPVkVEQVJJQ0EgTUlMRU5LTworR09WRURBUklDQSBNSUxPVkFOCitHT1ZFREFSSUNBIE1JVEFSCitHT1ZFREFSSUNBIE1JVEFSCitHT1ZFREFSSUNBIFBBVkxFCitHT1ZFREFSSUNBIFNJTU8KK0dPVkVEQVJJQ0EgU0xBVktPCitHT1ZFREFSSUNBIFRBVEFKQU5BCitHT1ZFREFSSUNBIFZFTElNSVIKK0dPVkVEQVJJQ0EgVkxBRElNSVIKK0dPVkVEQVJPVknEhiBKVUxJSkEKK0dPVkVEQVJPVknEhiBOSUtPTEEKK0dPVkVEQVJPVknEhiBQRVRBUgorR09WT1LEjElOIMW9SVZLQQorR09WT1LEjElOIEJPR0RBTgorR09WT1LEjElOIERBUklOS0EKK0dPVk9SxIxJTiBERUxJTktBCitHT1ZPUsSMSU4gRElNSVRSSUpFCitHT1ZPUsSMSU4gRElNSVRSSUpFCitHT1ZPUsSMSU4gRFXFoEFOCitHT1ZPUsSMSU4gR0FWUkEKK0dPVk9SxIxJTiBMQVpBUgorR09WT1LEjElOIE1MQURFTgorR09WT1LEjElOIFNBVkEKK0dPVk9SxIxJTiBTTEFWSUNBCitHT1ZPUsSMSU4gU0xPQk9EQU4KK0dPVk9SxIxJTiBTVEVWQU4KK0dPVk9SxIxJTiBTVE9KQU4KK0dPVk9SxIxJTiBWRVJBCitHT1ZPUsSMSU4gVkxBREEKK0dPVk9SxIxJTiBWTEFESU1JUgorR09WT1LEjElOT1YgTUlST1NMQVYKK0dSxIxBTkFDIEJSQU5LTworR1LEjEUgTUlMQU4KK0dSxIxJxIYgTUlMRU5LTworR1LEjEnEhiBNSUxJVk9KCitHUsSMScSGIFNMT0JPREFOIERJUEwgSU5HCitHUsSMScSGIFNWRVRJU0xBVgorR1LEjEnEhi1UVUJJxIYgSk9WQU5LQQorR1LEjEnEhiBWRVJJQ0EKK0dSxIxJxIYgWk9SS0EKK0dSxIxLSSBNSUxFCitHUsSMS0kgTUlSSkFOQQorR1LFoEnEhiDEkE9SxJBFCitHUsWgScSGIMSQT1LEkEUKK0dSxaBJxIYgTUlMSUNBCitHUsWgScSGIE5JS09MQQorR1LFoEnEhiBSVcW9SUNBCitHUsWgScSGIFNPRklKQQorR1LEkEnEhiBEUkFHVVRJTgorR1JBxIxBTklOIElWQU4KK0dSQcSMQU5JTiBWQUxFUklKQQorR1JBxIxFSyBTVEVWQU4KK0dSQcSMSUsgU0xBVktBCitHUkHEjElLIFNURVZBTgorR1JBxIxLTyDFoEFORE9SCitHUkHEjEtPIE9MR0EKK0dSQcSMS08gT0xHQQorR1JBxIxLTyBST1pBTElKQQorR1JBxaBBIEpPU0lQCitHUkHFoEFSIEFOQQorR1JBxaBJxIYgVkFMRU5USU4KK0dSQcWgScSGIFpERU5LTworR1JBxaBORVIgU09GSUpBCitHUkHEkElOIE1JTE/FoAorR1JBQiBGRVJFTkMKK0dSQUJBUiBKT1NJUEEKK0dSQUJBUiBKT1NJUAorR1JBQkFSIE1JUktPCitHUkFCRcW9IElMRQorR1JBQkXFvSBKT0pBCitHUkFCScSGIFNURVZBTgorR1JBQknEhiBVUk/FoAorR1JBQk9DSSBSQU1BREFOCitHUkFCT1ZBQyBBQ08KK0dSQUJPVkFDIENWRVRBCitHUkFCT1ZBQyBESU1JVFJJSkUKK0dSQUJPVkFDIEpPVkFOCitHUkFCT1ZBQyBORVZFTktBCitHUkFCT1ZBQyBSQU5LTworR1JBQk9WQUMgU0lNRVVOCitHUkFCVU5Exb1JSkEgSlVMSUpBTkEKK0dSQURBxaDEjEVWScSGIE9TTUFOCitHUkFEScSGIMW9SVZLTworR1JBREnEhiBCT8W9SUNBCitHUkFEScSGIERBTktBCitHUkFEScSGIFNQQVNPSkUKK0dSQURJTsSMRVZJxIYgQVJTRU5JSkUKK0dSQURJTkEgU01JTEpLQQorR1JBRElOQUMgQUxFS1NBTkRBUgorR1JBRElOQUMgU1JFRE9KRQorR1JBRElOQUMgU1JFRE9KRQorR1JBRElOQUMgU1JFRE9KRQorR1JBRElOQVJPViBESU1JVFJJSkUKK0dSQURPSkVWScSGIEtBVElDQQorR1JBRE9KRVZJxIYgTEpVQklDQQorR1JBSEVLIE5BREEKK0dSQUhPVkFDIMSQT1LEkEUKK0dSQUhPVkFDIMSQT1LEkEUKK0dSQUhPVkFDIEJSQU5JU0xBVgorR1JBSE9WQUMgQ1ZJSk8KK0dSQUhPVkFDIERBTklKRUxBCitHUkFIT1ZBQyBEUkFHQU5BCitHUkFIT1ZBQyBEUkFHSUNBCitHUkFIT1ZBQyBEVcWgQU5LQQorR1JBSE9WQUMgRFXFoEFOCitHUkFIT1ZBQyBEVcWgQU4KK0dSQUhPVkFDIERVxaBBTgorR1JBSE9WQUMgR09KS08KK0dSQUhPVkFDIEpBTktPCitHUkFIT1ZBQyBKT1ZBTgorR1JBSE9WQUMgSk9WQU4KK0dSQUhPVkFDIE1JT0RSQUcKK0dSQUhPVkFDIE1JUktPCitHUkFIT1ZBQyBNSVJPU0xBVgorR1JBSE9WQUMgTkFEQQorR1JBSE9WQUMgTklLT0xBCitHUkFIT1ZBQyBPQlJBRAorR1JBSE9WQUMgUkFERQorR1JBSE9WQUMgUkFOS0EKK0dSQUhPVkFDIFNMQVZJQ0EKK0dSQUhPVkFDIFNMQVZLTworR1JBSE9WQUMgU0xBVktPCitHUkFIT1ZBQyBTTUlMSkEKK0dSQUhPVkFDIFNQQVNPCitHUkFIT1ZBQyBWQVNPCitHUkFIT1ZBQyBWRUxJTUlSCitHUkFIT1ZBQyBaREVOS08KK0dSQUpMSU5HIEVNSUwKK0dSQU5EScSGIE1JSk9EUkFHCitHUkFOREnEhiBNSUxJQ0EKK0dSQU5EScSGIFJBRE9WQU4gRFIgUFJPRgorR1JBTkRJxIYgU1RPSkFOCitHUkFOScSGIE1BUklKQQorR1JBTknEhiBNQVJJSkEKK0dSQU5JxIYgTklLT0xBCitHUkFOVUxBIEdPSktPCitHUkFPTkpBIMSQVVJPCitHUkFPUiBNSVJPU0xBVgorR1JBT1IgU0xBVktPCitHUkFPUkFDIElTSURPUgorR1JBT1ZBQyDEkE9SxJBFCitHUkFPVkFDIEFPUklLQQorR1JBT1ZBQyBCTEHFvQorR1JBT1ZBQyBCT0dEQU4KK0dSQU9WQUMgQk9HREFOCitHUkFPVkFDIEJPUklTTEFWCitHUkFPVkFDIERVxaBBTgorR1JBT1ZBQyBNSUxPxaAKK0dSQU9WQUMgTUlMT1JBRAorR1JBT1ZBQyBPTElWRVJBCitHUkFPVkFDLVBBRFJPViBMSlVCSU5LQQorR1JBT1ZBQyBTTE9CT0RBTktBCitHUkFQxIxBSyBKT1NJUAorR1JBVkFSQSBEUkFHSUNBCitHUkFWQVJBIE5JS09MQQorR1JBVkFSQSBSQURFCitHUkJBIEtPU1RBCitHUkJBIE1JTEFOCitHUkJBIE5FVkVOS0EKK0dSQkEgVlVLT0pJQ0EKK0dSQkFUSU5JxIYgTUlMQU4KK0dSQkFUSU5JxIYgTUlMT8WgCitHUkJBViBKT04KK0dSQkFWQUMgTkVWRU5LQQorR1JCQVZBQyBOSUtPTEEKK0dSQknEhiDFvUlWQU4KK0dSQknEhiDFvUlWS08KK0dSQknEhiDEkE9SxJBFIE1SCitHUkJJxIYgxJBVUkHEkAorR1JCScSGIMSQVVJPCitHUkJJxIYgQU7EkEVMSUpBCitHUkJJxIYgQU5LQQorR1JCScSGIEFOS0lDQQorR1JCScSGIEJPxaBLTworR1JCScSGIEJPR0RBTktBCitHUkJJxIYgQk9SSVZPSkUKK0dSQknEhiBCUkFOS08KK0dSQknEhiBExb1FVkFECitHUkJJxIYgREFSSU5LQQorR1JCScSGIERFU0EKK0dSQknEhiBEUkFHQU4KK0dSQknEhiBEUkFHQU4KK0dSQknEhiBEUkFHQU4KK0dSQknEhiBEUkFHTworR1JCScSGIERSRU5LQQorR1JCScSGIERVxaBBTgorR1JCScSGIERVxaBBTgorR1JCScSGIERVxaBBTgorR1JCScSGIERVxaBBTgorR1JCScSGIERVxaBBTgorR1JCScSGIERVxaBBTgorR1JCScSGIERVxaBBTgorR1JCScSGIERVxaBJQ0EKK0dSQknEhiBHT0pLTworR1JCScSGIEdPUkFOCitHUkJJxIYgSk9WQU5LQQorR1JCScSGIEpPVkFOS0EKK0dSQknEhiBKT1ZBTgorR1JCScSGIEpPVkFOCitHUkJJxIYgSk9WSUNBCitHUkJJxIYgSk9WTworR1JCScSGIExBWkFSCitHUkJJxIYgTEpVQkFOCitHUkJJxIYgTEpVQknFoEEKK0dSQknEhiBNQVJJSkEKK0dSQknEhiBNSUxBTgorR1JCScSGIE1JTEFOCitHUkJJxIYgTUlMQU4KK0dSQknEhiBNSUxFTkEKK0dSQknEhiBNSUxFTkEKK0dSQknEhiBNSUxFTktPCitHUkJJxIYgTUlMRU5LTworR1JCScSGIE1JTEUKK0dSQknEhiBNSUxJxIYKK0dSQknEhiBNSUxJQ0EKK0dSQknEhiBNSUxLQQorR1JCScSGIE1JTE/FoAorR1JCScSGIE1JTE/FoAorR1JCScSGIE1JTE9SQUQKK0dSQknEhiBNSUxPVkFOCitHUkJJxIYgTUlMT1ZBTgorR1JCScSGIE1JTFVUSU4KK0dSQknEhiBNSVJBCitHUkJJxIYgTUlSQQorR1JCScSGIE1MQURFTgorR1JCScSGIE5JS09MQQorR1JCScSGIE9TVE9KQQorR1JCScSGIFBFVEFSCitHUkJJxIYgUEVUQVIKK0dSQknEhiBQRVRBUgorR1JCScSGIFJBREUKK0dSQknEhiBST1NBCitHUkJJxIYgU0xPQk9EQU4KK0dSQknEhiBTVEVWQU4KK0dSQknEhiBTVEVWQU4KK0dSQknEhiBTVEVWTworR1JCScSGIFNWRVRLTworR1JCScSGIFZBU0EgRFIKK0dSQknEhiBWRVJBCitHUkJJxIYgVklECitHUkJJxIYgVk9KSU4KK0dSQknEhiBWT0pJU0xBVgorR1JCScSGIFZVS09TQVZBCitHUkJJTiBNQVJJSkEKK0dSQklOIFJBRE9TTEFWCitHUkJPVkFDIE1JSEFMSgorR1JCT1ZJxIYgQUxJTAorR1JCT1ZJxIYgRFJBR0FOCitHUkJPVknEhiBHQVZSSUxPCitHUkJPVknEhiBKT1ZBTgorR1JCT1ZJxIYgSk9WQU4KK0dSQk9WScSGIE1JTEFOCitHUkJPVknEhiBNSUxBTgorR1JCT1ZJxIYgTUlSxIxFVEEKK0dSQk9WScSGIE1PTcSMSUxPCitHUkJPVknEhiBNVVJBVAorR1JCT1ZJxIYgTVVSQVQKK0dSQk9WScSGIFJBRElTQVYKK0dSQk9WScSGIFJVxb1JQ0EKK0dSQk9WScSGIFNMQVZLTworR1JCT1ZJxIYgU01JTEpBCitHUkNFIEFOSUNBCitHUkNJxIYgSk9WQU4KK0dSQ0nEhiBNSUxJQ0EKK0dSQ0nEhiBOSUtPTEEKK0dSQ0nEhiBWRVNFTElOCitHUkNPVknEhiBWRVJJQ0EKK0dSREnEhiBJVklDQQorR1JEScSGIExVSktBCitHUkRJxIYgTUFSQQorR1JESU5JxIYgTUlSS08KK0dSRElOScSGIFNMT0JPREFOCitHUkXEjCBST1pBTElKQQorR1JFxIxFTCBLQVJMTworR1JFxIxOSUsgSkFOS08KK0dSRcSMTklLIE1BUklKQQorR1JFxIxOSUsgUEFWTEUKK0dSRUJFTERJTkdFUiBMSlVCSUNBCitHUkVCRUxESU5HRVIgUEVUQVIKK0dSRUJOSkVWIFJPWkFMSUpBCitHUkVCTyBORURFTEpLTworR1JFQk9WScSGIFJBTktPCitHUkVHRUMgTUFSSUpBCitHUkVHRUMgVklMSQorR1JFR0VDIFZJTEkKK0dSRUdFUiBIRURWSUdBCitHUkVHT1IgSk9TSVAKK0dSRUdPUknEhiBCUkFOS08KK0dSRUdPUknEhiBEVcWgQU4KK0dSRUdPUknEhiBNSUxBTktBCitHUkVHT1JJTiBQRVRBUgorR1JFR09ST1ZJxIYgQU5UT05JSkUKK0dSRUdPUk9WScSGIElWQU4KK0dSRUdPUk9WScSGIFZMQURJTUlSIERJUEwgSU5HCitHUkVHVcWgIEFOVEFMCitHUkVHVcWgIEpBTk/FoAorR1JFR1XFoCBMQVNMTworR1JFR1XFoCBQRVRBUgorR1JFR1VSScSGIElWQU4KK0dSRUlTSU5HRVIgREFSSU5BCitHUkVJWkVSIFBFVEFSCitHUkVLIFNBRElLCitHUkVLUyBQQVZFTAorR1JFS1UgQURFTQorR1JFS1UgR0FOSQorR1JFS1UgSEFTQU4KK0dSRUtVIE1VSEFNRVIKK0dSRUtVIE5FWklSCitHUkVLVSBSQU1JWgorR1JFS1UgU0FCSVQKK0dSRUtVTE9WScSGIEpPVkFOCitHUkVLVUxPVknEhiBTVEFOxIxFCitHUkdBTk9WScSGIMSQVVJBCitHUkdBUiDEkFVSSUNBCitHUkdBUiBCUkFOS0EKK0dSR0FSIExBWkFSCitHUkdBUiBUT8WgQQorR1JHScSMRVZJxIYgSlVMScWgS0EKK0dSR0nEhiBCT8WgS08KK0dSR0nEhiBCT0pBTkEKK0dSR0nEhiBEUkFHT0pFCitHUkdJxIYgTUlKTworR1JHScSGIE1JTEFOCitHUkdJxIYgU0FWRVRBCitHUkdJxIYgU0lNTworR1JHScSGIFZFUkEKK0dSR0nEhiBWRVJJQ0EKK0dSR0nEhiBaVk9OSU1JUgorR1JHSU7EjEVWScSGIE1JSEFFTEEgUFJPRkVTT1IKK0dSR0lOxIxFVknEhiBWTEFESU1JUgorR1JHVVIgRFXFoEFOCitHUkdVUiBSQURPU0xBVgorR1JHVVIgVkxBREEKK0dSR1VSRVZJxIYgTUlST1NMQVYKK0dSR1VSRVZJxIYgUkFKS08KK0dSR1VSScSGIEFOVFVOCitHUkdVUknEhiBKT1NJUAorR1JHVVJJxIYgUlXFvUlDQQorR1JHVVJPViBTTE9CT0RBTgorR1JHVVJPVknEhiBNSUxPUkFECitHUklGQVRPTkcgS0FSTE8KK0dSSUZBVE9ORyBPVE8KK0dSSUdPUklKRVYgQUxFS1NBTkRBUgorR1JJR09SSUpFVknEhiBOSUtPTEEKK0dSSUdPUklKRVZJxIYgUEVUQVIKK0dSSUpBSyBEQU5JQ0EKK0dSSUpBSyBLT1NPVktBCitHUklKQUsgTUlMQU4KK0dSSUpBS09WScSGIE1JTElDQQorR1JJSkFLT1ZJxIYgTUlMT8WgCitHUklMRUMgU1RBTktPCitHUklMRUMgU1RBTktPCitHUklOSFVUIExBRElTTEFWCitHUklTQSBQRVRBUgorR1JJU0hBQkVSIEZSQU5KQQorR1JJWkVMSiBLQVJMTworR1JJWkVSIFBFVEFSCitHUklaRVIgU1RFVkFOCitHUktBVkFDIE1JTEFOCitHUktBVkFDIE1JUk9TTEFWCitHUktJTknEhiBLT1NBUkEKK0dSS0lOScSGIE1JTEFOCitHUktPVknEhiDFvUlWQU4KK0dSS09WScSGIMSQT1LEkEUKK0dSS09WScSGIMSQVVJPCitHUktPVknEhiBBTktBCitHUktPVknEhiBCT8W9SURBUgorR1JLT1ZJxIYgQk9HT0xKVUIKK0dSS09WScSGIEJPUklTTEFWCitHUktPVknEhiBCUkFOS08KK0dSS09WScSGIERBTkUKK0dSS09WScSGIERVxaBBTgorR1JLT1ZJxIYgRFXFoEFOCitHUktPVknEhiBHQVZSSUxPCitHUktPVknEhiBKRUxFTkEKK0dSS09WScSGIEpPVkFOIERJUEwgSU5HCitHUktPVknEhiBKT1ZBTgorR1JLT1ZJxIYgTEpJTEpBTkEKK0dSS09WScSGIE1JTElDQSBEUgorR1JLT1ZJxIYgTUlSSkFOQQorR1JLT1ZJxIYgU1RPSkFOS0EKK0dSS09WScSGIFZFUkEKK0dSS09WScSGIFZPSklNSVIKK0dSS09WScSGIFZPSklOCitHUktPVlNLSSBQQU5UQQorR1JMScSGIMSQT1LEkEUKK0dSTEnEhiBMSlVCSU5LTworR1JMScSGIE1JTEVOS08KK0dSTElDQSDFvUVMSktPCitHUkxJQ0EgQk9TSUxKS0EKK0dSTElDQSBNSUxFVkEKK0dSTElDQSBNSUxPVkFOCitHUkxJQ0EgU1RBTktPCitHUkxJQ0EgVk9KSU4KK0dSTEpFVknEhiBNSVJKQU5BCitHUk1BxaAgxJBVUk8KK0dSTUHFoCBCUkFOS08KK0dSTU/FoCBQUkVEUkFHCitHUk1VxaBBIMW9SVZLTworR1JNVcWgQSDEkFVSTworR1JNVcWgQSBNSUxBTgorR1JNVcWgQSBNSUxBTgorR1JNVcWgQSBSQURFCitHUk1VxaBBIFNMQVZLTworR1JNVcWgQSBTTUlMSktBCitHUk1VxaBBIFNUT0pBTgorR1JNVcWgQSBWRUxLTworR1JOSkEgxJBVUkEKK0dSTkpBIEFORFJJSkEKK0dSTkpBIEFOS0EKK0dSTkpBLUFTQU5JIExKVU1OSUpBCitHUk5KQSBEVcWgQU4KK0dSTkpBIEpBTktPCitHUk5KQSBKQU4KK0dSTkpBIEpPVkFOCitHUk5KQSBKT1ZBTgorR1JOSkEgSk9WQU4KK0dSTkpBIEpPVkFOCitHUk5KQSBKVVJBSgorR1JOSkEgTEFTTE8KK0dSTkpBIExKVURFVklUCitHUk5KQSBNQVJJSkEKK0dSTkpBIE9TS0FSCitHUk5KQSBTT0ZJSkEKK0dSTkpBIFNURVZBTgorR1JOSkEgU1RFVkFOCitHUk5KQSBTVEVWQU4KK0dSTkpBIFZMQURJTUlSCitHUk/FoEVLIFpWT05JTUlSCitHUk/FoEtPIE1BUklKQQorR1JPTSBDSVJJTAorR1JPTUlMScSGIE1JTE9SQUQKK0dST1MgxJBPUsSQRQorR1JPUyBJVkFOCitHUk9TIExBRElTTEFWCitHUk9aREFOScSGIMSQT1LEkEUKK0dST1pEQU5JxIYgRU5JTktBCitHUk9aREFOScSGIEpPU0lQCitHUk9aREFOScSGIE1JTEFOCitHUk9aREFOScSGIE1JTEFOCitHUk9aREFOT1YgU0xBVktPCitHUk9aREFOT1ZTS0kgREFNSkFOCitHUk9aREFOT1ZTS0kgTUlMRQorR1JPWkRBTk9WU0tJIFBFVEFSCitHUk9aREnEhiBCT8WgS08KK0dST1pEScSGIEJPR0RBTgorR1JPWkRJxIYgREVTQU5LQQorR1JPWkRJxIYgRE9CUklWT0oKK0dST1pEScSGIERVxaBBTgorR1JPWkRJxIYgSkFTTUlOQQorR1JPWkRJxIYgSk9WQU4KK0dST1pEScSGIEpPVkFOCitHUk9aREnEhiBKT1ZBTgorR1JPWkRJxIYgS1VaTUFOCitHUk9aREnEhiBMQVpBUgorR1JPWkRJxIYgTEpVQknFoEEKK0dST1pEScSGIExKVUJPTUlSCitHUk9aREnEhiBNSUxBTgorR1JPWkRJxIYgUEVUQVIKK0dST1pEScSGIFNURVZBTgorR1JPWkRJxIYgVkVTTkEKK0dST1pEScSGIFpEUkFWS08KK0dST1pEScSGIFpPUkFOCitHUk9aREnEhiBaT1JJQ0EKK0dST1pHVVQgVElCT1IKK0dSVUJBIERPUlUKK0dSVUJBIFRJQkVSSUpFCitHUlVCQcSMIEdPUkRBTkEKK0dSVUJBxIwgTUFLU0EKK0dSVUJBxIwgTU9NxIxJTE8KK0dSVUJBxIwgU1RBTktBCitHUlVCQcSMIFRBTkFTSUpFCitHUlVCQcSMScSGIEdPSktPCitHUlVCQU5PViBET0JSSVZPSgorR1JVQkFOT1YgRFXFoEFOS0EKK0dSVUJBTk9WIE5PVkFLCitHUlVCQU5PViBaQUhBUklKRQorR1JVQkXFoEEgTklLT0xBCitHUlVCRcWgScSGIERSQUdBTgorR1JVQkXFoEnEhiBEVcWgQU4KK0dSVUJFxaBJxIYgTUVMQU5JSkEKK0dSVUJFUiBFRFVBUkQKK0dSVUJFUiBFTUlMCitHUlVCRVIgRVZBTEQKK0dSVUJFUiBGUkFOSkEKK0dSVUJFUiBSVURPTEYKK0dSVUJFVEnEhiBPTEdBCitHUlVCScWgQSBBTsSQRUxPCitHUlVCScWgScSGIE1JUkpBTkEKK0dSVUJJxaBJxIYgTUlSS08KK0dSVUJJxaBJxIYgTklLT0xBCitHUlVCScSGIMW9QVJLTworR1JVQknEhiDFvUFSS08KK0dSVUJJxIYgQU5LQQorR1JVQknEhiBNSUxBTgorR1JVQknEhiBOSUtPTEEKK0dSVUJJTiBNSUxBTgorR1JVQklOIE1JUk9TTEFWCitHUlVCSkXFoEnEhiBCUkFOS08KK0dSVUJKRcWgScSGIE1JTEVOS08KK0dSVUJKRcWgScSGIE1JUktPCitHUlVCSkXFoEnEhiBTVEVWTworR1JVQk9SIEFEQU0KK0dSVUJPUiBCUkFOS08KK0dSVUJPUiBFTUEKK0dSVUJPUiBKRUZUTworR1JVQk9SLUpPSknEhiBTTEFWSUNBCitHUlVCT1IgSk9WTworR1JVQk9SIExBWkFSCitHUlVCT1IgTEFaTworR1JVQk9SIExKVUJPTUlSCitHUlVCT1IgTUlMSkFOQQorR1JVQk9SIE1JTE/FoAorR1JVQk9SIE5FxJBPCitHUlVCT1IgTkVERUxKS08KK0dSVUJPUiBORVZFTkEKK0dSVUJPUiBOSUtPTEEKK0dSVUJPUiBOSUtPTEEKK0dSVUJPUiBPTEdBCitHUlVCT1IgUkFERQorR1JVQk9SIFNMT0JPREFOCitHUlVCT1IgU1JFVE8KK0dSVUJPUiBWVUpPCitHUlVCT1IgWkRSQVZLTworR1JVQk9ST1ZJxIYgTUlMRQorR1JVQk9WScSGIElMSUpBCitHUlVFU0tVLcSGSVJJxaBBTiBERUxJSkEKK0dSVUnEjEnEhiBEUkFHT0xKVUIKK0dSVUlLIFZFUk9OSUtBCitHUlVKxIxJxIYgTklLT0xBCitHUlVKQU5BQyBNSUxBTgorR1JVSkVWIE9HTkpBTiBESVBMIElORworR1JVSknEjCBTTE9CT0RBTgorR1JVSknEjEnEhiBCSUxKQU5BCitHUlVKScSMScSGIEpPVkEKK0dSVUpJxIxJxIYgTUFSSU5LTworR1JVSknEjEnEhiBNSUEKK0dSVUpJxIxJxIYgTUlMSUNBCitHUlVKScSMScSGIE1JTE9KRQorR1JVSknEjEnEhiBORU5BRAorR1JVSknEjEnEhiBQRVRBUgorR1JVSknEjEnEhiBQUkVEUkFHCitHUlVKScSMScSGIFJBRE9NSVIKK0dSVUpJxIxJTiBTVEFOT0pFCitHUlVKScSMS09WIEpPVkFOCitHUlVKScSMS09WIE1JTEtBCitHUlVKScSGIMW9SVZLQQorR1JVSknEhiDFvUlWT1JBRAorR1JVSknEhiDEkEVOQQorR1JVSknEhiDEkEVOSVNJSkUKK0dSVUpJxIYgxJBPUsSQRQorR1JVSknEhiDEkFVSxJBJQ0EKK0dSVUpJxIYgxJBVUkEKK0dSVUpJxIYgxJBVUkEKK0dSVUpJxIYgQUxFS1NBTkRBUgorR1JVSknEhiBBTEVLU0FOREFSCitHUlVKScSGIEFMRUtTQU5EQVIKK0dSVUpJxIYgQUxFS1NBTkRBUgorR1JVSknEhiBBTEVLU0FOREFSCitHUlVKScSGIEFOxJBFTEtPCitHUlVKScSGIEFORFJJSkEKK0dSVUpJxIYgQU5JQ0EKK0dSVUpJxIYgQk/FvUlEQVIKK0dSVUpJxIYgQk/FvUlEQVIKK0dSVUpJxIYgQk9SSVNMQVYKK0dSVUpJxIYgQk9SSVZPSgorR1JVSknEhiBCT1NJTEpLQQorR1JVSknEhiBCUkFOSVNMQVYKK0dSVUpJxIYgQlJBTklTTEFWCitHUlVKScSGIEJSQU5LTworR1JVSknEhiBDVklKRVRJTgorR1JVSknEhiBDVklKTworR1JVSknEhiBEQU5JQ0EKK0dSVUpJxIYgRElNSVRSSUpFCitHUlVKScSGIERSQUdJQ0EKK0dSVUpJxIYgRFXFoEFOCitHUlVKScSGIERVxaBBTgorR1JVSknEhiBEVcWgQU4KK0dSVUpJxIYgRlJBTkNJxaBLQQorR1JVSknEhiBHQVZSQQorR1JVSknEhiBHQVZSSUxPCitHUlVKScSGIEdPUkFOCitHUlVKScSGIEdPUklDQQorR1JVSknEhiBHUlVKQQorR1JVSknEhiBJTElOS0EKK0dSVUpJxIYgSVZBTiBESVBMIElORworR1JVSknEhiBJVkFOS0EKK0dSVUpJxIYgSkFOSkEKK0dSVUpJxIYgSkVMSUNBCitHUlVKScSGIEpFTElTQVZFVEEKK0dSVUpJxIYgSkVMS0EgRFIKK0dSVUpJxIYgSk9WQU5LQQorR1JVSknEhiBKT1ZBTktBCitHUlVKScSGIEpPVkFOCitHUlVKScSGIEpPVkFOCitHUlVKScSGIEpPVkFOCitHUlVKScSGIEpPVkFOCitHUlVKScSGIEpPVklDQQorR1JVSknEhiBKVUxLQQorR1JVSknEhiBLT1NUQSBEUgorR1JVSknEhiBLT1NUQSBEUgorR1JVSknEhiBMQVpBUgorR1JVSknEhiBMRU5LQQorR1JVSknEhiBMSklMSkFOQQorR1JVSknEhiBMSlVCSUNBCitHUlVKScSGIExKVUJPTUlSCitHUlVKScSGIExKVUJPCitHUlVKScSGIE1BUklKQQorR1JVSknEhiBNQVJJSkEKK0dSVUpJxIYgTUFSSUpBCitHUlVKScSGIE1BUklKQQorR1JVSknEhiBNQVJJTkEKK0dSVUpJxIYgTUlIQUpMTworR1JVSknEhiBNSUxBTgorR1JVSknEhiBNSUxBTgorR1JVSknEhiBNSUxBTgorR1JVSknEhiBNSUxFTkEKK0dSVUpJxIYgTUlMRU5LTworR1JVSknEhiBNSUxFCitHUlVKScSGIE1JTElDQQorR1JVSknEhiBNSUxPxaAKK0dSVUpJxIYgTUlMT8WgCitHUlVKScSGIE1JTE9SQUQKK0dSVUpJxIYgTUlMT1JBRAorR1JVSknEhiBNSVJKQU5BCitHUlVKScSGIE1JUk9TTEFWIERJUEwgSU5HCitHUlVKScSGIE1JUk9TTEFWCitHUlVKScSGIE1JVEFSCitHUlVKScSGIE5BREEgRFIgTEVLQVIKK0dSVUpJxIYgTkFEQQorR1JVSknEhiBOQURBCitHUlVKScSGIE5FREVMSktPCitHUlVKScSGIE5JS09MQQorR1JVSknEhiBOSUtPTEEKK0dSVUpJxIYgTklLT0xBCitHUlVKScSGIE5JS09MQQorR1JVSknEhiBOSUtPTEEKK0dSVUpJxIYgTklLT0xBCitHUlVKScSGIE5PVkFLCitHUlVKScSGIFBBVkxFCitHUlVKScSGIFBFVEFSCitHUlVKScSGIFJBREVOS08KK0dSVUpJxIYgUkFERQorR1JVSknEhiBSQURJxaBBCitHUlVKScSGIFJBRElOS0EKK0dSVUpJxIYgUkFESVZPSgorR1JVSknEhiBSQURJVk9KCitHUlVKScSGIFJBRE1JTEEKK0dSVUpJxIYgUkFET0pJQ0EKK0dSVUpJxIYgUkFET1ZBTgorR1JVSknEhiBSVcW9SUNBCitHUlVKScSGIFNBTkpBCitHUlVKScSGIFNBVkEKK0dSVUpJxIYgU0FWQQorR1JVSknEhiBTSU5JxaBBCitHUlVKScSGIFNMQVZJxaBBCitHUlVKScSGIFNMQVZJQ0EKK0dSVUpJxIYgU0xBVktBCitHUlVKScSGIFNMQVZLTworR1JVSknEhiBTTE9CT0RBTiBESVBMIElORworR1JVSknEhiBTTE9CT0RBTgorR1JVSknEhiBTTE9CT0RBTgorR1JVSknEhiBTTE9CT0RBTgorR1JVSknEhiBTTE9CT0RBTgorR1JVSknEhiBTTUlMSkFOQQorR1JVSknEhiBTTUlMSkEKK0dSVUpJxIYgU01JTEpBCitHUlVKScSGIFNSxJBBTgorR1JVSknEhiBTVEVWQU4KK0dSVUpJxIYgU1RFVkFOCitHUlVKScSGIFNURVZBTgorR1JVSknEhiBTVEVWQU4KK0dSVUpJxIYgU1RPSkFOIERSCitHUlVKScSGIFNWRVRPWkFSCitHUlVKScSGIFNWRVRPWkFSCitHUlVKScSGIFRBVEpBTkEKK0dSVUpJxIYgVkVMSU1JUgorR1JVSknEhiBWRVJJQ0EKK0dSVUpJxIYgVkVTRUxJTgorR1JVSknEhiBWRVNOQQorR1JVSknEhiBWT0pJU0xBVgorR1JVSknEhiBaRFJBVktPCitHUlVKScSGIFpMQVRJQ0EKK0dSVUpJxIYgWkxBVElDQQorR1JVSklOIERBTklDQQorR1JVSklOIERVxaBBTgorR1JVSklOIExKVUJJQ0EKK0dSVUpJTiBNSUxBTgorR1JVSklOIE1JTE/FoAorR1JVSklOIE5BREEKK0dSVUpJTiBPTEdBCitHUlVKSU4gUEVUQVIKK0dSVUpJTiBSQURPU0xBVgorR1JVSklOIFNBxaBBCitHUlVKSU4gU01JTEpBCitHUlVKSU4gU1BBU09KRQorR1JVSklOIFRFUkVaQQorR1JVSklOIFpPUkFOCitHUlVKSU5PVknEhiBEUkFHVVRJTgorR1JVSklOT1ZJxIYgWk9SS0EKK0dSVUpPVknEhiBCUkFOSVNMQVYKK0dSVUpPVknEhiBNSUhBSkxPCitHUlVKT1ZTS0kgTEFaQVIKK0dSVUxPVknEhiBSQURPSktBCitHUlVMT1ZJxIYgWkRFTktPCitHUlVMT1ZJxIYgWkRSQVZLQQorR1JVTE9WScSGIFpEUkFWS08KK0dSVU7EjEnEhiBKT1ZBTgorR1JVTklLIFZMQURJTUlSIERSCitHVcWgQSBOSUtPTEEKK0dVxaBBIFBSRURSQUcKK0dVxaBBVkFDIFpPUkFOCitHVcWgScSGIEJPR0RBTgorR1XFoEnEhiBCT1JJUworR1XFoEnEhiBNQU5PSkxPCitHVcWgScSGIE1BTk9KTE8KK0dVxaBJxIYgTUlMRU5LQQorR1XFoEnEhiBSQURFTktPCitHVcWgScSGIFJBREVOS08KK0dVxaBJxIYgVUdMSkXFoEEKK0dVxaBJxIYgVkFTSUxKS0EKK0dVxb1BTEnEhiBNQVJJSkEKK0dVxb1BTEnEhiBTVEpFUEFOCitHVcW9QUxJxIYgVkxBRElNSVIKK0dVxb1BTEnEhiBaVk9OSU1JUgorR1XFvUVMQSBMQVNMTworR1XFvVZBTkogSVZJQ0EKK0dVxb1WSUNBIMSQT1LEkEUKK0dVxb1WSUNBIMSQT1LEkEUKK0dVxb1WSUNBIEJSQU5JU0xBVgorR1XFvVZJQ0EgTUlMQU4KK0dVxb1WSUNBIE1JTEFOCitHVcW9VklDQSBNSVJLTworR1XFvVZJQ0EgTklLT0xBCitHVcW9VklDQSBTVEVWTworR1XFvVZJQ0EgWk9SQU4KK0dVQkHFoCBBTsSQRUxJSkEKK0dVQkHFoCBNSVJPU0xBVgorR1VCQcWgIFZMQURJTUlSCitHVUJBxaAgWkFHT1JLQQorR1VCQU5EQSBCQVJCQVJBCitHVUJBTkRBIExBRElTTEFWCitHVUJFUklOQSBEVcWgQU4KK0dVQkVSSU5BIFNMT0JPREFOCitHVUJFUklOScSGIExKVUJJQ0EKK0dVQkVSTk9WIEpVTElKQU5BCitHVUJJxIYgTUlSS08KK0dVQklDQSBKT1ZBTgorR1VCSUsgxaBBTkRPUgorR1VCSUsgxaBBTkRPUgorR1VCSUsgS0FSTE8KK0dVQklLIEtBVEFSSU5BCitHVUJJSyBTVEVWQU4KK0dVQyBTVEVWQU4KK0dVQ0lKQU4gU1RFVkEKK0dVQ1UgTUlSSkFOQQorR1VDVUxKIEpFTEVOQQorR1VDVUxKIE1BUkdJVEEKK0dVQ1VMSiBWRVJBCitHVUNVTkpBIEpPVkFOCitHVUNVTkpBIE1JTEFOCitHVUNVTkpBIE1JTE9SQUQKK0dVQ1VOSkEgTUlMT1JBRAorR1VDVU5TS0kgxb1JVktBCitHVUNVTlNLSSDEkE9SxJBFCitHVUNVTlNLSSBCT8W9SURBUgorR1VDVU5TS0kgQk9SSVNMQVYKK0dVQ1VOU0tJIEJSQU5JU0xBVgorR1VDVU5TS0kgSVZBTktBCitHVUNVTlNLSSBJVkFOS0EKK0dVQ1VOU0tJIEpFTEVOQQorR1VDVU5TS0kgSk9WQU4KK0dVQ1VOU0tJIE1BUklKQQorR1VDVU5TS0kgTkFEQQorR1VDVU5TS0kgUEVSU0lEQQorR1VDVU5TS0kgUkFERQorR1VDVU5TS0kgU0lNQQorR1VEQUxKIE1BUlRBCitHVURBTE9WScSGIE1PTUlSCitHVURBTE9WScSGIFJBRE1JTEEKK0dVREVMSiDEkE9SxJBFCitHVURFTEogQlJBTklTTEFWIERJUEwgSU5HCitHVURFTEogSk9WQU4KK0dVREVMSiBNQVJJSkEKK0dVREVMSiBNSUxBTgorR1VERUxKIE1JTEVOQQorR1VERUxKIE1PTcSMSUxPCitHVURFTEogTkVERUxKS0EKK0dVREVMSiBTQVZBIERSCitHVURPVknEhiBEUkFHT01JUgorR1VET1ZJxIYgUEFWTEUKK0dVRE9WScSGIFJBRE1JTEEKK0dVRE9WScSGIFNURVZBTgorR1VEVVJJxIYgQUxFS1NBTkRBUgorR1VEVVJJxIYgQU7EkEVMS0EgRFIKK0dVRFVSScSGIEJSQU5JTUlSIERSCitHVURVUknEhiBERUpBTgorR1VEVVJJxIYgSk9WQU4KK0dVRFVSScSGIFNWRVRJU0xBVgorR1VEVVJJxIYgVkFTQQorR1VEVVJJxIYgWk9SQU4KK0dVRUxNSU5PIMWgQU5ET1IKK0dVRUxNSU5PIEZSScSQRcWgCitHVUdBIFZFUkEKK0dVR0EgVkVSQQorR1VHScSGIFNJTknFoEEKK0dVR0xFVEEgU1JCSVNMQVYKK0dVS09ESSBNTEFERU4KK0dVTEHEjEkgSk9TSVAKK0dVTEHEhkkgTEpVQklOS0EKK0dVTEFOIEJPxaBLTworR1VMQU4gQlJBTklTTEFWCitHVUxBTiBWSURPU0FWQQorR1VMRCBWQUxFUklKQQorR1VMRVZJxIYgVEFUSkFOQQorR1VMRVZJxIYgVkxBRElNSVIgRFIgTEVLQVIKK0dVTEVWU0tJIERJTcSMRQorR1VMRVZTS0kgRElNxIxFCitHVUxFVlNLSSBESU3EjEUKK0dVTEVWU0tJIERJTcSMRQorR1VMRVZTS0kgRElNxIxFCitHVUxFVlNLSSBNSUhBSkxPCitHVUxFVlNLSSBTQcWgQQorR1VMScSMIElNUkUKK0dVTEnEhiBTVEFOS08KK0dVTEnEhiBWRVNOQQorR1VMSU4gTUFSSUNBCitHVUxJTiBaTEFUS08KK0dVTEpBxaAgTUFSSUpBCitHVUxKQcWgIFRFUkVaSUpBCitHVUxKQcWgIFZFU05BCitHVUxKUEEgTUlMQU4KK0dVTEpQQSBTQVZBCitHVU5FSyBNQVJJSkEKK0dVTkVLIE1BVEUKK0dVTkVLIFRPTUEKK0dVTknEhiBNSUxFTkEKK0dVTkpFVknEhiBNSUxFCitHVU5KRVZJxIYgTkVWRU5LQQorR1VSQU4gVEFNQcWgCitHVVJKQU5PViDFvUFSS08KK0dVUkpBTk9WIEJMQUdPSkUKK0dVUkpBTk9WIEpFTElDQQorR1VSSkFOT1YgVkFTQQorR1VST1ZJxIYgQk/FvUlEQVIKK0dVU0nEhiBNSUxFVkEKK0dVU01BTiDEkE9SxJBFIERSIExFS0FSCitHVVNNQU4gRFJBR0lDQQorR1VTTUFOIEdFUkhBUkQKK0dVU01BTiBISUxEQQorR1VTTUFOIElNUkUKK0dVVCBKQU5LTworR1VUIEpPVkFOCitHVVQgTkFUQUxJSkEKK0dVVEFJIEpPTEFOCitHVVRBSSBNSUhBTEoKK0dVVEFKSSBJTEXFoAorR1VUQUxKIE1JTE9SQUQKK0dVVEXFoEEgxJBVUk8KK0dVVEXFoEEgTUlSS08KK0dVVEXFoEEgTklLT0xBCitHVVRFxaBBIFZPSklTTEFWCitHVVRJIMW9T0xUCitHVVRJxIYgxaBQSVJPCitHVVRJxIYgR09SQU4KK0dVVE1BTiBBTEVLU0FOREFSCitHVVRNQU4gREFSSU5LTworR1VUT1ZJxIYgQU7EkEVMS08KK0dVVE9WScSGIERBTklFTEEKK0dVVE9WScSGIE1JTEVOS08KK0dVVE9WScSGIFJBREUKK0dVVE9WScSGIFJJU1RPCitHVVRPVknEhiBTSU5JxaBBCitHVVRPVknEhiBTTkXFvUFOQQorR1VUT1ZJxIYgWk9SQU4KK0dVVFZBSk4gQURBTQorR1VUVkFKTiBBREFNCitHVVRWQUpOIEVMSVpBQkVUQQorR1VUVkFKTiBFVkEKK0dVWklKQU4gSk9WTworR1VaSUpBTiBNSUxBTgorR1VaSUpBTiBOSUtPTEEKK0dVWklOQSDEjEVET01JUgorR1VaSU5BIExKVUJJU0FWCitHVVpJTkEgTUlIQUpMTworR1VaSU5BIE1JTE9SQUQKK0dVWklOQSBNSUxPUkFECitHVVpJTkEgTUlMT1NBViBEUgorR1VaSU5BIFZMQURJTUlSCitHVVpJTkEgVk9KSVNMQVYKK0dVWklOQSBWVUtBxaBJTgorR1ZFUknEhiBCT1JJVk9KCitHVkVSScSGIFNORcW9QU5BCitHVkVSTyBMQVpPCitHVkVSTyBNSVJBCitHVk/FvcSQQU4gQk9SSVNMQVZBCitHVk/FvcSQQU4gTUlIQUpMTworR1ZPxb3EkEFOIFJBRE9WQU4KK0dWT0nEhiBCUkFOS08KK0dWT0nEhiBNSUxBTgorR1ZPScSGIFZBTEVSSUpBCitHVk9KScSGIEJPUklTTEFWCitHVk9KScSGIE1JTEFOCitHVk9KScSGIFNUQU5LTworR1ZPSknEhiBTVEVWQU4KK0dWT0tBIE5BREEKK0dWT1pERU4gQk9TSUxKS0EKK0dWT1pERU4gQlJBTktPCitHVk9aREVOIFNSRVRPCitHVk9aREVOIFZMQURJTUlSCitHVk9aREVOQUMgxb1JVktPCitHVk9aREVOQUMgQk9SQQorR1ZPWkRFTkFDIEJPUkEKK0dWT1pERU5BQyBCT1JLQQorR1ZPWkRFTkFDIERSQUdPTEpVQgorR1ZPWkRFTkFDIERVxaBBTgorR1ZPWkRFTkFDIFJBSktPCitHVk9aREVOQUMgU05Fxb1BTkEKK0dWT1pERU5PViBKT1ZBTgorR1ZPWkRFTk9WIE1JTEFOCitHVk9aREVOT1ZJxIYgxb1JVk9SQUQKK0dWT1pERU5PVknEhiDEkE9SxJBFCitHVk9aREVOT1ZJxIYgxJBVUk8KK0dWT1pERU5PVknEhiBCT8W9TworR1ZPWkRFTk9WScSGIEJSQU5LTworR1ZPWkRFTk9WScSGIEJSQU5LTworR1ZPWkRFTk9WScSGIERFSkFOCitHVk9aREVOT1ZJxIYgRFJBR0lOSkEKK0dWT1pERU5PVknEhiBEVcWgQU4gRFIKK0dWT1pERU5PVknEhiBEVcWgQU4KK0dWT1pERU5PVknEhiBFTUlMSUpBCitHVk9aREVOT1ZJxIYgTEpJTEpBTkEKK0dWT1pERU5PVknEhiBMSlVCTworR1ZPWkRFTk9WScSGIE1JxIZPCitHVk9aREVOT1ZJxIYgTUlMSVZPSkUKK0dWT1pERU5PVknEhiBNSUxPxaAKK0dWT1pERU5PVknEhiBNSVJLTworR1ZPWkRFTk9WScSGIE1JUk9TTEFWCitHVk9aREVOT1ZJxIYgTUlST1NMQVYKK0dWT1pERU5PVknEhiBOSUtPTEEKK0dWT1pERU5PVknEhiBQRVRBUgorR1ZPWkRFTk9WScSGIFJBSktPCitHVk9aREVOT1ZJxIYgUkFKS08KK0dWT1pERU5PVknEhiBSQUpLTworR1ZPWkRFTk9WScSGIFNURVZPCitHVk9aREVOT1ZJxIYtVE9ET1JPVknEhiBaQUdPUktBCitHVk9aREVOT1ZJxIYtVE9ET1JPVknEhiBaQUdPUktBCitHVk9aREVOT1ZJxIYgVklEQQorR1ZPWkRFTk9WScSGIFZJVE9NSVIKK0dWT1pERU5PVknEhiBWTEFEQQorR1ZPWkRFTk9WScSGIFZMQURBCitHVk9aREVOT1ZJxIYgWk9SSUNBCitHVk9aREnEhiDEkE9SxJBFCitHVk9aREnEhiBNSUxBTgorSEHFoE9WScSGIEFORFJJSkEKK0hBxaBPVknEhiBJTVJFCitIQcSQSU5BQyBCUkFOSVNMQVYKK0hBQkHFoCBaT1JBTgorSEFCQUpFQyBMSlVCSUNBCitIQUJFSyDFvUVMSktPCitIQUJFTsWgVVMgTUlMRU5LTworSEFCRU7FoFVTIE1JTEVOS08KK0hBQklKQU4gRlJBTkpBCitIQUJJSkFOIFZFU05BCitIQUJJSkFORUMgVElIT01JUgorSEFCT1IgSkFOCitIQUJSQU0gQVJBTktBCitIQUJSQU0gS0FST0xKCitIQUJVREEgSk9TSVAKK0hBQlVEQSBWQUxFTlRJTgorSEFDT1BVTE9TIMSQT1LEkEUKK0hBQ09QVUxPUyBOQURBCitIQUTFvUkgQUxFS1NBTkRBUgorSEFExb1JIEtPU1RBIEFEVk9LQVQKK0hBRMW9SS1NQU5PViBMSlVQxIxPCitIQUTFvUktUEFWTE9WScSGIE9MR0EKK0hBRMW9SSBSQU1BREFOCitIQUTFvUnEhiBCT1NJTEpLQQorSEFExb1JxIYgR09SQU5LQQorSEFExb1JxIYgSUJSQUhJTQorSEFExb1JxIYgSVNNRVQKK0hBRMW9ScSGIExBWkFSCitIQUTFvUnEhiBMQVpBUgorSEFExb1JxIYgTUlMQU4gRFIKK0hBRMW9ScSGIE1JTEVWQQorSEFExb1JxIYgTU9OSUtBCitIQUTFvUnEhiBNVUhBUkVNCitIQUTFvUnEhiBOQURBCitIQUTFvUnEhiBPTEdBIERSCitIQUTFvUnEhiBQQVZMRQorSEFExb1JxIYgUkFESVZPSgorSEFExb1JxIYgU0xBVlVKCitIQUTFvUnEhiBWTEFESU1JUgorSEFExb1JQUhNRVRPVknEhiBSQVNJTQorSEFExb1JQVJTScSGIERPQlJJVk9KRQorSEFExb1JQkFCScSGIERSQUdBTgorSEFExb1JQkFCScSGIFJBRE9NSVIKK0hBRMW9SUJBQknEhiBSQURPTUlSCitIQUTFvUlCQUJJxIYgWk9SSUNBCitIQUTFvUlIQVNBTk9WScSGIFJBRE1JTEEKK0hBRMW9SVZVS09WScSGIFNURVZBTiBEUiBQUk9GCitIQUTFvU9WScSGIEpFTElTQVZFVEEKK0hBRMW9T1ZJxIYgUkFUS08KK0hBREFESSBTTUlMSkEKK0hBRElLIEFEUklFTgorSEFESUsgSk/FvUVGCitIQUROQcSQIEdJWkVMQQorSEFETkHEkCBURVJFWkEKK0hBRE5BxJAgVkVSQQorSEFETkHEkCBWRVJPTklLQQorSEFETkHEkEVWIEFSU0VOCitIQUROQcSQRVYgRFXFoEFOIERSCitIQUROQcSQRVYgRFXFoEFOCitIQUROQcSQRVYgSVNJRE9SCitIQUROQcSQRVYgTUlPRFJBRworSEFETkHEkEVWIE1JUktPCitIQUROQcSQRVYgU1RBTklTTEFWCitIQUROQcSQRVYgU1RFVkFOCitIQUROQcSQRVYgU1RPSkFOCitIQUlOIEJSQU5JU0xBVgorSEFJTiBaT1JJQ0EKK0hBSsSMVU5LIEpPxb1FRgorSEFKxIxVTksgTUlSS08KK0hBSkHFoCBKRUxJU0FWRVRBCitIQUpEQVJFVknEhiBPUkhBTgorSEFKREFSUEHFoEnEhiBFU0FECitIQUpERVIgxJBPUsSQRQorSEFKREVSIERSQUdBTgorSEFKREVSIExVS0EKK0hBSkRFUiBNQVJJQ0EKK0hBSkRFUiBNQVJLTworSEFKREVSIE1JTE/FoAorSEFKREVSIFJBREUKK0hBSkRFUiBSQUpLTworSEFKREVSIFNUT0pBTktBCitIQUpERVIgVkVTTkEKK0hBSkRFUiBaT1JBTgorSEFKREnEhiBBTsSQRUxLTworSEFKRElOIEJPR0RBTgorSEFKRElOIFNMQVZLTworSEFKRFUgQU5BCitIQUpEVSBBTkRSSUpBCitIQUpEVSBBTlRBTAorSEFKRFUgRkVSRU5DCitIQUpEVS1HUkFKTEFIIEVNQQorSEFKRFUgSUxPTktBCitIQUpEVSBJUkVOQQorSEFKRFUgSk/FvUVGCitIQUpEVSBKT0xJS0EKK0hBSkRVIEpPU0lQCitIQUpEVSBLQVRJQ0EKK0hBSkRVIEtMQVJBCitIQUpEVSBMQUpPxaAKK0hBSkRVIExBU0xPCitIQUpEVSBMSlVERVZJVAorSEFKRFUgTUFSSUpBCitIQUpEVSBPVE8KK0hBSkRVIFBBVkxFCitIQUpEVSBTVEVWQU4KK0hBSkRVSyDEkE9SxJBFCitIQUpEVUsgSVJJTkEKK0hBSkRVSyBKQU5LTworSEFKRFVLT1ZJxIYgQVJTRU4KK0hBSkRVS09WScSGIEJPxaBLTworSEFKRFVLT1ZJxIYgQk9HREFOCitIQUpEVUtPVknEhiBERVNBTktBCitIQUpEVUtPVknEhiBEVcWgQU4KK0hBSkRVS09WScSGIEpPVkFOS0EKK0hBSkRVS09WScSGIExKSUxKQU5BCitIQUpEVUtPVknEhiBNSUxBTktBCitIQUpEVUtPVknEhiBNSUxBTgorSEFKRFVLT1ZJxIYgTkFERcW9REEKK0hBSkRVS09WScSGIE9UTworSEFKRFVLT1ZJxIYgUkFET1NMQVYgRElQTCBJTkcKK0hBSkRVS09WScSGIFNNSUxKQQorSEFKTkFMIEFOVEFMCitIQUpOQUwgR0FCUklKRUxBCitIQUpOQUwgSVZBTgorSEFKTkFMIExBU0xPCitIQUpOQUwgTEpVQklDQQorSEFKTkFMIE1BUklKQQorSEFKTkFMIE5JS09MQQorSEFKTkMgxJBPUsSQRQorSEFKTkMgSk9TSVAKK0hBSk5DIEpPVkFOCitIQUpOQyBaTEFUQQorSEFKVEZPR0VMIFZMQURBCitIQUpURk9HRUwgVkxBRElTTEFWCitIQUpUTCBJVkFOCitIQUpWQVogUkFKS08KK0hBSlpMRVIgxJBPUsSQRQorSEFKWkxFUiBEVcWgQU4KK0hBSlpMRVIgSk9WQU4KK0hBS0HEjCBNQVRJSkEKK0hBS0VSIElWQU4KK0hBS0VSIFRFUkVaQQorSEFMQcWgIFpVWkFOQQorSEFMQcWgSSDEkE9SxJBFCitIQUxBxaBJIEVURUxLQQorSEFMQcWgSS1LScWgIEZSQU5LQQorSEFMQcWgSSBSVcW9QSBEUiBJTkcKK0hBTEFJIElNUkUKK0hBTEFJIE1BUklKQQorSEFMQUkgUEVUQVIKK0hBTEFJIFNBQk9MxIwKK0hBTEFQSSBEUkFHSUNBCitIQUxBUEkgSVJFTkEKK0hBTEFQSSBJVkFOCitIQUxBUyDFoEFORE9SCitIQUxBUyBGUkFOSkEKK0hBTEFTIE1BUklKQQorSEFMQVZBTkpBIMW9RUxKS08KK0hBTEFWQU5KQSBMSlVCQU4KK0hBTEFWQU5KQSBNSUxBTgorSEFMQVZBTkpBIFJBREUKK0hBTEFWQU5KQSBTVEVWQQorSEFMRVIgU1RFVkFOCitIQUxJTE9WScSGIE1VSEFSRU0KK0hBTElNIFNFRkVSCitIQUxVUEtBIEpPxb1FRiBEUgorSEFNIEFMRUtTQU5EQVIKK0hBTVUgTUlIQUxKCitIQU1aScSGIE1JTEVOQQorSEFOIFNPRklKQQorSEFOQ0tPIEpPxb1FRiBEUgorSEFOQ0tPIEpPxb1FRiBEUgorSEFOREEgS0FUSUNBCitIQU5HIE1BVEVKCitIQU5HIFZMQVRLTworSEFOR0EgQU5UVU4KK0hBTkdBIEFOVFVOCitIQU5HQSBNQVJJSkEKK0hBTkdPVlNLSSBBTkRSSUpBCitIQU5TS08gSk9TSVAKK0hBTlNLTyBTVEVWQU4KK0hBTlXFoEnEhiBTRUFECitIQVJBxIxJxIYgRMW9RU1BTAorSEFSQcSMScSGIExKVUJJQ0EKK0hBUkFLIFBBVkxFCitIQVJBTUJBxaBJxIYgQk/FvUFOQQorSEFSQU1JSkEgTUFSSUpBCitIQVJBTkdPWk8gxaBBTkRPUgorSEFSQU5HT1pPIMWgQU5ET1IKK0hBUkFOR09aTyDFoEFSSUtBCitIQVJBTkdPWk8gQkFMSU5UCitIQVJBTkdPWk8gQk/FoEtPCitIQVJBTkdPWk8gRVLFvUVCRVQKK0hBUkFOR09aTyBFUsW9RUJFVAorSEFSQU5HT1pPIEnFoFRWQU4KK0hBUkFOR09aTyBJTVJFCitIQVJBTkdPWk8tSkVHUknFoEtJIE1BUklKQQorSEFSQU5HT1pPIEtBUk9MSgorSEFSQU5HT1pPLVRPUkkgxb1Vxb1BTkEKK0hBUkFOR09aTy1UT1JJIMSQVVJBCitIQVJBTkdPWk8tVE9SSSBCT8W9SURBUgorSEFSQU5HT1pPLVRPUkkgSVJJTkEKK0hBUkFOR09aTy1UT1JJIElWQU4KK0hBUkFOR09aTy1UT1JJIEpPQUtJTQorSEFSQU5HT1pPLVRPUkkgSk9WQU4KK0hBUkFOR09aTy1UT1JJIEpPVkFOCitIQVJBTkdPWk8tVE9SSSBMSlVCSUNBCitIQVJBTkdPWk8tVE9SSSBORVNUT1IKK0hBUkFOR09aTy1UT1JJIE5JS09MQQorSEFSQU5HT1pPLVRPUkkgU0lMVkVTVEVSCitIQVJBTkdPWk8tVE9SSSBTVE9KQU5LQQorSEFSQU5HT1pPLVRPUkkgVkVTTkEKK0hBUkFOR09aTy1UT1JJIFZMQURJTUlSCitIQVJBTkdPWk8tVE9SSSBWTEFESU1JUgorSEFSRk1BTiBNQVJBCitIQVJIQUkgxb1FTEpLTworSEFSSEFJIEJPxb1BTkEKK0hBUkhBSSBKQU5LTworSEFSSEFKSSBIRUxFTkEKK0hBUkhBSkkgSkFOS08KK0hBUkhBSkkgSk9BS0lNCitIQVJIQUpJIEpPQUtJTQorSEFSSEFKSSBMSlVCT01JUgorSEFSSEFKSSBMSlVCT01JUgorSEFSSEFKSSBNSVJPTgorSEFSSEFKSSBOSUtPTEEKK0hBUkhBSkkgVkxBRElNSVIKK0hBUkhBSkkgVkxBRElNSVIKK0hBUknFoCBKRUxJU0FWRVRBCitIQVJJxaAgSkVMSVNBVkVUQQorSEFSScWgIExKVUJJVk9KRQorSEFSScWgIFBJUk/FoEtBCitIQVJJSkFOIMWgVEVGSUNBCitIQVJLQUkgU1RFVkFOCitIQVJNQVQgS09OUkFECitIQVJQQU5KIE1JSEFMCitIQVJUIE1BUkdJVEEKK0hBUlRJRyBJUkVOQQorSEFSVElHIFRJQk9SCitIQVJUTUFOIEtBVEFSSU5BCitIQVJUTUFOIFZFU05BCitIQVMgQUxFS1NBTkRBUgorSEFTIEtBUkxPCitIQVMgTUFSVEEKK0hBUyBNSUxJQ0EKK0hBU0FOQUdJxIYgRVNOQUYKK0hBU0FOQUdJxIYgTUlMQU4KK0hBU0VOQVVFUiBKT1NJUAorSEFTScSGIETFvUVNQUwKK0hBVEFMQSBNQVRFCitIQVRBTEEgWk9MVEFOCitIQVVHIEFOSUNBCitIQVVLIFJPQkVSVAorSEFVUFRNQU4gU0xBVktPCitIQVVSREnEhiBSQUJJSkEKK0hBVVNFUiBISUxEQQorSEFVWkVSIE9TS0FSCitIQVVaTE9ITkVSIElSRU5BCitIQVZKQVIgVkVMSVpBUgorSEFWTEVLIEZSQU5KQQorSEFWTEVLIEpPU0lQCitIQVZSQU4gWkxBVEtPCitIQVZaSSDFoEVSSUYKK0hBVlpJIExJTUFOCitIRcSQRcWgIEpBTk/FoAorSEXEkEVMQUkgU1RFVkFOCitIRcSQSSBBTEVLU0FOREFSCitIRcSQSSBNSUxJQ0EKK0hFREXFoCBKQU5PxaAKK0hFR0VEScWgIMSQRVLEkAorSEVHRURJxaAgQkVMQQorSEVHRURJxaAgQkVSVEEKK0hFR0VEScWgIEdFWkEKK0hFR0VEScWgIEnFoFRWQU4KK0hFR0VEScWgIEpPxb1FRgorSEVHRURJxaAgSk9IQU5BCitIRUdFREnFoCBKT1pFRklOQQorSEVHRURJxaAgVEVSRVpJSkEKK0hFR0VEScWgIFpPTFRBTgorSEVHRURVxaAgS0FST0xJTkEKK0hFSU0gTUFHREEKK0hFS0nEhiBTTEFWSUNBCitIRUxFUiBHQUJSSUpFTAorSEVMRVIgSU5HUklECitIRU0gSkFOT8WgCitIRU1JIEFOSUNBCitIRU1JIFZMQURJU0xBVgorSEVNT04gQk9SSVMKK0hFTU9OIE1BUklKQQorSEVNT04gU0xBVklDQQorSEVNT04gVEVSRVpJSkEKK0hFTU9OIFZMQURJTUlSCitIRU1PTiBWTEFESU1JUgorSEVNUklIIEtMQVJBCitIRU1VTiBNSUhBSkxPCitIRU4gxb1FTEpLTworSEVOIElWSUNBCitIRU4gTUFSSUpBCitIRU5HTCBEQU1KQU4KK0hFTkdMIEpPVkFOCitIRU5HTCBSSUhBUkQKK0hFTknFoCBWSUxNQQorSEVOS0VMIEZJTElQCitIRVAgTUFLU0lNCitIRVLEjElLIFJPQkVSVAorSEVSQUsgSVZBTgorSEVSQUsgU1RBTklTTEFWCitIRVJBS09WScSGIEFMRUtTQU5EQVIKK0hFUkFLT1ZJxIYgQlJBTklTTEFWCitIRVJBS09WScSGIFNMT0JPREFOCitIRVJCRVogTUlMRU5LTworSEVSQlNUIEFOVFVOCitIRVJCVVQgxJBPUsSQRQorSEVSQlVUIEdBQk9SCitIRVJCVVQgSk/FvUVGCitIRVJCVVQgS0FST0xKCitIRVJCVVQgS0lSSUwKK0hFUkJVVCBNSUhBSkxPCitIRVJCVVQgU0lMVkVTVEVSCitIRVJDRUcgxJBPUsSQRQorSEVSQ0VHIERSQUdPU0xBVgorSEVSQ0VHIEtBUkxPCitIRVJDRU5CRVJHRVIgxJBVTEEKK0hFUkNFTkJFUkdFUiBBTEVLU0FOREFSCitIRVJDRU5CRVJHRVIgQUxFS1NBTkRBUgorSEVSQ0VOQkVSR0VSIEdJWkVMQQorSEVSQ0VOQkVSR0VSIElSRU4KK0hFUkNPRyDEkE9SxJBFCitIRVJESSBKT1NJUAorSEVSREkgTEpJTEpBTkEKK0hFUkRJLVNUT0pBTk9WScSGIEFOR0VMSU5BCitIRVJFTsSMScSGIExFT1BPTEQKK0hFUkVORElKQSDEkE9SxJBFCitIRVJFTkRJSkEgTUFSS08KK0hFUkVUQSBTTE9CT0RBTgorSEVSR0VUIEtBVElDQQorSEVSScSGIE1JSE9WSUwKK0hFUklORyBBTUFMSUpBCitIRVJJTkcgSVZBTgorSEVSTUFOIMSMSUxBCitIRVJNQU4gQU7EkEEKK0hFUk1BTiBJVkFOCitIRVJNQU4gS0FSTE8KK0hFUk1BTiBWSUxJTQorSEVST1IgTEFaQVIKK0hFUlBLQSBEVUJSQVZLQQorSEVSUEtBIElWQU4gRFIgSU5HCitIRVJUTCBKT8W9RUYKK0hFUlRMIE5BREEKK0hFUyDFoEFORE9SCitIRVMgTEFTTE8KK0hFU0tPIFZJS1RPUklKQQorSEVWRVIgTUFSR0lUQQorSEVWRVIgUEFWTEUKK0hFVkVSQSBNSUhBSkxPCitIRVZFUkEgWlVaQU5BCitIRVZJWkkgSUxPTkEKK0hFVklaSSBQRVRBUgorSEnEhklMIEFMRUtTQU5EQVIKK0hJxIZJTCBKT1NJUAorSEnEhklMIEtBVEFSSU5BCitIScW9QSBKT1ZBTgorSEnFvUEgTUnFoEEKK0hJQsWgIE1BUklKQQorSElCxaAgUklIQVJEIFNVRElKQQorSElCxaAgVEFOS1JFRAorSElFTCBLU0VOSUpBCitISUwgSk9TSVAKK0hJTCBWRVJBCitISUxJRVItS09MQVJPViBWQUxFUklKQSBEUgorSElMSUVSIExBSk/FoCBESVBMIElORworSElOScSGIMSQT1LEkEUKK0hJTknEhiBCUkFOS08KK0hJTknEhiBNQU5FCitISU5JxIYgTUlMSUNBCitISU5JxIYgUFJFRFJBRworSElQSUsgxaBURUZBTkEKK0hJUElLIEpPVkFOCitISVBJSyBLQVJMTworSElSxaAgU1RKRVBBTgorSElSxaBFTkJFUkdFUiBNQVJUQQorSElSxaBFTkJFUkdFUiBTVEVWQU4gRElQTCBJTkcKK0hJUsWgTUFOIEFOVFVOCitISVJKT1ZBVEkgTEpVQklDQQorSElSSk9WQVRJSiBNSVJPTgorSElSTUFOIEZSQU5KQQorSElSTUFOIFpPTFRBTgorSElURU5CRVJHRVIgxJBPUsSQRQorSElUSSBGUkFOQworSElUTCBFTElaQUJFVEEKK0hJVEwgU1RFVkFOCitITEHEkElLIFpWT05LTworSExBRE5JIElWQU4KK0hMQUROSSBTTEFWS08KK0hMQVBFQyBTVEpFUEFOCitITEFWU0EgU0xBVklDQQorSExFQkVDIE5PUkJFUlQKK0hMT8W9QU4gSk9WQU4KK0hNSUxKIElMSUpBCitITkFUS08gTUnFoEtPCitIT8SMS08gQUpFVAorSE/FoEVLIMSMQUJBCitIT8WgRUsgRlJBTkpBCitIT0JSQVQgTUFSVEEKK0hPRMW9QSBSQU1BREFOCitIT0TFvUnEhiBIQUxJRAorSE9Exb1JxIYgT01FUgorSE9Exb1JxIYgU1RBWkEKK0hPREEgTUVKUkVNCitIT0RBSyBNSUxFCitIT0RBSyBTSUxWRVNUQVIKK0hPREFLIFNPRklKQQorSE9EQUsgVkVSQQorSE9EQUsgVkxBRElTTEFWCitIT0RBUiBKT1NJUAorSE9ESSBFUk5FCitIT0RJIEVSTkUKK0hPREkgRkVSRU5DCitIT0RJIFZJTE1BCitIT0RJSyBCQVJCQVJBCitIT0RJTktBIE1JSEFJTE8KK0hPRE5JSyBBTE9KWgorSE9ET0JBIERBTklKRUxBCitIT0RPTEnEjCBKQU5LTworSE9ET0xJxIYgSkFST1NMQVYKK0hPRk1BTiBBTEVLU0FOREFSCitIT0ZNQU4gQVJUVVIKK0hPRk1BTiBCUlVOTworSE9GTUFOIEZSQU5KQQorSE9GTUFOIExBRElTTEFWCitIT0ZNQU4gTUFSSUpBCitIT0ZNQU4gVkVTTkEKK0hPSE5KRUMgREFSS08KK0hPSE5KRUMgUEVUQVIKK0hPSE5KRUMgVkxBRElNSVIKK0hPTENFUiBMQURJU0xBVgorSE9MRVJCQUggS0FUSUNBCitIT0xJIEFORFJJSkEgTVIgUEgKK0hPTEkgS0FUQVJJTkEKK0hPTEnEjEVLIExBU0xPCitIT0xJxIxFSyBNQVJHSVQKK0hPTEnEjEVLIFNURVZBTgorSE9MSUdBIEtBUkxPCitIT0xJR0EgU05Fxb1BTkEKK0hPTElHQSBTVEVWQU4KK0hPTElLIEpBTktPCitIT0xJSyBKT0FLSU0KK0hPTE8gTEVPTlRJTkEKK0hPTE8gVklMTU/FoCBESVBMIElORworSE9MT0QgU1RFVkFOCitIT0xPREtPViBWTEFESU1JUgorSE9MT1QgUlXFvUEKK0hPTE9WS0EgQU5LQQorSE9MT1ZLQSBCUkFOS0EKK0hPTE9WS0EgTkFUQUxJSkEKK0hPTFBFUlQgRVJORVNUCitIT0xQRVJUIExVSk8KK0hPTUEgQU5BCitIT01BIEJPU0lMSktBCitIT01BIEVVR0VOCitIT01BIEpBTktPCitIT01BIEpPVkdFTgorSE9NQSBNSVJPU0xBVgorSE9NQSBOSUtPTEEKK0hPTUEgUEVUQVIgRElQTCBJTkcKK0hPTUEgVkxBRElNSVIKK0hPTUEgVkxBRElNSVIKK0hPTUEgVlVLSUNBCitIT01PTEpBIEpPxb1FRgorSE9SIEJPxb1JQ0EKK0hPUiBJTElKQQorSE9SIFBBVkxFCitIT1JBSyBNSUhBSkxPCitIT1JBSyBOQU5ET1IKK0hPUkdBUyBJxaBUVkFOCitIT1JHQVMgTUFUSUxEQQorSE9SR0/FoEkgxJBVTEEKK0hPUkdPxaBJIEtBVEFSSU5BCitIT1JJxIYgSkVMSVNBVkVUQQorSE9SScSGIEtPU0lNCitIT1JOIFZBTEVOVElOCitIT1JOSkFLIMW9SVZBCitIT1JOSkFLIMSQVVJPCitIT1JOSkFLIERJTUlUUklKRQorSE9STkpBSyBESU1JVFJJSkUKK0hPUk5KQUsgSVZBTgorSE9STkpBSyBKQU5PxaAKK0hPUk5KQUsgSkFOCitIT1JOSkFLIE1BR0RBTEVOQQorSE9STkpBSyBNScWgQQorSE9STkpBSyBNSVJLTworSE9STkpBSyBPTEdBCitIT1JOSkFLIFBFVEFSCitIT1JOSkFLLVBVxaBLQcWgT1ZBIE1BUklKQQorSE9STkpBSyBTT0ZST05BCitIT1JOSkFLIFNURVZBTgorSE9STkpBSyBWTEFEQQorSE9STkpBSyBWTEFEQQorSE9STkpBSyBWTEFESU1JUgorSE9STkpJSyDFoEFORE9SCitIT1JOSklLIMSQRVLEkAorSE9STkpJSyDEkEVSxJAKK0hPUk5KSUsgWk9MVEFOCitIT1JOT0sgWk9MVEFOCitIT1JOVU5HLcWgT01BTiDFoFRFRkFOSUpBCitIT1JPxaBJTE9WIFNPRklKQQorSE9ST8WgS08gQUxFS1NBTkRBUgorSE9ST8WgS08gU1RFRkFOIERSCitIT1JPVklDIERSQUdJTkpBCitIT1JPVklDIFZMQURJTUlSCitIT1JUSSBEUkFHQU5BCitIT1JUSSBHRVpBCitIT1JUSSBKT1NJUAorSE9SVEkgVkxBRElTTEFWCitIT1JWQUNLSSBNQVJLTworSE9SVkFDS0kgU05Fxb1BTkEKK0hPUlZBVCDFoEFORE9SCitIT1JWQVQgxaBBTkRPUgorSE9SVkFUIMW9T0xUCitIT1JWQVQgxJBVTEEKK0hPUlZBVCDEkFVSQQorSE9SVkFUIEFHSQorSE9SVkFUIEFMRUtTQU5EQVIKK0hPUlZBVCBBTEVLU0FOREFSCitIT1JWQVQgQU5EUkHFoAorSE9SVkFUIEFORFJJSkEKK0hPUlZBVCBBTktBCitIT1JWQVQgQU5UQUwKK0hPUlZBVCBBUlBBRAorSE9SVkFUIEJFTEEKK0hPUlZBVCBCSVNFUktBCitIT1JWQVQgREXFvUUKK0hPUlZBVCBESU1JVFJJSkUKK0hPUlZBVCBFRElUCitIT1JWQVQgRUxJWkFCRVRBCitIT1JWQVQgRVLFvUVCRVQKK0hPUlZBVCBFUklLQQorSE9SVkFUIEVTVEVSCitIT1JWQVQgRkVSRU5DCitIT1JWQVQgRkVSRU5DCitIT1JWQVQgRkVSRU5DCitIT1JWQVQgRkVSRU5DCitIT1JWQVQgRlJBTkpBCitIT1JWQVQgRlJBTkpBCitIT1JWQVQgRlJBTkpPCitIT1JWQVQgR0FCT1IKK0hPUlZBVCBHSVpFTEEKK0hPUlZBVCBHUk9aREFOQQorSE9SVkFUIEnFoFRWQU4KK0hPUlZBVCBJR09SCitIT1JWQVQgSUdPUgorSE9SVkFUIElMT05LQQorSE9SVkFUIElNUkUKK0hPUlZBVCBJTVJFCitIT1JWQVQgSU1SRQorSE9SVkFUIElSRU5BCitIT1JWQVQgSVJFTktBCitIT1JWQVQgSVZBTktBCitIT1JWQVQgSVZBTgorSE9SVkFUIEpBTk/FoCBESVBMIElORworSE9SVkFUIEpBTk/FoAorSE9SVkFUIEpFTEVOQQorSE9SVkFUIEpPxb1FRgorSE9SVkFUIEpPxb1FRgorSE9SVkFUIEpPxb1FRgorSE9SVkFUIEpPU0lQCitIT1JWQVQgSk9TSVAKK0hPUlZBVCBKT1NJUAorSE9SVkFUIEpPU0lQCitIT1JWQVQgSk9TSVAKK0hPUlZBVCBKT1ZBTgorSE9SVkFUIEtBTE1BTgorSE9SVkFUIEtBUkxPCitIT1JWQVQgS0FSTE8KK0hPUlZBVCBLQVJMTworSE9SVkFUIEtBUk9MSgorSE9SVkFUIEtBVEFMSU4KK0hPUlZBVCBLQVRBUklOQQorSE9SVkFUIEtBVElDQQorSE9SVkFUIEtBVElDQQorSE9SVkFUIExBSk/FoAorSE9SVkFUIExBU0xPCitIT1JWQVQgTEFTTE8KK0hPUlZBVCBMQVNMTworSE9SVkFUIExBU0xPCitIT1JWQVQgTEFTTE8KK0hPUlZBVCBMQVNMTworSE9SVkFUIExVRFZJRworSE9SVkFUIE1BUklKQQorSE9SVkFUIE1BUklKQQorSE9SVkFUIE1BUklKQQorSE9SVkFUIE1BUklKQQorSE9SVkFUIE1BUklKQQorSE9SVkFUIE1BUklKQQorSE9SVkFUIE1BUklKQQorSE9SVkFUIE1BUklKQQorSE9SVkFUIE1BVE8KK0hPUlZBVCBNSUhBTEoKK0hPUlZBVC1NSUxJVEnEjEkgS0FST0xKIERSCitIT1JWQVQgTUlMS0EKK0hPUlZBVCBNSUxLQQorSE9SVkFUIE1JTE9TTEFWCitIT1JWQVQgTUlSS08KK0hPUlZBVCBQQUpBCitIT1JWQVQgUEFWTEUKK0hPUlZBVCBQRVRBUgorSE9SVkFUIFJBRE1JTEEKK0hPUlZBVCBST8W9QQorSE9SVkFUIFJPWkFMSUpBCitIT1JWQVQgUlXFvUEKK0hPUlZBVCBSVURPTEYKK0hPUlZBVCBTQU1VRUwKK0hPUlZBVCBTSUxWRVNURVIKK0hPUlZBVCBTTEFWS08KK0hPUlZBVCBTTUlMSkEKK0hPUlZBVCBTVEVWQU4KK0hPUlZBVCBUQU1BxaAKK0hPUlZBVCBURVJFWkEKK0hPUlZBVCBURVJFWkEKK0hPUlZBVCBUSUJPUgorSE9SVkFUIFRJQk9SCitIT1JWQVQgVElCT1IKK0hPUlZBVCBUSUJPUgorSE9SVkFUIFZBTEVSSUpBCitIT1JWQVQgVkVSSUNBCitIT1JWQVQgVkVST05JS0EKK0hPUlZBVCBWRVJPTklLQQorSE9SVkFUIFZMQURJTUlSCitIT1JWQVQgWk9MVEFOCitIT1JWQVQgWk9MVEFOCitIT1JWQVRJxIYgTUFSSUpBTgorSE9SVkFUScSGIE9MR0EKK0hPUlZBVEnEhiBTTEFWS08KK0hPUlZBVEnEhiBaVk9OSU1JUgorSE9SVkFUT1YgUkFTVEtPCitIT1JWQVRPVknEhiDEkE9SxJBFCitIT1JWQVRPVknEhiBLQVRJQ0EKK0hPUlZBVE9WScSGIE1JUkpBTkEKK0hPUlZBVE9WScSGIFBBVkxFIERSCitIT1JWQVRTS0kgRFXFoEFOCitIT1JWQVRTS0kgTEpVQklDQQorSE9SVkFUU0tJIExKVUJJQ0EKK0hPUlZBVFNLSSBNSUxFTktPCitIT1JWQVRTS0kgTUlST1NMQVYKK0hPUlZBVFNLSSBSQURJVk9KCitIT1JWQVRTS0kgUlXFvUlDQQorSE9TVEnEhiBCSVNFUktBCitIT1NUTklLIEtBVElDQQorSE9TVE9OU0tJIFNUQU5BCitIT1QgQURFTQorSE9VRiBFTFZJUkEKK0hPVkFOIE1BUlRJTgorSE9WQU4gTUlST1NMQVYKK0hPVkFORUMgVklLVE9SSUpBCitIUsSGQU4gSk9WQU4KK0hSxIZBTiBKT1ZBTgorSFJBQkFSIElWTworSFJBQk9WU0tJIEFOVE9OCitIUkFCT1ZTS0kgQU5UT04KK0hSQUJPVlNLSSBCT0pBTkEgRFIKK0hSQUJPVlNLSSBFREdBUiBESVBMIE9FQworSFJBQk9WU0tJIElNUkUKK0hSQUJPVlNLSSBMQURJU0xBVgorSFJBQlJJxIYgRVVHRU4KK0hSQURFxIxOSSBCRUxBCitIUkFERcSMTkkgRlJBTkpBCitIUkFERcSMTkkgSk9TSVAKK0hSQU5JxIxBSyBNSVJLTworSFJBTklTQVZMSkVWScSGIFBBVkxFCitIUkFQT1ZJxIYgT1NNQU4KK0hSRExJxIxLQSBERVNBTktBCitIUkXFoMSMQUsgVkxBRElNSVIKK0hSRU5BUiBMQVVSQQorSFJHScSGIExKVUJPTUlSCitIUkdJxIYgTUlMQU4KK0hSR0nEhiBWTEFTVElNSVIKK0hSScSMQU5FSyBNSVJPU0xBVgorSFJJxIxBTkVLIE5FREVMSktBCitIUklCTEpBTiBBTlRPTgorSFJJQk9WxaBFSyBGUkFOQworSFJJQ0tBTknEhiBMVUtBCitIUklFxaBJSyBNQVJJSkEKK0hSSUpFxaBJSyBKQU4KK0hSSUpFxaBJSyBKVVJBSgorSFJJU1RJxIYgQkxBR09KRQorSFJJU1RJxIYgRElNSVRSSUpFCitIUklTVEnEhiBMRVBPU0FWQQorSFJJU1RJxIYgTEpVQklDQQorSFJJU1RJRElTIEFQT1NUT0wKK0hSSVNUSURJUyBOSUtPTEEKK0hSSVNUSURJUyBOSUtPTEEKK0hSSVNUT1YgQlJBTktPCitIUklTVE9WIE1JTE9TSUpBCitIUklTVE9WIFZFU05BCitIUklTVE9WIFpBR09SS0EKK0hSSVNUT1ZBIEVNSUxJSkEKK0hSSVNUT1ZTS0kgVE9NQQorSFJJU1RVIFRJSE9NSVIKK0hSS0FMT1ZJxIYgQk/FoEtPCitIUk7EjEFSIFNBTVVFTAorSFJOxIxJxIYgTUFSR0lUQQorSFJOxIxJxIYgTUlIQUQKK0hSTsSMScSGIFZBSElECitIUk7EjElBUiBBTkEKK0hSTsSMSUFSIEpBTktPCitIUk7EjElBUk9WQSBURVJFWklBCitIUk7EjEpBUiBBTkRSRUoKK0hSTsSMSkFSIFZMQURJTUlSCitIUk5KQcSMS0kgxb1BUktPCitIUk5KQcSMS0kgxJBPUsSQRQorSFJOSkHEjEtJIEpFTElDQQorSFJOSkHEjEtJIEpPVkFOCitIUk5KQcSMS0kgTEFaSUNBCitIUk5KQcSMS0kgTUlMS0EKK0hSTkpBxIxLSSBNTEFERU4KK0hSTkpBSyBEQU5FCitIUk5KQUsgRFJBR0FOCitIUk5KQUsgRFXFoEFOCitIUk5KQUsgTEpJTEpBTkEKK0hSTkpBSyBNQVJJSkEKK0hSTkpBSyBSQUpLTworSFJOSkFLIFZFTEpLTworSFJOSkFLT1ZJxIYgQlJBTklTTEFWCitIUk5KQUtPVknEhiBJVkFOQQorSFJOSkFLT1ZJxIYgSk9WQU4KK0hSTkpBS09WScSGIE1JUktPCitIUk5KRVogT0JSQUQKK0hST01JxaAgQU1BTElKQQorSFJPTUnFoCBBTkEKK0hST01JxaAgQkFSQkFSQQorSFJPTUnFoCBCT1JJU0xBVgorSFJPTUnFoCBKT0FLSU0KK0hST01JxaAgSk9BS0lNCitIUk9NScWgIEtBVElDQQorSFJPTUnFoCBNQVJJSkEKK0hST01JxaAgTUVMQU5JSkEKK0hST01JxaAgTUlIQUpMTyBESVBMIElORworSFJPTUnFoCBNSVJPU0xBVgorSFJPTUnFoCBNSVJPU0xBVgorSFJPTUnFoCBOQURBCitIUk9NScWgIE5JS09MQQorSFJPTUnFoCBQRVRBUgorSFJPTUnFoCBTSU1BCitIUk9NScWgIFZMQURJTUlSCitIUk9NScWgIFpERU5LQQorSFJPTkpFQyBWScSGQVpPU0xBVgorSFJTVE8gU0xBVktPCitIUlVCRU5KQSDEkFVSQQorSFJVQkVOSkEgRkVCUk9OQQorSFJVQkVOSkEgSkFOS08KK0hSVUJFTkpBIEpPQUtJTQorSFJVQkVOSkEgSk9BS0lNCitIUlVCRU5KQSBKT0FLSU0KK0hSVUJFTkpBIEtBUkxPCitIUlVCRU5KQSBNSUhBSkxPCitIUlVCRU5KQSBNSVJPU0xBVgorSFJVQkVOSkEgUEVUQVIKK0hSVUJFTkpBIFpWT05JTUlSCitIUlVCSUsgQU5EUkVKCitIUlVCSUsgSk9WQU4KK0hSVUJJSyBLQVJMTworSFJVQklLIE1JUktPCitIUlVCSUsgT1NLQVIgRFIgTEVLQVIKK0hSVUJJSyBST1pBTElKQQorSFJVU1RBTk9WScSGIFRVUlNVTgorSFJVU1RJxIYgRU1JTgorSFJVU1RJxIYgRU5WRVIKK0hSVVNUScSGIFpJSkFICitIUlVTVEnEhiBaSUxIQQorSFXEjEnEhiBTVEpFUEFOCitIVcSMS0EgSk9WQU4KK0hVxb1WQVIgxaBBTkRPUgorSFXEkEVDIEpPVkFOS0EKK0hVxJBFQyBLQVJMTworSFVCQUkgR0FCT1IKK0hVQkFOScSGIE1JTEVOQQorSFVCRVIgQk9KQU5BCitIVUJFUiBEUkFHQU4KK0hVQkVSIEVMWkEKK0hVQkVSIEpPVkFOIERJUEwgSU5HCitIVUJFUiBNQUdEQUxFTkEKK0hVQkVSIE1BUklKQQorSFVCRVIgTUFUSUxEQQorSFVCRVIgUEVUQVIKK0hVQkVSIFRJQk9SCitIVUJFUlQgRVZBCitIVUJFUlQgUkFETUlMQQorSFVCRVJUIFZFUkEKK0hVQklKQVIgRU5FUworSFVCSUpBUiBOQURBCitIVURBSyBJUklORUoKK0hVREFLIE5BVEFMSUpBCitIVURPTUVMIElWQU4KK0hVSkRVUiBCUkFOS0EKK0hVTVNLSSBST1NBCitIVU5KQURJIEFMRUtTQU5EQVIKK0hVTkpBREkgSUxPTktBCitIVU5KQURJIE9MR0EKK0hVUEVSVCBMQUpPxaAKK0hVUElLIE1JUkpBTkEKK0hVUyBJTVJFCitIVVNBRyBBUlBBRAorSFVTQUdJxIYgRVNBRAorSFVTQUdJxIYgU1VMRUpNQU4KK0hVU0FHScSGIFpJTkVUQQorSFVTQUsgUkFET1ZBTgorSFVTQVIgRVZBCitIVVNBUiBJxaBUVkFOCitIVVNBUiBKQU5LTworSFVTQVIgTEFTTE8KK0hVU0FSIFRPRE9SCitIVVNFSU4gTUVITUVECitIVVNFSU5CRUdPVknEhiBOQU1JSworSFVTRUlOT1ZJxIYgQU5JQ0EKK0hVU0VJTk9WScSGIEFUSUxBCitIVVNFSU5PVknEhiBBVElMQQorSFVTRUlOT1ZJxIYgRVNNRVJBTERBCitIVVNFSU5PVknEhiBJU01FVAorSFVTRU5CRUdPVknEhiBST1pBTElKQQorSFVTScSGIMSQVVLEkElOS0EKK0hVU0nEhiBMQURJU0xBVgorSFVTS0EgSUxPTkEKK0hVU0tBLVJPS0EgTUFHREEgRFIKK0hVU0tPIE1JSk8KK0hVU09WScSGIEhVU08KK0hVVEFMQVJPVknEhiBKRUxFTkEKK0hVVEFMQVJPVknEhiBLT1NUQQorSFVaSkFOIFRJSE9NSVIKK0hWQUxBIE1JUkEKK0hWRVRLT1ZJxIYgSkVMSVNBVkVUQQorScSMQUdJxIYgTklLT0xBCitJxIxFVknEhiBNT03EjElMTworScSMSU4gxb1JVktPCitJxIxJTiBNSUxFTktPCitJxIxJTiBSQURJU0xBVgorScSMSU4gU1JFVEVOCitJxaBJxIYgRUxJWkFCRVRBCitJxaBQQU4gxaBBTkRPUgorScWgUEFOIE1BUkdJVEEKK0nFoFBBTk9WScSGIEpPxb1FRgorScWgVE9LIEpPU0lQCitJxaBUT0sgSk9TSVAKK0nFoFRPSyBNSVJKQU5BCitJxaBUT0sgU1RFVkFOCitJxaBUT0tPVknEhiBTVEVWTworScWgVFZBTk9WIFNUQU5JU0xBVkEKK0nEhklUT1ZJxIYgTUlMQU4KK0nEhlVSVVAgxb1JVk9KSU4KK0nEhlVSVVAgTUlMT1JBRAorScSGVVJVUCBSQURPU0xBViBESVBMIElORworScW9QUsgRkVSRU5DCitJxb1BSyBLQVJMTworScW9QUsgUk9aQUxJSkEKK0nEkElET1YgT0xHQQorScSQSURPViBWRUxJTktBCitJxJBPxaBLSSBIT1JTVAorScSQT8WgS0kgTklLT0xBCitJxJBVxaBLSSBTVEVWQU4KK0lCUkFISU0gREVNSVIKK0lCUkFISU1BR0nEhiBOQURBCitJQlJBSElNSSBJQlJBSElNCitJQlJBSElNT1ZJxIYgREVSVknFoEEKK0lCUkFISU1PVknEhiBFTUlMCitJQlJBSElNT1ZJxIYgSEFNRElKQQorSUJSQUhJTU9WScSGIE1JTEFOCitJQlJBSElNT1ZJxIYgU0xBVktPCitJQlJBSElNT1ZJxIYgVkVSQQorSUJSQUhJTVBBxaBJxIYgQU5BCitJQlJBSlRFUiBJVkFOCitJQlJBSlRFUiBMSlVCT01JUgorSUJSQUpURVIgTUxBREVOCitJQlJJxaBFVknEhiDEkFVMQUdBCitJQlJJxaBFVknEhiBNSVJTQUQKK0lCUknFoEVWScSGIFNVQUQKK0lCUk/EjEnEhiBESU1JVFJJSkUgRElQTCBJTkcKK0lCUk/EjEnEhiBNQVJJSkEKK0lCUk/EjEnEhiBSQVRPTUlSCitJQlJPxIxJxIYgU0xPQk9EQU4KK0lCUk/EjEnEhiBWRVJBCitJQlJPTEkgQkFOCitJQ09TS0kgTEFaQVIKK0lERUkgTkFORE9SCitJREVKSSBKT1ZBTgorSURFSkkgVkFMRVJJSkEKK0lEUklaT1ZJxIYgQUhNRVQgRFIKK0lEVk9SRUFOIFRPRE9SCitJRFZPUkVBTiBWSUtFTlRJSkUKK0lGSlUgQU5HRUxJS0EKK0lGSlUgR0FCT1IKK0lGS08gSUxESUtPIERJUEwgSU5HCitJR0nEhiDFvUlWQURJTgorSUdJxIYgxJBVTFZBU0lKQQorSUdJxIYgQU5LQQorSUdJxIYgRFJBR0FOCitJR0nEhiBKT1ZBTktBCitJR0nEhiBNSUxLQQorSUdJxIYgTUlMT1JBRAorSUdJxIYgTUlST1NMQVZBCitJR0nEhiBNSVJPU0xBVgorSUdJxIYgTklLT0xBCitJR0nEhiBQQVZMRQorSUdJxIYgUkFKS08KK0lHScSGIFNBxaBBCitJR0nEhiBTVEVWQU4KK0lHScSGIFNURVZBTgorSUdJxIYgU1ZFVE9aQVIKK0lHScSGIFRPTUlTTEFWCitJR0nEhiBWVUtBCitJR05BQyBQRVJBCitJR05KQUMgVklEQQorSUdOSkFUScSGIEFOS0EKK0lHTkpBVEnEhiBCT1JJVk9KCitJR05KQVRJxIYgRFXFoEFOS0EKK0lHTkpBVEnEhiBHT0pLTworSUdOSkFUScSGIE5FVkVOS0EKK0lHTkpBVEnEhiBSQURPVkFOCitJR05KQVRJxIYgVklECitJR05KQVRJSkVWScSGIEFMRUtTQU5EQVIKK0lHTkpBVElKRVZJxIYgQlJBTklTTEFWCitJR05KQVRJSkVWScSGIERPQlJJTEEKK0lHTkpBVElKRVZJxIYgRFJBR09NSVIKK0lHTkpBVElKRVZJxIYgRFXFoEFOCitJR05KQVRJSkVWScSGIERVxaBBTgorSUdOSkFUSUpFVknEhiBKT1ZBTgorSUdOSkFUSUpFVknEhiBMSklMSkFOQQorSUdOSkFUSUpFVknEhiBMSklMSkFOQQorSUdOSkFUSUpFVknEhiBMSlVCT01JUgorSUdOSkFUSUpFVknEhiBNQVJBCitJR05KQVRJSkVWScSGIE1JTEFOCitJR05KQVRJSkVWScSGIE1JTEVOQQorSUdOSkFUSUpFVknEhiBNSVJPU0xBVgorSUdOSkFUSUpFVknEhiBNSVRBCitJR05KQVRJSkVWScSGIE5PVkFLCitJR05KQVRJSkVWScSGIFJBREHFoElOCitJR05KQVRJSkVWScSGIFJBRE9WQU4KK0lHTkpBVElKRVZJxIYgU1ZFVElTTEFWCitJR05KQVRJSkVWScSGIFNWRVRPWkFSCitJR05KQVRJSkVWScSGIFRPTUlTTEFWCitJR05KQVRJSkVWScSGIFRPTUlTTEFWCitJR05KQVRJSkVWScSGIFZPSklTTEFWCitJR05KQVRJSkVWScSGIFpPUkFOCitJR05KQVRPVi1SQURPVkFOT1ZJxIYgTUlMRU5BIFBST0YKK0lHTkpBVE9WScSGIMW9SVZLTworSUdOSkFUT1ZJxIYgxb1JVk9SQUQKK0lHTkpBVE9WScSGIEFOR0VMQQorSUdOSkFUT1ZJxIYgQU5LQQorSUdOSkFUT1ZJxIYgREFOSUxPCitJR05KQVRPVknEhiBHT1JEQU5BCitJR05KQVRPVknEhiBLT1NBUkEKK0lHTkpBVE9WScSGIExKVUJJxaBBCitJR05KQVRPVknEhiBNQVJJQ0EKK0lHTkpBVE9WScSGIE1JTEFOCitJR05KQVRPVknEhiBNSUxFCitJR05KQVRPVknEhiBNSUxLQQorSUdOSkFUT1ZJxIYgTUlMT8WgIERSIFBSQVZOSUsKK0lHTkpBVE9WScSGIE1JTE/FoAorSUdOSkFUT1ZJxIYgTUlMT1JBRAorSUdOSkFUT1ZJxIYgTUlMVVRJTgorSUdOSkFUT1ZJxIYgTUlSSkFOQQorSUdOSkFUT1ZJxIYgU0FWQQorSUdOSkFUT1ZJxIYgU0xPQk9EQU4KK0lHTkpBVE9WScSGIFZFUkEKK0lHTkpBVE9WScSGIFZFUkEKK0lHTkpBVE9WScSGIFZJREFLCitJR05KQVRPVknEhiBWTEFESU1JUgorSUdOSkFUT1ZJxIYgVk9KSVNMQVYKK0lHTkpBVE9WScSGIFZVxIxLTworSUdOSkFUT1ZTS0kgRUZSRU0KK0lHTkpJxIYgQlJBTktPCitJR05KScSGIEpPVkFOCitJR05KScSGIFNUT0pBTgorSUdOSknEhiBaSVpBCitJR05KScSGIFpPUkFOCitJR05KT1ZJxIYgTUFSSUpBCitJR1JBxIxLSSDEkE9SxJBFCitJR1JBxIxLSSBFVEVMQQorSUdSQcSMS0kgSlVMSU4KK0lHUkHEjEtJIEtBUkxPCitJR1JBxIxLSSBMQVNMTworSUdSScSGIE5BREEKK0lHUknEhiBTVE9KQU5LQQorSUdSVVRJTk9WScSGIFNMT0JPREFOCitJSEFTIElMT05BCitJSkHEjEnEhiBCUkFOS08KK0lKQcSMScSGIE1BS1NJTQorSUpFVkxKRVYgRkVPRE9SCitJS0FOT1ZJxIYgRFXFoEFOCitJS0FOT1ZJxIYgSVZBTgorSUtBTk9WScSGIEpFTEVOQQorSUtBTk9WScSGIE5JS09MQQorSUtFTEpJxIYgSVJGQU4KK0lLScSGIERFSkFOCitJS0nEhiBKT1ZBTgorSUtJxIYgTUxBREVOCitJS0nEhiBNTEFERU4KK0lLScSGIFNNSUxKQU5BCitJS09ESU5PVknEhiBEVcWgQU4KK0lLT05JxIYgxJBVUkEKK0lLT05PViBERUpBTgorSUtPVElOIEpBTk/FoAorSUtPVElOIEpPVkFOS0EKK0lLT1RJTiBNQVRJSkEKK0lLT1RJTiBQQUwKK0lLT1RJTiBQRVRBUgorSUtPVkFDIEJPxaBLTworSUtPVkFDIFNURVZBTgorSUtPVknEhiBEUkFHVVRJTgorSUtPVknEhiBNSUxPxaAKK0lLT1ZJxIYgTUlMT1NBVgorSUtPVknEhiBWRUxJTktBCitJS1JBxaBFViBKRUxJQ0EKK0lLUkHFoEVWIEpPVkFOCitJTCBBTEVLU0FOREFSCitJTCBKRUxJQ0EKK0lMxIxJSyBNQVJJSkEKK0lMRcWgIEZSQU5DScWgS0EKK0lMRcWgIElNUkUKK0lMRcWgIElSRU5BCitJTEXFoCBNSUhBSUxPCitJTEXFoCBNSUxBTgorSUxFxaAgTUlST1NMQVYKK0lMScSMScSGIEFOVFVOCitJTEnEjEnEhiBJVkFOCitJTEnEjEnEhiBMSlVCSUNBCitJTEnEjEnEhiBNSUhBSkxPCitJTEnEjEnEhiBQRVRBUgorSUxJxIxJxIYtUE9QScSGIE9MSkEKK0lMScSGIMSMRURPTUlSCitJTEnEhiDEjEVETworSUxJxIYgxaBJTVVOCitJTEnEhiDFvUVMSktPCitJTEnEhiDFvUlWS08KK0lMScSGIMW9SVZLTworSUxJxIYgxb1JVktPCitJTEnEhiDFvUlWT01JUgorSUxJxIYgxb1JVk9NSVIKK0lMScSGIMW9SVZPTUlSCitJTEnEhiDFvUlWT1JBRAorSUxJxIYgxb1JVk9SQUQKK0lMScSGIMSQT1LEkEUKK0lMScSGIMSQT1LEkEUKK0lMScSGIMSQT1LEkEUKK0lMScSGIEFMRUtTQSBEUgorSUxJxIYgQUxFS1NBTkRBUgorSUxJxIYgQUxFS1NBTkRBUgorSUxJxIYgQUxFS1NBTkRBUgorSUxJxIYgQUxFS1NBTkRBUgorSUxJxIYgQU5JQ0EKK0lMScSGIEFOS0lDQQorSUxJxIYgQVJTQQorSUxJxIYgQVJTQQorSUxJxIYgQklMSkFOQQorSUxJxIYgQkxBR09KRQorSUxJxIYgQk/FoEtPCitJTEnEhiBCT8WgS08KK0lMScSGIEJPxb1JREFSCitJTEnEhiBCT0JBTgorSUxJxIYgQk9HREFOCitJTEnEhiBCT0dPTEpVQgorSUxJxIYgQk9SSVNMQVZLQQorSUxJxIYgQk9SSVNMQVYKK0lMScSGIEJPUklTTEFWCitJTEnEhiBCT1JJVk9KRQorSUxJxIYgQk9SS0EKK0lMScSGIEJPU0lMSktBCitJTEnEhiBCUkFOSVNMQVYKK0lMScSGIEJSQU5JU0xBVgorSUxJxIYgQlJBTklTTEFWCitJTEnEhiBCUkFOS08KK0lMScSGIEJSQU5LTworSUxJxIYgQlJBTktPCitJTEnEhiBCUkFUSVNMQVYKK0lMScSGIEJSQVRJU0xBVgorSUxJxIYgQ0VDSUxJSkEKK0lMScSGIENWRVRBCitJTEnEhiBDVklKQU4KK0lMScSGIERBTkUKK0lMScSGIERBUklOS0EKK0lMScSGIERFSkFOCitJTEnEhiBET0JSSVZPSkUKK0lMScSGIERPQlJPU0FWCitJTEnEhiBEUkFHQU4KK0lMScSGIERSQUdBTgorSUxJxIYgRFJBR0FOCitJTEnEhiBEUkFHSUNBCitJTEnEhiBEUkFHT0xKVUIKK0lMScSGIERSQUdPCitJTEnEhiBEUkFHVVRJTgorSUxJxIYgRFXFoEFOS0EKK0lMScSGIERVxaBBTgorSUxJxIYgRFXFoEFOCitJTEnEhiBEVcWgQU4KK0lMScSGIERVxaBBTgorSUxJxIYgRFXFoEFOCitJTEnEhiBEVcWgSUNBCitJTEnEhiBEVcWgSUNBCitJTEnEhiBFRElUCitJTEnEhiBFUsW9SUtBCitJTEnEhiBHT1JBTgorSUxJxIYgR09SQU4KK0lMScSGLUdSRUdPUiBNSVJBCitJTEnEhiBJTElKQQorSUxJxIYgSUxJSkEKK0lMScSGIElMSUpBCitJTEnEhiBJUkVOQQorSUxJxIYgSVZBTiBEUgorSUxJxIYgSVZBTgorSUxJxIYgSVZBTgorSUxJxIYgSkVMRU5BCitJTEnEhiBKRUxFTkEKK0lMScSGIEpFTEVOS08KK0lMScSGIEpFTElTQVZFVEEKK0lMScSGIEpFTEtBCitJTEnEhiBKT1NJRgorSUxJxIYgSk9WQU5LQQorSUxJxIYgSk9WQU4KK0lMScSGIEpPVkFOCitJTEnEhiBKT1ZBTgorSUxJxIYgSk9WQU4KK0lMScSGIEpPVkFOCitJTEnEhiBKT1ZJQ0EKK0lMScSGIEtPVklMSktBCitJTEnEhiBLUlNUQU4KK0lMScSGIExBWkFSCitJTEnEhiBMQVpBUgorSUxJxIYgTEFaQVIKK0lMScSGIExKVUJJxaBBCitJTEnEhiBMSlVCScWgQQorSUxJxIYgTEpVQklDQQorSUxJxIYgTEpVQklDQQorSUxJxIYgTEpVQklDQQorSUxJxIYgTEpVQklOS08KK0lMScSGIExKVUJPCitJTEnEhiBNQVJBCitJTEnEhiBNQVJBCitJTEnEhiBNQVJJSkEKK0lMScSGIE1BUklKQQorSUxJxIYgTUFSSUpBCitJTEnEhiBNQVJJSkEKK0lMScSGIE1BUklOS08KK0lMScSGIE1BUktPCitJTEnEhiBNSUhBSkxPCitJTEnEhiBNSUhBSkxPCitJTEnEhiBNSUxBRElOCitJTEnEhiBNSUxBTgorSUxJxIYgTUlMQU4KK0lMScSGIE1JTEFOCitJTEnEhiBNSUxBTgorSUxJxIYgTUlMQU4KK0lMScSGIE1JTEFOCitJTEnEhiBNSUxBTgorSUxJxIYgTUlMQU4KK0lMScSGIE1JTEFOCitJTEnEhiBNSUxBCitJTEnEhiBNSUxFTkEKK0lMScSGIE1JTEVOQQorSUxJxIYgTUlMRU4KK0lMScSGIE1JTEVWQQorSUxJxIYgTUlMRQorSUxJxIYgTUlMScSGCitJTEnEhiBNSUxJQ0EKK0lMScSGIE1JTElDQQorSUxJxIYgTUlMSUNBCitJTEnEhiBNSUxJU0FWCitJTEnEhiBNSUxJVk9KRQorSUxJxIYgTUlMSVZPSgorSUxJxIYgTUlMSVZPSgorSUxJxIYgTUlMSVZPSgorSUxJxIYgTUlMT8WgCitJTEnEhiBNSUxPxaAKK0lMScSGIE1JTE/FoAorSUxJxIYgTUlMT8WgCitJTEnEhiBNSUxPUkFECitJTEnEhi1NSUxVxaBJxIYgT0xHQQorSUxJxIYgTUlMVcWgS0EKK0lMScSGIE1JTFVUSU4KK0lMScSGIE1JT0RSQUcgRFIKK0lMScSGIE1JT0RSQUcKK0lMScSGIE1JT0RSQUcKK0lMScSGIE1JT0RSQUcKK0lMScSGIE1JUkpBTkEKK0lMScSGIE1JUktPCitJTEnEhiBNSVJPU0xBVkEKK0lMScSGIE1JUk9TTEFWCitJTEnEhiBNSVJPU0xBVgorSUxJxIYgTUlUQVIKK0lMScSGIE1PTcSMSUxPCitJTEnEhiBNT03EjElMTworSUxJxIYgTU9NxIxJTE8KK0lMScSGIE1PTcSMSUxPCitJTEnEhiBOQURBCitJTEnEhiBORcSQTworSUxJxIYgTkVCT0rFoEEKK0lMScSGIE5FQk9KxaBBCitJTEnEhiBORU5BRAorSUxJxIYgTkVWRU5LQQorSUxJxIYgTklLT0xBCitJTEnEhiBOSUtPTEEKK0lMScSGIE9CUkFECitJTEnEhiBPQlJFTgorSUxJxIYgT0xHQQorSUxJxIYgT0xHQQorSUxJxIYgT0xJVkVSQQorSUxJxIYgT1NUT0pBCitJTEnEhiBQQVZMRSBESVBMIElORworSUxJxIYgUEFWTEUKK0lMScSGIFBFUk8KK0lMScSGIFBFVEFSCitJTEnEhiBQRVRBUgorSUxJxIYgUEVUQVIKK0lMScSGIFBFVEFSCitJTEnEhiBQRVRBUgorSUxJxIYtUEVUUk9WScSGIFNQT01FTktBCitJTEnEhiBQUkVWSVNMQVYKK0lMScSGIFJBREUKK0lMScSGIFJBRElWT0oKK0lMScSGIFJBRE9KS0EKK0lMScSGIFJBRE9NSVIKK0lMScSGIFJBRE9TTEFWCitJTEnEhiBSQURPU0xBVgorSUxJxIYgUkFET1NMQVYKK0lMScSGIFJBRE9WQU4KK0lMScSGIFJBRE9WQU4KK0lMScSGIFJBRE8KK0lMScSGIFJBTktPCitJTEnEhiBSQVRLTworSUxJxIYgUkFUS08KK0lMScSGIFJVxb1BCitJTEnEhiBSVcW9SUNBCitJTEnEhiBTQVZBIERSCitJTEnEhiBTQVZBCitJTEnEhi1TQVZJxIYgVk9KSVNMQVZBCitJTEnEhiBTSU1PCitJTEnEhiBTSU5JxaBBCitJTEnEhiBTTEFWSUNBCitJTEnEhiBTTEFWS08KK0lMScSGIFNMQVZLTworSUxJxIYgU0xBVk9MSlVCCitJTEnEhiBTTE9CT0RBTgorSUxJxIYgU0xPQk9EQU4KK0lMScSGIFNMT0JPREFOCitJTEnEhiBTTE9CT0RBTgorSUxJxIYgU1LEkEFOCitJTEnEhiBTUsSQQU4KK0lMScSGIFNSxJBBTgorSUxJxIYgU1JFVEVOCitJTEnEhiBTVEFOQQorSUxJxIYgU1RBTknFoEEKK0lMScSGIFNUQU5JTUlSCitJTEnEhiBTVEFOSU1JUgorSUxJxIYgU1RBTktBCitJTEnEhiBTVEVWTworSUxJxIYgU1RPSkFOxIxFCitJTEnEhiBTVE9KQU4KK0lMScSGIFNUT0pBTgorSUxJxIYgU1ZFVElTTEFWIERSIExFS0FSCitJTEnEhiBTVkVUTEFOQQorSUxJxIYgU1ZFVE9aQVIKK0lMScSGIFRBVEpBTkEKK0lMScSGIFRPREUKK0lMScSGIFRPREUKK0lMScSGIFRPTUlTTEFWCitJTEnEhiBWQVNBCitJTEnEhiBWRVJBCitJTEnEhiBWSURPU0FWCitJTEnEhiBWSU5LQQorSUxJxIYgVklOS08KK0lMScSGIFZMQURBTgorSUxJxIYgVkxBREFOCitJTEnEhiBWTEFESU1JUiBEUgorSUxJxIYgVkxBRElNSVIKK0lMScSGIFZMQURJTUlSCitJTEnEhiBWTEFESU1JUgorSUxJxIYgVkxBRElNSVIKK0lMScSGIFZMQURJTUlSCitJTEnEhiBWTEFUS0EKK0lMScSGIFZPSklTTEFWCitJTEnEhiBWT0pJU0xBVgorSUxJxIYgVk9KSVNMQVYKK0lMScSGIFZPSklTTEFWCitJTEnEhiBaRFJBVktPCitJTEnEhiBaTEFUS08KK0lMScSGIFpMQVRLTworSUxJxIYgWk9SQU4KK0lMScSGIFpPUklDQQorSUxJQkHFoEnEhiBEQVJJTktBCitJTElCQcWgScSGIE5JS09MQQorSUxJQkHFoEnEhiBPU1RPSkEKK0lMSUJBxaBJxIYgU1RFVkFOCitJTElCQcWgScSGIFNURVZPCitJTElCQcWgScSGIFpMQVRBCitJTElFVlNLSSBBTEVLU0FOREFSCitJTElKxIYgU01JTEpBCitJTElKxIYgU1ZFVE9MSUsKK0lMSUpBxaBFViBTT0ZJSkEKK0lMSUpBxaBFVknEhiBBTEVLU0FOREFSCitJTElKQcWgRVZJxIYgREFSQQorSUxJSkHFoEVWScSGIExKVUJJxaBBCitJTElKQcWgRVZJxIYgU1ZFVElTTEFWCitJTElKQVpJIEFCRElTQU1JCitJTElKQVpJIERBVVQKK0lMSUpBWkkgSEFGSVpBCitJTElKQVpJIEpBTMSMSU4KK0lMSUpBWkkgWkFKTkVMCitJTElKQVpPVknEhiBWRUTFvVJJSkEKK0lMSUpFViBJVkFOCitJTElKRVYgSVZBTgorSUxJSkVWIExKVUJFTgorSUxJSkVWScSGIERVxaBBTiBESVBMIElORworSUxJSkVWScSGIE5JS09MQQorSUxJSkVWScSGIFJBREUKK0lMSUpFVlNLSSDEhklSTworSUxJSkVWU0tJIMSQT1LEkEUKK0lMSUpFVlNLSSBEQU5JTE8KK0lMSUpJTiDFvUFSS08KK0lMSUpJTiDFvUlWQU4KK0lMSUpJTiBEVcWgQU4KK0lMSUpJTiBKRUxFTkEKK0lMSUpJTiBKT1ZBTgorSUxJSklOIEpPVkFOCitJTElKSU4gTUlMQU4KK0lMSUpJTiBNSUxJVk9KCitJTElKSU4gTUlMSVZPSgorSUxJSklOIE1JTE/FoAorSUxJSklOIE1JUkpBTkEKK0lMSUpJTiBTVEVWQU4KK0lMSUpJTiBTVkVUT1pBUgorSUxJSklOIFRBTkFTSUpFCitJTElKSU4gVVJPxaAKK0lMSUpJTiBaT1JLQQorSUxJTiDFvUFSS08KK0lMSU4gQUxFS1NBTkRBUgorSUxJTiBBTktJQ0EKK0lMSU4gQk9SSVNMQVYKK0lMSU4gQk9SS0EKK0lMSU4gRFJBR0lOSkEKK0lMSU4gRFJBR0lOSkEKK0lMSU4gRFXFoEFOCitJTElOIERVxaBBTgorSUxJTiBJVkFOCitJTElOIExKVUJJTktPCitJTElOIExKVUJPTUlSCitJTElOIE1JTEFOCitJTElOIE1JTEVOS08KK0lMSU4gTUxBREVOCitJTElOIE5FREVMSktPCitJTElOIE5JS09MQQorSUxJTiBSQURFCitJTElOIFNORcW9QU5BCitJTElOIFNPRklKQQorSUxJTiBUSU1BCitJTElOIFpPUkEKK0lMSU7EjEnEhiBNT01JUgorSUxJTsSMScSGIE5FQk9KxaBBCitJTEpBWkkgRMW9QU1JTEoKK0lMS0nEhiBKRUxBCitJTEtJxIYgTUFSSUNBCitJTEtJxIYgTUlMQU4KK0lMS0nEhiBNSVJBCitJTEtJxIYgTkFEQQorSUxLScSGIE5FQk9KxaBBCitJTEtJxIYgTkVOQUQKK0lMS0nEhiBSQURNSUxBCitJTEtJxIYgU1RFVklDQQorSUxLScSGIFpMQVRPSkEKK0lMS0lOIFJBRElWT0oKK0lMT1ZBxIxBIE1BUktPCitJTE9WU0tJIEFMRUtTQU5EQVIKK0lMT1ZTS0kgWkxBVEEKK0lNxaBJUk9WScSGIEtPTE9NQU4KK0lNxaBJUk9WScSGIE1JUk9TTEFWCitJTcWgSVJPVknEhiBTTUFKSUwKK0lNQU1PVknEhiBKQVNNSU5BCitJTUJSQSDFvUlWT0pJTgorSU1CUknFoEnEhiBCRUhJSkEKK0lNQlJJxaBJxIYgSVZBTgorSU1CUk9OSkVWIFJBSktPCitJTUJST05KRVYgUkFKS08KK0lNQlJPTkpFViBSQUpLTworSU1CUk9OSkVWIFNQQVNPSkEKK0lNQlJPTk9WScSGIMSQT1LEkEUKK0lNQlJPTk9WScSGIERVxaBBTgorSU1CUk9OT1ZJxIYgSlVMS0EKK0lNUkXFoEkgSVZBTgorSU7EkEnEhiBEUkFHSUNBCitJTsSQScSGIERVxaBBTgorSU7EkEnEhiBKRUxFTkEKK0lOxJBJxIYgSkVMSUNBCitJTsSQScSGIFRFUkVaCitJTsSQScSGIFZPSklOCitJTsSQSU4gxb1JVktPCitJTsSQSU4gxJBVUkEKK0lOxJBJTiBEVcWgQU4KK0lOxJBJTiBWTEFESU1JUgorSU5JxIYgQlJBTktPCitJTknEhiBEUkFHQU4KK0lOScSGIERVxaBBTgorSU5JxIYgSkVMRU5BCitJTknEhiBLUlNUQQorSU5JxIYgTEpVQklDQQorSU5JxIYgTUlMQU4gRFIKK0lOScSGIFRJTkRBCitJTknEhiBWQVNPCitJTkpBQyBCT0dEQU4KK0lOSkFDIERSQUdJQ0EKK0lOSkFDIEpPVkFOCitJTkpBQyBMSlVCSUNBCitJTkpBQyBNSVJLTworSU5KQUMgTklLT0xBCitJTkpBQyBSQURBCitJTkpBQyBSQURFCitJTkpBQyBSQURPTUlSCitJTkpBQyBTTE9CT0RBTgorSU5KQUMgVkxBRElNSVIKK0lOT1ZBTiBET0JSSVZPSkUKK0lQQcSMIEtBVEFMSU5BCitJUEHEjCBLQVRJQ0EKK0lQScSGIFpPUkEKK0lSxaBBSSBJVkFOCitJUsWgQUpJIEpPVkFOCitJUsWgQUpJIFNURVZBCitJUknEhiBCT8W9TworSVJJxIYgR0HFoFBBUgorSVJNRcWgIE1BUklBCitJUk1FTkpJIEpPxb1FRgorSVJNRU5KSSBKT1NJUAorSVJNRU5KSSBNQVJHSVQKK0lTQUlMT1ZJxIYgTEpVQknFoEEKK0lTQUlMT1ZJxIYgTUlMQU5LQQorSVNBSUxPVknEhiBNSVJLTworSVNBSUxPVknEhiBWRUxJU0FWCitJU0FKRVYgTUFSSUpBCitJU0FKRVZJxIYgTEFaQVIKK0lTQUpFVknEhiBNSUxPxaAKK0lTQUpFVknEhiBaRFJBVktPCitJU0FKTE9WIEpPTkVMCitJU0FKTE9WIEpPTkVMCitJU0FKTE9WIEpPTkVMCitJU0FKTE9WScSGIEFMRUtTQU5EQVIKK0lTQUpMT1ZJxIYgQUxFS1NBTkRBUgorSVNBSkxPVknEhiBCUkFOS08KK0lTQUpMT1ZJxIYgRFXFoEFOCitJU0FKTE9WScSGIEZFRE9SCitJU0FLIElMSUpBCitJU0FLIFNUQU5LTworSVNBS09WIMW9QVJLTworSVNBS09WIMW9SVZPSklOCitJU0FLT1YgQUNLTworSVNBS09WIEJPUklTTEFWCitJU0FLT1YgQ1ZFVEtPCitJU0FLT1YgRElNSVRSSUpFCitJU0FLT1YgRFJBR0FOQQorSVNBS09WIERSQUdPTEpVQgorSVNBS09WIERVxaBJQ0EKK0lTQUtPViBFU1RFUgorSVNBS09WIElWQU4KK0lTQUtPViBKRUxJQ0EKK0lTQUtPViBKT1ZBTktBCitJU0FLT1YgS0FUSUNBCitJU0FLT1YgTEVQT1NBVkEKK0lTQUtPViBMSlVCSUNBCitJU0FLT1YgTEpVQklDQQorSVNBS09WIE1JTEFOCitJU0FLT1YgTUlMQU4KK0lTQUtPViBNSUxFTktPCitJU0FLT1YgTUlMSVZPSgorSVNBS09WIE1JTE9SQUQKK0lTQUtPViBNSUxVVElOCitJU0FLT1YgTUlPRFJBRworSVNBS09WIE1JUk9TTEFWCitJU0FLT1YgTkVOQUQKK0lTQUtPViBQRVRBUgorSVNBS09WIFJBREUKK0lTQUtPViBSQURJQ0EKK0lTQUtPViBSQURJTktBCitJU0FLT1YgUkFESVZPSgorSVNBS09WIFJBRE1JTEEKK0lTQUtPViBSQURPTUlSCitJU0FLT1YgUkFET1ZBTgorSVNBS09WIFJVxb1JQ0EKK0lTQUtPViBTQVZBCitJU0FLT1YgU0xBVktPCitJU0FLT1YgU01JTEpLQQorSVNBS09WIFNSRURPSkUKK0lTQUtPViBTVEVWQU4KK0lTQUtPViBTVEVWQU4KK0lTQUtPViBUT0RPUgorSVNBS09WIFRPTUlTTEFWCitJU0FLT1YgVk9KSVNMQVYKK0lTQUtPViBaT1JJQ0EKK0lTQUtPVknEhiDEkFVSQSBESVBMIElORworSVNBS09WScSGIEFOQQorSVNBS09WScSGIE1BUktPCitJU0FLT1ZJxIYgU1RFVkFOCitJU0FLT1ZJxIYgWk9SQU4KK0lTQUtPVlNLSSBKQUtPVgorSVNBS09WU0tJIFNMT0JPREFOIERSCitJU0FOT1ZJxIYgQU5BCitJU0lKQU5PViBTTE9CT0RBTktBCitJU0lKQU5PViBWTEFESU1JUgorSVNLQUxPViBNQVJJSkFOQQorSVNLScSGIE1JTEFESU4KK0lTS1JJTiBCUkFOS08KK0lTS1JJTiBKRUxFTkEKK0lTTEFNQkHFoEnEhiBMSklMSkFOQQorSVNMQU1JIEFCSUIKK0lTTEFNT1ZJxIYgTUFITVVECitJU0xBTU9WScSGIE5BREEKK0lTTUFJTEkgxaBBxIZJUgorSVRBTE8gRVZJQ0EKK0lUQUxPIE1BUktPCitJVEVCRUpBQyBaT1JBCitJVkHEjEtPVknEhiBCUkFOSVNMQVYKK0lWQcSMS09WScSGIE1BTk9KTE8KK0lWQcSMS09WScSGIE5BREEKK0lWQcWgxIxFTktPIEFMRUtTQU5EQVIKK0lWQcWgxIxFTktPIEFMRUtTQU5EQVIKK0lWQcWgxIxFTktPIEtBVElDQQorSVZBxaBLVS1NSUxPVkFOT1ZJxIYgRkVMScSMSUEKK0lWQUsgSkFOCitJVkFOIMWgQU5ET1IKK0lWQU4gxJBVUkEKK0lWQU4gQVRJTEEKK0lWQU4gQ0VDSUxJSkEKK0lWQU4gR0FCT1IKK0lWQU4gSk/FvUVGCitJVkFOIEpPVkFOCitJVkFOIEtBVEFMSU4KK0lWQU4gTUlIQUpMTworSVZBTiBTSUxWRVNURVIKK0lWQU4gVkVST05BCitJVkFOxIxFViBJUklOQQorSVZBTsSMRVYgVkxBRElNSVIKK0lWQU7EjEVWScSGIMW9QVJLTyBEUgorSVZBTsSMRVZJxIYgQk/FoEtPCitJVkFOxIxFVknEhiBCUkFOS0EKK0lWQU7EjEVWScSGIERBUktPCitJVkFOxIxFVknEhiBESU1JVFJJSkUKK0lWQU7EjEVWScSGIERSQUdPU0xBVkEKK0lWQU7EjEVWScSGIERVxaBBTgorSVZBTsSMRVZJxIYgR0FWUkEKK0lWQU7EjEVWScSGIEpPVkFOCitJVkFOxIxFVknEhiBKT1ZBTgorSVZBTsSMRVZJxIYgTUFSSUNBCitJVkFOxIxFVknEhiBNSUxBTgorSVZBTsSMRVZJxIYgTUlMQU4KK0lWQU7EjEVWScSGIE1JTEVOS08KK0lWQU7EjEVWScSGIE1JTElWT0pFIFBST0ZFU09SCitJVkFOxIxFVknEhiBPTElWRVJBCitJVkFOxIxFVknEhiBQRVRBUgorSVZBTsSMRVZJxIYgUEVUQVIKK0lWQU7EjEVWScSGIFJBRElWT0ogRElQTCBJTkcKK0lWQU7EjEVWScSGIFJBRE1JTEEKK0lWQU7EjEVWScSGIFNJTknFoEEKK0lWQU7EjEVWScSGIFNUQU5LTworSVZBTsSMRVZJxIYgU1ZFVE9aQVIKK0lWQU7EjEVWScSGIFZMQURBCitJVkFOxIxFVknEhiBWTEFESU1JUiBEUgorSVZBTsSMScSGIEFOVEUKK0lWQU7EjEnEhiBCUkFOS08KK0lWQU7EjEnEhiBEUkFHQU4KK0lWQU7EjEnEhiBKT1NJUAorSVZBTsSMScSGIEpVTElKQU5BCitJVkFOxIxJxIYgTUFSSUpBCitJVkFOxIxJxIYgTUlMQU4KK0lWQU7EjEnEhiBPTEdBCitJVkFOxIxJxIYgU1RBTklNSVIKK0lWQU7EjEnEhiBTVEFOSVNMQVYKK0lWQU7EjEnEhiBTVEVWQU4KK0lWQU7EjEnEhiBTVEVWQU4KK0lWQU7EjEnEhiBWTEFESU1JUgorSVZBTsSMSU4gTklLT0xBCitJVkFOxIxJTiBPTEpFRworSVZBTsSMVUsgUEFWQU8KK0lWQU5EScSGIElWSUNBCitJVkFOREnEhiBSQURNSUxBCitJVkFORcW9QSBBTkRSSUpBCitJVkFORUsgxJBVUkEKK0lWQU5FSyBEVcWgS08KK0lWQU5FSyBWSUtUT1JJSkEKK0lWQU5JIEhJTEpBCitJVkFOScWgIEtPVklMSktBCitJVkFOScWgIFNMQVZLTworSVZBTknFoCBTTEFWS08KK0lWQU5JxaBFVknEhiDEkFVSTworSVZBTknFoEVWScSGIERVxaBBTgorSVZBTknFoEVWScSGIEVWSUNBCitJVkFOScWgRVZJxIYgSUxJSkEKK0lWQU5JxaBFVknEhiBKRUxJQ0EKK0lWQU5JxaBFVknEhiBNSUhBSUxPCitJVkFOScWgRVZJxIYgTUlMQU4KK0lWQU5JxaBFVknEhiBNSVJPU0xBVgorSVZBTknFoEVWScSGIE1JUk9TTEFWCitJVkFOScWgRVZJxIYgTUlUQVIKK0lWQU5JxaBFVknEhiBOQURBCitJVkFOScWgRVZJxIYgTkFEQQorSVZBTknFoEVWScSGIE5FxJBBCitJVkFOScWgRVZJxIYgTkVNQU5KQQorSVZBTknFoEVWScSGIE9MR0EKK0lWQU5JxaBFVknEhiBQRVRBUgorSVZBTknFoEVWScSGIFJBSktPCitJVkFOScWgRVZJxIYgU1ZFVE9aQVIKK0lWQU5JxaBFVknEhiBUSU5BCitJVkFOScWgRVZJxIYgVlVLSUNBCitJVkFOScSGIMSMRURPTUlSCitJVkFOScSGIMSQT1LEkEUKK0lWQU5JxIYgQUxCRVJUCitJVkFOScSGIEFOQQorSVZBTknEhiBCUkFOS08KK0lWQU5JxIYgRFJBR0FOQQorSVZBTknEhiBEUkFHQU4KK0lWQU5JxIYgRFJBR0lDQQorSVZBTknEhiBEVcWgQU4KK0lWQU5JxIYgRFXFoEFOCitJVkFOScSGIEdST1pEQU5BCitJVkFOScSGIElWQU5BCitJVkFOScSGIElWQU4KK0lWQU5JxIYgSVZBTgorSVZBTknEhiBJVkFOCitJVkFOScSGIEpPVk8KK0lWQU5JxIYgTUFSSU5BCitJVkFOScSGIE1JTEFOCitJVkFOScSGIE1JTEFOCitJVkFOScSGIE1JTEFOCitJVkFOScSGIE5FVkVOS0EKK0lWQU5JxIYgUEVSU0lEQQorSVZBTknEhiBQRVRBUgorSVZBTknEhiBTTkXFvUFOQQorSVZBTknEhiBTVEVWQU4KK0lWQU5JxIYgWkxBVE9KRQorSVZBTkpJIFNJTknFoEEKK0lWQU5KSSBWRVJPTklLQQorSVZBTktPVknEhiDEjEVET01JUgorSVZBTktPVknEhiDEkE9SxJBFCitJVkFOS09WScSGIEJPxb1BTkEKK0lWQU5LT1ZJxIYgQk/FvU8KK0lWQU5LT1ZJxIYgSkFOS08KK0lWQU5LT1ZJxIYgTUFSSU5LTworSVZBTktPVknEhiBNSUxFTktPCitJVkFOS09WScSGIE1JTEUKK0lWQU5LT1ZJxIYgTUlMS0EKK0lWQU5LT1ZJxIYgTUlMS0EKK0lWQU5LT1ZJxIYgTkVOQUQKK0lWQU5LT1ZJxIYgTk9WTworSVZBTktPVknEhiBSQURFCitJVkFOS09WScSGIFJBREUKK0lWQU5LT1ZJxIYgU0FWTworSVZBTktPVknEhiBTTEFWS08KK0lWQU5LT1ZJxIYgVElIT01JUgorSVZBTktPVknEhiBaRFJBVktPCitJVkFOT1Ygxb1JVkFOCitJVkFOT1YgxJBPS0EKK0lWQU5PViDEkE9SxJBFCitJVkFOT1YgxJBVUsSQRVZLQQorSVZBTk9WIMSQVVLEkElOS0EKK0lWQU5PViBCT1JJUworSVZBTk9WIERJTUlUQVIKK0lWQU5PViBEUkFHSUNBCitJVkFOT1YgRFJBR09TTEFWQQorSVZBTk9WIEVNSUxJSkEKK0lWQU5PViBFVklDQQorSVZBTk9WIEdBVlJBCitJVkFOT1YgSlVMS0EKK0lWQU5PViBLQVRJQ0EKK0lWQU5PViBMSlVCT01JUgorSVZBTk9WIE1BUklDQQorSVZBTk9WIE1BUklKQQorSVZBTk9WIE1JxaBBCitJVkFOT1YgTUlMRU5LTworSVZBTk9WIE1JTEUKK0lWQU5PViBNSUxPUkFECitJVkFOT1YgTUlUQQorSVZBTk9WIE5JS09MQQorSVZBTk9WIE9MSVZFUkEKK0lWQU5PViBQRVRBUgorSVZBTk9WIFNFUkdJSkUKK0lWQU5PViBTTEFWS08KK0lWQU5PViBWRVJBCitJVkFOT1YgWkRSQVZLTworSVZBTk9WIFpPUkEKK0lWQU5PViBaT1JJQ0EKK0lWQU5PVknEhiDEjEVET01JUgorSVZBTk9WScSGIMW9SUtBCitJVkFOT1ZJxIYgxb1JVk9SQUQKK0lWQU5PVknEhiDEkE9SxJBFCitJVkFOT1ZJxIYgQUxFS1NBCitJVkFOT1ZJxIYgQU5HRUxJTkEKK0lWQU5PVknEhiBCT8W9QQorSVZBTk9WScSGIEJPR0RBTgorSVZBTk9WScSGIEJSQU5JU0xBVkEKK0lWQU5PVknEhiBCUkFOSVNMQVYKK0lWQU5PVknEhiBCUkFOSVNMQVYKK0lWQU5PVknEhiBCUkFOSVNMQVYKK0lWQU5PVknEhiBCUkFOSVNMQVYKK0lWQU5PVknEhiBDVkVKQQorSVZBTk9WScSGIERFU0FOS0EKK0lWQU5PVknEhiBERVNBCitJVkFOT1ZJxIYgRElNSVRSSUpFCitJVkFOT1ZJxIYgRFJBR0FOCitJVkFOT1ZJxIYgRFJBR0FOCitJVkFOT1ZJxIYgRFJBR0FOCitJVkFOT1ZJxIYgRFJBR0FOCitJVkFOT1ZJxIYgRFJBR0FOCitJVkFOT1ZJxIYgRFJBR09MSlVCCitJVkFOT1ZJxIYgRFJBR09MSlVCCitJVkFOT1ZJxIYgRFXFoEFOS0EKK0lWQU5PVknEhiBEVcWgQU4KK0lWQU5PVknEhiBGUkFOSkEKK0lWQU5PVknEhiBJTElKQQorSVZBTk9WScSGIElMSUpBCitJVkFOT1ZJxIYgSVZBTiBEUgorSVZBTk9WScSGIEpBTk/FoAorSVZBTk9WScSGIEpFTEVOQQorSVZBTk9WScSGIEpPUkRBTgorSVZBTk9WScSGIEpPVkFOCitJVkFOT1ZJxIYgS09WSU5LQQorSVZBTk9WScSGIEtSU1RPTUlSCitJVkFOT1ZJxIYgS1NFTklKQQorSVZBTk9WScSGIExKVUJJQ0EKK0lWQU5PVknEhiBMSlVCSVNBVgorSVZBTk9WScSGIExKVUJPTUlSCitJVkFOT1ZJxIYgTEpVREVWSVQKK0lWQU5PVknEhiBNQVJJSkEKK0lWQU5PVknEhiBNQVJJTktPCitJVkFOT1ZJxIYgTUFSS08KK0lWQU5PVknEhiBNSUxBTiBTVURJSkEKK0lWQU5PVknEhiBNSUxFTktPCitJVkFOT1ZJxIYgTUlMRU5LTworSVZBTk9WScSGIE1JTEVUQQorSVZBTk9WScSGIE1JTEVWQQorSVZBTk9WScSGIE1JTElDQQorSVZBTk9WScSGIE1JTElKQQorSVZBTk9WScSGIE1JTEtBCitJVkFOT1ZJxIYgTUlMS08KK0lWQU5PVknEhiBNSUxPUkFECitJVkFOT1ZJxIYgTUlMVU4KK0lWQU5PVknEhiBNSUxVVElOCitJVkFOT1ZJxIYgTUlPRFJBRworSVZBTk9WScSGIE1JUkEKK0lWQU5PVknEhiBNSVJKQU5BCitJVkFOT1ZJxIYgTUlSS08KK0lWQU5PVknEhiBNSVJPU0xBVgorSVZBTk9WScSGIE1JUk9TTEFWCitJVkFOT1ZJxIYgTUxBREVOCitJVkFOT1ZJxIYgTkVCT0rFoEEKK0lWQU5PVknEhiBORUdPVkFOCitJVkFOT1ZJxIYgTklLT0xBCitJVkFOT1ZJxIYgT0JSQUQKK0lWQU5PVknEhiBQRVRBUgorSVZBTk9WScSGIFBFVFJBCitJVkFOT1ZJxIYgUkHFoEtPCitJVkFOT1ZJxIYgUkFETUlMQQorSVZBTk9WScSGIFJBRE9NSVIKK0lWQU5PVknEhiBSQURPU0xBVgorSVZBTk9WScSGIFJBRE9WQU4KK0lWQU5PVknEhiBTRUxJTUlSCitJVkFOT1ZJxIYgU0lNTworSVZBTk9WScSGIFNMT0JPREFOS0EKK0lWQU5PVknEhiBTTE9CT0RBTgorSVZBTk9WScSGIFNMT0JPREFOCitJVkFOT1ZJxIYgU0xPQk9EQU4KK0lWQU5PVknEhiBTTE9CT0RBTgorSVZBTk9WScSGIFNUQU1FTgorSVZBTk9WScSGIFNUQU5JU0xBVkEKK0lWQU5PVknEhiBTVEFOS0EKK0lWQU5PVknEhiBTVEVWQU4KK0lWQU5PVknEhiBTVEVWQU4KK0lWQU5PVknEhiBTVE9KQU4KK0lWQU5PVknEhiBWQVNJTElKRQorSVZBTk9WScSGIFZFTElCT1IKK0lWQU5PVknEhiBWSVRPTUlSCitJVkFOT1ZJxIYgVkxBREEKK0lWQU5PVknEhiBWTEFEQQorSVZBTk9WScSGIFZPSklTTEFWCitJVkFOT1ZJxIYgVk9KSVNMQVYKK0lWQU5PVknEhiBWVUtPU0FWQQorSVZBTk9WScSGIFpPUkFOIERJUEwgSU5HCitJVkFOT1ZJxIYgWk9SQQorSVZBTk9WU0tJIMSQT1LEkEUKK0lWQU5PVlNLSSBCTEFHT0pFCitJVkFOT1ZTS0kgSUxJSkEKK0lWQU5PVlNLSSBTVEFOQQorSVZBVE9WScSGIEJSQU5LTworSVZFR0XFoCBBTkEKK0lWRUdFxaAgScWgVFZBTiBESVBMIElORworSVZFR0XFoCBMQVNMTworSVZFSyBWTEFESU1JUgorSVZFVEnEhiBCUkFOSVNMQVZBCitJVkVUScSGIEJSQU5JU0xBVkEKK0lWRVRJxIYgRElNSVRSSUpFCitJVkVUScSGIERSQUdBTgorSVZFVEnEhiBMQVpBCitJVkVUScSGIExKSUxKQU5BCitJVkVUScSGIE1JTE9KS08KK0lWRVRJxIYgUkFERSBEUgorSVZFVEnEhiBSQURFIERSCitJVkVUScSGIFJBRE9WQU4KK0lWRVRJxIYgVkFTQQorSVZFVEnEhiBWRVNOQQorSVZFWknEhiBBTEVLU0FOREFSCitJVkVaScSGIERSQUdPCitJVkVaScSGIEdPSktPCitJVkVaScSGIE1BUktPIERSCitJVkVaScSGIE1JTEUKK0lWRVpJxIYgWk9SQU4KK0lWRVpJxIYgWlZPTktPCitJVknEjEnEhiBNSVJBCitJVknEjEnEhiBOQURBCitJVknEjEnEhi1UT01JxIYgQklMSkFOQQorSVZJxIYgQkxBR09NSVIKK0lWScSGIERFU0FOS0EKK0lWScSGIEpVTElKQQorSVZJxIYgTUVMSVRBCitJVknEhiBNSVJLTyBNUiBQSAorSVZJxIYgUEVUQVIgRElQTCBPRUMKK0lWScSGIFJBREUKK0lWScSGIFNUT0pBTgorSVZJxIYgVkFTSUxJSkUKK0lWScSGIFZBU08KK0lWScSGIFZPSklNSVIKK0lWScSGIFpMQVRLTworSVZLT1YgxIxFRE9NSVIKK0lWS09WIMW9SVZLQQorSVZLT1YgxJBPUsSQRQorSVZLT1YgQk/FoEtPCitJVktPViBCT1JJVk9KCitJVktPViBEQU5JTE8KK0lWS09WIERPQlJJVk9KCitJVktPViBEVcWgQU4KK0lWS09WIElTQQorSVZLT1YgSVZBTgorSVZLT1YgSkVMRU5BCitJVktPViBKRUxFTkEKK0lWS09WIEtBVElDQQorSVZLT1YgS0FUSUNBCitJVktPViBLQVRJQ0EKK0lWS09WIE1JTEVOS08KK0lWS09WIE1JTElDQQorSVZLT1YgTUlMT1ZBTgorSVZLT1YgT0xHSUNBCitJVktPViBQRVRBUgorSVZLT1YgUkFET1NMQVYKK0lWS09WIFJBRE9WQU4KK0lWS09WIFNBVkEKK0lWS09WIFNFS1VMQQorSVZLT1YgU0xBVktPCitJVktPViBTTE9CT0RBTgorSVZLT1YgU0xPQk9EQU4KK0lWS09WIFNUQU5BCitJVktPViBTVEFOSVNMQVZBCitJVktPViBTVEVWQU4KK0lWS09WIFNURVZBTgorSVZLT1YgU1RFVkFOCitJVktPViBVUk/FoAorSVZLT1YgVk9KSVNMQVYKK0lWS09WScSGIMSQVVJPCitJVktPVknEhiBBTlRVTgorSVZLT1ZJxIYgQVJTQQorSVZLT1ZJxIYgQk/FvUEKK0lWS09WScSGIEJPR0RBTgorSVZLT1ZJxIYgQk9SSVNMQVYKK0lWS09WScSGIEJPUklTTEFWCitJVktPVknEhiBERUpBTgorSVZLT1ZJxIYgRElWTkEKK0lWS09WScSGIERSQUdBTiBESVBMIElORworSVZLT1ZJxIYgRFXFoEFOCitJVktPVknEhiBEVcWgQU4KK0lWS09WScSGIERVxaBBTgorSVZLT1ZJxIYgRVNURVJBCitJVktPVknEhiBHVVNUQVYgRFIKK0lWS09WScSGLUlWQU5ERUtJxIYgREFOSUNBCitJVktPVknEhiBKRUxFTkEKK0lWS09WScSGIEpPVkFOCitJVktPVknEhiBLT1ZJTEpLQQorSVZLT1ZJxIYtTEFaQVIgVEFUSkFOQSBEUgorSVZLT1ZJxIYgTFVLQQorSVZLT1ZJxIYgTUlIQUpMTworSVZLT1ZJxIYgTUlMQU5LQQorSVZLT1ZJxIYgTUlMQU4KK0lWS09WScSGIE1JTEVOVElKRQorSVZLT1ZJxIYgTUlMRVZBCitJVktPVknEhiBNSUxFCitJVktPVknEhiBNSUxJQ0EKK0lWS09WScSGIE1JTE9MSlVCIERJUEwgSU5HCitJVktPVknEhiBNSUxPUkFECitJVktPVknEhiBNSUxVVElOCitJVktPVknEhiBNSVJKQU5BCitJVktPVknEhiBNTEFERU4KK0lWS09WScSGIE5BVEHFoEEKK0lWS09WScSGIE5BVEHFoEEKK0lWS09WScSGIE5FQk9KxaBBCitJVktPVknEhiBOSUtPTEEKK0lWS09WScSGIE5JS09MQQorSVZLT1ZJxIYgUEVUQVIKK0lWS09WScSGIFBSRURSQUcKK0lWS09WScSGIFJBRElTQVYKK0lWS09WScSGIFJBTktPCitJVktPVknEhiBTVEVWQU4KK0lWS09WScSGIFNUT0pBTgorSVZLT1ZJxIYgVkVSQQorSVZLT1ZJxIYgVkVSQQorSVZLT1ZJxIYgVkVSSUNBCitJVktPVknEhiBWTEFESU1JUgorSVZLT1ZJxIYgVkxBSktPCitJVktPVknEhiBaQUdPUktBCitJVktPVknEhiBaRFJBVktPCitJVktPVknEhiBaT1JJQ0EKK0lWT8WgIEFMRUtTQU5EQVIKK0lWT8WgIFJPRE9MSlVCCitJVk/FoCBWT0pJU0xBVgorSVZPxaBFViBBTEVLU0FOREFSCitJVk/FoEVWIERVxaBBTgorSVZPxaBFViBJTElKQQorSVZPxaBFViBLQVRBUklOQQorSVZPxaBFViBLT1NUQQorSVZPxaBFViBNQVJLTworSVZPxaBFViBTTEFWS08KK0lWT8WgRVYgVk9KSVNMQVYKK0lWT8WgRVZJxIYgxJBVUk8KK0lWT8WgRVZJxIYgQUxFS1NBTkRSQQorSVZPxaBFVknEhiBEQU5JQ0EKK0lWT8WgRVZJxIYgR09KS08KK0lWT8WgRVZJxIYgTUlMQU4KK0lWT8WgRVZJxIYgTUlMRU5LTworSVZPxaBFVknEhiBTQVZBCitJVk/FoEVWScSGIFNMT0JPREFOCitJVk/FoEVWScSGIFpPUkFOCitJVk9WScSGIExKVUJJxaBBCitJVk9WScSGIFBFVEFSCitJWkJSQURJxIYgU1RFVkFOCitJWkdBUkpBTiBNSUxJVk9KCitKQcWgxIxFTktPViBTVEFOQQorSkHFoEFSIEhBU0FOCitKQcWgQVJBR0nEhiBJVkFOS0EKK0pBxaBBUkFHScSGIFpJSk8KK0pBxaBBUkVWScSGIEhVU0VJTgorSkHFoEFSRVZJxIYgTVVIQVJFTQorSkHFoEFSRVZJxIYgUkFNTworSkHFoEFSRVZJxIYgVk9KSVNMQVYKK0pBxaBBUkkgRMW9QUZFUgorSkHFoEFST1YgxaBBSVAKK0pBxaBJxIYgREVTQU5LQQorSkHFoEnEhiBTSU5JxaBBCitKQcWgSU5TS0kgUlXFvUEKK0pBxaBPIEFOQQorSkHFoE8gSk/FvUVGIERSCitKQcWgTyBNSUxPU0FWCitKQcWgTyBNSVJPU0xBVkEKK0pBxaBPVknEhiBHT0pLTworSkHEhkVWScSGIE1JT0RSQUcKK0pBxIZJTU9WScSGIEFMRUtTQU5EQVIgTEVLQVIKK0pBxIZJTU9WScSGIEJPSklOCitKQcSGSU1PVknEhiBKT1ZBCitKQcSGSU1PVknEhiBNSUxFTktPCitKQcSGSU1PVknEhiBNSUxPSktPCitKQcSGSU1PVknEhiBNSVJKQU5BCitKQcSGSU1PVknEhiBQRVRBUgorSkHEhklNT1ZJxIYgU1RFVk8KK0pBxIZJTU9WScSGIFZPSklTTEFWCitKQcSGSU1PVlNLSSBNT0pTRQorSkFCTEFOT1YgxJBVS0EKK0pBQkxBTk9WIERSQUdJQ0EKK0pBQkxBTk9WIElHTkpBVElKRQorSkFCTEFOT1YgSkVMRU5BCitKQUJMQU5PViBMSlVCT01JUgorSkFCTEFOT1YgTUlMT1JBRCBESVBMIElORworSkFCTEFOT1YgWk9SQQorSkFCTEFOT1YgWk9SQQorSkFCTEFOT1ZJxIYgREVTQU5LQQorSkFCTEFOT1ZJxIYgUkFUS08KK0pBQ0FOT1ZJxIYgxb1JVktBCitKQUNBTk9WScSGIEdBQlJJSkVMQQorSkFDQU5PVknEhiBWTEFESU1JUgorSkFDScWgSU4gQU5LQQorSkFDScSGIERBUklOS0EKK0pBQ0nEhiBEUkFHQU4KK0pBR0VSIEFOQQorSkFHRVIgTUFSSU4KK0pBR0VSIE1JSEFKTE8KK0pBR0VSIFBBVkFPCitKQUdFVEnEhiBBTEVLU0FOREFSCitKQUdFVEnEhiBNSUxPxaAKK0pBR0VUScSGIFNURVZBTgorSkFHRVRJxIYgVkVMSU1JUgorSkFHRVRJxIYgVk9KSVNMQVYKK0pBR0nEhiBTTEFWSUNBCitKQUdMSUNBIEJSQU5LTworSkFHTElDQSBTTE9CT0RBTgorSkFHTkpJxIYgRFJBR0FOCitKQUdPREnEhiBBTsSQRUxLTworSkFHT0RJxIYgRFXFoEFOCitKQUdPREnEhiBNSUxJQ0EKK0pBR09EScSGIE1JUk9TTEFWCitKQUdPREnEhiBQRVRBUgorSkFHT0RJxIYgUkFOS08KK0pBR09EScSGIFZFTEpLTworSkFHT0RJxIYgVkxBRE8KK0pBR1XFoFQtQUtLQUQgTEFEQQorSkFISkEgUkXFoEFECitKQUhVUkEgVlVLQcWgSU4KK0pBSsSMQU5JTiBCT8W9TworSkFKxIxFVknEhiBBTkdFTEEKK0pBSkFHSU4gUkFET1ZBTgorSkFKQUdJTiBTUEFTT0pFCitKQUpBR0lOIFpPUklDQQorSkFKScSGIMSQT1LEkEUgRFIKK0pBSknEhiDEkE9SxJBFCitKQUpJxIYgRFJBR0FOCitKQUpJxIYgSUxJSkEKK0pBSknEhiBJVkFOS0EKK0pBSknEhiBMQVpBUgorSkFKScSGIExFTktBCitKQUpJxIYgTUlMRU5BCitKQUpJxIYgTUlMSUNBCitKQUpJxIYgTklLT0xBCitKQUpJxIYgU0FWQQorSkFKScSGIFNURVZBTgorSkFKScSGIFNWRVRMQU5BCitKQUpJTiBMQURJU0xBVgorSkFKSU4gTUlSSkFOQQorSkFKSU4gWkxBVEtPCitKQUvFoEEgUElST8WgS0EKK0pBS8WgRVZBQyBEUkFHTworSkFLxaBJxIYgxb1BUktPCitKQUvFoEnEhiDEkE9SxJBFCitKQUvFoEnEhiDEkE9SxJBFCitKQUvFoEnEhiDEkFVSQQorSkFLxaBJxIYgQU5BCitKQUvFoEnEhiBCT0dEQU4KK0pBS8WgScSGIEJPR0RBTgorSkFLxaBJxIYgQk9KQU4KK0pBS8WgScSGIEJSQU5LTworSkFLxaBJxIYgREFORQorSkFLxaBJxIYgREFORQorSkFLxaBJxIYgREFORQorSkFLxaBJxIYgREVKQU4KK0pBS8WgScSGIERNSVRBUgorSkFLxaBJxIYgRFJBR0FOCitKQUvFoEnEhiBEVcWgQU5LQQorSkFLxaBJxIYgRFXFoEFOS0EKK0pBS8WgScSGIERVxaBBTgorSkFLxaBJxIYgRFXFoEFOCitKQUvFoEnEhiBEVcWgQU4KK0pBS8WgScSGIERVxaBBTgorSkFLxaBJxIYgRFXFoEFOCitKQUvFoEnEhiBEVcWgS08KK0pBS8WgScSGIEVNSUwKK0pBS8WgScSGIElMSUpBCitKQUvFoEnEhiBJTElKQQorSkFLxaBJxIYgSVZJQ0EKK0pBS8WgScSGIElWSUNBCitKQUvFoEnEhiBKQURSQU5LQQorSkFLxaBJxIYgSkFTTUlOS0EKK0pBS8WgScSGIEpFTEVOQQorSkFLxaBJxIYgSk9WQU5LQQorSkFLxaBJxIYgSk9WQU4KK0pBS8WgScSGIEpPVkFOCitKQUvFoEnEhiBLQVRJQ0EKK0pBS8WgScSGIExKSUxKQQorSkFLxaBJxIYgTEpVQklTQVYKK0pBS8WgScSGIExKVUJPTUlSCitKQUvFoEnEhiBMSlVCT01JUgorSkFLxaBJxIYgTEpVQk9NSVIKK0pBS8WgScSGIExKVUJPTUlSCitKQUvFoEnEhiBNQVJLTworSkFLxaBJxIYgTUFSS08KK0pBS8WgScSGIE1BUktPCitKQUvFoEnEhiBNSUpBVAorSkFLxaBJxIYgTUlMQU4KK0pBS8WgScSGIE1JTEFOCitKQUvFoEnEhiBNSUxFTktPCitKQUvFoEnEhiBNSUxFVkEKK0pBS8WgScSGIE1JTE/FoAorSkFLxaBJxIYgTUlMT1JBRAorSkFLxaBJxIYgTUlMT1JBRAorSkFLxaBJxIYgTUlPRFJBRworSkFLxaBJxIYgTUlSS08KK0pBS8WgScSGIE5FQk9KxaBBCitKQUvFoEnEhiBORURFTEpLTworSkFLxaBJxIYgTkVOQUQKK0pBS8WgScSGIFBBVkxFCitKQUvFoEnEhiBQQVZMRQorSkFLxaBJxIYgUEVUQVIKK0pBS8WgScSGIFBFVEFSCitKQUvFoEnEhi1QUk9WxIxJIEJSQU5LQQorSkFLxaBJxIYgUkFERU5LTworSkFLxaBJxIYgUkFERQorSkFLxaBJxIYgUkFERQorSkFLxaBJxIYgUkFEScWgQQorSkFLxaBJxIYgUkFET0pLTworSkFLxaBJxIYgUkFET1ZBTgorSkFLxaBJxIYgUkFEVU4KK0pBS8WgScSGIFJJU1RPCitKQUvFoEnEhiBST1NBCitKQUvFoEnEhiBSVcW9SUNBCitKQUvFoEnEhiBSVcW9SUNBCitKQUvFoEnEhiBTQVZBCitKQUvFoEnEhiBTTE9CT0RBTgorSkFLxaBJxIYgU01JTEpBCitKQUvFoEnEhiBTVEVWQU4KK0pBS8WgScSGIFNWRVRLTworSkFLxaBJxIYgU1ZFVExBTkEgRElQTCBQSAorSkFLxaBJxIYgVE9NSVNMQVYKK0pBS8WgScSGIFZBU0lMSUpFCitKQUvFoEnEhiBWRUxJTUlSCitKQUvFoEnEhiBWRVJBCitKQUvFoEnEhiBWTEFEQQorSkFLxaBJxIYgVkxBRElNSVIKK0pBS8WgScSGIFZPSklTTEFWCitKQUtBQiBERcW9RQorSkFLQUIgSk/FvUVGCitKQUtBQiBQQVZFTAorSkFLRcWgRVZJxIYgRFJBR0FOCitKQUtFxaBFVknEhiBOSUtPCitKQUtJxaBBIEnFoFRWQU4KK0pBS0nEhiDEkE9SxJBFCitKQUtJxIYgREFOSUNBCitKQUtJxIYgREFSQQorSkFLScSGIERFU0FOS0EKK0pBS0nEhiBNSUxBTktBCitKQUtJxIYgTUlPRFJBRworSkFLScSGIE5JS09MQQorSkFLScSGIFNURVZBTgorSkFLScSGIFZJREEKK0pBS0lDQSDEjEVETworSkFLSUNBIElMSUpBCitKQUtJTU9WIFNMQVZLTyBEUiBMRUtBUgorSkFLSU1PVkEtR0FaRVBPVkEgSlVMS0EgRFIKK0pBS0lNT1ZTS0kgQkxBR09KCitKQUtJTU9WU0tJIEJPR09TTEFWCitKQUtJTU9WU0tJIEJPUktPCitKQUtJTU9WU0tJIERBTkUKK0pBS0xJxIYgSVZBTgorSkFLT0IgSk/FoEtBCitKQUtPQiBKT8W9RUYKK0pBS09CIExBSk/FoAorSkFLT0JBQyDEkFVSxJBJQ0EKK0pBS09CSSBCT1JJUworSkFLT0JJIFRBVEpBTkEKK0pBS09CSSBWSUxNT8WgCitKQUtPQk9WScSGIEZSQU5KTworSkFLT0JTIEnFoFRWQU4KK0pBS09OScSGIERSQUdPU0xBViBEUgorSkFLT05JxIYgSkFTTUlOQQorSkFLT05JxIYgTUlMQU4gRElQTCBPRUMKK0pBS09OScSGIFJBRE1JTEEKK0pBS09QxIxFVknEhiBCUkFOS0EKK0pBS09QT1ZJxIYgQlJBTklTTEFWQQorSkFLT1BPVknEhiBNSVJPU0xBVgorSkFLT1BPVknEhiBWTEFESU1JUgorSkFLT1RJTiDFvUlWS08KK0pBS09USU4gS09TVEEKK0pBS09USU4gUExFTUVOS0EKK0pBS09WIFNBTEFNVU4KK0pBS09WQUMgSVZBTgorSkFLT1ZJxIYgUkFERQorSkFLT1ZMSkVWIMW9QVJLTworSkFLT1ZMSkVWIMSQVVJBCitKQUtPVkxKRVYgxJBVUklDQQorSkFLT1ZMSkVWIEFMRUtTRUoKK0pBS09WTEpFViBEQU5JQ0EKK0pBS09WTEpFViBEUkFHQU4KK0pBS09WTEpFViBEVcWgQU4KK0pBS09WTEpFViBJVkFOCitKQUtPVkxKRVYgSkVGUkVNCitKQUtPVkxKRVYgS0FUQQorSkFLT1ZMSkVWIEtPU1RBCitKQUtPVkxKRVYgS1JJU1RJRk9SCitKQUtPVkxKRVYgTUFSSU5BCitKQUtPVkxKRVYgTUlMT8WgCitKQUtPVkxKRVYgTUlMT8WgCitKQUtPVkxKRVYgTUlST1NMQVYKK0pBS09WTEpFViBSQURPVkFOCitKQUtPVkxKRVYgU0xPQk9EQU4KK0pBS09WTEpFViBTVkVUT1pBUgorSkFLT1ZMSkVWIFZMQURBCitKQUtPVkxKRVYgWkxBVE9KRQorSkFLT1ZMSkVWScSGIMW9SVZBTgorSkFLT1ZMSkVWScSGIMW9SVZPUkFECitKQUtPVkxKRVZJxIYgxJBPUsSQRQorSkFLT1ZMSkVWScSGIMSQT1LEkE8KK0pBS09WTEpFVknEhiDEkFVSxJBJTktBCitKQUtPVkxKRVZJxIYgQUxFS1NBTkRBUgorSkFLT1ZMSkVWScSGIEFOQQorSkFLT1ZMSkVWScSGIEJPxb1BTkEKK0pBS09WTEpFVknEhiBCT0dEQU4KK0pBS09WTEpFVknEhiBCT1JJxaBBCitKQUtPVkxKRVZJxIYgQlJBTktBCitKQUtPVkxKRVZJxIYgREFNSkFOCitKQUtPVkxKRVZJxIYgREFNSkFOCitKQUtPVkxKRVZJxIYgRElWTkEKK0pBS09WTEpFVknEhiBEUkFHQU4KK0pBS09WTEpFVknEhiBEUkFHT1NMQVYKK0pBS09WTEpFVknEhiBFTUlMSUpBCitKQUtPVkxKRVZJxIYgR09KS08KK0pBS09WTEpFVknEhiBHUk9aREFOQQorSkFLT1ZMSkVWScSGIElHTkpBVAorSkFLT1ZMSkVWScSGIEpBTkpBCitKQUtPVkxKRVZJxIYgSk9TTworSkFLT1ZMSkVWScSGIEpPVkFOCitKQUtPVkxKRVZJxIYgSk9WQU4KK0pBS09WTEpFVknEhiBKT1ZPCitKQUtPVkxKRVZJxIYgSk9WTworSkFLT1ZMSkVWScSGIExBWkFSCitKQUtPVkxKRVZJxIYgTEpJTEpBTkEKK0pBS09WTEpFVknEhiBMSlVCSU5LTworSkFLT1ZMSkVWScSGIExVS0EKK0pBS09WTEpFVknEhiBNQVJLTworSkFLT1ZMSkVWScSGIE1JTEFOQQorSkFLT1ZMSkVWScSGIE1JTEFOCitKQUtPVkxKRVZJxIYgTUlMQU4KK0pBS09WTEpFVknEhiBNSUxFTkEKK0pBS09WTEpFVknEhiBNSUxJxIYKK0pBS09WTEpFVknEhiBNSUxJQ0EKK0pBS09WTEpFVknEhiBNSUxJQ0EKK0pBS09WTEpFVknEhiBNSUxJVk9KIE1SIFBICitKQUtPVkxKRVZJxIYgTUlMSkFOQQorSkFLT1ZMSkVWScSGIE1JTE/FoAorSkFLT1ZMSkVWScSGIE1JTE9WQU4KK0pBS09WTEpFVknEhiBNSUxVVElOCitKQUtPVkxKRVZJxIYgTUlSSkFOQQorSkFLT1ZMSkVWScSGIE1JUktPCitKQUtPVkxKRVZJxIYgTUlST1NMQVYKK0pBS09WTEpFVknEhiBNSVRBCitKQUtPVkxKRVZJxIYgTklLT0xBCitKQUtPVkxKRVZJxIYgT0JSQUQKK0pBS09WTEpFVknEhiBQQUpBCitKQUtPVkxKRVZJxIYgUkFEScWgQQorSkFLT1ZMSkVWScSGIFJBRElWT0oKK0pBS09WTEpFVknEhiBSQURPSktPCitKQUtPVkxKRVZJxIYgU0FWQQorSkFLT1ZMSkVWScSGIFNJTU8KK0pBS09WTEpFVknEhiBTTE9CT0RBTgorSkFLT1ZMSkVWScSGIFNPTkpBCitKQUtPVkxKRVZJxIYgU1RFVkFOCitKQUtPVkxKRVZJxIYgVEFUSkFOQQorSkFLT1ZMSkVWScSGIFZBU0EKK0pBS09WTEpFVknEhiBWQVNBCitKQUtPVkxKRVZJxIYgVkFTSUxJSkUKK0pBS09WTEpFVknEhiBWSUtUT1IKK0pBS09WTEpFVknEhiBWSUtUT1IKK0pBS09WTEpFVknEhiBWSUtUT1IKK0pBS09WTEpFVknEhiBaRFJBVktPCitKQUtPVk9WScSGIERVxaBBTgorSkFLVcWgIE1JUkpBTkEKK0pBS1VCRUMgxJBVUkEKK0pBS1VCRUMgTEFESVNMQVYKK0pBTUEgTkFEQQorSkFNQk9SIEFORFJFQQorSkFNQk9SIERBTklFTEEKK0pBTUJPUiBJTVJFCitKQU1CT1IgTUlIQUxKCitKQU1CUlXFoEnEhiBGUkFOSk8KK0pBTUlOQSBNSUxPVkFOCitKQU1JTkEgUkFUS08KK0pBTVJJSyDEkE9SxJBFCitKQU1SSUsgSkVMRU5BCitKQU1SSUsgTEpVQklDQQorSkFNUklLIE9UTworSkFOxIxBIERFSkFOIERSCitKQU7EjEEgS09TVEEgRFIKK0pBTsSMQSBMSlVCSUNBCitKQU7EjEnEhiBCSUxKQU5BCitKQU7EjEnEhiBCT8W9QU5BCitKQU7EjEnEhiBCT0dEQU4KK0pBTsSMScSGIERJTUlUUklKRQorSkFOxIxJxIYgRFJBR0lOSkEKK0pBTsSMScSGIERSQUdPU0xBVkEKK0pBTsSMScSGIERSQUdPU0xBVgorSkFOxIxJxIYgRFXFoEFOCitKQU7EjEnEhiBEVcWgQU4KK0pBTsSMScSGIEdPUkRBTkEKK0pBTsSMScSGIEdPUklDQQorSkFOxIxJxIYgSkVST1NJTQorSkFOxIxJxIYgTEpVQklDQQorSkFOxIxJxIYgTUlMT8WgCitKQU7EjEnEhiBNSVJPU0xBVgorSkFOxIxJxIYgTUxBREVOCitKQU7EjEnEhiBOSUtPTEEKK0pBTsSMScSGIFBFUkEKK0pBTsSMScSGIFBFVEFSCitKQU7EjEnEhiBSQURPVkFOCitKQU7EjEnEhiBTQVZBCitKQU7EjEnEhiBTVkVUSVNMQVYKK0pBTsSMScSGIFNWRVRJU0xBVgorSkFOxIxJxIYgVElIT01JUgorSkFOxIxJxIYgVElOS0EKK0pBTsSMScSGIFZFTElCT1IKK0pBTsSMScSGIFZJTktBCitKQU7EjEnEhiBWTEFESU1JUgorSkFOxIxJxIYgVkxBU1RBCitKQU7EjFVSScSGIEFMRUtTQU5EQVIKK0pBTsSMVVJJxIYgREFSSU5LQQorSkFOxIxVUknEhiBEVcWgQU4KK0pBTsSMVVJJxIYgSk9WQU4KK0pBTsSMVVJJxIYgTEFaQVIKK0pBTsSMVVJJxIYgTEVOS0EKK0pBTsSMVVJJxIYgTUlSSkFOQQorSkFOxIxVUknEhiBTQVZBCitKQU7FvUVLT1ZJxIYgTUlMRVZLQQorSkFOxb1FS09WScSGIE9MR0EKK0pBTsW9RUxKIEFOVE9OCitKQU5BxIxFSyDEkE9SxJBFCitKQU5BxIxFSyBLQVRJQ0EKK0pBTkHEjEtPVknEhiBTVE9JTAorSkFOQcSGIEpBTk/FoAorSkFOQcSGIEtBUk9MSgorSkFOQ0nEhiBCTEFHT0pFCitKQU5DScSGIFBSRURSQUcKK0pBTkRSScSGIMSQVVJJQ0EKK0pBTkRSScSGIEJPR0RBTgorSkFORFJJxIYgSkFORFJJSkEKK0pBTkRSScSGIE1BUklOS08KK0pBTkRSScSGIE1BUktPCitKQU5EUknEhiBNQVJLTworSkFORFJJxIYgTUnEhk8KK0pBTkRSScSGIE1JTEVOQQorSkFORFJJxIYgTUlMSU5BCitKQU5EUknEhiBNSUxLQQorSkFORFJJxIYgTUlMT1JBRAorSkFORFJJxIYgTUlMT1JBRAorSkFORFJJxIYgTUlST1NMQVYKK0pBTkRSScSGIE1JUk9TTEFWCitKQU5EUknEhiBNSVRBUgorSkFORFJJxIYgTU9NxIxJTE8KK0pBTkRSScSGIE5FREVMSktPCitKQU5EUknEhiBSQURPVkFOCitKQU5EUknEhiBSQVRLTworSkFORFJJxIYgUklTVE8KK0pBTkRSScSGIFNJTU8KK0pBTkRSScSGIFNMT0JPREFOCitKQU5EUknEhiBTUkVURU4KK0pBTkRSScSGIFNUQU5LTworSkFORFJJxIYgU1RBTktPCitKQU5EUknEhiBTVEFOS08KK0pBTkRSScSGIFVHTEpFxaBBCitKQU5EUknEhiBWSURBCitKQU5EUknEhiBWSU5LQQorSkFORFJJxIYgWk9SQU4KK0pBTkRSScSGIFpPUkFOCitKQU5FxaAgTkVWRU4KK0pBTkVHQSBTTkXFvUFOQQorSkFORVYgQkxBR09KRSBESVBMIElORworSkFORVZTS0kgQUxFS1NBTkRBUgorSkFOScSMScSGIEJMQcW9TworSkFOScSMScSGIEJPxb1BCitKQU5JxIxJxIYgSkVMRU5BCitKQU5JxIxJxIYgTUlMRVZBCitKQU5JxIxJxIYgTUlSS08KK0pBTknEjEnEhiBSQURPSklDQQorSkFOScSMScSGIFNURVZPCitKQU5JxIYgxIxBU0xBViBESVBMIElORworSkFOScSGIMW9SVZPUkFECitKQU5JxIYgQUxFS1NBTkRBUgorSkFOScSGIEFOxJBFTEtPCitKQU5JxIYgRFXFoEFOCitKQU5JxIYgRFXFoEtPCitKQU5JxIYtSElMVCBHT1JEQU5BCitKQU5JxIYgSVJFTkEKK0pBTknEhiBJVkFOIERSCitKQU5JxIYgTUlMSVNBVgorSkFOScSGIE5BREEKK0pBTknEhiBSQURPSktBCitKQU5JxIYgU0xPQk9EQU4KK0pBTknEhiBWTEFESU1JUgorSkFOScSGSUpFVknEhiBNSUxFTktPCitKQU5JxIZJSkVWScSGIE1JTE/FoAorSkFOScSGSUpFVknEhiBNSVJLTworSkFOScSGSUpFVknEhiBNT03EjElMTworSkFOScSGSUpFVknEhiBOQURFxb1EQQorSkFOScSGSUpFVknEhiBPWlJFTktBCitKQU5JxIZJSkVWScSGIFJBVEtPCitKQU5JxIZJSkVWScSGIFNPRklKQQorSkFOScSGSUpFVknEhiBWSVRPTUlSCitKQU5JxIZJTiBBTkdFTElOQQorSkFOScSGSU4gSUxJSkEKK0pBTklDS0kgU1RBTklNSVIKK0pBTklLIEZFUkVOQworSkFOSkFOSU4gQlJBTktPCitKQU5KQU5JTiBTSU1PCitKQU5KQVRPVknEhiBERUpBTgorSkFOSkFUT1ZJxIYgR09SSUNBCitKQU5KQVRPVknEhiBNQU5FCitKQU5KQVRPVknEhiBNSUxBTgorSkFOSkFUT1ZJxIYgTUlSS08KK0pBTkpBVE9WScSGIE5FREVMSktPCitKQU5KQVRPVknEhiBOSUtPTEEKK0pBTkpBVE9WScSGIFNMQVZJQ0EKK0pBTkpBVE9WScSGIFNMQVZJQ0EKK0pBTkpBVE9WScSGIFZFUkEKK0pBTkpFVE9WIFJBREEKK0pBTkpFVE9WScSGIEJSQU5LTworSkFOSkVUT1ZJxIYgTkVCT0rFoEEKK0pBTkpFVE9WScSGIFNMQVZJQ0EKK0pBTkpFVE9WScSGIFNMT0JPREFOCitKQU5KRVZJxIYgRFJBR09TTEFWCitKQU5KRVZJxIYgS1NFTklKQQorSkFOSkVWScSGIFpPUkFOCitKQU5KRVZJxIYgWk9SQU4KK0pBTkpJxIxJxIYgU0lNTworSkFOSknFoCBKRUxJQ0EKK0pBTkpJxIYgxIxFRE9NSVIKK0pBTkpJxIYgxb1FTEpLTworSkFOSknEhiDFvUlWS0EKK0pBTkpJxIYgxb1JVktPCitKQU5KScSGIMSQT1LEkEUgRFIKK0pBTkpJxIYgQk/FoEtPCitKQU5KScSGIERBTklDQQorSkFOSknEhiBEUkFHT01JUiBESVBMIE9FQworSkFOSknEhiBJTElKQQorSkFOSknEhiBKRUxBCitKQU5KScSGIEpFVlJFTQorSkFOSknEhiBKRVZUTworSkFOSknEhiBKT1ZBTgorSkFOSknEhiBKT1ZPCitKQU5KScSGIEpPVk8KK0pBTkpJxIYgSk9WTworSkFOSknEhiBLU0VOSUpBCitKQU5KScSGIExKVUJPTUlSCitKQU5KScSGIExVS0EKK0pBTkpJxIYgTUFSSUpBCitKQU5KScSGIE1BUktPCitKQU5KScSGIE1JTElDQQorSkFOSknEhiBNSUxJVk9KCitKQU5KScSGIE1JTEtBCitKQU5KScSGIE1JTE9NSVIKK0pBTkpJxIYgTUxBREVOCitKQU5KScSGIE5BVEHFoEEKK0pBTkpJxIYgTkVCT0rFoEEKK0pBTkpJxIYgUkFET1ZBTgorSkFOSknEhiBTQVZPCitKQU5KScSGIFNURVZBTgorSkFOSknEhiBWSVRPTUlSCitKQU5KScSGIFZPSklTTEFWIE1SCitKQU5KScSGIFZPSktPCitKQU5KScSGIFZVS09UQQorSkFOSklOIEJPR09MSlVCCitKQU5KSU4gREFNSkFOCitKQU5KSU4gTEFaQVIKK0pBTkpJTiBNSUxJVk9KCitKQU5KSU4gUkFESVZPSgorSkFOSklOIFNORcW9QU5BCitKQU5KT8WgIFpPUkFOCitKQU5KT8WgRVZJxIYgQlJBTklTTEFWCitKQU5KT8WgRVZJxIYgTUlMSUNBCitKQU5KT8WgRVZJxIYgU1RFVkFOS0EKK0pBTkpVxaBFVknEhiBCT1NJTEpLQQorSkFOSlXFoEVWScSGIEdPSktPCitKQU5KVcWgRVZJxIYgSk9LSUNBCitKQU5KVcWgRVZJxIYgTUlSQQorSkFOSlXFoEVWScSGIE5FREVMSktPCitKQU5KVcWgRVZJxIYgTkVERUxKS08KK0pBTkpVxaBFVknEhiBTVE9KQU4KK0pBTktBIMWgQU5ET1IKK0pBTktBIElWQU4KK0pBTktBTkogVkxBRE8KK0pBTktJxIYgS1JJU1RJTkEKK0pBTktPIEpBTk/FoAorSkFOS09WIEJPUklTTEFWCitKQU5LT1YgQk9SSVNMQVYKK0pBTktPViBCT1JJU0xBVgorSkFOS09WIEJSQU5JU0xBVgorSkFOS09WIERSQUdJQ0EKK0pBTktPViBEVcWgQU4KK0pBTktPViBJVkFOCitKQU5LT1YgSkVMSUNBCitKQU5LT1YgSk9WQU4KK0pBTktPViBKT1ZJQ0EKK0pBTktPViBNSUxBTgorSkFOS09WIE1JTElKQU5BCitKQU5LT1YgTUlPTUlSCitKQU5LT1YgTUlUQQorSkFOS09WIE1JVEtPCitKQU5LT1YgTkFEQQorSkFOS09WIE5FREVMSktPCitKQU5LT1YgTklLT0xBCitKQU5LT1YgTklLT0xBCitKQU5LT1YgTk9WS0EKK0pBTktPViBQUkVEUkFHCitKQU5LT1YgUkFESVZPSgorSkFOS09WIFJBRE9TTEFWQQorSkFOS09WIFJBTsSQRUwKK0pBTktPViBTTE9CT0RBTgorSkFOS09WIFNMT0JPREFOCitKQU5LT1YgU01JTEpLQQorSkFOS09WIFNQQVNPSkEKK0pBTktPViBTUkVET0pFCitKQU5LT1YgVElIT01JUgorSkFOS09WIFZFUkEKK0pBTktPViBaQUdPUktBIERSCitKQU5LT1ZJxIYgxIxBU0xBVgorSkFOS09WScSGIMSMRURPCitKQU5LT1ZJxIYgxIxFRE8KK0pBTktPVknEhiDFvUFSS08gRElQTCBJTkcKK0pBTktPVknEhiDFvUFSS08KK0pBTktPVknEhiDFvUlWS08KK0pBTktPVknEhiDFvUlWT1JBRAorSkFOS09WScSGIMW9SVZPUkFECitKQU5LT1ZJxIYgxb1JVk9SQUQKK0pBTktPVknEhiDEkE9SxJBFCitKQU5LT1ZJxIYgxJBPUsSQRQorSkFOS09WScSGIMSQVVLEkElDQQorSkFOS09WScSGIMSQVVJBCitKQU5LT1ZJxIYgQUxFS1NBTkRBUgorSkFOS09WScSGIEFMRUtTQU5EQVIKK0pBTktPVknEhiBBTkEKK0pBTktPVknEhiBBTklDQQorSkFOS09WScSGIEFOS0EKK0pBTktPVknEhiBCT8WgS08KK0pBTktPVknEhiBCT8WgS08KK0pBTktPVknEhiBCT8W9SURBUgorSkFOS09WScSGIEJPxb1JREFSCitKQU5LT1ZJxIYgQk/FvU8KK0pBTktPVknEhiBCT0dPTEpVQgorSkFOS09WScSGIEJPUklWT0ogRFIgTEVLQVIKK0pBTktPVknEhiBCUkFOS08KK0pBTktPVknEhiBCUkFUSVNMQVYKK0pBTktPVknEhiBEQVJBCitKQU5LT1ZJxIYgRElNSVRSSUpFCitKQU5LT1ZJxIYgRElNSVRSSUpFCitKQU5LT1ZJxIYgRElNSVRSSUpFCitKQU5LT1ZJxIYgRE9CUklWT0pFCitKQU5LT1ZJxIYgRE9CUklWT0oKK0pBTktPVknEhiBEUkFHQU5BCitKQU5LT1ZJxIYgRFJBR0FOCitKQU5LT1ZJxIYgRFJBR0FOCitKQU5LT1ZJxIYgRFJBR0FOCitKQU5LT1ZJxIYgRFJBR0lOSkEKK0pBTktPVknEhiBEUkFHT01JUgorSkFOS09WScSGIERSQUdPU0xBVgorSkFOS09WScSGIERVxaBBTktBCitKQU5LT1ZJxIYgRFXFoEFOCitKQU5LT1ZJxIYgRFXFoEFOCitKQU5LT1ZJxIYgRFXFoElDQQorSkFOS09WScSGIEdPUkRBTkEKK0pBTktPVknEhiBHT1JEQU5BCitKQU5LT1ZJxIYgSFJJU1RJVk9KRQorSkFOS09WScSGIElHTkpBVAorSkFOS09WScSGIEpFTElDQQorSkFOS09WScSGIEpPUkRBTgorSkFOS09WScSGIEpPVkFOCitKQU5LT1ZJxIYgSk9WQU4KK0pBTktPVknEhiBKT1ZBTgorSkFOS09WScSGIEpPVkFOCitKQU5LT1ZJxIYgSlVMSUpBTkEKK0pBTktPVknEhiBLQUxNQU4gRElQTCBJTkcKK0pBTktPVknEhiBLQUxNQU4KK0pBTktPVknEhiBLQVRJQ0EKK0pBTktPVknEhiBLT1ZJTEpLQQorSkFOS09WScSGIEtSU1RBCitKQU5LT1ZJxIYtS1VaTUFOxIxFViBPTElWRVJBCitKQU5LT1ZJxIYgTEFTTE8KK0pBTktPVknEhiBMQVNMTworSkFOS09WScSGIExBWkFSCitKQU5LT1ZJxIYgTEFaQVIKK0pBTktPVknEhiBMSklMSkFOQQorSkFOS09WScSGIExKVUJJQ0EKK0pBTktPVknEhiBMSlVCSUNBCitKQU5LT1ZJxIYgTEpVQklDQQorSkFOS09WScSGIExKVUJPTUlSCitKQU5LT1ZJxIYgTUFSQQorSkFOS09WScSGIE1BUklKQU4KK0pBTktPVknEhiBNQVJJSkEKK0pBTktPVknEhiBNQVJJSkEKK0pBTktPVknEhiBNQVJJSkEKK0pBTktPVknEhiBNQVJJSkEKK0pBTktPVknEhiBNQVJJTkEKK0pBTktPVknEhiBNQVJLTworSkFOS09WScSGIE1FTEFOSUpBCitKQU5LT1ZJxIYgTUnEhkEKK0pBTktPVknEhiBNScSGQQorSkFOS09WScSGIE1JTEFOCitKQU5LT1ZJxIYgTUlMRU5BCitKQU5LT1ZJxIYgTUlMRU5LTworSkFOS09WScSGIE1JTEVOS08KK0pBTktPVknEhiBNSUxJQ0EKK0pBTktPVknEhiBNSUxJQ0EKK0pBTktPVknEhiBNSUxJSkFOQQorSkFOS09WScSGIE1JTElOS08KK0pBTktPVknEhiBNSUxJU0FWCitKQU5LT1ZJxIYgTUlMSVZPSkUKK0pBTktPVknEhiBNSUxPSkUKK0pBTktPVknEhiBNSUxPSklDQQorSkFOS09WScSGIE1JTE9NSVIKK0pBTktPVknEhiBNSUxPUkFECitKQU5LT1ZJxIYgTUlMT1JBRAorSkFOS09WScSGIE1JTE9SQUQKK0pBTktPVknEhiBNSUxPU0FWCitKQU5LT1ZJxIYgTUlMT1NBVgorSkFOS09WScSGIE1JTE9TQVYKK0pBTktPVknEhiBNSUxVVElOCitKQU5LT1ZJxIYgTUlMVVRJTgorSkFOS09WScSGIE1JTFVUSU4KK0pBTktPVknEhiBNSUxVVElOCitKQU5LT1ZJxIYgTUlSSkFOQQorSkFOS09WScSGIE1JUk9MSlVCCitKQU5LT1ZJxIYgTUlUQVIKK0pBTktPVknEhiBNTEFERU4KK0pBTktPVknEhi1NUktJxIYgWk9SQSBESVBMIElORworSkFOS09WScSGIE5BREEKK0pBTktPVknEhiBOQURBCitKQU5LT1ZJxIYgTkFTVEEKK0pBTktPVknEhiBORU5BRAorSkFOS09WScSGIE5JS09MQQorSkFOS09WScSGIE9CUkFECitKQU5LT1ZJxIYgUEFWTEUKK0pBTktPVknEhiBQQVZMRQorSkFOS09WScSGIFBBVkxFCitKQU5LT1ZJxIYgUEVUQVIKK0pBTktPVknEhiBQRVRBUgorSkFOS09WScSGIFBFVEFSCitKQU5LT1ZJxIYgUFJWT1NMQVYKK0pBTktPVknEhiBQUlZPU0xBVgorSkFOS09WScSGIFJBRElWT0pFCitKQU5LT1ZJxIYgUkFET01JUgorSkFOS09WScSGIFJBRE9TTEFWCitKQU5LT1ZJxIYgUkFET1NMQVYKK0pBTktPVknEhiBSQURPVkFOCitKQU5LT1ZJxIYgUkFKS08KK0pBTktPVknEhiBSQUpLTworSkFOS09WScSGIFJBTktPCitKQU5LT1ZJxIYgUkFUS08KK0pBTktPVknEhiBST1NBCitKQU5LT1ZJxIYgUlXFvUEKK0pBTktPVknEhiBTTEFWSUNBCitKQU5LT1ZJxIYgU0xBVktPCitKQU5LT1ZJxIYgU0xBVktPCitKQU5LT1ZJxIYgU0xPQk9EQU4KK0pBTktPVknEhiBTTE9CT0RBTgorSkFOS09WScSGIFNMT0JPREFOCitKQU5LT1ZJxIYgU0xPQk9EQU4KK0pBTktPVknEhiBTT0ZJSkEKK0pBTktPVknEhiBTUEFTQQorSkFOS09WScSGIFNQQVNPSkUKK0pBTktPVknEhiBTUE9NRU5LQQorSkFOS09WScSGIFNSQk9MSlVCCitKQU5LT1ZJxIYgU1RBTktPCitKQU5LT1ZJxIYgU1RFVkFOCitKQU5LT1ZJxIYgU1RFVkFOCitKQU5LT1ZJxIYgU1RFVkFOCitKQU5LT1ZJxIYgU1RPSkFOS0EKK0pBTktPVknEhiBTVkVUSVNMQVYKK0pBTktPVknEhiBTVkVUT1pBUgorSkFOS09WScSGIFRJQk9SCitKQU5LT1ZJxIYgVE9ET1IKK0pBTktPVknEhiBUT0RPUgorSkFOS09WScSGIFRPRE9SCitKQU5LT1ZJxIYgVkVTTkEKK0pBTktPVknEhiBWSVRPTUlSCitKQU5LT1ZJxIYgVklUT01JUgorSkFOS09WScSGIFZMQURJTUlSCitKQU5LT1ZJxIYgVlVLScSGCitKQU5LT1ZJxIYgVlVLSUNBCitKQU5LT1ZJxIYgVlVLT01BTgorSkFOS09WScSGIFpMQVRPSkUKK0pBTktPVknEhiBaT0xUQU4KK0pBTktPVknEhiBaT1JBTgorSkFOS09WScSGIFpPUkFOCitKQU5LT1ZJxIYgWk9SSUNBCitKQU5LT1ZJxIYgWk9SSUNBCitKQU5LT1ZJxIYgWk9SSUNBCitKQU5LT1ZJxIYgWk9SS0EKK0pBTktVTE9WIERBTklDQQorSkFOS1VMT1YtREVNSkVOIE1BSkEKK0pBTktVTE9WIERSQUdJxaBBIE1SIFBICitKQU5LVUxPViBTVEVWQU4KK0pBTktVTE9WU0tJIE1BUklKQQorSkFOS1VMT1ZTS0kgUEVUQVIKK0pBTk8gSlVMSUpBCitKQU5PxaBFViBCSVNFUktBCitKQU5PxaBFViBEUkFHSUNBCitKQU5PxaBFViBMSklMSkFOQQorSkFOT8WgRVYgTUlMQU4KK0pBTk/FoEVWIE1JTEVOQQorSkFOT8WgRVYgTUlMRU5LTworSkFOT8WgRVZJxIYgUkFESVZPSgorSkFOT8WgSSBGUkFOQ0nFoEtBCitKQU5PxaBJIElMT05BCitKQU5PxaBJIEtBUkxPCitKQU5PxaBJIExBU0xPCitKQU5PxaBJIE1BUkdJVEEKK0pBTk/FoEkgTUlIQUxKCitKQU5PxaBJIE1JSEFMSgorSkFOT8WgSSBURVJFWkEKK0pBTk/FoEkgWk9MVEFOCitKQU5PVkFDIMW9SVZPSklOCitKQU5PVknEhiBMSklMSkEKK0pBTlXFoEtPIEnFoFRWQU4KK0pBTlVTIE1JTEtBCitKQU5VUyBWT0lTTEFWCitKQU5VWk9WScSGIERVxaBBTktBCitKQU5VWk9WScSGIEpPTEFOCitKQU5VWk9WScSGIE1JTE9WQU4KK0pBTlVaT1ZJxIYgTUlSQUxKVUIKK0pBTlVaT1ZJxIYgTk9WSUNBIERSCitKQU5VWk9WScSGIFNMT0JPREFOCitKQU5VWk9WScSGIFNWRVRMQU5BCitKQVBVTkTFvUEgTEFaQQorSkFQVU5Exb1JxIYgxJBPUsSQRQorSkFQVU5Exb1JxIYgR09SREFOQQorSkFQVU5Exb1JxIYgTUlSS08KK0pBUFVORMW9ScSGIE5JS09MQQorSkFQVU5Exb1JxIYgTklLT0xBCitKQVBVTkTFvUnEhiBOSUtPTEEKK0pBUFVORMW9ScSGIFNBVkEKK0pBUkFLIElWQU4KK0pBUkFNQVogRElKQU5BCitKQVJBTUFaIE1JTE9WQU4KK0pBUkFNQVogTklLT0xBCitKQVJDIEFOR0VMCitKQVJJIFBST0tBCitKQVJJxIYgxIxFRE9NSVIKK0pBUknEhiBBTEVLU0FOREFSCitKQVJJxIYgQVZETworSkFSScSGIEJPSkFOCitKQVJJxIYgQlJBTktPCitKQVJJxIYgREFOSUVMQQorSkFSScSGIERFU0FOS0EKK0pBUknEhiBEUkFHQU5BCitKQVJJxIYgRFJBR0FOCitKQVJJxIYgRFXFoEFOIERSCitKQVJJxIYgS1JJU1RJTkEKK0pBUknEhiBLUklTVElOQQorSkFSScSGIExKSUxKQU5BCitKQVJJxIYgTEpJTEpBTkEKK0pBUknEhiBNQVJJSkEKK0pBUknEhiBNQVJJSkEKK0pBUknEhiBNSUxBTgorSkFSScSGIE1JTEFOCitKQVJJxIYgTUlMT0pLTworSkFSScSGIE1JUkEKK0pBUknEhiBTTE9CT0RBTgorSkFSScSGIFpPUkFOCitKQVJNSU5BQyBCUkFOS08KK0pBUk/FoEVOS08gS0FUQVJJTkEKK0pBUk/FoEVWU0tJIEFOVE9OCitKQVJPxaBFVlNLSSBJVklDQQorSkFST8WgRVZTS0kgUEFWRUwKK0pBU0VOT1ZTS0kgQU5BCitKQVNJxIYgRElWTkEKK0pBU0nEhiBKQU5LTworSkFTScSGIE1BTkRBCitKQVNJxIYgTUlSS08KK0pBU0nEhiBWRVJJQ0EKK0pBU0lLQSBSVcW9QQorSkFTSUtBIFNUT0pBTktBCitKQVNJS0nEhiBNSUxPUkFECitKQVNNSU5PVknEhiBKQU1JTgorSkFTTknEhiBNSUxBTiBEUiBMRUtBUgorSkFTTknEhiBNSUxBTgorSkFTTknEhiBNSUxPTUlSS0EKK0pBU05JxIYgU0lOScWgQQorSkFTTklHRVIgQUxFS1NBTkRBUgorSkFUScSGIEFOxJBFTElKQQorSkFUScSGIERSQUdBTgorSkFUScSGIEdSQURJTUlSCitKQVRJxIYgU1RFVkFOCitKQVVLT1ZJxIYgRFJBR0nFoEEKK0pBVUtPVknEhiBQRUpLQQorSkFVUyBWQUxURVIKK0pBVk5JIFBFVEFSCitKQVZPUkFOIElWQU4KK0pBVk9SSU5BIMSQVVJBCitKQVZPUklOQSBMSklMSkFOQQorSkFWT1JJTkEgTUlMRQorSkFWT1JJTkEgU0lNTworSkFWT1JOSUsgQk9TSUxKS0EKK0pBVk9STklLIFBBVkVMCitKQVpJxIYgREFOSUxPCitKQVpJxIYgSVZBTktBCitKQVpJxIYgTEFaQQorSkFaScSGIExKVUJPTUlSCitKQVpJxIYgTUFSSU5LTworSkFaScSGIE1JUk9TTEFWCitKQVpJxIYtU0FWSU4gVEFUSkFOQQorSkFaScSGIFNWRVRMQU5BCitKQVpWScSGIEFOS0EKK0pFxIxJTkFDIE1JTEFOCitKRcSMSU5BQyBNSUxPUkFECitKRcSMSU5BQyBWRVJBCitKRcSMTUVOSUNBIEFMRUtTQU5EQVIKK0pFxIxNRU5JQ0EgQUxFS1NBTkRBUgorSkXEjE1FTklDQSBKRUxFTkEKK0pFxIxNRU5JQ0EgTUlMT8WgCitKRcSMTUVOSUNBIFZMQURJTUlSCitKRcWgScSGIMW9SVZLQQorSkXFoEnEhiBBTsSQRUxLTworSkXFoEnEhiBEQU5JSkVMQQorSkXFoEnEhiBKVUxLQQorSkXFoEnEhiBNSUxBTgorSkXFoEnEhiBNSU9EUkFHCitKRcWgScSGIE1JUk9TTEFWQQorSkXFoEnEhiBTVEVWQU4KK0pFxaBJxIYgWk9SQU4KK0pFxb0gRFJBR0FOCitKRcW9IEdPU1BPSklOS0EKK0pFxb0gTUlMT1JBRAorSkXFvSBTTE9CT0RBTgorSkXFvSBUUklWTworSkXFvUVLIE1JTElWT0oKK0pFQ0tPViBOQURBCitKRURFUkFOIEpPU0lQCitKRURFUkFOIEpPU0lQCitKRUZJxIYgR09SQU4KK0pFRlRFTknEhiDFoFBJUk8KK0pFRlRFTknEhiBWTEFETworSkVGVEnEhiDFvUFSS08KK0pFRlRJxIYgQklMSkFOQQorSkVGVEnEhiBCT8W9SURBUgorSkVGVEnEhiBCT1JJU0xBViBESVBMIElORworSkVGVEnEhiBCUkFOS08KK0pFRlRJxIYgREFNSkFOCitKRUZUScSGIERSQUdBTgorSkVGVEnEhiBKQURSQU5LQQorSkVGVEnEhiBKRUZUQQorSkVGVEnEhiBKRUxFTkEKK0pFRlRJxIYgSk9WQU4KK0pFRlRJxIYgS0FUQVJJTkEKK0pFRlRJxIYgTEpVQk9NSVIKK0pFRlRJxIYgTUlMQU4KK0pFRlRJxIYgTUlMQU4KK0pFRlRJxIYgTUlMRU5LTworSkVGVEnEhiBNSUxPUkFECitKRUZUScSGIE1JVEEKK0pFRlRJxIYgU1JFVEVOS0EKK0pFRlRJxIYgVElIT01JUgorSkVGVEnEhiBUT01JU0xBVgorSkVGVEnEhiBWRUxJTktBCitKRUZUScSGIFZMQURJTUlSCitKRUZUScSGIFZMQVNUQQorSkVGVEnEhiBaRFJBVktPCitKRUZUT1ZJxIYgRlJBTkpBCitKRUdBUkFDIE9MR0EKK0pFR0RJxIYgREFNSkFOCitKRUdEScSGIEdPUkRBTkEKK0pFR0RJxIYgU1ZFVElTTEFWCitKRUdEScSGIFZBU0EKK0pFR0RJxIYgVkFTTworSkVHRcWgIE1JTEEKK0pFS0VMScSGIEJSQU5JU0xBVgorSkVLRUxJxIYgQlJBTktPCitKRUtFTEnEhiBFTUlMSUpBCitKRUtFTEnEhiBMQVNMTworSkVLRUxJxIYgTUlMQU4KK0pFS0VMScSGIE1JTEnEhgorSkVLRUxJxIYgUkFET1NMQVYgRElQTCBJTkcKK0pFS0VMScSGIFNMQVZLTworSkVLRUxJxIYgWk9SSUNBCitKRUtOScSGIFJBRE9KSUNBCitKRUzEjEnEhiBKT1pFRklOQQorSkVMxIxJxIYgS1JJU1RJSkFOCitKRUzEjEnEhiBMSlVCScWgQQorSkVMxIxJxIYgTUlMT1ZBTgorSkVMxIxJxIYgTUlMT1ZBTgorSkVMxIxJxIYgUEFWTEUKK0pFTMSMScSGIFpPUkEKK0pFTEHEjEEgxJBVUk8KK0pFTEHEjEEgxJBVUk8KK0pFTEHEjEEgQlJBTktPCitKRUxBxIxBIERFU0EKK0pFTEHEjEEgS09TVEEKK0pFTEHEjEEgTUlIQUpMTworSkVMQcSMQSBNSUxFTktPCitKRUxBxIxBIFJVxb1BCitKRUxBxIxBIFNJTU8gRFIgSU5HCitKRUxBxIxBIFNMT0JPREFOCitKRUxBxIxBIFNUQU5LTworSkVMQcSMQSBTVE9KQU4KK0pFTEHEjEnEhiBCT8W9SURBUgorSkVMQcSMScSGIEJSQU5LTworSkVMQcSMScSGIERBTklMTworSkVMQcSMScSGIERVxaBBTgorSkVMQcSMScSGIEpVTEnFoEtBCitKRUxBxIxJxIYgTEpVQk9NSVIKK0pFTEHEjEnEhiBNSUhBSkxPCitKRUxBxIxJxIYgTUlMRU5LTworSkVMQcSMScSGIE1JUk9TTEFWCitKRUxBxIxJxIYgUkFUT01JUgorSkVMQcSMScSGIFNMT0JPREFOCitKRUxBxIxJxIYgWk9SS0EKK0pFTEFWScSGIMW9RUxKS08KK0pFTEFWScSGIERSQUdPCitKRUxFxIwgSUxJSkEKK0pFTEXEjEFOSU4gxJBPUsSQRQorSkVMRcSMQU5JTiBNQVJJSkEKK0pFTEXEjEnEhiBKT1ZBTgorSkVMRU7EjEnEhiBGUkFOSkEKK0pFTEVOScSGIMW9SVZBTgorSkVMRU5JxIYgTUlMQU4KK0pFTEVOScSGIFBBTlRBCitKRUxFTknEhiBQQVZMRQorSkVMRU5JxIYgUkFEQQorSkVMRU5JxIYgU0xPQk9EQU4KK0pFTEVOScSGIFZBU0lMSUpFCitKRUxFTktPVknEhiBBTEVLU0FOREFSCitKRUxFTktPVknEhiBHUk9aREEKK0pFTEVOS09WScSGIFZMQURJU0xBVgorSkVMRVNJxIYgQU5HRUxBIFBST0ZFU09SCitKRUxJxIxJxIYgxb1JVktPCitKRUxJxIxJxIYgxJBVUk8KK0pFTEnEjEnEhiBCRUFUQQorSkVMScSMScSGIEJSQU5LTworSkVMScSMScSGIERVxaBBTgorSkVMScSMScSGIEpFTEVOQQorSkVMScSMScSGIEpPVk8KK0pFTEnEjEnEhiBMSlVCSUNBCitKRUxJxIxJxIYgTUFSSUpBCitKRUxJxIxJxIYgTUlMQU4KK0pFTEnEjEnEhiBNSUxFCitKRUxJxIxJxIYgTUlSS08KK0pFTEnEjEnEhiBQRVRBUgorSkVMScSMScSGIFBFVEFSCitKRUxJxIxJxIYgUk9TQQorSkVMScSMScSGIFZJRAorSkVMScSGIMW9SVZLTworSkVMScSGIMW9SVZLTworSkVMScSGIMSQT1LEkEUKK0pFTEnEhiDEkE9SxJBFCitKRUxJxIYgQcSGSU0KK0pFTEnEhiBBTsSQQQorSkVMScSGIEFOVEUKK0pFTEnEhiBCVURJTUlSCitKRUxJxIYgRFJBR0FOCitKRUxJxIYgRFJBR1VUSU4KK0pFTEnEhiBEVcWgQU4KK0pFTEnEhiBFTUlMSUpBCitKRUxJxIYgRVNURVJBCitKRUxJxIYgR09SREFOQQorSkVMScSGIElWQU5LQQorSkVMScSGIElWSUNBCitKRUxJxIYgSkFHT0RJTktBCitKRUxJxIYgSkFOSkEKK0pFTEnEhiBKRUxFTkEKK0pFTEnEhiBKT1ZBTgorSkVMScSGIExBWkFSCitKRUxJxIYgTEFaQVIKK0pFTEnEhiBMSlVCSUNBCitKRUxJxIYgTEpVQklOS0EKK0pFTEnEhiBMVUtBCitKRUxJxIYgTUFSSUNBCitKRUxJxIYgTUFSSU5BCitKRUxJxIYtTUFUScSGIE1BUklKQQorSkVMScSGIE1JTEFOCitKRUxJxIYgTUlMQU4KK0pFTEnEhiBNSUxFTkEKK0pFTEnEhiBNSUxFTktPCitKRUxJxIYgTUlMS0EKK0pFTEnEhiBNSU9EUkFHCitKRUxJxIYgTUlPRFJBRworSkVMScSGIE1JUkpBTkEKK0pFTEnEhiBNSVRBCitKRUxJxIYgTU9NSVIKK0pFTEnEhiBOQURBCitKRUxJxIYgTkVERUxKS08KK0pFTEnEhiBQQVZMRQorSkVMScSGIFBSRURSQUcKK0pFTEnEhiBQUkVEUkFHCitKRUxJxIYgUkFERU5LTworSkVMScSGIFJPU0EKK0pFTEnEhiBTQVZBCitKRUxJxIYgU0lNQQorSkVMScSGIFNMQVZJQ0EKK0pFTEnEhiBTVEFOSU1JUgorSkVMScSGIFNURVZBTgorSkVMScSGIFNURVZBCitKRUxJxIYgU1RFVkEKK0pFTEnEhiBTVElQRQorSkVMScSGIFNWRVRJU0xBViBESVBMIElORworSkVMScSGIFNWRVRPWkFSCitKRUxJxIYgVE9NQQorSkVMScSGIFRPTUlTTEFWCitKRUxJxIYgVkFTQQorSkVMScSGIFZBU08KK0pFTEnEhiBWSUtUT1JJSkEKK0pFTElDS0kgU0lNRVVOCitKRUxJTiBKT1ZBTgorSkVMSU4gUkFETUlMQQorSkVMSU7EjEnEhiBEVUpPCitKRUxJTkVLIFNURVZBTgorSkVMSVNBVkFDIEdPUkRBTgorSkVMSVNBVkFDIE1JTE/FoAorSkVMSVNBVkFDIE1PTUlSCitKRUxLScSGIEpPVkFOCitKRUxLScSGIExBWkFSCitKRUxLScSGIE9MSVZFUkEKK0pFTEtJxIYgVkxBRElNSVIKK0pFTE9WQUMgxb1BUktPCitKRUxPVkFDIMW9QVJLTworSkVMT1ZBQyDEkE9SxJBFCitKRUxPVkFDIMSQT1LEkEUKK0pFTE9WQUMgxJBVUk8KK0pFTE9WQUMgQklTRVJLQQorSkVMT1ZBQyBCUkFOSVNMQVYKK0pFTE9WQUMgQlJBTktBCitKRUxPVkFDIEJSQU5LQQorSkVMT1ZBQyBCUkFOS08KK0pFTE9WQUMgRFJBR0FOCitKRUxPVkFDIERSQUdBTgorSkVMT1ZBQyBEVcWgQU4KK0pFTE9WQUMgSVpBQkVMQQorSkVMT1ZBQyBKT1ZBTgorSkVMT1ZBQyBNSUxBTgorSkVMT1ZBQyBNSUxJQ0EKK0pFTE9WQUMgTUlST1NMQVYKK0pFTE9WQUMgTUlST1NMQVYKK0pFTE9WQUMgTkFEQQorSkVMT1ZBQyBOSUtPTEEKK0pFTE9WQUMgUkFET0pLQQorSkVMT1ZBQyBSQURPSktBCitKRUxPVkFDIFJBRE9NSVIgRFIgTEVLQVIKK0pFTE9WQUMgUlXFvUlDQQorSkVMT1ZBQyBTTE9CT0RBTgorSkVMT1ZBQyBTVEVWQU4KK0pFTE9WQUMgU1RPSkFOCitKRUxPVkFDIFRVR09NSVIKK0pFTE9WQUMgVkVMSU1JUgorSkVMT1ZBQyBWTEFEQQorSkVMT1ZBQyBWVUpJQ0EKK0pFTE9WScSGIE1JTEFOS0EKK0pFTFXFoEnEhiBHT1JEQU5BCitKRUxVxaBJxIYgTEVOS0EKK0pFTFXFoEnEhiBNQVRJSkUKK0pFTcSMIEJSQU5JU0xBVgorSkVNUknEhiBKRUxBCitKRU5FQ0tPViBSQURNSUxBCitKRU5FQ0tPViBTQcWgQQorSkVORUkgQU5EUkHFoAorSkVORUkgRVVHRU4KK0pFTkVJIExBSk/FoAorSkVORUkgTUlPRFJBRworSkVORUkgUlXFvUEKK0pFTkVJIFNURVZBTgorSkVORUkgVElCT1IKK0pFTkVWIEJMQUdPSgorSkVQVVJTS0kgTkVOQUQKK0pFUsSMScSGIEZSQU5KTworSkVSQU7EjEUgREFOSUNBCitKRVJBTlQgQU5EUklKQQorSkVSQU5UIFBBVEnEhiBWRVJBIERSCitKRVJBTlQgUEVUQVIKK0pFUkFVxaBFSyBGUkFOSk8KK0pFUkFVxaBFSyBJVklDQQorSkVSQknEhiBEUkFHSUNBCitKRVJFQklOxaBFSyBBTkEKK0pFUkVCSU7FoEVLIFNMQVZLTworSkVSRUxFIEZSQU5DScWgS0EKK0pFUkVNRU5LTyBBTEVLU0FORFJBCitKRVJFTUnEhiDEkE9LQQorSkVSRU1JxIYgxJBPUsSQRQorSkVSRU1JxIYgQUxFS1NBTkRBUgorSkVSRU1JxIYtQkxBR09KRVZJxIYgVkVSSUNBCitKRVJFTUnEhiBCTEFHT0pFCitKRVJFTUnEhiBESU1JVFJJSkUgRFIgTEVLQVIKK0pFUkVNScSGIERSQUdPU0xBVgorSkVSRU1JxIYgRFXFoEFOS0EKK0pFUkVNScSGIEpBU05BCitKRVJFTUnEhiBKRUxFTkEKK0pFUkVNScSGIEpPVkFOCitKRVJFTUnEhiBKT1ZBTgorSkVSRU1JxIYgTEFaQVIKK0pFUkVNScSGIExKSUxKQU5BCitKRVJFTUnEhiBNRUxBTklKQQorSkVSRU1JxIYgTUlMRVZBCitKRVJFTUnEhiBNSVJBCitKRVJFTUnEhiBNSVJPU0xBVgorSkVSRU1JxIYgTkFERcW9REEKK0pFUkVNScSGIE5FTkFECitKRVJFTUnEhiBPTElWRVJBCitKRVJFTUnEhiBQQVZMRQorSkVSRU1JxIYgUEFWTEUKK0pFUkVNScSGIFJBREUKK0pFUkVNScSGIFNUQU5BCitKRVJFTUnEhiBTVEFOS08KK0pFUkVNScSGIFNUQU5PSkUKK0pFUkVNScSGIFNURVZBTgorSkVSRU1JxIYgU1RFVkFOCitKRVJFTUnEhiBWQVNJTElKRQorSkVSRU1JxIYgVkVSQQorSkVSRU1JxIYgVk9KSVNMQVYKK0pFUkVNScSGIFpPUkEKK0pFUkVNSUpJxIYgVklUT01JUgorSkVSRU5JxIYgTUxBREVOCitKRVJHScSGIE1JTElDQQorSkVSR0nEhiBNSU9EUkFHCitKRVJHScSGIE1JUktPCitKRVJHScSGIFBFVEFSCitKRVJHScSGIFNMQVZJQ0EKK0pFUkdJxIYgU1BBU09KRQorSkVSScSGIERVxaBBTgorSkVSScSGIEtPVklOS0EKK0pFUknEhiBMSlVCScWgQQorSkVSScSGIE1JTElDQQorSkVSScSGIFBFVEFSCitKRVJJTknEhiBCUkFOS08KK0pFUklOScSGLUtVUklOIEVESVQKK0pFUklOScSGIE1JT0RSQUcKK0pFUklOScSGIFZPSklTTEFWCitKRVJJTktJxIYgRFJBR0FOCitKRVJJTktJxIYgSVZBTgorSkVSSU5LScSGIFBBVkxFCitKRVJLQU4gQU5URQorSkVSS0nEhiBTVkVUT1pBUgorSkVSS09WIMW9QVJLTworSkVSS09WIEFORFJJSkEKK0pFUktPViBCUkFOSU1JUgorSkVSS09WIEpPVkFOCitKRVJLT1YgSk9WSUNBCitKRVJLT1YgSk9WSUNBCitKRVJLT1YgTUlSSkFOQQorSkVSS09WIE1JUkpBTkEKK0pFUktPViBQQVZMRQorSkVSS09WIFNNSUxKQQorSkVSS09WIFNORcW9QU5BCitKRVJLT1YgVkVMSktPCitKRVJLT1YgVk9KSVNMQVYKK0pFUktPVknEhiDEkE9SxJBFCitKRVJLT1ZJxIYgQUxFS1NBTkRBUgorSkVSS09WScSGIERNSVRBUgorSkVSS09WScSGIEZSQU5KTworSkVSS09WScSGIEpPVkFOCitKRVJLT1ZJxIYgSk9WQU4KK0pFUktPVknEhiBKT1ZBTgorSkVSS09WScSGIEpPVkFOCitKRVJLT1ZJxIYgS0FUSUNBCitKRVJLT1ZJxIYgS0FUSUNBCitKRVJLT1ZJxIYgTEVOS0EKK0pFUktPVknEhiBNSUxBTgorSkVSS09WScSGIE1JTE/FoAorSkVSS09WScSGIE5BREXFvURBCitKRVJLT1ZJxIYgTklLT0xBCitKRVJLT1ZJxIYgUFJFRFJBRworSkVSS09WScSGIFJBSktPCitKRVJLT1ZJxIYgU0lNTworSkVSS09WScSGIFNJTknFoEEKK0pFUktPVknEhiBTT0ZJSkEKK0pFUktPVknEhiBTVEVWQU4KK0pFUktPVknEhiBTVE9KQU4KK0pFUktPVknEhiBTVkVUS08KK0pFUktPVknEhiBUQURJSkEKK0pFUktPVknEhiBWQUxFUklKQQorSkVSS09WScSGIFZBU0EKK0pFUktPVknEhiBWTEFESU1JUiBNUgorSkVSS09WScSGIFZMQURJTUlSCitKRVJLT1ZJxIYgVkxBRE8KK0pFUktPVknEhiBWVUtPU0FWQQorSkVSS09WScSGIFpPUkFOCitKRVJPU0lNT1ZJxIYgQlJBTklNSVIKK0pFUk9USUpFVknEhiBEQVJJTktBCitKRVNJxIYgTUlMRU5BCitKRVNUUk9OScSGIFRPTUlTTEFWCitKRVNUUk9WScSGIElSRU5BCitKRVbEkEVOScSGIFJVxb1JQ0EKK0pFVsSQRU5JxIYgVkxBREEKK0pFVsSQT1ZJxIYgTUVMQU5JSkEgRFIKK0pFVsSQT1ZJxIYgTUVMQU5JSkEKK0pFVknEhiDEjEVETworSkVWScSGIEJSQU5LTworSkVWScSGIE1JTEFOCitKRVZJxIYgTUlMSVZPSgorSkVWScSGIE1JT0RSQUcKK0pFVknEhiBNT03EjElMTworSkVWScSGIE5BREEKK0pFVknEhiBOSUtPTEEKK0pFVknEhiBUT0RPUgorSkVWUkVNT1Ygxb1JVkEKK0pFVlJFTU9WIMSQT1LEkEUKK0pFVlJFTU9WIE1JTEFOCitKRVZSRU1PViBNSVJKQU5BCitKRVZSRU1PVknEhiBET0JSSUxBCitKRVZSRU1PVknEhiBMSlVCSU5LQQorSkVWUkVNT1ZJxIYgTUlMSVZPSgorSkVWUkVNT1ZJxIYgTUlMT1JBRAorSkVWUkVNT1ZJxIYgTUlPRFJBRworSkVWUkVNT1ZJxIYgUkFEScWgQQorSkVWUkVNT1ZJxIYgU0lOScWgQQorSkVWUkVNT1ZJxIYgU09GSUpBCitKRVZSRU1PVknEhiBTVEVWQU4KK0pFVlJFTU9WScSGIFZMQURBTgorSkVWUknEhiDFvUlWQU4KK0pFVlJJxIYgxJBPUsSQRQorSkVWUknEhiDEkE9SxJBFCitKRVZSScSGIEJPxb1JREFSCitKRVZSScSGIEJPR09MSlVCCitKRVZSScSGIEJSQU5LTworSkVWUknEhiBCUkFUSVNMQVYKK0pFVlJJxIYgREFOSUNBCitKRVZSScSGIERFU0lNSVIKK0pFVlJJxIYgRFJBR1VUSU4KK0pFVlJJxIYgRVZJQ0EKK0pFVlJJxIYgR0lHQQorSkVWUknEhiBHT1JBTgorSkVWUknEhiBKRUxBCitKRVZSScSGIEpPVkFOCitKRVZSScSGIEtSSVNUSU5BCitKRVZSScSGIExKVUJJQ0EKK0pFVlJJxIYgTUFSSUpBCitKRVZSScSGIE1JTEFOCitKRVZSScSGIE1JTEVOS08KK0pFVlJJxIYgTUlMRQorSkVWUknEhiBNSUxPxaAKK0pFVlJJxIYgTUlST1NMQVYKK0pFVlJJxIYgUkFEScWgQQorSkVWUknEhiBSQURJVk9KRQorSkVWUknEhiBSQURJVk9KCitKRVZSScSGIFJBRElWT0oKK0pFVlJJxIYgUkFET1NMQVYKK0pFVlJJxIYgUkFOSVNBVgorSkVWUknEhiBTTEFWS08KK0pFVlJJxIYgU0xBVktPCitKRVZSScSGIFNMQVZLTworSkVWUknEhiBTTEFWS08KK0pFVlJJxIYgU0xPQk9EQU4KK0pFVlJJxIYgU1JCT0xKVUIKK0pFVlJJxIYgU1RBTUVOS08KK0pFVlJJxIYgU1RFVkFOIERSIElORworSkVWUknEhiBTVEVWQU4KK0pFVlJJxIYgWkxBVE9NSVIKK0pFVlRPVknEhiBBTEVLU0FOREFSCitKRVZUT1ZJxIYgQUxFS1NBTkRSQQorSkVWVE9WScSGIEpPUkRBTgorSkVWVE9WScSGIE1JTEFOCitKRVZUT1ZJxIYgTUlSS08KK0pFVlRPVknEhiBSQURJVk9KRQorSkVWVE9WScSGIFNUQU5JU0xBVkEKK0pFVlRPVknEhiBWT0pLQU4KK0pFVlRPVknEhiBWVUtPVEEKK0pFVlRPVknEhiBWVUxFCitKRVpEScSGIERPQlJJTEEKK0pFWkRJxIYgRFJBR0FOCitKRVpEScSGIEpPVkFOCitKRVpEScSGIExKVUJPTUlSCitKRVpEScSGIE1PTcSMSUxPCitKRVpEScSGIFNBVkEKK0pFWkRJxIYgU1BJUkEKK0pFWkRJxIYgU1RFVktBCitKRVpEScSGIFNUT0pBTiBESVBMIElORworSkVaRElNSVJPVknEhiBBQ0EKK0pFWkRJTUlST1ZJxIYgRFJBR0FOCitKRVpESU1JUk9WScSGIERSQUdJQ0EKK0pFWkRJTUlST1ZJxIYgTEFaQVIKK0pFWkRJTUlST1ZJxIYgTUlSSkFOQQorSkVaRElNSVJPVknEhiBTVE9KQU5LQQorSkVaRElNSVJPVknEhiBaT1JJQ0EKK0pFWkVSS0nEhiBPTEdJQ0EKK0pJUk9UQS1HQVpJQkFSScSGIERBTklFTEEKK0pPxIxJxIYgTU9NxIxJTE8KK0pPxIxJxIYgU1RBTk9KTE8KK0pPxIxJTiDFvUlLQQorSk/EjEtPVknEhiBKT1ZBTgorSk/FoEFOT1YgQUxFS1NBTkRSQQorSk/FoEFOT1YgTEFaQVIKK0pPxaBBTk9WIExKVUJJQ0EKK0pPxaBBTk9WIE1MQURFTgorSk/FoEVWU0tJIMSQT1LEkElKQQorSk/FoEnEhiDEkFVSQQorSk/FoEnEhiBCTEHFvU8KK0pPxaBJxIYgRFJBR09TTEFWCitKT8WgScSGIE1JTEFOCitKT8WgScSGIE1JTElWT0oKK0pPxaBJxIYgTUlMT1JBRAorSk/FoEnEhiBQRVRBUgorSk/FvUEgS0FUQUxJTgorSk/FvUnEhiDEkFVSQQorSk9BTk9WScSGIENWRVRLTyBESVBMIElORworSk9BTk9WScSGIEVSxb1FQkVUCitKT0FOT1ZJxIYgUkFNT05BCitKT0NJxIYgxb1JVk9KSU4gRElQTCBJTkcKK0pPQ0nEhiDFvUlWT1JBRCBEUgorSk9DScSGIMSQT1LEkEUKK0pPQ0nEhiBBTEVLU0FOREFSCitKT0NJxIYgQU7EkEVMS0EKK0pPQ0nEhiBBTkdFTElOQQorSk9DScSGIEFOS0lDQQorSk9DScSGIEJPUklTTEFWCitKT0NJxIYgQlJBTklTTEFWIERSCitKT0NJxIYgQlJBTktBCitKT0NJxIYgRFJBR0lDQQorSk9DScSGIERSQUdVVElOCitKT0NJxIYgRklMSVAKK0pPQ0nEhiBIUklTVElOQQorSk9DScSGIElMSUpBCitKT0NJxIYgSVNJRE9SCitKT0NJxIYgSkVMSVNBVkVUQQorSk9DScSGIEpPVkFOS0EKK0pPQ0nEhiBMSklMSkFOQQorSk9DScSGIE1BUklKQQorSk9DScSGIE1BUktPCitKT0NJxIYgTUFSS08KK0pPQ0nEhiBNQVJUQQorSk9DScSGIE1JTEFESU5LQQorSk9DScSGIE1JTEFOCitKT0NJxIYgTUlMQU4KK0pPQ0nEhiBNSUxPxaAKK0pPQ0nEhiBNSUxPxaAKK0pPQ0nEhiBNSVJLTworSk9DScSGIE1MQURFTgorSk9DScSGIE5FTkFECitKT0NJxIYgUEVUQVIKK0pPQ0nEhiBQRVRBUgorSk9DScSGIFBFVEFSCitKT0NJxIYgUkFESVZPSgorSk9DScSGIFJBRE1JTEEKK0pPQ0nEhiBSQURPU0xBVgorSk9DScSGIFJPRE9MSlVCCitKT0NJxIYgU0FWQQorSk9DScSGIFNMT0JPREFOCitKT0NJxIYgU01JTEpBCitKT0NJxIYgU1RFVkFOIERJUEwgSU5HCitKT0NJxIYgU1RFVkFOCitKT0NJxIYgU1RFVkFOCitKT0NJxIYgVkFMRVJJSkEKK0pPQ0nEhiBWRVJBCitKT0NJxIYgWk9SQU4KK0pPQ0lOIEJSQU5LTworSk9DSU4gUEVSU0lEQQorSk9DSU4gWkxBVE9KRQorSk9DS09WIERBTklDQQorSk9DS09WIE1BTk9KTE8KK0pPQ0tPViBNSUxBTktBCitKT0NLT1YgTUlMT1NBVgorSk9DS09WIE1JUk9TTEFWQQorSk9DS09WIE5JS09MQQorSk9DS09WIE5JS09MQQorSk9DS09WIFJBRE9WQU4KK0pPQ0tPVknEhiDEkE9SxJBFIERSCitKT0NLT1ZJxIYgSk9WQU5LQQorSk9DS09WScSGIE9CUkFECitKT0NPVknEhiDFvUlWT01JUgorSk9DT1ZJxIYgTUlPRFJBRworSk9DT1ZJxIYgUkFERU5LTworSk9DT1ZJxIYgWk9SSUNBCitKT0NVTE9WIEJSQU5LQQorSk9DVUxPViBNSUhBTEoKK0pPREFMIFJPxb1BCitKT0hJTVNUQUwgQUdBVEEKK0pPSknEhiDEkE9SxJBFCitKT0pJxIYgQUxFS1NBTkRBUgorSk9KScSGIEJPxb1JREFSCitKT0pJxIYgRE9JTkEKK0pPSknEhiBEUkFHSQorSk9KScSGIERSQUdPU0xBViBEUgorSk9KScSGIERVxaBBTgorSk9KScSGIEdFT1JHSUpFCitKT0pJxIYgSVZBTktBCitKT0pJxIYgSVZBTktBCitKT0pJxIYgSkVMQQorSk9KScSGIEpFTEVOQQorSk9KScSGIExKVUJJQ0EKK0pPSknEhiBNScSGS08KK0pPSknEhiBNSUxFVkEKK0pPSknEhiBNSUxPxaAKK0pPSknEhiBNSU9EUkFHCitKT0pJxIYgTUlSS08KK0pPSknEhiBNSVJLTworSk9KScSGIE1JUk9MSlVCCitKT0pJxIYgTUlST1NMQVYKK0pPSknEhiBPTEdBCitKT0pJxIYgU0FWQQorSk9KScSGIFNJTU8KK0pPSknEhiBTVEFOQQorSk9KScSGIFNURVZBTgorSk9KScSGIFNWRVRPWkFSCitKT0pJxIYgU1ZFVE8KK0pPSklOIEJBUkJBUkEKK0pPSklOIERPQlJPU0FWCitKT0pJTiBTSU5JxaBBCitKT0pLScSGIMSQT1LEkEUKK0pPSktJxIYgxJBPUsSQRQorSk9KS0nEhiDEkE9SxJBFCitKT0pLScSGIEFMRUtTQU5EQVIKK0pPSktJxIYgQk9SSVNMQVZBCitKT0pLScSGIEJSQU5JU0xBVgorSk9KS0nEhiBEQU5JQ0EKK0pPSktJxIYgRElOQQorSk9KS0nEhiBEVcWgQU4KK0pPSktJxIYgRFXFoEtPCitKT0pLScSGIEpPVklDQQorSk9KS0nEhiBLQVRJQ0EKK0pPSktJxIYgS0FUSUNBCitKT0pLScSGIExKVUJPTUlSCitKT0pLScSGIE1BUklDQQorSk9KS0nEhiBNQVJJSkEKK0pPSktJxIYgTUFSSUpBCitKT0pLScSGIE1JTEFESU4KK0pPSktJxIYgTUlMRU5BCitKT0pLScSGIE1JTEVOS08KK0pPSktJxIYgTUlMSUNBCitKT0pLScSGIE1JTElDQQorSk9KS0nEhiBNSU9EUkFHCitKT0pLScSGIE1JUkpBTkEgRFIKK0pPSktJxIYgTUlST1NMQVYKK0pPSktJxIYgTkFEQQorSk9KS0nEhiBPTEdBCitKT0pLScSGIFBBSkEKK0pPSktJxIYtUE9MRVRUTyBaT1JBCitKT0pLScSGIFJBRElWT0oKK0pPSktJxIYgUkFESVZPSgorSk9KS0nEhiBSQURPSktBCitKT0pLScSGIFJBRE9TTEFWCitKT0pLScSGIFNMQVZLTworSk9KS0nEhiBTTUlMSktBCitKT0pLScSGIFNORcW9QU5BCitKT0pLScSGIFNPRklKQQorSk9KS0nEhiBTT0tPCitKT0pLScSGIFNUQU5LTworSk9KS0nEhiBVUk/FoAorSk9KS0nEhiBWT0pJU0xBVgorSk9KS0nEhiBaRFJBVktPCitKT0tBIEtBVEFSSU5BCitKT0tBIFZBU08KK0pPS0FOScSGIElMSUpBCitKT0tBTk9WScSGIEJMQUdPSkUKK0pPS0FOT1ZJxIYgQk9TSUxKS0EKK0pPS0FOT1ZJxIYgQlJBTktPCitKT0tBTk9WScSGIEJSQU5LTworSk9LQU5PVknEhiBERVNJTUlSCitKT0tBTk9WScSGIE1JTE9SQUQKK0pPS0FOT1ZJxIYgUkFEQQorSk9LQU5PVknEhiBSQURPTUlSCitKT0tBTk9WScSGIFNJTknFoEEKK0pPS0FOT1ZJxIYgVE9ET1IKK0pPS0FOT1ZJxIYgVE9NSVNMQVYKK0pPS0FOT1ZJxIYgVkxBRElNSVIgRFIKK0pPS0nFoEnEhiBCUkFOS08KK0pPS0nFoEnEhiBTUEFTT0pFCitKT0tJxIYgxb1BUktPCitKT0tJxIYgxb1BUktPCitKT0tJxIYgxb1JVkFOCitKT0tJxIYgxJBPUsSQRQorSk9LScSGIMSQVVJBxJAKK0pPS0nEhiBCT8W9SURBUgorSk9LScSGIEJPUklTTEFWCitKT0tJxIYgQlJBTklTTEFWCitKT0tJxIYgQlVESU1JUgorSk9LScSGIENWSUpFVElOCitKT0tJxIYgREFORQorSk9LScSGIERPQlJJTEEKK0pPS0nEhiBEUkFHQU4KK0pPS0nEhiBEUkFHQU4KK0pPS0nEhiBEUkFHQU4KK0pPS0nEhiBEUkFHSUNBCitKT0tJxIYgRFJBR0lOSkEKK0pPS0nEhiBEVcWgQU5LQQorSk9LScSGIERVxaBBTgorSk9LScSGIERVxaBBTgorSk9LScSGIERVxaBBTgorSk9LScSGIERVxaBBTgorSk9LScSGIERVxaBBTgorSk9LScSGIERVxaBBTgorSk9LScSGIElHTkpBVAorSk9LScSGIEpFTEVOQQorSk9LScSGIEpPS0EKK0pPS0nEhiBLUlNUQU4KK0pPS0nEhiBLU0VOSUpBCitKT0tJxIYgTEFLScSGCitKT0tJxIYgTEFaTworSk9LScSGIExKSUxKQU5BCitKT0tJxIYgTEpVQklDQQorSk9LScSGIExKVUJPCitKT0tJxIYgTFVLQQorSk9LScSGIE1BUkEKK0pPS0nEhiBNQVJJSkEKK0pPS0nEhiBNQVJLTworSk9LScSGIE1JSEFKTE8KK0pPS0nEhiBNSUxBTgorSk9LScSGIE1JTEFOCitKT0tJxIYgTUlMQU4KK0pPS0nEhiBNSUxBTgorSk9LScSGIE1JTEVOS08KK0pPS0nEhiBNSUxFVkEKK0pPS0nEhiBNSUxJSkEKK0pPS0nEhiBNSUxJU0FWCitKT0tJxIYgTUlMT1JBRAorSk9LScSGIE1JTE9WQU4KK0pPS0nEhiBNSVJLTworSk9LScSGIE1JUktPCitKT0tJxIYgTUlSS08KK0pPS0nEhiBNSVJLTworSk9LScSGIE1JUk9TTEFWCitKT0tJxIYgTkFEQQorSk9LScSGIE5BREEKK0pPS0nEhiBOQURJQ0EKK0pPS0nEhiBORU5BRAorSk9LScSGIE5JS09MQQorSk9LScSGIE5JS09MQQorSk9LScSGIFBFVEFSCitKT0tJxIYgUkFESVZPSkUKK0pPS0nEhiBSQURPSUNBCitKT0tJxIYgUklTVEEKK0pPS0nEhiBTQcWgQQorSk9LScSGIFNJTUEKK0pPS0nEhiBTSU5JxaBBCitKT0tJxIYgU0xBVktPCitKT0tJxIYgU0xBVktPCitKT0tJxIYgU0xBVktPCitKT0tJxIYgU05Fxb1BTkEKK0pPS0nEhiBTVEVWQU4gRElQTCBJTkcKK0pPS0nEhiBTVEVWQU4KK0pPS0nEhiBTVkVUSVNMQVYKK0pPS0nEhiBTVkVUT1pBUgorSk9LScSGIFNWRVRPWkFSCitKT0tJxIYgVE9NSVNMQVYKK0pPS0nEhiBWRUxKS08KK0pPS0nEhiBWRVJBCitKT0tJxIYgVkxBRE8KK0pPS0nEhiBWT0pJU0xBVgorSk9LScSGIFZPSklTTEFWCitKT0tJxIYgVlVKQURJTgorSk9LScSGIFZVS0FESU4KK0pPS0nEhiBWVUtPCitKT0tJxIYgWkxBVEEKK0pPS0nEhiBaT1JLQQorSk9LTUFOT1ZJxIYgU0FWRVRBCitKT0tPVknEhiDFvUlWS08KK0pPS09WScSGIMSQVVLEkElOQQorSk9LT1ZJxIYgRE9CUklWT0pFCitKT0tPVknEhi1NSUtJxIYgTUlSSkFOQQorSk9LT1ZJxIYgTUlMS0EKK0pPS09WScSGIFJBRE9TQVYKK0pPS09WScSGIFZPSklTTEFWCitKT0tTScSGIERSQUdJxaBBCitKT0tTScSGIEdPSktPCitKT0tTSU1PVsSGIE5FQk9KxaBBCitKT0tTSU1PVknEhiDFvUFSS08KK0pPS1NJTU9WScSGIERBUktPCitKT0tTSU1PVknEhiBEVcWgS08KK0pPS1NJTU9WScSGIEdPTFVCQU5LQQorSk9LU0lNT1ZJxIYgSk9WQU4gRElQTCBJTkcKK0pPS1NJTU9WScSGIExKVUJJQ0EKK0pPS1NJTU9WScSGIExKVUJJU0FWIERSCitKT0tTSU1PVknEhiBMSlVCSVNBVgorSk9LU0lNT1ZJxIYgTU9NxIxJTE8KK0pPS1NJTU9WScSGIE5BREEKK0pPS1NJTU9WScSGIFBBVkxFCitKT0tTSU1PVknEhiBQRVRBUgorSk9LU0lNT1ZJxIYgUkFET01JUgorSk9LU0lNT1ZJxIYgU0lOScWgQQorSk9LU0lNT1ZJxIYgU1RFVkFOCitKT0tTSU1PVknEhiBWTEFESU1JUgorSk9LU0lNT1ZJxIYgWkxBVE9NSVIKK0pPS1NJTU9WScSGIFpPUkFOCitKT0tTT1ZJxIYgRFJBR0nFoEEKK0pPS1NPVknEhiBTTkXFvUFOQQorSk9MREnEhiBNQVJBCitKT0xEScSGIE1JT0RSQUcKK0pPTEnEhiDFvUlWQU4KK0pPTEnEhiDFvUlWT0pJTgorSk9MScSGIEFOR0VMSU5BCitKT0xJxIYgREFOSUxPCitKT0xJxIYgSkFEUkFOS0EKK0pPTEnEhiBKT1ZBTgorSk9MScSGIEtPTlNUQU5USU4KK0pPTEnEhiBLT1NUQQorSk9MScSGIE1JUkpBTkEKK0pPTEnEhiBORUJPSsWgQQorSk9MScSGIFBFVEFSCitKT0xJxIYgU0xPQk9EQU4KK0pPTEnEhiBVUk/FoAorSk9MScSGIFZBU0EKK0pPTE9WScSGIE1JTE9WQU4KK0pPTsSMScSGIE1BUkEKK0pPTkHFoCBEVcWgQU4KK0pPTkHFoCBMQVNMTworSk9OQcWgIE5JS09MQQorSk9OScSGIEJPxaBLTworSk9OScSGIERSQUdBTgorSk9OSkVWIE1JTElWT0oKK0pPTkpFViBTTEFWT0xKVUIKK0pPTkpJxIYgU0FWTworSk9OT1ZJxIYgRFXFoEFOCitKT05PVknEhiBQRVRBUgorSk9OVE9WScSGIEFMRUtTQQorSk9OVE9WScSGLUJJS0nEhiBNSVJKQU5BCitKT05UT1ZJxIYgUlVET0xGCitKT05VWk9WScSGIFZMQURJTUlSCitKT1JEQcSMIEFOQQorSk9SREFOIEVSxb1FQkVUCitKT1JEQU5PViBLSVJJTAorSk9SREFOT1ZTS0kgU1RBTk9KS08KK0pPUkdBTk9WScSGIFNJTU8KK0pPUkdJxIYgxb1JVkFOQQorSk9SR0nEhiBEUkFHT01JUgorSk9SR09WQU5PVknEhiBKRUxJU0FWRVRBCitKT1JPVknEhiBCUkFOS08KK0pPUk9WScSGIFJBTktPCitKT1NFVlNLSSBTSU1FT04KK0pPU0nEhiBBTEVLU0FOREFSCitKT1NJxIYgRklMSVAKK0pPU0nEhiBJTElKQQorSk9TScSGIElWQU4KK0pPU0nEhiBLT1NBTkEKK0pPU0nEhiBMSlVCSU5LTworSk9TScSGIExKVUJJTktPCitKT1NJxIYgTEpVQk9NSVIKK0pPU0nEhiBNSUxFTktPCitKT1NJxIYgTUlSSkFOQQorSk9TScSGIE9CUkFECitKT1NJxIYgT0xHQQorSk9TScSGIFJBRElOS0EKK0pPU0nEhiBTUsSQQQorSk9TScSGIFNURVZBTgorSk9TScSGIFNURVZBTgorSk9TSUZJRElTIEtPU1RBCitKT1NJRk9WScSGIERJTUlUUklKRQorSk9TSUZPVknEhiBEUkFHScSGCitKT1NJRk9WScSGIExKVUJJQ0EKK0pPU0lGT1ZJxIYgT0xHQQorSk9TSU3EjEVWIFpWT05JTUlSCitKT1NJTU9WIEJPUklTTEFWCitKT1NJTU9WIERSQUdPU0xBVgorSk9TSU1PViBEVcWgQU4KK0pPU0lNT1YgR0xJR09SSUpFCitKT1NJTU9WIEpFTEVOQQorSk9TSU1PViBTVEVWQU4KK0pPU0lNT1YgVkFTSUxJSkUKK0pPU0lNT1YgVk9KTworSk9TSU1PVknEhiDFvUlWQQorSk9TSU1PVknEhiBCT1JJVk9KCitKT1NJTU9WScSGIEJPUklWT0oKK0pPU0lNT1ZJxIYgSlVMSUpBTkEKK0pPU0lNT1ZJxIYgTUFSS08KK0pPU0lNT1ZJxIYgTUlMSUNBCitKT1NJTU9WScSGIE5FTkFECitKT1NJTU9WScSGIFNJTknFoEEKK0pPU0lNT1ZJxIYgU1RFVkFOCitKT1NJTU9WScSGIFNURVZBTgorSk9TSU1PVknEhiBTVEVWS0EKK0pPU0lNT1ZJxIYgVEFUSkFOQQorSk9TSU1PVknEhiBWTEFESU1JUgorSk9TSU1PVknEhiBWTEFESU1JUgorSk9TSU1PVknEhiBWTEFESU1JUgorSk9TSU1PVknEhiBaREVOS0EKK0pPU0lNT1ZTS0kgQUxFS1NBTkRBUgorSk9TSU4gRFJBR0FOCitKT1NJTiBNQVJJSkEKK0pPU0lOIE1JTEUKK0pPU0lOIFJBRElDQQorSk9TSU4gUkFET1ZBTgorSk9TSU4gU0xPQk9EQU4KK0pPU0lQT1ZJxIYgQk9SSVNMQVYKK0pPU0lQT1ZJxIYgQk9STworSk9TSVBPVknEhiBEQU5JQ0EKK0pPU0lQT1ZJxIYgSVZJQ0EKK0pPU0lQT1ZJxIYgUEVUQVIKK0pPU0lQT1ZJxIYgU0xPQk9EQU4KK0pPU0lQT1ZJxIYgVkxBRElNSVIKK0pPVEFOT1ZJxIYgREFSSU5LQQorSk9UQU5PVknEhiBLT1JORUxJSkEKK0pPVEFOT1ZJxIYgTEpVQk9NSVIKK0pPVEFOT1ZJxIYgTUlMSVZPSgorSk9UQU5PVknEhiBORURFTEpLTworSk9UQU5PVknEhiBSQUpLTworSk9UQU5PVknEhiBTVEFOS08KK0pPVEFOT1ZJxIYgVE9NSVNMQVYKK0pPVEnEhiBNSVJPU0xBVgorSk9WxIxJxIYgRFXFoEtPCitKT1bEjEnEhiBTTEFWS08KK0pPVsSMScSGIFZMQURBTgorSk9WQcSMRVZJxIYgRE1JVEFSCitKT1ZBxaBFVknEhiBTTE9CT0RBTgorSk9WQU7EjEVWScSGIEJPU0lMSktBCitKT1ZBTsSMRVZJxIYgR09KS08KK0pPVkFOxIxFVknEhiBJTElKQQorSk9WQU7EjEVWScSGIEpFTElDQQorSk9WQU7EjEVWScSGIEpPVkFOCitKT1ZBTsSMRVZJxIYgSk9WQU4KK0pPVkFOxIxFVknEhiBLT1ZJTEpLQQorSk9WQU7EjEVWScSGIFNURVZBTgorSk9WQU7EjEVWScSGLVpFS0nEhiBOSUtPTEEKK0pPVkFOxIxFVknEhi1aRUtJxIYgTklLT0xBCitKT1ZBTsSMScSGIERSQUdJQ0EKK0pPVkFOxIxJxIYgTUVMQU5JSkEKK0pPVkFOxIxJxIYgTUlPRFJBRworSk9WQU7EjEnEhiBNSVJPU0xBVgorSk9WQU5DQUkgTUFSSUpBCitKT1ZBTkRJxIYgTUFOREEKK0pPVkFOREnEhiBNSUxPxaAKK0pPVkFORElOIE1JTEFOCitKT1ZBTknEhiDEkE9SxJBFCitKT1ZBTknEhiDEkFVSTworSk9WQU5JxIYgQk/FoEtPCitKT1ZBTknEhiBCT8WgS08KK0pPVkFOScSGIERPQlJJQ0EKK0pPVkFOScSGIERVxaBBTiBESVBMIElORworSk9WQU5JxIYgTUFSSUpBCitKT1ZBTknEhiBNSVJLTworSk9WQU5JxIYgTUxBREVOCitKT1ZBTknEhiBNT01JUgorSk9WQU5JxIYgT0xJVkVSQQorSk9WQU5JxIYgT0xJVkVSQQorSk9WQU5LSU4gQUxFS1NBTkRBUgorSk9WQU5LT1ZJxIYgUkFET1NMQVYKK0pPVkFOT1Ygxb1BUktPCitKT1ZBTk9WIMW9SVZBCitKT1ZBTk9WIEJJTEpBTkEKK0pPVkFOT1YgQk/FoEtPCitKT1ZBTk9WIEJPSkFOQQorSk9WQU5PViBCT1JJU0xBVgorSk9WQU5PViBCT1JJU0xBVgorSk9WQU5PViBCUkFOSVNMQVYKK0pPVkFOT1YgRFJBR0FOCitKT1ZBTk9WIERSQUdJQ0EKK0pPVkFOT1YgRFJBR0lOSkEKK0pPVkFOT1YgRFJBR09MSlVCCitKT1ZBTk9WIERSQUdPTUlSCitKT1ZBTk9WIERVxaBBTgorSk9WQU5PViBEVcWgQU4KK0pPVkFOT1YgRFXFoElDQQorSk9WQU5PViBJR05KQVQKK0pPVkFOT1YgSVNBCitKT1ZBTk9WIElWQU4KK0pPVkFOT1YgSkHFoEEKK0pPVkFOT1YgSkFTTkEKK0pPVkFOT1YgSkVMRU5BCitKT1ZBTk9WIEpPVkFOCitKT1ZBTk9WIEpPVkFOCitKT1ZBTk9WIEpPVklDQQorSk9WQU5PViBMQVpBUgorSk9WQU5PViBMQVpBUgorSk9WQU5PViBNRUxBTklKQQorSk9WQU5PViBNSUxBTgorSk9WQU5PViBNSUxBTgorSk9WQU5PViBNSUxBTgorSk9WQU5PViBNSUxJVk9KCitKT1ZBTk9WIE1JTE/FoAorSk9WQU5PViBNSVJKQU5BCitKT1ZBTk9WIE1MQURFTgorSk9WQU5PViBNT03EjElMTworSk9WQU5PViBQRVRBUgorSk9WQU5PViBSQURJVk9KCitKT1ZBTk9WIFNBVkEKK0pPVkFOT1YgU1BPTUVOS0EKK0pPVkFOT1YgU1RFVkFOS0EKK0pPVkFOT1YgU1RFVkFOCitKT1ZBTk9WIFNWRVRJU0xBVgorSk9WQU5PViBTVkVUSVNMQVYKK0pPVkFOT1YgU1ZFVE9aQVIKK0pPVkFOT1YgVE9ET1IKK0pPVkFOT1YgVE9NQQorSk9WQU5PViBWSURBCitKT1ZBTk9WIFZMQURJTUlSCitKT1ZBTk9WScSGIMSMRURBCitKT1ZBTk9WScSGIMSMRURPTUlSCitKT1ZBTk9WScSGIMSMRURPTUlSCitKT1ZBTk9WScSGIMSMRURPTUlSCitKT1ZBTk9WScSGIMSMRURPCitKT1ZBTk9WScSGIMW9SVZBRElOCitKT1ZBTk9WScSGIMW9SVZLQQorSk9WQU5PVknEhiDFvUlWS08KK0pPVkFOT1ZJxIYgxb1JVktPCitKT1ZBTk9WScSGIMW9SVZLTworSk9WQU5PVknEhiDFvUlWT0pJTgorSk9WQU5PVknEhiDFvUlWT0pJTgorSk9WQU5PVknEhiDFvUlWT0pJTgorSk9WQU5PVknEhiDFvUlWT1JBRAorSk9WQU5PVknEhiDFvUlWT1JBRAorSk9WQU5PVknEhiDFvUlWT1RBCitKT1ZBTk9WScSGIMSQRU7EkEkKK0pPVkFOT1ZJxIYgxJBPUsSQRQorSk9WQU5PVknEhiDEkE9SxJBFCitKT1ZBTk9WScSGIMSQT1LEkEUKK0pPVkFOT1ZJxIYgxJBPUsSQRQorSk9WQU5PVknEhiDEkE9SxJBFCitKT1ZBTk9WScSGIMSQT1LEkEUKK0pPVkFOT1ZJxIYgxJBPUsSQRQorSk9WQU5PVknEhiDEkE9SxJBFCitKT1ZBTk9WScSGIMSQT1LEkEUKK0pPVkFOT1ZJxIYgxJBPUsSQRQorSk9WQU5PVknEhiDEkE9SxJBFCitKT1ZBTk9WScSGIMSQT1LEkEUKK0pPVkFOT1ZJxIYgxJBVUsSQSU5BCitKT1ZBTk9WScSGIMSQVVLEkElOS0EKK0pPVkFOT1ZJxIYgxJBVUkEKK0pPVkFOT1ZJxIYgxJBVUk8KK0pPVkFOT1ZJxIYgQUxFS1NBTkRBUiBEUgorSk9WQU5PVknEhiBBTEVLU0FOREFSCitKT1ZBTk9WScSGIEFMRUtTQU5EQVIKK0pPVkFOT1ZJxIYgQUxFS1NBTkRBUgorSk9WQU5PVknEhiBBTEVLU0FOREFSCitKT1ZBTk9WScSGIEFMRUtTQU5EQVIKK0pPVkFOT1ZJxIYgQUxFS1NBTkRBUgorSk9WQU5PVknEhiBBTEVLU0FOREFSCitKT1ZBTk9WScSGIEFMRUtTQU5EQVIKK0pPVkFOT1ZJxIYgQUxFS1NBTkRBUgorSk9WQU5PVknEhiBBTEVLU0FORFJBCitKT1ZBTk9WScSGIEFMRUtTQQorSk9WQU5PVknEhiBBTsSQQQorSk9WQU5PVknEhiBBTsSQQQorSk9WQU5PVknEhiBBTsSQRUxJSkEgRFIKK0pPVkFOT1ZJxIYgQU7EkEVMS0EKK0pPVkFOT1ZJxIYgQU7EkEVMS08KK0pPVkFOT1ZJxIYgQU5EUklKQSBESVBMIElORworSk9WQU5PVknEhiBBTkRSSUpBIERJUEwgT0VDCitKT1ZBTk9WScSGIEFORFJJSkEKK0pPVkFOT1ZJxIYgQU5EUklKQQorSk9WQU5PVknEhiBBTkdFTElOQQorSk9WQU5PVknEhiBBTklDQQorSk9WQU5PVknEhiBBTktJQ0EKK0pPVkFOT1ZJxIYgQVJBTsSQRUwKK0pPVkFOT1ZJxIYgQVJTQSBEUgorSk9WQU5PVknEhiBBUlNBCitKT1ZBTk9WScSGIEFSU0VOSUpFCitKT1ZBTk9WScSGLUFSU0nEhiBWSU9MRVRBCitKT1ZBTk9WScSGLUJBTktPVkHEjEtJIEpPVkFOS0EKK0pPVkFOT1ZJxIYgQkxBR09KRQorSk9WQU5PVknEhiBCT8WgS08KK0pPVkFOT1ZJxIYgQk/FoEtPCitKT1ZBTk9WScSGIEJPxaBLTworSk9WQU5PVknEhiBCT8WgS08KK0pPVkFOT1ZJxIYgQk/FoEtPCitKT1ZBTk9WScSGIEJPxb1JREFSIFBST0ZFU09SCitKT1ZBTk9WScSGIEJPxb1JREFSCitKT1ZBTk9WScSGIEJPxb1PCitKT1ZBTk9WScSGIEJPR0RBTktBCitKT1ZBTk9WScSGIEJPR0RBTktBCitKT1ZBTk9WScSGIEJPR0RBTgorSk9WQU5PVknEhiBCT0dEQU4KK0pPVkFOT1ZJxIYgQk9HREFOCitKT1ZBTk9WScSGIEJPSkFOQQorSk9WQU5PVknEhiBCT1JJU0xBVgorSk9WQU5PVknEhiBCT1JJU0xBVgorSk9WQU5PVknEhiBCT1JJVk9KIERJUEwgSU5HCitKT1ZBTk9WScSGIEJPUklWT0oKK0pPVkFOT1ZJxIYgQk9TSUxKS0EKK0pPVkFOT1ZJxIYgQlJBTklCT1IKK0pPVkFOT1ZJxIYgQlJBTklNSVIKK0pPVkFOT1ZJxIYgQlJBTklTTEFWQQorSk9WQU5PVknEhiBCUkFOSVNMQVYKK0pPVkFOT1ZJxIYgQlJBTklTTEFWCitKT1ZBTk9WScSGIEJSQU5JU0xBVgorSk9WQU5PVknEhiBCUkFOSVNMQVYKK0pPVkFOT1ZJxIYgQlJBTktBCitKT1ZBTk9WScSGIEJSQU5LTworSk9WQU5PVknEhiBCUkFOS08KK0pPVkFOT1ZJxIYgQlJBTktPCitKT1ZBTk9WScSGIEJSQVRJU0xBViBEUgorSk9WQU5PVknEhiBCVURJTUlSCitKT1ZBTk9WScSGIENWRVRBCitKT1ZBTk9WScSGIENWRVRLTworSk9WQU5PVknEhiBEQUxJQk9SIERJUEwgUFJBVk5JSworSk9WQU5PVknEhiBEQUxJQk9SCitKT1ZBTk9WScSGIERBTklMTworSk9WQU5PVknEhiBEQVJJTktBCitKT1ZBTk9WScSGIERFSkFOCitKT1ZBTk9WScSGIERFSkFOCitKT1ZBTk9WScSGIERJTUlUUklKRQorSk9WQU5PVknEhiBESU1JVFJJSkUKK0pPVkFOT1ZJxIYgRElNSVRSSUpFCitKT1ZBTk9WScSGIERJTUlUUklKRQorSk9WQU5PVknEhiBET0JSSUxBCitKT1ZBTk9WScSGIERPQlJJVk9KRQorSk9WQU5PVknEhiBET0JST1NBVgorSk9WQU5PVknEhiBET0JST1NBVgorSk9WQU5PVknEhiBEUkFHQU5BCitKT1ZBTk9WScSGIERSQUdBTkEKK0pPVkFOT1ZJxIYgRFJBR0FOCitKT1ZBTk9WScSGIERSQUdBTgorSk9WQU5PVknEhiBEUkFHQU4KK0pPVkFOT1ZJxIYgRFJBR0FOCitKT1ZBTk9WScSGIERSQUdBTgorSk9WQU5PVknEhiBEUkFHQU4KK0pPVkFOT1ZJxIYgRFJBR0FOCitKT1ZBTk9WScSGIERSQUdBTgorSk9WQU5PVknEhiBEUkFHQU4KK0pPVkFOT1ZJxIYgRFJBR0FOCitKT1ZBTk9WScSGIERSQUdBTgorSk9WQU5PVknEhiBEUkFHScWgQQorSk9WQU5PVknEhiBEUkFHScSGCitKT1ZBTk9WScSGIERSQUdJxIYKK0pPVkFOT1ZJxIYgRFJBR0lDQQorSk9WQU5PVknEhiBEUkFHSUNBCitKT1ZBTk9WScSGIERSQUdJQ0EKK0pPVkFOT1ZJxIYgRFJBR0lDQQorSk9WQU5PVknEhiBEUkFHSVZPSkUKK0pPVkFOT1ZJxIYgRFJBR09MSlVCIE9FQworSk9WQU5PVknEhiBEUkFHT0xKVUIKK0pPVkFOT1ZJxIYgRFJBR09MSlVCCitKT1ZBTk9WScSGIERSQUdPTEpVQgorSk9WQU5PVknEhiBEUkFHT1NMQVYgRElQTCBJTkcKK0pPVkFOT1ZJxIYgRFJBR09TTEFWIERJUEwgSU5HCitKT1ZBTk9WScSGIERSQUdPU0xBVgorSk9WQU5PVknEhiBEUkFHT1NMQVYKK0pPVkFOT1ZJxIYgRFJBR09TTEFWCitKT1ZBTk9WScSGIERSQUdPU0xBVgorSk9WQU5PVknEhiBEUkFHT1NMQVYKK0pPVkFOT1ZJxIYgRFJBR09TTEFWCitKT1ZBTk9WScSGIERSQUdPU0xBVgorSk9WQU5PVknEhiBEUkFHT1NMQVYKK0pPVkFOT1ZJxIYgRFJBR08KK0pPVkFOT1ZJxIYgRFJBR1VUSU4KK0pPVkFOT1ZJxIYgRFXFoEFOIERSIFBST0YKK0pPVkFOT1ZJxIYgRFXFoEFOIERSCitKT1ZBTk9WScSGIERVxaBBTiBEUgorSk9WQU5PVknEhiBEVcWgQU5LQQorSk9WQU5PVknEhiBEVcWgQU5LQQorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBBTgorSk9WQU5PVknEhiBEVcWgQU4KK0pPVkFOT1ZJxIYgRFXFoEFOCitKT1ZBTk9WScSGIERVxaBLTworSk9WQU5PVknEhiBEVcWgS08KK0pPVkFOT1ZJxIYgRFVEQQorSk9WQU5PVknEhiBFTEVOQQorSk9WQU5PVknEhiBFTUlDQQorSk9WQU5PVknEhiBFU01BCitKT1ZBTk9WScSGIEVWSUNBCitKT1ZBTk9WScSGIEZFTElDSUpBCitKT1ZBTk9WScSGIEZJTElQCitKT1ZBTk9WScSGIEdFT1JHCitKT1ZBTk9WScSGIEdPSktPCitKT1ZBTk9WScSGIEdPSktPCitKT1ZBTk9WScSGIEdPUkFOCitKT1ZBTk9WScSGIEdPUkFOCitKT1ZBTk9WScSGIEdPUkRBTkEKK0pPVkFOT1ZJxIYgR09SREFOQQorSk9WQU5PVknEhiBHT1JEQU5BCitKT1ZBTk9WScSGIEdPUkRBTkEKK0pPVkFOT1ZJxIYgR09SREFOQQorSk9WQU5PVknEhiBHUk9aREEKK0pPVkFOT1ZJxIYgR1JVSkEKK0pPVkFOT1ZJxIYgR1JVSklDQQorSk9WQU5PVknEhiBIUklTVElOQQorSk9WQU5PVknEhiBJTEUKK0pPVkFOT1ZJxIYgSUxJSkEKK0pPVkFOT1ZJxIYgSUxJSkEKK0pPVkFOT1ZJxIYgSUxJSkEKK0pPVkFOT1ZJxIYgSUxJSkEKK0pPVkFOT1ZJxIYgSUxJSkEKK0pPVkFOT1ZJxIYgSUxJSkEKK0pPVkFOT1ZJxIYgSVJJTkEKK0pPVkFOT1ZJxIYgSVZBTiBEUgorSk9WQU5PVknEhiBJVkFOS0EgRFIgUFJPRgorSk9WQU5PVknEhiBJVkFOS0EKK0pPVkFOT1ZJxIYgSVZBTgorSk9WQU5PVknEhiBJVkFOCitKT1ZBTk9WScSGIEpBxaBBCitKT1ZBTk9WScSGIEpBRFJBTktBCitKT1ZBTk9WScSGIEpBU01JTktBCitKT1ZBTk9WScSGIEpFTEEKK0pPVkFOT1ZJxIYgSkVMRU5BCitKT1ZBTk9WScSGIEpFTEVOQQorSk9WQU5PVknEhiBKRUxFTkEKK0pPVkFOT1ZJxIYgSkVMRU5BCitKT1ZBTk9WScSGIEpFTElDQQorSk9WQU5PVknEhiBKRUxJU0FWRVRBCitKT1ZBTk9WScSGIEpFTElTQVZFVEEKK0pPVkFOT1ZJxIYgSkVMSVNBVkVUQQorSk9WQU5PVknEhiBKRUxLQQorSk9WQU5PVknEhiBKRVZUQQorSk9WQU5PVknEhiBKT0NBCitKT1ZBTk9WScSGIEpPVkFOS0EKK0pPVkFOT1ZJxIYgSk9WQU5LQQorSk9WQU5PVknEhiBKT1ZBTgorSk9WQU5PVknEhiBKT1ZBTgorSk9WQU5PVknEhiBKT1ZBTgorSk9WQU5PVknEhiBKT1ZBTgorSk9WQU5PVknEhiBKT1ZBTgorSk9WQU5PVknEhiBKT1ZBTgorSk9WQU5PVknEhiBKT1ZBTgorSk9WQU5PVknEhiBKT1ZBTgorSk9WQU5PVknEhiBKT1ZBTgorSk9WQU5PVknEhiBKT1ZBTgorSk9WQU5PVknEhiBKT1ZBTgorSk9WQU5PVknEhiBKT1ZJQ0EKK0pPVkFOT1ZJxIYgSk9WSUNBCitKT1ZBTk9WScSGIEpPVklDQQorSk9WQU5PVknEhiBKT1ZJQ0EKK0pPVkFOT1ZJxIYgSk9WSUNBCitKT1ZBTk9WScSGIEpVTElKQU5BCitKT1ZBTk9WScSGIEpVTEtBCitKT1ZBTk9WScSGIEtBVEFSSU5BCitKT1ZBTk9WScSGIEtBVElDQQorSk9WQU5PVknEhiBLT1NBTkEKK0pPVkFOT1ZJxIYgS09TVEEKK0pPVkFOT1ZJxIYgS09TVEEKK0pPVkFOT1ZJxIYtS09TVEnEhiBEUkFHT1NMQVZBCitKT1ZBTk9WScSGIEtPVklOS0EKK0pPVkFOT1ZJxIYgS1NFTklKQQorSk9WQU5PVknEhiBMQVpBUgorSk9WQU5PVknEhiBMQVpBUgorSk9WQU5PVknEhiBMQVpBUgorSk9WQU5PVknEhiBMQVpBUgorSk9WQU5PVknEhiBMQVpBUgorSk9WQU5PVknEhiBMSklMSkFOQQorSk9WQU5PVknEhiBMSlVCQU4KK0pPVkFOT1ZJxIYgTEpVQknFoEEKK0pPVkFOT1ZJxIYgTEpVQknFoEEKK0pPVkFOT1ZJxIYgTEpVQklDQQorSk9WQU5PVknEhiBMSlVCSUNBCitKT1ZBTk9WScSGIExKVUJJQ0EKK0pPVkFOT1ZJxIYgTEpVQklDQQorSk9WQU5PVknEhiBMSlVCSU5LQQorSk9WQU5PVknEhiBMSlVCSU5LQQorSk9WQU5PVknEhiBMSlVCSVZPSkUgRFIKK0pPVkFOT1ZJxIYgTEpVQk9NSVIgTVIKK0pPVkFOT1ZJxIYgTEpVQk9NSVIKK0pPVkFOT1ZJxIYgTEpVQk8KK0pPVkFOT1ZJxIYgTFVLQQorSk9WQU5PVknEhiBMVUtBCitKT1ZBTk9WScSGIExVS0EKK0pPVkFOT1ZJxIYgTFVLQQorSk9WQU5PVknEhiBNQUxJxaBBCitKT1ZBTk9WScSGIE1BUkEKK0pPVkFOT1ZJxIYgTUFSQQorSk9WQU5PVknEhiBNQVJBCitKT1ZBTk9WScSGIE1BUklDQQorSk9WQU5PVknEhiBNQVJJSkEKK0pPVkFOT1ZJxIYgTUFSSUpBCitKT1ZBTk9WScSGIE1BUklKQQorSk9WQU5PVknEhiBNQVJJSkEKK0pPVkFOT1ZJxIYgTUFSSUpBCitKT1ZBTk9WScSGIE1BUklKQQorSk9WQU5PVknEhiBNQVJJSkEKK0pPVkFOT1ZJxIYgTUFSS08KK0pPVkFOT1ZJxIYgTUFSS08KK0pPVkFOT1ZJxIYgTUnEhk8KK0pPVkFOT1ZJxIYgTUlIQUpMTworSk9WQU5PVknEhiBNSUhBSkxPCitKT1ZBTk9WScSGIE1JSEFKTE8KK0pPVkFOT1ZJxIYgTUlKQVQKK0pPVkFOT1ZJxIYgTUlKQQorSk9WQU5PVknEhiBNSUxBxaBJTgorSk9WQU5PVknEhiBNSUxBRElOCitKT1ZBTk9WScSGIE1JTEFOIEFEVk9LQVQKK0pPVkFOT1ZJxIYgTUlMQU4gRElQTCBJTkcKK0pPVkFOT1ZJxIYgTUlMQU5LQQorSk9WQU5PVknEhiBNSUxBTktBCitKT1ZBTk9WScSGIE1JTEFOS0EKK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMQU4KK0pPVkFOT1ZJxIYgTUlMRU5BCitKT1ZBTk9WScSGIE1JTEVOQQorSk9WQU5PVknEhiBNSUxFTkEKK0pPVkFOT1ZJxIYgTUlMRU5LTyBEUgorSk9WQU5PVknEhiBNSUxFTktPCitKT1ZBTk9WScSGIE1JTEVOS08KK0pPVkFOT1ZJxIYgTUlMRU5LTworSk9WQU5PVknEhiBNSUxFTktPCitKT1ZBTk9WScSGIE1JTEVOS08KK0pPVkFOT1ZJxIYgTUlMRU5LTworSk9WQU5PVknEhiBNSUxFTktPCitKT1ZBTk9WScSGIE1JTEVOVElKRQorSk9WQU5PVknEhiBNSUxFVkEKK0pPVkFOT1ZJxIYgTUlMRQorSk9WQU5PVknEhiBNSUxFCitKT1ZBTk9WScSGIE1JTEnEhgorSk9WQU5PVknEhiBNSUxJxIYKK0pPVkFOT1ZJxIYgTUlMSUNBCitKT1ZBTk9WScSGIE1JTElDQQorSk9WQU5PVknEhiBNSUxJQ0EKK0pPVkFOT1ZJxIYgTUlMSUpBTkEKK0pPVkFOT1ZJxIYgTUlMSVNBVgorSk9WQU5PVknEhiBNSUxJVk9KRQorSk9WQU5PVknEhiBNSUxJVk9KCitKT1ZBTk9WScSGIE1JTElWT0oKK0pPVkFOT1ZJxIYgTUlMSkFOQQorSk9WQU5PVknEhiBNSUxLQU4KK0pPVkFOT1ZJxIYgTUlMT8WgCitKT1ZBTk9WScSGIE1JTE/FoAorSk9WQU5PVknEhiBNSUxPxaAKK0pPVkFOT1ZJxIYgTUlMT8WgCitKT1ZBTk9WScSGIE1JTE/FoAorSk9WQU5PVknEhiBNSUxPxaAKK0pPVkFOT1ZJxIYgTUlMT8WgCitKT1ZBTk9WScSGIE1JTE/FoAorSk9WQU5PVknEhiBNSUxPTkpBCitKT1ZBTk9WScSGIE1JTE9SQUQgRElQTCBJTkcKK0pPVkFOT1ZJxIYgTUlMT1JBRCBEUiBMRUtBUgorSk9WQU5PVknEhiBNSUxPUkFECitKT1ZBTk9WScSGIE1JTE9SQUQKK0pPVkFOT1ZJxIYgTUlMT1ZBTgorSk9WQU5PVknEhiBNSUxPVkFOCitKT1ZBTk9WScSGIE1JTFVUSU4KK0pPVkFOT1ZJxIYgTUlMVVRJTgorSk9WQU5PVknEhiBNSU9EUkFHCitKT1ZBTk9WScSGIE1JT0RSQUcKK0pPVkFOT1ZJxIYgTUlPRFJBRworSk9WQU5PVknEhiBNSU9EUkFHCitKT1ZBTk9WScSGIE1JT0RSQUcKK0pPVkFOT1ZJxIYgTUlPRFJBRworSk9WQU5PVknEhiBNSVJBCitKT1ZBTk9WScSGIE1JUkEKK0pPVkFOT1ZJxIYgTUlSQQorSk9WQU5PVknEhiBNSVJKQU5BCitKT1ZBTk9WScSGIE1JUkpBTkEKK0pPVkFOT1ZJxIYgTUlSSkFOQQorSk9WQU5PVknEhiBNSVJLTworSk9WQU5PVknEhiBNSVJLTworSk9WQU5PVknEhiBNSVJLTworSk9WQU5PVknEhiBNSVJLTworSk9WQU5PVknEhiBNSVJPTEpVQgorSk9WQU5PVknEhiBNSVJPU0xBVkEKK0pPVkFOT1ZJxIYgTUlST1NMQVZBCitKT1ZBTk9WScSGIE1JUk9TTEFWCitKT1ZBTk9WScSGIE1JUk9TTEFWCitKT1ZBTk9WScSGIE1JUk9TTEFWCitKT1ZBTk9WScSGIE1JUk9TTEFWCitKT1ZBTk9WScSGIE1JUk9TTEFWCitKT1ZBTk9WScSGIE1JUk9TTEFWCitKT1ZBTk9WScSGIE1JUk9TTEFWCitKT1ZBTk9WScSGIE1JUk9TTEFWCitKT1ZBTk9WScSGIE1JUk9TTEFWCitKT1ZBTk9WScSGIE1JVEFSCitKT1ZBTk9WScSGIE1MQcSQQQorSk9WQU5PVknEhiBNTEFERU5LQQorSk9WQU5PVknEhiBNTEFERU4KK0pPVkFOT1ZJxIYgTUxBREVOCitKT1ZBTk9WScSGIE1PTcSMSUxPCitKT1ZBTk9WScSGIE1PTcSMSUxPCitKT1ZBTk9WScSGIE1PTUlSCitKT1ZBTk9WScSGIE5BREEKK0pPVkFOT1ZJxIYgTkFEQQorSk9WQU5PVknEhiBOQURBCitKT1ZBTk9WScSGIE5BREEKK0pPVkFOT1ZJxIYgTkFERcW9REEKK0pPVkFOT1ZJxIYgTkFERcW9REEKK0pPVkFOT1ZJxIYgTkFERcW9REEKK0pPVkFOT1ZJxIYgTkVCT0rFoEEKK0pPVkFOT1ZJxIYgTkVEQQorSk9WQU5PVknEhiBORURFTEpLQQorSk9WQU5PVknEhiBORU1BTkpBCitKT1ZBTk9WScSGIE5FTUFOSkEKK0pPVkFOT1ZJxIYgTkVOQUQgQURWT0tBVAorSk9WQU5PVknEhiBORU5BRAorSk9WQU5PVknEhiBORU5BRAorSk9WQU5PVknEhiBORU5BRAorSk9WQU5PVknEhiBORVZFTkEKK0pPVkFOT1ZJxIYgTkVWRU5LQQorSk9WQU5PVknEhiBORVZFTktBCitKT1ZBTk9WScSGIE5JS09MQQorSk9WQU5PVknEhiBOSUtPTEEKK0pPVkFOT1ZJxIYgTklLT0xBCitKT1ZBTk9WScSGIE5JS09MQQorSk9WQU5PVknEhiBOSUtPTEEKK0pPVkFOT1ZJxIYgTk9WQUsKK0pPVkFOT1ZJxIYgTk9WSUNBCitKT1ZBTk9WScSGIE9CUkFECitKT1ZBTk9WScSGIE9MR0EKK0pPVkFOT1ZJxIYgT0xHQQorSk9WQU5PVknEhiBPTEdBCitKT1ZBTk9WScSGIE9MR0EKK0pPVkFOT1ZJxIYgT0xHSUNBCitKT1ZBTk9WScSGIE9TVE9KQQorSk9WQU5PVknEhiBPU1RPSkEKK0pPVkFOT1ZJxIYgT1NUT0pBCitKT1ZBTk9WScSGIFBBVkxFCitKT1ZBTk9WScSGIFBBVkxFCitKT1ZBTk9WScSGIFBBVkxFCitKT1ZBTk9WScSGIFBFUkEKK0pPVkFOT1ZJxIYgUEVSSUNBCitKT1ZBTk9WScSGIFBFUklDQQorSk9WQU5PVknEhiBQRVJPCitKT1ZBTk9WScSGIFBFUk8KK0pPVkFOT1ZJxIYgUEVUQVIKK0pPVkFOT1ZJxIYgUEVUQVIKK0pPVkFOT1ZJxIYgUEVUQVIKK0pPVkFOT1ZJxIYgUEVUQVIKK0pPVkFOT1ZJxIYgUEVUQVIKK0pPVkFOT1ZJxIYgUEVUQVIKK0pPVkFOT1ZJxIYgUEVUQVIKK0pPVkFOT1ZJxIYgUEVUQVIKK0pPVkFOT1ZJxIYgUFJFRFJBRyBEUgorSk9WQU5PVknEhiBQUkVEUkFHCitKT1ZBTk9WScSGIFBSRURSQUcKK0pPVkFOT1ZJxIYgUFJFRFJBRworSk9WQU5PVknEhiBSQURFCitKT1ZBTk9WScSGIFJBREnFoEEKK0pPVkFOT1ZJxIYgUkFESU5LQQorSk9WQU5PVknEhiBSQURJVk9KCitKT1ZBTk9WScSGIFJBRElWT0oKK0pPVkFOT1ZJxIYgUkFETUlMQQorSk9WQU5PVknEhiBSQURNSUxBCitKT1ZBTk9WScSGIFJBRE1JTEEKK0pPVkFOT1ZJxIYgUkFET01JUiBEUgorSk9WQU5PVknEhiBSQURPTUlSCitKT1ZBTk9WScSGIFJBRE9OSkEKK0pPVkFOT1ZJxIYgUkFET1NMQVZBCitKT1ZBTk9WScSGIFJBRE9TTEFWCitKT1ZBTk9WScSGIFJBRE9TTEFWCitKT1ZBTk9WScSGIFJBRE9WQU4KK0pPVkFOT1ZJxIYgUkFET1ZBTgorSk9WQU5PVknEhiBSQURPVkFOCitKT1ZBTk9WScSGIFJBRE9WQU4KK0pPVkFOT1ZJxIYgUkFET1ZBTgorSk9WQU5PVknEhiBSQUpLTworSk9WQU5PVknEhiBSQU7EkEVMCitKT1ZBTk9WScSGIFJBTktPCitKT1ZBTk9WScSGIFJBVEtBCitKT1ZBTk9WScSGIFJVxb1BCitKT1ZBTk9WScSGIFJVxb1JQ0EKK0pPVkFOT1ZJxIYgUlXFvUlDQQorSk9WQU5PVknEhiBSVcW9SUNBCitKT1ZBTk9WScSGIFNBxaBBCitKT1ZBTk9WScSGIFNBVkEKK0pPVkFOT1ZJxIYgU0FWRVRBCitKT1ZBTk9WScSGIFNBVk8KK0pPVkFOT1ZJxIYgU0FWTworSk9WQU5PVknEhiBTRUxJTUlSCitKT1ZBTk9WScSGIFNFUkFGSU0KK0pPVkFOT1ZJxIYgU0lNQQorSk9WQU5PVknEhiBTSU1BCitKT1ZBTk9WScSGIFNJTU8KK0pPVkFOT1ZJxIYgU0lOScWgQQorSk9WQU5PVknEhiBTTEFWSUNBCitKT1ZBTk9WScSGIFNMQVZLTworSk9WQU5PVknEhiBTTEFWS08KK0pPVkFOT1ZJxIYgU0xBVktPCitKT1ZBTk9WScSGIFNMQVZLTworSk9WQU5PVknEhiBTTE9CT0RBTiBEUgorSk9WQU5PVknEhiBTTE9CT0RBTgorSk9WQU5PVknEhiBTTE9CT0RBTgorSk9WQU5PVknEhiBTTE9CT0RBTgorSk9WQU5PVknEhiBTTE9CT0RBTgorSk9WQU5PVknEhiBTTE9CT0RBTgorSk9WQU5PVknEhiBTTE9CT0RBTgorSk9WQU5PVknEhiBTTUlMSkEKK0pPVkFOT1ZJxIYgU01JTEpBCitKT1ZBTk9WScSGIFNNSUxKS0EKK0pPVkFOT1ZJxIYgU01JTEpLQQorSk9WQU5PVknEhiBTT0ZJSkEKK0pPVkFOT1ZJxIYgU1BJUkEKK0pPVkFOT1ZJxIYgU1BPTUVOS0EKK0pPVkFOT1ZJxIYgU1LEkEFOCitKT1ZBTk9WScSGIFNSQklTTEFWCitKT1ZBTk9WScSGIFNSRVRFTgorSk9WQU5PVknEhiBTVEFOScWgQQorSk9WQU5PVknEhiBTVEFOSU1JUgorSk9WQU5PVknEhiBTVEFOSU1JUgorSk9WQU5PVknEhiBTVEFOSU1JUgorSk9WQU5PVknEhiBTVEFOS08KK0pPVkFOT1ZJxIYgU1RBTk9KRQorSk9WQU5PVknEhiBTVEVWQU4KK0pPVkFOT1ZJxIYgU1RFVkFOCitKT1ZBTk9WScSGIFNURVZBTgorSk9WQU5PVknEhiBTVEVWQU4KK0pPVkFOT1ZJxIYgU1RFVkFOCitKT1ZBTk9WScSGIFNURVZBTgorSk9WQU5PVknEhiBTVEVWQU4KK0pPVkFOT1ZJxIYgU1RFVkFOCitKT1ZBTk9WScSGIFNURVZBTgorSk9WQU5PVknEhiBTVE9KxaBBCitKT1ZBTk9WScSGLVNUT0pBTiBHRVJUUlVEQSBEUgorSk9WQU5PVknEhiBTVE9KQU5LQQorSk9WQU5PVknEhiBTVE9KQU5LQQorSk9WQU5PVknEhiBTVE9KQU4KK0pPVkFOT1ZJxIYgU1RPSkFOCitKT1ZBTk9WScSGIFNUT0pBTgorSk9WQU5PVknEhiBTVE9KQU4KK0pPVkFOT1ZJxIYgU1VaQU5BCitKT1ZBTk9WScSGIFNWRVRMQU5BCitKT1ZBTk9WScSGIFNWRVRPWkFSCitKT1ZBTk9WScSGIFNWRVRPWkFSCitKT1ZBTk9WScSGIFNWRVRPWkFSCitKT1ZBTk9WScSGIFNWRVRPWkFSCitKT1ZBTk9WScSGIFRBVEpBTkEKK0pPVkFOT1ZJxIYgVEVPRE9SQQorSk9WQU5PVknEhiBUSUhPTUlSCitKT1ZBTk9WScSGIFRJSE9NSVIKK0pPVkFOT1ZJxIYgVE9ET1IKK0pPVkFOT1ZJxIYgVE9NQQorSk9WQU5PVknEhiBUT01JU0xBVgorSk9WQU5PVknEhiBUT01JU0xBVgorSk9WQU5PVknEhiBUUkFKS08KK0pPVkFOT1ZJxIYgVFVHT01JUgorSk9WQU5PVknEhiBVUk/FoAorSk9WQU5PVknEhiBWQVNBCitKT1ZBTk9WScSGIFZBU0EKK0pPVkFOT1ZJxIYgVkFTSUxJSkUKK0pPVkFOT1ZJxIYgVkFTSUxJSkUKK0pPVkFOT1ZJxIYgVkFTSUxJSkUKK0pPVkFOT1ZJxIYgVkFTSUxJSkUKK0pPVkFOT1ZJxIYgVkFTSUxKCitKT1ZBTk9WScSGIFZFTEnEjEtPCitKT1ZBTk9WScSGIFZFTElCT1IKK0pPVkFOT1ZJxIYgVkVMSUJPUgorSk9WQU5PVknEhiBWRUxJQk9SCitKT1ZBTk9WScSGIFZFTElOS0EKK0pPVkFOT1ZJxIYgVkVSQQorSk9WQU5PVknEhiBWRVJBCitKT1ZBTk9WScSGIFZFUkEKK0pPVkFOT1ZJxIYgVkVSQQorSk9WQU5PVknEhiBWRVJJQ0EKK0pPVkFOT1ZJxIYgVkVSSUNBCitKT1ZBTk9WScSGIFZFUk9MSlVCCitKT1ZBTk9WScSGIFZFU0VMSU4KK0pPVkFOT1ZJxIYgVkVTTkEKK0pPVkFOT1ZJxIYgVkVTTkEKK0pPVkFOT1ZJxIYgVkVTTkEKK0pPVkFOT1ZJxIYgVklEQQorSk9WQU5PVknEhiBWSURPU0xBVgorSk9WQU5PVknEhiBWSUxNQQorSk9WQU5PVknEhiBWTEFEQQorSk9WQU5PVknEhiBWTEFEQQorSk9WQU5PVknEhiBWTEFESU1JUgorSk9WQU5PVknEhiBWTEFESU1JUgorSk9WQU5PVknEhiBWTEFESU1JUgorSk9WQU5PVknEhiBWTEFESU1JUgorSk9WQU5PVknEhiBWTEFESVNMQVZBCitKT1ZBTk9WScSGIFZMQUpLTworSk9WQU5PVknEhiBWTEFTVElNSVIKK0pPVkFOT1ZJxIYgVk9KSVNMQVYgRFIgUFJPRgorSk9WQU5PVknEhiBWT0pJU0xBVgorSk9WQU5PVknEhiBWT0pJU0xBVgorSk9WQU5PVknEhiBWT0pJU0xBVgorSk9WQU5PVknEhiBWT0pJU0xBVgorSk9WQU5PVknEhiBWT0pJU0xBVgorSk9WQU5PVknEhiBWT0pJU0xBVgorSk9WQU5PVknEhiBWVcSMRVRBCitKT1ZBTk9WScSGIFpBR09SS0EKK0pPVkFOT1ZJxIYgWkRFTktBCitKT1ZBTk9WScSGIFpEUkFWS08KK0pPVkFOT1ZJxIYgWkRSQVZLTworSk9WQU5PVknEhiBaT1JBTgorSk9WQU5PVknEhiBaT1JBTgorSk9WQU5PVknEhiBaT1JBTgorSk9WQU5PVknEhiBaT1JBTgorSk9WQU5PVknEhiBaT1JBTgorSk9WQU5PVknEhiBaT1JBTgorSk9WQU5PVknEhiBaT1JBTgorSk9WQU5PVknEhiBaT1JBTgorSk9WQU5PVknEhiBaT1JBTgorSk9WQU5PVknEhiBaT1JBTgorSk9WQU5PVknEhiBaT1JBTgorSk9WQU5PVknEhiBaT1JBTgorSk9WQU5PVknEhiBaT1JBCitKT1ZBTk9WScSGIFpPUkEKK0pPVkFOT1ZJxIYgWk9SSUNBCitKT1ZBTk9WScSGIFpPUklDQQorSk9WQU5PVknEhiBaT1JJQ0EKK0pPVkFOT1ZJxIYgWk9SS0EKK0pPVkFOT1ZJxIYgWlZPTklNSVIKK0pPVkFOT1ZTS0EgQ1ZFVEEKK0pPVkFOT1ZTS0EgVEFTS0EKK0pPVkFOT1ZTS0kgRElNSVRBUgorSk9WQU5PVlNLSSBEVcWgQU4KK0pPVkFOT1ZTS0kgTUlMRQorSk9WQU5PVlNLSSBNSUxFCitKT1ZBTk9WU0tJIE1JTElDQQorSk9WQU5PVlNLSSBOSUtPTEEKK0pPVkFOT1ZTS0kgUEVUQVIKK0pPVkFOT1ZTS0kgU0lNRU9OQQorSk9WQU5PVlNLSSBTVE9KQURJTgorSk9WRVIgTUlIQUxKCitKT1ZFVEnEhiBBTkRSSUpBCitKT1ZFVEnEhiBCUkFOS08KK0pPVkVUScSGIEJSQU5LTworSk9WRVRJxIYgTUlMSUNBCitKT1ZFVEnEhiBTVEFOS08KK0pPVkVUScSGIFZFU0VMSU4KK0pPVknEjEVWScSGIFZMQURJTUlSIERSCitKT1ZJxIxJxIYgxIxFRE9NSVIKK0pPVknEjEnEhiDFvUFSS08KK0pPVknEjEnEhiDFvUFSS08KK0pPVknEjEnEhiDFvUVMSktPCitKT1ZJxIxJxIYgxb1JVkFOCitKT1ZJxIxJxIYgxJBPUsSQRQorSk9WScSMScSGIMSQT1LEkEUKK0pPVknEjEnEhiDEkFVSQQorSk9WScSMScSGIEFOS0lDQQorSk9WScSMScSGIEJPxaBLTworSk9WScSMScSGIEJPR0RBTgorSk9WScSMScSGIEJPUkEKK0pPVknEjEnEhiBCUkFORQorSk9WScSMScSGIEJSQU5JU0xBVkEKK0pPVknEjEnEhiBCUkFOS0EKK0pPVknEjEnEhiBERUpBTgorSk9WScSMScSGIERSQUdBTgorSk9WScSMScSGIERSQUdBTgorSk9WScSMScSGIERSQUdBTgorSk9WScSMScSGIERSQUdBTgorSk9WScSMScSGIERSQUdPTEpVQgorSk9WScSMScSGIERVxaBBTgorSk9WScSMScSGIERVxaBBTgorSk9WScSMScSGIERVxaBLTworSk9WScSMScSGIEdFT1JHSUpFCitKT1ZJxIxJxIYgSEVMRU5BCitKT1ZJxIxJxIYgSUxJSkEKK0pPVknEjEnEhiBJTElKQQorSk9WScSMScSGIEpFTElTQVZFVEEKK0pPVknEjEnEhiBKT1ZBTgorSk9WScSMScSGIEpPVklDQQorSk9WScSMScSGIEtBVElDQQorSk9WScSMScSGIExBWkFSCitKT1ZJxIxJxIYgTEVQT1NBVkEKK0pPVknEjEnEhiBMSklMSkFOQQorSk9WScSMScSGIExKSUxKQU5BCitKT1ZJxIxJxIYgTEpVQklDQQorSk9WScSMScSGIExKVUJJQ0EKK0pPVknEjEnEhiBMSlVCSU5LQQorSk9WScSMScSGIExKVUJPTUlSCitKT1ZJxIxJxIYgTUFLU0lNCitKT1ZJxIxJxIYgTUFSQQorSk9WScSMScSGIE1BUklKQQorSk9WScSMScSGIE1BUklKQQorSk9WScSMScSGIE1BUktPCitKT1ZJxIxJxIYgTUFSS08KK0pPVknEjEnEhiBNQVJLTworSk9WScSMScSGIE1BUktPCitKT1ZJxIxJxIYgTUlMQURJTgorSk9WScSMScSGIE1JTEFOCitKT1ZJxIxJxIYgTUlMQU4KK0pPVknEjEnEhiBNSUxFTktPCitKT1ZJxIxJxIYgTUlMRU5LTworSk9WScSMScSGIE1JTElDQQorSk9WScSMScSGIE1JTElDQQorSk9WScSMScSGIE1JTE/FoAorSk9WScSMScSGIE1JTE/FoAorSk9WScSMScSGIE1JTE9NSVIKK0pPVknEjEnEhiBNSUxPUkFECitKT1ZJxIxJxIYgTUlMT1ZBTgorSk9WScSMScSGIE1JUk9TTEFWCitKT1ZJxIxJxIYgTUxBREVOCitKT1ZJxIxJxIYgT0JSQUQKK0pPVknEjEnEhiBPTEdBCitKT1ZJxIxJxIYgUEFKQQorSk9WScSMScSGIFBFVEFSCitKT1ZJxIxJxIYgUkFEQQorSk9WScSMScSGIFJBREUKK0pPVknEjEnEhiBSQURJU0xBVgorSk9WScSMScSGIFJBRElWT0pFCitKT1ZJxIxJxIYgUkFET01JUgorSk9WScSMScSGIFJBRE9WQU4KK0pPVknEjEnEhiBSQVRLTworSk9WScSMScSGIFNBVkVUQQorSk9WScSMScSGIFNJTU8KK0pPVknEjEnEhiBTTEFWS08KK0pPVknEjEnEhiBTTE9CT0RBTktBCitKT1ZJxIxJxIYgU0xPQk9EQU4KK0pPVknEjEnEhiBTUkVURU4KK0pPVknEjEnEhiBTVEFOS08KK0pPVknEjEnEhiBTVkVUSVNMQVYKK0pPVknEjEnEhiBTVkVUT1pBUgorSk9WScSMScSGIFNWRVRPWkFSCitKT1ZJxIxJxIYgVEFOQVNJSkUKK0pPVknEjEnEhiBUQVRKQU5BCitKT1ZJxIxJxIYgVE9ET1IKK0pPVknEjEnEhiBVUk/FoAorSk9WScSMScSGIFZBU0EKK0pPVknEjEnEhiBWRVJJQ0EKK0pPVknEjEnEhiBWT0pJTgorSk9WScSMScSGIFZPSklTTEFWCitKT1ZJxIxJxIYgWkRSQVZLTworSk9WScSMScSGIFpPUkFOCitKT1ZJxIxJTiBBTEVLU0FOREFSCitKT1ZJxIxJTiBBTklDQQorSk9WScSMSU4gS0FUSUNBCitKT1ZJxIxJTiBMSlVCSUNBCitKT1ZJxIxJTiBMSlVCSUNBCitKT1ZJxIxJTiBNSUxPVkFOCitKT1ZJxIxJTiBTTEFWS08KK0pPVknEjElOIFNPRklKQQorSk9WScSMSU4gVE/FoEEKK0pPVknFoEVWScSGIE1JTEFOCitKT1ZJxaBFVknEhiBNSVJKQU5BCitKT1ZJxaBFVknEhiBaRFJBVktPCitKT1ZJxaBJxIYgxb1BUktPCitKT1ZJxaBJxIYgxJBVUk8KK0pPVknFoEnEhiBCT1JPCitKT1ZJxaBJxIYgRFXFoEFOCitKT1ZJxaBJxIYgSk9WQU4KK0pPVknFoEnEhiBNSVRBUgorSk9WScWgScSGIE5JS09MQQorSk9WScWgScSGIFBBVkxFCitKT1ZJxaBJxIYgUFJFRFJBRworSk9WScWgScSGIFNJTU8KK0pPVknEhiDEjEVET01JUgorSk9WScSGIMW9QVJLTworSk9WScSGIMW9QVJLTworSk9WScSGIMW9SVZPSklOCitKT1ZJxIYgxb1JVk9SQUQKK0pPVknEhiDFvUlWT1JBRAorSk9WScSGIMSQT1LEkEUKK0pPVknEhiBBTEVLU0FOREFSCitKT1ZJxIYgQUxFS1NBTkRBUgorSk9WScSGIEFOSUNBCitKT1ZJxIYgQk/FoEtPCitKT1ZJxIYgQk9CQU4KK0pPVknEhiBCT1JBCitKT1ZJxIYgQlJBTktPCitKT1ZJxIYgQlJBTktPCitKT1ZJxIYgQ1ZFVEEKK0pPVknEhiBEQVZJRAorSk9WScSGIERJTUlUUklKRQorSk9WScSGIERSQUdBTkEKK0pPVknEhiBEUkFHT0xKVUIKK0pPVknEhiBEUkFHT0xKVUIKK0pPVknEhiBEVcWgQU4KK0pPVknEhiBEVcWgQU4KK0pPVknEhiBFUklLQQorSk9WScSGIEdPSktPCitKT1ZJxIYgR09SREFOQQorSk9WScSGIElWQU5BCitKT1ZJxIYgSVZBTgorSk9WScSGIEpBRFJBTktBIERSCitKT1ZJxIYgSkFTTkEKK0pPVknEhiBKT0NPCitKT1ZJxIYgSk9WQU5LQQorSk9WScSGIEpPVkFOCitKT1ZJxIYgSk9WQU4KK0pPVknEhiBKT1ZPCitKT1ZJxIYgS09TVEEKK0pPVknEhiBLU0VOSUpBCitKT1ZJxIYgTEpVQknFoEEKK0pPVknEhiBNQVJJQ0EKK0pPVknEhiBNQVJJSkFOCitKT1ZJxIYgTUFSS08KK0pPVknEhiBNRUxJVEEKK0pPVknEhiBNSUxBRElOCitKT1ZJxIYgTUlMQU5LQQorSk9WScSGIE1JTEFOS0EKK0pPVknEhiBNSUxBTgorSk9WScSGIE1JTEFOCitKT1ZJxIYgTUlMQU4KK0pPVknEhiBNSUxFTktPCitKT1ZJxIYgTUlMSVZPSkUKK0pPVknEhiBNSUxPSklDQQorSk9WScSGIE1JTFVUSU4KK0pPVknEhiBNSUxVVElOCitKT1ZJxIYgTUlSQQorSk9WScSGIE1JUkpBTkEKK0pPVknEhiBNSVJKQU5BCitKT1ZJxIYgTUlST1NMQVZBCitKT1ZJxIYgTUlST1NMQVYKK0pPVknEhiBNSVRBUgorSk9WScSGIE5JS09MQQorSk9WScSGIE5JS09MQQorSk9WScSGIE5JS09MQQorSk9WScSGIE5JS09MQQorSk9WScSGIFBBSklDQQorSk9WScSGIFBFUlNJREEKK0pPVknEhiBQRVRBUgorSk9WScSGIFBFVEFSCitKT1ZJxIYgUkFERQorSk9WScSGIFJBRElWT0pFCitKT1ZJxIYgUkFESVZPSkUKK0pPVknEhiBSQURPVkFOCitKT1ZJxIYgUkFKS08KK0pPVknEhiBTQVZPCitKT1ZJxIYgU0xBVktPCitKT1ZJxIYgU0xPQk9EQU4KK0pPVknEhiBTUEFTRU5JSkEKK0pPVknEhiBTVEFOQQorSk9WScSGIFNUQU5JxaBBCitKT1ZJxIYgU1RBTktPCitKT1ZJxIYgU1RBTktPCitKT1ZJxIYgU1RBTktPCitKT1ZJxIYgU1RFVkFOCitKT1ZJxIYgU1ZFVElTTEFWCitKT1ZJxIYgVkFTQQorSk9WScSGIFZFTElNSVIKK0pPVknEhiBWRUxJWkFSCitKT1ZJxIYgVkVMSktPCitKT1ZJxIYgVkVSQQorSk9WScSGIFZFUkEKK0pPVknEhiBWRVJBCitKT1ZJxIYgVkxBREEKK0pPVknEhiBWTEFEQQorSk9WScSGIFZMQURBCitKT1ZJxIYgVkxBREEKK0pPVknEhiBWTEFESU1JUgorSk9WScSGIFZMQURJU0xBVgorSk9WScSGIFZPSklTTEFWCitKT1ZJxIYgVlVLT1NBVkEKK0pPVknEhiBaRFJBVktPCitKT1ZJxIYgWlZPTklNSVIKK0pPVknEhkVWScSGIEJPxb1JREFSCitKT1ZJxIZFVknEhiBNSUxBCitKT1ZJxIZFVknEhiBNSUxVVElOCitKT1ZJxIZFVknEhiBORU5BRAorSk9WScSGRVZJxIYgU1RBTktPIERJUEwgSU5HCitKT1ZJxIZFVknEhiBWSURPU0FWQQorSk9WScSGRVZJxIYgWk9SQU4KK0pPVklOIMW9SVZBCitKT1ZJTiBBTsSQRUxLQQorSk9WSU4gQk9SSVZPSgorSk9WSU4gQlJBTktPCitKT1ZJTiBEUkFHQU4KK0pPVklOIERSQUdPTUlSCitKT1ZJTiBEVcWgQU4KK0pPVklOIERVxaBBTgorSk9WSU4gSVZBTgorSk9WSU4gSkVMRU5BCitKT1ZJTiBMSlVCSUNBCitKT1ZJTiBNSUxBTgorSk9WSU4gTUlMSVZPSiBEUgorSk9WSU4gTUlMT8WgCitKT1ZJTiBNSVJKQU5BCitKT1ZJTiBSQURPU0xBVgorSk9WSU4gUkFET1ZBTgorSk9WSU4gU0lNQQorSk9WSU4gU0xBVktPIERSCitKT1ZJTiBTVkVUTEFOQQorSk9WSU4gVkVTTkEKK0pPVklOIFpMQVRPSkUKK0pPVklOIFpVU0tBCitKT1ZJTk9WIEJPR0RBTgorSk9WS09WScSGIE1JT0RSQUcKK0pPVktPVknEhiBSQVRPTUlSCitKT1ZPVknEhiDFvUVMSktPCitKT1ZPVknEhiBBTktBCitKT1ZPVknEhiBCT8W9SURBUgorSk9WT1ZJxIYgQlJBTklTTEFWCitKT1ZPVknEhiBKT1ZBTgorSk9WT1ZJxIYgSk9WQU4KK0pPVk9WScSGIExKSUxKQU5BCitKT1ZPVknEhiBNSUxPUkFECitKT1ZPVknEhiBNSUxPVkFOCitKT1ZPVknEhiBOSUtPTEEKK0pPVk9WScSGIE5JS09MQQorSk9WT1ZJxIYgUkFERQorSk9WT1ZJxIYgUkFET01JUgorSk9WT1ZJxIYgUkFKS08KK0pPVk9WScSGIFNUQU5BCitKT1ZPVknEhiBTVE9KQU4KK0pPWkFOT1YgREFOSUNBCitKT1pBTk9WIE1JTEFOCitKT1pBTk9WIFNMT0JPREFOCitKT1pBTk9WIFpPUkFOCitKT1pFRsSMQUsgSVZBTgorSk9aScSGIEpPWkEKK0pPWknEhiBLQVRBUklOQQorSk9aScSGIE1JT0RSQUcKK0pPWknEhiBNSVJLTworSk9aScSGIFBFSk8KK0pVxaBJxIYgTkFUQUxJSkEKK0pVxaBLT1ZJxIYgQlJBTklTTEFWCitKVUFOSU4gxb1JVk9KSU4gRElQTCBJTkcKK0pVQU5JTiBKT1ZBTgorSlVHSU4gTUlMRU5BCitKVUdPVknEhiDEkFVSQcSQCitKVUdPVknEhiBMRVBPU0FWQQorSlVHT1ZJxIYgTUlMRQorSlVHT1ZJxIYgTUlMT8WgCitKVUdPVknEhiBWRVNFTElOCitKVUdPVknEhiBaRFJBVktPCitKVUhBUyDEkEVSxJAKK0pVSEFTIEFORFJBxaAKK0pVSEFTIEFORFJBxaAKK0pVSEFTIEFOVEFMCitKVUhBUyBERVpFCitKVUhBUyBFUk5FCitKVUhBUyBFVkEKK0pVSEFTIEZFUkVOQworSlVIQVMgRkVSRU5DCitKVUhBUyBHRVpBIERSIFBST0ZFU09SCitKVUhBUyBHSVpFTEEKK0pVSEFTIElWQU5LQQorSlVIQVMgSkFOT8WgCitKVUhBUyBKQU5PxaAKK0pVSEFTIEpFTElTQVZFVEEKK0pVSEFTIEtBVEFSSU5BCitKVUhBUy1LT1NUScSGIMSQRVLEkEkKK0pVSEFTIExBRElTTEFWCitKVUhBUyBNQVJJSkEKK0pVSEFTIE1JSEFMSgorSlVIQVMgTUlIQUxKCitKVUhBUyBNSUpPCitKVUhBUyBNSVJPTgorSlVIQVMgU1RFVkFOCitKVUhBUyBTVEVWQU4KK0pVSEFTIFNURVZBTgorSlVIQVMgU1RFVkFOCitKVUhBUyBUSUJPUiBESVBMIElORworSlVIQVMgVElCT1IKK0pVSEFTIFZBTEVSSUpBCitKVUhBUyBWSUtUT1JJSkEKK0pVSEFTIFZMQURJU0xBVgorSlVLScSGIEJBTkUKK0pVS0nEhiBGUkFOSkEKK0pVS0nEhiBGUkFOSk8KK0pVS0nEhiBJVklDQQorSlVLScSGIEpPU0lQCitKVUtJxIYgTFVLQQorSlVLScSGIE1BUktPCitKVUtJxIYgTkFEQQorSlVLScSGIFZMQURJU0xBVgorSlVLT1ZJxIYgUkFTSU0KK0pVTElOQUMgRFJBR0lOSkEKK0pVTkcgxJBFUsSQCitKVU5HIEZSQU5DScWgS0EKK0pVTkcgSUJPTEpLQQorSlVORyBJTERJS08KK0pVTkcgSVZJQ0EKK0pVTkcgSk9TSVAKK0pVTkcgSk9WQU4KK0pVTkcgS0FST0xKIE1SCitKVU5HIE1BUklKQQorSlVORyBST0JFUlQKK0pVTkcgUk9CRVJUCitKVU5HIFZFUklDQQorSlVOVVpPVknEhiBJU01FVAorSlVQRUsgWkRFTktBCitKVVLEjEVWScSGIE1BUktPCitKVVLEjEnEhiDFvUVMSktPCitKVVLEjEnEhiBERVNBTktBCitKVVLFoEnEhiBDVkVUQQorSlVSQUdBIE1BUktPCitKVVJBR0EgTUlMT1JBRAorSlVSQUtJxIYgR09SQU4KK0pVUkFLScSGIElMSUpBCitKVVJBS0nEhiBJVkFOCitKVVJBS0nEhiBKRUxBCitKVVJBS0nEhiBKT1pPCitKVVJBS0nEhiBQRUpPCitKVVJBS0nEhiBTVElQTworSlVSQU5KSSBNQVJJSkEKK0pVUkFTIEFOSUNBCitKVVJBUyBBTlRFCitKVVJBU09WScSGIEpPVkFOCitKVVJDQSDFvUVMSktPCitKVVJDQSDEkE9SxJBFCitKVVJDQSBJVkFOCitKVVJDQSBMQVJJU0EKK0pVUkXFoEVWIFBFVEFSCitKVVJFxaBJxIYgSk9aTworSlVSRcWgScSGIFZFUkEKK0pVUknFoEVWScSGIEFOS0EKK0pVUknFoEVWScSGIE1BUkEKK0pVUknFoEVWScSGIE1JUktPCitKVVJJxaBJxIYgxJBPUsSQRQorSlVSScWgScSGIMSQVVJBCitKVVJJxaBJxIYgQUxPSloKK0pVUknFoEnEhiBBTkRSSUpBCitKVVJJxaBJxIYgQk9HT0xKVUIKK0pVUknFoEnEhiBEUkFHQU4KK0pVUknFoEnEhiBGUkFOSkEKK0pVUknFoEnEhiBHT1NQQVZBCitKVVJJxaBJxIYgSUdOSkFUCitKVVJJxaBJxIYgSUxJTktBCitKVVJJxaBJxIYgSVZBTgorSlVSScWgScSGIEpFTEVOQQorSlVSScWgScSGIEpPVkFOCitKVVJJxaBJxIYgS0FUQVJJTkEKK0pVUknFoEnEhiBMSlVCSUNBCitKVVJJxaBJxIYgTUFSSUpBCitKVVJJxaBJxIYgTUlMRU5LTworSlVSScWgScSGIE1JTE9SQUQKK0pVUknFoEnEhiBNSUxPUkFECitKVVJJxaBJxIYgTkVERUxKS0EKK0pVUknFoEnEhiBORU5BRAorSlVSScWgScSGIE5JS09MQQorSlVSScWgScSGIE9MR0EKK0pVUknFoEnEhiBPU1RPSkEKK0pVUknFoEnEhiBQRVRBUgorSlVSScWgScSGIFBFVEFSCitKVVJJxaBJxIYgUkFERU5LTworSlVSScWgScSGIFNURVZBTgorSlVSScWgScSGIFNURVZBTgorSlVSScWgScSGIFZMQVRLTworSlVSScWgScSGIFpPUktBCitKVVJJxaBJTiDFvUFSS08KK0pVUknFoElOIMW9SVZBCitKVVJJxaBJTiBCUkFOSVNMQVYKK0pVUknFoElOIERSQUdPTEpVQgorSlVSScWgSU4gTEpJTEpBTkEKK0pVUknFoElOIE1JTElOQQorSlVSScWgSU4gTUlMT8WgCitKVVJJxaBJTiBOQVRBTElKQQorSlVSScWgSU4gUkFTVEtPIERJUEwgSU5HCitKVVJJxaBJTiBTTEFWS08KK0pVUknFoElOIFZMQURJTUlSCitKVVJJxIYgxb1JVkFESU5LQQorSlVSScSGIEFOQQorSlVSScSGIEFWR1VTVAorSlVSScSGIEJPU0lMSktPCitKVVJJxIYgQ1ZJSk8KK0pVUknEhiBGSUxJUAorSlVSScSGIElMSUpBCitKVVJJxIYgSVZBTgorSlVSScSGIEpFTEtBCitKVVJJxIYgTUFSSUpBCitKVVJJxIYgTUFSSUpBCitKVVJJxIYgTUFSS08KK0pVUknEhiBNQVJLTworSlVSScSGIE1JTE/FoAorSlVSScSGIFBBVUxJTkEKK0pVUknEhiBQRVRBUgorSlVSScSGIFNPRklKQQorSlVSSUJBxaBJxIYgTUFSSUpBCitKVVJJQkHFoEnEhiBUT01JU0xBVgorSlVSSUMgSVZBTgorSlVSSUMgSk9TSVAKK0pVUklDIFNUSkVQQU4KK0pVUklDQSBBTkEKK0pVUklDQSBEQUxJQk9SCitKVVJJQ0EgSkFOCitKVVJJSyDFoEFORE9SCitKVVJJSyBEVcWgQU4KK0pVUklLIEpPU0lQCitKVVJJSyBKT1NJUAorSlVSSUsgSk9WQU4KK0pVUklLIE1BUklKQQorSlVSSUsgTUlIQUwKK0pVUklLIE1JTEtBCitKVVJJSyBQQVZMRQorSlVSSUsgU1RFVkFOCitKVVJJU1RPVlNLSSBHRU9SRyBESVBMIElORworSlVSSkFOT1ZJxIYgRFXFoEFOS0EKK0pVUkpFVknEhiBKQVNNSU5BCitKVVJLScSGIEFOVFVOCitKVVJLScSGIEFVR1VTVElOCitKVVJLScSGIE1BUktPCitKVVJLT1ZJxIYgQU5BCitKVVJLT1ZJxIYgQklMSkFOQQorSlVSS09WScSGIEJPxb1JQ0EKK0pVUktPVknEhiBEUkFHQU4KK0pVUktPVknEhiBEVcWgQU4KK0pVUktPVknEhiBLUklTVElOQQorSlVSS09WScSGIFBFVEFSCitKVVJLT1ZJxIYgUEVUQVIKK0pVUktPVknEhiBaTEFUS08KK0pVUktPVknEhiBaVk9OS08KK0pVUktPVlNLSSBTVEVWQU4KK0pVUkxJTkEgQU5UVU4KK0pVUkxJTkEgTUFSS08gRFIKK0pVUkxJTkEgUEFWTEUKK0pVUlVLT1ZTS0kgR09TUEFWQQorSlVSVUtPVlNLSSBMRVZLTworSlVSVUtPVlNLSSBNSUxPVkFOS0EKK0pVU1RJTiBDSVJJTAorSlVTVElOIERBTklDQQorSlVTVUZJIEJFUlpBVAorSlVTVUZPVknEhiBBTUlSCitKVVZBTiBGQU5JS0EKK0vEhklLVSDEkEFWSUQKK0vEhklLVSBSQUhJTQorS0HEjEFLIElMT05BCitLQcSMQVBPUiBTRUZFRElOCitLQcSMQVIgxIxFRE9NSVIKK0tBxIxBUiDEkFVSTworS0HEjEFSIEJSQU5JU0xBVgorS0HEjEFSIERVxaBBTktBCitLQcSMQVIgU0xBVktPCitLQcSMQVIgU0xPQk9EQU4KK0tBxIxBUiBTTE9CT0RBTgorS0HEjEFSIFRBRElKQQorS0HEjEFSRVZJxIYgTUlMQU4KK0tBxIxBVkVOREEgQlJBTklTTEFWQQorS0HEjEFWRU5EQSBMQVpPCitLQcSMQVZFTkRBIE1JTEFOCitLQcSMQVZFTkRBIE1JTE9SQUQKK0tBxIxBVkVOREEgTUlMT1JBRAorS0HEjEFWRU5EQSBTTE9CT0RBTgorS0HEjEFWRU5EQSBUQVRKQU5BCitLQcSMQVZFTkRBIFRBVEpBTkEKK0tBxIxBVkVOREEgVkVSQQorS0HEjE1BUsSMSUsgxaBURUZBTgorS0HEjE1BUsSMSUsgSkVMRU5BCitLQcWgQSBUSUJPUgorS0HFoEFJIEpFTElTQVZFVEEKK0tBxaBBTklOIE1JTEVUQQorS0HFoEFOSU4gTUlSQQorS0HFoEFOSU4gTUlSSkFOQQorS0HFoEFOSU4gTUlST1NMQVYKK0tBxaBJxIYgQUxFS1NBTkRBUgorS0HFoEnEhiBKT1ZBTiBEUgorS0HFoEnEhiBNQVJJSkEKK0tBxaBJxIYgTUlMSVZPSgorS0HFoEnEhiBNTEFERU4KK0tBxaBJxIYgUkVWRUtBCitLQcWgScSGIFZFUkEKK0tBxaBJxIYgVklLVE9SSUpBCitLQcWgScSGIFZPSklTTEFWCitLQcWgSUsgSVZBTgorS0HFoElLT1ZJxIYgxJBPUsSQTworS0HFoElLT1ZJxIYgQk/FoEtPCitLQcWgSUtPVknEhiBHT0pLTworS0HFoElLT1ZJxIYgUFJFRFJBRworS0HFoElLT1ZJxIYgU0xBVktBCitLQcWgSUtPVknEhiBWTEFETworS0HFoExJSyBJTVJFCitLQcWgTElLIE1BVElKQQorS0HFoE9WU0tJIEpBTktPCitLQcWgT1ZTS0kgTklLT0xBCitLQcSGQU5TS0kgxb1BUktPCitLQcSGQU5TS0kgxb1BUktPCitLQcSGQU5TS0kgxb1JVktPCitLQcSGQU5TS0kgxJBPUsSQRQorS0HEhkFOU0tJIEJPSkFOQQorS0HEhkFOU0tJIEJSQU5JU0xBVgorS0HEhkFOU0tJIEJSQU5LTworS0HEhkFOU0tJIERVxaBBTktBCitLQcSGQU5TS0kgRFXFoEFOCitLQcSGQU5TS0kgSkVMSVNBVkVUQQorS0HEhkFOU0tJIEtPTlNUQU5USU4KK0tBxIZBTlNLSSBMSlVCSUNBCitLQcSGQU5TS0kgTUlMSVZPSgorS0HEhkFOU0tJIE1JTElWT0oKK0tBxIZBTlNLSSBNSUxLQQorS0HEhkFOU0tJIE1JTE9SQUQKK0tBxIZBTlNLSSBNSUxVVElOCitLQcSGQU5TS0kgTUlST1NMQVZBCitLQcSGQU5TS0kgTUxBREVOCitLQcSGQU5TS0kgUEFWTEUgRFIgTEVLQVIKK0tBxIZBTlNLSSBQTEFUT04gRFIKK0tBxIZBTlNLSSBSQURPVkFOCitLQcSGQU5TS0kgU0lNQQorS0HEhkFOU0tJIFNMQVZLTworS0HEhkFOU0tJIFNNSUxKQQorS0HEhkFOU0tJIFNPRklKQQorS0HEhkFOU0tJIFNWRVRJU0xBVgorS0HEhkFOU0tJIFRPRE9SCitLQcSGQU5TS0kgVkVMSU5LQQorS0HEhkFOU0tJIFZFUkEKK0tBxIZBTlNLSSBWTEFESU1JUiBWRVRFUklOQVIKK0tBxIZBTlNLSSBWTEFESVNMQVZBCitLQcSGSUFLIE1JSEFKTE8KK0tBxIZVUklOIMW9SVZBTgorS0HEhlVSSU4gS1JJU1RJTkEKK0tBxIZVUklOIE1JTEFOQQorS0HEhlVSSU4gTUlMQU4KK0tBxIZVUklOIFJBRE9TTEFWCitLQcW9ScSGIFZMQURJTUlSCitLQUJBIFNVTEVKTUFOCitLQUJJxIYgQU5BCitLQUJJxIYgQk9HREFOCitLQUJJxIYgREFOSUxPCitLQUJJxIYgRFJBR0lDQQorS0FCScSGIERSQUdVVElOCitLQUJJxIYgU0xPQk9EQU4KK0tBQknEhiBUSU1PxaBFTktPCitLQUJJTEpPIERSQUdJQ0EKK0tBQklMSk8gSk9TSVAKK0tBQklMSk8gU0lMVklPCitLQUJPSyBFUklLQQorS0FCT0sgSk/FvUVGCitLQUNBUk/FoCBLT1NUQVMKK0tBREHFoCBMQUpPxaAgRElQTCBJTkcKK0tBREFSIEpVTElKQU5BCitLQURJxIYgSUxJSkEKK0tBREnEhiBNQVJJSkFOCitLQURJxIYgTklLT0xBCitLQURJxIYgUkFETUlMQQorS0FEScSGIFNBVkEKK0tBRElKQSBWT0pJU0xBVgorS0FESVZOSUsgTUlPRFJBRworS0FETEXEjElLIEtBVElDQQorS0FEUklKQSBGRVZaSUpBCitLQURSSUpBIEhBQklMSgorS0FEUklKQSBIQVNBRgorS0FEUklKQSBIVVJNRVQKK0tBRFZBTkogSkFOT8WgCitLQURWQU5KIEpPVkFOCitLQURWQU5KIExBRElTTEFWCitLQURWQU5KIExBSk/FoAorS0FIUklNQU4gUEVUQVIKK0tBSFJJTUFOIFNORcW9QU5BCitLQUhSSU1BTiBTTkXFvUFOQQorS0FIUklNQU4gU05Fxb1BTkEKK0tBScSGIElWQU4KK0tBScSGIEtBVEFMSU4gRFIKK0tBScSGIFBFVEFSCitLQUlOT1ZJxIYgR09SREFOQQorS0FJVE9WScSGIEpFTEEKK0tBSsSMScSGIExKSUxKQU5BCitLQUrEjEnEhiBNSUxPVkFOCitLQUrEjEnEhiBWRUxJTUlSCitLQUpFVknEhiDFvUFSS08KK0tBSkZFxaAgWlZPTktPCitLQUpHQU5JxIYgSUxJSkEKK0tBSkdBTknEhiBMSlVCQU4KK0tBSkdBTknEhiBNSUxPUkFECitLQUpHQU5JxIYgVkVST05JS0EKK0tBSknFoCDFvUVMSktPCitLQUpJxaAgTUlMRQorS0FKScSGIMW9RUxKS08KK0tBSknEhiBOQURBCitLQUpLQVJBIEJPR0RBTgorS0FKS0FSQSBNSUxFTktPCitLQUpLQVJBIFJBRE9TTEFWCitLQUpPTiBBTEVLU0FOREFSCitLQUpPTiBBTkEKK0tBSk9OIExKSUxKQU5BCitLQUpPTiBNSVJPU0xBVgorS0FKT04gTUlST1NMQVYKK0tBSlRFUyDEkFVSTworS0FKVEVaIERSQUdBTgorS0FKVEVaIE1JUktPCitLQUpURVogTkVERUxKS08KK0tBSlRFWiBST1pBTElKQQorS0FKVEVaIFRSSVZVTgorS0FKVEVaIFZBTEVOVElOQQorS0FKWkVSIEtBUkxPCitLQUtBxaAgREFNSVIKK0tBS0HFoCBJTElKQQorS0FLQcWgIEpPxb1FRgorS0FLQcWgIEpPU0lQCitLQUtBxaAgTUFSSUpBCitLQUtPTkpJIEFOQQorS0FLVcSMS0EgScWgVFZBTgorS0FLVcSMS0EgSkVMSVNBVkVUQQorS0FLVcSMS0EgU1RFVkFOCitLQUzEjE9WIE1JSEFMSgorS0FMQSBHRVpBCitLQUxBxIxBSkkgU1ZFVElTTEFWCitLQUxBxIxFVknEhiBWTEFESU1JUgorS0FMQUJBIEJPSkFOCitLQUxBQkEgQlJBTktPCitLQUxBQkEgRFJBR0lDQQorS0FMQUJBIExKVVBLTworS0FMQUJBIExVS0EKK0tBTEFCQSBNQVJLTworS0FMQUJBIE1MQURFTgorS0FMQUJBIE5JS09MQQorS0FMQUJBIFNURVZBTgorS0FMQUJJxIYgREFORQorS0FMQUJJxIYgU1RFVk8KK0tBTEFCUknEhiBCUkFOS08KK0tBTEFCUknEhiBNSUhPVklMCitLQUxBRkFUScSGIE1JTElWT0oKK0tBTEFGQVRJxIYgTkVCT0rFoEEKK0tBTEFJIEtBUk9MSgorS0FMQUpExb1JxIYgREFSS08KK0tBTEFKRMW9ScSGIExVS0EKK0tBTEFKRMW9ScSGIE1JSEFJTE8KK0tBTEFKRMW9ScSGIE1JTEFOCitLQUxBTUFOREEgRFJBR0FOCitLQUxBTUFOREEgU0xPQk9EQU4KK0tBTEFOSiDEkFVLQQorS0FMQU5KIERSQUdJxaBBCitLQUxBTkogRkVNS0EKK0tBTEFOSiBTVEVWQU4KK0tBTEFOSkEgRFXFoEFOS0EKK0tBTEFOSkEgTUlST1NMQVYKK0tBTEFOSkVWIFpPUkEKK0tBTEFOSk/FoCDEkFVSQQorS0FMQU5KT8WgIEFOQQorS0FMQU5KT8WgIEJPUklTTEFWCitLQUxBTkpPxaAgSkFOT8WgCitLQUxBTkpPxaAgTUlSSkFOQQorS0FMQU5KT8WgIFBFVEFSCitLQUxBTkpPxaAgUEVUQVIKK0tBTEFOSk/FoCBSVcW9QQorS0FMQU5KT8WgIFJVxb1BCitLQUxBTkpVxaAgxJBVUkEKK0tBTEFOSlXFoCBGUkFOSkEKK0tBTEFQQcWgIEVWSUNBCitLQUxBUEHFoEVWIERJTkEKK0tBTEFQQcWgRVYgU0lOScWgQQorS0FMQVBBVEkgxaBBUkEKK0tBTEFQQVRJIEZFUkVOQworS0FMQVBBVEkgSVZBTgorS0FMQVBBVEkgUlVET0xGCitLQUxBUEnFoCBSVURJCitLQUxBUEnFoCBaT0xUQU4KK0tBTEFVWiBNQVJJTktPCitLQUxBVVpPViBNQcWgQQorS0FMQyBNSUxFTktBCitLQUxDIE1JTEtPCitLQUxDIFNMQVZPSktBCitLQUxFQSBKRUxFTkEKK0tBTEVKU0tJIFpMQVRPTUlSCitLQUxFTSBCUkFOS08KK0tBTEVNIElWQU5LQQorS0FMRU0gTUlSSkFOQQorS0FMRU0gTkVERUxKS08KK0tBTEVNIFNSRVRFTgorS0FMRU0gU1JFVEVOCitLQUxFTUJFUiBCT8WgS08KK0tBTEVNQkVSIE1JxaBBCitLQUxFTUJFUiBNSUxFTkEKK0tBTEVNQkVSIE1JTElWT0oKK0tBTEVNQkVSIE1JUkpBTkEKK0tBTEVNQkVSIFNPRklKQQorS0FMRU1CRVIgU1RPSkFESU4KK0tBTEVNSSDFoEVSSUYKK0tBTEVOREVSIEtSSVNUSU5BCitLQUxFTknEhiBBTEVLU0FOREFSIERJUEwgSU5HCitLQUxFTknEhiBBTEVLU0FOREFSCitLQUxFTknEhiBWT0pJU0xBVgorS0FMRU5KVUsgTUlUQVIKK0tBTEVOVEnEhiBCT1NBCitLQUxFTlRJxIYgUkFET1ZBTgorS0FMRVpJxIYgSkVMRU5BCitLQUxFWknEhiBKT1ZBTktBCitLQUxFWknEhiBPTEdBCitLQUxFWknEhiBUT01JU0xBVgorS0FMScSMQU5JTiBNT03EjElMTworS0FMScSGIERSQUdBTkEKK0tBTEnEhiBKT1NJUAorS0FMScSGIEpPVkFOS0EKK0tBTEnEhiBNSUxFTkEKK0tBTEnEhiBNVVNUQUZBCitLQUxJxIYgT0xHQQorS0FMScSGIFJBRE9WQU4KK0tBTEnEhiBTT0ZJSkEKK0tBTElLIEdST1pEQQorS0FMSU4gRURVQVJECitLQUxJTiBNQVJJSkFOCitLQUxJTknEhiBEQU5JQ0EKK0tBTElOScSGIEpPVk8KK0tBTElOScSGIEtSU1RPCitLQUxJTknEhiBNSUxBRElOCitLQUxJTknEhiBNSUxJQ0EKK0tBTElOScSGIE5BREEKK0tBTElOU0tJIERBUktPCitLQUxJVk9EQSBSVURPTEYKK0tBTEpFVknEhiBBTEVLU0FOREFSCitLQUxKRVZJxIYgS1JTVE8KK0tBTEpFVknEhiBTVEVWQU4KK0tBTEtBTiBNSUxBTgorS0FMTUFOIEtMQVJBCitLQUxNQU4gTUlIQUpMTworS0FMTUFOIE1JS0xPxaAKK0tBTE1BTiBSQURJQ0EKK0tBTE1BUiDEkE9SxJBFCitLQUxNQVIgxJBVUkEKK0tBTE1BUiBBTkEKK0tBTE1BUiBGRVJFTkMKK0tBTE1BUiBGUkFOSkEKK0tBTE1BUiBHUkdVUgorS0FMTUFSIEnFoFRWQU4KK0tBTE1BUiBMQUpPxaAKK0tBTE1BUiBNSVJLTworS0FMTUFSLVZFUkXFoCBHSVpFTEEKK0tBTE1BUiBWTEFESU1JUgorS0FMTUFSRVZJxIYgQUxFS1NBTkRBUgorS0FMTk9LIFNMT0JPREFOCitLQUxPxIxBSSDFoEFORE9SCitLQUxPxIxBSSBJxaBUVkFOCitLQUxPxIxBSSBMRU5LRQorS0FMT8SMQUkgUEVUQVIKK0tBTE/EjEFKSSDEkE9SxJBFCitLQUxPxIxBTkogRkVSRU5DCitLQUxPQ0kgSVZBTgorS0FMT0NJIExBRElTTEFWCitLQUxPQ0kgVElCT1IKK0tBTE9DSSBWRVNFTElOS0EKK0tBTE9QRVIgSk9WQU5LQQorS0FMT1BFUiBQRVJJQ0EKK0tBTE9aSSBBUkFOS0EKK0tBTFRORUtFUiBFTUlMSUpBCitLQUxUTkVLRVIgRU1JTElKQQorS0FMVcWgRVYgR0xJxaBBCitLQUxVxaBLQSBTTEFWS08KK0tBTFXFvUnEhiBLQVRJQ0EKK0tBTFXFvUnEhiBOQURBCitLQUxVxJBFUk9WScSGIE1BUktPCitLQUxVxJBFUk9WScSGIE1JTElWT0pFCitLQUxVxJBFUk9WScSGIE1JTE/FoAorS0FMVcSQRVJPVknEhiBNSVJJSkFOQQorS0FMVcSQRVJPVknEhiBNTEFERU4KK0tBTFXEkEVST1ZJxIYgTU9NxIxJTE8KK0tBTFXEkEVST1ZJxIYgT0xJVkVSQQorS0FMVcSQRVJPVknEhiBVUk/FoAorS0FMVcSQRVJTS0kgxJBPS0EKK0tBTFXEkEVSU0tJIMSQT0tBCitLQUxVxJBFUlNLSSBBR05FWkEKK0tBTFXEkEVSU0tJIEJPUklTCitLQUxVxJBFUlNLSSBHQVZSQQorS0FMVcSQRVJTS0kgTUlMT1JBRAorS0FMVcSQRVJTS0kgTUlST1NMQVYKK0tBTFXEkEVSU0tJIFNJTknFoEEKK0tBTFXEkEVSU0tJIFNUT0pBTiBEUgorS0FMVUdFUiBOSUtPTEEKK0tBTFVHRVIgWk9SQU4KK0tBTcSMRVNLQSBEUkFHSUNBCitLQU3EjEVTS0kgRElNxIxFCitLQU3EjEVTS0kgU1RFVkFOCitLQU3EjEVWScSGIEFOQQorS0FNxIxFVlNLSSBTQVZBCitLQU1BUklUIFpPUkFOCitLQU1BU0kgRkVSRU5DCitLQU1BU0kgRkVSRU5DCitLQU1BU0kgSU1SRQorS0FNQVNJIEpBTk/FoAorS0FNQkVSSSBEVcWgQU4KK0tBTUJFUkkgTVVTQQorS0FNQkVST1ZJxIYgQkFUTworS0FNQkVST1ZJxIYgU0lOScWgQQorS0FNRU5BUk9WScSGIEdMSUdPUklKRQorS0FNRU5BUk9WScSGIE1JTEFOCitLQU1FTkFST1ZJxIYgTklLT0xBCitLQU1FTkpJQ0tJIEpVTElKQU4KK0tBTUVOS08gTUlMQU4KK0tBTUVOS08gUkFERQorS0FNRU5LTyBSQURFCitLQU1FTktPIFZFUkEKK0tBTUVOS09WScSGIEFMRUtTQU5EUkEKK0tBTUVOS09WScSGIERPQlJJTEEKK0tBTUVOS09WScSGIEpPU0lQCitLQU1FTktPVknEhiBKT1ZBTktBCitLQU1FTktPVknEhiBPTEdBCitLQU1FTk9WIEVNSUwgRFIKK0tBTVBFTCBJVkFOCitLQU1QScSGIFBBVkxFCitLQU1SQSBJVkFOCitLQU7EjEFSIEVSxb1FQkVUCitLQU5BxIxLSSDFvUFSS08KK0tBTkHEjEtJIExKSUxKQU5BCitLQU5BxIxLSSBNQUdEQUxFTkEKK0tBTkHEjEtJIFNURVZBTgorS0FOQcSMS0kgWkxBVEEKK0tBTkFaSVIgxb1JVktBCitLQU5BWklSIEFMRUtTQU5EQVIKK0tBTkFaSVItQkVMScSGIE1JTElDQQorS0FOQVpJUiBCT1JJU0xBVgorS0FOQVpJUiBCT1JJU0xBVgorS0FOQVpJUiBCUkFOSVNMQVYKK0tBTkFaSVIgQ1ZFVEEKK0tBTkFaSVIgRFJBR0lDQQorS0FOQVpJUiBEUkFHSUNBCitLQU5BWklSIERVxaBBTgorS0FOQVpJUiBJVkFOS0EKK0tBTkFaSVIgSk9WQU5LQQorS0FOQVpJUiBKT1ZBTgorS0FOQVpJUiBLT1NUQQorS0FOQVpJUiBLT1NUQQorS0FOQVpJUiBLT1NUQQorS0FOQVpJUiBNQVJJSkEKK0tBTkFaSVIgTUlMQU4KK0tBTkFaSVIgTUlMSUNBCitLQU5BWklSIE1JTE9WQU4KK0tBTkFaSVIgUkFESVZPSgorS0FOQVpJUiBTTEFWS08KK0tBTkFaSVIgVkFTQQorS0FOQVpJUiBWRVJJQ0EgRFIKK0tBTkFaSVIgVlVLSUNBCitLQU5BWklSIFpBSEFSSUpFCitLQU5CQU4gTUlMSUNBCitLQU5EScSGIE5BREEKK0tBTkRJxIYgUkFETUlMQQorS0FOREnEhiBTTUlMSkFOQQorS0FOREnEhiBWSURPSkUKK0tBTkRSQcSMIMSQT1LEkEUKK0tBTkRSQcSMIExFT05BCitLQU5HUkdBIEFOS0EKK0tBTkdSR0EgS09TVEEKK0tBTkdSR0EgUlXFvUEKK0tBTknFvUFJIEVWQQorS0FOSkEgSkFOCitLQU5KRVJJxIYgTUFURQorS0FOSk8gScWgVFZBTgorS0FOSk8gU1RKRVBBTgorS0FOSk8gWk9MVEFOCitLQU5KVUggSkFLSU0KK0tBTkpVSCBKT0FLSU0KK0tBTkpVSCBNQVJJQ0EKK0tBTkpVSCBNSVJBCitLQU5KVUggVkxBRElNSVIKK0tBTkpVSCBaVk9OS08KK0tBTkpVS0EgSVZBTgorS0FOSlVLQSBWTEFESU1JUgorS0FOS0FSQcWgIFJBRE9TQVYKK0tBTktBUkHFoCBWRVNFTElOCitLQU5MScSGIE1JTEFOCitLQU5MScSGIFpBUklKQQorS0FOT1ZJxIYgUEFWTEUgRElQTCBJTkcKK0tBTlRBUiDEkFVSTworS0FOVEFSIERNSVRBUgorS0FOVEFSIEtBSkEKK0tBTlRBUiBNSUxBTgorS0FOVEFSIE1JTE/FoAorS0FOVEFSIE1JUk9TTEFWCitLQU5UQVIgTklLT0xBCitLQU5UQVIgT1NUT0pBCitLQU5UQVIgVkxBRE8KK0tBTlRBUkTFvUnEhiDEkE9SxJBFCitLQU5UQVJExb1JxIYgR09SREFOQQorS0FOVEFSRMW9ScSGIEpFTEVOQQorS0FOVEFSRMW9ScSGIEtBVElDQQorS0FOVEFSRMW9ScSGIEtPU1RBCitLQU5UQVJExb1JxIYgTEFaQVIKK0tBTlRBUkTFvUnEhiBMQVpBCitLQU5UQVJExb1JxIYgTUlMSUNBCitLQU5UQVJExb1JxIYgTUlMT1ZBTgorS0FOVEFSRMW9ScSGIE1JTE9WQU4KK0tBTlRBUkTFvUnEhiBNSVJPU0xBVgorS0FOVEFSRMW9ScSGIE1MQURFTgorS0FOVEFSRMW9ScSGIE5BREEKK0tBTlRBUkTFvUnEhiBPTEdBCitLQU5UQVJExb1JxIYgUEVUQVIKK0tBTlRBUkTFvUnEhiBTVEVWQU4KK0tBTlRBUkTFvUnEhiBWQVNBCitLQU5USU5LT1NLSSBIQU5VCitLQU5UT1IgTEFKT8WgCitLQU5UT1IgT1NLQVIKK0tBTlVSScSGIEFMRUtTQU5EQVIKK0tBTlVSScSGIE1JTElDQQorS0FOVVJJxIYgWk9SS0EKK0tBTlVSU0tJIEpPVkFOCitLQU5VUlNLSSBWSURPU0FWQQorS0FQQU1BRMW9SUpBIEFMRUtTQU5EUkEKK0tBUEFNQUTFvUlKQSBCT1JJU0xBViBEUgorS0FQQU1BRMW9SUpBIERVxaBBTktBCitLQVBBTUFExb1JSkEgUkFETUlMQQorS0FQQU1BRMW9SU4gSk9WQU4KK0tBUEVMQU4gTklLT0xBCitLQVBFUyBBTEVLU0FOREFSCitLQVBFUyBaRFJBVktBCitLQVBFVEFOScSGIFRPTUlTTEFWCitLQVBFVEFOT1YgTUlSSkFOQQorS0FQRVRBTk9WIFNWRVRJU0xBVgorS0FQRVRBTk9WIFZVS0lDQQorS0FQRVRBTk9WScSGIEpPVkFOCitLQVBFVEFOT1ZJxIYgTUlESEFUCitLQVBFVEFOT1ZJxIYgTU9NxIxJTE8KK0tBUEVUQU5PVknEhiBPTEdBCitLQVBFVEFOT1ZJxIYgUkFUS08KK0tBUEVUQU5PVknEhiBWRVJJQ0EKK0tBUEnEjEnEhiBEVcWgQU4KK0tBUEnEjEnEhiBTQVZPCitLQVBJxIxJxIYgU1RFVkFOCitLQVBJQ0wgRFJBR1VUSU4KK0tBUElUQU5KIExBU0xPCitLQVBMQVIgxb1JVkFOCitLQVBMQVIgTUFSSUpBCitLQVBMQVJFVknEhiBNSU9EUkFHCitLQVBMQVJTS0kgS09OU1RBTlRJTgorS0FQTEFSU0tJIE1MQURFTgorS0FQTEFSU0tJIFNWRVRMQU5BCitLQVBMSUpFViBQRVRBUgorS0FQTUFKRVIgQUxFS1NBTkRBUgorS0FQT8SMIEFOVEFMCitLQVBPxIwgSlVESVQKK0tBUE9SIEFHTkXFoAorS0FQT1IgQUxFS1NBTkRBUgorS0FQT1IgREVTQU5LQQorS0FQT1IgR09KS08KK0tBUE9SIEtBVEFSSU5BCitLQVBPUiBOQURBCitLQVBPUiBOT1ZJQ0EKK0tBUE9SIFNUQU5BCitLQVBPU1RBIFRFUkVaQQorS0FQUknFoCBNSVJKQU5BCitLQVBVxIYgSUxPTkEKK0tBUsSGQcWgIE1JTEtBCitLQVJBxIwgTUlSS08KK0tBUkHEjE9OSkkgScWgVFZBTgorS0FSQcSGIERSQUdBTgorS0FSQcSGIERVxaBBTgorS0FSQcSGIERVxaBBTgorS0FSQcSGIElMSUpBCitLQVJBxIYgSkVMSUNBCitLQVJBxIYgTEpVQk9NSVIKK0tBUkHEhiBNQVJJSkEKK0tBUkHEhiBNSUxFTktPCitLQVJBxIYgUkFERU5LTworS0FSQcSGIFJBSktPCitLQVJBxIYgU0xPQk9EQU4KK0tBUkHEkEVOT1YgSVZBTgorS0FSQcSQRU5PViBJVkFOCitLQVJBxJBFTk9WIE1JUkpBTkEKK0tBUkHEkElOT1ZJxIYgxaBQSVJPCitLQVJBxJBJTk9WScSGIE5FTkFECitLQVJBxJBJTk9WScSGIFBFVEFSCitLQVJBxJBJTk9WScSGIFZFTElNSVIKK0tBUkHEkElOT1ZJxIYgWk9SQQorS0FSQUJBIElSRU5BIERSIExFS0FSCitLQVJBQkEgSk9WQU4KK0tBUkFCQSBPTEdBCitLQVJBQkHFoCBNSUxJVk9KCitLQVJBQkHFoCBTTE9CT0RBTgorS0FSQUJBU0lMIERSQUdBTgorS0FSQUJBU0lMIFZJRE9NSVIKK0tBUkFCRUdPVknEhiBEQU5JTE8KK0tBUkFExb1JxIYgxaBVSk8KK0tBUkFExb1JxIYgxb1BUktPCitLQVJBRMW9ScSGIMSQT1LEkEUKK0tBUkFExb1JxIYgQVJTRU5JSkUKK0tBUkFExb1JxIYgQVZSQU0KK0tBUkFExb1JxIYgQk/FvU8KK0tBUkFExb1JxIYgQlJBVElTTEFWCitLQVJBRMW9ScSGIEpPVkFOCitLQVJBRMW9ScSGIEpPVkFOCitLQVJBRMW9ScSGIEtTRU5JSkEKK0tBUkFExb1JxIYgTUFSSUpBCitLQVJBRMW9ScSGIE1JTE9SQUQKK0tBUkFExb1JxIYgTUlPRFJBRworS0FSQUTFvUnEhiBNSVJPU0xBVgorS0FSQUTFvUnEhiBORU5BRAorS0FSQUTFvUnEhiBSRUxKQQorS0FSQUTFvUnEhiBSVcW9QQorS0FSQUTFvUnEhiBTTEFWSUNBCitLQVJBRMW9ScSGIFRWUlRLTworS0FSQUTFvUnEhiBWRVJBCitLQVJBRMW9ScSGIFZVSworS0FSQUTFvUnEhiBaT1JBTgorS0FSQUTFvUnEhiBaT1JBTgorS0FSQURBUkVWScSGIE1JTEFOCitLQVJBREFSRVZJxIYgTUlMT8WgCitLQVJBREVHTEnEhiBLT1NBCitLQVJBR0EgTklLT0xBCitLQVJBR0nEhi1MSVBJTlNLSSBJTE9OQQorS0FSQUlDQSBaT1JBTgorS0FSQUpLT1YgQUxPSlpJSkUKK0tBUkFKS09WIFZMQURJTUlSCitLQVJBSktPViBWTEFESU1JUgorS0FSQUpMT1ZJxIYgxJBVUk8KK0tBUkFKT1ZJxIYgTUlMVVRJTgorS0FSQUtBxaAgTUlSSkFOQQorS0FSQUtBxaBFVknEhiBERVNBTktBCitLQVJBS0HFoEVWScSGIERSQUdJQ0EKK0tBUkFLQcWgRVZJxIYgRVZJQ0EKK0tBUkFLQcWgRVZJxIYgU1RFVkFOCitLQVJBS0HFoEVWScSGIFpPUkEKK0tBUkFNQVJLT1ZJxIYgTUlMQQorS0FSQU1BVEnEhiBBTlRFCitLQVJBTiDFvUVMSktPCitLQVJBTiBEUkFHQU4KK0tBUkFOLUtFUk4gQkFSQkFSQQorS0FSQU4gTUlMQU4KK0tBUkFOIE1JTEVOS08KK0tBUkFOIE1JTElOS08KK0tBUkFOIFNBVk8KK0tBUkFOIFNSxJBPCitLQVJBTkpBQyBEUkFHT1NMQVYKK0tBUkFOSkFDIExKVUJJQ0EKK0tBUkFOSkFDIFZFUk9MSlVCCitLQVJBTk9WIMW9SVZBTgorS0FSQU5PViBCVURJTUtBCitLQVJBTk9WIERSQUdPTEpVQgorS0FSQU5PViBLVVpNQU4KK0tBUkFOT1YgTUlMQU4KK0tBUkFOT1YgTUlMT1ZBTgorS0FSQU5PViBNSVJPU0xBVgorS0FSQU5PViBTT0ZJSkEKK0tBUkFOT1ZJxIYgxJBPUsSQRQorS0FSQU5PVknEhiBCT8W9TworS0FSQU5PVknEhiBEUkFHQU4KK0tBUkFOT1ZJxIYgRFXFoEFOCitLQVJBTk9WScSGIERVxaBBTgorS0FSQU5PVknEhiBFTUlMSUpBCitLQVJBTk9WScSGIEdSRVRBCitLQVJBTk9WScSGIElMSUpBCitLQVJBTk9WScSGIElMSUpBCitLQVJBTk9WScSGIElMSUpBCitLQVJBTk9WScSGIElWSUNBCitLQVJBTk9WScSGIEpPVkFOCitLQVJBTk9WScSGIEtBVElDQQorS0FSQU5PVknEhiBMSklMSkFOQQorS0FSQU5PVknEhiBMSlVCQQorS0FSQU5PVknEhiBNSUxBTgorS0FSQU5PVknEhiBNSUxBTgorS0FSQU5PVknEhiBNSUxPTUlSCitLQVJBTk9WScSGIE1JTFVUSU4KK0tBUkFOT1ZJxIYgTUlSSkFOQQorS0FSQU5PVknEhiBNSVJLTworS0FSQU5PVknEhiBOSUtPTEEKK0tBUkFOT1ZJxIYgUEVSTworS0FSQU5PVknEhiBSQVRLTworS0FSQU5PVknEhiBTTEFWS08KK0tBUkFOT1ZJxIYgU0xPQk9EQU4KK0tBUkFOT1ZJxIYgU1RFVkFOCitLQVJBTk9WScSGIFNURVZPCitLQVJBTk9WScSGIFNWRVRPWkFSCitLQVJBTk9WScSGIFRSSVZPCitLQVJBTk9WScSGIFZFU08KK0tBUkFOT1ZJxIYgVkxBRElNSVIKK0tBUkFQQU7FvUEgTUFSSUpBCitLQVJBUEFORMW9QSBMSklMSkFOQQorS0FSQVBBTkTFvUEgVklUT01JUgorS0FSQVBBTkTFvUnEhiDEkFVSQQorS0FSQVBBTkTFvUnEhiBHT1JEQU5BCitLQVJBUEFORMW9ScSGIE1JUkpBTkEKK0tBUkFQQU5Exb1JTiBCQVJCQVJBCitLQVJBUEFORMW9SU4gWk9SS0EKK0tBUkFTIEtBWklNSVIKK0tBUkFTIE1BR0RBCitLQVJBUyBQRVRBUgorS0FSQVMgUEVUQVIKK0tBUkFTQUxJSE9WScSGIFNNQUlMCitLQVJBU0VLIEtBUk9MSgorS0FSQVNJSiBCT1JJUworS0FSQVNJSiBKQVNNSU5BCitLQVJBU0lKIFZFUk9OSUtBCitLQVJBVEkgRVVHRU4KK0tBUkFUVVIgSkFEUkFOS0EKK0tBUkFWTEEgS0FUQVJJTkEKK0tBUkFWTEEgWkxBVEtPCitLQVJBVkxBIFpPUklDQQorS0FSQkFOIFJVRE9MRgorS0FSREHFoCBPQlJBRAorS0FSREHFoCBPTEdBCitLQVJEQcWgRVZJxIYgQlJBTklTTEFWCitLQVJEQcWgRVZJxIYgRklKQQorS0FSREHFoEVWScSGIEhVU05JSkEKK0tBUkRPxaAgQUxFS1NBTkRBUgorS0FSRE/FoCBFUklLQQorS0FSRE/FoCBJTE9OQQorS0FSRE/FoCBMQUpPxaAKK0tBUkRPxaAgUEFMCitLQVJET8WgIFZFUk9OSUtBCitLQVJET1YgSk9TSVAKK0tBUkRVTSDEkE9SxJBFCitLQVJHQcSMSU4gSkVMSVNBVkVUQQorS0FSScWgScSGIElWQU5LQQorS0FSScWgSUsgREFORQorS0FSScWgSUsgSk9WQU5LQQorS0FSScWgSUsgTUlMVVRJTgorS0FSScSGIEJPU0lMSktBCitLQVJJxIYgSk9WQU5LQQorS0FSScSGIFJBRE9TTEFWCitLQVJJxIYgU0FWQQorS0FSScSGIFNBVkEKK0tBUknEhiBTVkVUSVNMQVYKK0tBUklLTyBKT1NJUAorS0FSSUtPIE1BUklKQQorS0FSSUtPIFRFUkVaQQorS0FSSU5BIERSQUdJQ0EKK0tBUklVUyBNQVJJSkEKK0tBUklVUyBWRVJBCitLQVJMQcWgIE1JTE9SQUQKK0tBUkxBVkFSSVMgRFJBR0FOCitLQVJMQVZBUklTIElWQU4KK0tBUkxBVkFSSVMgTkFEQQorS0FSTEFWQVJJUyBSQURJVk9KCitLQVJMQVZBUklTLVpFS09WScSGIE1JUkVMQQorS0FSTEnEhiBKRUZUQQorS0FSTEnEhiBMQVpBUgorS0FSTEnEhiBNSUxJVk9KCitLQVJMTyBWQUpEQQorS0FSTE9WxIxFQyBNSVJLTworS0FSTE9WScSGIMSQRVLEkAorS0FSTE9WScSGIE1BUklDQQorS0FST0xJxIYgTEpVQklDQQorS0FST0xJxIYgTUlSS08KK0tBUk9MScSGIE1JUk9TTEFWCitLQVJPTEpJIEpBTk/FoAorS0FST0xKSSBMQVNMTworS0FST1ZJxIYgR0xJxaBBCitLQVJQQVRJIExBU0xPCitLQVJQT05KQSBKVUxJSkFOQQorS0FSUE9OSkEgU0lOScWgQQorS0FSVEFHIE5BTkRPUgorS0FSVEFJIExBSk/FoAorS0FSVEFMT1ZJxIYgTUlMQU4KK0tBUlRKRSBKT1ZBTgorS0FSVkFLIEVNQQorS0FSVkFLIEdFWkEKK0tBU0EgxJBFUsSQCitLQVNBIEFORFJJSkEKK0tBU0EgQU5UQUwKK0tBU0EgRlJBTkpBCitLQVNBIElEQQorS0FTQSBJTVJFCitLQVNBIEpFTEVOQQorS0FTQSBNSUhBTEoKK0tBU0EgUlXFvUEKK0tBU0EgUlXFvUEKK0tBU0EgWk9SS0EKK0tBU0HFoCBBTEVLU0FOREFSIE1SCitLQVNBxaAgQUxFS1NBTkRBUgorS0FTQcWgIElNUkUKK0tBU0HFoCBJTVJFCitLQVNBxaAgSU1SRQorS0FTQcWgIEpBTk/FoAorS0FTQcWgIEpPxb1FRgorS0FTQcWgIEpPU0lQCitLQVNBxaAgS0FST0xKCitLQVNBxaAgS0FST0xKCitLQVNBxaAgS0FST0xKCitLQVNBxaAgT0xHQQorS0FTQUdJxIYgQk9SSVNMQVYKK0tBU0FMSUNBIMW9QVJLTworS0FTQUxJQ0Egxb1JVktPCitLQVNBTElDQSBNSUxBTgorS0FTQUxJQ0EgU1RFVkFOSUpBCitLQVNBUCBFUlZJTgorS0FTQVBPViBTVEVWQU4KK0tBU0FQT1ZJxIYgTUFSQQorS0FTQVBPVknEhiBNRUhPCitLQVNBUE9WScSGIFRJSE9NSVIKK0tBU0FQU0tJIMW9QVJLTworS0FTQVBTS0kgSkVMS0EKK0tBU0FSIFNFTElNCitLQVNJxIYgREFOSUNBCitLQVNORVIgTUlKT0xKS0EKK0tBU1BFUiBBTEVLU0FOREFSCitLQVNQRVIgRkVSRU5DCitLQVNQRVIgRlJBTkpBCitLQVNQRVIgTEFESVNMQVYKK0tBU1BFUiBTVEVWQU4KK0tBU1RFTEkgxJBVUsSQSU5LQQorS0FTVEVMSSBNQVJLTworS0FTVE9SSSBSVURPTEYKK0tBU1RSQVRJIEZBRElMCitLQVNUUkFUT1ZJxIYgQUxFS1NBTkRBUgorS0FTVFJBVE9WScSGIEJPR0RBTgorS0FTVFJBVE9WScSGIE1JSEFJTE8KK0tBU1RSQVRPVknEhiBWTEFESU1JUgorS0FTVFJBVE9WScSGIFpPUkFOCitLQVNUUkFUT1ZJxIYgWk9SQU4KK0tBVEHFoEnEhiBQRVRBUgorS0FUQUxFTknEhiBEVcWgQU4KK0tBVEFMSU7EjEVWIMW9SVZBTgorS0FUQU5BIEFOR0VMSU5BCitLQVRBTkEgTklLT0xBCitLQVRBTknEhiBBTsSQRUxLQQorS0FUQU5JxIYgSkVDQQorS0FUQU5JxIYgS1NFTklKQQorS0FUQU5JxIYgTEpVQklDQQorS0FUQU5JxIYgTUFSQQorS0FUQU5JxIYgUkFESVZPSgorS0FUQU5JxIYgUkFET01JUgorS0FUQU5JxIYgU0FWQSBEUgorS0FUQU5TS0kgTUlMT8WgCitLQVRBTlNLSSBQQVZMRQorS0FUQVJJTsSMScSGIENFTEVTVElOCitLQVRBUklWQVMgRUxBCitLQVRBUklWQVMtTklLT0xJxIYgR0laRUxBCitLQVRBVEnEhiBJTE9OQQorS0FUQVZBIFJVRE9MRgorS0FUQVZJxIYgREFOSUxLQQorS0FUQVZJxIYgTUFSSUpBCitLQVRBVknEhiBSQURNSUxBCitLQVRJxIYgQURBCitLQVRJxIYgQUxFS1NBTkRBUiBESVBMIElORworS0FUScSGIEJPU0lMSktBCitLQVRJxIYgREFSQQorS0FUScSGIERPQlJJTEEKK0tBVEnEhiBHT0pLTworS0FUScSGIElMSUpBCitLQVRJxIYgSUxJSkEKK0tBVEnEhiBJVkFOCitLQVRJxIYgSk9WQU4KK0tBVEnEhiBKT1ZPCitLQVRJxIYgS09TVEEKK0tBVEnEhiBLUlNUQQorS0FUScSGIEtTRU5JSkEKK0tBVEnEhiBMSklMSkFOQQorS0FUScSGIExKVUJJTktPCitLQVRJxIYgTFVLQQorS0FUScSGIE1BUkdBUkVUQQorS0FUScSGIE1BUklKQQorS0FUScSGIE1JTEFOCitLQVRJxIYgTUlMQU4KK0tBVEnEhiBNSUxPUkFECitLQVRJxIYgTUlMT1JBRAorS0FUScSGIE1JVEEKK0tBVEnEhiBOSUtPTEEKK0tBVEnEhiBOT1ZBSworS0FUScSGIE9USUxJSkEKK0tBVEnEhiBQQVZMRSBEUgorS0FUScSGIFJBRElWT0oKK0tBVEnEhiBSQVRLTworS0FUScSGIFNBVk8KK0tBVEnEhiBTTE9CT0RBTgorS0FUScSGIFNMT0JPREFOCitLQVRJxIYgU05Fxb1BTkEKK0tBVEnEhiBTUkVURU4KK0tBVEnEhiBTVEFOS08KK0tBVEnEhiBTVkVUSVNMQVYKK0tBVEnEhiBTVkVUTEFOQQorS0FUScSGIFZFU0VMQQorS0FUScSGIFZFU05BCitLQVRJxIYgVkxBRElNSVIKK0tBVEnEhiBaTEFUT01JUgorS0FUSU7EjEnEhiDFvUVMSU1JUiBESVBMIElORworS0FUTknEhiBTQVZFVEEKK0tBVE9OQSBJTVJFCitLQVRPTkEgSk/FvUVGCitLQVRPTkEgTEFKT8WgIERJUEwgSU5HCitLQVRPTkEgTEFTTE8KK0tBVE9OQSBWSU5DRQorS0FVUknEhiBOSUtPTEEKK0tBVVJJTiBKVVJFCitLQVVSSU4gS1JTVE8KK0tBVVJJTiBMQVpBUgorS0FVUklOIE1PTcSMSUxPCitLQVVSSU4gTkVERUxKS08KK0tBVVJJTiBWQVNPCitLQVVSSU5PVknEhiBCT8W9SURBUgorS0FVUklOT1ZJxIYgU0lNTyBESVBMIElORworS0FVVEVOIEpPSEFOCitLQVbEjEnEhiBTVEVWQU4KK0tBVkFKQSBMVUtBCitLQVZBSkEgTklLTworS0FWQUxJxIYgQk9SSVNMQVYKK0tBVkXEjEFOIElWQU4gRFIKK0tBVkXEjEFOIE5JS09MQQorS0FWR0nEhiBNSU9EUkFHCitLQVZHScSGIE5JS09MQQorS0FWR0nEhiBQRVRBUgorS0FWR0nEhiBQRVRBUgorS0FWR0nEhiBTVEVWQU4KK0tBVlJBSkEgU1RFVkFOCitLQVZSQUpBIFNWRVRPWkFSCitLQVZSQU4gxb1FTEpLTworS0FaQUZFUk9WScSGIFJFxaBBRAorS0FaQU5DRVYgSk9TSVBBCitLQVpJIEVSTkUKK0tBWkkgSk/FvUVGCitLQVpJSkEgU01JTEpLQQorS0FaSU1JxIYgU1RFVkFOCitLQVpJTUlST1ZJxIYgQU5BCitLQVpJTUlST1ZJxIYgTEpVQklTQVYKK0tBWklNSVJPVknEhiBNSVJKQU5BCitLQVpJTUlST1ZJxIYgTkVTVE9SCitLRcSMQSBCT0pBTkEKK0tFxIxBIERVxaBBTktBCitLRcSMQSBJTElKQQorS0XEjEEgTUlLQU4KK0tFxIxBIE1JTEFOCitLRcSMQSBNSUxBTgorS0XEjEEgTUlMQU4KK0tFxIxBIE1JTEVOS08KK0tFxIxBIE1JTEVWQQorS0XEjEEgUEVSTworS0XEjEEgUkFOS08KK0tFxIxBIFNMT0JPREFOCitLRcSMQSBWT0pJTgorS0XEjEnEhiDFvUlWQU4KK0tFxIxJxIYgTUlMQU4gQUtBREVNU0tJIFNMSUtBUgorS0XEjEtFxaAgxJBFUsSQCitLRcSMS0XFoCBGRVJFTkMKK0tFxIxLRcWgIEpPU0lQCitLRcSMS0VNRVRJIEnFoFRWQU4KK0tFxIxLSSBSVcW9SUNBCitLRcWgQU5TS0kgSVZLQQorS0XFoEFOU0tJIEtBVElDQQorS0XFoEFOU0tJIFJBREVOS08KK0tFxaBBTlNLSSBSQURJVk9KCitLRcWgQU5TS0kgUlXFvUlDQQorS0XFoEFOU0tJIFNJTU8KK0tFxaBBTlNLSSBTVEFOSVNMQVYKK0tFxaBFTEogxIxFRE9NSVIKK0tFxaBFTEogRVZBCitLRcWgRUxKIEdPSktPCitLRcWgRUxKIEpPVkFOCitLRcWgRUxKIFJBRE1JTEEKK0tFxaBFTEogU0xPQk9EQU4KK0tFxaBFTEogVUdMSkXFoEEKK0tFxaBFTEogVlVLQcWgSU4KK0tFxaBLScSGIFpWT05JTUlSCitLRcWgTUFSS0ktS1JFU1RBIEpFTEVOQQorS0XFvUnEhiBCSUxKQU5BCitLRcW9ScSGIERVxaBBTgorS0XFvUnEhiBLQVRJQ0EKK0tFxb1JxIYgTUFSSkFOCitLRcW9ScSGIE1JTEFOCitLRcW9ScSGIE5FVkVOS0EKK0tFxb1JxIYgVkxBRE8KK0tFQklOIMW9QVJLTworS0VDRUxJIE1JSEFMSgorS0VDScSGIERBTklMTyBEUgorS0VDScSGIE1JUk9TTEFWCitLRUNJxIYgU0xPQk9EQU4KK0tFQ01BTiDEjEVEQQorS0VDTUFOIMW9QVJLTworS0VDTUFOIMSQVVJPCitLRUNNQU4gxJBVUk8KK0tFQ01BTiBCT1JJU0xBVgorS0VDTUFOIEJSQU5LTworS0VDTUFOIERSQUdJQ0EKK0tFQ01BTiBEVcWgQU4KK0tFQ01BTiBJTElKQQorS0VDTUFOIEpPVkFOCitLRUNNQU4gSk9WQU4KK0tFQ01BTiBKVUxLQQorS0VDTUFOIExKVUJBCitLRUNNQU4gTUFSQQorS0VDTUFOIE1BUktPCitLRUNNQU4gTUlMQURJTgorS0VDTUFOIE1JTEFOCitLRUNNQU4gTUlMQU4KK0tFQ01BTiBNSUxLQQorS0VDTUFOIE1JTFVUSU4KK0tFQ01BTiBNSVJKQU5BCitLRUNNQU4gTUlST1NMQVZBCitLRUNNQU4gTUxBREVOCitLRUNNQU4gU1RFVkFOCitLRUNNQU4gU1ZFVEtPCitLRUNPIMSMRURPTUlSCitLRUNPIEdPSktPCitLRUNPIEpFTEVOQQorS0VDTyBMSlVCT01JUgorS0VDTyBNQVJJSkEKK0tFQ08gTUFSSUpBCitLRUNPIE1JUkpBTkEKK0tFQ08gTUlUQVIKK0tFQ08gTU9NSVIKK0tFQ08gUkFET0pFCitLRUNPIFJBVEtPCitLRUNPIFNMT0JPREFOCitLRUNPIFNMT0JPREFOCitLRUTFvUEgTUlMT1JBRAorS0VEScSGIERVxaBBTgorS0VEScSGIFNUQU5LTworS0VEVkXFoCBFVkEKK0tFRkVSIEpBTk/FoAorS0VGRVIgSk9TSVAKK0tFR0xPVknEhiBWSU5LTworS0VLIEVSxb1FQkVUCitLRUsgRVZBCitLRUtFTEpFVknEhiBNSU9EUkFHCitLRUtFTkogR0laRUxBCitLRUtFWiBEUkFHSU5KQQorS0VLScSGIMSQT1LEkEUKK0tFS0nEhiDEkFVSQQorS0VLScSGIEFHSUNBCitLRUtJxIYgREFOSUNBCitLRUtJxIYgRFJBR0FOCitLRUtJxIYgRFXFoEFOCitLRUtJxIYgR09SREFOQQorS0VLScSGIEtPU09WS0EKK0tFS0nEhiBNSUxBTgorS0VLScSGIE1JTElDQQorS0VLScSGIE1JUktPCitLRUtJxIYgTkFUQUxJSkEKK0tFS0nEhiBQRVRBUgorS0VLScSGIFNMQVZJQ0EKK0tFS0nEhiBURU9ET1IKK0tFS0lOIE1BUklKQQorS0VLT1ZJxIYgRFJBR09MSlVCCitLRUtPVknEhiBNRUxBTklKQQorS0VLT1ZJxIYgTUlPRFJBRworS0VMQkxJIE1JSEFKTE8KK0tFTEUgSk/FvUVGCitLRUxFIEpPxb1FRgorS0VMRcSMIE1JTE9SQUQKK0tFTEXEjCBNSVJLTworS0VMRcSMRVZJxIYgREFOSUNBCitLRUxFxIxFVknEhiBOSUtJQ0EKK0tFTEXEjEnEhiBJVkFOCitLRUxFxIxJxIYgSk9TSVAKK0tFTEVNRU4gQUxFS1NBTkRBUiBESVBMIElORworS0VMRU1FTiBBTEVLU0FOREFSCitLRUxFTUVOIEFOQQorS0VMRU1FTiBHQUJPUgorS0VMRU1FTiBJTVJFCitLRUxFTUVOIEpPxb1FRgorS0VMRU1FTiBKT8W9RUYKK0tFTEVNRU4gTEFKT8WgCitLRUxFTUVOIE1BxIZBxaAKK0tFTEVNRU4gTUFSSUpBCitLRUxFTUVOIFRJQk9SCitLRUxFUiBKQU5PxaAKK0tFTEVSIEpBTk/FoAorS0VMRVIgUEVUQVIKK0tFTEVSIFJBRE1JTEEKK0tFTEVSIFNURVZBTgorS0VMRVVWQSBEUkFHTworS0VMRVVWQSBNSUhBSkxPCitLRUxJxIYgU1RFVkFOS0EKK0tFTElKQcWgRVZJxIYgxb1JVktPCitLRUxORVIgTUFSSUpBCitLRUxPVknEhiBNSUxPTUlSCitLRU1FQyBBTkRSSUpBCitLRU1FQyBNSUpPIERJUEwgSU5HCitLRU1FTkNJIEJFTEEKK0tFTUVOSiBNSVJBCitLRU1FTkogVEVSRVpJSkEgRElQTCBJTkcKK0tFTUlWRcWgIEdFT1JHCitLRU7EkEVMIFNURVZJQ0EKK0tFTkNFTCBTTUlMSkEKK0tFTkXFoEtJIERSQUdBTgorS0VOSUcgSEVORFJJSAorS0VOSUcgSkVLQQorS0VOSUcgSkVMRU5BCitLRU5KQUxPIFNUT0pBTgorS0VQxIxJSkEgSUxJSkEKK0tFUMSMSUpBIE1JTEUKK0tFUMSMSUpBIFRPRE9SCitLRVBFLURSQUdPU0FWTEpFVknEhiBMSVZJSkEKK0tFUEUgSlVMSUpBTkEKK0tFUEnEhiDFvUlWQU4KK0tFUsSMRVYgS0FSTE8KK0tFUsSMVSBNSVJKQU5BCitLRVLEjFUgU1RBTklTTEFWCitLRVLFoE5FUiBBTEVLU0FOREFSCitLRVJBQyDFvUFSS08KK0tFUkFDIMW9QVJLTworS0VSQUMgxJBVUkEKK0tFUkFDIEJSQU5JU0xBVgorS0VSQUMgREFOSUNBCitLRVJBQyBEVcWgQU4KK0tFUkFDIEVSxb1FQkVUCitLRVJBQyBHQVZSQQorS0VSQUMgSk9WQU4KK0tFUkFDIEpPVkFOCitLRVJBQyBMQVpBUgorS0VSQUMgTEFaQVIKK0tFUkFDIExFUE9TQVZBCitLRVJBQyBNSUxJVk9KCitLRVJBQyBNSUxPxaAKK0tFUkFDIE1JVEEKK0tFUkFDIFBBVkxFCitLRVJBQyBQQVZMRQorS0VSQUMgUEVSQQorS0VSQUMgU0lNQQorS0VSQUMgU09OSkEKK0tFUkFDIFNQQVNBCitLRVJBQyBTVEFOQQorS0VSQUMgU1RBTklTTEFWQQorS0VSQUMgU1RFVkFOCitLRVJBQyBTVEVWQU4KK0tFUkFDIFRPRE9SCitLRVJBQyBaTEFUS08KK0tFUkFOT1ZJxIYgTUlMQU4KK0tFUkFOT1ZJxIYgU1RBTkEKK0tFUkFWxIxJTiBNSVRBCitLRVJBVsSMSU4gU1ZFVE9aQVIKK0tFUkFWSUNBIERBVklECitLRVJBVklDQSBKT1ZBTgorS0VSQVZJQ0EgTEpVQk9NSVIKK0tFUkFWSUNBIE1JTElWT0oKK0tFUkFWSUNBIE1JTE/FoAorS0VSQVZJQ0EgTUlMT8WgCitLRVJBVklDQSBNSU9EUkFHCitLRVJBVklDQSBNSU9EUkFHCitLRVJBVklDQSBQRVRBUgorS0VSQVZJQ0EgU1RFVkFOCitLRVJBVklDQSBTVkVUSVNMQVYKK0tFUkXEjEtJIEJSQU5LTworS0VSRcSMS0kgRFJBR09NSVIKK0tFUkXFoEVWScSGIEFMRUtTQU5EUkEKK0tFUkXFoEVWScSGIElMT05BCitLRVJFxaBFVknEhiBTVE9KQU5LQQorS0VSRcWgSSBKVUxJSkFOQQorS0VSRcWgSSBWSU5DRQorS0VSRcW9SSBGRVJFTkMKK0tFUkVDIElWQU4KK0tFUkVExb1JTiBNSUxBTgorS0VSRUTFvUlOIE1JUkpBTkEKK0tFUkVExb1JTiBTT0ZJSkEKK0tFUkVLRcWgIEnFoFRWQU4gRElQTCBJTkcKK0tFUkVLRcWgLU1BTE9OS0EgRVRFTEtBCitLRVJFTkVDIExKSUxKQU5BCitLRVJFTkpJIEFMRUtTQU5EQVIKK0tFUkVTVEXFoCBKRU5FCitLRVJFU1RFxaAgTEpVQklDQQorS0VSRVNURcWgIE1BUkdJVEEKK0tFUkVaT1ZJxIYgTUlIQUpMTworS0VSRVpPVknEhiBORcSQTworS0VSSSBERU5FxaAKK0tFUkkgRlJBTkpPCitLRVJJIEpPVkFOCitLRVJJxIYgU0FWQQorS0VSS0VaIERSQUdPCitLRVJLRVogRFXFoEFOS0EKK0tFUktFWiBEVcWgQU4KK0tFUktFWiBEVcWgQU4KK0tFUktFWiBHT0pLTworS0VSS0VaIElMSUpBCitLRVJLRVogTEFaQVIKK0tFUktFWiBNSUxBTgorS0VSS0VaIE1JTEVOS08KK0tFUktFWiBNSUxJQ0EKK0tFUktFWiBNSVJKQU5BCitLRVJLRVogTUlST1NMQVYKK0tFUktFWiBNTEFERU4KK0tFUktFWiBOSUtPTEEKK0tFUktFWiBQQVVMSU5BCitLRVJLRVogUEVUQVIKK0tFUktFWiBTTE9CT0RBTgorS0VSS0VaIFNSRVRFTgorS0VSS0VaIFNURVZBTgorS0VSS0VaIFNURVZBTgorS0VSS0VaIFZMQURBCitLRVJLRVogVk9KSU4KK0tFUkxFVEEgTkXEkE8KK0tFUk1FQyBJTE9OS0EKK0tFUk1FQ0kgVElCT1IKK0tFUk1FTkRJIFBFVEFSCitLRVJOIERBTklFTAorS0VSUEVMIFNPRklKQQorS0VSU05JSyBKT8W9RQorS0VSU05JSyBNScWgQQorS0VSU1RJTkcgS0FUQVJJTkEKK0tFUlRFUyBFUsW9RUJFVAorS0VSVEVTIEpBTk/FoAorS0VSVEVTIEpBTk/FoAorS0VSVEVTIFZJTE1PxaAKK0tFUlZJTkEgQU5UT04KK0tFUlZJTkEgQVJJSkFOQQorS0VTRUcgTEFKT8WgCitLRVNFRyBMQUpPxaAKK0tFU0VHSSBHRVpBCitLRVNFR0kgS0FST0xKCitLRVNFR0kgVk9KSVNMQVYKK0tFU0VSIERSQUdJxaBBCitLRVNFUk9WScSGIEtBVEFSSU5BCitLRVNJxIYgxb1JVktPCitLRVNJxIYgxJBVUkEKK0tFU0nEhiBCT8WgS08KK0tFU0nEhiBCT1JJU0xBVgorS0VTScSGIEdPUkFOCitLRVNJxIYgSk9WQU4KK0tFU0nEhiBNQVJJTktPCitLRVNJxIYgTUlMRQorS0VTScSGIE1JTElDQQorS0VTScSGIE1JTEtBCitLRVNJxIYgTkVWRU5LQQorS0VTScSGIFNMT0JPREFOCitLRVNJxIYgU1RBTk9KRSBESVBMIFBSQVZOSUsKK0tFU0xFUiBBTkRSSUpBIERSIExFS0FSCitLRVNMRVIgUk9CRVJUCitLRVRFTEXFoCBST8W9SUtBCitLRVRJRyBUT01JU0xBVgorS0VUSUcgVE9NSVNMQVYKK0tFVknEhiBNSUxBCitLRVZJxIYgT0xHQQorS0VWScSGIFJBREUKK0tFVklMSiBCUkFOS08KK0tFVlJFxaBBTiBFTUlMCitLRVpFxaBJIERVxaBLTworS0VaScSGIERVxaBBTktBCitLRVpJxIYgTUlSS08KK0tFWklKQSBNSUxPUkFECitLRVpNScSGIEJJTEpBTkEKK0tFWlVOT1ZJxIYgTUlMT1ZBTgorS0VaVU5PVknEhiBQRVRLTworS0VaVU5PVknEhiBSQUpLTworS0nEjEkgRVJORQorS0nEjElOIEVWQQorS0nEjElOQSBMQVpBUgorS0nEjElOSiBFTElaQUJFVEEKK0tJxaAtxIxFUEVHSSBHQUJPUgorS0nFoC3EjEVQRUdJIEdBQk9SCitLScWgLcSMRVBFR0kgUlVET0xGCitLScWgLcSMRVBFR0kgVEVSRVpBCitLScWgIMWgQU5ET1IKK0tJxaAgxaBBTkRPUgorS0nFoCDEkEVSxJAKK0tJxaAgxJBFUsSQCitLScWgIEFMRUtTQU5EQVIKK0tJxaAgQU5BCitLScWgIEFORFJJSkEKK0tJxaAgQkVMQQorS0nFoCBCRUxBCitLScWgIEJPTERJxb1BUgorS0nFoCBCUkFOS08KK0tJxaAgRFXFoEFOS0EKK0tJxaAgRFXFoElDQQorS0nFoCBFUk5FU1QKK0tJxaAgRVJORQorS0nFoCBFU1RFUgorS0nFoCBFVkEKK0tJxaAgRkVSRU5DCitLScWgIEZFUkVOQworS0nFoCBGRVJFTkMKK0tJxaAgRlJBTkpPCitLScWgIEdFWkEKK0tJxaAgR0VaQQorS0nFoCBHSVpFTEEKK0tJxaAgSEVMRU5BCitLScWgIEhFTlJJSkVUQQorS0nFoCBJxaBUVkFOCitLScWgIEnFoFRWQU4KK0tJxaAgScWgVFZBTgorS0nFoCBJTE9OQQorS0nFoCBJTE9OS0EKK0tJxaAgSVJFTkEKK0tJxaAgSVNJRE9SCitLScWgIElWQU4KK0tJxaAgSVZBTgorS0nFoCBKQU5LTworS0nFoCBKQU5PxaAKK0tJxaAgSk/FvUVGCitLScWgIEpPQ0EKK0tJxaAgSk9TSVAKK0tJxaAgSk9TSVAKK0tJxaAtSk9WQUsgRlJBTkpBCitLScWgIEpPWkVGSU5BCitLScWgIEpVTElKQU4KK0tJxaAgS0FMTUFOCitLScWgIEtBVEFMSU4KK0tJxaAgS0FUSUNBCitLScWgIEtBVElDQQorS0nFoCBMQUNJS0EKK0tJxaAgTEFTTE8KK0tJxaAgTEFTTE8KK0tJxaAgTUFSR0lUQQorS0nFoCBNQVJJSkEKK0tJxaAgTUFSSUpBCitLScWgIE1JSEFMSgorS0nFoCBNSUpBCitLScWgIE1JTEFOCitLScWgIE1JTElDQQorS0nFoCBNSVJLTworS0nFoCBOQU5ET1IKK0tJxaAgTklLT0xBCitLScWgIE5JS09MQQorS0nFoCBPVE8KK0tJxaAgT1RPCitLScWgIFBBVkxFCitLScWgIFBFUkEKK0tJxaAgUEVUQVIKK0tJxaAgUEVUQVIKK0tJxaAgUEVUQVIKK0tJxaAgUk9aQUxJSkEKK0tJxaAgU0xBVklDQQorS0nFoCBTTEFWSUNBCitLScWgIFNMT0JPREFOCitLScWgIFNUQU5JU0xBVgorS0nFoCBTVEVWQU4KK0tJxaAgU1RFVkFOCitLScWgIFNURVZBTgorS0nFoCBTVEVWQU4KK0tJxaAgU1RKRVBBTgorS0nFoCBUSUJPUiBEUgorS0nFoCBUSUJPUgorS0nFoCBUSUJPUgorS0nFoCBUT0RPUgorS0nFoCBWRVNOQQorS0nFoCBWSUtUT1JJSkEKK0tJxaAgVkxBRElNSVIKK0tJxaAgVkxBRElNSVIKK0tJxaAgVkxBRElNSVIKK0tJxaAgVkxBRElNSVIKK0tJxaAgVlVLT1NBVkEKK0tJxaAgWk9MVEFOCitLScWgIFpPTFRBTgorS0nFoCBaT0xUQU4KK0tJxaAgWk9MVEFOCitLScWgIFpPTFRBTgorS0nFoCBaT0xUQU4KK0tJxaAgWk9MVEFOCitLScWgRE9CUkFOU0tJIE1JTElWT0oKK0tJxaBFR0VDSSBKQU4gRFIKK0tJxaBHRUNJLURVREHFoCBLTEFSQQorS0nFoEdFQ0kgRU1JTAorS0nFoEdFQ0kgSVZBTgorS0nFoEdFQ0kgUEFWTEUKK0tJxaBHRUNJIFNUQU5JU0xBVgorS0nFoEdFQ0kgU1RBTklTTEFWCitLScWgR0VDSSBTVEVWQU4KK0tJxaBHRUNJIFZMQURJTUlSCitLScWgSlVIQVMgSkFLT1YKK0tJxaBNScWgS0EgUEFMCitLScWgUFJESUxPViBERUpBTgorS0nFoFBSRElMT1YgWk9SQU4KK0tJxIZBTk9WScSGIEJPUk8KK0tJxIZBTk9WScSGIERBUklOS0EKK0tJxIZBTk9WScSGIEpPS0EKK0tJxIZBTk9WScSGIE1JUk9TTEFWCitLScSGQU5PVknEhiBNSVRBUgorS0nEhkFOT1ZJxIYgUEVUQVIKK0tJxIZBTk9WScSGIFJBRE1JTEEKK0tJxIZBTk9WScSGIFJBSktPCitLScSGQU5PVknEhiBaT1JBTgorS0nFvURPQlJBTlNLSSDFvUFSS08KK0tJxb1ET0JSQU5TS0kgTEpVQklDQQorS0nFvURPQlJBTlNLSSBNSUxBTgorS0nFvURPQlJBTlNLSSBNSUxBTgorS0nFvURPQlJBTlNLSSBNSUxJVk9KCitLScW9RE9CUkFOU0tJIFNBVkEKK0tJxb1FVlNLSSBESU1LTworS0nFvUVWU0tJIE1JUkEKK0tJxb1FVlNLSSBWT0pJU0xBVgorS0lDT8WgRVYgQlJBTktPCitLSUNPxaBFViBMSklMSkFOQQorS0lDT8WgRVYgTUlUQQorS0lDT8WgRVYgU0HFoEEKK0tJQ0/FoEVWIFNUT0pBTgorS0lDT8WgRVZJxIYgVFJJVkEKK0tJQ0/FoEVWScSGIFZMQUpLTworS0lKQcSMS0kgQlJBTklTTEFWCitLSUpBTk9WScSGIE1BTk9KTEUKK0tJSkFOT1ZJxIYgU1RBTktPCitLSUtBTk9WScSGIERJTUlUUklKRQorS0lLQU5PVknEhiBET0JSSUxBCitLSUtBTk9WScSGIE1JTEVOSUpBCitLSUtJxIYtxaBPVkxKQU5TS0kgTEpJTEpBTkEKK0tJS0nEhiBNSVJLTworS0lLScSGIFNNSUxKQSBEUgorS0lLSU7EkEFOSU4gTUlST1NMQVZBCitLSUtJTkRBSSBWRVJBCitLSUtPxaAgR09SREFOCitLSUtPxaAgSk9WQU4KK0tJS0/FoCBMQVpBUgorS0lLT8WgIFNSQklTTEFWCitLSUtPVknEhiBTTEFWSUNBCitLSUxJxIYgTklLT0xBCitLSUxJQkFSREEgTUlMT1JBRAorS0lMSUJBUkRBIE1JVEFSCitLSUxJQkFSREEgUEFWTEUKK0tJTElCQVJEQSBWTEFESU1JUgorS0lMSUJBUkRBIFZPSklTTEFWCitLSU1QQU5PViBCUkFOSVNMQVYKK0tJTVBBTk9WIE5BVEFMSUpBCitLSU1QQU5PViBTTE9CT0RBTgorS0lNUEFOT1YgU0xPQk9EQU4KK0tJTVBBTk9WIFNPRklKQQorS0lOxIxFxaAgTUlIQUxKCitLSU7EkElOIFNWRVRPWkFSCitLSU7EkElOIFZBU0EKK0tJTkRFUk5BSiBJTElKQQorS0lOREVSTkFKIE1JTEFOCitLSU5ERVJOQUogT1RPCitLSU5ERVJOT0ogUEFWTEUKK0tJTklLIEpBTgorS0lOSUsgUEFWTEUKK0tJTkpFUkFOIFNWRVRJU0xBVgorS0lOS0EgUklUQQorS0lQRVJPVknEhiBKT1ZPCitLSVBJxIYgxJBVTEEKK0tJUEnEhiBBTkRSSUpBCitLSVBJxIYgQU5LQQorS0lQScSGIEVESVRBCitLSVBJxIYgRVLFvUVCRVQKK0tJUEnEhiBFUk5FCitLSVBJxIYgRkVSRU5DCitLSVBJxIYgRlJBTkpBCitLSVBJxIYgScWgVFZBTgorS0lQScSGIEpPU0lQCitLSVBJxIYgTEFTTE8KK0tJUEnEhiBOQU5ET1IKK0tJUsSMQU4gRU1JTAorS0lSxaAgSk/FvUVGCitLSVLFoCBNSUxPUkFECitLSVLFoEVLIEpVUkFKCitLSVLEhkFOIFNBVkEKK0tJUsSGQU5TS0kgQlJBTktPCitLSVLEhkFOU0tJIERVxaBLTworS0lSxIZBTlNLSSBJVkFOCitLSVLEhkFOU0tJIE1JTElDQQorS0lSxIZBTlNLSSBPQlJBRAorS0lSxIZBTlNLSSBSQURJVk9KCitLSVLEhkFOU0tJIFJBRE9TTEFWQQorS0lSREEgVkxBRElNSVIKK0tJUknEhiBGUkFOSk8KK0tJUknEhiBNRU5LQQorS0lSScSGIFNMT0JPREFOCitLSVJJxIYgU1RBTklTTEFWCitLSVJJRMW9ScSGIERSQUdJxaBBCitLSVJJRMW9ScSGIE1JTE/FoAorS0lSSUTFvUnEhiBPQlJBRAorS0lSSUxPViBBTEVLU0FOREFSCitLSVJJTE9WScSGIEFMRUtTQU5EQVIKK0tJUklMT1ZJxIYgRE9CUklOS0EKK0tJUklMT1ZJxIYgSkVMRU5BCitLSVJJTE9WScSGIEtSSVNUQQorS0lSSUxPVknEhiBLUklTVElOQQorS0lSSUxPVknEhiBPTEdBCitLSVJJTiDFvUVMSktPCitLSVJJTiBJVklDQQorS0lSSU4gU05Fxb1BTkEKK0tJUkpBS09WScSGIEpPVkFOCitLSVJKQUtPVknEhiBOSUtPTEEKK0tJUktPViBESU1JVEFSCitLSVJLT1YgVkVSSUNBCitLSVJOIFZMQURJTUlSCitLSVJPVkFLT1YgVkFMRVJJSkEKK0tJUlRJxIYgRFXFoEFOCitLSVNBxIxBTklOIERFU0FOS0EKK0tJU0HEjEFOSU4gRFXFoEFOCitLSVNBxIxBTklOIE1JT0RSQUcgRElQTCBJTkcKK0tJU0HEjEFOSU4gTUlST1NMQVYKK0tJU0HEjEFOSU4gUEFWTEUKK0tJU0HEjEFOSU4gU1ZFVE9aQVIKK0tJU0VMScSMS0kgxb1JVktPIFNVRElKQQorS0lTRUxJxIxLSSBEQU5JQ0EKK0tJU0VMScSMS0kgRkVET1IgRFIKK0tJU0VMScSMS0kgTEFaQVIgRElQTCBJTkcKK0tJU0VMSUNBIMW9QVJLTworS0lTRUxJQ0EgTkFEQQorS0lTRUxJQ0EgUEVUQVIKK0tJU0VMSUNBIFBFVEFSCitLSVNJxIYgRFXFoEFOCitLSVNJxIYgSk9WQU4KK0tJU0nEhiBNSVJLTworS0lTScSGIFNSxJBBTgorS0lTScSGIFNWRVRPWkFSCitLSVNJTiBBTsSQQQorS0lTSU4gTUlMSUNBCitLSVNJTiBNSUxLQQorS0lTSU4gVE9NTworS0lTTElDIElSRU5BCitLSVNMT1ZTS0kgVkxBRElNSVIKK0tJU08gTUlMT1JBRAorS0lTVEVSIFZJTktPCitLSVQgVkFTSUxKCitLSVRBTk9WScSGIMW9SVZLTworS0lUQU5PVknEhiBCUkFOSVNMQVZBCitLSVRBTk9WScSGIEtBVElDQQorS0lUQU5PVknEhiBMRU5LQQorS0lUQU5PVknEhiBNSVJKQU5BCitLSVRBTk9WScSGIE5FREVMSktPCitLSVRBTk9WScSGIFRPTUEKK0tJVEFOT1ZTS0kgRElNxIxFCitLSVRJxIYgUkFET0pLQQorS0lUScSGIFNBVk8KK0tJVEnEhiBTVE9KS08KK0tJVEnEhiBWRUxJTUlSCitLSVVSU0tJIFNURVZBTiBESVBMIE9FQworS0lWT1ZJxIYgQU5UT05JSkEKK0tJWkEgQlJBTktJQ0EKK0tJWknEhiBEVcWgQU4KK0tJWknEhiBMSURJSkEKK0tJWknEhiBNQVJLTworS0laScSGIE1JSEFJTE8KK0tJWknEhiBTQVZLQQorS0laScSGIFNMT0JPREFOCitLSVpJxIYgU0xPQk9EQU4KK0tJWknEhiBTTkXFvUFOQQorS0laScSGIFRJSE9TTEFWCitLSVpVUiBBTkRSQcWgCitLSVpVUiBJxaBUVkFOCitLSVpVUiBKQU5PxaAKK0tJWlVSIExBU0xPCitLSVpVUiBQQVZFTAorS0laVVIgVkVSQQorS0xBxIxBUiBNSUxLTworS0xBxIxBUiBNSUxPxaAKK0tMQcWgTkpBIMW9QVJLTworS0xBxaBOSkEgQlJBTktPCitLTEHFoE5KQSBKT1ZBTgorS0xBxaBOSkEgTUFSSUpBCitLTEHFoE5KQSBNSUtBCitLTEHFoE5KQSBNSUxFTkEKK0tMQcWgTkpBIE1JTEUKK0tMQcWgTkpBIE1JTElDQQorS0xBxaBOSkEgTUlST1NMQVYKK0tMQcWgTkpBIFZMQURJU0xBViBEUiBMRUtBUgorS0xBxIYgRFJBR0FOCitLTEHEhklLIEpPxb1FRgorS0xBxIZJSyBNQVJJSkEKK0tMQURVxaBJxIYgTUVOU1VSQQorS0xBScSGIEFOVE8KK0tMQUnEhiBQQVZPCitLTEFKIFBFVEFSCitLTEFKScSGIMSQVVJBCitLTEFKScSGIERBTklMTworS0xBSknEhiBMSlVCSUNBCitLTEFKScSGIE1BR0RBTEVOQQorS0xBSknEhiBPTEdBCitLTEFKScSGIFJPWkFMSUpBCitLTEFKScSGIFZBTEVSSUpBCitLTEFKScSGIFZJREEKK0tMQUpOIEFMQkVSVAorS0xBSk4gQU5BCitLTEFKTiBEUkFHVVRJTgorS0xBSk4gSVZBTktBCitLTEFKTiBJVkFOCitLTEFKTiBMQUrEjE8gRFIKK0tMQUpOIE1JUk9TTEFWCitLTEFKTiBWRVJBCitLTEFKTkVSIEVTVEVSCitLTEFKTkVSIEnFoFRWQU4KK0tMQU1BUiBLQVJMTworS0xBTUlLIElNUkUKK0tMQVBBUkVWScSGIEdPUkFOCitLTEFQQVJFVknEhiBTQVZBCitLTEFQQVJFVknEhiBWQVNJTElKRQorS0xBUknEhiBEVcWgQU5LQQorS0xBUknEhiBHT1JBTgorS0xBUknEhiBMSlVCSUNBCitLTEFSScSGIE1JTEnEhgorS0xBUknEhiBNSUxPUkFECitLTEFSScSGIE9MR0EKK0tMQVJJxIYgU0VLQQorS0xBU0FOIEFOQQorS0xBU0VSIEFMQkVSVAorS0xBU0nEhiBMQURJU0xBVgorS0xBU0nEhiBTQcWgQQorS0xBVVMgRVLFvUVCRVQKK0tMQVVTIEVSxb1FQkVUCitLTEFVUyBMQVNMTworS0xFQkXEjEtPIMWgQU5ET1IKK0tMRUJFxIxLTyDFoEFORE9SCitLTEVNIEFEQU0gRFIKK0tMRU0gSk/FvUVGCitLTEVNIFRFUkVaQQorS0xFTUVOT1ZJxIYgVVJPxaAKK0tMRU5PQ0tJIE1BUklKQQorS0xFTk9WxaBFSyBGUkFOSkEKK0tMRU5PVsWgRUsgVEVSRVpJSkEKK0tMRU5PVsWgRUsgWlZPTklNSVIKK0tMRVBJxIYgxJBVUkHEkAorS0xFUEnEhiBOSUtPTEEKK0tMRVQgR0VaQQorS0xFVVQgTUlMQU4KK0tMRVVUIFJVxb1BIERSIExFS0FSCitLTEVWRVJOScSGIEJPUklTTEFWCitLTEnEjEVLIElSRU5BCitLTEnEjEtPVknEhiBEQU5JQ0EKK0tMScSMS09WScSGIEtPU1RBCitLTEnEjEtPVknEhiBWRVJBCitLTEnFoEFOScSGIEpPU0lQCitLTEnFoEFOScSGIFNUQU5JU0xBVgorS0xJQ09WIElMSUpBCitLTElLT1ZBQyBNSUhBSkxPCitLTElLT1ZBQyBWRUxJTUlSCitLTElNRcWgIERSQUdBTkEKK0tMSU1FxaAgWk9SQQorS0xJTkFDIFVST8WgCitLTElOQVIgSVZBTgorS0xJTkNPViBOQURBCitLTElORMW9ScSGIFNUSkVQQU4KK0tMSU5HRVIgS0FUSUNBCitLTElOS08gSkFOCitLTElOT0NLSSDEkEVSxJAKK0tMSU5PVlNLSSBCUkFOS08KK0tMSU5PVlNLSSBEUkFHQU4KK0tMSU5PVlNLSSBEUkFHQU4KK0tMSU5PVlNLSSBEVcWgQU4KK0tMSVBBIMW9SVZBTgorS0xJUEEgxJBPUsSQRQorS0xJUEEgSkVMSUNBCitLTElQQS1LUkFCRVMgR1JFVEEKK0tMSVBBIExBWkFSCitLTElQQSBNSUtBCitLTElSIElMT05BCitLTElSIFJPWkFMSUpBCitLTElTQVJBIMW9SVZLTworS0xJU0FSQSDEkE9SxJBFCitLTElTQVJJxIYgTUlSS08KK0tMSVNJxIYgTkFEQQorS0xJU0tBIEFOxJBFTElKQQorS0xJU0tBIFZPSk8KK0tMSVNVUkEgTUlMT8WgCitLTElTVVJBIE1PTUlSCitLTElTVVJBIFNUQUtBCitLTElTVVJJxIYgxJBVUk8KK0tMSVZJTkpJIEpPxb1FRgorS0xKQUnEhiBMRVBPU0FWQQorS0xKQUnEhiBNQUNBCitLTEpBScSGIFNJTU8KK0tMSkFJTiBEUkFHSU5KQQorS0xKQUlOIExBWkFSCitLTEpBSknEhiDEkE9SxJBFIFBST0ZFU09SCitLTEpBSknEhiDEkE9SxJBFCitLTEpBSknEhiDEkE9SxJBFCitLTEpBSknEhiBCT1JJVk9KRQorS0xKQUpJxIYgQk9SS0EKK0tMSkFKScSGIEJSQU5LTworS0xKQUpJxIYgQlJBTktPCitLTEpBSknEhiBEQU5JTE8KK0tMSkFKScSGIERSQUdBTgorS0xKQUpJxIYgRFJBR0FOCitLTEpBSknEhiBEVcWgQU5LQQorS0xKQUpJxIYgSUxJSkEKK0tMSkFKScSGIElMSUpBCitLTEpBSknEhiBJVkFOCitLTEpBSknEhiBKRUxFTkEKK0tMSkFKScSGIEtPVklMSktBCitLTEpBSknEhiBMVUtBCitLTEpBSknEhiBNQVJBCitLTEpBSknEhiBNSUxBTgorS0xKQUpJxIYgTUlMRVZBCitLTEpBSknEhiBNSU9EUkFHCitLTEpBSknEhiBOQURBCitLTEpBSknEhiBPTElWRVJBCitLTEpBSknEhiBQRVRBUgorS0xKQUpJxIYtUkFEQUtPVknEhiBNSUxJQ0EKK0tMSkFKScSGIFNFTktBCitLTEpBSknEhiBWQVRBCitLTEpBSknEhiBWTEFETworS0xKQUpJxIYgVlVLSUNBCitLTEpBSknEhiBaRFJBVktPCitLTEpBS0nEhiBWVUtBxaBJTgorS0xKRcSMQU5JTiBNSVJKQU5BCitLTEpVxIxPVlNLSSBNQUhBTEpJTkEKK0tMSlXEjE9WU0tJIE5JS09MQQorS0xKVVRJxIYgSkFTTUlOQQorS0xKVVRJxIYgT1NUT0pBCitLTE9CVcWgSUNLSSBWTEFESVNMQVYKK0tMT1BGRVIgxJBPUsSQRQorS0xPUEtBIEtMQVJBIERSCitLTE9QS0EgUElST8WgS0EKK0tNRcSMIE1BUlRJTgorS01FxIxLTyBTVEVWQU4KK0tNRcSGIEpBTiBEUgorS01FWknEhiBJVkFOS0EKK0tNRVpJxIYgTUlMRQorS01FWknEhiBWTEFEQQorS01JQ0lLRVZJxIYgWk9SQU4KK0tNSUNJS09WScSGIE1JTE9KS0EKK0tORcWgQVVSRUsgTUFSSUpBCitLTkXFvUVWIMW9QVJLTyBESVBMIElORworS05Fxb1FViDEkE9SxJBFCitLTkXFvUVWIMSQT1LEkEUKK0tORcW9RVYgxJBVUkEKK0tORcW9RVYgSkVMSUNBCitLTkXFvUVWIExKSUxKQU5BCitLTkXFvUVWScSGIMW9QVJLTworS05Fxb1FVknEhiDFvUVMSktPCitLTkXFvUVWScSGIMW9RUxKS08KK0tORcW9RVZJxIYgxb1FTEpLTworS05Fxb1FVknEhiDFvUlWS0EKK0tORcW9RVZJxIYgxb1JVktPCitLTkXFvUVWScSGIMW9SVZPSklOCitLTkXFvUVWScSGIMW9SVZPSklOCitLTkXFvUVWScSGIMSQSU5FCitLTkXFvUVWScSGIMSQT1LEkEUKK0tORcW9RVZJxIYgxJBPUsSQRQorS05Fxb1FVknEhiDEkE9SxJBFCitLTkXFvUVWScSGIMSQT1LEkEUKK0tORcW9RVZJxIYgxJBPUsSQRQorS05Fxb1FVknEhiDEkE9SxJBFCitLTkXFvUVWScSGIMSQT1LEkEUKK0tORcW9RVZJxIYgxJBVUkEKK0tORcW9RVZJxIYgxJBVUkEKK0tORcW9RVZJxIYgxJBVUk8KK0tORcW9RVZJxIYgQUxFS1NBTkRBUgorS05Fxb1FVknEhiBBTEVLU0FOREFSCitLTkXFvUVWScSGIEFMRUtTQU5EQVIKK0tORcW9RVZJxIYgQUxFS1NBTkRSQQorS05Fxb1FVknEhiBBTEVLU0EKK0tORcW9RVZJxIYgQU7EkEVMS08KK0tORcW9RVZJxIYgQU5JQ0EKK0tORcW9RVZJxIYgQU5JQ0EKK0tORcW9RVZJxIYgQVJLQURJSkEKK0tORcW9RVZJxIYgQk/FoEtPCitLTkXFvUVWScSGIEJPxb1PCitLTkXFvUVWScSGIEJPR0RBTgorS05Fxb1FVknEhiBCT0dEQU4KK0tORcW9RVZJxIYgQk9HREFOCitLTkXFvUVWScSGIEJPUklTTEFWCitLTkXFvUVWScSGIEJPUklTCitLTkXFvUVWScSGIEJPUktBCitLTkXFvUVWScSGIEJPU0lMSktBCitLTkXFvUVWScSGIEJSQU5JTUlSCitLTkXFvUVWScSGIEJSQU5LTworS05Fxb1FVknEhiBCUkFOS08KK0tORcW9RVZJxIYgQ1ZJSk8KK0tORcW9RVZJxIYgRE9CUklWT0pFCitLTkXFvUVWScSGIERSQUdBTgorS05Fxb1FVknEhiBEUkFHQU4KK0tORcW9RVZJxIYgRFJBR0FOCitLTkXFvUVWScSGIERSQUdBTgorS05Fxb1FVknEhiBEUkFHScWgQQorS05Fxb1FVknEhiBEUkFHSUNBCitLTkXFvUVWScSGIERSQUdJQ0EKK0tORcW9RVZJxIYgRFJBR09MSlVCCitLTkXFvUVWScSGIERSQUdPTEpVQgorS05Fxb1FVknEhiBEVcWgQU5LQQorS05Fxb1FVknEhiBEVcWgQU4KK0tORcW9RVZJxIYgRFXFoEFOCitLTkXFvUVWScSGIERVxaBBTgorS05Fxb1FVknEhiBEVcWgQU4KK0tORcW9RVZJxIYgR0xJxaBBCitLTkXFvUVWScSGIEdPUkRBTkEKK0tORcW9RVZJxIYgSUxJSkEKK0tORcW9RVZJxIYgSUxJSkEKK0tORcW9RVZJxIYgSUxJSkEKK0tORcW9RVZJxIYgSUxJSkEKK0tORcW9RVZJxIYgSUxJSkEKK0tORcW9RVZJxIYgSUxJSkEKK0tORcW9RVZJxIYgSVZBTktBCitLTkXFvUVWScSGIElWQU4KK0tORcW9RVZJxIYgSVZBTgorS05Fxb1FVknEhiBKRUxBCitLTkXFvUVWScSGIEpFTEVOQQorS05Fxb1FVknEhiBKRUxFTkEKK0tORcW9RVZJxIYgSkVMSVNBVktBCitLTkXFvUVWScSGIEpPU0lQCitLTkXFvUVWScSGIEpPVkFOS0EKK0tORcW9RVZJxIYgSk9WQU5LQQorS05Fxb1FVknEhiBKT1ZBTgorS05Fxb1FVknEhiBKT1ZBTgorS05Fxb1FVknEhiBKT1ZBTgorS05Fxb1FVknEhiBKT1ZBTgorS05Fxb1FVknEhiBKT1ZBTgorS05Fxb1FVknEhiBKT1ZPCitLTkXFvUVWScSGIEpVR09TTEFWCitLTkXFvUVWScSGIEtSU1RBTgorS05Fxb1FVknEhiBMQVRJTktBCitLTkXFvUVWScSGIExBWkFSCitLTkXFvUVWScSGIExBWkFSCitLTkXFvUVWScSGIExKSUxKQU5BCitLTkXFvUVWScSGIExKVUJPTUlSCitLTkXFvUVWScSGIExKVUJPTUlSCitLTkXFvUVWScSGIExKVUJPTUlSCitLTkXFvUVWScSGIE1BTkUKK0tORcW9RVZJxIYgTUFSSUNBCitLTkXFvUVWScSGIE1BUklDQQorS05Fxb1FVknEhiBNQVJJSkEKK0tORcW9RVZJxIYgTUFSSUpBCitLTkXFvUVWScSGIE1BUklKQQorS05Fxb1FVknEhiBNQVJJSkEKK0tORcW9RVZJxIYgTUFSS08KK0tORcW9RVZJxIYgTUnEhkEKK0tORcW9RVZJxIYgTUlIQUpMTworS05Fxb1FVknEhiBNSUhBSkxPCitLTkXFvUVWScSGIE1JSEFKTE8KK0tORcW9RVZJxIYgTUlIQUpMTworS05Fxb1FVknEhiBNSUxBRElOCitLTkXFvUVWScSGIE1JTEFOCitLTkXFvUVWScSGIE1JTEFOCitLTkXFvUVWScSGIE1JTEFOCitLTkXFvUVWScSGIE1JTEFOCitLTkXFvUVWScSGIE1JTEFOCitLTkXFvUVWScSGIE1JTEFOCitLTkXFvUVWScSGIE1JTEFOCitLTkXFvUVWScSGIE1JTEFOCitLTkXFvUVWScSGIE1JTEFOCitLTkXFvUVWScSGIE1JTElDQQorS05Fxb1FVknEhiBNSUxJSkFOQQorS05Fxb1FVknEhiBNSUxJVk9KCitLTkXFvUVWScSGIE1JTEtBCitLTkXFvUVWScSGIE1JTE/FoAorS05Fxb1FVknEhiBNSUxPTUlSCitLTkXFvUVWScSGIE1JTE9OSkEKK0tORcW9RVZJxIYgTUlMT05KQQorS05Fxb1FVknEhiBNSUxPUkFECitLTkXFvUVWScSGIE1JTFVUSU4KK0tORcW9RVZJxIYgTUlPRFJBRworS05Fxb1FVknEhiBNSU9EUkFHCitLTkXFvUVWScSGIE1JT0RSQUcKK0tORcW9RVZJxIYgTUlSSkFOQQorS05Fxb1FVknEhiBNSVJLTworS05Fxb1FVknEhiBNSVJLTworS05Fxb1FVknEhiBNSVJLTworS05Fxb1FVknEhiBNSVJLTworS05Fxb1FVknEhiBNSVJLTworS05Fxb1FVknEhiBNSVJLTworS05Fxb1FVknEhiBNSVJLTworS05Fxb1FVknEhiBNSVJPU0xBVgorS05Fxb1FVknEhiBNSVJPU0xBVgorS05Fxb1FVknEhiBNTEFERU4KK0tORcW9RVZJxIYgTU9NxIxJTE8KK0tORcW9RVZJxIYgTU9NSVIKK0tORcW9RVZJxIYgTU9NSVIKK0tORcW9RVZJxIYgTU9NSVIKK0tORcW9RVZJxIYgTkFEQQorS05Fxb1FVknEhiBOQURFxb1EQQorS05Fxb1FVknEhiBORU5BRAorS05Fxb1FVknEhiBORVZFTkEKK0tORcW9RVZJxIYgTklLT0xBCitLTkXFvUVWScSGIE5JS09MQQorS05Fxb1FVknEhiBOSUtPTEEKK0tORcW9RVZJxIYgTklLT0xBCitLTkXFvUVWScSGIE5JS09MQQorS05Fxb1FVknEhiBOSUtPTEEKK0tORcW9RVZJxIYgTklLT0xBCitLTkXFvUVWScSGIE5JS09MQQorS05Fxb1FVknEhiBQQU5UQQorS05Fxb1FVknEhiBQQVZMRQorS05Fxb1FVknEhiBQRVJBCitLTkXFvUVWScSGIFBFVEFSCitLTkXFvUVWScSGIFBFVEFSCitLTkXFvUVWScSGIFBFVEFSCitLTkXFvUVWScSGIFBFVEFSCitLTkXFvUVWScSGIFBFVEtPCitLTkXFvUVWScSGIFJBREEKK0tORcW9RVZJxIYgUkFERQorS05Fxb1FVknEhiBSQURJVk9KRQorS05Fxb1FVknEhiBSQURJVk9KRQorS05Fxb1FVknEhiBSQURNSUxBCitLTkXFvUVWScSGIFJBRE9NSVIKK0tORcW9RVZJxIYgUkFET1NMQVYKK0tORcW9RVZJxIYgUkFKS08KK0tORcW9RVZJxIYgUkFOS08KK0tORcW9RVZJxIYgUklTVE8KK0tORcW9RVZJxIYgUk9aQQorS05Fxb1FVknEhiBTQVZPCitLTkXFvUVWScSGIFNJTknFoEEKK0tORcW9RVZJxIYgU0xBVktPCitLTkXFvUVWScSGIFNMQVZLTworS05Fxb1FVknEhiBTTEFWT0xKVUIKK0tORcW9RVZJxIYgU0xPQk9EQU4KK0tORcW9RVZJxIYgU0xPQk9EQU4KK0tORcW9RVZJxIYgU0xPQk9EQU4KK0tORcW9RVZJxIYgU0xPQk9EQU4KK0tORcW9RVZJxIYgU0xPQk9EQU4KK0tORcW9RVZJxIYgU0xPQk9EQU4KK0tORcW9RVZJxIYgU0xPQk9EQU4KK0tORcW9RVZJxIYgU0xPQk9EQU4KK0tORcW9RVZJxIYgU0xPQk9EQU4KK0tORcW9RVZJxIYgU1BBU0VOSUpBCitLTkXFvUVWScSGIFNSQklTTEFWQQorS05Fxb1FVknEhiBTVEFOQQorS05Fxb1FVknEhiBTVEFOScWgQQorS05Fxb1FVknEhiBTVEFOSU1JUgorS05Fxb1FVknEhiBTVEFOS08KK0tORcW9RVZJxIYgU1RFVkFOCitLTkXFvUVWScSGIFNURVZPCitLTkXFvUVWScSGIFNURVZPCitLTkXFvUVWScSGIFNUSVBFCitLTkXFvUVWScSGIFNUT0pBTgorS05Fxb1FVknEhiBTVkVUS08KK0tORcW9RVZJxIYgU1ZFVE8KK0tORcW9RVZJxIYgVEVPRE9SCitLTkXFvUVWScSGIFRPTUlTTEFWCitLTkXFvUVWScSGIFVST8WgCitLTkXFvUVWScSGIFZBU0lMSUpBCitLTkXFvUVWScSGIFZFUkEKK0tORcW9RVZJxIYgVkVSQQorS05Fxb1FVknEhiBWTEFESU1JUgorS05Fxb1FVknEhiBWTEFESU1JUgorS05Fxb1FVknEhiBWTEFTVElNSVIKK0tORcW9RVZJxIYgVkxBU1RJTUlSCitLTkXFvUVWScSGIFZPSklOCitLTkXFvUVWScSGIFZVS09TQVYKK0tORcW9RVZJxIYgWkRSQVZLTworS05Fxb1FVknEhiBaTEFUQU4KK0tORcW9RVZJxIYgWk9SQU4KK0tORcW9RVZJxIYgWk9SQU4KK0tORcW9RVZJxIYgWk9SQQorS05Fxb1JxIYgT0xHQQorS05Fxb1JxIYgUkFET01JUgorS05FQkwgRlJBTkpBCitLTkVCTCBOSUtPTEEKK0tORUdJxIYgTUlST1NMQVYKK0tORVIgREVaSURFUgorS05FU0VMQUMgQlJBTklTTEFWQQorS05FWiBaTEFUS08KK0tORVpJIElWQU4KK0tORVpJIEpPxb1FRgorS05FWkkgU0xPQk9EQU4KK0tOSkXFoEtPIMW9VcW9QU5BCitLTkpFxaBLTyBBTEJFUlQKK0tPxIxBUiBMQVNMTworS0/EjEFSIFNURUZBTklKQQorS0/EjEFSIFRJSE9NSVIKK0tPxIxFVE9WIFRBVEpBTkEKK0tPxIxJIEVURUxLQQorS0/EjEkgScWgVFZBTgorS0/EjEkgVkxBRElNSVIKK0tPxIxJxaAgxJBVUkEKK0tPxIxJxaAgQU5EUklKQQorS0/EjEnFoCBBTkRSSUpBCitLT8SMScWgIEVSTkVTVAorS0/EjEnFoCBHRVJHRUxKIERJUEwgSU5HCitLT8SMScWgIEhFTEVOQQorS0/EjEnFoCBJxaBUVkFOCitLT8SMScWgIEpBS09WCitLT8SMScWgIEpBTktPCitLT8SMScWgIEpBTk/FoAorS0/EjEnFoCBLQVJMTworS0/EjEnFoCBNQVJJSkEKK0tPxIxJxaAgTUlIQUpMTworS0/EjEnFoCBOSUtPTEEgUFJPRkVTT1IKK0tPxIxJxaAgUkFERQorS0/EjEnFoCBWTEFESU1JUgorS0/EjEnFoCBWTEFESU1JUgorS0/EjEnEhiBEUkFHTworS0/EjEnEhiBNQU5FCitLT8SMScSGIE1JTE9SQUQKK0tPxIxJxIYgU1RBTklTTEFWCitLT8SMT0JBIFJBRElTTEFWCitLT8SMT1NLSSBQRVRBUgorS0/EjE9WScSGIEFMRUtTQU5EQVIKK0tPxIxPVknEhiBNSUxFVEEKK0tPxaDEhkFLIFNBVktBCitLT8WgQSBUSUJPUiBESVBMIElORworS0/FoEFOSU4gTUlMT01JUgorS0/FoEFOSkkgRkVSRU5DCitLT8WgQVJJxIYgRElNSVRSSUpFCitLT8WgScSGIExKVUJJQ0EKK0tPxaBJxIYgTUlUQQorS0/FoEnEhiBTVEVWQU4KK0tPxaBJxIYgU1RFVk8KK0tPxaBJxIYgVkFTSUxJSkUKK0tPxaBJQ0tJIExFQQorS0/FoElDS0kgTUFSSUpBCitLT8WgTknEjEFSIE1JTEFOCitLT8WgTknEjEFSIFNPRklKQQorS0/FoE9DS0kgTUFSSUpBCitLT8WgVVRJxIYgxJBVUk8KK0tPxaBVVEnEhiDEkFVSTworS0/FoFVUScSGIEJPxb1JREFSCitLT8WgVVRJxIYgQlJBTktPCitLT8WgVVRJxIYgRElNSVRSSUpFCitLT8WgVVRJxIYgRFXFoEFOCitLT8WgVVRJxIYgSk9WQU4KK0tPxaBVVEnEhiBLT1NUQQorS0/FoFVUScSGIE1BTkUKK0tPxaBVVEnEhiBNSUxPxaAKK0tPxaBVVEnEhiBOSUtPTEEKK0tPxIZBTE8gUkFET0pJQ0EKK0tPxb1VTCBHT0pLTworS0/FvVVMIEdPSktPCitLT8W9VUwgUkFKS08KK0tPxb1VVkFSQSBHQVZSQQorS09CQcWgIEpPU0lQCitLT0JBxaAgS0FUSUNBCitLT0JBxaAgVlVLQcWgSU4KK0tPQkFMIMSQVVJBCitLT0JBTCBCT8W9SURBUgorS09CQUwgSVJJUworS09CQUwgSVZBTgorS09CSUxBUknEhiDEkFVSxJBJQ0EKK0tPQklMQVJPViBBTkdFTElOQQorS09CSUxBUk9WIExKVUJPTUlSCitLT0JJTEFST1YgTUlMQU5LQQorS09CSUxBUk9WIE1JTE/FoAorS09CSUxBUk9WIE1JUk9TTEFWCitLT0JJTEFST1YgTkVHT1ZBTgorS09CSUxBUk9WIE5FU1RPUgorS09CSUxBUk9WIFNJTUEKK0tPQklMQVJPViBUT8WgQQorS09CSUxBUk9WIFZBU0EKK0tPQklMSlNLSSDEkE9SxJBFCitLT0JJTEpTS0kgRE9CUklMQQorS09CSUxKU0tJIERSQUdPTUlSCitLT0JJTEpTS0kgRFXFoEFOCitLT0JJTEpTS0kgTEFaQVIKK0tPQklMSlNLSSBNSUxPxaAKK0tPQklMSlNLSSBNSVJKQU5BCitLT0JJTEpTS0kgTUxBREVOCitLT0JJTEpTS0kgTklLT0xBCitLT0JJTEpTS0kgU1RFVkFOCitLT0JJTEpTS0kgVklEQQorS09CSUxTS0kgTUFSSUpBCitLT0JSRUhFTCBMQUpPxaAKK0tPQ0FQIE1BUklKQQorS09DQVAgTUlSQQorS09DQVAgVkxBRElNSVIKK0tPQ0kgRkVSRU5DCitLT0NJIFJFxb1FCitLT0NJxIYgxb1JS0lDQQorS09DScSGIEFMRUtTQU5EQVIKK0tPQ0nEhiBBTklDQQorS09DScSGIERVxaBBTktBCitLT0NJxIYgSkFTTkEKK0tPQ0nEhiBMSklMSkFOQQorS09DScSGIE1JTElKQU5BCitLT0NJxIYgUkFETUlMQQorS09DScSGIFNJTknFoEEKK0tPQ0nEhiBTTEHEkEFOQQorS09DScSGIFNMQVZLTworS09DScSGIFRPTUlTTEFWCitLT0NJxIYgVkFTSUxJSkUKK0tPQ0nEhiBWRUxJTktBCitLT0NJxIYgWlZFWkRBTgorS09DSUpBTsSMScSGIE1JUkEKK0tPQ0tBUiBCT1JJU0xBVgorS09DS0FSIEJPUklTTEFWCitLT0NLQVIgTEpVQk9NSVIKK0tPQ0tBUiBWTEFESU1JUgorS09DS0FSRVZJxIYgQlJBTklTTEFWCitLT0NLQVJFVknEhiBKT1ZBTgorS09DS0FSRVZJxIYgTUlMSUNBCitLT0NPIMWgQU5ET1IKK0tPQ08gRVLFvUVCRVQKK0tPQ09MSkVWQUMgU1RBTklTTEFWCitLT0TFvU8gU0HFoEEKK0tPRMW9TyBaT1JBTgorS09EScSGIERJTUlUUklKRQorS09EUkFOT1YgUkFET1ZBTgorS09EUkFOT1YgU1JFRE9KRQorS09EUklOIExKVURNSUxBCitLT0dPSiBFRFVBUkQKK0tPR09KIEVNQQorS09IIEpPxb1FRgorS09IIFNBVkVUQQorS09IQU5FQyDFoEFORE9SCitLT0hBTkVDIEZSQU5KQQorS09IQU5FQyBHQcWgUEFSCitLT0hBTkVDIEpPVkFOCitLT0hBTkVDIE1BUklKQQorS09IQU5FQyBQQUwKK0tPSFVUIMSQVVJBCitLT0hVVCBTVE9KQQorS09KxIxJxIYgQU7EkEVMS08KK0tPSsSMScSGIERSQUdJQ0EKK0tPSsSMScSGIElWQU5BCitLT0rEjEnEhiBQUkVEUkFHCitLT0rEjEnEhiBTUkVET0pFIERSCitLT0rEjElOIETFvUVNSUxKQQorS09KxIxJTiBNSUxFVkEKK0tPSkFESU5PVknEhiDFvUlWS08KK0tPSkFESU5PVknEhiBCT8WgS08KK0tPSkFESU5PVknEhiBCT1JPCitLT0pBRElOT1ZJxIYgR09SREFOQQorS09KQURJTk9WScSGIEtBVEEKK0tPSkFESU5PVknEhiBNSVJBCitLT0pBRElOT1ZJxIYgUkFERQorS09KQURJTk9WScSGIFNUT0pBTgorS09KQURJTk9WScSGIFZMQURJTUlSCitLT0pEScSGIE1JUkpBTkEKK0tPSkRJxIYgTUxBREVOCitLT0pEScSGIFBFVEFSCitLT0pJxIxJxIYgTk9WS0EKK0tPSknEjEnEhiBUT01JU0xBVgorS09KScSMSU4gTUlMQU4KK0tPSknEhiDEjEVET01JUgorS09KScSGIMW9SVZBTgorS09KScSGIMSQVVJBxJAKK0tPSknEhiBBTEVLU0FOREFSCitLT0pJxIYgQUxFS1NBTkRBUgorS09KScSGIEFMRUtTQU5EQVIKK0tPSknEhiBBUlNFTgorS09KScSGIEJPxaBLTworS09KScSGLUJPxb1BTknEhiBTT0ZJSkEKK0tPSknEhiBCT1JJVk9KCitLT0pJxIYgQlJBTklTTEFWCitLT0pJxIYgREFOSUNBCitLT0pJxIYgRFJBR0FOCitLT0pJxIYgRFJBR0FOCitLT0pJxIYgRFJBR0FOCitLT0pJxIYgRFJBR0FOCitLT0pJxIYgRFJBR0lOSkEKK0tPSknEhiBEVcWgQU4KK0tPSknEhiBFUsW9RUJFVAorS09KScSGIEdPUkFOCitLT0pJxIYgR09SQU4KK0tPSknEhiBHT1JBTgorS09KScSGIEhSSVNUSUZPUgorS09KScSGIElWQU4KK0tPSknEhiBJVkFOCitLT0pJxIYgSVZBTgorS09KScSGIEpPVkFOS0EKK0tPSknEhiBKT1ZBTktBCitLT0pJxIYgSk9WTworS09KScSGIExFUE9TQVZBCitLT0pJxIYgTEpVQklDQQorS09KScSGIExKVUJPRFJBRworS09KScSGIExVS0EKK0tPSknEhiBNSUhBSUxPCitLT0pJxIYgTUlMQU4KK0tPSknEhiBNSUxBTgorS09KScSGIE1JTEFOCitLT0pJxIYgTUlMQU4KK0tPSknEhiBNSUxFTkEKK0tPSknEhiBNSUxFTkEKK0tPSknEhiBNSUxFTktPCitLT0pJxIYgTUlMRU5LTworS09KScSGIE1JTEVOS08KK0tPSknEhiBNSUxPVklOQQorS09KScSGIE1JT0RSQUcKK0tPSknEhiBNSVJKQU5BCitLT0pJxIYgTU9NxIxJTE8KK0tPSknEhiBORcSQTworS09KScSGIE5FQk9KxaBBCitLT0pJxIYgTkVCT0rFoEEKK0tPSknEhiBORURFTEpLTworS09KScSGIE9MR0lDQQorS09KScSGIFBFVEFSCitLT0pJxIYgUkFESVZPSgorS09KScSGIFJVxb1JQ0EKK0tPSknEhiBSVcW9SUNBCitLT0pJxIYgU0FWTworS09KScSGIFNJTUVPTgorS09KScSGIFNJTknFoEEKK0tPSknEhiBTUEFTRU5JSkEKK0tPSknEhiBTVEVWQU4KK0tPSknEhiBTVEVWQU4KK0tPSknEhiBTVEVWQU4KK0tPSknEhiBTVkVUSVNMQVYKK0tPSknEhiBVR0xKRcWgQQorS09KScSGIFZBU0EKK0tPSknEhiBWRUxJTUlSCitLT0pJxIYgVklOS0EKK0tPSknEhiBWTEFESVNMQVYKK0tPSk9WScSGIMW9QVJLTworS09KT1ZJxIYgTUlMSU5LTworS09LQUkgxaBBTkRPUgorS09LQUkgxaBBTkRPUgorS09LQUkgxaBBTkRPUgorS09LQUkgQUxJU0EKK0tPS0FJIEVMRU5BCitLT0tBSSBGRVJFTkMKK0tPS0FJIEZFUkVOQworS09LQUkgRkVSRU5DCitLT0tBSSBMQURJU0xBVgorS09LQUkgTEFTTE8KK0tPS0FJIE1BR0RPTE5BCitLT0tBSSBNSUhBSkxPCitLT0tBSSBUSUJPUgorS09LQU4gSVZBTgorS09LQU5PViBNSUxFVEEKK0tPS0FOT1ZJxIYgRFXFoEFOCitLT0tBTk9WScSGIEtPVklMSktBCitLT0tBUiBWRVJJQ0EKK0tPS0FSIFZJTE1BCitLT0tFTEogVFVHT01JUgorS09LRVpBIMW9QVJLTworS09LRVpBIERVxaBBTgorS09LRVpBIE1JTEVOQQorS09LScSGIEpPVkFOCitLT0tJxIYgTUlST1NMQVYKK0tPS0lOT1ZJxIYgU0xBVktPCitLT0tJUiBMSlVCTworS09LT1JVxaAgT1NUT0pBCitLT0tPVCBSQURFCitLT0tPVCBTTUlMSkEKK0tPS09UIFNSRVRBCitLT0tPVCBTVkVUTEFOQQorS09LT1QgVklDTworS09LT1RPVknEhiDFvUlWS08KK0tPS09UT1ZJxIYgQk/FvUlEQVIKK0tPS09UT1ZJxIYgR09KS08KK0tPS09UT1ZJxIYgSUxJSkEKK0tPS09UT1ZJxIYgSVZJQ0EKK0tPS09UT1ZJxIYgSkVMSVNBVkVUQQorS09LT1RPVknEhiBLQVRJQ0EKK0tPS09UT1ZJxIYgUEVUQVIKK0tPS09UT1ZJxIYgU05Fxb1BTkEKK0tPS09UT1ZJxIYgVkVTRUxJTgorS09LT1ZJxIYgRFJBR0FOCitLT0tPVknEhiBHT1JBTgorS09MxJBFUkFKIMSQT04KK0tPTEHEjEFSScSGIFZFTElCT1IKK0tPTEHFoElOQUMgTEpVQk9NSVIKK0tPTEFLIERVxaBBTgorS09MQUsgSkVMRU5BCitLT0xBSyBNSUxBTgorS09MQUtPVknEhiBBTE1BWgorS09MQUtPVknEhiBKVVJFCitLT0xBS09WScSGIE1JTEUKK0tPTEFLT1ZJxIYgWkRSQVZLTworS09MQUtVxaBJxIYgSVZJQ0EKK0tPTEFLVknEhiBMSklMSkFOQQorS09MQU5PIEFOVE9OCitLT0xBTk8gRFJBR09TTEFWCitLT0xBTk8gSVZBTgorS09MQU5PIEpVTEtBCitLT0xBUiBBTkEKK0tPTEFSIEFOQQorS09MQVIgQU5EUklKQQorS09MQVIgQU5UQUwKK0tPTEFSIERBUktPCitLT0xBUiBJQk9MSktBCitLT0xBUiBJVkFOCitLT0xBUiBKT1NJUAorS09MQVIgSk9TSVAKK0tPTEFSIEpVTElKQU5BCitLT0xBUiBMQUpPxaAKK0tPTEFSIExBU0xPCitLT0xBUiBMT1pJTktBCitLT0xBUiBNQVRJSkEKK0tPTEFSIE1JTElDQQorS09MQVIgTUlSS08KK0tPTEFSIFBBVkxFCitLT0xBUiBQRVRBUgorS09MQVLFoCDFoFRFRkFOCitLT0xBUkVWScSGIExKVUJJQ0EKK0tPTEFSScSGIEFMRUtTQU5EUkEKK0tPTEFSScSGIEJSQU5LTworS09MQVJJxIYgQlJJR0lUQQorS09MQVJJxIYgRE9CUklMQQorS09MQVJJxIYgRFJBR0lDQQorS09MQVJJxIYgRFJBR09MSlVCCitLT0xBUknEhiBEVcWgQU4KK0tPTEFSScSGIEZJTElQCitLT0xBUknEhiBJREEKK0tPTEFSScSGIEtPU1RBCitLT0xBUknEhiBNQVJJSkEKK0tPTEFSScSGIE1BUklKQQorS09MQVJJxIYgTUlMQU4KK0tPTEFSScSGIE1JTEFOCitLT0xBUknEhiBNSUxJVk9KCitLT0xBUknEhiBNTEFERU4KK0tPTEFSScSGIE5BREEKK0tPTEFSScSGIE5FTUFOSkEKK0tPTEFSScSGIE5JS09MQQorS09MQVJJxIYgUkFET1ZBTgorS09MQVJJxIYgU0xBVktPCitLT0xBUknEhiBTTE9CT0RBTgorS09MQVJJxIYgU0xPQk9EQU4KK0tPTEFSScSGIFNORcW9QU5BCitLT0xBUknEhiBTVEVWQU4KK0tPTEFSScSGIFRPTUlTTEFWCitLT0xBUknEhiBWT0pBCitLT0xBUknEhiBaT1JBTgorS09MQVJJxIYgWlZPTktPCitLT0xBUk9WIMW9SVZBCitLT0xBUk9WIMSQT1LEkEUKK0tPTEFST1YgQUxFS1NBTkRBUgorS09MQVJPViBESU1JVFJJSkUKK0tPTEFST1YgRFJBR09TTEFWCitLT0xBUk9WIERSQUdPU0xBVgorS09MQVJPViBHT0pLTworS09MQVJPViBKT1ZBTgorS09MQVJPViBKT1ZBTgorS09MQVJPViBKVUxLQQorS09MQVJPViBLQVRFCitLT0xBUk9WIExKSUxKQU5BCitLT0xBUk9WIE1BUklDQQorS09MQVJPViBNSUxBTktBCitLT0xBUk9WIE1JTElWT0oKK0tPTEFST1YgTUlMT8WgCitLT0xBUk9WIE1PTUlSCitLT0xBUk9WIE5BREEgRFIgTEVLQVIKK0tPTEFST1YgTkVCT0rFoEEKK0tPTEFST1YgUEFWTEUKK0tPTEFST1YgUEVUQVIKK0tPTEFST1YgUkFET0pLTworS09MQVJPVi1SQURPVkFOT1ZJxIYgTUFSSU5BCitLT0xBUk9WIFNBVkEKK0tPTEFST1YgVE9ET1IKK0tPTEFST1YgVE9NSVNMQVYKK0tPTEFST1YgVk9KSVNMQVYKK0tPTEFST1ZJxIYgxb1JVktPCitLT0xBUk9WScSGIEpFTEVOQQorS09MQVJPVknEhiBLQVRJQ0EKK0tPTEFST1ZJxIYgS09WSU5LQQorS09MQVJPVknEhiBMVUtBIERSCitLT0xBUk9WScSGIE1JSEFKTE8KK0tPTEFST1ZJxIYgTUlMSUNBCitLT0xBUk9WScSGIE5FTkFECitLT0xBUlNLSSDEkE9SxJBFCitLT0xBUlNLSSBBTEVLU0FOREFSCitLT0xBUlNLSSBBTklDQQorS09MQVJTS0kgQVJQQUQKK0tPTEFSU0tJIEJPU0lMSktBCitLT0xBUlNLSSBCUkFOSVNMQVYKK0tPTEFSU0tJIERBTklDQQorS09MQVJTS0kgRFXFoEFOS0EgRElQTCBPRUMKK0tPTEFSU0tJIEpPVkFOCitLT0xBUlNLSSBKT1ZBTgorS09MQVJTS0kgS0FUSUNBCitLT0xBUlNLSSBMQVNMTworS09MQVJTS0kgTEFaQVIKK0tPTEFSU0tJIE1JTEFESU4KK0tPTEFSU0tJIE1JTEFOCitLT0xBUlNLSSBNSUxFTktPIFZFVEVSSU5BUgorS09MQVJTS0kgTUlMRU5LTworS09MQVJTS0kgTUlMSUNBCitLT0xBUlNLSSBNSVRBUgorS09MQVJTS0kgTUxBREVOCitLT0xBUlNLSSBNTEFERU4KK0tPTEFSU0tJIE5BREEKK0tPTEFSU0tJIE5JS09MQQorS09MQVJTS0kgUkFETUlMQQorS09MQVJTS0kgUkFET1NMQVYKK0tPTEFSU0tJIFJBRE9WQU4KK0tPTEFSU0tJIFJBRE9WQU4KK0tPTEFSU0tJIFNMQVZJQ0EKK0tPTEFSU0tJIFNURVZBTgorS09MQVJTS0kgU1RFVkFOCitLT0xBUlNLSSBUT0RPUgorS09MQVJTS0kgVkVSQQorS09MQVJTS0kgWkRSQVZLTworS09MQkFTIERBTklKRUwKK0tPTEJBUyBKQU5LTworS09MQkFTIEpPQUtJTQorS09MQkFTIE1FTEFOSUpBCitLT0xCQVMgTUlMRVZBCitLT0xCQVMgVkxBREEKK0tPTETFvUnEhiBCUkFOS0EKK0tPTETFvUnEhiBCUkFOS08KK0tPTETFvUlOIE1JUktPCitLT0xExb1JTiBWRVNFTElOCitLT0xEQU4gTUlMRU5LTworS09MRcWgS0EgRURVQVJECitLT0xFREFSIEFORFJJSkEKK0tPTEVESU4gxJBPUsSQRQorS09MRURJTiBGT1RJSkUKK0tPTEVESU4gTUlMT8WgCitLT0xFRElOIE1JUkpBTkEKK0tPTEVESU4gUEVUQVIKK0tPTEVESU4gUkFET1NMQVYKK0tPTEVESU4gUkFET1ZBTgorS09MRURJTiBSQURPVkFOCitLT0xFRElOIFNURVZBTgorS09MRURJTiBWRUxJTUlSCitLT0xFRElOIFZFUkEKK0tPTEVSIEFOVEFMCitLT0xFUiBMQUpPxaAKK0tPTEVTQVIgxJBVUkEKK0tPTEVTQVIgQU5JQ0EKK0tPTEVTQVIgRkVET1IKK0tPTEVTQVIgRkVSRU5DCitLT0xFU0FSIEdBVlJBCitLT0xFU0FSIEpBTk/FoAorS09MRVNBUiBKT1ZBTgorS09MRVNBUiBKT1ZBTgorS09MRVNBUiBKVUxJSkFOCitLT0xFU0FSIEpVTElKQU4KK0tPTEVTQVIgS0FUSUNBCitLT0xFU0FSIEtTRU5JSkEKK0tPTEVTQVIgTUlIQUpMTworS09MRVNBUiBQRVRBUiBEUgorS09MRVNBUiBQRVRBUgorS09MRVNBUiBTSU1FT04KK0tPTEVTQVIgVkVSQQorS09MRVNBUiBWTEFESU1JUgorS09MRVNBUiBaT1JJQ0EKK0tPTEVTQVJJxIYgVklOS08KK0tPTEVWIFRPRE9SS0EKK0tPTEnEhiBBScWgQQorS09MSU4gSk/FvUVGIE5PVklOQVIKK0tPTEpBRMW9SU5TS0kgSk9WQU4KK0tPTEpBRMW9SU5TS0kgU1RFRkFOSUpBCitLT0xKQUpBIEJMQUdPSkUKK0tPTEpBSkEgRFJBR0FOCitLT0xKQUpBIEdPUkFOCitLT0xKQU5JTiBQRVRBUgorS09MTUFOIEpPxb1FRgorS09MT8SMQUkgSk9TSVAKK0tPTE/FoE5KQUkgTUlST04KK0tPTE/FoE5KQUpJIEpBTktPCitLT0xPxaBOSkFKSSBWTEFESU1JUgorS09MT1BJxIYgUEVUQVIKK0tPTE9QScSGIFJVxb1JQ0EKK0tPTE9WScSGIFNURVZBTgorS09MVElOIEJSQU5LTworS09MVU5Exb1JxIYgxb1JVktBCitLT0xVTkTFvUnEhiDEkFVSQQorS09MVU5Exb1JxIYgQU5LQQorS09MVU5Exb1JxIYgUEVSSUNBCitLT0xVTkTFvUnEhiBTTEFWS08KK0tPTFVORMW9ScSGIFNMQVZLTworS09MVU5Exb1JSkEgQU7EkEVMS0EKK0tPTFVORMW9SUpBIEJPUklTTEFWCitLT0xVTkTFvUlKQSBEQVZPUktBCitLT0xVTkTFvUlKQSBEUkFHQU4KK0tPTFVORMW9SUpBIExBWkFSCitLT0xVTkTFvUlKQSBMSlVCT01JUgorS09MVU5Exb1JSkEgTUlSS08KK0tPTFVORMW9SUpBIE5BREEKK0tPTFVORMW9SUpBIE5JS09MQQorS09MVU5Exb1JSkEgWk9SS0EKK0tPTFVUQUMgTUFUSUpBCitLT03FoEnEhiBKT1ZBTgorS09NxaBPIE5JS09MQQorS09NQUQgQU5BCitLT01BRCBHT0pLTworS09NQUQgUkFUT01JUgorS09NQUQgVE9NSVNMQVYKK0tPTUFEQU5PVknEhiBNT03EjElMTworS09NQURBTk9WScSGIE1PTUlSCitLT01BREFSScSGIE1JTE/FoAorS09NQURJTkEgTUFORQorS09NQURJTkEgVkVMSVNMQVYKK0tPTUFESU5BIFZVSkFESU4KK0tPTUFESU5JxIYgTUlMT1JBRAorS09NQURJTk9WScSGIERVxaBBTgorS09NQURJTk9WScSGIE1JUkEKK0tPTUFESU5PVknEhiBSQURPU0xBVgorS09NQU4gQk9TSUxKS0EKK0tPTUFOT1YgTUFSSUpBCitLT01BUiBHT0pLTyBESVBMIElORworS09NQVIgUkFESVZPSkUKK0tPTUFSIFNMQVZLQQorS09NQVIgU0xPQk9EQU4KK0tPTUFSIFpPUktBCitLT01BUsSMRVZJxIYgQUxFS1NBTkRBUgorS09NQVLEjEVWScSGIEnFoFRWQU4KK0tPTUFSxIxFVknEhiBNSUxFTkEKK0tPTUFSxIxFVknEhiBNSUxJTktPIERSCitLT01BUsSMRVZJxIYgTUlST1NMQVYKK0tPTUFSxIxFVknEhiBWTEFESU1JUgorS09NQVJJQ0EgTUFSS08KK0tPTUFSSUNBIE5PVktPCitLT01BUklDQSBSQURNSUxBCitLT01BUk9NSSDEkE9SxJBFCitLT01BUk9NSSBBTsSQRUxLQQorS09NQVJPTUkgQk9SQkFMQQorS09NQVJPTUkgQk9SSkFOS0EKK0tPTUFST01JIEJPUkpBTktBCitLT01BUk9NSSBJUk1BCitLT01BUk9NSSBLTEFSQQorS09NQVJPTUkgTUFHRE9MTkEKK0tPTUFST01JIE1BR0RPTE5BCitLT01BUk9NSSBNQVJJSkEKK0tPTUFST01JIFBFVEFSCitLT01BUk9NSSBaT0xUQU4KK0tPTUFST1YgQUxFS1NBTkRBUiBESVBMIElORworS09NQVJPViBBTEVLU0FOREFSCitLT01BUk9WIEJSQU5LQQorS09NQVJPViBEUkFHSUNBCitLT01BUk9WIERSQUdPTUlSCitLT01BVElOQSBEUkFHQU4KK0tPTUFUSU5PVknEhiBNSUhBSkxPCitLT01BVE9WScSGIE1JTEFOCitLT01BVE9WScSGIFZFTElNSVIKK0tPTUFaRUMgRFJBR09NSVIKK0tPTUFaRUMgUEVUQVIKK0tPTUJFUkkgQVZEVcWgCitLT01CSUxKIFZFUkEKK0tPTUVOREEgQU5EUklKQQorS09NSU5LTyBMSlVCSUNBCitLT01MRU5JxIYgxJBPUsSQRQorS09NTEVOT1Ygxb1JVkFOCitLT01MRU5PViDEkE9SxJBFCitLT01MRU5PViBKT1ZBTgorS09NTEVOT1ZJxIYgTUFSSUpBCitLT01MRU5PVknEhiBNSUxBTgorS09NTEVOT1ZJxIYgTUlMRQorS09NTEVOT1ZJxIYgVkVMSktPCitLT01MRU5TS0kgxb1JVkFOCitLT01MRU5TS0ktREVMScSGIFZVS09TQVZBIERSCitLT01MRU5TS0kgWk9SQU4KK0tPTUxKRU5PVknEhiBBTEVLU0FORFJBCitLT01MSkVOT1ZJxIYgQk/FoEtPCitLT01MSkVOT1ZJxIYgTUlMQU4KK0tPTUxKRU5PVknEhiBNT01JUgorS09NTEpFTk9WScSGIFNURVZBTgorS09NTEpFTk9WScSGIFZMQURPCitLT01MVcWgQU4gQk/FvUEKK0tPTUxVxaBLSSBJVkFOQSBNUgorS09NTkVOScSGIElWQU5LQQorS09NTkVOT1YgxaBBUkxPVEEKK0tPTU5FTk9WIE1JTE9SQUQKK0tPTU5FTk9WIE5JS09MQQorS09NTkVOT1YgU0FORFJBCitLT01ORU5PViBTVEFOSVNMQVYKK0tPTU5FTk9WIFZFU0VMSU5BCitLT01ORU5PViBWTEFESU1JUiBEUgorS09NTkVOT1ZJxIYgxb1JVkFOCitLT01ORU5PVknEhiBCUkFOS08KK0tPTU5FTk9WScSGIERFSkFOCitLT01ORU5PVknEhiBKRUxFTkEKK0tPTU5FTk9WScSGIExKVUJPSkUKK0tPTU5FTk9WScSGIE1JTEFOCitLT01ORU5PVknEhiBSQURPU0xBVgorS09NTkVOT1ZJxIYgU1RBTktPCitLT01ORU5PVknEhiBTVE9KQU4KK0tPTU5FTk9WScSGIFZFUklDQQorS09NT1NBUiBCUkFOS08KK0tPTU9TQVIgUkFKS08KK0tPTU9aRUMgxJBPUsSQRQorS09NT1pFQyBMQVpBUgorS09OIFNMT0JPREFOS0EKK0tPTiBTVEVWQU4KK0tPTiBUT01Bxb0KK0tPTsSMQVIgQU5EUklKQQorS09OxIxBUiBCT1NJTEpLQQorS09OxIxBUiBKT1ZPCitLT07EjEFSIExBRElTTEFWCitLT07EjEFSIE1JUkEKK0tPTsSMQVIgTUlUQVIKK0tPTsSMQVIgTklLT0xBCitLT07EjEFSIE5JS09MQQorS09OxIxBUiBSQU5LTworS09OxIxBUiBTTEFWS08KK0tPTsSMQVIgWk9SQQorS09OxIxBUiBaT1JBCitLT07EjEFSRVZJxIYgREFOSUNBCitLT07EjEFSRVZJxIYgSUxJSkEKK0tPTsSMRUsgUk9aQUxJSkEKK0tPTkFLT1YgTkVERUxKS08KK0tPTkMgxaBBTkRPUgorS09OQyBJxaBUVkFOCitLT05DIElMT05BCitLT05DIExKSUxKQU5BCitLT05DIFpPUkFOS0EKK0tPTkRBTiBNQVJHQVJFVEEKK0tPTkRJxIYgQU5BCitLT05EScSGIEFOS0EKK0tPTkRJxIYgQlJBTktPCitLT05EScSGIERSQUdBTgorS09OREnEhiBEUkFHSUNBCitLT05EScSGIERSQUdPTEpVQgorS09OREnEhiBEVcWgQU5LQQorS09OREnEhiBKT1ZBTgorS09OREnEhiBMSlVCSUNBCitLT05EScSGIE1JTEVOS08KK0tPTkRJxIYgTUlSQQorS09OREnEhiBORUJPSsWgQQorS09OREnEhiBORU1BTkpBCitLT05EScSGIE5JS09MQQorS09OREnEhiBOSUtPTEEKK0tPTkRJxIYgUkFETUlMQQorS09OREnEhiBSQURPSktBCitLT05EScSGIFJBSktPCitLT05EScSGIFNBTkRSQQorS09OREnEhiBUUklWTworS09OREnEhiBaRFJBVktPCitLT05EScSGIFpPUktBCitLT05ET0pBTkkgxJBPUsSQRQorS09ORFJBSyBTVE9KQU4KK0tPTkRSQVRKRVYgxaBURUZBTklKQQorS09ORcSMTkkgTUFSSUpBCitLT05FQ0tJIFpMQVRLTworS09ORUNLSSBaTEFUS08KK0tPTkVOIFJPQkVSVAorS09ORU4gUk9CRVJUCitLT05FU0tBIExKSUxKQU5BCitLT05HTyBWRVJBCitLT05KQVRJxIYgxaBJTU8KK0tPTkpFVknEhiDFvUlWQSBESVBMIFBSQVZOSUsKK0tPTkpFVknEhiBBTkEKK0tPTkpFVknEhiBEQU5JTE8KK0tPTkpFVknEhiBET0JSSVZPSgorS09OSkVWScSGIERSQUdPTUlSCitLT05KRVZJxIYgR1JPWkRBTkEKK0tPTkpFVknEhiBJVkFOS0EKK0tPTkpFVknEhiBNSUxFVkEKK0tPTkpFVknEhiBNSUxJVk9KCitLT05KRVZJxIYgTUxBxJBFTgorS09OSkVWScSGIE1MQURFTgorS09OSkVWScSGIE5FTkFECitLT05KRVZJxIYgUFJFRFJBRworS09OSkVWScSGIFBSRURSQUcKK0tPTkpFVknEhiBQUkVEUkFHCitLT05KRVZJxIYgU1RBTklTTEFWCitLT05KRVZJxIYgU1RBTklTTEFWCitLT05KScSGIFNUT0pBTktBCitLT05KSUsgTkFEQQorS09OSklLIFZJRE9KRQorS09OSk9WScSGIEJSQU5JU0xBVgorS09OSk9WScSGIEpPVkFOCitLT05KT1ZJxIYgTUFLU0lNCitLT05KT1ZJxIYgTUlMQU4KK0tPTkpPVknEhiBNSVJKQU5BCitLT05KT1ZJxIYgTklLT0xBCitLT05KT1ZJxIYgUkFET1NMQVZBCitLT05KT1ZJxIYgU01JTEpBCitLT05KT1ZJxIYgU09GSUpBCitLT05KT1ZJxIYgVElOS0EKK0tPTkpPVknEhiBWRVJBCitLT05LT0wgTUlIQUpMTworS09OS09MSiBNQVJJSkEKK0tPTk9QRUsgU1RBTklNSVIKK0tPTlJBRCBGUkFOSkEKK0tPTlJBRCBNSVLEjEEKK0tPTlJBRCBQQVZMRQorS09OU1RBTlRJTiBCVUhBCitLT05TVEFOVElOSURJUyBESU1JVFJJSkUKK0tPTlNUQU5USU5JRElTIEdFT1JHSU9TCitLT05TVEFOVElOSURJUyBURU9ET1IKK0tPTlNUQU5USU5JRFUgU09GSUpBCitLT05TVEFOVElOT1ZJxIYgQU7EkEVMSUpBCitLT05TVEFOVElOT1ZJxIYgQkxBR09KRQorS09OU1RBTlRJTk9WScSGIEhFUk1JTkEKK0tPTlNUQU5USU5PVknEhiBKRUxJQ0EKK0tPTlNUQU5USU5PVknEhiBKT1JEQU4KK0tPTlNUQU5USU5PVknEhiBKT1ZBTgorS09OU1RBTlRJTk9WScSGIExKSUxKQU5BCitLT05TVEFOVElOT1ZJxIYgTFVLQQorS09OU1RBTlRJTk9WScSGIE1JUkpBTkEKK0tPTlNUQU5USU5PVknEhiBOSUtPTEEKK0tPTlNUQU5USU5PVknEhiBQRVRBUgorS09OU1RBTlRJTk9WScSGIFZFUkEKK0tPTlNUQU5USU5PVknEhiBaVk9OSU1JUgorS09OVEnEhiBET0JSSVZPSgorS09OVEnEhiBKT1ZBTktBCitLT05UScSGIE1JTEFOCitLT05UScSGIFNMQVZJQ0EKK0tPTlRSScSGIEpPVkFOCitLT1DEjEFOU0tJIMW9RUxKS08KK0tPUMSMQU5TS0kgSVJJTkEKK0tPUMSMQU5TS0kgTklLT0xBCitLT1DEjEFOU0tJIFBFVEFSCitLT1DEjEFOU0tJIFJBRE1JTEEKK0tPUMSMQU5TS0kgU1RFVkFOCitLT1DEjEFOU0tJIFZMQURBCitLT1DEjE9LIEFOQQorS09QxIxPSyBLQVRJQ0EKK0tPUMSMT0sgTUnFoEEKK0tPUMSMT0sgU0FORFJBCitLT1BBTkpBIERBTklMTworS09QQU5KQSBEUkFHT01JUgorS09QQU5KQSBEVcWgQU4KK0tPUEFOSkEgRFXFoEFOCitLT1BBTkpBIEdPSktPCitLT1BBTkpBIEdPSktPCitLT1BBTkpBIElMSUpBCitLT1BBTkpBIExKVVBLTworS09QQU5KQSBNScSGTworS09QQU5KQSBNSU9EUkFHCitLT1BBTkpBIE1JVEFSCitLT1BBTkpBIFJBTklTTEFWCitLT1BBTkpBIFJPU0EKK0tPUEFOSkEgVklECitLT1BBUyBKQU5PxaAKK0tPUEVSRUMgQUxFS1NBTkRBUgorS09QRVJFQyBBTkRSSUpBCitLT1BFUkVDIEpBTk/FoAorS09QRVJFQyBKT1ZBTgorS09QRVJFQyBTVEVWQU4KK0tPUEVSRUMgU1RFVkFOCitLT1BFU1RFTlNLSSBLQVRJQ0EKK0tPUEVTVElOU0tJSiBSRUdJTkEKK0tPUEnEhiBJTE9OQQorS09QSUNMIFJVRE9MRgorS09QSUxPVknEhiBKT1NJUAorS09QSUxPVknEhiBNQVJHQQorS09QSUxPVknEhi1NSUpBVE9WIERSQUdJQ0EKK0tPUElMT1ZJxIYgUEFWTEUKK0tPUElUT1ZJxIYgxaBQSVJPCitLT1BJVE9WScSGIFBFVEFSCitLT1BMQU5KSSBNQVJJSkEKK0tPUExBTkpJIE1JUk9TTEFWQQorS09QTEnEhiDEkE9SxJBFCitLT1BMScSGIERBTklDQQorS09QTEnEhiBEVcWgQU4KK0tPUExJxIYgTUlMRQorS09QUkVOT1ZJxIYgUkFET0pLQQorS09QUklWxaBFSyBaVk9OSU1JUgorS09QUklWSUNBIEFOR0VMSU5BCitLT1BSSVZJQ0EgQk/FvUlEQVIKK0tPUFJJVklDQSBCT8W9SURBUgorS09QUklWSUNBIEJPUklTTEFWCitLT1BSSVZJQ0EgR09SREFOQQorS09QUklWSUNBIExKSUxKQU5BCitLT1BSSVZJQ0EgTUlMRU5LTworS09QUklWSUNBIE1JTFVUSU4KK0tPUFJJVklDQSBNSU9EUkFHCitLT1BSSVZJQ0EgTk9WQUsKK0tPUFJJVklDQSBPQlJFTgorS09QUklWSUNBIFBFVEFSCitLT1BSSVZJQ0EgU1ZFVE9aQVIKK0tPUFJJVklDQSBaT1JBTgorS09QVU5PVknEhiBMSlVCSUNBCitLT1LEjE9LIEpBTgorS09SxIxPSyBNQVJJSkEKK0tPUsSMT0sgVkxBRElNSVIKK0tPUkHEhiDFvUVMSktPCitLT1JBxIYgQU7EkEVMSUpBCitLT1JBxIYgRFXFoEFOCitLT1JBxIYgR09KS08KK0tPUkHEhiBJR09SCitLT1JBxIYgSlVMSUpBTkEKK0tPUkHEhiBLQVRJQ0EKK0tPUkHEhiBMSlVCSVNBVgorS09SQcSGIE1BTkUKK0tPUkHEhiBNSUhBSkxPCitLT1JBxIYgTUlMQU4KK0tPUkHEhiBNSUxFCitLT1JBxIYgTUlMRQorS09SQcSGIE1JTEUKK0tPUkHEhiBNSUxFCitLT1JBxIYgTUlMT1ZBTiBEUiBQUk9GCitLT1JBxIYgTUlMT1ZBTgorS09SQcSGIE1JTE9WQU4KK0tPUkHEhiBNSU9EUkFHCitLT1JBxIYgUEVUQVIKK0tPUkHEhiBQRVRSQQorS09SQcSGIFJBREUKK0tPUkHEhiBSQURPSktBCitLT1JBxIYgUkFET0pLQQorS09SQcSGIFJBRE9TQVYKK0tPUkHEhiBTTE9CT0RBTgorS09SQcSGIFNORcW9QU5BCitLT1JBxIYgVEFUSkFOQQorS09SQcSGIFZMQURPCitLT1JBSklDQSDEkFVSQQorS09SQUpMSUpBIMW9QVJLTworS09SQUpMSUpBIMW9QVJLTworS09SQUpMSUpBIMW9QVJLTworS09SQUpMSUpBIERJTUlUUklKRQorS09SQUpMSUpBIE1JTEFOCitLT1JBS1UgTFXEjElKQU4KK0tPUkFLVSBMVUNJSkFOCitLT1JCQVRGSU5TS0kgRUxWSVJBCitLT1JCQVRGSU5TS0kgVklLVE9SIERSCitLT1JCQVRWSU5TS0kgRFJBR0FOCitLT1JCQVRWSU5TS0ktTEFMT8WgRVZJxIYgWkxBVEEKK0tPUkJJxIYgTUxBREVOCitLT1JEQSBNSUxPxaAKK0tPUkRBIE5BTkRPUgorS09SREnEhiDEkFVSQQorS09SREnEhiBCT0pBTgorS09SREnEhiBEVcWgQU5LQQorS09SREnEhiBHT0pLTworS09SREnEhiBNSUxBTgorS09SRU5JxIYgR0FCUklFTAorS09SRU5JxIYgVEVPRE9SCitLT1JFTkpJIMSQT1LEkEUKK0tPUkVOSkkgQUxFS1NBTkRBUgorS09SRU5KSSBMQVNMTworS09SRU5UIExVRFZJRworS09SSEFNRVIgRkVSRU5DCitLT1JIRUMgUEFWTEUKK0tPUknFoCBKVUxJSkFOQQorS09SScSGQU5BQyBJVkFOCitLT1JJxIZBTkFDIExKVUJJTktBCitLT1JJxb0gQVJQQUQKK0tPUklDQSDEkE9SxJBFCitLT1JJQ0EgxJBVUk8KK0tPUklDQSBEVcWgQU4KK0tPUklDQSBKQU5LTworS09SSUNBIE1JTE9SQUQKK0tPUklDQSBORURFTEpLTworS09SSUNBIE5JS09MQQorS09SSUNBIFBFVEFSCitLT1JJQ0EgU05Fxb1BTkEKK0tPUklDQSBTT0ZJSkEKK0tPUklDQSBTVEVWQU4KK0tPUklTVE9WScSGIE1JS1NBUkQKK0tPUkxBVCBQRVJJQ0EKK0tPUkxBVCBQRVRBUgorS09STUFOSk/FoCDFoEFORE9SCitLT1JNQU5KT8WgIEFORFJJSkEKK0tPUk1BTkpPxaAgQk9SS0EKK0tPUk1BTkpPxaAgRkVSRU5DCitLT1JNQU5KT8WgIEtBUk9MSgorS09STUFOSk/FoCBNSUhBTEoKK0tPUk1PxaAgSkFOT8WgCitLT1JNT8WgIE1BUkdJVEEKK0tPUk1PxaAgTUFSR0lUQQorS09STU/FoCBNQVJJSkEKK0tPUk1PxaAgVEVSRVpBCitLT1JPxaAgUkFTVElTTEFWCitLT1JPxaAgVkxBREEKK0tPUk/FoEFOIMWgQU5ET1IKK0tPUk/FoEVDIExFTworS09ST0JLTyBUQVJBUworS09ST0RJIEZSQU5KQQorS09ST0tOQUkgRkVSRU5DCitLT1JPS05BSSBKQU5PxaAKK0tPUk9LTkFJIFpPTFRBTgorS09ST0xJSkEgRFXFoEFOIERSIExFS0FSCitLT1JPTElKQSBEVcWgQU4KK0tPUk9MSUpBIFNURVZBTiBEUgorS09ST0xJSkEgVkVSQQorS09ST00gRVLFvUVCRVQKK0tPUk9NIFRJQk9SCitLT1JPTUFOIE1JTE9SQUQKK0tPUk9WIMSQT1LEkEUKK0tPUk9WTEpFViBJVkFOCitLT1JPVkxKRVYgSk9WQU5LQQorS09ST1ZMSkVWIE1BUklKQQorS09ST1ZMSkVWIE1JTEVOS08KK0tPUk9WTEpFViBNSUxPxaAKK0tPUk9WTEpFViBSQURNSUxBCitLT1JPVkxKRVYgVlVLSUNBCitLT1JQQSBCRUxBCitLT1JQQcWgIEFNQUxJSkEKK0tPUlBBxaAgREFOSUNBCitLT1JQQcWgIERJTUlUUklKRQorS09SUEHFoCBKQU5LTworS09SUEHFoCBNSVJPU0xBVgorS09SUEHFoCBNSVJPU0xBVgorS09SUEHFoCBQRVJBCitLT1JQQUsgRFJBR0lOSkEKK0tPUlBBSyBOQURBCitLT1JQT05BSSBJxaBUVkFOCitLT1JQT05BSSBNQVJJSkEKK0tPUlVHQSBCT1JBCitLT1JVR0EgSlVMS0EKK0tPUlVHQSBSQURPTUlSCitLT1JVTknEhiBMSVpBCitLT1MgSURBCitLT1MgTUFSSUpBCitLT1MgU0xBVktPCitLT1MgU0xBVktPCitLT1MgU1RBTktPCitLT1NBxIYgREFSSU5LQQorS09TQU5JxIYgQlJBTklTTEFWCitLT1NBTknEhiBJVkFOS0EKK0tPU0FOScSGIFNBVkEKK0tPU0FOT1YgQUxFS1NBTkRBUgorS09TQU5PViBLQVRJQ0EKK0tPU0FOT1YgVkxBRElNSVIKK0tPU0FOT1ZJxIYgQU7EkEVMS0EKK0tPU0FOT1ZJxIYgQk9HREFOIE1SCitLT1NBTk9WScSGIEJSQU5LTworS09TQU5PVknEhiBCUkFOS08KK0tPU0FOT1ZJxIYgREFORQorS09TQU5PVknEhiBEUkFHQU4KK0tPU0FOT1ZJxIYgRFXFoEFOS0EKK0tPU0FOT1ZJxIYgRFXFoEFOCitLT1NBTk9WScSGIEpFTElDQQorS09TQU5PVknEhiBKT1ZBTgorS09TQU5PVknEhiBLT1NBTkEKK0tPU0FOT1ZJxIYgTEFaTworS09TQU5PVknEhiBMSlVCSUNBCitLT1NBTk9WScSGIExKVUJPTUlSIERSCitLT1NBTk9WScSGLU1BTkRJxIYgTkVOQQorS09TQU5PVknEhiBNQU5FCitLT1NBTk9WScSGIE1BUktPCitLT1NBTk9WScSGIE1JxIZPCitLT1NBTk9WScSGIE1JTEFOCitLT1NBTk9WScSGIE1JTEUKK0tPU0FOT1ZJxIYgTUlMT1JBRAorS09TQU5PVknEhiBNSVJLTworS09TQU5PVknEhiBNSVRBUgorS09TQU5PVknEhiBNTEFERU4KK0tPU0FOT1ZJxIYgTkFEQQorS09TQU5PVknEhiBPTEdBCitLT1NBTk9WScSGIFBFVEFSCitLT1NBTk9WScSGIFJBRE9WQU4KK0tPU0FOT1ZJxIYgU0xBVktPCitLT1NBTk9WScSGIFNUT0pBTgorS09TQU5PVknEhiBWRUxJTUlSCitLT1NBTk9WScSGIFpPUklDQQorS09TQVJFTktPIFBFVEFSCitLT1NFRE5BUiBTVEpFUEFOCitLT1NJxIYgxb1BUktPCitLT1NJxIYgxb1BUktPCitLT1NJxIYgxb1JVk9KSU4KK0tPU0nEhiBCSUxKQU5BCitLT1NJxIYgQk9KQU4KK0tPU0nEhiBCT1JLTworS09TScSGIEJSQU5JU0xBVgorS09TScSGIEdPUkFOCitLT1NJxIYgR09SREFOQQorS09TScSGIElWQU4KK0tPU0nEhiBKRUxJQ0EKK0tPU0nEhiBKT1ZJQ0EKK0tPU0nEhiBMVUtBCitLT1NJxIYgTUFSSUpBCitLT1NJxIYgTUlMT1ZBTgorS09TScSGIE1JUktPIERJUEwgSU5HCitLT1NJxIYgTkVERUxKS08KK0tPU0nEhiBSVcW9QQorS09TScSGIFNWRVRPWkFSCitLT1NJxIYgVE9NQQorS09TScSGIFpPUklDQQorS09TSU5BIE1JTElDQQorS09TSVJPVknEhiBNQVJJSkEKK0tPU0lST1ZJxIYgTUlMQU4KK0tPU0lST1ZJxIYgUEFOVEVMSUpBCitLT1NKRVIgRFXFoEFOCitLT1NKRVJJTkEgTUlMRU5LTworS09TS0EgQVRNQU5BCitLT1NLQSBIQVRJRMW9RQorS09TS0EgSkFTTUlESU4KK0tPU0tBIExKRVJLQQorS09TS0EgTUlMRU5BCitLT1NLQSBOQURFxb1EQQorS09TS0EgU0FGRVQKK0tPU0tBIFNBTEkKK0tPU01BSkFDIMSQT1LEkEUKK0tPU01BSkFDIEFOSUNBCitLT1NPIEJPU0lMSktBCitLT1NPIEZSQU5KTworS09TTyBNSUhBTEoKK0tPU08gT0xJVkVSQQorS09TTyBQQUwKK0tPU09SVcWgIMSQVVJBCitLT1NPUlXFoCBFVEVMS0EKK0tPU09SVcWgIFBFVEVSCitLT1NPVkFDIMSMRURBCitLT1NPVkFDIMW9SVZLTworS09TT1ZBQyBBTEVLU0FOREFSIERSCitLT1NPVkFDIEJPSkFOCitLT1NPVkFDIEJPSkFOCitLT1NPVkFDIERBUktPCitLT1NPVkFDIERSQUdBTgorS09TT1ZBQyBEVcWgQU4KK0tPU09WQUMgR0VPUkdJSkUKK0tPU09WQUMgR09KS08KK0tPU09WQUMgSlVMSUpBTkEKK0tPU09WQUMgTUlMQU4KK0tPU09WQUMgTUlMQU4KK0tPU09WQUMgTUlSS08KK0tPU09WQUMgTklLT0xBCitLT1NPVkFDIFJBRElWT0oKK0tPU09WQUMgWkRSQVZLTworS09TT1ZJxIYgQU5EUklKQQorS09TT1ZJxIYgQU5LSUNBCitLT1NPVknEhiBNSUxPUkFECitLT1NPVknEhiBPTEdBIFBST0ZFU09SCitLT1NPVknEhiBSQURJU0xBVgorS09TT1ZJxIYgUkFUS08KK0tPU09WScSGIFNWRVRJU0xBVgorS09TT1ZSQVNUSSBBRMW9SQorS09TVEFESU5PU0tJIEJMQUdPSkUKK0tPU1RBRElOT1YgUklTVEEKK0tPU1RBRElOT1ZJxIYgQlJBTklTTEFWCitLT1NUQURJTk9WScSGIERSQUdPTEpVQgorS09TVEFESU5PVknEhiBMSklMSkFOQQorS09TVEFESU5PVknEhiBUSUhPTUlSCitLT1NUQURJTk9WScSGIFZFUkEKK0tPU1RBRElOT1ZJxIYgVkVSSUNBCitLT1NUQURJTk9WScSGIFZVS0FOCitLT1NUQURJTk9WU0tJIERJTcSMRQorS09TVEVMTklLIE5FU1RPUgorS09TVEVMTklLIFNJTFZFU1RFUgorS09TVEVWU0tJIElWQU4KK0tPU1RJxIYtxaBPQk9UIE1JTEtBCitLT1NUScSGIMW9QVJLTworS09TVEnEhiDFvUVMSktPCitLT1NUScSGIMW9SVZPSklOCitLT1NUScSGIMSQT1LEkEUKK0tPU1RJxIYgxJBPUsSQRQorS09TVEnEhiDEkE9SxJBFCitLT1NUScSGIMSQT1LEkEUKK0tPU1RJxIYgxJBPUsSQRQorS09TVEnEhiDEkFVSxJBJQ0EKK0tPU1RJxIYgQUNBCitLT1NUScSGIEFMRUtTQU5EQVIKK0tPU1RJxIYgQUxFS1NBTkRBUgorS09TVEnEhiBBTEVLU0FOREFSCitLT1NUScSGIEFMRUtTQU5EUkEKK0tPU1RJxIYgQU5BCitLT1NUScSGIEFOR0VMSU5BCitLT1NUScSGIEFOS0lDQQorS09TVEnEhiBCT8W9SURBUgorS09TVEnEhiBCT8W9SURBUgorS09TVEnEhiBCT0dPTEpVQgorS09TVEnEhiBCUkFOSU1JUgorS09TVEnEhiBCUkFOSVNMQVYKK0tPU1RJxIYgQlJBTklTTEFWCitLT1NUScSGIEJSQU5LTworS09TVEnEhiBEQU5JTE8KK0tPU1RJxIYgREVKQU4KK0tPU1RJxIYgREVTQU5LQQorS09TVEnEhiBEUkFHQU4KK0tPU1RJxIYgRFJBR0EKK0tPU1RJxIYgRFJBR0EKK0tPU1RJxIYgRFJBR0lDQQorS09TVEnEhiBEUkFHSUNBCitLT1NUScSGIERSQUdJQ0EKK0tPU1RJxIYgRFJBR09MSlVCCitLT1NUScSGIERVxaBBTgorS09TVEnEhiBEVcWgQU4KK0tPU1RJxIYgRFXFoEFOCitLT1NUScSGIEVMRU9OT1JBCitLT1NUScSGIEdFT1JHSU5BCitLT1NUScSGIEdMScWgQQorS09TVEnEhiBHT0xVQgorS09TVEnEhiBHT1JEQU5BCitLT1NUScSGIEdSQURJTUlSCitLT1NUScSGIElWQU4KK0tPU1RJxIYgSVZBTgorS09TVEnEhiBKRUxFTkEKK0tPU1RJxIYgSkVMSUNBCitLT1NUScSGIEpFTElDQQorS09TVEnEhiBKT1JEQU5LQQorS09TVEnEhiBKT1ZBTgorS09TVEnEhiBKT1ZBTgorS09TVEnEhiBKT1ZBTgorS09TVEnEhiBKT1ZBTgorS09TVEnEhiBKT1ZBTgorS09TVEnEhiBLUlNNQU4KK0tPU1RJxIYgS1JTVEEKK0tPU1RJxIYgTEpJTEpBTkEKK0tPU1RJxIYgTEpJTEpBTkEKK0tPU1RJxIYgTEpVQknFoEEKK0tPU1RJxIYgTEpVQklDQQorS09TVEnEhiBMSlVCSUNBCitLT1NUScSGIExKVUJJQ0EKK0tPU1RJxIYgTUFLU0lNCitLT1NUScSGIE1BUklKQQorS09TVEnEhiBNQVJLTworS09TVEnEhiBNRVRPRElKRQorS09TVEnEhiBNSUhBSkxPCitLT1NUScSGIE1JTEFOCitLT1NUScSGIE1JTEFOCitLT1NUScSGIE1JTEVOQSBEUgorS09TVEnEhiBNSUxFTkEKK0tPU1RJxIYgTUlMRVZBCitLT1NUScSGIE1JTElDQQorS09TVEnEhiBNSUxPUkFECitLT1NUScSGIE1JTE9WQU4KK0tPU1RJxIYgTUlMVcWgQQorS09TVEnEhiBNSVJKQU5BCitLT1NUScSGIE1JUktPCitLT1NUScSGIE1PSlNFCitLT1NUScSGIE5BREEKK0tPU1RJxIYgTkFEQQorS09TVEnEhiBOSUtPTEEKK0tPU1RJxIYgTklLT0xBCitLT1NUScSGIE9MSVZFUkEKK0tPU1RJxIYgUEFWTEUKK0tPU1RJxIYgUEVUQVIKK0tPU1RJxIYgUEVUQVIKK0tPU1RJxIYgUEVUQVIKK0tPU1RJxIYgUEVUQVIKK0tPU1RJxIYgUEVUQVIKK0tPU1RJxIYgUkFET0pJQ0EKK0tPU1RJxIYgUkFET0pLTworS09TVEnEhiBSQURPTUlSCitLT1NUScSGIFJBRE9TQVYKK0tPU1RJxIYgUkFUS08KK0tPU1RJxIYgUlXFvUlDQQorS09TVEnEhiBTQVZBCitLT1NUScSGIFNBVkEKK0tPU1RJxIYgU0xBVklDQQorS09TVEnEhiBTTEFWS0EKK0tPU1RJxIYgU0xPQk9EQU4KK0tPU1RJxIYgU0xPQk9EQU4KK0tPU1RJxIYgU0xPQk9EQU4KK0tPU1RJxIYgU05Fxb1BTkEKK0tPU1RJxIYgU1BBU0VOS08KK0tPU1RJxIYgU1JFVEVOCitLT1NUScSGIFNUQU5BCitLT1NUScSGIFNUQU5JTUlSCitLT1NUScSGIFNUQU5LTworS09TVEnEhiBTVEFaQQorS09TVEnEhiBTVEVWQU4KK0tPU1RJxIYgU1RPSkFESU4KK0tPU1RJxIYgU1RSQUhJTkpBIERSIFBST0YKK0tPU1RJxIYgU1ZFVElTTEFWIERSCitLT1NUScSGIFNWRVRJU0xBVgorS09TVEnEhiBTVkVUT1pBUgorS09TVEnEhiBUSUJFUklKRQorS09TVEnEhiBUT01JU0xBVgorS09TVEnEhiBUT01JU0xBVgorS09TVEnEhiBUT01JU0xBVgorS09TVEnEhiBWQVNPCitLT1NUScSGIFZFTElNSVIKK0tPU1RJxIYgVkVSQQorS09TVEnEhiBWTEFESVNMQVZBCitLT1NUScSGIFZMQURJU0xBVgorS09TVEnEhiBWTEFTVElNSVIKK0tPU1RJxIYgVk9KSVNMQVYKK0tPU1RJxIYgVlVLQcWgSU4KK0tPU1RJxIYgWkRSQVZLTworS09TVEnEhiBaT1JBTgorS09TVEnEhiBaT1JBTgorS09TVEnEhiBaT1JBTgorS09TVEnEhiBaT1JBTgorS09TVEnEhiBaT1JBTgorS09TVEnEhiBaT1JJQ0EKK0tPU1RPVknEhiBKRUxJQ0EKK0tPU1RPVknEhiBSQVRLTworS09TVE9WScSGIFNORcW9QU5BCitLT1NUT1ZTS0kgS0FUSUNBCitLT1NUT1ZTS0kgTUlST1NMQVYKK0tPU1RPVlNLSSBUUkFKxIxFCitLT1NUUkXFoCBNT03EjElMTworS09TVFJFxaBFVknEhiBHT1JBTgorS09TVFJFxaBFVknEhiBNSUxBRElOCitLT1NUUkXFoEVWScSGIE5FREVMSktPCitLT1NUUkXFoEVWScSGIFNUQU5LQQorS09TVFJJxIxFTktPIFZBU0lMSUpFCitLT1NUVURJSkEgTUlST1NMQVYKK0tPVCBJTE9OQQorS09UIEpPU0lQCitLT1QgTEFESVNMQVYKK0tPVCBMQVNMTworS09UIE1BUlRBCitLT1QgTUlSQQorS09UIE1JUktPCitLT1RBIEVSxb1FQkVUCitLT1RBIExBSk/FoAorS09UQSBNSUhBSkxPCitLT1RBUsSMRVZJxIYgRUxWSVJBCitLT1RBUsSMRVZJxIYgTklLT0xBCitLT1RBUkFDIEtBVElDQQorS09UQVJBQyBLT1NUQQorS09UQVJBQyBTVkVUSVNMQVYKK0tPVEFSQU5JTiBMSklMSkFOQQorS09UQVJBTklOIFBFVEFSCitLT1RBUkxJxIYgREFSS08KK0tPVEFSTEnEhiBEUkFHQU5BCitLT1RBUkxJxIYgU0FWQQorS09USEFJIEnFoFRWQU4KK0tPVEhBSSBKT8W9RUYKK0tPVEhBSSBTVEVWQU4KK0tPVEhBSiBTVEVWQU4KK0tPVEnEhiBWT0pJU0xBVgorS09UTEFKQSBNSUxBTktPCitLT1RMQUpBIE1JTEtPCitLT1RMQVJJxIYgTUFSS08gRFIKK0tPVExBUknEhiBTVEFOSU1JUgorS09UUkJBIEZSQU5KQQorS09UUkUgTUFHRE9MTkEKK0tPVFXFoCBFUsW9RUJFVAorS09UVcWgIE1JTElDQQorS09UVcWgIE1JUk9TTEFWCitLT1RVxaAgU1RFVkFOCitLT1RVxIYgTUFSSUpFVEEKK0tPVFVSIEFOxJBFTEtBCitLT1RVUiBEUkFHQU4KK0tPVFVSIEpFTEEKK0tPVFVSIFJBREUKK0tPVFVST1YgTkFEQQorS09UVVJPVknEhiBLQVRJQ0EKK0tPVU5JUyBMSklMSkFOQQorS09WxIxFIEFNQUxJSkEKK0tPVsSMRVYgU1BBU0VOS0EKK0tPVsSMSU4gTUlMSUNBCitLT1bEjElOIE1JTE9WQU4KK0tPVsSMSU4gTUlST1NMQVYgRElQTCBJTkcKK0tPVsSMSU4gTkVHQQorS09WxIxJTiBTVEFOSU1JUiBEUgorS09WQcSMIMSMRURPCitLT1ZBxIwgxaBBTkRPUgorS09WQcSMIMWgQU5ET1IKK0tPVkHEjCDEkE9SxJBFCitLT1ZBxIwgxJBPUsSQRQorS09WQcSMIMSQVUxBCitLT1ZBxIwgxJBVUsSQQQorS09WQcSMLUHEjCBLQVJPTEoKK0tPVkHEjCBBTEVLU0FOREFSCitLT1ZBxIwgQUxFS1NBTkRBUgorS09WQcSMIEFOQQorS09WQcSMIEFOQQorS09WQcSMIEFORFJBxaAKK0tPVkHEjCBBTlRBTAorS09WQcSMIEFOVE9OCitLT1ZBxIwgQVJQQUQKK0tPVkHEjCBBVElMQQorS09WQcSMIEJFTEEKK0tPVkHEjCBCRUxBCitLT1ZBxIwtQklSS0HFoCBNSUhBTEoKK0tPVkHEjCBCT1JJUworS09WQcSMIERFxb1FCitLT1ZBxIwgREVTQU5LQQorS09WQcSMIERSQUdJQ0EgTVIKK0tPVkHEjCBEVcWgQU4KK0tPVkHEjCBFVEVMS0EKK0tPVkHEjCBFVEVMS0EKK0tPVkHEjCBGRVJFTkMKK0tPVkHEjCBGRVJFTkMKK0tPVkHEjCBGUkFOSkEKK0tPVkHEjCBGUkFOSkEKK0tPVkHEjCBHQUJPUgorS09WQcSMIEdJWkVMQQorS09WQcSMIEnFoFRWQU4KK0tPVkHEjCBJxaBUVkFOCitLT1ZBxIwgScWgVFZBTgorS09WQcSMIEnFoFRWQU4KK0tPVkHEjCBJxaBUVkFOCitLT1ZBxIwgScWgVFZBTgorS09WQcSMIEnFoFRWQU4KK0tPVkHEjCBJxaBUVkFOCitLT1ZBxIwgScWgVFZBTgorS09WQcSMIElMT05BCitLT1ZBxIwgSU1SRQorS09WQcSMIElNUkUKK0tPVkHEjCBJTVJFCitLT1ZBxIwgSVJFTkEKK0tPVkHEjCBJUkVOQQorS09WQcSMIElWQU4KK0tPVkHEjCBJVkFOCitLT1ZBxIwgSVZBTgorS09WQcSMIElWQU4KK0tPVkHEjCBJVkFOCitLT1ZBxIwgSVZBTgorS09WQcSMIEpBS09CCitLT1ZBxIwgSkFOS08KK0tPVkHEjCBKQU5PxaAKK0tPVkHEjCBKQU5PxaAKK0tPVkHEjCBKQU5PxaAKK0tPVkHEjCBKQU5PxaAKK0tPVkHEjCBKQU5PxaAKK0tPVkHEjCBKQU5PxaAKK0tPVkHEjCBKQU5PxaAKK0tPVkHEjCBKQU4KK0tPVkHEjCBKQU4KK0tPVkHEjCBKRUxJQ0EKK0tPVkHEjCBKRUxJU0FWRVRBCitLT1ZBxIwgSk/FvUVGCitLT1ZBxIwgSk/FvUVGCitLT1ZBxIwgSk9TSVAKK0tPVkHEjCBKT1NJUAorS09WQcSMIEpPU0lQCitLT1ZBxIwgSk9TSVAKK0tPVkHEjCBKT1ZBTgorS09WQcSMIEpPVkFOCitLT1ZBxIwgSk9WQU4KK0tPVkHEjCBKVUxJQU5BCitLT1ZBxIwgSlVMSUpBTkEKK0tPVkHEjCBLQVJMTworS09WQcSMIEtBUkxPCitLT1ZBxIwgS0FST0xKCitLT1ZBxIwgS0FST0xKCitLT1ZBxIwgS0FST0xKCitLT1ZBxIwgS0FST0xKCitLT1ZBxIwgS0FUQUxJTgorS09WQcSMIEtBVEFSSU5BCitLT1ZBxIwgS0FUSUNBCitLT1ZBxIwgS0FUSUNBCitLT1ZBxIwgS0FUSUNBCitLT1ZBxIwgS0FUSUNBCitLT1ZBxIwgS0FUSUNBCitLT1ZBxIwgS09WSUxKS0EKK0tPVkHEjCBMQURJU0xBVgorS09WQcSMIExBRElTTEFWCitLT1ZBxIwgTEFESVNMQVYKK0tPVkHEjCBMQURJU0xBVgorS09WQcSMIExBRElTTEFWCitLT1ZBxIwgTEFKT8WgCitLT1ZBxIwgTEFKT8WgCitLT1ZBxIwgTEFTTE8KK0tPVkHEjCBMQVNMTworS09WQcSMIExBU0xPCitLT1ZBxIwgTEFTTE8KK0tPVkHEjCBMQVNMTworS09WQcSMIExBU0xPCitLT1ZBxIwgTEFTTE8KK0tPVkHEjCBMQVNMTworS09WQcSMIExKVUJBTgorS09WQcSMIExKVURFVklUCitLT1ZBxIwgTUFKQQorS09WQcSMIE1BUkdJVEEKK0tPVkHEjCBNQVJJSkEKK0tPVkHEjCBNQVJJSkEKK0tPVkHEjCBNQVJJSkEKK0tPVkHEjCBNQVJJSkEKK0tPVkHEjCBNQVJJSkEKK0tPVkHEjCBNQVJUSU4KK0tPVkHEjCBNQVRJSkEKK0tPVkHEjCBNSUhBSkxPCitLT1ZBxIwgTUlIQUpMTworS09WQcSMIE1JSEFMSgorS09WQcSMIE1JSEFMSgorS09WQcSMIE1JS0xPxaAKK0tPVkHEjCBNSUtMT8WgCitLT1ZBxIwgTUlMQURJTgorS09WQcSMIE1JTEFOCitLT1ZBxIwgTUlMRU5BCitLT1ZBxIwgTUlMT8WgCitLT1ZBxIwgTUlMT1JBRAorS09WQcSMIE1JUkpBTkEKK0tPVkHEjCBNSVJKQU5BCitLT1ZBxIwgTUlSSkFOQQorS09WQcSMIE1JUktPCitLT1ZBxIwgTUlST04gRElQTCBJTkcKK0tPVkHEjCBNSVJPU0xBVgorS09WQcSMIE5BVEFMSUpBCitLT1ZBxIwgTklLT0xBCitLT1ZBxIwgTklLT0xBCitLT1ZBxIwgT0xHSUNBCitLT1ZBxIwgT0xHSUNBCitLT1ZBxIwgT1RPCitLT1ZBxIwgUEFWRUwKK0tPVkHEjCBQRVRBUgorS09WQcSMIFJJU1RPIERJUEwgSU5HCitLT1ZBxIwgUk/FvUkKK0tPVkHEjCBST8W9SQorS09WQcSMIFJPWkFMSUpBCitLT1ZBxIwgUk9aQUxJSkEKK0tPVkHEjCBSVcW9SUNBCitLT1ZBxIwgU0lMVkVTVEVSCitLT1ZBxIwgU01JTEpBCitLT1ZBxIwgU1RBTk9KS0EKK0tPVkHEjCBTVEVWQU4KK0tPVkHEjCBTVEVWQU4KK0tPVkHEjCBTVEVWQU4KK0tPVkHEjCBTVEVWQU4KK0tPVkHEjCBTVEpFUEFOIERJUEwgSU5HCitLT1ZBxIwgU1ZFVE9aQVIKK0tPVkHEjCBURU9ET1IgRFIgUFJPRgorS09WQcSMIFRFT0RPUiBEUgorS09WQcSMIFRJQk9SCitLT1ZBxIwgVElCT1IKK0tPVkHEjC1USUhNQUpFUiBTVEVWQU4KK0tPVkHEjCBUT01JU0xBVgorS09WQcSMIFRSUElNSVIKK0tPVkHEjCBWQUxFUklKQQorS09WQcSMIFZFUkEKK0tPVkHEjCBWRVJBCitLT1ZBxIwgVkVSQQorS09WQcSMIFZFUkEKK0tPVkHEjCBWRVJBCitLT1ZBxIwgVkVSSUNBCitLT1ZBxIwgVkVST05BCitLT1ZBxIwgVkVST05BCitLT1ZBxIwgVklEQQorS09WQcSMIFZMQURJTUlSCitLT1ZBxIwgVkxBRElNSVIKK0tPVkHEjCBaT1JBCitLT1ZBxIwgWlZPTklNSVIKK0tPVkHEjEVLIEJPxb1JREFSIERSCitLT1ZBxIxFSyBEQU5JQ0EKK0tPVkHEjEVLIEpFTEVOQQorS09WQcSMRVYgxJBPUsSQRQorS09WQcSMRVYgQUxFS1NBTkRBUgorS09WQcSMRVYgQlJBTktBCitLT1ZBxIxFViBCUkFOS08KK0tPVkHEjEVWIEJSQU5LTworS09WQcSMRVYgREFOxIxFCitLT1ZBxIxFViBEQU5JTEtBCitLT1ZBxIxFViBESU1JVFJJSkUKK0tPVkHEjEVWIERSQUdJxaBBCitLT1ZBxIxFViBEUkFHT1NMQVYKK0tPVkHEjEVWIERSQUdVVElOCitLT1ZBxIxFViBEUkFHVVRJTgorS09WQcSMRVYgRFXFoEFOS0EKK0tPVkHEjEVWIEdPUkFOCitLT1ZBxIxFViBHT1JEQU5BCitLT1ZBxIxFViBHT1JEQU5BCitLT1ZBxIxFViBJTElKQQorS09WQcSMRVYgSVZJQ0EKK0tPVkHEjEVWIEpFTEEKK0tPVkHEjEVWIEpFTEVOQQorS09WQcSMRVYgSk9WQU4KK0tPVkHEjEVWIEpVTElKQU5BCitLT1ZBxIxFViBKVUxLQQorS09WQcSMRVYgTEFaQVIKK0tPVkHEjEVWIE1BUklKQQorS09WQcSMRVYgTUlMQU4KK0tPVkHEjEVWIE1JTEFOCitLT1ZBxIxFViBNSUxFTkEKK0tPVkHEjEVWIE1JTElDQQorS09WQcSMRVYgTUlMT8WgCitLT1ZBxIxFViBNSUxPUkFEIERSIExFS0FSCitLT1ZBxIxFViBNSUxVVElOCitLT1ZBxIxFViBNSVJKQU5BCitLT1ZBxIxFViBNTEFERU4KK0tPVkHEjEVWIE5FREVMSktPCitLT1ZBxIxFViBORU1BTkpBCitLT1ZBxIxFViBQRVRBUgorS09WQcSMRVYgU1RFVkFOCitLT1ZBxIxFViBTVEVWQU4KK0tPVkHEjEVWIFNURVZBTgorS09WQcSMRVYgU1ZFVElTTEFWCitLT1ZBxIxFViBTVkVUT1pBUgorS09WQcSMRVYgVEVPRE9SIERSCitLT1ZBxIxFViBURU9ET1IgRFIKK0tPVkHEjEVWIFZFUkEKK0tPVkHEjEVWIFZFUkEKK0tPVkHEjEVWIFZFU05BCitLT1ZBxIxFVknEhiDEjEVEQQorS09WQcSMRVZJxIYgxb1FTElNSVIKK0tPVkHEjEVWScSGIMW9RUxKS08KK0tPVkHEjEVWScSGIMW9SVZBTgorS09WQcSMRVZJxIYgxb1JVkFOCitLT1ZBxIxFVknEhiDEkE9SxJBFIERJUEwgSU5HCitLT1ZBxIxFVknEhiDEkE9SxJBFCitLT1ZBxIxFVknEhiDEkE9SxJBFCitLT1ZBxIxFVknEhiDEkE9SxJBFCitLT1ZBxIxFVknEhiDEkE9SxJBFCitLT1ZBxIxFVknEhiDEkFVSxJBJTkEKK0tPVkHEjEVWScSGIMSQVVJBCitLT1ZBxIxFVknEhiBBR05FxaAKK0tPVkHEjEVWScSGIEFMRUtTQU5EQVIKK0tPVkHEjEVWScSGIEFMRUtTQU5EQVIKK0tPVkHEjEVWScSGIEFMRUtTQU5EQVIKK0tPVkHEjEVWScSGIEFOxJBFTElKQQorS09WQcSMRVZJxIYgQU5EUklKQQorS09WQcSMRVZJxIYgQU5FVEEKK0tPVkHEjEVWScSGIEFOS0lDQQorS09WQcSMRVZJxIYgQVJTQQorS09WQcSMRVZJxIYgQkxBR09KRQorS09WQcSMRVZJxIYgQk/FoEtPCitLT1ZBxIxFVknEhiBCT8WgS08KK0tPVkHEjEVWScSGIEJPxaBLTworS09WQcSMRVZJxIYgQk/FvUlEQVIKK0tPVkHEjEVWScSGIEJPR0RBTgorS09WQcSMRVZJxIYgQk9HREFOCitLT1ZBxIxFVknEhiBCT1JJU0xBVkEKK0tPVkHEjEVWScSGIEJPUklTTEFWCitLT1ZBxIxFVknEhiBCT1JJU0xBVgorS09WQcSMRVZJxIYgQk9SSVZPSkUKK0tPVkHEjEVWScSGIEJPUklWT0oKK0tPVkHEjEVWScSGIEJPUklWT0oKK0tPVkHEjEVWScSGIEJPUklWT0oKK0tPVkHEjEVWScSGIEJPUktBCitLT1ZBxIxFVknEhiBCUkFOSU1JUgorS09WQcSMRVZJxIYgQlJBTklTTEFWQSBESVBMIElORworS09WQcSMRVZJxIYgQlJBTklTTEFWQQorS09WQcSMRVZJxIYgQlJBTklTTEFWQQorS09WQcSMRVZJxIYgQlJBTklTTEFWCitLT1ZBxIxFVknEhiBCUkFOS08KK0tPVkHEjEVWScSGIEJSQU5LTworS09WQcSMRVZJxIYgQlJBTktPCitLT1ZBxIxFVknEhiBCUkFOS08KK0tPVkHEjEVWScSGIEJSQU5LTworS09WQcSMRVZJxIYgQlJBTktPCitLT1ZBxIxFVknEhiBCUkFOS08KK0tPVkHEjEVWScSGIEJSQU5LTworS09WQcSMRVZJxIYgQlVESU1JUgorS09WQcSMRVZJxIYgQlVESU1JUgorS09WQcSMRVZJxIYgREFNSkFOCitLT1ZBxIxFVknEhiBEQU5JQ0EKK0tPVkHEjEVWScSGIERBTklDQQorS09WQcSMRVZJxIYgREFOSUNBCitLT1ZBxIxFVknEhiBEQU5JQ0EKK0tPVkHEjEVWScSGIERBTklDQQorS09WQcSMRVZJxIYgREFOSUxPCitLT1ZBxIxFVknEhiBEQU5LQQorS09WQcSMRVZJxIYgREFWT1JLQQorS09WQcSMRVZJxIYgREVTQU5LQQorS09WQcSMRVZJxIYgRElNSVRSSUpFIERJUEwgT0VDCitLT1ZBxIxFVknEhiBEUkFHQU4gRFIKK0tPVkHEjEVWScSGIERSQUdBTkEKK0tPVkHEjEVWScSGIERSQUdBTgorS09WQcSMRVZJxIYgRFJBR0FOCitLT1ZBxIxFVknEhiBEUkFHQU4KK0tPVkHEjEVWScSGIERSQUdJQ0EKK0tPVkHEjEVWScSGIERSQUdJQ0EKK0tPVkHEjEVWScSGIERSQUdPTEpVQgorS09WQcSMRVZJxIYgRFJBR09MSlVCCitLT1ZBxIxFVknEhiBEUkFHT0xKVUIKK0tPVkHEjEVWScSGIERSQUdPCitLT1ZBxIxFVknEhiBEUkFHTworS09WQcSMRVZJxIYgRFJBR1VUSU4KK0tPVkHEjEVWScSGIERSQUdVVElOCitLT1ZBxIxFVknEhiBEUkVOQQorS09WQcSMRVZJxIYgRFXFoEFOS0EKK0tPVkHEjEVWScSGIERVxaBBTgorS09WQcSMRVZJxIYgRFXFoEFOCitLT1ZBxIxFVknEhiBEVcWgQU4KK0tPVkHEjEVWScSGIERVxaBBTgorS09WQcSMRVZJxIYgRFXFoEFOCitLT1ZBxIxFVknEhiBEVcWgQU4KK0tPVkHEjEVWScSGIERVxaBBTgorS09WQcSMRVZJxIYgRFXFoElDQQorS09WQcSMRVZJxIYgRFXFoElDQQorS09WQcSMRVZJxIYgRFXFoEtPCitLT1ZBxIxFVknEhiBEVcWgS08KK0tPVkHEjEVWScSGIERVxaBLTworS09WQcSMRVZJxIYgRlJBTkpBCitLT1ZBxIxFVknEhiBHQVZSSUxPCitLT1ZBxIxFVknEhiBHTElHT1JJSkUKK0tPVkHEjEVWScSGIEdPSktPCitLT1ZBxIxFVknEhiBJxaBUVkFOCitLT1ZBxIxFVknEhiBJR05KQVQKK0tPVkHEjEVWScSGIElMSUpBCitLT1ZBxIxFVknEhiBJTElKQQorS09WQcSMRVZJxIYgSUxJSkEKK0tPVkHEjEVWScSGIElTQQorS09WQcSMRVZJxIYgSVZBTgorS09WQcSMRVZJxIYgSkFHT8WgCitLT1ZBxIxFVknEhiBKRUxFTkEKK0tPVkHEjEVWScSGIEpFTElDQQorS09WQcSMRVZJxIYgSkVMSUNBCitLT1ZBxIxFVknEhiBKRUxJU0FWRVRBCitLT1ZBxIxFVknEhiBKT1JEQU4KK0tPVkHEjEVWScSGIEpPVkFOS0EKK0tPVkHEjEVWScSGIEpPVkFOCitLT1ZBxIxFVknEhiBKT1ZBTgorS09WQcSMRVZJxIYgSk9WQU4KK0tPVkHEjEVWScSGIEpPVklDQQorS09WQcSMRVZJxIYgSk9WTworS09WQcSMRVZJxIYgS0FUQVJJTkEKK0tPVkHEjEVWScSGIEtBVEEKK0tPVkHEjEVWScSGIEtBVElDQSBEUgorS09WQcSMRVZJxIYgS0FUSUNBCitLT1ZBxIxFVknEhiBLQVRJQ0EKK0tPVkHEjEVWScSGIEtMQVJBCitLT1ZBxIxFVknEhiBLT8SMQQorS09WQcSMRVZJxIYgS09KQQorS09WQcSMRVZJxIYgS09TVEEKK0tPVkHEjEVWScSGIEtPU1RBCitLT1ZBxIxFVknEhiBLT1ZJTEpLQQorS09WQcSMRVZJxIYgS1JTVEEKK0tPVkHEjEVWScSGIEtSU1RPCitLT1ZBxIxFVknEhiBLU0VOSUpBCitLT1ZBxIxFVknEhiBLU0VOSUpBCitLT1ZBxIxFVknEhiBMQVpPCitLT1ZBxIxFVknEhiBMSklMSkFOQQorS09WQcSMRVZJxIYgTEpJTEpBCitLT1ZBxIxFVknEhiBMSlVCSUNBCitLT1ZBxIxFVknEhiBMSlVCTworS09WQcSMRVZJxIYgTUFSQQorS09WQcSMRVZJxIYgTUFSQQorS09WQcSMRVZJxIYgTUFSSUpBCitLT1ZBxIxFVknEhiBNQVJJSkEKK0tPVkHEjEVWScSGIE1BUktPCitLT1ZBxIxFVknEhiBNQVJLTworS09WQcSMRVZJxIYgTUlIQUpMTworS09WQcSMRVZJxIYgTUlIQUpMTworS09WQcSMRVZJxIYgTUlMQURJTktBCitLT1ZBxIxFVknEhiBNSUxBTgorS09WQcSMRVZJxIYgTUlMQU4KK0tPVkHEjEVWScSGIE1JTEFOCitLT1ZBxIxFVknEhiBNSUxBTgorS09WQcSMRVZJxIYgTUlMQU4KK0tPVkHEjEVWScSGIE1JTEFOCitLT1ZBxIxFVknEhiBNSUxBTgorS09WQcSMRVZJxIYgTUlMQU4KK0tPVkHEjEVWScSGIE1JTEFOCitLT1ZBxIxFVknEhiBNSUxBTgorS09WQcSMRVZJxIYgTUlMQU4KK0tPVkHEjEVWScSGIE1JTEVOQQorS09WQcSMRVZJxIYgTUlMRU5BCitLT1ZBxIxFVknEhiBNSUxFCitLT1ZBxIxFVknEhiBNSUxJQ0EKK0tPVkHEjEVWScSGIE1JTElDQQorS09WQcSMRVZJxIYgTUlMSUNBCitLT1ZBxIxFVknEhiBNSUxJQ0EKK0tPVkHEjEVWScSGIE1JTElNSVIKK0tPVkHEjEVWScSGIE1JTElWT0ogRFIKK0tPVkHEjEVWScSGIE1JTEpBTgorS09WQcSMRVZJxIYgTUlMS0EKK0tPVkHEjEVWScSGIE1JTE/FoAorS09WQcSMRVZJxIYgTUlMT8WgCitLT1ZBxIxFVknEhiBNSUxPxaAKK0tPVkHEjEVWScSGIE1JTE/FoAorS09WQcSMRVZJxIYgTUlMT8WgCitLT1ZBxIxFVknEhiBNSUxPUkFECitLT1ZBxIxFVknEhiBNSUxPUkFECitLT1ZBxIxFVknEhiBNSUxPVkFOCitLT1ZBxIxFVknEhiBNSUxPVkFOCitLT1ZBxIxFVknEhiBNSU9EUkFHCitLT1ZBxIxFVknEhiBNSU9EUkFHCitLT1ZBxIxFVknEhiBNSVJBCitLT1ZBxIxFVknEhiBNSVJBCitLT1ZBxIxFVknEhiBNSVJKQU5BCitLT1ZBxIxFVknEhiBNSVJKQU5BCitLT1ZBxIxFVknEhiBNSVJLTworS09WQcSMRVZJxIYgTUlST1NMQVYKK0tPVkHEjEVWScSGIE1JUk9TTEFWCitLT1ZBxIxFVknEhiBNSVJPU0xBVgorS09WQcSMRVZJxIYgTUlUQVIKK0tPVkHEjEVWScSGIE1JVEEKK0tPVkHEjEVWScSGLU1MQURFTk9WScSGIE9MR0EKK0tPVkHEjEVWScSGIE1MQURFTgorS09WQcSMRVZJxIYgTkFEQQorS09WQcSMRVZJxIYgTkFERcW9REEKK0tPVkHEjEVWScSGIE5BVEFMSUpBCitLT1ZBxIxFVknEhiBORUJPSsWgQQorS09WQcSMRVZJxIYgTkVERUxKS0EKK0tPVkHEjEVWScSGIE5FREVMSktPCitLT1ZBxIxFVknEhiBOSUtPTEEKK0tPVkHEjEVWScSGIE5JS09MQQorS09WQcSMRVZJxIYgTklLT0xBCitLT1ZBxIxFVknEhiBPTEdJQ0EKK0tPVkHEjEVWScSGIE9aUkVOCitLT1ZBxIxFVknEhiBQQVZMRQorS09WQcSMRVZJxIYgUEFWTEUKK0tPVkHEjEVWScSGIFBFVEFSCitLT1ZBxIxFVknEhiBSQURFTktPCitLT1ZBxIxFVknEhiBSQURFCitLT1ZBxIxFVknEhiBSQURJVk9KRQorS09WQcSMRVZJxIYgUkFESVZPSgorS09WQcSMRVZJxIYgUkFESVZPSgorS09WQcSMRVZJxIYgUkFETUlMQQorS09WQcSMRVZJxIYgUkFET0pLQQorS09WQcSMRVZJxIYgUkFET0pLTworS09WQcSMRVZJxIYgUkFET01BTgorS09WQcSMRVZJxIYgUkFET1NMQVYKK0tPVkHEjEVWScSGIFJBRE9WQU4KK0tPVkHEjEVWScSGIFJBSktPCitLT1ZBxIxFVknEhiBSQUpLTworS09WQcSMRVZJxIYgUkFOS08KK0tPVkHEjEVWScSGIFJFTEpBCitLT1ZBxIxFVknEhiBSVcW9SUNBCitLT1ZBxIxFVknEhiBSVcW9SUNBCitLT1ZBxIxFVknEhiBTQVZBCitLT1ZBxIxFVknEhiBTQVZBCitLT1ZBxIxFVknEhiBTQVZBCitLT1ZBxIxFVknEhiBTQVZLQQorS09WQcSMRVZJxIYgU0FWTworS09WQcSMRVZJxIYgU0VLVUxBCitLT1ZBxIxFVknEhiBTSU1FT04KK0tPVkHEjEVWScSGIFNMQcSQQU5BCitLT1ZBxIxFVknEhiBTTEFWSUNBCitLT1ZBxIxFVknEhiBTTEFWS08KK0tPVkHEjEVWScSGIFNMQVZLTworS09WQcSMRVZJxIYgU0xBVktPCitLT1ZBxIxFVknEhiBTTEFWS08KK0tPVkHEjEVWScSGIFNMT0JPREFOCitLT1ZBxIxFVknEhiBTTE9CT0RBTgorS09WQcSMRVZJxIYgU0xPQk9EQU4KK0tPVkHEjEVWScSGIFNMT0JPREFOCitLT1ZBxIxFVknEhiBTTE9CT0RBTgorS09WQcSMRVZJxIYgU0xPQk9EQU4KK0tPVkHEjEVWScSGIFNQQVNFTklKQQorS09WQcSMRVZJxIYgU1JCSUpBTktBCitLT1ZBxIxFVknEhiBTUkVUQQorS09WQcSMRVZJxIYgU1JFVEVOCitLT1ZBxIxFVknEhiBTVEFOQQorS09WQcSMRVZJxIYgU1RBTktBCitLT1ZBxIxFVknEhiBTVEVWQU4KK0tPVkHEjEVWScSGIFNURVZBTgorS09WQcSMRVZJxIYgU1RFVkFOCitLT1ZBxIxFVknEhiBTVEVWQU4KK0tPVkHEjEVWScSGIFNURVZBTgorS09WQcSMRVZJxIYgU1RFVk8KK0tPVkHEjEVWScSGIFNURVZPCitLT1ZBxIxFVknEhiBTVEVWTworS09WQcSMRVZJxIYgU1ZFVExBTkEKK0tPVkHEjEVWScSGIFNWRVRMQU5BCitLT1ZBxIxFVknEhiBTVkVUTEFOQQorS09WQcSMRVZJxIYgU1ZFVE9MSUsKK0tPVkHEjEVWScSGIFNWRVRPWkFSCitLT1ZBxIxFVknEhiBTVkVUT1pBUgorS09WQcSMRVZJxIYgU1ZFVE9aQVIKK0tPVkHEjEVWScSGIFRFUkVaQQorS09WQcSMRVZJxIYgVE9ET1IKK0tPVkHEjEVWScSGIFRPTUlTTEFWCitLT1ZBxIxFVknEhiBWQVNBCitLT1ZBxIxFVknEhiBWRUxJTUlSCitLT1ZBxIxFVknEhiBWRUxJTUlSCitLT1ZBxIxFVknEhiBWRVJBCitLT1ZBxIxFVknEhiBWRVJBCitLT1ZBxIxFVknEhiBWRVJBCitLT1ZBxIxFVknEhiBWSURPU0FWQQorS09WQcSMRVZJxIYgVklET1NBVkEKK0tPVkHEjEVWScSGIFZJRE9TQVZBCitLT1ZBxIxFVknEhiBWSURPU0FWQQorS09WQcSMRVZJxIYgVklOS08KK0tPVkHEjEVWScSGIFZMQURJTUlSCitLT1ZBxIxFVknEhiBWTEFESU1JUgorS09WQcSMRVZJxIYgVkxBRElNSVIKK0tPVkHEjEVWScSGIFZMQURJU0xBVgorS09WQcSMRVZJxIYgVk9KSU4KK0tPVkHEjEVWScSGIFZPSklOCitLT1ZBxIxFVknEhiBWT0pJU0xBViBESVBMIElORworS09WQcSMRVZJxIYgVlVKTworS09WQcSMRVZJxIYgVlVLQcWgSU4KK0tPVkHEjEVWScSGIFZVS0HFoElOCitLT1ZBxIxFVknEhiBaREVOS08KK0tPVkHEjEVWScSGIFpEUkFWS08KK0tPVkHEjEVWScSGIFpPUkFOIERSCitLT1ZBxIxFVknEhiBaT1JBTgorS09WQcSMRVZJxIYgWk9SQU4KK0tPVkHEjEVWScSGIFpPUklDQQorS09WQcSMRVZJxIYgWk9SSUNBCitLT1ZBxIxFVknEhiBaVk9OSU1JUktBCitLT1ZBxIxJxIYgxb1JVktPCitLT1ZBxIxJxIYgQU5JQ0EKK0tPVkHEjEnEhiBCT8W9QU5BCitLT1ZBxIxJxIYgQk9SSVZPSgorS09WQcSMScSGIERSQUdBTkEKK0tPVkHEjEnEhiBEVcWgQU5LQQorS09WQcSMScSGIERVxaBBTgorS09WQcSMScSGIEpPVkFOCitLT1ZBxIxJxIYgSk9WQU4KK0tPVkHEjEnEhiBKT1ZBTgorS09WQcSMScSGIExKRVBPU0FWQQorS09WQcSMScSGIExVS0EKK0tPVkHEjEnEhiBNSUxBTgorS09WQcSMScSGIE1JTEVOS08KK0tPVkHEjEnEhiBNSVJPU0xBVgorS09WQcSMScSGIE1JUk9TTEFWCitLT1ZBxIxJxIYgTkVERUxKS08KK0tPVkHEjEnEhiBOSUtPTEEKK0tPVkHEjEnEhiBQRVRBUgorS09WQcSMScSGIFJBRE9TTEFWCitLT1ZBxIxJxIYgU0xPQk9EQU4KK0tPVkHEjEnEhiBTVEFOSVNMQVYKK0tPVkHEjEnEhiBUQU5BU0lKRQorS09WQcSMScSGIFRPxaBBCitLT1ZBxIxJxIYgVE9NSVNMQVYKK0tPVkHEjEnEhiBWRVNOQQorS09WQcSMSUsgTUFSR0lUQQorS09WQcSMSUsgTUFSSUpBCitLT1ZBTMSMSUsgVkxBRElTTEFWCitLT1ZBTE9WU0tJIFRFT0RPUgorS09WQU5PVknEhiBQRVRBUgorS09WQVIgSkFOSkEKK0tPVkFSxIxJSyBBTkRSSUpBCitLT1ZBUsSMSUsgTUFSSUpBCitLT1ZBUklLIFZBTEVSSUpBCitLT1ZFSU5ETCBKT1NJUAorS09WRUxKIFRPTUlTTEFWCitLT1ZJxIYgRFJBR0lDQQorS09WScSGIE5BREEKK0tPVknEhiBTTE9CT0RBTgorS09WSUpBTknEhiBWTEFESU1JUgorS09WSU7EjEnEhiBCT0pBTgorS09WSU7EjEnEhiBNSUxBTgorS09WSU7EjEnEhiBOQURBCitLT1ZJTsSMScSGIE5BVEHFoEEKK0tPVklOxIxJxIYgU0xPQk9EQU4gRElQTCBJTkcKK0tPVklOxIxJxIYgU1RPSkFOCitLT1ZKQU5JxIYgQUxFS1NBTkRBUgorS09WSkFOScSGIEpPVkFOCitLT1ZKQU5JxIYgTUlMT1JBRAorS09WSkFOScSGIE5BREEKK0tPVkpBTknEhiBORU5BRAorS09WSkFOScSGIFBFUkEKK0tPVkpBTknEhiBTQVZBCitLT1ZMSkFOIMSQT1LEkEUKK0tPVkxKQU4gU0FWTworS09WUkxJSkEgSk9WQU4KK0tPWkFLIE1BUklKQQorS09aQUtJViBJVkFOCitLT1pBUiBSQURFCitLT1pBUsSMScSGIEpPVkFOS0EKK0tPWkFSxIxJxIYgSk9WQU4KK0tPWkFSxIxJxIYgSk9WQU4KK0tPWkFSxIxJxIYgTUFSS08KK0tPWkFSxIxJxIYgTUlMQU4KK0tPWkFSQUMgTUnEhk8KK0tPWkFSRVYgxb1BUktPCitLT1pBUkVWIMW9SVZLTworS09aQVJFViBBTEVLU0FORFJBCitLT1pBUkVWIEJPR09MSlVCCitLT1pBUkVWIERBUklOS0EKK0tPWkFSRVYgRElNSVRSSUpFCitLT1pBUkVWIERJTUlUUklKRQorS09aQVJFViBEUkFHSUNBCitLT1pBUkVWIEdPU1BBVkEKK0tPWkFSRVYgTEFaQVIKK0tPWkFSRVYgTEpVQklDQQorS09aQVJFViBNQVJJSkEKK0tPWkFSRVYgTUlMQU4KK0tPWkFSRVYgTUlMS0EKK0tPWkFSRVYgTUxBREVOCitLT1pBUkVWIE5FREVMSktPCitLT1pBUkVWIFBBVkxFCitLT1pBUkVWIFBFVEFSCitLT1pBUkVWIFNBVkEKK0tPWkFSRVYgU0FWQQorS09aQVJFViBUT0RPUgorS09aQVJFVknEhiBSQURJTktBCitLT1pBUkVWScSGIFpPUkFOCitLT1pBUk9WIMSQT1LEkEUKK0tPWkFST1YgQU5JQ0EKK0tPWkFST1YgR0FWUkEKK0tPWkFST1YgSVZBTgorS09aQVJPViBKT1ZBTktBCitLT1pBUk9WIEtBVElDQQorS09aQVJPViBNSUxPxaAKK0tPWkFST1YgTkFUQUxJSkEKK0tPWkFST1YgUEFWTEUKK0tPWkFST1YgUEFWTEUKK0tPWkFST1YgU1JCSVNMQVYKK0tPWkFST1YgVE9NSVNMQVYKK0tPWkFSU0tJIMW9SVZBTgorS09aQVJTS0kgxb1JVktPCitLT1pBUlNLSSBMSURJSkEKK0tPWkFSU0tJIE1BUklKQQorS09aQVJTS0kgTUlST1NMQVYKK0tPWkFSU0tJLVJBSknEhiBWRVJJQ0EKK0tPWkFSU0tJIFNMT0JPREFOCitLT1pBUlNLSSBTT0ZJSkEKK0tPWkFSU0tJIFNURVZBTgorS09aQVJTS0kgVEVPRE9SQQorS09aQVJTS0kgVkFTSUxJSkUKK0tPWkFSU0tJIFZFUkEKK0tPWkFSU0tJIFZPSklTTEFWCitLT1pBUlNLSSBWT0pJU0xBVgorS09aQkHFoEnEhiBTVEVWQU4KK0tPWknEhiBCT0dEQU4KK0tPWknEhiBQRVRBUgorS09aScSGIFJBVEtPCitLT1pJxIYgUk/FvUEKK0tPWknEhiBTQVZBCitLT1pJxIYgU1RBTktPCitLT1pJxIYgVkVMSktPCitLT1pJTkEgSVZBTgorS09aSU5BIE1BUklDQQorS09aTElLIEtBVEFSSU5BCitLT1pMSUsgTEFKT8WgCitLT1pMSU5BIERFU0FOS0EKK0tPWkxJTkEgRFXFoEtPCitLT1pMSU5BIEpFS0EKK0tPWkxJTkEgTUlMRQorS09aTElOQSBaTEFUSUNBCitLT1pMT1ZBxIxLSSDFvUlWS08KK0tPWkxPVkHEjEtJIEdPUkRBTkEKK0tPWkxPVkHEjEtJIExKVUJBCitLT1pMT1ZBxIxLSSBTQVZBCitLT1pMT1ZBxIxLSSBTT0ZJSkEKK0tPWkxPVkHEjEtJIFZFU0VMSU4KK0tPWkxPVknEhiBCT1JJUworS09aTE9WScSGIFNBVkEKK0tPWk1BIMWgQU5ET1IKK0tPWk1BIEVURUwKK0tPWk1BIEZFUkVOQworS09aTUEgSk/FvUVGCitLT1pNQSBKT1NJUAorS09aTUlESVMtUEVUUk9WScSGIEFOQQorS09aT01BUkEgxJBPUsSQRQorS09aT01BUkEgSk9WTworS09aT01BUkEgTEpVQklDQQorS09aT01BUkEgTUFSSUpBCitLT1pPTUFSQSBaT1JBTgorS09aT01BUknEhiBNQVJJSkEKK0tPWk9NT1JBIEJPxb1JREFSCitLT1pPTU9SQSBCUkFOS08KK0tPWk9NT1JBIElMSUpBCitLT1pPTU9SQSBKT0tBCitLT1pPTU9SQSBKT1ZPCitLT1pPTU9SQSBMQVpPCitLT1pPTU9SQSBNSUxBTgorS09aT01PUkEgTUlMRQorS09aT01PUkEgTUlMT0pLTworS09aT01PUkEgTUlST1NMQVYKK0tPWk9NT1JBIFBFVEFSCitLT1pPTU9SQSBSQURPTUlSCitLT1pPTU9SQSBTUsSQQU4KK0tPWk9NT1JBIFRBVEpBTkEKK0tPWk9NT1JBIFZBU0lMSUpFCitLT1pPTU9SScSGIEJSQU5JU0xBVkEgRFIgTEVLQVIKK0tPWlVOT1ZJxIYgTUlST1NMQVYKK0tSxIxBRElOQUMgS09TVEEKK0tSxIxBRElOQUMgTklLT0xBCitLUsSMRURJTkFDIE1JT0RSQUcKK0tSxIxFRElOQUMgVElNQQorS1LEjEVMScSGIEFORFJJSkEKK0tSxIxNQVIgxb1FTEpLTworS1LEjE1BUiBDVklKTworS1LEjE1BUiBEUkFHT01JUgorS1LEjE1BUiBEVcWgS08KK0tSxIxNQVIgSk9WQU4KK0tSxIxNQVIgTEVQT1NBVkEKK0tSxIxNQVIgTEpVQklDQQorS1LEjE1BUiBMSlVCSUNBCitLUsSMTUFSIE1JTEFOCitLUsSMTUFSIE1JTEFOCitLUsSMTUFSIE1JUktPCitLUsSMTUFSIFBBTkUKK0tSxIxNQVIgVkFTTworS1LEjE1BUiBWSU5LTworS1LEjE1BUiBaT1JBTgorS1LEjE1BUiBaT1JBTgorS1LEjE1BUklLIERBTklMTworS1LEjE1BUklLIFBSRURSQUcKK0tSxIxPIEJPxb1JREFSCitLUsSMTyBNSUxFTktPCitLUsSMTyBSQVNJTQorS1LEjE8gUkFTSU0KK0tSxaBFViBCT1JJUworS1LFoEVWIElWQU4KK0tSxaBFViBKVUxJSkFOQQorS1LFoEVWIEpVTEtJQ0EKK0tSxaBJxIYgREFSQQorS1LFoEnEhiBJR05KQVQKK0tSxaBJxIYgSkVMQQorS1LFoEnEhiBUT01PCitLUsWgSU4gSk9WTworS1LFoE9WScSGIEpFTEVOQQorS1LFoFRFTknEhiBERVNBTktBCitLUsW9QSBNSUxFTktPCitLUsW9ScSGIFNJTU8KK0tSxJBJxIYgU1BPTUVOS0EKK0tSQcSMRU5TS0kgQk9SSVNMQVYKK0tSQcSMRVZTS0kgQVBPU1RPTAorS1JBxIxVTiBJVkFOCitLUkHEjFVOIFRSQUpBTgorS1JBxIxVTiBUUkFKQU4KK0tSQcSMVU5PViBQRVRBUgorS1JBxIxVTk9WIFNURVZBTgorS1JBxIxVTk9WScSGIMW9SVZPUkFECitLUkHEjFVOT1ZJxIYgVkVMSktPCitLUkHEhkFLIEJPxaBLTworS1JBR0nEjEVLIEtMQVJBCitLUkFHScSGIEJJTEpBTkEKK0tSQUdJxIYgQk9SQQorS1JBR0nEhiBMSklMSkFOQQorS1JBR0nEhiBaT1JBTgorS1JBR09WScSGIE1BUklOS08KK0tSQUdPVknEhiBWTEFESU1JUgorS1JBR1VKRVYgRFXFoEFOCitLUkFHVUpFVknEhiBNSUxPUkFEIERSIExFS0FSCitLUkFHVUpFVknEhiBSQUpLTworS1JBR1VKRVZJxIYgU1RBTklTTEFWIERSIExFS0FSCitLUkFHVUxKIEFMRUtTQU5EQVIKK0tSQUdVTEogRFXFoEFOS0EKK0tSQUdVTEogSkVMQQorS1JBR1VMSiBMQVpPCitLUkFHVUxKIFNBVktBCitLUkFHVUxKRVZJxIYgWk9SSUNBCitLUkFKxIxFVknEhiBNSU9EUkFHCitLUkFKxIxJIFZMQURJTUlSCitLUkFKxIxJTk9WScSGIEpPVkFOIERSIExFS0FSCitLUkFKxaBJxIYgTUlSS08KK0tSQUpBxIxFVknEhiBCT1JJU0xBVgorS1JBSkHEjEVWScSGIEhJTERBCitLUkFKQcSMRVZJxIYgTUlSSkFOQQorS1JBSkHEjEVWScSGIFRPTUlTTEFWCitLUkFKQcSMRVZJxIYgWk9SQU4KK0tSQUpDQVIgVkxBRElNSVIKK0tSQUpDRVIgRVVHRU4KK0tSQUpDRVIgSVJFTkEKK0tSQUpDRVIgSVZBTgorS1JBSkNFUiBQRVRBUgorS1JBSknFoE5JSyDFvUlWT1JBRAorS1JBSknFoE5JSyBLUklTVElOQQorS1JBSknEhiBBR0lDQQorS1JBSklOQSBBTEVLU0FOREFSCitLUkFKSU5BIEZJTElQCitLUkFKSU5PVknEhiBCUkFOS08KK0tSQUpJTk9WScSGIExBWkFSCitLUkFKSU5PVknEhiBNSUxBTgorS1JBSklOT1ZJxIYgUEFWTEUKK0tSQUpJTk9WScSGIFNJTknFoEEKK0tSQUpOSUsgxb1BUktPCitLUkFKTklLIExBWkFSCitLUkFKTklLRVIgTkFORE9SCitLUkFKTk9WIEJPR0RBTgorS1JBSk5PViBCT0dPTEpVQgorS1JBSk5PViBHT1JBTgorS1JBSk5PVknEhiDEkE9SxJBFCitLUkFKTk9WScSGIMSQT1LEkEUKK0tSQUpOT1ZJxIYgxJBVUk8KK0tSQUpOT1ZJxIYgQk/FoEtPCitLUkFKTk9WScSGIEJPR0RBTgorS1JBSk5PVknEhiBKQURSQU5LQQorS1JBSk5PVknEhiBNSUxJxIYKK0tSQUpOT1ZJxIYgTUlMSUNBCitLUkFKTk9WScSGIE5JS09MQQorS1JBSk5PVknEhiBQRVRBUgorS1JBSk5PVknEhiBSQURFCitLUkFKTk9WScSGIFNMQVZJQ0EKK0tSQUpOT1ZJxIYgVkVSQQorS1JBSk9WQU4gTUlSSkFOQQorS1JBSk9WQU4gTUlST1NMQVYKK0tSQUsgTUnFoEEKK0tSQUtBTk9WScSGIERVxaBBTgorS1JBS0FOT1ZJxIYgVk9KSVNMQVYKK0tSQUxJSyBNSVJPU0xBVgorS1JBTElLIE9MSU5LQQorS1JBTElLIFBBVkxFCitLUkFMSUsgU1RFVkFOCitLUkFMSiBWQUxFTlRJTgorS1JBTEogWlZPTklNSVIKK0tSQUxKRVZBxIxLSSBCQVJCQVJBCitLUkFMSkVWQcSMS0kgSUxJSkEKK0tSQUxKRVZBxIxLSSBKT1NJUAorS1JBTEpFVknEhiBCT1NJTEpLQQorS1JBTEpFVknEhiBEVcWgQU4KK0tSQUxKRVZJxIYgTUFSSUNBCitLUkFMSkVWScSGIE1JTEtBCitLUkFMSkVWScSGIFNBVk8KK0tSQUxKRVZJxIYgVkxBRElNSVIgRFIKK0tSQUxKScSGIEpFTEVOQQorS1JBTEpJxIYgVkxBREEKK0tSQU5KxIxFVknEhiBHT1JEQU5BCitLUkFOSsSMRVZJxIYgSk9TSVAKK0tSQVMgSkVMRU5BCitLUkFTQVZBQyDFvUlWT1JBRAorS1JBU0FWQUMgTUlMS0EKK0tSQVNBVkFDIE1JTE9SQUQKK0tSQVNBVkFDIE1JTE9SQUQKK0tSQVNBVkFDIFJVxb1JQ0EKK0tSQVNJxIYgQlJBTklTTEFWCitLUkFTScSGIERVxaBBTgorS1JBU0nEhiBHT0xVQgorS1JBU0nEhiBNSUxPSkUKK0tSQVNJxIYgTklLT0xBCitLUkFTScSGIFNURVZBTgorS1JBU0tPIEpBTktPCitLUkFTTknEhiBJUklOQQorS1JBU05JxIYgVkVSQQorS1JBU05JSyBWTEFUS08KK0tSQVNOSUsgWlZPTktPCitLUkFTT0pFVknEhiBLT05TVEFOVElOCitLUkFTT0pFVknEhiBaT1JBTgorS1JBU1VMQSBUT01BCitLUkFTVUxKQSBEVcWgQU4KK0tSQVNVTEpBIFNURVZBTgorS1JBVVMgQU5BCitLUkFVUyBPVE8KK0tSQVbEjEVOS08gUEVUQVIKK0tSQVZBUlXFoEnEhiBEUkFHQU4KK0tSQVZBUlXFoEnEhiBJTElKQQorS1JBVkFSVcWgScSGIFRSSVZVTgorS1JBVkFSVcWgScSGIFZJVE9NSVIKK0tSQVZJxIYgRFXFoEFOCitLUkFWScSGIE1JTEFOCitLUkFWScSGIFBFVEFSCitLUkFWTEpBTkFDIEFMRUtTQU5EUkEKK0tSQVZMSkFOQUMgSVZBTktBCitLUkJBTkpFVknEhiBBTEVLU0FOREFSCitLUkJBTkpFVknEhiBNSUxBTgorS1JCQU5KRVZJxIYgU0HFoEEKK0tSQkFWQUMgSkVMQQorS1JDScSGIEJSQVRJTUlSCitLUkNVTk9WScSGIEJMQUdPSkUKK0tSRMW9QUxJxIYgRFJBR0FOCitLUkTFvUFMScSGIFNURVZBTgorS1JExb1JxIYgVklET0pFCitLUkXFoE8gRU1JUgorS1JFQ1VMIExJRElKQQorS1JFQ1VMSiBNQVJJSkEKK0tSRUcgRURVQVJECitLUkVHIFZMQURJTUlSCitLUkVKScSGIEJPUklTTEFWCitLUkVKScSGIEpPVkFOCitLUkVKScSGIE1BUklOS08KK0tSRUpJxIYgU1RBTklTTEFWCitLUkVKScSGIFNUQU5JU0xBVgorS1JFSknEhiBTVE9KQQorS1JFS0nEhiBCQVJJxaBBIERSCitLUkVLScSGIEVOVkVSCitLUkVLScSGIEZSQU5KQQorS1JFS0nEhiBNSUxFTkEKK0tSRUtPIExKVUJJQ0EKK0tSRU1FTk9WScSGIEJPUklTTEFWCitLUkVNRU5PVknEhiBLTEFSQQorS1JFTUVOT1ZJxIYgTEpVQkEKK0tSRU1FTk9WScSGIExKVUJBCitLUkVNRU5PVknEhiBMSlVCQQorS1JFTUVOT1ZJxIYgTUlMQU5LQQorS1JFTUVOT1ZJxIYgTUlMRU5BCitLUkVNRU5PVknEhiBNSUxFTktPCitLUkVNRU5PVknEhiBNSUxPxaAKK0tSRU1FTk9WScSGIE1JUktPCitLUkVNRU5PVknEhiBORURFTEpLTworS1JFTUVOT1ZJxIYgUEVUQVIKK0tSRU1FTk9WScSGIFJBRE9TTEFWCitLUkVNRU5PVknEhiBTSU5JxaBBCitLUkVNRU5PVknEhiBTTkXFvUFOQQorS1JFTUVOT1ZJxIYgU1RBTktPCitLUkVNRU5PVknEhiBTVEVWTworS1JFTUVOT1ZJxIYgVk9KSU4KK0tSRU1FUiBFTElaQUJFVEEKK0tSRU1FUiBGUkFOSkEKK0tSRU1FUiBKT1ZBTgorS1JFTUVSIEtBVElDQQorS1JFTUVSIE1BVElKQQorS1JFTUVSIFBBSkEKK0tSRU1JxIYgRFJBR0FOCitLUkVNScSGIExKVUJPTUlSCitLUkVNUEFTS0ktQU5EUknEhiBISUxEQQorS1JFTVBBU0tJIEVMSVpBQkVUQQorS1JFU0FOS08gTEFTTE8KK0tSRVNBTktPIE1BUkdJVEEKK0tSRVNBTktPIE1BUklKQQorS1JFU0nEhiBKQU5KQQorS1JFU0nEhiBNSUxFTkEKK0tSRVNJxIYgTUlUQVIKK0tSRVNJxIYgU0xBVktPCitLUkVTTyDFoEHEhklSCitLUkVTT0pBIERVxaBLTworS1JFU09KQSBNQVJJTktPCitLUkVTT0pFVknEhiBEQU1KQU4KK0tSRVNPSkVWScSGIEpPVkFOS0EKK0tSRVNPSkVWScSGIEpPVkFOCitLUkVTT0pFVknEhiBTUkJPU0xBVgorS1JFU09KRVZJxIYgVkVTTkEKK0tSRVNPSkVWScSGIFpEUkFWS08KK0tSRVNPVknEhiBTTEFWS08KK0tSRVNPVknEhiBTTE9CT0RBTgorS1JFU09WScSGIFZBU08KK0tSRVNUQSBBUlBBRAorS1JFU1RBIEFUSUxBCitLUkVTVEnEhiBEQUZJTkEKK0tSRVNUScSGIE5BREEKK0tSRVNUScSGIFNURVZBTgorS1JFU1RJxIYgVkxBRElNSVIKK0tSRVZFxaBJxIYgS0FSTE8KK0tSRVZFxaBJxIYgS0FUQQorS1JHQSBHQVZSQQorS1JHQSBNQU5FCitLUkdBIE1BUkEKK0tSR0EgTUlMQU4KK0tSR0EgTUlMT8WgCitLUkdBIFZBU0EKK0tSR0lOIE1MQURFTgorS1JHSU4gTkFEQQorS1JHSU4gTkVERUxKS08KK0tSR09WScSGIERVxaBBTktBCitLUkdPVknEhiBEVcWgQU5LQQorS1JHT1ZJxIYgSk9WTworS1JHT1ZJxIYgTUFMScWgQQorS1JHT1ZJxIYgTUFSSUpBCitLUkdPVknEhiBNScSGTworS1JHT1ZJxIYgTUlMQU4KK0tSR09WScSGIE1JTE9SQUQgRFIgTEVLQVIKK0tSR09WScSGIE1PTcSMSUxPCitLUkdPVknEhiBSQVRLTworS1JHT1ZJxIYgU01JTEpBCitLUkdPVknEhiBTTkXFvUFOQQorS1JHT1ZJxIYgU1ZFVE9aQVIKK0tSR09WScSGIFZMQURBCitLUkdPVknEhiBWVUtPTUFOIERJUEwgSU5HCitLUkdPVknEhiBaT1JJQ0EKK0tSScWgIFBFVEFSCitLUknFoEFOIEJPU0lMSktBCitLUknFoEFOIERSQUdPSkxPCitLUknFoEFOIE1BVElKQQorS1JJxaBBTiBNSUxPxaAKK0tSScWgQU4gVlVLSUNBCitLUknFoEFOIFpEUkFWS08KK0tSScWgQU5PViBKT1ZBTgorS1JJxaBBTk9WScSGIERSQUdPTUlSCitLUknFoFRPIEpVTElKQU5BCitLUknFvSBKQU5LTworS1JJxb0gUEFWRUwKK0tSScW9QUsgQU5BCitLUknFvUFOIMWgQU5ET1IKK0tSScW9QU4gxJBVUkEKK0tSScW9QU4gQU5JQ0EKK0tSScW9QU4gRURVQVJECitLUknFvUFOIEpBTk/FoAorS1JJxb1BTiBKVUxBCitLUknFvUFOIExBU0xPCitLUknFvUFOIE1BUklKQQorS1JJxb1BTiBNQVRJSkEKK0tSScW9QU4gTUlLTE/FoAorS1JJxb1BTiBST8W9QQorS1JJxb1BTknEhiBKT1ZBTgorS1JJxb1BTknEhiBKT1ZBTgorS1JJxb1BTknEhiBNSUxFTktPCitLUknFvUFOScSGIFNMQcSQQU5BCitLUknFvUFOScSGIFZMQURJTUlSCitLUknFvUFOT1ZJxIYgxb1Vxb1BTkEKK0tSScW9TkFSIEJPSkFOCitLUknFvU5BUiBNQVJBCitLUknFvU5BUiBNSVJLTyBEUiBESVBMIElORworS1JJxb1OQVIgVE9NQSBESVBMIElORworS1JJTcWgQU1IQUxPViBaQUlEQQorS1JJTktPVlNLSSBBTEVLU0FOREFSCitLUklOS09WU0tJIEFMRUtTQU5EQVIKK0tSSU5LT1ZTS0kgVkVST05JS0EKK0tSSVNUScSGIE1BUklKQQorS1JJU1RJxIYgTkFEQQorS1JJU1RJQU4gSk/FvUVGCitLUklTVE9WScSGIE1JUk9TTEFWQQorS1JJU1RPVknEhiBSVURPTEYKK0tSSVZBSyBBTkEKK0tSSVZBSyBNSVJPU0xBVgorS1JJVknEhiBEUkFHQU5BCitLUklWScSGIExKSUxKQU5BCitLUklWScSGIE5JS09MQQorS1JJVk/FoElKQSDFvUlWS08KK0tSSVZPxaBJSkEgRlJBTkpPCitLUklWT8WgSUpBIE1JTEUKK0tSSVZPS0FQScSGIEFNQUxJSkEKK0tSSVZPS0FQScSGIERBTklDQQorS1JJVk9LQVBJxIYgTUFSVElOCitLUklWT0tBUEnEhiBORURFTEpLTworS1JJVk9LQVBJxIYgTkVWRU5LQSBESVBMIEVDQworS1JJVk9LQVBJxIYgUkFET1NMQVYKK0tSSVZPS0FQScSGIFNMT0JPREFOCitLUklWT0tBUEnEhiBTTE9CT0RBTgorS1JJVk9LQVBJxIYgU1RFVkFOCitLUklWT0tBUEnEhiBWTEFESU1JUgorS1JJVk9LVcSGQSDEkE9SxJBFCitLUklWT0tVxIZBIERFSkFOIERJUEwgSU5HCitLUklWT0tVxIZBIERJTUlUUklKRQorS1JJVk9LVcSGQSBEUkFHSUNBCitLUklWT0tVxIZBIERSQUdPTUlSCitLUklWT0tVxIZBIERSQUdPTUlSCitLUklWT0tVxIZBIERVxaBBTgorS1JJVk9LVcSGQSBKRUxJU0FWRVRBCitLUklWT0tVxIZBIEpPVkFOCitLUklWT0tVxIZBIEpVTElKQU5BCitLUklWT0tVxIZBIE1JTEFOCitLUklWT0tVxIZBIE1JTElDQQorS1JJVk9LVcSGQSBNSUxLQQorS1JJVk9LVcSGQSBNSU9EUkFHCitLUklWT0tVxIZBIFBFVEFSCitLUklWT0tVxIZBIFJBRE9TTEFWCitLUklWT0tVxIZBIFJBRE9WQU4KK0tSSVpCQUkgWk9MVEFOCitLUktFTEnEhiBTTE9CT0RBTgorS1JLRUxKRcWgIEJPUklTCitLUktFTEpJxIYgTU9NxIxJTE8KK0tSS0VMSknEhiBTVkVUSVNMQVYKK0tSS0nEhiBNSUxPVkFOCitLUktMRUMgSk9TSVAKK0tSS0xFQyBWRVJBCitLUktMRUMgVkxBRElNSVIKK0tSS0xKRcWgIMSQVVJPCitLUktMSkXFoCBCT1JBCitLUktMSkXFoCBNSUxFIERSCitLUktMSknEhiDEkFVSTworS1JLTEpJxIYgRFJBR0FOCitLUktMSknEhiBNSUxBTgorS1JLTEpJxIYgTUlMT1ZBTgorS1JLTEpJxIYgTklLT0xBCitLUktMSknEhiBPU1RPSkEKK0tSS0xKVcWgIEJPxaBLTworS1JLTEpVxaAgQlJBTktPCitLUktMSlXFoCBEUkFHQU5BCitLUktMSlXFoCBEVcWgQU5LQQorS1JLTEpVxaAgRFXFoEFOCitLUktMSlXFoCBKRUxFTkEKK0tSS0xKVcWgIEpFTElDQQorS1JLTEpVxaAgS1JJU1RJTkEKK0tSS0xKVcWgIExKVUJJTktBCitLUktMSlXFoCBMSlVCT01JUktBIERSCitLUktMSlXFoCBNSUxBTgorS1JLTEpVxaAgTUlMQU4KK0tSS0xKVcWgIE1JTElDQQorS1JLTEpVxaAgTUlMT1JBRAorS1JLTEpVxaAgTUlST1NMQVYKK0tSS0xKVcWgIE1PTcSMSUxPCitLUktMSlXFoCBQRVRBUgorS1JLTEpVxaAgUEVUQVIKK0tSS0xKVcWgIFJBREUKK0tSS0xKVcWgIFNMQVZLTworS1JLTEpVxaAgU0xPQk9EQU4KK0tSS0xKVcWgIFNURVZBTgorS1JLTEpVxaAgVkVSSUNBCitLUktPQkFCScSGIElMSUpBCitLUktPQkFCScSGIFZFUklDQQorS1JLT1ZJxIYtSlVQRUsgRFXFoEFOS0EKK0tSTUFSIERVxaBBTgorS1JNQVIgSkFTTkEKK0tSTUFSIE1BUktPCitLUk1BUiBaT1JBCitLUk1QT1QgR09KS08KK0tSTVBPVCBMQVpBUgorS1JNUE9UScSGIEFOxJBFTEtBCitLUk1QT1RJxIYgVk9KSVNMQVYgRElQTCBQUkFWTklLCitLUk1QT1RJxIYgVlVLSUNBCitLUk7EjEVWScSGIEFOxJBFTEtBCitLUk5BSkFDIMW9SVZBTgorS1JOQUpBQyBJVkFOCitLUk5BSkFDIE1PTcSMSUxPCitLUk5BSkFDIE5FVkVOS0EKK0tSTkFKQUMgUEVUQVIKK0tSTkFKQUMgUkFET1ZBTgorS1JOQUpBQyBaTEFUSUNBCitLUk5BSlNLSSBNSUxPUkFECitLUk5ESUpBIEJPR09MSlVCCitLUk5ESUpBIEJSQU5LTworS1JORElKQSBNQVJLTworS1JORElKQSBNSUxPVkFOCitLUk5ESUpBIE5FTkFECitLUk5ESUpBIFBFVEFSCitLUk5ESUpBIFNUQU5BCitLUk5ESUpBIFNURVZPCitLUk5ESUpBIFZPSklOCitLUk5FVEEgQk9HREFOCitLUk5FVEEgSkVMS0EKK0tSTkVUQSBNSUxPUkFECitLUk5FVEEgTUlMT1NBVkEKK0tSTkVUQSBOSUtPTEEKK0tSTkVUQSBSQURFCitLUk5FVEEgU0xPQk9EQU4KK0tSTkVUQSBTVEVWQU4KK0tSTkVUScSGIEdPSktPCitLUk5FVEnEhiBKT1ZBTgorS1JOScSGIEFOQQorS1JOScSGIFBFUkEKK0tSTknEhiBSQURPSktBCitLUk5JxIYgU1RFVkFOCitLUk5JxIYgU1RJUE8KK0tSTklKQSBNQVJJTktPCitLUk5KQUnEhiBEUkFHTworS1JOSkFJxIYgR09SQU4KK0tSTkpBScSGIEpFTElTQVZFVEEKK0tSTkpBSknEhiBEVcWgQU5LQQorS1JOSkFKScSGIElMSUpBCitLUk5KQUpJxIYgSVZJQ0EKK0tSTkpBSknEhiBKT1ZBTgorS1JOSkFKScSGIE1JTE/FoAorS1JOSkFKScSGIE1JUk9TTEFWCitLUk5KQUpJxIYgUkFET01JUgorS1JOSkXFoEVWQUMgU0FWQQorS1JOSkVUQSBMRVBPU0FWQQorS1JOSkVUQSBOT1ZBSworS1JOSkVUSU4gxb1JVktPCitLUk5KRVRJTiBCUkFOS08KK0tSTkpFVElOIERSQUdBTgorS1JOSkVUSU4gSk9WQU4KK0tSTkpFVElOIEtBVElDQQorS1JOSkVUSU4gTUFKQQorS1JOSkVUSU4gTUlLQQorS1JOSkVUSU4gU0FWQQorS1JOSknEhiBJVkFOCitLUk5KVUxBQyBEVcWgQU4KK0tSTk9KRUxBQyBEQU5JTE8KK0tST8WgTEFLIFNURVZBTgorS1JPTUJIT0xDIEVNSUwKK0tST01IT0xDIEtBUkxPCitLUk9NUEnEhiBMSklMSkFOQSBQUk9GRVNPUgorS1JPTVBJxIYgTEpVQklDQQorS1JPTVBJxIYgTUlMQU4KK0tST01QScSGIFNUQU5LTworS1JPTkFWRVRFUiBBTEZSRUQKK0tST05JxIYgTEFaQVIKK0tST05JxIYgTUlMRU5LTworS1JPTkpBIElWQU4KK0tST05KQSBJVkFOCitLUk9OSkEgTUlMQU5LQQorS1JPUMWgIEhJTERBCitLUk9QQcSMRUsgSVZBTgorS1JPUEYgQU7EkEVMS0EKK0tST1BGIEZSQU5KQQorS1JQQU4gxb1FTEpLTworS1JQQU4gSVZBTgorS1JQQU4gTEpJTEpBTkEKK0tSUEFOIE1JUktPCitLUlBBTiBTVEVWQU4KK0tSU01BTk9WScSGIEJPxb1JREFSS0EKK0tSU01BTk9WScSGIEJPR0RBTktBCitLUlNNQU5PVknEhiBCUkFOS08KK0tSU01BTk9WScSGIENWSUpBTgorS1JTTUFOT1ZJxIYgSk9WQU4KK0tSU01BTk9WScSGIEtSU01BTiBESVBMIElORworS1JTTUFOT1ZJxIYgTEFaQVIKK0tSU01BTk9WScSGIExKSUxKQU5BCitLUlNNQU5PVknEhiBNSUxPxaAKK0tSU01BTk9WScSGIE1PTcSMSUxPCitLUlNNQU5PVknEhiBPQlJFTgorS1JTTUFOT1ZJxIYgU0HFoEEKK0tSU01BTk9WScSGIFNMQVZPSktBCitLUlNNQU5PVknEhiBTUkVURU4KK0tSU01BTk9WScSGIFZBU0EKK0tSU05JSyBKT04KK0tSU05JSyBNQVJJSkEKK0tSU1RBSknEhiBNSUxPSklDQQorS1JTVEFKScSGIFBFUktPCitLUlNUQU5PVknEhiBDVklKTworS1JTVEFOT1ZJxIYgRFJBR09NSVIKK0tSU1RBTk9WScSGIEZSQU5KQQorS1JTVEFOT1ZJxIYgSVZBTktBCitLUlNUQU5PVknEhiBLT1NUQQorS1JTVEFOT1ZJxIYgTU9NxIxJTE8KK0tSU1RBTk9WScSGIFBFVEFSCitLUlNURUtBTknEhiDEjEVET01JUgorS1JTVEVLQU5JxIYgQU5BCitLUlNURUtBTknEhiBLUklTVElOQQorS1JTVEVLQU5JxIYgUkFUT01JUgorS1JTVEVWU0tJIERSQUdPU0xBVgorS1JTVEVWU0tJIFNUQU5JU0xBVgorS1JTVEnEhi3FoFRJTUFDIFNQQVNFTklKQSBEUgorS1JTVEnEhiDFvUFSS08KK0tSU1RJxIYgxb1JVkFOCitLUlNUScSGIMW9SVZLTworS1JTVEnEhiDFvUlWS08KK0tSU1RJxIYgxJBPUsSQRQorS1JTVEnEhiDEkE9SxJBFCitLUlNUScSGIMSQT1LEkEUKK0tSU1RJxIYgxJBPUsSQRQorS1JTVEnEhiDEkE9SxJBFCitLUlNUScSGIMSQT1LEkEUKK0tSU1RJxIYgxJBPUsSQRQorS1JTVEnEhiDEkE9SxJBFCitLUlNUScSGIMSQT1LEkEUKK0tSU1RJxIYgxJBPUsSQRQorS1JTVEnEhiDEkE9SxJBFCitLUlNUScSGIMSQT1LEkEUKK0tSU1RJxIYgxJBPUsSQRQorS1JTVEnEhi3EkFVSxIxKQU5TS0kgUlXFvUVOS0EKK0tSU1RJxIYgQUxFS1NBTkRBUiBEUgorS1JTVEnEhiBBTEVLU0FOREFSCitLUlNUScSGIEFMRUtTQU5EQVIKK0tSU1RJxIYgQUxFS1NBTkRBUgorS1JTVEnEhiBBTkRSSUpBCitLUlNUScSGIEFOSUNBCitLUlNUScSGIEJPxaBLTworS1JTVEnEhiBCT8W9SURBUgorS1JTVEnEhiBCT8W9SURBUgorS1JTVEnEhiBCT8W9SURBUgorS1JTVEnEhiBCT0dEQU4KK0tSU1RJxIYgQk9SSVZPSgorS1JTVEnEhiBCUkFOSVNMQVYKK0tSU1RJxIYgQlJBTklTTEFWCitLUlNUScSGIEJSQU5JU0xBVgorS1JTVEnEhiBCUkFOSVNMQVYKK0tSU1RJxIYgQlJBTklTTEFWCitLUlNUScSGIEJSQU5JU0xBVgorS1JTVEnEhiBCUkFOSVNMQVYKK0tSU1RJxIYgQlJBTktBCitLUlNUScSGIEJSQU5LQQorS1JTVEnEhiBCUkFOS08KK0tSU1RJxIYgREFOSUNBCitLUlNUScSGIERFU0FOS0EKK0tSU1RJxIYgRElNSVRSSUpFCitLUlNUScSGIERPQlJJTEEKK0tSU1RJxIYgRE9CUklMQQorS1JTVEnEhiBET0JSSU5LQQorS1JTVEnEhiBET0JST1NMQVYKK0tSU1RJxIYgRFJBR0FOCitLUlNUScSGIERSQUdJTkpBCitLUlNUScSGIERSQUdPTEpVQgorS1JTVEnEhiBEUkFHT1NMQVYKK0tSU1RJxIYgRFJBR1VUSU4KK0tSU1RJxIYgRFXFoEFOIERJUEwgSU5HCitLUlNUScSGIERVxaBBTgorS1JTVEnEhiBEVcWgS08KK0tSU1RJxIYgRVRFTEtBCitLUlNUScSGIEVWSUNBCitLUlNUScSGIEdBVlJBCitLUlNUScSGLUdVTkVLIE1BUklKQQorS1JTVEnEhiBJTElKQQorS1JTVEnEhiBJVkFOIERSCitLUlNUScSGIEpFTEVOQQorS1JTVEnEhiBKRUxFTkEKK0tSU1RJxIYgSk9SREFOCitLUlNUScSGIEpPVkFOCitLUlNUScSGIEpPVkFOCitLUlNUScSGIEpPVkFOCitLUlNUScSGIEtBTUVOS08KK0tSU1RJxIYgS0FNRU5LTworS1JTVEnEhiBLQVRJQ0EKK0tSU1RJxIYgS0FUSUNBCitLUlNUScSGIEtBVElDQQorS1JTVEnEhiBLT1JORUxJSkEKK0tSU1RJxIYgTEFaQVIKK0tSU1RJxIYgTEFaQVIKK0tSU1RJxIYgTEpJTEpBTkEKK0tSU1RJxIYgTEpJTEpBTkEKK0tSU1RJxIYgTEpVQknFoEEKK0tSU1RJxIYgTEpVQknFoEEKK0tSU1RJxIYgTEpVQklDQQorS1JTVEnEhiBMSlVCSU5LQQorS1JTVEnEhiBMSlVCSVNBVgorS1JTVEnEhiBMSlVCT01JUgorS1JTVEnEhiBMSlVCT01JUgorS1JTVEnEhiBMSlVCT01JUgorS1JTVEnEhiBMSlVCT01JUgorS1JTVEnEhiBMSlVCT01JUgorS1JTVEnEhiBNQVJJSkEKK0tSU1RJxIYgTUFSSUpBCitLUlNUScSGIE1BUklKQQorS1JTVEnEhiBNQVJLTworS1JTVEnEhiBNSUxBRElOCitLUlNUScSGIE1JTEFOCitLUlNUScSGIE1JTEFOCitLUlNUScSGIE1JTEFOCitLUlNUScSGIE1JTEVOS08KK0tSU1RJxIYgTUlMRU5LTworS1JTVEnEhiBNSUxJQ0EKK0tSU1RJxIYgTUlMSUNBCitLUlNUScSGIE1JTElDQQorS1JTVEnEhiBNSUxJQ0EKK0tSU1RJxIYgTUlMSUNBCitLUlNUScSGIE1JTE/FoAorS1JTVEnEhiBNSUxPxaAKK0tSU1RJxIYgTUlMT0pLTworS1JTVEnEhiBNSUxPUkFECitLUlNUScSGIE1JTE9SQUQKK0tSU1RJxIYgTUlMT1JBRAorS1JTVEnEhiBNSUxPUkFECitLUlNUScSGIE1JTE9WQU4KK0tSU1RJxIYgTUlMT1ZBTgorS1JTVEnEhiBNSUxPVkFOCitLUlNUScSGIE1JTsSMRSBESVBMIElORworS1JTVEnEhiBNSU9EUkFHCitLUlNUScSGIE1JT0RSQUcKK0tSU1RJxIYgTUlPRFJBRworS1JTVEnEhiBNSVJLTworS1JTVEnEhiBNSVJLTworS1JTVEnEhiBNSVJPTEpVQgorS1JTVEnEhiBNSVJPTEpVQgorS1JTVEnEhiBNSVJPU0xBVkEKK0tSU1RJxIYgTUlST1NMQVZBCitLUlNUScSGIE1JUk9TTEFWCitLUlNUScSGIE1JVEFSCitLUlNUScSGIE5BREEKK0tSU1RJxIYgTkVCT0rFoEEKK0tSU1RJxIYgTkVOQUQKK0tSU1RJxIYgTkVOQUQKK0tSU1RJxIYgTklLT0xBCitLUlNUScSGIE5JS09MQQorS1JTVEnEhiBOSUtPTEEKK0tSU1RJxIYgTk9WQUsKK0tSU1RJxIYgTk9WQUsKK0tSU1RJxIYgUEVUQVIgRElQTCBJTkcKK0tSU1RJxIYgUEVUQVIKK0tSU1RJxIYgUEVUQVIKK0tSU1RJxIYgUEVUQVIKK0tSU1RJxIYgUEVUQVIKK0tSU1RJxIYgUEVUUlVOCitLUlNUScSGIFJBRElTQVYKK0tSU1RJxIYgUkFESVZPSgorS1JTVEnEhiBSQURJVk9KCitLUlNUScSGIFJBRE9KRQorS1JTVEnEhiBSQURPTUlSCitLUlNUScSGIFJBRE9NSVIKK0tSU1RJxIYgUkFET1NBVgorS1JTVEnEhiBSQURPU0xBVgorS1JTVEnEhiBSQURPVkFOCitLUlNUScSGIFJBVEtPCitLUlNUScSGIFJBVEtPCitLUlNUScSGIFNBVkEKK0tSU1RJxIYgU0FWRVRBCitLUlNUScSGIFNJTknFoEEKK0tSU1RJxIYgU0xBVklDQQorS1JTVEnEhiBTTE9CT0RBTgorS1JTVEnEhiBTUsSQQU4KK0tSU1RJxIYgU1JFVEVOCitLUlNUScSGIFNUQU5LTworS1JTVEnEhiBTVEFOT0pFCitLUlNUScSGIFNURVZBTgorS1JTVEnEhiBTVEVWQU4KK0tSU1RJxIYgU1RFVkFOCitLUlNUScSGIFNURVZBTgorS1JTVEnEhiBTVEVWQU4KK0tSU1RJxIYgU1RPSkFOS0EKK0tSU1RJxIYgU1ZFVElTTEFWCitLUlNUScSGIFNWRVRJU0xBVgorS1JTVEnEhiBTVkVUTEFOQQorS1JTVEnEhiBTVkVUTEFOQQorS1JTVEnEhiBTVkVUT1pBUgorS1JTVEnEhiBUSU5LQQorS1JTVEnEhiBVR0xKRcWgQSBEUgorS1JTVEnEhiBWQVNBIERSIExFS0FSCitLUlNUScSGIFZBU0EKK0tSU1RJxIYgVkFTSUxJSkUgRElQTCBJTkcKK0tSU1RJxIYgVkFTSUxJSkUKK0tSU1RJxIYgVkVMSU1JUgorS1JTVEnEhiBWRUxKS08KK0tSU1RJxIYgVkVSQQorS1JTVEnEhiBWRVJBCitLUlNUScSGIFZFU0VMSU4KK0tSU1RJxIYgVkxBREEKK0tSU1RJxIYgVk9KSU4KK0tSU1RJxIYtVlLFvUlOQSBCT1NBTktBCitLUlNUScSGIFZVS0lDQQorS1JTVEnEhiBaT1JBTgorS1JTVEnEhiBaT1JBTgorS1JTVElOIMW9SVZLQQorS1JTVElOIEJSQU5LTworS1JTVElOIElWQU4KK0tSU1RJTiBKRUxLQQorS1JTVElOIEtPU1RBCitLUlNUSU4gTEFaQVIKK0tSU1RJTiBNTEFERU4KK0tSU1RJTiBOQVRBxaBBCitLUlNUSU4gUEVUQVIKK0tSU1RJTiBTTEFWS08KK0tSU1RJTiBTVEVWQU4KK0tSU1RJTiBTVkVUT1pBUgorS1JTVElOIFZFUkEKK0tSU1RJTiBWTEFEQU4KK0tSU1RJTiBaT1JBTgorS1JTVElOScSGIERSQUdBTgorS1JTVE9OT8WgScSGIMW9SVZBTgorS1JTVE9OT8WgScSGIEJPU0lMSktBCitLUlNUT05PxaBJxIYgSkVMRU5BCitLUlNUT05PxaBJxIYgSk9WQU4KK0tSU1RPTk/FoEnEhiBMSlVCSUNBCitLUlNUT05PxaBJxIYgTUlMQU5LQQorS1JTVE9OT8WgScSGIE1JTEVOS08KK0tSU1RPTk/FoEnEhiBNSUxFTktPCitLUlNUT05PxaBJxIYgTUlST1NMQVYKK0tSU1RPTk/FoEnEhiBOQURBCitLUlNUT05PxaBJxIYgTkVTVE9SCitLUlNUT05PxaBJxIYgUEVUQVIKK0tSU1RPTk/FoEnEhiBQRVRBUgorS1JTVE9OT8WgScSGIFNURVZBTgorS1JTVE9OT8WgScSGIFZFUkEKK0tSU1RPTk/FoEnEhiBWSURBCitLUlNUT05PxaBJxIYgWkxBVEEgRFIKK0tSU1RPTk/FoEnEhiBaT1JBCitLUlNUT1ZTS0kgUkFET0pLQQorS1JURU5JxIYgQlJBTktPCitLUlRFTknEhiBET0JSSUxBCitLUlRFTknEhiBQQVZMRQorS1JUSU5JxIYgQk9SQQorS1JUSU5JxIYgREFORQorS1JUSU5JxIYgREFORQorS1JUSU5JxIYgTUlSSkFOQQorS1JUSU5JxIYgTUlSS08KK0tSVElOScSGIE1JUk9TTEFWCitLUlRJTknEhiBOQURBCitLUlRJTknEhiBTQVZBCitLUlRJTknEhiBTTUlMSkFOQQorS1JUSU5JxIYgVkxBRElNSVIKK0tSVcSMScSMQU4gTUlMQU4KK0tSVcWgS0EgxJBPUsSQRQorS1JVxaBLQSBTVEVWQU4KK0tSVcW9RVZJxIYgREVKQU4KK0tSVcW9RVZJxIYgTkVOQUQKK0tSVcW9RVZJxIYgVkxBRElNSVIKK0tSVcW9RVZJxIYgWkRSQVZLTworS1JVxb1FVknEhiBaT1JBTgorS1JVxb1JxIYgQU5BCitLUlVMSiBCUkFOSVNMQVZBCitLUlVMSiBNSUxBTgorS1JVTknEhiDFvUlWQU4KK0tSVU5JxIYgxb1JVk9SQUQKK0tSVU5JxIYgxJBPUsSQRQorS1JVTknEhiDEkE9SxJBFCitLUlVOScSGIMSQT1LEkEUKK0tSVU5JxIYtQkVMScSGIE1JTEFOQQorS1JVTknEhiBCUkFOS08KK0tSVU5JxIYgQlJBTktPCitLUlVOScSGIEJSQU5LTworS1JVTknEhiBEQVJBCitLUlVOScSGIERSQUdPTEpVQgorS1JVTknEhiBEUkFHT01JUgorS1JVTknEhiBHUkFESU1JUgorS1JVTknEhiBJTElKQQorS1JVTknEhiBJTE9OS0EKK0tSVU5JxIYgSkVMRU5BCitLUlVOScSGIExKVUJJxaBBCitLUlVOScSGIExKVUJJQ0EKK0tSVU5JxIYgTEpVQk9NSVIKK0tSVU5JxIYgTUnEhk8KK0tSVU5JxIYgTUlLQQorS1JVTknEhiBNSUxBTktBCitLUlVOScSGIE1JTEFOCitLUlVOScSGIE1JTE/FoAorS1JVTknEhiBOT1ZBSworS1JVTknEhiBQQVZMRQorS1JVTknEhiBQRVJJxaBBCitLUlVOScSGIFBMRU1FTktBCitLUlVOScSGIFJBRE9KS0EKK0tSVU5JxIYgU0xPQk9EQU4KK0tSVU5JxIYgU09GSUpBCitLUlVOScSGIFRPxaBJQ0EKK0tSVU5JxIYgVVJPxaAKK0tSVU5JxIYgVkVMScSMS08KK0tSVU5JxIYgVkVSSUNBCitLUlVOScSGIFpEUkFWS08KK0tSVVBFxb1FVknEhiBEQVJJTktBCitLUlVQRcW9RVZJxIYgUFJWT1NMQVYKK0tSVVBMSkFOSU4gU1RBTkEKK0tSVVBMSkFOSU4gVkVTRUxBCitLUlVUQSBCT8W9QU5BCitLUlVUQSBEUkFHQU4KK0tSVkFWQUMgQklTRVJLQQorS1JWQVZJQ0EgRFJBxb1FTgorS1JWQVZJQ0EgVE9NSVNMQVYKK0tSVk9QScSGIE9MR0EKK0tSWk1BTk9WScSGIE1BUkdBUkVUQQorS1JaTkFSScSGIE1JTEUKK0tSWk5BUknEhiBWQUxFTlRJTkEKK0tVxIwgU0xPQk9EQU4KK0tVxIxFUkEgQUxFS1NBTkRBUgorS1XEjEVSQSBTVEVWQU4KK0tVxIxJxIYgTklLT0xBCitLVcSMTUHFoCBJUkVOQQorS1XEjE1BxaAgTkFUQcWgQQorS1XEjE1BxaAgTklLT0xBCitLVcSMTkVSIExBRElTTEFWCitLVcWgQUtPVknEhiBTTUlMSkEKK0tVxaBMScSGIE1JTEFOCitLVcWgTEpBTiBTTEFWS08KK0tVxaBMSknEhiBCT1JJU0xBVgorS1XFoExKScSGIEJPUklTTEFWCitLVcWgTEpJxIYgQk9SSVMKK0tVxIYgU1RBTktBCitLVcW9QVRLTyBBTklDQQorS1XFvUFUS08gRU1JTAorS1XFvUFUS08gTUFSVEEKK0tVxb1BVEtPIFZMQURJTUlSCitLVcW9RUxLQSBTSU1BCitLVcW9RVRJTiBCT8W9QQorS1XFvUVUSU4gSkVMSVNBVkVUQQorS1XFvUVUSU4gTUFSQQorS1XFvUVUSU4gTUlMQU4KK0tVxb1FVElOIE5PVkFLCitLVcW9RVZTS0kgTUlMSVZPSkUKK0tVxb1JxIYgRFJBR1VUSU4KK0tVxb1JxIYgTUxBREVOCitLVcW9ScSGIE1MQURFTgorS1XFvUnEhiBQRVRBUgorS1VCQU5KSSBBTkEKK0tVQkFOT1ZJIFpMQVRLTworS1VCQVQgTUlMQU4gRElQTCBJTkcKK0tVQkFUIFVST8WgCitLVUJBVE9WScSGIEFOQQorS1VCQVRPVknEhiBJTElKQQorS1VCRcSMS0EgTUlMQU4KK0tVQkVUIE1JTEFOCitLVUJJxIxFTEEgUEVUQVIKK0tVQknEjEtPIEZFUkVOQworS1VCSUNBIFNUSkVQQU4KK0tVQklDQSBWRVJBCitLVUJJSyBGUkFOQ0nFoEtBCitLVUJJTkpFQyBKT1NJUAorS1VCVVJJxIYgTUnEhk8KK0tVQlVSScSGIE5PVktBCitLVUJVUknEhiBTVkVUT1pBUgorS1VDVUxPVknEhiBEQU5JQ0EKK0tVQ1VMT1ZJxIYgVk9KSVNMQVYKK0tVQ1VSQUMgRElNSVRSSUpFCitLVUNVUkFDIE1BUkEKK0tVQ1VSQUMgTkFERcW9REEKK0tVQ1VSQUMgU1RFVkFOCitLVUNVUlNLSSDEkFVSSUNBCitLVUNVUlNLSSBEUkFHT01JUgorS1VDVVJTS0kgUkFESVNMQVYKK0tVREnEhiBNSUxPU0FWQQorS1VEScSGIFNURVZBCitLVURSQSBEQU5JSkVMQQorS1VEUkEgT0xHQQorS1VEUkEtWklLT1ZJxIYgTEpVQklDQQorS1VEUknEhiBERVNJTUlSCitLVUdBIEpPVkFOCitLVUdJxIYgSUxJSkEKK0tVR0nEhiBSQURNSUxBCitLVUdJxIYgU0FWS0EKK0tVR0xJIElNUkUKK0tVR0xJIEpPU0lQCitLVUdMSSBNSUhBSkxPCitLVUdMSSBNSUhBTEoKK0tVR0xJIFBBVkFPCitLVUdMSSBST8W9SUtBCitLVUdMSSBTVEVWQU4KK0tVSEFKREEgxaBBTkRPUgorS1VIQUpEQSBLU0VOSUpBIE1SCitLVUhBSkRBIFZMQURJTUlSIE1SCitLVUhBSkRBIFpMQVRBCitLVUhBUiBKRUxFTkEKK0tVSEFSIEpPVkFOCitLVUhBUiBTTEFWSUNBCitLVUpBxIxJxIYgRFJBR0FOCitLVUpPVknEhiBORURBCitLVUpPVknEhiBTT0ZJSkEKK0tVSlVORMW9ScSGIExVSlpBCitLVUpVTkTFvUnEhiBNSU9EUkFHCitLVUpVTkTFvUnEhiBUT01BTklKQQorS1VKVU5Exb1JxIYgVkVSQQorS1VLQVZJQ0EgSk9SREFOCitLVUtBVklDQSBNSVJLTworS1VLQVZJQ0EgUlXFvUlDQQorS1VLQVZTS0kgUEFWTEUKK0tVS0nEhiDFvUFSS08KK0tVS0nEhiBCUkFOS0EKK0tVS0nEhiBEUkFHQU4KK0tVS0nEhiBHT0pLTworS1VLScSGIEdPUkRBTkEKK0tVS0nEhiBKRUxJQ0EKK0tVS0nEhiBKRUxLQQorS1VLScSGIE1JTEFOCitLVUtJxIYgTUlMT0pLQQorS1VLScSGIE1JUkpBTkEKK0tVS0nEhiBNSVJLTworS1VLScSGIE5FQk9KxaBBCitLVUtJxIYgTklLT0xBCitLVUtJxIYgUEVUQVIKK0tVS0nEhiBTTE9CT0RBTgorS1VLScSGIFNURVZBTgorS1VLScSGIFNWRVRPWkFSCitLVUtJxIYgVkVSQQorS1VLScSGIFZMQURJTUlSCitLVUtJxIYgWk9SQU4KK0tVS0nEhiBaT1JBTgorS1VLScSGIFpWT05JTUlSCitLVUtJTiDFvUlWQU4KK0tVS0lOIEFMRUtTQU5EQVIKK0tVS0lOIERFSkFOCitLVUtJTiBTTUlMSktBCitLVUtMQSBJVkFOCitLVUtPxIwgVklOS08KK0tVS09CQVQgUkFET1ZBTgorS1VLT0xKIERBTkUKK0tVS09MSiBEUkFHQU4KK0tVS09MSiBEVcWgS08KK0tVS09MSiBNSUxLQQorS1VLT0xKIE1JUkpBTkEKK0tVS09MSiBSQURNSUxBCitLVUtPTEogUkFKS08KK0tVS09WU0tJIEpPVkFOCitLVUtSSUtBIEJPxaBLTworS1VLVcSMS0EgSkFOCitLVUtVxIxLQSBNSUhBSkxPCitLVUtVTEogRE9CUklMQQorS1VLVVJPViBKT1NJRgorS1VLVVJVWk9WScSGIEpFTEVOQQorS1VLVVJVWk9WScSGIFZMQURJTUlSCitLVUzEjEFSIEnFoFRWQU4KK0tVTEHEjEFOSU4gQU5JQ0EKK0tVTEHEjEFOSU4gQlJBTklTTEFWCitLVUxBxIxBTklOIE1JTEVOS08KK0tVTEHEjEFOSU4gTkFEQQorS1VMQcSMScSGIFpWT05JTUlSCitLVUxBxIxJTiDEkFVSTworS1VMQcSMSU4gQlVESU1LQQorS1VMQcSMSU4gRFXFoEFOCitLVUxBxIxJTiBTTEFWS08KK0tVTEHEjEtJIE1JVEFSCitLVUxBxaAgTUFSS08KK0tVTEHFoCBTTE9CT0RBTgorS1VMQcWgRVZJxIYgWkxBVEEKK0tVTEHFoElOT1ZJxIYgQU7EkEVMS0EKK0tVTEHFoElOT1ZJxIYgREFOSUNBCitLVUxBxaBJTk9WScSGIERVxaBJQ0EKK0tVTEHFoElOT1ZJxIYgTUlMQU4KK0tVTEHFoElOT1ZJxIYgTUlMSVZPSgorS1VMQVVaT1YgQVJLQURJSkUKK0tVTEFVWk9WIEpPVkFOS0EKK0tVTEFVWk9WIE1JTEVOS08gRFIKK0tVTEXFoEVWScSGIE9MSVZFUkEKK0tVTEXFoEVWScSGIFBFVEFSCitLVUxFxaBLTyBEUkFHT1NMQVZBCitLVUxFTk9WScSGIEFITUVECitLVUxFTk9WScSGIFpPUkFOCitLVUxFVlNLSSBLQVRJQ0EKK0tVTEVWU0tJIFJPxb1BCitLVUxFVlNLSSBST8W9QQorS1VMScWgScSGIE5FREEKK0tVTEnFoEnEhiBPTEdBCitLVUxJxaBJxIYgU0xBVk9MSlVCCitLVUxJxIYgREFSSU5LQQorS1VMScSGIEpPVkFOCitLVUxJxIYgSk9WTworS1VMScSGIExBWkFSCitLVUxJxIYgTkVCT0rFoEEKK0tVTEnEhiBSQURJVk9KCitLVUxJxIYgVkxBRElNSVIKK0tVTElExb1BTiBEUkFHVVRJTgorS1VMSUTFvUFOIE5FTUFOSkEKK0tVTElExb1BTiBWQVNPIERSCitLVUxKQcSMQSBJTElKQQorS1VMSkHEjEEgUEVUQVIKK0tVTEpBSyBNQVJJSkEKK0tVTEpBTsSMScSGIERVxaBBTgorS1VMSkFOxIxJxIYgSlVMS0EKK0tVTEpBTsSMScSGIE1JTEVOQQorS1VMSkFOxIxJxIYgTklLT0xBCitLVUxKQU7EjEnEhiBTQVZPCitLVUxKQU7EjEnEhiBWRVJBCitLVUxKQU5JTiBKQUtPVgorS1VMSkFOS0nEhiBNVVJBRElGCitLVUxKQU5TS0kgT0xHQQorS1VMSkFOU0tJIFNMQVZLTworS1VMSknFoCBTTE9CT0RBTgorS1VMSknEhiBCSVNFUktBCitLVUxKScSGIERSQUdPU0xBVgorS1VMSknEhiBMQVpBUgorS1VMSknEhiBMSlVCT01JUgorS1VMSknEhiBNSVJKQU5BCitLVUxKScSGIE5FREVMSktPCitLVUxKScSGIE5JS09MQQorS1VMSknEhiBQRVRBUgorS1VMSknEhiBTQVZPCitLVUxKScSGLVNNVcSQQSBNQUdEQUxFTkEKK0tVTEpJxIYgWkRSQVZLTworS1VMS0EgR1JFVEEKK0tVTFBJTsSMRVZJxIYgxJBPUsSQRQorS1VMUElOxIxFVknEhiBKT1ZPCitLVUxQSU5TS0kgRFXFoEFOCitLVUxQSU5TS0kgTUlSSkFOQQorS1VMUElOU0tJIFNURVZBTgorS1VMUElOU0tJIFZVSkFESU4KK0tVTUFOT1Ygxb1JVkFOCitLVU1BTk9WIEJPxb1JREFSCitLVU1BTk9WScSGIE1JT0RSQUcKK0tVTUFaRUMgTEFaQQorS1VNT1ZJxIYgQlJBTktBCitLVU1PVknEhiBNSUxJQ0EKK0tVTU9WScSGIFNBVk8KK0tVTiDEkFVSQQorS1VOIEFMRUtTQU5EQVIKK0tVTiBCRUxBCitLVU4gREFOSUNBCitLVU4gRURJVEEKK0tVTiBFUk5FCitLVU4gTEFTTE8KK0tVTiBTVEVWQU4KK0tVTsSMQUtPVkEgTUFSSUpBCitLVU5BUkFDIEFOSUVMQQorS1VOREHEjElOQSBKT1ZPCitLVU5EQcSMSU5BIFJBRE9WQU4KK0tVTkRBxIxJTkEgU0FWTworS1VOScSGIMSQT1LEkEUKK0tVTknEhiBHT1JEQU5BCitLVU5JxIYgVkVTRUxJTktBCitLVU5PU0nEhiBORUTFvUFECitLVU5PU0nEhiBPU01BTgorS1VOT1ZBQyBMSlVCTworS1VOU1QgSVJFTgorS1VOU1RNQU4gQU5BU1RBU0lKQQorS1VQRUsgxb1FTEpLQQorS1VQRUsgWk9SSUNBCitLVVBJUk9WScSGIFNPRklKQQorS1VQUkXFoEFLIERBTklMTworS1VQUkXFoEFLIFZJREEKK0tVUFJFxaBBTklOIEJJTEpBTkEKK0tVUFJFxaBBTklOIElMSUpBCitLVVBSRcWgQU5JTiBNSUxFIERJUEwgSU5HCitLVVBSRcWgS0kgSk9DQQorS1VQUkXFoEtJIFZFUkEKK0tVUFVTQVJFVknEhiBCUkFOSVNMQVYKK0tVUFVTSU5BQyBCUkFOSVNMQVYKK0tVUFVTSU5BQyBWRUxKS08KK0tVUsSMVUJJxIYgRFJBR0nEhgorS1VSxIxVQknEhiBNRUxBTklKQQorS1VSxaBVTU9WScSGIEFWRFVMQUgKK0tVUkFKScSGIEpPVkFOCitLVVJBTiBJVkFOCitLVVJBTkpJIEpBTgorS1VSQU5KSSBKQU4KK0tVUkJBTElKQSDEkE9SxJBFCitLVVJCQUxJSkEgREFOSUNBCitLVVJCQUxJSkEgSk9WQU4KK0tVUkJBTElKQSBMQVpBUgorS1VSQkFMSUpBIE1JUkpBTkEKK0tVUkJBVEZJTlNLSSBGRcSQQSBESVBMIElORworS1VSQkFURklOU0tJIElWQU4KK0tVUkJBVEZJTlNLSSBTTEFWS08KK0tVUkJBVEZJTlNLSSBWTEFESU1JUgorS1VSQkFUVklOU0tJIERJTkEKK0tVUkJBVFZJTlNLSSBJVkFOCitLVVJCQVRWSU5TS0kgU1RFVkFOCitLVVJCQVRWSU5TS0kgWk9SQQorS1VSQ0lOQUsgRU1JTAorS1VSQ0lOQUsgSU1SRQorS1VSQ0lOQUsgSk9TSVAKK0tVUkNJTkFLIExBSk/FoAorS1VSQ0lOQUsgUEFWTEUKK0tVUkNJTkFLIFNURVZBTgorS1VSQ0lOQUsgVkVTTkEKK0tVUkRJIEFNQUxJSkEKK0tVUkRPVlNLSSBNSVRBUgorS1VSRFVMScSGIE1JTE/FoAorS1VSRcWgRVZJxIYgUkFDS08KK0tVUkXFoEVWScSGIFNBVk8KK0tVUkVLQcWgIE1JVEFSCitLVVJFUEEgVkFTQQorS1VSScWgIMWgVEVGQU4KK0tVUklExb1BIEJPR0RBTgorS1VSSUTFvUEgRFXFoEFOCitLVVJJSiBUT01JU0xBVgorS1VSSUpBIFZFTEpLTworS1VSSUvFoEEgQU5UT05JTkEKK0tVUklMQSBKQU5PxaAKK0tVUklMScSGIEpPVk8KK0tVUklMScSGIE1JTEFOCitLVVJJTEnEhiBNSUxPxaAKK0tVUklMScSGIE1JUk9TTEFWCitLVVJJTiDEkE9SxJBFCitLVVJJTiBKT1NJUAorS1VSSkHEjEtJIMW9SVZLTworS1VSSkHEjEtJIMSQT1LEkEUKK0tVUkpBxIxLSSDEkFVSxJBJTkEKK0tVUkpBxIxLSSBBTktJQ0EKK0tVUkpBxIxLSSBEQU5JQ0EKK0tVUkpBxIxLSSBKT1ZBTgorS1VSSkHEjEtJIE1JSEFKTE8KK0tVUkpBxIxLSSBNSUxBTgorS1VSSkHEjEtJIE1JTEVWQQorS1VSSkHEjEtJIE1JTEVWQQorS1VSSkHEjEtJIE1JTElDQQorS1VSSkHEjEtJIE1JTElWT0oKK0tVUkpBxIxLSSBNSU9EUkFHCitLVVJKQcSMS0kgTUlSSkFOQQorS1VSSkHEjEtJIE1JUkpBTkEKK0tVUkpBxIxLSSBTUkVET0pFCitLVVJKQcSMS0kgU1RBTktPCitLVVJKQcSMS0kgU1RFVkFOCitLVVJKQcSMS0kgU1ZFVE9aQVIKK0tVUkpBxIxLSSBaT1JBCitLVVJKQUtPViDEkE9SxJBFCitLVVJKQUtPViBEQU5JTE8KK0tVUkpBS09WIERSQUdBTgorS1VSSkFLT1YgTUlMQU4KK0tVUkpBS09WIE1JTElWT0oKK0tVUkpBS09WIFJPS1NBTkRBCitLVVJKQUtPViBWSUtUT1JJSkEKK0tVUlMgxJBPUsSQRQorS1VSVEEgQVpJUworS1VSVEXFoCBKQVNOQQorS1VSVEXFoCBMQVpBUgorS1VSVEXFoCBNQVJBCitLVVJURcWgIFNWRVRLTworS1VSVEXFoEkgRlVBVAorS1VSVEXFoEkgTlVTUkVUCitLVVJURcWgSSBaRU5VTgorS1VSVEkgTVVTVEFGQQorS1VSVEkgTkVaSVIKK0tVUlRJxaBFVknEhiBOQVNVRgorS1VSVEnEhiBBTEVLU0FOREFSCitLVVJUScSGIEJSQU5JU0xBVkEKK0tVUlRJxIYgTUlMT1ZBTgorS1VSVElOT1ZJxIYgUFJFRFJBRworS1VSVE9WScSGIEFOQQorS1VSVE9WScSGIElWQU4KK0tVUlRVxaBJxIYgSVZBTktBCitLVVJVxIxFViBNQVJJSkEKK0tVUlXEjEVWIE1JUkpBTkEKK0tVUlXEjEVWIFNMT0JPREFOCitLVVJVxIxLSSBLQU1FTktPCitLVVJVxIxLSSBWTEFESU1JUgorS1VSVcSMS0kgWkxBVElNSVIKK0tVUlXFoEnEhiBCT1JPCitLVVJVQyDEkFVMQQorS1VSVUMgxJBVTEEKK0tVUlVDIElHTkFDCitLVVJVQyBJUkVOQQorS1VSVUMgSkFOT8WgCitLVVJVQyBKT1ZPCitLVVJVQyBMQUpPxaAKK0tVUlVDIExBU0xPCitLVVJVQyBOQU5ET1IKK0tVUlVDIFRJQk9SCitLVVJVQyBWSU5LQQorS1VSVUNBIEJPxb1BCitLVVJVQ0EgSk9WQU4KK0tVUlVDScSGIERSQUdBTgorS1VSVUNJxIYgTEpVQklDQQorS1VSVUNJxIYgU0lOScWgQQorS1VSVUNJxIYgVklUT01JUgorS1VSVUNJTiDFvUlWQU5BCitLVVJVTkNJIEFORFJJSkEKK0tVUlVOQ0kgSk/FvUVGCitLVVJVTkNJIEpPxb1FRgorS1VSVU5DSSBNQVJJSkEKK0tVUlVaT1ZJxIYgVEFUSkFOQQorS1VTScSGIFNSRVRLTworS1VTTEkgRkVSRU5DCitLVVNMSSBHRVpBCitLVVNNVUsgREFSSU5LQQorS1VTVEnEhiBTT0ZJSkEKK0tVU1RVRElKQSBEQU5JQ0EKK0tVU1RVRElKQSBNSVJPU0xBVgorS1VTVFVESUpBIFNMT0JPREFOCitLVVNUVVJJxIYgTklLT0xBCitLVVNUVVJJxIYgU0VMSU1JUgorS1VTVFVSSUNBIEhBU0FOCitLVVNUVVJJQ0EgTkFaSUYKK0tVU1RVUklOIEFOVFVOCitLVVNUVVJJTiBNSVJKQU5BCitLVVNVUk9WScSGIEFOS0lDQQorS1VUSUpFVkFDIExKVUJJQ0EKK0tVVExBxIxBIE1BUktPCitLVVRMRcWgScSGIExKVUJJxaBBCitLVVRMRcWgScSGIExKVUJJxaBBCitLVVRSSSBLQVJMTworS1VUUkkgS0FST0xKCitLVVRSSSBTVEVWQU4KK0tVVFJJxIxLSSBaT1JBTgorS1VUVVpPViBNSUxPUkFECitLVVRVWk9WIE1JUk9TTEFWCitLVVZBTEogU1RFVkFOCitLVVZBTEpBIERSQUdBTgorS1VWQUxKQSBEUkFHT0xKVUIKK0tVVkFMSkEgS0FUSUNBCitLVVZBTEpBIE9TVE9KQQorS1VWRUtBTE9WScSGIFJBRE9TTEFWCitLVVZFS0FMT1ZJxIYgU1RSQUlOCitLVVZFTEpJxIYgxb1BUktPCitLVVZFTEpJxIYgTEpJTEpBTkEKK0tVVkVMSknEhiBSQURJVk9KRQorS1VWRUxKScSGIFJBRE9NQU4KK0tVVklaScSGIMW9SVZPSklOCitLVVZJWknEhiDFvUlWT0pJTgorS1VaRVZTS0kgRFJBR0FOCitLVVpNQU4gQU5LQQorS1VaTUFOIEJPR0RBTgorS1VaTUFOIEJPR0RBTgorS1VaTUFOIEJPUklTTEFWCitLVVpNQU4gRElNSVRSSUpFCitLVVpNQU4gRFJBR0FOCitLVVpNQU4gTUlMQU4KK0tVWk1BTiBNSUxPVkFOCitLVVpNQU4gTUlSS08KK0tVWk1BTiBOQURBCitLVVpNQU4gTkFEQQorS1VaTUFOIE5BREEKK0tVWk1BTiBOQURFxb1EQQorS1VaTUFOIFBFVEFSCitLVVpNQU4gUklTVE8KK0tVWk1BTiBTTEFWSUNBCitLVVpNQU7EjEVWIEFMRUtTQU5EQVIKK0tVWk1BTsSMRVYgRElNSVRSSUpFCitLVVpNQU7EjEVWIERVxaBBTgorS1VaTUFOxIxFViBPTElWRVJBIERSCitLVVpNQU7EjEVWIFRJTU/FoEVOS08KK0tVWk1BTk9WIEJPUklTTEFWCitLVVpNQU5PViBNQVJJSkEKK0tVWk1BTk9WIE9CUkFECitLVVpNQU5PViBPQlJBRAorS1VaTUFOT1YgUkFET8WgIERJUEwgSU5HCitLVVpNQU5PViBSQURPU0xBVgorS1VaTUFOT1YgU0FWQQorS1VaTUFOT1YgU0xBVktPCitLVVpNQU5PViBTVkVUSVNMQVYKK0tVWk1BTk9WIFRBTkFTSUpFCitLVVpNQU5PViBaT1JBTgorS1VaTUFOT1ZJxIYgxIxFRE9NSVIKK0tVWk1BTk9WScSGIMW9SVZPSklOCitLVVpNQU5PVknEhiDEkE9SxJBFCitLVVpNQU5PVknEhiDEkFVSQQorS1VaTUFOT1ZJxIYgQUxFS1NBTkRBUgorS1VaTUFOT1ZJxIYgQU5HRUxJTkEKK0tVWk1BTk9WScSGIEJPxaBLTworS1VaTUFOT1ZJxIYgQk9HREFOCitLVVpNQU5PVknEhiBCT0dEQU4KK0tVWk1BTk9WScSGIEJPUklTTEFWCitLVVpNQU5PVknEhiBCUkFOSVNMQVZBCitLVVpNQU5PVknEhiBCUkFOSVNMQVYKK0tVWk1BTk9WScSGIERBTklDQQorS1VaTUFOT1ZJxIYgREFSSU5LQQorS1VaTUFOT1ZJxIYgREVKQU4KK0tVWk1BTk9WScSGIERSQUdJTkpBCitLVVpNQU5PVknEhiBEUkFHT01JUgorS1VaTUFOT1ZJxIYgRFJBR1VUSU4KK0tVWk1BTk9WScSGIERSQUdVVElOCitLVVpNQU5PVknEhiBEVcWgQU4KK0tVWk1BTk9WScSGIERVxaBBTgorS1VaTUFOT1ZJxIYgRFXFoEFOCitLVVpNQU5PVknEhiBEVcWgS08KK0tVWk1BTk9WScSGIEdPUkFOCitLVVpNQU5PVknEhiBKRUxFTkEKK0tVWk1BTk9WScSGIEpPVkFOCitLVVpNQU5PVknEhiBKT1ZBTgorS1VaTUFOT1ZJxIYgS0FUQQorS1VaTUFOT1ZJxIYgTEFaQVIKK0tVWk1BTk9WScSGIExBWkFSCitLVVpNQU5PVknEhiBMQVpPCitLVVpNQU5PVknEhiBMRU5LQQorS1VaTUFOT1ZJxIYgTEpJTEpBTkEKK0tVWk1BTk9WScSGIExKVUJJxaBBCitLVVpNQU5PVknEhiBMSlVCSUNBCitLVVpNQU5PVknEhiBMSlVCSUNBCitLVVpNQU5PVknEhiBMSlVCSUNBCitLVVpNQU5PVknEhiBMSlVCT01JUgorS1VaTUFOT1ZJxIYgTUlMQU4KK0tVWk1BTk9WScSGIE1JTEFOCitLVVpNQU5PVknEhiBNSUxFTkEKK0tVWk1BTk9WScSGIE1JTEVOS08KK0tVWk1BTk9WScSGIE1JTEUKK0tVWk1BTk9WScSGIE1JTEpPSktPIERJUEwgSU5HCitLVVpNQU5PVknEhiBNSUxPxaAKK0tVWk1BTk9WScSGIE1JTE/FoAorS1VaTUFOT1ZJxIYgTUlMT8WgCitLVVpNQU5PVknEhiBNSUxPxaAKK0tVWk1BTk9WScSGIE1JT0RSQUcKK0tVWk1BTk9WScSGIE1JUkpBTkEKK0tVWk1BTk9WScSGIE1MQURFTgorS1VaTUFOT1ZJxIYgTkFEQQorS1VaTUFOT1ZJxIYgTkFERcW9REEKK0tVWk1BTk9WScSGIE5FTkFECitLVVpNQU5PVknEhiBORVZFTkEKK0tVWk1BTk9WScSGIE5JS09MQQorS1VaTUFOT1ZJxIYgTklLT0xBCitLVVpNQU5PVknEhiBQQUpBCitLVVpNQU5PVknEhiBQRVRBUgorS1VaTUFOT1ZJxIYgUEVUQVIKK0tVWk1BTk9WScSGIFBSRURSQUcKK0tVWk1BTk9WScSGIFJBRElWT0oKK0tVWk1BTk9WScSGIFJBRElWT0oKK0tVWk1BTk9WScSGIFJBRE9KS08KK0tVWk1BTk9WScSGIFJBRE9TQVYKK0tVWk1BTk9WScSGIFJBRE9TTEFWCitLVVpNQU5PVknEhiBSQUpLTworS1VaTUFOT1ZJxIYgU0xBVktPCitLVVpNQU5PVknEhiBTTEFWS08KK0tVWk1BTk9WScSGIFNMT0JPREFOCitLVVpNQU5PVknEhiBTTE9CT0RBTgorS1VaTUFOT1ZJxIYgU0xPQk9EQU4KK0tVWk1BTk9WScSGIFNQT01FTktBCitLVVpNQU5PVknEhiBTVE9KQU4KK0tVWk1BTk9WScSGIFNUT0pBTgorS1VaTUFOT1ZJxIYgVE9ET1IKK0tVWk1BTk9WScSGIFRPRE9SCitLVVpNQU5PVknEhiBWQVNJTElKRQorS1VaTUFOT1ZJxIYgVkFTSUxJSkUKK0tVWk1BTk9WScSGIFZFUkEKK0tVWk1BTk9WScSGIFZFUkEKK0tVWk1BTk9WScSGIFZMQVNUSU1JUgorS1VaTUFOT1ZJxIYgVk9KSVNMQVYKK0tVWk1BTk9WScSGIFpEUkFWS08KK0tVWk1BTk9WScSGIFpPUkFOCitLVVpNQU5PVknEhiBaT1JBCitLVVpNQU5PVlNLSSBCTEFHT0pBCitLVVpNQU5PVlNLSSBDVkVUQQorS1VaTUFOT1ZTS0kgRFXFoEFOCitLVVpNQU5PVlNLSSBNSUxFCitLVVpNQU5PVlNLSSBQRVJFCitLVVpNQU5PVlNLSSBSQURPSktBCitLVVpNQU5PVlNLSSBUQVNFCitLVVpNQU5PVlNLSSBUUkFKxIxFCitLVVpNScSGIE1JTEtBCitLVVpNScSGIFpWT05LTworS1VaTUlOQUMgQk9SSVNMQVYKK0tVWk1JTkFDIEdPUkRBTkEKK0tVWk1JTkFDIFBFVEFSCitLVVpNSU5BQyBQUkVEUkFHCitLVVpNSU5BQyBSQURPU0xBVgorS1ZBxaDEjEVWIEpPVkFOCitLVkHFoMSMRVYgTUlSQQorS1ZBxaDEjEVWIFJBRElWT0oKK0tWQUnEhiDEkE9SxJBFCitLVkFJxIYgRFXFoEFOCitLVkFJxIYgSkVMRU5BCitLVkFJxIYgTUlMRVZBCitLVlJHScSGIEJPxaBLTworS1ZSR0nEhiBNSUxBTgorS1ZSR0nEhiBQRVRBUgorS1ZSR0nEhiBSQURPVkFOCitLVlJHScSGIFNBVk8KK0tWUkdJxIYgVE9NSVNMQVYKK0xBxIxBTlNLSSBERVNBTktBCitMQcSMT0sgS0FSTE8KK0xBxIxPSyBLQVJPTEoKK0xBxaBLT1YgSUdPUiBESVBMIElORworTEHEhkFLIMSQVVJBCitMQcSGQUsgTUlIQUxKCitMQcSGQU5TS0kgVk9KSVNMQVYKK0xBxIZBUkFDIMW9QVJLTworTEHEhkFSQUMgQklMSkFOQQorTEHEhkFSQUMgQk9SSVNMQVYKK0xBxIZBUkFDIERPQlJJVk9KRQorTEHEhkFSQUMgSk9WQU4KK0xBxIZBUkFDIE1BS1NJTQorTEHEhkFSQUMgTklLT0xBCitMQcSGQVJBQyBOSUtPTEEKK0xBxIZBUkFDIE5JS09MQQorTEHEhkFSQUMgVEVPRE9SCitMQcSGQVJBQyBWRVJBCitMQcSGQVJBSyDFvUFSS08KK0xBxIZBUkFLIExBWkFSCitMQcSGQVJBSyBMQVpBCitMQcSGQVJBSyBNSUxPxaAKK0xBxIZBUkFLIE1MQURFTgorTEHEhkFSQUsgT0dOSkFOS0EKK0xBxb1FR0nEhiBORVZFTktBCitMQcW9RVRJxIYgQUxFS1NBTkRBUgorTEHFvUVUScSGIE1BUklKQSBEUgorTEHEkEVWQUMgRFXFoEFOCitMQcSQRVZJxIYgRFJBR0FOCitMQcSQRVZJxIYgR09KS08KK0xBxJBFVknEhiBKT1ZBTgorTEHEkElOT1ZJxIYgxb1JS0EKK0xBxJBJTk9WScSGIFpMQVRLTworTEFCQcWgIElWQU4KK0xBQkFESSBKT8W9RUYKK0xBQkFOIEpVTEtBCitMQUJBTiBNSVJLTworTEFCQVQgQU5BCitMQUJBVCBBTktBCitMQUJBVCBKQU4KK0xBQkFUIEtWRVRPU0xBVkEKK0xBQkFUIFJVxb1FTkEKK0xBQkFUIFNURVZBTgorTEFCQVQgVkVSQQorTEFCQVQgVkxBRElNSVIKK0xBQkFUIFZMQURJU0xBVgorTEFCQVZJxIYgSVZBTgorTEFCT1ZJxIYgQk/FvUlEQVIKK0xBQk9WScSGIE1BTk9KTE8KK0xBQlJPVknEhiBNSVJLTworTEFCVURPVknEhiBCT1JJUworTEFCVURPVknEhiBIRUxFTkEKK0xBQlVET1ZJxIYgUk9aQUxJSkEKK0xBQlVET1ZJxIYgVkxBRElNSVIKK0xBQlVTIMSQVVJPCitMQUJVUyBCT8W9SURBUgorTEFCVVMgQlJBTktPCitMQUJVUyBJTElKQQorTEFCVVMgSk9WQU4KK0xBQlVTIExKVUJPTUlSCitMQUJVUyBNQUtFRE9OS0EKK0xBQlVTIE1JTEFOCitMQUJVUyBNSUxBTgorTEFCVVMgTUlMQU4KK0xBQlVTIE1JTEFOCitMQUJVUyBNSUxFCitMQUJVUyBOSUtPTEEKK0xBQlVTIFNMQVZLTworTEFDSUsgSkFOT8WgCitMQUNJSyBTTEFWSUNBCitMQUNLTyBNSUhBSkxPCitMQUNLT1ZJxIYgRFJBR0nFoEEKK0xBQ0tPVknEhiBKT1NJUAorTEFDS09WScSGIFJBREUKK0xBQ0tPVknEhiBSQURPVkFOCitMQUNLT1ZJxIYgU09GSUpBCitMQUNLT1ZJxIYgU1RBTklNSVIKK0xBQ0tPVknEhiBaTEFUS08KK0xBQ0tPVknEhiBaT1JBTgorTEFDTUFOT1ZJxIYgTUlPRFJBRworTEFDTUFOT1ZJxIYgU0xBVk9KS0EKK0xBREFSIE1JTE/FoAorTEFEQVIgU1RFVkFOCitMQURJIEnFoFRWQU4KK0xBREkgTEFKT8WgCitMQURJIE1BUklKQQorTEFEScWgScSGIEFOVE9OCitMQURJxaBJxIYgR1VTVEFWCitMQURJxaBJxIYgSkVMSVNBVkVUQQorTEFEScWgScSGIEpPU0lQCitMQURJxaBJxIYgTUlSS08KK0xBREnFoEnEhiBOSUtPTEEKK0xBREnFoEnEhiBTVEVWQU4KK0xBRElLIMWgQU5ET1IKK0xBRElLIEZFUkVOQworTEFESUsgS0FUQUxJTgorTEFESUsgS0FUQUxJTgorTEFESUsgTUFSR0lUQQorTEFESUsgTUlSSkFOQQorTEFESUtBIEJMQcW9CitMQURPQ0tJIEFORFJJSkEKK0xBRE9MRcW9IEVSxb1FQkVUCitMQURPTEXFvSBNSUxBRElOCitMQUdVTUTFvUlKQSBIQU1JRAorTEFHVU1Exb1JSkEgTUlMRU5BCitMQUdVTkTFvUlOIERSQUdBTgorTEFHVU5Exb1JTiBEUkFHQU4KK0xBR1VORMW9SU4gRFJBR0FOCitMQUdVTkTFvUlOIFNWRVRPWkFSCitMQUdVTkTFvUlOIFpPUkFOCitMQUhBUk5BUiBMVUNJSkEKK0xBSE/FoCDEkE9SxJBFCitMQUhPxaAgQU5EUklKQQorTEFIT8WgIEnFoFRWQU4KK0xBSU5PVknEhiBBTEVLU0EKK0xBSU5PVknEhiBCT1JJU0xBVgorTEFJTk9WScSGIFJBTktPCitMQUrFoEnEhiBTVEVWQU4KK0xBSsWgScSGIFpPUktBCitMQUpIIE1BUklKQQorTEFKSFRORVIgQU5UQUwKK0xBSkhUTkVSIEZSQU5KQQorTEFKSFRORVIgTklLT0xBIERJUEwgSU5HCitMQUpJxIYgxaBURUZLQQorTEFKScSGIEJSQU5LTworTEFKScSGIERSQUdBTgorTEFKScSGIERSQUdPTEpVQgorTEFKScSGIExKSUxKQU5BCitMQUpJxIYgTUlSS08KK0xBSknEhiBSQUpLTworTEFKScSGIFNUQU5BCitMQUpJxIYgWkRSQVZLTworTEFKS08gxaBBTkRPUgorTEFKS08gSk9TSVAKK0xBSktPIExBSk/FoCBESVBMIElORworTEFKS08gTUFSSUpBCitMQUpLTyBTVEVWQU4KK0xBSktPIFZFUkEKK0xBSk/FoCBMQVNMTworTEFKVEVSIEVMWkEKK0xBSlRFUiBHSVpFTEEKK0xBSlRFUiBJVkFOCitMQUpUSUggU0lHRlJJRAorTEFLQVRPxaAgQU1BTElKQQorTEFLQVRPxaAgQU5BCitMQUtBVE/FoCBBTkRSQcWgCitMQUtBVE/FoCBEUkFHSUNBCitMQUtBVE/FoCBHSVpBCitMQUtBVE/FoCBJTVJFCitMQUtBVE/FoCBJTVJFCitMQUtBVE/FoCBJTVJFCitMQUtBVE/FoCBKQVNNSU5LQQorTEFLQVRPxaAgSkVMRU5BCitMQUtBVE/FoCBMQUpPxaAKK0xBS0FUT8WgIE1JSEFKTE8KK0xBS0FUT8WgIE1JTElDQQorTEFLQVRPxaAgTkFEQQorTEFLQVRPxaAgUEFWTEUKK0xBS0FUT8WgIFNURVZBTgorTEFLQVRPxaAgVElCT1IKK0xBS0FUT8WgIFZFUkEKK0xBS0FUT8WgIFZJTE1PxaAKK0xBS0FUT8WgIFpPTFRBTgorTEFLQVRPxaAgWk9MVEFOCitMQUtBVFXFoCBCUkFOSVNMQVYKK0xBS0VUQSBCT8W9TworTEFLRVRJxIYgTEpVQk9NSVIKK0xBS0VUScSGIE1JTEFOCitMQUtFVEnEhiBNSUxJVk9KCitMQUtJxIxFVknEhiBOQURBCitMQUtJxIxFVknEhi1TVE9KQcSMScSGIFNORcW9QU5BCitMQUtJxIYgQU7EkEEKK0xBS0nEhiBBTsSQRUxLQQorTEFLScSGIEJPR09TQVYKK0xBS0nEhiBCUkFOS08gRFIgTEVLQVIKK0xBS0nEhiBCUkFOS08KK0xBS0nEhiBCUkFOS08KK0xBS0nEhiBEQU5JTE8KK0xBS0nEhiBJTElKQQorTEFLScSGIEpPTEFOCitMQUtJxIYgTUFSS08KK0xBS0nEhiBNSVJBCitMQUtJxIYgTUlSSkFOQQorTEFLScSGIE1MQURFTgorTEFLScSGIE1PTUlSCitMQUtJxIYgTklLT0xBCitMQUtJxIYgUkFESVZPSkUKK0xBS0nEhiBSQURJVk9KCitMQUtJxIYgUkFESVZPSgorTEFLScSGIFJBRE1JTEEKK0xBS0nEhiBSQUpLTworTEFLScSGIFNBVkEgRFIKK0xBS0nEhiBTTE9CT0RBTgorTEFLScSGIFNNSUxKQQorTEFLScSGIFNQQVNPSkUKK0xBS0nEhiBTUsSQQU4KK0xBS0nEhiBTUsSQQU4KK0xBS0nEhiBTUsSQQU4KK0xBS0nEhiBTVEVWQU4KK0xBS0nEhiBTVkVUSVNMQVYKK0xBS0nEhiBUT01JU0xBVgorTEFLScSGIFZFTElNSVIKK0xBS0nEhiBWRVNOQQorTEFLScSGIFZVxIxFVEEKK0xBS0nEhiBaT1JJQ0EKK0xBS0nEhkVWScSGIE1JTElKQQorTEFLScSGRVZJxIYgU1ZFVExBTkEKK0xBS0nEhkVWScSGIFZBU08KK0xBS0nEhkVWScSGIFZFU05BCitMQUtJxIZFVknEhiBWVUtTQU4gRFIKK0xBS0xJSkEgU1RFVkFOCitMQUtPIE1BUklKQQorTEFLT0JSSUpBIERSQUdBTgorTEFLT0JSSUpBIERVxaBBTgorTEFLT0JSSUpBIElMSUpBCitMQUtPQlJJSkEgSkVMRU5BCitMQUtPQlJJSkEgTUlMQU4KK0xBS09CUklKQSBNSUxBTgorTEFLT0JSSUpBIE1JTE/FoAorTEFLT0JSSUpBIE1JTE/FoAorTEFLT0JSSUpBIE5JS09MQQorTEFLT1ZJxIYgQlVESU1JUgorTEFLT1ZJxIYgRFXFoEtPCitMQUtPVknEhiBNSUxJxIYKK0xBS09WScSGIE1JTE9SQUQKK0xBS09WScSGIFBFVEFSCitMQUtPVknEhiBST1pBTElKQQorTEFLT1ZJxIYgVkFTSUxKS0EKK0xBTEFUT1ZJxIYgREVTQU5LQQorTEFMQVRPVknEhiBEUkFHVVRJTgorTEFMQVRPVknEhiBTTE9CT0RBTktBCitMQUxBVE9WScSGIFZBU0lMSUpFCitMQUxJxIxJxIYgVkVMSU1JUgorTEFMScSGIMW9SVZBCitMQUxJxIYgxJBPUsSQRQorTEFMScSGIEFOS0lDQQorTEFMScSGIEFSS0FESUpFCitMQUxJxIYgQk9HREFOCitMQUxJxIYgR0xJR09SSUpFCitMQUxJxIYgR09KS08KK0xBTEnEhiBHT1JEQU5BCitMQUxJxIYgSUtPTklKQQorTEFMScSGIEpBR09EQQorTEFMScSGIEpVTElKQU5BCitMQUxJxIYgSlVMS0EKK0xBTEnEhiBMSlVCT01JUgorTEFMScSGIE1BUklKQQorTEFMScSGIE1JTEFESU5LQQorTEFMScSGIE1JTEFOCitMQUxJxIYgTUlMSUNBCitMQUxJxIYgTUlSS08KK0xBTEnEhiBORU5BRAorTEFMScSGIE5JS09MQQorTEFMScSGIFJBRE9NSVIgRFIKK0xBTEnEhiBTUkVET0pFCitMQUxJxIYgVEFNQVJBCitMQUxJxIYgVE9ET1IKK0xBTEnEhiBVR0xKRcWgQQorTEFMScSGIFZBU0lMSUpFCitMQUxJTiBBTEVLU0FOREFSCitMQUxJTiBNSUxBTgorTEFMT8WgRVZJxIYgQUxFS1NBTkRBUgorTEFMT8WgRVZJxIYgQUxFS1NBTkRBUgorTEFMT8WgRVZJxIYgRElNSVRSSUpFCitMQUxPxaBFVknEhiBEVcWgQU4KK0xBTE/FoEVWScSGIERVxaBLTworTEFMT8WgRVZJxIYgRkVNS0EKK0xBTE/FoEVWScSGIEpFTElTQVZFVEEKK0xBTE/FoEVWScSGIEpPVkFOCitMQUxPxaBFVknEhiBLQVRJQ0EKK0xBTE/FoEVWScSGIExBWkFSCitMQUxPxaBFVknEhiBNQVJBCitMQUxPxaBFVknEhiBNSUtBCitMQUxPxaBFVknEhiBTVEVWQU4KK0xBTE/FoEVWScSGIFNURVZBCitMQUxPxaBFVknEhiBWQVNBCitMQUxPxaBFVknEhiBWTEFESU1JUgorTEFMT8WgRVZJxIYgVkxBRElNSVIKK0xBTE9WScSGIEpBTktPCitMQUxPVknEhiBNQVJLTworTEFMT1ZJxIYgTUlSSkFOQQorTEFMT1ZJxIYgTkFEQQorTEFMT1ZJxIYgUkFESVZPSkUKK0xBTE9WScSGIFNVWkFOQQorTEFMT1ZJxIYgVkVSQQorTEFNQkVUQSBQRUtPCitMQU1CScSGIEJSQU5JU0xBVgorTEFNQknEhiBKT1ZPCitMQU1CScSGIE9MSVZFUkEKK0xBTVBSRVQgS1JJU1RJSkFOCitMQU7EjFXFoEtJIEVNSUxLQQorTEFOQyBGUkFOSkEKK0xBTkMgTUFSSUpBCitMQU5DT8WgIEFOQQorTEFOQ0/FoCBORU5BRAorTEFOQ0/FoCBTVkVUT1pBUgorTEFOQ0/FoCBUT01JU0xBVgorTEFOREVLQSBBTlRPTklKRQorTEFORyBBVElMQQorTEFORyBEUkFHSUNBCitMQU5HIEpPU0lQCitMQU5HIE1JUkpBTkEKK0xBTkcgVkFMRVJJSkEKK0xBTkpJIEFORFJBxaAKK0xBTkpJIFNURVZBTgorTEFOS09WU0tJIFBFQ08KK0xBTktPVlNLSSBUT03EjEUKK0xBUMSMRVZJxIYgRFJBR0lDQQorTEFQxIxFVknEhiBNSUxJQ0EKK0xBUMSMRVZJxIYgTUlMVVRJTgorTEFQxIxFVknEhiBQQUpBCitMQVDEjEVWScSGIFZVS09TQVZBCitMQVDEjEnEhiBNSUxBTgorTEFQQURBVCBIT1JURU5aSUpBCitMQVBBREFUIFNPUklOCitMQVBBREFUIFZBU0lMSUpFCitMQVBBSk5FIE1JTEFOCitMQVBPIEpPVkFOCitMQVBVIEFORFJBxaAKK0xBUktJTiBTVEVWQU4KK0xBU0nEhiBUT01JU0xBVgorTEFTScSGIFpWT05LTworTEFTScSGIFpWT05LTworTEFTSUNBIEJVRElNSVIKK0xBU0lDQSBEUkFHVVRJTgorTEFTSUNBIElMSUpBCitMQVNJQ0EgTUlMQU4KK0xBU0lDQSBNSUxBTgorTEFTSUNBIE1JTEVOS08KK0xBU0lDQSBNSVJPU0xBVgorTEFTSUNBIFVST8WgCitMQVNJQ0EgVkVMSktPCitMQVNJQ0EgWkRSQVZLTworTEFTSUNBIFpMQVRBCitMQVNJQ0EgWk9SQQorTEFTS09WIERPQlJFCitMQVNLT1ZJxIYgQlJBTktBCitMQVNLT1ZJxIYgREFOSUxPCitMQVNLT1ZJxIYgRFJBR0FOCitMQVNMTyBFVEVMS0EKK0xBU0xPIEZFUkVOQworTEFTTE8gRlJBTkpBCitMQVNMTyBGUkFOSkEKK0xBU0xPIElMT05BCitMQVNMTyBKT8W9RUYKK0xBU0xPIEpPU0lQCitMQVNMTyBKT1ZBTgorTEFTTE8gTEFTTE8KK0xBU0xPIE1JS0xPxaAKK0xBU0xPIE1JTEVOQQorTEFTTE8gVElCT1IKK0xBU0xPIFZFUkEKK0xBU0xPVlNLSSBURVJFWkEKK0xBU1RJxIYgQUxFS1NBTkRBUgorTEFUQUsgTkFORE9SCitMQVRBTCBNQVJKQU4KK0xBVEFMIFNMQVZJQ0EKK0xBVEFMIFNURVZBTgorTEFUQUwgVkVSQQorTEFUQUwgWkFHT1JLQQorTEFUQVMgxb1JVktBCitMQVRBUyBMQVpBUgorTEFUQVMgTUFSS08KK0xBVEFTIE1JTEFESU4KK0xBVEFTIE1JTEFOCitMQVRBUyBQRVRBUgorTEFUQVMgU0FWQSBEUiBTVE9NQVRPTE9HCitMQVRBUyBaT1JBCitMQVRJxaBLTyBVUk/FoAorTEFUScSGIElTQUsKK0xBVEnEhiBSQURJVk9KCitMQVRJTsSMScSGIEJPUklTTEFWCitMQVRJTsSMScSGIERBTklDQQorTEFUSU7EjEnEhiBHUlVKQQorTEFUSU7EjEnEhiBOSUtPTEEKK0xBVElOxIxJxIYgUlXFvUEKK0xBVElOS0nEhiBTVEVWQU4KK0xBVElOS0nEhiBWSU5LQQorTEFUSU5LT1ZJxIYgUkFET01JUgorTEFUSU5PVknEhiDFvUFSS08KK0xBVElOT1ZJxIYgxJBVSkEKK0xBVElOT1ZJxIYgQk/FvU8KK0xBVElOT1ZJxIYgRFJBR0FOCitMQVRJTk9WScSGIERSQUdBTgorTEFUSU5PVknEhiBFUklLQQorTEFUSU5PVknEhiBJTElKQQorTEFUSU5PVknEhiBKT1ZBTgorTEFUSU5PVknEhiBKT1ZBTgorTEFUSU5PVknEhiBMQVpBCitMQVRJTk9WScSGIExKVUJBCitMQVRJTk9WScSGIE1BQ0EKK0xBVElOT1ZJxIYgTUFSSU5LTworTEFUSU5PVknEhiBNSUxFTktPCitMQVRJTk9WScSGIE1JTE9SQUQKK0xBVElOT1ZJxIYgTUlSS08KK0xBVElOT1ZJxIYgTkXEkE8KK0xBVElOT1ZJxIYgTkVERUxKS08KK0xBVElOT1ZJxIYgTklLT0xBCitMQVRJTk9WScSGIE5JS09MQQorTEFUSU5PVknEhiBQRVRBUgorTEFUSU5PVknEhiBSQURPTUlSCitMQVRJTk9WScSGIFJBSktPCitMQVRJTk9WScSGIFNBVk8KK0xBVElOT1ZJxIYgU0xPQk9EQU5LQQorTEFUSU5PVknEhiBTTE9CT0RBTgorTEFUSU5PVknEhiBTTE9CT0RBTgorTEFUSU5PVknEhiBTTUlMSkEKK0xBVElOT1ZJxIYgU1ZFVE9aQVIKK0xBVElOT1ZJxIYgWk9SS0EKK0xBVEtPVknEhiDFvUVMSktPCitMQVRLT1ZJxIYgSk9WQU4KK0xBVEtPVknEhiBKT1ZPCitMQVRLT1ZJxIYgTUlMRQorTEFUS09WScSGIFZVSk8KK0xBVEtPVlNLSSBSSVNUTworTEFUTyBKQVNOQQorTEFUT1ZMSkVWIFpBR09SS0EKK0xBVcWgIERJTUlUUklKRQorTEFVxaAgVkxBRElNSVIKK0xBVcWgRVYgRFJBR0FOQQorTEFVxaBFViBKT0NBCitMQVXFoEVWIExKVUJJTktBCitMQVXFoEVWIE1JUkpBTkEKK0xBVcWgRVYgVE/FoEEKK0xBVcWgRVYgVkVMSU1JUgorTEFVxaBFViBWT0pJU0xBVgorTEFVxaBFVknEhiDFvUlWQU4KK0xBVcWgRVZJxIYgxb1JVktBCitMQVXFoEVWScSGIMW9SVZLQQorTEFVxaBFVknEhiBCUkFOSVNMQVYKK0xBVcWgRVZJxIYgRFJBR09KRQorTEFVxaBFVknEhiBEUkFHVVRJTgorTEFVxaBFVknEhiBQQVZMRQorTEFVxaBFVknEhiBSQURPSklDQQorTEFVxaBFVknEhiBWRVNFTElOCitMQVXFoEVWScSGIFpJVEEKK0xBVcWgSU4gQlJBTklTTEFWCitMQVVCRVJUIFZMQURJU0xBVkEKK0xBVVMgQU5BCitMQVVTIEtBVEFSSU5BCitMQVVUQVJFVknEhiBEUkFHQU4KK0xBVVRFUkVSIMSQRU7EkEkKK0xBVVRFUkVSIExBU0xPCitMQVZBxIwgSk/FvUVGCitMQVZBxIwgTEFTTE8KK0xBVknEjEtBIEtBUkxPCitMQVZSTknEhiBLU0VOSUpBCitMQVZSTknEhiBLU0VOSUpBCitMQVZSTknEhiBNSUxPxaAKK0xBVlJOScSGIFJBRElWT0oKK0xBVlJOSkEgTEFaQVIKK0xBVlJOSkEgTUlMS0FOCitMQVpBIEpPTgorTEFaQSBURU9ET1JBCitMQVpBTlNLSSBBTkEKK0xBWkFOU0tJIEJSQU5JU0xBVgorTEFaQU5TS0kgR09SREFOQQorTEFaQU5TS0kgR09SREFOQQorTEFaQVIgxJBVTEEKK0xBWkFSIEVMRU5BCitMQVpBUiBKVUxJQQorTEFaQVIgSlVMSUpBCitMQVpBUiBLQVRBTElOCitMQVpBUiBMQURJU0xBVgorTEFaQVIgUEFWTEUKK0xBWkFSIFNJTUEKK0xBWkFSIFNUSkVQQU4KK0xBWkFSIFZMQURJTUlSCitMQVpBUkVWIMSQT0tBCitMQVpBUkVWIEFOQQorTEFaQVJFViBBTkRSSUpBCitMQVpBUkVWIEpPVkFOCitMQVpBUkVWIFZFUkEKK0xBWkFSRVZJxIYgxIxFREEKK0xBWkFSRVZJxIYgxb1JVktBCitMQVpBUkVWScSGIMW9SVZPVEEKK0xBWkFSRVZJxIYgxJBPUsSQRQorTEFaQVJFVknEhiBCT8WgS08KK0xBWkFSRVZJxIYgQk9SSVNMQVYKK0xBWkFSRVZJxIYgQlJBTktPCitMQVpBUkVWScSGIEJSQU5LTworTEFaQVJFVknEhiBEQU5JTE8KK0xBWkFSRVZJxIYgREFSSU5LQQorTEFaQVJFVknEhiBESU1JVFJJSkUKK0xBWkFSRVZJxIYgRE9CUk9TQVYKK0xBWkFSRVZJxIYgRFJBR0nFoEEKK0xBWkFSRVZJxIYgRFJBR09NSVIKK0xBWkFSRVZJxIYgSkFEVklHQQorTEFaQVJFVknEhiBKRUxFTkEKK0xBWkFSRVZJxIYgSkVMRU5BCitMQVpBUkVWScSGIExBWkFSCitMQVpBUkVWScSGIExKVUJPTUlSCitMQVpBUkVWScSGIExKVUJPCitMQVpBUkVWScSGIE1BTkRBCitMQVpBUkVWScSGIE1JTEFESU5LQQorTEFaQVJFVknEhiBNSUxBTgorTEFaQVJFVknEhiBNSUxBTgorTEFaQVJFVknEhiBNSUxJVk9KRQorTEFaQVJFVknEhiBNSUxPUkFECitMQVpBUkVWScSGIE1JTE9SQUQKK0xBWkFSRVZJxIYgTUlMVU4KK0xBWkFSRVZJxIYgTUlMVVRJTgorTEFaQVJFVknEhiBOSUtPTEEKK0xBWkFSRVZJxIYgU0FWQQorTEFaQVJFVknEhiBTTUlMSkEKK0xBWkFSRVZJxIYgU1RBTknFoEEKK0xBWkFSRVZJxIYgU1RBTk9KRQorTEFaQVJFVknEhiBTVEVWQU4KK0xBWkFSRVZJxIYgU1RFVkFOCitMQVpBUkVWScSGIFNWRVRJU0xBVgorTEFaQVJFVknEhiBWRUxJTUlSCitMQVpBUkVWScSGIFZFU05BCitMQVpBUkVWScSGIFZJREFOCitMQVpBUkVWScSGIFZMQURJTUlSCitMQVpBUkVWScSGIFZPSklTTEFWCitMQVpBUkVWScSGIFpPUkFOIERSIExFS0FSCitMQVpBUkVWScSGIFpPUkFOCitMQVpBUkVWU0tJIMSQT1LEkEUKK0xBWkFSRVZTS0kgRFJBR09MSlVCCitMQVpBUkVWU0tJIFNMQVZLTworTEFaQVJPViBWRVNFTElOCitMQVpBUk9WIFpPUkFOCitMQVpBUk9WU0tJIERSQUdBTgorTEFaRU5EScSGIExBWkFSCitMQVpFTkRJxIYgTklLT0xBCitMQVpJxIxJxIYgQlJBTktPCitMQVpJxIxJxIYgU1RBTklKQQorTEFaScSGIMW9QVJLTworTEFaScSGIMW9SVZBTgorTEFaScSGIMW9SVZBTgorTEFaScSGIMW9SVZBTgorTEFaScSGIMW9SVZLTworTEFaScSGIMW9SVZPSklOCitMQVpJxIYgxb1JVk9SQUQKK0xBWknEhiDEkE9SxJBFIERJUEwgSU5HCitMQVpJxIYgQU7EkEVMS0EKK0xBWknEhiBBTkRSSUpBCitMQVpJxIYgQk/FoEtPCitMQVpJxIYgQk/FvUlEQVIKK0xBWknEhiBCUkFOSVNMQVZBCitMQVpJxIYgQlJBTklTTEFWQQorTEFaScSGIEJSQU5JU0xBVgorTEFaScSGIEJSQU5JU0xBVgorTEFaScSGIEJSQU5JU0xBVgorTEFaScSGIEJSQU5LQSBEUgorTEFaScSGIEJVRElNSVIKK0xBWknEhiBEQU1KQU5LQQorTEFaScSGIERFSkFOIERJUEwgSU5HCitMQVpJxIYgREVKQU4KK0xBWknEhiBEUkFHQU5BCitMQVpJxIYgRFJBR0FOCitMQVpJxIYgRFJBR0EKK0xBWknEhiBEUkFHSUNBCitMQVpJxIYgRFJBR09MSlVCCitMQVpJxIYgRFJBR09NSVIKK0xBWknEhiBEUkFHTworTEFaScSGIERSQUdVVElOCitMQVpJxIYgRFXFoEFOCitMQVpJxIYgRFXFoEFOCitMQVpJxIYgRFXFoEFOCitMQVpJxIYgRFXFoEFOCitMQVpJxIYgRU1JTCBEUiBMRUtBUgorTEFaScSGIEdPSktPCitMQVpJxIYgR09ST0xKVUIKK0xBWknEhiBHUk9aREFOQQorTEFaScSGIElWQU5BCitMQVpJxIYgSkVMSVNBVkVUQQorTEFaScSGIEpPQ0EKK0xBWknEhiBKT1ZBTktBCitMQVpJxIYgSk9WQU4KK0xBWknEhiBKVUxLQQorTEFaScSGIEtBVElDQQorTEFaScSGIEtBVElDQQorTEFaScSGIEtBVElDQQorTEFaScSGIEtPU1RBRElOCitMQVpJxIYgS09TVEEKK0xBWknEhiBMQVpBUgorTEFaScSGIExBWkFSCitMQVpJxIYgTEpVQkFOCitMQVpJxIYgTEpVQklOS0EKK0xBWknEhiBMSlVCSVNBVkEKK0xBWknEhiBMSlVCT01JUgorTEFaScSGIE1BUklKQQorTEFaScSGIE1BUklKQQorTEFaScSGIE1BUklOS08KK0xBWknEhiBNQVJUQQorTEFaScSGIE1JTEFESU4KK0xBWknEhiBNSUxBRElOCitMQVpJxIYgTUlMQURJTgorTEFaScSGIE1JTEFOCitMQVpJxIYgTUlMQU4KK0xBWknEhiBNSUxBTgorTEFaScSGIE1JTEFOCitMQVpJxIYgTUlMRU5BCitMQVpJxIYgTUlMRU5BCitMQVpJxIYgTUlMRU5LTworTEFaScSGIE1JTEVOS08KK0xBWknEhiBNSUxFVktBCitMQVpJxIYgTUlMSUNBCitMQVpJxIYgTUlMSUNBCitMQVpJxIYgTUlMSUNBCitMQVpJxIYgTUlMSU5LTworTEFaScSGIE1JTElTQVYgUFJPRkVTT1IKK0xBWknEhiBNSUxJU0FWCitMQVpJxIYgTUlMSVZPSgorTEFaScSGIE1JTE/FoAorTEFaScSGIE1JTE9SQUQKK0xBWknEhiBNSU9EUkFHCitMQVpJxIYgTUlSQQorTEFaScSGIE1JUkpBTkEKK0xBWknEhiBNSVJLTworTEFaScSGIE1JUk9MSlVCCitMQVpJxIYgTUlST1NMQVYKK0xBWknEhiBNTEFERU4KK0xBWknEhiBOQURBCitMQVpJxIYgTkFEQQorTEFaScSGIE5BREEKK0xBWknEhiBOQURFxb1EQQorTEFaScSGIE5BSkRBTgorTEFaScSGIE5FVkVOQQorTEFaScSGIE5JS09MQSBESVBMIElORworTEFaScSGIE5JS09MQQorTEFaScSGIE5JS09MQQorTEFaScSGIE5JS09MQQorTEFaScSGIE5JS09MQQorTEFaScSGIE9CUkVOCitMQVpJxIYgUEFKQQorTEFaScSGIFBFVEFSCitMQVpJxIYgUEVUQVIKK0xBWknEhiBQRVRBUgorTEFaScSGIFBFVEFSCitMQVpJxIYgUElST8WgS0EKK0xBWknEhiBQSVJPxaBLQQorTEFaScSGIFJBREEKK0xBWknEhiBSQURFCitMQVpJxIYgUkFEScWgQQorTEFaScSGIFJBRElWT0oKK0xBWknEhiBSQURNSUxBCitMQVpJxIYgUkFET0pLQQorTEFaScSGIFJBRE9KS08KK0xBWknEhiBSQURPVkFOCitMQVpJxIYgUkFKS08KK0xBWknEhiBST0RPTEpVQgorTEFaScSGIFJVxb1BCitMQVpJxIYgU0FOSkEKK0xBWknEhiBTQVZBCitMQVpJxIYgU0FWQQorTEFaScSGIFNBVkEKK0xBWknEhiBTQVZBCitMQVpJxIYgU0lNQSBEUgorTEFaScSGIFNMQVZLTworTEFaScSGIFNMT0JPREFOCitMQVpJxIYgU0xPQk9EQU4KK0xBWknEhiBTTUlMSkEKK0xBWknEhiBTUkJJU0xBVgorTEFaScSGIFNUQU5JTUlSCitMQVpJxIYgU1RBTktPCitMQVpJxIYgU1RFVkFOS0EKK0xBWknEhiBTVEVWQU4KK0xBWknEhiBTVEVWQU4KK0xBWknEhiBTVEVWQU4KK0xBWknEhiBTVEVWQU4KK0xBWknEhiBTVE9KQURJTgorTEFaScSGIFNUT0pBTgorTEFaScSGIFNWRVRPWkFSCitMQVpJxIYgVEVPRE9SCitMQVpJxIYgVFJBSktPCitMQVpJxIYgVkFMRVJJSkEKK0xBWknEhiBWQVNJTElKRQorTEFaScSGIFZFTElOS0EKK0xBWknEhiBWRVNFTElOCitMQVpJxIYgVkVTTkEKK0xBWknEhiBWTEFESU1JUgorTEFaScSGIFpPUkFOCitMQVpJxIYgWk9SSUNBCitMQVpJxIYgWk9SSUNBCitMQVpJQ0FOSSBBTEpVxaAKK0xBWklOIEJPR0RBTgorTEFaSU4gQlJBTktPCitMQVpJTiBHT0pLTworTEFaSU4gTUlST1NMQVZBCitMQVpJTiBOQVRBTElKQQorTEFaSU4gU0FWQQorTEFaSU4gU0FWQQorTEFaSU4gU0lOScWgQQorTEFaSU4gU0lOScWgQQorTEFaSU4gU0xPQk9EQU4KK0xBWklOIFZPSklOCitMQVpJTiBaT1JJQ0EKK0xBWklOSUNBIFJBRE9KS0EKK0xBWk9SIE1JUk9OCitMQVpPUiBOSUtPTEEKK0xBWk9WIFRSQUpBTgorTEFaT1ZBIFRSQUpLQQorTEFaT1ZJxIYgxIxFRE8KK0xBWk9WScSGIEJPxaBLTworTEFaT1ZJxIYgQk/FvUlEQVIKK0xBWk9WScSGIERFSkFOIERJUEwgSU5HCitMQVpPVknEhiBEUkFHQU4KK0xBWk9WScSGIExBWkFSCitMQVpPVknEhiBMSklMSkFOQQorTEFaT1ZJxIYgTUlMRU5USUpFCitMQVpPVknEhiBNSUxFVEEKK0xBWk9WScSGIE1JTElDQQorTEFaT1ZJxIYgTUlMT0pJQ0EKK0xBWk9WScSGIE5FTkFECitMQVpPVknEhiBSQURPU0FWCitMQVpPVknEhiBTQVZJQ0EKK0xBWk9WScSGIFNMT0JPREFOCitMQVpPVknEhiBTVEFOS08KK0xBWk9WScSGIFNURVZBTiBQUk9GRVNPUgorTEFaT1ZJxIYgU1ZFVElTTEFWCitMQVpPVknEhiBWVUpBRElOCitMQVpPVknEhiBaT1JBTgorTEFaT1ZJxIYgWk9SQU4KK0xBWk9WU0tJIFNMQVbEjE8KK0xBWlVLScSGIMSMRURPCitMQVpVS0nEhiBBTsSQQQorTEFaVUtJxIYgSk9WTworTEFaVUtJxIYgS0HEhkEKK0xBWlVLScSGIE1JTEFOCitMQVpVS0nEhiBTTE9CT0RBTgorTEXEjCBFTkRSRSBEUgorTEXEjCBFUklICitMRcSMQVIgSk9TSVAKK0xFxIxBUiBLQVJMTworTEXEjEnEhiDEjEVET01JUgorTEXEjEnEhiBET0JSSUxBCitMRcSMScSGIERPQlJPU0FWCitMRcSMScSGIEdPSktPCitMRcSMScSGIE1JTEVWQQorTEXEjEnEhiBNSUxPVkFOCitMRcSMScSGIE5BREEKK0xFxIxJxIYgTkFEQQorTEXEjEnEhiBTSU1PCitMRcSMScSGIFNQQVNPSkUKK0xFxIxJxIYgVklET1NBVkEKK0xFxIxJxIYgVkxBRElNSVIKK0xFxaDEjEXFoEVOIEVEVkFSRAorTEXFoMSMRcWgRU4gSkVMRU5BCitMRcWgScSGIMSQVVJBCitMRcWgScSGIFNUT0pBTgorTEXFoEtJxIYgxJBPUsSQRQorTEXFoEtJxIYgVk9KSVNMQVYKK0xFxaBLT1YgSk9WQU4KK0xFxaBLT1YgTUlMQU4KK0xFxaBLT1YgTUlPRFJBRworTEXFoEtPViBPTEdJQ0EKK0xFxaBLT1ZJxIYgWkxBVEtPCitMRcWgTklLIFpBR09SS0EKK0xFxaBUQVIgU1RFVkFOCitMRcWgVEFSIFpPUklDQQorTEXFvUFKScSGIFZVS0FESU4KK0xFxb1BS09WIMSQVVLEkElDQQorTEXFvUFLT1YgTUlMQU4KK0xFxb1JTUlSQUMgQUxFS1NBTkRBUgorTEXFvUlNSVJBQyBCUkFOS0lDQQorTEXFvUlNSVJBQyBET0JSSU5LQQorTEXFvUlNSVJBQyBTTE9CT0RBTgorTEXFvUlNSVJBQyBTTE9CT0RBTgorTEXFvUlNSVJBQyBTVkVUTEFOQQorTEXFvUlNSVJBQyBWTEFESU1JUgorTEXEkEFOQSBKRUxFTkEKK0xFxJBBTkFDIMSQVVLEkElOS0EKK0xFxJBBTkFDIEJSQU5JU0xBVkEKK0xFxJBBTkFDIERSQUdPTUlSCitMRcSQQU5BQyBFTUlMSUpBCitMRcSQQU5BQyBHQVZSQQorTEXEkEFOQUMgR09SSUNBCitMRcSQQU5BQyBKT1ZBTgorTEXEkEFOQUMgTUlMQU4KK0xFxJBBTkFDIFNFS1VMQQorTEXEkEFOQUMgU0VLVUxBCitMRcSQQU5BQyBTTEFWS08KK0xFxJBBTkFDIFNURVZBTgorTEXEkEFOQUMgU1RFVkFOCitMRcSQQU5BQyBWSVRPTUlSCitMRcSQQU5TS0kgQlJBTktBCitMRcSQRU5BQyBEUkFHQU4KK0xFxJBFTkFDIE5BREEKK0xFxJBFTkFDIFNMQVZLTworTEXEkEVOQUMgU1RBTklNSVIKK0xFxJBFTkFDIFNUUkFISU5KQQorTEVCQVIgWkxBVElDQQorTEVCRVIgWkxBVEtPCitMRUJMIEFSUEFEIERSIFBST0ZFU09SCitMRUJPVknEhiBNQVJJTktPCitMRUJVUknEhiBWQVNJTElKRQorTEVDS0kgxJBVTEEKK0xFQ0tJIEtSScWgVE9GCitMRUNLT1ZJxIYgRU1JTAorTEVERU5LTyBBTlRFIE1SCitMRURFUiBFTUlOQQorTEVERVIgT0xHQQorTEVHRU4gU1RPSkFOCitMRUdFVEnEhiBCUkFOS0EKK0xFSE9DS0kgxaBBTkRPUgorTEVIT0NLSSBGRVJFTkMKK0xFSE9UU0tJIEtBUkxPCitMRUhSIERBVk9SCitMRUlUTkVSIE5JS09MQQorTEVLSSDEkFVSQQorTEVLSSBNQVJJSkEKK0xFS0kgU1RKRVBBTgorTEVLSSBURVJFWklKQQorTEVLScSGIMW9SVZBRElOCitMRUtJxIYgxJBPUsSQSUpFCitMRUtJxIYgQk9HREFOCitMRUtJxIYgQlJBTktBCitMRUtJxIYgQlJBTktPCitMRUtJxIYgREVKQU4KK0xFS0nEhiBEUkFHT0xKVUIKK0xFS0nEhiBEVcWgQU4KK0xFS0nEhiBKT1JEQU4KK0xFS0nEhiBMSlVCT01JUgorTEVLScSGIExKVUJPTUlSCitMRUtJxIYgTUlMQURJTgorTEVLScSGIE1JTEFOS0EKK0xFS0nEhiBORcSQTworTEVLScSGIE5JS09MQQorTEVLScSGIFNJTUVWVU4KK0xFS0nEhiBTVEFOS0EKK0xFS0nEhiBTVEVWQU4KK0xFS0nEhiBUQVRKQU5BCitMRUtJxIYgVEVPRE9SCitMRUtJxIYgVkVTRUxLTworTEVLScSGIFpBR09SS0EKK0xFS0nEhiBaRFJBVktPCitMRUtJTiBMSlVCSUNBCitMRUtJTiBNSUxBTgorTEVLSU4gTUlMQU4KK0xFS0lOIE1JTEFOCitMRUtJTiBaRFJBVktPCitMRUtPIMSQRVLEkAorTEVLTyBBTEVLU0FOREFSCitMRUtPIEJPUklTTEFWCitMRUtPIE1MQURFTgorTEVLT1ZJxIYgRE9CUklMTworTEVLT1ZJxIYgRFJBR0nFoEEKK0xFS09WScSGIE1JTE/FoAorTEVLT1ZJxIYgTUlSS08KK0xFS09WScSGIE5PVkFLCitMRUtPVknEhiBTTE9CT0RBTktBCitMRUtPVknEhiBUT01JU0xBVgorTEVLT1ZJxIYgVkVSSUNBCitMRUxFQSBUT0RPUgorTEVMRU9WScSGIEJPUk8KK0xFTEnEhiDFvUVMSktPCitMRUxJxIYgTUFITVVUCitMRUxJxIYgTUFSSUpBCitMRUxJxIYgTUlSU0FNCitMRUxJxIYgWlVNUkVUQQorTEVMSUsgSkFOT8WgCitMRUxJSyBKRU5FCitMRUxPVknEhiBSQURFCitMRU1BScSGIMW9RUxKS08KK0xFTUFJxIYgU09GSUpBCitMRU1BSknEhiBCUkFOS08KK0xFTUFKScSGIENFQ0lMSUpBCitMRU1BSknEhiBLQVRJQ0EKK0xFTUFKScSGIE1BUklKQQorTEVNQUpJxIYgTUlMQU4KK0xFTUFKScSGIE1JTEFOCitMRU1BSknEhiBNSVJPU0xBVgorTEVNQUpJxIYgUkFET0pJQ0EKK0xFTUFKScSGIFNMT0JPREFOCitMRU1BSknEhiBWTEFESU1JUgorTEVNSEUgSkVMSVNBVkVUQQorTEVNScSGIEJPU0EKK0xFTUnEhiBEUkFHSU5KQQorTEVNScSGIExBWkFSCitMRU1JxIYgTUlMRU5LTworTEVNScSGIE5FQk9KxaBBCitMRU1JxIYgVkxBRElNSVIKK0xFTiBQSVJPxaBLQQorTEVOxIxBIEFORFJJSkEKK0xFTsSMQSBLQVRBCitMRU7EkEVMIMSQVVJPCitMRU7EkEVMIEpPVkFOCitMRU7EkEVMIEpPVkFOCitMRU7EkEVMIEtBUk9MSgorTEVOxJBFTCBNSUhBSkxPCitMRU5BUkQgQVJQQUQKK0xFTkFSRCBQRVRBUgorTEVOQVJUIEtBVElDQQorTEVOQVJUScSGIMSQT1LEkEUKK0xFTkFUT1YgRFXFoEFOCitMRU5EScSGIEpPU0lQCitMRU5EVkFKSSBBTkRSSUpBCitMRU5EVkFKSSBKT8W9RUYKK0xFTkRWQUpJIExKSUxKQU5BCitMRU5FUiBBTkRSQcWgCitMRU5FUiBERcW9RQorTEVORVJUIEFOVEFMCitMRU5FUlQgUEVUQVIgRFIgRE9DRU5UCitMRU5FUlQgU1RFVkFOCitMRU5IQVJEIEpBTk/FoAorTEVOS0XFoCBKT1ZBTgorTEVOS0XFoCBMQVNMTworTEVPVkFDIE1JTElWT0pFCitMRU9WQUMgVlVLQURJTgorTEVQxIxFVknEhiBNSUxFVEEKK0xFUMWgQU5PVknEhiBMQVpBUiBEUiBMRUtBUgorTEVQxaBJxIYgRFJBR0lDQQorTEVQQVIgxaBBTkRPUgorTEVQQVIgSkVMSUNBCitMRVBBUiBMQURJU0xBVgorTEVQRcWgIExBRElTTEFWCitMRVBFxaAgVElCT1IgRFIgUFJPRgorTEVQSEFGVCBQQUwKK0xFUElSIEFOxJBFTEtBCitMRVBJUiBCT1NJTEpLQQorTEVQSVIgTUlMT1JBRAorTEVQSVIgVkVMSU1JUgorTEVQT8WgQSBSVURPTEYKK0xFUE9KRVYgQlJBTktPCitMRVBPSkVWIFNBVkEKK0xFUE9KRVYgVkFTSUxJSkUKK0xFUE9KRVZJxIYgxb1JVk9SQUQKK0xFUE9KRVZJxIYgU1RBTktPCitMRVBPUklTIEpBTgorTEVQT1RJxIYgxb1JVkFOCitMRVBPVEnEhiBNSUxFTktPCitMRVBPVEnEhiBOSUtPTEEKK0xFUE9WScSGIE1JS0EKK0xFUFXFoEEgWkRFTktPCitMRVIgSVZBTgorTEVSScSGIEVSxb1FQkVUCitMRVJJSyBBTkRSQcWgCitMRVJJSyBJxaBUVkFOCitMRVJJSyBNSUtMT8WgCitMRVJJTkMgQU5JS08KK0xFUklOQyBEUkFHT1NMQVYKK0xFUklOQyBKQU5PxaAKK0xFUklOQyBLQVJMTworTEVSSU5DIEtBVEFMSU4KK0xFUklOQyBMQVNMTworTEVSSU5DIExBU0xPCitMRVJJTkMgTEVPCitMRVJJTkMgTEVPCitMRVJPIEJPxb1JREFSCitMRVJPIFZMQURJTUlSCitMRVNLT1ZBQyDEkE9SxJBFCitMRVNLT1ZBQyBEUkFHQU4KK0xFU0tPVkFDIExKVUJJQ0EKK0xFU0tPVkFDIE1JTEFOCitMRVNLT1ZBQyBNSUxBTgorTEVTS09WQUMgTUlMRVRBCitMRVNLT1ZBQyBNTEFERU4gUFJPRkVTT1IKK0xFU0tPVkFDIFJBRE9NSVIKK0xFU0tPVkFDIFNUQU5LQQorTEVTS09WQUMgVkxBRElNSVIgRFIKK0xFU0tPVkFDIFZPSklTTEFWCitMRVRBSkVWIEFMRUtTQU5EQVIKK0xFVEFKRVYgQUxFS1NBTkRBUgorTEVUQUpFViBNSUhBSkxPCitMRVRBSkVWIFZMQURJTUlSCitMRVRJxIYgxIxFRE8KK0xFVEnEhiDFvUFSS08KK0xFVEnEhiDFvUlWQQorTEVUScSGIMW9SVZLTyBESVBMIElORworTEVUScSGIMSQT0tPCitMRVRJxIYgxJBPUsSQRQorTEVUScSGIMSQT1LEkEUKK0xFVEnEhiDEkE9SxJBFCitMRVRJxIYgxJBPUsSQRQorTEVUScSGIMSQT1LEkEUKK0xFVEnEhiBBTklDQQorTEVUScSGIEFOSUNBCitMRVRJxIYgQVJJxaBLTworTEVUScSGIEJPR0RBTgorTEVUScSGIEJPUklWT0oKK0xFVEnEhiBCUkFOSVNMQVYKK0xFVEnEhiBCUkFOSVNMQVYKK0xFVEnEhiBCUkFOS0EKK0xFVEnEhiBCUkFOS08KK0xFVEnEhiBEQVJJTktBCitMRVRJxIYgRFJBR0FOCitMRVRJxIYgRFJBR0nFoEEKK0xFVEnEhiBEUkFHSUNBCitMRVRJxIYgRFXFoEFOCitMRVRJxIYgRFXFoEFOCitMRVRJxIYgR0FWUkEKK0xFVEnEhiBHT0pLTworTEVUScSGIEdPUkRBTkEgRFIKK0xFVEnEhiBJVkFOCitMRVRJxIYgSk9WQU5LQQorTEVUScSGIEpPVkFOCitMRVRJxIYgS09TVEEKK0xFVEnEhiBMQVpBUgorTEVUScSGIExBWkFSCitMRVRJxIYgTEFaQVIKK0xFVEnEhiBMSlVCScWgQQorTEVUScSGIExKVUJJQ0EKK0xFVEnEhiBNQVJJQ0EKK0xFVEnEhiBNQVJJSkEKK0xFVEnEhiBNQVJJSkEKK0xFVEnEhiBNQVJJTktPCitMRVRJxIYgTUlMQU4KK0xFVEnEhiBNSUxBTgorTEVUScSGIE1JTEFOCitMRVRJxIYgTUlMQU4KK0xFVEnEhiBNSUxJQ0EKK0xFVEnEhiBNSUxJQ0EKK0xFVEnEhiBNSUxJQ0EKK0xFVEnEhiBNSUxPUkFECitMRVRJxIYgTUlMT1JBRAorTEVUScSGIE1JTE9SQUQKK0xFVEnEhiBNSUxPVkFOCitMRVRJxIYgTUlPRFJBRworTEVUScSGIE1JUk9TTEFWCitMRVRJxIYgTUlST1NMQVYKK0xFVEnEhiBORU5BRAorTEVUScSGIE5FVkVOQQorTEVUScSGIE9MR0EKK0xFVEnEhiBPTEdBCitMRVRJxIYgT0xHSUNBCitMRVRJxIYgUEVSQQorTEVUScSGIFJBREEKK0xFVEnEhiBSQURFCitMRVRJxIYgUkFETUlMQQorTEVUScSGIFNBVkEKK0xFVEnEhiBTQVZBCitMRVRJxIYgU0lNS0EKK0xFVEnEhiBTTE9CT0RBTgorTEVUScSGIFNURVZBTgorTEVUScSGIFNURVZBTgorTEVUScSGIFNURVZBTgorTEVUScSGIFNUT0pBTiBMRUtBUgorTEVUScSGIFNWRVRJU0xBVgorTEVUScSGIFNWRVRPWkFSCitMRVRJxIYgVE9ET1IKK0xFVEnEhiBWRVJBCitMRVRJxIYgVkVTTkEKK0xFVEnEhiBWSURBCitMRVRJxIYgVkxBRElNSVIKK0xFVEnEhiBWTEFESVNMQVZBCitMRVRJxIYgWkRSQVZLTworTEVUScSGIFpPUkFOCitMRVRJxIYgWk9SQU4KK0xFVEnEhiBaT1JBTgorTEVUScSGIFpPUktBCitMRVRJQ0EgSVZBTkEKK0xFVElDQSBNSUxBTgorTEVUSUNBIFRPTUlTTEFWCitMRVRPIFJVxb1JQ0EKK0xFVE9OQUkgSkFOT8WgCitMRVRPTkFJIExBU0xPCitMRVZBIElMSU5LQQorTEVWQUkgR0FCT1IKK0xFVkFJIEtBVEFMSU4KK0xFVkFJIE5BTkRPUgorTEVWQUkgU1RFVkFOCitMRVZBSkFDIFZFUkEKK0xFVkFLT1YgTUFSQQorTEVWQUtPViBTTE9CT0RBTgorTEVWQUtPViBWT0pJU0xBVgorTEVWQVJTS0kgTUlIQUpMTworTEVWQVRJxIYgTUFUSUpBCitMRVZBVEnEhiBNSUxLQQorTEVWQVRJxIYgTUlMS0lDQQorTEVWRU5TS0kgVEFERUoKK0xFVkkgR09SQU4KK0xFVkkgTEVPTgorTEVWSSBWSUtUT1IKK0xFVknEhiBMSlVCSU5LTworTEVWTkFKScSGIERSQUdBTgorTEVWTkFKScSGIE1JTEtBCitMRVZOQUpJxIYgTU9NxIxJTE8KK0xFWkXEjEVWIFNJTknFoEEKK0xJxIxBTklOIERSQUdBTgorTEnEjEFOSU4gTUFSSUpBCitMScSMQU5JTiBTTEFWS08KK0xJxIxFTiBIT1RJTUlSCitMScSMRU4gSk9TSVAgRElQTCBJTkcKK0xJxIxFTiBMSlVETUlMQQorTEnEjElOQSDEkE9SxJBFCitMScSMSU5BIEJSQU5LSUNBCitMScSMSU5BIERBTklMTworTEnEjElOQSBETUlUQVIKK0xJxIxJTkEgRFJBR08KK0xJxIxJTkEgRFXFoEFOCitMScSMSU5BIExVS0EKK0xJxIxJTkEgTUFSSUpBCitMScSMSU5BIE1JTEFOS0EKK0xJxIxJTkEgTUlMQU4KK0xJxIxJTkEgTUlMRQorTEnEjElOQSBQUkVEUkFHCitMScSMSU5BIFJBREUKK0xJxIxJTkEgVkVMSUJPUgorTEnEjElOQSBaT1JBTgorTEnEjElOQVIgRFJBR0FOCitMScSMSU5BUiBORURFTEpLTworTEnEjElOQVIgU0xBVktPCitMScSMSU5BUiBTVEFOS08KK0xJxIxJTknEhiBEVcWgQU4KK0xJxIxJTknEhiBOQURBCitMScWgxIxJxIYgVkVMSU5LQQorTEnFoEnEhiDEkFVSxJBJTktBCitMScWgScSGIE1BUklDQQorTEnFoEtPVknEhiBNSVJPU0xBVgorTEnFoEtPVknEhiBNSVJPU0xBVgorTElCRVIgU1RFVkFOCitMSUJSScSGIElWQU4KK0xJQlJJxIYgSVZBTgorTElCUknEhiBNQVJJSkFOCitMSURMT0YgUElST8WgS0EKK0xJRExPRiBSVURPTEYKK0xJRExPRiBaT0xUQU4KK0xJSFRFTlRBTCBBTlRBTAorTElIVEVOVEFMIEVMSVpBQkVUQQorTElIVkFSxIxFSyBBTkRSSUpBCitMSUtBVkVDIEpBUk9NSVIKK0xJS0FWRUMgS0FSTE8gRElQTCBJTkcKK0xJS0nEhiBCT1JJU0xBVgorTElLScSGIEJVRElTTEFWCitMSUtPRFJJxIYgTUlMT1ZBTgorTElMxIxFViBEQVJJTktBCitMSUxJIFZFUkEKK0xJTEnEhiDEkE9SxJBFCitMSUxJxIYgQUxFS1NBTkRBUiBESVBMIElORworTElMScSGIE1BUklKQU5BCitMSUxJxIYgTUlMRU5BCitMSUxJxIYgTUlPRFJBRworTElMScSGIFNSQklTTEFWCitMSUxJxIYgVEFUSkFOQQorTElMScSGIFZFTElNSVIKK0xJTUFOSSDFoEHEhklSCitMSU1BTkkgTUVNScWgCitMSU1BTkkgTkFaSUYKK0xJTUFOT1ZJxIYgTkFaSUYKK0xJTUFOT1ZTS0kgSUJSQUhJTQorTElNQU5PVlNLSSBNVVNBRkVUCitMSU1CT0NLSSBQRVRBUgorTElNQlVSR0VSIEpPxb1FRgorTElOREVNQU4gSkVMRU5BCitMSU5ERU1BTiBSVURPTEYKK0xJTkRORVIgTUFSR0lUCitMSU5JxIYgRFJBR0FOCitMSU5KQUsgRFJBR09NSVIKK0xJTktPIEtPTE9NQU4KK0xJUEFJIEtPUk5FTAorTElQQU5PVknEhiBHT0pLTworTElQTknEjEtJIFpPUklDQQorTElQT1RJxIYgUEVUQVIKK0xJUE9WQUMgRFXFoEFOCitMSVBPVkFDIE1BVElKQQorTElTScSMSU4gTkFEQQorTElTScSMSU4gVE9NSVNMQVYKK0xJU0nEhiBNQVJJQ0EKK0xJU0lDQSBNSUhBSkxPCitMSVNJQ0EgTUlIQUpMTworTElTSUNBIE1JTE/FoCBBRFZPS0FUCitMSVNPViBLQVRJQ0EKK0xJU09WIE1JTElNSVIKK0xJU09WIE1JUktPCitMSVNPVkFDIFpPUkFOCitMSVNVTCBBTEVLU0FOREFSCitMSVNVTCBNSUxLQQorTElTVUxPViBPTEdBCitMSVNVTE9WIFJBVE9NSVIKK0xJU1VMT1YgWk9SQU4KK0xJVEFWU0tJIFZMQURJTUlSCitMSVRORVIgSk9WQU4KK0xJVFJJxIxJxIYgR0FWUkEKK0xJVFJJxIxJTiBCT0dEQU4KK0xJVFJJxIxJTiBHRU5BCitMSVRSScSMSU4tVkVCRVIgQk9HREFOS0EKK0xJVFJJxIxJTiBWRUxJTUlSCitMSVRWSkFLIFBBVkxFCitMSVRWSkFLIFZMQURJTUlSCitMSVZBREEgTUlMQU4KK0xJVkFEQSBNSUxPxaAKK0xJVkFKQSBKT1pPCitMSVZBSkEgSlVSRQorTElaQVRPVknEhiBCUkFOS08KK0xKQcSMRVZJxIYgQk/FvUlEQVIKK0xKQUpJxIYgVEFJUAorTEpBTEpJxIYgxJBPUsSQRQorTEpBVElGSSBLQURSSQorTEpBVlJPxaBLQSBQQVZFTAorTEpBVlJPxaBLQSBQQVZFTAorTEpFxaBFVknEhiBMSklMSkFOQSBEUgorTEpFxaBFVknEhiBNQVJJSkEKK0xKRcWgTkpBSyBNSVJPTEpVQgorTEpFxaBOSkFLIE1PTcSMSUxPCitMSkVMSkFLIE1FSE8KK0xKRVBPSkVWScSGIFNURVZBTgorTEpJS0FSIEVWR0VOSUpFCitMSklLQVIgTUlIQUpMTyBESVBMIElORworTEpJS0FSIFZFUk9OQQorTEpJS0FSIFZMQURJTUlSIExFS0FSCitMSklMSkFLIExKSUxKQU5BCitMSklMSkFLIE1JTEFOCitMSklMSkFLIE1JTEFOCitMSklMSkFLIE1JTEVOS08KK0xKSUxKQUsgTUlMT1JBRAorTEpJTEpBSyBNSU9EUkFHCitMSklMSkFLIE1JUktPCitMSklMSkFLIE1JUk9TTEFWCitMSklMSkFLIE5BREEKK0xKSUxKQUsgTkFERcW9REEKK0xKSUxKQUsgUEFKTworTEpJTEpBSyBTQVZBCitMSklMSkFLIFNMQVZLTworTEpJTEpBSyBWTEFESU1JUgorTEpJTEpBSyBWTEFETworTEpVxaBUSU5BIMW9SVZBTgorTEpVxaBUSU5BIMSQT1LEkEUKK0xKVcWgVElOQSBKRUxFTkEKK0xKVcWgVElOQSBMSlVCSUNBCitMSlXFoFRJTkEgTUlMQU4KK0xKVcWgVElOQSBNSUxBTgorTEpVxaBUSU5BIE1JTE9WQU4KK0xKVcWgVElOQSBOSUtPTEEKK0xKVcWgVElOQSBPTEdBCitMSlXFoFRJTkEgU09GSUpBCitMSlXFoFRJTkEgVk9KS0EKK0xKVcWgVElOT1YgTkFEQQorTEpVQkHFoMSMSUsgQU5UT04KK0xKVUJBTknEhiBNQVJBCitMSlVCQU5PVknEhiBNSUxFTktPCitMSlVCQU5PVknEhiBSQURJU0xBVgorTEpVQkVOS09WScSGIE1JTE9WQU4KK0xKVUJFTktPVknEhiBQRVRBUgorTEpVQkVOS09WScSGIFBFVEFSCitMSlVCScSMScSGIMW9QVJLTworTEpVQknEjEnEhiDFvUFSS08KK0xKVUJJxIxJxIYgxb1JVktBCitMSlVCScSMScSGIMSQVVLEkElOS0EKK0xKVUJJxIxJxIYgQkxBxb1PCitMSlVCScSMScSGIEJPUklTTEFWCitMSlVCScSMScSGIERBTktPCitMSlVCScSMScSGIERBUkEKK0xKVUJJxIxJxIYgRFJBR1VUSU4KK0xKVUJJxIxJxIYgSk9WSUNBCitMSlVCScSMScSGIExBWkFSCitMSlVCScSMScSGIExVS0EKK0xKVUJJxIxJxIYgTUFSSUpBTgorTEpVQknEjEnEhiBNQVJJTkEKK0xKVUJJxIxJxIYgTUlIQUpMTworTEpVQknEjEnEhiBNSUxPxaAgTE9LQUwKK0xKVUJJxIxJxIYgTUlMT8WgCitMSlVCScSMScSGIE1JUk9TTEFWQQorTEpVQknEjEnEhiBNSVJPU0xBVgorTEpVQknEjEnEhiBOQURBCitMSlVCScSMScSGIE5BREEKK0xKVUJJxIxJxIYgTkVWRU5LQQorTEpVQknEjEnEhiBOSUtPTEEKK0xKVUJJxIxJxIYgUEVUQVIKK0xKVUJJxIxJxIYgUEVUQVIKK0xKVUJJxIxJxIYgUkFET1NMQVYKK0xKVUJJxIxJxIYgUkFET1NMQVYKK0xKVUJJxIxJxIYgUkFUS08KK0xKVUJJxIxJxIYgUkVMSkEKK0xKVUJJxIxJxIYgUlVET0xGCitMSlVCScSMScSGIFNMT0JPREFOCitMSlVCScSMScSGIFNUQU5LTworTEpVQknEjEnEhiBTVEVWQU4KK0xKVUJJxIxJxIYgU1VaQU5BCitMSlVCScSMScSGIFRBTElOS0EKK0xKVUJJxIxJxIYgVkxBRElNSVIKK0xKVUJJxIxJxIYgWk9SQQorTEpVQknFoEVWScSGIE1JTE/FoAorTEpVQknFoEnEhiBCUkFOSVNMQVYKK0xKVUJJxaBJxIYgTUlMQU5LTworTEpVQknFoEnEhiBQRVRBUgorTEpVQknFoEnEhiBTVVpBTkEKK0xKVUJJxIYgQU7EkEVMS0EKK0xKVUJJxIYgQU5EUklKQQorTEpVQknEhiBJVkFOCitMSlVCScSGIEpFTEVOQQorTEpVQknEhiBNSVJKQU5BCitMSlVCScSGIE5BVEFMSUpBCitMSlVCScSGIFBFUk8KK0xKVUJJxIYgUkFKS08KK0xKVUJJQlJBVEnEhiBFRE8KK0xKVUJJQlJBVEnEhiBMRU8KK0xKVUJJTkFDIE1JTEFOS0EKK0xKVUJJTktPVknEhiBBTEVLU0FORFJBCitMSlVCSU5LT1ZJxIYgQk9HT0xKVUIKK0xKVUJJTktPVknEhiBMRU5LQQorTEpVQklOS09WScSGIE1BUklKQQorTEpVQklOS09WScSGIE1JTEFOS08KK0xKVUJJTktPVknEhiBNSUxBTgorTEpVQklOS09WScSGIE1JTE9SQUQKK0xKVUJJTktPVknEhiBQQVZMRQorTEpVQklOS09WScSGIFNBVkEKK0xKVUJJTktPVknEhiBTVEVWQU4KK0xKVUJJTktPVknEhiBWRUxJTUlSCitMSlVCSVNBVkxKRVZJxIYgREFOSUNBCitMSlVCSVNBVkxKRVZJxIYgTUnFoEEKK0xKVUJJU0FWTEpFVknEhiBNSUxBTgorTEpVQklTQVZMSkVWScSGIE1JTElDQQorTEpVQk9KQSBEUkVOS0EKK0xKVUJPSkEgTUxBREVOCitMSlVCT0pBIFNJTFZJSkEKK0xKVUJPSkVWIEJJTEpBTkEKK0xKVUJPSkVWIElWQU4KK0xKVUJPSkVWIEpFTEVOQQorTEpVQk9KRVYgTEFaQVIKK0xKVUJPSkVWIE1BSkEKK0xKVUJPSkVWIFBFVEFSIE1SCitMSlVCT0pFViBSQUpLTworTEpVQk9KRVZJxIYgxIxFRE9NSVIKK0xKVUJPSkVWScSGIEFOxJBFTElKQQorTEpVQk9KRVZJxIYgQk9SSVNMQVYKK0xKVUJPSkVWScSGIEJSQU5LTworTEpVQk9KRVZJxIYgREVTSU1JUgorTEpVQk9KRVZJxIYgRFJBR0lDQQorTEpVQk9KRVZJxIYgSUxJSkEKK0xKVUJPSkVWScSGIEpPVkFOCitMSlVCT0pFVknEhiBKVUxLQQorTEpVQk9KRVZJxIYgS0FUSUNBCitMSlVCT0pFVknEhiBLT1NUQQorTEpVQk9KRVZJxIYgTUFSS08KK0xKVUJPSkVWScSGIE1BUktPCitMSlVCT0pFVknEhiBNSUhBSkxPCitMSlVCT0pFVknEhiBNSUxFTkEKK0xKVUJPSkVWScSGIE1JTElDQQorTEpVQk9KRVZJxIYgTUlSS08KK0xKVUJPSkVWScSGIE9TVE9KQQorTEpVQk9KRVZJxIYgUEVUQVIKK0xKVUJPSkVWScSGIFJVxb1BCitMSlVCT0pFVknEhiBSVcW9SUNBCitMSlVCT0pFVknEhiBTTEFWS08KK0xKVUJPSkVWScSGIFNMT0JPREFOCitMSlVCT0pFVknEhiBTVEVWQU4KK0xKVUJPSkVWScSGIFRPRE9SCitMSlVCT0pFVknEhiBWRUxKS08KK0xKVUJPSkVWScSGIFZMQURJTUlSCitMSlVCT0pFVknEhiBWTEFESU1JUgorTEpVQk9KRVZJxIYgVk9KSVNMQVYKK0xKVUJPVElOIEpFTEVOQQorTEpVQk9USU4gUkFET1NMQVYKK0xKVUJPVElOQS1CUktJxIYgUkFKTkEKK0xKVUJPVknEhiBNQVJJTktPCitMSlVCVcWgxIxJSyBQRVRBUgorTEpVS09WxIxBTklOIE1JUkpBTkEKK0xKVUtPVsSMQU5JTiBaT1JJQ0EKK0xKVU1Pxb1FVlNLSSBKRUxFTkEKK0xKVU1Pxb1FVlNLSSBNQVJJSkEKK0xKVU1PVknEhiBEQU5JQ0EKK0xKVVRJxIYgU1RBTklLQQorTEpVVFZJIFJBRElWT0oKK0xPxIxLSSBKRUxJU0FWRVRBCitMT8WgScSGIE1JTE9SQUQKK0xPxaBJxIYgTUlMT1JBRAorTE/FoEnEhiBNSVRSQQorTE/FoE9OQyBIRU5SSUpFVEUKK0xPQk9EQSBBTlRVTgorTE9CT0RBIFNURVZBTgorTE9DIEFORFJBxaAKK0xPQyBKT8W9RUYKK0xPQ0kgScWgVFZBTgorTE9ESSBHQUJPUgorTE9ESSBKRUxJU0FWRVRBCitMT0RJIExBU0xPCitMT0dVTk9WIEFMRUtTRUogRElQTCBJTkcKK0xPSkFOScSMScSGIFJBRElWT0pFCitMT0pBTklDQSBCT8WgS08KK0xPSk5BIElWQU4KK0xPSk9WScSGIEJPxb1JQ0EKK0xPSk9WScSGIE9TVE9KQQorTE9KT1ZJxIYgUkFOS08KK0xPSlBVUiBNSUxPVkFOCitMT0tBUyBEQVJLTworTE9LScSGIERBTklDQQorTE9LScSGIEpFTEVOQQorTE9LScSGIExKVUJJQ0EKK0xPS0nEhiBNSUxPVkFOCitMT0tJxIYgVkVSQQorTE9MScSGIEJPxaBLTworTE9MScSGIERPQlJJTktBCitMT0xJxIYgTUFSSUpBCitMT0xJxIYgTUlMQU4KK0xPTEnEhiBORURFTEpLTworTE9MScSGIFNMQVZLQQorTE9MScSGIFRPRE9SCitMT0xJTiBERUpBTgorTE9MSU4gWk9SSUNBCitMT01FTiBFTEVOQQorTE9NScSGIE1PTUlSCitMT01JxIYgUkFET1ZBTgorTE9NScSGIFNMT0JPREFOCitMT01KQU5TS0kgQURBTQorTE9NSkFOU0tJIFNURVZBTgorTE9NT1ZJxIYgQlJBVElTTEFWIE1SIE9FQyBJIElVUkUKK0xPTU9WScSGIE1JSEFJTkEKK0xPTU9WScSGIE1JSEFJTkEKK0xPTVBBUiBEUkFHQU4KK0xPTVBBUiBNSVRBUgorTE9NUEFSIFBFVEFSCitMT01QQVIgU0FWQQorTE9OxIxBUiDEjEVET01JUgorTE9OxIxBUiDEkFVSTworTE9OxIxBUiBCT8WgS08KK0xPTsSMQVIgQk/FvUlEQVIKK0xPTsSMQVIgQk9KQU5BCitMT07EjEFSIEJPUklTCitMT07EjEFSIEJSQU5JU0xBVgorTE9OxIxBUiBEUkFHQU4KK0xPTsSMQVIgRFXFoEFOCitMT07EjEFSIERVxaBBTgorTE9OxIxBUiBEVcWgQU4KK0xPTsSMQVIgRFXFoEFOCitMT07EjEFSIEdPSktPCitMT07EjEFSIEdPUkRBTkEKK0xPTsSMQVIgSUxJSkEKK0xPTsSMQVIgSkVMSUNBCitMT07EjEFSIEpPVkFOCitMT07EjEFSIEtPU1RBCitMT07EjEFSIEtTRU5JSkEKK0xPTsSMQVIgTEpVQklDQQorTE9OxIxBUiBMSlVCSUNBCitMT07EjEFSIExKVUJJQ0EKK0xPTsSMQVIgTUFSS08KK0xPTsSMQVIgTUlIQUpMTworTE9OxIxBUiBNSUxBTgorTE9OxIxBUiBNSUxBTgorTE9OxIxBUiBNSUxBTgorTE9OxIxBUiBNSUxBTgorTE9OxIxBUiBNSUxBTgorTE9OxIxBUiBNSUxBTgorTE9OxIxBUiBNSUxBTgorTE9OxIxBUiBNSUxBTgorTE9OxIxBUiBNSUxBTgorTE9OxIxBUiBNSUxBTgorTE9OxIxBUiBNSUxFTktPCitMT07EjEFSIE1JTEUKK0xPTsSMQVIgTUlMRQorTE9OxIxBUiBNSUxPUkFECitMT07EjEFSIE1JUktPCitMT07EjEFSIE1JUktPCitMT07EjEFSIE5FREVMSktPCitMT07EjEFSIE5FVkVOS0EKK0xPTsSMQVIgTklLT0xBCitMT07EjEFSIE5JS09MQQorTE9OxIxBUiBQQU5URUxJSkEKK0xPTsSMQVIgUFJFRFJBRworTE9OxIxBUiBSQURFCitMT07EjEFSIFJBRE9NSVIKK0xPTsSMQVIgUkFET01JUgorTE9OxIxBUiBTSU1PCitMT07EjEFSIFNMQVZLTworTE9OxIxBUiBTTE9CT0RBTgorTE9OxIxBUi1TUkVNxIxFViBWRVJJQ0EKK0xPTsSMQVIgU1RFVk8KK0xPTsSMQVIgVEFUSkFOQQorTE9OxIxBUiBWRUxJTUlSCitMT07EjEFSIFZFUkEKK0xPTsSMQVIgVkxBREEKK0xPTsSMQVIgVkxBRElNSVJLQSBEUgorTE9OxIxBUiBWVUtBxaBJTgorTE9OxIxBUiBaRFJBVktPCitMT07EjEFSIFpPUkFOCitMT07EjEFSRVZJxIYgxb1JVk9UQQorTE9OxIxBUkVWScSGIElHTkpBVAorTE9OxIxBUkVWScSGIE1JTEFOCitMT07EjEFSRVZJxIYgUFVOScWgQQorTE9OxIxBUkVWScSGIFJBRE9WQU4KK0xPTsSMQVJFVknEhiBWSVRPTUlSCitMT07EjEFSScSGIFJBRE1JTEEKK0xPTsSMQVJTS0kgRFJBR0FOQQorTE9OxIxBUlNLSSBEUkFHScWgQQorTE9OxIxBUlNLSSBQUkVEUkFHCitMT07EjEFSU0tJIFNBVkEKK0xPTsSMQVJTS0kgU1JFRE9KRQorTE9OxIxJTkEgTUlMSkEKK0xPTsSMSU5BIFBSRURSQUcKK0xPTkNJxIYgQkVSSVNMQVZBCitMT05DScSGIFJBSktPCitMT1BBVElOIE5JS09MQQorTE9QScSMScSGIMWgUElSTworTE9QScSMScSGIEJSQU5LTworTE9QScSMScSGIEJSQU5LTworTE9QScSMScSGIEpFTElDQQorTE9QScSMScSGIEpPVkFOCitMT1BJxIxJxIYgTUlPRFJBRworTE9QScSMScSGIE9MR0EKK0xPUEnEjEnEhiBWRVNFTElOCitMT1BVxaBBTlNLSSBEVcWgSUNBCitMT1BVxaBJTkEgQUxFS1NBTkRBUgorTE9QVcWgSU5BIEpFTElDQQorTE9SQkVLIEpPU0lQCitMT1JFSyBKT1ZBTgorTE9SRU5DSU4gTUlMQU4KK0xPVElOQSBEUkFHQU4KK0xPVElOQSBNSVJPU0xBVgorTE9USU5BIFNNSUxKQQorTE9WxIxFVknEhiBEQVJJTktBCitMT1bEjEVWScSGIERSQUdPU0xBVgorTE9WxIxFVknEhiBNSUxJxIYKK0xPVsSMRVZJxIYgVE9NSVNMQVYKK0xPVsSMRVZJxIYgVk9KSVNMQVYKK0xPVkHFoCBST1pBTElKQQorTE9WQURJTk9WIFNWRVRPWkFSCitMT1ZBUyBJVkFOCitMT1ZJxIYgS1VaTUFOCitMT1ZSRSDEjEVETworTE9WUkUgRFJBR0FOCitMT1ZSRSBMSklMSkFOQQorTE9WUkUgTUlMT8WgCitMT1ZSRSBTQVZPCitMT1ZSRSBTTEFWS08KK0xPVlJFIFNURVZBTgorTE9WUkVLT1ZJxIYgVE9NSVNMQVYKK0xPVlJFS09WScSGIFpMQVRLTworTE9WUkVOIFNMQVZLTworTE9WUkVOxIxJxIYgS0FUSUNBCitMT1ZSRU5PVknEhiBNSVJPU0xBVkEKK0xPVlJFTlNLSSBEVcWgQU4KK0xPVlJFTlNLSSBEVcWgQU4KK0xPVlJJxIYgxb1FTEpLTworTE9WUknEhiDFvUVMSktPCitMT1ZSScSGIMSQVVJBCitMT1ZSScSGIERJVk5BCitMT1ZSScSGIE1BUktPCitMT1ZSScSGIE5JS09MQQorTE9WUknEhiBQRVRBUgorTE9WUknEhiBSQUpLTworTE9WUknEhiBSQVRLTworTE9WUknEhiBTTEFWS08KK0xPVlJJxIYgU0xBVktPCitMT1ZSScSGIFNURVZBTgorTE9WUknEhiBTVEVWQU4KK0xPVlJJxIYgVEFUSkFOQQorTE9WUknEhiBUUklWVU4KK0xPVlJJTiBEQVJBCitMT1ZSSU4gRFJBR0FOCitMT1pBTsSMScSGIE5JS08KK0xPWkFOScSGIElWQU4gRElQTCBJTkcKK0xPWkFOScSGLVBBVkxPVknEhiDEkFVSxJBJTktBCitMT1pBTk9WIEVNSUwKK0xPWkFOT1YgU0FWQQorTE9aScSGIEpPU0lQCitMT1pJxIYgS1JTVEEKK0xPWknEhiBLU0VOSUpBCitMT1pJxIYgTUlPRFJBRyBESVBMIElORworTE9aScSGIFRPTUlTTEFWCitMT1pKQU5JTiBOSUtPTEEKK0xPWkpBTklOIE5JS09MQQorTE9aSkFOSU4gTklLT0xBCitMT1pPVk9KIExKVUJJQ0EKK0xVxIxBSyBaTEFUSUNBCitMVcSMQVIgTUlMQURJTgorTFXEjEFSIE1JTEFOCitMVcSMQVIgVkVSQQorTFXEjEkgQU5JQ0EKK0xVxIxJIElWQU4KK0xVxIxJxIYgxIxFRE9NSVIKK0xVxIxJxIYgxb1JVktPCitMVcSMScSGIMSQT0tPCitMVcSMScSGIMSQT1LEkEUKK0xVxIxJxIYgxJBVUsSQSU5BCitMVcSMScSGIEFMRUtTQU5EQVIgRFIKK0xVxIxJxIYgQUxFS1NBTkRSQQorTFXEjEnEhiBCUkFOS08KK0xVxIxJxIYgRFJBR0FOCitMVcSMScSGIERSQUdJQ0EKK0xVxIxJxIYgRFJBR0lOSkEKK0xVxIxJxIYgRFJBR1VUSU4KK0xVxIxJxIYgR0VPUkdJSkUKK0xVxIxJxIYgSkVMRU5BCitMVcSMScSGIEpFTElDQQorTFXEjEnEhiBKT1ZBTiBNUgorTFXEjEnEhiBKT1ZBTgorTFXEjEnEhiBKT1ZBTgorTFXEjEnEhiBKT1ZJQ0EKK0xVxIxJxIYgTEFaTworTFXEjEnEhiBMSlVCQU4KK0xVxIxJxIYgTEpVQk9NSVIKK0xVxIxJxIYgTEpVQk8KK0xVxIxJxIYgTUlIQUpMTworTFXEjEnEhiBNSUxBTgorTFXEjEnEhiBNSUxFTktPCitMVcSMScSGIE1JTEVOS08KK0xVxIxJxIYgTUlMSUNBCitMVcSMScSGIE1JTElWT0pFCitMVcSMScSGIE1JTE/FoAorTFXEjEnEhiBNSUxPSklDQQorTFXEjEnEhiBNSUxPSktBCitMVcSMScSGIE1JTE9NSVIKK0xVxIxJxIYgTUlMT1NBVkEKK0xVxIxJxIYgTUlMVVRJTgorTFXEjEnEhiBNSU9EUkFHCitMVcSMScSGIE1JUkpBTkEKK0xVxIxJxIYgTUlST1NMQVZBCitMVcSMScSGIE1PTcSMSUxPCitMVcSMScSGIE1PTUlSCitMVcSMScSGIE5BREEKK0xVxIxJxIYgT0JSQUQKK0xVxIxJxIYgUEFOVEEKK0xVxIxJxIYgUEFWQQorTFXEjEnEhiBQRVRBUgorTFXEjEnEhiBQRVRLTworTFXEjEnEhiBQRVRLTworTFXEjEnEhiBSQUpLTworTFXEjEnEhiBSSVNUTworTFXEjEnEhiBTTEFWS08KK0xVxIxJxIYgU0xBVk5BCitMVcSMScSGIFNPRklKQQorTFXEjEnEhiBTUEFTT0pFCitMVcSMScSGIFNURUZBTklKQQorTFXEjEnEhiBTVEVWQU4KK0xVxIxJxIYgVkFTTworTFXEjEnEhiBWTEFETworTFXEjEnEhiBWT0pJTgorTFXEjEnEhiBaRFJBVktPCitMVcWgSU5PVlNLSSBESU1JVFJJSkUKK0xVxb1BScSGIMSQT1LEkEUKK0xVxb1BScSGIMSQT1LEkEUKK0xVxb1BScSGIEFOS0EKK0xVxb1BScSGIEJPxb1JQ0EKK0xVxb1BScSGIERVxaBLTworTFXFvUFJxIYgSkFEUkFOS0EKK0xVxb1BScSGIEpVTEtBCitMVcW9QUnEhiBNSVJBCitMVcW9QUnEhiBWTEFESU1JUgorTFXFvUFJxIYgVkxBRElNSVIKK0xVxb1BSknEhiBBTktBCitMVcW9QUpJxIYgSkFEUkFOS0EKK0xVxb1BSknEhiBNSUxFTkEKK0xVxb1BSknEhiBOQURBCitMVcW9QUpJxIYgU1RBTktPCitMVcW9QUpJxIYgU1RBTktPCitMVcW9QUpJxIYgU1RPSkFOCitMVcW9QU5JTiBTVkVUT1pBUgorTFVCQcWgxIxJSyBBTlRBTAorTFVCQcWgxIxJSyBMQVNMTworTFVCQVJEQSBMSlVCSUNBCitMVUJBUkRBIFNURVZBTgorTFVCRU4gUkFOS08KK0xVQkVOIFNBVkEKK0xVQlVSScSGIMSMRURPTUlSCitMVUJVUknEhiBEQU5JTE8KK0xVQlVSScSGIE1JTE9SQUQKK0xVQlVSScSGIE1JTE9SQUQKK0xVQlVSScSGIE1JTE9WQU4KK0xVQlVSScSGIE1JT0RSQUcKK0xVQlVSScSGIE1JUktPCitMVUJVUknEhiBOQURBCitMVUJVUknEhiBSQURPTUlSCitMVUJVUknEhiBSQUpLTworTFVCVVJJxIYgU1RBTkEKK0xVQlVSScSGIFNURVZBTgorTFVDIEpBTk/FoAorTFVDIEpVTElKQQorTFVDScSGIMW9SVZPSklOCitMVUNJxIYgQUxFS1NBTkRSQQorTFVDScSGIFBFVEFSCitMVUNJxIYgUkFESVZPSgorTFVDS0FSxb0gVkxBRElNSVIKK0xVREFKScSGIERVxaBBTiBESVBMIElORworTFVEQUpJxIYgVkVSQQorTFVET8WgS0kgQU7EkEVMS08KK0xVRE/FoEtJIEtBVElDQQorTFVET8WgS0kgTEFaQVIKK0xVRE/FoEtJIExBWkFSCitMVURPxaBLSSBMSlVCSUNBCitMVURPxaBLSSBMSlVCT01JUgorTFVET8WgS0kgTUlMRU5LTworTFVET8WgS0kgVkVMSU1JUgorTFVEUk9WQU4gU1RFVkEKK0xVR09OSkEgTEFaTworTFVHT05KQSBQRVRBUgorTFVHT05KQSBSQURJVk9KCitMVUdPTkpBIFNBVkEKK0xVR09OSkEgU0xPQk9EQU4KK0xVR09OSkEgVkVMSktPCitMVUdPTkpBIFZJRE9KRQorTFVHVU1FUlNLSSBEQU5JQ0EKK0xVSU5PVknEhiBNSUxBTgorTFVKQU5PViBEUkFHT1NMQVYKK0xVSklOT1ZJxIYgTUlMQU4KK0xVSk5PVknEhiBCUkFOS0EKK0xVS0HEjCDFoEFORE9SCitMVUtBxIwgQU5EUkHFoAorTFVLQcSMIEFOS0lDQQorTFVLQcSMIEFSQU5LQQorTFVLQcSMIEJPxaBLTworTFVLQcSMIEJPxaBLTworTFVLQcSMIEJPxb1JREFSCitMVUtBxIwgQlJBTklTTEFWCitMVUtBxIwgREFOSUxPCitMVUtBxIwgRFJBR0FOCitMVUtBxIwgRFJBR09TTEFWIERSCitMVUtBxIwgRkVSRU5DCitMVUtBxIwgRlJBTkNJxaBLQQorTFVLQcSMIEZSQU5KQQorTFVLQcSMIEdST1pEQQorTFVLQcSMIElHTkpBVAorTFVLQcSMIElWQU4KK0xVS0HEjCBMQVpBUgorTFVLQcSMIE1JSEFKTE8KK0xVS0HEjCBNSUhBSkxPCitMVUtBxIwgTUlIQUpMTworTFVLQcSMIE1JTEVWQQorTFVLQcSMIE5BREXFvURBCitMVUtBxIwgUEVUQVIKK0xVS0HEjCBQRVRBUgorTFVLQcSMIFJBREUKK0xVS0HEjCBTQVZBCitMVUtBxIwgU0xPQk9EQU5LQQorTFVLQcSMIFNMT0JPREFOCitMVUtBxIwgU1RFVkFOCitMVUtBxIwgU1ZFVEtPCitMVUtBxIwgVkVMSU1JUgorTFVLQcSMRVZJxIYgTEpVQknFoEEKK0xVS0HEjEkgSkVMSVNBVkVUQQorTFVLQcSMSSBKVUxJSkFOQQorTFVLQUpJxIYgTEFaQVIgTVIKK0xVS0FOIMSQT1LEkEUKK0xVS0FOIFZJTkNFTkMKK0xVS0FOScSGIEZSScSQRcWgCitMVUtBTknEhiBTVEVWQU4KK0xVS0FURUxJIElWQU5LQQorTFVLQVZBQyBTTUlMSktBCitMVUtBVkFDIFpPUkFOCitMVUtFxaBFVknEhiBEUkFHQU4KK0xVS0VOScSGIExKSUxKQU5BCitMVUtFVEEgUkFETUlMQQorTFVLScSMScSGIEJPR0RBTiBESVBMIElORworTFVLScSMScSGIEtBVElDQQorTFVLScSMScSGIFJBREEKK0xVS0nEjEnEhiBTTE9CT0RBTgorTFVLScSMScSGIFNMT0JPREFOCitMVUtJxIYgxb1JVk9SQUQKK0xVS0nEhiDFvUlWT1JBRAorTFVLScSGIMW9SVZPVEEKK0xVS0nEhiDEkFVSQQorTFVLScSGIMSQVVJPCitMVUtJxIYgQUxFS1NBTkRBUgorTFVLScSGIEFMRUtTQU5EQVIKK0xVS0nEhiBBTEVLU0FOREFSCitMVUtJxIYgQU5HRUxJTkEKK0xVS0nEhiBCRVJUQQorTFVLScSGIEJPxaBLTworTFVLScSGIEJPxb1JREFSCitMVUtJxIYgQk9HT0xKVUIKK0xVS0nEhiBCT1JJVk9KRQorTFVLScSGIEJPUk8KK0xVS0nEhiBCT1NJTEpLQQorTFVLScSGIENWRVRBCitMVUtJxIYgQ1ZKRVRLTworTFVLScSGIERBTkUKK0xVS0nEhiBEQU5FCitMVUtJxIYgREFSSU5LQQorTFVLScSGIERJTUlUUklKRQorTFVLScSGIERPQlJJTEEKK0xVS0nEhiBET0JST1NBVgorTFVLScSGIERSQUdBTgorTFVLScSGIERSQUdBCitMVUtJxIYgRFJBR09KRQorTFVLScSGIERSQUdPU0xBVkEKK0xVS0nEhiBEVcWgQU5LQQorTFVLScSGIERVxaBBTgorTFVLScSGIERVxaBBTgorTFVLScSGLUZVREVSRVIgSk9MQU5LQQorTFVLScSGIEdST1pEQQorTFVLScSGIEdSVUpJQ0EgRElQTCBJTkcKK0xVS0nEhiBJTElKQQorTFVLScSGIElMSUpBCitMVUtJxIYgSUxJSkEKK0xVS0nEhiBJVkFOCitMVUtJxIYgSVZBTgorTFVLScSGIElWQU4KK0xVS0nEhiBKQURSQU5LQQorTFVLScSGIEpBU01JTkEKK0xVS0nEhiBKRUxFTkEKK0xVS0nEhiBKRUxFTkEKK0xVS0nEhiBKRUxFTkEKK0xVS0nEhiBKRUxJQ0EKK0xVS0nEhiBKT1ZBTktBCitMVUtJxIYgSk9WQU4KK0xVS0nEhiBKT1ZBTgorTFVLScSGIEpPVkFOCitMVUtJxIYgSk9WTworTFVLScSGIEpPVk8KK0xVS0nEhiBKVUxLQQorTFVLScSGIEtBVEFSSU5BCitMVUtJxIYgS09TVEEKK0xVS0nEhiBLT1NUQQorTFVLScSGIExBWkFSCitMVUtJxIYgTEpJTEpBTkEKK0xVS0nEhiBMSlVCQQorTFVLScSGIExKVUJJxaBBIERSIExFS0FSCitMVUtJxIYgTEpVQklDQQorTFVLScSGIExKVUJPTUlSCitMVUtJxIYgTUFSQQorTFVLScSGIE1BUklKQQorTFVLScSGIE1BUktPCitMVUtJxIYgTUFSS08KK0xVS0nEhiBNQVJLTworTFVLScSGIE1JxIZBCitMVUtJxIYgTUlMQU4KK0xVS0nEhiBNSUxBTgorTFVLScSGIE1JTEFOCitMVUtJxIYgTUlMQU4KK0xVS0nEhiBNSUxBTgorTFVLScSGIE1JTEFOCitMVUtJxIYgTUlMQU4KK0xVS0nEhiBNSUxFCitMVUtJxIYgTUlMSUpBCitMVUtJxIYgTUlMS0EKK0xVS0nEhiBNSUxPxaAKK0xVS0nEhiBNSUxPUkFECitMVUtJxIYgTUlMT1JBRAorTFVLScSGIE1JT0RSQUcKK0xVS0nEhiBNSVJKQU5BCitMVUtJxIYgTUlSSkFOQQorTFVLScSGIE1JUk9TTEFWCitMVUtJxIYgTUlST1NMQVYKK0xVS0nEhiBNT03EjElMTworTFVLScSGIE5FVkVOQQorTFVLScSGIE5JS09MQQorTFVLScSGIE5JS09MQQorTFVLScSGIE5JS09MQQorTFVLScSGIE5PVktBCitMVUtJxIYgT0JSQUQKK0xVS0nEhiBPTEdBCitMVUtJxIYgT0xHSUNBCitMVUtJxIYgUEVUQVIKK0xVS0nEhiBQRVRBUgorTFVLScSGIFBFVEFSCitMVUtJxIYgUEVUQVIKK0xVS0nEhiBSQURPU0FWCitMVUtJxIYgUkFET1NMQVYKK0xVS0nEhiBSQURPVkFOCitMVUtJxIYgUkFET1ZBTgorTFVLScSGIFJBSktPCitMVUtJxIYgUklTVE8KK0xVS0nEhiBSVcW9QQorTFVLScSGIFJVxb1BCitMVUtJxIYgU0FWS0EKK0xVS0nEhiBTTE9CT0RBTktBCitMVUtJxIYgU0xPQk9EQU4KK0xVS0nEhiBTTE9CT0RBTgorTFVLScSGIFNMT0JPREFOCitMVUtJxIYgU0xPQk9EQU4KK0xVS0nEhiBTT0ZJSkEKK0xVS0nEhiBTT0ZJSkEKK0xVS0nEhiBTVEFOQQorTFVLScSGIFNUQU5JxaBBCitMVUtJxIYgU1RBTklTTEFWCitMVUtJxIYgU1RFVkFOCitMVUtJxIYgU1RFVkFOCitMVUtJxIYtU1RFVknEhiBMSklMSkFOQQorTFVLScSGIFNURVZPCitMVUtJxIYgU1RPSkFOS0EKK0xVS0nEhiBTVE9KQU4KK0xVS0nEhiBTVkVUTEFOQQorTFVLScSGIFRBTUFSQQorTFVLScSGIFRPTUlTTEFWCitMVUtJxIYgVE9NSVNMQVYKK0xVS0nEhiBWRUxJQk9SIERSCitMVUtJxIYgVkVMSUJPUiBEUgorTFVLScSGIFZFTElNSVIKK0xVS0nEhiBWRUxKS08KK0xVS0nEhiBWRVJBCitMVUtJxIYgVkVSSUNBCitMVUtJxIYgVkVST05BCitMVUtJxIYgVkVST05JS0EKK0xVS0nEhiBWRVNFTElOCitMVUtJxIYgVklET1NBVkEKK0xVS0nEhiBWTEFESU1JUiBESVBMIElORworTFVLScSGIFZMQURJTUlSCitMVUtJxIYgVk9KSU4KK0xVS0nEhiBWVUtPU0FWCitMVUtJxIYgVlVLCitMVUtJxIYgWk9SQU4KK0xVS0nEhiBaT1JBTgorTFVLScSGIFpPUkFOCitMVUtJxIYgWk9SS0EKK0xVS08gxaBBTkRPUgorTFVLTyBBTkRSQcWgCitMVUtPVkFDIEFOSUNBCitMVUtPVkFDIERSQUdBTgorTFVLT1ZBQyBNSUxBTgorTFVLT1ZBQyBNSUxPVkFOCitMVUtPVknEhiBEVcWgQU4KK0xVS09WScSGIElWQU4KK0xVS09WScSGIEpPVkFOCitMVUtPVknEhiBNSUxBTgorTFVLT1ZJxIYgTUlMT1JBRAorTFVLT1ZJxIYgTUlMT1JBRAorTFVLT1ZJxIYgTUlMVVRJTgorTFVLT1ZJxIYgU0xBVktPCitMVUtPVknEhiBTTE9CT0RBTktBCitMVUtPVknEhiBWTEFESU1JUgorTFVMScSGIEFOQQorTFVMScSGIEFOVFVOCitMVUxJxIYgRlJBTkpBCitMVUxJxIYgSVZBTiBNUgorTFVMScSGIElWQU4KK0xVTEnEhiBNQUpBCitMVUxJxIYgTUFSS08KK0xVTkcgRFJBR0FOCitMVU5HIFNURVZBTgorTFVOR0lOT1ZJxIYgTUFSSUpBCitMVU5HVUxPViBNSUxJVk9KCitMVVDFoEnEhiBKVUxJSkFOQQorTFVQxaBJxIYgS09STkVMCitMVVDFoEnEhiBLT1JORUwKK0xVUMWgT1IgU1RFTEEKK0xVUElOU0tJIE5JTk9TTEFWCitMVVBJTlNLSSBWTEFESU1JUgorTFVQVUMgSkVMSUNBCitMVVBVUk9WIExBWkEKK0xVUFVST1ZJTiBORVZFTktBCitMVVRLScSGIMW9SVZLQQorTFVUS0nEhiDEkE9SxJBFCitMVVRLScSGIEFMRUtTQU5EUkEKK0xVVEtJxIYgTEFaQVIKK0xVVEtJxIYgTUlMT1JBRAorTFVUS0nEhiBTVEFOS08KK0xVVEtJxIYgU1RFVkFOCitMVVRLScSGIFpBR09SS0EKK0xVVFJPViBOQURBCitMVVZSQURPViBCTEFHT0pFCitNQcSMRUsgSk9WQU4KK01BxIxLScSGIEJSQU5LTworTUHEjEtJxIYgRFJBR0lDQQorTUHEjEtJxIYgSkFOS08KK01BxIxLScSGIEpBTktPCitNQcSMS0nEhiBNSUxFTkEKK01BxIxLScSGIE1JTEVOS08KK01BxIxLScSGIE1JTEVWS0EKK01BxIxLScSGIE1JTElWT0oKK01BxIxLScSGIE1JTEpLQQorTUHEjEtJxIYgTUlMT8WgCitNQcSMS0nEhiBORURFTEpLTworTUHEjEtJxIYgTkVOQUQKK01BxIxLScSGIFBFVFJBCitNQcSMS0nEhiBTVEVWTworTUHEjEtJxIYgVkFTTworTUHEjEtJxIYgVkxBRElNSVIKK01BxIxLT1ZJxIYgTUlMQU5BCitNQcSMS09WScSGIE1JTEFOCitNQcSMS09WScSGIFRPTUEKK01BxIxVS0FUIEdSR08KK01BxIxWQU5JTiBCT0pBTkEgRFIgTEVLQVIKK01BxaBBIEVSxb1FQkVUCitNQcWgQSBNSUhBSkxPCitNQcWgQSBWTEFESU1JUgorTUHFoEFOT1ZJxIYgxJBPUsSQRSBESVBMIElORworTUHFoEFOT1ZJxIYgxJBPUsSQSUpFCitNQcWgQU5PVknEhiBCTEHFvU8KK01BxaBBTk9WScSGIEJPU0lMSktBCitNQcWgQU5PVknEhiBCUkFOSVNMQVYKK01BxaBBTk9WScSGIERSQUdPCitNQcWgQU5PVknEhiBOSUtPTEEKK01BxaBBTk9WScSGIFBFVEFSCitNQcWgQU5PVknEhiBQRVRBUgorTUHFoEFOT1ZJxIYgUEVUQVIKK01BxaBBTk9WScSGIFpPUkFOCitNQcWgScSGIMW9QVJLTworTUHFoEnEhiDFvUlWQU4KK01BxaBJxIYgQk9SSVMKK01BxaBJxIYgRFJBR0FOCitNQcWgScSGIERSQUdJxIYKK01BxaBJxIYgScWgVFZBTgorTUHFoEnEhiBJTVJFCitNQcWgScSGIElWQU4KK01BxaBJxIYgSk9WQU4KK01BxaBJxIYgS0FST0xKCitNQcWgScSGIE1BTkRBCitNQcWgScSGIE1JTEFOIERSCitNQcWgScSGIE1JTElOS08KK01BxaBJxIYgTUlMSVZPSgorTUHFoEnEhiBNSUxKQU5BCitNQcWgScSGIE1JTE9KRQorTUHFoEnEhiBNSVJBCitNQcWgScSGIE1JUktPCitNQcWgScSGIE1JUk9TTEFWCitNQcWgScSGIE5BREEKK01BxaBJxIYgUEVUQVIKK01BxaBJxIYgUkXFoEFECitNQcWgScSGIFNFTktBCitNQcWgScSGIFNFTktBCitNQcWgScSGIFNJTUVPTgorTUHFoEnEhiBTVEVWQU4KK01BxaBJxIYgVE9NSVNMQVYKK01BxaBJxIYgVkVSQQorTUHFoEnEhiBWSUtUT1IKK01BxaBJxIYgVlXEjEVUQQorTUHFoElSRVZJxIYgR09SREFOQQorTUHFoElSRVZJxIYgU1RFVkFOCitNQcWgS09WScSGIE5PVklDQQorTUHFoEtPVknEhiBaT1JBTgorTUHFoFRSQVBPVknEhiBEUkFHT0xKVUIKK01BxaBVTE9WScSGIEpBU01JTkEKK01BxaBVTE9WScSGIEpPVkFOS0EKK01BxIZBxaAgU1RFVkFOCitNQcSGQcWgIFZBU0EKK01BxIZBxaBFViBBTEVLU0FOREFSCitNQcSGQcWgRVYgQlJBTklTTEFWCitNQcSGQcWgRVYgREFOSUxPCitNQcSGQcWgRVZJxIYgVkxBRElNSVIKK01BxIZFxaBJxIYgSk9TSVAKK01BxIZFxaBJxIYgTUlIQUlMTworTUHEhktPIEpPxb1FRgorTUHEhktPIFZJTE1PxaAKK01Bxb1JxIYgxJBPUsSQRQorTUHFvUnEhiBEUkFHScWgQQorTUHFvUnEhiBNSVJBCitNQcW9ScSGIFBFVEFSCitNQcW9ScSGIFJVxb1BCitNQcW9SUJSQURBIFZBU08KK01Bxb1JQlJBREEtVlVHUklOIE1BUlRBIERJUEwgSU5HCitNQcSQQVIgQk/FvUlEQVIKK01BxJBBUiBFUsW9RUJFVAorTUHEkEFSIEpPVkFOCitNQcSQQVIgSk9WQU4KK01BxJBBUiBMQURJU0xBVgorTUHEkEFSIFNURVZBTgorTUHEkEFSRVZJxIYgQUxFS1NBTkRBUgorTUHEkEFSRVZJxIYgSVZBTgorTUHEkEFSRVZJxIYgS09TVEEKK01BxJBBUkVWScSGIE1JTEUKK01BxJBBUkVWScSGIE1JTE/FoAorTUHEkEFSRVZJxIYgU1BBU09KRQorTUHEkEFSRVZJxIYgWk9SSUNBCitNQcSQQVJJIEFORE9SCitNQcSQSVNUT1JPViBWTEFESU1JUgorTUFDQUsgUEFWTEUKK01BQ0FLIFZMQURJTUlSCitNQUNBTk9WScSGIERVxaBBTgorTUFDQU5PVknEhiBKRUxFTkEKK01BQ0FOT1ZJxIYgSkVWUk9TSU1BCitNQUNBTk9WScSGIEpPVkFOCitNQUNBTk9WScSGIE1JTE/FoAorTUFDQU5PVknEhiBSQVRLTworTUFDRURPTknEhiBCT0dEQU4gRFIKK01BQ0VET05JxIYgR09SREFOQQorTUFDRURPTknEhiBTVEFOSU1JUgorTUFDRURPTknEhiBWTEFESU1JUgorTUFDS08gxJBVUkEKK01BQ0tPIEFOQQorTUFDTkVSIERBVk9SCitNQUNVUkEgxIxFRE8KK01BQ1VSQSDEkE9SxJBFCitNQUNVUkEgRE9CUklOS0EKK01BQ1VSQSBEUkFHTworTUFDVVJBIExJRElKQQorTUFDVVJBIE1JTE/FoAorTUFDVVJBIE1JTE9SQUQKK01BQ1VSQSBNSVJPU0xBVgorTUFDVVJBIFBFVEFSCitNQUNVUkEgVEVPRE9SCitNQUNVVCBNSUxPxaAKK01BRMW9QVIgQk9SSVNMQVYKK01BRMW9QVIgTUlMT1JBRAorTUFExb1BUiBNSVJLTworTUFExb1BUkFDIMSMRURPTUlSCitNQUTFvUFSQUMgRFXFoEFOIERJUEwgSU5HCitNQUTFvUFSRVYgRFXFoEFOCitNQUTFvUFSRVYgTUlMQU5LQQorTUFExb1BUkVWScSGIMW9SVZPUkFECitNQUTFvUFSRVZJxIYgxJBPUsSQRQorTUFExb1BUkVWScSGIEJJU0VSS0EKK01BRMW9QVJFVknEhiBNQVJLTworTUFExb1BUkVWScSGIFNBVkEKK01BRMW9R0FMSiBNSUxFTktPCitNQUTFvUdBTEogU0xPQk9EQU4KK01BRMW9T1ZTS0kgU0FOREUKK01BREHEjEkgTUFSSUpBCitNQURBQ0tJIEFOVEFMCitNQURBQ0tJIEpBTgorTUFEQUNLSSBKT1NJUAorTUFEQUNLSSBLQVJMTworTUFEQVJBUyBBTkRSQcWgCitNQURBUkFTIEFSUEFECitNQURBUkFTIE1BxIZBxaAKK01BREFSQVMgTUFSSUpBCitNQURBUkFTIFJPWkFMSUpBCitNQURJIMSQVVJJQ0EKK01BREkgSk/FvUVGCitNQURJxIYgQk/FvUlEQVIgRElQTCBJTkcKK01BREnEhiBNQVJJSkFOCitNQURJxIYgTUlMSVNBVgorTUFET05JxIYgU1RKRVBBTgorTUFET1YgSUxJSkEKK01BR0FSQcWgRVZJxIYgQU5BTUFSSUpBCitNQUdBUkHFoEVWScSGIEJPUklWT0oKK01BR0FSQcWgRVZJxIYgS0FUQVJJTkEKK01BR0FSQcWgRVZJxIYgTUlSS08KK01BR0FSQcWgRVZJxIYgTkFEQQorTUFHREEgS0xBUkEKK01BR0RBTEVOScSGIFZFUkpPVgorTUFHREnEhiBUT01JU0xBVgorTUFHRFUgSk9OIERJUEwgSU5HCitNQUdEVSBMSUEKK01BR0RVIFJPRElLQSBMRUtBUgorTUFHScSGIE5JS09MQQorTUFHTEFKTEnEhiBTQUJSSUpBCitNQUdMScSGIEpPVkFOCitNQUdMSU5TS0kgQk9SSVNMQVYgRElQTCBQUkFWTklLCitNQUdMT1YgQUxFS1NBTkRBUgorTUFHTE9WIERSQUdPTEpVQgorTUFHTE9WIERVxaBBTgorTUFHTE9WU0tJIERVxaBLTworTUFHTE9WU0tJIEpPU0lQCitNQUdMT1ZTS0kgTUFSR0lUQQorTUFHTE9WU0tJIE1JTElDQQorTUFHTE9WU0tJIE1JUk9TTEFWCitNQUdMT1ZTS0kgU1RFVkFOCitNQUdMT1ZTS0kgU1RFVkFOCitNQUdPxIwgRlJBTkpBCitNQUdPxIwgSlVMSUpBTgorTUFHT8SMIE1JUk9OSgorTUFHT8WgIMWgQU5ET1IKK01BR0/FoCBKRUxJU0FWRVRBCitNQUdPxaAgSlVMSUpBTkEKK01BR0/FoCBNQVJJSkEKK01BR1VSQSBUT01BCitNQUjEkElLIEVMRU5BCitNQUhBxIxJIEpBTk/FoAorTUFITVVUSSBNQUhNVVQKK01BSE1VVEkgWlVaQU5BCitNQUhPVkFDIE1JTE9SQUQKK01BSUNIRVIgxJBPUsSQRQorTUFKxaBBSSBGRVJFTkMKK01BSsWgQUkgS0xBUkEKK01BSkRBTsSMRVZJxIYgTUlUQVIKK01BSkRBTkFDIERSQUdJTkpBCitNQUpEQU5Exb1JxIYgSk9aTworTUFKREFORMW9ScSGIFBFUklDQQorTUFKREFORMW9ScSGIFBFVEFSCitNQUpERVZBQyDFvUlWS08gRFIKK01BSkRFVkFDIFJBRE9WQU4KK01BSkVSIMWgQU5ET1IKK01BSkVSIEVEVUFSRAorTUFKRVIgSkFOT8WgCitNQUpFUiBKT1ZBTgorTUFKRVIgS0FUSUNBCitNQUpFUiBNQVJJSkEKK01BSkVSIE5JS09MQQorTUFKRVIgUEVUQVIKK01BSkVSIFNURVZBTgorTUFKRVJTS0kgxaBURUZBTgorTUFKRVRJxIYgQU5UT04KK01BSkVUScSGIE1BUklKQQorTUFKRVRJxIYgTklLT0xBCitNQUpJxIYgU1RFVkFOCitNQUpJxIYgVkVTTkEKK01BSknEhiBaT1JBTgorTUFKScSGIFpPUkFOCitNQUpJTiBFRklNSUpBCitNQUpJTiBNSU9EUkFHCitNQUpJTlNLSSBaT1JBCitNQUpLScSGIEFMRUtTQU5EUkEKK01BSktJxIYgQk9HREFOCitNQUpLScSGIEJPR0RBTgorTUFKS0nEhiBEUkFHQU4KK01BSktJxIYgSUxJSkEKK01BSktJxIYgSVZBTktBCitNQUpLScSGIEpPQ0EKK01BSktJxIYgTUlMQU4KK01BSktJxIYgTUlMQU4KK01BSktJxIYgTUlMQU4KK01BSktJxIYgTUlMQU4KK01BSktJxIYgTUlST1NMQVYKK01BSktJxIYgTklLT0xBCitNQUpLScSGIE9CUkFECitNQUpLScSGIFJBREUKK01BSktJxIYgUkFET0pLQQorTUFKS0nEhiBTVE9KQU5LQQorTUFKS0nEhiBWRUxKS08KK01BSktJxIYgVkxBRE8KK01BSktJxIYgWkRSQVZLTworTUFKS0nEhiBaT1JBTgorTUFKS1NORVIgxJBPUsSQRQorTUFKT1IgxJBVUkEKK01BSk9SIEFOQQorTUFKT1IgRkVSRU5DIERSIElORworTUFKT1IgSk/FvUVGCitNQUpPUiBKT8W9RUYKK01BSk9SIEtBUk9MSgorTUFKT1IgS0FST0xKCitNQUpPUiBNQVJHSVRBCitNQUpPUiBNQVJJSkEKK01BSk9SIE1BUklKQQorTUFKT1IgTkFORE9SCitNQUpPUiBTVEVWQU4KK01BSk9SxIxJSyBGUkFOSkEKK01BSk9ST8WgIEJFTEEgRFIKK01BSk9ST8WgIERFxb1FCitNQUpPUk/FoCBKT1ZBTgorTUFKT1JPxaAgTEFKT8WgCitNQUpPUk/FoCBTVEVWQU4KK01BSk9ST8WgIFRFUkVaSUpBCitNQUpPUk/FoEktREVVUkEgTUFSSUpBCitNQUpPUk/FoEkgSU1SRQorTUFKU0tJIEpFTElDQQorTUFKU0tJIEpPVkFOCitNQUpTS0kgTUlMQU4KK01BSlNLSSBOSUtPTEEKK01BSlNLSSBTTEFWS08KK01BSlNLSSBWRVNOQQorTUFKU1RPUkFDIERSQUdBTgorTUFKU1RPUkFDIExKVUJPTUlSCitNQUpTVE9SQUMgUEVUQVIKK01BSlNUT1JBQyBTQVZPCitNQUpTVE9ST1YgTEpVQknFoEEKK01BSlNUT1JPViBWTEFESU1JUgorTUFKU1RPUk9WScSGIMSQVVJBxJAKK01BSlNUT1JPVknEhiBBTsSQQQorTUFKU1RPUk9WScSGIEFOS0EKK01BSlNUT1JPVknEhiBCT0dEQU4KK01BSlNUT1JPVknEhiBCT1JJVk9KCitNQUpTVE9ST1ZJxIYgQk9SSVZPSgorTUFKU1RPUk9WScSGIERBUktPCitNQUpTVE9ST1ZJxIYgRFJBR0FOCitNQUpTVE9ST1ZJxIYgRFJBR09NSVIKK01BSlNUT1JPVknEhiBEVcWgQU4KK01BSlNUT1JPVknEhiBEVcWgS08KK01BSlNUT1JPVknEhiBHT1JEQU5BCitNQUpTVE9ST1ZJxIYgS0FUSUNBCitNQUpTVE9ST1ZJxIYtS09TVEnEhiBWRVNOQQorTUFKU1RPUk9WScSGIExKSUxKQU5BCitNQUpTVE9ST1ZJxIYgTUlMQU4KK01BSlNUT1JPVknEhiBNSUxBTgorTUFKU1RPUk9WScSGIE1JTElDQQorTUFKU1RPUk9WScSGIE5FxJBPCitNQUpTVE9ST1ZJxIYgTkVCT0rFoEEKK01BSlNUT1JPVknEhiBORVZFTktBCitNQUpTVE9ST1ZJxIYgTklLT0xBCitNQUpTVE9ST1ZJxIYgUEVUQVIKK01BSlNUT1JPVknEhiBSQURPU0xBVgorTUFKU1RPUk9WScSGIFNBVktBCitNQUpTVE9ST1ZJxIYgU0lNQQorTUFKU1RPUk9WScSGIFNMT0JPREFOCitNQUpTVE9ST1ZJxIYgU1ZFVExBTkEKK01BSlNUT1JPVknEhiBURU9ET1IKK01BSlNUT1JPVknEhiBVUk/FoAorTUFKU1RPUk9WScSGIFZBU0EKK01BSlNUT1JPVknEhiBWSVRPTUlSCitNQUpTVE9ST1ZJxIYgVlVLQcWgSU4KK01BSlNUT1JPVknEhiBWVUtPU0FWQQorTUFKVEFOIMSQT1LEkEUgRElQTCBJTkcKK01BSlRBTiBLQVJMTworTUFKVEFOIE1JSEFKTE8KK01BSlRBTiBQQVZMRQorTUFLIEFORFJJSkEKK01BSyBKT1NJUEEKK01BSyBPU0tBUgorTUFLxaBBIEFOQQorTUFLxaBBIEpPVkFOCitNQUvFoEEgS0FSTE8KK01BS8WgQSBQRVRBUgorTUFLQUpJIEpBS09WCitNQUtBSkkgSkFOS08KK01BS0FOIEpBTgorTUFLQU5KScSGIEJPSkFOCitNQUtBTkpJxIYgTUlMSVNBVgorTUFLQVJJxIYgTkFEQQorTUFLQVJJxIYgU1RFVkFOCitNQUtBUknEhiBWSURBCitNQUtBUknEhiBaT1JBTgorTUFLQVJJTiDFvUFSS08KK01BS0FSSU4gWlZPTklNSVIgRElQTCBJTkcKK01BS0nFoCBSVcW9QQorTUFLScWgIFZMQVRLTworTUFLSVRBTiBKT1ZBTgorTUFLSVZJxIYgTUlIQUpMTworTUFLSVZJxIYgTUlMT8WgCitNQUtJVknEhiBTQVZBCitNQUtJVknEhiBTVEFOSVNMQVYKK01BS0pJIFpERU5LQQorTUFLTEVOT1ZJxIYgUkFEQQorTUFLTEpFTk9WScSGIFNSQk9MSlVCCitNQUtMSkVOT1ZJxIYgWk9SQU4KK01BS08gxaBBTkRPUgorTUFLTyBGUkFOSkEKK01BS08gSlVMSUpBTkEKK01BS08gTUlMRU5BCitNQUtPSCBBTlRPTgorTUFLUkEgQU5BCitNQUtSQSBJVkFOCitNQUtSQSBKT1NJUAorTUFLUkEgS0FUQVJJTkEKK01BS1JJTiBNQVJHSVRBIERSCitNQUtSSU4gUlXFvUlDQQorTUFLU0nEhiDFvUlWQU5BCitNQUtTScSGIMSQT1LEkEUKK01BS1NJxIYgQklMSkFOQQorTUFLU0nEhiBCT8WgS08KK01BS1NJxIYgQk/FvUlEQVIKK01BS1NJxIYgREFOSUNBCitNQUtTScSGIERFSkFOCitNQUtTScSGIERNSVRBUgorTUFLU0nEhiBET0JSSVZPSkUKK01BS1NJxIYgRFJBR0FOCitNQUtTScSGIERSQUdBTgorTUFLU0nEhiBEUkFHT01JUgorTUFLU0nEhiBEVcWgQU4KK01BS1NJxIYgRURJVAorTUFLU0nEhiBHQVZSQQorTUFLU0nEhiBKRUxJQ0EKK01BS1NJxIYgSkVMSUNBCitNQUtTScSGIEpPVkFOS0EKK01BS1NJxIYgSk9WQU4KK01BS1NJxIYgSk9WQU4KK01BS1NJxIYgTFVLQQorTUFLU0nEhiBNQVJJSkFOQQorTUFLU0nEhiBNSUxBTkEKK01BS1NJxIYgTUlMSUNBCitNQUtTScSGIE1JTElDQQorTUFLU0nEhiBNSUxPUkFECitNQUtTScSGIE1JTE9SQUQKK01BS1NJxIYgTklLT0xBCitNQUtTScSGIFJBRE9TTEFWCitNQUtTScSGIFJBVEtPCitNQUtTScSGIFNBVkEKK01BS1NJxIYgU0xBVktPCitNQUtTScSGIFZPSklOCitNQUtTScSGIFpPUktBCitNQUtTSU3EjEVWIEFOxJBFTEtPCitNQUtTSU3EjEVWIFNURVZBTgorTUFLU0lNT1YgQlJBTklTTEFWCitNQUtTSU1PViBMSlVCT01JUgorTUFLU0lNT1YgU0xPQk9EQU4KK01BS1NJTU9WIFZFUkEKK01BS1NJTU9WScSGIMSMRURPTUlSCitNQUtTSU1PVknEhiDFvUlWT1JBRAorTUFLU0lNT1ZJxIYgxJBVUklDQQorTUFLU0lNT1ZJxIYgQUxFS1NBTkRBUgorTUFLU0lNT1ZJxIYgQUxFS1NBTkRBUgorTUFLU0lNT1ZJxIYgQUxFS1NBTkRBUgorTUFLU0lNT1ZJxIYgQU5BCitNQUtTSU1PVknEhiBBTktJQ0EKK01BS1NJTU9WScSGIEJPxaBLTworTUFLU0lNT1ZJxIYgQk9SSVZPSkUKK01BS1NJTU9WScSGIEJPUklWT0oKK01BS1NJTU9WScSGIEJSQU5JU0xBVgorTUFLU0lNT1ZJxIYgQlJBTktBCitNQUtTSU1PVknEhiBDVklKRVRJTgorTUFLU0lNT1ZJxIYgREFOSUNBCitNQUtTSU1PVknEhiBEQVJLTworTUFLU0lNT1ZJxIYgRElNSVRSSUpFCitNQUtTSU1PVknEhiBEUkFHQU4KK01BS1NJTU9WScSGIERSQUdBTgorTUFLU0lNT1ZJxIYgRFJBR0FOCitNQUtTSU1PVknEhiBEUkFHScSGCitNQUtTSU1PVknEhiBEUkFHT1NMQVYKK01BS1NJTU9WScSGIERVxaBBTiBNUiBPRUMKK01BS1NJTU9WScSGIERVxaBBTgorTUFLU0lNT1ZJxIYgRFXFoEFOCitNQUtTSU1PVknEhiBEVcWgQU4KK01BS1NJTU9WScSGIElWQU5LQQorTUFLU0lNT1ZJxIYgSVZBTgorTUFLU0lNT1ZJxIYgSkFLT1YKK01BS1NJTU9WScSGIEpFTElTQVZFVEEKK01BS1NJTU9WScSGIEpPVkFOCitNQUtTSU1PVknEhiBKT1ZBTgorTUFLU0lNT1ZJxIYgSk9WQU4KK01BS1NJTU9WScSGIEtBVEFSSU5BCitNQUtTSU1PVknEhiBLQVRJQ0EKK01BS1NJTU9WScSGIExBWkFSCitNQUtTSU1PVknEhiBMQVpBCitNQUtTSU1PVknEhiBMRU5LQQorTUFLU0lNT1ZJxIYgTEpVQknFoEEKK01BS1NJTU9WScSGIExKVUJJxaBBCitNQUtTSU1PVknEhiBMSlVCSUNBCitNQUtTSU1PVknEhiBMSlVCSUNBCitNQUtTSU1PVknEhiBMVUtBCitNQUtTSU1PVknEhiBNQVJLTworTUFLU0lNT1ZJxIYgTUlMQU4gRElQTCBJTkcKK01BS1NJTU9WScSGIE1JTEFOQQorTUFLU0lNT1ZJxIYgTUlMQU4KK01BS1NJTU9WScSGIE1JTEVOS08KK01BS1NJTU9WScSGIE1JTEVOS08KK01BS1NJTU9WScSGIE1JTElOQQorTUFLU0lNT1ZJxIYgTUlMT1JBRAorTUFLU0lNT1ZJxIYgTUlMVVRJTgorTUFLU0lNT1ZJxIYgTUlPRFJBRworTUFLU0lNT1ZJxIYgTUlPRFJBRworTUFLU0lNT1ZJxIYgTUlPRFJBRworTUFLU0lNT1ZJxIYgTUlPRFJBRworTUFLU0lNT1ZJxIYgTUlST1NMQVYKK01BS1NJTU9WScSGIE1MQURFTgorTUFLU0lNT1ZJxIYgTkFEQQorTUFLU0lNT1ZJxIYgTkFUQUxJSkEKK01BS1NJTU9WScSGIE5JS09MQQorTUFLU0lNT1ZJxIYgTklLT0xBCitNQUtTSU1PVknEhiBQRVRBUgorTUFLU0lNT1ZJxIYgUFJFRFJBRworTUFLU0lNT1ZJxIYgUkFETUlMQQorTUFLU0lNT1ZJxIYgUkFET1ZBTktBCitNQUtTSU1PVknEhiBSQURPCitNQUtTSU1PVknEhiBSQU7EkEVMCitNQUtTSU1PVknEhiBSSVNUTworTUFLU0lNT1ZJxIYgU0FWQQorTUFLU0lNT1ZJxIYgU0FWTworTUFLU0lNT1ZJxIYgU0xBVk9MSlVCCitNQUtTSU1PVknEhiBTUkXEhktPCitNQUtTSU1PVknEhiBTVEVWQU4KK01BS1NJTU9WScSGIFNURVZBTgorTUFLU0lNT1ZJxIYgU1RFVkFOCitNQUtTSU1PVknEhiBTVEVWSUNBCitNQUtTSU1PVknEhiBTVkVUT01JUgorTUFLU0lNT1ZJxIYgVElIT01JUgorTUFLU0lNT1ZJxIYgVElOS0EKK01BS1NJTU9WScSGIFRPTUlTTEFWCitNQUtTSU1PVknEhiBUT01JU0xBVgorTUFLU0lNT1ZJxIYgVkVMScSMS08KK01BS1NJTU9WScSGIFZFTElNSVIKK01BS1NJTU9WScSGIFZMQURJTUlSCitNQUtTSU1PVknEhiBaTEFUQQorTUFLU0lNT1ZJxIYgWk9SQU4KK01BS1NJTU9WU0tJIMSQT1LEkEUKK01BS1NJTU9WU0tJIFZPSk8KK01BS1NJTiBTTEFWS0EKK01BS1VIIE1JSEFJTE8KK01BS1VIIE1JSEFKTE8KK01BS1VIIFZMQURJTUlSCitNQUzEjEnEhiBBTkRSSUpBIERJUEwgSU5HCitNQUzEjEnEhiBBTkRSSUpBCitNQUzEjEnEhiBKT8W9RUYKK01BTMSMScSGIEpVTEtBCitNQUzEjEnEhiBOSUtPTEEKK01BTEHFoEVWScSGIE1JTFVUSU4KK01BTEFDS08gSlVMSUpBTgorTUFMQUNLTyBMSlVCSUNBCitNQUxBRU5JxIYgRFJBR0FOCitNQUxBVlJBWknEhiBKT1ZBTgorTUFMQkHFoEEgQk9SSVNMQVZBCitNQUxCQcWgQSBEUkFHT0xKVUIKK01BTEJBxaBBIERVxaBBTktBCitNQUxCQcWgQSBKRUxLQQorTUFMQkHFoEEgTUlMQU4KK01BTEJBxaBBIE1JTEUKK01BTEJBxaBBIFZFTEpLTworTUFMQkHFoEEgWkRSQVZLTworTUFMQkHFoEnEhiBCT8WgS08KK01BTEJBxaBJxIYgRFJBR0FOCitNQUxCQcWgScSGIEpBTktPCitNQUxCQcWgScSGIE1JxIZPCitNQUxCQcWgScSGIFJVxb1BCitNQUxCQcWgS0kgRFXFoEFOCitNQUxCQcWgS0ktSkFOS09WIEFOxJBBCitNQUxCQcWgS0kgTUFSSUpBCitNQUxCQcWgS0kgTUlMSU5LQQorTUFMRcWgIEFOxJBFTEtBCitNQUxFxaAgQk9SQQorTUFMRcWgIERNSVRBUgorTUFMRcWgIEpFTEVOQQorTUFMRcWgIEpPVkFOS0EKK01BTEXFoCBLT1NUQQorTUFMRcWgIExKSUxKQU5BCitNQUxFxaAgTUFSSU5LTworTUFMRcWgIE5PVkFLCitNQUxFxaAgUkFET01JUgorTUFMRcWgIFJVxb1JQ0EKK01BTEXFoCBTVEFOQQorTUFMRcWgIFNWRVRMQU5BCitNQUxFxaAgVkFTTworTUFMRcWgIFZPSklTTEFWCitNQUxFxaAgWk9SQQorTUFMRcWgRVYgxb1JVktPCitNQUxFxaBFViDFvUlWT0pJTgorTUFMRcWgRVYgxJBPUsSQRQorTUFMRcWgRVYgQk/FoEtPCitNQUxFxaBFViBCT1JJU0xBVgorTUFMRcWgRVYgQlJBTktPCitNQUxFxaBFViBEQU1KQU4KK01BTEXFoEVWIERBTUpBTgorTUFMRcWgRVYgRElNSVRSSUpFCitNQUxFxaBFViBEUkFHQU5BCitNQUxFxaBFViBEUkFHT0xKVUIKK01BTEXFoEVWIERSQUdPTEpVQgorTUFMRcWgRVYgRFXFoEFOCitNQUxFxaBFViBKRUxJQ0EKK01BTEXFoEVWIEpPVkFOCitNQUxFxaBFViBLT1NBTkEKK01BTEXFoEVWIExBWkFSCitNQUxFxaBFViBMSlVCSUNBCitNQUxFxaBFViBMSlVCSU5LTworTUFMRcWgRVYgTEpVQk9NSVIKK01BTEXFoEVWIExVS0EKK01BTEXFoEVWIE1BUklKQQorTUFMRcWgRVYgTUlMRU5LTworTUFMRcWgRVYgTUlMRVZBCitNQUxFxaBFViBNSUxKQQorTUFMRcWgRVYgTUlMT8WgCitNQUxFxaBFViBNSU9EUkFHCitNQUxFxaBFViBNSU9EUkFHCitNQUxFxaBFViBNSVJPU0xBVgorTUFMRcWgRVYgTUlST1NMQVYKK01BTEXFoEVWIFBFVEFSCitNQUxFxaBFViBQRVRBUgorTUFMRcWgRVYgUFJFRFJBRworTUFMRcWgRVYgUFJFRFJBRworTUFMRcWgRVYgUFJJWlJFTktBCitNQUxFxaBFViBTTEFWS08KK01BTEXFoEVWIFRBTUFSQQorTUFMRcWgRVYgVkVSQQorTUFMRcWgRVYgVklUT01JUgorTUFMRcWgRVZJxIYgxb1JVkFOCitNQUxFxaBFVknEhiDFvUlWS0EKK01BTEXFoEVWScSGIMSQVUtBCitNQUxFxaBFVknEhiBBTEVLU0FORFJBCitNQUxFxaBFVknEhiBESU1JVFJJSkUKK01BTEXFoEVWScSGIERSQUdBTkEKK01BTEXFoEVWScSGIERSQUdBTgorTUFMRcWgRVZJxIYgRFXFoEtPCitNQUxFxaBFVknEhiBHT0pLTworTUFMRcWgRVZJxIYgSVZBTgorTUFMRcWgRVZJxIYgSk9WQU4KK01BTEXFoEVWScSGIEpPVkFOCitNQUxFxaBFVknEhiBMQVpBUgorTUFMRcWgRVZJxIYgTEpVQklDQQorTUFMRcWgRVZJxIYgTUFSSUpBCitNQUxFxaBFVknEhiBNQVJLTworTUFMRcWgRVZJxIYgTUlMRQorTUFMRcWgRVZJxIYgTUlMSUNBCitNQUxFxaBFVknEhiBNSUxPxaAKK01BTEXFoEVWScSGIE1JUktPCitNQUxFxaBFVknEhiBNSVJPU0xBVgorTUFMRcWgRVZJxIYgTUxBREVOCitNQUxFxaBFVknEhiBOQURBCitNQUxFxaBFVknEhiBORURFTEpLTworTUFMRcWgRVZJxIYgTklLSUNBCitNQUxFxaBFVknEhiBQRVRBUgorTUFMRcWgRVZJxIYgUEVUQVIKK01BTEXFoEVWScSGIFNBVktPIExPS0FMCitNQUxFxaBFVknEhiBTTE9CT0RBTktBIERSCitNQUxFxaBFVknEhiBWQVNLUlNJSkUKK01BTEXFoEVWScSGIFZMQURJTUlSCitNQUxFxaBFVknEhiBWT0pJU0xBVkEKK01BTEVDS0kgQkxBxb0KK01BTEVOxIxJxIYgxJBPUsSQRQorTUFMRU7EjEnEhiBHQVZSSUxPCitNQUxFTsSMScSGIE1BUklKQQorTUFMRU7EjEnEhiBOSUtPTEEKK01BTEVOxIxJxIYgUk9ET0xKVUIKK01BTEVOxIxJxIYgUlXFvUlDQQorTUFMRU5JxIYgTEFaQVIKK01BTEVOScSGIFJVxb1BCitNQUxFTknEhiBTSU1BCitNQUxFTknEhiBUT01JU0xBVgorTUFMRU5JQ0EgxJBVUk8KK01BTEVOSUNBIEFOVFVOCitNQUxFTklDQSBEUkFHTworTUFMRU5JQ0EgSVZBTgorTUFMRU5JQ0EgTUFSS08KK01BTEVOS09WScSGIMSQT1LEkEUKK01BTEVOS09WScSGIE1JTE/FoCBEUgorTUFMRU5LT1ZJxIYgVkxBRElNSVIKK01BTEVOT1ZJxIYgTUlST1NMQVYKK01BTEVSIEtSScWgVE9GCitNQUxFUlQgVkVOREVMCitNQUxFVEHFoEtJIEVWSUNBCitNQUxFVEnEhi3FoFJFSyBNQVJJSkEKK01BTEVUScSGLcWgUkVLIE1BUklKQQorTUFMRVRJxIYgxb1BUktPCitNQUxFVEnEhiDFvUlWQU5LQQorTUFMRVRJxIYgxb1JVktPCitNQUxFVEnEhiDEkE9SxJBFIERJUEwgSU5HCitNQUxFVEnEhiDEkE9SxJBFCitNQUxFVEnEhiDEkE9SxJBFCitNQUxFVEnEhiBCT1NJTEpLQQorTUFMRVRJxIYgRFJBR09TTEFWCitNQUxFVEnEhiBEUkFHTworTUFMRVRJxIYgSkVMSUNBCitNQUxFVEnEhiBKT1ZBTktBCitNQUxFVEnEhiBKT1ZBTgorTUFMRVRJxIYgTEFVUkEKK01BTEVUScSGIExBWkFSCitNQUxFVEnEhiBMQVpBUgorTUFMRVRJxIYgTFVLQQorTUFMRVRJxIYgTUFSSUNBCitNQUxFVEnEhiBNSUxFTktPCitNQUxFVEnEhiBNSUxPTUlSCitNQUxFVEnEhiBNSU9EUkFHCitNQUxFVEnEhiBNSU9NSVIKK01BTEVUScSGIE5BREEKK01BTEVUScSGIE5FREVMSktPCitNQUxFVEnEhiBOSUtPTEEKK01BTEVUScSGIFBBSkEKK01BTEVUScSGIFJBRElWT0oKK01BTEVUScSGIFJBRE9TTEFWCitNQUxFVEnEhiBSQURPU0xBVgorTUFMRVRJxIYgU0FWQQorTUFMRVRJxIYgU0FWTworTUFMRVRJxIYgU0xBVklDQQorTUFMRVRJxIYgU0xPQk9EQU5LQQorTUFMRVRJxIYgU0xPQk9EQU4KK01BTEVUScSGIFNSQk9MSlVCCitNQUxFVEnEhiBTVEVWQU4KK01BTEVUScSGIFNURVZBTgorTUFMRVRJxIYgU1RFVkFOCitNQUxFVEnEhiBTVkVUT1pBUgorTUFMRVRJxIYgU1ZFVE9aQVIKK01BTEVUScSGIFRBTUFSQQorTUFMRVRJxIYgVkVLT1NMQVYKK01BTEVUScSGIFZKRVJBCitNQUxFVEnEhiBWSkVSQQorTUFMRVRJxIYgWkxBVEtPCitNQUxFVElOIMSMQVJOQSBESVBMIElORworTUFMRVRJTiDFvUlWS08KK01BTEVUSU4gxJBPUsSQRQorTUFMRVRJTiDEkE9SxJBFCitNQUxFVElOIMSQVVJBCitNQUxFVElOIMSQVVJJQ0EKK01BTEVUSU4gQUxFS1NBTkRBUgorTUFMRVRJTiBCT8WgS08KK01BTEVUSU4gQk/FvUFOQQorTUFMRVRJTiBEQU5JQ0EKK01BTEVUSU4gREFSSU5LQQorTUFMRVRJTiBEUkFHScWgQQorTUFMRVRJTiBEVcWgQU4KK01BTEVUSU4gRFXFoEFOCitNQUxFVElOIEdPUkFOCitNQUxFVElOIEpBTkEKK01BTEVUSU4gSkVMRU5BCitNQUxFVElOIEpPVkFOCitNQUxFVElOIEpPVkFOCitNQUxFVElOIEpPVkFOCitNQUxFVElOIExKVUJPTUlSCitNQUxFVElOIE1BUklKQQorTUFMRVRJTiBNQVJJSkEKK01BTEVUSU4gTUlMQU5LQQorTUFMRVRJTiBNSUxBTgorTUFMRVRJTiBNSUxBTgorTUFMRVRJTiBNSUxPxaAKK01BTEVUSU4gTUlMT1ZBTgorTUFMRVRJTiBNSVJLTworTUFMRVRJTiBQQUpBCitNQUxFVElOIFBBVkxFCitNQUxFVElOIFJBREEKK01BTEVUSU4gUkFESVZPSkUKK01BTEVUSU4gUlXFvUlDQQorTUFMRVRJTiBTTEFWSUNBCitNQUxFVElOIFNMQVZLTworTUFMRVRJTiBTUE9NRU5LQQorTUFMRVRJTiBTVEVWQU4KK01BTEVUSU4gU1RFVkFOCitNQUxFVElOIFNWRVRPWkFSCitNQUxFVElOIFNWRVRPWkFSCitNQUxFVElOIFRJTUEKK01BTEVUSU4gVE9ET1IKK01BTEVUSU4gVE9ET1IKK01BTEVUSU4gVkFTQQorTUFMRVRJTiBWSVRPTUlSCitNQUxFVElOIFZPSklTTEFWCitNQUxFVElOIFpPUkEKK01BTEVUSU4gWk9SQQorTUFMRVZJxIYgVkxBRElNSVIKK01BTEkgxb1JVkFOCitNQUxJIMW9SVZLTworTUFMSSBEQU1KQU4KK01BTEkgRFJBR0EKK01BTEkgRUxFT05PUkEKK01BTEkgR09SQU4KK01BTEkgSk9WQU4KK01BTEkgS1JJU1RJRk9SCitNQUxJIExKVUJJQ0EKK01BTEkgTEpVQk9NSVIKK01BTEkgTUlMT8WgCitNQUxJIE1JT0RSQUcKK01BTEkgU0FWQQorTUFMSSBTVEFOSU1JUgorTUFMSSBWT0pJU0xBVgorTUFMScSMRVZJxIYgxJBPUsSQRQorTUFMScSMRVZJxIYgUkFESVZPSkUKK01BTEnEjEnEhiBNSUxPxaAKK01BTEnEjEnEhiBWT0pJU0xBVgorTUFMScSGIMW9QVJLTworTUFMScSGIEJJTEpBTkEKK01BTEnEhiBCT8W9QU5BCitNQUxJxIYgQ1ZJSkVUSU4KK01BTEnEhiBNSUxBTgorTUFMScSGIE1JTEVOS08KK01BTEnEhiBNSVRBUgorTUFMScSGIE1MQURFTgorTUFMScSGIE5PVkFLCitNQUxJxIYgUFJFRFJBRworTUFMScSGIFJBRElWT0oKK01BTEnEhiBSQVRLTworTUFMScSGIFNMQVZLTworTUFMScSGIFNPRklKQQorTUFMScSGIFNUT0pBTgorTUFMScSGIFNUT0pBCitNQUxJxIYgVVJPxaAKK01BTEnEhiBWVUtJQ0EKK01BTElExb1BIMW9RUxKS08KK01BTElExb1BTiBCTEHFvU8KK01BTElLT1ZJxIYgRFXFoEFOCitNQUxJTiDEkFVSQQorTUFMSU4gSUxJSkEKK01BTElOIE1JTElDQQorTUFMSU4gT0xHQQorTUFMSU4gU1RBTklTTEFWCitNQUxJTiBUQVRKQU5BCitNQUxJTkFSIEpFTEVOQQorTUFMSU5JxIYgU1BBU09KRQorTUFMSU5PVknEhiBBTsSQQQorTUFMSU5PVknEhiBBTktJQ0EKK01BTElOT1ZJxIYgQU5LSUNBCitNQUxJTk9WScSGIEJPxb1PCitNQUxJTk9WScSGIEJPR0RBTgorTUFMSU5PVknEhiBCT0dEQU4KK01BTElOT1ZJxIYgREFOSUNBCitNQUxJTk9WScSGIERSQUdBTgorTUFMSU5PVknEhiBEUkFHSU5KQQorTUFMSU5PVknEhiBEUkFHT0xKVUIKK01BTElOT1ZJxIYgSk9WTworTUFMSU5PVknEhiBNQVJJTktPCitNQUxJTk9WScSGIE5FREVMSktPCitNQUxJTk9WScSGIE5FREVMSktPCitNQUxJTk9WScSGIFNBVk8KK01BTElOT1ZJxIYgU0lOScWgQQorTUFMSU5PVknEhiBTTEFWSUNBCitNQUxJTk9WScSGIFNURVZBTgorTUFMSU5PVknEhiBWRUxKS08KK01BTElWVUsgQk/FvUFOQQorTUFMSVZVSyBEVcWgQU4KK01BTElWVUsgTUlMQU4KK01BTElWVUsgTklLT0xBCitNQUxJVlVLIFBBVkxFCitNQUxJVlVLIFNWRVRJU0xBVgorTUFMSkEgTU9SSU5BCitNQUxKSUsgU1RFVkEKK01BTEpLT1ZJxIYgxJBVUk8KK01BTEpLT1ZJxIYgQlJBTktPCitNQUxKS09WScSGIEJSQU5LTworTUFMSktPVknEhi1Exb1VS0xFVlNLSSBBTkEKK01BTEpLT1ZJxIYgTUFSS08KK01BTEpLT1ZJxIYgTUlMQU4KK01BTEpLT1ZJxIYgTUlMQU4KK01BTEpLT1ZJxIYgTkVWRU5LQQorTUFMSktPVknEhiBOSUtPTEEKK01BTEpLT1ZJxIYgUkFOS0EKK01BTEpLT1ZJxIYgVkVSQQorTUFMS0nEhiBHT1JEQU4KK01BTEtJxIYgTEpVQknFoEEKK01BTEtJxIYgU1RBTkEKK01BTE1FUiBBTkRSSUpBCitNQUxNRVIgQU5EUklKQQorTUFMTkFSIERSQUdVVElOCitNQUxOQVIgSk9TSVAKK01BTE/EjEnEhiBNSUxBTgorTUFMT8SMScSGIE1JTE9SQUQKK01BTE9CQUJJxIYgTEpVQkFOCitNQUxPQkFCScSGIE1BUktPCitNQUxPQkFCScSGIE1JUk9TTEFWCitNQUxPQkFCScSGIE5PVklDQQorTUFMT0JBQknEhiBSQURFCitNQUxPR0FKU0tJIEJPUklTTEFWCitNQUxPR0FKU0tJIFNURVZBTgorTUFMT1RJxIYgU0FWTworTUFMT1ZBxaBJxIYgTUFSSUpBCitNQUxPVknEhiBCT0dEQU4KK01BTE9WScSGIFJBRE1JTEEKK01BTE9WScSGIFNUQU5JxaBBCitNQUxPVlJBWknEhiBHT0pLTworTUFMT1ZSQVpJxIYgR09KS08KK01BTFVDS09WIEJPR0RBTgorTUFMVUNLT1YgREFOSUNBCitNQUxVQ0tPViBKT1ZBTgorTUFMVUNLT1YgTUFSSUpBCitNQUxVQ0tPViBNSU9EUkFHIERJUEwgSU5HCitNQUxVQ0tPViBSQURPVkFOIERSIExFS0FSCitNQUxVQ0tPViBTTE9CT0RBTgorTUFMVUNLT1YgU1RFVkFOCitNQUxVQ0tPViBaT1JLQQorTUFNScSGIElWQU4KK01BTUnEhiBKT1pPCitNQU1Vxb1JxIYgSVZBTiBESVBMIElORworTUFNVcW9ScSGIElWQU4KK01BTVXFvUnEhiBJVkFOCitNQU1VTEEgRFXFoEFOCitNQU1VTEEgTUxBREVOS0EKK01BTVVMQSBQQVZMRQorTUFNVUxBIFJVxb1BCitNQU1VVE9WScSGIE1JTEFOCitNQU1VVE9WScSGIE1JTEFOCitNQU1VVE9WScSGIFJBRElWT0oKK01BTVVaScSGIEJPR0RBTktBCitNQU7EjEVWIE5JS09MQQorTUFOxIxFVlNLSSBLQVRBCitNQU7EjEVWU0tJIFNURVZBTgorTUFOxIxJxIYgQVJBTktBCitNQU7EjEnEhiBEUkFHQU4gRFIKK01BTsSMScSGIEtBVEEKK01BTsSMScSGIE5JS09MQQorTUFOxIxJxIYgU0HFoEEKK01BTsSMScSGIFNMT0JPREFOCitNQU7EjEnEhiBTVkVUT1pBUgorTUFOxIxVIMSQT1LEkEUKK01BTsSMVSBEUkFHSU5KQQorTUFOxIxVIERVxaBBTgorTUFOxIxVIE1JTEFOCitNQU7EjFUgTUlMQU4KK01BTsSMVSBNSUxPxaAKK01BTsSMVSBNSUxPxaAKK01BTsSMVSBORU5BRAorTUFOxIxVIFNURVZBTgorTUFOxIxVIFNWRVRPWkFSCitNQU7EjFUgVklLVE9SCitNQU5BU0lKRVZJxIYgR0VSQVNJTQorTUFOQVNUSVJBQyBEQU1KQU4KK01BTkFTVElSQUMgTEpVQknFoEEKK01BTkMgU1RFVkFOCitNQU5DRURFUiDEkFVSQQorTUFORMW9VUtJxIYgTUlPRFJBRworTUFORMW9VUtPVknEhiBWRUxJTUlSCitNQU5EQVJJTiBOQVRBxaBBCitNQU5ERUsgRklMSVAKK01BTkRFTEMgTEpVQklDQQorTUFOREnEhiDEjEFWQQorTUFOREnEhiDFvUlWS08KK01BTkRJxIYgxJBPUsSQRQorTUFOREnEhiDEkE9SxJBFCitNQU5EScSGIMSQVVJBCitNQU5EScSGIMSQVVJJQ0EKK01BTkRJxIYgQUxFS1NBTkRBUiBESVBMIElORworTUFOREnEhiBBTEVLU0FOREFSCitNQU5EScSGIEJPxaBLTworTUFOREnEhiBCT0dEQU4KK01BTkRJxIYgQk9SSVNMQVZBCitNQU5EScSGIEJPUklTTEFWCitNQU5EScSGIEJSQU5JU0xBVgorTUFOREnEhiBDVklKRVRBCitNQU5EScSGIERBTklDQQorTUFOREnEhiBEQVJBCitNQU5EScSGIERFTEZJTkEKK01BTkRJxIYgREVORcWgCitNQU5EScSGIERPQlJJTEEKK01BTkRJxIYgRFJBR0FOQQorTUFOREnEhiBEUkFHQU4KK01BTkRJxIYgRFJBR09TTEFWCitNQU5EScSGIERSQUdPCitNQU5EScSGIERSQUdPCitNQU5EScSGIERSQUdVVElOCitNQU5EScSGIERVxaBBTktBCitNQU5EScSGIERVxaBBTktBCitNQU5EScSGIERVxaBBTktBCitNQU5EScSGIERVxaBBTgorTUFOREnEhiBGUkFOSkEKK01BTkRJxIYgSUdOSkFUCitNQU5EScSGIElWQU5LQQorTUFOREnEhiBJVktBCitNQU5EScSGIEpPVkFOS0EKK01BTkRJxIYtSk9WQU5PVknEhiBWSU5LQQorTUFOREnEhiBKT1ZPCitNQU5EScSGIEpPVk8KK01BTkRJxIYgS0FUSUNBCitNQU5EScSGIEtPU1RBCitNQU5EScSGIEtTRU5JSkEKK01BTkRJxIYgTEpJTEpBTkEKK01BTkRJxIYgTEpVQklDQQorTUFOREnEhiBMSlVCT01JUgorTUFOREnEhiBNQU5FCitNQU5EScSGIE1BTkUKK01BTkRJxIYgTUFSQQorTUFOREnEhiBNQVJHSVRBCitNQU5EScSGIE1BUklKQQorTUFOREnEhiBNQVJJSkEKK01BTkRJxIYgTUFSSUpBCitNQU5EScSGIE1JS0EKK01BTkRJxIYgTUlMQURJSkEKK01BTkRJxIYgTUlMQU4gRElQTCBJTkcKK01BTkRJxIYgTUlMQU4KK01BTkRJxIYgTUlMRU5BCitNQU5EScSGIE1JTEUKK01BTkRJxIYgTUlMRQorTUFOREnEhiBNSUxFCitNQU5EScSGIE1JTEUKK01BTkRJxIYgTUlMT0pFCitNQU5EScSGIE1JTE9KS08gRFIgTEVLQVIKK01BTkRJxIYgTUlMT1JBRAorTUFOREnEhiBNSUxPUkFECitNQU5EScSGIE1JT0RSQUcKK01BTkRJxIYgTUlST1NMQVYKK01BTkRJxIYgTkFEQQorTUFOREnEhiBOQURBCitNQU5EScSGIE5FxJBPCitNQU5EScSGIE5FxJBPCitNQU5EScSGIE5FREVMSktPIERJUEwgUFJBVk5JSworTUFOREnEhiBOSUtPTEEKK01BTkRJxIYgTklLT0xBCitNQU5EScSGIE5PVktBCitNQU5EScSGIFBBTkUKK01BTkRJxIYgUEVSQQorTUFOREnEhiBQRVRBUgorTUFOREnEhiBSQURFTktPCitNQU5EScSGIFJBRElWT0pFCitNQU5EScSGIFJBRE1JTEEKK01BTkRJxIYgUkFETUlMQQorTUFOREnEhiBSQURPSktBCitNQU5EScSGIFJBRE9NSVIKK01BTkRJxIYgUkFET1ZBTgorTUFOREnEhiBSQURPVkFOCitNQU5EScSGIFJBSkEKK01BTkRJxIYgU0lOScWgQQorTUFOREnEhiBTTEFWS0EKK01BTkRJxIYgU0xBVktPCitNQU5EScSGIFNMT0JPREFOCitNQU5EScSGIFNMT0JPREFOCitNQU5EScSGIFNORcW9QU5BCitNQU5EScSGIFNSRVRFTgorTUFOREnEhiBTUkVURU4KK01BTkRJxIYgU1JFVE8KK01BTkRJxIYgU1RFVkFOCitNQU5EScSGIFNWRVRLTworTUFOREnEhiBTVkVUTEFOQQorTUFOREnEhiBURVJFWklKQQorTUFOREnEhiBUSUJPUgorTUFOREnEhiBUT01JU0xBVgorTUFOREnEhiBUT01JU0xBVgorTUFOREnEhiBVUk/FoCBESVBMIE9FQworTUFOREnEhiBWQVNJTElKRQorTUFOREnEhiBWRUxJWkFSCitNQU5EScSGIFZFUkEKK01BTkRJxIYgVklPTEVUQQorTUFOREnEhiBaTEFUSUNBCitNQU5EScSGIFpPUkFOCitNQU5EScSGIFpPUkFOCitNQU5EScSGIFpPUklDQQorTUFOREnEhiBaT1JLQQorTUFOREnEhiBaT1JLQQorTUFOREnEhiBaT1JLQQorTUFOREnEhiBaVk9OSU1JUgorTUFORFJBUEEgxJBVUk8KK01BTkRSSU5PIFNBTktBCitNQU5FU0tJIEJMQUdPSkEKK01BTkVWU0tJIEJSQU5JU0xBVgorTUFORVZTS0kgRFXFoEFOCitNQU5FVlNLSSBSQURPU0xBVgorTUFORVZTS0kgVFJBSktPIERSCitNQU5FVlNLSSBWRVJBCitNQU5HIEJSQU5LTworTUFOR0VSIEpPU0lQCitNQU5IQUpNIEpPxb1FRgorTUFOScSGIEFOS0lDQQorTUFOScSGIEJMQU5LQQorTUFOScSGIEJPxb1JREFSCitNQU5JxIYgQlJBTklTTEFWCitNQU5JxIYgQlJBTktPCitNQU5JxIYgQlJBTktPCitNQU5JxIYgREFOSUxPCitNQU5JxIYgRFJBR0nFoEEKK01BTknEhiBNSUxPSkUKK01BTknEhiBNSUxPSkUKK01BTknEhiBNSUxPUkFECitNQU5JxIYgU0VWRVIgRElQTCBQSAorTUFOScSGIFNWRVRPTUlSCitNQU5JTiDEkE9SxJBFCitNQU5KQSBTUkVET0pFCitNQU5KQSBaRFJBVktPCitNQU5KQUsgRFJBR08KK01BTkpFTsSMScSGIFNMT0JPREFOCitNQU5KVUxPViBMVUtBCitNQU5PSkxPViBJUkVOQQorTUFOT0pMT1YgSVZBTgorTUFOT0pMT1YgSk9WQU5LQQorTUFOT0pMT1ZJxIYgxIxFRE9NSVIKK01BTk9KTE9WScSGIMSMRURPCitNQU5PSkxPVknEhiDFvUFSS08KK01BTk9KTE9WScSGIMW9SVZLTworTUFOT0pMT1ZJxIYgxJBPUsSQRQorTUFOT0pMT1ZJxIYgQUxFS1NBTkRBUgorTUFOT0pMT1ZJxIYgQUxFS1NBTkRBUgorTUFOT0pMT1ZJxIYgQUxFS1NBCitNQU5PSkxPVknEhiBBTkdFTElOQQorTUFOT0pMT1ZJxIYgQklMSkFOQQorTUFOT0pMT1ZJxIYgQk9TSUxKS0EKK01BTk9KTE9WScSGIEJSQU5JU0xBVgorTUFOT0pMT1ZJxIYgREFSSU5LQQorTUFOT0pMT1ZJxIYgREVTQU5LQQorTUFOT0pMT1ZJxIYgRE9CUklMQQorTUFOT0pMT1ZJxIYgRFJBR0FOQQorTUFOT0pMT1ZJxIYgRFJBR0lDQQorTUFOT0pMT1ZJxIYgRFXFoEFOCitNQU5PSkxPVknEhiBEVcWgQU4KK01BTk9KTE9WScSGIEdSVUpJQ0EKK01BTk9KTE9WScSGIElMSUpBCitNQU5PSkxPVknEhiBKRUxFTkEKK01BTk9KTE9WScSGIEpPVkFOCitNQU5PSkxPVknEhiBLQVRBUklOQQorTUFOT0pMT1ZJxIYgS09WSUxKS08KK01BTk9KTE9WScSGIExBWkFSCitNQU5PSkxPVknEhiBMQVpBUgorTUFOT0pMT1ZJxIYgTEFaQVIKK01BTk9KTE9WScSGIExKVUJJQ0EKK01BTk9KTE9WScSGIExKVUJJQ0EKK01BTk9KTE9WScSGIExKVUJPTUlSCitNQU5PSkxPVknEhiBNQUpBCitNQU5PSkxPVknEhiBNQU5PSkxPCitNQU5PSkxPVknEhiBNQU5PSkxPCitNQU5PSkxPVknEhiBNQVJJSkEKK01BTk9KTE9WScSGIE1JTEFOCitNQU5PSkxPVknEhiBNSUxBTgorTUFOT0pMT1ZJxIYgTUlMQU4KK01BTk9KTE9WScSGIE1JTEVOS08KK01BTk9KTE9WScSGIE1JTE/FoAorTUFOT0pMT1ZJxIYgTUlMT8WgCitNQU5PSkxPVknEhiBNSUxPxaAKK01BTk9KTE9WScSGIE1JTE9SQUQKK01BTk9KTE9WScSGIE1JTE9SQUQKK01BTk9KTE9WScSGIE1JT0RSQUcKK01BTk9KTE9WScSGIE1JT0RSQUcKK01BTk9KTE9WScSGIE1JUkpBTkEKK01BTk9KTE9WScSGIE1JUktPIERJUEwgSU5HCitNQU5PSkxPVknEhiBNSVJLTworTUFOT0pMT1ZJxIYgTUlST1NMQVYKK01BTk9KTE9WScSGIE1PTcSMSUxPCitNQU5PSkxPVknEhiBNT03EjElMTworTUFOT0pMT1ZJxIYgTU9NxIxJTE8KK01BTk9KTE9WScSGIE5FTkFECitNQU5PSkxPVknEhiBOSUtPTEEKK01BTk9KTE9WScSGIFBFVEFSCitNQU5PSkxPVknEhiBQRVRBUgorTUFOT0pMT1ZJxIYgUkFESVZPSgorTUFOT0pMT1ZJxIYgUkFUS08KK01BTk9KTE9WScSGIFNBVkEKK01BTk9KTE9WScSGIFNBVk8KK01BTk9KTE9WScSGIFNMQVZJQ0EKK01BTk9KTE9WScSGIFNMT0JPREFOCitNQU5PSkxPVknEhiBTVEFOScWgQSBEUiBQUk9GCitNQU5PSkxPVknEhiBTVEFOS08KK01BTk9KTE9WScSGIFNURVZBTgorTUFOT0pMT1ZJxIYgU1RFVkFOCitNQU5PSkxPVknEhiBTVkVUT1pBUgorTUFOT0pMT1ZJxIYgVE/FoEEKK01BTk9KTE9WScSGIFZBTkRBCitNQU5PSkxPVknEhiBWRUxJU0xBVgorTUFOT0pMT1ZJxIYgVkVSQQorTUFOT0pMT1ZJxIYgWk9SQU4KK01BTk9KTE9WScSGIFpPUkFOCitNQU5PSkxPVknEhiBaT1JBTgorTUFOT0pMT1ZJxIYgWk9SSUNBCitNQU5PSkxPVknEhiBaVk9OS08KK01BTlVLT1YgT0xHQQorTUFOVUtPViBUT0RPUgorTUFPRFXFoCBBTkEKK01BT0RVxaAgREFOSUNBCitNQU9EVcWgIEpPVk8KK01BT0RVxaAgTUlPRFJBRworTUFPRFXFoCBOSUtPTEEKK01BT0RVxaAgUFJFRFJBRworTUFSIEVEVkFSRAorTUFSxIxBSyBNSUhBSkxPCitNQVLEjEVLIE1JTEFOCitNQVLEjEVUQSDEkFVSQQorTUFSxIxFVEEgQlJBTktPCitNQVLEjEVUQSBEUkFHSUNBCitNQVLEjEVUQSBEUkFHSUNBCitNQVLEjEVUQSBMQVpBUgorTUFSxIxFVEEgTUlMQU4KK01BUsSMRVRBIFJBSktPCitNQVLEjEVUQSBTTE9CT0RBTgorTUFSxIxFVEEgU1RFVkEKK01BUsSMRVRBIFZFTElNSVIKK01BUsSMRVRBIFpPUkEKK01BUsSMRVRJxIYgQ1ZFVEEKK01BUsSMRVRJxIYgRFJBR08KK01BUsSMRVRJxIYgTUFSS08KK01BUsSMRVRJxIYgTUlMQU4KK01BUsSMRVRJxIYgTUlMQU4KK01BUsSMRVRJxIYgTUlMQU4KK01BUsSMRVRJxIYgTklLT0xBCitNQVLEjEVUScSGIE9CUkVOSUpBCitNQVLEjEVUScSGIE9MQklOQQorTUFSxIxFVEnEhiBQRVJJQ0EKK01BUsSMRVRJxIYgUEVUQVIKK01BUsSMRVRJxIYgUEVUQVIKK01BUsSMRVRJTiBSQURFCitNQVLEjEnEhiDFvUlWQU4KK01BUsSMScSGIMSQT1LEkEUKK01BUsSMScSGIEFMRUtTQU5EQVIKK01BUsSMScSGIEJPxb1BTkEKK01BUsSMScSGIEpFTEVOQQorTUFSxIxJxIYgTUFSSUpBCitNQVLEjEnEhiBNSUxFTktPCitNQVLEjEnEhiBTVEVWQU4KK01BUsSMScSGIFNURVZBTgorTUFSxIxJxIYgU1RFVkFOCitNQVLEjEnEhkVWIE1BUklKQQorTUFSxIxJxIZFViBNRVJJTUEKK01BUsSMSU5LTyBNSUxBTgorTUFSxIxPSyBBTklDQQorTUFSxIxPSyBJxaBUVkFOCitNQVLEjE9LIElTSURPUkEKK01BUsSMT0sgTElESUpBCitNQVLEjE9LIE1JSEFKTE8KK01BUsSMT0sgTUlIQUpMTworTUFSxIxPSyBWRVJBCitNQVLEjE9LIFpVWkFOQQorTUFSxIxVSyBTQcWgQQorTUFSxIxVSyBTVEVWQU4KK01BUsW9ScSGIEFOSUNBCitNQVLEkEVMT8WgS0kgU1RBTlXFoEEKK01BUkHFoCBKT1ZBTgorTUFSQcWgIE1JUk9KRQorTUFSQcWgIFNMT0JPREFOCitNQVJBxaAgVk9KSU4KK01BUkFDSSBNSUhBTEoKK01BUkFLT1ZJxIYgTkVWRU5BCitNQVJBTUlDQSBKRUxFTkEKK01BUkFNSUNBIE1JUk9TTEFWCitNQVJBTiBEUkFHScWgQQorTUFSQU4gTUlMT1JBRAorTUFSQVMgRklMSVAKK01BUkFTIEpPU0lQCitNQVJBVUMgWlZPTklNSVIKK01BUkFWScSGIMSQVVJPCitNQVJBVknEhiDEkFVSTworTUFSQVZJxIYgxJBVUk8KK01BUkFWScSGIEJSQU5JU0xBVgorTUFSQVZJxIYgRE1JVEFSCitNQVJBVknEhiBEUkFHSUNBCitNQVJBVknEhiBMQVpPCitNQVJBVknEhiBNQVJLTworTUFSQVZJxIYgTUlIQUpMTworTUFSQVZJxIYgTUlMQU4KK01BUkFWScSGIE1JTEVOQQorTUFSQVZJxIYgTUlMT8WgCitNQVJBVknEhiBOSUtPTEEKK01BUkFWScSGIFNBVkEKK01BUkFWScSGIFNMQVZJQ0EKK01BUkFWScSGIFZMQURBCitNQVJDRUtJxIYgRE9CUklOS0EKK01BUkNJS0nEhiDFvUlWQU5BCitNQVJDSUtJxIYgQk9HREFOCitNQVJDSUtJxIYgRFJBR0lDQQorTUFSQ0lLScSGIEVNSUwKK01BUkNJS0nEhiBHSUdBIERSCitNQVJDSUtJxIYgS09OU1RBTlRJTgorTUFSQ0lLScSGIExKSUxKQU5BCitNQVJDSUtJxIYgTEpVQklOS0EKK01BUkNJS0nEhiBNQVJJQ0EKK01BUkNJS0nEhiBNSUxFTkEKK01BUkNJS0nEhiBTT0ZJSkEKK01BUkNJS0nEhiBTVEVWQU4KK01BUkNJS0nEhiBTVEVWQU4KK01BUkNJS0nEhiBWRVJBCitNQVJERcWgScSGIMWgSU1FCitNQVJFxaAgQk/FvU8KK01BUkXFoCBUUklGVU4KK01BUkXFoMSMVUsgUEVUQVIKK01BUkVMSiDFvUlWQU4KK01BUkVMSiBNSVJPU0xBVgorTUFSRUxKIFNFTEVOQQorTUFSRUxKIFZFTElTTEFWCitNQVJFTEogWkxBVEEKK01BUkVMSkVWIEpFTEVOQQorTUFSRVRJxIYgTUFSS08gRElQTCBPRUMKK01BUkVUScSGIFNURVZPCitNQVJFVEnEhiBWTEFEQQorTUFSRVRJxIYgVkxBREEKK01BUkVUScSGIFZMQURBCitNQVJFVknEhiBBTlRFCitNQVJGSSBTTUlMSktBCitNQVJHQU5PVknEhiBEUkFHSUNBCitNQVJHQU5PVknEhiBEVcWgQU4gRFIKK01BUkdBTk9WScSGIEdFT1JHSU5BCitNQVJHQU5aIFZJS1RPUgorTUFSR0VUQSBBTklDQQorTUFSR0VUQSBNQVJJSkEKK01BUkdFVEnEhiDFvUnFvUEKK01BUkdFVEnEhiBFTFZJUkEKK01BUkdJVCBKVUxJSkFOQQorTUFSR0lUIFZFUkEKK01BUkdVxaBJxIYgQU5EUklKQQorTUFSSE/FoEVWScSGIE1VSk8KK01BUknEjEVWScSGIEtBVElDQQorTUFSScSMRVZJxIYgUklTVEEKK01BUknEjEnEhiBBTkRSSUpBCitNQVJJxIxJxIYgQlJBTktPCitNQVJJxIxJxIYgQlJBVE9MSlVCCitNQVJJxIxJxIYgR09KS08KK01BUknEjEnEhiBJTElKQQorTUFSScSMScSGIElWSUNBCitNQVJJxIxJxIYgTUFSQQorTUFSScSMScSGIE1JTEFOCitNQVJJxIxJxIYgTUlMT1JBRAorTUFSScSMScSGIE1JUkEKK01BUknEjEnEhiBORURFTEpLTworTUFSScSMScSGIE5JS09MQQorTUFSScSMScSGIE5JS09MQQorTUFSScSMScSGIFBBVkxFCitNQVJJxIxJxIYgU1RFVkFOCitNQVJJxIxJxIYgU1RFVkFOCitNQVJJxIxJxIYgVk9KSVNMQVYKK01BUknEjElOIE5FTkFECitNQVJJxaBBTiBWTEFESU1JUgorTUFSScSGIMW9QVJLTworTUFSScSGIMW9QVJLTworTUFSScSGIMW9SUtBCitNQVJJxIYgxb1JVkFOQQorTUFSScSGIMW9SVZLTworTUFSScSGIMSQT1LEkEUKK01BUknEhiDEkFVSTworTUFSScSGIEFEQU0gRFIKK01BUknEhiBBTEVLU0FOREFSCitNQVJJxIYgQU7EkEVMS08KK01BUknEhiBBTsSQRUxLTworTUFSScSGIEFOS0EKK01BUknEhiBBTktBCitNQVJJxIYgQU5LSUNBCitNQVJJxIYgQk/FoEtPCitNQVJJxIYgQk/FoEtPCitNQVJJxIYgQk/FvUlDQQorTUFSScSGIEJPxb1JREFSCitNQVJJxIYgQk9HT0xKVUIKK01BUknEhiBCT0pBRElNSVIKK01BUknEhiBCT1JJVk9KCitNQVJJxIYgQk9TSUxKS0EKK01BUknEhiBCUkFOSVNMQVYgRElQTCBJTkcKK01BUknEhiBCUkFOS08KK01BUknEhiBCUkFOS08KK01BUknEhiBCUkFOTworTUFSScSGIENWSUpPCitNQVJJxIYgREFOSUNBCitNQVJJxIYgREFSSU5LQQorTUFSScSGIERBVklECitNQVJJxIYgRFJBR0FOQQorTUFSScSGIERSQUdBTgorTUFSScSGIERSQUdBTgorTUFSScSGIERSQUdBTgorTUFSScSGIERSQUdBTgorTUFSScSGIERSQUdBTgorTUFSScSGIERSQUdBTgorTUFSScSGIERSQUdJQ0EKK01BUknEhiBEUkFHT0xKVUIKK01BUknEhiBEVcWgQU5LQQorTUFSScSGIERVxaBBTgorTUFSScSGIERVxaBBTgorTUFSScSGIERVxaBBTgorTUFSScSGIERVxaBBTgorTUFSScSGIERVxaBBTgorTUFSScSGIERVxaBJQ0EKK01BUknEhiBFUsW9RUJFVAorTUFSScSGIEdPSktPCitNQVJJxIYgR09KS08KK01BUknEhiBHUlVKSUNBIERSCitNQVJJxIYgSUxFCitNQVJJxIYgSUxJSkEKK01BUknEhiBJTElKQQorTUFSScSGIElMSU5LQQorTUFSScSGIElWTworTUFSScSGIEpBRFJBTktBCitNQVJJxIYgSkVMSUNBCitNQVJJxIYgSk9DQQorTUFSScSGIEpPTEFOS0EKK01BUknEhiBKT1ZBTktBCitNQVJJxIYgSk9WQU4KK01BUknEhiBKT1ZBTgorTUFSScSGIEpPVkFOCitNQVJJxIYgSk9WQU4KK01BUknEhiBKT1ZBTgorTUFSScSGIEpPVk8KK01BUknEhiBKT1ZPCitNQVJJxIYgSlVMSUpBTkEKK01BUknEhiBLQURJVktBCitNQVJJxIYgS0FUSUNBCitNQVJJxIYgS0FUSUNBCitNQVJJxIYgS09TVEEKK01BUknEhiBMQVpBUgorTUFSScSGIExKRVBPU0FWQQorTUFSScSGIExKVUJBCitNQVJJxIYgTEpVQklDQQorTUFSScSGIExKVUJPTUlSCitNQVJJxIYgTEpVQk9NSVIKK01BUknEhiBMSlVCT01JUgorTUFSScSGIExKVVBLTworTUFSScSGIExVS0EKK01BUknEhiBNQVJBCitNQVJJxIYgTUFSSUpBCitNQVJJxIYgTUFSSUpBCitNQVJJxIYgTUFSSUpBCitNQVJJxIYgTUFSS08KK01BUknEhiBNQVJLTworTUFSScSGIE1JxIZBIERJUEwgSU5HCitNQVJJxIYgTUlIQUpMTworTUFSScSGIE1JTEFOIERJUEwgSU5HCitNQVJJxIYgTUlMQU4gRFIKK01BUknEhiBNSUxBTkEKK01BUknEhiBNSUxBTktBCitNQVJJxIYgTUlMQU4KK01BUknEhiBNSUxBTgorTUFSScSGIE1JTEFOCitNQVJJxIYgTUlMQU4KK01BUknEhiBNSUxBTgorTUFSScSGIE1JTEFOCitNQVJJxIYgTUlMQU4KK01BUknEhiBNSUxBTgorTUFSScSGIE1JTEFOCitNQVJJxIYgTUlMRSBESVBMIE9FQworTUFSScSGIE1JTEVOQQorTUFSScSGIE1JTEVOQQorTUFSScSGIE1JTEVOS08KK01BUknEhiBNSUxFTktPCitNQVJJxIYgTUlMRU5LTworTUFSScSGIE1JTElTQVYKK01BUknEhiBNSUxPxaAKK01BUknEhiBNSUxPxaAKK01BUknEhiBNSUxPUkFECitNQVJJxIYgTUlMT1JBRAorTUFSScSGIE1JTE9TQVYKK01BUknEhiBNSUxVTgorTUFSScSGIE1JTFVUSU4KK01BUknEhiBNSVJLTworTUFSScSGIE1JUktPCitNQVJJxIYgTUlSS08KK01BUknEhiBNSVJLTworTUFSScSGIE1JUk9MSlVCCitNQVJJxIYgTUlUQVIKK01BUknEhiBNSVRBUgorTUFSScSGLU1JVFJPVknEhiBNQVJJSkEKK01BUknEhiBNT03EjElMTworTUFSScSGIE5FQk9KxaBBCitNQVJJxIYgTkVERUxKS08KK01BUknEhiBORVZFTktBCitNQVJJxIYgTklLT0xBCitNQVJJxIYgTklLT0xBCitNQVJJxIYgTk9WQUsKK01BUknEhiBOT1ZBSworTUFSScSGIE9TVE9KQQorTUFSScSGIFBBVkxFCitNQVJJxIYgUEVUQVIKK01BUknEhiBQRVRBUgorTUFSScSGIFBSVk9TTEFWCitNQVJJxIYgUkFESVZPSgorTUFSScSGIFJBRE1JTEEKK01BUknEhiBSQURNSUxBCitNQVJJxIYgUkFETUlMQQorTUFSScSGIFJBRE9NSVIgRFIKK01BUknEhiBSQURPU0FWCitNQVJJxIYgUkFET1NMQVZBCitNQVJJxIYgUkFET1ZBTktBCitNQVJJxIYgUkFET1ZBTgorTUFSScSGIFJBRE9WQU4KK01BUknEhiBSQUpLTworTUFSScSGIFNBVkEKK01BUknEhiBTSU5JxaBBCitNQVJJxIYgU0xBVklDQQorTUFSScSGIFNMQVZLTworTUFSScSGIFNMQVZLTworTUFSScSGIFNMT0JPREFOCitNQVJJxIYgU0xPQk9EQU4KK01BUknEhiBTUkVURU4gRFIgUFJPRgorTUFSScSGIFNUQU5JU0xBVgorTUFSScSGIFNUQU5JU0xBVgorTUFSScSGIFNURVZBTgorTUFSScSGIFNURVZBTgorTUFSScSGIFNURVZBTgorTUFSScSGIFNURVZBTgorTUFSScSGIFNURVZBTgorTUFSScSGIFNURVZLQQorTUFSScSGIFNURVZPCitNQVJJxIYgU1RPSkFOS0EKK01BUknEhiBTVkVUSVNMQVYgUFJPRkVTT1IKK01BUknEhiBTVkVUSVNMQVYKK01BUknEhiBUQU1BUkEgRElQTCBJTkcKK01BUknEhiBVUk/FoAorTUFSScSGIFZBU0tBCitNQVJJxIYgVkFTTworTUFSScSGIFZFUkEKK01BUknEhiBWSUQKK01BUknEhiBWTEFESVNMQVYKK01BUknEhiBWT0pJU0xBViBEUiBQUk9GCitNQVJJxIYgVlVLQURJTgorTUFSScSGIFpPUkFOS0EKK01BUknEhiBaT1JBTgorTUFSScSGIFpPUkFOCitNQVJJxIZFVknEhiBaT1JBTgorTUFSSUHFoCBKT8W9RUYKK01BUklBxaAgTUFSSUpBCitNQVJJSkHFoCBKT1ZBTgorTUFSSUpBxaAgTUFSSUpBCitNQVJJSkHFoCBNQVJJSkEKK01BUklKQcWgIE1BUklKQQorTUFSSUpBxaAgTUlIQUxKCitNQVJJSkHFoCBTVEVWQU4KK01BUklKQcWgIFpERU5LQQorTUFSSUpBTiDFvUVMSktPCitNQVJJSkFOIEJSQU5JU0xBVkEKK01BUklKQU5BQyBTVE9KQQorTUFSSUpBTk9WScSGIFJBRE9KS0EKK01BUklKQU5PVknEhiBTVkVUT1pBUgorTUFSSUpBTlNLSSDEkE9SxJBFCitNQVJJSkFOU0tJIMSQT1LEkEUKK01BUklKQU5TS0kgQUxFS1NBTkRBUgorTUFSSUpBTlNLSSBNSUxPxaAKK01BUklKQU5TS0kgU1RFVkFOCitNQVJJSkFOU0tJIFZFU05BCitNQVJJTiBNSUxBTgorTUFSSU4gTUlMSVZPSgorTUFSSU4gTUxBREVOCitNQVJJTiBOQVRBTElKQQorTUFSSU4gTklLT0xBCitNQVJJTiBSQURPTUlSCitNQVJJTiBWQVNPCitNQVJJTiBWRVJJQ0EKK01BUklOIFpPUkFOCitNQVJJTsSMRVYgQlJBTklTTEFWCitNQVJJTsSMRVYgU1RFVkFOCitNQVJJTsSMScSGIERSQUdJQ0EKK01BUklOxIxJxIYgTUFSS08KK01BUklOxIxJxIYgTUlMQU4KK01BUklOxIxJxIYgTUlMQU4KK01BUklOxIxJxIYgT0xHQQorTUFSSU7FoEVLIFZKRUtPU0xBVgorTUFSSU5BIMWgVEVGQU4KK01BUklOQSBMVcSGSUpBTgorTUFSSU5BQyBaT1JBTgorTUFSSU5JxIYgQlJBTktPCitNQVJJTknEhiBJVk8KK01BUklOScSGIFNUSVBBTgorTUFSSU5LT1YgxIxFREEKK01BUklOS09WIMW9QVJLTworTUFSSU5LT1YgxJBPUsSQRQorTUFSSU5LT1YgxJBPUsSQRQorTUFSSU5LT1YgxJBVUkEgRElQTCBJTkcKK01BUklOS09WIEFOS0lDQQorTUFSSU5LT1YgQVJTRU4KK01BUklOS09WIEJPxb1BCitNQVJJTktPViBERUpBTgorTUFSSU5LT1YgRFJBR0lOSkEKK01BUklOS09WIERVxaBBTgorTUFSSU5LT1YgRkVNS0EKK01BUklOS09WIEdBVlJBCitNQVJJTktPViBKT1ZBTktBCitNQVJJTktPViBKT1ZBTgorTUFSSU5LT1YgSk9WQU4KK01BUklOS09WIEpVTElKQU5BCitNQVJJTktPViBKVUxJSkFOQQorTUFSSU5LT1YgTUVMQU5JSkEKK01BUklOS09WIE1JTEVOS08KK01BUklOS09WIE1JTElWT0ogRElQTCBJTkcKK01BUklOS09WIE1JTEpBCitNQVJJTktPViBNSUxPUkFECitNQVJJTktPViBNSUxPU0FWQQorTUFSSU5LT1YgTUlPRFJBRworTUFSSU5LT1YgTUlSSkFOQQorTUFSSU5LT1YgTU9NxIxJTE8KK01BUklOS09WIE1PTcSMSUxPCitNQVJJTktPViBOSUtPTEEKK01BUklOS09WIE9NRVIKK01BUklOS09WIFBBSkEKK01BUklOS09WIFBSRURSQUcKK01BUklOS09WIFJVxb1JQ0EKK01BUklOS09WIFNBVkEKK01BUklOS09WIFNJTknFoEEKK01BUklOS09WIFNMQVZLTworTUFSSU5LT1YgU0xBVktPCitNQVJJTktPViBTVEVWQU4KK01BUklOS09WIFNURVZBTgorTUFSSU5LT1YgU1RSQUhJTkpBIERSIFBST0YKK01BUklOS09WIFZFU0VMSU4KK01BUklOS09WIFZFU05BCitNQVJJTktPViBWTEFEQQorTUFSSU5LT1YgVkxBSktPCitNQVJJTktPViBaT1JBTgorTUFSSU5LT1ZJxIYgxIxFRE9NSVIKK01BUklOS09WScSGIMW9SVZBCitNQVJJTktPVknEhiDFvUlWS0EKK01BUklOS09WScSGIMW9SVZLTworTUFSSU5LT1ZJxIYgxb1JVktPCitNQVJJTktPVknEhiDFvUlWS08KK01BUklOS09WScSGIMW9SVZPSklOCitNQVJJTktPVknEhiDFvUlWT1JBRAorTUFSSU5LT1ZJxIYgQk9HT0xKVUIKK01BUklOS09WScSGIEJPSkEKK01BUklOS09WScSGIEJPUklTTEFWCitNQVJJTktPVknEhiBCT1JJVk9KRSBEUgorTUFSSU5LT1ZJxIYgQlJBTktPCitNQVJJTktPVknEhiBCUkFUSU1JUgorTUFSSU5LT1ZJxIYgRFJBR0FOCitNQVJJTktPVknEhiBEUkFHQU4KK01BUklOS09WScSGIERSQUdBTgorTUFSSU5LT1ZJxIYgRFJBR0FOCitNQVJJTktPVknEhiBEUkFHSUNBCitNQVJJTktPVknEhiBEUkFHSUNBCitNQVJJTktPVknEhiBKRUxJQ0EKK01BUklOS09WScSGIEpPVkFOCitNQVJJTktPVknEhiBLQVRBTElOCitNQVJJTktPVknEhiBMRVBPU0FWQQorTUFSSU5LT1ZJxIYgTUnEhk8KK01BUklOS09WScSGIE1JTEFOCitNQVJJTktPVknEhiBNSUxFTkEKK01BUklOS09WScSGIE1JTEVOQQorTUFSSU5LT1ZJxIYgTUlMRU5BCitNQVJJTktPVknEhiBNSUxFTgorTUFSSU5LT1ZJxIYgTUlMSUNBCitNQVJJTktPVknEhiBNSUxJVk9KRQorTUFSSU5LT1ZJxIYgTUlMT0pLTworTUFSSU5LT1ZJxIYgTUlMT1JBRAorTUFSSU5LT1ZJxIYgTUlMT1ZBTgorTUFSSU5LT1ZJxIYgTUlMVVRJTgorTUFSSU5LT1ZJxIYgTUlSS08KK01BUklOS09WScSGIE1JUk9TTEFWCitNQVJJTktPVknEhiBNSVRBUgorTUFSSU5LT1ZJxIYgTUlUQVIKK01BUklOS09WScSGIE5FTkFECitNQVJJTktPVknEhiBOSUtPTEEKK01BUklOS09WScSGIE5JS09MQQorTUFSSU5LT1ZJxIYgTklLT0xBCitNQVJJTktPVknEhiBSQURBCitNQVJJTktPVknEhiBSQURJVk9KCitNQVJJTktPVknEhiBSQURPSklDQQorTUFSSU5LT1ZJxIYgUkFET0pLQQorTUFSSU5LT1ZJxIYgUkFET01JUgorTUFSSU5LT1ZJxIYgUkFET1NMQVYgRFIKK01BUklOS09WScSGIFJBRE9WQU4KK01BUklOS09WScSGIFJJU1RBTkEKK01BUklOS09WScSGIFJVxb1JQ0EKK01BUklOS09WScSGIFNBVkEKK01BUklOS09WScSGIFNMQVZLTworTUFSSU5LT1ZJxIYgU0xPQk9EQU4KK01BUklOS09WScSGIFNMT0JPREFOCitNQVJJTktPVknEhiBTTE9CT0RBTgorTUFSSU5LT1ZJxIYgU09GSUpBCitNQVJJTktPVknEhiBTVEFOS08KK01BUklOS09WScSGIFNUQU5PSktBCitNQVJJTktPVknEhiBTVEVWQU4KK01BUklOS09WScSGIFNUT0pBTktBCitNQVJJTktPVknEhiBTVE9KQU4KK01BUklOS09WScSGIFNWRVRJU0xBVgorTUFSSU5LT1ZJxIYgVkxBRElDQQorTUFSSU5LT1ZJxIYgVkxBRE8KK01BUklOS09WScSGIFZPSklOCitNQVJJTktPVknEhiBWT0pJU0xBVktBCitNQVJJTktPVknEhiBWVUtBxaBJTgorTUFSSU5LT1ZJxIYgWk9SQU4KK01BUklOT1YgTUFSSU5LTworTUFSSU5PVknEhiDEkE9SxJBFCitNQVJJTk9WScSGIEFMRUtTQU5EQVIKK01BUklOT1ZJxIYgQUxFS1NBTkRBUgorTUFSSU5PVknEhiBET0JSSVZPSkUKK01BUklOT1ZJxIYgRFXFoEFOCitNQVJJTk9WScSGIEtBVElDQQorTUFSSU5PVknEhiBNQVJJSkEKK01BUklOT1ZJxIYgTUlMQU4KK01BUklOT1ZJxIYgUEVKTworTUFSSU5PVknEhi1TUkRBTk9WIERBTklDQQorTUFSSU5PVknEhiBUT01JU0xBVgorTUFSSU5PVknEhiBWSU5LQQorTUFSSU5PVknEhiBaTEFUSUNBCitNQVJJTk9WScSGIFpPUklDQQorTUFSSU5PVknEhiBaT1JJQ0EKK01BUklOT1ZTS0kgxJBPUsSQRQorTUFSSU5PVlNLSSBLQVRJQ0EKK01BUkpBxaAgQU5LQQorTUFSSkHFoCBKQU5LTworTUFSSkHFoCBNScWgQQorTUFSSkHFoCBNSUhBSkxPCitNQVJKQcWgIE1JTEtBCitNQVJKQcWgIFNUQU5LTworTUFSSkHFoCBWTEFESU1JUgorTUFSSkFOIERVxaBBTgorTUFSSkFOIE1JTElKQU5BCitNQVJKQU4gTUlSS08KK01BUkpBTk9WIERVxaBBTgorTUFSSkFOT1YgRVLFvUVCRVQKK01BUkpBTk9WIEpPVkFOS0EKK01BUkpBTk9WIExKVUJPTUlSCitNQVJKQU5PViBNQVJBCitNQVJKQU5PViBNSUhBSkxPIERSCitNQVJKQU5PViBNSUxFTktPCitNQVJKQU5PViBPTEdBCitNQVJKQU5PViBSQURPVkFOCitNQVJKQU5PViBTT05KQQorTUFSSkFOT1YgVElNT1RJSkUKK01BUkpBTk9WIFZVSklDQQorTUFSSkFOT1ZJxIYgxIxFRE9NSVIKK01BUkpBTk9WScSGIMW9QVJLTworTUFSSkFOT1ZJxIYgxb1FTEpLTworTUFSSkFOT1ZJxIYgxb1JVk9UQQorTUFSSkFOT1ZJxIYgxb1JVk9UQQorTUFSSkFOT1ZJxIYgxJBPUsSQRQorTUFSSkFOT1ZJxIYgxJBVUk8KK01BUkpBTk9WScSGIEFMRUtTQU5EQVIKK01BUkpBTk9WScSGIEJJTEpBTkEKK01BUkpBTk9WScSGIEJPxb1JREFSCitNQVJKQU5PVknEhiBCT8W9SURBUgorTUFSSkFOT1ZJxIYgQk9KQU5BCitNQVJKQU5PVknEhiBCT1JJVk9KRQorTUFSSkFOT1ZJxIYgQk9TSUxKS0EKK01BUkpBTk9WScSGIEJSQU5JTUlSCitNQVJKQU5PVknEhiBEQU5BCitNQVJKQU5PVknEhiBEQU5JTEtPCitNQVJKQU5PVknEhiBESU1JVFJJSkUKK01BUkpBTk9WScSGIERSQUdBTgorTUFSSkFOT1ZJxIYgRFJBR0nFoEEKK01BUkpBTk9WScSGIERSQUdJxaBBCitNQVJKQU5PVknEhiBEUkFHT01JUgorTUFSSkFOT1ZJxIYgRFXFoEFOS08KK01BUkpBTk9WScSGIERVxaBBTgorTUFSSkFOT1ZJxIYgRFXFoEFOCitNQVJKQU5PVknEhiBEVcWgS08KK01BUkpBTk9WScSGIEdBQlJJSkVMCitNQVJKQU5PVknEhiBHT0pLTworTUFSSkFOT1ZJxIYgSk9WQU5LQQorTUFSSkFOT1ZJxIYgSk9WQU4KK01BUkpBTk9WScSGIEpPVkEKK01BUkpBTk9WScSGIExKVUJJVk9KRQorTUFSSkFOT1ZJxIYgTEpVQk9NSVIKK01BUkpBTk9WScSGIExVS0EKK01BUkpBTk9WScSGIE1BUklKQQorTUFSSkFOT1ZJxIYgTUlMQU4KK01BUkpBTk9WScSGIE1JTEFOCitNQVJKQU5PVknEhiBNSUxBTgorTUFSSkFOT1ZJxIYgTUlMQU4KK01BUkpBTk9WScSGIE1JTEVOS08gRFIgSU5HCitNQVJKQU5PVknEhiBNSUxJQ0EgRFIKK01BUkpBTk9WScSGIE1JTE/FoAorTUFSSkFOT1ZJxIYgTUlMT01JUgorTUFSSkFOT1ZJxIYgTUlMT1JBRAorTUFSSkFOT1ZJxIYgTUlMT1JBRAorTUFSSkFOT1ZJxIYgTUlMT1JBRAorTUFSSkFOT1ZJxIYgTUlMT1JBRAorTUFSSkFOT1ZJxIYgTUlMVVRJTgorTUFSSkFOT1ZJxIYgTUlST1NMQVYKK01BUkpBTk9WScSGIE1JUk9TTEFWCitNQVJKQU5PVknEhiBNSVRBUgorTUFSSkFOT1ZJxIYgTkFEQQorTUFSSkFOT1ZJxIYgTkFUQUxJSkEKK01BUkpBTk9WScSGIE5FREVMSktPCitNQVJKQU5PVknEhiBORURFTEpLTworTUFSSkFOT1ZJxIYgTklLT0xBIE1SCitNQVJKQU5PVknEhiBOSUtPTEEKK01BUkpBTk9WScSGIE5JS09MQQorTUFSSkFOT1ZJxIYgTklLT0xBCitNQVJKQU5PVknEhiBOSUtPTEEKK01BUkpBTk9WScSGIE5JS09MQQorTUFSSkFOT1ZJxIYgUFJWT1NMQVYKK01BUkpBTk9WScSGIFJBRE1JTEEKK01BUkpBTk9WScSGIFJVxb1JQ0EKK01BUkpBTk9WScSGIFNMQVZPTEpVQiBEUgorTUFSSkFOT1ZJxIYgU1RFVktBCitNQVJKQU5PVknEhiBTVkVUTEFOQQorTUFSSkFOT1ZJxIYgVEFUSkFOQQorTUFSSkFOT1ZJxIYgVFJJVlVOCitNQVJKQU5PVknEhiBWRUxJTUlSCitNQVJKQU5PVknEhiBWRVJBCitNQVJKQU5PVknEhiBWSUQKK01BUkpBTk9WScSGIFZMQURPCitNQVJKQU5PVknEhiBWT0pJTgorTUFSSkFOT1ZJxIYgWk9SQU4KK01BUkpBTk9WScSGIFpPUkEKK01BUkpBTlNLSSBGRURPUgorTUFSS0FOT1YgTEpVQklDQQorTUFSS0FOT1YgWk9SSUNBCitNQVJLR1JBRiBBTklDQQorTUFSS0dSQUYgU09GSUpBCitNQVJLSSBORVZFTktBCitNQVJLSSBOSUtPTEEKK01BUktJIFNMQVZLQQorTUFSS0nFoCBTT0ZJSkEKK01BUktJxIZFVknEhiBEVcWgQU5LQQorTUFSS0nEhkVWScSGIE1JTEFOCitNQVJLTyBKQU4gUFJPRkVTT1IKK01BUktPIE5BREEgRFIKK01BUktPU0tJIFNUT0pBTgorTUFSS09WIMW9QVJLTworTUFSS09WIMW9SVZBCitNQVJLT1YgxJBVUkEKK01BUktPViBBTsSQRUxLQQorTUFSS09WIENWRVRBTkEKK01BUktPViBET0JSSUxBCitNQVJLT1YgRFJBR0FOCitNQVJLT1YgRFJBR0FOCitNQVJLT1YgRFXFoEFOCitNQVJLT1YgRU1JTAorTUFSS09WIEZPVElKRQorTUFSS09WIElMSUpBCitNQVJLT1YgSVZJQ0EKK01BUktPVi1KRUxFTknEhiBNSVJKQU5BCitNQVJLT1YgTEpVQk9NSVIKK01BUktPViBMSlVCT01JUgorTUFSS09WIExKVUJPTUlSCitNQVJLT1YgTUFSSUpBCitNQVJLT1YgTUlMQU4KK01BUktPViBNSUxBTgorTUFSS09WIE1JTEVOS08KK01BUktPViBNSUxJQ0EKK01BUktPViBNSUxJQ0EKK01BUktPViBNSVJBCitNQVJLT1YgTkFEQQorTUFSS09WIE5BREEKK01BUktPViBOSUtPTEEKK01BUktPViBQRVRBUgorTUFSS09WIFBFVEFSCitNQVJLT1YgUkFESVNMQVYKK01BUktPViBSQURPU0FWCitNQVJLT1YgUkFET1ZBTgorTUFSS09WIFJBRE9WQU4KK01BUktPViBTQVZBCitNQVJLT1YgU0lOScWgQQorTUFSS09WIFNQQVNPSkUgRFIKK01BUktPViBTVE9KQU4KK01BUktPViBUT01JU0xBVgorTUFSS09WIFZFUkEKK01BUktPViBWSURPU0FWQQorTUFSS09WIFpPUkFOIE1SCitNQVJLT1YgWk9SQQorTUFSS09WIFpPUktBCitNQVJLT1ZJxIYgxIxFRE9NSVIKK01BUktPVknEhiDFvUFSS08KK01BUktPVknEhiDFvUFSS08KK01BUktPVknEhiDFvUFSS08KK01BUktPVknEhiDFvUVMSUJPUgorTUFSS09WScSGIMW9RUxKS0EKK01BUktPVknEhiDFvUVMSktPCitNQVJLT1ZJxIYgxb1JVkFOCitNQVJLT1ZJxIYgxb1JVktPCitNQVJLT1ZJxIYgxb1JVk9KSU4gRFIKK01BUktPVknEhiDFvUlWT0pJTgorTUFSS09WScSGIMW9SVZPSklOCitNQVJLT1ZJxIYgxb1JVk9TTEFWCitNQVJLT1ZJxIYgxb1JVk9UQQorTUFSS09WScSGIMSQRU5BCitNQVJLT1ZJxIYgxJBPUsSQRQorTUFSS09WScSGIMSQT1LEkEUKK01BUktPVknEhiDEkE9SxJBFCitNQVJLT1ZJxIYgxJBPUsSQRQorTUFSS09WScSGIMSQT1LEkEUKK01BUktPVknEhiBBREFNCitNQVJLT1ZJxIYgQUxFS1NBTkRBUgorTUFSS09WScSGIEFMRUtTQU5EQVIKK01BUktPVknEhiBBTEVLU0FOREFSCitNQVJLT1ZJxIYgQUxFS1NBTkRBUgorTUFSS09WScSGIEFMRUtTQU5EQVIKK01BUktPVknEhiBBTlRPTklKRQorTUFSS09WScSGIEJPxaBLTworTUFSS09WScSGIEJPUklTTEFWCitNQVJLT1ZJxIYgQk9SSVNMQVYKK01BUktPVknEhiBCT1JJUworTUFSS09WScSGIEJPUklWT0oKK01BUktPVknEhiBCUkFOSVNMQVYKK01BUktPVknEhiBCUkFOSVNMQVYKK01BUktPVknEhiBCUkFOSVNMQVYKK01BUktPVknEhiBCUkFOS08KK01BUktPVknEhiBCUkFOS08KK01BUktPVknEhiBCVURJTUlSCitNQVJLT1ZJxIYgQlVESU1JUgorTUFSS09WScSGIENWRVRLTworTUFSS09WScSGIENWRVRLTworTUFSS09WScSGIERBTklDQQorTUFSS09WScSGIERBTklDQQorTUFSS09WScSGIERBTklDQQorTUFSS09WScSGIERFSkFOCitNQVJLT1ZJxIYgREVTQU5LQQorTUFSS09WScSGIERJTUlUUklKRQorTUFSS09WScSGIERJTUlUUklKRQorTUFSS09WScSGIERPQlJPU0FWCitNQVJLT1ZJxIYgRE9CUk9TQVYKK01BUktPVknEhiBEUkFHQU4KK01BUktPVknEhiBEUkFHQU4KK01BUktPVknEhiBEUkFHQU4KK01BUktPVknEhiBEUkFHScWgQQorTUFSS09WScSGIERSQUdPSkEKK01BUktPVknEhiBEUkFHT0pBCitNQVJLT1ZJxIYgRFJBR09MSlVCCitNQVJLT1ZJxIYgRFJBR09MSlVCCitNQVJLT1ZJxIYgRFJBR09MSlVCCitNQVJLT1ZJxIYgRFJBR09NSVIKK01BUktPVknEhiBEUkFHT1NMQVYKK01BUktPVknEhiBEUkFHT1NMQVYKK01BUktPVknEhiBEUkFHVVRJTgorTUFSS09WScSGIERVxaBBTgorTUFSS09WScSGIERVxaBBTgorTUFSS09WScSGIERVxaBBTgorTUFSS09WScSGIERVxaBBTgorTUFSS09WScSGIERVxaBBTgorTUFSS09WScSGIERVxaBBTgorTUFSS09WScSGIERVxaBBTgorTUFSS09WScSGIERVxaBBTgorTUFSS09WScSGIERVxaBBTgorTUFSS09WScSGIERVxaBBTgorTUFSS09WScSGIERVxaBBTgorTUFSS09WScSGIERVQlJBVktPCitNQVJLT1ZJxIYgRVLFvUVCRVQKK01BUktPVknEhiBFVklDQQorTUFSS09WScSGIEdPUkFOCitNQVJLT1ZJxIYgR09SREFOQQorTUFSS09WScSGIElHTkpBVAorTUFSS09WScSGIElMSUpBCitNQVJLT1ZJxIYgSUxJSkEKK01BUktPVknEhiBJUkVOQQorTUFSS09WScSGIElWQU4KK01BUktPVknEhiBJVktPCitNQVJLT1ZJxIYgSkFEUkFOS0EKK01BUktPVknEhiBKQURSQU5LQQorTUFSS09WScSGIEpBUk9TTEFWCitNQVJLT1ZJxIYgSkVMRU5BCitNQVJLT1ZJxIYgSkVMSUNBCitNQVJLT1ZJxIYgSkVMSUNBCitNQVJLT1ZJxIYgSkVMSVNBVktBCitNQVJLT1ZJxIYgSk9WQU4gRElQTCBJTkcKK01BUktPVknEhiBKT1ZBTktBCitNQVJLT1ZJxIYgSk9WQU4KK01BUktPVknEhiBKT1ZBTgorTUFSS09WScSGIEpPVkFOCitNQVJLT1ZJxIYgSk9WQU4KK01BUktPVknEhiBKT1ZBTgorTUFSS09WScSGIEpPVkFOCitNQVJLT1ZJxIYgSk9WQU4KK01BUktPVknEhiBKT1ZPCitNQVJLT1ZJxIYgSk9WTworTUFSS09WScSGIEpVTElKQQorTUFSS09WScSGIEpVTEtBCitNQVJLT1ZJxIYgS0FSTE8KK01BUktPVknEhiBLQVJPTElOQQorTUFSS09WScSGIEtBUk9MSU5BCitNQVJLT1ZJxIYgS0FUQQorTUFSS09WScSGIEtBVElDQQorTUFSS09WScSGIEtPU0FOQQorTUFSS09WScSGIEtPU1RBCitNQVJLT1ZJxIYgS1JBU0lNSVIKK01BUktPVknEhiBLU0VOSUpBCitNQVJLT1ZJxIYgTEVQT1NBVkEgTEVLQVIKK01BUktPVknEhiBMSlVCScWgQQorTUFSS09WScSGIExKVUJJQ0EKK01BUktPVknEhiBMSlVCSUNBCitNQVJLT1ZJxIYgTEpVQklDQQorTUFSS09WScSGIExKVUJJTktPCitNQVJLT1ZJxIYgTEpVQk9NSVIKK01BUktPVknEhiBMSlVCT01JUgorTUFSS09WScSGIExVS0EKK01BUktPVknEhi1NQUpURU5KSSBBTkRSSUpBCitNQVJLT1ZJxIYtTUFKVEVOSkkgTUlIQUxKCitNQVJLT1ZJxIYgTUFSQQorTUFSS09WScSGIE1BUklKQQorTUFSS09WScSGIE1BUklKQQorTUFSS09WScSGIE1BUklOQQorTUFSS09WScSGIE1BUktPCitNQVJLT1ZJxIYgTUFSS08KK01BUktPVknEhiBNSUhBSUxPCitNQVJLT1ZJxIYgTUlIQUpMTworTUFSS09WScSGIE1JTEFOCitNQVJLT1ZJxIYgTUlMQU4KK01BUktPVknEhiBNSUxBTgorTUFSS09WScSGIE1JTEFOCitNQVJLT1ZJxIYgTUlMQU4KK01BUktPVknEhiBNSUxBTgorTUFSS09WScSGIE1JTEFOCitNQVJLT1ZJxIYgTUlMQU4KK01BUktPVknEhiBNSUxBTgorTUFSS09WScSGIE1JTEFOCitNQVJLT1ZJxIYgTUlMQQorTUFSS09WScSGIE1JTEVWQQorTUFSS09WScSGIE1JTEVWQQorTUFSS09WScSGIE1JTEtPCitNQVJLT1ZJxIYgTUlMS08KK01BUktPVknEhiBNSUxPxaAKK01BUktPVknEhiBNSUxPxaAKK01BUktPVknEhiBNSUxPxaAKK01BUktPVknEhiBNSUxPxaAKK01BUktPVknEhiBNSUxPTEpVQgorTUFSS09WScSGIE1JTE9NSVIKK01BUktPVknEhiBNSUxPUkFECitNQVJLT1ZJxIYgTUlMT1JBRAorTUFSS09WScSGIE1JTE9SQUQKK01BUktPVknEhiBNSUxPUkFECitNQVJLT1ZJxIYgTUlMT1JBRAorTUFSS09WScSGIE1JTE8KK01BUktPVknEhiBNSUxVVElOCitNQVJLT1ZJxIYgTUlMVVRJTgorTUFSS09WScSGIE1JT0RSQUcKK01BUktPVknEhiBNSU9EUkFHCitNQVJLT1ZJxIYgTUlPRFJBRworTUFSS09WScSGIE1JUktPCitNQVJLT1ZJxIYgTUlSS08KK01BUktPVknEhiBNSVJPU0xBVkEKK01BUktPVknEhiBNSVJPU0xBVkEKK01BUktPVknEhiBNSVJPU0xBVgorTUFSS09WScSGIE1JUk9TTEFWCitNQVJLT1ZJxIYgTUlST1NMQVYKK01BUktPVknEhiBNSVJPU0xBVgorTUFSS09WScSGIE1MQURFTgorTUFSS09WScSGIE1MQURFTgorTUFSS09WScSGIE1PTcSMSUxPCitNQVJLT1ZJxIYgTU9NxIxJTE8KK01BUktPVknEhiBNT01JUgorTUFSS09WScSGIE5BREEKK01BUktPVknEhiBOQURBCitNQVJLT1ZJxIYgTkFEQQorTUFSS09WScSGIE5BREEKK01BUktPVknEhiBOQURBCitNQVJLT1ZJxIYgTkFUQcWgQQorTUFSS09WScSGIE5BVEFMSUpBCitNQVJLT1ZJxIYgTkVERUxKS08KK01BUktPVknEhiBORUdPU0xBVgorTUFSS09WScSGIE5FTUFOSkEKK01BUktPVknEhiBORU5BRAorTUFSS09WScSGIE5FTkFECitNQVJLT1ZJxIYgTklLT0xBCitNQVJLT1ZJxIYgTklLT0xBCitNQVJLT1ZJxIYgTklLT0xBCitNQVJLT1ZJxIYgTklLT0xBCitNQVJLT1ZJxIYgT0JSQUQKK01BUktPVknEhiBPQlJBRAorTUFSS09WScSGIE9MR0EKK01BUktPVknEhiBPTEdBCitNQVJLT1ZJxIYgT0xHQQorTUFSS09WScSGIE9MR0EKK01BUktPVknEhiBPTEdBCitNQVJLT1ZJxIYgT0xHQQorTUFSS09WScSGIE9MR0EKK01BUktPVknEhiBQQVZMRQorTUFSS09WScSGIFBFSsSMQQorTUFSS09WScSGIFBFVEFSIERJUEwgSU5HCitNQVJLT1ZJxIYgUEVUQVIgVkVURVJJTkFSCitNQVJLT1ZJxIYgUEVUQVIKK01BUktPVknEhiBQRVRBUgorTUFSS09WScSGIFBFVEFSCitNQVJLT1ZJxIYgUEVUQVIKK01BUktPVknEhiBQRVRBUgorTUFSS09WScSGIFBFVFJPTklKRQorTUFSS09WScSGIFBSRURSQUcKK01BUktPVknEhiBQUlZPU0xBViBEUgorTUFSS09WScSGIFJBxaBBCitNQVJLT1ZJxIYgUkFERU5LTworTUFSS09WScSGIFJBREUKK01BUktPVknEhiBSQURJTktBCitNQVJLT1ZJxIYgUkFESVZPSgorTUFSS09WScSGIFJBRElWT0oKK01BUktPVknEhiBSQURNSUxBCitNQVJLT1ZJxIYgUkFETUlMQQorTUFSS09WScSGIFJBRE9KS0EKK01BUktPVknEhiBSQURPU0FWIERJUEwgSU5HCitNQVJLT1ZJxIYgUkFET1NBVgorTUFSS09WScSGIFJBRE9TTEFWCitNQVJLT1ZJxIYgUkFET1ZBTktBCitNQVJLT1ZJxIYgUkFET1ZBTgorTUFSS09WScSGIFJBRE9WQU4KK01BUktPVknEhiBSQURPVkFOCitNQVJLT1ZJxIYgUkFOS08KK01BUktPVknEhiBSQVRLTworTUFSS09WScSGIFJPRE9MSlVCCitNQVJLT1ZJxIYgUk9aQUxJSkEKK01BUktPVknEhiBSVcW9SUNBCitNQVJLT1ZJxIYgUlXFvUlDQQorTUFSS09WScSGIFNBxaBBCitNQVJLT1ZJxIYgU0FWQQorTUFSS09WScSGIFNBVkEKK01BUktPVknEhiBTQVZBCitNQVJLT1ZJxIYgU0lOScWgQQorTUFSS09WScSGIFNJTknFoEEKK01BUktPVknEhiBTTE9CT0RBTgorTUFSS09WScSGIFNMT0JPREFOCitNQVJLT1ZJxIYgU0xPQk9EQU4KK01BUktPVknEhiBTTUlMSkEKK01BUktPVknEhiBTUsSQQU4KK01BUktPVknEhiBTVEFOQQorTUFSS09WScSGIFNUQU5JxaBBCitNQVJLT1ZJxIYgU1RBTklNSVIKK01BUktPVknEhiBTVEFOSVNMQVYKK01BUktPVknEhiBTVEVGQU5JSkEKK01BUktPVknEhiBTVEVWQU4KK01BUktPVknEhiBTVEVWQU4KK01BUktPVknEhiBTVEVWQU4KK01BUktPVknEhiBTVEVWQU4KK01BUktPVknEhiBTVE9KQU4KK01BUktPVknEhiBTVE9KQU4KK01BUktPVknEhiBTVE9KQU4KK01BUktPVknEhiBTVE9KQQorTUFSS09WScSGIFNWRVRJU0xBVgorTUFSS09WScSGIFNWRVRMQU5BCitNQVJLT1ZJxIYgU1ZFVE9aQVIKK01BUktPVknEhiBTVkVUT1pBUgorTUFSS09WScSGIFRBTkFTSUpFCitNQVJLT1ZJxIYgVEFUSkFOQQorTUFSS09WScSGIFRPRE9SCitNQVJLT1ZJxIYgVE9NSVNMQVYKK01BUktPVknEhiBVR0xKRcWgQQorTUFSS09WScSGIFZBU0EKK01BUktPVknEhiBWQVNJTElKRSBEUgorTUFSS09WScSGIFZFTElNSVIKK01BUktPVknEhiBWRUxKS08KK01BUktPVknEhiBWRUxKS08KK01BUktPVknEhiBWRVJBCitNQVJLT1ZJxIYgVkVSQQorTUFSS09WScSGIFZFUkEKK01BUktPVknEhiBWRVJBCitNQVJLT1ZJxIYgVkVSQQorTUFSS09WScSGIFZJxIZBCitNQVJLT1ZJxIYgVklET0pFCitNQVJLT1ZJxIYgVklET1NBVkEKK01BUktPVknEhiBWSUQKK01BUktPVknEhiBWSU5LTworTUFSS09WScSGIFZJVEtPCitNQVJLT1ZJxIYgVklUT01JUgorTUFSS09WScSGIFZMQURBTgorTUFSS09WScSGIFZMQURJTUlSCitNQVJLT1ZJxIYgVkxBRElNSVIKK01BUktPVknEhiBWTEFESU1JUgorTUFSS09WScSGIFZMQURPSkUKK01BUktPVknEhiBWT0pJTgorTUFSS09WScSGIFZPSklOCitNQVJLT1ZJxIYgVk9KSVNMQVYKK01BUktPVknEhiBaQUdPUktBCitNQVJLT1ZJxIYgWkFHT1JLQQorTUFSS09WScSGIFpMQVRBCitNQVJLT1ZJxIYgWkxBVElKQQorTUFSS09WScSGIFpPUkFOCitNQVJLT1ZJxIYgWk9SQU4KK01BUktPVknEhiBaT1JBTgorTUFSS09WScSGIFpPUkFOCitNQVJLT1ZJxIYgWk9SQU4KK01BUktPVknEhiBaT1JBCitNQVJLT1ZJxIYgWk9SQQorTUFSS09WScSGIFpPUklDQQorTUFSS09WScSGQU4gSk9OCitNQVJLT1ZJTk9WScSGIFBFVEFSCitNQVJLT1ZJTk9WScSGIFBFVEFSCitNQVJLT1ZMSkVWIERSQUdBTgorTUFSS09WU0tJIENWRVRBTkEKK01BUktPVlNLSSBKT1ZBTgorTUFSS1NFUiBJVkFOCitNQVJLU0VSIEpPVkFOCitNQVJLVcWgIEFOS0lDQQorTUFSS1XFoCBCT1JJU0xBVgorTUFSS1XFoCBFTUlMCitNQVJLVcWgIEVURUxLQQorTUFSS1XFoCBKT1NJUAorTUFSS1XFoCBQUkVEUkFHCitNQVJLVcWgIFpPUkFOCitNQVJLVcWgRVYgRFJBR0lDQQorTUFSS1XFoEVWIEpFTEVOQQorTUFSTE9HIE1JUk9TTEFWCitNQVJPxaAgRFXFoEFOCitNQVJPxaAgTUlMT1ZBTgorTUFST8WgIFNURVZBTgorTUFST8WgIFZFTEpLTworTUFST8WgQU4gVElIT01JUgorTUFST8WgRVYgS1JJU1RBCitNQVJPxaBFVknEhiBJVkFOCitNQVJPxaBFVknEhiBNQVJLTworTUFST8WgRVZJxIYgTUFUQQorTUFST8WgRVZJxIYgTkFUQUxJSkEKK01BUk/FoEVWScSGIFZMQURJTUlSCitNQVJPxJBJIElWQU4KK01BUk/EkEkgSk9MQU4KK01BUk/EkEkgSk9MQU4KK01BUk9DSSBNQVJHSVRBCitNQVJPSkVWScSGIEFMRUtTQU5EQVIKK01BUk9KRVZJxIYgSVZBTktBCitNQVJPSkVWScSGIEpPU0lQCitNQVJPSkVWScSGIFJBRE1JTE8KK01BUk9KRVZJxIYgU0xBVk9MSlVCCitNQVJPTEQgSk9TSVAKK01BUk9MSSBJU0FLCitNQVJPTiBERU5FxaAKK01BUk9OIEtBUkxPCitNQVJPU0xBVkFDIE1JUk9TTEFWCitNQVJPVCBJVkFOCitNQVJPVEkgTUlLTE/FoAorTUFST1ZJxIYgxJBVUkEKK01BUk9WScSGIEJPUklTIERSCitNQVJPVknEhiBEQVJJTktBCitNQVJPVknEhiBNSUxJQ0EKK01BUk9WScSGIE1JUktPCitNQVJPVknEhiBSQURPTUlSCitNQVJPVknEhiBaREVOS0EKK01BUk9WU0tJIE5JS09MQQorTUFSU0VOScSGIERSQUdBTkEKK01BUlNFTknEhiBMRUtBCitNQVJTRU5JxIYgU0xBVk9KS0EKK01BUlRJxIYgxb1JVk9KSU4KK01BUlRJxIYgxJBVUkEKK01BUlRJxIYgQlJBTktBCitNQVJUScSGIERSQUdBTgorTUFSVEnEhiBLT1NUQQorTUFSVEnEhiBMQVpBUgorTUFSVEnEhiBMSlVCT01JUgorTUFSVEnEhiBNQVJBCitNQVJUScSGIE1JTEFOCitNQVJUScSGIE1JTEVOS08KK01BUlRJxIYgTUlMSUNBCitNQVJUScSGIE9MR0EKK01BUlRJxIYgUEVSTworTUFSVEnEhiBSQURNSUxBCitNQVJUScSGIFJBRE9NSVIKK01BUlRJxIYgU0xBVktPCitNQVJUScSGIFNURVZBTgorTUFSVEnEhiBWTEFESU1JUgorTUFSVEnEhiBWT0pOQQorTUFSVElDS0kgTUxBREVOCitNQVJUSU4gQUxPSlpJSkUKK01BUlRJTiBBTlRBTAorTUFSVElOIEVORFJFCitNQVJUSU4gRVLFvUVCRVQKK01BUlRJTiBJTVJFCitNQVJUSU4gSVZBTgorTUFSVElOIEpPU0lGCitNQVJUSU4gSk9WQU4KK01BUlRJTiBMSlVCSU5LQQorTUFSVElOIE1BVElMREEKK01BUlRJTiBNSVJPU0xBVkEKK01BUlRJTiBaVk9OSU1JUgorTUFSVElOxIxFVknEhiBNSUhBSkxPCitNQVJUSU7EjEnEhiBEQVZPUgorTUFSVElOxIxJxIYgREFWT1IKK01BUlRJTkHFoEVWScSGIEhFUk1JTkEKK01BUlRJTkHFoEVWScSGIE9UTworTUFSVElOQUsgSk9WQU4KK01BUlRJTkVDIEFOVE9OCitNQVJUSU5FSyBBTlRBTAorTUFSVElORUsgRkVSRU5DCitNQVJUSU5LTyBBTkRSSUpBCitNQVJUSU5PViDEkE9SxJBFCitNQVJUSU5PViBBTktBCitNQVJUSU5PViBMQVpBUgorTUFSVElOT1YgTUlLQQorTUFSVElOT1YgTUlMQU4gRFIKK01BUlRJTk9WIE1JTElDQQorTUFSVElOT1YgTUlMT8WgCitNQVJUSU5PViBNSUxPxaAKK01BUlRJTk9WIE1JTE/FoAorTUFSVElOT1YgU0FORFJBCitNQVJUSU5PViBTQVZBCitNQVJUSU5PViBTTEFWS08KK01BUlRJTk9WIFNMQVZLTworTUFSVElOT1ZJxIYgxJBPUsSQRQorTUFSVElOT1ZJxIYgQU7EkEVMS0EKK01BUlRJTk9WScSGIEFOQQorTUFSVElOT1ZJxIYgQU5JVEEKK01BUlRJTk9WScSGIEJSQU5LQQorTUFSVElOT1ZJxIYgREVTQU5LQQorTUFSVElOT1ZJxIYgRFXFoEFOCitNQVJUSU5PVknEhiBFTElaQUJFVEEKK01BUlRJTk9WScSGIEZJTElQCitNQVJUSU5PVknEhiBGSU5LQQorTUFSVElOT1ZJxIYgSVZPCitNQVJUSU5PVknEhiBKRUxFTkEKK01BUlRJTk9WScSGIEpPVkFOIFZFVEVSSU5BUgorTUFSVElOT1ZJxIYgTUFSSUpBTkEKK01BUlRJTk9WScSGIE1BUklKQQorTUFSVElOT1ZJxIYgTUlMRQorTUFSVElOT1ZJxIYgTUlMSUNBCitNQVJUSU5PVknEhiBNSUxLQQorTUFSVElOT1ZJxIYgTUlMS0EKK01BUlRJTk9WScSGIE5BREEKK01BUlRJTk9WScSGIE5FTkFECitNQVJUSU5PVknEhiBPTEdBCitNQVJUSU5PVknEhiBQRVJTSURBCitNQVJUSU5PVknEhiBSSVNUQQorTUFSVElOT1ZJxIYgU0xBVktPCitNQVJUSU5PVknEhiBTVEFOScWgQQorTUFSVElOT1ZJxIYgU1RBTktBCitNQVJUSU5PVknEhiBTVEVWQU4KK01BUlRJTk9WScSGIFNWRVRPWkFSCitNQVJUSU5PVknEhiBVUk/FoAorTUFSVElOT1ZJxIYgVkVMSU1JUgorTUFSVElOT1ZJxIYgVkVMSktPCitNQVJUSU5PVknEhiBaQVJJSkUKK01BUlRJTk9WU0tJIFJPTUFOCitNQVJUT04gxaBBTkRPUgorTUFSVE9OIMW9VcW9QU5BCitNQVJUT04gQU5EUkHFoAorTUFSVE9OIEZFUkVOQworTUFSVE9OIEnFoFRWQU4KK01BUlRPTiBJTEXFoAorTUFSVE9OIEpPxb1FRgorTUFSVE9OIEpPxb1FRgorTUFSVE9OIEpPTEFOCitNQVJUT04gTEFKT8WgCitNQVJUT04gTUHEhkHFoAorTUFSVE9OIE1BUklKQQorTUFSVE9OIFJPWkEKK01BUlXFoMSMVUsgTUlST1NMQVYKK01BUlXFoEVWScSGIElWQU4KK01BUlXFoEnEhiBEQU5JQ0EKK01BUlXFoEnEhiBGUkFOSkEKK01BUlXFoEnEhiBHT1JBTgorTUFSVcWgScSGIEpVTElKQU5BCitNQVJVxaBJxIYgTEpVQk8KK01BUlXFoEnEhiBNSU9SSUNBCitNQVJVxaBJxIYgTkVCT0rFoEEKK01BUlXFoEnEhiBPTEdBCitNQVJVxaBJxIYgU1RPSkFOCitNQVJVxaBJxIYgVkxBRElNSVIKK01BUlVOScSGIEJPU0lMSktBCitNQVJVTktJxIYgTUlMSU5BCitNQVJVTk9WScSGIEJMQUdPVEEKK01BU0xBxIYgQU5URQorTUFTTEHEhiBNSUxFTktPCitNQVNMQcSGIFJBSktPCitNQVNMQcSGIFZJTktPCitNQVNMT1ZBUknEhiBCT8W9SURBUiBEUgorTUFTTkVDIEFOS0EKK01BU05JS09TQSBGRU1LQQorTUFTTklLT1NBIEZFTUtBCitNQVNOT1YgUk9aQUxJSkEKK01BU1RJS09TQSBEUkFHSUNBCitNQVNUSUtPU0EgTklLTworTUFTVElMT1ZJxIYgRFXFoEFOCitNQVNUSUxPVknEhiBMSlVCSUNBCitNQVNUSUxPVknEhiBNSVJBCitNQVNUSUxPVknEhiBNSVJLTworTUFTVElMT1ZJxIYgTU9NxIxJTE8KK01BU1RJTE9WScSGIFBMRU1BCitNQVNUSUxPVknEhiBSQU5LTworTUFUQUrEjEnEhiBGUkFOSk8KK01BVEFKxIxJxIYgSVZBTgorTUFUQUsgTUFSSUpBCitNQVRBSyBNQVJKQU4KK01BVEFLIFZFU05BCitNQVRBS09WScSGIEtBVElDQQorTUFUQU5PViBKQVNNSU5BCitNQVRBTk9WScSGIERFWklERVIKK01BVEFOT1ZJxIYgSVJFTkEKK01BVEFOT1ZJxIYgSkFEUkFOS0EKK01BVEFOT1ZJxIYgSkVMSVNBVkVUQQorTUFUQU5PVknEhiBNSUxPUkFECitNQVRBTk9WScSGIE1JTE9SQUQKK01BVEFOT1ZJxIYgTUlPRFJBRworTUFUQU5PVknEhiBQRVRBUgorTUFUQU5PVknEhiBQRVRBUgorTUFUQU5PVknEhiBTTEFWSUNBCitNQVRBTk9WScSGIFZMQURBCitNQVRBUlVHQSBMSklMSkFOQQorTUFUQVJVR0EgTUlMS0EKK01BVEFSVUdBIFBBVkxFCitNQVRBUlVHQSBaQUdPUktBCitNQVRBUlVHSU4gQUxFS1NBTkRBUgorTUFUQVNJxIYgTUFSSUpBCitNQVRBVlVMSiBNSUxJQ0EKK01BVEUgRVRFTEtBCitNQVRFIEdJWkVMQQorTUFURSBWRU5ERUwgRFIKK01BVEXEjElLIE1JS0xPxaAKK01BVEVKQcWgRVYgQUxFS1NBTkRBUgorTUFURUpBxaBFViBTVkVUT1pBUgorTUFURUpBxaBFViBTVkVUT1pBUgorTUFURUpFVknEhiBKRUxFTkEKK01BVEVKRVZJxIYgU1RBTktPCitNQVRFSkVWScSGIFZFTElNSVIKK01BVEVKRVZJxIYgVkxBRElNSVIKK01BVEVKRVZJxIYgWklMREEKK01BVEVKScSGIMSQVVJBCitNQVRFSknEhiBBTEVLU0FOREFSCitNQVRFSknEhiBOQURFxb1EQQorTUFURUpJxIYgUkFUS08KK01BVEVKScSGIFJVxb1JQ0EKK01BVEVKScSGIFNMQVZPTEpVQiBEUiBMRUtBUgorTUFURUpJTiDEkE9SxJBFCitNQVRFSklOIERSQUdBTgorTUFURUpJTiBEUkFHScSGCitNQVRFSklOIERVxaBBTgorTUFURUpJTiBNSUxJVk9KCitNQVRFSklOIFZFU0VMSU4KK01BVEVLQUxPIE1JTEtBCitNQVRFS09WScSGIFNNSUxKQQorTUFURU9WScSGIFBVQkEgRFIKK01BVEVWU0tJIExVScSQSQorTUFUScSMRUsgTEpVREVWSVQKK01BVEnFoEEgSVJFTkEKK01BVEnFoEnEhiBMSlVCT01JUgorTUFUScSGIMW9QVJLTworTUFUScSGIMW9SVZLQQorTUFUScSGIMW9SVZLTworTUFUScSGIMW9SVZLTworTUFUScSGIMW9SVZPSklOCitNQVRJxIYgxb1JVk9SQUQKK01BVEnEhiDEkE9SxJBFCitNQVRJxIYgxJBPUsSQRQorTUFUScSGIMSQT1LEkEUKK01BVEnEhiDEkFVSxJBJQ0EKK01BVEnEhiDEkFVSQSBEUgorTUFUScSGIEFDS08KK01BVEnEhiBBQ0tPCitNQVRJxIYgQUxFS1NBTkRBUgorTUFUScSGIEFMRUtTQU5EQVIKK01BVEnEhiBBTEVLU0FOREFSCitNQVRJxIYgQU5LQQorTUFUScSGIEFOS0lDQQorTUFUScSGIEFSQU5LQQorTUFUScSGIEFSQU5LQQorTUFUScSGLUJBVVMgxb1JVktPCitNQVRJxIYtQkVLVkFMQUMgVkVTTkEKK01BVEnEhiBCT8W9SURBUiBEUgorTUFUScSGIEJPSkFOQQorTUFUScSGIEJSQU5JU0xBVgorTUFUScSGIERBTUpBTiBESVBMIElORworTUFUScSGIERFU0FOS0EKK01BVEnEhiBET0JSSUNBCitNQVRJxIYgRE9CUklMTworTUFUScSGIERSQUdBTgorTUFUScSGIERSQUdBTgorTUFUScSGIERSQUdBTgorTUFUScSGIERSQUdJxaBBCitNQVRJxIYgRFJBR0lDQQorTUFUScSGIERSQUdJTkpBCitNQVRJxIYgRFJBR1VUSU4KK01BVEnEhiBEVcWgQU5LQQorTUFUScSGIERVxaBBTktBCitNQVRJxIYgRFXFoEFOCitNQVRJxIYgRFXFoEFOCitNQVRJxIYgRFXFoEFOCitNQVRJxIYgRFXFoEFOCitNQVRJxIYgRUxJWkFCRVRBCitNQVRJxIYgRVZBCitNQVRJxIYgRklOS0EKK01BVEnEhiBHT1JEQU5BCitNQVRJxIYgSUxJSkEKK01BVEnEhiBKRUxFTkEKK01BVEnEhiBKRUxJU0FWRVRBCitNQVRJxIYgSkVMSVNBVkVUQQorTUFUScSGIEpFTElTQVZLQQorTUFUScSGIEpPVkFOCitNQVRJxIYgS0FUSUNBCitNQVRJxIYtS0VLScSGIFNORcW9QU5BCitNQVRJxIYgS1JJU1RJTkEKK01BVEnEhiBMQVpBUgorTUFUScSGIExBWkFSCitNQVRJxIYgTEpJTEpBTkEKK01BVEnEhiBMSklMSkFOQQorTUFUScSGIExKSUxKQU5BCitNQVRJxIYgTEpVQklDQQorTUFUScSGIExKVUJJQ0EKK01BVEnEhiBMSlVCTworTUFUScSGIExVS0EKK01BVEnEhiBNQUdEQUxFTkEKK01BVEnEhiBNQVJJQ0EKK01BVEnEhiBNQVJJSkEKK01BVEnEhiBNQVJLTworTUFUScSGIE1BUktPCitNQVRJxIYgTUlMQU4KK01BVEnEhiBNSUxBTgorTUFUScSGIE1JTEFOCitNQVRJxIYgTUlMRU5LTworTUFUScSGIE1JTEVOS08KK01BVEnEhiBNSUxJU0FWCitNQVRJxIYgTUlMT8WgCitNQVRJxIYgTUlMT8WgCitNQVRJxIYgTUlMT8WgCitNQVRJxIYgTUlMT8WgCitNQVRJxIYgTUlMT8WgCitNQVRJxIYgTUlMT1JBRAorTUFUScSGIE1JTE9SQUQKK01BVEnEhiBNSUxPUkFECitNQVRJxIYgTUlMT1ZBTgorTUFUScSGIE1JUkpBTkEKK01BVEnEhiBNSVJKQU5BCitNQVRJxIYgTUlSS08KK01BVEnEhiBOQURBCitNQVRJxIYgTkFERcW9REEKK01BVEnEhiBOQVRBxaBBCitNQVRJxIYgTkFUQUxJSkEKK01BVEnEhiBORUdPVkFOCitNQVRJxIYgTklLT0xBCitNQVRJxIYgTk9WSUNBCitNQVRJxIYgUEFWQQorTUFUScSGIFBBVkxFCitNQVRJxIYgUEFWTEUKK01BVEnEhiBQRVRBUgorTUFUScSGIFBFVEFSCitNQVRJxIYgUExBTklOS0EKK01BVEnEhiBQUkVEUkFHCitNQVRJxIYgUFJFRFJBRworTUFUScSGIFJBREUKK01BVEnEhiBSQURNSUxBCitNQVRJxIYgUkFET0pFCitNQVRJxIYgUkFET01JUgorTUFUScSGIFJBRE9NSVIKK01BVEnEhiBSQURPTUlSCitNQVRJxIYgUkFET1NMQVYKK01BVEnEhiBSQURPVkFOCitNQVRJxIYgUkFET1ZBTgorTUFUScSGIFJBSktPCitNQVRJxIYgU0FWQQorTUFUScSGIFNJTUEKK01BVEnEhiBTTEFWS08KK01BVEnEhiBTTEFWS08KK01BVEnEhiBTTEFWS08KK01BVEnEhiBTTEFWS08KK01BVEnEhiBTTE9CT0RBTgorTUFUScSGIFNUQU5LTworTUFUScSGIFNUQU5LTworTUFUScSGIFNUQVpBCitNQVRJxIYgU1RJUE8KK01BVEnEhiBTVE9KQU4KK01BVEnEhiBTVkVUTEFOQQorTUFUScSGIFNWRVRPWkFSCitNQVRJxIYgU1ZFVE9aQVIKK01BVEnEhiBUT01BCitNQVRJxIYgVE9NSVNMQVYKK01BVEnEhiBWQUxFUklKQQorTUFUScSGIFZFU0VMSU4KK01BVEnEhiBWSURBCitNQVRJxIYgVklUT01JUiBESVBMIElORworTUFUScSGIFZMQURBCitNQVRJxIYgVkxBRElNSVIKK01BVEnEhiBWTEFESU1JUgorTUFUScSGIFZMQURJU0xBVgorTUFUScSGIFZMQVNUSU1JUiBNUgorTUFUScSGIFZVSklDQQorTUFUScSGIFZVS0lDQQorTUFUScSGIFpBR09SS0EKK01BVEnEhiBaRFJBVktBCitNQVRJxIYgWk9SQQorTUFUSUNLSSBNSUxBTkEgRFIKK01BVElDS0kgTUlMT8WgCitNQVRJSkHFoCBJTElKQQorTUFUSUpBxaBFViBBTEVLU0FOREFSCitNQVRJSkHFoEVWIFJBRElWT0oKK01BVElKQcWgRVZJxIYgQUxFS1NBTkRBUgorTUFUSUpBxaBFVknEhiBKRUxLQQorTUFUSUpBxaBFVknEhiBLQVRJQ0EKK01BVElKQcWgRVZJxIYgTUFSS08KK01BVElKQcWgRVZJxIYgTUlIQUlMTworTUFUSUpBxaBFVknEhiBTVEFOSVNMQVZLQQorTUFUSUpFVknEhiBBTlRJQ0EKK01BVElKRVZJxIYgQU5UVU4KK01BVElKRVZJxIYgQk9KQU4KK01BVElKRVZJxIYgQlJBTktPCitNQVRJSkVWScSGIERSQUdJQ0EKK01BVElKRVZJxIYgRlJBTsSMScWgS0EKK01BVElKRVZJxIYgSUxJSkEKK01BVElKRVZJxIYgSk9TSVAKK01BVElKRVZJxIYgS0FUQUxJTgorTUFUSUpFVknEhiBMQUpPxaAKK01BVElKRVZJxIYgTUFSSUpBCitNQVRJSkVWScSGIE1JTEUKK01BVElKRVZJxIYgTUlMT0pLTworTUFUSUpFVknEhiBQRVJPCitNQVRJSkVWScSGIFBFVEFSCitNQVRJSkVWScSGIFBFVEFSCitNQVRJSkVWScSGIFBFVEFSCitNQVRJSkVWScSGIFJBREUKK01BVElKRVZJxIYgU0xBVktPCitNQVRJSkVWScSGIFZVS09TQVZBCitNQVRJSkVWScSGIFpPUkFOCitNQVRJSkVWScSGIFpPUkEKK01BVElKRVZJxIYgWk9SQQorTUFUSU4gRE9ST1RFQQorTUFUSU4gSk9TSVAKK01BVElOIExBSk/FoAorTUFUSU4gTUFUSUpBCitNQVRJUyDFoEFORE9SIERJUEwgUFJBVk5JSworTUFUSVMgxaBBTkRPUgorTUFUSkHEjEnEhiBWSU5LTworTUFUS08gRVZBCitNQVRLT1ZJxIYgxb1BUktPCitNQVRLT1ZJxIYgxb1BUktPCitNQVRLT1ZJxIYgQk/FvUlEQVIKK01BVEtPVknEhiBEUkFHT0xKVUIKK01BVEtPVknEhiBEUkFHT0xKVUIKK01BVEtPVknEhiBKT1ZBTgorTUFUS09WScSGIExBRElTTEFWCitNQVRLT1ZJxIYgTUlMRU5LTworTUFUS09WScSGIE1JUk9TTEFWQQorTUFUS09WScSGIE1JUk9TTEFWCitNQVRLT1ZJxIYgTUlST1NMQVYKK01BVEtPVknEhiBNT01JUgorTUFUS09WScSGIFJBRE9WQU4KK01BVEtPVknEhiBST1pBTElKQQorTUFUS09WScSGIFJVxb1JQ0EKK01BVEtPVknEhiBTVEFNRU5LTworTUFUS09WScSGIFZMQVNUSU1JUgorTUFUS09WScSGIFpERU5LQSBEUgorTUFUT8WgRVZJxIYgSVZBTgorTUFUT8WgScSGIFNUQU5JU0xBVgorTUFUT8WgS09WScSGIEFHQVRBCitNQVRPxaBLT1ZJxIYgVEVSRVpBCitNQVRPVknEhiBBTsSQRUxLTworTUFUT1ZJxIYgQU5BCitNQVRPVknEhiBCT8W9QU5BCitNQVRPVknEhiBCT1JJVk9KRQorTUFUT1ZJxIYgQk9STworTUFUT1ZJxIYgQlJBTklTTEFWCitNQVRPVknEhiBEQU5JQ0EKK01BVE9WScSGIERBUk8KK01BVE9WScSGIERFU0EKK01BVE9WScSGIERSQUdBTkEKK01BVE9WScSGIERSQUdJxaBBCitNQVRPVknEhiBMSlVCSU5LQQorTUFUT1ZJxIYgTUlMQU4gRElQTCBJTkcKK01BVE9WScSGIE1JTEFOCitNQVRPVknEhiBNSUxFTktPCitNQVRPVknEhiBNSUxFCitNQVRPVknEhi1NSUxJxIYgQkFUUknEhgorTUFUT1ZJxIYgTUlMScSGCitNQVRPVknEhiBNSUxPSktPCitNQVRPVknEhiBOQVRBxaBBCitNQVRPVknEhiBQQVZMRQorTUFUT1ZJxIYgUEVUQVIKK01BVE9WScSGIFJBRElWT0pFCitNQVRPVknEhiBSQURPU0FWCitNQVRPVknEhiBSQURPU0xBVgorTUFUT1ZJxIYgVklUT01JUgorTUFUT1ZJTkEgRlJBTkpBCitNQVRPVklOQSBHT1JBTgorTUFUT1ZJTkEgTUFSS08KK01BVFJBSyBEUkFHQU4KK01BVFXFoCBKQU4KK01BVFXFoEtBIE1BUlRPTgorTUFUVUxKSU4gSUdOSkFDCitNQVRVU0tJIFNPTkpBCitNQVRWSUtPViBFVUdFTklKRQorTUFVS09WScSGIFZPSklTTEFWCitNQVVMIEdPUkRBTkEKK01BVVJJxIYgRkVSRU5DCitNQVVSScSGIEdFWkEKK01BVVJJxIYgTkVOQUQKK01BVknEhiBTUsSQQU4KK01BVlJBSyBJTVJFCitNQVZSRU5TS0kgQk9HREFOCitNQVZSRU5TS0kgQk9SS08KK01BVlJFTlNLSSBJVklDQQorTUFWUk9WScSGIEJSQU5JU0xBVgorTUFaQUxJQ0EgQlJBTklTTEFWCitNQVpBTElDQSBEVcWgQU4KK01BWkFMSUNBIEdPSktPCitNQVpBTElDQSBMSlVCTworTUFaQUxJQ0EgTUFSSUpBCitNQVpBTElDQSBSQUpLTworTUFaQUxJQ0EgU05Fxb1BTkEKK01BWkFMSUNBIFVST8WgCitNQVpBTElDQSBWQVNPCitNQVpBTElDQSBWRUxKS08KK01BWkFOxIxJSyBBTkRSSUpBCitNQVpBTsSGSUsgUEFKQQorTUFaQU5KSSBLQVJMTworTUFaScSGIMW9SVZLTworTUFaScSGIEJSQU5LTworTUFaScSGIERSQUdBTgorTUFaScSGIExKVUJPTUlSCitNQVpJxIYgTUlIQUpMTworTUFaScSGIE1JUk9TTEFWCitNQVpJxIYgUExFVElLT1NBCitNQVpJTkpBTklOIERVxaBBTgorTUFaTEFNSSBExb1BQklSCitNQVpVUiBWVUtJQ0EKK01DLUNPTk5FTEwgTUFSVEEKK01FxIxLQVJPVlNLSSBEUkFHQU4KK01FxIxLScSGIERPQlJJTEEKK01FxIxLScSGIFNMQVZLTworTUXFoEFOT1ZJxIYgSEFaSU0KK01FxaBURVIgSVJFTkEKK01FxaBURVJPVknEhiBMSklMSkFOQQorTUXFoFRST1ZJxIYgQk/FvUlEQVIKK01FxIZBVkEgQlJBTktPCitNRcSGQVZBIERSQUdBTgorTUXEhkFWQSBNSUxBTgorTUXEkEFOSU4gRFXFoEFOCitNRcSQRcWgSSBMSlVCT01JUgorTUXEkEXFoEkgVkxBRElNSVIKK01FxJBFRCBNQVJJQ0EKK01FxJBFRE9WScSGIMSQT1LEkElKRQorTUXEkEVET1ZJxIYgQlJBTktPCitNRcSQRURPVknEhiBEQU5JTE8KK01FxJBFRE9WScSGIERSQUdPTEpVQgorTUXEkEVET1ZJxIYgRFJBR08KK01FxJBFRE9WScSGIERVQlJBVktBCitNRcSQRURPVknEhiBNSVJKQU5BCitNRcSQRURPVknEhiBORU1BTkpBCitNRcSQRURPVknEhiBSQURPVkFOCitNRcSQRVJJIFZFUk9OSUtBCitNRcSQSU1PUkVDIEVEVUFSRAorTUXEkElNT1JFQyBMSlVCT01JUgorTUXEkElNT1JFQyBTVEpFUEFOCitNRcSQSU1PUkVDIFZJS1RPUgorTUVBTUTFvUlKQSBNSVJBCitNRUFORMW9ScSGIFNMQVZLTworTUVDQU5PViBTVE9KQU5LQQorTUVEQUtPViDFvUlWS08KK01FREFLT1YgTUFSSUpBCitNRURBS09WIE1JTEFOCitNRURBS09WIE1JTEFOCitNRURBS09WIE1JTEpBTkEKK01FREFLT1YgUkFESVZPSgorTUVEQUtPViBWTEFESU1JUgorTUVEQUtPVknEhiBCT0dEQU4KK01FREFLT1ZJxIYgREFNSVIKK01FREFLT1ZJxIYgREFSSU5LQQorTUVEQUtPVknEhiBEVcWgQU4KK01FREFLT1ZJxIYgRFXFoEFOCitNRURBS09WScSGIElMRElLTworTUVEQUtPVknEhiBJTElKQQorTUVEQUtPVknEhiBKT1ZBTgorTUVEQUtPVknEhiBMSlVCSUNBCitNRURBS09WScSGIExKVUJJQ0EKK01FREFLT1ZJxIYgUEVUQVIKK01FREFLT1ZJxIYgU1ZFVExBTkEKK01FREFLT1ZJxIYgU1ZFVExBTkEKK01FREFLT1ZJxIYgVkxBRElTTEFWCitNRURBTiBEUkFHSU5KQQorTUVEQU4gTUFOT0pMTworTUVEQU4gTUlMRU5LTworTUVEQU4gTUlMRU5LTworTUVEQU4gTUlMRU5LTworTUVEQU4gTUlMT1JBRAorTUVEQU4gTUlST1NMQVYKK01FREFOIFJBREVOS08KK01FREFOIFNMQVZJQ0EKK01FREFOIFNQQVNPSkUKK01FREFOIFZFTElNSVIKK01FREFOIFZMQURJU0xBVgorTUVEQU5PVlNLSSBCT1JJUworTUVEQVIgVlXEjEtPCitNRURBUkVWScSGIERSQUdBTgorTUVEQVJFVknEhiBEUkFHQU4KK01FREFSRVZJxIYgU1RBTkEKK01FREVOSUNBIMSQVVLEkElDQQorTUVERU5JQ0EgxJBVUk8KK01FREVOSUNBIEJPU0lMSktBCitNRURFTklDQSBNSUxJU0FWCitNRURFTklDQSBSQURPTUlSCitNRURFTklDQSBTTkXFvUFOQQorTUVERU5JQ0EgU05Fxb1BTkEKK01FREVOSUNBIFZPSklTTEFWCitNRURFTklDQSBWT0pJU0xBVgorTUVERVIgxJBPUsSQRQorTUVERVIgSkVMRU5BCitNRURJxIYgxJBVUkEKK01FREnEhiDEkFVSQQorTUVEScSGIEJPxaBLTworTUVEScSGIEJPR0RBTgorTUVEScSGIEJPR0RBTgorTUVEScSGIEJPUklWT0oKK01FREnEhiBCUkFOS0EKK01FREnEhiBEQU5FCitNRURJxIYgREFORQorTUVEScSGIERBTklDQQorTUVEScSGIERSQUdJQ0EKK01FREnEhiBEUkFHT0xKVUIKK01FREnEhiBEUkFHT1NMQVZBCitNRURJxIYgRFXFoEFOCitNRURJxIYgRFXFoEFOCitNRURJxIYgR09KS08KK01FREnEhiBJTElKQQorTUVEScSGIElMSUpBCitNRURJxIYgSUxJSkEKK01FREnEhiBMQVpBUgorTUVEScSGIE1JxIZPCitNRURJxIYgTUlMQU4KK01FREnEhiBNSUxBTgorTUVEScSGIE1JTEUKK01FREnEhiBNSUxJQ0EKK01FREnEhiBNSUxLQQorTUVEScSGIE1JTE/FoAorTUVEScSGIE1JTE9SQUQKK01FREnEhiBNSUxPUkFECitNRURJxIYgTUlPRFJBRworTUVEScSGIE1JUkEKK01FREnEhiBNSVJKQU5BCitNRURJxIYgTUlSS08KK01FREnEhiBNSVJPU0xBVkEKK01FREnEhiBOSUtPTEEKK01FREnEhiBOSUtPTEEKK01FREnEhiBOSUtPTEEKK01FREnEhiBOSUtPTEEKK01FREnEhiBQRVRBUgorTUVEScSGIFJBREUKK01FREnEhiBSQURPVkFOCitNRURJxIYgUkFET1ZBTgorTUVEScSGIFNBVk8KK01FREnEhiBTSU1PCitNRURJxIYgU0xBVktPCitNRURJxIYgU0xPQk9EQU5LQQorTUVEScSGIFNNSUxKQQorTUVEScSGIFNURVZBTgorTUVEScSGIFNWRVRPWkFSCitNRURJxIYgVEFUSkFOQQorTUVEScSGIFpEUkFWS08KK01FREnEhiBaRFJBVktPCitNRURJxIYgWk9SQU4KK01FREnEhiBaT1JBCitNRURPxaAgVVJPxaAKK01FRE9KRVZJxIYgTUlMQU4KK01FRE9KRVZJxIYgTUlMRVRBCitNRURPSkVWScSGIE5JS09MQQorTUVET1ZBUlNLSSBGUkFOSkEKK01FRE9WQVJTS0kgTUnFoEEKK01FRE9WQVJTS0kgUElST8WgS0EKK01FRE9WQVJTS0kgUElST8WgS0EKK01FRE9WQVJTS0kgU1RFVkFOCitNRURPVknEhiBQUkVEUkFHIERSCitNRURVTkpBTklOIEZFQlJPTkEKK01FRFVOSkFOSU4gSVNJRE9SCitNRURVUknEhiBEQU5JTE8KK01FRFVSScSGIERSQUdPTUlSCitNRURVUknEhiBHT1JBTgorTUVEVVJJxIYgSVJFTkEKK01FRFVSScSGIEpFTEVOQQorTUVEVVJJxIYgS09TVEEKK01FRFVSScSGIE1JTElWT0oKK01FRFVSScSGIFBFVEFSCitNRURVUknEhiBTTUlMSkEKK01FRFVSScSGIFpMQVRBCitNRURWRURPVknEhiBEUkFHQQorTUVHTEFKIEJPU0lMSktBCitNRUhBS09WScSGIERBTklDQQorTUVIQU5Exb1JU0tJIFZFTktPCitNRUhNRVRJIEhJU0VOCitNRUhNRVRJIFJBRkVUCitNRUhNRVRPSiBIQVNBTgorTUVKScSGIE5FVkVOS0EKK01FS0VOSknFoEFDIFZFU0VMSU4KK01FS0VOSknFoEFDIFpPUkFOCitNRUtJxIYgU09GSUpBCitNRUtJTkRBIE1BUklKQU4gRFIKK01FS0lOREEgTUlSSkFOQQorTUVLSU5JxIYgQU5URQorTUVLSU5JxIYgTUlSSkFOQQorTUVLSU5JxIYgVE9OS0EKK01FTEFSIEFORFJBxaAKK01FTEFSIEpFTEVOQQorTUVMQVIgTEpVREVWSVQKK01FTEVHIEpBTktPCitNRUxFRyBKT1ZBTgorTUVMRUcgSk9WQU4KK01FTEVHIE1JxaBBCitNRUxFRyBWTEFESU1JUgorTUVMRVJUIFZFTkRFTAorTUVMSU5LIERVxaBBTktBCitNRUxJTksgSk9IQU4KK01FTEpBIEpVTElKQU5BCitNRUxKS1VUSSBGRVJFTkMKK01FTEpLVVRJIEpPxb1FRgorTUVMSktVVEkgS0FSTE8KK01FTEpLVVRJIE9SQkFOCitNRUxKTklLIElMSUpBCitNRUxKTklLT1YgREVTQU5LQQorTUVMS1VTIEJPxb1BCitNRUxLVVMgQk9SSVZPSgorTUVMS1VTIEtBVElDQQorTUVMS1VTIE1JUkpBTkEKK01FTEtVUyBWT0pJU0xBVgorTUVMTyBBTEVLU0FOREFSCitNRUxPVknEhiBERUpBTgorTUVMT1ZJxIYgTUlMT1ZBTgorTUVMVkFOIEVSxb1FQkVUCitNRUxWQU4gUEVUQVIKK01FTFZBTiBaT1JBTgorTUVMVklOR0VSIEFMT0paSUpBCitNRU1BUk9WScSGIFJBRE9WQU4KK01FTUVET1ZJxIYgQk9SSVNMQVYKK01FTUVET1ZJxIYgQk9TSUxKS0EKK01FTUVET1ZTS0kgVVpFSVIKK01FTUnFoEVWScSGIElCUkFISU0KK01FTUnFoEVWScSGIElTTUFJTAorTUVNScWgRVZJxIYgTUFSSkFOCitNRU1JxaBFVknEhiBNRUhNRUQKK01FTUnFoEVWScSGIFJBxaBJREEKK01FTUnFoEkgVEVGSUsKK01FTUlExb1BTiBSRUTFvU8KK01FTsSQQU4gxaBBTkRPUgorTUVOxJBBTiBNQVJJSkEKK01FTsSQQU4gUEFWRUwKK01FTsSQQU4gUkFTVElTTEFWCitNRU5ERUJBQkEgQk9SSVNMQVYKK01FTkRFQkFCQSBQQU5UQQorTUVOREVMIEVMSVpBQkVUQQorTUVORFJBR0nEhiDEkE9SxJBFCitNRU5EUkVJIEhFTEVOQQorTUVORcWgSSBCRUxBCitNRU5FxaBJIElSRU5BCitNRU5FxaBJIExBU0xPCitNRU5HTCBJUkVOCitNRU5HTCBMQUpPxaAKK01FTknEjEFOSU4gSkVMQQorTUVOScSMQU5JTiBTVEVWQU4KK01FTknEhkFOSU4gUEVUQVIKK01FTkpBSyBJVkFOCitNRU5aSUxExb1JxIYgR0FCUklKRUxBCitNRVLEjCBKQU5PxaAKK01FUsSMQSBTVEVWQU4KK01FUsWgIE1JTEFOCitNRVLFvUEgS0FST0xKCitNRVLEkEVMT8WgS0kgTUlMSUNBCitNRVJDIEVWQQorTUVSREnEhiBNSVJPU0xBVgorTUVSRE9WScSGIE1JTEtBCitNRVJFSSBLQVRBTElOCitNRVJFSSBNQVJHSVRBCitNRVJHQU5DIEtBVElDQQorTUVSR0XFoCBKQU5PxaAKK01FUkdFTCBNQVJJSkEKK01FUknEjEFSIFJBRE9KSUNBCitNRVJLT1ZJxIYgQUxFS1NBTkRBUgorTUVSS09WScSGIEFMT0paCitNRVJLT1ZJxIYgQU5LSUNBCitNRVJLT1ZJxIYgSlVESVQKK01FUktPVknEhiBMSlVERVZJVAorTUVSS09WScSGIE5JS09MQQorTUVSS09WScSGIFBFVEFSCitNRVJLT1ZJxIYgU0lMVklBCitNRVJLT1ZJxIYgU1ZFVElTTEFWQQorTUVSS09WScSGIFZFUkEKK01FUktVTE9WIExKSUxKQU5BCitNRVJLVkEgRU1BCitNRVJLVkEgSk/FvUVGCitNRVJOSkFLIEZSQU5KTworTUVTQUsgTklLT0xBCitNRVNBUknEhiBHQUJSSUpFTEEKK01FU0FST8WgIMWgQU5ET1IgRFIKK01FU0FST8WgIMSQVVJBCitNRVNBUk/FoCBBTkRSQcWgCitNRVNBUk/FoCBBUlBBRAorTUVTQVJPxaAgQVRJTEEKK01FU0FST8WgIEJBTEHFvQorTUVTQVJPxaAgRkVSRU5DCitNRVNBUk/FoCBGUkFOSkEKK01FU0FST8WgIEdFWkEKK01FU0FST8WgIEdFWkEKK01FU0FST8WgIEdPUkFOCitNRVNBUk/FoCBJxaBUVkFOCitNRVNBUk/FoCBJxaBUVkFOCitNRVNBUk/FoCBJTE9OQQorTUVTQVJPxaAgSUxPTkEKK01FU0FST8WgIElNUkUKK01FU0FST8WgIEpFTEVOQQorTUVTQVJPxaAgSkVMSUNBCitNRVNBUk/FoCBKT1NJRgorTUVTQVJPxaAgSk9TTworTUVTQVJPxaAgS0FSTE8KK01FU0FST8WgIEtBVElDQQorTUVTQVJPxaAgTEFKT8WgCitNRVNBUk/FoCBMQVNMTworTUVTQVJPxaAgTEVPTgorTUVTQVJPxaAgTUlIQUxKCitNRVNBUk/FoCBNSUtMT8WgCitNRVNBUk/FoCBQQVZMRQorTUVTQVJPxaAgUElST8WgS0EKK01FU0FST8WgIFNURVZBTgorTUVTQVJPxaAgVElCT1IKK01FU0FST8WgIFRJQk9SCitNRVNBUk/FoCBaT0xUQU4KK01FU0FST8WgIFpPUkEgRElQTCBJTkcKK01FU0FST8WgIFpPUklDQQorTUVTQVJPVknEhiBEVcWgQU4KK01FU0FST1ZJxIYgSk9WQU4KK01FU0FST1ZJxIYgTUFSR0lUQQorTUVTQVJPVknEhiBNSUxBTgorTUVTQVJPVknEhiBTVkVUT0xJSworTUVTRcWgQU4gR0VaQQorTUVTRUxExb1JSkEgxb1JVktPCitNRVNFTETFvUlKQSBOQURFxb1EQQorTUVTRUxExb1JSkEgT1NUT0pBCitNRVNFTETFvUlKQSBSQUpLTworTUVTRUxExb1JSkEgU0xBVklDQQorTUVTRUxExb1JSkEgU1RBTklNSVIKK01FVEVMSlNLSSBTRVJHSUpFCitNRVRPRElKRVZJxIYgTUlMT1NBVgorTUVaRSBKVUxJSkFOQQorTUVaRcWgIElNUkUKK01FWkVJIMWgQU5ET1IKK01FWkVJIEpPxb1FRgorTUVaRUkgTEFESVNMQVYKK01FWkVJIExBU0xPCitNRVpFSSBTTkXFvUFOQQorTUVaRUkgU1RFVkFOIERSCitNRVpFSSBTVEVWQU4KK01JxIxBIEpPU0lQCitNScSMQSBKT1ZBTgorTUnEjEnEhi3EkEVSTUFOT1YgVklEQQorTUnEjEnEhiBCT8WgS08KK01JxIxJxIYgQk/FoEtPCitNScSMScSGIE1JUkpBTkEKK01JxIxJxIYtTUlUUk9WScSGIE1JTElDQQorTUnEjEnEhiBORURFTEpLTworTUnEjEnEhiBTTkXFvUFOQQorTUnEjEnEhiBTT0ZJSkEKK01JxIxJxIYgWk9SQQorTUnEjFVSSU4gSk9TSVAKK01JxaDEjEVWScSGIEJSQU5LTworTUnFoMSMRVZJxIYgQlJBTktPCitNScWgxIxFVknEhiBEVcWgQU4KK01JxaDEjEVWScSGIERVxaBBTgorTUnFoMSMRVZJxIYgSUxJSkEKK01JxaDEjEVWScSGIElWQU5LQQorTUnFoMSMRVZJxIYgTUFSSUpBCitNScWgxIxFVknEhiBNSUNBCitNScWgxIxFVknEhiBNSUxBRElOCitNScWgxIxFVknEhiBNSUxBTgorTUnFoMSMRVZJxIYgTklLT0xBCitNScWgxIxFVknEhiBPTEdBCitNScWgxIxFVknEhiBQRVRBUgorTUnFoMSMRVZJxIYgUEVUQVIKK01JxaDEjEVWScSGIFBFVEFSCitNScWgxIxFVknEhiBWTEFESU1JUgorTUnFoMSMRVZJxIYgWkxBVEtPCitNScWgQU4gTEFaQVIKK01JxaBBTk9WScSGIERSQUdPTEpVQgorTUnFoEFOT1ZJxIYgU0lNTworTUnFoEVMScSGIEpFRlRBCitNScWgScSGIMSMRURPTUlSCitNScWgScSGIMSQVVJBCitNScWgScSGIEFMRUtTQU5EQVIKK01JxaBJxIYgQUxFS1NBTkRBUgorTUnFoEnEhiBBTEVLU0FOREFSCitNScWgScSGIEFOxJBFTElKQQorTUnFoEnEhiBBTsSQRUxLQQorTUnFoEnEhiBBTkEKK01JxaBJxIYgQk9HREFOCitNScWgScSGIEJVRElNSVIKK01JxaBJxIYgRFJBR0lDQQorTUnFoEnEhiBEUkFHSUNBCitNScWgScSGIEVUSkVOCitNScWgScSGIEdPUkFOCitNScWgScSGIElWQU4KK01JxaBJxIYgSVZBTgorTUnFoEnEhiBKQUdPREEKK01JxaBJxIYgSkFLT1YKK01JxaBJxIYgSkFTTUlOQQorTUnFoEnEhiBKT1NJUAorTUnFoEnEhiBKT1ZBTgorTUnFoEnEhiBMQVpBUgorTUnFoEnEhiBMQVpBUgorTUnFoEnEhiBMSU5LQQorTUnFoEnEhiBMSklMSkFOQQorTUnFoEnEhiBMSlVCTworTUnFoEnEhiBNQVJJSkEKK01JxaBJxIYgTUFSS08KK01JxaBJxIYgTUlMQU4KK01JxaBJxIYgTUlMQU4KK01JxaBJxIYgTUlMQU4KK01JxaBJxIYgTUlMQU4KK01JxaBJxIYgTUlMQU4KK01JxaBJxIYgTUlMT1NBVktBCitNScWgScSGIE1JTE9WQU4KK01JxaBJxIYgTUlPRFJBRworTUnFoEnEhiBNSU9NSVIKK01JxaBJxIYgTUlSSkFOQQorTUnFoEnEhiBNSVJPU0xBVgorTUnFoEnEhiBNSVJPU0xBVgorTUnFoEnEhiBOQURBCitNScWgScSGIE5FTkFECitNScWgScSGIE5FU1RPUgorTUnFoEnEhiBOSUtPTEEKK01JxaBJxIYgUEVUQVIKK01JxaBJxIYgUFJFRFJBRworTUnFoEnEhiBSQURFCitNScWgScSGIFJBRElWT0pFCitNScWgScSGIFJBRElWT0pFCitNScWgScSGIFJBRE9KS0EKK01JxaBJxIYgUkFOS08KK01JxaBJxIYgU0FWQQorTUnFoEnEhiBTTEFWS08KK01JxaBJxIYgU0xPQk9EQU4KK01JxaBJxIYgU0xPQk9EQU4KK01JxaBJxIYgU0xPQk9EQU4KK01JxaBJxIYgU09GSUpBCitNScWgScSGIFNUSVBPCitNScWgScSGIFNUSkVQQU4KK01JxaBJxIYgU1ZFVE9aQVIKK01JxaBJxIYgU1ZFVE9aQVIKK01JxaBJxIYgVE9ET1IgRFIKK01JxaBJxIYgVFVHT01JUgorTUnFoEnEhiBWQVNBCitNScWgScSGIFZJRE9TQVZBCitNScWgScSGIFZMQURJQ0EKK01JxaBJxIYgVk9KSU4KK01JxaBJxIYgWkRSQVZLTworTUnFoEnEhiBaT1JBTgorTUnFoEnEhiBaT1JBCitNScWgScSGIFpPUklDQQorTUnFoEnEhiBaVk9OSU1JUgorTUnFoElOU0tJIEpFTEVOQQorTUnFoEtBUiBKT1ZBTgorTUnFoEtFTEpJTiBCT8WgS08KK01JxaBLScSGIMWgSU1VTgorTUnFoEtJxIYgRFXFoEFOCitNScWgS0nEhiBJVkFOCitNScWgS0nEhiBNSUxBTgorTUnFoEtJxIYgUkFKS08KK01JxaBLScSGIFJBTktPCitNScWgS0nEhiBTVkVUSVNMQVZLQQorTUnFoEtJxIYgVklUT01JUgorTUnFoEtJxIZFVknEhiBCT1JJVk9KCitNScWgS0xKSU4gS0FUSUNBCitNScWgS09WIMSQVVLEkElOS0EKK01JxaBLT1YgQUxFS1NBTkRBUgorTUnFoEtPViBBTkdFTElOQQorTUnFoEtPViBBTktBCitNScWgS09WIEFOS0lDQQorTUnFoEtPViBBVlJBTQorTUnFoEtPViBCSUxKQU5BCitNScWgS09WIEJPSktBCitNScWgS09WIEJSQU5JTUlSCitNScWgS09WIEJSQU5LTworTUnFoEtPViBJVklDQQorTUnFoEtPViBKT1ZBTgorTUnFoEtPViBLQVRBUklOQQorTUnFoEtPViBLQVRBUklOQQorTUnFoEtPViBMSlVCSUNBCitNScWgS09WIExKVUJJQ0EKK01JxaBLT1YgTUFLU0EKK01JxaBLT1YgTUFSSUNBCitNScWgS09WIE1JTE/FoAorTUnFoEtPViBNSUxPVkFOCitNScWgS09WIE1JUk9TTEFWCitNScWgS09WIE5BREEKK01JxaBLT1YgTkVWRU5LQQorTUnFoEtPViBOSUtPTEEKK01JxaBLT1YgTk9WQQorTUnFoEtPViBSQURJVk9KCitNScWgS09WIFNBVkEgRElQTCBJTkcKK01JxaBLT1YgU0FWQQorTUnFoEtPViBTVEFOS0EKK01JxaBLT1YgU1RFVkFOCitNScWgS09WIFZFU05BCitNScWgS09WIFZFU05BCitNScWgS09WIFpBR09SS0EKK01JxaBLT1YgWkxBVEEKK01JxaBLT1ZJxIYgxb1JVktPCitNScWgS09WScSGIMSQT1LEkEUKK01JxaBLT1ZJxIYgxJBPUsSQRQorTUnFoEtPVknEhiDEkE9SxJBFCitNScWgS09WScSGIEFMRUtTQU5EUkEKK01JxaBLT1ZJxIYgQU5BCitNScWgS09WScSGIEFOQQorTUnFoEtPVknEhiBBUlNBCitNScWgS09WScSGIEJMQcW9TworTUnFoEtPVknEhiBCT8W9SURBUgorTUnFoEtPVknEhiBCT0pBTkEKK01JxaBLT1ZJxIYgQk9KQU4KK01JxaBLT1ZJxIYgQk9SSVZPSgorTUnFoEtPVknEhiBCUkFOSVNMQVYKK01JxaBLT1ZJxIYgQlJBTktPCitNScWgS09WScSGIENWRVRLTworTUnFoEtPVknEhiBEQU7EjElLQQorTUnFoEtPVknEhiBEQVJJTktBCitNScWgS09WScSGIERFTElOS0EKK01JxaBLT1ZJxIYgRFJBR0FOCitNScWgS09WScSGIERSQUdPUkFECitNScWgS09WScSGIERVQlJBVktBCitNScWgS09WScSGIElMSUpBCitNScWgS09WScSGIElMSUpBCitNScWgS09WScSGIElMT05LQQorTUnFoEtPVknEhiBKT0NBCitNScWgS09WScSGIEpPVkFOCitNScWgS09WScSGIExBWkFSCitNScWgS09WScSGIExKVUJJQ0EKK01JxaBLT1ZJxIYgTEpVQklDQQorTUnFoEtPVknEhiBNQVJLTworTUnFoEtPVknEhiBNSUhBSkxPCitNScWgS09WScSGIE1JTEtBCitNScWgS09WScSGIE1JTE/FoAorTUnFoEtPVknEhiBNSUxPSkUKK01JxaBLT1ZJxIYgTUlMT1JBRAorTUnFoEtPVknEhiBNSU9EUkFHCitNScWgS09WScSGIE1JUkpBTkEKK01JxaBLT1ZJxIYgTUlSS08KK01JxaBLT1ZJxIYgTUlSS08KK01JxaBLT1ZJxIYgTUlSS08KK01JxaBLT1ZJxIYgTUlST1NMQVZBCitNScWgS09WScSGIE5FTkFECitNScWgS09WScSGIE5JxIZJRk9SCitNScWgS09WScSGIE9CUkFECitNScWgS09WScSGIE9MR0lDQQorTUnFoEtPVknEhiBQRVRBUgorTUnFoEtPVknEhiBSQURFCitNScWgS09WScSGIFJBRElWT0ogTVIKK01JxaBLT1ZJxIYgUkFET1NMQVYKK01JxaBLT1ZJxIYgUkFOS08KK01JxaBLT1ZJxIYgU0HFoEEKK01JxaBLT1ZJxIYgU0FWS0EKK01JxaBLT1ZJxIYgU1RBTktBCitNScWgS09WScSGIFNURVZBTgorTUnFoEtPVknEhiBTVEVWQU4KK01JxaBLT1ZJxIYgVEFOSkEKK01JxaBLT1ZJxIYgVklET1NBVkEKK01JxaBLT1ZJxIYgVklKRU5DRVNMQVYKK01JxaBLT1ZJxIYgVlVLSUNBCitNScWgS09WScSGIFZVS0lDQQorTUnFoEtPVknEhiBaUk5LQQorTUnFoEtPVklDIExKVURFVklUCitNScWgS09WSUMgWlVaQU5BCitNScWgS1VMSU4gRFJBR0nFoEEKK01JxaBLVUxJTiBOQURBCitNScWgS1VMSU4gTklLT0xBCitNScWgTEpFTk9WScSGIE1JT0RSQUcKK01JxaBMT1YgTEpVQklDQQorTUnFoE9WScSGIE1JUktPCitNScWgT1ZTS0kgUklTVE8KK01JxaBVTEnEhiBQRVRBUgorTUnFoFVMScSGIFZJREFLCitNScWgVUxJxIYgVk9KSVNMQVYKK01JxaBVUkEgSVZBTgorTUnEhkHFoEVWScSGIEJPxaBLTworTUnEhkHFoEVWScSGIFNBVkEKK01JxIZBTk9WScSGIERSQUdBTgorTUnEhkFOT1ZJxIYgRFJBR0nFoEEKK01JxIZBTk9WScSGIE1BUkpBTgorTUnEhkVWScSGIERVxaBBTgorTUnEhkVWScSGIFNPRklKQQorTUnEhknEhiDEkE9SxJBFCitNScSGScSGIMSQVVLEkElOQQorTUnEhknEhiBCT0pBTkEKK01JxIZJxIYgQlJBTklTTEFWCitNScSGScSGIEJSQU5LQQorTUnEhknEhiBCUkFOS08gRElQTCBJTkcKK01JxIZJxIYgQlJBTk8KK01JxIZJxIYgQ1ZJSkVUSU4KK01JxIZJxIYgRFJBR09MSlVCCitNScSGScSGIERVxaBBTiBESVBMIFBSQVZOSUsKK01JxIZJxIYgRFXFoEFOCitNScSGScSGIERVxaBBTgorTUnEhknEhiBJTElKQQorTUnEhknEhiBKT1ZBTktBCitNScSGScSGIEtPTlNUQU5USU5BCitNScSGScSGIEtSU1RBCitNScSGScSGIExKVUJPTUlSCitNScSGScSGIExKVUJPTUlSCitNScSGScSGIE1BUklKQQorTUnEhknEhiBNSUhBSkxPCitNScSGScSGIE1JTEFOQQorTUnEhknEhiBNSUxFTkEKK01JxIZJxIYgTUlMRU5LTyBESVBMIElORworTUnEhknEhiBNSUxJQ0EKK01JxIZJxIYgTUlMSUNBCitNScSGScSGIE1JTEtBCitNScSGScSGIE1JTE9SQUQKK01JxIZJxIYgTUlST1NMQVYKK01JxIZJxIYgT0xJVkVSQQorTUnEhknEhiBPWlJFTgorTUnEhknEhiBSQURNSUxBCitNScSGScSGIFJBRE9KSUNBCitNScSGScSGIFJBRE9WQU4KK01JxIZJxIYgUk9ET0xKVUIKK01JxIZJxIYgU0xBVklDQQorTUnEhknEhiBTTEFWS08KK01JxIZJxIYgU01JTEpBCitNScSGScSGIFNUT0pBTgorTUnEhknEhiBTVVpBTkEKK01JxIZJxIYgVkVMSU1JUgorTUnEhknEhiBWTEFESU1JUgorTUnEhklOIMW9QVJLTworTUnEhklOIMSQT1LEkEUKK01JxIZJTiBEVcWgS08KK01JxIZJTiBMQVpBCitNScSGSU4gTUlMSUNBCitNScSGSU4gUkFET1ZBTgorTUnEhklOIFVST8WgCitNScSGS09WScSGIE1JTElOS08KK01JxIZPVknEhiDEjEVET01JUgorTUnEhk9WScSGIEJPUklTTEFWCitNScSGT1ZJxIYgQk9TSUxKS0EKK01JxIZPVknEhiBKQU5LTworTUnEhk9WScSGIEtPU1RBRElOIERSCitNScSGT1ZJxIYgTUlMQU4KK01JxIZPVknEhiBNSVJKQU5BCitNScSGT1ZJxIYgTkVCT0rFoEEgRElQTCBJTkcKK01JxIZPVknEhiBQUkVEUkFHIERJUEwgSU5HCitNScSGT1ZJxIYgU1RPSkFOS0EKK01JxIZPVknEhiBWRUxJTUlSCitNScSGVU5PVknEhiBEUkFHVVRJTgorTUnEhlVOT1ZJxIYgTUFSSUNBCitNScSGVU5PVknEhiBTVEFOS0EKK01JxIZVTk9WScSGIFZMQURPCitNScSGVU5PVknEhiBWT0pJU0xBVktBCitNSUFWRUMgTUHEhkHFoAorTUlDQUkgTUFSSUpBCitNSUNJxIYgRFJBR0FOCitNSUNJxIYgRFJBR09MSlVCCitNSUNJxIYgRFJBR09MSlVCCitNSUNJxIYgRFXFoEFOCitNSUNJxIYgS1JTVEEgRFIKK01JQ0nEhiBNSVJLTworTUlDS09WIEJMQUdPSgorTUlDS09WIEVMRU5BCitNSURJIE5FTkFECitNSURJxIYgxJBPUsSQRQorTUlEScSGIEJPUklWT0oKK01JREnEhi1EVU7EkEVSU0tJIE1JTEVOQQorTUlEScSGIEpFTEVOQQorTUlEScSGIEpPVkFOCitNSURJxIYgTEpVQknFoEEKK01JREnEhiBNSUxFTktPCitNSURJxIYgTUlMT1JBRAorTUlEScSGIFNMT0JPREFOCitNSURJxIYgU1RFVkFOCitNSURJxIYgU1ZFVE9aQVIKK01JREnEhiBTVkVUT1pBUgorTUlEScSGIFpPUktBCitNSUdMSU5DSSBCQVJCQVJBCitNSUdMSU5DSSBFVEVMS0EKK01JR0xJTkNJIEpFTEVOQQorTUlHTElOQ0kgTEFTTE8KK01JSEFJTE9WScSGIMSMRURPTUlSCitNSUhBSUxPVknEhiDEkE9LTworTUlIQUlMT1ZJxIYgRFJBR1VUSU4KK01JSEFJTE9WScSGIEdPUkFOCitNSUhBSUxPVknEhiBKT1ZBTgorTUlIQUlMT1ZJxIYgS09TVEFESU4KK01JSEFJTE9WScSGIExKVUJJQ0EKK01JSEFJTE9WScSGIE1JTEFOCitNSUhBSUxPVknEhiBNSUxPxaAKK01JSEFJTE9WScSGIE1JT0RSQUcKK01JSEFJTE9WScSGIE1JUk9TTEFWCitNSUhBSUxPVknEhiBNSVJPU0xBVgorTUlIQUlMT1ZJxIYgU0xBVk9MSlVCCitNSUhBSUxPVknEhiBTVkVUTEFOQQorTUlIQUlMT1ZJxIYgU1ZFVE9aQVIKK01JSEFJTE9WScSGIFZFTElCT1IKK01JSEFJTE9WScSGIFZFUkEgRFIKK01JSEFJTE9WScSGIFZPSklTTEFWCitNSUhBSUxPVknEhiBaT1JBTgorTUlIQUpMSkVWScSGIFJBVE9NSVIKK01JSEFKTE8gTEpBVk8KK01JSEFKTE9WIMW9SVZBCitNSUhBSkxPViDEkE9SxJBFCitNSUhBSkxPViBBTEVLU0FOREFSIERSCitNSUhBSkxPViBCT0dEQU4KK01JSEFKTE9WIEJSQU5JU0xBVgorTUlIQUpMT1YgRFJBR0FOQQorTUlIQUpMT1YgRFJBR0FOCitNSUhBSkxPViBEVcWgQU4KK01JSEFKTE9WIElWQU4KK01JSEFKTE9WIEpPVkFOS0EKK01JSEFKTE9WIExBWkFSCitNSUhBSkxPViBMSklMSkFOQQorTUlIQUpMT1YgTUFSSUpBCitNSUhBSkxPViBNSUxBTgorTUlIQUpMT1YgTUlMT8WgCitNSUhBSkxPViBNSUxPUkFECitNSUhBSkxPViBNSUxPVkFOCitNSUhBSkxPViBNSUxPVkFOCitNSUhBSkxPViBNSVJPU0xBVkEKK01JSEFKTE9WIE5JS09MQQorTUlIQUpMT1YgT0xHQQorTUlIQUpMT1YgUkFET0pLQQorTUlIQUpMT1YgUkFET1NMQVYKK01JSEFKTE9WIFNQQVNPSkUKK01JSEFKTE9WIFZFUkEKK01JSEFKTE9WIFZFU0VMSU4KK01JSEFKTE9WIFZJRE9TQVYKK01JSEFKTE9WIFpPUkFOCitNSUhBSkxPVknEhiDEjEVET01JUgorTUlIQUpMT1ZJxIYgxIxFRE8KK01JSEFKTE9WScSGIMW9QVJLTworTUlIQUpMT1ZJxIYgxb1BUktPCitNSUhBSkxPVknEhiDFvUVMSktPCitNSUhBSkxPVknEhiDFvUlWS08KK01JSEFKTE9WScSGIMW9SVZPSklOCitNSUhBSkxPVknEhiDEkE9SxJBFCitNSUhBSkxPVknEhiDEkE9SxJBFCitNSUhBSkxPVknEhiDEkE9SxJBFCitNSUhBSkxPVknEhiDEkFVSQQorTUlIQUpMT1ZJxIYgQU7EkEVMS08KK01JSEFKTE9WScSGIEFOSUNBCitNSUhBSkxPVknEhiBBTktBCitNSUhBSkxPVknEhiBCT8WgS08KK01JSEFKTE9WScSGIEJPR09MSlVCIERSCitNSUhBSkxPVknEhiBCT0dPTEpVQgorTUlIQUpMT1ZJxIYgQlJBTklTTEFWCitNSUhBSkxPVknEhiBCUkFOSVNMQVYKK01JSEFKTE9WScSGIEJSQU5JU0xBVgorTUlIQUpMT1ZJxIYgQlJBTktBCitNSUhBSkxPVknEhiBCUkFOS08KK01JSEFKTE9WScSGIEJSQU5LTworTUlIQUpMT1ZJxIYgQlJBTktPCitNSUhBSkxPVknEhiBCUkFOS08KK01JSEFKTE9WScSGIERBTktBCitNSUhBSkxPVknEhiBEQVJJTktBCitNSUhBSkxPVknEhiBERUpBTgorTUlIQUpMT1ZJxIYgREVKQU4KK01JSEFKTE9WScSGIERFTElKQQorTUlIQUpMT1ZJxIYgRElNSVRSSUpFCitNSUhBSkxPVknEhiBEUkFHScWgQQorTUlIQUpMT1ZJxIYgRFJBR09MSlVCIERSIExFS0FSCitNSUhBSkxPVknEhiBEUkFHT0xKVUIKK01JSEFKTE9WScSGIERSQUdPTEpVQgorTUlIQUpMT1ZJxIYgRFJFTktBCitNSUhBSkxPVknEhiBEVcWgQU5LQQorTUlIQUpMT1ZJxIYgRFXFoEFOCitNSUhBSkxPVknEhiBEVcWgQU4KK01JSEFKTE9WScSGIERVxaBBTgorTUlIQUpMT1ZJxIYgRFXFoEtPCitNSUhBSkxPVknEhiBFUk5FU1QKK01JSEFKTE9WScSGIEZSQU5KQQorTUlIQUpMT1ZJxIYgR09KS08KK01JSEFKTE9WScSGIEdPUkRBTkEKK01JSEFKTE9WScSGIEdPUkRBTkEKK01JSEFKTE9WScSGIElMRQorTUlIQUpMT1ZJxIYgSUxJSkEKK01JSEFKTE9WScSGIElMSUpBCitNSUhBSkxPVknEhiBJTElKQQorTUlIQUpMT1ZJxIYgSUxJSkEKK01JSEFKTE9WScSGIElMSUpBCitNSUhBSkxPVknEhiBJTElKQQorTUlIQUpMT1ZJxIYgSVZBTktBCitNSUhBSkxPVknEhiBKQVNNSU5BIERSCitNSUhBSkxPVknEhiBKRUxBCitNSUhBSkxPVknEhiBKRUxFTktPCitNSUhBSkxPVknEhiBKRUxJQ0EKK01JSEFKTE9WScSGIEpFTElDQQorTUlIQUpMT1ZJxIYgSk9LQQorTUlIQUpMT1ZJxIYgSk9WQU4gRElQTCBJTkcKK01JSEFKTE9WScSGIEpPVkFOCitNSUhBSkxPVknEhiBKT1ZBTgorTUlIQUpMT1ZJxIYgSk9WQU4KK01JSEFKTE9WScSGIEpPVkFOCitNSUhBSkxPVknEhiBKVUxJSkFOQQorTUlIQUpMT1ZJxIYgS0FUSUNBCitNSUhBSkxPVknEhiBLT1NUQQorTUlIQUpMT1ZJxIYgS1JJU1RJTkEKK01JSEFKTE9WScSGIEtTRU5JSkEKK01JSEFKTE9WScSGIExBWk8KK01JSEFKTE9WScSGIExFTktBCitNSUhBSkxPVknEhiBMRU5LQQorTUlIQUpMT1ZJxIYgTEVQT1NBVkEKK01JSEFKTE9WScSGIExKVUJJxaBBCitNSUhBSkxPVknEhiBMSlVCTworTUlIQUpMT1ZJxIYgTUFSR0lUQQorTUlIQUpMT1ZJxIYgTUFSSUpBCitNSUhBSkxPVknEhiBNQVJJSkEKK01JSEFKTE9WScSGIE1JxIZBCitNSUhBSkxPVknEhiBNSUhBSkxPCitNSUhBSkxPVknEhiBNSUxBRElOCitNSUhBSkxPVknEhiBNSUxBTgorTUlIQUpMT1ZJxIYgTUlMQU4KK01JSEFKTE9WScSGIE1JTEFOCitNSUhBSkxPVknEhiBNSUxBTgorTUlIQUpMT1ZJxIYgTUlMQQorTUlIQUpMT1ZJxIYgTUlMRU5LTworTUlIQUpMT1ZJxIYgTUlMRU5LTworTUlIQUpMT1ZJxIYgTUlMRVRBCitNSUhBSkxPVknEhiBNSUxFCitNSUhBSkxPVknEhiBNSUxJQ0EKK01JSEFKTE9WScSGIE1JTE9SQUQgRElQTCBJTkcKK01JSEFKTE9WScSGIE1JTE9SQUQKK01JSEFKTE9WScSGIE1JTE9SQUQKK01JSEFKTE9WScSGIE1JTE9WQU4KK01JSEFKTE9WScSGIE1JTFVOCitNSUhBSkxPVknEhiBNSVJBCitNSUhBSkxPVknEhiBNSVJLTworTUlIQUpMT1ZJxIYgTUlSS08KK01JSEFKTE9WScSGIE1JUktPCitNSUhBSkxPVknEhiBNSVJPTEpVQiBESVBMIElORworTUlIQUpMT1ZJxIYgTUlST1NMQVYKK01JSEFKTE9WScSGIE1JUk9TTEFWCitNSUhBSkxPVknEhiBNSVJPU0xBVgorTUlIQUpMT1ZJxIYgTU9NxIxJTE8KK01JSEFKTE9WScSGIE5BREEKK01JSEFKTE9WScSGIE5BREEKK01JSEFKTE9WScSGIE5BREEKK01JSEFKTE9WScSGIE5BRElSQQorTUlIQUpMT1ZJxIYgTkVCT0rFoEEKK01JSEFKTE9WScSGIE5FREVMSktPCitNSUhBSkxPVknEhiBORURFTEpLTworTUlIQUpMT1ZJxIYgTklLT0xBCitNSUhBSkxPVknEhiBOSUtPTEEKK01JSEFKTE9WScSGIE5JS09MQQorTUlIQUpMT1ZJxIYgTk9WQUsKK01JSEFKTE9WScSGIE9MSVZFUkEKK01JSEFKTE9WScSGIE9TVE9KQQorTUlIQUpMT1ZJxIYgUEVUQVIKK01JSEFKTE9WScSGIFBSVk9TTEFWCitNSUhBSkxPVknEhiBSQURFCitNSUhBSkxPVknEhiBSQURJVk9KCitNSUhBSkxPVknEhiBSQURNSUxBCitNSUhBSkxPVknEhiBSQURNSUxBCitNSUhBSkxPVknEhiBSQURPTUlSCitNSUhBSkxPVknEhiBSQURPU0xBVgorTUlIQUpMT1ZJxIYgUkFET1NMQVYKK01JSEFKTE9WScSGIFJBRE9WQU4KK01JSEFKTE9WScSGIFJBRE9WQU4KK01JSEFKTE9WScSGIFJBRE9WQU4KK01JSEFKTE9WScSGIFJPWkFMSUpBCitNSUhBSkxPVknEhiBSVcW9SUNBCitNSUhBSkxPVknEhiBSVcW9SUNBCitNSUhBSkxPVknEhiBTQU5KQQorTUlIQUpMT1ZJxIYgU0FWQQorTUlIQUpMT1ZJxIYgU0FWQQorTUlIQUpMT1ZJxIYgU0FWQQorTUlIQUpMT1ZJxIYgU0FWTworTUlIQUpMT1ZJxIYgU0lOScWgQQorTUlIQUpMT1ZJxIYgU0xBVklDQQorTUlIQUpMT1ZJxIYgU0xBVktPCitNSUhBSkxPVknEhiBTTEFWT0xKVVBLQQorTUlIQUpMT1ZJxIYgU0xPQk9EQU4KK01JSEFKTE9WScSGIFNMT0JPREFOCitNSUhBSkxPVknEhiBTTUlMSkFOQQorTUlIQUpMT1ZJxIYgU09GSUpBCitNSUhBSkxPVknEhiBTUsSQQQorTUlIQUpMT1ZJxIYgU1JCSVNMQVYgRFIgTEVLQVIKK01JSEFKTE9WScSGIFNSRVRFTgorTUlIQUpMT1ZJxIYgU1JFVEtPCitNSUhBSkxPVknEhiBTVEFOScWgQSBESVBMIElORworTUlIQUpMT1ZJxIYgU1RBTklTTEFWQQorTUlIQUpMT1ZJxIYgU1RBTktPCitNSUhBSkxPVknEhiBTVEVWQU4KK01JSEFKTE9WScSGIFNURVZBTgorTUlIQUpMT1ZJxIYgU1RFVkEKK01JSEFKTE9WScSGIFNURVZJQ0EKK01JSEFKTE9WScSGIFNUT0pBTgorTUlIQUpMT1ZJxIYgU1RPSkFOCitNSUhBSkxPVknEhi1TVUJJxIYgSk9WQU5LQQorTUlIQUpMT1ZJxIYgU1ZFVE9aQVIKK01JSEFKTE9WScSGIFNWRVRPWkFSCitNSUhBSkxPVknEhiBTVkVUT1pBUgorTUlIQUpMT1ZJxIYgVFVHT01JUgorTUlIQUpMT1ZJxIYgVVJPxaAKK01JSEFKTE9WScSGIFZBU0EKK01JSEFKTE9WScSGIFZFUkEKK01JSEFKTE9WScSGIFZJVE9NSVIKK01JSEFKTE9WScSGIFZMQURJTUlSCitNSUhBSkxPVknEhiBWTEFESU1JUgorTUlIQUpMT1ZJxIYgVk9KSVNMQVYKK01JSEFKTE9WScSGIFpPUkFOQQorTUlIQUpMT1ZJxIYgWk9SSUNBCitNSUhBSkxPVlNLSSBMSlVCSU5LQQorTUlIQUpMT1ZTS0kgTUlST1NMQVYKK01JSEFKTE9WU0tJIFZMQURJTUlSCitNSUhBTEHEjEtJIE1JSEFJTE8KK01JSEFMQcSMS0kgU0xPQk9EQU4KK01JSEFMRUMgQU5HRUxJTkEKK01JSEFMRUMgTUFSSUpBCitNSUhBTEVLIElWQU4KK01JSEFMRUsgTUFSSUpBCitNSUhBTEVOS08gU1RFVkFOCitNSUhBTEnEhiBQRVRBUgorTUlIQUxJSy1USVIgWlVaQU5BCitNSUhBTEogRVNURVIKK01JSEFMSiBNQVJJSkEgRFIKK01JSEFMSiBNSUhBSkxPIERSCitNSUhBTEogTUlST1NMQVYgRFIKK01JSEFMSiBWTEFESU1JUgorTUlIQUxKxIxFVknEhiBBTE9KWklKRQorTUlIQUxKxIxJxIYgRFJBR0FOCitNSUhBTErEjEnEhiBHT0pLTworTUlIQUxKxIxJxIYgSUxFCitNSUhBTErEjEnEhiBKT1ZBTgorTUlIQUxKxIxJxIYgSk9WQU4KK01JSEFMSsSMScSGIExVS0EKK01JSEFMSsSMScSGIE1JVEFSCitNSUhBTErEjEnEhiBTUEFTT0pFCitNSUhBTEpFViDFvUVMSktPCitNSUhBTEpFViBJVkFOIERSCitNSUhBTEpFViBTVE9KQU4KK01JSEFMSkVWScSGIEFOVE9OCitNSUhBTEpFVknEhiBFTUlMCitNSUhBTEpFVknEhiBJVkFOCitNSUhBTEpFVknEhiBNSUxBTgorTUlIQUxKRVZJxIYgUlXFvUlDQQorTUlIQUxKRVZJxIYgWkRSQVZLTworTUlIQUxKRkkgTUFSSUtBCitNSUhBTEpJIE1BUklKQQorTUlIQUxKScSMScSGIEJSQU5LTworTUlIQUxKScSMScSGIERNSVRBUgorTUlIQUxKScSMScSGIEpPVkFOS0EKK01JSEFMSknEjEnEhiBTSU1PCitNSUhBTEpJxIxJxIYgVE9ERQorTUlIQUxKSUNBIEFOxJBBCitNSUhBTEpJQ0EgQk/FvU8KK01JSEFMSklDQSBDVkVUS08KK01JSEFMSklDQSBNSVJBCitNSUhBTEpLQSBCUkFOSVNMQVYKK01JSEFMSk9WU0tJIERBTklMTworTUlIQUxPVknEhiBCUkFOS08KK01JSEFMT1ZJxIYgR1JPWkRBTkEKK01JSEVMSiBGUkFOSk8KK01JSEVWQyBJVkFOS0EKK01JSEnEhiDEjEVET01JUgorTUlIScSGIEJPxb1JREFSCitNSUhJxIYgTUlMQU4KK01JSEnEhiBNSUxBTgorTUlIScSGIE1JTEVOQQorTUlIScSGIFJJU1RPCitNSUhJxIYgUklTVE8KK01JSEnEhiBTQVZBIERJUEwgSU5HCitNSUhJxIYgVkVSQQorTUlIScSGIFZMQURJTUlSCitNSUhJxIYgVk9KSVNMQVZLQQorTUlIScSGIFpPUkFOCitNSUhMSUMgUEVUQVIKK01JSE5KQUsgSk9BS0lNCitNSUhOSkFLIEtBVElDQQorTUlITkpBSyBMQURJU0xBVgorTUlITkpBSyBNRUxBTklKQQorTUlITkpBSyBOQURBCitNSUhOSkFLIFBFVEFSCitNSUhPQ0kgRlJBTkpBCitNSUhPQ0kgWlZPTklNSVIKK01JSE9KRVZJxIYgxJBPUsSQRQorTUlIT0pFVknEhiBNSUxFTkEKK01JSE9KRVZJxIYgTklLT0xBCitNSUhPSkVWScSGIFNORcW9QU5BCitNSUhPTMSMScSGIFNURVZJQ0EKK01JSE9MSkVWScSGIEVNQQorTUlIT0xKRVZJxIYgTUlMT1RLQQorTUlKQcSMIFNMQVZLTworTUlKQcSMRVZJxIYgTUlMQU4KK01JSkFExb1FVknEhiBKT1ZPCitNSUpBSUxPVknEhiDEkE9SxJBFCitNSUpBSUxPVknEhiBNSUxJVk9KRQorTUlKQUlMT1ZJxIYgUEFOVEVMSUpBCitNSUpBSUxPVknEhiBSQU5JU0FWCitNSUpBSUxPVknEhiBSQU5LTworTUlKQUlMT1ZJxIYgU1RBTk9KRQorTUlKQUpMT1ZJxIYgQUpOQQorTUlKQUpMT1ZJxIYgVlVLT1NBVkEKK01JSkFMxIxJxIYgTUlMQU4KK01JSkFMxIxJxIYgU0FWQQorTUlKQUzEjEnEhiBaT1JBCitNSUpBTElDQSBTVkVUT1NMQVYKK01JSkFOT1ZJxIYgxJBPUsSQRQorTUlKQU5PVknEhiDEkE9SxJBFCitNSUpBTk9WScSGIE1JTElDQQorTUlKQU5PVknEhiBNSUxPxaAKK01JSkFOT1ZJxIYgTUlMT1JBRAorTUlKQU5PVknEhiBNSUxPUkFECitNSUpBTk9WScSGIFBBVkxFCitNSUpBTk9WScSGIFJBRE9NSVIKK01JSkFUIElWQU4KK01JSkFUIE1JTEFOS0EKK01JSkFUIFJPS08KK01JSkFUIFRPTUlTTEFWCitNSUpBVE9WIMW9SVZLQQorTUlKQVRPViBBTEVLU0FOREFSCitNSUpBVE9WIEFOxJBFTEtBCitNSUpBVE9WIEJSQU5JU0xBVgorTUlKQVRPViBEUkFHScSGCitNSUpBVE9WIERSQUdJQ0EKK01JSkFUT1YgSVZBTgorTUlKQVRPViBJVkFOCitNSUpBVE9WIEpPU0EKK01JSkFUT1YgS0FUSUNBCitNSUpBVE9WIExBWkFSCitNSUpBVE9WIExKVUJJTktBCitNSUpBVE9WIExKVUJPTUlSCitNSUpBVE9WIE1JTEFESU4KK01JSkFUT1YgTUlMQU4KK01JSkFUT1YgTUlMQU4KK01JSkFUT1YgTUlMQU4KK01JSkFUT1YgTUlMQQorTUlKQVRPViBNSUxFTktPCitNSUpBVE9WIE1JTE/FoAorTUlKQVRPViBNSUxPUkFECitNSUpBVE9WIE1JT0RSQUcKK01JSkFUT1YgTUlSSkFOQQorTUlKQVRPViBSQURJVk9KCitNSUpBVE9WIFJBRE9WQU4KK01JSkFUT1YgU0FWQQorTUlKQVRPViBTQVZLQQorTUlKQVRPViBTTEFWS08KK01JSkFUT1YgU01JTEpLQQorTUlKQVRPViBTVEVWQU4KK01JSkFUT1YgVklET1NBVkEKK01JSkFUT1YgVk9KSU4KK01JSkFUT1YgWkxBVElOS0EKK01JSkFUT1ZJxIYgxb1JVkFOCitNSUpBVE9WScSGIMSQT1LEkEUKK01JSkFUT1ZJxIYgxJBVSkEKK01JSkFUT1ZJxIYgxJBVUklDQQorTUlKQVRPVknEhiDEkFVSTworTUlKQVRPVknEhiBBTEVLU0FORFJBCitNSUpBVE9WScSGIEFOVE9OSUpFCitNSUpBVE9WScSGIEJJU0VSS0EKK01JSkFUT1ZJxIYgQk/FoEtPCitNSUpBVE9WScSGIEJPxb1JREFSCitNSUpBVE9WScSGIEJPxb1PCitNSUpBVE9WScSGIEJPR09NSVIKK01JSkFUT1ZJxIYgQlJBTktPCitNSUpBVE9WScSGIERSQUdBTgorTUlKQVRPVknEhiBEUkFHQU4KK01JSkFUT1ZJxIYgRFJBR0nEhgorTUlKQVRPVknEhiBEUkFHSQorTUlKQVRPVknEhiBEVcWgQU4KK01JSkFUT1ZJxIYgRFXFoEFOCitNSUpBVE9WScSGIERVxaBBTgorTUlKQVRPVknEhiBHT0pLTworTUlKQVRPVknEhiBJTElKQQorTUlKQVRPVknEhiBJTElKQQorTUlKQVRPVknEhiBKT1ZBTgorTUlKQVRPVknEhiBKT1ZBTgorTUlKQVRPVknEhiBLQVRJQ0EKK01JSkFUT1ZJxIYgS09TVEEKK01JSkFUT1ZJxIYgTEFaQVIKK01JSkFUT1ZJxIYgTEFaQVIKK01JSkFUT1ZJxIYgTEVMQQorTUlKQVRPVknEhiBMSklMSkFOQQorTUlKQVRPVknEhiBMSlVCRU5LTworTUlKQVRPVknEhiBMSlVCSUNBCitNSUpBVE9WScSGIExKVUJJQ0EKK01JSkFUT1ZJxIYgTEpVQklDQQorTUlKQVRPVknEhiBNQVJUQQorTUlKQVRPVknEhiBNQVRPCitNSUpBVE9WScSGIE1JxaBBCitNSUpBVE9WScSGIE1JTEFOCitNSUpBVE9WScSGIE1JTEVWQQorTUlKQVRPVknEhiBNSUxJVk9KRQorTUlKQVRPVknEhiBNSUxLTworTUlKQVRPVknEhiBNSUxPxaAKK01JSkFUT1ZJxIYgTUlMT1JBRAorTUlKQVRPVknEhiBNSUxPVkFOCitNSUpBVE9WScSGIE1JT0RSQUcKK01JSkFUT1ZJxIYgTUlSQQorTUlKQVRPVknEhiBNSVJKQU5BCitNSUpBVE9WScSGIE1JUkpBTkEKK01JSkFUT1ZJxIYgTkFUQcWgQQorTUlKQVRPVknEhiBORVZFTkEKK01JSkFUT1ZJxIYgTklLT0xBCitNSUpBVE9WScSGIE5PVk8KK01JSkFUT1ZJxIYgT0JSQUQKK01JSkFUT1ZJxIYgUEVSQQorTUlKQVRPVknEhiBQRVRBUgorTUlKQVRPVknEhi1QVcWgScSGIEJSQU5JU0xBVkEgRFIKK01JSkFUT1ZJxIYgUkFEScSMCitNSUpBVE9WScSGIFJBRE9TTEFWCitNSUpBVE9WScSGIFNJTU8KK01JSkFUT1ZJxIYgU05Fxb1BTkEKK01JSkFUT1ZJxIYgU1RBTkEKK01JSkFUT1ZJxIYgVE/FoEEKK01JSkFUT1ZJxIYgVE9NSVNMQVYKK01JSkFUT1ZJxIYgVkVSQQorTUlKQVRPVknEhiBWRVJBCitNSUpBVE9WScSGIFZJRAorTUlKQVRPVknEhiBWTEFEQU4KK01JSkFUT1ZJxIYgVk9KSU4gQURWT0tBVAorTUlKQVRPVknEhiBaRFJBVktPIERJUEwgSU5HCitNSUpBVE9WScSGIFpPUkFOCitNSUpBVE9WScSGIFpPUkEKK01JSkFUT1ZJxIYgWk9SSUNBCitNSUpBVE9WScSGIFpWT05JTUlSCitNSUpBVkVDIMSQT1LEkEUKK01JSkFWRUMgSk9WQU4KK01JSkFWRUMgTFVEVklHCitNSUpBVkVDIE1JSEFKTE8KK01JSkFWRUMgUEFKQQorTUlKQVZFQyBaT1JBCitNSUpJxIYgxb1FTEpLTworTUlKScSGIMW9RUxKS08KK01JSknEhiDEkE9SxJBFCitNSUpJxIYgQUxFS1NBTkRBUgorTUlKScSGIEFOVEUKK01JSknEhiBCUkFOS08KK01JSknEhiBERVNBTktBCitNSUpJxIYgRFJBR0FOCitNSUpJxIYgRFXFoEFOCitNSUpJxIYgSUxJSkEKK01JSknEhiBKQU5KQQorTUlKScSGIE1JSEFKTE8KK01JSknEhiBNSUxBTgorTUlKScSGIE1JTE/FoAorTUlKScSGIE1JT0RSQUcKK01JSknEhiBOSUtPTEEKK01JSknEhiBQRVJBCitNSUpJxIYgUEVUQVIKK01JSknEhiBQRVRBUgorTUlKScSGIFJBRE9WQU4KK01JSknEhiBSQURPVkFOCitNSUpJxIYgU0FWQQorTUlKScSGIFNWRVRJU0xBVgorTUlKScSGIFRJTktBCitNSUpJxIYgVkVMSktPCitNSUpJxIYgVkVTTkEKK01JSknEhiBWTEFESU1JUgorTUlKSU4gQk9SSVNMQVYKK01JSklOIEJSQU5JU0xBVgorTUlKSU4gSk9WQQorTUlKSU4gTEFaQVIKK01JSklOIExBWkFSCitNSUpJTiBNSUxBTgorTUlKSU4gTUlMRVZBCitNSUpJTiBNSUxJQ0EKK01JSklOIE1JTE/FoAorTUlKSU4gUEVUQVIKK01JSklOIFBFVEFSCitNSUpJTiBSQURBCitNSUpJTiBTQVZBCitNSUpJTiBTSU1BCitNSUpJTiBTVEVWQU4KK01JSklOIFNWRVRPWkFSCitNSUpPS09WIERSQUdBTgorTUlKT0xJxIYgU0xPQk9EQU4KK01JSk9MSkVWScSGIE1JTEVOS08KK01JSk9WScSGIMW9QVJLTworTUlKT1ZJxIYgRFJBR0lDQQorTUlKT1ZJxIYgR0FWUklMTworTUlKT1ZJxIYgUkFET0pLQQorTUlKT1ZJxIYgVkVSQQorTUlKVcSMScSGIFNURVZBTgorTUlKVcSMScSGIFZFUkEKK01JSlXEjElOIE1JTEtBCitNSUpVxaBLT1ZJxIYgRFJBR0lDQQorTUlKVcWgS09WScSGIEpPVkFOCitNSUpVxaBLT1ZJxIYgTUlMSVZPSkUKK01JSlXFoEtPVknEhiBPQlJFTgorTUlKVcWgS09WScSGIFJBREUKK01JSlXFoEtPVknEhiBSQURNSUxBCitNSUpVxaBLT1ZJxIYgVElOS0EKK01JS8WgQSBNSUxBTgorTUlLxaBJxIYgxIxFRE9NSVIKK01JS8WgScSGIE9UT04KK01JS8WgScSGIFNMT0JPREFOCitNSUtBxaBJTk9WScSGIEJJTEpBTkEKK01JS0HFoElOT1ZJxIYgU0FWQQorTUlLQcSGIE1JTEFOCitNSUtBQyBFVktBCitNSUtBTEHEjEtJIMSQT1LEkEUKK01JS0FMQcSMS0kgQUxFS1NBTkRBUgorTUlLQUxBxIxLSSBEUkFHSUNBCitNSUtBTEHEjEtJIElWQU5LQQorTUlLQUxBxIxLSSBJVkFOS0EKK01JS0FMQcSMS0kgSkFTTUlOQQorTUlLQUxBxIxLSSBNSUxVVElOCitNSUtBTEHEjEtJIE1JUkpBTkEKK01JS0FMQcSMS0kgUEFWTEUKK01JS0FMQcSMS0kgVVJPxaAKK01JS0FMQcSMS0kgWk9SQU4KK01JS0FMQcSMS0kgWk9SQU4KK01JS0FOIEJPU0lMSktBCitNSUtBTiBJVkFOCitNSUtBTk9WScSGIERBTklDQQorTUlLQU5PVknEhiBEUkFHQU4KK01JS0FOT1ZJxIYgSVJFTkEKK01JS0FOT1ZJxIYgUkFOS08KK01JS0FWSUNBIFNUQU5JTUlSCitNSUtFIEVTVEVSCitNSUtFxaAgQU5EUklKQQorTUlLRcWgIEVORFJFCitNSUtFxaAgRVRFTAorTUlLRcWgIE1FTEFOSUpBCitNSUtFxaAgTUlIQUxKCitNSUtFVEnEhiBNSVJKQU5BCitNSUtJxIYgxb1BUktPCitNSUtJxIYgxb1BUktPCitNSUtJxIYgxJBVUkEgRFIKK01JS0nEhiBERVNJTUlSCitNSUtJxIYgSVZBTgorTUlLScSGIEpPU0lQIERJUEwgSU5HCitNSUtJxIYgTEFaQVIKK01JS0nEhiBNQUtTSU0KK01JS0nEhiBNSUxBTgorTUlLScSGIE1JTEVOQQorTUlLScSGIE1JTElTQVYKK01JS0nEhiBNSUxLQQorTUlLScSGIE1JTEtBCitNSUtJxIYgTUlMT1ZBTgorTUlLScSGIE1JUk9TTEFWCitNSUtJxIYgT0xHQQorTUlLScSGIFJBRElWT0pFCitNSUtJxIYgUkFET0pLQQorTUlLScSGIFJBRE9TTEFWS0EKK01JS0nEhiBSVcW9QQorTUlLScSGIFNMT0JPREFOCitNSUtJxIYgU1JCT0xKVUIKK01JS0nEhiBTVE9KQQorTUlLScSGIFRPRE9SCitNSUtJxIYgVkxBREFOCitNSUtJxIYgWk9SS0EKK01JS0lOIE5BREEKK01JS0lUScWgSU4gTkFEQQorTUlLTEVWIFNUT0pBTktBCitNSUtMScSGIMSQT1LEkEUKK01JS0xJxIYgQU5BCitNSUtMScSGIFRFUkVaQQorTUlLTE/FoCBBTkRSQcWgCitNSUtMT8WgIEFORFJJSkEKK01JS0xPxaAgQU5UQUwKK01JS0xPxaAgRElNSVRSSUpFCitNSUtMT8WgIEpBTktPCitNSUtMT8WgIEpFTElTQVZFVEEKK01JS0xPxaAgSlVMSUpBTgorTUlLTE/FoCBOQU5ET1IgRFIgTEVLQVIKK01JS0xPxaAgU1RFVkFOCitNSUtMT8WgIFZMQURJTUlSCitNSUtMT1ZJQyBKQU4KK01JS0xPVklDIE1JTE9TTEFWCitNSUtPTEEgxJBVUkEKK01JS09MQUNJIExFUE9TQVZBCitNSUtPTEVDS0kgU0xBVklDQQorTUlLT0xJxIYgQUxFS1NBTkRBUgorTUlLT1YgSk9WQU5LQQorTUlLT1YgTUVUT0RJIERSIExFS0FSCitNSUtPViBNT01JUgorTUlLT1ZJxIYgxJBPUsSQRQorTUlLT1ZJxIYgxJBPUsSQRQorTUlLT1ZJxIYgxJBVUkEKK01JS09WScSGIEFMRUtTQU5EQVIKK01JS09WScSGIEFMRUtTQU5EQVIKK01JS09WScSGIERBTklMTworTUlLT1ZJxIYgREFSSU5LQQorTUlLT1ZJxIYgREVKQU4KK01JS09WScSGIERFU0FOS0EKK01JS09WScSGIEpFTEVOQQorTUlLT1ZJxIYgTEFaQVIKK01JS09WScSGIExKSUxKQU5BCitNSUtPVknEhiBNSUxFTkEKK01JS09WScSGIE1JT0RSQUcKK01JS09WScSGIE1MQURFTgorTUlLT1ZJxIYgTU9NxIxJTE8gRFIgUFJBVk5JSworTUlLT1ZJxIYgTkFEQQorTUlLT1ZJxIYgTklOT1NMQVYKK01JS09WScSGIFBBVkEKK01JS09WScSGIFJVxb1JQ0EKK01JS09WScSGIFNMQVZLTworTUlLT1ZJxIYgU05Fxb1BTkEKK01JS09WScSGIFNSRURPSkUKK01JS09WSUxPVknEhiBJVkFOCitNSUtTQVQgSk/FvUVGCitNSUtVxaAgQU7EkEVMS0EKK01JS1XFoCBNSUxLQQorTUlLVcWgIE1JUkpBTkEKK01JS1VMRVNLTyBEVcWgQU4KK01JS1VMRVNLTyBTQVZPIERJUEwgSU5HCitNSUtVTEnEhiDFoElNRQorTUlLVUxJxIYgQklMSkFOQQorTUlLVUxJxIYgQkxBxb0KK01JS1VMScSGIEVESVQKK01JS1VMScSGIElWQU4KK01JS1VMScSGIElWQU4KK01JS1VMScSGIElWQQorTUlLVUxJxIYgSkVMSVNBVkVUQQorTUlLVUxJxIYgTE9WUkUKK01JS1VMScSGIE1BUkEKK01JS1VMScSGIE1JTEUKK01JS1VMScSGIE1JTEnEhgorTUlLVUxJTkFDIE1BVElKQQorTUlLVUxJTkFDIFJFTkVUQQorTUlLVUxJTkFDIFNMQVZJQ0EKK01JTMSMScSGIERSQUdBTgorTUlMxIxJxIYgSk9WQU4KK01JTEHEjEnEhiDFvUVMSktPCitNSUxBxIxJxIYgQk9SSVZPSkUKK01JTEHEjEnEhiBCUkFOSVNMQVYKK01JTEHEjEnEhiBCUkFOS08KK01JTEHEjEnEhiBEVcWgQU4KK01JTEHEjEnEhiBJVkFOCitNSUxBxIxJxIYgTEpVQk9NSVIKK01JTEHEjEnEhiBNQcWgQU4KK01JTEHEjEnEhiBNSUxFTktPCitNSUxBxIxJxIYgU1JCT1NMQVYKK01JTEHEjEnEhiBTVkVUT1pBUgorTUlMQcSMScSGIFpPUklDQQorTUlMQcWgIERSQUdBTgorTUlMQcWgIERVxaBBTktBCitNSUxBxaBFVknEhiBaT1JLQQorTUlMQcWgSU5PVknEhiBKT1ZBTgorTUlMQcWgSU5PVknEhiBMSlVCT01JUgorTUlMQcWgSU5PVknEhiBNScSGVU4KK01JTEHFoElOT1ZJxIYgTUlMT1JBRAorTUlMQcWgSU5PVknEhiBNSVJKQU5BCitNSUxBxaBJTk9WScSGIE1JUktPCitNSUxBxaBJTk9WScSGIE1JUktPCitNSUxBxaBJTk9WScSGIFJBREUKK01JTEHFoElOT1ZJxIYtU1RBTk9KRVZJxIYgTEpJTEpBTkEKK01JTEHFoElOT1ZJxIYgVlVLT01BTgorTUlMQcWgSU5PVknEhiBaTEFUT0pBCitNSUxBREnEhiDEjEVEQQorTUlMQURJxIYgRE9CUk9NSVIKK01JTEFEScSGIFBFVEFSCitNSUxBRElOT1NLSSBMRVZLTworTUlMQURJTk9WIMW9QVJLTworTUlMQURJTk9WIMW9SVZLTworTUlMQURJTk9WIEJPxb1JREFSCitNSUxBRElOT1YgREFOSUNBCitNSUxBRElOT1YgREFOSUNBCitNSUxBRElOT1YgRFXFoEFOS0EKK01JTEFESU5PViBEVcWgQU4KK01JTEFESU5PViBKT0NBCitNSUxBRElOT1YgSk9WQU4KK01JTEFESU5PViBKT1ZBTgorTUlMQURJTk9WIEpPVkFOCitNSUxBRElOT1YgSk9WSUNBCitNSUxBRElOT1YgTEpVQklDQQorTUlMQURJTk9WIE1BUklKQQorTUlMQURJTk9WIE1JTEFOCitNSUxBRElOT1YgTUlMQU4KK01JTEFESU5PViBNSUxFTkEKK01JTEFESU5PViBNSUxFTktPCitNSUxBRElOT1YgTUlMT1ZBTiBESVBMIElORworTUlMQURJTk9WIE1JTE9WQU4KK01JTEFESU5PViBOQURBCitNSUxBRElOT1YgTk9WQUsKK01JTEFESU5PViBSQURJVk9KCitNSUxBRElOT1YgUkFET1ZBTgorTUlMQURJTk9WIFNMQVZJQ0EKK01JTEFESU5PViBTUkJJTktPCitNSUxBRElOT1YgU1ZFVE9aQVIKK01JTEFESU5PViBTVkVUT1pBUgorTUlMQURJTk9WIFRJSE9NSVIKK01JTEFESU5PViBWRVNOQQorTUlMQURJTk9WIFZKRVJBCitNSUxBRElOT1ZJxIYgxb1JVkFESU4gRElQTCBJTkcKK01JTEFESU5PVknEhiDFvUlWT0pJTgorTUlMQURJTk9WScSGIMSQT1LEkEUKK01JTEFESU5PVknEhiBBTEVLU0FOREFSCitNSUxBRElOT1ZJxIYgQUxFS1NBTkRBUgorTUlMQURJTk9WScSGIEJPxb1JREFSCitNSUxBRElOT1ZJxIYgQlJBTklNSVIKK01JTEFESU5PVknEhiBCUkFOS08KK01JTEFESU5PVknEhiBEQU1JUgorTUlMQURJTk9WScSGIERJVk5BCitNSUxBRElOT1ZJxIYgRFJBR0FOCitNSUxBRElOT1ZJxIYgRFJBR0FOCitNSUxBRElOT1ZJxIYgRFJBR0nFoEEKK01JTEFESU5PVknEhiBEUkFHT01JUgorTUlMQURJTk9WScSGIERSQUdPU0xBVgorTUlMQURJTk9WScSGIERVxaBBTgorTUlMQURJTk9WScSGIEpPVkFOCitNSUxBRElOT1ZJxIYgSk9WQU4KK01JTEFESU5PVknEhiBMSlVCSUNBCitNSUxBRElOT1ZJxIYgTEpVQklOS0EKK01JTEFESU5PVknEhiBNQVJLTworTUlMQURJTk9WScSGIE1JSEFKTE8KK01JTEFESU5PVknEhiBNSUxBTgorTUlMQURJTk9WScSGIE1JTEFOCitNSUxBRElOT1ZJxIYgTUlMQU4KK01JTEFESU5PVknEhiBNSUxFCitNSUxBRElOT1ZJxIYgTUlMT1ZBTgorTUlMQURJTk9WScSGIE1JUk9TTEFWCitNSUxBRElOT1ZJxIYgTk9WSUNBCitNSUxBRElOT1ZJxIYgUFJFRFJBRworTUlMQURJTk9WScSGIFJBRE1JTE8KK01JTEFESU5PVknEhiBSQURPU0xBVgorTUlMQURJTk9WScSGIFNMQVZLTworTUlMQURJTk9WScSGIFNMT0JPREFOS0EKK01JTEFESU5PVknEhiBTTE9CT0RBTgorTUlMQURJTk9WScSGIFNMT0JPREFOCitNSUxBRElOT1ZJxIYgU1ZFVE9NSVIKK01JTEFESU5PVknEhiBUT0RFCitNSUxBRElOT1ZJxIYgVkVSQQorTUlMQUsgxJBPUsSQRQorTUlMQUsgREFSSU5LQQorTUlMQUsgRFXFoEFOCitNSUxBSyBKRUxFTkEKK01JTEFLIEpPVkFOCitNSUxBSyBKT1ZBTgorTUlMQUsgS0FUSUNBCitNSUxBSyBMQVpBUgorTUlMQUsgTUlMQU4KK01JTEFLIE1JTEFOCitNSUxBSyBNSUxFTktPCitNSUxBSyBNSUxPxaAKK01JTEFLIFJBRE9TTEFWCitNSUxBSyBTQVZBCitNSUxBS09WIEpFTEVOQSBEUiBQUk9GCitNSUxBS09WIExKVUJJQ0EgRFIKK01JTEFLT1YgTUlSSkFOQQorTUlMQUtPVknEhiDEkE9SxJBFCitNSUxBS09WScSGIMSQVVJBxJAKK01JTEFLT1ZJxIYgxJBVUk8KK01JTEFLT1ZJxIYgQk9TSUxKS0EKK01JTEFLT1ZJxIYgREFOSUNBCitNSUxBS09WScSGIERSQUdJQ0EKK01JTEFLT1ZJxIYgRFXFoEFOCitNSUxBS09WScSGIEdPUkFOCitNSUxBS09WScSGIE1JTEFOCitNSUxBS09WScSGIE1JTEtBCitNSUxBS09WScSGIE1MQURFTgorTUlMQUtPVknEhiBSQURNSUxBCitNSUxBS09WScSGIFJBVE9NSVIKK01JTEFLT1ZJxIYgVEVPRE9SCitNSUxBS09WScSGIFZPSklTTEFWCitNSUxBS09WScSGIFZPSk8KK01JTEFLT1ZJxIYgVlVLSUNBCitNSUxBS09WScSGIFpPUkFOCitNSUxBTktPIFNMQVZLTworTUlMQU5LT1Ygxb1JVkEKK01JTEFOS09WIMW9SVZBCitNSUxBTktPViDEkE9SxJBFCitNSUxBTktPViBCUkFOSVNMQVYKK01JTEFOS09WIENWRVRBCitNSUxBTktPViBEVcWgQU4KK01JTEFOS09WIElWQU4KK01JTEFOS09WIEpFTEVOQQorTUlMQU5LT1YgSlVMSUpBTkEKK01JTEFOS09WIExBWkFSCitNSUxBTktPViBNQVJLTworTUlMQU5LT1YgTUlMRU5LTworTUlMQU5LT1YgTUlMSVZPSgorTUlMQU5LT1YgTUlMS08KK01JTEFOS09WIFNMQVZJTUlSCitNSUxBTktPViBTT0ZJSkEKK01JTEFOS09WIFNUQU5JTUlSCitNSUxBTktPViBTVEVWQU4KK01JTEFOS09WScSGIMSQT1LEkEUKK01JTEFOS09WScSGIMSQT1LEkEUKK01JTEFOS09WScSGIEFOQQorTUlMQU5LT1ZJxIYtQ09LT1ZJxIYgTUlSSkFOQQorTUlMQU5LT1ZJxIYgRFJBR09MSlVCCitNSUxBTktPVknEhiBHT1JBTgorTUlMQU5LT1ZJxIYgR09SQU4KK01JTEFOS09WScSGIElMSU5LQQorTUlMQU5LT1ZJxIYgTEFaQVIKK01JTEFOS09WScSGIE1JTEFOS08KK01JTEFOS09WScSGIE1JTEFOCitNSUxBTktPVknEhiBNSUxFVkEKK01JTEFOS09WScSGIFJBRE9TTEFWCitNSUxBTktPVknEhiBTTE9CT0RBTgorTUlMQU5LT1ZJxIYgWk9SQQorTUlMQU5PViBBTklDQQorTUlMQU5PViBBTktBCitNSUxBTk9WIEJPR0RBTgorTUlMQU5PViBCT1JJU0xBVkEKK01JTEFOT1YgRE9CUklWT0oKK01JTEFOT1YgSkVMSUNBCitNSUxBTk9WIExKVUJJxaBBCitNSUxBTk9WIE1JTEFOCitNSUxBTk9WIE1JT0RSQUcKK01JTEFOT1YgTUlSSkFOQQorTUlMQU5PViBNTEFERU4KK01JTEFOT1YgUEVSU0lEQQorTUlMQU5PViBSQURJVk9KCitNSUxBTk9WIFNBVktBCitNSUxBTk9WIFNWRVRPWkFSCitNSUxBTk9WIFZVS09TQVZBCitNSUxBTk9WScSGIMW9RUxKS08KK01JTEFOT1ZJxIYgxb1JVk9SQUQKK01JTEFOT1ZJxIYgxb1JVk9USUpFCitNSUxBTk9WScSGIEFMRUtTQU5EQVIKK01JTEFOT1ZJxIYgQk/FoEtPCitNSUxBTk9WScSGIEJPxb1JREFSCitNSUxBTk9WScSGIEJPR0RBTgorTUlMQU5PVknEhiBCUkFOS08gRFIKK01JTEFOT1ZJxIYgQlJBTktPCitNSUxBTk9WScSGIENWSUpFVElOCitNSUxBTk9WScSGIERBTUpBTktBCitNSUxBTk9WScSGIERFU0FOS0EKK01JTEFOT1ZJxIYgRE9OS0EKK01JTEFOT1ZJxIYgRFJBR0FOCitNSUxBTk9WScSGIERSQUdBTgorTUlMQU5PVknEhiBEUkFHQU4KK01JTEFOT1ZJxIYgRFJBR0lDQQorTUlMQU5PVknEhiBEUkFHTworTUlMQU5PVknEhiBEVcWgQU4KK01JTEFOT1ZJxIYgR09SQU4KK01JTEFOT1ZJxIYgR09SQU4KK01JTEFOT1ZJxIYgSUxJSkEKK01JTEFOT1ZJxIYgSUxJSkEKK01JTEFOT1ZJxIYgSkFTTUlOQQorTUlMQU5PVknEhiBLQVRJQ0EKK01JTEFOT1ZJxIYgTEpJTEpBTkEKK01JTEFOT1ZJxIYgTEpVQknFoEEKK01JTEFOT1ZJxIYgTEpVQklDQQorTUlMQU5PVknEhiBNQVJUQQorTUlMQU5PVknEhiBNSUhPCitNSUxBTk9WScSGIE1JTEFOQQorTUlMQU5PVknEhiBNSUxFTktPCitNSUxBTk9WScSGIE1JTEVOS08KK01JTEFOT1ZJxIYgTUlMSUpBCitNSUxBTk9WScSGIE1JTElTQVYKK01JTEFOT1ZJxIYgTUlMSVNBVgorTUlMQU5PVknEhiBNSUxPSkUKK01JTEFOT1ZJxIYgTUlMT1JBRAorTUlMQU5PVknEhiBNSUxPUkFECitNSUxBTk9WScSGIE1JT0RSQUcKK01JTEFOT1ZJxIYgTUxBREVOCitNSUxBTk9WScSGIE5BREEKK01JTEFOT1ZJxIYtUEVUUkHFoEVWScSGIERSQUdJQ0EKK01JTEFOT1ZJxIYgUkFET1NMQVYKK01JTEFOT1ZJxIYgUkFET1ZBTgorTUlMQU5PVknEhiBTQcWgQQorTUlMQU5PVknEhiBTTEFWT0xKVUIKK01JTEFOT1ZJxIYgU0xPQk9EQU4KK01JTEFOT1ZJxIYgU1ZFVE9NSVIKK01JTEFOT1ZJxIYgVklLVE9SSUpBCitNSUxBTk9WScSGIFZJVEtPCitNSUxBTk9WScSGIFZMQURJTUlSCitNSUxBTk9WScSGIFZMQURJTUlSCitNSUxBTk9WScSGIFZVSk8KK01JTEFOT1ZJxIYgWk9SQU4KK01JTEFOT1ZJxIYgWk9SQU4KK01JTEFOT1ZJxIYgWk9SQQorTUlMQU5PVknEhiBaT1JLQQorTUlMQVJJxIYgSVZBTgorTUlMQVRPVknEhiBEQU5JTE8KK01JTEFUT1ZJxIYgSk9WQU5LQQorTUlMQVRPVknEhiBWTEFESU1JUgorTUlMRcWgRVYgTUlMSUNBCitNSUxFxaBFVknEhiBPQlJBRAorTUlMRUMgRE9ST1RFQQorTUlMRUMgSUxPTktBCitNSUxFSSBEUkFHVVRJTgorTUlMRUkgSkFOT8WgCitNSUxFSSBUT01JU0xBVgorTUlMRUvFoEnEhiBCT0dEQU4KK01JTEVLScSGIERVxaBBTgorTUlMRUtJxIYgTUlMT01JUgorTUlMRUtJxIYgTklLT0xBCitNSUxFS0nEhiBTVEVWQU4KK01JTEVLScSGIFVST8WgCitNSUxFTktPVknEhiDFvUFSS08KK01JTEVOS09WScSGIMW9SVZPSklOCitNSUxFTktPVknEhiDEkE9SxJBFCitNSUxFTktPVknEhiDEkFVSxJBJTkEKK01JTEVOS09WScSGIEFMRUtTQU5EQVIKK01JTEVOS09WScSGLUFOVEnEhiBMQVpBUgorTUlMRU5LT1ZJxIYtQkpFTEFKQUMgTUlMQU5LQQorTUlMRU5LT1ZJxIYgQk/FvUlEQVIKK01JTEVOS09WScSGIEJPR09NSVIKK01JTEVOS09WScSGIEJPUklWT0pFCitNSUxFTktPVknEhiBCUkFOSVNMQVYKK01JTEVOS09WScSGIEJSQU5JU0xBVgorTUlMRU5LT1ZJxIYgQlJBTktPCitNSUxFTktPVknEhiBCUkFUSVNMQVYKK01JTEVOS09WScSGIEJSQVRJU0xBVgorTUlMRU5LT1ZJxIYgREFSSU5LQQorTUlMRU5LT1ZJxIYgRE9CUklMQQorTUlMRU5LT1ZJxIYgRE9CUklMQQorTUlMRU5LT1ZJxIYgRE9CUklWT0pFCitNSUxFTktPVknEhiBEUkFHQU4gRFIKK01JTEVOS09WScSGIERSQUdPxaAKK01JTEVOS09WScSGIERSQUdPTEpVQiBEUgorTUlMRU5LT1ZJxIYgRFJBR09TTEFWCitNSUxFTktPVknEhiBEUkFHT1NMQVYKK01JTEVOS09WScSGIERVxaBBTgorTUlMRU5LT1ZJxIYgRFXFoEFOCitNSUxFTktPVknEhiBFUsW9SUtBCitNSUxFTktPVknEhiBHUk9aREFOQQorTUlMRU5LT1ZJxIYgSUxPTktBCitNSUxFTktPVknEhiBJUkVOQQorTUlMRU5LT1ZJxIYgSkVMSUNBCitNSUxFTktPVknEhiBKRVZUTworTUlMRU5LT1ZJxIYgSlVHT1NMQVYKK01JTEVOS09WScSGIEpVU1RJTkEKK01JTEVOS09WScSGIEtPVklMSktBCitNSUxFTktPVknEhiBLUlNUQU5BCitNSUxFTktPVknEhiBMSklMSkFOQQorTUlMRU5LT1ZJxIYgTEpJTEpBTkEKK01JTEVOS09WScSGIE1JTElKQU4KK01JTEVOS09WScSGIE1JTElTQVYKK01JTEVOS09WScSGIE1JTE9SQUQKK01JTEVOS09WScSGIE1JTE9SQUQKK01JTEVOS09WScSGIE1JTE9TQVYKK01JTEVOS09WScSGIE1JTFVUSU4KK01JTEVOS09WScSGIE1JT0RSQUcKK01JTEVOS09WScSGIE1JUk9TTEFWCitNSUxFTktPVknEhiBNSVJPU0xBVgorTUlMRU5LT1ZJxIYgTU9NxIxJTE8KK01JTEVOS09WScSGIE5FQk9KxaBBCitNSUxFTktPVknEhiBORU5BRAorTUlMRU5LT1ZJxIYgTknEhklGT1IKK01JTEVOS09WScSGIFBBVU4KK01JTEVOS09WScSGIFBSRURSQUcKK01JTEVOS09WScSGIFJBRElTQVYKK01JTEVOS09WScSGIFJBRE9NSVIKK01JTEVOS09WScSGIFJBRE9TTEFWCitNSUxFTktPVknEhiBSQURPVkFOCitNSUxFTktPVknEhiBTQVZBCitNSUxFTktPVknEhiBTTEFWT0xKVUIKK01JTEVOS09WScSGIFNORcW9QU5BCitNSUxFTktPVknEhiBTUkVURU4KK01JTEVOS09WScSGIFNUT0pBTktBCitNSUxFTktPVknEhiBTVkVUSVNMQVYKK01JTEVOS09WScSGIFNWRVRPTUlSCitNSUxFTktPVknEhiBUSUhPTUlSCitNSUxFTktPVknEhiBWRVNFTElOS0EKK01JTEVOS09WScSGIFZJVE9NSVIKK01JTEVOS09WScSGIFZMQURBTgorTUlMRU5LT1ZJxIYgWk9SSUNBCitNSUxFTktPVknEhiBaT1JLQQorTUlMRU5LT1ZTS0kgQkxBR09KRQorTUlMRU5LT1ZTS0kgTUlMSUNBCitNSUxFTk9WScSGIMW9SVZBCitNSUxFTk9WScSGLUJFS0nEhiBNSVJKQU5BCitNSUxFTk9WScSGIEJSQU5LTworTUlMRU5PVknEhiBNSUxPUkFECitNSUxFTk9WScSGIE9MR0EKK01JTEVOT1ZJxIYgUFJFRFJBRworTUlMRU5USUpFVknEhiDFvUlWT1JBRAorTUlMRU5USUpFVknEhiBaRFJBVktPCitNSUxFUiBCQVJCQVJBCitNSUxFUiBFUsW9RUJFVAorTUlMRVIgRlJBTkpBCitNSUxFUiBJTVJFIERSIExFS0FSCitNSUxFUiBJVkFOS0EKK01JTEVSIEpFTEVOQQorTUlMRVIgSkVMSUNBCitNSUxFUiBLQVJMTworTUlMRVIgTUFSSUpBCitNSUxFUiBNSUhBSkxPCitNSUxFUiBPVE9LQVIKK01JTEVSIFpMQVRLTworTUlMRVNLSSBBVEFOQVNJSkUKK01JTEVUQSBOSUtPTEEKK01JTEVUQcWgS0kgQk9SSVZPSgorTUlMRVRBxaBLSSBNSUxFCitNSUxFVEnEhiDFvUlWS08KK01JTEVUScSGIMW9SVZPVEEKK01JTEVUScSGIMSQT1LEkEUKK01JTEVUScSGIEFMRUtTQU5EUkEKK01JTEVUScSGIEFOQQorTUlMRVRJxIYgQk/FvUEKK01JTEVUScSGIEJPUknFoEEKK01JTEVUScSGIEJSQU5JU0xBVgorTUlMRVRJxIYgRE9CUk9TQVYKK01JTEVUScSGIERSQUdJQ0EKK01JTEVUScSGIERVxaBBTgorTUlMRVRJxIYgRFXFoEFOCitNSUxFVEnEhiBEVcWgQU4KK01JTEVUScSGIEdPSktPCitNSUxFVEnEhiBHVk9aREVOCitNSUxFVEnEhiBJTElKQQorTUlMRVRJxIYgSVZJQ0EKK01JTEVUScSGIExKVUJJQ0EKK01JTEVUScSGIExKVUJJU0FWCitNSUxFVEnEhiBNSUxJQ0EKK01JTEVUScSGIE1JTElWT0oKK01JTEVUScSGIE1JTE9KRQorTUlMRVRJxIYgTUlUQQorTUlMRVRJxIYgTkFEQQorTUlMRVRJxIYgTklLT0xBCitNSUxFVEnEhiBPTEdBCitNSUxFVEnEhiBQRVRBUgorTUlMRVRJxIYgUkFERQorTUlMRVRJxIYgUkFET8WgCitNSUxFVEnEhiBSQURPSktBCitNSUxFVEnEhiBSQURPU0xBVgorTUlMRVRJxIYgUkFOS08KK01JTEVUScSGIFNFVkVSSU5BCitNSUxFVEnEhiBTTEFWS08gRFIgTEVLQVIKK01JTEVUScSGIFNMQVZLTworTUlMRVRJxIYgU0xBVk9MSlVCCitNSUxFVEnEhiBTTE9CT0RBTgorTUlMRVRJxIYgU0xPQk9EQU4KK01JTEVUScSGIFNPTkpBCitNSUxFVEnEhiBTVEVWQU4KK01JTEVUScSGIFZFTEUKK01JTEVUScSGIFZFTElCT1IKK01JTEVUScSGIFZFTElCT1IKK01JTEVUScSGIFZFTElNSVIKK01JTEVUScSGIFZJRE9TQVZBCitNSUxFVEnEhiBaRFJBVktPCitNSUxFVElDS0kgUkFEQQorTUlMRVRJQ0tJIFpPUktBCitNSUxFVElOIERBTkEKK01JTEVUSU4gTUlSSkFOQQorTUlMRVRJTiBOSUtPTEEKK01JTEVUSU4gUkFESVZPSgorTUlMRVRJTiBTVkVUT1pBUiBESVBMIE9FQworTUlMRVRPVknEhiBTTEFWS08KK01JTEVVU05JxIYgRFJBR0FOCitNSUxFVVNOScSGIE1BUktPCitNSUxFVVNOScSGIE5BREEKK01JTEVVU05JxIYgTkFEQQorTUlMRVVTTknEhiBQRVRBUgorTUlMRVYgUEVUQVIKK01JTEVWU0tJIMSQT1LEkEUKK01JTEhBTlMgU1RBTklTTEFWCitNSUxJxIxFVknEhiDEkFVSQQorTUlMScSMRVZJxIYgQVJBTktBCitNSUxJxIxFVknEhiBCUkFOS08KK01JTEnEjEVWScSGIERSQUdJTkpBCitNSUxJxIxFVknEhiBEVcWgQU4KK01JTEnEjEVWScSGIEpPVkFOCitNSUxJxIxFVknEhiBLQVRJQ0EKK01JTEnEjEVWScSGIE1JTEFOCitNSUxJxIxFVknEhiBNSUxFTktPCitNSUxJxIxFVknEhiBNSUxJQ0EKK01JTEnEjEVWScSGIE1JTElWT0oKK01JTEnEjEVWScSGIE1JTEtBTgorTUlMScSMRVZJxIYgTUxBREVOCitNSUxJxIxFVknEhiBORU5BRAorTUlMScSMRVZJxIYgTk9WSUNBCitNSUxJxIxFVknEhiBQQVZBCitNSUxJxIxFVknEhiBQRVJPCitNSUxJxIxFVknEhiBTVEFOSU1JUgorTUlMScSMRVZJxIYgU1RFVkFOCitNSUxJxIxFVknEhiBUT01JU0xBVgorTUlMScSMScSGIMW9QVJLTworTUlMScSMScSGIEFMRUtTQU5EQVIKK01JTEnEjEnEhiBBTkEKK01JTEnEjEnEhiBBTkRSSUpBCitNSUxJxIxJxIYgQU5LQQorTUlMScSMScSGIEJPUklTTEFWCitNSUxJxIxJxIYgQlJBTktPCitNSUxJxIxJxIYgRFJBR0lDQQorTUlMScSMScSGIERSQUdPTUlSCitNSUxJxIxJxIYgRFXFoEFOCitNSUxJxIxJxIYgSkVMSUNBCitNSUxJxIxJxIYgSk9WQU5LQQorTUlMScSMScSGIEpPVkFOCitNSUxJxIxJxIYgS0FUSUNBCitNSUxJxIxJxIYgTEpVQklOS0EKK01JTEnEjEnEhiBNQVJJTktPCitNSUxJxIxJxIYgTUlIQUpMTworTUlMScSMScSGIE1JTE/FoAorTUlMScSMScSGIE1JUkpBTkEKK01JTEnEjEnEhiBSQURPVkFOCitNSUxJxIxJxIYgUkFKS08KK01JTEnEjEnEhiBTVEVWQU4KK01JTEnEjEnEhiBUSUxLQQorTUlMScSMScSGIFZBU0EKK01JTEnFoEnEhiDEkE9SxJBFCitNSUxJxaBJxIYgRFXFoEFOS0EKK01JTEnFoEnEhiBORUJPSsWgQQorTUlMScSGIMSMRURPTUlSCitNSUxJxIYgxIxFRE9NSVIKK01JTEnEhiDFvUlLQQorTUlMScSGIMW9SVZLTworTUlMScSGIMW9SVZPTUlSCitNSUxJxIYgxJBPUsSQRQorTUlMScSGIMSQT1LEkEUKK01JTEnEhiDEkE9SxJBFCitNSUxJxIYgxJBPUsSQRQorTUlMScSGIMSQT1LEkEUKK01JTEnEhiDEkE9SxJBFCitNSUxJxIYgxJBPUsSQRQorTUlMScSGIMSQT1LEkEUKK01JTEnEhiDEkFVSSUNBCitNSUxJxIYgQURJTEEKK01JTEnEhiBBTEVLU0FOREFSCitNSUxJxIYgQUxFS1NBTkRSQQorTUlMScSGIEFOxJBFTElKQQorTUlMScSGIEJPxb1JREFSIERSCitNSUxJxIYgQk/FvUlEQVIKK01JTEnEhiBCT8W9TworTUlMScSGIEJPR0RBTgorTUlMScSGIEJPSkFOQQorTUlMScSGIEJPUklWT0pFCitNSUxJxIYgQk9SSVZPSgorTUlMScSGIEJSQU5JU0xBVgorTUlMScSGIEJSQU5JU0xBVgorTUlMScSGIEJSQU5JU0xBVgorTUlMScSGIEJSQU5LQQorTUlMScSGIEJSQU5LTworTUlMScSGIEJSQU5LTworTUlMScSGIEJSQVRJU0xBVgorTUlMScSGIERBTklDQQorTUlMScSGIERBTklMS0EKK01JTEnEhiBEQU5JTEtBCitNSUxJxIYgREFOSUxPCitNSUxJxIYgREFSQQorTUlMScSGIERSQUdBTgorTUlMScSGIERSQUdBTgorTUlMScSGIERSQUdBTgorTUlMScSGIERSQUdJQ0EKK01JTEnEhiBEUkFHSUNBCitNSUxJxIYgRFJBR09NSVIKK01JTEnEhiBEUkFHT01JUgorTUlMScSGIERSQUdPU0xBVgorTUlMScSGIERVxaBBTktBCitNSUxJxIYgRFXFoEFOS0EKK01JTEnEhiBEVcWgQU4KK01JTEnEhiBEVcWgQU4KK01JTEnEhiBEVcWgQU4KK01JTEnEhiBEVcWgQU4KK01JTEnEhiBFTElaQUJFVEEKK01JTEnEhiBFTUlMSUpBCitNSUxJxIYgRU1JTElKQQorTUlMScSGIEVWQQorTUlMScSGIEVWQQorTUlMScSGIEVWSUNBCitNSUxJxIYgRkVSRU5DCitNSUxJxIYgR0FWUkEKK01JTEnEhiBJTElKQQorTUlMScSGLUpBR09ESU5TS0kgTUlMQU4KK01JTEnEhiBKQU5LTworTUlMScSGIEpFTEVOQQorTUlMScSGIEpFTElDQQorTUlMScSGIEpFTEtBCitNSUxJxIYgSk9WQU4KK01JTEnEhiBKT1ZBTgorTUlMScSGIEpPVkFOCitNSUxJxIYgSk9WQQorTUlMScSGIEpPVk8KK01JTEnEhiBKT1ZPCitNSUxJxIYgSlVMS0EKK01JTEnEhiBLQVRJQ0EKK01JTEnEhiBLUlNUTworTUlMScSGIEtTRU5JSkEKK01JTEnEhiBMQVpBUgorTUlMScSGIExKSUxKQU5BCitNSUxJxIYgTEpVQknFoEEKK01JTEnEhiBMSlVCSUNBCitNSUxJxIYgTEpVQk9NSVIgRElQTCBJTkcKK01JTEnEhiBMSlVCT01JUgorTUlMScSGIExKVUJPTUlSCitNSUxJxIYgTEpVQk9NSVIKK01JTEnEhiBNQVJBCitNSUxJxIYgTUFSSUpBCitNSUxJxIYgTUFSSUpBCitNSUxJxIYgTUFSSUpBCitNSUxJxIYgTUlMQU5LQQorTUlMScSGIE1JTEFOCitNSUxJxIYgTUlMRU5LTworTUlMScSGIE1JTElDQQorTUlMScSGIE1JTElDQQorTUlMScSGIE1JTE/FoAorTUlMScSGIE1JTE/FoAorTUlMScSGIE1JTE9SQUQKK01JTEnEhiBNSUxPU0FWCitNSUxJxIYgTUlMVVRJTgorTUlMScSGIE1JT0RSQUcKK01JTEnEhiBNSVJKQU5BIERJUEwgT0VDCitNSUxJxIYgTUlSSkFOQQorTUlMScSGIE1JUk9TTEFWCitNSUxJxIYgTUlUQQorTUlMScSGIE1MQURFTgorTUlMScSGIE5BREEKK01JTEnEhiBORURFTEpLTworTUlMScSGIE5JS09MQQorTUlMScSGIE5JS09MQQorTUlMScSGIE5PVkFLCitNSUxJxIYgTk9WQUsKK01JTEnEhiBQQU5UQQorTUlMScSGIFBBVkxFCitNSUxJxIYgUEVSQQorTUlMScSGIFBFVEFSCitNSUxJxIYgUEVUQVIKK01JTEnEhiBQUk9LQQorTUlMScSGIFJBREEKK01JTEnEhiBSQURFCitNSUxJxIYgUkFESVZPSkUKK01JTEnEhiBSQURNSUxBCitNSUxJxIYgUkFET0pLQQorTUlMScSGIFJBRE9NSVIKK01JTEnEhiBSQU5LTworTUlMScSGIFJVxb1BCitNSUxJxIYgU0FORFJBCitNSUxJxIYgU0FWQQorTUlMScSGIFNMQVZJQ0EKK01JTEnEhiBTTEFWSUNBCitNSUxJxIYgU0xBVktBCitNSUxJxIYgU0xBVktPCitNSUxJxIYgU0xBVlVKCitNSUxJxIYgU09GSUpBCitNSUxJxIYgU1RFVkFOCitNSUxJxIYgU1RFVkFOCitNSUxJxIYgU1RFVkFOCitNSUxJxIYgU1ZFVExBTkEKK01JTEnEhiBTVkVUT1pBUgorTUlMScSGIFNWRVRPWkFSCitNSUxJxIYgVEVPRE9SQQorTUlMScSGIFRPRE9SCitNSUxJxIYgVE9ET1IKK01JTEnEhiBUT01JU0xBVgorTUlMScSGIFRPTUlTTEFWCitNSUxJxIYgVVJPxaAKK01JTEnEhiBWQVNBCitNSUxJxIYgVkVMSU5LQQorTUlMScSGIFZFUkEKK01JTEnEhiBWRVJBCitNSUxJxIYgVkVSSUNBCitNSUxJxIYgVkxBRElDQQorTUlMScSGIFZMQURPCitNSUxJxIYgVlVLSUNBCitNSUxJxIYgWkRSQVZLTworTUlMScSGIFpPUkFOCitNSUxJxIYgWk9SQU4KK01JTEnEhiBaT1JBTgorTUlMScSGIFpPUkEKK01JTEnEhkVWIEJPUklTTEFWCitNSUxJxIZFViBCUkFOS08KK01JTEnEhkVWIFNMQVZLTworTUlMScSGRVYgVkFTSUxJSkUKK01JTEnEhkVWIFZJS0VOVElKRQorTUlMScSGRVZJxIYgxb1JVk9SQUQKK01JTEnEhkVWScSGIMSQT1LEkEUKK01JTEnEhkVWScSGIMSQT1LEkEUKK01JTEnEhkVWScSGIMSQVVJBxJAKK01JTEnEhkVWScSGIEJPxb1JREFSCitNSUxJxIZFVknEhiBCT1JJxaBBCitNSUxJxIZFVknEhiBCUkFOS08KK01JTEnEhkVWScSGIERSQUdBTgorTUlMScSGRVZJxIYgRFXFoEFOCitNSUxJxIZFVknEhiBEVcWgQU4KK01JTEnEhkVWScSGIEdPSktPCitNSUxJxIZFVknEhiBHT1JEQU5BCitNSUxJxIZFVknEhiBLQVRBUklOQQorTUlMScSGRVZJxIYgS0FUSUNBCitNSUxJxIZFVknEhiBLU0VOSUpBIERSIFNUT01BVE9MT0cKK01JTEnEhkVWScSGIExKVUJPTUlSCitNSUxJxIZFVknEhiBNQVJLTworTUlMScSGRVZJxIYgTUlIQUlMTworTUlMScSGRVZJxIYgTUlMSUNBCitNSUxJxIZFVknEhiBNSUxPUkFECitNSUxJxIZFVknEhiBNSUxPVkFOCitNSUxJxIZFVknEhiBNSU9EUkFHCitNSUxJxIZFVknEhiBNSU9EUkFHCitNSUxJxIZFVknEhiBNT03EjElMTworTUlMScSGRVZJxIYgTU9NxIxJTE8KK01JTEnEhkVWScSGIE5BVEHFoEEKK01JTEnEhkVWScSGIE5JS09MQQorTUlMScSGRVZJxIYgUEFWTEUKK01JTEnEhkVWScSGIFBFVEFSCitNSUxJxIZFVknEhiBSQURNSUxBCitNSUxJxIZFVknEhiBSQUpLTworTUlMScSGRVZJxIYgU0xBxJBBTkEKK01JTEnEhkVWScSGIFNMQVZJQ0EKK01JTEnEhkVWScSGIFNMT0JPREFOCitNSUxJxIZFVknEhiBTTE9CT0RBTgorTUlMScSGRVZJxIYgU0xPQk9EQU4KK01JTEnEhkVWScSGIFNMT0JPREFOCitNSUxJxIZFVknEhiBTTE9CT0RBTgorTUlMScSGRVZJxIYgU0xPQk9EQU4KK01JTEnEhkVWScSGIFNQQVNPCitNSUxJxIZFVknEhiBTVEFOQQorTUlMScSGRVZJxIYgU1RFVkFOCitNSUxJxIZFVknEhiBTVEVWQU4KK01JTEnEhkVWScSGIFNWRVRJU0xBVgorTUlMScSGRVZJxIYgVkVMScWgQQorTUlMScSGRVZJxIYgVkVST0xKVUIKK01JTEnEhkVWScSGIFZJVE9NSVIKK01JTEnEhkVWScSGIFZMQURJTUlSCitNSUxJxIZFVknEhiBWVUtPTUlSCitNSUxJQyBLQVJPTEoKK01JTElEUkFHIEtSU1RPCitNSUxJRFJBR09WScSGIEJPUklTTEFWCitNSUxJRFJBR09WScSGIExBWkFSCitNSUxJRFJBR09WScSGIE1JTElWT0pFCitNSUxJRFJBR09WScSGIE1JTE9SQUQgRElQTCBJTkcKK01JTElEUkFHT1ZJxIYgTUxBREVOCitNSUxJRFJBR09WScSGIE5FREVMSktPCitNSUxJRFJBR09WScSGIFNMT0JPREFOCitNSUxJSkHFoC1QQVZLT1ZJxIYgTUFSSUpBCitNSUxJSkHFoEVWScSGIMW9SVZPUkFECitNSUxJSkHFoEVWScSGIEJPxaBLTworTUlMSUpBxaBFVknEhiBNSUxBTgorTUlMSUpBTk9WScSGIMSQT1LEkEUKK01JTElKQU5PVknEhiBNSUxBTgorTUlMSUpFVknEhiDEkFVSQcSQCitNSUxJS0nEhiBEUkFHT0pFCitNSUxJS0nEhiBTSU1BCitNSUxJTiDFvUlWQU4KK01JTElOIEJSQU5JU0xBVgorTUlMSU4gRFXFoEFOCitNSUxJTiBEVcWgQU4KK01JTElOIElWQU4KK01JTElOIEpPVkFOCitNSUxJTiBNSUxFTktPCitNSUxJTiBNSUxJQ0EKK01JTElOIE1PTUlSCitNSUxJTiBSQURJVk9KIERSCitNSUxJTiBSQURJVk9KCitNSUxJTiBTTkXFvUFOQQorTUlMSU4gU1RFVkFOCitNSUxJTiBTVkVUSVNMQVYKK01JTElOIFZPSklTTEFWIE5PVklOQVIKK01JTElOIFpEUkFWS08gRElQTCBJTkcKK01JTElOIFpPUklDQQorTUlMSU7EjEnEhiDEjEFTTEFWCitNSUxJTsSMScSGIFNUT0pBTgorTUlMSU5JxIYgUkFERU5LTworTUlMSU5JxIYgUkFKS08KK01JTElOS09WIMW9SVZBTgorTUlMSU5LT1Ygxb1JVk9KSU4KK01JTElOS09WIEFOxJBFTEtBCitNSUxJTktPViBCT8W9QQorTUlMSU5LT1YgQlJBTklTTEFWCitNSUxJTktPViBCUkFOSVNMQVYKK01JTElOS09WIEJSQU5LTworTUlMSU5LT1YgREFOSUxPCitNSUxJTktPViBEVcWgQU4KK01JTElOS09WIElWQU4KK01JTElOS09WIEpVTEtBCitNSUxJTktPViBMQVpBUgorTUlMSU5LT1YgTEpVQklDQQorTUlMSU5LT1YgTUlMQU4KK01JTElOS09WIE1JTElDQQorTUlMSU5LT1YgTkVOQUQKK01JTElOS09WIE5FTkFECitNSUxJTktPViBOSUtPTEEKK01JTElOS09WIFNMT0JPREFOCitNSUxJTktPViBWRVJBCitNSUxJTktPViBWRVNFTElOCitNSUxJTktPViBWTEFKS08KK01JTElOS09WIFpPUkFOCitNSUxJTktPVknEhiDEkE9SxJBFCitNSUxJTktPVknEhiDEkE9SxJBFCitNSUxJTktPVknEhiDEkE9SxJBFCitNSUxJTktPVknEhiDEkFVSTworTUlMSU5LT1ZJxIYgQklMSkFOQQorTUlMSU5LT1ZJxIYgQk9KTworTUlMSU5LT1ZJxIYgQlVESU1JUgorTUlMSU5LT1ZJxIYgRFJBR0FOCitNSUxJTktPVknEhiBEUkFHT1NMQVYKK01JTElOS09WScSGIERVxaBBTgorTUlMSU5LT1ZJxIYgRFXFoEFOCitNSUxJTktPVknEhiBEVcWgQU4KK01JTElOS09WScSGIERVxaBBTgorTUlMSU5LT1ZJxIYgRVRFTEtBCitNSUxJTktPVknEhiBJVkFOCitNSUxJTktPVknEhiBJVkFOCitNSUxJTktPVknEhiBJVkFOCitNSUxJTktPVknEhiBJVkFOCitNSUxJTktPVknEhiBKT1ZBTgorTUlMSU5LT1ZJxIYgSk9WSUNBCitNSUxJTktPVknEhiBMSklMSkFOQQorTUlMSU5LT1ZJxIYgTUFSQQorTUlMSU5LT1ZJxIYgTUlMQU4KK01JTElOS09WScSGIE1JTEVOQQorTUlMSU5LT1ZJxIYgTUlMScSGCitNSUxJTktPVknEhiBNSUxPUkFECitNSUxJTktPVknEhiBOQURFxb1EQQorTUlMSU5LT1ZJxIYgTk9WQUsKK01JTElOS09WScSGIFBBTlRBCitNSUxJTktPVknEhiBQRVRBUgorTUlMSU5LT1ZJxIYgU0xBVktPCitNSUxJTktPVknEhiBTTE9CT0RBTgorTUlMSU5LT1ZJxIYgU0xPQk9EQU4KK01JTElOS09WScSGIFNMT0JPREFOCitNSUxJTktPVknEhiBTTUlMSktBCitNSUxJTktPVknEhiBTUkVUTworTUlMSU5LT1ZJxIYgVklEQQorTUlMSU5LT1ZJxIYgVkxBRElTTEFWCitNSUxJTktPVknEhiBWT0pBCitNSUxJTk9WIEdBVlJBCitNSUxJTk9WIEpFTEVOS08KK01JTElOT1YgTUlMT1JBRAorTUlMSU5PViBNSVJKQU5BCitNSUxJTk9WIE1JUk9TTEFWCitNSUxJTk9WIE5FVkVOQQorTUlMSU5PViBOSUtPTEEKK01JTElOT1YgUkFESVZPSgorTUlMSU5PViBTTEFWS08KK01JTElOT1YgU1RFVkFOCitNSUxJTk9WIFNWRVRJU0xBVgorTUlMSU5PVknEhiDFvUFSS08KK01JTElOT1ZJxIYgQk/FvUlEQVIKK01JTElOT1ZJxIYgQk9HT0xKVUIKK01JTElOT1ZJxIYgRFJBR0FOCitNSUxJTk9WScSGIERSQUdBTgorTUlMSU5PVknEhiBLU0VOSUpBCitNSUxJTk9WScSGIExBWk8KK01JTElOT1ZJxIYgTEpVQk9NSVIKK01JTElOT1ZJxIYgTEpVQk9NSVIKK01JTElOT1ZJxIYgTUlIQUpMTworTUlMSU5PVknEhiBNSVJPU0xBVgorTUlMSU5PVknEhiBOSUtPTEEKK01JTElOT1ZJxIYgUEVUQVIKK01JTElOT1ZJxIYgUEVUQVIKK01JTElOT1ZJxIYgUkFET01JUgorTUlMSU5PVknEhiBTQVZBCitNSUxJTk9WScSGIFNMT0JPREFOCitNSUxJTk9WScSGIFNURVZBTgorTUlMSU5PVknEhiBTVEVWQQorTUlMSU5PVknEhiBUSU1BCitNSUxJTk9WScSGIFZKRUtPU0xBVgorTUlMSU5TS0kgQUxFS1NBTkRBUgorTUlMSU5TS0kgQVJQQUQKK01JTElOU0tJIEVSxb1FQkVUCitNSUxJTlNLSSBHQUJPUgorTUlMSU5TS0kgR09SREFOQQorTUlMSU5TS0kgSkVMRU5BCitNSUxJTlNLSSBKRUxFTkEKK01JTElOU0tJIExBRElTTEFWCitNSUxJTlNLSSBNSUhBSUxPCitNSUxJTlNLSSBOSUtPTEEKK01JTElOU0tJIFRFT0RPUgorTUlMSU5TS0kgVklLVE9SCitNSUxJTlNLSSBWSUtUT1IKK01JTElOU0tJIFpPTFRBTgorTUlMSVNBVkFDIMW9SVZBTgorTUlMSVNBVkxKRVZJxIYgRFJBR09NSVIKK01JTElTQVZMSkVWScSGIERSQUdPU0xBViBEUiBQUk9GCitNSUxJU0FWTEpFVknEhiBKT1ZBTgorTUlMSVNBVkxKRVZJxIYgSlVMSUpBTkEKK01JTElTQVZMSkVWScSGIE1JTEFESU4KK01JTElTQVZMSkVWScSGIE1JTEFOCitNSUxJU0FWTEpFVknEhiBNSUxPUkFECitNSUxJU0FWTEpFVknEhiBNSVLEjEVUQQorTUlMSVNBVkxKRVZJxIYgU1RBTklNSVIKK01JTElTQVZMSkVWScSGIFNUQU5JTUlSCitNSUxJU0FWTEpFVknEhiBWTEFESU1JUgorTUlMSVZPSsSMRVYgQk9SSVNMQVYKK01JTElWT0rEjEVWIFNURVZBTgorTUlMSVZPSsSMRVZJxIYgQUxFS1NBTkRBUgorTUlMSVZPSsWgQSBMQVpBUgorTUlMSVZPSsWgSU4gSk9WQU4KK01JTElWT0rFoElOIFBBSkEKK01JTElWT0pFViBBTklDQQorTUlMSVZPSkVWIEJPUklWT0oKK01JTElWT0pFViBHUkFET0pFCitNSUxJVk9KRVYgSk9WQU5LQQorTUlMSVZPSkVWIEtPTlNUQU5USU4KK01JTElWT0pFViBMVUtBCitNSUxJVk9KRVYgTUlIQUpMTworTUlMSVZPSkVWIE1JTEFOQQorTUlMSVZPSkVWIE1JTEFOCitNSUxJVk9KRVYgTUlMQU4KK01JTElWT0pFViBNSUxPxaAKK01JTElWT0pFViBNTEFERU4KK01JTElWT0pFViBOQURBCitNSUxJVk9KRVYgUEFWTEUKK01JTElWT0pFViBTT0ZJSkEKK01JTElWT0pFViBTT0ZJSkEKK01JTElWT0pFViBTT0ZJSkEKK01JTElWT0pFVknEhiDEjEVET01JUgorTUlMSVZPSkVWScSGIMW9SVZLQQorTUlMSVZPSkVWScSGIMSQT1LEkEUKK01JTElWT0pFVknEhiDEkE9SxJBFCitNSUxJVk9KRVZJxIYgxJBPUsSQRQorTUlMSVZPSkVWScSGIEJJTEpBTkEKK01JTElWT0pFVknEhiBCT8WgS08KK01JTElWT0pFVknEhiBCUkFOS08KK01JTElWT0pFVknEhiBCVURJTUlSCitNSUxJVk9KRVZJxIYgQlVESVNMQVYKK01JTElWT0pFVknEhiBEUkFHQU4KK01JTElWT0pFVknEhiBEUkFHQU4KK01JTElWT0pFVknEhiBEVcWgQU4KK01JTElWT0pFVknEhiBEVcWgQU4KK01JTElWT0pFVknEhiBJTElKQQorTUlMSVZPSkVWScSGIEpBR09EQQorTUlMSVZPSkVWScSGIEpFTEVOQQorTUlMSVZPSkVWScSGIEpPVkFOCitNSUxJVk9KRVZJxIYgSk9WQU4KK01JTElWT0pFVknEhiBNQVJJTkEKK01JTElWT0pFVknEhiBNSUxBTgorTUlMSVZPSkVWScSGIE1JTEVOQQorTUlMSVZPSkVWScSGIE1JTE9NSVIKK01JTElWT0pFVknEhiBNSUxPUkFECitNSUxJVk9KRVZJxIYgTUlMT1ZBTgorTUlMSVZPSkVWScSGIE1JUkpBTkEKK01JTElWT0pFVknEhiBNSVJLTworTUlMSVZPSkVWScSGIE1JUk9TTEFWCitNSUxJVk9KRVZJxIYgTU9NxIxJTE8KK01JTElWT0pFVknEhiBSQURPSkUKK01JTElWT0pFVknEhiBSQURPU0xBVgorTUlMSVZPSkVWScSGIFNBVk8KK01JTElWT0pFVknEhiBTTEFWS08KK01JTElWT0pFVknEhiBTTEFWTkEKK01JTElWT0pFVknEhiBTVE9KQU5LQQorTUlMSVZPSkVWScSGIFZMQURJTUlSCitNSUxJVk9KRVZJxIYgVkxBU1RJTUlSCitNSUxJVk9KRVZJxIYgVk9KQQorTUlMSVZPSkVWScSGIFZPSklTTEFWCitNSUxJVk9KRVZJxIYgVlXEjE8KK01JTElWT0pFVknEhiBaRFJBVktPCitNSUxJVk9KRVZJxIYgWk9SQQorTUlMSkFLT1ZJxIYgTUlMQU4KK01JTEpBTknEhiDFvUlWS0EKK01JTEpBTknEhiBEUkFHQU4KK01JTEpBTknEhiBEVcWgQU4KK01JTEpBTknEhiBKT1ZBTgorTUlMSkFOScSGIE1BUktPCitNSUxKQU5JxIYgTk9WQUsKK01JTEpBTknEhiBPQlJBRAorTUlMSkFOScSGIFJBRElWT0pFCitNSUxKQU5JxIYgUkFET1NMQVYKK01JTEpBTknEhiBTTE9CT0RBTgorTUlMSkFOScSGIFNMT0JPREFOCitNSUxKQU5JxIYgU1RBTktPCitNSUxKQU5JxIYgVlVLT1RBCitNSUxKQU5PVknEhiDFvUVMSktPCitNSUxKQU5PVknEhiBBREFNCitNSUxKQU5PVknEhiBCUkFOS08KK01JTEpBTk9WScSGIERVxaBBTgorTUlMSkFOT1ZJxIYgRFXFoElDQQorTUlMSkFOT1ZJxIYgTUlMS0EKK01JTEpBTk9WScSGIFBSRURSQUcKK01JTEpBTk9WScSGIFNUQU5LTworTUlMSkFOT1ZJxIYgVklMTUEKK01JTEpBTlNLSSBCT8WgS08KK01JTEpBTlNLSSBMQVpBUgorTUlMSkFOU0tJIFpPUklDQQorTUlMSkFOU0tJIFpPUklDQQorTUlMSkFUT1ZJxIYgxJBPUsSQRQorTUlMSkFUT1ZJxIYgTUFSSUNBCitNSUxKQVRPVknEhiBNSUxBTgorTUlMSkFUT1ZJxIYgTUlMVVRJTgorTUlMSkFUT1ZJxIYgVkVSQQorTUlMSkXFoEnEhiBORU5BRAorTUlMSkVOT1ZJxIYgU0xPQk9EQU4KK01JTEpFVknEhiDFvUlWS08KK01JTEpFVknEhiBBREFNCitNSUxKRVZJxIYgQU5LQQorTUlMSkVWScSGIEJPR0RBTiBESVBMIElORworTUlMSkVWScSGIERSQUdPTEpVQgorTUlMSkVWScSGIERVxaBBTgorTUlMSkVWScSGIEdBVlJJTE8KK01JTEpFVknEhiBKQU5KQQorTUlMSkVWScSGIEpPVkFOCitNSUxKRVZJxIYgSk9WTworTUlMSkVWScSGIExBWkFSCitNSUxKRVZJxIYgTEpVQklDQQorTUlMSkVWScSGIExKVUJJTktPCitNSUxKRVZJxIYgTUFSSU5LTworTUlMSkVWScSGIE1JTE9SQUQKK01JTEpFVknEhiBOQVRBxaBBCitNSUxKRVZJxIYgTkVERUxKS08KK01JTEpFVknEhiBPQlJBRAorTUlMSkVWScSGIFJBRE9KS0EKK01JTEpFVknEhiBTVEVWQU4KK01JTEpFVknEhiBWRVJJQ0EKK01JTEpFVknEhiBWRVJJQ0EKK01JTEpFVknEhiBWSU5LTworTUlMSknEhiBTTEFWS08KK01JTEpLT1YgxJBVUklDQQorTUlMSktPVkFDIEJPR09TQVYKK01JTEpLT1ZBQyBEUkFHT01JUgorTUlMSktPVkFDIFBFVEFSCitNSUxKS09WQUMgUkFET1ZBTgorTUlMSktPVkFDIFRBVEpBTkEKK01JTEpLT1ZJxIYgxIxFRE9NSVIKK01JTEpLT1ZJxIYgxb1JVkFOCitNSUxKS09WScSGIEJPxaBLTworTUlMSktPVknEhiBCT1JJU0xBVgorTUlMSktPVknEhiBCT1NJTEpLQQorTUlMSktPVknEhiBET0JSSUxPCitNSUxKS09WScSGIERSQUdBTgorTUlMSktPVknEhiBEUkFHScWgQQorTUlMSktPVknEhiBEUkFHVVRJTgorTUlMSktPVknEhiBEVcWgQU4KK01JTEpLT1ZJxIYgRFXFoEFOCitNSUxKS09WScSGIExFTktFCitNSUxKS09WScSGIExKSUxKQU5BCitNSUxKS09WScSGIExKVUJJxaBBCitNSUxKS09WScSGIExKVUJJQ0EKK01JTEpLT1ZJxIYgTEpVUMSMRQorTUlMSktPVknEhiBNQVJBCitNSUxKS09WScSGIE1JxIZBCitNSUxKS09WScSGIE1JTElDQQorTUlMSktPVknEhiBNSUxJQ0EKK01JTEpLT1ZJxIYgTUlMT8WgCitNSUxKS09WScSGIE1JT0RSQUcKK01JTEpLT1ZJxIYgTUlSQQorTUlMSktPVknEhiBNSVJKQU5BCitNSUxKS09WScSGIE1JUkpBTkEKK01JTEpLT1ZJxIYgTUlUQQorTUlMSktPVknEhiBNTEFERU4KK01JTEpLT1ZJxIYgTU9KU0EKK01JTEpLT1ZJxIYgTklLT0xBIERSIElORworTUlMSktPVknEhiBOSUtPTEEKK01JTEpLT1ZJxIYgTklLT0xBCitNSUxKS09WScSGIFJBRE9TQVYKK01JTEpLT1ZJxIYgUkFET1NMQVYKK01JTEpLT1ZJxIYgUkFISUxKQQorTUlMSktPVknEhiBST1NBCitNSUxKS09WScSGIFJPU0EKK01JTEpLT1ZJxIYgU0xPQk9EQU4KK01JTEpLT1ZJxIYgU1RBTUVOS08gRFIgTEVLQVIKK01JTEpLT1ZJxIYgU1RPSkFESU4KK01JTEpLT1ZJxIYgU1RPSkFOCitNSUxKS09WScSGIFRPTUlTTEFWCitNSUxKS09WScSGIFZFTElCT1IKK01JTEpPSktPVknEhiBERVNJTUlSCitNSUxKT0pLT1ZJxIYgRE9CUklOS0EKK01JTEpPSktPVknEhiBFTUlMSUpBCitNSUxKT0pLT1ZJxIYgTEpVQknFoEEKK01JTEpPSktPVknEhiBMSlVCScWgQQorTUlMSlXFoCDEkFVSTworTUlMSlXFoCBBTEVLU0FOREFSCitNSUxKVcWgIEJSQU5LTworTUlMSlXFoCBCUkFOS08KK01JTEpVxaAgRFJBR08KK01JTEpVxaAgRFXFoEFOS0EKK01JTEpVxaAgRFXFoEFOCitNSUxKVcWgIEVWQQorTUlMSlXFoCBKT1ZBTiBEUgorTUlMSlXFoCBKT1ZBTgorTUlMSlXFoCBKT1ZBTgorTUlMSlXFoCBLQVRBUklOQQorTUlMSlXFoCBMSklMSkFOQQorTUlMSlXFoCBMSlVCSUNBCitNSUxKVcWgIE1BUklKQQorTUlMSlXFoCBNQVJJSkEKK01JTEpVxaAgTUlMQU4KK01JTEpVxaAgTUlMRQorTUlMSlXFoCBNSUxPUkFECitNSUxKVcWgIE1JT0RSQUcKK01JTEpVxaAgTklLT0xBCitNSUxKVcWgIFBFVEFSCitNSUxLT1YgxJBVUsSQSU5LQQorTUlMS09WIMSQVVLEkElOS0EKK01JTEtPViBBQ0EKK01JTEtPViBEUkFHQU4gRFIKK01JTEtPViBEUkFHSU5KQQorTUlMS09WIEdPUkRBTkEKK01JTEtPViBHT1JEQU5BCitNSUxLT1YgSkFTTUlOQQorTUlMS09WIEpFTEVOQQorTUlMS09WIExBWkFSCitNSUxLT1YgTEFaQVIKK01JTEtPViBTTEFWSUNBCitNSUxLT1YgU1RBTk9KRQorTUlMS09WIFNURVZBTgorTUlMS09WScSGIERSQUdJQ0EKK01JTEtPVknEhiBEVcWgQU4KK01JTEtPVknEhiBEVcWgQU4KK01JTEtPVknEhiBWRUxKS08KK01JTE5PVknEhiBBTEVLU0FOREFSCitNSUxOT1ZJxIYgS0FNRU5LTworTUlMTk9WScSGIExBWkFSCitNSUxOT1ZJxIYgTUlIQUpMTworTUlMTk9WScSGIFNUT0pBTgorTUlMTk9WScSGIFZBU0lMSUpFCitNSUxOT1ZJxIYgWk9SQQorTUlMTyBHSVpFTEEKK01JTE/FoCBJVkFOCitNSUxPxaDEjElOIFNUQcWgQQorTUlMT8WgxIxJTiBTVEVWQU4KK01JTE/FoMSMSU4gVkxBRElNSVIKK01JTE/FoEVWIMW9QVJLTyBEUgorTUlMT8WgRVYgxb1JS0EKK01JTE/FoEVWIMW9SVZLQQorTUlMT8WgRVYgxb1JVk9KSU4KK01JTE/FoEVWIEFMRUtTQU5EQVIKK01JTE/FoEVWIEFOxJBFTElKQQorTUlMT8WgRVYgQk/FoEtPIERJUEwgSU5HCitNSUxPxaBFViBCUkFOSVNMQVZBCitNSUxPxaBFViBCUkFOSVNMQVYKK01JTE/FoEVWIEJSQU5JU0xBVgorTUlMT8WgRVYgRE9CUklWT0oKK01JTE/FoEVWIERVxaBBTgorTUlMT8WgRVYgRFXFoEtPCitNSUxPxaBFViBKT1ZBTktBCitNSUxPxaBFViBKT1ZBTgorTUlMT8WgRVYgTEpVQk9NSVIKK01JTE/FoEVWIE1BUklKQQorTUlMT8WgRVYgTUnEhk8KK01JTE/FoEVWIE1JSEFKTE8KK01JTE/FoEVWIE1JTEFOCitNSUxPxaBFViBNSUxFTktPCitNSUxPxaBFViBNSUxJVk9KCitNSUxPxaBFViBNSUxKQU5BCitNSUxPxaBFViBNSUxPxaAKK01JTE/FoEVWIE1JTE/FoAorTUlMT8WgRVYgTUlMT8WgCitNSUxPxaBFViBNSUxPUkFECitNSUxPxaBFViBNSUxPUkFECitNSUxPxaBFViBNSU9EUkFHCitNSUxPxaBFViBNSVJBCitNSUxPxaBFViBNSVJKQU5BCitNSUxPxaBFViBNSVJLTworTUlMT8WgRVYgTUlST1NMQVZBCitNSUxPxaBFViBNSVJPU0xBVgorTUlMT8WgRVYgTUlUQQorTUlMT8WgRVYgTU9NxIxJTE8KK01JTE/FoEVWIE5FQk9KxaBBCitNSUxPxaBFViBOT1ZLQQorTUlMT8WgRVYgUEVUQVIKK01JTE/FoEVWIFJBREEKK01JTE/FoEVWIFNBVkEKK01JTE/FoEVWIFNMQVZLQQorTUlMT8WgRVYgU09GSUpBCitNSUxPxaBFViBTVEFOQQorTUlMT8WgRVYgU1RPSkFOS0EKK01JTE/FoEVWIFZBU0EgRElQTCBJTkcKK01JTE/FoEVWIFZBU0EKK01JTE/FoEVWIFZFTElNSVIKK01JTE/FoEVWIFpMQVRPTUlSCitNSUxPxaBFVknEhiDFvUlWT0pJTgorTUlMT8WgRVZJxIYgxb1JVk9SQUQKK01JTE/FoEVWScSGIEFMRUtTQU5EQVIKK01JTE/FoEVWScSGIEFMRUtTQU5EQVIKK01JTE/FoEVWScSGIEFMRUtTQU5EQVIKK01JTE/FoEVWScSGIEFMRUtTQU5EQVIKK01JTE/FoEVWScSGIEFMRUtTQU5EUkEKK01JTE/FoEVWScSGIEFMRUtTQU5EUkEKK01JTE/FoEVWScSGIEFOQVNUQVpJSkEKK01JTE/FoEVWScSGIEFOS0EKK01JTE/FoEVWScSGIEJJTEpBTkEKK01JTE/FoEVWScSGIEJJU0VSS0EKK01JTE/FoEVWScSGIEJPxaBLTworTUlMT8WgRVZJxIYgQk/FvUlEQVIKK01JTE/FoEVWScSGIEJPxb1JREFSCitNSUxPxaBFVknEhiBCT8W9SURBUgorTUlMT8WgRVZJxIYgQk/FvU8KK01JTE/FoEVWScSGIEJPR0RBTgorTUlMT8WgRVZJxIYgQk9KQU5BCitNSUxPxaBFVknEhiBCUkFOSVNMQVZBCitNSUxPxaBFVknEhiBCUkFOSVNMQVZBCitNSUxPxaBFVknEhiBCUkFOSVNMQVYKK01JTE/FoEVWScSGIEJSQU5JU0xBVgorTUlMT8WgRVZJxIYgQlJBTktPCitNSUxPxaBFVknEhiBCUkFOS08KK01JTE/FoEVWScSGIEJSQU5LTworTUlMT8WgRVZJxIYgQlJBTktPCitNSUxPxaBFVknEhiBCUkFOS08KK01JTE/FoEVWScSGIEJSQU5LTworTUlMT8WgRVZJxIYgQlJBTktPCitNSUxPxaBFVknEhiBDVkVUQU4KK01JTE/FoEVWScSGIENWRVRBTgorTUlMT8WgRVZJxIYgREFOSUNBCitNSUxPxaBFVknEhiBEQVJJTktBCitNSUxPxaBFVknEhiBERUpBTgorTUlMT8WgRVZJxIYgRE9CUklOS0EKK01JTE/FoEVWScSGIERPQlJPU0FWCitNSUxPxaBFVknEhiBEUkFHQU5BCitNSUxPxaBFVknEhiBEUkFHQU4KK01JTE/FoEVWScSGIERSQUdBTgorTUlMT8WgRVZJxIYgRFJBR0FOCitNSUxPxaBFVknEhiBEUkFHSUNBCitNSUxPxaBFVknEhiBEUkFHSUNBCitNSUxPxaBFVknEhiBEUkFHT0xKVUIKK01JTE/FoEVWScSGIERSQUdPTUlSIERJUEwgSU5HCitNSUxPxaBFVknEhiBEUkFHVVRJTgorTUlMT8WgRVZJxIYgRFXFoEFOIERSCitNSUxPxaBFVknEhiBEVcWgQU4KK01JTE/FoEVWScSGIERVxaBBTgorTUlMT8WgRVZJxIYgRVZBCitNSUxPxaBFVknEhiBFVklDQQorTUlMT8WgRVZJxIYgR1JPWkRBCitNSUxPxaBFVknEhiBJR05KQVQKK01JTE/FoEVWScSGIElWQU5LQQorTUlMT8WgRVZJxIYgSkFLT1YKK01JTE/FoEVWScSGIEpBTktPCitNSUxPxaBFVknEhiBKRUxFTkEKK01JTE/FoEVWScSGIEpFTEVOQQorTUlMT8WgRVZJxIYgSkVMRU5BCitNSUxPxaBFVknEhiBKRUxFTkEKK01JTE/FoEVWScSGIEpFUklOQQorTUlMT8WgRVZJxIYgSk9WQU4KK01JTE/FoEVWScSGIEpPVkFOCitNSUxPxaBFVknEhiBKT1ZBTgorTUlMT8WgRVZJxIYgSk9WQU4KK01JTE/FoEVWScSGIEpPVklDQQorTUlMT8WgRVZJxIYgSlVMS0EKK01JTE/FoEVWScSGIEtMQVVESUpFCitNSUxPxaBFVknEhiBLUklTVElOQQorTUlMT8WgRVZJxIYgTEFUSU5LQQorTUlMT8WgRVZJxIYgTEFaQVIKK01JTE/FoEVWScSGIExBWkFSCitNSUxPxaBFVknEhiBMSklMSkFOQQorTUlMT8WgRVZJxIYgTEpJTEpBTkEKK01JTE/FoEVWScSGIExKVUJJxaBBCitNSUxPxaBFVknEhiBMSlVCT01JUgorTUlMT8WgRVZJxIYgTE9aQU5BCitNSUxPxaBFVknEhiBNQVJBCitNSUxPxaBFVknEhiBNQVJJQ0EKK01JTE/FoEVWScSGIE1BUklKQQorTUlMT8WgRVZJxIYgTUFSSUpBCitNSUxPxaBFVknEhiBNQVJLTworTUlMT8WgRVZJxIYgTUFSVEEKK01JTE/FoEVWScSGIE1JSEFJTE8KK01JTE/FoEVWScSGIE1JSEFMSklOQQorTUlMT8WgRVZJxIYgTUlMQURJTgorTUlMT8WgRVZJxIYgTUlMQU5LQQorTUlMT8WgRVZJxIYgTUlMQU4KK01JTE/FoEVWScSGIE1JTEFOCitNSUxPxaBFVknEhiBNSUxBTgorTUlMT8WgRVZJxIYgTUlMQU4KK01JTE/FoEVWScSGIE1JTEFOCitNSUxPxaBFVknEhiBNSUxFTktPCitNSUxPxaBFVknEhiBNSUxFTktPCitNSUxPxaBFVknEhiBNSUxFTktPCitNSUxPxaBFVknEhiBNSUxFTktPCitNSUxPxaBFVknEhiBNSUxJQ0EKK01JTE/FoEVWScSGIE1JTElWT0pFCitNSUxPxaBFVknEhiBNSUxJVk9KRQorTUlMT8WgRVZJxIYgTUlMT8WgCitNSUxPxaBFVknEhiBNSUxPxaAKK01JTE/FoEVWScSGIE1JTE9SQUQKK01JTE/FoEVWScSGIE1JTE9SQUQKK01JTE/FoEVWScSGIE1JTE9SQUQKK01JTE/FoEVWScSGIE1JTE9SQUQKK01JTE/FoEVWScSGIE1JTE9TQVYKK01JTE/FoEVWScSGIE1JT0RSQUcKK01JTE/FoEVWScSGIE1JT0RSQUcKK01JTE/FoEVWScSGIE1JT0RSQUcKK01JTE/FoEVWScSGIE1JT0RSQUcKK01JTE/FoEVWScSGIE1JT0RSQUcKK01JTE/FoEVWScSGIE1JT0RSQUcKK01JTE/FoEVWScSGIE1JUkEKK01JTE/FoEVWScSGIE1JUkpBTkEKK01JTE/FoEVWScSGIE1JUkpBTkEKK01JTE/FoEVWScSGIE1JUkpBTkEKK01JTE/FoEVWScSGIE1JUkpBTkEKK01JTE/FoEVWScSGIE1JUktPCitNSUxPxaBFVknEhiBNSVJPU0xBVgorTUlMT8WgRVZJxIYgTUlUQVIKK01JTE/FoEVWScSGIE1PTcSMSUxPCitNSUxPxaBFVknEhiBOQURBCitNSUxPxaBFVknEhiBORVZFTkEKK01JTE/FoEVWScSGIE5JS09MQQorTUlMT8WgRVZJxIYgTklLT0xBCitNSUxPxaBFVknEhiBOT1ZJQ0EKK01JTE/FoEVWScSGIE9CUkFECitNSUxPxaBFVknEhiBPTEdBCitNSUxPxaBFVknEhiBPTElWRVJBCitNSUxPxaBFVknEhiBQQVZMRQorTUlMT8WgRVZJxIYgUEFWTEUKK01JTE/FoEVWScSGIFBFVEFSCitNSUxPxaBFVknEhiBQRVRBUgorTUlMT8WgRVZJxIYgUEVUQVIKK01JTE/FoEVWScSGIFBSRURSQUcKK01JTE/FoEVWScSGIFJBREUgRFIKK01JTE/FoEVWScSGIFJBREUKK01JTE/FoEVWScSGIFJBREUKK01JTE/FoEVWScSGIFJBREUKK01JTE/FoEVWScSGIFJBREUKK01JTE/FoEVWScSGIFJBRE9WQU4KK01JTE/FoEVWScSGIFJBSktPCitNSUxPxaBFVknEhiBSQUpLTworTUlMT8WgRVZJxIYgUkFUS08KK01JTE/FoEVWScSGIFJJU1RPCitNSUxPxaBFVknEhiBSVcW9QQorTUlMT8WgRVZJxIYgUlXFvUlDQQorTUlMT8WgRVZJxIYgU0FWQQorTUlMT8WgRVZJxIYgU0FWQQorTUlMT8WgRVZJxIYgU0FWQQorTUlMT8WgRVZJxIYgU0FWQQorTUlMT8WgRVZJxIYgU0VMRU5LQQorTUlMT8WgRVZJxIYgU0xBVkEKK01JTE/FoEVWScSGIFNMQVZLTworTUlMT8WgRVZJxIYgU0xPQk9EQU4KK01JTE/FoEVWScSGIFNMT0JPREFOCitNSUxPxaBFVknEhiBTTE9CT0RBTgorTUlMT8WgRVZJxIYgU05Fxb1BTkEKK01JTE/FoEVWScSGIFNORcW9QU5BCitNSUxPxaBFVknEhiBTUEFTT0pFCitNSUxPxaBFVknEhiBTUEFTT0pFCitNSUxPxaBFVknEhiBTUkJPQlJBTgorTUlMT8WgRVZJxIYgU1RBTklNSVIKK01JTE/FoEVWScSGIFNUQU5LTworTUlMT8WgRVZJxIYgU1RBTktPCitNSUxPxaBFVknEhiBTVEVWSUNBCitNSUxPxaBFVknEhiBTVE9KQQorTUlMT8WgRVZJxIYgU1ZFVElTTEFWCitNSUxPxaBFVknEhiBTVkVUT0xKVUIKK01JTE/FoEVWScSGIFNWRVRPWkFSCitNSUxPxaBFVknEhiBTVkVUT1pBUgorTUlMT8WgRVZJxIYgVEFESUpBCitNSUxPxaBFVknEhiBUT01JU0xBVgorTUlMT8WgRVZJxIYgVVJPxaAKK01JTE/FoEVWScSGIFZBU0EKK01JTE/FoEVWScSGIFZBU0lMSUpFCitNSUxPxaBFVknEhiBWRUxKS08KK01JTE/FoEVWScSGIFZFUkEKK01JTE/FoEVWScSGIFZFU0VMSU4KK01JTE/FoEVWScSGIFZJRE9KRQorTUlMT8WgRVZJxIYgVkxBREEgRElQTCBPRUMKK01JTE/FoEVWScSGIFZMQURJTUlSCitNSUxPxaBFVknEhiBWT0pJU0xBVgorTUlMT8WgRVZJxIYgVk9KSVNMQVYKK01JTE/FoEVWScSGIFZPSktBTgorTUlMT8WgRVZJxIYgVlVLQcWgSU4gRFIgTEVLQVIKK01JTE/FoEVWScSGIFZVS0HFoElOCitNSUxPxaBFVknEhiBaQUhBUklKRQorTUlMT8WgRVZJxIYgWkRSQVZLTworTUlMT8WgRVZJxIYgWkxBVElNSVIKK01JTE/FoEVWScSGIFpPUkFOIERJUEwgSU5HCitNSUxPxaBFVknEhiBaT1JBTgorTUlMT0pFVknEhiDEkE9SxJBFCitNSUxPSkVWScSGIEFOQQorTUlMT0pFVknEhiBCUkFOSVNMQVYKK01JTE9KRVZJxIYgQlJBTklTTEFWCitNSUxPSkVWScSGIENWSUpFVEEKK01JTE9KRVZJxIYgRElNSVRSSUpFCitNSUxPSkVWScSGIERSQUdBTgorTUlMT0pFVknEhiBEUkFHQU4KK01JTE9KRVZJxIYgRFXFoEFOS0EKK01JTE9KRVZJxIYgRFXFoEFOCitNSUxPSkVWScSGIERVxaBBTgorTUlMT0pFVknEhiBEVcWgQU4KK01JTE9KRVZJxIYgR09KS08KK01JTE9KRVZJxIYgR09SREFOQQorTUlMT0pFVknEhiBHUk9aREFOQQorTUlMT0pFVknEhiBKQU5LTworTUlMT0pFVknEhiBKRUxFTkEKK01JTE9KRVZJxIYgSlVMSUpBTkEKK01JTE9KRVZJxIYgTUlIQUpMTworTUlMT0pFVknEhi1NSUxBTk9WIFNWRVRMQU5BCitNSUxPSkVWScSGIE1JTElWT0pFCitNSUxPSkVWScSGIE1JTE9KRSBEUiBQUk9GCitNSUxPSkVWScSGIE1JTE9SQUQKK01JTE9KRVZJxIYgTUlST1NMQVYKK01JTE9KRVZJxIYgTU9NSVIgRFIKK01JTE9KRVZJxIYgT0xHSUNBCitNSUxPSkVWScSGIFBBVkxFCitNSUxPSkVWScSGIFBSRURSQUcKK01JTE9KRVZJxIYgUkFET1ZBTgorTUlMT0pFVknEhiBSQU5LTworTUlMT0pFVknEhiBTTE9CT0RBTgorTUlMT0pFVknEhiBWQVNBCitNSUxPSkVWScSGIFZMQURBCitNSUxPSkVWScSGIFZMQURJTUlSCitNSUxPSkVWScSGIFZPSklOCitNSUxPSkVWScSGIFZPSklTTEFWCitNSUxPSkVWScSGIFpPUkFOCitNSUxPSkVWScSGIFpPUkFOCitNSUxPSkVWScSGIFpWT05LTworTUlMT0pJQ0EgTUlMSkEKK01JTE9KS09WScSGIMW9SVZBTgorTUlMT0pLT1ZJxIYgQUNBCitNSUxPSktPVknEhiBCT8W9QU5BCitNSUxPSktPVknEhiBCT8W9SURBUgorTUlMT0pLT1ZJxIYgRFXFoEFOCitNSUxPSktPVknEhiBEVcWgQU4KK01JTE9KS09WScSGIEpPVkFOS0EKK01JTE9KS09WScSGIEtBVEFSSU5BCitNSUxPSktPVknEhiBLUklTVEEKK01JTE9KS09WScSGIExKVUJPTUlSCitNSUxPSktPVknEhiBNSUxJVk9KCitNSUxPSktPVknEhiBNSUxPVkFOCitNSUxPSktPVknEhiBNSVJPTEpVQgorTUlMT0pLT1ZJxIYgTkFERcW9REEKK01JTE9NIElNUkUKK01JTE9NIElNUkUKK01JTE9SQURJxIYgQlJBTktPCitNSUxPUkFEScSGIE5JS09MQQorTUlMT1JBRE9WIEJPUklTTEFWQQorTUlMT1JBRE9WIE1JTE/FoAorTUlMT1JBRE9WIE1JTE9SQUQKK01JTE9SQURPViBSQURPU0xBVktBCitNSUxPUkFET1YgVklPTEVUQQorTUlMT1JBRE9WScSGIEJSQU5JU0xBVgorTUlMT1JBRE9WScSGIERFSkFOCitNSUxPUkFET1ZJxIYgRFJBR0FOCitNSUxPUkFET1ZJxIYgTUlMT8WgCitNSUxPUkFET1ZJxIYgTUxBREVOCitNSUxPUkFET1ZJxIYgWkxBVE9KRQorTUlMT1NBVkFDIE1JxIZBCitNSUxPU0FWScSGIEJPUklTTEFWCitNSUxPU0FWScSGIEJSQU5LTworTUlMT1NBVknEhiBLUlNUQU4KK01JTE9TQVZJxIYgTUxBREVOCitNSUxPU0FWScSGIE1PTcSMSUxPCitNSUxPU0FWScSGIFBFVEFSCitNSUxPU0FWScSGIFJBRElWT0oKK01JTE9TQVZJxIYgU1RPSkEKK01JTE9TQVZMSkVWIMW9SVZBTgorTUlMT1NBVkxKRVYgxb1JVktBCitNSUxPU0FWTEpFViBBTEVLU0FOREFSCitNSUxPU0FWTEpFViBCT8W9SURBUgorTUlMT1NBVkxKRVYgRE9CUkVOCitNSUxPU0FWTEpFViBEUkFHSU5KQQorTUlMT1NBVkxKRVYgTEpJTEpBTkEKK01JTE9TQVZMSkVWIE1FTEFOSUpBCitNSUxPU0FWTEpFViBNSUxFTktPCitNSUxPU0FWTEpFViBNSUxJQ0EKK01JTE9TQVZMSkVWIE5PVktBCitNSUxPU0FWTEpFViBWTEFEQQorTUlMT1NBVkxKRVYgVk9KQQorTUlMT1NBVkxKRVZJxIYgxb1BUktPCitNSUxPU0FWTEpFVknEhiDFvUlWQURJTgorTUlMT1NBVkxKRVZJxIYgxb1JVktPCitNSUxPU0FWTEpFVknEhiDFvUlWS08KK01JTE9TQVZMSkVWScSGIEFEQU0gRElQTCBQUkFWTklLCitNSUxPU0FWTEpFVknEhiBCT8W9SURBUgorTUlMT1NBVkxKRVZJxIYgQk9SQQorTUlMT1NBVkxKRVZJxIYgQk9SSVZPSkUKK01JTE9TQVZMSkVWScSGIEJSQU5JU0xBVgorTUlMT1NBVkxKRVZJxIYgQlJBTktPCitNSUxPU0FWTEpFVknEhiBCUkFUSVNMQVYKK01JTE9TQVZMSkVWScSGIERFSkFOCitNSUxPU0FWTEpFVknEhiBEUkFHQU4KK01JTE9TQVZMSkVWScSGIERSQUdBTgorTUlMT1NBVkxKRVZJxIYgRFJBR0FOCitNSUxPU0FWTEpFVknEhiBEUkFHSUNBCitNSUxPU0FWTEpFVknEhiBEUkFHSUNBCitNSUxPU0FWTEpFVknEhiBEUkFHVVRJTgorTUlMT1NBVkxKRVZJxIYgRFXFoEFOS0EKK01JTE9TQVZMSkVWScSGIElMSUpBCitNSUxPU0FWTEpFVknEhiBKRUxJU0FWRVRBCitNSUxPU0FWTEpFVknEhiBKT1ZBTgorTUlMT1NBVkxKRVZJxIYgSk9WQU4KK01JTE9TQVZMSkVWScSGIEpPVkFOCitNSUxPU0FWTEpFVknEhiBLQVRJQ0EKK01JTE9TQVZMSkVWScSGIExBWkFSCitNSUxPU0FWTEpFVknEhiBNQVJJSkEKK01JTE9TQVZMSkVWScSGIE1JSEFKTE8KK01JTE9TQVZMSkVWScSGIE1JTEFOCitNSUxPU0FWTEpFVknEhiBNSUxBTgorTUlMT1NBVkxKRVZJxIYgTUlMRQorTUlMT1NBVkxKRVZJxIYgTUlMSUNBCitNSUxPU0FWTEpFVknEhiBNSUxLQQorTUlMT1NBVkxKRVZJxIYgTUlMT1JBRAorTUlMT1NBVkxKRVZJxIYgTUlMT1JBRAorTUlMT1NBVkxKRVZJxIYgTUlMT1JBRAorTUlMT1NBVkxKRVZJxIYgTUlMT1ZBTgorTUlMT1NBVkxKRVZJxIYgTUlPRFJBRyBEUgorTUlMT1NBVkxKRVZJxIYgTUlPRFJBRworTUlMT1NBVkxKRVZJxIYgTUlPRFJBRworTUlMT1NBVkxKRVZJxIYgTUlPRFJBRworTUlMT1NBVkxKRVZJxIYgTUlPRFJBRworTUlMT1NBVkxKRVZJxIYgTUlPRFJBRworTUlMT1NBVkxKRVZJxIYgTUlPRFJBRworTUlMT1NBVkxKRVZJxIYgTUlST1NMQVYKK01JTE9TQVZMSkVWScSGIE5JS09MQSBEUgorTUlMT1NBVkxKRVZJxIYgTk9WSUNBCitNSUxPU0FWTEpFVknEhiBPTEdBCitNSUxPU0FWTEpFVknEhiBQRVRBUgorTUlMT1NBVkxKRVZJxIYgUkFESVZPSkUKK01JTE9TQVZMSkVWScSGIFJBRElWT0oKK01JTE9TQVZMSkVWScSGIFJBRE9NSVIKK01JTE9TQVZMSkVWScSGIFNBVk8KK01JTE9TQVZMSkVWScSGIFNMQVZLTworTUlMT1NBVkxKRVZJxIYgU0xPQk9EQU4KK01JTE9TQVZMSkVWScSGIFNMT0JPREFOCitNSUxPU0FWTEpFVknEhiBTUkVUQQorTUlMT1NBVkxKRVZJxIYgU1RBTklTTEFWCitNSUxPU0FWTEpFVknEhiBTVEFOS08KK01JTE9TQVZMSkVWScSGIFNURVZPCitNSUxPU0FWTEpFVknEhiBTVkVUT1pBUgorTUlMT1NBVkxKRVZJxIYgVkVSQQorTUlMT1NBVkxKRVZJxIYgVkVSQQorTUlMT1NBVkxKRVZJxIYgVkxBRElNSVIKK01JTE9TQVZMSkVWScSGIFZMQURJU0xBVgorTUlMT1NBVkxKRVZJxIYgWk9SQU4KK01JTE9TT1ZJxIYgSk9WQU4KK01JTE9TT1ZJxIYgTUlMT8WgCitNSUxPU09WScSGIE1JUktPCitNSUxPVsSMRVZJxIYgTUlMT8WgCitNSUxPVkFDIERVxaBBTgorTUlMT1ZBQyBHTEnFoEEKK01JTE9WQUMgR09SQU4KK01JTE9WQUMgSUxFCitNSUxPVkFDIElMSUpBCitNSUxPVkFDIEpFTEEKK01JTE9WQUMgTUlMQU4KK01JTE9WQUMgTUlMQU4KK01JTE9WQUMgTUlMQU4KK01JTE9WQUMgUEVUQVIKK01JTE9WQUMgUlXFvUlDQQorTUlMT1ZBQyBTSU1PCitNSUxPVkFDIFNUQU5LTworTUlMT1ZBQyBTVEVWQU4KK01JTE9WQUMgU1RPSkFOCitNSUxPVkFOIEtPTlNUQU5DQQorTUlMT1ZBTsSMRVYgQUxFS1NBTkRBUgorTUlMT1ZBTsSMRVYgSVNJRE9SCitNSUxPVkFOxIxFViBOSUtPTEEKK01JTE9WQU7EjEVWIFNMT0JPREFOIERJUEwgSU5HCitNSUxPVkFOxIxFViBTVkVUT1pBUiBEUgorTUlMT1ZBTktJxIYgxJBPUsSQRQorTUlMT1ZBTktJxIYgTUlST1NMQVYKK01JTE9WQU5PViDEkE9SxJBFCitNSUxPVkFOT1YgQUxFS1NBTkRBUiBESVBMIElORworTUlMT1ZBTk9WIEFOSUNBCitNSUxPVkFOT1YgQk/FvUlEQVIKK01JTE9WQU5PViBESU1JVFJJSkUgRElQTCBJTkcKK01JTE9WQU5PViBEUkFHQU4KK01JTE9WQU5PViBHT0pLTworTUlMT1ZBTk9WIEdPSktPCitNSUxPVkFOT1YgR09SQU4KK01JTE9WQU5PViBHT1JEQU5BIERSIExFS0FSCitNSUxPVkFOT1YgSVZBTgorTUlMT1ZBTk9WIEpVTEtBCitNSUxPVkFOT1YgTUlMQU4KK01JTE9WQU5PViBNSUxFCitNSUxPVkFOT1YgTUlMSU5LQQorTUlMT1ZBTk9WIE1JTElOS0EKK01JTE9WQU5PViBNSVJKQU5BCitNSUxPVkFOT1YgU0lNQQorTUlMT1ZBTk9WIFNUT0pBTktBCitNSUxPVkFOT1YgVE9ET1IKK01JTE9WQU5PViBWQVNJTElKRQorTUlMT1ZBTk9WIFpPUkFOCitNSUxPVkFOT1ZJxIYgxb1JS0EKK01JTE9WQU5PVknEhiDFvUlWS08KK01JTE9WQU5PVknEhiBBTsSQRUxLQQorTUlMT1ZBTk9WScSGIEFOSUNBCitNSUxPVkFOT1ZJxIYgQU5JQ0EKK01JTE9WQU5PVknEhiBCT0dPU0FWCitNSUxPVkFOT1ZJxIYgQlJBTklTTEFWQQorTUlMT1ZBTk9WScSGIEJSQU5JU0xBVgorTUlMT1ZBTk9WScSGIEJSQU5JU0xBVgorTUlMT1ZBTk9WScSGIERBTklDQQorTUlMT1ZBTk9WScSGIERPQlJJU0FWCitNSUxPVkFOT1ZJxIYgRE9CUklWT0pFCitNSUxPVkFOT1ZJxIYgRFJBR0lOSkEKK01JTE9WQU5PVknEhiBEUkFHT0xKVUIKK01JTE9WQU5PVknEhiBEUkFHT0xKVUIKK01JTE9WQU5PVknEhiBEUkFHT01JUgorTUlMT1ZBTk9WScSGIERSQUdPU0xBVgorTUlMT1ZBTk9WScSGIERSQUdPU0xBVgorTUlMT1ZBTk9WScSGIERVxaBBTiBEUiBMRUtBUgorTUlMT1ZBTk9WScSGIERVxaBBTgorTUlMT1ZBTk9WScSGIEdPUkFOCitNSUxPVkFOT1ZJxIYgR09SREFOQQorTUlMT1ZBTk9WScSGIElMSUpBCitNSUxPVkFOT1ZJxIYgSVZBTktBCitNSUxPVkFOT1ZJxIYgSVZJQ0EKK01JTE9WQU5PVknEhiBKT1ZBTgorTUlMT1ZBTk9WScSGIEtBVEFMSU4KK01JTE9WQU5PVknEhiBLQVRJQ0EKK01JTE9WQU5PVknEhiBLT1NBUkEKK01JTE9WQU5PVknEhiBLUlNUT01JUgorTUlMT1ZBTk9WScSGIExKSUxKQU5BCitNSUxPVkFOT1ZJxIYgTEpJTEpBTkEKK01JTE9WQU5PVknEhiBMSlVCSUNBCitNSUxPVkFOT1ZJxIYgTFVLQQorTUlMT1ZBTk9WScSGIE1JTEFESU4KK01JTE9WQU5PVknEhiBNSUxBTgorTUlMT1ZBTk9WScSGIE1JTEVOQQorTUlMT1ZBTk9WScSGIE1JTEVOS08KK01JTE9WQU5PVknEhiBNSUxFVkEKK01JTE9WQU5PVknEhiBNSUxJU0FWCitNSUxPVkFOT1ZJxIYgTUlMSVZPSkUKK01JTE9WQU5PVknEhiBNSUxPUkFECitNSUxPVkFOT1ZJxIYgTUlMT1ZBTgorTUlMT1ZBTk9WScSGIE1JTE9WQU4KK01JTE9WQU5PVknEhiBNSVJKQU5BCitNSUxPVkFOT1ZJxIYgTUlSSkFOQQorTUlMT1ZBTk9WScSGIE1PTUlSIERJUEwgSU5HCitNSUxPVkFOT1ZJxIYgTkFEQSBNUgorTUlMT1ZBTk9WScSGIE5JS09MQQorTUlMT1ZBTk9WScSGIE9CUkVOCitNSUxPVkFOT1ZJxIYgT0xHQQorTUlMT1ZBTk9WScSGIFJBREHFoElOCitNSUxPVkFOT1ZJxIYgUkFERU5LTworTUlMT1ZBTk9WScSGIFJBREVOS08KK01JTE9WQU5PVknEhiBSQURFTktPCitNSUxPVkFOT1ZJxIYgUkFERQorTUlMT1ZBTk9WScSGIFJBRElTQVYKK01JTE9WQU5PVknEhiBSQURJU0xBVgorTUlMT1ZBTk9WScSGIFJBRE9TTEFWCitNSUxPVkFOT1ZJxIYgUklTVEEKK01JTE9WQU5PVknEhiBTQVZBCitNSUxPVkFOT1ZJxIYgU0xBVktBCitNSUxPVkFOT1ZJxIYgU0xBVktPCitNSUxPVkFOT1ZJxIYgU0xPQk9EQU4KK01JTE9WQU5PVknEhiBTT05KQQorTUlMT1ZBTk9WScSGIFNSQklTTEFWCitNSUxPVkFOT1ZJxIYgU1RBTklDQQorTUlMT1ZBTk9WScSGIFNURVZBTiBESVBMIElORworTUlMT1ZBTk9WScSGIFNURVZBTgorTUlMT1ZBTk9WScSGIFNURVZBTgorTUlMT1ZBTk9WScSGIFNWRVRPWkFSCitNSUxPVkFOT1ZJxIYgU1ZFVE9aQVIKK01JTE9WQU5PVknEhiBURVJLQQorTUlMT1ZBTk9WScSGIFZFU0VMSU5LQQorTUlMT1ZBTk9WScSGIFZFU05BCitNSUxPVkFOT1ZJxIYgVklEQU4KK01JTE9WQU5PVknEhiBWTEFESU1JUgorTUlMT1ZBTk9WScSGIFZMQURJTUlSCitNSUxPVkFOT1ZJxIYgVkxBRElTTEFWCitNSUxPVkFOT1ZJxIYgVk9KQQorTUlMT1ZBTk9WScSGIFZPSklTTEFWCitNSUxPVkFOT1ZJxIYgVk9KSVNMQVYKK01JTE9WQU5PVknEhiBWT0pJU0xBVgorTUlMT1ZBTk9WScSGIFZPSklTTEFWCitNSUxPVkFOT1ZJxIYgVlVLT1NBVkEKK01JTE9WQU5PVknEhiBaT1JBTgorTUlMT1ZBTk9WScSGIFpPUkFOCitNSUxPVkFOT1ZJxIYgWk9SS0EKK01JTE9WScSGIMSMRURPCitNSUxPVknEhiDEkE9SxJBFCitNSUxPVknEhiBCT8WgS08KK01JTE9WScSGIEJPR0RBTgorTUlMT1ZJxIYgQk9SScWgQQorTUlMT1ZJxIYgQk9STworTUlMT1ZJxIYgQk9STworTUlMT1ZJxIYgQlJBTktPCitNSUxPVknEhiBERVNJTUlSCitNSUxPVknEhiBEVcWgQU4KK01JTE9WScSGIEdPSktPCitNSUxPVknEhiBHT0pLTworTUlMT1ZJxIYgSUxJSkEKK01JTE9WScSGIEpFTEVOQQorTUlMT1ZJxIYgS1JTVE8KK01JTE9WScSGIExKVUJPTUlSCitNSUxPVknEhiBNQUpBCitNSUxPVknEhiBNQVJJSkFOCitNSUxPVknEhiBNSUxBTgorTUlMT1ZJxIYgTUlMRU5LTworTUlMT1ZJxIYgTUlMT1JBRAorTUlMT1ZJxIYgTUlMT1JBRAorTUlMT1ZJxIYgTUlPTUlSCitNSUxPVknEhiBNT03EjElMTworTUlMT1ZJxIYgT1JMRQorTUlMT1ZJxIYgUEVUQVIKK01JTE9WScSGIFJBREUKK01JTE9WScSGIFJBRE9WQU4KK01JTE9WScSGIFNMT0JPREFOCitNSUxPVknEhiBTVEFOS08KK01JTE9WScSGIFRPTUlTTEFWCitNSUxPVknEhiBWVUtBxaBJTgorTUlMVcWgScSGIEVWSUNBCitNSUxVxaBJxIYgUEVUQVIgRElQTCBJTkcKK01JTFVOT1YgSk9WQU4KK01JTFVOT1YgSlVMS0EKK01JTFVOT1ZJxIYgQlJBTktPCitNSUxVTk9WScSGIERSQUdPTUlSCitNSUxVTk9WScSGIE1JTE/FoAorTUlMVU5PVknEhiBNSUxPTUlSCitNSUxVTk9WScSGIE1JTE9SQUQKK01JTFVOT1ZJxIYgTUlMVU4KK01JTFVOT1ZJxIYgUkFET01JUgorTUlMVU5PVknEhiBTUEFTRU5LTworTUlMVU5PVknEhiBaT1JJQ0EKK01JTFVST1ZJxIYgU0xPQk9EQU4KK01JTFVUSU4gxb1JVktPCitNSUxVVElOIEpBU05BCitNSUxVVElOIE1JUkEKK01JTFVUSU4gTkVERUxKS08KK01JTFVUSU4gUkFUS08KK01JTFVUSU4gVk9KSVNMQVYKK01JTFVUSU5PViDEkE9LQQorTUlMVVRJTk9WIEFDQQorTUlMVVRJTk9WIERSQUdPU0xBVgorTUlMVVRJTk9WIEpFTElTQVZFVEEKK01JTFVUSU5PViBKT1ZBTgorTUlMVVRJTk9WIEtPTlNUQU5USU4KK01JTFVUSU5PViBMQVpBUgorTUlMVVRJTk9WIE1JTElTQVYKK01JTFVUSU5PViBNSVRBCitNSUxVVElOT1YtTkVERUxKS09WScSGIFJBRE9WQU4KK01JTFVUSU5PViBSQURBCitNSUxVVElOT1YgUkFET1NMQVYKK01JTFVUSU5PViBTQVZBCitNSUxVVElOT1YgU0FWRVRBCitNSUxVVElOT1YgVE9ET1IKK01JTFVUSU5PViBWRUxJQk9SCitNSUxVVElOT1ZJxIYgxaBURUZJQ0EKK01JTFVUSU5PVknEhiDFvUlLQQorTUlMVVRJTk9WScSGIMSQT1LEkEUKK01JTFVUSU5PVknEhiDEkE9SxJBFCitNSUxVVElOT1ZJxIYgxJBPUsSQRQorTUlMVVRJTk9WScSGIMSQVVLEkElDQQorTUlMVVRJTk9WScSGIEFOxJBFTEtPCitNSUxVVElOT1ZJxIYgQk/FoEtPCitNSUxVVElOT1ZJxIYgQk9KQU4KK01JTFVUSU5PVknEhiBCUkFOS0EKK01JTFVUSU5PVknEhiBCVURJTUlSCitNSUxVVElOT1ZJxIYgREFOSUpFTEEKK01JTFVUSU5PVknEhiBEUkFHQU4KK01JTFVUSU5PVknEhiBEUkFHSUNBCitNSUxVVElOT1ZJxIYgRFJBR0lDQQorTUlMVVRJTk9WScSGIERSQUdVVElOCitNSUxVVElOT1ZJxIYgRFXFoEFOS0EKK01JTFVUSU5PVknEhiBEVcWgQU4KK01JTFVUSU5PVknEhiBHQVZSSUxPCitNSUxVVElOT1ZJxIYgSUdOSkFUCitNSUxVVElOT1ZJxIYgSk9WQU4KK01JTFVUSU5PVknEhiBKT1ZBTgorTUlMVVRJTk9WScSGIEpVTEtJQ0EKK01JTFVUSU5PVknEhiBMSURJSkEKK01JTFVUSU5PVknEhiBMSURJSkEKK01JTFVUSU5PVknEhiBMSlVCSU5LQQorTUlMVVRJTk9WScSGIExKVUJPCitNSUxVVElOT1ZJxIYgTUFOREEKK01JTFVUSU5PVknEhiBNQVJUQQorTUlMVVRJTk9WScSGIE1FTEFOSUpBCitNSUxVVElOT1ZJxIYgTUlMQURJTgorTUlMVVRJTk9WScSGIE1JTEFOCitNSUxVVElOT1ZJxIYgTUlMQU4KK01JTFVUSU5PVknEhiBNSUxFTktPCitNSUxVVElOT1ZJxIYgTUlMSU5LTworTUlMVVRJTk9WScSGIE1JTElWT0pFCitNSUxVVElOT1ZJxIYgTUlMSVZPSkUKK01JTFVUSU5PVknEhiBNSUxPxaAKK01JTFVUSU5PVknEhiBNSUxPSktPCitNSUxVVElOT1ZJxIYgTUlMT1JBRAorTUlMVVRJTk9WScSGIE1JTE9SQUQKK01JTFVUSU5PVknEhiBNSUxPVkFOCitNSUxVVElOT1ZJxIYgTUlMVVRJTgorTUlMVVRJTk9WScSGIE1JT01JUgorTUlMVVRJTk9WScSGIE1JUkpBTkEKK01JTFVUSU5PVknEhiBNSVJKQU5BCitNSUxVVElOT1ZJxIYgTUlSSkFOQQorTUlMVVRJTk9WScSGIE1JUk9TTEFWQSBEUgorTUlMVVRJTk9WScSGIE1JUk9TTEFWCitNSUxVVElOT1ZJxIYgTU9NSVIKK01JTFVUSU5PVknEhiBPTEdBCitNSUxVVElOT1ZJxIYgUEVUQVIKK01JTFVUSU5PVknEhiBQRVRBUgorTUlMVVRJTk9WScSGIFJBREUKK01JTFVUSU5PVknEhiBSQURJxaBBCitNSUxVVElOT1ZJxIYgUkFET0pLQQorTUlMVVRJTk9WScSGIFJBRE9TQVYKK01JTFVUSU5PVknEhiBTQcWgQQorTUlMVVRJTk9WScSGIFNMQVZLTworTUlMVVRJTk9WScSGIFNMT0JPREFOS0EKK01JTFVUSU5PVknEhiBTUkVURU4KK01JTFVUSU5PVknEhiBTVEFOQQorTUlMVVRJTk9WScSGIFNURVZBTgorTUlMVVRJTk9WScSGIFNUT0pBTktBCitNSUxVVElOT1ZJxIYgU1RPSkFOCitNSUxVVElOT1ZJxIYgU1ZFVE9aQVIKK01JTFVUSU5PVknEhiBWRUxJTUlSCitNSUxVVElOT1ZJxIYgVkVSQQorTUlMVVRJTk9WScSGIFZFUkEKK01JTFVUSU5PVknEhiBWRVJJQ0EgRFIKK01JTFVUSU5PVknEhi1WVUtTQU4gT0xHQQorTUlMVVRJTk9WScSGIFpPUkFOCitNSUxVVElOT1ZJxIYgWk9SQU4KK01JTFVUSU5PVknEhiBaT1JBTgorTUlMVVRJTk9WScSGIFpPUkFOCitNSU1JQ0EgTUxBREVOCitNSU1JQ0EgTkVOQUQKK01JTUlDQSBORU5BRAorTUlNSUNBIE5FTkFECitNSU7EjEnEhiBNSVJPTEpVQgorTUlOxIxJxIYgTUlST1NMQVYKK01JTsSMScSGIFNMT0JPREFOS0EKK01JTkRBLVJBxJBFTk9WScSGIEVMRU5BCitNSU5EQSBUSUJPUgorTUlOREnEhiBNSVJKQU5BCitNSU5EScSGIFNWRVRJU0xBVgorTUlORUEgUk9NQU4KK01JTknEhiBNSUxPU0FWCitNSU5JxIYgTkFEQQorTUlOScSGIFNMQVZLTworTUlOScSGIFRPTUlTTEFWCitNSU5JxIYgWk9SS0EKK01JTklLIMWgQU5ET1IKK01JTklLIEpPU0lQCitNSU5KQSBNQUpBCitNSU5KQSBNSUxVVElOCitNSU/EjCDFvUVMSktPCitNSU/EjCBJVkFOCitNSU/EjCBaREVOS08KK01JT8SMSU5PVknEhiBNQVJLTworTUlPxIxJTk9WScSGIE1JTEFOCitNSU9EQU5JxIYgREFOS08KK01JT0RSQUcgQU5BCitNSU9EUkFHIE1JUktPCitNSU9EUkFHIFBFUk8KK01JT0RSQUcgWkRSQVZLQQorTUlPRFJBRyBaT1JJQ0EKK01JT0RSQUdPVknEhiBBTEFLU0FOREFSCitNSU9EUkFHT1ZJxIYgQk9SSVNMQVYKK01JT0RSQUdPVknEhiBEUkFHT0xKVUIKK01JT0RSQUdPVknEhiBEUkFHT0xKVUIKK01JT0RSQUdPVknEhiBEUkFHT01JUgorTUlPRFJBR09WScSGIERVxaBLTworTUlPRFJBR09WScSGIE1JTEVOS08gRElQTCBJTkcKK01JT0RSQUdPVknEhiBNSUxFTktPCitNSU9EUkFHT1ZJxIYgUkFET1NMQVYKK01JT0RSQUdPVknEhiBTVEVWQU4KK01JT0RSQUdPVknEhiBUT8WgQQorTUlPRFJBR09WScSGIFZFUkEKK01JT0RSQUdPVknEhi1WVUtBTknEhiBBTEVLU0FORFJBCitNSU9EUkFHT1ZJxIYgWk9SSUNBCitNSU9LIFZMQVNUSU1JUgorTUlPS09WScSGIEJSQU5LTworTUlPS09WScSGIERBTklDQQorTUlPS09WScSGIFJBRE9TTEFWCitNSU9MU0tJIEJPUklTTEFWCitNSU9MU0tJIERVxaBLTworTUlPTFNLSSBTVEFOS08KK01JT0xTS0kgU1RFVkFOCitNSVLEjEVUScSGIEpPVkFOCitNSVLEjEVUScSGIExBWkFSCitNSVLEjEVUScSGIE1JTElDQQorTUlSxIxFVEnEhiBNSUxVVElOCitNSVLEjEVUScSGIFJBRE9TTEFWCitNSVLEjEVUScSGIFNMQVZLTworTUlSxIxFVEnEhiBaT1JBTgorTUlSxIxFVEnEhiBaT1JBTgorTUlSxIxFVlNLSSBNSUhBSUxPCitNSVLEjEnEhiBLT1ZJTEpLQQorTUlSxIxJxIYgTUlMT1JBRAorTUlSxIxJxIYgTklLT0xBCitNSVLEjEnEhiBSQURPVkFOCitNSVLEjEnEhiBTVE9KQU5LQQorTUlSxIxJxIYgU1RPSkFOCitNSVJBxb1JxIYgQU5UVU4KK01JUkHFvUnEhiBCUkFOSVNMQVYKK01JUkHFvUnEhiBCUkFOS08KK01JUkHFvUnEhiBKRUxBCitNSVJBxb1JxIYgTUFSQQorTUlSQcW9ScSGIFZFU0VMSU5LQQorTUlSQUxFTSBBSE1FRAorTUlSQU5PVknEhiBLU0VOSUpBIERSIExFS0FSCitNSVJBTk9WScSGIE1BSkEKK01JUkFOT1ZJxIYgTUlSS08KK01JUkXFoEVWScSGIERVxaBBTgorTUlSRcWgRVZJxIYgUkFET0pLQQorTUlSScSGIMSQVVJBCitNSVJJxIYgQUdBVEEKK01JUknEhiBCT8W9SURBUgorTUlSScSGIERBTkUKK01JUknEhiBEUkFHT01JUgorTUlSScSGIERSQUdVVElOCitNSVJJxIYgRFXFoEFOS0EKK01JUknEhiBEVcWgQU4KK01JUknEhiBEVcWgQU4KK01JUknEhiBEVcWgS08KK01JUknEhiBKT1NJRgorTUlSScSGIEpPVkFOCitNSVJJxIYgSk9WTworTUlSScSGIEtBVEEKK01JUknEhiBLQVRJQ0EKK01JUknEhiBLT1ZJTEpLQQorTUlSScSGIE1BUklKQQorTUlSScSGIE1JTEFOCitNSVJJxIYgTUlMQU4KK01JUknEhiBNSUxBTgorTUlSScSGIE1JTEVOQQorTUlSScSGIE1JTEtBCitNSVJJxIYgTklLT0xBCitNSVJJxIYgUEFWTEUKK01JUknEhiBSQUpLTworTUlSScSGIFJVxb1JQ0EKK01JUknEhiBTQcWgQQorTUlSScSGIFNBVktBCitNSVJJxIYgU01JTEpBCitNSVJJxIYgU1RFVkFOCitNSVJJxIYgU1RPSkFOS0EKK01JUknEhiBWQVNJTElKRQorTUlSSUxPViBBTEVLU0FOREFSCitNSVJJTE9WIE1JTEFESU4gRFIKK01JUklMT1YgWk9SS0EKK01JUklMT1ZJxIYgRFJBR0FOCitNSVJJTE9WScSGIEdPUkRBTkEKK01JUklMT1ZJxIYgTEFaQVIKK01JUklMT1ZJxIYgTUxBREVOCitNSVJJTE9WScSGIFNORcW9QU5BCitNSVJJTUFOT1YgREFSQQorTUlSSU1BTk9WIFZMQURJTUlSCitNSVJKQcSMScSGIEJPU0EKK01JUkpBTknEhiBEQU5JQ0EKK01JUkpBTknEhiBNT1JBVktBCitNSVJKQU5JxIYgVkFTQQorTUlSSkFOScSGIFZFUklDQQorTUlSSkFOSU4gTkVSQQorTUlSS0FDIFNUQU5JU0xBVgorTUlSS0FKTE9WScSGIE1JTE9WQU4KK01JUktBSkxPVknEhiBNSUxPVkFOCitNSVJLScSGIEJMQUdPSkUKK01JUktPTkogU1JFRE9KRQorTUlSS09OSkVWIEJSQU5JU0xBVgorTUlSS09OSkVWIFNORcW9QU5BCitNSVJLT1Ygxb1FTEpLTworTUlSS09WIMW9SVZBTgorTUlSS09WIMSQT1LEkEUKK01JUktPViDEkFVSxJBJSkEKK01JUktPViDEkFVSxJBJSkEKK01JUktPViDEkFVSSUNBCitNSVJLT1YgQk9TSUxKS0EKK01JUktPViBEVcWgSUNBCitNSVJLT1YgRVZJQ0EKK01JUktPViBNQVJJQ0EKK01JUktPViBQQVZMRQorTUlSS09WIFJVxb1JQ0EKK01JUktPViBTRUtVTEEgRElQTCBPRUMKK01JUktPViBTTE9CT0RBTgorTUlSS09WIFNORcW9QU5BCitNSVJLT1YgU1RBTklTTEFWCitNSVJLT1YgU1RFVkFOCitNSVJLT1YgU1RFVkFOCitNSVJLT1YgVkVMSktPCitNSVJLT1YgVkxBREEKK01JUktPViBaT1JBTgorTUlSS09WIFpPUklDQQorTUlSS09WIFpPUktBCitNSVJLT1ZJxIYgxIxFRE9NSVIKK01JUktPVknEhiDFvUlWQU4KK01JUktPVknEhiDFvUlWS0EKK01JUktPVknEhiDFvUlWT0pJTgorTUlSS09WScSGIMSQT1LEkEUKK01JUktPVknEhiDEkE9SxJBFCitNSVJLT1ZJxIYgQVZSQU0KK01JUktPVknEhiBCT1JBCitNSVJLT1ZJxIYgQlJBTklTTEFWCitNSVJLT1ZJxIYgQlJBTktBCitNSVJLT1ZJxIYgQlJBTktBCitNSVJLT1ZJxIYgQlJBTktPCitNSVJLT1ZJxIYgQlJBTktPCitNSVJLT1ZJxIYgREFOSUNBCitNSVJLT1ZJxIYgREVKQU4KK01JUktPVknEhiBEUkFHQU5BCitNSVJLT1ZJxIYgRFJBR0lDQQorTUlSS09WScSGIERSQUdJQ0EKK01JUktPVknEhiBEUkFHT0xKVUIKK01JUktPVknEhiBEVcWgQU4KK01JUktPVknEhiBEVcWgQU4KK01JUktPVknEhiBEVcWgQU4KK01JUktPVknEhiBEVcWgS08KK01JUktPVknEhiBEVUJSQVZLQQorTUlSS09WScSGIEVESVRBCitNSVJLT1ZJxIYgRUxBCitNSVJLT1ZJxIYgRU1JTElKQQorTUlSS09WScSGIEdBVlJJTE8KK01JUktPVknEhiBJVkFOCitNSVJLT1ZJxIYgSk9WQU5LQQorTUlSS09WScSGIEpPVkFOCitNSVJLT1ZJxIYgSk9WQU4KK01JUktPVknEhiBKT1ZBTgorTUlSS09WScSGIEtBVElDQQorTUlSS09WScSGIExBWkFSCitNSVJLT1ZJxIYgTEpJTEpBTkEKK01JUktPVknEhiBMSklMSkFOQQorTUlSS09WScSGIE1BUkEKK01JUktPVknEhiBNQVJBCitNSVJLT1ZJxIYgTUlMQU4gRFIKK01JUktPVknEhiBNSUxBTgorTUlSS09WScSGIE1JTEFOCitNSVJLT1ZJxIYgTUlMQU4KK01JUktPVknEhiBNSUxBTgorTUlSS09WScSGIE1JTElDQQorTUlSS09WScSGIE1JTElTQVYKK01JUktPVknEhiBNSUxJVk9KIERJUEwgSU5HCitNSVJLT1ZJxIYgTUlMSVZPSkUKK01JUktPVknEhiBNSUxLQQorTUlSS09WScSGIE1JTE/FoAorTUlSS09WScSGIE1JTE9TQVYKK01JUktPVknEhiBNSUxPVkFOCitNSVJLT1ZJxIYgTUlMVVRJTgorTUlSS09WScSGIE1JT0RSQUcKK01JUktPVknEhiBNSVJKQU5BCitNSVJLT1ZJxIYgTUlSS08KK01JUktPVknEhiBNSVJPU0xBVgorTUlSS09WScSGIE5FTkFECitNSVJLT1ZJxIYgTk9WQUsKK01JUktPVknEhiBQRVRBUgorTUlSS09WScSGIFBFVEFSCitNSVJLT1ZJxIYgUEVUQVIKK01JUktPVknEhiBQRVRBUgorTUlSS09WScSGIFBSRURSQUcKK01JUktPVknEhiBSQURNSUxBCitNSVJLT1ZJxIYgUkFUS08KK01JUktPVknEhiBTQU5KQQorTUlSS09WScSGIFNBVkEKK01JUktPVknEhiBTTE9CT0RBTiBEUiBMRUtBUgorTUlSS09WScSGIFNMT0JPREFOCitNSVJLT1ZJxIYgU1RFVkFOCitNSVJLT1ZJxIYgU1ZFVElTTEFWCitNSVJLT1ZJxIYgVFJJRlVOCitNSVJLT1ZJxIYgVkxBRElNSVIKK01JUktPVknEhiBaT1JBTiBEUgorTUlSS09WScSGIFpPUkFOCitNSVJLT1ZJxIYgWk9SQU4KK01JUktPVknEhiBaT1JLQQorTUlSS09WScSGIFpPUktBCitNSVJOScSGIEpPU0lQIERSCitNSVJOScSGIFNJTFZJSkEKK01JUk5JxIYgVlVLQcWgSU4KK01JUk/FoEVWScSGIE5JTk8KK01JUk9OSUNLSSBSVcW9SUNBCitNSVJPTklDS0kgWlZPTklNSVIKK01JUk9TQVZJxIYgTUlMRU5LTworTUlST1NBVknEhiBNSUxFTktPCitNSVJPU0FWTEpFViBJTElOS0EKK01JUk9TQVZMSkVWIEpPQ0EKK01JUk9TQVZMSkVWIE1BUklKQQorTUlST1NBVkxKRVYgTUlMRU5LTworTUlST1NBVkxKRVYgTUxBREVOCitNSVJPU0FWTEpFVknEhiBBTEVLU0FOREFSCitNSVJPU0FWTEpFVknEhiBCT8WgS08KK01JUk9TQVZMSkVWScSGIEJPUklTTEFWCitNSVJPU0FWTEpFVknEhiBCT1JJVk9KCitNSVJPU0FWTEpFVknEhiBCUkFOS0EKK01JUk9TQVZMSkVWScSGIERPQlJJTEEKK01JUk9TQVZMSkVWScSGIEpPVkFOCitNSVJPU0FWTEpFVknEhiBMRVBPU0FWQQorTUlST1NBVkxKRVZJxIYgTEpVQklDQQorTUlST1NBVkxKRVZJxIYgTEpVQk9EUkFHCitNSVJPU0FWTEpFVknEhiBNQUdEQQorTUlST1NBVkxKRVZJxIYgTUlMRU5LTworTUlST1NBVkxKRVZJxIYgTklLT0xBCitNSVJPU0FWTEpFVknEhiBOSUtPTEEKK01JUk9TQVZMSkVWScSGIFNURVZBTgorTUlST1NBVkxKRVZJxIYgU1RSQUhJTkpBCitNSVJPU0FWTEpFVknEhiBTVkVUSVNMQVYKK01JUk9TQVZMSkVWScSGIFRPTUlTTEFWCitNSVJPU0FWTEpFVknEhiBUT01JU0xBVgorTUlST1NBVkxKRVZJxIYgVkVSQQorTUlST1NBVkxKRVZJxIYgVkVSQQorTUlST1NBVkxKRVZJxIYgVk9KSVNMQVYKK01JUk9TQVZMSkVWScSGIFpPUkFOCitNSVJPU0FWTEpFVknEhiBaT1JLQQorTUlST1NMQVZMSkVWScSGIERVxaBBTktBCitNSVJPVknEhiBBTEVLU0FOREFSCitNSVJPVknEhiBESU1JVFJJSkUKK01JUk9WScSGIElHT1IKK01JUk9WScSGIE1BUklKQQorTUlST1ZJxIYgTUlMTworTUlST1ZJxIYgTkVOQUQKK01JU0FJTE9WScSGIFNWRVRPWkFSCitNSVNBSkxPVknEhiBNQVJHSVRBCitNSVNBTEpFVknEhiBORU1BTkpBCitNSVNJTUkgS0FNQkVSCitNSVNJTkkgTUlSSU1BTgorTUlTSVJLScSGIE1JTE/FoAorTUlTSVJLScSGIFZMQURBCitNSVNJUkxJUyBHRU9SR0lPUworTUlTS0lOIERSQUdBTgorTUlTS0lOIE1JTE/FoAorTUlTS0lOIE5JS08KK01JU0tJTiBaRFJBVktPCitNSVNMSU1JIEFMSVZFQkkKK01JVEFSIFRPTUEKK01JVEFSIFZFUkEKK01JVEVWU0tJIElWQU4KK01JVEnEhiDEjEVET01JUgorTUlUScSGIEFMRUtTQU5EQVIKK01JVEnEhiBCT1JJVk9KCitNSVRJxIYgQlJBTklTTEFWQQorTUlUScSGIEJSQU5JU0xBVgorTUlUScSGIEJVRElNSVIKK01JVEnEhiBEQU5JQ0EKK01JVEnEhiBEUkFHT0xKVUIKK01JVEnEhiBEUkFHT0xKVUIKK01JVEnEhiBEUkFHVVRJTgorTUlUScSGIERVxaBBTgorTUlUScSGIEdPUkRBTkEKK01JVEnEhiBJR09SCitNSVRJxIYgSk9TSUYKK01JVEnEhiBKT1ZBTgorTUlUScSGIEpPVkFOCitNSVRJxIYgTUFSSUpBCitNSVRJxIYgTUlMQU4KK01JVEnEhiBNSUxJVk9KCitNSVRJxIYgTUlPRFJBRyBEUiBMRUtBUgorTUlUScSGIE1JT0RSQUcKK01JVEnEhiBNSVJLTworTUlUScSGIE1JVEFSIERJUEwgSU5HCitNSVRJxIYgTklLT0xBCitNSVRJxIYgUEFWTEUKK01JVEnEhiBSQURJVk9KRQorTUlUScSGIFJVxb1JQ0EKK01JVEnEhiBTTEFWS08KK01JVEnEhiBTUkVCUkEKK01JVEnEhiBTVVpBTkEKK01JVEnEhiBUT01JU0xBVgorTUlUScSGIFZFTElNSVIKK01JVEnEhiBWRVJBCitNSVRJxIYgVklET1NBVkEKK01JVEnEhiBWSVRPTUlSCitNSVRLT1ZJxIYgRFJBR0FOCitNSVRPxaBFVknEhiBCT0dEQU4KK01JVE/FoEVWScSGIE1JTEUKK01JVE/FoEVWScSGIE5BREEKK01JVE/FoEVWScSGIFNBVkEKK01JVE9WScSGIEFMRUtTQU5EQVIKK01JVE9WScSGIERPQlJJU0xBVgorTUlUT1ZJxIYgTUlST1NMQVYKK01JVFJBxaBJTk9WScSGIExKSUxKQU5BCitNSVRSQcWgSU5PVknEhiBaT1JBCitNSVRSQUtPVknEhiDEkFVSQcSQCitNSVRSQUtPVknEhiBNSVJPU0xBVgorTUlUUkFLT1ZJxIYgTkVOQUQKK01JVFJBS09WScSGIFVHTEpFxaBBCitNSVRSRUtBTknEhiBNSUxPUkFECitNSVRSRVNLSSBNT03EjElMTworTUlUUkVWU0tBIEVWRE9LSUpBCitNSVRSRVZTS0kgTEFNQkUKK01JVFJFVlNLSSBNT03EjElMTworTUlUUkVWU0tJIFJBREEKK01JVFJJxIxFVknEhiDFvUlLQQorTUlUUknEjEVWScSGIEFOxJBFTEtBCitNSVRSScSMRVZJxIYgQU5BCitNSVRSScSMRVZJxIYgU01JTEpBCitNSVRSScSGIMSQVVJPCitNSVRSScSGIEJPR0nEhgorTUlUUknEhiBNSUxBTgorTUlUUknEhiBNSUxBTgorTUlUUknEhiBNSUxPxaAKK01JVFJJxIYgTkXEkE8KK01JVFJJxIYgTkXEkE8KK01JVFJJxIYgTk9WQUsKK01JVFJJxIYgUkFETUlMQQorTUlUUknEhiBWQUxFTlRJTkEKK01JVFJPVsSMQU4gSlVMS0lDQQorTUlUUk9WxIxBTiBLT1NUQQorTUlUUk9WxIxBTiBMQVpBUgorTUlUUk9WxIxBTiBMSlVCSU5LTworTUlUUk9WxIxBTiBMSlVCSU5LTworTUlUUk9WxIxBTiBNSVRBCitNSVRST1bEjEFOIFJBRElOS0EKK01JVFJPVsSMQU4gU1RFVkFOCitNSVRST1bEjEFOIFNUSkVQQU4KK01JVFJPVsSMQU4gWkFHT1JLQQorTUlUUk9WScSGIMSMRURPTUlSCitNSVRST1ZJxIYgxb1BUktPCitNSVRST1ZJxIYgxb1JVk9SQUQKK01JVFJPVknEhiDEkE9LTworTUlUUk9WScSGIEFMRUtTQU5EQVIKK01JVFJPVknEhiBBTEVLU0FOREFSCitNSVRST1ZJxIYgQUxFS1NBTkRBUgorTUlUUk9WScSGIEFOR0VMSU5BCitNSVRST1ZJxIYgQU5LQQorTUlUUk9WScSGIEJJTEpBTkEKK01JVFJPVknEhiBCT8WgS08KK01JVFJPVknEhiBCT1JJU0xBVgorTUlUUk9WScSGIEJSQU5LTworTUlUUk9WScSGIEJSQU5LTworTUlUUk9WScSGIERBTklDQQorTUlUUk9WScSGIERBUklOS0EKK01JVFJPVknEhiBERVNBTktBCitNSVRST1ZJxIYgRFJBR0FOCitNSVRST1ZJxIYgRFJBR0FOCitNSVRST1ZJxIYgRFJBR0lDQQorTUlUUk9WScSGIERSQUdJCitNSVRST1ZJxIYgRFJBR09KTE8KK01JVFJPVknEhiBEUkFHT0xKVUIKK01JVFJPVknEhiBEVcWgQU5LQQorTUlUUk9WScSGIERVxaBBTgorTUlUUk9WScSGIERVxaBBTgorTUlUUk9WScSGIERVxaBLTworTUlUUk9WScSGIERVQlJBVktBCitNSVRST1ZJxIYgR09KS08KK01JVFJPVknEhiBHT1NQQVZBCitNSVRST1ZJxIYgR09TUEEKK01JVFJPVknEhiBJS0EKK01JVFJPVknEhiBJVkFOCitNSVRST1ZJxIYgSkVMRU5BCitNSVRST1ZJxIYgSkVMRU5BCitNSVRST1ZJxIYgSkVMSUNBCitNSVRST1ZJxIYgSk9WQU4KK01JVFJPVknEhiBKT1ZBTgorTUlUUk9WScSGIEpPVkFOCitNSVRST1ZJxIYgTEFaQVIKK01JVFJPVknEhiBMQVpBUgorTUlUUk9WScSGIExKSUxKQU5BCitNSVRST1ZJxIYgTEpVQklTQVYKK01JVFJPVknEhiBMSlVCT01JUgorTUlUUk9WScSGIExKVUJPTUlSCitNSVRST1ZJxIYgTUFSS08KK01JVFJPVknEhiBNSUhBSkxPCitNSVRST1ZJxIYgTUlIQUpMTworTUlUUk9WScSGIE1JTEFOS0EKK01JVFJPVknEhiBNSUxBTgorTUlUUk9WScSGIE1JTEFOCitNSVRST1ZJxIYgTUlMRU5BCitNSVRST1ZJxIYgTUlMRU5LTworTUlUUk9WScSGIE1JTElDQQorTUlUUk9WScSGIE1JTEtBCitNSVRST1ZJxIYgTUlMT8WgCitNSVRST1ZJxIYgTUlMT8WgCitNSVRST1ZJxIYgTUlMT1JBRAorTUlUUk9WScSGIE1JTE9WQU4KK01JVFJPVknEhiBNSU9EUkFHCitNSVRST1ZJxIYgTUlPRFJBRworTUlUUk9WScSGIE1JT0RSQUcKK01JVFJPVknEhiBNSVJLTworTUlUUk9WScSGIE1JUktPCitNSVRST1ZJxIYgTUlST1NMQVYKK01JVFJPVknEhiBNSVJPU0xBVgorTUlUUk9WScSGIE1JVEFSIERJUEwgSU5HCitNSVRST1ZJxIYgTUxBREVOCitNSVRST1ZJxIYgTUxBREVOCitNSVRST1ZJxIYgTUxBREVOCitNSVRST1ZJxIYgTU9NxIxJTE8KK01JVFJPVknEhiBNT01JUgorTUlUUk9WScSGIE5BREXFvURBCitNSVRST1ZJxIYgTkVOQUQKK01JVFJPVknEhiBOSUtPTEEKK01JVFJPVknEhiBPTEdBCitNSVRST1ZJxIYgUEVUQVIKK01JVFJPVknEhiBSQURJU0xBVgorTUlUUk9WScSGIFJBRElWT0pFCitNSVRST1ZJxIYgUkFESVZPSgorTUlUUk9WScSGIFJBRE1JTEEKK01JVFJPVknEhiBSQURNSUxBCitNSVRST1ZJxIYgUkFET0pJQ0EKK01JVFJPVknEhiBSQURPVkFOCitNSVRST1ZJxIYgUkFET1ZBTgorTUlUUk9WScSGIFJBRE8KK01JVFJPVknEhiBSQVRLTworTUlUUk9WScSGIFNMQVZLTworTUlUUk9WScSGIFNMQVZLTworTUlUUk9WScSGIFNMT0JPREFOCitNSVRST1ZJxIYgU0xPQk9EQU4KK01JVFJPVknEhiBTTE9CT0RBTgorTUlUUk9WScSGIFNPRklKQQorTUlUUk9WScSGIFNSRVRBCitNSVRST1ZJxIYgU1RBS0EKK01JVFJPVknEhiBTVEFOScWgQQorTUlUUk9WScSGIFNUQU5LTworTUlUUk9WScSGIFNURVZBTgorTUlUUk9WScSGIFNURVZBTgorTUlUUk9WScSGIFNVWkFOQQorTUlUUk9WScSGIFNVWkFOQQorTUlUUk9WScSGIFRJSE9NSVIgRElQTCBJTkcKK01JVFJPVknEhiBUSUhPTUlSCitNSVRST1ZJxIYgVE9ERQorTUlUUk9WScSGIFZBTEVSSUpBCitNSVRST1ZJxIYgVkFTQQorTUlUUk9WScSGIFZFTElNSVIKK01JVFJPVknEhiBWRVJBCitNSVRST1ZJxIYgVkVSQQorTUlUUk9WScSGIFZFUklDQQorTUlUUk9WScSGIFZFUk9OSUtBCitNSVRST1ZJxIYgVkVTRUxJTgorTUlUUk9WScSGIFZMQURJTUlSCitNSVRST1ZJxIYgVlXEjEVUQQorTUlUUk9WScSGLVZVSk5JxIYgU01JTEpBTkEKK01JVFJPVknEhiBWVUpPxaAKK01JVFJPVknEhiBaTEFUS08KK01JVFJVxaBJxIYgQk9SSVNMQVYKK01JVFJVxaBJxIYgQlJBTklTTEFWCitNSVRSVcWgScSGIEpFTElTQVZFVEEKK01JVcSMSU4gTkFUQUxJSkEKK01JVcSMSU4gUk9aSU5BCitNSVXEjElOIFNMQVZLTworTUlVxIxJTiBTVkVUT1pBUgorTUlVxIxJTiBWRVJJQ0EKK01JWiBNQVJJSkEKK01JWiBST01BTgorTUlaRFJBSyBCUkFOS08KK01KRURBIFNJTU9OCitNTEHEkEVOIMSQVVJPCitNTEHEkEVOIERNSVRBUgorTUxBxJBFTk9WScSGIEJSQU5LQQorTUxBxJBFTk9WScSGIEVMRU5BCitNTEHEkEVOT1ZJxIYgUkFERQorTUxBREVOT1ZJxIYgxb1JVk9SQUQKK01MQURFTk9WScSGIMSQT1LEkEUKK01MQURFTk9WScSGIMSQT1LEkEUKK01MQURFTk9WScSGIEFMRUtTQU5EQVIKK01MQURFTk9WScSGIEFMRUtTQU5EQVIKK01MQURFTk9WScSGIEFOxJBFTEtBCitNTEFERU5PVknEhiBBTktJQ0EKK01MQURFTk9WScSGIEJPxaBLTworTUxBREVOT1ZJxIYgQk9HREFOCitNTEFERU5PVknEhiBCT1NJTEpLQQorTUxBREVOT1ZJxIYgREFOSUxPCitNTEFERU5PVknEhiBEUkFHQU4KK01MQURFTk9WScSGIERSQUdBTgorTUxBREVOT1ZJxIYgRFJBR09MSlVCCitNTEFERU5PVknEhiBEUkFHT01JUgorTUxBREVOT1ZJxIYgRFXFoEFOCitNTEFERU5PVknEhiBEVcWgQU4KK01MQURFTk9WScSGIEdSQURJTUlSCitNTEFERU5PVknEhiBKRUxFTkEKK01MQURFTk9WScSGIEpFTEVOQQorTUxBREVOT1ZJxIYgSkVMSUNBCitNTEFERU5PVknEhiBKRUxJQ0EKK01MQURFTk9WScSGIEpVU1RJTkEKK01MQURFTk9WScSGIE1BUkEKK01MQURFTk9WScSGIE1BUklOQQorTUxBREVOT1ZJxIYgTUlIQUpMTworTUxBREVOT1ZJxIYgTUlMQU4gRElQTCBJTkcKK01MQURFTk9WScSGIE1JTEFOCitNTEFERU5PVknEhiBNSUxBTgorTUxBREVOT1ZJxIYgTUlMT1JBRAorTUxBREVOT1ZJxIYgTUlMT1JBRAorTUxBREVOT1ZJxIYgTUlMT1ZBTgorTUxBREVOT1ZJxIYgTUlMT1ZBTgorTUxBREVOT1ZJxIYgTUxBREVOCitNTEFERU5PVknEhiBOQURFxb1EQQorTUxBREVOT1ZJxIYgTkVCT0rFoEEKK01MQURFTk9WScSGLU5JS09MScSGIEdPUkRBTkEKK01MQURFTk9WScSGIE9MR0EKK01MQURFTk9WScSGIFBFVEFSCitNTEFERU5PVknEhiBSQURJVk9KCitNTEFERU5PVknEhiBSQUpLTworTUxBREVOT1ZJxIYgUkFOS08KK01MQURFTk9WScSGIFJVxb1JQ0EKK01MQURFTk9WScSGIFNBVkEKK01MQURFTk9WScSGIFNMT0JPREFOCitNTEFERU5PVknEhiBTTE9CT0RBTgorTUxBREVOT1ZJxIYgU1JCSVNMQVZLQQorTUxBREVOT1ZJxIYgVElIT01JUgorTUxBREVOT1ZJxIYgVE9NSVNMQVYKK01MQURFTk9WScSGIFRPTUlTTEFWCitNTEFERU5PVknEhiBVUk/FoAorTUxBREVOT1ZJxIYgVkVLT1NMQVYKK01MQURFTk9WScSGIFZFUklDQQorTUxBREVOT1ZJxIYgVk9KSVNMQVYKK01MQURFTk9WScSGIFpBR09SS0EKK01MQURFTk9WScSGIFpPUkFOQQorTUxBREVOT1ZTS0kgTE9aQU5BCitNTEFESU4gSU1SRQorTUxBRElOIE1BUkdJVEEKK01MQVpFViBWQVNJTAorTUxJTkFSIE1VSEFSRU0KK01MSU5BUiBNVVNUQUZBCitNTElOS08gQU1CUk9aSUpFCitNTElOS08gRFXFoEFOCitNTElOS08gUEVUQVIKK01MSU5LTyBaVk9OSU1JUgorTU/EjCBKRUxFTkEKK01PxIwgSk9WQU5LQQorTU/FoE8gSk/FvUVGCitNT8WgT1JJTkFDIMW9SVZLTworTU/FoE9SSU5BQyBORU5BRAorTU/FoE9SSU5TS0kgWkFHT1JLQQorTU/FoE9SSU5TS0kgWk9SQQorTU/EhkFOIEpFTEVOQSBESVBMIElORworTU/FvUUgRU1JTAorTU9DScSGIE1PTUlSCitNT0NJSyDEkFVMQQorTU9DSUsgSVJFTktBCitNT0NLTyBKQU4KK01PQ0tPLU1JTEFESU5PVknEhiBWSUVSQQorTU9DS08gTUlST1NMQVYKK01PQ0tPIFNURVZBTgorTU9DTkFJIElSRU5BCitNT0NOSSBKT1ZBTgorTU9DTkkgTUFSSUpBCitNT0NOSSBTVEVWQU4KK01PREVMU0tJIEJSQU5JU0xBVkEKK01PREnEhiBNSUxFTktPCitNT0RJxIYgTUlMRU5LTworTU9EScSGIE1JTElWT0pFCitNT0RJxIYgUkFOS08KK01PREnEhiBTTE9CT0RBTgorTU9EScSGIFRPTUlTTEFWCitNT0RJxIYgVE9NSVNMQVYKK01PRE/FoEFOT1YgTUFSVEEKK01PRE/FoEFOT1YgTklLT0xBCitNT0RSQUggVkxBRElNSVIKK01PRFJJIMWgQU5ET1IKK01PRFJJIERSQUdBTgorTU9EUkkgRVZBCitNT0RSScSGIElMSUpBCitNT0RSScSGIFNUQU5LTworTU9EUklOScSGIE1JTElDQQorTU9EUk9OSkEgRkVISU0KK01PRkFSRElOIFNQQVNFTktBCitNT0dBIEJSQU5LTworTU9HQSBKT1ZBTgorTU9HQSBNSUxBTiBEUiBMRUtBUgorTU9HQSBNTEFERU4KK01PR0EgUEFKQQorTU9HQSBTVEVWQU4KK01PR0EgVkVSQQorTU9HScSGIEFMRUtTQU5EQVIKK01PR0nEhiBCT1JJU0xBVgorTU9HScSGIEdPUkFOQQorTU9HSU4gQUxFS1NBTkRBUgorTU9HSU4gQUxFS1NBTkRBUgorTU9HSU4gQUxFS1NBTkRBUgorTU9HSU4gQk9SSVNMQVYKK01PR0lOIElSSU5BCitNT0dJTiBKRUxFTkEKK01PR0lOIEpVTElKQU5BCitNT0dJTiBLU0VOSUpBCitNT0dJTiBMQVpBUgorTU9HSU4gTEpVQknFoEEKK01PR0lOIE1BUkEKK01PR0lOIE1JTEFOQQorTU9HSU4gTUlMQU4KK01PR0lOIFBBVkxFCitNT0dJTiBQQVZMRQorTU9HSU4gUEFWTEUKK01PR0lOIFBFVEFSCitNT0dJTiBSQURPTUlSCitNT0dJTiBSQURPTUlSCitNT0dJTiBWSVRPTUlSCitNT0hBxIxJIEFMRUtTQU5EQVIKK01PSEHEjEkgTEFTTE8KK01PSEFOIERFQU5BCitNT0hBTiBKT04KK01PSEFOIFBFVEFSCitNT0hBTiBTTUlMSkFOQQorTU9IT1JBIEVNSUxJSkFOCitNT0hPUknEhiBEQU5JQ0EKK01PSE9SS08gSUxJSkEKK01PSE9SS08gSUxJSkEKK01PSE9SS08gTUFSR0lUQQorTU9IT1JLTyBSQUpLTworTU9KScSGIERVxaBBTgorTU9KScSGIERVxaBBTgorTU9KScSGIElWQU5LQQorTU9KScSGIE1JTElWT0pFCitNT0pJxIYgTUlMT1JBRAorTU9KScSGIE1JVEFSCitNT0pJxIYgTklLT0xBCitNT0pJxIYgTklLT0xBCitNT0pJxIYgU0xBVktPCitNT0pJxIZFVknEhiBERVNJTUlSCitNT0pJTiBTT0ZJSkEKK01PSlNFIEtBVElDQQorTU9KU0UgTkFORE9SCitNT0pTRUpFViBBTEVLU0FOREFSCitNT0pTRUpFViBLT05TVEFOVElOIERJUEwgUEgKK01PSlNJSkVWScSGIE5JS09MQQorTU9KU0lKRVZJxIYgU0FWQQorTU9KU0lMT1YgRElNSVRSSUpFCitNT0pTSUxPViBEUkFHQU4KK01PSlNJTE9WIE1JTElTQVYKK01PSlNJTE9WScSGIE1JTE9NSVIKK01PSlNJTE9WScSGIFBFVEFSCitNT0pTSUxPVknEhiBTTEFWSUNBCitNT0pTSUxPVknEhiBWRVJBCitNT0pTSUxPVknEhiBWSURPSkUKK01PSlNJTiBEUkFHT01JUgorTU9KU09WScSGIEFMRUtTQU5EQVIKK01PSlpFxaAgQUxGUkVECitNT0paRcWgIE1BUklKQQorTU9LVcWgIMWgQU5ET1IKK01PS1XFoCBJTVJFCitNT0tVxaAgSk9WQU4KK01PS1XFoCBLQUxNQU4KK01PS1XFoCBMQVNMTworTU9LVcWgIExBU0xPCitNT0tVxaAgTEFTTE8KK01PS1XFoCBNSUtMT8WgCitNT0tVxaAgVElCT1IKK01PS1XFoCBaT0xUQU4KK01PTEFDIE1JTE9SQUQKK01PTEMgS0FUSUNBCitNT0xET1ZBTiBMSlVCSU5LQQorTU9MRE9WQU4gTUFSSUpBCitNT0xET1ZBTk9WIEJPxaBLTworTU9MRE9WQU5PVknEhiDEkE9SxJBFCitNT0xEVkFJIEVSVklOCitNT0xEVkFJIElaQUJFTEEKK01PTERWQUkgTEFTTE8KK01PTERWQUkgT1RPCitNT0xEVkFKIEZSQU5KQQorTU9MRFZBSiBISUxEQQorTU9MRFZBSi1PTEFIIEVNSUxJSkEKK01PTERWQUogUk9aQUxJQQorTU9MRFZBSiBTVEVWQU4KK01PTERWQUogVklLVE9SCitNT0xEVkFKSSBQUkVEUkFHCitNT0xFUk9WIFJBRE9WQU4KK01PTEpBQyDEkE9SxJBFCitNT0xKQUMgQlJBTktBCitNT0xKQUMgR0FWUkEKK01PTEpBQyBHQVZSQQorTU9MSkFDIEpPVkFOCitNT0xKQUMgSk9WQU4KK01PTEpBQyBLQVRJQ0EKK01PTEpBQyBNSUxJQ0EKK01PTEpBQyBNSU9EUkFHCitNT0xKQUMgTkFEQQorTU9MSkFDIFBBSkEKK01PTEpBQyBTVEVWQU4KK01PTEpBQyBTVEVWQU4KK01PTEpBQyBWRVJBCitNT0xKU0tJIE1JUk9TTEFWCitNT0xLVUMgUEVUQVIgRElQTCBJTkcKK01PTEtVQyBWSVLEkElORUwKK01PTE5BUiDFoEFORE9SCitNT0xOQVItxaBURUZVTElLIElMT05BCitNT0xOQVIgxJBPUsSQRQorTU9MTkFSIEFMRUtTQU5EQVIKK01PTE5BUiBBTkRSQcWgCitNT0xOQVIgQU5EUkHFoAorTU9MTkFSIEFOVE9OCitNT0xOQVIgQVJQQUQKK01PTE5BUiBCUkFOSVNMQVZBCitNT0xOQVIgREXFvUUKK01PTE5BUiBFTUlMSUpBCitNT0xOQVIgRU1JTElKQQorTU9MTkFSIEVWSUNBCitNT0xOQVIgRkVPRE9SCitNT0xOQVIgRkVSRU5DIERJUEwgSU5HCitNT0xOQVIgScWgVFZBTgorTU9MTkFSIEnFoFRWQU4KK01PTE5BUiBJTVJFIERSCitNT0xOQVIgSU1SRQorTU9MTkFSIElNUkUKK01PTE5BUiBJUkVOQQorTU9MTkFSIElWQU4gRElQTCBJTkcKK01PTE5BUiBJVkFOCitNT0xOQVIgSVZBTgorTU9MTkFSIEpBS09WCitNT0xOQVIgSkFOT8WgCitNT0xOQVIgSkFOCitNT0xOQVIgSkVMRU5BCitNT0xOQVIgSkVMSUNBCitNT0xOQVIgSkVMSVNBVkVUQQorTU9MTkFSIEpFTElTQVZFVEEKK01PTE5BUiBKRUxJU0FWRVRBCitNT0xOQVIgSk/FvUVGCitNT0xOQVIgSk/FvUVGCitNT0xOQVIgSk/FvUVGCitNT0xOQVIgSk/FvUVGCitNT0xOQVIgSk/FvUVGCitNT0xOQVIgSk9MQU5LQQorTU9MTkFSIEpPU0lQCitNT0xOQVIgSk9TSVAKK01PTE5BUiBKT1NJUAorTU9MTkFSIEpPU0lQCitNT0xOQVIgSk9WQU4KK01PTE5BUiBLQVJMTworTU9MTkFSIEtBVEFMSU4KK01PTE5BUiBMQVNMTworTU9MTkFSIExBWkFSCitNT0xOQVIgTUHEhkHFoAorTU9MTkFSIE1BUklKQSBEUgorTU9MTkFSIE1BUlRBIERSCitNT0xOQVIgTUFUSUxEQQorTU9MTkFSIE1JSEFKTE8KK01PTE5BUiBNSUhBTEoKK01PTE5BUiBNSUhBTEoKK01PTE5BUiBNSUhBTEoKK01PTE5BUiBNSUhBTEoKK01PTE5BUiBNSUxBTgorTU9MTkFSIE1JUk9OCitNT0xOQVIgTklLT0xBCitNT0xOQVIgU1BPTUVOS0EKK01PTE5BUiBTVkVUT1NMQVYKK01PTE5BUiBURVJFWkEKK01PTE5BUiBWRVJBCitNT0xOQVIgVklMTU/FoCBESVBMIElORworTU9MTkFSIFZKRVJBCitNT0xOQVIgVkxBRElNSVIKK01PTE5BUiBaVk9OS08KK01PTcSMSUxPViBET0JSSUpBCitNT03EjElMT1YgR0FWUklMTworTU9NxIxJTE9WIEdBVlJJTE8KK01PTcSMSUxPViBTVEVWQU4KK01PTcSMSUxPVknEhiDEjEVET01JUgorTU9NxIxJTE9WScSGIEJPR09NSVIKK01PTcSMSUxPVknEhiBCUkFOS08gRFIKK01PTcSMSUxPVknEhiBEQU5FCitNT03EjElMT1ZJxIYgRFJBR0FOCitNT03EjElMT1ZJxIYgRFXFoEFOS0EKK01PTcSMSUxPVknEhiBJTElKQQorTU9NxIxJTE9WScSGIE1JSEFKTE8KK01PTcSMSUxPVknEhiBNSUxBTgorTU9NxIxJTE9WScSGIE1JTEFOCitNT03EjElMT1ZJxIYgTUlMRQorTU9NxIxJTE9WScSGIE1JUkEKK01PTcSMSUxPVknEhiBNSVJBCitNT03EjElMT1ZJxIYgTU9NxIxJTE8KK01PTcSMSUxPVknEhiBQRVRBUgorTU9NxIxJTE9WScSGIFJVxb1JQ0EKK01PTcSMSUxPVknEhiBTTUlMSkEKK01PTcSMSUxPVknEhiBUT01JU0xBVgorTU9NxIxJTE9WScSGIFZBU0EKK01PTcSMSUxPVknEhiBWSURBTgorTU9NxIxJTE9WScSGIFZPSklTTEFWCitNT03EjElMT1ZJxIYgVlVLSUNBCitNT01BTkkgQUtSQU0KK01PTUnEhiBPQlJBRAorTU9NSVJPViBJTElKQQorTU9NSVJPViBMSklMSkFOQQorTU9NSVJPViBNSUxFTktPCitNT01JUk9WIE1JTEVUQQorTU9NSVJPViBNSVJPU0xBVgorTU9NSVJPViBOQURBCitNT01JUk9WIFBBSkEKK01PTUlST1YgU0FWQQorTU9NSVJPViBTVkVUTEFOQQorTU9NSVJPViBTVkVUT1pBUgorTU9NSVJPViBUT8WgQQorTU9NSVJPViBaT1JJQ0EKK01PTUlST1ZJxIYgQlJBTktPCitNT01JUk9WScSGIEpFTElDQQorTU9NSVJPVknEhiBKT1ZJQ0EKK01PTUlST1ZJxIYgTEFaQQorTU9NSVJPVknEhiBQRVRBUgorTU9NSVJPVknEhiBTUkXEhktPCitNT01JUk9WScSGIFNURVZBTgorTU9NSVJPVlNLSS1NSUxPxaBFVknEhiBDVkVUQU5BCitNT05BUiBKQU5LTworTU9OQVJFViBBTEVLU0FOREFSCitNT05BUkVWIEpPU0lQQQorTU9OQVJFVi1TT0tPTEnEhiBOQURBCitNT05BUk9WIEVMSVpBQkVUQQorTU9OQVJPViBKT1pFRklOQQorTU9ORE9WScSGIMSQVUxBCitNT05ET1ZJxIYgQUxFS1NBTkRBUgorTU9ORE9WScSGIEZSQU5KQQorTU9ORE9WScSGIEtBVElDQQorTU9ORE9WScSGIExBRElTTEFWCitNT05HRUpBUiBSQURPU0FWQQorTU9OSSBJU0xBTQorTU9OT0tJIMSQVUxBCitNT05PS0kgScWgVFZBTgorTU9SIMSQRVLEkAorTU9SIEZSQU5KQQorTU9SIEdBQk9SCitNT1IgR0FCT1IKK01PUiBMQVNMTworTU9SIFpERU5LTworTU9SQSBBTkEKK01PUkEgQU5EUkHFoAorTU9SQSBLT1JORUxJSkEKK01PUkHEjEEgxJBVUkHEkAorTU9SQcSMQSBNSU9EUkFHCitNT1JBxIxBIE5JS09MQQorTU9SQcSMQSBSQURNSUxBCitNT1JBxIxBIFZBU08KK01PUkHEjEEgVkFTTworTU9SQcSMQU5JTiBNSUxPUkFECitNT1JBScSGIMSQT1LEkEUKK01PUkFSRVZJxIYgTEpVQklDQQorTU9SQVJFVknEhiBWT0pLQU4KK01PUkFWQUMgVk9KSVNMQVYKK01PUkFWRUsgSkFOS08KK01PUkUgTUFSSUpBCitNT1JFIFNJTFZFU1RFUgorTU9SR0VOVEFMRVIgSk9WQU4KK01PUknEhiBIQU1PCitNT1JJQyBEUkFHVVRJTgorTU9SSUMgR0FCT1IKK01PUklDIEpBTk/FoAorTU9SSUMgSkVMRU5BCitNT1JJQyBKVUxJSkEKK01PUklDIEtBUkxPCitNT1JJQyBMQUpPxaAKK01PUklDIExBU0xPCitNT1JJQyBMQVNMTworTU9SSUMgTElESUpBCitNT1JJQyBNSUxBTkEKK01PUklDIFBBVUxBCitNT1JJQyBTSUxBUkQKK01PUklDIFNMQVZJQ0EKK01PUklDIFpPTFRBTgorTU9ST8WgRVYgUkFET1NMQVYKK01PUk9LVkHFoEnEhiBCT0dEQU5LQQorTU9ST0tWQcWgScSGIE1JTElTQVYKK01PUk9LVkHFoEnEhiBORU5BRAorTU9ST0tWQcWgScSGIE5JS09MQQorTU9ST01JTE9WIExKVUJJTktBCitNT1JPVFZBTlNLSSBWSURPU0FWQQorTU9ST1ZJxIYgTUFUSUxEQQorTU9ST1ZJxIYgTUlMRU5BCitNT1JPVknEhiBORVNUT1IKK01PUk9WSUMgTEFTTE8KK01PUlZBSSDFoEFORE9SCitNT1JWQUkgxJBFUsSQCitNT1JWQUkgRkVSRU5DCitNT1JWQUkgSkFOT8WgCitNT1JWQUkgS0FSTE8KK01PUlZBSSBMQURJU0xBVgorTU9SVkFJIFBFVEFSCitNT1NJxIYgTUlPRFJBRworTU9TS0FMSiBMSlVCT01JUgorTU9TS0FMSiBOSUtPTEEKK01PU0tBTEogTklLT0xBCitNT1NLQUxKIFJBRE1JTEEKK01PU0tWQUxKIFNBVktBCitNT1NMT1ZBQyBLQVRBUklOQQorTU9TTkFLIEFORFJJSkEKK01PU05BSyBQQVZFTAorTU9TVEFSQUMgSkVMRU5BCitNT1NUQVJTS0kgU0xBVklDQQorTU9TVEnEhiBSQURNSUxBCitNT1NVUk9WScSGIE1JTElKQU5BCitNT1RPSyDEkE9SxJBFCitNT1RPSyBCUkFOS08KK01PVE9ST8W9RVNLVSBBVVJPUkEKK01PVlJJTiBJVkFOCitNT1pFVEnEhiBNTEFERU4KK01SxIxBUklDQSBaT1JBTgorTVLFoEEgTUlMRU5LQQorTVLFoEnEhiDEkE9SxJBFCitNUsWgScSGIEJPR0RBTgorTVLFoEnEhiBEVcWgQU4KK01SxaBJxIYgTUFSS08KK01SxaBJxIYgTUlMRQorTVLFoE8gQU5UTworTVLFoFVMSkEgTklLT0xBCitNUsWgVUxKQSBSQURPTUlSCitNUsSQQSBCT8WgS08KK01SxJBBIEJPR0RBTgorTVLEkEEgTUFORQorTVLEkEEgTUlMS0FOCitNUsSQQSBNSVJPU0xBVgorTVLEkEEgU1RFVkFOCitNUsSQQSBaT1JBTgorTVLEkEFOIERVxaBBTgorTVLEkEFOIE1JSEFKTE8KK01SxJBBTiBSVcW9SUNBCitNUsSQQU4gU0FWQQorTVLEkEFOIFNBVkEKK01SxJBBTiBTVEVWQU4KK01SxJBBTiBTVEVWQU4KK01SxJBBTklOIFZMQURJU0xBVgorTVLEkEFOT1Ygxb1BUktPCitNUsSQQU5PViBBTklDQQorTVLEkEFOT1YgS1NFTklKQQorTVLEkEFOT1YgTEFaQQorTVLEkEFOT1YgTUFSSU5LTworTVLEkEFOT1YgTUVMQU5JSkEKK01SxJBBTk9WIE1JUk9TTEFWCitNUsSQQU5PViBNT03EjElMTworTVLEkEFOT1YgTkVNQU5KQQorTVLEkEFOT1YgTk9WSUNBCitNUsSQQU5PViBQUk9LQQorTVLEkEFOT1YgU01JTEpBCitNUsSQQU5PViBWVUtPU0FWQQorTVLEkEFOT1YgWkRSQVZLTworTVLEkEVOIElMSUpBCitNUsSQRU4gSkVMRU5BCitNUsSQRU4gTEFaQVIKK01SxJBFTiBNSVJLTworTVLEkEVOIFZFTEpLTworTVLEkEVOT1YgS0FUSUNBCitNUsSQRU5PVknEhiBCUkFOSVNMQVYKK01SxJBFTk9WScSGIEJSQU5LTworTVLEkEVOT1ZJxIYgTEpVQk9NSVIKK01SxJBFTk9WScSGIE5FQk9KxaBBCitNUsSQRU5PVknEhiBQRVRBUgorTVLEkEVOT1ZJxIYgVkFTTworTVJBxIxBSkFDIENWSUpPCitNUkHEjEFKQUMgREVKQU4KK01SQcSGRVZJxIYgUkFESVZPSgorTVJBS09WScSGIEJPxb1JREFSCitNUkFLT1ZJxIYgTEpVQkFOCitNUkFLT1ZJxIYgU0xPQk9EQU5LQQorTVJBT1ZJxIYtQkFIVU4gTUlMSUpBTkEKK01SQU9WScSGIERSQUdBTgorTVJBT1ZJxIYgRFXFoEFOCitNUkFPVknEhiBLQVRJQ0EKK01SQU9WScSGIE1BUktPCitNUkFPVknEhiBPTEdBIERSIFBSQVZOSUsKK01SQU9WScSGIFNMT0JPREFOCitNUkFPVknEhiBTVE9KQU4KK01SQVRJTktPVknEhiBCT1JJUyBEUiBMRUtBUgorTVJBVElOS09WScSGIERVxaBBTiBEUgorTVJBVElOS09WScSGIExKVUJJQ0EKK01SQVZJSyDFvUlWS0EKK01SQVZJSyDEkFVSQQorTVJBVklLIFBBVkxFCitNUkFaIEFORFJJSkEKK01SQVpFSyBCRVJOQVJETworTVJBWk9WScSGIEpPU0lQCitNUkFaT1ZJxIYgTUlMQU5BCitNUkFaT1ZJxIYgTUlMQU4KK01SQVpPVknEhiBORVZFTktBCitNUkRBSyDEkE9SxJBFCitNUkRBSyBNSVJBxaAKK01SREFLT1ZJxIYgQk9SSVNBVgorTVJEQUtPVknEhiBNSUxVVElOCitNUkRBS09WScSGIFZFUklDQQorTVJEQUtPVknEhiBWVUtPU0FWCitNUkRBTEogUEVUQVIKK01SREnEhiBLQVJPTElOQQorTVJEScSGIE1BUktPCitNUkRJxIYgU0FOSkEKK01SR0FOScSGIEpPWk8KK01SR0FOScSGIFNSRcSGS08KK01SR0nEhiBNSVJKQU5BCitNUkvFoEnEhiDEkE9SxJBFCitNUkvFoEnEhiBBTEVLU0FOREFSCitNUkvFoEnEhiBCT0pBTkEKK01SS8WgScSGIERSQUdBTgorTVJLxaBJxIYgRFJBR0FOCitNUkvFoEnEhiBKRUxFTkEKK01SS8WgScSGIEpPQ0EKK01SS8WgScSGIEpPQ0EKK01SS8WgScSGIEtPU1RBCitNUkvFoEnEhiBNSUxPxaAKK01SS8WgScSGIE5FTkFECitNUkvFoEnEhiBTTEFWSUNBCitNUkvFoEnEhiBaQUdPUktBCitNUkvFoEnEhiBaTEFUQQorTVJLQUnEhiBHT1JBTgorTVJLQUnEhiBTSU1BCitNUktBScSGIFRPTUlTTEFWCitNUktBTEogQk/FvUlEQVIKK01SS0VMQSBNSVJBCitNUktFTEEgVk9KSU4KK01SS0nEhiBCUkFOSVNMQVYKK01SS0nEhiBNSUxLQSBNUiBQSAorTVJLScSGIE5JS09MQQorTVJLScSGIFNNSUxKQQorTVJLT0pFVknEhiBLT1NUQQorTVJLT0pFVknEhiBNQVJJSkEKK01SS09OSkVWIERSQUdBTgorTVJLT05KScSGIMW9SVZPSklOCitNUktPVkHEjEtJIEpFTEVOQQorTVJLT1ZBxIxLSSBNSUxPxaAKK01SS09WQcSMS0kgTUlMT1ZBTgorTVJLT1ZJxIYgTUxBREVOCitNUktVxaBJxIYgTUlMSUNBCitNUktVxaBJxIYgTUlMSUNBCitNUktVxaBJxIYgUkFESVZPSgorTVJLVcWgScSGIFNURVZBTgorTVJNT8WgIE1JTEFOCitNUk5VxaBUSUsgU1RFVkFOCitNUlZJxIYgTkVERUxKS08KK01SVknEhiBTQVZBCitNUlZJxIYgU1RFVkFOCitNUlZJxIYgVlVLT01JUgorTVJWSUNBIFJVxb1JQ0EKK01SVk/FoCBKT1ZBTgorTVJWT8WgIE1JSEFJTE8KK01SVk/FoCBNSUxBTktBCitNVcSMQUxJQ0EgRFJBR09MSlVCCitNVcSMQUxPIFNMQVZJQ0EKK01VxIxBTE9WIFNMT0JPREFOCitNVcSMQUxPVknEhiBEVcWgS08KK01VxIxFTlNLSSBMSlVCT01JUgorTVXEjEVOU0tJIE5JS09MQQorTVXEjEVOU0tJIFZMQURJTUlSCitNVcSMSSDEkEVSxJAgRElQTCBJTkcKK01VxIxJIEFORFJBxaAKK01VxIxJIEZSQU5KQQorTVXEjEkgSUxPTkEKK01VxIxJIElMT05LQQorTVXEjEkgSk/FvUVGCitNVcSMSSBKT8W9RUYKK01VxIxJQkFCScSGIE1JUkpBTkEKK01VxIxJQkFCScSGIE5BVEFMSUpBCitNVcSMSUJBQknEhiBSQURPVkFOCitNVcSMSUJBQknEhiBSQURPVkFOCitNVcSMSUJBQknEhiBTQVZPCitNVcSMSUJBQknEhiBWRVJBCitNVcSMVSBKT1ZBTgorTVXEjFUgTklLT0xBCitNVcWgQU4gTUFSSUpBCitNVcWgScSGIEZSQU5KQQorTVXFoElDS0kgxIZJUkEKK01VxaBJQ0tJIMW9SVZBTgorTVXFoElDS0kgxb1JVkFOCitNVcWgSUNLSSDFvUlWQU4KK01VxaBJQ0tJIMSQT1LEkEUKK01VxaBJQ0tJIMSQT1LEkEUKK01VxaBJQ0tJIEJPR0RBTgorTVXFoElDS0kgQk9KQU5BCitNVcWgSUNLSSBCUkFOSVNMQVYKK01VxaBJQ0tJIEJSQU5LQQorTVXFoElDS0kgRE9ST1RFSkEKK01VxaBJQ0tJIERSQUdBTgorTVXFoElDS0kgRFJBR09TTEFWCitNVcWgSUNLSSBEVcWgQU4KK01VxaBJQ0tJIERVxaBBTgorTVXFoElDS0kgRFXFoEFOCitNVcWgSUNLSSBFVklDQQorTVXFoElDS0kgSk9WQU4KK01VxaBJQ0tJIExBWkFSCitNVcWgSUNLSSBNQVJJSkEKK01VxaBJQ0tJIE1JTEFOQQorTVXFoElDS0kgTUlMRU5LTworTVXFoElDS0kgTUlMSUNBCitNVcWgSUNLSSBNSUxJQ0EKK01VxaBJQ0tJIE1JTE9SQUQKK01VxaBJQ0tJIE5BVEHFoEEKK01VxaBJQ0tJIE5PVkFLCitNVcWgSUNLSSBQUk9LQQorTVXFoElDS0kgU0xBVktPCitNVcWgSUNLSSBTTEFWS08KK01VxaBJQ0tJIFNPRklKQQorTVXFoElDS0kgU1RFVkFOCitNVcWgSUNLSSBWRUxKS08KK01VxaBJS0nEhiBCT8W9SURBUgorTVXFoElLScSGIExKVUJJQ0EKK01VxaBJS0nEhiBSQURPTUlSCitNVcWgSUtJxIYgUkFUS08KK01VxaBLSU5KQSBCQVJJQ0EKK01VxaBLSU5KQSBNSVJLTworTVXFvUVLIFZJREEKK01Vxb1JSkVWScSGIFJJU1RPCitNVcW9SUsgQklMSkFOQQorTVXFvUlLIE1BVEEKK01Vxb1JS0EtVE9UIFpPTFRBTgorTVXFvUxBSSDFoEFORE9SCitNVUMgWkxBVE9NSVIKK01VQ0kgSkFOT8WgCitNVURSRU5JxIYgTUFSSUpBCitNVURSRU5JxIYgUkFESVNMQVYKK01VRFJJIEVVR0VOCitNVURSSSBKT0FLSU0KK01VRFJJIExKVUJJQ0EKK01VRFJJIE1JUk9TTEFWCitNVURSSSBQRVRBUgorTVVEUkkgUEVUQVIKK01VRFJJIFZFUkEgRFIgVkVURVJJTkUKK01VRFJJIFZMQURBCitNVURSSSBWTEFESU1JUgorTVVEUkkgVkxBRElNSVIKK01VRFJJxIYgxJBVUkEKK01VRFJJxIYgRFJBR09MSlVCCitNVURSScSGIExKVUJPTUlSIERJUEwgSU5HCitNVURSScSGIFBFVEFSCitNVURSScSGIFNMQVZLQQorTVVEUklOScSGIEJPxaBLTworTVVEUklOScSGIEJPxaBLTworTVVEUklOScSGIEJSQU5LTworTVVEUklOScSGIEdPSktPCitNVURSSU5JxIYgTUFKQQorTVVEUklOScSGIE1JSEFKTE8KK01VRFJJTknEhiBNSUxBTgorTVVEUklOScSGIE1JTEVWQQorTVVEUklOScSGIE1MQURFTgorTVVEUklOScSGIFBFVEFSIERSCitNVURSSU5JxIYgU0xBVktPCitNVURSSU5JxIYgU1BBU0VOS0EKK01VRFJJTknEhiBTVEVWTworTVVEUklOScSGIFNUT0pBTgorTVVEUklOScSGIFZMQURJTUlSCitNVURSSU5JxIYgVk9KSU4KK01VRFJJTlNLSSDEkE9SxJBFCitNVURSSU5TS0kgQUxFS1NBTkRBUgorTVVEUklOU0tJIEFMRUtTQU5EQVIKK01VRFJJTlNLSSBCT1JJU0xBVgorTVVEUklOU0tJIEJPU0lMSktBCitNVURSSU5TS0kgSVZBTktBCitNVURSSU5TS0kgTEFaQVIKK01VRFJJTlNLSSBNSUxBTgorTVVEUklOU0tJIE1JTEVUQQorTVVEUklOU0tJIE1JTE/FoAorTVVEUklOU0tJIE1JUk9TTEFWCitNVURSSU5TS0kgT0xHQQorTVVEUklOU0tJIFBFVEFSCitNVURSSU5TS0kgU0FWQQorTVVEUklOU0tJIFNPRklKQQorTVVEUklOU0tJIFNURVZBTgorTVVEUklOU0tJIFZPSklTTEFWCitNVUdPxaBBIE1JTE8KK01VSEEgWlVaQU5BCitNVUhBUkVNSSBGVUFECitNVUhBUkVNU0tJLUJFxIZJUk9WScSGIFJFTVpJSkEKK01VSEFSSSBMQUpPxaAKK01VSEkgQkVMQQorTVVKQU5PVknEhiBTQUZFVAorTVVKQU5PVknEhiBTTE9CT0RBTgorTVVKQU5PVknEhiBTVkVUTEFOQQorTVVKRVpJTk9WScSGIEFMTUFTCitNVUpFWklOT1ZJxIYgSVJFTkEKK01VSkVaSU5PVknEhiBaTEFUQU4KK01VSknEhiBNSUxBTgorTVVKS0FOT1ZJxIYgU0FMSUgKK01VSktJxIYgxaBFRklLCitNVUpLScSGIEhBSlJVRElOCitNVUpLScSGIElMRFVaQQorTVVKS0nEhiBJWlVESU4KK01VSktJxIYgSkFLVUIKK01VSktJxIYgTUVITUVECitNVUstU0FNQVJExb1JxIYgRU1BCitNVUxBSSBNQVRJSkEKK01VTEFKIEVTVElLQQorTVVMQUogS0FUSUNBCitNVUxJxIYgS0FUQVJJTkEKK01VTEnEhiBNSU9EUkFHCitNVUxJxIYgTUlST1NMQVYKK01VTEnEhiBQRVRBUgorTVVMScSGIFJBRE1JTE8KK01VTEnEhiBTVkVUSVNMQVYKK01VTEnEhiBWRUxKS08KK01VTEnEhiBaT1JBTgorTVVNRMW9ScSGIEhBWklSCitNVU1JTiBBTEVLU0FOREFSCitNVU1JTiBOSUtPTEEKK01VTUlOQUdJxIYgQUxJREEKK01VTUlOT1ZJxIYgQUxJTQorTVVNSU5PVknEhiBIQU1FRAorTVVNT1ZJxIYgQU5EUklKQQorTVVNT1ZJxIYgSk9WQQorTVVNT1ZJxIYgU0FWQQorTVVOxIZBTiDEkE9SxJBFCitNVU7EhkFOIMSQT1LEkEUKK01VTsSGQU4gxJBPUsSQRQorTVVOxIZBTiBBTEVLU0FOREFSCitNVU7EhkFOIEFOR0VMSU5BCitNVU7EhkFOIEJPxaBLTworTVVOxIZBTiBCT8WgS08KK01VTsSGQU4gRFJBR0FOCitNVU7EhkFOIERSQUdPTEpVQgorTVVOxIZBTiBEVcWgQU4KK01VTsSGQU4gSk9WQU4gRFIKK01VTsSGQU4gSk9WQU4KK01VTsSGQU4gTEFaQVIKK01VTsSGQU4gTEFaQQorTVVOxIZBTiBNSUxFTktPCitNVU7EhkFOIFJBRE9WQU4KK01VTsSGQU4gU0xBVktPCitNVU7EhkFOIFNPRklKQQorTVVOxIZBTiBUT0RPUgorTVVOxIZBTiBWQVNBCitNVU7EhkFOIFZFU0VMSU4KK01VTsSGQU4gVkxBRElNSVIKK01VTsSGQU4gWk9SQQorTVVORMW9ScSGIMW9SVZPSklOCitNVU5Exb1JxIYgQk9HREFOCitNVU5Exb1JxIYgTUlSSkFOQQorTVVORMW9ScSGIFBFVEFSCitNVU5ESU5HIEVURUxLQQorTVVOScWgScSGIEpPVkFOCitNVU5Jxb1BQkEgxJBPUsSQRSBESVBMIElORworTVVOScW9QUJBIEJSQU5JU0xBVgorTVVOScW9QUJBIEpPVkFOCitNVU5Jxb1BQkEgS0FUSUNBCitNVU5Jxb1BQkEgTEFaQVIKK01VTknFvUFCQSBNSUxFTktPCitNVU5Jxb1BQkEgVkVEUkFOQQorTVVOSVRMQUsgRFJBR0FOCitNVU5KQVMgQk/FvUlEQVIKK01VTkpBUyBETUlUQVIKK01VTkpBUyBNSUxBTgorTVVOSkFTIFNJTUtBCitNVU5KQVMgU1RBTkEKK01VTkpJTiDFvUlWS08KK01VTkpJTiBBTEVLU0FOREFSCitNVU5KSU4tQkFOScSGIE9MR0EgRElQTCBQUkFWTklLCitNVU5KSU4gS0FKSUNBCitNVU5KSU4gTEFaQVIKK01VTkpJTiBQRVRBUgorTVVOSklOIFNNSUxKQQorTVVOSklaQSDFvUVMSktPCitNVU5KSVpBIEpPVkFOS0EKK01VTksgxJBPUsSQRQorTVVOS0EgRFXFoEFOS0EKK01VTktBxIxJIE1JSEFKTE8KK01VTlRFQU4gSUxJSkEKK01VTlRFQU4gVE9ET1IKK01VTlpBUiBWRVJBCitNVVJBVEkgTUlMSkFaSU0KK01VUkFUSSBTVEFOQQorTVVSQVRPVknEhiBJQlJBSElNCitNVVJBVE9WScSGIEpPVk8KK01VUkFUT1ZJxIYgTUlLQQorTVVSQVRPVknEhiBSQURFTktPCitNVVJBVE9WScSGIFNBQlJJSkEKK01VUkdBxaBLSSBCUkFOS0EKK01VUkdBxaBLSSBEQU5JQ0EKK01VUkdBxaBLSSBET0JSRU4KK01VUkdBxaBLSSBEVcWgQU4KK01VUkdBxaBLSSBKT1ZBTgorTVVSR0HFoEtJIExKVUJJTktBCitNVVJHQcWgS0kgTUFUSUpBCitNVVJHQcWgS0kgTUlIQUpMTworTVVSR0HFoEtJIE1JTElDQQorTVVSR0HFoEtJIE1JTE/FoAorTVVSR0HFoEtJIE1JTE9SQUQKK01VUkdBxaBLSSBNSVJPU0xBVgorTVVSR0HFoEtJIE5FTkFECitNVVJHQcWgS0kgTk9WQUsKK01VUkdBxaBLSSBQRVRBUgorTVVSR0HFoEtJIFNBVkEKK01VUkdBxaBLSSBTRVZFUgorTVVSR0HFoEtJIFNMT0JPREFOIERSCitNVVJHQcWgS0kgU1ZFVE9aQVIKK01VUkdBxaBLSSBWVUtPU0FWQQorTVVSR1VMIExKVUJPTUlSCitNVVJHVUxPVknEhiBNT01JUgorTVVSScSGIFNMQVZLTworTVVSScSGIFNURVZBTgorTVVSScSGIFZFTEpLTworTVVSSU5KSSBKT1NJUAorTVVSSU5KSSBLQVRJQ0EKK01VUklOSkkgTUlMRVZBCitNVVJJTkpJIFNUT0pBTktBCitNVVJQSFUgTUlSSkFOQQorTVVSU0VMSSBNSVLEjEUKK01VUlNFTEkgTkVaSVIKK01VUlNFTE9WScSGIE5BWklGCitNVVJTRUxPVknEhiBSQUlGCitNVVNBIElWQU5LQQorTVVTQSBKRUxJQ0EKK01VU0FGSUpBIEJMQU5LQQorTVVTScSGIMWgQUJBTklKQQorTVVTScSGIMWgRU1TQQorTVVTScSGIEtBVElDQQorTVVTScSGIE1JUktPCitNVVNJxIYgUkFET0pLQQorTVVTScSGIFpPUkFOCitNVVNJTiBLQUxNQU4KK01VU09WU0tJIElTQQorTVVTVEFGScSGIEJSQU5LQQorTVVTVEFGScSGIEhBUklaCitNVVNUQUZJxIYgTUlMSUNBCitNVVNUQUZJxIYgU0VEQVQKK01VU1RBRk9TS0kgQkVEUklKQQorTVVTVEVEQU5BR0nEhiBFU0FECitNVVNVTElOIEdPUktJCitNVVNVTElOIE1JTE9SQUQKK01VU1VMSU4gU0xBVktPCitNVVRBQkTFvUlKQSBNSUxPVkFOCitNVVRBVsSMSUVWIElWQU4KK01VVEFWRMW9ScSGLUdJT04gTUFSSUpBCitNVVRBVkTFvUnEhiBNSUxBTgorTVVUQVZExb1JxIYgTUlMQU4KK01VVEFWRMW9ScSGIE1JTE/FoAorTVVUQVZExb1JxIYgUkFUS08KK01VVEFWRMW9ScSGIFRPTUlTTEFWCitNVVRBVkTFvUnEhiBWRUxKS08KK01VVEFWRMW9ScSGIFpMQVRBCitNVVRBVkTFvUlKQSBNSVJKQU5BCitNVVRJxIYgxb1JVktPCitNVVRJxIYgQlJBTktPCitNVVRJxIYgRFXFoEFOCitNVVRJxIYgRFXFoEFOCitNVVRJxIYgRFXFoEFOCitNVVRJxIYgRFXFoElDQQorTVVUScSGIEtBTUVOS08KK01VVEnEhiBMSklMSkFOQQorTVVUScSGIFJBRE9TTEFWCitNVVRJxIYgU01JTEpBCitNVVRJQkFSScSGIEFMRUtTQU5EQVIgRFIKK01VVElCQVJJxIYgQUxFS1NBTkRBUgorTVVUSUJBUknEhiBEUkFHT0xKVUIKK01VVElCQVJJxIYgSVJFTkEKK01VVElCQVJJxIYgTElCVcWgQQorTVVUSUJBUknEhiBNSUxBTgorTVVUSUJBUknEhiBNSUxFCitNVVRJQkFSScSGIE5BVEHFoEEKK01VVElCQVJJxIYgU1RFVkFOCitNVVRJQkFSScSGIFRPRE9SCitNVVRJTiDEkE9SxJBFCitNVVRJTiBFTUlMCitNVVRJTiBaRFJBVktPCitNVVpBTEVWU0tJIEFMRUtTQU5EQVIKK01VWkVLQSBNQVJJSkFOQQorTVVaRVIgRlJBTkpBCitNVVpFUiBNSVJPU0xBVgorTVVaRVIgUkFET1NMQVYKK01VWklLUkFWScSGIEJMQcW9TworTVVaSUtSQVZJxIYgTEpVQk9NSVIgRFIKK05BxIwgQU5EUklKQQorTkHEjEEgSkFOT8WgCitOQcSMQSBKT1NJUAorTkHEjEEgT1RJTElKQQorTkHFoElHQcSGSU4gTUlMRU5LTworTkHEhlVLIEFMRUtTQU5EQVIKK05BxIZVSyBJUklOQQorTkHEkCDEjE9OR09SCitOQcSQIMSMT05HT1IKK05BxJAgxaBBTkRPUgorTkHEkCDFoEFORE9SCitOQcSQIMSQRVLEkAorTkHEkC1BQk9OSkkgR0FCT1IKK05BxJAgQUxFS1NBTkRBUgorTkHEkCBBTkEKK05BxJAgQU5HRUxBCitOQcSQIEJBUkJBUkEKK05BxJAgQkVMQQorTkHEkCBCUkFOS0EKK05BxJAgREXFvUUKK05BxJAtRE9ST1RJxIYgTUFSSUpBCitOQcSQIERSQUdJU0xBVgorTkHEkCBEVcWgQU5LQQorTkHEkCBFUsW9RUJFVAorTkHEkCBFVEVMCitOQcSQIEVVRkVNSUpBCitOQcSQIEZFUkVOQworTkHEkCBGRVJFTkMKK05BxJAgRkVSRU5DCitOQcSQIEZFUkVOQworTkHEkCBGRVJFTkMKK05BxJAtRk9SS0HFoCBLQVRJQ0EKK05BxJAgRlJBTkpBCitOQcSQIEZSQU5KQQorTkHEkCBGUkFOSkEKK05BxJAgR0VPUkdJTkEKK05BxJAgR0laRUxBCitOQcSQLUhFVkXFoEkgTEFTTE8KK05BxJAgScWgVFZBTgorTkHEkCBJxaBUVkFOCitOQcSQIElMT05BCitOQcSQIElNUkUKK05BxJAgSVJJTkEKK05BxJAgSVZBTgorTkHEkCBKQU5PxaAKK05BxJAgSkFOT8WgCitOQcSQIEpPxb1FRgorTkHEkCBKT8W9RUYKK05BxJAgSk/FvUVGCitOQcSQIEpPxb1FRgorTkHEkCBKT1NJUAorTkHEkCBKT1NJUAorTkHEkCBKT1NJUAorTkHEkCBKT1NJUAorTkHEkCBKT1NJUAorTkHEkCBKT1NJUAorTkHEkCBKT1ZBTktBCitOQcSQIEpPVkFOCitOQcSQIEtBUkxPCitOQcSQIEtBUk9MSgorTkHEkCBLQVJPTEoKK05BxJAgS0FUQVJJTkEKK05BxJAgTEFESVNMQVYKK05BxJAgTEFKT8WgCitOQcSQIExBSk/FoAorTkHEkCBMQVNMTyBESVBMIElORworTkHEkCBMQVNMTworTkHEkCBMQVNMTworTkHEkCBMQVNMTworTkHEkCBMQVNMTworTkHEkCBMQVNMTworTkHEkCBMRU9OQQorTkHEkCBMRU9OQQorTkHEkCBMSlVCSUNBCitOQcSQIE1BUkdBUkVUQQorTkHEkCBNQVJJSkEKK05BxJAgTUFSSUpBCitOQcSQIE1BUlRPTgorTkHEkC1NRUxKS1VUSSBFRElUCitOQcSQIE1JSEFKTE8KK05BxJAgTUlIQUxKCitOQcSQIE1JUkEKK05BxJAgTUlSQQorTkHEkCBNSVJBCitOQcSQIE1JUkpBTkEKK05BxJAgTkFORE9SCitOQcSQIE5BTkRPUgorTkHEkCBORVZFTktBCitOQcSQIE5JS09MQQorTkHEkCBOT1ZJQ0EKK05BxJAgT1RPCitOQcSQIE9UTworTkHEkCBQQVZMRQorTkHEkCBQQVZMRQorTkHEkCBQRVRBUgorTkHEkCBQRVRBUgorTkHEkCBQRVRBUgorTkHEkCBQRVRFUgorTkHEkCBQSVJPxaBLQQorTkHEkCBQSVJPxaBLQQorTkHEkC1QT1BPViBDRUNJTElKQQorTkHEkCBST1pBCitOQcSQIFNMQVZLTworTkHEkCBTVEVWQU4KK05BxJAgU1RFVkFOCitOQcSQIFNWSkFUT1NMQVYKK05BxJAtVEFOQVNLT1ZJxIYgSlVMSUpBCitOQcSQIFRJQk9SCitOQcSQIFZBU0lMSUpFCitOQcSQIFZFUk9OQQorTkHEkCBWSUtUT1JJSkEKK05BxJAgVkxBRElNSVIKK05BxJAgVkxBRElNSVIKK05BxJAgVkxBRElNSVIKK05BxJAgVkxBRElNSVIKK05BxJAgWkxBVElNSVIKK05BxJAgWk9MVEFOCitOQcSQQUxJTiBCUkFOS08KK05BxJBBTElOIElTQQorTkHEkEJBQkkgRkVSRU5DCitOQcSQQkFCSSBGRVJFTkMKK05BxJBCQUJJIElHT1IKK05BxJBCQUJJIElWS0EKK05BxJBCQUJJIEpBTklLQQorTkHEkEVSxJAgSUxPTktBCitOQcSQR0VMRVJUIEpBTk/FoAorTkHEkEhFxJBFxaBJIEZSQU5KQQorTkHEkEhFxJBFxaBJIEpPVkFOCitOQcSQSEXEkEXFoEkgTEFESVNMQVYKK05BxJBJREFJIEtBUk9MSgorTkHEkE1FTEpLVVRJIEtMQVJBCitOQcSQTUnEhk8gVkVTRUxJTkEKK05BxJBPUsSQIFNBxaBBCitOQcSQUEFMIElSRU5LQQorTkHEkFZJTlNLSSBLU0VOSUpBCitOQcSQVklOU0tJIFBFVEFSCitOQUNFViBHUlVKTworTkFEQcWgS0kgTEFaQVIKK05BREHFoEtJIE1JTElWT0oKK05BREHFoEtJIE1JUk9TTEFWCitOQURBxaBLScSGIEtBVElDQQorTkFEQcW9REkgUlXFvUlDQQorTkFEQVJFVknEhiBCT1JJUworTkFEQkFOREnEhiBTVkVUSVNMQVYgRElQTCBJTkcKK05BREJBTlRJxIYgTkFEQQorTkFESUggRlJJRFJJSAorTkFESUggTUlSS08KK05BRExBxIxLSSBBTEVLU0FOREFSCitOQURMQcSMS0kgTUlMT0pFCitOQURMQcSMS0kgUkFESVZPSgorTkFETEHEjEtJIFJBRE9WQU4KK05BRExBxIxLSSBTVEVWS0EKK05BRExVS0HEjCBNQVJJSkEKK05BRFJMSkFOU0tJIMSQT1LEkEUKK05BRFJMSkFOU0tJIERBTklMS0EKK05BRFJMSkFOU0tJIExKSUxKQU5BCitOQURSTEpBTlNLSSBMSlVCScWgQQorTkFEUkxKQU5TS0kgTUlMSVZPSgorTkFEUkxKQU5TS0kgU0xPQk9EQU4KK05BRFJMSkFOU0tJIFNURVZBTgorTkFFUkFDIFNMT0JPREFOCitOQUdMScSGIFNMQVZLTworTkFHUkFEScSGIEpFTEVOQQorTkFHUkFEScSGIExKVUJJQ0EKK05BSExPVlNLSSBKT8W9RUYKK05BSkJBVUVSIElWQU4KK05BSkRBTk9WIEdFT1JHSQorTkFKREFOT1YgSVZBTgorTkFKREVLIFZJTktPCitOQUpET1ZTS0kgVE9NSVNMQVYKK05BSkRPVlNLSSBUT01JU0xBVgorTkFKScSGIEFOS0lDQQorTkFKScSGIE1JTEVOS08KK05BSknEhiBaT1JJQ0EKK05BSlZJUlQgR09URlJJRAorTkFKVklSVCBKT1ZBTgorTkFLQVJBREEgREFSSU5LQQorTkFLQVJBREnEhiBMSlVCTworTkFLScSGIERSQUdBTgorTkFLScSGIElWQU4KK05BS0nEhiBKQU5KQQorTkFLScSGIExKVUJJTktBCitOQUtJxIYgUkFET1ZBTgorTkFLScSGIFNURVZBTgorTkFLT03EjEnEhiBaT1JLQQorTkFLT1YgSk9SREFOCitOQUxJxIYgRFJBR0lDQQorTkFMScSGIEVOSVNBCitOQU1FU05JSyBPTEdBCitOQU1MScSQSSBGRVJJREEKK05BTkHFoEkgxb1PTFQKK05BTkHFoEkgQUdBVEEKK05BTkHFoEkgSlVMSUpBTkEKK05BTknEhiDEkE9LQQorTkFOT1ZTS0kgVkxBRElNSVIKK05BTk9WU0tJSiBBTEVLU0FOREFSCitOQU9ET1ZJxIYgUEFWTEUKK05BUkFJIEZFUkVOQworTkFSQU7EjEnEhiBJTE9OS0EKK05BUkFOxIxJxIYgTUlMRQorTkFSQU7EjEnEhiBNSUxFCitOQVJBTsSMScSGIE1JTE9SQUQKK05BUkFOxIxJxIYgTkFEQQorTkFSQU7EjEnEhiBQRVRBUgorTkFSQU7EjEnEhiBQRVRBUgorTkFSQU7EjEnEhiBQRVRBUgorTkFSQU7EjEnEhiBQRVRBUgorTkFSQU7EjEnEhiBTQVZBCitOQVJBTsSMScSGIFNURVZBTgorTkFSQU7EjEnEhiBTVEVWQU4KK05BUkFOxIxJxIYgU1VaQU5BCitOQVJBTsSMScSGIFZMQURJTUlSCitOQVJBTkTFvUnEhiBEQVJLTworTkFSQU5Exb1JxIYgRVZBCitOQVJBTkTFvUnEhiBNSUxBTgorTkFSQU5Exb1JxIYgTUlSSkFOQQorTkFSQU5Exb1JxIYgVkVSQQorTkFSScSGIE5FREVMSktPCitOQVMgxJBFUsSQCitOQVMgRkVSRU5DCitOQVMgRlJBTkpBCitOQVMgS0FSTE8KK05BU0tPVknEhiBCTEHFvUEKK05BU0tPVknEhiBaT1JLQQorTkFTT1YgTUlMSVZPSgorTkFTVEFTScSGIERSQUdBTgorTkFTVEFTScSGIElWQU4KK05BU1RBU0nEhiBKRUxFTkEKK05BU1RBU0nEhiBMSklMSkFOQQorTkFTVEFTScSGIFBBVkxFCitOQVNUQVNJxIYgUkFET1NMQVYKK05BU1RBU0nEhiBTVEVWQU4gRFIgTEVLQVIKK05BU1RBU0nEhiBUQVRKQU5BCitOQVNUQVNJxIYgVEVPRE9SCitOQVNUQVNJSkVWScSGIE1JUk9TTEFWCitOQVNUQVNPVknEhiBNTEFERU4KK05BU1RBU09WScSGIFRPTsSMQQorTkFTVEVWScSGIFRPRE9SCitOQVNUScSGIElSRU5BCitOQVNUScSGIExFUE9TQVZBCitOQVNUScSGIE1JSEFJTE8KK05BU1RJxIYgTUlMRU5BCitOQVNUScSGIE1JTElDQQorTkFTVEnEhiBNSVJKQU5BCitOQVNUScSGIE5JS09MRVRBCitOQVNUScSGIE9MR0EKK05BU1RJxIYgUkFERQorTkFTVEnEhiBSQURJU0FWCitOQVNUScSGIFJBRE9NSVIKK05BU1RJxIYgUkFUT01JUgorTkFTVEnEhiBTVkVUT1pBUgorTkFTVEnEhiBWTEFEQQorTkFTVEnEhiBaT1JBTiBEUiBMRUtBUgorTkFTVE9WIEtJUk8KK05BU1RPVlNLSSBEUkFHTworTkFUT8WgRVZJxIYgREVKQU4KK05BVU1PViDEkE9SxJBFCitOQVVNT1YgQlJBTktBCitOQVVNT1YgRFJBR09MSlVCCitOQVVNT1YgS0FUQVJJTkEKK05BVU1PViBLQVRBUklOQQorTkFVTU9WIE1JTEVOQQorTkFVTU9WIE1JTElWT0oKK05BVU1PViBTVEVWQU4KK05BVU1PVknEhiBKRUxJQ0EKK05BVU1PVknEhiBNSUxJVk9KIERSCitOQVVNT1ZJxIYgTklLT0xBCitOQVVNT1ZJxIYgU0xPQk9EQU4KK05BVU1PVlNLSSBNSVJLTworTkFVTU9WU0tJIE5JS09MQQorTkFVTU9WU0tJIFNPTkpBCitOQVVNT1ZTS0kgU1RPSkFOCitOQVVNT1ZTS0kgVEFOQVMKK05BVU5LT1ZJxIYgQk9HREFOS0EKK05BVU5LT1ZJxIYgU0lOScWgQQorTkFWQUxBIE5JS09MQQorTkFWQUxVxaBJxIYgSlVMSUpBTkEKK05BVkFMVcWgScSGIFZPSklOCitOQVZSQVRJTCDEkFVSQQorTkFWUkFUSUwgSk9TSVAKK05BVlJBVElMIEpPU0lQCitOQVZSQVRJTCBTTE9CT0RBTgorTkFWUkFUSUwgWkRFTktPCitOQVZSQVRJTCBaT1JBTgorTkFaRFJBVkVDS0kgQU5EUkHFoAorTkXEjE9WU0tJIERJTUlUUklKRQorTkXFoEVWScSGIEFOxJBFTEtBCitORcWgRVZJxIYgQU7EkEVMS08KK05FxaBJxIYgQUNBCitORcWgScSGIEFMRUtTQU5EQVIKK05FxaBJxIYgQUxFS1NBTkRBUgorTkXFoEnEhiBCT8W9SURBUgorTkXFoEnEhiBCUkFOSVNMQVYgRFIKK05FxaBJxIYgQlJBTklTTEFWCitORcWgScSGIERJTUlUUklKRQorTkXFoEnEhiBEVcWgQU4KK05FxaBJxIYgSkVGVEEKK05FxaBJxIYgSk9WQU4KK05FxaBJxIYgSk9WQU4KK05FxaBJxIYgSk9WQU4KK05FxaBJxIYgSk9WQU4KK05FxaBJxIYgS09TQU5BCitORcWgScSGIExFTktBCitORcWgScSGIExFT05JRAorTkXFoEnEhiBMSklMSkFOQQorTkXFoEnEhiBNQVJKQU4KK05FxaBJxIYgTUlMQU4KK05FxaBJxIYgTUlMQU4KK05FxaBJxIYgTUlMQU4KK05FxaBJxIYgTUlMRU5LTworTkXFoEnEhiBNSUxJQ0EKK05FxaBJxIYgTUlMSVZPSgorTkXFoEnEhiBNSUxLQQorTkXFoEnEhiBNSUxPUkFECitORcWgScSGIE1JUkEKK05FxaBJxIYgTUlSS08KK05FxaBJxIYgTUlST1NMQVZBCitORcWgScSGIE1MQURFTgorTkXFoEnEhiBNTEFERU4KK05FxaBJxIYgTkVERUxKS08KK05FxaBJxIYgUEVUQVIKK05FxaBJxIYgUkFESVNBVgorTkXFoEnEhiBTQVZFVEEKK05FxaBJxIYgU0lNRU9OCitORcWgScSGIFNMQVZLTworTkXFoEnEhiBTTEFWT0pLQQorTkXFoEnEhiBUT0RPUgorTkXFoEnEhiBWTEFESU1JUgorTkXFoElOIMW9QVJLTworTkXFoElOIEpPVkFOQQorTkXFoElOIEpPVkFOCitORcWgSU4gTUFSS08KK05FxaBJTiBTVEVWQU4KK05FxaBLT1YgRFJBR09TTEFWIERSCitORcWgS09WIFNUQU5JU0xBVgorTkXFoEtPViBWT0pJU0xBVgorTkXFoEtPVknEhiDEkFVSxJBBCitORcWgS09WScSGIEFMRUtTQU5EQVIKK05FxaBLT1ZJxIYgRFJBR0FOCitORcWgS09WScSGIElSRU5BCitORcWgS09WScSGIEpFTEVOQQorTkXFoEtPVknEhiBMSlVCScWgQQorTkXFoEtPVknEhiBNSUhBSUxPCitORcWgS09WScSGIE1JTEFOCitORcWgS09WScSGIE1JTElKQU4KK05FxaBLT1ZJxIYgTUlMSVNBVgorTkXFoEtPVknEhiBNSUxJVk9KRQorTkXFoEtPVknEhiBNSUxLQQorTkXFoEtPVknEhiBNSUxPVkFOCitORcWgS09WScSGIE1JVEEKK05FxaBLT1ZJxIYgTkXFoEtPCitORcWgS09WScSGIFBFUklDQQorTkXFoEtPVknEhiBQRVRBUgorTkXFoEtPVknEhiBSQURJU0FWCitORcWgS09WScSGIFJBRE9NSVIKK05FxaBLT1ZJxIYgUkFET05KQQorTkXFoEtPVknEhiBSRUpNT05ECitORcWgS09WScSGIFJVxb1JQ0EKK05FxaBLT1ZJxIYgU1RFVkFOCitORcWgS09WScSGLVpEUkFWScSGIFZFUklDQQorTkXFoE9WScSGIERFU0FOS0EKK05FxaBPVknEhiBEUkFHQU4gRElQTCBJTkcKK05FxaBPVknEhiBEUkFHQU5BCitORcWgT1ZJxIYgRFJBR0FOCitORcWgT1ZJxIYgSVZBTktBCitORcWgT1ZJxIYgTUlMT1ZBTgorTkXFoE9WScSGIFBSRURSQUcKK05FxaBPVknEhiBSQURPTUlSCitORcWgT1ZJxIYgUlXFvUlDQQorTkXFoE9WScSGIFRSSVZLQQorTkXFoFRJQ0tJIEpPU0lQCitORcWgVElDS0kgSk9TSVAKK05FxaBUSUNLSSBNSUxJQ0EKK05FxaBUSUNLSSBTVEVWQU4KK05FxIZBSyDEkE9SxJBFCitORcSGQUsgQUxFS1NBTkRBUgorTkXEhkFLIEJSQU5LTworTkXEhkFLLUtPUkHEhiBBTsSQRUxLQQorTkXEhkFLIFNURVZBTgorTkXEhkFLIFZFUkEKK05FxIZBSyBaRFJBVktPCitORcSGQUtPViBNQVJJSkEKK05FxIZBS09WIE1JTEFOCitORcSGQUtPViBNSUxLQQorTkXEhkFLT1YgU0lNQQorTkXEhkFLT1YgU0xPQk9EQU4KK05Fxb1JxIYgREFNSVIKK05FQVROSUNBIERVxaBBTgorTkVBVE5JQ0EgUkFESVZPSiBESVBMIElORworTkVCRVNOSSBCT1JJUworTkVCT0rFoEEgU09GSUpBCitORUJSSUdJxIYgSk9WSUNBCitORUJSSUdJxIYgUkFUS08KK05FQ0VWIERSQUdPTEpVQgorTkVDScSGIERSQUdPTEpVQgorTkVDScSGIFRPxaBBCitORUNJTiDFvUlWSUNBCitORUNJTiBTVEVWQQorTkVDSU4gVk9KQQorTkVDSU4gWkxBVE9NSVIKK05FQ0tPViBEUkFHSU5KQQorTkVDS09WIEdPUkFOCitORUNLT1YgS0FUSUNBCitORUNLT1YgTEFaQVIKK05FQ0tPViBMT1pJTktBCitORUNLT1YgTUFSSUpBCitORUNLT1YgTUlSSkFOQQorTkVDS09WIE1PTcSMSUxPCitORUNLT1YgTklLT0xBCitORURFTEpLT1Ygxb1JVktPCitORURFTEpLT1Ygxb1JVktPCitORURFTEpLT1YgxJBPUsSQRQorTkVERUxKS09WIMSQT1LEkEUKK05FREVMSktPViDEkE9SxJBFCitORURFTEpLT1YgQU7EkEVMS0EKK05FREVMSktPViBBTktBCitORURFTEpLT1YgREVTQU5LQQorTkVERUxKS09WIERSQUdBTgorTkVERUxKS09WIERSQUdJTkpBCitORURFTEpLT1YgRFXFoEFOCitORURFTEpLT1YgSUxJSkEKK05FREVMSktPViBJUkVOQQorTkVERUxKS09WIElWQU4KK05FREVMSktPViBKRUxFTkEKK05FREVMSktPViBKT1ZBTgorTkVERUxKS09WIEpPVkFOCitORURFTEpLT1YgSlVMSUpBTkEKK05FREVMSktPViBLQVRJQ0EKK05FREVMSktPViBLUlNUQQorTkVERUxKS09WIExBWkFSIERJUEwgSU5HCitORURFTEpLT1YgTElOQQorTkVERUxKS09WIExKSUxKQU5BCitORURFTEpLT1YgTEpVQklDQQorTkVERUxKS09WIExKVUJJQ0EKK05FREVMSktPViBNQVJJSkEKK05FREVMSktPViBNQVJJSkEKK05FREVMSktPViBNQVJLTworTkVERUxKS09WIE1JTEFOCitORURFTEpLT1YgTUlMQU4KK05FREVMSktPViBNSUxJVk9KCitORURFTEpLT1YgTUlMT8WgCitORURFTEpLT1YgTUlSSkFOQQorTkVERUxKS09WIE1JUktPCitORURFTEpLT1YgTUlST1NMQVZBCitORURFTEpLT1YgTUlUQQorTkVERUxKS09WIE9MR0EKK05FREVMSktPViBPTEdBCitORURFTEpLT1YgUkFERQorTkVERUxKS09WIFJBRElWT0oKK05FREVMSktPViBSQURPSktBCitORURFTEpLT1YgUkFET01JUgorTkVERUxKS09WIFNJTknFoEEKK05FREVMSktPViBTVEVWQU4KK05FREVMSktPViBURU9ET1JBCitORURFTEpLT1YgVE9NSVNMQVYKK05FREVMSktPViBWSU5LQQorTkVERUxKS09WIFZPSklTTEFWCitORURFTEpLT1ZJxIYgxb1JVktPCitORURFTEpLT1ZJxIYgxb1JVktPCitORURFTEpLT1ZJxIYgxb1JVktPCitORURFTEpLT1ZJxIYgxb1JVk9KSU4KK05FREVMSktPVknEhiDEkE9SxJBFCitORURFTEpLT1ZJxIYgxJBPUsSQRQorTkVERUxKS09WScSGIEFMRUtTQU5EQVIKK05FREVMSktPVknEhiBBTEVLU0FOREFSCitORURFTEpLT1ZJxIYgQU5EUklKQQorTkVERUxKS09WScSGIEJPR09NSVIKK05FREVMSktPVknEhiBCT1JJU0xBViBESVBMIElORworTkVERUxKS09WScSGIEJPUktBCitORURFTEpLT1ZJxIYgQk9TSUxKS0EKK05FREVMSktPVknEhiBEQVJJTktBCitORURFTEpLT1ZJxIYgRE9CUklMQQorTkVERUxKS09WScSGIERPQlJJTktBCitORURFTEpLT1ZJxIYgRFJBR0FOCitORURFTEpLT1ZJxIYgSkFEUkFOS0EKK05FREVMSktPVknEhiBKRUxFTkEKK05FREVMSktPVknEhiBKT1JEQU4KK05FREVMSktPVknEhiBKT1ZBTgorTkVERUxKS09WScSGIEpPVkFOCitORURFTEpLT1ZJxIYgSlVHT1NMQVYKK05FREVMSktPVknEhiBKVUxLSUNBCitORURFTEpLT1ZJxIYgSlVTVEEKK05FREVMSktPVknEhiBMRVBPU0FWQQorTkVERUxKS09WScSGIExKVUJPTUlSCitORURFTEpLT1ZJxIYgTUFSS08KK05FREVMSktPVknEhiBNSUxBTgorTkVERUxKS09WScSGIE1JTEFOCitORURFTEpLT1ZJxIYgTUlMQU4KK05FREVMSktPVknEhiBNSUxFTktPCitORURFTEpLT1ZJxIYgTUlMSUpBCitORURFTEpLT1ZJxIYgTUlMSVNBVgorTkVERUxKS09WScSGIE1JTE9KS0EKK05FREVMSktPVknEhiBNSUxPSktBCitORURFTEpLT1ZJxIYgTUlMVVRJTgorTkVERUxKS09WScSGIE1JUkpBTkEKK05FREVMSktPVknEhiBNSVJPU0xBVgorTkVERUxKS09WScSGIE1JUk9TTEFWCitORURFTEpLT1ZJxIYgTkVCT0rFoEEKK05FREVMSktPVknEhiBOSUtPTEEKK05FREVMSktPVknEhiBQQVZBCitORURFTEpLT1ZJxIYgUkFET0pJQ0EKK05FREVMSktPVknEhiBSQURPTUlSCitORURFTEpLT1ZJxIYgUkFET1ZBTgorTkVERUxKS09WScSGIFNJTUEKK05FREVMSktPVknEhiBTSU1BCitORURFTEpLT1ZJxIYgU0xBVktPCitORURFTEpLT1ZJxIYgU0xPQk9EQU5LQQorTkVERUxKS09WScSGIFNMT0JPREFOS0EKK05FREVMSktPVknEhiBTTE9CT0RBTgorTkVERUxKS09WScSGIFNPRklKQQorTkVERUxKS09WScSGIFNSRVRBCitORURFTEpLT1ZJxIYgU1RBTklNSVIKK05FREVMSktPVknEhiBTVEVWQU4KK05FREVMSktPVknEhiBTVEVWQU4KK05FREVMSktPVknEhiBTVEVWQU4KK05FREVMSktPVknEhiBTVkVUSVNMQVYKK05FREVMSktPVknEhiBTVkVUSVNMQVYKK05FREVMSktPVknEhiBTVkVUT1pBUgorTkVERUxKS09WScSGIFZFUkEKK05FREVMSktPVknEhiBWRVJJQ0EKK05FREVMSktPVknEhiBWTEFESVNMQVYgRFIKK05FREVMSktPVknEhiBWT0pJU0xBVgorTkVERUxKS09WScSGIFZVxIxLTworTkVERUxKS09WScSGIFpBR09SS0EKK05FREVMSktPVknEhiBaTEFUQQorTkVEScSGIMWgUElSTworTkVEScSGIEJJTEpBTkEKK05FREnEhiBCT1JJU0xBVgorTkVEScSGIEJPUkpBTktBCitORURJxIYgREFSSU5LQQorTkVEScSGIERFU0FOS0EgUFJPRkVTT1IKK05FREnEhiBEUkFHT1NMQVYKK05FREnEhiBKRUxFTkEKK05FREnEhiBKRUxJU0FWRVRBCitORURJxIYgSk9WQU4gRElQTCBJTkcKK05FREnEhiBKT1ZBTgorTkVEScSGIEtBVElDQQorTkVEScSGIEtBVElDQQorTkVEScSGIExBWkFSCitORURJxIYgTEFaQVIKK05FREnEhiBMQVpBUgorTkVEScSGIExBWkFSCitORURJxIYgTEpVQklDQQorTkVEScSGIE1FTEFOSUpBCitORURJxIYgTUlMQU4KK05FREnEhiBNSUxBTgorTkVEScSGIE1JTEFOCitORURJxIYgTUlMRU5LTworTkVEScSGIE1JTE/FoAorTkVEScSGIE1JTE9KRQorTkVEScSGIE1JTE9WQU4KK05FREnEhiBNSVJPU0xBVgorTkVEScSGIE1MQURFTgorTkVEScSGIE5FTkFECitORURJxIYgTklLT0xBCitORURJxIYgUEVUQVIKK05FREnEhiBSQURPxaAKK05FREnEhiBSQURPTUlSCitORURJxIYgUkFET1NMQVYKK05FREnEhiBSQURPU0xBVgorTkVEScSGIFNBVkEKK05FREnEhiBTTUlMSkEKK05FREnEhiBTTkXFvUFOQQorTkVEScSGLVNSRU1BQyBOQURBCitORURJxIYgU1RFVkFOCitORURJxIYgVkVSQQorTkVEScSGIFZJREEKK05FREnEhiBWTEFESU1JUgorTkVEScSGIFpMQVRPSkUKK05FREnEhiBaT1JBTgorTkVESU1PVknEhiBCT8W9TworTkVESU1PVknEhiBEUkFHQU4KK05FRElNT1ZJxIYgR09SREFOQQorTkVESU5JxIYgU1JFVEVOCitORURJTknEhiBaT1JBTgorTkVET01BxIxLSSBNSUxBTgorTkVET01BxIxLSSBTVEVWQU4KK05FRE9WScSGIEFOS0lDQQorTkVET1ZJxIYgTUlSTworTkVET1ZJxIYgTUlSTworTkVET1ZJxIYgVkxBRE8KK05FRFXEjEnEhiBTVkVUT1pBUgorTkVEVcSMSU4gQUxFS1NBTkRBUgorTkVEVcSMSU4gRFJBR0lDQQorTkVEVcSMSU4gTEFaQVIgRElQTCBJTkcKK05FRFXEjElOIE1JTEVOQQorTkVEVklERUsgQk9SSVMgRFIKK05FR0xJxIYgxJBPUsSQRQorTkVHTEnEhiBLQVRJQ0EKK05FR09WQU5PVknEhiDFvUlWS08KK05FR09WQU5PVknEhiBCUkFOS08KK05FR09WQU5PVknEhiBMQVpBUgorTkVHUlUgQklTRVJLQQorTkVHVcWgRVZJxIYgUEFKQQorTkVKR0VCQVVFUiBBTEVLU0FOREFSIERSIFBST0YKK05FTcSMQU5JTiDEkFVSxJBJQ0EKK05FTcSMQU5JTiBNQVJJSkEKK05FTcSMQU5JTiBNSVJKQU5BCitORU3EjEVWIEJPUklWT0oKK05FTcSMRVYgRFXFoEtPCitORU3EjEVWIEpFTEVOQQorTkVNxIxFViBOSUtPTEEKK05FTcSMRVYgU1JCSU5LTworTkVNxIxFVknEhiBNQVJLTworTkVNxIxFVknEhiBQRVRBUgorTkVNQSBWQUxFUklKQQorTkVNRcSMRUsgUk/FvUEKK05FTUXFoCBKRUxBCitORU1FxaAgU0xPQk9EQU5LQQorTkVNRUMgQU5UVU4KK05FTUVDIEFOVFVOCitORU1FQyBFTUFOVUVMCitORU1FQyBMSlVETUlMQQorTkVNRVQgxaBBTkRPUgorTkVNRVQgQU5EUklKQQorTkVNRVQgQU5UQUwKK05FTUVUIEFOVEFMCitORU1FVCBBTlRBTAorTkVNRVQgQVJQQUQKK05FTUVUIEJPUklTTEFWS0EKK05FTUVUIERFxb1FCitORU1FVCBERUpBTgorTkVNRVQgRVJORVNUCitORU1FVCBHRVJHRUxKCitORU1FVCBHRVpBIERSCitORU1FVCBHRVpBCitORU1FVCBJxaBUVkFOCitORU1FVCBJxaBUVkFOCitORU1FVCBJxaBUVkFOCitORU1FVCBJTE9OQQorTkVNRVQgSUxPTkEKK05FTUVUIElMT05LQQorTkVNRVQgSlVMSUpBTkEKK05FTUVUIEtBUkxPCitORU1FVCBLQVJMTworTkVNRVQgS0FUSUNBCitORU1FVCBMQUpPxaAKK05FTUVUIExBU0xPCitORU1FVCBMQVNMTworTkVNRVQgTEpJTEpBTkEKK05FTUVUIE1BUklKQU5BCitORU1FVCBNQVJJSkEKK05FTUVUIE1BUklKQQorTkVNRVQgTUlIQUxKCitORU1FVCBNSUxLQQorTkVNRVQgTUlSSkFOQQorTkVNRVQtTVXEjEkgTUFSSUpBCitORU1FVCBPTElWRVJBCitORU1FVCBPVE8KK05FTUVUIFBFVEFSCitORU1FVCBST1pBTElKQQorTkVNRVQgUlVET0xGCitORU1FVCBTVEVWQU4KK05FTUVUIFNUT0pBTktBCitORU1FVCBUSUJPUgorTkVNRVQgVklPTEVUQQorTkVNRVQgWk9MVEFOCitORU1FVCBaT0xUQU4KK05FTUVUSCBJUkVOQQorTkVOQUQgU0lNTworTkVOQURJxIYgTUlMQU4KK05FTkFEScSGIE1JTEVOS08KK05FTkFEScSGIE1JTE9SQUQKK05FTkFEScSGIFJBVEtPCitORU5BRE9WIMW9SVZLTworTkVOQURPViBBTUFMSUpBCitORU5BRE9WIEFOS0EKK05FTkFET1YgQlJBTklTTEFWCitORU5BRE9WIERSQUdPTUlSCitORU5BRE9WIEpFVlJPU0lNQQorTkVOQURPViBLQU1FTktPCitORU5BRE9WIEtPU1RBIERJUEwgSU5HCitORU5BRE9WIE1JTEVOS08KK05FTkFET1YgTUlMRU5LTworTkVOQURPViBPTEdBCitORU5BRE9WIFBFVEFSCitORU5BRE9WIFJBSktPCitORU5BRE9WIFNURVZBTgorTkVOQURPViBWT0pJU0xBVgorTkVOQURPVknEhiBCT1JJU0xBVgorTkVOQURPVknEhiBEQU5JQ0EKK05FTkFET1ZJxIYgRFJBR0lDQQorTkVOQURPVknEhiBEVcWgQU4KK05FTkFET1ZJxIYgSlVMS0lDQQorTkVOQURPVknEhiBNSUhBSkxPCitORU5BRE9WScSGIE1JTEVOS08gRFIKK05FTkFET1ZJxIYgTUlUQVIKK05FTkFET1ZJxIYgUEFOVEEKK05FTkFET1ZJxIYgUEVUQVIKK05FTkFET1ZJxIYgU0xBVk5BCitORU5BRE9WScSGIFNMT0JPREFOCitORU5BRE9WScSGIFZBU0lMSUpFCitORU5FWknEhiDEkE9SxJBFCitORU5FWknEhiBEQVJLTworTkVORVpJxIYgTUlST1NMQVYKK05FTkVaScSGIFJBREVOS08KK05FTkVaScSGIFJBRElTQVYKK05FTknEhiDEkE9SxJBFCitORU5JxIYgQlJBTklNSVIKK05FTknEhiBTQVZBCitORU5JxIYgVkVSQQorTkVOScSGIFZFUklDQQorTkVOSU4gxb1JVktPCitORU5JTiBERUpBTgorTkVOSU4gRFJBR0lOSkEKK05FTklOIERSQUdPTUlSCitORU5JTiBKQVNFTktBCitORU5JTiBMRU5LQQorTkVOSU4gTUFSQQorTkVOSU4gTUlMQU4KK05FTklOIE1JTElDQQorTkVOSU4gTUlMSUNBCitORU5JTiBNSUxPUkFECitORU5JTiBNSVJLTworTkVOSU4gUkFKS08KK05FTklOIFNBVkEKK05FTklOIFNMQVZLTworTkVOSU4gVE9NSVNMQVYKK05FTklOIFZBU0EKK05FT0ZJVE9WScSGIERFSkFOCitORVBJTCBBTlRVTgorTkVQT0tPSsSMSUNLSSBBTEVLU0FOREFSCitORVJBIE9STEVBTkEKK05FUkFDIE1MQURJTktPCitORVJBQyBQRVJPCitORVJBQyBTTE9CT0RBTgorTkVSQU7EjEnEhiBOSUtPTEEKK05FUkFORMW9ScSGIEJPxaBLTworTkVSQU5Exb1JxIYgQlJBTklTTEFWCitORVJBTkTFvUnEhiBKQVNNSU5BCitORVJBTkTFvUnEhiBNQUtTSU0KK05FUkFORMW9ScSGIE5FVkVOS0EKK05FUkFORMW9ScSGIFNUT0pBTktBCitORVJFUiDEkFVSQQorTkVSRVIgQUxFS1NBTkRBUgorTkVSVElDQSBTVEVWQU4KK05FU0tBTEnEhiBFVkdFTklKRQorTkVTS0FMScSGIExFT05BUkRPCitORVNUT1JPViDFvUVMSktPCitORVNUT1JPViBBTEVLU0FOREFSCitORVNUT1JPViBEUkFHT0xKVUIKK05FU1RPUk9WIExBWkFSCitORVNUT1JPViBNSUxBTiBESVBMIElORworTkVTVE9ST1YgTUlSS08KK05FU1RPUk9WIFNMT0JPREFOCitORVNUT1JPVknEhiDFvUlWT1RBCitORVNUT1JPVknEhiBCSUxKQU5BCitORVNUT1JPVknEhiBCTEFHT0pFCitORVNUT1JPVknEhiBCT0pBTkEKK05FU1RPUk9WScSGIEJPUklTCitORVNUT1JPVknEhiBEUkFHQU4KK05FU1RPUk9WScSGIERSQUdPTEpVQgorTkVTVE9ST1ZJxIYgRFJBR1VUSU4KK05FU1RPUk9WScSGIERVxaBBTktBCitORVNUT1JPVknEhiBHQVZSQQorTkVTVE9ST1ZJxIYgSVNBCitORVNUT1JPVknEhiBMSklMSkFOQQorTkVTVE9ST1ZJxIYgTUlMRQorTkVTVE9ST1ZJxIYgTkFEQQorTkVTVE9ST1ZJxIYgTkFERcW9REEKK05FU1RPUk9WScSGIFJBRE1JTEEKK05FU1RPUk9WScSGIFJBRE9WQU4KK05FU1RPUk9WScSGIFNBVkEKK05FU1RPUk9WScSGIFNMQVZJQ0EKK05FU1RPUk9WScSGIFNMT0JPREFOCitORVNUT1JPVknEhiBWTEFESU1JUgorTkVTVE9ST1ZJxIYgVkxBRElNSVIKK05FVkFKREnEhiBWRUxJTUlSCitORVZJRE9WxIxJxIYgTEpVQklDQQorTkVWSURPVsSMScSGIE1JTEtBCitORVZJRE9WxIxJxIYgU0FWQQorTkVWT0xJxIYgQU5JQ0EKK05FWklSSSBBUklGCitORVpJUk9WIEFMSklMSgorTkVaSVJPViBWRUxJxIxLTworTknEjEnEhiBOQURBCitOScSMScSGIFBSRURSQUcKK05JxaBBVknEhiBLUklTVElOQQorTknFoEFWScSGIE1JTFVUSU4KK05JxaBBVknEhiBQQVZMRQorTknFoEFWScSGIFJBRE9TTEFWCitOScWgRVZJxIYgxJBPUsSQRQorTknFoEVWScSGIMSQVVJBCitOScWgRVZJxIYgSk9WSUNBCitOScWgRVZJxIYgS0FUSUNBCitOScWgRVZJxIYgT0xHQQorTknFoEVWScSGIFNBVkEKK05JxaBJxIYgRFJBR0FOCitOScWgScSGIE1MQcSQRU4KK05JxaBLQU5PVknEhiBCT8WgS08KK05JxaBLQU5PVknEhiBMSlVQS08KK05JxaBLQU5PVknEhiBNSVJLTworTknEhkVUScSGIExKVUJPTUlSCitOScSGRVRJxIYgTUlSQQorTknEhklGT1JPVknEhiBKT1ZBTgorTknEhklGT1JPVknEhiBQRVJBCitOScSGSUZPUk9WScSGIFBFVEFSCitOScSGSUZPUk9WScSGIFRFT0RPUgorTknEhklOIMSQT1LEkEUKK05JxIZJTiBBTEVLU0FOREFSCitOScSGSU4gQlJBTklTTEFWCitOScSGSU4gRE9OS0EKK05JxIZJTiBEVcWgS08KK05JxIZJTiBNSVJPU0xBVgorTknEhklOIE5FVkVOS0EKK05JxIZJTiBOScSGSUZPUiBESVBMIElORworTknEhklOIFNORcW9QU5BCitOScSGSU4gU09GSUpBCitOScSGSU4gU1ZFVE9aQVIKK05JxIZJTiBWQVNJTElKRQorTknEhklOIFZFUklDQQorTknEhklOIFpPUkEKK05JQ0nEhiBEQVJLTworTklERVJMRU5ERVIgxJBPUsSQRQorTklERVJMRU5JxIYgWk9SQU5BCitOSUpFTcSMRVZJxIYgTklLT0xBCitOSUvEjEVWScSGIEJPxaBLTworTklLxIxFVknEhiBKT1ZBTgorTklLxIxFVknEhiBMSlVCT01JUgorTklLxIxFVknEhiBNT01PCitOSUvEjEVWScSGIFJBVEtPCitOSUvEjEVWScSGIFNUQU5BCitOSUvFoEnEhiDFvUlWS08KK05JS8WgScSGIMSQVVJBCitOSUvFoEnEhiBDVkVUT1pBUgorTklLxaBJxIYgREFSS08KK05JS8WgScSGIERSQUdJTkpBCitOSUvFoEnEhiBEUkFHT0xKVUIKK05JS8WgScSGIERVxaBBTktBCitOSUvFoEnEhiBGUkFOSkEKK05JS8WgScSGIElTQQorTklLxaBJxIYgSlVMSUpBCitOSUvFoEnEhiBNSUxBTgorTklLxaBJxIYgTUlSS08KK05JS8WgScSGIE1MQURFTgorTklLxaBJxIYgU1RFVkFOCitOSUvFoEnEhiBWRVNOQQorTklLQcSMRVYgUkFET1ZBTgorTklLQcSMRVYgUkFET1ZBTgorTklLQcSMRVZJxIYgTUlIT1ZJTAorTklLQcSMRVZJxIYgUkFET01BTgorTklLQcWgSU5PVknEhiBMSklMSkFOQQorTklLQcWgSU5PVknEhiBMSlVCSUNBCitOSUtFVEnEhiBHT1JEQU5BCitOSUtFVEnEhiBHT1NQQVZBCitOSUtFVEnEhiBKRUZUQQorTklLRVRJxIYgS0FUSUNBCitOSUtFVEnEhiBORUJPSsWgQSBEUgorTklLRVRJxIYgUEVUQVIKK05JS0VUScSGIFNBxaBBCitOSUtFVEnEhiBTSU1BCitOSUtFVEnEhiBTTE9CT0RBTgorTklLRVRJxIYgVkxBRElNSVIKK05JS0VaScSGIE1JTEEKK05JS0VaScSGIFBFVEFSCitOSUtFWknEhiBST0tTQU5EQQorTklLScSGIEJSQU5JU0xBVkEKK05JS0nEhiBCUkFOSVNMQVYKK05JS0nEhiBCVURJTUlSCitOSUtJxIYgREFKQU5BCitOSUtJxIYgRFJBR0FOCitOSUtJxIYgSk9WQU5LQQorTklLScSGIEpPVk8KK05JS0nEhiBKT1ZPCitOSUtJxIYgS0FUSUNBCitOSUtJxIYgTEFaQVIKK05JS0nEhiBNQVJJTktPCitOSUtJxIYgTUlMQU4KK05JS0nEhiBNSUxFCitOSUtJxIYgTUlMVVRJTgorTklLScSGIE1JT0RSQUcKK05JS0nEhiBNSVJKQU5BCitOSUtJxIYgTkFEQQorTklLScSGIE5BVEHFoEEKK05JS0nEhiBORVZFTktBCitOSUtJxIYgUkFETUlMQQorTklLScSGIFJBRE9NSVIKK05JS0nEhiBSQURPTUlSCitOSUtJxIYgUkFET01JUgorTklLScSGIFNBTkpBCitOSUtJxIYgU0FWQQorTklLScSGIFZMQURJTUlSCitOSUtJxIYgWkRSQVZLTworTklLScSGIFpMQVRBCitOSUtJxIYgWk9SQQorTklLScSGIFpPUktBCitOSUtJTiBCT1JJU0xBVgorTklLSU4gUkFET01JUgorTklLSU4gVkVSQQorTklLSVRJxaBJTiBOQURBCitOSUtJVE9WScSGIMSMRURPTUlSCitOSUtJVE9WScSGIEFMRUtTQU5EQVIKK05JS0lUT1ZJxIYgQU5HRUxJTkEKK05JS0lUT1ZJxIYgQk/FvU8KK05JS0lUT1ZJxIYgRFXFoEFOCitOSUtJVE9WScSGIERVxaBBTgorTklLSVRPVknEhiBNSUhBSkxPCitOSUtJVE9WScSGIE1JTElKQU5LQQorTklLSVRPVknEhiBSQURBCitOSUtJVE9WScSGIFJBRE9KSUNBCitOSUtJVE9WScSGIFNMT0JPREFOCitOSUtPxIxFViBaT1JJQ0EKK05JS09ESUpFVknEhiBEVcWgQU4KK05JS09ESUpFVknEhiBFTkVTQQorTklLT0RJSkVWScSGIFJBRE9KS08KK05JS09ESUpFVknEhiBSQVRPTUlSCitOSUtPRElOT1ZTS0kgU1RPSkFOIERJUEwgSU5HCitOSUtPTMSMScSGIEJMQcW9TworTklLT0zEjEnEhiBEUkFHQU4KK05JS09MxIxJxIYgU1ZFVExBTkEKK05JS09MxIxJTiBNSUxPxaAKK05JS09MxIxJTiBNSVJKQU5BCitOSUtPTEHFoEVWIEJPUklWT0oKK05JS09MQcWgRVYgSk9WQQorTklLT0xBxaBFViBMSlVCT01JUgorTklLT0xBxaBFViBNQVRJTERBCitOSUtPTEHFoEVWIE5BREEKK05JS09MQUpFViBKRUxFTkEKK05JS09MQUpFViBMQVpBUgorTklLT0xBSkVWIE1JTElDQQorTklLT0xBSkVWScSGIERJTUlUUklKRQorTklLT0xBSkVWScSGIERVxaBBTgorTklLT0xBSkVWScSGIElSRU5BCitOSUtPTEFKRVZJxIYgTUlMSVZPSiBBS0FERU1TS0kgU0xJS0FSCitOSUtPTEFKRVZJxIYgTklLT0xBCitOSUtPTEFKRVZJxIYgUkFESVZPSgorTklLT0xBSkVWScSGIFZPSklTTEFWCitOSUtPTEFKRVZTS0kgQUxFS1NBTkRBUgorTklLT0xFVEnEhiBCT1JBCitOSUtPTEVUScSGIERSQUdBTgorTklLT0xFVEnEhiBEVcWgQU5LQQorTklLT0xFVEnEhiBEVcWgQU4KK05JS09MRVRJxIYgRFXFoEFOCitOSUtPTEVUScSGIEpPVkFOS0EKK05JS09MRVRJxIYgSk9WQU4KK05JS09MRVRJxIYgSk9WQU4KK05JS09MRVRJxIYgSk9WQU4KK05JS09MRVRJxIYgSk9WQU4KK05JS09MRVRJxIYgTUlMQU4KK05JS09MRVRJxIYgTUlMT8WgCitOSUtPTEVUScSGIE1JTE9WQU4KK05JS09MRVRJxIYgU0lNTworTklLT0xFVEnEhiBTVEVWQU4KK05JS09MRVRJxIYgU1ZFVE9aQVIKK05JS09MRVRJxIYgVklECitOSUtPTEVUScSGIFpPUkFOCitOSUtPTEnEjElOIEJSQU5LTworTklLT0xJxIxJTiBEQU5JTE8KK05JS09MScSMSU4gWk9SQU4KK05JS09MScWgIERSQUdVVElOCitOSUtPTEnFoCBFVklDQQorTklLT0xJxaAgTUlMQU4KK05JS09MScSGLcSMQU5KSSBCQVJCQVJBCitOSUtPTEnEhi3FoElLT1BBUklKQSBORVZFTktBCitOSUtPTEnEhiDEhklSSUxPCitOSUtPTEnEhiDFvUFSS08KK05JS09MScSGIMW9QVJLTworTklLT0xJxIYgxb1BUktPCitOSUtPTEnEhiDFvUFSS08KK05JS09MScSGIMW9SVZBTgorTklLT0xJxIYgxb1JVkFOCitOSUtPTEnEhiDFvUlWQU4KK05JS09MScSGIMW9SVZBTgorTklLT0xJxIYgxb1JVkEKK05JS09MScSGIMW9SVZLQQorTklLT0xJxIYgxb1JVktBCitOSUtPTEnEhiDFvUlWS08KK05JS09MScSGIMW9SVZLTworTklLT0xJxIYgxb1JVk9SQUQKK05JS09MScSGIMW9SVZPUkFECitOSUtPTEnEhiDFvUlWT1JBRAorTklLT0xJxIYgxb1JVk9UQQorTklLT0xJxIYgxb1JVk9UQQorTklLT0xJxIYgxJBPUsSQRSBQUk9GRVNPUgorTklLT0xJxIYgxJBPUsSQRQorTklLT0xJxIYgxJBPUsSQRQorTklLT0xJxIYgxJBPUsSQRQorTklLT0xJxIYgxJBPUsSQRQorTklLT0xJxIYgxJBPUsSQRQorTklLT0xJxIYgxJBPUsSQRQorTklLT0xJxIYgxJBPUsSQRQorTklLT0xJxIYgxJBVUsSQSU5LQQorTklLT0xJxIYgxJBVUsSQSU5LQQorTklLT0xJxIYgxJBVUkEKK05JS09MScSGIMSQVVJBCitOSUtPTEnEhiBBTEVLU0FOREFSCitOSUtPTEnEhiBBTEVLU0FOREFSCitOSUtPTEnEhiBBTEVLU0FOREFSCitOSUtPTEnEhiBBTEVLU0FOREFSCitOSUtPTEnEhiBBTEVLU0FOREFSCitOSUtPTEnEhiBBTEVLU0FOREFSCitOSUtPTEnEhiBBTEVLU0FOREFSCitOSUtPTEnEhiBBTEVLU0FOREFSCitOSUtPTEnEhi1BTEVLU09WU0tJIFNMQVZJQ0EKK05JS09MScSGIEFOQQorTklLT0xJxIYgQU5EUklKQQorTklLT0xJxIYgQU5LQQorTklLT0xJxIYgQU5LSUNBCitOSUtPTEnEhi1CQUrFoEVWIFNUQU5LQQorTklLT0xJxIYgQklMSkFOQQorTklLT0xJxIYgQklTRVJLQQorTklLT0xJxIYgQk/FoEtPCitOSUtPTEnEhiBCT8WgS08KK05JS09MScSGIEJPxaBLTworTklLT0xJxIYgQk/FvUlEQVIKK05JS09MScSGIEJPxb1JREFSCitOSUtPTEnEhiBCT8W9SURBUgorTklLT0xJxIYgQk/FvUlEQVIKK05JS09MScSGIEJPxb1PCitOSUtPTEnEhiBCT0dEQU4KK05JS09MScSGIEJPSktBCitOSUtPTEnEhiBCT1JBCitOSUtPTEnEhiBCT1JBCitOSUtPTEnEhiBCT1JJU0xBVgorTklLT0xJxIYgQk9SSVNMQVYKK05JS09MScSGIEJPUklTTEFWCitOSUtPTEnEhiBCT1JJVk9KRQorTklLT0xJxIYgQk9SSVZPSgorTklLT0xJxIYgQlJBTklTTEFWCitOSUtPTEnEhiBCUkFOSVNMQVYKK05JS09MScSGIEJSQU5JU0xBVgorTklLT0xJxIYgQlJBTklTTEFWCitOSUtPTEnEhiBCUkFOSVNMQVYKK05JS09MScSGIEJSQU5JU0xBVgorTklLT0xJxIYgQlJBTktPCitOSUtPTEnEhiBCUkFOS08KK05JS09MScSGIEJSQU5LTworTklLT0xJxIYgQlVESU1JUgorTklLT0xJxIYgQ1ZFVEFOS0EKK05JS09MScSGIENWSUpFVEEKK05JS09MScSGLUTFvUFWRVIgSVZBTiBESVBMIElORworTklLT0xJxIYgREFNSkFOCitOSUtPTEnEhiBEQU1KQU4KK05JS09MScSGIERBTkEKK05JS09MScSGIERBTklDQQorTklLT0xJxIYgREFOSUNBCitOSUtPTEnEhiBEQU5JQ0EKK05JS09MScSGIERBTklFTAorTklLT0xJxIYgREFOSUpFTAorTklLT0xJxIYgREFOSUxPCitOSUtPTEnEhiBEQU5JTE8KK05JS09MScSGIERBTktPCitOSUtPTEnEhiBEQVJJTktBCitOSUtPTEnEhiBEQVZPUklOCitOSUtPTEnEhiBERUpBTgorTklLT0xJxIYgREVTQU5LQQorTklLT0xJxIYgRElNSVRSSUpFCitOSUtPTEnEhiBET0JSSVZPSkUKK05JS09MScSGIERSQcWgS08KK05JS09MScSGIERSQUdBTkEKK05JS09MScSGIERSQUdBTgorTklLT0xJxIYgRFJBR0FOCitOSUtPTEnEhiBEUkFHQU4KK05JS09MScSGIERSQUdBTgorTklLT0xJxIYgRFJBR0FOCitOSUtPTEnEhiBEUkFHQU4KK05JS09MScSGIERSQUdBTgorTklLT0xJxIYgRFJBR0FOCitOSUtPTEnEhiBEUkFHQU4KK05JS09MScSGIERSQUdBCitOSUtPTEnEhiBEUkFHSUNBCitOSUtPTEnEhiBEUkFHSUNBCitOSUtPTEnEhiBEUkFHSUNBCitOSUtPTEnEhiBEUkFHT0xKVUIKK05JS09MScSGIERSQUdPTEpVQgorTklLT0xJxIYgRFJBR09MSlVCCitOSUtPTEnEhiBEUkFHT0xKVUIKK05JS09MScSGIERSQUdPTUlSCitOSUtPTEnEhiBEUkFHT01JUgorTklLT0xJxIYgRFJBR09NSVIKK05JS09MScSGIERSQUdPU0xBVgorTklLT0xJxIYgRFJBR08KK05JS09MScSGIERSQUdVVElOCitOSUtPTEnEhiBEVcWgQU4gRElQTCBJTkcKK05JS09MScSGIERVxaBBTktBCitOSUtPTEnEhiBEVcWgQU5LQQorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEFOCitOSUtPTEnEhiBEVcWgQU4KK05JS09MScSGIERVxaBBTgorTklLT0xJxIYgRFXFoEtPCitOSUtPTEnEhiBFTUlMSUpBCitOSUtPTEnEhiBFTUlMCitOSUtPTEnEhiBHT1JEQU5BCitOSUtPTEnEhiBHT1JEQU5BCitOSUtPTEnEhiBHT1JEQU5BCitOSUtPTEnEhiBISUxEQQorTklLT0xJxIYgSFJJU1RJTkEKK05JS09MScSGIElMSUpBCitOSUtPTEnEhiBJU0lET1IKK05JS09MScSGIElWQU5LQQorTklLT0xJxIYgSVZBTgorTklLT0xJxIYgSVZPCitOSUtPTEnEhiBKQVZPUktBCitOSUtPTEnEhiBKRUZUQQorTklLT0xJxIYgSkVGVElNSVIKK05JS09MScSGIEpFRlRJTUlSCitOSUtPTEnEhiBKRUxFTkEKK05JS09MScSGIEpFTEVOQQorTklLT0xJxIYgSkVMS0EKK05JS09MScSGIEpFTEtBCitOSUtPTEnEhiBKT0NBCitOSUtPTEnEhiBKT1ZBTgorTklLT0xJxIYgSk9WQU4KK05JS09MScSGIEpPVkFOCitOSUtPTEnEhiBKT1ZBTgorTklLT0xJxIYgSk9WQU4KK05JS09MScSGIEpPVkFOCitOSUtPTEnEhiBKT1ZBTgorTklLT0xJxIYgSk9WQU4KK05JS09MScSGIEpPVkFOCitOSUtPTEnEhiBKT1ZBTgorTklLT0xJxIYgSk9WQU4KK05JS09MScSGIEpPVklDQQorTklLT0xJxIYgSlVMSUpBTkEKK05JS09MScSGIEpVTEtBCitOSUtPTEnEhiBLQVRBUklOQQorTklLT0xJxIYgS0FUSUNBCitOSUtPTEnEhiBLQVRJQ0EKK05JS09MScSGIEtBVElDQQorTklLT0xJxIYgS09TVEFESU4KK05JS09MScSGIEtPU1RBCitOSUtPTEnEhiBLUlNUQSBEUgorTklLT0xJxIYgS1JTVEEKK05JS09MScSGIExBWkFSCitOSUtPTEnEhiBMQVpBUgorTklLT0xJxIYgTEFaQVIKK05JS09MScSGIExBWkFSCitOSUtPTEnEhiBMQVpBUgorTklLT0xJxIYgTEFaQVIKK05JS09MScSGIExBWkFSCitOSUtPTEnEhiBMQVpBUgorTklLT0xJxIYgTEpJTEpBTkEKK05JS09MScSGIExKSUxKQU5BCitOSUtPTEnEhiBMSklMSkFOQQorTklLT0xJxIYgTEpVQklDQQorTklLT0xJxIYgTEpVQklDQQorTklLT0xJxIYgTEpVQklDQQorTklLT0xJxIYgTEpVQklDQQorTklLT0xJxIYgTFVKWkEKK05JS09MScSGIExVS0EKK05JS09MScSGIE1BTk9KTE8KK05JS09MScSGIE1BUkEKK05JS09MScSGIE1BUkEKK05JS09MScSGIE1BUkEKK05JS09MScSGIE1BUkdJVEEKK05JS09MScSGIE1BUkdJVEEKK05JS09MScSGIE1BUklDQQorTklLT0xJxIYgTUFSSUpBCitOSUtPTEnEhiBNQVJJSkEKK05JS09MScSGIE1BUklKQQorTklLT0xJxIYgTUFSSUpBCitOSUtPTEnEhiBNQVJLTworTklLT0xJxIYgTUFSS08KK05JS09MScSGIE1BUktPCitOSUtPTEnEhiBNRUxBTklKQSBTVE9NQVRPTE9HCitOSUtPTEnEhiBNRUxBTklKQQorTklLT0xJxIYgTUlIQUpMTworTklLT0xJxIYgTUlIQUpMTworTklLT0xJxIYgTUlIQUpMTworTklLT0xJxIYgTUlMQcWgSU4KK05JS09MScSGIE1JTEFOQQorTklLT0xJxIYgTUlMQU5BCitOSUtPTEnEhiBNSUxBTgorTklLT0xJxIYgTUlMQU4KK05JS09MScSGIE1JTEFOCitOSUtPTEnEhiBNSUxBTgorTklLT0xJxIYgTUlMQU4KK05JS09MScSGIE1JTEFOCitOSUtPTEnEhiBNSUxBTgorTklLT0xJxIYgTUlMQU4KK05JS09MScSGIE1JTEFOCitOSUtPTEnEhiBNSUxFTkEKK05JS09MScSGIE1JTEVOS08KK05JS09MScSGIE1JTEVWQQorTklLT0xJxIYgTUlMRVZBCitOSUtPTEnEhiBNSUxFCitOSUtPTEnEhiBNSUxFCitOSUtPTEnEhiBNSUxFCitOSUtPTEnEhiBNSUxJQ0EKK05JS09MScSGIE1JTElDQQorTklLT0xJxIYgTUlMSUNBCitOSUtPTEnEhiBNSUxJVk9KRQorTklLT0xJxIYgTUlMS0EKK05JS09MScSGIE1JTEtBCitOSUtPTEnEhiBNSUxPxaAKK05JS09MScSGIE1JTE/FoAorTklLT0xJxIYgTUlMT8WgCitOSUtPTEnEhiBNSUxPxaAKK05JS09MScSGIE1JTE/FoAorTklLT0xJxIYgTUlMT0pLTworTklLT0xJxIYgTUlMT01JUgorTklLT0xJxIYgTUlMT1JBRAorTklLT0xJxIYgTUlMT1JBRAorTklLT0xJxIYgTUlMT1JBRAorTklLT0xJxIYgTUlMT1JBRAorTklLT0xJxIYgTUlMT1JBRAorTklLT0xJxIYgTUlMT1JBRAorTklLT0xJxIYgTUlMT1JBRAorTklLT0xJxIYgTUlMT1JBRAorTklLT0xJxIYgTUlMT1NBVkEKK05JS09MScSGIE1JTE9TQVZBCitOSUtPTEnEhiBNSUxPVkFOCitOSUtPTEnEhiBNSUxVVElOCitOSUtPTEnEhiBNSUxVVElOCitOSUtPTEnEhiBNSUxVVElOCitOSUtPTEnEhiBNSU9EUkFHIERJUEwgSU5HCitOSUtPTEnEhiBNSU9EUkFHIERSCitOSUtPTEnEhiBNSU9EUkFHIERSCitOSUtPTEnEhiBNSU9EUkFHCitOSUtPTEnEhiBNSU9EUkFHCitOSUtPTEnEhiBNSU9EUkFHCitOSUtPTEnEhiBNSU9EUkFHCitOSUtPTEnEhiBNSU9EUkFHCitOSUtPTEnEhiBNSU9EUkFHCitOSUtPTEnEhiBNSU9EUkFHCitOSUtPTEnEhiBNSVJKQU5BCitOSUtPTEnEhiBNSVJKQU5BCitOSUtPTEnEhiBNSVJKQU5BCitOSUtPTEnEhiBNSVJKQU5BCitOSUtPTEnEhiBNSVJKQU5BCitOSUtPTEnEhiBNSVJLTworTklLT0xJxIYgTUlSS08KK05JS09MScSGIE1JUk9TTEFWIERJUEwgSU5HCitOSUtPTEnEhiBNSVJPU0xBVgorTklLT0xJxIYgTUlST1NMQVYKK05JS09MScSGIE1JUk9TTEFWCitOSUtPTEnEhiBNSVJPU0xBVgorTklLT0xJxIYgTUlST1NMQVYKK05JS09MScSGIE1JVEEKK05JS09MScSGIE1JVEEKK05JS09MScSGIE1JVEEKK05JS09MScSGIE1MQURFTktBCitOSUtPTEnEhiBNTEFERU4KK05JS09MScSGIE1PTcSMSUxPCitOSUtPTEnEhi1NVcWgSUNLSSBEQVJBCitOSUtPTEnEhiBOQURBCitOSUtPTEnEhiBOQURBCitOSUtPTEnEhiBOQURBCitOSUtPTEnEhiBOQURBCitOSUtPTEnEhiBOQURBCitOSUtPTEnEhiBOQURFxb1EQQorTklLT0xJxIYgTkVCT0rFoEEKK05JS09MScSGIE5FREVMSktBCitOSUtPTEnEhiBORURFTEpLTworTklLT0xJxIYgTkVERUxKS08KK05JS09MScSGIE5FTkFEIERSCitOSUtPTEnEhiBORU5BRAorTklLT0xJxIYgTklLT0xBCitOSUtPTEnEhiBOSUtPTEEKK05JS09MScSGIE5JS09MQQorTklLT0xJxIYgTklLT0xBCitOSUtPTEnEhiBOSUtPTEEKK05JS09MScSGIE5JS09MQQorTklLT0xJxIYgTklLT0xBCitOSUtPTEnEhiBOSUtPTEEKK05JS09MScSGIE5PVklDQQorTklLT0xJxIYgTk9WSUNBCitOSUtPTEnEhiBOT1ZJQ0EKK05JS09MScSGIE9MR0EKK05JS09MScSGIE9TTUFOCitOSUtPTEnEhiBQQVVOCitOSUtPTEnEhiBQQVZMRQorTklLT0xJxIYgUEVSQQorTklLT0xJxIYgUEVSTworTklLT0xJxIYgUEVSU0lEQQorTklLT0xJxIYgUEVUQVIgRElQTCBPRUMKK05JS09MScSGIFBFVEFSCitOSUtPTEnEhiBQRVRBUgorTklLT0xJxIYgUEVUQVIKK05JS09MScSGIFBFVFJBCitOSUtPTEnEhiBQRVRSQQorTklLT0xJxIYgUEVUUk9OSUpFCitOSUtPTEnEhiBQUkVEUkFHCitOSUtPTEnEhiBQUlZPU0xBVgorTklLT0xJxIYgUkFERU5LTworTklLT0xJxIYgUkFESVNBVgorTklLT0xJxIYgUkFESVZPSkUKK05JS09MScSGIFJBRE9KSUNBCitOSUtPTEnEhiBSQURPSktBCitOSUtPTEnEhiBSQURPSktBCitOSUtPTEnEhiBSQURPTUlSCitOSUtPTEnEhiBSQURPTUlSCitOSUtPTEnEhiBSQURPTUlSCitOSUtPTEnEhiBSQURPU0xBVkEKK05JS09MScSGIFJBRE9TTEFWCitOSUtPTEnEhiBSQURPVkFOCitOSUtPTEnEhiBSQURPVkFOCitOSUtPTEnEhiBSQURPVkFOCitOSUtPTEnEhiBSQURPVkFOCitOSUtPTEnEhiBSQURPVkFOCitOSUtPTEnEhiBSQUpLTworTklLT0xJxIYgUkFKS08KK05JS09MScSGIFJBTktBCitOSUtPTEnEhiBSQVRLTyBNUgorTklLT0xJxIYgUkFUT01JUgorTklLT0xJxIYgUkFUT01JUgorTklLT0xJxIYgUlXFvUEKK05JS09MScSGIFJVxb1JQ0EKK05JS09MScSGIFJVxb1JQ0EKK05JS09MScSGIFNBVkEKK05JS09MScSGIFNBVkEKK05JS09MScSGIFNBVkEKK05JS09MScSGIFNBVkEKK05JS09MScSGIFNBVkEKK05JS09MScSGIFNBVkVUQQorTklLT0xJxIYgU0FWS0EKK05JS09MScSGIFNBVk8KK05JS09MScSGIFNFxIZFUktBCitOSUtPTEnEhiBTSU1BCitOSUtPTEnEhiBTSU1FT04KK05JS09MScSGIFNJTUVVTgorTklLT0xJxIYgU0lOScWgQQorTklLT0xJxIYgU0lOScWgQQorTklLT0xJxIYgU0lOScWgQQorTklLT0xJxIYgU0xBxJBBTkEKK05JS09MScSGIFNMQVZJxaBBCitOSUtPTEnEhiBTTEFWSUNBCitOSUtPTEnEhiBTTEFWS08KK05JS09MScSGIFNMQVZOQQorTklLT0xJxIYgU0xPQk9EQU5LQQorTklLT0xJxIYgU0xPQk9EQU4KK05JS09MScSGIFNMT0JPREFOCitOSUtPTEnEhiBTTE9CT0RBTgorTklLT0xJxIYgU0xPQk9EQU4KK05JS09MScSGIFNMT0JPREFOCitOSUtPTEnEhiBTTUlMSkFOQQorTklLT0xJxIYgU05Fxb1BTkEKK05JS09MScSGIFNPRklKQQorTklLT0xJxIYgU09GSUpBCitOSUtPTEnEhiBTT0ZJSkEKK05JS09MScSGIFNQQVNFTktBCitOSUtPTEnEhiBTUEFTT0pFCitOSUtPTEnEhiBTUEFTT0pFCitOSUtPTEnEhiBTUEFTT0pFCitOSUtPTEnEhiBTUkVUQQorTklLT0xJxIYgU1JFVEVOS0EKK05JS09MScSGIFNUQU5JTUlSCitOSUtPTEnEhiBTVEFOSU1JUgorTklLT0xJxIYgU1RBTklTTEFWCitOSUtPTEnEhiBTVEFOS08KK05JS09MScSGIFNURUZBTklKQQorTklLT0xJxIYgU1RFVkFOCitOSUtPTEnEhiBTVEVWQU4KK05JS09MScSGIFNURVZBTgorTklLT0xJxIYgU1RFVkFOCitOSUtPTEnEhiBTVEVWQU4KK05JS09MScSGIFNURVZBTgorTklLT0xJxIYgU1RFVkFOCitOSUtPTEnEhiBTVEVWQU4KK05JS09MScSGIFNURVZJQ0EKK05JS09MScSGIFNUT0pBRElOCitOSUtPTEnEhiBTVE9KQU4KK05JS09MScSGIFNVWkFOQQorTklLT0xJxIYgU1ZFVElTTEFWCitOSUtPTEnEhiBTVkVUSVNMQVYKK05JS09MScSGIFNWRVRPWkFSCitOSUtPTEnEhiBTVkVUT1pBUgorTklLT0xJxIYgU1ZFVE9aQVIKK05JS09MScSGIFNWRVRPWkFSCitOSUtPTEnEhiBUQU1BUkEKK05JS09MScSGIFRBVEpBTkEKK05JS09MScSGIFRFT0RPUgorTklLT0xJxIYgVEVPRE9SCitOSUtPTEnEhiBUSUhPTUlSCitOSUtPTEnEhiBUSUhPTUlSCitOSUtPTEnEhiBUT0RPUgorTklLT0xJxIYgVE9NSVNMQVYgTVIKK05JS09MScSGIFRPTUlTTEFWCitOSUtPTEnEhiBUT01JU0xBVgorTklLT0xJxIYgVFJFTsSMQQorTklLT0xJxIYgVkFTSUxJSkUKK05JS09MScSGIFZFS09TTEFWCitOSUtPTEnEhiBWRUxJTUlSCitOSUtPTEnEhiBWRUxJTUlSCitOSUtPTEnEhiBWRUxKS08gRFIgSU5HCitOSUtPTEnEhiBWRUxKS08KK05JS09MScSGIFZFUkEKK05JS09MScSGIFZFUkEKK05JS09MScSGIFZFUkEKK05JS09MScSGIFZFUkEKK05JS09MScSGIFZFUklDQQorTklLT0xJxIYgVkVTTkEKK05JS09MScSGIFZJRE9TQVZBCitOSUtPTEnEhiBWSVRPTUlSCitOSUtPTEnEhiBWSVRPTUlSCitOSUtPTEnEhiBWSVRPTUlSCitOSUtPTEnEhiBWTEFEQQorTklLT0xJxIYgVkxBRElNSVIKK05JS09MScSGIFZMQURJTUlSCitOSUtPTEnEhiBWTEFESU1JUgorTklLT0xJxIYgVkxBRElNSVIKK05JS09MScSGIFZMQURJU0xBViBEUgorTklLT0xJxIYgVk9KSVNMQVYgRFIgRE9DRU5UCitOSUtPTEnEhiBWT0pJU0xBViBEUiBMRUtBUgorTklLT0xJxIYgVk9KSVNMQVYKK05JS09MScSGIFZVS0HFoElOCitOSUtPTEnEhiBWVUtBxaBJTgorTklLT0xJxIYgWkFHT1JLQQorTklLT0xJxIYgWkRSQVZLTworTklLT0xJxIYgWkRSQVZLTworTklLT0xJxIYgWk9SQU4KK05JS09MScSGIFpPUkFOCitOSUtPTEnEhiBaT1JBTgorTklLT0xJxIYgWk9SQQorTklLT0xJxIYgWk9SQQorTklLT0xJxIYgWk9SQQorTklLT0xJxIYgWk9SS0EKK05JS09MSU4gQUxFS1NBTkRSQQorTklLT0xJTiBBTkEKK05JS09MSU4gQlJBTktPCitOSUtPTElOIERSQUdPU0xBVkEgRFIKK05JS09MSU4gRFXFoElDQQorTklLT0xJTiBFUsW9RUJFVAorTklLT0xJTiBJVklDQQorTklLT0xJTiBMQVpBUiBEUiBMRUtBUgorTklLT0xJTiBMSlVCScWgQQorTklLT0xJTiBNQVJHSVRBCitOSUtPTElOIE1JTEFOCitOSUtPTElOIE1JTElDQQorTklLT0xJTiBNSUxJVk9KCitOSUtPTElOIE1JTElWT0oKK05JS09MSU4gTUlST1NMQVYKK05JS09MSU4gUkFET1ZBTgorTklLT0xJTiBSQURPVkFOCitOSUtPTElOIFJVxb1JQ0EKK05JS09MSU4gU0FWQQorTklLT0xJTiBTSU5JxaBBCitOSUtPTElOIFNJTknFoEEKK05JS09MSU4gU1RJUEFOCitOSUtPTElOIFZFU05BCitOSUtPTElOIFZJVE9NSVIKK05JS09MT1NLSSBOSUtPTEEKK05JS09MT1NLSSBTTEFWSUNBCitOSUtPTE9WIMSQT1LEkEUKK05JS09MT1YgQk/FoEtPCitOSUtPTE9WIEpPQ0EKK05JS09MT1YgSk9DQQorTklLT0xPViBMSlVCSUNBCitOSUtPTE9WIE5JTkEKK05JS09MT1YgUkHFoEEKK05JS09MT1YgU0lOScWgQQorTklLT0xPViBTVE9KQU4KK05JS09MT1YgVE9ET1IKK05JS09MT1ZTS0kgSUxJSkEKK05JS09MT1ZTS0kgTUlMQU4KK05JS09UScSGIFZFTElNSVIKK05JTEnEhiBOSUtPTEEKK05JTE9WScSGIE1JUk9TTEFWCitOSU1SSUhURVIgRFJBR1VUSU4KK05JTVJJSFRFUiBNSUxBTgorTklNUklIVEVSIE1JUk9TTEFWCitOSU1SSUhURVIgVkxBREEKK05JTsSMScSGIEJJU0VSS0EKK05JTsSMScSGIERBTUpBTgorTklOxIxJxIYgTUlMRU5LTworTklOxIxJxIYgUEVSTworTklOScSGIEFMRUtTQQorTklOScSGIEJSQU5JU0xBVgorTklOScSGIE1BUktPCitOSU5JxIYgTUlSS08KK05JTknEhiBSQURPSkUKK05JTknEhiBSQURPTUlSCitOSU5LT1Ygxb1JVktPCitOSU5LT1YgxJBPUsSQRQorTklOS09WIMSQT1LEkEUKK05JTktPViDEkE9SxJBFCitOSU5LT1YgQk/FvUlDQQorTklOS09WIEJPUklTTEFWCitOSU5LT1YgQk9SSVNMQVYKK05JTktPViBCUkFOSVNMQVYKK05JTktPViBET0JSSVZPSgorTklOS09WIERSQUdPTUlSCitOSU5LT1YgRFXFoEFOCitOSU5LT1YgRFXFoEFOCitOSU5LT1YgRFXFoEFOCitOSU5LT1YgRU1JTElKQQorTklOS09WIEVSxb1FQkVUCitOSU5LT1YgSkVMSUNBCitOSU5LT1YgSk9WQU4KK05JTktPViBKVUxJSkFOIE1SCitOSU5LT1YtS09NTEVOT1YgREFOSUNBIERSCitOSU5LT1YgTEFaQVIKK05JTktPViBMQVpBUgorTklOS09WLUxFxJBFTkFDIEpPVkFOS0EgRFIKK05JTktPViBMSlVCT01JUgorTklOS09WIExKVUJPTUlSCitOSU5LT1YgTUFSSUpBCitOSU5LT1YgTUFSSUpBCitOSU5LT1YgTUlMQU5BCitOSU5LT1YgTUlMQU4KK05JTktPViBNSUxJQ0EKK05JTktPViBNSUxPxaAKK05JTktPViBNSUxPxaAKK05JTktPViBNSUxPxaAKK05JTktPViBNSUxPVkFOCitOSU5LT1YgTUlMT1ZBTgorTklOS09WIE1JTFVUSU4KK05JTktPViBNSVJKQU5BCitOSU5LT1YgTUlSS08KK05JTktPViBNSVJPU0xBVgorTklOS09WIE1JUk9TTEFWCitOSU5LT1YgTkFEQQorTklOS09WIE5FQk9KxaBBCitOSU5LT1YgTkVCT0rFoEEKK05JTktPViBOSUtPTEEKK05JTktPViBPTEdJQ0EKK05JTktPViBSQURJQ0EKK05JTktPViBTQVZFVEEgRElQTCBJTkcKK05JTktPViBTQVZFVEEKK05JTktPViBTTEFWS08KK05JTktPViBTTUlMSkEKK05JTktPViBTT0ZJSkEKK05JTktPViBTUE9NRU5LQQorTklOS09WIFNURVZBTgorTklOS09WIFNURVZBTgorTklOS09WIFNURVZBTgorTklOS09WIFZFTElNSVIKK05JTktPViBWRUxKS08KK05JTktPViBWRVJJQ0EKK05JTktPViBWTEFESU1JUgorTklOS09WIFZPSklTTEFWCitOSU5LT1ZJxIYgxaBQSVJPCitOSU5LT1ZJxIYgxaBQSVJPCitOSU5LT1ZJxIYgxJBVUkHEkAorTklOS09WScSGIMSQVVJBCitOSU5LT1ZJxIYgQU5LSUNBCitOSU5LT1ZJxIYgQlJBTktPCitOSU5LT1ZJxIYgREFOSUNBCitOSU5LT1ZJxIYgRFJBR0EKK05JTktPVknEhiBEVcWgQU4KK05JTktPVknEhiBFUklLQQorTklOS09WScSGIEdBVlJBCitOSU5LT1ZJxIYgSkFOS08KK05JTktPVknEhiBKT0pBCitOSU5LT1ZJxIYgSk9WQU5LQQorTklOS09WScSGIE1BUklDQQorTklOS09WScSGIE1BUktPCitOSU5LT1ZJxIYgTUnEhk8KK05JTktPVknEhiBNSUhBSUxPCitOSU5LT1ZJxIYgTUlMQU4KK05JTktPVknEhiBNSUxPxaAKK05JTktPVknEhiBNSVJKQU5BCitOSU5LT1ZJxIYgTUlSSkFOQQorTklOS09WScSGIE5JS09MQQorTklOS09WScSGIE5JS09MQQorTklOS09WScSGIFBFUkEKK05JTktPVknEhiBQRVJPCitOSU5LT1ZJxIYgUEVUQVIKK05JTktPVknEhiBSQURPTUlSCitOSU5LT1ZJxIYgUkFET1ZBTgorTklOS09WScSGIFJBSktPCitOSU5LT1ZJxIYgU1LEkEFOCitOSU5LT1ZJxIYgU1RPSkFOCitOSU5LT1ZJxIYgU1ZFVElTTEFWCitOSU5LT1ZJxIYgVkVSQQorTklTSU0gREVTQQorTklTVEVSIEVWQQorTklTVE9SIERSQUdBTgorTklTVE9SQU4gxJBPUsSQRQorTklTVE9SQU4gTUlMQU4KK05KQUdPSkVWIE1JTEFESU4KK05KQUdSSU4gU0xBVklDQQorTkpBR1VMLURPS0nEhiBTUkJJU0xBVkEKK05KQUdVTCBEVcWgQU4KK05KQVJBREkgRVZHRU5JSkUKK05KQVJBREkgSkFOS08KK05KQVJBREkgSk9WR0VOCitOSkFSQURJIE1BUklKQQorTkpBUkFESSBTT0ZJSkEKK05KQVJJIMWgQU5ET1IKK05KQVJJIERFxb1FCitOSkXFvUnEhiBPQlJBRAorTkpFxb1JxIYgWlZPTktPCitOSkVHT01JUiDEkFVSTworTkpFR09NSVIgTEpVQklOS0EgRFIgTEVLQVIKK05KRUdPTUlSIE1JTEFOCitOSkVHT01JUiBOSUtPTEEKK05KRUdPTUlSIE5PVkFLCitOSkVHT1ZBTiDFvUFSS08KK05KRUdPVkFOIEpPVkFOS0EKK05KRUdPVkFOIE1BUkEKK05KRUdPVkFOIE1BUklKQQorTkpFR09WQU4gTUlSS08KK05KRUdPVkFOIE1JUktPCitOSkVHT1ZBTiBTVE9KQU5LQQorTkpFR09WQU5PVknEhiBFTEVOQQorTkpFR1JJxIYgTUFSSUpBCitOSkVHUknEhiBSQURNSUxBCitOSkVNxIxPSyBKT8W9RUYKK05KRU1PR0EgSlVSQUoKK05KRU5KScSGIFZMQURPCitOSkVSR0XFoCBKQU5PxaAKK05KRVJHRcWgIE1BUklKQQorTkpJUkUgU1RFVkFOCitOSklSSkFLIMSQT1LEkEUKK05KSVJKQUsgTEVPTkEKK05KSVRSSSBLQVJPTEoKK05KVU5KScSGIE1JTEVWQQorTk/EjEVWU0tBIFZFTElLQQorTk/EjEVWU0tJIEJJTEpBTkEKK05PxIxFVlNLSSBSQURFCitOT8W9SUNBIENWSUpFVEEKK05Pxb1JQ0EgTUlMSVZPSkUKK05Pxb1JTknEhiBEQVJBCitOT8W9SU5JxIYgTEpVQklDQQorTk/FvUlOScSGIE1JTEFOCitOT8W9SU5JxIYgTklLT0xBCitOT0xBIFRJTU5KQQorTk9MSU4gxJBVUsSQSU5LQQorTk9OSU4gQU7EkEVMS0EKK05PTklOIERVxaBBTgorTk9OSU4gTUlMT1JBRAorTk9OSU4gTklLT0xBCitOT05JTiBTT05KQQorTk9OSU4gVklUT01JUgorTk9OS09WScSGIE1JTEFOCitOT05LT1ZJxIYgTUlMT1JBRAorTk9TQUsgxJBPUsSQRQorTk9TQUsgTUlLTE/FoAorTk9TQUxKIE1JxaBBCitOT1NFSyBFVklDQQorTk9TRUsgRlJBTkpBCitOT1NFSyBLQVJMTworTk9TRUsgS1NFTklKQQorTk9TRUsgWk9SQU4KK05PU09OSklOIExFTktBCitOT1NPTkpJTiBNSUxBTgorTk9TT05KSU4gU0FWQQorTk9TT1ZJxIYgxJBPUsSQRQorTk9TT1ZJxIYgREFOSUNBCitOT1NPVknEhiBKQU5LTworTk9TT1ZJxIYgSk9WQU4KK05PU09WScSGIEpPVkFOCitOT1NPVknEhiBaT1JBTgorTk9UQSBKQU5LTworTk9UQVJPxaAgREFSSU5LQQorTk9UQVJPxaAgREVKQU4KK05PVEFST8WgIE1JTEFOCitOT1RIT0YgRVZBCitOT1RIT0YgWk9MVEFOCitOT1bEjEnEhiBCVURJTUlSCitOT1bEjEnEhiBEQU1OSkFOCitOT1bEjEnEhiBEVcWgQU4KK05PVsSMScSGIFNUQU5BCitOT1bEjEnEhiBTVEFOQQorTk9WxIxJxIYgVEFUSkFOQQorTk9WxIxJxIYgVkxBRElNSVIKK05PVkHEjEnEhiDEkFVSQQorTk9WQcSMScSGIMSQVVJPCitOT1ZBxIxJxIYgUEVSU0lEQQorTk9WQUsgxJBPUsSQRQorTk9WQUsgQU5EUklKQQorTk9WQUsgQU5UQUwKK05PVkFLIEJPxaBLTworTk9WQUsgRFJBR0lDQQorTk9WQUsgRFXFoEFOS0EKK05PVkFLIEZSQU5KQQorTk9WQUsgScWgVFZBTgorTk9WQUsgSVJFTkEKK05PVkFLIElWQU4KK05PVkFLIEpBTkEKK05PVkFLIEpBTk/FoAorTk9WQUsgSk9TSVAKK05PVkFLIEpPU0lQCitOT1ZBSyBKT1ZBTgorTk9WQUsgTEFESVNMQVYgTVIKK05PVkFLIExBU0xPCitOT1ZBSyBMQVpBUgorTk9WQUsgTEpVQk9NSVIKK05PVkFLIE1BUkdJVEEKK05PVkFLIE1BUklKQQorTk9WQUsgTUFUSUxEQQorTk9WQUsgTUlIQUxKCitOT1ZBSyBOQU5ET1IKK05PVkFLIE5JS09MQQorTk9WQUsgU0xBVktBCitOT1ZBSyBTVEVWQU4KK05PVkFLIFNURVZBTgorTk9WQUsgU1RKRVBBTgorTk9WQUsgVElCT1IKK05PVkFLLVZBSkRBIExKSUxKQU5BCitOT1ZBSyBWQVNJTElKQQorTk9WQUsgVkVSQQorTk9WQUsgVkVST05BCitOT1ZBSyBWSUtUT1IKK05PVkFLT1YgxIxFRE9NSVIKK05PVkFLT1YgQU7EkEVMS08KK05PVkFLT1YgQk9SSVNMQVYKK05PVkFLT1YgRFJBR09MSlVCIE1SCitOT1ZBS09WIERVxaBBTgorTk9WQUtPViBHT1JEQU5BCitOT1ZBS09WIEdPU1BBVkEgRFIKK05PVkFLT1YgSkVMSUNBCitOT1ZBS09WIExBWkFSCitOT1ZBS09WIExKVUJJTktBCitOT1ZBS09WIExKVUJPTUlSCitOT1ZBS09WIE1BUklOQQorTk9WQUtPViBNSUxBTgorTk9WQUtPViBNSUxJQ0EKK05PVkFLT1YgTUlMSVZPSgorTk9WQUtPViBNSUxPUkFECitOT1ZBS09WIE1JUk9TTEFWCitOT1ZBS09WIE5BREEKK05PVkFLT1YgUFJFRFJBRworTk9WQUtPViBQUkVEUkFHCitOT1ZBS09WIFJBRE9WQU4gRElQTCBJTkcKK05PVkFLT1YgU0FWQQorTk9WQUtPViBTQVZBCitOT1ZBS09WIFNSQklTTEFWCitOT1ZBS09WIFNSRVRFTgorTk9WQUtPViBTUkVURU4KK05PVkFLT1YgU1RFVkFOIERSCitOT1ZBS09WIFNURVZBTgorTk9WQUtPViBWQUxFUklKQQorTk9WQUtPViBWRVNFTElOCitOT1ZBS09WIFpEUkFWS08KK05PVkFLT1ZJxIYgxb1JVkFOCitOT1ZBS09WScSGIMW9SVZBTgorTk9WQUtPVknEhiDFvUlWS08KK05PVkFLT1ZJxIYgxb1JVk9KSU4KK05PVkFLT1ZJxIYgxJBPUsSQRQorTk9WQUtPVknEhiDEkFVKQQorTk9WQUtPVknEhiDEkFVSTworTk9WQUtPVknEhiBBTEVLU0FOREFSCitOT1ZBS09WScSGIEFOxJBFTEtBCitOT1ZBS09WScSGIEFOQQorTk9WQUtPVknEhiBBTktBCitOT1ZBS09WScSGIEJPxaBLTyBEUiBQUk9GCitOT1ZBS09WScSGIEJPR0RBTgorTk9WQUtPVknEhiBCUkFOSVNMQVZBCitOT1ZBS09WScSGIEJSQU5JU0xBVgorTk9WQUtPVknEhiBCUkFOS08KK05PVkFLT1ZJxIYgQlJBTktPCitOT1ZBS09WScSGIENWRVRLTyBEUgorTk9WQUtPVknEhiBDVklKRVRBCitOT1ZBS09WScSGIERBTkEKK05PVkFLT1ZJxIYgREFOSUNBCitOT1ZBS09WScSGIERJTUlUUklKRQorTk9WQUtPVknEhiBEUkFHQU4KK05PVkFLT1ZJxIYgRFJBR0FOCitOT1ZBS09WScSGIERSQUdBCitOT1ZBS09WScSGIERSQUdPTEpVQgorTk9WQUtPVknEhiBEUkFHT0xKVUIKK05PVkFLT1ZJxIYgRFJBR09TTEFWCitOT1ZBS09WScSGIERVxaBBTktBCitOT1ZBS09WScSGIERVxaBBTgorTk9WQUtPVknEhiBEVcWgQU4KK05PVkFLT1ZJxIYgRFXFoEFOCitOT1ZBS09WScSGIERVxaBBTgorTk9WQUtPVknEhiBEVcWgQU4KK05PVkFLT1ZJxIYgRFXFoEFOCitOT1ZBS09WScSGIERVxaBBTgorTk9WQUtPVknEhiBGUkFOSk8KK05PVkFLT1ZJxIYgR09SREFOQQorTk9WQUtPVknEhiBHT1JJQ0EKK05PVkFLT1ZJxIYgR1JPWkRBCitOT1ZBS09WScSGIElOxJBJSkEKK05PVkFLT1ZJxIYgSkVMRU5BCitOT1ZBS09WScSGIEpFTEVOQQorTk9WQUtPVknEhiBKT1ZBTktBCitOT1ZBS09WScSGIEpPVkFOCitOT1ZBS09WScSGIEpPVkFOCitOT1ZBS09WScSGIEtPU0EKK05PVkFLT1ZJxIYgTEFaQVIKK05PVkFLT1ZJxIYgTEVQT1NBVkEKK05PVkFLT1ZJxIYgTEpJTEpBTkEKK05PVkFLT1ZJxIYgTEpVQk9NSVIKK05PVkFLT1ZJxIYgTEpVQk9NSVIKK05PVkFLT1ZJxIYgTUFSSUNBCitOT1ZBS09WScSGIE1BUklKQQorTk9WQUtPVknEhiBNQVJJSkEKK05PVkFLT1ZJxIYgTUFSSUpBCitOT1ZBS09WScSGIE1FTEFOSUpBCitOT1ZBS09WScSGIE1JxaBPCitOT1ZBS09WScSGLU1JREkgRElWTkEgRElQTCBUVVJJWk0KK05PVkFLT1ZJxIYgTUlKT0RSQUcKK05PVkFLT1ZJxIYgTUlMQU4KK05PVkFLT1ZJxIYgTUlMQU4KK05PVkFLT1ZJxIYgTUlMQU4KK05PVkFLT1ZJxIYgTUlMT8WgCitOT1ZBS09WScSGIE1JTE/FoAorTk9WQUtPVknEhiBNSUxPUkFECitOT1ZBS09WScSGIE1JTE9SQUQKK05PVkFLT1ZJxIYgTUlMT1JBRAorTk9WQUtPVknEhiBNSUxPUkFECitOT1ZBS09WScSGIE1JTE9WQU4KK05PVkFLT1ZJxIYgTUlMT1ZBTgorTk9WQUtPVknEhiBNSU9EUkFHIERSCitOT1ZBS09WScSGIE1JT0RSQUcKK05PVkFLT1ZJxIYgTUxBREVOCitOT1ZBS09WScSGIE1PTcSMSUxPCitOT1ZBS09WScSGIE5BREEKK05PVkFLT1ZJxIYgTklLT0xBCitOT1ZBS09WScSGIE5JS09MQQorTk9WQUtPVknEhiBOSUtPTEEKK05PVkFLT1ZJxIYgTklLT0xBCitOT1ZBS09WScSGIE5JS09MQQorTk9WQUtPVknEhiBOSUtPTEEKK05PVkFLT1ZJxIYgTklLT0xBCitOT1ZBS09WScSGIE9MSVZFUgorTk9WQUtPVknEhiBQRVRBUgorTk9WQUtPVknEhiBQRVRBUgorTk9WQUtPVknEhiBQRVRBUgorTk9WQUtPVknEhiBQRVRBUgorTk9WQUtPVknEhiBQRVRBUgorTk9WQUtPVknEhiBQRVRBUgorTk9WQUtPVknEhi1QTEFWxaBJxIYgSkVMRU5BCitOT1ZBS09WScSGIFJBRE1JTE8KK05PVkFLT1ZJxIYgUkFET0pLQQorTk9WQUtPVknEhiBSQURPTUlSCitOT1ZBS09WScSGIFJBRE9NSVIKK05PVkFLT1ZJxIYgUkFET01JUgorTk9WQUtPVknEhiBSQURPVkFOCitOT1ZBS09WScSGIFJBSktPCitOT1ZBS09WScSGIFJBTktPCitOT1ZBS09WScSGIFJPU0FOS0EKK05PVkFLT1ZJxIYgUlXFvUlDQQorTk9WQUtPVknEhiBTQVZBCitOT1ZBS09WScSGIFNBVkEKK05PVkFLT1ZJxIYgU0xBVktPCitOT1ZBS09WScSGIFNMT0JPREFOCitOT1ZBS09WScSGIFNMT0JPREFOCitOT1ZBS09WScSGIFNMT0JPREFOCitOT1ZBS09WScSGIFNPRklKQQorTk9WQUtPVknEhiBTUEFTT0pBCitOT1ZBS09WScSGIFNQT01FTktBCitOT1ZBS09WScSGIFNUQU5JU0xBVgorTk9WQUtPVknEhiBTVEVWQU4gRElQTCBJTkcKK05PVkFLT1ZJxIYgU1RFVkFOCitOT1ZBS09WScSGIFNURVZBTgorTk9WQUtPVknEhiBTVEVWQU4KK05PVkFLT1ZJxIYgU1RFVk8KK05PVkFLT1ZJxIYgU1RPSkFOCitOT1ZBS09WScSGIFNWRVRPTUlSCitOT1ZBS09WScSGIFZFTElNSVIKK05PVkFLT1ZJxIYgVkVMSU5LQQorTk9WQUtPVknEhiBWRVJJQ0EKK05PVkFLT1ZJxIYgVkVTTkEKK05PVkFLT1ZJxIYgVklET0pFCitOT1ZBS09WScSGIFZJVEtPCitOT1ZBS09WScSGIFZMQURJTUlSIERJUEwgSU5HCitOT1ZBS09WScSGIFZMQURJTUlSCitOT1ZBS09WScSGIFZMQURJTUlSCitOT1ZBS09WScSGIFZMQURJU0xBVgorTk9WQUtPVknEhiBaTEFUT01JUgorTk9WQUtPVknEhiBaT1JBCitOT1ZBS09WScSGIFpPUklDQQorTk9WQUtPVknEhiBaT1JJQ0EKK05PVknEjEnEhiBNSUxPxaAKK05PVknEhiDEjEVETworTk9WScSGLcSMVUxKQUsgTEpVQklDQQorTk9WScSGIERBTklDQQorTk9WScSGIERVxaBBTgorTk9WScSGIEpPVkFOCitOT1ZJxIYgTUlMQU4KK05PVknEhiBNSUxBTgorTk9WScSGIE1JUk9TTEFWCitOT1ZJxIYgTUlST1NMQVYKK05PVknEhiBNSVRBUgorTk9WScSGIE5JS09MQQorTk9WScSGIFBBTlRFTElKQQorTk9WScSGIFBFUlNJREEKK05PVknEhiBUQVRKQU5BCitOT1ZJxIYgVE9NQQorTk9WScSGIFZMQUpLTworTk9WSUNLSSBBTEVLU0EKK05PVklLT1YgVkVSQQorTk9WSU5DIElWQU4KK05PVklUT1ZJxIYgTUFSS08KK05PVktPViDFvUlWT0pJTgorTk9WS09WIERPQlJJTEEKK05PVktPViBHQVZSQQorTk9WS09WIEpPVkFOCitOT1ZLT1YgTUlMQU4KK05PVktPViBOQURBCitOT1ZLT1YgU1RFVkFOCitOT1ZLT1YgU1RFVkFOCitOT1ZLT1YgWkFHT1JLQQorTk9WS09WScSGIMSQT1LEkEUKK05PVktPVknEhiBBTktBCitOT1ZLT1ZJxIYgQklMSkFOQQorTk9WS09WScSGIERSQUdJQ0EKK05PVktPVknEhiBEUkFHSU5KQQorTk9WS09WScSGIERVxaBBTgorTk9WS09WScSGIERVxaBBTgorTk9WS09WScSGIERVxaBBTgorTk9WS09WScSGIERVxaBBTgorTk9WS09WScSGIEVMRlJJREEKK05PVktPVknEhiBFTElaQUJFVEEKK05PVktPVknEhiBKT1ZBTgorTk9WS09WScSGIE1JSEFKTE8KK05PVktPVknEhiBNSUxBTgorTk9WS09WScSGIE1JTElOS08KK05PVktPVknEhiBNSUxPxaAKK05PVktPVknEhiBNSVJKQU5BCitOT1ZLT1ZJxIYgTU9NxIxJTE8KK05PVktPVknEhiBNT03EjElMTworTk9WS09WScSGIE5BREEKK05PVktPVknEhiBORUJPSsWgQSBEUgorTk9WS09WScSGIE5JS09MQQorTk9WS09WScSGIFJPU0EKK05PVktPVknEhiBTTUlMSktBCitOT1ZLT1ZJxIYgU1RBTktPCitOT1ZLT1ZJxIYgVkxBREEKK05PVktPVknEhiBWVUtBxaBJTgorTk9WT1NFTCBHT1JEQU5BCitOT1ZPU0VMIE1BUklKQQorTk9WT1NFTCBOQURBCitOT1ZPU0VMIFJBSktPCitOT1ZPU0VMQUMgS0FUSUNBCitOT1ZPU0VMQUMgU1RFVkFOCitOT1ZPU0VMQUMgWlZPTklNSVIKK05PVk9TRUxKQcSMS0kgTUlMSVZPSgorTk9WT1NFTE9WU0tJIEFOR0VMCitOT1ZPVCBMQURJU0xBVgorTk9WT1QgUEFWTEUKK05PVk9WScSGIMW9SVZPSklOCitOT1ZPVknEhiBCQVRSScSGCitOT1ZPVknEhiBCSUxKQU5BCitOT1ZPVknEhiBEUkFHQU4KK05PVk9WScSGIEdPUkRBTkEKK05PVk9WScSGIE1JTkEKK05PVk9WScSGIE5BREEKK05PVk9WScSGIFZMQURPCitOT1ZPVknEhiBaREVOS0EKK05PVlRBIE5JS09MQSBEUgorTk9WVEEgVkxBRElNSVIKK05PVlRBIFZMQURJTUlSCitOVcW9REnEhiBNSUxBTgorTlXFvURJxIYgT0JSQUQKK05VQkVSIEFOQQorTlVEScSGIMSQT1LEkEUKK05VREnEhiBTVkVUT1pBUgorTlVISSBGRVZaSQorTlVISSBIQUpEQU4KK05VSEkgWkVLSUpBCitOVUtBIEhBU0FOCitOVUtJxIYgQUxKTworTlVLScSGIETFvUVWQUQKK05VS0nEhiBLQU5JVEEKK05VS0nEhiBPTUVSCitPxIxFTkHFoCBMSlVETUlMQQorT8SMS0FKSSBJxaBUVkFOCitPxIxLTyBWSUxIRUxNCitPxIxPVkFKIEJPxb1FTktBCitPxIxPVkFKIFpVWkFOQQorT8WgQVAgSkVMRU5BCitPxaBBUCBKT1ZBTgorT8WgS0VSVCBBTktBCitPxaBUUknEhiBNSUxFIERJUEwgSU5HCitPxaBUUklLQSDFvUFSS08KK0/FoFRSSUtBIMW9QVJLTworT8WgVFJJS0EgREFSSU5LQQorT8W9RUdPVknEhiDFvUFSS08gRElQTCBJTkcKK0/FvUVHT1ZJxIYgQk/FoEtPCitPxb1FR09WScSGIEJSQU5LTyBESVBMIElORworT8W9RUdPVknEhiBEQU5FCitPxb1FR09WScSGIERSQUdBCitPxb1FR09WScSGIExBWkFSCitPxb1FR09WScSGIE1JUktPCitPxb1FR09WScSGIE1PTcSMSUxPCitPxb1FR09WScSGIE5FVkVOS0EKK0/FvUVHT1ZJxIYgU0xBVktPCitPxb1FR09WScSGIFNMT0JPREFOCitPxb1FS09WScSGIEdPSktPCitPxb1WQVQgSkFTTUlOQQorT8W9VkFUIEpBU01JTkEKK0/FvVZBVCBKVUxJSkFOQQorT8W9VkFUIE9ORFJFSgorT8SQScSGIEFMRUtTQU5EQVIKK09CxaBVU1QgSkFOS08KK09CQURPViBBTEVLU0FORFJBCitPQkFET1YgTUlMRQorT0JBRE9WIE5BVEFMSUpBCitPQkFET1YgU0xBVktPCitPQkFET1ZJxIYgRFXFoEFOS0EKK09CQURPVknEhiBNSUxPSkUKK09CQURPVknEhiBNSUxPSkUKK09CQURPVknEhiBNSUxPSkUKK09CQURPVknEhiBNSUxPUkFECitPQkFET1ZJxIYgU0xPQk9EQU5LQQorT0JFUk1BSkVSIEZSQU5KQQorT0JFUk1BTiBCUkFOSVNMQVYKK09CRVJUIEZSQU5DCitPQkpFRE9WScSGIFNUT0pBTgorT0JMRcWgxIxVSyBBTktBCitPQkxFxaDEjFVLIEFOS0EKK09CTEXFoMSMVUsgRFJBR0nFoEEKK09CTEXFoMSMVUsgR1JFR09SCitPQkxFxaDEjFVLIE1BUklKQQorT0JPxIxLSSBWTEFESU1JUgorT0JSQURPViBHT1JEQU5BCitPQlJBRE9WIEdPUkRBTkEKK09CUkFET1YgTEpVQknFoEEKK09CUkFET1YgTEpVQknFoEEKK09CUkFET1YgTUlMQU4KK09CUkFET1YgTUlMT1JBRAorT0JSQURPViBOQURBCitPQlJBRE9WIE5PVkFLCitPQlJBRE9WIFJBRElWT0oKK09CUkFET1YgUkFETUlMQQorT0JSQURPViBTVE9KQU5LQQorT0JSQURPVknEhiDEjEVET01JUgorT0JSQURPVknEhiDFvUlWS08KK09CUkFET1ZJxIYgxb1JVktPCitPQlJBRE9WScSGIMSQT1LEkEUKK09CUkFET1ZJxIYgxJBPUsSQRQorT0JSQURPVknEhiDEkE9SxJBFCitPQlJBRE9WScSGIMSQVVLEkElOQQorT0JSQURPVknEhiDEkFVSTworT0JSQURPVknEhiDEkFVSTworT0JSQURPVknEhiBBTEVLU0FOREFSCitPQlJBRE9WScSGIEFOS0EKK09CUkFET1ZJxIYgQk9HREFOS0EKK09CUkFET1ZJxIYgQk9HREFOCitPQlJBRE9WScSGIEJPR0RBTgorT0JSQURPVknEhiBCT1JJU0xBVgorT0JSQURPVknEhiBCT1JLQQorT0JSQURPVknEhiBCUkFOSVNMQVYKK09CUkFET1ZJxIYgQlJBTklTTEFWCitPQlJBRE9WScSGIEJSQU5LTworT0JSQURPVknEhiBCVURJTUlSCitPQlJBRE9WScSGIEJVRE8KK09CUkFET1ZJxIYgREFORQorT0JSQURPVknEhiBEQU5JSkVMQQorT0JSQURPVknEhiBEQU5JTE8gRFIKK09CUkFET1ZJxIYgRE1JVEFSCitPQlJBRE9WScSGIERPQlJJTEEKK09CUkFET1ZJxIYgRFJBR0FOCitPQlJBRE9WScSGIERSQUdJQ0EKK09CUkFET1ZJxIYgRFJBR09MSlVCCitPQlJBRE9WScSGIERVxaBBTktBCitPQlJBRE9WScSGIERVxaBBTgorT0JSQURPVknEhiBEVcWgQU4KK09CUkFET1ZJxIYgRFXFoEFOCitPQlJBRE9WScSGIERVxaBBTgorT0JSQURPVknEhiBEVcWgQU4KK09CUkFET1ZJxIYgRFXFoEFOCitPQlJBRE9WScSGIEVNSUxJSkEKK09CUkFET1ZJxIYgR0xJxaBBCitPQlJBRE9WScSGIEdPUkRBTkEKK09CUkFET1ZJxIYgR1ZPWkRFTgorT0JSQURPVknEhiBJTElKQQorT0JSQURPVknEhiBKQVNNSU5BCitPQlJBRE9WScSGIEpPVkFOCitPQlJBRE9WScSGIEpPVkFOCitPQlJBRE9WScSGIEpPVk8KK09CUkFET1ZJxIYgS09OU1RBTlRJTgorT0JSQURPVknEhiBMQVpBUgorT0JSQURPVknEhiBMQVpBUgorT0JSQURPVknEhiBMSURJSkEKK09CUkFET1ZJxIYgTEpJTEpBTkEKK09CUkFET1ZJxIYgTEpJTEpBTkEKK09CUkFET1ZJxIYgTEpJTEpBTkEKK09CUkFET1ZJxIYgTEpVQknFoEEKK09CUkFET1ZJxIYgTEpVQk9EUkFHCitPQlJBRE9WScSGIExVS0EKK09CUkFET1ZJxIYgTUFSS08KK09CUkFET1ZJxIYgTUlMQURJTgorT0JSQURPVknEhiBNSUxBTgorT0JSQURPVknEhiBNSUxBCitPQlJBRE9WScSGIE1JTEVOQQorT0JSQURPVknEhiBNSUxFTktPCitPQlJBRE9WScSGIE1JTEUKK09CUkFET1ZJxIYgTUlMRQorT0JSQURPVknEhiBNSUxJQ0EKK09CUkFET1ZJxIYgTUlMSUpBTkEKK09CUkFET1ZJxIYgTUlMS0EKK09CUkFET1ZJxIYgTUlMT8WgCitPQlJBRE9WScSGIE1JTE9KS08KK09CUkFET1ZJxIYgTUlMT1JBRAorT0JSQURPVknEhiBNSUxPUkFECitPQlJBRE9WScSGIE1JTE9WQU4gRElQTCBJTkcKK09CUkFET1ZJxIYgTUlMVU4KK09CUkFET1ZJxIYgTUlMVVRJTgorT0JSQURPVknEhiBNSU9EUkFHCitPQlJBRE9WScSGIE1JUkHFoAorT0JSQURPVknEhiBNSVJKQU5BIERJUEwgSU5HCitPQlJBRE9WScSGIE1JUktPCitPQlJBRE9WScSGIE1JUk9TTEFWCitPQlJBRE9WScSGIE1MQURFTgorT0JSQURPVknEhiBOQURBCitPQlJBRE9WScSGIE5FQk9KxaBBCitPQlJBRE9WScSGIE5FREVMSktBCitPQlJBRE9WScSGIE5FREVMSktPCitPQlJBRE9WScSGIE5FTUFOSkEKK09CUkFET1ZJxIYgTkVOQUQgRFIgTEVLQVIKK09CUkFET1ZJxIYgTklLT0xBCitPQlJBRE9WScSGIFBFVEFSCitPQlJBRE9WScSGIFBFVEFSCitPQlJBRE9WScSGIFJBREUKK09CUkFET1ZJxIYgUkFESVZPSkUKK09CUkFET1ZJxIYgUkFESVZPSgorT0JSQURPVknEhiBSQURNSUxBCitPQlJBRE9WScSGIFJBVEtPCitPQlJBRE9WScSGIFJPU0EKK09CUkFET1ZJxIYgU0FWQQorT0JSQURPVknEhi1TSUtJTUnEhiBNSVJKQU5BCitPQlJBRE9WScSGIFNMQVZJQ0EKK09CUkFET1ZJxIYgU0xBVktPCitPQlJBRE9WScSGIFNMQVZLTworT0JSQURPVknEhiBTTE9CT0RBTgorT0JSQURPVknEhiBTTUlMSktBCitPQlJBRE9WScSGIFNNSUxKS0EKK09CUkFET1ZJxIYgU1RBTklNSVIKK09CUkFET1ZJxIYgU1RBTktPCitPQlJBRE9WScSGIFNURVZBTiBEUgorT0JSQURPVknEhiBTVEVWQU4KK09CUkFET1ZJxIYgU1RFVkFOCitPQlJBRE9WScSGIFNURVZPCitPQlJBRE9WScSGIFNURVZPCitPQlJBRE9WScSGIFNUSkVQQU4KK09CUkFET1ZJxIYgU1ZFVE9aQVIKK09CUkFET1ZJxIYgU1ZFVE9aQVIKK09CUkFET1ZJxIYgU1ZFVE9aQVIKK09CUkFET1ZJxIYgVE9ET1IKK09CUkFET1ZJxIYgVkVSQQorT0JSQURPVknEhiBWRVJBCitPQlJBRE9WScSGIFZPSklTTEFWCitPQlJBRE9WScSGIFpMQVRJQ0EKK09CUkVIVCBQRVRBUgorT0JSRU5JxIYgQk9SSVZPSkUKK09CUkVOScSGIERSQUdPCitPQlJFTknEhiBKRUxJU0FWRVRBCitPQlJFTknEhiBNQU5PSkxFCitPQlJFTknEhiBNSUxBRElOCitPQlJFTknEhiBNSUxFVkEKK09CUkVOScSGIE1JTE9NSVIKK09CUkVOScSGIFBSRURSQUcKK09CUkVOScSGIFJBRE9NQU4KK09CUkVOScSGIFNORcW9QU5BCitPQlJFTk9WIMW9SVZBTgorT0JSRU5PViDFvUlWQU4KK09CUkVOT1YgSkVMRU5BCitPQlJFTk9WIEpFVlJFTQorT0JSRU5PViBKT0xBTkRBCitPQlJFTk9WIEtSVU5BCitPQlJFTk9WIFBFVEFSCitPQlJFTk9WIFJBRElWT0oKK09CUkVOT1YgU0FOSkEKK09CUkVOT1YgU0FWQQorT0JSRU5PViBTTE9CT0RBTktBCitPQlJFTk9WIFNUQU5LQQorT0JSRU5PViBTVEVWQU4KK09CUkVOT1YgVkFTQQorT0JSRU5PViBWTEFESU1JUgorT0JSRU5PViBaT1JJQ0EKK09CUkVOT1YgWk9SSUNBCitPQlJFTk9WScSGIEJPxb1JREFSCitPQlJFTk9WScSGIEJSQU5LTworT0JSRU5PVknEhiBEQVJJTktBCitPQlJFTk9WScSGIERFU0lNSVIKK09CUkVOT1ZJxIYgS0FUQVJJTkEKK09CUkVOT1ZJxIYgTUlMQU4gRFIKK09CUkVOT1ZJxIYgTUlPRFJBRyBESVBMIElORworT0JSRU5PVknEhiBNSVJPU0xBVgorT0JSRU5PVknEhiBOSUtPTEEKK09CUkVOT1ZJxIYgUkFET1NMQVYKK09CUkVOT1ZJxIYgVEFUSkFOQQorT0JSRU5PVknEhiBWQVNPCitPQlJFTk9WScSGIFZMQUpLTworT0JSScSGIEdPSktPCitPQlJJxIYgUkFET0pJQ0EKK09CUktORcW9RVYgxJBPUsSQRQorT0JSS05Fxb1FViBNSUxFTktPCitPQlJLTkXFvUVWIFJBRE1JTEEKK09CUktORcW9RVYgUkFET0pLQQorT0JSS05Fxb1FViBTVEVWQU4KK09CUk9WQcSMS0kgRFXFoElDQQorT0JST1ZBxIxLSSBHT1JEQU5BCitPQlJPVkHEjEtJIE1JUk9TTEFWCitPQlJPVkHEjEtJIFJBREUKK09CUk9WQcSMS0kgU1ZFVE9aQVIKK09CUk9WQUMgTUlKQVQKK09CUk9WU0tJIMSQT1LEkEUKK09CUk9WU0tJIERSQUdVVElOCitPQlJPVlNLSSBJVkFOCitPQlJPVlNLSSBKT1ZBTgorT0JST1ZTS0kgS0FUSUNBCitPQlJPVlNLSSBNSUhBSkxPCitPQlJPVlNLSSBWQVNBCitPQlXEhklOQSBSQVRPTUlSCitPQlXEhklOQSBTTEFWS08KK09CVcSGSU5BIFNMQVZPTEpVQgorT0NPS09MSknEhiBMSlVCSU5LTworT0TFvUnEhiBOT1ZLQQorT0TFvUnEhiBSQVRPTUlSCitPRMW9ScSGIFpPUktBCitPRMW9T1ZTS0kgSUxJSkEKK09EQUTFvUnEhiBEVcWgQU4KK09EQUTFvUnEhiBHT1JEQU5BCitPREFExb1JxIYgSkVMSVNBVkVUQQorT0RBRMW9ScSGIE5BREEKK09EQUTFvUnEhiBSQURJVk9KCitPREFExb1JxIYgU1RFVkFOCitPREFMT1ZJxIYgQlJBTktPCitPREFWScSGLUpPU0nEhiBKRUxJQ0EgRElQTCBJTkcKK09EQVZJxIYgTUlMS0EKK09EQVZJxIYgU0xBVktPCitPRE9SIEpPU0lQCitPRE9WScSGIEpPVk8KK09EUkkgQkFMSU5UCitPRFJJIEtBUkxPCitPRkVOQkVIRVIgR0laRUxBCitPRkVOQkVIRVIgVkFMRVJJSkEKK09GRU5CRUhFUiBWRVJJQ0EKK09HQVIgSkVMRU5BCitPR0FSIFZMQURFCitPR05FTk9WU0tBIEJPSkFOQQorT0dORU5PVlNLQSBDVkVUQU5LQQorT0dOSkFOQUMgRFJBR0lDQQorT0dOSkFOT1YgTUlMRVRBCitPR05KQU5PVkFDIEJPUklTTEFWCitPR05KQU5PVknEhiDEkE9SxJBFCitPR05KQU5PVknEhiBBQ0EKK09HTkpBTk9WScSGIEJSQU5JU0xBVkEKK09HTkpBTk9WScSGIERBTklMTworT0dOSkFOT1ZJxIYgREVKQU4gRFIgTEVLQVIKK09HTkpBTk9WScSGIERNSVRBUgorT0dOSkFOT1ZJxIYgTUFSSUpBIERSIExFS0FSCitPR05KQU5PVknEhiBNSUhBSkxPCitPR05KQU5PVknEhiBNSUxPVkFOCitPR05KQU5PVknEhiBPR05KRU5BCitPR05KQU5PVknEhiBSQURPSktBIERSIExFS0FSCitPR05KQU5PVknEhiBSQU5LTworT0dOSkFOT1ZJxIYgU1BBU09KRQorT0dOSkFOT1ZJxIYgU1ZFVExBTkEKK09HTkpFTk9WScSGIEJPxb1JREFSCitPR05KRU5PVknEhiBEQVJBCitPR05KRU5PVknEhiBEUkFHVVRJTgorT0dOSkVOT1ZJxIYgTUlMRU5LTworT0dOSkVOT1ZJxIYgTklLT0xBCitPR05KRU5PVknEhiBOSUtPTEEKK09HTkpFTk9WScSGIE5PVktBCitPR05KRU5PVknEhiBQRVRBUgorT0dOSkVOT1ZJxIYgUkFET1ZBTktBCitPR05KRU5PVknEhiBTVEFOSVNMQVYKK09HTkpFTk9WScSGIFNURVZBTgorT0dOSkVOT1ZJxIYgU1RFVk8KK09HTkpFTk9WScSGIFRPTUlTTEFWCitPR09SRUxJQ0EgQklMSkFOQQorT0dPUkVMSUNBIEJPR0RBTgorT0dPUkVMSUNBIEJSQU5LTworT0dPUkVMSUNBIE1BUklKQQorT0dSSVpFSyBEUkFHSUNBCitPR1JJWkVLIERSQUdVVElOCitPR1JJWkVLIEtSSVNUSU5BCitPR1JJWkVLIFJPQkVSVAorT0dSSVpPVknEhiBBTEVLU0FOREFSCitPR1JJWk9WScSGIEJPUkEKK09HUklaT1ZJxIYgREVTQU5LQQorT0dSSVpPVknEhiBERVNBTktBCitPR1JJWk9WScSGIERSQUdJQ0EKK09HUklaT1ZJxIYgRFXFoEFOCitPR1JJWk9WScSGIExKVUJJQ0EKK09HUklaT1ZJxIYgTEpVQklDQQorT0dSSVpPVknEhiBNSUxBTgorT0dSSVpPVknEhiBNSUxFCitPR1JJWk9WScSGIE1JTElWT0oKK09HUklaT1ZJxIYgTkVERUxKS08KK09HUklaT1ZJxIYgTkVERUxKS08KK09HUklaT1ZJxIYgUkFET0pLQQorT0dSSVpPVknEhiBTUkVUQQorT0dSSVpPVknEhiBWRUxKS08KK09HUklaT1ZJxIYgVkxBRElNSVIKK09HUklaT1ZJxIYgWk9SQU4KK09KREFOScSGIFNBVkEKK09KS0nEhiBTTEFWS08KK09LQcWgQU5PVknEhiBTUkVURU4KK09LQU5KIFNURVZBTgorT0tBTkpJIExBSk/FoAorT0tBTkpJIE9TS0FSCitPS0FOSkkgUkFOS0EKK09LQU5KSSBUSUJPUgorT0tBTk9WScSGIE5PVklDQQorT0tFWkFOIEpPVkFOCitPS0lMSiBTTEFWS08KK09LSUxKRVZJxIYgU09GSUpBCitPS0xKRcWgQSBORU5BRAorT0tMSkXFoEEgTkVOQUQKK09LTE9CRMW9SUpBIE1BUktPCitPS1JBSk5PViBTVEVWQU4KK09LUlXFvU5JSyBEUkFHQU4KK09LU0VORkVMRCBKT1ZBTgorT0tVS0EgTEpJTEpBTkEKK09LVUxJxIYgQk9HREFOCitPS1VMScSGIFpPUkFOCitPTMWgT1ZJIE5JS09MQQorT0xBSCDFoEFORE9SCitPTEFIIMWgQU5ET1IKK09MQUggxaBBTkRPUgorT0xBSCDEkE9SxJBFCitPTEFIIEFORFJJSkEKK09MQUggRVJOQQorT0xBSCBGRVJFTkMKK09MQUggRkVSRU5DCitPTEFIIEnFoFRWQU4KK09MQUggScWgVFZBTgorT0xBSCBKRUxFTkEKK09MQUggSkVMSVNBVkVUQQorT0xBSCBKT1ZBTgorT0xBSCBKVUxJSkFOQQorT0xBSCBMQVNMTworT0xBSCBNSVJLTworT0xBSCBOQU5ET1IKK09MQUggTkFORE9SCitPTEFIIFBBVkxFCitPTEFIIFBBVkxFCitPTEFIIFJPWkFMSUpBCitPTEFIIFZJTkNFCitPTEFKT8WgIEJFTEEKK09MQUpPxaAgR09SREFOQQorT0xBSk/FoCBKQU5PxaAKK09MQUpPxaAgTUlIQUxKCitPTEFKT8WgIE1JSEFMSgorT0xBSk/FoCBPVE8KK09MQVIgUEFVCitPTEJJTkEgU0xBVktPCitPTEVBUiBNSUhBSkxPCitPTEVBUiBNSUhBSkxPCitPTEVBUiBTQU5KQQorT0xFQVIgU1ZFVElTTEFWCitPTEVBUiBWTEFEQQorT0xFSkFSIEpPQUtJTQorT0xJxIxLT1YgQlJBTklTTEFWCitPTEnEjEtPViBNSUxPUkFECitPTEnEhiBTVEVWQU4KK09MSVZFUknEhiBORUJPSsWgQQorT0xKxaBFVlNLQSBOQVRBxaBBCitPTEpBxIxBIElMSUpBCitPTEpBxIxBIE1BUklDQQorT0xKQcSMQSBNSUxFTktPCitPTEpBxIxBIE1JTE9WQU4KK09MSkHEjEEgTklLT0xBCitPTEpBxIxBIFJBREEKK09MSkHEjEEgU0xBVk9MSlVCCitPTEpBxIxBIFNUQU5JU0xBVgorT0xKQcSMQSBTVEVWQU4KK09MTUFOIE1BUklKQQorT0xVxaBLSSBET0JSSUxBCitPTFXFoEtJIERVxaBBTgorT0xVxaBLSSBEVcWgQU4KK09MVcWgS0kgTEFaQVIKK09MVcWgS0kgTUlMVVRJTgorT0xVxaBLSSBNSVJPU0xBVgorT0xVxaBLSSBNSVJPU0xBVgorT0xVxaBLSSBPTElWRVJBCitPTFXFoEtJIFNUT0pBTgorT0xVxaBLSSBUT0RPUgorT0xVxaBLSSBUT01JU0xBVgorT0xVxaBLSSBWQVNBCitPTFXFoEtJIFZFTElNSVIgRFIKK09MVcWgS0kgVkVSSUNBCitPTFVKScSGIElWQU5BCitPTFVKScSGIElWQU4KK09MVUpJxIYgSkVMRU5BCitPTFVKScSGIE1JTElDQQorT0xVSknEhiBNSVJLTworT03EjElLVVMgQk/FoEtPCitPTcSMSUtVUyBKRUxFTkEKK09NxIxJS1VTIE1BR0RBCitPTcSMSUtVUyBOSUtPTEEKK09NxIxJS1VTIFJBSktPCitPTUFMSkVWIElWQU4KK09NQUxKRVYgSVZBTgorT01BTEpFViBKVUxLQQorT01BTEpFViBMRVBPU0FWQQorT01BTEpFViBMRVBPU0FWQQorT01BTEpFViBNSUxFTkEKK09NQUxKRVYgTUlMT1JBRAorT01BTEpFViBWT0pJU0xBVgorT01BWknEhiBTT0ZJSkEKK09NRVJBR0nEhiBLRU1BTAorT01FUkkgSEFKUlVESU4KK09NRVJJIEhBTElNCitPTUVSSSBIQVNPCitPTUVSSSBORUTFvUFECitPTUVSSSBOVVJVRElOCitPTUVSWlUgQU5UT04KK09NRVJaVSBFTElaQUJFVEEKK09NScSGIElEUklaCitPTU9SQUMgS0FUQVJJTkEKK09NT1JBQyBMQVRJTktBCitPTsSMRVZTS0kgSk9WQU4KK09OxIxVIFBFVEFSCitPTkRSSUsgRFXFoEFOS0EKK09ORcWgxIxVSyBNSUhBSkxPCitPTkXFoMSGVUsgTkVOQUQKK09OSEFVWiBNQVJJSkEKK09OT0RJIEnFoFRWQU4KK09QQcSMQUsgQU5UVU4KK09QQcSMQUsgSVZBTgorT1BBxIxJxIYgQU7EkEEKK09QQcSMScSGIEFOR0VMSU5BCitPUEHEjEnEhiBCT1NJTEpLQQorT1BBxIxJxIYgQlJBTktPCitPUEHEjEnEhiBEVcWgQU4KK09QQcSMScSGIEtPU1RBCitPUEHEjEnEhiBNSUxBTgorT1BBxIxJxIYgTUlMQU4KK09QQcSMScSGIE1JTE9SQUQKK09QQcSMScSGIE1JT0RSQUcKK09QQcSMScSGIE1JUktPCitPUEHEjEnEhiBNSVJLTworT1BBxIxJxIYgTkVOQUQKK09QQcSMScSGIFBBVkxFCitPUEHEjEnEhiBTSU1PCitPUEHEjEnEhiBTTEFWS08KK09QQcSMScSGIFNURVZBTgorT1BBxIxJxIYgVE9ET1IKK09QQUxJxIYgREFSSU5LQQorT1BBTEnEhiBNQVJLTworT1BBTEnEhiBOSUtPTEEKK09QQUxJxIYgTklLT0xBCitPUEFMScSGIE5JS09MQQorT1BBTEnEhiBTT0ZJSkEKK09QQU7EjEFSRVYgRFXFoEFOCitPUEFOxIxBUkVWIElWQU4KK09QQU7EjEFSRVYgTUlMS0EKK09QQVJOSUNBIExKVUJPCitPUEFSTklDQSBMVUtBCitPUEFSTklDQSBNQUtTSU0KK09QQVJOSUNBIE1BS1NJTQorT1BBUk5JQ0EgTUFLU0lNCitPUEFSTklDQSBNQVJJTktPCitPUEFSTklDQSBNSUxFTktPCitPUEFSTklDQSBNSVJBCitPUEFSTklDQSBTT0ZJSkEKK09QQVJOSUNBIFZJRAorT1BFTEMgTEFESVNMQVYKK09QT0pMRVZJxIYgTEFaQVIKK09QUkFOT1ZJxIYgQk/FvUlEQVIKK09QUkFOT1ZJxIYgTUlDQQorT1BSRcWgTklLIEFOS0lDQQorT1BSSUpBTiBBTsSQRUxLTyBESVBMIElORworT1BSSUpBTiBEUkFHQU4KK09QUklKQU4gTUlMS0EKK09QUlVDIE1JTE9SQUQKK09QU0VOSUNBIE1JTEFOCitPUFNFTklDQSBTT0tBCitPUsSMScSGIMWgSU1FCitPUsSMScSGIMWgSU1FCitPUsSMScSGIEJPxb1JREFSCitPUsSMScSGIERSQUdPCitPUsSMScSGIElWQU4KK09SxIxJxIYgU1RKRVBBTgorT1LFoEnEhiDEkE9SxJBFCitPUsWgScSGIEpPQ0EKK09SxaBJxIYgTUlMSUNBCitPUsWgT8WgIMSQT1LEkEUKK09SxaBPxaAgQlJBTktPCitPUsWgT8WgIERSQUdBTgorT1LFoE/FoCBGRVJFTkMKK09SxaBPxaAgSk9TSVAKK09SxaBPxaAgTklLT0xBCitPUsWgT8WgIFJPWkFMSUpBCitPUsWgT8WgIFNBVkEKK09SxaBPxaAgVEVSRVpBCitPUsWgT8WgIFpPUkFOCitPUsWgT0xJxIYgU1RKRVBBTgorT1JBTklDQSBNQUtTSU0KK09SQVZFQyBCUkFOSVNMQVYKK09SQVZFQyBCUkFOS08KK09SQVZFQyBNQVJLTworT1JBVkVDIFBBVkxFCitPUkJBTiBBTEVLU0FOREFSCitPUkJBTiBFTUlMSUpBCitPUkJBTiBHQVZSQQorT1JCQU4gVkVTTkEKK09SREFOT1NLSSBKRUxFTkEKK09SRElOQcSMRVYgxJBPUsSQRQorT1JESU5BxIxFViBNTEFERU4KK09SRElOQcSMRVYgVE9ET1IKK09SRElOQcSMRVYgVE9ET1IKK09SRElOQcSMRVYgVE9ET1IKK09SRcWgxIxBTklOIEJPR0RBTgorT1JFxaDEjEFOSU4gQlJBTktPCitPUkXFoMSMQU5JTiBNSUxBTgorT1JFxaDEjEFOSU4gTUlMT1ZBTgorT1JFxaDEjEFOSU4gTkFUQUxJSkEgRFIKK09SRcWgxIxBTklOIE5BVEFMSUpBCitPUkXFoMSMQU5JTiBOSUtPTEEKK09SRcWgxIxBTklOIFJBRE9WQU4KK09SRcWgxIxBTklOIFZMQURJTUlSCitPUkXFoMSMQU5JTiBWTEFESU1JUgorT1JFxaDEhkFOSU4gRFXFoEFOCitPUkXFoEtPVknEhiBET05BCitPUkXFoEtPVknEhiBKRUxFTkEKK09SRcWgS09WScSGIE1JTEUKK09SRcWgS09WScSGIFNMQVZLTworT1JFxaBLT1ZJxIYgWlZPTklNSVIKK09SRUIgQk9SSVMKK09SRUhPVkFDIFJVxb1BCitPUkVMSiDEkFVSTworT1JFTEogQlJBTklTTEFWCitPUkVMSiBEQVJJTktBCitPUkVMSiBKT1ZBTgorT1JFTEogTEpVQk8KK09SRUxKIE1BVElMREEKK09SRUxKIE1JTEVWQQorT1JFTEogTkFUQUxJSkEKK09SRUxKIFJBREUKK09SRU5ESSBKVUxJSkFOQQorT1JFTkRJIExBU0xPCitPUkVOREkgT1RPCitPUkxBTkRJxIYgS09STkVMSUpBCitPUkxBTkRJxIYgWk9MVEFOCitPUkxJxIYgQlJBTklTTEFWCitPUkxJxIYgTEpVQklDQQorT1JMScSGIExKVUJJQ0EKK09STEnEhiBNQVJJQ0EKK09STEnEhiBNQVJJSkEKK09STEnEhiBNSUxBTgorT1JMScSGIE1JTE9SQUQKK09STEnEhiBOQURBCitPUkxJxIYgTkFERcW9REEKK09STEnEhiBORURFTEpLTworT1JMSUsgQU5BCitPUkxJSyBNQVJJSkEKK09STE9WQUMgRVLFvUVCRVQKK09STE9WScSGIEFOVEUKK09STE9WScSGIERBUklOS0EKK09STE9WScSGIERVxaBBTgorT1JMT1ZJxIYgSk9WTworT1JMT1ZJxIYgTEpVQklDQQorT1JMT1ZJxIYgTUFORQorT1JMT1ZJxIYgTUlIQUpMTworT1JMT1ZJxIYgTUlMQU4KK09STE9WScSGIE1JTEFOCitPUkxPVknEhiBNSUxPUkFEIERSCitPUkxPVknEhiBNSUxPUkFECitPUkxPVknEhiBTQcWgQQorT1JMT1ZJxIYgU1JCT0xKVUIKK09STE9WScSGIFNURVZJQ0EKK09STE9WScSGIFNUT0pBTgorT1JMT1ZJxIYgU1ZFVExBTkEKK09STUFJIFRJQk9SCitPUk5KQUtPViBQUklaUkVOS0EKK09STyDEjEVET01JUgorT1JPUyDFvUFSS08KK09ST1MgxJBVUkEKK09ST1MgxJBVUkEKK09ST1MgQUxCRVJUCitPUk9TIEVVR0VOCitPUk9TIEpPQUtJTQorT1JPUyBNQVJJSkEKK09ST1MgTklLT0xBCitPUk9TIFZBU0EKK09ST1MgWkRFTktBCitPUk9WxIxBTkVDIEtJUkEgRFIKK09ST1ZFQyBKT1NJUAorT1JPVknEhiBNSUxPVkFOCitPUlNBRyBBTlRBTAorT1JTScSGIFJBRE1JTEEKK09SVEFLIEtBxIZBCitPUlZPxaAgTEFKT8WgCitPUlpBIE1JUkNBCitPUlpBIFJPU0FOQQorT1NFxIZBTlNLSSBNTEFERU4KK09TRVRST1YgTklLT0xBCitPU0xPVsSMQU4gQk9TSUxKS0EKK09TTUFOQUogSU1FUgorT1NNQU5JIEFTQU4KK09TTUFOSSBNRUhNRUQKK09TTUFOSSBORcWgQVQKK09TTUFOSSBST01BTktBCitPU01BTkkgU0VMSU0KK09TTUFOS0HEjCBTRUxJTQorT1NNQU5PVknEhiBLTEFVRElKQQorT1NNQU5PVknEhiBMSlVCSU5LQQorT1NNT05PSiBTQURSSUpBCitPU05PVknEhiBPU0tBUgorT1NPU0xJSkEgUkFERU5LTworT1NSRURLQVIgSk9TSVAKK09TVEVSIElMT05BCitPU1RPScSGIMSQT1LEkEUKK09TVE9JxIYgWk9SQU4KK09TVE9KScSGIMW9SVZLTworT1NUT0pJxIYgxJBPUsSQRQorT1NUT0pJxIYgQk/FoEtPCitPU1RPSknEhiBCT8W9SURBUgorT1NUT0pJxIYgQk/FvUlEQVIKK09TVE9KScSGIEJPR0RBTgorT1NUT0pJxIYgQlJBTkEKK09TVE9KScSGIEJSQU5JTUlSCitPU1RPSknEhiBCUkFOSVNMQVYgRFIKK09TVE9KScSGIEJSQU5LTworT1NUT0pJxIYgREFGSU5BCitPU1RPSknEhiBET0JSSVZPSgorT1NUT0pJxIYgRFJBR0FOCitPU1RPSknEhiBEUkFHSUNBCitPU1RPSknEhiBEUkFHSUNBCitPU1RPSknEhiBEUkFHT0xKVUIKK09TVE9KScSGIERVxaBBTgorT1NUT0pJxIYgRFXFoEFOCitPU1RPSknEhiBEVcWgQU4KK09TVE9KScSGIEdPSktPCitPU1RPSknEhiBHT1JJTktBCitPU1RPSknEhiBJVkFOCitPU1RPSknEhiBKT1ZBTktBCitPU1RPSknEhiBLQVRJQ0EKK09TVE9KScSGIExBWkFSCitPU1RPSknEhiBMSlVCQQorT1NUT0pJxIYgTEpVQklOS08KK09TVE9KScSGIExKVUJPTUlSCitPU1RPSknEhiBMSlVCT01JUgorT1NUT0pJxIYgTEpVQk9NSVIKK09TVE9KScSGIE1JxIZBCitPU1RPSknEhiBNSUxBRElOCitPU1RPSknEhiBNSUxBTgorT1NUT0pJxIYgTUlMRU5LTworT1NUT0pJxIYgTUlMRU5LTworT1NUT0pJxIYgTUlMRVZBCitPU1RPSknEhiBNSUxJQ0EKK09TVE9KScSGIE1JTEtBCitPU1RPSknEhiBNSUxPxaAKK09TVE9KScSGIE1JTE9SQUQKK09TVE9KScSGIE1JTE9SQUQKK09TVE9KScSGIE1JUkpBTkEKK09TVE9KScSGIE5BREEKK09TVE9KScSGIE5BVEHFoEEKK09TVE9KScSGIE5FTkFECitPU1RPSknEhiBPQlJBRAorT1NUT0pJxIYgT0JSQUQKK09TVE9KScSGIE9MR0EKK09TVE9KScSGIFBFVEFSCitPU1RPSknEhiBQRVRBUgorT1NUT0pJxIYgUEVUQVIKK09TVE9KScSGIFBFVEFSCitPU1RPSknEhiBQRVRBUgorT1NUT0pJxIYgUEVUQVIKK09TVE9KScSGIFBSRURSQUcKK09TVE9KScSGIFJBRElWT0pFCitPU1RPSknEhiBSQURPSklDQQorT1NUT0pJxIYgUkFET1ZBTgorT1NUT0pJxIYgUkFUS08KK09TVE9KScSGIFJJU1RPCitPU1RPSknEhiBTTEFWSUNBCitPU1RPSknEhiBTTEFWS08KK09TVE9KScSGIFNMT0JPREFOCitPU1RPSknEhiBTTUlMSktBCitPU1RPSknEhiBTVEFOQQorT1NUT0pJxIYgU1RBTktBCitPU1RPSknEhiBTVkVUT1pBUgorT1NUT0pJxIYgVE9NSVNMQVYKK09TVE9KScSGIFZBU0EKK09TVE9KScSGIFZBU0lMSUpFCitPU1RPSknEhiBWRVNFTElOCitPU1RPSknEhiBWRVNFTElOCitPU1RPSknEhiBWTEFESU1JUgorT1NUT0pJxIYgVk9KSVNMQVYKK09TVE9KScSGIFpBR09SS0EKK09TVE9KScSGIFpPUkFOCitPU1RPSknEhiBaT1JBCitPU1RPSklOIMW9QVJLTworT1NUT0pJTiBKVUxLQQorT1NUT0pJTiBMQVpBUgorT1NUT0pJTiBNQVJJSkEKK09TVE9KSU4gTUlMT8WgCitPU1RPSklOIFBFUkEKK09TVE9KSU4gUEVSTworT1NUT0pJTiBQRVRBUgorT1NUT0pJTiBQRVRBUgorT1NUT0pJTiBSQURPVkFOCitPU1RPSklOIFNWRVRJU0xBVgorT1NUT0pJTiBUT8WgQQorT1NUUk9HT05BQyBJVkFOIE5PVklOQVIKK09TVFJPR09OQUMgSVZBTgorT1NUUk9HT05BQyBUSUJPUgorT1NWQUxEIEJBUkJBUkEKK09TVkFMRCBJVkFOCitPU1ZBTEQgVkVSQQorT1RBxaBFVknEhiDFvUlWS08KK09UQcWgRVZJxIYgSk9WQU4KK09UQcWgRVZJxIYgU0xPQk9EQU5LQQorT1RBxaBFVknEhiBWTEFTVEEKK09UScSGIMW9SVZLTworT1RJxIYgQk9SSVZPSgorT1RJxIYgQk9SSVZPSgorT1RJxIYgREFSSU5LQQorT1RJxIYgRFVCUkFWS0EKK09UScSGIEpPVkFOS0EKK09UScSGIEtBVElDQQorT1RJxIYgTUlMQU4KK09UScSGIE1JTElWT0oKK09UScSGIE5JS09MQQorT1RJxIYgTk9WQUsKK09UScSGIFJBRE9TTEFWQQorT1RJxIYgUkFET1NMQVZBCitPVEnEhiBSQURPU0xBVgorT1RJxIYgU0FWQQorT1RJxIYgU1ZFVE9aQVIKK09UScSGIFZFTElaQVIKK09UScSGIFZMQURJU0xBVgorT1RJxIYgVlVLSUNBCitPVExPS0FOIEpPVkFOCitPVE1BxIxJxIYgRFJBR08KK09UT8WgIEFORFJBxaAKK09UT1JBTk9WIFNMQVZLTworT1RPVknEhiBWTEFESU1JUgorT1RSVVDEjEFLIEpPU0lQCitPVFJVUMSMQUsgTUlMT8WgCitPVFJVUMSMQUsgU0FNVUlMTworT1ZDSU4gTUlMT1JBRAorT1ZVS0EgxJBVUk8KK09WVUtBIMSQVVJPCitPVlVLQSBNSUxBTgorT1ZVS0EgTklLT0xBCitPWkVSIMSQVVJBCitPWkVSIMSQVVJBCitPWkVSIMSQVVJBCitPWk1FQyBWRVJBCitQxaBFTknEjE5JSyBaVk9OSU1JUgorUEHEjEFSScSGIMW9SVZBTgorUEHEjEFSScSGIE1BUklKQQorUEHEjEFSScSGIE1JUktPCitQQcSMQVJJxIYgTklLT0xBCitQQcSMQVJJxIYgUkFESVZPSgorUEHEjEFSScSGIFJBRE9NSVIKK1BBxIxBUknEhiBaT1JBTgorUEHFoMSGQU4gxaBURUZBTklKQQorUEHFoMSGQU4gxJBPUsSQRQorUEHFoMSGQU4gxJBPUsSQRQorUEHFoMSGQU4gQU5LQQorUEHFoMSGQU4gREFOSUNBCitQQcWgxIZBTiBEUkFHQU4KK1BBxaDEhkFOIERVxaBBTktBCitQQcWgxIZBTiBEVcWgQU4KK1BBxaDEhkFOIEdBVlJBCitQQcWgxIZBTiBKT1ZBTgorUEHFoMSGQU4gSk9WQU4KK1BBxaDEhkFOIE1JTE9SQUQKK1BBxaDEhkFOIE5BREXFvURBCitQQcWgxIZBTiBORURFTEpLTworUEHFoMSGQU4gTklLT0xBCitQQcWgxIZBTiBPTEdBCitQQcWgxIZBTiBQRVJBCitQQcWgxIZBTiBQRVRBUgorUEHFoMSGQU4gUkFESVZPSgorUEHFoMSGQU4gUkFET1NMQVZBCitQQcWgxIZBTiBSQURPU0xBVgorUEHFoMSGQU4gU0FWQQorUEHFoMSGQU4gU0lOScWgQQorUEHFoMSGQU4gU01JTEpBCitQQcWgxIZBTiBTVEVWQU4KK1BBxaDEhkFOIFRPRE9SCitQQcWgxIZBTiBWQVNBCitQQcWgxIZBTiBaQUdPUktBCitQQcWgxIZBTk9WScSGIEdSQURJTUlSCitQQcWgxIZBTk9WScSGIExBWkFSCitQQcWgxIZBTk9WScSGIExKVUJJQ0EKK1BBxaDEhklLIEtMQVJBCitQQcWgxIZJSyBMQVNMTworUEHFoEFHScSGIFJBSktPCitQQcWgQUpMScSGIEFOxJBFTEtPCitQQcWgQUpMScSGIEJJTEpBTkEKK1BBxaBBSkxJxIYgTUlPRFJBRworUEHFoEFKTEnEhiBSQURPU0xBVgorUEHFoEFKTEnEhiBSQURPU0xBVgorUEHFoEFKTEnEhiBWTEFETworUEHFoEFMScSGIFBBVkxFCitQQcWgQU5TS0kgTUlMQU4KK1BBxaBBTlNLSSBWVUtJQ0EKK1BBxaBJxIYgQk/FvUFOQQorUEHFoEnEhiBCT8W9TworUEHFoEnEhiBEUkFHSUNBCitQQcWgScSGIERVxaBLTworUEHFoEnEhiBKT1ZBTgorUEHFoEnEhiBLQVRJQ0EKK1BBxaBJxIYgTUlMQU4KK1BBxaBJxIYgTUlMRU5BCitQQcWgScSGIFBFVEFSCitQQcWgScSGIFJPU0EKK1BBxaBJxIYgU0HFoEEKK1BBxaBJxIYgU0lOScWgQQorUEHFoEnEhiBTVE9KQQorUEHFoEnEhiBWT0pJU0xBVgorUEHFoEnEhiBaT1JBCitQQcWgSU4gR1JPWkRBTkEKK1BBxaBLQSDFoEFORE9SCitQQcWgS0lOT1YgVkFTS08KK1BBxaBURVJBQyBBTEVLU0FOREFSCitQQcWgVEkgxaBBTkRPUgorUEHFoFRJIE1BVElKQQorUEHFoFVKS09WScSGIEpPVkFOCitQQcSGSSBCT1JJUworUEHEhkkgScWgVFZBTgorUEHEhkkgTUFSSU8KK1BBxIZVSyBOSUtPTEEKK1BBxIZVSyBTTEFWS08KK1BBxb3EkEVSU0tJLU1BTk9KTE9WScSGIEpFTEVOQQorUEHFvUlOIMW9RUxKS08KK1BBxb1JTiBBTsSQRUxLTworUEHFvUlOIERBTklDQQorUEHFvUlOIExKVUJPTUlSCitQQcSQQU4gTEpVQk9NSVIKK1BBxJBBTiBNSUxJQ0EKK1BBxJBFTiBEVcWgQU4KK1BBxJBFTiBMRVBBCitQQcSQRU4gTUFSSUpBCitQQcSQRU4gU1RFVkEKK1BBxJBFTiBaRFJBVktPCitQQUMgSVZBTktBCitQQUNFSyBMQVNMTworUEFDSUsgScWgVFZBTgorUEFERcW9QU5JTiBMSlVCTworUEFERcW9QU5JTiBWTEFERVRBCitQQURFSlNLSSBNSUxFTkEKK1BBREVKU0tJIE1JTE9WQU4KK1BBREVKU0tJIFNBVkEKK1BBREVKU0tJIFZFTElNSVIKK1BBREkgQUxFS1NBTkRBUgorUEFESSBBTEVLU0FOREFSCitQQURJIExBSk/FoAorUEFEUk9WIEdPUkFOCitQQURST1YgTklLT0xBCitQQURST1YgUkFESVZPSgorUEFEUk9WIFZFU05BCitQQUdBxIwgQklMSkFOQQorUEFHQcSMIE5JS09MQQorUEFHQcSMRVZJxIYgQU7EkEVMS08KK1BBR0HEjEVWScSGIERSQUdPTUlSCitQQUdBxIxFVknEhiBTVEVWQU4KK1BBR0HEjEVWScSGIFNURVZBTgorUEFHQcSMRVZJxIYgVkFTQQorUEFHQU5FVE8gVElOQQorUEFHT05JUyBKVUxLQQorUEFHT05JUyBWTEFESU1JUk9TCitQQUnEhiDEkFVSQcSQCitQQUnEhiBEUkFHQU4KK1BBScSGIEZSQU5FCitQQUnEhiBJVkFOCitQQUnEhiBNQVJJSkEKK1BBSsSMScSGIEFMRUtTQQorUEFKxIxJxIYgQU5BCitQQUrEjElOIElMSUpBCitQQUrEjElOIE1JTE9KS08KK1BBSsSMSU4gTkVERUxKS0EKK1BBSsSMSU4gVk9KSVNMQVYKK1BBSkFOVEnEhiBEUkFHQU4KK1BBSkFaSVRPVknEhiBNSVJKQU5BCitQQUpEQUtPVknEhiBEVUJSQVZLQQorUEFKREnEhiBKVUxJSkEKK1BBSkRJxIYgTUFSSUpBTgorUEFKRVZJxIYgxJBPUsSQRQorUEFKRVZJxIYgRFJBR09MSlVCCitQQUpFVknEhiBHT1JBTgorUEFKRVZJxIYgS09TVEEKK1BBSkVWScSGIE1JTEFOCitQQUpJxIYgQkxBR09KRQorUEFKScSGIEJMQUdPSkUKK1BBSknEhiBCT8W9SURBUgorUEFKScSGIEJPxb1PCitQQUpJxIYgQk9HScSGCitQQUpJxIYgQk9SSVNMQVYKK1BBSknEhiBCUkFOSVNMQVYKK1BBSknEhiBCUkFOS08KK1BBSknEhiBCVURJU0xBVgorUEFKScSGIERPQlJJVk9KCitQQUpJxIYgRFJBR09TTEFWCitQQUpJxIYgRFXFoEFOIERSCitQQUpJxIYgRFXFoEFOCitQQUpJxIYgRFXFoEFOCitQQUpJxIYgRU1JTkEKK1BBSknEhiBHT1JEQU5BCitQQUpJxIYgR09SSUNBCitQQUpJxIYgR1JVSkEKK1BBSknEhiBLT1ZJTEpLQQorUEFKScSGIExKVUJJTktBCitQQUpJxIYgTEpVQk9NSVIgRElQTCBJTkcKK1BBSknEhiBNQVJJSkEKK1BBSknEhiBNSUxJQ0EKK1BBSknEhiBNSUxJVk9KRQorUEFKScSGIE1JTE/FoAorUEFKScSGIE1JTE/FoAorUEFKScSGIE1JTE9KRQorUEFKScSGIE1JTE9SQUQKK1BBSknEhiBNSUxPU0FWCitQQUpJxIYgTUlMVU4KK1BBSknEhiBNSVJLTworUEFKScSGIE1JUktPCitQQUpJxIYgTUxBREVOCitQQUpJxIYgTkFEQQorUEFKScSGIE5BREEKK1BBSknEhiBOSUtPTEEKK1BBSknEhiBOT1ZBSworUEFKScSGIFBFUk8KK1BBSknEhiBQRVRBUgorUEFKScSGIFJBRE9KSUNBCitQQUpJxIYgUkFET01JUgorUEFKScSGIFJBRE9TTEFWQQorUEFKScSGIFJBSktPCitQQUpJxIYgU0lOScWgQQorUEFKScSGIFNNSUxKQQorUEFKScSGIFNSRURPSkUKK1BBSknEhiBTVEVWQU4KK1BBSknEhiBTVkVUT1pBUgorUEFKScSGIFRJSE9NSVIKK1BBSknEhiBWQVNBCitQQUpJxIYgVkVMSU1JUgorUEFKScSGIFZFU0VMSU4KK1BBSknEhiBWSURPU0FWQQorUEFKScSGIFZMQURJU0xBVgorUEFKScSGIFZVS0lDQQorUEFKSUsgREFOSUNBCitQQUpJTiBKT1ZBTgorUEFKSU4gTUlMSVZPSgorUEFKS0VSVCBBTEVLU0FOREFSCitQQUpLRVJUIEZSQU5KQQorUEFKS0VSVCBNSVJPU0xBVkEKK1BBSktFUlQgUkFOS0EKK1BBSktJxIYgRFJBR0FOCitQQUpLScSGIFJBRE9TTEFWCitQQUpLT1ZJxIYgRFJBR0FOQQorUEFKS09WScSGIFZMQVNUSU1JUgorUEFKT1IgTUFUSUpBCitQQUpPVknEhiDFoFBJUk8KK1BBSk9WScSGIMSQT1LEkEUKK1BBSk9WScSGIERSQUdPTUlSCitQQUpPVknEhiBEVcWgQU4KK1BBSk9WScSGIEpFTEVOQQorUEFKT1ZJxIYgUFJFRFJBRworUEFKT1ZJxIYgUkFKS08KK1BBSk9WScSGIFNMT0JPREFOCitQQUpPVknEhiBaT1JLQQorUEFKVEHFoEVWIERPQlJJVk9KCitQQUpUQUsgUkFETUlMQQorUEFKVEnEhiBQQVZMRQorUEFKVkFOxIxJxIYgRlJBTkpBCitQQUpWQU7EjEnEhiBLQVRBCitQQUpWQU7EjEnEhiBNQVJJSkFOQQorUEFKVk9EIEJPU0lMSktBCitQQUtBxaBLSSDEkFVSQQorUEFLQcWgS0kgTUlLQQorUEFLQcWgS0kgTUlMT1ZBTgorUEFLQcWgS0kgUkFET1NMQVYKK1BBS0HFoEtJIFNJTUEKK1BBS0HFoEtJIFZBU0EKK1BBS0HFoEtJIFZJVEFMSUogRElQTCBJTkcKK1BBS0FJIEpPxb1FRgorUEFLQUkgTEFTTE8KK1BBS0xBUiBWSURBCitQQUtMRURJTkFDIFZJTktPCitQQUtVxaBFVlNLSSBLQVRBUklOQQorUEFLVcWgRVZTS0kgTUlIQUpMTworUEFLVcWgRVZTS0kgTUlUQVIKK1BBS1XFoEVWU0tJIFJVxb1JQ0EKK1BBS1XFoEVWU0tJSiBTVEVGQU4KK1BBTCBJTE9OQQorUEFMIFJPWkFMSUpBCitQQUzEjEVLIEpPU0lQCitQQUxBxIxLT1ZJxIYgTUlMQU4KK1BBTEHEjEtPVknEhiBVUk/FoAorUEFMQcWgVEkgxJBPUsSQRQorUEFMQcWgVEkgREVTQU5LQQorUEFMQcWgVEkgScWgVFZBTgorUEFMQcWgVEkgScWgVFZBTgorUEFMQcWgVEkgSk9TSVAKK1BBTEHFoFRJIFJPWkFMSUpBCitQQUxBREEgSk9aTworUEFMQUxJxIYgxJBVUkEKK1BBTEFMScSGIERSQUdBTgorUEFMQUxJxIYgRFXFoEFOCitQQUxBTEnEhiBHT0pLTworUEFMQUxJxIYgR09KS08KK1BBTEFMScSGIElMSUpBCitQQUxBTEnEhiBKT1ZBTgorUEFMQUxJxIYgTUlSS08KK1BBTEFMScSGIE5FVkVOQQorUEFMQUxJxIYgTklLTworUEFMQUxJxIYgUEFWTEUKK1BBTEFMScSGIFJBREUKK1BBTEFMScSGIFNORcW9QU5BCitQQUxBTEnEhiBTUkVUTworUEFMQUxJxIYgU1RPSkFOCitQQUxBTEnEhiBUT0RFCitQQUxBTEnEhiBWSUQKK1BBTEFMScSGIFZPSklOCitQQUxBTEnEhiBaRFJBVktPCitQQUxBTUFSxIxVSyBBTEVLU0FOREFSCitQQUxBTiBKT1NJUAorUEFMQU7EjEFOSU4gRUxFTkEKK1BBTEFOxIxBTklOIEpPVkFOCitQQUxBTsSMQU5JTiBSVcW9QQorUEFMQU7EjEFOSU4gVkFTQQorUEFMQU7EjEFOSU4gVkFTQQorUEFMQU5BxIxLSSDEkE9SxJBFCitQQUxBTkHEjEtJIFJVxb1JQ0EKK1BBTEFOQcSMS0kgU0FWQQorUEFMQVRJTlXFoCBBTkRSQcWgCitQQUxBVElOVcWgIEnFoFRWQU4KK1BBTEFUSU5VxaAgSk/FvUVGCitQQUxFxb1FVknEhiBCT1JJU0xBVgorUEFMRVZJxIYgU0xBVklDQQorUEFMRkkgQUxFS1NBTkRBUgorUEFMRkkgQk9SS0EKK1BBTEZJIEnFoFRWQU4KK1BBTEZJIEnFoFRWQU4KK1BBTEZJIEpVTElKQU5BCitQQUxGSSBLQVRJQ0EKK1BBTEnEjEtPIMSQVVLEkElOS0EKK1BBTEnEjEtPIEFORFJBxaAKK1BBTEnEjEtPIElMRcWgCitQQUxJxIxLTyBJUkVOQQorUEFMScSMS08gSkVMRU5BCitQQUxJxaBBxaBLSSBPTEdBCitQQUxJxIYgQk9SSVNMQVYgRElQTCBJTkcKK1BBTEnEhiBEUkFHQU4KK1BBTEnEhiBEVcWgQU4KK1BBTEnEhiBMSlVCSUNBCitQQUxJxIYgTUFSVEEKK1BBTEnEhiBNSUxFTktPCitQQUxJxIYgTklLT0xBCitQQUxJxIYgT0xHQQorUEFMScSGIFNURVZBTgorUEFMScSGIFNURVZBTgorUEFMScSGIFZMQVNUSU1JUgorUEFMSU5LQcWgIMSQT1LEkEUKK1BBTElOS0HFoCDEkFVSQQorUEFMSU5LQcWgIEJMQU5LQQorUEFMSU5LQcWgIEJPUklWT0pFIERJUEwgSU5HCitQQUxJTktBxaAgRlJBTkpBCitQQUxJTktBxaAgR0VaQQorUEFMSU5LQcWgIEpPxb1FRgorUEFMSU5LQcWgIE1BUklKQQorUEFMSU5LQcWgIE1JSEFMSgorUEFMSU5LQcWgIE1JUktPCitQQUxJTktBxaAgU1RFVkFOCitQQUxJTktBxaAgVkVSQSBEUgorUEFMSknEhiBMSlVCT01JUgorUEFMSlVSQVMgQVBPU1RPTE9TCitQQUxPxaAgSVZBTgorUEFMT8WgSSBPTEdBCitQQUxPQyDFoEFORE9SCitQQUxPQyBMQVNMTworUEFMT0MgVElCT1IKK1BBTE9UQcWgIEFORFJJSkEKK1BBTE9WIE1JSEFJTE8gRFIKK1BBTFVST1ZJxIYgU1RFUEFOCitQQU1VxIxJTkEgSk9WQU4KK1BBTsSMScSGIEdBVlJJTE8KK1BBTsSMScSGIEdSQURJTUlSCitQQU7EjEnEhiBKVUxJSkFOQQorUEFOxIxJxIYgSlVMSUpBTkEKK1BBTsSMScSGIFNMT0JPREFOCitQQU7EjEnEhiBaT1JBTgorUEFOxIxPVkFOIEFWUkFNCitQQU7EjFVMSURaRVYgQUxFS1NJSkUKK1BBTkFKT1RJRElTIExFT05JREFTCitQQU5BT1RPVknEhiBCT0dEQU4KK1BBTkFPVE9WScSGIERVxaBBTktBCitQQU5BT1RPVknEhiBKT1ZJQ0EKK1BBTkFPVE9WScSGIE1JUkpBTkEKK1BBTkNFUiBCUkFOS08KK1BBTkNFUiBCUkFOS08KK1BBTkTFvUEgQk/FvUlDQQorUEFORMW9QSBaVkVaREFOQQorUEFORMW9ScSGIE5BREEKK1BBTkTFvUnEhiBTTE9CT0RBTktBCitQQU5Exb1JxIYgU1ZFVE9aQVIKK1BBTkTFvUnEhiBUT01JU0xBVgorUEFORMW9ScSGIFZPSklTTEFWIERJUEwgSU5HCitQQU5ESSBPU0tBUgorUEFORFVSRVZJxIYgTUlMQU5LTworUEFORFVST1Ygxb1JVktBCitQQU5EVVJPViBBQ0EKK1BBTkRVUk9WIERSQUdPTEpVQgorUEFORFVST1YgRFXFoEFOS0EKK1BBTkRVUk9WIE1JTElDQQorUEFORFVST1YgTUlMSVZPSgorUEFORFVST1YgTUlST1NMQVYKK1BBTkRVUk9WIFBFVEFSCitQQU5EVVJPViBTQVZBCitQQU5EVVJPViBaT1JBTgorUEFORFVST1YgWk9SQU4KK1BBTkRVUk9WScSGIMW9SVZLQQorUEFORFVST1ZJxIYgSVZBTgorUEFORFVST1ZJxIYgSk9WQU4KK1BBTkRVUk9WScSGIEpVTEtBCitQQU5EVVJPVknEhiBQQVZMRQorUEFORFVST1ZJxIYgUkFETUlMQQorUEFORFVST1ZJxIYgU1JFVEVOCitQQU5EVVJPVknEhiBTVkVUT1pBUgorUEFORFVST1ZJxIYgVE9NSVNMQVYKK1BBTkRVUk9WScSGIFZMQURJU0xBVkEKK1BBTkRVUk9WScSGIFZPSklOCitQQU5EVVJTS0kgTUlST1NMQVYKK1BBTkdFUkMgTUFSQQorUEFOR0VSQyBWRUxJQk9SCitQQU5JxIYgxb1BUktPCitQQU5JxIYgxb1JVkFOCitQQU5JxIYgxb1JVk9KSU4KK1BBTknEhiDEkE9SxJBFCitQQU5JxIYgxJBPUsSQRQorUEFOScSGIMSQT1LEkEUKK1BBTknEhiDEkE9SxJBFCitQQU5JxIYgxJBPUsSQRQorUEFOScSGIMSQVVJBCitQQU5JxIYgQUxFS1NBTkRBUgorUEFOScSGIEFOQQorUEFOScSGIEFOQQorUEFOScSGIEFOVFVOCitQQU5JxIYgQlJBTklTTEFWCitQQU5JxIYgQlJBTklTTEFWCitQQU5JxIYgQlJBTklTTEFWCitQQU5JxIYgQlJBTktPCitQQU5JxIYgREFNSkFOCitQQU5JxIYgREFOSUxLQQorUEFOScSGIERSQUdBTgorUEFOScSGIERSQUdBTgorUEFOScSGIERSQUdBTgorUEFOScSGIERSQUdBTgorUEFOScSGIERSQUdPTEpVQgorUEFOScSGIERSQUdPU0xBVgorUEFOScSGIERSQUdPU0xBVgorUEFOScSGIERSRU5BCitQQU5JxIYgRFXFoEFOCitQQU5JxIYgRFXFoEFOCitQQU5JxIYgR09SREFOQQorUEFOScSGIElMSUpBCitQQU5JxIYgSUxPTkEKK1BBTknEhiBKQcWgQQorUEFOScSGIEpFTEVOQQorUEFOScSGIEpFTEVOQQorUEFOScSGIEpPVkFOS0EgRFIKK1BBTknEhiBKT1ZBTktBCitQQU5JxIYgSk9WQU5LQQorUEFOScSGIEpVTEtBCitQQU5JxIYgS0FJQ0EKK1BBTknEhiBLQVRBCitQQU5JxIYgS09OU1RBTlRJTgorUEFOScSGIExKVUJJQ0EKK1BBTknEhiBNQVJLTworUEFOScSGIE1JxIZPCitQQU5JxIYgTUlDQQorUEFOScSGIE1JS0EKK1BBTknEhiBNSUxBTkEKK1BBTknEhiBNSUxBTgorUEFOScSGIE1JTEVOQQorUEFOScSGIE1JTEVOS08KK1BBTknEhiBNSUxFCitQQU5JxIYgTUlMSUNBCitQQU5JxIYgTUlMSUpBCitQQU5JxIYgTUlMSVZPSgorUEFOScSGIE1JTElWT0oKK1BBTknEhiBNSUxJVk9KCitQQU5JxIYgTUlMT8WgCitQQU5JxIYgTUlMT8WgCitQQU5JxIYgTUlMT8WgCitQQU5JxIYgTUlMT1JBRAorUEFOScSGIE1JTE9SQUQKK1BBTknEhiBNSUxPVkFOCitQQU5JxIYgTUlSSkFOQQorUEFOScSGIE1JUktPCitQQU5JxIYgTUlSS08KK1BBTknEhiBNSVJPU0xBVgorUEFOScSGIE5BREEKK1BBTknEhiBOQURBCitQQU5JxIYgTkFEQQorUEFOScSGIE5FTUFOSkEKK1BBTknEhiBORU5BRAorUEFOScSGIE9CUkFESU4KK1BBTknEhiBPR05KRU4KK1BBTknEhiBPTEdBCitQQU5JxIYgUEVUQVIKK1BBTknEhiBQRVRBUgorUEFOScSGIFBSRURSQUcKK1BBTknEhiBSQURJVk9KRQorUEFOScSGIFJBRE9NSVIKK1BBTknEhiBSQURPU0xBVgorUEFOScSGIFJBTktPCitQQU5JxIYgUklTVE8KK1BBTknEhiBTQcWgQQorUEFOScSGIFNBTkpBCitQQU5JxIYgU0xBxJBBTkEKK1BBTknEhiBTTUlMSkFOS0EKK1BBTknEhiBTTkXFvUFOQQorUEFOScSGIFNSxJBBTgorUEFOScSGIFNSQk9MSlVCCitQQU5JxIYgU1RBTkEKK1BBTknEhiBTVEFOS0EKK1BBTknEhiBTVEVWQU4KK1BBTknEhiBTVEVWQU4KK1BBTknEhiBTVEVWQU4KK1BBTknEhiBTVkVUT1pBUgorUEFOScSGIFRPTUlTTEFWCitQQU5JxIYgVUdMSkXFoEEKK1BBTknEhiBWQVNJTEpLQQorUEFOScSGIFZMQURJTUlSCitQQU5JxIYgVk9KSVNMQVYKK1BBTknEhiBaRFJBVktPCitQQU5JxIYgWkxBVEtPCitQQU5JxIYgWk9SQU4KK1BBTknEhiBaT1JBCitQQU5JQU4gQU5JQ0EKK1BBTklOIEJPUklWT0pFCitQQU5JTiBCUkFOQQorUEFOSU4gTUlMSUNBCitQQU5JTiBNSUxPxaAKK1BBTklOIE1JVEEKK1BBTklOIE1MQURFTgorUEFOSU4gWk9SQU4KK1BBTklOxIxJxIYgU09GSUpBCitQQU5KS09WScSGIEJJTEpBTkEKK1BBTkpLT1ZJxIYgQlJBTktBCitQQU5KS09WScSGIERSQUdBTgorUEFOSktPVknEhiBJTElKQSBNUgorUEFOSktPVknEhiBKRUxFTkEKK1BBTkpLT1ZJxIYgTUVMQU5JSkEKK1BBTkpLT1ZJxIYgTUlMQU4KK1BBTkpLT1ZJxIYgTUlMQU4KK1BBTkpLT1ZJxIYgTUlMQU4KK1BBTkpLT1ZJxIYgTUlMSUNBCitQQU5KS09WScSGIE5BREEKK1BBTkpLT1ZJxIYgTklLT0xBCitQQU5KS09WScSGIFBFVEFSCitQQU5KS09WScSGIFZMQURJTUlSCitQQU5LT1YgQlJBTklTTEFWCitQQU5LT1YgQlJBTklTTEFWCitQQU5LT1YgQlJBTktPCitQQU5LT1YgSkVMRU5BCitQQU5LT1YgSkVMSUNBCitQQU5LT1YgS0FUSUNBCitQQU5LT1YgTUFSS08KK1BBTktPViBNSUxFTktPCitQQU5LT1YgTUlMT1ZBTgorUEFOS09WIFBSRURSQUcKK1BBTktPViBSQURPU0xBVgorUEFOS09WIFNBVkEKK1BBTktPViBTTEFWS08KK1BBTktPViBTVkVUT1pBUgorUEFOS09WIFZFU05BCitQQU5LT1ZJxIYgTEFaQVIKK1BBTk9WIERFU0FOS0EKK1BBTk9WIE5FTkFECitQQU5PVknEhiBBTsSQRUxLTworUEFOT1ZJxIYgTUlPRFJBRworUEFOVEVMRU1PTk9WIE5FREVMSktPCitQQU5URUxFTU9OT1YgTk9WS0EKK1BBTlRFTEnEhiDEjEVET01JUgorUEFOVEVMScSGIMW9QVJLTworUEFOVEVMScSGIMSQT1LEkEUKK1BBTlRFTEnEhiDEkE9SxJBFCitQQU5URUxJxIYgQU7EkEVMS08KK1BBTlRFTEnEhiBBTkEKK1BBTlRFTEnEhiBCT1JJVk9KRQorUEFOVEVMScSGIEJPUklWT0oKK1BBTlRFTEnEhiBDVkVUSU4KK1BBTlRFTEnEhiBEQUZJTkEKK1BBTlRFTEnEhiBEQU5JQ0EKK1BBTlRFTEnEhiBEUkFHQU4KK1BBTlRFTEnEhiBEUkFHT0xKVUIKK1BBTlRFTEnEhiBEUkFHT0xKVUIKK1BBTlRFTEnEhiBJTElKQSBESVBMIElORworUEFOVEVMScSGIElMSUpBCitQQU5URUxJxIYgSlVMSUpBTkEKK1BBTlRFTEnEhiBLQU1FTktPCitQQU5URUxJxIYgTEFaQVIKK1BBTlRFTEnEhiBMSlVCScWgQQorUEFOVEVMScSGIExKVUJJQ0EKK1BBTlRFTEnEhiBNSUhBSkxPCitQQU5URUxJxIYgTUlMQURJTgorUEFOVEVMScSGIE1JTEFOCitQQU5URUxJxIYgTUlMT8WgCitQQU5URUxJxIYgTUlMT1JBRAorUEFOVEVMScSGIE1JTE9WQU4KK1BBTlRFTEnEhiBNSU9EUkFHCitQQU5URUxJxIYgTUlST1NMQVYKK1BBTlRFTEnEhiBNT03EjElMTworUEFOVEVMScSGIE1PTUlSCitQQU5URUxJxIYgTkVOQUQKK1BBTlRFTEnEhiBORVZFTktBCitQQU5URUxJxIYgTklLT0xBCitQQU5URUxJxIYgUEFKTworUEFOVEVMScSGIFBBVkxFCitQQU5URUxJxIYgUEVUQVIgRElQTCBJTkcKK1BBTlRFTEnEhiBQRVRBUgorUEFOVEVMScSGLVBFVFJPVknEhiBNQVJJSkEKK1BBTlRFTEnEhiBTTEFWSUNBCitQQU5URUxJxIYgU09GSUpBCitQQU5URUxJxIYgVkFTQQorUEFOVEVMScSGIFZFUkEKK1BBTlRFTEnEhiBWTEFESU1JUgorUEFOVEVMScSGIFZMQURJU0xBVgorUEFOVEVMScSGIFZVSklDQQorUEFOVEVMScSGLVZVS0FOT1ZJxIYgVlVLT1NBVkEKK1BBTlRFTEnEhiBWVUtJQ0EKK1BBTlRFTEnEhiBWVUtJQ0EKK1BBTlRFTEnEhiBaT1JBTgorUEFOVEVMSU4gR0VPUkdJSkUKK1BBTlRFTElOQUMgTklLT0xBCitQQU5URUxJTkFDIFBBVkxFCitQQU5URUxJTkFDIFNMT0JPREFOCitQQU5UScSGIMW9QVJLTworUEFOVEnEhiDFvUlWQU4KK1BBTlRJxIYgxb1JVktBCitQQU5UScSGIMW9SVZPSklOCitQQU5UScSGIMW9SVZPUkFECitQQU5UScSGIMSQT1LEkEUKK1BBTlRJxIYgxJBVUsSQSU5LQQorUEFOVEnEhiBBTEVLU0FOREFSCitQQU5UScSGIEJBVEEKK1BBTlRJxIYgQk9HREFOCitQQU5UScSGIEJPUklWT0pFCitQQU5UScSGIEJPU0lMSktBCitQQU5UScSGIERPQlJJVk9KCitQQU5UScSGIERPQlJPU0FWCitQQU5UScSGIERVxaBBTgorUEFOVEnEhiBHSVpFTEEKK1BBTlRJxIYgR1ZPWkRFTgorUEFOVEnEhiBKRUxJQ0EKK1BBTlRJxIYgTEpVQklDQQorUEFOVEnEhiBNQVJJTkEKK1BBTlRJxIYgTUlIQUlMTworUEFOVEnEhiBNSUxBTgorUEFOVEnEhiBNSUxFTktPCitQQU5UScSGIE1JTElWT0pFCitQQU5UScSGIE1JTElWT0oKK1BBTlRJxIYgTUlMT1JBRAorUEFOVEnEhiBNSUxPUkFECitQQU5UScSGIE1JT0RSQUcgRFIgTEVLQVIKK1BBTlRJxIYgUkFERU5LTworUEFOVEnEhiBSQURPTUlSCitQQU5UScSGIFJBRE9NSVIKK1BBTlRJxIYgUkFET1NMQVYKK1BBTlRJxIYgUk9aQQorUEFOVEnEhiBTRUxJTUlSCitQQU5UScSGIFNFTElNSVIKK1BBTlRJxIYgU1ZFVE9aQVIKK1BBTlRJxIYgVE9NSVNMQVYKK1BBTlRJxIYgVVJPxaAKK1BBTlRJxIYgVkVTTkEKK1BBTlRJxIYgVk9KSVNMQVYgRFIKK1BBTlRJxIYgWkFHT1JLQQorUEFOVEnEhiBaRFJBVktPCitQQU5UT8WgIMSQVVJPCitQQU5UT8WgIEtPVklMSktBCitQQU5UT8WgIFBFVEFSCitQQU5UT8WgIFBFVEFSCitQQU5UT1ZJxIYgxaDEhkVQQU4KK1BBTlRPVknEhiDFvUVMSktPCitQQU5UT1ZJxIYgQUNBCitQQU5UT1ZJxIYgQklMSkFOQQorUEFOVE9WScSGIEJSQU5LTworUEFOVE9WScSGIERSQUdJTkpBCitQQU5UT1ZJxIYgTEpVQk8KK1BBTlRPVknEhiBNSUxJU0FWCitQQU5UT1ZJxIYgTUlMT1ZBTgorUEFOVE9WScSGIE1MQURFTgorUEFOVE9WScSGIFNBVkEKK1BBTlRPVknEhiBTVkVUT0xJSworUEFOVE9WScSGIFZMQURJTUlSCitQQU5aQUxPVknEhiBSQURPVkFOCitQQU9MT05JIMSQVVpFUElOQQorUEFQIMWgQU5ET1IKK1BBUCDFoEFORE9SCitQQVAgxaBBTkRPUgorUEFQIMWgQU5ET1IKK1BBUCDEkEVSxJAKK1BBUCDEkFVSTworUEFQIEFOQQorUEFQIERFSkFOCitQQVAgRFJBR0lDQQorUEFQIEVESVQKK1BBUCBFRElUCitQQVAgRU5EUkUgRFIKK1BBUCBFTkRSRQorUEFQIEVSxb1FQkVUCitQQVAgRVRFTEtBCitQQVAgRkVSRU5DCitQQVAgRlJBTkpBCitQQVAgRlJBTkpBCitQQVAgR0FCT1IKK1BBUCBJxaBUVkFOIERSCitQQVAgScWgVFZBTgorUEFQIElMRcWgCitQQVAgSU1SRQorUEFQIElNUkUKK1BBUCBJUkVOQQorUEFQIElSRU5BCitQQVAgSkFOSkEKK1BBUCBKQU5LTworUEFQIEpFTEVOQQorUEFQIEpFTElTQVZFVEEKK1BBUCBKT8W9RUYgRFIKK1BBUCBKT1NJUAorUEFQIEpPU0lQCitQQVAgSk9WQU4KK1BBUCBKVUxJSkFOQQorUEFQIEpVTElKQU4KK1BBUCBKVUxJSkEKK1BBUCBLQVRBUklOQQorUEFQIExBU0xPCitQQVAgTUFSR0lUQQorUEFQIE1JSEFKTE8KK1BBUCBNSUhBSkxPCitQQVAgTUlLTE/FoAorUEFQIE1JUk9OCitQQVAgT0xHQQorUEFQIFBBVkxFCitQQVAgUk9aQUxJSkEKK1BBUCBTSUxWRVNURVIKK1BBUCBURVJFWklKQQorUEFQIFRJQk9SCitQQVAgVkFMRVJJSkEKK1BBUCBWRVJBCitQQVAgVklOQ0UKK1BBUCBWTEFESVNMQVYKK1BBUCBaREVOS0EKK1BBUCBaT0xUQU4KK1BBUMWgT1QtS09aSUsgUEVQSQorUEFQxJBVUkRFUyBKT1ZHRU4KK1BBUEFET1BPTE8gRFJBR09TTEFWCitQQVBBRE9QT0xPIFZKRUtPU0xBVgorUEFQQURPUFVMT1MgSkFOSVMKK1BBUEFET1BVTE9TIEtPU1RBUworUEFQQUdFT1JHSVQgS09TVEEKK1BBUEFLIERSQUdBTgorUEFQQVRBTkFTSVUgTklDQQorUEFQRcWgIEpPU0lQCitQQVBFxaAgS09TQQorUEFQRcW9IElMSU5LQQorUEFQSEFSSEFKSSDEkFVSQQorUEFQSEFSSEFKSSBURVJFWklKQQorUEFQSEFSSEFKSSBWTEFESU1JUgorUEFQScWgVEEgRlJBTkpBCitQQVBJxaBUQSBGUkFOSkEKK1BBUEnFoFRBIElMRElLQQorUEFQScWgVEEgSk9WQU4KK1BBUEnFoFRBIE1BUklKQQorUEFQScWgVEEgTUFSS08KK1BBUEnFoFRBIE1JSEFKTE8KK1BBUEnEhiDEjEVET01JUgorUEFQScSGIMW9SVZLTworUEFQScSGIEFMRUtTQU5EQVIKK1BBUEnEhiBBTEVLU0FOREFSCitQQVBJxIYgQU5BCitQQVBJxIYgQVJBTktBCitQQVBJxIYgQVJBTktBCitQQVBJxIYgQVJBTktBCitQQVBJxIYgQVJBTktBCitQQVBJxIYgQk/FoEtPCitQQVBJxIYgQk/FvUEKK1BBUEnEhiBCT8W9SURBUgorUEFQScSGIEJSQU5JU0xBVgorUEFQScSGIEJSQU5LTworUEFQScSGIEJSQU5LTworUEFQScSGIERFU0FOS0EKK1BBUEnEhiBET0JSSVZPSkUKK1BBUEnEhiBEVcWgQU4KK1BBUEnEhiBEVcWgQU4KK1BBUEnEhiBHT0pLTworUEFQScSGIElWQU4KK1BBUEnEhiBKRUxJU0FWRVRBCitQQVBJxIYgTEFaQVIKK1BBUEnEhiBMRVBPU0FWQQorUEFQScSGIExKVUJJQ0EKK1BBUEnEhiBMT1pJTktBCitQQVBJxIYgTFVLQQorUEFQScSGIE1BUklKQQorUEFQScSGIE1JSEFKTE8KK1BBUEnEhiBNSUxBRElOCitQQVBJxIYgTUlMQURJTgorUEFQScSGIE1JTElDQQorUEFQScSGIE1JTElWT0oKK1BBUEnEhiBNSUxLQQorUEFQScSGIE1JTE/FoAorUEFQScSGIE1JUk9TTEFWCitQQVBJxIYgTUlST1NMQVYKK1BBUEnEhiBOSUtPTEEKK1BBUEnEhiBQQVZMRQorUEFQScSGIFJBREVOS08KK1BBUEnEhiBTQVZBCitQQVBJxIYgU01JTEpBCitQQVBJxIYgU1LEkEFOIERSCitQQVBJxIYgU1LEkEFOS0EKK1BBUEnEhiBTVEVWQU4KK1BBUEnEhiBTVEVWQU4KK1BBUEnEhiBTVEVWQU4KK1BBUEnEhiBTVkVUSVNMQVYgRElQTCBJTkcKK1BBUEnEhiBURU9ET1IKK1BBUEnEhiBUT0RPUgorUEFQScSGIFZFUkEKK1BBUEnEhiBaT1JJQ0EKK1BBUEnEhiBaT1JJQ0EKK1BBUElLIFZJS1RPUgorUEFQSUxJT04gQk9SScWgS0EKK1BBUExBQ0tPIFZFTElNSVIKK1BBUE9WScSGIMSMRURPTUlSCitQQVBPVknEhiBCTEHFvU8KK1BBUE9WScSGIEJMQUdPSkUKK1BBUE9WScSGIEtSU1RPCitQQVBPVknEhiBNSUxFCitQQVBPVknEhiBNSU9EUkFHCitQQVBPVknEhiBNTEFERU4KK1BBUE9WScSGIFZFU0VMSU4KK1BBUE9WScSGIFZVS09TQVYKK1BBUFJJxIYgxb1JVkFOCitQQVBSScSGIMSQT1LEkEUKK1BBUFJJxIYgTUFSS08KK1BBUFJJxIYgUkFKS08KK1BBUFVHQSDEkFVSQQorUEFQVUdBIERJTUlUUklKRQorUEFQVUdBIEVVRkVNSUpBCitQQVBVR0EgSVJJTkEKK1BBUFVHQSBKQVJPU0xBVgorUEFQVUdBIEtJUklMCitQQVBVR0EgTEpVQk9NSVIKK1BBUFVHQSBNSUhBSkxPCitQQVBVR0EgVEFUSkFOQQorUEFQVUdBIFZFUkEKK1BBUFVHQSBWTEFESU1JUgorUEFQVUxJTiDEkEVSxJBJS0EKK1BBUFVMSU4gQk9SSVNMQVYKK1BBUFVMSU4gRE9CUklOQQorUEFQVUxJTiBSQURPSktBCitQQVLEjEnEhiBOQcSQQSBEUgorUEFSQUJVxIZTS0kgTUlMRU5LTworUEFSQUJVxIZTS0ktU0lNScSGIFJVxb1JQ0EKK1BBUkFCVcSGU0tJIFNWRVRJU0xBViBOT1ZJTkFSCitQQVJBQlVDS0kgTEFaQVIKK1BBUkFCVUNLSSBMSklMSkFOQQorUEFSQUcgU1RFVkFOCitQQVJBTkRJTE9WScSGIFJPU0EKK1BBUkFQSUQgTUlSSkFOQQorUEFSQVZJTCBOSUtPTEEKK1BBUkFWSU5BIEpBUk1JTEEKK1BBUkFWSU5BIE1JTE/FoAorUEFSRE9WSUNLSSBGRVJFTkMKK1BBUkRPVklDS0kgRlJBTkpBCitQQVJET1ZJQ0tJIE1BUklKQQorUEFSRcW9QU5JTiBSQURJVk9KCitQQVJFxb1BTklOIFNMT0JPREFOCitQQVJFxb1BTklOIFZMQURJU0xBVgorUEFSSEFOT1YgVklLVE9SSUpBCitQQVJJxIxFVknEhiBFVkEKK1BBUknEhiBTVElQRQorUEFSSVBPViBKRUxBCitQQVJJUE9WIE1JTEFOCitQQVJJUE9WIE1JTEVOS08KK1BBUklQT1ZJxIYgxIxFRE9NSVIKK1BBUklQT1ZJxIYgRFJBR0FOCitQQVJJUE9WScSGIERVxaBBTgorUEFSSVBPVknEhiBKT1ZBTgorUEFSSVBPVknEhiBKT1ZPCitQQVJJUE9WScSGIE1JSEFKTE8KK1BBUklQT1ZJxIYgTUlMRU5LTworUEFSSVBPVknEhiBNSUxFCitQQVJJUE9WScSGIE1JTEtBCitQQVJJUE9WScSGIFBBSkEKK1BBUklQT1ZJxIYgU0xPQk9EQU4KK1BBUklQT1ZJxIYgU1ZFVE9aQVIKK1BBUklQT1ZJxIYgVkxBRElNSVIKK1BBUklQT1ZJxIYgVkxBRElTTEFWS0EKK1BBUklQT1ZJxIYgWk9SQU4KK1BBUktBTkpJIFNBTVVFTAorUEFSTEHEhiBMSlVCT01JUgorUEFSTEHEhiBNQVJJTktPCitQQVJMQcSGIE1JT0RSQUcKK1BBUkxJxIYgQU5BCitQQVJMScSGIEpFVlRBCitQQVJMScSGIE5JS09MQQorUEFSTUHEhiBORURFTEpLTworUEFSTklDS0kgSVZBTgorUEFSTklDS0kgSk9WQU4KK1BBUk/FoEtBSiDEkFVSQQorUEFST8WgS0FKIERBTklMTworUEFST8WgS0kgxJBPUsSQRQorUEFST8WgS0kgxJBPUsSQRQorUEFST8WgS0kgQUxFS1NBTkRBUgorUEFST8WgS0kgQUxFS1NBTkRBUgorUEFST8WgS0kgQU5BCitQQVJPxaBLSSBBTktJQ0EKK1BBUk/FoEtJIEJPUklWT0oKK1BBUk/FoEtJIEJSQU5JU0xBVgorUEFST8WgS0kgREFNSkFOCitQQVJPxaBLSSBESU1JVFJJSkUKK1BBUk/FoEtJIERPQlJJTEEKK1BBUk/FoEtJIERSQUdBTgorUEFST8WgS0kgRFXFoEFOCitQQVJPxaBLSSBHTEnFoEEKK1BBUk/FoEtJIEdPUkRBTgorUEFST8WgS0kgSVZBTgorUEFST8WgS0kgSkVMRU5BCitQQVJPxaBLSSBKRUxJQ0EKK1BBUk/FoEtJIEpPVkFOCitQQVJPxaBLSSBNQVJJSkEKK1BBUk/FoEtJIE1JTEFOCitQQVJPxaBLSSBNSUxBTgorUEFST8WgS0kgTUlMQU4KK1BBUk/FoEtJIE1JTElDQQorUEFST8WgS0kgTUlMT8WgCitQQVJPxaBLSSBNSUxPUkFECitQQVJPxaBLSSBNSUxPVkFOCitQQVJPxaBLSSBNSVJBCitQQVJPxaBLSSBNSVJKQU5BCitQQVJPxaBLSSBNSVJLTworUEFST8WgS0kgTkVTVE9SCitQQVJPxaBLSSBPQlJFTgorUEFST8WgS0kgT0xHQQorUEFST8WgS0kgUEVUQVIKK1BBUk/FoEtJIFBVTknFoEEKK1BBUk/FoEtJIFJBRE1JTEEKK1BBUk/FoEtJIFJBSktPCitQQVJPxaBLSSBST8W9QQorUEFST8WgS0kgU0FWQQorUEFST8WgS0kgU0xBVklDQQorUEFST8WgS0kgU09GSUpBCitQQVJPxaBLSSBTVEVWQU4KK1BBUk/FoEtJIFZFUk9MSlVCCitQQVJPxaBLSSBWTEFESU1JUgorUEFST8WgS0kgWkFHT1JLQQorUEFST0NJIEpPU0lQCitQQVJPQ0kgSlVMSUpBTkEKK1BBUk9DSSBLQVJMTworUEFST0NJIExKSUxKQU5BCitQQVJPQ0kgVElCT1IKK1BBUk9DSSBUSUJPUgorUEFST0NJIFRJQk9SCitQQVJPSsSMScSGIExKVUJJQ0EKK1BBUk9KxIxJxIYgU0xPQk9EQU4KK1BBUk9LQUkgTUlSS08KK1BBUk9WScSGIFNMQVZLTworUEFSVcW9ScSGIFBBTlRBCitQQVJVQ0tJIE1JSEFKTE8KK1BBU0FSScSGIFJVxb1BCitQQVNLQcWgIE1JTEFOCitQQVNLQcWgIE1JTEtBCitQQVNLQcWgIE5BVEHFoEEKK1BBU0tBTEkgR09SQU4KK1BBU0tBTEpFVknEhiBBTEVLU0FOREFSCitQQVNLVSBESU1JVFJJSkUKK1BBU0tVTE9WIE1JUk9MSlVCCitQQVNUIFJPQkVSVAorUEFTVEVSS08gU1RFVkFOCitQQVNUT05KSUNLSSBFTEVNSVIKK1BBU1RPUiBHRVpBCitQQVNUT1IgSkFOT8WgCitQQVNUT1IgSkFOT8WgCitQQVNUT1IgSk9TSVAKK1BBU1RPUiBKT1NJUAorUEFTVE9SIEpPWkVGCitQQVNUT1IgTEFTTE8KK1BBU1RPUiBNQVJJSkEKK1BBU1RPUiBNSUhBSkxPCitQQVNUT1IgTUlMQU4KK1BBU1RPUiBQRVRBUgorUEFTVE9SIFNUSkVQQU4KK1BBU1RPUk5BxIxLSSDEkFVSxJBJTktBCitQQVNUT1JOQcSMS0kgTEFaQVIKK1BBU1RPUk5BxIxLSSBMSlVCScWgQQorUEFTVE9STkHEjEtJIE1BUklKQQorUEFTVE9STkHEjEtJIFJBRE9TTEFWCitQQVNUT1JOSklDS0kgR09SREFOQQorUEFUQUZUQSBKVUxJSkEKK1BBVEFGVEEgU1RFVkFOCitQQVRBSiBBUkFOS0EgRFIKK1BBVEFLIFBBVkxFCitQQVRBS0kgQU5BCitQQVRBS0kgRVZBCitQQVRBS0kgR09SQU4KK1BBVEFSScSGIFNUSVBBTgorUEFUQVJJQ0EgRUxFTUVSCitQQVRJxIYgRFJBR09NSVIKK1BBVEnEhiBSQURPU0FWCitQQVRJxIYgUkFUS08KK1BBVEnEhiBWTEFESU1JUgorUEFUTEVKSCBOQURFxb1EQQorUEFUUklLIExBSk/FoAorUEFUUklLIFNURVZBTgorUEFUUk5PR0nEhiBCUkFOSVNMQVYgRElQTCBJTkcKK1BBVFJOT0dJxIYgRFXFoEFOIERSCitQQVRSTk9HScSGIERVxaBJQ0EKK1BBVFJOT0dJxIYgTElESUpBCitQQVXFoEnEhiBJVkFOCitQQVXFoEnEhiBNQVJLTworUEFVS09WScSGIE1JUkpBTkEKK1BBVUwgS0FUSUNBCitQQVVMIExBSk/FoAorUEFVTCBMQUpPxaAKK1BBVUwgT1NLQVIKK1BBVUxJxIYgTUlMRQorUEFVTElLIEFMRUtTQU5EQVIKK1BBVUxJSyBQRVJPCitQQVVMSUsgUEVUQVIKK1BBVUxPVknEhiBEUkFHVVRJTgorUEFVTkVTS1UgVkFTQQorUEFVTknEhiDFvUlWS08gRElQTCBJTkcKK1BBVU5JxIYgxJBVUkEKK1BBVU5JxIYgQUxJTVBJSkUKK1BBVU5JxIYgQlJBTktPCitQQVVOScSGIERJTUlUUklKRQorUEFVTknEhiBEUkFHT01JUgorUEFVTknEhiBJTElKQQorUEFVTknEhiBMQVpBUgorUEFVTknEhiBNSUxBTkEKK1BBVU5JxIYgTUlMRVZBCitQQVVOScSGIE1JTEUKK1BBVU5JxIYgU1RBTklNSVIKK1BBVU5JxIYgVE9NQQorUEFVTknEhiBWVUtBxaBJTgorUEFVTktPVknEhiBKT1ZBTkEKK1BBVU5LT1ZJxIYgTEpJTEpBTkEKK1BBVU5LT1ZJxIYgVkVMSU1JUgorUEFVTktPVknEhiBWTEFESU1JUgorUEFVTktVIEFVUkVMSUpBCitQQVVOT1ZJxIYgxIxBU0xBVgorUEFVTk9WScSGIEFOVE8KK1BBVU5PVknEhiBCT0dEQU4KK1BBVU5PVknEhiBCT0dEQU4KK1BBVU5PVknEhiBCUkFOS0EKK1BBVU5PVknEhiBCUkFOS08KK1BBVU5PVknEhiBESU1JVFJJSkUKK1BBVU5PVknEhiBEUkFHT0xKVUIKK1BBVU5PVknEhiBEUkFHVVRJTgorUEFVTk9WScSGIEdPU1BBVkEKK1BBVU5PVknEhiBKRUxFTkEKK1BBVU5PVknEhiBKT1ZBTgorUEFVTk9WScSGIEpPVklDQQorUEFVTk9WScSGIEtBVElDQQorUEFVTk9WScSGIEtPVklMSktBCitQQVVOT1ZJxIYgS09WSUxKS0EKK1BBVU5PVknEhiBMSklMSkFOQQorUEFVTk9WScSGIExKVUJJVk9KRQorUEFVTk9WScSGIE1BUklOQQorUEFVTk9WScSGIE1FTElOREEKK1BBVU5PVknEhiBNSUxJQ0EKK1BBVU5PVknEhiBNSUxPTUlSCitQQVVOT1ZJxIYgTUlMT1JBRAorUEFVTk9WScSGIE1JTE9SQUQKK1BBVU5PVknEhiBNSUxPUkFECitQQVVOT1ZJxIYgTklLT0xBCitQQVVOT1ZJxIYgUEFVTgorUEFVTk9WScSGIFBFVEFSCitQQVVOT1ZJxIYgUkFET8WgCitQQVVOT1ZJxIYgUkFET1NMQVYKK1BBVU5PVknEhiBSQURPU0xBVgorUEFVTk9WScSGIFJBVE9NSVIKK1BBVU5PVknEhiBTTEFWQQorUEFVTk9WScSGIFNMT0JPREFOS0EKK1BBVU5PVknEhiBTUkJJQ0EKK1BBVU5PVknEhiBTVE9KQU5LQQorUEFVTk9WScSGIFRPTUlTTEFWCitQQVVOT1ZJxIYgVlVLT1NBVkEKK1BBVU5PVknEhiBaT1JBTgorUEFVTk9WScSGIFpWT05LTworUEFVVCBNSUxBTgorUEFVWkVOQkVSR0VSIElSRU5BCitQQVVaRU5CRVJHRVIgSk9WQU4KK1BBVkFJIEZSQU5KQQorUEFWRUxLQSBEQU5JRUxBCitQQVZFTEtBIFZMQURJTUlSCitQQVZJxIwgREFOSUNBCitQQVZJxIxFVknEhiBNSUxBTgorUEFWScSMRVZJxIYgTkFEQQorUEFWScSMScSGIERSQUdJQ0EKK1BBVknEjEnEhiBJVkFOCitQQVZJxIxJxIYgTUlSS08KK1BBVknFoEnEhiDEkFVSQQorUEFWScSGIMSQVVJPCitQQVZJxIYgQU5LQQorUEFWScSGIEFST04KK1BBVknEhiBCSUxKQU5BCitQQVZJxIYgRFXFoEFOCitQQVZJxIYgR0HFoE8KK1BBVknEhiBHT0pLTworUEFWScSGIEpPxb1FRgorUEFWScSGIExKVUJJxaBBCitQQVZJxIYgTEpVQklDQQorUEFWScSGIExKVUJPTUlSCitQQVZJxIYgTUFSSUpBCitQQVZJxIYgTUlMQU4KK1BBVknEhiBNSUxBTgorUEFWScSGIE1JTElDQQorUEFWScSGIFNMQVZLTworUEFWScSGIFNURVZBTgorUEFWScSGLVNVTE9DS0kgRVNURVIKK1BBVknEhiBURVJFWklKQQorUEFWScSGIFZFTktPCitQQVZJxIYgVkVSS0EKK1BBVknEhkVWScSGIEFMRUtTQU5EQVIKK1BBVknEhkVWScSGIEFMRUtTQU5EQVIKK1BBVknEhkVWScSGIEFOQU5JSkUKK1BBVknEhkVWScSGIEJSQU5JU0xBVgorUEFWScSGRVZJxIYgREVTQQorUEFWScSGRVZJxIYgRFJBR0FOCitQQVZJxIZFVknEhiBEVcWgQU4KK1BBVknEhkVWScSGIERVxaBBTgorUEFWScSGRVZJxIYgSkVMRU5BCitQQVZJxIZFVknEhiBMSklMSkFOQQorUEFWScSGRVZJxIYgTUlMQU5LTworUEFWScSGRVZJxIYgTUlMT8WgCitQQVZJxIZFVknEhiBNSUxPTUlSCitQQVZJxIZFVknEhiBNSUxVVElOCitQQVZJxIZFVknEhiBNSU9EUkFHCitQQVZJxIZFVknEhiBNSU9EUkFHCitQQVZJxIZFVknEhiBNSVJBCitQQVZJxIZFVknEhiBNSVJLTworUEFWScSGRVZJxIYgU0xBVktPCitQQVZJxIZFVknEhiBTTE9CT0RBTgorUEFWSU4gTEpVQklDQQorUEFWS09WIMW9SVZLTworUEFWS09WIMW9SVZPSklOCitQQVZLT1YgxJBVUsSQRVZLQQorUEFWS09WIMSQVVLEkElOQQorUEFWS09WIEFMRUtTQU5EQVIKK1BBVktPViBBTktBCitQQVZLT1YgQk/FvUlEQVIKK1BBVktPViBCT1NJTEpLQQorUEFWS09WIEJSQU5LTworUEFWS09WIERSQUdBTgorUEFWS09WIERSQUdBTgorUEFWS09WIERVxaBBTgorUEFWS09WIERVxaBBTgorUEFWS09WIEdPSktPCitQQVZLT1YgR09SREFOQQorUEFWS09WIElWQU5LQQorUEFWS09WIEpPVkFOCitQQVZLT1YgSk9WQU4KK1BBVktPViBKT1ZBTgorUEFWS09WIEtBVElDQQorUEFWS09WIExBWkFSCitQQVZLT1YgTUlMQU4KK1BBVktPViBNSUxBTgorUEFWS09WIE1JTEFOCitQQVZLT1YgTUlMSVZPSiBESVBMIElORworUEFWS09WIE1JTE/FoAorUEFWS09WIE1JTE9KRQorUEFWS09WIE1JTE9SQUQKK1BBVktPViBNSUxPUkFECitQQVZLT1YgTUlMVVRJTgorUEFWS09WIE1JVEFSCitQQVZLT1YgTkFEQQorUEFWS09WIE5BREEKK1BBVktPViBQQVZMRQorUEFWS09WIFBFVEFSCitQQVZLT1YgUkFESVZPSgorUEFWS09WIFJBRE9WQU4KK1BBVktPViBSQVRPTUlSCitQQVZLT1YgU0FWQQorUEFWS09WIFNBVkEKK1BBVktPViBTSU5JxaBBCitQQVZLT1YgU0xBVktPCitQQVZLT1YgU1RFVkFOCitQQVZLT1YgU1RFVkFOCitQQVZLT1YgU1RFVkFOCitQQVZLT1YgVVJPxaAKK1BBVktPViBWSVRPTUlSCitQQVZLT1YgWk9SQU4KK1BBVktPViBaT1JLQQorUEFWS09WScSGIEJPxb1JREFSCitQQVZLT1ZJxIYgQk9SSVNMQVYKK1BBVktPVknEhiBEUkFHQU5BCitQQVZLT1ZJxIYgRFJBR0lDQQorUEFWS09WScSGIEpPVkFOS0EKK1BBVktPVknEhiBLQVRJQ0EKK1BBVktPVknEhiBOSUtPTEEKK1BBVktPVknEhiBQRVRBUgorUEFWS09WScSGIFJBRE9KRQorUEFWTEVLScSGIFNURVZBTgorUEFWTEVTS0kgTUVOS0EKK1BBVkxFVlNLSSBERVNBCitQQVZMRVZTS0kgVFJBSkFOCitQQVZMScSMIE1JUktPCitQQVZMScSMScSGIEtSRcWgSU1JUgorUEFWTEnEjEnEhiBMSlVCScWgQSBEUgorUEFWTEnEhiDEkE9SxJBFCitQQVZMScSGIEJPUklTTEFWCitQQVZMScSGIEJSQU5LTyBESVBMIElORworUEFWTEnEhiBQRVRBUiBESVBMIElORworUEFWTEnEhiBWTEFEQQorUEFWTEnEhkVWIMSQT1LEkEUKK1BBVkxJQ0EgQlJBTklTTEFWCitQQVZMSUNBIEpPVkFOCitQQVZMSUNBIExBWkFSCitQQVZMSUNBIE1BUklDQQorUEFWTElDQSBNSUNBCitQQVZMSUNBIE1JTEFOCitQQVZMSUNBIE1JTEVOQQorUEFWTElDQSBNSUxFVkEKK1BBVkxJQ0EgTkFEQQorUEFWTElDQSBOSUtPTEEKK1BBVkxJQ0EgTklLT0xBCitQQVZMSUNBIFNBVk8KK1BBVkxJQ0EgU09GSUpBCitQQVZMSUNBIFRPRE9SCitQQVZMSUNBIFZMQURJTUlSCitQQVZMSUsgQU5UQUwKK1BBVkxJSyBKT1NJUAorUEFWTElLIEtBVEFSSU5BCitQQVZMSUsgTUnFoEEKK1BBVkxJSyBWSU5LTworUEFWTE9WIMW9QVJLTworUEFWTE9WIMW9SVZBTgorUEFWTE9WIMW9SVZLQQorUEFWTE9WIMSQT0tBCitQQVZMT1YgQUxFS1NBTkRBUgorUEFWTE9WIEFMRUtTQU5EQVIKK1BBVkxPViBBTEVLU0FOREFSCitQQVZMT1YgQk9HREFOS0EKK1BBVkxPViBCT1JJU0xBVgorUEFWTE9WIERBTklDQQorUEFWTE9WIERBTklMTworUEFWTE9WIERSQUdJTkpBCitQQVZMT1YgRFJBR09NSVIKK1BBVkxPViBEVcWgQU5LQQorUEFWTE9WIERVxaBBTktBCitQQVZMT1YgRFXFoEFOCitQQVZMT1YgRFXFoEFOCitQQVZMT1YgSk9WQU4KK1BBVkxPViBLQVRJQ0EKK1BBVkxPVi1LT1NUScSGIEFOQSBEUgorUEFWTE9WIEtPVklMSktBCitQQVZMT1YgS1JJU1RJTkEKK1BBVkxPViBLVVpNQU4KK1BBVkxPViBMQVpBUgorUEFWTE9WIExBWkFSCitQQVZMT1YgTEpVQklDQQorUEFWTE9WIExKVUJJQ0EKK1BBVkxPViBNQVJJSkEKK1BBVkxPViBNSUxBTgorUEFWTE9WIE1JTEVUQQorUEFWTE9WIE1JTElWT0oKK1BBVkxPViBNSUxPUkFECitQQVZMT1YgTUlMT1JBRAorUEFWTE9WIE1JTE9WQU4KK1BBVkxPViBNSUxPVkFOCitQQVZMT1YgTUlMVVRJTgorUEFWTE9WIE1JUkEKK1BBVkxPVi1NSVJLT1ZJxIYgTUlST1NMQVZBIERSCitQQVZMT1YgTUlST1NMQVYKK1BBVkxPViBNSVJPU0xBVgorUEFWTE9WIE1JVEtPCitQQVZMT1YgTkFEQQorUEFWTE9WIE5BREEKK1BBVkxPViBOQVRBTElKQQorUEFWTE9WIE5FVkVOS0EKK1BBVkxPViBPTEdBCitQQVZMT1YgUEFKQQorUEFWTE9WIFBBVkVMCitQQVZMT1YgUEFWRUwKK1BBVkxPViBQQVZMRQorUEFWTE9WIFBFVEFSCitQQVZMT1YgUEVUQVIKK1BBVkxPViBSQURBCitQQVZMT1YgUkFESVZPSgorUEFWTE9WIFJBRE1JTEEKK1BBVkxPViBSQURPU0xBVkEKK1BBVkxPViBSQURPU0xBVgorUEFWTE9WIFNBVkEKK1BBVkxPViBTQVZBCitQQVZMT1YgU1RFVkFOCitQQVZMT1YgU1RFVkFOCitQQVZMT1YgU1RFVkFOCitQQVZMT1YgU1RFVkFOCitQQVZMT1YgU1RFVkFOCitQQVZMT1YgU1RFVkFOCitQQVZMT1YgU1RPSkFOCitQQVZMT1YgU1ZFVE9aQVIKK1BBVkxPViBWQVNJTElKRQorUEFWTE9WIFZFUkEKK1BBVkxPViBWRVJBCitQQVZMT1YgVkVSSUNBCitQQVZMT1YgVklET1NBVkEKK1BBVkxPViBWTEFESU1JUgorUEFWTE9WIFZMQVNUSU1JUgorUEFWTE9WScSGIMSMRURPTUlSCitQQVZMT1ZJxIYgxb1BUktPCitQQVZMT1ZJxIYtxb1FTkVSIE9MR0EKK1BBVkxPVknEhiDEkE9SxJBFCitQQVZMT1ZJxIYgxJBPUsSQRQorUEFWTE9WScSGIMSQT1LEkEUKK1BBVkxPVknEhiDEkE9SxJBPCitQQVZMT1ZJxIYgxJBPUsSQTworUEFWTE9WScSGIEFMRUtTQU5EQVIgRFIKK1BBVkxPVknEhiBBTEVLU0FOREFSCitQQVZMT1ZJxIYgQUxFS1NJSkUKK1BBVkxPVknEhiBBTkEKK1BBVkxPVknEhiBBTkEKK1BBVkxPVknEhiBBTkRSSUpBCitQQVZMT1ZJxIYgQU5JQ0EKK1BBVkxPVknEhiBBTktJQ0EKK1BBVkxPVknEhiBCTEFHT0pFCitQQVZMT1ZJxIYgQkxBR08KK1BBVkxPVknEhiBCT8W9SURBUgorUEFWTE9WScSGIEJPxb1PCitQQVZMT1ZJxIYgQk9HREFOCitQQVZMT1ZJxIYgQk9HT0xKVUIKK1BBVkxPVknEhiBCT1JBCitQQVZMT1ZJxIYgQk9SSVNBVgorUEFWTE9WScSGIEJPUklTTEFWCitQQVZMT1ZJxIYgQk9SSVNMQVYKK1BBVkxPVknEhiBCUkFOS08KK1BBVkxPVknEhiBCUkFOS08KK1BBVkxPVknEhiBDVkVUQU4KK1BBVkxPVknEhiBERUpBTgorUEFWTE9WScSGIERJTUlUUklKRQorUEFWTE9WScSGIERPQlJJVk9KCitQQVZMT1ZJxIYgRE9CUk9TTEFWCitQQVZMT1ZJxIYgRFJBR0FOCitQQVZMT1ZJxIYgRFJBR0FOCitQQVZMT1ZJxIYgRFJBR0FOCitQQVZMT1ZJxIYgRFJBR0FOCitQQVZMT1ZJxIYgRFJBR09MSlVCCitQQVZMT1ZJxIYgRFJBR09MSlVCCitQQVZMT1ZJxIYgRFJBR09TTEFWQQorUEFWTE9WScSGIERSQUdPU0xBVgorUEFWTE9WScSGIERSQUdVVElOCitQQVZMT1ZJxIYgRFXFoEFOS0EKK1BBVkxPVknEhiBEVcWgQU4KK1BBVkxPVknEhiBEVcWgQU4KK1BBVkxPVknEhiBEVcWgQU4KK1BBVkxPVknEhiBEVcWgQU4KK1BBVkxPVknEhiBEVcWgQU4KK1BBVkxPVknEhiBEVcWgS08KK1BBVkxPVknEhiBFTUlMCitQQVZMT1ZJxIYgRVLFvUVCRVQKK1BBVkxPVknEhiBFUsW9RUJFVAorUEFWTE9WScSGIEdPSktPCitQQVZMT1ZJxIYgR09SSU5LQQorUEFWTE9WScSGIElMSUpBCitQQVZMT1ZJxIYgSUxJSkEKK1BBVkxPVknEhiBJTE9OQQorUEFWTE9WScSGIElMT05BCitQQVZMT1ZJxIYgSVJJTkEKK1BBVkxPVknEhiBJVkFOIERJUEwgSU5HCitQQVZMT1ZJxIYgSVZBTgorUEFWTE9WScSGIEpBR08KK1BBVkxPVknEhiBKQU5LTworUEFWTE9WScSGIEpBTktPCitQQVZMT1ZJxIYgSkFOT8WgCitQQVZMT1ZJxIYgSkVMQQorUEFWTE9WScSGIEpFTEVOQQorUEFWTE9WScSGIEpFTEVOQQorUEFWTE9WScSGIEpFTEVOQQorUEFWTE9WScSGIEpFTEVOQQorUEFWTE9WScSGIEpFTElDQQorUEFWTE9WScSGIEpPQUtJTQorUEFWTE9WScSGIEpPVkFOCitQQVZMT1ZJxIYgSk9WQU4KK1BBVkxPVknEhiBKT1ZJQ0EKK1BBVkxPVknEhiBLQVRBUklOQQorUEFWTE9WScSGIEtBVElDQQorUEFWTE9WScSGIEtPTlNUQU5USU4KK1BBVkxPVknEhiBLT1ZJTktBCitQQVZMT1ZJxIYgTEFaQVIKK1BBVkxPVknEhiBMQVpBUgorUEFWTE9WScSGIExBWkFSCitQQVZMT1ZJxIYgTEpVQknFoEEKK1BBVkxPVknEhiBNQUdEQQorUEFWTE9WScSGIE1BUkEgRElQTCBJTkcKK1BBVkxPVknEhiBNQVJBCitQQVZMT1ZJxIYgTUFSSUNBCitQQVZMT1ZJxIYgTUFSS08gRElQTCBJTkcKK1BBVkxPVknEhiBNQVJLTworUEFWTE9WScSGIE1JQ0EKK1BBVkxPVknEhiBNSUxBRElOCitQQVZMT1ZJxIYgTUlMQU4KK1BBVkxPVknEhiBNSUxBTgorUEFWTE9WScSGIE1JTEVOQQorUEFWTE9WScSGIE1JTEVOS08KK1BBVkxPVknEhiBNSUxFTktPCitQQVZMT1ZJxIYgTUlMRQorUEFWTE9WScSGIE1JTEUKK1BBVkxPVknEhiBNSUxJQ0EKK1BBVkxPVknEhiBNSUxJQ0EKK1BBVkxPVknEhiBNSUxJQ0EKK1BBVkxPVknEhiBNSUxJU0FWCitQQVZMT1ZJxIYgTUlMSkFOQQorUEFWTE9WScSGIE1JTEtBCitQQVZMT1ZJxIYgTUlMS0EKK1BBVkxPVknEhiBNSUxPSkUKK1BBVkxPVknEhiBNSUxPSkUKK1BBVkxPVknEhiBNSUxPTUlSCitQQVZMT1ZJxIYgTUlMT1JBRCBEUgorUEFWTE9WScSGIE1JTE9SQUQKK1BBVkxPVknEhiBNSUxPUkFECitQQVZMT1ZJxIYgTUlMT1JBRAorUEFWTE9WScSGIE1JTE9TQVZBCitQQVZMT1ZJxIYgTUlMT1NBVgorUEFWTE9WScSGIE1JTE9WQU4KK1BBVkxPVknEhiBNSUxPVkFOCitQQVZMT1ZJxIYgTUlPRFJBRworUEFWTE9WScSGIE1JT0RSQUcKK1BBVkxPVknEhiBNSU9EUkFHCitQQVZMT1ZJxIYgTUlSQQorUEFWTE9WScSGIE1JUkpBTkEgRFIKK1BBVkxPVknEhiBNSVJKQU5BCitQQVZMT1ZJxIYgTUlSSkFOQQorUEFWTE9WScSGIE1JUkpBTkEKK1BBVkxPVknEhiBNSVJLTyBESVBMIE9FQworUEFWTE9WScSGIE1JUktPCitQQVZMT1ZJxIYgTUlSS08KK1BBVkxPVknEhiBNSVJPU0xBVkEKK1BBVkxPVknEhiBNSVJPU0xBVgorUEFWTE9WScSGIE1PTcSMSUxPCitQQVZMT1ZJxIYgTkFEQSBEUgorUEFWTE9WScSGIE5BREEKK1BBVkxPVknEhiBOQURBCitQQVZMT1ZJxIYgTkVERUxKS0EKK1BBVkxPVknEhiBORURFTEpLTworUEFWTE9WScSGIE5FTUFOSkEKK1BBVkxPVknEhiBORU1BTkpBCitQQVZMT1ZJxIYgTklLT0xBCitQQVZMT1ZJxIYgTklLT0xBCitQQVZMT1ZJxIYgTklLT0xJQ0EKK1BBVkxPVknEhiBOSU5BCitQQVZMT1ZJxIYgTk9WQUsKK1BBVkxPVknEhiBPTEdBCitQQVZMT1ZJxIYgT0xHQQorUEFWTE9WScSGIE9MR0EKK1BBVkxPVknEhiBPTEdBCitQQVZMT1ZJxIYgUEFWTEUKK1BBVkxPVknEhiBQQVZMRQorUEFWTE9WScSGIFBFxJBBCitQQVZMT1ZJxIYgUEVSTworUEFWTE9WScSGIFBFVEFSCitQQVZMT1ZJxIYgUEVUQVIKK1BBVkxPVknEhiBQRVRBUgorUEFWTE9WScSGIFBMRU1FTktBCitQQVZMT1ZJxIYtUE9QT1ZJxIYgWk9SQSBEUiBMRUtBUgorUEFWTE9WScSGIFBSRURSQUcKK1BBVkxPVknEhiBQUkVEUkFHCitQQVZMT1ZJxIYgUFJWT1NMQVYKK1BBVkxPVknEhiBSQURFTktPCitQQVZMT1ZJxIYgUkFESVZPSgorUEFWTE9WScSGIFJBRE1JTEEKK1BBVkxPVknEhiBSQURNSUxPIERJUEwgSU5HCitQQVZMT1ZJxIYgUkFETUlMTworUEFWTE9WScSGIFJBRE9KRQorUEFWTE9WScSGIFJBRE9KS0EKK1BBVkxPVknEhiBSQURPTUlSIERJUEwgT0VDCitQQVZMT1ZJxIYgUkFET01JUgorUEFWTE9WScSGIFJBRE9TTEFWQQorUEFWTE9WScSGIFJBRE9WQU4gRFIgVkVURVJJTkUKK1BBVkxPVknEhiBSQURPVkFOCitQQVZMT1ZJxIYgUkFKS08KK1BBVkxPVknEhiBSQU5LTworUEFWTE9WScSGIFJBVEtPCitQQVZMT1ZJxIYgU0FWQQorUEFWTE9WScSGIFNBVk8KK1BBVkxPVknEhiBTSU1BCitQQVZMT1ZJxIYgU0lNRU9OCitQQVZMT1ZJxIYgU0lNRU9OCitQQVZMT1ZJxIYgU0lOScWgQQorUEFWTE9WScSGIFNMQVZJQ0EKK1BBVkxPVknEhiBTTEFWS08gRElQTCBJTkcKK1BBVkxPVknEhiBTTEFWS08KK1BBVkxPVknEhiBTTEFWS08KK1BBVkxPVknEhiBTTEFWS08KK1BBVkxPVknEhiBTTE9CT0RBTiBEUgorUEFWTE9WScSGIFNMT0JPREFOCitQQVZMT1ZJxIYgU0xPQk9EQU4KK1BBVkxPVknEhiBTTE9CT0RBTgorUEFWTE9WScSGIFNNSUxKQQorUEFWTE9WScSGIFNUQU5BCitQQVZMT1ZJxIYgU1RBTklLQQorUEFWTE9WScSGIFNUQU5JU0xBVgorUEFWTE9WScSGIFNURVZBTktBCitQQVZMT1ZJxIYgU1RFVkFOCitQQVZMT1ZJxIYgU1RFVkFOCitQQVZMT1ZJxIYgU1RFVkFOCitQQVZMT1ZJxIYgU1RFVkFOCitQQVZMT1ZJxIYgU1RFVkFOCitQQVZMT1ZJxIYgU1RKRVBBTgorUEFWTE9WScSGIFNUT0pBTgorUEFWTE9WScSGIFNUT0pBTgorUEFWTE9WScSGIFNWRVRJU0xBVgorUEFWTE9WScSGIFNWRVRPWkFSCitQQVZMT1ZJxIYgVE/FoEEKK1BBVkxPVknEhiBUT01BCitQQVZMT1ZJxIYgVE9NSVNMQVYgRFIKK1BBVkxPVknEhiBWRUxJWkFSCitQQVZMT1ZJxIYgVkVSQQorUEFWTE9WScSGIFZFUkEKK1BBVkxPVknEhiBWRVJBCitQQVZMT1ZJxIYgVklEQQorUEFWTE9WScSGIFZJRE9TQVZBCitQQVZMT1ZJxIYgVklET1NBVkEKK1BBVkxPVknEhiBWSURPU0xBVgorUEFWTE9WScSGIFZJVE9NSVIKK1BBVkxPVknEhiBWSVRPTUlSCitQQVZMT1ZJxIYgVkxBRElNSVIKK1BBVkxPVknEhiBWT0pJU0xBVgorUEFWTE9WScSGIFpBR09SS0EKK1BBVkxPVknEhiBaRFJBVktPCitQQVZMT1ZJxIYgWk9SQU4KK1BBVkxPVknEhiBaT1JBTgorUEFWTE9WScSGIFpPUkFOCitQQVZMT1ZJxIYgWk9SQU4KK1BBVkxPVknEhiBaT1JBCitQQVZMT1ZJxIYgWk9SSUNBCitQQVZMT1ZJxIYgWlZPTklNSVIKK1BBVkxPVlNLSSBBTEVLU0FOREFSCitQQVZMT1ZTS0kgTUFSSUpBCitQQVZMT1ZTS0kgU0VSR0VKCitQQVZPxaBFVknEhiBBTktBCitQQVZPxaBFVknEhiBST0RPTEpVQgorUEFaQVJTS0kgU1RFVkFOCitQQVpNQU5KIEpVTElKQU5BCitQRcSMQVJJxIYgS0FUSUNBCitQRcSMSSBHRVpBCitQRcSMSSBJxaBUVkFOCitQRcSMSSBNQVJJSkEKK1BFxIxLQUktS09WQcSMIEFOQQorUEXEjEtBSSBNQVJHSVRBCitQRcSMVkFSQUMgU1RBTk9KRQorUEXFoEVOSkFOU0tJIElWQU4KK1BFxaBFTkpBTlNLSSBJVkFOCitQRcWgRU5KQU5TS0kgS0FSTE8KK1BFxaBFVknEhiBCT0dEQU4KK1BFxaBFVlNLSSDEkE9LQQorUEXFoEVWU0tJIFRPTUUKK1BFxaBFVlNLSSBWTEFETworUEXFoEnEhiDFvUlWQU4KK1BFxaBJxIYgQUxFS1NBTkRBUgorUEXFoEnEhiBBTsSQRUxLTworUEXFoEnEhiBCVURJTUlSCitQRcWgScSGIERFU0lNSVIKK1BFxaBJxIYgRElNSVRSSUpFCitQRcWgScSGIERJTUlUUklKRQorUEXFoEnEhiBEUkFHQU4KK1BFxaBJxIYgRFJBR0lDQQorUEXFoEnEhiBEUkFHT0xKVUIKK1BFxaBJxIYgRFJBR09MSlVCCitQRcWgScSGIEdPSktPCitQRcWgScSGIEdSQURJTUlSCitQRcWgScSGIElMSUpBCitQRcWgScSGIEpPUkRBTgorUEXFoEnEhiBKT1ZBTgorUEXFoEnEhiBMSlVCSUNBCitQRcWgScSGIE1JTEFESU4KK1BFxaBJxIYgTUlMQU4KK1BFxaBJxIYgTUlMSU5LTworUEXFoEnEhiBNSUxVVElOCitQRcWgScSGIE1JTFVUSU4KK1BFxaBJxIYgTUlST1NMQVYKK1BFxaBJxIYgUEVUQVIKK1BFxaBJxIYgUkFETUlMQQorUEXFoEnEhiBSQUpLTworUEXFoEnEhiBSVcW9QQorUEXFoEnEhiBTQVZBCitQRcWgScSGIFNUQU5PSkUKK1BFxaBJxIYgU1RFVkFOIERSCitQRcWgScSGIFZMQURJTUlSCitQRcWgScSGIFZVS0HFoElOCitQRcWgSUtBTiBUSUhPTUlSCitQRcWgSUtBTiBWVUsKK1BFxaBLQSBBTkEKK1BFxaBLQU4gRFJBR0FOCitQRcWgS0FOIFZFUkEKK1BFxaBLQU5PViBNSUxPUkFECitQRcWgS0FOT1YgUEVSU0lEQQorUEXFoEtBTk9WIFNURVZBTgorUEXFoEtBTk9WIFRPRE9SCitQRcWgT1ZJxIYgTUlMSVZPSkUKK1BFxaBPVknEhiBTVE9KQU4KK1BFxaBUQUxJxIYgU0xPQk9EQU5LQQorUEXFoFRFUkFDIMSMRURPTUlSCitQRcWgVEVSQUMgTUlMT01JUgorUEXFoFRFUkFDIE1JTFVUSU4KK1BFxaBUSSBKT8W9RUYKK1BFxaBVVCBBTEVLU0FORFJBCitQRcWgVVQgQk/FoEtPCitQRcWgVVQgQlJBTktPCitQRcWgVVQgRFXFoEFOCitQRcWgVVQgRFXFoEFOCitQRcWgVVQgSUxJSkEKK1BFxaBVVCBNQVJJSkEKK1BFxaBVVCBNSUxBTgorUEXFoFVUIE1JTElDQQorUEXFoFVUIFNMQVZLQQorUEXFoFVUIFNNSUxKQQorUEXFoFVUIFZMQURJTUlSCitQRcSGQU5BQyBCT1NJTEpLQQorUEXEhkFOQUMgRElNSVRSSUpFCitQRcSGQU5BQyBKT1ZBTgorUEXEhkFOQUMgTklLT0xBCitQRcSGQU5BQyBWRVNOQQorUEXEhkFOSU4gRFXFoEFOCitQRcSGQU5JTiBMSlVCScWgQSBESVBMIElORworUEXEhkFOSU4gTUlST1NMQVZBCitQRcSGQU5JTiBPTUlMSkVOCitQRcSGQU5JTi1WRVJNRVpPVknEhiBPTEpBCitQRcSGS08gREFOSUxPCitQRcSGS08gVkVSQQorUEXEhk8gTEFaQVIKK1BFxIZPIExVS0EKK1BFxIZPIFNWRVRPWkFSCitQRUMgSlVMSUpFCitQRUNBUlNLSSBMRUtTQQorUEVDRSDEkE9SxJBFCitQRUNFIMSQT1LEkEUKK1BFQ0UgQUxFS1NBTkRBUgorUEVDRSBBTlRPTgorUEVDRSBJTEXFoAorUEVDRSBaT0xUQU4KK1BFQ0VMSiBCT8W9TworUEVDRUxKIFNURVZBTgorUEVDScSGIEFDQQorUEVDScSGIEtBVEFSSU5BCitQRUNJxIYgTUlPRFJBRworUEVDScSGIFNURVZBTgorUEVDTkpJSyBBTkEKK1BFQ08gTUlSU0FECitQRUNPVknEhiBSQURPTUlSCitQRURPVknEhiBSQVRPTUlSCitQRUnEhi1UVUtVTEpBQyBWSkVLT1NMQVYKK1BFSsSMScSGIEJPxb1JREFSCitQRUrEjEnEhiBCUkFUSVNMQVYKK1BFSsSMScSGIERPQlJJVk9KRQorUEVKxIxJxIYgRE9CUklWT0oKK1BFSsSMScSGIERPQlJPU0FWCitQRUrEjEnEhiBEUkFHT01JUgorUEVKxIxJxIYgRFXFoEFOS0EKK1BFSsSMScSGIERVQlJBVktBCitQRUrEjEnEhiBHUkFESU1JUgorUEVKxIxJxIYgSUxJSkEKK1BFSsSMScSGIElMSUpBCitQRUrEjEnEhiBKQVNNSU5BCitQRUrEjEnEhiBKT1ZBTgorUEVKxIxJxIYgSk9WQU4KK1BFSsSMScSGIExKVUJJQ0EKK1BFSsSMScSGIExKVUJPTUlSCitQRUrEjEnEhiBNSUxFTktPCitQRUrEjEnEhiBNSUxFCitQRUrEjEnEhiBNSU9EUkFHCitQRUrEjEnEhiBNSVJPU0xBVgorUEVKxIxJxIYgTUlUQVIKK1BFSsSMScSGIE1PTcSMSUxPCitQRUrEjEnEhiBOT1ZBSworUEVKxIxJxIYgUEVUQVIKK1BFSsSMScSGIFJBRE9TTEFWQQorUEVKxIxJxIYgUlXFvUEKK1BFSsSMScSGIFNBVkEKK1BFSsSMScSGIFNBVkEKK1BFSsSMScSGIFNWRVRJU0xBVgorUEVKxIxJxIYgVk9KSVNMQVYKK1BFSsSMScSGIFZPSklTTEFWCitQRUrEjEnEhiBaT1JBTgorUEVKQUsgxJBPUsSQRQorUEVKQUsgxJBVUkEKK1BFSkFLIEJSQU5LTworUEVKQUsgRFJBR09TTEFWQQorUEVKQUsgSkVMRU5BCitQRUpBSyBKT1ZBTgorUEVKQUsgSk9WSUNBCitQRUpBSyBMQVpBUgorUEVKQUsgTEpVQklDQQorUEVKQUsgTUlMQU4KK1BFSkFLIE1JTElOS0EKK1BFSkFLIE1JT0RSQUcKK1BFSkFLIE1JUkpBTkEKK1BFSkFLIE1PSkEKK1BFSkFLIE5FVkVOS0EKK1BFSkFLIFJBRE9WQU4KK1BFSkFLIFJBSktPCitQRUpBSyBTQVZBCitQRUpBSyBTTEFWS08KK1BFSkFLIFRSSVZBCitQRUpBSyBWRVJJQ0EKK1BFSkFLIFZMQURJTUlSCitQRUpBS0nEhiBNQVJLTworUEVKQUtPVknEhiDFvUFSS08KK1BFSkFLT1ZJxIYgxJBPUsSQRQorUEVKQUtPVknEhiBEVcWgQU4KK1BFSkFLT1ZJxIYgSUxJSkEKK1BFSkFLT1ZJxIYgTUlMRU5LTworUEVKQUtPVknEhiBOQU5ET1IKK1BFSkFLT1ZJxIYgTkVOQUQKK1BFSkFLT1ZJxIYgUEVSSUNBCitQRUpBS09WScSGIFBFVEFSCitQRUpBS09WScSGIFBSRURSQUcKK1BFSkFOT1ZJxIYgxJBPUsSQRQorUEVKQU5PVknEhiBBTsSQRUxLTworUEVKQU5PVknEhiBCUkFOS08KK1BFSkFOT1ZJxIYgRElNSVRSSUpFCitQRUpBTk9WScSGIE1JTEtBCitQRUpBTk9WScSGIFJBRE9WQU4gRFIKK1BFSkFOT1ZJxIYgWk9SQU4KK1BFSknEjEnEhiBNSUxBTgorUEVKScSGIMW9SVZBTgorUEVKScSGIEFMRUtTQU5EQVIKK1BFSknEhiBBTEVLU0FOREFSCitQRUpJxIYgQU5JQ0EKK1BFSknEhiBBTlRPTgorUEVKScSGIEJPR0RBTktBCitQRUpJxIYgQk9SSVZPSgorUEVKScSGIEJSQU5JU0xBVgorUEVKScSGIEJSQU5JU0xBVgorUEVKScSGIERSQUdBTgorUEVKScSGIERSQUdBTgorUEVKScSGIERSQUdJxaBBCitQRUpJxIYgRFJBR0lDQQorUEVKScSGIERSQUdPCitQRUpJxIYgRFJBR08KK1BFSknEhiBEVcWgQU4KK1BFSknEhiBEVcWgQU4KK1BFSknEhiBEVcWgQU4KK1BFSknEhiBHQVZSQQorUEVKScSGIElWQU4KK1BFSknEhiBJVkFOCitQRUpJxIYgSkFOSkEKK1BFSknEhiBKT1ZBTgorUEVKScSGIExKVUJPTUlSCitQRUpJxIYgTUFSQQorUEVKScSGIE1JSEFKTE8KK1BFSknEhiBNSUxBTgorUEVKScSGIE1JTEFOCitQRUpJxIYgTUlMQU4KK1BFSknEhiBNSUxFTktPCitQRUpJxIYgTUlMSUNBCitQRUpJxIYgTUlMT8WgCitQRUpJxIYgTUlMT1JBRAorUEVKScSGIE1JTE9SQUQKK1BFSknEhiBNSUxPUkFECitQRUpJxIYgTUlMT1JBRAorUEVKScSGIE1JTE9SQUQKK1BFSknEhiBNSUxPUkFECitQRUpJxIYgTUlMT1NBVgorUEVKScSGIE5FREVMSktPCitQRUpJxIYgTklLT0xBCitQRUpJxIYgTklLTworUEVKScSGIE5PVkFLCitQRUpJxIYgT1JKRU4KK1BFSknEhiBQUkVEUkFHCitQRUpJxIYgUkFET0pLQQorUEVKScSGIFJBRE9TQVYKK1BFSknEhiBSQUpLTworUEVKScSGIFJVxb1JQ0EKK1BFSknEhiBTTE9CT0RBTktBCitQRUpJxIYgU0xPQk9EQU4KK1BFSknEhiBTTE9CT0RBTgorUEVKScSGIFNPRklKQQorUEVKScSGIFNUQU5LTworUEVKScSGIFNURVZBTgorUEVKScSGIFNUSVBBTgorUEVKScSGIFZFUklDQQorUEVKScSGIFZMQURPCitQRUpJTiDEkE9SxJBFCitQRUpJTiDEkFVSxJBJTkEKK1BFSklOIEFOxJBFTEtBCitQRUpJTiBCUkFOSU1JUgorUEVKSU4gQlJBTklNSVIKK1BFSklOIEJSQU5JTUlSCitQRUpJTiBERUpBTgorUEVKSU4gRElNSVRSSUpFCitQRUpJTiBEVcWgQU4gRFIKK1BFSklOIEdPSktPCitQRUpJTiBKRUxFTkEKK1BFSklOIEpPVkFOCitQRUpJTiBMQVpBUiBESVBMIE9FQworUEVKSU4gTUFSSUpBCitQRUpJTiBNQVJJVEEKK1BFSklOIE1JTElWT0oKK1BFSklOIE1JTE/FoAorUEVKSU4gTUlMT1JBRAorUEVKSU4gTUlST1NMQVYKK1BFSklOIE1MQURFTgorUEVKSU4gTkVOQUQKK1BFSklOIE5JS09MQQorUEVKSU4gTklLT0xBCitQRUpJTiBOSUtPTEEKK1BFSklOIE5PVkFLCitQRUpJTiBQQVZMRQorUEVKSU4gUEVSU0lEQQorUEVKSU4gUExBVsWgQQorUEVKSU4gUkFEQQorUEVKSU4gUkFEQQorUEVKSU4gUkFET1NMQVYKK1BFSklOIFNURVZBTgorUEVKSU4gU1RFVkFOCitQRUpJTiBWQVNBCitQRUpJTiBWRVJJQ0EKK1BFSklOIFZVS09TQVZBCitQRUpJTk9WIEJSQU5JU0xBVgorUEVKSU5PViBMSlVCSUNBCitQRUpJTk9WIFZFTEpLTworUEVKSU5PVknEhiBEUkFHQU4KK1BFSktPVknEhiBBTEVLU0FOREFSCitQRUpLT1ZJxIYgREFOSUxLQQorUEVKS09WScSGIElCT0xKS0EKK1BFSktPVknEhiBJVkFOCitQRUpLT1ZJxIYgSkFTTkEKK1BFSk5PVknEhiBCT1NJTEpLQQorUEVKTk9WScSGIExKVUJJTktBCitQRUpOT1ZJxIYgTUlMQU4KK1BFSk5PVknEhiBNSVJPU0xBVgorUEVKTk9WScSGIE5JS09MQQorUEVKTk9WScSGIFNURVZBTgorUEVKT1ZJxIYgxJBPS0EKK1BFSk9WScSGIMSQVUtBTgorUEVKT1ZJxIYgQUxFS1NBTkRBUgorUEVKT1ZJxIYgQUxFS1NBTkRBUgorUEVKT1ZJxIYgQk/FvUlEQVIKK1BFSk9WScSGIEJPUklTTEFWCitQRUpPVknEhiBCT1JJVk9KRQorUEVKT1ZJxIYgQk9SS0EKK1BFSk9WScSGIEJPU0lMSktBCitQRUpPVknEhiBCUkFOS0EKK1BFSk9WScSGIERBTklDQQorUEVKT1ZJxIYgREFOSUxPCitQRUpPVknEhiBEQVZJRAorUEVKT1ZJxIYgREVKQU4KK1BFSk9WScSGIERPQlJJTEEKK1BFSk9WScSGIERSQUdJQ0EKK1BFSk9WScSGIExKVUJPCitQRUpPVknEhiBNQVJLTworUEVKT1ZJxIYgTUlMQU4KK1BFSk9WScSGIE1JTEVOQQorUEVKT1ZJxIYgTUlMRU5BCitQRUpPVknEhiBNSUxJSkEKK1BFSk9WScSGIE1JTE9KS0EKK1BFSk9WScSGIE1JT0RSQUcKK1BFSk9WScSGIE1JUkpBTkEKK1BFSk9WScSGIE1PTUlSCitQRUpPVknEhiBOQURBCitQRUpPVknEhiBPTEdBCitQRUpPVknEhiBQQVZMRQorUEVKT1ZJxIYgUEVUQVIKK1BFSk9WScSGIFNBVkEKK1BFSk9WScSGIFNMQVZLQQorUEVKT1ZJxIYgU0xPQk9EQU5LQQorUEVKT1ZJxIYgU0xPQk9EQU4KK1BFSk9WScSGIFRPTUlTTEFWCitQRUpPVlNLSSBEUkFHQU4KK1BFSk9WU0tJIEtPTEUKK1BFSk9WU0tJIFRPTUlTTEFWCitQRUtBUiBEQVJLTworUEVLQVIgSkFOT8WgCitQRUtBUiBNSUxLQQorUEVLQVIgUk9aQUxJSkEKK1BFS0FST1ZJxIYgRFJBR0lDQQorUEVLQVMgQU5URQorUEVLRcSMIE1JVEEKK1BFS0VaIEJSQU5LTworUEVLRVogSk9WQU4KK1BFS0VaIEpPVkFOCitQRUtFWiBNQVJJQ0EKK1BFS0VaIE1JTE9SQUQKK1BFS0VaIFNUQU5BCitQRUtFWiBaT1JBCitQRUtJxIYgQlJBTklTTEFWIERSCitQRUtJxIYgR09SQU4KK1BFS0nEhiBLUlNUTworUEVLScSGIE1JSEFKTE8KK1BFS0nEhiBNSUxBTgorUEVLScSGIE1JTEFOCitQRUtJxIYgTUlMT8WgCitQRUtJxIYgTUlSS08KK1BFS0nEhiBTVEVWQU4KK1BFS09WScSGIMW9RUxKS08KK1BFS09WScSGIElMSUpBCitQRUtPVknEhiBNQUdEQUxFTkEKK1BFS09WScSGIE1JTElWT0pFCitQRUtPVknEhiBNSVRSVcWgQQorUEVLT1ZJxIYtUEFSTEHEhiBTTUlMSkEgRFIKK1BFS09WScSGIFBBVkEKK1BFS09WScSGIFZFUkEKK1BFS09WScSGIFZJREEKK1BFS09WScSGIFZVS0HFoElOCitQRUtVUkFSIEtPUk5FTAorUEVLVVJBUiBST01BTgorUEVMQUdJxIYgTkFEQQorUEVMQUdJxIYgU1LEkEFOCitQRUxFIEZFUkVOQworUEVMRSBNQVJJSkEKK1BFTEUgWk9MVEFOCitQRUxFR1JJTiBTVEpFUEFOCitQRUxFR1JJTiBWTEFETworUEVMRVZJxIYgQlJBTktPCitQRUxIRSBGUkFOSkEgRFIKK1BFTEpIQSDEkFVSQQorUEVMSkhBIFNBTkpBCitQRUxKSEEgWlZPTktPCitQRUxPWkEgRFXFoEFOCitQRUxPWkEgTkFEQQorUEVMVkEgSk9TSVAKK1BFTFZBIEpPVkFOCitQRUxWQSBaT0xUQU4KK1BFTFZBSS1aT1JJxIYgRURJVAorUEVNQUMgQlJBTklTTEFWCitQRU1BQyBMQVpBUgorUEVOQSBNQVJJTktPCitQRU5BIE1JTEFOCitQRU5BIE1JT0RSQUcKK1BFTkEgUkFESVZPSgorUEVOQSBTTE9CT0RBTgorUEVOQUMgU1RBS0lDQQorUEVOQVZJTiBWRUxJTUlSCitQRU5DIERPQlJJTEEKK1BFTkMgSVJFTkEKK1BFTkNBIFNMQVZLTworUEVORMW9ScSGIEJSQU5JU0xBVgorUEVORMW9ScSGIEpFUk9TSU1BCitQRU5FWknEhiBEVcWgQU4KK1BFTkVaScSGIE5FTkFECitQRU5FWknEhiBSQURPU0xBVgorUEVORVpJxIYgWk9SSUNBCitQRU5JxIYgxIxFRE9NSVIKK1BFTknEhiDEkFVSxJBJQ0EKK1BFTknEhiBCT1JJU0xBVgorUEVOScSGIEJSQU5LTworUEVOScSGIE1JSEFKTE8KK1BFTknEhiBNSUxFVkEKK1BFTknEhiBNSUxJQ0EKK1BFTknEhiBQQVZMRQorUEVOScSGIFNMQVZLTworUEVOScSGIFNURVZBTgorUEVOScSGIFZMQURJTUlSCitQRU5KQcWgS09WScSGIFpWT05JTUlSCitQRU5KSU4gxb1JVkEKK1BFTkpJTiBTTEFWS08KK1BFTk9WIEVNSUwKK1BFTk9WIExKVUJJxaBBCitQRU5PViBNQVJLTworUEVOWkXFoCDEkE9SxJBFCitQRU5aRcWgIEZFUkVOQworUEVOWkXFoCBGRVJFTkMKK1BFTlpFxaAgTUlIQUxKCitQRU5aRcWgIE1JSEFMSgorUEVOWkXFoCBUSUJPUgorUEVQScSGIExBWk8KK1BFUEnEhiBNSUxBTgorUEVQScSGIE1JTEUKK1BFUEnEhiBNSVJKQU5BCitQRVBJxIYgTUlSS08KK1BFUExJTkFDIFRPTUEKK1BFUsSMSSBBR05FWkEKK1BFUsSMScSGIERSQUdBTgorUEVSxaAgS1NFTklKQQorUEVSxaBBSiBNSVJKQU5BCitQRVLFoEnEhiBEQU5JQ0EKK1BFUsWgScSGIFZBTEVSSUpBCitQRVLEkEXEkEFKIEJBxaBLSU0KK1BFUsSQVU4gWlZPTktPCitQRVJBxIYgQlJBTktPCitQRVJBxIYgTEpVUEtPCitQRVJBWknEhiBTQVZBCitQRVJBWknEhiBWTEFESU1JUgorUEVSQyBCUkFOS0EKK1BFUkMgRUxBCitQRVJDIFZMQURJTUlSCitQRVJDRSBMVUtBCitQRVJEQU4gU1RBTklTTEFWCitQRVJFxaAgSEVSTUlOQQorUEVSRcW9QSBOSUtPTEEKK1BFUkVHSSBHRVpBCitQRVJFR0kgT1NLQVIKK1BFUkVISU5BQyBJVkFOCitQRVJFTsSMRVZJxIYgVkFTTworUEVSRVBBVEnEhiBQSVJPxaAKK1BFUkVQQVRJxIYgU1RFVkFOCitQRVJFVUxBIEJPR0RBTgorUEVSR0FMIE1JUk9TTEFWIERSIElORworUEVSR0UgRVNURVIKK1BFUkdFIE1BUkEKK1BFUkdFIFZJS1RPUklKQQorUEVSScSMRVZJxIYgQlJBTktPCitQRVJJxIxFVknEhiBSQUpLTworUEVSScSMSU4gxb1JVkFOCitQRVJJxIxJTiBNSUxBTktBCitQRVJJxIxJTiBNSUxFTktPCitQRVJJxIxJTiBSQVRLTworUEVSScSMSU4gVkxBREEKK1BFUknFoEEgSkFLT1YKK1BFUknFoEEgTUlST1NMQVYKK1BFUknFoEnEhiDEjEVET01JUgorUEVSScWgScSGIMW9SVZPREFSS0EKK1BFUknFoEnEhiDEkE9SxJBFCitQRVJJxaBJxIYgxJBPUsSQRQorUEVSScWgScSGIEFMRUtTQU5EQVIKK1BFUknFoEnEhiBBTklDQQorUEVSScWgScSGIEJMQcW9TworUEVSScWgScSGIEJMQUdPSkUKK1BFUknFoEnEhiBCT0JBTgorUEVSScWgScSGIEJPUklTTEFWCitQRVJJxaBJxIYgQlJBTktPCitQRVJJxaBJxIYgREFOSUNBCitQRVJJxaBJxIYgRFJBR09NSVIKK1BFUknFoEnEhiBEVcWgQU5LQQorUEVSScWgScSGIElSRU5BCitQRVJJxaBJxIYgS0FUSUNBCitQRVJJxaBJxIYgS0FUSUNBCitQRVJJxaBJxIYgTEFaQVIKK1BFUknFoEnEhiBMQVpBUgorUEVSScWgScSGIExBWkFSCitQRVJJxaBJxIYgTEFaQQorUEVSScWgScSGIExKVUJPTUlSCitQRVJJxaBJxIYgTUFOQ0lLQQorUEVSScWgScSGIE1BUkEKK1BFUknFoEnEhiBNSUhBSkxPCitQRVJJxaBJxIYgTUlMQU4KK1BFUknFoEnEhiBNSUxFTktPCitQRVJJxaBJxIYgTUlMSU5LTworUEVSScWgScSGIE1JTEpBCitQRVJJxaBJxIYgTUlMT1ZBTgorUEVSScWgScSGIE1JTE9WQU4KK1BFUknFoEnEhiBNSUxVVElOCitQRVJJxaBJxIYgTUlPRFJBRworUEVSScWgScSGIE1JUkEKK1BFUknFoEnEhiBOSUtPTEEKK1BFUknFoEnEhiBSQURFCitQRVJJxaBJxIYgUkFET1NMQVZBCitQRVJJxaBJxIYgUkFET1NMQVYKK1BFUknFoEnEhiBSQU5LTworUEVSScWgScSGIFNUQU5LTworUEVSScWgScSGIFNURVZPCitQRVJJxaBJxIYgU1RPSkFOCitQRVJJxaBJxIYgU1ZFVE9aQVIKK1BFUknFoEnEhiBUT0RPUgorUEVSScWgScSGIFVHTEpFxaBBCitQRVJJxaBJxIYgVkFTTworUEVSScWgScSGIFZBU08KK1BFUknEhiDFvUFSS08KK1BFUknEhiDFvUlWS0EKK1BFUknEhiDFvUlWT0pJTgorUEVSScSGIMSQT1LEkEUKK1BFUknEhiDEkFVSSUNBCitQRVJJxIYgQUxFS1NBTkRBUgorUEVSScSGIEFOQQorUEVSScSGIEJJU0VSS0EKK1BFUknEhiBCT8W9SURBUgorUEVSScSGIEJPxb1JREFSCitQRVJJxIYgQk9SSVMKK1BFUknEhiBCUkFOSVNMQVYKK1BFUknEhiBCUkFOSVNMQVYKK1BFUknEhiBCUkFOS08KK1BFUknEhiBDVklKRVRJTgorUEVSScSGIERPQlJJTEEKK1BFUknEhiBEUkFHQU5BCitQRVJJxIYgRFXFoEFOS0EKK1BFUknEhiBEVcWgQU4KK1BFUknEhiBEVcWgQU4KK1BFUknEhiBHT0pLTyBESVBMIElORworUEVSScSGIEdPUkFOCitQRVJJxIYgSVZBTgorUEVSScSGIEpBTktPCitQRVJJxIYgSkVMS0EKK1BFUknEhiBKT1ZBTktBCitQRVJJxIYgSk9WQU4KK1BFUknEhiBLU0VOSUpBCitQRVJJxIYgTEFaQQorUEVSScSGIExKVUJJxaBBCitQRVJJxIYgTEpVQklDQQorUEVSScSGIExKVUJJTktBCitQRVJJxIYgTEpVQklOS08KK1BFUknEhiBMSlVCT01JUgorUEVSScSGIE1BUkEKK1BFUknEhiBNQVJJSkEKK1BFUknEhiBNQVJJSkEKK1BFUknEhiBNQVJJSkEKK1BFUknEhiBNQVJJTktPCitQRVJJxIYgTUFSS08KK1BFUknEhiBNSUhBCitQRVJJxIYgTUlMQURJTgorUEVSScSGIE1JTEFOCitQRVJJxIYgTUlMRU5LTworUEVSScSGIE1JTElDQQorUEVSScSGIE1JTEtJQ0EKK1BFUknEhiBNSUxPxaAKK1BFUknEhiBNSUxPxaAKK1BFUknEhiBNSUxPUkFECitQRVJJxIYgTUlPRFJBRworUEVSScSGIE1JVEFSCitQRVJJxIYgTkFUQcWgQQorUEVSScSGLU5FxaBJxIYgQ09LQQorUEVSScSGIE5JS09MQQorUEVSScSGIE5JS09MQQorUEVSScSGIE5JS09MQQorUEVSScSGIE5JS09MQQorUEVSScSGIFBBVkxFCitQRVJJxIYgUEVUQVIKK1BFUknEhiBSQcWgQQorUEVSScSGIFJBREUKK1BFUknEhiBSQURJVk9KCitQRVJJxIYgUkFETworUEVSScSGIFJBSktPCitQRVJJxIYgUk9ET0xKVUIKK1BFUknEhiBSVcW9SUNBCitQRVJJxIYgU0FWQQorUEVSScSGIFNBVkEKK1BFUknEhiBTTEFWSUNBCitQRVJJxIYgU0xBVktPCitQRVJJxIYgU0xPQk9EQU4KK1BFUknEhiBTTE9CT0RBTgorUEVSScSGIFNNSUxKQQorUEVSScSGIFNUQU5LQQorUEVSScSGIFNWRVRPWkFSCitQRVJJxIYgVE9NSVNMQVYKK1BFUknEhiBWQVNBCitQRVJJxIYgVklOS0EKK1BFUknEhiBWTEFUS08KK1BFUknEhiBaREVOS0EKK1BFUknEhiBaT1JBTgorUEVSScSGIFpPUkFOCitQRVJJxIYgWk9SQQorUEVSSUNBIEFOVEUKK1BFUklDQSBSQURPU0xBVgorUEVSSU4gQlJBTklTTEFWCitQRVJJTiBEUkFHScWgQQorUEVSSU4gTUlMSU5LTworUEVSSU4gTUlMT1JBRAorUEVSSU4gUkFEScWgQQorUEVSSU4gU0VLVUxBCitQRVJJTiBaT1JBCitQRVJJTkFDIFJBRE9WQU4KK1BFUklOQUMgUkFET1ZBTgorUEVSSU5PVknEhiBCUkFOS08KK1BFUklOT1ZJxIYgTkFEQQorUEVSSU5PVknEhiBTTEFWSUNBCitQRVJJTk9WScSGIFNMQVZLTworUEVSSU5PVknEhiBTVEFOS08KK1BFUklaIFNURVZPCitQRVJLT1YgUkFESU5LQQorUEVSS09WQUMgTUFSSUpBCitQRVJLT1ZJxIYgQlJBTklNSVIKK1BFUktPVknEhiBCUkFOSVNMQVYKK1BFUktPVknEhiBEQU5JQ0EKK1BFUktPVknEhiBEUkFHQU4KK1BFUktPVknEhiBHVk9aREVOCitQRVJLT1ZJxIYgSkVMS0EKK1BFUktPVknEhiBSQURJVk9KCitQRVJLT1ZJxIYgUkFET01BTiBNUgorUEVSS09WScSGIFNMQVZLTworUEVSS09WScSGIFRBRElKQQorUEVSS09WScSGIFRPTU8KK1BFUktPVlNLSSDEkE9SxJBFCitQRVJLT1ZTS0kgQU7EkEVMS08KK1BFUktVxIxJTiDEkE9SxJBFCitQRVJLVcSMSU4gxJBVTElOS0EKK1BFUktVxIxJTiBEVcWgQU4KK1BFUktVxIxJTiBHT1JEQU5BCitQRVJLVcSMSU4gS0FUSUNBCitQRVJLVcSMSU4gTklLT0xBCitQRVJLVcSMSU4gUkFESVZPSiBEUgorUEVSTEFLSSBMQUpPxaAKK1BFUkxJxIYgRFJBR0FOCitQRVJMSU5BQyBTSU1FVU4KK1BFUk5KQUsgTkFUQUxJSkEKK1BFUk5KQUsgTklLT0xBIERJUEwgSU5HCitQRVJOSkFLT1ZJxIYgRFJBR09TTEFWCitQRVJPxaBFVknEhiBOT1ZJQ0EKK1BFUk/FoEVWScSGIFNUQU5LQQorUEVST1NBVkxKRVZJxIYgTEpVQknFoEEKK1BFUk9WQU5PVknEhiBBTEVLU0FOREFSCitQRVJPVkFOT1ZJxIYgRFXFoEFOCitQRVJPVkFOT1ZJxIYgSkFHT0RBCitQRVJPVknEhiDFvUFOS0EKK1BFUk9WScSGIEFOxJBFTEtBCitQRVJPVknEhiBCT0pBTkEKK1BFUk9WScSGIEJSQU5LTworUEVST1ZJxIYgQlJBVElNSVIKK1BFUk9WScSGIERSQUdPCitQRVJPVknEhiBHQUJSSUVMQQorUEVST1ZJxIYgSVZBTktBCitQRVJPVknEhiBKRUxBCitQRVJPVknEhiBKT1ZBTgorUEVST1ZJxIYgS0FUQVJJTkEKK1BFUk9WScSGIE1BUktPCitQRVJPVknEhiBNSUxFTktPIERSCitQRVJPVknEhiBNSUxPUkFECitQRVJPVknEhiBNTEHEkEVOCitQRVJPVknEhiBOQURFxb1EQQorUEVST1ZJxIYgTklLT0xBCitQRVJPVknEhiBSQURBxaBJTgorUEVST1ZJxIYgUkFESVNBVgorUEVST1ZJxIYgUkFESVNMQVYKK1BFUk9WScSGIFJBRElWT0pFCitQRVJPVknEhiBSQURJVk9KCitQRVJPVknEhiBSQURPVkFOIERJUEwgSU5HCitQRVJPVknEhiBTVkVUT01JUgorUEVST1ZJxIYgVkVTRUxJTgorUEVST1ZJxIYgVkxBSktPCitQRVJUScSGIFpBS0FSSUHFoAorUEVSVE9UIEpFTEVOQQorUEVSVU5JxIxJxIYgRE9CUklMQQorUEVSVU5JxIxJxIYgTUlMT1JBRAorUEVSVU5JxIxJxIYgUkFEQU4KK1BFUlVOT1ZJxIYgTEpJTEpBTkEKK1BFUlVOT1ZJxIYgUEFOVE8KK1BFUlVOT1ZJxIYgU1RBTk9KRQorUEVSVkFaIMW9SVZLQQorUEVSVkFaIERSQUdJTkpBIERSIFBST0YKK1BFU0lSQUMgRFJBR09MSlVCCitQRVNJUkFDIEtBVEFSSU5BCitQRVNJUkFDIFBFVEFSCitQRVNJUkFDIFNURVZBTgorUEVTTEHEhiBKT1ZBTgorUEVTVEFMScSGIEpPU0lQCitQRVNURUxFSyBMSlVCScWgQQorUEVTVEVMRUsgTEpVQknFoEEKK1BFVEFLT1Ygxb1JVktPCitQRVRBS09WIEpVTEtBCitQRVRBS09WIE1JTEVOS08KK1BFVEFLT1YgUkFET1NMQVYKK1BFVEFLT1YgUkFOS0EKK1BFVEFLT1YgU0FWQQorUEVUQUtPVknEhiBET0JSSUxBCitQRVRBS09WScSGIERVxaBBTgorUEVUQUtPVknEhiBJTElKQQorUEVUQUtPVknEhiBKT1ZBTgorUEVUQUtPVknEhiBNSUxJQ0EKK1BFVEFLT1ZJxIYgTkVNQU5KQQorUEVUQUtPVknEhiBSQURJVk9KCitQRVRBS09WScSGIFJBSktPCitQRVRBS09WScSGIFNBVkEKK1BFVEUgxJBVUkEKK1BFVEUgxJBVUkEKK1BFVEUgRFXFoEFOS0EKK1BFVEUgRkVSRU5DCitQRVRFIEZFUkVOQworUEVURSBGUkFOSkEKK1BFVEUgScWgVFZBTgorUEVURSBJxaBUVkFOCitQRVRFIEnFoFRWQU4KK1BFVEUgS0FST0xKCitQRVRFIFBFVEFSCitQRVRFIFNURVBBTgorUEVURSBTVEVWQU4KK1BFVEVKIFJBVEtPCitQRVRFSyBEQU1JUgorUEVURUxJTiBFTElaQUJFVEEKK1BFVEVOSkkgSk9TSVAgRFIKK1BFVEVOSkkgU1RFVkFOCitQRVRFUiBGUkFOQ0nFoEtBCitQRVRFUiBKT8W9RUYKK1BFVEVSIEpPTEFOCitQRVRFUiBKT1ZBTgorUEVURVIgTUlIQUxKCitQRVRFUiBWSUxNT8WgCitQRVRFUktBIMSQT1LEkEUKK1BFVEVSS0EgSkVMRU5BCitQRVRFUktBIEpPU0lQCitQRVRFUktBIE1BUklKQQorUEVURVJLQSBTVEVWQU4KK1BFVEVSS0EgVkxBRElTTEFWCitQRVRFUkxJxIYgTUlMQU4KK1BFVEVSTkVMIExJRElKQQorUEVUScSGIE1JTEFOCitQRVRJxIYgWk9SS0EKK1BFVElKRVZJxIYgSk9WQU4gTVIKK1BFVElKRVZJxIYgSk9WQU4KK1BFVElOIE5JS09MQSBQUk9GRVNPUgorUEVUS0FOScSGIE1JTE9SQUQKK1BFVEtPViDFvUFSRQorUEVUS09WIMSQT1LEkEUKK1BFVEtPViDEkFVSQQorUEVUS09WIEJPUklTTEFWCitQRVRLT1YgSVZBTgorUEVUS09WIE1JTEFOCitQRVRLT1YgTkFERcW9REEKK1BFVEtPViBTQVZBCitQRVRLT1YgU1RFVkFOCitQRVRLT1YgU1RFVkEKK1BFVEtPVknEhiDEjEVEQQorUEVUS09WScSGIMW9QVJLTworUEVUS09WScSGIMW9RUxKS08KK1BFVEtPVknEhiDFvUlWT1JBRAorUEVUS09WScSGIMW9SVZPUkFECitQRVRLT1ZJxIYgxJBPUsSQRSBEUgorUEVUS09WScSGIMSQT1LEkEUKK1BFVEtPVknEhiDEkE9SxJBFCitQRVRLT1ZJxIYgxJBPUsSQRQorUEVUS09WScSGIMSQT1LEkEUKK1BFVEtPVknEhiDEkFVMQQorUEVUS09WScSGIMSQVVJBxJAKK1BFVEtPVknEhiBBTEVLU0FOREFSCitQRVRLT1ZJxIYgQU5BCitQRVRLT1ZJxIYgQU5UVU4KK1BFVEtPVknEhiBCT0pBTkEKK1BFVEtPVknEhiBCT1JJU0xBVgorUEVUS09WScSGIEJPUktPCitQRVRLT1ZJxIYgQlJBTktPCitQRVRLT1ZJxIYgQlJBTktPCitQRVRLT1ZJxIYgQlJBTktPCitQRVRLT1ZJxIYgQlJBTktPCitQRVRLT1ZJxIYgQ1ZFVEtPCitQRVRLT1ZJxIYgREFSSU5LQQorUEVUS09WScSGIERSQUdBTgorUEVUS09WScSGIERSQUdBTgorUEVUS09WScSGIERSQUdJxaBBCitQRVRLT1ZJxIYgRFJBR0lDQQorUEVUS09WScSGIERSQUdPTEpVQgorUEVUS09WScSGIERVxaBBTgorUEVUS09WScSGIERVxaBBTgorUEVUS09WScSGIERVxaBBTgorUEVUS09WScSGIEdPUkRBTkEKK1BFVEtPVknEhiBHVk9aREVOCitQRVRLT1ZJxIYgScWgVFZBTgorUEVUS09WScSGIElMSUpBCitQRVRLT1ZJxIYgSUxJSkEKK1BFVEtPVknEhiBJTEpBCitQRVRLT1ZJxIYgSVJFTkEKK1BFVEtPVknEhiBKQUdPREEKK1BFVEtPVknEhiBKT1NJUAorUEVUS09WScSGIEpPVkFOCitQRVRLT1ZJxIYgSk9WTworUEVUS09WScSGIEtBTE1BTgorUEVUS09WScSGIEtBVEFSSU5BCitQRVRLT1ZJxIYgS09TVEFESU4KK1BFVEtPVknEhiBLUlNUQQorUEVUS09WScSGIExBWkFSCitQRVRLT1ZJxIYgTEFaQVIKK1BFVEtPVknEhiBMQVpBUgorUEVUS09WScSGIExBWk8KK1BFVEtPVknEhiBMSlVCSU5LTworUEVUS09WScSGIExKVUJPTUlSCitQRVRLT1ZJxIYgTUFSS08KK1BFVEtPVknEhiBNSUhBSkxPCitQRVRLT1ZJxIYgTUlMQU5BCitQRVRLT1ZJxIYgTUlMQU4KK1BFVEtPVknEhiBNSUxBTgorUEVUS09WScSGIE1JTEFOCitQRVRLT1ZJxIYgTUlMQU4KK1BFVEtPVknEhiBNSUxBTgorUEVUS09WScSGIE1JTElDQQorUEVUS09WScSGIE1JTEtBCitQRVRLT1ZJxIYgTUlMT1JBRAorUEVUS09WScSGIE1JTE9SQUQKK1BFVEtPVknEhiBNSUxPVkFOS0EKK1BFVEtPVknEhiBNSUxVVElOCitQRVRLT1ZJxIYgTUlMVVRJTgorUEVUS09WScSGIE1JTFVUSU4KK1BFVEtPVknEhiBNSU9EUkFHCitQRVRLT1ZJxIYgTUlPRFJBRworUEVUS09WScSGIE1JT0RSQUcKK1BFVEtPVknEhiBNSU9SSUtBCitQRVRLT1ZJxIYgTUlSQQorUEVUS09WScSGIE1JUkpBTkEgRElQTCBJTkcKK1BFVEtPVknEhiBNSVJKQU5BCitQRVRLT1ZJxIYgTUlSS08KK1BFVEtPVknEhiBNSVJLTworUEVUS09WScSGIE1JUktPCitQRVRLT1ZJxIYgTUxBREVOCitQRVRLT1ZJxIYgTUxBREVOCitQRVRLT1ZJxIYgTUxBREVOCitQRVRLT1ZJxIYgTkFEQQorUEVUS09WScSGIE5JS08KK1BFVEtPVknEhiBPQlJBRAorUEVUS09WScSGIE9MSVZFUkEKK1BFVEtPVknEhiBQQVZMRQorUEVUS09WScSGIFBBVkxFCitQRVRLT1ZJxIYgUEFWTEUKK1BFVEtPVknEhiBQRVRBUgorUEVUS09WScSGIFBFVEFSCitQRVRLT1ZJxIYgUEVUQVIKK1BFVEtPVknEhiBQRVRSQQorUEVUS09WScSGIFBVTknFoEEKK1BFVEtPVknEhiBSQURFCitQRVRLT1ZJxIYgUkFESVZPSgorUEVUS09WScSGIFJBRE9WQU4KK1BFVEtPVknEhiBSQURPVkFOCitQRVRLT1ZJxIYgUkFUS0EKK1BFVEtPVknEhiBTTEFWS08KK1BFVEtPVknEhiBTTE9CT0RBTgorUEVUS09WScSGIFNMT0JPREFOCitQRVRLT1ZJxIYgU1LEkEFOCitQRVRLT1ZJxIYgU1RBTkEKK1BFVEtPVknEhiBTVEFOT0pFCitQRVRLT1ZJxIYgU1RFVkFOCitQRVRLT1ZJxIYgU1RFVkFOCitQRVRLT1ZJxIYgU1ZFVElTTEFWCitQRVRLT1ZJxIYgVE9NSVNMQVYKK1BFVEtPVknEhiBUT01JU0xBVgorUEVUS09WScSGIFZBU0lMSUpFCitQRVRLT1ZJxIYgVkVSQQorUEVUS09WScSGIFZFUklDQQorUEVUS09WScSGIFZFU0VMSU4KK1BFVEtPVknEhiBWTEFESU1JUgorUEVUS09WScSGIFZMQURJTUlSCitQRVRLT1ZJxIYgVkxBRElNSVIKK1BFVEtPVknEhiBWTEFESVNMQVYKK1BFVEtPVknEhiBWT0pJU0xBVgorUEVUS09WScSGIFZVS0HFoElOCitQRVRLT1ZJxIYgVlVLT1NBVkEKK1BFVEtPVknEhiBaTEFUS08KK1BFVEtPVknEhiBaTEFUT01JUgorUEVUS09WScSGIFpPUkFOCitQRVRLT1ZTS0EgU0xBVklDQQorUEVUS09WU0tJIEFDQQorUEVUS09WU0tJIEdPUkFOCitQRVRLT1ZTS0kgTUlMS0EKK1BFVEtPVlNLSSBTVEFOS08KK1BFVExFSyBKT1ZBTgorUEVUTEpBTlNLSSBCUkFOS08KK1BFVExKQU5TS0kgRFJBR09TTEFWCitQRVRMSkFOU0tJIElSRU5BCitQRVRPIEpPxb1FRgorUEVUT8WgRVZJxIYgTUlMRQorUEVUT8WgRVZJxIYgU0xBVktPCitQRVRPxaBFVknEhiBTVEVWQU4KK1BFVE/FoEVWScSGIFNWRVRJU0xBVgorUEVUT0hMRUIgUEFWSUNBCitQRVRPSkVWScSGIMSQT1LEkEUKK1BFVE9WScSGIMSQVVJPCitQRVRPVknEhiBHT0pLTworUEVUT1ZJxIYgTUlMRU5BCitQRVRPVknEhiBTTEFWS08KK1BFVFJBxaBJTk9WScSGIERSQUdBTgorUEVUUkHFoEtPVknEhiBEUkFHQU4KK1BFVFJBxaBLT1ZJxIYgRU1JTElKQQorUEVUUkFLT1ZJxIYtR1JBT1ZBQyBLT1NBTkEKK1BFVFJBTk9WScSGIEpPU0lQCitQRVRSQU5PVknEhiBNQUdEQQorUEVUUkFOT1ZJxIYgWlZPTktPCitQRVRSRcWgIEZSQU5KTworUEVUUkXFoCBSQURFCitQRVRSRU5KIFNURVZBTgorUEVUUkVWU0tBIFpPUkFOS0EKK1BFVFJFVlNLSSBCT1JJUworUEVUUkVWU0tJIElMT05BCitQRVRSRVZTS0kgS0lSTworUEVUUkkgTUlMRU5BCitQRVRSSSBNSVJPU0xBVkEKK1BFVFJJxIxFVknEhiBJVkFOCitQRVRSScSMScSGIEJSQU5LTworUEVUUknEjEnEhiBEQU5FCitQRVRSScSMScSGIEpPVk8KK1BFVFJJxIxJxIYgTUlMQU4KK1BFVFJJxIxJxIYgTUlMQU4KK1BFVFJJxIxJxIYgU1RFVkFOCitQRVRSScSMScSGIFRBVEpBTkEKK1BFVFJJxIYgxJBPUsSQRQorUEVUUknEhiBBTEVLU0FOREFSCitQRVRSScSGIEFOQVNUQVpJSkEKK1BFVFJJxIYgQk/FoEtPCitQRVRSScSGIEJSQU5JU0xBVkEKK1BFVFJJxIYgQlJBTktPIERSCitQRVRSScSGIERBTklMTworUEVUUknEhiBERVNBTktBIERJUEwgSU5HCitQRVRSScSGIERFU0lNSVIKK1BFVFJJxIYgRElNSVRSSUpFIERJUEwgSU5HCitQRVRSScSGIERJTUlUUklKRQorUEVUUknEhiBESU1JVFJJSkUKK1BFVFJJxIYgRFXFoEFOS0EKK1BFVFJJxIYgRFXFoEFOCitQRVRSScSGIElMSUpBCitQRVRSScSGIEpPVkFOCitQRVRSScSGIExBWkFSIE1SCitQRVRSScSGIExKSUxKQU5BCitQRVRSScSGIExKVUJJQ0EKK1BFVFJJxIYgTUlMQU4KK1BFVFJJxIYgTUlMQU4KK1BFVFJJxIYgTUlMRU5LTworUEVUUknEhiBNSUxFVEEKK1BFVFJJxIYgTUlMSVZPSgorUEVUUknEhiBNSUxPUkFECitQRVRSScSGIE5BREEKK1BFVFJJxIYgT0xHQQorUEVUUknEhiBQRVRBUgorUEVUUknEhiBQRVRBUgorUEVUUknEhiBSQURJU0FWCitQRVRSScSGIFJBRElTQVYKK1BFVFJJxIYgUkFET1ZBTgorUEVUUknEhiBTTEFWSUNBCitQRVRSScSGIFNMT0JPREFOS0EKK1BFVFJJxIYgU0xPQk9EQU4KK1BFVFJJxIYgU09GSUpBCitQRVRSScSGIFNPRklKQQorUEVUUknEhiBWQVNJTElKRQorUEVUUknEhiBWVUxFVEEKK1BFVFJJSyDFoEFORE9SCitQRVRSSUsgQUxFS1NBTkRBUiBESVBMIElORworUEVUUklLIEVMSVpBQkVUQQorUEVUUklLIEnFoFRWQU4KK1BFVFJJSyBWSU5DRQorUEVUUklLIFpPTFRBTgorUEVUUklLQSBMSlVCScWgQQorUEVUUklLQSBNSU9EUkFHCitQRVRSSUtPTkpBIEtTRU5JSkEKK1BFVFJJS09OSkEgTEFaQVIKK1BFVFJJTiBEVcWgQU4KK1BFVFJJTiBLQVRJQ0EKK1BFVFJJTiBNQUpBCitQRVRSSU4gTUlMQU5LQQorUEVUUklOIE1JTEFOS0EKK1BFVFJJTiBSQURNSUxBCitQRVRSSU4gVkxBRElNSVIKK1BFVFJJTiBWTEFESU1JUgorUEVUUklOScSGIE1JUktPCitQRVRSSU5PVknEhiBNSUxJTkEKK1BFVFJJTk9WScSGIFNURVZBCitQRVRSTyBBTlRFCitQRVRSTyBLQVRBTElOCitQRVRSTyBOSUtPCitQRVRSTyBTQU5KQQorUEVUUk9OScSGIMW9SVZPVEEKK1BFVFJPTknEhiBBTEVLU0FOREFSCitQRVRST05JxIYgS0FUQVJJTkEKK1BFVFJPTklKRVZJxIYgRFJBR09NSVIKK1BFVFJPTklKRVZJxIYgR09SQU4KK1BFVFJPTklKRVZJxIYgUFJFRFJBRworUEVUUk9OSUpFVknEhiBTUkVUQQorUEVUUk9OSUpFVknEhiBWTEFTVElNSVIKK1BFVFJPTkpFIE1JT0RSQUcKK1BFVFJPTkpFIE1JT0RSQUcKK1BFVFJPViDFvUlWQU5BCitQRVRST1Ygxb1JVkFOCitQRVRST1YgQU5BVE9MSUoKK1BFVFJPViBBTkEKK1BFVFJPViBCT1JJUworUEVUUk9WIERBTklDQQorUEVUUk9WIERVxaBBTktBCitQRVRST1YgRFXFoEFOCitQRVRST1YgRVZJQ0EKK1BFVFJPViBGUkFOS0EKK1BFVFJPViBJxaBUVkFOCitQRVRST1YgSVZBTgorUEVUUk9WIEpBU01JTkEKK1BFVFJPViBKRUxFTkEKK1BFVFJPViBKT8W9RUYKK1BFVFJPViBMQVpBUgorUEVUUk9WIExKVUJPTUlSCitQRVRST1YgTEpVQk9NSVIKK1BFVFJPViBNQVJJSkEKK1BFVFJPViBNQVJJSkEKK1BFVFJPViBNQVJJTktPCitQRVRST1YgTUlMQU4KK1BFVFJPViBNSUxFTktPCitQRVRST1YgTUlMSUNBCitQRVRST1YgTUlMT1JBRAorUEVUUk9WIE1JTE9TQVZBCitQRVRST1YgTUlMT1ZBTgorUEVUUk9WIE1JT0RSQUcKK1BFVFJPViBNSU9EUkFHCitQRVRST1YgTUlST1NMQVYKK1BFVFJPViBNT03EjElMTworUEVUUk9WIE5BREEKK1BFVFJPViBOQVRBTElKQQorUEVUUk9WIE5FQk9KxaBBIERSCitQRVRST1YgT0xHQQorUEVUUk9WIFJBRE1JTEEKK1BFVFJPViBTQcWgQQorUEVUUk9WIFNBVkEKK1BFVFJPViBTQVZBCitQRVRST1YgU0FWQQorUEVUUk9WIFNFUkdJSkUKK1BFVFJPViBTTEFWS0EKK1BFVFJPViBTTEFWS08KK1BFVFJPViBTTE9CT0RBTgorUEVUUk9WIFNSQklWT0oKK1BFVFJPViBTVEVWQU4KK1BFVFJPViBTVkVUT1pBUgorUEVUUk9WIFRPTUlTTEFWCitQRVRST1YgVkFTTworUEVUUk9WIFZFTElaQVIKK1BFVFJPViBWTEFESU1JUgorUEVUUk9WIFZPSklTTEFWCitQRVRST1YgVk9KSVNMQVYKK1BFVFJPViBaTEFUT01JUgorUEVUUk9WxIxBTi3FoFBBTk9WScSGIEVVRkVNSUpBCitQRVRST1ZBxIxLSSBEVcWgQU4KK1BFVFJPVkHEjEtJIEpPVkFOCitQRVRST1ZBxIxLSSBMSklMSkFOQQorUEVUUk9WQcSMS0kgVkVSQQorUEVUUk9WScSGIMSMRURBCitQRVRST1ZJxIYgxaBURUZBTgorUEVUUk9WScSGIMW9QVJLTworUEVUUk9WScSGIMW9QVJLTworUEVUUk9WScSGIMW9QVJLTworUEVUUk9WScSGIMW9QVJLTworUEVUUk9WScSGIMW9RUxKS08KK1BFVFJPVknEhiDFvUVMSktPCitQRVRST1ZJxIYgxb1JS0EKK1BFVFJPVknEhiDFvUlWQU4KK1BFVFJPVknEhiDFvUlWS0EKK1BFVFJPVknEhiDFvUlWS0EKK1BFVFJPVknEhiDFvUlWS08KK1BFVFJPVknEhiDFvUlWS08KK1BFVFJPVknEhiDFvUlWT0pJTgorUEVUUk9WScSGIMW9SVZPUkFECitQRVRST1ZJxIYgxb1JVk9UQQorUEVUUk9WScSGIMSQT0tJQ0EKK1BFVFJPVknEhiDEkE9SxJBFCitQRVRST1ZJxIYgxJBPUsSQRQorUEVUUk9WScSGIMSQT1LEkEUKK1BFVFJPVknEhiDEkE9SxJBFCitQRVRST1ZJxIYgxJBPUsSQRQorUEVUUk9WScSGIMSQT1LEkEUKK1BFVFJPVknEhiDEkE9SxJBFCitQRVRST1ZJxIYgxJBVUkEKK1BFVFJPVknEhiBBTEVLU0FOREFSCitQRVRST1ZJxIYgQUxFS1NBTkRBUgorUEVUUk9WScSGIEFMRUtTQU5EQVIKK1BFVFJPVknEhiBBTEVLU0FOREFSCitQRVRST1ZJxIYgQUxFS1NBTkRSQQorUEVUUk9WScSGIEFMRUtTQU5EUkEKK1BFVFJPVknEhiBBTElOS0EKK1BFVFJPVknEhiBBTsSQRUxLQQorUEVUUk9WScSGIEFOQQorUEVUUk9WScSGIEFOR0VMSU5BCitQRVRST1ZJxIYgQU5JQ0EKK1BFVFJPVknEhiBBTktBCitQRVRST1ZJxIYgQU5LQQorUEVUUk9WScSGLUJBTEnFvSBMSklMSkFOQQorUEVUUk9WScSGIEJJTEpBTkEKK1BFVFJPVknEhiBCT8WgS08KK1BFVFJPVknEhiBCT8W9SURBUgorUEVUUk9WScSGIEJPR0RBTgorUEVUUk9WScSGIEJPR0RBTgorUEVUUk9WScSGIEJPSkFOQQorUEVUUk9WScSGIEJPU0lMSktBCitQRVRST1ZJxIYgQk9TSUxKS0EKK1BFVFJPVknEhiBCUkFOSU1JUgorUEVUUk9WScSGIEJSQU5JU0xBVkEKK1BFVFJPVknEhiBCUkFOSVNMQVZBCitQRVRST1ZJxIYgQlJBTklTTEFWCitQRVRST1ZJxIYgQlJBTklTTEFWCitQRVRST1ZJxIYgQlJBTklTTEFWCitQRVRST1ZJxIYgQlJBTklTTEFWCitQRVRST1ZJxIYgQlJBTklTTEFWCitQRVRST1ZJxIYgQlJBTklTTEFWCitQRVRST1ZJxIYgQlJBTklTTEFWCitQRVRST1ZJxIYgQlJBTklTTEFWCitQRVRST1ZJxIYgQlJBTktBCitQRVRST1ZJxIYgQlJBTktPCitQRVRST1ZJxIYgQlJBTktPCitQRVRST1ZJxIYgQlJBTktPCitQRVRST1ZJxIYgQlJBTktPCitQRVRST1ZJxIYgQ1ZJS08KK1BFVFJPVknEhiBEQU1JUgorUEVUUk9WScSGIERBTUlSCitQRVRST1ZJxIYgREFOSUNBCitQRVRST1ZJxIYgREFOSUNBCitQRVRST1ZJxIYgREFOSUNBCitQRVRST1ZJxIYgREFSQQorUEVUUk9WScSGIERBUklOS0EKK1BFVFJPVknEhiBEQVJJTktBCitQRVRST1ZJxIYgREVKQU4KK1BFVFJPVknEhiBERVNBTktBCitQRVRST1ZJxIYgREVTSU1JUgorUEVUUk9WScSGIERJTUlUUklKRQorUEVUUk9WScSGIERPQlJJQ0EKK1BFVFJPVknEhiBEUkFHQU4KK1BFVFJPVknEhiBEUkFHQU4KK1BFVFJPVknEhiBEUkFHQU4KK1BFVFJPVknEhiBEUkFHQU4KK1BFVFJPVknEhiBEUkFHQU4KK1BFVFJPVknEhiBEUkFHQU4KK1BFVFJPVknEhiBEUkFHQU4KK1BFVFJPVknEhiBEUkFHQU4KK1BFVFJPVknEhiBEUkFHScWgQSBESVBMIFBSQVZOSUsKK1BFVFJPVknEhiBEUkFHScWgQQorUEVUUk9WScSGIERSQUdJxIYKK1BFVFJPVknEhiBEUkFHSU5KQQorUEVUUk9WScSGIERSQUdPTEpVQiBEUgorUEVUUk9WScSGIERSQUdPTEpVQgorUEVUUk9WScSGIERSQUdPTEpVQgorUEVUUk9WScSGIERSQUdPTUlSCitQRVRST1ZJxIYgRFJBR09TTEFWCitQRVRST1ZJxIYgRFXFoEFOCitQRVRST1ZJxIYgRFXFoEFOCitQRVRST1ZJxIYgRFXFoEFOCitQRVRST1ZJxIYgRFXFoEFOCitQRVRST1ZJxIYgRFXFoEFOCitQRVRST1ZJxIYgRFXFoEFOCitQRVRST1ZJxIYgRFXFoEFOCitQRVRST1ZJxIYgRFXFoEFOCitQRVRST1ZJxIYgRFXFoEFOCitQRVRST1ZJxIYgRFXFoEFOCitQRVRST1ZJxIYgRFXFoElDQQorUEVUUk9WScSGIERVxaBLTworUEVUUk9WScSGIEVWQQorUEVUUk9WScSGIEVWR0VOSUpFCitQRVRST1ZJxIYgRVZJQ0EKK1BFVFJPVknEhiBGQUJJSkFOCitQRVRST1ZJxIYgR0FWUklMTworUEVUUk9WScSGIEdPUkRBTkEKK1BFVFJPVknEhiBHT1JEQU5BCitQRVRST1ZJxIYgR1JBRElNSVIKK1BFVFJPVknEhiBHUkFESU1JUgorUEVUUk9WScSGIEhSSVNUSU5BCitQRVRST1ZJxIYgSUxJSkEKK1BFVFJPVknEhiBJTElKQQorUEVUUk9WScSGIElMSUpBCitQRVRST1ZJxIYgSUxPTkEKK1BFVFJPVknEhiBJU0FLCitQRVRST1ZJxIYgSVZBTktBCitQRVRST1ZJxIYgSVZBTgorUEVUUk9WScSGIElWQU4KK1BFVFJPVknEhiBJVkFOCitQRVRST1ZJxIYgSVZBTgorUEVUUk9WScSGIElWQU4KK1BFVFJPVknEhiBKQU5LTworUEVUUk9WScSGIEpBU01JTktBCitQRVRST1ZJxIYgSkVMRU5BCitQRVRST1ZJxIYgSkVMSUNBCitQRVRST1ZJxIYgSkVMSVNBVkVUQQorUEVUUk9WScSGIEpFVlJFTQorUEVUUk9WScSGIEpPxb1FRgorUEVUUk9WScSGIEpPVkFOS0EKK1BFVFJPVknEhiBKT1ZBTktBCitQRVRST1ZJxIYgSk9WQU4KK1BFVFJPVknEhiBKT1ZBTgorUEVUUk9WScSGIEpPVkFOCitQRVRST1ZJxIYgSk9WQU4KK1BFVFJPVknEhiBKT1ZBTgorUEVUUk9WScSGIEpPVkFOCitQRVRST1ZJxIYgSk9WQU4KK1BFVFJPVknEhiBKT1ZBTgorUEVUUk9WScSGIEpPVkFOCitQRVRST1ZJxIYgSk9WQU4KK1BFVFJPVknEhiBLQVRJQ0EKK1BFVFJPVknEhiBLQVRJQ0EKK1BFVFJPVknEhiBLQVRJQ0EKK1BFVFJPVknEhiBLQVRJQ0EKK1BFVFJPVknEhiBLT1NUQSBEUgorUEVUUk9WScSGIEtSU1RPCitQRVRST1ZJxIYgTEFaQVIKK1BFVFJPVknEhiBMQVpBUgorUEVUUk9WScSGIExFTktBCitQRVRST1ZJxIYgTElEQQorUEVUUk9WScSGIExKSUxKQU5BCitQRVRST1ZJxIYgTEpJTEpBTkEKK1BFVFJPVknEhiBMSklMSkFOQQorUEVUUk9WScSGIExKSUxKQU5BCitQRVRST1ZJxIYgTEpVQknFoEEKK1BFVFJPVknEhiBMSlVCSUNBCitQRVRST1ZJxIYgTEpVQklDQQorUEVUUk9WScSGIExKVUJJQ0EKK1BFVFJPVknEhiBMSlVCSU5LQQorUEVUUk9WScSGIExKVUJJU0FWCitQRVRST1ZJxIYgTEpVQk9NSVIKK1BFVFJPVknEhiBMSlVCT01JUgorUEVUUk9WScSGIE1BUkEKK1BFVFJPVknEhiBNQVJJQ0EKK1BFVFJPVknEhiBNQVJJSkEKK1BFVFJPVknEhiBNQVJJSkEKK1BFVFJPVknEhiBNQVJJS0EKK1BFVFJPVknEhiBNQVJLTworUEVUUk9WScSGIE1BUktPCitQRVRST1ZJxIYgTUFSS08KK1BFVFJPVknEhiBNQVJLTworUEVUUk9WScSGIE1JQUpMTworUEVUUk9WScSGIE1JQ0EKK1BFVFJPVknEhiBNSUhBSUxPCitQRVRST1ZJxIYgTUlIQUlMTworUEVUUk9WScSGIE1JSEFKTE8gRFIgVkVURVJJTkUKK1BFVFJPVknEhiBNSUpPTUlSCitQRVRST1ZJxIYgTUlMQURJTgorUEVUUk9WScSGIE1JTEFOS0EKK1BFVFJPVknEhiBNSUxBTktPCitQRVRST1ZJxIYgTUlMQU5LTworUEVUUk9WScSGIE1JTEFOCitQRVRST1ZJxIYgTUlMQU4KK1BFVFJPVknEhiBNSUxBTgorUEVUUk9WScSGIE1JTEFOCitQRVRST1ZJxIYgTUlMQU4KK1BFVFJPVknEhiBNSUxBTgorUEVUUk9WScSGIE1JTEFOCitQRVRST1ZJxIYgTUlMRU5BCitQRVRST1ZJxIYgTUlMRU5LTworUEVUUk9WScSGIE1JTEVOS08KK1BFVFJPVknEhiBNSUxFTktPCitQRVRST1ZJxIYgTUlMRU4KK1BFVFJPVknEhiBNSUxFVkEKK1BFVFJPVknEhiBNSUxFCitQRVRST1ZJxIYgTUlMScSGCitQRVRST1ZJxIYgTUlMSUNBCitQRVRST1ZJxIYgTUlMSUNBCitQRVRST1ZJxIYgTUlMSUNBCitQRVRST1ZJxIYgTUlMSVZPSgorUEVUUk9WScSGIE1JTE/FoCBEUgorUEVUUk9WScSGIE1JTE/FoCBEUgorUEVUUk9WScSGIE1JTE/FoAorUEVUUk9WScSGIE1JTE9KRQorUEVUUk9WScSGIE1JTE9KS08KK1BFVFJPVknEhiBNSUxPTEpVQgorUEVUUk9WScSGIE1JTE9SQUQKK1BFVFJPVknEhiBNSUxPUkFECitQRVRST1ZJxIYgTUlMT1ZBTgorUEVUUk9WScSGIE1JTE9WQU4KK1BFVFJPVknEhiBNSUxPVkFOCitQRVRST1ZJxIYgTUlMVU4KK1BFVFJPVknEhiBNSUxVTgorUEVUUk9WScSGIE1JTFVUSU4KK1BFVFJPVknEhiBNSUxVVElOCitQRVRST1ZJxIYgTUlMVVRJTgorUEVUUk9WScSGIE1JT0RSQUcKK1BFVFJPVknEhiBNSU9EUkFHCitQRVRST1ZJxIYgTUlPRFJBRworUEVUUk9WScSGIE1JT0xKVUIKK1BFVFJPVknEhiBNSU9NSVIKK1BFVFJPVknEhiBNSVLEjEVBCitQRVRST1ZJxIYgTUlSSkFOQQorUEVUUk9WScSGIE1JUkpBTkEKK1BFVFJPVknEhiBNSVJLTworUEVUUk9WScSGIE1JUk9TTEFWIERSIExFS0FSCitQRVRST1ZJxIYgTUlST1NMQVZBCitQRVRST1ZJxIYgTUlST1NMQVZLQQorUEVUUk9WScSGIE1JUk9TTEFWCitQRVRST1ZJxIYgTUlST1NMQVYKK1BFVFJPVknEhiBNTEHEkEVOCitQRVRST1ZJxIYgTUxBREVOCitQRVRST1ZJxIYgTUxBREVOCitQRVRST1ZJxIYgTU9NxIxJTE8KK1BFVFJPVknEhiBNT03EjElMTworUEVUUk9WScSGIE1PTcSMSUxPCitQRVRST1ZJxIYgTU9NxIxJTE8KK1BFVFJPVknEhiBOQURBCitQRVRST1ZJxIYgTkFEQQorUEVUUk9WScSGIE5BREEKK1BFVFJPVknEhiBOQURJUkEKK1BFVFJPVknEhiBOQVRBTElKQQorUEVUUk9WScSGIE5FTkFECitQRVRST1ZJxIYgTkVWRU5BCitQRVRST1ZJxIYgTkVWRU5LQSBEUgorUEVUUk9WScSGIE5JS09MQQorUEVUUk9WScSGIE5JS09MQQorUEVUUk9WScSGIE5PVkFLCitQRVRST1ZJxIYgTk9WSUNBCitQRVRST1ZJxIYgT0JSQUQKK1BFVFJPVknEhiBPTEdBCitQRVRST1ZJxIYgT0xHSUNBCitQRVRST1ZJxIYgT0xJVkVSQQorUEVUUk9WScSGIFBBSkEKK1BFVFJPVknEhiBQQU5URUxJSkEKK1BFVFJPVknEhiBQRVJTSURBCitQRVRST1ZJxIYgUEVUQVIKK1BFVFJPVknEhiBQRVRBUgorUEVUUk9WScSGIFBFVEFSCitQRVRST1ZJxIYgUEVUQVIKK1BFVFJPVknEhiBQRVRBUgorUEVUUk9WScSGIFBFVEFSCitQRVRST1ZJxIYgUEVUQVIKK1BFVFJPVknEhiBQRVRBUgorUEVUUk9WScSGIFBFVEFSCitQRVRST1ZJxIYgUEVUQVIKK1BFVFJPVknEhiBQRVRBUgorUEVUUk9WScSGIFBFVFJJSkEKK1BFVFJPVknEhiBQTEFNRU5LQQorUEVUUk9WScSGLVBPUEFEScSGIE1JTEFOCitQRVRST1ZJxIYgUFJFRFJBRworUEVUUk9WScSGIFBSVk9TTEFWCitQRVRST1ZJxIYgUkFEQQorUEVUUk9WScSGIFJBREUKK1BFVFJPVknEhiBSQURJxaBBIERJUEwgSU5HCitQRVRST1ZJxIYgUkFEScWgQQorUEVUUk9WScSGIFJBREnFoEEKK1BFVFJPVknEhiBSQURJVk9KRQorUEVUUk9WScSGIFJBRElWT0oKK1BFVFJPVknEhiBSQURJVk9KCitQRVRST1ZJxIYgUkFETUlMQQorUEVUUk9WScSGIFJBRE1JTEEKK1BFVFJPVknEhiBSQURNSUxBCitQRVRST1ZJxIYgUkFETUlMQQorUEVUUk9WScSGIFJBRE1JTEEKK1BFVFJPVknEhiBSQURPSktBCitQRVRST1ZJxIYgUkFET01JUgorUEVUUk9WScSGIFJBRE9NSVIKK1BFVFJPVknEhiBSQURPTUlSCitQRVRST1ZJxIYgUkFET01JUgorUEVUUk9WScSGIFJBRE9TQVYKK1BFVFJPVknEhiBSQURPU0xBVgorUEVUUk9WScSGIFJBRE9TTEFWCitQRVRST1ZJxIYgUkFKS08KK1BFVFJPVknEhiBSQUpLTworUEVUUk9WScSGIFJBTktPCitQRVRST1ZJxIYgUkFOS08KK1BFVFJPVknEhiBSQVRLTworUEVUUk9WScSGIFJBVEtPCitQRVRST1ZJxIYgUkFUT01JUgorUEVUUk9WScSGIFJJU1RPCitQRVRST1ZJxIYgUk9ET0xKVUIKK1BFVFJPVknEhiBST1NBCitQRVRST1ZJxIYgUlXFvUEKK1BFVFJPVknEhiBSVcW9SUNBCitQRVRST1ZJxIYgUlVaTUFSSU5LQQorUEVUUk9WScSGIFNBVkFOCitQRVRST1ZJxIYgU0FWQQorUEVUUk9WScSGIFNBVkEKK1BFVFJPVknEhiBTQVZBCitQRVRST1ZJxIYgU0lNQQorUEVUUk9WScSGIFNJTUVVTgorUEVUUk9WScSGIFNJTU8KK1BFVFJPVknEhiBTSU5JxaBBCitQRVRST1ZJxIYgU0xBVklDQQorUEVUUk9WScSGIFNMQVZLQQorUEVUUk9WScSGIFNMQVZLQQorUEVUUk9WScSGIFNMQVZLTworUEVUUk9WScSGIFNMQVZLTworUEVUUk9WScSGIFNMT0JPREFOIERJUEwgSU5HCitQRVRST1ZJxIYgU0xPQk9EQU4gRElQTCBJTkcKK1BFVFJPVknEhiBTTE9CT0RBTiBEUgorUEVUUk9WScSGIFNMT0JPREFOS0EKK1BFVFJPVknEhiBTTE9CT0RBTgorUEVUUk9WScSGIFNMT0JPREFOCitQRVRST1ZJxIYgU0xPQk9EQU4KK1BFVFJPVknEhiBTTE9CT0RBTgorUEVUUk9WScSGIFNMT0JPREFOCitQRVRST1ZJxIYgU01JTEpBCitQRVRST1ZJxIYgU05Fxb1BTkEKK1BFVFJPVknEhiBTT0ZJSkEKK1BFVFJPVknEhiBTUEFTRQorUEVUUk9WScSGIFNQQVNPSkUKK1BFVFJPVknEhiBTUE9NRU5LQQorUEVUUk9WScSGIFNSxJBBTgorUEVUUk9WScSGIFNUQU1FTktPCitQRVRST1ZJxIYgU1RBTknFoEEKK1BFVFJPVknEhiBTVEFOSVNMQVYKK1BFVFJPVknEhiBTVEVWQU4gRElQTCBJTkcKK1BFVFJPVknEhiBTVEVWQU4KK1BFVFJPVknEhiBTVEVWQU4KK1BFVFJPVknEhiBTVEVWQU4KK1BFVFJPVknEhiBTVEVWQU4KK1BFVFJPVknEhiBTVEVWQU4KK1BFVFJPVknEhiBTVEVWQU4KK1BFVFJPVknEhiBTVEVWQU4KK1BFVFJPVknEhiBTVEVWQU4KK1BFVFJPVknEhiBTVEVWQU4KK1BFVFJPVknEhiBTVE9KQURJTgorUEVUUk9WScSGIFNUT0pBTgorUEVUUk9WScSGIFNUT0pBTgorUEVUUk9WScSGIFNUT0pLQQorUEVUUk9WScSGIFNVWkFOQSBEUgorUEVUUk9WScSGIFNVWkFOQQorUEVUUk9WScSGIFNWRVRJU0xBVgorUEVUUk9WScSGIFNWRVRLTworUEVUUk9WScSGIFNWRVRPWkFSCitQRVRST1ZJxIYgU1ZFVE9aQVIKK1BFVFJPVknEhiBTVkVUT1pBUgorUEVUUk9WScSGIFNWRVRPWkFSCitQRVRST1ZJxIYgU1ZFVE9aQVIKK1BFVFJPVknEhiBUQVRKQU5BCitQRVRST1ZJxIYgVElCT1IKK1BFVFJPVknEhiBUSU5LQQorUEVUUk9WScSGIFRPRE9SS0EKK1BFVFJPVknEhiBUT01JU0xBVgorUEVUUk9WScSGIFVST8WgCitQRVRST1ZJxIYgVVJPxaAKK1BFVFJPVknEhiBWQVNBCitQRVRST1ZJxIYgVkFTSUxJSkUKK1BFVFJPVknEhiBWRUxJQk9SCitQRVRST1ZJxIYgVkVMSUJPUgorUEVUUk9WScSGIFZFTElCT1IKK1BFVFJPVknEhiBWRUxJTUlSCitQRVRST1ZJxIYgVkVSQQorUEVUUk9WScSGIFZFUkEKK1BFVFJPVknEhiBWRVJBCitQRVRST1ZJxIYgVkVSQQorUEVUUk9WScSGIFZFUkEKK1BFVFJPVknEhiBWRVJJQ0EKK1BFVFJPVknEhiBWRVNFTEEKK1BFVFJPVknEhiBWRVNFTElOCitQRVRST1ZJxIYgVkVTTkEKK1BFVFJPVknEhiBWScWgTkpBCitQRVRST1ZJxIYgVklEQQorUEVUUk9WScSGIFZMQURBCitQRVRST1ZJxIYgVkxBREUKK1BFVFJPVknEhiBWTEFESU1JUgorUEVUUk9WScSGIFZMQURJTUlSCitQRVRST1ZJxIYgVkxBRElTTEFWQQorUEVUUk9WScSGIFZMQVNUSU1JUgorUEVUUk9WScSGIFZPSklOCitQRVRST1ZJxIYgVk9KSU4KK1BFVFJPVknEhiBWT0pJU0xBVgorUEVUUk9WScSGIFZPSklTTEFWCitQRVRST1ZJxIYgVk9KSVNMQVYKK1BFVFJPVknEhiBWT0pLQQorUEVUUk9WScSGIFZVS0HFoElOCitQRVRST1ZJxIYgVlVLSUNBCitQRVRST1ZJxIYgWkFHT1JLQQorUEVUUk9WScSGIFpBR09SS0EKK1BFVFJPVknEhiBaQUdPUktBCitQRVRST1ZJxIYgWkRFTktPCitQRVRST1ZJxIYgWkRFTktPCitQRVRST1ZJxIYgWkxBVEFOCitQRVRST1ZJxIYgWk9SQU4KK1BFVFJPVknEhiBaT1JBTgorUEVUUk9WScSGIFpPUkFOCitQRVRST1ZJxIYgWk9SQU4KK1BFVFJPVknEhiBaT1JBTgorUEVUUk9WScSGIFpPUkFOCitQRVRST1ZJxIYgWk9SQU4KK1BFVFJPVknEhiBaT1JBCitQRVRST1ZJxIYgWk9SQQorUEVUUk9WScSGIFpPUklDQQorUEVUUk9WScSGIFpPUklDQQorUEVUUk9WScSGIFpPUklDQQorUEVUUk9WScSGIFpPUktBCitQRVRST1ZTS0kgQk9SSVMKK1BFVFJPVlNLSSBESU1JVFJJSkUKK1BFVFJPVlNLSSBFVkEKK1BFVFJPVlNLSSBGSURBTsSMTworUEVUUk9WU0tJIEhFTEVOQQorUEVUUk9WU0tJIE1JTEFESU4KK1BFVFJPVlNLSSBNSUxBTgorUEVUUk9WU0tJIE1JTE9EQVJLQQorUEVUUk9WU0tJIFBFVEFSCitQRVRST1ZTS0kgU0xBVktBCitQRVRSVcWgRVZJxIYgTU9NxIxJTE8KK1BFVFJVxaBFVlNLSSBNT03EjElMTworUEVUUlXFoEVWU0tJIE5BREEKK1BFVFJVxaBJxIYtUEFSSVBPVknEhiBPTEdBCitQRVRSVcWgScSGIFZBU0lMSgorUEVUUlVMSkVTS09WIERSQUdBTgorUEVUUlVMSkVTS09WIERSQUdBTgorUEVVTEnEhiBMSlVCT01JUgorUEVVTEnEhiBNSVJKQU5BCitQRVVMSkEgVk9KSU4KK1BFVVJBxIxBIERSQUdBTgorUEVVUkHEjEEgTUlMRQorUEVWQcSMIFNUSkVQQU4KK1BFVknEhiBFUsW9RUJFVAorUEVaREVWxaBFSyBKQU5FWgorUEVaREVWxaBFSyBLQVJMCitQRVpFUk9WScSGIFZFTElNSVIKK1BGQUpGRVIgQUxFS1NBTkRBUgorUEZBSkZFUiBBVElMQQorUEZBSkZFUiBQRVRBUgorUEZBSkZFUlQgQUxFS1NBTkRBUgorUEZBVSBKT1ZBTktBCitQRlVOxaBUQUpOIEpPU0lQCitQScWgS09SScSGIElWQU4KK1BJxaBQRUsgTUFSVEEKK1BJxaBUQUxPVknEhiBNSUhBSkxPCitQScWgVEFMT1ZJxIYgTUlSS08KK1BJxIZVUknEhiDFvUlWS08KK1BJxIZVUknEhiBNSUtPCitQScW9VVJJQ0EgTUFUTworUElHTCBBTkEKK1BJR0wgSU1SRQorUElIQUpMScSGIEJMQcW9CitQSUhMRVIgSk9TSVAKK1BJSExFUiBTVEFOS08gRFIKK1BJSExFUiBUT0RPUgorUElKQU5JxIYgREFOSUpFTAorUElKRVRMT1ZJxIYgQlJBTk8KK1BJSkVUTE9WScSGIEpPVkFOCitQSUpVS09WScSGIEVMWkEKK1BJSlVLT1ZJxIYgSUxJSkEKK1BJS1NJQURFUyBPTkRSRUoKK1BJS1NJSkFERVMgQU5BCitQSUtTSUpBREVTIFBBVkVMCitQSUtTSUpBREVTIFBBVkxFCitQSUtVTEEgxJBPUsSQRQorUElLVUxBIEJSQU5LTworUElMIEFORFJJSkEKK1BJTCBNSUhBSkxPCitQSUwgU1RFVkFOCitQSUwgVEVSRVpBCitQSUxBUiBNQVJJQ0EKK1BJTEMgTkFORE9SCitQSUxDIFJFxb1FCitQSUxDIFpPTFRBTgorUElMRVIgS0FSTE8KK1BJTEnFoCBBTkEKK1BJTEnFoCBBTkRSQcWgCitQSUxJxaAgSk9TSVAKK1BJTEnFoEVSIMSQT1LEkEUKK1BJTEnEhiDFvUFSS08KK1BJTEnEhiBBTlRPTgorUElMScSGIEJPUklWT0oKK1BJTEnEhiBCT1JPCitQSUxJxIYgR0FWUkEKK1BJTEnEhiBKT1ZBTgorUElMScSGLUtBTEVOScSGIE1JTElOS0EKK1BJTEnEhiBMSklMSkEKK1BJTEnEhiBNSUxPxaAKK1BJTEnEhiBNSUxVVElOCitQSUxJxIYgUkFOS08KK1BJTEnEhiBTTEFWS08KK1BJTEnEhiBTUkJPTEpVQgorUElMScSGIFNUQU5LTworUElMScSGIFNURVZBTgorUElMScSGIFZPSklTTEFWCitQSUxJUE9WIEVWQQorUElMSVBPVknEhiDEjEVEQQorUElMSVBPVknEhiDFvUlWS08KK1BJTElQT1ZJxIYgxJBPUsSQRQorUElMSVBPVknEhiDEkFVSQQorUElMSVBPVknEhiBBTsSQQQorUElMSVBPVknEhiBCT8WgS08KK1BJTElQT1ZJxIYgQk/FvUlEQVIKK1BJTElQT1ZJxIYgQlJBTktPCitQSUxJUE9WScSGIENWSUpFVEEKK1BJTElQT1ZJxIYgQ1ZJSkVUQQorUElMSVBPVknEhiBEQU5FCitQSUxJUE9WScSGIERBTklDQQorUElMSVBPVknEhiBEQU5JQ0EKK1BJTElQT1ZJxIYgRFJBR0FOCitQSUxJUE9WScSGIERSQUdPCitQSUxJUE9WScSGIEdPUkFOCitQSUxJUE9WScSGIEpPTEFOCitQSUxJUE9WScSGIEpPVkFOCitQSUxJUE9WScSGIExBWkFSCitQSUxJUE9WScSGIExKSUxKQU5BCitQSUxJUE9WScSGIExKVUJJQ0EKK1BJTElQT1ZJxIYgTEpVQk8KK1BJTElQT1ZJxIYgTUFSSUpBCitQSUxJUE9WScSGIE1JSEFKTE8KK1BJTElQT1ZJxIYgTUlIQUpMTworUElMSVBPVknEhiBNSUxBTgorUElMSVBPVknEhiBNSUxBTgorUElMSVBPVknEhiBNSUxBTgorUElMSVBPVknEhiBNSUxFTktPCitQSUxJUE9WScSGIE1JTEVWQQorUElMSVBPVknEhiBNSUxPxaAKK1BJTElQT1ZJxIYgTUlSS08KK1BJTElQT1ZJxIYgTklLT0xBCitQSUxJUE9WScSGIFBFVEFSIERJUEwgSU5HCitQSUxJUE9WScSGIFJBREUKK1BJTElQT1ZJxIYgUkFERQorUElMSVBPVknEhiBSQURJVk9KRQorUElMSVBPVknEhiBSQURPTUlSCitQSUxJUE9WScSGIFNMQVZLTworUElMSVBPVknEhiBTUE9NRU5LTworUElMSVBPVknEhiBTVEFOQQorUElMSVBPVknEhiBTVEVWQU4KK1BJTElQT1ZJxIYgU1RFVkFOCitQSUxJUE9WScSGIFNURVZPCitQSUxJUE9WScSGIFZPSklOCitQSUxJUE9WScSGIFpPUklDQQorUElMSVBPVknEhiBaVk9OS08KK1BJTEpJxIYgTUFSSUpBTgorUElMS08gSVJFTkEKK1BJTEtPIFBBVkxFCitQSUxPVknEhiBERVNJTUlSCitQSUxPVknEhiBEVcWgQU5LQQorUElMT1ZJxIYgTUlMQU4KK1BJTsSGSVIgSkFOCitQSU7EhklSIFZMQURJTUlSCitQSU7EhklSIFpERU5LTworUElOxIZKRVIgT05EUkVKCitQSU7EhkpFUiBTQU1VRUwKK1BJTsSGSkVSIFNBTVVJTE8KK1BJTkpVxaBJxIYgSUxJSkEKK1BJTkpVSCBNSVJKQU5BCitQSU5KVUggUEVUQVIKK1BJTlRBxIwgRlJBTkpPCitQSU5UQcSMIExBRElTTEFWCitQSU5UQcSMIE5JS09MQSBESVBMIE9FQworUElOVEHEjCBWRVNOQQorUElOVEHEhiDEkE9SxJBFCitQSU5UQcSGIE1BUklKQQorUElOVEFSScSGIEpBU05BCitQSU5UQVJJxIYgSk9WQU4KK1BJTlRFUiBBRFJJRU5FCitQSU5URVIgQUxFS1NBTkRBUgorUElOVEVSIEFORFJBxaAKK1BJTlRFUiBCRUxBCitQSU5URVIgQkVMQQorUElOVEVSIEZSQU5KQQorUElOVEVSIElNUkUKK1BJTlRFUiBKQU5PxaAKK1BJTlRFUiBLQVJPTEoKK1BJTlRFUiBLQVRBTElOCitQSU5URVIgTEVOS0EKK1BJTlRFUiBMSVZJSkEKK1BJTlRFUiBNQVJJSkEKK1BJTlRFUiBNSUhBTEoKK1BJTlRFUiBNSUhBTEoKK1BJTlRFUiBTVEVWQU4KK1BJTlRFUiBUSUJPUgorUElOVEVSIFZFUkEKK1BJTlRFUiBWSkVLT1NMQVYKK1BJUEVSIFZFTElCT1IKK1BJUEVSQUMgTkFEQQorUElQRVJLT1YgQU5LQQorUElQRVJTS0kgxb1JVkEKK1BJUEVSU0tJIEFOQQorUElQRVJTS0kgRFJBR09NSVIKK1BJUEVSU0tJIEtPU1RBCitQSVJDIERBTklDQQorUElSSSBKQU5PxaAKK1BJUkkgSk/FvUVGCitQSVJJIEpPU0lQCitQSVJJIEpPU0lQCitQSVJJxIYgSUJSQUhJTQorUElSScSGIE9TTUFOCitQSVJJxIYgWk9SQQorUElSSVZBVFJJxIYgRFXFoEFOS0EKK1BJUk1BSkVSIEpPU0lQCitQSVJPxaBLSSBEUkFHSUNBCitQSVJPxaBLSSBKVUxJSkFOQQorUElST8WgS0kgTUlPRFJBRworUElST8WgS0kgVkFTQQorUElSVEnEhiBLU0VOSUpBCitQSVJUScSGIFJBRElOS0EKK1BJUlRJxIYgU0FWRVRBCitQSVMgRURJVEEKK1BJU0HEjEnEhiBWTEFESU1JUgorUElTQVIgxaBBTkRPUgorUElTQVIgRFXFoEFOCitQSVNBUiBKT8W9RUYKK1BJU0FSIExBU0xPCitQSVNBUkVWIMSQT1LEkEUKK1BJU0FSRVYgRU1JTElKQQorUElTQVJFViBLQVRJQ0EKK1BJU0FSRVYgTUlMQU4KK1BJU0FSRVZJxIYgxJBPUsSQRQorUElTQVJFVknEhiBNSVJLTworUElTQVJFVknEhiBNSVJLTworUElTQVJFVknEhiBNSVRBUgorUElTQVJFVknEhiBTUEFTRU5JSkEKK1BJU0FSScSGIMSQVVJBCitQSVNBUknEhiDEkFVSTworUElTQVJJxIYgQkxBxb1PCitQSVNBUknEhiBCUkFOS08KK1BJU0FSScSGIERSQUdBTgorUElTQVJJxIYgRFJBR08KK1BJU0FSScSGIE5FxJBPCitQSVNBUknEhiBPU1RPSkEKK1BJU0FSScSGIE9TVE9KQQorUElTQVJJxIYgUEFWTEUKK1BJU0FSScSGIFZMQURPCitQSVNBUk9WIMSQT1LEkEUKK1BJU0FST1YgS0FUSUNBCitQSVNBUk9WIFZBU0EKK1BJVEEgTUFITVVUCitQSVRBIE1BSE1VVAorUElUT01BxIxJxIYgU1RPSkFOS0EKK1BJVE9NQcSMScSGIFZMQURBCitQSVRVSyBOQURBCitQSVVLT1ZJxIYgSVZBTgorUElVS09WScSGIE1BR0RBCitQSVZBxIwgQk9TSUxKS0EKK1BJVkFDIERSQUdPTEpVQgorUElWQUMgTUlMT1JBRAorUElWQUMgTUlMT1ZBTgorUElWQUMgWlZPTklNSVIKK1BJVkFSU0tJIEJSQU5LQQorUElWQVJTS0kgRFXFoEFOCitQSVZBUlNLSSBNSU9EUkFHCitQSVZBUlNLSSBSQVRPTUlSCitQSVZBUlNLSSBTTEFWSUNBCitQSVZBUlNLSSBTVEVWQU4KK1BJVkFSU0tJIFZFU0VMSU4gTVIgUEgKK1BJVk5JxIxLSSBCT0dEQU5LQQorUElWTknEjEtJIEJSQU5JU0xBVgorUElWTknEjEtJIEJSQU5JU0xBVgorUElWTknEjEtJIEJSQU5LQQorUElWTknEjEtJIERSQUdBTgorUElWTknEjEtJIEdPUkRBTkEKK1BJVk5JxIxLSSBJVkFOS0EKK1BJVk5JxIxLSSBLQVRBUklOQQorUElWTknEjEtJIE1BUklKQQorUElWTknEjEtJIE1JTEFOCitQSVZOScSMS0kgTUlMRVRBCitQSVZOScSMS0kgUkFERU5LTworUElWTknEjEtJIFJBSktPCitQSVZOScSMS0kgU1RPSktBCitQSVZOScSMS0kgU1ZFVE9aQVIKK1BKQU5JxIYgTUlIQUpMTworUEpBTknEhiBSSVNUQQorUEpFxaDEjEnEhiBCT0dPTEpVQgorUEpFxaDEjEnEhiBMRVBPU0FWQQorUEpFxaDEjEnEhiBNQVJJSkEKK1BKRcWgxIxJxIYgTUlMRVZBCitQSkXFoMSMScSGIE5PVkFLCitQSkXFoElWQUMgWkRSQVZLTworUEpFVExPVknEhiBEUkFHSUNBCitQSkVWQcSMIE5JS09MQQorUEpFVkFDIEJSQU5LTworUEpFVkFDIERVxaBBTgorUEpFVkFDIFNURVZBTgorUEpFVkFDIFZMQURJTUlSCitQSkVWQUMgWk9SQQorUEpFVkFMSUNBIFVST8WgCitQSkVWScSGIMSQVVJBxJAKK1BKRVZJxIYgQk/FvU8KK1BKRVZJxIYgTUlSS08gRFIKK1BKRVZJxIYgTUlST1NMQVZBIERSCitQTEHEjEtJxIYgxb1BUktPCitQTEHEjEtJxIYgQk/FvUlEQVIKK1BMQcSMS0nEhiBCUkFOS08KK1BMQcSMS0nEhiBNRUxBTklKQQorUExBxIxLScSGIFNMQVZLTworUExBxIxLScSGIFRPTUlTTEFWCitQTEHEjEtPIFNUSkVQQU4KK1BMQcSMS09WIMW9SVZLQQorUExBxIxLT1YgxJBPUsSQRQorUExBxIxLT1YgQk9SSVZPSgorUExBxIxLT1YgQlJBTklTTEFWCitQTEHEjEtPViBCUkFOSVNMQVYKK1BMQcSMS09WIEJSQU5JU0xBVgorUExBxIxLT1YgQlJBTktBCitQTEHEjEtPViBEVcWgQU4KK1BMQcSMS09WIElMT05LQQorUExBxIxLT1YgTUlMQU4KK1BMQcSMS09WIE1JUk9MSlVCCitQTEHEjEtPViBQQUpBCitQTEHEjEtPViBQRVJBCitQTEHEjEtPViBQRVRBUgorUExBxIxLT1YgUlVET0xGCitQTEHEjEtPViBTQVZBCitQTEHEjEtPViBTQVZFVEEKK1BMQcSMS09WIFNJTUEKK1BMQcSMS09WIFNUQU5JTUlSCitQTEHEjEtPViBTVEVWQU4KK1BMQcSMS09WIFNURVZBCitQTEHEjEtPViBTVE9KQU4KK1BMQcSMS09WIFNWRVRPWkFSCitQTEHEjEtPViBWVUtPU0FWQQorUExBxIxLT1ZJxIYgTUlMQU4KK1BMQcSMS09WScSGIFBBSkEKK1BMQUMgRURPCitQTEFLQUxPVknEhiBNSUxBRElOCitQTEFOxIxBSyBBTUFMSUpBCitQTEFOxIxBSyBFVUZFTUlKQQorUExBTsSMQUsgRVVHRU4KK1BMQU7EjEFLIEpPVkFOCitQTEFOxIxBSyBNSUhBSkxPCitQTEFOxIxBSyBNSVJPU0xBViBEUiBQUk9GCitQTEFOScSGIFJBRE9WQU4KK1BMQU5JxIYgWkRFTktBCitQTEFOSU7EjEnEhiBNSU5BCitQTEFOSU7EjEnEhiBWRVNFTElOCitQTEFOSkFOSU4gUkFET01JUgorUExBTk9KRVZJxIYgTUlMVVRJTiBEUgorUExBTk9WScSGIFZFU05BCitQTEFUScWgQSBNSUxBTgorUExBVEnFoEEgTUlPRFJBRworUExBVsWgScSGIEFOxJBBCitQTEFWxaBJxIYgQU5JQ0EKK1BMQVbFoEnEhiBBTklDQQorUExBVsWgScSGIEFOS0EKK1BMQVbFoEnEhiBCT8WgS08KK1BMQVbFoEnEhiBCT8W9QQorUExBVsWgScSGIEJPxb1BCitQTEFWxaBJxIYgQk/FvUlEQVIKK1BMQVbFoEnEhiBCT0dPTUlSCitQTEFWxaBJxIYgQk9SSVNMQVYKK1BMQVbFoEnEhiBCUkFOSVNMQVYKK1BMQVbFoEnEhiBCUkFOS08KK1BMQVbFoEnEhiBCUkFOS08KK1BMQVbFoEnEhiBCUkFOS08KK1BMQVbFoEnEhiBDVklKTworUExBVsWgScSGIERSQUdBTgorUExBVsWgScSGIERVxaBBTgorUExBVsWgScSGIERVxaBJQ0EKK1BMQVbFoEnEhiBHT1JEQU5BCitQTEFWxaBJxIYgSkVMSVNBVkVUQQorUExBVsWgScSGIEpPVkFOS0EKK1BMQVbFoEnEhiBKT1ZBTgorUExBVsWgScSGIEpPVkFOCitQTEFWxaBJxIYgSk9WSUNBCitQTEFWxaBJxIYgS0FUQVJJTkEKK1BMQVbFoEnEhiBLUlNUQQorUExBVsWgScSGIExBWkFSCitQTEFWxaBJxIYgTEpJTEpBTkEKK1BMQVbFoEnEhiBMSlVCSUNBCitQTEFWxaBJxIYgTEpVQklDQQorUExBVsWgScSGIExKVUJJTktBCitQTEFWxaBJxIYgTEpVQk9NSVIKK1BMQVbFoEnEhiBMVUtBCitQTEFWxaBJxIYgTUFSSUpBCitQTEFWxaBJxIYgTUFSSU5LTworUExBVsWgScSGIE1BUklOS08KK1BMQVbFoEnEhiBNSUxFTktPCitQTEFWxaBJxIYgTUlMRU5LTworUExBVsWgScSGIE1JTElDQQorUExBVsWgScSGIE1JTElDQQorUExBVsWgScSGIE1JTElOS0EKK1BMQVbFoEnEhiBNSUxPxaAKK1BMQVbFoEnEhiBNSUxPTUlSCitQTEFWxaBJxIYgTUlPRFJBRworUExBVsWgScSGIE1JUktPCitQTEFWxaBJxIYgTUlSS08KK1BMQVbFoEnEhiBNSVJPU0xBViBEUiBMRUtBUgorUExBVsWgScSGIE1JVEFSCitQTEFWxaBJxIYgTUlUQQorUExBVsWgScSGIE1PTcSMSUxPCitQTEFWxaBJxIYgTU9NSVIKK1BMQVbFoEnEhiBORVJBCitQTEFWxaBJxIYgTklLT0xBCitQTEFWxaBJxIYgTk9WS0EKK1BMQVbFoEnEhiBQQVZBCitQTEFWxaBJxIYgUEVUQVIKK1BMQVbFoEnEhiBQRVRBUgorUExBVsWgScSGIFJBREUKK1BMQVbFoEnEhiBSQURNSUxBCitQTEFWxaBJxIYgUkFET1ZBTgorUExBVsWgScSGIFJBRE9WQU4KK1BMQVbFoEnEhiBSQU5LTworUExBVsWgScSGIFJBTktPCitQTEFWxaBJxIYgU0lNQQorUExBVsWgScSGIFNMT0JPREFOCitQTEFWxaBJxIYgU0xPQk9EQU4KK1BMQVbFoEnEhiBTVEVWQU4KK1BMQVbFoEnEhiBTVEVWQU4KK1BMQVbFoEnEhiBTVEVWTworUExBVsWgScSGIFRPREUKK1BMQVbFoEnEhiBUT0RPUgorUExBVsWgScSGIFZJTktPCitQTEFWxaBJxIYgVklUT01JUgorUExBVsWgScSGIFZMQURBCitQTEFWxaBJxIYgVk9KSU4KK1BMQVbFoEnEhiBWT0pJTgorUExBVsWgScSGIFZVS09TQVZBCitQTEFWxaBJxIYgWk9SS0EKK1BMQVbFoElOIERVxaBBTgorUExBVsWgSU4gTUlMSUNBCitQTEFWxaBJTiBTVEVWQU4KK1BMQVZBQyDFvUVMSktPCitQTEFWQUMgRFXFoEFOCitQTEFWQUMgSkFOS08KK1BMQVZDIEFITUVUCitQTEFWQyBCQUpSVcWgCitQTEFWTEpBTklOIMW9SVZLTworUExBWkHEjEnEhiBWSURPSkUKK1BMQVpJTkEgUFVOScWgQQorUExFxaBBIEpPU0lQCitQTEXFoEUgR09SQU4KK1BMRcWgS08gQU5JQ0EKK1BMRcWgVEnEhiBESU1JVFJJSkUKK1BMRcWgVEnEhiBNSVJKQU5BCitQTEXEhkHFoCBEQU5JTE8KK1BMRcSGQcWgIElMSUpBCitQTEXEhkHFoCBLQVRJQ0EKK1BMRcSGQcWgIE1JTEVWQQorUExFxIZBxaAgUkFERQorUExFxIZBxaAgUk9aQUxJSkEKK1BMRU1JxIYgxJBVUk8KK1BMRU1JxIYgREFORQorUExFTUnEhiBNSUxBTgorUExFU0tPTkpBIE1JTE9KSUNBCitQTEVTS09OSknEhiBBTUFMSUpBCitQTEVTS09WScSGIEFOVFVOCitQTEVTS09WScSGIE5JS09MQQorUExFU0tPVknEhiBaRFJBVktPCitQTEVURUwgS1NFTklKQQorUExFVEVMIE1JTEFOCitQTEVUSUtBUEnEhiBEUkFHQU4KK1BMRVRJS09TScSGIExKRVJLQQorUExFVElLT1NJxIYgUEVUQVIKK1BMRVRMIE9USUxJSkEKK1BMSVNOScSGIE1JTElDQQorUExJU05JxIYgTUlMT1JBRAorUExJVkFSIEpPVkFOCitQTEpVQ08gQlJBTktPCitQTE9IIERSQUdPCitQTE9IIEZSQU5KQQorUExPSiBNQVJJSkEKK1BMT1MgTUlPRFJBRworUExVxb1BUkVWIExBWkFSCitQTFXFvUFSRVYgT0xJVkVSQSBEUgorUExVxb1BUk9WIE1JTEVOS08KK1BMVUtBVkVDIElWQU4KK1BMWkFLIERSQUdPU0xBVgorUE/EjEFOScSGIFRSSVBPCitQT8SMRUsgQlJBTklTTEFWCitQT8SMRUsgQlJBTktPCitQT8SMRUsgTEpJTEpBTkEKK1BPxIxFSyBNSUxPVkFOCitQT8SMRUsgVkxBREEKK1BPxIxFSyBWTEFESVNMQVYKK1BPxIxFSyBWTEFESVNMQVYKK1BPxIxFVEFLIE1JTEVOS08KK1BPxIxFVEFLIE1JTElDQQorUE/EjFXEjEEgRE1JVEFSCitQT8SMVcSMQSBEVcWgQU4KK1BPxIxVxIxBIEpPVkFOS0EKK1BPxIxVxIxBIFBFVEFSCitQT8SMVcSMQSBSQURNSUxBCitQT8WgxIxJxIYgRVJJS0EKK1BPxaBBIMSQVVJBCitQT8WgQSBBTkRSQcWgCitQT8WgQSBEUkFHSUNBCitQT8WgQSBJxaBUVkFOCitQT8WgQSBLQVJMTworUE/FoEEgUEVUQVIKK1BPxaBBIFJPWkFMSUpBCitQT8WgQSBTTkXFvUFOQQorUE/FoEFSQUMgRFXFoEtPCitQT8WgQVJBQyBaT1JBTgorUE/FoFRBIE5JS09MQQorUE/FoFRJxIYgxJBPUsSQRSBEUgorUE/FoFRJxIYgRFJBR0FOCitQT8WgVEnEhiBNSUxBTgorUE/FoFRJxIYgU0xPQk9EQU5LQQorUE/FoFRJxIYgU09GSUpBCitQT8WgVEnEhiBTUsSQQU4gRElQTCBJTkcKK1BPxaBUT8WgIFZFUkEKK1BPxb1BUiBNSUxJQ0EKK1BPxb1BUkVWIMSQT1LEkEUKK1BPxb1BUkVWIMSQT1LEkEUKK1BPxb1BUkVWIEFMRUtTQU5EQVIKK1BPxb1BUkVWIEFOxJBFTEtBCitQT8W9QVJFViBET1JBCitQT8W9QVJFViBKRUxFTkEKK1BPxb1BUkVWIFJBREUKK1BPxb1BUkVWIFJBVE9NSVJLQQorUE/FvUFSRVYgUkFUT01JUgorUE/FvUFSRVYgU1RFVkFOCitQT8W9QVJFViBWRVNFTElOCitQT8W9RUdBIE1JTEUKK1BPxb1FR0EgU09GSUpBCitQT8W9RUdBIFNURVZBTgorUE/FvUdBSiBBTlRVTgorUE/FvUdBSiBUT01JU0xBVgorUE9CT1IgSkVMRU5BCitQT0JPUiBTUkVUTworUE9CUkFOIFNURVZBTgorUE9CUkFOIFZMQURJTUlSCitQT0JSScSGIElTQUsKK1BPQlXEhkFOT1ZJxIYtS1VMSkFOS0nEhiDFoFVIUkVUQQorUE9CVcSQQU5PVknEhiBJTElOS0EKK1BPQlXEkEFOT1ZJxIYgTVVIQVJFTQorUE9CVcSQQU5PVknEhiBTVkVUTEFOQQorUE9DQUpUIFZJS1RPUgorUE9DTUFOIEFOVFVOCitQT0NNQU4gVklMSU0KK1BPQ1JOScSGIE1JTEUKK1BPQ1JOScSGIE5JS09MQQorUE9ER09STklLIE1JTEFOCitQT0RHT1JOSUsgUkFKTkEKK1BPRExJUEVDIE1BUklKQQorUE9ETUFKT1JTS0kgTUFSQQorUE9ET0JOSUsgSkFTTkEKK1BPRE9MQSBKVVNUSU5BCitQT0RSQcWgxIxBTklOIEpPVkFOCitQT0RSQcWgxIxBTklOIE5BREEKK1BPRFJBxaDEjEFOSU4gVk9KQQorUE9EUkFWQUMgQlJBTktPCitQT0dBTsSMRVYgR09SQU4KK1BPR0FOxIxFViBHT1JBTgorUE9HQU5KIEpVTElKQU5BCitQT0dVQkVST1ZJxIYgSk9WQU4KK1BPSkJJxIYgRFXFoEFOCitQT0pFIEpPU0lQCitQT0pJxIYgQlJBTktPCitQT0tBIEpPU0lQCitQT0tBUyBKT1NJUAorUE9LUkFKQUMgQU5HRUxJTkEKK1BPS1JBSkFDIEpPVkFOCitQT0tSQUpBQyBKT1ZBTgorUE9LUkFKQUMgTUlMQU4KK1BPS1JBSkFDIE1JTE9SQUQKK1BPS1JBSkFDIFJBREUKK1BPS1JBSkFDIFNMQVZLTworUE9LUknEhiBWT0pJU0xBVgorUE9LVcWgRVZTS0kgRE9CUklOS0EKK1BPS1VQRUMgTUlMQU4KK1BPTEFLIEpFTEVOQQorUE9MQUsgSk/FvUVGCitQT0xBSyBTVEVWQU4KK1BPTEFLT1ZJxIYgRVLFvUVCRVQKK1BPTEFLT1ZJxIYgSkFOT8WgCitQT0xBTkVDIEZSQU5KTworUE9MRSBOSUtPTEEKK1BPTEUgTklLT0xBCitQT0xFRElDQSBEVcWgQU5LQQorUE9MRU5ERVIgU09GSUpBCitQT0xFUk1BTiBCRUxBCitQT0xFUk1BTiBNSUxJQ0EKK1BPTEVUQU5PVknEhiBNQVJJTktPCitQT0xFVE8gRE9NRU5JSworUE9MRVRPIElWQU4KK1BPTEdBUiBJxaBUVkFOCitQT0xJxIYgxJBVUkEKK1BPTEnEhiBCT8WgS08KK1BPTEnEhiBEQU5JQ0EKK1BPTEnEhiBEUkFHQU4KK1BPTEnEhiBMSlVCSUNBCitQT0xJxIYgTUFSSUpBTgorUE9MScSGIFNMT0JPREFOCitQT0xJTUFDIEFOxJBFTElKQQorUE9MSU4gxJBVUkEKK1BPTElOIExBU0xPCitQT0xJTlNLSSBBUkFOS0EKK1BPTEpBxIxLSSBBTEVLU0FOREFSCitQT0xKQcSMS0kgTUlMSUNBCitQT0xKQcSMS0kgTUlMSUNBCitQT0xKQcSMS0kgU1ZFVE9aQVIKK1BPTEpBSyDEkEVSxJAKK1BPTEpBSyBFVkEKK1BPTEpBSyBGUkFOSk8KK1BPTEpBSyBMQVNMTworUE9MSkFLIE1JxaBBCitQT0xKQUsgTUlIQUxKCitQT0xKQUsgTUlMS0EKK1BPTEpBSyBNSU9EUkFHCitQT0xKQUsgTUlPRFJBRworUE9MSkFLIE5JS09MQQorUE9MSkFLIE5JS09MQQorUE9MSkFLIFBFVEFSCitQT0xKQUsgUkFOS08KK1BPTEpBS09WScSGIFNUSkVQQU4KK1BPTEpBTlNLSSBKT1ZJQ0EKK1BPTEpBTlNLSSBMSlVCSUNBCitQT0xKQU5TS0kgU1RPSkFOCitQT0xKScSMQUsgQU5URQorUE9MSknEjEFLIExKVUJBTgorUE9MSknEhiBSRUZJSworUE9MSk9WS0EgSkFOCitQT0xKVkHFoCBKT8W9RUYKK1BPTE9KQUMgTFVLQQorUE9MT1ZJxIYgS09TVEEKK1BPTE9WScSGIFNURVZPCitQT0xPVklOQSDEkE9SxJBFCitQT0xPVklOQSBEQU5JSkVMCitQT0xPVklOQSBJU0EKK1BPTE9WSU5BIE1JTEFOCitQT0xPVklOQSBNSUxJQ0EKK1BPTE9WSU5BIE1JTE9SQUQKK1BPTE9WSU5BIE5BREEKK1BPTE9WSU5BIE5JS09MQQorUE9MT1ZJTkEgUExFTUVOS0EKK1BPTE9WSU5BIFJBRElWT0pFCitQT0xPVklOQSBTTE9CT0RBTgorUE9MT1ZJTkEgU1RFVk8KK1BPTE9WSU5BIFRPRE9SCitQT0xPVklOQSBWTEFESU1JUgorUE9MT1ZJTkEgVkxBRE8KK1BPTE9WSU5TS0kgU0FWQQorUE9MVFVSQSDFvVXFvUFOQQorUE9MVFVSQSBHQUJPUgorUE9MVFVSQSBJUkVOQQorUE9MVFVSQSBNSVJLTworUE9MVcW9QU5TS0kgSVZBTktBCitQT0xVTUlSQUMgTUlMSUNBCitQT0xVVEEgTElOQQorUE9MVkVSRcW9QU4tT0LFoFVTVCDEhkXEhklMSUpBCitQT0xaT1ZJxIYgQUxFS1NBTkRBUgorUE9MWk9WScSGIEpPVkFOCitQT0xaT1ZJxIYgTUlPTUlSCitQT0xaT1ZJxIYgTUlST1NMQVYKK1BPTFpPVknEhiBSQURPU0xBVgorUE9NT1JJxaBLSSBCUkFOSVNMQVYKK1BPTkdPIMW9VcW9QU5BCitQT05HTyBKQU5PxaAKK1BPTkdPIExBU0xPCitQT05HTyBTVEVWQU4KK1BPTkpBUkFDIFNBVk8KK1BPTkpBVknEhiBHT1JEQU5BCitQT05KQVZJxIYgUkFESVNBVgorUE9OSkFWScSGIFNJTknFoEEKK1BPTkpFVknEhiBNT03EjElMTworUE9OSkVWScSGIFBFVEFSCitQT05KRVZJxIYgU1BBU0FOCitQT05KRVZJxIYgWlZFWkRBTgorUE9OSknEjEFOIEhPUklTTEFWCitQT05KScSMQU4gSkFOCitQT05KScSMQU4gSk9TSVAKK1BPTkpJR0VSIMSQVVJBCitQT05KSUdFUiBJVkFOCitQT05PxIZLTyDEjEVET01JUgorUE9OT1JBQyBMQVpBUgorUE9QLUpPVkFOT1YgVkVSQQorUE9QIFpERU5LTworUE9QxJBVUsSQRVYgTUlMQU4KK1BPUEEgU1BBU0VOSUpBCitQT1BBREnEhiDFvUlWQU4KK1BPUEFEScSGIMW9SVZBCitQT1BBREnEhiDFvUlWS08KK1BPUEFEScSGIMSQT0tPCitQT1BBREnEhiDEkFVLQQorUE9QQURJxIYgQlJBTktBCitQT1BBREnEhiBHT0pLTworUE9QQURJxIYgSVNJRE9SCitQT1BBREnEhi1KQU5VWk9WScSGIFJBRE1JTEEKK1BPUEFEScSGIExKSUxKQU5BCitQT1BBREnEhiBMSlVCSUNBCitQT1BBREnEhiBMSlVCTworUE9QQURJxIYgTUlMQU4KK1BPUEFEScSGIE1JTEVOS08KK1BPUEFEScSGIE1JTEVOS08KK1BPUEFEScSGIE1JTEVOS08KK1BPUEFEScSGIE1JT0RSQUcKK1BPUEFEScSGIE5FREVMSktPCitQT1BBREnEhiBORUdPVkFOCitQT1BBREnEhiBOSUtPTEEKK1BPUEFEScSGIE5PVkFLCitQT1BBREnEhiBQRVRLTworUE9QQURJxIYgUFJFRFJBRworUE9QQURJxIYgUkFETUlMQQorUE9QQURJxIYgUkFETUlMQQorUE9QQURJxIYgUkFUT01JUgorUE9QQURJxIYgU0lMVklKQQorUE9QQURJxIYgU0xBVktPCitQT1BBREnEhiBTTEFWT0xKVUIKK1BPUEFEScSGIFNUQU5BCitQT1BBREnEhiBTVE9KSUNBCitQT1BBREnEhiBTVkVUTEFOQQorUE9QQURJxIYgVElIT01JUgorUE9QQURJxIYgVkVSQQorUE9QQURJxIYgVk9KSVNMQVYgQURWT0tBVAorUE9QQURJxIYgVk9KSVNMQVYKK1BPUEFSQSBBTEVLU0FOREFSCitQT1BBUkEgSUxJSkEKK1BPUEFSQSBMSlVCScWgQQorUE9QQVJBIFRBRElKQQorUE9QQVJBIFpPUkFOCitQT1BBUknEhiDFvUlWT0pJTgorUE9QQVJJxIYgSVNJRE9SCitQT1BBUknEhiBNQVJJQ0EKK1BPUEFSScSGIE5FTkFECitQT1BEQU5LT1YgSlVESVRBCitQT1BFSktPViBCT1JJU0xBVgorUE9QRUpLT1YgTEpJTEpBTkEKK1BPUEVKS09WIE1BUkEKK1BPUEVOR09WIFZBU0EKK1BPUEVTS1UgUlXFvUEKK1BPUEdMSUdPUklOIFBBVkxFCitQT1BJxIYgxb1FTEpLTworUE9QScSGIEFMRUtTQU5EQVIKK1BPUEnEhiBBTsSQRUxLTworUE9QScSGIEJSQU5LTworUE9QScSGIEJVRElNSVIKK1BPUEnEhiBEUkFHQU4KK1BPUEnEhiBEVcWgQU4KK1BPUEnEhiBEVcWgQU4KK1BPUEnEhiBEVcWgQU4KK1BPUEnEhiBFRElUQQorUE9QScSGIEdPUkRBTkEKK1BPUEnEhiBKRUxJU0FWRVRBCitQT1BJxIYgS0FUSUNBCitQT1BJxIYgTEpJTEpBTkEKK1BPUEnEhiBMVUtBCitQT1BJxIYgTUlMQU4KK1BPUEnEhiBNSUxBTgorUE9QScSGIE1JTEFOCitQT1BJxIYgTUlMSUNBCitQT1BJxIYgTUlMSVZPSgorUE9QScSGIE1JUkEKK1BPUEnEhiBNSVJBCitQT1BJxIYgTUlSSkFOQQorUE9QScSGIE5BREEKK1BPUEnEhi1QQUxKScSGIEZFT0RPUkEKK1BPUEnEhiBSQURJVk9KCitQT1BJxIYgU0FWQQorUE9QScSGIFNBVk8KK1BPUEnEhiBTTkXFvUFOQQorUE9QScSGIFNPRklKQQorUE9QScSGIFNPRklKQQorUE9QScSGIFNWRVRPWkFSCitQT1BJxIYgVE9NQQorUE9QScSGIFZVS0lDQQorUE9QScSGIFpPUkEKK1BPUElOIElWQU4KK1BPUElOIFJBRElWT0oKK1BPUElOIFZJVE9NSVIKK1BPUElOIFZMQURJTUlSCitQT1BJVk9EQSBCT8W9SURBUgorUE9QSVZPREEgTUlMT1ZBTgorUE9QSVZPREEgTUlMVVRJTgorUE9QSVZPREEgTkVERUxKS08KK1BPUElWT0RBIFBFVEFSCitQT1BJVk9EQSBSQURJU0xBVgorUE9QTUlIQUpMT1YgRElNSVRSSUpFCitQT1BNSUhBSkxPViBEVcWgQU4KK1BPUE5PVkFLT1YgRFJBR09NSVIKK1BPUE5PVkFLT1YgTUlMQU4KK1BPUE5PVkFLT1YgTUlMSUNBCitQT1BPViDEjEVET01JUgorUE9QT1Ygxb1BUktPCitQT1BPViDFvUFSS08KK1BPUE9WLcW9SUtFTEnEhiBaT1JBCitQT1BPViDFvUlWS0EKK1BPUE9WIMW9SVZLTworUE9QT1Ygxb1JVktPCitQT1BPViDFvUlWS08KK1BPUE9WIMW9SVZLTworUE9QT1Ygxb1JVktPCitQT1BPViDFvUlWS08KK1BPUE9WIMSQT0tBCitQT1BPViDEkE9LQQorUE9QT1YgxJBPUsSQRQorUE9QT1YgxJBPUsSQRQorUE9QT1YgxJBPUsSQRQorUE9QT1YgxJBPUsSQRQorUE9QT1YgxJBPUsSQRQorUE9QT1YgxJBPUsSQRQorUE9QT1YgxJBVUsSQSU5BCitQT1BPViDEkFVSQQorUE9QT1YgxJBVUkEKK1BPUE9WIEFMRUtTQU5EQVIKK1BPUE9WIEFMRUtTQU5EQVIKK1BPUE9WIEFMRUtTQU5EQVIKK1BPUE9WIEFMRUtTQU5EQVIKK1BPUE9WIEFMRUtTQU5EQVIKK1BPUE9WIEFMRUtTQU5EQVIKK1BPUE9WIEFMRUtTQU5EQVIKK1BPUE9WIEFOxJBBCitQT1BPViBBTkRPTgorUE9QT1YgQU5LSUNBCitQT1BPVi1CQcWgQSBWRVJBCitQT1BPViBCT1JJVk9KIERJUEwgSU5HCitQT1BPViBCUkFOSVNMQVZBCitQT1BPViBCUkFOSVNMQVYKK1BPUE9WIEJSQU5JU0xBVgorUE9QT1YgQlJBTklTTEFWCitQT1BPViBCUkFOS08KK1BPUE9WIEJSQU5LTworUE9QT1YgREFOSUNBCitQT1BPViBEQU5JQ0EKK1BPUE9WIERBTklMTworUE9QT1YgREFOSUxPCitQT1BPViBEQVJJTktBCitQT1BPViBESU1JVFJJSkUKK1BPUE9WIERJTUlUUklKRQorUE9QT1YgRFJBR0FOQQorUE9QT1YgRFJBR0FOCitQT1BPViBEUkFHQU4KK1BPUE9WIERSQUdBTgorUE9QT1YgRFJBR0FOCitQT1BPViBEUkFHQQorUE9QT1YgRFJBR0nFoEEKK1BPUE9WIERSQUdJQ0EKK1BPUE9WLURSQUdJTiBPTEdBCitQT1BPViBEUkFHT0xKVUIKK1BPUE9WIERSQUdPTEpVQgorUE9QT1YgRFJBR09MSlVCCitQT1BPViBEUkFHT01JUgorUE9QT1YgRFJBR09NSVIKK1BPUE9WIERSQUdPTUlSCitQT1BPViBEUkFHT1NMQVZBCitQT1BPViBEVcWgQU4gRFIKK1BPUE9WIERVxaBBTgorUE9QT1YgRFXFoEFOCitQT1BPViBEVcWgQU4KK1BPUE9WIERVxaBLQQorUE9QT1YgR0FWUkEKK1BPUE9WIEdPUkFOCitQT1BPViBHT1JEQU5BIERSCitQT1BPViBHT1JEQU5BCitQT1BPViBHT1JEQU5BCitQT1BPViBJTE9OS0EKK1BPUE9WIElTQQorUE9QT1YgSVZBTktBCitQT1BPViBJVkFOCitQT1BPViBJVktBCitQT1BPViBKRUxBCitQT1BPViBKRUxBCitQT1BPViBKRUxJU0FWRVRBCitQT1BPViBKRVpESU1JUgorUE9QT1YgSk9WQU4KK1BPUE9WIEpPVkFOCitQT1BPViBKT1ZBTgorUE9QT1YgSk9WQU4KK1BPUE9WIEpPVkFOCitQT1BPViBKT1ZBTgorUE9QT1YgSk9WQU4KK1BPUE9WIEpPVkFOCitQT1BPViBKT1ZBTgorUE9QT1YgSlVHT1NMQVYKK1BPUE9WIEpVRworUE9QT1YgSlVMS0EKK1BPUE9WIEtBVElDQQorUE9QT1YgS0FUSUNBCitQT1BPViBLT1NBCitQT1BPViBLT1ZJTktBCitQT1BPViBMQVpBUgorUE9QT1YgTEFaQVIKK1BPUE9WIExBWkFSCitQT1BPViBMQVpBUgorUE9QT1YgTEVOS0EKK1BPUE9WIExKSUxKQU5BCitQT1BPViBMSklMSkFOQQorUE9QT1YgTEpVQknFoEEKK1BPUE9WIExKVUJJQ0EKK1BPUE9WIExKVUJJQ0EKK1BPUE9WIExKVUJJQ0EKK1BPUE9WIExKVUJJQ0EKK1BPUE9WIExKVUJJTktBCitQT1BPViBMSlVCT01JUgorUE9QT1YgTUFSQQorUE9QT1YgTUFSSUNBCitQT1BPViBNQVJJSkEKK1BPUE9WIE1BUklKQQorUE9QT1YgTUFSSU5LTworUE9QT1YgTUFSS08KK1BPUE9WIE1BUktPCitQT1BPViBNQVJLTworUE9QT1YgTUlMQURJTgorUE9QT1YgTUlMQU4KK1BPUE9WIE1JTEFOCitQT1BPViBNSUxBTgorUE9QT1YgTUlMQU4KK1BPUE9WIE1JTEFOCitQT1BPViBNSUxBTgorUE9QT1YgTUlMQU4KK1BPUE9WIE1JTEFOCitQT1BPViBNSUxBTgorUE9QT1YgTUlMQU4KK1BPUE9WIE1JTEFOCitQT1BPViBNSUxBTgorUE9QT1YgTUlMQU4KK1BPUE9WIE1JTEVOQQorUE9QT1YgTUlMRU5BCitQT1BPViBNSUxFTktPCitQT1BPViBNSUxJQ0EKK1BPUE9WIE1JTElDQQorUE9QT1YgTUlMSUNBCitQT1BPViBNSUxJQ0EKK1BPUE9WIE1JTElWT0oKK1BPUE9WIE1JTElWT0oKK1BPUE9WIE1JTElWT0oKK1BPUE9WIE1JTElWT0oKK1BPUE9WIE1JTEtBCitQT1BPViBNSUxPxaAKK1BPUE9WIE1JTE/FoAorUE9QT1YgTUlMT0pFCitQT1BPViBNSUxPUkFECitQT1BPViBNSUxPVkFOCitQT1BPViBNSUxPVkFOCitQT1BPViBNSUxVVElOCitQT1BPViBNSVJKQU5BCitQT1BPViBNSVJKQU5BCitQT1BPViBNSVJKQU4KK1BPUE9WIE1JUk9TTEFWCitQT1BPViBNSVRBCitQT1BPViBNT03EjElMTworUE9QT1YgTkVERUxKS08KK1BPUE9WIE5FTkFUS0EKK1BPUE9WIE5JS09MQQorUE9QT1YgTklOQQorUE9QT1YgTklOT1NMQVYgRElQTCBJTkcKK1BPUE9WIE5PVkFLCitQT1BPViBPQlJBRAorUE9QT1YtT0JST1ZBxIxLSSBTT0ZJSkEKK1BPUE9WIE9MR0EKK1BPUE9WIFBBSkEKK1BPUE9WIFBBVkxFCitQT1BPViBQQVZMRQorUE9QT1YgUEFWTEUKK1BPUE9WIFBFUkEKK1BPUE9WIFBFVEFSCitQT1BPViBQRVRBUgorUE9QT1YgUExBVE9OCitQT1BPViBQUkVEUkFHCitQT1BPViBSQURJVk9KRQorUE9QT1YgUkFESVZPSgorUE9QT1YgUkFESVZPSgorUE9QT1YgUkFESVZPSgorUE9QT1YgUkFESVZPSgorUE9QT1YgUkFESVZPSgorUE9QT1YgUkFETUlMQQorUE9QT1YgUkFET0pLQQorUE9QT1YgUkFET1ZBTiBESVBMIElORworUE9QT1YgUkFET1ZBTgorUE9QT1YgUkFET1ZBTgorUE9QT1YgUkFET1ZBTgorUE9QT1YgUkFET1ZBTgorUE9QT1YgUkFET1ZBTgorUE9QT1YgUkFET1ZBTgorUE9QT1YgUkFET1ZBTgorUE9QT1YgUkFUT01JUgorUE9QT1YgUkVMSkEKK1BPUE9WIFJPRE9MSlVCCitQT1BPViBTQVZBCitQT1BPViBTQVZBCitQT1BPViBTQVZBCitQT1BPViBTQVZBCitQT1BPViBTQVZFVEEKK1BPUE9WIFNFS1VMQQorUE9QT1YgU0lOScWgQQorUE9QT1YgU0xBVklDQQorUE9QT1YgU0xBVktPCitQT1BPViBTTEFWS08KK1BPUE9WIFNMQVZLTworUE9QT1YgU0xPQk9EQU4KK1BPUE9WIFNMT0JPREFOCitQT1BPViBTTkXFvUFOQQorUE9QT1YgU09GSUpBCitQT1BPViBTUEFTT0pFCitQT1BPViBTUkVET0pFCitQT1BPViBTVEFOQQorUE9QT1YgU1RFVkFOIERJUEwgSU5HCitQT1BPViBTVEVWQU4KK1BPUE9WIFNURVZBTgorUE9QT1YgU1RFVkFOCitQT1BPViBTVEVWQU4KK1BPUE9WIFNURVZBTgorUE9QT1YgU1RFVkFOCitQT1BPViBTVEVWQU4KK1BPUE9WIFNURVZBTgorUE9QT1YgU1RFVkEKK1BPUE9WIFNURVZJQ0EKK1BPUE9WIFNUT0pBTktBCitQT1BPViBTVkVUTEFOQQorUE9QT1YgU1ZFVE9aQVIKK1BPUE9WIFNWRVRPWkFSCitQT1BPViBUQVRPTUlSCitQT1BPViBUT0RPUgorUE9QT1YgVFJJVkEKK1BPUE9WIFVST8WgCitQT1BPViBWQVNJTElKRQorUE9QT1YgVkFTSUxJSkUKK1BPUE9WIFZBU0lMSUpFCitQT1BPViBWRVJBCitQT1BPViBWRVJBCitQT1BPViBWRVJBCitQT1BPViBWRVJJQ0EKK1BPUE9WIFZFU0VMSU4KK1BPUE9WIFZMQURJTUlSCitQT1BPViBWTEFESU1JUgorUE9QT1YgVk9KSU4KK1BPUE9WIFZPSklTTEFWCitQT1BPViBWVUtPU0FWQQorUE9QT1YgWkxBVEEKK1BPUE9WIFpMQVRJQ0EKK1BPUE9WIFpPUktBCitQT1BPVknEhiDEjEFTTEFWIERJUEwgUFJBVk5JSworUE9QT1ZJxIYgxIxFRE9NSVIgRElQTCBJTkcKK1BPUE9WScSGIMSMRURPTUlSCitQT1BPVknEhiDEjEVET01JUgorUE9QT1ZJxIYgxIxFRE9NSVIKK1BPUE9WScSGLcSMRUpPVknEhiBQQVZMRQorUE9QT1ZJxIYgxaDEhkVQQU4KK1BPUE9WScSGIMW9QVJLTworUE9QT1ZJxIYgxb1BUktPCitQT1BPVknEhiDFvUFSS08KK1BPUE9WScSGIMW9RUxKS08KK1BPUE9WScSGIMW9SVZBTgorUE9QT1ZJxIYgxb1JVkFOCitQT1BPVknEhiDFvUlWS08KK1BPUE9WScSGIMW9SVZPUkFECitQT1BPVknEhiDFvVXFvUFOQQorUE9QT1ZJxIYgxJBPUsSQRQorUE9QT1ZJxIYgxJBPUsSQRQorUE9QT1ZJxIYgxJBPUsSQRQorUE9QT1ZJxIYgxJBPUsSQRQorUE9QT1ZJxIYgxJBPUsSQRQorUE9QT1ZJxIYgxJBPUsSQRQorUE9QT1ZJxIYgxJBPUsSQRQorUE9QT1ZJxIYgxJBPUsSQRQorUE9QT1ZJxIYgxJBPUsSQRQorUE9QT1ZJxIYgxJBPUsSQRQorUE9QT1ZJxIYgxJBPUsSQRQorUE9QT1ZJxIYgxJBPUsSQRQorUE9QT1ZJxIYgxJBPUsSQRQorUE9QT1ZJxIYgxJBPUsSQSUpFCitQT1BPVknEhiDEkFVSxJBJTkEKK1BPUE9WScSGIMSQVVLEkElOQQorUE9QT1ZJxIYgxJBVUkEKK1BPUE9WScSGIMSQVVJJQ0EKK1BPUE9WScSGIMSQVVJPCitQT1BPVknEhiDEkFVSTworUE9QT1ZJxIYgQUtTRU5USUpFCitQT1BPVknEhiBBTEVLU0FOREFSIERSIFBSQVZOSUsKK1BPUE9WScSGIEFMRUtTQU5EQVIgRFIKK1BPUE9WScSGIEFMRUtTQU5EQVIKK1BPUE9WScSGIEFMRUtTQU5EQVIKK1BPUE9WScSGIEFMRUtTQU5EQVIKK1BPUE9WScSGIEFMRUtTQU5EQVIKK1BPUE9WScSGIEFOxJBFTEtBCitQT1BPVknEhiBBTsSQRUxLQQorUE9QT1ZJxIYgQU7EkEVMCitQT1BPVknEhiBBTkEKK1BPUE9WScSGIEFOQQorUE9QT1ZJxIYgQU5HRUxJTkEKK1BPUE9WScSGIEFOR0VMSU5BCitQT1BPVknEhiBBTkdFTElOQQorUE9QT1ZJxIYgQU5JQ0EKK1BPUE9WScSGIEJMQUdPSkUKK1BPUE9WScSGIEJPxb1BCitQT1BPVknEhiBCT8W9SURBUgorUE9QT1ZJxIYgQk9HREFOCitQT1BPVknEhiBCT0dEQU4KK1BPUE9WScSGIEJPR09MSlVCCitQT1BPVknEhiBCT0pBTgorUE9QT1ZJxIYgQk9SSVNMQVZBCitQT1BPVknEhiBCT1JJU0xBVgorUE9QT1ZJxIYgQk9SSkFOCitQT1BPVknEhiBCT1JLQQorUE9QT1ZJxIYgQk9TSUxKS0EKK1BPUE9WScSGIEJSQU5JU0xBViBEUgorUE9QT1ZJxIYgQlJBTklTTEFWCitQT1BPVknEhiBCUkFOSVNMQVYKK1BPUE9WScSGIEJSQU5JU0xBVgorUE9QT1ZJxIYgQlJBTklTTEFWCitQT1BPVknEhiBCUkFOSVNMQVYKK1BPUE9WScSGIEJSQU5JVk9KCitQT1BPVknEhiBCUkFOSVZPSgorUE9QT1ZJxIYgQlJBTktBCitQT1BPVknEhiBCUkFOS08KK1BPUE9WScSGIEJSQU5LTworUE9QT1ZJxIYgQlJBTktPCitQT1BPVknEhiBDVkVKQQorUE9QT1ZJxIYgREFOxIxJS0EKK1BPUE9WScSGIERBTkUKK1BPUE9WScSGIERBTkUKK1BPUE9WScSGIERBTklDQQorUE9QT1ZJxIYgREFOSUNBCitQT1BPVknEhiBEQU5JTE8KK1BPUE9WScSGIERBTktJQ0EKK1BPUE9WScSGIERBUklOS0EKK1BPUE9WScSGIERFSkFOCitQT1BPVknEhiBERVNBTktBCitQT1BPVknEhiBERVNBCitQT1BPVknEhiBESU1JVFJJSkUKK1BPUE9WScSGIERJTUlUUklKRQorUE9QT1ZJxIYgRElNSVRSSUpFCitQT1BPVknEhiBET0JSSU5LQQorUE9QT1ZJxIYgRE9CUklOS0EKK1BPUE9WScSGIERPQlJJTktPCitQT1BPVknEhiBET0JSSVZPSgorUE9QT1ZJxIYgRFJBR0FOQQorUE9QT1ZJxIYgRFJBR0FOCitQT1BPVknEhiBEUkFHQU4KK1BPUE9WScSGIERSQUdBTgorUE9QT1ZJxIYgRFJBR0nFoEEgRFIKK1BPUE9WScSGIERSQUdJxaBBCitQT1BPVknEhiBEUkFHSU5KQQorUE9QT1ZJxIYgRFJBR08gRElQTCBJTkcKK1BPUE9WScSGIERSQUdPSkxPCitQT1BPVknEhiBEUkFHT0xKVUIKK1BPUE9WScSGIERSQUdPTEpVQgorUE9QT1ZJxIYgRFJBR09MSlVCCitQT1BPVknEhiBEUkFHT01JUgorUE9QT1ZJxIYgRFJBR09NSVIKK1BPUE9WScSGIERSQUdPCitQT1BPVknEhiBEUkFHTworUE9QT1ZJxIYgRFJBR08KK1BPUE9WScSGIERSQUdVVElOCitQT1BPVknEhiBEVcWgQU4gRFIKK1BPUE9WScSGIERVxaBBTktBCitQT1BPVknEhiBEVcWgQU5LQQorUE9QT1ZJxIYgRFXFoEFOS0EKK1BPUE9WScSGIERVxaBBTgorUE9QT1ZJxIYgRFXFoEFOCitQT1BPVknEhiBEVcWgQU4KK1BPUE9WScSGIERVxaBBTgorUE9QT1ZJxIYgRFXFoEFOCitQT1BPVknEhiBEVcWgQU4KK1BPUE9WScSGIERVxaBBTgorUE9QT1ZJxIYgRFXFoEFOCitQT1BPVknEhiBEVcWgQU4KK1BPUE9WScSGIERVxaBJQ0EKK1BPUE9WScSGIERVxaBLTyBEUgorUE9QT1ZJxIYgRU1JTAorUE9QT1ZJxIYgRkVPRE9SQQorUE9QT1ZJxIYgRkVPRE9SCitQT1BPVknEhiBHT0pLTworUE9QT1ZJxIYgR09SQU4KK1BPUE9WScSGIEdPUkRBTkEKK1BPUE9WScSGIElMRQorUE9QT1ZJxIYgSUxJSkEKK1BPUE9WScSGIElMSUpBCitQT1BPVknEhiBJTElKQQorUE9QT1ZJxIYgSUxJSkEKK1BPUE9WScSGIElMSUpBCitQT1BPVknEhiBJUklOQQorUE9QT1ZJxIYgSVZBTgorUE9QT1ZJxIYgSVZBTgorUE9QT1ZJxIYgSVZBTgorUE9QT1ZJxIYgSVZBTgorUE9QT1ZJxIYgSVZBTgorUE9QT1ZJxIYgSkFEUkFOS0EKK1BPUE9WScSGIEpBTktPCitQT1BPVknEhiBKQVNOQQorUE9QT1ZJxIYgSkVGVEEKK1BPUE9WScSGIEpFTEVOQQorUE9QT1ZJxIYgSkVMRU5BCitQT1BPVknEhiBKRUxFTkEKK1BPUE9WScSGIEpFTEVOQQorUE9QT1ZJxIYgSkVMSVNBVkVUQQorUE9QT1ZJxIYgSk9WQU5LQQorUE9QT1ZJxIYgSk9WQU5LQQorUE9QT1ZJxIYgSk9WQU5LQQorUE9QT1ZJxIYgSk9WQU4KK1BPUE9WScSGIEpPVkFOCitQT1BPVknEhiBKT1ZBTgorUE9QT1ZJxIYgSk9WQU4KK1BPUE9WScSGIEpPVkFOCitQT1BPVknEhiBKT1ZBTgorUE9QT1ZJxIYgSk9WQU4KK1BPUE9WScSGIEpPVkFOCitQT1BPVknEhiBKT1ZBTgorUE9QT1ZJxIYgSk9WQU4KK1BPUE9WScSGIEpPVkFOCitQT1BPVknEhiBKT1ZBTgorUE9QT1ZJxIYgSk9WQU4KK1BPUE9WScSGIEpPVk8KK1BPUE9WScSGIEtBVEFSSU5BCitQT1BPVknEhiBLQVRJQ0EKK1BPUE9WScSGIEtBVElDQQorUE9QT1ZJxIYgS0FUSUNBCitQT1BPVknEhiBLT05TVEFOVElOCitQT1BPVknEhiBLT1NUQSBEUgorUE9QT1ZJxIYgS09TVEFESU4KK1BPUE9WScSGIEtPU1RBCitQT1BPVknEhiBLT1NUQQorUE9QT1ZJxIYgS1JJU1RJTkEKK1BPUE9WScSGIEtSU1RBCitQT1BPVknEhiBLUlNUTworUE9QT1ZJxIYgS1NFTklKQQorUE9QT1ZJxIYgTEFaQVIgRFIgTEVLQVIKK1BPUE9WScSGIExBWkFSCitQT1BPVknEhiBMQVpBUgorUE9QT1ZJxIYgTEFaQVIKK1BPUE9WScSGIExBWkFSCitQT1BPVknEhiBMQVpBUgorUE9QT1ZJxIYgTEFaQVIKK1BPUE9WScSGIExBWkFSCitQT1BPVknEhiBMQVpBUgorUE9QT1ZJxIYgTEFaQVIKK1BPUE9WScSGIExBWkFSCitQT1BPVknEhiBMQVpBUgorUE9QT1ZJxIYgTEVMQQorUE9QT1ZJxIYgTEVQT1NBVkEKK1BPUE9WScSGIExKSUxKQU5BIERSCitQT1BPVknEhiBMSklMSkFOQQorUE9QT1ZJxIYgTEpJTEpBTkEKK1BPUE9WScSGIExKSUxKQU5BCitQT1BPVknEhiBMSklMSkFOQQorUE9QT1ZJxIYgTEpJTEpBTkEKK1BPUE9WScSGIExKVUJJQ0EKK1BPUE9WScSGIExKVUJJQ0EKK1BPUE9WScSGIExKVUJJQ0EKK1BPUE9WScSGIExKVUJJQ0EKK1BPUE9WScSGIExKVUJJU0FWCitQT1BPVknEhiBMSlVCT01JUgorUE9QT1ZJxIYgTEpVQk9NSVIKK1BPUE9WScSGIExKVUJPTUlSCitQT1BPVknEhiBMSlVCT01JUgorUE9QT1ZJxIYgTUFLU0lNCitQT1BPVknEhiBNQVJBCitQT1BPVknEhiBNQVJBCitQT1BPVknEhiBNQVJJSkEgRFIKK1BPUE9WScSGIE1BUklKQU5BCitQT1BPVknEhiBNQVJJSkEKK1BPUE9WScSGIE1BUklKQQorUE9QT1ZJxIYgTUFSSUpBCitQT1BPVknEhiBNQVJJSkEKK1BPUE9WScSGIE1BUklKQQorUE9QT1ZJxIYgTUFSSU5LTworUE9QT1ZJxIYgTUFSS08gRFIgTEVLQVIKK1BPUE9WScSGIE1BUktPIE1SIElORworUE9QT1ZJxIYgTUFSS08KK1BPUE9WScSGIE1BUktPCitQT1BPVknEhiBNQVJUQQorUE9QT1ZJxIYgTUVMQU5JSkEKK1BPUE9WScSGIE1JSEFJTE8KK1BPUE9WScSGIE1JSEFKTE8gRFIKK1BPUE9WScSGIE1JSEFKTE8KK1BPUE9WScSGIE1JTEFOQQorUE9QT1ZJxIYgTUlMQU4KK1BPUE9WScSGIE1JTEFOCitQT1BPVknEhiBNSUxBTgorUE9QT1ZJxIYgTUlMQU4KK1BPUE9WScSGIE1JTEFOCitQT1BPVknEhiBNSUxBTgorUE9QT1ZJxIYgTUlMQU4KK1BPUE9WScSGIE1JTEFOCitQT1BPVknEhiBNSUxBTgorUE9QT1ZJxIYgTUlMQU4KK1BPUE9WScSGIE1JTEFOCitQT1BPVknEhiBNSUxBTgorUE9QT1ZJxIYgTUlMQQorUE9QT1ZJxIYgTUlMRU5BCitQT1BPVknEhiBNSUxFTktPCitQT1BPVknEhiBNSUxFTktPCitQT1BPVknEhiBNSUxFTktPCitQT1BPVknEhiBNSUxFTktPCitQT1BPVknEhiBNSUxFTktPCitQT1BPVknEhiBNSUxFVEEgRElQTCBJTkcKK1BPUE9WScSGIE1JTEUKK1BPUE9WScSGIE1JTElDQQorUE9QT1ZJxIYgTUlMSUNBCitQT1BPVknEhiBNSUxJSkFOIERSCitQT1BPVknEhiBNSUxJTktPCitQT1BPVknEhiBNSUxJVk9KRQorUE9QT1ZJxIYgTUlMS0EKK1BPUE9WScSGIE1JTE/FoCBESVBMIElORworUE9QT1ZJxIYgTUlMT8WgCitQT1BPVknEhiBNSUxPxaAKK1BPUE9WScSGIE1JTE/FoAorUE9QT1ZJxIYgTUlMT1JBRAorUE9QT1ZJxIYgTUlMT1JBRAorUE9QT1ZJxIYgTUlMT1JBRAorUE9QT1ZJxIYgTUlMT1JBRAorUE9QT1ZJxIYgTUlMT1JBRAorUE9QT1ZJxIYgTUlMT1JBRAorUE9QT1ZJxIYgTUlMT1NBVkEKK1BPUE9WScSGIE1JTE9TQVYKK1BPUE9WScSGIE1JTE9WQU4KK1BPUE9WScSGIE1JTFVUSU4KK1BPUE9WScSGIE1JT0RSQUcKK1BPUE9WScSGIE1JT0RSQUcKK1BPUE9WScSGIE1JT0RSQUcKK1BPUE9WScSGIE1JT0RSQUcKK1BPUE9WScSGIE1JUkEKK1BPUE9WScSGIE1JUkEKK1BPUE9WScSGIE1JUkpBTkEKK1BPUE9WScSGIE1JUkpBTkEKK1BPUE9WScSGIE1JUkpBTkEKK1BPUE9WScSGIE1JUkpBTkEKK1BPUE9WScSGIE1JUktPCitQT1BPVknEhiBNSVJLTworUE9QT1ZJxIYgTUlSS08KK1BPUE9WScSGIE1JUktPCitQT1BPVknEhiBNSVJLTworUE9QT1ZJxIYgTUlST0xKVUIKK1BPUE9WScSGIE1JUk9TTEFWCitQT1BPVknEhiBNSVJPU0xBVgorUE9QT1ZJxIYgTUlST1NMQVYKK1BPUE9WScSGIE1JUk9TTEFWCitQT1BPVknEhiBNSVRBUgorUE9QT1ZJxIYgTUlUQVIKK1BPUE9WScSGIE1MQURFTgorUE9QT1ZJxIYgTUxBRElOS08KK1BPUE9WScSGIE1PTcSMSUxPCitQT1BPVknEhiBNT03EjElMTworUE9QT1ZJxIYgTU9NxIxJTE8KK1BPUE9WScSGIE5BREEKK1BPUE9WScSGIE5BREEKK1BPUE9WScSGIE5BREEKK1BPUE9WScSGIE5BREEKK1BPUE9WScSGIE5BREEKK1BPUE9WScSGIE5BREXFvURBCitQT1BPVknEhiBOQURFxb1EQQorUE9QT1ZJxIYgTkFERcW9REEKK1BPUE9WScSGIE5BVEFMSUpBCitQT1BPVknEhiBORcSQTworUE9QT1ZJxIYgTkVCT0rFoEEKK1BPUE9WScSGIE5FREVMSktPCitQT1BPVknEhiBORURFTEpLTworUE9QT1ZJxIYgTkVOQUQKK1BPUE9WScSGIE5FTkFECitQT1BPVknEhiBOSUtPTEEKK1BPUE9WScSGIE5JS09MQQorUE9QT1ZJxIYgTklLT0xBCitQT1BPVknEhiBOSUtPTEEKK1BPUE9WScSGIE5JS09MQQorUE9QT1ZJxIYgTklLT0xBCitQT1BPVknEhiBOT1ZBSworUE9QT1ZJxIYgTk9WQUsKK1BPUE9WScSGIE9CUkFECitQT1BPVknEhiBPQlJBRAorUE9QT1ZJxIYgT0xHQQorUE9QT1ZJxIYgT0xHQQorUE9QT1ZJxIYgT0xHQQorUE9QT1ZJxIYgUEFKQQorUE9QT1ZJxIYgUEFWTEUgRElQTCBQUkFWTklLCitQT1BPVknEhiBQQVZMRQorUE9QT1ZJxIYgUEFWTEUKK1BPUE9WScSGIFBBVkxFCitQT1BPVknEhiBQRVJBCitQT1BPVknEhiBQRVJJQ0EKK1BPUE9WScSGIFBFUk8KK1BPUE9WScSGIFBFVEFSCitQT1BPVknEhiBQRVRBUgorUE9QT1ZJxIYgUEVUQVIKK1BPUE9WScSGIFBFVEFSCitQT1BPVknEhiBQRVRBUgorUE9QT1ZJxIYgUEVUQVIKK1BPUE9WScSGIFBFVEFSCitQT1BPVknEhiBQRVRBUgorUE9QT1ZJxIYgUkFEQQorUE9QT1ZJxIYgUkFERU5LTworUE9QT1ZJxIYgUkFERQorUE9QT1ZJxIYgUkFERQorUE9QT1ZJxIYgUkFERQorUE9QT1ZJxIYgUkFESU5LQQorUE9QT1ZJxIYgUkFESVZPSkUKK1BPUE9WScSGIFJBRElWT0oKK1BPUE9WScSGIFJBRElWT0oKK1BPUE9WScSGIFJBRE1JTEEKK1BPUE9WScSGIFJBRE1JTEEKK1BPUE9WScSGIFJBRE9JQ0EKK1BPUE9WScSGIFJBRE9JQ0EKK1BPUE9WScSGIFJBRE9KSUNBCitQT1BPVknEhiBSQURPSktBCitQT1BPVknEhiBSQURPSktBCitQT1BPVknEhiBSQURPTUlSCitQT1BPVknEhiBSQURPU0FWCitQT1BPVknEhiBSQURPU0FWCitQT1BPVknEhiBSQURPU0xBVgorUE9QT1ZJxIYgUkFET1ZBTktBCitQT1BPVknEhiBSQURPVkFOS0EKK1BPUE9WScSGIFJBRE9WQU4KK1BPUE9WScSGIFJBRFVMCitQT1BPVknEhiBSQUpLTworUE9QT1ZJxIYgUkFOS08KK1BPUE9WScSGIFJBVEtPCitQT1BPVknEhiBSQVZJSk9KTEEKK1BPUE9WScSGIFJFTEpBIERSCitQT1BPVknEhiBST0RPTEpVQgorUE9QT1ZJxIYgU0FOSkEKK1BPUE9WScSGIFNBVkEgRElQTCBJTkcKK1BPUE9WScSGIFNBVkEgRElQTCBJTkcKK1BPUE9WScSGIFNBVkEKK1BPUE9WScSGIFNBVkEKK1BPUE9WScSGIFNBVkEKK1BPUE9WScSGIFNBVk8KK1BPUE9WScSGIFNFS1VMQQorUE9QT1ZJxIYgU0lOScWgQSBEUiBMRUtBUgorUE9QT1ZJxIYgU0xBVklDQQorUE9QT1ZJxIYgU0xBVktPIERJUEwgT0VDCitQT1BPVknEhiBTTEFWS08KK1BPUE9WScSGIFNMQVZLTworUE9QT1ZJxIYgU0xBVktPCitQT1BPVknEhiBTTEFWT0xKVUIKK1BPUE9WScSGIFNMQVZPTEpVQgorUE9QT1ZJxIYgU0xPQk9EQU4KK1BPUE9WScSGIFNMT0JPREFOCitQT1BPVknEhiBTTE9CT0RBTgorUE9QT1ZJxIYgU0xPQk9EQU4KK1BPUE9WScSGIFNNSUxKQU5BCitQT1BPVknEhiBTT0ZJSkEKK1BPUE9WScSGIFNPRklKQQorUE9QT1ZJxIYgU09GSUpBCitQT1BPVknEhiBTT0ZJSkEKK1BPUE9WScSGIFNPRklKQQorUE9QT1ZJxIYgU09OSkEKK1BPUE9WScSGIFNQQVNPSkUKK1BPUE9WScSGIFNUQU5JTUlSCitQT1BPVknEhiBTVEFOSU1JUgorUE9QT1ZJxIYgU1RBTktPCitQT1BPVknEhiBTVEFOS08KK1BPUE9WScSGIFNUQU5LTworUE9QT1ZJxIYgU1RFVkFOIERSCitQT1BPVknEhiBTVEVWQU4KK1BPUE9WScSGIFNURVZBTgorUE9QT1ZJxIYgU1RFVkFOCitQT1BPVknEhiBTVEVWS0EKK1BPUE9WScSGIFNURVZPCitQT1BPVknEhiBTVE9KQU4KK1BPUE9WScSGIFNWRVRJU0xBVgorUE9QT1ZJxIYgU1ZFVExBTkEKK1BPUE9WScSGIFNWRVRPWkFSCitQT1BPVknEhiBURU9ET1IKK1BPUE9WScSGIFRFUkVaQQorUE9QT1ZJxIYgVE9ET1IKK1BPUE9WScSGIFRPTUlTTEFWCitQT1BPVknEhiBUT01PCitQT1BPVknEhiBVR0xKRcWgQQorUE9QT1ZJxIYgVkFTSUxJSkUKK1BPUE9WScSGIFZBU0lMSUpFCitQT1BPVknEhiBWRUxJTUlSCitQT1BPVknEhiBWRUxJWkFSCitQT1BPVknEhiBWRUxKS08KK1BPUE9WScSGIFZFUkEKK1BPUE9WScSGIFZFUkEKK1BPUE9WScSGIFZFUkEKK1BPUE9WScSGIFZFUkEKK1BPUE9WScSGIFZFUkEKK1BPUE9WScSGIFZFUklDQQorUE9QT1ZJxIYgVkVTRUxJTgorUE9QT1ZJxIYgVklET0pFCitQT1BPVknEhiBWSURPU0FWQQorUE9QT1ZJxIYgVklLVE9SSUpBCitQT1BPVknEhiBWTEFEQU4KK1BPUE9WScSGIFZMQURJTUlSIERSCitQT1BPVknEhiBWTEFESU1JUgorUE9QT1ZJxIYgVkxBRElNSVIKK1BPUE9WScSGIFZMQURJTUlSCitQT1BPVknEhiBWTEFESU1JUgorUE9QT1ZJxIYgVkxBRElTTEFWCitQT1BPVknEhiBWTEFETworUE9QT1ZJxIYgVk9KSU4KK1BPUE9WScSGIFZPSklOCitQT1BPVknEhiBWT0pJU0xBVgorUE9QT1ZJxIYgVlXEjElOQQorUE9QT1ZJxIYgVlXEjEtPCitQT1BPVknEhiBWVUpBRElOCitQT1BPVknEhiBWVUtBRElOCitQT1BPVknEhiBWVUtBRElOCitQT1BPVknEhiBWVUtPU0FWQQorUE9QT1ZJxIYgWkRFTktPCitQT1BPVknEhiBaRFJBVktBCitQT1BPVknEhiBaTEFUT0pBCitQT1BPVknEhiBaT1JBTgorUE9QT1ZJxIYgWk9SQU4KK1BPUE9WScSGIFpPUkFOCitQT1BPVknEhiBaT1JBTgorUE9QT1ZJxIYgWk9SQU4KK1BPUE9WScSGIFpPUkFOCitQT1BPVknEhiBaT1JLQQorUE9QT1ZJxIYgWlVaQU5BCitQT1BPVknEhiBaVk9OSU1JUgorUE9QT1ZJQ0tJIMW9QVJLTworUE9QT1ZJQ0tJIEJPUklTTEFWCitQT1BPVklDS0kgSk9WQU5LQQorUE9QT1ZJQ0tJIExKVUJPTUlSCitQT1BPVklDS0kgTUlMRU5LTworUE9QT1ZJQ0tJIE1JTEVOS08KK1BPUE9WSUNLSSBNSUxJQ0EKK1BPUE9WSUNLSSBNSUxPxaAKK1BPUE9WSUNLSSBQRVRBUgorUE9QT1ZJQ0tJIFJBRE9NSVIKK1BPUE9WSUNLSSBSQURPTUlSCitQT1BPVklDS0kgU0FMT01BCitQT1BPVklDS0kgU1ZFVElTTEFWCitQT1BPVklDS0kgVEFUSkFOQQorUE9QT1ZJQ0tJIFRFT0RPUgorUE9QT1ZJQ0tJIFZMQURJU0xBVgorUE9QT1ZJQ0tJIFpPUkFOCitQT1BPVlNLSSBSQURPSktBCitQT1BPVlNLSSBWRU5LTworUE9QUsW9QU4gTUlMQU4KK1BPUFLFvUFOIE5JS09MQQorUE9QUsW9QU4gVkFMRU5USU5BCitQT1BSxb1FTiBCT1JJVk9KCitQT1BTQVZJTiBEVcWgQU4KK1BPUFNBVklOIFZFTElNSVIKK1BPUFRFxaBJTiDEkE9SxJBFCitQT1BURcWgSU4gTEFaQVIgRElQTCBQUkFWTklLCitQT1BURcWgSU4gTUlMQURJTktBCitQT1BURcWgSU4gU1RFVkFOCitQT1LEjEEgTEpJTEpBTkEKK1BPUsSMQSBSQU1JWgorUE9ST8WgSU4gRFJBR0lOSkEKK1BPUk/FoElOIEdFT1JHSUpFIERSIExFS0FSCitQT1JPQknEhiBNSUxBTgorUE9ST0JJxIYgTUlST1NMQVYKK1BPUk9CScSGIE1JUk9TTEFWCitQT1JPQknEhiBOSUpBWgorUE9ST0JJxIYgTklLT0xBCitQT1JPQknEhiBTTE9CT0RBTgorUE9ST1BBVCBCT8WgS08KK1BPUk9QQVRJxIYgWk9SQQorUE9TQVZBQyBWSkVLT1NMQVYKK1BPU0xBTiBJVkFOCitQT1NUT0xPVknEhiBTVEFOSU1JUgorUE9UIEZSQU5KQQorUE9UIEpPU0lQCitQT1QgTUlSS08gRElQTCBJTkcKK1BPVEFJIExBRElTTEFWCitQT1RIIExKVURFVklUCitQT1RJxIYgTUFSSUpFTEEKK1BPVEnEhiBSQURJVk9KRQorUE9UScSGIFJBRE9NSVIKK1BPVEtPTkpBSyBKT1ZBTgorUE9US09OSkFLIE1BUkEKK1BPVEtPTkpBSyBOSUtPTEEKK1BPVEtPTkpBSyBQRVRBUgorUE9US09OSkFLIFNPRklKQQorUE9US09OSkFLIFNUQU5LTworUE9US09OSkFLIFNURVZPCitQT1RLT05KQUsgVkxBRE8KK1BPVEtPWkFSQUMgSlVMSUpBTkEKK1BPVE5FUiBURVJFWklKQQorUE9UT0tPVknEhiBBQkRVTEFICitQT1RPS09WScSGIFNNQUpPCitQT1RQQVJJxIYgSkVMSUNBCitQT1RSQU4gTUnFoEEKK1BPVFJFQknEhiDEkFVSTworUE9UUkVCScSGIERPQlJJTEEKK1BPVFJFQknEhiBEUkFHSUNBCitQT1RSRUJJxIYgTUlMRQorUE9UUkVCScSGIE1JTEUKK1BPVFJFQknEhiBNSUxJQ0EKK1BPVFJFQknEhiBOSUtPTEEKK1BPVFJFQknEhiBSQURFCitQT1RSRUJJxIYgU0xBVktPCitQT1RSRUJJxIYgU09GSUpBCitQT1RVUknEhiBTVEVWQQorUE9VxIxLSSBSQURJU0xBVgorUE9WQSBNSVJPU0xBVkEKK1BPVkHFvUFOIEFORFJJSkEKK1BPVkHFvUFOIE1BUklKQQorUE9WQVpBSSBJxaBUVkFOCitQT1ZBWkFJIFRJQk9SCitQT1ZJxIYgTUlMQU4KK1BPVlLFvUFOIFNJTU8KK1BPWkRBTiDEkFVSTworUE9aREVSIFZFUk9OQQorUE9aREVSRUMgRlJBTkMKK1BPWk5BTk9WScSGIERFSkFOCitQT1pOQU5PVknEhiBKRUxFTkEKK1BPWk5BTk9WScSGIExKVUJPTUlSCitQT1pOQU5PVknEhiBNSUxBTgorUE9aTkFOT1ZJxIYgTUlMQU4KK1BPWk5BTk9WScSGIE1JTEVOS08KK1BPWk5BTk9WScSGIE9CUkFECitQT1pOQU5PVknEhiBSQURJVk9KRQorUE9aTknEhiDEkFVSTworUE9aTknEhiBKT1ZPCitQT1pOScSGIE1JUkEKK1BPWk5JxIYgTklLT0xBCitQT1pPSkVWScSGIEtMQVJBCitQT1pPSkVWScSGIFNURVZBTgorUFLEjEnEhiBKRUxJU0FWRVRBCitQUsSMScSGIFNUSkVQQU4KK1BSxIxJxIYgVElIT01JUgorUFLEjEnEhiBWTEFESU1JUgorUFLFoEEgTUlST1NMQVYgTVIKK1BSxaBBIFZFUkEKK1BSxIZJxIYgSVZBTgorUFLFvUFSIE5BREEKK1BSxb1FVkFMSlNLSSBOSUtPTEEKK1BSxb1OSUNBIE1JTEFOQQorUFLFvU5JQ0EgWkxBVEtPCitQUkHFoMSMRVZJxIYgQU5UT05JSkEKK1BSQcWgxIxFVknEhiBaT1JJQ0EKK1BSQcWgVEFMTyBNSUxVVElOCitQUkHFoFRBTE8gUEVUQVIKK1BSQcW9ScSGIEJJTEpBTkEKK1BSQcW9ScSGIEJSQU5LTworUFJBQ05FUiBKT1NJUAorUFJBQ05FUiBSVcW9SUNBCitQUkFMSUNBIExKVUJPTUlSCitQUkFMSUNBIE5FREVMSktPCitQUkFMSUNBIFNURVZBTgorUFJBTElDQSBTVEVWQU4KK1BSQU1FTktPIE1JUk9TTEFWCitQUkFNRU5LTyBORURFTEpLTworUFJBTUVOS08gUklTVE8KK1BSQU1FTktPIFNSRVRPCitQUkFOScSGIEtBVElDQQorUFJBTknEhiBNSVJLTworUFJBTknEhiBQRVRBUgorUFJBTknEhiBUT0ZJTAorUFJBTkpJxIYgWkxBVEtPCitQUkFOSktJxIYgTUFSS08KK1BSQU5LScSGIE1JTEUKK1BSQVZEQSBCT1JCQUxBCitQUkFWREEgTEFESVNMQVYKK1BSQVZEQSBMQUpPxaAKK1BSQVZJQ0EgRVZJQ0EKK1BSQVZJQ0EgTEpVQk9NSVIKK1BSREnEhiBORURFTEpLTworUFJFxIxBTklDQSBCT8W9TworUFJFxaBFUk4gSlVMSUpBTkEKK1BSRcWgT1ZBIE1JUkpBTkEKK1BSRUJFRyBEUkFHQU4KK1BSRUJJUsSMRVZJxIYgTkVWRU5BCitQUkVCSVJBxIxFVknEhiBLUklTVElOQQorUFJFQklSQcSMRVZJxIYgTEFaTworUFJFREEgQVVSRUwKK1BSRURJxIYgTUlIQUpMTworUFJFREnEhiBSQURPTUlSCitQUkVET0pFVknEhiDFvUVMSktPCitQUkVET0pFVknEhiBBTktBCitQUkVET0pFVknEhiBCT8W9TworUFJFRE9KRVZJxIYgQk/FvU8KK1BSRURPSkVWScSGIEJPUklTTEFWCitQUkVET0pFVknEhiBEQU5JQ0EKK1BSRURPSkVWScSGIERSQUdJQ0EKK1BSRURPSkVWScSGIExKVUJPTUlSCitQUkVET0pFVknEhiBMVUtBCitQUkVET0pFVknEhiBNSUxBTgorUFJFRE9KRVZJxIYgTUlMRQorUFJFRE9KRVZJxIYgTUlMSUNBCitQUkVET0pFVknEhiBNSUxPUkFECitQUkVET0pFVknEhiBNSUxPVkFOCitQUkVET0pFVknEhiBNSVJLTworUFJFRE9KRVZJxIYgTkVOQUQKK1BSRURPSkVWScSGIFBBVkxFCitQUkVET0pFVknEhiBQUkVEUkFHCitQUkVET0pFVknEhiBSQURPU0xBVkEKK1BSRURPSkVWScSGIFNJTUEKK1BSRURPSkVWScSGIFNJTU8KK1BSRURPSkVWScSGIFNUT0pBTgorUFJFRE9KRVZJxIYgVFJJVk8KK1BSRURPSkVWScSGIFpPUkEKK1BSRURPTEFDIERSQUdPTUlSCitQUkVET1ZJxIYgRFXFoEFOCitQUkVEUkHFoEtJIERSQUdPTEpVQgorUFJFRFJBR09WScSGIEJPUkEKK1BSRURSQUdPVknEhiBERVNJTUlSCitQUkVEUkFHT1ZJxIYgTUFSSUpBCitQUkVEUkFHT1ZJxIYgTk9WQUsKK1BSRURSQUdPVknEhiBWRVNFTEtPCitQUkVEUkFHT1ZJxIYgVkVTTkEKK1BSRURSQUdPVknEhiBaVkVaREFOIERJUEwgSU5HCitQUkVHVU4gxJBVUkEKK1BSRUdVTiBOSUtPTEEKK1BSRUdVTiBQRVRBUgorUFJFR1VOIFNURVZBTgorUFJFR1VOIFpPUkEKK1BSRUtBSkFDIMW9SVZPSklOCitQUkVLQUpBQyBTTEFWS08KK1BSRUtBSlNLSSBCUkFOS08KK1BSRUtBSlNLSSBNSVJKQU4KK1BSRUtJxIYgQU7EkEVMS0EKK1BSRUtPRFJBVkFDIE5FVkVOS0EKK1BSRUtPR0HEjEnEhiDEkE9SxJBFCitQUkVLT0dBxIxJxIYgREFOSUNBCitQUkVLT0dBxIxJxIYgSUxJSkEKK1BSRUtPR0HEjEnEhiBWRVJBCitQUkVLT1AgSk/FvUVGCitQUkVLT1AgUkFET0pLQQorUFJFS1BBTEpBSiBCSUJBCitQUkVLUEFMSkFKIEtPTEpBCitQUkVLUEFMSkFKIE1BUlRJTgorUFJFS1BBTEpBSiBQSkVURVIKK1BSRUwgTUFSSUpBCitQUkVMRVZJxIYgQk9SSVNMQVYKK1BSRUxFVknEhiBNQVJLTworUFJFTEVWScSGIE1JTEFOCitQUkVMRVZJxIYgTUlMT8WgCitQUkVMRVZJxIYgUkFET01JUgorUFJFTEVWScSGIFNFTktBCitQUkVMRVZJxIYgVkFTSUxJSkUKK1BSRUxJxIYgTUlMT0pLQQorUFJFTEnEhiBWQVNBCitQUkVMScSGIFpBR09SS0EKK1BSRU1JxIYgUEVUQVIKK1BSRU1JxIYgVkFTQQorUFJFTU9WScSGIERBTklDQQorUFJFTU9WScSGIFJBRE9NSVIKK1BSRU1PVknEhiBUT01JU0xBVgorUFJFTVXFoCBGUkFOSkEKK1BSRU1Vxb1JxIYgREFNSVIKK1BSRU1Vxb1JxIYgTUFUTworUFJFTVXFvUnEhiBWTEFESU1JUgorUFJFTkRPVknEhiBQQUxKVcWgCitQUkVOVE9WScSGIERSQUdBTgorUFJFTlRPVknEhiBEUkFHQU4KK1BSRU5UT1ZJxIYgTUlMQU4KK1BSRU5UT1ZJxIYgUEFWTEUKK1BSRU5UT1ZJxIYgUEVUQVIKK1BSRU5UT1ZJxIYgUklTVE8KK1BSRU5UT1ZJxIYgVkFTTworUFJFUkFEIERPQlJJTEEKK1BSRVJBRE9WIERJTktBCitQUkVSQURPViBEUkFHSUNBCitQUkVSQURPViBEVUJSQVZLQQorUFJFUkFET1YgR0FWUkEKK1BSRVJBRE9WIExBWkFSCitQUkVSQURPViBMRVBPU0FWQQorUFJFUkFET1YgTUFSSUpBCitQUkVSQURPViBNSVJKQU5BCitQUkVSQURPViBNSVJKQU5BCitQUkVSQURPViBORURFTEpLTworUFJFUkFET1YgUEVUQVIKK1BSRVJBRE9WIFNBVkEKK1BSRVJBRE9WIFZFTElaQVIKK1BSRVJBRE9WIFZMQURJTUlSCitQUkVSQURPVknEhiBBTkEKK1BSRVJBRE9WScSGIEJPSkEKK1BSRVJBRE9WScSGIE1JTEVOS08KK1BSRVJBRE9WScSGIE1MQURFTgorUFJFUkFET1ZJxIYgTkVERUxKS08KK1BSRVJBRE9WScSGIE5FREVMSktPCitQUkVTRcSMS09WScSGIFZFU05BCitQUkVUTUVSU0tJIEpPVkFOCitQUkVUTUVSU0tJIFNURVZBTgorUFJFVkVERU4gTEVPCitQUkdPTUVMSkEgTklLT0xBCitQUknFoEnEhiBLQVRJQ0EKK1BSScWgScSGIExBWkFSCitQUknFoEnEhiBMSURJSkEKK1BSScWgScSGIE1JTE/FoAorUFJJxaBJxIYgTUlUQQorUFJJxaBJxIYgTkFUQUxJSkEKK1BSScWgScSGIFNURVZBTgorUFJJQkFLT1ZJxIYgS1NFTklKQQorUFJJQkFLT1ZJxIYgTUlMQU5BCitQUklCQUtPVknEhiBOSUtPTEEKK1BSSUJBTk9WScSGIFRPTUlTTEFWCitQUklCScSMRVZJxIYgQVJTRU5JSkUKK1BSSUJJxIxFVknEhiBTQVZLQQorUFJJQknEjEVWScSGIFNWRVRPWkFSIERSIElORworUFJJQknFoCBTVEVWQU4KK1BSSUJJxaBFViBNSVJKQU5BCitQUklCScWgScSGIExKVUJPCitQUklCScWgScSGIE1JUk9TTEFWCitQUklCScWgScSGIFJJU1RJTkpBCitQUklCScWgScSGIFNBVk8KK1BSSUJJxIYgQVJTRU5JSkUKK1BSSUJJxIYgREFOSUxPCitQUklCScSGIERJTUlUUklKRQorUFJJQknEhiBNQVJJSkEKK1BSSUJJxIYgTUlMT0pFCitQUklCScSGIFNBVkEKK1BSSUJJxIZFVknEhiBKT1ZPCitQUklCScSGRVZJxIYgT0xHQQorUFJJQknEhkVWScSGIFRBVEpBTkEKK1BSSUJJTE9WScSGIEJSQU5LSUNBCitQUklDQSDFvUlWS08KK1BSSUNBIEFMRUtTQU5EQVIKK1BSSUNBIEJPUklWT0oKK1BSSUNBIEJPU0lMSktBCitQUklDQSBEQU5JTE8KK1BSSUNBIERVxaBBTgorUFJJQ0EgSVNPCitQUklDQSBKT1ZBTktBCitQUklDQSBNQVJLTworUFJJQ0EgTUlMRQorUFJJQ0EgTUxBREVOCitQUklDQSBQRVRBUgorUFJJQ0EgU09GSUpBCitQUklKRVZJxIYgxJBPUsSQRQorUFJJSkVWScSGIE1JTEFOCitQUklKScSGIE1JTEFOCitQUklKScSGIE1JUlNBRAorUFJJSk9WScSGIEJPR0RBTgorUFJJSk9WScSGIERSQUdBTgorUFJJSk9WScSGIFNUQU5JxaBBCitQUklLRUwgUEVUQVIKK1BSSUtJREFOT1ZJxIwgTEFTTE8KK1BSSUtJREFOT1ZJxIYgQU5BCitQUklMSkVWQSBCT1JJU0xBVgorUFJJTU9SQUMgTklLT0xBCitQUklNT1ZJxIYgQkxBR09KRQorUFJJTU9WScSGIERFSkFOCitQUklNT1ZJxIYgRE9CUklDQQorUFJJTU9WScSGIEdPUkRBTkEKK1BSSU1PVknEhiBLT1ZJTktBCitQUklNT1ZJxIYgTUlMQU4KK1BSSU1PVknEhiBTVE9KQU4KK1BSSU5DSVAgSk9aTworUFJJU0VMQUMgQk9SSVMKK1BSSVNFTEFDIEJSQU5LTworUFJJU0VMQUMgWkRSQVZLTworUFJJU0xBTiBaVk9OSU1JUgorUFJJU1RBSSBMQURJU0xBVgorUFJJVlJPRFNLSSBCT1JJUyBEUgorUFJJVlJPRFNLSSBLT05TVEFOVElOCitQUktVxaBJxIYgQU5JQ0EKK1BSS1XFoEnEhiBTTEFWS08KK1BSTEVWScSGIFNUT0pBTgorUFJMSU5BQyBWRUxKS08KK1BSTEpFVknEhiBOQURBCitQUk/EjElLRVZJxIYgQU5LQQorUFJPxaBJxIYgQk9HREFOCitQUk/FoEnEhiBKT1ZBTgorUFJPxaBJxIYgTkXEkE8KK1BST8WgScSGIE5FxJBPCitQUk/FoEnEhiBORUJPSsWgQQorUFJPxaBJxIYgTklLT0xBCitQUk/FoEnEhiBQRVRBUgorUFJPxaBJxIYgU01JTEpBCitQUk9CT0rEjEVWScSGIEFOVFVOCitQUk9CT0rEjEVWScSGIEVSTkVTVAorUFJPQk9KxIxFVknEhiBNQVJJSkEKK1BST0JPSsSMScSGIEJSQU5JU0xBVkEKK1BST0RBTkEgS1JTVEFOCitQUk9EQU5JxIYgQk9SSVNMQVYKK1BST0RBTknEhiBNSUxBTgorUFJPREFOT1YgQU7EkEVMS0EKK1BST0RBTk9WIEJMQUdPSkEKK1BST0RBTk9WIEJPUkEKK1BST0RBTk9WIERBTklMTworUFJPREFOT1YgRFJBR09MSlVCCitQUk9EQU5PViBEUkFHT0xKVUIKK1BST0RBTk9WIERSQUdPU0xBVgorUFJPREFOT1YgRFXFoEFOCitQUk9EQU5PViBHT1JJQ0EKK1BST0RBTk9WIElMSUpBCitQUk9EQU5PViBKT1ZBTgorUFJPREFOT1YgSlVTVElOQQorUFJPREFOT1YgTUlMQU4KK1BST0RBTk9WIE1JTEVOQQorUFJPREFOT1YgTUlMRU5LTworUFJPREFOT1YgTUlPRFJBRworUFJPREFOT1YgTUxBREVOCitQUk9EQU5PViBORURFTEpLTworUFJPREFOT1YgUkFET1NMQVYKK1BST0RBTk9WIFNBVkEKK1BST0RBTk9WIFNMQVZLQSBEUgorUFJPREFOT1YgWlVaQU5BCitQUk9EQU5PVknEhiDFoFBJUk8KK1BST0RBTk9WScSGIMW9QVJLTworUFJPREFOT1ZJxIYgxb1FTEpLTworUFJPREFOT1ZJxIYgxb1JVkFOCitQUk9EQU5PVknEhiDFvUlWS0EKK1BST0RBTk9WScSGIMW9SVZLTworUFJPREFOT1ZJxIYgxJBPS0EKK1BST0RBTk9WScSGIMSQT1LEkEUKK1BST0RBTk9WScSGIMSQT1LEkEUKK1BST0RBTk9WScSGIMSQT1LEkEUKK1BST0RBTk9WScSGIMSQVVJPCitQUk9EQU5PVknEhiBBTEVLU0FOREFSCitQUk9EQU5PVknEhiBBTsSQRUxLTworUFJPREFOT1ZJxIYgQklMSkFOQQorUFJPREFOT1ZJxIYgQk9SSVNMQVYKK1BST0RBTk9WScSGIEJPU0lMSktBCitQUk9EQU5PVknEhiBCUkFOSU1JUgorUFJPREFOT1ZJxIYgREFNSkFOCitQUk9EQU5PVknEhiBEQU5JQ0EKK1BST0RBTk9WScSGIERBTklDQQorUFJPREFOT1ZJxIYgREFOSUxLQQorUFJPREFOT1ZJxIYgRFJBR0FOCitQUk9EQU5PVknEhiBEUkFHQU4KK1BST0RBTk9WScSGIERSQUdBTgorUFJPREFOT1ZJxIYgRFXFoEFOS0EKK1BST0RBTk9WScSGIERVxaBBTgorUFJPREFOT1ZJxIYgRFXFoEFOCitQUk9EQU5PVknEhiBEVcWgSUNBCitQUk9EQU5PVknEhiBHQVZSQQorUFJPREFOT1ZJxIYgSk9WQU5LQQorUFJPREFOT1ZJxIYgSk9WQU4KK1BST0RBTk9WScSGIEpPVkFOCitQUk9EQU5PVknEhiBKT1ZBTgorUFJPREFOT1ZJxIYgSk9WQU4KK1BST0RBTk9WScSGIEpPVkFOCitQUk9EQU5PVknEhiBKT1ZBTgorUFJPREFOT1ZJxIYgS09TVEEKK1BST0RBTk9WScSGIEtPU1RBCitQUk9EQU5PVknEhiBMQVpBUiBESVBMIElORworUFJPREFOT1ZJxIYgTEpVQklDQQorUFJPREFOT1ZJxIYgTEpVQklOS0EKK1BST0RBTk9WScSGIExKVUJPSkEKK1BST0RBTk9WScSGIExKVUJPTUlSCitQUk9EQU5PVknEhiBNQVJUQQorUFJPREFOT1ZJxIYgTUlMQU4KK1BST0RBTk9WScSGIE1JTEFOCitQUk9EQU5PVknEhiBNSUxBTgorUFJPREFOT1ZJxIYgTUlMQU4KK1BST0RBTk9WScSGIE1JTElDQQorUFJPREFOT1ZJxIYgTUlMSktPCitQUk9EQU5PVknEhiBNSUxPUkFECitQUk9EQU5PVknEhiBNSUxPVkFOCitQUk9EQU5PVknEhiBNSU9EUkFHCitQUk9EQU5PVknEhiBNSU9EUkFHCitQUk9EQU5PVknEhiBNSVJBCitQUk9EQU5PVknEhiBNSVJKQU5BCitQUk9EQU5PVknEhiBNSVJPU0xBVgorUFJPREFOT1ZJxIYgTUxBREVOCitQUk9EQU5PVknEhiBOSUtPTEEKK1BST0RBTk9WScSGLVBBTkpLT1ZJxIYgxJBVUsSQSU5LQQorUFJPREFOT1ZJxIYgUEFWQQorUFJPREFOT1ZJxIYgUEFWTEUKK1BST0RBTk9WScSGIFBFVEFSCitQUk9EQU5PVknEhiBQRVRBUgorUFJPREFOT1ZJxIYgUEVUQVIKK1BST0RBTk9WScSGIFJBRElTQVYKK1BST0RBTk9WScSGIFJBRE9TTEFWCitQUk9EQU5PVknEhiBSQVRLTworUFJPREFOT1ZJxIYgUk9ET0xKVUIKK1BST0RBTk9WScSGIFNBVkEKK1BST0RBTk9WScSGIFNJTknFoEEKK1BST0RBTk9WScSGIFNJTknFoEEKK1BST0RBTk9WScSGIFNMQVZLTworUFJPREFOT1ZJxIYgU0xPQk9EQU4KK1BST0RBTk9WScSGIFNMT0JPREFOCitQUk9EQU5PVknEhiBTVEFOQQorUFJPREFOT1ZJxIYgVEFOQVNJSkUKK1BST0RBTk9WScSGIFZBU0EKK1BST0RBTk9WScSGIFZBU0EKK1BST0RBTk9WScSGIFZFTElOS0EKK1BST0RBTk9WScSGIFZFTEpLTworUFJPREFOT1ZJxIYgVkVSQSBEUgorUFJPREFOT1ZJxIYgVklET1NBVkEKK1BST0RBTk9WScSGIFZMQURJTUlSCitQUk9EQU5PVknEhiBaQUdPUktBCitQUk9EQU5PVknEhiBaQUdPUktBCitQUk9EQU5PVknEhiBaT1JBTgorUFJPREnEhiBEQU5JQ0EKK1BST0RJxIYgVklEQQorUFJPREnEhiBWSVRPTUlSCitQUk9EScSGIFZJVE9NSVIKK1BST0ZPTlRBUk9WScSGIFJPWkFMSUpBCitQUk9IQVNLQSBNSUxFTktPCitQUk9IQVNLQSBOSUtPTEEKK1BST0hBU0tBIFNURVZBTgorUFJPSEFTS0EgVkVSQQorUFJPSktPVlNLSSBERVNQQQorUFJPS0XFoCBCRUxBCitQUk9LRcWgIExBRElTTEFWCitQUk9LScSGIMSQT1LEkEUKK1BST0tJxIYgR09SQU4KK1BST0tJxIYgTUlMQU4KK1BST0tJxIYgTUlSQQorUFJPS0nEhiBSVcW9SUNBCitQUk9LScSGIFNURVZBTgorUFJPS0nEhiBTVEVWQU4KK1BST0tJxIYgWk9SQU4KK1BST0tJxIYgWk9SQU4KK1BST0tJTiBBTsSQRUxLQQorUFJPS0lOIEJSQU5JU0xBVgorUFJPS0lOIEtTRU5JSkEKK1BST0tJTiBMQVpBUgorUFJPS0lOIE1BUktPCitQUk9LSU4gTUlSQQorUFJPS0lOIFJBRElWT0oKK1BST0tJTiBSVcW9SUNBCitQUk9LSU4gU1RFVkFOCitQUk9LSU4gU1RFVkFOCitQUk9LSU4gWkxBVElOS0EKK1BST0tJTiBaT1JBCitQUk9LT1BFQyBEVcWgQU4KK1BST0tPUEVDIEhFTEVOQQorUFJPS09QRUMgSkVMSVNBVkVUQQorUFJPS09QRUMgU1RFVkFOCitQUk9LT1BJxIYgxIxFRE8KK1BST0tPUEnEhiBNSUhBSklMTworUFJPS09QScSGIFNUT0pBTgorUFJPTEUgQ1ZJSk8KK1BST0xFIEpBR09EQQorUFJPTEUgTUVMQU5JSkEKK1BST0xFIE1JTEVOS08KK1BST0xFIE1JTElKQU5BCitQUk9MRSBNSUxPxaAKK1BST0xFIE1JUktPCitQUk9MRSBNSVJPU0xBVgorUFJPTEUgTUlUQVIKK1BST0xFIE1JVEFSCitQUk9MRSBNTEFERU4KK1BST0xFIFJBRE9WQU4KK1BST0xFIFJJU1RBCitQUk9MRSBTVEFOSVNMQVYKK1BST0xFIFNUQU5LTworUFJPTEUgVUdMSkXFoEEKK1BST0xFIFZFTEpLTworUFJPTEUgVkVST05BCitQUk9MScSGIERSQUdJQ0EKK1BST0xJxIYgTUlMT1JBRAorUFJPTEnEhiBQRVJPCitQUk9MScSGIFZJRAorUFJPU0VOSUNBIE1BUktPCitQUk9TRU5JQ0EgVklET1NBVkEKK1BST1NFTklLIERVQlJBVktPCitQUk9TRU5JSyBaVk9OSU1JUgorUFJPU1RSQU4gxIxFRE9NSVIKK1BST1NUUkFOIFBFVEFSCitQUk9UScSGIMW9QVJLTworUFJPVEnEhiDEkE9LQQorUFJPVEnEhiDEkE9SxJBFCitQUk9UScSGIEJPU0lMSktBCitQUk9UScSGIEJSQU5JU0xBVgorUFJPVEnEhiBEUkFHQU4KK1BST1RJxIYgRFXFoEFOCitQUk9UScSGIElMSUpBIERJUEwgSU5HCitQUk9UScSGIEpPU0lNCitQUk9UScSGIE1BUklKQQorUFJPVEnEhiBNSUxFTkEgRFIgU1RPTUFUT0xPRworUFJPVEnEhiBNSUxLQQorUFJPVEnEhi1NSUxPxaBFVknEhiBTSU1LQSBQUk9GCitQUk9UScSGIE1JTE/FoAorUFJPVEnEhiBNSUxPUkFECitQUk9UScSGIE1JUkpBTkEKK1BST1RJxIYgTUlUQVIKK1BST1RJxIYgTkFEQQorUFJPVEnEhiBPQlJBRAorUFJPVEnEhiBQUkVEUkFHCitQUk9UScSGIFBVTknFoEEKK1BST1RJxIYgUkFET01JUgorUFJPVEnEhiBTQU1VSUxPCitQUk9UScSGIFNNSUxKQQorUFJPVEnEhiBWSURBCitQUk9UScSGIFZJVE9NSVIKK1BST1bEjEkgQUdBRklKQQorUFJPVsSMSSBFVkdFTklKRSBESVBMIElORworUFJPVsSMSSBKT1ZHRU4KK1BST1bEjEkgVkVSQQorUFJQQSBBTsSQQQorUFJQQSBHT1NQQQorUFJQQSBMQVpBUgorUFJQQSBNQVJHSVRBCitQUlBBIE1JTE9WQU4KK1BSUEEgVkVMSktPCitQUlBBIFpBR09SS0EKK1BSUEnEhiBBTEVLU0FOREFSCitQUlBJxIYgQUxFS1NBTkRBUgorUFJQScSGIEFMRUtTQU5EQVIKK1BSUEnEhiBNQVJJSkFOQQorUFJQScSGIE5JS09MQQorUFJQScSGIFJBRE9WQU4KK1BSU0tBTE8gQkxBR08KK1BSU1RPSkVWScSGIEdPUkFOCitQUlNUT0pFVknEhiBWT0pJU0xBVgorUFJUSU5BIEJSQU5LTworUFJVxb1BUkVWIFRBVEpBTkEKK1BSVURBTi3EkFVSScWgScSGIFJBRE9KS0EgRFIKK1BSVUdJxIYgTEpVQk9NSVIKK1BSVUdJxIYgVk9KSVNMQVYKK1BSVUdJTknEhiBMSlVCSUNBCitQUlVOScSGIEpPVkFOCitQUlVTSU5BIERSQUdPCitQUlVTSU5BIElMSUpBCitQUlVTSU5BIE1BUkdJVEEKK1BSVVNJTkEgTUlMQU4KK1BSVVNJTkEgVkxBVEtPCitQUlZBTk9WIEJSQU5JU0xBVgorUFJWQU5PViBEQVJJTktBCitQUlZBTk9WIERJVk5BCitQUlZBTk9WIE1JTE/FoAorUFJWQU5PViBWTEFESU1JUgorUFJWQU5PVknEhiBNSUxFVkEKK1BTT0RBUk9WIEJSQU5LTworUFNPRE9ST1YgTUFKQQorUFNPRE9ST1YgU1BBU09KRQorUFNPRE9ST1YgVEFNQVJBCitQVEnEjEFSIMSQVVJBCitQVEnEjEFSIE1JTEFOCitQVcWgQUMgQlJBTktPCitQVcWgQUMgSkVMRU5LTworUFXFoEFDIE1JTEVOQQorUFXFoEFDIE1JTEVOQQorUFXFoEFSQSDEkE9SxJBFCitQVcWgQVJBIEJPxb1JREFSCitQVcWgQVJBIERVxaBBTgorUFXFoEFSQSBKRUxFTkEKK1BVxaBBUkEgTUlMSVZPSgorUFXFoEFSQSBNSVJLTworUFXFoEFSQSBNSVJPU0xBVgorUFXFoEFSQSBSQURNSUxBCitQVcWgRUxKScSGIEpFTEVOQQorUFXFoEVOSkFLIE1BUklKQQorUFXFoEnEhiBEUkFHT0xKVUIKK1BVxaBJxIYgRFXFoEFOCitQVcWgScSGIEVNSUwKK1BVxaBJxIYgR09SQU4KK1BVxaBJxIYgSk9WQU4KK1BVxaBJxIYgTEpVQklOS08KK1BVxaBJxIYgTUlMRU5BCitQVcWgScSGIE1JTElDQQorUFXFoEnEhiBNSUxJVk9KCitQVcWgScSGIE1JTE/FoAorUFXFoEnEhiBOSUtPTEEKK1BVxaBJxIYgT0JSQUQKK1BVxaBJxIYgUEFWTEUKK1BVxaBJxIYgU0FWQQorUFXFoEnEhiBTQVZBCitQVcWgScSGIFNPRklKQQorUFXFoEnEhiBTVEVWQU4KK1BVxaBJxIYgVkVSSUNBCitQVcWgScSGIFZFUklDQQorUFXFoEnEhiBaQUdPUktBCitQVcWgSUJSSyBDVkVUS08KK1BVxaBJQlJLIFZBU0EKK1BVxaBJTiBNSVJKQU5BCitQVcWgSU4gTUlST1NMQVYKK1BVxaBJTiBNSVJPU0xBVgorUFXFoElOIFZMQURBCitQVcWgS0HFoCDEkFVSQQorUFXFoEtBxaAgxJBVUkEKK1BVxaBLQcWgIENJTEEKK1BVxaBLQcWgIEpPxb1FRgorUFXFoEtBxaAgSk9BS0lNCitQVcWgS0HFoCBKVUxJSkFOCitQVcWgS0HFoCBNSUhBSkxPCitQVcWgS0HFoCBNSUxFTkEKK1BVxaBLQcWgIE1JUk9TTEFWCitQVcWgS0HFoCBPTEVOQQorUFXFoEtBxaAgT05VRlJJSkUKK1BVxaBLQcWgIFBFVEFSCitQVcWgS0HFoCBST1pBTElKQQorUFXFoEtBxaAgU1RFVkFOCitQVcWgS0HFoCBWRVJBCitQVcWgS0HFoCBWTEFESU1JUgorUFXFoEtBxaAgVkxBRElNSVIKK1BVxaBLQVIgSk9WSUNBCitQVcWgS0FSIFNURVZBCitQVcWgS0FSIFZPSklTTEFWCitQVcWgS0FSRVZJxIYgSk9WQU5LQQorUFXFoEtBUkVWScSGIFNWRVRJU0xBVgorUFXFoEtBUknEhiBBTkEKK1BVxaBLQVJJxIYgSVZBTgorUFXFoEtBUknEhiBKVVJFCitQVcWgS0FSScSGIE1BUklKQQorUFXFoEtBUk9WIERBTklMS0EKK1BVxaBLQVJPViBEQU5JTEtBCitQVcWgS0FST1YgTUlMQU4KK1BVxaBLQVJPViBaT1JBCitQVcWgS09WScSGIEFOxJBFTEtPCitQVcWgVFJJxIYgTUlMQU4KK1BVxaBUUknEhiBTUEFTT0pFCitQVcW9LUVWScSGIE9MR0EKK1BVxb1JxIYgVkVSQQorUFXEkEEgTEVQT1NBVkEKK1BVQcSMIFNWRVRJU0xBVgorUFVBxIwgU1ZFVE9aQVIKK1BVQcSMQSBWRUxKS08gRFIKK1BVQ0FSIMSQVVJPCitQVUNBUiBEVcWgQU4KK1BVQ0FSIE1JTElDQQorUFVDQVIgU1RFVk8KK1BVQ0FSIFZBU0lMSUpFCitQVUNBUiBWQVNPCitQVUNBUiBaRFJBVktPCitQVUNBUkVWScSGIMW9SVZLTworUFVDQVJFVknEhiBCT1NJTEpLQQorUFVDQVJFVknEhiBHT0pLTworUFVDQVJFVknEhiBISUxEQQorUFVDQVJFVknEhiBKRUxBCitQVUNBUkVWScSGIE5PVkFLCitQVUNBUkVWScSGIFNPRklKQQorUFVDT1ZTS0kgxJBVUk8KK1BVREFSIERBTklMTworUFVEQVIgR09KS08KK1BVREFSIFJBSktPCitQVURBUiBSQU5LTworUFVEQVIgUkFOS08KK1BVREFSIFJBTktPCitQVURBUiBSQVRLTworUFVEQVIgU0xPQk9EQU4KK1BVREFSIFNURVZBTgorUFVEQVIgWkRSQVZLTworUFVEScSGIElMSUpBCitQVURJxIYgSk9aQQorUFVEUkxKQSBCUkFOS08KK1BVR0FSIEFOxJBFTEtBCitQVUhBxIxBIFNURVZPCitQVUhBTEFLIEJFUlRBCitQVUhBTEFLIExBU0xPIERSIExFS0FSCitQVUhBTEFLIFNURVZBTgorUFVIQU4gT1NLQVIKK1BVSEFOScSGIFRFUkVaQQorUFVIQVIgRFXFoEFOCitQVUhBUiBGUkFOQworUFVJxIYgxJBPUsSQRQorUFVJxIYgUkFET1NMQVYKK1BVSkEgRkxPUklOCitQVUpJxIYgTUlMSVZPSgorUFVKScSGIE1JTE/FoAorUFVKScSGIE5BREXFvURBCitQVUpJxIYgUEVSU0lEQSBESVBMIElORworUFVKScSGIFNBVkEKK1BVSknEhiBTVEVWQU4KK1BVSklOIExBWkEKK1BVSklOIFJBREUKK1BVSklOIFJBRElWT0pFCitQVUpJTiBTVEVWQU4KK1BVSklOIFZMQVNUQSBEUgorUFVMQUkgTEFKT8WgCitQVUxFVEnEhiBaRFJBVktPCitQVUxJxIYgQU5UT05JSkEKK1BVTEnEhiBPTEdBCitQVUxJxIYgUkFET0pLQQorUFVMSVNBSyBGUkFOSkEKK1BVTElTQUsgSUxPTktBCitQVUxJU0FLIEpPVkFOCitQVUxJU0FLIE1JSEFKTE8KK1BVTElTQUsgTkFERcW9REEKK1BVTElTQUsgTklLT0xBCitQVUxKSVpFVknEhiBBTlRVTiBESVBMIElORworUFVORE9WIEFORFJFSgorUFVOR1VMIEpPVklDQQorUFVOR1VMIE1JUkEKK1BVUEFWQUMgxJBPUsSQRQorUFVQQVZBQyBCUkFOS08KK1BVUEFWQUMgQlJBTktPCitQVVBBVkFDIEZSQU5KQQorUFVQQVZBQyBNSUxBTgorUFVQQVZBQyBQRVRBUgorUFVQQVZBQyBTVEFLQQorUFVQQVZBQyBTVEVWQU4KK1BVUEFWQUMgU1RPSkFOCitQVVBBVkFDIFRPRE9SCitQVVBBVkFDIFZFU05BCitQVVBJxIYgUkFETUlMQQorUFVQSU4gxb1JVkFOCitQVVBPVkFDIERNSVRBUgorUFVQT1ZBQyBEVcWgQU4KK1BVUE9WQUMgTFVLQQorUFVQT1ZBQyBNSUxPxaAKK1BVUE9WQUMgTUlMT8WgCitQVVBPVkFDIFNWRVRMQU5BCitQVVBPVkFDIFRPRE9SCitQVVBPVknEhiBMSlVCT01JUgorUFVSQcSGIMW9SVZLTworUFVSQcSGIEJSQU5LTworUFVSQcSGIEVSxb1FQkVUCitQVVJBxIYgSk9WQU4KK1BVUkHEhiBMQVpBUgorUFVSQcSGIE1BR0RBCitQVVJBxIYgTUlMQURJTgorUFVSQcSGIE1JTEFESU4KK1BVUkHEhiBNSUxFTktPCitQVVJBxIYgTUlST1NMQVYKK1BVUkHEhiBOQURBCitQVVJBxIYgT0xHQQorUFVSScWgScSGIMSMRURPCitQVVJJxaBJxIYgU1ZFVExBTkEKK1BVUknEhiBCTEFOS0EKK1BVUknEhiBCT8W9TworUFVSScSGIERJSkFOQQorUFVSScSGIERSQUdBTgorUFVSScSGIERSQUdJQ0EKK1BVUknEhiBNSUxBTgorUFVSScSGIFNMT0JPREFOCitQVVJJxIYgWk9SQQorUFVSS09WIFZFU0VMSU4KK1BVUktPVknEhiBMSklMSkFOQQorUFVSVEnEhiBOSUtPTEEKK1BVU1RBSSBJTVJFCitQVVNUQUkgSkVORQorUFVTVEFKScSGIEJSQU5LQQorUFVTVEFKScSGIFJBREEKK1BVU1RBSknEhiBWVUtJQ0EKK1BVU1RJIEpPU0lQCitQVVRBUknEhiBKT1ZBTgorUFVUScSGIMW9SVZBTkEKK1BVVEnEhiBLQVRJQ0EKK1BVVEnEhiBMSVZJSkEKK1BVVEnEhiBTTE9CT0RBTgorUFVUScSGIFNWRVRJU0xBVgorUFVUScSGIFpPUkFOCitQVVROSUsgQUxFS1NBTkRBUgorUFVUTklLIEFMRUtTQU5EQVIKK1BVVE5JSyBCT1JJU0xBVgorUFVUTklLIEJSQU5LTworUFVUTklLIERBTklMS0EKK1BVVE5JSyBESU1JVFJJSkUKK1BVVE5JSyBHRVJUUlVEQQorUFVUTklLIEdPUkFOCitQVVROSUsgSVZBTgorUFVUTklLIEpFTEVOQQorUFVUTklLIEtBVElDQQorUFVUTklLIEtTRU5JSkEKK1BVVE5JSyBMSlVCSUNBCitQVVROSUsgTUlMQU4KK1BVVE5JSyBNSUxBTgorUFVUTklLIE1JTEVOQQorUFVUTklLIE1JTE9SQUQKK1BVVE5JSyBORVZFTktBCitQVVROSUsgUEFKTworUFVUTklLIFBFVEFSCitQVVROSUsgUEVUQVIKK1BVVE5JSyBSQURFCitQVVROSUsgUkFET01JUgorUFVUTklLIFJBRE9WQU4KK1BVVE5JSyBTTE9CT0RBTiBESVBMIElORworUFVUTklLIFNORcW9QU5BCitQVVROSUsgU1RFRkFOSUpBCitQVVROSUsgU1RFVkFOCitQVVROSUsgU1RFVkFOCitQVVROSUstVVJBxIwgUkVOQVRBCitQVVROSUsgVkxBRElNSVIgRFIKK1BVVE5JSyBWTEFESU1JUgorUFVUTklLIFpPUkFOCitQVVROSUtPVknEhiBJVkFOCitQVVROSUtPVknEhiBNSUxFTkEKK1BVVE5JS09WScSGIFBJUk/FoEtBCitQVVZBxIxBIExKSUxKQU5BCitQVVZBTEnEhiBLQVRJQ0EKK1BVWknEhiBCSUxKQU5BCitQVVpJxIYgQk/FoEtPCitQVVpJxIYgQk9TQQorUFVaScSGIERSQUdPTUlSCitQVVpJxIYgU0FWQQorUFVaScSGIFZFTEpLTworUFVaSUdBxIZBIEtSSVNUSU5BCitSQcSMScSGIEFSQU7EkEVMCitSQcSMScSGIExFUE9TQVZBCitSQcSMScSGIE1JTE/FoAorUkHEjEnEhiBNSVJPU0xBVgorUkHEjEnEhiBOQURBCitSQcSMScSGIFJBTktPCitSQcSMScSGIFNBxaBBCitSQcSMScSGLVNBVklOIFpPUklDQQorUkHEjEnEhiBTVE9KQU4KK1JBxIxJxIYgVE9NSVNMQVYKK1JBxIxJxIYgVkVSQQorUkHEjEnEhiBaRFJBVktPCitSQcWgxIxBTklOIEJSQU5JU0xBVgorUkHFoMSMQU5JTiBCUkFOSVNMQVYKK1JBxaDEjEnEhiBORUhSVQorUkHFoEEgRE9KTkEKK1JBxaBBSlNLSSBEVcWgQU4KK1JBxaBBSlNLSSBWRVJPU0xBVgorUkHFoEVUQSBEQU5FCitSQcWgRVRBIE1JT0RSQUcKK1JBxaBFVEEgTUlSSkFOQQorUkHFoEVUQSBOSUtPTEEKK1JBxaBFVEEgUEVUQVIKK1JBxaBFVEEgU1RFVkEKK1JBxaBFVEEgVE9NQQorUkHFoEVUQSBaRFJBVktPCitSQcWgRVZJxIYgxb1BUktPCitSQcWgRVZJxIYgxb1FTEpLTworUkHFoEVWScSGIE1JT0RSQUcKK1JBxaBJxIYgQk/FvUlEQVIgRFIKK1JBxaBJxIYgRElNSVRSSUpFCitSQcWgScSGIERVxaBJQ0EKK1JBxaBJxIYgSUJPSktBCitSQcWgScSGIElHTkpBVAorUkHFoEnEhiBJTElKQQorUkHFoEnEhi1LT1DEjE9LIE5BREEKK1JBxaBJxIYgTEFaQVIKK1JBxaBJxIYgTUFOREEKK1JBxaBJxIYgTUFSSUpBCitSQcWgScSGIE5BREXFvURBCitSQcWgScSGIE5JS09MQQorUkHFoEnEhiBQQVVOCitSQcWgScSGIFBFVEFSIE1SIElORworUkHFoEnEhiBTTUlMSkEKK1JBxaBJxIYgU1RPSkFOCitSQcWgScSGIFVST8WgCitSQcWgScSGIFZFU05BCitSQcWgSURJIERPUk9URUpBCitSQcWgSURJIFNMT0JPREFOS0EKK1JBxaBJSk9WQU4gUkFETUlMQQorUkHFoElUSSBCQUpSQU0KK1JBxaBJVEkgSEFWQQorUkHFoElUSSBJTUVSCitSQcWgS09WIEJSQU5LTworUkHFoEtPViBCUkFOS08KK1JBxaBLT1YgREFOSUNBCitSQcWgS09WIE1BUklKQQorUkHFoEtPViBTTUlMSktBCitSQcWgS09WScSGIMSQT1LEkEUKK1JBxaBLT1ZJxIYgxJBPUsSQRQorUkHFoEtPVknEhiBEQVJJTktBCitSQcWgS09WScSGIERSQUdBTgorUkHFoEtPVknEhiBEUkFHT0xKVUIKK1JBxaBLT1ZJxIYgRFJBR09TTEFWQQorUkHFoEtPVknEhiBHT1JEQU5BCitSQcWgS09WScSGIE1JTEFOCitSQcWgS09WScSGIE1JTElDQQorUkHFoEtPVknEhiBNSU9EUkFHCitSQcWgS09WScSGIE1JUkpBTkEKK1JBxaBLT1ZJxIYgTUlSSkFOQQorUkHFoEtPVknEhiBNTEFERU4KK1JBxaBLT1ZJxIYgUkFET1NBVgorUkHFoEtPVknEhiBTTE9CT0RBTgorUkHFoEtPVknEhiBTUkXEhktPCitSQcWgS09WScSGIFNURVZBTgorUkHFoEtPVknEhiBWRVJBCitSQcWgS09WScSGIFZMQURJTUlSCitSQcWgT1ZJxIYgUkFET1ZBTgorUkHFoE9WScSGIFZPSklTTEFWCitSQcW9TkFUT1ZJxIYgUkFESVZPSgorUkHEkEVMScSGIEdPUkRBTkEKK1JBxJBFTEnEhiBNSUxBTgorUkHEkEVOT1ZJxIYgxb1FTEpLTworUkHEkEVOT1ZJxIYgxb1FTEpLTworUkHEkEVOT1ZJxIYgQk/FvU8KK1JBxJBFTk9WScSGIEJPUklTCitSQcSQRU5PVknEhiBCT1NBCitSQcSQRU5PVknEhiBCUkFOS08KK1JBxJBFTk9WScSGIERSQUdBCitSQcSQRU5PVknEhiBEVcWgQU4KK1JBxJBFTk9WScSGIERVxaBBTgorUkHEkEVOT1ZJxIYgS0FSTE8KK1JBxJBFTk9WScSGIE1BTkUKK1JBxJBFTk9WScSGIE1JTEFOS08KK1JBxJBFTk9WScSGIE1JTEVWQQorUkHEkEVOT1ZJxIYgTUlMS0EKK1JBxJBFTk9WScSGIE1JTEtBCitSQcSQRU5PVknEhiBORUJPSsWgQQorUkHEkEVOT1ZJxIYgTklLT0xBCitSQcSQRU5PVknEhiBTT0ZJSkEKK1JBxJBFTk9WScSGIFVST8WgCitSQcSQRU5PVknEhiBWRUxKS08KK1JBxJBFTk9WScSGIFpPUklDQQorUkHEkEVWScSGIFNBVk8KK1JBQkFExb1JSkVWU0tJIFBBVUxBCitSQUJBVEnEhiBNSUxPxaAKK1JBQkkgSk/FvUVGCitSQUJJSkFDIFNSQkEKK1JBQlJFTk9WScSGIE1BUklKQQorUkFCUkVOT1ZJxIYgUkFESVNBVgorUkFCUkVOT1ZJxIYgWkxBVElOS0EKK1JBQyDFoEFORE9SCitSQUMgQUxCRVJUCitSQUMgQU5BCitSQUMgQlJVTk8KK1JBQyBFRE1VTkQKK1JBQyBGRVJFTkMKK1JBQyBGRVJFTkMKK1JBQyBGUkFOSkEKK1JBQyBHQUJSSUpFTAorUkFDIEpBTk/FoAorUkFDIEpFTElTQVZFVEEKK1JBQyBKT1ZBTgorUkFDIExKSUxKQU5BCitSQUMgTEpVQk9NSVIKK1JBQyBNQVJJSkEKK1JBQyBNQVJJSkEKK1JBQyBNRUxBTklKQQorUkFDIFBBTAorUkFDIFJVRE9MRgorUkFDLVNBQk8gTEFKT8WgCitSQUMgU1RFVkFOCitSQUMgVEVPRE9SCitSQUMgVkxBRElNSVIKK1JBQyBaTEFUQQorUkFDQSDEkFVSTworUkFDQSBEUkFHQU4KK1JBQ0EgRFJBR0FOCitSQUNBIERSQUdBTgorUkFDQSBEVcWgQU4KK1JBQ0EgR09SREFOQSBEUgorUkFDQSBNSVJLTworUkFDQSBQRVRBUgorUkFDQSBSVcW9SUNBCitSQUNJxIYgxIxFRE9NSVIKK1JBQ0nEhiBCUkFOS08KK1JBQ0nEhiBEVcWgQU4KK1JBQ0nEhiBNSUxBTgorUkFDScSGIE1JTEVOS08KK1JBQ0nEhiBNSUxJQ0EKK1JBQ0nEhiBNSUxJQ0EKK1JBQ0nEhiBNSUxPUkFECitSQUNJxIYgTUlSSkFOQQorUkFDScSGIE5FREVMSktPCitSQUNJxIYgUkFERU5LTworUkFDScSGIFNMT0JPREFOCitSQUNJxIYgU0xPQk9EQU4KK1JBQ0nEhiBWRUxKS08KK1JBQ0nEhiBaRFJBVktPCitSQUNJxIYgWkRSQVZLTworUkFDScSGIFpPUkFOCitSQUNLT1YgREFSSU5LQQorUkFDS09WIERSQUdPU0xBVgorUkFDS09WIEtBVElDQQorUkFDS09WIExBWkFSCitSQUNLT1YgTUlMSUNBCitSQUNLT1YgTUlMSVZPSgorUkFDS09WIE1JTE/FoAorUkFDS09WIE1JUk9TTEFWCitSQUNLT1YgTUlST1NMQVYKK1JBQ0tPViBOQVRBxaBBCitSQUNLT1YgT0xHQQorUkFDS09WIFJBRE9KS0EKK1JBQ0tPViBSQURPTUlSCitSQUNLT1YgUkFET1NMQVYKK1JBQ0tPViBTQVZBCitSQUNLT1YgU0xPQk9EQU4KK1JBQ0tPViBTUsSQQU4KK1JBQ0tPViBTUsSQQU4KK1JBQ0tPViBTUsSQQU4KK1JBQ0tPViBaTEFUSUNBCitSQUNLT1ZJxIYgxJBPUsSQRQorUkFDS09WScSGIERSQUdPTUlSCitSQUNLT1ZJxIYgRFXFoEFOCitSQUNLT1ZJxIYgTEFaQVIKK1JBQ0tPVknEhiBNSUxBTgorUkFDS09WScSGIE1JTE/FoAorUkFDS09WScSGIE1JUkpBTkEKK1JBQ0xFUiDEkEVSxJAKK1JBQ0xFUiBNQVJHSVQKK1JBQ08gTUnEhk8KK1JBQ08gUkFUS08KK1JBRCBQUkVEUkFHCitSQURBxaBJTiBFTFZJUkEKK1JBREHFoElOIFZMQURJTUlSCitSQURBxaBJTiBaVkVaREFOCitSQURBSyDEkE9SxJBFCitSQURBSyDEkFVSSUNBCitSQURBSyBEVcWgQU4KK1JBREFLIERVxaBBTgorUkFEQUsgR0FWUkEKK1JBREFLIEpFTElTQVZFVEEKK1JBREFLIEpPVkFOS0EKK1JBREFLIEpPVkFOCitSQURBSyBLT1ZJTktBCitSQURBSyBMQVpBUgorUkFEQUsgTEFaQVIKK1JBREFLIExKVUJJQ0EKK1JBREFLIExKVUJJQ0EKK1JBREFLIExVS0EKK1JBREFLIE1JTEFESU5LQQorUkFEQUsgTUlST1NMQVYKK1JBREFLIE9MR0EKK1JBREFLIFJBRE1JTEEKK1JBREFLIFNMQVZLTworUkFEQUsgWk9SQQorUkFEQUtPVknEhiDFvUlWQU4KK1JBREFLT1ZJxIYgxJBPUsSQRQorUkFEQUtPVknEhiDEkE9SxJBFCitSQURBS09WScSGIMSQVVJBxJAKK1JBREFLT1ZJxIYgQUxFS1NBTkRBUgorUkFEQUtPVknEhiBBTkEgRFIKK1JBREFLT1ZJxIYgQlJBTktPCitSQURBS09WScSGIEJSQU5LTworUkFEQUtPVknEhiBCUkFOS08KK1JBREFLT1ZJxIYgREFNSkFOCitSQURBS09WScSGIERBUktBCitSQURBS09WScSGIERJTUlUUklKRQorUkFEQUtPVknEhiBEVcWgQU4KK1JBREFLT1ZJxIYgRFXFoEFOCitSQURBS09WScSGIElMSUpBCitSQURBS09WScSGIElMSUpBCitSQURBS09WScSGIEpFTEVOQQorUkFEQUtPVknEhiBKT1ZBTgorUkFEQUtPVknEhiBKT1ZBTgorUkFEQUtPVknEhiBKT1ZBTgorUkFEQUtPVknEhiBKT1ZBTgorUkFEQUtPVknEhiBMQVpPCitSQURBS09WScSGIExKSUxKQU5BCitSQURBS09WScSGIE1BTkRBCitSQURBS09WScSGIE1BTkUKK1JBREFLT1ZJxIYgTUlMQU5LTworUkFEQUtPVknEhiBNSUxBTgorUkFEQUtPVknEhiBNSUxFTkEKK1JBREFLT1ZJxIYgTUlMRQorUkFEQUtPVknEhiBNSUxFCitSQURBS09WScSGIE1JTE9KS0EKK1JBREFLT1ZJxIYgTUlMT1JBRAorUkFEQUtPVknEhiBNSVJPU0xBVgorUkFEQUtPVknEhiBORU5BRAorUkFEQUtPVknEhiBQRVRBUgorUkFEQUtPVknEhiBSQURFCitSQURBS09WScSGIFJBREUKK1JBREFLT1ZJxIYgUkFKS08KK1JBREFLT1ZJxIYgUlXFvUlDQQorUkFEQUtPVknEhiBTQVZBCitSQURBS09WScSGIFNNSUxKS0EKK1JBREFLT1ZJxIYgVEVPRE9SQQorUkFEQUtPVknEhiBWTEFESU1JUgorUkFEQUtPVknEhiBWTEFESVNMQVYKK1JBREFOIFZFTElNSVIKK1JBREFOT1YgQklMSkFOQQorUkFEQU5PViBEUkFHT01JUgorUkFEQU5PViBEVcWgQU4KK1JBREFOT1YgR09TUEFWQQorUkFEQU5PViBMSlVCT01JUiBBRFZPS0FUCitSQURBTk9WIExKVUJPTUlSCitSQURBTk9WIE1JUk9TTEFWQQorUkFEQU5PViBOSUtPTEEKK1JBREFOT1YgT0xJVkVSQQorUkFEQU5PViBSQURJTktBCitSQURBTk9WIFJBRElWT0oKK1JBREFOT1YgUkFET1NMQVYKK1JBREFOT1YgVkVSSUNBCitSQURBTk9WScSGIMW9RUxKS08KK1JBREFOT1ZJxIYgxJBPUsSQRQorUkFEQU5PVknEhiDEkE9SxJBFCitSQURBTk9WScSGIMSQVUtBCitSQURBTk9WScSGIEFMRUtTQU5EQVIKK1JBREFOT1ZJxIYgQU7EkEVMS08KK1JBREFOT1ZJxIYgQk/FvUlEQVIKK1JBREFOT1ZJxIYgRElNSVRSSUpFCitSQURBTk9WScSGIERSQUdBTgorUkFEQU5PVknEhiBEUkFHSUNBCitSQURBTk9WScSGIERSQUdPTUlSCitSQURBTk9WScSGIERSQUdPTUlSCitSQURBTk9WScSGIERSQUdVVElOCitSQURBTk9WScSGIEdPSktPCitSQURBTk9WScSGIElMSUpBCitSQURBTk9WScSGIEpPVkFOS0EKK1JBREFOT1ZJxIYgSk9WQU4KK1JBREFOT1ZJxIYgSk9WQU4KK1JBREFOT1ZJxIYgSk9WQU4KK1JBREFOT1ZJxIYgS0FUQQorUkFEQU5PVknEhiBLT1ZJTEpLQQorUkFEQU5PVknEhiBMSlVCTworUkFEQU5PVknEhiBNQVJJSkEKK1JBREFOT1ZJxIYgTUlMQU5LTworUkFEQU5PVknEhiBNSUxBTgorUkFEQU5PVknEhiBNSUxBTgorUkFEQU5PVknEhiBNSUxBTgorUkFEQU5PVknEhiBNSUxFTktPCitSQURBTk9WScSGIE1JTE/FoAorUkFEQU5PVknEhiBNSU9EUkFHCitSQURBTk9WScSGIE1JT0RSQUcKK1JBREFOT1ZJxIYgTkVWRU5LQQorUkFEQU5PVknEhiBOSUtPTEEKK1JBREFOT1ZJxIYgTklLT0xBCitSQURBTk9WScSGIE9CUkFECitSQURBTk9WScSGIFBFVEFSCitSQURBTk9WScSGIFBFVEFSCitSQURBTk9WScSGIFJBRElWT0oKK1JBREFOT1ZJxIYgUkFET1ZBTktBCitSQURBTk9WScSGIFJBRE9WQU4KK1JBREFOT1ZJxIYgUkFKS08KK1JBREFOT1ZJxIYgU0HFoEEKK1JBREFOT1ZJxIYgU0FWQQorUkFEQU5PVknEhiBTT0ZJSkEKK1JBREFOT1ZJxIYgU09GSUpBCitSQURBTk9WScSGIFNSRVRFTgorUkFEQU5PVknEhiBUUknFoEEKK1JBREFOT1ZJxIYgVklUT01JUgorUkFEQVQgTUFSS08KK1JBREFUT1ZJxIYgTUFSSUpBCitSQURFSyBBTkRSQcWgCitSQURFSyBNQVJJSkEKK1JBREVLQSDFoFRFRktBCitSQURFS0EgRFXFoEtPCitSQURFS0EgSk9WQU4KK1JBREVLQSBNSUxFCitSQURFS0EgTUlMS0EKK1JBREVLQSBOSUtPTEEKK1JBREVLQSBSQURPVkFOCitSQURFS0lOIExKVUJJQ0EKK1JBREVMScSGIE1JTEFOCitSQURFTsSMScSGIEpPU0lQCitSQURFTktPVknEhiDEjEVET01JUgorUkFERU5LT1ZJxIYgxb1JVk9KSU4KK1JBREVOS09WScSGIEJMQcW9QQorUkFERU5LT1ZJxIYgRFJBR0FOCitSQURFTktPVknEhiBMRVBPU0FWQQorUkFERU5LT1ZJxIYgTEpVQknFoEEKK1JBREVOS09WScSGIE1JTElWT0pFCitSQURFTktPVknEhiBNSUxPVkFOCitSQURFTktPVknEhiBNSUxPVkFOCitSQURFTktPVknEhiBNSU9EUkFHCitSQURFTktPVknEhiBOQURBCitSQURFTktPVknEhiBSQURPTUlSCitSQURFTktPVknEhiBSQURPU0xBVkEKK1JBREVOS09WScSGIFJBVE9NSVIKK1JBREVOS09WScSGIFJPWkFMSUpBCitSQURFTktPVknEhiBTTE9CT0RBTgorUkFERU5LT1ZJxIYgVE9NSVNMQVYKK1JBREVOS09WScSGIFZJVE9NSVIKK1JBREVOS09WScSGIFZKRVJBCitSQURFTk9WScSGIE9CUkVOCitSQURFVEEgU0xBVktPCitSQURFVEEgU1ZFVE9aQVIKK1JBREVUScSGIEJPxaBLTworUkFERVRJxIYgQlJBTktPCitSQURFVEnEhiBHT1JBTgorUkFERVRJxIYgUkFET01JUgorUkFERVRJxIYgVk9KSVNMQVYKK1JBREVWScSGIMSQT1LEkEUKK1JBREVWScSGIEdPUkFOCitSQURFVknEhiBJVkFOCitSQURFVknEhiBNSUxFVkEKK1JBREVWScSGIE1JTE/FoAorUkFERVZJxIYgVk9KSU1JUgorUkFEScSMRVYgSkVMSUNBCitSQURJxIxFViBNQVJJSkEgRFIKK1JBREnEjEVWScSGIFJBRE1JTEEKK1JBREnEjEVWScSGIFNBVkEKK1JBREnEjEVWScSGIFpPUkFOCitSQURJxIxJxIYgU01JTEpBTkEKK1JBREnFoEnEhiDFvUlWS08KK1JBREnFoEnEhiDEkE9SxJBFCitSQURJxaBJxIYgQU7EkEVMS0EKK1JBREnFoEnEhiBCSUxKQU5BCitSQURJxaBJxIYgQk9SSVNMQVYKK1JBREnFoEnEhiBCT1JJU0xBVgorUkFEScWgScSGIEJSQU5JU0xBVgorUkFEScWgScSGIEJSQU5LQQorUkFEScWgScSGIEJSQU5LTworUkFEScWgScSGIERSQUdJxaBBCitSQURJxaBJxIYgRFJBR1VUSU4KK1JBREnFoEnEhiBEVcWgQU4KK1JBREnFoEnEhiBEVcWgSUNBCitSQURJxaBJxIYgSUxJSkEKK1JBREnFoEnEhiBKRUZUQQorUkFEScWgScSGIEpFTEVOQQorUkFEScWgScSGIEpPVkFOCitSQURJxaBJxIYgSk9WTworUkFEScWgScSGIEtBVElDQQorUkFEScWgScSGIExBWkFSCitSQURJxaBJxIYgTEFaQVIKK1JBREnFoEnEhiBMQVpBUgorUkFEScWgScSGIExKSUxKQU5BCitSQURJxaBJxIYgTEpVQklDQQorUkFEScWgScSGIE1BUktPCitSQURJxaBJxIYgTUlMQU4KK1JBREnFoEnEhiBNSUxFTkEKK1JBREnFoEnEhiBNSUxFTktPCitSQURJxaBJxIYgTUlMSUNBCitSQURJxaBJxIYgTUlMSUpBTkEKK1JBREnFoEnEhiBNSUxVVElOCitSQURJxaBJxIYgTUlST1NMQVZBCitSQURJxaBJxIYgTUxBREVOCitSQURJxaBJxIYgTkVOQQorUkFEScWgScSGIE5JS09MQQorUkFEScWgScSGIE9CUkFESU4KK1JBREnFoEnEhiBPTElWRVJBCitSQURJxaBJxIYgUEVSSUNBCitSQURJxaBJxIYgUEVSTworUkFEScWgScSGIFBFUlNBCitSQURJxaBJxIYgUEVUQVIKK1JBREnFoEnEhiBSQURJVk9KCitSQURJxaBJxIYgUkFETUlMQQorUkFEScWgScSGIFJBRE9KS0EKK1JBREnFoEnEhiBTQVZFVEEKK1JBREnFoEnEhiBTTE9CT0RBTgorUkFEScWgScSGIFNUQU5PSkUKK1JBREnFoEnEhiBTVEVWQU4KK1JBREnFoEnEhiBTVEVWQU4KK1JBREnFoEnEhiBTVkVUT1pBUgorUkFEScWgScSGIFRPRE9SCitSQURJxaBJxIYgVkxBRElNSVIKK1JBREnFoEnEhiBWTEFESU1JUgorUkFEScWgScSGIFpPUkFOCitSQURJxIYgxIxFREEKK1JBREnEhiDFvUVMSktPCitSQURJxIYgxb1JVkFOCitSQURJxIYgxJBPUsSQRQorUkFEScSGIMSQT1LEkEUKK1JBREnEhiBBTsSQQQorUkFEScSGIEFOxJBFTEtPCitSQURJxIYgQU5EUklKQSBEUgorUkFEScSGIEFOR0VMSU5BCitSQURJxIYgQU5LSUNBCitSQURJxIYgQU5URQorUkFEScSGIEJPxaBLTworUkFEScSGIEJSQU5LQQorUkFEScSGIERPQlJJVk9KRQorUkFEScSGIERSQUdPTEpVQgorUkFEScSGIERVxaBBTgorUkFEScSGIERVxaBBTgorUkFEScSGIEZSQU5KQQorUkFEScSGIEZSQU5KTworUkFEScSGIEdPSktPCitSQURJxIYgSFJBTklTTEFWCitSQURJxIYgSUxJSkEKK1JBREnEhiBJTElKQQorUkFEScSGIElWQU5LQQorUkFEScSGIEpPU0lQCitSQURJxIYgSk9WQU4KK1JBREnEhiBMQVpBUgorUkFEScSGIExKVUJJQ0EKK1JBREnEhiBMSlVCT01JUgorUkFEScSGIE1BUklKQQorUkFEScSGIE1JSkEKK1JBREnEhiBNSUxBTktPCitSQURJxIYgTUlMQU4KK1JBREnEhiBNSUxBTgorUkFEScSGIE1JTEUKK1JBREnEhiBNSUxJVk9KCitSQURJxIYgTUlMSVZPSgorUkFEScSGIE1JTEtBCitSQURJxIYgTUlMVVRJTiBESVBMIElORworUkFEScSGIE1JUkpBTkEKK1JBREnEhiBNSVJLTworUkFEScSGIE1MQURFTgorUkFEScSGIE5FREVMSktPCitSQURJxIYgTkVOQUQKK1JBREnEhiBQQVZMRQorUkFEScSGIFBFVEFSCitSQURJxIYgUEVUQVIKK1JBREnEhiBQRVRBUgorUkFEScSGIFBFVEFSCitSQURJxIYgUEVUQVIKK1JBREnEhi1QT1BPVknEhiBHT1JEQU5BCitSQURJxIYgUFJFRFJBRworUkFEScSGIFJBREEKK1JBREnEhiBSQURFCitSQURJxIYgUk9CRVJUCitSQURJxIYgU0FWQQorUkFEScSGIFNMQVZJxaBBCitSQURJxIYgU0xBVktPCitSQURJxIYgU09GSUpBCitSQURJxIYgU1RBTktPCitSQURJxIYgU1RFVkFOCitSQURJxIYgU1RFVkFOCitSQURJxIYgU1RPSkFOCitSQURJxIYgVElIT01JUgorUkFEScSGIFRSSVZBCitSQURJxIYgVkVMSU5LQQorUkFEScSGIFZMQURJTUlSCitSQURJxIYgWkRSQVZLTworUkFEScSGIFpPUkFOCitSQURJxIYgWk9SQQorUkFEScSGIFpPUklDQQorUkFESUJSQVRPVknEhiBNSUxJQ0EKK1JBRElCUkFUT1ZJxIYgTU9NxIxJTE8KK1JBRElKRUxKQUMgSkVMRU5BCitSQURJSkVMSkFDIE1PTcSMSUxPCitSQURJTiDFvUlWQU4KK1JBRElOIEFMRUtTQU5EQVIKK1JBRElOIEFOVE9OSUpBCitSQURJTiBCUkFOSVNMQVYKK1JBRElOIEJSQU5JU0xBVgorUkFESU4gQlJBTktPCitSQURJTiBEUkFHT0pMQQorUkFESU4gSFJJU1RJTkEKK1JBRElOIElWQU5LQQorUkFESU4gSk9WQU5LQQorUkFESU4gTEFaQVIKK1JBRElOIExKVUJPTUlSIERSIExFS0FSCitSQURJTiBMSlVCT01JUgorUkFESU4gTUFLU0lNSUxJSkFOCitSQURJTiBNQVJBCitSQURJTiBNSUxBRElOS0EKK1JBRElOIE1JTEFOCitSQURJTiBNSUxBTgorUkFESU4gTUlMQU4KK1JBRElOIE1JTEFOCitSQURJTiBNSUxBTgorUkFESU4gTUlMRU5BCitSQURJTiBNSUxLQQorUkFESU4gTUlSQQorUkFESU4gTUlST1NMQVYKK1JBRElOIE1MQURFTgorUkFESU4gTkFEQQorUkFESU4gTklLT0xBIERJUEwgSU5HCitSQURJTiBQRVRBUiBEUgorUkFESU4gUkFEQQorUkFESU4gUkFET1NMQVYKK1JBRElOIFNMQVZJTktBCitSQURJTiBTTEFWS08KK1JBRElOIFNURVZBTgorUkFESU4gU1RFVkFOCitSQURJTiBTVkVUSVNMQVYKK1JBRElOIFRPTUlTTEFWCitSQURJTiBWRVNFTElOCitSQURJTiBWTEFESU1JUgorUkFESU4gWkxBVE9KRQorUkFESU4gWk9SQU5LQQorUkFESU4gWk9SQQorUkFESU5PVknEhiDEkE9SxJBFCitSQURJTk9WScSGIEJVRElNSVIKK1JBRElOT1ZJxIYgRElNSVRSSUpFCitSQURJTk9WScSGIERVxaBLTworUkFESU5PVknEhiBJTElKQQorUkFESU5PVknEhiBMQVpPCitSQURJTk9WScSGIE1BTk9KTE8KK1JBRElOT1ZJxIYgTUFSSUpBCitSQURJTk9WScSGIE1JTElDQQorUkFESU5PVknEhiBNSUxJVk9KCitSQURJTk9WScSGIE1JTE9SQUQKK1JBRElOT1ZJxIYgTUlSQQorUkFESU5PVknEhiBNTEFERU4KK1JBRElOT1ZJxIYgTU9NxIxJTE8gRElQTCBQUkFWTklLCitSQURJTk9WScSGIE1PTcSMSUxPCitSQURJTk9WScSGIE5JS09MQQorUkFESU5PVknEhiBSQURPU0xBVgorUkFESU5PVknEhiBTSUxWQU5BCitSQURJTk9WScSGIFNURVZBTgorUkFESU5PVknEhiBWVUtBxaBJTgorUkFESVNBVkxKRVZJxIYgxb1JVk9SQUQKK1JBRElTQVZMSkVWScSGIEJPR0RBTgorUkFESVNBVkxKRVZJxIYgQk9SSVZPSkUKK1JBRElTQVZMSkVWScSGIElWQU4KK1JBRElTQVZMSkVWScSGIE1JTE9TQVYKK1JBRElTQVZMSkVWScSGIFNMQVZJQ0EKK1JBRElTQVZMSkVWScSGIFNUQU5JxaBBCitSQURJU0FWTEpFVknEhiBaT1JJQ0EgRFIKK1JBRElWT0rFoEEgTUlMT8WgCitSQURJVk9KxaBBIFNNSUxKQQorUkFESVZPSkFDIERPQlJJTEEKK1JBRElWT0pBQyBEUkFHQQorUkFESVZPSkFDIERSQUdPTEpVQgorUkFESVZPSkFDIEpPVkFOCitSQURJVk9KQUMgTkFUQUxJSkEKK1JBRElWT0pFViBSQURJTktBCitSQURJVk9KRVZJxIYgQU7EkEVMS08KK1JBRElWT0pFVknEhiBCT0dPTEpVQgorUkFESVZPSkVWScSGIEJSQU5JU0xBVgorUkFESVZPSkVWScSGIEJSQU5LTworUkFESVZPSkVWScSGIEJSQVRJTUlSCitSQURJVk9KRVZJxIYgRFJBR0FOIE1SCitSQURJVk9KRVZJxIYgRFJBR0nFoEEKK1JBRElWT0pFVknEhiBEUkFHT01JUgorUkFESVZPSkVWScSGIERSQUdPU0xBVgorUkFESVZPSkVWScSGIERVxaBBTiBESVBMIE9FQworUkFESVZPSkVWScSGIERVxaBBTktBCitSQURJVk9KRVZJxIYgSURBCitSQURJVk9KRVZJxIYgSkFOS08KK1JBRElWT0pFVknEhiBKRUxBCitSQURJVk9KRVZJxIYgSk9WQU5LQQorUkFESVZPSkVWScSGIEpPVkFOCitSQURJVk9KRVZJxIYgTEpVQklDQQorUkFESVZPSkVWScSGIExKVUJPRFJBRworUkFESVZPSkVWScSGIExKVUJPTUlSCitSQURJVk9KRVZJxIYgTEpVQk9NSVIKK1JBRElWT0pFVknEhiBMVUtBCitSQURJVk9KRVZJxIYgTFVLQQorUkFESVZPSkVWScSGIE1JTEFOCitSQURJVk9KRVZJxIYgTUlMQQorUkFESVZPSkVWScSGIE1JTEUKK1JBRElWT0pFVknEhiBNSUxJVk9KRQorUkFESVZPSkVWScSGIE1JTE9NSVIKK1JBRElWT0pFVknEhiBNSVJKQU5BCitSQURJVk9KRVZJxIYgTUxBREVOCitSQURJVk9KRVZJxIYgTU9NxIxJTE8KK1JBRElWT0pFVknEhiBORcSQTworUkFESVZPSkVWScSGIE5FTUFOSkEKK1JBRElWT0pFVknEhiBOSUtPTEEKK1JBRElWT0pFVknEhiBQQVZMRQorUkFESVZPSkVWScSGIFJBREnFoEEKK1JBRElWT0pFVknEhiBSQURJVk9KRQorUkFESVZPSkVWScSGIFJBRE/FoAorUkFESVZPSkVWScSGIFJBVEtPCitSQURJVk9KRVZJxIYgU0lOScWgQQorUkFESVZPSkVWScSGIFNMT0JPREFOCitSQURJVk9KRVZJxIYgU0xPQk9EQU4KK1JBRElWT0pFVknEhiBTTE9CT0RBTgorUkFESVZPSkVWScSGIFNMT0JPREFOCitSQURJVk9KRVZJxIYgU1RFVkFOCitSQURJVk9KRVZJxIYgU1RPSkFESU4KK1JBRElWT0pFVknEhiBUT01JU0xBVgorUkFESVZPSkVWScSGIFRVR09NSVIKK1JBRElWT0pFVknEhiBWRVJBCitSQURJVk9KRVZJxIYgVklEQQorUkFESVZPSkVWScSGIFZJREEKK1JBRElWT0pFVknEhiBWVUtJQ0EKK1JBRElWT0pFVknEhiBaT1JBTgorUkFESVZPSkVWScSGIFpPUkFOCitSQURJVk9KS09WIMSQT1LEkEUKK1JBRElWT0pLT1YgSkVMSUNBCitSQURJVk9KS09WIE1JUkpBTkEKK1JBRElWT0pLT1YgUkFKS08KK1JBRElWT0pLT1YgU0FWQQorUkFESVZPSktPViBTVEVWQU4KK1JBRExPVkHEjEtJIERPQlJJTktBCitSQURMT1ZBxIxLSSBTSU5JxaBBCitSQURMT1ZJxIYgTUlMS0EKK1JBRE1BTiDFoElNVU4KK1JBRE1BTiDFoFBJUk8KK1JBRE1BTiBJVkFOCitSQURNQU4gTEVQT1NBVkEKK1JBRE1BTiBNSUxBTgorUkFETUFOIE1JTEUKK1JBRE1BTiBNSUxJQ0EKK1JBRE1BTiBNSUxPVkFOCitSQURNQU4gTUlST1NMQVYKK1JBRE1BTknEhiBFVklDQQorUkFETUFOT1ZBQyBNSUxPVkFOCitSQURNQU5PVknEhiBEUkFHSUNBCitSQURNQU5PVknEhiBEVcWgQU5LQQorUkFETUFOT1ZJxIYgTUlMVVRJTgorUkFETUlMTyDEkFVSTworUkFETUlMTyBNQVJJSkEKK1JBRE1JTE8gTUlSS08KK1JBRE1JTE9WScSGIERVxaBBTktBCitSQURNSUxPVknEhiBNSUxBTgorUkFETUlMT1ZJxIYgTUlMT8WgCitSQURNSUxPVknEhiBNSVJPU0xBVgorUkFETUlMT1ZJxIYgTkVERUxKS08KK1JBRE1JTE9WScSGIFJBREUgUFJPRkVTT1IKK1JBRE1JTE9WScSGIFNMQVZPTEpVQgorUkFETUlMT1ZJxIYgU1RFVk8KK1JBRE5JxIYgRE9CUklOS0EKK1JBRE5PViBBTEVLU0EKK1JBRE5PViBMRU5LQQorUkFETk9WIFJBRElWT0oKK1JBRE5PViBSQUpLTworUkFETk9WIFpPUktBCitSQUROT1ZJxIYgRFJBR0FOCitSQUROT1ZJxIYgT0xHSUNBCitSQUROT1ZJxIYgUkFET1ZBTgorUkFETk9WScSGIFVST8WgCitSQUROT1ZJxIYgVVJPxaAKK1JBRE/EjEFKIERVxaBBTktBCitSQURPxIxBSiBJTElKQQorUkFET8SMQUogTUFSQQorUkFET8SMQUogTUlMS0EKK1JBRE/EjEFKIE5FREVMSktBCitSQURPxIxBSiBTQVZLQQorUkFET8WgIEJPUklTTEFWCitSQURPxaAgREFOSUNBCitSQURPxaAgRFJFTktBCitSQURPxaAgTUFSVEEKK1JBRE/FoCBNSUxBTgorUkFET8WgIFJVxb1BCitSQURPxaAgVk9KSVNMQVYKK1JBRE/FoCBaT1JBCitSQURPxaBFVknEhi3FoFRJTUFDIExKVUJJQ0EKK1JBRE/FoEVWScSGIMSQT1LEkEUKK1JBRE/FoEVWScSGIEFOxJBFTEtBCitSQURPxaBFVknEhiBBTklDQQorUkFET8WgRVZJxIYgQU5JQ0EKK1JBRE/FoEVWScSGIEJPxb1JREFSCitSQURPxaBFVknEhiBCT8W9TworUkFET8WgRVZJxIYgQlJBTklTTEFWCitSQURPxaBFVknEhiBCUkFOS08KK1JBRE/FoEVWScSGIERFU0FOS0EKK1JBRE/FoEVWScSGIERVxaBJQ0EKK1JBRE/FoEVWScSGIEpFTElTQVZFVEEKK1JBRE/FoEVWScSGIEpPVkFOS0EKK1JBRE/FoEVWScSGIEpPVkFOCitSQURPxaBFVknEhiBKT1ZBTgorUkFET8WgRVZJxIYgTEpJTEpBTkEKK1JBRE/FoEVWScSGIExKVUJJQ0EKK1JBRE/FoEVWScSGIE1JTEVOQQorUkFET8WgRVZJxIYgTUlMRU5BCitSQURPxaBFVknEhiBNSUxJVk9KCitSQURPxaBFVknEhiBNSUxPxaAKK1JBRE/FoEVWScSGIE1JTFVUSU4KK1JBRE/FoEVWScSGIE1JT0RSQUcKK1JBRE/FoEVWScSGIE1JUkpBTkEKK1JBRE/FoEVWScSGIE1JUk9TTEFWQQorUkFET8WgRVZJxIYgTUlUQVIKK1JBRE/FoEVWScSGIE5JS09MQQorUkFET8WgRVZJxIYgT0xJVkVSQQorUkFET8WgRVZJxIYgUkFERQorUkFET8WgRVZJxIYgUkFESVZPSgorUkFET8WgRVZJxIYgUkFETUlMQQorUkFET8WgRVZJxIYgUkFET1ZBTgorUkFET8WgRVZJxIYgUkFET1ZBTgorUkFET8WgRVZJxIYgUk9ET0xKVUIKK1JBRE/FoEVWScSGIFNUQU5JQ0EKK1JBRE/FoEVWScSGIFRFUkVaQQorUkFET8WgRVZJxIYgVkxBRElNSVIKK1JBRE/FoEVWScSGIFpEUkFWS08KK1JBRE9DIEZSQU5KQQorUkFET0MtU0lNScSGIFNPRklKQQorUkFET0nEjEnEhiBNSUxPxaAKK1JBRE9JxIxLSSBCUkFOSVNMQVYKK1JBRE9KxIxFVknEhiBNSUxPxaAKK1JBRE9KxIxJxIYgQk/FvUEgRElQTCBJTkcKK1JBRE9KxIxJxIYgQk/FvUlEQVIKK1JBRE9KxIxJxIYgQk/FvUlEQVIKK1JBRE9KxIxJxIYgREFOSUNBCitSQURPSsSMScSGIERBUklOS0EKK1JBRE9KxIxJxIYgRFJBR0FOQQorUkFET0rEjEnEhiBEUkFHT01JUgorUkFET0rEjEnEhiBEUkFHTworUkFET0rEjEnEhiBEVcWgS08KK1JBRE9KxIxJxIYgR09KS08KK1JBRE9KxIxJxIYgSVJFTkEKK1JBRE9KxIxJxIYgSVZBTgorUkFET0rEjEnEhiBJVkFOCitSQURPSsSMScSGIElWQU4KK1JBRE9KxIxJxIYgTEpJSkFOQQorUkFET0rEjEnEhiBMSklMSkFOQQorUkFET0rEjEnEhiBNSUxBRElOCitSQURPSsSMScSGIE1JTEFOCitSQURPSsSMScSGIE1JTEVOS08KK1JBRE9KxIxJxIYgTUlMSUNBCitSQURPSsSMScSGIE1JTE9SQUQKK1JBRE9KxIxJxIYgTUlMVVRJTgorUkFET0rEjEnEhiBNSU9EUkFHCitSQURPSsSMScSGIE1JVEFSCitSQURPSsSMScSGIE5BRElDQQorUkFET0rEjEnEhiBORU5BRAorUkFET0rEjEnEhi1PQkVSS05Fxb1FViBNSVJKQU5BCitSQURPSsSMScSGIFBBVkxFCitSQURPSsSMScSGIFNBVkEKK1JBRE9KxIxJxIYgU1JFVEVOCitSQURPSsSMScSGIFNURVZBTgorUkFET0rEjEnEhiBWSVRPTUlSCitSQURPSsSMScSGIFZMQURBTgorUkFET0rEjEnEhiBWT0pJU0xBVgorUkFET0rEjElOIMSQT1LEkEUKK1JBRE9KxIxJTiBBTklDQQorUkFET0rEjElOIERPQlJJTEEKK1JBRE9KxIxJTiBEVcWgSUNBCitSQURPSsSMSU4gRVZJQ0EKK1JBRE9KxIxJTiBKVUxLQQorUkFET0rEjElOIE1BUkEKK1JBRE9KxIxJTiBNQVJUQQorUkFET0rEjElOIE1JTEFOCitSQURPSsSMSU4gTUlMS0EKK1JBRE9KxIxJTiBNSUxPxaAKK1JBRE9KxIxJTiBNSUxPVkFOCitSQURPSsSMSU4gTUlSSkFOQQorUkFET0rEjElOIFJBRE1JTEEKK1JBRE9KxIxJTiBSQURPSktBCitSQURPSsSMSU4gUkFET1ZBTgorUkFET0rEjElOIFNMT0JPREFOCitSQURPSsSMSU4gU1JFRE9KRQorUkFET0rEjElOIFRPRE9SCitSQURPSsSMSU4gVkVMSU1JUgorUkFET0rEjElOIFZFUkEKK1JBRE9KxIxJTiBWRVJBCitSQURPSkEgQk9SSVNMQVYKK1JBRE9KQSBLT1ZJTEpLQQorUkFET0pFViBJVkFOCitSQURPSkVWIFNMQVZLTworUkFET0pFVknEhiDEkE9LQQorUkFET0pFVknEhiBBTsSQRUxLQQorUkFET0pFVknEhiBCT1NJTEpLQQorUkFET0pFVknEhiBERUpBTgorUkFET0pFVknEhiBEUkFHT1NMQVYKK1JBRE9KRVZJxIYgSkVMRU5BCitSQURPSkVWScSGIEpFTElDQQorUkFET0pFVknEhiBLQVRBCitSQURPSkVWScSGIEtPU1RBCitSQURPSkVWScSGIE1JTEFOCitSQURPSkVWScSGIE1JTEVOS08KK1JBRE9KRVZJxIYgTUlMRQorUkFET0pFVknEhiBNSUxVVElOCitSQURPSkVWScSGIE1JUkpBTkEKK1JBRE9KRVZJxIYgTUlST1NBTkRBCitSQURPSkVWScSGIE1PTcSMSUxPCitSQURPSkVWScSGIE5JS09MQQorUkFET0pFVknEhiBOSUtPTEEKK1JBRE9KRVZJxIYgTklLT0xBCitSQURPSkVWScSGIFBFVFJBCitSQURPSkVWScSGIFJBRElTQVYKK1JBRE9KRVZJxIYgUkFET1NMQVZLQSBEUgorUkFET0pFVknEhiBTQVZBCitSQURPSkVWScSGIFNMQVZLTworUkFET0pFVknEhiBTUkJPTEpVQgorUkFET0pFVknEhiBTVEVWQU4KK1JBRE9KRVZJxIYgU1RFVkFOCitSQURPSkVWScSGIFRBVEpBTkEKK1JBRE9KRVZJxIYgVkVSQQorUkFET0pFVknEhiBaT1JBTgorUkFET0pJxIxJxIYgxJBPS0EKK1JBRE9KScSMScSGIMSQT1LEkE8KK1JBRE9KScSMScSGIERBTklMTworUkFET0pJxIxJxIYgRFJBR0FOCitSQURPSknEjEnEhiBKRUxFTkEKK1JBRE9KScSMScSGIEpPUkRBTgorUkFET0pJxIxJxIYgTEpVQk9NSVIKK1JBRE9KScSMScSGIE1JTElDQQorUkFET0pJxIxJxIYgTUlMT1NBVgorUkFET0pJxIxJxIYgT0JSRU4KK1JBRE9KScSMScSGIFJBREUKK1JBRE9KScSMScSGIFJBREnFoEEKK1JBRE9KScSMScSGIFZMQURBTgorUkFET0pJxIxJxIYgVk9KSU4KK1JBRE9KS08gSkVMRU5BCitSQURPSktPVknEhiDEkFVSxJBJTktBCitSQURPSktPVknEhiBMSlVCSUNBCitSQURPSktPVknEhiBQUkVEUkFHCitSQURPSktPVknEhiBQUlZPU0xBVgorUkFET0pLT1ZJxIYgUFJWT1NMQVYKK1JBRE9KS09WScSGIFJBSktPCitSQURPSktPVknEhiBUSUhPTUlSCitSQURPSktPVknEhiBUT01JU0xBVgorUkFET0pLT1ZJxIYgVFJBSktPCitSQURPSktPVknEhiBWTEFESU1JUgorUkFET01BTiBKRUxFTkEKK1JBRE9NQU4gTEpVQklDQQorUkFET01BTiBNQVJUQQorUkFET01BTiBNSVJPU0xBVgorUkFET01BTiBaT1JBTgorUkFET01JUiBTVE9KQU4KK1JBRE9NSVJPVknEhiBNSUxPUkFECitSQURPTUlST1ZJxIYgVklOS08KK1JBRE9NSVJPVknEhiBWVUtTQU4KK1JBRE9NSVJPVknEhiBaTEFUQQorUkFET07EjEnEhiBKVVNVRgorUkFET07EjEnEhiBSQU1JWgorUkFET05JxIYgxb1FTEpLTworUkFET05JxIYgxb1JVkFOCitSQURPTknEhiDFvUlWS08KK1JBRE9OScSGIEFMRUtTQU5EQVIKK1JBRE9OScSGIEFOxJBFTEtBCitSQURPTknEhiBCTEFHT0pFCitSQURPTknEhiBCUkFOSVNMQVYKK1JBRE9OScSGIEJSQU5LTyBESVBMIElORworUkFET05JxIYgQlJBTktPCitSQURPTknEhiBEQU5JQ0EKK1JBRE9OScSGIERVxaBBTgorUkFET05JxIYgRVZHRU5JSkUKK1JBRE9OScSGIEZFUkVOQworUkFET05JxIYgSEFOQQorUkFET05JxIYgSk9WQU4KK1JBRE9OScSGIExKVUJPTUlSCitSQURPTknEhiBNQUtTSU0KK1JBRE9OScSGIE1JTElWT0pFCitSQURPTknEhiBNSUxPVkFOCitSQURPTknEhiBNTEFERU4KK1JBRE9OScSGIE5BREEKK1JBRE9OScSGIE5BREEKK1JBRE9OScSGIE5FREVMSktPCitSQURPTknEhiBORU5BRAorUkFET05JxIYgTklLT0xBCitSQURPTknEhiBOSUtPTEEKK1JBRE9OScSGIE5PVklDQQorUkFET05JxIYgUEVUQVIKK1JBRE9OScSGIFJBREEKK1JBRE9OScSGIFJBREUKK1JBRE9OScSGIFJBRElWT0oKK1JBRE9OScSGIFJBRElWT0oKK1JBRE9OScSGIFJBRE1JTEEKK1JBRE9OScSGIFJBSktPCitSQURPTknEhiBTT0ZJSkEKK1JBRE9OScSGIFZMQURBCitSQURPTknEhiBWTEFESU1JUgorUkFET05KQSBBTlRFCitSQURPTkpBTklOIE1BUlRBCitSQURPTkpBTklOIFBFVEFSCitSQURPTkpBTklOIFZMQVNUSU1JUgorUkFET05KScSGIEJSQU5JU0xBVgorUkFET05KScSGIERSQUdBTgorUkFET05KScSGIElWQU4KK1JBRE9OSknEhiBLQVRBUklOQQorUkFET05KScSGIExVS0EKK1JBRE9OSknEhiBNQU5EQQorUkFET05KScSGIE1JTEFESU4KK1JBRE9OSknEhiBNSUxPVkFOCitSQURPTkpJxIYgTUlSSkFOQQorUkFET05KScSGIE1JVEFSCitSQURPTkpJxIYgT0xHQQorUkFET05KScSGIFNFTktBCitSQURPTkpJxIYgU0xBVk9NSVIKK1JBRE9OSknEhiBTTE9CT0RBTgorUkFET05KScSGIFNORcW9QU5BCitSQURPTkpJxIYgU1RBTkEKK1JBRE9OSknEhiBWRVJJQ0EKK1JBRE9TQVYgRVLFvUVCRVQKK1JBRE9TQVYgS1JJU1RJTkEKK1JBRE9TQVYgUkFESVZPSgorUkFET1NBVsSMRVYgRFXFoEFOCitSQURPU0FWxIxFViBNSUxBCitSQURPU0FWQUMgRElNSVRSSUpFIERSCitSQURPU0FWQUMgRFXFoElDQQorUkFET1NBVkFDIE5FREVMSktPCitSQURPU0FWQUMgVkVMSVpBUgorUkFET1NBVkFDIFZMQURPCitSQURPU0FWTEpFViDFvUlWQU4KK1JBRE9TQVZMSkVWIEJPxb1JREFSCitSQURPU0FWTEpFViBEUkFHT0xKVUIKK1JBRE9TQVZMSkVWIERSQUdVVElOCitSQURPU0FWTEpFViBHT0pLTworUkFET1NBVkxKRVYgSVZBTgorUkFET1NBVkxKRVYgSkVWUkVNCitSQURPU0FWTEpFViBLQcSGQQorUkFET1NBVkxKRVYgTUlMT1JBRAorUkFET1NBVkxKRVYgTklLT0xBCitSQURPU0FWTEpFViBQQVZMRQorUkFET1NBVkxKRVYgU0xBVktBCitSQURPU0FWTEpFViBTVEVWQU4KK1JBRE9TQVZMSkVWIFpPUkEKK1JBRE9TQVZMSkVWIFpPUklDQQorUkFET1NBVkxKRVZJxIYgxb1JVkFOCitSQURPU0FWTEpFVknEhiDEkE9SxJBFCitSQURPU0FWTEpFVknEhiDEkE9SxJBFCitSQURPU0FWTEpFVknEhiBBTEVLU0FOREFSCitSQURPU0FWTEpFVknEhiBBTkEKK1JBRE9TQVZMSkVWScSGIEFOQQorUkFET1NBVkxKRVZJxIYgQk/FvUlEQVIKK1JBRE9TQVZMSkVWScSGIEJPR0RBTgorUkFET1NBVkxKRVZJxIYgQk9HT1ZJRAorUkFET1NBVkxKRVZJxIYgQk9SQQorUkFET1NBVkxKRVZJxIYgQk9SQQorUkFET1NBVkxKRVZJxIYgQlVESU1JUgorUkFET1NBVkxKRVZJxIYgREFOSUVMCitSQURPU0FWTEpFVknEhiBESUFOQQorUkFET1NBVkxKRVZJxIYgRE9CUklWT0pFCitSQURPU0FWTEpFVknEhiBEUkFHQU4KK1JBRE9TQVZMSkVWScSGIERSQUdJxaBBCitSQURPU0FWTEpFVknEhiBEUkFHT0xKVUIKK1JBRE9TQVZMSkVWScSGIERSQUdVVElOCitSQURPU0FWTEpFVknEhiBEVcWgQU4gRElQTCBJTkcKK1JBRE9TQVZMSkVWScSGIERVxaBBTgorUkFET1NBVkxKRVZJxIYgRFXFoEFOCitSQURPU0FWTEpFVknEhiBJTElKQQorUkFET1NBVkxKRVZJxIYgSkFTTUlOQQorUkFET1NBVkxKRVZJxIYgSk9WQU4KK1JBRE9TQVZMSkVWScSGIEpPVkFOCitSQURPU0FWTEpFVknEhiBKT1ZBTgorUkFET1NBVkxKRVZJxIYgSlVMSUpBCitSQURPU0FWTEpFVknEhiBMRVBPU0FWQQorUkFET1NBVkxKRVZJxIYgTEpJTEpBTkEKK1JBRE9TQVZMSkVWScSGIExKSUxKQQorUkFET1NBVkxKRVZJxIYgTEpVQknFoEEKK1JBRE9TQVZMSkVWScSGIExKVUJPTUlSCitSQURPU0FWTEpFVknEhiBMSlVCT01JUgorUkFET1NBVkxKRVZJxIYgTUFSS08KK1JBRE9TQVZMSkVWScSGIE1JTEFOCitSQURPU0FWTEpFVknEhiBNSUxBTgorUkFET1NBVkxKRVZJxIYgTUlMQU4KK1JBRE9TQVZMSkVWScSGIE1JTEVOS08KK1JBRE9TQVZMSkVWScSGIE1JTEVOS08KK1JBRE9TQVZMSkVWScSGIE1JTEVWQQorUkFET1NBVkxKRVZJxIYgTUlMS0EKK1JBRE9TQVZMSkVWScSGIE1JTE9WQU4KK1JBRE9TQVZMSkVWScSGIE1JT0RSQUcKK1JBRE9TQVZMSkVWScSGIE1JUkpBTkEKK1JBRE9TQVZMSkVWScSGIE1JUkpBTkEKK1JBRE9TQVZMSkVWScSGIE1MQURFTgorUkFET1NBVkxKRVZJxIYgTkpFR09TQVZBCitSQURPU0FWTEpFVknEhiBQQVZMRQorUkFET1NBVkxKRVZJxIYgUEVUQVIKK1JBRE9TQVZMSkVWScSGIFJBREnFoEEKK1JBRE9TQVZMSkVWScSGIFJBREnFoEEKK1JBRE9TQVZMSkVWScSGIFJBRElWT0oKK1JBRE9TQVZMSkVWScSGIFJBTUlaQQorUkFET1NBVkxKRVZJxIYgUk9ET0xKVUIgRElQTCBJTkcKK1JBRE9TQVZMSkVWScSGIFNBVkEKK1JBRE9TQVZMSkVWScSGIFNJTknFoEEKK1JBRE9TQVZMSkVWScSGIFNURVZBTgorUkFET1NBVkxKRVZJxIYgU1RFVkFOCitSQURPU0FWTEpFVknEhiBTVEVWQU4KK1JBRE9TQVZMSkVWScSGIFNUT0pBTgorUkFET1NBVkxKRVZJxIYgU1ZFVElTTEFWCitSQURPU0FWTEpFVknEhiBTVkVUSVNMQVYKK1JBRE9TQVZMSkVWScSGIFNWRVRMQU5BCitSQURPU0FWTEpFVknEhiBTVkVUT1pBUgorUkFET1NBVkxKRVZJxIYgVklET1NBVkEKK1JBRE9TQVZMSkVWScSGIFZMQURFVEEKK1JBRE9TQVZMSkVWScSGIFpBR0EKK1JBRE9TQVZMSkVWScSGIFpBR09SS0EKK1JBRE9TQVZMSkVWScSGIFpPUklDQQorUkFET1ZBQyBJVkEKK1JBRE9WQUMgTklLT0xBCitSQURPVkFDIFBFVEFSCitSQURPVkFDIFNBVkEKK1JBRE9WQU4gQU5URQorUkFET1ZBTiBWSURPU0FWQQorUkFET1ZBTsSMRVYgQlJBTklTTEFWCitSQURPVkFOxIxFViBMSlVCSUNBCitSQURPVkFOxIxFViBWTEFESU1JUgorUkFET1ZBTsSMRVYgVkxBRElNSVIKK1JBRE9WQU5BQyDEkFVSQQorUkFET1ZBTkFDIE5FxJBPCitSQURPVkFOT1Ygxb1JVkFOCitSQURPVkFOT1YgQUxFS1NBTkRBUgorUkFET1ZBTk9WIEFOxJBFTEtBCitSQURPVkFOT1YgQU5LQQorUkFET1ZBTk9WIEJPxb1JREFSCitSQURPVkFOT1YgQk9HREFOS0EKK1JBRE9WQU5PViBCUkFOS08KK1JBRE9WQU5PViBEQU5JQ0EKK1JBRE9WQU5PViBEVcWgQU4KK1JBRE9WQU5PViBEVcWgQU4KK1JBRE9WQU5PViBEVcWgQU4KK1JBRE9WQU5PViBFVklDQQorUkFET1ZBTk9WIEdPUkRBTkEKK1JBRE9WQU5PViBJTElKQQorUkFET1ZBTk9WIEtVWk1BTgorUkFET1ZBTk9WIExKVUJJQ0EKK1JBRE9WQU5PViBNQVJJSkEKK1JBRE9WQU5PViBNRUxBTklKQQorUkFET1ZBTk9WIE1JTEFOCitSQURPVkFOT1YgTUlMQU4KK1JBRE9WQU5PViBNSUxFTktPCitSQURPVkFOT1YgTUlMRU5LTworUkFET1ZBTk9WIE1JTEVOS08KK1JBRE9WQU5PViBNSUxJQ0EKK1JBRE9WQU5PViBNSUxJQ0EKK1JBRE9WQU5PViBNSUxJQ0EKK1JBRE9WQU5PViBNSUxLQQorUkFET1ZBTk9WIE1JUkpBTkEKK1JBRE9WQU5PViBOQURBCitSQURPVkFOT1YgTkVWRU5LQQorUkFET1ZBTk9WIFBFVEFSCitSQURPVkFOT1YgUEVUQVIKK1JBRE9WQU5PViBQRVRBUgorUkFET1ZBTk9WIFJBRE9NSVIKK1JBRE9WQU5PViBSQURPVkFOCitSQURPVkFOT1YgUlXFvUlDQQorUkFET1ZBTk9WIFNMT0JPREFOS0EKK1JBRE9WQU5PViBTTE9CT0RBTgorUkFET1ZBTk9WIFNMT0JPREFOCitSQURPVkFOT1YgU01JTEpBTkEKK1JBRE9WQU5PViBTVEVWQU4KK1JBRE9WQU5PViBTVEVWQU4KK1JBRE9WQU5PViBTVEVWQQorUkFET1ZBTk9WIFNWRVRPWkFSCitSQURPVkFOT1YgVEFUSkFOQQorUkFET1ZBTk9WIFRJTktBCitSQURPVkFOT1YgVk9KSVNMQVYKK1JBRE9WQU5PVknEhiDFvUlWQURJTgorUkFET1ZBTk9WScSGIMSQT1LEkElKRQorUkFET1ZBTk9WScSGIEJPUkEKK1JBRE9WQU5PVknEhiBCT1JLQQorUkFET1ZBTk9WScSGIEJSQU5LTworUkFET1ZBTk9WScSGIERBTklMTworUkFET1ZBTk9WScSGIERBUklOS0EKK1JBRE9WQU5PVknEhiBET0JSSVZPSkUKK1JBRE9WQU5PVknEhiBEUkFHQU4KK1JBRE9WQU5PVknEhiBEUkFHScWgQQorUkFET1ZBTk9WScSGIERSQUdJxaBBCitSQURPVkFOT1ZJxIYgRFJBR09MSlVCCitSQURPVkFOT1ZJxIYgRFXFoEFOS0EKK1JBRE9WQU5PVknEhiBEVcWgQU4KK1JBRE9WQU5PVknEhiBEVcWgS08gRElQTCBJTkcKK1JBRE9WQU5PVknEhiBJTE9OS0EKK1JBRE9WQU5PVknEhiBKRUxJQ0EKK1JBRE9WQU5PVknEhiBKT0tBCitSQURPVkFOT1ZJxIYgSk9WQU5LQQorUkFET1ZBTk9WScSGIExBWkFSCitSQURPVkFOT1ZJxIYgTEFaTworUkFET1ZBTk9WScSGIExKVUJJQ0EKK1JBRE9WQU5PVknEhiBMSlVCT01JUgorUkFET1ZBTk9WScSGIE1BUkEKK1JBRE9WQU5PVknEhiBNQVJJSkEgRFIKK1JBRE9WQU5PVknEhiBNQVJJSkEKK1JBRE9WQU5PVknEhiBNScSGTworUkFET1ZBTk9WScSGIE1JTEFESU4KK1JBRE9WQU5PVknEhiBNSUxBTgorUkFET1ZBTk9WScSGIE1JTEFOCitSQURPVkFOT1ZJxIYgTUlMQU4KK1JBRE9WQU5PVknEhiBNSUxBCitSQURPVkFOT1ZJxIYgTUlMSUNBCitSQURPVkFOT1ZJxIYgTUlMT8WgCitSQURPVkFOT1ZJxIYgTUlMT8WgCitSQURPVkFOT1ZJxIYgTUlMT1JBRAorUkFET1ZBTk9WScSGIE1JTE9SQUQKK1JBRE9WQU5PVknEhiBNSUxPUkFECitSQURPVkFOT1ZJxIYgTUlMVVRJTgorUkFET1ZBTk9WScSGIE1JUkEKK1JBRE9WQU5PVknEhiBNSVJPU0xBViBEUiBQUk9GCitSQURPVkFOT1ZJxIYgTUlST1NMQVYKK1JBRE9WQU5PVknEhiBNTEHEkEVOCitSQURPVkFOT1ZJxIYgTU9NSVIKK1JBRE9WQU5PVknEhiBOQURBCitSQURPVkFOT1ZJxIYgTkVERUxKS08KK1JBRE9WQU5PVknEhiBOSUtPTEEKK1JBRE9WQU5PVknEhiBOSU5PU0xBViBEUgorUkFET1ZBTk9WScSGIFBSRURSQUcKK1JBRE9WQU5PVknEhiBSQURFTktPCitSQURPVkFOT1ZJxIYgUkFESVZPSgorUkFET1ZBTk9WScSGIFJBRE9KSUNBCitSQURPVkFOT1ZJxIYgUkFET01JUiBEUiBMRUtBUgorUkFET1ZBTk9WScSGIFJBRE9TTEFWCitSQURPVkFOT1ZJxIYgUkFET1NMQVYKK1JBRE9WQU5PVknEhiBSQURPVkFOCitSQURPVkFOT1ZJxIYgUkFKQQorUkFET1ZBTk9WScSGIFJBSktPCitSQURPVkFOT1ZJxIYgU0xBRE9MSlVCCitSQURPVkFOT1ZJxIYgU0xBVktPCitSQURPVkFOT1ZJxIYgU0xBVktPCitSQURPVkFOT1ZJxIYgU0xPQk9EQU4KK1JBRE9WQU5PVknEhiBTTkXFvUFOQQorUkFET1ZBTk9WScSGIFNSRVRFTgorUkFET1ZBTk9WScSGIFNUQU5PSkUKK1JBRE9WQU5PVknEhiBTVEVWQU4KK1JBRE9WQU5PVknEhiBTVEVWQU4KK1JBRE9WQU5PVknEhiBTVkVUSVNMQVYKK1JBRE9WQU5PVknEhiBUT01JU0xBVgorUkFET1ZBTk9WScSGIFZFTElTQVYKK1JBRE9WQU5PVknEhiBWSURPU0FWQQorUkFET1ZBTk9WScSGIFZJTktBCitSQURPVkFOT1ZJxIYgVkxBRElNSVIKK1JBRE9WQU5PVknEhiBWT0pJU0xBVgorUkFET1ZBTk9WScSGIFZPSklTTEFWCitSQURPVkFOT1ZJxIYgWk9SS0EKK1JBRE9WQU5PVknEhiBaVkVaREFOQQorUkFET1ZJxIYgxIxFRE9NSVIKK1JBRE9WScSGIMW9QVJLTworUkFET1ZJxIYgxb1JVkFOCitSQURPVknEhiDEkE9SxJBFCitSQURPVknEhiBBTEVLU0FOREFSCitSQURPVknEhiBBTEVLU0FOREFSCitSQURPVknEhiBBTsSQRUxJSkEKK1JBRE9WScSGIEJMQUdBCitSQURPVknEhiBCTEFHT0pFCitSQURPVknEhiBCT8WgS08KK1JBRE9WScSGIEJPR09MSlVCCitSQURPVknEhiBCT1JJU0xBVgorUkFET1ZJxIYgQlJBTklTTEFWIERJUEwgSU5HCitSQURPVknEhiBCUkFOS08KK1JBRE9WScSGIERBTUpBTgorUkFET1ZJxIYgREFSS08KK1JBRE9WScSGIERFSkFOCitSQURPVknEhiBESU1JVFJJSkUKK1JBRE9WScSGIERPQlJJTEEKK1JBRE9WScSGIERSQUdBTgorUkFET1ZJxIYgRFJBR0nFoEEKK1JBRE9WScSGIERSQUdJQ0EKK1JBRE9WScSGIERSQUdPTEpVQgorUkFET1ZJxIYgRFJBR1VUSU4KK1JBRE9WScSGIERVxaBBTgorUkFET1ZJxIYgR09KS08gRElQTCBJTkcKK1JBRE9WScSGIElSTUEKK1JBRE9WScSGIElWQQorUkFET1ZJxIYgSkVWVE8KK1JBRE9WScSGIEpPVkFOCitSQURPVknEhiBMSlVCT01JUgorUkFET1ZJxIYgTUFHREFMRU5BCitSQURPVknEhiBNQUdEQQorUkFET1ZJxIYgTUlMQU4KK1JBRE9WScSGIE1JTEFOCitSQURPVknEhiBNSUxBTgorUkFET1ZJxIYgTUlMQU4KK1JBRE9WScSGIE1JTEVOQQorUkFET1ZJxIYgTUlMRVZBCitSQURPVknEhiBNSUxFCitSQURPVknEhiBNSUxPxaAKK1JBRE9WScSGIE1JTE9KRQorUkFET1ZJxIYgTUlMT01JUgorUkFET1ZJxIYgTUlMVVRJTgorUkFET1ZJxIYgTUlPRFJBRworUkFET1ZJxIYgTUlPRFJBRworUkFET1ZJxIYgTUlSxIxFVEEKK1JBRE9WScSGIE1PTcSMSUxPCitSQURPVknEhiBNT03EjElMTworUkFET1ZJxIYgTkVERUxKS08KK1JBRE9WScSGIE5PVkFLCitSQURPVknEhiBPTEdBCitSQURPVknEhiBQQVZMRQorUkFET1ZJxIYgUEVUQVIKK1JBRE9WScSGIFBFVEtPCitSQURPVknEhiBSQURPSktBCitSQURPVknEhiBSQURPTUlSCitSQURPVknEhiBSQURPVkFOCitSQURPVknEhiBSQURPVkFOCitSQURPVknEhiBSQURPVkFOCitSQURPVknEhiBSQUpLTworUkFET1ZJxIYgUkFUT01JUiBESVBMIElORworUkFET1ZJxIYgUk9aSUtBCitSQURPVknEhiBTQVZPCitSQURPVknEhiBTSU1BCitSQURPVknEhiBTTEFWSUNBCitSQURPVknEhiBTTEFWSUNBCitSQURPVknEhiBTTEFWS0EKK1JBRE9WScSGIFNMQVZLTworUkFET1ZJxIYgU1JFVEVOCitSQURPVknEhiBTVEFOS08KK1JBRE9WScSGIFNURVZBTgorUkFET1ZJxIYgU1RSQUhJTkpBCitSQURPVknEhiBURVJFWklKQQorUkFET1ZJxIYtVVZFUknEhiBNSUxBIERSCitSQURPVknEhiBWRUxJTUlSCitSQURPVknEhiBWRUxKQQorUkFET1ZJxIYgVkVMSktPCitSQURPVknEhiBWRUxKS08KK1JBRE9WScSGIFZFUkEKK1JBRE9WScSGIFZFUkEKK1JBRE9WScSGIFZJREFLCitSQURPVknEhiBWSURPU0FWCitSQURPVknEhiBWTEFESU1JUgorUkFET1ZJxIYgVkxBRElNSVIKK1JBRE9WScSGIFZMQUpLTworUkFET1ZJxIYgVk9KSVNMQVYKK1JBRE9WScSGIFZVS1NBTgorUkFET1ZJxIYgWkRSQVZLTworUkFET1ZJxIYgWk9SQU4KK1JBRE9WTklLT1ZJxIYgTUFSSUpBCitSQURVIEJSQU5LTworUkFEVUpLTyDEkFVSQQorUkFEVUpLTyBBTEVLU0FOREFSCitSQURVSktPIEJSQU5LTworUkFEVUpLTyBERVNBCitSQURVSktPIERVxaBBTgorUkFEVUpLTyBEVcWgQU4KK1JBRFVKS08gR09SQU4KK1JBRFVKS08gSkFTTUlOQQorUkFEVUpLTyBMSklMSkFOQQorUkFEVUpLTyBNQVJLTworUkFEVUpLTyBNSUxBTgorUkFEVUpLTyBNSVJBCitSQURVSktPIE1JUktPCitSQURVSktPIE5FREVMSktPCitSQURVSktPIFNURVZPCitSQURVSktPViBBTEVLU0FOREFSCitSQURVSktPViBEQU5JQ0EgRElQTCBJTkcKK1JBRFVKS09WIERBTklMTworUkFEVUpLT1YgREFOSUxPCitSQURVSktPViBERUpBTgorUkFEVUpLT1YgRFJBR09MSlVCCitSQURVSktPViBMSlVCSUNBCitSQURVSktPViBMSlVCSUNBCitSQURVSktPViBNSUxBTgorUkFEVUpLT1YgTUlMSVZPSgorUkFEVUpLT1YgTUlUQVIKK1JBRFVKS09WIE5JS09MQQorUkFEVUpLT1YgUEVUQVIKK1JBRFVKS09WIFJVxb1JQ0EKK1JBRFVKS09WIFNURVZBTgorUkFEVUpLT1YgVkxBRElNSVIKK1JBRFVKS09WScSGIElMSUpBCitSQURVSktPVknEhiBKRUxLQQorUkFEVUpLT1ZJxIYgS09TVEEKK1JBRFVLQSBMQUpPxaAKK1JBRFVLScSGIFJBRE9TQVYKK1JBRFVLSU4gQUxFS1NBCitSQURVS0lOIEJSQU5LQQorUkFEVUtJTiBEQU5JQ0EKK1JBRFVLSU4gR0FWUkEKK1JBRFVLSU4gTEpVQk9NSVIKK1JBRFVLSU4gTUlMQU4KK1JBRFVLSU4gTUlMRU5LTworUkFEVUtJTiBNSVJLTworUkFEVUtJTiBSQURPU0xBVgorUkFEVUtJTiBTVE9KS0EKK1JBRFVMQcWgS0kgQk/FoEtPCitSQURVTEHFoEtJIFNURVZBTgorUkFEVUxFViBKT1ZBTgorUkFEVUxKIEpFTEVOQQorUkFEVUxPViBDVkVUSVNMQVYKK1JBRFVMT1YgQ1ZFVElTTEFWCitSQURVTE9WIEpPVkFOCitSQURVTE9WIEpVTEtBCitSQURVTE9WScSGIMW9SVZLTworUkFEVUxPVknEhiDEkE9LTworUkFEVUxPVknEhiDEkE9SxJBFCitSQURVTE9WScSGIMSQT1LEkEUKK1JBRFVMT1ZJxIYgxJBVUk8KK1JBRFVMT1ZJxIYgQUxFS1NBTkRBUgorUkFEVUxPVknEhiBBTEVLU0FOREFSCitSQURVTE9WScSGIEFOxJBFTEtBCitSQURVTE9WScSGIEFOxJBFTEtPCitSQURVTE9WScSGIEFOxJBFTEtPCitSQURVTE9WScSGIEFOQQorUkFEVUxPVknEhi1CRUxJxIYgWk9SS0EKK1JBRFVMT1ZJxIYgQk9HREFOS0EKK1JBRFVMT1ZJxIYgQk9SSVZPSgorUkFEVUxPVknEhiBCT1NBCitSQURVTE9WScSGIEJPU0lMSktBCitSQURVTE9WScSGIEJSQU5LQQorUkFEVUxPVknEhiBCUkFOS08KK1JBRFVMT1ZJxIYgQlJBTktPCitSQURVTE9WScSGIEJSQU5LTworUkFEVUxPVknEhiBCUkFOS08KK1JBRFVMT1ZJxIYgQlJBTktPCitSQURVTE9WScSGIEJSQU5LTworUkFEVUxPVknEhiBCUkFUSVNMQVYKK1JBRFVMT1ZJxIYgREFOSUpFTEEKK1JBRFVMT1ZJxIYgRFJBR0FOCitSQURVTE9WScSGIERSQUdJQ0EKK1JBRFVMT1ZJxIYgRFJBR0lDQQorUkFEVUxPVknEhiBEUkFHT0xKVUIKK1JBRFVMT1ZJxIYgRFJBR1VUSU4KK1JBRFVMT1ZJxIYgRFXFoEFOCitSQURVTE9WScSGIEdPUkFOCitSQURVTE9WScSGIElMSUpBCitSQURVTE9WScSGIEpPUkRBTgorUkFEVUxPVknEhiBKT1ZBTgorUkFEVUxPVknEhiBKT1ZBTgorUkFEVUxPVknEhiBLUlVOSVNMQVYKK1JBRFVMT1ZJxIYgS1NFTklKQQorUkFEVUxPVknEhiBMQVpBUgorUkFEVUxPVknEhiBMSlVCScWgQSBESVBMIElORworUkFEVUxPVknEhiBNQUdEQQorUkFEVUxPVknEhiBNQVJJSkFOQQorUkFEVUxPVknEhiBNQVJJSkEKK1JBRFVMT1ZJxIYgTUFSSUpBCitSQURVTE9WScSGIE1JSEFJTE8KK1JBRFVMT1ZJxIYgTUlMQU4KK1JBRFVMT1ZJxIYgTUlMQU4KK1JBRFVMT1ZJxIYgTUlMQU4KK1JBRFVMT1ZJxIYgTUlMQU4KK1JBRFVMT1ZJxIYgTUlMRU5BCitSQURVTE9WScSGIE1JTEUKK1JBRFVMT1ZJxIYgTUlMT0pFCitSQURVTE9WScSGIE1JTE9SQUQgRFIKK1JBRFVMT1ZJxIYgTUlMT1ZBTgorUkFEVUxPVknEhiBNSUxVVElOCitSQURVTE9WScSGIE1JUkpBTkEKK1JBRFVMT1ZJxIYgTUlSS08KK1JBRFVMT1ZJxIYgTUlST1NMQVZBCitSQURVTE9WScSGIE5BREEKK1JBRFVMT1ZJxIYgTkVERUxKS0EKK1JBRFVMT1ZJxIYgTklLT0xBIERJUEwgSU5HCitSQURVTE9WScSGIE5JS09MQQorUkFEVUxPVknEhiBOSUtPTEEKK1JBRFVMT1ZJxIYgTklLT0xBCitSQURVTE9WScSGIE5JTk9TTEFWQSBEUgorUkFEVUxPVknEhiBQRVRBUgorUkFEVUxPVknEhiBQRVRBUgorUkFEVUxPVknEhiBSQURFCitSQURVTE9WScSGIFJBRElWT0oKK1JBRFVMT1ZJxIYgUkFET0pFIERSCitSQURVTE9WScSGIFJBRE9KS0EKK1JBRFVMT1ZJxIYgUkFET01JUgorUkFEVUxPVknEhiBSQUpLTworUkFEVUxPVknEhiBST1pBTElKQQorUkFEVUxPVknEhiBSVcW9QQorUkFEVUxPVknEhiBSVURPTEYKK1JBRFVMT1ZJxIYgU0FWQQorUkFEVUxPVknEhiBTQVZBCitSQURVTE9WScSGIFNBVkEKK1JBRFVMT1ZJxIYgU0VMSU1JUgorUkFEVUxPVknEhiBTTEFWSUNBCitSQURVTE9WScSGIFNMT0JPREFOCitSQURVTE9WScSGIFNSRcSGS08KK1JBRFVMT1ZJxIYgU1JFVE8KK1JBRFVMT1ZJxIYgU1RBTkEKK1JBRFVMT1ZJxIYgU1RBTktPCitSQURVTE9WScSGIFNURVZBTiBEUgorUkFEVUxPVknEhiBTVEVWQU4KK1JBRFVMT1ZJxIYgU1RFVkFOCitSQURVTE9WScSGIFNWRVRLTworUkFEVUxPVknEhiBTVkVUT1pBUgorUkFEVUxPVknEhiBTVkVUT1pBUgorUkFEVUxPVknEhiBUT01BxaAKK1JBRFVMT1ZJxIYgVkVMSU1JUgorUkFEVUxPVknEhiBaTEFUSU5LQSBEUgorUkFEVUxPVknEhiBaT1JBTgorUkFEVUxPVknEhiBaT1JBTgorUkFEVUxPVknEhiBaVk9OSU1JUgorUkFEVU1JTE8gQUxFS1NBTkRBUgorUkFEVU1JTE8gR09SREFOQQorUkFEVU1JTE8gTUnEhk8KK1JBRFVNSUxPIE1JTE9SQUQKK1JBRFVNSUxPIE1JUktPCitSQURVTiDFvUVMSktPCitSQURVTiDFvUVMSktPCitSQURVTiBEUkFHQU4KK1JBRFVOIEdPUkFOCitSQURVTiBJTElKQQorUkFEVU4gSk9WQU4KK1JBRFVOIExKVUJJQ0EKK1JBRFVOIE1BUktPCitSQURVTiBNSUxPxaAKK1JBRFVOIFNMT0JPREFOCitSQURVTiBTTUlMSkEKK1JBRFVOIFZMQURPCitSQURVTkpJxIYgTUlMT01JUgorUkFEVU5LT1ZJxIYgTUlST1NMQVYKK1JBRFVOS09WScSGIFJBRE9NSVIKK1JBRFVOS09WScSGIFJBTktPCitSQURVTk9WScSGIMSQT1LEkEUKK1JBRFVOT1ZJxIYgSkVMSUNBCitSQURVTk9WScSGIEpFTElDQQorUkFEVU5PVknEhiBKRVZSRU0KK1JBRFVOT1ZJxIYgUkFEVU4KK1JBRFVOT1ZJxIYgUk9TQU5EQQorUkFEVVNJTiBNSUxFCitSQURVU0lOIFRPTUEKK1JBRFVTSU4gVkVSSUNBCitSQURVU0lOIFZMQURJTUlSCitSQURVU0lOT1ZJxIYgQklTRVIgRElQTCBJTkcKK1JBRFVTSU5PVknEhiBCT1JBCitSQURVU0lOT1ZJxIYgREFOSUxPCitSQURVU0lOT1ZJxIYgTUlMQU4KK1JBRFVTSU5PVknEhiBORURFTEpLTworUkFEVVNJTk9WScSGIFZPSklTTEFWCitSQURWQU5KIFNBxaBBCitSQURWQU5KSSBKT1ZBTgorUkFEVkFOU0tJIFNURVZBTgorUkFGQSBBTkRSQcWgCitSQUZBSSBHQUJPUgorUkFGQUkgScWgVFZBTgorUkFGQUkgSlVMSUpBTkEKK1JBRkFJIFNURVZBTgorUkFGQUkgVElCT1IKK1JBRkFKTE9WScSGIFpVWkFOQQorUkFGQUwgxJBVUsSQSU5LQQorUkFGQUwgTEFKT8WgCitSQUZBTCBNQVJJSkEKK1JBR0HEjCBJVkFOCitSQUdBSSBKT1ZHRU4KK1JBR0FKSSDEkFVSQQorUkFHQUpJIElSSU5BCitSQUdBSkkgTklLT0xBCitSQUdBSkkgTklLT0xBCitSQUdBSkkgVkxBREEKK1JBR0FKSSBWTEFEQQorUkFHQUpJIFZMQURJTUlSCitSQUdPIEFEQU0KK1JBR1XFvSBEUkHFvUVOCitSQUhFTEnEhiBTVkVUT01JUiBEUgorUkFITUFOIE1JSEFKTE8KK1JBScSMIEFMRUtTQU5EQVIKK1JBScSMIE5JS09MQQorUkFJxIxFVknEhiDFvUlWS08KK1JBScSMRVZJxIYgxb1JVk9KSU4KK1JBScSMRVZJxIYgxb1JVk9KSU4KK1JBScSMRVZJxIYgQk9SS0EKK1JBScSMRVZJxIYgRFJBR0nEhgorUkFJxIxFVknEhiBNSUxBTgorUkFJxIxFVknEhiBNSUxJQ0EKK1JBScSMRVZJxIYgTklLT0xBCitSQUnEjEVWScSGIFZFU05BCitSQUnEjEVWScSGIFpPUkFOCitSQUnEjEnEhiDFvUlWT0pJTgorUkFJxIxJxIYgxb1JVk9KSU4KK1JBScSGIERSQUdBTgorUkFJxIYgTklLT0xBCitSQUlMScSGIFJBTktPCitSQUlMScSGIFZVS09TQVZBCitSQUlNT1ZTS0kgREVTQU5LQQorUkFJTkFDIE1BUklLQQorUkFJTkFDIE1JVEFSCitSQUrEjEFOIEnFoFRWQU4KK1JBSsSMRVRJxIYgRFJBR09NSVIKK1JBSsSMRVRJxIYgRU1JTAorUkFKxIxFVEnEhiBHT0pLTworUkFKxIxFVEnEhiBJVkFOS0EKK1JBSsSMRVRJxIYgTEFaQVIKK1JBSsSMRVRJxIYgTEpVQklDQQorUkFKxIxFVEnEhiBNSUxJVk9KCitSQUrEjEVUScSGIE1JUk9TTEFWCitSQUrEjEVUScSGIFJVxb1JQ0EKK1JBSsSMRVRJxIYgU0lOScWgQQorUkFKxIxFVEnEhiBTVE9KQU4KK1JBSsSMRVRJxIYgVkVSQQorUkFKxIxFVEnEhiBWTEFESVNMQVYKK1JBSsSMRVRJxIYgVkxBRElTTEFWCitSQUrEjEVWScSGIFZMQURFVEEKK1JBSsSMScSGIEdSR0EKK1JBSsSMScSGIFBBVkxFCitSQUrEjEnEhiBTVEVWQU4KK1JBSsWgScSGIEFOxJBBCitSQUrFoEnEhiBEQU5JQ0EKK1JBSsWgScSGIERVxaBBTgorUkFKxaBJxIYgSUxJSkEKK1JBSsWgScSGIEpFTEEKK1JBSsWgScSGIE5BREEKK1JBSsWgScSGIFJBREUKK1JBSsWgScSGIFNUQU5BCitSQUrFoEnEhiBTVEFOS08KK1JBSsWgTEkgSUxPTkEKK1JBSsWgTEkgTEFTTE8KK1JBSkHEjEnEhi3EjEFQQUtPVknEhiBKRUxJQ0EKK1JBSkHEjEnEhiDEkFVSTworUkFKQcSMScSGIMSQVVJPCitSQUpBxIxJxIYgQUxFS1NBTkRBUgorUkFKQcSMScSGIEJPUklTTEFWCitSQUpBxIxJxIYgQk9SSVNMQVYKK1JBSkHEjEnEhiBCUkFOSVNMQVZBCitSQUpBxIxJxIYgRE1JVEFSCitSQUpBxIxJxIYgRFXFoEFOCitSQUpBxIxJxIYgR09SREFOQQorUkFKQcSMScSGIElMSUpBCitSQUpBxIxJxIYgSk9WQU4KK1JBSkHEjEnEhiBNSUxBTgorUkFKQcSMScSGIE1JTEFOCitSQUpBxIxJxIYgTUlMQU4KK1JBSkHEjEnEhiBQRVRBUgorUkFKQcSMScSGIFRJSE9NSVIKK1JBSkHEjEnEhiBWTEFESU1JUgorUkFKQcSMScSGIFZMQURPCitSQUpBxIxJxIYgWk9SSUNBCitSQUpBxIxJxIYgWk9SS0EKK1JBSkFLIEJSQU5LTworUkFKQUsgTUlMRU5BCitSQUpBSyBORUdPVkFOCitSQUpBS09WQUMgTUlPRFJBRworUkFKQUtPVkFDIFpPUkFOCitSQUpCRVIgSk/FvUVGCitSQUpEQSBQRVRBUgorUkFKREEgUEVURVIKK1JBSkRBIFNBTkRJCitSQUpFVknEhiBLT1NUQQorUkFKRVZJxIYgVkFMRVJJSkEKK1JBSkggREXFvUUKK1JBSkggT0xHQQorUkFKSCBWTEFESU1JUgorUkFKScSMIE1JTEFOCitSQUpJxIxJxIYgS0FUQUxJTgorUkFKScSMScSGIE1JT0RSQUcKK1JBSknEjEnEhiBNSU9EUkFHCitSQUpJxIYgQU5LSUNBCitSQUpJxIYgQk9SSVNBVgorUkFKScSGIERBUklOS0EKK1JBSknEhiBERVNBTktBCitSQUpJxIYgRE9CUklWT0oKK1JBSknEhiBEUkFHQU4KK1JBSknEhiBEUkFHQQorUkFKScSGIERSQUdJQ0EKK1JBSknEhiBEUkFHVVRJTgorUkFKScSGIEdPUkRBTkEKK1JBSknEhiBJR05KQVQKK1JBSknEhiBJU0EKK1JBSknEhiBKT1ZBTgorUkFKScSGIEpPVkFOCitSQUpJxIYgS0FUQVJJTkEKK1JBSknEhiBLT1ZJTktBCitSQUpJxIYgS1JJU1RJTkEKK1JBSknEhiBMSlVCSUNBCitSQUpJxIYgTFVLQQorUkFKScSGIE1JTEFOCitSQUpJxIYgTUlMRU5BCitSQUpJxIYgTUlMS0EKK1JBSknEhiBNSUxPUkFECitSQUpJxIYgTUlPTUlSCitSQUpJxIYgTkFEQQorUkFKScSGIE5BREEKK1JBSknEhiBOSUtPTEEKK1JBSknEhiBQRVJLQQorUkFKScSGIFBFVEFSCitSQUpJxIYgUkFERQorUkFKScSGIFJBRElTTEFWCitSQUpJxIYgUkFETUlMQQorUkFKScSGIFJVxb1BCitSQUpJxIYgU0xBVktBCitSQUpJxIYgU05Fxb1BTkEKK1JBSknEhiBTUEFTT0pFIERSCitSQUpJxIYgU1RFVkFOCitSQUpJxIYgU1RFVkFOCitSQUpJxIYgU1RFVkFOCitSQUpJxIYgVkVMSU1JUgorUkFKScSGIFZFTElNSVIKK1JBSknEhiBWRUxJTktBCitSQUpJxIYgVk9KSVNMQVYKK1JBSknEhiBWT0pJU0xBVgorUkFKScSGIFpPUkFOCitSQUpJTEnEhiBKT1ZBTktBCitSQUpJTkFDLUJVS1VST1YgRFJBR0FOQQorUkFKSU5BQyBORU5BRAorUkFKSU5BQyBTVkVUT1pBUgorUkFKSU5PVknEhiBNSVJLTworUkFKS0nEhiBOSUtPTEEKK1JBSktPViBCT0dEQU4gRFIKK1JBSktPViBCT1JJVk9KCitSQUpLT1YgREVTQU5LQQorUkFKS09WIERSQUdJxIYKK1JBSktPViBEVcWgQU4KK1JBSktPViBJU0lET1IKK1JBSktPViBJVkFOCitSQUpLT1YgSVZBTgorUkFKS09WIExKVUJPTUlSCitSQUpLT1YgTUFSS08KK1JBSktPViBNSUxBTgorUkFKS09WIE1JTEVOS08KK1JBSktPViBNSUxPUkFECitSQUpLT1YgTUxBREVOIERJUEwgSU5HCitSQUpLT1YgTU9NSVIKK1JBSktPViBNT01JUgorUkFKS09WIE5JS09MQQorUkFKS09WIFBFVEFSCitSQUpLT1YgUkFKS08KK1JBSktPViBSQVRJTUlSCitSQUpLT1YgU0FWQQorUkFKS09WIFNURVZBTgorUkFKS09WIFZFU05BCitSQUpLT1YgVkxBRElNSVIKK1JBSktPViBWVUtBxaBJTgorUkFKS09WScSGIMSMRURPTUlSCitSQUpLT1ZJxIYgxb1JVkFOIERSCitSQUpLT1ZJxIYgQU5LSUNBCitSQUpLT1ZJxIYgQkxBR1VUSU4KK1JBSktPVknEhiBCT0dPTEpVQgorUkFKS09WScSGIEJPUklWT0pFCitSQUpLT1ZJxIYgQlJBTktPCitSQUpLT1ZJxIYgREFNTkpBTgorUkFKS09WScSGIERSQUdBTkEKK1JBSktPVknEhiBEUkFHQU4KK1JBSktPVknEhiBEUkFHScWgQQorUkFKS09WScSGIERSQUdPTEpVQgorUkFKS09WScSGIERVxaBBTgorUkFKS09WScSGIElWTworUkFKS09WScSGIExKVUJPTUlSCitSQUpLT1ZJxIYgTUlMQU4KK1JBSktPVknEhiBNSUxFVkEKK1JBSktPVknEhiBNSUxJxIYKK1JBSktPVknEhiBNSUxKS08KK1JBSktPVknEhiBNSVJLTworUkFKS09WScSGIE1JUk9MSlVCCitSQUpLT1ZJxIYgTklLT0xBCitSQUpLT1ZJxIYgUEVUQVIKK1JBSktPVknEhiBSQUpLTworUkFKS09WScSGIFJBVEtPCitSQUpLT1ZJxIYgU0xBVktPCitSQUpLT1ZJxIYgU0xPQk9EQU4KK1JBSktPVknEhiBTUkJPTEpVQgorUkFKS09WScSGIFNSRVRFTgorUkFKS09WScSGIFNURVZBTgorUkFKS09WScSGIFNUT0pBCitSQUpLT1ZJxIYgU1ZFVElTTEFWCitSQUpLT1ZJxIYgVEFUSkFOQQorUkFKS09WScSGIFRPTUlTTEFWCitSQUpLT1ZJxIYgVkVMSU1JUgorUkFKS09WScSGIFZJRE9TQVYKK1JBSktPVknEhiBWTEFTVElNSVIKK1JBSkxJxIYgTUlMS0EKK1JBSkxJxIYgTkVWRU5LQQorUkFKTU9WU0tBIEpFTFpBCitSQUpOScSGIERSQUdBTgorUkFKTknEhiBOT1ZBSworUkFKTklOR0VSIEpPxb1FRgorUkFKTk9WScSGIEFMT0paCitSQUpOT1ZJxIYgQkxBxb0KK1JBSk5PVknEhiBKRUxFTkEKK1JBSk5PVknEhiBKT1ZBTgorUkFKTk9WScSGIEpVTElKQU5BCitSQUpOT1ZJxIYgTkFEQQorUkFKTk9WScSGIFNORcW9QU5BCitSQUpOUFJFSFQgVkVSQQorUkFKVEEgScWgVFZBTgorUkFKVEEgTUFSSUpBCitSQUpUQSBOSUtPTEEKK1JBSlRFTkJBSCBFTEVNSVIKK1JBSlRFUiBEUkFHSUNBCitSQUpURVIgWk9MVEFOCitSQUsgQU5JQ0EKK1JBSyBNQVJJSkEKK1JBSyBOSUtPTEEKK1JBSyBWRUxJQk9SCitSQUvFoEFOSkkgTEFESVNMQVYKK1JBS0FTIMSQT1LEkEUKK1JBS0FTIFJBRE9KS0EKK1JBS0FaT1YgTUlPRFJBRworUkFLRVRJxIYgVE9NSVNMQVYKK1JBS0nEhiDFvUFSS08KK1JBS0nEhiDFvUlWS0EKK1JBS0nEhiDFvUlWS08KK1JBS0nEhiDEkE9SxJBFCitSQUtJxIYgxJBPUsSQRQorUkFLScSGIMSQT1LEkEUKK1JBS0nEhiDEkFVSQQorUkFLScSGIEFMRUtTQU5EQVIKK1JBS0nEhiBBTsSQRUxJSkEKK1JBS0nEhiBBTsSQRUxLQQorUkFLScSGIEFOQVNUQVNJSkEKK1JBS0nEhiBBTkEKK1JBS0nEhiBCTEFHT0pFCitSQUtJxIYgQk/FvU8KK1JBS0nEhiBCT0dEQU5LQQorUkFLScSGIEJPUk8KK1JBS0nEhiBCUkFOSU1JUgorUkFLScSGIEJSQU5JU0xBVgorUkFLScSGIEJSQU5LQQorUkFLScSGIEJSQU5LTworUkFLScSGIERBUklOS0EKK1JBS0nEhiBET01JTktBCitSQUtJxIYgRFJBR0FOQQorUkFLScSGIERSQUdBTgorUkFLScSGIERSQUdJxaBBCitSQUtJxIYgRFJBR09NSVIKK1JBS0nEhiBEVcWgQU5LQQorUkFLScSGIERVxaBBTgorUkFLScSGIERVxaBBTgorUkFLScSGIERVxaBBTgorUkFLScSGIERVxaBBTgorUkFLScSGIERVxaBBTgorUkFLScSGIERVxaBBTgorUkFLScSGIERVxaBBTgorUkFLScSGIERVxaBBTgorUkFLScSGIERVxaBBTgorUkFLScSGIERVxaBBTgorUkFLScSGIEdBVlJBCitSQUtJxIYgR0xJR09SSUpFCitSQUtJxIYgR09SREFOQQorUkFLScSGIEdSVUpBCitSQUtJxIYgSVZBTgorUkFLScSGIEpPVkFOS0EKK1JBS0nEhiBKT1ZBTgorUkFLScSGIEpPVkFOCitSQUtJxIYgSk9WQU4KK1JBS0nEhiBKT1ZJQ0EKK1JBS0nEhiBLQVRJQ0EKK1JBS0nEhiBLTEVNRU5UCitSQUtJxIYgTEFaQVIKK1JBS0nEhiBMSklMSkFOQQorUkFLScSGIExKSUxKQU5BCitSQUtJxIYgTEpJTEpBTkEKK1JBS0nEhiBMSlVCScWgQSBEUiBMRUtBUgorUkFLScSGIExKVUJJxaBBCitSQUtJxIYgTEpVQklDQQorUkFLScSGIExKVUJJQ0EKK1JBS0nEhiBMSlVCSUNBCitSQUtJxIYgTEpVQklDQQorUkFLScSGIExKVUJPTUlSCitSQUtJxIYgTEpVQk8KK1JBS0nEhiBNQVRJSkEKK1JBS0nEhiBNSUxBTktBCitSQUtJxIYgTUlMQU4KK1JBS0nEhiBNSUxBTgorUkFLScSGIE1JTEFOCitSQUtJxIYgTUlMQU4KK1JBS0nEhiBNSUxBTgorUkFLScSGIE1JTEFOCitSQUtJxIYgTUlMQU4KK1JBS0nEhiBNSUxFTktPCitSQUtJxIYgTUlMRU5LTworUkFLScSGIE1JTEVOS08KK1JBS0nEhiBNSUxJQ0EKK1JBS0nEhiBNSUxJTkEKK1JBS0nEhiBNSUxJVk9KRQorUkFLScSGIE1JTElWT0oKK1JBS0nEhiBNSUxJVk9KCitSQUtJxIYgTUlMSVZPSgorUkFLScSGIE1JTEtBCitSQUtJxIYgTUlMT8WgCitSQUtJxIYgTUlMT1ZBTgorUkFLScSGIE1JTFVUSU4KK1JBS0nEhiBNSU9EUkFHCitSQUtJxIYgTUlSQQorUkFLScSGIE1JUkEKK1JBS0nEhiBNSVJKQU5BCitSQUtJxIYgTUlSSkFOQQorUkFLScSGIE1JUkpBTkEKK1JBS0nEhiBNSVJKQU5BCitSQUtJxIYgTUlST1NMQVZBCitSQUtJxIYgTkFUQUxJSkEKK1JBS0nEhiBORUJPSsWgQQorUkFLScSGIE5FREVMSktPCitSQUtJxIYgTkVOQUQKK1JBS0nEhiBORU5BRAorUkFLScSGIE5JS09MQQorUkFLScSGIE5JS09MQQorUkFLScSGIE5PVkFLCitSQUtJxIYgT0JSQUQKK1JBS0nEhiBQQUpBCitSQUtJxIYgUEFORQorUkFLScSGIFBBVkxFCitSQUtJxIYgUEVUQVIKK1JBS0nEhiBQRVRBUgorUkFLScSGIFBSRURSQUcKK1JBS0nEhiBSQURNSUxBCitSQUtJxIYgUkFETUlMQQorUkFLScSGIFJBRE9KS0EKK1JBS0nEhiBSQURPSktBCitSQUtJxIYgUkFET1NMQVYgRElQTCBJTkcKK1JBS0nEhiBSQURPVkFOCitSQUtJxIYgUkFET1ZBTgorUkFLScSGIFJBRE9WQU4KK1JBS0nEhiBSQURPVkFOCitSQUtJxIYgUkFET1ZBTgorUkFLScSGIFJBSktPCitSQUtJxIYgUkFKS08KK1JBS0nEhiBSVcW9SUNBCitSQUtJxIYgU0FWQQorUkFLScSGIFNMQVZLQQorUkFLScSGIFNMQVZLTworUkFLScSGIFNMT0JPREFOCitSQUtJxIYgU0xPQk9EQU4KK1JBS0nEhiBTTE9CT0RBTgorUkFLScSGIFNNSUxKQU5BCitSQUtJxIYgU09GSUpBCitSQUtJxIYgU1RBTUVOS0EKK1JBS0nEhiBTVEVWQU5LQQorUkFLScSGIFNURVZBTgorUkFLScSGIFNURVZBTgorUkFLScSGIFNURVZBTgorUkFLScSGIFNURVZBTgorUkFLScSGIFNURVZJQ0EKK1JBS0nEhiBTVE9KQU5LQQorUkFLScSGIFNUT0pBTgorUkFLScSGIFNWRVRPTUlSCitSQUtJxIYgU1ZFVE9aQVIKK1JBS0nEhiBUSU1BCitSQUtJxIYgVE9ET1IKK1JBS0nEhiBUT01JU0xBVgorUkFLScSGIFZBU0lMSUpFCitSQUtJxIYgVkVMRU1JUgorUkFLScSGIFZFUkEKK1JBS0nEhiBWRVJBCitSQUtJxIYgVklET1NBVkEKK1JBS0nEhiBWTEFESU1JUgorUkFLScSGIFZMQURJTUlSCitSQUtJxIYgVkxBRElNSVIKK1JBS0nEhiBWTEFESU1JUgorUkFLScSGIFZMQURJTUlSCitSQUtJxIYgWkFHQQorUkFLScSGIFpMQVRBCitSQUtJxIYgWk9SQU4KK1JBS0nEhiBaT1JLQQorUkFLScSGRVZJxIYgU1RBTUVOQQorUkFLScSGRVZJxIYgVElIT01JUgorUkFLScSGRVZJxIYgWk9SQU4KK1JBS0lOIMSQT1LEkEUKK1JBS0lOIEFOVFVOCitSQUtJTiBCT1JJU0xBVgorUkFLSU4gR09KS08KK1JBS0lOIEpFTElDQQorUkFLSU4gSlVMSUpBTkEKK1JBS0lOLU1BUlRJTk9WScSGIFJBRE1JTEEKK1JBS0lOIFJBRE9WQU4KK1JBS0lUQSBBTktJQ0EKK1JBS0lUQSBCT8W9TworUkFLSVRBIENWSUpBTgorUkFLSVRBIENWSUpPCitSQUtJVEEgSk9WTworUkFLSVRBIExKSUxKQU5BCitSQUtJVEEgTUlMQU4KK1JBS0lUQSBNTEFESU5LTworUkFLSVRBIFBFVEFSCitSQUtJVEEgU0lNS0EKK1JBS0/EjEVWScSGIMSQT1LEkEUKK1JBS0/EjEVWScSGIEJPUk8KK1JBS0/EjEVWScSGIEdSVUpJQ0EKK1JBS0/EjEVWScSGIE1BUklKQU4KK1JBS0/EjEVWScSGIE1BUktPCitSQUtPxIxFVknEhiBNSUxBTgorUkFLT8SMRVZJxIYgTUlMSUpBCitSQUtPxIxFVknEhiBNSVJPU0xBVgorUkFLT8SMRVZJxIYgUkFERQorUkFLT8SMRVZJxIYgUkFETUlMQQorUkFLT8WgIEpBTk/FoAorUkFLT8WgIEtBVElDQQorUkFLT8WgIFpWT05JTUlSCitSQUtPxaBJIE5BREEKK1JBS0/FoEkgVkxBRElTTEFWCitSQUtPTkpBQyBCT0dPTEpVQgorUkFLT05KQUMgUFVOScWgQQorUkFLT1ZJxIYgQUxFS1NBTkRBUgorUkFLT1ZJxIYgRFJBR0lDQQorUkFLT1ZJxIYgRFXFoEFOCitSQUtPVknEhiBKVUdPU0xBVgorUkFLT1ZJxIYgTEpVQklOS0EKK1JBS09WScSGIE1JTEFOCitSQUtPVknEhiBNSUxPVkFOCitSQUtPVknEhiBOSUtPTEEKK1JBS09WScSGIE9TVE9KQQorUkFLT1ZJxIYgUkFET01JUgorUkFLT1ZJxIYgUkFUS08KK1JBS09WScSGIFNMQVZLTworUkFLT1ZJxIYgU1RBTklTTEFWCitSQUtPVknEhiBUT01JU0xBVgorUkFLT1ZJxIYgVklUT01JUktBCitSQUtPVknEhiBWTEFETworUkFLVcWgScSGIFZMQURJTUlSCitSQUxFVEnEhiDFvUlWS0EKK1JBTEVUScSGIMSQT1LEkEUKK1JBTEVUScSGIMSQVVJBCitSQUxFVEnEhiBBTsSQRUxLQQorUkFMRVRJxIYgQU5BCitSQUxFVEnEhiBCT0dEQU4KK1JBTEVUScSGIERPQlJJQ0EKK1JBTEVUScSGIERSQUdBTgorUkFMRVRJxIYgRFXFoEFOCitSQUxFVEnEhiBJTElKQQorUkFMRVRJxIYgSkVMSUNBCitSQUxFVEnEhiBMQVpBUgorUkFMRVRJxIYgTEFaQVIKK1JBTEVUScSGIExBWkFSCitSQUxFVEnEhiBMRVBPU0FWQQorUkFMRVRJxIYgTUFKQQorUkFMRVRJxIYgTUlMQU4KK1JBTEVUScSGIE1JTE/FoAorUkFMRVRJxIYgTUlMT8WgCitSQUxFVEnEhiBNSUxPUkFECitSQUxFVEnEhiBNSVJLTworUkFMRVRJxIYgTUlST1NMQVYKK1JBTEVUScSGIE1MQURFTgorUkFMRVRJxIYgUEVUQVIKK1JBTEVUScSGLVNBVknEhiBKRUxFTkEKK1JBTEVUScSGLVNBVknEhiBKRUxFTkEKK1JBTEVUScSGIFZFTEpLTworUkFMRVRJxIYgVkVSQQorUkFMRVRJxIYgWk9SQU4KK1JBTEVUScSGIFpPUklDQQorUkFMRVZJxIYgTkVCT0rFoEEKK1JBTEnEhiDFvUlWT0pJTgorUkFMScSGIEJSQU5LTworUkFMScSGIERSQUdJQ0EKK1JBTEnEhiBEVcWgQU4KK1JBTEnEhiBNQVJJSkEKK1JBTEnEhiBNQVJJSkEKK1JBTEnEhiBNSUxFCitSQUxJxIYgTU9NSVJLQQorUkFMScSGIFNURVZBTgorUkFMScSGIFNURVZBCitSQUxKScSGIEFOxJBFTEtPCitSQUxKScSGIERSQUdJTkpBCitSQUxKScSGIERVxaBBTgorUkFMSknEhiBORURFTEpLTworUkFNQcSMIEFOSUNBCitSQU1BxIwgSVZBTgorUkFNQcSMIEpVTElKQU4KK1JBTUHEjCBMRU9OQQorUkFNQcSMIExKVUJPTUlSCitSQU1BxIwgTEpVQk9NSVIKK1JBTUHEjCBMSlVCT01JUgorUkFNQcSMIE1BUklKQQorUkFNQcSMIE1JSEFKTE8KK1JBTUHEjCBNSUhBSkxPCitSQU1BxIwgTUlST1NMQVYKK1JBTUHEjCBOQURBCitSQU1BxIwgTkFUQUxJSkEKK1JBTUHEjCBQRVRBUgorUkFNQcSMIFNJTUVPTgorUkFNQcSMIFZMQURJTUlSCitSQU1BxIwgWkRFTktBCitSQU1BxIYgTUlMRVZBCitSQU1BREFOSSBST1pBCitSQU1BREFOT1YgTVVNVURJSkEKK1JBTUFEQU5PVknEhiDEkEVNQUxKCitSQU1BREFOT1ZJxIYgSkFLT1YKK1JBTUFEQU5PVlNLSSBOQURBCitSQU1BREFOT1ZTS0kgTkVERUxKS08KK1JBTUFEQU5TS0kgRFJBR0nEhgorUkFNQURBTlNLSSBKRUxFTkEKK1JBTUFEQU5TS0kgTUlMSU5LQQorUkFNQVpBTk9WIFZJS1RPUgorUkFNScSGIMSQVUtBCitSQU1JxIYgSk9WQU5LQQorUkFNScSGIExBWkFSCitSQU1JxIYgTFVLQQorUkFNScSGIExVS0EKK1JBTUnEhiBNSUxPxaAgRElQTCBPRUMKK1JBTUnEhiBOSUtPTEEKK1JBTUnEhiBSQURPSktBCitSQU1JxIYgU1RPSkFOCitSQU1JxIYgVkVMSURBCitSQU1MSkFLIFZMQURJTUlSCitSQU1MSkFLIFpMQVRLTworUkFOxIxJxIYgxaBJTUUKK1JBTsSMScSGIERVxaBBTktBCitSQU7EjEnEhiBIUkFOSVNMQVYKK1JBTsSMScSGIEpPUkRBTgorUkFOxIxJxIYgTUlMT8WgCitSQU7EjEnEhiBSQU5LTworUkFOxJBFTE9WScSGIMSQT1LEkEUKK1JBTsSQRUxPVknEhiBIUkFOSVNMQVYKK1JBTsSQRUxPVknEhiBJTElKQQorUkFOxJBFTE9WScSGIExKSUxKQU5BCitSQU7EkEVMT1ZJxIYgTEpVQknFoEEKK1JBTsSQRUxPVknEhiBMSlVCT0RSQUcKK1JBTsSQRUxPVknEhiBNSVJKQU5BCitSQU7EkEVMT1ZJxIYgTUlST1NMQVYKK1JBTsSQRUxPVknEhiBNSVJPU0xBVgorUkFOxJBFTE9WScSGIE1MQURFTgorUkFOxJBFTE9WScSGIE9CUkFECitSQU7EkEVMT1ZJxIYgUlXFvUlDQQorUkFOxJBFTE9WScSGIFNMQVZPTEpVQgorUkFOxJBFTE9WScSGIFNURVZBTgorUkFOxJBFTE9WScSGIFRPTUlTTEFWCitSQU7EkEVMT1ZJxIYgVkxBU1RJTUlSCitSQU7EkEVMT1ZJxIYgWk9SQU4KK1JBTkRFTEogxJBPUsSQRQorUkFOREVMSiDEkFVSxJBJTktBCitSQU5ERUxKIExBWkFSCitSQU5ERUxKIE9MSVZFUkEKK1JBTkRFTEogUEVUQVIKK1JBTkRFTEogU1RFVkFOCitSQU5ERUxKIFNWRVRPWkFSCitSQU5HRUxPViBESU1JVEFSCitSQU5HRUxPViBTVEVWQU4KK1JBTkdFTE9WIFNURVZBTgorUkFOScSGIFZMQURJU0xBVgorUkFOSU4gSk9WQU4KK1JBTklOIExBWkFSCitSQU5JU0FWIFJBRElWT0oKK1JBTklTQVZMSkVWIMW9SVZLTworUkFOSVNBVkxKRVYgxJBPUsSQRQorUkFOSVNBVkxKRVYgxJBPUsSQRQorUkFOSVNBVkxKRVYgR09SREFOQQorUkFOSVNBVkxKRVYgTUlMSUNBCitSQU5JU0FWTEpFViBNSUxPxaAKK1JBTklTQVZMSkVWIFBBSkEKK1JBTklTQVZMSkVWIFJBREEKK1JBTklTQVZMSkVWIFJBRE1JTEEKK1JBTklTQVZMSkVWIFJBRE1JTEEKK1JBTklTQVZMSkVWIFJBRE9TTEFWCitSQU5JU0FWTEpFViBTTEFWT0xKVUIKK1JBTklTQVZMSkVWIFNURVZBTgorUkFOSVNBVkxKRVYgVElKQU5BCitSQU5JU0FWTEpFVknEhiDFvUFSS08KK1JBTklTQVZMSkVWScSGIMW9RUxKS08KK1JBTklTQVZMSkVWScSGIEJPR1VNSUxBCitSQU5JU0FWTEpFVknEhiBET0JSSVZPSgorUkFOSVNBVkxKRVZJxIYgRFXFoEFOCitSQU5JU0FWTEpFVknEhiBKRUxFTkEKK1JBTklTQVZMSkVWScSGIE5FQk9KxaBBCitSQU5JU0FWTEpFVknEhiBSQURJVk9KCitSQU5JU0FWTEpFVknEhiBTSU5JxaBBCitSQU5JU0FWTEpFVknEhiBTTEFWS0EKK1JBTklTQVZMSkVWScSGIFZJT0xFVEEKK1JBTklTQVZMSkVWScSGIFpPUkFOCitSQU5JU0xBVi1MQVJUWSBOQURBIERSCitSQU5JVE9WScSGIEJPxaBLTworUkFOSVRPVknEhiBCT0dPTEpVQgorUkFOSVRPVknEhiBESVZOQQorUkFOSVRPVknEhiBEUkFHT1NMQVYKK1JBTklUT1ZJxIYgSkVMSUNBCitSQU5JVE9WScSGIFNMQVZJQ0EKK1JBTklUT1ZJxIYgVkVMSVNMQVYKK1JBTktJxIYgU1RFVk8KK1JBTktJxIYgVE9NSVNMQVYKK1JBTktPViBBTktJQ0EKK1JBTktPViBEUkFHQU4gRFIKK1JBTktPViBEUkFHT0xKVUIKK1JBTktPViBHUk9aREEKK1JBTktPViBJUkVOQQorUkFOS09WIElWQU5LQQorUkFOS09WIEpPVkFOCitSQU5LT1YgS09TVEEKK1JBTktPViBMSklMSkFOQQorUkFOS09WIExKVUJJQ0EKK1JBTktPViBNQVJJSkEKK1JBTktPViBNSUxBTgorUkFOS09WIE1JTElWT0oKK1JBTktPViBNSVJPU0xBVgorUkFOS09WIE5FREVMSktPCitSQU5LT1YgTkVERUxKS08KK1JBTktPViBPTEdJQ0EKK1JBTktPViBQRVRBUgorUkFOS09WIFJBRElTTEFWCitSQU5LT1YgUkFETUlMQQorUkFOS09WIFJBRE9KS0EKK1JBTktPViBTVEVWQU4KK1JBTktPViBTVEVWQU4KK1JBTktPViBUQU5BU0lKRQorUkFOS09WIFpPUkEKK1JBTktPVknEhiDFvUlWS08KK1JBTktPVknEhiBBTsSQRUxLQSBEUgorUkFOS09WScSGIEFORFJJSkEKK1JBTktPVknEhiBBTktBCitSQU5LT1ZJxIYgQk/FoEtPCitSQU5LT1ZJxIYgQk9KQU4KK1JBTktPVknEhiBCT1JJVk9KCitSQU5LT1ZJxIYgQlJBTklTTEFWCitSQU5LT1ZJxIYgQlJBTktBCitSQU5LT1ZJxIYgREFSSU5LQQorUkFOS09WScSGIERFU0FOS0EKK1JBTktPVknEhiBEUkFHTworUkFOS09WScSGIERVxaBBTgorUkFOS09WScSGIERVxaBJQ0EKK1JBTktPVknEhiBEVUJSQVZLQQorUkFOS09WScSGIElSRU5BCitSQU5LT1ZJxIYgSVZBTgorUkFOS09WScSGIEpPVkFOCitSQU5LT1ZJxIYgTEpVQklDQQorUkFOS09WScSGIE1FTEFOSUpBCitSQU5LT1ZJxIYgTUlMSUNBCitSQU5LT1ZJxIYgTUlST1NMQVYKK1JBTktPVknEhiBOSUtPTEEgRElQTCBJTkcKK1JBTktPVknEhiBQUkVEUkFHCitSQU5LT1ZJxIYgUkFESVZPSgorUkFOS09WScSGIFJBVE9NSVIKK1JBTktPVknEhiBST1pBTElKQQorUkFOS09WScSGIFNMT0JPREFOCitSQU5LT1ZJxIYgU1RFVkFOCitSQU5LT1ZJxIYgU1ZFVE9aQVIKK1JBTktPVknEhiBTVkVUT1pBUgorUkFOS09WScSGIFRPTUlTTEFWCitSQU5LT1ZJxIYgVlVLT1NBVkEKK1JBTktPVknEhiBaT1JBTgorUkFOT0dBSkVDIElWQU4KK1JBT05JxIYgxJBPUsSQRQorUkFPTknEhiBJS09OSUpBCitSQU9OScSGIEpBTktPCitSQU9OScSGIFJBREVOS08KK1JBT05JxIYgU1BBU09KRQorUkFPTknEhiBWVUtPTEEKK1JBUMSMTyBLQVRBTElOCitSQVBBScSGIERFSkFOCitSQVBBScSGIE1JT0RSQUcgRFIKK1JBUEFJxIYgUkFERU5LQQorUkFQQUnEhiBTVEVWQU4KK1JBUEFKScSGIEFOQU1BUklKQQorUkFQQUpJxIYgQk9SSVZPSkUKK1JBUEFKScSGIERVxaBLTworUkFQQUpJxIYgTUlMQU4gQURWT0tBVAorUkFQQUpJxIYgTUlMQU4KK1JBUEFKScSGIE1JTEFOCitSQVBBSknEhiBSQURPSkEKK1JBUEFKScSGIFNURVZBTgorUkFQQUpJxIYgVEFNQVJBCitSQVBJxIYgQk9SRQorUkFQScSGIERSQUdPTUlSCitSQVBJxIYgRFXFoEFOS0EKK1JBUEnEhiBKT1ZBTgorUkFQScSGIEpPVkFOCitSQVBJxIYgTUlMQU4KK1JBUEnEhiBOQURBCitSQVBJxIYgTkVOQUQKK1JBUEnEhiBSQURFCitSQVBJxIYgUlXFoEtPCitSQVBPIFNUSkVQQU4KK1JBUE9USSBJxaBUVkFOCitSQVNQT1BPVknEhiBCT8WgS08KK1JBU1BPUE9WScSGIE1JTE/FoAorUkFTUE9QT1ZJxIYgU0xPQk9EQU4KK1JBU1BPUE9WScSGIFNWRVRJU0xBVgorUkFTUE9QT1ZJxIYgVkxBRElTTEFWCitSQVNUQVZBQyBQRVRBUgorUkFTVElLIMSQT1LEkEUKK1JBU1RPVkFDIMSQVVJPCitSQVNUT1ZJxIYgSUxJSkEKK1JBU1RPVknEhiBKRUxFTkEKK1JBU1RPVknEhiBNSUxBTgorUkFTVE9WScSGIE1JTElDQQorUkFTVE9WScSGLVBMSVZFTEnEhiBERVNBTktBCitSQVNUT1ZJxIYgUkFET0pLQQorUkFTVE9WScSGIFNMT0JPREFOCitSQVNUT1ZJxIYgU1RFVkFOCitSQVNUT1ZJxIYgVkVSQQorUkFUIEZFUkVOQworUkFUIEZSQU5KQQorUkFUIEpBS09CCitSQVQgSk9TSVAKK1JBVEFKQUMgRFJBR09MSlVCIERSCitSQVRHRUJFUiBKVUxJSkEKK1JBVEdFQkVSIExBU0xPCitSQVRJxIYgxJBVUsSQSU5BCitSQVRJxIYgQk9SQQorUkFUScSGIERVxaBBTgorUkFUS0VMScSGIE1JTEFOCitSQVRLT1Ygxb1JVktPCitSQVRLT1YgxJBPUsSQRQorUkFUS09WIEFDQQorUkFUS09WIEJPUklWT0oKK1JBVEtPViBDRUNJTElKQQorUkFUS09WIERSQUdBTgorUkFUS09WIERSQUdJTkpBCitSQVRLT1YgRFJBR0lOSkEKK1JBVEtPViBEVcWgQU5LQQorUkFUS09WIERVxaBBTgorUkFUS09WIEpFTEVOQQorUkFUS09WIEpVTElKQU5BCitSQVRLT1YgS0FUQVJJTkEKK1JBVEtPViBMRVBPU0FWQQorUkFUS09WIE1JxIZPCitSQVRLT1YgTUlMRU5LTworUkFUS09WIE1JTEVOS08KK1JBVEtPViBNSUxJQ0EKK1JBVEtPViBORU5BRAorUkFUS09WIE5FTkFECitSQVRLT1YgUEFWTEUKK1JBVEtPViBQUkVEUkFHCitSQVRLT1YgUkFERQorUkFUS09WIFJBRElWT0oKK1JBVEtPViBSQURPTUlSCitSQVRLT1YgUlXFvUlDQQorUkFUS09WIFNBVktBCitSQVRLT1YgU01JTEpBTkEKK1JBVEtPViBTVEFOSVNMQVZBCitSQVRLT1YgU1RBTklTTEFWCitSQVRLT1YgVkVSQQorUkFUS09WIFZJRE9TQVZBCitSQVRLT1YgVkxBRElNSVIKK1JBVEtPViBWTEFESU1JUgorUkFUS09WIFZPSklTTEFWCitSQVRLT1YgVlVKSUNBCitSQVXFoCBLTEFVRElKQQorUkFVxaAgUklIQVJECitSQVXFoEVOQkVSR0VSIE1BUlRJTgorUkFVxaBLSSDEkE9SxJBFCitSQVXFoEtJIEFOR0VMSU5BCitSQVXFoEtJIERBTklMTworUkFVxaBLSSBMSklMSkFOQQorUkFVxaBLSSBNSUxBTkEKK1JBVcWgS0kgTUlMT8WgCitSQVVTQVZMSkVWScSGIMSQT1LEkEUKK1JBVVNBVkxKRVZJxIYgRFXFoEFOS0EKK1JBVVpBIFBBTEtPCitSQVZBSknEhiDEkFVSTworUkFWQVNJIExKVUJJQ0EKK1JBVknEhiBOSUtPTEEKK1JBVknEhiBTTE9CT0RBTktBCitSQVZMScSGLUJBTkpBQyBTTkXFvUFOQQorUkFWTEnEhiBQRUpPCitSQVZMScSGIFZJREEKK1JBVkxJSkEgRFJBR0FOCitSQVpERVbFoEVLIFNUT0pBTktBCitSQVpJxIYgRMW9RU1BTAorUkFaTU9WU0tJIE5JS09MQQorUkFaVU1FTknEhi1LT1RST8WgQU4gTUlMRU5BCitSRcSMRUkgSUxPTktBCitSRcSMS08gSUxFxaAKK1JFxaDEhkFOU0tJIEJPxaBLTworUkXFoMSGQU5TS0kgQk9HREFOCitSRcWgxIZBTlNLSSBWRVJBCitSRcWgRVRBUiBBTlRFCitSRcWgRVRBUiBTVEFOQQorUkXFoEVUQVJPVknEhiBKT1ZBTgorUkXFoElUSSDEkE9SxJBFCitSRcWgTkpBSyBBTkRSSUpBCitSRcWgTkpBSyBMQVNMTworUkXFoE5KQUsgU1RFVkFOCitSRcWgTkpBSyBaT1JJQ0EKK1JFxb1OSkFLIExBU0xPCitSRcW9VUsgSk9TSVAKK1JFxJBFUCBEUkHFoEtPCitSRcSQRVBJIETFvUVMSkFOCitSRcSQRVBJIE1JTEFJTQorUkXEkEVQT1ZJxIYgQUxJSkEKK1JFQkEgQkxBR09KRQorUkVCQSBJR09SCitSRUJBIElHT1IKK1JFQknEhiBCT0dEQU4gRElQTCBJTkcKK1JFQknEhiBEUkFHQU4KK1JFQknEhiBORURFTEpLTworUkVCScSGIE5FREVMSktPCitSRUJJxIYgU0lNRU9OCitSRUJJxIYgU0lNTworUkVCScSGIFNMT0JPREFOIERSCitSRUJJxIYgVkxBRElNSVIKK1JFQlJJTkEgS0FUQVJJTkEKK1JFRMW9QSBJQlJBSElNCitSRUTFvUVLIEpPVkFOCitSRUTFvUVQIEpVU05JSkEKK1JFRMW9RVBPViDFoEVWS0lOCitSRUTFvUVQT1YgS0FNQkVSCitSRURFIFJVRE9MRgorUkVESUcgVklMSU0KK1JFRExJIMSQT1LEkEUKK1JFRExJIE1BUklKQQorUkVETEkgVkVSQQorUkVHQUpaIFNURVZBTgorUkVHRUMgRVRFTEtBCitSRUdFTEpBQyBMSlVCSUNBCitSRUdFTEpBQyBNQVJBCitSRUdFUiBKT1ZBTgorUkVHTCBWTEFESU1JUgorUkVHT0RJxIYgU1ZFVE9aQVIKK1JFR09KRVZJxIYgTUxBxJBFTktPCitSRUhBSyBJTVJFCitSRUhBSyBMQVNMTworUkVIQUsgT0xHQQorUkVITkVSIE1BUklKQQorUkVITkVSIFNUQU1FTktBCitSRUlOSE9MQyDEkEVaRQorUkVJTkhPTEMgxJBFWkUKK1JFSU5IT0xaIMSQRVpFCitSRUtBIEFSSUYKK1JFS0EtSVZBTk9WScSGIERVxaBJQ0EKK1JFS0XEhkUgxaBBTkRPUgorUkVLRUNLSSBFTEVPTk9SQQorUkVLRUNLSSBKT8W9RUYKK1JFS0nEhiBIVVNFSU4KK1JFTEnEhiDEkE9SxJBFCitSRUxJxIYgxJBPUsSQRQorUkVMScSGIERBUktPCitSRUxJxIYgRElNSVRSSUpFCitSRUxJxIYgR09KS08KK1JFTEnEhiBKT1ZBTgorUkVMScSGIEpPVklDQQorUkVMScSGIEtPTlNUQU5USU4KK1JFTEnEhiBMSlVCQU4KK1JFTEnEhiBNSUxBTgorUkVMScSGIE1JTEVOS08KK1JFTEnEhiBNSUxJVk9KCitSRUxJxIYgTUlSQQorUkVMScSGIFBBVkxFCitSRUxJxIYgUEVUQVIKK1JFTEnEhiBSQURJTktBCitSRUxJxIYgU0FWQQorUkVMScSGIFNMQVZPTEpVQgorUkVMScSGIFNPRklKQQorUkVMScSGIFNPRklKQQorUkVMScSGIFNQT01FTktBIERJUEwgUFJBVk5JSworUkVMScSGIFNSRVRBCitSRUxKQU5PVknEhiBNQVJJSkEKK1JFTEpJxIYgxJBVUklDQQorUkVMSknEhiDEkFVSTworUkVMSknEhiBCT8W9SURBUgorUkVMSknEhiBEQU1KQU5LQQorUkVMSknEhiBEQU5JTE8KK1JFTEpJxIYgSk9WQU4KK1JFTEpJxIYgTEpVQk9NSVIKK1JFTEpJxIYgTUFSQQorUkVMSknEhiBNSUxPUkFECitSRUxKScSGIFJPTUFOCitSRUxKScSGIFNMQVZLTworUkVMSknEhiBTTUlMSkEKK1JFTEpJxIYgU05Fxb1BTkEKK1JFTEpJxIYgU1RFVkFOCitSRUxKScSGIFNURVZBCitSRUxKScSGIFpMQVRLTworUkVMSknEhiBaT1JLQQorUkVMSklOIERVxaBBTktBCitSRUxKSU4gRFXFoEFOCitSRUxKSU4gRFXFoEFOCitSRUxKSU4gSUdOSkFUIERSCitSRUxKSU4gSUxPTkEKK1JFTEpJTiBJVkFOCitSRUxKSU4gTEFaQVIKK1JFTEpJTiBMRVBPU0FWQQorUkVMSklOIE1BUklDQQorUkVMSklOIE1JTEFOCitSRUxKSU4gTUlMQU4KK1JFTEpJTiBNSUxJQ0EKK1JFTEpJTiBNSUxJVk9KCitSRUxKSU4gTUlMT8WgCitSRUxKSU4gTUlMT8WgCitSRUxKSU4gTUlMT8WgCitSRUxKSU4gTUlMT8WgCitSRUxKSU4gTUlMT1JBRAorUkVMSklOIE5BREEKK1JFTEpJTiBQUk9LT1BJSkUKK1JFTEpJTiBSQURPVkFOCitSRUxKSU4gU0FWQQorUkVMSklOIFNJTUEKK1JFTEpJTiBTTE9CT0RBTgorUkVMSklOIFNURVZBTgorUkVMT1RBIFJVRE9MRgorUkVNRUNLSSBEUkFHVVRJTgorUkVNRUNLSSBQRVRBUgorUkVNRUxJIEFOVE9OCitSRU1FTEkgTEFTTE8KK1JFTUVOQVIgRFJBR1VUSU4KK1JFTUVSIEJSQU5JU0xBVgorUkVNTElOR0VSIFJPQkVSVAorUkVOxIxBUiDFoEFORE9SCitSRU7EjEFSIFRJVkFEQVIKK1JFTsSMRVZJxIYgTUlMQU4KK1JFTkRVTEnEhiBNQVJLTworUkVORFVMScSGIFNUT0pBTgorUkVQxaBUT0sgSk/FvUVGCitSRVBBxaBJIEpPU0lQCitSRVBBxaBJIFNURVZBTgorUkVQQUMgxb1Vxb1BTkEKK1JFUEFDIMSQT1LEkEUKK1JFUEFDIEFOQQorUkVQQUMgSVNBCitSRVBBQyBKT1ZBTgorUkVQQUMgS09WSUxKS0EKK1JFUEFDIE1JUk9TTEFWCitSRVBBQyBQRVJLSUNBCitSRVBBQyBQRVRBUgorUkVQQUMgU0xBVktPCitSRVBBQyBTVEFOScWgQQorUkVQQUMgVkFTSUxJSkEKK1JFUEnEhiDFvUlWQU4KK1JFUEnEhiBEQU5JQ0EKK1JFUEnEhiBFTUlMCitSRVBJxIYgR0laRUxBCitSRVBJxIYgSVZBTgorUkVQScSGIE1BUktPCitSRVBJxIYgTUlMRU5BCitSRVBJxIYgTUlMS0EKK1JFUEnEhiBWRVJJQ0EKK1JFUEnEhiBaT1JBTgorUkVTQU4gQU5BCitSRVNBTk9WScSGIEFOS0EKK1JFU0FOT1ZJxIYgRFJBR0FOCitSRVNBTk9WScSGIExKVUJPCitSRVNBTk9WScSGIE5BREEKK1JFU0FOT1ZJxIYgUEVSTworUkVTTUFOIFpEUkFWS08KK1JFU1VMT1ZTS0kgU1RPSkFOCitSRVUgTEFWSU5FTAorUkVWRVMgQU5EUklKQQorUkVWSUQgS0FUQVJJTkEKK1JFWkFOQ09WIEtBVElDQQorUkVaRUMgQU5UT04KK1JFWk5JxIxFSyBLQVJMTworUknFvUFOSkkgSVJFTkEKK1JJxJBJxIxLSSDEkE9LQQorUknEkEnEjEtJIMSQT1LEkEUKK1JJxJBJxIxLSSBNSUxBTktBCitSScSQScSMS0kgTUlMQU4KK1JJxJBJxIxLSSBTUE9NRU5LQQorUknEkElLLUdSVUpJxIYgxIxFRE9NSVIKK1JJxJBJSy1HUlVKScSGIEpBRFJBTktBCitSScSQSUstR1JVSknEhiBWRUxJTUlSCitSSUJBUiDFoEFORE9SCitSSUJBUiBCRUxBIERSCitSSUJBUiBJTVJFCitSSUJBUiBLQVRJQ0EKK1JJQkFSRVZJxIYgVkVSQQorUklCQVJPViBNSVJPU0xBVgorUklCQVJPViBTTEFWSUNBCitSSUJJxIwgUlXFvUEKK1JJQknEhiDEjEVETworUklCScSGIEJSQU5LTworUklCScSGIEZSQU5DCitSSUJJxIYgSk9WQU4KK1JJQknEhiBNSUhBSkxPCitSSUJJxIYgTUlMQU4KK1JJQknEhiBQQVZPCitSSUJJxIYgUEVUQVIKK1JJQknEhiBTVEFOS08KK1JJQknEhiBaT1JJQ0EKK1JJQk9WScSGIEFNQUxJSkEKK1JJQyBNSUhBTEogRElQTCBPRUMKK1JJQyBSVURPTEYKK1JJQyBWRVNFTElOCitSSUNBIEFOSUNBCitSSUNFIE1BUkdJVEEKK1JJR08gxJBVTEEKK1JJR08gTEFTTE8KK1JJSEFLIE5BTkRPUgorUklIVEFSRUMgS0FUQVJJTkEKK1JJSkFWRUMgSVZBTgorUklLRVIgWlZPTklNSVIKK1JJS0nEhiDFvUVMSktPCitSSUtJxIYgRFJBR0lDQQorUklLScSGIE1JTEFESU4KK1JJS0nEhiBNSUxFTktPCitSSUwgUEFMCitSSUxBSyBNSUxPTUlSCitSSUxLRSBST0JFUlQKK1JJTcWgTkFKREVSIFJPQkVSVAorUklNQUMgSk9TSVAKK1JJTUFOIEVHT04gRFIKK1JJTUFSIExFT05BCitSSU1BUiBWTEFESU1JUgorUklNU0tJIMW9QVJLTworUklNU0tJIMW9QVJLTworUklNU0tJIMW9QVJLTworUklNU0tJIMW9QVJLTworUklNU0tJIMSQT0tBCitSSU1TS0kgQklTRVJLQQorUklNU0tJIEJJU0VSS0EKK1JJTVNLSSBCUkFOSVNMQVYKK1JJTVNLSSBCUkFOS0EKK1JJTVNLSSBCUkFOS08KK1JJTVNLSSBKQVNNSU5BCitSSU1TS0kgSkVMRU5BCitSSU1TS0kgTUlMQU4KK1JJTVNLSSBNSUxJQ0EKK1JJTVNLSSBOQVRBTElKQQorUklNU0tJIE5PVkFLCitSSU1TS0kgU0FWQQorUklNU0tJIFNBVkEKK1JJTVNLSSBTTUlMSkEKK1JJTVNLSSBTTUlMSkEKK1JJTVNLSSBTVEVWQU4KK1JJUyDFoEFORE9SCitSSVMgQUxFS1NBTkRBUgorUklTIERSQUdJTkpBCitSSVMgRFXFoEtPCitSSVMgR0VaQQorUklTIE5FREVMSktPCitSSVMgU1RFVkFOCitSSVMgVEFOSkEKK1JJUyBaRFJBVktPCitSSVNPVknEhiBEVcWgQU4KK1JJU09WScSGIE5FREVMSktPCitSSVNPVknEhiBORURFTEpLTworUklTVEEgxb1FTEpLQQorUklTVEFOT1ZJxIYgQ1ZFVElOCitSSVNUQU5PVknEhiBSQURFCitSSVNUQU5PVknEhiBSQURPU0xBVgorUklTVEFOT1ZJxIYgVkVSSUNBCitSSVNUQU5PVknEhiBWT0pJTUlSCitSSVNUQU5PVknEhiBaRFJBVktPCitSSVNUQU5PVknEhiBaT1JBTgorUklTVEFOT1ZJxIYgWk9SQU4KK1JJU1RJxIYgxJBPUsSQRSBEUiBMRUtBUgorUklTVEnEhiDEkE9SxJBFCitSSVNUScSGIMSQT1LEkEUKK1JJU1RJxIYgxJBPUsSQRQorUklTVEnEhiDEkFVKQQorUklTVEnEhiDEkFVSxJBBCitSSVNUScSGIEFMRUtTQU5EQVIKK1JJU1RJxIYgQUxFS1NBTkRBUgorUklTVEnEhiBBTEVLU0FOREFSCitSSVNUScSGIEFMRUtTQU5EQVIKK1JJU1RJxIYgQUxFS1NBCitSSVNUScSGIEFORFJJSkEKK1JJU1RJxIYgQk/FvUlEQVIKK1JJU1RJxIYgQk/FvUlEQVIKK1JJU1RJxIYgQk9SQQorUklTVEnEhiBCT1JJU0xBVgorUklTVEnEhiBCUkFOSVNMQVYKK1JJU1RJxIYgQlJBTktPCitSSVNUScSGIENWSkVUQU5LQQorUklTVEnEhiBEQU5JTE8KK1JJU1RJxIYgREFSSU5LQQorUklTVEnEhiBESU1JVFJJSkUKK1JJU1RJxIYgRElNSVRSSUpFCitSSVNUScSGIERJTUlUUklKRQorUklTVEnEhiBET0JSSVZPSkUKK1JJU1RJxIYgRFJBR0FOCitSSVNUScSGIERSQUdBTgorUklTVEnEhiBEUkFHScWgQQorUklTVEnEhiBEUkFHSUNBCitSSVNUScSGIERSQUdPSkxBCitSSVNUScSGIERSQUdPTEpVQgorUklTVEnEhiBEUkFHT0xKVUIKK1JJU1RJxIYgRFXFoEFOIERSCitSSVNUScSGIERVxaBBTgorUklTVEnEhiBEVcWgQU4KK1JJU1RJxIYgRFXFoEFOCitSSVNUScSGIERVxaBBTgorUklTVEnEhiBHQVZSSUxPCitSSVNUScSGIElTSURPUgorUklTVEnEhiBKQVNNSU5BCitSSVNUScSGIEpFTEVOQQorUklTVEnEhiBKRUxFTkEKK1JJU1RJxIYgSkVSRU1JSkEKK1JJU1RJxIYgSk9WQU4gRFIKK1JJU1RJxIYgSk9WQU4gRFIKK1JJU1RJxIYgSk9WQU4KK1JJU1RJxIYgS1NFTklKQQorUklTVEnEhiBMQUJVRCBEUiBMRUtBUgorUklTVEnEhiBMQVpBUgorUklTVEnEhiBMSklMSkFOQQorUklTVEnEhiBMSklMSkFOQQorUklTVEnEhiBMSlVCSUNBCitSSVNUScSGIExKVUJJQ0EKK1JJU1RJxIYgTUFSSUpBCitSSVNUScSGIE1BUklKQQorUklTVEnEhiBNQVJJSkEKK1JJU1RJxIYgTUFSSUpBCitSSVNUScSGIE1BUklKRU5LQQorUklTVEnEhiBNQVJLTworUklTVEnEhiBNSUhBSkxPCitSSVNUScSGIE1JTEFOS0EKK1JJU1RJxIYgTUlMQU4KK1JJU1RJxIYgTUlMQU4KK1JJU1RJxIYgTUlMQU4KK1JJU1RJxIYgTUlMQU4KK1JJU1RJxIYgTUlMQU4KK1JJU1RJxIYgTUlMRVRBCitSSVNUScSGIE1JTElWT0pFCitSSVNUScSGIE1JTEtBCitSSVNUScSGIE1JTE/FoAorUklTVEnEhiBNSUxPxaAKK1JJU1RJxIYgTUlMT1JBRAorUklTVEnEhiBNSUxPUkFECitSSVNUScSGIE1JTFVOCitSSVNUScSGIE1JTFVUSU4KK1JJU1RJxIYgTUlPRFJBRworUklTVEnEhiBNSU9EUkFHCitSSVNUScSGIE1JUk9TTEFWCitSSVNUScSGIE1JUk9TTEFWCitSSVNUScSGIE1JUk9TTEFWCitSSVNUScSGIE1JUk9TTEFWCitSSVNUScSGIE1JUk9TTEFWCitSSVNUScSGIE1MQURFTgorUklTVEnEhiBOQURBCitSSVNUScSGIE5BVEFMSUpBCitSSVNUScSGIE5FR09WQU4KK1JJU1RJxIYgTkVTVE9SCitSSVNUScSGIE5JS09MQQorUklTVEnEhiBOSUtPTEEKK1JJU1RJxIYgTk9WSUNBCitSSVNUScSGIE9MR0EKK1JJU1RJxIYgUEFWTEUKK1JJU1RJxIYgUEVSQQorUklTVEnEhiBQRVRBUgorUklTVEnEhi1QT1BPVknEhiBNSUxJQ0EKK1JJU1RJxIYgUkFESVNBVgorUklTVEnEhiBSQUlTQQorUklTVEnEhiBST0RPTEpVQiBEUgorUklTVEnEhiBTQVZBCitSSVNUScSGIFNBVkEKK1JJU1RJxIYgU0FWTworUklTVEnEhiBTTEHEkEFOCitSSVNUScSGIFNMQVZJQ0EKK1JJU1RJxIYgU0xBVklDQQorUklTVEnEhiBTTEFWS08KK1JJU1RJxIYgU1BPTUVOS0EKK1JJU1RJxIYgU1RBTknFoEEKK1JJU1RJxIYgU1RBTk9KRSBEUgorUklTVEnEhiBTVEVWQU4KK1JJU1RJxIYgU1RFVkFOCitSSVNUScSGIFNURVZBTgorUklTVEnEhiBTVEVWQU4KK1JJU1RJxIYgU1RFVklDQQorUklTVEnEhiBTVkVUSVNMQVYKK1JJU1RJxIYgVEVNRUxKS08KK1JJU1RJxIYgVE9NSVNMQVYKK1JJU1RJxIYgVkVSSUNBCitSSVNUScSGIFZJVE9NSVIKK1JJU1RJxIYgVkxBRElNSVIKK1JJU1RJxIYgVkxBRElNSVIKK1JJU1RJxIYgVkxBRElNSVIKK1JJU1RJxIYgVk9KSU4KK1JJU1RJxIYgVk9KSVNMQVYKK1JJU1RJxIYgWkFHT1JLQQorUklTVEnEhiBaRFJBVktPCitSSVNUScSGIFpPUkFOCitSSVNUScSGIFpPUkFOCitSSVNUSU4gSk9WQU4KK1JJU1RJTiBNSU9EUkFHCitSSVNUSU4gTUlPRFJBRworUklTVElWT0pFVknEhiBBTsSQRUxLQQorUklTVElWT0pFVknEhiBBTklDQQorUklTVElWT0pFVknEhiBERVNJTUlSCitSSVNUSVZPSkVWScSGIElHTkpBVAorUklTVElWT0pFVknEhiBSQURPTUlSCitSSVNUSVZPSkVWScSGIFJBVE9NSVIKK1JJU1RJVk9KRVZJxIYgU1RPSkFOS0EKK1JJU1RJVk9KRVZJxIYgWkRSQVZLTworUklTVE9WScSGIEpPVkFOS0EKK1JJU1RPVknEhiBORUJPSsWgQQorUklTVE9WScSGIFJBRElWT0pFCitSSVNUT1ZJxIYgUkFUS08KK1JJU1RPVlNLSSBBTEVLU0FOREFSCitSSVNUT1ZTS0kgS09TVEEKK1JJU1RPVlNLSSBMSklMSkFOQQorUklTVE9WU0tJIExKSUxKQU5BCitSSVNUT1ZTS0kgTEpVQk8KK1JJU1RPVlNLSSBTSU1FT04KK1JJVEVSIEFOS0lDQQorUklURVIgQU5UT04KK1JJVEVSIEZSQU5KQQorUklURVIgSk/FvUVGCitSSVRFUiBMVURWSUcKK1JJVEVSIE5BREEKK1JJVE9DIEdFWkEKK1JJVFRFUiDFoEFORE9SCitSSVZJxIYgSVZPCitSSVpOScSGIEJSQU5JU0xBVkEKK1JJWk5JxIYgVkVMSktPCitSSVpOScSGIFZFTEpLTworUklaT1ZTS0kgRFJBR08KK1JJWlZBTiDFoFVLUkkKK1JJWlZBTk9WScSGIFNBRElLCitSTVXFoCBaT1JJQ0EKK1JOScSGIE1JSEFJTE8KK1JOSkFLIERBTklDQQorUk5KQUsgU1RBTktPCitST8WgSU4gS1NFTklKQQorUk/FoElOIFpPUktPCitST8WgVSBLT1NUQQorUk/FoFVMSiDFvUlWQU4KK1JPxaBVTEogxb1JVkEKK1JPxaBVTEogQU7EkEVMS0EKK1JPxaBVTEogRU1JTAorUk/FoFVMSiBMQVpBUgorUk/FoFVMSiBNSUxBTkEKK1JPxaBVTEogTUlMT1JBRAorUk/FoFVMSiBSQURPVkFOCitST8WgVUxKIFNWRVRPWkFSCitST8WgVUxKIFpPUkFOCitST8WgVUxKQSBWQVNBCitST8WgVUxPViBTVEFET0pFCitST8W9QSBCRUxBCitST8W9QSBGRVJFTkMKK1JPxb1BIEpBTk/FoAorUk/FvUEgSk9WQU4KK1JPxb1BIE1JUktPCitST8W9QU5LT1ZJxIYgSVZBTgorUk/EkEFLIEZSQU5KQQorUk/EkEVOS09WIMW9SVZPSklOCitST8SQRU5LT1YgxJBVUkEKK1JPxJBFTktPViBNSUxPxaAKK1JPQk9UScSGIEFOQQorUk9CT1RJxIYgVEVSRVpBCitST0QgREFOSUNBCitST0RJxIYgxIxFRE9NSVIKK1JPREnEhiDEjEVET01JUgorUk9EScSGIMWgUElSTworUk9EScSGIMSQT1LEkEUKK1JPREnEhiBBTEVLU0FOREFSCitST0RJxIYgQU5EUklKQQorUk9EScSGIEJPxb1PCitST0RJxIYgQk/FvU8KK1JPREnEhiBCT0dEQU4KK1JPREnEhiBCT1JJU0xBVgorUk9EScSGIEJPUklTTEFWCitST0RJxIYgQlJBTklTTEFWCitST0RJxIYgREFOSUNBCitST0RJxIYgRFJBR0FOCitST0RJxIYgRFJBR09NSVIKK1JPREnEhiBEVcWgQU4KK1JPREnEhiBEVcWgQU4KK1JPREnEhiBEVcWgQU4KK1JPREnEhiBEVcWgQU4KK1JPREnEhiBHT0pLTworUk9EScSGIEdPSktPCitST0RJxIYgR09KS08KK1JPREnEhiBKRUxJU0FWRVRBCitST0RJxIYgSk9WTworUk9EScSGIExFUEEKK1JPREnEhiBMSklMSkFOQQorUk9EScSGIE1BTk9KTE8KK1JPREnEhiBNScSGQQorUk9EScSGIE1JxIZPCitST0RJxIYgTUlMQU4KK1JPREnEhiBNSUxFTkEKK1JPREnEhiBNSUxJQ0EKK1JPREnEhiBNSUxJQ0EKK1JPREnEhiBNSUxLQQorUk9EScSGIE1JTE/FoAorUk9EScSGIE1JTE9SQUQKK1JPREnEhiBNSVJLTworUk9EScSGIE1JUk9TTEFWCitST0RJxIYgTkFUQUxJSkEKK1JPREnEhiBORcSQTworUk9EScSGIE5FREVMSktPCitST0RJxIYgTklLT0xBCitST0RJxIYgTklLT0xBCitST0RJxIYgTklLT0xBCitST0RJxIYgTklLT0xBCitST0RJxIYgT0xHQQorUk9EScSGIFBFVEFSIERJUEwgSU5HCitST0RJxIYgUEVUQVIKK1JPREnEhiBQRVRSQQorUk9EScSGIFJBREUKK1JPREnEhiBSQU5LTworUk9EScSGIFNMQVZLTworUk9EScSGIFNNSUxKQQorUk9EScSGIFNSRVRFTgorUk9EScSGIFNUQU5LTworUk9EScSGIFNURVZBTgorUk9EScSGIFNVWkFOQQorUk9EScSGIFNVWkFOQQorUk9EScSGIFNWRVRLTworUk9EScSGLVRPTUxKQU5PVknEhiBNSVJKQU5BCitST0RJxIYgVkVSSUNBCitST0RJxIYgWk9SQU4KK1JPR0HEjCBTVkVUTEFOQQorUk9HQcSMIFNWRVRPWkFSCitST0dBxIxFVknEhiBPQlJBRAorUk9HQUxKU0tJIEpFTEVOQQorUk9HQUxPIEFOVE9OCitST0dBTiBTVkVUT1pBUgorUk9HQU5PVknEhiBLQVRBUklOQQorUk9HQU5PVknEhiBMVUtBCitST0dBTk9WScSGIE1JTEFOS0EKK1JPR0FOT1ZJxIYgTkFEQQorUk9HQU5PVknEhiBOT1ZBSworUk9HQU5PVknEhiBTTE9CT0RBTgorUk9HQU5PVknEhiBTVEVWTworUk9HQU5PVknEhiBUQU5KQQorUk9HQU5PVknEhiBWRUxJWkFSCitST0dBVkFDIE1JTEFOCitST0dJxIYgQUxFS1NBCitST0dJxIYgTUlMT1JBRAorUk9HScSGIFNBVkEKK1JPR0nEhiBWRUxKS08KK1JPR0nEhiBWRVNFTElOCitST0dJxIYgVkVTTkEKK1JPR0nEhiBaT1JBTgorUk9HTEnEhiBJVkFOCitST0dMScSGIExKVUJPTUlSCitST0dMScSGIE1JTEFOCitST0dMScSGIFZFU05BCitST0dMScSGIFZFU05BCitST0dPxb1BUlNLSSBTVEVWQU5LQQorUk9HVUxJxIYgSkVMRU5BCitST0dVTEpBIMSQT1LEkEUKK1JPR1VMSkEgSUxJSkEKK1JPR1VMSkEgSk9WQU4KK1JPR1VMSkEgTklLT0xBCitST0dVTEpBIFBBVkxFIERSCitST0dVTEpJxIYgTUlMT1JBRAorUk9HVUxKScSGIE5FREVMSktPCitST0dVTEpJxIYgUFJFRFJBRworUk9HVUxKScSGIFpEUkFWS08KK1JPSktBIEFORFJFSgorUk9KS0EgQU5EUkVKCitST0pOSUsgTEpVQk9NSVIKK1JPS0Egxb1Vxb1BTkEKK1JPS0EgSkFOT8WgCitST0tBIFZBTEVSSUpBCitST0tBSSBQRVRBUgorUk9LScSGIERVxaBBTgorUk9LScSGIE1JTEVOS08KK1JPS0xJQ0VSIEZSQU5KQQorUk9LTElDRVIgSk9TSVAKK1JPS05JxIYgSlVMS0lDQQorUk9LTknEhiBNSUxFTktPCitST0tOScSGIE1PTcSMSUxPCitST0tTQU5EScSGIEFEQU0KK1JPS1NBTkRJxIYgTUlMQU4KK1JPS1NBTkRJxIYgU0lNQQorUk9LU0FOREnEhiBWTEFESU1JUgorUk9LU0FOREnEhiBWTEFETworUk9LU0nEhiBTTE9CT0RBTgorUk9LVknEhiBCT0dEQU4KK1JPS1ZJxIYgQlJBTklTTEFWCitST0tWScSGIERVxaBBTgorUk9LVknEhiBHT0pLTworUk9LVknEhiBMQVpBUgorUk9LVknEhiBNQVJLTworUk9LVknEhiBNSUxBTgorUk9LVknEhiBNSUxJQ0EKK1JPS1ZJxIYgTUlMT1JBRAorUk9LVknEhiBOSUtPTEEgRElQTCBQT0xJVElLT0xPRworUk9LVknEhiBPTUlMSktPCitST0tWScSGIFJBRElWT0oKK1JPS1ZJxIYgUkFET0pLQQorUk9LVknEhiBSQU5LTworUk9LVknEhiBTSU5JxaBBCitST0tWScSGIFZFU0VMS08KK1JPS1ZJxIYgWkRSQVZLTworUk9MQU5EIFRPTUlTTEFWCitST0xPVknEhiBEVcWgQU5LQQorUk9MT1ZJxIYgT0xHQQorUk9NIEJSQU5LQQorUk9NxIxFViBNSVJPU0xBVgorUk9NQU4gSkVMRU5BCitST01BTiBMSlVCSUNBCitST01BTiBNSU5FQQorUk9NQU4gTUlST04KK1JPTUFOIFJPTUtPCitST01BTkRJxIYgQU5LSUNBCitST01BTkRJxIYgSkVMRU5BCitST01BTkRJxIYgU1RBTklNSVIKK1JPTUFORUxJIEdJTk8KK1JPTUFOScSGIERVxaBBTgorUk9NQU5JxIYgRVLFvUVCRVQKK1JPTUFOScSGIEpPQzAKK1JPTUFOScSGIE1BUklKQQorUk9NQU5LSVYgTUlIQUpMTworUk9NQU5PViBKT1NJUAorUk9NQU5PViBTTkXFvUFOQQorUk9NQU5PVknEhiDEkE9SxJBFIERJUEwgUFJBVk5JSworUk9NQU5PVknEhiDEkE9SxJBFCitST01BTk9WScSGIEFMRUtTQU5EQVIKK1JPTUFOT1ZJxIYgSUxJTktBCitST01BTk9WScSGIE1JTEFOCitST01BTk9WScSGIE5BREEKK1JPTUFTIEpPU0lQCitST01JxIYgRVRBCitST01JxIYgSkFOS08KK1JPTUnEhiBMSlVCT01JUgorUk9NScSGIExKVUJPTUlSCitST01JxIYgTUxBREVOCitST01JxIYgTkVOQUQKK1JPTUnEhiBQQVZMRQorUk9NScSGIFBSRURSQUcKK1JPTU9EQSBJxaBUVkFOCitST01PREEgS0FSTE8KK1JPTU9EQSBNQVJJSkEKK1JPTsSMRUxJIEtBVElDQQorUk9OxIxFVknEhiBCT0dEQU4KK1JPTsSMRVZJxIYgRFJBR0FOCitST07EjEVWScSGIElLT05JSkEKK1JPTsSMRVZJxIYgS09TVEEKK1JPTsSMRVZJxIYgTUlMRQorUk9OxIxFVknEhiBOQURBCitST07EjEVWScSGIE9CUkFECitST07EjEVWScSGIFBFVEFSCitST07EjEVWScSGIFBFVEFSCitST07EjEVWScSGIFBFVEFSCitST07EjEVWScSGIFJBRElWT0pFCitST07EjEVWScSGIFNBVkVUQQorUk9OxIxFVknEhiBTQVZPCitST07EjEVWScSGIFNUQU5BCitST07EjEVWScSGIFNUQU5JTUlSCitST07EjEVWScSGIFNUQU5JTUlSCitST07EjEVWScSGIFNURVZBTgorUk9OxIxFVknEhiBTVEVWQU4KK1JPTsSMRVZJxIYgVkVSQQorUk9OQUkgTUlSS08gRElQTCBJTkcKK1JPTlRPIEZSQU5DScWgS0EKK1JPTlRPIElMT05LQQorUk9OVE8gSkFLT0IKK1JPTlRPVknEhiBSQURPU0xBVgorUk9SIERFU0EKK1JPUkJBSEVSIE1BR0RPTE5BCitST1NJxIYgxJBVUk8KK1JPU0nEhiBCT0dEQU4KK1JPU0nEhiBEUkFHQU5BCitST1NJxIYgRFJBR0FOCitST1NJxIYgRFJBR0FOCitST1NJxIYgRFJBR0FOCitST1NJxIYgRFJBR0FOCitST1NJxIYgRFXFoEFOCitST1NJxIYgR1JPWkRBTkEKK1JPU0nEhiBJTElKQQorUk9TScSGIExKSUxKQU5BCitST1NJxIYgTUlMRU5BCitST1NJxIYgTUlMSUNBCitST1NJxIYgTUlMT1JBRAorUk9TScSGIE1JT0RSQUcKK1JPU0nEhiBOSUtPTEEKK1JPU0nEhiBPU1RPSkEKK1JPU0nEhiBWTEFESU1JUgorUk9TScSGIFpPUkFOCitST1NMQVZMSkVWIFZPSklTTEFWCitST1NPIElWQU4KK1JPU08gTUFSVEEKK1JPVCBERVpJREVSCitST1QgRlJBTkpBCitST1RBUklVIFRJQkVSSUpFCitST1RCQVJUIFZMQURJU0xBVgorUk9USU0gSVZBTgorUk9WxIxBTklOIEVVxJBFTklKQQorUk9WxIxBTklOIFVaRUlSCitST1bEjEFOSU4gVkVTRUxJTgorUk9WScSGIEJSQU5JU0xBVgorUk9WScSGIERJTUlUUklKRQorUk9WTyBNSUhBTEoKK1JPWkVOVEFMIERSQUdJQ0EKK1JPWkVOVEFMIEtBUkxPCitST1pFTlRBTCBNQVJUT04KK1JPWknEhiBBTlRFCitST1pNQVJJTkcgScWgVFZBTgorUk9aTUlST1YgRFJBR0FOCitST1pNSVJPViBNSUxFTktPCitSVcWgSVRJIEFMSUpBCitSVcWgS08gRVLFvUVCRVQKK1JVxaBLVUMgxJBPUsSQRQorUlXFoEtVQyBBVEFOQVNJSkUKK1JVxaBLVUMgTUFSR0FSSVRBCitSVcWgS1VDIE1BUlRBCitSVcWgS1VDIFBBVkxFCitSVcWgS1VDIFNURVZBTgorUlXFoEtVQyBTVkVUSVNMQVYKK1JVxaBLVUMgVkVTRUxJTgorUlXFoEtVQyBWTEFESU1JUgorUlXFvUFOT1ZJxIYgRFJBR09MSlVCCitSVcW9QU5PVknEhiBNQVJJSkEKK1JVxb1JxIxJxIYgxJBPUsSQRQorUlXFvUnEjEnEhiBCT8WgS08KK1JVxb1JxIxJxIYgTUlMQU4KK1JVxb1JxIxJTiBEQU5JQ0EKK1JVxb1JxIxJTiBSQURJVk9KCitSVcW9ScSMS0EgxJBVUkEKK1JVxb1JxIxLQSBSVcW9QQorUlXFvUnEhiDFvUFSS08KK1JVxb1JxIYgQUxFS1NBTkRBUgorUlXFvUnEhiBEUkHFvUFOQQorUlXFvUnEhiBEVcWgQU4KK1JVxb1JxIYgRFXFoEFOCitSVcW9ScSGIERVxaBBTgorUlXFvUnEhiBFTUEKK1JVxb1JxIYgR09SREFOQQorUlXFvUnEhiBJVklDQQorUlXFvUnEhiBKT1ZBTgorUlXFvUnEhiBKT1ZPCitSVcW9ScSGIEpVTEtBCitSVcW9ScSGIEtSU1RPCitSVcW9ScSGIE1BUklKQQorUlXFvUnEhiBNQVJJSkEKK1JVxb1JxIYgTUlMQU4KK1JVxb1JxIYgTUlMQU4KK1JVxb1JxIYgTUlMSVZPSgorUlXFvUnEhiBNSVJBCitSVcW9ScSGIE1JUkpBTkEKK1JVxb1JxIYgTUlSSkFOQQorUlXFvUnEhiBNSVJLTworUlXFvUnEhiBOSUtPTEEKK1JVxb1JxIYgTklLT0xBCitSVcW9ScSGIFBBVkEKK1JVxb1JxIYgUEVUQVIKK1JVxb1JxIYgUkFETUlMQQorUlXFvUnEhiBSQURPTUlSCitSVcW9ScSGIFNMT0JPREFOCitSVcW9ScSGIFNNSUxKQU5BCitSVcW9ScSGIFNUQU5LTworUlXFvUnEhi1TVEFSSSBWRVNOQQorUlXFvUnEhiBTVEpFUEFOCitSVcW9ScSGIFNWRVRPTElLCitSVcW9ScSGIFZFTEpLTworUlXFvUnEhiBWTEFESU1JUiBESVBMIElORworUlXFvUnEhiBaT1JBTgorUlXFvUnEhiBaT1JBTgorUlXFvUlOIMSMRURPTUlSCitSVcW9SU4gTUlMT1JBRAorUlXFvU5JQ0tJIElWQU4KK1JVxJBBIE5FTUFOSkEKK1JVxJBBIFpPUkFOCitSVcSQQSBaT1JBTgorUlVCRcW9ScSGIE1JTE9WQU4KK1JVQkXFvUnEhiBTTE9CT0RBTgorUlVCSU4gTUlMQU4KK1JVQlXFoCBBR05FWkEKK1JVQlXFoCBKT8W9RUYKK1JVREFOIE1BUktPCitSVURBTiBSQURJVk9KRQorUlVERcW9IElMSUpBCitSVURFxb0gTUnEhk8KK1JVREXFvSBQRVJBCitSVURFSyBKQVJPU0xBVgorUlVERUsgTklLT0xBCitSVURFSyBOSUtPTEEKK1JVREnEhiBEQVJLTworUlVEScSGIERJTUlUUklKRQorUlVEScSGIERSQUdBTgorUlVEScSGIERVxaBBTgorUlVEScSGIElNUkUKK1JVREnEhiBJVkFOCitSVURJxIYgSVZBTgorUlVEScSGIEpPU0lQCitSVURJxIYgTEFaQVIKK1JVREnEhiBNQVJLTworUlVEScSGIE1BUktPCitSVURJxIYgTUlMS0EKK1JVREnEhiBORURFTEpLTworUlVEScSGIE5JS09MQQorUlVEScSGIFBFUkEKK1JVREnEhiBTVEVWQU4KK1JVREnEhiBTVEVWSUNBCitSVURJxIYtVlJBTknEhiBORURFTEpLQQorUlVET0xGIEtMQUpOCitSVURPTEYgT0xHQQorUlVET0xGIFNQQVNPSkUKK1JVRE9MRiBaT1JBTgorUlVET1ZJxIYgREFOSUxPCitSVURPVknEhiBJTElKQQorUlVET1ZJxIYgSlVHT1NMQVYKK1JVRE9WScSGIE1JUkpBTkEKK1JVRE9WScSGIFpPUkFOCitSVUbEjEVTS0kgU0xPQk9EQU4KK1JVSkVWScSGIEpBRFJBTktBCitSVUpFVknEhiBNSUxFVkEKK1JVS0FWSU5BLcWgTElCQVIgSEVSTUlOQQorUlVLQVZJTkEgQUxFS1NBTkRBUgorUlVLQVZJTkEgQkFSSUNBCitSVUtBVklOQSBERVNQSU5BCitSVUtBVklOQSBET0JSSUxBCitSVUtBVklOQSBEVcWgQU4KK1JVS0FWSU5BIEpVUkUKK1JVS0FWSU5BIEtSRcWgSU1JUgorUlVLQVZJTkEgTEpVQklDQQorUlVLQVZJTkEgTUFSSUpBCitSVUtBVklOQSBNSUxLQQorUlVLQVZJTkEgUlVET0xGCitSVUtBVklOQSBSVURPTEYKK1JVS0FWSU5BIFNURVZBTgorUlVLQVZJTkEgWlZPTklNSVIKK1JVTUFOIE1JSEFKTE8KK1JVTknEhiBNQVJJSkEKK1JVTknEhiBNSUxBTiBESVBMIElORworUlVOSkFKScSGIElMSUpBCitSVU5KQU5JTiDEkE9SxJBFCitSVU5KQU5JTiBWTEFESVNMQVYKK1JVTkpBTklOIFZPSk8KK1JVTkpJxIYgQU1BTElKQQorUlVOSknEhiBEUkFHQU4KK1JVTkpJxIYgRFJBR0lDQQorUlVOSknEhiBHQVZSSUxPCitSVU5KScSGIEdPUkFOCitSVU5KTyBKT1ZBTgorUlVOVEnEhiBCT8WgS08KK1JVUMSMScSGIFZMQURJTUlSCitSVVBBIEFUSUxBCitSVVBBUiBCUkFOSVNMQVYKK1JVUEFSIEVSxb1FQkVUCitSVVBJxIYgxb1JVktPCitSVVBOSkFLIEJSQU5JU0xBVgorUlVTIMSQVVLEkElOS0EKK1JVUyBEUkFHQU4KK1JVUyBJVkFOS0EKK1JVUyBKT1NJUAorUlVTIE1BUkdJVEEKK1JVUyBNQVJJSkEKK1JVUyBNSUxPU0FWQQorUlVTIFJBREEKK1JVUyBTTEFWSUNBCitSVVMgU01JTEpBCitSVVMgU1ZFVExBTkEKK1JVUyBWRVJBCitSVVMgVlVLT1NBVkEKK1JVU0nEhiBBTkRSSUpBCitSVVNLQUpJIFNMQVZPTUlSCitSVVNLSSBESU1JVFJJSkUKK1JVU0tJIExBWkFSCitSVVNLT1ZTS0kgxJBPUsSQRQorUlVTS09WU0tJIERSQUdJQ0EKK1JVU0tPVlNLSSBNQUdEQUxFTkEKK1JVU01JUiBSQURNSUxBCitSVVNNSVJPVknEhiBCSUxKQU5BCitSVVNNSVJPVknEhiBCSUxKQU5BCitSVVNPViDFvUFSS08KK1JVU09WIMW9SVZLQQorUlVTT1YgQlJBTktBCitSVVNPViBCUkFOS08KK1JVU09WIERSRU5LQQorUlVTT1YgS0FUSUNBCitSVVNPViBLT1NUQQorUlVTT1YgS1JJU1RJTkEKK1JVU09WIE1BUklKQQorUlVTT1YgTUlMQU4KK1JVU09WIE1JTE9SQUQKK1JVU09WIE5BREEKK1JVU09WIFBBVkxFCitSVVNPViBTTE9CT0RBTgorUlVTT1YgVkxBRElNSVIKK1JVU09WQU4gxb1JVklDQQorUlVTT1ZBTiBEUkFHT0xKVUIKK1JVU09WQU4gTUlMQU4KK1JVU09WQU4gTUlMQU4KK1JVU1RFTUFHScSGIEVSVklOCitSVVNURU1JIMWgQUJBTgorUlVURcWgScSGIEpPVklDQQorUlVUScSGIE1JTE9SQUQKK1JVVE9OScSGIEpVTEtJQ0EKK1JVVE9OScSGLUtPTEVOREEgVklET1NBVkEKK1JVVE9OScSGIExBWkFSCitSVVRPTknEhiBMQVpBUgorUlVUT05KU0tJIERVxaBBTgorUlVUT05KU0tJIEpFTElDQQorUlVUT05KU0tJIEpPVkFOS0EKK1JVVE9OSlNLSSBOQURBCitSVVRPTkpTS0kgU0xPQk9EQU4KK1JVVE9OSlNLSSBWQVNBCitSVVRPTlNLSSDEkE9SxJBFCitSVVRPVknEhiBCT8WgS08KK1NBxIxFSyBNSVJPU0xBVgorU0HEjEVSIFJPS0kKK1NBxIxJxIYgTUFSSUpBCitTQUJBREkgTEFTTE8KK1NBQkFESSBNSVJKQU5BCitTQUJBREtBIMWgQU5ET1IKK1NBQkFES0EgSUxPTktBCitTQUJBREtBIFZBTEVSSUpBCitTQUJBRE/FoCDFoEFORE9SCitTQUJBRE/FoCDEkFVSQQorU0FCQURPxaAgSVZBTgorU0FCQURPxaAgSkFOS08KK1NBQkFET8WgIEpBTktPCitTQUJBRE/FoCBKQU5LTworU0FCQURPxaAgSk9BS0lNCitTQUJBRE/FoCBMSlVCT01JUgorU0FCQURPxaAgTUnFoEEKK1NBQkFET8WgIE1JSEFKTE8KK1NBQkFET8WgIE1JSEFKTE8KK1NBQkFET8WgIE1JUk9TTEFWCitTQUJBRE/FoCBQQVZMSU5BCitTQUJBRE/FoCBSVcW9SUNBCitTQUJBRE/FoCBTTEFWTkEKK1NBQkFET8WgIFNMQVZPTUlSCitTQUJBRE/FoCBTUkJJU0xBVgorU0FCQURPxaAgU1RFVkFOCitTQUJBRE/FoCBWTEFESU1JUgorU0FCQURPxaAgVkxBRElNSVIKK1NBQkFET8WgIFpERU5LQQorU0FCQURVxaAgSk9WQU4gRElQTCBJTkcKK1NBQkFEVcWgIFNURVZBTgorU0FCQVRLQSBTVEVWQU4KK1NBQkFUVcWgIEJPUklTTEFWCitTQUJBVFXFoCBEUkFHT0xKVUIKK1NBQkFUVcWgIFRPTUlTTEFWCitTQUJMScSGIEJSQU5LTworU0FCTEpBSyBEUkFHQU4KK1NBQkxKQUsgRlJBTkpPCitTQUJMSkFLIE1BUklKQU4KK1NBQkxKQUtPVknEhiBFU0FECitTQUJMSkFSIMSQT1LEkEUKK1NBQkxKQVIgTUFOT0pMTworU0FCTEpBUiBNSUxBTgorU0FCTEpBUiBURU9ET1IKK1NBQkxKQVJFVknEhiBWRVJJQ0EKK1NBQkxKScSGIERBTklMTyBESVBMIFBSQVZOSUsKK1NBQkxKScSGIERBUkEKK1NBQkxKScSGIEdPUkRBTkEKK1NBQkxKT1YgScWgVFZBTgorU0FCTEpPViBNSUxJQ0EKK1NBQk8gxaBBTkRPUgorU0FCTyDFoEFOSklLQQorU0FCTyDEkEVaRQorU0FCTyDEkE9SxJBFCitTQUJPIMSQT1LEkEUKK1NBQk8gQUxFS1NBTkRBUgorU0FCTyBBTEVLU0FOREFSCitTQUJPIEFOQSBEUgorU0FCTyBBTkEKK1NBQk8gQU5BCitTQUJPIEFORFJBxaAKK1NBQk8gQU5EUkHFoAorU0FCTyBBTklDQQorU0FCTyBBTklDQQorU0FCTyBCRVJUQUxBTgorU0FCTyBEUkFHQU4KK1NBQk8gRUxJWkFCRVRBCitTQUJPIEVNSUwKK1NBQk8gRVLFvUVCRVQKK1NBQk8gRVLFvUVCRVQKK1NBQk8gRVJORQorU0FCTyBFUk5FCitTQUJPIEVTVEVSCitTQUJPIEZFUkVOQworU0FCTyBGRVJFTkMKK1NBQk8gRlJBTkpBCitTQUJPIEZSQU5KQQorU0FCTyBGUkFOSk8KK1NBQk8gR0HFoFBBUgorU0FCTyBHQUJPUgorU0FCTyBHRVJHRUxKCitTQUJPIEdJWkVMQQorU0FCTyBHT1JEQU5BCitTQUJPIEhJTERBCitTQUJPIEnFoFRWQU4KK1NBQk8gScWgVFZBTgorU0FCTyBJxaBUVkFOCitTQUJPIEnFoFRWQU4KK1NBQk8gScWgVFZBTgorU0FCTyBJxaBUVkFOCitTQUJPIElCT0xKS0EKK1NBQk8gSURBCitTQUJPIElMT05BCitTQUJPIElNUkUKK1NBQk8gSU1SRQorU0FCTyBJVkFOCitTQUJPIEpBTklLQQorU0FCTyBKQU5PxaAKK1NBQk8gSk9TSVAKK1NBQk8gSk9TSVAKK1NBQk8gSk9TSVAKK1NBQk8gSk9TSVAKK1NBQk8gSk9TSVAKK1NBQk8gSk9TSVAKK1NBQk8gSlVMSUEKK1NBQk8gSlVMSUpBTkEKK1NBQk8gS0FST0xJTkEKK1NBQk8gS0FUSUNBCitTQUJPIEtBVElDQQorU0FCTyBMQURJU0xBVgorU0FCTyBMQURJU0xBVgorU0FCTyBMQURJU0xBVgorU0FCTyBMSlVCT01JUgorU0FCTyBNQVJJSkEKK1NBQk8gTUFSVEEKK1NBQk8gTUlIQUpMTworU0FCTyBNSUxJQ0EKK1NBQk8gTklLT0xBCitTQUJPIE9MSVZFUkEKK1NBQk8gUEFWTEUKK1NBQk8gUEVUQVIKK1NBQk8gUEVUQVIKK1NBQk8gUEVUQVIKK1NBQk8gUEnFoFRBCitTQUJPIFJPWkFMSUpBCitTQUJPIFNOSUpFxb1BTkEKK1NBQk8gU1RFVkFOCitTQUJPIFRFUkVaSUpBCitTQUJPIFRJQk9SCitTQUJPIFZBTEVSSUpBCitTQUJPIFpPTFRBTgorU0FCTyBaT0xUQU4KK1NBQk/FoE9USSBGQUJJSkFOCitTQUJPTCBKQVJPU0xBVgorU0FCT0wgSkVMRU5BCitTQUJPTMSMS0kgQU5EUklKQQorU0FCT0zEjEtJIEFORFJJSkEKK1NBQk9MxIxLSSBBTkRSSUpBCitTQUJPTMSMS0kgWk9MVEFOCitTQUJPTE9WScSGIEJPUklTCitTQUJPViBCT1JJVk9KRQorU0FCT1ZMSkVWScSGIFJBRE9WQU4KK1NBRMW9QUsgTEpVQklDQQorU0FExb1BS09WIERSQUdPTUlSCitTQUTFvUFLT1YgRFXFoEFOS0EKK1NBRMW9QUtPViBNSVJPU0xBVgorU0FExb1BS09WIE9MR0EKK1NBRMW9QUtPViBQRVRBUgorU0FExb1BS09WIFJBRE9WQU4KK1NBRMW9QUtPViBSQURPVkFOCitTQUTFvUFLT1YgVklET1NBVkEKK1NBRMW9QUtPViBaT1JBTgorU0FEScSGIFJBRElWT0oKK1NBRElLVSBTQURJSworU0FJVE9WIMWgQUhJTQorU0FKRkVSVCDEkFVMQQorU0FKRkVSVCBKT0hBTgorU0FKRkVSVCBMSlVCScWgQQorU0FKRkVSVCBMSlVCScWgQQorU0FKRkVSVCBNQVJHSVQKK1NBSkZFUlQgTUFSSUpBCitTQUpJxIYgTUlMSVZPSkUKK1NBSktPIEJSQU5LQQorU0FKS08gScWgVFZBTgorU0FKS08gTUFSR0lUQQorU0FKS08gUlXFvUlDQQorU0FKS08gWk9MVEFOCitTQUpMRVIgRkVSRU5DCitTQUpUT1ZJxIYgRFJBR0lOSkEKK1NBS0HEjCBCT1JJU0xBViBMRUtBUgorU0FLQcSMIEZFUkVOQworU0FLQcSMIEnFoFRWQU4KK1NBS0HEjCBKQU5LTworU0FLQcSMIEpBTktPCitTQUtBxIwgSk9WQU4KK1NBS0HEjCBKVUxJSkFOQQorU0FLQcSMIEpVTElKQU4KK1NBS0HEjCBMSlVERVZJVAorU0FLQcSMIE1BR0RBCitTQUtBxIwgTUFSSUpBCitTQUtBxIwgTUlIQUlMTworU0FLQcSMIFNJTUEKK1NBS0HEjCBTVkVUTEFOQQorU0FLQcSMIFZBU0lMSUpFCitTQUtBxIwgVkxBRElNSVIgQURWT0tBVAorU0FLQcSMIFZMQURJTUlSCitTQUtBxIwgVkxBRElNSVIKK1NBS0FMIEFERUxBCitTQUtBTCBBVUdVU1RJTkEKK1NBS0FMIEdBQk9SCitTQUtBTCBKT8W9RUYKK1NBS0FMIE1BUklKQQorU0FLQUwgTUFSSUpBCitTQUtBTEHFoCBPVE8KK1NBS0FOIERBTElCT1IKK1NBS09WScSGIEFMSUpBCitTQUtPVknEhiBTVE9KQU4KK1NBS1VMU0tJIE1JTEFOCitTQUxBxIwgxJBVUk8KK1NBTEFHIEVWR0VOSUpFCitTQUxBRyBKQU5LTworU0FMQUcgTEpVQkEKK1NBTEFJIEVSxb1FQkVUCitTQUxBSSBFU1RFUgorU0FMQUktR09NQkFSIFJVxb1BCitTQUxBSSBJxaBUVkFOIE5PVklOQVIKK1NBTEFJIEpFTElTQVZFVEEKK1NBTEFJIExBRElTTEFWCitTQUxBSSBMQVNMTworU0FMQUogRlJBTkpPCitTQUxBSiBKQU5LTworU0FMQUogSk/FvUVGCitTQUxBSiBNSVJKQU5BCitTQUxBSiBSVURPTEYKK1NBTEFLIEpBTktPCitTQUxBSyBWTEFESU1JUgorU0FMQUsgVkxBRElNSVIKK1NBTEFNVU4gQU5BCitTQUxBTVVOIEJPU0lMSktBCitTQUxBTVVOIElMSUpBCitTQUxBTVVOIEpBTktPCitTQUxBTVVOIEpPQUtJTQorU0FMQU1VTiBKT0FLSU0KK1NBTEFNVU4gTkFUQUxJSkEKK1NBTEFNVU4gU0lMVkVTVEVSCitTQUxBTVVOIFZMQURJTUlSCitTQUxBUFVSQSBNSUxFCitTQUxBUFVSQSBORURFTEpLTworU0FMQVBVUkEgUEVUQVIKK1NBTEFUScSGIE1JTE9WQU4KK1NBTEFUScSGIFBFVEFSIE1SIE9FQworU0FMQVRJxIYgVkVMSU1JUgorU0FMRFVNIFZJREEKK1NBTEVUQSBBTlRVTgorU0FMScSGIE1JTEFOCitTQUxJQkVHT1ZJxIYgTVVTVEFGQQorU0FMSUhPVknEhiBJU01FVAorU0FMSUpBIFNFRkVSCitTQUxJSkVWScSGIMWgRcSGRVJJSkEKK1NBTEtBSSBJTE9OQQorU0FMS0FJIExBU0xPCitTQUxNQSDFoEFORE9SCitTQUxNQSBHRVpBCitTQUxNQSBKT8W9RUYgUFJPRiBEUgorU0FMTUEgSk9TSVAKK1NBTE1BIFBFVEFSCitTQUxNQSBUSUJPUgorU0FMTUEgVElCT1IKK1NBTE9DS0kgU1RFVkFOCitTQUxPTlNLSSBCT8W9SURBUgorU0FMT05TS0kgSkVMRU5BCitTQUxPTlNLSSBNSUxPUkFECitTQUxPTlNLSSBNSVJKQU5BCitTQUxPTlNLSSBNSVJPU0xBVgorU0FMT05TS0kgUlXFvUEKK1NBTE9OVEFJIEpVTElKQU5BCitTQUxPUEVLIEJSQU5LTworU0FMT1YgSk9WQU4KK1NBTUFDIElWQU5LQQorU0FNQUMgTUlSS08KK1NBTUFSxJBJxIYgQlJBTklTTEFWQQorU0FNQVJExb1JxIYgxb1BUktPCitTQU1BUkTFvUnEhiBBREFNCitTQU1BUkTFvUnEhiBCT8WgS08KK1NBTUFSRMW9ScSGIEJPxaBLTworU0FNQVJExb1JxIYgQk9SQQorU0FNQVJExb1JxIYgQk9SQQorU0FNQVJExb1JxIYgQlJBTklTTEFWCitTQU1BUkTFvUnEhiBCUkFOS08KK1NBTUFSRMW9ScSGIERBTklMTworU0FNQVJExb1JxIYgREFOSUxPCitTQU1BUkTFvUnEhiBERVNBCitTQU1BUkTFvUnEhiBEUkFHQU4KK1NBTUFSRMW9ScSGIERVxaBBTgorU0FNQVJExb1JxIYgR09KS08KK1NBTUFSRMW9ScSGIElMSUpBCitTQU1BUkTFvUnEhiBJVkFOCitTQU1BUkTFvUnEhiBLUlNUQQorU0FNQVJExb1JxIYgTEpVQk8KK1NBTUFSRMW9ScSGIE1JTEFOCitTQU1BUkTFvUnEhiBNSUxJSkEKK1NBTUFSRMW9ScSGIE1JTE/FoAorU0FNQVJExb1JxIYgTUlMT8WgCitTQU1BUkTFvUnEhiBNSUxPSktPCitTQU1BUkTFvUnEhiBNSUxPUkFECitTQU1BUkTFvUnEhiBNSUxPU0FWCitTQU1BUkTFvUnEhiBNSU9EUkFHCitTQU1BUkTFvUnEhiBNSVJBCitTQU1BUkTFvUnEhiBORcSQQQorU0FNQVJExb1JxIYgTk9WSUNBCitTQU1BUkTFvUnEhiBPTEdBCitTQU1BUkTFvUnEhiBPU1RPSkEKK1NBTUFSRMW9ScSGIFJBRE9KS0EKK1NBTUFSRMW9ScSGIFJBRE9TTEFWCitTQU1BUkTFvUnEhiBSQURPVkFOCitTQU1BUkTFvUnEhiBSQUpLTworU0FNQVJExb1JxIYgUkFUS08KK1NBTUFSRMW9ScSGIFJPWklOQQorU0FNQVJExb1JxIYgU0FWS0EKK1NBTUFSRMW9ScSGIFNBVk8KK1NBTUFSRMW9ScSGIFNQT01FTktBCitTQU1BUkTFvUnEhiBTUkVURU4KK1NBTUFSRMW9ScSGIFNSRVRFTgorU0FNQVJExb1JxIYtU1RBTknFoEnEhiBNSUxBTktBCitTQU1BUkTFvUnEhiBTVkVUTEFOQQorU0FNQVJExb1JxIYgVkFTSUxJSkEKK1NBTUFSRMW9ScSGIFZBU08KK1NBTUFSRMW9ScSGIFZFTElNSVIKK1NBTUFSRMW9ScSGIFZMQURPCitTQU1BUkTFvUnEhiBWVUtBxaBJTgorU0FNQVJExb1JxIYgWkRSQVZLTworU0FNQVJExb1JxIYgWk9SQU4KK1NBTUFSRMW9ScSGIFpVWkFOQQorU0FNQVJExb1JSkEgxJBVUsSQSU5LQQorU0FNQVJExb1JSkEgxJBVUkHEkAorU0FNQVJExb1JSkEgxJBVUkEKK1NBTUFSRMW9SUpBIEJPxaBLTworU0FNQVJExb1JSkEgREVTQQorU0FNQVJExb1JSkEgRFXFoEFOCitTQU1BUkTFvUlKQSBHT1JJQ0EKK1NBTUFSRMW9SUpBIEpFTEVOQQorU0FNQVJExb1JSkEgTEpVQklDQQorU0FNQVJExb1JSkEgTEpVQklDQQorU0FNQVJExb1JSkEgTUFSSUpBCitTQU1BUkTFvUlKQSBNQVJJSkEKK1NBTUFSRMW9SUpBIE1JTEFOS0EKK1NBTUFSRMW9SUpBIE1JTEFOCitTQU1BUkTFvUlKQSBNSUxBTgorU0FNQVJExb1JSkEgTUlMRQorU0FNQVJExb1JSkEgTUlSS08KK1NBTUFSRMW9SUpBIE1JUk9TTEFWCitTQU1BUkTFvUlKQSBORUJPSsWgQQorU0FNQVJExb1JSkEgTk9WSUNBCitTQU1BUkTFvUlKQSBQRVRBUgorU0FNQVJExb1JSkEgUkFERQorU0FNQVJExb1JSkEgUkFERQorU0FNQVJExb1JSkEgUkFOS08KK1NBTUFSRMW9SUpBIFNUT0pBTgorU0FNQVJExb1JSkVWScSGIE1JUk9TTEFWCitTQU1CUkFJTE8gQlJVTk8KK1NBTUVDIEJPxb1FTktBCitTQU1JSSBBQkJBUworU0FNT8SMRVRBIEFMRUtTQU5EUkEKK1NBTU/EjEVUQSBNSUxFCitTQU1PxIxFVEEgTkVWRU5LQQorU0FNT8SMRVRBIFJBRE9NSVIKK1NBTU9KTElLIE5JS09MQQorU0FNT0tPVkxJSkEgTUFSS08KK1NBTU9MT1YgVkVMSktPCitTQU1PTE9WxIxFViBJVkFOS0EKK1NBTVNPTk9WIE5JS09MQSBESVBMIElORworU0FOxIxBTklOIE1JTElWT0oKK1NBTkFERVIgxb1JVktPCitTQU5BREVSIMW9SVZLTworU0FOQURFUiBKRUxFTkEKK1NBTkFERVIgUkFET1ZBTgorU0FOQURFUiBTTE9CT0RBTgorU0FOQURFUiBWRVJBCitTQU5EScSGIEJSQU5JTUlSCitTQU5EScSGIElWQU4KK1NBTkRJxIYgU1ZFVExBTkEKK1NBTkRJS0kgQVBPU1RPTAorU0FORElLSSBLT1NUQQorU0FORElLSSBLT1NUQQorU0FOS09WScSGIEJPUktPCitTQU5LT1ZJxIYgTEpVQklOS0EKK1NBTktPVknEhiBNSUxPUkFECitTQU5LT1ZJxIYgTUlSQQorU0FOS09WScSGIFBFVEFSCitTQU5LT1ZJxIYgU0FCSU5BCitTQU5LT1ZJxIYgU1ZFVE9aQVIKK1NBTlRBSSBJTE9OQQorU0FOVE8gRlJBTkpBCitTQU5UTyBLQVJPTEoKK1NBTlRPIExBRElTTEFWIERJUEwgSU5HCitTQU5UTyBaT0xUQU4KK1NBTlRPIFpPTFRBTgorU0FOVE9WQUMgRFJBR0FOCitTQU5UT1ZBQyBMSlVCSU5LQQorU0FOVE9WQUMgTUlMT8WgCitTQU5UT1ZBQyBQRVRBUgorU0FOVE9WQUMgU1RFVkFOCitTQU5UUkHEjCDEkFVSxJBJTktBCitTQU5UUkHEjCBEUkFHT0xKVUIKK1NBTlRSQcSMIEdPUkRBTkEKK1NBTlRSQcSMIE1JTEFOCitTQU5UUkHEjCBNSUxPUkFECitTQU5UUkHEjCBNT03EjElMTworU0FOVFJBxIwgTklLT0xBCitTQU5UUkHEjCBSQVRLTworU0FOVFJBxIwgU0FWTworU0FOVFJBxIwgU0xBVktPCitTQVBVTkTFvUnEhi1NQVRJxIYgTUlSSkFOQQorU0FQVU5Exb1JxIYgTUlMQU4KK1NBUFVORMW9ScSGIE1JUkEKK1NBUFVORMW9ScSGIFRBVEpBTkEKK1NBUFVORMW9SUpBIEVSxb1FQkVUCitTQVBVTkTFvUlKQSBNQVJJSkEKK1NBUsSMRVYgTkFESUNBCitTQVLEjEVWIFJBRElWT0oKK1NBUkHEjEVWScSGIFNSQk9MSlVCCitTQVJBRklKQU5PVknEhiBOSUtPTEEKK1NBUkFKTElKQSBEUkFHT01JUgorU0FSQU1BTkRJxIYgTU9NSVIKK1NBUkFNQU5EScSGIE5FREVMSktPCitTQVJBTkRBIFZBU0lMSktBCitTQVJBUEtBIEtBVElDQQorU0FSQVRMScSGIE1JTEFOCitTQVJBVExJxIYgU1JCT0xKVUIKK1NBUkFWT0xBQyBMQVpBUiBWRVRFUklOQVIKK1NBUkFWT0xBQyBNQUdEQUxFTkEKK1NBUkFWT0xBQyBNSVJKQU5BCitTQVJBVk9MQUMgTUlSSkFOQQorU0FSQVZPTEFDIFNJTknFoEEgRFIKK1NBUkFWT0xBQyBTTEFWS08KK1NBUkFWT0xBQyBTVkVUTEFOQQorU0FSScSGIMSQVVJBCitTQVJJxIYgREFOSUxPCitTQVJJxIYgSVZBTgorU0FSScSGIExFUE9TQVZBCitTQVJJxIYgTUFSSU5LTworU0FSScSGIE1JTE/FoAorU0FSScSGIE1JTE9KRSBEUgorU0FSScSGIFJBRE/FoAorU0FSScSGIFJBVEtPCitTQVJJxIYgVElCT1IKK1NBUknEhiBWT0pJTgorU0FSSUtBUyBTTkXFvUFOQQorU0FSSUtBUyBWQVNJTElKRQorU0FSS0EgQVJQQUQKK1NBUktBIE1JSEFMSgorU0FSS09UScSGIEZSQU5KQQorU0FSTUXFoCBNQVJJSkEgRElQTCBQUkFWTklLCitTQVJPViBMQVpBUgorU0FSVkHFoCDFoEFORE9SCitTQVJWQcWgIEpBTk/FoAorU0FSVkFLIEFMRUtTQQorU0FSVkFOIERSQUdPTEpVQgorU0FSVkFOIFZKRVJBCitTQVMgSkVORQorU0FTSUsgQk9SSVNMQVYKK1NBVEFSScSGIEJSQU5JU0xBVgorU0FUQVJJxIYgTUlMSktPIERSCitTQVRLQU5PVknEhiBIQUJJQgorU0FVRVIgSkVMSUNBCitTQVVFUiBNQVJHSVRBCitTQVVFUiBQQVZMRQorU0FVRVIgUk9TQQorU0FVRVIgU01JTEpBTkEKK1NBVVNNQU4gTEFTTE8KK1NBVVpFUiBGUkFOSk8KK1NBVsSMScSGIERSQUdBTgorU0FWxIxJxIYgTUlMQU5BCitTQVbEjEnEhiBNSUxJVk9KRQorU0FWxIxJxIYgTUlMSVZPSgorU0FWxIxJxIYgTUlST1NMQVYKK1NBVsSMScSGIFNMT0JPREFOCitTQVZBIEZSQU5KQQorU0FWQU5PVknEhiBCUkFOS08KK1NBVkFOT1ZJxIYgRFJBR09MSlVCCitTQVZBTk9WScSGIERVxaBBTgorU0FWQU5PVknEhiBKT1ZBTgorU0FWQU5PVknEhiBKT1ZPCitTQVZBTk9WScSGIExKVUJPTUlSCitTQVZBTk9WScSGIE1BUklDQQorU0FWQU5PVknEhiBNQVJJTktPCitTQVZBTk9WScSGIE1JTEFOCitTQVZBTk9WScSGIE1JTE/FoAorU0FWQU5PVknEhiBNSVJLTworU0FWQU5PVknEhiBORU5BRAorU0FWQU5PVknEhiBTTkXFvUFOQQorU0FWQU5PVknEhiBTVE9KQU4KK1NBVkFOT1ZJxIYgWkRSQVZLQQorU0FWQVRJxIYgRFJBR09NSVIKK1NBVkFUScSGIFZMQURJTUlSCitTQVZBVE9WScSGIEJPU0lMSktBCitTQVZBVE9WScSGIERSQUdBTgorU0FWQVRPVknEhiBEVcWgQU4KK1NBVkFUT1ZJxIYgUkFET1ZBTgorU0FWRUxKScSGIMSMRURPTUlSCitTQVZFTEpJxIYgRFXFoEFOCitTQVZFTEpJxIYgTUFSSUpBCitTQVZFTEpJxIYgU1ZFVExBTkEKK1NBVkVMSknEhiBWRUxKS08KK1NBVkVTS0kgTUlMxIxPCitTQVZFU0tJIFpPUkFOCitTQVZJxIxFVknEhiBHT0pLTworU0FWScSMScSGIEdPSktPCitTQVZJxIxJxIYgU1RPSkFOCitTQVZJxIxJTiBMSlVCSUNBCitTQVZJxIYgxIxFRE9NSVIKK1NBVknEhiDEjEVETworU0FWScSGIMSGRVRLTworU0FWScSGIMW9SVZLQQorU0FWScSGIMW9SVZLQQorU0FWScSGIMSQT0tBCitTQVZJxIYgxJBPUsSQRSBESVBMIElORworU0FWScSGIMSQT1LEkEUKK1NBVknEhiDEkFVSxJBJSkEKK1NBVknEhiBBTEVLU0FORFJBCitTQVZJxIYgQUxFS1NBCitTQVZJxIYgQU7EkEVMS0EKK1NBVknEhiBBTsSQRUxLQQorU0FWScSGIEFOQQorU0FWScSGIEFORFJJSkEKK1NBVknEhiBBTkRSSUpBCitTQVZJxIYgQU5HRUxJTkEKK1NBVknEhiBCTEFHT0pFCitTQVZJxIYgQkxBR09KRQorU0FWScSGIEJPxb1JREFSCitTQVZJxIYgQk/FvUlNSVIgRFIKK1NBVknEhiBCT0dEQU4KK1NBVknEhiBCT1JJU0xBVgorU0FWScSGIEJSQU5JU0xBVgorU0FWScSGIEJSQU5JU0xBVgorU0FWScSGIEJSQU5JU0xBVgorU0FWScSGIEJSQU5LTworU0FWScSGIENWRVRBTktBCitTQVZJxIYgQ1ZFVEtPCitTQVZJxIYgREFNSkFOIERSIExFS0FSCitTQVZJxIYgREFOSUNBCitTQVZJxIYgREFSQQorU0FWScSGIERFSkFOCitTQVZJxIYgREVTQU5LQQorU0FWScSGIERFU0lNSVIKK1NBVknEhiBET0JSSUxBCitTQVZJxIYgRFJBR0FOCitTQVZJxIYgRFJBR0FOCitTQVZJxIYgRFJBR0FOCitTQVZJxIYgRFJBR0FOCitTQVZJxIYgRFJBR0nFoEEKK1NBVknEhiBEUkFHT1NMQVYKK1NBVknEhiBEUkFHTworU0FWScSGIERSQUdVVElOCitTQVZJxIYgRFJBR1VUSU4KK1NBVknEhiBEVcWgQU5LQQorU0FWScSGIERVxaBBTgorU0FWScSGIERVxaBBTgorU0FWScSGIERVxaBBTgorU0FWScSGIERVxaBBTgorU0FWScSGIERVxaBBTgorU0FWScSGIERVxaBBTgorU0FWScSGIERVxaBBTgorU0FWScSGIEdFT1JHSUpFCitTQVZJxIYgR0xJR09SSUpFCitTQVZJxIYgR09KS08KK1NBVknEhiBHT1JBTgorU0FWScSGIEdPU1RJTUlSCitTQVZJxIYgR1JPWkRBTkEKK1NBVknEhiBJTElKQQorU0FWScSGIElMSUpBCitTQVZJxIYgSVZBTgorU0FWScSGIEpBRFJBTktBCitTQVZJxIYgSkVMQQorU0FWScSGIEpFTEVOQQorU0FWScSGIEpFTEVOQQorU0FWScSGIEpFTElDQQorU0FWScSGIEpFVlRPCitTQVZJxIYgSk9WQU5LQQorU0FWScSGIEpPVkFOCitTQVZJxIYgSk9WQU4KK1NBVknEhiBKT1ZBTgorU0FWScSGIEpPVkFOCitTQVZJxIYgSk9WQU4KK1NBVknEhiBKT1ZBTgorU0FWScSGIEtBVElDQQorU0FWScSGIEtBVElDQQorU0FWScSGIEtPU1RBCitTQVZJxIYgS1NFTklKQQorU0FWScSGIExBWkFSCitTQVZJxIYgTEFaQVIKK1NBVknEhiBMRU5LQSBEUgorU0FWScSGIExKSUxKQU5BCitTQVZJxIYgTEpJTEpBTkEKK1NBVknEhiBMSlVCScWgQQorU0FWScSGIExKVUJJQ0EKK1NBVknEhiBMSlVCT01JUgorU0FWScSGIExKVUJPU0xBVgorU0FWScSGIExVS0EKK1NBVknEhiBNQVJJSkEKK1NBVknEhiBNQVJJSkEKK1NBVknEhiBNQVJJSkEKK1NBVknEhiBNQVJJSkEKK1NBVknEhiBNQVJJTkEKK1NBVknEhiBNQVJJTkEKK1NBVknEhiBNQVJLTworU0FWScSGIE1FRMW9TworU0FWScSGIE1JSEFKTE8KK1NBVknEhiBNSUxBRElOCitTQVZJxIYgTUlMQU4KK1NBVknEhiBNSUxBTgorU0FWScSGIE1JTEFOCitTQVZJxIYgTUlMQU4KK1NBVknEhiBNSUxFTkEKK1NBVknEhiBNSUxFTktPCitTQVZJxIYgTUlMRU5LTworU0FWScSGIE1JTEVOS08KK1NBVknEhiBNSUxJSkFOQQorU0FWScSGIE1JTElTQVYKK1NBVknEhiBNSUxJVk9KRQorU0FWScSGIE1JTElWT0pFCitTQVZJxIYgTUlMSVZPSkUKK1NBVknEhiBNSUxJVk9KCitTQVZJxIYgTUlMSVZPSgorU0FWScSGIE1JTEtPCitTQVZJxIYgTUlMT8WgIERJUEwgSU5HCitTQVZJxIYgTUlMT8WgCitTQVZJxIYgTUlMT8WgCitTQVZJxIYgTUlMT8WgCitTQVZJxIYgTUlMT8WgCitTQVZJxIYgTUlMT1JBRAorU0FWScSGIE1JTE9SQUQKK1NBVknEhiBNSUxPUkFECitTQVZJxIYgTUlMT1NBVkEKK1NBVknEhiBNSUxPU0FWCitTQVZJxIYgTUlMT1ZBTgorU0FWScSGIE1JTFVUSU4KK1NBVknEhiBNSU9EUkFHCitTQVZJxIYgTUlPRFJBRworU0FWScSGIE1JUkpBTkEKK1NBVknEhiBNSVJLTworU0FWScSGIE1JUktPCitTQVZJxIYgTUlST1NMQVYKK1NBVknEhiBNSVJPU0xBVgorU0FWScSGIE1JUk9TTEFWCitTQVZJxIYgTUlST1NMQVYKK1NBVknEhiBNTEFERU4KK1NBVknEhiBNT03EjElMTworU0FWScSGIE5BREEKK1NBVknEhiBOQURFxb1EQQorU0FWScSGIE5BVEHFoEEKK1NBVknEhiBORURFTEpLTworU0FWScSGIE5FREVMSktPCitTQVZJxIYgTkVERUxKS08KK1NBVknEhiBORURFTEpLTworU0FWScSGIE5FTkFECitTQVZJxIYgTklLT0xBCitTQVZJxIYgTklLT0xBCitTQVZJxIYgTklLT0xBCitTQVZJxIYgTklLT0xBCitTQVZJxIYgTklOT1NMQVYKK1NBVknEhiBOT1ZPCitTQVZJxIYgT0xHQQorU0FWScSGIE9MSVZFUkEKK1NBVknEhiBPTElWRVJBCitTQVZJxIYgUEFOVEVMSUpBCitTQVZJxIYgUEFWTEUKK1NBVknEhiBQRVJBCitTQVZJxIYgUEVUQVIKK1NBVknEhiBQRVRBUgorU0FWScSGIFBFVEFSCitTQVZJxIYgUEVUQVIKK1NBVknEhiBQTEFOSU5LQQorU0FWScSGIFBSRURSQUcKK1NBVknEhiBQUk9LT1BJSkUKK1NBVknEhiBSQURJxaBBCitTQVZJxIYgUkFESVZPSkUgRElQTCBJTkcKK1NBVknEhiBSQURNSUxBCitTQVZJxIYgUkFETUlMQQorU0FWScSGIFJBRE1JTEEKK1NBVknEhiBSQURPSklDQQorU0FWScSGIFJBRE9NSVIKK1NBVknEhiBSQURPTUlSCitTQVZJxIYgUkFET1ZBTgorU0FWScSGIFJBRE9WQU4KK1NBVknEhiBSQUtJxIYKK1NBVknEhiBSQVRLTworU0FWScSGIFJBVEtPCitTQVZJxIYgUkVMSkEgRFIKK1NBVknEhiBSRU5BVEEKK1NBVknEhiBST0tTQU5EQQorU0FWScSGIFJVxb1JQ0EKK1NBVknEhiBTQcWgQQorU0FWScSGIFNBVkEgQURWT0tBVAorU0FWScSGIFNBVkEKK1NBVknEhiBTQVZBCitTQVZJxIYgU0FWQQorU0FWScSGIFNJTUVVTiBESVBMIElORworU0FWScSGIFNJTknFoEEKK1NBVknEhiBTTEFWS08KK1NBVknEhiBTTEFWT0xKVUIKK1NBVknEhiBTTEFWT0xKVUIKK1NBVknEhiBTTE9CT0RBTgorU0FWScSGIFNMT0JPREFOCitTQVZJxIYgU01JTEpBCitTQVZJxIYgU1BBU09KRQorU0FWScSGIFNQQVNPSkUKK1NBVknEhiBTUsSQQU4KK1NBVknEhiBTUkJJU0xBVgorU0FWScSGIFNSRVRBCitTQVZJxIYgU1RFVkFOCitTQVZJxIYgU1RPSkFOS0EKK1NBVknEhiBTVE9KQU4KK1NBVknEhiBTVE9KQU4KK1NBVknEhiBTVE9KQU4KK1NBVknEhiBTVkVOS0EKK1NBVknEhiBTVkVUT1pBUgorU0FWScSGIFNWRVRPWkFSCitTQVZJxIYgVEFUT01JUgorU0FWScSGIFRFT0RPUgorU0FWScSGIFRJTktBCitTQVZJxIYgVE9ET1IKK1NBVknEhiBUT0RPUgorU0FWScSGIFRPRE9SCitTQVZJxIYgVE9NSVNMQVYKK1NBVknEhiBVUk/FoAorU0FWScSGIFZFTEpLTworU0FWScSGIFZFUklDQQorU0FWScSGIFZFUklDQQorU0FWScSGIFZFU05BCitTQVZJxIYgVklET1NBVgorU0FWScSGIFZJVE9NSVIKK1NBVknEhiBWTEFESU1JUgorU0FWScSGIFZMQURJTUlSCitTQVZJxIYgVk9KQQorU0FWScSGIFZVS0FOCitTQVZJxIYgVlVLT1RBCitTQVZJxIYgWk9SQU4KK1NBVknEhiBaT1JBTgorU0FWScSGIFpPUkFOCitTQVZJxIYgWk9SQU4KK1NBVknEhiBaT1JBTgorU0FWScSGIFpPUkEKK1NBVklOIMW9SVZLQQorU0FWSU4gxb1JVktPCitTQVZJTiDEkE9SxJBFCitTQVZJTiDEkFVSxJBJTktBCitTQVZJTiBCRVJJU0xBVgorU0FWSU4gQklMSkFOQSBEUgorU0FWSU4gQk9SQQorU0FWSU4gREFOSUNBCitTQVZJTiBEUkFHT0xKVUIKK1NBVklOIERSQUdPTUlSCitTQVZJTiBEUkVOS0EKK1NBVklOIERVxaBBTgorU0FWSU4gRFXFoEFOCitTQVZJTiBKT1ZBTgorU0FWSU4gSk9WQU4KK1NBVklOIEpVTEtBCitTQVZJTiBMQVNMTworU0FWSU4gTEFaQVIKK1NBVklOIExKVUJJTktBCitTQVZJTiBNQUdEQQorU0FWSU4gTUlMRVZBCitTQVZJTiBNSUxJQ0EKK1NBVklOIE1JTEtBCitTQVZJTiBNSUxPUkFECitTQVZJTiBNSUxPUkFECitTQVZJTiBNSUxPVkFOCitTQVZJTiBNSU9EUkFHIERJUEwgT0VDCitTQVZJTiBNSVJKQU5BCitTQVZJTiBNSVJKQU5BCitTQVZJTiBOSUtPTEEKK1NBVklOIFBBVkxFCitTQVZJTiBQUkVEUkFHCitTQVZJTiBSQURJVk9KCitTQVZJTiBTQVZBCitTQVZJTiBTTkXFvUFOQQorU0FWSU4gU1BJUklET04KK1NBVklOIFNUQU5BCitTQVZJTiBUT0RPUgorU0FWSU4gVE9ET1IKK1NBVklOIFZFUklDQQorU0FWSU4gVlVLT1NBVkEKK1NBVklOIFpPUkEKK1NBVktFTEpJTiBTVEVWQU4KK1NBVktJxIYgRFXFoEFOCitTQVZLT1YgRFJBR09MSlVCCitTQVZLT1YgSUxJSkEKK1NBVktPViBNSUxBTgorU0FWS09WIFRPRE9SCitTQVZLT1YgVkVSQQorU0FWS09WIFZPSklTTEFWCitTQVZLT1YgWk9SQU4KK1NBVktPVknEhiDFvUlWT1JBRAorU0FWS09WScSGIEpBTkpBCitTQVZLT1ZJxIYgTUlMVVRJTgorU0FWS09WScSGIE1JUktPCitTQVZLT1ZJxIYgTkVNQU5KQQorU0FWS09WScSGIFNBVkEKK1NBVktPVknEhiBTQVZPCitTQVZLT1ZJxIYgU1RBxaBBCitTQVZLT1ZJxIYgVEFUSkFOQQorU0FWS09WScSGIFZVS0EKK1NBVktPVknEhiBaRFJBVktPCitTQVZPVknEhiBERVNBTktBCitTQVZPVknEhiBGQVRJTUEKK1NBVk9WScSGIExKVUJPCitTQVZPVknEhiBMVUtBCitTQVZPVknEhiBORU5BRAorU0FWT1ZJxIYgUkFERQorU0FWVS1NSUhBSkxPVknEhiBTT0ZJSkEKK1NBVlUgVElCSQorU0FWVUxKScSGIFJBRE9NSVIKK1NBWkRBTknEhiDEkE9LQQorU0FaREFOScSGIFBBVkxFCitTQVpEQU5JxIYgU1RFVkFOCitTRcSMQU5TS0kgxJBPUsSQRQorU0XEjEVOIE1JTElWT0oKK1NFxIxFTiBTVkVUT1pBUiBEUgorU0XEjEVOSkkgSUJPTEpBCitTRcSMSSBJxaBUVkFOCitTRcSMSVZBTk9WScSGIExFUMWgQQorU0XEjElWQU5PVknEhiBMRVDFoEEKK1NFxIxJVkFOT1ZJxIYgUEFWTEUKK1NFxIxVSlNLSSBBTkRSSUpBIERJUEwgSU5HCitTRcSMVUpTS0kgREFOSUxPCitTRcSMVUpTS0kgTUxBREVOCitTRcSMVUpTS0kgUkFESVZPSgorU0VCQVNUSUFOIEVSTkUKK1NFQkFTVElBTiBKT0hBTkEKK1NFQkFTVElKQU4gWkxBVEtPCitTRUJFTEVESSBQQVZMRQorU0VCRU5KSSBGRVJFTkMKK1NFQkVOSkkgRlJBTkpBCitTRUJJxaBBTk9WScSGIMSQT1LEkEUKK1NFQknFoEFOT1ZJxIYgUEFWTEUKK1NFREVKIEpBTkVaCitTRURFUiBBTEVLU0FOREFSCitTRURFUiBJVklDQQorU0VERVIgU0xBVktPCitTRURFUiBWTEFESU1JUgorU0VERVJMQU5EIMSQT1LEkEUKK1NFRExBxIxFSyBTQVJBCitTRURMQUsgQU5EUkHFoAorU0VETEFOIElMSUpBCitTRURMQU4gTUFOT0pMTworU0VETEFOIE1JUktPIERJUEwgSU5HCitTRURMQU4gUkFET1NMQVYKK1NFRExBTiBTQVZBCitTRURMQVIgSUxJSkEKK1NFRExBUiBNQU5FCitTRURMQVIgTUlMSUNBCitTRURMQVIgTUlMSUNBCitTRURMQVIgTkFEQQorU0VETUFLIERSQUdBTgorU0VETUFLIFZMQURPCitTRUbEjElLIMW9VcW9QU5BCitTRUZFUiBNQVJJSkEKK1NFRkVSIFNBS0lCCitTRUZFUiBTRU5BRAorU0VGRVJPVknEhiBTVUFECitTRUcgxb1Vxb1BTkEKK1NFRyBJTVJFCitTRUdFREkgQlJBTktBCitTRUdFREkgRElNSVRSSUpFCitTRUdFREkgRVZHRU5JSkUKK1NFR0VESSBJVklDQQorU0VHRURJIEpPU0lQCitTRUdFREkgSk9WQU4KK1NFR0VESSBKVUxJSkFOCitTRUdFREkgS0FST0xKCitTRUdFREktS09WQcSMRVYgQlJBTktBIERSCitTRUdFREkgS1NFTklKQQorU0VHRURJIExFT05BCitTRUdFREkgTUFSSUpBCitTRUdFREkgTUVMSVRBCitTRUdFREkgTUlMRU5BCitTRUdFREkgU0xBVklDQQorU0VHRURJIFNURVZBTgorU0VHRURJIFZMQURJTUlSCitTRUdFRElOQUMgRFXFoEtPCitTRUdFRElOQUMgTkFUQUxJSkEKK1NFR0VESU5BQyBaRFJBVktPCitTRUdFRElOU0tJIEFSS0FESUpFCitTRUdFRElOU0tJIEJPSktPCitTRUdFRElOU0tJIEpVTElKQU5BCitTRUdFRElOU0tJIE5FU1RPUgorU0VHRURJTlNLSSBTQVZBCitTRUdFRElOU0tJIFRPTUEKK1NFR0VESU5TS0kgVklUT01JUgorU0VHSSBMQVNMTworU0VHScSGIEJPUklTTEFWCitTRUdJxIYgUkFOS08KK1NFSVpPVknEhiBEVcWgQU5LQQorU0VLQcSMIFBFVEFSCitTRUtFIEFSUEFECitTRUtFIEVWQQorU0VLRSBJTElKQQorU0VLRSBKT1NJUAorU0VLRSBLQVRBUklOQQorU0VLRSBTVEVWQU4KK1NFS0UgU1RFVkFOCitTRUtFTEogSkFOSQorU0VLRUxKIEpPU0lQCitTRUtFTEogTUFSSUpBCitTRUtFTEogUlXFvUlDQQorU0VLRVJFxaAgxaBBTkRPUgorU0VLRVJFxaAgxJBVTEEKK1NFS0VSRcWgIERFTkXFoAorU0VLRVJFxaAgRVRFTAorU0VLRVJFxaAgRkVSRU5DIERSIExFS0FSCitTRUtFUkXFoCBGRVJFTkMKK1NFS0VSRcWgIEnFoFRWQU4KK1NFS0VSRcWgIEnFoFRWQU4KK1NFS0VSRcWgIElSRU5BCitTRUtFUkXFoCBKT8W9RUYKK1NFS0VSRcWgIEpVTElKQU5BCitTRUtFUkXFoCBKVUxJSkEKK1NFS0VSRcWgIEtBUk9MSgorU0VLRVJFxaAgS0FUSUNBCitTRUtFUkXFoCBMQUpPxaAgRElQTCBJTkcKK1NFS0VSRcWgIE5BTkRPUgorU0VLRVJFxaAgU1RFVkFOCitTRUtFUkXFoCBUSUJPUgorU0VLRVJFxaAgVkVSQQorU0VLRVJFWk9WScSGIE1JTEFOCitTRUtFUknEhiBTVEVWQU4KK1NFS0VSVcWgIEpFTElTQVZFVEEKK1NFS0VSVcWgIExKVUJJQ0EKK1NFS0VSVcWgIE1JTEtJQ0EKK1NFS0VSVcWgIE1JUkpBTkEKK1NFS0VSVcWgIFBBVkxFCitTRUtFUlXFoCBQRVRBUgorU0VLRVJVxaAgU1RBTklTTEFWCitTRUtFUlXFoCBWTEFESU1JUgorU0VLSUNLSSBBTEVLU0FOREFSCitTRUtJQ0tJIEVNSUxJSkEKK1NFS0lDS0kgSVNJRE9SCitTRUtJQ0tJIExBWkFSCitTRUtJQ0tJIE1BUklDQQorU0VLSUNLSSBNSUxPUkFECitTRUtJQ0tJIFBFVEFSCitTRUtJQ0tJIFZFTEpBCitTRUtJWiDFvUlWS08KK1NFS0laIElMSUpBCitTRUtJWiBKT1ZBTgorU0VLSVogTUVMQU5JSkEKK1NFS0laIFBFVEFSCitTRUtJWiBQRVRBUgorU0VLSVogUkFESVZPSgorU0VLSVogU09OSkEKK1NFS0/FoEFOIExKVUJJQ0EKK1NFS0/FoEFOIE1BUklOQQorU0VLT0wgTUlMS0EKK1NFS09TS0kgSk9NxIxFCitTRUtPVlNLSSBSQURFCitTRUtSRU5KIEpPxb1FRgorU0VLVUxJxIYgxIxFRElDQQorU0VLVUxJxIYgxIxFRE9NSVIKK1NFS1VMScSGIMW9QVJLTworU0VLVUxJxIYgxb1JVktPCitTRUtVTEnEhiDFvUlWS08KK1NFS1VMScSGIMW9SVZPSklOIERJUEwgSU5HCitTRUtVTEnEhiDEkE9SxJBFCitTRUtVTEnEhiDEkE9SxJBFCitTRUtVTEnEhiDEkFVSxJBJQ0EKK1NFS1VMScSGIMSQVVJBxJAKK1NFS1VMScSGIEFMRUtTQU5EQVIKK1NFS1VMScSGIEFMRUtTQU5EQVIKK1NFS1VMScSGIEFOxJBFTEtBCitTRUtVTEnEhiBBUlNFTklKRQorU0VLVUxJxIYgQk/FvUlEQVIgRElQTCBJTkcKK1NFS1VMScSGIEJSQU5JU0xBVgorU0VLVUxJxIYgQlJBTklTTEFWCitTRUtVTEnEhiBCUkFOSVNMQVYKK1NFS1VMScSGIERBTkUKK1NFS1VMScSGIERBUklOS0EKK1NFS1VMScSGIERBUklOS0EKK1NFS1VMScSGIERFU0FOS0EKK1NFS1VMScSGIERFU0FOS0EKK1NFS1VMScSGIERPU1RBCitTRUtVTEnEhiBEUkFHQU4KK1NFS1VMScSGIERSQUdJQ0EKK1NFS1VMScSGIERSQUdPTEpVQgorU0VLVUxJxIYgRFJBR09NSVIKK1NFS1VMScSGIERSQUdPTUlSCitTRUtVTEnEhiBEVcWgQU4KK1NFS1VMScSGIERVxaBBTgorU0VLVUxJxIYgRFXFoEFOCitTRUtVTEnEhiBEVcWgQU4KK1NFS1VMScSGIElMSUpBCitTRUtVTEnEhiBJTElKQQorU0VLVUxJxIYgSVZBTgorU0VLVUxJxIYgSVZBTgorU0VLVUxJxIYgS0FUSUNBCitTRUtVTEnEhiBMQVpBUgorU0VLVUxJxIYgTEpJTEpBTkEKK1NFS1VMScSGIExKSUxKQU5BCitTRUtVTEnEhiBMSlVCScWgQQorU0VLVUxJxIYgTEpVQklDQQorU0VLVUxJxIYgTEpVQklDQQorU0VLVUxJxIYgTEpVQklDQQorU0VLVUxJxIYgTEpVQk9NSVIKK1NFS1VMScSGIE1BUklKQQorU0VLVUxJxIYgTUFSSUpBCitTRUtVTEnEhiBNQVJJSkEKK1NFS1VMScSGIE1JxIZPCitTRUtVTEnEhiBNSUxBTgorU0VLVUxJxIYgTUlMQU4KK1NFS1VMScSGIE1JTEFOCitTRUtVTEnEhiBNSUxBTgorU0VLVUxJxIYgTUlMQU4KK1NFS1VMScSGIE1JTEFOCitTRUtVTEnEhiBNSUxFTkEKK1NFS1VMScSGIE1JTEVOQQorU0VLVUxJxIYgTUlMSVZPSkUKK1NFS1VMScSGIE1JTEpBCitTRUtVTEnEhiBNSUxPUkFECitTRUtVTEnEhiBNSUxPUkFECitTRUtVTEnEhiBNSUxPVkFOCitTRUtVTEnEhiBNSUxPVkFOCitTRUtVTEnEhiBNSUxPVkFOCitTRUtVTEnEhiBNSU9EUkFHCitTRUtVTEnEhiBNSU9EUkFHCitTRUtVTEnEhiBNSVJBCitTRUtVTEnEhiBNSVJKQU5BCitTRUtVTEnEhiBNSVJKQU5BCitTRUtVTEnEhiBNSVJLTworU0VLVUxJxIYgTkVHSUNBCitTRUtVTEnEhiBORU1BTkpBCitTRUtVTEnEhiBPTEdBCitTRUtVTEnEhiBPTElWRVJBCitTRUtVTEnEhiBQQVZMRQorU0VLVUxJxIYgUEFWTEUKK1NFS1VMScSGIFBFVEFSIERSCitTRUtVTEnEhiBQRVRBUgorU0VLVUxJxIYgUEVUS08KK1NFS1VMScSGIFJBREUKK1NFS1VMScSGIFJBRElWT0ogTVIKK1NFS1VMScSGIFJBRE1JTEEKK1NFS1VMScSGIFJBRE9TQVYKK1NFS1VMScSGIFJVxb1JQ0EKK1NFS1VMScSGIFNJTU8KK1NFS1VMScSGIFNMQVZLTworU0VLVUxJxIYgU01JTEpBCitTRUtVTEnEhiBTUEFTQQorU0VLVUxJxIYgU1BBU08KK1NFS1VMScSGIFNUQU5JU0xBVgorU0VLVUxJxIYgU1RBTk9KRQorU0VLVUxJxIYgU1RFVkFOCitTRUtVTEnEhiBTVEVWQU4KK1NFS1VMScSGIFNUT0pBTiBESVBMIElORworU0VLVUxJxIYgU1RPSkFOCitTRUtVTEnEhiBTVkVUT1pBUgorU0VLVUxJxIYgU1ZFVE9aQVIKK1NFS1VMScSGIFRJSE9NSVIKK1NFS1VMScSGIFRPTUlTTEFWCitTRUtVTEnEhiBUT01JU0xBVgorU0VLVUxJxIYgVVNUSUpBTktBCitTRUtVTEnEhiBWQUxFTlRJTkEKK1NFS1VMScSGIFZFTk8KK1NFS1VMScSGIFZJRE9KRQorU0VLVUxJxIYgVklOS08KK1NFS1VMScSGIFZMQURJTUlSCitTRUtVTEnEhiBWTEFESU1JUgorU0VLVUxJxIYgVkxBRE8KK1NFS1VMScSGIFZPSklTTEFWCitTRUtVTEnEhiBaT1JBTgorU0VLVUxJxIYgWk9SQU4KK1NFS1VMScSGIFpPUkEKK1NFS1VMScSGIFpPUklDQQorU0VLVUxPVknEhiBNSUhBSUxPCitTRUtVTE9WScSGIE1JTEFOS0EKK1NFS1VMT1ZJxIYgTUlMRU5LTworU0VLVUxPVknEhiBSQURJVk9KRQorU0VLVUxPVknEhiBTTEFWS08KK1NFTCBBTkEKK1NFTCBKT8W9RUYKK1NFTCBMQURJU0xBVgorU0VMQUsgSk9WQU4KK1NFTEFLIEpPVk8KK1NFTEFLIE1JUkpBTkEKK1NFTEFLIFNURVZBTgorU0VMQUtPVknEhiDEkE9SxJBFIERSIExFS0FSCitTRUxBS09WScSGIERSQUdJQ0EgRFIgTEVLQVIKK1NFTEFLT1ZJxIYgTEpVQklTQVYKK1NFTEFLT1ZJxIYgTUlMQU4KK1NFTEFLT1ZJxIYgTUlPRFJBRworU0VMQUtPVknEhiBNSVJPU0xBVgorU0VMQUtPVknEhiBNTEFERU4KK1NFTEFLT1ZJxIYgUkFET1NMQVYKK1NFTEFLT1ZJxIYgU1JFxIZLTworU0VMQUtPVknEhiBWT0pBCitTRUxFxaAgS0FST0xKCitTRUxFxaAgS0FST0xKCitTRUxFxaAgTUlIQUpMTworU0VMRcWgSSBFTFpBCitTRUxFxaBJIEVURUxLQQorU0VMRcWgSSBMQURJU0xBVgorU0VMRcWgSSBMQVNMTworU0VMRcWgSSBNQUdEQUxFTkEKK1NFTEXFoEkgTUFSSUpBCitTRUxFxaBJIFBBTAorU0VMRcWgSSBTVEVWQU4KK1NFTEXFoEkgVklOQ0UKK1NFTEXFoEkgWk9MVEFOCitTRUxFTkEgSkVMRU5BCitTRUxFTkEgTklLT0xBCitTRUxFTknEhiBBTktJQ0EKK1NFTEkgRVRFTEtBCitTRUxJIEnFoFRWQU4gRFIKK1NFTEkgTUlLTE/FoAorU0VMScSGIERSQUdVVElOCitTRUxJxIYgTUnEhk8KK1NFTEnEhiBNSUxPxaAKK1NFTEnEhiBNSUxPUkFECitTRUxJSCBEQU5JTE8KK1NFTElIIERSQUdPCitTRUxJSyBKT1NJUAorU0VMSUsgTEFESVNMQVYKK1NFTElNT1ZJxIYgTVVTVEFGQQorU0VMSU5HRVIgR0FCUklKRUxBCitTRUxKQUtPViBOQURBCitTRUxNQU4gSEFLSUpBCitTRUxTS0kgQU5BCitTRUxTS0kgTUFSSUpBCitTRUxWRVIgQUxJTkHEkEkKK1NFTUFOIEpPQUtJTQorU0VNRURFUiBESU1JVFJJSkUKK1NFTUVERVIgU1VaQU5BCitTRU1FREVSIFNVWkFOQQorU0VNRUsgxIxBQkEKK1NFTUVLIMSMSUxBCitTRU1FTlNLSSBLT1JORUxJSkEKK1NFTUVSRURJIEpPxb1FRgorU0VNRVJFREkgVkVSQQorU0VNSVogS0FUSUNBCitTRU1JWk9WScSGIFNBRElLCitTRU1OSUMgUlVET0xGIERSCitTRU4gTUFSVElOCitTRU7EjFVLIFNMQVZJQ0EKK1NFTsSMVUsgU1RFVk8KK1NFTsSGQU5TS0kgSlVMSUpBCitTRU7EhkFOU0tJIEtBVElDQQorU0VOxIZBTlNLSSBOQURBCitTRU7EhkFOU0tJIFBFVEFSCitTRU7EhkFOU0tJIFpPUkEKK1NFTkHFoEkgTEFESVNMQVYKK1NFTkNJIExBRElTTEFWCitTRU5ERVJBSyDEkFVSQQorU0VOREVSQUsgRVVHRU4KK1NFTkRFUkFLIExJRElKQQorU0VOREVSQUsgTUVMQU5JSkEKK1NFTkRFUkFLIE1JUktPCitTRU5ERVJBSyBOSUtPTEEKK1NFTkRFUkFLIFBFVEFSCitTRU5ERVJBSyBTSUxWRVNURVIKK1NFTkXFoEkgSkVMRU5BCitTRU5JxIYgQU5JQ0EKK1NFTknEhiBJVkFOS0EKK1NFTknEhiBMQVpBUgorU0VOScSGIE1JTE9SQUQKK1NFTknEhiBSSVNUTworU0VOScSGIFZMQURJTUlSCitTRU5KRcWgIMWgQU5ET1IKK1NFTkpJIEFHT8WgVE9OIERSIExFS0FSCitTRU5KSSBJTE9OQQorU0VOSkkgSVJFTkEKK1NFTlRFIExKVUJJQ0EKK1NFTlRFIFBFVEFSCitTRU5USU4gxIxFRE9NSVIKK1NFTlRJVkFOQUMgxJBPUsSQRQorU0VOVElWQU5BQyBNQVJLTworU0VOVElWQU5BQyBNSUxBTgorU0VOVElWQU5BQyBNSUxPxaAKK1NFTlRJVkFOQUMgTU9NSVIKK1NFTlRJVkFOQUMgU0FWQQorU0VOVElWQU5BQyBTVkVUTEFOQQorU0VOVElWQU5BQyBUT0RPUgorU0VOVElWQU5BQyBWRVNOQQorU0VOVE1BUlRPTkkgRkVSRU5DCitTRVAgQU5UQUwKK1NFUCBERcW9RSBEUiBMRUtBUgorU0VQIEZFUkVOQworU0VQLVZBUkdBIEVNSUxJSkEKK1NFUkFGSU1PViBLSVJJTAorU0VSQVRMScSGIMSMRURPTUlSCitTRVJBVExJxIYgREFSS0EKK1NFUkFUTEnEhiBHT0xVQgorU0VSQVRMScSGIE1JUkHFoAorU0VSQVRMScSGIE1JUkpBTkEKK1NFUkFUTEnEhiBWRUxJTUlSIERSCitTRVJBVExJxIYgWk9SQU4KK1NFUkRBIMWgQU5ET1IKK1NFUkRBUiBEQU5JQ0EKK1NFUkRBUiBJTElKQQorU0VSREFSIE1BUkEKK1NFUkRBUiBNTEFERU4KK1NFUkRBUiBORURFTEpLTworU0VSREFSIFBFVEFSCitTRVJEQVIgUEVUQVIKK1NFUkRBUkVWScSGIMSGQVpJTQorU0VSREFSRVZJxIYgR0laRUxBCitTRVJFxaBJIEZFUkVOQworU0VSRcWgSSBJxaBUVkFOCitTRVJFxaBJIExBU0xPCitTRVJFxaBJIFJPWkFMSUpBCitTRVJFxaBJIFNURVZBTgorU0VSRcWgSSBUSUJPUgorU0VSRU7EjEUgTEFESVNMQVYKK1NFUkVOxIxFxaAgSk/FvUVGIE5PVklOQVIKK1NFUk5FQyBTVEVWQU4KK1NFUlRJxIYgRFJBR0FOCitTRVJUScSGIE1BUklKQQorU0VSVEnEhiBNQVRJSkEKK1NFUlRJxIYgTUlMQU4KK1NFUlRJxIYgVkxBREEKK1NFVEVOxIxJxIYgTUlMT1JBRAorU0VWRVIgxaBJTUUKK1NFVkVSSU5JIEpBTgorU0VWScSGIMSQT1LEkEUKK1NFVknEhiBSQURFTktPCitTRVZLScSGIEJSQU5LTworU0VWS0nEhiBNQUdEQUxFTkEKK1NJxIwgQU5EUklKQQorU0nEjCBEUkFHQU4KK1NJxIwgRkVSRU5DCitTScSMIElNUkUKK1NJxIwgSk/FvUVGCitTScSMIEpPU0lQCitTScSMIEpPU0lQCitTScSMIEpVTElKQU5BCitTScSMIEtBTE1BTgorU0nEjCBLQUxNQU4KK1NJxIwgTUFSR0lUQQorU0nEjCBNQVJJSkEKK1NJxIwgTUFSSUpBCitTScSMIE1JSEFMSgorU0nEjCBNSVJPU0xBVkEKK1NJxIwgUEVUQVIgRFIgTEVLQVIKK1NJxIwgUElST8WgS0EKK1NJxIwgU1RFVkFOCitTScSMIFNURVZBTgorU0nEjCBTVEVWQU4KK1NJxIwgVEVSRVpBCitTScSMIFZMQURJU0xBVgorU0nEjCBaTEFUS08KK1NJxIYgTUlST1NMQVYKK1NJxIYgU0xBxJBBTkEKK1NJxIYgU1RBTklTTEFWCitTScSGIFNUQU5LTworU0nEkEkgTUlSS08KK1NJQkVSIEnFoFRWQU4KK1NJQkVSIEnFoFRWQU4KK1NJQklOQUMgVlVLSUNBCitTSUJJTktJxIYgUEVUQVIKK1NJQklOS0nEhiBSQVRLTworU0lCSU5LScSGIFJBVEtPCitTSUJJTktJxIYgVkFTQQorU0lCSU5PViBOSUtPTEEKK1NJQklOT1ZJxIYgUkFET01JUgorU0lCSU5TS0kgVklEQQorU0lExb1JTU9TS0kgRElNSVRSSUpFCitTSURPUiDEhklSSUwgRFIKK1NJR0VUSS1CScSMS0VJIEFHT1RBCitTSUdFVEkgSkHFoEEKK1NJR0VUSSBKQU5PxaAKK1NJR0VUSSBTVEVWQU4KK1NJS0EgRlJBTkpBCitTSUtBIElSRU5BCitTSUtJTUnEhiBBTsSQRUxLQQorU0lLSU1JxIYgTk9WQUsKK1NJS0lNScSGIFNSxJBBTgorU0lLSU1JxIYgU1LEkEFOCitTSUtJUklDQSBNSVJKQU5BCitTSUtPUkEgS0FST0xKCitTSUtPUkEgTEFESVNMQVYKK1NJS09SQSBQRVRBUgorU0lMQcWgS0kgSUxJSkEKK1NJTEHFoEtJIFJBRE9WQU4KK1NJTEHFoEtJIFNMQVZLTworU0lMQcWgS0kgU05Fxb1BTkEKK1NJTEHFoEtJIFZFUkEKK1NJTEHFoEtJIFZMQURJU0xBVkEKK1NJTEHEkEVWIFJVxb1JQ0EKK1NJTEHEkEkgxaBBTkRPUgorU0lMQcSQSSBBTkRSQcWgCitTSUxBxJBJIEZSQU5KQQorU0lMQcSQSSBHSVpFTEEKK1NJTEHEkEkgScWgVFZBTgorU0lMQcSQSSBJTVJFCitTSUxBxJBJIEpFTElTQVZFVEEKK1NJTEHEkEkgS0FST0xKCitTSUxBxJBJIExBRElTTEFWCitTSUxBxJBJIExBU0xPIFZBSkFSCitTSUxBxJBJIExBU0xPCitTSUxBxJBJIExBU0xPCitTSUxBxJBJIExBU0xPCitTSUxBxJBJIExKVURFVklUCitTSUxBxJBJIExKVURFVklUCitTSUxBxJBJIE1BUklKQQorU0lMQcSQSSBNSUtMT8WgCitTSUxBxJBJIFJPWkFMSUpBCitTSUxBxJBJIFRFUkVaQQorU0lMQcSQSSBWSUtUT1JJSkEKK1NJTEFLIEFORFJBxaAKK1NJTEFLIEdJWkVMQQorU0lMQUsgScWgVFZBTgorU0lMQUsgWk9MVEFOCitTSUxCQcWgS0kgRE/FoEtPCitTSUxCQcWgS0kgTEpVQklDQQorU0lMQkHFoEtJIE1BUkpBTgorU0lMQkHFoEtJIFpPUkFOCitTSUxCRVJIT0xDIFNURVZBTgorU0lMRVIgxJBVTEEKK1NJTEVSIERVxaBJQ0EKK1NJTEVSIEdVU1RBVgorU0lMRVIgS0FSTAorU0lMSkFOT1ZTS0kgREFSS08KK1NJTEpBTk9WU0tJIEpPxb1FCitTSUxOSSBTTEFWTkEKK1NJTFZBxaBJIMWgQU5ET1IKK1NJTFZBxaBJIEpBTk/FoAorU0lMVkHFoEkgS0FST0xKCitTSUxWRVNUUk9WScSGIE1JTElDQQorU0lMVkVTVFJPVknEhiBUQU5BU0lKRQorU0lNxIxJTiBNSUhBSkxPCitTSU1BTknEhiBJTElKQQorU0lNQU5JxIYgSkVaRElNSVIKK1NJTUFOScSGIFBFVEtPCitTSU1BTknEhiBSQUpLQQorU0lNQU5JxIYgU0FWQQorU0lNRU5EScSGIEJPxb1BCitTSU1FTkRJxIYgR09SQU4KK1NJTUVOREnEhiBTVkVUT1pBUgorU0lNRU5EScSGIFZMQURJTUlSCitTSU1FTlRJxIYgSk9WQU4KK1NJTUVOVEnEhiBWT0pJU0xBVgorU0lNRU9OT1YgUEFWTEUKK1NJTUVPTk9WIFJBRElWT0oKK1NJTUVPTk9WIFpEUkFWxIxPCitTSU1FT05PVknEhiDEkE9SxJBFCitTSU1FT05PVknEhiBNSUxJVk9KCitTSU1FT05PVknEhiBSQURPU0xBVgorU0lNRU9OT1ZJxIYgU0xPQk9EQU5LQQorU0lNRVRJxIYgTU9NxIxJTE8KK1NJTUVUScSGIE9TVE9KQQorU0lNRVVOT1ZJxIYgQk9SSVNMQVYKK1NJTUVVTk9WScSGIERSQUdBTgorU0lNRVVOT1ZJxIYgRFJBR0FOCitTSU1FVU5PVknEhiBEUkFHT0xKVUIKK1NJTUVVTk9WScSGIERVxaBBTgorU0lNRVVOT1ZJxIYgSkFOS08KK1NJTUVVTk9WScSGIExFUE9TQVZBCitTSU1FVU5PVknEhiBNSUxBTgorU0lNRVVOT1ZJxIYgTUlMT01JUgorU0lNRVVOT1ZJxIYgTkVWRU5LQQorU0lNRVVOT1ZJxIYgUkFET1NBVgorU0lNRVVOT1ZJxIYgU0FWQQorU0lNRVVOT1ZJxIYgU0lNTworU0lNRVVOT1ZJxIYgU0lNTworU0lNRVVOT1ZJxIYgU1JFVEVOCitTSU1FVU5PVknEhiBWTEFEQQorU0lNScSMScSGIERSQUdBTkEKK1NJTUnFoEnEhiBSQURPSklDQQorU0lNScSGIMSMRURBCitTSU1JxIYgxb1JVk9KSU4KK1NJTUnEhiDFvUlWT0pJTgorU0lNScSGIMSQVVLEkEVWS0EKK1NJTUnEhiDEkFVSQQorU0lNScSGIMSQVVJPCitTSU1JxIYgQUNBCitTSU1JxIYgQURBTQorU0lNScSGIEFMRUtTQU5EQVIKK1NJTUnEhiBBTEVLU0FOREFSCitTSU1JxIYgQU7EkEVMS0EKK1NJTUnEhiBCT8WgS08KK1NJTUnEhiBCT0pBTkEKK1NJTUnEhiBCT1JBCitTSU1JxIYgQk9SSVNMQVYKK1NJTUnEhiBCT1JJU0xBVgorU0lNScSGIEJPUktBCitTSU1JxIYgQk9TSUxKS0EKK1NJTUnEhiBCUkFOSVNMQVYKK1NJTUnEhiBCUkFOSVNMQVYKK1NJTUnEhiBCUkFOSVNMQVYKK1NJTUnEhiBCUkFOS08KK1NJTUnEhiBCVURJTUlSCitTSU1JxIYtQ0hBTEFCSSBEUkFHQU5BCitTSU1JxIYgQ1ZFVElOCitTSU1JxIYgREVKQU4KK1NJTUnEhiBET0JSSVZPSkUKK1NJTUnEhiBET0JSSVZPSkUKK1NJTUnEhiBET0rEjElOCitTSU1JxIYgRFJBR0FOCitTSU1JxIYgRFJBR0lDQQorU0lNScSGIERSQUdPTEpVQgorU0lNScSGIERSQUdPTEpVQgorU0lNScSGIERSQUdVVElOCitTSU1JxIYgRFXFoEFOS0EKK1NJTUnEhiBEVcWgQU4KK1NJTUnEhiBEVcWgQU4KK1NJTUnEhiBEVcWgSUNBCitTSU1JxIYgR09KS08KK1NJTUnEhiBHT1JEQU5BCitTSU1JxIYgR1JBRElNSVIKK1NJTUnEhiBIRVJNSU5BIERSCitTSU1JxIYgSUxJSkEKK1NJTUnEhiBJTE9OS0EKK1NJTUnEhiBJVkFOCitTSU1JxIYgSkVMRU5BCitTSU1JxIYgSk9WQU4KK1NJTUnEhiBKT1ZBTgorU0lNScSGIEpPVklDQQorU0lNScSGIEpPVk8KK1NJTUnEhiBKT1ZPCitTSU1JxIYgSlVESVQKK1NJTUnEhiBLUklTVElOQQorU0lNScSGIExKSUxKQU5BCitTSU1JxIYgTUFSSUpBCitTSU1JxIYgTUFSSUpBCitTSU1JxIYgTUFSSUpBCitTSU1JxIYgTUlDQQorU0lNScSGIE1JSEFJTE8KK1NJTUnEhiBNSUxBTgorU0lNScSGIE1JTEFOCitTSU1JxIYgTUlMQU4KK1NJTUnEhiBNSUxFTkEKK1NJTUnEhiBNSUxJQ0EKK1NJTUnEhiBNSUxJSkEKK1NJTUnEhiBNSUxJVk9KCitTSU1JxIYgTUlMT8WgCitTSU1JxIYgTUlMT8WgCitTSU1JxIYgTUlMT8WgCitTSU1JxIYgTUlMT1JBRAorU0lNScSGIE1JTE9SQUQKK1NJTUnEhiBNSUxPVkFOCitTSU1JxIYgTUlMVVRJTgorU0lNScSGIE1JTFVUSU4KK1NJTUnEhiBNSUxVVElOCitTSU1JxIYgTUlSS08KK1NJTUnEhiBNT03EjElMTworU0lNScSGIE1PTcSMSUxPCitTSU1JxIYgTU9NxIxJTE8KK1NJTUnEhiBNT03EjElMTworU0lNScSGIE5BREEKK1NJTUnEhiBOQURBCitTSU1JxIYgTkFSQU7EjEEKK1NJTUnEhiBORcSQTworU0lNScSGIE5FREVMSktPCitTSU1JxIYgTkVNQU5KQQorU0lNScSGIE5FVkVOS0EKK1NJTUnEhiBOSUtPTEEKK1NJTUnEhiBOSUtPTEEKK1NJTUnEhiBOT1ZBSworU0lNScSGIE5PVkFLCitTSU1JxIYgTk9WQUsKK1NJTUnEhiBPTEdBCitTSU1JxIYgT1NUT0pBCitTSU1JxIYgUEFOVEVMSUpBCitTSU1JxIYgUEFWTEUKK1NJTUnEhiBQRVRBUgorU0lNScSGIFJBREEKK1NJTUnEhiBSQURFTktPCitTSU1JxIYgUkFERU5LTworU0lNScSGIFJBRElTQVYKK1NJTUnEhiBSQURJVk9KRQorU0lNScSGIFJBRElWT0pFCitTSU1JxIYgUkFESVZPSgorU0lNScSGIFJBRE9KRQorU0lNScSGIFJBRE9WQU4KK1NJTUnEhiBSQUpLTworU0lNScSGIFJVxb1JQ0EKK1NJTUnEhiBSVcW9SUNBCitTSU1JxIYgU0FWQQorU0lNScSGIFNJTUEKK1NJTUnEhiBTSU5JxaBBCitTSU1JxIYgU0xBREEKK1NJTUnEhiBTTEFWS08KK1NJTUnEhiBTTE9CT0RBTgorU0lNScSGIFNSxJBBTgorU0lNScSGIFNSRVRFTgorU0lNScSGIFNURVZBTgorU0lNScSGIFNURVZBTgorU0lNScSGIFNURVZBTgorU0lNScSGIFNUT0pBTktBCitTSU1JxIYgU1ZFVElTTEFWCitTSU1JxIYgU1ZFVElTTEFWCitTSU1JxIYgVElIT01JUgorU0lNScSGIFRJSE9NSVIKK1NJTUnEhiBUT0RFCitTSU1JxIYgVE9NSVNMQVYKK1NJTUnEhiBUT01JU0xBVgorU0lNScSGIFZBSktBCitTSU1JxIYgVkFTQQorU0lNScSGIFZFUk9OS0EKK1NJTUnEhiBWRVNFTEtPCitTSU1JxIYgVklOS0EKK1NJTUnEhiBWTEFERQorU0lNScSGIFZMQURJTUlSCitTSU1JxIYgVkxBRE8KK1NJTUnEhiBWT0pJU0xBVgorU0lNScSGIFpMQVRJTUlSCitTSU1JxIYgWk9SQU4KK1NJTUnEhiBaT1JBTgorU0lNScSGIFpPUkFOCitTSU1JxIYgWk9SQQorU0lNScSGIFpPUkEKK1NJTUnEhiBaT1JJQ0EKK1NJTUnEhiBaT1JLQQorU0lNScSGRVZJxIYgUkFET01BTgorU0lNSUpPTk9WScSGIFNMT0JPREFOCitTSU1JS0nEhiBKT1ZBTgorU0lNSUxFTkpJIERVxaBJQ0EKK1NJTUlOIMW9SVZLQQorU0lNSU4gxb1JVk9KSU4KK1NJTUlOIEFOxJBFTEtBCitTSU1JTiBBUkFOS0EKK1NJTUlOIENWRVRLTworU0lNSU4gREFOSUNBCitTSU1JTiBEQU5JTE8KK1NJTUlOIERJTkEKK1NJTUlOIERSQUdBTgorU0lNSU4gSElMREEKK1NJTUlOIElWQU5LQQorU0lNSU4gSVZBTgorU0lNSU4gSkHFoEEKK1NJTUlOIEpFTEVOQQorU0lNSU4gS09TVEEKK1NJTUlOIExBWkFSCitTSU1JTiBMRVBPU0FWQQorU0lNSU4gTEpVQklDQQorU0lNSU4gTUFHREEKK1NJTUlOIE1JTEVOQQorU0lNSU4gTUlMSUNBCitTSU1JTiBNSUxJQ0EKK1NJTUlOIE1JTElWT0oKK1NJTUlOIE1JTElWT0oKK1NJTUlOIE1JTFVUSU4KK1NJTUlOIE1JUk9TTEFWCitTSU1JTiBOQURBCitTSU1JTiBOQURBCitTSU1JTiBORUJPSsWgQQorU0lNSU4gUEFWTEUKK1NJTUlOIFBFVEFSCitTSU1JTiBSQURJQ0EKK1NJTUlOIFJBRElWT0pFCitTSU1JTiBSQURPSklDQQorU0lNSU4gUkFET1ZBTgorU0lNSU4gU0lOScWgQQorU0lNSU4gU09GSUpBCitTSU1JTiBTVEVWQU4KK1NJTU9OT1ZJxIYgRFJBR09TTEFWQQorU0lNT05PVknEhiBIUklTVElOQQorU0lNT05PVknEhiBJUkVOQSBEUgorU0lNT05PVknEhiBNSUxFCitTSU1PTk9WScSGIE1JTE9SQUQKK1NJTU9OT1ZJxIYgTUlMT1JBRAorU0lNT05PVknEhiBOQURBCitTSU1PTk9WScSGIE5JS09MQQorU0lNT05PVknEhiBQRVRBUgorU0lNT05PVknEhiBTTE9CT0RBTgorU0lNT05PVknEhiBUT01JU0xBVgorU0lNT05PVknEhiBWT0pJU0xBVgorU0lNT05PVlNLSSBGSU5LQQorU0lNT05PVlNLSSBNSVRBCitTSU1PVElOIFJBRE9WQU4KK1NJTU9WScSGIMW9RUxKS08KK1NJTU9WScSGIMW9SVZPVEEKK1NJTU9WScSGIEFOS0EKK1NJTU9WScSGIEJSQU5JU0xBViBEUgorU0lNT1ZJxIYgRFJBR09MSlVCCitTSU1PVknEhiBEUkFHT0xKVUIKK1NJTU9WScSGIERSQUdPCitTSU1PVknEhiBKT1ZBCitTSU1PVknEhiBMSlVCScWgQQorU0lNT1ZJxIYgTUlMQU4KK1NJTU9WScSGIE1JTEFOCitTSU1PVknEhiBNSUxBTgorU0lNT1ZJxIYgTUlMQU4KK1NJTU9WScSGIE1JTE/FoAorU0lNT1ZJxIYgTUlMT8WgCitTSU1PVknEhiBNSVJLTworU0lNT1ZJxIYgTUlUQVIKK1NJTU9WScSGIFBFVEFSCitTSU1PVknEhiBSQURJVk9KRQorU0lNT1ZJxIYgUkFET01JUgorU0lNT1ZJxIYgU0xPQk9EQU4gUFJPRkVTT1IKK1NJTU9WScSGIFNMT0JPREFOCitTSU1PVknEhiBUT0RPUgorU0lNT1ZJxIYgVklEQUsKK1NJTU9WScSGIFZMQURJTUlSCitTSU1PVkxKRVZJxIYgSk9DQQorU0lNVU5JxIYgxb1FTElNSVIKK1NJTVVOScSGIEFORFJJSkEKK1NJTVVOScSGIE1BR0RBCitTSU1VTknEhiBTVEFOSU1JUgorU0lNVU5PVknEhiBNQVJJSkEKK1NJTVVOT1ZJxIYgTUlMVU4KK1NJTVVSREnEhiBNSUxBTgorU0lNVVJEScSGIFBFVEFSCitTSU1VUkRJxIYgVklUT01JUgorU0lOxIxJxIYgWlZPTklNSVIKK1NJTsSQRUxJxIYgTEpVQklTQVYKK1NJTsSQRUxJxIYgTUlMT8WgCitTSU7EkEnEhiBNSUxFTktPCitTSU5BRElOT1ZJxIYgVk9KTworU0lOQU5JIEFCRFVMQQorU0lOQU5JIE1JTElDQQorU0lOQU5PVknEhiBTQUZFVAorU0lOR0VSIERSQUdJQ0EKK1NJTkdFUiBSVcW9SUNBCitTSVJBxIxLSSBLQVJPTElOQQorU0lSQUNLSSBKT1ZBTgorU0lSQUNLSSBWTEFESU1JUgorU0lSQUsgTEFTTE8gRFIKK1NJUknFoEtJIMW9QVJLTworU0lSScWgS0kgxJBVUsSQSU5BCitTSVJJxaBLSSBCUkFOSVNMQVYKK1NJUknFoEtJIElWQU4KK1NJUknFoEtJIEpBU01JTktBCitTSVJJxaBLSSBKRUxFTkEKK1NJUknFoEtJIEpPVkFOCitTSVJJxaBLSSBNSVJPU0xBVkEKK1NJUknFoEtJIFNMQVZLTyBTVURJSkEKK1NJUknFoEtJIFNMQVZLTworU0lST8SMScSGIElWQU4KK1NJUk/FvUVOS08gU05Fxb1BTkEKK1NJUk/FvUVOS08gVkVSQQorU0lST1RJTiBTTEFWSUNBCitTSVJPVklDQSBKQU5PxaAKK1NJUlXEjEVLIFZJTElNIERJUEwgSU5HCitTSVRBxaAgSUxPTkEKK1NJVEHFoCBMQUpPxaAKK1NJVEFSRVZJxIYgQU1JUgorU0lUQVJJxIYgUEFKQQorU0lWxIwgQU1BTElKQQorU0lWxIwgQU7EkEVMS0EKK1NJVsSMIERBTklMTworU0lWxIwgSEVMRU5BCitTSVbEjCBJUklOQQorU0lWxIwgSkFOS08KK1NJVsSMIExKVUJPTUlSCitTSVbEjCBMSlVCT01JUgorU0lWxIwgTkVTVE9SCitTSVbEjCBWTEFESU1JUgorU0lWxIxFViDEkE9LQQorU0lWxIxFViBCT8W9SURBUgorU0lWxIxFViBKT1ZBTiBEUgorU0lWxIxFViBKVUxLQQorU0lWxIxFViBMSlVCSUNBCitTSVbEjEVWIE1JTEFOCitTSVbEjEVWIFpPUkFOCitTSVZBxIxLSSDEkFVSQQorU0lWQcSMS0kgSk9WQU4KK1NJVkHEjEtJIE1JTEFOCitTSVZBxIxLSSBNSVJKQU5BCitTSVZBxIxLSSBNSVJPU0xBVgorU0lWQcSMS0kgU0FWQQorU0lWQcSMS0kgU0xPQk9EQU5LQQorU0lWQcSMS0kgVkVSQQorU0lWQcSMS0kgVkVSQQorU0lWQUMgSk9WQU5LQQorU0lWQUsgSUJPTEpBCitTSVZBSyBKVURJVEEKK1NJVkFLIExKVUJJTktBCitTSVZBSyBST1pJTkEKK1NJVknEhiBHT0pLTworU0lWScSGIFJBREUKK1NJWk9WIE1BUkdJVEEKK1NKRU5JxIxJxIYgTkVERUxKS08KK1NKRVBBTk9WScSGIFNSxJBBTgorU0tBS0FWQUMgTklLT0xBCitTS0FLQVZBQyBOT1ZBCitTS0FLQVZBQyBOT1ZBCitTS0FLQVZBQyBTT0ZJSkEKK1NLQUtBVkFDIFZFTElNSVIKK1NLQUtBVkFDIFZVSklDQQorU0tBS0FWQUMgWkRSQVZLTworU0tBS0nEhiBCT8WgS08KK1NLQUtJxIYgTUlMQU4KK1NLQUtJxIYgTklLT0xBCitTS0FLVU4gxb1JVktPCitTS0FMQSBBTlRBTAorU0tBTEEgTUlMRU5BCitTS0FMQSBWTEFESU1JUgorU0tBTElDS0kgWkFHT1JLQQorU0tBTkRBUlNLSSBBTktBCitTS0FOREFSU0tJIE1JTEFOCitTS0FOREFSU0tJIE1JTE/FoAorU0tBTkRBUlNLSSBNSVJLTworU0tBTkRBUlNLSSBNTEFERU4KK1NLQU5EQVJTS0kgTU9NxIxJTE8KK1NLQU5EQVJTS0kgUkFET1ZBTgorU0tBUkFNVUNBIE1JSk8KK1NLQVJBTVVDQSBaRFJBVktPCitTS0VMRUTFvUnEhiBBTEVLU0FOREFSCitTS0VMRUTFvUnEhiBBTEVLU0FOREFSCitTS0VMRUTFvUnEhiBCUkFOSVNMQVYKK1NLRUxFRMW9ScSGIEJSQU5JU0xBVgorU0tFTEVExb1JxIYgRFJBR0lDQQorU0tFTEVExb1JxIYgS0FUSUNBCitTS0VMRUTFvUnEhiBMSlVCSU5LTworU0tFTEVExb1JxIYgTUFSSUpBCitTS0VMRUTFvUnEhiBNSUxBTgorU0tFTEVExb1JxIYgTUlST1NMQVZBCitTS0VMRUTFvUnEhiBSQURPU0xBVgorU0tFTEVExb1JxIYgUkFET1NMQVYKK1NLRUxFRMW9SUpBIEtBVEEKK1NLRUxFRMW9SUpBIFJBRE9KSUNBCitTS0VMRUTFvUlKQSBTUEFTSU1JUgorU0tFTkTFvUnEhiDFvUFSS08KK1NLRU5Exb1JxIYgQk9HREFOCitTS0VORMW9ScSGIEJSQU5LQQorU0tFTkTFvUnEhiBEQU5FCitTS0VORMW9ScSGIERBTklMTworU0tFTkTFvUnEhiBEUkFHT01JUgorU0tFTkTFvUnEhiBEVcWgQU4KK1NLRU5Exb1JxIYgSUxJSkEKK1NLRU5Exb1JxIYgSkFTTUlOS0EKK1NLRU5Exb1JxIYgSk9WQU5LQQorU0tFTkTFvUnEhiBNQVJHQVJFVEEKK1NLRU5Exb1JxIYgTUlMQU4KK1NLRU5Exb1JxIYgTUlMRU5LTworU0tFTkTFvUnEhiBNSUxJQ0EKK1NLRU5Exb1JxIYgUkFERQorU0tFTkTFvUnEhiBTQVJBCitTS0VORMW9ScSGIFNPRklKQQorU0tFTkTFvUnEhiBTVEVWQU4KK1NLRU5ERVJPVknEhiBBTkRSSUpBCitTS0VOREVST1ZJxIYgQkVSSVNMQVYKK1NLRU5ERVJPVknEhiBHQUJPUgorU0tFTkRFUk9WScSGIE1BUklKQQorU0tFTkRFUk9WScSGIFNJTknFoEEKK1NLRVJMRVRPVknEhiBNSUxPxaAKK1NLRVJMRVRPVknEhiBaT1JBTgorU0tFUlQgQk/FvUlEQVIKK1NLScSMQUsgTEFTTE8KK1NLSVZKQU5JIMWgQU5ET1IKK1NLSVZKQU5JIE1JSEFMSgorU0tMQUJJTkFDIFZMQURJTUlSCitTS0xBQklOU0tJIFNBTU8KK1NLTEVOQSBKT0hBTiBESVBMIElORworU0tMRU5BIE9MSVZFUkEKK1NLTEVOQSBWSUtUT1JJSkEKK1NLTEVOQVIgUEVUQVIKK1NLTEpBUiDEkFVSTworU0tPxIxBSknEhiBWVUtBxaBJTgorU0tPxIxPVlNLSSBNQVJJSkEKK1NLT0JFIElWQU4KK1NLT0sgTUlSSkFOQQorU0tPS0FOREnEhiBQRVRBUgorU0tPS0nEhiBORU5BRAorU0tPS0nEhiBWRVNOQQorU0tPS05JxIYgRFXFoEFOCitTS09LTknEhiBTVEVWQU4KK1NLT0tPIE1JTE/FoAorU0tPTUlOQSBWRVJJQ0EKK1NLT1BBTCBCRUxBCitTS09QQUwgSk9WQU4KK1NLT1JJxIYgSkFTTUlOS0EKK1NLT1JJxIYgTEpVQk8KK1NLT1JJxIYgVE9OS0EKK1NLT1JJxIYgVlVKTworU0tPUlVQQU4gxJBVUkEKK1NLT1JVUEFOIERBTklDQQorU0tPUlVQQU4gS0FUQQorU0tPUlVQQU4gUkFERU5LTworU0tPUlVQQU4gU0xBVktPCitTS09UT1ZJxIYgRkVSRU5DCitTS1JBTU/EhklOIFNSRcSGS08KK1NLUk9CScSGIERSQUdBTgorU0tST0JJxIYgUEVUQVIKK1NLUk9CT05KQSBBTEVLU0FOREFSCitTS1JPQk9OSkEgS0FUSUNBCitTS1JPQk9OSkEgTklLT0xBCitTS1JPQk9OSkEgVkxBRElNSVIKK1NLVUJBTiBIRUxFTkEKK1NLVUJBTiBKQU5LTworU0tVQkFOIEpFRlJFTQorU0tVQkFOIEpVTElKQU4KK1NLVUJBTiBMRU9OQQorU0tVQkFOIExKVUJPTUlSCitTS1VCQU4gTUlIQUpMTworU0tVQkFOIE5BVEFMSUpBCitTS1VCQU4gTklLT0xBCitTS1VCQU4gWk9SS0EKK1NLVUxBUiBSQURPSktBCitTS1VMScSGIE1JUkpBTkEKK1NLVUxJxIYgU0lNS0EKK1NLVUxJxIYgVkxBRElNSVIKK1NLVU1QSUpBIEpPxb1FRgorU0tVUlVQQVRJUyBNSVJKQU5BCitTTEHEhkFOSU4gSVZBTgorU0xBREFLT1ZJxIYgTklLT0xBCitTTEFERUsgQU5EUklKQQorU0xBREnEhiBDVkVUQQorU0xBREnEhiBTTE9CT0RBTgorU0xBREnEhiBTVEVWQU4KK1NMQURJxIYgWk9SSUNBCitTTEFET0pBIE1JTE9WQU4KK1NMQURPSkUgSUxJSkEKK1NMQURPSkUgUkFET01JUgorU0xBRE9KRVYgTUlMQU4KK1NMQURPSkVWIFBSRURSQUcKK1NMQURPSkVWScSGIMW9SVZLTworU0xBRE9KRVZJxIYgTUlSS08KK1NMQURPSkVWScSGIFJBRElWT0oKK1NMQU1BIMSQT1LEkEUKK1NMQU1BIE1BUklKQQorU0xBTUFSIEZFUkVOQworU0xBTkMgSkVMRU5BCitTTEFOS0FNRU5BQyDFvUlWS08KK1NMQU5LQU1FTkFDIMW9SVZLTworU0xBTktBTUVOQUMgxJBPUsSQRQorU0xBTktBTUVOQUMgQUxFS1NBTkRBUgorU0xBTktBTUVOQUMgQU5LSUNBCitTTEFOS0FNRU5BQyBCUkFOSVNMQVYKK1NMQU5LQU1FTkFDIERVxaBBTktBCitTTEFOS0FNRU5BQyBJREEKK1NMQU5LQU1FTkFDIEpFTEVOQQorU0xBTktBTUVOQUMgSk9WQU4KK1NMQU5LQU1FTkFDIE1BUklKQQorU0xBTktBTUVOQUMgTUFSSUpBCitTTEFOS0FNRU5BQyBNSUxBTgorU0xBTktBTUVOQUMgTUlMQU4KK1NMQU5LQU1FTkFDIE1JTEFOCitTTEFOS0FNRU5BQyBNSUxPxaAKK1NMQU5LQU1FTkFDIE1JTE/FoAorU0xBTktBTUVOQUMgTUlMT0pFCitTTEFOS0FNRU5BQyBNSVJKQU5BCitTTEFOS0FNRU5BQyBNT03EjElMTworU0xBTktBTUVOQUMgTkFEQQorU0xBTktBTUVOQUMgUEVUQVIgRFIKK1NMQU5LQU1FTkFDIFBFVEFSCitTTEFOS0FNRU5BQyBQRVRBUgorU0xBTktBTUVOQUMgUFJPS0EKK1NMQU5LQU1FTkFDIFJBRE9TTEFWCitTTEFOS0FNRU5BQyBTVEVWQU4KK1NMQU5LQU1FTkFDIFZFU0VMSU4KK1NMQU5LQU1FTkFDIFpPUkFOCitTTEFUVklOU0tJIEdFT1JHSUpFCitTTEFWScSGIMSQT1LEkEUKK1NMQVZJxIYgU09GSUpBCitTTEFWSUNBIFNUSVBFCitTTEFWS0nEhiBEVcWgQU5LQQorU0xBVktPVknEhiBBTE9KWgorU0xBVktPVknEhiBNSUxPxaAKK1NMQVZLT1ZJxIYgTUlSSkFOQQorU0xBVktPVknEhiBTSUJJTgorU0xBVktPVknEhiBTTkXFvUFOQQorU0xBVktPVknEhiBUUklGVU4KK1NMQVZLT1ZJxIYgWkRFTktPCitTTEFWTknEhiBEQU5JTE8KK1NMQVZOScSGIEpBU01JTkEKK1NMQVZOScSGIExKVUJJQ0EKK1NMQVZOScSGIE5PVktBCitTTEFWTknEhiBSQURJVk9KCitTTEFWTk9WScSGIElWQU4KK1NMQVZVSiBCT8W9TworU0xBVlVKIERSQUdBTgorU0xBVlVKRVZJxIYgRFXFoEFOCitTTEFWVUpFVknEhiBMSlVCT01JUgorU0xBVlVKRVZJxIYgTUlMRU5BCitTTEFWVUpFVknEhiBSQURJU0FWCitTTEFWVUpFVknEhiBTVEVWTworU0xBVlVMSiBNSUxFCitTTEVQxIxFViDFvUlWQU4KK1NMRVDEjEVWIERBTklDQQorU0xFUMSMRVYgSk9WQU4KK1NMRVDEjEVWIE5JS09MQQorU0xFUMSMRVYgWkRFTktBCitTTEVQxIxFViBaT1JJQ0EKK1NMRVDEjEVWScSGIEtSU1RBTgorU0xFUMSMRVZJxIYgTEpVQknFoEEKK1NMRVDEjEVWScSGIE1JTEFOCitTTEVQxIxFVknEhiBPTEdBCitTTEVQxIxFVknEhiBSVcW9QQorU0xFUMSMRVZJxIYgWkRSQVZLQQorU0xFUEtPIElSRU5BCitTTEVQS08gSk9WQU4KK1NMRVBLTyBNSUhBSkxPCitTTEVQS08gTUlMSUNBCitTTEVTQVIgREFOSUxPCitTTEVTQVIgSkVMRU5BCitTTEVTQVIgTU9NxIxJTE8KK1NMRVNBUiBWQVNBCitTTEnFoEtPIEFORFJJSkEKK1NMScWgS08gTUFSS08KK1NMScWgS09WScSGIEFOxJBFTEtBCitTTElKRVDEjEVWScSGIEFOQQorU0xJSkVQxIxFVknEhiBCSVNFUktBCitTTElKRVDEjEVWScSGIERSQUdBTgorU0xJSkVQxIxFVknEhiBEVcWgQU4KK1NMSUpFUMSMRVZJxIYgRFXFoEFOCitTTElKRVDEjEVWScSGIEdFT1JHSUpFCitTTElKRVDEjEVWScSGIEpBTktPCitTTElKRVDEjEVWScSGIEpBTktPCitTTElKRVDEjEVWScSGIEpPVkFOCitTTElKRVDEjEVWScSGIEtPVklMSktBCitTTElKRVDEjEVWScSGIExKVUJBTgorU0xJSkVQxIxFVknEhiBNSUxPUkFECitTTElKRVDEjEVWScSGIE1JTE9WQU4KK1NMSUpFUMSMRVZJxIYgTUlST1NMQVZBCitTTElKRVDEjEVWScSGIE5PVklDQQorU0xJSkVQxIxFVknEhiBSVcW9SUNBCitTTElKRVDEjEVWScSGIFNBVk8KK1NMSUpFUMSMRVZJxIYgVkVSQQorU0xJSkVQxIxFVknEhiBWSkVLT1NMQVZBCitTTElKRVDEjEVWScSGIFpWT05LTworU0xJSkVQQUMgTUlMT8WgCitTTElKRVBBQyBTTE9CT0RBTgorU0xJTUFLIEFEQU0KK1NMSVZBIEVMSVpBQkVUQQorU0xJVktBIMSQVVJBCitTTElWS0EgQU5BCitTTElWS0EgQk/FvUFOQQorU0xJVktBIEJPU0lMSktBCitTTElWS0EgSkFST1NMQVYKK1NMSVZLQSBKT1ZBTgorU0xJVktBIE1JxaBBCitTTElWS0EgTUnFoEEKK1NMSVZLQSBTVEVWQU4KK1NMSVZLQSBaREVOS0EKK1NMSVZLQSBaTEFUQQorU0xKVUtBIEJPSFVTTEFWCitTTEpVS0EgSlVSQUoKK1NMT0JPREEgQU5UQUwKK1NMT0JPREEgScWgVFZBTgorU0xPQk9EQSBKQU5PxaAKK1NMT0JPREEgSk/FvUVGCitTTE9CT0RBIEpVTEtBCitTTE9CT0RBIE1JSEFKTE8KK1NMT0JPREEgTUlIQUxKCitTTE9CT0RBIFBFVEFSCitTTE9CT0RBIFNMQVZLQQorU0xPQk9EQSBTVEVWQU4KK1NMT0tBUiBJVkFOCitTTE9LQVIgTUFUSUpBCitTTE9WScSGIERSQUdPTEpVQiBEUgorU0xVTkpTS0kgRlJBTkpBCitTTUFHSU4gSVZBTgorU01BSknEhiBNQUtTSU0KK1NNQUpJxIYgTUlMT8WgCitTTUFKScSGIFNMT0JPREFOCitTTUFKScSGIFNMT0JPREFOCitTTUVERVJFVkFDIERVxaBBTgorU01FREVSRVZBQyBKT1ZBTgorU01FREVSRVZBQyBNSUxJQ0EKK1NNRURFUkVWQUMgUEVUQVIKK1NNRURFUkVWQUMgU1RFVklDQQorU01JxIZFVknEhiBVUk/FoAorU01JRcWgS08gSkVMSVNBVkVUQQorU01JTEnEhiBNQVJJSkEKK1NNSUxKQU5JxIYgxJBPUsSQRQorU01JTEpBTknEhiDEkE9SxJBFCitTTUlMSkFOScSGIMSQT1LEkEUKK1NNSUxKQU5JxIYgQk9KQU5BCitTTUlMSkFOScSGIEJPUktBCitTTUlMSkFOScSGIEJSQU5LTworU01JTEpBTknEhiBET0JSSVZPSgorU01JTEpBTknEhiBEUkFHSUNBCitTTUlMSkFOScSGIElMSUpBCitTTUlMSkFOScSGIEpPVkFOQQorU01JTEpBTknEhiBKT1ZBTgorU01JTEpBTknEhiBKT1ZPCitTTUlMSkFOScSGIExKSUxKQU5BCitTTUlMSkFOScSGIExKSUxKQU5BCitTTUlMSkFOScSGIE1BUklKQQorU01JTEpBTknEhiBNSUxBTgorU01JTEpBTknEhiBNSUxBTgorU01JTEpBTknEhiBNSUxFTktPCitTTUlMSkFOScSGIE1JTEtBCitTTUlMSkFOScSGIE1JTE9SQUQKK1NNSUxKQU5JxIYgTUlMVVRJTgorU01JTEpBTknEhiBNSU9EUkFHCitTTUlMSkFOScSGIE1MQURFTgorU01JTEpBTknEhiBORVZFTktBCitTTUlMSkFOScSGIE5FVkVOS0EKK1NNSUxKQU5JxIYgT0xJVkVSQQorU01JTEpBTknEhiBQRVRBUgorU01JTEpBTknEhiBQUkVEUkFHCitTTUlMSkFOScSGIFJBREEKK1NNSUxKQU5JxIYgUkFERQorU01JTEpBTknEhiBTQVZBCitTTUlMSkFOScSGIFNPRklKQQorU01JTEpBTknEhiBTT0ZJSkEKK1NNSUxKQU5JxIYgU1RBTkEKK1NNSUxKQU5JxIYgU1RFVk8KK1NNSUxKQU5JxIYgVFJJVk8KK1NNSUxKQU5JxIYgVkVTRUxLTworU01JTEpBTknEhiBWSURPU0FWCitTTUlMSkFOScSGIFZJTktPCitTTUlMSkFOScSGIFZMQURJTUlSCitTTUlMSkFOScSGIFZMQURJTUlSCitTTUlMSkFOScSGIFpMQVRLTworU01JTEpBTknEhiBaT1JLQQorU01JTEpBTk9WIE1JTEFOCitTTUlMSkFOT1YgUkFET1ZBTgorU01JTEpBTlNLSSBNSUxBTgorU01JTEpJxIYgxb1JVktPCitTTUlMSktPVknEhiBSQURPTUlSCitTTUlMSktPVknEhiBTVEFOSU1JUgorU01JUk5PViBKVURJVEEKK1NNSVJOT1YgSlVESVQKK1NNSVJOT1YgUkFTVElTTEFWCitTTUlSTk9WIFZMQURJTUlSCitTTU9LIE5JS09MQQorU01PTMSMScSGIFJVxb1BCitTTU9MRU5JQ0tJIE1FTElUQQorU01PTEVOU0tJIEtBUkxPCitTTU9MRU5TS0kgUk9aQUxJSkEKK1NNT0xKQU5JS09WIE1JSEFKTE8gRElQTCBJTkcKK1NNT0xPVknEhiBEUkFHT0xKVUIKK1NNT0xPVknEhiBNSUhBSkxPCitTTU9MT1ZJxIYgUkFETUlMQQorU01PTE9WScSGIFJBVEtPCitTTU9MT1ZJxIYgU0FWQQorU01SRUtBIERSQUdJQ0EKK1NNVcSQQSBHUkFESU1JUgorU01VxJBBIEpPVkFOCitTTVXEkEEgTUlMRU5LTworU01VxJBBIE5JS09MQQorU01VxJBBIFNBVkEKK1NNVUsgxb1JVkFOQQorU01VSyBCT1JJVk9KCitTTVVURUsgSk9TSVAKK1NNVVROSSBJVkFOCitTTkpJREEgQU5BCitTTkpJREEgU0HFoEEKK1NPQsSMQUsgRlJBTkpBCitTT0JPxIxBTiBNScWgQQorU09CT8SGQU4gSVZBTgorU09DRUsgSU1SRQorU09DRUsgSk9TSVAKK1NPQ0VLIE1JUkpBTkEKK1NPRklMSiBBTEVLU0FORFJBCitTT0ZJTEogRFJBR0lDQQorU09GSUxKIEpPVkFOS0EKK1NPRklMSiBSQU5LTworU09GSUxKIFNMQVZJQ0EKK1NPRklOS0nEhiBCUkFOS0EKK1NPRlJBRMW9SUpBIE1VSEFNRUQKK1NPRlJBTklOIEJPUklWT0oKK1NPRlJBTklOIEtVWk1BTgorU09GUkFOSU4gTUlMSVZPSgorU09GUkVOScSGIFZFUklDQQorU09GUk9OSUpFVknEhiBMSlVCSUNBCitTT0ZUScSGIE1BUklKQQorU09HScSGIFNBVkEKK1NPR0nEhiBWTEFESVNMQVYKK1NPSkVWScSGIE1MQURFTgorU09KScSGIFJBRE9KS0EKK1NPS0VMRSBCUkFOSVNMQVYKK1NPS0nEhiDFvUlWS08KK1NPS0nEhiDEkFVSxJBJQ0EKK1NPS0nEhiBJTElKQQorU09LScSGIExJRElKQQorU09LScSGIFpPUktBCitTT0tOScSGIFRPTUlTTEFWCitTT0tPTEEgQU5UVU4KK1NPS09MQSBGRVJFTkMKK1NPS09MQSBJxaBUVkFOCitTT0tPTEEgScWgVFZBTgorU09LT0xBIEtBVEFSSU5BCitTT0tPTEEgTUFSVEEKK1NPS09MQUkgSk/FvUVGCitTT0tPTEFJIExBSk/FoAorU09LT0xJxIYgxb1FTEpLTworU09LT0xPViBBTEVLU0FOREFSCitTT0tPTE9WIExKVUJPTUlSCitTT0tPTE9WIE1JTEFOCitTT0tPTE9WIE5BREtBCitTT0tPTE9WIFNMQVZLQQorU09LT0xPViBTVEVWQU4KK1NPS09MT1YgWklOQUlETworU09LT0xPVknEhiDEkE9SxJBFCitTT0tPTE9WScSGIEFOQQorU09LT0xPVknEhiBEVcWgS08KK1NPS09MT1ZJxIYgS0FUQVJJTkEKK1NPS09MT1ZJxIYgTUlMRQorU09LT0xPVknEhiBOQVRBTElKQQorU09LT0xPVknEhiBSVcW9SUNBCitTT0tPTE9WScSGIFNMT0JPREFOCitTT0tPTE9WScSGIFNMT0JPREFOCitTT0tPTE9WScSGIFRPTUlTTEFWCitTT0tPTE9WScSGIFpPUklDQQorU09LT1ZJxIYgRElNSVRSSUpFCitTT0tPVknEhiBEVcWgQU4KK1NPTEFSIExKVUJJQ0EKK1NPTEFSIFNUSkVQQU4KK1NPTEFSRVZJxIYgSk9WQU5LQQorU09MQVJFVknEhiBNSUxBTktBCitTT0xBUknEhiBTT0ZJSkEKK1NPTEFST1YgQk9SSVNMQVYKK1NPTEFST1YgQk9STworU09MQVJPViBNSUxBTgorU09MQVJPViBNSUxJQ0EKK1NPTEFST1YgTUlMSUNBCitTT0xBUk9WIE1JTE/FoAorU09MQVJPViBNSUxPVkFOCitTT0xBUk9WIE5JS09MQQorU09MQVJPViBSQURJVk9KCitTT0xEQVQgQk/FoEtPCitTT0xEQVQgQlJBTktBCitTT0xEQVQgRFJBR08KK1NPTERBVCBNSUxPxaAKK1NPTERBVCBNSVRBUgorU09MREFUIFBFVEFSCitTT0xEQVQgVkVTTkEKK1NPTERBVE9WScSGIMSQT1LEkEUKK1NPTERBVE9WScSGIMSQT1LEkEUKK1NPTERBVE9WScSGIEdPUkFOCitTT0xEQVRPVknEhiBKT1ZBTgorU09MREFUT1ZJxIYgTUlMQQorU09MREFUT1ZJxIYgU0FWQSBOT1ZJTkFSCitTT0xEQVRPVknEhiBTVEFOT0pFCitTT0xEQVRPVknEhiBWRVNOQQorU09MREFUT1ZJxIYgVk9KTworU09MRE8gQUxFS1NBTkRBUgorU09MRE8gSVZBTgorU09MRE8gTk9WSUNBCitTT0xETyBWTEFESU1JUgorU09MRcWgQSBNScWgTworU09MT01VTiBCUkFOS08KK1NPTE9NVU4gRFJBR08KK1NPTE9NVU4gSUxJSkEKK1NPTE9NVU4gTUlMRQorU09MT01VTiBWRVNBCitTT0xPTkpBIFNURVZBTgorU09NQk9SQUMgQUxFS1NBTkRBUgorU09NQk9SQUMgSk9WQU4KK1NPTUJPUkFDIE1BUklKQQorU09NQk9SQUMgU1JFxIZLTworU09NQk9SQUMgVEVSRVpBCitTT01CT1JBQyBUT0RPUgorU09NQk9SU0tJIExBWkFSCitTT01CT1JTS0kgTUlMSUNBCitTT01FUiBJTVJFCitTT01FUiBKRUxFTkEKK1NPTUVSIFRJQk9SCitTT1BLQSBBTklDQQorU09QS0EgSkFOS08KK1NPUEtBIExKVUJPTUlSCitTT1BLQSBMSlVCT01JUgorU09QS0EgTUFSSUpBCitTT1BLQSBNSVJPU0xBVgorU09SxaBBSyBNSUxBTgorU09SxaBBSyBWQUxFTlRJTgorU09SQURJIEFOVFVOCitTT1JBREkgSVZBTgorU09SQURJIFNUSkVQQU4KK1NPUkFKScSGIE1JTEFOCitTT1JBSknEhiBNSUxJVk9KCitTT1JBSyBERUxJVk9KRQorU09SRyBBTkdFTElOQQorU09SRyBKRUxFTkEKK1NPUkcgTklLT0xBCitTT1JHRVIgTUlSQQorU09STyBNSUxBTgorU09STyBNSU9EUkFHCitTT1JPIE1JUkpBTkEKK1NPUk8gTklLT0xBCitTT1JPIFNJTU8KK1NPVEVSIEpBTk/FoAorU09USVJPVknEhiBTTEFWSUNBCitTT1RPTklDQSBSQUpLTworU09WQSBQRVRBUgorU09WQSBSVURJCitTT1ZJxaAgxJBPUsSQRQorU09WScWgIE1JxaBBCitTT1ZJxaAgT0xHQQorU09WScWgIFBBVkxFCitTT1ZJTEogxJBPUsSQRQorU09WSUxKIMSQVVJPCitTT1ZJTEogQU7EkEVMS08KK1NPVklMSiBBTktBCitTT1ZJTEogQk/FvU8KK1NPVklMSiBCT0dEQU4KK1NPVklMSiBEVcWgQU4KK1NPVklMSiBJTElKQQorU09WSUxKIElMSUpBCitTT1ZJTEogSUxJSkEKK1NPVklMSiBJVklDQQorU09WSUxKIEpPVkFOIERSIExFS0FSCitTT1ZJTEogTEpVQklDQQorU09WSUxKIE1JTEFOIE1SCitTT1ZJTEogTUlMQU4KK1NPVklMSiBQRVJLQQorU09WSUxKIFBFVEFSCitTT1ZJTEogUEVUQVIKK1NPVklMSiBWTEFETworU1BBSEnEhiBLRU1BTAorU1BBScSGIMW9RUxKS08KK1NQQUnEhiBNSUxBTgorU1BBScSGIE1JTEFOCitTUEFKScSGIEJPxb1BCitTUEFKScSGIERJS08KK1NQQUpJxIYgSk9WQU4KK1NQQUpJxIYgSlVMSUpBTkEKK1NQQUpJxIYgTUlMT0pFCitTUEFKScSGIE1JUkpBTkEKK1NQQUpJxIYgU09GSUpBCitTUEFKScSGIFZPSklTTEFWCitTUEFKScSGIFpPUkFOCitTUEFKScSGIFpPUkFOCitTUEFMRVZJxIYgTUlPTUlSCitTUEFMRVZJxIYgVkVSQQorU1BBUklPU0kgQU7EkEVMS0EKK1NQQVNFTk9TS0kgRElNSVRSSUpFCitTUEFTRU5PViBNSUxFCitTUEFTRU5PViBTUEFTS08KK1NQQVNFTk9WIFNUQU5BCitTUEFTRU5PVknEhiDFvUlWS08KK1NQQVNFTk9WScSGIExKVUJJQ0EKK1NQQVNFTk9WU0tJIFJPTUFOCitTUEFTRU5PVlNLSSBWQVNBCitTUEFTScSGIMW9SVZPTUlSCitTUEFTScSGIMSQT1LEkEUKK1NQQVNJxIYgQUxFS1NBTkRBUgorU1BBU0nEhiBCT8W9SURBUgorU1BBU0nEhiBCUkFOSVNMQVYKK1NQQVNJxIYgQlJBTklTTEFWCitTUEFTScSGIERSQUdJxaBBCitTUEFTScSGIEdPUkRBTkEKK1NQQVNJxIYgR09SREFOQQorU1BBU0nEhiBKRUxJU0FWRVRBCitTUEFTScSGIEpPVkFOCitTUEFTScSGIEpVR09TTEFWCitTUEFTScSGIExKSUxKQU5BCitTUEFTScSGIExKVUJJQ0EKK1NQQVNJxIYgTUlMQU4KK1NQQVNJxIYgTUlMRVZBCitTUEFTScSGIE1JTE/FoAorU1BBU0nEhiBNSUxVVElOCitTUEFTScSGIE1JUkpBTkEKK1NQQVNJxIYgTUlSS08KK1NQQVNJxIYgT0xJVkVSQQorU1BBU0nEhiBQRVRBUgorU1BBU0nEhiBQUkVEUkFHCitTUEFTScSGIFNUQU5JxaBBCitTUEFTScSGIFNUQU5LTworU1BBU0nEhiBTVE9KQU4KK1NQQVNJxIYgU1ZFVElTTEFWCitTUEFTScSGIFRPTUlTTEFWIERJUEwgSU5HCitTUEFTScSGIFRPTUlTTEFWCitTUEFTScSGIFRSQUpBTktBCitTUEFTScSGIFZFTEnEjEtPCitTUEFTScSGIFZVSklDQQorU1BBU09KRVYgTEpVQklDQQorU1BBU09KRVYgU1RPSkFOCitTUEFTT0pFVknEhiDFvUlWT1RBCitTUEFTT0pFVknEhiDEkE9SxJBFCitTUEFTT0pFVknEhiDEkFVSQQorU1BBU09KRVZJxIYgQk9SScWgQSBNUgorU1BBU09KRVZJxIYgQk9SSVNMQVYKK1NQQVNPSkVWScSGIENWRVRLTworU1BBU09KRVZJxIYgREVTSU1JUgorU1BBU09KRVZJxIYgRE9CUklMQQorU1BBU09KRVZJxIYgRE9CUk9TQVYKK1NQQVNPSkVWScSGIERSQUdBTgorU1BBU09KRVZJxIYgRFJBR0nFoEEKK1NQQVNPSkVWScSGIERSQUdPTEpVQgorU1BBU09KRVZJxIYgRFJBR09NSVIKK1NQQVNPSkVWScSGIERVxaBBTgorU1BBU09KRVZJxIYgRUxJWkFCRVRBCitTUEFTT0pFVknEhiBHT1NQQVZBCitTUEFTT0pFVknEhiBHT1NUSU1JUgorU1BBU09KRVZJxIYgSk9WQU4KK1NQQVNPSkVWScSGIEpVTEtBCitTUEFTT0pFVknEhiBLQVRJQ0EKK1NQQVNPSkVWScSGIEtSU1RBCitTUEFTT0pFVknEhiBMQVpBUgorU1BBU09KRVZJxIYgTUnEhk8KK1NQQVNPSkVWScSGIE1JxIZPCitTUEFTT0pFVknEhiBNSUhBSkxPCitTUEFTT0pFVknEhiBNSUxPUkFECitTUEFTT0pFVknEhiBNSU9EUkFHCitTUEFTT0pFVknEhiBNSU9EUkFHCitTUEFTT0pFVknEhiBNT03EjElMTworU1BBU09KRVZJxIYgTkVCT0rFoEEKK1NQQVNPSkVWScSGIE5PVkFLCitTUEFTT0pFVknEhiBQQVZMRQorU1BBU09KRVZJxIYgUFJFRFJBRworU1BBU09KRVZJxIYgUkFDTworU1BBU09KRVZJxIYgUkFESVNBVgorU1BBU09KRVZJxIYgUkFET0pMRQorU1BBU09KRVZJxIYgUkFOS08gRElQTCBJTkcKK1NQQVNPSkVWScSGIFJPRE9MSlVCCitTUEFTT0pFVknEhiBSVcW9SUNBCitTUEFTT0pFVknEhiBTTEFWS0EKK1NQQVNPSkVWScSGIFNMQVZLTworU1BBU09KRVZJxIYgU0xBVk8KK1NQQVNPSkVWScSGIFNMT0JPREFOCitTUEFTT0pFVknEhiBTT05KQQorU1BBU09KRVZJxIYgU1RBTklTTEFWQQorU1BBU09KRVZJxIYgU1RFVkFOCitTUEFTT0pFVknEhiBTVVpBTkEKK1NQQVNPSkVWScSGIFZJVE9NSVIgRFIKK1NQQVNPSkVWScSGIFZMQURJTUlSCitTUEFTT0pFVknEhiBaT1JBTgorU1BBU09MSSBGRVJBVAorU1BBU09WQSBMSlVCSUNBCitTUEVSQU5TS0kgTEpVRE1JTEEgTVIKK1NQRVJOSkFLIMSQT1LEkEUKK1NQRVJOSkFLIEJPR0RBTgorU1BFUk5KQUsgTEpVQklOS0EKK1NQRVJOSkFLIE1JTEVOS08gRElQTCBJTkcKK1NQRVZBSyBEQU5JRUxBCitTUEVWQUsgSlVSQUoKK1NQRVZBSyBaT1JPU0xBVgorU1BJxIxBTk9WScSGIEVWSUNBCitTUEnEjEFOT1ZJxIYgTUFKQQorU1BJxIxBTk9WScSGIFpBR09SS0EKK1NQSUxLVUNJxIYgQk9SSVZPSkUKK1NQSVJJxIYgQUxFS1NBTkRBUgorU1BJUklET05PViBBTkFTVEFTCitTUElSSURPTk9WScSGIEdSQURJTUlSCitTUElSSURPTk9WScSGIE1JTEVOS08KK1NQSVJJRE9OT1ZJxIYgU0lMVklKQQorU1BJUk9TS0kgQUxFS1NBTkRBUgorU1BJUk9WU0tJIENBTkUKK1NQT0pBIMW9RUxKS08KK1NQUkVNScSGIERSQUdBTgorU1BSRU1JxIYgUEVUQVIKK1NQUkVNScSGIFNSRVRFTgorU1BSRU1PIMSQVVJPCitTUFJFTU8gTUlPRFJBRworU1BSRU1PIE1JUktPCitTUFJFTU8gTUlST1NMQVYKK1NQUkVNTyBSQURPVkFOCitTUFJFTU8gU0xBVktPCitTUFJFTU8gVk9KSVNMQVYKK1NQVVNFTklLIExBSk/FoAorU1LEkEFOT1Ygxb1BUktPCitTUsSQQU5PViDFvUlWS08KK1NSxJBBTk9WIEtPTlNUQU5USU4KK1NSxJBBTk9WIE1JSEFKTE8KK1NSxJBBTk9WIE1JTElWT0oKK1NSxJBBTk9WIE1JTE/FoCBESVBMIElORworU1LEkEFOT1YgTUlMT8WgCitTUsSQQU5PViBNSVJPU0xBVgorU1LEkEFOT1YgTkFEQQorU1LEkEFOT1YgTkFEQQorU1LEkEFOT1YgU0xBVktPCitTUsSQQU5PViBTTE9CT0RBTktBCitTUsSQQU5PViBTTE9CT0RBTktBCitTUsSQQU5PViBTTE9CT0RBTgorU1LEkEFOT1YgVkVSQQorU1LEkEVOT1ZJxIYgTUlMQU4KK1NSxJBFTk9WScSGIFVST8WgCitTUsSQRVZJxIYgQk9KQU4KK1NSQklOIEFOS0EKK1NSQklOIEJPR0RBTgorU1JCSU4gSk9WQU4gRFIKK1NSQklOIEtPU1RBCitTUkJJTiBNSVJPU0xBVgorU1JCSU5PVlNLSSBCT1JJUworU1JCSU5PVlNLSSBEUkFHQU5BCitTUkJJTk9WU0tJIERSQUdBTkEKK1NSQklOT1ZTS0kgTUHFoEEKK1NSQklOT1ZTS0kgUEFOVEEKK1NSQklOT1ZTS0kgUEVUQVIKK1NSQkxKQU4gTEFaQVIKK1NSQkxKQU5JTiBEUkFHQU4KK1NSQkxKQU5JTiBQUkVEUkFHCitTUkJPVkFOIEpPTgorU1JCVUxPVknEhiBCT8W9SURBUgorU1JCVUxPVknEhiBEUkFHT0xKVUIKK1NSQlVMT1ZJxIYgTUlST1NMQVYKK1NSREFOT1Ygxb1JVkFOCitTUkRBTk9WIMW9SVZPSklOCitTUkRBTk9WIMSQT1LEkEUKK1NSREFOT1YgQk/FvUlEQVIKK1NSREFOT1YgSkVMS0EKK1NSREFOT1YgSk9WQU4KK1NSREFOT1YgTEFaQVIKK1NSREFOT1YgTEFaQVIKK1NSREFOT1YgTEpJTEpBTkEKK1NSREFOT1YgTUnFoEEKK1NSREFOT1YgTUlMSUNBCitTUkRBTk9WIE1JTE/FoAorU1JEQU5PViBNSUxPU0FWQQorU1JEQU5PViBQRVRBUgorU1JEQU5PViBTSU1BCitTUkRBTk9WIFNMQVZLQQorU1JEQU5PViBTTE9CT0RBTgorU1JEQU5PViBTTE9CT0RBTgorU1JEQU5PViBUT0RPUgorU1JEQU5PVknEhiBCUkFOSVNMQVYKK1NSREFOT1ZJxIYgREVKQU4KK1NSREFOT1ZJxIYgRFJBR09KRQorU1JEQU5PVknEhiBGSUxJUAorU1JEQU5PVknEhiBMRVBPU0FWQQorU1JEQU5PVknEhiBPWlJFTiBESVBMIElORworU1JEQU5PVknEhiBST1NBTkRBCitTUkRBTk9WScSGIFNBTkpBCitTUkRJxIYgxIxFRE9NSVIKK1NSREnEhiDFvUlWS08KK1NSREnEhiDFvUlWS08KK1NSREnEhiDFvUlWS08KK1NSREnEhiDEkE9SxJBFIE1SCitTUkRJxIYgxJBVUk8KK1NSREnEhiBBTsSQQQorU1JEScSGIEFOQQorU1JEScSGIEJPxaBLTworU1JEScSGIEJPR0RBTgorU1JEScSGIEJPU0EKK1NSREnEhiBCUkFOSVNMQVYKK1NSREnEhiBEQU5FCitTUkRJxIYgRElKQU5BCitTUkRJxIYgRFXFoEFOCitTUkRJxIYgRU1FUklLQQorU1JEScSGIEVNRVJJS0EKK1NSREnEhiBHT1JBTgorU1JEScSGIElWQU4KK1NSREnEhiBKRUxFTkEKK1NSREnEhiBMSlVCSUNBCitTUkRJxIYgTUlMQU4KK1NSREnEhiBNSUxBTgorU1JEScSGIE1JTElDQQorU1JEScSGIE1JUkpBTkEKK1NSREnEhiBNSVJLTworU1JEScSGIE1JUktPCitTUkRJxIYgTkFEQQorU1JEScSGIE5BREEKK1NSREnEhiBOSUtPTEEKK1NSREnEhiBOSUtPTEEKK1NSREnEhiBOSUtPTEEKK1NSREnEhiBQRVRBUgorU1JEScSGIFJBREUKK1NSREnEhiBSQURFCitTUkRJxIYgU0lNQQorU1JEScSGIFNMT0JPREFOCitTUkRJxIYgU1ZFVE9aQVIKK1NSREnEhiBWQVNPCitTUkRJxIYgVkxBRElNSVIKK1NSREnEhiBWT0pBCitTUkRJxIYgWk9SQQorU1JFxIZLT1Ygxb1JVktPCitTUkXEhktPViBCTEFHSUNBCitTUkXEhktPViBCUkFOS08KK1NSRcSGS09WIERSQUdBTgorU1JFxIZLT1YgRFJBR0lDQQorU1JFxIZLT1YgRFXFoEFOCitTUkXEhktPViBEVcWgQU4KK1NSRcSGS09WIEVSxb1FQkVUCitTUkXEhktPViBKT1ZBTgorU1JFxIZLT1YgS0FUSUNBCitTUkXEhktPViBNSUxFTkEKK1NSRcSGS09WIE1JTEVOQQorU1JFxIZLT1YgTUlMSVZPSgorU1JFxIZLT1YgTUlST1NMQVYKK1NSRcSGS09WIFJBRElWT0oKK1NSRcSGS09WIFJBRE9KS0EKK1NSRcSGS09WIFNUQU5LTworU1JFxIZLT1YgU1RFVkFOCitTUkXEhktPViBURU9ET1JBCitTUkXEhktPViBWQVNBCitTUkXEhktPViBaRFJBVktPCitTUkXEhktPVknEhiBBTEVLU0FOREFSIERSCitTUkXEhktPVknEhiBEUkFHScWgQQorU1JFxIZLT1ZJxIYgTUFSSUpBCitTUkXEhktPVknEhiBNSUxVVElOCitTUkXEhktPVknEhiBSQURJxaBBCitTUkXEhktPVknEhiBTVE9KQU5BCitTUkXEhk8gREFOSUNBCitTUkXEhk8gTUnEhk8KK1NSRUJPVE5KQUsgU1RBTktPCitTUkVCUk8gSUxJSkEgRFIKK1NSRURBTk9WScSGIE1JTE9SQUQgRElQTCBJTkcKK1NSRURBTk9WScSGIE5FREVMSktPCitTUkVET0pFVknEhiBEQVJJTktBCitTUkVET0pFVknEhiBET0JSTworU1JFRE9KRVZJxIYgSlVMS0lDQQorU1JFRE9KRVZJxIYgTEFaQVIKK1NSRURPSkVWScSGIE1JTElTQVYKK1NSRURPSkVWScSGIE1JUktPCitTUkVET0pFVknEhiBORUJPSsWgQQorU1JFRE9KRVZJxIYgVkVMSU1JUgorU1JFRE9KRVZJxIYgVkVMSU1JUgorU1JFRE9WScSGIFJBSktPCitTUkVKScSGIEJPUktBCitTUkVNxIxFViDEkE9SxJBFCitTUkVNxIxFViBBTEVLU0FOREFSIERSIExFS0FSCitTUkVNxIxFViBMQVpBUgorU1JFTcSMRVYgTUFSSUpBCitTUkVNxIxFViBORVNUT1IKK1NSRU3EjEVWIFNMT0JPREFOCitTUkVNxIxFViBTT0ZJSkEKK1NSRU3EjEVWScSGIEJPUklTTEFWCitTUkVNxIxFVknEhiBKT1ZBTgorU1JFTcSMRVZJxIYgSk9WQU4KK1NSRU3EjEVWScSGIEtBVEEKK1NSRU3EjEVWScSGIEtBVElDQQorU1JFTcSMRVZJxIYgTEpVQknFoEEKK1NSRU3EjEVWScSGIFJBRElWT0oKK1NSRU3EjEVWScSGIFJBU1RLTworU1JFTcSMRVZJxIYgU0xBVk5BCitTUkVNxIxFVknEhiBTVEFOSVNMQVYKK1NSRU3EjEVWScSGIFZFTEpLTworU1JFTUHEjEtJIMSQT1LEkEUKK1NSRU1BxIxLSSBEUkFHT0xKVUIKK1NSRU1BxIxLSSBEVcWgQU5LQQorU1JFTUHEjEtJLUdBVlJJTE9WScSGIE1BSkEKK1NSRU1BxIxLSSBJVkFOS0EKK1NSRU1BxIxLSSBKT1ZBTktBCitTUkVNQcSMS0kgTUlMT8WgCitTUkVNQcSMS0ktTUlSS09WScSGIE1JUkpBTkEKK1NSRU1BxIxLSSBQRVRBUgorU1JFTUHEjEtJIFNJTUEKK1NSRU1BxIxLSSBTT0tBCitTUkVNQcSMS0kgU1BBU09KRQorU1JFTUHEjEtJIFNUQU5PSkUKK1NSRU1BxIxLSSBWTEFEQQorU1JFTUHEjEtJIFpPUklDQQorU1JFTUFDIMSQT1LEkEUKK1NSRU1BQyBBTEVLU0FOREFSCitTUkVNQUMgRFJBR09MSlVCCitTUkVNQUMgSVNBSworU1JFTUFDIEpBTktPCitTUkVNQUMgSk9WQU4KK1NSRU1BQyBMSlVCSUNBCitTUkVNQUMgTEpVQklDQQorU1JFTUFDIE1JTEVOQQorU1JFTUFDIE1JTEVOS08KK1NSRU1BQyBNSUxJVk9KCitTUkVNQUMgTUlSQQorU1JFTUFDIE5JS09MQQorU1JFTUFDIFBBVUxJTkEKK1NSRU1BQyBQQVZMRQorU1JFTUFDIFBFUlNJREEKK1NSRU1BQyBSQURPSktPCitTUkVNQUMgU0xPQk9EQU4KK1NSRU1BQyBTUsSQQU4KK1NSRU1BQyBTVE9KQU5LQQorU1JFTUFDIFNWRVRJU0xBVgorU1JFTUFDIFNWRVRJU0xBVgorU1JFTUFDIFRBTkFTSUpFCitTUkVNQUMgVkxBRElNSVIKK1NSRU1BQyBWTEFKS08KK1NSRU1BQyBaT1JBTkEKK1NSRU1BQyBaT1JBTgorU1JFVEVOT1ZJxIYgxJBVUsSQSU5LQQorU1JFVEVOT1ZJxIYgQk9SSVZPSgorU1JFVEVOT1ZJxIYtTUFOT0pMT1ZJxIYgxJBVUsSQSU5LQQorU1JFVEVOT1ZJxIYgTkVWRU5LQQorU1JFVEVOT1ZJxIYgU1RPSkFESU4KK1NSRVRJxIYgTUlMRU5LTworU1JFVEnEhiBNSVJKQU5BCitTUkVUScSGIFJBVE9NSVIKK1NSRVRLT1ZJxIYgVkVSSUNBCitTUk5ET1ZJxIYgWk9SS0EKK1NSTkVDIMW9RUxKS08KK1NSTknEhiBCT0dEQU4KK1NSTknEhiBFVklDQQorU1JOS0EgSkFOS08KK1NSTktBIEpPVkFOCitTVEHFoFVLIE1JSEFKTE8KK1NUQUhBTknEhiBBTktBCitTVEFJTiBTVEVWQU4KK1NUQUrEjEnEhiBJVkFOCitTVEFKxIxJxIYgUEVUQVIKK1NUQUrFoEnEhiDEkFVSQQorU1RBSknEhiDEkE9SxJBFCitTVEFKScSGIEFMRUtTQU5EUkEKK1NUQUpJxIYgQk/FvUlEQVIKK1NUQUpJxIYgQk9SSVNMQVYKK1NUQUpJxIYgQk9SSVNMQVYKK1NUQUpJxIYgQk9SSVZPSgorU1RBSknEhiBCUkFOSU1JUgorU1RBSknEhiBCUkFOSVNMQVYKK1NUQUpJxIYgRFJBR09MSlVCCitTVEFKScSGIERVxaBBTgorU1RBSknEhiBEVcWgSUNBCitTVEFKScSGIEZFTUEKK1NUQUpJxIYgR0xJR09SSUpFCitTVEFKScSGIEdMSUdPUklKRQorU1RBSknEhiBHUklHT1JJSkUgRElQTCBJTkcKK1NUQUpJxIYgSlVTVElOQQorU1RBSknEhiBMRVBPU0FWQQorU1RBSknEhiBMSlVCT01JUgorU1RBSknEhiBNQVJBCitTVEFKScSGIE1BUklKQQorU1RBSknEhiBNSUxBTiBESVBMIElORworU1RBSknEhiBNSUxBTgorU1RBSknEhiBNSUxFU0EKK1NUQUpJxIYgTUlMRVZBCitTVEFKScSGIE1JTEtBCitTVEFKScSGIE1JUk9TTEFWCitTVEFKScSGIE5FU1RPUgorU1RBSknEhiBQQVZMRQorU1RBSknEhiBQRVRBUgorU1RBSknEhi1QT1BPViBCT1JJU0xBVkEgRFIKK1NUQUpJxIYgUkFESVZPSgorU1RBSknEhiBSQURPU0xBVgorU1RBSknEhiBTSUtBCitTVEFKScSGIFNSRVRBCitTVEFKScSGIFNUQU5JU0xBVgorU1RBSknEhiBTVE9KQURJTgorU1RBSknEhiBUT0RPUgorU1RBSknEhiBWRUxJTUlSCitTVEFKScSGIFZVS09TQVYKK1NUQUpJxIYgWkxBVEEKK1NUQUpLT1ZJxIYgQlJBVElTTEFWCitTVEFKS09WScSGIERSQUdPTEpVQgorU1RBS0nEhiDFvUlWQU4KK1NUQUtJxIYgxb1JVktBCitTVEFLScSGIMSQVVJPCitTVEFLScSGIEFMRUtTQU5EQVIKK1NUQUtJxIYgQk/FoEtPCitTVEFLScSGIEJPxb1JREFSCitTVEFLScSGIEJPUklWT0pFCitTVEFLScSGIEJSQU5JU0xBVgorU1RBS0nEhiBERUpBTgorU1RBS0nEhiBEVcWgQU4gRElQTCBJTkcKK1NUQUtJxIYgSkVMRU5BCitTVEFLScSGIEpPVkFOIFNVRElKQQorU1RBS0nEhiBNRUxJTkRBCitTVEFLScSGIE1JTEFOCitTVEFLScSGIE1JTEFOCitTVEFLScSGIE1JUktPCitTVEFLScSGIE1PTUlSCitTVEFLScSGIE5FQk9KxaBBCitTVEFLScSGIE5FREVMSktPCitTVEFLScSGIE5JS09MQQorU1RBS0nEhiBQQVZMRQorU1RBS0nEhiBTUE9NRU5LQQorU1RBS0nEhiBTVE9KQU4KK1NUQUtJxIYgVkVSQQorU1RBS0nEhiBaQUhBUklKRQorU1RBS0nEhiBaT1JBTgorU1RBS09SScSGIFpEUkFWS08KK1NUQU1BVE9WScSGIE1JTEVOS08gRFIKK1NUQU1BVE9WScSGIE1JTE9SQUQKK1NUQU1FTknEhiBEQU1OSkFOCitTVEFNRU5JxIYgTUFSS08KK1NUQU1FTknEhiBSQURPU0FWCitTVEFNRU5JxIYgVE9NSVNMQVYKK1NUQU1FTktPVknEhiDFvUlWT0pJTgorU1RBTUVOS09WScSGIMW9SVZPSklOCitTVEFNRU5LT1ZJxIYgQUxFS1NBTkRBUgorU1RBTUVOS09WScSGIEJMQUdPSkUKK1NUQU1FTktPVknEhiBEUkFHQU4KK1NUQU1FTktPVknEhiBHT1JEQU5BCitTVEFNRU5LT1ZJxIYgTEpVQk9NSVIgRFIKK1NUQU1FTktPVknEhiBMSlVCT01JUgorU1RBTUVOS09WScSGIE1BUkpBTgorU1RBTUVOS09WScSGIE1JTE9SQUQKK1NUQU1FTktPVknEhiBNSVJPU0xBVkEKK1NUQU1FTktPVknEhiBOT1ZJQ0EKK1NUQU1FTktPVknEhiBQRVRST05JSkUKK1NUQU1FTktPVknEhiBSQURPTUlSIERJUEwgSU5HCitTVEFNRU5LT1ZJxIYgU0lOScWgQQorU1RBTUVOS09WScSGIFNMQVZPTEpVQgorU1RBTUVOS09WScSGIFNMT0JPREFOCitTVEFNRU5LT1ZJxIYgU1JFVEVOIERSCitTVEFNRU5LT1ZJxIYgU1JFVEVOCitTVEFNRU5LT1ZJxIYgU1RBTklNSVIKK1NUQU1FTktPVknEhiBTVE9KQU4KK1NUQU1FTktPVknEhiBTVE9KQU4KK1NUQU1FTktPVknEhiBTVE9KQU4KK1NUQU1FTktPVknEhiBWQVNJTElKRQorU1RBTUVOS09WScSGIFZFTElCT1IKK1NUQU1FTktPVknEhiBWRVJBCitTVEFNRU5LT1ZJxIYgVkxBRElNSVIgRElQTCBJTkcKK1NUQU1FTktPVknEhiBWTEFESU1JUgorU1RBTUVOS09WScSGIFZMQVNUSU1JUgorU1RBTUVOS09WScSGIFZVS0FESU4KK1NUQU1FTktPVknEhiBaT1JBTgorU1RBTUVOS09WScSGIFpPUkEKK1NUQU1FTk9WIEJSQU5LTworU1RBTUVOT1YgTklLT0xBCitTVEFNRU5PViBTTEFWS0EKK1NUQU1FTk9WScSGIEtSU1RJVk9KCitTVEFNRU5PVknEhiBSQUpLTworU1RBTUVWU0tJIFRPTsSMRQorU1RBTU9SQU4gS0FUSUNBCitTVEFNUEZFUiBST1pBTElKQQorU1RBTsSMRVRJxIYgRFJBR0lDQQorU1RBTsSMRVRJxIYgUEFWTEUKK1NUQU7EjEnEhiBBTsSQRUxLQQorU1RBTsSMScSGIEFORFJJSkEgRFIKK1NUQU7EjEnEhiBCTEFHT0pFIE1SCitTVEFOxIxJxIYgQk/FvUFOQQorU1RBTsSMScSGIEJPxb1JREFSCitTVEFOxIxJxIYgREFOSUNBCitTVEFOxIxJxIYgRFJBR09MSlVCCitTVEFOxIxJxIYgTEFaQVIKK1NUQU7EjEnEhiBMSlVCT01JUgorU1RBTsSMScSGIE1BUklKQQorU1RBTsSMScSGIE1BUktPCitTVEFOxIxJxIYgTUnEhkEKK1NUQU7EjEnEhiBNSUhBSkxPCitTVEFOxIxJxIYgTUlLQQorU1RBTsSMScSGIE1JT0RSQUcKK1NUQU7EjEnEhiBOSUtPTEEKK1NUQU7EjEnEhiBQQVZMRQorU1RBTsSMScSGIFRBTktPU0FWQQorU1RBTsSMScSGIFRJSE9NSVIKK1NUQU7EjEnEhiBaT1JBTgorU1RBTsSMSUsgTUFSR0lUQQorU1RBTsSMVSBNQVJJSkEKK1NUQU7EjFVMIMW9SVZBTgorU1RBTsSMVUwgQU5LQQorU1RBTsSMVUwgTEpJTEpBTkEKK1NUQU7EjFVMIExKVUJPTUlSCitTVEFOxIxVTCBSQURJU0xBVgorU1RBTsSMVUwgUkFET1ZBTgorU1RBTsSMVUwgU0FWQQorU1RBTsSMVUxPViBEUkFHSUNBCitTVEFOxIxVTE9WIE1JTEFOCitTVEFOQcSGRVYgxb1JVkEKK1NUQU5BxIZFViBNSUxFTkEKK1NUQU5BxIZFViBNSUxJVk9KCitTVEFOQcSGRVYgU1JFRE9KRSBEUgorU1RBTkFSIMSQVVJBCitTVEFOQVIgxJBVUkEKK1NUQU5BUiDEkFVSQQorU1RBTkFSIEFOS0EKK1NUQU5BUiBERVNBCitTVEFOQVIgRFXFoEFOS0EKK1NUQU5BUiBEVcWgQU4KK1NUQU5BUi1HT0dJxIYgU1RFVkFOCitTVEFOQVIgSUxJSkEKK1NUQU5BUiBNSUxFCitTVEFOQVIgUkFERQorU1RBTkFSIFJBVEtPCitTVEFOQVJFVknEhiDFvUVMSktPCitTVEFOQVJFVknEhiBCT8W9QQorU1RBTkFSRVZJxIYgTUFSS08KK1NUQU5BUkVWScSGIE1JSEFKTE8KK1NUQU5BUkVWScSGIE1JTEFOCitTVEFOQVJFVknEhiBORURFTEpLQQorU1RBTkFSRVZJxIYgU0FWQQorU1RBTkJPTElKQSBNSVJLTworU1RBTkVLT1ZJxIYgTUlMQU4KK1NUQU5FS09WScSGIFNUQU5JU0xBVgorU1RBTkVLT1ZJxIYgVk9KQQorU1RBTknEjEtPViDEjEVET01JUgorU1RBTknEjEtPViBCT1JBCitTVEFOScSMS09WIEpPVkFOCitTVEFOScSMS09WIExKSUxKQU5BCitTVEFOScSMS09WIE1BUlRBCitTVEFOScWgScSGIEJPR09MSlVCCitTVEFOScWgScSGIEJPUklTTEFWCitTVEFOScWgScSGIEJVRElOS0EKK1NUQU5JxaBJxIYgREFNSkFOCitTVEFOScWgScSGIERSQUdPTEpVQgorU1RBTknFoEnEhiBEUkFHT0xKVUIKK1NUQU5JxaBJxIYgRFJBR09NSVIKK1NUQU5JxaBJxIYgRFXFoEFOCitTVEFOScWgScSGIERVxaBBTgorU1RBTknFoEnEhiBHT0pLTworU1RBTknFoEnEhiBKRUxFTkEKK1NUQU5JxaBJxIYgSk9WQU4KK1NUQU5JxaBJxIYgSk9WQU4KK1NUQU5JxaBJxIYgS0FUSUNBCitTVEFOScWgScSGIExFUE9TQVZBCitTVEFOScWgScSGIExKSUxKQU5BIERSCitTVEFOScWgScSGIExKVUJJQ0EKK1NUQU5JxaBJxIYgTUFSS08KK1NUQU5JxaBJxIYgTUFSS08KK1NUQU5JxaBJxIYgTUlMQU4KK1NUQU5JxaBJxIYgTUlMQU4KK1NUQU5JxaBJxIYgTUlMScSGIERSIExFS0FSCitTVEFOScWgScSGIE1JTElWT0oKK1NUQU5JxaBJxIYgTUlMT8WgCitTVEFOScWgScSGIE1JT0RSQUcKK1NUQU5JxaBJxIYgTUlPRFJBRworU1RBTknFoEnEhiBNTEFERU4KK1NUQU5JxaBJxIYgTU9NSVIKK1NUQU5JxaBJxIYgTkVCT0rFoEEKK1NUQU5JxaBJxIYgTkVERUxKS0EKK1NUQU5JxaBJxIYgTklLT0xBCitTVEFOScWgScSGIE5JS09MQQorU1RBTknFoEnEhiBPTEdJQ0EKK1NUQU5JxaBJxIYgUEFWTEUKK1NUQU5JxaBJxIYgUEFWTEUKK1NUQU5JxaBJxIYgUEVUQVIKK1NUQU5JxaBJxIYgUFJPS0EKK1NUQU5JxaBJxIYgUkFEQQorU1RBTknFoEnEhiBSQURPVkFOCitTVEFOScWgScSGIFJBVEtPCitTVEFOScWgScSGIFJFTEpBCitTVEFOScWgScSGIFNJTU8KK1NUQU5JxaBJxIYgU0xBVktPIERJUEwgSU5HCitTVEFOScWgScSGIFNMT0JPREFOCitTVEFOScWgScSGIFNUQU5JxaBBCitTVEFOScWgScSGIFNUQU5JU0xBVgorU1RBTknFoEnEhiBTVEVWTworU1RBTknFoEnEhiBTVE9KQU7EjEEKK1NUQU5JxaBJxIYgU1ZFVExBTkEKK1NUQU5JxaBJxIYgU1ZFVE9aQVIgRFIKK1NUQU5JxaBJxIYgU1ZFVE9aQVIKK1NUQU5JxaBJxIYgVElIT01JUgorU1RBTknFoEnEhiBUT0RPUgorU1RBTknFoEnEhiBUT01BxaAKK1NUQU5JxaBJxIYgVkFTSUxKS0EKK1NUQU5JxaBJxIYgVkVMSktPCitTVEFOScWgScSGIFZMQURBCitTVEFOScWgScSGIFpPUkFOCitTVEFOScWgScSGIFpPUkFOCitTVEFOScWgSU4gQlJBTktPCitTVEFOScWgSU4gSVNBCitTVEFOScWgSU4gVk9KSU4KK1NUQU5JxaBMSkVWScSGIERVxaBBTktBCitTVEFOScSGIMW9SVZBRElOCitTVEFOScSGIMW9SVZBTgorU1RBTknEhiDEkFVSQQorU1RBTknEhiBBTEVLU0FOREFSCitTVEFOScSGIEJPxaBLTworU1RBTknEhiBCT0dEQU4KK1NUQU5JxIYgQlJBTktBCitTVEFOScSGIEJSQU5LTworU1RBTknEhiBCUkFOS08KK1NUQU5JxIYgREFORQorU1RBTknEhiBEQU5JQ0EKK1NUQU5JxIYgREFOS0EKK1NUQU5JxIYgRFJBR0FOCitTVEFOScSGIERSQUdPU0xBViBEUgorU1RBTknEhiBEUkFHTworU1RBTknEhiBEVcWgQU4KK1NUQU5JxIYgR09KS08KK1NUQU5JxIYgSUxJSkEKK1NUQU5JxIYgSUxJSkEKK1NUQU5JxIYgSUxJSkEKK1NUQU5JxIYgSUxJSkEKK1NUQU5JxIYgSVZBTgorU1RBTknEhiBKQURSQU5LQQorU1RBTknEhiBKRUxFTkEKK1NUQU5JxIYgSk9WQU4gRElQTCBJTkcKK1NUQU5JxIYgSk9WQU4gRElQTCBJTkcKK1NUQU5JxIYgSlVMS0EKK1NUQU5JxIYgS1JJU1RJVk9KRQorU1RBTknEhiBMSU5LQQorU1RBTknEhiBMSlVCT0RSQUcKK1NUQU5JxIYgTUFORQorU1RBTknEhiBNQVJLTworU1RBTknEhiBNSUxBTiBESVBMIFBSQVZOSUsKK1NUQU5JxIYgTUlMQU5LTworU1RBTknEhiBNSUxBTktPCitTVEFOScSGIE1JTEFOCitTVEFOScSGIE1JTEFOCitTVEFOScSGIE1JTEFOCitTVEFOScSGIE1JTEFOCitTVEFOScSGIE1JTEUKK1NUQU5JxIYgTUlMSUNBCitTVEFOScSGIE1JTElOS08KK1NUQU5JxIYgTUlMSVNBVgorU1RBTknEhiBNSUxPSkUKK1NUQU5JxIYgTUlMT1NBVkEKK1NUQU5JxIYgTUxBREVOCitTVEFOScSGIE1PTcSMSUxPCitTVEFOScSGIE9MR0EKK1NUQU5JxIYgT1NUT0pBCitTVEFOScSGIFBFVEFSCitTVEFOScSGIFBFVEFSCitTVEFOScSGIFBFVEFSCitTVEFOScSGIFJBREUKK1NUQU5JxIYgUkFERQorU1RBTknEhiBSQURJxaBBCitTVEFOScSGIFJBRE9WQU4gRElQTCBJTkcKK1NUQU5JxIYgUkFKS08KK1NUQU5JxIYgU0FWTworU1RBTknEhiBTSU1PCitTVEFOScSGIFNJTknFoEEKK1NUQU5JxIYgU1BBU09KRQorU1RBTknEhiBTUsSQQU4KK1NUQU5JxIYgU1RBTUVOQQorU1RBTknEhiBTVEVWQU4KK1NUQU5JxIYgVVJPxaAKK1NUQU5JxIYgVkVMSUJPUgorU1RBTknEhiBWSUtUT1IKK1NUQU5JxIYgVklUT01JUgorU1RBTknEhiBWSVRPTUlSCitTVEFOScSGIFZMQURJTUlSCitTVEFOScSGIFZPSklTTEFWCitTVEFOScSGIFpPUkFOCitTVEFOScSGIFpPUkFOCitTVEFOScW9QU4gTUlMT1JBRAorU1RBTklLIE9MR0EKK1NUQU5JS0nEhiBNSUxBTgorU1RBTklLScSGIE1JTEVWQQorU1RBTklNSVJPViBBTEVLU0FOREFSCitTVEFOSU1JUk9WIEFOQQorU1RBTklNSVJPViBCT1JJVk9KCitTVEFOSU1JUk9WIEJSQU5LQQorU1RBTklNSVJPViBEVcWgQU4KK1NUQU5JTUlST1YgR0FWUkEKK1NUQU5JTUlST1YgSkVMS0EKK1NUQU5JTUlST1YgS0FUSUNBCitTVEFOSU1JUk9WIExKSUxKQU5BCitTVEFOSU1JUk9WIExKSUxKQU5BCitTVEFOSU1JUk9WIExKVUJJQ0EKK1NUQU5JTUlST1YgTkVERUxKS08KK1NUQU5JTUlST1YgUkFESVZPSgorU1RBTklNSVJPViBSQU5LQQorU1RBTklNSVJPViBTTEFWS08KK1NUQU5JTUlST1YgWk9SSUNBCitTVEFOSU1JUk9WScSGIMW9SVZPSklOCitTVEFOSU1JUk9WScSGIERFU0lNSVIKK1NUQU5JTUlST1ZJxIYgRFJBR0FOCitTVEFOSU1JUk9WScSGIERSQUdBTgorU1RBTklNSVJPVknEhiBEUkFHT01JUgorU1RBTklNSVJPVknEhiBKQURSQU5LQQorU1RBTklNSVJPVknEhiBKRUxJQ0EKK1NUQU5JTUlST1ZJxIYgS1JTVE8KK1NUQU5JTUlST1ZJxIYgTU9NQSBEUgorU1RBTklNSVJPVknEhiBQQVZMRQorU1RBTklNSVJPVknEhiBSQURPSktBCitTVEFOSU1JUk9WScSGIFNUQU5JTUlSCitTVEFOSU1JUk9WScSGIFRBVEpBTkEKK1NUQU5JTUlST1ZJxIYgVFJJRlVOCitTVEFOSU1JUk9WScSGIFZFUk9OSUtBCitTVEFOSVNBVkxKRVYgxJBPS0EKK1NUQU5JU0FWTEpFViDEkE9SxJBFCitTVEFOSVNBVkxKRVYgQUxFS1NBTkRSQQorU1RBTklTQVZMSkVWIEFOQQorU1RBTklTQVZMSkVWIERPQlJJVk9KCitTVEFOSVNBVkxKRVYgRFXFoEFOCitTVEFOSVNBVkxKRVYgTEpVQklDQQorU1RBTklTQVZMSkVWIExKVUJPTUlSCitTVEFOSVNBVkxKRVYgTUlMQU4KK1NUQU5JU0FWTEpFViBNSUxJQ0EKK1NUQU5JU0FWTEpFViBNSUxPSktPCitTVEFOSVNBVkxKRVYgTUlST1NMQVYKK1NUQU5JU0FWTEpFVknEhiDEkE9SxJBFIERJUEwgSU5HCitTVEFOSVNBVkxKRVZJxIYgxJBPUsSQRQorU1RBTklTQVZMSkVWScSGIEJJTEpBTkEKK1NUQU5JU0FWTEpFVknEhiBCT8W9QQorU1RBTklTQVZMSkVWScSGIENWRVRBCitTVEFOSVNBVkxKRVZJxIYgREFORQorU1RBTklTQVZMSkVWScSGIERJTUlUUklKRQorU1RBTklTQVZMSkVWScSGIERSQUdPTUlSCitTVEFOSVNBVkxKRVZJxIYgRFXFoEFOS0EKK1NUQU5JU0FWTEpFVknEhiBFTElaQUJFVEEKK1NUQU5JU0FWTEpFVknEhiBHSVpFTEEKK1NUQU5JU0FWTEpFVknEhiBHT1JEQU5BCitTVEFOSVNBVkxKRVZJxIYgSUdOSkFUSUpFCitTVEFOSVNBVkxKRVZJxIYgS0FUSUNBCitTVEFOSVNBVkxKRVZJxIYgTEVQT1NBVkEKK1NUQU5JU0FWTEpFVknEhiBNQVJJSkEKK1NUQU5JU0FWTEpFVknEhiBNSUxBTgorU1RBTklTQVZMSkVWScSGIE1JTEFOCitTVEFOSVNBVkxKRVZJxIYgTUlMSVZPSkUKK1NUQU5JU0FWTEpFVknEhiBNSUxPxaAKK1NUQU5JU0FWTEpFVknEhiBNSU9EUkFHCitTVEFOSVNBVkxKRVZJxIYgTUlPRFJBRworU1RBTklTQVZMSkVWScSGIE1JUktPCitTVEFOSVNBVkxKRVZJxIYgTkFEQQorU1RBTklTQVZMSkVWScSGIFJBREUKK1NUQU5JU0FWTEpFVknEhiBSVcW9SUNBCitTVEFOSVNBVkxKRVZJxIYgU0FWQSBESVBMIElORworU1RBTklTQVZMSkVWScSGIFNUQVZSQSBESVBMIElORworU1RBTklTQVZMSkVWScSGIFNURVZBTgorU1RBTklTQVZMSkVWScSGIFZFTElaQVIKK1NUQU5JU0FWTEpFVknEhiBWRUxKS08KK1NUQU5JU0FWTEpFVknEhiBaT1JJQ0EKK1NUQU5JVlVLIMW9QVJLTworU1RBTklWVUsgREVKQU4KK1NUQU5JVlVLIE1JUktPCitTVEFOSVZVSyBNTEFERU4KK1NUQU5JVlVLIE5BREEKK1NUQU5JVlVLIE5FREVMSktPCitTVEFOSVZVSyBOSUtPTEEKK1NUQU5JVlVLIFpEUkFWS08KK1NUQU5JVlVLT1ZJxIYgRFJBR1VUSU4gTVIKK1NUQU5JVlVLT1ZJxIYgRFJBR1VUSU4KK1NUQU5JVlVLT1ZJxIYgTEpJTEpBTkEKK1NUQU5JVlVLT1ZJxIYgTUFSSUpBCitTVEFOSVZVS09WScSGIE1JTElWT0ogRFIgVkVURVJJTkUKK1NUQU5JVlVLT1ZJxIYgVVJPxaAKK1NUQU5LScSGIERSQUdBTgorU1RBTktJxIYgTEFaQVIKK1NUQU5LScSGIE1JTE/FoAorU1RBTktJxIYgU1RFVkFOCitTVEFOS0nEhiBWSUxPR09SS0EKK1NUQU5LSUpFVknEhiBEVcWgQU4KK1NUQU5LSU4gxJBPUsSQRQorU1RBTktJTiBCUkFOS0EKK1NUQU5LSU4gSkFTTUlOQQorU1RBTktJTiBNSUxFCitTVEFOS0lOIE1JTElWT0oKK1NUQU5LSU4gTUlMSVZPSgorU1RBTktJTiBUT0RPUgorU1RBTktPIElNUkUKK1NUQU5LTyBJVkFOCitTVEFOS08gSk9TSVAgRElQTCBJTkcKK1NUQU5LTyBTVEVWQU4KK1NUQU5LTyBTVEVWQU4KK1NUQU5LTyBTVEVWQU4KK1NUQU5LTyBWRVJJQ0EKK1NUQU5LT1Ygxb1BUktPCitTVEFOS09WIMW9SVZLQQorU1RBTktPViDFvUlWS08KK1NUQU5LT1Ygxb1JVktPCitTVEFOS09WIMSQT1LEkEUKK1NUQU5LT1YgQk9KQU5BCitTVEFOS09WIERBUklOS0EKK1NUQU5LT1YgREFSS08KK1NUQU5LT1YgRFXFoEFOCitTVEFOS09WIERVxaBBTgorU1RBTktPViBFxb1FQkVUCitTVEFOS09WIElWQU5LQQorU1RBTktPViBJVkFOCitTVEFOS09WIEpFTEVOQQorU1RBTktPViBLQVRJQ0EKK1NUQU5LT1YgS09WSU5BCitTVEFOS09WIExKVUJJQ0EKK1NUQU5LT1YgTUFSSUpBCitTVEFOS09WIE1BUklOS08KK1NUQU5LT1YgTUFSS08KK1NUQU5LT1YgTUlMQU5LTworU1RBTktPViBNSUxBTktPCitTVEFOS09WIE1JTE/FoAorU1RBTktPViBNSVJKQU5BCitTVEFOS09WIE1JUk9TTEFWCitTVEFOS09WIE5FVkVOS0EKK1NUQU5LT1YgTklLT0xBCitTVEFOS09WIFBBSkEgRFIKK1NUQU5LT1YgUEFWTEUKK1NUQU5LT1YgUEVUQVIKK1NUQU5LT1YgUEVUQVIKK1NUQU5LT1YgUkFET1ZBTgorU1RBTktPViBSQVNUS08KK1NUQU5LT1YgUlXFvUlDQQorU1RBTktPViBTTE9CT0RBTktBCitTVEFOS09WIFNPRklKQQorU1RBTktPViBTVEFOS0EKK1NUQU5LT1YgU1RFVkFOCitTVEFOS09WIFNURVZBTgorU1RBTktPViBTVE9KQU4KK1NUQU5LT1YgU1ZFVElTTEFWCitTVEFOS09WIFNWRVRPWkFSCitTVEFOS09WIFZFTEpLTworU1RBTktPViBWRUxKS08KK1NUQU5LT1YgVkxBRElNSVIKK1NUQU5LT1YgVk9KSVNMQVYKK1NUQU5LT1YgVk9KSVNMQVYKK1NUQU5LT1YgVk9KSVNMQVYKK1NUQU5LT1YgWk9SQU5LQQorU1RBTktPViBaT1JBTgorU1RBTktPVknEhiDFvUFSS08KK1NUQU5LT1ZJxIYgxb1BUktPCitTVEFOS09WScSGIMW9SVZLTworU1RBTktPVknEhiDFvUlWS08KK1NUQU5LT1ZJxIYgxb1JVk9KSU4KK1NUQU5LT1ZJxIYgxb1JVk9KSU4KK1NUQU5LT1ZJxIYgxb1JVk9SQUQKK1NUQU5LT1ZJxIYgxJBPUsSQRQorU1RBTktPVknEhiDEkE9SxJBFCitTVEFOS09WScSGIMSQT1JFCitTVEFOS09WScSGIMSQVVJPCitTVEFOS09WScSGIEFMRUtTQU5EQVIKK1NUQU5LT1ZJxIYgQUxFS1NBTkRBUgorU1RBTktPVknEhiBBTEVLU0FOREFSCitTVEFOS09WScSGIEFOxJBFTEtBCitTVEFOS09WScSGIEFOxJBFTEtBCitTVEFOS09WScSGIEFOQQorU1RBTktPVknEhiBBTklDQQorU1RBTktPVknEhiBBUkFOS0EKK1NUQU5LT1ZJxIYgQVZSQU0KK1NUQU5LT1ZJxIYgQklMSkFOQQorU1RBTktPVknEhiBCT8W9SURBUgorU1RBTktPVknEhiBCT8W9SURBUgorU1RBTktPVknEhiBCT0dPTEpVQiBEUgorU1RBTktPVknEhiBCT0dPTEpVQgorU1RBTktPVknEhiBCT0pBTkEKK1NUQU5LT1ZJxIYgQk9KQU4KK1NUQU5LT1ZJxIYgQk9SQQorU1RBTktPVknEhiBCT1JBCitTVEFOS09WScSGIEJPUkEKK1NUQU5LT1ZJxIYgQk9SSVNMQVYKK1NUQU5LT1ZJxIYgQk9SSVNMQVYKK1NUQU5LT1ZJxIYgQk9TSUxKS0EKK1NUQU5LT1ZJxIYgQlJBTktPCitTVEFOS09WScSGIERBTklDQQorU1RBTktPVknEhiBEQU5JTE8KK1NUQU5LT1ZJxIYgREFSSU5LQQorU1RBTktPVknEhiBESVZOQQorU1RBTktPVknEhiBET0JSSU5LQQorU1RBTktPVknEhiBET0JSSVZPSkUKK1NUQU5LT1ZJxIYgRE9CUklWT0pFCitTVEFOS09WScSGIERPQlJPU0xBVgorU1RBTktPVknEhiBEUkFHQU4KK1NUQU5LT1ZJxIYgRFJBR0FOCitTVEFOS09WScSGIERSQUdJxaBBCitTVEFOS09WScSGIERSQUdJxaBBCitTVEFOS09WScSGIERSQUdJQ0EKK1NUQU5LT1ZJxIYgRFJBR09MSlVCCitTVEFOS09WScSGIERSQUdPUkFECitTVEFOS09WScSGIERSQUdVVElOCitTVEFOS09WScSGIERVxaBBTgorU1RBTktPVknEhiBEVcWgQU4KK1NUQU5LT1ZJxIYgRFXFoEFOCitTVEFOS09WScSGIERVxaBBTgorU1RBTktPVknEhiBEVcWgS08KK1NUQU5LT1ZJxIYgRVZFTElOIERSCitTVEFOS09WScSGIEVWSUNBCitTVEFOS09WScSGIEZSRURFUklLCitTVEFOS09WScSGIElMSUpBCitTVEFOS09WScSGIElMSUpBCitTVEFOS09WScSGIElWQU4KK1NUQU5LT1ZJxIYgSVZBTgorU1RBTktPVknEhiBKQUdPREEKK1NUQU5LT1ZJxIYgSkVMRU5BCitTVEFOS09WScSGIEpFTElDQQorU1RBTktPVknEhiBKRVNFTktBIERSCitTVEFOS09WScSGIEpPVkFOIERJUEwgSU5HCitTVEFOS09WScSGIEpPVkFOCitTVEFOS09WScSGIEpPVklDQQorU1RBTktPVknEhiBKT1ZJQ0EKK1NUQU5LT1ZJxIYgS0FUQUxJTgorU1RBTktPVknEhiBLQVRBUklOQQorU1RBTktPVknEhiBLQVRJQ0EKK1NUQU5LT1ZJxIYgS09TQU5BCitTVEFOS09WScSGIEtPU1RBRElOCitTVEFOS09WScSGIExBWkFSIERJUEwgSU5HCitTVEFOS09WScSGIExBWkFSCitTVEFOS09WScSGIExBWkFSCitTVEFOS09WScSGIExKSUxKQU5BCitTVEFOS09WScSGIExKSUxKQU5BCitTVEFOS09WScSGIExKSUxKQU5BCitTVEFOS09WScSGIExKVUJJQ0EKK1NUQU5LT1ZJxIYgTEpVQklDQQorU1RBTktPVknEhiBMSlVCSVNBVgorU1RBTktPVknEhiBMSlVCT01JUgorU1RBTktPVknEhiBMSlVCT01JUgorU1RBTktPVknEhiBMSlVCT01JUgorU1RBTktPVknEhiBMSlVCTworU1RBTktPVknEhiBNQVJJSkEKK1NUQU5LT1ZJxIYgTUFSSUpBCitTVEFOS09WScSGIE1BUklOS08KK1NUQU5LT1ZJxIYgTUFSSU5LTworU1RBTktPVknEhiBNQVJKQU4KK1NUQU5LT1ZJxIYgTUFSS08KK1NUQU5LT1ZJxIYgTUVMQU5JSkEKK1NUQU5LT1ZJxIYgTUlIQUpMTworU1RBTktPVknEhiBNSUhBSkxPCitTVEFOS09WScSGIE1JTEFOS08KK1NUQU5LT1ZJxIYgTUlMQU5LTworU1RBTktPVknEhiBNSUxBTgorU1RBTktPVknEhiBNSUxBTgorU1RBTktPVknEhiBNSUxBTgorU1RBTktPVknEhiBNSUxBTgorU1RBTktPVknEhiBNSUxBTgorU1RBTktPVknEhiBNSUxBTgorU1RBTktPVknEhiBNSUxBTgorU1RBTktPVknEhiBNSUxFTktPCitTVEFOS09WScSGIE1JTE/FoAorU1RBTktPVknEhiBNSUxPxaAKK1NUQU5LT1ZJxIYgTUlMT1JBRAorU1RBTktPVknEhiBNSUxVVElOCitTVEFOS09WScSGIE1JT0RSQUcKK1NUQU5LT1ZJxIYgTUlPTUlSCitTVEFOS09WScSGIE1JUkpBTkEKK1NUQU5LT1ZJxIYgTUlSSkFOQQorU1RBTktPVknEhiBNSVJLTworU1RBTktPVknEhiBNSVJLTworU1RBTktPVknEhiBNSVJPTEpVQgorU1RBTktPVknEhiBNSVJPU0xBVgorU1RBTktPVknEhiBNSVJPU0xBVgorU1RBTktPVknEhiBNSVRBUgorU1RBTktPVknEhiBNTEFERU4KK1NUQU5LT1ZJxIYgTUxBREVOCitTVEFOS09WScSGIE1PTcSMSUxPCitTVEFOS09WScSGIE5BREEKK1NUQU5LT1ZJxIYgTkFEQQorU1RBTktPVknEhiBOQURBCitTVEFOS09WScSGIE5BREEKK1NUQU5LT1ZJxIYgTkFUQcWgQQorU1RBTktPVknEhiBOQVRBTElKQQorU1RBTktPVknEhiBORU5BRAorU1RBTktPVknEhiBORVZFTkEKK1NUQU5LT1ZJxIYgTklLT0xBCitTVEFOS09WScSGIE5JS09MQQorU1RBTktPVknEhiBOSUtPTEEKK1NUQU5LT1ZJxIYgTklLT0xBCitTVEFOS09WScSGIE5JS09MQQorU1RBTktPVknEhiBPTEdBCitTVEFOS09WScSGIE9MR0EKK1NUQU5LT1ZJxIYgT0xHSUNBCitTVEFOS09WScSGIE9TVE9KQQorU1RBTktPVknEhiBQQVZMRQorU1RBTktPVknEhiBQRVRBUgorU1RBTktPVknEhiBQRVRBUgorU1RBTktPVknEhiBSQURJVk9KCitTVEFOS09WScSGIFJBRE9NSVIKK1NUQU5LT1ZJxIYgUkFET1NMQVYKK1NUQU5LT1ZJxIYgU0HFoEEKK1NUQU5LT1ZJxIYgU0FWS0EKK1NUQU5LT1ZJxIYgU0FWTworU1RBTktPVknEhiBTTEFWS08KK1NUQU5LT1ZJxIYgU0xBVktPCitTVEFOS09WScSGIFNMT0JPREFOS0EKK1NUQU5LT1ZJxIYgU0xPQk9EQU4KK1NUQU5LT1ZJxIYgU0xPQk9EQU4KK1NUQU5LT1ZJxIYgU0xPQk9EQU4KK1NUQU5LT1ZJxIYgU09GSUpBCitTVEFOS09WScSGIFNSxJBBTgorU1RBTktPVknEhiBTUkJPTEpVQiBESVBMIElORworU1RBTktPVknEhiBTVEFNRU4KK1NUQU5LT1ZJxIYgU1RBTktPCitTVEFOS09WScSGIFNUQU5PSkUKK1NUQU5LT1ZJxIYgU1RFVkFOCitTVEFOS09WScSGIFNURVZBTgorU1RBTktPVknEhiBTVEVWTworU1RBTktPVknEhiBTVkVUSVNMQVYKK1NUQU5LT1ZJxIYgU1ZFVElTTEFWCitTVEFOS09WScSGIFNWRVRPWkFSCitTVEFOS09WScSGIFNWRVRPWkFSCitTVEFOS09WScSGIFRFUkVaQQorU1RBTktPVknEhiBUSU9TQVYKK1NUQU5LT1ZJxIYgVE/FoEEKK1NUQU5LT1ZJxIYgVE9NSVNMQVYKK1NUQU5LT1ZJxIYgVE9NSVNMQVYKK1NUQU5LT1ZJxIYgVkVORVJBCitTVEFOS09WScSGIFZFU0VMSU4KK1NUQU5LT1ZJxIYgVkVTRUxJTgorU1RBTktPVknEhiBWSVRPTUlSCitTVEFOS09WScSGIFZMQURBTgorU1RBTktPVknEhiBWTEFEQQorU1RBTktPVknEhiBWTEFESU1JUgorU1RBTktPVknEhiBWTEFESU1JUgorU1RBTktPVknEhiBWT0pJU0xBVgorU1RBTktPVknEhi1WUkFOScSGIE1JTElDQQorU1RBTktPVknEhiBaTEFUSVZPSkUKK1NUQU5LT1ZJxIYgWk9SQU4KK1NUQU5LT1ZJxIYgWk9SQU4KK1NUQU5LT1ZJxIYgWk9SQQorU1RBTktPVlNLSSBLT1NUQQorU1RBTktPVlNLSSBTVEVWQU4KK1NUQU5LT1ZTS0kgVkVMSkFOCitTVEFOT0rEjEnEhiDEkE9SxJBFCitTVEFOT0rEjEnEhiBBTsSQRUxLTworU1RBTk9KxIxJxIYgQU5LSUNBCitTVEFOT0rEjEnEhiBERVNJTUlSCitTVEFOT0rEjEnEhiBEVcWgQU5LQQorU1RBTk9KxIxJxIYgT0xHQQorU1RBTk9KxIxJxIYgU0xPQk9EQU4KK1NUQU5PSsSMScSGIFNPRklKQQorU1RBTk9KxIxJxIYgU1RFVkFOCitTVEFOT0rEjEnEhiBWRVJBCitTVEFOT0rEjEnEhiBWT0pJU0xBVgorU1RBTk9KRVYgxb1JVkFOCitTVEFOT0pFViBBTEVLU0FORFJBCitTVEFOT0pFViBCUkFOSVNMQVYKK1NUQU5PSkVWIERFSkFOCitTVEFOT0pFViBEVcWgQU4KK1NUQU5PSkVWIERVxaBBTgorU1RBTk9KRVYgRFXFoEFOCitTVEFOT0pFViBEVcWgQU4KK1NUQU5PSkVWIEdPUkFOCitTVEFOT0pFViBKT0NBCitTVEFOT0pFViBMQVpBUgorU1RBTk9KRVYgTEpVQklDQQorU1RBTk9KRVYgTUlMQU4KK1NUQU5PSkVWLU1PU0tBTEogT0xHQQorU1RBTk9KRVYgTkVCT0rFoEEKK1NUQU5PSkVWIE5JS09MQQorU1RBTk9KRVYtUEVUUkVOSiBNSVJKQU5BCitTVEFOT0pFViBTQVZBCitTVEFOT0pFViBTVEFOS0EKK1NUQU5PSkVWIFNURVZBTgorU1RBTk9KRVYgVElIT01JUgorU1RBTk9KRVYgVkVSSUNBCitTVEFOT0pFViBWTEFESU1JUgorU1RBTk9KRVYgVkxBRElNSVIKK1NUQU5PSkVWScSGIMSMRURPTUlSCitTVEFOT0pFVknEhiDFvUFSS08KK1NUQU5PSkVWScSGIMW9SVZBTktPCitTVEFOT0pFVknEhiDFvUlWT0pJTgorU1RBTk9KRVZJxIYgxJBVUkEKK1NUQU5PSkVWScSGIEJPxb1JREFSCitTVEFOT0pFVknEhiBEQU5JQ0EKK1NUQU5PSkVWScSGIERSQUdBTgorU1RBTk9KRVZJxIYgRFJBR09MSlVCCitTVEFOT0pFVknEhiBEVcWgQU4KK1NUQU5PSkVWScSGIERVxaBBTgorU1RBTk9KRVZJxIYgSFJBTklTTEFWCitTVEFOT0pFVknEhiBJTElKQQorU1RBTk9KRVZJxIYgSk9WQU4KK1NUQU5PSkVWScSGIEtBxIZBCitTVEFOT0pFVknEhiBLT1NUQQorU1RBTk9KRVZJxIYgTEpVQklOS0EKK1NUQU5PSkVWScSGLU1BTkRJxIYgTUlMQQorU1RBTk9KRVZJxIYgTUFSSUpBCitTVEFOT0pFVknEhiBNSUxBTgorU1RBTk9KRVZJxIYgTUlMQU4KK1NUQU5PSkVWScSGIE1JTEFOCitTVEFOT0pFVknEhiBNSUxBTgorU1RBTk9KRVZJxIYgTUlMQQorU1RBTk9KRVZJxIYgTUlMRVRBCitTVEFOT0pFVknEhiBNSUxJVk9KCitTVEFOT0pFVknEhiBNSUxPUkFECitTVEFOT0pFVknEhiBNSU9EUkFHCitTVEFOT0pFVknEhiBNSU9EUkFHCitTVEFOT0pFVknEhiBNSVJPU0xBVgorU1RBTk9KRVZJxIYgTkFEQQorU1RBTk9KRVZJxIYgTkFUQcWgQQorU1RBTk9KRVZJxIYgTkVCT0rFoEEKK1NUQU5PSkVWScSGIE5FTUFOSkEKK1NUQU5PSkVWScSGIE5FU1RPUgorU1RBTk9KRVZJxIYgTklLT0xBCitTVEFOT0pFVknEhiBOSUtPTEEKK1NUQU5PSkVWScSGIFBBVkxFCitTVEFOT0pFVknEhiBQRVRBUgorU1RBTk9KRVZJxIYgUFJFRFJBRworU1RBTk9KRVZJxIYgUkFETUlMQQorU1RBTk9KRVZJxIYgUkFET01JUgorU1RBTk9KRVZJxIYgUkFET1NMQVYKK1NUQU5PSkVWScSGIFJBRE8KK1NUQU5PSkVWScSGIFNMT0JPREFOCitTVEFOT0pFVknEhiBTT0ZJSkEKK1NUQU5PSkVWScSGIFNSQk9MSlVCCitTVEFOT0pFVknEhiBTVEVWQU4KK1NUQU5PSkVWScSGIFNWRVRJU0xBVgorU1RBTk9KRVZJxIYgVEFUSkFOQQorU1RBTk9KRVZJxIYgVE9NSVNMQVYKK1NUQU5PSkVWScSGLVZBUkdBIEFOQSBEUgorU1RBTk9KRVZJxIYgVkVMSktPCitTVEFOT0pFVknEhiBWTEFESU1JUgorU1RBTk9KRVZJxIYgVkxBRElNSVIKK1NUQU5PSkVWScSGIFZMQURJU0xBVgorU1RBTk9KRVZJxIYgVlVLCitTVEFOT0pFVknEhiBaRFJBVktPCitTVEFOT0pFVknEhiBaTEFUS08KK1NUQU5PSkVWScSGIFpPUkFOCitTVEFOT0pFVknEhiBaT1JBTgorU1RBTk9KRVZJxIYgWk9SQU4KK1NUQU5PSkVWScSGIFpPUkFOCitTVEFOT0pLT1ZJxIYgTUlMT8WgCitTVEFOT0pLT1ZJxIYgUkFERQorU1RBTk9KS09WScSGIFZMQURBCitTVEFOT0pMT1ZJxIYgTUlUQVIKK1NUQU5PSkxPVknEhiBTVEVWQU4KK1NUQU5PSk9TS0kgREFOSUNBCitTVEFOT0pPU0tJIFpMQVRBCitTVEFOT0pTS0kgQkxBR09KRQorU1RBTk9WScSGIFNURVZBTgorU1RBTk9WScSGIFZFU0VMSU4KK1NUQU5URSBKT1NJUAorU1RBTlRJxIYgQkFSVFVMCitTVEFOVEnEhiBCRVJUQUxBTgorU1RBTlRJxIYgS0FUQUxJTgorU1RBTlRJxIYgTEFESVNMQVYKK1NUQU5UScSGIFZFUk9OQQorU1RBTlXFoEnEhiBNSUpBVAorU1RBTlVMIFBFVEFSCitTVEFOVUxPViBTVkVUTEFOQQorU1RBTlVMT1YgVE9ET1IKK1NUQU5VTE9WScSGIERJTUlUUklKRSBEUgorU1RBTlVMT1ZJxIYgTUlMQU4gRFIKK1NUQVBBUiBBTEVLU0FOREFSCitTVEFQQVJTS0kgQk9SSVNMQVYKK1NUQVBBUlNLSSBNSUxBTgorU1RBUEFSU0tJIFBFVEFSCitTVEFQQVJTS0kgU1RFVkFOCitTVEFSxIxFViBBTsSQRUxLQQorU1RBUsSMRVYgQlJBTktBCitTVEFSxIxFViBERVNBTktBCitTVEFSxIxFViBKRUxBCitTVEFSxIxFViBLQVRJQ0EKK1NUQVLEjEVWIE1JTEFOIERJUEwgSU5HCitTVEFSxIxFViBNSUxFTktPCitTVEFSxIxFViBNSUxPxaAKK1NUQVLEjEVWIE1JUk9TTEFWCitTVEFSxIxFViBTVE9KQU5LQQorU1RBUsSMRVZJxIYgQU5JQ0EKK1NUQVLEjEVWScSGIEFOS0EKK1NUQVLEjEVWScSGIEJPxaBLTworU1RBUsSMRVZJxIYgQk9HREFOCitTVEFSxIxFVknEhiBCT1JJU0xBVgorU1RBUsSMRVZJxIYgQlJBTklTTEFWCitTVEFSxIxFVknEhiBCVURJTUlSCitTVEFSxIxFVknEhiBEUkFHSUNBCitTVEFSxIxFVknEhiBEVcWgQU5LQQorU1RBUsSMRVZJxIYgRFXFoEFOCitTVEFSxIxFVknEhiBGUkFOSkEKK1NUQVLEjEVWScSGIElWQU4KK1NUQVLEjEVWScSGIExKVUJJTktPIERJUEwgSU5HCitTVEFSxIxFVknEhiBNSUxBTgorU1RBUsSMRVZJxIYgTUlMQU4KK1NUQVLEjEVWScSGIE1JTEFOCitTVEFSxIxFVknEhiBNSUxBTgorU1RBUsSMRVZJxIYgTUlMSUNBCitTVEFSxIxFVknEhiBNSUxJQ0EKK1NUQVLEjEVWScSGIE1JTEtBCitTVEFSxIxFVknEhiBNSUxPVkFOCitTVEFSxIxFVknEhiBNSU9EUkFHCitTVEFSxIxFVknEhiBNSVJLTworU1RBUsSMRVZJxIYgTUlSS08KK1NUQVLEjEVWScSGIE1JUktPCitTVEFSxIxFVknEhiBOSUtPTEEKK1NUQVLEjEVWScSGIE9MR0EKK1NUQVLEjEVWScSGIFBBVkxFCitTVEFSxIxFVknEhiBSVURPTEYKK1NUQVLEjEVWScSGIFNUQU1FTktBCitTVEFSxIxFVknEhiBTVEFOS08KK1NUQVLEjEVWScSGIFNUSVBPCitTVEFSxIxFVknEhiBTVE9KQU4KK1NUQVLEjEVWScSGIFZMQVNUSU1JUgorU1RBUkHEjEVLIMW9RUxKS08KK1NUQVJBxIxFSyBKT8W9RUYKK1NUQVJBxIxFSyBKT1ZBTgorU1RBUkVWScSGIE5JS09MQQorU1RBUkkgREFOSUVMCitTVEFSSSBMSVZJSkEKK1NUQVJJxIYgSVZBTgorU1RBUk9WScSGIEJPUklWT0ogRFIKK1NUQVJPVknEhiBCUkFOS08KK1NUQVJPVknEhiBNQVJJSkEKK1NUQVJPVknEhiBNSUxBTgorU1RBUk9WScSGIFBSRURSQUcKK1NUQVJPVknEhiBSQURPTUlSCitTVEFST1ZJxIYgUkFTVElTTEFWCitTVEFST1ZJxIYgWkRSQVZLTworU1RBUk9WTEFIIE1MQURFTgorU1RBVkVOT1YgxJBPUsSQRQorU1RBVkpFTCBNTEFERU4KK1NUQVZSRVZTS0kgQk9HREFOCitTVEFWUknEhiBJTE9OS0EKK1NUQVZSScSGIFNUQU5PSkUKK1NUQVZST1YgREFOSUNBCitTVEXEhiBNSVRBUgorU1RFxIYgVkFTSUxJSkUKK1NURUZBTiBJVkFOCitTVEVGQU4gTEpVQk9NSVJBCitTVEVGQU5JREVTIEpVTElKRQorU1RFRkFOSURFUyBMSlVERVZJVAorU1RFRkFOSURJUyBLSVJJQUtJCitTVEVGQU5KVUsgTklLT0xBCitTVEVGQU5PViBCTEFHT0pFCitTVEVGQU5PViBMSlVCT01JUgorU1RFRkFOT1YgTkFEQQorU1RFRkFOT1ZJxIYgxb1BUktPCitTVEVGQU5PVknEhiDFvUlLQQorU1RFRkFOT1ZJxIYgxb1JS0EKK1NURUZBTk9WScSGIMW9SUtBCitTVEVGQU5PVknEhiDFvUlWS08KK1NURUZBTk9WScSGIMW9SVZPUkFECitTVEVGQU5PVknEhiDFvUlWT1RBCitTVEVGQU5PVknEhiDEkE9SxJBFCitTVEVGQU5PVknEhiDEkFVSSUNBIERSIExFS0FSCitTVEVGQU5PVknEhiBBTEVLU0FOREFSCitTVEVGQU5PVknEhiBBTEVLU0FOREFSCitTVEVGQU5PVknEhiBBTkEKK1NURUZBTk9WScSGIEFOR0VMSU5BCitTVEVGQU5PVknEhiBBTktBCitTVEVGQU5PVknEhiBCT0dEQU4KK1NURUZBTk9WScSGIEJPR09MSlVCCitTVEVGQU5PVknEhiBCT1JJVk9KRQorU1RFRkFOT1ZJxIYgQk9SSVZPSgorU1RFRkFOT1ZJxIYgQlJBTklTTEFWCitTVEVGQU5PVknEhiBCUkFOS0EKK1NURUZBTk9WScSGIEJSQU5LTworU1RFRkFOT1ZJxIYgREFOSUNBCitTVEVGQU5PVknEhiBEQU5JQ0EKK1NURUZBTk9WScSGIERBTklMS0EKK1NURUZBTk9WScSGIERBUklOS0EKK1NURUZBTk9WScSGIERFxb1FCitTVEVGQU5PVknEhiBERUpBTgorU1RFRkFOT1ZJxIYgRFJBR0FOQQorU1RFRkFOT1ZJxIYgRFJBR0FOCitTVEVGQU5PVknEhiBEUkFHQU4KK1NURUZBTk9WScSGIERSQUdBTgorU1RFRkFOT1ZJxIYgRFJBR0FOCitTVEVGQU5PVknEhiBEUkFHQU4KK1NURUZBTk9WScSGIERSQUdJxaBBCitTVEVGQU5PVknEhiBEUkFHScWgQQorU1RFRkFOT1ZJxIYgRFJBR0lDQQorU1RFRkFOT1ZJxIYgRFJBR0lDQQorU1RFRkFOT1ZJxIYgRFJBR0lDQQorU1RFRkFOT1ZJxIYgRFJBR09MSlVCCitTVEVGQU5PVknEhiBEUkFHT0xKVUIKK1NURUZBTk9WScSGIERSQUdVVElOCitTVEVGQU5PVknEhiBEUkFHVVRJTgorU1RFRkFOT1ZJxIYgRFXFoEFOCitTVEVGQU5PVknEhiBEVcWgS08KK1NURUZBTk9WScSGIEVSxb1JS0EKK1NURUZBTk9WScSGLUdFUknEhiBaT1JLQQorU1RFRkFOT1ZJxIYgR09SQU4KK1NURUZBTk9WScSGIEdPUkRBTgorU1RFRkFOT1ZJxIYgSVZBTgorU1RFRkFOT1ZJxIYgSkVMSUNBCitTVEVGQU5PVknEhiBKRUxJQ0EKK1NURUZBTk9WScSGIEpPU0lGCitTVEVGQU5PVknEhiBKT1ZBTktBCitTVEVGQU5PVknEhiBKT1ZBTgorU1RFRkFOT1ZJxIYgSk9WQU4KK1NURUZBTk9WScSGIEpPWkVGSU5BCitTVEVGQU5PVknEhiBKVUxJSkFOQQorU1RFRkFOT1ZJxIYgS0FSQU5GSUxBCitTVEVGQU5PVknEhiBLQVRJQ0EKK1NURUZBTk9WScSGIExBWkFSCitTVEVGQU5PVknEhiBMRU5LQQorU1RFRkFOT1ZJxIYgTEpVQk9NSVIgRFIKK1NURUZBTk9WScSGIExKVUJPTUlSCitTVEVGQU5PVknEhiBMVUNJSkEKK1NURUZBTk9WScSGIE1BUklKQQorU1RFRkFOT1ZJxIYgTUFSSU5LTworU1RFRkFOT1ZJxIYgTUFSS08KK1NURUZBTk9WScSGIE1BUlRBCitTVEVGQU5PVknEhiBNQVJUQQorU1RFRkFOT1ZJxIYgTUlIQUpMTworU1RFRkFOT1ZJxIYgTUlMQU4KK1NURUZBTk9WScSGIE1JTEFOCitTVEVGQU5PVknEhiBNSUxBTgorU1RFRkFOT1ZJxIYgTUlMQU4KK1NURUZBTk9WScSGIE1JTEFOCitTVEVGQU5PVknEhiBNSUxBTgorU1RFRkFOT1ZJxIYgTUlMRU5BCitTVEVGQU5PVknEhiBNSUxFTgorU1RFRkFOT1ZJxIYgTUlMSUNBCitTVEVGQU5PVknEhiBNSUxPxaAKK1NURUZBTk9WScSGIE1JTE/FoAorU1RFRkFOT1ZJxIYgTUlMT0pFCitTVEVGQU5PVknEhiBNSUxPVkFOCitTVEVGQU5PVknEhiBNSUxVVElOIERJUEwgUFJBVk5JSworU1RFRkFOT1ZJxIYgTUlMVVRJTgorU1RFRkFOT1ZJxIYgTUlPTUlSCitTVEVGQU5PVknEhiBNSVJBCitTVEVGQU5PVknEhiBNSVJKQU5BCitTVEVGQU5PVknEhiBNSVJLTworU1RFRkFOT1ZJxIYgTUlSS08KK1NURUZBTk9WScSGIE1JUktPCitTVEVGQU5PVknEhiBNSVJPU0xBVgorU1RFRkFOT1ZJxIYgTUlST1NMQVYKK1NURUZBTk9WScSGIE1JUk9TTEFWCitTVEVGQU5PVknEhiBNSVJPU0xBVgorU1RFRkFOT1ZJxIYgTkFEQQorU1RFRkFOT1ZJxIYgTkVERUxKS0EKK1NURUZBTk9WScSGIE5JS09MQQorU1RFRkFOT1ZJxIYgTklLT0xBCitTVEVGQU5PVknEhiBOSUtPTEEKK1NURUZBTk9WScSGIE5JS09MQQorU1RFRkFOT1ZJxIYgUEFOVEEKK1NURUZBTk9WScSGIFBBVUxBCitTVEVGQU5PVknEhiBQRVRBUgorU1RFRkFOT1ZJxIYgUkFETUlMQQorU1RFRkFOT1ZJxIYgUkFETUlMQQorU1RFRkFOT1ZJxIYgUkFET1NMQVYKK1NURUZBTk9WScSGIFJVxb1JQ0EKK1NURUZBTk9WScSGIFNBTkpBCitTVEVGQU5PVknEhiBTTEFWSUNBIERSCitTVEVGQU5PVknEhiBTTEFWS0EKK1NURUZBTk9WScSGIFNMQVZLTworU1RFRkFOT1ZJxIYgU0xBVktPCitTVEVGQU5PVknEhiBTTE9CT0RBTiBQUk9GRVNPUgorU1RFRkFOT1ZJxIYgU0xPQk9EQU4KK1NURUZBTk9WScSGIFNNSUxKQQorU1RFRkFOT1ZJxIYgU01JTEpLQQorU1RFRkFOT1ZJxIYgU05Fxb1BTkEKK1NURUZBTk9WScSGIFNUQU5JxaBBCitTVEVGQU5PVknEhiBTVEFOS08KK1NURUZBTk9WScSGIFNURVZBTgorU1RFRkFOT1ZJxIYgU1RFVkFOCitTVEVGQU5PVknEhiBTVEVWQU4KK1NURUZBTk9WScSGIFNUSkVQQU4KK1NURUZBTk9WScSGIFNUT0pBTkEKK1NURUZBTk9WScSGIFNVWkFOQQorU1RFRkFOT1ZJxIYgU1ZFVElTTEFWCitTVEVGQU5PVknEhiBTVkVUT1pBUgorU1RFRkFOT1ZJxIYgU1ZFVE9aQVIKK1NURUZBTk9WScSGIFRBVEpBTkEKK1NURUZBTk9WScSGLVRJTEnEhiBESVZOQQorU1RFRkFOT1ZJxIYgVE9ET1IKK1NURUZBTk9WScSGIFRPTUlTTEFWCitTVEVGQU5PVknEhiBWQVNBCitTVEVGQU5PVknEhiBWQVNBCitTVEVGQU5PVknEhiBWQVNJTElKRQorU1RFRkFOT1ZJxIYgVkVSQQorU1RFRkFOT1ZJxIYgVkVSQQorU1RFRkFOT1ZJxIYgVkVSSUNBCitTVEVGQU5PVknEhiBWRVNOQQorU1RFRkFOT1ZJxIYgVkVTTkEKK1NURUZBTk9WScSGIFZJVE9NSVIKK1NURUZBTk9WScSGIFZMQURJQ0EKK1NURUZBTk9WScSGIFZMQURJTUlSCitTVEVGQU5PVknEhiBWTEFESU1JUgorU1RFRkFOT1ZJxIYgVkxBRElNSVIKK1NURUZBTk9WScSGIFZMQURJTUlSCitTVEVGQU5PVknEhiBWTEFKS08KK1NURUZBTk9WScSGIFZPSklTTEFWQQorU1RFRkFOT1ZJxIYgVk9KSVNMQVYKK1NURUZBTk9WScSGIFZPSklTTEFWCitTVEVGQU5PVknEhiBaT1JBTgorU1RFRkFOT1ZJxIYgWk9SQU4KK1NURUZBTk9WU0tBIFpPUktBCitTVEVGQU5PVlNLSSBMRVZLTworU1RFRkFOT1ZTS0kgTUVUT0RJSkUKK1NURUZBTk9WU0tJIE1JTE9SQUQKK1NURUZBTk9WU0tJIFNUQU1FTgorU1RFR0nEhiBERUpBTgorU1RFR0nEhiBJVkFOCitTVEVHScSGIE5JS09MQQorU1RFR05KQUnEhiBPTEdBCitTVEVHTkpBSknEhiBWTEFESU1JUgorU1RFSknEhiBBUkFOS0EKK1NURUpJxIYgSkVMRU5BCitTVEVKScSGIEtPU1RBCitTVEVKScSGIE5FVkVOS0EKK1NURUpJxIYgUlXFvUEKK1NURUpJTiDEkE9SxJBFCitTVEVKSU4gQk9SSVNMQVYKK1NURUpJTiBEVcWgQU4gRElQTCBJTkcKK1NURUpJTiBKRUxFTkEKK1NURUpJTiBKT1ZBTktBCitTVEVKSU4gTEpVQklDQQorU1RFSklOIFJVxb1JQ0EKK1NURUpJTiBTQcWgQQorU1RFSklOIFNSxJBBTgorU1RFTEEgVkxBRElNSVJBCitTVEVMSkEgTk9WQUsKK1NURUxKScSGIE1JTElWT0pFCitTVEVMSknEhiBNSUxVTgorU1RFTEtJxIYgxJBVUklDQQorU1RFTEtJxIYgRFJBR0lDQQorU1RFTEtJxIYgTUlMSVZPSgorU1RFTEtJxIYgUkFESUNBCitTVEVMS0nEhiBSRUxKQSBESVBMIElORworU1RFTEtJxIYgU1ZFVE9aQVIKK1NURUxLScSGIFpMQVRPTUlSCitTVEVQQU7EjEVWIEFOSUNBCitTVEVQQU7EjEVWIFNURVZBTgorU1RFUEFOxIxFViBWTEFESVNMQVYKK1NURVBBTsSMRVYgWk9SQU4KK1NURVBBTsSMRVYgWk9SQQorU1RFUEFOxIxFViBaT1JJQ0EKK1NURVBBTsSMRVZJxIYgTUlMSUNBCitTVEVQQU7EjEVWScSGIE1JT0RSQUcKK1NURVBBTsSMRVZJxIYgU09GSUpBCitTVEVQQU7EjEVWScSGIFNQQVNPSkUKK1NURVBBTknEhiBNSUxJU0FWCitTVEVQQU5JxIYgUFJFRFJBRworU1RFUEFOT1YgxJBPUsSQRQorU1RFUEFOT1YgxJBPUsSQRQorU1RFUEFOT1YgxJBPUsSQRQorU1RFUEFOT1YgQUxFS1NBTkRBUgorU1RFUEFOT1YgQUxFS1NBTkRSQQorU1RFUEFOT1YgQU7EkEVMS0EKK1NURVBBTk9WIEJSQU5JU0xBVgorU1RFUEFOT1YgQlJBTktPCitTVEVQQU5PViBCUkFOS08KK1NURVBBTk9WIERSQUdJxaBBCitTVEVQQU5PViBEUkFHSUNBCitTVEVQQU5PViBEVcWgQU4KK1NURVBBTk9WIERVxaBBTgorU1RFUEFOT1YgRU1JTAorU1RFUEFOT1YgSk9MRQorU1RFUEFOT1YgS0FUSUNBCitTVEVQQU5PViBMSklMSkFOQQorU1RFUEFOT1YgTEpVQk9NSVIgRFIKK1NURVBBTk9WIExKVUJPTUlSCitTVEVQQU5PViBNQUtTQQorU1RFUEFOT1YgTUFSQQorU1RFUEFOT1YgTUlMQU5LQQorU1RFUEFOT1YgTUlMQU5LQQorU1RFUEFOT1YgTUlMQU4KK1NURVBBTk9WIE1JTEFOCitTVEVQQU5PViBNSUxFVkEKK1NURVBBTk9WIE1JTElWT0oKK1NURVBBTk9WIE1JTElWT0oKK1NURVBBTk9WIE1JTElWT0oKK1NURVBBTk9WIE1JTE9WQU4KK1NURVBBTk9WIE5JS09MQQorU1RFUEFOT1YgUEFKQQorU1RFUEFOT1YgUEFKQQorU1RFUEFOT1YgUEVUQVIgRFIKK1NURVBBTk9WIFBFVEFSCitTVEVQQU5PViBQSVJPxaBLQQorU1RFUEFOT1YgUkFESVZPSgorU1RFUEFOT1YgUkFET1ZBTgorU1RFUEFOT1YgU0FWQQorU1RFUEFOT1YgU0FWQQorU1RFUEFOT1YgU0VSR0lKRQorU1RFUEFOT1YgU0xPQk9EQU4KK1NURVBBTk9WIFNWRVRJU0xBVgorU1RFUEFOT1YgVkFTSUxJSkUKK1NURVBBTk9WIFZFTElNSVIKK1NURVBBTk9WIFZFU05BCitTVEVQQU5PViBWSURBCitTVEVQQU5PViBWSURPU0FWQQorU1RFUEFOT1YgVk9KTkEKK1NURVBBTk9WIFpEUkFWS08KK1NURVBBTk9WScSGIMSQVVLEkElDQQorU1RFUEFOT1ZJxIYgQlJBVElTTEFWCitTVEVQQU5PVknEhiBEUkFHScWgQQorU1RFUEFOT1ZJxIYgRFJBR0lDQQorU1RFUEFOT1ZJxIYgTUlMT1JBRAorU1RFUEFOT1ZJxIYgTkVCT0rFoEEKK1NURVBBTk9WScSGIFNMT0JPREFOCitTVEVQQU5PVknEhiBTTkXFvUFOQQorU1RFUEFOT1ZJxIYgU1RFVkFOCitTVEVQQU5PVknEhiBTVkVUTEFOQQorU1RFUEnEhiBKT1NJUAorU1RFUEnEhiBNQVJJSkEKK1NURVJJTyDEkE9SxJBFCitTVEVSSU8gQlJBTktPIERSCitTVEVSUElOIFpWT05JTUlSCitTVEVWxIxJxIYgU0FWQVRJSkUKK1NURVZBTsSMRVYgQU5LSUNBCitTVEVWQU7EjEVWIE1JTElDQQorU1RFVkFOxIxFViBNSUxPUkFECitTVEVWQU7EjEVWIE9MR0EKK1NURVZBTsSMRVZJxIYgTEpJTEpBTkEKK1NURVZBTkRJxIYgxJBVUk8KK1NURVZBTkRJxIYgTUlMSUNBCitTVEVWQU5EScSGIFJBREUKK1NURVZBTknEhiBCT1JJVk9KRQorU1RFVkFOScSGIERSQUdPU0xBVgorU1RFVkFOScSGIElWQU4KK1NURVZBTknEhiBNSU9EUkFHCitTVEVWQU5JxIYgU0xPQk9EQU4KK1NURVZBTknEhiBWVUtPTUFOCitTVEVWQU5PViDFvUlWQU4KK1NURVZBTk9WIERSQUdBTkEKK1NURVZBTk9WIEVNSUxLQQorU1RFVkFOT1YgR0FWUkEKK1NURVZBTk9WIEpFTEVOQQorU1RFVkFOT1YgTEpJTEpBTkEKK1NURVZBTk9WIE1BRExFTgorU1RFVkFOT1YgTUlMT1JBRAorU1RFVkFOT1YgTUlMT1ZBTgorU1RFVkFOT1YgTUlMVVRJTgorU1RFVkFOT1YgTUxBREVOCitTVEVWQU5PViBNTEFERU4KK1NURVZBTk9WIE5BVEFMSUpBCitTVEVWQU5PViBTVEFOQQorU1RFVkFOT1YgU1ZFVE9aQVIKK1NURVZBTk9WIFZFU0VMSU4KK1NURVZBTk9WIFZMQURJTUlSCitTVEVWQU5PViBaTEFUT0pFCitTVEVWQU5PVknEhiDFvUlWQURJTgorU1RFVkFOT1ZJxIYgxb1JVktBCitTVEVWQU5PVknEhiDFvUlWT1JBRAorU1RFVkFOT1ZJxIYgQURBTQorU1RFVkFOT1ZJxIYgQUxFS1NBTkRBUgorU1RFVkFOT1ZJxIYgQk/FoEtPCitTVEVWQU5PVknEhiBCT1JBCitTVEVWQU5PVknEhiBCUkFOSVNMQVZBCitTVEVWQU5PVknEhiBEQU5JQ0EKK1NURVZBTk9WScSGIERFU0lNSVIKK1NURVZBTk9WScSGIERSQUdJxaBBCitTVEVWQU5PVknEhiBEUkFHSUNBCitTVEVWQU5PVknEhiBEUkFHT1NMQVYKK1NURVZBTk9WScSGIERVxaBBTiBEUgorU1RFVkFOT1ZJxIYgR09SQU4KK1NURVZBTk9WScSGIEdPUkFOCitTVEVWQU5PVknEhiBKQVJPU0xBVgorU1RFVkFOT1ZJxIYgSk9WQU4KK1NURVZBTk9WScSGIExKVUJJxaBBCitTVEVWQU5PVknEhiBNSUxBRElOS0EKK1NURVZBTk9WScSGIE1JTEFESU4KK1NURVZBTk9WScSGIE1JTEVOS08KK1NURVZBTk9WScSGIE1JTEUKK1NURVZBTk9WScSGIE1JTElWT0oKK1NURVZBTk9WScSGIE1JTEtBCitTVEVWQU5PVknEhiBNSUxPTEpVQgorU1RFVkFOT1ZJxIYgTUlPTUlSCitTVEVWQU5PVknEhiBNSVJBCitTVEVWQU5PVknEhiBNTEFERU5LQQorU1RFVkFOT1ZJxIYtTkXEhkFLIFNMT0JPREFOS0EgRElQTCBJTkcKK1NURVZBTk9WScSGIE5JS09TQVZBCitTVEVWQU5PVknEhiBSQURPU0xBVgorU1RFVkFOT1ZJxIYgUkFKS08KK1NURVZBTk9WScSGIFJBTktPIERSIExFS0FSCitTVEVWQU5PVknEhiBSQVRLTworU1RFVkFOT1ZJxIYgUlXFvUEKK1NURVZBTk9WScSGIFNBVkEKK1NURVZBTk9WScSGIFNMT0JPREFOCitTVEVWQU5PVknEhiBTTkXFvUFOQQorU1RFVkFOT1ZJxIYgU1RPSkFESU4KK1NURVZBTk9WScSGIFNWSUpFVExBTkEKK1NURVZBTk9WScSGIFRPTUlTTEFWCitTVEVWQU5PVknEhiBUT01JU0xBVgorU1RFVkFOT1ZJxIYgVkVSQQorU1RFVkFOT1ZJxIYgVkxBREEKK1NURVZBTk9WScSGIFZMQVNUSU1JUgorU1RFVkFOT1ZJxIYgWkxBVEtPIERSCitTVEVWQU5PVknEhiBaT1JBTgorU1RFVkFOT1ZJxIYgWk9SSUNBCitTVEVWQU5PVlNLSSBHT8WgRQorU1RFVkFOT1ZTS0kgU0xPQk9EQU4KK1NURVZJxIYgRE9CUklWT0pFCitTVEVWScSGIERVxaBBTgorU1RFVknEhiBHT1JEQU5BCitTVEVWScSGIExKVUJJxaBBCitTVEVWScSGIE5JS09MQQorU1RFVknEhiBQRVRBUgorU1RFVknEhiBTTE9CT0RBTgorU1RFVknEhiBTTkXFvUFOQQorU1RFVknEhiBTUkJBCitTVEVWScSGIFZFTElNSVIKK1NURVZJxIYgVk9KSVNMQVYKK1NURVZJTiBCT0dEQU4KK1NURVZJTiBCT1JJU0xBVgorU1RFVklOIE5BREEgRElQTCBJTkcKK1NURVZJTiBSQURPSkxBCitTVEVWT1ZJxIYgQU5LQQorU1RFVk9WScSGIEJPxb1JREFSCitTVEVWT1ZJxIYgQlJBTklTTEFWCitTVEVWT1ZJxIYgSVZBTiBESVBMIFBSQVZOSUsKK1NURVZPVknEhi1MVUtJxIYgUkFETUlMQQorU1RFVk9WScSGIE1JTE9TQVZBCitTVEVWT1ZJxIYgVk9KSU4KK1NUSUpBxIxJxIYgQlJBTktPCitTVElKQcSMScSGIFBBVkxFCitTVElKQcSMScSGIFNWRVRPWkFSCitTVElKQUtPVknEhiBEUkFHQU4KK1NUSUpFUE9WScSGIEFMRUtTQQorU1RJSkVQT1ZJxIYgTUlMSUpBTkEKK1NUSUpPVknEhiBJTElKQQorU1RJSk9WScSGIEpFTElTQVZFVEEKK1NUSUpPVknEhiBNQVJBCitTVElKT1ZJxIYgTUlMQU4KK1NUSUtJxIYgQklMSkFOQQorU1RJS0nEhiBKT1ZBTgorU1RJS0nEhiBNT01JUktBCitTVElLT1ZJxIYgUk9TQQorU1RJTElOT1ZJxIYgS09WSU5LQQorU1RJTElOT1ZJxIYgWlZPTklNSVIgRElQTCBJTkcKK1NUSVBBTsSMScSGIFNUSVBBTgorU1RJUEFOT1ZJxIYgQkpFTElDQQorU1RJUEFOT1ZJxIYgR09KS08KK1NUSVBFVEnEhiBEUkFHQU4KK1NUSVBJxIYgQU5EUklKQQorU1RJUEnEhiBBTlRFCitTVElQScSGIEJVREUKK1NUSVBJxIYgR0laRUxBCitTVElQScSGIEpBxaBBCitTVElQScSGIE5BREEKK1NUSVBJxIYgT0xJVkVSQQorU1RJUEnEhiBTT05KQQorU1RJUEnEhiBWRUxKS08KK1NUSVNLQUxPIFRJSE9NSVIKK1NUSkVMSkEgREFOSUNBCitTVEpFUMSMRVZJxIYgQU5JQ0EKK1NUSkVQQU5PVknEhiBCT8W9TworU1RKRVBBTk9WScSGIEJPUklWT0pFCitTVEpFUEFOT1ZJxIYgQ1ZFSkEKK1NUSkVQQU5PVknEhiBKQVNOQQorU1RKRVBBTk9WScSGIEpFTEVOQQorU1RKRVBBTk9WScSGIEpFTElTQVZFVEEKK1NUSkVQQU5PVknEhiBKT1ZJQ0EKK1NUSkVQQU5PVknEhiBTVEFOS0EKK1NUSkVQQU5PVknEhiBUT01JU0xBVgorU1RKRVBJxIYgSk9TSVAKK1NUSkVQScSGIE1JSk8KK1NUT8WgScSGIERSQUdBTgorU1RPxaBJxIYgRFJBR0FOCitTVE/FoEnEhiBEUkFHQU4KK1NUT8WgScSGIERVxaBBTgorU1RPxaBJxIYgRFXFoEFOCitTVE/FoEnEhiBEVcWgQU4KK1NUT8WgScSGIEpFTEVOQQorU1RPxaBJxIYgTUlMSUNBCitTVE/FoEnEhiBORURFTEpLTworU1RPxaBJxIYgUkFESVZPSgorU1RPxaBJxIYgU0xBVknFoEEKK1NUT8WgScSGIFNUT0pBRElOCitTVE/FoEnEhiBTVE9KQU4KK1NUT8WgScSGIFRBTkpBCitTVE/FoEnEhiBUT01JU0xBVgorU1RPxaBJxIYgVkxBRElNSVIKK1NUT8WgScSGIFZPSklTTEFWCitTVE/FoEnEhiBaT1JBTgorU1RPxb1JTknEhiBEUkFHSU5KQQorU1RPRVNLSSBKRVZUSU0KK1NUT0dPViBBTkFUT0xJSiBESVBMIElORworU1RPSUxKS09WScSGIMW9SUtBCitTVE9JTEpLT1ZJxIYgRFJBR09TTEFWCitTVE9JTEpLT1ZJxIYgSkVMSUNBCitTVE9JTEpLT1ZJxIYgSk9WQU4KK1NUT0lMSktPVknEhiBNSUxPUkFECitTVE9JTEpLT1ZJxIYgTkVOQUQKK1NUT0lMSktPVknEhiBTVE9KQU4KK1NUT0lMS09WU0tJIEJPUklTCitTVE9JU0FWTEpFVknEhiDEkFVKQQorU1RPSVNBVkxKRVZJxIYgTUnEhk8KK1NUT0rEjEVWIE1BUklKQQorU1RPSsSMRVZJxIYgSUxJSkEKK1NUT0rEjEVWScSGIFNUQU5PSktPCitTVE9KxIxFVlNLSSBCTEFHT0pBCitTVE9KxIxFVlNLSSBUT01JU0xBVgorU1RPSsSMRVZTS0kgVE9ORQorU1RPSsSMScSGIMSQT1LEkEUKK1NUT0rEjEnEhiDEkFVSTworU1RPSsSMScSGIERFU0lNSVIKK1NUT0rEjEnEhiBEVcWgQU4KK1NUT0rEjEnEhiBKRUxFTkEKK1NUT0rEjEnEhiBNSUxBTgorU1RPSsSMScSGIE1JTEFOCitTVE9KxIxJxIYgTUlMRU5LTworU1RPSsSMScSGIE1JUk9TTEFWCitTVE9KxIxJxIYgTklLT0xBCitTVE9KxIxJxIYgU1JFxIZLTworU1RPSsSMScSGIFNSRVRLTworU1RPSsSMSU5PVknEhiBNQVJLTworU1RPSsSMSU5PVknEhiBTSU1PCitTVE9KxaBJxIYgxb1JVkFOCitTVE9KxaBJxIYgxJBPUsSQRQorU1RPSsWgScSGIMSQT1LEkEUKK1NUT0rFoEnEhiBCT0pLQQorU1RPSsWgScSGIERBTsSMSUtBCitTVE9KxaBJxIYgRFJBR0kKK1NUT0rFoEnEhiBEVcWgQU5LQQorU1RPSsWgScSGIEpFTEVOQQorU1RPSsWgScSGIEpPVkFOCitTVE9KxaBJxIYgSk9WQU4KK1NUT0rFoEnEhiBMQVpBUgorU1RPSsWgScSGIE1BUklKQQorU1RPSsWgScSGIE1BUklKQQorU1RPSsWgScSGIE1BUklKQQorU1RPSsWgScSGIE1JTEFOIERJUEwgSU5HCitTVE9KxaBJxIYgTUlMQU4KK1NUT0rFoEnEhiBNSUxBTgorU1RPSsWgScSGIE1JTElWT0oKK1NUT0rFoEnEhiBNSUxLQQorU1RPSsWgScSGIE1JTE/FoAorU1RPSsWgScSGIE1JUkEKK1NUT0rFoEnEhiBOQURBCitTVE9KxaBJxIYgTkFEQQorU1RPSsWgScSGIE5FR09WQU4KK1NUT0rFoEnEhiBORU5BRAorU1RPSsWgScSGIE5FVkVOS0EKK1NUT0rFoEnEhiBORVZFTktBCitTVE9KxaBJxIYgTklLT0xBCitTVE9KxaBJxIYgT0xHQQorU1RPSsWgScSGIFBFVEFSCitTVE9KxaBJxIYgUFJPS09QSUpFCitTVE9KxaBJxIYgUFJWT1NMQVYKK1NUT0rFoEnEhiBTQVZBCitTVE9KxaBJxIYgU0FWQQorU1RPSsWgScSGIFNBVkEKK1NUT0rFoEnEhiBTTEFWSUNBCitTVE9KxaBJxIYgU01JTEpBCitTVE9KxaBJxIYgU09GSUpBCitTVE9KxaBJxIYgU1JCSVNMQVYKK1NUT0rFoEnEhiBTVEFOT0pFCitTVE9KxaBJxIYgU1RFVkFOCitTVE9KxaBJxIYgVEFUSkFOQQorU1RPSsWgScSGIFZFUkEKK1NUT0rFoEnEhiBWSURPU0FWQQorU1RPSsWgScSGIFZMQURJTUlSCitTVE9KxaBJxIYgVkxBRElNSVIKK1NUT0rFoEnEhiBWTEFESU1JUgorU1RPSsWgScSGIFZPSklTTEFWCitTVE9KxaBJxIYgVlVKQURJTiBESVBMIElORworU1RPSsWgScSGIFpEUkFWS08KK1NUT0rFoElOIMW9QVJLTworU1RPSsWgSU4gxJBPUsSQRQorU1RPSsWgSU4gxJBVUsSQQQorU1RPSsWgSU4gxJBVUsSQSU5LQQorU1RPSsWgSU4gQk9HT1NMT1YKK1NUT0rFoElOIERJTUlUUklKRQorU1RPSsWgSU4gRE9CUklWT0oKK1NUT0rFoElOIERSQUdBTgorU1RPSsWgSU4gRFXFoEFOCitTVE9KxaBJTiBFTUlMCitTVE9KxaBJTiBFU1RFUgorU1RPSsWgSU4gR0FWUkEKK1NUT0rFoElOIEdST1pEQU5BCitTVE9KxaBJTiBKT1ZBTgorU1RPSsWgSU4gSk9WQU4KK1NUT0rFoElOIExBWkFSCitTVE9KxaBJTiBNSUxBTktBCitTVE9KxaBJTiBNSUxBTgorU1RPSsWgSU4gTUlMQU4KK1NUT0rFoElOIE1JTElDQQorU1RPSsWgSU4gTUlMT1JBRAorU1RPSsWgSU4gTUlMT1ZBTgorU1RPSsWgSU4gTklLT0xBCitTVE9KxaBJTiBPTEdBCitTVE9KxaBJTiBSQURBCitTVE9KxaBJTiBSQURPU0xBVgorU1RPSsWgSU4gU0FWQQorU1RPSsWgSU4gU0FWQQorU1RPSsWgSU4gU0lOScWgQQorU1RPSsWgSU4gU1ZFVE9aQVIKK1NUT0rFoElOIFRPRE9SCitTVE9KxaBJTiBWQVNBCitTVE9KxaBJTiBWRVJBCitTVE9KxaBJTiBaTEFUQQorU1RPSkEgTEpJTEpBTkEKK1NUT0pBIE1BUklKQQorU1RPSkEgTUlMQU5BCitTVE9KQSBTTEHEkEFOQQorU1RPSkEgU0xPQk9EQU4gRFIgTEVLQVIKK1NUT0pBIFZPSklTTEFWCitTVE9KQcSMScSGIERJTUlUUklKRQorU1RPSkHEjEnEhiBNSUxBTgorU1RPSkHEjEnEhiBORU5BRAorU1RPSkHEjEnEhiBWTEFESVNMQVYKK1NUT0pBRElOT1YgUkFESVZPSgorU1RPSkFESU5PVknEhiBBTklDQQorU1RPSkFESU5PVknEhiBCT1JJU0xBVkEKK1NUT0pBRElOT1ZJxIYgQk9SSVZPSgorU1RPSkFESU5PVknEhiBESU1JVFJJSkUKK1NUT0pBRElOT1ZJxIYgRE9CUklMQQorU1RPSkFESU5PVknEhiBEUkFHQU5BIExFS0FSCitTVE9KQURJTk9WScSGIERSQUdJTkpBCitTVE9KQURJTk9WScSGIERSQUdPU0xBVgorU1RPSkFESU5PVknEhiBMQVpBUgorU1RPSkFESU5PVknEhiBMSlVCScWgQQorU1RPSkFESU5PVknEhiBNSUxBTgorU1RPSkFESU5PVknEhiBNSUxBTgorU1RPSkFESU5PVknEhiBNSUxFVkEKK1NUT0pBRElOT1ZJxIYgTUlMSUNBCitTVE9KQURJTk9WScSGIE1JTElOS08KK1NUT0pBRElOT1ZJxIYgTUlMS0EKK1NUT0pBRElOT1ZJxIYgTUlMT0pFCitTVE9KQURJTk9WScSGIFBFVEFSCitTVE9KQURJTk9WScSGIFBFVEFSCitTVE9KQURJTk9WScSGIFBVTknFoEEKK1NUT0pBRElOT1ZJxIYgU0xBVktPCitTVE9KQURJTk9WScSGIFNMT0JPREFOCitTVE9KQURJTk9WScSGIFNMT0JPREFOCitTVE9KQURJTk9WScSGIFNPRklKQQorU1RPSkFESU5PVknEhiBTT0ZJSkEKK1NUT0pBRElOT1ZJxIYgU1RFVkFOCitTVE9KQURJTk9WScSGIFRBVEpBTkEKK1NUT0pBRElOT1ZJxIYgVkxBREVUQQorU1RPSkFLIFpPUklDQQorU1RPSkFLT1YgQk/FvUlEQVIKK1NUT0pBS09WIE1JTE9SQUQKK1NUT0pBS09WIFNSQk9TTEFWCitTVE9KQUtPViBTUkJPU0xBVgorU1RPSkFLT1ZJxIYgxJBVS0FOCitTVE9KQUtPVknEhiDEkFVSTworU1RPSkFLT1ZJxIYgQlJBTklTTEFWQQorU1RPSkFLT1ZJxIYgRElWTkEKK1NUT0pBS09WScSGIERSQUdBTgorU1RPSkFLT1ZJxIYgSkVMS0EKK1NUT0pBS09WScSGIEtPU1RBCitTVE9KQUtPVknEhiBMQVpBUgorU1RPSkFLT1ZJxIYgTUFSR0lUQQorU1RPSkFLT1ZJxIYgTUlIQUpMTworU1RPSkFLT1ZJxIYgTUlMQURJTktBCitTVE9KQUtPVknEhiBNSUxBCitTVE9KQUtPVknEhiBNSUxFCitTVE9KQUtPVknEhiBNSUxJU0FWCitTVE9KQUtPVknEhiBNSUxPVkFOCitTVE9KQUtPVknEhiBOSUtPTEEKK1NUT0pBS09WScSGIFJBRE1JTEEKK1NUT0pBS09WScSGIFNBVkFOCitTVE9KQUtPVknEhiBTTEFWS08KK1NUT0pBS09WScSGIFNNSUxKQQorU1RPSkFLT1ZJxIYgU1RBTktPCitTVE9KQUtPVknEhiBTVEVWTworU1RPSkFLT1ZJxIYgU1ZFVE9aQVIKK1NUT0pBS09WScSGIFpPUkFOCitTVE9KQUtPVknEhiBaT1JBCitTVE9KQU7EjEVWIEdPUkRBTkEKK1NUT0pBTsSMRVYgSVZBTgorU1RPSkFOxIxFViBSQURPTUlSCitTVE9KQU7EjEVWIFNMQVZJQ0EKK1NUT0pBTsSMRVYgVkFTQQorU1RPSkFOxIxJxIYgVkxBREEKK1NUT0pBTkFDIEJSQU5LTworU1RPSkFOQUMgTUlMRQorU1RPSkFOQUMgTklLT0xBCitTVE9KQU5JxIYgQU5HRUxJTkEKK1NUT0pBTk9TS0kgRFXFoEFOCitTVE9KQU5PU0tJIEdBVlJJTAorU1RPSkFOT1YgQlJBTktPCitTVE9KQU5PViBCUkFOS08KK1NUT0pBTk9WIElWQU4KK1NUT0pBTk9WIE1JTE9WQU4KK1NUT0pBTk9WIE1JUkpBTkEKK1NUT0pBTk9WIE1MQURFTiBEUgorU1RPSkFOT1YgTkFEQQorU1RPSkFOT1YgTkFEQQorU1RPSkFOT1YgT0xHQQorU1RPSkFOT1YgUkFESVZPSkUKK1NUT0pBTk9WIFJBRE9WQU4KK1NUT0pBTk9WIFNBVkEKK1NUT0pBTk9WIFNBVkEKK1NUT0pBTk9WIFNFTktBCitTVE9KQU5PViBTVEFOS08KK1NUT0pBTk9WIFNURVZBTgorU1RPSkFOT1YgVkVSQQorU1RPSkFOT1YgVkxBRElNSVIKK1NUT0pBTk9WIFZVS0lDQQorU1RPSkFOT1YgWk9SQU4KK1NUT0pBTk9WScSGIMW9SVZLTworU1RPSkFOT1ZJxIYgxb1JVktPCitTVE9KQU5PVknEhiDFvUlWS08KK1NUT0pBTk9WScSGIMW9SVZPSklOCitTVE9KQU5PVknEhiDFvUlWT1JBRAorU1RPSkFOT1ZJxIYgxJBPUsSQRQorU1RPSkFOT1ZJxIYgxJBPUsSQRQorU1RPSkFOT1ZJxIYgxJBVUsSQSUNBCitTVE9KQU5PVknEhiDEkFVSQQorU1RPSkFOT1ZJxIYgQUNBCitTVE9KQU5PVknEhiBBTEVLU0FOREFSCitTVE9KQU5PVknEhiBBTEVLU0FOREFSCitTVE9KQU5PVknEhiBBTEVLU0FOREFSCitTVE9KQU5PVknEhiBBTEpPxaBBCitTVE9KQU5PVknEhiBBTkEKK1NUT0pBTk9WScSGLUJBTElOVCBCT8W9QU5BCitTVE9KQU5PVknEhiBCTEFHT0pFCitTVE9KQU5PVknEhiBCT8WgS08KK1NUT0pBTk9WScSGIEJPxaBLTworU1RPSkFOT1ZJxIYgQk/FoEtPCitTVE9KQU5PVknEhiBCT8W9SURBUgorU1RPSkFOT1ZJxIYgQk/FvUlEQVIKK1NUT0pBTk9WScSGIEJPQkFOCitTVE9KQU5PVknEhiBCT0dPTEpVQgorU1RPSkFOT1ZJxIYgQk9SSVNMQVZBCitTVE9KQU5PVknEhiBCT1JJU0xBVgorU1RPSkFOT1ZJxIYgQk9SSVZPSkUKK1NUT0pBTk9WScSGIEJPUklWT0oKK1NUT0pBTk9WScSGIEJSQU5JU0xBVgorU1RPSkFOT1ZJxIYgQlJBTklTTEFWCitTVE9KQU5PVknEhiBCUkFOSVNMQVYKK1NUT0pBTk9WScSGIEJSQU5LQQorU1RPSkFOT1ZJxIYgQlJBTktBCitTVE9KQU5PVknEhiBCUkFOS08KK1NUT0pBTk9WScSGIEJSQU5LTworU1RPSkFOT1ZJxIYgQlVESU1JUgorU1RPSkFOT1ZJxIYgQ1ZJSkVUQQorU1RPSkFOT1ZJxIYgREFOSUNBCitTVE9KQU5PVknEhiBEQU5JQ0EKK1NUT0pBTk9WScSGIERBTklMTworU1RPSkFOT1ZJxIYgREFOS0EKK1NUT0pBTk9WScSGIERBUklOS0EgRFIKK1NUT0pBTk9WScSGIERFU0lNSVIKK1NUT0pBTk9WScSGIERPQlJJTEEKK1NUT0pBTk9WScSGIERPQlJJTEEKK1NUT0pBTk9WScSGIERPQlJJTEEKK1NUT0pBTk9WScSGIERPQlJJTktBCitTVE9KQU5PVknEhiBEUkFHQU4KK1NUT0pBTk9WScSGIERSQUdBTgorU1RPSkFOT1ZJxIYgRFJBR0FOCitTVE9KQU5PVknEhiBEUkFHQU4KK1NUT0pBTk9WScSGIERSQUdBTgorU1RPSkFOT1ZJxIYgRFJBR0FOCitTVE9KQU5PVknEhiBEUkFHQU4KK1NUT0pBTk9WScSGIERSQUdJxaBBCitTVE9KQU5PVknEhiBEUkFHScWgQQorU1RPSkFOT1ZJxIYgRFJBR0lDQQorU1RPSkFOT1ZJxIYgRFJBR09MSlVCCitTVE9KQU5PVknEhiBEUkFHT0xKVUIKK1NUT0pBTk9WScSGIERSQUdPTUlSCitTVE9KQU5PVknEhiBEUkFHT1NMQVYKK1NUT0pBTk9WScSGIERVxaBBTgorU1RPSkFOT1ZJxIYgRFXFoElDQQorU1RPSkFOT1ZJxIYgR0FWUklMTworU1RPSkFOT1ZJxIYgR0FWUk8KK1NUT0pBTk9WScSGIEdPUkFOCitTVE9KQU5PVknEhiBHUkFESU1JUgorU1RPSkFOT1ZJxIYgSVZLTworU1RPSkFOT1ZJxIYgSkFLT1YKK1NUT0pBTk9WScSGIEpBU01JTkEKK1NUT0pBTk9WScSGLUpFRlRPVknEhiBCT1NJTEpLQQorU1RPSkFOT1ZJxIYgSkVMRU5BCitTVE9KQU5PVknEhiBKRUxFTkEKK1NUT0pBTk9WScSGIEpFTElDQQorU1RPSkFOT1ZJxIYgSk9WQU4KK1NUT0pBTk9WScSGIEpPVkFOCitTVE9KQU5PVknEhiBKVUxLQQorU1RPSkFOT1ZJxIYgS0FUSUNBCitTVE9KQU5PVknEhiBLT05TVEFOVElOCitTVE9KQU5PVknEhiBLT1NUQQorU1RPSkFOT1ZJxIYgS1JTVEEKK1NUT0pBTk9WScSGIExBWkFSCitTVE9KQU5PVknEhiBMQVpBUgorU1RPSkFOT1ZJxIYgTEVPTkEKK1NUT0pBTk9WScSGIExKVUJJxaBBCitTVE9KQU5PVknEhiBMSlVCSUNBCitTVE9KQU5PVknEhiBMSlVCSU5LTworU1RPSkFOT1ZJxIYgTEpVQk9NSVIKK1NUT0pBTk9WScSGIExKVUJPTUlSCitTVE9KQU5PVknEhiBNQVJJSkEKK1NUT0pBTk9WScSGIE1BUktPCitTVE9KQU5PVknEhiBNScWgQQorU1RPSkFOT1ZJxIYgTUlMQUsKK1NUT0pBTk9WScSGIE1JTEFOCitTVE9KQU5PVknEhiBNSUxBTgorU1RPSkFOT1ZJxIYgTUlMRVRBCitTVE9KQU5PVknEhiBNSUxFCitTVE9KQU5PVknEhiBNSUxJQ0EKK1NUT0pBTk9WScSGIE1JTElDQQorU1RPSkFOT1ZJxIYgTUlMSVZPSkUKK1NUT0pBTk9WScSGIE1JTEtBCitTVE9KQU5PVknEhiBNSUxPxaAKK1NUT0pBTk9WScSGIE1JTE/FoAorU1RPSkFOT1ZJxIYgTUlMT8WgCitTVE9KQU5PVknEhiBNSUxPVkFOCitTVE9KQU5PVknEhiBNSUxPVkFOCitTVE9KQU5PVknEhiBNSUxPVkFOCitTVE9KQU5PVknEhiBNSU9EUkFHCitTVE9KQU5PVknEhiBNSU9EUkFHCitTVE9KQU5PVknEhiBNSU9NSVIKK1NUT0pBTk9WScSGIE1JUkEKK1NUT0pBTk9WScSGIE1JUkpBTkEKK1NUT0pBTk9WScSGIE1JUkpBTkEKK1NUT0pBTk9WScSGIE1JUk9MSlVCCitTVE9KQU5PVknEhiBNSVJPU0xBVgorU1RPSkFOT1ZJxIYgTUlST1NMQVYKK1NUT0pBTk9WScSGIE1JUk9TTEFWCitTVE9KQU5PVknEhiBNSVJPU0xBVgorU1RPSkFOT1ZJxIYgTUlSTworU1RPSkFOT1ZJxIYgTU9NxIxJTE8KK1NUT0pBTk9WScSGIE1PTUlSCitTVE9KQU5PVknEhiBOQURBCitTVE9KQU5PVknEhiBOQURBCitTVE9KQU5PVknEhiBOQVNUQVMKK1NUT0pBTk9WScSGIE5FREVMSktPCitTVE9KQU5PVknEhiBORU5BRAorU1RPSkFOT1ZJxIYgTkVOQUQKK1NUT0pBTk9WScSGIE5JS0lDQQorU1RPSkFOT1ZJxIYgTklLT0xBCitTVE9KQU5PVknEhiBOSUtPTEEKK1NUT0pBTk9WScSGIE5PVklDQQorU1RPSkFOT1ZJxIYgTk9WSUNBCitTVE9KQU5PVknEhiBPQlJBRAorU1RPSkFOT1ZJxIYgT0xHQQorU1RPSkFOT1ZJxIYgT1NUT0pBCitTVE9KQU5PVknEhiBQRVRBUgorU1RPSkFOT1ZJxIYgUEVUQVIKK1NUT0pBTk9WScSGIFBFVEFSCitTVE9KQU5PVknEhiBQRVRBUgorU1RPSkFOT1ZJxIYgUFJWQU4KK1NUT0pBTk9WScSGIFJBREUKK1NUT0pBTk9WScSGIFJBREUKK1NUT0pBTk9WScSGIFJBRElTQVYKK1NUT0pBTk9WScSGIFJBRE1JTEEKK1NUT0pBTk9WScSGIFJBRE1JTEEKK1NUT0pBTk9WScSGIFJBRE1JTEEKK1NUT0pBTk9WScSGIFJBRE1JTE8KK1NUT0pBTk9WScSGIFJBRE9JQ0EKK1NUT0pBTk9WScSGIFJBRE9NSVIKK1NUT0pBTk9WScSGIFJBRE9NSVIKK1NUT0pBTk9WScSGIFJBRE9WQU4KK1NUT0pBTk9WScSGIFJVxb1JQ0EKK1NUT0pBTk9WScSGIFNBxaBBCitTVE9KQU5PVknEhiBTQVZBCitTVE9KQU5PVknEhi1TSU1JxIYgVkVTTkEKK1NUT0pBTk9WScSGIFNMQVZLTworU1RPSkFOT1ZJxIYgU0xBVktPCitTVE9KQU5PVknEhiBTTEFWS08KK1NUT0pBTk9WScSGIFNMQVZPSktBCitTVE9KQU5PVknEhiBTTEFWT0xKVUIKK1NUT0pBTk9WScSGIFNMT0JPREFOCitTVE9KQU5PVknEhiBTTE9CT0RBTgorU1RPSkFOT1ZJxIYgU0xPQk9EQU4KK1NUT0pBTk9WScSGIFNSxJBBTgorU1RPSkFOT1ZJxIYgU1JCT0xKVUIKK1NUT0pBTk9WScSGIFNSRVRFTgorU1RPSkFOT1ZJxIYgU1JFVEVOCitTVE9KQU5PVknEhiBTVEFOSVNMQVYgRFIgTEVLQVIKK1NUT0pBTk9WScSGIFNUQU5PSkUKK1NUT0pBTk9WScSGIFNUQU5PSkUKK1NUT0pBTk9WScSGIFNURVZBTiBEUgorU1RPSkFOT1ZJxIYgU1RFVkFOCitTVE9KQU5PVknEhiBTVEVWQU4KK1NUT0pBTk9WScSGIFNURVZBTgorU1RPSkFOT1ZJxIYgU1RFVkFOCitTVE9KQU5PVknEhiBTVE9KQU4KK1NUT0pBTk9WScSGIFNUT0pBTgorU1RPSkFOT1ZJxIYgU1RPTEUKK1NUT0pBTk9WScSGIFNWRVRJU0xBVgorU1RPSkFOT1ZJxIYgU1ZFVExBTkEKK1NUT0pBTk9WScSGIFNWRVRPWkFSCitTVE9KQU5PVknEhiBUSUhPTUlSIERSIElORworU1RPSkFOT1ZJxIYgVElIT01JUgorU1RPSkFOT1ZJxIYgVE9NSVNMQVYgTVIKK1NUT0pBTk9WScSGIFRPTUlTTEFWCitTVE9KQU5PVknEhiBWQUxFUklKQQorU1RPSkFOT1ZJxIYgVkFTSUxJSkUKK1NUT0pBTk9WScSGIFZBU08KK1NUT0pBTk9WScSGIFZFTElNSVIKK1NUT0pBTk9WScSGIFZFTElNSVIKK1NUT0pBTk9WScSGIFZFTEpLTworU1RPSkFOT1ZJxIYgVkVSQQorU1RPSkFOT1ZJxIYgVkVSQQorU1RPSkFOT1ZJxIYgVkVTTkEKK1NUT0pBTk9WScSGIFZFU05BCitTVE9KQU5PVknEhiBWTEFESU1JUgorU1RPSkFOT1ZJxIYgVkxBRElNSVIKK1NUT0pBTk9WScSGIFZMQURJTUlSCitTVE9KQU5PVknEhiBWTEFESU1JUgorU1RPSkFOT1ZJxIYgVkxBRElNSVIKK1NUT0pBTk9WScSGIFZMQURJTUlSCitTVE9KQU5PVknEhiBWTEFTVElNSVIKK1NUT0pBTk9WScSGIFZPSklTTEFWCitTVE9KQU5PVknEhiBWVUtBxaBJTgorU1RPSkFOT1ZJxIYgWkRSQVZLTworU1RPSkFOT1ZJxIYgWk9SQU4gRFIKK1NUT0pBTk9WScSGIFpPUkFOCitTVE9KQU5PVknEhiBaT1JBTgorU1RPSkFOT1ZJxIYgWk9SQU4KK1NUT0pBTk9WScSGIFpPUktBCitTVE9KQU5PVlNLSSDFvUlWS08KK1NUT0pBTk9WU0tJIEFORFJJSkEKK1NUT0pBTk9WU0tJIEJJTEpBTkEKK1NUT0pBTk9WU0tJIEJSQU5JTUlSCitTVE9KQU5PVlNLSSBEUkFHQU4gRElQTCBPRUMKK1NUT0pBTk9WU0tJIEpPUkRBTgorU1RPSkFOT1ZTS0kgTEpVQknFoEEKK1NUT0pBTk9WU0tJIExKVUJJQ0EKK1NUT0pBTk9WU0tJIFBBVkxFCitTVE9KQU5PVlNLSSBQQVZMRQorU1RPSkFOT1ZTS0kgU0FORQorU1RPSkFOT1ZTS0kgU0xBVklDQQorU1RPSkFOT1ZTS0kgVE9NTworU1RPSkVWIFNUT0nEjEtPCitTVE9KScSMScSGIERFU0FOS0EKK1NUT0pJxIxJxIYgR0xJR09SSUpFCitTVE9KScSMScSGIEpBU01JTkEKK1NUT0pJxIxJxIYgSkFTTUlOQQorU1RPSknEjEnEhiBNSUxJQ0EKK1NUT0pJxIxJxIYgUk9TQQorU1RPSknEjEnEhiBTTEFWS08KK1NUT0pJxIxJxIYgVE9ET1JBCitTVE9KScWgScSGIMSQVVJJQ0EgRFIKK1NUT0pJxIYgxJBVUsSQSU5LQQorU1RPSknEhi1BUEnEhiBTTEFWS0EKK1NUT0pJxIYgQk9HT0xKVUIKK1NUT0pJxIYgQk9HT0xKVUIKK1NUT0pJxIYgQk9HT0xKVUIKK1NUT0pJxIYgQlJBTktBCitTVE9KScSGIERPQlJJVk9KCitTVE9KScSGIERSQUdJTkpBCitTVE9KScSGIERSQUdPTEpVQgorU1RPSknEhiBEVcWgQU4KK1NUT0pJxIYgR0FWUkEKK1NUT0pJxIYgR09KS08KK1NUT0pJxIYgR1JBRElNSVIKK1NUT0pJxIYgScWgVFZBTgorU1RPSknEhiBKVUxJSkFOQQorU1RPSknEhiBLQVRJQ0EKK1NUT0pJxIYgTEpVQklOS0EKK1NUT0pJxIYgTUFSQQorU1RPSknEhiBNQVJJTktPCitTVE9KScSGIE1JTEFOCitTVE9KScSGIE1JTEVOQQorU1RPSknEhiBNSUxFCitTVE9KScSGIE1JTElDQQorU1RPSknEhiBNSU9EUkFHIERSCitTVE9KScSGIE1JT01JUgorU1RPSknEhiBNSVJLTworU1RPSknEhiBNTEFERU4gRFIgTEVLQVIKK1NUT0pJxIYgTkVERUxKS08KK1NUT0pJxIYgTklLT0xBCitTVE9KScSGIFNJTknFoEEgRFIKK1NUT0pJxIYgU0xBVktBCitTVE9KScSGIFNUQU5JU0xBVgorU1RPSknEhiBTVkVUTEFOQQorU1RPSknEhiBTVkVUT1pBUgorU1RPSknEhiBUT0RPUgorU1RPSknEhiBWQVNBCitTVE9KScSGIFZVxIxLTworU1RPSknEhiBWVUtBxaBJTgorU1RPSknEhiBaT1JBTgorU1RPSknEhkVWScSGIFNMT0JPREFOCitTVE9KSUMgSk9ORUwKK1NUT0pJTEpLT1ZJxIYgQk/FvUlEQVIKK1NUT0pJTEpLT1ZJxIYgQk/FvUlEQVIKK1NUT0pJTEpLT1ZJxIYgQlJBTklNSVIgRElQTCBPRUMKK1NUT0pJTEpLT1ZJxIYgREFNSVIKK1NUT0pJTEpLT1ZJxIYgREFSS0EKK1NUT0pJTEpLT1ZJxIYgR09SQU4gRFIKK1NUT0pJTEpLT1ZJxIYgR09SREFOQQorU1RPSklMSktPVknEhiBKRUxJQ0EKK1NUT0pJTEpLT1ZJxIYgTEpVQknFoEEKK1NUT0pJTEpLT1ZJxIYgVE9NSVNMQVYKK1NUT0pJTEpLT1ZJxIYgVE9NSVNMQVYKK1NUT0pJTEpLT1ZJxIYgVklLVE9SCitTVE9KSUxLT1ZJxIYgTUlMRVRJSkUKK1NUT0pJTEtPVknEhiBNSUxFCitTVE9KSUxLT1ZJxIYgU1RPSkFOCitTVE9KSUxLT1ZJxIYgVkFMRVJJSkEKK1NUT0pJTE9WIFJBRE9TTEFWCitTVE9KSUxPVknEhiBNSUxBTgorU1RPSklMT1ZJxIYgTUlMQU4KK1NUT0pJTiDEjEVET01JUgorU1RPSklOIE1JTElWT0ogRFIgUFJPRgorU1RPSklOIE1JTElWT0oKK1NUT0pJTk9WIMW9SVZLTworU1RPSklOT1YgQlJBTktPCitTVE9KSU5PViBEVcWgQU4KK1NUT0pJTk9WIEpPVkFOCitTVE9KSU5PViBLQVRBUklOQQorU1RPSklOT1YgS0FUSUNBCitTVE9KSU5PViBMSlVCSUNBCitTVE9KSU5PViBNSUxFTktPCitTVE9KSU5PViBaT1JJQ0EKK1NUT0pJTk9WScSGIEdPUkFOCitTVE9KSU5PVknEhiBNQVJJQ0EKK1NUT0pJU0FWTEpFVknEhiBEVcWgQU4KK1NUT0pJU0FWTEpFVknEhiBKT1ZBTktBCitTVE9KSVNBVkxKRVZJxIYgTUlMQU4KK1NUT0pJU0FWTEpFVknEhiBNSUxFCitTVE9KSVNBVkxKRVZJxIYgU0xPQk9EQU4KK1NUT0pJU0FWTEpFVknEhiBTTE9CT0RBTgorU1RPSklTQVZMSkVWScSGIFZFTEpLTworU1RPSktPViDFvUFSS08KK1NUT0pLT1Ygxb1JVk9SQUQKK1NUT0pLT1YgQUxFS1NBTkRBUgorU1RPSktPViBCT0dEQU4KK1NUT0pLT1YgQk9SSVZPSgorU1RPSktPViBCUkFOSVNMQVYKK1NUT0pLT1YgRElNSVRSSUpFCitTVE9KS09WIERSQUdJTkEKK1NUT0pLT1YgSVZBTgorU1RPSktPViBKRUxJQ0EKK1NUT0pLT1YgSkVMS0EKK1NUT0pLT1YgSk9WQU4KK1NUT0pLT1YgSlVMS0EKK1NUT0pLT1YgS0FUSUNBCitTVE9KS09WIExKVUJJQ0EKK1NUT0pLT1YgTUlMQU4KK1NUT0pLT1YgTUlMQU4KK1NUT0pLT1YgTUlMQU4KK1NUT0pLT1YgTUlMRU5BCitTVE9KS09WIE1JTEVWS0EKK1NUT0pLT1YgTUlMRQorU1RPSktPViBNSU9EUkFHCitTVE9KS09WIE1JT01JUgorU1RPSktPViBNSVJPU0xBVgorU1RPSktPViBNTEFERU4KK1NUT0pLT1YgTkVHT1ZBTgorU1RPSktPViBSQURJVk9KCitTVE9KS09WIFJBRElWT0oKK1NUT0pLT1YgU0xPQk9EQU4KK1NUT0pLT1YgU1RFVkFOCitTVE9KS09WIFNUT0pBTgorU1RPSktPViBTVE9KQU4KK1NUT0pLT1YgVE9ET1IKK1NUT0pLT1YgVkVSSUNBCitTVE9KS09WIFZVS09TQVZBCitTVE9KS09WIFpEUkFWS08KK1NUT0pLT1ZJxIYtxaBBTEJPVCBCT0pBTkEKK1NUT0pLT1ZJxIYgxb1JVktBCitTVE9KS09WScSGIMW9SVZPVEEKK1NUT0pLT1ZJxIYgxJBPUsSQRQorU1RPSktPVknEhiDEkE9SxJBFCitTVE9KS09WScSGIEFMRUtTQU5EQVIKK1NUT0pLT1ZJxIYgQUxFS1NBTkRBUgorU1RPSktPVknEhiBBTEVLU0FOREFSCitTVE9KS09WScSGIEFOxJBFTEtBCitTVE9KS09WScSGIEFOQU5JSkUKK1NUT0pLT1ZJxIYgQU5UT05JSkUKK1NUT0pLT1ZJxIYgQkxBR09KRQorU1RPSktPVknEhiBCT8W9SURBUgorU1RPSktPVknEhiBCT8W9SURBUgorU1RPSktPVknEhiBCT1JJU0xBVgorU1RPSktPVknEhiBCT1JLTworU1RPSktPVknEhiBCUkFOSVNMQVYKK1NUT0pLT1ZJxIYgRFJBR0FOCitTVE9KS09WScSGIERSQUdBTgorU1RPSktPVknEhiBEUkFHSU5KQQorU1RPSktPVknEhiBEUkFHT0xKVUIKK1NUT0pLT1ZJxIYgRFJBR09MSlVCCitTVE9KS09WScSGIERVxaBBTktBCitTVE9KS09WScSGIERVxaBBTktBCitTVE9KS09WScSGIERVxaBBTgorU1RPSktPVknEhiBEVcWgQU4KK1NUT0pLT1ZJxIYgRFXFoEFOCitTVE9KS09WScSGIEdPUkRBTkEKK1NUT0pLT1ZJxIYgR09SREFOQQorU1RPSktPVknEhiBHUkFESU1JUgorU1RPSktPVknEhiBJTElKQQorU1RPSktPVknEhiBJVkFOCitTVE9KS09WScSGIEpFTEVOQQorU1RPSktPVknEhiBKRUxFTkEKK1NUT0pLT1ZJxIYgSkVMRU5BCitTVE9KS09WScSGLUpPVkFOT1ZJxIYgU0xBVklDQQorU1RPSktPVknEhiBKT1ZBTgorU1RPSktPVknEhiBKT1ZBTgorU1RPSktPVknEhiBLQVRJQ0EKK1NUT0pLT1ZJxIYgS1VaTUFOCitTVE9KS09WScSGIExFTktBCitTVE9KS09WScSGIE1BUklKQQorU1RPSktPVknEhiBNSUxBTgorU1RPSktPVknEhiBNSUxBTgorU1RPSktPVknEhiBNSUxBTgorU1RPSktPVknEhiBNSUxFTktPCitTVE9KS09WScSGIE1JTEVOS08KK1NUT0pLT1ZJxIYgTUlMRU5USUpFCitTVE9KS09WScSGIE1JTE/FoAorU1RPSktPVknEhiBNSUxPVkFOCitTVE9KS09WScSGIE1JTFRFTgorU1RPSktPVknEhiBNSUxVVElOCitTVE9KS09WScSGIE1JT0RSQUcKK1NUT0pLT1ZJxIYgTUlPRFJBRworU1RPSktPVknEhiBNSVJKQU5BCitTVE9KS09WScSGIE1JUkpBTkEKK1NUT0pLT1ZJxIYgTUlSSkFOQQorU1RPSktPVknEhiBNSVJKQU5BCitTVE9KS09WScSGIE1JUkpBTkEKK1NUT0pLT1ZJxIYgTUlSS08KK1NUT0pLT1ZJxIYgTUlST1NMQVYKK1NUT0pLT1ZJxIYgTUxBREVOCitTVE9KS09WScSGIE5BREEKK1NUT0pLT1ZJxIYgUEFWTEUKK1NUT0pLT1ZJxIYgUEFWTEUKK1NUT0pLT1ZJxIYgUEVUQVIKK1NUT0pLT1ZJxIYgUEVUQVIKK1NUT0pLT1ZJxIYgUEVUQVIKK1NUT0pLT1ZJxIYgUFJFRFJBRyBEUgorU1RPSktPVknEhiBSQURFTktPCitTVE9KS09WScSGIFJBRElTQVYgRElQTCBJTkcKK1NUT0pLT1ZJxIYgUkFESVZPSkUKK1NUT0pLT1ZJxIYgUkFETUlMQQorU1RPSktPVknEhiBSQURNSUxBCitTVE9KS09WScSGIFJBRE9NSVIKK1NUT0pLT1ZJxIYgUkFET1NMQVZLQQorU1RPSktPVknEhiBSQURPU0xBVgorU1RPSktPVknEhiBSQURPVkFOIERJUEwgSU5HCitTVE9KS09WScSGIFNBTkpBCitTVE9KS09WScSGIFNMQVZLQQorU1RPSktPVknEhiBTTEFWT0xKVUIKK1NUT0pLT1ZJxIYgU01JTEpLQQorU1RPSktPVknEhiBTVE9KQURJTgorU1RPSktPVknEhiBURU9ET1IKK1NUT0pLT1ZJxIYgVkVMSU1JUgorU1RPSktPVknEhiBWRUxKS08KK1NUT0pLT1ZJxIYgVkVST1NMQVYKK1NUT0pLT1ZJxIYgVkxBRElNSVIKK1NUT0pLT1ZJxIYgVkxBRElNSVIKK1NUT0pLT1ZJxIYgWkFHT1JLQQorU1RPSktPVknEhiBaTEFUSUJPUgorU1RPSktPVknEhiBaT1JBTgorU1RPSktPVlNLSSBEUkFHQU4KK1NUT0pLT1ZTS0kgRFJBR0FOCitTVE9KTE9WScSGIMSQVUxBCitTVE9KTUVOT1ZJxIYgxb1JVktPCitTVE9KTUVOT1ZJxIYgSVZBTgorU1RPSk1FTk9WScSGIEpPVkFOCitTVE9KTUVOT1ZJxIYgTUFSSUpBCitTVE9KTUVOT1ZJxIYgVkxBREEKK1NUT0pNRU5PVknEhiBWT0pJU0xBVgorU1RPSk5JxIYgQk/FoEtPCitTVE9KTknEhiBEUkFHQU4KK1NUT0pOScSGIERSQUdJQ0EKK1NUT0pOScSGIERVxaBBTgorU1RPSk5JxIYgTUlMSUNBCitTVE9KTknEhiBNSVJLTworU1RPSk5JxIYgUEFWTEUKK1NUT0pOScSGIFJBRE9NSVIKK1NUT0pOScSGIFNMT0JPREFOCitTVE9KTk9WIERBTUpBTgorU1RPSk9WScSGIFJBRE9NSVIKK1NUT0pPVknEhiBUT01BxaAKK1NUT0pTQVZMSkVWScSGIE5JS09MQQorU1RPSlNBVkxKRVZJxIYgUEVUQVIKK1NUT0pTQVZMSkVWScSGIFNURVZBTgorU1RPSlNBVkxKRVZJxIYgVElIT01JUgorU1RPS0FOT1ZJxIYgxJBPUsSQRQorU1RPS0FOT1ZJxIYgTUlMT1JBRAorU1RPS0nEhiDEkE9SxJBFCitTVE9LScSGIERSQUdPTEpVQgorU1RPS0nEhiBEVcWgQU4KK1NUT0tJxIYgSk9WSUNBCitTVE9LScSGIE1JTEFOCitTVE9LScSGIFRPRE9SCitTVE9LSU4gQUxFU0FOREFSCitTVE9LSU4gQlJBTktPCitTVE9LSU4gTUlMSVZPSgorU1RPS0lOIFNMT0JPREFOCitTVE9LSU4gU1RPSkFOCitTVE9LVcSGQSBEQU5FCitTVE9LVcSGQSBNSUhBSkxPCitTVE9LVcSGQSBNSUxBTgorU1RPS1XEhkEgTUlMQU4KK1NUT0tVxIZBIE1JTEFOCitTVE9LVcSGQSBNSVJKQU5BCitTVE9LVcSGQSBOSUtPTEEKK1NUT0tVxIZBIFBFVEFSCitTVE9MRVNLSSBNSVRJSkEKK1NUT0xJxIYgxJBVUk8KK1NUT0xJxIYgQklTRVJLQQorU1RPTEnEhiBEVcWgQU4KK1NUT0xJxIYgRFXFoEFOCitTVE9MScSGIERVxaBBTgorU1RPTEnEhiBLQVRJQ0EKK1NUT0xJxIYgTEpVQklDQQorU1RPTEnEhiBNSVJKQU5BCitTVE9MScSGIE1JUk9TTEFWCitTVE9MScSGIE1JUk9TTEFWCitTVE9MScSGIE5FTkFECitTVE9MScSGIFBFVEFSIERSCitTVE9MScSGIFNSRVRBCitTVE9MScSGIFNURVZBTgorU1RPUElOxaBFSyBTVEFOSVNMQVYKK1NUUkHFvU1FxaBURVIgQk/FvUlEQVIKK1NUUkHFvU1FxaBURVIgRFXFoEFOCitTVFJBxb1NRcWgVEVST1YgRElNSVRSSUpFCitTVFJBxb1NRcWgVEVST1YgTUlMSUNBCitTVFJBxb1NRcWgVEVST1YgTUlST1NMQVYgRElQTCBJTkcKK1NUUkHFvU1FxaBURVJPViBTQVZBCitTVFJBxb1NRcWgVEVST1YgU09GSUpBCitTVFJBxb1NRcWgVEVST1YgU1RFVkFOCitTVFJBQ0VOU0tJIE1JUk9TTEFWCitTVFJBQ0VOU0tJIFNURVZBTgorU1RSQUdBIFNUSkVQQU4KK1NUUkFISU5JxIYgS1JTVE9NSVIKK1NUUkFKSU4gQlJBTklTTEFWQQorU1RSQUpJTiBKRUxFTkEKK1NUUkFKSU4gTkFEQQorU1RSQUpJTiBSQURPVkFOCitTVFJBSklOIFNUT0pBTgorU1RSQUpJTiBWRUxJWkFSCitTVFJBSklOScSGIEJPxb1JREFSCitTVFJBSklOScSGIElSRU5BCitTVFJBSklOScSGIEpPVkFOCitTVFJBSklOScSGIExBWkFSCitTVFJBSklOScSGIE1JTFVUSU4KK1NUUkFKTknEhiBCUkFOS08KK1NUUkFKTknEhiBEVcWgQU4KK1NUUkFKTknEhiBHUlVKQQorU1RSQUpOScSGIE1BUklKQQorU1RSQUpOScSGIE1JTEFOS08KK1NUUkFKTknEhiBNSUxBTgorU1RSQUpOScSGIE1MQURFTgorU1RSQUpOScSGIFBBTAorU1RSQUpOScSGIFRPxaBBCitTVFJBTknEhiBKT1ZJQ0EKK1NUUkFOSkFLT1ZJxIYgxb1JVk9KSU4KK1NUUkFOSkFOQUMgTUlMT1JBRAorU1RSQU5KQU5BQyBNSVJPU0xBVgorU1RSQkHEjEtJIEZSSURPTElOQQorU1RSQkHEjEtJIFNURVZBTgorU1RSQkFEIFNURVZBTgorU1RSQkFUIFRPTUlTTEFWCitTVFJFSE9WU0tJIFpVWkFOQQorU1RSRUxFIFJBxaBBCitTVFJFWk9TS0kgSk9WQU4KK1NUUkVaT1NLSSBNSUxFU0EKK1NUUkVaT1NLSSBOSUtPRElOS0EKK1NUUkVaT1NLSSBWTEFESU1JUgorU1RSR0FSIFBFVEFSCitTVFJJxIxFVknEhiBEQVJBCitTVFJJxIxFVknEhiBEVcWgQU4KK1NUUknEjEVWScSGIEpPU0lQCitTVFJJxIxFVknEhiBKVUxLQQorU1RSScSMRVZJxIYgS1NFTklKQQorU1RSScSMRVZJxIYgTEpVQk9NSVIKK1NUUknEjEVWScSGIE1MQURFTgorU1RSScSMRVZJxIYgUkFESVZPSgorU1RSScSMRVZJxIYgU0FWS0EKK1NUUknEjEVWScSGIFZFTElNSVIKK1NUUknEjEVWScSGIFZMQURJU0xBVkEKK1NUUknEjEtPIFZMQURJTUlSCitTVFJJQkVSIEVNSUwKK1NUUklCRVIgRlJBTkpBCitTVFJJQkVSIEZSQU5KQQorU1RSSUJFUiBNSUhBSkxPCitTVFJJQkVSIFNURVZBTgorU1RSSUJFUiBTVEVWQU4KK1NUUklDS0kgSVZBTgorU1RSSUtBIMSQT1LEkEUKK1NUUklLQSBCUkFOS08KK1NUUklLT1ZJxIYgxIZBTUlMCitTVFJJS09WScSGIEJFTEkKK1NUUklLT1ZJxIYgSkFOT8WgCitTVFJJS09WScSGIE1JTE9TQVYKK1NUUklLT1ZJxIYgUkFET1NMQVYKK1NUUklLT1ZJxIYgVkVSQQorU1RSSU5FS0EgS0FUSUNBCitTVFJJWk9WScSGIExKSUxKQU5BCitTVFJJWk9WScSGIE1BS1NJTQorU1RSVUdBUiDFvUFSS08KK1NUUlVHQVIgxb1JVk9SQUQKK1NUUlVHQVIgR09SQU4KK1NUUlVHQVIgSk9TSVAKK1NUUlVHQVIgTUlMVVRJTgorU1RSVUdBUiBQQVZMRQorU1RSVUdBUiBSQURNSUxBCitTVFJVR0FSIFNPTkpBCitTVFJVR0FSIFZPSklTTEFWCitTVFJVR0FSIFpBUklKQQorU1RSVUhBUiBBTkEKK1NUUlVIQVIgSkFSTUlMQQorU1RSVUhBUiBKT1NJUAorU1RSVUhBUiBNQUdEQQorU1RSVUhBUklLIEpPU0lQCitTVFJVSEFSSUsgSk9TSVAKK1NUUlVIQVJJSy1KVVIgUkFTVElTTEFWCitTVFJVSEFSSUsgSlVSQUogRFIKK1NUUlVIQVJJSyBNQVJKRU5BCitTVFJVSEFSSUsgTUFUTworU1RSVUhBUklLIFBBVkxFCitTVFJVS0FOIERPTUFHT0ogRFIKK1NUUlVOSkHFoCBHT1JEQU5BCitTVFVCTElOQUMgTUlMT8WgCitTVFVERU4gxb1JVk9SQUQKK1NUVUxBUiBEVcWgQU4KK1NUVVBBUiDEjEVEQQorU1RVUEFSIMW9RUxKS08KK1NUVVBBUiDFvUlWS08KK1NUVVBBUiDEkE9SxJBFCitTVFVQQVIgQk9HT0xKVUIKK1NUVVBBUiBCT1JPCitTVFVQQVIgQk9TSUxKS0EKK1NUVVBBUiBCUkFOS08KK1NUVVBBUiBCUkFOS08KK1NUVVBBUiBCUkFOS08KK1NUVVBBUiBDVkVUQQorU1RVUEFSIERFU0FOS0EKK1NUVVBBUiBEUkFHQU4KK1NUVVBBUiBEUkFHTworU1RVUEFSIERVxaBBTktBCitTVFVQQVIgRFXFoEFOCitTVFVQQVIgRFXFoEFOCitTVFVQQVIgRFXFoEFOCitTVFVQQVIgSUxJSkEKK1NUVVBBUiBKQU5KQQorU1RVUEFSIEpBTktPCitTVFVQQVIgSk9WTworU1RVUEFSIExKVUJJTktBCitTVFVQQVIgTUFSS08KK1NUVVBBUiBNQVJLTworU1RVUEFSIE1JTEpBCitTVFVQQVIgTUlMS0EKK1NUVVBBUiBNSUxPUkFECitTVFVQQVIgTUlMT1JBRAorU1RVUEFSIE1JUkpBTkEKK1NUVVBBUiBNSVJLTworU1RVUEFSIE5JS09MQQorU1RVUEFSIFBFUk8KK1NUVVBBUiBQRVRBUgorU1RVUEFSIFBFVEFSCitTVFVQQVIgUkFEQQorU1RVUEFSIFJBREUKK1NUVVBBUiBSQUpLTworU1RVUEFSIFJBSktPCitTVFVQQVIgUkFKS08KK1NUVVBBUiBTTEHEkEFOQQorU1RVUEFSIFZMQURJTUlSCitTVFVQQVIgWkRSQVZLTworU1RVUEFSIFpPUkFOCitTVFVQQVZTS0kgQU5EUkVKCitTVFVQQVZTS0kgSkFOS08KK1NUVVBJxIYgU0xBVkVOS08KK1NUVVBJTiBJVkFOCitTVFVQSU4gWlZPTklNSVIKK1NUVVJBUiBaRFJBVktPCitTVFZPUknEhiBQQVZMRQorU1XEjEVWScSGIERBTkUgRElQTCBQUkFWTklLCitTVcSMRVZJxIYgRFJBR0FOCitTVcSMRVZJxIYgRFXFoEFOCitTVcSMRVZJxIYgTUFSSUpBCitTVcSMRVZJxIYgTUFSVEEKK1NVxIxFVknEhiBNSVJPU0xBVgorU1XEjEVWScSGIE5JS09MQQorU1XEjEVWScSGIE5JS09MQQorU1XEjEVWScSGIFJVxb1JQ0EKK1NVxaBBIERBTklMTworU1XFoEEgTUFSS08KK1NVxaBBIE1JTElKQU5BCitTVcWgQUMgVklOS08KK1NVxaBJxIYgR09SREFOQQorU1XFoEnEhiBISUxEQQorU1XFoEnEhiBSQURBCitTVcWgScSGIFZVSkFOQQorU1XEkEkgSk9WQU4KK1NVxJBJIE1BUklKQQorU1XEkEkgU1RBTktPCitTVUJBxaBJxIYgQk9SSVNMQVYKK1NVQkHFoEnEhiBKVUxLQQorU1VCQcWgScSGIExBWkFSCitTVUJBxaBJxIYgTUFSS08KK1NVQkHFoEnEhiBNSUxBTgorU1VCQcWgScSGIE5JS09MQQorU1VCQcWgScSGIFBFUk8KK1NVQkHFoEnEhiBQRVRBUiBNUgorU1VCQcWgScSGIFJBSktPCitTVUJBxaBJxIYgU0lNQQorU1VCQcWgScSGIFNUT0pBTgorU1VCQUpLT1YgUkFET0pLQQorU1VCQUtPViBLT1ZJTEpLQQorU1VCQUtPViBTTUlMSktBCitTVUJBS09WIFNPRklKQQorU1VCQU5PVknEhiBNSUxBTgorU1VCScSGIMW9QVJLTworU1VCScSGIMSQT1LEkEUKK1NVQknEhiBBTEVLU0FOREFSCitTVUJJxIYgQU7EkEVMS0EKK1NVQknEhiBCT8W9RU5BCitTVUJJxIYgQk/FvUlEQVIKK1NVQknEhiBCUkFOSVNMQVYKK1NVQknEhiBEQU1JUgorU1VCScSGIERBUkEKK1NVQknEhiBESU1JVFJJSkUKK1NVQknEhiBEVcWgQU4KK1NVQknEhiBHT1JEQU5BCitTVUJJxIYgSk9WQU4KK1NVQknEhiBLT1NUQQorU1VCScSGIExBWkFSCitTVUJJxIYgTEFaQVIKK1NVQknEhiBMQVpBUgorU1VCScSGIExKVUJJQ0EKK1NVQknEhiBMSlVCT01JUgorU1VCScSGIExKVUJPTUlSCitTVUJJxIYgTEpVQk9NSVIKK1NVQknEhiBNQVJJSkEKK1NVQknEhiBNQVJLTworU1VCScSGIE1BUktPCitTVUJJxIYgTUlMQU4KK1NVQknEhiBNSVJPU0xBVkEKK1NVQknEhiBNTEFERU4KK1NVQknEhiBOQURBCitTVUJJxIYgTkVERUxKS0EKK1NVQknEhiBORURFTEpLTworU1VCScSGIE5PVkFLCitTVUJJxIYgT0xHQQorU1VCScSGIFBBSkEKK1NVQknEhiBSQURJVk9KCitTVUJJxIYgUkFET1NMQVYKK1NVQknEhiBTTUlMSkEKK1NVQknEhiBTTkXFvUFOQQorU1VCScSGIFNURVZBTgorU1VCScSGIFpPUkFOCitTVUJPVEnEjEtJIEJSQU5JU0xBVgorU1VCT1RJxIxLSSBHT1JJQ0EKK1NVQk9UScSMS0kgS0FUSUNBCitTVUJPVEnEjEtJIExVS0EKK1NVQk9UScSMS0kgTUlSSkFOQQorU1VCT1RJxIxLSSBNSVJLTworU1VCT1RJxIxLSSBOQURBCitTVUJPVEnEjEtJIE5FU1RPUiBESVBMIElORworU1VCT1RJxIxLSSBSQURPVkFOCitTVUJPVEnEjEtJIFNBVkEKK1NVQk9UScSMS0kgU0xPQk9EQU4KK1NVQk9UScSMS0kgU09GSUpBCitTVUJPVEnEjEtJIFNWRVRJU0xBVgorU1VCT1RJxIxLSSBWQVNBCitTVUJPVEnEjEtJIFZFUkEKK1NVQk9UScSMS0kgVkxBRElNSVIKK1NVQk9UScSMS0kgWk9SQU4KK1NVQk9UScSGIMW9QVJLTworU1VCT1RJxIYgxJBPUsSQRQorU1VCT1RJxIYgxJBVUk8KK1NVQk9UScSGIEFMRUtTQU5EQVIKK1NVQk9UScSGIEJSQU5JU0xBViBEUgorU1VCT1RJxIYgRFJBR1VUSU4KK1NVQk9UScSGIERVxaBBTgorU1VCT1RJxIYgRFXFoEFOCitTVUJPVEnEhiBMSklMSkFOQQorU1VCT1RJxIYgTEpVQklDQQorU1VCT1RJxIYgTUFDQQorU1VCT1RJxIYgTUFSS08KK1NVQk9UScSGIE1JTElWT0oKK1NVQk9UScSGIE1JTE/FoAorU1VCT1RJxIYgTUlMT1JBRAorU1VCT1RJxIYgTUlPRFJBRyBESVBMIElORworU1VCT1RJxIYgTkVOQUQKK1NVQk9UScSGIFJBRElWT0oKK1NVQk9UScSGIFJBRE/FoAorU1VCT1RJxIYgUkFKS08KK1NVQk9UScSGIFJBSktPCitTVUJPVEnEhiBSVcW9QQorU1VCT1RJxIYgUlXFvUEKK1NVQk9UScSGIFNBVkEKK1NVQk9UScSGIFNMT0JPREFOCitTVUJPVEnEhiBTVEFOQQorU1VCT1RJxIYgU1ZFVE9aQVIKK1NVQk9UScSGIFNWRVRPWkFSCitTVUJPVEnEhiBUT01JU0xBVgorU1VCT1RJxIYgVkVSQQorU1VCT1RJxIYgVkxBREFOQQorU1VCT1RJTiDFvUlWS08KK1NVQk9USU4gxb1JVktPCitTVUJPVElOIMSQT1LEkEUKK1NVQk9USU4gxJBPUsSQRQorU1VCT1RJTiDEkFVSQQorU1VCT1RJTiBCT0dEQU4KK1NVQk9USU4gQk9HREFOCitTVUJPVElOIERBTklDQQorU1VCT1RJTiBESU1JVFJJSkUKK1NVQk9USU4gRFJBR0FOCitTVUJPVElOIERSQUdJTkpBCitTVUJPVElOIERVxaBBTktBCitTVUJPVElOIElSSU5BCitTVUJPVElOIElWQU4KK1NVQk9USU4gSkVMRU5BCitTVUJPVElOIEpFTElDQQorU1VCT1RJTiBMSklMSkFOQQorU1VCT1RJTiBMSlVCSU5LQQorU1VCT1RJTiBNQVJLTworU1VCT1RJTiBNQVJLTworU1VCT1RJTiBNQVJLTworU1VCT1RJTiBNSUxBTgorU1VCT1RJTiBNSUxBTgorU1VCT1RJTiBNSUxBTgorU1VCT1RJTiBNSUxPUkFECitTVUJPVElOIE5FVkVOS0EKK1NVQk9USU4gUEFWTEUKK1NVQk9USU4gUEVUQVIKK1NVQk9USU4gUFJFRFJBRworU1VCT1RJTiBSQURPU0xBVgorU1VCT1RJTiBSQURPVkFOCitTVUJPVElOIFNBxaBBCitTVUJPVElOIFNBVkEKK1NVQk9USU4gU0FWQQorU1VCT1RJTiBTQVZBCitTVUJPVElOIFNMT0JPREFOCitTVUJPVElOIFNNSUxKQQorU1VCT1RJTiBTVEFOS0EKK1NVQk9USU4gU1RFVkFOCitTVUJPVElOIFNURVZBTgorU1VCT1RJTiBTVkVUT1pBUgorU1VCT1RJTiBTVkVUT1pBUgorU1VCT1RJTiBTVkVUT1pBUgorU1VCT1RJTiBaT1JBCitTVUJVIMSQT1LEkEUKK1NVRMW9VUtPVknEhiBOSUtPTEEKK1NVRMW9VU0gQk/FoEtPCitTVUTFvVVNIEJPR0RBTgorU1VExb1VTSBJTElKQQorU1VEQUsgVkxBRElNSVIKK1NVREFSIERVxaBBTgorU1VEQVIgRFXFoEFOCitTVURBUiBHQUpBCitTVURBUiBWT0pJTgorU1VEQVJFVknEhiBCT8WgS08KK1NVREFST1YgQlJBVElTTEFWCitTVURBUlNLSSBEVcWgQU4KK1NVRElNQUMgRFJBR08KK1NVRElNQUMgTUlMQU4KK1NVSEFORUsgQURBTQorU1VIQU5TS0kgU1RFVkFOCitTVUhPVlNLSSBKQU5PCitTVUnEhiBCUkFOS08KK1NVScSGIE5FTkFECitTVUpFUiBNSUhBSkxPCitTVUpJxIYgSkVMRU5BCitTVUpJxIYgTUlMQU4KK1NVSknEhiBTT0ZJSkEKK1NVSknEhiBWT0pJTgorU1VKScSGIFpERU5LQQorU1VLQcSMIE1JSEFKTE8KK1NVS05KQUpBIERBTklMTworU1VLTk9WScSGIE1JUktPCitTVUtOT1ZJxIYgUkFESVZPSkUKK1NVS05PVknEhiBTTEFWS08KK1NVS09MQSBBTlRBTAorU1VLT0xBIFNVWkFOQQorU1VLVVAgTUFSR0lUQQorU1VMRUpNQU5PViBOQUZJSkEKK1NVTEnEhiBNQVJJQ0EKK1NVTEnEhiBUT01JU0xBVgorU1VMSkEgUkFNQURBTgorU1VMSkFHScSGIFJFRklLCitTVUxPQ0tJIEpPxaBLQQorU1VMT01BUiBBR05FWkEKK1NVTE9NQVIgRVLFvUVCRVQKK1NVTE9NQVIgSUxPTkEKK1NVTE9NQVIgSkFOT8WgCitTVUxPTUFSIE1BR0RBCitTVU1BTiBNSUxFCitTVU1BUk9WIEpFTElTQVZFVEEKK1NVTUlOQSBEQU5JQ0EKK1NVTUlOSkEgTUnFoEEKK1NVTkFKS08gxJBVUk8KK1NVTkFKS08gRFXFoEFOCitTVU5EQcSGIMSQVVJBCitTVU5EQcSGIFRPRE9SCitTVU5JxIYgTUlSSkFOQQorU1VOS0EgTEpVQklDQQorU1VOVE9LIEFOSUNBCitTVU5aRVIgVkxBRElNSVIKK1NVUEnEhiBCT1JJxaBBCitTVVBJxIYgREFSSU5LQQorU1VQScSGIE1JTEFOCitTVVBJxIYgT0xHQQorU1VSxIZBIEpPU0lQCitTVVLEhkEgVFJBSkFOCitTVVJBIE1BUkdJVEEKK1NVUkRVxIxBTiBESU1JVFJJSkUKK1NVUkRVxIxLSSDFvUlWS08KK1NVUkRVxIxLSSBEUkFHQU4KK1NVUkRVxIxLSSBJTElKQQorU1VSRFXEjEtJIElMSUpBCitTVVJEVcSMS0kgSVNJRE9SCitTVVJEVcSMS0kgTUFSQQorU1VSRFXEjEtJIE1JTEFOCitTVVJEVcSMS0kgTUlMT8WgCitTVVJEVcSMS0kgTUlMT8WgCitTVVJEVcSMS0kgTUlSSkFOQQorU1VSRFXEjEtJIE5FQk9KxaBBCitTVVJEVcSMS0kgUEFOVEVMSUpBCitTVVJEVcSMS0kgUEVSU0EKK1NVUkRVxIxLSSBTSU5JxaBBCitTVVJEVcSMS0kgU1RBTktBCitTVVJEVcSMS0kgU1RFVkFOCitTVVJMQSBCT8W9TworU1VSTEEgRFXFoEFOCitTVVJMQSBMVUtBCitTVVJMQSBQRVRBUgorU1VSTEEgUEVUQVIKK1NVUkxBIFNBVkEKK1NVUkxBIFpPUkFOCitTVVJMScSGIE1JTEVOS08KK1NVUk9WSSBBTlRPTgorU1VST1ZJIEpPTEFOS0EKK1NVUk9WSSBNSUhBTAorU1VST1ZJIE1JUk9TTEFWCitTVVJPVkkgU1RFVkFOCitTVVJPVkkgVkxBRElNSVIKK1NVU0VEU0tJIE9TS0FSCitTVVRBUknEhiBWRVJBCitTVVRSSU4gQk9SSVMKK1NVVFVST1ZJxIYgSkFHQQorU1VUVVJPVknEhiBNQVJJSkEKK1NVVFVST1ZJxIYgTkVTVE8KK1NVVFVST1ZJxIYgWlZPTklNSVIKK1NVVkHEjEFSIElMSU5LQQorU1VWQcSMQVIgVE9ET1IKK1NVVkHEjEFSIFZFUkEKK1NVVkHEjEFSRVYgQk9SSVNMQVZBCitTVVZBxIxBUkVWIEpPVkFOCitTVVZBxIxBUkVWIE1BUklKQQorU1VWQcSMQVJFViBNSUxFTktPCitTVVZBxIxBUkVWIE1PTUlSCitTVVZBxIxBUkVWIE9CUkFECitTVVZBxIxBUkVWIFBBSkEKK1NVVkHEjEFSRVYgUkFERU5LTworU1VWQUrEjEVWScSGIFNWRVRJU0xBVgorU1VWQUpBQyDFvUVMSktPCitTVVZBSkFDIFZBU0lMSUpFCitTVVZBSkTFvUnEhiDFvUlWS08KK1NVVkFKRMW9ScSGIMSQT1LEkEUKK1NVVkFKRMW9ScSGIMSQT1LEkEUKK1NVVkFKRMW9ScSGIERJTUlUUklKRQorU1VWQUpExb1JxIYgR09KS08KK1NVVkFKRMW9ScSGIElMSUpBCitTVVZBSkTFvUnEhiBJU0EKK1NVVkFKRMW9ScSGIEpPVkFOCitTVVZBSkTFvUnEhiBMSklMSkFOQQorU1VWQUpExb1JxIYgTUFSSUpBCitTVVZBSkTFvUnEhiBNQVJJTktPCitTVVZBSkTFvUnEhiBNSUxLQQorU1VWQUpExb1JxIYgTkVOQUQKK1NVVkFKRMW9ScSGIE5FTkFECitTVVZBSkTFvUnEhiBPQlJBRAorU1VWQUpExb1JxIYgT0xHSUNBCitTVVZBSkTFvUnEhiBQRVRBUgorU1VWQUpExb1JxIYgUkFETUlMQQorU1VWQUpExb1JxIYgVkFTQQorU1VWQUpExb1JxIYgVkFTQQorU1VWQUpExb1JTiBKT1ZBTgorU1VWQUpExb1JTiBKT1ZBTgorU1VWQUpExb1JTiBNTEFERU4KK1NVVkFKRMW9SU4gTklLT0xBCitTVVpJxIYgTUFSQQorU1VaScSGIE1JUktPCitTVVpJxIYgTklLT0xBCitTVVpJxIYgU09GSUpBCitTVkFMSU5BIEtBVEEKK1NWRcSGTkpBSyBCUkFOS08KK1NWRVRJxIYgSVZBTiBEUgorU1ZFVEnEhiBJVkFOCitTVkVUScSGIExKRVJLQQorU1ZFVExJSyBBREFNCitTVklMQUtPUyBNQVJJSkEKK1NWSUxBUiBBTsSQRUxLQQorU1ZJTEFSIEJSQU5JU0xBVgorU1ZJTEFSIEdPSktPCitTVklMQVIgTEpVQk9NSVIKK1NWSUxBUiBNSUhBSkxPCitTVklMQVIgTUlIQUpMTworU1ZJTEFSIE5JS09MQQorU1ZJTEFSIFBFVEFSCitTVklMQVIgUkFET01JUgorU1ZJTEFSIFJBVEtPCitTVklMQVIgU0xBVklDQQorU1ZJTEFSIFNPRklKQQorU1ZJTEFSIFZFUklDQQorU1ZJTEFSIFZJTktBCitTVklMQVJFVknEhiBTVEVWTworU1ZJTEFSS09WScSGIFNUQU5JTUlSIERJUEwgSU5HCitTVklMQVJPViBNSUxBTgorU1ZJTE9LT1MgQk9SSVNMQVYKK1NWSUxPS09TIEdBVlJBCitTVklMT0tPUyBLQVRJQ0EKK1NWSUxPS09TIE1JTEFOCitTVklMT0tPUyBTVEVWQU4KK1NWSU5KQVJFVknEhiBTTEFWS08KK1NWSVLEjEVWIMW9SVZLTworU1ZJUsSMRVYgSk9WQU4KK1NWSVLEjEVWIE1JTElWT0oKK1NWSVLEjEVWIE1JTE/FoAorU1ZJUsSMRVYgUkFEQQorU1ZJUsSMRVZJxIYgQUxFS1NBTkRBUiBEUiBET0NFTlQKK1NWSVLEjEVWScSGIEFOQQorU1ZJUsSMRVZJxIYgQk9SSVNMQVYKK1NWSVLEjEVWScSGIERSQUdBTgorU1ZJUsSMRVZJxIYgRFJBR0EKK1NWSVLEjEVWScSGIERSRU5LQQorU1ZJUsSMRVZJxIYgSk9WQU4KK1NWSVLEjEVWScSGIEpPVkFOCitTVklSxIxFVknEhiBMSlVCT01JUgorU1ZJUsSMRVZJxIYgTUlMSVZPSgorU1ZJUsSMRVZJxIYgTUlMT1JBRAorU1ZJUsSMRVZJxIYgTUlSSkFOQQorU1ZJUsSMRVZJxIYgUEVUQVIKK1NWSVLEjEVWScSGIFJBRE9WQU4KK1NWSVLEjEVWScSGIFNMQVZLTworU1ZJUsSMRVZJxIYgU1RFVkFOCitTVklSxIxFVknEhiBURU9ET1JBCitTVklSxIxFVknEhi1UUkFKS09WScSGIExKVUJJQ0EKK1NWSVLEjEVWScSGIFZBU0EKK1NWSVLEjEVWScSGIFZVS0FOCitTVklSQUMgUlXFvUlDQQorU1ZJVEnEhiBCT8W9TworU1ZJVExJQ0EgRFJBR0FOCitTVklUTElDQSBEVcWgQU4KK1NWSVRMSUNBIEdPSktPIERJUEwgT0VDCitTVklUTElDQSBKRUxJQ0EKK1NWSVRMSUNBIE1JTEFOCitTVklUTElDQSBSVcW9SUNBCitTVklUTElDQSBTSU1PCitTVklUTElDQSBTVEFOS08KK1NWSVRMSUNBIFRBTkFTSUpFIERJUEwgT0VDCitTVklUTElDQSBWRVJBCitTVk9CT0RBIFNURVZBTgorU1ZPUkNBTiBCUkFOSVNMQVYKK1NWT1JDQU4gTEpVQk9NSVIKK1NWT1JDQU4gTUlMT8WgCitTVk9SQ0FOIE1JTE9SQUQKK1NWT1JDQU4gTUlMT1JBRAorU1ZPUkNBTiBSQURJU0xBVgorU1ZPUkNBTiBSQURPTUlSCitTVk9SQ0FOIFNURVZBTgorU1ZPUkNBTiBTVE9KQU4KK1NWT1JDQU4gWk9SSUNBCitTVlJETEFOIE1MQcSQQU4KK1NWUktPVEEgxb1JVktPCitTVlJLT1RBIFZVS09NQU4KK1NWUlpJxIYgR09SREFOQQorVEHEjEkgSVNNQUlMSgorVEHEjEkgVEVPRklMCitUQcWgIEtBUk9MSgorVEHFoEVWU0tJIE1JTEtBCitUQcWgRVZTS0kgU09GSUpBCitUQcWgSSBMSlVCSUNBCitUQcWgSSBQRVRBUgorVEHFoEkgUk9aQUxJSkEKK1RBxaBJIFNURVZBTgorVEHFoEkgWk9MVEFOCitUQcWgScSGIE1JTElWT0oKK1RBxaBJxIYgVkVSQQorVEHFoE5BREkgTUlIQUxKCitUQULFoCBOQURBCitUQULFoCBOT0hBREVESU4KK1RBQkHEjEtJIFZMQURJTUlSCitUQUJBxIxLSSBaT1JJQ0EKK1RBQkFLIERSQUdBTgorVEFCQUsgSVZBTgorVEFCQUsgVkFTQQorVEFCQUsgVk9KSVNMQVYKK1RBQkFLT1YgRFJBR09NSVIKK1RBQkFLT1YgTUlMRU5LTworVEFCQUtPViBNTEFERU4KK1RBQkFLT1ZJxIYgxJBPUsSQRSBESVBMIElORworVEFCQUtPVknEhiBEVcWgQU4KK1RBQkFLT1ZJxIYgSVNNRVQKK1RBQkFLT1ZJxIYgTUlSS08KK1RBQk9SSSDEkE9SxJBFIERSIExFS0FSCitUQUNPVknEhiBWRVJBCitUQURJxIYgxb1JVkFOCitUQURJxIYgxJBPUsSQRQorVEFEScSGIMSQT1LEkEUKK1RBREnEhiBBTEVLU0FOREFSCitUQURJxIYgQU5BCitUQURJxIYgQVJTRU5JSkUKK1RBREnEhiBCT1NJTEpLQQorVEFEScSGIERBTklMTworVEFEScSGIERSQUdBTgorVEFEScSGIERSQUdBCitUQURJxIYgRFXFoEFOCitUQURJxIYgRFXFoEFOCitUQURJxIYgRFXFoEFOCitUQURJxIYgRURJVEEKK1RBREnEhiBHT1JBTgorVEFEScSGIElMSUpBCitUQURJxIYgSUxJSkEKK1RBREnEhiBJVkFOCitUQURJxIYgSk9WSUNBCitUQURJxIYgS1JBU0lNSVIKK1RBREnEhiBMQVpBUgorVEFEScSGIExBWkFSCitUQURJxIYgTUFSSUpBCitUQURJxIYgTUFSSU5LTworVEFEScSGIE1BUklOS08KK1RBREnEhiBNSUpPCitUQURJxIYgTUlMT8WgIERJUEwgSU5HCitUQURJxIYgTUlMT8WgCitUQURJxIYgTUlMT0pFCitUQURJxIYgTUlMT1NBVgorVEFEScSGIE1JUktPCitUQURJxIYgTUlSS08KK1RBREnEhiBNSVJLTworVEFEScSGIE5BREEKK1RBREnEhiBORVZFTktBCitUQURJxIYgT0JSRU4KK1RBREnEhiBQRVRBUgorVEFEScSGIFJBRE9KRQorVEFEScSGIFJBVEtPCitUQURJxIYgU0HFoEEKK1RBREnEhiBTQVZBCitUQURJxIYgU0xPQk9EQU4KK1RBREnEhiBTT0ZJSkEKK1RBREnEhiBTUEFTT0pFCitUQURJxIYgU1RPSkFOCitUQURJxIYgVEFOS09TQVZBCitUQURJxIYgVVJPxaAKK1RBREnEhiBWRVNFTElOCitUQURJxIYgWk9SQU4KK1RBREnEhiBaT1JBCitUQURJxIYgWk9SS0EKK1RBRElKQU5PVknEhiBTSUxWRVNURVIKK1RBRElKSU4gR0xJxaBBCitUQURJSklOIE1JTElDQQorVEFESUpJTiBNSUxPxaAKK1RBRElKSU4gTUlMT1JBRAorVEFESU4gRFXFoEFOS0EKK1RBRElOIERVxaBBTgorVEFESU4gSVZBTktBCitUQURJTiBNSUxPVkFOCitUQURJTiBaTEFUT0pFCitUQUhJUk9WScSGIEVWSUNBCitUQUhJUk9WScSGIE1BUklKQQorVEFISVJPVknEhiBNSUxBRElOS0EKK1RBSVJPVknEhiBBTEVLU0FOREFSCitUQUpITUFOIEJFTEEKK1RBSkhNQU4gREVTQU5LQQorVEFKSE1BTiBKT1NJUAorVEFKS09WIEFOxJBFTEtBCitUQUpLT1YgSk9WQU4KK1RBSktPViBNSVJKQU5BCitUQUpLT1YgUkFET0pLQQorVEFKS09WScSGIE1JTElDQQorVEFKVEkgVkVST05JS0EKK1RBS0HEjCDFoEFORE9SCitUQUtBxIwgxJBFUsSQSQorVEFLQcSMIMSQT1LEkEUKK1RBS0HEjCDEkFVMQQorVEFLQcSMIMSQVVJBCitUQUtBxIwgxJBVUkEKK1RBS0HEjCBBTsSQRUxLQQorVEFLQcSMIEFORFJJSkEKK1RBS0HEjCBBTlRBTAorVEFLQcSMIEFOVEFMCitUQUtBxIwgQU5UVU4KK1RBS0HEjCBBTlRVTgorVEFLQcSMIEFSUEFECitUQUtBxIwgRVJORQorVEFLQcSMIEVWR0VOCitUQUtBxIwgRkVSRU5DCitUQUtBxIwgRlJBTkpBCitUQUtBxIwgScWgVFZBTgorVEFLQcSMIEnFoFRWQU4KK1RBS0HEjCBKQUtJTQorVEFLQcSMIEpBTk/FoAorVEFLQcSMIEpBTk/FoAorVEFLQcSMIEpBTk/FoAorVEFLQcSMIEpPxb1FRiBESVBMIElORworVEFLQcSMIEpPxb1FRgorVEFLQcSMIEpPxb1FRgorVEFLQcSMIEpPU0lQCitUQUtBxIwgS0FST0xKCitUQUtBxIwgS0FUSUNBCitUQUtBxIwgS0FUSUNBCitUQUtBxIwgTEFESVNMQVYKK1RBS0HEjCBMQUpPxaAKK1RBS0HEjCBMQVNMTworVEFLQcSMIE1BR0RBCitUQUtBxIwgTUFUQQorVEFLQcSMIE1JSEFKTE8KK1RBS0HEjCBNSUxBTgorVEFLQcSMIE1JUktPCitUQUtBxIwgUk/FvUEKK1RBS0HEjCBTRU5BCitUQUtBxIwgU09GSUpBCitUQUtBxIwgU09GSUpBCitUQUtBxIwgU1RFVkFOCitUQUtBxIwgVElCT1IKK1RBS0HEjCBUSUJPUgorVEFLQcSMIFZJTktPCitUQUtBxIwgVkxBRElNSVIKK1RBS0HEjCBWTEFESU1JUgorVEFLQcSMIFpPTFRBTgorVEFLQcSMSSBBUlBBRCBESVBMIE9FQworVEFLQcSMSSBBUlBBRCBEUgorVEFLQcSMSSBHQUJPUgorVEFLTyBaVk9OSU1JUgorVEFLT1ZBQyBSQURJU0FWCitUQUtPVlNLSSBCTEFHT0pFCitUQUtPVlNLSSBKT1ZBTktBCitUQUxFU0tJIExKVUJJQ0EKK1RBTEVTS0kgUklTVEEKK1RBTEnEhiBEUkFHQU4KK1RBTEnEhiBNSVRBUgorVEFMSUpBTiBST8W9QQorVEFMTyDFoEFORE9SCitUQUxPIMW9SVZLQQorVEFMTyBBTEVLU0FOREFSCitUQUxPIEJSSUdJVEEKK1RBTE8gRlJBTkpBCitUQUxPIEpFTEVOQQorVEFMTyBKRUxJU0FWRVRBCitUQUxPIEpPxb1FRgorVEFMTyBKT1NJUAorVEFMTyBKT1ZBTgorVEFMTyBURVJFWkEKK1RBTE/FoEkgxJBPUsSQRQorVEFMT8WgSSBJUkVOQQorVEFMT8WgSSBLQVJPTEoKK1RBTE9WScSGIEJFSFVESU4KK1RBTE9WScSGIEhBSlJJSkEKK1RBTE9WScSGIFNBRElLCitUQU1BxaAgxJBFUsSQCitUQU1BxaAgxJBVUkEKK1RBTUHFoCBJUklORUoKK1RBTUHFoC1KT8WgQU5PViBBTEVLU0FORFJBCitUQU1BxaAgTEpVQk9NSVIKK1RBTUHFoCBNQVJJSkEKK1RBTUHFoCBNSUhBSkxPCitUQU1BxaAgUEFWTEUKK1RBTUHFoCBWTEFESU1JUgorVEFNQcWgIFZMQURJTUlSCitUQU1BxaBJIEFHT8WgVE9OCitUQU1BxaBJIEFMQURBUgorVEFNQcWgSSBUSUJPUgorVEFNQcWgS09WScSGIFpPTFRBTgorVEFNQlVSQcWgRVYgVlVLQcWgSU4KK1RBTUJVUktPVlNLSSBEUkFHQU4KK1RBTUlORMW9ScSGIMSMRURPTUlSCitUQU1JTkTFvUnEhiBBTsSQRUxLTworVEFNSU5Exb1JxIYgS09WSU5LQQorVEFNSU5Exb1JxIYgUklTVEEKK1RBTUlORMW9SUpBIERBTklMTworVEFNSU5Exb1JSkEgTUlMT1JBRAorVEFNSU5Exb1JSkEgTUlSS08KK1RBTUlORMW9SUpBIFZMQURPCitUQU7EjElLIMWgQU5ET1IKK1RBTsSMSUsgQUxCRVJUCitUQU7EjElLIEFMRUtTQU5EQVIKK1RBTsSMSUsgRU1JTAorVEFOxIxJSyBJQk9MSkEKK1RBTsSMSUsgUk9aQQorVEFOQUNLT1YgTk9WQUsKK1RBTkFDS09WScSGIEFDTworVEFOQUNLT1ZJxIYgTUlIQUpMTworVEFOQVNJxIYgSk9WQU4KK1RBTkFTScSGIE9MSVZFUkEKK1RBTkFTScSGIFBSRURSQUcKK1RBTkFTScSGIFJVxb1BCitUQU5BU0nEhiBTUEFTT0pFCitUQU5BU0nEhiBWQUxFUklKQQorVEFOQVNJxIYgVkFMRVJJSkEKK1RBTkFTSUpFVknEhiDFvUFSS08KK1RBTkFTSUpFVknEhi1GSUxJUE9WIElWQU5LQQorVEFOQVNJSkVWScSGIE1JTEFOCitUQU5BU0lKRVZJxIYgU0lOScWgQQorVEFOQVNJSklOIExVS0EKK1RBTkFTSUpJTiBQRVRBUgorVEFOQVNJSklOIFZFUkEKK1RBTkFTSU4gREFOSVNMQVZBCitUQU5BU0lOIEpPVkFOCitUQU5BU0lOIExKVUJJQ0EKK1RBTkFTSU4gTkVTVE9SCitUQU5BU0lOIFNURVZBTgorVEFOQVNJTiBTVEVWQU4KK1RBTkFTSU4gU1RFVkFOCitUQU5BU0lOIFNURVZBTgorVEFOQVNLT1ZJxIYgRFJBR0FOCitUQU5BU0tPVknEhiBEUkFHT01JUgorVEFOQVNLT1ZJxIYgR0lOQQorVEFOQVNLT1ZJxIYgR09SREFOQQorVEFOQVNLT1ZJxIYgR09TUEFWQQorVEFOQVNLT1ZJxIYgTEFaQVIKK1RBTkFTS09WScSGIE1JTEUKK1RBTkFTS09WScSGIE5PVkFLCitUQU5BU0tPVknEhiBTVEFOSVNMQVYKK1RBTkFTS09WScSGIFZJVEtPCitUQU5BU0tPVknEhiBWSVRPTUlSCitUQU5BU0tPVknEhiBWVUtBTgorVEFOREkgSlVMSUpBTkEKK1RBTkVWIFRSQUpLTworVEFOR0wgSVZBTgorVEFOR0wgT0xHQQorVEFOSkVWScSGIERSQUdPTEpVQgorVEFOSkVWScSGIExKVUJPTUlSCitUQU5KR0EgR09SQU4KK1RBTkpHQSBMSlVCT01JUgorVEFOSkdBIE1BUklKQQorVEFOSkdBIFJBSktPCitUQU5KR0EgVEFORQorVEFOS0EgScWgVFZBTgorVEFOS09TScSGIEJPR0RBTgorVEFOS09TScSGIEJPSkFOQQorVEFOS09TScSGIEJSQU5LTworVEFOS09TScSGIEpPVkFOCitUQU5LT1NJxIYgS1VaTUFOCitUQU5LT1NJxIYgTUFSS08KK1RBTktPU0nEhiBNSUhBSkxPCitUQU5LT1NJxIYgTUlMQU4KK1RBTktPU0nEhiBNSUxFTkEKK1RBTktPU0nEhiBNSUxJQ0EKK1RBTktPU0nEhiBNSUxJQ0EKK1RBTktPU0nEhiBOSUtPTEEKK1RBTktPU0nEhiBSQVpJSkEKK1RBTktPU0nEhiBTVEVWQU4KK1RBTktPVknEhiBTQUxLTworVEFOT1ZJxIYgR0FWUklMTyBNUgorVEFOT1ZJxIYgSk9WTworVEFOT1ZJxIYgVkxBRElNSVIKK1RBTlRJxIYgU0xBVktPCitUQU5VUkTFvUnEhiDFvUlWT0pJTgorVEFOVVJExb1JxIYgQUxFS1NBTkRBUgorVEFOVVJExb1JxIYgREFSSU5LQQorVEFOVVJExb1JxIYgR09KS08KK1RBTlVSRMW9ScSGIEpPVkFOCitUQU5VUkTFvUnEhiBNSUxJQ0EKK1RBTlVSRMW9ScSGIE1JUktPCitUQU5VUkTFvUnEhiBTUkJPTUlSCitUQU5VUkTFvUnEhiBTVEFOSVNMQVZBCitUQU5VUkTFvUnEhiBTVkVUT1pBUgorVEFOVVJExb1JxIYgWk9SQQorVEFQQUkgUlVET0xGCitUQVBBSiBHQUJSSUpFTAorVEFQQUogU1RBTUVOS0EKK1RBUEFMQUdBIEpPTgorVEFQQUxBR0EgVE9ET1IKK1RBUEFWScSMS0kgxIxFRE9NSVIKK1RBUEFWScSMS0kgQk9SSVZPSgorVEFQQVZJxIxLSSBGRU9ET1IKK1RBUEFWScSMS0kgTUxBREVOCitUQVBBVknEjEtJIFJBRE9WQU4KK1RBUEFWScSMS0kgU1RFVkFOCitUQVBBVklDQSDEjEVET01JUgorVEFQQVZJQ0EgQUxFS1NBTkRSQQorVEFQQVZJQ0EgQUxFS1NBTkRSQQorVEFQQVZJQ0EgQk9SS0EKK1RBUEFWSUNBIEJSQU5LQQorVEFQQVZJQ0EgRE9CUklMQQorVEFQQVZJQ0EgSkVMSUNBCitUQVBBVklDQSBMSlVCT01JUgorVEFQQVZJQ0EgTUlMT1JBRAorVEFQQVZJQ0EgTUlUQQorVEFQQVZJQ0EgUkFET1NMQVZBCitUQVBBVklDQSBSQUpLTworVEFQQVZJQ0EgU0lNQQorVEFQQVZJQ0EgU1RFVkFOCitUQVBBVklDQSBUSUhPTUlSCitUQVBBVklDQSBWRVJJQ0EKK1RBUEFWSUNBIFZFUklDQQorVEFSQUvEjElKQSDEkE9SxJBFCitUQVJBS8SMSUpBLU1JTE9WQU5PVknEhiBSQVRLQQorVEFSQU5Exb1BIElWQU4KK1RBUkFORMW9QSBJVkFOCitUQVJBU0VOS08gQlJBVElTTEFWIERSCitUQVJCVUsgTUlSS08KK1RBUkJVSyBOSUtPTEEKK1RBUkVWU0tJIMSGQU1JTAorVEFSR1XFoCBNQVRJSkEKK1RBUkkgSUxPTkEKK1RBUkpBTiBERcW9RQorVEFSSkFOIEdBQk9SCitUQVJKQU4gSU1SRQorVEFSSkFOIEtBUkxPCitUQVJKQU4gVElCT1IKK1RBUktPIEpBTk/FoAorVEFSTEHEhiBQRVJJQ0EKK1RBUkxFIElMSUpBCitUQVJMRSBJVkFOCitUQVJOT0NLSSBBTUFMSUpBIERSCitUQVJOT0NLSSBQQUwKK1RBU0VWIEJMQcW9TworVEFTRVZTS0kgSUxPCitUQVNFVlNLSSBKT1JEQU4KK1RBU0nEhiDFvUFLTElOQQorVEFTScSGIMW9SVZPSklOCitUQVNJxIYgxJBPUsSQRQorVEFTScSGIEFOxJBFTElKQQorVEFTScSGIEFOQQorVEFTScSGIEJMQUdPSkUgRElQTCBQUkFWTklLCitUQVNJxIYgQkxBR09KRQorVEFTScSGIEJPxb1JREFSIE1SIFBICitUQVNJxIYgQk9SSVNMQVYKK1RBU0nEhiBCT1JJVk9KRQorVEFTScSGIEJPUklWT0pFCitUQVNJxIYgREVTQU5LQQorVEFTScSGIERPQlJJVk9KCitUQVNJxIYgSVZBTgorVEFTScSGIExKVUJPRFJBRyBESVBMIElORworVEFTScSGIE1JTE/FoCBEUiBMRUtBUgorVEFTScSGIE1JTE/FoCBEUgorVEFTScSGIE1JTE/FoCBEUgorVEFTScSGIE1JTE/FoAorVEFTScSGIE1JUk9TTEFWCitUQVNJxIYgTUlST1NMQVYKK1RBU0nEhiBORVZFTktBCitUQVNJxIYgUkFERQorVEFTScSGIFNJTknFoEEKK1RBU0nEhiBTTE9CT0RBTgorVEFTScSGIFRSSUZVTgorVEFTScSGIFVST8WgCitUQVNJxIYgVkVSQQorVEFTScSGIFZMQURBTktBCitUQVNJxIYgWk9SQU4KK1RBU0tPVknEhiBEVcWgQU4KK1RBU0tPVknEhiBNSVJPU0xBVgorVEFTS09WScSGIFBFUkEKK1RBU09WQUMgRE9CUklMQQorVEFTT1ZBQyBNSUxPUkFECitUQVRBSSBFTUlMSUpBCitUQVRBSSBJVkFOCitUQVRBSSBLQVJPTEoKK1RBVEFJIE1BUkdJVAorVEFUQUkgVElCT1IKK1RBVEFMT1ZJxIYgxb1JVktPCitUQVRBTE9WScSGIEJSQU5JTUlSCitUQVRBTE9WScSGIERSQUdBTgorVEFUQUxPVknEhiBJTElKQQorVEFUQUxPVknEhiBJTElKQQorVEFUQUxPVknEhiBMQVpPCitUQVRBTE9WScSGIE1JTEFOCitUQVRBTE9WScSGIE1JTEFOCitUQVRBTE9WScSGIFBFVEFSCitUQVRBTE9WScSGIFBFVEFSCitUQVRBTE9WScSGIFBFVEFSCitUQVRBUiBEVcWgQU4KK1RBVEFSIERVxaBBTgorVEFUQVJFVknEhiBCTEHFvUEKK1RBVEFSSU4gUlXFvUlDQQorVEFUQVJTS0kgRFXFoEFOCitUQVRBUlNLSSBNSUxPUkFECitUQVRBUlNLSSBOQURBCitUQVRBUlNLSSBTVkVUSVNMQVYKK1RBVEFSU0tJIFZMQURFVEEKK1RBVEnEhiDFvUFSS08KK1RBVEnEhiDEkFVSxJBJTktBCitUQVRJxIYgQUxFS1NBTkRBUgorVEFUScSGIEFMRUtTQU5EQVIKK1RBVEnEhiBBTktJQ0EKK1RBVEnEhiBCUkFOS08KK1RBVEnEhiBEQU5BCitUQVRJxIYgRFJBR0FOCitUQVRJxIYgRFJBR0/FoAorVEFUScSGIERSQUdPTEpVQgorVEFUScSGIERSQUdPTUlSCitUQVRJxIYgRFXFoEFOCitUQVRJxIYgRU1JTCBEUgorVEFUScSGIEVWSUNBCitUQVRJxIYgSUxJSkEKK1RBVEnEhiBJTElKQQorVEFUScSGIElMT05LQQorVEFUScSGIEpFTEVOQQorVEFUScSGIEpPVkFOIERJUEwgSU5HCitUQVRJxIYgSk9WQU4KK1RBVEnEhiBMQVpBUgorVEFUScSGIE1BUkEKK1RBVEnEhiBNQVJJSkEKK1RBVEnEhiBNQVJJSkEKK1RBVEnEhiBNSUxBTgorVEFUScSGIE1JTEFOCitUQVRJxIYgTUlMSVZPSgorVEFUScSGIE1JTEtBCitUQVRJxIYgTUlMT8WgCitUQVRJxIYgTUlMT1JBRAorVEFUScSGIE1JTE9TQVYKK1RBVEnEhiBNSUxVVElOIERJUEwgSU5HCitUQVRJxIYgTkVERUxKS08KK1RBVEnEhiBQQUpBCitUQVRJxIYgUEVSU0lEQQorVEFUScSGIFBFVEFSCitUQVRJxIYgUkFETUlMQQorVEFUScSGIFJBRE9TTEFWCitUQVRJxIYgU0xBVktPCitUQVRJxIYgU0xPQk9EQU4KK1RBVEnEhiBTUkJJU0xBVgorVEFUScSGIFNURVZBTgorVEFUScSGIFRPTUlTTEFWCitUQVRJxIYgWkxBVElDQQorVEFUT01JUiBNQVJLTworVEFUT01JUk9WIEpPVkFOCitUQVRPTUlST1YgTUFSSUpBCitUQVRPTUlST1YgTUFSSUpBCitUQVRPTUlST1YgUkFESVZPSgorVEFUT01JUk9WIFpPUkFOCitUQVRPTUlST1ZJxIYgQlJBTktBCitUQVXFoEFOIE1BUktPCitUQVXFoEFOT1ZJxIYgSUxJSkEKK1RBVcWgQU5PVknEhiBSQURFCitUQVVCTkVSIEtBVElDQQorVEXFoEFOT1YgTUlMQU4KK1RFxaBBTk9WScSGIMSMRURPCitURcWgQU5PVknEhiDFvUVMSktPCitURcWgQU5PVknEhiDEkE9LTworVEXFoEFOT1ZJxIYgQ1ZJSkVUQQorVEXFoEFOT1ZJxIYgRFJBR0FOCitURcWgQU5PVknEhiBEUkFHQU4KK1RFxaBBTk9WScSGIERVxaBBTgorVEXFoEFOT1ZJxIYgSkVMQQorVEXFoEFOT1ZJxIYgTEFaQVIKK1RFxaBBTk9WScSGIE5FTkFECitURcWgQU5PVknEhiBORVZFTktBCitURcWgQU5PVknEhiBQRVRBUgorVEXFoEFOT1ZJxIYgUkHFoEtPCitURcWgQU5PVknEhiBSQUpLTworVEXFoEFOT1ZJxIYgVE9NQQorVEXFoEFOT1ZJxIYgVk9KQQorVEXFoEFOT1ZJxIYgWk9SQU4KK1RFxaBFTkpJIEVEVUFSRAorVEXFoEnEhiDEkE9SxJBFCitURcWgScSGIEFMRUtTQU5EQVIKK1RFxaBJxIYgREFSSU5LQQorVEXFoEnEhiBEUkFHQU4KK1RFxaBJxIYgRFXFoEFOCitURcWgScSGIEVSxb1FQkVUCitURcWgScSGIEdSQURJTUlSCitURcWgScSGIElMSUpBCitURcWgScSGIEpVTElKQU5BCitURcWgScSGIExKVUJPTUlSCitURcWgScSGIExVS0EKK1RFxaBJxIYgTUFSSUpBCitURcWgScSGIE1JTEVOS08KK1RFxaBJxIYgTUlMRQorVEXFoEnEhiBNSUxFCitURcWgScSGIE1JTElDQQorVEXFoEnEhiBNSUxPUkFECitURcWgScSGIE1JUktPCitURcWgScSGIFBFUlNBCitURcWgScSGIFJBRElTTEFWCitURcWgScSGIFNMQVZLQQorVEXFoEnEhiBTTEFWT0xKVUIgRElQTCBJTkcKK1RFxaBJxIYgU09GSUpBCitURcWgScSGIFNUQU5JU0xBVkEKK1RFxaBJxIYgU1RFVkFOIERSCitURcWgScSGIFNWRVRMQU5BCitURcWgScSGIFpEUkFWS08KK1RFxaBJTiBKQVNNSU5LQQorVEXFoElOIExKVUJJTktBCitURcWgSU4gTUlMT8WgCitURcWgSU4gU1RFVktBCitURcWgSU4gVkVTTkEKK1RFxaBPVknEhiBEUkFHSUNBCitURcWgT1ZJxIYgTEpVQk8KK1RFxaBPVknEhiBNSUxFTktPCitURcWgT1ZJxIYgTUlMT01JUgorVEXFoE9WScSGIE1JTE9SQUQKK1RFxaBPVknEhiBWQVNJTElKRQorVEXFvUxBIEFORFJJSkEKK1RFREnEhiDFvUlWS08KK1RFREnEhiBCUkFOSVNMQVYKK1RFREnEhiBNSUxPVkFOCitURURJxIYgTkVWRU5LQQorVEVHRUxUSUpBIEJPR0RBTgorVEVHRUxUSUpBIERVxaBBTgorVEVHRUxUSUpBIERVxaBBTgorVEVHRUxUSUpBIElMT05LQQorVEVHRUxUSUpBIE1BR0RBTEVOQQorVEVHRUxUSUpBIE1JTEFOCitURUdFTFRJSkEgTUlUUkEKK1RFR0VMVElKQSBTVEFOS08KK1RFR0VMVElKQSBWTEFKS08KK1RFR0xBxaAgQU5BCitURUdMQcWgIExJRElKQQorVEVHTEHFoCBOQURBCitURUdMQcWgSSBJxaBUVkFOCitURUdMQcWgSSBKT8W9RUYKK1RFSknEhiBCUkFOS08KK1RFSknEhi1LT1ZBxIwgTUFSSUpBCitURUpJxIYgTEFaQVIKK1RFSknEhiBNSUxJSkEKK1RFS0nEhiBCT1JPCitURUtJxIYgTUlMQU4KK1RFS0nEhiBNSUxLQQorVEVLScSGIE1JT0RSQUcKK1RFS0nEhiBNSVJLTworVEVLScSGIFNMQVZJQ0EKK1RFS0nEhiBTTEFWS08KK1RFTCBGRVJFTkMKK1RFTCBKQU5PxaAKK1RFTCBKRUxJU0FWRVRBCitURUwgSkVORQorVEVMIFBFVEFSCitURUwgVklMTU/FoAorVEVMQVJPViBBTktBCitURUxBUk9WIEpPVkFOCitURUxBUk9WIE1JTE/FoAorVEVMQVJPViBOQURBCitURUxBUk9WIFBFUkEKK1RFTEFST1YgU0lNQQorVEVMQVJPViBTSU5JxaBBCitURUxBUk9WIFNJTknFoEEKK1RFTEFST1YgU01JTEpBTkEKK1RFTEFST1YgVk9KSU4KK1RFTEFST1YgWk9SQQorVEVMQVJPVknEhiBCT1JJUworVEVMQVJPVknEhiBESU1JVFJJSkUKK1RFTEFST1ZJxIYgSVZBTkEKK1RFTEFST1ZJxIYgSVZBTgorVEVMQVJPVknEhiBSQVRPTUlSCitURUxBUk9WScSGIFNMT0JPREFOCitURUxBUk9WScSGIFNURVZBTgorVEVMQVJPVknEhiBTVEpFUEFOCitURUxFS0kgxaBBTkRPUgorVEVMRUtJIEVSSUtBCitURUxFS0kgU1RFVkFOCitURUxFS0kgVkVSQQorVEVNRVJJTkFDIERBUkEKK1RFTUVSSU5BQyBNSUxFVkEKK1RFTUVSSU5BQyBNSU9EUkFHCitURU1FUklOU0tJIEpFTElDQQorVEVNRVJJTlNLSSBKT1ZBTgorVEVNRVJJTlNLSSBOQURBCitURU1VTk9WScSGIE1BUklKQQorVEVOQ0UgQUxCSU4KK1RFTkpJIMSQT1LEkEUKK1RFTkpJIEpPU0lQCitURU5KSSBKT1NJUAorVEVOSkkgSk9TSVAKK1RFTkpJIEtTRU5JSkEKK1RFTkpJIE1BUklKQQorVEVOSk9WScSGIERPQlJJVk9KRQorVEVOSk9WScSGIE1JTE/FoAorVEVOSk9WScSGIFJBRElWT0pFCitURU9ET1JPVknEhiBBTkRSRUpBCitURU9ET1JPVknEhiBET0JSSUxBCitURU9ET1JPVknEhiBEVcWgQU4KK1RFT0RPUk9WScSGIEpPVkFOCitURU9ET1JPVknEhiBKT1ZBTgorVEVPRE9ST1ZJxIYgTEpVQk8KK1RFT0RPUk9WScSGIE1BUkEKK1RFT0RPUk9WScSGIE1JTEFOCitURU9ET1JPVknEhiBOQURBCitURU9ET1JPVknEhiBQQUpBCitURU9ET1JPVknEhiBQRVJBCitURU9ET1JPVknEhiBQRVJBCitURU9ET1JPVknEhiBSQVRJTUlSCitURU9ET1JPVknEhiBTQVZBCitURU9ET1JPVknEhiBTSU1BCitURU9ET1JPVknEhiBTTE9CT0RBTgorVEVPRE9ST1ZJxIYgVklUT01JUgorVEVPRE9ST1ZJxIYgVkxBRElTTEFWIERJUEwgSU5HCitURU9ET1JPVknEhiBWTEFESVNMQVZBCitURU9ET1NJxIYgTUlSSkFOQQorVEVPRE9TSUpFVknEhiBCUkFOSVNMQVYKK1RFT0RPU0lKRVZJxIYgTUlMSUNBCitURU9ET1NJSkVWScSGIFpPUkFOCitURU9GQU5PViDEkFVSxJBJQ0EKK1RFT0ZBTk9WIEJPxaBLTworVEVPRkFOT1YgRE9CUklOS0EKK1RFT0ZBTk9WIERVxaBBTgorVEVPRkFOT1YgRFXFoEtPCitURU9GQU5PViBNQVJJTktPCitURU9GQU5PViBNSUxBTgorVEVPRkFOT1YgTUlMSVZPSgorVEVPRkFOT1YgTUlMT8WgCitURU9GQU5PViBNSUxPxaAKK1RFT0ZBTk9WIE9MSVZFUkEKK1RFT0ZBTk9WIFpPUkEKK1RFT0ZBTk9WScSGIMWgVEVGQU5JSkEKK1RFT0ZBTk9WScSGIEFMRUtTQU5EQVIKK1RFT0ZBTk9WScSGIEFMRUtTQU5EQVIKK1RFT0ZBTk9WScSGIEFOQQorVEVPRkFOT1ZJxIYgQVJBTsSQRUwKK1RFT0ZBTk9WScSGIEJPR0RBTgorVEVPRkFOT1ZJxIYgQk9HREFOCitURU9GQU5PVknEhiBEQU5JTE8KK1RFT0ZBTk9WScSGIERPTktBCitURU9GQU5PVknEhiBEVcWgQU4KK1RFT0ZBTk9WScSGIE1BUktPIERSIFZFVEVSSU5FCitURU9GQU5PVknEhiBNSUxFVkEKK1RFT0ZBTk9WScSGIE1JTElDQQorVEVPRkFOT1ZJxIYgVEFESUpBCitURU9GSUxPVknEhiDEkFVSxJBJQ0EKK1RFT0ZJTE9WScSGIEFMRUtTQU5EQVIKK1RFT0ZJTE9WScSGIEJSQU5LQQorVEVPRklMT1ZJxIYgR09SQU4KK1RFT0ZJTE9WScSGIE1PTcSMSUxPCitURU9GSUxPVknEhiBTQVZPCitURU9WQU5PVknEhiBORVZFTktBCitURVDFoEEgTkVCT0rFoEEKK1RFUMWgQSBTSU5JxaBBCitURVDFoEnEhiBKT1ZJQ0EKK1RFUMWgScSGIE1JT0RSQUcKK1RFUMWgScSGIFJBREUKK1RFUEHEjEVWScSGIEFORFJFSkEKK1RFUEFWxIxFVknEhiDFvUFOS0EKK1RFUEFWxIxFVknEhiBCT8W9SURBUgorVEVQQVbEjEVWScSGIEdPSktPCitURVBBVsSMRVZJxIYgTUlMT1ZBTgorVEVQQVbEjEVWScSGIFBFVEFSIERSCitURVBBVsSMRVZJxIYgUkFUS08KK1RFUEFWxIxFVknEhiBTVFJBSElOSkEKK1RFUEnEhiBGUkFOQ0lLQQorVEVQScSGIEdPUkFOCitURVBJxIYgSk9WQU4KK1RFUEnEhiBNSUxBTgorVEVQScSGIE1JTE/FoAorVEVQScSGIE1JTE9WQU4KK1RFUEnEhiBORURFTEpLTworVEVQScSGIE9CUkVOS08KK1RFUEnEhiBSQURPVkFOCitURVBJxIYgUkFKS08KK1RFUEnEhiBTTkXFvUFOQQorVEVQScSGIFZJREEKK1RFUEnEhiBaT1JBTgorVEVSRcSMRUsgQU7EkEVMS0EKK1RFUkXEjEnEhiBMQUpPxaAKK1RFUkXEjElLIFBBTAorVEVSRUNLSSBJxaBUVkFOCitURVJFSyDEkFVMQQorVEVSRUsgQU5EUklKQQorVEVSRUsgRkVSRU5DCitURVJFSyBJxaBUVkFOCitURVJFSyBJTVJFIERJUEwgSU5HCitURVJFSyBJUkVOQQorVEVSRUsgSkFOT8WgCitURVJFSyBLQVRBTElOCitURVJFSyBMQVNMTworVEVSRUsgTEpVREVWSVQgRFIgSU5HCitURVJFSyBPTEdBCitURVJFSyBUSUJPUgorVEVSRVpJSkEgQk9TSUxKS0EKK1RFUkhFxaAgxaBBTkRPUgorVEVSSkVLIEFMRUtTQU5EQVIKK1RFUkpFSy1LT1ZBxIwgS0FSTE8KK1RFUkpFSyBNSUhBSkxPCitURVJKRUsgVklLVE9SSUpBCitURVJLRUxKIEFOQQorVEVSTEpVSyBJVkFOCitURVJOT1ZBQyBJxaBUVkFOCitURVJaScSGIMW9SVZLTworVEVSWknEhiDEkE9SxJBFCitURVJaScSGIMSQVVJPCitURVJaScSGIEJFTEEKK1RFUlpJxIYgQklTRVJLQQorVEVSWknEhiBCT0dPTEpVQgorVEVSWknEhiBCUkFOS0EKK1RFUlpJxIYgRFJBR0FOCitURVJaScSGIERSQUdPTUlSCitURVJaScSGIERVxaBBTgorVEVSWknEhiBEVcWgQU4KK1RFUlpJxIYgRlJBTkNBCitURVJaScSGIEpFVlJFTQorVEVSWknEhiBKT1ZBTgorVEVSWknEhiBNSUxBTgorVEVSWknEhiBNSUxBTgorVEVSWknEhiBNSUxFTkEKK1RFUlpJxIYgTUlMRU5LTworVEVSWknEhiBNSUxJQ0EKK1RFUlpJxIYgTUlPRFJBRworVEVSWknEhiBNSU9EUkFHCitURVJaScSGIE5JS09MQQorVEVSWknEhiBOSkVHT1NBVkEKK1RFUlpJxIYgUEFWTEUKK1RFUlpJxIYgUEVSS0EKK1RFUlpJxIYgUEVUQVIgRFIKK1RFUlpJxIYgUEVUQVIKK1RFUlpJxIYgUEVUQVIKK1RFUlpJxIYgUkVMSkEKK1RFUlpJxIYgU0FWQQorVEVSWknEhiBTTEFWS08KK1RFUlpJxIYgU0xBVktPCitURVJaScSGIFNMQVZOQQorVEVSWknEhiBTTE9CT0RBTgorVEVSWknEhiBTUkJJU0xBVgorVEVSWknEhiBTVEFOS0EKK1RFUlpJxIYgVEVPRE9SCitURVJaScSGIFRFUkVaQQorVEVSWknEhiBUUklGVU4KK1RFUlpJxIYgVkVSQQorVEVSWknEhiBWTEFEQU4KK1RFUlpJxIYgVk9KSVNMQVYKK1RFUlpJSkEgTUlUQVIKK1RFUlpJTiBCUkFOSVNMQVYKK1RFUlpJTiBCUkFOS08KK1RFUlpJTiBEUkFHT1NMQVYKK1RFUlpJTiBEVcWgQU4KK1RFUlpJTiBKT1ZBTktBCitURVJaSU4gSk9WQU5LQQorVEVSWklOIExKVUJJQ0EKK1RFUlpJTiBNSUxBTgorVEVSWklOIE1JTElOQQorVEVSWklOIE1JUkpBTkEKK1RFUlpJTiBNSVJPU0xBVkEKK1RFUlpJTiBNSVJPU0xBVkEKK1RFUlpJTiBNSVRBCitURVJaSU4gTkVWRU5LQQorVEVSWklOIFJBRElWT0oKK1RFUlpJTiBSQURNSUxBCitURVJaSU4gUklTVEEKK1RFUlpJTiBTTE9CT0RBTgorVEVSWklOIFNUQU5LTworVEVSWklOIFRPxaBBCitURVJaSU4gVkFTQQorVEVSWklOIFZFTElNSVIKK1RFUlpJTiBWRUxKS08KK1RFUlpJTiBWRVJJQ0EKK1RFUlpJTiBWRVNFTElOCitURVJaSU4gVk9KSVNMQVYKK1RFU0xBIMWgUElSTworVEVTTEEgQlJBTktPCitURVNMQSBEUkFHQU4KK1RFU0xBIE1JUkEKK1RFU0xJxIYgxJBPUsSQRQorVEVTTEnEhiBNQUtTSU0KK1RFU0xJxIYgTUFSS08KK1RFU0xJxIYgVkxBRElNSVIKK1RFU1RJTiBNQVJJSkEKK1RJxaBBTk9WScSGIE1JTElWT0oKK1RJxaBJxIYgTUlMRU5BCitUScWgTUEgxIxFRE9NSVIKK1RJxaBNQSDFvUVMSktPCitUScWgTUEgxJBVUklDQQorVEnFoE1BIEFORFJFSgorVEnFoE1BIEJSQU5LTworVEnFoE1BIERVxaBBTgorVEnFoE1BIERVxaBBTgorVEnFoE1BIElMSUpBCitUScWgTUEgSk9WQU4KK1RJxaBNQSBMQVpBUgorVEnFoE1BIExKSUxKQU5BCitUScWgTUEgTUFSSUpBCitUScWgTUEgTUFSVEEKK1RJxaBNQS1NSUxPxaBFVlNLSSBOQVRBxaBBCitUScWgTUEgTUlMT8WgCitUScWgTUEgTUlSS08KK1RJxaBNQSBNT01JUgorVEnFoE1BIE5JS09MQQorVEnFoE1BIFNJTknFoEEKK1RJxaBNQSBTTUlMSkEKK1RJxaBNQSBTVEVWQU4KK1RJxaBNQSBTVkVUT1pBUgorVEnFoE1BIFZPSklOS0EKK1RJxaBNQSBWT0pJTgorVEnFoE1BIFpPUkFOCitUSUJBSSBJxaBUVkFOCitUSUMgQU5BTUFSSUpBCitUSUNBIEJPxb1PCitUSUNBIENWRVRBCitUSUNBIERNSVRBUgorVElDQSBEUkFHQU4KK1RJQ0EgSk9WQU4KK1RJQ0EgTUlMT8WgCitUSUNBIE5FREVMSktPCitUSUdBTkogQU5URQorVElISSBKT1NJUAorVElIT01JUk9WScSGIE1JTEFOCitUSUhPTUlST1ZJxIYgVkVMSktPCitUSUhWSU5TS0kgVkxBREFOCitUSUhWSU5TS0kgVkxBRElNSVIgRElQTCBJTkcKK1RJSkFOScSGIE1JTE/FoAorVElKQU5JxIYgU01JTEpBCitUSUpBTknEhiBaT1JBTgorVElLVkXFoEEgTkFJTEEKK1RJS1ZJxIYgQk/FoEtPCitUSUtWScSGIE1JUk9TTEFWCitUSUtWSUNLSSBIUlZPSkUKK1RJS1ZJQ0tJIE1BUklKQU5BCitUSUwgRURWSU4gRFIKK1RJTUFSQUMgQlJBTktPCitUSU1BUkFDIFNUT0pBTgorVElNQVJPViDEkE9SxJBFCitUSU1BUk9WIFNURVZBTgorVElNQVJPViBWQVNBCitUSU1BUk9WIFZFUkEKK1RJTUlMScSGIERJTUlUUklKRQorVElNS08gSVJJTkVKCitUSU1LTyBMSlVCT1YKK1RJTUtPIE1FTEFOSUpBCitUSU1LTyBORVNUT1IKK1RJTUtPIFZFUkEKK1RJTUtPIFZMQURJTUlSCitUSU1PVEnEhiDEkE9SxJBFCitUSU1PVEnEhiBTVEFOQQorVElNT1RJxIYgVVJPxaAKK1RJTU9USUpFVknEhiBBTklDQQorVElNT1RJSkVWScSGIEJPxb1JREFSCitUSU1PVElKRVZJxIYgRElNSVRSSUpFCitUSU1PVElKRVZJxIYgSkVWUkVNCitUSU1PVElKRVZJxIYtS09QUklWSUNBIE1BSkEKK1RJTU9USUpFVknEhiBNSVJPU0xBVgorVElNT1RJSkVWScSGIE9MR0EKK1RJTU9USUpFVknEhiBQTEVNRU5LQQorVElNT1RJSkVWScSGIFJBRE9TTEFWCitUSU5LT1ZJxIYgVE9NSVNMQVYKK1RJTlRFUiBIRURWSUdBCitUSU5UT1IgxJBVUkEKK1RJTlRPUiBEVcWgQU4KK1RJTlRPUiBNQVJLTworVElOVE9SIE1JTEtBCitUSU5UT1IgTUlPRFJBRworVElOVE9SIE1JUkEKK1RJTlRPUi1SQURPTUlSIFNUT0pBCitUSU5UT1IgU1RFVkFOCitUSU5VUyBCRVJOQURFVEEKK1RJTlVTIE1BUlRBCitUSU9ET1JPVknEhiBMSklMSkFOQQorVElPRE9ST1ZJxIYgUkFET1ZBTgorVElQxaBJTiBCT1JJU0xBVgorVElQVVJBIEpPU0lQCitUSVBVUkEgSk9TSVAKK1RJUFVSQSBMQURJU0xBVgorVElQVVJBIExBU0xPCitUSVIgScWgVFZBTgorVElSIE1JTEtBCitUSVIgUEVUQVIKK1RJUkkgQU5UQUwKK1RJUklOREEgxJBVUkEKK1RJUklOR0VSIEVMWkEKK1RJUktBSkxBIEFOQQorVElSS0FKTEEgU0xBVk9NSVIKK1RJUk5BTknEhiBCSVNFUktBCitUSVNJTk9WScSGIEpFTElTQVZFVEEKK1RJU1RBIEVSxb1FQkVUCitUSVNUQSBKQU5PxaAKK1RJVEVMQUMgxJBPUsSQRQorVElURUxBQyDEkE9SxJBFCitUSVRFTEFDIEpFTEVOQQorVElURUxBQyBKT1ZBTgorVElURUxBQyBNSUxJTktBCitUSVRFTEFDIE5BREEKK1RJVEVMQUMgU1RFVkFOCitUSVRFTEFDIFpPUklDQQorVElUT1YgQUxFS1NBTkRBUgorVElUT1YgQU5BCitUSVRPViBBTklDQQorVElUT1YgRVZHRU5JSkUKK1RJVE9WIFBBVkxFCitUSVRPViBUT01JU0xBVgorVEtBTMSMRUMgSk9WQU4KK1RLQUxFQyBQQVZBTworVE/FoEnEhiDFvUFSS08KK1RPxaBJxIYgQk9SSVNMQVZBCitUT8WgScSGIEJPUklTTEFWCitUT8WgScSGIEJSQVRJU0xBVgorVE/FoEnEhiBCUkFUSVNMQVYKK1RPxaBJxIYgREFOSUNBCitUT8WgScSGIERSQUdBTgorVE/FoEnEhiBEUkFHQU4KK1RPxaBJxIYgRFXFoEFOCitUT8WgScSGIERVxaBBTgorVE/FoEnEhiBEVcWgQU4KK1RPxaBJxIYgRVLFvUVCRVQKK1RPxaBJxIYgRVZJQ0EKK1RPxaBJxIYgR09KS08KK1RPxaBJxIYgSkVMQQorVE/FoEnEhiBKT1ZBTgorVE/FoEnEhiBKT1ZJQ0EKK1RPxaBJxIYgS1JTVEFOCitUT8WgScSGIEtSU1RPTUlSCitUT8WgScSGIExKVUJJQ0EKK1RPxaBJxIYgTEpVQklOS08KK1RPxaBJxIYgTUlIQUpMTworVE/FoEnEhiBNSUxBTgorVE/FoEnEhiBNSUxBTgorVE/FoEnEhiBNSUxBTgorVE/FoEnEhiBNSUxFVkEKK1RPxaBJxIYgTUlMRQorVE/FoEnEhiBNSUxPxaAKK1RPxaBJxIYgTUlMT1JBRAorVE/FoEnEhiBNSUxVVElOCitUT8WgScSGIE1JT0RSQUcKK1RPxaBJxIYgTUlSS08KK1RPxaBJxIYgTUlUQVIKK1RPxaBJxIYgTkVERUxKS08KK1RPxaBJxIYgTkVWRU5LQQorVE/FoEnEhiBOSUtPTEEKK1RPxaBJxIYgTklLTworVE/FoEnEhiBOT1ZBSworVE/FoEnEhiBPQlJBRAorVE/FoEnEhiBPU1RPSkEKK1RPxaBJxIYgUEVSTworVE/FoEnEhiBQRVRBUgorVE/FoEnEhiBSQURFCitUT8WgScSGIFJBRE9NSVIKK1RPxaBJxIYgUkFET01JUgorVE/FoEnEhiBSQVRLTworVE/FoEnEhiBTQVZBCitUT8WgScSGIFNMQVZLQQorVE/FoEnEhiBTT0ZJSkEKK1RPxaBJxIYgU1RBTklNSVIKK1RPxaBJxIYgU1RFVkFOCitUT8WgScSGIFNURVZBTgorVE/FoEnEhiBTVkVUSVNMQVYKK1RPxaBJxIYgU1ZFVExBTkEKK1RPxaBJxIYgVkVMSUJPUgorVE/FoEnEhiBWRVJBCitUT8WgScSGIFZJRAorVE/FoEnEhiBWTEFETworVE/FoEnEhiBWTEFTVElNSVIKK1RPxaBJxIYgVk9KSU4KK1RPxaBJTk9WScSGIExVS0EKK1RPxaBLT1YgSFJBTklTTEFWCitUT8WgS09WIFBFUkEKK1RPxaBLT1ZJxIYgVlXEjEVUQQorVE/FoEtPVknEhiBWVcSMScSGCitUT8WgS09WScSGIFpEUkFWS08KK1RPxaBPVknEhiBNSUxBTktBCitUT8WgT1ZJxIYgTUlMT0pFCitUT8SQRVIgS09TVEEKK1RPQkTFvUnEhi1CUkHFoEFOQUMgTUlST1NMQVZBCitUT0JExb1JxIYgS0FUQVJJTkEKK1RPQkTFvUnEhiBNSUxFTktPCitUT0JExb1JxIYgU1RFVkFOCitUT0JJIE1BUklKQQorVE9CSSBNSVJPU0xBVgorVE9CSUHFoCBWSUxNT8WgCitUT0JPTEtBIEFOQQorVE9CT0xLQSBEQU5JRUwKK1RPQk9MS0EgRVJJS0EKK1RPQk9MS0EgScWgVFZBTgorVE9CT0xLQSBJTE9OQQorVE9EScSGIEJPR0RBTgorVE9EScSGIEJPUklTTEFWCitUT0RJxIYgQk9SSVNMQVYKK1RPREnEhiBCUkFOSVNMQVYKK1RPREnEhiBEQU5JSkVMQQorVE9EScSGIEdPSktPIERJUEwgSU5HCitUT0RJxIYgTUFSSUpBTkEKK1RPREnEhiBNSUxBTktPCitUT0RJxIYgTUlMQU4KK1RPREnEhiBNSUxFCitUT0RJxIYgTUlMT8WgIERJUEwgSU5HCitUT0RJxIYgTUlMT8WgCitUT0RJxIYgTUlST1NMQVYKK1RPREnEhiBORcSQTworVE9EScSGIFJBRElWT0oKK1RPREnEhiBSQUpLTworVE9EScSGIFJBVE9NSVIKK1RPREnEhiBTVEFOSVNBVkEKK1RPREnEhiBTVEFOS08KK1RPREnEhiBUT01JU0xBVgorVE9EScSGIFZFTElNSVIKK1RPREnEhiBWTEFETworVE9ET8WgS09WScSGIEJPR0RBTgorVE9ET8WgS09WScSGIE5BREEKK1RPRE/FoEtPVknEhiBORU1BTkpBCitUT0RPUsSMRVZJxIYgRFJBR1VUSU4KK1RPRE9SxIxFVknEhiBPU1RPSkEKK1RPRE9SxIxFVknEhiBQRVJPCitUT0RPUsSMRVZJxIYgU1ZFVExBTkEKK1RPRE9SxIxFVknEhiBWQVNJTElKRQorVE9ET1LEjEVWScSGIFZBU08KK1RPRE9SxIxFVknEhiBWT0pJTgorVE9ET1JBTiBUUkFKQU4KK1RPRE9SScSGIMSMRURPTUlSCitUT0RPUknEhiBCUkFOS08KK1RPRE9SScSGIERSQUdBTgorVE9ET1JJxIYgR09KS08KK1RPRE9SScSGIElMSUpBCitUT0RPUknEhiBKRUxFTkEKK1RPRE9SScSGIEpPVkFOS0EKK1RPRE9SScSGIEpPVkFOCitUT0RPUknEhiBMSlVCQQorVE9ET1JJxIYgTEpVQklWT0pFCitUT0RPUknEhiBNQVJJSkEKK1RPRE9SScSGIE1JTE/FoAorVE9ET1JJxIYgTUlMT8WgCitUT0RPUknEhiBORURFTEpLTworVE9ET1JJxIYgTklLT0xBCitUT0RPUknEhiBOSUtPCitUT0RPUknEhiBSQURNSUxBCitUT0RPUknEhiBTRUxJTUlSCitUT0RPUknEhiBUUklWVU5BCitUT0RPUk9WIMSQVVJBCitUT0RPUk9WIEFMRUtTQU5EQVIKK1RPRE9ST1YgQklTRVJLQQorVE9ET1JPViBERVNBTktBCitUT0RPUk9WIEdMScWgQQorVE9ET1JPViBJVkFOCitUT0RPUk9WLUpBxaBBUkVWScSGIERBTklDQQorVE9ET1JPViBNSUxJVk9KCitUT0RPUk9WIE1JTE/FoAorVE9ET1JPViBORURFTEpLTworVE9ET1JPViBPQlJFTktBCitUT0RPUk9WIFJBRE9WQU4KK1RPRE9ST1YgUk9CRVJUCitUT0RPUk9WIFNBVkEKK1RPRE9ST1YgU0xPQk9EQU4KK1RPRE9ST1YgU1BJUk8gRFIKK1RPRE9ST1YgVE9NSVNMQVYKK1RPRE9ST1ZJxIYgxIxFRE8KK1RPRE9ST1ZJxIYgxb1BUktPCitUT0RPUk9WScSGIMW9QVJLTworVE9ET1JPVknEhiDFvUlWT0pJTgorVE9ET1JPVknEhiDFvUlWT1RBCitUT0RPUk9WScSGIMW9SVZPVEEKK1RPRE9ST1ZJxIYgQUxFS1NBTkRBUgorVE9ET1JPVknEhiBBTEVLU0FOREFSCitUT0RPUk9WScSGIEFMRUtTQU5EQVIKK1RPRE9ST1ZJxIYgQU7EkEVMS08KK1RPRE9ST1ZJxIYgQU5BCitUT0RPUk9WScSGIEFOS0EKK1RPRE9ST1ZJxIYgQU5UVU4KK1RPRE9ST1ZJxIYgQk/FoEtPCitUT0RPUk9WScSGIEJPxaBLTworVE9ET1JPVknEhiBCT0dEQU4KK1RPRE9ST1ZJxIYgQk9SSVNMQVYKK1RPRE9ST1ZJxIYgQk9SSVZPSkUKK1RPRE9ST1ZJxIYgQk9TQQorVE9ET1JPVknEhiBCUkFOSVNMQVYKK1RPRE9ST1ZJxIYgQlJBTktPCitUT0RPUk9WScSGIEJSQU5LTworVE9ET1JPVknEhiBCUkFOS08KK1RPRE9ST1ZJxIYgQlJBTktPCitUT0RPUk9WScSGIENWRVRLTworVE9ET1JPVknEhiBDVklKRVRJTgorVE9ET1JPVknEhiBDVklKTworVE9ET1JPVknEhiBEQU5JQ0EKK1RPRE9ST1ZJxIYgREFOSUxPCitUT0RPUk9WScSGIERJTUlUUklKRQorVE9ET1JPVknEhiBET0JST1NBVgorVE9ET1JPVknEhiBET0JST1NBVgorVE9ET1JPVknEhiBEUkFHQU4KK1RPRE9ST1ZJxIYgRFJBR0FOCitUT0RPUk9WScSGIERSQUdBTgorVE9ET1JPVknEhiBEUkFHQU4KK1RPRE9ST1ZJxIYgRFJBR0lDQQorVE9ET1JPVknEhiBEUkFHT0xKVUIKK1RPRE9ST1ZJxIYgRFJBR09MSlVCCitUT0RPUk9WScSGIERSQUdPU0xBVgorVE9ET1JPVknEhiBEUkFHT1NMQVYKK1RPRE9ST1ZJxIYgRFXFoEFOCitUT0RPUk9WScSGIERVxaBBTgorVE9ET1JPVknEhiBEVcWgQU4KK1RPRE9ST1ZJxIYgRFXFoEFOCitUT0RPUk9WScSGIERVxaBLTworVE9ET1JPVknEhiBHT0pLTworVE9ET1JPVknEhiBHT0pLTworVE9ET1JPVknEhiBHUkFESU1JUgorVE9ET1JPVknEhiBJTEUKK1RPRE9ST1ZJxIYgSkFTTkEKK1RPRE9ST1ZJxIYgSkVMRU5BCitUT0RPUk9WScSGIEpFTElDQQorVE9ET1JPVknEhiBKRUxJQ0EKK1RPRE9ST1ZJxIYgSk9LQQorVE9ET1JPVknEhiBKT1ZBTktBCitUT0RPUk9WScSGIEpPVklDQQorVE9ET1JPVknEhiBKVUxJSkFOQQorVE9ET1JPVknEhiBLT1ZJTktBCitUT0RPUk9WScSGIExBWkFSCitUT0RPUk9WScSGIExFTktBCitUT0RPUk9WScSGIExKVUJJQ0EKK1RPRE9ST1ZJxIYgTEpVQklDQQorVE9ET1JPVknEhiBMSlVCSU5LQQorVE9ET1JPVknEhiBMSlVCT01JUgorVE9ET1JPVknEhiBNQVJBCitUT0RPUk9WScSGIE1BUkdJVEEKK1RPRE9ST1ZJxIYgTUFSSUpBCitUT0RPUk9WScSGIE1BUktPCitUT0RPUk9WScSGIE1BUktPCitUT0RPUk9WScSGIE1BUktPCitUT0RPUk9WScSGIE1JxaBPCitUT0RPUk9WScSGIE1JxIZBCitUT0RPUk9WScSGIE1JxIZPCitUT0RPUk9WScSGIE1JSEFKTE8KK1RPRE9ST1ZJxIYgTUlMQU4KK1RPRE9ST1ZJxIYgTUlMQU4KK1RPRE9ST1ZJxIYgTUlMQU4KK1RPRE9ST1ZJxIYgTUlMQU4KK1RPRE9ST1ZJxIYgTUlMQU4KK1RPRE9ST1ZJxIYgTUlMQU4KK1RPRE9ST1ZJxIYgTUlMQU4KK1RPRE9ST1ZJxIYgTUlMQU4KK1RPRE9ST1ZJxIYgTUlMRU5LTworVE9ET1JPVknEhiBNSUxFCitUT0RPUk9WScSGIE1JTElDQQorVE9ET1JPVknEhiBNSUxLQQorVE9ET1JPVknEhiBNSUxPxaAKK1RPRE9ST1ZJxIYgTUlMT1JBRAorVE9ET1JPVknEhiBNSUxPVkFOCitUT0RPUk9WScSGIE1JUktPIERJUEwgSU5HCitUT0RPUk9WScSGIE1JUktPIERSIExFS0FSCitUT0RPUk9WScSGIE1JUktPCitUT0RPUk9WScSGIE1JUktPCitUT0RPUk9WScSGIE1JUktPCitUT0RPUk9WScSGIE1JUktPCitUT0RPUk9WScSGIE1JUk9TTEFWQQorVE9ET1JPVknEhiBNSVJPU0xBVgorVE9ET1JPVknEhiBNTEFERU4gRFIKK1RPRE9ST1ZJxIYgTUxBREVOCitUT0RPUk9WScSGIE1MQURPTUlSCitUT0RPUk9WScSGIE1PTcSMSUxPCitUT0RPUk9WScSGIE1PTcSMSUxPCitUT0RPUk9WScSGIE1PTUlSS0EKK1RPRE9ST1ZJxIYgTkFEQQorVE9ET1JPVknEhiBOQURBCitUT0RPUk9WScSGIE5JxIZJRk9SCitUT0RPUk9WScSGIE5JS09MQQorVE9ET1JPVknEhiBOSUtPTEEKK1RPRE9ST1ZJxIYgT0xHSUNBCitUT0RPUk9WScSGIE9TVE9KQQorVE9ET1JPVknEhiBQRVRBUgorVE9ET1JPVknEhiBQRVRBUgorVE9ET1JPVknEhiBSQcWgS08KK1RPRE9ST1ZJxIYgUkFEQQorVE9ET1JPVknEhiBSQURJxaBBCitUT0RPUk9WScSGIFJBRElWT0ogQURWT0tBVAorVE9ET1JPVknEhiBSQURJVk9KRQorVE9ET1JPVknEhiBSQURJVk9KCitUT0RPUk9WScSGIFJBRE1JTEEKK1RPRE9ST1ZJxIYgUkFET0pLQQorVE9ET1JPVknEhiBSQURPU0xBVgorVE9ET1JPVknEhiBSQUpLTworVE9ET1JPVknEhiBSQU5LTworVE9ET1JPVknEhiBSQVRLTworVE9ET1JPVknEhiBST1NBCitUT0RPUk9WScSGIFNBxaBBCitUT0RPUk9WScSGIFNBVkEKK1RPRE9ST1ZJxIYgU0FWQQorVE9ET1JPVknEhiBTQVZPCitUT0RPUk9WScSGIFNBVk8KK1RPRE9ST1ZJxIYgU0VOS0EKK1RPRE9ST1ZJxIYgU0lNQQorVE9ET1JPVknEhiBTSU5JxaBBCitUT0RPUk9WScSGIFNMQVZFCitUT0RPUk9WScSGIFNMT0JPREFOCitUT0RPUk9WScSGIFNMT0JPREFOCitUT0RPUk9WScSGIFNNSUxKS0EKK1RPRE9ST1ZJxIYgU05Fxb1BTkEKK1RPRE9ST1ZJxIYgU09GSUpBCitUT0RPUk9WScSGIFNSRURPSkUKK1RPRE9ST1ZJxIYgU1JFVEVOCitUT0RPUk9WScSGIFNUQU5JTUlSCitUT0RPUk9WScSGIFNUQU5JU0xBVgorVE9ET1JPVknEhiBTVEFOS08KK1RPRE9ST1ZJxIYgU1RFVkFOCitUT0RPUk9WScSGIFNURVZBTgorVE9ET1JPVknEhiBTVEVWQQorVE9ET1JPVknEhiBUT0RFCitUT0RPUk9WScSGIFRPREUKK1RPRE9ST1ZJxIYgVE9NSVNMQVYKK1RPRE9ST1ZJxIYgVE9NSVNMQVYKK1RPRE9ST1ZJxIYgVkVSQQorVE9ET1JPVknEhiBWRVJBCitUT0RPUk9WScSGIFZFUkEKK1RPRE9ST1ZJxIYgVkxBREVUQQorVE9ET1JPVknEhiBWTEFESU1JUgorVE9ET1JPVknEhiBWTEFESU1JUgorVE9ET1JPVknEhiBWTEFESVNMQVYKK1RPRE9ST1ZJxIYgVlVLQcWgSU4KK1RPRE9ST1ZJxIYgWk9SQU4KK1RPRE9ST1ZJxIYgWk9SQU4KK1RPRE9ST1ZJxIYgWk9SQU4KK1RPRE9ST1ZJxIYgWk9SQQorVE9ET1JPVknEhiBaT1JLQQorVE9ET1JPVlNLSSBNQU5BU0lKRQorVE9ET1JPVlNLSSBNSVJPU0xBVgorVE9ET1JPVlNLSSBOQURBCitUT0RPU0lKRVZJxIYgxJBPUsSQRQorVE9ET1NJSkVWScSGIERSQUdPTEpVQgorVE9ET1NJSkVWScSGIE1JTEFOCitUT0RPU0lKRVZJxIYgWkxBVEtPIERJUEwgUFJBVk5JSworVE9GSUwgU09GSUpBCitUT0hPTEogSk9WTworVE9IT0xKRVZJxIYgQk/FoEtPCitUT0hPTEpFVknEhiBaRFJBVktPCitUT0pBR0EgTUlMQU4KK1RPSkFHQSBNSUxPxaAKK1RPSkFHQSBTVkVUT1pBUgorVE9KQUdJxIYgxJBPUsSQRQorVE9KQUdJxIYgQk/FvUlEQVIKK1RPSkFHScSGIERBTkUKK1RPSkFHScSGIERBTklMTworVE9KQUdJxIYgRFXFoEFOCitUT0pBR0nEhiBKRUxBCitUT0pBR0nEhiBMVURNSUxBCitUT0pBR0nEhiBNSVJKQU5BCitUT0pBR0nEhiBOSUtPTEEKK1RPSkFHScSGIE5JS09MQQorVE9KQUdJxIYgUkFET1ZBTgorVE9KQUdJxIYgU0xPQk9EQU4KK1RPSlpBTiBJTE9OQQorVE9LQVIgSlVMSUpBCitUT0tJxIYgS09TQVJBCitUT0tJxIYgTUlIQUpMTworVE9LScSGIE1JTEFOCitUT0tJxIYgU0FWQQorVE9LScSGIFNBVkEKK1RPS0nEhiBTQVZBCitUT0tJTi3EkEVSScSGIFpBR09SS0EKK1RPS0lOIMSQT1LEkEUKK1RPS0lOIEFMSVNBCitUT0tJTiBCT1JBCitUT0tJTiBEQU5JQ0EKK1RPS0lOIFBST0tPUCBEUiBMRUtBUgorVE9LSU4gU0xPQk9EQU4KK1RPS0lOIFZFUkEKK1RPS0lOIFZMQURBCitUT0tPREkgSkFOT8WgCitUT0tPREkgSk9MQU5LQQorVE9LT0RJIE1BUkdJVEEKK1RPS09WScSGIEpFTElDQQorVE9MIEFORFJBxaAKK1RPTCBKT8W9RUYKK1RPTERJIEVWQQorVE9MREkgVklMTU/FoAorVE9MScSGIE1JTE/FoAorVE9MScSGIFZFU05BCitUT0xJQ0tJIFpPUkEKK1RPTElNSVIgVVJPxaAKK1RPTEpBR0EgVlVLT1NBVkEKK1RPTEpFVknEhiBCUkFOS08KK1RPTEpFVknEhiBET0JSSVNMQVYKK1RPTEpFVknEhiBEUkFHSUNBCitUT0xKScSGIFJBSktPCitUT0xNQcSMIFpPUkFOCitUT0xNQcSMRVYgxb1JVkEKK1RPTE1BxIxFViBNSVJPU0xBVgorVE9MTkFJIE9UTworVE9MTkFJIFJVxb1BCitUT0xUIEpPxb1FRgorVE9MVCBKT1NJUAorVE9MVkFKIEFHTkXFoAorVE9MVkFKIEVMRU9OT1JBCitUT0xWRVQgT1NLQVIKK1RPTcSMQU5KSSBJVkFOCitUT03EjEFOSkkgTUlST1NMQVZBCitUT03EjEFOSkkgU1RBTklTTEFWQQorVE9NxIxFVkEgTkVWRU5LQSBEUgorVE9NxIxFVlNLSSBDVkVUQU4KK1RPTcSMScSGIMSMRURPTUlSCitUT03EjE9WIFRPTcSMTworVE9NxIxPVkEgQU5FVEEgRFIKK1RPTcSMT1ZBIEFOSVRBIERSCitUT03FoEnEhiBMQURJU0xBVgorVE9NQSDFoEFORE9SCitUT01BIEFORFJJSkEKK1RPTUEgSkFOT8WgCitUT01BIEpBTk/FoAorVE9NQSBKQU5PxaAKK1RPTUEgSlVMSUpBTkEKK1RPTUEgTEFESVNMQVYKK1RPTUEgTUFSSUpBCitUT01BIE1JSEFKTE8KK1RPTUEgT0xHQQorVE9NQSBQQUwKK1RPTUEgUk9aQUxJSkEKK1RPTUEgU1RFVkFOCitUT01BxaAgxJBVUkEKK1RPTUHFoCBKQU5LTworVE9NQcWgIEpPVkFOCitUT01BxaAgTUlMT1JBRAorVE9NQcWgIE1JTE9WQU4KK1RPTUHFoCBTVE9KQU5LQQorVE9NQcWgRVYgQk/FvUlEQVIKK1RPTUHFoEVWIEtPVklOS0EKK1RPTUHFoEVWIE1BVElKQQorVE9NQcWgRVYgTUFUSUpBCitUT01BxaBFViBQRVRBUgorVE9NQcWgRVYgVkVSQQorVE9NQcWgRVZJxIYgQkxBR09UQQorVE9NQcWgRVZJxIYgQk/FvUlEQVIKK1RPTUHFoEVWScSGIEJPUklTTEFWCitUT01BxaBFVknEhiBEUkFHQU5BCitUT01BxaBFVknEhiBFVklDQQorVE9NQcWgRVZJxIYgSVZBTgorVE9NQcWgRVZJxIYgSkVMSUNBCitUT01BxaBFVknEhiBKT1ZBTgorVE9NQcWgRVZJxIYgS09TVEEKK1RPTUHFoEVWScSGIExKVUJJxaBBCitUT01BxaBFVknEhiBMSlVCSUNBCitUT01BxaBFVknEhiBMVUtBCitUT01BxaBFVknEhiBNQU5PSkxFCitUT01BxaBFVknEhiBNSUxFTktPCitUT01BxaBFVknEhiBNSUxJVk9KCitUT01BxaBFVknEhiBNSUxLQQorVE9NQcWgRVZJxIYgTUlMT1JBRAorVE9NQcWgRVZJxIYgTUlPRFJBRworVE9NQcWgRVZJxIYgTUlPRFJBRworVE9NQcWgRVZJxIYgTkFEQQorVE9NQcWgRVZJxIYgTkFERcW9REEKK1RPTUHFoEVWScSGIFJBRElWT0oKK1RPTUHFoEVWScSGIFJBRE9KS0EKK1RPTUHFoEVWScSGIFJBRE9KS0EKK1RPTUHFoEVWScSGIFNBVk8KK1RPTUHFoEVWScSGIFNMT0JPREFOCitUT01BxaBFVknEhiBTVkVUT01JUgorVE9NQcWgRVZJxIYgVkxBRElNSVIKK1RPTUHFoEVWScSGIFZPSklTTEFWCitUT01BxaBJxIYgxJBVUkEKK1RPTUHFoEnEhiBCRVJUQQorVE9NQcWgScSGIE1BUlRJTgorVE9NQcWgScSGIE1JUkpBTkEKK1RPTUHFoEnEhiBUSUJPUgorVE9NQUMgSVZBTgorVE9NQUMgTUlST1NMQVYKK1RPTUFDIFJVxb1JQ0EKK1RPTUFOIERJTgorVE9NQU4gRlJBTkpBCitUT01BTiBKT8W9RUYKK1RPTUFOIExBU0xPCitUT01BTiBNQUdET0xOQQorVE9NQU5JxIYgRFXFoEFOCitUT01BTknEhi1MQUNLT1ZJxIYgTUlMRU5BCitUT01BTknEhiBNSUxFTkEKK1RPTUFOScSGIFpERU5LQQorVE9NQU5PVknEhiBCUkFOSVNMQVYKK1RPTUFOT1ZJxIYgTUFSSUpBCitUT01BTk9WScSGIE1JT0RSQUcKK1RPTUFOT1ZJxIYgUkFKS08KK1RPTUFOT1ZJxIYgVE9NSVNMQVYKK1RPTUFTIEFORFJJSkEKK1RPTUFTIEpPU0lQCitUT01BUyBSVURPTEYKK1RPTUFTIFpEUkFWS0EKK1RPTUVDIFZMQURJU0xBVgorVE9NScSMScSGIEFOVEUKK1RPTUnEjEnEhiBDVklKTworVE9NScSMScSGIEpPVk8KK1RPTUnEjEnEhiBQRVRBUgorVE9NScSMScSGIFNUT0pBCitUT01JxIxJxIYgVE9NSVNMQVYKK1RPTUnEjElOIE1BUklKQQorVE9NScSGIMSMRURPTUlSIERJUEwgSU5HCitUT01JxIYgxIxFRE9NSVIKK1RPTUnEhiDFvUVMSktPCitUT01JxIYgxb1JVktPCitUT01JxIYgxb1JVk9KSU4KK1RPTUnEhiDEkE9SxJBFCitUT01JxIYgxJBVUsSQSUNBCitUT01JxIYgxJBVUsSQSU5LQQorVE9NScSGIMSQVVJJQ0EKK1RPTUnEhiBBTEVLU0FOREFSCitUT01JxIYgQUxFS1NBTkRBUgorVE9NScSGIEFMRUtTQU5EQVIKK1RPTUnEhiBBTEVLU0FOREFSCitUT01JxIYgQUxFS1NBTkRBUgorVE9NScSGIEFMRUtTQQorVE9NScSGIEFOQQorVE9NScSGIEFOR0VMSU5BCitUT01JxIYgQU5LQQorVE9NScSGIEFOS0lDQQorVE9NScSGIEFOS0lDQQorVE9NScSGIEFSSUpBRE5BCitUT01JxIYgQklMSkFOQQorVE9NScSGIEJPxaBLTworVE9NScSGIEJPxaBLTworVE9NScSGIEJPxb1JREFSS0EKK1RPTUnEhiBCT0dEQU5LQQorVE9NScSGIEJPSktBCitUT01JxIYgQk9SSVNMQVYgRFIgSU5HCitUT01JxIYgQk9SSVNMQVYKK1RPTUnEhiBCT1NJTEpLQQorVE9NScSGIEJSQU5LTworVE9NScSGIERBTklDQQorVE9NScSGIERBTklMTyBNUgorVE9NScSGIERBUklOS0EKK1RPTUnEhiBERUpBTgorVE9NScSGIERFVkEKK1RPTUnEhiBEUkFHQU4KK1RPTUnEhiBEUkFHQU4KK1RPTUnEhiBEUkFHQU4KK1RPTUnEhiBEUkFHQQorVE9NScSGIERSQUdBCitUT01JxIYgRFJBR09MSlVCCitUT01JxIYgRFJBR1VUSU4KK1RPTUnEhiBEVcWgQU4KK1RPTUnEhiBEVcWgQU4KK1RPTUnEhiBEVcWgSUNBCitUT01JxIYgRVZBCitUT01JxIYgRVZBCitUT01JxIYgR09SREFOQQorVE9NScSGIEdSQURJTUlSCitUT01JxIYgSUxFCitUT01JxIYgSUxFCitUT01JxIYgSUxJSkEKK1RPTUnEhiBJTElKQQorVE9NScSGIElMSUpBCitUT01JxIYgSVZBTgorVE9NScSGLUlWScSMScSGIEJJTEpBTkEKK1RPTUnEhiBKRUxFTkEKK1RPTUnEhiBKRUxJQ0EKK1RPTUnEhiBKT1NJRgorVE9NScSGIEpPU0lQCitUT01JxIYgSk9WQU5LQQorVE9NScSGIEpPVkFOCitUT01JxIYgSk9WQU4KK1RPTUnEhiBKT1ZBTgorVE9NScSGIEpVTElBTkEKK1RPTUnEhiBLQVRBUklOQQorVE9NScSGIEtPTlNUQU5USU4KK1RPTUnEhiBLT1JORUxJQQorVE9NScSGIEtPU0EKK1RPTUnEhiBLUlNUQQorVE9NScSGIExBWkFSCitUT01JxIYgTEFaQVIKK1RPTUnEhiBMRVBPU0FWQQorVE9NScSGIExKSUxKQU5BCitUT01JxIYgTEpJTEpBCitUT01JxIYgTEpVQkEKK1RPTUnEhiBMSlVCScWgQQorVE9NScSGIExKVUJJxaBBCitUT01JxIYgTEpVQknFoEEKK1RPTUnEhiBMSlVCSU5LQQorVE9NScSGIExKVUJPTUlSCitUT01JxIYgTEpVQk9NSVIKK1RPTUnEhiBNQVJHSVQKK1RPTUnEhiBNQVJJSkEKK1RPTUnEhiBNQVJJSkEKK1RPTUnEhiBNQVJJSkEKK1RPTUnEhiBNQVJJSkEKK1RPTUnEhiBNQVJLTworVE9NScSGIE1JSk9EUkFHCitUT01JxIYgTUlMQURJTgorVE9NScSGIE1JTEFOCitUT01JxIYgTUlMQU4KK1RPTUnEhiBNSUxBTgorVE9NScSGIE1JTEFOCitUT01JxIYgTUlMRU5LTworVE9NScSGIE1JTEVOS08KK1RPTUnEhiBNSUxFCitUT01JxIYgTUlMSVZPSgorVE9NScSGIE1JTEtBCitUT01JxIYgTUlMT8WgCitUT01JxIYgTUlMT8WgCitUT01JxIYgTUlMT01JUgorVE9NScSGIE1JTE9SQUQKK1RPTUnEhiBNSUxPUkFECitUT01JxIYgTUlMT1NBVgorVE9NScSGIE1JUkpBTkEKK1RPTUnEhiBNSVJKQU5BCitUT01JxIYgTUlSSkFOCitUT01JxIYgTUlSS08KK1RPTUnEhiBNSVJLTworVE9NScSGIE1JUk9TTEFWCitUT01JxIYgTUlST1NMQVYKK1RPTUnEhiBNSVJPU0xBVgorVE9NScSGIE1JUk9TTEFWCitUT01JxIYgTUlUQVIKK1RPTUnEhiBNTEFERU4KK1RPTUnEhiBNT03EjElMTworVE9NScSGIE1PTcSMSUxPCitUT01JxIYgTkFUQcWgQQorVE9NScSGIE5BVEFMSUpBCitUT01JxIYgTkVCT0rFoEEKK1RPTUnEhiBORURFTEpLQQorVE9NScSGLU5FREVMSktPVknEhiBET0JSSUxBCitUT01JxIYgTkVERUxKS08KK1RPTUnEhiBORU5BRAorVE9NScSGIE5FTkFECitUT01JxIYgTkVOQUQKK1RPTUnEhiBOSUtPTEEKK1RPTUnEhiBOSUtPTEEKK1RPTUnEhiBOT1ZJQ0EKK1RPTUnEhiBPTEdJQ0EgTVIKK1RPTUnEhiBPTElWRVJBCitUT01JxIYgUEFWTEUgRFIKK1RPTUnEhiBQRUxLQQorVE9NScSGIFBFVEFSCitUT01JxIYgUEVUS08KK1RPTUnEhiBSQURJVk9KRQorVE9NScSGIFJBRE9WQU4KK1RPTUnEhiBSQURPVkFOCitUT01JxIYgUkFUT01JUgorVE9NScSGIFJPWkFMSUpBCitUT01JxIYgU0HFoEEKK1RPTUnEhiBTQVZBCitUT01JxIYgU0FWQQorVE9NScSGIFNFTElNSVIKK1RPTUnEhi1TSU1JTiBNSUxLQQorVE9NScSGIFNJTknFoEEKK1RPTUnEhiBTTEFWSUNBCitUT01JxIYgU0xBVklDQQorVE9NScSGIFNMQVZLTworVE9NScSGIFNMQVZLTworVE9NScSGIFNMQVZLTworVE9NScSGIFNMQVZPTEpVQgorVE9NScSGIFNMT0JPREFOS0EKK1RPTUnEhiBTTE9CT0RBTgorVE9NScSGIFNMT0JPREFOCitUT01JxIYgU05Fxb1BTkEKK1RPTUnEhiBTT0ZJSkEKK1RPTUnEhiBTVEFOS08KK1RPTUnEhiBTVEVWQU4KK1RPTUnEhiBTVEVWQU4KK1RPTUnEhiBTVEVWQU4KK1RPTUnEhiBTVEVWQU4KK1RPTUnEhiBTVElQQQorVE9NScSGIFNUSkVQQU4KK1RPTUnEhiBTVkVUT1pBUgorVE9NScSGIFNWRVRPWkFSCitUT01JxIYgVEFUSkFOQQorVE9NScSGIFRPREUKK1RPTUnEhiBUT0RPUgorVE9NScSGIFZBTEVSSUpBCitUT01JxIYgVkVMSktPCitUT01JxIYgVkVMSktPCitUT01JxIYgVkVSQQorVE9NScSGIFZFUklDQQorVE9NScSGIFZFU05BCitUT01JxIYgVkVTTkEKK1RPTUnEhiBWRVNOQQorVE9NScSGIFZJRAorVE9NScSGIFZJTktPCitUT01JxIYgVkxBRElNSVIKK1RPTUnEhiBWTEFESU1JUgorVE9NScSGIFZMQVNUSU1JUgorVE9NScSGIFZMQVNUSU1JUgorVE9NScSGIFZPSklTTEFWQQorVE9NScSGIFZVS09TQVZBCitUT01JxIYgWk9SQU4KK1RPTUnEhiBaT1JJQ0EKK1RPTUnEhiBaT1JLQQorVE9NScSGIFpPUktBCitUT01JxIYgWk9SS0EKK1RPTUlLIEpPVkFOCitUT01JSyBTT0ZJSkEKK1RPTUlLIFNURVZBTgorVE9NSU4gxb1JVkFOCitUT01JTiBBTEVLU0FOREFSCitUT01JTiBCUkFOSVNMQVYKK1RPTUlOIEJSQU5JU0xBVgorVE9NSU4gRElNSVRSSUpFCitUT01JTiBEUkFHQU4KK1RPTUlOIERSQUdBTgorVE9NSU4gRFJBR0lOSkEKK1RPTUlOIERVxaBBTgorVE9NSU4gR09SREFOQQorVE9NSU4gTEpVQklDQQorVE9NSU4gTEpVQklDQQorVE9NSU4gTUFSSUpBCitUT01JTiBNSUxBTgorVE9NSU4gTUlMVVRJTgorVE9NSU4gTUlMVVRJTgorVE9NSU4gTUlST1NMQVYKK1RPTUlOIE1JVEFSCitUT01JTiBSQURPU0xBVgorVE9NSU4gU1RFVkFOIERJUEwgUFJBVk5JSworVE9NSU4gU1RFVkFOCitUT01JTiBTVEVWQU4KK1RPTUlOIFNURVZBTgorVE9NSU4gU1RFVkFOCitUT01JTiBTVkVUTEFOQQorVE9NSU4gVkFTQQorVE9NSU4gVklET1NBVkEKK1RPTUlOxIxJxIYgTUlMT1ZBTgorVE9NSU5BQyBWSU5LTworVE9NS0EgQUxQQVIKK1RPTUtBIEtBUkxPCitUT01MSkFOT1ZJxIYgQk9HT1NMQVYKK1RPTUxKQU5PVknEhiBMSlVCSUNBCitUT01MSkFOT1ZJxIYgTUFSSUpBCitUT01MSkFOT1ZJxIYgTUlMQU4KK1RPTU8gSk9TSVAKK1RPTU9WIEJPR0RBTgorVE9NT1YgTUlSxIxFCitUT01PViBTQVZBCitUT01PViBTTE9CT0RBTgorVE9NT1YgVE/FoEEKK1RPTU9WIFRPRE9SCitUT01PViBWRUxJTgorVE9NT1YgVkVMSU4KK1RPTU9WScSGIEFOxJBBCitUT01PVknEhiBCT8W9SURBUgorVE9NT1ZJxIYgQk9SSVNMQVYKK1RPTU9WScSGIERSQUdJTkpBCitUT01PVknEhiBEVcWgQU4KK1RPTU9WScSGIE1JVEFSCitUT01PVknEhiBSQURPTUlSCitUT01PVknEhiBSQURPU0xBVgorVE9NT1ZJxIYgU1RPSkFOS0EKK1RPTU9WScSGIFRPTU8KK1RPTU9WScSGIFZBU0lMSUpFCitUT01PVknEhiBaT1JBTgorVE9NT1ZJxIYgWk9SSUNBCitUT07EjEVWIElWQU4KK1RPTkRPTE8gU01JTEpBCitUT05JxIYgxb1JS0lDQQorVE9OScSGIFJVxb1JQ0EKK1RPTknEhiBTVE9KSU1FTgorVE9OS09WScSGIEpPQ0EKK1RPTktPVknEhiBKT1NJUAorVE9OS09WScSGIE1JTEFOCitUT05LT1ZJxIYgTUlMQU4KK1RPTlRFIEZSScSQRcWgCitUT05UScSGIMSQT1LEkEUKK1RPTlRJxIYgRFXFoEFOCitUT1BBTE9WIERVxaBBTgorVE9QQUxPViBHQVZSQSBESVBMIElORworVE9QQUxPViBKRUxJQ0EKK1RPUEFMT1YgTUVMQU5JSkEKK1RPUEFMT1YgTUVMQU5JSkEKK1RPUEFMT1YgTUlIQUpMTworVE9QQUxPViBNSUxFTkEKK1RPUEFMT1YgTUlMT8WgCitUT1BBTE9WIE1JTE9SQUQKK1RPUEFMT1YgTkFEQQorVE9QQUxPViBQRVRBUgorVE9QQUxPViBTT0ZJSkEKK1RPUEFMT1YgU1BBU09KRQorVE9QQUxPViBTVEFOSVNMQVZBCitUT1BBTE9WIFNURVZBTgorVE9QQUxPViBTVEVWQU4KK1RPUEFMT1YgU1RFVkFOCitUT1BBTE9WIFNWRVRPWkFSCitUT1BBTE9WIFZBU0lMSUpFCitUT1BBTE9WIFZFUkEKK1RPUEFMT1ZJxIYgQk/FvU8KK1RPUEFMT1ZJxIYgRFXFoEFOCitUT1BBTE9WScSGIERVS0FUSU5LQQorVE9QQUxPVknEhiBFTUlMSUpBCitUT1BBTE9WScSGIEpFTEVOQQorVE9QQUxPVknEhiBKVUxJSkUKK1RPUEFMT1ZJxIYgTUlIQUpMTworVE9QQUxPVknEhiBNSUxBTgorVE9QQUxPVknEhiBNSVJLTworVE9QQUxPVknEhiBORVZFTktBCitUT1BBTE9WScSGIFJBRE9KSUNBCitUT1BBTE9WScSGIFNUQU5JSkEKK1RPUEFMT1ZJxIYgVkxBSktPCitUT1BBTFNLSSBEQU5JTE8KK1RPUEFMU0tJIERVxaBBTktBCitUT1BBTFNLSS1GScWgVEXFoCBOQURBCitUT1BBTFNLSSBNSUxFTkEKK1RPUEFMU0tJIFpPUkFOCitUT1BBUiBNQVJJSkEKK1RPUEnEhiDEjEVETworVE9QScSGIMSQVVJPCitUT1BJxIYgQU5UTworVE9QScSGIENWSUpBCitUT1BJxIYgREFOSUNBCitUT1BJxIYgREFOSUNBCitUT1BJxIYgRFJBR0FOCitUT1BJxIYgRFJBR0FOCitUT1BJxIYgSUxJSkEKK1RPUEnEhiBKT1ZBTgorVE9QScSGIEpPVkFOCitUT1BJxIYgTEVPTgorVE9QScSGIExKVUJPCitUT1BJxIYgTUFSSUpBCitUT1BJxIYgTUlMQURJTktBCitUT1BJxIYgTUlMQU4KK1RPUEnEhiBNSUxJVk9KRQorVE9QScSGIE1JTElWT0oKK1RPUEnEhiBNSUxPUkFECitUT1BJxIYgTUlMT1JBRAorVE9QScSGIE1JTE9SQUQKK1RPUEnEhiBNSUxPUkFECitUT1BJxIYgTUlMT1ZBTgorVE9QScSGIE1JUktPCitUT1BJxIYgTUlUQVIKK1RPUEnEhiBOQVRBTElKQQorVE9QScSGIE5FxJBPCitUT1BJxIYgTklLTworVE9QScSGIFBFVEFSCitUT1BJxIYgUkFUS08KK1RPUEnEhiBTUkVURU4KK1RPUEnEhiBTVEVWQU4KK1RPUEnEhiBUQVRKQU5BCitUT1BJxIYgVk9KSU4KK1RPUEnEhiBWT0pJU0xBVgorVE9QS0EgQUxFS1NBTkRBUgorVE9QS0EgQUxFS1NBTkRBUgorVE9QTEFLIElNUkUKK1RPUExJQ0EgQUJFRElOCitUT1BMSUNBIEdBTkkKK1RPUExJQ0EgTkXEkE1FRElOCitUT1BMSUNBIFJBTUFEQU4KK1RPUExJQ0EgWkXEhklSCitUT1BMSUNBIFpFTklKQQorVE9QTyBBTlRPTklKQQorVE9QTyBMSlVCT01JUgorVE9QTyBORU5BRAorVE9QT0zEjEVWScSGIEpPVkFOCitUT1BPTEFDIFJBRElWT0ogRFIgTEVLQVIKK1RPUE9MScSGIMSQVVJBCitUT1BPTEnEhiBEVcWgQU4KK1RPUE9MScSGIFBFSkEKK1RPUE9MSkFOSU4gVkxBRElTTEFWQQorVE9QT0xLT1ZJxIYgVkxBRElNSVIKK1RPUE9MT1ZBxIxLSSBSQURPVkFOCitUT1BPTE9WQcSMS0kgVlVLT1NBVkEKK1RPUFJFSyBTSU1PCitUT1LEkEFOU0tJIEFMRUtTQU5EQVIKK1RPUkJBUk9WIERVxaBBTgorVE9SQklDQSBBTEVLU0EKK1RPUkJJQ0EgQk9SSVNMQVYKK1RPUkJJQ0EgRFXFoEFOCitUT1JCSUNBIERVxaBBTgorVE9SQklDQSBJTElKQQorVE9SQklDQSBKRUxLQQorVE9SQklDQSBKVUxLQQorVE9SQklDQSBNQVJJSkEKK1RPUkJJQ0EgTUlMT8WgCitUT1JCSUNBIE1JUk9TTEFWCitUT1JCSUNBIE5BREEKK1RPUkJJQ0EgUkFET1NMQVYKK1RPUkJJQ0EgVkVSSUNBCitUT1JEQSBKQU5LTworVE9SREFJIElMT05BCitUT1JEQUkgTUFSSUpBCitUT1JEQUkgU1ZFVExBTkEKK1RPUkRBSiBNScWgS08KK1RPUkRBSkkgSkFOS08KK1RPUkVSIMSQVVJBCitUT1JNQSBHRVpBCitUT1JNQSBKT1NJUAorVE9STUEgSk9WQU4KK1RPUk1BIE1BUkdJVEEKK1RPUk1BIFNURVZBTgorVE9STUEgVklMSU0KK1RPUk1BxaBJIMSQRVLEkAorVE9STUHFoEkgSkFOT8WgCitUT1JNQcWgSSBTTUlMSktBCitUT1JNQcWgSSBTVEVWQU4KK1RPUk1PxaBJIEpPxb1FRgorVE9STkpBTlNLSSDFvUFSS08KK1RPUk5KQU5TS0kgQk9SSVNMQVYKK1RPUk5KQU5TS0kgQlJBTklTTEFWCitUT1JOSkFOU0tJIEpFTEtBCitUT1JOSkFOU0tJIFNWRVRJU0xBVgorVE9ST0sgxIxBQkEKK1RPUk9NQU4gQlJBTklTTEFWCitUT1JPTUFOIE5FxJBFTEpLTworVE9ST01BTiBSQURJU0FWCitUT1JPTUFOIFJBRE1JTEEKK1RPUk9NQU4gUkFET0pJQ0EKK1RPUk9WScSGIFRSSVBPCitUT1JUScSGIEFORFJJSkEKK1RPUlRJxIYgSk9TSVAKK1RPUlRJxIYgTUlIQUpMTworVE9SVEnEhiBTVEVWQU4KK1RPUlRJxIYgVkVSQQorVE9TTUFOIEpPU0lQCitUT1NVTk9WScSGIEpFTElTQVZFVEEKK1RPU1VOT1ZJxIYgTUFSSUpBCitUT1NVTk9WScSGIFZMQURJTUlSCitUT1QgxaBBTkRPUgorVE9UIMWgQU5ET1IKK1RPVCDFoEFORE9SCitUT1QgQU1BTElKQQorVE9UIEFOQQorVE9UIEFOQQorVE9UIEFORFJBxaAKK1RPVCBBTkRSSUpBCitUT1QgQU5EUklKQQorVE9UIEFOSUNBCitUT1QgQU5UQUwgRElQTCBJTkcKK1RPVCBBTlRPTklKQQorVE9UIEFSUEFECitUT1QtQVJWQUkgQU5UQUwKK1RPVC1BUlZBSSBKQU5PxaAKK1RPVC1BUlZBSSBKQU5PxaAKK1RPVC1CQUdJIElNUkUKK1RPVC1CQUdJIEpBTk/FoAorVE9ULUJBR0kgTUFSSUpBCitUT1QgQkFMSU5UCitUT1QgQkVSVEEKK1RPVC1CT0pOSUsgREVaSURFUiBESVBMIElORworVE9UIEJPUkEKK1RPVCBERcW9RQorVE9UIERVxaBBTktBCitUT1QgRkVSRU5DCitUT1QgRkVSRU5DCitUT1QgRkVSRU5DCitUT1QgRkVSRU5DCitUT1QgRkVSRU5DCitUT1QgRlJBTkpBCitUT1QgRlJBTkpBCitUT1QgRlJBTkpBCitUT1QgR0FCT1IKK1RPVCBHRVpBCitUT1QtSE9SVEkgxaBBTkRPUgorVE9UIEnFoFRWQU4KK1RPVCBJxaBUVkFOCitUT1QgScWgVFZBTgorVE9UIElCT0xKQSBEUgorVE9UIElMT05BCitUT1QgSUxPTkEKK1RPVCBJTE9OQQorVE9UIElNUkUKK1RPVCBJUkVOQQorVE9UIElSRU5BCitUT1QgSVZBTgorVE9UIEpBTk/FoAorVE9UIEpBTk/FoAorVE9UIEpBTk/FoAorVE9UIEpFTEVOQQorVE9UIEpPxb1FRgorVE9UIEpPxb1FRgorVE9UIEpPxb1FRgorVE9UIEpPxb1FRgorVE9UIEpPxb1FRgorVE9UIEpPU0lQCitUT1QgSk9WQU5LQQorVE9UIEpPVkFOCitUT1QgSlVMSUpBTkEKK1RPVCBKVUxJSkFOQQorVE9UIEpVTElKQQorVE9ULUtBxaBBIEJMQcW9CitUT1QgS0FST0xKCitUT1QgS0FST0xKCitUT1QgS0FUQVJJTkEKK1RPVCBLQVRJQ0EKK1RPVCBLT1ZJTEpLQQorVE9UIExBSk/FoAorVE9UIExBSk/FoAorVE9UIExBU0xPIERSCitUT1QgTEFTTE8KK1RPVCBMQVNMTworVE9UIExBU0xPCitUT1QgTElWSUpBCitUT1QgTUFHRE9MTkEKK1RPVCBNQVJHSVRBCitUT1QgTUFSR0lUQQorVE9UIE1BUklKQQorVE9UIE1BUklKQQorVE9UIE1BUklKQQorVE9UIE1BUklKQQorVE9UIE1JSEFMSgorVE9UIE1JSEFMSgorVE9UIE1JS0xPxaAKK1RPVCBNSUxBTktBCitUT1QgTUlMS0EKK1RPVCBNSVJPU0xBVgorVE9UIE5FQk9KxaBBCitUT1QgT0xHQQorVE9UIFBBTElLQQorVE9UIFBBTAorVE9UIFBBTAorVE9UIFBBTAorVE9UIFBBVkxFCitUT1QgUk9aQUxJSkEKK1RPVCBST1pBTElKQQorVE9UIFNJTFZFU1RFUgorVE9UIFNURVZBTgorVE9UIFNURVZBTgorVE9UIFNURVZBTgorVE9UIFNUSkVQQU4KK1RPVCBURVJFWkEKK1RPVCBURVJFWkEKK1RPVCBUSUJPUgorVE9UIFRPTUlTTEFWCitUT1QgVkFMRVJJSkEKK1RPVCBWTEFESU1JUgorVE9UIFZMQURJU0xBVgorVE9UIFpJVEEKK1RPVCBaTEFUQQorVE9UIFpPTFRBTgorVE9UIFpPUkEKK1RPVEFSVkFJIE1BUklKQQorVE9USCBTSUxWRVNURVIKK1RPVEnEhiBTVkVUT1pBUgorVE9UT1ZJxIYgSk9WQU5LQQorVE9UT1ZJxIYgTUlMQU4KK1RPVkFSTE/FvUEgRFXFoEFOS0EKK1RPVkVSTknEhiBaT1JBCitUT1ZJTE9WScSGIFNWRVRMQU5BCitUT1ZJTE9WScSGIFpPUkFOCitUT1ZJVE9WScSGIE5JS09MQQorVE9WSVRPVknEhiBTTE9CT0RBTgorVE9WSkFOSU4gQklMSkFOQQorVE9WTEpBTknEhiBEVcWgQU4KK1RPVkxKQU5JxIYgU0FWQQorVFJBxb1JIFBBTAorVFJBQkFLIEtBVEFSSU5BCitUUkFJTE9WScSGIE5BREEKK1RSQUlMT1ZJxIYgU0VMSU1JUgorVFJBSUxPVknEhiBWT0pJU0xBVgorVFJBSsSMRVZJxIYgTEVQT1NBVkEKK1RSQUrEjEVWU0tBIEFOSVRBCitUUkFKQU5PVlNLSSBMSlVCSUNBCitUUkFKQU5PVlNLSSBMSlVCTworVFJBSkFOT1ZTS0kgTU9KU08KK1RSQUpBTk9WU0tJIFRSQUpBTgorVFJBSkJBUiBBRE9MRgorVFJBSkJBUiBaVk9OSU1JUgorVFJBSkVSIExBRElTTEFWIERSCitUUkFKRVIgUk9CRVJUCitUUkFKS09WScSGIEJPxb1JREFSCitUUkFKS09WScSGIEJSQU5JTUlSCitUUkFKS09WScSGIEJSQU5JU0xBVgorVFJBSktPVknEhiBCUkFOS08KK1RSQUpLT1ZJxIYgRElNSVRSSUpFCitUUkFKS09WScSGIEdMSUdPUklKRQorVFJBSktPVknEhiBNSUxBTgorVFJBSktPVknEhiBNSUxPUkFECitUUkFKS09WScSGIE5BREEKK1RSQUpLT1ZJxIYgTkFKREFOCitUUkFKS09WScSGIFJVxb1JQ0EKK1RSQUpLT1ZJxIYgU0xPQk9EQU4KK1RSQUpLT1ZJxIYgU1RPSkFESU4KK1RSQUpLT1ZTS0kgRElNSVRSSUpFCitUUkFKS09WU0tJIE1FVE9ESUpFCitUUkFKS09WU0tJIFBBTlRBCitUUkFLSUxPVknEhiBWTEFEQQorVFJBTEpJxIYgSVZBTgorVFJBTkRBRklSIFZBU0lMSUpFCitUUkFOS09MT1ZJxIYgQ1ZFVEEKK1RSQU5LVUxPViBKT8W9RUYKK1RSQVVNIEFSQU5LQQorVFJBVkFOSiBKT1ZBTktBCitUUkFWQVIgxJBVUk8KK1RSQVZBUiBMSlVCScWgQQorVFJBVkFSIE1JTE9TQVYKK1RSQVZJQ0EgTUlMQU4KK1RSQVZJQ0EgTUlMRQorVFJBVklDQSBOSUtPTEEKK1RSQVZJQ0EgUkFERQorVFJCQU5PUyDFvUlWQQorVFJCScSGIEJSQU5JU0xBVgorVFJCScSGIExKVUJJxaBBCitUUkJJxIYgTUlMQURJTgorVFJCScSGIE1JUk9TTEFWCitUUkJJxIYgVEFNQVJBCitUUkJJxIYgVkxBRElNSVIKK1RSQk9KRVZJxIYgxJBPUsSQRQorVFJCT0pFVknEhiDEkFVSQcSQCitUUkJPSkVWScSGIEJPR09MSlVCCitUUkJPSkVWScSGIEJSQU5LTworVFJCT0pFVknEhiBEUkFHSUNBCitUUkJPSkVWScSGIEdBVlJBCitUUkJPSkVWScSGIElEQQorVFJCT0pFVknEhiBJTElKQQorVFJCT0pFVknEhiBKT1ZBTgorVFJCT0pFVknEhiBMQVpBCitUUkJPSkVWScSGIE1BUklDQQorVFJCT0pFVknEhiBNSUxFCitUUkJPSkVWScSGIE1JTElDQQorVFJCT0pFVknEhiBOSUtPTEEKK1RSQk9KRVZJxIYgTklLT0xBCitUUkJPSkVWScSGIFNURVZBTgorVFJCT0xKRVZBQyBEUkFHT1NMQVYKK1RSQk9WScSGIE1JSEFKTE8gRElQTCBQUkFWTklLCitUUkJPVknEhiBNSUxBTgorVFJCT1ZJxIYgTUlMQU4KK1RSQk9WScSGIFZFU05BCitUUkXFoE5KScSGIEFMRUtTQU5EUkEKK1RSRcWgTkpJxIYgSk9WQU4KK1RSRcWgTkpJxIYgU1RFVkFOCitUUkXEhkFLT1YgU1RPSkFOCitUUkVCQVRJQ0tJIEFMRUtTQU5EQVIKK1RSRUJBVElDS0kgQUxFS1NBTkRBUgorVFJFQkFUSUNLSSBKVVNUSU5BCitUUkVCQVRJQ0tJIE1BUklKQQorVFJFQknEjE5JSy1WVcSMScSGIE9MR0EKK1RSRUJPVkFDIE1JTEUKK1RSRU7EjEVWU0tJIE5BREXFvURBCitUUkVQQU5JxIYgTUFITVVUCitUUkVTSUdMQVZJxIYgS0FUSUNBCitUUkVTSUdMQVZJxIYgTUlMQU4KK1RSRVNJR0xBVknEhiBTTEFWS08KK1RSRVNJR0xBVknEhiBTVEVWQU4KK1RSRVNJR0xBVknEhiBWQVNBCitUUkVTSUdMQVZJxIYgVkFTQQorVFJFU0tJxIYgWkRSQVZLTworVFJHQUxBIMSQVVJBCitUUkdPIE5FVkVOS0EKK1RSScSMS09WScSGIEFOS0EKK1RSScSMS09WScSGIEpVTEtBCitUUknEjEtPVknEhiBNSU9EUkFHCitUUknEjEtPVknEhiBTSU5JxaBBCitUUknEjEtPVknEhiBWRVJJQ0EKK1RSScWgScSGIEhSQU5JU0xBVgorVFJJxaBJxIYtSUxJxIYgU1ZFVExBTkEKK1RSScWgScSGIE1MQURFTgorVFJJRktPVknEhiBKT1ZJQ0EKK1RSSUZLT1ZJxIYgS1VaTUFOCitUUklGS09WScSGIExKVUJJQ0EKK1RSSUZLT1ZJxIYgTUFSS08KK1RSSUZLT1ZJxIYgTUlMQURJTgorVFJJRktPVknEhiBNSUxBTgorVFJJRktPVknEhiBNSUxBTgorVFJJRktPVknEhiBNSUxJU0FWCitUUklGS09WScSGIE1JUk9TTEFWQQorVFJJRktPVknEhiBORURFTEpLTworVFJJRktPVknEhiBTUsSQQSBEUgorVFJJRktPVknEhiBWTEFESU1JUgorVFJJRktPVknEhiBWT0pJU0xBVgorVFJJRlUgRE9SVQorVFJJRlVOxIxFVknEhiBNQVJJSkEKK1RSSUZVTsSMRVZJxIYgTUlMT8WgCitUUklGVU5KQUdJxIYgU1BBU09KRQorVFJJRlVOSkFHScSGIFNWRVRJU0xBVgorVFJJRlVOT1YgREFOSUxPCitUUklGVU5PViBKT1NJRgorVFJJRlVOT1YgTUlPRFJBRworVFJJRlVOT1YgUkFETUlMQQorVFJJRlVOT1ZJxIYgxb1JS0lDQQorVFJJRlVOT1ZJxIYgxb1JVktBCitUUklGVU5PVknEhiBCT8WgS08KK1RSSUZVTk9WScSGIERBTktBCitUUklGVU5PVknEhiBEUkFHQU4KK1RSSUZVTk9WScSGIERSQUdPTUlSCitUUklGVU5PVknEhiBJTElOS0EKK1RSSUZVTk9WScSGIEpFTEVOQQorVFJJRlVOT1ZJxIYgSk9WQU4KK1RSSUZVTk9WScSGIEpPVkFOCitUUklGVU5PVknEhiBNQUtTSU0KK1RSSUZVTk9WScSGIE1JTElTQVYKK1RSSUZVTk9WScSGIE1JTE9SQUQgRElQTCBJTkcKK1RSSUZVTk9WScSGIE1JUkpBTkEKK1RSSUZVTk9WScSGIE1JUktPCitUUklGVU5PVknEhiBOQURBCitUUklGVU5PVknEhiBOQURFxb1EQQorVFJJRlVOT1ZJxIYgTkVHT1ZBTktBCitUUklGVU5PVknEhiBPTEdBCitUUklGVU5PVknEhiBQQVZMRQorVFJJRlVOT1ZJxIYgUEVUQVIKK1RSSUZVTk9WScSGIFBFVEFSCitUUklGVU5PVknEhiBSQURJVk9KCitUUklGVU5PVknEhiBSQURNSUxBCitUUklGVU5PVknEhiBSQURPTUlSIERJUEwgUFJBVk5JSworVFJJRlVOT1ZJxIYgUlXFvUlDQQorVFJJRlVOT1ZJxIYgU0xBVklDQQorVFJJRlVOT1ZJxIYgU0xPQk9EQU4gRFIKK1RSSUZVTk9WScSGIFNMT0JPREFOCitUUklGVU5PVknEhiBTT0ZJSkEKK1RSSUZVTk9WScSGIFNUQU5BCitUUklGVU5PVknEhiBTVkVUSVNMQVYgRFIKK1RSSUZVTk9WScSGIFNWRVRPTUlSCitUUklGVU5PVknEhiBUUklGVU4KK1RSSUZVTk9WScSGIFZBU0EKK1RSSUZVTk9WScSGIFZFUkEKK1RSSUZVTk9WScSGIFZMQURBTgorVFJJRlVOT1ZJxIYgVkxBRElNSVIKK1RSSUZVTk9WScSGIFZMQURJTUlSCitUUklGVU5PVknEhiBWT0pJU0xBVgorVFJJRlVOT1ZJxIYgVlVLT1NBVkEKK1RSSUZVTk9WScSGIFZVS09TQVYKK1RSSUtJxIYgRFJBR0lDQQorVFJJS0nEhiBNSVJLTworVFJJS0nEhiBST1NBCitUUklLScSGIFNWRVRPWkFSCitUUklLScSGIFZMQURJTUlSCitUUklQS09WScSGIE1JTEFOCitUUklQS09WScSGIFNMT0JPREFOCitUUklQT0xTS0kgTUFSSUpBCitUUklQVU5PVknEhiDEkE9SxJBJSkEKK1RSSVBVTk9WScSGIEJMQcW9TworVFJJUFVOT1ZJxIYgRFJBR09NSVIKK1RSSVMgSkFLT0IKK1RSSVZBTk9WScSGIERSQUdBTgorVFJJVkFOT1ZJxIYgUkFERQorVFJJVkFOT1ZJxIYgU1RFVkFOCitUUklWQU5PVknEhiBWRVJBCitUUklWScSGIEJPUklTCitUUklWScSGIEJSQU5JU0xBVgorVFJJVknEhiBET0JSSVZPSkUKK1RSSVZJxIYgRFXFoEFOCitUUklWScSGIEpPVkFOCitUUklWScSGIFNWRVRMQU5BCitUUklWVU7EjEnEhiBNSVJBCitUUklWVU5Exb1BIE1JTE/FoAorVFJJVlVORMW9QSBORU5BRAorVFJJVlVOScSGIEJPR09MSlVCCitUUklWVU5JxIYgTUlST1NMQVYKK1RSSVZVTknEhiBSQU5LTworVFJJVlVOT1ZJxIYgTUxBREVOS08KK1RSSVZVTk9WScSGIFNJTU8KK1RSSVZVTk9WScSGIFRJSE9NSVIKK1RSSVpMScSGIFNMQVZLTworVFJLTEpBIEdPSktPCitUUktMSkEgTUlSS08KK1RSS1VMSkEgxb1JVk9SQUQKK1RSS1VMSkEgQU5BCitUUktVTEpBIEJPxaBLTworVFJLVUxKQSBCT1JJU0xBVgorVFJLVUxKQSBCUkFOS08KK1RSS1VMSkEgRFJBR0FOCitUUktVTEpBIERSQUdBTgorVFJLVUxKQSBFU1RFUgorVFJLVUxKQSBHT0pLTworVFJLVUxKQSBHUk9aREEKK1RSS1VMSkEgSk9WQU4KK1RSS1VMSkEgSlVMS0EKK1RSS1VMSkEgTUFSSU5LTworVFJLVUxKQSBNSUxBTgorVFJLVUxKQSBNSUxPUkFECitUUktVTEpBIE1JT0RSQUcKK1RSS1VMSkEgTUlPRFJBRworVFJLVUxKQSBORURFTEpLTworVFJLVUxKQSBOSUtPTEEKK1RSS1VMSkEgTk9WQUsKK1RSS1VMSkEgTk9WQUsKK1RSS1VMSkEgUEVUQVIKK1RSS1VMSkEgUkFOS08KK1RSS1VMSkEgU0xBVktPCitUUktVTEpBIFNPRklKQQorVFJLVUxKQSBTT05KQQorVFJLVUxKQSBTVEVWQU4KK1RSS1VMSkEgU1RPSkFOS0EKK1RSS1VMSkEgVkxBRElTTEFWQQorVFJNxIxJxIYgUkFET1NMQVYKK1RSTsSMScSGIExBWk8KK1RSTkFWQUMgTUlMQU4KK1RSTknEhiBSQURNSUxBCitUUk5JxIYgVkVSQQorVFJOSU5JxIYgxb1JVkFOCitUUk5JTknEhiDFvUlWT0pJTgorVFJOSU5JxIYgxJBPUsSQRQorVFJOSU5JxIYgxJBVUkEKK1RSTklOScSGIEJPR0RBTgorVFJOSU5JxIYgQk9KQQorVFJOSU5JxIYgQk9SSVZPSgorVFJOSU5JxIYgQk9TSUxKS0EKK1RSTklOScSGIERPQlJJVk9KCitUUk5JTknEhiBEUkFHQU4KK1RSTklOScSGIERSQUdBTgorVFJOSU5JxIYgRFXFoEFOCitUUk5JTknEhiBNQVJBCitUUk5JTknEhiBNQVJJSkEKK1RSTklOScSGIE1JUktPCitUUk5JTknEhiBNSVJLTworVFJOSU5JxIYgTUlST1NMQVYKK1RSTklOScSGIE1PTcSMSUxPCitUUk5JTknEhiBPTElWRVJBCitUUk5JTknEhiBSQURJVk9KCitUUk5JTknEhiBSQURPSktBCitUUk5JTknEhiBSQURPVkFOCitUUk5JTknEhiBTVEVWQQorVFJOSU5JxIYgVkxBRElNSVIKK1RSTkpBS09WIERVxaBBTgorVFJOT1ZBQyBOQURBCitUUk/EjEEgS09STkVMCitUUk/FoEVMSkFDIE1BVE8KK1RST8WgS0lOIFNBVkVUQQorVFJPxaBLSU4gVEFNQVJBCitUUk9KQU5PViBFRFZBUkQKK1RST0pBTk9WIE1BUklKQQorVFJPSkFOT1YgUk9NQU4KK1RST0pLT1ZJxIYgSUxPTkEKK1RST01MRVIgTEFTTE8KK1RSUMSMRVZJxIYgTUlST1NMQVYKK1RSUMSMRVZTS0kgVE9NxIxFCitUUlBJTkFDIEpFTEVOQQorVFJQS0EgUEFWTEUKK1RSUEtBIFBBVkxFCitUUlBPVlNLSSBWQVNJTEoKK1RSU1RFTkpBSyBGUkFOSkEKK1RSVEnEhiBTTEFWS08KK1RSVcWgTk9WRUMgSVZBTgorVFJVQkFSQUMgR0FCUklKRUxBCitUUlVEQSBBTElKQQorVFJVREnEhiBJVkFOCitUUlVKScSGIERVxaBJQ0EKK1RSVUpJxIYgTUlMT8WgIFZFVEVSSU5BUgorVFJVTUJJxIYgVkVEUkFOCitUUlVNScSGIFNPRklKQQorVFJVTUnEhiBWRVJBCitUVcSMRVYgxb1JVkFOS0EKK1RVxaBFViDFvUlWS08KK1RVxaBKQUsgSkFOCitUVcWgSkFLIEpVUkFKCitUVcWgSkFLIE1JTE/FoAorVFXFoE5FSyBPVElMSUpBCitUVcWgTkpBSyBBTkEKK1RVQknEhiDFvUlWQU4KK1RVQknEhiBBTEVLU0FOREFSCitUVUJJxIYgQlJBTklTTEFWCitUVUJJxIYgRFJBR1VUSU4KK1RVQknEhiBEVcWgQU4KK1RVQknEhiBEVcWgQU4KK1RVQknEhiBKVUdPU0xBVgorVFVCScSGIExFUE9TQVZBCitUVUJJxIYgTUlMQU4KK1RVQknEhiBNSUxFTktPCitUVUJJxIYgTUlMSVZPSgorVFVCScSGIE1JTE/FoAorVFVCScSGIE1JTE9KS08KK1RVQknEhiBNSUxPUkFECitUVUJJxIYgTklLT0xBCitUVUJJxIYgTk9WQUsKK1RVQknEhiBPTEdBCitUVUJJxIYgUEVUQVIKK1RVQknEhiBSQURBCitUVUJJxIYgUkFETUlMQQorVFVCScSGIFJBRE9WQU4KK1RVQknEhiBTQVZBCitUVUJJxIYgU1RBTktPCitUVUJJxIYgU1ZFVE9aQVIgRFIKK1RVQknEhiBWRVJBCitUVUJJxIYgVkxBRElNSVIKK1RVQknEhiBaT1JBTgorVFVCSU4gS0FUQVJJTkEKK1RVQklOIFNUT0pBTiBESVBMIElORworVFVCSU4gU1RPSkEKK1RVQklOIFRPTUlTTEFWCitUVUJJTiBaT1JLQQorVFVDQUtPViDEkE9SxJBFCitUVUNBS09WIMSQT1LEkEUKK1RVQ0FLT1YgQk/FoEtPCitUVUNBS09WIEJPR0RBTktBCitUVUNBS09WIEJPUkEKK1RVQ0FLT1YgQlJBTktPCitUVUNBS09WIERBUklOS0EKK1RVQ0FLT1YgRFJBR0FOCitUVUNBS09WIEtBTUVOS08KK1RVQ0FLT1YgTEFUSU5LQQorVFVDQUtPViBNQVJJSkEKK1RVQ0FLT1YgTUFSS08KK1RVQ0FLT1YgTUlMQU4KK1RVQ0FLT1YgTUlMQU4KK1RVQ0FLT1YgTUlMSUNBCitUVUNBS09WIE5PVkFLCitUVUNBS09WIFJBRElWT0oKK1RVQ0FLT1YgUkFET0pLQQorVFVDQUtPViBSQURPU0xBVgorVFVDQUtPViBSQUpLTworVFVDQUtPViBTSU5JxaBBCitUVUNBS09WIFRBTkFTSUpFCitUVUNBS09WIFZFUkEKK1RVQ0FLT1YgVkxBRElNSVIKK1RVQ0FLT1YgWk9SQU5BCitUVUNBS09WIFpPUkEKK1RVQ0FLT1ZJxIYgxJBPUsSQRQorVFVDQUtPVknEhiBEQU5JQ0EKK1RVQ0FLT1ZJxIYgREVTQU5LQQorVFVDQUtPVknEhiBKT1ZBTgorVFVDQUtPVknEhiBNSUxPxaAKK1RVQ0FLT1ZJxIYgUkFET1NMQVYKK1RVQ0nEhiDEkE9SxJBFCitUVUNJxIYgQlJBTklTTEFWCitUVUNJxIYgTEFaQVIKK1RVQ0nEhiBNSUxFTktPCitUVUNJxIYgTUlST1NMQVZBCitUVUNJxIYgTUlST1NMQVYKK1RVQ0nEhiBWVUpJQ0EKK1RVQ09WScSGIFpPUkEKK1RVRkVHRMW9ScSGIE1JTEVOCitUVUtBxIwgTUlIQUpMTworVFVLQU5JxIYgRU5EUkUKK1RVS0FOScSGIElSRU5BCitUVUtBUiBGQURJTAorVFVLQVIgTUlSSkFOQQorVFVLScSGIFBFVEFSCitUVUtJxIYgU1RPSkFOS0EKK1RVTEHEhiBKT1ZJQ0EKK1RVTEVOxIxJxIYgS0FUSUNBCitUVUxFTsSMScSGIFJBRE9TTEFWQQorVFVMRU7EjEnEhiBSQURPU0xBVgorVFVMScSGIEJPUktPCitUVUxJxIYgTkVWRU5LTworVFVMVUJFQyDEkE9SxJBFCitUVUxVQkVDIE1JTEtBCitUVUxVQkVDIFZBU0lMSUpFCitUVU1BUknEhiBCUkFOSVNMQVYKK1RVTUFSScSGIENWRVRJTgorVFVNQVJJxIYgTUlMT1JBRAorVFVNQkFTIEFHTkVaQQorVFVNQkFTIElWQU4KK1RVTUJBUyBMSlVERVZJVAorVFVNSU4gRFXFoEFOS0EKK1RVTkdVWiBKRUxJU0FWRVRBCitUVU5JxIYgUkFET0pJQ0EKK1RVTknEhiBSQUpLTworVFVOScSGIFNQQVNPSkUKK1RVTknEhiBTVEVWQU4KK1RVTlRFViBNQVJJSkEKK1RVUEFOxIxFVlNLSSBOSUtPTEEKK1RVUEVDIFpWT05JTUlSCitUVVBJxIYgTkVWRU5LQQorVFVSIE1JSEFKTE8KK1RVUiBTVVpBTkEKK1RVUsSMQU4gSkFOCitUVVLEjEFOIEpBTgorVFVSxIxBTiBKVVJBSgorVFVSxIxBTiBWTEFESU1JUiBTVURJSkEKK1RVUsSMScSGIE1JUk9TTEFWQQorVFVSxaBJxIYgSkVMRU5BCitUVVLFoElKQU4gVkFTQQorVFVSQUkgQkVMQQorVFVSQUkgTUlIQUpMTworVFVSQUkgVEVSRVpBCitUVVJBSkxJxIYgTUlMRQorVFVSQUpMSUpBIEJPxb1JQ0EKK1RVUkFKTElKQSBNSVJPU0xBVgorVFVSQU4gxJBVUkEKK1RVUkFOIExKVUJJQ0EKK1RVUkFOU0tJIMSQT1LEkEUKK1RVUkFOU0tJIEZFUkVOQworVFVSQU5TS0kgR0VaQQorVFVSQU5TS0kgSkFOT8WgCitUVVJBTlNLSSBKT1NJUAorVFVSQU5TS0kgTEFTTE8KK1RVUkFOU0tJIE1BUklDQQorVFVSQU5TS0kgTUFSSUpBCitUVVJBTlNLSSBNQVRJSkEKK1RVUkFOU0tJIFBFVEFSCitUVVJBTlNLSSBTVEVWQU4KK1RVUkkgQVJQQUQKK1RVUkkgVElCT1IKK1RVUknEhiBMVUtBCitUVVJJxIYgTUFSSU5LTworVFVSSUtBIEpPU0lNCitUVVJJTlNLSSBEVcWgQU4KK1RVUklOU0tJIEVESVRBCitUVVJJTlNLSSBNSUxFVEEKK1RVUklOU0tJIE1JT01JUgorVFVSSyBNSVJLTworVFVSSyBOQURBCitUVVJLQUxKIEtBVEEKK1RVUktPVknEhiBIQUtJSkEKK1RVUktPVknEhiBNSVJLTworVFVSS09WScSGIE1JVEFSCitUVVJLT1ZJxIYgUEVUQVIKK1RVUktPVknEhiBSQUZJVAorVFVSS09WScSGIFZMQURJTUlSCitUVVJLT1ZJxIYgWklOS0EKK1RVUktVTE9WIMW9QUtMSU5BCitUVVJLVUxPViBEVcWgQU4KK1RVUktVTE9WIEpPVkFOCitUVVJMQUtPViBDVkVUQU4KK1RVUk5BSiBTTEFWT0xKVUIgRElQTCBJTkcKK1RVUk8gTUlIQUxKCitUVVJPTUFOIE1JTE9SQUQKK1RVUk9QT0xKQUMgTUnEhk8KK1RVUlVEScSGIE1JTEFOCitUVVJVREnEhiBNSU9EUkFHCitUVVJVRElKQSBNSUxPUkFECitUVVJVS0FMTyBNSU9EUkFHCitUVVJVS0FMTyBSQURNSUxBCitUVVJVS0FMTyBaT1JBCitUVVJaTyBKRUxJU0FWRVRBCitUVVJaTyBLQVJMTworVFVUScSGIElMSUpBCitUVVROSUxPVknEhiBOQURBCitUVVROSkVWScSGIEJPxb1FTktBCitUVVROSkVWScSGIEJPR0RBTgorVFVUTkpFVknEhiBKT1ZBTgorVFVUTkpFVknEhiBNSVJPU0xBVgorVFVUTkpFVknEhiBSQURPSktBCitUVVRPUk9WIERFU0FOxIxJxIYKK1RVVE9ST1YgSlVMS0lDQQorVFVUT1JPViBTVEFOQQorVFVUT1JPViBTVEVWQU4KK1RVVFVMVUdExb1JSkEgTUFSQQorVFVWRUTFvUnEhiBEUkFHQU5BCitUVVZJxIYgU0xPQk9EQU4KK1RWUlRLT1ZJxIYgTUFSSU4gRFIgTEVLQVIKK1XFoMSGRUJSS0EgTEFaQVIKK1XFoMSGRUJSS0EgTUlMRU5LTworVcWgxIZFQlJLQSBaTEFUTworVcWgxIZVTUxJxIYgTUlMRU5LTworVcWgxIZVTUxJxIYgTkXFoEtPCitVxaDEhlVNTEnEhiBWVUtJQ0EKK1XFoEFOIEpBTkVaCitVxaBKQUsgSkFOS08KK1XFoEpBSyBKQVJNSUxBCitVxaBKQUsgVkxBU1RBCitVxaBMSkVCUktBIE1JTE9SQUQKK1XFoFRJUEFLIEpFTEEKK1XEhlVLQUxPIFNJTU8KK1XFvUFSIERFU0FOS0EKK1XFvUFSIEtBVElDQQorVcW9ScSMQU5JTiDEkE9SxJBFCitVQkFWxIxJxIYgU0FWQQorVUJBVknEhiBEQVJJTktBCitVQkFWScSGIExKVUJJQ0EKK1VCQVZJxIYgTU9NxIxJTE8gRFIKK1VCSVBBUklQIMSMRURPCitVQklQQVJJUCDFvUlWS08KK1VCSVBBUklQIEdPSktPCitVQklQQVJJUCBJTEUKK1VCSVBBUklQIEpBTkpBCitVQklQQVJJUCBKT1ZPCitVQklQQVJJUCBNQVJJTktPCitVQklQQVJJUCBNQVJLTworVUJJUEFSSVAgTUlMQU4KK1VCSVBBUklQIE1JUktPCitVQklQQVJJUCBNT01JUgorVUJJUEFSSVAgUEFWTEUKK1VCSVBBUklQIFNMQVZLTworVUJJUEFSSVAgVE9ERQorVUJJUEFSSVAgVk9KS08KK1VCSVBBUklQIFpEUkFWS08KK1VCSVBBUklQIFpPUkFOCitVQk9SS0EgxaBBTkRPUgorVUJPUktBIE1BUlRPTgorVUJPUktBIFNURVZLQQorVUJPUk5KSSDFoEFORE9SCitVQk9STkpJIEFORFJBxaAKK1VCT1ZJxIYgRVZBCitVQk9WScSGIEpFRlRBCitVQk9WScSGIEpPVklDQQorVUJPVknEhiBNQVJLTworVUJPVknEhiBNSUxPxaAKK1VCT1ZJxIYgUEVUUkEKK1VCT1ZJxIYgUkFKS08KK1VDQUogVkxBRElNSVIKK1VESUNLSSBQQUpBCitVRElDS0kgU0xBVklDQQorVURJQ0tJIFNSRURPSkUKK1VET1ZJxIxJxIYgQk9CQU4KK1VET1ZJxIxJxIYgQlJBTktPCitVRE9WScSMScSGIElWQU4KK1VET1ZJxIxJxIYgTU9NSVIKK1VET1ZJxIxJxIYgUkFET1NMQVYKK1VET1ZJxIxJxIYgU1RFVkFOCitVRE9WScSMS0kgQlJBTktPIExFS0FSCitVRE9WScSMS0kgSlVMS0EKK1VET1ZJxIxLSSBPTEdJQ0EgRFIKK1VET1ZJxIxLSSBTTE9CT0RBTgorVURPVknEjEtJIFNWRVRPWkFSCitVRFJJSkEgUEVUQVIKK1VEVkFSREkgS0FSTE8KK1VHQVLEjElOQSBCT1JJU0xBVgorVUdBUsSMSU5BIERSQUdBTgorVUdBUsSMSU5BIElMSUpBCitVR0FSQUsgxJBPUsSQRQorVUdBUkFLIEJPxb1PCitVR0FSQUsgRFJBR0FOCitVR0FSQUsgRFXFoEFOCitVR0FSQUsgUEVUQVIKK1VHQVJLT1ZJxIYgREFSSU5LQQorVUdBUktPVknEhiBKRUxBCitVR0FSS09WScSGIEtBVElDQQorVUdBUktPVknEhiBTVEVWQU4KK1VHTEpFxaBJxIYgQk/FoEtPCitVR0xKRcWgScSGIEhJTERBCitVR1LEjEnEhiBWVUtJQ0EKK1VHUkXFoEnEhiBQRVRBUgorVUdSRU0gTUFSSUpBCitVR1JFTSBSQURPVkFOCitVR1JFTiBNSUxPUkFECitVR1JFTiBQRVRBUgorVUdSRU5JxIYgTEFTTE8KK1VHUkVOScSGIE1JSEFMSgorVUdSRU5PVknEhiBWVcSMScSGCitVR1JFTk9WScSGIFZVSkFESU4KK1VHUklDQSBEUkFHQU4KK1VHUklDQSBTUkXEhktPCitVR1JJTiBJTElKQQorVUdSSU4gTUlMT1ZBTgorVUdSSU7EjEnEhiBEQU5JTEtBCitVR1JJTsSMScSGIERPQlJJTEEKK1VHUklOxIxJxIYgTUlMSVZPSgorVUdSSU7EjEnEhiBNSVJKQU5BIERSCitVR1JJTsSMScSGIFNURVZBTgorVUdSSU7EjEnEhiBWTEFEQSBESVBMIElORworVUdSSU5PViDEkFVSSUNBCitVR1JJTk9WIERPQlJJTEEKK1VHUklOT1YgTUlMSUNBCitVR1JJTk9WIE5BREEKK1VHUk5PViBWTEFESU1JUgorVUdSTk9WIFpPUklDQQorVUhFUiBWRVJBCitVSExBUklLIEVMSVpBQkVUQQorVUhMQVJJSyBMQURJU0xBVgorVUhMQVJJSyBTVEVWQU4KK1VIT1IgUEVUQVIKK1VKIE1BUlRPTgorVUrEjEnEhiBCTEHFvQorVUrEjEnEhiBUT01BCitVSkRJTE9WScSGIE1JTE9SQUQKK1VKRkFMVcWgIFZFTElNSVIKK1VKRkFMVcWgSSDEkFVSQQorVUpGQUxVxaBJIEpBTktPCitVSkZBTFXFoEkgSlVMSUpBTgorVUpGQUxVxaBJIExKVUJPTUlSCitVSkZBTFXFoEkgTUlST1NMQVYKK1VKRkFMVcWgSSBOSUtPTEEKK1VKRkFMVcWgSSBTSUxWRVNURVIKK1VKRkFMVcWgSSBWTEFESU1JUgorVUpGRUxKQU4gTUlMQU4KK1VKSEFaSSBCT1JJxaBLQQorVUpIQVpJIElWQU4KK1VKSEFaSSBKRUxJU0FWRVRBCitVSkhBWkkgTEFESVNMQVYKK1VKSEFaSSBNSVJLTworVUpIRUxKSSBKT1ZBTktBCitVSkhFTEpJIE1JSEFMSgorVUpMQUtPxaAgS0FSTE8KK1VKVkFSSSBHQUJPUgorVUpWQVJJIEtBVEFMSU4KK1VLQcSMRUsgVkVSS0EKK1VLUk9QSU5BIMSMRURBCitVS1JPUElOQSBERVNBTktBCitVS1JPUElOQSBKRUxFTkEKK1VLUk9QSU5BIEpPVkFOS0EKK1VLUk9QSU5BIEpPVkFOCitVS1JPUElOQSBNSUxPVkFOCitVS1JPUElOQSBORUJPSsWgQQorVUtST1BJTkEgUEFOVE8KK1VLUk9QSU5BIFRPTUlTTEFWCitVTEVNRUsgxJBVUk8KK1VMScSGIMW9RUxKS0EKK1VMScSGIMSQT1LEkEUKK1VMScSGIEFMRUtTQU5EQVIKK1VMScSGIERPQlJPU0xBVgorVUxJxIYgTUlMQU4KK1VMSkFSRVZJxIYgUEVSTworVU1FSyBNQVJHSVRBCitVTUVLIE1JS0xPxaAKK1VNScSMRVZJxIYgUEVSQQorVU1JxIZFVknEhiDFvUVMSktPCitVTUnEhkVWScSGIEdPUkRBTkEKK1VNScSGRVZJxIYgTUlSS08KK1VNScSGRVZJxIYgTUxBREVOCitVTsSMQU5JTiBCT0pBTgorVU7EjEFOSU4gRFXFoEFOCitVTkdBUiBUSUhPTUlSCitVTkdVUk9WScSGIEpFTEVOQQorVU5LT1ZJxIYgQU7EkEVMS08KK1VOS09WScSGIE1MQURFTgorVVJBxIwgxaBBTkRPUgorVVJBxIwgQUxFS1NBTkRBUgorVVJBxIwgREFOSUNBCitVUkHEjCBHSVpFTEEKK1VSQcSMIEnFoFRWQU4KK1VSQcSMIFJPWkFMSUpBCitVUkJBTiDEkEVSxJAKK1VSQkFOIMSQT1LEkEUKK1VSQkFOIEFOQQorVVJCQU4gSE9SVkFUCitVUkJBTiBJxaBUVkFOCitVUkJBTiBKQU5PxaAKK1VSQkFOIEpBU05BCitVUkJBTiBNSUhBTEoKK1VSQkFOIE1JSEFMSgorVVJCQU4gUEFWRUwKK1VSQkFOIFNUQU5JU0xBVgorVVJCQU4gU1RFVkFOCitVUkJBTiBWSUtUT1JJSkEKK1VSQkFOIFZMQURJU0xBVgorVVJCQU7EjElLIFBJUk/FoEtBCitVUkJBTsSMSUsgU0lMVklBCitVUkJBTk9WScSGIFNURVZBTgorVVJEQVJFVknEhiBTVEFOSU1JUgorVVJFS0UgxJBPUsSQRQorVVJJIMSMQUJBCitVUkkgQUxFS1NBTkRBUgorVVJJIEVWQQorVVJJIEdBQk9SCitVUkkgS0FSTE8KK1VSSSBMQVNMTworVVJJIFBBSkEKK1VSSSBTVEVWQU4KK1VSSSBTVEVWQU4KK1VSS0lOIExKVUJJQ0EKK1VSTElIIE1BUklKQQorVVJPxaBFViDFvUlWQU4KK1VST8WgRVYgQk9KS0EKK1VST8WgRVYgSUxJSkEKK1VST8WgRVYgSkVSSUNBCitVUk/FoEVWIE1JTEVOS08KK1VST8WgRVYgTUlSSkFOQQorVVJPxaBFViBQQUpBCitVUk/FoEVWIFNPRklKQQorVVJPxaBFViBTVE9KQU4KK1VST8WgRVYgVkVMSU5LQQorVVJPxaBFVknEhiDFvUlWQU4KK1VST8WgRVZJxIYgQUxFS1NBTkRBUgorVVJPxaBFVknEhiBCT0dEQU4gRElQTCBJTkcKK1VST8WgRVZJxIYgQk9SSVZPSgorVVJPxaBFVknEhiBCUkFOS0EKK1VST8WgRVZJxIYgQlJBTktPCitVUk/FoEVWScSGIERSQUdJxaBBCitVUk/FoEVWScSGIERVxaBBTgorVVJPxaBFVknEhiBJVkFOCitVUk/FoEVWScSGIExFT05BCitVUk/FoEVWScSGIExKSUxKQU5BCitVUk/FoEVWScSGIExKVUJJQ0EKK1VST8WgRVZJxIYgTUFSS0EKK1VST8WgRVZJxIYgTUlMT8WgCitVUk/FoEVWScSGIE1JUkpBTkEKK1VST8WgRVZJxIYgTkFEQQorVVJPxaBFVknEhiBSVcW9SUNBCitVUk/FoEVWScSGIFNSxJBBCitVUk/FoEVWScSGIFNUQU5JU0xBVkEKK1VST8WgRVZJxIYgVklET0pLTworVVJPxaBFVknEhiBWTEFESU1JUgorVVJPxaBFVknEhiBaT1JJQ0EKK1VSU0nEhiBWTEFESU1JUgorVVJTVUxFU0tVIEZMT1JJTgorVVJTVUxFU0tVIEpVTElKQU4KK1VTS09LT1ZJxIYgQlJBTklTTEFWCitVU0tPS09WScSGIE1JTEVOS08KK1VTS09LT1ZJxIYgTUlMT8WgCitVU1RJxIYgxJBVUkEKK1VTVEnEhiBOSUtPTEEKK1VTVEnEhiBTSU1BCitVU1RJxIYgVk9KS08KK1VUQcWgSSDEjEFCQQorVVRKRcWgQU5PVknEhiBTSU1PCitVVEpFxaBJTk9WScSGIERFU0FOS0EKK1VUSkXFoElOT1ZJxIYgTEpJTEpBTkEKK1VUSkXFoElOT1ZJxIYgTUlMQU4KK1VUSkXFoElOT1ZJxIYgVkVSQQorVVRPUk5JSyBJVkFOCitVVE9STklLIEpPVkFOCitVVE9STklLIEtBVElDQQorVVRPUk5JSyBMSlVCSUNBCitVVE9STklLIE1JTE/FoAorVVRPUk5JSy1SQURVTE9WScSGIE1BUklKQQorVVRPUk5JSyBTVEVWQU4KK1VUT1JOSUsgU1ZFVE9aQVIKK1VUUsW9QU4gQlJBTktPCitVVFZJxIYgS09TVEEKK1VUVknEhiBQQVZMRQorVVRWScSGIFZBU0EKK1VUVknEhi1WVUtBxaBJTk9WScSGIERBUkEKK1VWQUxJxIYgQU5HRUxJTkEKK1VWQUxJxIYgRFXFoEFOS0EKK1VWQUxJxIYgRFXFoEFOCitVVkFMScSGIERVxaBLTworVVZBTEnEhiBMQVpBUgorVVZBTEnEhiBNRUxBTklKQQorVVZBTEnEhiBSQURPU0xBVgorVVZBTEnEhiBTVEFOSVNMQVYKK1VWQUxJxIYgVkFTQQorVVZFUknEhiDEkFVSQQorVVZFUknEhiBCUkFOS0EKK1VWRVJJxIYgTUlMQU4KK1VWRVJJxIYgTUlMT8WgCitVVkVSScSGIE1JTE9SQUQKK1VWRVJJxIYgTUlSSkFOQQorVVZFUknEhiBOSUtPTEEKK1VaQUlSIEFMSUpBCitVWkVJUkkgTVVBUkVNCitVWkVMQUMgxJBPUsSQRQorVVpFTEFDIMSQT1LEkEUKK1VaRUxBQyDEkE9SxJBFCitVWkVMQUMgxJBPUsSQRQorVVpFTEFDIMSQVVJJQ0EKK1VaRUxBQyDEkFVSTworVVpFTEFDIEFMRUtTQU5EUkEKK1VaRUxBQyBBTEVLU0EKK1VaRUxBQyBCSVNFUktBCitVWkVMQUMgQk/FoEtPCitVWkVMQUMgQk9HREFOCitVWkVMQUMgQk9HREFOCitVWkVMQUMgQlJBTklTTEFWCitVWkVMQUMgQlJBTklTTEFWCitVWkVMQUMgQlJBTklTTEFWCitVWkVMQUMgQlJBTktPCitVWkVMQUMgQ1ZFVEEKK1VaRUxBQyBEQVJJTktBCitVWkVMQUMgREVTQU5LQQorVVpFTEFDIERSQUdBTgorVVpFTEFDIERSQUdBTgorVVpFTEFDIERSQUdBTgorVVpFTEFDIERVxaBBTktBCitVWkVMQUMgRFXFoEFOCitVWkVMQUMgRFXFoEFOCitVWkVMQUMgRFXFoEFOCitVWkVMQUMgRFXFoEFOCitVWkVMQUMgRVZBCitVWkVMQUMgR0FMSU5BCitVWkVMQUMgR09SREFOQQorVVpFTEFDIElMSUpBCitVWkVMQUMgSVZBTgorVVpFTEFDIEpFTEVOQQorVVpFTEFDIEtPU1RBCitVWkVMQUMgTEFaQVIKK1VaRUxBQyBNQVJJSkEKK1VaRUxBQyBNQVJJSkEKK1VaRUxBQyBNQVJJSkEKK1VaRUxBQyBNQVJJSkEKK1VaRUxBQyBNSUhBSkxPCitVWkVMQUMgTUlMQU4KK1VaRUxBQyBNSUxBTgorVVpFTEFDIE1JTEFOCitVWkVMQUMgTUlMQU4KK1VaRUxBQyBNSUxBTgorVVpFTEFDIE1JTEFOCitVWkVMQUMgTUlMQU4KK1VaRUxBQyBNSUxFCitVWkVMQUMgTUlMSUNBCitVWkVMQUMgTUlMT8WgCitVWkVMQUMgTU9NxIxJTE8KK1VaRUxBQyBOSUtPTEEKK1VaRUxBQyBOSUtPTEEKK1VaRUxBQyBPTElWRVJBCitVWkVMQUMgUkFETUlMQQorVVpFTEFDIFJBRE9KS0EKK1VaRUxBQyBSRU5BVEEKK1VaRUxBQyBTTEFWS08KK1VaRUxBQyBTTE9CT0RBTgorVVpFTEFDIFNMT0JPREFOCitVWkVMQUMgU09GSUpBCitVWkVMQUMgU1LEkEFOCitVWkVMQUMgU1LEkEFOCitVWkVMQUMgU1RFVkFOCitVWkVMQUMgU1RFVkFOCitVWkVMQUMgU1RFVkFOCitVWkVMQUMgU1RFVkFOCitVWkVMQUMgU1RPSkFOCitVWkVMQUMgVkVSQQorVVpFTEFDIFZVSk8KK1VaRUxBQyBaTEFUS08KK1VaRUxBQyBaTEFUS08KK1VaRUxBQyBaTEFUS08KK1VaRUxBQyBaT1JBTgorVVpFTEFDIFpPUkFOCitVWkVMQUMgWk9SQU4KK1VaRUxBQyBaT1JBTgorVVpFTEFDIFpPUkFOCitVWkVMQUMgWk9SQU4KK1VaT1JPQ0tJIEnFoFRWQU4KK1VaVU5PVknEhiBCUkFOSVNMQVYKK1VaVU5PVknEhiBMQURJU0xBVgorVVpVTk9WScSGIE1JTE9SQUQKK1VaVU5PVknEhiBNSVRPCitVWlVOT1ZJxIYgTkFTVUYKK1VaVU5PVknEhiBSQUpLTworVVpVUk9WIE9CUkVOSUpBCitVWlVST1YgUkFETUlMQQorVkHEjEnEhiBBTEVLU0FOREFSCitWQcSMScSGIFpPUkFOCitWQcSMSUsgSk/FvUVGCitWQcWgIEFUSUxBCitWQcWgIEpPU0lQCitWQcWgIFBBVkxFCitWQcWgIFZFUkEKK1ZBxaDEjEnEhiBCT8W9SURBUgorVkHFoEHFoCBNSUtMT8WgCitWQcWgQcWgIE9MR0EKK1ZBxaBBREkgRkVSRU5DCitWQcWgQURJIEpVTElKQU5BCitWQcWgQURJIFZBTEVSSUpBCitWQcWgQUxJxIYgQU5LQQorVkHFoEFMScSGIE1JTE/FoAorVkHFoEFMScSGIE9CUkFECitWQcWgQUxJxIYgVVJPxaAKK1ZBxaBUQUcgxJBPUsSQRQorVkHFoFRBRyBBTkRSQcWgCitWQcWgVEFHIEnFoFRWQU4KK1ZBxaBUQUcgScWgVFZBTgorVkHFoFRBRyBKQVNNSU5LQQorVkHFoFRBRyBNQVJHSVRBCitWQcWgVEFHIE1BUklKQQorVkHFoFRBRyBNSUhBTEoKK1ZBxaBUQUcgT0xHQQorVkHFoFRBRyBSVcW9QQorVkHFoFRBRyBTVE9KQU4KK1ZBxb1JxIYgREFOSUNBCitWQcW9ScSGIEpPVkFOCitWQcW9ScSGIEpVTElKQQorVkHFvUnEhiBNSVJBCitWQcW9ScSGIFNMQVZJQ0EKK1ZBxb1JxIYgVkVSSUNBCitWQcW9ScSGIFZFU0VMSU4KK1ZBxb1JxIYgVkxBRElNSVIKK1ZBxb1PTkpJIEFOVEFMCitWQcW9T05KSSBST1pBTElKQQorVkFDSSDFoElNT04KK1ZBQ0nEhiBCTEFHT0pFCitWQUNJxIYgVklERU4KK1ZBQ0xBVklLIE1BUklKQQorVkFEQVNLSSBDRUNJTElKQQorVkFEQVNLSSBMSlVCT01JUgorVkFET0MgRlJBTkpBCitWQURPQyBJVklDQQorVkFET0MgSk9TSVAKK1ZBR0nEhiDEkFVSTworVkFHTkVSIMSQVVJBCitWQUdORVIgQU5EUklKQQorVkFHTkVSIEpPU0lQCitWQUdORVIgS0FSTE8KK1ZBR05FUiBMQVNMTworVkFHTkVSIE1BUklKQQorVkFHTkVSIE9USUxJSkEKK1ZBR08gScWgVFZBTgorVkFHTyBTVEVWQU4KK1ZBR1VSScSGIFpEUkFWS08KK1ZBSkFHScSGIEFOxJBFTEtBCitWQUpBR0nEhiBCT8WgS08KK1ZBSkFHScSGIEdPUkRBTkEKK1ZBSkFHScSGIE1JTEFOCitWQUpBR0nEhiBOSUtPTEEgRFIKK1ZBSkFHScSGIE5JS09MQQorVkFKQUdJxIYgU0FWTworVkFKQUdJxIYgU0lNQQorVkFKQUdJxIYgU1RPSkFOCitWQUpBR0nEhiBaT1JJQ0EKK1ZBSkRBIMWgQU5ET1IKK1ZBSkRBIMWgQU5ET1IKK1ZBSkRBIElSTUEKK1ZBSkRBIExBSk/FoAorVkFKREEgTEFKT8WgCitWQUpEQSBUSUJPUgorVkFKREEgVE9NSVNMQVYKK1ZBSkRJxIYgxb1JVktPCitWQUpEScSGIElWQU4KK1ZBSkRJxIYgSk9WQU4gRFIKK1ZBSkRJxIYgSk9WQU4gRFIKK1ZBSkRJxIYgTUlMSUNBCitWQUpEScSGIE1JTElDQQorVkFKREnEhiBOQURBCitWQUpEScSGIFBFVEFSCitWQUpEScSGIFRJSE9NSVIKK1ZBSkRMIEpPVkFOCitWQUpETCBNSVJPU0xBVgorVkFKRExFIEpPTEFOCitWQUpMRVIgQU5EUklKQQorVkFKTsWgVEFKTiBQRVRBUgorVkFKTkJFUkdFUiBWTEFESU1JUgorVkFKTkJFUkdFUiBaTEFUS08KK1ZBSk5CRVJHRVIgWlZPTklNSVIKK1ZBSk5HRVJUTkVSIFJBRE9KS0EgRElQTCBFQ0MKK1ZBSk5IRVBMIE1BUklBCitWQUpOSEVQTCBPVE1BUiBESVBMIElORworVkFKT1ZJxIYgVkFTSUxJSkUKK1ZBSlMgxaBBTkRPUgorVkFKUyBCUkFOS08KK1ZBSlMgS0FSTE8KK1ZBSlMgS0FSTE8KK1ZBSlMgTUFHREEKK1ZBSlMgVkVSSUNBCitWQUpTRU5CRVJHIEpPU0lQCitWQUpVS0nEhiBQQU5URUxJSkEKK1ZBS0FOSkFDIE1JTElDQQorVkFMIMSQT1LEkEUKK1ZBTCBBTkRSSUpBCitWQUwgRVZBCitWQUwgWk9MVEFOCitWQUxBSCBKQU5LTworVkFMQU4gT1NUT0pBCitWQUxBTiBaT1JBTgorVkFMRE1BIEFSQk8KK1ZBTEVLIEVNSUxJSkEKK1ZBTEVLIEZSQU5KQQorVkFMRU7EjElLIFBBVkVMCitWQUxFTsSMSUsgU1RFVkFOCitWQUxFTsSGSUsgQU5EUklKQQorVkFMRU7EhklLIEpBTgorVkFMRU7EhklLIFBBVkxFCitWQUxFTsSGSUsgVkxBRElNSVIKK1ZBTEVOVCDFvVXFvUFOQQorVkFMRU5UIEpBTktPCitWQUxFTlQgSkFOS08KK1ZBTEVOVCBMQVNMTworVkFMRU5UQSBKQVNNSU5LQQorVkFMRU5URU5KSSBKT1NJUAorVkFMRU5URU5KSSBKVUxJSkFOQQorVkFMRU5UScSGIElWQU4KK1ZBTEVOVEnEhiBWSUtUT1IKK1ZBTEVOVEnEhiBWSUtUT1IKK1ZBTEVOVElLIE5JS09MQQorVkFMRU5USU4gSU1SRQorVkFMRU5USU4gSlVDSUtBCitWQUxFTlRJTiBTVEVWQU4KK1ZBTEVOVElST1YgU1RFVkFOCitWQUxFTlRJUk9WScSGIExKVUJPTUlSCitWQUxFTlRPVknEhiBKT1NJUAorVkFMRU5UT1ZJxIYgS0FSTE8KK1ZBTEVOVE9WScSGIEtBUkxPCitWQUxFTlRPVknEhiBLQVJMTworVkFMRU5UT1ZJxIYgVElCT1IKK1ZBTEnEhiBHT1JBTgorVkFMScSGIFNMQVZLTworVkFMSUTFvUlKQSBOSUtPTEEgRElQTCBJTkcKK1ZBTElIT1JBIEpPWkVGCitWQUxJSE9SQSBLQVRJQ0EKK1ZBTEtBSSBKT8W9RUYKK1ZBTEtPIEdBVlJBCitWQUxPIEdPUkRBTkEKK1ZBTE8gSk9TSVAKK1ZBTE8gSk9TSVAKK1ZBTE8gTUlSS08KK1ZBTE8gU1RFVkFOCitWQUxPSyDEkE9SxJBFCitWQUxPSyDEkFVSQQorVkFMT0sgUkFUT01JUgorVkFMVEVSIERSQUdJTkpBCitWQUxURVIgTEpJTEpBTkEKK1ZBTFRFUiBOT1JCRVJUCitWQUxUTkVSIFBFVEFSCitWQUxVxaBFSyBKT1ZBTgorVkFMVcWgRUsgS0FUSUNBCitWQUxVxaBFSyBQQVZMRQorVkFMVUggQlJBTklTTEFWCitWQUxVSCBKQU5LTworVkFMVUggSkFOS08KK1ZBTFVIIEtBUkxPCitWQUxVSCBNSUhBSkxPCitWQU1CQUggVklLVE9SSUpBCitWQU1PxaBFUiBNSVJKQU5BCitWQU1PxaBFUiBQQVZMRQorVkFNUE9WQUMgSk9TSVAKK1ZBTsSQRUwgTUlMQU4KK1ZBTkRFUkVSIFBBTAorVkFORE9SSSBNQVJJSkEKK1ZBTknEhiBEUkFHVVRJTgorVkFOScSGIEtBVElDQQorVkFOScSGIExKVUJJQ0EKK1ZBTkpVUiBGUkFOSkEKK1ZBTkpVUiBGUkFOSkEKK1ZBTkpVUiBJxaBUVkFOIERJUEwgSU5HCitWQU5KVVIgSk/FvUVGCitWQU5KVVIgSk9TSVAKK1ZBTkpVUiBLQVJMTworVkFOSlVSIEtBUkxPCitWQU5KVVIgTUFSSUpBCitWQU5LTyBKQVJPU0xBVgorVkFOT1ZJxIYgU05Fxb1BTkEKK1ZBUEEgSk9WQU5LQQorVkFQQSBNSUxBTiBEUgorVkFQQSBWRVJBCitWQVBBIFpPUkFOCitWQVBFTlNLSSBJVkFOCitWQVBFTlNLSSBNQVJJSkEKK1ZBUsWgQU5KSSBJUkVOQQorVkFSQcSQQU5JTiBNSUxBTgorVkFSQURJIFRJQk9SIERSIFBST0YKK1ZBUkFHScSGIEJPR0RBTgorVkFSQUdJxIYgTEpVQklDQQorVkFSQUdJxIYgTUFSSUpBCitWQVJBR0nEhiBNRUxBTklKQQorVkFSQUdJxIYgTUlMSUNBCitWQVJBR0nEhiBWScSGRU5USUpFCitWQVJBSknEhiBHT1JBTgorVkFSQUpJxIYgR09SQU4KK1ZBUkFWQSBFTUlMSUpBTgorVkFSQkFJIExBRElTTEFWCitWQVJDQVIgREVTQU5LQQorVkFSREnEhiBHQVZSSUxPCitWQVJFTklLQSDEkE9LQQorVkFSRU5JS0EgQlJBTklTTEFWCitWQVJFTklLQSBSQURPSktBCitWQVJFVkFDIERSQUdBTgorVkFSR0EgxaBBTkRPUgorVkFSR0EgxaBBTkRPUgorVkFSR0EgxaBBTkRPUgorVkFSR0EgxaBBTkRPUgorVkFSR0EgxaBBTkRPUgorVkFSR0EtxaBPTU/EkEkgSkFOT8WgCitWQVJHQSDFvUFSS08KK1ZBUkdBIMSQRVLEkAorVkFSR0EgxJBPUsSQRQorVkFSR0EgxJBPUsSQRQorVkFSR0EgxJBVTEEKK1ZBUkdBIMSQVVJBCitWQVJHQSDEkFVSQQorVkFSR0EgQUxFS1NBTkRBUgorVkFSR0EgQU5BCitWQVJHQSBBTkRSQcWgCitWQVJHQSBBTkRSSUpBCitWQVJHQSBBTkRSSUpBCitWQVJHQSBBTlRPTgorVkFSR0EgQVJBTktBCitWQVJHQSBCRUxBCitWQVJHQSBCRUxBCitWQVJHQSBCSUxKQU5BCitWQVJHQS1CVVJBSSBFUsW9RUJFVAorVkFSR0EgRFJBR0lDQQorVkFSR0EgRFXFoEFOS0EKK1ZBUkdBIEVSxb1JS0EKK1ZBUkdBIEZFUkVOQworVkFSR0EgRkVSRU5DCitWQVJHQSBGRVJFTkMKK1ZBUkdBIEZSQU5KQQorVkFSR0EgRlJBTkpBCitWQVJHQSBGUkFOSk8KK1ZBUkdBIEZSQU5KTworVkFSR0EgR0FCT1IKK1ZBUkdBIEdJWkVMQQorVkFSR0EgSEVMRU5BCitWQVJHQSBJxaBUVkFOCitWQVJHQSBJxaBUVkFOCitWQVJHQSBJxaBUVkFOCitWQVJHQSBJxaBUVkFOCitWQVJHQSBJTEXFoAorVkFSR0EgSU1SRQorVkFSR0EtSVZBTiBBTkdFTElOQQorVkFSR0EgSkFLSU0KK1ZBUkdBIEpBTiBEUgorVkFSR0EgSkFOT8WgCitWQVJHQSBKQU5PxaAKK1ZBUkdBIEpBUk9TTEFWCitWQVJHQSBKRUxFTkEKK1ZBUkdBIEpFTElTQVZFVEEKK1ZBUkdBIEpPxb1FRgorVkFSR0EgSk/FvUVGCitWQVJHQSBKT8W9RUYKK1ZBUkdBIEpPU0lQQQorVkFSR0EgSk9TSVAKK1ZBUkdBIEpPU0lQCitWQVJHQSBKT1ZBTgorVkFSR0EgSlVMSUpBCitWQVJHQSBLQVJMTworVkFSR0EgS0FUQVJJTkEKK1ZBUkdBIEtBVEEKK1ZBUkdBLUtMScWgQU5JxIYgTEpVQklDQQorVkFSR0EgS09STkVMSUpBCitWQVJHQSBLT1JORUwKK1ZBUkdBIEtPU0FOQQorVkFSR0EgTEFESVNMQVYKK1ZBUkdBIExBSk/FoAorVkFSR0EgTEFKT8WgCitWQVJHQSBMQVNMTworVkFSR0EgTEFTTE8KK1ZBUkdBIExBU0xPCitWQVJHQSBMQVNMTworVkFSR0EgTEpVUEtBCitWQVJHQSBNQVJHSVRBCitWQVJHQSBNQVJJSkEKK1ZBUkdBIE1BUklKQQorVkFSR0EgTUFSSUpBCitWQVJHQSBNSUhBSkxPCitWQVJHQSBNSUhBSkxPCitWQVJHQSBNSUhBTEoKK1ZBUkdBIE1JUktPCitWQVJHQSBNSVJPTgorVkFSR0EgTUlST1NMQVYKK1ZBUkdBIE5JS09MQQorVkFSR0EgT0xHQQorVkFSR0EgUEFMCitWQVJHQSBQQUwKK1ZBUkdBIFBFVEFSCitWQVJHQSBQRVRBUgorVkFSR0EgUEVURVIgRElQTCBJTkcKK1ZBUkdBIFJBU1RJU0xBVgorVkFSR0EgUk9aQUxJSkEKK1ZBUkdBIFJPWkFMSUpBCitWQVJHQSBTTEFWSUNBCitWQVJHQSBTVEVWQU4KK1ZBUkdBIFNURVZBTgorVkFSR0EgU1RKRVBBTgorVkFSR0EgVElCT1IKK1ZBUkdBIFRJQk9SCitWQVJHQSBWRVJBCitWQVJHQSBWRVJBCitWQVJHQSBWRVJPTklLQQorVkFSR0EgVkxBRElTTEFWCitWQVJHQSBWTEFTVEEKK1ZBUkdBIFpPTFRBTgorVkFSR0EgWk9MVEFOCitWQVJHRUMgSVZBTgorVkFSSE9MSUsgQURBTQorVkFSScSGQUsgQk/FvU8KK1ZBUknEhkFLIERBUklOS0EKK1ZBUkpVIExBU0xPCitWQVJKVSBNQVJJSkEKK1ZBUkpVIFRFUkVaQQorVkFSS0HFoCBJVkFOCitWQVJNQVogSVNNRVQKK1ZBUk1FxJBBIMSQT1LEkEUKK1ZBUk1Vxb1BIE1BxIZBxaAKK1ZBUk5JQ0EgSVZBTgorVkFSTklDQSBQRVRBUgorVkFSTkpVIEFOVcWgS0EKK1ZBUk5KVSBHSVpFTEEKK1ZBUk5KVSBJTE9OQQorVkFSTk9TIE1BUlRPTgorVkFSTlVTIEpPxb1FRgorVkFST8WgxIxJxIYgU1BBU0VOSUpBCitWQVJPxaBJIEdBQlJJRUxBCitWQVJPxaBJIEpPVkFOCitWQVJPxaBJIFNJTEFSRAorVkFTRUxFSyDFoFRFRkFOCitWQVNFTEVLIFNURVZBTgorVkFTRUxFSyBTVEVWQU4KK1ZBU0VMRUsgVkFTSUxKCitWQVNJxIYgxb1FTEpLTworVkFTScSGIMW9SVZLQQorVkFTScSGIMW9SVZLTworVkFTScSGIMW9SVZLTworVkFTScSGIMW9SVZLTworVkFTScSGIMSQT0tBCitWQVNJxIYgxJBPUsSQRQorVkFTScSGIMSQT1LEkEUKK1ZBU0nEhiBBTEVLU0FOREFSCitWQVNJxIYgQU5JQ0EKK1ZBU0nEhiBBTktJQ0EKK1ZBU0nEhiBCT0pBTkEKK1ZBU0nEhiBCT1JJU0xBVgorVkFTScSGIEJPUklWT0oKK1ZBU0nEhiBCUkFOS08KK1ZBU0nEhiBDVkVUS08KK1ZBU0nEhiBEQVJJTktBCitWQVNJxIYgRE9CUklWT0oKK1ZBU0nEhiBEUkFHQU5BCitWQVNJxIYgRFJBR0FOCitWQVNJxIYgRFJBR0lDQQorVkFTScSGIERSQUdJQ0EKK1ZBU0nEhiBEUkFHSUNBCitWQVNJxIYgRFJBR09MSlVCCitWQVNJxIYgRFJBR09NSVIKK1ZBU0nEhiBEUkFHT01JUgorVkFTScSGIERSQUdPU0xBVgorVkFTScSGIERVxaBBTgorVkFTScSGIERVxaBBTgorVkFTScSGIERVxaBBTgorVkFTScSGIERVxaBBTgorVkFTScSGIERVxaBBTgorVkFTScSGIERVxaBBTgorVkFTScSGIERVxaBBTgorVkFTScSGIERVxaBBTgorVkFTScSGIERVxaBJQ0EKK1ZBU0nEhiBEVcWgS08gTk9WSU5BUgorVkFTScSGIERVQlJBVktBCitWQVNJxIYgRUxFTkEKK1ZBU0nEhiBHT1JBTgorVkFTScSGIEdPUkRBTkEKK1ZBU0nEhiBHT1JEQU5BCitWQVNJxIYgR09SRElDQQorVkFTScSGIEpBS09WCitWQVNJxIYgSkFOQQorVkFTScSGIEpBTktPCitWQVNJxIYgSkVMSUNBCitWQVNJxIYgSk9WTworVkFTScSGIEtBVElDQQorVkFTScSGIEtPU1RBCitWQVNJxIYgS1JJU1RJTkEKK1ZBU0nEhiBMQVpBUgorVkFTScSGIExKSUxKQU5BIERSCitWQVNJxIYgTEpJTEpBTkEKK1ZBU0nEhiBMSlVCT01JUgorVkFTScSGIExVS0EKK1ZBU0nEhiBNQUtTSU0KK1ZBU0nEhiBNQVJJSkFOQQorVkFTScSGIE1BUktPCitWQVNJxIYgTUnEhk8KK1ZBU0nEhiBNSUhBSUxPCitWQVNJxIYgTUlIQUpMTworVkFTScSGIE1JS0EKK1ZBU0nEhiBNSUxBTgorVkFTScSGIE1JTEFOCitWQVNJxIYgTUlMQU4KK1ZBU0nEhiBNSUxBTgorVkFTScSGIE1JTEFOCitWQVNJxIYgTUlMRU5LTyBEUiBQUklNQVJJVVMKK1ZBU0nEhiBNSUxFTktPCitWQVNJxIYgTUlMRU5LTworVkFTScSGIE1JTElDQQorVkFTScSGIE1JTElOS08KK1ZBU0nEhiBNSUxPxaAKK1ZBU0nEhiBNSUxPxaAKK1ZBU0nEhiBNSUxPVkFOCitWQVNJxIYgTUlMT1ZBTgorVkFTScSGIE1JTFVUSU4KK1ZBU0nEhiBNSU9EUkFHCitWQVNJxIYgTUlSSkFOQQorVkFTScSGIE1JUkpBTkEKK1ZBU0nEhiBNSVJKQU5BCitWQVNJxIYgTUlST1NMQVZBCitWQVNJxIYgTkFEQQorVkFTScSGIE5BREEKK1ZBU0nEhiBORURFTEpLTworVkFTScSGIE5FREVMSktPCitWQVNJxIYgTkVERUxKS08KK1ZBU0nEhiBOSUtPTEEKK1ZBU0nEhiBOT1ZBSworVkFTScSGIE5PVkFLCitWQVNJxIYgTk9WQUsKK1ZBU0nEhiBPTEdBCitWQVNJxIYgT0xHSUNBCitWQVNJxIYgT1NUT0pBCitWQVNJxIYgT1NUT0pBCitWQVNJxIYgUEFKQQorVkFTScSGIFBFUk8KK1ZBU0nEhiBQRVRBUgorVkFTScSGIFBFVEFSCitWQVNJxIYtUE9QT1ZJxIYgTEpJTEpBTkEKK1ZBU0nEhiBQUlZPU0xBViBESVBMIElORworVkFTScSGIFJBRElDQQorVkFTScSGIFJBRElWT0oKK1ZBU0nEhiBSQURPSkUKK1ZBU0nEhiBSQURPU0xBVgorVkFTScSGIFJBRE9WQU4KK1ZBU0nEhiBSQVRLTworVkFTScSGIFJBVklDQQorVkFTScSGIFNBVkEKK1ZBU0nEhiBTQVZBCitWQVNJxIYgU0FWQQorVkFTScSGIFNFS1VMQQorVkFTScSGIFNMQVZJQ0EKK1ZBU0nEhiBTTEFWS08KK1ZBU0nEhiBTTEFWS08KK1ZBU0nEhiBTTE9CT0RBTgorVkFTScSGIFNMT0JPREFOCitWQVNJxIYgU0xPQk9EQU4KK1ZBU0nEhiBTTkXFvUFOQQorVkFTScSGIFNPRklKQQorVkFTScSGIFNSRVRLTworVkFTScSGIFNUQU5JxaBBCitWQVNJxIYgU1RFVkFOCitWQVNJxIYgU1RFVkFOCitWQVNJxIYgU1RFVkFOCitWQVNJxIYgU1RFVkFOCitWQVNJxIYgU1ZFVExBTkEKK1ZBU0nEhiBTVkVUT1pBUgorVkFTScSGIFRJSE9NSVIKK1ZBU0nEhiBUSU5LQQorVkFTScSGIFRPxaBBCitWQVNJxIYgVE9NSVNMQVYKK1ZBU0nEhiBWRUxJTUlSCitWQVNJxIYgVkVMSU1JUgorVkFTScSGIFZFU0VMSU4KK1ZBU0nEhiBWSURBCitWQVNJxIYgVkxBRElNSVIgRFIgTEVLQVIKK1ZBU0nEhiBWTEFESU1JUgorVkFTScSGIFZPSklTTEFWCitWQVNJxIYgWkRSQVZLTworVkFTScSGIFpPUkFOCitWQVNJxIYgWk9SSUNBCitWQVNJTMSMSU4gU0xPQk9EQU4KK1ZBU0lMRVNLSSBCUkFOS08KK1ZBU0lMScWgSU4gQU5UT04KK1ZBU0lMScWgSU4gTUlMQU4KK1ZBU0lMScSGIEJSQU5JU0xBVgorVkFTSUxJxIYgREFOSUNBCitWQVNJTEnEhiBEUkFHQQorVkFTSUxJxIYgTUlMQU4KK1ZBU0lMScSGIE1JTEVOS08KK1ZBU0lMScSGIE1JUkEKK1ZBU0lMScSGIE5JS09MQQorVkFTSUxJxIYgUkFKS08KK1ZBU0lMScSGIFNURVZBTgorVkFTSUxJxIYgVE9ERQorVkFTSUxJxIYgVkVTTkEKK1ZBU0lMScSGIFZPSklOIERJUEwgSU5HCitWQVNJTErEjElOIMW9SVZLTworVkFTSUxKRVYgQU5BCitWQVNJTEpFViBERUpBTgorVkFTSUxKRVYgRFJBR09TTEFWCitWQVNJTEpFViBKRUxJQ0EKK1ZBU0lMSkVWIEpPVkFOCitWQVNJTEpFViBKT1ZBTgorVkFTSUxKRVYgTEpVQklDQQorVkFTSUxKRVYgTUFSQQorVkFTSUxKRVYgTUlMT1JBRAorVkFTSUxKRVYgTUlST0xKVUIKK1ZBU0lMSkVWIE1JVEEKK1ZBU0lMSkVWIFJBRE9WQU4KK1ZBU0lMSkVWIFNQQVNPSkUKK1ZBU0lMSkVWIFNUQU5PSkUKK1ZBU0lMSkVWIFRBTUFSQQorVkFTSUxKRVYgWkRSQVZLTworVkFTSUxKRVZJxIYgxaBBUkxPVEEKK1ZBU0lMSkVWScSGIMW9SVZPVEEKK1ZBU0lMSkVWScSGIMSQT1LEkEUKK1ZBU0lMSkVWScSGIMSQVVJBCitWQVNJTEpFVknEhi1BxIZBTlNLSSBJVkFOQQorVkFTSUxKRVZJxIYgQU7EkEVMS0EKK1ZBU0lMSkVWScSGIEFORFJFSkEKK1ZBU0lMSkVWScSGIENWRVRLTworVkFTSUxKRVZJxIYgREFOSUNBCitWQVNJTEpFVknEhiBEUkFHScWgQQorVkFTSUxKRVZJxIYgRFXFoElDQQorVkFTSUxKRVZJxIYgR0xJR09SCitWQVNJTEpFVknEhiBHT0pBTgorVkFTSUxKRVZJxIYgR09KS08KK1ZBU0lMSkVWScSGIEdST1pEQQorVkFTSUxKRVZJxIYgSkFWT1JLQQorVkFTSUxKRVZJxIYgSlVMS0EKK1ZBU0lMSkVWScSGIExFUEEKK1ZBU0lMSkVWScSGIExKVUJJTktPCitWQVNJTEpFVknEhiBNQVJLTworVkFTSUxKRVZJxIYgTUFSS08KK1ZBU0lMSkVWScSGIE1JTEVOQQorVkFTSUxKRVZJxIYgTUlMRU5LTworVkFTSUxKRVZJxIYgTUlMSVNBVgorVkFTSUxKRVZJxIYgTUlMSktPCitWQVNJTEpFVknEhiBNSUxPxaAKK1ZBU0lMSkVWScSGIE1JTE9SQUQKK1ZBU0lMSkVWScSGIE1JT0RSQUcgRElQTCBJTkcKK1ZBU0lMSkVWScSGIE1JUkEKK1ZBU0lMSkVWScSGIE1JUk9TTEFWCitWQVNJTEpFVknEhiBNT03EjElMTyBEUgorVkFTSUxKRVZJxIYgTkFEQQorVkFTSUxKRVZJxIYgTkVERUxKS08KK1ZBU0lMSkVWScSGIE5FVkVOS0EKK1ZBU0lMSkVWScSGIE5JS09MQQorVkFTSUxKRVZJxIYgTklLT0xBCitWQVNJTEpFVknEhiBPTEdBCitWQVNJTEpFVknEhiBPU1RPSkEKK1ZBU0lMSkVWScSGIFBFVEFSCitWQVNJTEpFVknEhiBQRVRBUgorVkFTSUxKRVZJxIYgUkFEQQorVkFTSUxKRVZJxIYgUkFERU5LQQorVkFTSUxKRVZJxIYgUkFET1NBVgorVkFTSUxKRVZJxIYgUkFET1NMQVYKK1ZBU0lMSkVWScSGIFJBRE8KK1ZBU0lMSkVWScSGIFJBSkEgTk9WSU5BUgorVkFTSUxKRVZJxIYgUkFKS08KK1ZBU0lMSkVWScSGIFNJTU8KK1ZBU0lMSkVWScSGIFNMQVZLTworVkFTSUxKRVZJxIYgU1RBTklNSVIKK1ZBU0lMSkVWScSGIFRJSE9NSVIKK1ZBU0lMSkVWScSGIFRPxaBBCitWQVNJTEpFVknEhiBVTUtBCitWQVNJTEpFVknEhiBWRVJJQ0EKK1ZBU0lMSkVWScSGIFZVS0lDQQorVkFTSUxKRVZJxIYgWkRSQVZLTworVkFTSUxKRVZJxIYgWkxBVEtPCitWQVNJTEpFVknEhiBaTEFUT0pFCitWQVNJTEpFVknEhiBaT1JBTgorVkFTSUxKRVZTS0kgVkFTSUxJSkUKK1ZBU0lOIMSQT1LEkEUKK1ZBU0lOIMSQT1LEkEUKK1ZBU0lOIEFOxJBFTEtBCitWQVNJTiBBUkFOS0EKK1ZBU0lOIEJPUklWT0pFCitWQVNJTiBCUkFOSVNMQVYKK1ZBU0lOIERSQUdBTkEKK1ZBU0lOIERSQUdPTUlSCitWQVNJTiBKQVNNSU5BCitWQVNJTiBKRUxFTkEKK1ZBU0lOIEpFVlJPU0lNQQorVkFTSU4gSlVMS0EKK1ZBU0lOIExBWkFSCitWQVNJTiBMSlVCSU5LQQorVkFTSU4gTUFSSUNBCitWQVNJTiBNSUxFTktPCitWQVNJTiBNSUxFTktPCitWQVNJTiBORURFTEpLTworVkFTSU4gT0xHSUNBCitWQVNJTiBQQVZMRQorVkFTSU4gUEVUQVIKK1ZBU0lOIFJBRElWT0oKK1ZBU0lOIFNURVZBTgorVkFTSU4gU1ZFVElTTEFWCitWQVNJTiBTVkVUT1pBUgorVkFTSU4gVE9ET1IKK1ZBU0lOIFpPUkEKK1ZBU0tPIFZFUkEKK1ZBU0tPVknEhiBNSUxPUkFECitWQVNLUlNJxIYgU0FWRVRBCitWQVNPVknEhiBBTEVLU0FOREFSCitWQVNPVknEhiBNSUxFTkEKK1ZBU09WScSGIE1JTE9WQU4KK1ZBU09WScSGIFBSRURSQUcKK1ZBU09WScSGIFNMQVZJTUlSS0EKK1ZBVEFKSSDEkFVMQQorVkFUScSGIE1BUkpBTgorVkFUScSGIE1BUktPCitWQVRJxIYgTUlSQcWgCitWQVRJxIYgTklLT0xBCitWQVRPVknEhiBIUkFOSVNMQVYKK1ZBVE9WScSGIEpFTEVOQQorVkFVUknEjEFLIEtBVEFMSU4KK1ZBVkFOIE1JTE9SQUQKK1ZBVkFOIE1JTE9SQUQKK1ZBVkFOIE1MQURFTktPCitWQVZBTiBQQVZMRQorVkFWQU4gU0xBVktPCitWQVZJxIYgSk9WQU4KK1ZBVlJBIFBSRURSQUcKK1ZBVlJJTiBKT1NJUAorVkFWUklOIFBFVEFSCitWRE9WSUFLIEJFUk5BUkQKK1ZFxIxFSSBKT8W9RUYKK1ZFxIxFSSBKT1NJUAorVkXEjEVJIExKSUxKQU5BCitWRcSMRUpJIEpPVkFOCitWRcSMRVJBIE1JSEFKTE8KK1ZFxIxFUkkgSlVMSVVTCitWRcSMSSBJxaBUVkFOCitWRcSMScSGIFNWRVRMQU5BCitWRcWgTElHQUogU1RFVkFOCitWRcWgTElHQUogVkVSQQorVkXFoE9WScSGIElWQU5LQQorVkXFoE9WScSGIExFT1BPTEQKK1ZFxaBPVknEhiBPTEdBCitWRcWgT1ZJxIYgU01JTEpBTkEKK1ZFxaBPVknEhiBWTEFTVElNSVIKK1ZFxaBPVknEhiBWVUtTQU4KK1ZFxaBPVknEhiBaT1JLQSBNUgorVkXEhktBTE9WIMSQT1LEkEUKK1ZFxIZLQUxPViBBTEVLU0FOREFSCitWRcSGS0FMT1YgU09GSUpBIERSIExFS0FSCitWRUJFTCBWQUxFUklKQQorVkVCRVIgQk/FvUFOQQorVkVCRVIgR0FCUklFTEEKK1ZFQkVSIEdBQlJJRUxBCitWRUJFUiBNSUxJQ0EKK1ZFQkVSIE9MR0EKK1ZFQkVSIFRFUkVaSUpBCitWRUcgxaBBTkRPUgorVkVHIEVOSUtFCitWRUfFoEUgUEFWTEUKK1ZFR0VMIExBU0xPCitWRUdWQVJJIERFxb1FCitWRUdWQVJJIEpVTElBTkEKK1ZFR1ZBUkkgTUlLTE/FoAorVkVIVEVSIEtBUk9MSgorVkVIVEVSIEtBUk9MSgorVkVIVEVSIFpPTFRBTgorVkVJTiBKRUtBCitWRUlOIFpPUktBCitWRUlOT1ZJxIYgTklLT0xBCitWRUpJTiDEkE9SxJBFCitWRUpJTiBCUkFOSVNMQVZBCitWRUpJTiBCUkFOSVNMQVYKK1ZFSklOIERVxaBBTktBCitWRUpJTiBLUklTVElOQQorVkVKTk9WScSGIERBTkUKK1ZFSk5PVknEhiBEUkFHQU4KK1ZFSk5PVknEhiBKRUxFTkEKK1ZFSk5PVknEhiBNSVJLTworVkVKTk9WScSGIE1MQURFTiBESVBMIElORworVkVKTk9WScSGIE5JS09MQQorVkVKTk9WScSGIE9CUkFECitWRUpOT1ZJxIYgUkFKS08KK1ZFSk5PVknEhiBTSU1FT04KK1ZFSk5PVknEhiBUSUhPTUlSCitWRUpOT1ZJxIYgVElIT01JUgorVkVKTk9WScSGIFZBSktPCitWRUpOT1ZJxIYgVk9KSVNMQVYKK1ZFSlpPVlNLSSBWRUpaCitWRUtBxaAgxb1Vxb1BTkEKK1ZFS0HFoCBBVElMQQorVkVLQcWgIEVWQQorVkVLQcWgIEVWQQorVkVLQcWgIEpBTk/FoAorVkVLQcWgIEpVRElUQQorVkVLQcWgIExBU0xPCitWRUtJxIYgQU5BCitWRUtJxIYgRFJBR0FOCitWRUtJxIYgRUxFTkEKK1ZFS0nEhiBKVUxJSkFOQQorVkVLScSGIE5JS09MQQorVkVLScSGIFBFVEFSCitWRUtJxIYgUkFESVZPSgorVkVLScSGIFJBRE1JTEEKK1ZFS0nEhiBURVJFWkEKK1ZFS0nEhiBURVJFWkEKK1ZFS0nEhiBaVk9OS08KK1ZFS09OSiDFoEFORE9SCitWRUtPTkogTEFESVNMQVYKK1ZFS09WScSGIE1JTE9SQUQKK1ZFTMSMRUsgScWgVFZBTgorVkVMxIxFSyBKT1NJUAorVkVMxIxFSyBWTEFESU1JUgorVkVMxJBJIEFOQQorVkVMxJBJIEpPxb1FRgorVkVMxJBJIExBRElTTEFWCitWRUzEkEkgTUFSSUpBCitWRUxBR0nEhiBTQU5KQQorVkVMQUpBIEpPVk8KK1ZFTEJBQk9WScSGIERFU0FOS0EKK1ZFTEJBQk9WScSGIE1JTE9SQUQKK1ZFTEJBQk9WScSGIFJBRElOS0EKK1ZFTEXEjEtPVknEhiBCUkFOS08KK1ZFTEXEjEtPVknEhiBFVkEKK1ZFTEVNSVIgQU5JQ0EKK1ZFTEVNSVIgRFJBR09MSlVCCitWRUxFTUlSIElMSUpBCitWRUxFTUlSIE1JTE9NSVIKK1ZFTEVNSVIgUklTVE8KK1ZFTEVNSVIgUklTVE8KK1ZFTEVNSVIgU0FWS0EKK1ZFTEVNSVIgU0xBVktPCitWRUxFTUlSIFNWRVRPTUlSCitWRUxFTUlSIFRPRE9SCitWRUxFTUlSIFZPSkEKK1ZFTEVNSVIgVk9KS08KK1ZFTEVNSVJPViBTSU1BCitWRUxFTkRFxIxJxIYgQk/FvU8KK1ZFTEVOREXEjEnEhiBNSUxBTgorVkVMRVogScWgVFZBTgorVkVMRVogScWgVFZBTgorVkVMSEVTIE1JUk9TTEFWCitWRUxITkVSIEpPU0lQIERJUEwgSU5HCitWRUxJxIxLT1Ygxb1JVkFOCitWRUxJxIxLT1YgREFOSUNBCitWRUxJxIxLT1YgR1JPWkRBCitWRUxJxIxLT1YgS0FUSUNBCitWRUxJxIxLT1YgTEpJTEpBCitWRUxJxIxLT1YgTkFUQcWgQQorVkVMScSMS09WIFJBRElWT0oKK1ZFTEnEjEtPVknEhiDFvUlWT1JBRCBESVBMIFBSQVZOSUsKK1ZFTEnEjEtPVknEhiDFvUlWT1RBCitWRUxJxIxLT1ZJxIYgxJBPUsSQRQorVkVMScSMS09WScSGIEJJTEpBTkEKK1ZFTEnEjEtPVknEhiBEVcWgQU4KK1ZFTEnEjEtPVknEhiBFTUlMSUpBCitWRUxJxIxLT1ZJxIYgSVZBTktBCitWRUxJxIxLT1ZJxIYgSk9WQU4KK1ZFTEnEjEtPVknEhiBKT1ZBTgorVkVMScSMS09WScSGIEtBVEFSSU5BCitWRUxJxIxLT1ZJxIYgS1NFTklKQQorVkVMScSMS09WScSGIE1BUklKQQorVkVMScSMS09WScSGIE1JTEFOS0EKK1ZFTEnEjEtPVknEhiBNSUxBTgorVkVMScSMS09WScSGIE1JTElDQQorVkVMScSMS09WScSGIE1JTE9SQUQKK1ZFTEnEjEtPVknEhiBORU5BRAorVkVMScSMS09WScSGIE5JS09MQQorVkVMScSMS09WScSGIFBFUlNJREEKK1ZFTEnEjEtPVknEhiBQUkVEUkFHCitWRUxJxIxLT1ZJxIYgU0xBVknFoEEKK1ZFTEnEjEtPVknEhiBTTEFWT0xKVUIKK1ZFTEnEjEtPVknEhiBTT05KQQorVkVMScSMS09WScSGIFNURVZBTgorVkVMScSMS09WScSGIFpPUkFOCitWRUxJxIxLT1ZTS0kgQUxFS1NBTkRBUgorVkVMScWgRUsgR0FCUklFTEEKK1ZFTEnFoEVLIEdFWkEKK1ZFTEnFoEVLIEtBUkxPCitWRUxJxIYgSUxJSkEKK1ZFTEnEhiBaT1JBTgorVkVMSUNLSSDEkE9SxJBFCitWRUxJQ0tJIEFMRUtTQU5EQVIKK1ZFTElDS0kgQUxFS1NBTkRBUgorVkVMSUNLSSBKRUxJQ0EKK1ZFTElDS0kgSk9WSUNBCitWRUxJQ0tJIExKVUJPTUlSCitWRUxJQ0tJIE1JTEFOCitWRUxJQ0tJIE1JTEFOCitWRUxJQ0tJIE1JTElWT0oKK1ZFTElDS0kgTUlPRFJBRworVkVMSUNLSSBOT1ZBSworVkVMSUNLSSBTVkVUT1pBUgorVkVMSUNLSSBVUk/FoAorVkVMSUNLSSBaT1JBTgorVkVMSUNLSSBaT1JBCitWRUxJSkEgTEpJTEpBTkEKK1ZFTElKQSBSRcSQRVAKK1ZFTElLScSGIEFMRUtTQU5EQVIgRElQTCBJTkcKK1ZFTElLScSGIEFOQQorVkVMSUtJxIYgREFOSUNBCitWRUxJS0nEhiBMSlVCT01JUgorVkVMSUtJxIYgU0lNQQorVkVMSUtJxIYgWk9SQU4KK1ZFTElNSVJPViBKRUxFTkEKK1ZFTElNSVJPViBNSUxPxaAKK1ZFTElNSVJPViBWTEFESU1JUgorVkVMSU1JUk9WScSGIEFOR0VMQQorVkVMSU1JUk9WScSGIEJPxaBLTworVkVMSU1JUk9WScSGIERJTUlUUklKRQorVkVMSU1JUk9WScSGIERSQcWgS08KK1ZFTElNSVJPVknEhiBKRUxJU0FWRVRBCitWRUxJTUlST1ZJxIYgSk9WQU4KK1ZFTElNSVJPVknEhiBMQVpBUgorVkVMSU1JUk9WScSGIE5PVkFLCitWRUxJTUlST1ZJxIYgU0lNRU9OCitWRUxJTUlST1ZJxIYgU0xBVklDQQorVkVMSU1JUk9WScSGIFNMQVZPTEpVQgorVkVMSU1JUk9WScSGIFNNSUxKQU5BCitWRUxJTUlST1ZJxIYgU05Fxb1BTkEKK1ZFTElNSVJPVknEhiBWT0pJTgorVkVMSU9TS0kgU0FERU0KK1ZFTElPViBExb1FTUFKTE8KK1ZFTElTQVZMSkVWIEdPUkRBTkEgRFIKK1ZFTElTQVZMSkVWIE1JTE9SQUQgRFIKK1ZFTElTQVZMSkVWIFNSRURPSkUKK1ZFTElTQVZMSkVWScSGIE1JTElTQVYKK1ZFTEpBIMW9SVZBIERJUCBPRUMKK1ZFTEpBIFBFVEFSCitWRUxKQU5PVknEhiBCUkFOSVNMQVYKK1ZFTEpBTk9WScSGIE1PTcSMSUxPCitWRUxKQU5PVknEhiBUT01JU0xBVkEKK1ZFTEpBTk9WU0tJIElWQU4KK1ZFTEpJxIYgTUlMT1ZBTgorVkVMSktPIEFOxJBFTEtPCitWRUxKS09WIERBUklOS0EKK1ZFTEpLT1YgR0VPUkdJSkUKK1ZFTEpLT1YgSURBCitWRUxKS09WIE1JUk9TTEFWIERJUEwgUFJBVk5JSworVkVMSktPViBQQVZMRQorVkVMSktPVi1QRkFKRkVSIFNPRklKQQorVkVMSktPViBTVEVWQU4KK1ZFTEpLT1YgVkxBRElNSVIKK1ZFTEpLT1ZJxIYgxb1BUktPCitWRUxKS09WScSGIEFMRUtTQU5EQVIgRElQTCBJTkcKK1ZFTEpLT1ZJxIYgQUxFS1NBTkRBUgorVkVMSktPVknEhiBBTsSQRUxLQQorVkVMSktPVknEhiBCT8W9SURBUgorVkVMSktPVknEhiBCT0pBTgorVkVMSktPVknEhiBET0JST1NBVgorVkVMSktPVknEhiBEUkFHQU4KK1ZFTEpLT1ZJxIYgTUlMT01JUgorVkVMSktPVknEhiBNSU9EUkFHCitWRUxKS09WScSGIE1JT0RSQUcKK1ZFTEpLT1ZJxIYgTUlSSkFOQQorVkVMSktPVknEhiBNSVJLTworVkVMSktPVknEhiBOQURBCitWRUxKS09WScSGIFBFVEFSCitWRUxKS09WScSGIFJBREEKK1ZFTEpLT1ZJxIYgUkFESVNBVgorVkVMSktPVknEhiBSQURPU0FWCitWRUxKS09WScSGIFJBRE9TTEFWCitWRUxKS09WScSGIFJVxb1JQ0EKK1ZFTEpLT1ZJxIYgU1JFVEVOCitWRUxKS09WScSGIFNWRVRBCitWRUxKS09WScSGIFNWRVRJU0xBVgorVkVMSktPVknEhiBUSUhPTUlSCitWRUxKS09WScSGIFZJRE9KRQorVkVMSktPVknEhiBWT0pJU0xBVgorVkVMSktPVknEhiBWVUtBxaBJTgorVkVMSk9WScSGIERVxaBBTgorVkVMSk9WScSGIExFUE9TQVZBCitWRUxKT1ZJxIYgTUlMQU4KK1ZFTEpPVknEhiBNSVRBUgorVkVMSk9WScSGIE1PTcSMSUxPCitWRUxKT1ZJxIYgUEFWTEUKK1ZFTEpPVknEhiBSVcW9QQorVkVMSk9WScSGIFNJTU8KK1ZFTEpPVknEhiBTTEFWSUNBCitWRUxLT1ZTS0kgSVJFTkEKK1ZFTEtPVlNLSSBURU9GSUwKK1ZFTUVOQUMgT0JSQUQKK1ZFTUnEhiBCT1JBCitWRU1JxIYgRFJBR0lOSkEKK1ZFTUnEhiBJTElKQQorVkVNScSGIExBWkFSCitWRU1JxIYgTUlMQU4KK1ZFTUnEhiBSQURJVk9KRSBEUgorVkVNScSGIFJBRElWT0pFCitWRU7EjEVMT1ZTS0kgTEpVQklDQQorVkVOxIxFTE9WU0tJIFZMQURBCitWRU7EjEVMT1ZTS0kgVkxBRElNSVIKK1ZFTsSMRUxPVlNLSSBWTEFTVEEKK1ZFTkNFTCBHRVpBCitWRU5DRUwgR0VaQQorVkVOQ0wgSk9TSVAKK1ZFTkNMIFpWT05JTUlSCitWRU5ETEVORVIgQU5EUklKQU5BCitWRU5ETEVORVIgSkVMRU5BCitWRU5ETEVORVIgWk9SQU4KK1ZFTkUgR09SREFOQQorVkVOR1JJTiBBR05FxaAKK1ZFTkdSSU5HIEZFUkVOQworVkVOR1JJTkcgU1RFVkFOCitWRVJBQyBNSU9EUkFHCitWRVJCQSBKT8W9RUYKK1ZFUkJBTkVDIEnFoFRWQU4KK1ZFUkJBTkVDIEnFoFRWQU4KK1ZFUkJBU0kgRlJBTkpBCitWRVJCQVNJIEpPVkFOS0EKK1ZFUkXFoCDEkFVMQQorVkVSRcWgIEFORFJJSkEKK1ZFUkXFoCBEUkFHVVRJTgorVkVSRcWgIEhBSk5BTEtBCitWRVJFxaAgSVZBTgorVkVSRcWgIEpFTElTQVZFVEEKK1ZFUkXFoCBKT8W9RUYKK1ZFUkXFoCBKT1NJUAorVkVSRcWgIEpPU0lQCitWRVJFxaAgTEFESVNMQVYKK1ZFUkXFoCBNQVJJSkEKK1ZFUkXFoEJBUkFOSkkgScWgVFZBTgorVkVSRcWgQkFSQU5KSSBNQVJJSkEKK1ZFUkXFoEVWScSGIFRJSE9NSVIKK1ZFUkXFvUFOIMSQVVJJQ0EKK1ZFUkXFvUFOIFpPUktBCitWRVJFQiDFvVXFvUFOQQorVkVSRUJFxaAgQk9SSVNMQVZBCitWRVJFQkXFoCBFUlZJTgorVkVSRUNLRUkgRFXFoElDQQorVkVSRUNLRUkgR0VaQQorVkVSRUNLRUkgTUFSR0lUQQorVkVSR0HFoCBCUkFOS08KK1ZFUknEhiBSQVRLTworVkVSS0nEhiBUT0RPUgorVkVSS0nEhiBWSVRPTUlSCitWRVJLScSGIFZPSklTTEFWCitWRVJMScSGIE1JTEFOCitWRVJNRcWgIExJTEkKK1ZFUk1FWk9WScSGIMSQT1LEkEUKK1ZFUk5BxIxLSSBBTklUQQorVkVSTkHEjEtJIEJSQU5JU0xBVgorVkVSTkHEjEtJIEdBVlJBCitWRVJOQcSMS0kgR0FWUklMTworVkVSTkHEjEtJIE1JUk9TTEFWCitWRVJORVIgQU5BCitWRVJORVIgTUlIQUpMTworVkVSTkVSIFNURVZBTgorVkVSTk9UIEFOQQorVkVSTk9UIERVTkpBCitWRVJOT1QgSk9TSVAKK1ZFUk5PVCBWSkVLT1NMQVZBCitWRVJOT1QgWkRFTktPCitWRVJOT1QgWkRFTktPCitWRVJaT1RJIERSQUdJQ0EKK1ZFUlpPVEkgSlVMSUpBTkEKK1ZFUlpPVEkgUEVUQVIKK1ZFUlpPVEkgU1RBTktBCitWRVNFTEnEhiBCT1JJVk9KCitWRVNFTEnEhiBEUkFHT0xKVUIKK1ZFU0VMScSGIEdPU1BBVkEKK1ZFU0VMScSGIFJBRE9KS0EKK1ZFU0VMScSGIFNMQVZLTworVkVTRUxJQ0EgTUFORQorVkVTRUxJQ0EgTUlMQU4KK1ZFU0VMSUNBIFNWRVRPWkFSCitWRVNFTElOIFBFVEFSCitWRVNFTElOT1YgxJBPUsSQRQorVkVTRUxJTk9WIEJPUklTTEFWQQorVkVTRUxJTk9WIEJSQU5JU0xBVgorVkVTRUxJTk9WIExJQlXFoEEKK1ZFU0VMSU5PViBNSUxJQ0EKK1ZFU0VMSU5PViBSSVNUQQorVkVTRUxJTk9WIFNURVZBTiBEUgorVkVTRUxJTk9WIFNURVZBTgorVkVTRUxJTk9WIFNWRVRPWkFSCitWRVNFTElOT1YgVkVSQQorVkVTRUxJTk9WScSGIMSQT1LEkEUKK1ZFU0VMSU5PVknEhiDEkE9SxJBFCitWRVNFTElOT1ZJxIYgxJBPUsSQRQorVkVTRUxJTk9WScSGIMSQVUpBCitWRVNFTElOT1ZJxIYgxJBVUkEKK1ZFU0VMSU5PVknEhiDEkFVSTworVkVTRUxJTk9WScSGIEFMRUtTQU5EQVIKK1ZFU0VMSU5PVknEhiBBTEVLU0FOREFSCitWRVNFTElOT1ZJxIYgQUxFS1NBTkRBUgorVkVTRUxJTk9WScSGIEFMRUtTQU5EQVIKK1ZFU0VMSU5PVknEhiBCT1JBCitWRVNFTElOT1ZJxIYgQlJBTkUKK1ZFU0VMSU5PVknEhiBCUkFOSVNMQVYKK1ZFU0VMSU5PVknEhiBCUkFOSVNMQVYKK1ZFU0VMSU5PVknEhiBEQVJBCitWRVNFTElOT1ZJxIYgREFSS08KK1ZFU0VMSU5PVknEhiBEUkFHQU4KK1ZFU0VMSU5PVknEhiBEUkFHT01JUgorVkVTRUxJTk9WScSGIERSQUdPUkFECitWRVNFTElOT1ZJxIYgRFXFoEFOS0EKK1ZFU0VMSU5PVknEhiBHT1JEQU5BCitWRVNFTElOT1ZJxIYgSUxJSkEKK1ZFU0VMSU5PVknEhiBKRUxJU0FWS0EKK1ZFU0VMSU5PVknEhiBKT1JEQU4KK1ZFU0VMSU5PVknEhiBKT1NJUEEKK1ZFU0VMSU5PVknEhiBKT1ZBTktBCitWRVNFTElOT1ZJxIYgSlVMSUpBTkEKK1ZFU0VMSU5PVknEhiBLQVRJQ0EKK1ZFU0VMSU5PVknEhiBMQU5BCitWRVNFTElOT1ZJxIYgTEVOS0lDQQorVkVTRUxJTk9WScSGIExKVUJPTUlSCitWRVNFTElOT1ZJxIYgTUFSSUpBCitWRVNFTElOT1ZJxIYgTUlLQQorVkVTRUxJTk9WScSGIE1JTEFOS0EKK1ZFU0VMSU5PVknEhiBNSUxBTgorVkVTRUxJTk9WScSGIE1JTEFOCitWRVNFTElOT1ZJxIYgTUlMQU4KK1ZFU0VMSU5PVknEhiBNSUxBTgorVkVTRUxJTk9WScSGIE1JTEFOCitWRVNFTElOT1ZJxIYgTUlMRU5BCitWRVNFTElOT1ZJxIYgTUlMRQorVkVTRUxJTk9WScSGIE1JTElTQVYKK1ZFU0VMSU5PVknEhiBNSUxPUkFECitWRVNFTElOT1ZJxIYgTUlSS08KK1ZFU0VMSU5PVknEhiBNSVRBCitWRVNFTElOT1ZJxIYgTUxBREVOCitWRVNFTElOT1ZJxIYgTklLT0xBCitWRVNFTElOT1ZJxIYgTklLT0xBCitWRVNFTElOT1ZJxIYgT0xHQQorVkVTRUxJTk9WScSGIFBBVkxFCitWRVNFTElOT1ZJxIYgUEVSU0lEQQorVkVTRUxJTk9WScSGIFBFVEFSCitWRVNFTElOT1ZJxIYtUE9QT1ZJxIYgQlJBTktBCitWRVNFTElOT1ZJxIYgUFJFRFJBRworVkVTRUxJTk9WScSGIFJBRE1JTAorVkVTRUxJTk9WScSGIFJBTktPCitWRVNFTElOT1ZJxIYgUkFOS08KK1ZFU0VMSU5PVknEhiBSVcW9SUNBCitWRVNFTElOT1ZJxIYgUlXFvUlDQQorVkVTRUxJTk9WScSGIFJVxb1JQ0EKK1ZFU0VMSU5PVknEhiBTQVZBCitWRVNFTElOT1ZJxIYgU0VWRVIKK1ZFU0VMSU5PVknEhiBTTE9CT0RBTgorVkVTRUxJTk9WScSGIFNQQVNPSkUKK1ZFU0VMSU5PVknEhiBTVEVWQU4KK1ZFU0VMSU5PVknEhiBTVEVWQU4KK1ZFU0VMSU5PVknEhiBTVkVUSVNMQVYKK1ZFU0VMSU5PVknEhiBUT0RPUgorVkVTRUxJTk9WScSGIFRPRE9SCitWRVNFTElOT1ZJxIYgVVJPxaAKK1ZFU0VMSU5PVknEhiBWQVNJTEpLQQorVkVTRUxJTk9WScSGIFZFTElNSVIKK1ZFU0VMSU5PVknEhiBWRUxJWkFSCitWRVNFTElOT1ZJxIYgVkVMSktPCitWRVNFTElOT1ZJxIYgVkVSQQorVkVTRUxJTk9WScSGIFZFUkEKK1ZFU0VMSU5PVknEhiBWRVNFTElOCitWRVNFTElOT1ZJxIYgVkVTRUxJTgorVkVTRUxJTk9WScSGIFZJTktBCitWRVNFTElOT1ZJxIYgVkxBRElTTEFWCitWRVNFTElOT1ZJxIYgVkxBU1RJTUlSCitWRVNFTElOT1ZJxIYgVk9KSVNMQVYgRFIgTEVLQVIKK1ZFU0VMSU5PVknEhiBWT0pJU0xBVgorVkVTRUxJTk9WScSGIFZVS0lDQQorVkVTRUxJTk9WScSGIFpPUkFOCitWRVNFTElOT1ZJxIYgWk9SQU4KK1ZFU0VMSU5PVknEhiBaVkVaREFOCitWRVNJxIYgRE9CUk9TQVYKK1ZFU0nEhiBEUkFHT1NMQVYKK1ZFU0nEhiBLQVRJQ0EKK1ZFU0nEhiBLUlNUQQorVkVTScSGIE1JTEFOCitWRVNJxIYgTUlMQU4KK1ZFU0nEhiBNSUxJQ0EKK1ZFU0nEhiBNSU9EUkFHCitWRVNJxIYgTUlUQVIKK1ZFU0nEhiBNTEFERU4KK1ZFU0nEhiBSVcW9SUNBCitWRVNJxIYtVkFSR0EgRFJBR0lDQQorVkVTScSGIFZFU0VMSU5LQQorVkVTSU4gQlJBTktPCitWRVNJTiBNSUxBTgorVkVTSU4gTkFEQQorVkVTSU4gUEVUQVIKK1ZFU0tPViBBTEVLU0FOREFSCitWRVNLT1YgQUxFS1NBTkRBUgorVkVTS09WIElWQU4KK1ZFU0tPViBKRUxFTkEKK1ZFU0tPViBNSUxPxaAKK1ZFU0tPVknEhiBBTktJQ0EKK1ZFU0tPVknEhiBEUkHFoEtPCitWRVNLT1ZJxIYgS0FUQVJJTkEKK1ZFU0tPVknEhiBNQVJJQ0EKK1ZFU0tPVknEhiBNSVJPU0xBVgorVkVTS09WScSGIE1PTcSMSUxPIERJUEwgSU5HCitWRVNLT1ZJxIYgUEVUQVIKK1ZFU0tPVknEhiBTTEFWS08KK1ZFU0tPVknEhiBTVEFOT0pFCitWRVNLT1ZJxIYgWk9SQQorVkVTTEFWU0tJIFRJTktBCitWRVNOScSGIE1JTEVOQQorVkVTTknEhi1WQVNJTEpFVknEhiBBTsSQRUxJSkEKK1ZFU09WScSGIEFDTworVkVTT1ZJxIYgQU5EUklKQQorVkVUUkFCIEZSQU5KQQorVkVUUkFCIEtBVEFMSU4KK1ZFVFJBQiBNSUhBTEoKK1ZFVFJPIFBFVEFSCitWRVZFUknEjEVLIE1BUklKQQorVkVaRVRJIE1JSEFFTAorVkVaRVRJIFBFVEFSCitWRVpJTEnEhiDEkE9SxJBFCitWRVpJTEnEhiBDUk5PR09SS0EKK1ZFWklMScSGIERVxaBBTktBCitWRVpJTEnEhiBEVcWgSUNBCitWRVpJTEnEhiBKRUxJQ0EKK1ZFWklMScSGIFJBRE9TTEFWCitWRVpNQVIgQlJBTktPCitWRVpNQVIgSUxJSkEKK1ZFWk1BUiBNQVJHQVJJVEEKK1ZFWk1BUiBNSUxBTgorVkVaTUFSIE1JTE/FoAorVkVaTUFSIE1JTE9SQUQKK1ZFWk1BUiBNT03EjElMTworVkVaTUFSIE5JS09MQQorVkVaTUFSIFBFVEFSCitWRVpVTEnEhiDEkE9SxJBFCitWScSMRUsgxaBBTkRPUgorVknEjEVLIEtBUk9MSgorVknEjEVWScSGIFpWT05JTUlSCitWScSMSUsgSUdOSkFUCitWScWgRUtSVU5BIEJPUklWT0oKK1ZJxaBFS1JVTkEgREFOS08KK1ZJxaBFS1JVTkEgRFXFoEFOCitWScWgRUtSVU5BIERVxaBLTworVknFoEVLUlVOQSBKT1ZBTgorVknFoEVLUlVOQSBNSUxBTgorVknFoEVLUlVOQSBTTEFWS08KK1ZJxaBFS1JVTkEgVk9KSU4KK1ZJxaBJxIYgTUlMRQorVknFoEtPVknEhiBNSUxJQ0EKK1ZJxaBLT1ZJxIYgTUlMT8WgCitWScWgS09WScSGIFBMQU5JTktBCitWScWgS09WScSGIFBSRURSQUcKK1ZJxaBLT1ZJxIYgVkxBRElNSVIgRFIKK1ZJxaBOScSGIERBTklDQQorVknFoE5JxIYgRFXFoEFOCitWScWgTknEhiBaT1JLQQorVknFoE5KRVbEjEFOSU4gSk9WQU4KK1ZJxaBOSkVWxIxBTklOIExFUEEKK1ZJxaBOSkVWQUMgQk9STworVknFoE5KRVZBQyBPTElWRVJBCitWScWgTkpFVlNLSSBLQVRJQ0EKK1ZJxaBOSknEjEFOIERVxaBBTgorVknFoE5KScSMQU4gR0FWUklMTworVknFoE5KScSMQU4gSk9WQU5LQQorVknFoE5KScSMQU4gTUlMSUNBCitWScWgTkpJxIxBTklOIEpPVkFOS0EKK1ZJxaBOSknEjEFSIMW9QVJLTworVknFoE5KScSMQVIgxJBPUsSQRQorVknFoE5KScSMQVIgxJBPUsSQRQorVknFoE5KScSMQVIgRFJBR09TTEFWCitWScWgTkpJxIxBUiBNQVJJSkEKK1ZJxaBOSknEjEFSIE1JS0EKK1ZJxaBOSknEjEFSIE5FREVMSktPCitWScWgTkpJxIxLSSBHT1JEQU5BCitWScWgTkpJxIxLSSBNSUxPxaAKK1ZJxaBOSknEjEtJIE1JUk9TTEFWCitWScWgTkpJxIxLSSBTUkVURU4KK1ZJxaBOSknEhiDEjEVET01JTEEKK1ZJxaBOSknEhiBCUkFOS08KK1ZJxaBOSknEhiBCUkFOU0lMQVZBCitWScWgTkpJxIYgREFMSUJPUgorVknFoE5KScSGIERVxaBBTgorVknFoE5KScSGIElMSUpBCitWScWgTkpJxIYgSk9TSVAKK1ZJxaBOSknEhiBNQVJJSkEKK1ZJxaBOSknEhiBNSUxBTgorVknFoE5KScSGIE1JTElDQQorVknFoE5KScSGIE9MSVZFUkEKK1ZJxaBOSknEhiBPTElWRVIKK1ZJxaBOSknEhiBTUEFTT0pFCitWScWgTkpJxIYgVElIT01JUgorVknFoE5KScSGIFZBU0lMSUpFCitWScWgTkpJxIYgVkVSQQorVknFoE5KScSGIFZFU05BCitWScWgTkpPVlNLSSDEkFVSQQorVknFoE5KT1ZTS0kgQVJBTktBCitWScWgTkpPVlNLSSBNQVJJSkEKK1ZJxaBOSk9WU0tJIE1BUkpBTgorVknFoE/FoEVWScSGIFJVxb1FTkEKK1ZJxaBPTlRBSSBKT8W9RUYKK1ZJxaBPTlRBSSBKT8W9RUYKK1ZJxIZFVknEhiBSQURJxaBBCitWScW9QUkgxaBBTkRPUgorVklBVE9SSVMgSkFOT8WgCitWSUFUT1JJUyBKVUxJxaBLQQorVklBVE9SSVMgTEpVQklDQQorVklCT0sgSk/FvUVGCitWSUNFSSBKT8W9RUYKK1ZJQ0VJIE5JS09MQQorVklDSUFOIEtMQVJBCitWSUNLTyBBUlBBRAorVklDS08gRlJBTkpBCitWSUNLTyBKT1NJUAorVklDS0/FoCBKT8W9RUYKK1ZJQ0tPVknEhiBCUkFOS08KK1ZJQ0tPVknEhiBCUkFOS08KK1ZJQ0tPVknEhiBEUkFHSUNBCitWSUNLT1ZJxIYgVE9NSVNMQVYKK1ZJQ0tPVknEhiBWRVNOQQorVklDTyBCT0dEQU4KK1ZJQ08gUkFESVZPSkUKK1ZJQ08gUkFET01JUgorVklEIEJSQU5JU0xBVkEKK1ZJREEgSkVMSVNBVkVUQQorVklEQSBKT8W9RUYKK1ZJREEgSlVMSUpBCitWSURBIFNMT0JPREFOS0EKK1ZJREEgVklMSQorVklEQcSMIEpBTkpBIExPS0FMCitWSURBxIwgTEFTTE8KK1ZJREHEjCBTTEFWSUNBCitWSURBSknEhiDFvUlWS08KK1ZJREFKScSGIEpBU01JTkEKK1ZJREFKScSGIEpPU0lQCitWSURBSknEhiBMVcSMSUpBTk8KK1ZJREFKScSGIE1BUklKQQorVklEQUpJxIYgVkVMSkEKK1ZJREFKScSGIFZMQURBCitWSURBS09WIEFOS0lDQQorVklEQUtPViBKT1ZBTgorVklEQUtPViBaT1JJQ0EKK1ZJREFLT1ZJxIYgQUxFS1NBTkRBUgorVklEQUtPVknEhiBBTEVLU0FORFJBIERSCitWSURBS09WScSGIEFOR0VMSU5BCitWSURBS09WScSGIEJSQU5JTUlSCitWSURBS09WScSGIEJSQU5LTworVklEQUtPVknEhiBEVcWgQU5LQQorVklEQUtPVknEhiBEVcWgQU4KK1ZJREFLT1ZJxIYgRU1JTAorVklEQUtPVknEhiBJVkFOCitWSURBS09WScSGIElWQU4KK1ZJREFLT1ZJxIYgSVZBTgorVklEQUtPVknEhiBKQUdPREEKK1ZJREFLT1ZJxIYgSk9TSVAKK1ZJREFLT1ZJxIYgSk9TSVAKK1ZJREFLT1ZJxIYgS09TQQorVklEQUtPVknEhiBNSUhBSkxPCitWSURBS09WScSGIE1JTEFOCitWSURBS09WScSGIE1JTEFOCitWSURBS09WScSGIE1JTEpBCitWSURBS09WScSGIE1JUsSMRVRBCitWSURBS09WScSGIE1JUkpBTkEKK1ZJREFLT1ZJxIYgTUlSS08KK1ZJREFLT1ZJxIYgTkVERUxKS08KK1ZJREFLT1ZJxIYgT0xHQQorVklEQUtPVknEhiBPTEdBCitWSURBS09WScSGIFJBREVOS08KK1ZJREFLT1ZJxIYgUkFETUlMQQorVklEQUtPVknEhiBTQVZBCitWSURBS09WScSGIFNMQVZLQQorVklEQUtPVknEhiBTT0ZJSkEKK1ZJREFLT1ZJxIYgU1JFxIZLTworVklEQUtPVknEhiBTUkXEhktPCitWSURBS09WScSGIFNURVZBTgorVklEQUtPVknEhiBTVE9KQU4KK1ZJREFLT1ZJxIYgU1ZFVE9aQVIKK1ZJREFLT1ZJxIYgVEVSRVpBCitWSURBS09WScSGIFZPSklTTEFWCitWSURBS09WScSGIFZPSklTTEFWCitWSURBS09WScSGIFZVS0HFoElOCitWSURBTk9WScSGIE1JSEFKTE8KK1ZJREFOT1ZJxIYtU0tPS08gSkVMRU5BCitWSURBUknEhiBKT1ZPCitWSURBUknEhiBNSUxPUkFECitWSURBUknEhiBSQVRLTworVklEQVJJxIYgU1RFVkFOCitWSURBUyBURVJFWkEKK1ZJREVDIEpPU0lQCitWSURFQyBKT1NJUAorVklERU5PVknEhiBCUkFOS08KK1ZJREVOT1ZJxIYgS09TT1ZLQQorVklERU5PVknEhiBMSklMSkFOQSBEUgorVklERU5PVknEhiBNT01JUgorVklERVIgTUlSS08gRElQTCBJTkcKK1ZJREnEhiDFvUVMSktPCitWSURJxIYgxJBPUsSQRQorVklEScSGIEJSQU5JU0xBVgorVklEScSGIEJSQU5LQQorVklEScSGIEJSQU5LQQorVklEScSGIEJSQU5LTworVklEScSGIERSQUdBTkEKK1ZJREnEhiBEVcWgQU5LQQorVklEScSGIEVNSUxJSkEKK1ZJREnEhiBKRUxJQ0EKK1ZJREnEhiBKT0NBCitWSURJxIYgTEpJTEpBTkEKK1ZJREnEhiBMSlVCT01JUgorVklEScSGIE1BUklKQQorVklEScSGIE1JTEFOCitWSURJxIYgTUlMQU4KK1ZJREnEhiBNSUxPxaAKK1ZJREnEhiBNSVJPU0xBVkEKK1ZJREnEhiBNSVJPU0xBVgorVklEScSGIE5BREEKK1ZJREnEhiBQRVJPCitWSURJxIYgUkFETUlMQQorVklEScSGIFJBRE1JTEEKK1ZJREnEhiBSQUpLTworVklEScSGIFNPRklKQQorVklEScSGIFNUQU5JU0xBVkEKK1ZJREnEhiBTVEVWQU4KK1ZJREnEhiBTVkVUSVNMQVYKK1ZJREnEhiBWRUxKS08KK1ZJREnEhiBWRVJBCitWSURJxIYgWkRSQVZLTworVklESUNLSSBCUkFOS08KK1ZJRElDS0kgSVZBTgorVklESUNLSSBLT1NUQQorVklESUNLSSBMSlVCT01JUgorVklESUNLSSBNSVJPU0xBVgorVklESU5FUiBCT8W9SURBUgorVklETUFOScSGIEdBQlJJSkVMQQorVklET0pFVknEhiDFvUlWS0EKK1ZJRE9KRVZJxIYgQkxBxb1PCitWSURPSkVWScSGIEJPxb1BCitWSURPSkVWScSGIEpPU0lGCitWSURPSktPVknEhiBSQURPTUlSCitWSURPU0FWTEpFVknEhiBET0JST1NBVgorVklET1NBVkxKRVZJxIYgRFXFoEFOCitWSURPU0FWTEpFVknEhiBKRUxJQ0EKK1ZJRE9TQVZMSkVWScSGIFpWT05JTUlSCitWSURPVknEhiDFvUlWS08KK1ZJRE9WScSGIEFNSVJBCitWSURPVknEhiBBTklDQQorVklET1ZJxIYgQkVBVFJJUworVklET1ZJxIYgQklMSkFOQQorVklET1ZJxIYgQklTRVJLQQorVklET1ZJxIYgQk/FvUlEQVIKK1ZJRE9WScSGIEJPUklTTEFWCitWSURPVknEhiBCT1JJU0xBVgorVklET1ZJxIYgQlJBTklTTEFWCitWSURPVknEhiBEUkFHTworVklET1ZJxIYgTUFSSkFOCitWSURPVknEhiBNSUxBTgorVklET1ZJxIYgTUlMQU4KK1ZJRE9WScSGIE1JTEFOCitWSURPVknEhiBNSUxFCitWSURPVknEhiBNSUxJQ0EKK1ZJRE9WScSGIE1JTE/FoAorVklET1ZJxIYgTUlSS08KK1ZJRE9WScSGIE5BREEKK1ZJRE9WScSGIFBFVEFSCitWSURPVknEhiBSQURPTUlSCitWSURPVknEhiBSQUpLTworVklET1ZJxIYgUlXFvUlDQQorVklET1ZJxIYgU0FWQQorVklET1ZJxIYgU0xPQk9EQU4KK1ZJRE9WScSGIFZJRAorVklHSSBKT1NJUAorVklHTkpFVknEhiDEkE9SxJBFCitWSUdOSkVWScSGIEFOQQorVklHTkpFVknEhiBCUkFOS0EKK1ZJR05KRVZJxIYgQlJBTktPCitWSUdOSkVWScSGIERBS08KK1ZJR05KRVZJxIYgRFJBR0FOCitWSUdOSkVWScSGIERSQUdBTgorVklHTkpFVknEhiBEVcWgQU5LQQorVklHTkpFVknEhiBNSUxFTktPCitWSUdOSkVWScSGIE5FVkVOS0EKK1ZJR05KRVZJxIYgUkFERQorVklHTkpFVknEhiBTVEVWQU5JSkEKK1ZJR05KRVZJxIYgVkVTTkEKK1ZJR05KRVZJxIYgVkxBRElNSVIKK1ZJR05KRVZJxIYgWk9SQU4KK1ZJSkFUT1YgU01JTEpBCitWSUpFxaBUSUNBIE5KRUdPTUlSCitWSUpVSyBMSlVCQU4KK1ZJSlVLIFNBVkEKK1ZJS09SIFBFVEFSCitWSUtPUiBSVcW9QQorVklMxIxFSyBKQU5KQQorVklMxIxFSyBOSUtPTEEKK1ZJTEEgTUlMT1ZBTgorVklMQUdPxaAgxJBFUsSQSQorVklMRVRJIFpPUkEKK1ZJTEnFoCDEkFVSQQorVklMScWgIEZSQU5KQQorVklMScSGIE1BUktPCitWSUxJxIYgUkFET01JUgorVklMScSGIFJBRE9TTEFWQQorVklMScSGIFJPWkFMSUpBCitWSUxJxIYgVk9KSVNMQVYKK1ZJTElHT1JTS0kgUEFVTEEKK1ZJTE9UScSGIMW9SVZLTworVklMT1RJxIYgTUlMSVNBVgorVklMT1RJSkVWScSGIERSQUdVVElOCitWSUxPVElKRVZJxIYgS0nEhlVOCitWSUxPVElKRVZJxIYgTUlST0pFCitWSUxPVkHEjEtJIEtBVElDQQorVklMT1ZBxIxLSSBTTEFWS08KK1ZJTE9WQUMgSk9WQU4KK1ZJTE9WQUMgSk9WQU4KK1ZJTE9WQUMgTUlMQU4KK1ZJTE9WU0tJIMSQT1LEkEUKK1ZJTE9WU0tJIEJSQU5JU0xBVgorVklMT1ZTS0kgQlJBTktPCitWSUxPVlNLSSBTQVZBCitWSUxPVlNLSSBTTEFWT01JUgorVklMT1ZTS0kgU01JTEpBTkEKK1ZJTE9WU0tJIFZFTEpLTworVklMT1ZTS0kgWk9SQQorVklMVVMgREFOSUNBCitWSU1FUiBWRVJBCitWSU4gSVZBTgorVklOIEpPU0lQCitWSU4gTEFKT8WgCitWSU4gUEFWTEUKK1ZJTiBTVkVUTEFOQQorVklOxaAgRFJBR1VUSU4KK1ZJTkFKIMSQT1LEkEUKK1ZJTkFKIMSQT1LEkEUKK1ZJTkFKIEpBTktPCitWSU5BSiBMSlVCSUNBCitWSU5BSiBNRUxBTklKQQorVklOQUpJIMSQVVJBCitWSU5BSkkgTUlUQVIKK1ZJTkFKSSBWRVJJQ0EKK1ZJTkFSxb0gVkxBRElNSVIKK1ZJTkNFIEFORFJJSkEKK1ZJTkNFIEVSxb1FQkVUCitWSU5DRSBJxaBUVkFOCitWSU5DRSBLQVJMTworVklOQ0UgTEFDSUtBCitWSU5DRSBNQVJFTEEKK1ZJTkNFIE1BUkdJVEEKK1ZJTkNFIFBBVkxFCitWSU5DRVRJTiBBTkEKK1ZJTkTFvUFOT1ZJxIYgUEVUQVIKK1ZJTkTFvUFOT1ZJxIYgUkFESVZPSkUKK1ZJTkRJxaAgRFJBR1VUSU4KK1ZJTkRJxaAgU1RFVkFOCitWSU5FUiBCUkFOSVNMQVYKK1ZJTkVSIElWQU4KK1ZJTkVSIEpFUk9OSU0KK1ZJTkVSIE1BUklKQQorVklORVIgWlZPTklNSVIKK1ZJTktBIEVNQU5VRUxBCitWSU5LScSGIElMSUpBCitWSU5LTEVSIEpPxb1FRgorVklOS0xFUk9WScSGIFZFUklDQQorVklOS09WScSGIEFOQQorVklOS09WScSGIERSQUdBTgorVklOS09WScSGIExKVURFVklUCitWSU5PS0nEhiBCT0dEQU4KK1ZJTk9LScSGIFZBU0lMSktBCitWSVJBRyBBTEJFUlQKK1ZJUkFHIEFORFJJSkEKK1ZJUkFHIEVSSUtBCitWSVJBRyBKVUxJSkFOQQorVklSQUcgTEpVREVWSVQKK1ZJUkFHIE1BUlRPTgorVklSQUcgTUlIQUpMTworVklSQUcgUk9CRVJUCitWSVJBRyBST0JFUlQKK1ZJUkMgRkVSRU5DCitWSVJDIEpPxb1FRgorVklSQyBKT1ZBTgorVklSQyBNQVJUSU4KK1ZJUkMgTkFEQQorVklSQyBSVcW9SUNBCitWSVJDIFNURVZBTgorVklSScSGIElWQU4KK1ZJUknEhiBJVkFOCitWSVJJSkVWScSGIMSQT1LEkEUKK1ZJUklKRVZJxIYgQk/FvUlEQVIKK1ZJUklKRVZJxIYgQlVESU1JUgorVklSSUpFVknEhiBKT1ZBTktBCitWSVJJSkVWScSGIExKVUJJTktPCitWSVJJSkVWScSGIFBFVEFSCitWSVJJSkVWScSGIFZPSklOCitWSVNMQVZTS0kgxJBVUkEKK1ZJU0xBVlNLSSBCT0dEQU4KK1ZJU0xBVlNLSSBKQUtJTQorVklTTEFWU0tJIEpBS0lNCitWSVNMQVZTS0kgSkFOT8WgCitWSVNMQVZTS0kgSkFOT8WgCitWSVNMQVZTS0kgTEVPTgorVklTTEFWU0tJIExKVUJPTUlSCitWSVNMQVZTS0kgTUFSSUpBCitWSVNMQVZTS0kgTUlIQUpMTworVklTTEFWU0tJIE1JUk9OCitWSVNMQVZTS0kgTUlST1NMQVYKK1ZJU0xBVlNLSSBNSVJPU0xBVgorVklTTEFWU0tJIE5BVEHFoEEKK1ZJU0xBVlNLSSBaTEFUS08KK1ZJU1QgSEVMR0FBTkEKK1ZJVEFTIFNURVZBTgorVklUQVMgU1RFVkFOCitWSVRBU09WScSGIERVxaBBTktBCitWSVRBU09WScSGIERVxaBBTktBCitWSVRBU09WScSGIERVxaBBTgorVklUQVNPVknEhiBORUJPSsWgQQorVklUQVogUEVUQVIKK1ZJVEVaIEpBTgorVklURVogVFVHT01JUgorVklURVogWlZPTktPCitWSVRJxIYgxJBPUsSQRQorVklUScSGIMSQT1LEkEUKK1ZJVEnEhiBCT8WgS08gRFIgTEVLQVIKK1ZJVEpVSyBNSVJKQU5BIERJUEwgSU5HCitWSVRKVUsgUEVUQVIgRElQTCBJTkcKK1ZJVEtBSSBJTE9OQQorVklUS09WScSGIEJSQU5LTworVklUS09WScSGIERSQUdPCitWSVRLT1ZJxIYgSk9WQU4KK1ZJVE9NSVJPViDFvUlWQU4KK1ZJVE9NSVJPVknEhiBCT1JJUworVklUT01JUk9WScSGIERSQUdPTUlSCitWSVRPUkFDIMSQVVJBCitWSVRPUkFDIMSQVVJPCitWSVRPUkFDIEJPUklTTEFWCitWSVRPUkFDIElMSUpBCitWSVRPUkFDIE5BREEKK1ZJVE9SQUMgUlXFvUVOS0EKK1ZJVE9ST1ZJxIYgTUlMQU4KK1ZJVE9ST1ZJxIYgTUlMT8WgCitWSVRPUk9WScSGIE9MR0EKK1ZJVE9ST1ZJxIYgUkFOS0EKK1ZJVE9ST1ZJxIYgU09GSUpBCitWSVRVxaBLQSBTVEVWQU4KK1ZJVk9EIEpFTElTQVZFVEEKK1ZJVk9EIE1BR0RBTEVOQQorVklaSSDFoEFORE9SCitWSVpJIEpPU0lQCitWSVpJIEpPVkFOCitWSVpJIEtBVElDQQorVklaSSBNQVJJSkEKK1ZJWkkgTUFSSUpBCitWSVpJIFJBRE9KS0EKK1ZJWkkgU09OSkEKK1ZJWkkgU1RFVkFOCitWSkXFoFRJQ0EgxJBVUk8KK1ZKRcWgVElDQSBEVcWgQU5LQQorVkpFxaBUSUNBIEpPVk8KK1ZKRcWgVElDQSBNSUxBTgorVkpFxaBUSUNBIE1JUktPCitWSkXFoFRJQ0EgTUlST1NMQVYKK1ZKRcWgVElDQSBOQURBCitWSkXFoFRJQ0EgTkVCT0rFoEEKK1ZKRcWgVElDQSBTTEFWS08KK1ZKRVJHIEJSQU5JU0xBVgorVkpFVFJPViBMSlVCSUNBCitWTEEgRFXFoEFOCitWTEEgRFXFoEFOCitWTEEgSk9WQU4KK1ZMQSBNSUxPVkFOCitWTEEgUEVUQVIKK1ZMQSBSQURPU0xBVgorVkxBIFNMQVZLTworVkxBIFNSRVRBCitWTEHEjE8gRFXFoEFOS0EKK1ZMQcWgxIxJxIYgQUxFS1NBTkRBUgorVkxBxaBJxIYgTUlPRFJBRworVkxBxaBJxIYgVkFTTworVkxBxaBLQUxJxIYgxJBPUsSQRQorVkxBxaBLQUxJxIYgQUxFS1NBTkRBUgorVkxBxaBLQUxJxIYgQU5EUklKQQorVkxBxaBLQUxJxIYgQk/FvUFOQQorVkxBxaBLQUxJxIYtQk9KQU5PVknEhiBSQUpLQQorVkxBxaBLQUxJxIYgQlJBTklTTEFWCitWTEHFoEtBTEnEhiBCUkFOSVNMQVYKK1ZMQcWgS0FMScSGIEJSQU5JU0xBVgorVkxBxaBLQUxJxIYgRE9OS0EKK1ZMQcWgS0FMScSGIEZBRElMQQorVkxBxaBLQUxJxIYgSUxJSkEKK1ZMQcWgS0FMScSGIExBWkFSCitWTEHFoEtBTEnEhiBMQVpBUgorVkxBxaBLQUxJxIYgTUlMT1JBRAorVkxBxaBLQUxJxIYgTklLT0xBCitWTEHFoEtBTEnEhiBPTEdBCitWTEHFoEtBTEnEhiBQQVZMRQorVkxBxaBLQUxJxIYgUEFWTEUKK1ZMQcWgS0FMScSGIFBBVkxFCitWTEHFoEtBTEnEhiBQRVRBUgorVkxBxaBLQUxJxIYgUEVUQVIKK1ZMQcWgS0FMScSGLVBPUE9WScSGIERVxaBBTktBCitWTEHFoEtBTEnEhiBSQURPU0xBVgorVkxBxaBLQUxJxIYgU0FWQQorVkxBxaBLQUxJxIYgU0xPQk9EQU4KK1ZMQcWgS0FMScSGIFNMT0JPREFOCitWTEHFoEtBTEnEhiBTVEVWQU4KK1ZMQcWgS0FMScSGIFNUT0pBTgorVkxBxaBLQUxJxIYgVkxBRElNSVIKK1ZMQcWgS0FMScSGIFpPUkEKK1ZMQcWgS0FMSUpBIEpFTEVOQQorVkxBxaBLQUxJSkEgVkxBREEKK1ZMQcWgS0FMSU4gQlJBTktPCitWTEHFoEtJIEJPR0RBTktBCitWTEHFoEtJIExBWkFSCitWTEHFoEtJIFBSRURSQUcKK1ZMQURBUlNLSSBPTEdBCitWTEFEQVJTS0kgT0xHQQorVkxBREVUScSGIE1JTEFOCitWTEFERVRJxIYgTUlSS08KK1ZMQURJxIYgRFJBR08KK1ZMQURJxIYgTUlMQU4KK1ZMQURJxIYgUEVUQVIKK1ZMQURJTUlSIFNFTEVOQQorVkxBRElNSVIgWkRSQVZLTworVkxBRElNSVJPVknEhiBBTEVLU0FOREFSCitWTEFESU1JUk9WScSGIE1JTEFOCitWTEFESU1JUk9WScSGIFZMQURJTUlSCitWTEFESVNBVkxKRVYgxb1JVkFOCitWTEFESVNBVkxKRVYgTUlMT1JBRAorVkxBRElTQVZMSkVWIFBFUkEKK1ZMQURJU0FWTEpFViBUT01BCitWTEFESVNBVkxKRVZJxIYgxJBPUsSQRQorVkxBRElTQVZMSkVWScSGIMSQVVJBCitWTEFESVNBVkxKRVZJxIYgREVTSU1JUgorVkxBRElTQVZMSkVWScSGIERSQUdJQ0EKK1ZMQURJU0FWTEpFVknEhiBFUsW9RUJFVAorVkxBRElTQVZMSkVWScSGIEpFTEVOQQorVkxBRElTQVZMSkVWScSGIE1JTE9TQVZBCitWTEFESVNBVkxKRVZJxIYgTUlST1NMQVYKK1ZMQURJU0FWTEpFVknEhiBPQlJBRAorVkxBRElTQVZMSkVWScSGLVBFxaBLQU5PViBNSVJKQU5BCitWTEFESVNBVkxKRVZJxIYgUFJFRFJBRworVkxBRElTQVZMSkVWScSGIFZPSklTTEFWCitWTEFET1ZJxIYgSk9WQU4KK1ZMQURPVknEhiBKT1ZBTgorVkxBRE9WScSGIFJBRE9KS0EKK1ZMQURVxaBBIE5JS09MQQorVkxBRFXFoEnEhiBJVkFOCitWTEFEVcWgScSGIE1JTEFOCitWTEFEVUxPViDFvUlWT0pJTgorVkxBRFVMT1ZJxIYtUE9QT1YgTUFSSUpBIERSIExFS0FSCitWTEFEVUxPVknEhiBUSUhPTUlSCitWTEFIIERBTklDQQorVkxBSCBJVkFOCitWTEFIIFBBVkxFCitWTEFIIFJBRE9WQU4KK1ZMQUhFSyBTVEFOS08KK1ZMQUhJTknEhiBNSUxPxaAKK1ZMQUhPIEtSVU5PU0xBVgorVkxBSE9WScSGIMSQT1LEkEUKK1ZMQUhPVknEhiBCT0pBTkEKK1ZMQUhPVknEhiBCUkFOSVNMQVYKK1ZMQUhPVknEhiBCUkFOS0EKK1ZMQUhPVknEhiBCUkFOS0EKK1ZMQUhPVknEhiBEQU5JSkVMQQorVkxBSE9WScSGIERSQUdPTEpVQgorVkxBSE9WScSGIERSQUdPCitWTEFIT1ZJxIYgRFXFoEFOCitWTEFIT1ZJxIYgSkVMSUNBCitWTEFIT1ZJxIYgTEpVQklDQQorVkxBSE9WScSGIExKVUJJTktBCitWTEFIT1ZJxIYgTUFSSUpBCitWTEFIT1ZJxIYgTUlMQU4gRElQTCBJTkcKK1ZMQUhPVknEhiBNSUxFTktPCitWTEFIT1ZJxIYgTUlMSUNBCitWTEFIT1ZJxIYgTUlSS08gRFIgSU5HCitWTEFIT1ZJxIYgTUlST1NMQVZBCitWTEFIT1ZJxIYgTU9NxIxJTE8KK1ZMQUhPVknEhiBQQVZMRQorVkxBSE9WScSGIFJBRE/FoAorVkxBSE9WScSGIFJBRE9NSVIKK1ZMQUhPVknEhiBSQURPTkpBCitWTEFIT1ZJxIYgU0FWQSBEUgorVkxBSE9WScSGIFNFTktBCitWTEFIT1ZJxIYgU0xPQk9EQU4KK1ZMQUhPVknEhiBTVEVWQU4KK1ZMQUhPVknEhiBTVFJBSElOSkEKK1ZMQUhPVknEhiBURU9ET1JBCitWTEFIT1ZJxIYgVklUT01JUktBCitWTEFIT1ZJxIYgVkxBREEKK1ZMQUhPVknEhiBWTEFESU1JUgorVkxBSFXFoEnEhiBNSVJLTworVkxBSFXFoEnEhiBPTEdJQ0EKK1ZMQUlTQVZMSkVWScSGIMW9SVZLTworVkxBSVNBVkxKRVZJxIYgxJBVSk8KK1ZMQUlTQVZMSkVWScSGIEFOR0VMSU5BCitWTEFJU0FWTEpFVknEhiBEQU5JTE8KK1ZMQUlTQVZMSkVWScSGIERBUkEKK1ZMQUlTQVZMSkVWScSGIERNSVRBUgorVkxBSVNBVkxKRVZJxIYgRFXFoEFOCitWTEFJU0FWTEpFVknEhiBNQUtTSU0KK1ZMQUlTQVZMSkVWScSGIE1JTEFOCitWTEFJU0FWTEpFVknEhiBNSUxBTgorVkxBSVNBVkxKRVZJxIYgTUlMSUpBTkEKK1ZMQUlTQVZMSkVWScSGIE1JTE/FoAorVkxBSVNBVkxKRVZJxIYgTU9NxIxJTE8KK1ZMQUlTQVZMSkVWScSGIE5JS09MQQorVkxBSVNBVkxKRVZJxIYgTklLT0xBCitWTEFJU0FWTEpFVknEhiBOSUtPTEEKK1ZMQUlTQVZMSkVWScSGIFJBRE1JTEEKK1ZMQUlTQVZMSkVWScSGIFNBVk8KK1ZMQUlTQVZMSkVWScSGIFNMT0JPREFOCitWTEFJU0FWTEpFVknEhiBTT0ZJSkEKK1ZMQUlTQVZMSkVWScSGIFNUT0pBCitWTEFJU0FWTEpFVknEhiBUUklWVU5BCitWTEFJU0FWTEpFVknEhiBWQVNPCitWTEFKQU5LT1YgTEFaQVIKK1ZMQUpBTktPViBOQVRBTElKQQorVkxBSkFOS09WIFNMT0JPREFOCitWTEFKQU5LT1YtVlVMScSGIFZFUkEKK1ZMQUpJxIYgRFJBR0FOCitWTEFKScSGIERSQUdPU0xBVkEKK1ZMQUpJxIYgRFXFoEFOS0EKK1ZMQUpJxIYgRFXFoElDQQorVkxBSknEhiBKT1ZBTgorVkxBSknEhiBNQVJJSkEKK1ZMQUpJxIYgTUlMT8WgCitWTEFKScSGIFZBTEVSSUpBCitWTEFKS09WIEJPU0lMSktBCitWTEFKS09WIEJSQU5JU0xBVgorVkxBSktPViBCUkFOS08KK1ZMQUpLT1YtSVZBTk9WScSGIFNORcW9QU5BCitWTEFKS09WIExBWkFSCitWTEFKS09WIExBWkEKK1ZMQUpLT1YgTUFDQQorVkxBSktPViBNSU9EUkFHCitWTEFKS09WIE1JUktPCitWTEFKS09WIE1MQURFTgorVkxBSktPViBOSUtPTEEKK1ZMQUpLT1YgUEFWTEUKK1ZMQUpLT1YgUEVUQVIKK1ZMQUpLT1YgWk9SSUNBCitWTEFKS09WScSGIEFOVE9OSUpBCitWTEFKS09WScSGIEJPR0RBTgorVkxBSktPVknEhiBNSUxVVElOCitWTEFKS09WScSGIE1JT0RSQUcKK1ZMQUpLT1ZJxIYgTkVNQU5KQQorVkxBSk5JxIYgxIxFRE9NSVIKK1ZMQUpOScSGIEdPUkFOCitWTEFKTknEhiBNSVJKQU5BCitWTEFKTknEhiBaT1JBCitWTEFKT1ZBTk9WIFNMT0JPREFOCitWTEFMVUtJTiBEUkFHT1NMQVYKK1ZMQUxVS0lOIElMT05BCitWTEFMVUtJTiBJTE9OS0EKK1ZMQUxVS0lOIE1JTE9SQUQgRElQTCBJTkcKK1ZMQUxVS0lOIE1JUkpBTkEKK1ZMQUxVS0lOIE5BREEKK1ZMQUxVS0lOIFNBVkEKK1ZMQUxVS0lOIFNMQVZLTworVkxBTFVLSU4gWk9SQQorVkxBT1Ytxb1BUktPViBPTEdBCitWTEFPViBHT1JEQU5BCitWTEFPViBKQVZPUktBCitWTEFPViBNSUxPxaAKK1ZMQU9WIE1JUk9TTEFWCitWTEFPViBWRUxJTUlSCitWTEFPVknEhiDEkE9SxJBFCitWTEFPVknEhiDEkE9SxJBFCitWTEFPVknEhiDEkE9SxJBFCitWTEFPVknEhiDEkE9SxJBFCitWTEFPVknEhiBBTEVLU0FOREFSCitWTEFPVknEhiBBTklDQQorVkxBT1ZJxIYgQk/FoEtPCitWTEFPVknEhiBCUkFOSVNMQVZBCitWTEFPVknEhiBESU1JVFJJSkUKK1ZMQU9WScSGIERSQUdBTgorVkxBT1ZJxIYgRFJBR0FOCitWTEFPVknEhiBEUkFHT0xKVUIKK1ZMQU9WScSGIERVxaBBTgorVkxBT1ZJxIYgRFXFoEtPCitWTEFPVknEhiBHQVZSQQorVkxBT1ZJxIYgSEFSSQorVkxBT1ZJxIYgSUdOSkFUCitWTEFPVknEhiBJVkFOS0EKK1ZMQU9WScSGIEpFTEEKK1ZMQU9WScSGIEpPVkFOCitWTEFPVknEhiBKT1ZBTgorVkxBT1ZJxIYgS0FUSUNBCitWTEFPVknEhiBMQVpBUgorVkxBT1ZJxIYgTEpVQknFoEEKK1ZMQU9WScSGIExKVUJJQ0EKK1ZMQU9WScSGIExKVUJPTUlSCitWTEFPVknEhiBMSlVCT01JUgorVkxBT1ZJxIYgTFVLQQorVkxBT1ZJxIYgTUFSQQorVkxBT1ZJxIYgTUFSS08KK1ZMQU9WScSGIE1JTE/FoAorVkxBT1ZJxIYgTUlMT8WgCitWTEFPVknEhiBNSUxPU0FWCitWTEFPVknEhiBNSVJPU0xBVgorVkxBT1ZJxIYgTUxBREVOCitWTEFPVknEhiBOSUtPTEEKK1ZMQU9WScSGIE5JS09MQQorVkxBT1ZJxIYgT0xJVkVSQQorVkxBT1ZJxIYgUExFTUVOS0EKK1ZMQU9WScSGIFJBRElWT0oKK1ZMQU9WScSGIFJBSktPCitWTEFPVknEhiBTQVZBCitWTEFPVknEhiBTTEFWS08KK1ZMQU9WScSGIFNUQU5PSkUKK1ZMQU9WScSGIFNURVZBTgorVkxBT1ZJxIYgU1RFVkFOCitWTEFPVknEhiBTVkVUT1pBUgorVkxBT1ZJxIYgVE/FoEEKK1ZMQU9WScSGIFRPRE9SCitWTEFPVknEhiBUT01BCitWTEFPVknEhiBUT01JU0xBVgorVkxBT1ZJxIYgVkVTTkEKK1ZMQU9WScSGIFZMQVNUSVNMQVZBCitWTEFPVknEhiBaT1JBTgorVkxBU0HEjEVWScSGIFNUT0pLTworVkxBU0FLIFJFTkFUQQorVkxBU09WIE1JSEFKTE8KK1ZMQVNURUxJxIYgUk9LU0FOREEKK1ZMQVRLT1ZJxIYgxb1FTEpLTworVkxBVEtPVknEhiBBTkdFTE8KK1ZMQVRLT1ZJxIYgRFXFoEFOCitWTEFUS09WScSGIEtSRcWgSU1JUgorVkxBVEtPVknEhiBNQVJJSkEKK1ZMQVRLT1ZJxIYgTUFSSUpBCitWTEFUS09WScSGIE1JTEFOCitWTEFUS09WScSGIE1JTElDQQorVkxBVEtPVknEhiBNSVJPU0xBVgorVkxBVEtPVknEhiBNTEFERU4KK1ZMQVRLT1ZJxIYgTklLT0xBCitWTEFUS09WScSGIFNBVktBCitWTEFUS09WScSGIFNWRVRPWkFSCitWT8WgVEnEhiBBTEVLU0FOREFSCitWT8WgVEnEhiBNSU9EUkFHCitWT0RBIFpERU5LTworVk9EQUxPViBERUpBTgorVk9EQUxPViBNTEFERU4KK1ZPREVOScSMQVIgTklLT0xBCitWT0RPR0FaIERSQUdBTgorVk9ET0dBWiBMRVBPU0FWQQorVk9ET1BJVkVDIMW9RUxKS08KK1ZPRE9QSVZFQyBEUkFHSUNBCitWT0RPUElWRUMgTUlIQUVMCitWT0dBTkpBQyBNSUxFTktPCitWT0dMRcWgIExJRElKQQorVk9JTiBBTEVLU0FOREFSIERSIExFS0FSCitWT0rEjEVWU0tJIEFMRUtTQU5EQVIKK1ZPSsSMScSGIEpPVkFOCitWT0pBxaDEhlVLIE1BUkEKK1ZPSknEjEnEhiBKRUxFTkEKK1ZPSknEjEnEhiBSQUpLTworVk9KScSMScSGIFNBVkEKK1ZPSknEjEnEhiBWTEFESU1JUgorVk9KSU1JUk9WScSGIFNMQVZLTworVk9KSU4gTUlMS0EKK1ZPSklOT1YgxJBPUsSQRQorVk9KSU5PViBNSVJBCitWT0pJTk9WIFJBRE9TTEFWCitWT0pJTk9WScSGIEFMRUtTQU5EUkEKK1ZPSklOT1ZJxIYgQk9HScSGCitWT0pJTk9WScSGIERSQUdBTgorVk9KSU5PVknEhiBEUkFHT0xKVUIKK1ZPSklOT1ZJxIYgRFJBR09TTEFWCitWT0pJTk9WScSGIEpFTEVOQQorVk9KSU5PVknEhiBKT1ZBTiBEUgorVk9KSU5PVknEhiBMSklMSkFOQQorVk9KSU5PVknEhiBMSlVCT01JUgorVk9KSU5PVknEhiBNSUxJVk9KRQorVk9KSU5PVknEhiBNSUxPUkFECitWT0pJTk9WScSGIE1JUkpBTkEgRFIKK1ZPSklOT1ZJxIYgTUlST1NMQVYKK1ZPSklOT1ZJxIYgTUlST1NMQVYKK1ZPSklOT1ZJxIYgTUlST1NMQVYKK1ZPSklOT1ZJxIYgTkVCT0rFoEEKK1ZPSklOT1ZJxIYgVkVTRUxJTgorVk9KSU5PVknEhiBWVUpJQ0EKK1ZPSklOT1ZJxIYgVlVLT1NBVkEKK1ZPSklOT1ZJxIYgWk9SS0EKK1ZPSklTQVZMSkVWScSGIFpMQVRJSkEKK1ZPSktJxIYgQk/FoEtPCitWT0pLScSGIFJBRElTTEFWCitWT0pOScSGIEZSQU5KQQorVk9KTknEhi1IQUpEVUsgR0laQQorVk9KTknEhi1IQUpEVUsgTEpJTEpBTkEKK1ZPSk5JxIYtSEFKRFVLIE1JUkpBTkEKK1ZPSk5JxIYgSk9WQU4KK1ZPSk5JxIYtS09SVFVJxaAgU1RBTkEKK1ZPSk5JxIYgU1RFVkFOCitWT0pOT1YgQlJBTklTTEFWCitWT0pOT1YtSUxJxIYgUk9aQUxJSkEKK1ZPSk5PViBTVE9KQU4gRFIgTEVLQVIKK1ZPSk5PVknEhiDFvUFSS08KK1ZPSk5PVknEhiDFvUFSS08KK1ZPSk5PVknEhiDFvUFSS08KK1ZPSk5PVknEhiDEkE9SxJBFCitWT0pOT1ZJxIYgxJBPUsSQRQorVk9KTk9WScSGIMSQVVJBCitWT0pOT1ZJxIYgxJBVUk8KK1ZPSk5PVknEhiBBQ0EKK1ZPSk5PVknEhiBBTkFTVEFaSUpBCitWT0pOT1ZJxIYgQlJBQ0EKK1ZPSk5PVknEhiBCUkFOS08KK1ZPSk5PVknEhiBCUkFOS08KK1ZPSk5PVknEhiBCUkFOS08KK1ZPSk5PVknEhiBEQU5JQ0EKK1ZPSk5PVknEhiBEQVZPUgorVk9KTk9WScSGIERFU0FOS0EKK1ZPSk5PVknEhiBERVNBTktBCitWT0pOT1ZJxIYgRElNSVRSSUpFCitWT0pOT1ZJxIYgRFJBR0FOCitWT0pOT1ZJxIYgRFJBR0FOCitWT0pOT1ZJxIYgRFJBR0lDQQorVk9KTk9WScSGIERVxaBBTiBESVBMIElORworVk9KTk9WScSGIERVxaBBTgorVk9KTk9WScSGIERVxaBBTgorVk9KTk9WScSGIERVxaBBTgorVk9KTk9WScSGIERVxaBBTgorVk9KTk9WScSGIEdJWkVMQQorVk9KTk9WScSGIElMSUpBCitWT0pOT1ZJxIYgSUxJSkEKK1ZPSk5PVknEhiBJTElKQQorVk9KTk9WScSGIElMSUpBCitWT0pOT1ZJxIYgSVZBTktBCitWT0pOT1ZJxIYgSVZBTgorVk9KTk9WScSGIEpPVkFOCitWT0pOT1ZJxIYgSk9WQU4KK1ZPSk5PVknEhiBLQVRBUklOQQorVk9KTk9WScSGIEtBVElDQQorVk9KTk9WScSGIEtMQVJBCitWT0pOT1ZJxIYgTEpVQknFoEEKK1ZPSk5PVknEhiBMSlVCSU5LQQorVk9KTk9WScSGIE1BUkEKK1ZPSk5PVknEhiBNQVJLTworVk9KTk9WScSGIE1JTEFOCitWT0pOT1ZJxIYgTUlMQU4KK1ZPSk5PVknEhiBNSUxBTgorVk9KTk9WScSGIE1JTEFOCitWT0pOT1ZJxIYgTUlMQU4KK1ZPSk5PVknEhiBNSUxBTgorVk9KTk9WScSGIE1JTEVOS08KK1ZPSk5PVknEhiBNSUxFTktPCitWT0pOT1ZJxIYgTUlMSUNBCitWT0pOT1ZJxIYgTUlMSU5BCitWT0pOT1ZJxIYgTUlMSkFOCitWT0pOT1ZJxIYgTUlMS0EKK1ZPSk5PVknEhiBNSUxPxaAKK1ZPSk5PVknEhiBNSUxVVElOCitWT0pOT1ZJxIYgTUlPRFJBRworVk9KTk9WScSGIE1JUkpBTkEKK1ZPSk5PVknEhiBNSVJLTworVk9KTk9WScSGIE1JUk9TTEFWCitWT0pOT1ZJxIYgTUxBREVOIERJUEwgT0VDCitWT0pOT1ZJxIYgTkFEQQorVk9KTk9WScSGIE5BREEKK1ZPSk5PVknEhiBOQURFxb1EQQorVk9KTk9WScSGIE5BVEHFoEEKK1ZPSk5PVknEhiBOQVRBxaBBCitWT0pOT1ZJxIYgTklLT0xBIERSCitWT0pOT1ZJxIYgTklLT0xBCitWT0pOT1ZJxIYgTklLT0xBCitWT0pOT1ZJxIYgUEVUQVIKK1ZPSk5PVknEhiBQRVRBUgorVk9KTk9WScSGIFBFVEFSCitWT0pOT1ZJxIYgUkFEQQorVk9KTk9WScSGIFJBREUKK1ZPSk5PVknEhiBSQURFCitWT0pOT1ZJxIYgUkFERQorVk9KTk9WScSGIFJBRElWT0oKK1ZPSk5PVknEhi1SQURVSktPViBOQURBCitWT0pOT1ZJxIYgUkFKS08KK1ZPSk5PVknEhiBSVcW9SUNBCitWT0pOT1ZJxIYgU0xBVktPCitWT0pOT1ZJxIYgU0xBVktPCitWT0pOT1ZJxIYgU1BBU0VOSUpBCitWT0pOT1ZJxIYgU1RBTUVOS0EKK1ZPSk5PVknEhiBTVEFOSVNMQVYKK1ZPSk5PVknEhiBTVEVWQU4KK1ZPSk5PVknEhiBTVEVWQU4KK1ZPSk5PVknEhiBTVEVWQU4KK1ZPSk5PVknEhiBTVEVWQQorVk9KTk9WScSGIFNURVZPCitWT0pOT1ZJxIYgU1RPSktBCitWT0pOT1ZJxIYgU1RSQUhJTkpBCitWT0pOT1ZJxIYgVE9NSVNMQVYKK1ZPSk5PVknEhiBWRVNFTElOCitWT0pOT1ZJxIYgVkVTRUxJTgorVk9KTk9WScSGIFZMQURJTUlSCitWT0pOT1ZJxIYgVkxBRElNSVIKK1ZPSk5PVknEhiBWTEFESU1JUgorVk9KTk9WScSGIFZMQURJTUlSCitWT0pOT1ZJxIYgVk9KSVNMQVYKK1ZPSk5PVknEhiBWT0pJU0xBVgorVk9KTk9WScSGIFpEUkFWS08KK1ZPSlQgTEpVQklDQQorVk9KVCBNSUxBTkEKK1ZPSlRBUyBTVEFOSVNMQVYKK1ZPSlRFSE9WU0tJIEpBUk9TTEFWCitWT0pURUhPVlNLSSBPVE8KK1ZPSlRFSE9WU0tJIE9UTworVk9KVEVIT1ZTS0kgWkFHT1JLQQorVk9KVk9EScSGIMSQVVJBCitWT0pWT0RJxIYgQUxFS1NBTkRBUgorVk9KVk9EScSGIEFOQQorVk9KVk9EScSGIEJSQU5JU0xBVgorVk9KVk9EScSGIERBTklDQQorVk9KVk9EScSGIERSQUdPTEpVQgorVk9KVk9EScSGIERVxaBBTgorVk9KVk9EScSGIEdSQURJTUlSCitWT0pWT0RJxIYgSk9WQU4KK1ZPSlZPREnEhiBNQU5JxaBBCitWT0pWT0RJxIYgTUlMQU4KK1ZPSlZPREnEhiBNSUxFCitWT0pWT0RJxIYgTUlMT8WgCitWT0pWT0RJxIYgTUlMT1JBRAorVk9KVk9EScSGIE1JUktPCitWT0pWT0RJxIYgTkFEQQorVk9KVk9EScSGIE5JS09MQQorVk9KVk9EScSGIFJBRE9WQU4KK1ZPSlZPREnEhiBSQVRLQQorVk9KVk9EScSGIFNMQVZLTworVk9KVk9EScSGIFNURVZBTgorVk9KVk9EScSGIFNURVZBTgorVk9KVk9EScSGLVRBU0nEhiBTVkVUTEFOQQorVk9KVk9EScSGIFZBU08KK1ZPSlZPREnEhiBWT0pJU0xBVgorVk9KVk9EScSGIFpPUkEKK1ZPS8WgSSDEkEVWQUQKK1ZPS0FMScSGIEhJTERFR0FSRAorVk9LQUxJxIYgVEVPQkFMRAorVk9LScSGIERSQUdBTgorVk9LScSGIERVxaBLTworVk9LScSGIEpPVkFOCitWT0tJxIYgTkFEQQorVk9MxIxFVknEhiBCT1JJU0xBVgorVk9MxIxFVknEhiBFVkEKK1ZPTMSMRVZJxIYgVE9ET1IKK1ZPTMSMRVZTS0kgRVZBTlRJSkUKK1ZPTMSMRVZTS0kgTklLT0xBCitWT0xBxaAgSVNJRE9SCitWT0xBxaAgTUlMQU5LTworVk9MQcWgIE1JTEFOCitWT0xBUiBBTkRSQcWgCitWT0xBUiBLQVJMTworVk9MQVIgUEVUQVIKK1ZPTEFSIFNUSkVQQU4KK1ZPTEFSRVYgTEpVQk9NSVIKK1ZPTEFSRVYgTkFEQQorVk9MQVJFViBTVEVWQU4KK1ZPTEFSRVZJxIYgTUFSS08KK1ZPTEFSRVZJxIYgWk9SQU4KK1ZPTEFST1YgTUlMQU4KK1ZPTEFST1YgUkFET1ZBTgorVk9MRU5DIE1BUklKQQorVk9MRiBCT1JJUworVk9MRiBEUkFHVVRJTgorVk9MRiBJxaBUVkFOCitWT0xGIExKVUJJQ0EKK1ZPTEYgTEpVREVWSVQKK1ZPTEYgTUlSQQorVk9MRiBNSVJBCitWT0xGIFZFUkEKK1ZPTEnEjCBWTEFESU1JUgorVk9MScSGIEFMRUtTQU5EQVIKK1ZPTEnEhiBCT8W9SURBUgorVk9MScSGIERSQUdPU0xBVgorVk9MScSGIEdSVUpBCitWT0xJxIYgTEpJTEpBTkEKK1ZPTEnEhiBNQVJJTktBCitWT0xJxIYgUEVUQVIKK1ZPTEnEhiBSQURPU0xBVgorVk9MScSGIFNMQVZLTworVk9MScSGIFRJSE9NSVIKK1ZPTEnEhiBWSU5LQQorVk9MS0FSIEVNSUwKK1ZPTEtPViBSQURPU0xBVgorVk9MT8WgS0lOIEJSQVRJU0xBVgorVk9MT8WgS0lOIERSQUdJQ0EKK1ZPTknEhiBWTEFUS08KK1ZPUkHEjEVLIMW9RUxKS08KK1ZPUkHEjEVLIExBRElTTEFWCitWT1JBVE9WScSGIFJBRElWT0oKK1ZPUkdJxIYgxJBPUsSQRQorVk9SR0nEhiBBTEVLU0FOREFSCitWT1JHScSGIEFOxJBFTEtBCitWT1JHScSGIEJPUklWT0oKK1ZPUkdJxIYgRFJBR0FOCitWT1JHScSGIEVNSUwKK1ZPUkdJxIYgR0FWUkEKK1ZPUkdJxIYgSk9TSVAKK1ZPUkdJxIYgTEFaQVIKK1ZPUkdJxIYgTUFSQQorVk9SR0nEhiBNSUxBRElOS0EKK1ZPUkdJxIYgTklLT0xBIERSCitWT1JHScSGIFNMT0JPREFOCitWT1JHScSGIFNURVZBTgorVk9SR0nEhiBTVEVWQU4KK1ZPUkdJxIYgVlVKSUNBCitWT1JHScSGIFpEUkFWS08KK1ZPUkdJxIYgWk9SQQorVk9SR0lOQyBDVkVUQQorVk9SR1XEjEnEhiBNSUxPxaAKK1ZPUkdVxIxJxIYgU0HFoEEKK1ZPUkdVxIxJTiBJVkFOCitWT1JLQVBBIE5JS09MQQorVk9SS0FQScSGIERVxaBBTgorVk9SS0FQScSGIExKVUJJQ0EKK1ZPUktBUEnEhiBNSUxBTgorVk9SS0FQScSGIE5JS09MQQorVk9STEnEjEVLIEpBTk/FoAorVk9STEnEjEVLIEpBTk/FoAorVk9STEnEjEVLIE1BUklDQQorVk9ST0JKRVYgUEVUQVIKK1ZPUk9CSkVWIFNBVkEKK1ZPUk9UT1ZJxIYgU1RBTkEKK1ZPUlRJxIYgQk9TSUxKS0EKK1ZPWkFSIEFOQQorVk9aQVIgREFOSUNBCitWT1pBUiBEUkFHQU4KK1ZPWkFSIE1JTE/FoAorVk9aQVIgUEFWTEUgRElQTCBJTkcKK1ZPWkFSRVZJxIYgxJBPUsSQRQorVk9aQVJFVknEhiBFTElaQUJFVEEKK1ZPWkFSRVZJxIYgSkVMSUNBCitWT1pBUkVWScSGIE1JUktPCitWT1pBUk9WScSGIFZJREEKK1ZSxIxJTkFDIFBFVEFSCitWUsWgS0EgxJBPUsSQRQorVlLFoEtBIERBTklKRUwKK1ZSxaBLQSBLQVRBUklOQQorVlJBxIxBUiBCUkFOSVNMQVYKK1ZSQcSMQVIgREFSSU5LQQorVlJBxIxBUiBKT1ZBTgorVlJBxIxBUiBMSlVCT01JUgorVlJBxIxBUiBMSlVCTworVlJBxIxBUiBNSUxBTgorVlJBxIxBUiBNSU9MSktBCitWUkHEjEFSIE5FREVMSktPCitWUkHEjEFSIFNMQVZLQQorVlJBxIxBUiBTTE9CT0RBTgorVlJBxIxBUiBWRVJBCitWUkHEjEFSIFZVSworVlJBxIxBUiBaREVOS0EKK1ZSQcSMQVJJxIxJxIYgUkFERQorVlJBxIxBUknEhiDEkE9SxJBFCitWUkHEjEFSScSGIEFMRUtTQU5EQVIKK1ZSQcSMQVJJxIYgRElNSVRSSUpFCitWUkHEjEFSScSGIEpFTElDQQorVlJBxIxBUknEhiBMSklMSkFOQQorVlJBxIxBUknEhiBMSlVCScWgQQorVlJBxIxBUknEhiBMSlVCT01JUgorVlJBxIxBUknEhiBNQVJJSkEKK1ZSQcSMQVJJxIYgTUlMRU5LTworVlJBxIxBUknEhiBNSUxJU0FWCitWUkHEjEFSScSGIE1JTE9NSVIKK1ZSQcSMQVJJxIYgVkxBRElNSVIKK1ZSQcSMRVZJxIYgU0FWS0EKK1ZSQcWgVEFOT1ZJxIYgTEpVQklOS0EKK1ZSQUJMSUsgSlVMSUpBTkEKK1ZSQUdPVknEhiBKT0NBCitWUkFOQSBOQURBCitWUkFOQUMgS1NFTklKQQorVlJBTkFDIFNFQUQKK1ZSQU5BQyBWQUhJREEKK1ZSQU5BQyBaSUpBRAorVlJBTkXFoCDEjEVET01JUgorVlJBTkXFoCBCT8W9SURBUgorVlJBTkXFoCBEQVZPUklOCitWUkFORcWgIEVNSUxJSkEKK1ZSQU5FxaAgSk9WQU5LQQorVlJBTkXFoCBNQVJJSkEKK1ZSQU5FxaAgTUlMQU4KK1ZSQU5FxaAgTUlMS0EKK1ZSQU5FxaAgTUlMVVRJTgorVlJBTkXFoCBOQURBCitWUkFORcWgIE5JS09MQQorVlJBTkXFoCBQRVRBUgorVlJBTkXFoCBTTUlMSkEKK1ZSQU5FxaAgVkVSSUNBCitWUkFORcWgRVZJxIYgQURBTQorVlJBTkXFoEVWScSGIEJSQU5JU0xBViBEUgorVlJBTkXFoEVWScSGIERBTUpBTgorVlJBTkXFoEVWScSGIEtBVElDQQorVlJBTkXFoEVWScSGIE1JTEFOCitWUkFORcWgRVZJxIYgTUlMQU4KK1ZSQU5FxaBFVknEhiBNSUxPxaAKK1ZSQU5FxaBFVknEhiBNSVJPU0xBVgorVlJBTkXFoEVWScSGIE1MQURFTgorVlJBTkXFoEVWScSGIE5BREEgRFIKK1ZSQU5FxaBFVknEhiBQUkVEUkFHCitWUkFORcWgRVZJxIYgUkFKS08KK1ZSQU5FxaBFVknEhiBTVEVWQU4KK1ZSQU5FxaBFVknEhiBTVE9KQU4KK1ZSQU5JxIYgxIxFRE9NSVIKK1ZSQU5JxIYgQlJBTktPCitWUkFOScSGIERPQlJJTkEKK1ZSQU5JxIYgRFJBR0lOSkEKK1ZSQU5JxIYgRFJBR09TTEFWCitWUkFOScSGIElMSUpBCitWUkFOScSGIEpBRFJBTktBCitWUkFOScSGIE1BUktPCitWUkFOScSGIE1JTEFOIFBST0ZFU09SCitWUkFOScSGIE1JTE9SQUQKK1ZSQU5JxIYgTUlMVVRJTgorVlJBTknEhiBNSVLEjEVUQQorVlJBTknEhiBNSVJLTworVlJBTknEhiBNSVRSQQorVlJBTknEhiBORU5BRAorVlJBTknEhiBOSUtPTEEKK1ZSQU5JxIYgUkFESVZPSkUKK1ZSQU5JxIYgUkFET0pLQQorVlJBTknEhiBTTEFWS08KK1ZSQU5JxIYgU0xPQk9EQU4KK1ZSQU5KRcWgIEdPSktPCitWUkFOSkXFoCBKT1ZBTktBCitWUkFOSkXFoCBNSUxFTktPCitWUkFOSkXFoCBNSUxFTktPCitWUkFOSkXFoCBNSUxFCitWUkFOSkXFoCBNSUxLQQorVlJBTkpFxaAgTkVOQUQKK1ZSQU5KRcWgIFJBRE9NSVIKK1ZSQU5KRcWgIFNPRklKQQorVlJBTkpFxaAgU1ZFVElTTEFWCitWUkFOSkXFoCBTVkVUTEFOQQorVlJBTkpFxaBFVknEhiBCUkFOS08KK1ZSQU5KRcWgRVZJxIYgRElOS0EKK1ZSQU5KRcWgRVZJxIYgRFJBR0FOCitWUkFOSkXFoEVWScSGIEpPVklDQQorVlJBTkpFxaBFVknEhiBNT01JUgorVlJBTkpFxaBFVknEhiBSQVRPTUlSCitWUkFOSkXFoEVWScSGIFZFTEpLTworVlJBTkpFVkFDIERSQUdBTgorVlJBTkpFVkFDIE1JTElWT0pFCitWUkFOSktPVknEhiBNSUxBTgorVlJBTkpLT1ZJxIYgTUlMRQorVlJBTkpLT1ZJxIYgU01JTEpLQQorVlJBTkpLT1ZJxIYgU1JFVE8KK1ZSQU5KTyBGUkFOSkEKK1ZSQU5KTyBaT0xUQU4KK1ZSQU5LT1ZJxIYgSlVSQUoKK1ZSQU5LT1ZJxIYgTFVLQQorVlJBTktPVknEhiBNSUxBTgorVlJBUMSMRVYgxb1JVktPCitWUkFQxIxFViBEVcWgS08KK1ZSQVDEjEVWIE1FTEFOSUpBCitWUkFUTkpBTiBCUkFOSU1JUgorVlJBVE9OSknEhiBTTEFWT0xKVUIKK1ZSQkHFoEtJIMW9QVJLTworVlJCQcWgS0kgxb1BUktPCitWUkJBxaBLSSDEkE9SxJBFCitWUkJBxaBLSSDEkE9SxJBFCitWUkJBxaBLSSDEkFVSQQorVlJCQcWgS0kgQUxFS1NBTkRBUgorVlJCQcWgS0kgQU5JQ0EKK1ZSQkHFoEtJIEJSQU5JU0xBVkEKK1ZSQkHFoEtJIERBUklOS0EKK1ZSQkHFoEtJIERSQUdPTUlSCitWUkJBxaBLSSBEUkFHT1NMQVYKK1ZSQkHFoEtJIERVxaBBTgorVlJCQcWgS0kgRFXFoEFOCitWUkJBxaBLSSBEVcWgQU4KK1ZSQkHFoEtJIERVxaBJQ0EKK1ZSQkHFoEtJIEdPUkRBTkEKK1ZSQkHFoEtJIEpFTEVOQQorVlJCQcWgS0kgSkVMSVNBVkVUQQorVlJCQcWgS0kgSk9WQU4KK1ZSQkHFoEtJIEpVTElKQU5BCitWUkJBxaBLSSBLT1NUQQorVlJCQcWgS0kgTEFaQVIKK1ZSQkHFoEtJIExKSUxKQU5BCitWUkJBxaBLSSBMSlVCSUNBIE1SCitWUkJBxaBLSSBMSlVCT01JUgorVlJCQcWgS0kgTUlMQU4KK1ZSQkHFoEtJIE1JTEFOCitWUkJBxaBLSSBNSUxFTkEKK1ZSQkHFoEtJIE1JTEVOS08KK1ZSQkHFoEtJIE1JTElDQQorVlJCQcWgS0kgTUlMT1JBRAorVlJCQcWgS0kgTUlPRFJBRworVlJCQcWgS0kgTUlST1NMQVYKK1ZSQkHFoEtJIE1JUk9TTEFWCitWUkJBxaBLSSBQQVZMRQorVlJCQcWgS0kgUEVUQVIgRElQTCBJTkcKK1ZSQkHFoEtJIFBFVEFSCitWUkJBxaBLSSBQRVRBUgorVlJCQcWgS0kgUkFEQQorVlJCQcWgS0kgUkFERU5LTworVlJCQcWgS0kgU0FWQQorVlJCQcWgS0kgU0xPQk9EQU4KK1ZSQkHFoEtJIFNURVZBTiBEUgorVlJCQcWgS0kgU1ZFVExBTkEKK1ZSQkHFoEtJIFRBTkpBCitWUkJBxaBLSSBUSU1BCitWUkJBxaBLSSBUT0RPUgorVlJCQcWgS0kgVkxBRElTTEFWCitWUkJBSkFDIMSQT1LEkEUKK1ZSQkFKQUMgQ1ZFxIZFCitWUkJBSkFDIEpPVkFOCitWUkJBSkFDIFZBTEVSSUpBCitWUkJBTkFDIExBSk/FoAorVlJCSUNBIERSQUdPTEpVQgorVlJCSUNBIEtTRU5JSkEKK1ZSQklDQSBQRVRBUgorVlJCTEpBTkFDIEFMRU4KK1ZSQ0FOIFZBTEVSSUpBCitWUkNFTEogxb1JVktPCitWUkNFTEogQk/FvUlEQVIKK1ZSQ0VMSiBMSklMSkFOQQorVlJDRUxKIE1JSEFKTE8KK1ZSQ0VMSiBaT1JBTgorVlJET0xKQUsgQlJBTklNSVIKK1ZSRE9MSkFLIFJBRE9WQU5LQQorVlJFxaDEhkFLIEnFoFRWQU4KK1ZSRcSGQSBCUkFOS08KK1ZSRcSGTyBWRUxJTUlSCitWUkVCQUMgWlZPTklNSVIKK1ZSRUJBTE9WIEFMRUtTQU5EUkEKK1ZSRUJBTE9WIFNURVZBTgorVlJFQkFMT1YgVElIT01JUgorVlJFVkVaT1NLSSBSSVNUTworVlJFVknEjEnEhiDEkE9SxJBFCitWUkVWScSMScSGIFNJTUEKK1ZSRVZJxIxJxIYgVFJJVlVOCitWUkdPViBLT1NUQQorVlJHT1ZJxIYgRFJBR0FOCitWUkdPVknEhiBTVEVWQU4KK1ZSR09WScSGIFZFUkEKK1ZSR09WScSGIFZMQURJTUlSCitWUkhPVkFDIEJSQU5JU0xBVgorVlJIT1ZBQyBEQU5FCitWUkhPVkFDIEpBU01JTkEKK1ZSSE9WQUMgTkVERUxKS08KK1ZSSE9WQUMgU0xBVktPIERJUEwgSU5HCitWUkhPVkFDIFRPTUlTTEFWCitWUktFxaAgR09SQU4KK1ZSTUnEhiBNTEFERU4KK1ZSTsSMScSGIMSQT1LEkEUKK1ZSU0FKS09WIElMSUpBCitWUlNBSktPViBJU0lET1IKK1ZSU0FKS09WIEpVTEtBCitWUlNBSktPViBMSlVCSUNBCitWUlNBSktPViBNSUxPxaAKK1ZSU0FKS09WIE5FVkVOS0EKK1ZSU0VMSkEgVklOS08KK1ZSVElLQVBBIEpPVkFOS0EKK1ZSVElQUkHFoEtJIFBFVEFSCitWUlRJUFJBxaBLSSBSQURPVkFOIERSCitWUlRJUFJBxaBLSSBSQURPVkFOCitWUlRJUFJBxaBLSSBWQVNBCitWUlRPVsWgTklLIE1JSEFKTE8KK1ZSVFVMRUsgU01JTEpBCitWUlRVTknEhiBCT1JJU0xBVgorVlJUVU5JxIYgTUFSS08KK1ZSVFVOScSGIE5JS09MQQorVlJUVU5TS0kgREFOSUNBCitWUlRVTlNLSSBIRURWSUdBCitWUlRVTlNLSSBKVUxLQQorVlJUVU5TS0kgS0FUQVJJTkEKK1ZSVFVOU0tJIE1JTEFOCitWUlRVTlNLSSBNSUxJQ0EKK1ZSVFVOU0tJIE1JT0RSQUcKK1ZSVFVOU0tJIE1MQURFTgorVlJUVU5TS0kgU1LEkEFOCitWUlRVTlNLSSBWTEFESU1JUgorVlJVxIZJTknEhiBSQURPSklDQQorVlJVxIZJTknEhiBSQUpLTworVlJaScSGIEJPUklTTEFWCitWUlpJxIYgRFJBR0lDQQorVlJaScSGIERSQUdJQ0EKK1ZSWknEhiBOQURFxb1EQQorVlJaScSGIFNURVZPCitWVcSMQUogQUxFS1NBTkRBUgorVlXEjEFKIEZSQU4KK1ZVxIxBSiBNSU9NSVJBCitWVcSMQUogUk9CRVJUCitWVcSMQU5PVknEhiBQUkVEUkFHCitWVcSMRUxJxIYgUkFET01JUgorVlXEjEVMScSGIFNMQVZLTworVlXEjEVMScSGIFZFUkEKK1ZVxIxFTEnEhiBWTEFKS08KK1ZVxIxFTiBNSUxBTkEKK1ZVxIxFTknEhiBQUkVEUkFHCitWVcSMRU5PViDEkFVSSUNBCitWVcSMRU5PViBLQVRBTElOCitWVcSMRU5PViBNSVJKQU5BCitWVcSMRU5PViBTVEVWQU4KK1ZVxIxFTk9WScSGIMW9SVZBTgorVlXEjEVOT1ZJxIYgxb1JVkFOCitWVcSMRU5PVknEhiBCUkFOS0EKK1ZVxIxFTk9WScSGIERFU0FOS0EKK1ZVxIxFTk9WScSGIERSQUdPTEpVQgorVlXEjEVOT1ZJxIYgSk9WQU4KK1ZVxIxFTk9WScSGIExVS0EKK1ZVxIxFTk9WScSGIE1JUktPCitWVcSMRU5PVknEhiBQRVRBUgorVlXEjEVOT1ZJxIYgU1JFVE8KK1ZVxIxFTk9WScSGIFNWRVRMQU5BCitWVcSMRVJJxIYgUFJWT1NMQVYKK1ZVxIxFVEnEhiDFvUlLQQorVlXEjEVUScSGIMW9SVZLTworVlXEjEVUScSGIEFOxJBFTEtBCitWVcSMRVRJxIYgQk/FvUlEQVIKK1ZVxIxFVEnEhiBCT0pBTkEKK1ZVxIxFVEnEhiBEQVJJTktBCitWVcSMRVRJxIYgREVTSU1JUgorVlXEjEVUScSGIERFVkEKK1ZVxIxFVEnEhiBESU1JVFJJSkUKK1ZVxIxFVEnEhiBEUkFHQU4KK1ZVxIxFVEnEhiBEVcWgQU4KK1ZVxIxFVEnEhiBMQVpBUgorVlXEjEVUScSGIExKSUxKQU5BCitWVcSMRVRJxIYgTUnEhkEKK1ZVxIxFVEnEhiBNSUxFTkEKK1ZVxIxFVEnEhiBNSUxFTkEKK1ZVxIxFVEnEhiBNSUxFTgorVlXEjEVUScSGIE1JTE9TQVYKK1ZVxIxFVEnEhiBOSUtPTEEKK1ZVxIxFVEnEhiBOSUtPTEEKK1ZVxIxFVEnEhiBOSU5LTworVlXEjEVUScSGIFBFVEFSCitWVcSMRVRJxIYgUEVUQVIKK1ZVxIxFVEnEhiBSQURFCitWVcSMRVRJxIYgUkFET0pLQQorVlXEjEVUScSGIFJBRE9KS08KK1ZVxIxFVEnEhiBSQUpLTworVlXEjEVUScSGIFNBTkpBCitWVcSMRVRJxIYgU0xPQk9EQU4KK1ZVxIxFVEnEhiBTTUlMSktBCitWVcSMRVRJxIYgU09GSUpBCitWVcSMRVRJxIYgU1RBTktPCitWVcSMRVRJxIYgU1RFVkFOCitWVcSMRVRJxIYgU1ZFVExBTkEKK1ZVxIxFVEnEhiBWQU5KQQorVlXEjEVUScSGIFZFTEpLTyBEUgorVlXEjEVUScSGIFZFUkEKK1ZVxIxFVEnEhiBWTEFESVNMQVYKK1ZVxIxFVEnEhiBaT1JBTgorVlXEjEVUScSGIFpPUkFOCitWVcSMRVRJTiDFvUlWQU4KK1ZVxIxFVElOIE1JTE9SQUQKK1ZVxIxFVElOIFBFVEFSCitWVcSMRVRJTiBTT0ZJSkEKK1ZVxIxFVElOIFRPRE9SCitWVcSMRVZBQyDFvUVMSU1JUgorVlXEjEVWScSGIEFMRUtTQU5EQVIKK1ZVxIxFVknEhiBCT8W9QU5BCitWVcSMRVZJxIYgVkFMRVJJSkEKK1ZVxIxJxIxFVknEhiBNSUxBTgorVlXEjEnEjEVWScSGIE5JS09MQQorVlXEjEnEhiDFvUFSS08KK1ZVxIxJxIYgxJBPUsSQRQorVlXEjEnEhiDEkFVSxJBJTktBCitWVcSMScSGIEJPR0RBTgorVlXEjEnEhiBCUkFOSVNMQVZBCitWVcSMScSGIERSQUdBTgorVlXEjEnEhiBEVcWgQU4KK1ZVxIxJxIYgRFXFoEFOCitWVcSMScSGIEpFTEVOQQorVlXEjEnEhiBKT1ZBTktBCitWVcSMScSGIEpPVkFOCitWVcSMScSGIEtBVElDQQorVlXEjEnEhiBNQVJHSVRBCitWVcSMScSGIE1JTEFOCitWVcSMScSGIE1JTEFOCitWVcSMScSGIE1JUk9TTEFWCitWVcSMScSGIE5FVkVOS0EKK1ZVxIxJxIYgTklLT0xBCitWVcSMScSGIFJBRE1JTEEKK1ZVxIxJxIYgU0xPQk9EQU4KK1ZVxIxJxIYgVE9ET1IKK1ZVxIxJxIYgVkVTRUxJTgorVlXEjEnEhkVWScSGIMSQT1LEkEUKK1ZVxIxJxIZFVknEhiBCT8W9SURBUgorVlXEjEnEhkVWScSGIERVxaBBTgorVlXEjEnEhkVWScSGIEdPUkRBTkEKK1ZVxIxJxIZFVknEhiBNSUxBTgorVlXEjEnEhkVWScSGIE1JTEFOCitWVcSMScSGRVZJxIYgTUlMRU5LTworVlXEjEnEhkVWScSGIE1JTElDQQorVlXEjEnEhkVWScSGIE1JT0RSQUcKK1ZVxIxJxIZFVknEhiBOQURFxb1EQQorVlXEjEnEhkVWScSGIFBFVEFSCitWVcSMScSGRVZJxIYgU0VMSU1JUgorVlXEjEnEhkVWScSGIFZVS09TQVYKK1ZVxIxJTknEhiBBTsSQRUxJSkEKK1ZVxIxJTknEhiBBTkRSSUpBCitWVcSMSU5JxIYgRFXFoEFOCitWVcSMSU5JxIYgR0FWUklMTworVlXEjElOScSGIEpBTkpBCitWVcSMSU5JxIYgSkFTTUlOS0EKK1ZVxIxJTknEhiBMSklMSkFOQSBEUgorVlXEjElOScSGIExKVUJPTUlSCitWVcSMSU5JxIYgTUFSSUpBCitWVcSMSU5JxIYgTUlMQU4KK1ZVxIxJTknEhiBNSUxBTgorVlXEjElOScSGIE1JTElTQVYKK1ZVxIxJTknEhiBNSUxVVElOCitWVcSMSU5JxIYgTUlPRFJBRworVlXEjElOScSGIE1MQURFTgorVlXEjElOScSGIE1MQURFTgorVlXEjElOScSGIFBFVEFSCitWVcSMSU5JxIYgUkFETUlMQQorVlXEjElOScSGIFJBRE1JTEEKK1ZVxIxJTknEhiBSQURNSUxBCitWVcSMSU5JxIYgUkFKS08KK1ZVxIxJTknEhiBWRVNOQQorVlXEjElOScSGIFZMQURJTUlSCitWVcSMSU5JxIYgVlVLTUFOCitWVcSMSU5JxIYgWkxBVElCT1IKK1ZVxIxJTk9WScSGIFJBRE1JTEEKK1ZVxIxLT1YgQk9KQU5BCitWVcSMS09WIEJSQU5JU0xBVgorVlXEjEtPViBNQVJFTEEKK1ZVxIxLT1YgTUlMT1ZBTgorVlXEjEtPVkFDIERSQUdBTgorVlXEjEtPVkFDIFJBREUKK1ZVxIxLT1ZBQyBUT01JU0xBVgorVlXEjEtPVknEhiDEjEFTTEFWCitWVcSMS09WScSGIMW9QVJLTworVlXEjEtPVknEhiDFvUlWS08KK1ZVxIxLT1ZJxIYgxJBPUsSQRQorVlXEjEtPVknEhiDEkE9SxJBFCitWVcSMS09WScSGIEFOxJBFTEtPCitWVcSMS09WScSGIEFOQQorVlXEjEtPVknEhiBCT0dEQU4KK1ZVxIxLT1ZJxIYgQlJBTklTTEFWCitWVcSMS09WScSGIEJSQU5LTworVlXEjEtPVknEhiBCUkFOS08KK1ZVxIxLT1ZJxIYgRE9CUklMQQorVlXEjEtPVknEhiBEUkFHQU4KK1ZVxIxLT1ZJxIYgRFJBR08KK1ZVxIxLT1ZJxIYgRFXFoEFOS0EKK1ZVxIxLT1ZJxIYgRFXFoEFOCitWVcSMS09WScSGIERVxaBBTgorVlXEjEtPVknEhiBEVcWgQU4KK1ZVxIxLT1ZJxIYgRFXFoEFOCitWVcSMS09WScSGIERVQlJBVktBCitWVcSMS09WScSGIEVNSU4KK1ZVxIxLT1ZJxIYgRVZJQ0EKK1ZVxIxLT1ZJxIYgR0VPUkdJSkUKK1ZVxIxLT1ZJxIYgSkFOS08KK1ZVxIxLT1ZJxIYgSkFOS08KK1ZVxIxLT1ZJxIYgSk9WQU4KK1ZVxIxLT1ZJxIYgSk9WQU4KK1ZVxIxLT1ZJxIYgSk9WQU4KK1ZVxIxLT1ZJxIYgSk9WQU4KK1ZVxIxLT1ZJxIYgTEpVQklDQQorVlXEjEtPVknEhiBMVUtBIERJUEwgT0VDCitWVcSMS09WScSGIE1BUkEKK1ZVxIxLT1ZJxIYgTUFSSUpBCitWVcSMS09WScSGIE1BUktPCitWVcSMS09WScSGIE1BUktPCitWVcSMS09WScSGIE1JSEFKTE8KK1ZVxIxLT1ZJxIYgTUlIQUpMTworVlXEjEtPVknEhiBNSUxBTgorVlXEjEtPVknEhiBNSUxBTgorVlXEjEtPVknEhiBNSUxFTkEKK1ZVxIxLT1ZJxIYgTUlMT8WgCitWVcSMS09WScSGIE1JTE/FoAorVlXEjEtPVknEhiBNSUxPxaAKK1ZVxIxLT1ZJxIYgTUlMT0pLQQorVlXEjEtPVknEhiBNSUxPUkFECitWVcSMS09WScSGIE1JT0RSQUcKK1ZVxIxLT1ZJxIYgTUlPRFJBRworVlXEjEtPVknEhiBNSVJLTworVlXEjEtPVknEhiBNSVJPU0xBVgorVlXEjEtPVknEhiBNT03EjElMTworVlXEjEtPVknEhiBOQURBIERSCitWVcSMS09WScSGIE5BREEKK1ZVxIxLT1ZJxIYgTkVERUxKS08KK1ZVxIxLT1ZJxIYgTklLT0xBIFZFVEVSSU5BUgorVlXEjEtPVknEhiBOT1ZJQ0EKK1ZVxIxLT1ZJxIYgUEFVTElOQQorVlXEjEtPVknEhi1QRVVSQcSMQSBMSklMSkFOQQorVlXEjEtPVknEhiBSQURJVk9KCitWVcSMS09WScSGIFJBRE9WQU4KK1ZVxIxLT1ZJxIYgU0FWRVRBCitWVcSMS09WScSGLVNJTUnEhiBWRVNOQQorVlXEjEtPVknEhiBTSU5JxaBBCitWVcSMS09WScSGIFNURVZBTgorVlXEjEtPVknEhiBTVE9KQU4gRFIgTEVLQVIKK1ZVxIxLT1ZJxIYgU1RPSkFOIERSCitWVcSMS09WScSGIFNWRVRMQU5BCitWVcSMS09WScSGIFRBSlNJSkEKK1ZVxIxLT1ZJxIYgVE9NTworVlXEjEtPVknEhiBWQVNBCitWVcSMS09WScSGIFZMQURJU0xBVgorVlXEjEtPVknEhiBWT0pJU0xBVgorVlXEjEtPVknEhiBWVUtJQ0EKK1ZVxIxLT1ZJxIYgVlVLT1NBVkEKK1ZVxIxVUkVWScSGIMSMRURPCitWVcSMVVJFVknEhiDEkE9SxJBFCitWVcSMVVJFVknEhiBBTsSQRUxJSkEKK1ZVxIxVUkVWScSGIEJJTEpBTkEKK1ZVxIxVUkVWScSGIEJMQcW9TworVlXEjFVSRVZJxIYgQk/FoEtPCitWVcSMVVJFVknEhiBCUkFOSVNMQVYKK1ZVxIxVUkVWScSGIERBUklOS0EKK1ZVxIxVUkVWScSGIERSQUdPTUlSCitWVcSMVVJFVknEhiBEVcWgQU4KK1ZVxIxVUkVWScSGIEdPUkRBTkEKK1ZVxIxVUkVWScSGIEpFTEVOQQorVlXEjFVSRVZJxIYgTUHFoEEKK1ZVxIxVUkVWScSGIE1JTE/FoAorVlXEjFVSRVZJxIYgTUlSS08KK1ZVxIxVUkVWScSGIE1MQURFTgorVlXEjFVSRVZJxIYgTkFEQQorVlXEjFVSRVZJxIYgTklLT0xBCitWVcSMVVJFVknEhiBQRVRBUgorVlXEjFVSRVZJxIYgVEVSRVpJSkEKK1ZVxIxVUkVWScSGIFVST8WgCitWVcSMVVJFVknEhiBWRVNOQQorVlXEjFVSRVZJxIYgVkxBRElTTEFWQQorVlXEjFVSRVZJxIYgVkxBRE8KK1ZVxIxVUkVWScSGIFZPSklTTEFWCitWVcSMVVJFVknEhiBWT0pPCitWVcSMVVJPVknEhiBKQVNOQQorVlXEjFVST1ZJxIYgSk9WQU4KK1ZVxIxVUk9WScSGIE1JUktPCitWVcSMVVJPVknEhiBNSVJPU0xBVgorVlXEjFVST1ZJxIYgTUxBREVOCitWVcSMVVJPVknEhiBQUkVEUkFHCitWVcSMVVJPVknEhiBTTE9CT0RBTiBEUgorVlXFoFRBUiBCT0dEQU4KK1ZVQ0VMScSGIFNMT0JPREFOIERJUEwgSU5HCitWVUNFTEpBIERSQUdBTgorVlVDRUxKQSBNSUxPxaAKK1ZVQ0VMSkEtUEVUUk9OSUpFVknEhiBWRVJBCitWVUNFTEpBIFRSSVZVTgorVlVDRUxKQSBWT0pJTgorVlVEUkFHIFNBVk8KK1ZVRFJBRyBaT1JBTgorVlVEUkFHIFpPUkFOCitWVURSQUtPVknEhiBSQVRLTworVlVHREVMScSGIERPQlJJVk9KCitWVUdERUxJxIYgVlVLCitWVUdMRUMgRURJVEEKK1ZVR1JFTknEjEVLIMSQVVJBCitWVUdSRU5JxIxFSyBNQUdEQQorVlVHUklOIFNURVZBTgorVlVHUklOxIxJxIYgQU5LQQorVlVHUklOxIxJxIYgRlJBTkpPCitWVUdSSU7EjEnEhiBKQVJPU0xBVgorVlVHUklORUMgUlVET0xGCitWVUnEhiBKT1NJUAorVlVKxIxJxIYgRFJBR0FOCitWVUrEjEnEhiBNSUxFCitWVUrEjEnEhiBQRVRBUgorVlVKxIxJxIYgUEVUUklKQQorVlVKxIxJTiBKT1ZBTgorVlVKxIxJTiBNSUxBTgorVlVKxIxJTiBNSVRBCitWVUpBxIxJxIYgRFJBR1VUSU4KK1ZVSkHEjEnEhiBEVUJSQVZLQQorVlVKQcSMScSGIE1JTElTQVYKK1ZVSkHEjEnEhiBNSUxPUkFECitWVUpBxIxJxIYgTUlMT1JBRAorVlVKQcSMScSGIE5JS09MQQorVlVKQcSMScSGIFJBRE9TQVYKK1ZVSkHEjEnEhiBSQUpLTworVlVKQcWgS09WScSGIFNMQVZLTworVlVKQcWgS09WScSGIFZMQURJTUlSCitWVUpBxaBLT1ZJxIYgVkxBRElTTEFWCitWVUpBxaBLT1ZJxIYgWk9SQQorVlVKQUNLT1YgxJBPUsSQRQorVlVKQUNLT1YgQUxFS1NBTkRBUgorVlVKQUNLT1YgSk9WQU4KK1ZVSkFESU5PViBET0JSSVZPSkUgRElQTCBJTkcKK1ZVSkFESU5PVknEhiBCTEFHT0pFCitWVUpBRElOT1ZJxIYgQlJBTklTTEFWQQorVlVKQURJTk9WScSGIExKVUJJQ0EKK1ZVSkFESU5PVknEhiBNSUxBTgorVlVKQURJTk9WScSGIE1JTElWT0pFCitWVUpBRElOT1ZJxIYgTUlMSVZPSgorVlVKQURJTk9WScSGIE1JTElWT0oKK1ZVSkFESU5PVknEhiBSQURPxaAKK1ZVSkFESU5PVknEhiBSQUpLTworVlVKQURJTk9WScSGIFNMQVZJQ0EKK1ZVSkFESU5PVknEhiBTVkVUT1pBUgorVlVKQURJTk9WScSGIFRPTUlTTEFWCitWVUpBRElOT1ZJxIYgVkVSQQorVlVKQURJTk9WScSGIFZJxaBOSkEKK1ZVSkFESU5PVknEhiBWSVRPCitWVUpBRElOT1ZJxIYgVk9KSVNMQVYKK1ZVSkFLTElKQSBERVNBCitWVUpBS0xJSkEgU1RBTktPCitWVUpBS09WScSGIMSQVVJBxJAKK1ZVSkFLT1ZJxIYgRFJBR1VUSU4KK1ZVSkFLT1ZJxIYgS1JTVEFOCitWVUpBS09WScSGIFNMT0JPREFOCitWVUpBS09WScSGIFZBU08KK1ZVSkFLT1ZJxIYgVlVKTworVlVKQU5JxIYgxb1JVk9TQVYKK1ZVSkFOScSGIMW9SVZPU0xBVgorVlVKQU5JxIYgQk9SSVZPSgorVlVKQU5JxIYgQlJBTktPCitWVUpBTknEhiBHT1JEQU5BCitWVUpBTknEhiBKT1JEQU4KK1ZVSkFOScSGIEtPUk5FTElKQQorVlVKQU5JxIYgTUlMQU4KK1ZVSkFOScSGIE1JTEUKK1ZVSkFOScSGIE1JTE9WQU4KK1ZVSkFOScSGIE5FREVMSktBCitWVUpBTknEhiBQRVRBUgorVlVKQU5JxIYtVkFSR0EgRElOS0EgRFIKK1ZVSkFOT1YgQUxFS1NBTkRBUgorVlVKQU5PViBNSUxBTktBCitWVUpBTk9WIE5JS09MQQorVlVKQU5PVknEhiDFvUFSS08KK1ZVSkFOT1ZJxIYgQUxFS1NBTkRBUgorVlVKQU5PVknEhiBCT8WgS08KK1ZVSkFOT1ZJxIYgQk/FvUlEQVIgRFIKK1ZVSkFOT1ZJxIYgQk/FvUlEQVIKK1ZVSkFOT1ZJxIYgQk9SSVNMQVYKK1ZVSkFOT1ZJxIYgQlJBTktPCitWVUpBTk9WScSGIERFU0lNSVIKK1ZVSkFOT1ZJxIYgRElNSVRSSUpFCitWVUpBTk9WScSGIERJTUlUUklKRQorVlVKQU5PVknEhiBEUkFHSUNBCitWVUpBTk9WScSGIEpPVkFOS0EKK1ZVSkFOT1ZJxIYgSk9WTworVlVKQU5PVknEhiBNSUpPCitWVUpBTk9WScSGIE1JTEFOCitWVUpBTk9WScSGIE1JTEUKK1ZVSkFOT1ZJxIYgTUlMSU5LQQorVlVKQU5PVknEhiBNSUxPUkFECitWVUpBTk9WScSGIE1JUktPCitWVUpBTk9WScSGIE1MQURFTgorVlVKQU5PVknEhiBTSU1PCitWVUpBTk9WScSGIFNMQVZPTEpVQgorVlVKQU5PVknEhiBTVEFOQQorVlVKQU5PVknEhiBTVE9KQU4KK1ZVSkFOT1ZJxIYgVklUT01JUgorVlVKQVNJTiBTVFJBSUxPCitWVUpBU0lOT1ZJxIYgxIxFRE9NSVIKK1ZVSkFTSU5PVknEhiBKRUxJQ0EKK1ZVSkFTSU5PVknEhiBMSlVCT01JUgorVlVKQVNJTk9WScSGIE1BUktPCitWVUpBU0lOT1ZJxIYgTUlMQU4KK1ZVSkFTSU5PVknEhiBNSVJPU0xBVgorVlVKQVNJTk9WScSGIFJBRE1JTEEKK1ZVSkFUT1ZJxIYgTUlMRU5LTworVlVKQVRPVknEhiBNSVJKQU5BCitWVUpBVE9WScSGIFRFT0RPUgorVlVKRVZJxIYgUlXFvUEKK1ZVSknEjEnEhiDEkE9SxJBFCitWVUpJxIxJxIYgQklTRVJLQQorVlVKScSMScSGIEJPxb1JREFSCitWVUpJxIxJxIYgQ1ZFVEEKK1ZVSknEjEnEhiBEQU5JTE8gRFIKK1ZVSknEjEnEhiBET0JSSUxBCitWVUpJxIxJxIYgRFJBR0FOCitWVUpJxIxJxIYgRFXFoEFOCitWVUpJxIxJxIYgR09KS08KK1ZVSknEjEnEhiBJR05KQVQKK1ZVSknEjEnEhiBJTElKQQorVlVKScSMScSGIElWSUNBIERSIFBST0YKK1ZVSknEjEnEhiBNQVJLTworVlVKScSMScSGIE1JSEFKTE8KK1ZVSknEjEnEhiBNSUxFTktPCitWVUpJxIxJxIYgTUlMT8WgCitWVUpJxIxJxIYgTUlMT8WgCitWVUpJxIxJxIYgUEVUQVIKK1ZVSknEjEnEhiBQRVRSQQorVlVKScSMScSGIFJBRE9TTEFWCitWVUpJxIxJxIYgUkFOS08KK1ZVSknEjEnEhiBSQVRLTworVlVKScSMScSGIFJBVEtPCitWVUpJxIxJxIYgU0lNTworVlVKScSMScSGIFNMT0JPREFOCitWVUpJxIxJxIYgU1LEkEFOCitWVUpJxIxJxIYgU1RBTktPCitWVUpJxIxJxIYgU1RFVkFOCitWVUpJxIxJxIYgU1RPSkFOIERJUEwgSU5HCitWVUpJxIxJxIYgU1ZFVEtPCitWVUpJxIxJxIYgVE9NSVNMQVYKK1ZVSknEjEnEhiBWQVNJTElKRQorVlVKScSMScSGIFZFUkEKK1ZVSknEjEnEhiBWRVJJQ0EKK1ZVSknEjEnEhiBWTEFESU1JUgorVlVKScSMScSGIFZPSklOCitWVUpJxIxJTiDFvUFSS08KK1ZVSknEjElOIMSQT1LEkEUKK1ZVSknEjElOIMSQVVLEkElDQQorVlVKScSMSU4gTEpVQklDQQorVlVKScSMSU4gUEVUQVIKK1ZVSknEhiDFvUFSS08KK1ZVSknEhiDFvUlWS08KK1ZVSknEhiDEkE9SxJBFCitWVUpJxIYgxJBPUsSQRQorVlVKScSGIMSQVVLEkElKQQorVlVKScSGIMSQVVJBCitWVUpJxIYgxJBVUkEKK1ZVSknEhiBBTEVLU0FOREFSCitWVUpJxIYgQUxFS1NBTkRBUgorVlVKScSGIEFOxJBFTElKQQorVlVKScSGIEFOVEUKK1ZVSknEhiBBTlRFCitWVUpJxIYgQk9SSVNMQVYKK1ZVSknEhiBCUkFOSVNMQVYKK1ZVSknEhiBCUkFOSVNMQVYKK1ZVSknEhiBCUkFOS0EKK1ZVSknEhiBEUkFHQQorVlVKScSGIERSQUdBCitWVUpJxIYgRFJBR0lOSkEKK1ZVSknEhiBEUkFHT1NMQVZBCitWVUpJxIYgRFJBR09TTEFWCitWVUpJxIYgRFXFoEFOCitWVUpJxIYgSVZBTiBEUgorVlVKScSGIElWQU4gRFIKK1ZVSknEhiBJVkFOS0EKK1ZVSknEhiBKQUtPQiBEUiBMRUtBUgorVlVKScSGIEpPVkFOCitWVUpJxIYgSk9WQU4KK1ZVSknEhiBKT1ZPCitWVUpJxIYgS0FUQVJJTkEKK1ZVSknEhi1LT1NPIFZFU05BCitWVUpJxIYgTEFaQVIKK1ZVSknEhiBMSlVCQU4KK1ZVSknEhiBMSlVCSUNBCitWVUpJxIYgTUFSSUpBIFBST0ZFU09SCitWVUpJxIYgTUlMQU4KK1ZVSknEhiBNSUxFVkEKK1ZVSknEhiBNSUxFVkEKK1ZVSknEhiBNSUxFVktBCitWVUpJxIYgTUlMSUNBCitWVUpJxIYgTUlMT8WgIERSCitWVUpJxIYgTUlMT8WgCitWVUpJxIYgTUlMT8WgCitWVUpJxIYgTUlMT8WgCitWVUpJxIYgTUlSQQorVlVKScSGIE1JUk9TTEFWIERJUEwgSU5HCitWVUpJxIYgTU9NSVIKK1ZVSknEhiBOQURBCitWVUpJxIYgTkFEQQorVlVKScSGIFBBVkxFIERSCitWVUpJxIYgUFJFRFJBRworVlVKScSGIFJBRElWT0oKK1ZVSknEhiBSQURPU0xBVgorVlVKScSGIFJBVEtBCitWVUpJxIYgU0FWTworVlVKScSGIFNBVk8KK1ZVSknEhiBTTEFWS0EKK1ZVSknEhiBTT0ZJSkEKK1ZVSknEhiBTVEFOS08KK1ZVSknEhiBTVEFOS08KK1ZVSknEhiBTVEVWQU4KK1ZVSknEhiBTVEVWQU4KK1ZVSknEhiBTVEVWQU4KK1ZVSknEhiBWRVJBCitWVUpJxIYgVkVTTkEKK1ZVSknEhiBWTEFESU1JUgorVlVKScSGIFZMQURJTUlSCitWVUpJxIYgVk9KSVNMQVZBCitWVUpJxIYgWk9SQU4KK1ZVSklOIMSQT0tBCitWVUpJTiDEkFVSSUNBCitWVUpJTiBBTEVLU0FOREFSCitWVUpJTiBEQU5JQ0EKK1ZVSklOIERBVklECitWVUpJTiBKRVZSRU0KK1ZVSklOIEpPVkFOS0EKK1ZVSklOIExBWkFSCitWVUpJTiBNQVJBCitWVUpJTiBNRUxBTklKQQorVlVKSU4gTUlSSkFOQQorVlVKSU4gUkFESVZPSgorVlVKSU4gUkFET1ZBTgorVlVKSU4gU0xBVktPCitWVUpJTiBTTE9CT0RBTgorVlVKSU4gU1ZFVE9aQVIKK1ZVSklOIFZVSkFESU4KK1ZVSklOT1ZJxIYgxb1JVktBCitWVUpJTk9WScSGIMSQVVJBCitWVUpJTk9WScSGIMSQVVJPCitWVUpJTk9WScSGIEJPUklTTEFWCitWVUpJTk9WScSGIEJSQU5JTUlSCitWVUpJTk9WScSGIEdOSkFUSUpBCitWVUpJTk9WScSGIEpPVk8KK1ZVSklOT1ZJxIYgTEpVQk9NSVIKK1ZVSklOT1ZJxIYgTUlMT8WgCitWVUpJTk9WScSGIE1MQURJTktPCitWVUpJTk9WScSGIE5BREEKK1ZVSklOT1ZJxIYgU1JFVEVOCitWVUpJTk9WScSGIFNUT0pBTgorVlVKSU5PVknEhiBURU9ET1NJSkUKK1ZVSklOT1ZJxIYgVkVSQQorVlVKSU5PVknEhiBWSURPSkUKK1ZVSktPIFNBVkEKK1ZVSktPViDEjEVET01JUgorVlVKS09WIMSQT1LEkEUKK1ZVSktPViBBTEVLU0FOREFSCitWVUpLT1YgQU5USU5JSkEKK1ZVSktPViBCT8W9SURBUgorVlVKS09WIEJPxb1JREFSCitWVUpLT1YgRFJBR0lDQQorVlVKS09WIERSQUdJTkpBCitWVUpLT1YgRFJBR09MSlVCCitWVUpLT1YgRFXFoEFOCitWVUpLT1YgRFXFoEFOCitWVUpLT1YtSVNBS09WIEpBR0lDQQorVlVKS09WIEpFTEVOQQorVlVKS09WIExBWkFSCitWVUpLT1YgTEFaQVIKK1ZVSktPViBNSUxBTiBESVBMIElORworVlVKS09WIE1JTEFOQQorVlVKS09WIE1JTEFOQQorVlVKS09WIE1JTEFOCitWVUpLT1YgTUlMQU4KK1ZVSktPViBNSUxFTkEKK1ZVSktPViBNSUxJQ0EKK1ZVSktPViBNSUxJQ0EKK1ZVSktPViBNSUxJVk9KCitWVUpLT1YgTUlSSkFOQQorVlVKS09WIE1JUk9TTEFWIERJUEwgSU5HCitWVUpLT1YgTUlST1NMQVYKK1ZVSktPViBOQURBCitWVUpLT1YgTkVOQUQKK1ZVSktPViBPTEdBCitWVUpLT1YgUEFWTEUKK1ZVSktPViBQRVJBCitWVUpLT1YgUEVUQVIgRElQTCBQUkFWTklLCitWVUpLT1YgUkFESVZPSgorVlVKS09WIFJBRE9TTEFWCitWVUpLT1YgU0FWQQorVlVKS09WIFNBVkEKK1ZVSktPViBTRU5LQQorVlVKS09WIFNJTUEKK1ZVSktPViBTTEFWS08KK1ZVSktPViBTTE9CT0RBTgorVlVKS09WIFNORcW9QU5BCitWVUpLT1YgU05Fxb1BTkEKK1ZVSktPViBTVEVWQU4KK1ZVSktPViBTVkVUT1pBUgorVlVKS09WIFRBTUFSQQorVlVKS09WIFRPTUlTTEFWCitWVUpLT1YgVkFTQSBEUgorVlVKS09WIFZFU0VMSU4gRFIgUFJPRgorVlVKS09WIFZMQURJTUlSCitWVUpLT1YgWkRSQVZLTworVlVKS09WIFpEUkFWS08KK1ZVSktPVknEhiDEkFVSQQorVlVKS09WScSGIERSQUdBTgorVlVKS09WScSGIEdPUkRBTkEKK1ZVSktPVknEhiBHT1NQQVZBCitWVUpLT1ZJxIYgTUlSQQorVlVKS09WScSGIE5JS09MQQorVlVKS09WScSGIFJVxb1BCitWVUpLT1ZJxIYgU0xPQk9EQU4KK1ZVSktPVknEhiBTVEVWQU4KK1ZVSk5PVknEhiBBTktBCitWVUpOT1ZJxIYgQk9TSUxKS0EKK1ZVSk5PVknEhiBEUkFHQU4KK1ZVSk5PVknEhiBHT0pLTworVlVKTk9WScSGIEdPSktPCitWVUpOT1ZJxIYgSUxJSkEKK1ZVSk5PVknEhi1NSUhBSkxPVknEhiBERVNBTktBCitWVUpOT1ZJxIYgTUlMQU4KK1ZVSk5PVknEhiBNSUxBTgorVlVKTk9WScSGIFZFTEpLTworVlVKTk9WScSGIFZFUkEKK1ZVSk5PVknEhiBaT1JBCitWVUpPxaBFVknEhiBCT1JJU0xBVgorVlVKT8WgRVZJxIYgQlJBTktPIERJUEwgT0VDCitWVUpPxaBFVknEhiBET0JSSVNMQVYKK1ZVSk/FoEVWScSGIERVxaBBTgorVlVKT8WgRVZJxIYgS0xBUkEKK1ZVSk/FoEVWScSGIExKVUJPTUlSCitWVUpPxaBFVknEhiBNSUxBTgorVlVKT8WgRVZJxIYgTklLT0xBCitWVUpPxaBFVknEhiBSQVRLTworVlVKT8WgRVZJxIYgWk9SQQorVlVKT1ZJxIYgxJBPUsSQRQorVlVKT1ZJxIYgQUxFS1NBTkRBUgorVlVKT1ZJxIYgQkxBxb1PCitWVUpPVknEhiBCTEFHT0pFCitWVUpPVknEhiBCT8W9SURBUgorVlVKT1ZJxIYgREFOSUNBCitWVUpPVknEhiBEQVJJTktBCitWVUpPVknEhiBEUkFHT0xKVUIKK1ZVSk9WScSGIERVxaBBTgorVlVKT1ZJxIYgTUFSVEEKK1ZVSk9WScSGIE1JSEFJTE8KK1ZVSk9WScSGIE1JTE9NSVIKK1ZVSk9WScSGIE1JTE9SQUQKK1ZVSk9WScSGIE1JTE9SQUQKK1ZVSk9WScSGIE1JTE9SQUQKK1ZVSk9WScSGIE1JTE9WQU4KK1ZVSk9WScSGIE1JT0RSQUcKK1ZVSk9WScSGIE1JT01JUgorVlVKT1ZJxIYgTUlSSkFOQQorVlVKT1ZJxIYgTkXEkEVMSktPCitWVUpPVknEhiBORcSQTworVlVKT1ZJxIYgTk9WSUNBCitWVUpPVknEhiBPTEdBCitWVUpPVknEhiBQQVZMRQorVlVKT1ZJxIYgUEFWTEUKK1ZVSk9WScSGIFBFVEtPCitWVUpPVknEhiBSQURJVk9KRQorVlVKT1ZJxIYgUkFESVZPSgorVlVKT1ZJxIYgUkFET0pFCitWVUpPVknEhiBSQVRLTworVlVKT1ZJxIYgU0xPQk9EQU4KK1ZVSk9WScSGIFNMT0JPREFOCitWVUpPVknEhiBTVEVWQU4KK1ZVSk9WScSGIFNWRVRJU0xBVgorVlVKT1ZJxIYgVkFTSUxJSkUKK1ZVSk9WScSGIFZBU0lMSUpFCitWVUpPVknEhiBWQVNJTElKRQorVlVKT1ZJxIYgVkVMSktPCitWVUpPVknEhiBWRVNFTElOCitWVUpPVknEhiBWTEFETworVlVKT1ZJxIYgVkxBSktPCitWVUpPVknEhiBWTEFUS08KK1ZVSk9WScSGIFZPSklTTEFWCitWVUpPVknEhiBWT0pJU0xBVgorVlVKT1ZJxIYgVk9KSVNMQVYKK1ZVSk9WScSGIFZVS0lDQQorVlVKT1ZJxIYgWk9SQU4KK1ZVS8SMRVZJxIYgRFXFoEFOCitWVUvEjEVWScSGIEdPUkRBTkEKK1ZVS8SMRVZJxIYgSk9WQU4KK1ZVS8SMRVZJxIYgS1JTVE8KK1ZVS8SMRVZJxIYgTEpVQk9NSVIKK1ZVS8SMRVZJxIYgTEpVQk9NSVIKK1ZVS8SMRVZJxIYgTUlMRU5LTworVlVLxIxFVknEhiBNSUxFTktPCitWVUvEjEVWScSGIFBFVEFSCitWVUvEjEVWScSGIFNBVk8KK1ZVS8SMRVZJxIYgU09GSUpBCitWVUvEjEVWScSGIFNURVZBTgorVlVLxIxFVknEhiBaT1JBTgorVlVLxaBBIMSMRURPCitWVUvFoEEgxb1FTEpLTworVlVLxaBBIEJPUklWT0pFCitWVUvFoEEgTEFaQVIKK1ZVS8WgQSBNSUxFTktPCitWVUvFoEEgTUlMVVRJTgorVlVLxaBBIFBFVEFSCitWVUvFoEEgVkpFUkEKK1ZVS0HFoEVWScSGIE1JTE8KK1ZVS0HFoEVWScSGIFNMT0JPREFOCitWVUtBxaBJTiBKT1ZBTgorVlVLQcWgSU5PViBCUkFOSU1JUgorVlVLQcWgSU5PViBDVkVUS08KK1ZVS0HFoElOT1YgU1RFVkFOCitWVUtBxaBJTk9WScSGIMW9QVJLTworVlVLQcWgSU5PVknEhiDFvUlWQU4KK1ZVS0HFoElOT1ZJxIYgxJBPUsSQRQorVlVLQcWgSU5PVknEhiBCT8W9SURBUgorVlVLQcWgSU5PVknEhiBCT0pBTgorVlVLQcWgSU5PVknEhiBEUkFHQU4KK1ZVS0HFoElOT1ZJxIYgRFJBR0lOSkEKK1ZVS0HFoElOT1ZJxIYgRFJBR09MSlVCCitWVUtBxaBJTk9WScSGIElSRU5BCitWVUtBxaBJTk9WScSGIElSRU5BCitWVUtBxaBJTk9WScSGIExBWkFSCitWVUtBxaBJTk9WScSGIExBWkFSCitWVUtBxaBJTk9WScSGIE1JTEFOCitWVUtBxaBJTk9WScSGIE1JTEUKK1ZVS0HFoElOT1ZJxIYgTUlMSUNBCitWVUtBxaBJTk9WScSGIE1JUkEKK1ZVS0HFoElOT1ZJxIYgTUlSSkFOQQorVlVLQcWgSU5PVknEhiBNSVJPU0xBVgorVlVLQcWgSU5PVknEhiBNT01JUgorVlVLQcWgSU5PVknEhiBOSUtPTEEKK1ZVS0HFoElOT1ZJxIYgUEFWTEUKK1ZVS0HFoElOT1ZJxIYgUkFET0pFCitWVUtBxaBJTk9WScSGIFNQT01FTktBCitWVUtBxaBJTk9WScSGIFNUT0pBTgorVlVLQcWgSU5PVknEhiBWRVJBCitWVUtBxaBJTk9WScSGIFZFUklDQQorVlVLQcWgSU5PVknEhiBWRVNFTElOCitWVUtBxaBJTk9WScSGIFZJREEKK1ZVS0HFoElOT1ZJxIYgWkRSQVZLTworVlVLQURJTiBET0JSSVZPSkUKK1ZVS0FESU4gVE9NSVNMQVYKK1ZVS0FESU5PViDEkE9SxJBFCitWVUtBRElOT1YgxJBVUkEKK1ZVS0FESU5PViBCT0pLQQorVlVLQURJTk9WIEJSQU5JU0xBVgorVlVLQURJTk9WIElTSURPUgorVlVLQURJTk9WIElWQU5LQQorVlVLQURJTk9WIElWQU5LQQorVlVLQURJTk9WIEpPVkFOCitWVUtBRElOT1YgS0FUSUNBCitWVUtBRElOT1YgTUlMRU5LTworVlVLQURJTk9WIE1JT0RSQUcKK1ZVS0FESU5PViBORU5BRAorVlVLQURJTk9WScSGIEFOxJBFTEtPCitWVUtBRElOT1ZJxIYgQklMSkFOQQorVlVLQURJTk9WScSGIEJPU0lMSktBCitWVUtBRElOT1ZJxIYgQlJBTklTTEFWCitWVUtBRElOT1ZJxIYgQlJBTklTTEFWCitWVUtBRElOT1ZJxIYgQlJBTklTTEFWCitWVUtBRElOT1ZJxIYgQlJBTktPCitWVUtBRElOT1ZJxIYgR0FCUklKRUxBIFBST0ZFU09SCitWVUtBRElOT1ZJxIYgSkVMSUNBCitWVUtBRElOT1ZJxIYgTEVQT1NBVkEKK1ZVS0FESU5PVknEhiBMSlVCTworVlVLQURJTk9WScSGIE1JTEVOS08KK1ZVS0FESU5PVknEhiBNSUxJVk9KRQorVlVLQURJTk9WScSGIE1JTEpPSktPCitWVUtBRElOT1ZJxIYgTUlMT8WgCitWVUtBRElOT1ZJxIYgTUlMT0pFCitWVUtBRElOT1ZJxIYgTUlMT1JBRAorVlVLQURJTk9WScSGIE5JS09MQQorVlVLQURJTk9WScSGIFBBVkxFIERSCitWVUtBRElOT1ZJxIYgUEVUQVIKK1ZVS0FESU5PVknEhiBQRVRBUgorVlVLQURJTk9WScSGIFNPRklKQSBMT0tBTAorVlVLQURJTk9WScSGIFNPRklKQQorVlVLQURJTk9WScSGIFNUQU5BCitWVUtBRElOT1ZJxIYgU1RFVkFOIERSCitWVUtBRElOT1ZJxIYgU1ZFVE9aQVIKK1ZVS0FESU5PVknEhiBTVkVUT1pBUgorVlVLQURJTk9WScSGIFRBVEpBTkEKK1ZVS0FESU5PVknEhiBWRUxJWkFSCitWVUtBRElOT1ZJxIYgVkxBRElTQVYKK1ZVS0FESU5PVknEhiBaT0xJS0EKK1ZVS0FESU5PVknEhiBaT0xJS0EKK1ZVS0FKTE9WIEJVRElNSVIKK1ZVS0FKTE9WIE1JUk9TTEFWCitWVUtBSkxPVknEhiDFvUlWQU4gUFJPRkVTT1IKK1ZVS0FKTE9WScSGIMSQT1LEkEUKK1ZVS0FKTE9WScSGIEFOS0lDQQorVlVLQUpMT1ZJxIYgREFOSUxPCitWVUtBSkxPVknEhiBEQVJJTktBCitWVUtBSkxPVknEhiBEVcWgQU4KK1ZVS0FKTE9WScSGIEVMSVpBQkVUQQorVlVLQUpMT1ZJxIYgTEFaQVIKK1ZVS0FKTE9WScSGIE1JTEVOQQorVlVLQUpMT1ZJxIYgTUlSSkFOQQorVlVLQUpMT1ZJxIYgU1JFVE8KK1ZVS0FKTE9WScSGIFNURVZBTgorVlVLQUxJxIYgTVVNSU4KK1ZVS0FMSkVWScSGIElMSUpBCitWVUtBTEpFVknEhiBTTEFWS08KK1ZVS0FMT1ZJxIYgU1ZFVExBTkEKK1ZVS0FOScSGIEFMRUtTQU5EQVIKK1ZVS0FOScSGIFBFVEFSCitWVUtBTknEhiBTUkVURU4KK1ZVS0FOScSGIFpPUkFOCitWVUtBTknEhiBaT1JBTgorVlVLQU5PVknEhiDFvUlWS0EKK1ZVS0FOT1ZJxIYgQU5JQ0EKK1ZVS0FOT1ZJxIYgTUFSSU5BCitWVUtBTk9WScSGIE1JUk9TTEFWCitWVUtBTk9WScSGIE5FQk9KxaBBCitWVUtBTk9WScSGIFJBRElWT0oKK1ZVS0FOT1ZJxIYgU0xBVklNSVIKK1ZVS0FOT1ZJxIYgU0xPQk9EQU4KK1ZVS0FOT1ZJxIYgU0xPQk9EQU4KK1ZVS0FTIMSQT1LEkEUKK1ZVS0FTIMSQVVJPCitWVUtBUyBBTktJQ0EKK1ZVS0FTIEJSQU5LTworVlVLQVMgT01FUktBCitWVUtBU09WScSGIEJSQU5JU0xBVgorVlVLQVNPVknEhiBNQVJJSkEKK1ZVS0FTT1ZJxIYgTUlMQU4KK1ZVS0FTT1ZJxIYgU0xBVklDQQorVlVLQVZJxIYgQUxFS1NBTkRSQQorVlVLRUxJxIYgQU7EkEVMS0EKK1ZVS0VMScSGIEJPUklTTEFWCitWVUtFTEnEhiBCUkFOS08KK1ZVS0VMScSGIEJSQU5LTworVlVLRUxJxIYgREFSQQorVlVLRUxJxIYgRFJBR0FOCitWVUtFTEnEhiBKT1ZBTgorVlVLRUxJxIYgTEpVQk9NSVIKK1ZVS0VMScSGIE1JTEFOCitWVUtFTEnEhiBNSUxFCitWVUtFTEnEhiBNSUxJQ0EKK1ZVS0VMScSGIE1JT0RSQUcKK1ZVS0VMScSGIE1PTUlSCitWVUtFTEnEhiBQQVZMRQorVlVLRUxJxIYgUEVUQVIKK1ZVS0VMScSGIFBFVEFSCitWVUtFTEnEhiBSQURBCitWVUtFTEnEhiBSQURFCitWVUtFTEnEhiBTSUxWSUpFCitWVUtFTEnEhiBTSU1PCitWVUtFTEnEhiBTTEFWS08KK1ZVS0VMScSGIFNURVZBTgorVlVLRUxJxIYgU1RFVkFOCitWVUtFTEnEhiBUT01JU0xBVgorVlVLRUxJxIYgVkVMSktPCitWVUtFTEnEhiBWRVJJQ0EKK1ZVS0VMScSGIFZFU05BCitWVUtFTEnEhiBWVUtJQ0EKK1ZVS0VMScSGIFpEUkFWS08gRFIKK1ZVS0VMScSGIFpPUklDQQorVlVLRUxJxIYgWlZPTklNSVIKK1ZVS0VMSkEgQlJBTktBCitWVUtJxIxFVknEhiBEUkFHT01JUgorVlVLScSMRVZJxIYgTEpJTEpBTkEKK1ZVS0nEjEVWScSGIE1JTEFOCitWVUtJxIxFVknEhiBNSUxBTgorVlVLScSMRVZJxIYgTUlMQU4KK1ZVS0nEjEVWScSGIE1JVEFSIERJUEwgUFJBVk5JSworVlVLScSMRVZJxIYgUkFOS08KK1ZVS0nEjEVWScSGIFNQQVNPSkUKK1ZVS0nEjEVWScSGIFZFU05BCitWVUtJxIYtxIZVTEFGScSGIEJSQU5LQQorVlVLScSGIMW9SVZLTworVlVLScSGIEFORFJFSgorVlVLScSGIEJPxb1JREFSCitWVUtJxIYgQk9SSVNMQVYKK1ZVS0nEhiBCUkFOS08KK1ZVS0nEhiBCUkFOS08KK1ZVS0nEhiBCVURJTUlSCitWVUtJxIYgREVKQU4KK1ZVS0nEhiBESU1JVFJJSkUKK1ZVS0nEhiBEVcWgQU4KK1ZVS0nEhiBJVkFOS0EKK1ZVS0nEhiBKT1ZBTgorVlVLScSGIExKVUJJQ0EKK1ZVS0nEhiBMSlVCT01JUgorVlVLScSGIE1BUklKQQorVlVLScSGIE1JTEFOCitWVUtJxIYgTUlMSUNBCitWVUtJxIYgTUlSSkFOQQorVlVLScSGIE1JUktPCitWVUtJxIYgTU9NxIxJTE8KK1ZVS0nEhiBOSUtPTEEKK1ZVS0nEhiBOSUtPTEEKK1ZVS0nEhiBOT1ZBSworVlVLScSGIFBFVEFSCitWVUtJxIYgU1RBTktPCitWVUtJxIYgU1RFVkFOCitWVUtJxIYgVkVMSU1JUgorVlVLScSGIFZMQURPCitWVUtJxIYgVlVLQcWgSU4KK1ZVS0nEhkVWScSGIMSQT1LEkEUKK1ZVS0nEhkVWScSGIMSQT1LEkEUKK1ZVS0nEhkVWScSGIEFMRUtTQU5EQVIKK1ZVS0nEhkVWScSGIEJSQVRJU0xBVgorVlVLScSGRVZJxIYgRFJBR0lDQQorVlVLScSGRVZJxIYgRFXFoEFOS0EKK1ZVS0nEhkVWScSGIElTSURPUgorVlVLScSGRVZJxIYgSVNJRE9SCitWVUtJxIZFVknEhiBNSU9NSVIKK1ZVS0nEhkVWScSGIE1JUk9TTEFWCitWVUtJxIZFVknEhiBNSVJPU0xBVgorVlVLScSGRVZJxIYgTU9NxIxJTE8gRFIKK1ZVS0nEhkVWScSGIFNUQU5JxaBBCitWVUtJxIZFVknEhiBUT01BCitWVUtJxIZFVknEhiBWRUxKS08KK1ZVS0xJxaAgRFJBR0FOCitWVUtMScWgIFNMT0JPREFOCitWVUtNQU5PVknEhiBEQU5JTE8KK1ZVS01BTk9WScSGIExKVUJBCitWVUtNQU5PVknEhiBNSUxBTkEKK1ZVS01BTk9WScSGIE1JTEFOCitWVUtNQU5PVknEhiBORU5BRAorVlVLTUFOT1ZJxIYgUEVUQVIKK1ZVS01BTk9WScSGIFNJTU8KK1ZVS01BTk9WScSGIFZFTElNSVIKK1ZVS01BTk9WScSGIFZFUkEKK1ZVS01JUk9WScSGIMSQT1LEkEUKK1ZVS01JUk9WScSGIMSQT1LEkEUKK1ZVS01JUk9WScSGIEJPxb1JREFSCitWVUtNSVJPVknEhiBCUkFOS08KK1ZVS01JUk9WScSGIEJSQU5LTworVlVLTUlST1ZJxIYgREFORQorVlVLTUlST1ZJxIYgRFJBR0FOCitWVUtNSVJPVknEhiBHT0pLTworVlVLTUlST1ZJxIYgSUxJSkEKK1ZVS01JUk9WScSGIElMSUpBCitWVUtNSVJPVknEhiBJTElKQQorVlVLTUlST1ZJxIYgSkFOSkEKK1ZVS01JUk9WScSGIExKVUJPTUlSCitWVUtNSVJPVknEhiBNSUxBTgorVlVLTUlST1ZJxIYgTUlMQU4KK1ZVS01JUk9WScSGIE1JTElDQQorVlVLTUlST1ZJxIYgTUlMT8WgCitWVUtNSVJPVknEhiBNSUxPCitWVUtNSVJPVknEhiBOSUtPTEEKK1ZVS01JUk9WScSGIFBFVEFSCitWVUtNSVJPVknEhiBSQU5LTworVlVLTUlST1ZJxIYgUkFOS08KK1ZVS01JUk9WScSGIFJPRE9MSlVCCitWVUtNSVJPVknEhiBTTUlMSktBCitWVUtNSVJPVknEhiBTUkXEhktPCitWVUtNSVJPVknEhiBWRUxJTktBCitWVUtNSVJPVknEhiBWVUtJQ0EKK1ZVS01JUk9WScSGIFpEUkFWS0EKK1ZVS05JxIYgTUFSSUpBTgorVlVLT0JSQUQgRFJBR08KK1ZVS09CUkFEIExKVUJPTUlSCitWVUtPQlJBRCBNQVJLTworVlVLT0JSQUQgTUlMT8WgCitWVUtPQlJBVCBEQU5JQ0EKK1ZVS09CUkFUIERSQUdBTgorVlVLT0JSQVQgSk/FoE8KK1ZVS09CUkFUIExKVUJPTUlSCitWVUtPQlJBVCBNSUxBTgorVlVLT0JSQVQgTklLT0xBCitWVUtPQlJBVCBQRVRBUgorVlVLT0JSQVQgVEFUSkFOQQorVlVLT0JSQVQgWkRSQVZLTworVlVLT0JSQVRPViBSQURPVkFOIERJUEwgSU5HCitWVUtPQlJBVE9WIFNMT0JPREFOCitWVUtPQlJBVE9WScSGIEJPR0RBTgorVlVLT0JSQVRPVknEhiBEQU5JQ0EKK1ZVS09CUkFUT1ZJxIYgSk9WQU4KK1ZVS09CUkFUT1ZJxIYgTUlSSkFOQQorVlVLT0JSQVRPVknEhiBOQURBCitWVUtPQlJBVE9WScSGIFNMQVZJQ0EKK1ZVS09KxIxJxIYgRFXFoEFOCitWVUtPSkEgQU5UVU4KK1ZVS09KRSBEVcWgQU4KK1ZVS09KRSBHQcWgTworVlVLT0pFIElMSUpBCitWVUtPSkUgSk9WQU4KK1ZVS09KRSBNSUxBTkEKK1ZVS09KRSBSQURJVk9KRQorVlVLT0pFIFJBRE1JTEEKK1ZVS09KRSBSQURPVkFOCitWVUtPSkUgVkFOSkEKK1ZVS09KRSBWT0pPCitWVUtPSkVWIEJPR0RBTgorVlVLT0pFViBEVcWgQU4KK1ZVS09KRVYgRFXFoEFOCitWVUtPSkVWIFNMT0JPREFOCitWVUtPSkVWScSGIMSQVVJPCitWVUtPSkVWScSGIE1BUkEKK1ZVS09KRVZJxIYgTUnEhk8KK1ZVS09KRVZJxIYgTUlPRFJBRworVlVLT0pFVknEhiBOSUtPCitWVUtPSkVWScSGIFZFUklDQQorVlVLT0pFVknEhiBWSURPU0FWCitWVUtPSkVWScSGIFpPUkFOCitWVUtPSknEjEnEhiBCT1JJU0xBVgorVlVLT0pJxIxJxIYgRFJBR0FOCitWVUtPSknEjEnEhiBNSU9EUkFHCitWVUtPSknEjEnEhiBNSU9EUkFHCitWVUtPSknEjEnEhiBTTEFWT0xKVUIKK1ZVS09NQU4gRU1JTElKQQorVlVLT01BTiBNSUxPUkFECitWVUtPTUFOIFJBREEKK1ZVS09NQU4gWk9SQU4KK1ZVS09NQU4gWk9SS0EKK1ZVS09NQU5PViBKT1ZBTgorVlVLT01BTk9WScSGIEFORFJJSkEKK1ZVS09NQU5PVknEhiBLQVRJQ0EKK1ZVS09NQU5PVknEhiBOSUtPTEEKK1ZVS09NQU5PVknEhiBSQURPTUlSCitWVUtPTUFOT1ZJxIYgU0xBVktPCitWVUtPU0FWIEJPUklWT0pFCitWVUtPU0FWIEJPUktPIERSCitWVUtPU0FWIERPQlJJTEEKK1ZVS09TQVYgSk9WTworVlVLT1NBViBNSUxPVkFOCitWVUtPU0FWIFJBREUKK1ZVS09TQVYgU0VOS0EKK1ZVS09TQVYgVkxBSktPCitWVUtPU0FWTEpFViBCT0dEQU5LQQorVlVLT1NBVkxKRVYgREFOSUNBCitWVUtPU0FWTEpFViBEUkFHSUNBCitWVUtPU0FWTEpFViBKRUxFTkEKK1ZVS09TQVZMSkVWIExBWkFSCitWVUtPU0FWTEpFViBNQUtTQQorVlVLT1NBVkxKRVYgTUlMQU4KK1ZVS09TQVZMSkVWIFBFVEFSCitWVUtPU0FWTEpFViBTQVZBCitWVUtPU0FWTEpFViBTTEFWSUNBCitWVUtPU0FWTEpFViBTVEVWQU4KK1ZVS09TQVZMSkVWIFZPSklOIERJUEwgSU5HCitWVUtPU0FWTEpFVknEhiBBTsSQRUxLQQorVlVLT1NBVkxKRVZJxIYgQkFSQkFSQQorVlVLT1NBVkxKRVZJxIYgQ1ZJSkVUSU4KK1ZVS09TQVZMSkVWScSGIERSQUdJQ0EKK1ZVS09TQVZMSkVWScSGIElWQU4KK1ZVS09TQVZMSkVWScSGIExKVUJJQ0EKK1ZVS09TQVZMSkVWScSGIExVS0EKK1ZVS09TQVZMSkVWScSGIE1BUkEKK1ZVS09TQVZMSkVWScSGIE1JTEVOS08KK1ZVS09TQVZMSkVWScSGIE1JTE9SQUQKK1ZVS09TQVZMSkVWScSGIE1JUkEKK1ZVS09TQVZMSkVWScSGIE1JUk9TTEFWCitWVUtPU0FWTEpFVknEhiBQQVZMRQorVlVLT1NBVkxKRVZJxIYgU0xPQk9EQU4KK1ZVS09TQVZMSkVWScSGIFNUT0pBTgorVlVLT1NMQVbEjEVWScSGIE5JS09MQQorVlVLT1NMQVbEjEVWScSGIFpBUklKRQorVlVLT1NMQVZPVknEhiBSQURPTkpBCitWVUtPVEEgTUFSS08KK1ZVS09UQSBNSUxBTgorVlVLT1RJxIYgQlJBTktPCitWVUtPVEnEhiBJVkEKK1ZVS09UScSGIEtBVEFSSU5BCitWVUtPVEnEhi1LT1ZBxIxFVknEhiBCSUxKQU5BCitWVUtPVEnEhiBMVUtBCitWVUtPVEnEhiBNQVJBCitWVUtPVEnEhiBNQVJJSkEKK1ZVS09UScSGIE1JTEFOCitWVUtPVEnEhiBNSUxJQ0EKK1ZVS09UScSGIE1JT0RSQUcKK1ZVS09UScSGIE5FTkFECitWVUtPVEnEhiBOSUtPTEEKK1ZVS09UScSGIE9MR0EKK1ZVS09UScSGIFBFUknFoEEKK1ZVS09UScSGIFJBRE9KRQorVlVLT1RJxIYgUkFET1ZBTgorVlVLT1RJxIYgU09GSUpBCitWVUtPVEnEhiBaT1JJQ0EKK1ZVS09WIMW9SVZLTworVlVLT1YgxJBPUsSQRQorVlVLT1YgxJBPUsSQRQorVlVLT1YgQk/FoEtPCitWVUtPViBCT8WgS08KK1ZVS09WIEJPxb1BTkEKK1ZVS09WIEJSQU5JU0xBVgorVlVLT1YgQlJBTklTTEFWCitWVUtPViBEUkFHQU4KK1ZVS09WIERSQUdPTEpVQgorVlVLT1YgSk9WQU4KK1ZVS09WIEpPVkFOCitWVUtPViBMQVpBUgorVlVLT1YgTEpVQk9NSVIKK1ZVS09WIE1BUklKQQorVlVLT1YgTUFSS08KK1ZVS09WIE5JS09MSUpBCitWVUtPViBPTEdBCitWVUtPViBTVEVWSUNBCitWVUtPViBWVUtBxaBJTgorVlVLT1ZBQyBEUkFHQU4KK1ZVS09WQUMgUEFOVEEKK1ZVS09WScSGIMWgVEVGSUNBCitWVUtPVknEhiDFvUlWS08KK1ZVS09WScSGIMW9SVZPSklOCitWVUtPVknEhiDEkE9SxJBFCitWVUtPVknEhiDEkFVLQQorVlVLT1ZJxIYgQUxFS1NBTkRBUgorVlVLT1ZJxIYgQUxFS1NBTkRSQQorVlVLT1ZJxIYgQUxFS1NJSkEKK1ZVS09WScSGIEFORFJJSkEKK1ZVS09WScSGIEFOVE8KK1ZVS09WScSGIEJJTEpBTkEKK1ZVS09WScSGIEJMQcW9TworVlVLT1ZJxIYgQkxBR09KRQorVlVLT1ZJxIYgQk/FoEtPCitWVUtPVknEhiBCT8WgS08KK1ZVS09WScSGIEJPR0nEhgorVlVLT1ZJxIYgQk9KQU5BCitWVUtPVknEhiBCT0pBTkEKK1ZVS09WScSGIEJPUknFoEEKK1ZVS09WScSGIEJPUknFoEEKK1ZVS09WScSGIEJPUklWT0oKK1ZVS09WScSGIEJPU0lMSktBCitWVUtPVknEhiBCUkFOSVNMQVYKK1ZVS09WScSGIEJVRElNSVIKK1ZVS09WScSGIENWRVRLTworVlVLT1ZJxIYgREFSSU5LQQorVlVLT1ZJxIYgRE9CUklWT0pFCitWVUtPVknEhiBEUkFHQU4KK1ZVS09WScSGIERSQUdBTgorVlVLT1ZJxIYgRFJBR09MSlVCCitWVUtPVknEhiBEUkFHT1NMQVYKK1ZVS09WScSGIERSQUdPCitWVUtPVknEhiBEVcWgQU4gRFIgTEVLQVIKK1ZVS09WScSGIERVxaBBTktBCitWVUtPVknEhiBEVcWgQU4KK1ZVS09WScSGIERVxaBBTgorVlVLT1ZJxIYgR0VaQSBOT1ZJTkFSCitWVUtPVknEhiBHT0pLTworVlVLT1ZJxIYgR09SQU4KK1ZVS09WScSGIEdPUkRBTkEKK1ZVS09WScSGIElMSUpBCitWVUtPVknEhiBJTElKQQorVlVLT1ZJxIYgSVZBTgorVlVLT1ZJxIYgSVZBTgorVlVLT1ZJxIYgSVZJQ0EKK1ZVS09WScSGIEpBU01JTkEKK1ZVS09WScSGIEpFTElDQQorVlVLT1ZJxIYgSk9TSVAKK1ZVS09WScSGIEpPVkEKK1ZVS09WScSGIEpVTElKQU5BCitWVUtPVknEhiBKVUxJSkFOQQorVlVLT1ZJxIYgTEpVQkFOCitWVUtPVknEhiBNQVJHQVJFVEEKK1ZVS09WScSGIE1BUkpFTktBCitWVUtPVknEhiBNQVRPCitWVUtPVknEhiBNSUxBRElOCitWVUtPVknEhiBNSUxBTgorVlVLT1ZJxIYgTUlMQU4KK1ZVS09WScSGIE1JTEVOQQorVlVLT1ZJxIYgTUlMRU5BCitWVUtPVknEhiBNSUxFTktPCitWVUtPVknEhiBNSUxJVk9KRQorVlVLT1ZJxIYgTUlMSVZPSkUKK1ZVS09WScSGIE1JTElWT0pFCitWVUtPVknEhiBNSUxJVk9KCitWVUtPVknEhiBNSUxKQU4KK1ZVS09WScSGIE1JTEtBCitWVUtPVknEhiBNSUxLQQorVlVLT1ZJxIYgTUlMT1JBRAorVlVLT1ZJxIYgTUlMVVRJTgorVlVLT1ZJxIYgTUlMVVRJTgorVlVLT1ZJxIYgTUlPRFJBRworVlVLT1ZJxIYgTUlPRFJBRworVlVLT1ZJxIYgTUlSSkFOQQorVlVLT1ZJxIYgTUlSSkFOQQorVlVLT1ZJxIYgTUlSS08KK1ZVS09WScSGIE1JUktPCitWVUtPVknEhiBNSVJPSkUKK1ZVS09WScSGIE1JUk9TTEFWCitWVUtPVknEhiBNSVJPU0xBVgorVlVLT1ZJxIYgTUlUQVIKK1ZVS09WScSGIE1JVEFSCitWVUtPVknEhiBNSVRBCitWVUtPVknEhiBNTEFERU4KK1ZVS09WScSGIE5BREEKK1ZVS09WScSGIE5BREEKK1ZVS09WScSGIE5FREEKK1ZVS09WScSGIE9CUkFECitWVUtPVknEhiBPQlJBRAorVlVLT1ZJxIYgT0xHSUNBCitWVUtPVknEhiBPTEdJQ0EKK1ZVS09WScSGIFBFVEFSCitWVUtPVknEhiBQRVRBUgorVlVLT1ZJxIYgUEVUQVIKK1ZVS09WScSGIFJBREVOS08KK1ZVS09WScSGIFJBREUKK1ZVS09WScSGIFJBRE9TTEFWCitWVUtPVknEhiBSQURPVkFOCitWVUtPVknEhiBSQVRLTworVlVLT1ZJxIYgU0FWQQorVlVLT1ZJxIYgU0VOS0EKK1ZVS09WScSGIFNJTUEKK1ZVS09WScSGIFNMT0JPREFOCitWVUtPVknEhiBTTE9CT0RBTgorVlVLT1ZJxIYgU1JFxIZLTworVlVLT1ZJxIYgU1JFRE9KRQorVlVLT1ZJxIYgU1RBTktBCitWVUtPVknEhiBTVEFOS0EKK1ZVS09WScSGIFNUSVBBCitWVUtPVknEhiBTVkVUSVNMQVYKK1ZVS09WScSGIFNWRVRMQU5BCitWVUtPVknEhiBTVkVUTEFOQQorVlVLT1ZJxIYtVEFWxIxJT1NLQSBBTEVLU0FORFJBCitWVUtPVknEhiBUT0RPUgorVlVLT1ZJxIYgVE9NSVNMQVYKK1ZVS09WScSGIFZFU05BCitWVUtPVknEhiBWSURBSworVlVLT1ZJxIYgVklOS0EKK1ZVS09WScSGIFZMQURJTUlSCitWVUtPVknEhiBWTEFESU1JUgorVlVLT1ZJxIYgVkxBRElNSVIKK1ZVS09WScSGIFZMQURJU0xBViBEUgorVlVLT1ZJxIYgVkxBVEtPIERJUEwgSU5HCitWVUtPVknEhiBWT0pJU0xBVgorVlVLT1ZJxIYgVk9KS08KK1ZVS09WScSGIFZVxIxJxIYKK1ZVS09WScSGIFZVS0HFoElOCitWVUtPVknEhiBaT1JBTgorVlVLT1ZJxIYgWk9SQU4KK1ZVS09WScSGIFpPUkFOCitWVUtPVknEhiBaT1JBTgorVlVLT1ZJxIYgWk9SQU4KK1ZVS09WTEpBSyBCT1NJTEpLQQorVlVLT1ZMSkFLIEVWSUNBCitWVUtPVkxKQUsgTUlSS08KK1ZVS09WTEpBSyBWT0pJTgorVlVLT1ZPSkFDIE9MR0EKK1ZVS09WT0pBQyBWT0pJU0xBVgorVlVLU0FOIE1JTEFOCitWVUtTQU4gTUlMSVZPSgorVlVLU0FOIE1JT0RSQUcKK1ZVS1NBTiBOSUtPTEEKK1ZVS1NBTiBSQURPU0xBViBQUk9GRVNPUgorVlVLU0FOIFJVxb1JQ0EKK1ZVS1NBTiBTVkVUT1pBUgorVlVLU0FOIFZVS09TQVZBCitWVUtTQU5PViBMSlVCSUNBCitWVUtTQU5PViBWT0pJU0xBVgorVlVLU0FOT1ZJxIYgxb1JVk9SQUQKK1ZVS1NBTk9WScSGIEFMRUtTQU5EQVIKK1ZVS1NBTk9WScSGIEFMRUtTQU5EQVIKK1ZVS1NBTk9WScSGIERBUktPCitWVUtTQU5PVknEhiBERVNBTktBCitWVUtTQU5PVknEhiBHT1JBTgorVlVLU0FOT1ZJxIYgR09SREFOQQorVlVLU0FOT1ZJxIYgSk9WQU4KK1ZVS1NBTk9WScSGIE1JTEUKK1ZVS1NBTk9WScSGIE1JTElTQVYKK1ZVS1NBTk9WScSGIE1JTE9SQUQKK1ZVS1NBTk9WScSGIE1JT0RSQUcKK1ZVS1NBTk9WScSGIE1JUk8KK1ZVS1NBTk9WScSGIFNBVk8KK1ZVS1NBTk9WScSGIFNURVZBTktBCitWVUtTScSGIFNURVZPCitWVUtTScSGIFZFTElNSVIKK1ZVS1XFoEnEhiBBTlRFCitWVUxBTk9WScSGIFJFTEpBCitWVUxBTk9WScSGIFZPSklTTEFWCitWVUxFVEEgQk9KQU4KK1ZVTEVUQSBQUkVEUkFHCitWVUxFVEEgUklTVE8KK1ZVTEVUScSGIMW9RUxKS08KK1ZVTEVUScSGIMSQT1LEkElKRQorVlVMRVRJxIYgQU5EUklKQQorVlVMRVRJxIYgQk9SSVNMQVYKK1ZVTEVUScSGIEJSQU5JU0xBVkEKK1ZVTEVUScSGIEJSQU5LTworVlVMRVRJxIYgQlJBTktPCitWVUxFVEnEhiBEQU5JQ0EgRFIKK1ZVTEVUScSGIERJTUlUUklKRQorVlVMRVRJxIYgSkVMRU5BCitWVUxFVEnEhiBKRUxJQ0EgUFJPRkVTT1IKK1ZVTEVUScSGIE1JTEFESU4KK1ZVTEVUScSGIE1JTEFOIFZFVEVSSU5BUgorVlVMRVRJxIYgTUlMRQorVlVMRVRJxIYgTUlMSVZPSgorVlVMRVRJxIYgTUxBREVOCitWVUxFVEnEhiBOQURFxb1EQQorVlVMRVRJxIYgTkVERUxKS08KK1ZVTEVUScSGIE5JS09MQQorVlVMRVRJxIYgT0JSQUQKK1ZVTEVUScSGIFJBRE9WQU4KK1ZVTEVUScSGIFNSxJBBTgorVlVMRVRJxIYgVkFTSUxJSkUKK1ZVTEVUScSGIFZJRE9TQVZBCitWVUxFVEnEhiBWSVRPTUlSCitWVUxFVEnEhiBWTEFESU1JUgorVlVMRVRJxIYgVkxBU1RJTUlSCitWVUxFVEnEhiBaT1JJQ0EKK1ZVTEVUSU4gWk9SQQorVlVMRVZJxIYgxIxFRE9NSVIKK1ZVTEVWScSGIMSMRURPTUlSCitWVUxFVknEhiDEjEVET01JUgorVlVMRVZJxIYgU1BBU09KRQorVlVMScSGIMW9SUtBCitWVUxJxIYgxJBPUsSQRQorVlVMScSGIMSQT1LEkEUKK1ZVTEnEhiBCT8W9SURBUgorVlVMScSGIEJPUklTTEFWCitWVUxJxIYgQlJBTklTTEFWCitWVUxJxIYgQlJBTklTTEFWCitWVUxJxIYgREFSSU5LQQorVlVMScSGIERFU0FOS0EKK1ZVTEnEhiBEUkFHT0xKVUIKK1ZVTEnEhiBJTElKQQorVlVMScSGIEpBVk9SS0EKK1ZVTEnEhiBKRUxFTkEKK1ZVTEnEhiBKRUxFTkEKK1ZVTEnEhiBKT1ZBTgorVlVMScSGIEpPVkFOCitWVUxJxIYgSk9WQU4KK1ZVTEnEhiBMVUtBCitWVUxJxIYgTFVLQQorVlVMScSGIE1JTEFOS0EKK1ZVTEnEhiBNSUxBTgorVlVMScSGIE1JTElWT0pFCitWVUxJxIYgTUlMT1JBRAorVlVMScSGIE1JTE9SQUQKK1ZVTEnEhiBNSVJPU0xBVgorVlVMScSGIE1MQURFTgorVlVMScSGIE1PTcSMSUxPCitWVUxJxIYgTklLT0xBCitWVUxJxIYgUEVUS08KK1ZVTEnEhiBTTEFWSUNBCitWVUxJxIYgU0xBVktPCitWVUxJxIYgU1RFVkFOCitWVUxJxIYgWkxBVEEKK1ZVTEnEhiBaTEFUSUpBCitWVUxJS0nEhiBMVUtBCitWVUxJS0nEhiBSVcW9SUNBCitWVUxJS0nEhiBWRVNFTElOCitWVUxJS0nEhiBWT0pJU0xBVgorVlVMSU4gQU5HRUxJTkEKK1ZVTElOIEJSQU5JU0xBVgorVlVMSU4gR09KS08KK1ZVTElOIEpVTEtBCitWVUxJTiBNTEFERU4KK1ZVTElOIE5FTkFECitWVUxJTiBORU5BRAorVlVMSU4gUFJFRFJBRworVlVMSU4gUkFET01JUgorVlVMSU4gU1RFVkFOCitWVUxJTiBWVUtBxaBJTgorVlVMSkFKIFZBU0VMSgorVlVMSkVWScSGIMSQT0tBCitWVUxLQU5JIEdPUkRBTkEKK1ZVTE9WScSGIERSQUdJQ0EKK1ZVTE9WScSGIERSQUdPxaAKK1ZVTE9WScSGIERSQUdPTEpVQgorVlVMT1ZJxIYgRFJBR09NSVIKK1ZVTE9WScSGIEdPUkFOCitWVUxPVknEhiBQRVRBUgorVlVMT1ZJxIYgUkFKS08KK1ZVTE9WScSGIFNBVk8KK1ZVTE9WScSGIFNMQVZJxaBBCitWVUxPVknEhiBWTEFESU1JUgorVlVMT1ZJxIYgVlVLSUNBCitWVUxTQU5PVknEhiBJTEtBCitWVU5ERVJMSUggSk9TSVAKK1ZVTkRVSyBNSVJPU0xBVkEKK1ZVTknEhiBNSUxKRU5LTworVlVOScSGIFBFVEFSCitWVU5JxIYgUkFET0pLQQorVlVOSkFLIMSQT1LEkEUKK1ZVTkpBSyBCUkFOSVNMQVZBCitWVU5KQUsgRFXFoEFOCitWVVJERUxKQSBORU1BTkpBIERSIFBST0YKK1ZVUkRFTEpBIFNPRklKQQorVlVSREVMSkEgVkFTQQorVlVSU1QgSk9WQU5LQQorVlVSVU5BIEJSQU5LTworVlVSVU5BIE1BUklKQQorVlVSVU5JxIYgWkRSQVZLTworWkFCTEXEhkFOU0tJIFZMQURBCitaQUJSREFDIE1JTEFOCitaQUJVTk9WIFZMQURJTUlSCitaQURPUiBBTkRSSUpBIERSIElVUkUKK1pBRFJBVkVDIEpPU0lQCitaQURSTyBOSUtPTEEKK1pBRklST1ZJxIYgQlJBTktPCitaQUdBIE1JTEFOCitaQUdBSsSMQU4gS09TVEEKK1pBR09SxIxJxIYgxb1BUktPCitaQUdPUsSMScSGIMW9SVZLTworWkFHT1LEjEnEhiDFvUlWS08KK1pBR09SxIxJxIYgxJBPUsSQRQorWkFHT1LEjEnEhiDEkE9SxJBFCitaQUdPUsSMScSGIMSQT1LEkEUKK1pBR09SxIxJxIYgQUxFS1NBTkRBUgorWkFHT1LEjEnEhiBBTkdFTElOQQorWkFHT1LEjEnEhiBCT1JJU0xBVgorWkFHT1LEjEnEhiBCT1JJU0xBVgorWkFHT1LEjEnEhiBEUkFHT0xKVUIKK1pBR09SxIxJxIYgR0FWUkEKK1pBR09SxIxJxIYgR0xJR09SSUpFCitaQUdPUsSMScSGIEdPUkFOCitaQUdPUsSMScSGIElMSUpBCitaQUdPUsSMScSGIElMSUpBCitaQUdPUsSMScSGIElSRU5BCitaQUdPUsSMScSGIEpBU01JTkEKK1pBR09SxIxJxIYgSkVMRU5BCitaQUdPUsSMScSGIEpPVkFOCitaQUdPUsSMScSGIEpPVkFOCitaQUdPUsSMScSGIEtSSVNUSU5BCitaQUdPUsSMScSGIExBWkFSCitaQUdPUsSMScSGIExBWkFSCitaQUdPUsSMScSGIExBWkEKK1pBR09SxIxJxIYgTUFSSUpBCitaQUdPUsSMScSGIE1JTEFOCitaQUdPUsSMScSGIE1JTEFOCitaQUdPUsSMScSGIE1JTElDQQorWkFHT1LEjEnEhiBNSUxJVk9KRQorWkFHT1LEjEnEhiBNSUxJVk9KCitaQUdPUsSMScSGIE1JTElWT0oKK1pBR09SxIxJxIYgTUlMT8WgCitaQUdPUsSMScSGIE1JTE9TQVYKK1pBR09SxIxJxIYtT1LFoE/FoCBEUkFHQU5BCitaQUdPUsSMScSGIFBBTlRBCitaQUdPUsSMScSGIFBFVEFSCitaQUdPUsSMScSGIFBFVEFSCitaQUdPUsSMScSGIFBSRURSQUcKK1pBR09SxIxJxIYgUkFESVZPSgorWkFHT1LEjEnEhiBSQURPU0xBVgorWkFHT1LEjEnEhiBTTE9CT0RBTgorWkFHT1LEjEnEhiBTVEVWQU4KK1pBR09SxIxJxIYgU1ZFVElTTEFWCitaQUdPUsSMScSGIFNWRVRPWkFSCitaQUdPUsSMScSGIFVST8WgCitaQUdPUsSMScSGIFZBU0EKK1pBR09SxIxJxIYgVkFTQQorWkFHT1LEjEnEhiBWQVNBCitaQUdPUsSMScSGIFZVS09TQVZBCitaQUdPUsSMScSGIFpJSkFICitaQUdPUkFDIEJPxb1JQ0EKK1pBR09SQUMgRElNSVRSSUpFCitaQUdPUkFDIERVxaBBTgorWkFHT1JBQyBJVkFOCitaQUdPUkFDIE1BUklKQQorWkFHT1JBQyBNSUxFTkEKK1pBR09SQUMgTUlMSUNBCitaQUdPUkFDIE1JTElDQQorWkFHT1JBQyBORURFTEpLTworWkFHT1JBQyBOSUtPTEEKK1pBR09SQUMgTklLT0xBCitaQUdPUkFDIE9TVE9KQQorWkFHT1JBQyBQRVRBUgorWkFHT1JBQyBSQUpLTworWkFHT1JBQyBSVcW9SUNBCitaQUdPUkFDIFNJTU8KK1pBR09SQUMgVkFMS08KK1pBR09SRUMgSk9TSVAKK1pBR09SSUNBIE9aUkVOCitaQUdSQcSQQSBCQUpJUkFNCitaQUhBUklKRVZJxIYgQk9HREFOCitaQUhPUkFJIEpPVkFOCitaQUhPUkVDIFpVWkFOQQorWkFIT1JPRE5JIEFOVE9OCitaQUhPUk9ETkkgSVZBTgorWkFJTU9WScSGIE1VSEFSRU0KK1pBSlpPViBKRUxFTkEKK1pBS0FOSiBBUlBBRAorWkFLQU5KIExBSk/FoAorWkFLQU5KIE1JUktPCitaQUtBTkotVE9CT0xLQSBFVkEKK1pBS0nEhiDEkE9SxJBFCitaQUtJxIYgQk/FvUlEQVIKK1pBS0nEhiBESU1JVFJJSkUKK1pBS0nEhiBET0JSSVZPSgorWkFLScSGIERPQlJJVk9KCitaQUtJxIYgSVZBTgorWkFLScSGIE1JTEFOCitaQUtJxIYgU0FWQQorWkFLTEFOIMSQVVJBCitaQUtMQU4gTUlMQU4KK1pBS0xBTiBORUdJQ0EKK1pBS0xBTiBSQU5LTworWkFLTEFOIFNMT0JPREFOCitaQUtMQU4gU1RBTknFoEEKK1pBS0xBTiBUSUhPTUlSCitaQUtMQU4gVE9NSVNMQVYKK1pBTElTIEdFT1JHSUpFCitaQUxJUyBKQU5JUworWkFNQUtMQVIgWk9SQU4KK1pBTU9MTyBFRFVBUkQKK1pBTVVST1ZJxIYgQUxFS1NBTkRBUgorWkFNVVJPVknEhiBCT0pBTkEKK1pBTVVST1ZJxIYgS09TVEEKK1pBTVVST1ZJxIYgTUlMRU5BCitaQU1VUk9WScSGIE9MR0EgRFIKK1pBTVVST1ZJxIYgU1RPSkFOCitaQU5PVkpBSyBQRVRFUgorWkFQVU5JRElTIExFT05JREFTCitaQVJFQ0tJIFJPWkFMSUpBCitaQVJJxIxOSSBWRVJJQ0EKK1pBUknEjE5JIFZFUk9OSUtBCitaQVJJxIYgxJBPUsSQRQorWkFSScSGIMSQT1LEkEUKK1pBUknEhiDEkE9SxJBFCitaQVJJxIYgQk/FoEtPCitaQVJJxIYgQk9HREFOCitaQVJJxIYgQk9SSVNMQVYKK1pBUknEhiBCUkFOSVNMQVYKK1pBUknEhiBCUkFUSVNMQVYKK1pBUknEhiBEUkFHQQorWkFSScSGIERSQUdPU0xBVgorWkFSScSGIERVxaBBTgorWkFSScSGIElWQU5LQQorWkFSScSGIElWQU4KK1pBUknEhiBKRUxFTkEKK1pBUknEhiBKT1ZBTgorWkFSScSGIEpPVk8KK1pBUknEhiBLQVRJQ0EKK1pBUknEhiBLQVRJQ0EKK1pBUknEhiBMQVpBUgorWkFSScSGIE1BUklKQQorWkFSScSGIE1BUklKQQorWkFSScSGIE1JS0EKK1pBUknEhiBNSUxBRElOCitaQVJJxIYgTUlMQU4KK1pBUknEhiBNSUxBTgorWkFSScSGIE1JTEVOQQorWkFSScSGIE1JTElDQQorWkFSScSGIE1JTElDQQorWkFSScSGIE1JT0RSQUcKK1pBUknEhiBNTEFERU4KK1pBUknEhiBNT03EjElMTworWkFSScSGIE5JS09MQQorWkFSScSGIE5JS09MQQorWkFSScSGIE5PVkFLCitaQVJJxIYgUEVUQVIKK1pBUknEhiBSQURNSUxBCitaQVJJxIYgUkFKTworWkFSScSGIFNBVkEKK1pBUknEhiBTTE9CT0RBTgorWkFSScSGIFNMT0JPREFOCitaQVJJxIYgU1RBTklNSVIKK1pBUknEhiBTVEFOSVNMQVYKK1pBUknEhiBTVEFOS0EKK1pBUknEhiBTVEVWQU4KK1pBUknEhiBWRVNOQQorWkFSScSGIFpBUklKQQorWkFSScSGIFpEUkFWS08KK1pBUknEhiBaT1JLQQorWkFSSU4gU1RFVkEKK1pBUklOR0VSLVBJTlRFUiBOSUtPTEEKK1pBUktPViBLT0NBCitaQVJMSSBLQVRBUklOQQorWkFSTk9DS0kgUEFWTEUKK1pBUk9MIEFMRUtTQU5EQVIKK1pBUlVCQUMgQUxFS1NBTkRBUgorWkFSVUJBQyBCT1JLQQorWkFSVUJBQyBST01JQ0EKK1pBUlVCSUNBIEJPxb1BTkEKK1pBUlVCSUNBIFJBRFVOCitaQVJVUFNLSSDEkE9SxJBFCitaQVJVUFNLSSBCUkFOS08KK1pBUlVQU0tJIE1JTE9WQU4KK1pBVEVLIE1BUklKQQorWkFURVpBTE8gRFXFoEFOIFBST0YKK1pBVEVaQUxPIE1JT0RSQUcKK1pBVEVaQUxPIFBFVEFSCitaQVRFWkFMTyBQUkVEUkFHCitaQVZBUkdPIFpPTFRBTgorWkFWQVJLTyDFoEFORE9SCitaQVZBUktPIMWgQU5ET1IKK1pBVkFSS08gxaBBTkRPUgorWkFWQVJLTyBBTlRBTAorWkFWQVJLTyBFU1RFUkEKK1pBVkFSS08gScWgVFZBTgorWkFWQVJLTyBKQU5PxaAKK1pBVkFSS08gS0FSTE8KK1pBVkFSS08gTUFSSUpBCitaQVZBUktPIFZFUkEKK1pBVkFST8WgIEFORFJJSkEKK1pBVknFoEEgUEVUQVIKK1pBVknFoEEgUkFOS08KK1pBVknFoEnEhiBDVklKRVRBCitaQVZJxaBJxIYgTUlMQU4KK1pBVknFoEnEhiBQUkVEUkFHCitaQVZJxaBJxIYgVklEQQorWkFWScWgSU4gTUFSSUNBCitaQVZJxaBJTiBNT01JUgorWkFWScWgSU4gU0FWQQorWkFWUlRBTklLIElWQU4KK1pBVlJUQU5JSyBJVkFOCitaQVZSVEFOSUsgTUFSSkFOCitaQVpVTEpBSyBTTEFWS08KK1pCQcSMTklLIFpPRklKQQorWkJJTEpJxIYgRFJBR09MSlVCCitaQlXEhk5PVknEhiBKT1ZBTktBCitaQlXEhk5PVknEhiBNSUxBTgorWkJVxIZOT1ZJxIYgTUlMT8WgCitaQlXEhk5PVknEhiBNSVRBCitaQlXEhk5PVknEhiBQQVZMRQorWkJVxIZOT1ZJxIYgU0FWQQorWkRFTEFSIFNMT0JPREFOCitaREVOSkFLIEpPU0lQCitaRElIQU4gTUFSS08KK1pESkVMQVIgRFJBR0FOCitaREpFTEFSIE1JUk9TTEFWCitaREpFTEFSIE9MR0EKK1pESkVMQVIgVknFoE5KQQorWkRKRUxBUiBaRFJBVktPCitaREpFTEFSScSGIEJSQU5LTworWkRKRUxBUknEhiBEUkFHQU4KK1pEUkFWRVNLSSBEVcWgQU5LQQorWkRSQVZFVlNLSSBJTElKQQorWkRSQVZLT1ZJxIYgQU7EkEVMSUpBCitaRFJBVktPVknEhiBCT0dPTEpVQgorWkRSQVZLT1ZJxIYgQk9SSVNMQVYKK1pEUkFWS09WScSGIERFSkFOCitaRFJBVktPVknEhiBEUkFHT0xKVUIKK1pEUkFWS09WScSGIERVxaBBTktBCitaRFJBVktPVknEhiBKRUxFTkEKK1pEUkFWS09WScSGIEpPVkFOCitaRFJBVktPVknEhiBNSUhBSkxPCitaRFJBVktPVknEhiBNSUxBTgorWkRSQVZLT1ZJxIYgTUlPRFJBRworWkRSQVZLT1ZJxIYgTUlPRFJBRworWkRSQVZLT1ZJxIYgTUlST1NMQVYKK1pEUkFWS09WScSGIFJBREUKK1pEUkFWS09WScSGIFJBREUKK1pEUkFWS09WScSGIFRJSE9NSVIKK1pEUkFWS09WScSGIFRPTUlTTEFWCitaRFJBVktPVknEhiBWRVJPTEpVQgorWkRSQVZLT1ZJxIYgVklET0pFCitaRFVQU0tJIEJPxb1JREFSCitaRcSMQUsgVk9KQQorWkXEjEVWScSGIMSQT1LEkE8KK1pFxIxFVknEhiBBTkdFTElOQQorWkXEjEVWScSGIENWSUpBTgorWkXEjEVWScSGIERPQlJJVk9KRSBEUgorWkXEjEVWScSGIERSQUdBTiBEUgorWkXEjEVWScSGIERVxaBBTgorWkXEjEVWScSGIEdPTFVCCitaRcSMRVZJxIYgR1ZPWkRFTgorWkXEjEVWScSGIEhJTVpPCitaRcSMRVZJxIYgS1JTVE8KK1pFxIxFVknEhiBMSlVCSUNBCitaRcSMRVZJxIYgTEpVQklOS08KK1pFxIxFVknEhiBNQVJJSkEKK1pFxIxFVknEhiBNSUxBTgorWkXEjEVWScSGIE1JTEFOCitaRcSMRVZJxIYgTUlMSVNBVgorWkXEjEVWScSGIE1JTE8KK1pFxIxFVknEhiBNSU9NSVIKK1pFxIxFVknEhiBNSVJKQU5BCitaRcSMRVZJxIYgTklLT0xBCitaRcSMRVZJxIYgTklLT0xBCitaRcSMRVZJxIYgTk9WQUsKK1pFxIxFVknEhiBQUkVEUkFHCitaRcSMRVZJxIYgUkFKS08KK1pFxIxFVknEhiBSSVNUSVZPSkUKK1pFxIxFVknEhiBTQVZPCitaRcSMRVZJxIYgU0xBVktPCitaRcSMRVZJxIYgU0xPQk9EQU4KK1pFxIxFVknEhiBTTUlMSkEKK1pFxIxFVknEhiBTTUlMSkEKK1pFxIxFVknEhiBTT0ZJSkEKK1pFxIxFVknEhiBWRVNOQQorWkXEjEVWScSGIFZMQURJTUlSCitaRcSMRVZJxIYgWk9SQU4KK1pFxIxJUk9WScSGIElMTUkKK1pFxIZJUkkgSVNNQUlMCitaRcSGSVJJIFpJSkEKK1pFQyDFvUVMSktPCitaRUMgxJBVUk8KK1pFQyBCT8WgS08KK1pFQyBCT8W9SURBUgorWkVDIERBTklKRUwKK1pFQyBEUkFHQU4KK1pFQyBEUkFHVVRJTgorWkVDIERVxaBBTgorWkVDIERVxaBBTgorWkVDIEpPVkFOCitaRUMgTUFSSUpBCitaRUMgTUFSSUpBCitaRUMgTUFSSU5LTworWkVDIE1BVEEKK1pFQyBNSUxBTgorWkVDIE1JTEFOCitaRUMgTUlMRSBESVBMIElORworWkVDIE1JTE/FoAorWkVDIE1JTE/FoAorWkVDIE1JTE9SQUQKK1pFQyBNSUxPVkFOCitaRUMgTklLT0xBCitaRUMgTklLT0xBCitaRUMgUkFET1ZBTgorWkVDIFJBSktPCitaRUMgUkFKS08KK1pFQyBTVEVWQU5JSkEKK1pFQyBaT1JJQ0EKK1pFREkgTUlIQUxKCitaRUdBIEFMRUtTQU5EQVIKK1pFR05BTCBSVURPTEYKK1pFSkFLIElWQU4KK1pFSkFLIE1JTEVUQQorWkVKQUsgUkFET8WgCitaRUtBIEdaSU0KK1pFS0EgSElSWkVOCitaRUtBIElSTUEKK1pFS0FWSUNBIEpFTEVOQQorWkVLQVZJQ0EgTUlSSkFOQQorWkVLQVZJQ0EgU0xBVklDQQorWkVLQVZJQ0EgU1LEkEFOCitaRUtJxIYgTUlSQQorWkVLT05KQSBaRFJBVktPCitaRUtPVknEhiBCT8WgS08KK1pFS09WScSGIERSQUdPTUlSCitaRUtPVknEhiBHT1JEQU5BCitaRUtPVknEhiBIQU5LSUpBCitaRUtPVknEhiBKVUxJSkFOQQorWkVLT1ZJxIYgTElMQQorWkVLT1ZJxIYgTUlMQURJTgorWkVLT1ZJxIYgTUlMT8WgCitaRUtPVknEhiBQRVRBUiBESUxQIE9FQworWkVLT1ZJxIYgUEVUQVIKK1pFS09WScSGIFJBREVOS08KK1pFS09WScSGIFJJWkEKK1pFS09WScSGIFZBU08KK1pFS09WU0tJIFpPUklDQQorWkVMRU5CQUJBIFJBVEtPCitaRUxFTkJBQkEgU1RFVkFOCitaRUxFTkhBU0nEhiBFTUlSCitaRUxFTkpBSyBBTkRSSUpBCitaRUxFTkpBSyBTVEpFUEFOCitaRUxFTktBIEZSQU5KQQorWkVMRU5LQSBNQVJJSkEKK1pFTEVOS08gRU1BCitaRUxFTk9WScSGIEJPUknFoEEKK1pFTEVOT1ZJxIYgRFJBR0FOCitaRUxFTk9WScSGIEpFTEVOQQorWkVMRU5PVknEhiBKT1ZBTgorWkVMRU5PVknEhiBMSlVCSUNBCitaRUxFTk9WScSGIExKVUJPCitaRUxFTk9WScSGIE1BUkEKK1pFTEVOT1ZJxIYgTUlMQURJTgorWkVMRU5PVknEhiBNSUxBTgorWkVMRU5PVknEhiBNSUxJU0FWCitaRUxFTk9WScSGIE1JTElTQVYKK1pFTEVOT1ZJxIYgVkVSQQorWkVMRU5PVknEhiBWTEFESU1JUgorWkVMRU5TS0kgQUxFS1NBTkRBUgorWkVMRU5TS0kgQUxFS1NBTkRBUgorWkVMRU5TS0kgSkVMRU5BCitaRUxFTlNLSSBNSUxJQ0EKK1pFTEnEhiDEkE9SxJBFCitaRUxJxIYgSVZBTgorWkVMScSGIEpBTk/FoAorWkVMScSGIEpPVkFOCitaRUxJxIYgTEFaQVIKK1pFTEnEhiBMSlVCQQorWkVMScSGIExKVUJJQ0EKK1pFTEnEhiBMSlVCT01JUgorWkVMScSGIE1BUlRBCitaRUxJxIYgUEFWTEUKK1pFTEnEhiBQRVJTSURBCitaRUxJxIYgUEVUQVIKK1pFTEnEhiBSVcW9SUNBCitaRUxJxIYgVkxBRElNSVIKK1pFTEnEhiBaT0xUQU4KK1pFTEpBSknEhiBOSUtPTEEgRFIKK1pFTEpJxIYgU0xPQk9EQU4KK1pFTEpLTyBNQVJJQ0EKK1pFTEpLT1ZJxIYgxb1FTEpLTworWkVMSktPVknEhiDFvUVMSktPCitaRUxKS09WScSGIMSQVVJPCitaRUxKS09WScSGIEJPU0EKK1pFTEpLT1ZJxIYgQlJBTktPCitaRUxKS09WScSGIEJSQU5LTworWkVMSktPVknEhiBERVNJTUlSCitaRUxKS09WScSGIERSQUdVVElOCitaRUxKS09WScSGIERVxaBLTworWkVMSktPVknEhiBJVkFOS0EKK1pFTEpLT1ZJxIYgSk9WQU4KK1pFTEpLT1ZJxIYgSk9WTworWkVMSktPVknEhiBLUklTVElOQQorWkVMSktPVknEhiBMSklMSkFOQQorWkVMSktPVknEhiBNQVJLTworWkVMSktPVknEhiBNSUxBTgorWkVMSktPVknEhiBNSUxBTgorWkVMSktPVknEhiBNSUxJxIYKK1pFTEpLT1ZJxIYgTUlMSkEKK1pFTEpLT1ZJxIYgTUlMT8WgCitaRUxKS09WScSGIE1JUktPCitaRUxKS09WScSGIE9TVE9KQQorWkVMSktPVknEhiBSQURNSUxBCitaRUxKS09WScSGIFJBTktPCitaRUxKS09WScSGIFJBVEtPCitaRUxKS09WScSGIFNJTUEKK1pFTEpLT1ZJxIYgU1RFVk8KK1pFTEpLT1ZJxIYgU1RPSkFOS0EKK1pFTEpLT1ZJxIYgVE9ERQorWkVMSktPVknEhiBUT01BCitaRUxKS09WScSGIFZFUkEKK1pFTEpLT1ZJxIYgVkxBSktPCitaRUxKS09WScSGIFZVS0HFoElOCitaRUxKS09WScSGIFpPUkFOCitaRUxKS09WScSGIFpPUkFOCitaRUxKS09WScSGIFpPUkFOCitaRU1CRVJJIEZFUkVOQworWkVNQkVSSSBKT1NJUAorWkVNQkVSSSBST0JFUlQKK1pFTUtPIMWgQU5ET1IKK1pFTUxKQUsgSVZBTgorWkVNTEpBTkFDIE1JTEFOS0EKK1pFTlRBSSBST0JFUlQgRElQTCBJTkcKK1pFTlVOIEFWRE8KK1pFTlpFUk9WScSGIFBBVkxFCitaRVJETyBCT8W9SURBUgorWkVSRE8gTUlMT1JBRAorWkVSRE8gUkFET1NMQVYKK1pFUkRPIFpMQVRBCitaRVJFTVNLSSBEQU5JTE8KK1pFUkVNU0tJIERSQUdBTgorWkVSRU1TS0kgRFXFoEFOCitaRVJFTVNLSSBLQU1FTktPCitaRVJFTVNLSSBOQURBCitaRVJFTVNLSSBOT1ZBSworWkVSRU1TS0kgUEVUQVIKK1pFUkVNU0tJIFBFVEFSCitaRVJFTVNLSSBQSVJPxaBLQQorWkVSRU1TS0kgUkFET0pLQQorWkVSRU1TS0kgUkFOS08KK1pFUkVNU0tJIFJBVE9NSVIKK1pFUkVNU0tJIFJVxb1JQ0EKK1pFUkVNU0tJIFNMQVZJQ0EKK1pFUkVNU0tJIFNURVZBTgorWkVSRU1TS0kgU1RFVkFOCitaRVJFTVNLSSBURU9GQU4KK1pFUkVNU0tJIFRPTUlTTEFWCitaRVJFTVNLSSBWRVJBCitaRVJFTVNLSSBWTEFESU1JUgorWkVSRU1TS0kgVlVKQURJTgorWkVaRElOIEFMRUtTQU5EQVIgRFIKK1pHT01CQSBMQVpBUgorWkdPTUJBIFZMQURJTUlSCitaR09OSkFOSU4gTUlMQU4KK1pHT05KQU5JTiBSQURFCitaR09OSkFOSU4gUlXFvUEKK1pJREFSIE1BUklKQU4KK1pJS09WIEFORFJJSkEKK1pJS09WIERSQUdPTEpVQgorWklNQSDEjEFCQQorWklNQSBSVURPTEYKK1pJTUFOSkkgSk9WQU4KK1pJTU9OSkEgTEpVQk9NSVIKK1pJTU9OSknEhiBWTEFESU1JUgorWklOQUnEhiBDVklKRVRBCitaSU5BScSGIFVST8WgCitaSVJBTU9WIMW9QVJLTworWklSQU1PViBKRVZST1NJTUEKK1pJUkFNT1YgSkVWUk9TSU1BCitaSVJBTU9WIFNBVkEKK1pJUkFNT1YgU1RFVkFOCitaSVJEVUggTUFSSUpBTgorWklST0pFIERSQUdBTgorWklST0pFVknEhiBBTsSQQQorWklST0pFVknEhiBHT0pLTworWklST0pFVknEhiBNSUxFTktPCitaSVJPSkVWScSGIE1MQURFTgorWklST0pFVknEhiBPQlJBRAorWklST0pFVknEhiBUT01JU0xBVgorWklTSUpBREVTIE1JUkpBTkEKK1pJVkxBSyBCUkFOS08KK1pJVkxBSyBKRUxLQQorWklWTEFLIEpPVkFOCitaSVZMQUsgUEVSTworWklWTEFLIFBFUk8KK1pJVkxBSyBWTEFESU1JUgorWklWTEFLT1ZJxIYgRFJBR09MSlVCCitaSkHEjEnEhiDEkE9SxJBFCitaSkHEjEnEhiDEkE9SxJBFCitaSkHEjEnEhiBCUkFOS08KK1pKQUpJxIYgS1JTVEFOCitaSkFMScSGIERSQUdPTUlSIEFEVk9LQVQKK1pKQUxJxIYgRFJBR09NSVIKK1pKQUxJxIYgTUFSR0lUQQorWkpFVkFMTyBBTktJQ0EKK1pMQVRBTk9WScSGIEJMQUdPSkUKK1pMQVRBTk9WScSGIENWRVRLTworWkxBVEFOT1ZJxIYgUkFESVZPSgorWkxBVEFOT1ZJxIYgVElIT01JUgorWkxBVEFOT1ZJxIYgVkxBRElNSVIKK1pMQVRBTk9WU0tJIERJTUlUUklKRQorWkxBVEFOT1ZTS0kgUlVTRQorWkxBVEFSIE1JTEVOS08KK1pMQVRBUkVWIERVxaBBTgorWkxBVEFSRVYgRFXFoEFOCitaTEFUQVJFViBWRVJJQ0EKK1pMQVRBUknEhiBNT03EjElMTworWkxBVEFSScSGIFZPSklTTEFWCitaTEFUQVJPViBNSUxPVkFOCitaTEFURUsgTEFaQVIKK1pMQVRJxIxBTklOIFRPxaBPCitaTEFUScSGIE1JTE9SQUQKK1pMQVRJxIYgUkFET1NMQVYKK1pMQVRJxIYgVkVTRUxJTgorWkxBVEtPVknEhiBCT8WgS08KK1pMQVRLT1ZJxIYgQk9SSVNMQVYKK1pMQVRLT1ZJxIYgSkVMSUNBCitaTEFUS09WScSGLUpPVknEhiBPTEdJQ0EKK1pMQVRLT1ZJxIYgS0FUQVJJTkEKK1pMQVRLT1ZJxIYgTUVMQU5JSkEKK1pMQVRLT1ZJxIYgUlVTT01JUgorWkxBVEtPVknEhiBTTEHEkEFOQQorWkxBVEtPVknEhiBTTEFWS08KK1pMQVRPTknEhiBTTEFWS08KK1pMQVRPVkVSSE9WTklLT1YgxJBPUsSQRQorWkxBVE9WScSGIEpFTElTQVZFVEEKK1pMQVRPVknEhiBOSUtPTEEKK1pMScSMScSGIEFMRUtTQU5EUkEKK1pMScSMScSGIERBUklOS0EKK1pMScSMScSGIERJTUlUUklKRQorWkxJxIxJxIYgRFXFoEFOS0EgRElQTCBJTkcKK1pMScSMScSGIERVxaBBTgorWkxJxIxJxIYgSVZBTgorWkxJxIxJxIYgS0FUSUNBCitaTEnEjEnEhiBMSlVCSUNBCitaTEnEjEnEhiBNSUxBTgorWkxJxIxJxIYgTUlMT1JBRAorWkxJxIxJxIYgUkFET1ZBTgorWkxJxIxJxIYgVkFTSUxKS0EKK1pMT0pVVFJPIE1JxIZPCitaTE9KVVRSTyBNSUhBSkxPCitaTE9KVVRSTyBTVEVWTworWkxPSlVUUk8gVkFTQQorWkxPS09MSUNBIMW9SVZLTworWkxPS09MSUNBIMSQT1LEkEUKK1pMT0tPTElDQSBCT8WgS08KK1pMT0tPTElDQSBKT1JHT1ZBTktBCitaTE9LT0xJQ0EgSk9WQU4KK1pMT0tPTElDQSBKT1ZBTgorWkxPS09MSUNBIExBWkFSCitaTE9LT0xJQ0EgTEpVQklDQQorWkxPS09MSUNBIE1BUktPCitaTE9LT0xJQ0EgTUlMT8WgCitaTE9LT0xJQ0EgTUlPRFJBRworWkxPS09MSUNBIE5JS09MQQorWkxPS09MSUNBIE5PVkFLCitaTE9LT0xJQ0EgU0xBVktPCitaTE9LT0xJQ0EgU0xBVk5BCitaTE9LT0xJQ0EgU1RFVkFOCitaTE9LT0xJQ0EgU1RFVkFOCitaTE9LT0xJQ0EgVE9ET1IKK1pMT0tPTElDQSBWTEFEQQorWkxPS09MSUNBIFpMQVRBCitaTUlKQU5KQUMgTUlMQU4KK1pNUlpMSUtBUiBNSVJKQU5BCitaT8SGRVZJxIYgTUFSSUpBCitaT8SGRVZJxIYgVklUT1IKK1pPQkVOSUNBIEJJTEpBTkEKK1pPQkVOSUNBIERBTklDQQorWk9CRU5JQ0EgTUlSSkFOQQorWk9HT1ZJxIYgVlVLCitaT0tJIFNURVZBTgorWk9LScSGIFJBRE9WQU4KK1pPTE5BSSBUT01BxaAKK1pPTE5KQU4gUEFWRUwKK1pPTE9UScSGIEtBVEFSSU5BCitaT0xPVEnEhiBWRUxJTktBCitaT0xPVEnEhiBWVUtPU0FWCitaT01CT1JBQyBaVk9OS08KK1pPTkEgRElWTkEKK1pPTkFJIFBBTAorWk9OScSGIExKVUJBTgorWk9OScSGIFJJWkFICitaT1JBRCBNSUhBTEoKK1pPUkFEIFNURVZBTgorWk9SQUpBIMSQVVJBCitaT1JBSkEgRFJBR0FOCitaT1JBSkEgSUdOSkFUCitaT1JBSkEgUEVUQVIKK1pPUkFKQSBTVEVWQU4KK1pPUkFOScSGIFNMQVZJQ0EKK1pPUkFOT1ZJxIYgRFXFoEFOS0EKK1pPUkFOT1ZJxIYgSUxJSkEKK1pPUkFOT1ZJxIYgTEFaQVIKK1pPUkFOT1ZJxIYgTEFaQVIKK1pPUkFOT1ZJxIYgTUlMQU4KK1pPUkFOT1ZJxIYgTUlPRFJBRworWk9SQU5PVknEhiBTT0ZJSkEKK1pPUkFOT1ZJxIYgU1BBU0EKK1pPUkFOT1ZJxIYgU1RFVkFOCitaT1JBTk9WScSGIFNWRVRMQU5BCitaT1JJxIxJxIYgRFJBR09MSlVCCitaT1JJxIYgxIxFRE8KK1pPUknEhiDEkE9SxJBFCitaT1JJxIYgxJBPUsSQRQorWk9SScSGIMSQVVLEkElDQQorWk9SScSGIMSQVVJJQ0EKK1pPUknEhiDEkFVSTworWk9SScSGIMSQVVJPCitaT1JJxIYgxJBVUk8KK1pPUknEhiBBTsSQRUxLQQorWk9SScSGIEJPxaBLTworWk9SScSGIEJPxb1JREFSCitaT1JJxIYgQk9HREFOCitaT1JJxIYgQk9HT0xKVUIKK1pPUknEhiBCT1JJVk9KCitaT1JJxIYgQk9STworWk9SScSGIEJPUk8KK1pPUknEhiBCUkFOS0EKK1pPUknEhiBCUkFOS08KK1pPUknEhiBEQVJJTktBCitaT1JJxIYgREFSS08KK1pPUknEhiBEUkFHQU4KK1pPUknEhiBEUkFHQU4KK1pPUknEhiBEUkFHQU4KK1pPUknEhiBEUkFHT0xKVUIKK1pPUknEhiBEVcWgQU5LQQorWk9SScSGIERVxaBBTgorWk9SScSGIERVxaBBTgorWk9SScSGLUdBUkRJTk9WQcSMS0kgTUFSSUpBTkEKK1pPUknEhiBHQVZSSUxPCitaT1JJxIYgR09SREFOQQorWk9SScSGIEpFTElTQVZFVEEKK1pPUknEhiBKRUxJU0FWRVRBCitaT1JJxIYgSk9WQU4KK1pPUknEhiBLQVRBCitaT1JJxIYgS0xBUkEKK1pPUknEhiBLT1NUQURJTgorWk9SScSGIEtPVklMSktBCitaT1JJxIYgTEFaQVIKK1pPUknEhiBMVUtBCitaT1JJxIYgTUFSSUpBCitaT1JJxIYgTUFSS08KK1pPUknEhiBNSUtBCitaT1JJxIYgTUlMQU4KK1pPUknEhiBNSUxBTgorWk9SScSGIE1JTEFOCitaT1JJxIYgTUlMQU4KK1pPUknEhiBNSUxBTgorWk9SScSGIE1JTEVWQQorWk9SScSGIE1JTElDQQorWk9SScSGIE1JTElDQQorWk9SScSGIE1JTE9SQUQKK1pPUknEhiBNSUxPUkFECitaT1JJxIYgTUlMT1JBRAorWk9SScSGIE1JTE9SQUQKK1pPUknEhiBNSUxPUkFECitaT1JJxIYgTUlPRFJBRworWk9SScSGIE1JUktPIElORworWk9SScSGIE1JUktPCitaT1JJxIYgTUlST1NMQVYKK1pPUknEhiBOSUtPTEEKK1pPUknEhiBOSUtPTEEKK1pPUknEhiBOSUtPTEEKK1pPUknEhiBQQVZMRQorWk9SScSGIFBFUkEKK1pPUknEhiBQRVRBUgorWk9SScSGIFBFVEtPCitaT1JJxIYgUkFERQorWk9SScSGIFJBREUKK1pPUknEhiBTQVZBCitaT1JJxIYgU0lNQQorWk9SScSGIFNJTUVPTgorWk9SScSGIFNMQVZJQ0EKK1pPUknEhiBTTE9CT0RBTgorWk9SScSGIFNORcW9QU5BCitaT1JJxIYgU09LQQorWk9SScSGIFNQQVNPSkUKK1pPUknEhiBTVEFOS08KK1pPUknEhiBTVE9KQU4KK1pPUknEhiBTVkVUS08KK1pPUknEhiBTVkVUS08KK1pPUknEhiBWQVNJTElKRQorWk9SScSGIFZFTElNSVIKK1pPUknEhiBWRUxKS08gRElQTCBJTkcKK1pPUknEhiBWTEFESVNMQVYKK1pPUknEhiBWTEFETworWk9SScSGIFZPSklOCitaT1JJxIYgVk9KS0EKK1pPUknEhiBaRFJBVktBCitaT1JJxIYgWk9SSUNBCitaT1JJxIYgWlZPTklNSVIKK1pPUklDQSBBQ08KK1pPUklDQSBEVcWgQU4KK1pPUklDQSBNQVJLTworWk9SSUpBTiBFTUlMCitaT1JKQU4gQlJBTktPCitaT1JKQU4gSkFOS08KK1pPUktJxIYgxb1JVktPCitaT1JOSUpBIEJSQU5LTworWk9STklKQSBWTEFESVNMQVYKK1pPUk5JSyBBTERBCitaT1JaScSGIE1JTE9SQUQKK1pPVElOIMSQT1LEkEUKK1pPVElOIFNBVkEKK1pPVElOIFNMQVZPTEpVQgorWk9UT1ZJxIYgQUxFS1NBTkRBUgorWk9UT1ZJxIYgT0JSQUQKK1pPVknEhiBBTkEKK1pPVknEhiBEVcWgQU4KK1pPVknEhiBNSUxPVkFOCitaT1ZJxIYgTUlST1NMQVYKK1pPVktPIMWgSU1VTgorWk9WS08gSUxJSkEKK1pPVktPIEpPU0lQCitaT1ZLTyBNQU5EQQorWk9WS08gTUFSSkFOCitaT1pVSyBMSlVCT01JUgorWlJJTEnEhiBOQURBCitaUklMScSGIFZFUkEKK1pSSUxJxIYgVkxBRElNSVIgRFIgTEVLQVIKK1pSTknEhiDFoFBJUk8KK1pSTknEhiDEkE9SxJBFCitaUk5JxIYgxJBVUk8KK1pSTknEhiDEkFVSTworWlJOScSGIEJSQU5LTworWlJOScSGIERVxaBBTgorWlJOScSGIEdPSktPCitaUk5JxIYgR09KS08KK1pSTknEhiBKT1ZBTgorWlJOScSGIExBWkFSCitaUk5JxIYgTUFKQQorWlJOScSGIE1BTElOQQorWlJOScSGIE1BTkUgRElQTCBJTkcKK1pSTknEhiBNQU5FCitaUk5JxIYgTUFSSU5LTworWlJOScSGIE1JTEFOCitaUk5JxIYgTUlMQU4KK1pSTknEhiBNSUxPxaAKK1pSTknEhiBNSVJKQU5BCitaUk5JxIYgTUlST0xKVUIKK1pSTknEhiBORU5BRAorWlJOScSGIE5JS09MQQorWlJOScSGIFBFVEFSCitaUk5JxIYgU0lOScWgQQorWlJOScSGIFNMT0JPREFOCitaUk5JxIYgU1LEkEFOCitaUk5JxIYgVkxBRE8KK1pSTknEhiBaT1JBTgorWlJOScSGIFpPUkFOCitaVUJBQyDEjEVET01JUgorWlVCQUMgRElWTkEKK1pVQkFDIE1JTEFOCitaVUJBQyBQRVJPCitaVUJBSyBTVEVWQU4KK1pVQkFOIFBFVEFSCitaVUJBTk9WIEJSQU5JU0xBVgorWlVCQU5PViBWTEFESU1JUgorWlVCRVIgRFXFoEFOCitaVUJFUiBNQVJLTworWlVCRVJFQyBKT1ZBTgorWlVCScSGIMW9QVJLTworWlVCScSGIMSQVVLEkEEKK1pVQknEhiBCSUxKQU5BCitaVUJJxIYgQk/FvU8KK1pVQknEhiBCUkFOSVNMQVZBCitaVUJJxIYgRFJBR08KK1pVQknEhiBKT1ZPCitaVUJJxIYgTEFaTworWlVCScSGIFBFVEFSCitaVUJJxIYgUkFET1NMQVYKK1pVQknEhiBSQVRLTworWlVCScSGIFZFUkEKK1pVQknEhiBWRVJLQQorWlVCT1YgQURFTEEKK1pVQk9WScSGIEFORFJJSkEKK1pVQk9WScSGIE1JUkpBTkEKK1pVQk9WScSGIFNMT0JPREFOCitaVUJPVknEhiBTVEVWQU4KK1pVQ0FKScSGIEpFTEVOQQorWlVLScSGIEdPSktPCitaVUtPVknEhiBNSUxJTktPCitaVUxJxIYgQUdORcWgCitaVU1CVUxPVknEhiBQUkVEUkFHCitaVVBBTsSMScSGIEZSQU5DCitaVVBBTsSMScSGIElWQU4KK1pVUEFOQyBEQVJLTworWlVQQU5DIFJBSktPCitaVVBLT1YgxJBVUkEKK1pVUEtPViBNSVJPU0xBVgorWlVSS09WScSGIMSQT1LEkEUKK1pVUktPVknEhiBBTEVLU0FOREFSCitaVVJLT1ZJxIYgQk9HT0xKVUIKK1pVUktPVknEhiBEVcWgQU4KK1pVUktPVknEhiBHQVZSQQorWlVSS09WScSGIE1JUkpBTkEKK1pVUktPVknEhiBOSUtPTEEKK1pVUktPVknEhiBSQURPU0xBVgorWlVSS09WScSGIFJVxb1BCitaVVJLT1ZJxIYgVkVSQQorWlVST1ZBQyBKT1ZPCitaVVJPVkFDIFZFTEpLTworWlVWScSGIE9CUkFECitaVVpBS1UgUkVExb1FUAorWlZBUkEgSlVMSUpBCitaVkVLQU5PVknEhiBKT1NJUAorWlZFS0nEhiBEVcWgQU5LQQorWlZFS0nEhiBKVUdPU0xBVgorWlZFS0nEhiBNQVJJSkEKK1pWRUtJxIYgTUlMQU4KK1pWRUtJxIYgTkFEQQorWlZFS0nEhiBQRVRBUgorWlZFS0nEhiBTSU5JxaBBCitaVkVLScSGIFZFTElNSVIKK1pWRVLFvUlOQSBKT1NJUAorWlZFWkRBTk9WScSGIEJPUkEKK1pWRVpEQU5PVknEhiBUT01BCitaVkVaRElOIEpPVkFOS0EKK1pWSUpFUiBNSUxPUkFECitaVklaREnEhiBNRUhNRUQKK1pWT8WgRUMgS0xBUkEKK1pWT05BUkVWScSGIEtBVEEKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19TZXJiaWFuU1IudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NlcmJpYW5TUi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE1NzYwYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19TZXJiaWFuU1IudHh0CkBAIC0wLDAgKzEsNjEyNTQgQEAKK++7vyMvKioNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoNCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisjICovDQorDQor0KfQkNCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQkNCn0JjQiyDQiNCV0JvQmNCm0JAKK9Cn0JDQp9CY0Isg0JzQkNCg0JjQiNCQCivQp9CQ0KfQmNCLINCd0JjQmtCe0JvQkAor0KfQkNCn0JjQiNCQINCR0KDQkNCd0JrQngor0KfQkNCC0JXQndCe0JLQmNCLINCW0JDQoNCa0J4KK9Cn0JDQgtCV0J3QntCS0JjQiyDQodCQ0JHQmNCd0JAKK9Cn0JDQkdCQ0Jgg0JDQndCU0KDQmNCI0JAKK9Cn0JDQkdCQ0Jgg0JvQkNCI0J7QqAor0KfQkNCR0JDQmCDQnNCQ0KDQmNCI0JAKK9Cn0JDQkdCQ0Jgg0KHQotCV0JLQkNCdCivQp9CQ0JHQkNCYINCh0KLQldCS0JDQnQor0KfQkNCR0JDQoNCa0JDQn9CQINCR0KDQkNCd0JrQngor0KfQkNCR0JDQoNCa0JDQn9CQINCc0JjQm9CV0J3QmtCeCivQp9CQ0JHQkNCg0JrQkNCf0JAg0JzQmNCg0J7QodCb0JDQkgor0KfQkNCR0JDQoNCa0JDQn9CQINCh0JjQnNCeCivQp9CQ0JHQkNCg0JrQkNCf0JAg0KHQotCQ0J3QmtCeCivQp9CQ0JHQkNCg0JrQkNCf0JAg0KLQkNCc0JDQoNCQCivQp9CQ0JHQkNCg0JrQkNCf0JAg0KLQntCc0JDQqAor0KfQkNCR0JTQkNCg0JjQiyDQndCY0JrQntCb0JAKK9Cn0JDQkdCU0JDQoNCY0Isg0JfQntCg0JjQptCQCivQp9CQ0JHQmCDQndCQ0J3QlNCe0KAKK9Cn0JDQkdCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cn0JDQkdCg0JDQlNCYINCQ0JPQndCV0JfQmNCI0JAKK9Cn0JDQkdCg0JDQlNCYINCY0JLQkNCdCivQp9CQ0JHQoNCQ0JTQmCDQiNCV0JvQldCd0JAKK9Cn0JDQkdCg0JDQlNCYINCJ0KPQkdCY0KbQkAor0KfQkNCR0KDQkNCU0Jgg0KHQotCV0JLQkNCdCivQp9CQ0JHQoNCU0JAg0JzQkNCg0KLQmNCdCivQp9CQ0JHQoNCY0JvQniDQkdCe0JPQlNCQ0J0KK9Cn0JDQkdCg0JjQm9CeINCR0KDQkNCd0JjQodCb0JDQkgor0KfQkNCR0KDQmNCb0J4g0JvQkNCX0JDQoAor0KfQkNCR0KDQmNCb0J4g0InQo9CR0JjQptCQCivQp9CQ0JHQoNCY0JvQniDQodCf0JDQodCe0IjQkAor0KfQkNCU0JXQqCDQl9CU0JXQndCa0JAKK9Cn0JDQlNCV0KHQmtCYINCR0JvQkNCT0J7QiNCVCivQp9CQ0JTQntCS0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JDQk9CJ0JXQktCY0Isg0KLQntCc0JAKK9Cn0JDQk9Ce0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQp9CQ0IjQkCDQktCQ0J3QmtCQCivQp9CQ0IjQmNCLINCR0J7Qk9Ce0InQo9CRCivQp9CQ0IjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cn0JDQiNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KfQkNCa0KjQmNCg0JDQnSDQnNCY0JvQkNCU0JjQnQor0KfQkNCa0JDQnSDQldCj0JPQldCdCivQp9CQ0JrQkNCdINCV0JLQk9CV0J3QmNCI0JUKK9Cn0JDQmtCQ0J0g0JjQktCQ0J0KK9Cn0JDQmtCQ0J0g0IjQo9Cb0JjQiNCQ0J0KK9Cn0JDQmtCQ0J0g0JzQmNCl0JDQiNCb0J4KK9Cn0JDQmtCQ0J0g0KHQotCV0JLQkNCdCivQp9CQ0JrQkNCdINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JDQmtCQ0J0g0JLQm9CQ0JTQmNCc0JjQoAor0KfQkNCa0JDQnSDQktCb0JDQlNCY0JzQmNCgCivQp9CQ0JrQkNCg0JAg0JDQndCQCivQp9CQ0JrQkNCg0JXQktCY0Isg0JzQntCc0JjQoAor0KfQkNCa0JDQoNCV0JLQmNCLINCd0JXQlNCV0InQmtCeCivQp9CQ0JrQmCDQqNCQ0J3QlNCe0KAKK9Cn0JDQmtCYINCQ0JzQkNCb0JjQiNCQCivQp9CQ0JrQmCDQkNCd0JTQoNCQ0KgKK9Cn0JDQmtCYINCb0JDQlNCY0KHQm9CQ0JIKK9Cn0JDQmtCYINCb0JDQiNCe0KgKK9Cn0JDQmtCYINCb0JDQodCb0J4KK9Cn0JDQmtCYINCc0JjQpdCQ0IkKK9Cn0JDQmtCYINCc0JjQpdCQ0IkKK9Cn0JDQmtCYINCf0JjQoNCe0KjQmtCQCivQp9CQ0JrQmNCLINCh0JDQktCQCivQp9CQ0JrQmNCLINCX0JvQkNCi0J7QiNCVINCU0KAKK9Cn0JDQmtCc0JDQmiDQlNCQ0J3QmNCm0JAKK9Cn0JDQmtCc0JDQmiDQlNCV0IjQkNCdCivQp9CQ0JrQnNCQ0Jog0JvQkNCX0JDQoAor0KfQkNCa0JzQkNCaINCJ0JjQidCQ0J3QkAor0KfQkNCa0JzQkNCaINCJ0KPQkdCY0KbQkAor0KfQkNCa0JzQkNCaINCh0J7QpNCY0IjQkAor0KfQkNCa0JzQkNCaINCh0JLQldCi0J7Ql9CQ0KAKK9Cn0JDQmtCc0JDQmyDQktCe0IjQmNCh0JvQkNCSCivQp9CQ0JrQntCS0JDQpiDQkdCe0KDQmNCh0JvQkNCSCivQp9CQ0JrQntCS0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQp9CQ0JrQntCS0JDQpiDQn9CQ0J3QotCV0JvQmNCI0JAKK9Cn0JDQmtCe0JLQkNCmINCh0JDQktCQCivQp9CQ0JrQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0KfQkNCa0KDQkCDQnNCY0JvQldCd0JAKK9Cn0JDQm9CQINCC0KPQm9CQCivQp9CQ0JvQkCDQmNCg0JXQnQor0KfQkNCb0JAg0JjQktCQ0J3QmtCQCivQp9CQ0JvQkCDQm9CV0J3QmtCQCivQp9CQ0JvQkNCa0JjQiyDQkdCg0JDQndCa0J4KK9Cn0JDQm9CQ0JrQmNCLINCJ0KPQkdCe0JzQmNCgCivQp9CQ0JvQkNCa0JjQiyDQnNCQ0KDQmtCeCivQp9CQ0JvQkNCa0JjQiyDQnNCY0JvQkNCdCivQp9CQ0JvQlSDQmNCS0JDQnQor0KfQkNCb0JUg0IjQntCh0JjQnwor0KfQkNCb0JUg0JzQmNCb0JDQnQor0KfQkNCb0JUg0KHQntCk0JjQiNCQCivQp9CQ0JvQlSDQktCb0JDQlNCY0JzQmNCgCivQp9CQ0JvQldCd0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQp9CQ0JvQldCd0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0KfQkNCb0JXQndCY0Isg0JTQmNCd0JAKK9Cn0JDQm9CV0J3QmNCLINCU0KDQkNCT0JjQptCQCivQp9CQ0JvQldCd0JjQiyDQm9CQ0JfQkNCgCivQp9CQ0JvQldCd0JjQiyDQidCY0InQkNCd0JAKK9Cn0JDQm9CV0J3QmNCLINCJ0KPQkdCe0JzQmNCgCivQp9CQ0JvQldCd0JjQiyDQm9Cj0JrQkAor0KfQkNCb0JXQndCY0Isg0JzQmNCb0J7QodCQ0JLQkAor0KfQkNCb0JXQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cn0JDQm9CV0J3QmNCLINCh0KLQldCS0JDQnQor0KfQkNCb0JjQiyDQkdCe0KjQmtCeCivQp9CQ0JvQmNCLINCI0J7QktCeCivQp9CQ0JvQmNCLINCc0JDQoNCY0IjQkAor0KfQkNCb0JjQiNCQINCU0JDQndCY0KbQkAor0KfQkNCb0JjQiNCQINCI0J7QktCQ0J0KK9Cn0JDQm9CY0IjQkCDQm9CQ0JfQkNCgCivQp9CQ0JvQmNCI0JAg0JzQmNCb0JDQnQor0KfQkNCc0ILQmNCLINCI0JDQpdCY0IjQkAor0KfQkNCc0JDQndCT0J7QoSDQgtCe0KDQgtCVCivQp9CQ0JzQkNCd0JPQntChINCa0JDQotCY0KbQkAor0KfQkNCc0JHQldCgINCJ0KPQkdCY0KbQkAor0KfQkNCc0JHQntCgINCC0KPQoNCeCivQp9CQ0JzQkdCe0KAg0JDQndCU0KDQmNCI0JAKK9Cn0JDQnNCR0J7QoCDQiNCe0KHQmNCfCivQp9CQ0JzQj9CY0Isg0J3QldCQ0JQKK9Cn0JDQnNCeINCR0JDQoNCR0JDQoNCQCivQp9CQ0JzQn9Cg0JDQkyDQgtCe0KDQgtCVINCb0JXQmtCQ0KAKK9Cn0JDQnNCf0KDQkNCTINCU0KDQkNCT0JAKK9Cn0JDQnNCf0KDQkNCTINCU0KPQqNCQ0J0KK9Cn0JDQnNCf0KDQkNCTINCJ0KPQkdCY0KbQkAor0KfQkNCc0J/QoNCQ0JMg0JzQmNCb0JDQnQor0KfQkNCd0KfQkNCgINCC0J7QoNCC0JUKK9Cn0JDQndCn0JDQoNCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQp9CQ0J3Qp9CQ0KDQldCS0JjQiyDQnNCY0KDQntCJ0KPQkQor0KfQkNCd0KfQkNCg0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQp9CQ0J3QkNCP0JjQiyDQgtCe0KDQgtCVCivQp9CQ0J3QkNCP0JjQiyDQiNCe0JLQkNCdCivQp9CQ0J3QkNCP0JjQiyDQodCQ0IrQkAor0KfQkNCd0JDQlNCQ0J3QntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0KfQkNCd0JDQlNCQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQp9CQ0J3QkNCU0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQp9CQ0J3QkNCU0Jgg0IjQkNCd0J7QqCDQnNCgCivQp9CQ0J3QkNCU0Jgg0InQmNCJ0JDQndCQCivQp9CQ0J3QkNCT0JvQmNCLINCC0J7QmtCQCivQp9CQ0J3QkNCaINCW0JXQidCa0J4KK9Cn0JDQndCQ0Jog0ILQo9Cg0JAKK9Cn0JDQndCQ0Jog0JHQntCh0JjQidCa0JAg0JTQoAor0KfQkNCd0JDQmiDQnNCY0KXQkNCI0JvQngor0KfQkNCd0JDQmiDQnNCY0KDQmtCeCivQp9CQ0J3QkNCaINCc0J7QnNCn0JjQm9CeCivQp9CQ0J3QkNCaINCd0JXQktCV0J3QmtCQCivQp9CQ0J3QkNCaINCd0JjQmtCe0JvQkAor0KfQkNCd0JDQmiDQndCY0JrQntCb0JAKK9Cn0JDQndCQ0Jog0J3QmNCa0J7Qm9CQCivQp9CQ0J3QkNCaINCe0JvQmNCS0JXQoNCQCivQp9CQ0J3QkNCaINCS0JXQidCa0J4KK9Cn0JDQndCQ0Jog0JLQldCh0JXQm9CY0J0KK9Cn0JDQndCQ0Jog0JLQo9Ca0JDQqNCY0J0KK9Cn0JDQndCT0JDQm9CY0Isg0JTQo9Co0JDQnQor0KfQkNCd0JjQiyDQidCY0InQkNCd0JAKK9Cn0JDQndCY0Isg0JzQmNCb0J7QqAor0KfQkNCd0JjQiyDQntCh0KLQntCI0JAKK9Cn0JDQitCV0JLQkNCmINCo0JDQoNCb0J7QotCQCivQp9CQ0IrQmCDQkNCd0JTQoNCY0IjQkAor0KfQkNCK0Jgg0JPQkNCR0JgKK9Cn0JDQitCYINCT0JDQkdCe0KAKK9Cn0JDQitCYINCT0JjQl9CV0JvQkAor0KfQkNCK0Jgg0JjQoNCV0J3QkAor0KfQkNCK0Jgg0JjQoNCV0J3QkAor0KfQkNCK0Jgg0IjQkNCd0JrQngor0KfQkNCK0Jgg0JrQkNCg0JvQngor0KfQkNCK0Jgg0JvQkNCh0JvQngor0KfQkNCK0Jgg0JvQkNCh0JvQngor0KfQkNCK0Jgg0J3QkNCU0JAKK9Cn0JDQitCYINCh0JDQnNCj0JXQmwor0KfQkNCK0Jgg0KHQotCV0JLQkNCdCivQp9CQ0IrQmCDQodCi0JXQktCQ0J0KK9Cn0JDQitCYINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JDQitCYINCX0J7Qm9Ci0JDQnQor0KfQkNCK0Jgg0JfQo9CX0JDQndCQCivQp9CQ0J3QmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cn0JDQndCa0J7QktCY0Isg0JHQntCo0JrQngor0KfQkNCd0JrQntCS0JjQiyDQkdCe0IjQkAor0KfQkNCd0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cn0JDQndCa0J7QktCY0Isg0JTQkNCd0JUKK9Cn0JDQndCa0J7QktCY0Isg0JTQkNCd0JUKK9Cn0JDQndCa0J7QktCY0Isg0JTQkNCd0JUKK9Cn0JDQndCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQp9CQ0J3QmtCe0JLQmNCLINCI0J7QktCQCivQp9CQ0J3QmtCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQp9CQ0J3QmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KfQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQp9CQ0J3QmtCe0JLQmNCLINCc0JjQmtCQCivQp9CQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cn0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KfQkNCd0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KfQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KfQkNCd0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cn0JDQndCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cn0JDQndCa0J7QktCY0Isg0J/QldCi0JDQoCDQnNCgCivQp9CQ0J3QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cn0JDQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cn0JDQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cn0JDQndCa0J7QktCY0Isg0KHQm9CQ0ILQkNCd0JAKK9Cn0JDQndCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQp9CQ0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cn0JDQndCa0J7QktCY0Isg0JfQm9CQ0KLQkAor0KfQkNCd0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQp9CQ0J8g0JDQndCi0JDQmwor0KfQkNCf0JDQndCU0JAg0IjQntCh0JjQnwor0KfQkNCf0JXQidCQINCU0KDQkNCT0JDQnQor0KfQkNCf0JXQidCQINCI0JDQnSDQlNCgCivQp9CQ0J/QldCJ0JAg0IjQntCS0JDQnQor0KfQkNCf0JXQidCQINCf0JDQktCb0JUKK9Cn0JDQn9Ca0J4g0IjQo9Cb0JjQiNCQ0J0KK9Cn0JDQn9Ca0J4g0JzQmNCb0J7QoNCQ0JQKK9Cn0JDQn9Ca0J4g0JzQmNCg0J7QodCb0JDQkgor0KfQkNCf0JrQniDQndCV0KHQotCe0KAKK9Cn0JDQn9CeINCQ0JTQkNCcCivQp9CQ0J/QniDQmNCb0JjQiNCQCivQp9CQ0J/QniDQiNCQ0J3QntCoCivQp9CQ0J/QniDQnNCQ0KDQmNCI0JAKK9Cn0JDQn9CeINCd0JDQlNCQCivQp9CQ0J/QoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cn0JDQoNCQ0J/QmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cn0JDQodCK0Jgg0JXQoNCW0JXQkdCV0KIKK9Cn0JDQodCK0Jgg0KTQldCg0JXQndCmCivQp9CQ0KHQotCS0JXQnSDQiNCj0JvQmNCI0JDQndCQCivQp9CQ0KIg0JDQndCU0KDQmNCI0JAKK9Cn0JDQotCQ0JvQmNCd0JDQpiDQnNCY0JvQkNCdCivQp9CQ0KLQkNCb0JjQndCQ0KYg0J3QmNCa0J7Qm9CQCivQp9CQ0KLQkNCb0J7QkiDQodCi0J7QiNCQ0J0KK9Cn0JDQotCb0JDQiNCQINCh0KLQkNCd0JAKK9Cn0JDQotCb0JDQmiDQntCb0JjQktCV0KDQkAor0KfQkNCi0KPQqCDQl9Cb0JDQotCa0J4KK9Cn0JDQo9Co0JXQktCY0Isg0JrQldCc0JDQmwor0KfQkNCj0KjQldCS0JjQiyDQnNCY0JTQpdCQ0KIKK9Cn0JDQo9Co0JXQktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cn0JDQktCY0Isg0KjQotCV0KTQmNCm0JAKK9Cn0JDQktCY0Isg0JbQmNCS0JrQkAor0KfQkNCS0JjQiyDQgtCe0KDQgtCVCivQp9CQ0JLQmNCLINCR0J7QqNCa0J4KK9Cn0JDQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQp9CQ0JLQmNCLINCU0JXQiNCQ0J0KK9Cn0JDQktCY0Isg0JTQldCI0JDQnQor0KfQkNCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KfQkNCS0JjQiyDQlNCg0JDQk9CeCivQp9CQ0JLQmNCLINCT0J7QoNCU0JDQndCQCivQp9CQ0JLQmNCLINCT0J7QoNCU0JDQndCQCivQp9CQ0JLQmNCLINCa0KDQodCi0JDQnQor0KfQkNCS0JjQiyDQidCj0JHQntCc0JjQoAor0KfQkNCS0JjQiyDQidCj0JHQntCc0JjQoAor0KfQkNCS0JjQiyDQidCj0JHQntCc0JjQoAor0KfQkNCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cn0JDQktCY0Isg0JzQmNCb0JXQndCQCivQp9CQ0JLQmNCLINCc0JjQoNCa0J4KK9Cn0JDQktCY0Isg0J/QldCi0JDQoAor0KfQkNCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KfQkNCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KfQkNCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQp9CQ0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cn0JDQktCY0Isg0KHQntCa0JAKK9Cn0JDQktCY0Isg0KLQntCo0JAKK9Cn0JDQktCY0Isg0JLQldCb0JjQl9CQ0KAKK9Cn0JDQktCY0Isg0JLQm9CQ0JTQngor0KfQkNCS0JjQiyDQl9Ce0KDQmtCQCivQp9CQ0JfQmNCcINCn0JXQm9CV0JHQmNCI0JAKK9Cn0JXQp9CV0Jog0JTQoNCQ0JPQmNCm0JAKK9Cn0JXQp9CV0Jog0JLQmNCb0JjQnAor0KfQldCn0KPQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQldCn0KPQmiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cn0JXQp9Cj0Jog0JzQmNCb0J7QqAor0KfQldCn0KPQmiDQodCb0JDQktCY0KbQkAor0KfQldCn0KPQmiDQodCi0JXQktCQ0J0KK9Cn0JXQqNCJ0JDQoCDQgtCj0KDQkAor0KfQldCo0InQkNCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQp9CV0KjQidCQ0KAg0JTQkNCg0JjQndCa0JAKK9Cn0JXQqNCJ0JDQoCDQiNCe0KHQmNCfCivQp9CV0KjQidCQ0KAg0IjQntCS0JDQnQor0KfQldCo0InQkNCgINCh0KLQldCS0JDQnQor0KfQldCo0InQldCS0JjQiyDQlNCj0KjQkNCdCivQp9CV0KjQidCV0JLQmNCLINCa0J7QodCi0JAKK9Cn0JXQqNCJ0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cn0JXQqNCJ0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQp9CV0KjQidCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQp9CV0KjQidCV0JLQmNCLINCh0KLQkNCd0JrQngor0KfQldCR0JDQpiDQidCj0JHQmNCm0JAKK9Cn0JXQkdCQ0KYg0J/QkNCS0JvQlQor0KfQldCR0JXQj9CY0Isg0JzQmNCb0JDQnQor0KfQldCR0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JXQkdCX0JDQnSDQn9CQ0J3QotCQCivQp9CV0JTQmNCLINCg0JXQj9CeCivQp9CV0JPQkNCgINCR0J7QltCeCivQp9CV0JPQkNCgINCU0JXQodCQ0J3QmtCQCivQp9CV0JPQkNCgINCU0KDQkNCT0JDQnQor0KfQldCT0JDQoCDQnNCY0JvQntCoCivQp9CV0JPQkNCgINCc0JjQoNCa0J4KK9Cn0JXQk9CQ0KAg0J/QkNCd0JUKK9Cn0JXQk9CQ0KAg0KHQoNCV0KLQmtCeCivQp9CV0JPQkNCgINCh0KLQldCS0JDQndCY0IjQkAor0KfQldCT0JDQoCDQodCS0JXQotCb0JDQndCQCivQp9CV0JPQkNCgINCi0J7QlNCe0KAKK9Cn0JXQpSDQkNCd0KLQntCdCivQp9CV0KUg0IjQntCW0JXQpAor0KfQldClINCI0J7QodCY0J8KK9Cn0JXQpSDQiNCe0JLQkNCdCivQp9CV0KUg0JzQmNCa0JvQntCoCivQp9CV0KUg0KHQotCQ0J3QmtCQCivQp9CV0KUg0JfQm9CQ0KLQkAor0KfQldCl0JDQmiDQmtCQ0JvQnNCQ0J0g0JTQoAor0KfQldCl0J7QkiDQmNCS0JDQnQor0KfQldCl0J7QkiDQn9CV0KLQkNCgCivQp9CV0IjQntCS0JjQiyDQkdCY0KHQldCg0JrQkAor0KfQldCI0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KfQldCI0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cn0JXQiNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cn0JXQmtCQ0J3QntCS0JjQiyDQltCY0JLQkNCd0JAKK9Cn0JXQmtCQ0J3QntCS0JjQiyDQktCY0KLQntCc0JjQoAor0KfQldCa0JUg0JTQldCW0JUKK9Cn0JXQmtCVINCc0JDQoNCY0IjQkAor0KfQldCa0JUg0KHQndCV0JbQkNCd0JAKK9Cn0JXQmtCVINCh0KLQldCS0JDQnQor0KfQldCa0JXQoNCV0JLQkNCmINCR0KDQkNCd0JrQngor0KfQldCa0JXQoNCY0J3QkNCmINCU0KPQqNCQ0J0KK9Cn0JXQmtCV0KDQmNCd0JDQpiDQl9Ce0KDQkNCdCivQp9CV0JrQmCDQlNCQ0KDQmNCd0JrQkAor0KfQldCa0Jgg0JTQkNCS0JjQlAor0KfQldCa0JjQiyDQkNCd0JAKK9Cn0JXQmtCY0Isg0JTQkNCg0JjQndCa0JAKK9Cn0JXQmtCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQp9CV0JrQmNCLINCU0KDQkNCT0JDQnQor0KfQldCa0JjQiyDQmNCb0JjQiNCQCivQp9CV0JrQmNCLINCI0J7QktCQ0J0KK9Cn0JXQmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cn0JXQmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cn0JXQmtCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cn0JXQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cn0JXQmtCY0Isg0JzQntCc0KfQmNCb0J4KK9Cn0JXQmtCY0Isg0KHQkNCS0JAKK9Cn0JXQmtCY0Isg0KHQkNCS0JAKK9Cn0JXQmtCY0Isg0JLQkNCh0JAKK9Cn0JXQmtCY0Isg0JfQlNCg0JDQktCa0J4KK9Cn0JXQmtCg0I/QmNCdINCg0JDQlNCY0KHQm9CQ0JIKK9Cn0JXQm9CQ0KAg0KHQotCV0JLQkNCdCivQp9CV0JvQldCR0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQldCb0JXQkdCY0Isg0JHQntCW0J4KK9Cn0JXQm9CV0JHQmNCLINCY0JvQmNCI0JAKK9Cn0JXQm9CV0JHQmNCLINCc0JjQm9Ce0KDQkNCUCivQp9CV0JvQldCR0JjQiyDQnNCe0JzQp9CY0JvQngor0KfQldCb0JXQkdCY0Isg0J7Qm9CT0JAKK9Cn0JXQm9CV0JHQmNCLLdCi0KPQkdCY0Isg0JLQldCh0J3QkAor0KfQldCb0JXQkdCY0Isg0JfQntCg0JrQkAor0KfQldCb0JXQmtCV0KLQmNCLINCI0J7QktCQ0J0KK9Cn0JXQm9CV0JrQldCi0JjQiyDQiNCe0JLQkNCdCivQp9CV0JvQldCa0JXQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KfQldCb0JXQmtCV0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cn0JXQm9CV0JrQldCi0JjQiyDQoNCQ0JTQntCS0JDQnQor0KfQldCb0JXQmtCV0KLQmNCLINCi0JDQnNCQ0KDQkAor0KfQldCb0JXQndCQ0Jog0JrQkNCi0JDQm9CY0J0KK9Cn0JXQm9CV0KHQndCY0Jog0JTQoNCQ0JPQo9Ci0JjQnQor0KfQldCb0JjQiyDQkdCQ0J3QlQor0KfQldCb0JjQiyDQlNCY0J3QmtCQCivQp9CV0JvQmNCLINCT0JvQmNCT0J7QoNCY0IjQlQor0KfQldCb0JjQiyDQmNCb0JjQiNCQCivQp9CV0JvQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cn0JXQm9CY0Isg0InQo9CR0JjQndCa0J4KK9Cn0JXQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cn0JXQm9CY0Isg0JzQmNCb0JjQktCe0IgKK9Cn0JXQm9CY0Isg0J/QkNCS0JvQlQor0KfQldCb0JjQiyDQodCg0ILQkNCdCivQp9CV0JvQmNCLINCh0KLQkNCd0JrQniDQlNCgCivQp9CV0JvQmNCLINCS0JXQoNCQCivQp9CV0JvQmNCm0JAg0IjQldCb0JXQndCQCivQp9CV0JvQmNCa0J7QktCY0Isg0JXQnNCY0JsKK9Cn0JXQm9Ce0KTQmNCT0JAg0JDQndCi0J7QndCY0IjQkAor0KfQldCb0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cn0JXQm9Ce0JLQodCa0Jgg0JDQndCU0KDQldCICivQp9CV0JvQntCS0KHQmtCYINCU0KDQkNCT0JjQptCQCivQp9CV0JzQkNCdINCC0J7QoNCC0JUKK9Cn0JXQnNCQ0J0g0ILQo9Cg0JAKK9Cn0JXQnNCQ0J0g0JDQndCU0KDQmNCI0JAKK9Cn0JXQnNCQ0J0g0JTQkNCd0JjQm9CeCivQp9CV0JzQkNCdINCT0J7QoNCU0JDQndCQCivQp9CV0JzQkNCdINCI0JDQnQor0KfQldCc0JDQnSDQiNCe0JLQkNCdCivQp9CV0JzQkNCdINCc0JjQqNCQCivQp9CV0JzQkNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Cn0JXQnNCQ0J0g0J7Qm9CT0JAKK9Cn0JXQnNCQ0J0g0KDQo9CW0JXQndCa0JAKK9Cn0JXQnNCQ0J0g0KHQkNCc0KPQldCbCivQp9CV0JzQkNCdINCh0KLQldCS0JDQnQor0KfQldCc0JDQnSDQotCV0KDQldCX0JAKK9Cn0JXQnNCR0JjQiyDQnNCY0JvQkNCdCivQp9CV0JzQldCg0JUg0JXQoNCW0JXQkdCV0KIKK9Cn0JXQnNCV0KDQlSDQm9CQ0IjQntCoCivQp9CV0JzQldCg0JvQmNCLINCf0JXQotCQ0KAKK9Cn0JXQndCU0JXQqCDQkdCg0JDQndCa0J4KK9Cn0JXQndCV0IjQkNCmINCW0JjQktCQ0J0KK9Cn0JXQndCV0IjQkNCmINCT0KDQo9CI0JAKK9Cn0JXQndCV0IjQkNCmINCJ0KPQkdCY0KbQkAor0KfQldCd0JXQiNCQ0KYg0InQo9CR0JjQptCQCivQp9CV0J3QldCI0JDQpiDQnNCY0JvQntCoCivQp9CV0J3QldCI0JDQpiDQnNCY0JvQo9Ci0JjQnQor0KfQldCd0JXQiNCQ0KYg0KLQntCc0JjQodCb0JDQkgor0KfQldCd0JXQiNCQ0KYg0JLQldCb0JjQodCb0JDQkgor0KfQldCd0JPQldCg0Jgg0JDQotCY0JvQkAor0KfQldCd0JPQmNCLINCc0JDQoNCY0IjQkAor0KfQldCd0KPQqNCQINCT0JXQntCg0JPQmNCd0JAKK9Cn0JXQn9Cn0JDQitCYINCc0JjQoNCI0JDQndCQCivQp9CV0J/QlSDQkNCd0JjQptCQCivQp9CV0J/QmCDQiNCQ0J3QntCoCivQp9CV0J/QmCDQm9CQ0KHQm9CeCivQp9CV0J/QmCDQnNCQ0KDQmNCI0JAKK9Cn0JXQn9CYINCd0JDQndCU0J7QoAor0KfQldCf0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQp9CV0J/QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cn0JXQn9CY0Isg0KHQnNCY0InQkAor0KfQldCf0JjQiyDQktCV0JvQmNCc0JjQoAor0KfQldCf0JjQnSDQktCY0JrQotCe0KAKK9Cn0JXQn9Cb0JUg0KHQotCV0JLQkNCdCivQp9CV0J/QoNCV0JPQmCDQmNCg0JXQndCQCivQp9CV0J/QoNCV0JPQmCDQiNCj0JvQmNCI0JAKK9Cn0JXQn9Ch0JrQmCDQiNCe0JLQkNCdCivQp9CV0J/QodCa0Jgg0KHQotCV0JLQkNCdCivQp9CV0KAg0KjQkNCd0JTQntCgCivQp9CV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cn0JXQoCDQpNCg0JDQitCQCivQp9CV0KAg0JvQkNCU0JjQodCb0JDQkgor0KfQldCgINCc0JDQoNCY0IjQkAor0KfQldCg0JXQmtCe0JLQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0KfQldCg0JXQmtCe0JLQmNCLINCg0JjQodCi0J4KK9Cn0JXQoNCV0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cn0JXQoNCV0JrQntCS0JjQiyDQktCQ0KHQmtCg0KHQmNCI0JUKK9Cn0JXQoNCV0JLQmNCLINCY0JLQkNCdCivQp9CV0KDQldCS0JjQiyDQktCV0KDQmNCm0JAKK9Cn0JXQoNCV0JLQmNCm0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQldCg0JXQktCY0KbQmtCYINCU0KPQqNCQ0J0KK9Cn0JXQoNCV0JLQmNCm0JrQmCDQiNCe0JLQkNCdCivQp9CV0KDQldCS0JjQptCa0Jgg0InQo9CR0JjQptCQCivQp9CV0KDQldCS0JjQptCa0Jgg0JzQmNCi0JAKK9Cn0JXQoNCV0JLQmNCm0JrQmCDQndCQ0JTQkAor0KfQldCg0JXQktCY0KbQmtCYINCg0JDQlNCQCivQp9CV0KDQldCS0JjQptCa0Jgg0KDQo9CW0JjQptCQCivQp9CV0KDQldCS0JjQptCa0Jgg0KHQotCV0JLQkNCdCivQp9CV0KDQldCS0JjQptCa0Jgg0KHQktCV0KLQmNCh0JvQkNCSCivQp9CV0KDQldCS0JjQptCa0Jgg0KLQldCe0JTQntCgCivQp9CV0KDQk9CVINCR0JXQm9CQCivQp9CV0KDQmCDQiNCe0JbQldCkCivQp9CV0KDQmtCV0Jcg0JHQntCT0JTQkNCd0JrQkAor0KfQldCg0JrQldCXINCU0KPQqNCQ0J3QmtCQCivQp9CV0KDQmtCV0Jcg0JXQktCY0KbQkAor0KfQldCg0JrQldCXINCI0J7QktCQ0J3QmtCQCivQp9CV0KDQmtCV0Jcg0KHQotCV0JLQkNCdCivQp9CV0KDQmtCV0JfQntCSINCU0KPQqNCQ0J3QmtCQCivQp9CV0KDQmtCY0Isg0J7QodCc0JDQnQor0KfQldCg0JrQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cn0JXQoNCd0KfQldCmINCS0JXQoNCQCivQp9CV0KDQndCQ0Jog0JXQktCQCivQp9CV0KDQndCV0Jot0JDQn9Cg0J4g0JbQo9CW0JDQndCQCivQp9CV0KDQndCV0JrQkCDQodCi0JXQktCQ0J0KK9Cn0JXQoNCd0Jgg0JjQqNCi0JLQkNCdCivQp9CV0KDQndCY0KfQldCaINCV0KDQltCV0JHQldCiCivQp9CV0KDQndCY0KfQldCaINCY0KjQotCS0JDQnQor0KfQldCg0J3QmNCn0JXQmiDQmNCo0KLQktCQ0J0KK9Cn0JXQoNCd0JjQiyDQlNCj0KjQkNCdCivQp9CV0KDQndCY0Jog0JDQotCY0JvQkAor0KfQldCg0J3QmNCaINCI0J7QltCV0KQKK9Cn0JXQoNCd0JjQmiDQnNCQ0KDQk9CY0KLQkAor0KfQldCg0J3QmNCS0JXQpiDQotCQ0KLQiNCQ0J3QkAor0KfQldCg0IrQkCDQnNCQ0KDQmNCI0JAKK9Cn0JXQoNCK0JAg0JzQkNCi0JjQm9CU0JAKK9Cn0JXQoNCK0JDQmiDQm9CQ0JTQmNCh0JvQkNCSCivQp9CV0KDQitCQ0J3QodCa0Jgg0JTQoNCQ0JPQntCc0JjQoAor0KfQldCg0IrQldCS0KHQmtCYINCh0JLQldCi0JjQodCb0JDQkgor0KfQldCg0IrQo9CoINCI0JDQmtCY0JwKK9Cn0JXQoNCd0J7Qk9Cj0JHQntCSINCR0J7QoNCY0KEKK9Cn0JXQoNCd0KPQqCDQmNCR0J7QidCQCivQp9CV0KDQndCj0Kgg0KLQmNCR0J7QoAor0KfQldCg0J7QktCY0Isg0KDQkNCi0JrQngor0KfQldCg0KPQkdCP0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQp9CV0KDQo9CR0I/QmNCLINCI0J7QktCQ0J0KK9Cn0JXQoNCj0JHQj9CY0Isg0JzQkNCg0JPQmNCi0JAKK9Cn0JXQoNCj0JHQj9CY0Isg0JzQkNCg0JPQmNCi0JAKK9Cn0JXQoNCj0J/QntCW0JjQiyDQntCb0JPQkAor0KfQldCg0JLQkNCg0Jgg0JXQoNCW0JXQkdCV0KIKK9Cn0JXQoNCS0JXQitCQ0Jog0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cn0JXQoNCS0JXQitCQ0Jog0IjQntCh0JjQnwor0KfQldCg0JLQldCK0JDQmiDQidCj0JHQmNCm0JAKK9Cn0JXQoNCS0JXQitCQ0Jog0J7Qm9CT0JAKK9Cn0JXQoNCS0JXQitCQ0Jog0J/QldCi0JDQoAor0KfQldCg0JLQldCK0JDQmiDQl9CQ0JPQntCg0JrQkAor0KfQldCg0JLQldCd0JrQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQldCg0JLQldCd0JrQniDQkNCd0JAKK9Cn0JXQodCQ0Jog0JDQndCU0KDQmNCI0JAKK9Cn0JXQotCVINCQ0KDQntCdINCU0JjQn9CbINCY0J3Qkwor0KfQldCi0JjQiyDQnNCY0JvQntCg0JDQlAor0KfQldCi0JvQlSDQnNCQ0KDQmNCI0JAKK9Cn0JXQotCd0JjQmiDQkdCe0JPQlNCQ0J0KK9Cn0JXQotCd0JjQmiDQiNCe0JLQkNCdCivQp9CV0KLQndCY0Jog0JfQkNCT0J7QoNCa0JAKK9Cn0JXQotCd0JjQmtCe0JLQmNCLINCf0JXQotCQ0KAg0JTQmNCf0Jsg0J7QldCmCivQp9CV0KLQntCI0JXQktCY0Isg0JzQmNCb0JrQkAor0KfQldCi0J7QiNCV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cn0JXQktCQ0KDQmCDQgtCe0KDQgtCVCivQp9CV0JLQkNCg0Jgg0JDQndCi0JDQmwor0KfQldCS0JDQoNCYINCc0JDQoNCY0IjQkAor0KfQldCS0JDQoNCYINCc0JjQpdCQ0IjQm9CeCivQp9CV0JLQkNCg0Jgg0JfQntCb0KLQkNCdCivQp9CY0KfQkCDQiNCe0JLQkNCdCivQp9CY0KfQkCDQndCY0JrQntCb0JAKK9Cn0JjQp9CQ0Jgg0IjQntCW0JXQpAor0KfQmNCn0JDQmiDQkNCd0JrQmNCm0JAKK9Cn0JjQp9CQ0Jog0JzQmNCg0JrQngor0KfQmNCn0JDQmtCY0J0g0JDQndCC0JXQm9Ca0JAKK9Cn0JjQp9CQ0KDQldCS0JjQiyDQodCQ0JLQngor0KfQmNCn0JXQmiDQlNCQ0J3QmNCI0JXQmwor0KfQmNCn0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQp9CY0KfQmNCLINCc0JjQm9CVCivQp9CY0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cn0JjQp9Ca0J7QktCY0Isg0KHQktCV0KLQmtCeCivQp9CY0KfQntCS0JDQp9Ca0Jgg0JHQntCg0JjQodCb0JDQkgor0KfQmNCn0J7QktCQ0KfQmtCYINCU0JjQnNCY0KLQoNCY0IjQlQor0KfQmNCn0J7QktCQ0KYg0ILQntCg0ILQlQor0KfQmNCn0J7QktCQ0KYg0JrQntCh0KLQkAor0KfQmNCn0J7QktCQ0KYg0JzQmNCb0JjQptCQCivQp9CY0KfQntCS0JDQpiDQoNCQ0JTQntCh0JvQkNCSCivQp9CY0KfQntCS0JDQpiDQktCb0JDQlNCY0JzQmNCgCivQp9CY0JbQldCaINCf0JDQktCb0JUKK9Cn0JjQltCV0Jog0KHQm9CQ0JLQntCc0JjQoAor0KfQmNCW0JzQldCo0JjQiNCQINCY0JLQkNCdCivQp9CY0JHQoNCYINCI0JDQndCe0KgKK9Cn0JjQkdCg0Jgg0J/QmNCg0J7QqNCa0JAKK9Cn0JjQldCkINCI0JDQnQor0KfQmNCV0KQg0JzQkNCg0KLQmNCdCivQp9CY0JXQpCDQodCQ0JzQo9CV0JsKK9Cn0JjQpdCYINCk0JXQoNCV0J3Qpgor0KfQmNCl0Jgg0IjQkNCd0J7QqAor0KfQmNCl0Jgg0IjQkNCd0J7QqAor0KfQmNCaINCQ0J3QlNCg0JjQiNCQCivQp9CY0Jog0JjQm9CY0IjQkAor0KfQmNCaINCI0JXQndCVCivQp9CY0Jog0JfQntCb0KLQkNCdCivQp9CY0JrQmCDQiNCe0KHQmNCfCivQp9CY0JrQmCDQnNCQ0KDQmNCI0JAKK9Cn0JjQmtCY0Isg0ILQntCg0ILQlQor0KfQmNCa0JjQiyDQptCS0JXQotCe0JzQmNCgCivQp9CY0JrQmNCLINCU0KDQkNCT0JjQptCQCivQp9CY0JrQmNCLINCV0JzQmNCbCivQp9CY0JrQmNCLINCV0JLQmNCm0JAKK9Cn0JjQmtCY0Isg0JzQmNCb0JDQnQor0KfQmNCa0JjQiyDQndCY0JrQntCb0JAKK9Cn0JjQmtCY0Isg0KHQotCV0JLQkNCdCivQp9CY0JrQntCoINCW0KPQltCQ0J3QkAor0KfQmNCa0J7QqCDQgtCV0KDQggor0KfQmNCa0J7QqCDQgtCe0KDQgtCVCivQp9CY0JrQntCoINCV0KDQltCV0JHQldCiCivQp9CY0JrQntCoINCV0KDQltCV0JHQldCiCivQp9CY0JrQntCoINCk0JXQoNCV0J3Qpgor0KfQmNCa0J7QqCDQiNCe0KHQmNCfINCU0KAKK9Cn0JjQmtCe0Kgg0IjQo9Cb0JjQiNCQ0J3QkAor0KfQmNCa0J7QqCDQm9CQ0JTQmNCh0JvQkNCSCivQp9CY0JrQntCoINCb0JXQpdCV0JsKK9Cn0JjQmtCe0Kgg0JzQkNCg0JjQiNCQCivQp9CY0JrQntCI0JXQktCY0Isg0JLQmNCd0JrQngor0KfQmNCa0J7QktCY0Isg0KHQoNCV0KLQmtCeCivQp9CY0JrQktCQ0KAg0JrQkNCg0JvQngor0KfQmNCb0JDQkyDQiNCQ0J3QntCoCivQp9CY0JvQkNCTINCd0JDQndCU0J7QoAor0KfQmNCb0JDQkyDQndCQ0J3QlNCe0KAKK9Cn0JjQm9CV0JMg0JXQktCQCivQp9CY0JvQmNCLINCQ0JLQlNCeCivQp9CY0JvQmNCLINCY0KjQotCS0JDQnQor0KfQmNCb0JjQiyDQiNCe0KHQmNCfCivQp9CY0JvQmNCLINCI0KPQm9CY0JDQndCQCivQp9CY0JvQmNCLINCc0JDQm9CS0JjQndCQCivQp9CY0JvQmNCLINCc0JDQoNCa0J4KK9Cn0JjQm9CY0Jog0JDQndCa0JAKK9Cn0JjQm9CY0Jog0JjQm9Ce0J3QmtCQCivQp9CY0JvQmNCd0JPQmNCg0JjQoSDQn9CQ0JLQm9CVCivQp9CY0J3Qp9CQ0Jog0JPQkNCR0J7QoAor0KfQmNCd0KfQo9Cg0JDQmiDQnNCY0KXQkNCI0JvQngor0KfQmNCd0KfQo9Cg0JDQmiDQn9CQ0JLQm9CVCivQp9CY0J3Qp9Cj0KDQkNCaINCh0KLQldCS0JDQnQor0KfQmNCd0KfQo9Cg0JXQmiDQkdCe0KjQmtCeCivQp9CY0J3QlNCg0JDQmiDQlNCQ0KPQogor0KfQmNCd0JTQoNCQ0Jog0KHQkNCd0JjQiNCQCivQp9CY0J8g0JzQkNCi0J4KK9Cn0JjQn9CQ0Jot0KTQkNCX0JXQmtCQ0Kgg0JjQkdCe0IjQkAor0KfQmNCf0JUg0ILQntCg0ILQlQor0KfQmNCf0JUg0JXQoNCW0JXQkdCV0KIKK9Cn0JjQn9CVINCV0KDQltCY0JrQkAor0KfQmNCf0JUg0KTQoNCQ0IrQkAor0KfQmNCf0JUg0JjQoNCV0J0KK9Cn0JjQn9CVINCI0JDQndCe0KgKK9Cn0JjQn9CVINCI0J7QodCY0J8KK9Cn0JjQn9CVINCI0KPQm9CY0IjQkNCd0JAKK9Cn0JjQn9CVINCb0JDQodCb0J4KK9Cn0JjQn9CVINCb0JDQodCb0J4KK9Cn0JjQn9CVINCc0JDQoNCY0IjQkAor0KfQmNCf0JUg0JzQkNCg0KLQkAor0KfQmNCf0JUg0JzQmNCl0JDQiQor0KfQmNCf0JUg0JzQmNCl0JDQiQor0KfQmNCf0JUg0KHQotCI0JXQn9CQ0J0KK9Cn0JjQn9CY0Isg0JrQkNCi0JjQptCQCivQp9CY0J/QmtCQ0KAg0JDQndCU0KDQldCICivQp9CY0J/QmtCQ0KAg0KHQotCV0JLQkNCdCivQp9CY0J/Qm9CY0Isg0JvQkNCX0JDQoAor0KfQmNCf0JvQmNCLINCc0JjQm9CQ0J0KK9Cn0JjQn9Cb0JjQiyDQktCV0KDQkAor0KfQmNCf0JvQmNCLINCS0JjQlNCQCivQp9CY0KDQpSDQlNCV0JbQlQor0KfQmNCg0KUg0JLQkNCh0JrQkAor0KfQmNCg0JjQiyDQiNCe0JbQldCkCivQp9CY0KHQkNCgINCk0JXQoNCV0J3QpiDQlNCY0J/QmyDQmNCd0JMKK9Cn0JjQodCQ0KAg0JvQkNCh0JvQngor0KfQmNCi0JvQo9Cn0JDQndCY0J0g0JzQmNCb0JjQptCQCivQp9CY0JLQp9CY0Isg0JXQoNCW0JXQkdCV0KIKK9Cn0JjQktCn0JjQiyDQnNCY0KXQkNCI0JvQngor0KfQmNCS0KfQmNCLINCc0JjQm9CVCivQp9CY0JLQp9CY0Isg0JzQmNCJ0JAKK9Cn0JjQktCn0JjQiyDQoNCQ0JTQntCc0JjQoAor0KfQmNCS0KfQmNCLINCh0JDQktCeCivQp9CY0JLQntCS0JjQiyDQnNCY0JvQldCS0JAKK9Cn0JjQktCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQp9CY0JfQnNCQ0JTQmNCQINCT0KPQodCi0JDQkgor0KfQmNCX0JzQkNCU0JjQkCDQktCV0KDQntCd0JjQmtCQCivQp9CY0JfQnNCQ0JTQmNCI0JAg0ILQo9Cb0JAKK9Cn0JjQl9Cc0JDQlNCY0IjQkCDQmNCo0KLQktCQ0J0KK9Cn0JjQl9Cc0JDQlNCY0IjQkCDQiNCQ0J3QntCoCivQp9CY0JfQnNCQ0JTQmNCI0JAg0JrQkNCg0J7QiQor0KfQmNCX0JzQkNCU0JjQiNCQINCc0JjQmtCYCivQp9CY0JfQnNCQ0KAg0JDQndCQCivQp9CY0JfQnNCQ0KAg0JDQndCY0KbQkAor0KfQmNCX0JzQkNCgINCI0JDQndCa0J4KK9Cn0JjQl9Cc0JDQoCDQiNCe0JDQmtCY0JwKK9Cn0JjQl9Cc0JDQoCDQm9CQ0IjQntCoCivQp9CY0JfQnNCQ0KAg0JzQkNCg0JjQiNCQCivQp9CY0JfQnNCQ0KAg0JzQmNCg0JrQngor0KfQmNCX0JzQkNCgINCf0JDQktCb0JUKK9Cn0JjQl9Cc0JDQoCDQodCi0JXQktCQ0J0KK9Cn0JjQl9Cc0JDQoCDQktCb0JDQlNCY0JzQmNCgCivQp9CY0JfQnNCV0KjQmNCI0JAg0JzQkNCT0JTQkAor0KfQmNCX0JzQmNCLINCQ0J3QmNCm0JAKK9Cn0JjQl9Cc0JjQiyDQmNCS0JDQnQor0KfQmNCX0JzQmNCLINCg0JDQlNCQCivQp9CY0JfQnNCY0Isg0JfQntCg0JAKK9Cn0JjQl9Cc0J7QktCY0Isg0JLQmNCU0JDQmgor0KfQnNCV0JvQmNCaINCc0JDQoNCi0JjQnQor0KfQnNCV0JvQmNCaINCg0JDQodCi0JjQodCb0JDQkgor0KfQntCn0JDQiCDQodCj0JvQngor0KfQntCo0JrQntCSINCd0JDQlNCQCivQp9Ce0JDQqCDQmNCg0JXQndCQCivQp9Ce0JHQkNCdINCI0J7QnQor0KfQntCR0JDQnSDQiNCe0JLQkNCdCivQp9Ce0JHQkNCdINCI0J7QktCQ0J0KK9Cn0J7QkdCQ0J0g0JvQmNCU0JjQiNCQCivQp9Ce0JHQkNCdINCc0JDQoNCY0IjQkAor0KfQntCR0JDQnSDQndCY0JrQowor0KfQntCR0JDQndCe0JIg0JbQmNCS0JrQkAor0KfQntCR0JDQndCe0JIg0JHQmNCJ0JDQndCQCivQp9Ce0JHQkNCd0J7QkiDQlNCg0JDQk9CY0KbQkAor0KfQntCR0JDQndCe0JIg0JTQoNCQ0JPQntCc0JjQoAor0KfQntCR0JDQndCe0JIg0JTQo9Co0JDQnQor0KfQntCR0JDQndCe0JIg0IjQldCb0JXQndCQCivQp9Ce0JHQkNCd0J7QkiDQidCY0InQkNCd0JAKK9Cn0J7QkdCQ0J3QntCSINCc0JXQm9CQ0J3QmNCI0JAKK9Cn0J7QkdCQ0J3QntCSINCc0JjQidCa0JAKK9Cn0J7QkdCQ0J3QntCSINCg0KPQltCY0KbQkAor0KfQntCR0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0KfQntCR0JDQndCe0JIg0KHQktCV0KLQngor0KfQntCR0JDQndCe0JIg0JLQkNCh0JAKK9Cn0J7QkdCQ0J3QntCSINCS0JvQkNCU0JjQodCb0JDQkgor0KfQntCR0JDQndCe0JIg0JfQntCg0JDQnQor0KfQntCR0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Cn0J7QkdCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cn0J7QkdCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cn0J7QkdCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cn0J7QkdCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cn0J7QkdCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQp9Ce0JHQkNCd0J7QktCY0Ist0JPQldCXINCc0JDQoNCY0IjQkAor0KfQntCR0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Cn0J7QkdCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cn0J7QkdCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQp9Ce0JHQkNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQp9Ce0JHQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQp9Ce0JHQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cn0J7QkdCQ0J3QntCS0JjQiyDQodCQ0JLQkAor0KfQntCR0JDQndCe0JLQmNCLINCh0JDQktCeCivQp9Ce0JHQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KfQntCR0JDQndCe0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9Cn0J7QkdCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQp9Ce0JHQkNCd0KHQmtCYINCU0KDQkNCT0JDQnQor0KfQntCR0JDQndCh0JrQmCDQnNCY0JvQldCd0JAKK9Cn0J7QkdCQ0J3QodCa0Jgg0KDQkNCU0J7QiNCa0JAKK9Cn0J7QkdCY0Isg0KDQldCJ0JAKK9Cn0J7QkdCY0Isg0KHQotCg0JDQpdCY0IrQkAor0KfQntCR0JjQiyDQotCY0JzQntCi0JXQiAor0KfQntCR0J7QoiDQmNCb0J7QndCa0JAKK9Cn0J7QkdCg0JTQkCDQiNCQ0J3QmtCeCivQp9Ce0JHQoNCU0JAg0IjQkNCd0JrQngor0KfQntCI0JjQiyDQodCi0JXQpNCQ0J3QmNCU0JAKK9Cn0J7QmtCQINCY0JLQkNCd0JrQkAor0KfQntCa0JDQqCDQm9Cj0KbQmNCI0JAKK9Cn0J7QmtCQ0J0g0J3QmNCa0J7Qm9CQCivQp9Ce0JrQkNCd0JjQptCQINCh0JDQktCQCivQp9Ce0JrQkNCd0JjQptCQINCh0J7QpNCY0IjQkAor0KfQntCa0JjQiyDQnNCY0JvQkNCdCivQp9Ce0JrQidCQ0KIg0JfQlNCV0J3QmtCQCivQp9Ce0JrQoNCb0JjQiyDQkdCQ0KDQkdCQ0KDQkAor0KfQntCa0KDQm9CY0Isg0IjQntCh0JjQnwor0KfQntCb0JDQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQntCb0JDQmiDQlNCg0JDQk9Ce0InQo9CRCivQp9Ce0JvQkNCaINCU0KDQkNCT0J7QidCj0JEKK9Cn0J7Qm9CQ0Jog0JPQntCg0JDQnQor0KfQntCb0JDQmiDQmtCg0JjQodCi0JjQndCQCivQp9Ce0JvQkNCaINCc0JjQpdCQ0IjQm9CeCivQp9Ce0JvQkNCaLdCc0JjQpdCQ0JvQmNCaINCc0JDQoNCY0IjQkAor0KfQntCb0JDQmtCe0JIg0JzQmNCb0JDQnQor0KfQntCb0JDQmtCe0JIg0JzQmNCb0JUKK9Cn0J7Qm9CQ0JrQntCSINCf0JDQktCb0JUKK9Cn0J7Qm9CQ0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KfQntCb0JDQmtCe0JLQmNCLINCc0J7QnNCQCivQp9Ce0JvQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQp9Ce0JvQkNCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KfQntCb0JDQmtCe0JLQmNCLINCi0JXQntCU0J7QoAor0KfQntCb0JDQmtCe0JLQmNCLINCS0JDQitCQCivQp9Ce0JvQldCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cn0J7Qm9CY0Isg0ILQo9Cg0J4KK9Cn0J7Qm9CY0Isg0JDQndCC0JXQm9Ca0JAKK9Cn0J7Qm9CY0Isg0JHQntCg0J4KK9Cn0J7Qm9CY0Isg0JTQldCh0JAKK9Cn0J7Qm9CY0Isg0JTQo9Co0JDQnQor0KfQntCb0JjQiyDQlNCj0KjQmtCeCivQp9Ce0JvQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0KfQntCb0JjQiy3Qk9CQ0IvQldCo0JAg0KHQm9CQ0JLQmNCm0JAKK9Cn0J7Qm9CY0Isg0JjQktCQ0J0KK9Cn0J7Qm9CY0Isg0IjQntCS0JDQndCa0JAKK9Cn0J7Qm9CY0Isg0IjQntCS0JDQnQor0KfQntCb0JjQiyDQiNCe0JLQkNCdCivQp9Ce0JvQmNCLINCb0KPQmtCQCivQp9Ce0JvQmNCLINCc0JDQoNCQCivQp9Ce0JvQmNCLINCc0JDQoNCY0IjQkAor0KfQntCb0JjQiyDQnNCY0JvQkNCdCivQp9Ce0JvQmNCLINCc0JjQm9CQ0J0KK9Cn0J7Qm9CY0Isg0JzQmNCb0JDQnQor0KfQntCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KfQntCb0JjQiyDQnNCY0KDQmtCeCivQp9Ce0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JLQmtCQCivQp9Ce0JvQmNCLINCf0JXQotCQ0KAKK9Cn0J7Qm9CY0Isg0KDQkNCU0JAKK9Cn0J7Qm9CY0Isg0KDQkNCU0JzQmNCb0JAKK9Cn0J7Qm9CY0Isg0KDQmNCh0KLQngor0KfQntCb0JjQiyDQodCQ0JLQkAor0KfQntCb0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9Cn0J7Qm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0KfQntCb0J7QktCY0Isg0JTQo9Co0JDQnQor0KfQntCb0J7QktCY0Isg0JzQmNCb0JUKK9Cn0J7Qm9Ce0JLQmNCLINCc0JjQm9CY0IjQkNCd0JAKK9Cn0J7Qm9Ce0JLQmNCLINCe0JvQk9CQCivQp9Ce0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQp9Ce0JvQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQp9Ce0JvQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KfQntCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQp9Ce0JvQntCS0JjQiyDQktCY0JTQntCh0JDQkgor0KfQntCb0J7QktCY0Isg0JLQm9CQ0JTQngor0KfQntCc0JAg0ILQo9Cb0JAKK9Cn0J7QnNCQINCC0KPQm9CQCivQp9Ce0JzQmNCLINCC0KPQoNCC0JjQndCQCivQp9Ce0JzQmNCLINCU0JDQoNCQCivQp9Ce0JzQmNCLINCU0KDQkNCT0JDQnQor0KfQntCc0JjQiyDQlNCj0KjQkNCd0JrQkAor0KfQntCc0JjQiyDQldCg0JbQldCR0JXQogor0KfQntCc0JjQiyDQmNCb0JjQiNCQCivQp9Ce0JzQmNCLINCI0JDQqNCa0J4KK9Cn0J7QnNCY0Isg0IjQkNCo0JrQngor0KfQntCc0JjQiyDQmtCg0KHQotCQCivQp9Ce0JzQmNCLINCb0JjQlNCY0IjQkAor0KfQntCc0JjQiyDQidCj0JHQntCc0JjQoAor0KfQntCc0JjQiyDQnNCY0JvQntCoCivQp9Ce0JzQmNCLINCc0JjQoNCe0InQo9CRCivQp9Ce0JzQmNCLINCc0JvQkNCU0JXQnQor0KfQntCc0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQp9Ce0JzQmNCLINCh0JzQmNCJ0JDQndCQCivQp9Ce0JzQmNCLINCi0J7QlNCe0KAKK9Cn0J7QnNCY0Isg0KLQntCU0J7QoAor0KfQntCc0J7QoCDQmNCb0J7QndCa0JAKK9Cn0J7QnNCe0KAg0JzQkNCi0JjQm9CU0JAKK9Cn0J7QndCT0KDQkNCU0JDQpiDQlNCQ0J3QmNCI0JXQm9CQCivQp9Ce0J3Qk9Cg0JDQlNCQ0KYg0JjQktCQ0J3QmtCQCivQp9Ce0J3Qk9Cg0JDQlNCQ0KYg0KDQkNCU0J7QodCb0JDQkgor0KfQntCd0JjQiyDQkNCd0JrQkAor0KfQntCd0JjQiyDQnNCY0JvQldCd0JrQngor0KfQntCd0JjQiyDQnNCY0JvQntCoCivQp9Ce0J3QmNCLINCf0JXQotCQ0KAKK9Cn0J7QndCY0Isg0KLQmNCI0JDQndCQCivQp9Ce0J3QmNCLINCX0J7QoNCQ0J0KK9Cn0J7QndCa0JAg0ILQldCg0IIKK9Cn0J7QndCa0JAg0JPQntCg0JTQkNCd0JAKK9Cn0J7QndCa0JAg0JrQkNCg0J7QiQor0KfQntCd0JrQkCDQn9CV0KLQkNCgCivQp9Ce0J3QmtCQ0Kgg0JXQnNCY0JsKK9Cn0J7QndCa0JDQqCDQk9CQ0JHQoNCY0JXQm9CQCivQp9Ce0J3QmtCQ0Kgg0JvQkNCU0JjQodCb0JDQkgor0KfQntCd0JrQmNCLINCW0JjQktCa0J4KK9Cn0J7QndCa0JjQiyDQkNCb0JXQmtCh0JAKK9Cn0J7QndCa0JjQiyDQkdCY0InQkNCd0JAKK9Cn0J7QndCa0JjQiyDQkdCe0JPQntCJ0KPQkSDQm9CV0JrQkNCgCivQp9Ce0J3QmtCY0Isg0JHQntCg0JjQodCb0JDQkgor0KfQntCd0JrQmNCLINCU0KDQkNCT0JDQnQor0KfQntCd0JrQmNCLINCI0JXQm9CQCivQp9Ce0J3QmtCY0Isg0IjQo9CU0JjQogor0KfQntCd0JrQmNCLINCJ0JjQidCQ0J3QkAor0KfQntCd0JrQmNCLINCc0JDQoNCY0IjQkAor0KfQntCd0JrQmNCLINCc0JjQm9CQ0J3QmtCQCivQp9Ce0J3QmtCY0Isg0JzQmNCb0JXQndCQCivQp9Ce0J3QmtCY0Isg0JzQmNCb0J7QqAor0KfQntCd0JrQmNCLINCc0JjQm9Ce0KDQkNCUCivQp9Ce0J3QmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cn0J7QndCa0JjQiyDQnNCY0JvQntCS0JDQnQor0KfQntCd0JrQmNCLINCc0J7QnNCn0JjQm9CeINCU0JjQn9CbINCY0J3Qkwor0KfQntCd0JrQmNCLINCd0JXQkdCe0IjQqNCQCivQp9Ce0J3QmtCY0Isg0J3QldCh0KLQntCgCivQp9Ce0J3QmtCY0Isg0J/QldCi0JDQoAor0KfQntCd0JrQmNCLINCg0JDQlNCV0J3QmtCeCivQp9Ce0J3QmtCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KfQntCd0JrQmNCLINCh0JDQqNCQCivQp9Ce0J3QmtCY0Isg0KHQm9CQ0JLQmtCeCivQp9Ce0J3QmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KfQntCd0JrQmNCLINCh0J3QldCW0JDQndCQCivQp9Ce0J3QmtCY0Isg0KHQotCQ0JzQldCd0JAKK9Cn0J7QndCa0JjQiyDQodCi0JXQktCQ0J0KK9Cn0J7QndCa0JjQiyDQotCY0KXQntCc0JjQoAor0KfQntCd0KLQntCoINCI0J7QltCV0KQKK9Cn0J7QndCi0J7QqCDQl9Ce0KDQkAor0KfQntCf0KfQmNCLINCc0JDQoNCi0JjQnQor0KfQntCf0JjQmiDQn9CV0KLQkNCgCivQp9Ce0J/QmNCaINCS0JDQodCY0JvQmNCI0JAKK9Cn0J7Qn9Ce0KDQlNCQINCS0KPQmtCe0KHQkNCS0JAKK9Cn0J7QoCDQpNCg0JDQitCQCivQp9Ce0KAg0IjQntCh0JjQnwor0KfQntCg0JDQmiDQiNCe0KHQmNCfCivQp9Ce0KDQkNCaINCh0KLQmNCf0JUKK9Cn0J7QoNCQ0JvQmNCLINCY0JLQkNCd0JrQkAor0KfQntCg0JHQkCDQgtCV0KDQggor0KfQntCg0JHQkCDQmNCo0KLQktCQ0J0KK9Cn0J7QoNCR0JAg0IjQntCS0JDQnQor0KfQntCg0JHQkCDQiNCe0JLQkNCdCivQp9Ce0KDQkdCQINCc0JjQpdCQ0IkKK9Cn0J7QoNCU0JAg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cn0J7QoNCU0JAg0JDQm9CY0IjQkAor0KfQntCg0JTQkCDQndCQ0JTQldCW0JTQkAor0KfQntCg0JTQkCDQotCe0JzQmNCh0JvQkNCSCivQp9Ce0KDQlNCQINCS0JXQoNCQCivQp9Ce0KDQlNCQ0Kgg0JDQndCU0KDQmNCI0JAKK9Cn0J7QoNCU0JDQqCDQkNCg0J/QkNCUCivQp9Ce0KDQlNCQ0Kgg0JTQo9Co0JDQndCa0JAKK9Cn0J7QoNCU0JDQqCDQldCg0JbQldCR0JXQogor0KfQntCg0JTQkNCoINCl0JDQoNCT0JjQotCQCivQp9Ce0KDQlNCQ0Kgg0JjQoNCV0J3QkAor0KfQntCg0JTQkNCoINCb0JDQodCb0J4KK9Cn0J7QoNCU0JDQqCDQnNCY0KXQkNCJCivQp9Ce0KDQlNCQ0Kgg0KHQm9CQ0JLQmtCeCivQp9Ce0KDQlNCQ0KAg0JHQoNCQ0J3QmtCeCivQp9Ce0KDQlNCQ0KDQldCSINCJ0JjQidCQ0J3QkAor0KfQntCg0JTQkNCg0JXQkiDQktCV0KDQkAor0KfQntCg0JTQkNCg0J7QkiDQkdCe0KDQmNCh0JvQkNCS0JrQkAor0KfQntCg0JTQkNCg0J7QkiDQmNCS0JDQnQor0KfQntCg0JTQkNCg0J7QkiDQodCS0JXQotCY0KHQm9CQ0JIKK9Cn0J7QoNCU0JDQoNCe0JIg0KLQldCe0JTQntCgCivQp9Ce0KDQlNCQ0KDQntCSINCi0JXQntCU0J7QoAor0KfQntCg0JjQiyDQnNCQ0KDQmNCI0JDQnQor0KfQntCg0J3QldCd0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQp9Ce0KDQndCV0J3QmtCYINCU0KDQkNCT0J7QidCj0JEKK9Cn0J7QoNCd0JXQndCa0Jgg0IjQntCS0JDQnQor0KfQntCg0J3QldCd0JrQmCDQktCb0JDQlNCQCivQp9Ce0KDQndCYINCc0JjQm9Cj0J3QkAor0KfQntCg0J3QmNCIINCc0JjQoNCe0KHQm9CQ0JIKK9Cn0J7QoNCi0JDQnSDQltCY0JLQmtCeCivQp9Ce0KDQotCQ0J0g0JHQntCo0JrQngor0KfQntCg0KLQkNCdINCc0JjQm9CY0KbQkAor0KfQntCg0KLQkNCdINCd0JDQlNCQCivQp9Ce0KDQotCQ0J0g0KDQkNCU0JjQktCe0IgKK9Cn0J7QoNCi0JDQndCe0JLQkNCn0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQp9Ce0JLQmNCLINCU0JDQoNCa0J4KK9Cn0J7QktCY0Isg0JTQkNCg0JrQngor0KfQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cn0J7QktCY0Isg0JPQo9Ch0KLQkNCSCivQp9Ce0JLQmNCLINCY0JLQkNCdCivQp9Ce0JLQmNCLINCI0JDQndCa0J4KK9Cn0J7QktCY0Isg0IjQntCh0JjQnwor0KfQntCS0JjQiyDQmtCe0JLQmNCJ0JrQkAor0KfQntCS0JjQiyDQmtCg0KHQotCeCivQp9Ce0JLQmNCLINCb0JDQlNCQCivQp9Ce0JLQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9Cn0J7QktCY0Isg0JzQmNCb0JDQnQor0KfQntCS0JjQiyDQnNCY0JvQldCS0JAKK9Cn0J7QktCY0Isg0JzQntCc0JjQoAor0KfQntCS0JjQiyDQntCb0JPQkAor0KfQntCS0JjQiyDQn9CV0KLQkNCgCivQp9Ce0JLQmNCLINCg0JDQlNCe0KgKK9Cn0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KfQntCS0JjQiyDQoNCQ0KLQmtCeCivQp9Ce0JLQmNCLINCh0J3QldCW0JDQndCQCivQp9Ce0JLQmNCLINCh0KLQkNCd0JrQngor0KfQntCS0JjQiyDQktCb0JDQlNCQCivQp9Ce0JLQmNCLINCS0JvQkNCi0JrQngor0KfQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cn0J7QktCY0JvQniDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cn0J7QktChINCI0JDQqNCQCivQp9Ce0JLQoSDQn9CQ0JLQm9CVCivQp9Ce0JLQoSDQn9CQ0JLQm9CVCivQp9Ce0JLQoSDQktCV0KDQmNCm0JAKK9Cn0KDQldCi0J3QmNCaLdCm0JLQldCI0JDQndCe0JLQmNCLINCe0JvQk9CQINCU0JjQn9CbINCY0J3Qkwor0KfQoNCK0JXQmtCQINCX0JvQkNCi0JrQngor0KfQoNCd0J7QiNCQ0KfQmtCYINCU0JDQndCY0KHQm9CQ0JIKK9Cn0KPQpyDQiNCV0JvQldCd0JAKK9Cn0KPQpyDQnNCQ0KDQmNCI0JAKK9Cn0KPQp9CY0JvQntCS0JjQiyDQkdCg0JDQndCa0JAKK9Cn0KPQp9Ca0J7QktCY0Isg0KfQldCU0J4KK9Cn0KPQp9Ca0J7QktCY0Isg0JbQldCJ0JrQngor0KfQo9Cn0JrQntCS0JjQiyDQgtCj0KDQngor0KfQo9Cn0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KfQo9Cn0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cn0KPQp9Ca0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cn0KPQp9Ca0J7QktCY0Isg0KHQkNCS0JAg0JTQmNCf0Jsg0JjQndCTCivQp9Cj0KfQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cn0KPQp9Ca0J7QktCY0Isg0KHQn9CQ0KHQkAor0KfQo9Cn0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQp9Cj0KfQo9Cb0JjQoSDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cn0KPQkdCg0JDQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQp9Cj0JHQoNCY0JvQniDQkNCd0JrQkAor0KfQo9CR0KDQmNCb0J4g0JTQoNCQ0JPQkNCdCivQp9Cj0JHQoNCY0JvQniDQlNCj0KjQkNCdCivQp9Cj0JHQoNCY0JvQniDQiNCe0JLQngor0KfQo9CR0KDQmNCb0J4g0JvQkNCX0J4KK9Cn0KPQkdCg0JjQm9CeINCc0JjQm9CQ0J0KK9Cn0KPQkdCg0JjQm9CeINCf0JXQotCQ0KAKK9Cn0KPQkdCg0JjQm9CeINCh0J7QpNCY0IjQkAor0KfQo9CR0KDQmNCb0J4g0JLQm9CQ0JTQmNCc0JjQoAor0KfQo9CR0KDQmNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0KfQo9CR0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cn0KPQlNCQ0J3QntCSINCn0JXQlNCQCivQp9Cj0JTQkNCd0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KfQo9CU0JDQndCe0JIg0JzQkNCg0JjQiNCQCivQp9Cj0JTQkNCd0J7QkiDQnNCY0JvQmNCm0JAKK9Cn0KPQlNCY0Isg0JjQktCQ0J0KK9Cn0KPQlNCY0Isg0IjQntCS0JDQndCa0JAKK9Cn0KPQlNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cn0KPQlNCY0Isg0J3QmNCa0J7Qm9CQCivQp9Cj0JTQmNCLINCf0KDQldCU0KDQkNCTCivQp9Cj0JTQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cn0KPQlNCe0JzQmNCg0J7QktCY0Isg0JHQntCT0JTQkNCdCivQp9Cj0JTQntCc0JjQoNCe0JLQmNCLINCj0KDQntCoCivQp9Cj0JPQkNCJINCQ0J3QmtCQCivQp9Cj0JPQkNCJINCc0JjQoNCI0JDQndCQCivQp9Cj0JPQkNCJINCh0JLQldCi0J4KK9Cn0KPQk9CV0Ikg0JDQndCT0JXQm9CY0J3QkAor0KfQo9Cl0JAg0JzQkNCg0JjQiNCQCivQp9Cj0KXQkCDQn9CQ0JLQm9CVCivQp9Cj0KXQkCDQodCb0JDQktCa0J4KK9Cn0KPQpdCQINCh0KLQldCS0JDQnQor0KfQo9Cl0JAt0JLQo9CI0JrQntCSINCg0KPQltCQCivQp9Cj0KXQkCDQl9Cb0JDQotCQCivQp9Cj0IjQkNCd0J7QkiDQkdCe0KDQmNChCivQp9Cj0JrQkCDQktCI0JXQmtCe0KHQm9CQ0JIKK9Cn0KPQmtCQ0InQmNCLINCd0JXQktCV0J3QmtCQCivQp9Cj0JrQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cn0KPQmtCY0Isg0JzQmNCb0JrQkAor0KfQo9Ca0JjQiyDQnNCY0KDQodCQ0JTQkAor0KfQo9Ca0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQp9Cj0JrQmNCLINCX0J7QoNCQ0J0KK9Cn0KPQmtCJ0JDQqCDQmNCS0JDQnQor0KfQo9Ca0InQldCaINCk0KDQkNCK0JAKK9Cn0KPQmtCJ0JXQmiDQnNCQ0KDQk9CY0KLQkAor0KfQo9Ca0InQldCS0JjQiyDQkdCj0JTQmNCc0JrQkAor0KfQo9Ca0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQp9Cj0JrQo9Cg0JDQndCe0JLQmNCLINCW0JjQmtCQCivQp9Cj0JrQo9Cg0JDQndCe0JLQmNCLINCc0JjQiNCQCivQp9Cj0JvQkNCI0JXQktCY0Isg0IjQntCS0JDQnQor0KfQo9Cb0JDQiNCV0JLQmNCLINCh0KLQkNCd0JrQngor0KfQo9Cb0JjQiyDQiNCe0JLQkAor0KfQo9Cb0JjQmiDQpdCQ0IjQndCV0KDQmNCaCivQp9Cj0JvQmNCd0JAg0JbQldCJ0JrQngor0KfQo9CJ0JDQmiDQlNCg0JDQk9CQCivQp9Cj0InQkNCaINCY0JLQkNCdCivQp9Cj0InQkNCaINCa0JDQoNCb0J4KK9Cn0KPQidCQ0Jog0JzQmNCg0JrQngor0KfQo9CJ0JDQmiDQndCQ0JTQkAor0KfQo9CJ0JDQoiDQlNCQ0J3QlQor0KfQo9CJ0JDQoiDQiNCQ0JrQntCSCivQp9Cj0InQmNCLINCW0JjQktCe0IjQmNCdCivQp9Cj0JvQniDQkdCe0JbQkAor0KfQo9Cb0J4g0JzQkNCg0JrQngor0KfQo9Cb0J4g0JzQkNCi0J4KK9Cn0KPQndCa0J4g0JHQoNCQ0J3QmtCeCivQp9Cj0J/QkNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQp9Cj0J/QldCJ0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQp9Cj0J/QmNCLINCC0J7QoNCC0JUKK9Cn0KPQn9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cn0KPQn9CY0Isg0JHQntCI0JDQnQor0KfQo9Cf0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cn0KPQn9CY0Isg0JTQoNCQ0JPQkNCdCivQp9Cj0J/QmNCLINCU0KPQqNCQ0J0KK9Cn0KPQn9CY0Isg0KXQoNCY0KHQotCY0KTQntCgCivQp9Cj0J/QmNCLINCI0JXQm9CV0J3QkAor0KfQo9Cf0JjQiyDQmtCQ0IjQmtCQCivQp9Cj0J/QmNCLINCa0JDQiNCa0JAKK9Cn0KPQn9CY0Isg0JrQkNCi0JjQptCQCivQp9Cj0J/QmNCLINCa0JDQotCY0KbQkAor0KfQo9Cf0JjQiyDQmtCe0KHQotCQ0JTQmNCd0JrQkAor0KfQo9Cf0JjQiyDQmtCg0JjQodCi0JjQndCQCivQp9Cj0J/QmNCLINCJ0KPQkdCe0JzQmNCgCivQp9Cj0J/QmNCLINCc0JjQm9CQ0J0KK9Cn0KPQn9CY0Isg0JzQmNCb0JjQptCQCivQp9Cj0J/QmNCLINCc0JjQntCU0KDQkNCTCivQp9Cj0J/QmNCLINCc0JjQntCU0KDQkNCTCivQp9Cj0J/QmNCLINCc0JjQntCU0KDQkNCTCivQp9Cj0J/QmNCLINCc0JjQoNCI0JDQndCQCivQp9Cj0J/QmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cn0KPQn9CY0Isg0J7Qm9CT0JAKK9Cn0KPQn9CY0Isg0KDQkNCU0JjQndCa0JAKK9Cn0KPQn9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0KfQo9Cf0JjQiyDQodCf0J7QnNCV0J3QmtCQCivQp9Cj0J/QmNCLINCh0KLQldCS0JDQnQor0KfQo9Cf0JjQiyDQodCi0JXQktCQ0J0KK9Cn0KPQn9CY0Isg0KHQotCe0IjQkNCdCivQp9Cj0J/QmNCLINCj0KDQntCoCivQp9Cj0J/QmNCLINCX0J7QoNCQ0J0KK9Cn0KPQoNCn0JjQiyDQlNCj0KjQkNCdCivQp9Cj0KDQp9CY0Isg0JjQm9CY0IjQkAor0KfQo9Cg0KfQmNCLINCb0JDQl9CQ0KAKK9Cn0KPQoNCn0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KfQo9Cg0JPQkNCd0J7QkiDQldCc0JjQmwor0KfQo9Cg0JjQiyDQltCQ0KDQmtCeCivQp9Cj0KDQmNCLINCC0J7QoNCC0JUKK9Cn0KPQoNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9Cn0KPQoNCY0Isg0JTQo9Co0JDQndCa0JAKK9Cn0KPQoNCY0Isg0JzQmNCb0JXQndCQCivQp9Cj0KDQmNCLINCc0JjQm9Ce0KgKK9Cn0KPQoNCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0KfQo9Cg0JjQiyDQoNCQ0JTQntCh0JvQkNCSINCU0KAg0J/QoNCe0KQKK9Cn0KPQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KfQo9Cg0JjQiyDQktCQ0KHQkAor0KfQo9Cg0JjQiyDQktCV0JvQmNCd0JrQkAor0KfQo9Cg0JjQiyDQktCY0JTQntCh0JDQktCQCivQp9Cj0KDQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cn0KPQoNCe0JLQmNCLINCU0JDQndCY0JvQngor0KfQo9Cg0J7QktCY0Isg0JLQo9Ca0KHQkNCdCivQp9Cj0KDQo9Co0JrQmCDQk9CQ0JLQoNCQCivQp9Cj0KDQo9Co0JrQmCDQnNCY0KbQkAor0KfQo9Ch0KLQntCS0JjQiyDQkNCg0JjQpAor0KfQo9Ci0KPQoNCQINCc0JDQoNCa0J4KK9Cn0KPQotCj0KDQmNCLINCI0JXQoNCe0J3QmNCcCivQp9Cj0KLQo9Cg0JjQm9CeINCn0JXQlNCe0JzQmNCgCivQp9Cj0KLQo9Cg0JjQm9CeINCR0J7QltCQCivQp9Cj0KLQo9Cg0JjQm9CeINCc0JjQm9CY0JLQntCI0JUKK9Cn0KPQotCj0KDQmNCb0J4g0KHQm9Ce0JHQntCU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cn0KPQotCj0KDQmNCb0J7QkiDQnNCQ0KDQmNCI0JAKK9Cn0KPQotCj0KDQmNCb0J7QkiDQnNCY0JvQntCoCivQp9Cj0KLQo9Cg0JjQm9Ce0JIg0JzQmNCb0J7QqAor0KfQo9Ci0KPQoNCY0JvQntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cn0KPQotCj0KDQmNCb0J7QkiDQktCV0JvQmNCd0JrQkAor0KfQo9Ci0KPQoNCY0JvQntCSINCS0KPQiNCY0KbQkAor0KfQo9CS0JDQm9CeINCJ0KPQkdCY0KbQkAor0KfQo9CS0JDQoNCU0JjQiyDQkNCd0KLQo9CdCivQp9CS0J7QmtCY0Isg0JzQkNCg0JrQngor0KfQktCe0JrQmNCLINCg0JDQotCa0J4KK9Cn0JLQntCg0JjQiyDQlNCj0KjQkNCdCivQp9CS0J7QoNCY0Isg0JzQmNCb0J7QiNCVCivQp9CS0J7QoNCa0J7QkiDQidCj0JHQntCc0JjQoAor0KfQktCe0KDQmtCe0JIg0JfQlNCg0JDQktCa0J4KK9Cn0JLQntCg0JrQntCSINCX0JvQkNCi0JDQnQor0KfQktCe0KDQni3QgtCj0JrQmNCLINCU0KPQqNCQ0J3QmtCQCivQp9CS0J7QoNCeINCU0J7QkdCg0J7QodCb0JDQkgor0KfQktCe0KDQntCS0JjQiyDQiNCV0JvQldCd0JrQkAor0KfQktCe0KDQntCS0JjQiyDQidCj0JHQngor0KfQktCe0KDQntCS0JjQiyDQoNCQ0KLQmtCeCivQp9CS0J7QoNCe0JLQmNCLINCS0KPQiNCY0KbQkAor0KjQi9CV0JrQmNCLINCR0KPQlNCY0JzQmNCgCivQqNCL0JXQmtCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KjQi9CV0JrQmNCLINCa0J7QodCQCivQqNCL0JXQmtCY0Isg0JzQmNCb0JDQndCa0JAKK9Co0IvQldCa0JjQiyDQnNCY0JvQmNCLCivQqNCL0JXQmtCY0Isg0JzQmNCb0JjQptCQCivQqNCL0JXQmtCY0Isg0JzQmNCe0JzQmNCgCivQqNCL0JXQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KjQi9CV0JrQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Co0IvQldCa0JjQiyDQktCj0JrQngor0KjQi9CV0J/QkNCd0KfQldCS0JjQiyDQgtCe0KDQgtCVCivQqNCL0JXQn9CQ0J3Qp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9Co0IvQldCf0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JTQntCR0KDQntCh0JvQkNCS0JAKK9Co0IvQldCf0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KjQi9CV0J/QkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Co0IvQldCf0JDQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Co0IvQldCf0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQoNCQ0KjQmtCeCivQqNCL0JXQn9CQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KjQi9CV0J/QkNCd0J7QktCY0Isg0KDQkNCd0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Co0IvQldCf0JDQndCe0JLQmNCLINCh0JjQndCY0KjQkAor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KjQi9CV0J/QkNCd0J7QktCY0Isg0JfQntCg0JAKK9Co0IvQldCf0J7QktCY0Isg0J/QldCi0JDQoAor0KjQi9CV0KDQkdCQ0IvQldCSINCT0JvQmNCT0J7QoNCY0IjQlQor0KjQi9CV0JLQp9CY0Jog0J/QkNCS0JvQlQor0KjQi9CY0JHQkNCdINCc0JDQoNCY0J3QkAor0KjQi9Ce0J/QmNCLINCc0JjQntCU0KDQkNCTCivQqNCL0J7Qn9CY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KjQi9Ce0J/Qo9Cb0J7QktCY0Isg0J/QldCi0JDQoAor0KjQi9Cj0KDQmNCmINCI0J7QodCY0J8KK9Co0JDQqNCY0Isg0JbQmNCS0JrQngor0KjQkNCo0JjQiyDQgtCe0KDQgtCVCivQqNCQ0KjQmNCLINCU0KPQqNCQ0J0KK9Co0JDQqNCY0Isg0JzQmNCb0JDQnQor0KjQkNCo0JjQiyDQnNCY0JvQkNCdCivQqNCQ0KjQmNCLINCc0JjQm9Ce0KgKK9Co0JDQqNCY0Isg0JzQmNCg0JrQngor0KjQkNCo0JjQiyDQndCV0JLQldCd0JrQkAor0KjQkNCo0JjQiyDQn9CV0KLQkNCgCivQqNCQ0KjQmNCLINCh0JDQktCeCivQqNCQ0KjQmNCLINCh0KLQldCS0JDQnQor0KjQkNCo0JjQiyDQl9Ce0KDQkNCdCivQqNCQ0KjQmNCdINCU0JDQndCY0KbQkAor0KjQkNCo0JjQnSDQoNCQ0JTQntCc0JjQoAor0KjQkNCo0JjQndCQ0KfQmtCYINCc0JDQoNCY0IjQkAor0KjQkNCo0JjQndCQ0KfQmtCYINCh0J7QitCQCivQqNCQ0KjQmNCd0JDQp9Ca0Jgg0JLQkNCh0JjQm9CY0IjQlQor0KjQkNCo0InQmNCdINCb0JDQl9CQ0KAKK9Co0JDQqNCe0JLQmNCLINCi0KDQmNCk0JrQngor0KjQkNCR0JDQndCYINCd0JDQl9CY0JwKK9Co0JDQkdCQ0J3QntCS0JjQiyDQkNCR0JTQo9Cg0JDQpdCc0JDQnQor0KjQkNCR0JDQndCe0JLQmNCLINCe0JHQoNCQ0JQKK9Co0JDQkdCV0KYg0JTQoNCQ0JPQmNCm0JAKK9Co0JDQkdCY0Isg0ILQo9Cg0J4KK9Co0JDQkdCY0Isg0KXQo9Ch0JXQmNCdCivQqNCQ0JHQmNCLINCf0JDQktCb0JUKK9Co0JDQkdCb0Jgg0JzQkNCg0KLQntCdCivQqNCQ0JHQm9CYINCc0JjQpdCQ0IjQm9CeCivQqNCQ0JHQntCS0JjQiyDQnNCV0KXQnNCV0JTQkNCb0JjQiNCQCivQqNCQ0JTQlSDQiNCV0JvQldCd0JAKK9Co0JDQpNCQ0KDQmNCaINCJ0JjQidCQ0J3QkAor0KjQkNCk0KDQkNCKINCQ0J3QlNCg0JjQiNCQCivQqNCQ0KTQoNCQ0Iog0JTQldCW0JUKK9Co0JDQpNCg0JDQiiDQpNCg0JDQitCQCivQqNCQ0KTQoNCQ0Iog0JvQkNCh0JvQngor0KjQkNCk0KDQkNCKINCb0JDQodCb0J4KK9Co0JDQpNCg0JDQiiDQn9CY0KDQntCo0JrQkAor0KjQkNCk0KDQkNCKINCh0KLQldCS0JDQnQor0KjQkNCk0KDQkNCKINCi0JXQntCU0J7QoNCQCivQqNCQ0JPQo9Cd0J7QktCY0Isg0JTQo9Co0JDQnQor0KjQkNCT0KPQndCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQqNCQ0JjQnSDQkNCd0JTQoNCY0IjQkAor0KjQkNCY0J0g0JzQmNCb0JXQktCQCivQqNCQ0JjQnSDQl9CQ0JPQntCg0JrQkAor0KjQkNCY0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQqNCQ0JjQndCe0JLQmNCLINCc0JDQoNCY0J3QkAor0KjQkNCI0JDQotCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KjQkNCI0JDQotCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQqNCQ0IjQkdCV0KAg0JTQkNCd0JjQptCQCivQqNCQ0IjQkdCV0KAg0JzQmNCb0JXQndCa0J4KK9Co0JDQiNCU0JjQmiDQpNCg0JDQndCm0JjQqNCa0JAKK9Co0JDQiNCk0JDQoCDQn9CQ0JLQm9CVCivQqNCQ0IjQmNCdINCc0JjQm9Ce0KDQkNCUCivQqNCQ0IjQmNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQqNCQ0IjQmNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0KjQkNCI0JjQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQqNCQ0IjQmNCd0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9Co0JDQiNCY0J3QntCS0JjQiyDQodCY0JTQkAor0KjQkNCI0J0g0JTQo9Co0JDQnQor0KjQkNCI0J3QkdCV0KDQk9CV0KAg0IjQntCS0JDQnQor0KjQkNCI0J3QkdCV0KDQk9CV0KAg0JvQmNCb0JgKK9Co0JDQiNCd0J7QkiDQiNCe0JLQkNCdCivQqNCQ0IjQndCe0JIg0JrQkNCi0JjQptCQCivQqNCQ0IjQndCe0JIg0J/QldCi0JDQoAor0KjQkNCI0J3QntCS0JjQiyDQoNCQ0JTQmNCd0JrQkAor0KjQkNCI0KLQmCDQldCi0JXQm9Ca0JAKK9Co0JDQiNCi0Jgg0JPQmNCX0JXQm9CQCivQqNCQ0IjQotCYINCa0JDQotCY0KbQkAor0KjQkNCI0KLQmCDQnNCQ0KDQmNCI0JAKK9Co0JDQiNCi0J7QqCDQgtCe0KDQgtCVCivQqNCQ0IjQotCe0Kgg0ILQo9Cg0JAKK9Co0JDQiNCi0J7QqCDQidCj0JHQmNCo0JAKK9Co0JDQiNCi0J7QqCDQndCY0JrQntCb0JAKK9Co0JDQiNCi0J7QqCDQodCY0JzQkAor0KjQkNCI0KLQntCoINCh0JjQnNCQCivQqNCQ0JrQmNCLINCW0JXQidCa0J4KK9Co0JDQmtCY0Isg0ILQntCg0ILQlQor0KjQkNCa0JjQiyDQmNCb0JjQiNCQCivQqNCQ0JrQmNCLINCY0JvQmNCI0JAKK9Co0JDQmtCY0Isg0JjQm9CY0IjQkAor0KjQkNCa0JjQiyDQiNCQ0IrQkAor0KjQkNCa0JjQiyDQmtCQ0KLQkAor0KjQkNCa0JjQiyDQnNCQ0J3QlQor0KjQkNCa0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KjQkNCa0JjQiyDQoNCQ0JTQlQor0KjQkNCa0JjQiyDQl9Ce0KDQmtCQCivQqNCQ0JrQntCi0JAg0JTQo9Co0JDQnQor0KjQkNCa0J7QotCQINCa0J7QiNCeCivQqNCQ0JrQntCi0JAg0JzQmNCb0JDQnQor0KjQkNCa0J7QotCQINCc0JjQm9Ce0KDQkNCUCivQqNCQ0JrQntCi0JAg0KHQmNCc0JXQntCdCivQqNCQ0JrQntCi0JjQiyDQidCj0JHQntCc0JjQoAor0KjQkNCa0J7QotCY0Isg0JzQmNCg0IjQkNCd0JAKK9Co0JDQmtCjINCc0JXQpdCc0JXQlAor0KjQkNCb0JDQkdCQ0JvQmNCI0JAg0JTQoNCQ0JPQntCc0JjQoAor0KjQkNCb0JDQkdCQ0JvQmNCI0JAg0JLQkNCh0J4KK9Co0JDQm9CQ0IjQmNCLINCh0KLQldCS0JDQnQor0KjQkNCb0JDQnNCe0J0g0KjQkNCd0JTQntCgCivQqNCQ0JvQkNCc0J7QnSDQkNCd0JTQoNCY0IjQkAor0KjQkNCb0JDQnNCe0J0g0IjQntCh0JjQnwor0KjQkNCb0JDQnNCe0J0g0IjQntCh0JjQnwor0KjQkNCb0JDQnNCe0J0g0JzQmNCo0JAKK9Co0JDQm9CQ0JzQntCdINCc0JjQpdCQ0IjQm9CeCivQqNCQ0JvQkNCc0J7QnSDQnNCY0KXQkNCI0JvQngor0KjQkNCb0JDQndCa0Jgg0IjQkNCd0J7QqAor0KjQkNCb0JDQndCa0Jgg0IjQkNCd0J7QqAor0KjQkNCb0JHQntCiINCX0KPQl9CQCivQqNCQ0JvQldCgINCS0JXQoNCQCivQqNCQ0JvQk9CeINCI0JXQm9CY0KHQkNCS0JXQotCQCivQqNCQ0JvQmNCf0KPQoNCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQqNCQ0JvQmNCf0KPQoNCe0JLQmNCLINCh0JvQkNCS0JjQqNCQCivQqNCQ0JzQkNCi0JjQiyDQndCV0JzQkNCK0JAKK9Co0JDQnNCV0KYg0JzQmNCb0JjQptCQCivQqNCQ0J3QlNCe0Jsg0JDQotCY0JvQkAor0KjQkNCd0JTQntCbINCQ0KLQmNCb0JAKK9Co0JDQndCU0J7QmyDQmNCo0KLQktCQ0J0KK9Co0JDQndCU0J7QmyDQmtCQ0KLQmNCm0JAKK9Co0JDQndCU0J7QmyDQnNCQ0KLQmNCI0JAKK9Co0JDQndCU0J7QmyDQnNCY0KXQkNCI0JvQngor0KjQkNCd0JTQntCgINCY0JvQntCd0JAKK9Co0JDQndCU0J7QoCDQiNCe0KHQmNCfCivQqNCQ0J3QlNCe0KAg0JvQkNCU0JjQodCb0JDQkgor0KjQkNCd0JTQntCgINCc0JDQoNCY0IjQkAor0KjQkNCd0JTQntCgINCi0JjQkdCe0KAKK9Co0JDQndCU0J7QoNCYINCo0JDQoNCY0JrQkAor0KjQkNCK0JjQiyDQnNCY0JvQkNCU0JjQnQor0KjQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0KjQkNCd0KLQkCDQqNCQ0J3QlNCe0KAKK9Co0JDQndCi0JAg0JDQnNCQ0JvQmNCI0JAKK9Co0JDQndCi0JAg0JHQldCb0JAKK9Co0JDQndCi0JAg0JTQo9Co0JDQndCa0JAKK9Co0JDQndCi0JAg0KTQldCg0JXQndCmCivQqNCQ0J3QotCQINCY0KjQotCS0JDQnQor0KjQkNCd0KLQkCDQmNCb0J7QndCa0JAKK9Co0JDQndCi0JAg0JjQnNCg0JUKK9Co0JDQndCi0JAg0IjQntCh0JjQnwor0KjQkNCd0KLQkCDQm9CQ0KHQm9CeCivQqNCQ0J3QotCQINCc0JjQoNCe0KHQm9CQ0JIKK9Co0JDQndCi0JAg0J/QkNCbCivQqNCQ0J3QotCQINCh0JjQnNCQCivQqNCQ0J3QotCQINCh0JvQkNCS0JrQngor0KjQkNCd0KLQkCDQodCe0KTQmNCI0JAKK9Co0JDQndCi0JAg0KHQotCV0JLQkNCdCivQqNCQ0J3QotCQINCS0JjQndCa0J4KK9Co0JDQndCi0JAg0JLQm9CQ0JTQmNCc0JjQoAor0KjQkNCd0KLQkNCaINCI0J7QodCY0J8KK9Co0JDQndCi0JDQmiDQmtCQ0KDQm9CeCivQqNCQ0J3QotCQ0JvQkNCRINCh0J7QpNCY0IjQkAor0KjQkNCd0KLQldCaINCW0JXQidCa0J4KK9Co0JDQndCi0JXQmiDQl9CU0JXQndCa0JAKK9Co0JDQn9CYINCf0JjQoNCe0KjQmtCQINCU0JjQn9CbINCY0J3Qkwor0KjQkNCf0JjQiyDQndCY0JrQntCb0JAKK9Co0JDQn9CY0J3QkCDQnNCY0KDQntCh0JvQkNCSCivQqNCQ0J/QntCK0JAg0IjQntCS0JDQnQor0KjQkNCf0J7QitCQINCc0JDQoNCa0J4KK9Co0JDQn9Ce0IrQkNCmINCW0JDQoNCa0J4KK9Co0JDQn9Ce0IrQkNCmINCW0JDQoNCa0J4KK9Co0JDQn9Ce0IrQkNCmINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQqNCQ0J/QntCK0JDQpiDQiNCV0JvQmtCQINCf0KDQntCk0JXQodCe0KAKK9Co0JDQn9Ce0IrQkNCmINCg0JDQlNCQCivQqNCQ0J/QntCK0JDQpiDQodCi0JXQktCQ0J0KK9Co0JDQn9Ce0IrQodCa0Jgg0KDQkNCU0JjQktCe0IgKK9Co0JDQn9Cj0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Co0JDQoNCn0JDQndCh0JrQmCDQiNCj0JvQmtCQCivQqNCQ0KDQp9CQ0J3QodCa0Jgg0JzQmNCb0JjQptCQCivQqNCQ0KDQp9CQ0J3QodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0KjQkNCg0KfQldCSINCQ0J3QotCe0J3QmNCI0JAKK9Co0JDQoNCn0JXQkiDQiNCV0JvQldCd0JAKK9Co0JDQoNCn0JXQkiDQnNCY0KDQntCh0JvQkNCS0JAKK9Co0JDQoNCn0JXQkiDQndCY0JrQntCb0JAKK9Co0JDQoNCn0JXQkiDQktCb0JDQlNCY0JzQmNCgCivQqNCQ0KDQp9CV0JLQmNCLINCW0JDQoNCa0J4KK9Co0JDQoNCn0JXQktCY0Isg0JbQldCb0JjQnNCY0KAKK9Co0JDQoNCn0JXQktCY0Isg0JDQndCY0KbQkAor0KjQkNCg0KfQldCS0JjQiyDQkdCg0JDQotCY0JzQmNCgCivQqNCQ0KDQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Co0JDQoNCn0JXQktCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0KjQkNCg0KfQldCS0JjQiyDQmNCb0JrQkAor0KjQkNCg0KfQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Co0JDQoNCn0JXQktCY0Isg0JzQkNCg0JPQmNCi0JAg0JTQoAor0KjQkNCg0KfQldCS0JjQiyDQnNCY0JvQldCd0JAKK9Co0JDQoNCn0JXQktCY0Isg0J3QldCR0J7QiNCo0JAKK9Co0JDQoNCn0JXQktCY0Isg0J/QldCi0JDQoAor0KjQkNCg0KfQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KjQkNCg0KfQldCS0JjQiyDQoNCQ0IjQmtCeCivQqNCQ0KDQp9CV0JLQmNCLINCS0JjQlNCe0IjQlQor0KjQkNCg0KfQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQqNCQ0KDQqNCQ0J3QodCa0Jgg0JzQkNCg0JjQndCa0J4KK9Co0JDQoNCo0JDQndCh0JrQmCDQnNCY0JvQkNCdCivQqNCQ0KDQkCDQmNCc0KDQlQor0KjQkNCg0JAg0JjQnNCg0JUKK9Co0JDQoNCQ0KYg0ILQntCg0ILQlQor0KjQkNCg0JDQpiDQkdCY0InQkNCd0JAKK9Co0JDQoNCQ0KYg0JHQntCo0JrQngor0KjQkNCg0JDQpiDQlNCj0KjQkNCdCivQqNCQ0KDQkNCmINCU0KPQqNCQ0J0KK9Co0JDQoNCQ0KYg0JzQmNCb0JDQnQor0KjQkNCg0JDQpiDQnNCY0JvQlQor0KjQkNCg0JDQpiDQnNCY0JvQmNCm0JAKK9Co0JDQoNCQ0KYg0JzQmNCe0JTQoNCQ0JMKK9Co0JDQoNCQ0KYg0KDQkNCU0J7QiNCVCivQqNCQ0KDQkNCmINCg0JDQlNCe0JzQmNCgCivQqNCQ0KDQkNCmINCg0JDQlNCe0JLQkNCdCivQqNCQ0KDQkNCmINCg0KPQltCY0KbQkAor0KjQkNCg0JDQpiDQodCi0JXQktCQCivQqNCQ0KDQkNCmINCh0JLQldCi0J7Ql9CQ0KAKK9Co0JDQoNCQ0J3QlNCYINCo0JDQndCU0J7QoAor0KjQkNCg0JDQndCe0JLQmNCLINCQ0J3QmNCi0JAKK9Co0JDQoNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KjQkNCg0JDQndCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdINCU0KAg0JvQldCa0JDQoAor0KjQkNCg0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Co0JDQoNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KjQkNCg0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Co0JDQoNCV0J3QkNCmINCR0J7QltCY0JTQkNCgCivQqNCQ0KDQldCd0JDQpiDQnNCQ0KDQmtCeCivQqNCQ0KDQldCd0JDQpiDQoNCe0JfQmNCd0JAKK9Co0JDQoNCV0J3QkNCmINCS0JjQlNCQ0JoKK9Co0JDQoNCV0J3QkNCmINCS0J7QiNCY0KHQm9CQ0JIKK9Co0JDQoNCT0JDQpyDQkdCg0JDQndCa0J4KK9Co0JDQoNCT0JjQiyDQnNCY0JvQntCg0JDQlAor0KjQkNCg0JPQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Co0JDQoNCT0JjQiyDQl9Cb0JDQotCY0KbQkAor0KjQkNCg0JPQmNCdINCW0JDQoNCa0J4KK9Co0JDQoNCT0JjQnSDQnNCQ0KDQmNCI0JAKK9Co0JDQoNCYINCc0JDQoNCY0IjQkAor0KjQkNCg0Jgg0KHQotCV0JLQkNCdCivQqNCQ0KDQmNCLINCI0J7QodCY0J8KK9Co0JDQoNCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0KjQkNCg0JjQiyDQmtCe0KHQotCQCivQqNCQ0KDQmNCLINCJ0KPQkdCY0KbQkAor0KjQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Co0JDQoNCY0Isg0JzQkNCi0J4KK9Co0JDQoNCY0Isg0J3QldCd0JDQlAor0KjQkNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQqNCQ0KDQmNCLINCh0J7QpNCY0IjQkAor0KjQkNCg0JjQiyDQodCi0JXQktCQ0J0KK9Co0JDQoNCY0Isg0KLQntCc0JjQodCb0JDQkiDQnNCgCivQqNCQ0KDQmNCLINCX0JLQldCX0JTQkNCd0JAKK9Co0JDQoNCY0Jog0JDQndCQCivQqNCQ0KDQmNCaINCQ0J3QlNCg0JjQiNCQCivQqNCQ0KDQmNCaINCI0J7QktCQ0J0KK9Co0JDQoNCY0Jog0JrQkNCi0JjQptCQCivQqNCQ0KDQmNCaINCJ0KPQkdCY0KbQkAor0KjQkNCg0JjQmiDQnNCY0KDQntCh0JvQkNCSCivQqNCQ0KDQmNCaINCh0KLQldCS0JDQnQor0KjQkNCg0JjQmi3QktCY0JTQmNCLINCd0JDQlNCQCivQqNCQ0KDQmNCaINCS0JvQkNCU0JjQnNCY0KAKK9Co0JDQoNCa0JDQlNCYINCS0JXQoNCe0J3QmNCa0JAKK9Co0JDQoNCa0JDQiiDQkNCd0KLQntCdCivQqNCQ0KDQmtCQ0Iog0KTQldCg0JXQndCmCivQqNCQ0KDQmtCQ0Iog0KTQoNCQ0IrQkAor0KjQkNCg0JrQkNCKINCI0JDQndCe0KgKK9Co0JDQoNCa0JDQitCQ0KYg0KTQldCg0JXQndCmCivQqNCQ0KDQmtCV0JfQmC3Qn9CV0KLQoNCY0Isg0JzQkNCg0JPQmNCi0JAKK9Co0JDQoNCa0JjQiyDQodCg0ILQkNCdCivQqNCQ0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Co0JDQoNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQoAor0KjQkNCg0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQqNCQ0KDQitCQ0Jgg0JDQndCa0JjQptCQCivQqNCQ0KDQitCQ0Jgg0JzQmNCa0JvQntCoCivQqNCQ0KDQitCQ0Jgg0J/QkNCbCivQqNCQ0KDQniDQiNCe0JLQkNCdCivQqNCQ0KDQniDQndCQ0JTQkAor0KjQkNCg0J7QqNCYINCS0JDQm9CV0KDQmNCI0JAKK9Co0JDQoNCe0KjQmtCe0JLQmNCLINCS0KPQmtCY0KbQkAor0KjQkNCg0J7QmC3QodCQ0JHQniDQktCV0KDQkAor0KjQkNCg0J7QktCY0Isg0ILQo9Cg0J4KK9Co0JDQoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Co0JDQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Co0JDQoNCjINCU0KPQqNCY0KbQkAor0KjQkNCg0JLQkNCg0Jgg0KjQkNCd0JTQntCgCivQqNCQ0KDQktCQ0KDQmCDQmtCQ0KDQntCJCivQqNCQ0KDQktCQ0KDQmCDQnNCQ0KDQotCQCivQqNCQ0KDQktCQ0KDQmCDQoNCe0JfQkNCb0JjQiNCQCivQqNCQ0KDQktCQ0KDQmCDQktCQ0JvQldCg0JjQiNCQCivQqNCQ0KHQmNCS0JDQoCDQkNCl0JzQldCUCivQqNCQ0KLQkNCg0JAg0JzQmNCb0JDQnQor0KjQkNCi0J7QoNCQINCh0KLQntCI0JDQnQor0KjQkNCi0KDQmNCLINCQ0J3QkAor0KjQkNCi0KDQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KjQkNCj0JvQkCDQk9Ce0KDQkNCdCivQqNCQ0KPQm9CQINCg0JDQlNCe0JLQkNCdCivQqNCQ0KPQm9CY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQqNCQ0JLQldCb0JjQnSDQqNCQ0J3QlNCe0KAKK9Co0JDQktCV0JvQmNCdINCI0J7QodCY0J8KK9Co0JDQktCV0JvQmNCdINCI0J7QktCQ0J0KK9Co0JDQktCV0JvQmNCdINCI0KPQm9CY0IjQkAor0KjQkNCS0JXQoNCU0JjQiNCQINCd0JjQmtCe0JvQkAor0KjQkNCS0JjQiNCQINCU0KPQqNCQ0J0KK9Co0JDQktCY0IjQkCDQnNCY0JvQlQor0KjQkNCS0JjQiNCQINCc0JjQm9Ce0KDQkNCUCivQqNCQ0JLQmNCI0JAg0J/QldCi0JDQoAor0KjQkNCS0JjQiNCQINCg0JDQlNCVCivQqNCQ0JLQoNCJ0KPQk9CQINCc0JjQm9CQ0J0KK9Co0JXQp9CY0Isg0JDQm9CY0IjQkAor0KjQldCn0JjQiyDQiNCj0JvQmtCQCivQqNCV0KjQkCDQodCb0JDQktCa0J4KK9Co0JXQqNCV0InQkCDQkdCg0JDQndCY0JzQmNCgCivQqNCV0KjQldCJ0JAg0JzQkNCg0JjQiNCQ0J0KK9Co0JXQqNCV0KDQmNCd0JDQpiDQgtCe0KDQgtCVCivQqNCV0KjQldCS0JjQiyDQgtCe0KDQgtCVCivQqNCV0KjQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KjQldCo0JXQktCY0Isg0JvQldCe0J3QkAor0KjQldCo0JXQktCY0Isg0InQmNCJ0JDQndCQCivQqNCV0KjQldCS0JjQiyDQnNCQ0KDQkAor0KjQldCo0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9Co0JXQqNCV0JLQmNCLINCh0KLQldCS0JDQnQor0KjQldCo0JjQiyDQltCY0JLQntCi0JAg0JTQmNCf0Jsg0JjQndCTCivQqNCV0KjQmNCLINCQ0KPQoNCV0JvQmNCI0JAKK9Co0JXQqNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KjQldCo0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQqNCV0KjQmNCLINCS0JXQoNCQCivQqNCV0KjQmNCLINCS0JjQlNCQCivQqNCV0KjQmtCQ0KAg0J3QkNCU0JAKK9Co0JXQqNCb0JjQiNCQINCn0JXQlNCQCivQqNCV0KjQm9CY0IjQkCDQkdCg0JDQndCa0J4KK9Co0JXQqNCb0JjQiNCQINCU0KDQkNCT0JDQnQor0KjQldCo0JvQmNCI0JAg0JTQo9Co0JDQnQor0KjQldCo0KPQnCDQkdCg0JDQndCa0J4KK9Co0JXQqNCj0Jwg0JTQoNCQ0JPQntCJ0KPQkQor0KjQldCo0KPQnCDQmNCb0JjQiNCQCivQqNCV0KjQo9CcINCc0JjQpdCQ0IjQm9CeCivQqNCV0KjQo9CcINCc0JjQm9CQ0J0KK9Co0JXQqNCj0Jwg0JzQmNCb0JDQnQor0KjQldCo0KPQnCDQnNCY0JvQldCd0JrQngor0KjQldCo0KPQnCDQodCQ0JLQkAor0KjQldCo0KPQnCDQodCb0JDQktCY0KbQkAor0KjQldCo0KPQnCDQotCe0JzQkAor0KjQldCL0JXQoNCe0JIg0JDQndCC0JXQm9CY0IjQkAor0KjQldCL0JXQoNCe0JIg0JHQmNCJ0JDQndCQCivQqNCV0IvQldCg0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Co0JXQi9CV0KDQntCSINCU0KDQldCd0JrQkAor0KjQldCL0JXQoNCe0JIg0JTQo9Co0JDQnQor0KjQldCL0JXQoNCe0JIg0JXQnNCY0JsKK9Co0JXQi9CV0KDQntCSINCY0JTQkAor0KjQldCL0JXQoNCe0JIg0JjQktCQ0J0KK9Co0JXQi9CV0KDQntCSINCI0J7QktCQ0J0KK9Co0JXQi9CV0KDQntCSINCa0JDQiNCQCivQqNCV0IvQldCg0J7QkiDQnNCQ0KLQkAor0KjQldCL0JXQoNCe0JIg0JzQmNCb0JDQnQor0KjQldCL0JXQoNCe0JIg0J/QkNCS0JvQlQor0KjQldCL0JXQoNCe0JIg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Co0JXQi9CV0KDQntCSINCf0JXQotCQ0KAKK9Co0JXQi9CV0KDQntCSINCf0KDQntCU0JDQnQor0KjQldCL0JXQoNCe0JIg0KDQkNCU0J7QodCb0JDQkgor0KjQldCL0JXQoNCe0JIg0KHQkNCS0JAKK9Co0JXQi9CV0KDQntCSINCh0JjQndCY0KjQkAor0KjQldCL0JXQoNCe0JIg0KHQktCV0KLQm9CQ0J3QkAor0KjQldCL0JXQoNCe0JIg0KHQktCV0KLQntCX0JDQoAor0KjQldCL0JXQoNCe0JIg0KHQktCV0KLQntCX0JDQoAor0KjQldCL0JXQoNCe0JIg0KHQktCV0KLQntCX0JDQoAor0KjQldCL0JXQoNCe0JIg0JfQm9CQ0KLQntCI0JUKK9Co0JXQi9CV0KDQntCSINCX0JvQkNCi0J7QiNCVCivQqNCV0JHQldCo0IvQldCdINCY0JzQoNCVCivQqNCV0JHQldCo0IvQldCdINCI0J7QltCV0KQKK9Co0JXQkdCV0JTQmNCd0Jgg0J3QldCS0JfQkNCUCivQqNCV0JHQldCaINCC0KPQm9CQCivQqNCV0JHQldCaINCQ0J3Qo9Co0JrQkAor0KjQldCR0JXQmiDQmNCS0JDQnQor0KjQldCR0JXQmiDQiNCe0KHQmNCfCivQqNCV0JHQldCa0J7QktCY0Isg0J/QkNCS0JvQlQor0KjQldCR0JXQlyDQlNCg0JDQk9CQ0J0KK9Co0JXQkdCV0Jcg0JTQo9Co0JDQnQor0KjQldCR0JXQlyDQm9CQ0JfQngor0KjQldCR0JXQlyDQoNCQ0JTQntCI0JrQkAor0KjQldCR0JXQlyDQodCY0JzQngor0KjQldCR0JXQlyDQodCi0JXQktCQ0J0KK9Co0JXQkdCV0Jcg0KHQotCV0JLQngor0KjQldCR0JXQlyDQodCi0JXQktCeCivQqNCV0JHQmCDQiNCV0JvQmNCm0JAKK9Co0JXQpNCn0JjQiyDQldCc0JjQmwor0KjQldCk0KfQmNCLINCc0JjQoNCa0J4KK9Co0JXQpNCV0KAg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Co0JXQpNCV0KAg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Co0JXQpNCV0KAg0IjQo9Cb0JjQiNCVINCU0KAKK9Co0JXQpNCV0KAg0JrQkNCi0JDQoNCY0J3QkAor0KjQldCk0JXQoCDQmtCb0JDQoNCQCivQqNCV0KTQldCgINCc0JjQntCU0KDQkNCTCivQqNCV0KTQldCgINCf0JXQotCQ0KAKK9Co0JXQpNCV0KAg0KDQkNCU0J7QiNCVCivQqNCV0KTQldCgINCh0JvQkNCS0JrQngor0KjQldCT0JXQpiDQldCU0KPQkNCg0JQKK9Co0JXQk9CY0J3QkCDQndCY0JrQntCb0JAKK9Co0JXQk9CeINCd0JjQmtCe0JvQkAor0KjQldCT0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQqNCV0JPQntCS0JjQiyDQnNCY0JvQntCoCivQqNCV0JPQoNCiINCn0JXQlNCe0JzQmNCgCivQqNCV0JPQoNCiINCn0JXQlNCe0JzQmNCgCivQqNCV0JPQoNCiINCI0J7QktCeCivQqNCV0JPQoNCiINCI0J7QktCeCivQqNCV0JPQoNCiINCc0JDQotCeCivQqNCV0JPQoNCiINCc0JvQkNCU0JXQnQor0KjQldCT0KDQoiDQndCQ0JTQkAor0KjQldCT0KDQoiDQn9CV0KLQkNCgCivQqNCV0JPQoNCiINCS0J7QiNCY0KHQm9CQ0JIKK9Co0JXQk9Cj0InQldCSINCU0KPQqNCQ0J0KK9Co0JXQk9Cj0InQldCSINCU0KPQqNCQ0J0KK9Co0JXQk9Cj0InQldCSINCU0KPQqNCQ0J0KK9Co0JXQk9Cj0InQldCSINCT0KDQo9CI0JAKK9Co0JXQk9Cj0InQldCSINCI0J7QktCQ0J0KK9Co0JXQk9Cj0InQldCSINCc0JDQoNCa0J4KK9Co0JXQk9Cj0InQldCSINCc0JjQmtCQCivQqNCV0JPQo9CJ0JXQkiDQnNCY0JvQldCd0JrQngor0KjQldCT0KPQidCV0JIg0J/QkNCI0JAKK9Co0JXQk9Cj0InQldCSINCf0JXQotCQ0KAKK9Co0JXQk9Cj0InQldCSINCg0JDQlNCe0KHQm9CQ0JIKK9Co0JXQk9Cj0InQldCSINCg0KPQltCY0KbQkAor0KjQldCT0KPQidCV0JIg0KHQm9CQ0JLQmtCeCivQqNCV0JPQo9CJ0JXQkiDQodCd0JXQltCQ0J3QkAor0KjQldCT0KPQidCV0JIg0JfQkNCT0J7QoNCa0JAKK9Co0JXQk9Cj0InQldCSINCX0J7QoNCY0KbQkAor0KjQldCl0JjQiyDQidCj0JHQmNCm0JAKK9Co0JXQpdCY0Isg0JzQmNCg0KHQkAor0KjQldCl0JjQiyDQodCb0JDQktCY0KbQkAor0KjQldCl0J7QktCY0Isg0KDQkNCc0JjQlwor0KjQldCI0JzQldCo0Jgg0KHQotCV0JLQkNCdCivQqNCV0IjQn9CV0Kgg0KjQkNCg0JvQntCi0JAKK9Co0JXQiNCf0JXQqCDQpNCV0JTQntCgCivQqNCV0IjQn9CV0Kgg0KTQldCU0J7QoAor0KjQldCI0J/QldCoINCT0JDQm9CY0J3QkAor0KjQldCI0J/QldCoINCY0JvQntCd0JAKK9Co0JXQmiDQiNCj0JvQmNCI0JDQnQor0KjQldCa0JDQoNCY0Isg0JzQmNCb0J7QodCQ0JIKK9Co0JXQmtCQ0KDQmNCLINCd0JDQlNCQCivQqNCV0JrQldCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQqNCV0JrQo9Cb0JDQoNCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Co0JXQmtCj0JvQkNCg0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQmNCf0Jsg0J7QldCmCivQqNCV0JrQo9Cb0JDQoNCQ0KYg0JTQo9Co0JDQnQor0KjQldCa0KPQm9CQ0KDQkNCmINCf0KDQldCU0KDQkNCTCivQqNCV0JrQo9Cb0JDQoNCQ0KYg0KHQkNCS0JrQkAor0KjQldCa0KPQm9CQ0KDQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9Co0JXQmyDQnNCQ0KDQk9CY0KLQkAor0KjQldCb0JEg0JvQkNCh0JvQngor0KjQldCb0JXQodCiINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQqNCV0InQldCcINCI0KPQm9CY0IjQkNCd0JAKK9Co0JXQidCV0Jwg0JrQkNCg0J7QiSDQlNCY0J/QmyDQmNCd0JMKK9Co0JXQidCV0Jwg0InQmNCJ0JDQndCQCivQqNCV0InQldCcINCh0KLQldCS0JDQnQor0KjQldCJ0JXQnCDQl9Ce0JvQotCQ0J0KK9Co0JXQm9Ca0JXQnSDQmNCb0J7QndCa0JAKK9Co0JXQm9Cc0JjQiyDQktCj0JrQntCc0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Co0JXQndCn0JXQktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Co0JXQndCR0J7QoNCdINCQ0JTQkNCb0JHQldCg0KIg0JTQoCDQn9Cg0J7QpAor0KjQldCd0JTQo9Cb0JAg0KjQkNCd0JTQntCgCivQqNCV0J3QlNCj0JvQkCDQkNCd0KLQkNCbCivQqNCV0J3QlNCj0JvQkCDQk9CQ0JHQntCgCivQqNCV0J3QpdCQ0KPQl9CV0KAg0KLQntCc0JjQodCb0JDQkgor0KjQldCd0Jog0JDQm9CR0JjQndCQCivQqNCV0J3QmiDQmNCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Co0JXQndCaINCS0J7QiNCY0J0KK9Co0JXQndCi0JDQm9CV0KAg0JXQnNCY0JsKK9Co0JXQnyDQm9CV0J3QmtCQCivQqNCV0J/QqNCV0Jgg0JrQoNCY0KHQotCY0J3QkAor0KjQldCf0JAg0KHQktCV0KLQntCX0JDQoAor0KjQldCf0JDQoNCV0JLQmNCLINCU0JDQoNCa0J4KK9Co0JXQn9CQ0KDQntCS0JjQiyDQlNCQ0KDQmtCeCivQqNCV0J/QkNCg0J7QktCY0Isg0InQmNCJ0JDQndCQCivQqNCV0J/QkNCg0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KjQldCf0JDQoNCe0JLQmNCLINCX0J7QoNCQCivQqNCV0J/QldCmINCS0JvQkNCU0JjQnNCY0KAKK9Co0JXQn9CV0KbQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KjQldCf0JXQiSDQm9CV0J3QmtCQCivQqNCV0J/QldCg0JDQpiDQoNCQ0J3QmtCQCivQqNCV0J/QmNCLINCX0JDQlNCQCivQqNCV0J/QmNCd0KHQmtCYINCC0KPQoNCQCivQqNCV0J/QmNCd0KHQmtCYINCC0KPQoNCQCivQqNCV0J/QmNCd0KHQmtCYINCI0J7QkNCa0JjQnAor0KjQldCf0JjQndCh0JrQmCDQodCb0JDQktCY0KbQkAor0KjQldCg0JHQkNCdINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQqNCV0KDQkdCV0I/QmNCI0JAg0JTQoNCQ0JPQntCJ0KPQkQor0KjQldCg0JHQldCP0JjQiNCQINCc0JjQoNCa0J4KK9Co0JXQoNCR0JXQj9CY0IjQkCDQnNCY0KDQmtCeCivQqNCV0KDQkdCY0Isg0IjQldCb0JrQkAor0KjQldCg0JHQmNCLINCX0JDQk9Ce0KDQmtCQCivQqNCV0KDQkdCY0Isg0JfQkNCT0J7QoNCa0JAKK9Co0JXQoNCR0KPQm9CQINCR0KDQkNCd0JrQngor0KjQldCg0JHQo9Cb0JAg0JzQmNCb0JDQnQor0KjQldCg0JXQqCDQqNCQ0J3QlNCe0KAKK9Co0JXQoNCV0Kgg0JbQo9CW0JDQndCQCivQqNCV0KDQldCoINCQ0J3QkAor0KjQldCg0JXQqCDQkNCd0KLQo9CdCivQqNCV0KDQldCoINCV0J3QlNCg0JUKK9Co0JXQoNCV0Kgg0JXQodCi0JXQoAor0KjQldCg0JXQqCDQpNCg0JDQndCm0JjQqNCa0JAKK9Co0JXQoNCV0Kgg0JPQmNCX0JXQm9CQCivQqNCV0KDQldCoINCY0JzQoNCVCivQqNCV0KDQldCoINCI0JDQndCe0KgKK9Co0JXQoNCV0Kgg0JrQkNCg0J7QiSDQnNCgCivQqNCV0KDQldCoINCb0JDQodCb0J4KK9Co0JXQoNCV0Kgg0KHQotCV0JLQkNCdCivQqNCV0KDQldCT0Jgg0JfQntCb0KLQkNCdCivQqNCV0KDQldCc0JXQotCa0J7QktCh0JrQmCDQkNCb0JXQmtCh0JAKK9Co0JXQoNCV0JzQldCi0JrQntCS0KHQmtCYINCR0J7QndCQCivQqNCV0KDQldCgINCb0JXQndCa0JAKK9Co0JXQoNCk0JXQl9CYINCC0KPQoNCQCivQqNCV0KDQmNCLINCc0JjQm9Ca0JAKK9Co0JXQoNCY0KQg0J3QldCo0JDQogor0KjQldCg0JjQpNCYINCg0JDQkdCY0IjQkAor0KjQldCg0JjQpNCYINCh0JDQpNCV0KIKK9Co0JXQoNCa0J7QkiDQidCY0InQkNCd0JAKK9Co0JXQoNCa0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQqNCV0KDQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Co0JXQodCV0Jog0KHQotCQ0J3QmNCh0JvQkNCSCivQqNCV0KHQotCQ0J0g0JHQntCg0JjQoQor0KjQldCh0KLQkNCd0J7QkiDQkdCg0JDQndCa0J4KK9Co0JXQodCi0JDQndCe0JIg0JzQmNCb0JXQndCQCivQqNCV0KHQotCY0Isg0JHQntCT0JTQkNCdCivQqNCV0KLQkNCb0J4g0KjQkNCd0JTQntCgCivQqNCV0KLQkNCb0J4g0KTQoNCQ0IrQkAor0KjQldCi0JDQm9CeINCY0JzQoNCVCivQqNCV0KLQkNCb0J4g0JjQnNCg0JUKK9Co0JXQotCQ0JvQniDQmtCQ0KDQm9CeCivQqNCV0KLQkNCb0J4g0JrQkNCg0J7QiQor0KjQldCi0JrQkCDQmtCQ0KLQkAor0KjQldCi0JrQkCDQotCe0JzQmNCh0JvQkNCSCivQqNCV0KLQoNCQ0IjQp9CY0Isg0JjQm9CU0JjQmtCeCivQqNCV0JLQp9CY0Isg0ILQntCg0ILQlQor0KjQldCS0JDQoCDQldCc0JjQm9CY0IjQkAor0KjQldCS0JDQoCDQiNCe0KHQmNCfINCS0JXQotCV0KDQmNCd0JDQoAor0KjQldCS0JDQoCDQktCb0JDQlNCY0KHQm9CQ0JIKK9Co0JXQktCQ0KDQm9CY0Isg0JrQntCh0KLQkAor0KjQldCS0JXQoNCe0JIg0KDQkNCU0J7QodCb0JDQkgor0KjQldCS0JjQiyDQgtCe0KDQgtCVINCc0KAKK9Co0JXQktCY0Isg0ILQntCg0ILQlQor0KjQldCS0JjQiyDQgtCe0KDQgtCVCivQqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQqNCV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Co0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQqNCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Co0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KjQldCS0JjQiyDQiNCe0JLQngor0KjQldCS0JjQiyDQm9CQ0JfQkNCgCivQqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Co0JXQktCY0Isg0JzQmNCb0J7QqAor0KjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Co0JXQktCY0Isg0J3QkNCU0JAKK9Co0JXQktCY0Isg0J3QkNCU0JAKK9Co0JXQktCY0Isg0J/QldCi0JDQoAor0KjQldCS0JjQiyDQn9CV0KLQkNCgCivQqNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQqNCV0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQqNCV0JLQmNCLINCh0JDQktCa0JAKK9Co0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KjQldCS0JjQiyDQodCg0ILQkNCdCivQqNCV0JLQmNCLINCi0KDQmNCS0J4KK9Co0JXQktCeINCn0JXQlNCe0JzQmNCgCivQqNCV0JLQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KjQldCS0J4g0JHQntCo0JrQngor0KjQldCS0J4g0JHQntCo0JrQngor0KjQldCS0J4g0JHQoNCQ0J3QmtCeCivQqNCV0JLQniDQlNCj0KjQkNCdCivQqNCV0JLQniDQiNCe0JLQngor0KjQldCS0J4g0JzQmNCb0JDQnQor0KjQldCS0J4g0JzQmNCb0JDQnQor0KjQldCS0J4g0JzQmNCb0JDQnQor0KjQldCS0J4g0JzQm9CQ0JTQldCdCivQqNCV0JLQniDQodCb0JDQktCY0KbQkAor0KjQldCS0J4g0JLQm9CQ0JTQngor0KjQmNCo0JAg0IjQntCh0JjQnwor0KjQmNCo0JAg0IjQntCh0JjQnwor0KjQmNCo0JDQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0KjQmNCo0JDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Co0JjQqNCQ0KDQmNCm0JAg0InQo9Cf0JrQngor0KjQmNCo0JDQoNCY0KbQkCDQl9CU0KDQkNCS0JrQngor0KjQmNCo0JXQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Co0JjQqNCY0Isg0JzQmNCb0JDQnQor0KjQmNCo0JjQiyDQnNCb0JDQlNCV0J0KK9Co0JjQqNCY0Isg0J/QldCi0JrQkAor0KjQmNCo0JjQiyDQodCi0IjQldCf0JDQnQor0KjQmNCo0JrQkCDQnNCQ0KDQk9CY0KLQkAor0KjQmNCo0JrQntCSINCQ0J3QotCVCivQqNCY0KjQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Co0JjQqNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KjQmNCo0InQkNCT0JjQiyDQp9CV0JTQngor0KjQmNCo0InQkNCT0JjQiyDQlNCj0KjQkNCdCivQqNCY0KjQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQqNCY0KjQntCS0JjQiyDQnNCY0JvQkNCo0JjQnQor0KjQmNCC0JDQndCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQqNCY0ILQkNCd0JjQnSDQlNCj0KjQkNCdINCU0JjQn9CbINCY0J3Qkwor0KjQmNCC0JDQndCY0J0g0JzQmNCb0JjQptCQCivQqNCY0ILQkNCd0JjQnSDQnNCY0JvQntCI0JUg0JTQmNCf0Jsg0JjQndCTCivQqNCY0ILQkNCd0KHQmtCYINCR0KPQlNCY0JzQmNCgCivQqNCY0ILQkNCd0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Co0JjQkdCQ0JvQmNCLINCY0JvQmNCI0JAKK9Co0JjQkdCQ0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQqNCY0JHQo9CbINCX0J7QoNCQ0J0KK9Co0JjQkdCj0Jsg0JfQntCg0JjQptCQCivQqNCY0JHQo9Cb0J7QkiDQgtCj0KDQkAor0KjQmNCmINCc0JDQoNCY0IjQkAor0KjQmNCmINCi0JXQoNCV0JfQkAor0KjQmNCk0JvQmNCoINCI0JDQk9Ce0JTQkAor0KjQmNCk0JvQmNCoINCb0JDQiNCe0KgKK9Co0JjQpNCb0JjQqCDQodCb0JDQktCa0J4KK9Co0JjQk9Cj0JQg0ILQntCg0ILQlQor0KjQmNCl0JAg0JjQqNCi0JLQkNCdCivQqNCY0IjQkNCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KjQmNCI0JDQp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Co0JjQiNCQ0KfQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Co0JjQiNCQ0KfQmNCLINCR0J7QodCY0InQmtCQCivQqNCY0IjQkNCn0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Co0JjQiNCQ0KfQmNCLINCU0JDQndCY0KbQkAor0KjQmNCI0JDQp9CY0Isg0JTQkNCd0JjQptCQCivQqNCY0IjQkNCn0JjQiyDQlNCQ0J3QmNCb0J4KK9Co0JjQiNCQ0KfQmNCLINCU0JDQndCY0JvQngor0KjQmNCI0JDQp9CY0Isg0JTQo9Co0JDQnQor0KjQmNCI0JDQp9CY0Isg0JTQo9Co0JjQptCQCivQqNCY0IjQkNCn0JjQiyDQlNCj0KjQmNCm0JAKK9Co0JjQiNCQ0KfQmNCLINCI0JXQm9CY0KbQkAor0KjQmNCI0JDQp9CY0Isg0JvQldCh0JAKK9Co0JjQiNCQ0KfQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Co0JjQiNCQ0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQqNCY0IjQkNCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQqNCY0IjQkNCn0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQqNCY0IjQkNCn0JjQiyDQodCi0JDQndCa0JAKK9Co0JjQiNCQ0KfQmNCLINCh0KLQldCS0JDQnQor0KjQmNCI0JDQp9CY0Isg0JfQntCg0JjQptCQCivQqNCY0IjQkNCn0JrQmCDQltCY0JLQkAor0KjQmNCI0JDQp9Ca0Jgg0JbQmNCS0JrQngor0KjQmNCI0JDQp9Ca0Jgg0ILQo9Cg0ILQmNCd0JrQkAor0KjQmNCI0JDQp9Ca0Jgg0JHQntCW0JjQlNCQ0KAKK9Co0JjQiNCQ0KfQmtCYINCU0KDQkNCT0JDQndCQCivQqNCY0IjQkNCn0JrQmCDQk9Ce0KDQlNCQ0J3QkAor0KjQmNCI0JDQp9Ca0Jgg0JjQodCQCivQqNCY0IjQkNCn0JrQmCDQiNCe0JLQkNCdCivQqNCY0IjQkNCn0JrQmCDQmtCe0KHQotCQCivQqNCY0IjQkNCn0JrQmCDQm9CQ0JfQkNCgCivQqNCY0IjQkNCn0JrQmCDQnNCY0JvQkNCdCivQqNCY0IjQkNCn0JrQmCDQnNCY0JvQldCd0JrQngor0KjQmNCI0JDQp9Ca0Jgg0JzQmNCb0J7QqAor0KjQmNCI0JDQp9Ca0Jgg0JzQmNCg0IjQkNCd0JAKK9Co0JjQiNCQ0KfQmtCYINCd0JXQodCi0J7QoCDQlNCgCivQqNCY0IjQkNCn0JrQmCDQn9CV0KLQkNCgCivQqNCY0IjQkNCn0JrQmCDQn9Cg0JXQlNCg0JDQkwor0KjQmNCI0JDQp9Ca0Jgg0KDQkNCU0J7QodCb0JDQktCQCivQqNCY0IjQkNCn0JrQmCDQodCY0JzQkAor0KjQmNCI0JDQp9Ca0Jgg0KHQm9CQ0JLQmtCeCivQqNCY0IjQkNCn0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQqNCY0IjQkNCn0JrQmCDQodCi0JXQktCQ0J0KK9Co0JjQiNCQ0KfQmtCYINCi0J7QnNCY0KHQm9CQ0JIKK9Co0JjQiNCQ0KfQmtCYINCS0JjQotCe0JzQmNCgCivQqNCY0IjQkNCn0JrQmCDQktCj0IjQmNCm0JAKK9Co0JjQiNCQ0Jog0ILQntCg0ILQlQor0KjQmNCI0JDQmiDQiNCV0JvQmNCm0JAKK9Co0JjQiNCQ0Jog0JzQmNCb0JXQndCa0J4KK9Co0JjQiNCQ0Jog0JzQmNCb0J7QqAor0KjQmNCI0JDQmiDQn9CQ0JLQm9CVCivQqNCY0IjQkNCaINCf0JXQotCQ0KAKK9Co0JjQiNCQ0Jog0KLQntCc0JAKK9Co0JjQiNCQ0JrQntCSINCh0KLQkNCd0JjQodCb0JDQktCQCivQqNCY0IjQkNCa0J7QkiDQktCV0InQmtCeCivQqNCY0IjQkNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Co0JjQiNCQ0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KjQmNCI0JDQmtCe0JLQmNCLINCh0KLQldCS0JAKK9Co0JjQiNCQ0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQqNCY0IjQkNCdINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQqNCY0IjQkNCdINCR0J7QiNCQCivQqNCY0IjQkNCdINCR0KDQkNCd0JrQngor0KjQmNCI0JDQnSDQkdCg0JDQndCa0J4KK9Co0JjQiNCQ0J0g0JHQoNCQ0J3QmtCeCivQqNCY0IjQkNCdINCU0JDQndCVCivQqNCY0IjQkNCdINCY0JvQmNCI0JAKK9Co0JjQiNCQ0J0g0JzQmNCb0JXQktCQCivQqNCY0IjQkNCdINCc0JjQm9Ce0KgKK9Co0JjQiNCQ0J0g0JzQmNCg0JrQngor0KjQmNCI0JDQnSDQndCV0JLQldCd0JrQkAor0KjQmNCI0JDQnSDQndCY0JrQntCb0JAKK9Co0JjQiNCQ0J0g0KDQkNCU0JUKK9Co0JjQiNCQ0J0g0KHQm9Ce0JHQntCU0JDQnQor0KjQmNCI0KPQmiDQlNCg0JDQk9CQ0J0KK9Co0JjQmiDQotCY0JHQntCgCivQqNCY0JrQldCiINCY0KjQotCS0JDQnQor0KjQmNCa0JXQoiDQmNCo0KLQktCQ0J0KK9Co0JjQmtCV0KIg0JjQnNCg0JUKK9Co0JjQmtCV0KIg0IjQntCW0JXQpAor0KjQmNCa0JXQoiDQm9CQ0KHQm9CeCivQqNCY0JrQldCiINCb0JDQodCb0J4KK9Co0JjQmtCV0KIg0JvQkNCh0JvQngor0KjQmNCa0JXQoiDQnNCQ0JPQlNCQCivQqNCY0JrQldCiINCh0KLQldCS0JDQnQor0KjQmNCa0JjQiyDQkdCe0JPQlNCQ0J0KK9Co0JjQmtCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KjQmNCa0JzQkNCdINCX0JLQntCd0JrQngor0KjQmNCa0J7Qn9CQ0KDQmNCI0JAg0ILQntCg0ILQlQor0KjQmNCa0J7Qn9CQ0KDQmNCI0JAg0JHQntCg0JjQodCb0JDQkgor0KjQmNCa0J7Qn9CQ0KDQmNCI0JAg0JTQo9Co0JDQnQor0KjQmNCa0J7Qn9CQ0KDQmNCI0JAg0IjQldCb0JXQndCQCivQqNCY0JrQntCf0JDQoNCY0IjQkCDQnNCY0JvQkNCdCivQqNCY0JrQntCf0JDQoNCY0IjQkCDQndCV0JLQldCd0JAKK9Co0JjQmtCe0J/QkNCg0JjQiNCQINCi0JjQpdCe0JzQmNCgCivQqNCY0JrQntCf0JDQoNCY0IjQkCDQotCY0KXQntCc0JjQoAor0KjQmNCa0J7Qn9CQ0KDQmNCI0JAg0JLQm9CQ0JTQmNCc0JjQoAor0KjQmNCb0JUg0KjQkNCd0JTQntCgCivQqNCY0JvQlSDQm9CQ0JTQmNCh0JvQkNCSCivQqNCY0JvQlSDQl9Ce0JvQotCQ0J0KK9Co0JjQm9CV0KAg0JzQmNCb0J7QoNCQ0JQKK9Co0JjQm9CV0KAg0JzQmNCb0J7QoNCQ0JQKK9Co0JjQm9CYINCY0KjQotCS0JDQnQor0KjQmNCb0Jgg0JrQkNCg0JvQngor0KjQmNCb0Jgg0JzQmNCl0JDQiNCb0J4KK9Co0JjQm9CYINCS0JDQm9CV0KDQmNCI0JAKK9Co0JjQm9CY0Isg0ILQntCg0ILQlQor0KjQmNCb0JjQiyDQgtCe0KDQgtCVCivQqNCY0JvQmNCLINCC0J7QoNCC0JUKK9Co0JjQm9CY0Isg0JDQndCQCivQqNCY0JvQmNCLINCR0J7Qk9CU0JDQnQor0KjQmNCb0JjQiyDQlNCQ0J3QmNCm0JAKK9Co0JjQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KjQmNCb0JjQiyDQlNCj0KjQmNCm0JAKK9Co0JjQm9CY0Isg0IjQntCS0JDQnQor0KjQmNCb0JjQiyDQidCj0JHQmNCm0JAKK9Co0JjQm9CY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQoAor0KjQmNCb0JjQiyDQnNCY0JvQntCh0JDQktCQCivQqNCY0JvQmNCLINCc0JjQoNCI0JDQndCQCivQqNCY0JvQmNCLINCc0JjQoNCa0J4KK9Co0JjQm9CY0Isg0JzQmNCg0JrQngor0KjQmNCb0JjQiyDQndCQ0JTQkAor0KjQmNCb0JjQiyDQndCY0JrQntCb0JAKK9Co0JjQm9CY0Isg0J7Qm9CT0JjQptCQCivQqNCY0JvQmNCLINCe0JvQk9CY0KbQkAor0KjQmNCb0JjQiyDQn9CV0KLQkNCgCivQqNCY0JvQmNCLINCf0JXQotCQ0KAKK9Co0JjQm9CY0Isg0KDQkNCm0JrQngor0KjQmNCb0JjQiyDQodCQ0JLQkAor0KjQmNCb0JjQiyDQodCf0JDQodCV0J3QmtCQCivQqNCY0JvQmNCLINCh0KLQntCI0JDQnQor0KjQmNCb0JjQiyDQotCe0KjQkAor0KjQmNCb0JjQiyDQotCe0JTQntCgCivQqNCY0JvQmNCLINCS0JDQodCQCivQqNCY0JvQmNCLINCS0JXQoNCQCivQqNCY0JvQmNCLINCS0JjQotCe0JzQmNCgCivQqNCY0InQldCTINCI0J7Ql9CeCivQqNCY0InQldCT0J7QktCY0Isg0JHQntCo0JrQngor0KjQmNCJ0JXQk9Ce0JLQmNCLINCR0J7QqNCa0J4KK9Co0JjQidCV0JPQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQqNCY0InQldCT0J7QktCY0Isg0JTQo9Co0JDQnQor0KjQmNCJ0JXQk9Ce0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQqNCY0InQldCT0J7QktCY0Isg0JzQmNCb0JDQnQor0KjQmNCJ0JXQk9Ce0JLQmNCLINCd0JDQlNCQCivQqNCY0InQmNCLINCL0JDQnNCY0JsKK9Co0JjQidCa0KPQoiDQnNCY0JvQkNCdCivQqNCY0InQmtCj0KIg0JzQmNCb0JDQnQor0KjQmNCJ0JrQo9CiINCc0JjQoNCa0J4KK9Co0JjQnNCn0JjQiyDQntCb0JPQmNCm0JAKK9Co0JjQnNCo0JjQiyDQlNCj0KjQkNCdCivQqNCY0JzQqNCY0Isg0JjQm9CY0IjQkAor0KjQmNCc0KjQmNCLINCh0JDQktCeCivQqNCY0JzQkCDQiNCe0JDQmtCY0JwKK9Co0JjQnNCQINCc0JDQoNCT0JjQotCQCivQqNCY0JzQkCDQktCV0KDQntCd0JjQmtCQCivQqNCY0JzQkNCaINCI0JDQnQor0KjQmNCc0JDQm9CQINCS0JjQmtCi0J7QoAor0KjQmNCc0JDQnSDQkNCb0JXQmtCh0JXQiAor0KjQmNCc0JDQndCU0Jgg0JPQkNCR0KDQmNCI0JXQm9CQCivQqNCY0JzQkNCd0JTQmCDQodCi0JXQktCQ0J0KK9Co0JjQnNCV0Jog0JLQm9CQ0KLQmtCeCivQqNCY0JzQmNCn0JjQiyDQn9CV0KLQkNCgCivQqNCY0JzQmNCn0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Co0JjQnNCY0Isg0JDQndCi0J4KK9Co0JjQnNCY0Isg0JHQntCW0JDQndCQCivQqNCY0JzQmNCLINCk0KDQkNCK0J4KK9Co0JjQnNCY0Isg0JPQmNCX0JXQm9CQCivQqNCY0JzQmNCLINCl0KDQktCe0IjQlQor0KjQmNCc0JjQiyDQiNCj0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Co0JjQnNCY0Isg0JzQmNCb0JDQnQor0KjQmNCc0JjQiyDQnNCY0JvQkNCdCivQqNCY0JzQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Co0JjQnNCY0Isg0JzQm9CQ0JTQldCdCivQqNCY0JzQmNCLINCd0JjQndCe0KHQm9CQ0JIKK9Co0JjQnNCY0Isg0KHQm9CQ0JLQmtCeCivQqNCY0JzQmNCLINCh0JvQkNCS0JrQngor0KjQmNCc0JjQiyDQodCi0JXQktCQ0J0KK9Co0JjQnNCY0JMg0KLQmNCR0J7QoAor0KjQmNCc0J7QmtCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Co0JjQnNCe0J0g0KjQkNCd0JTQntCgCivQqNCY0JzQntCdINCC0JXQoNCCCivQqNCY0JzQntCdINCQ0KDQn9CQ0JQKK9Co0JjQnNCe0J0g0JXQoNCW0JXQkdCV0KIKK9Co0JjQnNCe0J0g0JzQkNCg0JjQptCQCivQqNCY0JzQntCdINCc0JjQpdCQ0IkKK9Co0JjQnNCe0J0g0JLQmNCb0JzQntCoINCU0KAKK9Co0JjQnNCe0J3QmNCaINCS0JvQkNCU0JAKK9Co0JjQnNCe0IrQmCDQqNCQ0J3QlNCe0KAKK9Co0JjQnNCe0IrQmCDQkdCQ0KDQkdCQ0KDQkAor0KjQmNCc0J7QitCYINCI0JDQndCe0KgKK9Co0JjQnNCe0IrQmCDQodCe0KTQmNCI0JAKK9Co0JjQnNCe0IrQmCDQl9Ce0JvQotCQ0J0KK9Co0JjQnNCe0IrQmCDQl9CS0J7QndCa0J4KK9Co0JjQnNCe0IrQmNCaINCc0JDQotCY0IjQkAor0KjQmNCc0J7QktCY0Isg0IjQntCW0JXQpAor0KjQmNCc0J7QktCY0Isg0JzQmNCg0J4KK9Co0JjQnNCf0KDQkNCT0JAg0JTQo9Co0JDQnQor0KjQmNCc0J/QoNCQ0JPQkCDQiNCQ0JTQoNCQ0J3QmtCQCivQqNCY0JzQo9CU0JLQkNCg0JDQpiDQn9CQ0JLQkNCeCivQqNCY0JzQo9Cb0JjQiNCQINCU0KDQkNCW0JXQnQor0KjQmNCc0KPQm9CY0IjQkCDQiNCe0JLQngor0KjQmNCc0KPQndCC0JAg0InQo9CR0J7QnNCY0KAKK9Co0JjQnNCj0J3QldCmINCc0JDQoNCY0IjQkAor0KjQmNCc0KPQndCY0Isg0JDQndCa0JAKK9Co0JjQnNCj0J3QmNCLINCY0JLQkNCdCivQqNCY0JzQo9Cd0JjQiyDQmtCQ0KDQm9CeCivQqNCY0JzQo9Cd0JjQiyDQodCi0JXQktCQ0J0KK9Co0JjQnNCj0J3QntCS0JDQp9Ca0Jgg0JrQkNCi0JjQptCQCivQqNCY0JzQo9Cd0J7QktCQ0KfQmtCYINCd0JjQmtCe0JvQkAor0KjQmNCc0KPQndCe0JLQkNCn0JrQmCDQndCY0JrQntCb0JAKK9Co0JjQnNCj0J3QntCS0JDQp9Ca0Jgg0KHQm9CQ0JLQmtCeCivQqNCY0JzQo9Cd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Co0JjQnNCj0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KjQmNCc0KPQndCe0JLQmNCLINCI0J7QodCY0J8KK9Co0JjQnNCj0J3QntCS0JjQiyDQiNCe0KHQmNCfCivQqNCY0JzQo9Cd0J7QktCY0Isg0IjQntCh0JjQnwor0KjQmNCc0KPQndCe0JLQmNCLINCd0JXQndCQ0JQKK9Co0JjQnNCj0J3QntCS0JjQiyDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0JjQndCTCivQqNCY0JzQo9Cd0J7QktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQqNCY0JzQo9Cd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQqNCY0JzQo9Cd0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KjQmNCc0KPQndCe0JLQmNCLINCi0J7QnNCQCivQqNCY0J3QkNCT0Jsg0JrQkNCg0J7QiQor0KjQmNCd0JDQk9CbINCa0JDQoNCe0IkKK9Co0JjQndCQ0JPQmyDQntCi0J4KK9Co0JjQndCQ0JPQmyDQodCi0JXQktCQ0J0KK9Co0JjQndCY0Jog0JTQoNCQ0JPQkNCdCivQqNCY0J3QmNCa0J7QkiDQgtCe0KDQgtCVCivQqNCY0J3QmNCa0J7QkiDQnNCY0JvQkNCdCivQqNCY0J3QmtCQINCc0JDQoNCT0JjQotCQCivQqNCY0J3QmtCQINCX0JvQkNCi0JrQngor0KjQmNCd0JrQniDQk9CY0JfQldCb0JAKK9Co0JjQndCa0J4g0JjQktCQ0J3QmtCQCivQqNCY0J3QmtCeINCI0JDQndCe0KgKK9Co0JjQndCa0J4g0KHQotCV0JLQkNCdCivQqNCY0J3QmtCeINCS0JvQkNCU0JjQodCb0JDQkgor0KjQmNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Co0JjQn9Cn0JjQiyDQidCj0JHQntCc0JjQoAor0KjQmNCf0KfQmNCLINCc0JDQoNCY0IjQkAor0KjQmNCf0KfQmNCLINCc0JjQlNCeCivQqNCY0J/Qp9CY0Isg0JzQmNCI0J7QlNCg0JDQkwor0KjQmNCf0KfQmNCLINCd0JjQndCe0KHQm9CQ0JIKK9Co0JjQn9CV0Jog0IjQntCh0JjQnyDQndCe0JLQmNCd0JDQoAor0KjQmNCf0JXQotCY0Isg0JDQndCC0JAKK9Co0JjQn9CV0KLQmNCLINCc0J7QnNCn0JjQm9CeCivQqNCY0J/QmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQqNCY0J/QmNCdINCI0J7QktCQ0J3QmtCQCivQqNCY0J/QmtCQINCR0J7QltCQCivQqNCY0J/QmtCQINCR0J7QltCeCivQqNCY0J/QmtCQINCR0KDQkNCd0JrQngor0KjQmNCf0JrQkCDQlNCg0JDQk9CQ0J0KK9Co0JjQn9Ca0JAg0JTQoNCQ0JPQngor0KjQmNCf0JrQkCDQk9Cg0KPQiNCeCivQqNCY0J/QmtCQINCc0JDQoNCa0J4KK9Co0JjQn9Ca0JAg0JzQmNCg0JrQngor0KjQmNCf0JrQkCDQnNCY0KDQntCh0JvQkNCSCivQqNCY0J/QmtCQINCc0JjQoNCeCivQqNCY0J/QmtCQINCd0JXQgtCeCivQqNCY0J/QmtCQINCX0J7QoNCQ0J0KK9Co0JjQn9Ca0JAg0JfQntCg0JDQnQor0KjQmNCf0J7QqCDQqNCQ0J3QlNCe0KAKK9Co0JjQn9Ce0Kgg0ILQntCg0ILQlQor0KjQmNCf0J7QqCDQgtCe0KDQgtCVCivQqNCY0J/QntCoINCC0KPQoNCQCivQqNCY0J/QntCoINCC0KPQoNCeCivQqNCY0J/QntCoINCV0JTQmNCiCivQqNCY0J/QntCoINCV0KDQltCV0JHQldCiCivQqNCY0J/QntCoINCY0JPQitCQ0KYKK9Co0JjQn9Ce0Kgg0IjQkNCd0J7QqAor0KjQmNCf0J7QqCDQiNCe0JLQkNCd0JrQkAor0KjQmNCf0J7QqCDQiNCe0JLQkNCdCivQqNCY0J/QntCoINCI0KPQm9CY0IjQkNCd0JAKK9Co0JjQn9Ce0Kgg0JzQmNCg0IjQkNCd0JAKK9Co0JjQn9Ce0Kgg0KDQntCX0JDQm9CY0IjQkAor0KjQmNCf0J7QqCDQktCb0JDQlNCY0JzQmNCgCivQqNCY0J/QntCo0JXQktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Co0JjQn9Ce0KHQmtCYINCa0KDQodCi0JUKK9Co0JjQn9Ce0JLQkNCmINCm0JLQmNCI0JXQotCQCivQqNCY0J/QntCS0JDQpiDQlNCQ0J3QmNCb0J4KK9Co0JjQn9Ce0JLQkNCmINCI0JDQitCQCivQqNCY0J/QntCS0JDQpiDQndCV0JTQldCJ0JrQngor0KjQmNCf0J7QktCQ0KYg0KDQkNCU0JjQptCQCivQqNCY0J/QntCS0JDQpiDQktCQ0KHQmNCb0JjQiNCQCivQqNCY0J/QoNCQ0JPQkCDQo9Cg0J7QqAor0KjQmNCf0KPQqNCY0Isg0KXQldCb0JXQndCQCivQqNCY0KDQkNCU0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQqNCY0KDQmNCI0J7QktCh0JrQmCDQk9Ce0KbQlQor0KjQmNCg0JrQkCDQiNCQ0J0KK9Co0JjQoNCa0JAg0KHQkNCc0KPQldCbCivQqNCY0KDQntCn0JrQkCDQkNCd0KLQo9CdCivQqNCY0KDQntCa0Jgg0JDQlNCQ0JwKK9Co0JjQoNCe0JvQkCDQmNCS0JDQnQor0KjQmNCg0J7QndCY0Isg0InQo9CR0J4KK9Co0JjQodCi0J7QkiDQlNCg0JDQk9CeCivQqNCY0KLQlSDQmtCQ0KDQntCJCivQqNCY0KLQlSDQnNCQ0KDQmNCI0JAKK9Co0JjQotCVINCi0JjQkdCe0KAKK9Co0JjQotCV0KAg0JrQkNCg0JvQngor0KjQmNCi0JXQoCDQoNCj0JbQmNCm0JAKK9Co0JjQotCV0KAg0KHQm9Ce0JHQntCU0JDQnQor0KjQmNCS0JXQk9CYINCY0JzQoNCVCivQqNCa0JDQidCQ0KYg0KHQotCQ0J3QmtCeCivQqNCa0JDQidCQ0KYg0JfQntCg0JDQnQor0KjQmtCQ0KDQmNCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQqNCa0JDQoNCY0KbQkCDQlNCe0JvQntCg0JXQoQor0KjQmtCQ0KDQmNCm0JAg0KHQotCI0JXQn9CQ0J0KK9Co0JrQkNCg0JjQnSDQotCe0JTQntCgCivQqNCa0JDQotCQ0KDQmNCLINCX0J7QoNCQ0J0KK9Co0JrQkNCS0JjQiyDQptCS0JjQiNCeCivQqNCa0JDQktCY0Isg0IjQntCS0J4KK9Co0JrQkNCS0JjQiyDQnNCY0JvQkNCdCivQqNCa0JDQktCY0Isg0J3QmNCa0J7Qm9CQCivQqNCa0JXQmtCY0Isg0JzQmNCe0JzQmNCgCivQqNCa0JjQidCQ0IjQmNCm0JAg0JLQm9CQ0JTQmNCc0JjQoAor0KjQmtCY0InQldCS0JjQiyDQnNCY0JvQmNCU0KDQkNCTCivQqNCa0J7QkdCQ0Ikg0J3QkNCU0JAKK9Co0JrQntCR0JDQiSDQktCe0IjQmNCh0JvQkNCSCivQqNCa0J7QlNCQ0Jog0J/QkNCS0JvQlQor0KjQmtCe0JvQntCf0JjQiNCQINCb0JDQl9CQ0KAKK9Co0JrQntCd0JTQoNCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KjQmtCe0KDQmNCLINCn0JXQlNCe0JzQmNCgCivQqNCa0J7QoNCY0Isg0KjQotCg0JDQptCY0JzQmNCgCivQqNCa0J7QoNCY0Isg0ILQo9CI0JAKK9Co0JrQntCg0JjQiyDQgtCj0KDQngor0KjQmtCe0KDQmNCLINCQ0J3QmtCQCivQqNCa0J7QoNCY0Isg0JHQntCh0JjQidCa0JAKK9Co0JrQntCg0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Co0JrQntCg0JjQiyDQkdCg0JDQndCa0J4KK9Co0JrQntCg0JjQiyDQlNCg0JDQk9CQ0J0g0JTQoAor0KjQmtCe0KDQmNCLINCU0KDQkNCT0JDQnQor0KjQmtCe0KDQmNCLINCU0KDQkNCT0JDQnQor0KjQmtCe0KDQmNCLINCU0KPQqNCQ0J0KK9Co0JrQntCg0JjQiyDQlNCj0KjQkNCdCivQqNCa0J7QoNCY0Isg0JTQo9Co0JDQnQor0KjQmtCe0KDQmNCLINCU0KPQqNCa0J4KK9Co0JrQntCg0JjQiyDQk9Cg0KPQnNCY0JrQntCSCivQqNCa0J7QoNCY0Isg0IjQntCS0JDQnQor0KjQmtCe0KDQmNCLINCI0J7QktCQ0J0KK9Co0JrQntCg0JjQiyDQmtCh0JXQndCY0IjQkAor0KjQmtCe0KDQmNCLINCb0JDQl9CQ0KAKK9Co0JrQntCg0JjQiyDQidCY0InQkNCd0JAKK9Co0JrQntCg0JjQiyDQnNCQ0KDQkAor0KjQmtCe0KDQmNCLINCc0JDQoNCY0IjQkAor0KjQmtCe0KDQmNCLINCc0JDQoNCY0IjQkAor0KjQmtCe0KDQmNCLINCc0JjQi9CeCivQqNCa0J7QoNCY0Isg0JzQmNCb0JDQnQor0KjQmtCe0KDQmNCLINCc0JjQm9CQ0J0KK9Co0JrQntCg0JjQiyDQnNCY0JvQkNCdCivQqNCa0J7QoNCY0Isg0JzQmNCb0JDQnQor0KjQmtCe0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQqNCa0J7QoNCY0Isg0JzQmNCb0JjQktCe0IgKK9Co0JrQntCg0JjQiyDQnNCY0JvQmtCQCivQqNCa0J7QoNCY0Isg0JzQmNCb0J7QqAor0KjQmtCe0KDQmNCLINCc0JjQoNCI0JDQndCQCivQqNCa0J7QoNCY0Isg0JzQmNCg0JrQngor0KjQmtCe0KDQmNCLINCc0JjQoNCa0J4KK9Co0JrQntCg0JjQiyDQnNCY0KDQmtCeCivQqNCa0J7QoNCY0Isg0J3QmNCa0J7Qm9CQCivQqNCa0J7QoNCY0Isg0J3QmNCa0J7Qm9CQCivQqNCa0J7QoNCY0Isg0J/QkNCS0JvQlQor0KjQmtCe0KDQmNCLINCf0JDQktCb0JUKK9Co0JrQntCg0JjQiyDQn9CV0KDQngor0KjQmtCe0KDQmNCLINCh0JvQkNCS0JrQngor0KjQmtCe0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Co0JrQntCg0JjQiyDQodCc0JjQidCQCivQqNCa0J7QoNCY0Isg0KHQnNCY0InQkAor0KjQmtCe0KDQmNCLINCh0KDQldCL0JrQngor0KjQmtCe0KDQmNCLINCh0KLQkNCd0JAKK9Co0JrQntCg0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQqNCa0J7QoNCY0Isg0JfQntCg0JAKK9Co0JrQntCg0J4g0KjQmNCc0JUKK9Co0JrQntCg0J4g0JzQmNCg0IjQkNCd0JAKK9Co0JrQntCg0J4g0JLQkNCh0JjQm9CY0IjQkAor0KjQmtCg0JDQktCQ0J0g0JDQndCU0KDQmNCI0JAKK9Co0JrQoNCR0JjQiyDQltCV0InQmtCeCivQqNCa0KDQkdCY0Isg0ILQo9Cg0J4KK9Co0JrQoNCR0JjQiyDQkNCd0JjQptCQCivQqNCa0KDQkdCY0Isg0JHQm9CQ0JbQngor0KjQmtCg0JHQmNCLINCR0J7QltCeCivQqNCa0KDQkdCY0Isg0JHQntCI0JDQndCQCivQqNCa0KDQkdCY0Isg0JHQoNCQ0J3QmtCeCivQqNCa0KDQkdCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Co0JrQoNCR0JjQiyDQlNCj0KjQkNCdCivQqNCa0KDQkdCY0Isg0IjQntCS0JDQnQor0KjQmtCg0JHQmNCLINCI0J7QktCQ0J0KK9Co0JrQoNCR0JjQiyDQidCj0JHQmNCm0JAKK9Co0JrQoNCR0JjQiyDQnNCQ0KDQkAor0KjQmtCg0JHQmNCLINCc0JDQoNCY0KbQkAor0KjQmtCg0JHQmNCLINCc0JjQm9CVCivQqNCa0KDQkdCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Co0JrQoNCR0JjQiyDQnNCY0JvQntCg0JDQlAor0KjQmtCg0JHQmNCLINCd0JXQkdCe0IjQqNCQCivQqNCa0KDQkdCY0Isg0J7QodCi0J7QiNCQCivQqNCa0KDQkdCY0Isg0J/QldCi0JDQoAor0KjQmtCg0JHQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Co0JrQoNCR0JjQiyDQodCS0JXQotCe0JfQkNCgCivQqNCa0KDQkdCY0Isg0JfQntCg0JrQkAor0KjQmtCg0JHQmNCd0JAg0KHQotCI0JXQn9CQ0J0KK9Co0JrQoNCT0JXQoiDQiNCe0KHQmNCfCivQqNCa0KDQmNCI0JXQmyDQlNCg0JDQk9CQ0J0KK9Co0JrQoNCY0IjQldCbINCc0JjQm9CQ0J0KK9Co0JrQoNCY0IjQldCJINCQ0IjQndCY0IjQkAor0KjQmtCg0JjQiNCV0Ikg0KHQkNCc0JjQoAor0KjQmtCg0JjQiNCV0Ikg0JLQldCl0JHQngor0KjQmtCg0JjQitCQ0KAg0JrQkNCg0J7QiQor0KjQmtCg0JjQitCQ0KAg0JzQkNCg0JjQngor0KjQmtCg0JjQitCQ0KAg0JfQktCe0J3QmNCc0JjQoAor0KjQmtCg0JjQktCQ0J0g0ILQo9Cg0JAKK9Co0JrQoNCY0JLQkNCdINCQ0J3QotCj0J0KK9Co0JrQoNCY0JLQkNCdINCk0KDQkNCK0JAKK9Co0JrQoNCY0JLQkNCdINCa0JDQoNCb0J4KK9Co0JrQoNCY0JLQkNCdINCb0JDQlNCY0KHQm9CQ0JIKK9Co0JrQoNCY0JLQkNCdINCf0JXQotCQ0KAKK9Co0JrQoNCY0JLQkNCdINCh0KLQldCS0JDQnQor0KjQmtCg0JjQktCQ0J0g0KHQotCV0JLQkNCdCivQqNCa0KDQmNCS0JDQiiDQn9CY0KjQotCQCivQqNCa0KPQm9CV0KLQmNCLINCe0JvQk9CQCivQqNCa0KPQm9CV0KLQmNCLINCX0J7QoNCQ0J0KK9Co0JrQo9Cd0KbQkCDQmNCS0JDQnQor0KjQmtCj0J3QptCQINCI0JXQm9CY0KbQkAor0KjQmtCj0J3QlNCg0JjQiyDQlNCj0KjQkNCdCivQqNCa0KPQndCU0KDQmNCLINCc0JjQm9CY0KbQkAor0KjQmtCj0J3QlNCg0JjQiyDQn9CV0KLQkNCgCivQqNCa0KPQndCU0KDQmNCLINCg0J7Ql9CQ0JvQmNCI0JAKK9Co0JrQktCQ0KDQldCaINCS0JvQkNCU0JAKK9Co0JvQkNCl0KLQldCgINCS0JXQndCU0JXQmwor0KjQm9CQ0IjQldCgINCg0KPQlNCe0JvQpAor0KjQm9CQ0JLQmNCaINCY0JvQntCd0JAKK9Co0JvQldCl0KLQkCDQl9CU0JXQndCa0J4KK9Co0JvQldCc0JXQndCU0JXQoCDQgtCe0KDQgtCVCivQqNCb0JXQnNCV0J3QlNCV0KAg0JDQndCT0JXQm9CQCivQqNCb0JXQnNCV0J3QlNCV0KAg0JjQoNCV0J3QkAor0KjQidCQ0J/QmNCLINCT0J7QoNCQ0J0KK9Co0InQkNCf0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KjQidCQ0J/QmNCLINCe0JHQoNCV0J0KK9Co0InQkNCf0JjQiyDQoNCj0JbQmNCm0JAKK9Co0InQkNCf0JjQiyDQodCi0JXQktCQ0J0KK9Co0InQkNCf0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KjQidCQ0J/QmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Co0InQkNCf0JjQiyDQktCV0JvQldCc0JjQoAor0KjQidCY0JLQkNCd0KfQkNCd0JjQnSDQiNCe0JLQkNCdCivQqNCJ0JjQktCQ0J3Qp9CQ0J3QmNCdINCI0J7QktCQ0J0KK9Co0InQmNCS0JDQndCn0JDQndCY0J0g0JzQkNCg0JjQiNCQCivQqNCJ0JjQktCQ0J3Qp9CQ0J3QmNCdINCc0JjQm9Cj0KLQmNCdCivQqNCJ0JjQktCY0Isg0ILQntCg0ILQlQor0KjQidCY0JLQmNCLINCR0J7QoNCa0JAKK9Co0InQmNCS0JjQiyDQiNCV0JvQldCd0JAKK9Co0InQmNCS0JjQiyDQidCY0InQkNCd0JAKK9Co0InQmNCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KjQidCY0JLQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9Co0InQmNCS0JjQiyDQodCf0JDQodCe0IjQlQor0KjQidCY0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0KjQidCY0JLQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Co0InQo9Ca0JAg0JTQoNCQ0JPQmNCo0JAKK9Co0InQo9Ca0JAg0JzQmNCI0J7QlNCg0JDQkwor0KjQidCj0JrQkCDQnNCY0JvQkNCdCivQqNCJ0KPQmtCQINCc0JjQm9Ce0KgKK9Co0InQo9Ca0JjQiyDQltCY0JLQkNCdINCU0KAKK9Co0InQo9Ca0JjQiyDQnNCY0JvQmNCS0J7QiAor0KjQidCj0JrQmNCLINCg0J7QodCQ0J3QlNCQCivQqNCc0JDQitCQINCc0JjQoNCa0J4KK9Co0JzQkNCK0JAg0KHQm9CQ0JLQmtCeCivQqNCc0JjQlNCV0KDQmtCQ0Jsg0KTQoNCQ0IrQkAor0KjQnNCY0JPQldCJ0KHQmtCYINCd0JjQmtCe0JvQkAor0KjQnNCY0JPQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Co0JzQmNCT0JjQiyDQnNCY0JvQntCg0JDQlAor0KjQnNCY0JPQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Co0JzQmNCiINCk0JXQoNCU0JjQndCQ0J3QlAor0KjQnNCY0KIg0JPQmNCX0JXQm9CQCivQqNCc0JjQoiDQiNCe0KHQmNCfCivQqNCc0JjQoiDQiNCe0JLQkNCdCivQqNCc0JjQoi3QmtCe0KLQkCDQmtCQ0KLQmNCm0JAKK9Co0JzQmNCiINCc0JDQoNCY0IjQkAor0KjQnNCY0KIg0JzQmNCg0IjQkNCd0JAKK9Co0JzQmNCiLdCf0KDQntCa0JjQnSDQgtCj0KDQgtCY0J3QkAor0KjQnNCY0KIg0KDQldCW0JUKK9Co0JzQmNCiINCh0KLQkNCd0JAKK9Co0JzQmNCiINCh0KLQkNCd0J7QiNCa0JAKK9Co0JzQmNCiINCh0KLQldCS0JDQnQor0KjQnNCY0KIg0KHQotCV0JLQkNCdCivQqNCc0JjQoiDQktCY0J7Qm9CV0KLQkAor0KjQnNCY0KIg0JfQm9CQ0KLQmtCeCivQqNCc0JjQotCg0JDQnSDQgtCe0KDQgtCVCivQqNCc0KPQmiDQmNCS0JDQnQor0KjQndCQ0IjQlNCV0KAg0KjQkNCd0JTQntCgCivQqNCd0JDQiNCU0JXQoCDQkNCd0JjQptCQCivQqNCd0JDQiNCU0JXQoCDQmNCb0JjQndCa0JAKK9Co0J3QkNCI0JTQldCgINCI0JDQndCe0KgKK9Co0J3QkNCI0JTQldCgINCI0JDQoNCe0KHQm9CQ0JIKK9Co0J3QkNCI0JTQldCgINCh0KLQldCS0JDQnQor0KjQndCQ0IjQlNCV0KAg0JLQldCg0JAKK9Co0J3QkNCI0JTQldCg0J7QkiDQiNCe0KHQmNCfCivQqNCd0JDQiNCU0JXQoNCe0JIg0JLQldCh0J3QkAor0KjQndCQ0KPQotCY0Jsg0JTQoNCQ0JPQo9Ci0JjQnQor0KjQndCV0Jsg0J/QldCi0JXQoAor0KjQitCQ0KDQmNCLINCY0JLQkNCdCivQqNCe0Kgg0JDQndCi0JDQmwor0KjQntCoINCQ0J3QotCQ0JsKK9Co0J7QqCDQkdCQ0JvQmNCd0KIKK9Co0J7QqCDQlNCV0JfQmNCU0JXQoAor0KjQntCoINCT0JjQl9CV0JvQkAor0KjQntCoINCY0JvQntCd0JAKK9Co0J7QqCDQiNCV0JvQmNCm0JAKK9Co0J7QqCDQm9CQ0IjQntCoCivQqNCe0Kgg0JzQkNCg0JjQiNCQCivQqNCe0Kgg0KLQmNCR0J7QoAor0KjQntCo0JjQiyDQnNCY0KDQmtCeCivQqNCe0KjQmNCLINCd0JDQotCQ0KjQkAor0KjQntCo0JjQiyDQntCb0JPQkAor0KjQntCo0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQqNCe0KjQmNCLINCS0KPQmgor0KjQntCo0JrQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Co0J7QqNCa0JjQiyDQnNCY0KDQkAor0KjQntCLINCR0J7QiNCQ0J3QkAor0KjQntCLINCU0KPQqNCQ0J0KK9Co0J7QiyDQotCe0JzQmNCh0JvQkNCSCivQqNCe0JHQkNCI0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Co0J7QkdCQ0JrQmCDQnNCQ0KDQmNCI0JAKK9Co0J7QkdCY0Isg0JzQmNCg0JAKK9Co0J7QkdCY0Isg0KDQkNCU0JUKK9Co0J7QkdCY0Isg0JLQldCg0JAKK9Co0J7QkdCY0Isg0JfQntCg0JDQnQor0KjQntCR0JjQiyDQl9Ce0KDQkNCdCivQqNCe0JHQntCiINCC0KPQoNCQCivQqNCe0JHQntCiINCR0J7QqNCa0J4KK9Co0J7QkdCe0KIg0JHQoNCQ0J3QmtCeCivQqNCe0JHQntCiINCU0KDQkNCT0JDQnQor0KjQntCR0J7QoiDQiNCe0JLQkNCdCivQqNCe0JHQntCiINCJ0KPQkdCe0JzQmNCgCivQqNCe0JHQntCiINCc0JjQm9CQ0J0KK9Co0J7QkdCe0KIg0JzQmNCb0JjQptCQCivQqNCe0JHQntCiINCf0JXQotCa0J4KK9Co0J7QkdCe0KIg0KHQldCa0KPQm9CQCivQqNCe0JHQntCiINCh0JvQkNCS0JjQptCQCivQqNCe0JTQmNCLINCU0J7QkdCg0JjQm9CQCivQqNCe0JTQmNCLINCU0KDQkNCT0JjQitCQCivQqNCe0JTQmNCLINCT0JjQl9CV0JvQkAor0KjQntCU0JjQiyDQnNCY0JvQkNCdCivQqNCe0JTQmNCLINCi0J7QlNCe0KAKK9Co0J7QlNCe0KDQntCS0JjQiyDQoNCe0KHQkAor0KjQntCk0KXQkNCj0JfQldCgINCc0JjQpdCQ0IjQm9CeCivQqNCe0KTQpdCQ0KPQl9CV0KAg0KDQntCX0JDQm9CY0IjQkAor0KjQntCk0KDQkNCdINCc0JDQoNCY0IjQkAor0KjQntCk0KDQkNCd0JDQpiDQnNCV0JvQkNCd0JjQiNCQCivQqNCe0JPQntCg0J7QkiDQodCi0JXQktCQ0J0KK9Co0J7QiNCY0Isg0JbQmNCS0JrQngor0KjQntCI0JjQiyDQkdCg0JDQndCa0J4KK9Co0J7QiNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Co0J7QiNCY0Isg0J3QldCU0JXQidCa0JAKK9Co0J7QiNCb0JXQktCh0JrQkCDQodCQ0IrQkAor0KjQntCa0JjQiyDQgtCe0KDQgtCVCivQqNCe0JrQmNCLINCI0KPQlNCY0KLQkAor0KjQntCa0JjQiyDQnNCY0JvQkNCdCivQqNCe0JrQmNCLINCf0JXQotCQ0KAKK9Co0J7QmtCY0Isg0KDQkNCU0J7QktCQ0J0KK9Co0J7QmtCY0Isg0KHQnNCY0InQkAor0KjQntCa0JjQptCQINCW0JjQktCa0J4KK9Co0J7QmtCY0KbQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Co0J7QmtCY0KbQkCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Co0J7QmtCY0KbQkCDQlNCg0JDQk9CY0KjQkAor0KjQntCa0JjQptCQINCI0J7QktCQ0J0KK9Co0J7QmtCY0KbQkCDQiNCj0JTQmNCi0JAKK9Co0J7QmtCY0KbQkCDQidCj0JHQmNCm0JAKK9Co0J7QmtCY0KbQkCDQnNCY0JvQntCoCivQqNCe0JrQmNCm0JAg0JfQntCg0JAKK9Co0J7QmtCb0J7QktCQ0KfQmtCYINCW0JjQktCa0J4KK9Co0J7QmtCb0J7QktCQ0KfQmtCYINCU0KDQkNCT0J7QidCj0JEKK9Co0J7QmtCb0J7QktCQ0KfQmtCYINCd0JDQlNCQCivQqNCe0JrQm9Ce0JLQkNCn0JrQmCDQoNCQ0KLQntCc0JjQoAor0KjQntCbINCR0JXQm9CQCivQqNCe0JvQkNCI0JAg0ILQntCg0ILQlQor0KjQntCb0JDQiNCQINCU0JjQnNCY0KLQoNCY0IjQlQor0KjQntCb0JDQiNCQINCT0J7QiNCa0J4KK9Co0J7Qm9CQ0IjQkCDQnNCY0JvQkNCdCivQqNCe0JvQkNCI0JAg0JzQmNCg0J7QodCb0JDQkgor0KjQntCb0JDQiNCQINCd0JDQlNCQCivQqNCe0JvQkNCI0JAg0J3QkNCU0JAKK9Co0J7Qm9CQ0IjQkCDQoNCQ0JTQntCh0JvQkNCSCivQqNCe0JvQkNCI0JAg0KHQm9CQ0JLQmtCeCivQqNCe0JvQkNCI0JAg0KHQm9CQ0JLQmtCeCivQqNCe0JvQkNCI0JAg0KHQm9Ce0JHQntCU0JDQnQor0KjQntCb0JDQiNCQINCS0JjQqNCK0JAKK9Co0J7Qm9CQ0Jog0IjQntCa0JAKK9Co0J7Qm9CQ0Jog0JzQkNCg0JjQndCa0J4KK9Co0J7Qm9CQ0Jog0JzQmNCb0JUKK9Co0J7Qm9CQ0Jog0KDQkNCU0JUKK9Co0J7Qm9CV0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Co0J7Qm9Ci0JXQoSDQqNCQ0J3QlNCe0KAKK9Co0J7Qm9Ci0JXQoSDQmNCR0J7QidCQCivQqNCe0JvQotCV0KEg0IjQntCW0JXQpAor0KjQntCc0JrQldCg0JXQmtCYINCY0JvQntCd0JrQkAor0KjQntCc0JrQldCg0JXQmtCYINCI0J7QodCY0J8KK9Co0J7QnNCa0JXQoNCV0JrQmCDQiNCj0JvQmNCI0JDQndCQCivQqNCe0JzQmtCV0KDQldCa0Jgg0JvQkNCU0JjQodCb0JDQkgor0KjQntCc0JrQldCg0JXQmtCYINCh0KLQldCS0JDQnQor0KjQntCc0JrQldCg0JXQmtCYINCh0KLQldCS0JDQnQor0KjQntCc0J7QgtCYINCW0J7QpNCY0IjQkAor0KjQntCc0J7QgtCYINCC0J7QoNCC0JUKK9Co0J7QnNCe0ILQmCDQldCS0JAKK9Co0J7QnNCe0ILQmCDQpNCg0JDQitCQCivQqNCe0JzQntCC0Jgg0JjQqNCi0JLQkNCdCivQqNCe0JzQntCC0Jgg0IjQldCb0JXQndCQCivQqNCe0JzQntCC0Jgg0IjQntCS0JDQnQor0KjQntCc0J7QgtCYINCb0JDQodCb0J4KK9Co0J7QnNCe0ILQmCDQnNCY0KXQkNCI0JvQngor0KjQntCc0J7QgtCYINCf0JDQmwor0KjQntCc0J7QgtCYINCf0JDQmwor0KjQntCc0J7QgtCYINCf0JDQmwor0KjQntCc0J7QgtCYINCg0J7Ql9CQCivQqNCe0JzQntCC0Jgg0JfQntCb0KLQkNCdCivQqNCe0JzQntCC0Jgg0JfQntCg0JAKK9Co0J7QnyDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Co0J7QnyDQnNCY0JvQkNCdCivQqNCe0J/QkNCb0J4g0ILQo9Cg0ILQmNCd0JAKK9Co0J7Qn9CQ0JvQniDQgtCj0KDQgtCY0J3QkAor0KjQntCf0JDQm9CeINCc0JjQntCU0KDQkNCTINCU0JjQn9CbINCe0JXQpgor0KjQntCf0JDQm9CeINCc0JjQntCU0KDQkNCTCivQqNCe0KDQgtCQ0J0g0KDQntCc0JDQnQor0KjQntCg0JDQmiDQnNCY0KDQiNCQ0J3QkAor0KjQntCg0JDQm9Ce0JIg0JzQmNCb0J7QqAor0KjQntCg0JDQm9Ce0JIg0JzQmNCg0J7QodCb0JDQkgor0KjQntCg0JzQkNCXINCU0KPQqNCQ0J0KK9Co0J7QoNCc0JDQlyDQnNCY0JvQkNCdCivQqNCe0KDQnNCQ0Jcg0J3QmNCa0J7Qm9CQCivQqNCe0KDQnNCQ0Jcg0JLQm9CQ0JTQmNCc0JjQoAor0KjQntCg0J7QitCQINCh0JDQktCQCivQqNCe0KDQntCK0JAg0JLQldCg0JAKK9Co0J7QodCR0JXQoNCT0JXQoCDQkdCe0KDQmNCo0JrQkAor0KjQntCh0JHQldCg0JPQldCgINCI0J7QodCY0J8g0JTQmNCf0Jsg0J7QldCmCivQqNCe0KHQkdCV0KDQk9CV0KAg0J/QkNCS0JvQlQor0KjQntCh0KLQkNCa0J7QkiDQoNCQ0KHQotCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQqNCe0KLQmC3Qp9CQ0JvQldCd0JjQiyDQnNCQ0KDQmNCI0JAKK9Co0J7QotCYINCk0JXQgtCQCivQqNCe0KLQmCDQmNCS0JDQndCQCivQqNCe0KLQmCDQiNCe0KHQmNCfCivQqNCe0KLQmCDQiNCe0KHQmNCfCivQqNCe0KLQmCDQnNCQ0KDQmNCI0JAKK9Co0J7QotCYINCc0JDQoNCY0IjQkAor0KjQntCi0KDQkCDQnNCe0JzQp9CY0JvQngor0KjQntCj0KYg0JzQmNCb0JDQnQor0KjQntCj0KYg0JzQmNCg0J7QodCb0JDQkgor0KjQntCj0KYg0JfQm9CQ0KLQkAor0KjQntCS0Kgg0IjQkNCd0JrQngor0KjQntCS0Kgg0IjQntCQ0JrQmNCcCivQqNCe0JLQkNCKINCI0J7QkNCa0JjQnAor0KjQntCS0JXQiiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KjQntCS0JXQiiDQmtCQ0KDQm9CeCivQqNCe0JLQldCKINCS0JXQoNCQCivQqNCe0JLQidCQ0JrQntCSINCI0J7QktCQ0J0KK9Co0J7QktCJ0JDQmtCe0JIg0JzQmNCb0J7QqAor0KjQntCS0InQkNCa0J7QkiDQnNCY0JvQntCoCivQqNCe0JLQidCQ0J3QodCa0Jgg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Co0J7QktCJ0JDQndCh0JrQmCDQgtCe0KDQgtCVCivQqNCe0JLQidCQ0J3QodCa0Jgg0JDQndCa0JjQptCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0JHQntCh0JjQidCa0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQkdCg0JDQndCa0J4KK9Co0J7QktCJ0JDQndCh0JrQmCDQlNCQ0J3QmNCm0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQlNCQ0J3QmNCb0J4KK9Co0J7QktCJ0JDQndCh0JrQmCDQlNCQ0J3QmtCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQqNCe0JLQidCQ0J3QodCa0Jgg0JTQoNCQ0JPQmNCo0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQlNCg0JDQk9CY0KbQkAor0KjQntCS0InQkNCd0KHQmtCYINCU0KDQkNCT0JjQptCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0JTQoNCQ0JPQmNCm0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQlNCg0JDQk9Ce0JzQmNCgCivQqNCe0JLQidCQ0J3QodCa0Jgg0JTQoNCQ0JPQntCc0JjQoAor0KjQntCS0InQkNCd0KHQmtCYINCU0KDQkNCT0J7QodCb0JDQkgor0KjQntCS0InQkNCd0KHQmtCYINCU0KDQldCd0JrQkAor0KjQntCS0InQkNCd0KHQmtCYINCV0JzQmNCbCivQqNCe0JLQidCQ0J3QodCa0Jgg0IjQo9Cb0JrQkAor0KjQntCS0InQkNCd0KHQmtCYINCb0JDQl9CQ0KAKK9Co0J7QktCJ0JDQndCh0JrQmCDQidCj0JHQmNCm0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQidCj0JHQntCc0JjQoAor0KjQntCS0InQkNCd0KHQmtCYINCc0JDQoNCT0JjQotCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0JzQmNCb0JDQnQor0KjQntCS0InQkNCd0KHQmtCYINCc0JjQm9Ce0KgKK9Co0J7QktCJ0JDQndCh0JrQmCDQnNCY0JvQntCg0JDQlAor0KjQntCS0InQkNCd0KHQmtCYINCc0JjQoNCI0JDQndCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0JzQmNCg0IjQkNCd0JAKK9Co0J7QktCJ0JDQndCh0JrQmCDQnNCY0KDQiNCQ0J3QkAor0KjQntCS0InQkNCd0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIg0JTQoAor0KjQntCS0InQkNCd0KHQmtCYINCd0JDQlNCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0J/QkNCS0JvQlQor0KjQntCS0InQkNCd0KHQmtCYINCg0JDQlNCY0JLQntCICivQqNCe0JLQidCQ0J3QodCa0Jgg0KDQkNCU0J7QodCb0JDQkgor0KjQntCS0InQkNCd0KHQmtCYINCh0JDQktCQCivQqNCe0JLQidCQ0J3QodCa0Jgg0KHQotCe0IjQkNCdCivQqNCf0JDQlNCY0IjQldCgINCi0JDQotCY0IjQkNCd0JAKK9Co0J/QkNCT0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQqNCf0JDQmiDQktCb0JDQlNCY0JzQmNCgCivQqNCf0JDQndCn0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KjQn9CQ0J3QkyDQm9CQ0KHQm9CeCivQqNCf0JDQndCTINCX0J7Qm9Ci0JDQnQor0KjQn9CQ0J3QmNCLINCR0J7QqNCa0J4KK9Co0J/QkNCd0JjQiyDQpNCg0JDQitCQCivQqNCf0JDQndCY0Isg0JvQkNCU0JjQodCb0JDQkgor0KjQn9CQ0J3QmNCLINCd0JDQlNCQCivQqNCf0JDQndCY0Isg0J7QotCeCivQqNCf0JDQitCV0JLQmNCLINCh0KPQl9CQ0J3QkAor0KjQn9CQ0IrQldCS0JjQiyDQktCj0JrQntCi0JAKK9Co0J/QkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0KjQn9CQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JAKK9Co0J/QkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KjQn9CQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Co0J/QkNCg0JDQktCQ0JvQniDQnNCQ0KDQmNCI0JAKK9Co0J/QkNCg0JDQktCQ0JvQniDQndCQ0KLQkNCo0JAKK9Co0J/QkNCg0JDQktCQ0JvQniDQodCQ0JLQkAor0KjQn9CQ0KDQkNCS0JDQm9CeINCX0JTQoNCQ0JLQmtCeCivQqNCf0JDQoNCe0JLQmNCLINCY0JvQmNCI0JAKK9Co0J/QldCT0JDQoCDQm9CQ0JfQkNCgCivQqNCf0JXQpdCQ0KAg0JzQkNCg0JjQiNCQCivQqNCf0JXQoSDQldCi0JXQmwor0KjQn9CV0KEg0JLQmNCb0JjQnAor0KjQn9CV0KEg0JLQmNCb0JjQnAor0KjQn9CY0KbQkCDQnNCY0J7QlNCg0JDQkwor0KjQn9CY0JrQkCDQnNCY0JvQkNCdCivQqNCf0JjQndCU0JvQldCgINCc0JDQoNCY0IjQkAor0KjQn9CY0J3QlNCb0JXQoC3QotCg0JHQntCI0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Co0J/QmNCg0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQqNCf0JjQoNCY0Isg0JPQntCg0JTQkNCd0JAKK9Co0J/QmNCg0JjQiyDQk9Ce0KHQn9CQ0JLQkAor0KjQn9CY0KDQmNCLINCY0JvQlQor0KjQn9CY0KDQmNCLINCI0J7QktCeCivQqNCf0JjQoNCY0Isg0JvQo9Ca0JAKK9Co0J/QmNCg0JjQiyDQm9Cj0JrQkAor0KjQn9CY0KDQmNCLINCc0JjQm9CVCivQqNCf0JjQoNCY0Isg0J3QldCC0J4KK9Co0J/QmNCg0JjQiyDQntCR0KDQkNCUCivQqNCf0JjQoNCY0Isg0KHQotCe0IjQkNCdCivQqNCf0JjQoNCY0Isg0KLQntCU0JUKK9Co0J/QmNCg0JjQiyDQo9Cg0J7QqAor0KjQn9CY0KDQmNCLINCX0J7QoNCQ0J0KK9Co0J/QmNCg0JrQkCDQnNCQ0KLQmNCb0JQKK9Co0J/QmNCg0KLQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KjQn9CY0KDQotCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQqNCf0JjQoSDQlNCQ0J3QmNCb0J4KK9Co0J/QmNChINCU0JDQndCY0JvQngor0KjQn9CY0KEg0JvQkNCI0J7QqAor0KjQn9CY0KEg0JzQmNCg0IjQkNCd0JAKK9Co0J/QmNChINCd0JDQndCU0J7QoAor0KjQn9Ce0IrQkCDQmtCe0JLQmNCJ0JrQngor0KjQn9Cg0J7QpSDQlNCg0JXQndCa0JAKK9Co0J/QoNCe0KUg0IjQkNCd0JrQngor0KjQn9Cg0J7QpSDQnNCQ0JPQlNCQCivQqNCf0KDQntClINCh0JvQkNCS0JrQngor0KjQn9Cg0J7QpSDQodCi0JDQndCa0J4KK9Co0J/QoNCe0KUg0KHQotCV0JLQkNCdCivQqNCg0JDQpdCe0Jsg0KXQmNCb0JTQkAor0KjQoNCQ0KXQntCbINCa0JDQoNCb0J4KK9Co0KDQkNCl0J7QmyDQidCj0JTQldCS0JjQogor0KjQoNCQ0Igg0JLQm9CQ0JTQmNCc0JjQoAor0KjQoNCQ0Jog0IjQntCS0JjQptCQCivQqNCg0JDQmiDQm9CQ0JTQmNCh0JvQkNCSCivQqNCg0JDQmiDQm9CQ0KHQm9CeCivQqNCg0JDQmiDQntCi0J4KK9Co0KDQkNCaINCe0KLQngor0KjQoNCQ0Jwg0KXQo9CT0J4KK9Co0KDQkNCd0KYg0KDQmNCl0JDQoNCUCivQqNCg0JDQndCmINCg0JjQpdCQ0KDQlAor0KjQoNCQ0J3QmtCQINCQ0J3QkAor0KjQoNCQ0J3QmtCQINCU0JXQodCQ0J3QmtCQCivQqNCg0JXQlNCV0KAg0IjQkNCd0J7QqAor0KjQoNCV0JTQldCgINCI0JDQndCe0KgKK9Co0KDQldCaINCQ0J3QlNCg0JjQiNCQINCU0JjQn9CbINCY0J3Qkwor0KjQoNCV0Jog0KHQotCV0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0KjQotCQ0JHQmCDQqNCi0JXQpNCY0KbQkAor0KjQotCQ0IjQnSDQm9CY0JLQmNCI0JAKK9Co0KLQkNCI0J3QldCgINCa0KDQldCo0JjQnNCY0KAKK9Co0KLQkNCI0J3QldCgINCc0JjQoNCI0JDQndCQCivQqNCi0JDQiNCd0JXQoCDQnNCY0KDQntCh0JvQkNCSCivQqNCi0JDQiNCd0JXQoCDQl9CS0J7QndCY0JzQmNCgCivQqNCi0JDQiNCd0KTQldCb0JQg0JzQmNCl0JDQiNCb0J4KK9Co0KLQkNCI0J3QmNCmINCc0JjQoNCe0KHQm9CQ0JIKK9Co0KLQkNCI0J3QmNCmINCi0JjQkdCe0KAKK9Co0KLQkNCd0JTQmCDQmtCQ0KLQmNCm0JAKK9Co0KLQkNCd0JTQmCDQl9Ce0JvQotCQ0J0KK9Co0KLQkNCd0KTQldCJINCQ0JvQntCI0JcKK9Co0KLQkNCd0KTQldCJINCc0JjQoNCe0KHQm9CQ0JIKK9Co0KLQkNCd0JPQmyDQgtCe0KDQgtCVCivQqNCi0JDQitCeLdCi0J7QoiDQk9CY0JfQldCb0JAKK9Co0KLQkNCg0Jog0JXQk9Ce0J0g0JTQmNCf0Jsg0JjQndCTCivQqNCi0JDQoNCaINCc0JjQoNCa0J4KK9Co0KLQkNCh0J3QmCDQiNCe0KHQmNCfCivQqNCi0JDQodCd0Jgg0JrQkNCi0JjQptCQCivQqNCi0JDQotCa0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQqNCi0JDQo9Cl0JXQoCDQiNCe0KHQmNCfCivQqNCi0JXQkdCbINCI0JXQm9CV0J3QkAor0KjQotCV0KTQkNCdINCC0J7QoNCC0JUKK9Co0KLQldCk0JDQnSDQldCj0ILQldCdCivQqNCi0JXQpNCQ0J0g0IjQo9Cb0JjQiNCQ0J3QkAor0KjQotCV0KTQkNCdINCc0JDQotCY0IjQkAor0KjQotCV0KTQkNCdINCe0KHQmtCQ0KAKK9Co0KLQldCk0JDQnSDQoNCj0JTQntCb0KQKK9Co0KLQldCk0JDQnSDQotCg0JDQiNCQ0J0KK9Co0KLQldCk0JDQndCQ0KYg0KHQotCV0JLQkNCdCivQqNCi0JXQpNCQ0J3QmNCm0JrQmCDQnNCY0KjQngor0KjQotCV0KTQkNCd0JjQlNCV0KEg0JrQkNCg0JvQniDQlNCgCivQqNCi0JXQpNCQ0J3QmNCU0JXQoSDQmtCQ0KDQm9CeCivQqNCi0JXQpNCQ0J3QmtCeINCS0JjQmtCi0J7QoNCY0IjQkAor0KjQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQqNCi0JXQpNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQqNCi0JXQpNCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQqNCi0JXQpNCa0J4g0ILQntCg0ILQlQor0KjQotCV0KTQmtCeINCC0J7QoNCC0JUKK9Co0KLQldCk0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KjQotCV0KTQo9Cb0JjQmiDQiNCe0JbQldCkCivQqNCi0JXQk9CV0KAg0KDQntCW0JgKK9Co0KLQldCT0JXQoCDQktCQ0JvQldCd0KLQmNCd0JAKK9Co0KLQldCl0JXQoCDQoNCQ0JTQnNCY0JvQkAor0KjQotCV0JvQptCV0KAg0IjQntCh0JjQnwor0KjQotCV0JvQmCDQkNCd0KLQo9CdCivQqNCi0JXQoNCb0JUg0IjQntCh0JjQnwor0KjQotCV0KDQm9CVINCh0KLQldCS0JDQnQor0KjQotCV0KDQm9CV0JzQkNCdINCa0KDQmNCh0KLQmNCI0JDQnQor0KjQotCV0KDQm9CV0JzQkNCdINCf0JXQoNCQCivQqNCi0JXQotCY0Isg0JrQoNCY0KHQotCY0J3QkAor0KjQotCV0KLQmNCLINCi0JjQpdCe0JzQmNCgCivQqNCi0JXQotCY0Isg0JLQldCh0J3QkAor0KjQotCV0KLQmNCLINCS0JjQlNCQCivQqNCi0JXQotCY0J0g0KXQldCb0JXQndCQCivQqNCi0JXQotCY0J0g0JzQmNCb0JDQnQor0KjQotCV0KLQmNCdINCc0JjQm9CVCivQqNCi0JXQotCY0J0g0KHQktCV0KLQmNCh0JvQkNCSCivQqNCi0JXQktCQ0J3Qp9CV0JIg0InQo9CR0J7QnNCY0KAKK9Co0KLQmNCm0JAg0JLQmNCi0J7QnNCY0KAKK9Co0KLQmNCT0JvQldCgINCY0JLQkNCdCivQqNCi0JjQk9Cb0JXQoCDQnNCY0JvQkNCdCivQqNCi0JjQk9Cb0JjQiyDQlNCg0JDQk9CQ0J0KK9Co0KLQmNCT0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Co0KLQmNCa0JDQktCQ0KYg0JrQntCh0J7QktCa0JAKK9Co0KLQmNCa0J7QktCQ0KYg0KHQn9CQ0KHQntCI0JUKK9Co0KLQmNCc0JDQpiDQntCi0J4KK9Co0KLQmNCc0JDQpiDQoNCj0JTQntCb0KQKK9Co0KLQntCa0J7QktCQ0KYg0IjQntCS0JDQnQor0KjQotCe0JrQntCS0JDQpiDQotCe0JzQmNCh0JvQkNCSCivQqNCi0J7Qm9CR0JAg0JfQktCe0J3QmNCc0JjQoAor0KjQotCe0KEg0JrQkNCi0JjQptCQCivQqNCi0KDQkNCI0KUg0JjQqNCi0JLQkNCdCivQqNCi0KDQkNCI0KUg0IjQntCh0JjQnwor0KjQotCg0JDQiNClINCe0KLQotCeCivQqNCi0KDQkNCd0JPQkNCgINCd0JDQlNCQCivQqNCi0KDQkNCd0JPQkNCg0J7QkiDQkdCe0KDQmNCS0J7QiAor0KjQotCg0JDQndCT0JDQoNCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQqNCi0KDQkNCd0JPQkNCg0J7QkiDQiNCV0JvQldCd0JAKK9Co0KLQoNCQ0J3Qk9CQ0KDQntCSINCI0JXQm9CV0J3QkAor0KjQotCg0JDQndCT0JDQoNCe0JIg0JzQmNCb0JjQptCQCivQqNCi0KDQkNCd0JPQkNCg0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQqNCi0KDQkNCf0JDQiNCV0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Co0KLQoNCQ0KHQldCgINCc0JjQpdCQ0IjQm9CeINCU0KAg0JvQldCa0JDQoAor0KjQotCg0JDQodCV0KAg0J3QkNCU0JAKK9Co0KLQoNCQ0KPQkSDQldCg0JbQldCR0JXQogor0KjQotCg0JDQo9CRINCY0KjQotCS0JDQnQor0KjQotCg0JDQo9CRINCh0KLQldCS0JDQnQor0KjQotCg0JHQkCDQlNCQ0J3QmNCb0J4KK9Co0KLQoNCR0JAg0JzQmNCb0JDQnQor0KjQotCg0JHQkNCn0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQqNCi0KDQkdCQ0KYg0JbQldCJ0JrQngor0KjQotCg0JHQkNCmINCC0J7QoNCC0JUKK9Co0KLQoNCR0JDQpiDQgtCj0KDQngor0KjQotCg0JHQkNCmINCQ0J3QgtCV0JvQmtCQCivQqNCi0KDQkdCQ0KYg0JHQntCo0JrQngor0KjQotCg0JHQkNCmINCR0J7QoNCY0KHQm9CQ0JIKK9Co0KLQoNCR0JDQpiDQkdCg0JDQndCa0JAKK9Co0KLQoNCR0JDQpiDQlNCQ0KDQmNCd0JrQkAor0KjQotCg0JHQkNCmINCU0JXQodCQ0J3QmtCQCivQqNCi0KDQkdCQ0KYg0JTQoNCQ0JPQkNCdCivQqNCi0KDQkdCQ0KYg0JTQo9Co0JDQnQor0KjQotCg0JHQkNCmINCU0KPQqNCQ0J0KK9Co0KLQoNCR0JDQpiDQlNCj0KjQkNCdCivQqNCi0KDQkdCQ0KYg0JTQo9Co0JDQnQor0KjQotCg0JHQkNCmINCI0J7QktCQ0J0KK9Co0KLQoNCR0JDQpiDQidCj0JHQmNCm0JAKK9Co0KLQoNCR0JDQpiDQidCj0JHQntCc0JjQoAor0KjQotCg0JHQkNCmINCc0JDQoNCY0IjQkAor0KjQotCg0JHQkNCmINCc0JjQi9CeCivQqNCi0KDQkdCQ0KYg0JzQmNCL0J4KK9Co0KLQoNCR0JDQpiDQnNCY0JvQkNCd0JrQngor0KjQotCg0JHQkNCmINCc0JjQm9CQ0J0KK9Co0KLQoNCR0JDQpiDQnNCY0JvQkNCdCivQqNCi0KDQkdCQ0KYg0JzQmNCb0JDQnQor0KjQotCg0JHQkNCmINCc0JjQm9CQ0J0KK9Co0KLQoNCR0JDQpiDQnNCY0JvQldCd0JAKK9Co0KLQoNCR0JDQpiDQnNCY0JvQmNCm0JAKK9Co0KLQoNCR0JDQpiDQnNCY0JvQmNCS0J7QiAor0KjQotCg0JHQkNCmINCc0JjQm9Ce0KgKK9Co0KLQoNCR0JDQpiDQnNCY0KDQiNCQ0J3QkAor0KjQotCg0JHQkNCmINCc0JjQoNCa0J4KK9Co0KLQoNCR0JDQpiDQnNCe0JzQp9CY0JvQngor0KjQotCg0JHQkNCmINCd0JXQnNCQ0IrQkAor0KjQotCg0JHQkNCmINCd0JjQmtCe0JvQkAor0KjQotCg0JHQkNCmINCg0JDQlNCe0IjQmtCQCivQqNCi0KDQkdCQ0KYg0KDQkNCU0J7QktCQ0J0KK9Co0KLQoNCR0JDQpiDQodCQ0JLQmtCQCivQqNCi0KDQkdCQ0KYg0KHQm9CQ0JLQmNCm0JAKK9Co0KLQoNCR0JDQpiDQodCb0JDQktCa0J4KK9Co0KLQoNCR0JDQpiDQodCi0JDQndCQCivQqNCi0KDQkdCQ0KYg0KHQotCV0JLQkNCdCivQqNCi0KDQkdCQ0KYg0KLQntCc0JjQodCb0JDQkgor0KjQotCg0JHQkNCmINCj0KDQntCoCivQqNCi0KDQkdCQ0KYg0JLQm9CQ0JTQngor0KjQotCg0JHQkNCmINCS0KPQmtCY0KbQkAor0KjQotCg0JHQkNCmINCX0J7QoNCY0KbQkAor0KjQotCg0JHQldCd0Jog0JjQktCQ0J3QmtCQCivQqNCi0KDQkdCV0J3QmiDQndCY0JrQntCb0JAKK9Co0KLQoNCR0J7QiNCQINCW0JjQktCa0J4KK9Co0KLQoNCR0J7QiNCQINCC0J7QoNCC0JUKK9Co0KLQoNCR0J7QiNCQINCC0J7QoNCC0JUKK9Co0KLQoNCR0J7QiNCQINCg0JDQlNCQCivQqNCi0KDQkdCe0IjQkCDQoNCQ0JTQmNCS0J7QiAor0KjQotCg0JHQntCI0JAg0KHQotCV0JLQkNCdCivQqNCi0KDQkdCe0IjQlSDQlNCY0JzQmNCi0KDQmNCI0JUKK9Co0KLQoNCY0KbQmtCYINCI0J7QodCY0J8KK9Co0KLQoNCaINCI0J7QodCY0J8KK9Co0KLQoNCaINCc0JDQoNCY0IjQkAor0KjQotCg0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Co0KLQoNCa0JjQiyDQnNCe0JzQmNCgCivQqNCi0KDQntCaINCW0JXQidCa0J4KK9Co0KLQoNCi0JDQmiDQodCb0JDQktCa0J4KK9Co0KLQoNCi0JDQmiDQodCb0J7QkdCe0JTQkNCdCivQqNCi0KPQm9CQINCc0JjQm9CVCivQqNCi0KPQm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Co0KLQo9Cb0JjQiyDQk9Ce0KDQkNCdCivQqNCi0KPQm9CY0Isg0IjQntCS0J4KK9Co0KLQo9Cb0JjQiyDQnNCQ0KDQmtCeCivQqNCi0KPQm9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Co0KLQo9Cc0J/QpCDQpdCV0JvQnNCj0KIKK9Co0KLQo9Cc0J/QpCDQntCh0JLQkNCb0JQKK9Co0KPQqNCn0JXQktCY0Isg0IjQntCS0J4KK9Co0KPQqNCn0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9Co0KPQqNCQINCn0JXQlNCe0JzQmNCgCivQqNCj0KjQkCDQlNCj0KjQkNCdCivQqNCj0KjQkCDQiNCe0JLQkNCdCivQqNCj0KjQkCDQmtCV0JzQkNCbCivQqNCj0KjQkCDQodCi0J7QiNCQ0J3QmtCQCivQqNCj0KjQkNCaINCC0J7QmtCQCivQqNCj0KjQkNCaINCC0J7QoNCC0JUKK9Co0KPQqNCQ0Jog0JPQntCh0J/QkNCS0JAKK9Co0KPQqNCQ0Jog0JzQkNCg0JjQiNCQCivQqNCj0KjQkNCaINCd0JXQktCV0J3QkAor0KjQo9Co0JDQmiDQodCi0JDQnNCV0J3QmtCeINCU0KAKK9Co0KPQqNCQ0Jog0KLQntCc0JjQodCb0JDQkgor0KjQo9Co0JDQmtCe0JIg0J/QkNCI0JAKK9Co0KPQqNCV0JLQodCa0Jgg0JzQmNCb0JDQnQor0KjQo9Co0JjQiyDQoNCY0KHQotCeCivQqNCj0KjQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Co0KPQqNCa0JDQktCn0JXQktCY0Isg0JjQm9CY0IjQkAor0KjQo9Co0JrQkNCS0KfQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KjQo9Co0JrQntCS0JjQiyDQkdCe0KDQmNChCivQqNCj0KjQidCY0Jog0IjQntCS0JDQnQor0KjQo9Co0IrQkNCgINCW0JDQoNCa0J4KK9Co0KPQqNCK0JDQoCDQkdCe0KDQmNCh0JvQkNCSCivQqNCj0KjQitCQ0KAg0JHQntCg0JjQodCb0JDQkgor0KjQo9Co0IrQkNCgINCc0JjQpdCQ0IjQm9CeCivQqNCj0KjQitCQ0KAg0JzQmNCb0JDQnQor0KjQo9Co0IrQkNCgINCc0JjQm9CQ0J0KK9Co0KPQqNCK0JDQoCDQn9CV0KLQkNCgCivQqNCj0KjQitCQ0KAg0J/QldCi0JDQoAor0KjQo9Co0IrQkNCgINCf0JXQotCQ0KAKK9Co0KPQqNCK0JDQoCDQodCb0JDQktCa0J4KK9Co0KPQqNCK0JDQoCDQodCe0KTQmNCI0JAKK9Co0KPQqNCK0JDQoCDQodCi0JDQndCa0J4KK9Co0KPQqNCK0JXQktCY0Isg0JTQo9Co0JDQnQor0KjQo9Co0IrQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KjQo9Co0IrQldCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQqNCj0KjQitCY0Isg0KHQotCQ0J3QmtCQCivQqNCj0KjQotCg0JDQnSDQnNCb0JDQlNCV0J0KK9Co0KPQqNCi0KPQnCDQiNCe0JLQkNCdCivQqNCj0IvQkNCaINCc0JjQm9CQ0J0KK9Co0KPQi9Ce0JIg0IvQmNCg0JAKK9Co0KPQi9Ce0JIg0JTQkNCd0JjQptCQCivQqNCj0IvQntCSINCU0JDQndCY0JvQngor0KjQo9CL0J7QkiDQnNCY0JvQntCoCivQqNCj0IvQntCSINCS0KPQmtCe0KHQkNCS0JAKK9Co0KPQkdCQ0KDQkCDQnNCb0JDQlNCV0J0KK9Co0KPQkdCQ0KDQmNCLINCb0KPQmtCQCivQqNCj0JHQkNCg0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Co0KPQkdCQ0KDQmNCLINCX0J7QoNCQ0J0KK9Co0KPQkdCV0KDQoiDQmNCb0J7QndCa0JAKK9Co0KPQkdCY0Isg0IjQntCS0JDQndCa0JAKK9Co0KPQkdCe0Iog0KHQmNCb0JLQmNCj0KEKK9Co0KPQlNCQ0KAg0IjQntCW0JXQpAor0KjQo9CU0JDQoCDQiNCe0KHQmNCfCivQqNCj0JTQmNCm0JrQmCDQiNCe0JbQldCkCivQqNCj0JPQmNCLINCc0JjQm9CQ0J0KK9Co0KPQk9CY0Isg0J3QkNCU0JAKK9Co0KPQk9CY0Isg0J/QldCi0JDQoAor0KjQo9CT0JjQnSDQltCY0JLQmtCeCivQqNCj0JPQmNCdINCR0JXQoNCY0KHQkNCSCivQqNCj0JPQmNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0KjQo9CT0JjQnSDQm9CV0JrQodCQCivQqNCj0JPQmNCdINCJ0JjQidCQ0J3QkAor0KjQo9CT0JjQnSDQidCY0InQkNCd0JAKK9Co0KPQk9CY0J0g0JzQmNCb0JrQkAor0KjQo9CT0JjQnSDQnNCY0J7QlNCg0JDQkwor0KjQo9CT0JjQnSDQnNCY0J7QlNCg0JDQkwor0KjQo9CT0JjQnSDQoNCQ0JTQkAor0KjQo9CT0JjQnSDQoNCQ0J3QmtCQCivQqNCj0KXQkNCI0JTQkCDQgtCj0KDQkAor0KjQo9Cl0JDQiNCU0JAg0JjQnNCg0JUKK9Co0KPQpdCQ0IjQlNCQINCb0JDQiNCe0KgKK9Co0KPQiNCU0J7QktCY0Isg0JfQntCg0JDQnQor0KjQo9CI0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQqNCj0IjQmNCLINCg0JXQj9CeCivQqNCj0IjQmNCm0JAg0JzQmNCb0JDQnQor0KjQo9Ca0JAg0JDQm9CV0JrQodCQCivQqNCj0JrQkNCb0J7QktCY0Isg0ILQntCg0ILQlQor0KjQo9Ca0JDQoNCQINCR0J7Qk9CU0JDQnQor0KjQo9Ca0JDQoNCQINCU0JzQmNCi0JDQoAor0KjQo9Ca0JDQoNCQINCU0KPQqNCQ0J0KK9Co0KPQmtCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Co0KPQmtCY0Isg0JzQmNCg0J7QidCj0JEKK9Co0KPQmtCY0Isg0JfQntCg0JjQptCQCivQqNCj0JrQm9CQINCh0JvQkNCS0JrQngor0KjQo9Ca0J7QktCY0Isg0JzQmNCb0JDQnQor0KjQo9Ca0J7QktCY0Isg0JfQntCg0JrQkAor0KjQo9Ca0KPQndCU0JAg0JzQkNCg0JjQiNCQCivQqNCj0JrQo9Cd0JTQkCDQnNCY0JvQkNCdCivQqNCj0JrQo9Cg0JzQkCDQodCi0JXQktCeCivQqNCj0JvQkNCI0JAg0JzQmNCg0J7QodCb0JDQkgor0KjQo9Cb0KYg0JDQndCU0KDQkNCoCivQqNCj0JvQpiDQlNCV0JvQmNCc0JjQoCDQlNCgINCf0KDQntCkCivQqNCj0JvQpiDQmNCc0KDQlSDQlNCY0J/QmyDQmNCd0JMKK9Co0KPQm9CmINCY0JzQoNCVCivQqNCj0JvQpiDQiNCe0JbQldCkCivQqNCj0JvQpiDQiNCe0JbQldCkCivQqNCj0JvQpiDQmtCe0KHQkNCd0JAKK9Co0KPQm9CmINCS0JXQoNCQCivQqNCj0JvQldCd0KLQmNCLINCc0JjQm9CVCivQqNCj0JvQpdCe0KQg0IjQntCW0JXQpCDQmtCK0JjQltCV0JLQndCY0JoKK9Co0KPQidCQ0J0g0JDQndCQCivQqNCj0InQkNCdINCI0JDQndCa0J4KK9Co0KPQidCQ0J0g0IjQkNCdCivQqNCj0InQkNCdINCI0JDQnQor0KjQo9CJ0JDQnSDQiNCQ0KDQntCh0JvQkNCSCivQqNCj0InQkNCdINCf0JDQmwor0KjQo9CJ0JzQkNCd0JDQpi3QqNCV0IvQldCg0J7QkiDQnNCY0KDQiNCQ0J3QkAor0KjQo9CJ0JzQkNCd0JDQpiDQkdCg0JDQndCY0JzQmNCgCivQqNCj0InQnNCQ0J3QkNCmINCI0J7QktCQ0J0KK9Co0KPQidCc0JDQndCQ0KYg0KPQoNCe0KgKK9Co0KPQm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Co0KPQnNCQ0KXQldCgINCY0JvQntCd0JAKK9Co0KPQnNCQ0KXQldCgINCI0JDQndCe0KgKK9Co0KPQnNCQ0IjQodCa0Jgg0JHQm9CQ0JbQldCd0JrQkAor0KjQo9Cc0JDQnSDQktCY0KLQntCc0JjQoAor0KjQo9Cc0JDQndCe0JLQkNCmINCf0JDQktCb0JUg0JTQmNCf0Jsg0JjQndCTCivQqNCj0JzQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQqNCj0JzQkNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQqNCj0JzQkNCgINCR0J7QltCeCivQqNCj0JzQkNCgINCc0JjQm9CQ0J0KK9Co0KPQnNCQ0KAg0KHQmNCc0JAKK9Co0KPQnNCQ0KDQldCS0JjQiyDQlNCg0JDQk9Ce0KDQkNCUCivQqNCj0JzQkNCg0J7QkiDQndCY0JrQntCb0JAKK9Co0KPQnNCQ0KDQo9Cd0JAg0KbQktCV0KLQkAor0KjQo9Cc0JDQoNCj0J3QmNCLINCf0JDQktCb0JUKK9Co0KPQnNCV0KYg0JXQoNCd0JAKK9Co0KPQnNCV0KYg0IjQkNCd0J7QqAor0KjQo9Cc0JjQiyDQnNCb0JDQlNCV0J0KK9Co0KPQnNCe0IrQkCDQnNCY0JvQkNCdCivQqNCj0J3QlNCe0JLQkCDQpNCb0J7QoNCQCivQqNCj0J3QmNCLINCI0J7QktCeCivQqNCj0IrQmNCLINCf0JXQotCQ0KAKK9Co0KPQitCa0JAg0JzQkNCg0JrQngor0KjQo9CK0JrQkCDQnNCY0JvQmNCm0JAKK9Co0KPQitCa0JAg0KDQkNCi0JrQngor0KjQo9Cd0JrQkCDQiNCe0JLQkNCdCivQqNCj0J3QmtCY0Isg0JvQkNCX0JDQoAor0KjQo9Cd0KLQmNCLINCc0JDQotCV0IgKK9Co0KPQn9CVINCo0JjQnNCVCivQqNCj0J/QmNCm0JAg0JTQo9Co0JDQnQor0KjQo9Cf0JjQptCQINCb0JDQl9CQ0KAKK9Co0KPQn9CY0KbQkCDQm9CQ0JfQkAor0KjQo9Cf0JjQptCQINCJ0KPQkdCY0KbQkAor0KjQo9Cf0JjQptCQINCc0JDQoNCQCivQqNCj0J/QmNCm0JAg0JzQmNCb0JDQnQor0KjQo9Cf0JjQptCQINCc0JjQm9Ce0KgKK9Co0KPQn9CY0KbQkCDQn9CV0KLQkNCgCivQqNCj0J/QmNCm0JAg0KHQm9CQ0JLQmtCeCivQqNCj0J/QmNCm0JAg0JLQkNCh0JAKK9Co0KPQn9Cj0KIg0JbQkNCg0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Co0KPQn9Cj0KIg0ILQo9Cg0J4KK9Co0KPQn9Cj0KIg0JTQo9Co0JDQnQor0KjQo9Cf0KPQoiDQodCb0J7QkdCe0JTQkNCdCivQqNCj0J/Qo9CiINCh0JLQldCi0J7Ql9CQ0KAKK9Co0KPQoNCQ0IrQmCDQotCV0KDQldCX0JjQiNCQCivQqNCj0KDQkdCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Co0KPQoNCI0JDQnSDQiNCQ0J3QntCoCivQqNCj0KDQiNCQ0J0g0IjQntCS0JDQnQor0KjQo9Cg0IjQkNCd0KfQldCSINCY0JLQkNCdCivQqNCj0KDQiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQqNCj0KDQiNCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JAKK9Co0KPQoNCa0JDQm9Ce0JLQmNCLINCc0JjQm9CV0J3QkAor0KjQo9Cg0JrQntCS0JjQiyDQlNCe0KDQkNCdCivQqNCj0KDQmtCe0JLQmNCLINCY0KDQpNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQqNCj0KDQm9CQ0J0g0KfQldCU0J7QnNCY0KAKK9Co0KPQoNCb0JDQnSDQgtCe0KDQgtCeCivQqNCj0KDQm9CQ0J0g0JTQoNCQ0JPQntCc0JjQoAor0KjQo9Cg0JvQkNCdINCU0KDQkNCT0J7QodCb0JDQkgor0KjQo9Cg0JvQkNCdINCT0J7QiNCa0J4KK9Co0KPQoNCb0JDQnSDQiNCe0JLQkNCdCivQqNCj0KDQm9CQ0J0g0JzQkNCg0JjQndCa0J4KK9Co0KPQoNCb0JDQnSDQnNCQ0KDQmtCeCivQqNCj0KDQm9CQ0J0g0JzQmNCb0J7QqAor0KjQo9Cg0JvQkNCdINCc0JjQoNCa0J4KK9Co0KPQoNCb0JDQnSDQnNCe0JzQmNCgCivQqNCj0KDQm9CQ0J0g0J3QldCU0JXQidCa0J4KK9Co0KPQoNCb0JDQnSDQoNCj0KjQmtCeCivQqNCj0KDQm9CQ0J0g0JLQntCI0JjQodCb0JDQkgor0KjQo9Cg0JvQkNCdINCS0KPQmtCe0KHQkNCS0JAKK9Co0KPQodCi0JXQoCDQndCV0JPQntCh0JvQkNCSCivQqNCj0KHQotCg0JjQiNCQ0J0g0J7Qm9CT0JAKK9Co0KPQotCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0KjQo9Ci0JjQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQqNCj0KLQmNCb0J7QktCY0Isg0J3QldCS0JXQndCa0JAKK9Co0KPQotCj0JvQntCS0JjQiyDQlNCQ0J3QmtCQCivQqNCj0KLQo9Cb0J7QktCY0Isg0JLQldCh0J3QkAor0KjQo9Ci0JLQmNCLINCR0KDQkNCd0JrQkAor0KjQo9CS0JDQmiDQnNCY0J7QlNCg0JDQkwor0KjQo9CS0JDQmtCe0JIg0JTQkNCg0JjQndCa0JAKK9Co0KPQktCQ0JrQntCSINCU0JXQiNCQ0J0KK9Co0KPQktCQ0JrQntCSINCI0J7QktCQ0J0KK9Co0KPQktCQ0JrQntCSINCc0JjQm9CV0J3QkAor0KjQo9CS0JDQmtCe0JIg0JzQmNCb0J7QoNCQ0JQKK9Co0KPQktCQ0JrQntCSINCh0KLQldCS0JDQnQor0KjQo9CS0JDQmtCe0JIg0KLQmNCl0J7QnNCY0KAg0JTQoAor0KjQo9CS0JDQmtCe0JIg0JLQldCh0JXQm9CY0J3QmtCQCivQqNCj0JLQkNCa0J7QktCY0Isg0ILQo9Cg0ILQmNCm0JAKK9Co0KPQktCQ0JrQntCS0JjQiyDQkdCe0JPQntCh0JvQkNCSCivQqNCj0JLQkNCa0J7QktCY0Isg0JTQkNCc0IjQkNCdINCU0KAg0JvQldCa0JDQoAor0KjQo9CS0JDQmtCe0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Co0KPQktCQ0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQqNCS0JDQkSDQldCh0KLQldCgCivQqNCS0JDQkSDQpdCV0J3QoNCY0IjQldCi0JAKK9Co0JLQkNCT0JXQoCDQnNCQ0KDQotCY0J0KK9Co0JLQkNCI0JHQldCg0JjQiyDQktCY0KDQk9CY0J3QmNCI0JAKK9Co0JLQkNCI0KbQldCgINCT0JjQl9CV0JvQkAor0KjQktCQ0IjQptCV0KAg0JjQktCY0KbQkAor0KjQktCQ0IjQptCV0KAt0KDQkNCa0JjQiyDQmNCg0JXQndCQCivQqNCS0JDQiNCm0JXQoCDQoNCe0JfQkNCb0JjQiNCQCivQqNCS0JDQndCU0JjQm9CY0Jog0IjQntCW0JXQpAor0KjQktCQ0KDQpiDQmNCb0J7QndCQCivQqNCS0JDQoNCmINCi0JjQkdCe0KAKK9Co0JLQkNCg0KYg0JLQm9CQ0JTQmNCc0JjQoAor0KjQktCV0JTQmNCLINCQ0IvQmNCcCivQqNCS0JXQlNCY0Isg0JTQo9Co0JDQnQor0KjQktCV0JTQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0KjQktCV0JTQmNCLINCV0KDQltCY0JrQkAor0KjQktCV0JTQmNCLINCT0KDQo9CI0JAKK9Co0JLQldCU0JjQiyDQiNCe0JLQkNCdCivQqNCS0JXQlNCY0Isg0JzQmNCb0JjQptCQCivQqNCS0JXQlNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Co0JLQldCU0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KjQktCV0JTQmNCLINCd0JjQmtCe0JvQkAor0KjQktCV0JTQmNCLINCf0JXQotCQ0KAKK9Co0JLQldCJ0JAg0JHQntCT0JTQkNCdCivQqNCS0JXQidCQINCf0JXQotCQ0KAKK9Co0JLQldCcINCC0KPQoNCQCivQqNCS0JXQndCU0JAg0JPQntCg0JDQnQor0KjQktCV0KAg0JrQkNCg0JvQngor0KjQktCV0KDQldCgINCg0KPQlNCe0JvQpAor0KjQktCV0KDQmtCeINCQ0J3QgtCV0JvQmNCI0JAKK9Co0JLQmNCd0JQg0J3QldCd0JDQlAor0KjQktCe0JEg0IjQntCh0JjQnwor0KjQktCe0JEg0JvQkNCI0J7QqAor0KjQktCe0IrQkCDQltCV0InQmtCeCivQqNCS0J7QitCQINCC0KPQoNCC0JjQndCa0JAKK9Co0JLQntCK0JAg0JHQmNCJ0JDQndCQCivQqNCS0J7QitCQINCR0J7QqNCa0J4KK9Co0JLQntCK0JAg0JHQntCo0JrQngor0KjQktCe0IrQkCDQkdCe0JbQmNCU0JDQoAor0KjQktCe0IrQkCDQkdCe0KDQmNCS0J7QiAor0KjQktCe0IrQkCDQkdCg0JDQndCa0J4KK9Co0JLQntCK0JAg0JTQoNCQ0JPQntCJ0KPQkQor0KjQktCe0IrQkCDQlNCj0KjQkNCdCivQqNCS0J7QitCQINCU0KPQqNCa0J4KK9Co0JLQntCK0JAg0JzQmNCb0JDQnQor0KjQktCe0IrQkCDQnNCY0KDQkAor0KjQktCe0IrQkCDQoNCQ0KLQmtCeCivQqNCS0J7QitCQINCg0JDQotCa0J4KK9Co0JLQntCK0JAg0KHQktCV0KLQntCX0JDQoAor0KjQktCe0IrQkCDQktCV0InQmtCeCivQqNCS0KDQkNCa0JAg0KTQoNCQ0IrQngor0KjQktCg0JDQmtCQINCh0KLQldCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Co0JLQoNCQ0JrQkCDQodCi0JXQktCQ0J0KK9CL0JDQi9CY0Isg0JTQkNCd0JjQptCQCivQi9CQ0IvQmNCLINCU0KPQqNCQ0J0KK9CL0JDQi9CY0Isg0JzQkNCg0JrQngor0IvQkNCL0JjQiyDQndCY0J3QntCh0JvQkNCSCivQi9CQ0KXQo9CdINCa0JDQoNCb0J4g0JTQmNCf0Jsg0JjQndCTCivQi9CQ0IjQkCDQktCQ0J3QmtCQCivQi9CQ0JrQmNCLINCT0JjQl9CQCivQi9CQ0JvQkNCh0JDQnSDQiNCe0JLQkNCdCivQi9CQ0JvQkNCh0JDQnSDQodCi0J7QiNCQ0J0KK9CL0JDQm9CV0KLQkCDQmNCS0JjQptCQCivQi9CQ0JvQmNCLINCY0JvQmNCI0JAKK9CL0JDQm9CY0Isg0IjQntCS0JDQnQor0IvQkNCb0JjQiyDQiNCe0JLQkNCdCivQi9CQ0JvQmNCLINCb0KPQmtCQCivQi9CQ0JvQmNCLINCc0JjQm9Ce0KgKK9CL0JDQm9CY0Isg0JzQntCc0KfQmNCb0J4KK9CL0JDQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IvQkNCb0JjQiyDQl9Ce0KDQkNCdCivQi9CQ0JvQntCSINCc0JjQm9Ce0KDQkNCUCivQi9CQ0JvQntCS0JjQiyDQm9CQ0JrQmNCLCivQi9CQ0JvQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0IvQkNCb0KPQqNCY0Isg0IjQkNCa0J7Qkgor0IvQkNCi0JjQiyDQoNCQ0JTQldCd0JrQngor0IvQkNCi0JjQiyDQodCc0JjQidCQ0J3QkAor0IvQkNCi0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQi9CQ0KLQntCS0JjQiyDQk9Ce0KHQn9CQ0JLQkAor0IvQkNCi0J7QktCY0Isg0JzQkNCl0JjQogor0IvQkNCi0J7QktCY0Isg0KHQmNCc0JDQnQor0IvQkNCS0JDQoCDQnNCQ0KDQmtCeCivQi9CQ0JfQmNCLINCC0J7QoNCC0JUKK9CL0JDQl9CY0Isg0JzQmNCb0JUKK9CL0JDQl9CY0Isg0JzQmNCb0JUKK9CL0JDQl9CY0Isg0J/QldCi0JDQoAor0IvQldCR0JjQiyDQkdCe0KDQmNCS0J7QiAor0IvQldCR0JjQiyDQnNCY0JvQkNCdCivQi9CV0JHQmNCLINCh0JvQkNCS0JjQptCQCivQi9CV0JHQntCS0JjQiyDQndCV0J3QkNCUCivQi9CV0KXQkCDQkdCg0JDQndCVCivQi9CV0IjQmNCLINCU0KPQqNCQ0J0KK9CL0JXQiNCY0Isg0JTQo9Co0JDQnQor0IvQldCb0JDQnyDQnNCb0JDQlNCV0J0KK9CL0JXQm9CQ0J8g0KHQktCV0KLQntCX0JDQoAor0IvQldCb0JjQiyDQidCj0JHQkAor0IvQldCb0JjQiyDQodCb0JDQktCa0J4KK9CL0JXQm9CY0Isg0JLQmNCa0KLQntCg0JjQiNCQCivQi9CV0J3QkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CL0JXQoNCQ0J0g0JHQntCo0JrQngor0IvQldCg0JDQnSDQlNCj0KjQkNCdCivQi9CV0KDQkNCdINCI0JXQm9Ca0JAKK9CL0JXQoNCQ0J0g0JzQmNCb0JXQndCa0J4KK9CL0JXQoNCQ0J0g0KHQotCe0IjQkNCdCivQi9CV0KDQkNCdINCS0JXQidCa0J4KK9CL0JXQoNCQ0J0g0JfQntCg0JDQndCa0JAKK9CL0JXQoNCQ0J3QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0IvQldCg0JDQndCY0Isg0JzQmNCb0JDQnQor0IvQldCg0JDQndCY0Isg0JzQmNCb0JjQptCQCivQi9CV0KDQkNCd0JjQiyDQoNCQ0JTQmNCd0JrQkAor0IvQldCg0JDQndCY0Isg0KHQndCV0JbQkNCd0JAKK9CL0JXQoNCQ0J3QmNCLINCX0J7QoNCQ0J0KK9CL0JXQoNCY0JzQkNCT0JjQiyDQldCi0KXQldCcCivQi9CV0KDQnNCe0JIt0JrQkNCS0JXQp9CQ0J0g0JHQntCI0JDQndCQCivQi9CV0KHQkNCg0J7QkiDQltCQ0KDQmtCeCivQi9CV0KHQkNCg0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CL0JXQodCQ0KDQntCSINCg0KPQltCY0KbQkAor0IvQldCh0JDQoNCe0JIg0KHQmNCc0JAKK9CL0JXQodCQ0KDQntCSINCh0KLQldCS0JDQnQor0IvQldCh0JDQoNCe0JIg0KHQktCV0KLQntCX0JDQoAor0IvQldCh0JDQoNCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQi9CV0KHQkNCg0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9CL0JXQotCa0J7QktCY0Isg0JbQkNCg0JrQngor0IvQldCi0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0IvQldCi0JrQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0IvQldCi0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IvQldCi0JrQntCS0JjQiyDQndCV0J3QkNCUCivQi9CV0KLQmtCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQi9CV0KLQntCI0JXQktCY0Isg0ILQntCg0ILQlQor0IvQldCi0J7QiNCV0JLQmNCLINCR0J7QodCQCivQi9CV0KLQntCI0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0IvQldCi0J7QiNCV0JLQmNCLINCI0J7QktCeCivQi9CV0KLQntCI0JXQktCY0Isg0JzQmNCb0J7QqAor0IvQldCi0J7QiNCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQi9CV0KLQntCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IvQldCi0J7QiNCV0JLQmNCLINCd0JXQlNCV0InQmtCeCivQi9CV0KLQntCI0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CL0JXQktCQ0J8g0JHQntCW0JAKK9CL0JjQqNCY0J0g0JTQo9Co0JDQndCa0JAKK9CL0JjQndCa0KPQmyDQodCQ0JLQkAor0IvQmNCd0JrQo9CbINCS0JDQm9Ci0JAKK9CL0JjQn9CVINCV0KDQltCV0JHQldCiCivQi9CY0J/QoNCe0JLQkNCmINCh0JDQktCQCivQi9CY0J/QoNCe0JLQkNCmINCi0J7QqNCQCivQi9CY0J/QoNCe0JLQkNCmINCX0JTQoNCQ0JLQmtCeCivQi9CY0KDQkNCaINCc0JjQm9Ce0KDQkNCUCivQi9CY0KDQkNCa0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CL0JjQoNCQ0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQi9CY0KDQkNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CL0JjQoNCQ0JrQntCS0JjQiyDQodCQ0IjQkAor0IvQmNCg0JXQktCh0JrQmCDQkdCj0JTQmNCc0JjQoAor0IvQmNCg0JjQiyDQi9CY0KDQkAor0IvQmNCg0JjQiyDQltCY0JLQmtCQCivQi9CY0KDQmNCLINCW0JjQktCa0JAKK9CL0JjQoNCY0Isg0ILQntCg0ILQlQor0IvQmNCg0JjQiyDQgtCe0KDQgtCVCivQi9CY0KDQmNCLINCC0J7QoNCC0JUKK9CL0JjQoNCY0Isg0ILQntCg0ILQlQor0IvQmNCg0JjQiyDQgtCe0KDQgtCVCivQi9CY0KDQmNCLINCC0J7QoNCC0JUKK9CL0JjQoNCY0Isg0ILQntCg0ILQlQor0IvQmNCg0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQi9CY0KDQmNCLINCQ0J3QmNCm0JAKK9CL0JjQoNCY0Isg0JDQndCY0KLQkAor0IvQmNCg0JjQiyDQkdCe0KjQmtCeCivQi9CY0KDQmNCLINCR0J7QltCY0JTQkNCgINCU0KAKK9CL0JjQoNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CL0JjQoNCY0Isg0JHQntCW0J4KK9CL0JjQoNCY0Isg0JHQntCg0JjQodCb0JDQkgor0IvQmNCg0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQi9CY0KDQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CL0JjQoNCY0Isg0JHQoNCQ0J3QmtCQCivQi9CY0KDQmNCLINCR0KDQkNCd0JrQngor0IvQmNCg0JjQiyDQlNCQ0J3QmNCm0JAKK9CL0JjQoNCY0Isg0JTQkNCd0JjQm9CeCivQi9CY0KDQmNCLINCU0JXQodCQ0J3QmtCQCivQi9CY0KDQmNCLINCU0JjQktCa0J4KK9CL0JjQoNCY0Isg0JTQntCR0KDQmNCb0JAKK9CL0JjQoNCY0Isg0JTQoNCQ0JPQkNCdCivQi9CY0KDQmNCLINCU0KDQkNCT0JjQptCQCivQi9CY0KDQmNCLINCU0KDQkNCT0JjQitCQCivQi9CY0KDQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CL0JjQoNCY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CL0JjQoNCY0Isg0JTQo9Co0JDQndCa0JAKK9CL0JjQoNCY0Isg0JTQo9Co0JDQnQor0IvQmNCg0JjQiyDQlNCj0KjQkNCdCivQi9CY0KDQmNCLINCU0KPQqNCY0KbQkAor0IvQmNCg0JjQiyDQk9CQ0JLQoNCY0JvQngor0IvQmNCg0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IvQmNCg0JjQiyDQmNCS0JDQndCa0JAKK9CL0JjQoNCY0Isg0JjQktCQ0J0KK9CL0JjQoNCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CL0JjQoNCY0Isg0IjQntCg0JTQkNCdCivQi9CY0KDQmNCLINCI0J7QktCQ0J3QmtCQCivQi9CY0KDQmNCLINCI0J7QktCQ0J0KK9CL0JjQoNCY0Isg0IjQntCS0JDQnQor0IvQmNCg0JjQiyDQiNCe0JLQkNCdCivQi9CY0KDQmNCLINCa0JDQnNCV0J3QmtCeCivQi9CY0KDQmNCLINCa0JDQotCY0KbQkAor0IvQmNCg0JjQiyDQm9CQ0JfQkNCgCivQi9CY0KDQmNCLINCb0JXQndCa0JAKK9CL0JjQoNCY0Isg0InQo9CR0JjQptCQCivQi9CY0KDQmNCLINCJ0KPQkdCY0KbQkAor0IvQmNCg0JjQiyDQidCj0JHQntCc0JjQoAor0IvQmNCg0JjQiyDQnNCQ0KDQmtCeCivQi9CY0KDQmNCLINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQi9CY0KDQmNCLINCc0JjQm9CQ0J0KK9CL0JjQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9CL0JjQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9CL0JjQoNCY0Isg0JzQmNCb0JXQotCQCivQi9CY0KDQmNCLINCc0JjQm9CY0KbQkAor0IvQmNCg0JjQiyDQnNCY0JvQmtCQCivQi9CY0KDQmNCLINCc0JjQm9Ce0KgKK9CL0JjQoNCY0Isg0JzQmNCb0J7QqAor0IvQmNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0IvQmNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0IvQmNCg0JjQiyDQnNCY0J7QlNCg0JDQkwor0IvQmNCg0JjQiyDQnNCY0KDQkAor0IvQmNCg0JjQiyDQnNCb0JDQlNCV0J0KK9CL0JjQoNCY0Isg0J3QmNCa0J7Qm9CQCivQi9CY0KDQmNCLINCf0JDQiNCQCivQi9CY0KDQmNCLINCf0JXQotCQ0KAKK9CL0JjQoNCY0Isg0J/QldCi0JDQoAor0IvQmNCg0JjQiy3Qn9CV0KLQoNCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CL0JjQoNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CL0JjQoNCY0Isg0KDQkNCU0JUKK9CL0JjQoNCY0Isg0KDQkNCU0JzQmNCb0JAKK9CL0JjQoNCY0Isg0KDQkNCU0JzQmNCb0J4KK9CL0JjQoNCY0Isg0KDQkNCU0J7QnNCY0KAKK9CL0JjQoNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CL0JjQoNCY0Isg0KDQntCR0JXQoNCiCivQi9CY0KDQmNCLINCh0JDQktCQCivQi9CY0KDQmNCLINCh0JvQkNCS0JjQptCQCivQi9CY0KDQmNCLINCh0JvQkNCS0JrQngor0IvQmNCg0JjQiyDQodCb0JDQktCa0J4KK9CL0JjQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IvQmNCg0JjQiyDQodCc0JjQidCQCivQi9CY0KDQmNCLINCh0J7QpNCY0IjQkAor0IvQmNCg0JjQiyDQodCg0JXQlNCe0IjQlQor0IvQmNCg0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9CL0JjQoNCY0Isg0KHQotCV0JLQkNCdCivQi9CY0KDQmNCLINCh0KLQldCS0JDQnQor0IvQmNCg0JjQiyDQodCi0JXQktCQ0J0KK9CL0JjQoNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQi9CY0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CL0JjQoNCY0Isg0KHQktCV0KLQntCX0JDQoAor0IvQmNCg0JjQiyDQodCS0JXQotCe0JfQkNCgCivQi9CY0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CL0JjQoNCY0Isg0KLQntCc0JjQodCb0JDQkgor0IvQmNCg0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQi9CY0KDQmNCLLdCi0J7QnSDQiNCV0JvQmNCm0JAKK9CL0JjQoNCY0Isg0JLQkNCh0JAKK9CL0JjQoNCY0Isg0JLQldCg0JAKK9CL0JjQoNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IvQmNCg0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQi9CY0KDQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0IvQmNCg0JjQiyDQktCj0KfQmtCeCivQi9CY0KDQmNCLINCX0J7QoNCQ0J0KK9CL0JjQoNCY0Isg0JfQntCg0JAKK9CL0JjQoNCY0Isg0JfQntCg0JAKK9CL0JjQoNCY0Isg0JfQntCg0JrQkAor0IvQmNCg0JjQm9Ce0JIg0JzQmNCb0JDQnQor0IvQmNCg0JjQm9Ce0JLQmNCLINCQ0J3QmNCm0JAKK9CL0JjQoNCY0JvQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CL0JjQoNCY0JvQntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0IvQmNCg0JjQm9Ce0JLQmNCLINCc0JvQkNCU0JXQnQor0IvQmNCg0JjQm9Ce0JLQmNCLINCe0JvQk9CQCivQi9CY0KDQmNCb0J7QktCY0Isg0J/QldCi0JDQoAor0IvQmNCg0JjQm9Ce0JLQmNCLINCS0JXQoNCQCivQi9CY0KDQmNCdINCU0KDQkNCT0J7QodCb0JDQkgor0IvQmNCg0JjQnS3QndCe0JLQotCQINCS0JXQoNCQCivQi9CY0KDQmNCdINCh0JvQntCR0J7QlNCQ0J0KK9CL0JjQoNCY0KLQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0IvQmNCg0IjQkNCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CL0JjQoNCI0JDQmtCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9CL0JjQoNCI0JDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CL0JjQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0IvQmNCg0JrQntCS0JjQiyDQptCS0JXQotCQ0J3QmtCQCivQi9CY0KDQmtCe0JLQmNCLINCY0JLQkNCdCivQi9CY0KDQmtCe0JLQmNCLINCY0JLQkNCdCivQi9CY0KDQmtCe0JLQmNCLINCI0JDQndCa0J4KK9CL0JjQoNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQi9CY0KDQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9CL0JjQoNCa0J7QktCY0Isg0JzQkNCg0KLQkAor0IvQmNCg0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IvQmNCg0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQi9CY0KDQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9CL0JjQoNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CL0JjQoNCe0JLQmNCLINCW0JDQoNCa0J4KK9CL0JjQoNCe0JLQmNCLINCU0JXQiNCQ0J0KK9CL0JjQoNCe0JLQmNCLINCT0KDQo9CI0JjQptCQCivQi9CY0KDQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IvQmNCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQi9CY0KDQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0IvQmNCg0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9CL0JjQoNCf0JDQndCe0JIg0JzQmNCe0JTQoNCQ0JMKK9CL0JjQoNCj0KjQmNCLINCg0JDQiNCa0J4KK9CL0JjQotCY0Isg0JTQo9Co0JDQnQor0IvQmNCi0JjQiyDQnNCY0JvQntCS0JDQnQor0IvQntCL0JrQkNCb0J4g0KHQmNCc0JAKK9CL0J7QiNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0IvQntCI0JDQndCe0JLQmNCLINCR0J7QoNCeCivQi9Ce0IjQkNCd0J7QktCY0Isg0JzQmNCb0JrQkAor0IvQntCI0JTQldCgINCT0J7QiNCa0J4KK9CL0J7QnNCQINCa0JDQotCQ0KDQmNCd0JAKK9CL0J7Qn9CY0Isg0JDQndCU0KDQmNCI0JAKK9CL0J7Qn9CY0Isg0JXQktCY0KbQkAor0IvQntCf0JjQiyDQnNCY0IvQkAor0IvQntCf0JjQiyDQnNCY0JvQlQor0IvQntCf0JjQiyDQnNCY0JvQntCoCivQi9Ce0J/QmNCLINCS0JXQoNCQCivQi9Ce0KDQmNCLLdCC0J7QmtCY0Isg0J3QkNCU0JAKK9CL0J7QoNCY0Isg0ILQntCg0ILQlQor0IvQntCg0JjQiyDQgtCj0KDQngor0IvQntCg0JjQiyDQgtCj0KDQngor0IvQntCg0JjQiyDQkNCd0JTQoNCY0IjQkAor0IvQntCg0JjQiyDQkdCY0KHQldCg0JrQkAor0IvQntCg0JjQiyDQkdCb0JDQk9Ce0IjQlQor0IvQntCg0JjQiyDQkdCe0KDQkAor0IvQntCg0JjQiyDQiNCe0JLQkNCdCivQi9Ce0KDQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CL0J7QoNCY0Isg0InQmNCJ0JDQndCQCivQi9Ce0KDQmNCLINCc0JDQoNCY0IjQkAor0IvQntCg0JjQiyDQnNCY0IvQngor0IvQntCg0JjQiyDQnNCY0JrQkNCY0JvQngor0IvQntCg0JjQiyDQoNCQ0IjQmtCeCivQi9Ce0KDQmtCe0JLQmNCLINCY0JLQkNCdCivQi9Ce0KDQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9CL0J7QoNCe0JLQmNCLINCU0JDQndCY0JvQngor0IvQntCg0J7QktCY0Isg0IjQntCS0JDQnQor0IvQntCg0J7QktCY0Isg0JzQmNCg0KfQldCi0JAKK9CL0J7QoNCe0JLQmNCLINCc0JjQoNCeCivQi9Ce0KDQntCS0JjQiyDQoNCV0J3QkNCi0JAKK9CL0J7QoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CL0J7QodCY0Isg0KjQotCV0KTQmNCm0JAKK9CL0J7QodCY0Isg0JbQkNCg0JrQngor0IvQntCh0JjQiyDQltCY0JLQkNCd0JAKK9CL0J7QodCY0Isg0JbQmNCS0JrQkAor0IvQntCh0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IvQntCh0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IvQntCh0JjQiyDQkdCe0JPQlNCQ0J0g0KHQo9CU0JjQiNCQCivQi9Ce0KHQmNCLINCR0KDQkNCd0JrQngor0IvQntCh0JjQiyDQkdCg0JDQndCa0J4KK9CL0J7QodCY0Isg0JTQkNCd0JjQptCQCivQi9Ce0KHQmNCLINCU0KDQkNCT0JDQndCQCivQi9Ce0KHQmNCLINCU0KDQkNCT0JDQnQor0IvQntCh0JjQiyDQlNCg0JDQk9CY0KbQkAor0IvQntCh0JjQiyDQlNCg0JDQk9CY0KbQkAor0IvQntCh0JjQiyDQlNCj0KjQkNCdCivQi9Ce0KHQmNCLINCU0KPQqNCQ0J0KK9CL0J7QodCY0Isg0JTQo9Co0JrQngor0IvQntCh0JjQiyDQpNCQ0JTQmNCbCivQi9Ce0KHQmNCLINCY0JvQmNCI0JAKK9CL0J7QodCY0Isg0IjQldCb0JrQkAor0IvQntCh0JjQiyDQiNCe0JLQkNCdCivQi9Ce0KHQmNCLINCI0J7QktCQ0J0KK9CL0J7QodCY0Isg0IjQntCS0JDQnQor0IvQntCh0JjQiyDQiNCe0JfQngor0IvQntCh0JjQiyDQidCY0InQkNCd0JAKK9CL0J7QodCY0Isg0JzQkNCg0JjQiNCQCivQi9Ce0KHQmNCLINCc0JDQoNCY0IjQkAor0IvQntCh0JjQiyDQnNCY0JvQkNCdCivQi9Ce0KHQmNCLINCc0JjQm9CV0J3QkAor0IvQntCh0JjQiyDQnNCY0JvQmNCm0JAKK9CL0J7QodCY0Isg0JzQmNCg0IjQkNCd0JAKK9CL0J7QodCY0Isg0JzQo9Cl0JDQnNCV0JQKK9CL0J7QodCY0Isg0J7Qm9CT0JAKK9CL0J7QodCY0Isg0J/QkNCd0KLQldCb0JjQiNCQCivQi9Ce0KHQmNCLINCh0JDQktCa0JAKK9CL0J7QodCY0Isg0KHQnNCY0InQkAor0IvQntCh0JjQiyDQodCd0JXQltCQ0J3QkAor0IvQntCh0JjQiyDQodCi0JDQndCa0JAKK9CL0J7QodCY0Isg0KHQotCe0IjQkNCdCivQi9Ce0KHQmNCLINCi0J7QlNCe0KAg0JTQmNCf0Jsg0JjQndCTCivQi9Ce0KHQmNCLINCS0JXQoNCQCivQi9Ce0KHQmNCLINCS0JXQoNCe0KHQm9CQ0JIKK9CL0J7QodCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IvQntCh0JjQiyDQl9Ce0KDQkNCdCivQi9Ce0KHQmNCLINCX0J7QoNCa0JAKK9CL0J7QodCY0J0g0JTQo9Co0JDQnQor0IvQntCh0JjQnSDQl9Ce0KDQkNCdCivQi9Ce0KHQniDQk9CQ0JLQoNCY0JvQngor0IvQntCh0J7QktCY0Isg0IjQldCb0JXQndCQCivQi9Ce0KHQntCS0JjQiyDQnNCY0JvQldCi0JAKK9CL0J7QodCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CL0J7QktCY0Isg0JvQkNCX0JDQoAor0IvQntCS0JjQnSDQnNCY0JvQkNCdCivQi9Cj0IvQkCDQkNCU0JDQnAor0IvQo9CL0JjQm9Ce0JLQmNCLINCm0JLQmNCI0JAKK9CL0KPQi9CY0JvQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0IvQo9CL0JjQm9Ce0JLQmNCLINCg0KPQltCY0KbQkAor0IvQo9CL0KPQlyDQnNCQ0KDQmtCeCivQi9Cj0IvQo9CXINCh0JDQqNCQCivQi9Cj0IvQo9CXINCh0KLQkNCd0JrQngor0IvQo9CR0JAg0KDQkNCi0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CL0KPQkdCY0Isg0JTQo9Co0JDQnQor0IvQo9CY0Isg0JjQm9CY0IjQkAor0IvQo9CY0Isg0JzQkNCg0JAKK9CL0KPQmNCLINCc0JjQm9Ca0JAKK9CL0KPQiNCY0Isg0InQo9CR0JjQptCQCivQi9Cj0IjQmNCLINCh0KLQldCS0JDQnQor0IvQo9CaINCC0KPQoNCeCivQi9Cj0Jog0JTQoNCQ0JPQngor0IvQo9CaINCU0KPQqNCQ0J0KK9CL0KPQmiDQlNCj0KjQkNCdCivQi9Cj0Jog0JPQntCI0JrQngor0IvQo9CaINCb0JXQm9CQCivQi9Cj0Jog0JvQo9Ca0JAKK9CL0KPQmiDQnNCQ0KDQkAor0IvQo9CaINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQi9Cj0Jog0JzQmNCb0JUKK9CL0KPQmiDQnNCY0JvQmNCm0JAKK9CL0KPQmiDQnNCY0JvQmtCQ0J0KK9CL0KPQmiDQnNCY0JvQntCg0JDQlAor0IvQo9CaINCc0JjQoNCe0KHQm9CQ0JIKK9CL0KPQmiDQndCY0JrQntCb0JAKK9CL0KPQmiDQoNCQ0JTQmNCS0J7QiAor0IvQo9CaINCg0JDQotCa0J4KK9CL0KPQmiDQodCb0J7QkdCe0JTQkNCdCivQi9Cj0Jog0KLQntCc0JjQodCb0JDQkgor0IvQo9CaINCX0J7QoNCa0JAKK9CL0KPQmtCe0JLQmNCLINCc0JjQm9Cj0J0KK9CL0KPQmtCe0JLQmNCLINCc0JjQoNCQCivQi9Cj0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9CL0KPQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQi9Cj0JrQntCS0JjQiyDQotCY0KXQntCc0JjQoNCa0JAKK9CL0KPQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CL0KPQm9CY0Isg0ILQntCg0ILQlQor0IvQo9Cb0JjQiyDQiNCQ0KHQnNCY0J3QmtCQCivQi9Cj0JvQmNCR0KDQmiDQkdCe0JPQlNCQ0J0KK9CL0KPQm9CY0JHQoNCaINCU0KDQkNCT0JDQnQor0IvQo9Cb0JjQkdCg0Jog0JTQoNCQ0JPQkNCdCivQi9Cj0JvQmNCR0KDQmiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CL0KPQm9CY0JHQoNCaINCU0KPQqNCQ0J3QmtCQCivQi9Cj0JvQmNCR0KDQmiDQlNCj0KjQkNCdCivQi9Cj0JvQmNCR0KDQmiDQk9Ce0KHQn9CQ0JLQkAor0IvQo9Cb0JjQkdCg0Jog0IjQldCb0JjQptCQCivQi9Cj0JvQmNCR0KDQmiDQiNCV0JvQmtCQCivQi9Cj0JvQmNCR0KDQmiDQnNCY0JvQkNCdCivQi9Cj0JvQmNCR0KDQmiDQnNCY0JvQlQor0IvQo9Cb0JjQkdCg0Jog0JzQmNCb0JUKK9CL0KPQm9CY0JHQoNCaINCc0JjQntCU0KDQkNCTCivQi9Cj0JvQmNCR0KDQmiDQnNCY0KDQmtCeCivQi9Cj0JvQmNCR0KDQmiDQnNCb0JDQlNCV0J0KK9CL0KPQm9CY0JHQoNCaINCc0J7QnNCn0JjQm9CeCivQi9Cj0JvQmNCR0KDQmiDQoNCQ0JTQmNCS0J7QiNCVCivQi9Cj0JvQmNCR0KDQmiDQoNCQ0JTQntCI0JrQkAor0IvQo9Cb0JjQkdCg0Jog0KDQkNCi0JrQngor0IvQo9Cb0JjQkdCg0Jog0KDQmNCh0KLQngor0IvQo9Cb0JjQkdCg0Jog0KHQm9Ce0JHQntCU0JDQnQor0IvQo9Cb0JjQkdCg0Jog0KHQntCa0JAKK9CL0KPQm9CY0JHQoNCaINCh0KLQldCS0JDQnQor0IvQo9Cb0JjQkdCg0Jog0KLQoNCY0JLQngor0IvQo9Cb0KPQnCDQkdCg0JDQndCa0J4KK9CL0KPQm9Cj0Jwg0JPQntCI0JrQngor0IvQo9Cb0KPQnCDQmNCb0JjQiNCQCivQi9Cj0JvQo9CcINCI0JXQm9CY0KbQkAor0IvQo9Cb0KPQnCDQiNCe0JLQkNCdCivQi9Cj0JvQo9CcINCb0JDQl9CQ0KAKK9CL0KPQm9Cj0Jwg0JzQkNCg0JAKK9CL0KPQm9Cj0Jwg0JzQkNCg0JAKK9CL0KPQm9Cj0Jwg0JzQmNCl0JDQiNCb0J4KK9CL0KPQm9Cj0Jwg0JzQmNCb0JDQnQor0IvQo9Cb0KPQnCDQnNCY0JvQldCi0JAKK9CL0KPQm9Cj0Jwg0JzQmNCb0J7QqAor0IvQo9Cb0KPQnCDQnNCY0J7QlNCg0JDQkwor0IvQo9Cb0KPQnCDQnNCY0KDQmtCeCivQi9Cj0JvQo9CcINCc0JjQoNCa0J4KK9CL0KPQm9Cj0Jwg0J3QkNCU0JAKK9CL0KPQm9Cj0Jwg0J3QkNCU0JAKK9CL0KPQm9Cj0Jwg0J3QmNCa0J7Qm9CQCivQi9Cj0JvQo9CcINCf0JXQoNCeCivQi9Cj0JvQo9CcINCg0JDQlNCVCivQi9Cj0JvQo9CcINCg0JDQlNCVCivQi9Cj0JvQo9CcINCh0JDQktCQCivQi9Cj0JvQo9CcINCh0JvQkNCS0JrQngor0IvQo9Cb0KPQnCDQodCi0JDQndCa0JAKK9CL0KPQm9Cj0Jwg0KHQotCQ0J3QmtCQCivQi9Cj0JvQo9CcINCh0KLQldCS0J4KK9CL0KPQm9Cj0Jwg0KHQotCV0JLQngor0IvQo9Cb0KPQnCDQo9Cg0J7QqAor0IvQo9Cb0KPQnCDQktCQ0KHQkAor0IvQo9Cb0KPQnNCQ0J0g0KHQotCV0JLQkNCdCivQi9Cj0JvQo9Cc0J7QktCY0Isg0KHQotCI0JXQn9CQ0J0KK9CL0KPQnNCj0KDQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0IvQo9Cf0JjQiyDQlNCj0KjQkNCdCivQi9Cj0J/QmNCd0JAg0JHQoNCQ0J3QmtCeCivQi9Cj0J/QmNCd0JAg0JzQmNCb0JDQlNCY0J0KK9CL0KPQn9CY0J3QkCDQndCe0JLQmNCm0JAKK9CL0KPQn9CY0J3QkCDQotCe0JzQmNCh0JvQkNCSINCU0KAKK9CL0KPQn9Cj0KDQlNCY0IjQkCDQiNCV0JvQldCd0JAKK9CL0KPQn9Cj0KDQlNCY0IjQkCDQnNCY0JvQkNCdCivQi9Cj0J/Qo9Cg0JTQmNCI0JAg0JzQmNCb0J7QktCQ0J0KK9CL0KPQn9Cj0KDQlNCY0IjQkCDQodCQ0KjQkAor0IvQo9Cf0KPQoNCU0JjQiNCQINCh0KLQldCS0JDQnQor0IvQo9Cg0KfQmNCLINCn0JXQlNCe0JzQmNCgCivQi9Cj0KDQp9CY0Isg0JbQmNCS0JDQnQor0IvQo9Cg0KfQmNCLINCW0JjQktCQ0J0KK9CL0KPQoNCn0JjQiyDQltCY0JLQmtCeCivQi9Cj0KDQp9CY0Isg0ILQntCg0ILQlQor0IvQo9Cg0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQi9Cj0KDQp9CY0Isg0JDQndCU0KDQmNCI0JAKK9CL0KPQoNCn0JjQiyDQkdCe0KjQmtCeCivQi9Cj0KDQp9CY0Isg0JHQntCT0JTQkNCdCivQi9Cj0KDQp9CY0Isg0JHQntCg0JjQktCe0IgKK9CL0KPQoNCn0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CL0KPQoNCn0JjQiyDQkdCg0JDQndCa0J4KK9CL0KPQoNCn0JjQiyDQkdCg0JDQndCa0J4KK9CL0KPQoNCn0JjQiyDQkdCg0JDQndCa0J4KK9CL0KPQoNCn0JjQiyDQlNCQ0J3QmNCb0J4KK9CL0KPQoNCn0JjQiyDQlNCV0KHQn9CY0J3QkAor0IvQo9Cg0KfQmNCLINCU0KDQkNCT0JDQnQor0IvQo9Cg0KfQmNCLINCU0KDQkNCT0JDQnQor0IvQo9Cg0KfQmNCLINCU0KDQkNCT0JDQnQor0IvQo9Cg0KfQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CL0KPQoNCn0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CL0KPQoNCn0JjQiyDQlNCj0KjQkNCd0JrQkAor0IvQo9Cg0KfQmNCLINCU0KPQqNCQ0J0KK9CL0KPQoNCn0JjQiyDQlNCj0KjQkNCdCivQi9Cj0KDQp9CY0Isg0JTQo9Co0JDQnQor0IvQo9Cg0KfQmNCLINCT0JXQntCg0JPQmNCI0JUKK9CL0KPQoNCn0JjQiyDQk9Ce0IjQmtCeCivQi9Cj0KDQp9CY0Isg0JPQntCg0JTQkNCd0JAKK9CL0KPQoNCn0JjQiyDQmNCR0J7QiNCQCivQi9Cj0KDQp9CY0Isg0JjQm9CY0IjQkAor0IvQo9Cg0KfQmNCLINCY0JvQmNCI0JAKK9CL0KPQoNCn0JjQiyDQiNCQ0KHQnNCY0J3QkAor0IvQo9Cg0KfQmNCLINCI0JXQm9CV0J3QkAor0IvQo9Cg0KfQmNCLINCI0J7QktCQ0J0g0J3QntCS0JjQndCQ0KAKK9CL0KPQoNCn0JjQiyDQiNCe0JLQkAor0IvQo9Cg0KfQmNCLINCa0JDQnNCV0J3QmtCeCivQi9Cj0KDQp9CY0Ist0JrQkNCh0JDQm9CY0KbQkCDQkdCe0KHQkAor0IvQo9Cg0KfQmNCLINCa0JDQotCY0KbQkAor0IvQo9Cg0KfQmNCLINCb0JDQl9CQ0KAKK9CL0KPQoNCn0JjQiyDQm9CQ0JfQkNCgCivQi9Cj0KDQp9CY0Isg0InQmNCJ0JDQndCQCivQi9Cj0KDQp9CY0Isg0InQmNCJ0JDQndCQCivQi9Cj0KDQp9CY0Isg0InQo9CR0JjQqNCQCivQi9Cj0KDQp9CY0Isg0InQo9CR0J7QnNCY0KAKK9CL0KPQoNCn0JjQiyDQnNCQ0KDQkAor0IvQo9Cg0KfQmNCLINCc0JDQoNCQCivQi9Cj0KDQp9CY0Isg0JzQkNCg0JjQiNCQCivQi9Cj0KDQp9CY0Isg0JzQkNCg0JjQiNCQCivQi9Cj0KDQp9CY0Isg0JzQkNCg0JjQiNCQCivQi9Cj0KDQp9CY0Isg0JzQmNCl0JDQiNCb0J4KK9CL0KPQoNCn0JjQiyDQnNCY0IjQngor0IvQo9Cg0KfQmNCLINCc0JjQm9CQ0J0KK9CL0KPQoNCn0JjQiyDQnNCY0JvQkNCdCivQi9Cj0KDQp9CY0Isg0JzQmNCb0JDQnQor0IvQo9Cg0KfQmNCLINCc0JjQm9CQ0J0KK9CL0KPQoNCn0JjQiyDQnNCY0JvQkNCdCivQi9Cj0KDQp9CY0Isg0JzQmNCb0JXQndCQCivQi9Cj0KDQp9CY0Isg0JzQmNCb0JXQktCQCivQi9Cj0KDQp9CY0Isg0JzQmNCb0JUKK9CL0KPQoNCn0JjQiyDQnNCY0JvQlQor0IvQo9Cg0KfQmNCLINCc0JjQm9CY0IsKK9CL0KPQoNCn0JjQiyDQnNCY0JvQmNCm0JAKK9CL0KPQoNCn0JjQiyDQnNCY0JvQmNCS0J7QiAor0IvQo9Cg0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQi9Cj0KDQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CL0KPQoNCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0IvQo9Cg0KfQmNCLINCc0JjQntCU0KDQkNCTCivQi9Cj0KDQp9CY0Isg0JzQmNCg0IjQkNCd0JAKK9CL0KPQoNCn0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IvQo9Cg0KfQmNCLINCc0JjQoNCa0J4KK9CL0KPQoNCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQi9Cj0KDQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0IvQo9Cg0KfQmNCLINCc0JvQkNCU0JXQnQor0IvQo9Cg0KfQmNCLINCc0J7QnNCn0JjQm9CeCivQi9Cj0KDQp9CY0Isg0J3QkNCU0JAKK9CL0KPQoNCn0JjQiyDQndCV0J3QkNCUCivQi9Cj0KDQp9CY0Isg0J3QmNCa0J7Qm9CQCivQi9Cj0KDQp9CY0Isg0J7Qm9CT0JAKK9CL0KPQoNCn0JjQiyDQntCb0JPQkAor0IvQo9Cg0KfQmNCLINCf0JDQktCb0JUKK9CL0KPQoNCn0JjQiyDQn9CV0KLQkNCgCivQi9Cj0KDQp9CY0Isg0KDQkNCU0JUKK9CL0KPQoNCn0JjQiyDQoNCQ0JTQmNCS0J7QiAor0IvQo9Cg0KfQmNCLINCg0JDQlNCc0JjQm9CQCivQi9Cj0KDQp9CY0Isg0KDQkNCU0JzQmNCb0JAKK9CL0KPQoNCn0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQi9Cj0KDQp9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0IvQo9Cg0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CL0KPQoNCn0JjQiyDQoNCQ0IjQmtCeCivQi9Cj0KDQp9CY0Isg0KDQkNCI0JrQngor0IvQo9Cg0KfQmNCLINCg0JDQotCa0JAKK9CL0KPQoNCn0JjQiyDQoNCQ0KLQntCc0JjQoAor0IvQo9Cg0KfQmNCLINCh0JDQktCQCivQi9Cj0KDQp9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9CL0KPQoNCn0JjQiyDQodCb0JDQktCa0J4KK9CL0KPQoNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQi9Cj0KDQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IvQo9Cg0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CL0KPQoNCn0JjQiyDQodCi0JXQktCQ0J0KK9CL0KPQoNCn0JjQiyDQodCi0JXQktCeCivQi9Cj0KDQp9CY0Isg0KPQoNCe0KgKK9CL0KPQoNCn0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQi9Cj0KDQp9CY0Isg0JLQldCg0JAKK9CL0KPQoNCn0JjQiyDQktCV0KHQldCb0JjQndCa0JAKK9CL0KPQoNCn0JjQiyDQktCj0JrQkNCo0JjQnQor0IvQo9Cg0KfQmNCLINCX0JTQoNCQ0JLQmtCeCivQi9Cj0KDQp9CY0Isg0JfQm9CQ0KLQkAor0IvQo9Cg0KfQmNCLINCX0J7QoNCQ0J0KK9CL0KPQoNCn0JjQiyDQl9Ce0KDQkNCdCivQi9Cj0KDQp9CY0IjQkCDQodCY0JzQkAor0IvQo9Cg0KfQmNCdINCW0JjQktCa0J4KK9CL0KPQoNCn0JjQnSDQltCY0JLQmtCeCivQi9Cj0KDQp9CY0J0g0ILQntCg0ILQlQor0IvQo9Cg0KfQmNCdINCC0KPQoNCQCivQi9Cj0KDQp9CY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CL0KPQoNCn0JjQnSDQkdCe0JbQmNCU0JDQoAor0IvQo9Cg0KfQmNCdINCR0KDQkNCd0JrQngor0IvQo9Cg0KfQmNCdINCU0KDQkNCT0J7QnNCY0KAKK9CL0KPQoNCn0JjQnSDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CL0KPQoNCn0JjQnSDQlNCg0JXQndCa0JAKK9CL0KPQoNCn0JjQnSDQlNCj0KjQkNCdCivQi9Cj0KDQp9CY0J0g0JTQo9Co0JDQnQor0IvQo9Cg0KfQmNCdINCV0JzQmNCb0JjQiNCQCivQi9Cj0KDQp9CY0J0g0IjQldCb0JXQndCQCivQi9Cj0KDQp9CY0J0g0IjQldCb0JjQodCQ0JLQldCi0JAKK9CL0KPQoNCn0JjQnSDQidCj0JHQmNCm0JAKK9CL0KPQoNCn0JjQnSDQnNCQ0JrQodCQCivQi9Cj0KDQp9CY0J0g0JzQmNCb0JDQnQor0IvQo9Cg0KfQmNCdINCc0JjQm9CV0J3QkAor0IvQo9Cg0KfQmNCdINCc0JjQm9Ce0KDQkNCUCivQi9Cj0KDQp9CY0J0g0JzQmNCb0J7QoNCQ0JQKK9CL0KPQoNCn0JjQnSDQntCR0KDQkNCUCivQi9Cj0KDQp9CY0J0g0J/QldCi0JDQoAor0IvQo9Cg0KfQmNCdINCg0JDQlNCY0JLQntCICivQi9Cj0KDQp9CY0J0g0KDQkNCU0J7QodCb0JDQkgor0IvQo9Cg0KfQmNCdINCg0KPQltCQCivQi9Cj0KDQp9CY0J0g0KHQkNCg0JAKK9CL0KPQoNCn0JjQnSDQodCS0JXQotCe0JfQkNCgCivQi9Cj0KDQp9CY0J0g0KLQntCU0J7QoAor0IvQo9Cg0KfQmNCdINCS0JDQodCQCivQi9Cj0KDQp9CY0J0g0JLQldCb0JXQnNCY0KAKK9CL0KPQoNCn0JjQnSDQktCV0JvQmNCc0JjQoAor0IvQo9Cg0KfQmNCdINCS0JXQoNCY0KbQkAor0IvQo9Cg0KfQmNCdINCS0KPQmtCY0KbQkAor0IvQo9Cg0KfQmNCdINCX0J7QoNCQCivQi9Cj0KDQi9CY0IjQmNCLINCg0JDQotCe0JzQmNCgCivQi9Cj0KDQlNCY0Isg0IjQntCS0JDQnQor0IvQo9Cg0JTQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CL0KPQoNCU0JjQiyDQl9Ce0KDQkNCdCivQi9Cj0KDQk9Cj0Jcg0JjQm9CY0IjQkAor0IvQo9Cg0JPQo9CXINCc0JjQm9Ce0KDQkNCUCivQi9Cj0KDQk9Cj0Jcg0J3QkNCU0JAKK9CL0KPQoNCT0KPQlyDQktCV0KDQmNCm0JAKK9CL0KPQoNCY0KfQmNCLINCi0JDQotCI0JDQndCQCivQi9Cj0KDQmNCLINCC0J7QoNCC0JUKK9CL0KPQoNCY0Isg0IjQntCS0JDQnQor0IvQo9Cg0JjQiyDQnNCY0JvQkNCdCivQi9Cj0KDQmNCLINCc0JjQm9Ce0KgKK9CL0KPQoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CL0KPQoNCY0Isg0JzQmNCb0KPQotCY0J0KK9CL0KPQoNCY0Isg0J/QldCb0JDQk9CY0IjQkAor0IvQo9Cg0JjQiyDQodCQ0JLQngor0IvQo9Cg0JjQiyDQodCY0JzQngor0IvQo9Cg0JjQiyDQodCY0J3QmNCo0JAKK9CL0KPQoNCY0Isg0KHQo9CX0JDQndCQCivQi9Cj0KDQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0IvQo9Cg0JrQntCS0JjQiyDQqNCf0JjQoNCeCivQi9Cj0KDQmtCe0JLQmNCLLdCC0J7QoNCC0JXQktCY0Isg0JzQmNCe0JzQmNCg0JAKK9CL0KPQoNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQi9Cj0KDQm9CY0JHQoNCaINCR0J7QodCY0InQmtCQCivQi9Cj0KDQo9CS0JjQiNCQINCR0KDQkNCd0JrQngor0IvQo9Cg0KPQktCY0IjQkCDQndCY0JrQntCb0JAKK9CL0KPQoNCj0JLQmNCI0JAg0J3QmNCa0J7Qm9CQCivQi9Cj0KDQo9CS0JjQiNCQINCS0JvQkNCU0J4KK9CL0KPQotCY0JvQniDQodCi0JXQktCeCivQi9Cj0JfQntCS0JjQiyDQkdCg0JDQndCVCivQi9Cj0JfQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQi9Cj0JfQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQi9Cj0JfQntCS0JjQiyDQk9Ce0KDQkNCdCivQi9Cj0JfQntCS0JjQiyDQnNCY0KDQmtCeCivQltCQ0JHQkNCJ0JDQpiDQktCe0IjQmNCh0JvQkNCSCivQltCQ0JHQmNCLINCT0J7QoNCQ0J0KK9CW0JDQkdCY0Isg0InQo9CR0J7QnNCY0KAKK9CW0JDQkdCj0InQkNCmINCf0JDQktCb0JUKK9CW0JDQpNCg0JDQnSDQnNCQ0KDQotCY0J0KK9CW0JDQk9CQ0KAg0JTQoNCQ0JPQkNCdCivQltCQ0JPQkNCgINCV0KDQndCV0KHQogor0JbQkNCT0JDQoCDQmNCS0JDQnQor0JbQkNCT0JDQoCDQiNCe0JLQkNCdCivQltCQ0JPQkNCgINCJ0JjQidCQCivQltCQ0JPQkNCgINCc0JDQoNCY0IjQkAor0JbQkNCT0JDQoCDQnNCQ0KLQmNCI0JAKK9CW0JDQk9CQ0KAg0J/QkNCS0JDQngor0JbQkNCT0JDQoCDQoNCQ0JTQntCh0JvQkNCS0JAKK9CW0JDQiNCQINCi0J7QnNCY0KHQm9CQ0JIKK9CW0JDQiNCQ0KfQmtCeINCW0JXQidCa0J4KK9CW0JDQmiDQlNCg0JDQk9Cj0KLQmNCdCivQltCQ0JrQmNCLINCJ0KPQkdCY0KbQkAor0JbQkNCa0JjQiyDQnNCQ0KDQmNCI0JAKK9CW0JDQmtCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CW0JDQmtCY0Isg0JzQm9CQ0JTQldCdCivQltCQ0JrQmNCLINCS0JXQoNCQCivQltCQ0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CW0JDQmtCY0Isg0JLQntCI0JjQodCb0JDQkgor0JbQkNCa0KPQm9CQINCQ0KDQkNCd0JrQkAor0JbQkNCa0KPQm9CQINCR0J7QoNCY0KHQm9CQ0JIKK9CW0JDQmtCj0JvQkCDQnNCY0JvQkNCdCivQltCQ0JrQo9Cb0JAg0JzQmNCb0JDQnQor0JbQkNCa0KPQm9CQINCc0JjQntCU0KDQkNCTCivQltCQ0JrQo9Cb0JAg0JzQmNCg0JAKK9CW0JDQmtCj0JvQkCDQoNCQ0JTQmNCS0J7QiCDQlNCgINCf0KDQntCkCivQltCQ0JrQo9Cb0JAg0JfQntCg0JAKK9CW0JDQnNCR0J7QmtCYINCc0JDQoNCY0IjQkAor0JbQkNCc0JHQntCa0Jgg0JLQldCg0J7QndCQCivQltCQ0KDQp9CQ0J3QmNCdINCR0KDQkNCd0JrQngor0JbQkNCg0KfQkNCd0JjQnSDQn9Cg0JXQlNCg0JDQkwor0JbQkNCg0JjQnSDQoNCQ0JTQntCI0JjQptCQCivQltCQ0KDQmNCdINCh0JjQndCY0KjQkAor0JbQkNCg0JjQnS3QotCQ0JHQkNCaINCd0JDQotCQ0JvQmNCI0JAKK9CW0JDQoNCY0J0g0JLQldCh0JXQm9CY0J0KK9CW0JDQoNCa0J4g0JvQkNCU0JjQodCb0JDQkgor0JbQkNCg0JrQniDQnNCY0KXQkNCI0JvQngor0JbQkNCg0JrQntCSINCU0KPQqNCQ0J0KK9CW0JDQoNCa0J7QkiDQmtCe0KHQotCQCivQltCQ0KDQmtCe0JIg0InQmNCJ0JDQndCQCivQltCQ0KDQmtCe0JIg0JLQldCh0JXQm9Ca0JAKK9CW0JDQoNCa0J7QkiDQl9Cb0JDQotCe0IjQlQor0JbQkNCg0JrQntCS0JDQp9Ca0Jgg0JjQm9CY0IjQkAor0JbQkNCg0JrQntCS0JDQp9Ca0Jgg0JzQmNCg0JrQngor0JbQkNCg0JrQntCS0JjQiyDQltCQ0KDQmtCeCivQltCQ0KDQmtCe0JLQmNCLINCU0JDQndCY0JvQngor0JbQkNCg0JrQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9CW0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCI0JUg0JTQoCDQn9Cg0J7QpAor0JbQkNCg0JrQntCS0JjQiyDQk9Ce0IjQmtCeCivQltCQ0KDQmtCe0JLQmNCLINCT0J7QiNCa0J4KK9CW0JDQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JbQkNCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQltCQ0KDQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JbQkNCg0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JbQkNCg0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JbQkNCg0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQltCQ0KDQmtCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQltCQ0KDQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9CW0JDQoNCa0J7QktCY0Isg0J3QldCd0JDQlAor0JbQkNCg0JrQntCS0JjQiyDQndCe0JLQmNCm0JAKK9CW0JDQoNCa0J7QktCY0Isg0KDQmNCh0KLQngor0JbQkNCg0JrQntCS0JjQiyDQoNCY0KHQotCeCivQltCQ0KDQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0JbQkNCg0JrQntCS0JjQiyDQktCb0JDQiNCa0J4KK9CW0JDQoNCa0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CW0JDQoNCa0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CW0JDQoNCa0J7QktCY0Isg0JfQntCg0JAKK9CW0JTQldCg0JjQiyDQiNCV0JvQmNCm0JAKK9CW0JTQldCg0JjQiyDQnNCQ0KDQmNCI0JAKK9CW0JTQldCg0JjQiyDQnNCY0JvQkNCdCivQltCU0JXQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9CW0JTQldCg0J4g0JTQoNCQ0JPQmNCK0JAKK9CW0JTQldCg0J4g0JTQo9Co0JjQptCQCivQltCU0JXQoNCeINCT0J7QiNCa0J4KK9CW0JTQldCg0J4g0JzQkNCg0JjQndCa0J4KK9CW0JTQldCg0J4g0J/QldCi0JDQoAor0JbQlNCV0KDQniDQn9CV0KLQkNCgCivQltCU0JXQoNCeINCg0JDQlNCe0JzQmNCgCivQltCU0KDQkNCb0JUg0KDQkNCU0J7QktCQ0J0KK9CW0JTQoNCQ0JvQmNCLINCS0JDQodCeCivQltCU0KDQitCQINCc0JjQm9CQ0J0KK9CW0JTQoNCK0JAg0JzQmNCb0JDQnQor0JbQlNCg0IrQkCDQnNCY0KDQmtCeCivQltCU0KDQitCQINCd0JXQgtCeCivQltCU0KDQitCQINCd0JXQgtCeCivQltCU0KDQitCQINCh0JjQnNCeCivQltCV0JbQldCJINCR0KDQkNCd0JrQngor0JbQldCW0JXQiSDQnNCY0JvQkNCdCivQltCV0JbQldCJINCc0JjQm9CQ0J0KK9CW0JXQltCV0Ikg0KHQkNCS0JAKK9CW0JXQltCV0Ikg0KHQktCV0KLQmNCh0JvQkNCSCivQltCV0JHQldCJ0JDQnSDQnNCY0JvQldCd0JAKK9CW0JXQkdCV0InQkNCdINCc0JjQm9CV0J3QmtCeCivQltCV0JHQldCJ0JDQnSDQnNCY0JvQntCg0JDQlAor0JbQldCR0JXQidCQ0J0g0JzQmNCi0JAKK9CW0JXQkdCV0InQkNCdINCd0JXQlNCV0InQmtCeCivQltCV0JHQldCg0JDQnSDQkNCd0ILQldCb0JrQkAor0JbQldCT0JDQoNCQ0KYg0ILQntCg0ILQlQor0JbQldCT0JDQoNCQ0KYg0JTQkNCd0JjQptCQCivQltCV0JPQkNCg0JDQpiDQlNCj0KjQkNCdCivQltCV0JPQkNCg0JDQpiDQm9CQ0JfQkNCgCivQltCV0JPQkNCg0JDQpiDQnNCY0JvQkNCdCivQltCV0JPQkNCg0JDQpiDQnNCY0JvQldCd0JrQngor0JbQldCT0JDQoNCQ0KYg0JzQmNCg0IjQkNCd0JAKK9CW0JXQk9CQ0KDQkNCmINCh0KLQldCS0JDQnQor0JbQldCT0JDQoNCQ0KYg0JLQntCI0JjQodCb0JDQkgor0JbQldCa0JjQiyDQltCY0JLQmtCeCivQltCV0JrQmNCLINCR0J7QqNCa0J4KK9CW0JXQmtCY0Isg0KDQkNCU0JjQodCb0JDQkgor0JbQldCa0JjQiyDQoNCj0JbQkAor0JbQldCa0JjQiyDQl9Ce0KDQkNCdCivQltCV0JvQldCcINCh0KLQldCS0JDQnQor0JbQldCb0JXQoCDQgtCj0KDQgtCV0JLQmtCQCivQltCV0JvQldCX0JXQnSDQiNCe0KHQmNCfCivQltCV0JvQmCDQkNCd0JTQoNCQ0KgKK9CW0JXQm9CYINCY0KjQotCS0JDQnQor0JbQldCb0Jgg0JrQkNCi0JDQoNCY0J3QkAor0JbQldCb0Jgg0KHQmNCb0JLQldCh0KLQldCgCivQltCV0JzQkdCV0KDQmCDQqNCQ0J3QlNCe0KAKK9CW0JXQnNCR0JXQoNCYINCI0J7QodCY0J8KK9CW0JXQnNCR0JXQoNCYINCg0J7QkdCV0KDQogor0JbQldCc0JHQldCg0Jgg0KDQntCR0JXQoNCiCivQltCV0J3QldCgINCa0JDQoNCb0J4KK9CW0JXQndCY0JvQniDQkdCe0JbQmNCU0JDQoAor0JbQldCg0JDQiNCY0Isg0JPQkNCS0KDQmNCb0J4KK9CW0JXQoNCQ0JLQmNCm0JAg0JTQkNCc0IjQkNCdCivQltCV0KDQkNCS0JjQptCQINCc0JjQm9CQ0JTQmNCdCivQltCV0KDQkNCS0JjQptCQINCd0JDQlNCQCivQltCV0KDQkNCS0JjQptCQINCh0KLQkNCd0J7QiNCVCivQltCV0KDQkNCS0InQldCSINCY0JvQmNCI0JAKK9CW0JXQoNCY0Isg0JjQoNCc0JAKK9CW0JXQodCi0JjQiyDQqNCi0JXQpNCQ0J3QmNCI0JAKK9CW0JjQltCQINCd0JDQlNCQCivQltCY0JbQkNCa0JjQiyDQodCQ0JLQkAor0JbQmNCW0JDQmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JbQmNCW0JDQmtCe0JIg0JrQkNCi0JjQptCQCivQltCY0JbQkNCa0J7QkiDQnNCY0JvQntCoCivQltCY0JbQkNCa0J7QkiDQn9CQ0JLQm9CVCivQltCY0JbQkNCa0J7QkiDQktCV0JvQmNCd0JrQkAor0JbQmNCW0JDQmtCe0JIg0JLQmNCi0J7QnNCY0KAKK9CW0JjQltCQ0JrQntCSINCS0JvQkNCU0JAKK9CW0JjQltCQ0JrQntCSINCS0JvQkNCU0JjQnNCY0KAKK9CW0JjQltCY0Isg0KfQldCU0J7QnNCY0KAKK9CW0JjQltCY0Isg0JDQndCC0JXQm9CY0IjQkAor0JbQmNCW0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CW0JjQltCY0Isg0JTQoNCQ0JPQkNCdCivQltCY0JbQmNCLINCc0JjQm9Ce0KDQkNCUCivQltCY0JbQmNCLINCS0JXQodCV0JvQmNCdCivQltCY0JbQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JbQmNCR0KDQldCTINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQltCY0JHQoNCV0JMg0JjQktCQ0J3QkAor0JbQmNCU0JXQmiDQiNCe0KHQmNCfCivQltCY0JTQmNCo0JjQiyDQl9Ce0KDQkNCdCivQltCY0JPQkCDQiNCV0JvQldCd0JAKK9CW0JjQk9CQINCa0JDQoNCb0J4KK9CW0JjQk9CQINCc0JjQoNCa0J4KK9CW0JjQk9CQINCc0KPQodCi0JDQpNCQCivQltCY0JPQkNCb0JDQpiDQktCV0KDQntCd0JAKK9CW0JjQk9CY0Isg0JHQntCT0JTQkNCdCivQltCY0JPQmNCLINCR0KDQkNCd0JrQngor0JbQmNCT0JjQiyDQlNCQ0J3QmNCm0JAKK9CW0JjQk9CY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQltCY0JPQmNCLINCU0KPQqNCQ0J0KK9CW0JjQk9CY0Isg0IjQo9Cb0JjQiNCQCivQltCY0JPQmNCLINCJ0KPQkdCY0KjQkAor0JbQmNCT0JjQiyDQnNCY0JvQkNCdCivQltCY0JPQmNCLINCc0JjQm9CQ0J0KK9CW0JjQk9CY0Isg0JzQmNCb0JDQnQor0JbQmNCT0JjQiyDQnNCY0JvQldCS0JAKK9CW0JjQk9CY0Isg0JzQmNCb0JrQkAor0JbQmNCT0JjQiyDQnNCY0KDQmtCeCivQltCY0JPQmNCLINCd0JXQlNCV0InQmtCeCivQltCY0JPQmNCLINCd0JjQmtCe0JvQkAor0JbQmNCT0JjQiyDQn9CV0KLQkNCgCivQltCY0JPQmNCLINCf0JXQotCQ0KAKK9CW0JjQk9CY0Isg0J/QldCi0JDQoAor0JbQmNCT0JjQiyDQoNCQ0JTQlQor0JbQmNCT0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQltCY0JPQmNCLINCh0JDQktCa0JAKK9CW0JjQk9CY0Isg0JLQntCI0JjQnQor0JbQmNCT0JzQntCd0JQg0JHQldCb0JAKK9CW0JjQk9Cc0J7QndCUINCR0KDQkNCd0JrQkAor0JbQmNCT0KDQkNCYINCC0J7QoNCC0JUKK9CW0JjQk9Cg0JDQmCDQmNCo0KLQktCQ0J0g0JzQoAor0JbQmNCT0KDQkNCYINCI0J7QktCQ0J0KK9CW0JjQk9Cg0Jgg0IjQntCh0JjQnwor0JbQmNCT0KDQmCDQidCj0JHQmNCm0JAKK9CW0JjQk9Cg0Jgg0JzQmNCg0JrQngor0JbQmNCT0KPQoNCh0JrQmCDQn9CQ0JLQm9CVCivQltCY0KXQkCDQnNCQ0KDQmNCI0JAKK9CW0JjQpdCb0JDQktCh0JrQmCDQiNCj0JvQmtCQCivQltCY0IjQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9CW0JjQmtCY0Isg0ILQntCg0ILQlQor0JbQmNCa0JjQiyDQgtCe0KDQgtCVCivQltCY0JrQmNCLINCC0J7QoNCC0JUKK9CW0JjQmtCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQmtCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQltCY0JrQmNCLINCU0J7QkdCg0JjQm9CQCivQltCY0JrQmNCLINCU0KDQkNCT0JDQnQor0JbQmNCa0JjQiyDQlNCj0KjQkNCdCivQltCY0JrQmNCLINCI0J7QktCQ0J3QmtCQCivQltCY0JrQmNCLINCI0J7QktCQ0J0KK9CW0JjQmtCY0Isg0IjQntCS0JDQnQor0JbQmNCa0JjQiyDQmtCQ0KLQmNCm0JAKK9CW0JjQmtCY0Isg0InQo9CR0JjQptCQCivQltCY0JrQmNCLINCc0JDQoNCY0KbQkAor0JbQmNCa0JjQiyDQnNCQ0KDQmNCI0JAKK9CW0JjQmtCY0Isg0JzQmNCl0JDQiNCb0J4KK9CW0JjQmtCY0Isg0JzQmNCb0JDQnQor0JbQmNCa0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCgCivQltCY0JrQmNCLINCd0JXQktCV0J3QkAor0JbQmNCa0JjQiyDQndCY0JrQntCb0JAKK9CW0JjQmtCY0Isg0J3QmNCa0J7Qm9CQCivQltCY0JrQmNCLINCe0JvQk9CQCivQltCY0JrQmNCLINCe0JvQmNCS0JXQoNCQCivQltCY0JrQmNCLINCg0JDQlNCY0JLQntCICivQltCY0JrQmNCLINCg0JDQlNCe0JzQmNCgCivQltCY0JrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CW0JjQmtCY0Isg0KHQntCk0JjQiNCQCivQltCY0JrQmNCLINCi0JDQnNCQ0KDQkAor0JbQmNCa0JjQiyDQotCY0KXQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9CW0JjQmtCY0Isg0KLQntCU0J7QoAor0JbQmNCa0JjQiyDQktCQ0KHQkAor0JbQmNCa0JjQiy3QktCQ0KHQmNCLINCi0JDQnNCQ0KDQkAor0JbQmNCa0JjQiyDQktCV0JvQmNCc0JjQoAor0JbQmNCa0JjQiyDQktCV0KDQkAor0JbQmNCa0JjQiyDQktCV0KDQmNCm0JAKK9CW0JjQmtCY0Isg0JLQmNCi0J7QnNCY0KAKK9CW0JjQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JbQmNCa0J7QktCY0Isg0J3QldCd0JDQlAor0JbQmNCb0JXQktCh0JrQmCDQmtCg0KHQotCeCivQltCY0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQltCY0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CW0JjQm9CY0Isg0KHQotCe0IjQkNCdCivQltCY0JvQndCY0Jog0ILQo9Cg0JAKK9CW0JjQm9Cd0JjQmiDQgtCj0KDQkAor0JbQmNCb0J3QmNCaINCf0JDQktCb0JUg0JTQmNCf0Jsg0JjQndCTCivQltCY0JvQndCY0Jot0J/QldCi0KDQntCS0JjQiyDQltCV0JvQmNCc0JjQoAor0JbQmNCd0JjQiyDQnNCQ0KDQmNCd0JAKK9CW0JjQoNCQ0JLQkNCmINCh0KLQldCS0JDQnQor0JbQmNCg0JrQkCDQn9CQ0JLQldCbCivQltCY0KDQntCoINCc0JjQoNCe0J0KK9CW0JjQoNCe0JLQndCY0Jog0JDQndCi0J7QnQor0JbQmNCS0KfQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CW0JjQktCQ0InQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQltCY0JLQkNCJ0JXQktCY0Isg0JPQntCg0JDQnQor0JbQmNCS0JDQidCV0JLQmNCLINCe0JvQk9CQCivQltCY0JLQkNCJ0JXQktCY0Isg0KHQotCQ0J3QkAor0JbQmNCS0JDQndCn0JXQkiDQmNCb0JjQiNCQCivQltCY0JLQkNCd0KfQldCSINCI0J7QktCQ0J0KK9CW0JjQktCQ0J3Qp9CV0JIg0JrQkNCh0JAg0JTQmNCf0Jsg0JjQndCTCivQltCY0JLQkNCd0KfQldCSINCc0JjQmtCQCivQltCY0JLQkNCd0KfQldCSINCc0JjQm9CQ0J0KK9CW0JjQktCQ0J3Qp9CV0JIg0JzQmNCb0JDQnQor0JbQmNCS0JDQndCn0JXQkiDQn9CQ0IjQkAor0JbQmNCS0JDQndCn0JXQkiDQoNCQ0JTQkAor0JbQmNCS0JDQndCn0JXQkiDQoNCQ0J3QmtCeCivQltCY0JLQkNCd0KfQldCSINCh0KLQldCS0JDQnQor0JbQmNCS0JDQndCn0JXQkiDQodCi0KDQkNCl0JjQitCQCivQltCY0JLQkNCd0KfQldCS0JjQiyDQm9CQ0JfQkNCgCivQltCY0JLQkNCd0KfQldCS0JjQiyDQnNCY0InQmtCeCivQltCY0JLQkNCd0KfQldCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCgCivQltCY0JLQkNCd0KfQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQltCY0JLQkNCd0KfQldCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JbQmNCS0JDQndCQ0KYg0JTQldCI0JDQnQor0JbQmNCS0JDQndCQ0KYg0JTQldCI0JDQnQor0JbQmNCS0JDQndCQ0KYg0JvQkNCX0JDQoAor0JbQmNCS0JDQndCQ0KYg0JfQntCg0JjQptCQCivQltCY0JLQkNCd0JjQiyDQgtCe0JrQkAor0JbQmNCS0JDQndCY0Isg0JzQmNCl0JDQiNCb0J4KK9CW0JjQktCQ0J3QmNCLINCc0JjQm9CQ0J0KK9CW0JjQktCQ0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQltCY0JLQkNCd0JjQiyDQnNCY0KLQkNCgCivQltCY0JLQkNCd0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JbQmNCS0JDQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JbQmNCS0JDQndCY0Isg0JfQntCg0JDQnQor0JbQmNCS0JDQndCa0JjQiyDQldCS0JjQptCQCivQltCY0JLQkNCd0JrQntCSINCY0JPQitCQ0KIKK9CW0JjQktCQ0J3QntCSINCW0JDQoNCa0J4KK9CW0JjQktCQ0J3QntCSINCW0JjQktCQ0J0KK9CW0JjQktCQ0J3QntCSINCW0JjQktCa0J4KK9CW0JjQktCQ0J3QntCSINCQ0J3QgtCV0JvQmNCI0JAKK9CW0JjQktCQ0J3QntCSINCR0J7Qk9Ce0InQo9CRCivQltCY0JLQkNCd0J7QkiDQkdCg0JDQndCa0J4KK9CW0JjQktCQ0J3QntCSINCU0JDQndCY0KbQkAor0JbQmNCS0JDQndCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQltCY0JLQkNCd0J7QkiDQlNCe0JHQoNCY0JvQkAor0JbQmNCS0JDQndCe0JIg0JTQntCR0KDQmNCS0J7QiAor0JbQmNCS0JDQndCe0JIg0JTQoNCQ0JPQntCI0JvQkAor0JbQmNCS0JDQndCe0JIg0JTQoNCQ0JPQntCh0JvQkNCSCivQltCY0JLQkNCd0J7QkiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CW0JjQktCQ0J3QntCSINCU0KPQqNCQ0J0KK9CW0JjQktCQ0J3QntCSINCT0J7QoNCe0KHQm9CQ0JLQkAor0JbQmNCS0JDQndCe0JIg0IjQo9Ch0KLQmNCd0JAKK9CW0JjQktCQ0J3QntCSINCb0JDQl9CQ0KAKK9CW0JjQktCQ0J3QntCSINCb0JDQl9CQ0KAKK9CW0JjQktCQ0J3QntCSINCb0JXQn9Ce0KHQkNCS0JAKK9CW0JjQktCQ0J3QntCSINCJ0KPQkdCY0KbQkAor0JbQmNCS0JDQndCe0JIg0JzQkNCT0JTQkAor0JbQmNCS0JDQndCe0JIg0JzQkNCa0KHQmNCdCivQltCY0JLQkNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9CW0JjQktCQ0J3QntCSINCc0JDQoNCY0IjQkAor0JbQmNCS0JDQndCe0JIg0JzQkNCg0JjQiNCQCivQltCY0JLQkNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9CW0JjQktCQ0J3QntCSINCc0JjQm9CQ0J0KK9CW0JjQktCQ0J3QntCSINCc0JjQm9CV0KLQkAor0JbQmNCS0JDQndCe0JIg0JzQmNCb0JjQktCe0IgKK9CW0JjQktCQ0J3QntCSINCc0JjQm9Ce0KgKK9CW0JjQktCQ0J3QntCSINCc0JjQm9Ce0KgKK9CW0JjQktCQ0J3QntCSINCc0JjQm9Ce0KDQkNCUCivQltCY0JLQkNCd0J7QkiDQnNCY0J7QlNCg0JDQkwor0JbQmNCS0JDQndCe0JIg0JzQmNCe0JzQmNCgCivQltCY0JLQkNCd0J7QkiDQnNCY0KLQkAor0JbQmNCS0JDQndCe0JIg0JzQm9CQ0JTQldCdCivQltCY0JLQkNCd0J7QkiDQnNCb0JDQlNCV0J0KK9CW0JjQktCQ0J3QntCSINCc0JvQkNCU0JXQnQor0JbQmNCS0JDQndCe0JIg0JzQntCc0JjQoAor0JbQmNCS0JDQndCe0JIg0J3QkNCi0JDQqNCQCivQltCY0JLQkNCd0J7QkiDQndCY0JrQntCb0JAKK9CW0JjQktCQ0J3QntCSINCf0JDQktCY0KbQkAor0JbQmNCS0JDQndCe0JIg0J/QkNCS0JvQlQor0JbQmNCS0JDQndCe0JIg0J/QkNCS0JvQlQor0JbQmNCS0JDQndCe0JIg0J/QkNCS0JvQlQor0JbQmNCS0JDQndCe0JIg0J/QkNCS0JvQlQor0JbQmNCS0JDQndCe0JIg0KDQkNCU0JjQqNCQCivQltCY0JLQkNCd0J7QkiDQoNCQ0IjQmtCeCivQltCY0JLQkNCd0J7QkiDQodCQ0JLQkAor0JbQmNCS0JDQndCe0JIg0KHQm9CQ0JLQmtCeCivQltCY0JLQkNCd0J7QkiDQodCg0ILQkNCdCivQltCY0JLQkNCd0J7QkiDQodCg0JHQmNCh0JvQkNCSCivQltCY0JLQkNCd0J7QkiDQodCi0JDQndCY0KHQm9CQ0JIKK9CW0JjQktCQ0J3QntCSINCh0JLQldCi0J7Ql9CQ0KAKK9CW0JjQktCQ0J3QntCSINCi0J7QlNCe0KAKK9CW0JjQktCQ0J3QntCSINCi0J7QnNCY0KHQm9CQ0JIKK9CW0JjQktCQ0J3QntCSINCi0KPQk9Ce0JzQmNCgCivQltCY0JLQkNCd0J7QkiDQktCV0JvQmNCc0JjQoAor0JbQmNCS0JDQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JbQmNCS0JDQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JbQmNCS0JDQndCe0JIg0JLQntCI0JjQodCb0JDQkgor0JbQmNCS0JDQndCe0JIg0JfQm9CQ0KLQmNCd0JrQkAor0JbQmNCS0JDQndCe0JLQmNCLINCW0JDQoNCa0J4KK9CW0JjQktCQ0J3QntCS0JjQiyDQltCY0JrQkAor0JbQmNCS0JDQndCe0JLQmNCLINCW0JjQktCQ0J0KK9CW0JjQktCQ0J3QntCS0JjQiyDQltCY0JLQntCI0JjQnSDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JbQmNCS0JDQndCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQltCY0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JbQmNCS0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQltCY0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JjQiNCQCivQltCY0JLQkNCd0J7QktCY0Isg0JDQndCa0JjQptCQCivQltCY0JLQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0JbQmNCS0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9CW0JjQktCQ0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CW0JjQktCQ0J3QntCS0JjQiyDQkdCe0KDQmtCQCivQltCY0JLQkNCd0J7QktCY0Isg0JHQo9CU0JjQnNCa0JAKK9CW0JjQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JbQmNCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CW0JjQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CW0JjQktCQ0J3QntCS0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQltCY0JLQkNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQltCY0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JbQmNCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CW0JjQktCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQltCY0JLQkNCd0J7QktCY0Ist0JvQldCoINCU0KPQqNCY0KbQkAor0JbQmNCS0JDQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JbQmNCS0JDQndCe0JLQmNCLINCc0JDQoNCY0KbQkAor0JbQmNCS0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JbQmNCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CW0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JbQmNCS0JDQndCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQltCY0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JbQmNCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQltCY0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CW0JjQktCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCgCivQltCY0JLQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CW0JjQktCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JbQmNCS0JDQndCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQltCY0JLQkNCd0J7QktCY0Isg0J3QntCS0JjQptCQCivQltCY0JLQkNCd0J7QktCY0Isg0J7QkdCg0JDQlAor0JbQmNCS0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CW0JjQktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQltCY0JLQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JbQmNCS0JDQndCe0JLQmNCLINCg0JDQlNCQCivQltCY0JLQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CW0JjQktCQ0J3QntCS0JjQiyDQodCb0JDQktCa0JAKK9CW0JjQktCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9CW0JjQktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CW0JjQktCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQltCY0JLQkNCd0J7QktCY0Isg0JLQmNCU0J7QiNCVCivQltCY0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JbQmNCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JbQmNCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CW0JjQktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQltCY0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JbQmNCS0JDQndCe0JLQmNCLINCX0J7QoNCa0JAKK9CW0JjQktCY0Isg0ILQntCg0ILQlQor0JbQmNCS0JjQiyDQgtCe0KDQgtCVCivQltCY0JLQmNCLINCR0J7QltCY0JTQkNCgCivQltCY0JLQmNCLINCT0JDQktCg0JAKK9CW0JjQktCY0Isg0IjQldCk0KLQkAor0JbQmNCS0JjQiyDQiNCV0JvQmNCm0JAKK9CW0JjQktCY0Isg0IjQntCS0JDQnQor0JbQmNCS0JjQiyDQm9CQ0JfQkNCgCivQltCY0JLQmNCLINCJ0KPQkdCY0KbQkAor0JbQmNCS0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQltCY0JLQmNCLINCh0JDQktCQCivQltCY0JLQmNCLINCh0JDQktCQCivQltCY0JLQmNCLINCh0JzQmNCJ0JAKK9CW0JjQktCY0Isg0KHQn9CQ0KHQntCI0JUKK9CW0JjQktCY0Isg0JLQldCb0JjQkdCe0KAKK9CW0JjQktCY0Isg0JLQmNCd0JrQkCDQlNCgCivQltCY0JLQmNCLINCX0J7QoNCa0JAKK9CW0JjQktCY0J0g0J3QkNCU0JAKK9CW0JjQktCa0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CW0JjQktCa0JjQiyDQodCi0JXQktCQ0J0KK9CW0JjQktCa0J7QkiDQgtCe0KDQgtCVCivQltCY0JLQmtCe0JIg0JDQndCC0JXQm9Ca0JAKK9CW0JjQktCa0J7QkiDQkNCd0ILQldCb0JrQkAor0JbQmNCS0JrQntCSINCR0J7QoNCY0KHQm9CQ0JLQkAor0JbQmNCS0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JbQmNCS0JrQntCSINCU0KDQkNCT0JjQitCQCivQltCY0JLQmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JbQmNCS0JrQntCSINCU0KPQqNCa0J4KK9CW0JjQktCa0J7QkiDQldCh0KLQldCgCivQltCY0JLQmtCe0JIg0JPQoNCQ0JTQmNCc0JjQoAor0JbQmNCS0JrQntCSINCY0JLQkNCdCivQltCY0JLQmtCe0JIg0JrQntCh0KLQkAor0JbQmNCS0JrQntCSINCc0JDQoNCa0J4KK9CW0JjQktCa0J7QkiDQnNCV0JvQkNCd0JjQiNCQCivQltCY0JLQmtCe0JIg0J3QldCd0JDQlAor0JbQmNCS0JrQntCSINCf0JDQktCb0JUKK9CW0JjQktCa0J7QkiDQoNCQ0JTQntCI0JrQkAor0JbQmNCS0JrQntCSINCh0JDQktCQCivQltCY0JLQmtCe0JIg0KHQkNCS0JAKK9CW0JjQktCa0J7QkiDQodCb0JDQktCa0J4KK9CW0JjQktCa0J7QkiDQodCb0JDQktCa0J4KK9CW0JjQktCa0J7QkiDQktCQ0KHQkAor0JbQmNCS0JrQntCS0JjQiyDQp9CQ0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0JbQkNCa0JvQmNCd0JAKK9CW0JjQktCa0J7QktCY0Isg0JbQmNCS0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0JbQmNCS0JrQntCS0JjQiyDQgtCe0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQltCY0JLQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9CW0JjQktCa0J7QktCY0Isg0JDQiNCa0JAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0JDQm9Ce0IjQl9CY0IjQkAor0JbQmNCS0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQkdCb0JDQqNCa0J4KK9CW0JjQktCa0J7QktCY0Isg0JHQntCT0JTQkNCdCivQltCY0JLQmtCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JbQmNCS0JrQntCS0JjQiyDQkdCe0JPQntCc0JjQoAor0JbQmNCS0JrQntCS0JjQiyDQkdCe0JPQntCc0JjQoAor0JbQmNCS0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQltCY0JLQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0JHQntCg0J4KK9CW0JjQktCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQltCY0JLQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0JHQoNCQ0J3QmtCQINCU0KAKK9CW0JjQktCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQltCY0JLQmtCe0JLQmNCLINCU0JDQndCY0JvQngor0JbQmNCS0JrQntCS0JjQiyDQlNCV0IjQkNCdCivQltCY0JLQmtCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JbQmNCS0JrQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CW0JjQktCa0J7QktCY0Isg0JTQntCR0KDQntCh0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQltCY0JLQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAg0JTQoAor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JbQmNCS0JrQntCS0JjQiyDQlNCg0JDQk9CY0IsKK9CW0JjQktCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JbQmNCS0JrQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQltCY0JLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQlNCj0KjQmNCm0JAKK9CW0JjQktCa0J7QktCY0Isg0JPQkNCR0KDQmNCI0JXQm9CQCivQltCY0JLQmtCe0JLQmNCLINCT0JDQkdCg0JjQiNCV0JvQkAor0JbQmNCS0JrQntCS0JjQiyDQk9Ce0KDQkNCdCivQltCY0JLQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQltCY0JLQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9CW0JjQktCa0J7QktCY0Isg0JjQm9CY0IjQkAor0JbQmNCS0JrQntCS0JjQiyDQmNCb0J7QndCa0JAKK9CW0JjQktCa0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQltCY0JLQmtCe0JLQmNCLINCY0JLQmNCm0JAKK9CW0JjQktCa0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAKK9CW0JjQktCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQltCY0JLQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JbQmNCS0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQltCY0JLQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0IjQntCS0JjQptCQCivQltCY0JLQmtCe0JLQmNCLINCI0KPQm9Ca0JAKK9CW0JjQktCa0J7QktCY0Isg0IjQo9Cb0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQiNCj0JvQmtCY0KbQkAor0JbQmNCS0JrQntCS0JjQiyDQmtCe0KHQotCQCivQltCY0JLQmtCe0JLQmNCLINCa0KDQldCo0J4KK9CW0JjQktCa0J7QktCY0Isg0JvQkNCX0JDQoAor0JbQmNCS0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQltCY0JLQmtCe0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9CW0JjQktCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQltCY0JLQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JbQmNCS0JrQntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JbQmNCS0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JbQmNCS0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CW0JjQktCa0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CW0JjQktCa0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9CW0JjQktCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CW0JjQktCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CW0JjQktCa0J7QktCY0Isg0JzQmNCb0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQmtCQCivQltCY0JLQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9CW0JjQktCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JbQmNCS0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JbQmNCS0JrQntCS0JjQiyDQnNCY0KDQp9CV0KLQkAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JbQmNCS0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQltCY0JLQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JbQmNCS0JrQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JbQmNCS0JrQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JbQmNCS0JrQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JbQmNCS0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9CW0JjQktCa0J7QktCY0Isg0J7QkdCg0JDQlAor0JbQmNCS0JrQntCS0JjQiyDQn9CQ0JLQm9CVCivQltCY0JLQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0J/QldCi0JDQoAor0JbQmNCS0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQltCY0JLQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0JUKK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0J4KK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQltCY0JLQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQltCY0JLQmtCe0JLQmNCLINCg0J7QodCQCivQltCY0JLQmtCe0JLQmNCLINCg0KPQltCY0KbQkAor0JbQmNCS0JrQntCS0JjQiyDQodCQ0KjQkAor0JbQmNCS0JrQntCS0JjQiyDQodCQ0JLQkAor0JbQmNCS0JrQntCS0JjQiyDQodCQ0JLQkAor0JbQmNCS0JrQntCS0JjQiyDQodCQ0JLQkAor0JbQmNCS0JrQntCS0JjQiyDQodCQ0JLQkAor0JbQmNCS0JrQntCS0JjQiyDQodCY0J3QmNCo0JAKK9CW0JjQktCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQltCY0JLQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0JbQmNCS0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9CW0JjQktCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnSDQlNCgCivQltCY0JLQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0KHQnNCY0InQmtCQCivQltCY0JLQmtCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQltCY0JLQmtCe0JLQmNCLINCh0KDQldCi0JXQnQor0JbQmNCS0JrQntCS0JjQiyDQodCi0JDQnNCV0J3QmtCeCivQltCY0JLQmtCe0JLQmNCLINCh0KLQldCf0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JbQmNCS0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQltCY0JLQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQltCY0JLQmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CW0JjQktCa0J7QktCY0Isg0KLQkNCd0JDQodCY0IjQlQor0JbQmNCS0JrQntCS0JjQiyDQotCY0J3QmtCQCivQltCY0JLQmtCe0JLQmNCLINCi0J7QqNCQCivQltCY0JLQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JbQmNCS0JrQntCS0JjQiyDQktCV0JrQntCh0JvQkNCSCivQltCY0JLQmtCe0JLQmNCLINCS0JXQoNCQCivQltCY0JLQmtCe0JLQmNCLINCS0JXQoNCQCivQltCY0JLQmtCe0JLQmNCLINCS0JjQlNCe0IjQmtCeCivQltCY0JLQmtCe0JLQmNCLINCS0JvQkNCU0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQltCY0JLQmtCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0JbQmNCS0JrQntCS0JjQiyDQktCe0IjQmNCdCivQltCY0JLQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CW0JjQktCa0J7QktCY0Isg0JfQlNCV0J3QmtCQCivQltCY0JLQmtCe0JLQmNCLINCX0JTQldCd0JrQngor0JbQmNCS0JrQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JbQmNCS0JrQntCS0JjQiyDQl9Cb0JDQotCe0JzQmNCgCivQltCY0JLQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JfQntCg0JDQnQor0JbQmNCS0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQltCY0JLQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CW0JjQktCa0J7QktCY0Isg0JfQntCg0JDQnQor0JbQmNCS0JrQntCS0InQldCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQltCY0JLQmtCj0KbQmNCdINCc0JjQoNCe0KHQm9CQ0JLQkAor0JbQmNCS0JrQo9Cm0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQltCY0JLQndCYINCQ0J3QkAor0JbQmNCS0J3QmCDQpNCg0JDQitCQCivQltCY0JLQntCI0JjQndCe0JIg0JHQntCg0JjQktCe0IgKK9CW0JjQktCe0IjQmNCd0J7QkiDQidCj0JHQmNCm0JAKK9CW0JjQktCe0IjQmNCd0J7QkiDQnNCY0JvQntCS0JDQnQor0JbQmNCS0J7QiNCY0J3QntCSINCg0JDQlNCY0JLQntCICivQltCY0JLQntCI0JjQndCe0JLQmNCLINCg0J7Ql9CQ0JvQmNCI0JAKK9CW0JjQktCe0IjQmNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JbQmNCS0J7QiNCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CW0JjQktCe0IjQndCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JbQmNCS0J7QiNCd0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9CW0JjQktCe0IjQndCe0JLQmNCLINCh0JDQitCQCivQltCY0JLQntCI0J3QntCS0JjQiyDQodCg0ILQkNCdINCU0KAg0JvQldCa0JDQoAor0JbQmNCS0J7QiNCd0J7QktCY0Isg0JfQntCg0JrQkAor0JbQmNCS0J7QotCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JbQmNCS0J7QotCY0Isg0JTQo9Co0JDQnQor0JbQmNCS0J7QotCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQltCY0JLQntCi0JjQiyDQodCi0JXQktCQ0J0KK9CW0JjQktCe0KLQmNCLINCS0JXQm9CY0JzQmNCgCivQltCY0JLQntCi0JjQnSDQnNCQ0KDQmNCm0JAKK9CW0JjQktCe0KLQmNCdINCc0JjQotCQ0KAKK9CW0JzQo9Ca0JjQiyDQkdCg0JDQndCa0J4KK9CW0JzQo9Ca0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JbQnNCj0JrQmNCLINCd0JjQmtCe0JvQkAor0JbQndCY0JTQkNCg0KjQmNCLINCY0JPQndCQ0KYKK9CW0J3QmNCU0JDQoNCV0KYg0JjQktCQ0J0KK9CW0J3QmNCU0JDQoNCV0KYg0JjQktCQ0J0KK9CW0J7Qm9Cm0JXQoCDQpNCV0KDQldCd0KYKK9CW0J7Qm9Cm0JXQoCDQktCY0JvQnNCe0KgKK9CW0J7QidCe0Jwg0JrQm9CQ0KDQkAor0JbQntCJ0J7QnCDQnNCY0KDQiNCQ0J3QkAor0JbQntCg0JYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CW0J7QoNCY0Isg0KTQmNCb0JjQnwor0JbQo9CW0JAg0JzQmNCg0JrQngor0JbQo9CR0J7QoNCYINCc0JjQm9CV0J3QkAor0JbQo9CT0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQltCj0JPQmNCLINCa0KDQodCi0J4KK9CW0KPQk9CY0Isg0JzQkNCg0JjQiNCQCivQltCj0JPQmNCLINCc0JjQm9CY0IjQkAor0JbQo9CT0JjQiyDQnNCY0JvQmNCh0JDQkgor0JbQo9CT0JjQiyDQnNCY0JvQntCg0JDQlAor0JbQo9CT0JjQiyDQnNCY0KDQmtCeCivQltCj0JPQmNCLINCg0JDQlNCe0IjQmtCQCivQltCj0JPQmNCLINCg0JDQotCa0J4KK9CW0KPQk9CY0Ist0KDQmNCI0JDQktCV0KYg0KHQmNCb0JLQmNCI0JAKK9CW0KPQk9CY0Isg0KHQotCQ0J3QmNCo0JAKK9CW0KPQk9CY0Isg0KHQotCQ0J3QmtCeCivQltCj0IjQmNCLINCc0J7QnNCY0KAKK9CW0KPQiNCY0Isg0KHQm9CQ0JLQmtCeCivQltCj0IjQniDQnNCQ0KDQiNCQ0J0KK9CW0KPQnNCR0JXQoNCa0J7QktCY0Isg0ILQntCg0ILQlSDQnNCgCivQltCj0J3QkNCmINCI0KPQm9Ca0JAKK9CW0KPQndCQ0KYg0KLQntCc0JjQodCb0JDQkgor0JbQo9Cd0JPQo9CbINCh0JzQmNCJ0JAKK9CW0KPQndCY0Isg0JHQntCo0JrQngor0JbQo9Cd0JjQiyDQlNCQ0KDQmtCeCivQltCj0J3QmNCLINCI0J7QktCY0KjQkAor0JbQo9Cd0JjQiyDQnNCY0JvQkNCdCivQltCj0J3QmNCLINCc0JjQm9CV0J3QmtCeCivQltCj0J3QmNCLINCc0JjQm9CY0IjQkNCdCivQltCj0J3QmNCLINCc0J7QnNCn0JjQm9CeCivQltCj0J3QmNCLINCd0JXQndCQ0JQKK9CW0KPQndCY0Ist0J/QntCf0J7QkiDQodCd0JXQltCQ0J3QkAor0JbQo9Cd0JjQiyDQoNCQ0JTQkAor0JbQo9Cd0JjQiyDQodCY0JzQkAor0JbQo9Cd0JjQiyDQodCe0IrQkAor0JbQo9Cd0JjQiyDQktCV0JvQmNCc0JjQoAor0JbQo9CK0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQltCj0J3QotCV0KAg0JDQndCi0KPQnSDQlNCY0J/QmyDQmNCd0JMKK9CW0KPQndCi0JXQoCDQkdCe0JbQkNCd0JAKK9CW0KPQn9CQ0J0g0JXQlNCj0JDQoNCUCivQltCj0J/QkNCdINCc0JjQoNCa0J4KK9CW0KPQn9CQ0J3Qp9CY0Isg0JzQkNCg0JPQkNCg0JXQotCQCivQltCj0J/QkNCd0JXQpiDQkNCb0JHQldCg0KIg0JTQoAor0JbQo9Cf0JDQndCV0KYg0JrQodCV0J3QmNCI0JAKK9CW0KPQn9CQ0J3QldCmINCc0JjQoNCQCivQltCj0J/QkNCd0JXQpiDQnNCY0KDQkAor0JbQo9Cf0JDQoNCY0Isg0JLQmNCa0KLQntCgCivQltCj0J/QmNCLINCQ0J3QotCVCivQltCj0J/QmNCLINCU0JDQndCVCivQltCj0J/QmNCLINCU0KDQkNCT0JjQptCQCivQltCj0J/QmNCLINCc0JjQiNCeCivQltCj0J/Qo9Cd0KHQmtCYINCW0JDQoNCa0J4KK9CW0KPQn9Cj0J3QodCa0Jgg0JbQmNCS0J7QoNCQ0JQKK9CW0KPQn9Cj0J3QodCa0Jgg0JPQntCI0JrQngor0JbQo9Cf0KPQndCh0JrQmCDQk9Cg0J7Ql9CU0JDQndCQCivQltCj0J/Qo9Cd0KHQmtCYINCT0KDQo9CI0JjQptCQCivQltCj0J/Qo9Cd0KHQmtCYINCl0JXQm9CV0J3QkAor0JbQo9Cf0KPQndCh0JrQmCDQmNCS0JDQnQor0JbQo9Cf0KPQndCh0JrQmCDQnNCQ0KDQmNCd0JrQngor0JbQo9Cf0KPQndCh0JrQmCDQodCi0JXQktCQ0J0KK9CW0KPQn9Cj0J3QodCa0Jgg0JLQldCh0JXQm9CY0J3QmtCQCivQltCj0KDQltCV0JLQmNCLINCm0JLQldCi0JrQngor0JbQo9Cg0JbQmNCd0J7QktCY0Isg0JrQntCh0KLQkAor0JbQo9Cg0JbQntCS0JDQnSDQm9CY0JAKK9CW0KPQoNCW0J7QktCQ0J0g0J3QldCb0KMKK9CW0KPQoNCW0J7QktCQ0J0g0KLQoNCQ0J3QlNCQ0KTQmNCgCivQltCj0KDQltCj0Jsg0JHQntCo0JrQngor0JbQo9Cg0JbQo9CbINCh0KLQkNCd0J7QiNCVCivQltCj0KDQmNCLINCc0JjQpdCQ0JjQm9CeCivQltCj0KDQmNCLINCS0JDQodCeCivQltCj0KDQmtCQINCQ0KPQoNCe0KDQkAor0JbQo9Ci0JjQiyDQnNCY0JvQmtCQCivQltCj0KLQmNCLINCf0JXQotCQ0KAKK9CW0KPQotCY0Isg0KHQotCV0JLQngor0ILQkNCn0JDQndCY0J0g0KDQkNCU0J7QktCQ0J0KK9CC0JDQp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0ILQkNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0ILQkNCI0JjQiyDQltCQ0KDQmtCeCivQgtCQ0IjQmNCLINCW0JXQidCa0J4KK9CC0JDQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CC0JDQiNCY0Isg0JHQntCT0JTQkNCdCivQgtCQ0IjQmNCLINCI0JXQm9CV0J3QmtCeCivQgtCQ0IjQmNCLLdCI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCQCivQgtCQ0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCQ0IjQmNCLINCd0JDQlNCQCivQgtCQ0IjQmNCLINCd0JXQktCV0J3QkAor0ILQkNCI0JjQiyDQndCY0JrQntCb0JAKK9CC0JDQiNCY0Isg0JLQldCJ0JrQngor0ILQkNCI0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0ILQkNCa0J7QndCe0JIg0JzQmNCb0JrQkAor0ILQkNCa0J7QndCe0JIg0KHQotCV0JLQkNCdCivQgtCQ0JrQntCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CC0JDQmtCe0J3QntCS0JjQiyDQodCb0JDQktCY0KbQkAor0ILQkNCa0J7QndCe0JLQmNCLINCh0KLQldCS0JDQnQor0ILQkNCa0J7QkiDQidCY0InQkNCd0JAKK9CC0JDQmtCe0JIg0JzQmNCl0JDQiNCb0J4KK9CC0JDQmtCe0JIg0JzQmNCb0JDQnQor0ILQkNCa0J7QktCY0Isg0JbQmNCS0JrQkAor0ILQkNCa0J7QktCY0Isg0ILQntCg0ILQlSDQlNCgCivQgtCQ0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQgtCQ0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQgtCQ0JrQntCS0JjQiyDQgtCj0KDQkAor0ILQkNCa0J7QktCY0Isg0ILQo9Cg0J4KK9CC0JDQmtCe0JLQmNCLINCC0KPQoNCeCivQgtCQ0JrQntCS0JjQiyDQkNCd0JrQkAor0ILQkNCa0J7QktCY0Isg0JTQkNCg0JAKK9CC0JDQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0ILQkNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCQ0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRINCU0KAKK9CC0JDQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CC0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CC0JDQmtCe0JLQmNCLINCY0JvQlQor0ILQkNCa0J7QktCY0Isg0JjQm9CY0IjQkAor0ILQkNCa0J7QktCY0Isg0IjQntCa0JAKK9CC0JDQmtCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQgtCQ0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQgtCQ0JrQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9CC0JDQmtCe0JLQmNCLINCI0J7QktCeCivQgtCQ0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoCDQlNCgINCY0J3Qkwor0ILQkNCa0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CC0JDQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0ILQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0ILQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0ILQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0ILQkNCa0J7QktCY0Isg0JzQmNCb0JrQkAor0ILQkNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CC0JDQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQgtCQ0JrQntCS0JjQiyDQndCV0ILQngor0ILQkNCa0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9CC0JDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0ILQkNCa0J7QktCY0Isg0J7QodCi0J7QiNCQCivQgtCQ0JrQntCS0JjQiyDQn9CV0KDQodCY0JTQkAor0ILQkNCa0J7QktCY0Isg0J/QldCi0JDQoAor0ILQkNCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CC0JDQmtCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQgtCQ0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0ILQkNCa0J7QktCY0Isg0KDQkNCU0J7QodCQ0JIKK9CC0JDQmtCe0JLQmNCLINCg0JDQndCa0J4KK9CC0JDQmtCe0JLQmNCLINCh0JDQktCQCivQgtCQ0JrQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0ILQkNCa0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0ILQkNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0ILQkNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQgtCQ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CC0JDQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0ILQkNCa0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9CC0JDQmtCe0JLQmNCLINCS0JDQodCeCivQgtCQ0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQgtCQ0JrQntCS0JjQiyDQktCe0IjQngor0ILQkNCa0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0ILQkNCa0J7QktCY0Isg0JfQntCg0JDQnQor0ILQkNCb0JDQmCDQm9CQ0IjQntCoCivQgtCQ0JvQmNCd0JDQpiDQk9Ce0KDQlNCQ0J3QkAor0ILQkNCb0JjQndCQ0KYg0KDQkNCU0JjQktCe0IgKK9CC0JDQm9CeINCc0JjQoNCa0J4KK9CC0JDQm9Ce0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CC0JDQm9Cj0Kgg0KHQotCV0JLQkNCdCivQgtCQ0J0g0IjQntCS0JDQnQor0ILQkNCd0JjQqCDQm9CQ0JfQkNCgCivQgtCQ0J3QmNCoINCe0JvQmNCS0JXQoNCQCivQgtCQ0J3QmNCLINCc0JDQotCeCivQgtCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9CC0JDQndCi0JDQoCDQkNCd0ILQldCb0JjQiNCQCivQgtCQ0J3QotCQ0KAg0IjQntCW0JXQpAor0ILQkNCf0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CC0JDQn9CQINCU0KPQqNCQ0J0KK9CC0JDQn9CQINCc0JDQoNCa0J4KK9CC0JDQn9CQINCf0JXQotCQ0KAKK9CC0JDQn9CY0Isg0JTQkNCS0JjQlAor0ILQkNCf0JjQiyDQmtCg0KHQotCQCivQgtCQ0J/QmNCLINCc0JjQm9CV0KHQkAor0ILQkNCf0JjQiyDQnNCY0JvQldCh0JAKK9CC0JDQn9CY0Ist0JzQmNCb0JjQiyDQotCQ0KLQiNCQ0J3QkCDQm9CV0JrQkNCgCivQgtCQ0J/QmNCLINCf0JDQktCb0JUKK9CC0JDQoNCc0JDQotCYINCk0KDQkNCK0JAKK9CC0JDQoNCc0JDQotCYINCT0JjQl9CV0JvQkAor0ILQkNCg0JzQkNCi0Jgg0JjQm9Ce0J3QkAor0ILQkNCg0JzQkNCi0Jgg0IjQo9Cb0JjQngor0ILQkNCg0JzQkNCi0Jgg0JvQkNCh0JvQngor0ILQkNCg0JzQkNCi0Jgg0JzQmNCl0JDQiNCb0J4KK9CC0JDQoNCc0JDQotCYINCh0J3QldCW0JDQndCQCivQgtCQ0KLQmtCe0JIg0KDQkNCU0JAKK9CC0JXQkdCd0JDQoCDQntCR0KDQkNCUCivQgtCV0JrQldCgINCg0J7Ql9CQ0JvQmNCI0JAKK9CC0JXQmtCY0Isg0JbQmNCS0J7QiNCY0J0KK9CC0JXQmtCY0Isg0JrQkNCi0JjQptCQCivQgtCV0JrQmNCLINCc0JjQm9CQ0J0KK9CC0JXQmtCY0Isg0JzQmNCb0JXQndCQCivQgtCV0JrQmNCLINCc0JjQm9Ce0JzQmNCgCivQgtCV0JrQmNCLINCd0JDQlNCQCivQgtCV0JrQmNCLINCd0JXQlNCV0InQmtCeCivQgtCV0JrQmNCLINCf0JDQktCb0JUKK9CC0JXQmtCY0Isg0KDQkNCU0JUKK9CC0JXQmtCY0Isg0KDQkNCU0JzQmNCb0JAKK9CC0JXQmtCY0Isg0KHQotCQ0J3QkAor0ILQldCa0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQgtCV0JvQmNCLINCj0KDQntCoCivQgtCV0JzQkdCV0KAg0JjQqNCi0JLQkNCdCivQgtCV0JzQoNCe0JLQodCa0Jgg0KLQntCc0JDQqAor0ILQldCc0KDQntCS0KHQmtCYINCS0JvQkNCi0JrQngor0ILQldCc0KDQntCS0KHQmtCYINCX0JTQldCd0JrQngor0ILQldCd0JDQlNCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CC0JXQndCQ0JTQmNCI0JAg0J/QldCi0JDQoAor0ILQldCd0JTQmNCLINCI0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQgtCV0J3QlNCY0Isg0JvQkNCX0JDQoAor0ILQldCd0JXQqCDQn9CV0KLQkNCgCivQgtCV0J3Qk9CVINCQ0J3QlNCg0JDQqAor0ILQldCd0JPQlSDQkNCd0JTQoNCY0IjQkAor0ILQldCd0JPQlSDQn9CV0KLQldCgCivQgtCV0J3QmNCLINCI0JXQm9CV0J3QkAor0ILQldCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQgtCV0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CC0JXQndCY0Isg0JfQntCg0JjQptCQCivQgtCV0J3QmNCh0JjQiyDQodCi0JDQndCY0JzQmNCgCivQgtCV0KDQgiDQgtCj0KDQkAor0ILQldCg0IIg0JDQndCi0KPQnQor0ILQldCg0IIg0JjQk9Ce0KAKK9CC0JXQoNCCINCI0J7QodCY0J8KK9CC0JXQoNCCINCa0JDQotCQ0KDQmNCd0JAKK9CC0JXQoNCCINCJ0KPQkdCY0KbQkAor0ILQldCg0IIg0J/QldCi0JDQoAor0ILQldCg0IIg0JLQmNCb0JzQntCoCivQgtCV0KDQlSDQmtCe0KDQndCV0JsKK9CC0JXQoNCVINCX0J7Qm9Ci0JDQnQor0ILQldCg0KTQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQldCg0Jgg0KjQkNCd0JTQntCgCivQgtCV0KDQmCDQldCd0JTQoNCVCivQgtCV0KDQmCDQldCg0JbQldCR0JXQogor0ILQldCg0Jgg0JPQldCX0JAKK9CC0JXQoNCYINCa0JDQoNCe0IkKK9CC0JXQoNCYINCb0JDQlNCY0KHQm9CQ0JIKK9CC0JXQoNCYINCb0JDQodCb0J4KK9CC0JXQoNCYINCh0JDQkdCe0JvQpwor0ILQldCg0Jgg0KHQkNCb0J7QnNCVCivQgtCV0KDQmNCLINCW0JjQktCQ0J0KK9CC0JXQoNCY0Isg0ILQntCg0ILQlQor0ILQldCg0JjQiyDQgtCj0KDQkAor0ILQldCg0JjQiyDQkdCg0JDQndCa0J4KK9CC0JXQoNCY0Isg0JTQkNCd0JjQptCQCivQgtCV0KDQmNCLINCU0JXQodCQ0J3QmtCQCivQgtCV0KDQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0ILQldCg0JjQiyDQlNCe0JHQoNCY0J3QmtCeCivQgtCV0KDQmNCLINCU0KDQkNCT0JDQnQor0ILQldCg0JjQiyDQpNCV0JvQmNCa0KEKK9CC0JXQoNCY0Isg0IjQkNCg0J7QodCb0JDQkgor0ILQldCg0JjQiyDQiNCe0JLQkNCdCivQgtCV0KDQmNCLINCI0J7QktCQ0J0KK9CC0JXQoNCY0Isg0IjQo9Cb0JrQkAor0ILQldCg0JjQiyDQnNCY0KbQkAor0ILQldCg0JjQiyDQnNCY0KXQkNCI0JvQngor0ILQldCg0JjQiyDQnNCY0JvQkNCdCivQgtCV0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQgtCV0KDQmNCLINCc0JjQm9CVCivQgtCV0KDQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CC0JXQoNCY0Isg0JzQmNCb0J7QqAor0ILQldCg0JjQiyDQnNCY0J7QlNCg0JDQkwor0ILQldCg0JjQiyDQnNCY0KDQiNCQ0J3QkAor0ILQldCg0JjQiyDQndCQ0JTQkAor0ILQldCg0JjQiyDQntCb0JPQkAor0ILQldCg0JjQiyDQntCb0JjQktCV0KDQkAor0ILQldCg0JjQiyDQn9CV0KLQkNCgCivQgtCV0KDQmNCLINCg0JDQlNCVCivQgtCV0KDQmNCLINCg0JDQlNCY0JLQntCICivQgtCV0KDQmNCLINCg0JDQlNCe0JzQmNCgCivQgtCV0KDQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CC0JXQoNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CC0JXQoNCY0Isg0KHQm9CQ0JLQmtCeCivQgtCV0KDQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0ILQldCg0JjQiyDQktCV0InQmtCeCivQgtCV0KDQmNCLINCS0J7QiNCY0J0KK9CC0JXQoNCa0Jgg0JLQldCg0JAKK9CC0JXQoNCa0J7QktCY0Isg0JzQmNCg0KfQldCi0JAKK9CC0JXQoNCa0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9CC0JXQoNCa0J7QktCY0Isg0JLQm9CQ0JTQldCi0JAKK9CC0JXQoNCc0JDQnSDQltCY0JLQmtCeCivQgtCV0KDQnNCQ0J0g0J3QldCU0JXQidCa0J4KK9CC0JXQoNCc0JDQndCe0JIg0JjQktCQ0J0KK9CC0JXQoNCc0JDQndCe0JIg0InQo9CR0J7QnNCY0KAKK9CC0JXQoNCc0JDQndCe0JIg0JzQmNCb0JDQnQor0ILQldCg0JzQkNCd0J7QkiDQnNCY0JvQldCd0JAKK9CC0JXQoNCc0JDQndCe0JIg0J3QkNCU0JXQltCU0JAKK9CC0JXQoNCc0JDQndCe0JIg0J7Qm9CT0JAKK9CC0JXQoNCc0JDQndCe0JIg0J/QldCi0JDQoAor0ILQldCg0JzQkNCd0J7QkiDQotCe0JTQntCgCivQgtCV0KDQnNCQ0J3QntCSINCS0JvQkNCU0JAKK9CC0JXQoNCc0JDQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0ILQldCg0JzQkNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQgtCV0KDQnNCQ0J3QntCS0JjQiyDQnNCY0JvQntCU0JDQndCa0JAKK9CC0JXQoNCc0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0ILQldCg0JzQkNCd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQgtCV0KDQnNCQ0KLQmCDQmNCg0JXQndCQCivQgtCV0KLQmtCQINCI0JDQndCeCivQgtCV0KLQmtCQINCc0JjQpdCQ0JsKK9CC0JXQotCa0JAg0JzQmNCl0JDQmwor0ILQldCi0JrQkCDQnNCY0KDQmtCeCivQgtCV0KLQktCQ0Jgg0JDQndCU0KDQkNCoINCU0JjQn9CbINCY0J3Qkwor0ILQldCi0JLQkNCYINCQ0J3QlNCg0JDQqAor0ILQldCi0JLQkNCYINCQ0J3QmNCm0JAKK9CC0JXQotCS0JDQmCDQpNCV0KDQldCd0KYKK9CC0JXQotCS0JDQmCDQmNCc0KDQlQor0ILQldCi0JLQkNCYINCb0JDQiNCe0KgKK9CC0JXQktCV0JrQmCDQiNCe0JLQkNCdCivQgtCY0JTQmNCLINCc0JDQoNCY0IjQkAor0ILQmNCU0JjQiyDQnNCQ0KDQmNCd0JrQngor0ILQmNCa0JjQiyDQodCi0J7QiNCQ0J0KK9CC0JjQmtCY0Isg0JLQmNCa0KLQntCg0JjQiNCQCivQgtCY0JvQkNChINCR0J7QoNCeCivQgtCY0JvQkNChINCU0KDQkNCT0JDQnQor0ILQmNCb0JDQoSDQlNCj0KjQkNCdCivQgtCY0JvQkNChINCT0KDQntCX0JTQkNCd0JAKK9CC0JjQm9CQ0KEg0JzQkNCg0JjQndCa0J4KK9CC0JjQm9CQ0KEg0JzQmNCb0J7QoNCQ0JQKK9CC0JjQm9CQ0KEg0JzQmNCb0J7QoNCQ0JQKK9CC0JjQm9CQ0KEg0JzQmNCb0J7QoNCQ0JQKK9CC0JjQm9CQ0KEg0J3QmNCa0J7Qm9CQCivQgtCY0JvQkNChINCh0KLQldCS0JDQnQor0ILQmNCb0JLQldCh0Jgg0KjQkNCd0JTQntCgCivQgtCY0JvQktCV0KHQmCDQmtCQ0KDQm9CeCivQgtCY0J0g0ILQo9Cg0JAKK9CC0JjQnSDQiNCj0JvQmNCI0JDQndCQCivQgtCY0J3QgtCY0Isg0JzQmNCb0J7QiNCa0J4KK9CC0JjQndCY0Isg0JjQktCY0KbQkAor0ILQmNCd0JjQiyDQndCY0JrQntCb0JAKK9CC0JjQndCY0Isg0KHQm9CQ0JLQmtCQCivQgtCY0J3QmNCLINCh0J7QpNCY0IjQkAor0ILQmNCd0JjQiyDQktCb0JDQlNCV0KLQkAor0ILQmNCd0JjQiyDQl9Ce0KDQkNCdCivQgtCY0IrQkCDQkNCd0JTQoNCV0IgKK9CC0JjQndCe0JLQmNCLINCm0JLQldCi0JrQngor0ILQmNCd0J7QktCY0Isg0JjQktCa0J4KK9CC0JjQndCe0JLQmNCLINCa0J7Qm9CVCivQgtCY0J/QkNCb0J4g0ILQo9Cg0J4KK9CC0JjQn9CQ0JvQniDQk9Ce0IjQmtCeCivQgtCY0J/QkNCb0J4g0JzQmNCb0JDQnQor0ILQmNCf0JDQm9CeINCc0JjQoNCa0J4KK9CC0JjQn9CQ0JvQniDQnNCY0KDQntCh0JvQkNCSCivQgtCY0J/QkNCb0J4g0KDQkNCU0JUKK9CC0JjQn9CQ0J3QntCSINCY0JTQkAor0ILQmNCf0JDQndCe0JIg0J3QmNCa0J7Qm9CQCivQgtCY0J/QkNCd0J7QkiDQoNCV0InQkAor0ILQmNCf0JDQndCe0JIg0KHQktCV0KLQntCX0JDQoAor0ILQmNCg0JjQqNCYINCY0KjQotCS0JDQnQor0ILQmNCg0JvQmNCLINCh0KLQldCS0JDQnQor0ILQmNCh0JDQm9Ce0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQgtCY0KHQkNCb0J7QkiDQiNCV0JvQldCd0JAKK9CC0JjQodCQ0JvQntCSINCI0JXQm9CV0J3QkAor0ILQmNCh0JDQm9Ce0JIg0JvQkNCX0JDQoAor0ILQmNCh0JDQm9Ce0JIg0InQo9CR0JjQndCa0JAKK9CC0JjQodCQ0JvQntCSINCc0JjQm9CQ0J0KK9CC0JjQodCQ0JvQntCSINCc0JjQm9CQ0J0KK9CC0JjQodCQ0JvQntCSINCc0JjQm9CY0JLQntCICivQgtCY0KHQkNCb0J7QkiDQnNCY0JvQmNCS0J7QiAor0ILQmNCh0JDQm9Ce0JIg0JzQmNCe0JTQoNCQ0JMKK9CC0JjQodCQ0JvQntCSINCc0JjQntCU0KDQkNCTCivQgtCY0KHQkNCb0J7QkiDQndCQ0JTQkAor0ILQmNCh0JDQm9Ce0JIg0KHQntCK0JAKK9CC0JjQodCQ0JvQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CC0JjQotCa0J7QkiDQiNCe0JLQkNCdCivQgtCY0KLQmtCe0JIg0KHQntCk0JjQiNCQCivQgtCI0JDQmiDQltCY0JLQmtCeCivQgtCe0ILQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCe0JPQniDQnNCY0JvQntCS0JDQnQor0ILQntCT0J4g0JzQmNCg0IjQkNCd0JAKK9CC0J7Qk9CeINCg0KPQltCY0KbQkAor0ILQntCT0J4g0JfQntCg0JDQnQor0ILQntCT0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CC0J7Qk9Ce0JLQmNCLINCg0JDQlNCY0JLQntCI0JrQkAor0ILQntCa0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCa0JjQiyDQkdCe0KjQmtCeCivQgtCe0JrQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CC0J7QmtCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQgtCe0JrQmNCLINCm0JLQldCi0JrQngor0ILQntCa0JjQiyDQlNCQ0KDQmNCd0JrQkAor0ILQntCa0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0J7QmtCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CC0J7QmtCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0ILQntCa0JjQiyDQlNCg0JDQk9CeCivQgtCe0JrQmNCLINCT0J7QoNCQ0J0KK9CC0J7QmtCY0Isg0JjQktCQ0J0KK9CC0J7QmtCY0Isg0IjQldCb0JjQodCQ0JLQkAor0ILQntCa0JjQiyDQiNCe0KDQlNCQ0J0KK9CC0J7QmtCY0Isg0InQo9CR0JjQndCa0J4KK9CC0J7QmtCY0Isg0InQo9CR0J4KK9CC0J7QmtCY0Isg0JvQo9Ca0JAKK9CC0J7QmtCY0Isg0JzQkNCg0JjQndCa0J4KK9CC0J7QmtCY0Isg0JzQkNCi0JjQm9CU0JAKK9CC0J7QmtCY0Isg0JzQmNCl0JDQiNCb0J4KK9CC0J7QmtCY0Isg0JzQmNCb0JDQnQor0ILQntCa0JjQiyDQnNCY0JvQkNCdCivQgtCe0JrQmNCLINCc0JjQm9CY0KHQkNCSCivQgtCe0JrQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CC0J7QmtCY0Isg0JzQmNCb0J7QktCQ0J0KK9CC0J7QmtCY0Isg0JzQmNCb0KPQotCY0J0KK9CC0J7QmtCY0Isg0J/QkNCd0KLQldCb0JjQiNCQCivQgtCe0JrQmNCLINCf0JXQotCQ0KAKK9CC0J7QmtCY0Isg0KDQkNCU0JjQodCQ0JIKK9CC0J7QmtCY0Isg0KDQkNCU0J7QktCQ0J0KK9CC0J7QmtCY0Isg0KDQkNCi0JrQngor0ILQntCa0JjQiyDQoNCj0JbQkAor0ILQntCa0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0ILQntCa0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQgtCe0JrQmNCLINCh0J7QpNCY0IjQkAor0ILQntCa0JjQiyDQodCi0JDQndCY0KjQkAor0ILQntCa0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CC0J7QmtCY0Isg0JLQldCg0JAKK9CC0J7QmtCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQgtCe0JrQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CC0J7QmtCY0Isg0JLQo9CI0JDQlNCY0J0KK9CC0J7QmtCY0Isg0JLQo9Ca0JDQlNCY0J0KK9CC0J7QmtCY0Isg0JfQntCg0JDQnQor0ILQntCa0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0ILQntCa0J7QktCY0Isg0JzQkNCg0JrQngor0ILQntCa0J7QktCY0Isg0JzQmNCb0JDQnQor0ILQntCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CC0J7QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CC0J7QmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQgtCe0JrQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0ILQntCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQgtCe0JrQktCj0KfQmNCLINCd0JDQlNCQCivQgtCe0JvQkNCYINCY0JzQoNCVCivQgtCe0JvQkNCYINCc0JDQotCY0JvQlNCQCivQgtCe0InQldCS0JjQiyDQgtCe0JrQkAor0ILQntCb0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CC0J7QnNCf0JDQoNCY0Isg0JTQo9Co0JDQnQor0ILQntCc0J/QkNCg0JjQiyDQmNCb0JjQiNCQCivQgtCe0JzQn9CQ0KDQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9CC0J7QnNCf0JDQoNCY0Isg0J3QmNCa0J7Qm9CQCivQgtCe0JzQn9CQ0KDQmNCLINCd0JjQmtCe0JvQkAor0ILQntCc0J/QkNCg0JjQiyDQndCY0JrQntCb0JAKK9CC0J7QnNCf0JDQoNCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9CC0J7QndCe0JLQmNCLINCC0J7QoNCC0JjQiNCVCivQgtCe0J3QntCS0JjQiyDQmtCQ0KDQntCb0JjQndCQCivQgtCe0J3QntCS0JjQiyDQl9CQ0KDQmNCI0JAKK9CC0J7QoNCC0JXQktCY0Isg0KfQldCU0J7QnNCY0KAKK9CC0J7QoNCC0JXQktCY0Isg0JbQmNCS0JrQngor0ILQntCg0ILQldCS0JjQiyDQltCY0JLQntCI0JjQnQor0ILQntCg0ILQldCS0JjQiyDQltCY0JLQntCI0JjQnQor0ILQntCg0ILQldCS0JjQiyDQltCY0JLQntCI0JjQnQor0ILQntCg0ILQldCS0JjQiyDQltCY0JLQntCg0JDQlAor0ILQntCg0ILQldCS0JjQiyDQltCY0JLQntCg0JDQlAor0ILQntCg0ILQldCS0JjQiyDQltCY0JLQntCi0JAKK9CC0J7QoNCC0JXQktCY0Isg0ILQntCa0JAKK9CC0J7QoNCC0JXQktCY0Isg0ILQntCg0ILQlQor0ILQntCg0ILQldCS0JjQiyDQgtCe0KDQgtCVCivQgtCe0KDQgtCV0JLQmNCLINCC0KPQoNCQCivQgtCe0KDQgtCV0JLQmNCLINCQ0KbQkAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQntCg0ILQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0ILQntCg0ILQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JHQntCg0JAKK9CC0J7QoNCC0JXQktCY0Isg0JHQntCg0JjQodCQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0JHQntCg0JjQktCe0IjQlQor0ILQntCg0ILQldCS0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQgtCe0KDQgtCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCR0KDQkNCd0JrQngor0ILQntCg0ILQldCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0ILQntCg0ILQldCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0ILQntCg0ILQldCS0JjQiyDQlNCQ0KDQmtCeCivQgtCe0KDQgtCV0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQgtCe0KDQgtCV0JLQmNCLINCU0JXQodCf0J7Qogor0ILQntCg0ILQldCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CC0J7QoNCC0JXQktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCW0JAKK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0JDQnQor0ILQntCg0ILQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0JDQnQor0ILQntCg0ILQldCS0JjQiyDQlNCg0JDQk9CQCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEg0JTQoAor0ILQntCg0ILQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CC0J7QoNCC0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0ILQntCg0ILQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQgtCe0KDQgtCV0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQgtCe0KDQgtCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQgtCe0KDQgtCV0JLQmNCLINCU0KPQqNCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JTQo9Co0JDQnQor0ILQntCg0ILQldCS0JjQiyDQlNCj0KjQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCU0KPQqNCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JXQoNCd0JXQodCiCivQgtCe0KDQgtCV0JLQmNCLINCV0JLQmNCm0JAKK9CC0J7QoNCC0JXQktCY0Isg0KTQkNCi0JjQnNCQCivQgtCe0KDQgtCV0JLQmNCLINCT0JjQl9CV0JvQkAor0ILQntCg0ILQldCS0JjQiyDQk9Ce0KDQkAor0ILQntCg0ILQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0ILQntCg0ILQldCS0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQgtCe0KDQgtCV0JLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9CC0J7QoNCC0JXQktCY0Isg0KXQoNCQ0J3QmNCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCY0JvQmNCd0JrQkAor0ILQntCg0ILQldCS0JjQiyDQmNCb0J7QndCQCivQgtCe0KDQgtCV0JLQmNCLINCY0JLQkNCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0JjQktCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0IjQkNCT0J7QlNCQCivQgtCe0KDQgtCV0JLQmNCLINCI0JXQm9CV0J3QkAor0ILQntCg0ILQldCS0JjQiyDQiNCV0JvQldCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0IjQldCb0JXQndCQCivQgtCe0KDQgtCV0JLQmNCLINCI0J7QktCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0IjQntCS0JDQnQor0ILQntCg0ILQldCS0JjQiyDQiNCe0JLQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCI0J7QktCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0IjQntCS0JDQnQor0ILQntCg0ILQldCS0JjQiyDQiNCe0JLQmNCm0JAKK9CC0J7QoNCC0JXQktCY0Isg0IjQo9Cb0JrQmNCm0JAKK9CC0J7QoNCC0JXQktCY0Isg0IjQo9Cb0JrQmNCm0JAKK9CC0J7QoNCC0JXQktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0ILQntCg0ILQldCS0JjQiyDQmtCe0J3QodCi0JDQndCU0JjQndCQCivQgtCe0KDQgtCV0JLQmNCLINCa0J7QodCi0JAKK9CC0J7QoNCC0JXQktCY0Isg0JvQkNCX0JDQoAor0ILQntCg0ILQldCS0JjQiyDQm9CQ0JfQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0ILQntCg0ILQldCS0JjQiyDQidCj0JHQkCDQlNCY0J/QmyDQmNCd0JMKK9CC0J7QoNCC0JXQktCY0Isg0InQo9CR0JjQqNCQCivQgtCe0KDQgtCV0JLQmNCLINCJ0KPQkdCY0KjQkAor0ILQntCg0ILQldCS0JjQiyDQidCj0JHQmNCm0JAKK9CC0J7QoNCC0JXQktCY0Isg0InQo9CR0JjQptCQCivQgtCe0KDQgtCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0ILQntCg0ILQldCS0JjQiyDQidCj0JHQmNCd0JrQkAor0ILQntCg0ILQldCS0JjQiyDQidCj0JHQmNCh0JDQkgor0ILQntCg0ILQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0ILQntCg0ILQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0ILQntCg0ILQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CC0J7QoNCC0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9CQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0JDQnQor0ILQntCg0ILQldCS0JjQiyDQnNCY0JvQldCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCb0JjQiNCQCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Ce0Kgg0JTQoAor0ILQntCg0ILQldCS0JjQiyDQnNCY0JvQntCoCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQoNCa0J4KK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCg0JrQngor0ILQntCg0ILQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9CC0J7QoNCC0JXQktCY0Isg0J3QkNCU0JAKK9CC0J7QoNCC0JXQktCY0Isg0J3QkNCU0JAKK9CC0J7QoNCC0JXQktCY0Isg0J3QldCU0JXQidCa0J4g0JTQoAor0ILQntCg0ILQldCS0JjQiyDQndCV0JLQldCd0JrQkAor0ILQntCg0ILQldCS0JjQiyDQndCY0JrQntCb0JAKK9CC0J7QoNCC0JXQktCY0Isg0J/QkNCI0JAKK9CC0J7QoNCC0JXQktCY0Isg0J/QkNCd0KLQkAor0ILQntCg0ILQldCS0JjQiyDQn9CQ0JLQm9CVCivQgtCe0KDQgtCV0JLQmNCLINCf0JDQktCb0JUKK9CC0J7QoNCC0JXQktCY0Isg0J/QkNCS0JvQlQor0ILQntCg0ILQldCS0JjQiyDQn9CV0KLQkNCgCivQgtCe0KDQgtCV0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQgtCe0KDQgtCV0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQgtCe0KDQgtCV0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCg0JDQiNCa0JAKK9CC0J7QoNCC0JXQktCY0Isg0KDQkNCd0ILQldCbCivQgtCe0KDQgtCV0JLQmNCLINCh0JDQqNCQCivQgtCe0KDQgtCV0JLQmNCLINCh0JDQktCQCivQgtCe0KDQgtCV0JLQmNCLINCh0JjQndCY0KjQkAor0ILQntCg0ILQldCS0JjQiyDQodCb0JDQgtCQ0J3QkAor0ILQntCg0ILQldCS0JjQiyDQodCb0JDQktCa0J4KK9CC0J7QoNCC0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQgtCe0KDQgtCV0JLQmNCLINCh0JvQkNCS0JrQngor0ILQntCg0ILQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0ILQntCg0ILQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCh0J3QldCW0JDQndCQCivQgtCe0KDQgtCV0JLQmNCLINCh0J7QpNCY0IjQkAor0ILQntCg0ILQldCS0JjQiyDQodCe0KTQmNCI0JAKK9CC0J7QoNCC0JXQktCY0Isg0KHQoNCC0JDQnQor0ILQntCg0ILQldCS0JjQiyDQodCg0ILQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCh0KDQldCi0JXQnQor0ILQntCg0ILQldCS0JjQiyDQodCi0JDQndCQCivQgtCe0KDQgtCV0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQodCi0JDQndCa0JAKK9CC0J7QoNCC0JXQktCY0Isg0KHQotCV0JLQkNCd0JAKK9CC0J7QoNCC0JXQktCY0Isg0KHQotCV0JLQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCh0KLQldCS0JDQnQor0ILQntCg0ILQldCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CC0J7QoNCC0JXQktCY0Isg0KLQmNCe0KHQkNCSCivQgtCe0KDQgtCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CC0J7QoNCC0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0ILQntCg0ILQldCS0JjQiyDQktCV0JvQmNCh0JDQkgor0ILQntCg0ILQldCS0JjQiyDQktCV0JvQmNCX0JDQoAor0ILQntCg0ILQldCS0JjQiyDQktCV0KDQkAor0ILQntCg0ILQldCS0JjQiyDQktCV0KDQkAor0ILQntCg0ILQldCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQgtCe0KDQgtCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CC0J7QoNCC0JXQktCY0Isg0JLQm9CQ0IjQmtCeCivQgtCe0KDQgtCV0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0ILQntCg0ILQldCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9CC0J7QoNCC0JXQktCY0Isg0JLQntCI0JjQnQor0ILQntCg0ILQldCS0JjQiyDQktCj0KfQmtCeCivQgtCe0KDQgtCV0JLQmNCLINCX0J7QoNCQ0J0KK9CC0J7QoNCC0JXQktCY0Isg0JfQntCg0JDQnQor0ILQntCg0ILQldCS0JjQiyDQl9Ce0KDQkNCdCivQgtCe0KDQgtCV0JLQmNCLINCX0J7QoNCQ0J0KK9CC0J7QoNCC0JjQiyDQkdCg0JDQndCa0J4KK9CC0J7QoNCC0JjQiyDQnNCQ0KDQmtCeCivQgtCe0KDQgtCY0Isg0JzQmNCb0JDQnQor0ILQntCg0ILQmNCI0JXQktCh0JrQmCDQlNCg0JDQk9CQ0J0KK9CC0J7QoNCC0JjQiNCV0JLQodCa0Jgg0JTQo9Co0JDQnQor0ILQntCg0ILQmNCI0JXQktCh0JrQmCDQl9Ce0KDQkNCdCivQgtCe0KDQgtCY0J0g0KTQldCc0JrQkAor0ILQntCg0ILQmNCdINCg0JDQlNCVCivQgtCe0KDQgtCY0J0g0KHQkNCS0JAKK9CC0J7QoNCC0JjQntCh0JrQmCDQmtCY0KDQngor0ILQntCg0JXQktCh0JrQmCDQk9Ce0KDQkNCdCivQgtCe0KDQk9CY0JXQktCQINCI0JXQm9CY0KbQkAor0ILQntCg0JjQiyDQkNCd0KLQntCd0JjQiNCVCivQgtCe0KDQmNCLINCT0J7QoNCU0JDQndCQCivQgtCe0KDQmNCLINCJ0KPQkdCY0KHQkNCSCivQgtCe0KDQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CC0J7QoNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CC0J7QoNCY0Isg0JLQldCg0JjQptCQCivQgtCe0KDQntCI0JXQktCY0Isg0JLQo9Ca0J7QotCQCivQgtCe0KLQldCS0JAg0KLQoNCQ0IjQkNCd0JrQkAor0ILQntCi0KPQndCe0JLQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9CC0J7Ql9CY0Isg0KjQo9Ca0KDQmNCI0JAKK9CC0KPQgtCQ0KAg0JzQldCb0JDQndCY0IjQkAor0ILQo9CC0JDQoCDQktCb0JDQlNCQCivQgtCj0ILQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9CC0KPQgtCQ0KAg0JfQktCe0J3QmNCc0JjQoAor0ILQo9CC0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQlNCj0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQgtCj0JPQkCDQn9CQ0JLQldCbCivQgtCj0JrQkNCd0J7QkiDQkdCe0KDQmNCS0J7QiAor0ILQo9Ca0JDQndCe0JIg0JXQnNCY0JvQmNCI0JDQnQor0ILQo9Ca0JDQndCe0JIg0JzQmNCb0JDQnQor0ILQo9Ca0JDQndCe0JIg0J3QkNCU0JAKK9CC0KPQmtCQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9CC0KPQmtCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQo9Ca0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0ILQo9Ca0JDQndCe0JLQmNCLINCY0JLQngor0ILQo9Ca0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0ILQo9Ca0JDQndCe0JLQmNCLINCc0JDQoNCQCivQgtCj0JrQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0ILQo9Ca0JDQndCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQgtCj0JrQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9CC0KPQmtCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0ILQo9Ca0JDQndCe0JLQmNCLINCf0KPQndCY0KjQkAor0ILQo9Ca0JDQndCe0JLQmNCLINCh0KDQldCi0JXQnQor0ILQo9Ca0JDQndCe0JLQmNCLINCh0KLQkNCa0JAKK9CC0KPQmtCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQgtCj0JrQkNCd0J7QktCY0Isg0JfQntCg0JAKK9CC0KPQmtCY0KfQmNCdINCI0J7QktCQ0J3QmtCQCivQgtCj0JrQmNCn0JjQnSDQnNCQ0KDQmNCI0JAKK9CC0KPQmtCY0KfQmNCdINCh0KDQldCU0J7QiNCVCivQgtCj0JrQmNCn0JjQnSDQodCg0JXQlNCe0IjQlQor0ILQo9Ca0JjQiy3QqNCQ0JHQmNCLINCT0J7QoNCU0JDQndCQCivQgtCj0JrQmNCLINCW0JDQoNCa0JAKK9CC0KPQmtCY0Isg0JbQkNCg0JrQngor0ILQo9Ca0JjQiyDQltCV0InQmtCeCivQgtCj0JrQmNCLINCW0JjQktCe0KLQkAor0ILQo9Ca0JjQiyDQgtCe0KDQgtCVCivQgtCj0JrQmNCLINCC0J7QoNCC0JUKK9CC0KPQmtCY0Isg0ILQntCg0ILQlQor0ILQo9Ca0JjQiyDQgtCe0KDQgtCVCivQgtCj0JrQmNCLINCC0KPQoDAKK9CC0KPQmtCY0Isg0ILQo9Cg0JAKK9CC0KPQmtCY0Isg0ILQo9Cg0J4KK9CC0KPQmtCY0Isg0JDQk9Cd0JjQptCQCivQgtCj0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0ILQo9Ca0JjQiyDQkNCd0JAKK9CC0KPQmtCY0Isg0JDQndCQCivQgtCj0JrQmNCLINCQ0J3QlNCg0JjQiNCQCivQgtCj0JrQmNCLINCQ0J3QmNCm0JAKK9CC0KPQmtCY0Isg0JHQmNCJ0JDQndCQCivQgtCj0JrQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CC0KPQmtCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQgtCj0JrQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0ILQo9Ca0JjQiyDQkdCg0JDQndCa0J4KK9CC0KPQmtCY0Isg0JTQkNCd0JjQptCQINCU0KAKK9CC0KPQmtCY0Isg0JTQkNCd0JjQm9CeCivQgtCj0JrQmNCLINCU0JjQiNCQ0J3QkAor0ILQo9Ca0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CC0KPQmtCY0Isg0JTQntCR0KDQmNCb0JAKK9CC0KPQmtCY0Isg0JTQntCR0KDQmNCS0J7QiAor0ILQo9Ca0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQmtCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0JrQmNCLINCU0KDQkNCT0J7QiNCb0J4KK9CC0KPQmtCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0ILQo9Ca0JjQiyDQlNCj0KjQkNCdCivQgtCj0JrQmNCLINCU0KPQqNCQ0J0KK9CC0KPQmtCY0Isg0JTQo9Co0JDQnQor0ILQo9Ca0JjQiyDQlNCj0KjQkNCdCivQgtCj0JrQmNCLINCU0KPQqNCQ0J0KK9CC0KPQmtCY0Isg0JPQldCd0JAKK9CC0KPQmtCY0Isg0JPQldCd0J4KK9CC0KPQmtCY0Isg0JPQmNCX0JXQm9CQCivQgtCj0JrQmNCLINCT0J7QoNCU0JDQndCQCivQgtCj0JrQmNCLINCY0JvQmNCI0JAKK9CC0KPQmtCY0Isg0JjQm9CY0IjQkAor0ILQo9Ca0JjQiyDQmNCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CC0KPQmtCY0Isg0JjQktCQ0J3QmtCQCivQgtCj0JrQmNCLINCI0JDQqNCQCivQgtCj0JrQmNCLINCI0JXQm9CV0J3QkAor0ILQo9Ca0JjQiyDQiNCe0JLQkNCdCivQgtCj0JrQmNCLINCI0J7QktCY0KbQkAor0ILQo9Ca0JjQiyDQiNCj0JvQmtCQCivQgtCj0JrQmNCLINCb0JXQngor0ILQo9Ca0JjQiyDQidCY0InQkNCd0JAKK9CC0KPQmtCY0Isg0InQo9CR0JjQptCQCivQgtCj0JrQmNCLINCJ0KPQkdCe0JzQmNCgCivQgtCj0JrQmNCLINCJ0KPQkdCe0JzQmNCgCivQgtCj0JrQmNCLINCc0JDQmtCh0JjQnAor0ILQo9Ca0JjQiyDQnNCQ0KDQkAor0ILQo9Ca0JjQiyDQnNCQ0KDQmNCI0JAKK9CC0KPQmtCY0Isg0JzQkNCg0JjQndCQCivQgtCj0JrQmNCLINCc0JjQiNCe0JTQoNCQ0JMKK9CC0KPQmtCY0Isg0JzQmNCb0JDQndCa0JAKK9CC0KPQmtCY0Isg0JzQmNCb0JDQnQor0ILQo9Ca0JjQiyDQnNCY0JvQkNCdCivQgtCj0JrQmNCLINCc0JjQm9CQ0J0KK9CC0KPQmtCY0Isg0JzQmNCb0JDQnQor0ILQo9Ca0JjQiyDQnNCY0JvQkNCdCivQgtCj0JrQmNCLINCc0JjQm9CQ0J0KK9CC0KPQmtCY0Isg0JzQmNCb0JDQnQor0ILQo9Ca0JjQiyDQnNCY0JvQldCd0JrQngor0ILQo9Ca0JjQiyDQnNCY0JvQldCS0JAKK9CC0KPQmtCY0Isg0JzQmNCb0JUKK9CC0KPQmtCY0Isg0JzQmNCb0JUKK9CC0KPQmtCY0Isg0JzQmNCb0JjQptCQCivQgtCj0JrQmNCLINCc0JjQm9CY0KbQkAor0ILQo9Ca0JjQiyDQnNCY0InQmtCeCivQgtCj0JrQmNCLINCc0JjQm9Ca0JAKK9CC0KPQmtCY0Isg0JzQmNCb0J7QqAor0ILQo9Ca0JjQiyDQnNCY0JvQntCoCivQgtCj0JrQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCj0JrQmNCLINCc0JjQm9Ce0JLQkNCdCivQgtCj0JrQmNCLINCc0JjQoNCa0J4KK9CC0KPQmtCY0Isg0JzQmNCg0JrQngor0ILQo9Ca0JjQiyDQnNCY0KDQmtCeCivQgtCj0JrQmNCLINCc0JjQoNCa0J4KK9CC0KPQmtCY0Isg0JzQmNCg0JrQngor0ILQo9Ca0JjQiyDQndCV0ILQngor0ILQo9Ca0JjQiyDQndCV0JTQldCJ0JrQngor0ILQo9Ca0JjQiyDQndCY0JrQntCb0JAKK9CC0KPQmtCY0Isg0J3QmNCa0J7Qm9CQCivQgtCj0JrQmNCLINCd0J7QktCQ0JoKK9CC0KPQmtCY0Isg0J3QntCS0JDQmgor0ILQo9Ca0JjQiyDQndCe0JLQkNCaCivQgtCj0JrQmNCLINCe0KHQotCe0IjQkAor0ILQo9Ca0JjQiyDQn9CQ0J3QlQor0ILQo9Ca0JjQiyDQn9CQ0JLQm9CVCivQgtCj0JrQmNCLINCf0JXQoNCY0KjQkAor0ILQo9Ca0JjQiyDQn9CV0KLQkNCgCivQgtCj0JrQmNCLINCf0JXQotCQ0KAKK9CC0KPQmtCY0Isg0KDQkNCU0JUKK9CC0KPQmtCY0Isg0KDQkNCU0JjQktCe0IgKK9CC0KPQmtCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0ILQo9Ca0JjQiyDQoNCQ0JTQntCS0JDQnQor0ILQo9Ca0JjQiyDQoNCQ0IjQmtCeCivQgtCj0JrQmNCLINCg0J7QodCQCivQgtCj0JrQmNCLINCg0KPQltCY0KbQkCDQm9Ce0JrQkNCbCivQgtCj0JrQmNCLINCh0JDQktCQCivQgtCj0JrQmNCLINCh0JDQktCa0JAKK9CC0KPQmtCY0Isg0KHQkNCS0J4g0JTQoAor0ILQo9Ca0JjQiyDQodCb0JDQktCY0KbQkAor0ILQo9Ca0JjQiyDQodCb0JDQktCa0J4KK9CC0KPQmtCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0ILQo9Ca0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQgtCj0JrQmNCLINCh0KDQgtCQ0J0KK9CC0KPQmtCY0Isg0KHQoNCR0J7QidCj0JEKK9CC0KPQmtCY0Isg0KHQotCQ0J3QkAor0ILQo9Ca0JjQiyDQodCi0JDQndCa0J4KK9CC0KPQmtCY0Isg0KHQotCQ0J3QmtCeCivQgtCj0JrQmNCLINCh0KLQldCS0JDQnQor0ILQo9Ca0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQgtCj0JrQmNCLINCh0KLQntCI0JDQnQor0ILQo9Ca0JjQiyDQodCS0JXQotCb0JDQndCQCivQgtCj0JrQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CC0KPQmtCY0Isg0KLQntCc0JjQodCb0JDQkgor0ILQo9Ca0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQgtCj0JrQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CC0KPQmtCY0Isg0JLQldCb0JXQnNCY0KAKK9CC0KPQmtCY0Isg0JLQldCg0JjQptCQCivQgtCj0JrQmNCLINCS0JXQoNCe0J3QmNCa0JAKK9CC0KPQmtCY0Isg0JLQmNCU0JDQmgor0ILQo9Ca0JjQiyDQktCY0JTQkAor0ILQo9Ca0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQgtCj0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CC0KPQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0ILQo9Ca0JjQiyDQktCb0JDQiNCa0J4KK9CC0KPQmtCY0Isg0JLQntCI0JjQnQor0ILQo9Ca0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQgtCj0JrQmNCLINCS0KPQmtCQ0J0KK9CC0KPQmtCY0Isg0JfQntCg0JDQnQor0ILQo9Ca0JjQnSDQlNCj0KjQkNCdCivQgtCj0JrQmNCdINCh0KLQldCS0JDQnQor0ILQo9Ca0J3QmNCLINCh0KDQldCi0JXQnQor0ILQo9Cb0JAg0JrQkNCg0JvQngor0ILQo9Cb0JjQndCQ0KYg0IjQldCb0JjQptCQCivQgtCj0JvQmNCd0JDQpiDQktCV0KHQldCb0JjQnQor0ILQo9Cb0JjQl9CY0JHQkNCg0JjQiy3QntCg0JXQqNCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQgtCj0JvQktCV0JfQkNCdINCa0J7QodCQCivQgtCj0JvQktCV0JfQkNCdINCc0JjQm9Ce0KgKK9CC0KPQm9CS0JXQl9CQ0J0g0KDQntCX0JDQm9CY0IjQkAor0ILQo9Cc0JjQiyDQkdCe0JPQlNCQ0J0KK9CC0KPQnNCY0Isg0JTQo9Co0JDQnQor0ILQo9Cc0JjQiyDQk9Ce0KHQn9CQ0JLQkAor0ILQo9Cc0JjQiyDQmNCb0JjQiNCQCivQgtCj0JzQmNCLINCc0JDQoNCY0IjQkAor0ILQo9Cc0JjQiyDQnNCY0JvQldCd0JrQngor0ILQo9Cc0JjQiyDQodCb0JDQktCa0J4KK9CC0KPQnNCY0Isg0KHQotCQ0J3QmtCeCivQgtCj0JzQmNCLINCj0KDQntCoCivQgtCj0J3QlNCY0Isg0JzQkNCg0JjQndCa0J4KK9CC0KPQoNCn0JXQmiDQnNCY0JvQldCd0JrQngor0ILQo9Cg0KfQldCS0JjQiyDQmtCh0JXQndCY0IjQkAor0ILQo9Cg0KfQmNCQ0J3QodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0ILQo9Cg0KfQmNCQ0J3QodCa0Jgg0J/QkNCS0JvQlQor0ILQo9Cg0KfQmNCaINCI0J7QodCY0J8KK9CC0KPQoNCn0IjQkNCd0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CC0KPQoNCn0J7QmiDQnNCY0JvQmNCd0JAKK9CC0KPQoNCC0JXQkiDQltCQ0KDQmtCeCivQgtCj0KDQgtCV0JIg0ILQntCg0ILQlQor0ILQo9Cg0ILQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQgtCj0KDQgtCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CC0KPQoNCC0JXQkiDQkdCe0JbQmNCU0JDQoAor0ILQo9Cg0ILQldCSINCR0KDQkNCd0JjQodCb0JDQkgor0ILQo9Cg0ILQldCSINCU0JjQnNCY0KLQoNCY0IjQlQor0ILQo9Cg0ILQldCSINCU0J7QkdCg0JjQm9CQCivQgtCj0KDQgtCV0JIg0JTQoNCQ0JPQntCJ0KPQkQor0ILQo9Cg0ILQldCSINCU0KPQqNCQ0J0KK9CC0KPQoNCC0JXQkiDQlNCj0KjQkNCdCivQgtCj0KDQgtCV0JIg0JrQkNCL0JAKK9CC0KPQoNCC0JXQkiDQmtCQ0KLQkAor0ILQo9Cg0ILQldCSINCJ0KPQkdCY0KjQkAor0ILQo9Cg0ILQldCSINCc0JDQoNCY0IjQkAor0ILQo9Cg0ILQldCSINCc0JDQoNCY0IjQkAor0ILQo9Cg0ILQldCSINCc0JjQm9CV0KLQkAor0ILQo9Cg0ILQldCSINCc0JvQkNCU0JXQnQor0ILQo9Cg0ILQldCSINCd0JDQlNCV0JbQlNCQCivQgtCj0KDQgtCV0JIg0J3QldCS0JXQndCa0JAKK9CC0KPQoNCC0JXQkiDQndCe0JLQkNCaCivQgtCj0KDQgtCV0JIg0J7QkdCg0JDQlAor0ILQo9Cg0ILQldCSINCf0JDQktCQCivQgtCj0KDQgtCV0JIg0J/QoNCS0J7QodCb0JDQkgor0ILQo9Cg0ILQldCSINCh0JDQktCY0KbQkAor0ILQo9Cg0ILQldCSINCh0JvQkNCS0JrQngor0ILQo9Cg0ILQldCSINCh0KLQldCS0JDQnQor0ILQo9Cg0ILQldCSINCi0J7QlNCe0KAKK9CC0KPQoNCC0JXQkiDQktCQ0KHQkAor0ILQo9Cg0ILQldCSINCS0JXQoNCQCivQgtCj0KDQgtCV0JIg0JfQntCg0JrQkAor0ILQo9Cg0ILQldCS0JDQpiDQlNCg0JDQk9Ce0InQo9CRCivQgtCj0KDQgtCV0JLQmNCLINCW0JXQidCa0J4KK9CC0KPQoNCC0JXQktCY0Isg0JbQmNCS0JDQnQor0ILQo9Cg0ILQldCS0JjQiyDQltCY0JLQmtCeCivQgtCj0KDQgtCV0JLQmNCLINCW0JjQktCa0J4KK9CC0KPQoNCC0JXQktCY0Isg0ILQntCg0ILQlQor0ILQo9Cg0ILQldCS0JjQiyDQgtCj0KDQgtCY0KbQkCDQlNCY0J/QmyDQmNCd0JMKK9CC0KPQoNCC0JXQktCY0Isg0JDQndCC0JXQm9Ca0J4KK9CC0KPQoNCC0JXQktCY0Isg0JHQntCT0JTQkNCdCivQgtCj0KDQgtCV0JLQmNCLINCR0KDQkNCd0JrQngor0ILQo9Cg0ILQldCS0JjQiyDQkdCg0JDQndCa0J4KK9CC0KPQoNCC0JXQktCY0Isg0JHQo9CU0JjQnNCY0KAKK9CC0KPQoNCC0JXQktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0ILQo9Cg0ILQldCS0JjQiyDQlNCj0KjQkNCdCivQgtCj0KDQgtCV0JLQmNCLINCU0KPQqNCQ0J0KK9CC0KPQoNCC0JXQktCY0Isg0JTQo9Co0JjQptCQCivQgtCj0KDQgtCV0JLQmNCLINCT0J7QoNCU0JDQndCQCivQgtCj0KDQgtCV0JLQmNCLINCI0JDQmtCe0JIKK9CC0KPQoNCC0JXQktCY0Isg0IjQldCb0JXQndCQCivQgtCj0KDQgtCV0JLQmNCLINCI0JXQm9CV0J3QkAor0ILQo9Cg0ILQldCS0JjQiyDQiNCV0JvQmNCm0JAKK9CC0KPQoNCC0JXQktCY0Isg0IjQntCS0JDQndCa0JAKK9CC0KPQoNCC0JXQktCY0Isg0IjQntCS0JDQnQor0ILQo9Cg0ILQldCS0JjQiyDQiNCj0JvQmtCQCivQgtCj0KDQgtCV0JLQmNCLINCb0JDQl9CQ0KAKK9CC0KPQoNCC0JXQktCY0Isg0JvQkNCX0J4KK9CC0KPQoNCC0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CC0KPQoNCC0JXQktCY0Isg0JzQkNCd0J7QiNCb0J4KK9CC0KPQoNCC0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQgtCj0KDQgtCV0JLQmNCLINCc0JjQm9CQ0J0KK9CC0KPQoNCC0JXQktCY0Isg0JzQmNCb0JDQnQor0ILQo9Cg0ILQldCS0JjQiyDQnNCY0JvQkNCdCivQgtCj0KDQgtCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQgtCj0KDQgtCV0JLQmNCLINCc0JjQm9CY0KbQkAor0ILQo9Cg0ILQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0ILQo9Cg0ILQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0ILQo9Cg0ILQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0ILQo9Cg0ILQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0ILQo9Cg0ILQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0ILQo9Cg0ILQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0ILQo9Cg0ILQldCS0JjQiyDQndCV0JTQldCJ0JrQngor0ILQo9Cg0ILQldCS0JjQiyDQndCY0JrQntCb0JAKK9CC0KPQoNCC0JXQktCY0Isg0KDQkNCU0JjQndCa0JAKK9CC0KPQoNCC0JXQktCY0Isg0KDQkNCd0JrQngor0ILQo9Cg0ILQldCS0JjQiyDQodCQ0JLQkAor0ILQo9Cg0ILQldCS0JjQiyDQodCQ0JLQkAor0ILQo9Cg0ILQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQgtCj0KDQgtCV0JLQmNCLINCh0KDQgtCQ0J0g0JTQoAor0ILQo9Cg0ILQldCS0JjQiyDQodCi0JDQndCa0J4KK9CC0KPQoNCC0JXQktCY0Isg0KHQotCQ0J3QntCI0JrQkAor0ILQo9Cg0ILQldCS0JjQiyDQodCi0JXQktCQ0J0KK9CC0KPQoNCC0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0ILQo9Cg0ILQldCS0JjQiyDQotCe0JTQntCgCivQgtCj0KDQgtCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CC0KPQoNCC0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0ILQo9Cg0ILQldCS0JjQiyDQktCV0KHQldCb0JjQnQor0ILQo9Cg0ILQldCS0JjQiyDQktCY0JQKK9CC0KPQoNCC0JXQktCY0Isg0JLQm9CQ0JTQkAor0ILQo9Cg0ILQldCS0JjQiyDQktCb0JDQlNCQCivQgtCj0KDQgtCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CC0KPQoNCC0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0ILQo9Cg0ILQldCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CC0KPQoNCC0JXQktCY0Isg0JfQntCg0JDQnQor0ILQo9Cg0ILQldCS0JjQiyDQl9Ce0KDQkNCdCivQgtCj0KDQgtCV0JLQodCa0Jgg0JHQntCo0JrQngor0ILQo9Cg0ILQmNCLINCR0J7QltCY0JTQkNCgCivQgtCj0KDQgtCY0Isg0JzQmNCb0J7QqAor0ILQo9Cg0ILQmNCLINCc0J7QnNCn0JjQm9CeCivQgtCj0KDQgtCY0Isg0KHQkNCS0J4KK9CC0KPQoNCC0JjQiyDQodCi0JDQndCQCivQgtCj0KDQgtCY0J0g0KHQotCV0JLQkNCdCivQgtCj0KDQgtCj0JvQntCSINCU0JXQiNCQ0J0KK9CC0KPQoNCC0KPQm9Ce0JIg0JXQktCY0KbQkAor0ILQo9Cg0JAg0KTQoNCQ0IrQkAor0ILQo9Cg0JAg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CC0KPQoNCQINCI0KPQm9CY0IjQkNCd0JAg0JzQoAor0ILQo9Cg0JDQp9CY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQkNCoINCc0JjQntCU0KDQkNCTCivQgtCj0KDQkNCo0JXQktCY0Isg0ILQntCg0ILQlQor0ILQo9Cg0JDQqNCV0JLQmNCLINCC0KPQoNCeCivQgtCj0KDQkNCo0JXQktCY0Isg0JPQntCI0JrQngor0ILQo9Cg0JDQqNCV0JLQmNCLINCY0JLQngor0ILQo9Cg0JDQqNCV0JLQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9CC0KPQoNCQ0KjQldCS0JjQiyDQnNCY0JvQlQor0ILQo9Cg0JDQqNCV0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQgtCj0KDQkNCo0JXQktCY0Isg0KLQmNCR0J7QoAor0ILQo9Cg0JDQqNCV0JLQmNCLINCX0J7QoNCQ0J0KK9CC0KPQoNCQ0KjQmNCd0J7QkiDQktCV0JvQmNCc0JjQoAor0ILQo9Cg0JDQqNCY0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQgtCj0KDQkNCo0JrQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0ILQo9Cg0JDQqNCa0J7QktCY0Isg0JHQntCW0J4KK9CC0KPQoNCQ0KjQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0JDQqNCa0J7QktCY0Isg0JTQoNCQ0JPQngor0ILQo9Cg0JDQqNCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CC0KPQoNCQ0KjQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CC0KPQoNCQ0KjQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CC0KPQoNCQ0KjQmtCe0JLQmNCLINCI0J7QktCY0KbQkAor0ILQo9Cg0JDQqNCa0J7QktCY0Isg0KDQkNCI0JrQngor0ILQo9Cg0JDQqNCa0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9CC0KPQoNCQ0JPQmNCLINCC0J7QoNCC0JUKK9CC0KPQoNCQ0JPQmNCLINCU0JjQm9CVCivQgtCj0KDQkNCT0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCQ0JPQmNCLINCT0JjQk9CQCivQgtCj0KDQkNCT0JjQiyDQiNCe0JLQkNCdCivQgtCj0KDQkNCT0JjQiyDQiNCj0JvQmtCQCivQgtCj0KDQkNCT0JjQiyDQm9CQ0JfQkNCgCivQgtCj0KDQkNCT0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQgtCj0KDQkNCT0JjQiyDQodCQ0JLQkAor0ILQo9Cg0JDQk9CY0Isg0KHQotCV0JLQkNCdCivQgtCj0KDQkNCT0JjQnSDQiNCe0JLQkNCdCivQgtCj0KDQkNCT0JjQnSDQodCi0JDQndCa0JAKK9CC0KPQoNCQ0Jog0IjQntCW0JXQpAor0ILQo9Cg0JDQmiDQiNCe0KHQmNCkCivQgtCj0KDQkNCa0J7QktCQ0KYg0KTQkNCi0JzQmNCg0JAKK9CC0KPQoNCQ0J0g0JHQntCI0JDQndCQCivQgtCj0KDQkNCdINCY0JvQmNCI0JAKK9CC0KPQoNCQ0J0g0IjQldCb0JXQndCQCivQgtCj0KDQkNCdINCI0J7QktCeCivQgtCj0KDQkNCdINCc0JjQm9CQ0J0KK9CC0KPQoNCQ0J0g0JzQmNCb0JDQnQor0ILQo9Cg0JDQnSDQoNCQ0IjQmtCeCivQgtCj0KDQkNCdINCg0JDQiNCa0J4KK9CC0KPQoNCQ0J0g0KHQm9CQ0JLQmtCeCivQgtCj0KDQkNCdINCh0J3QldCW0JDQndCQCivQgtCj0KDQkNCdINCX0JTQoNCQ0JLQmtCeCivQgtCj0KDQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0ILQo9Cg0JDQndCe0JLQmNCLINCY0JvQntCd0JAKK9CC0KPQoNCQ0J3QntCS0JjQiyDQnNCY0KXQkNCY0JvQngor0ILQo9Cg0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CC0KPQoNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0ILQo9Cg0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9CC0KPQoNCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0ILQo9Cg0JDQndCe0JLQmNCLINCh0JvQkNCC0JDQndCQCivQgtCj0KDQkNCh0JjQndCe0JLQmNCLINCc0JjQm9CVCivQgtCj0KDQlNCa0J7QkiDQldCS0JAKK9CC0KPQoNCV0JrQntCS0JjQiyDQmtCQ0KDQm9CeCivQgtCj0KDQldCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQgtCj0KDQldCa0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0ILQo9Cg0JXQndCU0JjQiyDQgtCe0KDQgtCVCivQgtCj0KDQldCd0JTQmNCLINCU0KPQqNCQ0J0KK9CC0KPQoNCV0KLQmNCLINCd0JjQmtCe0JvQkAor0ILQo9Cg0JjQp9CY0Isg0JTQoNCQ0JPQmNCK0JAKK9CC0KPQoNCY0KfQmNCLINCU0KDQkNCT0J4KK9CC0KPQoNCY0KfQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CC0KPQoNCY0KfQmNCLINCU0KPQqNCQ0J0KK9CC0KPQoNCY0KfQmNCLINCI0J7QktCQ0J0KK9CC0KPQoNCY0KfQmNCLINCc0JjQidCe0IjQmtCeCivQgtCj0KDQmNCn0JjQiyDQnNCY0JvQntCoCivQgtCj0KDQmNCn0JjQiyDQndCV0KjQmtCeCivQgtCj0KDQmNCn0JjQiyDQndCY0JrQntCb0JAKK9CC0KPQoNCY0KfQmNCLINCf0JDQktCb0JUKK9CC0KPQoNCY0KfQmNCLINCg0KPQltCQCivQgtCj0KDQmNCn0JjQiyDQodCb0JDQktCa0J4KK9CC0KPQoNCY0KfQmNCLINCh0JvQkNCS0JrQngor0ILQo9Cg0JjQp9CY0Isg0KHQotCQ0J3QmtCeCivQgtCj0KDQmNCn0JjQiyDQotCQ0J3QmtCe0KHQkNCS0JAKK9CC0KPQoNCY0KfQmNCLINCX0JvQkNCi0JjQptCQCivQgtCj0KDQmNCn0JjQiyDQl9Ce0KDQkNCdCivQgtCj0KDQmNCn0JjQnSDQgtCe0KDQgtCVCivQgtCj0KDQmNCn0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0ILQo9Cg0JjQp9CY0J0g0JTQoNCQ0JPQkNCdCivQgtCj0KDQmNCn0JjQnSDQlNCg0JDQk9Cj0KLQmNCdCivQgtCj0KDQmNCn0JjQnSDQmtCQ0KLQkNCg0JjQndCQCivQgtCj0KDQmNCn0JjQnSDQmtCQ0KLQmNCm0JAKK9CC0KPQoNCY0KfQmNCdINCc0JDQoNCa0J4KK9CC0KPQoNCY0KfQmNCdINCc0JjQm9CQ0J0KK9CC0KPQoNCY0KfQmNCdINCc0JjQm9Ce0KDQkNCUCivQgtCj0KDQmNCn0JjQnSDQnNCY0J7QlNCg0JDQkwor0ILQo9Cg0JjQp9CY0J0g0J/QldCi0JDQoAor0ILQo9Cg0JjQp9CY0J0g0KDQkNCU0J7QodCb0JDQktCQCivQgtCj0KDQmNCn0JjQnSDQoNCj0JbQmNCm0JAKK9CC0KPQoNCY0KfQmNCdINCh0JjQndCY0KjQkAor0ILQo9Cg0JjQp9CY0J0g0KHQntCk0JjQiNCQCivQgtCj0KDQmNCn0JjQnSDQodCi0JDQndCY0IjQkAor0ILQo9Cg0JjQp9CY0J0g0KHQotCV0JLQkNCdCivQgtCj0KDQmNCn0JjQnSDQodCS0JXQotCb0JDQndCQCivQgtCj0KDQmNCn0JjQnSDQotCe0JzQmNCh0JvQkNCSCivQgtCj0KDQmNCn0JjQnSDQktCQ0KHQmNCb0JjQiNCVCivQgtCj0KDQmNCn0JjQnSDQl9Ce0KDQmtCQCivQgtCj0KDQmNCn0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0ILQo9Cg0JjQp9Ca0J7QktCY0Isg0J/QkNCS0JvQlQor0ILQo9Cg0JjQp9Ca0J7QktCY0Isg0JfQm9CQ0KLQkNCd0JAKK9CC0KPQoNCY0Kgg0JrQm9CQ0KDQkAor0ILQo9Cg0JjQqCDQnNCY0KDQntCh0JvQkNCSCivQgtCj0KDQmNCoINCf0JDQidCeCivQgtCj0KDQmNCo0JXQktCY0Isg0JzQmNCb0JXQndCQCivQgtCj0KDQmNCo0JjQiyDQlNCj0KjQkNCdCivQgtCj0KDQmNCo0JjQiyDQiNCV0JvQldCd0JAKK9CC0KPQoNCY0KjQmNCLINCb0JDQl9CQ0KAKK9CC0KPQoNCY0KjQmNCLINCc0JDQotCeCivQgtCj0KDQmNCo0JjQiyDQnNCY0JvQkNCdCivQgtCj0KDQmNCo0JjQiyDQnNCY0JvQkNCdCivQgtCj0KDQmNCo0JjQiyDQnNCY0JvQmNCI0JAKK9CC0KPQoNCY0KjQmNCLINCc0JjQm9CY0KHQkNCSCivQgtCj0KDQmNCo0JjQiyDQndCY0JrQntCb0JAKK9CC0KPQoNCY0KjQmNCLINCg0JDQlNCc0JjQm9CQCivQgtCj0KDQmNCo0JjQiyDQoNCQ0JTQntCc0JjQoAor0ILQo9Cg0JjQqNCY0Isg0KHQm9CQ0JLQmtCeCivQgtCj0KDQmNCo0JjQiyDQodCS0JXQotCb0JDQndCQCivQgtCj0KDQmNCo0JjQiyDQktCV0KDQkAor0ILQo9Cg0JjQqNCY0Isg0JLQmNCU0JAKK9CC0KPQoNCY0KjQmNCLINCX0JvQkNCi0JDQndCQCivQgtCj0KDQmNCo0JjQiyDQl9Cb0JDQotCQCivQgtCj0KDQmNCLINCW0JDQoNCa0J4KK9CC0KPQoNCY0Isg0JbQldCJ0JrQngor0ILQo9Cg0JjQiyDQltCY0JLQntCg0JDQlAor0ILQo9Cg0JjQiyDQgtCV0KDQggor0ILQo9Cg0JjQiyDQgtCe0KDQgtCVCivQgtCj0KDQmNCLINCC0J7QoNCC0JUKK9CC0KPQoNCY0Isg0ILQntCg0ILQlQor0ILQo9Cg0JjQiyDQgtCj0KDQkAor0ILQo9Cg0JjQiyDQgtCj0KDQmNCm0JAKK9CC0KPQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CC0KPQoNCY0Isg0JDQndCC0JXQm9Ca0JAKK9CC0KPQoNCY0Isg0JDQndCT0JXQm9CY0J3QkAor0ILQo9Cg0JjQiyDQkNCd0JrQkAor0ILQo9Cg0JjQiyDQkNCg0KHQldCd0JjQiNCVCivQgtCj0KDQmNCLINCR0JvQkNCT0J7QnNCY0KAKK9CC0KPQoNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CC0KPQoNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CC0KPQoNCY0Isg0JHQntCT0J7QidCj0JEKK9CC0KPQoNCY0Isg0JHQntCT0J7QidCj0JEKK9CC0KPQoNCY0Isg0JHQntCI0JDQnQor0ILQo9Cg0JjQiyDQkdCe0KDQmNCS0J7QiAor0ILQo9Cg0JjQiyDQkdCe0KDQmtCQCivQgtCj0KDQmNCLINCR0J7QoNCa0JAKK9CC0KPQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0KAg0JvQldCa0JDQoAor0ILQo9Cg0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0ILQo9Cg0JjQiyDQkdCg0JDQndCa0JAKK9CC0KPQoNCY0Isg0JHQoNCQ0J3QmtCQCivQgtCj0KDQmNCLINCR0KDQkNCd0JrQngor0ILQo9Cg0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9CC0KPQoNCY0Isg0JHQo9CU0JjQnNCY0KAKK9CC0KPQoNCY0Isg0JTQldCI0JDQnQor0ILQo9Cg0JjQiyDQlNCV0IjQkNCdCivQgtCj0KDQmNCLINCU0JXQodCf0J7Qogor0ILQo9Cg0JjQiyDQlNCe0JHQoNCVCivQgtCj0KDQmNCLINCU0J7QkdCg0JjQm9CQCivQgtCj0KDQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0JjQiyDQlNCg0JDQk9CY0KbQkAor0ILQo9Cg0JjQiyDQlNCg0JDQk9CY0KbQkAor0ILQo9Cg0JjQiyDQlNCg0JDQk9Cj0KLQmNCdINCU0KAKK9CC0KPQoNCY0Isg0JTQo9Co0JDQnQor0ILQo9Cg0JjQiyDQlNCj0KjQkNCdCivQgtCj0KDQmNCLINCV0JLQkAor0ILQo9Cg0JjQiyDQpNCg0JDQitCQCivQgtCj0KDQmNCLINCT0J7QiNCa0J4KK9CC0KPQoNCY0Isg0JPQntCI0JrQngor0ILQo9Cg0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0ILQo9Cg0JjQiyDQpdCg0JDQndCY0KHQm9CQ0JIKK9CC0KPQoNCY0Isg0KXQoNCQ0J3QmNCh0JvQkNCSCivQgtCj0KDQmNCLINCY0JvQmNCI0JAKK9CC0KPQoNCY0Isg0JjQm9CY0IjQkAor0ILQo9Cg0JjQiyDQiNCQ0KHQnNCY0J3QmtCQCivQgtCj0KDQmNCLINCI0JXQm9CY0KbQkAor0ILQo9Cg0JjQiyDQiNCe0JLQkNCdCivQgtCj0KDQmNCLINCI0J7QktCQ0J0KK9CC0KPQoNCY0Isg0IjQntCS0JDQnQor0ILQo9Cg0JjQiyDQiNCe0JLQngor0ILQo9Cg0JjQiyDQmtCg0JjQodCi0JjQndCQCivQgtCj0KDQmNCLINCJ0JjQidCQ0J3QkAor0ILQo9Cg0JjQiyDQidCj0JHQmNCo0JAKK9CC0KPQoNCY0Isg0InQo9CR0JjQqNCQCivQgtCj0KDQmNCLINCJ0KPQkdCY0KbQkAor0ILQo9Cg0JjQiyDQidCj0JHQmNCm0JAKK9CC0KPQoNCY0Isg0InQo9CR0J7QlNCg0JDQkwor0ILQo9Cg0JjQiyDQidCj0JHQntCc0JjQoAor0ILQo9Cg0JjQiyDQnNCQ0KDQkAor0ILQo9Cg0JjQiyDQnNCQ0KDQmNCI0JAKK9CC0KPQoNCY0Isg0JzQmNCL0JAKK9CC0KPQoNCY0Isg0JzQmNCb0JDQndCa0J4KK9CC0KPQoNCY0Isg0JzQmNCb0JDQnQor0ILQo9Cg0JjQiyDQnNCY0JvQkNCdCivQgtCj0KDQmNCLINCc0JjQm9CQ0J0KK9CC0KPQoNCY0Isg0JzQmNCb0JDQnQor0ILQo9Cg0JjQiyDQnNCY0JvQldCd0JrQngor0ILQo9Cg0JjQiyDQnNCY0JvQmNCm0JAKK9CC0KPQoNCY0Isg0JzQmNCb0JjQktCe0IjQlQor0ILQo9Cg0JjQiyDQnNCY0JvQntCoCivQgtCj0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCj0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQgtCj0KDQmNCLINCc0JjQm9Ce0JLQkNCdCivQgtCj0KDQmNCLINCc0JjQm9Cj0J0KK9CC0KPQoNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CC0KPQoNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CC0KPQoNCY0Isg0JzQmNCg0IjQkNCd0JAKK9CC0KPQoNCY0Isg0JzQmNCg0JrQngor0ILQo9Cg0JjQiyDQnNCY0KDQntCJ0KPQkQor0ILQo9Cg0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9CC0KPQoNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0ILQo9Cg0JjQiyDQnNCY0KLQkNCgCivQgtCj0KDQmNCLINCc0J7QnNCn0JjQm9CeCivQgtCj0KDQmNCLINCd0JXQlNCV0InQmtCeCivQgtCj0KDQmNCLINCd0JXQnNCQ0IrQkAor0ILQo9Cg0JjQiyDQndCV0J3QkNCUCivQgtCj0KDQmNCLINCd0JXQktCV0J3QmtCQCivQgtCj0KDQmNCLINCf0JXQotCg0JAKK9CC0KPQoNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CC0KPQoNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CC0KPQoNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0ILQo9Cg0JjQiyDQoNCQ0JTQnNCY0JvQkAor0ILQo9Cg0JjQiyDQoNCQ0JTQntCY0KbQkAor0ILQo9Cg0JjQiyDQoNCQ0JTQntCI0JrQkAor0ILQo9Cg0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQgtCj0KDQmNCLINCg0JDQotCa0J4KK9CC0KPQoNCY0Isg0KHQkNCK0JAKK9CC0KPQoNCY0Isg0KHQkNCS0JrQkAor0ILQo9Cg0JjQiyDQodCQ0JLQngor0ILQo9Cg0JjQiyDQodCV0JrQo9Cb0JAKK9CC0KPQoNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CC0KPQoNCY0Isg0KHQm9CQ0JLQmtCQCivQgtCj0KDQmNCLINCh0JvQkNCS0JrQngor0ILQo9Cg0JjQiyDQodCb0JDQktCa0J4KK9CC0KPQoNCY0Isg0KHQoNCR0J7QidCj0JEKK9CC0KPQoNCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0ILQo9Cg0JjQiyDQodCi0JDQndCY0JzQmNCgCivQgtCj0KDQmNCLINCh0KLQldCS0JDQnQor0ILQo9Cg0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQgtCj0KDQmNCLINCh0KLQntCI0JDQndCa0JAKK9CC0KPQoNCY0Isg0KLQldCe0JTQntCgCivQgtCj0KDQmNCLINCi0JXQoNCV0JfQkAor0ILQo9Cg0JjQiyDQotCe0JTQntCgCivQgtCj0KDQmNCLINCi0J7QlNCe0KAKK9CC0KPQoNCY0Isg0KLQo9CT0J7QnNCY0KAKK9CC0KPQoNCY0Isg0JLQkNCh0JAKK9CC0KPQoNCY0Isg0JLQldCJ0JrQngor0ILQo9Cg0JjQiyDQktCV0KDQkAor0ILQo9Cg0JjQiyDQktCV0KDQkAor0ILQo9Cg0JjQiyDQktCY0JTQkAor0ILQo9Cg0JjQiyDQktCY0JTQntCI0JUKK9CC0KPQoNCY0Isg0JLQm9CQ0JTQkAor0ILQo9Cg0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQgtCj0KDQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CC0KPQoNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0ILQo9Cg0JjQiyDQktCe0IjQmNCdCivQgtCj0KDQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CC0KPQoNCY0Isg0JLQo9Ca0JDQqNCY0J0KK9CC0KPQoNCY0Isg0JfQlNCV0J3QmtCQCivQgtCj0KDQmNCLINCX0JTQoNCQ0JLQmtCeCivQgtCj0KDQmNCLINCX0J7QoNCQ0J0KK9CC0KPQoNCY0KbQkCDQnNCY0JvQntCoCivQgtCj0KDQmNCm0JAg0J3QldCS0JXQndCa0JAKK9CC0KPQoNCY0KbQkCDQoNCQ0JTQlQor0ILQo9Cg0JjQptCQINCg0JDQndCa0J4KK9CC0KPQoNCY0KbQkCDQoNCQ0J3QmtCeCivQgtCj0KDQmNCm0JAg0KDQkNCi0JrQngor0ILQo9Cg0JjQptCQINCh0JvQntCR0J7QlNCQ0J0g0JTQmNCf0Jsg0J7QldCmCivQgtCj0KDQmNCaINCU0KPQqNCQ0J0KK9CC0KPQoNCY0Jog0IjQo9Cb0JrQkAor0ILQo9Cg0JjQmiDQnNCY0JvQkNCdCivQgtCj0KDQmNCaINCe0KLQmNCb0JjQiNCQCivQgtCj0KDQmNCa0JjQnSDQmNCb0JjQiNCQCivQgtCj0KDQmNCa0JjQnSDQktCV0KDQkAor0ILQo9Cg0JjQnSDQmNCb0JjQiNCQCivQgtCj0KDQmNCdINCI0J7QodCY0J8KK9CC0KPQoNCY0J0g0J3QntCS0JAKK9CC0KPQoNCY0J0g0J3QntCS0JAKK9CC0KPQoNCY0J0g0KHQkNCS0JAg0JTQmNCf0Jsg0JjQndCTCivQgtCj0KDQmNCdINCh0JLQldCi0JvQkNCd0JAKK9CC0KPQoNCY0J0g0KLQldCe0JTQntCgCivQgtCj0KDQmtCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CC0KPQoNCa0JjQnSDQnNCY0JvQldCd0JrQngor0ILQo9Cg0JrQmNCdINCg0JDQlNCY0KjQmtCeCivQgtCj0KDQmtCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0ILQo9Cg0JrQntCS0JjQiyDQp9CQ0KHQm9CQ0JIKK9CC0KPQoNCa0J7QktCY0Isg0ILQldCd0JAKK9CC0KPQoNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQgtCj0KDQmtCe0JLQmNCLINCQ0J3QotCe0J0KK9CC0KPQoNCa0J7QktCY0Isg0JzQkNCT0JTQkNCb0JXQndCQCivQgtCj0KDQmtCe0JLQmNCLINCf0JXQoNCY0KbQkAor0ILQo9Cg0JrQntCS0JjQiyDQoNCQ0JTQlQor0ILQo9Cg0JrQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CC0KPQoNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQgtCj0KDQmtCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9CC0KPQoNCa0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQgtCj0KDQmtCe0JLQodCa0Jgg0J/QkNCS0JXQmwor0ILQo9Cg0J3QmNCLINCg0JDQlNCc0JjQm9CQCivQgtCj0KDQndCY0Isg0JLQntCI0JjQodCb0JDQkgor0ILQo9Cg0J7QktCY0Isg0JbQmNCS0JrQkAor0ILQo9Cg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CC0KPQoNCe0JLQmNCLINCR0J7QqNCa0J4KK9CC0KPQoNCe0JLQmNCLINCR0J7QiNCQCivQgtCj0KDQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQgtCj0KDQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0ILQo9Cg0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQgtCj0KDQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0ILQo9Cg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0ILQo9Cg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQgtCj0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CC0KPQoNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CC0KPQoNCe0JLQmNCLINCT0J7QiNCa0J4KK9CC0KPQoNCe0JLQmNCLINCI0JDQodCc0JjQndCa0JAKK9CC0KPQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9CC0KPQoNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0ILQo9Cg0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CC0KPQoNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0ILQo9Cg0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9CC0KPQoNCe0JLQmNCLINCc0JjQm9Ca0JAKK9CC0KPQoNCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQgtCj0KDQntCS0JjQiyDQndCY0JrQntCb0JAKK9CC0KPQoNCe0JLQmNCLINCe0JvQk9CY0KbQkAor0ILQo9Cg0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9CC0KPQoNCe0JLQmNCLINCg0JDQlNCVCivQgtCj0KDQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0ILQo9Cg0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CC0KPQoNCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CC0KPQoNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQgtCj0KDQntCS0JjQiyDQodCe0KTQmNCI0JAKK9CC0KPQoNCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CC0KPQoNCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9CC0KPQoNCe0JLQmNCLINCS0JDQodCeCivQgtCj0KDQntCS0JjQiyDQktCV0KHQndCQCivQgtCj0KDQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0ILQo9Cg0J7QktCY0Isg0JLQo9Ca0JDQlNCY0J0KK9CC0KPQoNCe0JLQmNCLINCX0J7QoNCa0JAKK9CC0KPQoNCe0JLQmtCQINCc0JDQoNCY0IjQkAor0ILQo9Cg0J7QktCa0JAg0J7QndCU0KDQldCICivQgtCj0KDQntCS0JrQkCDQktCb0JDQlNCY0KHQm9CQ0JIKK9CC0KPQoNCe0JLQodCa0Jgg0IjQntCS0JjQptCQCivQgtCj0KHQmNCLINCc0JjQntCU0KDQkNCTCivQgtCj0JfQkCDQodCi0JXQktCeCivQkNCnINCo0JDQndCU0J7QoAor0JDQpyDQpNCV0KDQldCd0KYKK9CQ0Kcg0KTQoNCQ0IrQkCDQlNCgINCf0KDQmNCc0JDQoNCY0IjQo9ChCivQkNCnINCT0JDQkdCe0KAKK9CQ0Kcg0IjQntCW0JXQpCDQkNCa0JDQlNCV0JzQodCa0Jgg0KHQm9CY0JrQkNCgCivQkNCnINCI0J7QltCV0KQg0JHQmNCe0JvQntCTCivQkNCnINCI0J7QktCQ0J0KK9CQ0Kcg0JrQkNCi0JjQptCQCivQkNCnINCb0JDQiNCe0KgKK9CQ0Kct0J3QmNCa0J7Qm9CY0Isg0JXQoNCW0JXQkdCV0KIKK9CQ0Kcg0J7QotCeCivQkNCnINCf0JDQktCb0JUKK9CQ0Kcg0KLQmNCR0J7QoAor0JDQp9CQ0Jgg0JjQqNCi0JLQkNCdCivQkNCn0JDQmCDQl9Ce0JvQotCQ0J0KK9CQ0KfQkNCd0JDQodCa0Jgg0JLQldCh0J3QkAor0JDQp9CQ0J3QodCa0Jgg0JbQmNCS0JrQngor0JDQp9CQ0J3QodCa0Jgg0JDQm9CR0JjQndCQCivQkNCn0JDQndCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQp9CQ0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkNCn0JDQndCh0JrQmCDQlNCe0JHQoNCY0JLQntCICivQkNCn0JDQndCh0JrQmCDQlNCg0JDQk9CY0KbQkAor0JDQp9CQ0J3QodCa0Jgg0JTQoNCQ0JPQntCc0JjQoAor0JDQp9CQ0J3QodCa0Jgg0IjQldCb0JjQodCe0JIKK9CQ0KfQkNCd0KHQmtCYINCa0J7QodCQ0J3QkAor0JDQp9CQ0J3QodCa0Jgg0JvQkNCX0JDQoAor0JDQp9CQ0J3QodCa0Jgg0JvQkNCX0JDQoAor0JDQp9CQ0J3QodCa0Jgg0J3QmNCa0J7Qm9CQCivQkNCn0JDQndCh0JrQmCDQoNCQ0JTQkAor0JDQp9CQ0J3QodCa0Jgg0KHQotCQ0J3QkAor0JDQp9CQ0J3QodCa0Jgg0KHQotCQ0J3QmNCh0JvQkNCSCivQkNCn0JDQndCh0JrQmCDQotCV0J7QlNCe0KAg0JTQmNCf0Jsg0JjQndCTCivQkNCn0JDQndCh0JrQmCDQotCe0JTQntCgCivQkNCn0JDQndCh0JrQmCDQktCY0JTQntCh0JDQktCQCivQkNCn0JDQndCh0JrQmCDQl9CU0KDQkNCS0JrQngor0JDQp9CQ0J3QodCa0Jgg0JfQntCg0JjQptCQCivQkNCo0IvQldCg0JjQiyDQodCi0JXQktCQ0J0KK9CQ0KjQi9CV0KDQmNCLINCh0KLQldCS0JDQnQor0JDQqNCL0JXQoNCY0Isg0JfQntCg0JAKK9CQ0KjQkNCd0JjQnSDQoNCQ0JTQmNCS0J7QiNCVCivQkNCo0JDQndCY0J0g0JfQntCg0JDQnQor0JDQqNCY0JrQoyDQktCY0KLQkNCb0JjQoSDQlNCgINCb0JXQmtCQ0KAKK9CQ0KjQmtCe0JLQmNCLINCh0JvQkNCS0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CQ0KjQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CQ0KjQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JLQkAor0JDQqNCe0IrQkCDQndCV0JTQldCJ0JrQngor0JDQqNCe0IrQkCDQntCb0JPQkAor0JDQqNCi0JDQm9Ca0J7QktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQqNCi0JDQm9Ca0J7QktCh0JrQmCDQmtCg0JjQodCi0JjQndCQCivQkNCL0JDQndCh0JrQmCDQgtCe0KDQgtCVCivQkNCL0JDQndCh0JrQmCDQm9CQ0JfQkNCgCivQkNCL0JjQiyDQmNCb0JjQiNCQCivQkNCL0JjQiyDQnNCY0KDQmtCeCivQkNCL0JjQiyDQodCi0JXQktCQ0J0KK9CQ0IvQmNCc0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQi9CY0JzQntCSINCR0J7QqNCa0J4KK9CQ0IvQmNCc0J7QkiDQlNCg0JDQk9CY0KbQkAor0JDQi9CY0JzQntCSINCb0JXQm9CQCivQkNCL0JjQnNCe0JIg0JzQkNCg0JrQngor0JDQi9CY0JzQntCSINCc0JjQm9CQ0J0KK9CQ0IvQmNCc0J7QkiDQnNCY0KDQiNCQ0J3QkCDQn9Cg0J7QpNCV0KHQntCgCivQkNCL0JjQnNCe0JIg0J3QldCU0JXQidCa0J4KK9CQ0IvQmNCc0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JDQi9CY0JzQntCSINCg0JDQlNCe0KHQm9CQ0JLQkAor0JDQi9CY0JzQntCS0JjQiyDQltCY0JLQmtCeCivQkNCL0JjQnNCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQkNCL0JjQnNCe0JLQmNCLINCC0J7QoNCC0JUKK9CQ0IvQmNCc0J7QktCY0Isg0ILQntCg0ILQlQor0JDQi9CY0JzQntCS0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQkNCL0JjQnNCe0JLQmNCLINCR0J7QqNCa0J4KK9CQ0IvQmNCc0J7QktCY0Isg0JHQntCT0JTQkNCd0JrQkAor0JDQi9CY0JzQntCS0JjQiyDQkdCe0KDQmtCQCivQkNCL0JjQnNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JDQi9CY0JzQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CQ0IvQmNCc0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQkNCL0JjQnNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CQ0IvQmNCc0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQkNCL0JjQnNCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQkNCL0JjQnNCe0JLQmNCLINCU0KPQqNCQ0J0KK9CQ0IvQmNCc0J7QktCY0Isg0JTQo9Co0JDQnQor0JDQi9CY0JzQntCS0JjQiyDQk9Ce0IjQmtCeCivQkNCL0JjQnNCe0JLQmNCLINCY0JvQmNCI0JAKK9CQ0IvQmNCc0J7QktCY0Isg0IjQntCS0JAKK9CQ0IvQmNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0JDQi9CY0JzQntCS0JjQiyDQnNCY0JvQkAor0JDQi9CY0JzQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVINCU0KAKK9CQ0IvQmNCc0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CQ0IvQmNCc0J7QktCY0Isg0JzQmNCb0J7QiNCY0KbQkAor0JDQi9CY0JzQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JDQi9CY0JzQntCS0JjQiyDQntCR0KDQkNCUCivQkNCL0JjQnNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQkNCL0JjQnNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQkNCL0JjQnNCe0JLQmNCLINCg0JDQotCa0J4KK9CQ0IvQmNCc0J7QktCY0Isg0KHQkNCS0JAKK9CQ0IvQmNCc0J7QktCY0Isg0KHQkNCS0JAKK9CQ0IvQmNCc0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQkNCL0JjQnNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CQ0IvQmNCc0J7QktCY0Isg0KLQkNCU0JjQiNCQCivQkNCL0JjQnNCe0JLQmNCLINCS0JDQodCQCivQkNCL0JjQnNCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CQ0IvQmNCc0J/QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0ILQkNCd0KHQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0JDQgtCQ0J3QodCa0Jgg0JjQktCQ0J3QkAor0JDQgtCQ0J3QodCa0Jgg0JzQmNCb0JjQktCe0IgKK9CQ0ILQkNCd0KHQmtCYINCd0JDQlNCQCivQkNCC0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9CQ0ILQmNCLINCU0KDQkNCT0J4KK9CQ0ILQmNCLINCe0KLQngor0JDQgtCY0J0g0JDQlNCQ0JwKK9CQ0JHQkNCP0JjQiyDQnNCQ0KDQmtCeCivQkNCR0JDQj9CY0Isg0KDQkNCU0JzQmNCb0JAKK9CQ0JHQkNCP0JjQiyDQodCQ0JLQngor0JDQkdCQ0I/QmNCLINCh0KLQkNCd0JrQngor0JDQkdCQ0JfQkCDQktCV0KHQndCQCivQkNCR0JDQl9CYINCY0InQkNCXCivQkNCR0JDQl9CYINCg0JDQnNCQ0JTQkNCdCivQkNCR0JDQl9Ce0JLQodCa0Jgg0KHQo9Cb0KLQkNCdCivQkNCR0JTQmNCI0JXQktCY0Isg0KjQo9Ca0KDQmNCI0JAKK9CQ0JHQlNCY0IjQldCS0JjQiyDQmNCh0JzQldCiCivQkNCR0KDQkNCl0JDQnCDQldCS0JAKK9CQ0JHQoNCQ0KXQkNCcINCY0KDQldCd0JAKK9CQ0JHQoNCQ0KXQkNCcINCf0JDQktCV0JsKK9CQ0JHQoNCQ0JzQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JDQkdCg0JDQnNCe0JLQmNCLINCb0JjQktCY0IjQkAor0JDQkdCg0JDQnNCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkNCR0KDQkNCc0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CQ0JHQoNCQ0JzQntCS0JjQiyDQndCQ0JTQkAor0JDQkdCg0JDQnNCe0JLQmNCLINCh0KLQkNCd0JAKK9CQ0JHQoNCQ0JzQntCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQkNCR0KDQm9CY0Isg0J3QkNCU0JAKK9CQ0JHQoiDQm9CQ0KHQm9CeCivQkNCR0KMt0JDQkdCV0JQg0JzQo9Cl0JDQnNCV0JQKK9CQ0KbQmNCT0JDQnSDQiNCe0JLQkNCd0JrQkAor0JDQptCY0J0t0J/QldCi0KDQntCS0JjQiyDQmNCS0JDQndCa0JAKK9CQ0KbQmtCV0KLQkCDQlNCg0JDQk9CQ0J0KK9CQ0KbQmtCV0KLQkCDQnNCY0KDQiNCQ0J3QkAor0JDQptCa0JXQotCQINCi0JjQpdCe0JzQmNCgCivQkNCm0JrQntCS0JjQiyDQnNCQ0KDQkAor0JDQj9CQ0JjQnyDQnNCY0JvQntCg0JDQlAor0JDQj9CQ0JjQnyDQnNCY0KDQiNCQ0J3QkAor0JDQj9CV0JzQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQj9CV0JzQntCS0JjQiyDQk9Cg0KPQiNCeCivQkNCP0JjQiyDQltCQ0KDQmtCeCivQkNCP0JjQiyDQkdCe0KjQmtCeCivQkNCP0JjQiyDQkdCg0JDQndCa0J4KK9CQ0I/QmNCLINCU0JXQodCQ0J3QmtCQCivQkNCP0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkNCP0JjQiyDQlNCj0KjQmNCm0JAKK9CQ0I/QmNCLINCT0J7QoNCQ0J0KK9CQ0I/QmNCLINCY0JvQmNCI0JAKK9CQ0I/QmNCLINCI0J7QktCQ0J3QmtCQCivQkNCP0JjQiyDQiNCe0JLQkNCdCivQkNCP0JjQiyDQidCj0JHQntCU0KDQkNCTCivQkNCP0JjQiyDQnNCY0JvQkNCdCivQkNCP0JjQiyDQnNCY0JvQldCdCivQkNCP0JjQiyDQnNCY0JvQmNCh0JDQkgor0JDQj9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0JDQj9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CQ0I/QmNCLINCd0JXQlNCV0InQmtCeCivQkNCP0JjQiyDQn9CV0KDQngor0JDQj9CY0Isg0KDQkNCU0JjQodCQ0JIKK9CQ0I/QmNCLINCg0JDQlNCe0IrQkAor0JDQj9CY0Isg0KDQkNCd0JrQngor0JDQj9CY0Isg0KDQkNCi0JrQngor0JDQj9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQj9CY0Isg0JLQm9CQ0JTQngor0JDQj9CY0Isg0JfQntCg0JDQnQor0JDQj9CY0JHQkNCR0JAg0JzQmNCb0JjQptCQCivQkNCP0JjQkdCQ0JHQkCDQndCY0JrQntCb0JAKK9CQ0JTQkNCcINCo0JDQoNCb0J7QotCQCivQkNCU0JDQnCDQgtCj0KDQkAor0JDQlNCQ0Jwg0JTQldCd0JXQqAor0JDQlNCQ0Jwg0JjQoNCc0JAKK9CQ0JTQkNCcINCI0J7QltCV0KQKK9CQ0JTQkNCcINCI0J7QodCY0J8KK9CQ0JTQkNCcINCa0KDQo9Cd0JjQptCQINCU0KAKK9CQ0JTQkNCcINCb0JDQlNCY0KHQm9CQ0JIKK9CQ0JTQkNCcINCb0JDQlNCY0KHQm9CQ0JIKK9CQ0JTQkNCcINCb0JDQodCb0J4KK9CQ0JTQkNCcINCe0JvQk9CY0KbQkAor0JDQlNCQ0Jwg0KLQmNCR0J7QoCDQndCe0JLQmNCd0JDQoAor0JDQlNCQ0JzQntCSINCC0J7QoNCC0JUKK9CQ0JTQkNCc0J7QkiDQkdCe0JbQmNCU0JDQoAor0JDQlNCQ0JzQntCSINCU0KDQkNCT0JDQnQor0JDQlNCQ0JzQntCSINCU0KPQqNCQ0J0KK9CQ0JTQkNCc0J7QkiDQmNCS0JDQnQor0JDQlNCQ0JzQntCSINCI0J7QktCQ0J0KK9CQ0JTQkNCc0J7QkiDQiNCj0JvQmNCQ0J3QkAor0JDQlNCQ0JzQntCSINCI0KPQm9Ca0JAKK9CQ0JTQkNCc0J7QkiDQiNCj0JvQmtCQCivQkNCU0JDQnNCe0JIg0JrQkNCi0JDQoNCY0J3QkAor0JDQlNCQ0JzQntCSINCJ0KPQkdCQCivQkNCU0JDQnNCe0JIg0JzQkNCg0JjQiNCQCivQkNCU0JDQnNCe0JIg0JzQmNCg0J7QodCb0JDQktCQCivQkNCU0JDQnNCe0JIg0KDQkNCU0J7QktCQ0J0KK9CQ0JTQkNCc0J7QkiDQotCY0KbQkAor0JDQlNCQ0JzQntCSINCS0JjQotCe0JzQmNCgCivQkNCU0JDQnNCe0JLQmNCLINCC0KPQoNCQCivQkNCU0JDQnNCe0JLQmNCLINCR0J7QqNCa0J4KK9CQ0JTQkNCc0J7QktCY0Isg0JTQoNCQ0JPQkAor0JDQlNCQ0JzQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkNCU0JDQnNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CQ0JTQkNCc0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JDQlNCQ0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQkNCU0JDQnNCe0JLQmNCLINCU0KPQqNCQ0J0KK9CQ0JTQkNCc0J7QktCY0Isg0JTQo9Co0JDQnQor0JDQlNCQ0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQkNCU0JDQnNCe0JLQmNCLINCT0J7QiNCa0J4KK9CQ0JTQkNCc0J7QktCY0Isg0JPQntCI0JrQngor0JDQlNCQ0JzQntCS0JjQiyDQk9Ce0KDQkNCdCivQkNCU0JDQnNCe0JLQmNCLINCY0JvQntCd0JAKK9CQ0JTQkNCc0J7QktCY0Isg0JjQktCQ0J0KK9CQ0JTQkNCc0J7QktCY0Isg0IjQldCb0JAKK9CQ0JTQkNCc0J7QktCY0Isg0IjQldCb0JXQndCQCivQkNCU0JDQnNCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQkNCU0JDQnNCe0JLQmNCLINCI0J7QktCQ0J0KK9CQ0JTQkNCc0J7QktCY0Isg0JrQkNCi0JAKK9CQ0JTQkNCc0J7QktCY0Isg0JvQkNCX0JDQoAor0JDQlNCQ0JzQntCS0JjQiyDQm9CQ0JfQkNCgCivQkNCU0JDQnNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JDQlNCQ0JzQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JDQlNCQ0JzQntCS0JjQiyDQnNCQ0KDQkAor0JDQlNCQ0JzQntCS0JjQiyDQnNCQ0KDQkAor0JDQlNCQ0JzQntCS0JjQiyDQnNCQ0KDQkAor0JDQlNCQ0JzQntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0JDQlNCQ0JzQntCS0JjQiyDQnNCY0JvQldCd0JAKK9CQ0JTQkNCc0J7QktCY0Isg0JzQmNCb0JjQptCQCivQkNCU0JDQnNCe0JLQmNCLINCc0JjQm9Ca0JDQnQor0JDQlNCQ0JzQntCS0JjQiyDQnNCY0KDQmtCeCivQkNCU0JDQnNCe0JLQmNCLINCc0JjQoNCa0J4KK9CQ0JTQkNCc0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CQ0JTQkNCc0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CQ0JTQkNCc0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CQ0JTQkNCc0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CQ0JTQkNCc0J7QktCY0Isg0KDQkNCU0J7QodCQ0JIKK9CQ0JTQkNCc0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQkNCU0JDQnNCe0JLQmNCLINCh0J7QitCQCivQkNCU0JDQnNCe0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9CQ0JTQkNCc0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JDQlNCQ0JzQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkNCU0JDQnNCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CQ0JTQkNCc0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JDQlNCV0JzQmCDQk9Ce0KDQlNCQ0J3QkAor0JDQlNCV0JzQmCDQmNCc0JXQoAor0JDQlNCV0JzQntCSINCa0JXQnNCQ0JsKK9CQ0JTQldCc0J7QktCY0Isg0IjQo9Ch0KPQpAor0JDQlNCV0JzQntCS0JjQiyDQntCh0JzQkNCdCivQkNCU0JvQldCo0JjQiyDQidCj0JHQmNCm0JAKK9CQ0JTQndCQ0ILQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQkNCU0J7QoCDQiNCe0JLQkNCdCivQkNCT0JDQoNCh0JrQmCDQiNCQ0J0g0JTQoAor0JDQk9CQ0KLQmNCLINCc0JDQotCVCivQkNCT0JDQotCY0Isg0JzQmNCg0JrQngor0JDQk9CQ0KLQmNCLINCS0JXQm9CY0JzQmNCgCivQkNCT0JHQkNCR0JAg0JHQoNCQ0J3QmtCQCivQkNCT0JHQkNCR0JAg0JTQkNCd0JUKK9CQ0JPQkdCQ0JHQkCDQlNCQ0J3QmNCm0JAKK9CQ0JPQkdCQ0JHQkCDQlNCQ0J3QmNCb0J4KK9CQ0JPQkdCQ0JHQkCDQlNCj0KjQkNCdCivQkNCT0JHQkNCR0JAg0IjQntCS0JDQnQor0JDQk9CR0JDQkdCQINCd0JXQlNCV0InQmtCQCivQkNCT0JHQkNCR0JAg0J3QldCU0JXQidCa0J4KK9CQ0JPQkdCQ0JHQkCDQndCY0JrQntCb0JAg0JTQoAor0JDQk9CR0JDQkdCQINCd0JjQmtCe0JvQkAor0JDQk9CR0JDQkdCQINCS0JjQlNCQCivQkNCT0JjQiyDQnNCQ0KDQmtCeCivQkNCT0JjQiyDQndCQ0JTQkAor0JDQk9CY0Isg0J3QmNCa0J7Qm9CQ0IgKK9CQ0JPQmNCLINCd0JjQmtCe0JvQkAor0JDQk9CY0Isg0KHQm9Ce0JHQntCU0JDQnSDQlNCY0J/QmyDQntCV0KYKK9CQ0JPQmNCLINCh0KDQkdCY0KHQm9CQ0JIKK9CQ0JPQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CQ0JPQniDQnNCQ0KDQmtCeCivQkNCT0J4g0JfQntCg0JjQptCQCivQkNCT0J7QpyDQlNCj0KjQkNCdCivQkNCT0J7QqNCi0J7QnSDQkdCV0JvQkAor0JDQk9Ce0KjQotCe0J0g0KTQldCg0JXQndCmCivQkNCT0J7QqNCi0J7QnSDQmtCQ0KDQntCJCivQkNCT0J7QqNCi0J7QnSDQm9CQ0KHQm9CeCivQkNCT0J7QqNCi0J7QnSDQnNCY0KXQkNCJCivQkNCT0J7QqNCi0J7QnSDQktCV0KDQkAor0JDQk9Cg0JDQnNCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQkNCT0KDQkNCc0J7QktCY0Isg0KDQkNCU0JUKK9CQ0JPQo9Co0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CQ0JPQo9Cm0JjQiyDQntCb0JPQmNCm0JAKK9CQ0KXQnNCV0JQg0JXQm9CV0JcKK9CQ0KXQnNCV0KLQntCSINCo0KPQmtCg0JgKK9CQ0KXQnNCV0KLQntCS0JjQiyDQmtCQ0KDQm9CeCivQkNCl0JzQldCi0J7QktCY0Isg0KHQntCk0JjQiNCQCivQkNCl0JzQldCi0J7QktCY0Isg0JfQm9CQ0KLQmtCeCivQkNCY0KDQkNCb0JTQmCDQkdCe0JbQmNCU0JDQoAor0JDQiCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0Igg0JLQldCh0J3QkAor0JDQiNCQ0J3QntCS0JjQiyDQodCQ0JvQmtCeCivQkNCI0KbQldCSINCU0KPQqNCQ0J0KK9CQ0IjQj9CQ0J3QntCS0JjQiyDQkNCd0JDQodCi0JDQodCY0IjQkCDQlNCgINCb0JXQmtCQ0KAKK9CQ0IjQlNCQ0KDQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CQ0IjQlNCV0KAg0JbQldCJ0JrQngor0JDQiNCU0JXQoCDQkdCe0KjQmtCeCivQkNCI0JTQldCgINCU0JDQndCY0KbQkAor0JDQiNCU0JjQiyDQgtCe0KDQgtCVCivQkNCI0JTQmNCd0Jgg0KHQkNCR0KDQmNCI0JAKK9CQ0IjQlNCY0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CQ0IjQlNCj0Jog0IjQntCh0JjQnAor0JDQiNCU0KPQmiDQnNCQ0KDQmtCeCivQkNCI0JTQo9CaINCc0JjQm9CY0KbQkAor0JDQiNCU0KPQmiDQotCe0KjQkAor0JDQiNCU0KPQmtCe0JLQmNCLINCT0J7QiNCa0J4KK9CQ0IjQlNCj0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9CQ0IjQlNCj0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQkNCI0JTQo9Ca0J7QktCY0Isg0KHQntCk0JjQiNCQCivQkNCI0JPQldCd0JzQkNCl0KIg0JzQkNCg0JjQndCQCivQkNCI0JrQo9Cd0JjQiyDQkNCU0JjQmwor0JDQiNCa0KPQndCY0Isg0J3QldCX0JjQoAor0JDQiNCg0JDQndCe0JLQmNCLINCI0KPQodCj0KQKK9CQ0IjQotCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQkNCI0KLQm9CR0JXQlyDQnNCY0IjQkNCiCivQkNCI0KLQm9CR0JXQlyDQnNCY0IjQkNCiCivQkNCI0JLQkNCX0J7QktCY0Isg0JDQi9CY0KQKK9CQ0IjQktCQ0JfQntCS0JjQiyDQkNCh0JvQkNCdCivQkNCI0JLQkNCX0J7QktCY0Isg0JXQodCc0JAKK9CQ0IjQktCQ0JfQntCS0JjQiyDQpNCQ0JjQlAor0JDQiNCS0JjQm9CV0KAg0KHQotCV0JLQkNCdCivQkNCI0JfQldCd0JHQldCg0JPQldCgINCR0JXQm9CQCivQkNCa0KjQkNCc0J7QktCY0Isg0J/Qm9CQ0JLQqNCQCivQkNCa0JjQmiDQlNCg0JDQk9CY0KbQkAor0JDQmtCY0Jog0JTQo9Co0JDQnQor0JDQmtCY0J0g0JTQoNCQ0JPQkAor0JDQmtCY0J0g0KHQntCk0JjQiNCQCivQkNCa0J7QndCn0JjQiyDQl9Ce0KDQkNCdCivQkNCa0KDQkNCfINCk0JjQm9CY0J8g0J/QoNCe0KQKK9CQ0JrQoNCQ0J/QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkNCa0KHQldCd0KLQmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0JDQmtCh0JXQndCi0JjQiNCV0JLQmNCLINCd0JjQmtCe0JvQkCDQodCj0JTQmNCI0JAKK9CQ0JrQodCV0J3QotCY0IjQldCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQkNCa0KHQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JDQmtCh0JjQnSDQnNCY0JvQntCS0JDQnQor0JDQmtCh0JjQnSDQktCb0JDQlNCY0JzQmNCgINCU0KAg0JjQndCTCivQkNCb0JDQgtCYINCo0JDQndCU0J7QoAor0JDQm9CQ0JHQkNCo0J7QktCh0JrQmCDQk9Cg0KPQiNCQCivQkNCb0JDQkdCQ0KjQntCS0KHQmtCYINCY0JHQoNCQ0KXQmNCcCivQkNCb0JDQkdCj0KDQmNCLINCf0JDQktCb0JUKK9CQ0JvQkNCR0KPQoNCY0Isg0KLQldCe0JTQntCgINCU0JjQn9CbINCY0J3Qkwor0JDQm9CQ0I/QmNCLINCC0J7QoNCC0J4KK9CQ0JvQkNCU0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQm9CQ0JTQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCb0JDQlNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CQ0JvQkNCU0JjQiyDQmNCU0JAKK9CQ0JvQkNCU0JjQiyDQodCi0JXQktCQ0J0KK9CQ0JvQkNCT0JjQiyDQlNCj0KjQkNCdCivQkNCb0JDQk9CY0Isg0JzQo9CI0J4KK9CQ0JvQkNCT0JjQiyDQndCQ0JTQkAor0JDQm9CQ0JPQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CQ0JvQkNCT0JjQiyDQktCV0KDQkAor0JDQm9CQ0JjQptCQINCg0JDQlNCe0IjQmtCQCivQkNCb0JDQiNCY0KbQkCDQkdCg0JDQndCa0J4KK9CQ0JvQkNCI0JjQptCQINCI0J7QktCeCivQkNCb0JDQnSDQktCV0KDQkAor0JDQm9CQ0J3QntCSINCg0KPQltCY0KbQkAor0JDQm9CQ0KDQk9CY0Isg0IjQldCb0JXQndCQCivQkNCb0JDQoNCT0JjQiyDQnNCY0JvQmNCm0JAKK9CQ0JvQkNCg0JPQmNCLINCf0JXQotCQ0KAKK9CQ0JvQkNCg0JPQmNCLINCg0JDQlNCVCivQkNCb0JDQoNCT0JjQiyDQoNCQ0J3QmtCQCivQkNCb0JDQoNCT0JjQiyDQotCY0JzQkAor0JDQm9CQ0KHQntCSINCU0KDQkNCT0J7QodCb0JDQkgor0JDQm9CQ0KHQntCSINCb0JDQl9CQ0KAg0JTQmNCf0Jsg0JjQndCTCivQkNCb0JDQktCQ0IrQkCDQnNCY0KDQiNCQ0J3QkAor0JDQm9CR0JjQiNCQ0J3QmNCLINCR0J7QoNCeCivQkNCb0JHQmNCI0JDQndCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JDQm9CR0J7QoiDQmNCb0JjQiNCQCivQkNCb0JHQoNCV0KXQoiDQiNCQ0J3QntCoCivQkNCb0JHQoNCV0KXQoiDQnNCQ0KDQmNCI0JAKK9CQ0JvQkdCg0JXQpdCiINCc0JDQoNCY0IjQkAor0JDQm9CR0KPQiSDQlNCY0JLQndCQCivQkNCb0JHQo9CJINCT0J7QoNCU0JDQndCQCivQkNCb0JHQo9CJINCS0JXQodCV0JvQmNCdCivQkNCb0JHQo9CJINCS0J7QiNCY0KHQm9CQ0JLQmtCQCivQkNCb0JXQmtCh0JDQndCU0JXQoCDQkNCd0JAKK9CQ0JvQldCa0KHQkNCd0JTQldCgINCg0KPQlNCe0JvQpAor0JDQm9CV0JrQodCQ0J3QlNCg0JjQiyDQnNCY0JvQldCh0JAg0JTQoAor0JDQm9CV0JrQodCQ0J3QlNCg0J7QkiDQodCb0JDQktCn0JAKK9CQ0JvQldCa0KHQkNCd0JTQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JDQm9CV0JrQodCQ0J3QlNCg0J7QktCY0Isg0JTQo9Co0JDQnQor0JDQm9CV0JrQodCYINCh0KLQldCS0JDQnQor0JDQm9CV0JrQodCY0Isg0KfQkNCh0JvQkNCSCivQkNCb0JXQmtCh0JjQiyDQp9CV0JTQntCc0JjQoAor0JDQm9CV0JrQodCY0Isg0JbQmNCS0J7QnNCY0KAKK9CQ0JvQldCa0KHQmNCLINCC0J7QoNCC0JUKK9CQ0JvQldCa0KHQmNCLINCC0KPQoNCQCivQkNCb0JXQmtCh0JjQiyDQkNCm0JAKK9CQ0JvQldCa0KHQmNCLINCQ0JTQkNCcCivQkNCb0JXQmtCh0JjQiyDQkNCg0KHQkAor0JDQm9CV0JrQodCY0Isg0JHQmNCh0JXQoNCa0JAKK9CQ0JvQldCa0KHQmNCLINCR0J7QltCY0JTQkNCgCivQkNCb0JXQmtCh0JjQiyDQkdCe0JbQmNCU0JDQoAor0JDQm9CV0JrQodCY0Isg0JHQntCT0JTQkNCdCivQkNCb0JXQmtCh0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0JvQldCa0KHQmNCLINCR0KDQkNCd0JrQngor0JDQm9CV0JrQodCY0Isg0JHQoNCQ0J3QmtCeCivQkNCb0JXQmtCh0JjQiyDQkdCg0JDQndCa0J4KK9CQ0JvQldCa0KHQmNCLINCR0KPQlNCY0JzQmNCgCivQkNCb0JXQmtCh0JjQiyDQlNCQ0J3QmNCm0JAKK9CQ0JvQldCa0KHQmNCLINCU0JDQoNCY0J3QmtCQCivQkNCb0JXQmtCh0JjQiyDQlNCg0JDQk9CQ0J0KK9CQ0JvQldCa0KHQmNCLINCU0KDQkNCT0JAKK9CQ0JvQldCa0KHQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CQ0JvQldCa0KHQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CQ0JvQldCa0KHQmNCLINCU0KDQkNCT0J7QodCb0JDQkiDQlNCgCivQkNCb0JXQmtCh0JjQiyDQlNCj0KjQkNCdCivQkNCb0JXQmtCh0JjQiyDQlNCj0KjQkNCdCivQkNCb0JXQmtCh0JjQiyDQldCS0JjQptCQCivQkNCb0JXQmtCh0JjQiyDQk9Ce0IjQmtCeCivQkNCb0JXQmtCh0JjQiyDQk9Ce0KDQkNCdCivQkNCb0JXQmtCh0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JDQm9CV0JrQodCY0Ist0JPQoNCY0KHQldCgINCd0JjQmtCe0JvQkAor0JDQm9CV0JrQodCY0Isg0JjQm9CY0J3QmtCQCivQkNCb0JXQmtCh0JjQiyDQmNCS0JDQnQor0JDQm9CV0JrQodCY0Isg0IjQldCb0JXQndCQCivQkNCb0JXQmtCh0JjQiyDQiNCV0JvQmNCm0JAKK9CQ0JvQldCa0KHQmNCLINCI0JXQm9CY0KbQkAor0JDQm9CV0JrQodCY0Isg0IjQntCh0JjQnwor0JDQm9CV0JrQodCY0Isg0IjQntCS0JDQnQor0JDQm9CV0JrQodCY0Isg0IjQntCS0J4KK9CQ0JvQldCa0KHQmNCLINCa0JDQotCQCivQkNCb0JXQmtCh0JjQiyDQmtCQ0KLQmNCm0JAKK9CQ0JvQldCa0KHQmNCLINCa0JDQotCY0KbQkAor0JDQm9CV0JrQodCY0Isg0JrQntCh0JAKK9CQ0JvQldCa0KHQmNCLINCa0J7QodCi0JAKK9CQ0JvQldCa0KHQmNCLINCa0J7QodCi0JAKK9CQ0JvQldCa0KHQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9CQ0JvQldCa0KHQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9CQ0JvQldCa0KHQmNCLINCJ0JjQidCQ0J3QkAor0JDQm9CV0JrQodCY0Isg0InQmNCJ0JDQndCQCivQkNCb0JXQmtCh0JjQiyDQidCj0JHQmNCo0JAKK9CQ0JvQldCa0KHQmNCLINCJ0KPQotCe0JzQmNCgCivQkNCb0JXQmtCh0JjQiyDQnNCQ0KDQmNCdCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQkNCd0JrQkAor0JDQm9CV0JrQodCY0Isg0JzQmNCb0JDQnQor0JDQm9CV0JrQodCY0Isg0JzQmNCb0JDQnQor0JDQm9CV0JrQodCY0Isg0JzQmNCb0JDQnQor0JDQm9CV0JrQodCY0Isg0JzQmNCb0JXQndCQCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQmNCd0JrQkAor0JDQm9CV0JrQodCY0Isg0JzQmNCb0JjQktCe0IgKK9CQ0JvQldCa0KHQmNCLINCc0JjQm9CY0JLQntCICivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQntCoCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQntCoCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQntCoCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQntCI0JUKK9CQ0JvQldCa0KHQmNCLINCc0JjQm9Ce0KDQkNCUCivQkNCb0JXQmtCh0JjQiyDQnNCY0JvQntCS0JDQnQor0JDQm9CV0JrQodCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CQ0JvQldCa0KHQmNCLINCc0JjQntCU0KDQkNCTCivQkNCb0JXQmtCh0JjQiyDQnNCY0J7QlNCg0JDQkwor0JDQm9CV0JrQodCY0Isg0JzQmNCg0IjQkNCd0JAKK9CQ0JvQldCa0KHQmNCLINCc0JjQoNCa0J4KK9CQ0JvQldCa0KHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CQ0JvQldCa0KHQmNCLINCc0J7QnNCn0JjQm9CeCivQkNCb0JXQmtCh0JjQiyDQnNCe0JzQp9CY0JvQngor0JDQm9CV0JrQodCY0Isg0JzQntCc0JjQoAor0JDQm9CV0JrQodCY0Isg0J3QkNCU0JAKK9CQ0JvQldCa0KHQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9CQ0JvQldCa0KHQmNCLINCd0JXQkdCe0IjQqNCQCivQkNCb0JXQmtCh0JjQiyDQndCY0JrQntCb0JAKK9CQ0JvQldCa0KHQmNCLINCd0JjQmtCe0JvQkAor0JDQm9CV0JrQodCY0Isg0J/QkNCj0JvQmNCd0JAKK9CQ0JvQldCa0KHQmNCLINCf0JDQktCb0JUKK9CQ0JvQldCa0KHQmNCLINCf0JXQotCQ0KAKK9CQ0JvQldCa0KHQmNCLINCf0JXQotCQ0KAKK9CQ0JvQldCa0KHQmNCLINCf0JXQotCQ0KAKK9CQ0JvQldCa0KHQmNCLINCf0KDQldCU0KDQkNCTCivQkNCb0JXQmtCh0JjQiyDQoNCQ0JTQlQor0JDQm9CV0JrQodCY0Isg0KDQkNCU0JzQmNCb0JAKK9CQ0JvQldCa0KHQmNCLINCg0JDQlNCe0JzQmNCgCivQkNCb0JXQmtCh0JjQiyDQoNCQ0IjQmtCeCivQkNCb0JXQmtCh0JjQiyDQoNCQ0KLQmtCeCivQkNCb0JXQmtCh0JjQiyDQoNCQ0KLQmtCeCivQkNCb0JXQmtCh0JjQiyDQoNCY0KHQotCeCivQkNCb0JXQmtCh0JjQiyDQodCQ0JLQngor0JDQm9CV0JrQodCY0Isg0KHQm9CQ0JLQndCQCivQkNCb0JXQmtCh0JjQiyDQodCc0JjQidCQCivQkNCb0JXQmtCh0JjQiyDQodCi0JXQktCQ0J0KK9CQ0JvQldCa0KHQmNCLINCh0KLQldCS0JDQnQor0JDQm9CV0JrQodCY0Isg0JLQkNCh0JAKK9CQ0JvQldCa0KHQmNCLINCS0JXQoNCQCivQkNCb0JXQmtCh0JjQiyDQktCV0KDQkAor0JDQm9CV0JrQodCY0Isg0JLQldCh0J3QkAor0JDQm9CV0JrQodCY0Isg0JLQmNCi0J7QnNCY0KAKK9CQ0JvQldCa0KHQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0JDQm9CV0JrQodCY0Isg0JLQntCI0JjQodCb0JDQkgor0JDQm9CV0JrQodCY0Isg0JfQlNCg0JDQktCV0J3QmtCQCivQkNCb0JXQmtCh0JjQiyDQl9CU0KDQkNCS0JrQngor0JDQm9CV0JrQodCY0Isg0JfQm9CQ0KLQmNCR0J7QoAor0JDQm9CV0JrQodCY0Isg0JfQntCg0JDQnQor0JDQm9CV0JrQodCY0IjQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CQ0JvQldCa0KHQmNCI0JXQktCY0Isg0JHQntCg0JAKK9CQ0JvQldCa0KHQmNCI0JXQktCY0Isg0JjQodCY0JTQntCgCivQkNCb0JXQmtCh0JjQiNCV0JLQmNCLINCI0J7QktCQ0J0KK9CQ0JvQldCa0KHQmNCI0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQkNCb0JXQmtCh0J7QkiDQk9CV0J7QoNCT0JgKK9CQ0JvQldCa0KHQntCSINCc0JjQm9Cj0KLQmNCdCivQkNCb0JXQmtCh0J7QkiDQodCY0JzQldCe0J0KK9CQ0JvQldCa0KHQntCSINCX0J7QoNCQ0J0KK9CQ0JvQldCa0KHQntCS0KHQmtCYINCc0JjQm9CVCivQkNCb0JXQmtCh0J7QktCh0JrQmCDQodCg0JHQntCJ0KPQkQor0JDQm9CV0JzQn9CY0Isg0KHQkNCS0J4KK9CQ0JvQldCc0J/QmNCI0JXQktCY0Isg0JfQntCg0JDQnQor0JDQm9CV0JzQn9CY0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQkNCb0JXQndCU0JXQoCDQqNCV0KTQmNCaCivQkNCb0Jgg0IjQo9Cb0JjQodCi0JDQnQor0JDQm9CY0KjQmNCLINCR0JXQodCY0JwKK9CQ0JvQmNCo0JjQiyDQndCY0IjQkNCXCivQkNCb0JjQqNCY0Isg0KDQldCP0JXQnwor0JDQm9CY0KjQmNCLINCS0JDQodCS0JjQiNCQCivQkNCb0JjQgtCj0JrQmNCLINCY0JvQmNCI0JAKK9CQ0JvQmNCR0JDQqNCY0Isg0KXQkNCc0JjQlAor0JDQm9CY0IjQkCDQkNCR0JTQmNCg0JDQpdCc0JDQnQor0JDQm9CY0IjQkCDQmNCX0JXQogor0JDQm9CY0IjQldCS0JjQiyDQndCV0JfQmNCgCivQkNCb0JjQiNCV0JLQmNCLINCh0JDQlNCg0JjQiNCQCivQkNCb0JjQm9Ce0JLQmNCLINCS0JjQndCa0J4KK9CQ0JvQmNCc0J/QmNCLINCW0JjQktCa0J4KK9CQ0JvQmNCc0J/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCb0JjQnNCf0JjQiyDQkdCQ0KDQkdCQ0KDQkAor0JDQm9CY0JzQn9CY0Isg0JHQntCT0J7QnNCY0KAKK9CQ0JvQmNCc0J/QmNCLINCR0J7QoNCY0JLQntCI0JUKK9CQ0JvQmNCc0J/QmNCLINCU0KDQkNCT0JDQnQor0JDQm9CY0JzQn9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9CQ0JvQmNCc0J/QmNCLINCI0JXQm9CQCivQkNCb0JjQnNCf0JjQiyDQiNCe0JLQkNCdCivQkNCb0JjQnNCf0JjQiyDQidCj0JHQmNCm0JAKK9CQ0JvQmNCc0J/QmNCLINCc0J7QnNCn0JjQm9CeCivQkNCb0JjQnNCf0JjQiyDQodCb0JDQktCa0JAKK9CQ0JvQmNCc0J/QmNCLINCh0JvQkNCS0JrQngor0JDQm9CY0JzQn9CY0Isg0KHQotCV0JLQkNCdCivQkNCb0JjQnNCf0JjQiyDQotCY0KXQntCc0JjQoAor0JDQm9CY0JzQn9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JDQm9CY0JzQn9CY0Isg0JLQntCI0JjQodCb0JDQkgor0JDQm9CY0JzQn9CY0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQkNCb0JjQnNCf0JjQiNCV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JDQm9CY0JzQn9CY0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQkNCb0JjQnNCf0JjQiNCV0JLQmNCLINCI0J7QktCQ0J0KK9CQ0JvQmNCc0J/QmNCI0JXQktCY0Isg0JLQldCh0JXQm9CY0J3QmtCQCivQkNCb0JjQntCSINCl0KPQodCV0JjQnQor0JDQm9CY0J7QkiDQntCc0JXQoAor0JDQidCYINCQ0IjQoNCQ0JTQmNCdCivQkNCJ0Jgg0JzQkNCa0KHQo9CiCivQkNCJ0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQkNCJ0JjQiyDQoNCQ0JzQngor0JDQidCY0IjQo9Cf0Jgg0KfQldCg0JjQnAor0JDQm9Ca0JjQiyDQodCi0JXQktCQ0J0KK9CQ0JvQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JDQm9Cc0JDQqNCYINCV0KLQldCbCivQkNCb0JzQkNCo0Jgg0JzQkNCg0JjQqNCa0JAKK9CQ0JvQnNCQ0KjQmCDQnNCQ0KLQmNCI0JAKK9CQ0JvQnNCQ0KjQmCDQodCQ0JzQo9CV0JsKK9CQ0JvQnNCQ0JbQkNCdINCh0JvQkNCS0JrQniDQndCe0JLQmNCd0JDQoAor0JDQm9Ce0KDQmNCLINCU0KDQkNCT0J7QnNCY0KDQmtCQCivQkNCb0J7QoNCY0Isg0JjQm9CY0IjQkAor0JDQm9Ci0JXQoNCe0JIg0JDQndCQCivQkNCb0KLQmtCe0KDQnSDQnNCQ0JvQktCY0J3QkAor0JDQm9CS0JDQj9CY0J0g0JTQoNCQ0JPQo9Ci0JjQnQor0JDQm9CS0JjQoNCe0JLQmNCLINCU0KDQkNCT0J7QoNCQ0JQKK9CQ0JvQktCY0KDQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JDQnNCQ0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQkNCc0JDQnNCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JDQnNCR0JDQoNCP0JjQiNCV0JIg0KXQoNCY0KHQotCeCivQkNCc0JHQniDQmNCb0JjQiNCQCivQkNCc0JHQoNCe0JfQmNCLINCg0JDQodCi0JrQngor0JDQnNCR0KDQo9CoINCQ0KLQmNCb0JAKK9CQ0JzQkdCg0KPQqNCY0Isg0JzQkNCT0JTQkAor0JDQnNCR0KDQo9Ch0J7QkiDQiNCe0JLQkNCdCivQkNCc0JXQotCe0JIg0J7QodCc0JDQnQor0JDQnNCV0KLQntCS0JjQiyDQgtCe0KDQgtCVCivQkNCc0JXQotCe0JLQmNCLINCC0J7QoNCC0J4KK9CQ0JzQldCi0J7QktCY0Isg0ILQo9Cg0J4KK9CQ0JzQldCi0J7QktCY0Isg0JHQo9CU0JjQnNCY0KAKK9CQ0JzQldCi0J7QktCY0Isg0IjQldCb0JXQndCQCivQkNCc0JXQotCe0JLQmNCLINCI0J7QktCQ0J0KK9CQ0JzQldCi0J7QktCY0Isg0JrQkNCi0JjQptCQCivQkNCc0JXQotCe0JLQmNCLINCb0JDQl9CQ0KAKK9CQ0JzQldCi0J7QktCY0Isg0JvQkNCX0JDQoAor0JDQnNCV0KLQntCS0JjQiyDQnNCQ0KDQmtCeCivQkNCc0JXQotCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQkNCc0JXQotCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkNCc0JXQotCe0JLQmNCLINCc0JjQoNCa0J4KK9CQ0JzQldCi0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CQ0JzQldCi0J7QktCY0Isg0KDQkNCI0JrQngor0JDQnNCV0KLQntCS0JjQiyDQoNCQ0KLQmtCeCivQkNCc0JXQotCe0JLQmNCLINCg0KPQodCc0JjQoNCQCivQkNCc0JXQotCe0JLQmNCLINCh0J7QpNCY0IjQkAor0JDQnNCV0KLQntCS0JjQiyDQktCe0IjQmNCdCivQkNCc0JjQltCY0Isg0JTQkNCd0JjQptCQCivQkNCc0JjQltCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JDQnNCY0JbQmNCLINCi0JXQntCU0J7QoNCQCivQkNCd0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQkNCd0KfQmNCLINCc0JjQm9CQ0J0KK9CQ0J3Qp9CY0Isg0J3QldCS0JXQndCa0JAg0JTQoAor0JDQndCC0JXQm9CY0Isg0JDQndCC0JXQm9Ca0J4KK9CQ0J3QgtCV0JvQmNCLINCQ0J3QlNCg0JjQiNCQCivQkNCd0ILQldCb0JjQiyDQkNCd0JjQptCQCivQkNCd0ILQldCb0JjQiyDQkdCY0InQkNCd0JAKK9CQ0J3QgtCV0JvQmNCLINCR0JvQkNCT0JjQqNCQCivQkNCd0ILQldCb0JjQiyDQkdCe0JbQmNCU0JDQoCDQlNCgCivQkNCd0ILQldCb0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQkNCd0ILQldCb0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQkNCd0ILQldCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0J3QgtCV0JvQmNCLINCU0JDQoNCY0J3QmtCQCivQkNCd0ILQldCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0JDQndCC0JXQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JDQndCC0JXQm9CY0Isg0JTQo9Co0JDQndCa0JAKK9CQ0J3QgtCV0JvQmNCLINCT0J7QoNCQ0J0KK9CQ0J3QgtCV0JvQmNCLINCY0JvQmNCI0JAKK9CQ0J3QgtCV0JvQmNCLINCY0JvQmNCI0JAKK9CQ0J3QgtCV0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQkNCd0ILQldCb0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQkNCd0ILQldCb0JjQiyDQnNCY0JvQntCg0JDQlAor0JDQndCC0JXQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CQ0J3QgtCV0JvQmNCLINCc0JjQoNCI0JDQndCQCivQkNCd0ILQldCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JDQndCC0JXQm9CY0Isg0JzQmNCi0JDQoAor0JDQndCC0JXQm9CY0Isg0J3QmNCa0J7Qm9CQCivQkNCd0ILQldCb0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JDQndCC0JXQm9CY0Isg0KDQkNCU0J7QiNCY0KbQkAor0JDQndCC0JXQm9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0JDQndCC0JXQm9CY0Isg0KHQkNCS0JAKK9CQ0J3QgtCV0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQkNCd0ILQldCb0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCd0ILQldCb0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCd0ILQldCb0JjQiyDQodCi0JXQktCQ0J0KK9CQ0J3QgtCV0JvQmNCLINCS0JDQodCQCivQkNCd0ILQldCb0JjQiyDQktCQ0KHQngor0JDQndCC0JXQm9CY0Isg0JLQldCJ0JrQngor0JDQndCC0JXQm9CY0Isg0JLQldCh0JXQm9CY0J0KK9CQ0J3QgtCV0JvQmNCLINCS0JXQodCd0JAKK9CQ0J3QgtCV0JvQmNCLINCS0JvQkNCU0JAKK9CQ0J3QgtCV0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQkNCd0ILQldCb0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JDQndCC0JXQm9Ca0J7QktCY0Ist0JTQo9CU0JjQiyDQl9Cb0JDQotCQCivQkNCd0ILQldCb0JrQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCb0JjQlNCY0IjQkAor0JDQndCC0JXQm9Ca0J7QktCY0Isg0InQo9CR0JjQqNCQCivQkNCd0ILQldCb0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQkNCd0ILQldCb0JrQntCS0JjQiyDQnNCY0JvQntCoCivQkNCd0ILQldCb0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JDQndCC0JXQm9Ca0J7QktCY0Isg0J3QkNCi0JDQqNCQCivQkNCd0ILQldCb0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQkNCd0ILQldCb0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JDQndCC0JXQm9Ca0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCg0J7QkdCV0KDQogor0JDQndCC0JXQm9Ca0J7QktCY0Isg0KHQmNCc0JAKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCh0KLQkNCd0JrQngor0JDQndCC0JXQm9Ca0J7QktCY0Isg0KHQotCV0JLQkNCdCivQkNCd0ILQldCb0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JDQndCC0JXQm9Ca0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQkNCd0ILQldCb0JrQntCS0JjQiyDQodCS0JXQotCe0JzQmNCgCivQkNCd0ILQldCb0JrQntCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQkNCd0ILQldCb0JrQntCS0JjQiyDQktCV0KDQkAor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JLQmNCd0JrQngor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JLQmNCd0JrQngor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JLQmNCd0JrQngor0JDQndCC0JXQm9Ca0J7QktCY0Isg0JLQo9Ca0JDQlNCY0J0KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CQ0J3QgtCV0JvQmtCe0JLQmNCLINCX0J7QoNCQCivQkNCd0ILQldCb0J7QktCY0Isg0InQo9CR0JjQqNCQCivQkNCd0ILQldCb0J7QktCY0Isg0JLQldCg0JjQptCQCivQkNCd0ILQldCb0J7QktCh0JrQmCDQgtCe0KDQgtCVCivQkNCd0ILQmNCLINCh0KLQldCS0JDQnQor0JDQndCC0KPQqNCY0Isg0JbQkNCg0JrQngor0JDQndCC0KPQqNCY0Isg0IjQldCb0JjQodCQ0JLQmtCQCivQkNCd0ILQo9Co0JjQiyDQnNCY0JvQntCg0JDQlAor0JDQndCC0KPQqNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQndCQ0KHQotCQ0KHQmNCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JDQndCQ0KHQotCQ0KHQmNCI0JXQktCY0Isg0IjQo9Cb0JrQmNCm0JAKK9CQ0J3QkNCh0KLQkNCh0JjQiNCV0JLQmNCLINCX0J7QoNCY0KbQkAor0JDQndCQ0KHQotCQ0KHQmNCI0JXQktCY0Isg0JfQntCg0JjQptCQCivQkNCd0JDQodCi0JDQodCe0JIg0JzQkNCg0JrQngor0JDQndCQ0KHQotCQ0KHQntCSINCd0JjQmtCe0JvQkAor0JDQndCQ0KHQotCQ0KHQntCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCd0JDQoyDQk9CQ0JHQoNCY0JXQm9CQCivQkNCd0JDQoyDQodCi0JXQktCQ0J0KK9CQ0J3QlNCQ0JHQkNCaINCc0JDQoNCa0J4KK9CQ0J3QlNCQ0JHQkNCa0JAg0JDQndCi0JUKK9CQ0J3QlNCQ0JHQkNCa0JAg0KHQm9CQ0JLQmNCm0JAKK9CQ0J3QlNCV0KAg0JjQnNCg0JUKK9CQ0J3QlNCV0KDQm9Ce0J0g0KHQotCV0JLQmNCm0JAKK9CQ0J3QlNCV0KHQldCb0JjQiyDQqNCi0JXQpNCY0KbQkAor0JDQndCU0JXQktCh0JrQmCDQoNCQ0JTQlQor0JDQndCU0JjQiyDQodCS0JXQotCe0JfQkNCgCivQkNCd0JTQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CQ0J3QlNCe0J3QmNCQ0JTQmNChINCc0JjQm9CY0KbQkAor0JDQndCU0J7QndCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQkNCd0JTQntCd0J7QkiDQndCV0J3QkNCUCivQkNCd0JTQntCd0J7QkiDQl9Ce0KDQmNCm0JAKK9CQ0J3QlNCe0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CQ0J3QlNCg0JDQqNCY0Jog0J/QkNCS0JXQmwor0JDQndCU0KDQldCQ0KLQkCDQodCb0JDQktCa0J4KK9CQ0J3QlNCg0JXQmNCLINCg0JDQlNCe0JLQkNCdCivQkNCd0JTQoNCV0IjQldCSINCl0JXQm9CV0J3QkAor0JDQndCU0KDQldCI0JXQkiDQnNCY0KXQkNCI0JvQngor0JDQndCU0KDQldCI0JXQktCY0Isg0JHQntCT0J7QodCQ0JIKK9CQ0J3QlNCg0JXQiNCV0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CQ0J3QlNCg0JXQiNCV0JLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9CQ0J3QlNCg0JXQiNCV0JLQmNCLINCY0JLQkNCdCivQkNCd0JTQoNCV0IjQldCS0JjQiyDQnNCQ0KDQmtCeCivQkNCd0JTQoNCV0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQkNCd0JTQoNCV0IjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkNCd0JTQoNCV0IjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCd0JTQoNCV0IjQldCS0JjQiyDQotCV0J7QlNCe0KAKK9CQ0J3QlNCg0JXQiNCV0JLQmNCLINCS0KPQmtCQ0KjQmNCdINCU0JjQn9CbINCY0J3Qkwor0JDQndCU0KDQldCI0JjQiyDQltCQ0KDQmtCeCivQkNCd0JTQoNCV0IjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CQ0J3QlNCg0JXQiNCY0Isg0JTQoNCQ0JPQkNCdCivQkNCd0JTQoNCV0IjQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CQ0J3QlNCg0JXQiNCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JDQndCU0KDQldCI0JjQiyDQodCg0JXQotCV0J0KK9CQ0J3QlNCg0JXQiNCY0Isg0JLQldCg0JAKK9CQ0J3QlNCg0JXQiNCY0Isg0JfQntCg0JDQnQor0JDQndCU0KDQldCI0JjQiyDQl9Ce0KDQmNCm0JAKK9CQ0J3QlNCg0JXQoSDQkNCd0ILQldCb0JrQngor0JDQndCU0KDQmNCn0JXQmiDQkNCd0JAKK9CQ0J3QlNCg0JjQp9CV0Jog0JvQkNCI0J7QqAor0JDQndCU0KDQmNCn0JXQmiDQnNCQ0JPQlNCQ0JvQldCd0JAKK9CQ0J3QlNCg0JjQp9CV0Jog0J/QkNCS0JDQngor0JDQndCU0KDQmNCn0JXQmiDQn9CQ0JLQm9CVCivQkNCd0JTQoNCY0Isg0JbQldCJ0JrQkAor0JDQndCU0KDQmNCLINCW0JjQmtCQCivQkNCd0JTQoNCY0Isg0JbQmNCS0JDQnQor0JDQndCU0KDQmNCLINCC0J7QoNCC0JUKK9CQ0J3QlNCg0JjQiyDQgtCj0KDQgtCY0J3QkAor0JDQndCU0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCd0JTQoNCY0Isg0JHQntCT0J7QidCj0JEKK9CQ0J3QlNCg0JjQiyDQkdCe0IjQkNCdCivQkNCd0JTQoNCY0Isg0JHQntCh0JjQidCa0JAKK9CQ0J3QlNCg0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQkNCd0JTQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkNCd0JTQoNCY0Isg0JTQkNCg0JjQndCa0JAKK9CQ0J3QlNCg0JjQiyDQlNCe0KHQotCQCivQkNCd0JTQoNCY0Isg0JTQoNCQ0JPQkNCdCivQkNCd0JTQoNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JDQndCU0KDQmNCLINCU0KPQqNCQ0J0KK9CQ0J3QlNCg0JjQiyDQlNCj0KjQkNCdCivQkNCd0JTQoNCY0Isg0JTQo9Co0JDQnQor0JDQndCU0KDQmNCLINCU0KPQqNCQ0J0KK9CQ0J3QlNCg0JjQiyDQlNCj0KjQkNCdCivQkNCd0JTQoNCY0Isg0KTQoNCY0JTQkAor0JDQndCU0KDQmNCLINCY0JvQmNCI0JAKK9CQ0J3QlNCg0JjQiyDQiNCV0JvQldCd0JAKK9CQ0J3QlNCg0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JDQndCU0KDQmNCLINCI0J7QktCY0KbQkAor0JDQndCU0KDQmNCLLdCa0J7QktCQ0KfQldCS0JjQiyDQntCb0JjQktCV0KDQkAor0JDQndCU0KDQmNCLINCb0JDQl9CQ0KAKK9CQ0J3QlNCg0JjQiyDQm9CQ0JfQkAor0JDQndCU0KDQmNCLINCJ0JjQidCQ0J3QkAor0JDQndCU0KDQmNCLINCJ0JjQidCQ0J3QkAor0JDQndCU0KDQmNCLINCb0KPQlNCc0JjQm9CQCivQkNCd0JTQoNCY0Isg0JzQmNCb0JUKK9CQ0J3QlNCg0JjQiyDQnNCY0JvQntCoCivQkNCd0JTQoNCY0Isg0JzQmNCb0J7QqAor0JDQndCU0KDQmNCLINCd0JXQkdCe0IjQqNCQCivQkNCd0JTQoNCY0Isg0J3QldCh0KLQntCgCivQkNCd0JTQoNCY0Isg0J3QmNCa0J7Qm9CQCivQkNCd0JTQoNCY0Isg0J/QldCg0JjQptCQCivQkNCd0JTQoNCY0Isg0J/QldCi0JDQoAor0JDQndCU0KDQmNCLINCg0JDQlNCY0KHQkNCSCivQkNCd0JTQoNCY0Isg0KDQkNCU0JjQodCb0JDQkgor0JDQndCU0KDQmNCLINCh0JDQktCQCivQkNCd0JTQoNCY0Isg0KHQmNCc0JAKK9CQ0J3QlNCg0JjQiyDQodCb0JDQktCa0JAKK9CQ0J3QlNCg0JjQiyDQodCb0JDQktCa0JAKK9CQ0J3QlNCg0JjQiyDQodCb0JDQktCe0InQo9CRCivQkNCd0JTQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQndCU0KDQmNCLINCh0KLQldCS0JDQnQor0JDQndCU0KDQmNCLINCh0KLQldCS0JDQnQor0JDQndCU0KDQmNCLINCi0J7QlNCe0KAKK9CQ0J3QlNCg0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkNCd0JTQoNCY0Isg0JLQldCg0JjQptCQCivQkNCd0JTQoNCY0Isg0JLQm9CQ0JTQkAor0JDQndCU0KDQmNCLINCS0JvQkNCU0JjQnNCY0KDQkAor0JDQndCU0KDQmNCLINCS0KPQmtCe0JzQkNCdCivQkNCd0JTQoNCY0Isg0JfQntCg0JAKK9CQ0J3QlNCg0JjQk9CQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCd0JTQoNCY0IjQkNCo0JXQkiDQmtCe0KHQkNCd0JAKK9CQ0J3QlNCg0JjQiNCQ0KjQldCSINCg0KPQltCY0KbQkAor0JDQndCU0KDQmNCI0JDQqNCV0JLQmNCLINCW0JXQidCa0J4KK9CQ0J3QlNCg0JjQiNCQ0KjQldCS0JjQiyDQkNCd0JrQkAor0JDQndCU0KDQmNCI0JDQqNCV0JLQmNCLINCR0KDQkNCd0JrQngor0JDQndCU0KDQmNCI0JDQqNCV0JLQmNCLINCI0JXQm9CV0J3QkAor0JDQndCU0KDQmNCI0JDQqNCV0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQkNCd0JTQoNCY0IjQldCS0JjQiyDQltCY0JLQkAor0JDQndCU0KDQmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0JDQndCU0KDQmNCdINCQ0J3QgtCV0JvQmtCQCivQkNCd0JTQoNCY0J0g0JjQodCY0JTQntCgCivQkNCd0JTQoNCY0J0g0JrQkNCi0JjQptCQCivQkNCd0JTQoNCY0J0g0JzQmNCb0JDQlNCY0J3QmtCQCivQkNCd0JTQoNCY0J0g0J3QkNCU0JAKK9CQ0J3QlNCg0J7QptCa0Jgg0J/QkNCbINCU0JjQn9CbINCY0J3Qkwor0JDQndCU0KPQm9CQ0IjQldCS0JjQiyDQodCi0JXQktCeCivQkNCd0JPQldCR0KDQkNCd0KIg0JjQm9Ce0J3QmtCQCivQkNCd0JPQldCb0JXQodCa0Jgg0JLQkNCd0JPQldCbCivQkNCd0JPQldCb0J7QkiDQlNCj0KjQkNCdCivQkNCd0JPQldCb0J7QkiDQodCg0JXQi9Ca0J4KK9CQ0J3Qk9CV0JvQntCS0KHQmtCYINCU0KPQqNCQ0J0KK9CQ0J3Qk9CV0JvQntCS0KHQmtCYINCY0JvQmNCI0JAKK9CQ0J3Qk9CV0JvQntCS0KHQmtCYINCI0JDQndCU0KDQlQor0JDQndCT0JXQm9Ce0JLQodCa0Jgg0JzQmNCi0KDQlQor0JDQndCT0JXQm9Ce0JLQodCa0Jgg0KLQntCc0J4KK9CQ0J3QmNCn0JjQiyDQltCY0JLQntCi0JAKK9CQ0J3QmNCn0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0J3QmNCn0JjQiyDQlNCg0JDQk9CQ0J0KK9CQ0J3QmNCn0JjQiyDQlNCj0KjQkNCdINCU0JjQn9CbINCe0JXQpgor0JDQndCY0KfQmNCLINCk0JjQm9CY0J8KK9CQ0J3QmNCn0JjQiyDQmNCb0JjQiNCQCivQkNCd0JjQp9CY0Isg0JrQntCS0JjQndCa0JAKK9CQ0J3QmNCn0JjQiyDQnNCY0JvQldCd0JAg0JTQmNCf0Jsg0JXQptCmCivQkNCd0JjQp9CY0Isg0JzQmNCg0JrQngor0JDQndCY0KfQmNCLINCc0JjQoNCeCivQkNCd0JjQp9CY0Isg0JzQmNCg0J4KK9CQ0J3QmNCn0JjQiyDQndCV0J3QkNCUCivQkNCd0JjQp9CY0Isg0J7QodCi0J7QiNCQCivQkNCd0JjQp9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9CQ0J3QmNCn0JjQiyDQodCi0JDQmtCQCivQkNCd0JjQp9CY0Isg0KHQotCe0IjQkNCd0JrQkAor0JDQndCY0KfQmNCLINCi0J7QlNCe0KAKK9CQ0J3QmNCn0JjQiyDQl9CU0KDQkNCS0JrQngor0JDQndCY0KfQmNCdINCW0JDQoNCa0J4KK9CQ0J3QmNCn0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0J3QmNCo0JjQiyDQiNCQ0KHQnNCY0J3QmtCQCivQkNCd0JjQiyDQlNCj0KjQkNCdCivQkNCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkNCd0JjQiyDQl9Ce0KDQkAor0JDQndCY0JrQkCDQk9CQ0JLQoNCY0JvQngor0JDQndCY0JrQkCDQiNCj0JvQmNCI0JUg0J/QoNCe0KTQldCh0J7QoAor0JDQndCY0KLQmNCLINCY0KjQotCS0JDQnQor0JDQndCa0JjQiyDQnNCQ0KDQiNCQ0J0KK9CQ0J3QmtCY0Isg0J/QldCg0JjQptCQCivQkNCd0J7QiNCn0JjQiyDQltCV0InQmtCeCivQkNCd0J7QiNCn0JjQiyDQm9CQ0JfQkNCgCivQkNCd0J7QiNCn0JjQiyDQnNCY0JvQkNCdCivQkNCd0J7QiNCn0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JDQndCe0IjQp9CY0Isg0KDQkNCU0JjQktCe0IgKK9CQ0J3QntCI0KfQmNCLINCh0J/QkNCh0J7QiNCVCivQkNCd0J7QiNCn0JjQiy3QodCi0J7QiNCa0J7QktCY0Isg0IjQkNCh0JzQmNCd0JrQkAor0JDQndCi0JDQmyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQndCi0JDQmyDQktCV0KDQntCd0JAKK9CQ0J3QotCQ0J3QkNCh0JjQiyDQodCi0JDQndCa0J4KK9CQ0J3QotCQ0J3QkNCh0JjQiNCV0JLQmNCLINCR0J7QoNCQCivQkNCd0KLQldCJ0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0J3QotCY0Isg0ILQntCa0JAKK9CQ0J3QotCY0Isg0ILQntCg0ILQlQor0JDQndCi0JjQiyDQgtCe0KDQgtCVCivQkNCd0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCd0KLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CQ0J3QotCY0Isg0JHQntCo0JrQngor0JDQndCi0JjQiyDQkdCe0JbQmNCU0JDQoCDQlNCgINCh0KLQntCc0JDQotCe0JvQntCTCivQkNCd0KLQmNCLINCR0J7QltCY0JTQkNCgCivQkNCd0KLQmNCLINCR0KDQkNCd0JrQngor0JDQndCi0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9CQ0J3QotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQkNCd0KLQmNCLINCU0KDQkNCT0JDQnQor0JDQndCi0JjQiyDQlNCg0JDQk9CQ0J0KK9CQ0J3QotCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CQ0J3QotCY0Isg0JTQo9Co0JDQndCa0JAKK9CQ0J3QotCY0Isg0JTQo9Co0JDQndCa0JAKK9CQ0J3QotCY0Isg0IjQo9Cb0JrQkAor0JDQndCi0JjQiyDQmtCe0KHQotCQCivQkNCd0KLQmNCLINCJ0KPQkdCY0KjQkAor0JDQndCi0JjQiyDQm9Cj0JrQkAor0JDQndCi0JjQiyDQnNCQ0KDQmNCm0JAKK9CQ0J3QotCY0Isg0JzQkNCg0JjQiNCQCivQkNCd0KLQmNCLINCc0JjQm9CQ0J0KK9CQ0J3QotCY0Isg0JzQmNCb0JDQnQor0JDQndCi0JjQiyDQnNCY0JvQkNCdCivQkNCd0KLQmNCLINCc0JjQm9CQ0J0KK9CQ0J3QotCY0Isg0JzQmNCb0JjQktCe0IgKK9CQ0J3QotCY0Isg0JzQmNCb0KPQotCY0J0KK9CQ0J3QotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CQ0J3QotCY0Isg0JzQmNCg0JrQngor0JDQndCi0JjQiyDQnNCY0KDQmtCeCivQkNCd0KLQmNCLINCd0JXQndCQ0JQKK9CQ0J3QotCY0Isg0J3QldCS0JXQndCQCivQkNCd0KLQmNCLINCe0JvQk9CQCivQkNCd0KLQmNCLINCf0JDQktCb0JUKK9CQ0J3QotCY0Isg0J/QkNCS0JvQlQor0JDQndCi0JjQiyDQn9CQ0JLQm9CVCivQkNCd0KLQmNCLINCf0JXQotCQ0KAKK9CQ0J3QotCY0Isg0KDQkNCU0J7QiNCa0J4KK9CQ0J3QotCY0Isg0KDQkNCU0J7QnNCY0KAKK9CQ0J3QotCY0Isg0KDQkNCU0J7QktCQ0J0KK9CQ0J3QotCY0Isg0KHQm9CQ0ILQkNCd0JAKK9CQ0J3QotCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CQ0J3QotCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQndCi0JjQiyDQodCc0JjQidCQCivQkNCd0KLQmNCLINCh0JzQmNCJ0JAKK9CQ0J3QotCY0Isg0KHQntCk0JjQiNCQCivQkNCd0KLQmNCLINCh0KLQkNCd0KfQkAor0JDQndCi0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9CQ0J3QotCY0Isg0KHQotCQ0J3QntCI0JUKK9CQ0J3QotCY0Isg0KHQotCe0IjQkNCdCivQkNCd0KLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JDQndCi0JjQiyDQodCS0JXQotCb0JDQndCQCivQkNCd0KLQmNCLINCh0JLQldCi0J7QktCY0JQKK9CQ0J3QotCY0Isg0JLQldCg0JjQptCQCivQkNCd0KLQmNCLINCS0KPQmtCQ0KjQmNCdCivQkNCd0KLQmNCLINCX0JDQk9Ce0KDQmtCQCivQkNCd0KLQmNCLINCX0JvQkNCi0JDQnQor0JDQndCi0JjQnSDQmNCS0JDQndCa0JAKK9CQ0J3QotCY0J0g0JLQldCb0JXQnNCY0KAKK9CQ0J3QotCe0JvQntCS0JjQiyDQmNCS0JDQnQor0JDQndCi0J7QndCY0Isg0JbQmNCS0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CQ0J3QotCe0J3QmNCLINCW0JjQktCa0J4KK9CQ0J3QotCe0J3QmNCLINCC0J7QoNCC0JUKK9CQ0J3QotCe0J3QmNCLINCR0J7QoNCY0JLQntCICivQkNCd0KLQntCd0JjQiyDQkdCg0JDQndCa0J4KK9CQ0J3QotCe0J3QmNCLINCU0J7QkdCg0JjQktCe0IgKK9CQ0J3QotCe0J3QmNCLINCU0KDQkNCT0JDQnQor0JDQndCi0J7QndCY0Isg0JTQoNCQ0JPQkNCdCivQkNCd0KLQntCd0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JDQndCi0J7QndCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0JDQndCi0J7QndCY0Isg0IjQkNCh0JzQmNCd0JrQkAor0JDQndCi0J7QndCY0Isg0IjQldCb0JXQndCQCivQkNCd0KLQntCd0JjQiyDQidCj0JHQmNCm0JAKK9CQ0J3QotCe0J3QmNCLINCc0JDQoNCY0IjQkAor0JDQndCi0J7QndCY0Isg0JzQmNCb0JDQnQor0JDQndCi0J7QndCY0Isg0JzQmNCb0JDQnQor0JDQndCi0J7QndCY0Isg0JzQmNCb0JDQnQor0JDQndCi0J7QndCY0Isg0JzQmNCb0JjQktCe0IgKK9CQ0J3QotCe0J3QmNCLINCd0JXQkdCe0IjQqNCQINCU0JjQn9CbINCY0J3Qkwor0JDQndCi0J7QndCY0Isg0KDQkNCU0JjQodCQ0JIKK9CQ0J3QotCe0J3QmNCLINCg0JDQndCa0J4KK9CQ0J3QotCe0J3QmNCLINCg0JDQotCa0J4KK9CQ0J3QotCe0J3QmNCLINCh0JjQnNCQCivQkNCd0KLQntCd0JjQiyDQodCb0JDQktCY0KbQkAor0JDQndCi0J7QndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQndCi0J7QndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQndCi0J7QndCY0Isg0KHQotCV0JLQkNCdCivQkNCd0KLQntCd0JjQiyDQl9Ce0KDQmtCQCivQkNCd0KLQntCd0JjQiNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCd0KLQntCd0JjQiNCV0JLQmNCLINCR0JjQidCQ0J3QkAor0JDQndCi0J7QndCY0IjQldCS0JjQiyDQkdCe0JbQo9CgCivQkNCd0KLQntCd0JjQiNCV0JLQmNCLINCR0KDQkNCd0JrQngor0JDQndCi0J7QndCY0IjQldCS0JjQiyDQlNCQ0JzQitCQ0J0KK9CQ0J3QotCe0J3QmNCI0JXQktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQkNCd0KLQntCd0JjQiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9CQ0J3QotCe0J3QmNCI0JXQktCY0Isg0InQmNCJ0JAKK9CQ0J3QotCe0J3QmNCI0JXQktCY0Isg0J/QldCi0JDQoAor0JDQndCi0J7QndCY0IjQldCS0JjQiyDQodCi0JXQktCQCivQkNCd0KLQntCd0JjQndCYINCc0JDQoNCY0IjQkAor0JDQndCi0J7QndCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQkNCd0KLQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CQ0J3QotCj0J0g0JzQmNCb0J7QqAor0JDQndCi0KPQndCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQkNCd0KLQo9Cd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQkNCd0KLQo9Cd0J7QktCY0Isg0JPQmNCX0JXQm9CQCivQkNCd0KLQo9Cd0J7QktCY0Isg0JvQkNCX0JDQoAor0JDQndCi0KPQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JDQndCi0KPQndCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQkNCd0KLQo9Cd0J7QktCY0Isg0J3QldCU0JAKK9CQ0J3QotCj0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkNCd0KPQp9CY0J0g0J3QldCd0JDQlAor0JDQndCj0JrQmNCLINCa0J7QodCi0JAKK9CQ0J/QkNCg0JDQpiDQodCS0JXQotCe0JfQkNCgCivQkNCf0JDQotCe0JLQmNCLINCI0J7QktCQ0J0KK9CQ0J/QkNCi0J7QktCY0Isg0JvQkNCX0JDQoAor0JDQn9CQ0KLQntCS0JjQiyDQndCY0JrQntCb0JAKK9CQ0J/QkNCi0J7QktCY0Isg0KHQkNCS0JAKK9CQ0J/QldCg0JvQmNCLINCS0J7QiNCY0J0KK9CQ0J/QmNCLINCC0J7QoNCC0JUKK9CQ0J/QmNCLINCQ0J3QmtCY0KbQkAor0JDQn9CY0Isg0JHQoNCQ0J3QmtCeINCU0KAg0JLQldCi0JXQoNCY0J3QlQor0JDQn9CY0Isg0JHQoNCQ0J3QmtCeCivQkNCf0JjQiyDQlNCj0KjQkNCdCivQkNCf0JjQiyDQiNCj0JvQmtCQCivQkNCf0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQkNCf0JjQiyDQnNCY0JvQkNCdCivQkNCf0JjQiyDQnNCY0JvQkNCdCivQkNCf0JjQiyDQnNCY0JvQmNCm0JAKK9CQ0J/QmNCLINCc0JjQm9Ce0KgKK9CQ0J/QmNCLINCc0JjQm9Ce0KDQkNCUCivQkNCf0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JDQn9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JDQn9CY0Isg0J7Qm9CY0JLQldCg0JAKK9CQ0J/QmNCLINCf0JDQiNCQCivQkNCf0JjQiyDQn9CQ0IjQkAor0JDQn9CY0Isg0KDQkNCU0JjQqNCa0J4KK9CQ0J/QmNCLINCg0JDQlNCY0JLQntCI0JUKK9CQ0J/QmNCLINCg0JDQotCe0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JDQn9CY0Isg0KHQoNCV0KLQkAor0JDQn9CY0Isg0KHQotCV0JLQkNCdCivQkNCf0JjQiyDQodCi0J7QiNCQ0J0KK9CQ0J/QmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CQ0J/QmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CQ0J/QmNCLINCS0JXQoNCQCivQkNCf0JjQiyDQl9CU0KDQkNCS0JrQngor0JDQn9CY0Isg0JfQntCg0JrQkAor0JDQn9Ce0KHQotCe0JvQntCSINCJ0KPQkdCe0JzQmNCgCivQkNCf0J7QodCi0J7Qm9Ce0JLQmNCLINCR0J7QltCY0JTQkNCgCivQkNCf0J7QodCi0J7Qm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkNCf0KDQniDQpNCg0JDQitCQCivQkNCf0KDQniDQiNCQ0J3QntCoCivQkNCf0KDQniDQiNCe0JbQldCkCivQkNCf0KDQniDQm9CQ0KHQm9CeCivQkNCf0KDQniDQidCj0JHQntCc0JjQoAor0JDQn9Cg0J4g0KDQmNCl0JDQoNCUCivQkNCf0KDQni3QodCQ0JzQkNCg0I/QmNCI0JAg0JLQldCg0JAg0JTQoAor0JDQn9Cg0J4g0KHQotCV0JLQkNCdCivQkNCf0KDQniDQl9Ce0JvQotCQ0J0KK9CQ0J/QoiDQkdCe0JPQntCJ0KPQkQor0JDQn9CiINCc0JDQoNCa0J4KK9CQ0KDQqNCY0J3QntCSINCC0J7QoNCC0JUKK9CQ0KDQqNCY0J3QntCSINCc0JjQm9Ce0KDQkNCUCivQkNCg0ILQldCb0JDQnC3QqNCg0JDQmiDQldCU0JjQogor0JDQoNCC0JXQm9CQ0J0g0JjQqNCi0JLQkNCdCivQkNCg0JDQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JDQoNCQ0ILQkNCd0JjQnSDQotCY0JzQntCi0JjQiNCVCivQkNCg0JDQgtCQ0J3QodCa0Jgg0JrQkNCi0JjQptCQCivQkNCg0JDQgtCQ0J3QodCa0Jgg0J3QkNCU0JAKK9CQ0KDQkNCC0JDQndCh0JrQmC3QoNCQ0IjQmtCe0JIg0JzQkNCI0JAKK9CQ0KDQkNCm0JrQmCDQldCg0JbQmNCa0JAKK9CQ0KDQkNCm0JrQmNCLINCC0J7QoNCC0JUKK9CQ0KDQkNCm0JrQmNCLINCc0JjQm9CY0KbQkAor0JDQoNCQ0KbQmtCY0Isg0JfQm9CQ0KLQntCI0JUg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9CQ0KDQkNCU0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JDQoNCQ0JTQodCa0Jgg0JjQktCQ0J3QmtCQCivQkNCg0JDQlNCh0JrQmCDQnNCY0JvQntCg0JDQlAor0JDQoNCQ0JTQodCa0Jgg0JzQmNCi0JAKK9CQ0KDQkNCU0KHQmtCYINCg0JDQlNCY0JLQntCICivQkNCg0JDQlNCh0JrQmCDQodCe0KTQmNCI0JAKK9CQ0KDQkNCU0KHQmtCYINCh0KDQldCi0JXQndCa0JAKK9CQ0KDQkNCU0KHQmtCYINCh0KLQntCI0JDQndCa0JAKK9CQ0KDQkNCU0KHQmtCYINCX0JvQkNCi0JAKK9CQ0KDQkNCb0JjQptCQINCg0JDQiNCa0J4KK9CQ0KDQkNCc0JHQkNCo0JjQiyDQgtCe0KDQgtCVCivQkNCg0JDQnNCR0JDQqNCY0Isg0JTQoNCQ0JPQkNCdCivQkNCg0JDQndCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQoNCQ0J3Qp9CY0Isg0JrQkNCg0JvQngor0JDQoNCQ0J3QgtCV0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQoNCQ0J3QgtCV0JvQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JDQoNCQ0J3QgtCV0JvQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CQ0KDQkNCd0ILQldCb0J7QktCY0Isg0IrQldCT0J7QktCQ0J0KK9CQ0KDQkNCd0ILQldCb0J7QktCY0Isg0KHQkNCS0JAKK9CQ0KDQkNCd0ILQldCb0J7QktCY0Isg0KHQoNCV0KLQldCdCivQkNCg0JDQndCC0KPQoSDQkNCd0KLQntCdCivQkNCg0JDQndCY0KbQmtCYINCU0JjQndCa0JAKK9CQ0KDQkNCd0JjQptCa0Jgg0JPQm9CY0JPQntCg0JjQiNCVCivQkNCg0JDQndCY0KbQmtCYINCc0JjQm9CQ0J3QkAor0JDQoNCQ0J3QmNCm0JrQmCDQnNCY0JvQmNCm0JAKK9CQ0KDQkNCd0JjQptCa0Jgg0JzQmNCb0J7QqCDQlNCgINCf0KDQntCkCivQkNCg0JDQndCY0KbQmtCYINCX0JDQk9Ce0KDQmtCQCivQkNCg0JDQndCY0KbQmtCYINCX0J7QoNCY0KbQkAor0JDQoNCQ0J3QmNCi0J7QktCY0Isg0JvQkNCX0JDQoAor0JDQoNCQ0IrQntCoINCf0JDQmwor0JDQoNCQ0J/Qp9CY0Isg0J/QkNCo0JDQk9CQCivQkNCg0JDQn9CY0J3QkNCmINCc0JjQm9CY0KbQkAor0JDQoNCQ0J/QntCS0JjQiyDQlNCg0JDQk9CeCivQkNCg0JDQn9Ce0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CQ0KDQkNCgINCf0JXQotCQ0KAKK9CQ0KDQkNChINCR0KDQkNCd0JrQngor0JDQoNCQ0KEg0IjQo9CT0J7QodCb0JDQkgor0JDQoNCQ0KEg0InQo9CR0J4KK9CQ0KDQkdCV0KEg0J3QldCd0JDQlAor0JDQoNCR0KPQndCY0Isg0J/QldCg0JAKK9CQ0KDQkdCj0KLQmNCd0JAg0ILQo9Cg0ILQmNCd0JrQkAor0JDQoNCR0KPQotCY0J3QkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0KDQkdCj0KLQmNCd0JAg0JzQkNCg0JjQiNCQCivQkNCg0JHQo9Ci0JjQndCQINCd0JDQotCQ0JvQmNCI0JAKK9CQ0KDQkdCj0KLQmNCd0JAg0JLQldCb0JjQnNCY0KAKK9CQ0KDQkdCj0KLQmNCd0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JDQoNCP0J7QnSDQndCQ0KLQkNCb0JjQiNCQCivQkNCg0JTQkNCb0JjQiyDQiNCe0JLQkNCd0JrQkAor0JDQoNCU0JDQm9CY0Isg0JvQldCf0J7QodCQ0JLQkAor0JDQoNCU0JDQm9CY0Isg0KHQm9CQ0JLQmtCeCivQkNCg0JTQldCJ0JDQnSDQiNCe0J0KK9CQ0KDQlNCV0InQkNCdINCc0JDQoNCY0IjQkAor0JDQoNCU0JXQidCQ0J0g0J/QldCi0JDQoAor0JDQoNCU0J7QptCa0Jgg0JjQqNCi0JLQkNCdCivQkNCg0JXQltCY0J3QkCDQgtCe0KDQgtCVCivQkNCg0JXQltCY0J3QkCDQkdCe0KjQmtCeCivQkNCg0JjQpNCYINCY0JHQoNCQ0KXQmNCcCivQkNCg0JjQpNCe0JLQmNCLINCh0KDQkdCY0KbQkAor0JDQoNCY0JfQkNCi0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAKK9CQ0KDQmtCj0JvQkCDQkdCb0JDQltCVCivQkNCg0JrQo9Cb0JAg0KHQm9CQ0JLQmNCm0JAKK9CQ0KDQmtCj0JvQkCDQodCb0JDQktCY0KbQkAor0JDQoNCb0J7QkiDQlNCg0JDQk9CQ0J0KK9CQ0KDQnNCQ0KbQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0JDQoNCc0JDQptCa0Jgg0KDQkNCU0J7QktCQ0J0KK9CQ0KDQnNCQ0KbQmtCYINCh0J7QpNCY0IjQkAor0JDQoNCc0JDQptCa0Jgg0KHQotCV0JLQkNCdCivQkNCg0JzQkdCg0KPQodCi0JXQoCDQm9CQ0KHQm9CeCivQkNCg0JzQkdCg0KPQodCi0JXQoCDQnNCQ0KDQmNCI0JAKK9CQ0KDQndCQ0KPQoiDQgtCe0KDQgtCVCivQkNCg0J3QkNCj0KIg0JTQoNCQ0JPQmNCK0JAKK9CQ0KDQndCQ0KPQoiDQnNCY0JvQmNCm0JAKK9CQ0KDQndCQ0KPQoiDQktCQ0KHQkAor0JDQoNCd0J7Qo9ChINCi0JXQoNCV0JfQkAor0JDQoNCd0J7QktCJ0JXQktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JDQoNCe0Jot0JTQmNCS0IjQkNCaINCT0J7QoNCU0JDQndCQCivQkNCg0J/QkNCo0Jgg0ILQntCg0ILQlQor0JDQoNCf0JDQqNCYINCb0JDQodCb0J4KK9CQ0KDQodCV0J3QmNCLINCW0JjQktCa0J4KK9CQ0KDQodCV0J3QmNCLINCR0KDQkNCi0JjQodCb0JDQktCQCivQkNCg0KHQldCd0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CQ0KDQodCV0J3QmNCLINCU0KDQkNCo0JrQngor0JDQoNCh0JXQndCY0Isg0IjQntCS0JDQndCa0JAKK9CQ0KDQodCV0J3QmNCLINCc0J7QnNCY0KAKK9CQ0KDQodCV0J3QmNCLINCe0JvQk9CY0KbQkAor0JDQoNCh0JXQndCY0Isg0JLQldCJ0JrQngor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQkNCg0KHQldCd0JjQiNCV0JLQmNCLINCI0J7QktCQ0J0KK9CQ0KDQodCV0J3QmNCI0JXQktCY0Isg0JzQmNCb0JDQnQor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQnNCY0JvQo9Cd0JrQkAor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQnNCe0JzQp9CY0JvQniDQlNCgCivQkNCg0KHQldCd0JjQiNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQkNCg0KHQldCd0JjQiNCV0JLQmNCLINCc0J7QnNCY0KAKK9CQ0KDQodCV0J3QmNCI0JXQktCY0Isg0KHQm9CQ0JLQmtCQCivQkNCg0KHQldCd0JjQiNCV0JLQmNCLINCh0JzQmNCJ0JAKK9CQ0KDQodCV0J3QmNCI0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JDQoNCh0JXQndCY0IjQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkNCg0KHQldCd0JjQnSDQgtCj0KDQgtCY0J3QmtCQCivQkNCg0KHQldCd0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JDQoNCh0JXQndCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0KDQodCV0J3QmNCdINCR0J7Qk9Ce0InQo9CRCivQkNCg0KHQldCd0JjQnSDQk9CQ0IjQkAor0JDQoNCh0JXQndCY0J0g0IjQntCS0JDQnQor0JDQoNCh0JXQndCY0J0g0IjQntCS0JDQnQor0JDQoNCh0JXQndCY0J0g0JrQntCh0KLQkAor0JDQoNCh0JXQndCY0J0g0JrQoNCY0KHQotCY0J3QkAor0JDQoNCh0JXQndCY0J0g0JzQkNCg0JjQiNCQCivQkNCg0KHQldCd0JjQnSDQnNCY0KLQkAor0JDQoNCh0JXQndCY0J0g0JzQm9CQ0JTQldCdCivQkNCg0KHQldCd0JjQnSDQnNCb0JDQlNCV0J0KK9CQ0KDQodCV0J3QmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9CQ0KDQodCV0J3QmNCdINCS0JjQotCe0JzQmNCgCivQkNCg0KHQldCd0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQkNCg0KHQldCK0JXQkiDQkNCb0JXQmtCh0JXQiAor0JDQoNCh0JXQndCe0JIg0JDQm9CV0JrQodCQCivQkNCg0KHQldCd0J7QkiDQkNCg0JjQqNCa0J4KK9CQ0KDQodCV0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JDQoNCh0JXQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkNCg0KHQldCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CQ0KDQodCV0J3QntCSINCU0KDQkNCT0JjQptCQCivQkNCg0KHQldCd0J7QkiDQmtCQ0KLQmNCm0JAKK9CQ0KDQodCV0J3QntCSINCc0JjQm9CQ0J0KK9CQ0KDQodCV0J3QntCSINCc0JjQoNCe0KHQm9CQ0JIKK9CQ0KDQodCV0J3QntCSINCf0JXQoNCQCivQkNCg0KHQldCd0J7QkiDQn9CV0KLQkNCgCivQkNCg0KHQldCd0J7QkiDQn9CV0KLQkNCgCivQkNCg0KHQldCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JDQoNCh0JXQndCe0JIg0KHQkNCo0JAKK9CQ0KDQodCV0J3QntCSINCS0JDQodCY0JvQmNCI0JUKK9CQ0KDQodCV0J3QntCS0JjQiyDQltCY0JLQmtCeCivQkNCg0KHQldCd0J7QktCY0Isg0JzQkNCg0JjQptCQCivQkNCg0KHQldCd0J7QktCY0Isg0J3QkNCU0JAg0JTQoAor0JDQoNCh0JXQndCe0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQkNCg0KHQldCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CQ0KDQodCV0J3QntCS0JjQiyDQodCQ0JLQngor0JDQoNCh0JXQndCe0JLQmNCLINCh0KDQgtCQ0J0KK9CQ0KDQodCV0J3QntCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQkNCg0KHQldCd0J7QktCY0Isg0KLQoNCY0JLQngor0JDQoNCh0JXQndCe0JLQmNCLINCS0JXQodCd0JAKK9CQ0KDQodCV0J3QntCS0JjQiyDQktCb0JDQlNCQCivQkNCg0KHQldCd0J7QktCY0Isg0JfQntCg0JDQnQor0JDQoNCh0JjQiyDQp9CV0JTQntCc0JjQoAor0JDQoNCh0JjQiyDQltCQ0KDQmtCeCivQkNCg0KHQmNCLINCW0JjQktCa0J4KK9CQ0KDQodCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0KDQodCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQkNCg0KHQmNCLINCU0KPQqNCa0J4KK9CQ0KDQodCY0Isg0JXQoNCW0JXQkdCV0KIKK9CQ0KDQodCY0Isg0JvQkNCX0JDQoAor0JDQoNCh0JjQiyDQm9CY0JTQmNCI0JAKK9CQ0KDQodCY0Isg0InQo9CR0JjQqNCQCivQkNCg0KHQmNCLINCc0JDQoNCY0IjQkAor0JDQoNCh0JjQiyDQnNCY0KXQkNCY0JvQngor0JDQoNCh0JjQiyDQnNCY0KXQntCJ0JrQkAor0JDQoNCh0JjQiyDQnNCY0JvQntCoCivQkNCg0KHQmNCLINCc0JjQm9Ce0KHQm9CQ0JIg0JTQoAor0JDQoNCh0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JDQoNCh0JjQiyDQnNCY0J7QlNCg0JDQkwor0JDQoNCh0JjQiyDQnNCY0J7QnNCY0KAKK9CQ0KDQodCY0Isg0JzQmNCg0IjQkNCd0JAKK9CQ0KDQodCY0Isg0JzQmNCg0IjQkNCd0JAKK9CQ0KDQodCY0Isg0JzQntCc0KfQmNCb0J4KK9CQ0KDQodCY0Isg0J7QkdCg0JDQlAor0JDQoNCh0JjQiyDQn9CV0KDQmNCm0JAKK9CQ0KDQodCY0Isg0J/QldCi0JDQoAor0JDQoNCh0JjQiyDQoNCQ0JTQntCc0JjQoAor0JDQoNCh0JjQiyDQoNCQ0JTQntCh0JDQkgor0JDQoNCh0JjQiyDQodCQ0JLQldCi0JAKK9CQ0KDQodCY0Isg0KHQm9CQ0JLQmtCQCivQkNCg0KHQmNCLINCh0JvQkNCS0J7QiNCa0JAKK9CQ0KDQodCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JDQoNCh0JjQiyDQodCi0JDQndCa0J4KK9CQ0KDQodCY0Isg0KLQntCc0JjQodCb0JDQkgor0JDQoNCh0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkNCg0KHQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CQ0KDQodCY0Isg0KLQoNCQ0IjQkNCdCivQkNCg0KHQmNCLINCX0J7QoNCQ0J0KK9CQ0KDQodCY0Isg0JfQntCg0JDQnQor0JDQoNCh0JjQiyDQl9Ce0KDQkNCdCivQkNCg0KHQmNCa0JjQnSDQnNCY0JvQkNCd0JrQngor0JDQoNCh0JjQmtCY0J0g0J/QkNCS0JvQlQor0JDQoNCh0JvQkNCd0JDQk9CY0Isg0J3QkNCC0JAKK9CQ0KDQodCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCg0KHQntCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQkNCg0KHQntCS0JjQiyDQiNCe0JLQkNCdCivQkNCg0KHQntCS0JjQiyDQnNCQ0KLQldCI0JAKK9CQ0KDQodCe0JLQmNCLINCc0JjQm9CQ0J0KK9CQ0KDQodCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JDQoNCiINCC0KPQoNCQCivQkNCg0KIg0JfQktCe0J3QmNCc0JjQoAor0JDQoNCi0KPQmtCe0JIg0JTQo9Co0JDQnQor0JDQoNCi0KPQmtCe0JIg0J7Qm9CT0JAKK9CQ0KDQo9Cb0JAg0JzQmNCL0J4KK9CQ0KDQktCQ0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CQ0KDQktCQ0Jgg0JDQoNCf0JDQlAor0JDQoNCS0JDQmCDQlNCQ0J3QmNCm0JAKK9CQ0KDQktCQ0Jgg0J/QkNCS0JDQngor0JDQoNCS0JDQmCDQotCV0KDQldCX0JAKK9CQ0KDQktCQ0IjQmCDQn9CQ0JLQkNCeCivQkNCg0JLQkNCd0JjQotCY0JTQmNChINCh0KLQldCg0IjQntChCivQkNCh0JDQndCYINCQ0KHQkNCdCivQkNCh0JDQndCYINCl0KPQoNCY0KjQkAor0JDQodCQ0J3QmCDQndCQ0JjQidCQCivQkNCh0JDQndCYINCd0JDQl9CY0KTQkAor0JDQodCQ0J3QntCSINCX0J7QoNCQCivQkNCh0JDQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JDQodCQ0J3QntCS0JjQiyDQodCi0JDQndCa0JAKK9CQ0KHQkNCd0J7QktCY0Isg0JfQo9Cl0KDQkAor0JDQodCQ0J3QntCS0KHQmtCYINCg0J7Ql9CQ0JvQmNCI0JAKK9CQ0KHQmNCLINCc0JjQm9CQ0J0KK9CQ0KHQntCU0Jgg0IjQkNCd0J7QqAor0JDQodCe0JTQmCDQiNCe0JbQldCkCivQkNCh0J7QlNCYINCc0JjQoNCa0J4KK9CQ0KHQntCi0JjQiyDQnNCj0JDQnNCV0KAKK9CQ0KHQotCQ0KXQntCSLdCI0JXQoNCV0JzQmNCLINCc0JDQoNCY0IjQkAor0JDQodCi0JDQm9Ce0Kgg0JjQqNCi0JLQkNCdCivQkNCh0KPQoNCP0JjQiyDQmtCg0JjQodCi0JjQndCQCivQkNCh0KPQoNCP0JjQiyDQm9Cj0JrQkAor0JDQodCj0KDQj9CY0Isg0JzQmNCb0J7QqAor0JDQodCj0KDQj9CY0Isg0JzQmNCb0J7QqAor0JDQodCj0KDQj9CY0Isg0JzQmNCb0J7QqAor0JDQodCj0KDQj9CY0Isg0JzQntCb0J7QqAor0JDQodCj0KDQj9CY0Isg0J3QmNCa0J7Qm9CQCivQkNCh0KPQoNCP0JjQiyDQndCY0JrQntCb0JAKK9CQ0KHQo9Cg0I/QmNCLINCh0J7QpNCY0IjQkAor0JDQodCj0KDQj9CY0Isg0KHQotCV0JLQkNCdCivQkNCh0KPQoNCP0JjQiyDQotCV0J7QlNCe0KAKK9CQ0KHQo9Cg0I/QmNCLINCi0JXQntCU0J7QoAor0JDQotCQ0J3QkNCm0JrQntCSINCC0J7QoNCC0JUKK9CQ0KLQkNCd0JDQptCa0J7QkiDQkdCe0KDQkAor0JDQotCQ0J3QkNCm0JrQntCSINCR0J7QoNCY0JLQntCICivQkNCi0JDQndCQ0KbQmtCe0JIg0JTQoNCQ0JPQkNCdCivQkNCi0JDQndCQ0KbQmtCe0JIg0JjQm9Ce0J3QkAor0JDQotCQ0J3QkNCm0JrQntCSINCc0JDQoNCY0IjQkAor0JDQotCQ0J3QkNCm0JrQntCSINCc0JjQoNCI0JDQndCQCivQkNCi0JDQndCQ0KbQmtCe0JIg0JzQmNCg0JrQngor0JDQotCQ0J3QkNCm0JrQntCSINCd0J7QktCQCivQkNCi0JDQndCQ0KbQmtCe0JIg0J7Qm9CT0JAKK9CQ0KLQkNCd0JDQptCa0J7QkiDQn9CQ0JLQm9CVCivQkNCi0JDQndCQ0KbQmtCe0JIg0KHQkNCo0JAKK9CQ0KLQkNCd0JDQptCa0J7QkiDQodCi0JXQktCQ0J0KK9CQ0KLQkNCd0JDQptCa0J7QkiDQodCi0JXQktCQ0J0KK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JbQmNCS0JDQnQor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCQ0J3QkAor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQkdCe0JPQntCR0J7QiAor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JHQoNCQ0J3QmtCQINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQINCU0KAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQmNCS0JDQnQor0JDQotCQ0J3QkNCm0JrQntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCb0JDQl9CQCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCb0KPQmtCQCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCg0JDQotCa0J4KK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0KHQkNCS0JAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0KHQm9CQ0ILQkNCd0JAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQkNCi0JDQndCQ0KbQmtCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0KLQldCe0JTQntCgINCU0KAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0KLQntCo0JAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JLQkNCh0JjQidCa0JAKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9CQ0KLQkNCd0JDQptCa0J7QktCY0Isg0JfQntCg0JDQnQor0JDQotCQ0J3QkNCh0JjQkNCU0JjQoSDQpdCg0JjQodCi0J7QpNCe0KDQntChCivQkNCi0JDQndCQ0KHQmNCI0JDQlNCY0KEg0JDQndCV0KHQotCYCivQkNCi0JDQndCQ0KHQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQkNCi0JDQndCQ0KHQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQkNCi0JDQndCQ0KHQmtCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQkNCi0JDQndCQ0KHQntCh0JrQmCDQodCi0JXQktCeCivQkNCi0JDQndCQ0KHQntCSINCc0JDQoNCa0J4KK9CQ0KLQkNCd0JDQodCe0JLQodCa0Jgg0KDQmNCh0KLQngor0JDQotCQ0KDQkNCmINCU0KDQkNCT0J7QqAor0JDQotCV0InQldCS0JjQiyDQlNCj0KjQkNCdCivQkNCi0JXQidCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQkNCi0JjQiyDQlNCQ0J3QmNCm0JAKK9CQ0KLQm9CQ0JPQmNCLINCR0KDQkNCd0JrQngor0JDQotCb0JDQk9CY0Isg0IjQntCS0JDQnQor0JDQotCb0JDQk9CY0Isg0JzQmNCb0JDQnQor0JDQotCb0JDQk9CY0Isg0JzQmNCb0JjQptCQCivQkNCi0JvQkNCT0JjQiyDQl9CU0KDQkNCS0JrQngor0JDQotCb0JDQk9CY0Isg0JfQlNCg0JDQktCa0J4KK9CQ0KLQm9CQ0KEg0ILQntCg0ILQlSDQlNCgCivQkNCi0JvQkNChINCY0JLQkNCdCivQkNCi0JvQkNChINCc0JjQoNCa0J4KK9CQ0KLQm9CY0Isg0JvQkNCX0JDQoAor0JDQotCb0JjQiyDQnNCY0JvQkNCdCivQkNCj0JbQmNCd0JAg0JzQmNCb0JjQptCQCivQkNCj0JbQmNCd0JAg0JzQmNCg0JAKK9CQ0KPQltCY0J3QkCDQnNCY0KDQntCh0JvQkNCS0JAKK9CQ0KPQldCgINCc0JDQoNCQCivQkNCj0JPQo9Ch0KLQmNCdINCY0JLQmNCm0JAKK9CQ0KPQk9Cj0KHQotCY0J3QntCSINCQ0J3QotCe0J0KK9CQ0KPQk9Cj0KHQotCY0J3QntCSINCY0JLQkNCdCivQkNCj0JvQmNCaINCY0JvQntCd0JAKK9CQ0KPQoNCV0JvQmNCI0JDQnSDQgtCQ0J0KK9CQ0JLQkNCa0KPQnNCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQkNCS0JDQmtCj0JzQntCS0JjQiyDQndCY0JrQntCb0JAKK9CQ0JLQlNCQ0JvQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JDQktCU0JDQm9Ce0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQkNCS0JTQkNCb0J7QktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JDQktCU0JDQm9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CQ0JLQlNCYINCg0JDQnNCQ0JTQkNCdCivQkNCS0JTQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkNCS0JTQmNCLINCk0KPQkNCUCivQkNCS0JTQmNCLINCT0J7QoNCU0JDQndCQCivQkNCS0JTQmNCLINCl0KPQodCd0JjQiNCQCivQkNCS0JTQmNCLINCc0JDQm9CY0IsKK9CQ0JLQlNCY0Isg0JzQo9Cb0JjQiNCQCivQkNCS0JXQnNCQ0KDQmNCQINCf0JXQotCQ0KAKK9CQ0JLQoNCQ0JzQntCSINCR0J7QqNCa0J4KK9CQ0JLQoNCQ0JzQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JDQktCg0JDQnNCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQkNCS0KDQkNCc0J7QkiDQlNCe0JHQoNCY0JvQkAor0JDQktCg0JDQnNCe0JIg0JPQkNCS0KDQkAor0JDQktCg0JDQnNCe0JIg0JjQktCQ0J0KK9CQ0JLQoNCQ0JzQntCSINCI0J7QktCQ0J3QmtCQCivQkNCS0KDQkNCc0J7QkiDQiNCe0JLQkNCdCivQkNCS0KDQkNCc0J7QkiDQidCY0InQkNCd0JAKK9CQ0JLQoNCQ0JzQntCSINCc0JjQm9CQ0JTQmNCdCivQkNCS0KDQkNCc0J7QkiDQnNCY0JvQldCS0JAKK9CQ0JLQoNCQ0JzQntCSINCc0JjQm9Ca0JAKK9CQ0JLQoNCQ0JzQntCSINCc0JjQoNCI0JDQndCQCivQkNCS0KDQkNCc0J7QkiDQnNCY0KLQkAor0JDQktCg0JDQnNCe0JIg0J/QkNCI0JAKK9CQ0JLQoNCQ0JzQntCSINCf0JXQoNCQCivQkNCS0KDQkNCc0J7QkiDQn9CV0KLQkNCgCivQkNCS0KDQkNCc0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JDQktCg0JDQnNCe0JIg0KHQotCV0JLQkNCdCivQkNCS0KDQkNCc0J7QkiDQodCS0JXQotCe0JvQmNCaCivQkNCS0KDQkNCc0J7QkiDQodCS0JXQotCe0JvQmNCaCivQkNCS0KDQkNCc0J7QkiDQl9Ce0KDQkNCdCivQkNCS0KDQkNCc0J7QkiDQl9Ce0KDQkNCdCivQkNCS0KDQkNCc0J7QktCY0Isg0JbQmNCS0JrQngor0JDQktCg0JDQnNCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JDQktCg0JDQnNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JDQktCg0JDQnNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JDQktCg0JDQnNCe0JLQmNCLINCU0KDQkNCT0J4KK9CQ0JLQoNCQ0JzQntCS0JjQiyDQpNCg0JDQndCm0JjQqNCa0JAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQk9Ce0IjQmtCeCivQkNCS0KDQkNCc0J7QktCY0Isg0JjQm9CY0J3QmtCQCivQkNCS0KDQkNCc0J7QktCY0Isg0IjQntCS0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQidCj0JHQmNCo0JAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQidCj0JHQmNCd0JrQngor0JDQktCg0JDQnNCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQkNCS0KDQkNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0JDQktCg0JDQnNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CQ0JLQoNCQ0JzQntCS0JjQiyDQnNCY0JvQkNCdCivQkNCS0KDQkNCc0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JDQktCg0JDQnNCe0JLQmNCLINCc0JjQotCQCivQkNCS0KDQkNCc0J7QktCY0Isg0JzQntCc0JjQoAor0JDQktCg0JDQnNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JDQktCg0JDQnNCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQkNCS0KDQkNCc0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JDQktCg0JDQnNCe0JLQmNCLINCg0JDQotCa0J4KK9CQ0JLQoNCQ0JzQntCS0JjQiyDQoNCQ0KLQmtCeCivQkNCS0KDQkNCc0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQkNCS0KDQkNCc0J7QktCY0Isg0KHQotCQ0J3QmtCQCivQkNCS0KDQkNCc0J7QktCY0Isg0KHQotCV0JLQkNCdCivQkNCS0KDQkNCc0J7QktCY0Isg0KLQldCe0JTQntCgCivQkNCS0KDQkNCc0J7QktCY0Isg0KLQntCc0JAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQktCV0InQmtCeCivQkNCS0KDQkNCc0J7QktCY0Isg0JLQldCg0JAKK9CQ0JLQoNCQ0JzQntCS0JjQiyDQktCV0KDQkAor0JDQktCg0JDQnNCe0JLQmNCLINCS0JXQoNCQCivQkNCS0KDQkNCc0J7QktCh0JrQmCDQkdCe0KDQmNChCivQkNCX0JvQldCdINCR0J7QoNCY0KHQm9CQ0JIKK9CR0JDQp9CQINCo0JDQndCU0J7QoAor0JHQkNCn0JAg0JvQkNCU0JjQodCb0JDQkgor0JHQkNCn0JDQndCe0JLQmNCLINCd0JXQndCQ0JQKK9CR0JDQp9CY0Isg0KfQldCU0J7QnNCY0KAg0J/QoNCe0KTQldCh0J7QoAor0JHQkNCn0JjQiyDQltCY0JLQmtCeCivQkdCQ0KfQmNCLINCC0J7QoNCC0JUKK9CR0JDQp9CY0Isg0JDQndCi0JUKK9CR0JDQp9CY0Isg0JHQoNCQ0J3QmtCQCivQkdCQ0KfQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JHQkNCn0JjQiyDQiNCe0JLQkNCdCivQkdCQ0KfQmNCLINCa0JDQoNCQCivQkdCQ0KfQmNCLINCc0JDQoNCY0IjQkAor0JHQkNCn0JjQiyDQnNCY0JvQkNCdINCU0KAg0JLQldCi0JXQoNCY0J3QlQor0JHQkNCn0JjQiyDQnNCY0JvQmNCm0JAKK9CR0JDQp9CY0Isg0JzQmNCg0JrQngor0JHQkNCn0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQp9CY0Isg0KHQnNCY0InQkNCd0JAKK9CR0JDQp9Ca0JDQm9CY0Isg0ILQntCg0ILQlQor0JHQkNCn0JrQkNCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQkNCn0JrQkNCb0JjQiyDQlNCe0JHQoNCQCivQkdCQ0KfQmtCQ0JvQmNCLINCU0J7QkdCg0JjQptCQCivQkdCQ0KfQmtCQ0JvQmNCLINCI0J7QktCQ0J0KK9CR0JDQp9Ca0JDQm9CY0Isg0JvQkNCX0JDQoAor0JHQkNCn0JrQkNCb0JjQiyDQidCj0JHQmNCm0JAKK9CR0JDQp9Ca0JDQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9CR0JDQp9Ca0JDQm9CY0Isg0JzQmNCb0JDQnQor0JHQkNCn0JrQkNCb0JjQiyDQnNCY0JvQkAor0JHQkNCn0JrQkNCb0JjQiyDQndCe0JLQkNCaCivQkdCQ0KfQmtCeINCc0JjQm9CQ0J3QkAor0JHQkNCn0JrQniDQn9CV0KLQkNCgCivQkdCQ0KfQm9CY0Isg0ILQntCg0ILQlQor0JHQkNCn0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQkNCn0JvQmNCLINCb0JDQl9CQ0KAKK9CR0JDQp9Cb0JjQiyDQidCj0JHQmNCm0JAKK9CR0JDQp9Cb0JjQiNCQINCI0J7QodCY0J8KK9CR0JDQp9Cb0JjQiNCQINCc0JDQoNCa0J4KK9CR0JDQp9Cb0JjQiNCQINCg0KPQltCY0KbQkAor0JHQkNCn0JvQmNCI0JAg0KHQm9CQ0JLQmNCm0JAKK9CR0JDQp9Cj0JvQntCSINCh0KLQldCS0JDQnQor0JHQkNCn0JLQkNCd0JjQnSDQltCY0JLQntCI0JjQnQor0JHQkNCn0JLQkNCd0KHQmtCYINCR0J7QqNCa0J4KK9CR0JDQp9CS0JDQndCh0JrQmCDQodCi0JXQktCQ0J0g0JTQoCDQmNCd0JMKK9CR0JDQqCDQiNCj0JvQmNCQCivQkdCQ0KjQkCDQlNCj0KjQkNCdCivQkdCQ0KjQkCDQiNCe0JLQkNCdCivQkdCQ0KjQldCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JHQkNCo0JXQktCY0Isg0J3QldCS0JXQndCa0JAKK9CR0JDQqNCY0KfQldCS0JjQiyDQktCe0IjQmNCdINCU0KAKK9CR0JDQqNCY0KfQldCS0JjQiyDQktCe0IjQmNCdCivQkdCQ0KjQmNCLINCW0JDQoNCa0J4KK9CR0JDQqNCY0Isg0ILQo9Cg0J4KK9CR0JDQqNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JDQqNCY0Isg0JHQmNCJ0JDQndCQCivQkdCQ0KjQmNCLINCR0J7QltCeCivQkdCQ0KjQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CR0JDQqNCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JHQkNCo0JjQiyDQlNCj0KjQkNCdCivQkdCQ0KjQmNCLINCU0KPQqNCQ0J0KK9CR0JDQqNCY0Isg0JTQo9Co0JDQnQor0JHQkNCo0JjQiyDQlNCj0KjQkNCdCivQkdCQ0KjQmNCLINCU0KPQqNCQ0J0KK9CR0JDQqNCY0Isg0KTQoNCQ0IrQngor0JHQkNCo0JjQiyDQk9CQ0JLQoNCQCivQkdCQ0KjQmNCLINCT0KDQo9CI0JjQptCQCivQkdCQ0KjQmNCLINCY0JTQoNCY0JcKK9CR0JDQqNCY0Isg0JjQm9CY0IjQkAor0JHQkNCo0JjQiyDQiNCQ0J3QmtCeCivQkdCQ0KjQmNCLINCI0JXQm9CQCivQkdCQ0KjQmNCLINCI0JXQm9CV0J3QkAor0JHQkNCo0JjQiyDQiNCe0JLQkNCdCivQkdCQ0KjQmNCLINCI0J7QktCQ0J0KK9CR0JDQqNCY0Isg0IjQo9Cg0JUKK9CR0JDQqNCY0Isg0JvQkNCX0JDQoAor0JHQkNCo0JjQiyDQidCj0JHQmNCm0JAKK9CR0JDQqNCY0Isg0InQo9CR0JjQptCQCivQkdCQ0KjQmNCLINCb0KPQmtCQCivQkdCQ0KjQmNCLINCc0JDQoNCY0IjQkAor0JHQkNCo0JjQiyDQnNCY0JvQkNCdCivQkdCQ0KjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQqNCY0Isg0JzQmNCb0JAKK9CR0JDQqNCY0Isg0JzQmNCb0JjQptCQCivQkdCQ0KjQmNCLINCc0JjQm9Cj0KLQmNCdINCU0JjQn9CbINCY0J3Qkwor0JHQkNCo0JjQiyDQnNCY0KLQkAor0JHQkNCo0JjQiyDQndCV0JTQldCJ0JrQkAor0JHQkNCo0JjQiyDQndCV0KHQotCe0KAKK9CR0JDQqNCY0Isg0J3QmNCa0J7Qm9CQCivQkdCQ0KjQmNCLINCf0JDQktCb0JUKK9CR0JDQqNCY0Isg0J/QldCi0JDQoAor0JHQkNCo0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQkdCQ0KjQmNCLINCh0JDQktCQCivQkdCQ0KjQmNCLINCh0JDQktCQCivQkdCQ0KjQmNCLINCh0JjQnNCa0JAKK9CR0JDQqNCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CR0JDQqNCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CR0JDQqNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQkNCo0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCQ0KjQmNCLINCh0J7QitCQCivQkdCQ0KjQmNCLINCh0J/QkNCh0J7QiNCVCivQkdCQ0KjQmNCLINCh0KLQldCS0JDQnQor0JHQkNCo0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCQ0KjQmNCLINCS0JXQoNCQCivQkdCQ0KjQmNCL0JXQktCY0Isg0JTQldCh0JAKK9CR0JDQqNCY0KbQkCDQnNCY0JvQkNCdCivQkdCQ0KjQmNCm0JAg0KDQkNCd0JrQngor0JHQkNCo0JjQptCQINCg0JjQodCi0J4KK9CR0JDQqNCa0JDQm9CeINCc0JDQoNCa0J4KK9CR0JDQqNCd0JXQpiDQmNCS0JDQnQor0JHQkNCo0KLQmNCLINCR0J7QltCY0JTQkNCgCivQkdCQ0KjQotCY0Isg0JzQmNCb0JrQkAor0JHQkNCo0KLQmNCLINCf0JXQotCQ0KAKK9CR0JDQqNCi0J7QktCQ0J3QntCSINCU0JDQndCY0KbQkAor0JHQkNCo0KLQntCS0JDQndCe0JIg0KHQotCV0JLQkNCdCivQkdCQ0KjQotCe0JLQkNCd0J7QktCY0Isg0JjQktCQ0J0KK9CR0JDQqNCi0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQkdCQ0IvQkNCdINCU0KDQkNCT0J7QnNCY0KAKK9CR0JDQi9CQ0J3QntCSINCU0KDQkNCT0JjQptCQCivQkdCQ0IvQkNCd0J7QkiDQodCi0JDQndCa0J4KK9CR0JDQi9CQ0J3QntCSINCh0KLQldCS0JDQnQor0JHQkNCL0JDQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0JHQkNCL0JDQndCe0JLQmNCLINCI0KPQptCQCivQkdCQ0IvQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQkNCL0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CR0JDQi9CQ0J3QntCS0JjQiyDQndCV0JzQkNCK0JAKK9CR0JDQi9CQ0J3QntCS0JjQiyDQodCY0J3QmNCo0JAKK9CR0JDQi9CQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CR0JDQi9CY0Isg0InQmNCJ0JDQndCQCivQkdCQ0IvQmNCLINCJ0KPQkdCe0JzQmNCgCivQkdCQ0IvQmNCd0JAg0JzQm9CQ0JTQldCdCivQkdCQ0IvQmNCd0JDQpiDQoNCQ0JTQntCh0JvQkNCSCivQkdCQ0JbQkNCd0KfQmNCaINCR0JXQm9CQCivQkdCQ0JbQkNCd0KLQmNCaINCc0JDQoNCQCivQkdCQ0JbQlNCQ0KAg0JHQoNCj0J3Qngor0JHQkNCW0JTQkNCgINCc0JjQm9Ce0KDQkNCUCivQkdCQ0JbQldCd0J7QkiDQkNCd0JPQldCb0JjQndCQCivQkdCQ0ILQmCDQqNCQ0J3QlNCe0KAKK9CR0JDQgtCYLdCg0JjQkdCQ0KAg0KDQldCd0JDQotCQCivQkdCQ0ILQmNCdINCh0JzQmNCJ0JrQkAor0JHQkNCR0JAg0JjQm9Ce0J3QmtCQCivQkdCQ0JHQkCDQiNCQ0J3QntCoCivQkdCQ0JHQkCDQiNCe0J0KK9CR0JDQkdCQ0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCQ0JHQkNCg0JjQmtCY0J0g0JzQkNCg0JrQngor0JHQkNCR0JXQpiDQl9Ce0KDQkNCdCivQkdCQ0JHQmCDQmNCS0JDQnQor0JHQkNCR0JjQiyDQltCQ0KDQmtCeCivQkdCQ0JHQmNCLINCW0JXQidCa0JAKK9CR0JDQkdCY0Isg0JbQmNCS0JDQnQor0JHQkNCR0JjQiyDQltCY0JLQkNCdCivQkdCQ0JHQmNCLINCC0J7QoNCC0JUKK9CR0JDQkdCY0Isg0ILQntCg0ILQlQor0JHQkNCR0JjQiyDQgtCe0KDQgtCVCivQkdCQ0JHQmNCLINCC0J7QoNCC0JUKK9CR0JDQkdCY0Isg0ILQntCg0ILQlQor0JHQkNCR0JjQiyDQgtCj0KDQgtCY0KbQkAor0JHQkNCR0JjQiyDQgtCj0KDQkAor0JHQkNCR0JjQiyDQgtCj0KDQkAor0JHQkNCR0JjQiyDQgtCj0KDQngor0JHQkNCR0JjQiyDQkNCm0JAKK9CR0JDQkdCY0Isg0JDQmNCU0JAKK9CR0JDQkdCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JDQkdCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JDQkdCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CR0JDQkdCY0Isg0JDQm9CV0JrQodCQCivQkdCQ0JHQmNCLINCQ0JvQmtCQCivQkdCQ0JHQmNCLINCQ0J3QkAor0JHQkNCR0JjQiyDQkNCd0JAKK9CR0JDQkdCY0Isg0JDQndCQCivQkdCQ0JHQmNCLINCR0JjQidCQ0J3QkAor0JHQkNCR0JjQiyDQkdCe0JbQmNCm0JAKK9CR0JDQkdCY0Isg0JHQntCW0JjQlNCQ0KDQmtCQCivQkdCQ0JHQmNCLINCR0J7Qk9CU0JDQnQor0JHQkNCR0JjQiyDQkdCe0IjQkAor0JHQkNCR0JjQiyDQkdCe0KDQmNCo0JAKK9CR0JDQkdCY0Isg0JHQntCg0JjQodCb0JDQktCQCivQkdCQ0JHQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CR0JDQkdCY0Isg0JHQoNCQ0J3QmtCeCivQkdCQ0JHQmNCLINCm0JLQmNCI0J4KK9CR0JDQkdCY0Isg0JTQkNCd0JUKK9CR0JDQkdCY0Isg0JTQkNCg0JjQndCa0JAKK9CR0JDQkdCY0Isg0JTQkNCS0JjQlAor0JHQkNCR0JjQiyDQlNCg0JDQqNCa0J4KK9CR0JDQkdCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CR0JDQkdCY0Isg0JTQoNCQ0JPQkNCdCivQkdCQ0JHQmNCLINCU0KDQkNCT0JjQqNCQCivQkdCQ0JHQmNCLINCU0KDQkNCT0JjQqNCQCivQkdCQ0JHQmNCLINCU0KDQkNCT0JjQqNCQCivQkdCQ0JHQmNCLINCU0KDQkNCT0JjQqNCQCivQkdCQ0JHQmNCLINCU0KDQkNCT0JjQqNCQCivQkdCQ0JHQmNCLINCU0KDQkNCT0J4KK9CR0JDQkdCY0Isg0JTQo9Co0JDQndCa0JAKK9CR0JDQkdCY0Isg0JTQo9Co0JDQnQor0JHQkNCR0JjQiyDQlNCj0KjQkNCdCivQkdCQ0JHQmNCLINCU0KPQqNCQ0J0KK9CR0JDQkdCY0Isg0JTQo9Co0JDQnQor0JHQkNCR0JjQiyDQlNCj0KjQmNCm0JAKK9CR0JDQkdCY0Isg0JPQntCI0JrQngor0JHQkNCR0JjQiyDQk9Ce0IjQmtCeCivQkdCQ0JHQmNCLINCT0J7QoNCQ0J0KK9CR0JDQkdCY0Isg0JPQntCg0JTQkNCd0JAKK9CR0JDQkdCY0Isg0JPQntCg0JjQptCQCivQkdCQ0JHQmNCLINCT0J7QodCf0JDQktCQCivQkdCQ0JHQmNCLINCl0JXQm9CV0J3QkAor0JHQkNCR0JjQiyDQmNCb0JjQiNCQCivQkdCQ0JHQmNCLINCY0JvQmNCI0JAKK9CR0JDQkdCY0Isg0JjQm9CY0IjQkAor0JHQkNCR0JjQiyDQmNCb0JjQndCa0JAKK9CR0JDQkdCY0Isg0JjQktCQ0J0KK9CR0JDQkdCY0Isg0JjQktCQ0J0KK9CR0JDQkdCY0Isg0JjQktCQ0J0KK9CR0JDQkdCY0Isg0IjQntCS0JDQnQor0JHQkNCR0JjQiyDQiNCe0JLQkNCdCivQkdCQ0JHQmNCLINCI0J7QktCQ0J0KK9CR0JDQkdCY0Isg0IjQntCS0JDQnQor0JHQkNCR0JjQiyDQiNCe0JLQkNCdCivQkdCQ0JHQmNCLINCa0JDQotCY0KbQkAor0JHQkNCR0JjQiyDQmtCQ0JfQmNCc0JjQoAor0JHQkNCR0JjQiy3QmtCe0J/QidCQ0J0g0KDQntCW0JAKK9CR0JDQkdCY0Isg0JrQntCh0JAKK9CR0JDQkdCY0Isg0JrQntCh0KLQkNCU0JjQnQor0JHQkNCR0JjQiyDQmtCe0KHQotCQCivQkdCQ0JHQmNCLINCa0KDQodCi0JAKK9CR0JDQkdCY0Isg0JvQkNCX0J4KK9CR0JDQkdCY0Isg0JvQkNCX0J4KK9CR0JDQkdCY0Isg0JvQldCe0J3QmNCUCivQkdCQ0JHQmNCLINCJ0JjQidCQ0J3QkAor0JHQkNCR0JjQiyDQidCY0InQkNCd0JAKK9CR0JDQkdCY0Isg0InQmNCJ0JDQndCQCivQkdCQ0JHQmNCLINCJ0KPQkdCY0KjQkAor0JHQkNCR0JjQiyDQidCj0JHQmNCm0JAKK9CR0JDQkdCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0JDQkdCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0JDQkdCY0Isg0JvQo9Ca0JAKK9CR0JDQkdCY0Isg0JzQkNCI0JAKK9CR0JDQkdCY0Isg0JzQkNCg0JjQiNCQ0J3QkAor0JHQkNCR0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JDQkdCY0Isg0JzQkNCg0JjQndCa0J4KK9CR0JDQkdCY0Isg0JzQkNCg0JrQngor0JHQkNCR0JjQiyDQnNCQ0KLQngor0JHQkNCR0JjQiyDQnNCY0IjQngor0JHQkNCR0JjQiyDQnNCY0JvQkNCU0JjQnQor0JHQkNCR0JjQiyDQnNCY0JvQkNCdCivQkdCQ0JHQmNCLINCc0JjQm9CQ0J0KK9CR0JDQkdCY0Isg0JzQmNCb0JDQnQor0JHQkNCR0JjQiyDQnNCY0JvQkNCdCivQkdCQ0JHQmNCLINCc0JjQm9CQ0J0KK9CR0JDQkdCY0Isg0JzQmNCb0JDQnQor0JHQkNCR0JjQiyDQnNCY0JvQkNCdCivQkdCQ0JHQmNCLINCc0JjQm9CQ0J0KK9CR0JDQkdCY0Isg0JzQmNCb0JDQnQor0JHQkNCR0JjQiyDQnNCY0JvQkNCdCivQkdCQ0JHQmNCLINCc0JjQm9CV0KLQkAor0JHQkNCR0JjQiyDQnNCY0JvQldCS0JAKK9CR0JDQkdCY0Isg0JzQmNCb0JXQktCQCivQkdCQ0JHQmNCLINCc0JjQm9CY0IsKK9CR0JDQkdCY0Isg0JzQmNCb0JjQktCe0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9CR0JDQkdCY0Isg0JzQmNCb0JjQktCe0IgKK9CR0JDQkdCY0Isg0JzQmNCb0JjQktCe0IgKK9CR0JDQkdCY0Isg0JzQmNCb0J7QqAor0JHQkNCR0JjQiyDQnNCY0JvQntCoCivQkdCQ0JHQmNCLINCc0JjQm9Ce0KgKK9CR0JDQkdCY0Isg0JzQmNCb0J7QqAor0JHQkNCR0JjQiyDQnNCY0JvQntCoCivQkdCQ0JHQmNCLINCc0JjQm9Ce0KgKK9CR0JDQkdCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0JDQkdCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0JDQkdCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0JDQkdCY0Isg0JzQmNCb0J7QodCQ0JIKK9CR0JDQkdCY0Isg0JzQmNCg0JAKK9CR0JDQkdCY0Isg0JzQmNCg0JAKK9CR0JDQkdCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0JDQkdCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQkNCR0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0JHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JDQkdCY0Isg0JzQntCc0KfQmNCb0J4KK9CR0JDQkdCY0Isg0JzQntCc0JjQoAor0JHQkNCR0JjQiy3QnNCg0JrQqNCY0Isg0IjQo9Cb0JrQkAor0JHQkNCR0JjQiyDQnNCj0KDQmNCXCivQkdCQ0JHQmNCLINCd0JDQlNCQCivQkdCQ0JHQmNCLINCd0JDQlNCQCivQkdCQ0JHQmNCLINCd0JDQlNCQCivQkdCQ0JHQmNCLINCd0JDQotCQ0KjQkAor0JHQkNCR0JjQiyDQndCV0JTQldCJ0JrQngor0JHQkNCR0JjQiyDQndCV0J3QkNCUCivQkdCQ0JHQmNCLINCd0JjQmtCe0JvQkAor0JHQkNCR0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQkdCY0Isg0J3QmNCa0J7Qm9CQCivQkdCQ0JHQmNCLINCe0JvQk9CY0KbQkAor0JHQkNCR0JjQiyDQntCh0KLQntCI0JAKK9CR0JDQkdCY0Isg0J7QodCi0J7QiNCQCivQkdCQ0JHQmNCLINCf0JXQoNCh0JAKK9CR0JDQkdCY0Isg0J/QldCg0KHQmNCU0JAKK9CR0JDQkdCY0Isg0J/QldCi0JDQoAor0JHQkNCR0JjQiyDQn9CV0KLQkNCgCivQkdCQ0JHQmNCLINCf0JXQotCQ0KAKK9CR0JDQkdCY0Isg0J/QldCi0JDQoAor0JHQkNCR0JjQiyDQn9CV0KLQkNCgCivQkdCQ0JHQmNCLINCf0KDQldCU0KDQkNCTCivQkdCQ0JHQmNCLINCg0JDQlNCV0J3QmtCeCivQkdCQ0JHQmNCLINCg0JDQlNCVCivQkdCQ0JHQmNCLINCg0JDQlNCVCivQkdCQ0JHQmNCLINCg0JDQlNCY0J3QmtCQCivQkdCQ0JHQmNCLINCg0JDQlNCY0KHQkNCSCivQkdCQ0JHQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CR0JDQkdCY0Isg0KDQkNCU0J7QiNCVCivQkdCQ0JHQmNCLINCg0JDQlNCe0IjQmtCQCivQkdCQ0JHQmNCLINCg0JDQlNCe0IjQmtCQCivQkdCQ0JHQmNCLINCg0JDQlNCe0JzQmNCgCivQkdCQ0JHQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CR0JDQkdCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0JDQkdCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0JDQkdCY0Isg0KDQkNCI0JrQngor0JHQkNCR0JjQiyDQoNCQ0IjQmtCeCivQkdCQ0JHQmNCLINCg0JDQndCa0J4KK9CR0JDQkdCY0Isg0KHQkNCo0JAKK9CR0JDQkdCY0Isg0KHQkNCS0J4KK9CR0JDQkdCY0Isg0KHQm9CQ0JTQlQor0JHQkNCR0JjQiyDQodCb0JDQktCY0KbQkAor0JHQkNCR0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCQ0JHQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0JDQkdCY0Isg0KHQnNCY0InQmtCQCivQkdCQ0JHQmNCLINCh0JzQmNCJ0JrQkAor0JHQkNCR0JjQiyDQodCd0JXQltCQ0J3QkAor0JHQkNCR0JjQiyDQodCe0KTQmNCI0JAKK9CR0JDQkdCY0Isg0KHQotCQ0JrQkAor0JHQkNCR0JjQiyDQodCi0JDQndCa0J4KK9CR0JDQkdCY0Isg0KHQotCV0JLQkNCdCivQkdCQ0JHQmNCLINCh0KLQldCS0JDQnQor0JHQkNCR0JjQiyDQodCi0JXQktCQ0J0KK9CR0JDQkdCY0Isg0KHQotCV0JLQkNCdCivQkdCQ0JHQmNCLINCh0KLQldCS0JDQnQor0JHQkNCR0JjQiyDQodCi0JXQktCeCivQkdCQ0JHQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CR0JDQkdCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JHQkNCR0JjQiyDQotCe0JzQngor0JHQkNCR0JjQiyDQktCQ0KHQkAor0JHQkNCR0JjQiyDQktCQ0KHQkAor0JHQkNCR0JjQiyDQktCV0KDQkAor0JHQkNCR0JjQiyDQktCV0KDQmNCm0JAKK9CR0JDQkdCY0Isg0JLQldCh0J3QkAor0JHQkNCR0JjQiyDQktCY0JTQntCh0JDQktCQCivQkdCQ0JHQmNCLINCS0KPQiNCeCivQkdCQ0JHQmNCLINCS0KPQmtCc0JDQnQor0JHQkNCR0JjQiyDQl9CQ0JPQntCg0JrQkAor0JHQkNCR0JjQiyDQl9CU0KDQkNCS0JrQngor0JHQkNCR0JjQiyDQl9Ce0KDQkNCdCivQkdCQ0JHQmNCLINCX0J7QoNCQ0J0KK9CR0JDQkdCY0Isg0JfQntCg0JrQkAor0JHQkNCR0JjQiNCQ0J3QntCS0JjQiyDQiNCj0JvQmtCQCivQkdCQ0JHQmNCb0J7QnSDQktCb0JDQlNCY0JzQmNCgCivQkdCQ0JHQmNCb0J7QnSDQktCb0JDQlNCY0JzQmNCgCivQkdCQ0JHQmNCdINCC0J7QoNCC0JUKK9CR0JDQkdCY0J0g0JHQntCT0JTQkNCdCivQkdCQ0JHQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JHQkNCR0JjQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0JDQkdCY0J0g0JTQo9Co0JDQnQor0JHQkNCR0JjQnSDQiNCe0JLQkNCdCivQkdCQ0JHQmNCdINCa0JDQotCQ0KDQmNCd0JAKK9CR0JDQkdCY0J0g0JrQoNCY0KHQotCY0J3QkAor0JHQkNCR0JjQnSDQm9CQ0JfQkNCgCivQkdCQ0JHQmNCdINCJ0KPQkdCe0JzQmNCgCivQkdCQ0JHQmNCdINCc0JDQoNCY0IjQkAor0JHQkNCR0JjQnSDQnNCQ0KDQmNCdCivQkdCQ0JHQmNCdINCc0JjQpdCQ0IjQm9CeCivQkdCQ0JHQmNCdINCc0JjQm9CQ0J0KK9CR0JDQkdCY0J0g0JzQmNCb0JXQndCQCivQkdCQ0JHQmNCdINCc0JjQm9CV0J3QmtCeINCU0KAg0JjQndCTCivQkdCQ0JHQmNCdINCc0JjQm9CV0J3QmtCeCivQkdCQ0JHQmNCdINCc0JjQntCU0KDQkNCTCivQkdCQ0JHQmNCdINCc0JjQoNCI0JDQndCQCivQkdCQ0JHQmNCdINCc0JjQoNCI0JDQndCQCivQkdCQ0JHQmNCdINCd0JDQlNCQCivQkdCQ0JHQmNCdINCd0JjQmtCe0JvQkAor0JHQkNCR0JjQnSDQn9CV0KLQkNCgCivQkdCQ0JHQmNCdINCg0JDQlNCe0IjQmtCQCivQkdCQ0JHQmNCdINCh0JDQktCQCivQkdCQ0JHQmNCdINCX0J7QoNCQ0J0KK9CR0JDQkdCI0JDQmiDQodCb0J7QkdCe0JTQkNCdCivQkdCQ0JHQmtCQINCI0JDQnQor0JHQkNCR0J7QoNCQ0KYg0JTQoNCQ0JPQkNCdCivQkdCQ0JHQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JHQkNCR0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCQ0JHQntCS0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JHQkNCR0J7QktCY0Isg0IjQldCb0JXQndCQCivQkdCQ0JHQntCS0JjQiyDQiNCe0JLQkNCdCivQkdCQ0JHQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JHQkNCR0J7QktCY0Isg0JzQmNCl0JDQmNCb0J4KK9CR0JDQkdCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQkdCQ0JHQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JHQkNCR0J7QktCY0Isg0KHQmNCd0JjQqNCQINCU0KAKK9CR0JDQkdCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CR0JDQkdCe0JLQmNCLINCX0J7QoNCQCivQkdCQ0KbQmtCe0JLQmNCLINCU0J7QkdCg0J7QodCb0JDQkgor0JHQkNCm0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JDQptCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQkdCQ0KbQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JHQkNCm0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQkdCQ0KbQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCQ0KbQmtCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQkdCQ0KbQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CR0JDQlNCQINCY0KjQotCS0JDQnQor0JHQkNCU0JDQm9CY0Isg0JzQkNCI0JTQkAor0JHQkNCU0JDQitCQ0KYg0IjQldCb0JXQndCQCivQkdCQ0JTQitCQ0KAg0JzQmNCb0JDQnQor0JHQkNCU0IrQkNCgINCc0JjQm9CY0JLQntCI0JUKK9CR0JDQlNCK0JDQoCDQktCb0JDQlNCeCivQkdCQ0JTQitCQ0KDQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JHQkNCU0IrQkNCg0JXQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CR0JDQlNCK0JDQoNCV0JLQmNCLINCc0JjQm9CQ0J3QkAor0JHQkNCU0IrQkNCg0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CR0JDQlNCK0JDQoNCV0JLQmNCLINCg0JDQlNCe0KgKK9CR0JDQlNCK0JDQoNCV0JLQmNCLINCh0KLQkNCd0JAKK9CR0JDQlNCe0JLQmNCd0JDQpiDQlNCg0JDQk9Cj0KLQmNCdCivQkdCQ0JTQntCS0JjQndCQ0KYg0J3QmNCa0J7Qm9CQCivQkdCQ0JTQoNCa0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQlNCg0InQmNCm0JAg0JTQo9Co0JjQptCQCivQkdCQ0JTQoNCJ0JjQptCQINCT0JDQktCg0JAKK9CR0JDQlNCg0InQmNCm0JAg0JvQkNCX0JDQoAor0JHQkNCU0KDQidCY0KbQkCDQnNCb0JDQlNCV0J0KK9CR0JDQlNCg0InQmNCm0JAg0J7Qm9CT0JAKK9CR0JDQlNCg0InQmNCm0JAg0J/QldCi0JDQoAor0JHQkNCU0KDQidCY0KbQkCDQoNCQ0JTQntCI0JrQkAor0JHQkNCk0KPQoSDQm9CQ0KHQm9CeCivQkdCQ0JPQmCDQgtCj0JvQkAor0JHQkNCT0Jgt0JHQldCd0JrQntCS0JjQiyDQn9CQ0JsKK9CR0JDQk9CYINCk0JXQoNCV0J3Qpgor0JHQkNCT0Jgg0JjQqNCi0JLQkNCdCivQkdCQ0JPQmCDQiNCQ0J3QntCoCivQkdCQ0JPQmNCLINCc0JjQoNCI0JDQndCQCivQkdCQ0JPQmNCKINCb0JDQl9CQ0KAKK9CR0JDQk9CY0Iog0JvQldCf0J7QodCQ0JLQkAor0JHQkNCT0JvQkNCS0JAg0JzQmNCb0JDQnQor0JHQkNCT0J7QitCQINCI0JDQnQor0JHQkNCT0J7QitCQINCc0JDQoNCY0IjQkAor0JHQkNCT0J7QitCQINCd0JDQlNCQCivQkdCQ0KUg0JXQoNCd0JAKK9CR0JDQpdCc0JDQnSDQnNCQ0KDQmtCeCivQkdCQ0KXQotCY0IjQkNCg0JXQktCY0Isg0IjQldCb0JAKK9CR0JDQpdCj0J0g0J3QmNCa0J7Qm9CQCivQkdCQ0KXQo9CdINCf0JXQotCQ0KAKK9CR0JDQmNCLINCc0JjQoNCa0J4KK9CR0JDQmNCLINCh0KLQkNCd0JAKK9CR0JDQiNCn0JXQotCQINCc0J7QnNCn0JjQm9CeCivQkdCQ0IjQp9CV0KLQkCDQoNCQ0JTQntCh0JvQkNCSCivQkdCQ0IjQp9CV0KLQmNCLINCR0J7Qk9CU0JDQnSDQlNCgCivQkdCQ0IjQp9CV0KLQmNCLINCJ0KPQkdCY0KbQkAor0JHQkNCI0KfQldCi0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JDQiNCn0JXQotCY0Isg0JzQkNCg0JrQngor0JHQkNCI0KfQldCi0JjQiyDQnNCY0JvQldCd0JrQngor0JHQkNCI0KfQldCi0JjQiyDQnNCY0KDQmtCeCivQkdCQ0IjQp9CV0KLQmNCLINCf0JDQktCb0JUKK9CR0JDQiNCn0JXQotCY0Isg0J/QldCi0JDQoAor0JHQkNCI0KfQldCSINCI0J7QktCQ0J0KK9CR0JDQiNCn0JXQkiDQnNCY0KDQiNCQ0J3QkAor0JHQkNCI0KjQkNCd0KHQmtCYINCU0KDQkNCT0J7QodCb0JDQkgor0JHQkNCI0KjQkNCd0KHQmtCYINCI0J7QktCQ0J0KK9CR0JDQiNCo0JDQndCh0JrQmCDQidCY0InQkNCd0JAKK9CR0JDQiNCo0JDQndCh0JrQmCDQnNCY0JvQkNCU0JjQnQor0JHQkNCI0KjQkNCd0KHQmtCYINCc0JjQm9CV0J3QmtCeCivQkdCQ0IjQqNCQ0J3QodCa0Jgg0KDQkNCU0J7QktCQ0J0KK9CR0JDQiNCo0JDQndCh0JrQmCDQodCQ0JLQkAor0JHQkNCI0KjQkNCd0KHQmtCYINCh0JDQktCQCivQkdCQ0IjQqNCQ0J3QodCa0Jgg0KHQnNCY0InQkAor0JHQkNCI0KjQkNCd0KHQmtCYINCX0J7QoNCQ0J0KK9CR0JDQiNCo0JXQkiDQlNCg0JDQk9Ce0JzQmNCgCivQkdCQ0IjQqNCV0JIg0JjQm9CY0IjQkAor0JHQkNCI0KjQldCSINCc0JjQm9CY0KbQkAor0JHQkNCI0KjQldCSINCh0KLQldCS0JDQnQor0JHQkNCI0KjQldCSINCh0JLQldCi0JjQodCb0JDQkgor0JHQkNCI0KjQmNCLINCW0JDQoNCa0J4KK9CR0JDQiNCo0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JDQiNCo0JjQiyDQnNCY0JvQkNCdCivQkdCQ0IjQkCDQgtCe0KDQgtCVCivQkdCQ0IjQkCDQodCi0JXQktCQ0J0KK9CR0JDQiNCQ0KYg0JHQntCg0JjQodCb0JDQkgor0JHQkNCI0JDQpiDQldCc0JjQm9CY0IjQkCDQlNCgCivQkdCQ0IjQkNCmINCY0KHQkNCaCivQkdCQ0IjQkNCmINCJ0KPQkdCY0KbQkAor0JHQkNCI0JDQpiDQnNCY0JvQkNCdCivQkdCQ0IjQkNCmINCc0JjQm9Ce0KgKK9CR0JDQiNCQ0KYg0JzQmNCb0KPQotCY0J0KK9CR0JDQiNCQ0KYg0KHQktCV0KLQm9CQ0J3QkAor0JHQkNCI0JDQpiDQktCV0KDQkAor0JHQkNCI0JDQk9CY0Isg0JrQkNCi0JjQptCQCivQkdCQ0IjQkNCT0JjQiyDQnNCY0JvQldCd0JAKK9CR0JDQiNCQ0JPQmNCLINCc0JjQntCU0KDQkNCTCivQkdCQ0IjQkNCT0JjQiyDQnNCe0JzQp9CY0JvQngor0JHQkNCI0JDQk9CY0Isg0JzQntCc0KfQmNCb0J4KK9CR0JDQiNCQ0JPQmNCLINCf0JXQotCQ0KAKK9CR0JDQiNCQ0JPQmNCLINCg0JDQlNCQCivQkdCQ0IjQkNCT0JjQiyDQoNCQ0JTQlQor0JHQkNCI0JDQk9CY0Isg0KHQkNCS0J4KK9CR0JDQiNCQ0JPQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CR0JDQiNCQ0JPQmNCLINCi0JDQnNCQ0KDQkAor0JHQkNCI0JDQmtCY0Isg0JzQkNCg0JAKK9CR0JDQiNCQ0JvQniDQiNCe0JLQkNCd0JrQkAor0JHQkNCI0JDQm9Ce0JLQmNCLINCh0J7QpNCY0IjQkAor0JHQkNCI0JDQm9Ce0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JHQkNCI0JDQoiDQnNCY0JvQntCg0JDQlAor0JHQkNCI0JDQoiDQnNCY0KDQmtCeCivQkdCQ0IjQkNCiINCc0JjQoNCa0J4KK9CR0JDQiNCQ0KIg0J3QldCU0JXQidCa0J4KK9CR0JDQiNCQ0KIg0J3QmNCa0J7Qm9CQCivQkdCQ0IjQkNCiINCg0JDQlNCe0JLQkNCdCivQkdCQ0IjQkNCiINCi0KDQmNCk0KPQnQor0JHQkNCI0JDQoiDQktCV0JvQmNCc0JjQoAor0JHQkNCI0JDQl9CV0KIg0IjQldCS0JPQldCd0JjQiNCQCivQkdCQ0IjQkNCX0JXQoiDQotCe0JTQntCgCivQkdCQ0IjQkNCX0JXQoiDQktCV0KDQkCDQlNCY0J/QmyDQmNCd0JMKK9CR0JDQiNCQ0JfQldCi0J7QkiDQlNCg0JDQk9CQ0J0KK9CR0JDQiNCQ0JfQldCi0J7QkiDQlNCg0JDQk9CQ0J0KK9CR0JDQiNCQ0JfQldCi0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JHQkNCI0JDQl9CY0KIg0JzQmNCb0JDQnQor0JHQkNCI0JHQkNCg0JDQmiDQmNCS0JDQnQor0JHQkNCI0JPQniDQl9Ce0JvQotCQ0J0KK9CR0JDQiNCYINCQ0KDQkNCd0JrQkAor0JHQkNCI0Jgt0KXQoNCY0JHQkNCgINCI0KPQm9CY0IjQkAor0JHQkNCI0Jgg0KHQotCV0JLQkNCdCivQkdCQ0IjQmNCLINCn0JXQlNCe0JzQmNCgCivQkdCQ0IjQmNCLINCW0JDQoNCa0J4KK9CR0JDQiNCY0Isg0JbQmNCa0JAKK9CR0JDQiNCY0Isg0JbQmNCS0JrQngor0JHQkNCI0JjQiyDQltCY0JLQntCI0JjQnQor0JHQkNCI0JjQiyDQgtCe0KDQgtCVINCU0KAKK9CR0JDQiNCY0Isg0ILQo9Cg0JAKK9CR0JDQiNCY0Isg0ILQo9Cg0J4KK9CR0JDQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JDQiNCY0Isg0JHQntCo0JrQngor0JHQkNCI0JjQiyDQkdCe0JbQmNCm0JAKK9CR0JDQiNCY0Isg0JHQntCT0JTQkNCdCivQkdCQ0IjQmNCLINCR0J7Qk9Ce0InQo9CRCivQkdCQ0IjQmNCLINCR0J7QiNCa0JAKK9CR0JDQiNCY0Isg0JHQntCg0JAKK9CR0JDQiNCY0Isg0JHQntCg0JjQktCe0IjQlQor0JHQkNCI0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JHQkNCI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JDQiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCQ0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQkNCI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JDQiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCQ0IjQmNCLINCR0KDQkNCd0JrQngor0JHQkNCI0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0JDQiNCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQkdCQ0IjQmNCLINCU0KDQkNCT0JjQptCQCivQkdCQ0IjQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JHQkNCI0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQkdCQ0IjQmNCLINCU0KPQqNCQ0J0KK9CR0JDQiNCY0Isg0JTQo9Co0JDQnQor0JHQkNCI0JjQiyDQlNCj0KjQkNCdCivQkdCQ0IjQmNCLINCU0KPQqNCQ0J0KK9CR0JDQiNCY0Isg0JTQo9Co0JDQnQor0JHQkNCI0JjQiyDQlNCj0KjQkNCdCivQkdCQ0IjQmNCLINCU0KPQqNCa0J4KK9CR0JDQiNCY0Isg0JPQntCI0JrQngor0JHQkNCI0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQkNCI0JjQiyDQmNCb0JjQiNCQCivQkdCQ0IjQmNCLINCY0JvQmNCd0JrQkAor0JHQkNCI0JjQiyDQmNCb0J7QndCQCivQkdCQ0IjQmNCLINCI0JDQk9Ce0KgKK9CR0JDQiNCY0Isg0IjQkNCd0JrQngor0JHQkNCI0JjQiyDQiNCQ0J3QmtCeCivQkdCQ0IjQmNCLINCI0JXQm9CY0KbQkAor0JHQkNCI0JjQiyDQiNCe0JLQkNCdCivQkdCQ0IjQmNCLINCI0J7QktCQ0J0KK9CR0JDQiNCY0Isg0IjQntCS0JDQnQor0JHQkNCI0JjQiyDQiNCe0JLQmNCm0JAKK9CR0JDQiNCY0Isg0JrQoNCh0KLQkAor0JHQkNCI0JjQiyDQm9CQ0JfQkNCgCivQkdCQ0IjQmNCLINCb0KPQmtCQCivQkdCQ0IjQmNCLINCc0JDQoNCQCivQkdCQ0IjQmNCLINCc0JDQoNCQCivQkdCQ0IjQmNCLINCc0JDQoNCY0KbQkAor0JHQkNCI0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JDQiNCY0Isg0JzQkNCg0JjQiNCQCivQkdCQ0IjQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9CR0JDQiNCY0Isg0JzQmNCL0J4KK9CR0JDQiNCY0Isg0JzQmNCl0JDQiNCb0J4g0JTQoAor0JHQkNCI0JjQiyDQnNCY0JvQkNCdINCU0KAg0J/QoNCe0KQKK9CR0JDQiNCY0Isg0JzQmNCb0JDQnQor0JHQkNCI0JjQiyDQnNCY0JvQkNCdCivQkdCQ0IjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQiNCY0Isg0JzQmNCb0JDQnQor0JHQkNCI0JjQiyDQnNCY0JvQkNCdCivQkdCQ0IjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQiNCY0Isg0JzQmNCb0JDQnQor0JHQkNCI0JjQiyDQnNCY0JvQldCd0JrQngor0JHQkNCI0JjQiyDQnNCY0JvQlQor0JHQkNCI0JjQiyDQnNCY0JvQmNCm0JAKK9CR0JDQiNCY0Isg0JzQmNCb0JrQkAor0JHQkNCI0JjQiyDQnNCY0JvQntCS0JDQnQor0JHQkNCI0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQkNCI0JjQiyDQnNCY0KDQmtCeCivQkdCQ0IjQmNCLINCc0JjQoNCa0J4KK9CR0JDQiNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQkNCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0IjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JDQiNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQkNCI0JjQiyDQnNCY0KLQkNCgCivQkdCQ0IjQmNCLINCc0JjQotCQ0KAKK9CR0JDQiNCY0Isg0JzQmNCi0JAKK9CR0JDQiNCY0Isg0JzQm9CQ0JTQldCdCivQkdCQ0IjQmNCLINCc0JvQkNCU0JXQnQor0JHQkNCI0JjQiyDQnNCb0JDQlNCV0J0KK9CR0JDQiNCY0Isg0JzQntCc0KfQmNCb0J4KK9CR0JDQiNCY0Isg0J3QkNCU0JAKK9CR0JDQiNCY0Isg0J3QkNCU0JAKK9CR0JDQiNCY0Isg0J3QkNCi0JDQqNCQCivQkdCQ0IjQmNCLINCd0JXQgtCeCivQkdCQ0IjQmNCLINCd0JXQktCV0J3QkAor0JHQkNCI0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQiNCY0Isg0J3QmNCa0J7Qm9CQCivQkdCQ0IjQmNCLINCf0JXQoNCQCivQkdCQ0IjQmNCLINCf0JXQoNCeCivQkdCQ0IjQmNCLINCf0JXQoNCh0JjQlNCQCivQkdCQ0IjQmNCLINCf0JXQotCQ0KAKK9CR0JDQiNCY0Isg0J/QldCi0JDQoAor0JHQkNCI0JjQiyDQoNCQ0JTQlQor0JHQkNCI0JjQiyDQoNCQ0JTQlQor0JHQkNCI0JjQiyDQoNCQ0JTQlQor0JHQkNCI0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JHQkNCI0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JHQkNCI0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQkdCQ0IjQmNCLINCh0JDQktCQCivQkdCQ0IjQmNCLINCh0JDQktCeCivQkdCQ0IjQmNCLINCh0JjQnNCeCivQkdCQ0IjQmNCLINCh0JjQndCY0KjQkAor0JHQkNCI0JjQiyDQodCb0JDQktCa0J4KK9CR0JDQiNCY0Isg0KHQm9CQ0JLQmtCeCivQkdCQ0IjQmNCLINCh0J3QldCW0JDQndCQCivQkdCQ0IjQmNCLINCh0J3QldCW0JDQndCQCivQkdCQ0IjQmNCLINCh0J7QpNCY0IjQkAor0JHQkNCI0JjQiyDQodCe0KTQmNCI0JAKK9CR0JDQiNCY0Isg0KHQntCk0JjQiNCQCivQkdCQ0IjQmNCLINCh0J7QitCQCivQkdCQ0IjQmNCLINCh0J/QkNCh0J7QiNCVCivQkdCQ0IjQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JHQkNCI0JjQiyDQodCi0JXQktCQ0J0KK9CR0JDQiNCY0Isg0KHQotCV0JLQkNCdCivQkdCQ0IjQmNCLINCh0KLQldCS0JDQnQor0JHQkNCI0JjQiyDQodCi0JXQktCQ0J0KK9CR0JDQiNCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JHQkNCI0JjQiyDQotCe0JTQntCgCivQkdCQ0IjQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CR0JDQiNCY0Ist0KLQo9Cg0JjQndCh0JrQmCDQnNCY0KDQiNCQ0J3QkAor0JHQkNCI0JjQiyDQktCQ0KHQkAor0JHQkNCI0JjQiyDQktCQ0KHQkAor0JHQkNCI0JjQiyDQktCV0KDQntCd0JAKK9CR0JDQiNCY0Isg0JLQldCh0JXQm9CY0J0KK9CR0JDQiNCY0Isg0JLQmNCU0JAKK9CR0JDQiNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQkNCI0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCQ0IjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0JDQiNCY0Isg0JfQntCg0JDQndCa0JAKK9CR0JDQiNCY0Isg0JfQntCg0JDQnQor0JHQkNCI0JjQiyDQl9Ce0KDQkNCdCivQkdCQ0IjQmNCLINCX0J7QoNCQ0J0KK9CR0JDQiNCY0Isg0JfQntCg0JjQptCQCivQkdCQ0IjQmNCb0J4g0JTQoNCQ0JPQntCc0JjQoAor0JHQkNCI0JjQm9CeINCU0KDQkNCT0J7QnNCY0KAKK9CR0JDQiNCY0JvQniDQlNCj0KjQkNCdCivQkdCQ0IjQmNCb0J4g0J/QldCg0J4KK9CR0JDQiNCY0JvQniDQktCY0JTQntCh0JDQktCQCivQkdCQ0IjQmNCb0J7QkiDQidCY0InQkNCd0JAKK9CR0JDQiNCY0J0g0JHQntCg0JjQodCb0JDQkgor0JHQkNCI0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JDQiNCY0J0g0JPQkNCS0KDQmNCb0J4KK9CR0JDQiNCY0J0g0JjQktCQ0J0KK9CR0JDQiNCY0J0g0JrQkNCL0JAKK9CR0JDQiNCY0J0g0InQo9CR0JjQptCQCivQkdCQ0IjQmNCdINCc0JjQm9CQ0J3QmtCQCivQkdCQ0IjQmNCdINCd0JDQlNCQCivQkdCQ0IjQmNCdINCg0JDQlNCe0IjQmtCQCivQkdCQ0IjQmNCdINCg0JDQiNCa0J4KK9CR0JDQiNCY0J0g0KDQo9CW0JjQptCQCivQkdCQ0IjQmNCdINCh0JDQktCQCivQkdCQ0IjQmNCdINCh0JDQktCV0KLQkAor0JHQkNCI0JjQnSDQodCi0J7QiNCQ0J3QmtCQCivQkdCQ0IjQmtCY0J0g0JDQndCC0JXQm9Ca0J4KK9CR0JDQiNCa0JjQnSDQodCi0J7QiNCQ0J0KK9CR0JDQiNCa0JjQnSDQodCS0JXQotCe0JfQkNCgCivQkdCQ0IjQmtCY0J0g0JLQldCh0JXQm9CY0J0KK9CR0JDQiNCa0JjQnSDQktCY0KLQntCc0JjQoAor0JHQkNCI0J7QoCDQnNCQ0KDQmNCI0JAKK9CR0JDQiNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JHQkNCI0J7QktCY0Isg0JzQkNCg0JAKK9CR0JDQiNCe0JLQmNCLINCc0JjQotCQ0KAKK9CR0JDQiNCe0JLQmNCLINCS0JXQoNCQCivQkdCQ0IjQoNCQ0JzQmCDQqNCV0KTQmtCYCivQkdCQ0IjQoNCQ0JzQmCDQqNCV0KTQmtCYCivQkdCQ0IjQoNCQ0JzQmCDQkNCT0KDQntCdCivQkdCQ0IjQoNCQ0JzQmCDQkdCQ0KLQmNCI0JAKK9CR0JDQiNCg0JDQnNCYINCT0JDQndCYCivQkdCQ0IjQoNCQ0JzQmCDQodCa0JXQndCU0JXQoAor0JHQkNCI0KDQkNCc0J7QktCY0Isg0KjQldCg0JjQpAor0JHQkNCI0KDQkNCc0J7QktCY0Isg0KXQmNCS0JfQmNCI0JAKK9CR0JDQiNCg0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JHQkNCI0KEg0KTQoNCQ0J3Qpgor0JHQkNCI0KPQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JHQkNCI0KPQoSDQiNCe0JbQldCkCivQkdCQ0JrQqNCQINCC0J7QoNCC0JUKK9CR0JDQmtCo0JAg0JjQnNCg0JUKK9CR0JDQmtCo0JAg0IjQntCW0JXQpAor0JHQkNCa0KjQkCDQm9CQ0IjQntCoCivQkdCQ0JrQqNCQINCb0JDQiNCe0KgKK9CR0JDQmtCo0JAg0JvQkNCh0JvQngor0JHQkNCa0KjQkCDQnNCQ0JPQlNCQCivQkdCQ0JrQqNCQINCc0JjQpdCQ0IjQm9CeCivQkdCQ0JrQqNCQINCX0J7Qm9Ci0JDQnQor0JHQkNCa0KjQkCDQl9Ce0JvQotCQ0J0KK9CR0JDQmtCQINCQ0J3QotCQ0JsKK9CR0JDQmtCQINCY0KjQotCS0JDQnQor0JHQkNCa0JAg0JjQqNCi0JLQkNCdCivQkdCQ0JrQkCDQmNCo0KLQktCQ0J0KK9CR0JDQmtCQINCY0JHQntCJ0JAKK9CR0JDQmtCQINCc0JjQm9CY0KbQkAor0JHQkNCa0JDQmCDQmNCg0JXQnQor0JHQkNCa0JDQiCDQmNCS0JDQnQor0JHQkNCa0JDQiCDQnNCY0InQmtCeCivQkdCQ0JrQkNCI0JjQiyDQnNCY0JvQkNCdCivQkdCQ0JrQkNCI0JjQnSDQlNCe0JHQoNCY0JvQkAor0JHQkNCa0JDQiNCY0J0g0InQo9CR0J7QnNCY0KAKK9CR0JDQmtCQ0IjQmNCdINCd0JXQktCV0J3QmtCQCivQkdCQ0JrQkNCI0JjQnSDQotCe0JTQntCgCivQkdCQ0JrQkNCb0JjQiyDQgtCj0JvQmNCd0JrQkCDQodCj0JTQmNCI0JAKK9CR0JDQmtCQ0JvQmNCLINCc0JjQpdCQ0IjQm9CeCivQkdCQ0JrQkNCb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkdCQ0JrQkNCb0J7QktCY0Isg0J3QldCc0JDQitCQCivQkdCQ0JrQldCSINCC0J7QoNCC0JUKK9CR0JDQmtCYINCY0KDQldCd0JAKK9CR0JDQmtCYINCe0KLQngor0JHQkNCa0Jgg0JLQldCg0JAKK9CR0JDQmtCY0Kgg0KfQldCU0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQkdCQ0JrQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CR0JDQmtCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQkdCQ0JrQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQkdCQ0JrQmNCLINCY0JLQkNCdCivQkdCQ0JrQmNCLINCI0J7QktCQ0J0KK9CR0JDQmtCY0Isg0JrQntCh0KLQkAor0JHQkNCa0JjQiyDQnNCY0IjQntCc0JjQoAor0JHQkNCa0JjQiyDQnNCY0JvQntCoCivQkdCQ0JrQmNCLINCc0JjQm9Ce0KgKK9CR0JDQmtCY0Isg0JzQmNCb0KPQotCY0J0KK9CR0JDQmtCY0Isg0JzQmNCg0JAKK9CR0JDQmtCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQkNCa0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0JrQmNCLINCd0JDQlNCQCivQkdCQ0JrQmNCLINCh0JjQndCY0KjQkAor0JHQkNCa0JjQiyDQodCe0IrQkAor0JHQkNCa0JvQkNCY0Isg0IjQntCS0JDQndCa0JAKK9CR0JDQmtCc0JDQlyDQm9CQ0JfQngor0JHQkNCa0JzQkNCXINCJ0KPQkdCQ0J0KK9CR0JDQmtCc0JDQlyDQl9Ce0KDQkNCdCivQkdCQ0JrQniDQnNCY0KjQkAor0JHQkNCa0J7Qp9CV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQkdCQ0JrQntCoINCC0JXQoNCC0JgKK9CR0JDQmtCe0Kgg0JPQkNCR0J7QoAor0JHQkNCa0J7QqCDQm9CQ0IjQntCoCivQkdCQ0JrQntCoINCb0JDQodCb0J4KK9CR0JDQmtCe0Kgg0JzQkNCg0JjQiNCQCivQkdCQ0JrQntCoINCf0JDQmwor0JHQkNCa0J7QqCDQn9CV0KLQkNCgCivQkdCQ0JrQntCoINCi0JXQoNCV0JfQmNCI0JAKK9CR0JDQmtCe0JLQmNCLINCg0JDQlNCVCivQkdCQ0JrQotCQ0Jgg0KHQotCV0JLQkNCdCivQkdCQ0JrQo9Cd0JjQiyDQmNCS0JDQnQor0JHQkNCa0KPQndCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JHQkNCa0JLQmNCLINCc0JjQm9CQ0J0KK9CR0JDQmyDQmtCQ0KDQm9CeCivQkdCQ0Jsg0JfQktCe0J3QmNCc0JjQoAor0JHQkNCb0KfQkNCa0J7QktCY0Isg0JLQkNCh0J4KK9CR0JDQm9Co0JjQiyDQoNCQ0J3QmtCQCivQkdCQ0JvQkCDQldCi0JXQm9Ca0JAKK9CR0JDQm9CQINCY0KjQotCS0JDQnQor0JHQkNCb0JAg0IjQkNCd0J7QqAor0JHQkNCb0JAg0IjQo9Cb0JjQiNCQ0J3QkAor0JHQkNCb0JAg0IjQo9Cb0JjQiNCQCivQkdCQ0JvQkCDQmtCQ0KDQm9CeCivQkdCQ0JvQkCDQmtCQ0KDQm9CeCivQkdCQ0JvQkCDQmtCQ0KDQntCJCivQkdCQ0JvQkCDQm9CQ0JTQmNCh0JvQkNCSCivQkdCQ0JvQkCDQnNCY0KXQkNCJCivQkdCQ0JvQkCDQotCV0KDQldCXCivQkdCQ0JvQkNCo0JAg0IjQntCW0JXQpAor0JHQkNCb0JDQiyDQkNCd0JAKK9CR0JDQm9CQ0Isg0JTQo9Co0JDQndCa0JAKK9CR0JDQm9CQ0Isg0IjQntCS0JDQnQor0JHQkNCb0JDQiyDQidCj0JHQngor0JHQkNCb0JDQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0JvQkNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JDQm9CQ0Isg0KHQm9CQ0JLQmtCeCivQkdCQ0JvQkNCLINCh0KDQkdCY0KHQm9CQ0JIKK9CR0JDQm9CQ0Isg0KHQotCV0JLQkNCdCivQkdCQ0JvQkNCLINCS0KPQiNCeCivQkdCQ0JvQkNCLINCX0J7QoNCQCivQkdCQ0JvQkNCWINCo0JDQndCU0J7QoAor0JHQkNCb0JDQliDQgtCj0JvQkAor0JHQkNCb0JDQliDQgtCj0JvQkAor0JHQkNCb0JDQliDQgtCj0JvQkAor0JHQkNCb0JDQliDQgtCj0JvQkAor0JHQkNCb0JDQliDQkNCU0JDQm9CR0JXQoNCiCivQkdCQ0JvQkNCWINCQ0J3QkAor0JHQkNCb0JDQliDQldCi0JXQm9Ca0JAKK9CR0JDQm9CQ0JYg0JPQldCX0JAKK9CR0JDQm9CQ0JYg0JPQldCX0JAKK9CR0JDQm9CQ0JYg0JjQoNCV0J3QkAor0JHQkNCb0JDQliDQmNCS0JDQndCa0JAKK9CR0JDQm9CQ0JYg0IjQkNCd0JjQmtCQCivQkdCQ0JvQkNCWINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCQ0JvQkNCWINCI0J7QodCY0J8KK9CR0JDQm9CQ0JYg0IjQntCS0JDQnQor0JHQkNCb0JDQliDQmtCQ0KLQkNCg0JjQndCQCivQkdCQ0JvQkNCWINCb0JDQodCb0J4KK9CR0JDQm9CQ0JYg0J/QkNCbCivQkdCQ0JvQkNCWINCf0JDQmwor0JHQkNCb0JDQli3Qn9CY0KDQmCDQgtCV0KDQggor0JHQkNCb0JDQliDQl9CY0KLQkAor0JHQkNCb0JDQltCV0JIg0KHQotCY0J/QkNCdCivQkdCQ0JvQkNCW0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CR0JDQm9CQ0JHQkNCdINCR0J7QqNCa0J4KK9CR0JDQm9CQ0JHQkNCdINCR0KDQkNCd0JrQngor0JHQkNCb0JDQkdCQ0J0g0JzQmNCb0J7QktCQ0J0KK9CR0JDQm9CQ0JHQkNCdINCc0JjQm9Cj0KLQmNCdCivQkdCQ0JvQkNCR0JDQnSDQndCV0ILQngor0JHQkNCb0JDQkdCQ0J0g0J/QldCi0JDQoAor0JHQkNCb0JDQkdCQ0J0g0KHQkNCS0J4KK9CR0JDQm9CQ0JHQkNCdINCh0J/QntCc0JXQndCa0JAKK9CR0JDQm9CQ0JHQkNCdINCS0JjQlAor0JHQkNCb0JDQkdCQ0J0g0JLQo9Ca0JDQqNCY0J0KK9CR0JDQm9CQ0JHQkNCd0J7QkiDQkNCd0JAKK9CR0JDQm9CQ0JHQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0JHQkNCb0JDQkdCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQkNCb0JDQkdCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQm9CQ0JHQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JHQkNCb0JDQkdCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkdCQ0JvQkNCIINCc0JjQpdCQ0IjQm9CeCivQkdCQ0JvQkNCb0JjQiyDQj9CV0JLQkNCUINCU0JjQn9CbINCY0J3Qkwor0JHQkNCb0JDQm9CY0Isg0I/QldCS0JDQlAor0JHQkNCb0JDQndCV0KHQmtCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCQ0JvQkNCiINCY0KDQldCd0JAKK9CR0JDQm9CQ0KLQntCdINCC0JXQoNCCCivQkdCQ0JvQkNCi0J7QnSDQgtCV0KDQggor0JHQkNCb0JDQotCe0J0g0ILQldCg0IIKK9CR0JDQm9CQ0KLQntCdINCR0JXQm9CQCivQkdCQ0JvQkNCi0J7QnSDQmNCc0KDQlQor0JHQkNCb0JDQotCe0J0g0JzQkNCT0JTQntCb0J3QkAor0JHQkNCb0JDQotCe0J0g0J/QldCi0JDQoAor0JHQkNCb0KbQkCDQktCb0JDQlNCY0JzQmNCgCivQkdCQ0JvQptCQINCS0JvQkNCU0JjQnNCY0KAKK9CR0JDQm9CU0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCQ0JvQldCd0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9CR0JDQm9CV0KAg0IjQntCh0JjQnwor0JHQkNCb0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9CR0JDQm9CT0J4g0KTQoNCQ0J3QptCY0KjQmtCQCivQkdCQ0JvQmCDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JHQkNCb0Jgg0JPQkNCR0J7QoAor0JHQkNCb0Jgg0JvQkNCh0JvQngor0JHQkNCb0JjQiyDQldCh0JDQlAor0JHQkNCb0JjQliDQmNCb0JTQkAor0JHQkNCb0JjQliDQnNCY0KXQkNCJCivQkdCQ0JvQmNCWINCX0J7Qm9Ci0JDQnQor0JHQkNCb0JjQndCUINCf0JDQmwor0JHQkNCb0JjQndCUINCh0JjQm9CS0JjQkAor0JHQkNCb0JjQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JHQkNCb0JjQndCe0JLQmNCLINCh0JjQndCY0KjQkAor0JHQkNCb0JjQndCiINCo0JDQndCU0J7QoCDQnNCgCivQkdCQ0JvQmNCd0KIg0JbQmNCT0JzQo9Cd0JQKK9CR0JDQm9CY0J3QoiDQgtCe0KDQgtCVCivQkdCQ0JvQmNCd0KIg0ILQo9Cg0JAKK9CR0JDQm9CY0J3QoiDQkNCd0JTQoNCV0IgKK9CR0JDQm9CY0J3QoiDQlNCV0JbQlQor0JHQkNCb0JjQndCiINCY0KjQotCS0JDQnQor0JHQkNCb0JjQndCiINCY0JvQntCd0JAKK9CR0JDQm9CY0J3QoiDQmNCc0KDQlQor0JHQkNCb0JjQndCiINCY0JzQoNCVCivQkdCQ0JvQmNCd0KIg0IjQntCW0JXQpAor0JHQkNCb0JjQndCiINCI0J7QltCV0KQKK9CR0JDQm9CY0J3QoiDQiNCe0KHQmNCfCivQkdCQ0JvQmNCd0KIg0IjQntCh0JjQnwor0JHQkNCb0JjQndCiINCI0J7QodCY0J8KK9CR0JDQm9CY0J3QoiDQiNCj0JvQmNCI0JDQndCQCivQkdCQ0JvQmNCd0KIg0JrQkNCg0J7QiQor0JHQkNCb0JjQndCiINCc0JDQi9CQ0KgKK9CR0JDQm9CY0J3QoiDQnNCQ0KDQk9CQ0KDQldCi0JAKK9CR0JDQm9CY0J3QoiDQnNCQ0KDQmNCQCivQkdCQ0JvQmNCd0KIg0JzQkNCg0JjQiNCQCivQkdCQ0JvQmNCd0KIg0JzQkNCg0JjQiNCQCivQkdCQ0JvQmNCd0KIg0JzQmNCl0JDQmNCb0J4KK9CR0JDQm9CY0J3QoiDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0JvQmNCd0KIt0JzQmNCi0KDQntCS0JjQiyDQntCb0JPQkAor0JHQkNCb0JjQndCiINCg0JDQlNCe0KHQm9CQ0JIKK9CR0JDQm9CY0J3QoiDQoNCe0JHQldCg0KIKK9CR0JDQm9CY0J3QoiDQodCb0JDQktCe0JzQmNCgCivQkdCQ0Ikg0JHQoNCQ0J3QmtCeCivQkdCQ0Ikg0JzQmNCb0J7QoNCQ0JQKK9CR0JDQiSDQodCQ0JLQngor0JHQkNCJ0JAg0JjQlNCg0JjQlwor0JHQkNCJ0JDQmiDQp9CV0JTQntCc0JjQoAor0JHQkNCJ0J7QqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCQ0InQntCo0JXQktCY0Isg0JHQntCT0JTQkNCd0JrQkAor0JHQkNCJ0J7QqNCV0JLQmNCLINCI0J7QktCQ0J0KK9CR0JDQidCe0KjQldCS0JjQiyDQnNCY0KDQngor0JHQkNCJ0J7Ql9Ce0JLQmNCLINCe0JvQmNCS0JXQoNCQCivQkdCQ0InQntCX0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkiDQlNCgCivQkdCQ0JvQmtCe0JLQntCIINCS0JvQkNCU0JjQnNCY0KAKK9CR0JDQm9Cd0J7QltCQ0J0g0J3QldCS0JXQndCa0JAKK9CR0JDQm9Cd0J7QltCQ0J0g0KHQmNCc0JAKK9CR0JDQm9CeINCT0JDQqNCf0JDQoAor0JHQkNCb0J4g0J/QldCi0JDQoAor0JHQkNCb0J7QqCDQndCj0KbQkAor0JHQkNCb0J7QqCDQotCe0JTQntCgCivQkdCQ0JvQntCoINCi0J7QlNCe0KAKK9CR0JDQm9Ce0JHQkNCdINCc0JjQm9CQ0J0KK9CR0JDQm9Ce0JHQkNCdINCc0JjQm9CQ0J0KK9CR0JDQm9Ce0JMg0KjQkNCd0JTQntCgCivQkdCQ0JvQntCTINCW0JjQktCa0JAKK9CR0JDQm9Ce0JMg0JbQo9CW0JDQndCQCivQkdCQ0JvQntCTINCC0J7QoNCC0JUKK9CR0JDQm9Ce0JMg0ILQntCg0ILQlQor0JHQkNCb0J7QkyDQgtCe0KDQgtCVCivQkdCQ0JvQntCTINCC0KPQoNCQCivQkdCQ0JvQntCTINCC0KPQoNCQCivQkdCQ0JvQntCTINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCQ0JvQntCTINCQ0J3QkAor0JHQkNCb0J7QkyDQkNCd0JAKK9CR0JDQm9Ce0JMg0JDQndCQCivQkdCQ0JvQntCTINCQ0J3QlNCg0JDQqAor0JHQkNCb0J7QkyDQkNCd0JTQoNCY0IjQkAor0JHQkNCb0J7QkyDQkdCV0JvQkAor0JHQkNCb0J7QkyDQkdCg0JDQndCa0J4KK9CR0JDQm9Ce0JMg0JTQldCW0JUKK9CR0JDQm9Ce0JMg0JTQldCW0JUKK9CR0JDQm9Ce0JMg0JTQoNCQ0JPQkNCdCivQkdCQ0JvQntCTINCU0KPQqNCQ0J3QmtCQCivQkdCQ0JvQntCTINCk0JXQoNCV0J3Qpgor0JHQkNCb0J7QkyDQpNCg0JDQitCQCivQkdCQ0JvQntCTINCk0KDQkNCK0JAKK9CR0JDQm9Ce0JMg0KTQoNCQ0IrQkAor0JHQkNCb0J7QkyDQmNCo0KLQktCQ0J0KK9CR0JDQm9Ce0JMg0JjQkdCe0IjQmtCQCivQkdCQ0JvQntCTINCY0JzQoNCVCivQkdCQ0JvQntCTINCY0JzQoNCVCivQkdCQ0JvQntCTINCI0J7QltCV0KQKK9CR0JDQm9Ce0JMg0IjQntCm0JAKK9CR0JDQm9Ce0JMg0IjQntCS0JDQnQor0JHQkNCb0J7QkyDQiNCj0JvQmNCI0JDQndCQCivQkdCQ0JvQntCTINCI0KPQm9CY0IjQkNCd0JAKK9CR0JDQm9Ce0JMg0JrQkNCb0JzQkNCdCivQkdCQ0JvQntCTINCa0JDQoNCe0IkKK9CR0JDQm9Ce0JMg0JrQkNCg0J7QiQor0JHQkNCb0J7QkyDQmtCQ0KLQkNCg0JjQndCQCivQkdCQ0JvQntCTINCb0JDQlNCY0KHQm9CQ0JIKK9CR0JDQm9Ce0JMg0JvQkNCU0JjQodCb0JDQkgor0JHQkNCb0J7QkyDQm9CQ0KHQm9CeCivQkdCQ0JvQntCTINCc0JDQk9CU0JAKK9CR0JDQm9Ce0JMg0JzQkNCg0JAKK9CR0JDQm9Ce0JMg0JzQkNCg0JjQiNCQCivQkdCQ0JvQntCTINCc0JDQoNCY0IjQkAor0JHQkNCb0J7QkyDQnNCQ0KDQmNCI0JAKK9CR0JDQm9Ce0JMg0JzQkNCg0JjQiNCQCivQkdCQ0JvQntCTINCc0JDQoNCY0IjQkAor0JHQkNCb0J7QkyDQnNCQ0KDQotCQCivQkdCQ0JvQntCTINCc0JjQm9CV0J3QkAor0JHQkNCb0J7QkyDQnNCY0KDQmtCeCivQkdCQ0JvQntCTINCd0JjQmtCe0JvQkAor0JHQkNCb0J7QkyDQndCY0JrQntCb0JAKK9CR0JDQm9Ce0JMg0J/QmNCo0KLQkAor0JHQkNCb0J7QkyDQn9CY0KDQntCo0JrQkAor0JHQkNCb0J7QkyDQodCY0JzQkAor0JHQkNCb0J7QkyDQodCc0JjQidCQCivQkdCQ0JvQntCTINCh0J/QntCc0JXQndCa0JAKK9CR0JDQm9Ce0JMg0KHQotCV0JLQkNCdCivQkdCQ0JvQntCTINCh0KLQldCS0JDQnQor0JHQkNCb0J7QkyDQodCi0JXQktCQ0J0KK9CR0JDQm9Ce0JMg0KLQmNCR0J7QoAor0JHQkNCb0J7QkyDQktCV0JvQmNCc0JjQoAor0JHQkNCb0J7QkyDQl9Ce0KDQkNCdCivQkdCQ0JvQntCaINCY0KjQotCS0JDQnQor0JHQkNCb0J7QktCY0Isg0JzQmNCb0JjQiwor0JHQkNCb0KLQkCDQkNCd0JAKK9CR0JDQm9Ci0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0JDQm9Ci0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JHQkNCb0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0JHQkNCb0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JDQm9Ci0J7QktCY0Isg0J/QldCi0JDQoAor0JHQkNCb0KPQndCe0JLQmNCLINCY0JLQkNCdCivQkdCQ0JzQkdCj0JvQntCS0JjQiyDQnNCY0JvQmtCQCivQkdCQ0J0g0KHQotCV0JLQkNCdCivQkdCQ0J3Qp9CV0JLQmNCLINCf0JXQotCQ0KAKK9CR0JDQndCn0JXQktCY0Isg0KDQkNCU0JUKK9CR0JDQndCn0Jgg0JHQkNCb0JjQndCiCivQkdCQ0J3Qp9CYINCa0JDQoNCe0IkKK9CR0JDQndCn0JjQiyDQltCY0JLQmtCeCivQkdCQ0J3Qp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JDQndCn0JjQiyDQiNCe0JLQkNCdCivQkdCQ0J3Qp9CY0Isg0IjQo9Cb0JrQkAor0JHQkNCd0KfQmNCLINCb0JDQl9CQCivQkdCQ0J3Qp9CY0Isg0JzQkNCg0JjQiNCQCivQkdCQ0J3Qp9CY0Isg0KHQntCk0JjQiNCQCivQkdCQ0J3Qp9CY0Isg0KHQotCV0JLQmNCm0JAKK9CR0JDQndCn0JjQiyDQotCe0JTQntCgCivQkdCQ0J3QgtCj0KAg0JzQmNCg0JrQngor0JHQkNCd0JDQi9CQ0J3QmNCdINCJ0JjQidCQ0J3QkAor0JHQkNCd0JDQi9CQ0J3QmNCdINCe0JvQk9CQCivQkdCQ0J3QkNCYINCi0JjQkdCe0KAKK9CR0JDQndCQ0Jgg0JLQldCg0JAKK9CR0JDQndCQ0Igg0IjQntCh0JjQnwor0JHQkNCd0JTQkCDQltCY0JLQmtCeCivQkdCQ0J3QlNCY0Isg0JHQm9CQ0JPQntCI0JUKK9CR0JDQndCU0JjQiyDQiNCV0JvQmNCm0JAKK9CR0JDQndCU0JjQiyDQidCj0JHQntCc0JjQoAor0JHQkNCd0JTQmNCLINCJ0KPQkdCeCivQkdCQ0J3QlNCY0Isg0KDQkNCU0JUKK9CR0JDQndCU0JjQiyDQodCQ0JLQmtCQCivQkdCQ0J3QlNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQkNCd0JTQmNCLINCS0JXQoNCY0KbQkAor0JHQkNCd0JTQmNCLINCS0KPQiNCQ0JTQmNCdCivQkdCQ0J3QlNCY0J0g0JbQmNCS0J7QoNCQ0JQKK9CR0JDQndCU0JjQnSDQmNCS0JDQnQor0JHQkNCd0JTQmNCdINCa0JDQotCY0KbQkAor0JHQkNCd0JTQmNCdINCc0JjQntCU0KDQkNCTCivQkdCQ0J3QlNCY0J0g0JzQm9CQ0JTQldCdCivQkdCQ0J3QlNCe0JHQoNCQ0J3QodCa0Jgg0J7Qm9CT0JAKK9CR0JDQndCU0J7Qm9CeINCU0KDQkNCT0JjQptCQCivQkdCQ0J3QlNCj0JrQkCDQlNCg0JDQk9Cj0KLQmNCdCivQkdCQ0J3QpNCYINCc0JDQoNCY0IjQkAor0JHQkNCd0JPQniDQidCj0JTQldCS0JjQogor0JHQkNCd0JjQiyDQkNCd0ILQkAor0JHQkNCd0JjQiyDQkdCe0JbQmNCU0JDQoAor0JHQkNCd0JjQiyDQkdCg0JDQndCa0J4g0JTQoAor0JHQkNCd0JjQiyDQldCc0JjQm9CY0IjQkAor0JHQkNCd0JjQiyDQldCS0JjQptCQCivQkdCQ0J3QmNCLINCa0JDQotCY0KbQkAor0JHQkNCd0JjQiyDQnNCY0JvQntCoCivQkdCQ0J3QmNCLINCc0JjQm9Ce0JLQkNCdCivQkdCQ0J3QmNCLINCf0JDQndCVCivQkdCQ0J3QmNCLINCf0JXQotCQ0KAKK9CR0JDQndCY0Isg0KDQkNCU0JUKK9CR0JDQndCY0Isg0KDQkNCU0J7QnNCY0KAKK9CR0JDQndCY0Isg0KDQkNCh0KLQmtCeCivQkdCQ0J3QmNCLINCg0KPQltCY0KbQkAor0JHQkNCd0JjQiyDQodCb0JDQktCa0J4KK9CR0JDQndCY0Isg0KHQktCV0KLQntCX0JDQoAor0JHQkNCd0JjQiyDQl9Ce0KDQmtCQCivQkdCQ0J3QmNCL0JXQktCY0Isg0IjQldCb0JXQndCQCivQkdCQ0J3QmNCL0JXQktCY0Isg0JLQldCh0JXQm9CY0J0KK9CR0JDQndCY0JAt0JbQmNCS0JDQlNCY0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQkNCK0JDQqCDQgtCj0KDQkAor0JHQkNCK0JDQpiDQp9CV0JTQntCc0JjQoAor0JHQkNCK0JDQpiDQp9CV0JTQngor0JHQkNCK0JDQpiDQp9CV0JTQngor0JHQkNCK0JDQpiDQqNCf0JjQoNCeINCU0JjQn9CbINCY0J3Qkwor0JHQkNCK0JDQpiDQltCY0JLQkNCdCivQkdCQ0IrQkNCmINCC0J7QoNCC0JUKK9CR0JDQitCQ0KYg0ILQntCg0ILQlQor0JHQkNCK0JDQpiDQgtCe0KDQgtCVCivQkdCQ0IrQkNCmINCR0J7QodCY0InQmtCQCivQkdCQ0IrQkNCmINCU0JDQndCY0JvQngor0JHQkNCK0JDQpiDQlNCc0JjQotCQ0KAKK9CR0JDQitCQ0KYg0JTQoNCQ0JPQkNCdINCU0JjQn9CbINCY0J3Qkwor0JHQkNCK0JDQpiDQlNCg0JDQk9CQ0J0KK9CR0JDQitCQ0KYg0JTQoNCQ0JPQmNCm0JAKK9CR0JDQitCQ0KYg0JTQoNCQ0JPQmNCm0JAKK9CR0JDQitCQ0KYg0JTQo9Co0JDQnQor0JHQkNCK0JDQpiDQlNCj0KjQmtCeCivQkdCQ0IrQkNCmINCU0KPQqNCa0J4KK9CR0JDQitCQ0KYg0JXQnNCY0JsKK9CR0JDQitCQ0KYg0JPQkNCS0KDQkAor0JHQkNCK0JDQpiDQk9Ce0IjQmtCeCivQkdCQ0IrQkNCmINCI0JXQm9CV0J3QkAor0JHQkNCK0JDQpiDQiNCe0JLQkNCdCivQkdCQ0IrQkNCmINCI0J7QktCQ0J0KK9CR0JDQitCQ0KYg0JrQkNCi0JjQptCQCivQkdCQ0IrQkNCmINCc0JjQm9CQ0J0KK9CR0JDQitCQ0KYg0JzQmNCb0JDQnQor0JHQkNCK0JDQpiDQnNCY0JvQlQor0JHQkNCK0JDQpiDQnNCY0JvQntCg0JDQlAor0JHQkNCK0JDQpiDQnNCY0KDQmtCeCivQkdCQ0IrQkNCmINCd0JXQlNCV0InQmtCeCivQkdCQ0IrQkNCmINCd0JjQmtCe0JvQkAor0JHQkNCK0JDQpiDQntCb0JPQkAor0JHQkNCK0JDQpiDQn9CV0KDQngor0JHQkNCK0JDQpiDQn9CV0KLQkNCgCivQkdCQ0IrQkNCmINCg0JDQlNCQCivQkdCQ0IrQkNCmINCg0JDQlNCe0IrQkAor0JHQkNCK0JDQpiDQodCQ0JLQkAor0JHQkNCK0JDQpiDQodCQ0JLQkAor0JHQkNCK0JDQpiDQodCQ0JLQldCi0JAKK9CR0JDQitCQ0KYg0KHQkNCS0J4KK9CR0JDQitCQ0KYg0KHQm9CQ0JLQmtCeCivQkdCQ0IrQkNCmINCh0JvQkNCS0J3QkAor0JHQkNCK0JDQpiDQodCb0J7QkdCe0JTQkNCdCivQkdCQ0IrQkNCmINCh0KLQldCS0JDQnQor0JHQkNCK0JDQpiDQotCV0J7QlNCe0KAKK9CR0JDQitCQ0KYg0JLQldCh0J3QkAor0JHQkNCK0JDQpiDQktCY0J3QmtCeCivQkdCQ0IrQkNCmINCS0JjQotCe0JzQmNCgCivQkdCQ0IrQkNCmINCS0J7QiNCY0KHQm9CQ0JIKK9CR0JDQitCQ0Jgg0IjQkNCT0JAKK9CR0JDQitCQ0Jgg0IjQkNCd0J7QqAor0JHQkNCK0JDQmCDQiNCe0JLQkNCdCivQkdCQ0IrQkNCYINCb0JDQiNCe0KgKK9CR0JDQitCQ0Jgg0JzQkNCL0JDQqAor0JHQkNCK0JDQmCDQnNCQ0KDQmNCI0JAKK9CR0JDQitCQ0Jgg0KDQntCc0JDQnQor0JHQkNCK0JDQmCDQoNCj0JbQkAor0JHQkNCK0JDQndCQ0KYg0JHQoNCQ0J3QmtCeCivQkdCQ0IrQkNCd0JDQpiDQkdCg0JDQotCY0KHQm9CQ0JIKK9CR0JDQitCQ0J3QkNCmINCc0JjQm9CQ0J0KK9CR0JDQitCQ0J3QkNCmINCg0JDQlNCVCivQkdCQ0IrQkNCd0JDQpiDQodCb0JDQktCY0KbQkAor0JHQkNCK0JDQndCY0J0g0JTQkNCd0JjQptCQCivQkdCQ0IrQkNCd0JjQnSDQlNCQ0KDQkAor0JHQkNCK0JDQndCY0J0g0IjQldCb0JXQndCQCivQkdCQ0IrQkNCd0JjQnSDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JHQkNCK0JDQndCY0J0g0IjQntCS0JDQnQor0JHQkNCK0JDQndCY0J0g0J3QldCU0JXQidCa0J4KK9CR0JDQitCQ0J3QmNCdINCd0JXQlNCV0InQmtCeCivQkdCQ0IrQkNCd0JjQnSDQndCY0JrQntCb0JAKK9CR0JDQitCQ0J3QmNCdINCd0JjQmtCe0JvQkAor0JHQkNCK0JDQndCY0J0g0KDQkNCU0JzQmNCb0JAKK9CR0JDQitCQ0J3QmNCdINCh0J7QpNCY0IjQkAor0JHQkNCK0JDQndCY0J0g0JLQldCb0JjQnNCY0KAKK9CR0JDQitCQ0KDQmCDQm9CQ0IjQntCoCivQkdCQ0IrQldCT0JvQkNCSINCR0J7QltCQCivQkdCQ0IrQldCT0JvQkNCSINCU0KDQkNCT0JDQnQor0JHQkNCK0JXQk9Cb0JDQkiDQlNCj0KjQkNCdCivQkdCQ0IrQldCT0JvQkNCSINCd0JjQmtCe0JvQkAor0JHQkNCK0JXQk9Cb0JDQkiDQoNCQ0JTQmNCS0J7QiAor0JHQkNCK0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CR0JDQndCa0JAg0JvQkNCI0J7QqAor0JHQkNCd0JrQntCS0JDQp9Ca0Jgg0ILQo9Cg0JAKK9CR0JDQndCa0J7QktCQ0KfQmtCYINCI0J7QktCQ0J0KK9CR0JDQndCa0J7QktCQ0KfQmtCYINCc0JDQoNCY0IjQkAor0JHQkNCd0JrQntCS0JDQp9Ca0Jgg0J3QkNCU0JAKK9CR0JDQndCa0J7QktCQ0KfQmtCYINCf0JXQotCQ0KAKK9CR0JDQndCa0J7QktCQ0KfQmtCYINCh0JDQktCQCivQkdCQ0J3QmtCe0JLQkNCn0JrQmCDQodCS0JXQotCe0JfQkNCgCivQkdCQ0J3QmtCe0JLQmNCLINCc0JjQm9Cj0J0KK9CR0JDQndCe0JLQp9CQ0J3QmNCdINCU0KDQkNCT0JjQptCQCivQkdCQ0J3QntCS0KfQkNCd0JjQnSDQnNCY0JvQkNCdCivQkdCQ0J3QntCS0KfQkNCd0JjQnSDQnNCe0JzQp9CY0JvQngor0JHQkNCd0J7QktCQ0KfQmtCYINCC0J7QoNCC0JUKK9CR0JDQndCe0JLQkNCn0JrQmCDQiNCe0JLQkNCdCivQkdCQ0J3QntCS0JDQp9Ca0Jgg0JzQkNCg0JjQiNCQCivQkdCQ0J3QntCS0JDQp9Ca0Jgg0KDQo9CW0JjQptCQCivQkdCQ0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQkdCQ0J3QntCS0JjQiyDQltCY0JLQntCg0JDQlAor0JHQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JHQkNCd0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9CR0JDQndCe0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9CR0JDQndCe0JLQmNCLLdCb0J7QpiDQndCQ0JTQkAor0JHQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQkNCd0J7QktCY0Isg0JzQmNCJ0JrQngor0JHQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCQ0J3QntCS0JjQiyDQodCb0JDQktCQCivQkdCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCQ0J3QodCa0Jgg0JXQoNCY0JrQkAor0JHQkNCd0KHQmtCYINCc0JDQoNCY0IjQkAor0JHQkNCg0KfQmNCa0JjQnSDQgtCe0KDQgtCVCivQkdCQ0KDQqNCYINCV0J3QlNCg0JUKK9CR0JDQoNCo0Jgg0JvQkNCh0JvQngor0JHQkNCg0JDQp9CQ0J3QmNCdINCU0JDQndCY0KbQkAor0JHQkNCg0JDQp9CQ0J3QmNCdINCb0JDQl9CQ0KAKK9CR0JDQoNCQ0KfQkNCd0JjQnSDQn9CQ0IjQkAor0JHQkNCg0JDQp9CQ0J3QmNCdINCh0JDQktCa0JAKK9CR0JDQoNCQ0KfQmCDQodCi0JXQktCQ0J0KK9CR0JDQoNCQ0KfQmtCe0JIg0KfQldCU0J7QnNCY0KAKK9CR0JDQoNCQ0KfQmtCe0JIg0ILQntCg0ILQlQor0JHQkNCg0JDQp9Ca0J7QkiDQk9Ce0KDQmNCd0JrQkAor0JHQkNCg0JDQp9Ca0J7QkiDQnNCY0JvQkNCdCivQkdCQ0KDQkNCn0JrQntCSINCh0KDQldCU0J7QiNCVCivQkdCQ0KDQkNCn0JrQntCSINCS0JXQodCV0JvQmNCdCivQkdCQ0KDQkNCo0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQkdCQ0KDQkNCo0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQkNCg0JDQqNCY0J0g0JPQntCg0JDQnQor0JHQkNCg0JDQqNCY0J0g0InQo9CR0J7QnNCY0KAKK9CR0JDQoNCQ0KjQmNCdINCd0JXQktCV0J3QmtCQCivQkdCQ0KDQkNCo0JjQnSDQodCQ0JLQkAor0JHQkNCg0JDQiyDQltCQ0KDQmtCeCivQkdCQ0KDQkNCLINCU0KDQkNCT0JjQptCQCivQkdCQ0KDQkNCLINCU0KPQqNCQ0J3QmtCQCivQkdCQ0KDQkNCLINCT0J7QlNCY0JzQmNCgCivQkdCQ0KDQkNCLINCT0J7QiNCa0J4KK9CR0JDQoNCQ0Isg0IjQntCh0JjQnwor0JHQkNCg0JDQiyDQmtCe0JLQmNCJ0JrQkAor0JHQkNCg0JDQiyDQnNCY0JvQkNCdCivQkdCQ0KDQkNCLINCc0JjQm9Ce0KgKK9CR0JDQoNCQ0Isg0JzQmNCb0J7QqAor0JHQkNCg0JDQiyDQnNCY0JvQntCh0JDQktCQCivQkdCQ0KDQkNCLINCc0J7QnNCn0JjQm9CeCivQkdCQ0KDQkNCLINCg0JDQlNCe0IrQkAor0JHQkNCg0JDQiyDQodCQ0KDQkNCk0JjQndCQCivQkdCQ0KDQkNCLINCh0KLQkNCd0JjQnNCY0KDQmtCQCivQkdCQ0KDQkNCLINCS0JXQodCV0JvQmNCdCivQkdCQ0KDQkNCLINCS0JjQlNCQ0JoKK9CR0JDQoNCQ0Isg0JLQo9Cn0JjQndCQCivQkdCQ0KDQkNCmINCc0JDQm9CY0KjQkAor0JHQkNCg0JDQpiDQnNCQ0KDQmtCeCivQkdCQ0KDQkNCmINCd0J7QktCeCivQkdCQ0KDQkNCmINCi0J7QnNCY0KHQm9CQ0JIKK9CR0JDQoNCQ0IjQldCS0JDQpiDQiNCe0JLQkAor0JHQkNCg0JDQmtCeINCh0JDQktCQCivQkdCQ0KDQkNCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0KDQkNCdINCI0JDQmtCY0JwKK9CR0JDQoNCQ0J0g0JzQmNCl0JDQiNCb0J4KK9CR0JDQoNCQ0J0g0JzQmNCg0J7QnSDQlNCY0J/QmyDQmNCd0JMKK9CR0JDQoNCQ0J3QmNCdINCS0JDQodCY0JvQmNCI0JUKK9CR0JDQoNCQ0IrQkNCYINCI0JXQndCVCivQkdCQ0KDQkNCK0Jgg0KTQldCg0JXQndCmCivQkdCQ0KDQkNCK0Jgg0KTQldCg0JXQndCmCivQkdCQ0KDQkNCK0Jgg0JvQkNCh0JvQngor0JHQkNCg0JDQitCYINCf0JDQktCb0JUKK9CR0JDQoNCQ0IrQmCDQodCi0JXQktCQ0J0KK9CR0JDQoNCQ0J3QntCS0KHQmtCYINCS0JvQkNCU0JAKK9CR0JDQoNCQ0KEg0KLQntCc0JAg0JTQoAor0JHQkNCg0JDQoiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQkNCg0JDQoiDQlNCg0JDQk9CY0KbQkAor0JHQkNCg0JDQoiDQlNCg0JDQk9CY0IrQkAor0JHQkNCg0JDQoiDQpNCV0KDQldCd0KYKK9CR0JDQoNCQ0KIg0JjQnNCg0JUKK9CR0JDQoNCQ0KIg0J7Qm9CT0JAKK9CR0JDQoNCQ0KIg0J7QodCa0JDQoAor0JHQkNCg0JDQotCe0JIg0JHQntCo0JrQngor0JHQkNCg0JHQkNCg0JjQiyDQkNCd0KLQlQor0JHQkNCg0JHQkNCg0JjQiyDQn9CQ0JLQm9CVCivQkdCQ0KDQkdCQ0KLQldCh0JrQntCS0JjQiyDQidCj0JHQmNCo0JAKK9CR0JDQoNCR0JXQoNCY0Isg0JTQoNCQ0JPQkNCdCivQkdCQ0KDQkdCV0KDQmNCLINCc0JjQoNCa0J4KK9CR0JDQoNCR0JjQoCDQkNCd0KLQlQor0JHQkNCg0JHQmNCgINCJ0KPQkdCQCivQkdCQ0KDQkdCjINCS0JDQodCQCivQkdCQ0KDQkdCj0Jsg0JzQkNCg0JjQiNCQCivQkdCQ0KDQkdCj0Jsg0JzQmNCb0JDQnQor0JHQkNCg0JHQo9CbINCc0JjQm9CQ0J0KK9CR0JDQoNCR0KPQmyDQodCQ0JLQkAor0JHQkNCg0JHQo9CbINCh0KLQntCI0JDQnQor0JHQkNCg0JHQo9CbINCS0JvQkNCU0JjQodCb0JDQktCQCivQkdCQ0KDQkdCj0JvQntCSINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQkNCg0JHQo9Cb0J7QkiDQlNCe0JHQoNCY0JLQntCICivQkdCQ0KDQkdCj0JvQntCSINCc0JjQm9CY0JLQntCICivQkdCQ0KDQkdCj0JvQntCSINCd0JjQmtCe0JvQkAor0JHQkNCg0JHQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQkdCQ0KDQkdCj0JfQkNCdINCI0JDQodCd0JAKK9CR0JDQoNCR0KPQl9CQ0J0g0KDQo9CW0JjQptCQCivQkdCQ0KDQptCQ0Jsg0ILQldCg0IIKK9CR0JDQoNCm0JDQmyDQkNCd0JAKK9CR0JDQoNCm0JDQmyDQiNCe0JbQldCkCivQkdCQ0KDQptCQ0Jsg0JvQkNCh0JvQniDQlNCY0J/QmyDQmNCd0JMKK9CR0JDQoNCm0JXQmyDQmtCQ0KLQmNCm0JAKK9CR0JDQoNCU0JDQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQkNCg0JTQkNCaINCQ0J3QmtCY0KbQkAor0JHQkNCg0JTQkNCaINCb0KPQmtCQCivQkdCQ0KDQlNCY0Isg0JbQldCJ0JrQngor0JHQkNCg0JTQmNCLINCc0JjQoNCa0J4KK9CR0JDQoNCU0J7QqCDQiNCe0JbQldCkCivQkdCQ0KDQlNCe0Kgg0JzQldCb0JDQndCY0IjQkAor0JHQkNCg0JTQo9CdINCa0JDQoNCb0J4KK9CR0JDQoNCV0KjQmNCLINCY0JLQkNCdCivQkdCQ0KDQldCo0JjQiyDQnNCQ0KLQngor0JHQkNCg0JXQotCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JHQkNCg0JjQp9CV0JLQmNCLINCh0KLQmNCf0JUKK9CR0JDQoNCY0KfQmNCLINCR0JjQodCV0KDQmtCQCivQkdCQ0KDQmNCo0JjQiyDQkNCd0ILQldCb0JrQngor0JHQkNCg0JjQqNCY0Isg0JHQm9CQ0JPQntCI0JUKK9CR0JDQoNCY0KjQmNCLINCR0J7QqNCa0J4KK9CR0JDQoNCY0KjQmNCLINCY0JvQmNCI0JAKK9CR0JDQoNCY0KjQmNCLINCY0JvQmNCI0JAKK9CR0JDQoNCY0KjQmNCLINCI0JDQitCQCivQkdCQ0KDQmNCo0JjQiyDQidCj0JHQmNCm0JAKK9CR0JDQoNCY0KjQmNCLINCc0JDQoNCa0J4KK9CR0JDQoNCY0KjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQoNCY0KjQmNCLINCc0JjQm9CQ0J0KK9CR0JDQoNCY0KjQmNCLINCf0JXQotCQ0KAKK9CR0JDQoNCY0KjQmNCLINCh0KLQiNCV0J/QkNCdCivQkdCQ0KDQmNCo0JjQiyDQktCV0KDQntCd0JjQmtCQCivQkdCQ0KDQmNCo0JjQiyDQl9Ce0KDQmtCQCivQkdCQ0KDQmNCLINCJ0KPQkdCY0KbQkAor0JHQkNCg0JjQiyDQn9CQ0KPQm9CY0J3QkAor0JHQkNCg0JjQiyDQodCb0JDQktCY0KbQkAor0JHQkNCg0IjQkNCa0KLQkNCgINCh0J/QkNCh0JXQndCY0IjQkAor0JHQkNCg0IjQkNCa0KLQkNCgINCh0KLQldCS0JAKK9CR0JDQoNCI0JDQmtCi0JDQoNCV0JLQmNCLINCW0JjQktCa0J4KK9CR0JDQoNCI0JDQmtCi0JDQoNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQkNCg0IjQkNCa0KLQkNCg0JXQktCY0Isg0JzQkNCg0JAKK9CR0JDQoNCI0JDQmtCi0JDQoNCV0JLQmNCLINCc0JDQoNCQCivQkdCQ0KDQiNCQ0JrQotCQ0KDQldCS0JjQiyDQnNCY0JvQkNCdCivQkdCQ0KDQiNCQ0JrQotCQ0KDQldCS0JjQiyDQnNCY0JvQmtCQCivQkdCQ0KDQiNCQ0JrQotCQ0KDQldCS0JjQiyDQnNCY0JvQntCI0JUKK9CR0JDQoNCI0JDQmtCi0JDQoNCV0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CR0JDQoNCI0JDQmtCi0JDQoNCV0JLQmNCLINCX0JvQkNCi0JrQngor0JHQkNCg0IjQkNCa0KLQkNCg0J7QkiDQnNCY0JvQmNCm0JAKK9CR0JDQoNCI0JDQmtCi0JDQoNCe0JLQmNCLINCC0J7QmtCeCivQkdCQ0KDQiNCQ0JrQotCQ0KDQntCS0JjQiyDQkNCd0JrQkAor0JHQkNCg0IjQkNCa0KLQkNCg0J7QktCY0Isg0JzQmNCb0J7QqAor0JHQkNCg0IjQkNCa0KLQkNCg0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9CR0JDQoNCI0JDQmtCi0JDQoNCe0JLQmNCLINCS0KPQp9CY0J3QkAor0JHQkNCg0IjQkNCa0KLQkNCg0J7QktCY0Isg0JLQo9Cn0JjQndCQCivQkdCQ0KDQiNCQ0JrQotCQ0KDQntCS0JjQiyDQl9Ce0KDQmtCQCivQkdCQ0KDQiNCQ0JzQntCS0JjQiyDQkNCb0JjQmwor0JHQkNCg0IjQkNCc0J7QktCY0Isg0JDQoNCh0JXQndCY0IjQlQor0JHQkNCg0IjQkNCc0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQkNCg0J3QkCDQk9CQ0KjQn9CQ0KAKK9CR0JDQoNCd0JAg0JjQktCQ0J0KK9CR0JDQoNCd0JAg0IjQkNCd0J7QqAor0JHQkNCg0J3QkCDQiNCe0KHQmNCfCivQkdCQ0KDQndCQINCc0JjQpdCQ0IkKK9CR0JDQoNCeINCk0KDQkNCK0J4KK9CR0JDQoNCeINCI0JXQm9CV0J3QkAor0JHQkNCg0J4g0IjQntCW0JXQpAor0JHQkNCg0J4g0IjQntCW0JXQpAor0JHQkNCg0J4g0IjQntCh0JjQnwor0JHQkNCg0J7QqCDQkdCe0JbQngor0JHQkNCg0J7QqCDQkdCe0KDQmNCh0JvQkNCSINCU0KAKK9CR0JDQoNCe0Kgg0JHQntCg0JjQodCb0JDQkgor0JHQkNCg0J7QqCDQm9CQ0JfQngor0JHQkNCg0J7QqCDQndCV0JHQntCI0KjQkAor0JHQkNCg0J7QqCDQndCY0JrQntCb0JAKK9CR0JDQoNCe0Kgg0J3QmNCa0J7Qm9CQCivQkdCQ0KDQntCo0JXQktCY0Isg0IjQntCS0J4KK9CR0JDQoNCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQkdCQ0KDQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkdCQ0KDQotCQINCC0JXQoNCCCivQkdCQ0KDQotCQINCC0J7QoNCC0JUKK9CR0JDQoNCi0JAg0JDQoNCf0JDQlAor0JHQkNCg0KLQkCDQlNCV0JbQlQor0JHQkNCg0KLQkCDQldCc0JAKK9CR0JDQoNCi0JAg0JjQm9CU0JjQmtCeCivQkdCQ0KDQotCQINCY0KDQnNCQCivQkdCQ0KDQotCQINCc0JDQk9CU0JDQm9CV0J3QkAor0JHQkNCg0KLQldCaINCQ0J3QlNCg0JjQiNCQCivQkdCQ0KDQotCV0Jog0JrQkNCi0JDQoNCY0J3QkAor0JHQkNCg0KLQldCaINCg0KPQlNCe0JvQpCDQlNCY0J/QmyDQmNCd0JMKK9CR0JDQoNCi0JXQmiDQodCi0JXQktCQ0J0KK9CR0JDQoNCi0J7QqCDQlNCQ0J3QmNCb0J4KK9CR0JDQoNCi0J7QqCDQlNCg0JDQk9CY0KbQkAor0JHQkNCg0KLQntCoINCY0JzQoNCVCivQkdCQ0KDQotCe0Kgg0JvQkNCU0JjQodCb0JDQkgor0JHQkNCg0KLQntCoINCb0JDQodCb0J4KK9CR0JDQoNCi0J7QqCDQodCS0JXQotCb0JDQndCQCivQkdCQ0KDQotCe0Kgg0JfQktCe0J3QmNCc0JjQoAor0JHQkNCg0KLQntCIINCc0JjQoNCI0JDQndCQCivQkdCQ0KDQotCe0Jog0JzQkNCg0JPQmNCiCivQkdCQ0KDQotCe0JvQntCS0JjQiyDQkNCd0KLQo9CdCivQkdCQ0KDQotCe0JvQntCS0JjQiyDQiNCe0KHQmNCfCivQkdCQ0KDQotCe0JvQntCS0JjQiyDQnNCQ0KDQmNCdCivQkdCQ0KDQotCj0JvQntCS0JjQiyDQn9CQ0JLQm9CVCivQkdCQ0KDQo9Co0JjQiyDQnNCQ0KDQotCY0J0KK9CR0JDQoNCj0I/QmNCI0JAg0JzQkNCg0JrQngor0JHQkNCg0KPQlNCQ0J3QntCSINCU0KPQqNCQ0J3QmtCQCivQkdCQ0KHQkNCg0JAg0ILQo9Cg0J4KK9CR0JDQodCQ0KDQkCDQkNCd0JrQkAor0JHQkNCh0JDQoNCQINCU0JjQktCd0JAKK9CR0JDQodCQ0KDQkCDQlNCg0JDQk9CY0KbQkAor0JHQkNCh0JDQoNCQINCI0J7QktCQ0J0KK9CR0JDQodCQ0KDQkCDQnNCQ0KDQotCQCivQkdCQ0KHQkNCg0JAg0JzQmNCb0JjQktCe0IgKK9CR0JDQodCQ0KDQkCDQnNCY0KDQkAor0JHQkNCh0JDQoNCQINCf0JDQiNCeCivQkdCQ0KHQkNCg0JDQkdCQINCU0KPQqNCY0KbQkAor0JHQkNCh0JDQoNCY0Isg0JHQntCT0JTQkNCdCivQkdCQ0KHQkNCg0JjQiyDQlNCQ0J3QlQor0JHQkNCh0JDQoNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9CR0JDQodCQ0KDQmNCLINCU0KPQqNCQ0J0KK9CR0JDQodCQ0KDQmNCLINCI0JXQm9CV0J3QkAor0JHQkNCh0JDQoNCY0Isg0IjQntCS0JDQnQor0JHQkNCh0JDQoNCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0JDQodCQ0KDQmNCLINCc0JjQm9CQ0J0KK9CR0JDQodCQ0KDQmNCLINCc0JjQm9CQ0J0KK9CR0JDQodCQ0KDQmNCLINCc0JjQm9Ca0JAKK9CR0JDQodCQ0KDQmNCLINCc0JjQoNCI0JDQndCQCivQkdCQ0KHQkNCg0JjQiyDQndCY0JrQntCb0JAKK9CR0JDQodCQ0KDQmNCLINCh0KLQldCS0JDQnQor0JHQkNCh0JDQoNCY0Isg0JLQldCg0JAKK9CR0JDQodCY0Isg0JrQntCS0JjQidCa0JAKK9CR0JDQodCY0Isg0KHQoNCC0JDQnQor0JHQkNCh0JjQntCb0Jgg0KHQoNCV0IvQmtCeCivQkdCQ0KHQmtCY0IjQmNCdINCX0J7QoNCQCivQkdCQ0KHQoNCQ0Jog0JHQoNCQ0J3QmtCeCivQkdCQ0KHQoNCQ0Jog0JzQmNCb0JDQnQor0JHQkNCh0KLQkCDQlNCQ0J3QlQor0JHQkNCh0KLQkCDQlNCQ0J3QmNCV0JvQkAor0JHQkNCh0KLQkCDQlNCg0JDQk9Cj0KLQmNCdCivQkdCQ0KHQotCQINCU0KPQqNCQ0J0KK9CR0JDQodCi0JAg0JjQktCQ0J3QkAor0JHQkNCh0KLQkCDQmtCQ0KLQmNCm0JAKK9CR0JDQodCi0JAg0InQo9CR0JjQptCQCivQkdCQ0KHQotCQINCc0JDQoNCY0IjQkAor0JHQkNCh0KLQkCDQnNCQ0KDQmNCI0JAKK9CR0JDQodCi0JAg0JzQkNCg0JjQiNCQCivQkdCQ0KHQotCQINCc0JjQm9CQ0J0KK9CR0JDQodCi0JAg0JzQmNCb0J7QqAor0JHQkNCh0KLQkCDQnNCY0KDQntCh0JvQkNCSCivQkdCQ0KHQotCQINCd0JjQmtCe0JvQkAor0JHQkNCh0KLQkCDQodCi0JXQktCQCivQkdCQ0KHQotCQINCS0JvQkNCU0J4KK9CR0JDQodCi0JDQpSDQkdCg0JDQndCa0J4KK9CR0JDQodCi0JDQiNCQINCR0KDQkNCd0JrQngor0JHQkNCh0KLQkNCI0JAg0JzQmNCb0JDQnQor0JHQkNCi0JAg0JTQldCX0JjQlNCV0KAKK9CR0JDQotCQINCY0JvQntCd0JAKK9CR0JDQotCQINCa0JDQoNCe0IkKK9CR0JDQotCQINCb0JDQodCb0J4KK9CR0JDQotCQINCb0JDQodCb0J4KK9CR0JDQotCQINCc0JDQoNCT0JjQotCQCivQkdCQ0KLQkNCI0JjQiyDQkdCe0JPQntCJ0KPQkQor0JHQkNCi0JDQmiDQldCc0JjQmwor0JHQkNCi0JDQmiDQnNCY0KDQmtCeCivQkdCQ0KLQkNCa0J7QktCY0Isg0JrQntCh0JDQoNCQCivQkdCQ0KLQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQkNCi0JDQmtCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQkdCQ0KLQkNCb0J7QkiDQoNCQ0JTQmNCm0JAKK9CR0JDQotCQ0J3Qp9CV0JIg0IjQntCS0JDQnQor0JHQkNCi0JDQndCn0JXQkiDQodCb0JDQktCd0JAKK9CR0JDQotCQ0IrQodCa0Jgg0JzQmNCb0JDQnQor0JHQkNCi0JDQitCh0JrQmCDQnNCY0JvQkNCdCivQkdCQ0KLQkNCd0J7QktCY0Isg0JDQndCa0JAKK9CR0JDQotCQ0KAg0KfQldCU0J7QnNCY0KAKK9CR0JDQotCQ0KAg0KfQldCU0J7QnNCY0KAKK9CR0JDQotCQ0KAg0JzQmNCb0J7QqAor0JHQkNCi0JDQoCDQnNCe0JzQmNCgCivQkdCQ0KLQkNCgINCh0JvQntCR0J7QlNCQ0J0KK9CR0JDQotCQ0KAg0JLQldCb0JjQnNCY0KAKK9CR0JDQotCQ0KAg0JLQntCI0JjQnQor0JHQkNCi0JDQoNCY0JvQniDQltCV0InQmtCeCivQkdCQ0KLQkNChINCR0J7QltCQ0J3QkAor0JHQkNCi0JDQlyDQktCb0JDQlNCeCivQkdCQ0KLQldCg0J3QldCaINCY0JLQkNCdCivQkdCQ0KLQmNCLINCC0KPQoNCQ0IIKK9CR0JDQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9CR0JDQotCY0Isg0JHQoNCQ0J3QmtCQCivQkdCQ0KLQmNCLINCY0JLQkNCd0JAKK9CR0JDQotCY0Isg0JzQmNCl0JDQiNCb0J4KK9CR0JDQotCY0J3QmNCLINCC0KPQoNCeCivQkdCQ0KLQmNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JDQotCY0J3QmNCLINCT0J7QoNCU0JDQndCQCivQkdCQ0KLQmNCd0JjQiyDQodCQ0JLQkAor0JHQkNCi0JjQndCY0Isg0KHQn9CQ0KHQntCI0JUKK9CR0JDQotCY0KHQotCY0Isg0JjQktCQ0J0KK9CR0JDQotCa0JjQiyDQiNCj0KHQo9CkCivQkdCQ0KLQmtCY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9CR0JDQotCa0J7QktCY0Isg0JzQkNCg0JAKK9CR0JDQotCe0KDQmCDQiNCQ0J3QntCoCivQkdCQ0KLQntCg0Jgg0IjQntCW0JXQpAor0JHQkNCi0J7QoNCYINCc0JDQoNCY0IjQkAor0JHQkNCi0J7QoNCYINCc0JDQoNCY0IjQkAor0JHQkNCi0J7QoNCYINCc0JjQpdCQ0IkKK9CR0JDQotCe0KDQmCDQnNCY0KXQkNCJCivQkdCQ0KLQntCg0Jgg0JzQmNCl0JDQiQor0JHQkNCi0J7QoSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQkNCi0J7QoSDQkdCe0KjQmtCeCivQkdCQ0KLQntChINCR0J7QqNCa0J4KK9CR0JDQotCe0KEg0JzQmNCb0JDQnQor0JHQkNCi0J7QoSDQndCQ0JTQkAor0JHQkNCi0J7QoSDQoNCQ0JTQmNCS0J7QiAor0JHQkNCi0J7QoSDQl9Ce0KDQmNCm0JAKK9CR0JDQotCg0J3QldCaINCX0JTQldCd0JrQkAor0JHQkNCi0KPQoNCQ0J0g0J7QkdCg0JDQlAor0JHQkNCi0KPQoNCQ0J0g0KDQkNCU0J7QktCQ0J0KK9CR0JDQo9CV0KAg0JXQktCQCivQkdCQ0KPQldCgINCI0KPQm9CY0IjQkNCd0JAKK9CR0JDQo9CV0KAg0JrQodCV0J3QmNCI0JAKK9CR0JDQo9CV0KAg0J7QotCeCivQkdCQ0KPQmiDQlNCg0JDQk9CQ0J0KK9CR0JDQo9Ca0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQkdCQ0KPQoNCQ0J3QntCSINCb0JDQl9CQ0KAKK9CR0JDQktCQ0KDQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0JDQktCQ0KDQp9CY0Isg0JLQldCh0JXQm9CY0J0KK9CR0JDQl9CQ0J3Qp9CY0Jog0JLQkNCb0JXQoNCY0IjQkAor0JHQkNCX0J7QmtCY0J0g0JbQmNCS0JjQptCQCivQkdCV0Kcg0IjQkNCK0JAKK9CR0JXQp9CV0Jgg0JvQkNCI0J7QqAor0JHQldCn0JXQiNCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQp9CV0IjQkNCmINCR0J7QqNCa0J4KK9CR0JXQp9CV0IjQkNCmINCR0KDQkNCd0JjQodCb0JDQkgor0JHQldCn0JXQiNCQ0KYg0IjQntCS0JDQnQor0JHQldCn0JXQiNCQ0KYg0JrQkNCc0JXQndCa0J4KK9CR0JXQp9CV0IjQkNCmINCc0JjQm9CQ0J0KK9CR0JXQp9CV0IjQkNCmINCg0JDQlNCV0J3QmtCeCivQkdCV0KfQldCI0JDQpiDQoNCQ0JTQntCI0JrQkAor0JHQldCn0JXQiNCQ0KYg0KHQkNCS0JAKK9CR0JXQp9CV0JvQmNCLINCC0J7QoNCC0JUKK9CR0JXQp9CV0JvQmNCLINCR0JjQodCV0KDQmtCQCivQkdCV0KfQldCb0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JHQldCn0JXQm9CY0Isg0JTQntCR0KDQmNCd0JrQngor0JHQldCn0JXQm9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9CR0JXQp9CV0JvQmNCLINCT0JjQndCQCivQkdCV0KfQldCb0JjQiyDQiNCe0JLQkNCdCivQkdCV0KfQldCb0JjQiyDQm9CQ0JfQkNCgCivQkdCV0KfQldCb0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JXQp9CV0JvQmNCLINCc0JDQoNCY0IjQkAor0JHQldCn0JXQm9CY0Isg0JzQmNCb0JDQnQor0JHQldCn0JXQm9CY0Isg0JzQmNCb0JXQndCQCivQkdCV0KfQldCb0JjQiyDQnNCY0JvQmNCm0JAKK9CR0JXQp9CV0JvQmNCLINCc0JjQm9Ce0KgKK9CR0JXQp9CV0JvQmNCLINCf0JXQotCQ0KAKK9CR0JXQp9CV0JvQmNCLINCg0JDQlNCY0JLQntCICivQkdCV0KfQldCb0JjQiyDQoNCQ0JTQntCS0JDQnQor0JHQldCn0JXQm9CY0Isg0KHQotCV0JLQkNCdCivQkdCV0KfQldCb0JjQiyDQodCi0JXQktCQ0J0KK9CR0JXQp9CV0JvQmNCLINCS0JDQodCQCivQkdCV0KfQldCb0JjQiyDQktCV0KHQldCb0JjQnQor0JHQldCn0JXQm9CY0Isg0JLQldCh0JXQm9CY0J0KK9CR0JXQp9CY0Isg0JzQo9Cl0JjQkdCQCivQkdCV0KfQmNCLINCS0JXQoNCe0InQo9CRCivQkdCV0KfQmtCV0Jgg0IjQkNCd0J7QqAor0JHQldCn0JrQldCYINCf0JXQotCQ0KAKK9CR0JXQp9Ca0JXQiNCYINCa0JDQoNCb0J4KK9CR0JXQp9CS0JDQoNCU0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQp9CS0JDQoNCU0Jgg0IjQntCh0JjQnwor0JHQldCo0JDQndCY0Isg0JHQntCW0JDQndCQCivQkdCV0KjQkNCd0JjQiyDQl9CU0KDQkNCS0JrQngor0JHQldCo0JXQitCYINCa0JDQoNCb0J4KK9CR0JXQqNCV0IrQmCDQmtCQ0KDQm9CeCivQkdCV0KjQldCd0KHQmtCYINCd0JjQmtCe0JvQkAor0JHQldCo0JXQktCY0Isg0JDQm9CV0JrQodCQCivQkdCV0KjQldCS0JjQiyDQiNCe0JLQkNCdCivQkdCV0KjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQldCo0JXQktCY0Isg0J3QmNCa0J7Qm9CQINCU0JjQn9CbINCe0JXQpgor0JHQldCo0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JXQqNCY0Isg0JzQkNCg0JjQiNCQCivQkdCV0KjQmNCLINCc0JXQpdCc0JXQlAor0JHQldCo0JjQiyDQnNCY0KXQkNCI0JvQngor0JHQldCo0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCV0KjQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JHQldCo0JrQldCgINCQ0J3QlNCg0JjQiNCQCivQkdCV0KjQmtCV0KAg0JHQntCW0J4KK9CR0JXQqNCa0JXQoCDQodCg0JXQi9Ca0JAKK9CR0JXQqNCb0JjQiyDQiNCe0JLQkNCdCivQkdCV0KjQm9CY0Isg0KLQldCg0JXQl9CY0IjQkAor0JHQldCo0JvQmNCI0JAg0JPQntCh0J/QkNCS0JAKK9CR0JXQqNCb0JjQnSDQltCY0JLQmtCeINCU0JjQn9CbINCe0JXQpgor0JHQldCo0JvQmNCdINCR0KDQkNCd0JrQngor0JHQldCo0JvQmNCdINCY0JLQkNCdCivQkdCV0KjQm9CY0J0g0JjQktCY0KbQkAor0JHQldCo0JvQmNCdINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCV0KjQm9CY0J0g0JzQmNCe0JTQoNCQ0JMKK9CR0JXQqNCb0JjQnSDQodCi0J7QiNCQ0J0KK9CR0JXQqNCb0JjQnSDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0JHQldCL0JDQk9Cj0Jsg0KHQkNCS0JAKK9CR0JXQi9CY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQi9CY0J0g0J7Qm9CT0JAKK9CR0JXQi9CY0KDQntCS0KHQmtCYINCQ0JTQldCcCivQkdCV0JbQkNCdINCS0JjQmtCi0J7QoAor0JHQldCW0JDQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQltCQ0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JHQldCW0JDQndCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JHQldCW0JDQndCe0JIg0JzQmNCg0J7QidCj0JEKK9CR0JXQltCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQkdCV0JDQlNCV0KAg0IjQntCS0JDQnQor0JHQldCQ0KDQkCDQltCY0JLQmtCeCivQkdCV0JDQoNCQINCC0J7QoNCC0JUKK9CR0JXQkNCg0JAg0IjQntCS0JDQnQor0JHQldCQ0KDQkCDQnNCQ0KDQmtCeCivQkdCV0JDQoNCQINCf0JXQotCQ0KAKK9CR0JXQkNCg0JAg0J/QldCi0JDQoAor0JHQldCQ0KLQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JHQldCR0JXQmiDQnNCQ0KLQngor0JHQldCR0JXQidCQLdCc0JDQotCj0Kgg0JDQndCa0JAKK9CR0JXQkdCY0Isg0JDQndCQCivQkdCV0JHQmNCLINCJ0JjQidCQ0J3QkAor0JHQldCR0JjQiyDQndCV0JLQldCd0JrQkAor0JHQldCR0JjQiyDQndCV0JLQldCd0JrQkAor0JHQldCR0JjQiyDQn9CV0KLQkNCgCivQkdCV0JHQmNCLINCh0KLQntCI0JDQndCa0JAKK9CR0JXQptCVINCR0JXQm9CQCivQkdCV0KbQlSDQotCY0JHQntCgCivQkdCV0KbQmNCLINCh0KLQldCS0JDQnQor0JHQldCP0JXQotCYINCc0JDQoNCY0IjQkAor0JHQldCU0JDQmiDQkdCY0InQkNCd0JAKK9CR0JXQlNCVINCo0JDQndCU0J7QoAor0JHQldCU0JUg0J/QldCi0JDQoCDQlNCgCivQkdCV0JTQlSDQn9CV0KLQkNCgCivQkdCV0JTQldCa0J7QktCY0Isg0JDQndCi0J7QnQor0JHQldCU0J3QkNCg0JjQmiDQkNCd0JTQoNCY0IjQkAor0JHQldCU0J3QkNCg0JjQmiDQlNCQ0KDQmNCd0JrQkAor0JHQldCU0J3QkNCg0JjQmiDQiNCQ0J3QntCoCivQkdCV0JTQndCQ0KDQmNCaINCI0J7QodCY0J8KK9CR0JXQlNCd0JDQoNCY0Jog0JzQmNCl0JDQiQor0JHQldCU0J7QkiDQkdCY0KHQldCg0JrQkAor0JHQldCU0J7QkiDQiNCe0JLQkNCdCivQkdCV0JTQntCSINCJ0KPQkdCY0KbQkAor0JHQldCU0J7QkiDQnNCQ0KDQmNCI0JAKK9CR0JXQlNCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JHQldCU0J7QkiDQndCQ0JTQkAor0JHQldCU0J7QkiDQn9Cg0JXQlNCg0JDQkwor0JHQldCU0J7QkiDQoNCQ0JTQkAor0JHQldCU0J7QkiDQodCg0ILQkNCdCivQkdCV0JTQntCSINCh0KPQndCn0JjQptCQCivQkdCV0JTQntCSINCh0JLQldCi0JjQodCb0JDQkgor0JHQldCU0KDQmNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCV0JMg0JDQndCU0KDQmNCI0JAKK9CR0JXQky3QktCQ0JvQntCS0JjQp9CY0Isg0JDQndCC0JXQm9Ca0J4KK9CR0JXQky3QktCe0JvQntCS0JjQp9CY0Isg0JjQktCQ0J0KK9CR0JXQk9CQ0J3QmCDQqNCV0KDQmNCkCivQkdCV0JPQkNCd0J7QktCY0Isg0JzQldCl0JzQldCUCivQkdCV0JPQkNCd0J7QktCY0Isg0KHQkNCd0JjQlAor0JHQldCT0JXQp9Ca0Jgg0KDQkNCI0JrQngor0JHQldCT0JXQp9Ca0Jgg0KHQkNCS0JAKK9CR0JXQk9CV0J3QmNCo0JjQiyDQlNCg0JDQk9Ce0KDQkNCUCivQkdCV0JPQldCd0JjQqNCY0Isg0JLQo9Ca0JDQqNCY0J0KK9CR0JXQk9CY0Isg0JzQmNCb0J7QqAor0JHQldCT0JjQiyDQnNCY0KDQmtCeCivQkdCV0JPQm9CV0KDQkdCV0JPQntCS0JjQiyDQj9CV0JLQkNCUCivQkdCV0JPQntCI0JXQkiDQkNCd0JrQkAor0JHQldCT0J7QiNCV0JIg0JHQntCT0JTQkNCdCivQkdCV0JPQntCI0JXQkiDQm9CQ0JfQkNCgCivQkdCV0JPQntCI0JXQkiDQm9CQ0JfQkAor0JHQldCT0J7QiNCV0JIg0J/QldCi0JDQoAor0JHQldCT0J7QiNCV0JIg0KDQkNCU0J7QiNCa0JAKK9CR0JXQk9Ce0IjQldCSINCi0J7QqNCQCivQkdCV0JPQntCI0JXQktCY0Isg0KDQkNCU0JjQktCe0IgKK9CR0JXQk9Ce0JLQmNCLINCV0JLQmNCm0JAKK9CR0JXQk9Ce0JLQmNCLINCI0JDQodCc0JjQndCQCivQkdCV0JPQntCS0JjQiyDQiNCe0JLQkNCdCivQkdCV0JPQntCS0JjQiyDQm9CQ0JTQmNCh0JvQkNCSCivQkdCV0JPQntCS0JjQiy3Qm9CY0JLQkNCI0JAg0JjQm9CY0IjQkAor0JHQldCT0J7QktCY0Isg0InQo9CR0JDQnQor0JHQldCT0J7QktCY0Isg0JzQmNCb0JjQiNCQCivQkdCV0JPQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQldCT0J7QktCY0Isg0JzQmNCg0JrQngor0JHQldCT0J7QktCY0Isg0KDQntCL0JrQngor0JHQldCT0J7QktCY0Isg0KHQkNCS0J4KK9CR0JXQk9Ce0JLQmNCLINCi0J7QlNCe0KAKK9CR0JXQk9Ce0JLQmNCLINCX0J7QoNCeCivQkdCV0KXQldCgINCV0JLQkAor0JHQldCl0JXQoNCQ0J3QniDQiNCe0KHQmNCfCivQkdCV0KXQotCV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQiNCQ0KDQntCS0JjQiyDQnNCQ0KDQmtCeCivQkdCV0IjQkNCg0J7QktCY0Isg0J3QldCd0JDQlAor0JHQldCI0JDQotCe0JLQmNCLINCC0J7QoNCC0JUKK9CR0JXQiNCQ0KLQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQldCI0JDQotCe0JLQmNCLINCc0JjQoNCa0J4KK9CR0JXQiNCi0J7QktCY0Isg0JDQm9CY0IjQkAor0JHQldCaINCQ0J3QotCe0J3QmNCI0JAKK9CR0JXQmiDQlNCg0JDQk9CQ0J3QkAor0JHQldCaINCI0J7QktCQ0J0KK9CR0JXQmiDQm9CQ0JTQmNCh0JvQkNCSCivQkdCV0Jog0InQmNCJ0JDQndCQCivQkdCV0Jog0KDQo9CW0JAKK9CR0JXQmiDQodCi0JXQktCQ0J0KK9CR0JXQmtCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQldCa0JDQoNCV0Jog0JjQm9CY0J3QmtCQCivQkdCV0JrQlSDQm9CQ0KHQm9CeCivQkdCV0JrQlSDQnNCQ0KDQmNCI0JDQnQor0JHQldCa0JXQoCDQpNCg0JXQlNCV0KDQmNCaCivQkdCV0JrQldCgINCY0KjQotCS0JDQnQor0JHQldCa0JXQoCDQmNCU0JAKK9CR0JXQmtCV0KAg0IjQntCW0JXQpAor0JHQldCa0JXQoCDQiNCe0KHQmNCfCivQkdCV0JrQldCgINCh0KLQldCS0JDQnQor0JHQldCa0JjQiyDQkdCe0KDQmNChCivQkdCV0JrQmNCLINCR0KDQkNCd0JrQkAor0JHQldCa0JjQiyDQiNCj0KDQlQor0JHQldCa0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQldCa0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCV0JrQmNCLINCS0JXQoNCQCivQkdCV0JrQoNCY0Isg0JTQoNCQ0JPQkNCdCivQkdCV0JrQoNCY0Isg0JzQmNCg0JAKK9CR0JXQmtCg0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCV0JrQotCQ0Kgg0JTQkNCd0JjQptCQCivQkdCV0JrQotCQ0Kgg0KHQm9CQ0JLQmtCeCivQkdCV0JrQo9CiINCU0KDQkNCT0JDQnQor0JHQldCa0KPQoiDQn9CV0KLQkNCgCivQkdCV0JrQktCQ0JvQkNCmINCW0JjQktCQ0J0KK9CR0JXQmtCS0JDQm9CQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCV0JrQktCQ0JvQkNCmINCR0KDQkNCd0JjQodCb0JDQkgor0JHQldCa0JLQkNCb0JDQpiDQkdCg0JDQndCa0JAKK9CR0JXQmtCS0JDQm9CQ0KYg0JHQoNCQ0J3QmtCeCivQkdCV0JrQktCQ0JvQkNCmINCR0KDQkNCd0JrQngor0JHQldCa0JLQkNCb0JDQpiDQlNCg0JDQk9Ce0InQo9CRCivQkdCV0JrQktCQ0JvQkNCmINCV0JzQmNCb0JjQiNCQCivQkdCV0JrQktCQ0JvQkNCmINCY0KHQkAor0JHQldCa0JLQkNCb0JDQpiDQm9CQ0JfQkNCgCivQkdCV0JrQktCQ0JvQkNCmINCJ0KPQkdCY0KbQkAor0JHQldCa0JLQkNCb0JDQpiDQidCj0JHQmNCm0JAKK9CR0JXQmtCS0JDQm9CQ0KYg0InQo9CR0JjQndCa0J4KK9CR0JXQmtCS0JDQm9CQ0KYg0JzQkNCg0JAKK9CR0JXQmtCS0JDQm9CQ0KYg0JzQmNCI0JAKK9CR0JXQmtCS0JDQm9CQ0KYg0JzQmNCb0JDQndCa0J4KK9CR0JXQmtCS0JDQm9CQ0KYg0JzQmNCb0JDQnQor0JHQldCa0JLQkNCb0JDQpiDQnNCY0JvQmNCh0JDQkgor0JHQldCa0JLQkNCb0JDQpiDQnNCY0KDQiNCQ0J3QkAor0JHQldCa0JLQkNCb0JDQpiDQoNCQ0JTQmNCS0J7QiAor0JHQldCa0JLQkNCb0JDQpiDQoNCQ0JTQnNCY0JvQkAor0JHQldCa0JLQkNCb0JDQpiDQodCV0KDQkNCk0JjQndCQCivQkdCV0JrQktCQ0JvQkNCmINCh0KLQldCS0JDQnQor0JHQldCb0KfQldCS0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQkdCV0JvQp9CV0JLQmNCLINCg0JDQotCa0J4KK9CR0JXQm9CQ0Jog0KjQkNCd0JTQntCgCivQkdCV0JvQkNCaINCQ0J3QkAor0JHQldCb0JDQmiDQnNCQ0KDQk9CY0KLQkAor0JHQldCb0JDQmiDQnNCY0IjQngor0JHQldCb0JDQmiDQktCb0JDQlNCQCivQkdCV0JvQkNCdINCI0J7QltCV0KQKK9CR0JXQm9CQ0J3Qp9CY0Isg0JXQm9CY0JfQkNCR0JXQotCQCivQkdCV0JvQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JHQldCb0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQkdCV0JvQkNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQkdCV0JvQkNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CR0JXQm9CQ0J3QntCS0JjQiyDQotCY0JHQntCgCivQkdCV0JvQldCm0JrQmCDQiNCV0JvQldCd0JAKK9CR0JXQm9CV0JPQmNCo0JDQndCY0J0g0JTQoNCQ0JPQntCc0JjQoCDQlNCgCivQkdCV0JvQldCh0JvQmNCI0JjQnSDQnNCY0JvQntCg0JDQlAor0JHQldCb0JXQodCb0JjQiNCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0JHQldCb0JXQodCb0JjQnSDQlNCe0JHQoNCY0JvQkAor0JHQldCb0JXQodCb0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQkdCV0JvQldCh0JvQmNCdINCh0JLQldCi0J7Ql9CQ0KAg0JTQoAor0JHQldCb0JXQotCY0Isg0IjQldCb0JXQndCQCivQkdCV0JvQmCDQkNCd0JTQoNCY0IjQkAor0JHQldCb0Jgg0JXQnNCY0JsKK9CR0JXQm9CYINCg0J7Ql9CQ0JvQmNCI0JAKK9CR0JXQm9CYINCh0KLQldCS0JDQnQor0JHQldCb0Jgg0JLQntCI0JjQodCb0JDQkgor0JHQldCb0JjQp9Ca0JAg0JDQndCQCivQkdCV0JvQmNCn0JrQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JXQm9CY0KfQmtCQINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JXQm9CY0Isg0JbQmNCS0JrQkAor0JHQldCb0JjQiyDQgtCe0KDQgtCVCivQkdCV0JvQmNCLINCC0J7QoNCC0JUKK9CR0JXQm9CY0Isg0ILQo9Cg0JjQptCQCivQkdCV0JvQmNCLINCR0J7QqNCa0J4KK9CR0JXQm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9CR0JXQm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9CR0JXQm9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JHQldCb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQkdCV0JvQmNCLINCR0J7QoNCY0KEKK9CR0JXQm9CY0Isg0JHQntCg0JjQktCe0IjQlQor0JHQldCb0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQkdCV0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQldCb0JjQiy3QkdCg0JrQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQkdCV0JvQmNCLINCU0JDQndCY0KbQkAor0JHQldCb0JjQiyDQlNCQ0J3QmNCI0JXQm9CQCivQkdCV0JvQmNCLINCU0KDQkNCT0JDQnQor0JHQldCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0JHQldCb0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQkdCV0JvQmNCLINCU0KPQqNCQ0J0g0JTQoAor0JHQldCb0JjQiyDQlNCj0KjQkNCdINCU0KAKK9CR0JXQm9CY0Isg0JTQo9Co0JDQnQor0JHQldCb0JjQiyDQlNCj0KjQkNCdCivQkdCV0JvQmNCLINCU0KPQqNCQ0J0KK9CR0JXQm9CY0Isg0JTQo9Co0JrQngor0JHQldCb0JjQiyDQlNCj0KjQmtCeCivQkdCV0JvQmNCLINCk0JvQntCg0JjQmtCQCivQkdCV0JvQmNCLINCY0JvQmNCI0JAKK9CR0JXQm9CY0Isg0IjQntCh0JjQnAor0JHQldCb0JjQiyDQiNCe0JLQkNCd0JrQkAor0JHQldCb0JjQiyDQiNCe0JLQmNCm0JAKK9CR0JXQm9CY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JHQldCb0JjQiyDQiNCj0JvQmtCQCivQkdCV0JvQmNCLINCb0JDQl9CQ0KAKK9CR0JXQm9CY0Isg0InQo9CR0JjQptCQCivQkdCV0JvQmNCLINCc0JDQoNCY0KbQkAor0JHQldCb0JjQiyDQnNCY0JvQkNCdCivQkdCV0JvQmNCLINCc0JjQm9CQ0J0KK9CR0JXQm9CY0Isg0JzQmNCb0JDQnQor0JHQldCb0JjQiyDQnNCY0JvQkNCdCivQkdCV0JvQmNCLINCc0JjQm9CV0J3QkAor0JHQldCb0JjQiyDQnNCY0JvQmNCS0J7QiAor0JHQldCb0JjQiyDQnNCY0JvQntCoCivQkdCV0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCV0JvQmNCLINCc0JjQoNCI0JDQndCQCivQkdCV0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JXQm9CY0Isg0J3QldCd0JDQlAor0JHQldCb0JjQiyDQndCV0KHQotCe0KAKK9CR0JXQm9CY0Isg0J3QmNCa0J7Qm9CQCivQkdCV0JvQmNCLINCf0JXQotCQ0KAKK9CR0JXQm9CY0Isg0J/QldCi0JDQoAor0JHQldCb0JjQiyDQoNCQ0JTQmNCd0JrQkAor0JHQldCb0JjQiyDQoNCQ0JTQntCI0JrQkAor0JHQldCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQkdCV0JvQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCV0JvQmNCLINCh0JDQktCQCivQkdCV0JvQmNCLINCh0JXQndCQCivQkdCV0JvQmNCLINCh0JjQnNCQCivQkdCV0JvQmNCLINCh0JvQkNCS0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CR0JXQm9CY0Isg0KHQm9CQ0JLQmtCeCivQkdCV0JvQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQkdCV0JvQmNCLINCh0J7QpNCY0IjQkAor0JHQldCb0JjQiyDQodCg0ILQkNCdCivQkdCV0JvQmNCLINCh0KLQkNCd0JrQngor0JHQldCb0JjQiyDQodCi0JXQktCQ0J0KK9CR0JXQm9CY0Isg0KHQotCe0IjQkNCd0JrQkAor0JHQldCb0JjQiyDQodCi0J7QiNCQ0J0KK9CR0JXQm9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQkdCV0JvQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JHQldCb0JjQiyDQodCS0JXQotCb0JDQndCQCivQkdCV0JvQmNCLINCi0J7QlNCe0KAKK9CR0JXQm9CY0Isg0JLQldCg0JAKK9CR0JXQm9CY0Isg0JLQldCh0J3QkAor0JHQldCb0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CR0JXQm9CY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQkdCV0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CR0JXQm9CY0Isg0JLQo9Ca0JAKK9CR0JXQm9CY0Isg0JfQntCg0JAKK9CR0JXQm9CY0JzQkNCg0JrQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQkdCV0JvQmNCd0JjQiyDQgtCj0KDQkAor0JHQldCb0JjQndCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQldCb0JjQndCh0JrQmCDQodCf0JDQodCV0J3QmNCI0JAKK9CR0JXQidCQ0JrQntCSINCc0JjQm9CY0KbQkAor0JHQldCJ0JDQndCh0JrQmCDQltCY0JLQmtCQCivQkdCV0InQkNCd0KHQmtCYINCW0JjQktCa0JAKK9CR0JXQidCQ0J3QodCa0Jgg0ILQntCg0ILQlQor0JHQldCJ0JDQndCh0JrQmCDQgtCe0KDQgtCVCivQkdCV0InQkNCd0KHQmtCYINCC0J7QoNCC0JUKK9CR0JXQidCQ0J3QodCa0Jgg0JDQndCC0JXQm9CY0IjQkAor0JHQldCJ0JDQndCh0JrQmCDQkNCd0JrQmNCm0JAKK9CR0JXQidCQ0J3QodCa0Jgt0JHQkNCI0JjQiyDQmtCQ0IvQo9Co0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JHQntCg0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JHQntCg0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JHQntCg0JjQktCe0IgKK9CR0JXQidCQ0J3QodCa0Jgg0JTQoNCQ0JPQkNCd0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JTQoNCQ0JPQmNCm0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JXQnNCY0JvQmNCI0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JPQkNCS0KDQkAor0JHQldCJ0JDQndCh0JrQmCDQk9Ce0KDQlNCQ0J3QkAor0JHQldCJ0JDQndCh0JrQmCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JHQldCJ0JDQndCh0JrQmCDQiNCe0JLQkNCdCivQkdCV0InQkNCd0KHQmtCYINCI0J7QktCQ0J0KK9CR0JXQidCQ0J3QodCa0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0JHQldCJ0JDQndCh0JrQmCDQm9CQ0JfQkNCgCivQkdCV0InQkNCd0KHQmtCYINCb0JDQl9CQ0KAKK9CR0JXQidCQ0J3QodCa0Jgg0JvQkNCX0JDQoAor0JHQldCJ0JDQndCh0JrQmCDQm9CV0J/QntCI0JrQkAor0JHQldCJ0JDQndCh0JrQmCDQidCj0JHQntCc0JjQoAor0JHQldCJ0JDQndCh0JrQmCDQnNCY0JvQkNCdCivQkdCV0InQkNCd0KHQmtCYINCc0JjQm9CV0J3QmtCeCivQkdCV0InQkNCd0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQkdCV0InQkNCd0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQkdCV0InQkNCd0KHQmtCYINCc0JjQm9Cj0KLQmNCdCivQkdCV0InQkNCd0KHQmtCYINCc0JjQoNCI0JDQndCQCivQkdCV0InQkNCd0KHQmtCYINCf0JDQktCb0JUKK9CR0JXQidCQ0J3QodCa0Jgg0KDQkNCU0JAKK9CR0JXQidCQ0J3QodCa0Jgg0KDQkNCU0JzQmNCb0JAKK9CR0JXQidCQ0J3QodCa0Jgg0KDQkNCU0J7QktCQ0J0KK9CR0JXQidCQ0J3QodCa0Jgg0KDQkNCd0JrQngor0JHQldCJ0JDQndCh0JrQmCDQoNCj0JbQmNCm0JAKK9CR0JXQidCQ0J3QodCa0Jgg0KHQm9Ce0JHQntCU0JDQnQor0JHQldCJ0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9CR0JXQidCQ0J3QodCa0Jgg0KLQldCe0JTQntCgCivQkdCV0InQkNCd0KHQmtCYINCi0J7QqNCQCivQkdCV0InQkNCd0KHQmtCYINCS0JDQodCY0JvQmNCI0JUKK9CR0JXQidCQ0J3QodCa0Jgg0JLQldCg0JAKK9CR0JXQidCQ0J3QodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JHQldCJ0JDQndCh0JrQmCDQktCb0JDQlNCY0KHQm9CQ0JIKK9CR0JXQidCQ0J3QodCa0Jgg0JLQntCI0JjQodCb0JDQkgor0JHQldCJ0JDQndCh0JrQmCDQl9CQ0JPQntCg0JrQkAor0JHQldCJ0JDQndCh0JrQmCDQl9CU0JXQndCa0JAKK9CR0JXQidCY0J0g0JbQmNCS0JAKK9CR0JXQidCY0J0g0ILQntCg0ILQlQor0JHQldCJ0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JHQldCJ0JjQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0JXQidCY0J0g0JzQkNCg0JjQiNCQINCc0JDQk9CU0JDQm9CV0J3QkAor0JHQldCJ0JjQnSDQndCV0JTQldCJ0JrQngor0JHQldCJ0JjQnSDQoNCQ0JTQmNCS0J7QiAor0JHQldCJ0JjQnSDQoNCQ0JTQntCh0JvQkNCSCivQkdCV0InQmNCdINCg0KPQltCQCivQkdCV0InQmNCdINCh0JDQktCQCivQkdCV0InQmNCdINCh0J7QpNCY0IjQkAor0JHQldCJ0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQkdCV0InQmNCd0JDQpiDQl9Ce0KDQkNCdCivQkdCV0JvQntCo0JXQkiDQndCV0JLQldCd0JrQkAor0JHQldCb0J7QkdCg0JDQlNCY0Isg0JzQmNCb0JDQnQor0JHQldCb0J7QkdCg0JDQlNCY0Isg0KHQkNCS0JAKK9CR0JXQm9Ce0JHQoNCaINCR0KDQkNCd0JjQodCb0JDQkgor0JHQldCb0J7QkdCg0Jog0JTQoNCQ0JPQntCh0JvQkNCSCivQkdCV0JvQntCR0KDQmiDQm9CY0JLQmNCI0JUKK9CR0JXQm9Ce0KbQmNCLINCc0JjQm9CV0J3QmtCeCivQkdCV0JvQntCm0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JHQldCb0J7QmNCm0JAg0KDQkNCU0J7QodCb0JDQkgor0JHQldCb0J7QmNCm0JAg0JLQmNCU0JDQnQor0JHQldCb0J7Qn9CQ0JLQm9Ce0JLQmNCLINCU0KDQkNCT0JAg0JTQoAor0JHQldCb0J7Qn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9Ce0IjQmtCeCivQkdCV0JvQntCf0JDQktCb0J7QktCY0Isg0JfQntCg0JDQnSDQlNCgCivQkdCV0JvQntCf0JDQktCb0J7QktCY0Isg0JfQntCg0JDQnSDQlNCgCivQkdCV0JvQntCh0JDQktCY0Isg0IjQldCb0JjQptCQCivQkdCV0JvQntCi0Jgg0JjQktCQ0J3QmtCeCivQkdCV0JvQntCS0JDQoNCYINCY0JLQkNCdCivQkdCV0JvQntCS0JjQiyDQkdCY0InQkNCd0JAKK9CR0JXQm9Ce0JLQmNCLINCg0JDQlNCQCivQkdCV0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CR0JXQm9Cj0KjQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JHQldCb0KPQqNCV0JLQmNCLINCd0J7QktCY0KbQkAor0JHQldCb0KPQltCY0Isg0JTQkNCg0JjQndCa0JAKK9CR0JXQm9Cj0JbQmNCLINCh0KLQiNCV0J/QkNCdCivQkdCV0Jwg0JjQktCQ0J0KK9CR0JXQnCDQiNCe0JLQkNCdCivQkdCV0Jwg0JrQkNCg0JvQngor0JHQldCcINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JXQnNCY0JvQldCgINCc0JDQk9CU0JDQm9CV0J3QkAor0JHQldCd0KfQmNCaINCC0KPQm9CQCivQkdCV0J3Qp9CY0Jog0JjQm9Ce0J3QmtCQCivQkdCV0J3QkCDQnNCY0JvQntCh0JDQktCQCivQkdCV0J3QkNCo0JjQiyDQktCY0J3QmtCeCivQkdCV0J3QkNCaINCf0JDQmwor0JHQldCd0JDQoNCY0Jog0JvQkNCh0JvQngor0JHQldCd0JDQoNCY0Jog0JzQkNCT0JTQkNCb0JXQndCQCivQkdCV0J3QpiDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JHQldCd0KYg0JTQoNCQ0JPQkNCdCivQkdCV0J3QptCVINCc0JDQoNCY0IjQkAor0JHQldCd0KbQlSDQnNCY0KXQkNCJCivQkdCV0J3QptCVINCc0JjQmtCV0KgKK9CR0JXQndCm0JXQotCY0Isg0JDQndCU0KDQmNCI0JAKK9CR0JXQndCm0JXQotCY0Isg0InQo9CU0JXQktCY0KIKK9CR0JXQndCm0KPQnSDQktCV0JvQmNCd0JrQkAor0JHQldCd0JTQldCaINCc0JjQm9CQ0J0KK9CR0JXQndCV0Kgg0InQo9CU0JzQmNCb0JAKK9CR0JXQndCV0JbQkNCdINCJ0KPQkdCY0KbQkAor0JHQldCd0JXQlNCV0JrQntCS0JjQiyDQmNCS0JDQnQor0JHQldCd0JPQmNCdLdCC0KPQoNCa0JjQiyDQndCV0JfQkAor0JHQldCd0JPQmNCdINCR0J7QltCY0JTQkNCgCivQkdCV0J3Qk9CY0J0g0JTQntCR0KDQmNCd0JrQkAor0JHQldCd0JPQmNCdINCU0KPQqNCQ0J0KK9CR0JXQndCT0JjQnSDQmtCe0JLQmNCm0JAKK9CR0JXQndCT0JjQnSDQnNCY0JvQkNCdCivQkdCV0J3QmNCn0JDQmiDQmtCQ0KDQm9CeCivQkdCV0J3QmNCn0JDQmiDQnNCQ0JPQlNCQ0JvQldCd0JAKK9CR0JXQndCY0KjQldCaINCU0KDQkNCT0KPQotCY0J0KK9CR0JXQndCY0Isg0JXQktCQCivQkdCV0J3QmNCLINCT0KDQo9CI0JjQptCQCivQkdCV0J3QmNCLINCf0JXQotCQ0KAKK9CR0JXQndCY0Isg0KHQldCa0KPQm9CQCivQkdCV0J3QmNCLINCX0JTQldCd0JrQngor0JHQldCd0JjQnSDQltCY0JLQntCI0JjQnQor0JHQldCK0JAg0JrQkNCi0JDQoNCY0J3QkAor0JHQldCK0JDQmiDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0JHQldCK0JDQmiDQldCS0JjQptCQCivQkdCV0J3QmtCQINCc0JDQoNCY0IjQkAor0JHQldCd0JrQkCDQnNCY0KXQkNCY0JvQngor0JHQldCd0JrQlSDQldCb0JfQkAor0JHQldCd0JrQntCS0JjQiyDQiNCe0KbQkAor0JHQldCd0JrQntCS0JjQiyDQiNCe0KbQkAor0JHQldCd0J4g0KLQmNCR0J7QoAor0JHQldCd0J7QktCY0Isg0IjQntCh0JjQnwor0JHQldCd0J7QktCY0Isg0KHQotCQ0J3QkAor0JHQldCe0KfQkNCd0JjQnSDQiNCe0JLQkNCdCivQkdCV0J7Qp9CQ0J3QmNCdINCc0JjQntCU0KDQkNCTCivQkdCV0J7Qp9CQ0J3QmNCdINCf0JDQktCb0JUKK9CR0JXQntCU0KDQkNCd0KHQmtCYINCU0KDQkNCT0J7QnNCY0KAKK9CR0JXQntCU0KDQkNCd0KHQmtCYINCh0KLQntCI0JDQnQor0JHQldCe0JrQntCS0JjQiyDQlNCQ0JzQmNCgCivQkdCV0KAg0JDQm9CV0JrQodCY0IjQlQor0JHQldCgINCk0KDQkNCK0J4KK9CR0JXQoNCn0JXQmiDQgtCV0KDQggor0JHQldCg0KfQldCaINCR0J7QltCY0JTQkNCgCivQkdCV0KDQp9CV0Jog0KTQoNCQ0IrQkAor0JHQldCg0KfQldCaINCb0JDQlNCY0KHQm9CQ0JIKK9CR0JXQoNCn0JXQmiDQnNCQ0KDQmNCI0JAKK9CR0JXQoNCn0JXQmiDQnNCY0KXQkNCY0JvQngor0JHQldCg0KfQldCaINCe0KHQmtCQ0KAKK9CR0JXQoNCn0JXQmiDQodCQ0J3QmNCh0JvQngor0JHQldCg0IvQkNCdINCc0JjQoNCI0JDQndCQCivQkdCV0KDQi9CQ0J0g0J/QldCi0JDQoAor0JHQldCg0IvQkNCdINCh0JvQkNCS0JrQngor0JHQldCg0JAg0ILQntCg0ILQngor0JHQldCg0JAg0JTQoNCQ0JPQkNCdCivQkdCV0KDQkNCaINCd0JXQkdCe0IjQqNCQCivQkdCV0KDQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQoNCQ0KAg0JbQmNCS0JDQndCQCivQkdCV0KDQkNCgINCR0J7QoNCY0JLQntCICivQkdCV0KDQkNCgINCR0KDQkNCd0JjQodCb0JDQkgor0JHQldCg0JDQoCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JXQoNCQ0KAg0JTQo9Co0JDQndCa0JAKK9CR0JXQoNCQ0KAg0JzQmNCb0JDQnQor0JHQldCg0JDQoCDQnNCY0JvQkNCdCivQkdCV0KDQkNCgINCc0JjQm9CQ0J0KK9CR0JXQoNCQ0KAg0KDQkNCU0JjQktCe0IgKK9CR0JXQoNCQ0KAg0KHQm9Ce0JHQntCU0JDQnQor0JHQldCg0JDQoCDQodCb0J7QkdCe0JTQkNCdCivQkdCV0KDQkNCgINCi0JjQnNCQCivQkdCV0KDQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9CR0JXQoNCQ0KDQntCSINCC0KPQoNCY0KbQkAor0JHQldCg0JHQkNCa0J7QkiDQidCj0JHQmNCm0JAKK9CR0JXQoNCR0JDQmtCe0JIg0JzQkNCg0JAKK9CR0JXQoNCR0JDQmtCe0JIg0JzQmNCb0J7QqAor0JHQldCg0JHQkNCa0J7QkiDQn9CV0KLQkNCgCivQkdCV0KDQkdCQ0JrQntCSINCh0KLQldCS0JDQnQor0JHQldCg0JHQkNCi0J7QktCY0Isg0JbQkNCg0JrQngor0JHQldCg0JHQkNCi0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0JXQoNCR0JXQoCDQidCY0InQkNCd0JAKK9CR0JXQoNCR0JXQoCDQodCi0JXQktCQ0J0KK9CR0JXQoNCR0JXQoNCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CR0JXQoNCR0JXQoNCY0Isg0IjQntCS0JDQnQor0JHQldCg0JHQldCg0JjQiyDQm9CQ0JfQkNCgCivQkdCV0KDQkdCV0KDQmNCLINCc0JjQm9Cj0KLQmNCdCivQkdCV0KDQldCoINCC0J7QoNCC0JUKK9CR0JXQoNCV0Kgg0JTQkNCd0JjQm9CeCivQkdCV0KDQldCoINCY0JvQntCd0JAKK9CR0JXQoNCV0Kgg0IjQntCh0JjQnwor0JHQldCg0JXQqCDQiNCj0JvQmNCo0JrQkAor0JHQldCg0JXQqCDQmtCQ0KDQntCJCivQkdCV0KDQldCoINCa0J7QoNCd0JXQmwor0JHQldCg0JXQqCDQotCY0JHQntCgCivQkdCV0KDQldCoLdCi0J7QoiDQmtCe0KDQndCV0JsKK9CR0JXQoNCV0KXQkNCd0JjQiyDQiNCj0JvQmtCQCivQkdCV0KDQldCK0Jgg0JXQo9CT0JXQnQor0JHQldCg0JXQitCYINCI0JDQndCe0KgKK9CR0JXQoNCV0IrQmCDQiNCV0JvQldCd0JAKK9CR0JXQoNCV0IrQmCDQnNCY0JrQm9Ce0KgKK9CR0JXQoNCV0IrQmCDQnNCY0JrQm9Ce0KgKK9CR0JXQoNCV0IrQmCDQoNCe0JfQkNCb0JjQiNCQCivQkdCV0KDQldCK0Jgg0KHQotCV0JLQkNCdCivQkdCV0KDQldCK0Jgg0KLQmNCR0J7QoAor0JHQldCg0JXQndCi0JAg0IjQntCh0JjQnwor0JHQldCg0JXQndCi0JUg0JjQm9Ce0J3QkAor0JHQldCg0JXQotCY0Isg0JDQndCi0KPQnQor0JHQldCg0JXQotCY0Isg0JvQkNCU0JjQodCb0JDQkgor0JHQldCg0JXQotCY0Isg0JzQkNCg0JPQmNCi0JAKK9CR0JXQoNCV0KLQmtCQINCo0JDQndCU0J7QoAor0JHQldCg0JXQotCa0JAg0JPQntCg0JTQkNCd0JAKK9CR0JXQoNCV0KLQmtCQINCI0KPQm9CY0IjQkNCd0JAKK9CR0JXQoNCV0KLQmtCQINCa0JDQoNCb0J4KK9CR0JXQoNCV0KLQmtCQINCc0JjQpdCQ0IkKK9CR0JXQoNCT0JXQmyDQgtCj0KDQkAor0JHQldCg0JPQldCbINCQ0J3QotCj0J0KK9CR0JXQoNCT0JXQoCDQpNCg0JDQitCQINCU0KAg0KHQotCe0JzQkNCi0J7Qm9Ce0JMKK9CR0JXQoNCT0JXQoCDQnNCY0KDQntCh0JvQkNCSCivQkdCV0KDQmNCo0JAg0JDQl9CY0KEKK9CR0JXQoNCY0KjQkCDQkdCe0IjQmtCQCivQkdCV0KDQmNCo0JAg0JTQldCc0J4KK9CR0JXQoNCY0KjQkCDQpNCQ0JjQmgor0JHQldCg0JjQqNCQINCc0JjQoNCS0JXQotCQCivQkdCV0KDQmNCo0JAg0KDQkNCT0JjQkQor0JHQldCg0JjQiyDQltCY0JLQmtCeCivQkdCV0KDQmNCLINCQ0J3QgtCV0JvQmtCeCivQkdCV0KDQmNCLINCQ0J3QotCQCivQkdCV0KDQmNCLINCQ0J3QotCQCivQkdCV0KDQmNCLINCR0JXQoNCY0KHQm9CQ0JIg0JTQoCDQn9Cg0J7QpAor0JHQldCg0JjQiyDQkdCY0InQkNCd0JAKK9CR0JXQoNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CR0JXQoNCY0Isg0JHQntCT0JTQkNCdCivQkdCV0KDQmNCLINCU0KDQkNCT0JjQitCQCivQkdCV0KDQmNCLINCU0KPQqNCQ0J3QmtCQCivQkdCV0KDQmNCLINCU0KPQqNCQ0J0KK9CR0JXQoNCY0Isg0JPQntCI0JrQngor0JHQldCg0JjQiyDQk9Ce0IjQmtCeCivQkdCV0KDQmNCLINCT0J7QiNCa0J4KK9CR0JXQoNCY0Isg0JjQm9CY0IjQkAor0JHQldCg0JjQiyDQiNCe0KDQlNCQ0J3QkAor0JHQldCg0JjQiyDQiNCe0JLQngor0JHQldCg0JjQiyDQmtCe0KHQotCQCivQkdCV0KDQmNCLINCc0JDQoNCQCivQkdCV0KDQmNCLLdCc0JDQodCa0JDQoNCV0Jsg0JrQkNCg0JzQldCd0KHQmNCi0JAg0JTQoAor0JHQldCg0JjQiyDQnNCY0JvQkNCdCivQkdCV0KDQmNCLINCc0JjQm9CQ0J0KK9CR0JXQoNCY0Isg0JzQmNCb0JDQnQor0JHQldCg0JjQiyDQnNCY0JvQmNCm0JAg0JzQoAor0JHQldCg0JjQiyDQnNCY0JvQmNCS0J7QiAor0JHQldCg0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQldCg0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQldCg0JjQiyDQnNCY0JvQntCS0JDQnQor0JHQldCg0JjQiyDQndCQ0JTQkAor0JHQldCg0JjQiyDQndCY0JrQntCb0JAKK9CR0JXQoNCY0Isg0J/QldCg0KHQmNCU0JAKK9CR0JXQoNCY0Isg0J/QldCi0JDQoAor0JHQldCg0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JHQldCg0JjQiyDQoNCQ0IjQmtCeCivQkdCV0KDQmNCLINCg0JDQiNCa0J4KK9CR0JXQoNCY0Isg0KHQkNCS0JAKK9CR0JXQoNCY0Isg0KLQntCU0JUKK9CR0JXQoNCY0Isg0JLQldCg0JAKK9CR0JXQoNCY0Isg0JLQldCg0JjQptCQCivQkdCV0KDQmNCLINCS0JXQodCd0JAg0JTQoAor0JHQldCg0JjQiyDQl9Ce0KDQmNCm0JAKK9CR0JXQoNCY0KHQkNCS0InQldCS0JjQiyDQoNCQ0IjQmtCeCivQkdCV0KDQmNCh0JDQktCJ0JXQktCY0Isg0JfQntCg0JjQptCQCivQkdCV0KDQmtCV0Kgg0JjQqNCi0JLQkNCdCivQkdCV0KDQmtCYINCI0J7QltCV0KQKK9CR0JXQoNCa0JjQiyDQoNCj0JbQmNCm0JAKK9CR0JXQoNCa0J7QktCY0Isg0JHQldCg0JjQodCb0JDQkgor0JHQldCg0JrQntCS0JjQiyDQj9CQ0KTQldCgCivQkdCV0KDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JXQoNCa0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JHQldCg0JvQkNCd0KfQmNCLINCU0JDQndCY0IjQldCbCivQkdCV0KDQm9Ce0JLQkNCdINCT0JXQntCg0JPQmNCd0JAKK9CR0JXQoNCd0JDQptCa0Jgg0JDQlNCe0JvQpAor0JHQldCg0J3QkNCg0JQg0ILQntCg0ILQlQor0JHQldCg0J3QpdCQ0KDQlCDQltCQ0KDQmtCeCivQkdCV0KDQndCl0JDQoNCUINCR0J7QltCY0JTQkNCgCivQkdCV0KDQndCl0JDQoNCUINCR0J7QiNCQ0J3QkAor0JHQldCg0J3QpdCQ0KDQlCDQpNCY0JvQmNCfCivQkdCV0KDQndCl0JDQoNCUINCY0JvQmNCI0JAKK9CR0JXQoNCd0KXQkNCg0JQg0InQo9CR0JDQnQor0JHQldCg0J3QpdCQ0KDQlCDQnNCQ0KDQmNCI0JAKK9CR0JXQoNCd0KXQkNCg0JQg0JzQmNCb0JDQnQor0JHQldCg0J3QpdCQ0KDQlCDQnNCY0JvQmNCm0JAg0JTQoAor0JHQldCg0J3QpdCQ0KDQlCDQnNCY0JvQntCg0JDQlAor0JHQldCg0J3QpdCQ0KDQlCDQoNCQ0JTQntCh0JvQkNCSCivQkdCV0KDQndCl0JDQoNCUINCg0JDQiNCa0J4KK9CR0JXQoNCd0KXQkNCg0JQg0KHQmNCc0J4KK9CR0JXQoNCd0KXQkNCg0JQg0KLQoNCY0JLQngor0JHQldCg0J7QqCDQidCj0JHQmNCm0JAKK9CR0JXQoNCi0JAg0IjQkNCd0J7QqAor0JHQldCg0KLQkCDQnNCY0JvQmNCm0JAKK9CR0JXQoNCi0JAg0J/QkNCbCivQkdCV0KDQotCQINCf0JXQotCQ0KAKK9CR0JXQoNCi0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JHQldCg0KLQmNCLINCX0JLQntCd0JrQngor0JHQldCg0KLQntCaINCI0JDQndCe0KgKK9CR0JXQoNCi0J7QmiDQiNCj0JvQmNCI0JDQndCQCivQkdCV0KDQotCe0Jog0JvQkNCI0J7QqAor0JHQldCg0KLQoNCe0J0g0JvQldCd0JrQlQor0JHQldCg0KPQoSDQktCI0JXQmtCe0KHQm9CQ0JIKK9CR0JXQoNCX0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JXQodCV0JTQldCoINCI0J7QltCV0KQKK9CR0JXQodCV0KDQnNCV0IrQmCDQgtCe0KDQgtCVCivQkdCV0KHQldCg0JzQldCK0Jgg0JHQoNCQ0J3QmtCeCivQkdCV0KHQldCg0JzQldCK0Jgg0JTQmNCe0J3QmNCX0JjQiNCVCivQkdCV0KHQldCg0JzQldCK0Jgg0JXQo9Ck0JXQnNCY0IjQkAor0JHQldCh0JXQoNCc0JXQitCYINCY0KDQldCd0JAKK9CR0JXQodCV0KDQnNCV0IrQmCDQmNCS0JDQnQor0JHQldCh0JXQoNCc0JXQitCYINCa0JjQoNCY0JsKK9CR0JXQodCV0KDQnNCV0IrQmCDQmtCh0JXQndCY0IjQkAor0JHQldCh0JXQoNCc0JXQitCYINCb0JXQntCd0JAKK9CR0JXQodCV0KDQnNCV0IrQmCDQnNCV0JvQkNCd0JjQiNCQCivQkdCV0KHQldCg0JzQldCK0Jgg0J7Qm9CT0JAKK9CR0JXQodCV0KDQnNCV0IrQmCDQktCb0JDQlNCY0JzQmNCgCivQkdCV0KHQldCg0JzQldCK0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JHQldCh0JrQntCg0J7QktCQ0IjQndCYINCS0JvQkNCU0JjQnNCY0KAKK9CR0JXQodCb0JDQiyDQlNCg0JDQk9CQ0J3QkAor0JHQldCh0JvQkNCLINCc0JjQm9Cj0KLQmNCdCivQkdCV0KHQm9CQ0Isg0KDQkNCU0JzQmNCb0JAKK9CR0JXQodCd0JjQm9Ce0JIg0JHQntCo0JrQngor0JHQldCh0J3QmNCb0J7QkiDQntCb0JjQktCV0KDQkAor0JHQldCh0KMg0KHQmNCb0JAKK9CR0JXQodCjINCi0J7QlNCe0KAKK9CR0JXQodCjINCi0KDQkNCd0JTQkNCk0JjQoAor0JHQldCi0Jgg0KHQotCQ0J3QmtCeINCQ0JTQktCe0JrQkNCiCivQkdCV0KPQpiDQltCY0JLQkNCdCivQkdCV0KPQpiDQnNCY0KDQkAor0JHQldCj0KYg0J7Qm9CT0JAKK9CR0JXQl9CU0JDQnSDQkNCd0JAKK9CR0JXQl9CU0JDQnSDQpNCg0JDQitCQCivQkdCV0JfQlNCQ0J0g0JjQm9CU0JjQmtCeCivQkdCV0JfQlNCQ0J0g0JjQoNCV0J3QkAor0JHQldCX0JTQkNCdINCI0J7QodCY0J8KK9CR0JXQl9CV0J3QqNCV0Jog0J3QkNCi0JDQm9CY0IjQkAor0JHQldCX0Jgg0JrQkNCi0JjQptCQCivQkdCV0JfQiNCQ0Jog0JzQmNCb0JDQndCa0JAKK9CR0JXQl9CI0JDQmiDQl9CU0JXQndCa0J4KK9CR0JXQl9Cj0Ikg0ILQntCg0ILQlQor0JHQldCX0KPQiSDQidCY0InQkNCd0JAg0J/QoNCe0KTQldCh0J7QoAor0JHQmNCn0JDQmiDQmNCT0J3QkNCmCivQkdCY0KfQkNCaINCI0KPQodCi0JjQndCQCivQkdCY0KfQkNCdINCQ0J3QmtCQCivQkdCY0KfQkNCdINCY0JLQmNCm0JAKK9CR0JjQp9Ca0JXQmCDQotCV0KDQldCX0JjQiNCQCivQkdCY0IvQkNCd0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0JjQi9CQ0J3QmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CR0JjQi9CQ0J3QmNCLINCc0JDQoNCY0IjQkAor0JHQmNCL0JDQndCY0Isg0J/QldCi0JDQoAor0JHQmNCL0JDQndCY0Isg0J/QldCi0KDQkAor0JHQmNCR0JXQoCDQodCi0JXQktCQ0J0KK9CR0JjQkdCV0KDQj9CY0Isg0KDQkNCU0J7QnNCY0KAKK9CR0JjQkdCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JjQkdCY0Isg0J/QkNCS0JvQlQor0JHQmNCR0JjQiyDQodCe0KTQmNCI0JAKK9CR0JjQkdCY0Isg0KHQotCI0JXQn9CQ0J0KK9CR0JjQkdCY0J0g0IjQo9CT0J7QodCb0JDQkgor0JHQmNCR0JjQnSDQnNCY0JvQmNCd0JrQngor0JHQmNCm0JjQmtCY0J0g0JzQmNCb0JDQnQor0JHQmNCm0Jog0JTQoNCQ0JPQo9Ci0JjQnQor0JHQmNCm0J4g0KDQo9CW0JjQptCQCivQkdCY0KbQntCaINCV0KLQldCb0JrQkAor0JHQmNCm0J7QmiDQnNCQ0KDQk9CY0KLQkAor0JHQmNCm0J7QmiDQnNCQ0KDQk9CY0KLQkAor0JHQmNCV0JvQp9CY0Jog0JvQmNCU0JjQiNCQCivQkdCY0JPQkCDQkdCe0KDQmNCh0JvQkNCSCivQkdCY0JPQkCDQnNCY0JvQkNCdCivQkdCY0JPQkCDQndCQ0JTQkAor0JHQmNCT0JAg0KHQnNCY0InQkAor0JHQmNCT0J7QktCY0Ist0KjQmNCg0J7QmtCYINCX0J7QoNCY0KbQkAor0JHQmNCT0J7QktCY0Isg0JDQndCQCivQkdCY0JPQntCS0JjQiyDQktCe0IjQmNCdCivQkdCY0JPQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQkdCY0KXQntCg0JDQpiDQnNCY0KDQiNCQ0J3QkAor0JHQmNCI0JDQndCY0Isg0JzQmNCb0JXQndCa0J4KK9CR0JjQiNCQ0J3QmtCeINCf0JXQotCQ0KAKK9CR0JjQiNCV0JTQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCY0IjQldCb0JjQiyDQkNCb0JXQmtCh0JAKK9CR0JjQiNCV0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQmNCI0JXQm9CY0Isg0JTQkNCg0JAKK9CR0JjQiNCV0JvQmNCLINCY0JLQmNCm0JAKK9CR0JjQiNCV0JvQmNCLINCI0J7QktCQ0J0KK9CR0JjQiNCV0JvQmNCLINCI0J7QktCY0KbQkAor0JHQmNCI0JXQm9CY0Isg0JzQkNCi0J4KK9CR0JjQiNCV0JvQmNCLINCc0JjQm9CQ0J0KK9CR0JjQiNCV0JvQmNCLINCc0JjQm9CVCivQkdCY0IjQldCb0JjQiyDQnNCY0JvQlQor0JHQmNCI0JXQm9CY0Isg0JzQmNCb0JUKK9CR0JjQiNCV0JvQmNCLINCc0JjQm9CVCivQkdCY0IjQldCb0JjQiyDQndCe0JLQkNCaCivQkdCY0IjQldCb0JjQiyDQn9CV0KDQngor0JHQmNCI0JXQm9CY0Isg0KDQmNCh0KLQngor0JHQmNCI0JXQm9CY0Isg0KHQotCe0IjQkNCdCivQkdCY0IjQldCb0JjQiyDQodCi0J7QiNCQ0J0KK9CR0JjQiNCV0InQkNCmINCd0JXQlNCV0InQmtCeINCU0JjQn9CbINCY0J3Qkwor0JHQmNCI0JXQm9Ce0JLQmNCLINCd0J7QktCa0JAKK9CR0JjQiNCj0JrQm9CY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQkdCY0IjQo9Ca0JvQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JHQmNCI0KPQmtCb0JjQiyDQnNCQ0KDQmNCd0JrQngor0JHQmNCa0JDQoCDQlNCg0JDQk9CQ0J3QkAor0JHQmNCa0JDQoCDQpNCV0JTQntCg0JAKK9CR0JjQmtCQ0KDQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JjQmtCY0Isg0JbQmNCS0JDQnQor0JHQmNCa0JjQiyDQgtCe0KDQgtCVCivQkdCY0JrQmNCLINCU0JDQndCY0KbQkAor0JHQmNCa0JjQiyDQlNCj0KjQkNCdCivQkdCY0JrQmNCLINCa0J7QndCh0KLQkNCd0KLQmNCdCivQkdCY0JrQmNCLINCJ0JjQidCQ0J3QkAor0JHQmNCa0JjQiyDQnNCY0JvQntCS0JDQnQor0JHQmNCa0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQmNCa0JjQiyDQndCY0JrQntCb0JAKK9CR0JjQmtCY0Isg0J/QldCg0JAKK9CR0JjQmtCY0KbQmtCYINCC0J7QoNCC0JUKK9CR0JjQmtCY0KbQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCY0JrQmNCm0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0JjQmtCY0KbQmtCYINCI0JXQm9CY0KbQkAor0JHQmNCa0JjQptCa0Jgg0IjQldCb0JjQptCQCivQkdCY0JrQmNCm0JrQmCDQiNCe0JLQkNCdCivQkdCY0JrQmNCm0JrQmCDQiNCe0JLQkNCdCivQkdCY0JrQmNCm0JrQmCDQmtCQ0KLQkNCg0JjQndCQCivQkdCY0JrQmNCm0JrQmCDQnNCY0JvQntCoCivQkdCY0JrQmNCm0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQkdCY0JrQmNCm0JrQmCDQoNCQ0JTQntCI0JrQkAor0JHQmNCa0JjQptCa0Jgg0KHQmNCd0JjQqNCQCivQkdCY0JrQmNCm0JrQmCDQodCY0J3QmNCo0JAKK9CR0JjQmtCY0KbQmtCYINCS0JDQodCY0JvQmNCI0JUKK9CR0JjQmtCY0KIg0JzQkNCT0JTQntCb0J3QkAor0JHQmNCa0JjQoiDQndCe0KDQkdCV0KDQogor0JHQmNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQkdCY0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCY0JvQp9CQ0KAg0KXQmNCb0JTQkAor0JHQmNCb0KfQkNCgINCS0JXQoNCQCivQkdCY0JvQkCDQnNCY0KDQmtCeCivQkdCY0JvQkNCaINCc0JjQm9CQ0J0KK9CR0JjQm9CQ0Jog0J3QkNCU0JAKK9CR0JjQm9CQ0JvQntCS0JjQiyDQodCQ0JHQkNCl0KPQlNCY0J0KK9CR0JjQm9CQ0J3Qj9CY0IjQkCDQlNCQ0J3QmNCm0JAKK9CR0JjQm9CQ0J3QmNCLINCd0JDQlNCQCivQkdCY0JvQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JHQmNCb0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQkdCY0JvQkNCd0J7QktCY0Isg0J/QldCg0J4KK9CR0JjQm9CQ0KEg0KHQnNCY0InQkAor0JHQmNCb0JHQmNCI0JAg0JHQntCT0JTQkNCdCivQkdCY0JvQkdCY0IjQkCDQlNCV0IjQkNCdCivQkdCY0JvQkdCY0IjQkCDQlNCg0JDQk9CQ0J0KK9CR0JjQm9CR0JjQiNCQINCI0JDQodCd0JAKK9CR0JjQm9CR0JjQiNCQINCc0JjQm9CQ0J0KK9CR0JjQm9CR0JjQiNCQINCh0JzQmNCJ0JAKK9CR0JjQm9CV0Jog0JzQmNCb0JjQptCQCivQkdCY0JvQldCgINCC0J7QoNCC0JUKK9CR0JjQm9CYINCI0KPQm9CY0IjQkAor0JHQmNCb0JjQp9CY0Isg0KHQotCI0JXQn9CQ0J0KK9CR0JjQm9CY0Isg0JDQndCi0JUKK9CR0JjQm9CY0Isg0JHQoNCQ0J3QmtCY0KbQkAor0JHQmNCb0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQmNCb0JjQiyDQmNCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CR0JjQm9CY0Isg0JjQktCQ0J0KK9CR0JjQm9CY0Isg0IjQkNCa0J7Qkgor0JHQmNCb0JjQiyDQiNCV0JvQldCd0JAKK9CR0JjQm9CY0Isg0JzQmNCb0JDQnQor0JHQmNCb0JjQiyDQnNCY0JvQkNCdCivQkdCY0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQkdCY0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCY0JvQmNCLINCc0JjQoNCeCivQkdCY0JvQmNCLINCf0KDQldCU0KDQkNCTCivQkdCY0JvQmNCLINCh0KDQgtCQ0J0KK9CR0JjQm9CY0Isg0KHQotCI0JXQn9CQ0J0KK9CR0JjQm9CY0Isg0KHQotCg0JDQmNCdCivQkdCY0JvQmNCm0JrQmCDQm9CQ0KHQm9CeCivQkdCY0JvQmNCd0J7QktCY0Isg0JHQntCg0JjQoQor0JHQmNCb0JjQndCe0JLQmNCLINCh0JDQqNCQCivQkdCY0InQkNCd0JjQiyDQoNCQ0JTQntCI0JrQkAor0JHQmNCJ0IrQkCDQktCb0JDQlNCY0JzQmNCgCivQkdCY0JvQntCa0JDQn9CY0Isg0JjQktCQ0J0KK9CR0JjQm9Ce0JrQkNCf0JjQiyDQiNCj0KDQlQor0JHQmNCb0J7QmtCQ0J/QmNCLINCh0KLQldCS0JDQnQor0JHQmNCb0KPQqNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CR0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQmNCdINCc0KPQpdCQ0JzQldCiCivQkdCY0J3QkNCa0JDQiCDQkdCQ0IjQoNCQ0JwKK9CR0JjQndCU0JDQoSDQgtCj0KDQkAor0JHQmNCd0JTQkNChINCU0KDQkNCT0JjQptCQCivQkdCY0J3QlNCQ0KEg0JzQmNCl0JDQiNCb0J4KK9CR0JjQndCU0JXQoCDQkNCg0JDQndCa0JAKK9CR0JjQndCT0J7Qm9CUINCU0KDQkNCT0KPQotCY0J0KK9CR0JjQndCT0J7Qm9CUINCa0JDQoNCb0J4KK9CR0JjQndCT0J7Qm9CUINCg0KPQlNCe0JvQpAor0JHQmNCd0JPQo9Cb0JDQpiDQltCY0JLQmtCeCivQkdCY0J3Qk9Cj0JvQkNCmINCR0J7QiNCQ0J3QkAor0JHQmNCd0JPQo9Cb0JDQpiDQnNCY0KDQiNCQ0J3QkAor0JHQmNCe0J3QlNCY0Isg0IjQldCb0JXQndCQCivQkdCY0J7QoNCQ0KYg0JTQldCh0JjQnNCY0KAKK9CR0JjQntCg0JDQpiDQoNCQ0J3QmtCeCivQkdCY0KDQi9CQINCh0KDQldCi0JrQngor0JHQmNCg0KbQm9CY0J0g0KDQo9CW0JjQptCQCivQkdCY0KDQlNCY0Isg0JHQldCb0JAKK9CR0JjQoNCV0Kgg0JvQldCd0JrQkAor0JHQmNCg0JXQqCDQoNCe0JfQkNCb0JjQiNCQCivQkdCY0KDQk9CV0JzQkNCI0JXQoCDQnNCQ0KDQmNCI0JAKK9CR0JjQoNCl0JzQkNCdINCQ0J3QkAor0JHQmNCg0JjQitCYINCU0JXQndCV0KgKK9CR0JjQoNCY0IrQmCDQldCj0JPQldCdCivQkdCY0KDQnNCQ0J3QkNCmINCU0KPQqNCQ0J0KK9CR0JjQoNCeINCQ0J3QotCe0J0KK9CR0JjQoNCeINCT0JjQl9CV0JvQkAor0JHQmNCg0J4g0JPQmNCX0JXQm9CQCivQkdCY0KDQniDQmNCo0KLQktCQ0J0KK9CR0JjQoNCeINCY0JvQntCd0JAKK9CR0JjQoNCeINCY0JzQoNCVCivQkdCY0KDQniDQmNCc0KDQlQor0JHQmNCg0J4g0JrQkNCi0JDQm9CY0J0KK9CR0JjQoNCeINCb0JDQiNCe0KgKK9CR0JjQoNCeINCc0JjQmtCb0J7QqAor0JHQmNCg0J4g0JzQmNCb0J7QqAor0JHQmNCg0J7QqNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0JHQmNCg0J7QktCJ0JXQkiDQkdCg0JDQndCY0JzQmNCgCivQkdCY0KDQntCS0InQldCSINCR0KDQkNCd0JjQodCb0JDQkgor0JHQmNCg0J7QktCJ0JXQkiDQnNCY0JvQkNCdCivQkdCY0KDQntCS0InQldCSINCc0JjQm9Ce0KDQkNCUCivQkdCY0KDQntCS0InQldCSINCc0JjQm9Ce0KHQkNCSCivQkdCY0KDQntCS0InQldCSINCc0JjQoNCe0KHQm9CQ0JIKK9CR0JjQoNCe0JLQidCV0JIg0KLQntCU0J7QoCDQlNCgCivQkdCY0KDQntCS0InQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0JjQoNCe0JLQidCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JHQmNCg0KLQkCDQktCb0JDQlNCY0JzQmNCgCivQkdCY0KDQktCQ0JvQodCa0Jgg0JTQo9Co0JDQnQor0JHQmNCh0JXQoNCn0JjQiyDQkNCd0JTQoNCY0IjQkAor0JHQmNCh0JXQoNCn0JjQiyDQlNCg0JDQk9CeCivQkdCY0KHQldCg0KfQmNCLINCc0JjQm9Ca0JDQndCQCivQkdCY0KHQmNCLINCI0J7QktCQ0J0KK9CR0JjQodCi0KDQmNCm0JDQnSDQntCb0JPQkAor0JHQmNCh0KLQoNCe0JLQmNCLINCQ0J3QotCe0J0KK9CR0JjQotCY0Isg0I/QldCc0JDQmNCbCivQkdCY0KLQniDQodCi0JXQktCQ0J0KK9CR0JjQo9CaINCc0JDQoNCY0IjQkAor0JHQmNCS0J7Qm9CQ0KDQldCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JHQmNCX0IjQkNCaINCg0JXQndCQ0KLQngor0JHQmNCX0KPQnNCY0Isg0JPQldCe0KDQk9CY0IjQlQor0JHQmNCX0KPQnNCY0Isg0IjQldCb0JrQkAor0JHQmNCX0KPQnNCY0Isg0JvQkNCX0JDQoAor0JHQmNCX0KPQnNCY0Isg0JzQmNCb0JDQnQor0JHQiNCV0JTQmNCLINCU0JXQodCQ0J3QmtCQCivQkdCI0JXQlNCe0JIg0ILQo9Ca0JAKK9CR0IjQldCU0J7QkiDQlNCg0JDQk9CeCivQkdCI0JXQlNCe0JIg0J3QmNCa0J7Qm9CQCivQkdCI0JXQk9Ce0JLQmNCLINCU0JDQndCY0JvQmtCQCivQkdCI0JXQk9Ce0JLQmNCLINCT0J7QiNCa0J4KK9CR0IjQldCa0JjQiyDQm9Cj0JrQkAor0JHQiNCV0JrQmNCLINCe0KHQotCe0IjQkAor0JHQiNCV0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQiNCV0JrQntCS0JjQiyDQoNCQ0JTQlQor0JHQiNCV0JvQkNCmINCC0KPQoNCQCivQkdCI0JXQm9CQ0KYg0JTQoNCQ0JPQkNCdCivQkdCI0JXQm9CQ0KYg0JTQoNCQ0JPQkNCdCivQkdCI0JXQm9CQ0KYg0JXQotCV0JvQmtCQCivQkdCI0JXQm9CQ0IjQkNCmINCU0KDQkNCT0JDQnQor0JHQiNCV0JvQkNCI0JDQpiDQnNCY0InQkAor0JHQiNCV0JvQkNCI0JDQpiDQodCS0JXQotCe0JfQkNCgCivQkdCI0JXQm9CQ0JrQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQkdCI0JXQm9CQ0J3QntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0JHQiNCV0JvQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0JHQiNCV0JvQkNCd0J7QktCY0Isg0KDQkNCI0JrQngor0JHQiNCV0JvQkNCd0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JHQiNCV0JvQkNCd0J7QktCY0Isg0KLQkNCK0JAKK9CR0IjQldCb0JXQotCY0Isg0JHQntCT0JTQkNCdCivQkdCI0JXQm9CV0KLQmNCLINCJ0KPQkdCY0KbQkAor0JHQiNCV0JvQldCi0JjQiyDQm9Cj0JrQkAor0JHQiNCV0JvQmC3QpdCQ0I/QmNCLINCI0JXQm9CY0KbQkAor0JHQiNCV0JvQmNCLINCC0KPQoNCQCivQkdCI0JXQm9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JHQiNCV0JvQmNCLINCR0KDQkNCd0JrQngor0JHQiNCV0JvQmNCLINCU0JDQndCY0JvQmtCQCivQkdCI0JXQm9CY0Isg0JTQnNCY0KLQkNCgCivQkdCI0JXQm9CY0Isg0JPQntCg0JTQkNCd0JAKK9CR0IjQldCb0JjQiyDQiNCe0JLQkNCdCivQkdCI0JXQm9CY0Isg0JrQkNCi0JjQptCQCivQkdCI0JXQm9CY0Isg0JrQoNCh0KLQkNCdCivQkdCI0JXQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9CR0IjQldCb0JjQiyDQnNCY0JvQkNCdCivQkdCI0JXQm9CY0Isg0JzQmNCg0JrQngor0JHQiNCV0JvQmNCLINCd0JXQlNCV0InQmtCeCivQkdCI0JXQm9CY0Isg0J7Qm9CT0JAKK9CR0IjQldCb0JjQiyDQn9CV0KLQkNCgCivQkdCI0JXQm9CY0Isg0J/QldCi0JDQoAor0JHQiNCV0JvQmNCLINCh0JvQkNCS0JrQngor0JHQiNCV0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0IjQldCb0JjQiyDQodCi0JXQktCeCivQkdCI0JXQm9CY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JHQiNCV0JvQmNCLINCS0JXQoNCQCivQkdCI0JXQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQiNCV0JvQmNCm0JAg0KfQldCU0J4KK9CR0IjQldCb0JjQptCQINCC0J7QoNCC0JjQiNCQCivQkdCI0JXQm9CY0KbQkCDQkNCb0JXQmtCh0JAKK9CR0IjQldCb0JjQptCQINCR0J7Qk9CU0JDQnQor0JHQiNCV0JvQmNCm0JAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCI0JXQm9CY0KbQkCDQlNCQ0J3QmNCb0J4KK9CR0IjQldCb0JjQptCQINCU0J7QkdCg0JjQktCe0IjQlQor0JHQiNCV0JvQmNCm0JAg0JTQoNCQ0JPQo9Ci0JjQnQor0JHQiNCV0JvQmNCm0JAg0JPQntCI0JrQngor0JHQiNCV0JvQmNCm0JAg0JPQntCI0JrQngor0JHQiNCV0JvQmNCm0JAg0IjQkNCU0KDQkNCd0JrQkAor0JHQiNCV0JvQmNCm0JAg0IjQkNCU0KDQkNCd0JrQkAor0JHQiNCV0JvQmNCm0JAg0JvQo9Ca0JAKK9CR0IjQldCb0JjQptCQINCc0JjQm9CQ0J0KK9CR0IjQldCb0JjQptCQINCc0JjQm9CY0KbQkAor0JHQiNCV0JvQmNCm0JAg0JzQmNCe0JTQoNCQ0JMKK9CR0IjQldCb0JjQptCQINCd0JDQlNCQCivQkdCI0JXQm9CY0KbQkC3Qn9Ce0J/QntCS0JjQiyDQidCj0JHQmNCm0JAKK9CR0IjQldCb0JjQptCQINCg0JDQiNCa0J4KK9CR0IjQldCb0JjQptCQINCg0JDQmtCeCivQkdCI0JXQm9CY0KbQkCDQoNCQ0KLQmtCeCivQkdCI0JXQm9CY0KbQkCDQodCQ0JLQmtCQCivQkdCI0JXQm9CY0KbQkCDQodCb0JDQktCa0J4KK9CR0IjQldCb0JjQptCQINCh0J/QkNCh0J7QiNCVCivQkdCI0JXQm9CY0KbQkCDQotCY0JPQoNCQ0J0KK9CR0IjQldCb0JjQptCQINCS0JXQidCa0J4KK9CR0IjQldCb0JjQptCQINCS0JXQidCa0J4KK9CR0IjQldCb0JjQptCQINCS0J7QiNCeCivQkdCI0JXQm9CY0KbQkCDQktCj0JrQntCh0JDQktCQCivQkdCI0JXQm9CY0KbQkCDQl9Ce0KDQkNCdCivQkdCI0JXQm9CY0J3QmNCLINCU0JDQoNCY0J3QmtCQCivQkdCI0JXQm9CY0J3QmNCLINCI0J7QktCeCivQkdCI0JXQm9CY0JLQo9CaINCT0J7QoNCQ0J0KK9CR0IjQldCb0JjQktCj0Jog0JLQm9CQ0JTQmNCc0JjQoAor0JHQiNCV0InQkNCmINCQ0J3QkAor0JHQiNCV0InQkNCmINCR0J7QoNCQCivQkdCI0JXQidCQ0KYg0JHQoNCQ0J3QmtCeCivQkdCI0JXQidCQ0KYg0JzQmNCb0JDQnQor0JHQiNCV0InQkNCmINCc0JjQm9Ce0KDQkNCUCivQkdCI0JXQm9Ce0Kgg0JTQkNCd0JjQptCQCivQkdCI0JXQm9Ce0Kgg0JzQmNCg0J7QodCb0JDQkgor0JHQiNCV0JvQntCoINCc0JjQoNCe0KHQm9CQ0JIKK9CR0IjQldCb0J7QqNCV0JLQmNCLINCh0JvQkNCS0JrQngor0JHQiNCV0JvQntCR0JDQkdCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCI0JXQm9Ce0JHQkNCR0JAg0JTQkNCg0JAKK9CR0IjQldCb0J7QkdCg0Jog0JHQntCo0JrQngor0JHQiNCV0JvQntCR0KDQmiDQkdCe0KjQmtCeCivQkdCI0JXQm9Ce0JHQoNCaINCT0J7QoNCQ0J0KK9CR0IjQldCb0J7QkdCg0Jog0JvQkNCX0JDQoAor0JHQiNCV0JvQntCR0KDQmiDQm9CQ0JfQkNCgCivQkdCI0JXQm9Ce0JHQoNCaINCc0JDQndCVCivQkdCI0JXQm9Ce0JHQoNCaINCc0JDQoNCa0J4KK9CR0IjQldCb0J7QkdCg0Jog0JzQmNCb0JDQnQor0JHQiNCV0JvQntCR0KDQmiDQnNCY0JvQntCoCivQkdCI0JXQm9Ce0JHQoNCaINCf0JXQotCQ0KAKK9CR0IjQldCb0J7QkdCg0Jot0JLQkNCg0JPQkCDQiNCQ0KHQndCQCivQkdCI0JXQm9Ce0JPQoNCb0JjQiyDQgtCe0KDQgtCVCivQkdCI0JXQm9Ce0JPQoNCb0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JHQiNCV0JvQntCT0KDQm9CY0Isg0JTQldCI0JDQndCQCivQkdCI0JXQm9Ce0JPQoNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0IjQldCb0J7Qk9Cg0JvQmNCLINCJ0KPQkdCY0KbQkAor0JHQiNCV0JvQntCT0KDQm9CY0Isg0InQo9CR0J4KK9CR0IjQldCb0J7Qk9Cg0JvQmNCLINCc0JjQotCQ0KAKK9CR0IjQldCb0J7Qk9Cg0JvQmNCLINCc0J7QnNCn0JjQm9CeCivQkdCI0JXQm9Ce0KLQntCc0JjQiyDQiNCe0JLQngor0JHQiNCV0JvQntCS0JjQiyDQoNCQ0KLQmtCeCivQkdCI0JXQm9Ce0JLQo9CaINCc0JjQoNCI0JDQndCQCivQkdCI0JXQm9Ce0JLQo9CaINCh0JvQkNCS0JjQptCQCivQkdCI0JXQm9Ce0JLQo9CaINCh0JvQkNCS0JrQngor0JHQm9CQ0KjQmtCeINCi0JjQkdCe0KAKK9CR0JvQkNCo0JrQntCS0JjQiyDQpNCg0JDQitCeCivQkdCb0JDQqNCa0J7QktCY0Isg0JvQkNCh0JvQngor0JHQm9CQ0KjQmtCe0JLQmNCLINCf0JDQktCb0JUKK9CR0JvQkNCW0JDQnSDQpNCg0JDQitCeCivQkdCb0JDQltCQ0J0g0JjQktCeCivQkdCb0JDQltCQ0J0g0JzQkNCg0JrQngor0JHQm9CQ0JbQkNCdINCh0JvQkNCS0JrQngor0JHQm9CQ0JbQldCaINCT0KPQodCi0JDQkgor0JHQm9CQ0JbQldCaINCI0JXQm9CV0J3QkAor0JHQm9CQ0JbQldCaINCc0JDQoNCY0IjQkAor0JHQm9CQ0JbQldCaINCc0JjQpdCQ0IkKK9CR0JvQkNCW0JXQktCQINCe0JvQk9CQCivQkdCb0JDQltCV0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQkdCb0JDQltCV0JLQmNCLINCU0KDQkNCT0JDQndCQCivQkdCb0JDQltCV0JLQmNCLINCU0KDQkNCT0J4KK9CR0JvQkNCW0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9CR0JvQkNCW0JXQktCY0Isg0JTQo9Co0JjQptCQCivQkdCb0JDQltCV0JLQmNCLINCU0KPQkdCg0JDQktCa0JAKK9CR0JvQkNCW0JXQktCY0Isg0KTQoNCQ0IrQngor0JHQm9CQ0JbQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQm9CQ0JbQldCS0JjQiyDQoNCQ0JTQlSDQlNCgINCb0JXQmtCQ0KAKK9CR0JvQkNCW0JXQktCY0Isg0KHQotCI0JXQn9CQ0J0KK9CR0JvQkNCW0JXQktCY0Isg0KHQo9CX0JDQndCQCivQkdCb0JDQltCV0JLQmNCLINCS0JXQoNCQCivQkdCb0JDQltCV0JLQmNCLINCX0J7QoNCQ0J0KK9CR0JvQkNCW0JjQiyDQgtCe0KDQgtCVCivQkdCb0JDQltCY0Isg0JHQntCo0JrQngor0JHQm9CQ0JbQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQkdCb0JDQltCY0Isg0JTQoNCQ0JPQkNCdCivQkdCb0JDQltCY0Isg0JTQoNCQ0JPQkNCdCivQkdCb0JDQltCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JHQm9CQ0JbQmNCLINCl0KDQmNCh0KLQmNCd0JAKK9CR0JvQkNCW0JjQiyDQmNCS0JDQnQor0JHQm9CQ0JbQmNCLINCI0JXQm9CV0J3QkAor0JHQm9CQ0JbQmNCLINCa0KHQldCd0JjQiNCQCivQkdCb0JDQltCY0Isg0JzQkNCg0JjQiNCQCivQkdCb0JDQltCY0Isg0JzQldCi0J7QlNCY0IjQlQor0JHQm9CQ0JbQmNCLINCc0JjQpdCQ0IjQm9CeCivQkdCb0JDQltCY0Isg0KHQkNCS0JAKK9CR0JvQkNCW0JjQiyDQodCQ0JLQmtCeCivQkdCb0JDQltCY0Isg0KHQktCV0KLQntCX0JDQoAor0JHQm9CQ0JbQmNCLINCS0JjQlNCQCivQkdCb0JDQltCY0Jog0JDQndCi0JDQmwor0JHQm9CQ0JbQmNCdINCU0KDQkNCT0JjQitCQCivQkdCb0JDQk9Ce0IjQldCSINCW0JjQktCa0J4KK9CR0JvQkNCT0J7QiNCV0JIg0JbQmNCS0JrQngor0JHQm9CQ0JPQntCI0JXQkiDQgtCe0KDQgtCVCivQkdCb0JDQk9Ce0IjQldCSINCY0JLQkNCdCivQkdCb0JDQk9Ce0IjQldCSINCc0JjQm9CY0JLQntCICivQkdCb0JDQk9Ce0IjQldCSINCc0JjQm9Ce0KDQkNCUCivQkdCb0JDQk9Ce0IjQldCSINCc0JjQotCQCivQkdCb0JDQk9Ce0IjQldCSINCg0JDQlNCQCivQkdCb0JDQk9Ce0IjQldCSINCg0JDQlNCe0KHQm9CQ0JIKK9CR0JvQkNCT0J7QiNCV0JIg0KHQotCV0JLQkNCdCivQkdCb0JDQk9Ce0IjQldCSINCS0JXQm9CY0JzQmNCgCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQp9CV0JTQngor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JbQkNCg0JrQngor0JHQm9CQ0JPQntCI0JXQktCY0Isg0ILQntCg0ILQlQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0ILQntCg0ILQlQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JDQndCQCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQkdCV0IvQmtCeCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQkdCe0KDQkAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JHQntCg0JjQktCe0IjQlQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JHQntCg0JjQktCe0IgKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCR0J7QoNCa0J4KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JTQkNCd0JjQptCQCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQlNCj0KjQkNCdINCU0JjQn9CbINCY0J3Qkwor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0IjQkNCT0JjQptCQCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQiNCQ0J3QmtCeCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQmtCg0KHQotCQ0J0KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JzQmNCa0JAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCc0JjQmtCQCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQldCd0JAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JzQmNCb0J7QqAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JzQm9CQ0ILQkAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0JzQntCc0JjQoAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0J3QkNCU0JAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQoNCQ0JTQlQor0JHQm9CQ0JPQntCI0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCh0JXQoNCQ0KTQmNCd0JAKK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCh0J3QldCW0JDQndCQCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQodCK0JXQltCQ0J3QkAor0JHQm9CQ0JPQntCI0JXQktCY0Isg0KHQotCQ0J3QmtCeCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQodCi0JXQktCeCivQkdCb0JDQk9Ce0IjQldCS0JjQiyDQodCS0JXQotCa0J4KK9CR0JvQkNCT0J7QiNCV0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JHQm9CQ0JPQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0JvQkNCl0J4g0IjQntCW0JXQpAor0JHQm9CQ0J3QkNCg0JjQmiDQqNCQ0J3QlNCe0KAKK9CR0JvQkNCd0JDQoNCY0Jog0ILQo9Cg0JAKK9CR0JvQkNCd0JDQoNCY0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0JvQkNCd0JDQoNCY0Jog0JXQotCV0JvQmtCQCivQkdCb0JDQndCQ0KDQmNCaINCY0JvQntCd0JAKK9CR0JvQkNCd0JDQoNCY0Jog0IjQntCW0JXQpAor0JHQm9CQ0J3QkNCg0JjQmiDQm9CQ0JTQmNCh0JvQkNCSCivQkdCb0JDQndCQ0KDQmNCaINCe0JvQk9CQCivQkdCb0JDQndCQ0KDQmNCaINCh0KLQldCS0JDQnQor0JHQm9CQ0J3QkNCg0JjQmiDQotCY0JHQntCgCivQkdCb0JDQndCQ0KDQmNCaINCS0JDQm9CV0KDQmNCI0JAKK9CR0JvQkNCd0KPQqNCQINCR0KDQkNCd0JrQngor0JHQm9CQ0J3Qo9Co0JAg0JjQm9CY0IjQkAor0JHQm9CQ0J3Qo9Co0JAg0KDQkNCU0JUKK9CR0JvQkNCd0KPQqNCQINCS0JXQoNCQCivQkdCb0JDQndCj0KjQkCDQl9Ce0KDQkNCdCivQkdCb0JDQotCV0KjQmNCLINCc0JjQntCJ0JrQkAor0JHQm9CQ0KLQldCo0JjQiyDQoNCQ0IjQmtCeCivQkdCb0JDQotCd0JjQptCa0Jgg0JLQldCh0J3QkAor0JHQm9CV0KfQmNCLINCI0JXQm9CV0J3QkAor0JHQm9CV0KfQmNCLINCJ0KPQkdCY0KbQkAor0JHQm9CV0KfQmNCLINCc0JjQm9CQ0JTQmNCdCivQkdCb0JXQp9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CR0JvQldCn0JjQiyDQoNCQ0JTQntCh0JDQkiDQnNCgCivQkdCb0JXQp9CY0Isg0KHQkNCo0JAKK9CR0JvQldCl0Jsg0IjQntCS0JDQndCa0JAKK9CR0JvQmNCi0JLQkCDQgtCe0KDQgtCVCivQkdCb0JjQotCS0JAg0JHQoNCQ0J3QmtCeCivQkdCb0JjQl9CQ0J3QkNCmINCU0J7QkdCg0JjQktCe0IgKK9CR0JvQmNCX0JDQndCQ0KYg0JTQoNCQ0JPQntCJ0KPQkQor0JHQm9CY0JfQkNCd0JDQpiDQlNCj0KjQkNCdCivQkdCb0JjQl9CQ0J3QkNCmINCI0JXQm9Ca0JjQptCQCivQkdCb0JjQl9CQ0J3QkNCmINCb0JXQn9Ce0KHQkNCS0JAKK9CR0JvQmNCX0JDQndCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9CR0JvQmNCX0JDQndCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0JHQm9CY0JfQkNCd0JDQpiDQndCV0J3QkNCUCivQkdCb0JjQl9CQ0J3QkNCmINCh0JDQktCQCivQkdCb0JjQl9CQ0J3QkNCmINCS0KPQiNCY0KbQkAor0JHQm9Ce0JbQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQm9Cj0JzQldCd0KjQkNCI0J0g0JrQkNCg0JvQngor0JHQntCn0JDQnSDQmNCS0JDQnQor0JHQntCn0JrQntCgINCd0JjQmtCe0JvQkAor0JHQntCo0KfQkNCd0JjQnSDQkdCe0KjQmtCeCivQkdCe0KjQmtCY0Isg0JHQntCg0JrQkAor0JHQntCo0JrQmNCLINCc0JjQoNCI0JDQndCQCivQkdCe0KjQmtCY0Isg0J3QkNCi0JDQqNCQCivQkdCe0KjQmtCY0Isg0JfQntCg0JAKK9CR0J7QqNCa0J7QkiDQltCQ0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0JHQntCo0JrQntCSINCW0JjQktCe0IjQmNCdCivQkdCe0KjQmtCe0JIt0IjQkNCT0J7QlNCY0Isg0JfQntCg0JjQptCQCivQkdCe0KjQmtCe0JIg0InQo9CR0JjQndCa0JAKK9CR0J7QqNCa0J7QkiDQm9Cj0JrQkAor0JHQntCo0JrQntCSINCc0JjQm9CY0JLQntCI0JUKK9CR0J7QqNCa0J7QkiDQnNCY0JvQntCoCivQkdCe0KjQmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9CR0J7QqNCa0J7QkiDQodCQ0JLQmtCQCivQkdCe0KjQmtCe0JIg0KHQntCk0JjQiNCQCivQkdCe0KjQmtCe0JIg0KHQoNCV0KLQldCdCivQkdCe0KjQmtCe0JIg0KHQotCV0JLQkNCdCivQkdCe0KjQmtCe0JIg0KHQotCe0IjQkNCdCivQkdCe0KjQmtCe0JIg0JLQldCh0J3QkAor0JHQntCo0JrQntCSINCS0KPQiNCQ0JTQmNCdCivQkdCe0KjQmtCe0JLQmNCLINCW0JXQidCa0J4KK9CR0J7QqNCa0J7QktCY0Isg0JbQmNCS0JrQngor0JHQntCo0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQntCo0JrQntCS0JjQiyDQkNCb0JXQmtCh0JAKK9CR0J7QqNCa0J7QktCY0Isg0JDQm9CV0JrQodCQCivQkdCe0KjQmtCe0JLQmNCLINCQ0J3QgtCQCivQkdCe0KjQmtCe0JLQmNCLINCR0JjQidCQ0J3QkAor0JHQntCo0JrQntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JHQntCo0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQkdCe0KjQmtCe0JLQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9CR0J7QqNCa0J7QktCY0Isg0JHQntCT0JTQkNCdCivQkdCe0KjQmtCe0JLQmNCLINCR0J7QoNCY0KEKK9CR0J7QqNCa0J7QktCY0Isg0JHQo9CU0JjQnNCY0KAKK9CR0J7QqNCa0J7QktCY0Isg0KbQktCV0KLQmtCeCivQkdCe0KjQmtCe0JLQmNCLINCU0JDQndCY0JvQngor0JHQntCo0JrQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JHQntCo0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0J7QqNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CR0J7QqNCa0J7QktCY0Isg0JTQoNCQ0JPQntCI0JvQngor0JHQntCo0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkdCe0KjQmtCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CR0J7QqNCa0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JHQntCo0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQkdCe0KjQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CR0J7QqNCa0J7QktCY0Isg0JTQo9Co0JrQngor0JHQntCo0JrQntCS0JjQiyDQk9Ce0KDQkNCdCivQkdCe0KjQmtCe0JLQmNCLINCT0J7QoNCQ0J0KK9CR0J7QqNCa0J7QktCY0Isg0KXQldCU0JLQmNCT0JAKK9CR0J7QqNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JHQntCo0JrQntCS0JjQiyDQmtCg0KHQotCeCivQkdCe0KjQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JHQntCo0JrQntCS0JjQiyDQidCj0JHQmNCo0JAKK9CR0J7QqNCa0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9CR0J7QqNCa0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0J7QqNCa0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0J7QqNCa0J7QktCY0Isg0JzQmNCb0JXQktCQCivQkdCe0KjQmtCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CR0J7QqNCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JHQntCo0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQntCo0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQntCo0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQntCo0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQntCo0JrQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JHQntCo0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQntCo0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQkdCe0KjQmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQkdCe0KjQmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQkdCe0KjQmtCe0JLQmNCLINCd0JDQlNCQCivQkdCe0KjQmtCe0JLQmNCLINCd0JDQlNCQCivQkdCe0KjQmtCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQkdCe0KjQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQntCo0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9CR0J7QqNCa0J7QktCY0Isg0J3QntCS0JrQkAor0JHQntCo0JrQntCS0JjQiy3Qn9CV0KDQntCS0JjQiyDQmNCS0JDQndCQCivQkdCe0KjQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CR0J7QqNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCo0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQkdCe0KjQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CR0J7QqNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCo0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JHQntCo0JrQntCS0JjQiyDQoNCQ0KLQntCc0JjQoAor0JHQntCo0JrQntCS0JjQiyDQoNCe0KHQkAor0JHQntCo0JrQntCS0JjQiyDQodCQ0JLQkAor0JHQntCo0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JHQntCo0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCe0KjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7QqNCa0J7QktCY0Isg0KHQotCV0JLQkNCdINCQ0JTQktCe0JrQkNCiCivQkdCe0KjQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JHQntCo0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CR0J7QqNCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQntCo0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCe0KjQmtCe0JLQmNCLINCS0JXQidCa0J4KK9CR0J7QqNCa0J7QktCY0Isg0JLQm9CQ0JTQkAor0JHQntCo0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCe0KjQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CR0J7QqNCa0J7QktCh0JrQmCDQlNCe0IjQp9CY0J0KK9CR0J7QqNCa0J7QktCh0JrQmCDQoNCQ0JTQkAor0JHQntCo0IrQkNCn0JjQiyDQoNCQ0IjQmtCeCivQkdCe0KjQitCQ0Jog0ILQntCg0ILQlQor0JHQntCo0IrQkNCaINCC0KPQoNCQCivQkdCe0KjQitCQ0Jog0ILQo9Cg0J4KK9CR0J7QqNCK0JDQmiDQkNCd0JAKK9CR0J7QqNCK0JDQmiDQkdCe0JbQmNCU0JDQoAor0JHQntCo0IrQkNCaINCU0JDQoNCa0J4KK9CR0J7QqNCK0JDQmiDQlNCV0IjQkNCdCivQkdCe0KjQitCQ0Jog0JTQldCh0JDQndCa0JAKK9CR0J7QqNCK0JDQmiDQpNCV0KDQldCd0KYKK9CR0J7QqNCK0JDQmiDQmNCo0KLQktCQ0J0KK9CR0J7QqNCK0JDQmiDQiNCV0JvQldCd0JAKK9CR0J7QqNCK0JDQmiDQiNCV0JvQmNCm0JAKK9CR0J7QqNCK0JDQmiDQiNCV0JvQmNCm0JAKK9CR0J7QqNCK0JDQmiDQiNCj0JvQmtCQCivQkdCe0KjQitCQ0Jog0JrQkNCi0JDQoNCY0J3QkAor0JHQntCo0IrQkNCaINCa0J7QodCi0JAKK9CR0J7QqNCK0JDQmiDQidCj0JHQntCc0JjQoAor0JHQntCo0IrQkNCaINCJ0KPQkdCe0JzQmNCgCivQkdCe0KjQitCQ0Jog0JzQkNCT0JTQkNCb0JXQndCQCivQkdCe0KjQitCQ0Jog0JzQkNCg0JjQiNCQCivQkdCe0KjQitCQ0Jog0JzQmNCb0JDQnQor0JHQntCo0IrQkNCaINCc0JjQm9CV0J3QkAor0JHQntCo0IrQkNCaINCc0JjQm9Ce0KDQkNCUCivQkdCe0KjQitCQ0Jog0JzQmNCg0JrQngor0JHQntCo0IrQkNCaINCd0JXQgtCeCivQkdCe0KjQitCQ0Jog0J3QmNCa0J7Qm9CQCivQkdCe0KjQitCQ0Jog0J/QkNCS0JvQlQor0JHQntCo0IrQkNCaINCf0JXQotCQ0KAKK9CR0J7QqNCK0JDQmiDQoNCQ0JTQnNCY0JvQkAor0JHQntCo0IrQkNCaINCg0JDQlNCe0IjQmtCQCivQkdCe0KjQitCQ0Jog0KDQkNCU0J7QktCQ0J0KK9CR0J7QqNCK0JDQmiDQodCb0JDQktCa0JAKK9CR0J7QqNCK0JDQmiDQodCb0JDQktCa0J4KK9CR0J7QqNCK0JDQmiDQotCe0JzQmNCh0JvQkNCSCivQkdCe0KjQitCQ0Jog0JLQldCb0JjQnNCY0KAKK9CR0J7QqNCK0JDQmiDQktCY0JTQntCh0JDQktCQCivQkdCe0KjQitCQ0Jog0JLQmNCd0JrQkAor0JHQntCo0IrQkNCaINCS0J7QiNCY0KHQm9CQ0JIKK9CR0J7QqNCK0JDQmiDQl9Ce0KDQkNCdCivQkdCe0KjQitCQ0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQkdCe0KjQitCQ0JrQntCS0JjQiyDQkNCd0KLQntCd0JjQiNCQCivQkdCe0KjQitCQ0JrQntCS0JjQiyDQkdCY0InQkNCd0JAKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JHQntCo0IrQkNCa0J7QktCY0Isg0KbQktCY0IjQldCi0JjQnQor0JHQntCo0IrQkNCa0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0JHQntCo0IrQkNCa0J7QktCY0Isg0JrQntCg0J3QldCb0JjQiNCVCivQkdCe0KjQitCQ0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JHQntCo0IrQkNCa0J7QktCY0Isg0JzQkNCg0JjQptCQINCU0JjQn9CbINCe0JXQpgor0JHQntCo0IrQkNCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCc0JjQotCQ0KAKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCf0JDQktCQ0J4KK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCg0JDQotCa0J4KK9CR0J7QqNCK0JDQmtCe0JLQmNCLINCh0JjQndCY0KjQkAor0JHQntCo0IrQkNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCQCivQkdCe0IvQkNCdINCc0JDQoNCY0IjQkAor0JHQntCL0JXQoNCV0JMg0JfQo9CX0JDQndCQCivQkdCe0JbQkCDQn9CQ0JsKK9CR0J7QltCQ0J3QmNCLINCW0JjQmtCQCivQkdCe0JbQkNCd0JjQiyDQgtCe0KDQgtCVCivQkdCe0JbQkNCd0JjQiyDQkNCd0ILQldCb0JrQkAor0JHQntCW0JDQndCY0Isg0JTQo9Co0JDQnQor0JHQntCW0JDQndCY0Isg0JPQntCI0JrQngor0JHQntCW0JDQndCY0Isg0IjQldCb0JXQndCQCivQkdCe0JbQkNCd0JjQiyDQmtCe0KHQkAor0JHQntCW0JDQndCY0Isg0JzQmNCb0JjQptCQCivQkdCe0JbQkNCd0JjQiyDQnNCY0JvQntCg0JDQlAor0JHQntCW0JDQndCY0Isg0J3QldCS0JXQndCa0JAKK9CR0J7QltCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCQCivQkdCe0JbQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JHQntCW0JXQoCDQm9CQ0IjQntCoCivQkdCe0JbQldCgINCJ0KPQlNCV0JLQmNCiCivQkdCe0JbQldCgINCX0J7QoNCQCivQkdCe0JbQmNCn0JjQiyDQnNCY0JvQkNCdCivQkdCe0JbQmNCn0JjQiyDQnNCY0JvQldCd0JrQngor0JHQntCW0JjQp9CY0Isg0J/QldCi0JDQoAor0JHQntCW0JjQp9Ca0J7QktCY0Isg0IjQntCS0JDQnQor0JHQntCW0JjQp9Ca0J7QktCY0Isg0J3QldCU0JXQidCa0J4g0JTQoAor0JHQntCW0JjQp9Ca0J7QktCY0Isg0J3QldCg0JAKK9CR0J7QltCY0KfQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CR0J7QltCY0KfQmtCe0JLQmNCLINCX0J7QoNCa0JAKK9CR0J7QltCY0Isg0KfQldCU0J7QnNCY0KAKK9CR0J7QltCY0Isg0JbQkNCg0JrQngor0JHQntCW0JjQiyDQltCY0JLQkNCd0JAKK9CR0J7QltCY0Isg0JbQmNCS0JrQngor0JHQntCW0JjQiyDQgtCe0KDQgtCVCivQkdCe0JbQmNCLINCC0KPQoNCC0JjQndCQCivQkdCe0JbQmNCLINCC0KPQoNCQCivQkdCe0JbQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0JbQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0JbQmNCLINCQ0J3QgtCV0JvQmtCQCivQkdCe0JbQmNCLINCR0J7QqNCa0J4KK9CR0J7QltCY0Isg0JHQntCW0JDQndCQCivQkdCe0JbQmNCLINCR0J7QoNCY0JLQntCICivQkdCe0JbQmNCLINCR0J7QoNCa0J4KK9CR0J7QltCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0JbQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCW0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JHQntCW0JjQiyDQlNCV0IjQngor0JHQntCW0JjQiyDQlNCV0KHQkNCd0JrQkAor0JHQntCW0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0J7QltCY0Isg0JTQoNCQ0JPQkNCdCivQkdCe0JbQmNCLINCU0KDQkNCT0JDQnQor0JHQntCW0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0J7QltCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JHQntCW0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQkdCe0JbQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CR0J7QltCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JHQntCW0JjQiyDQlNCj0KjQkNCdCivQkdCe0JbQmNCLINCT0JDQktCg0J4KK9CR0J7QltCY0Isg0JPQntCI0JrQngor0JHQntCW0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQntCW0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQntCW0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQkdCe0JbQmNCLINCY0JvQmNCI0JAKK9CR0J7QltCY0Isg0JjQktCQ0J0KK9CR0J7QltCY0Isg0IjQntCS0JDQndCa0JAKK9CR0J7QltCY0Isg0IjQntCS0JDQnQor0JHQntCW0JjQiyDQiNCe0JLQkNCdCivQkdCe0JbQmNCLINCI0J7QktCY0KbQkAor0JHQntCW0JjQiyDQiNCj0JvQmtCQCivQkdCe0JbQmNCLINCa0KHQldCd0JjQiNCQCivQkdCe0JbQmNCLINCb0JDQl9CQ0KAKK9CR0J7QltCY0Isg0JvQkNCX0JDQoAor0JHQntCW0JjQiyDQidCY0InQkNCd0JAKK9CR0J7QltCY0Isg0JzQkNCg0JAKK9CR0J7QltCY0Isg0JzQkNCg0JjQndCa0J4KK9CR0J7QltCY0Isg0JzQkNCg0JrQngor0JHQntCW0JjQiyDQnNCQ0KDQmtCeCivQkdCe0JbQmNCLINCc0JDQoNCa0J4KK9CR0J7QltCY0Isg0JzQkNCi0JjQiNCQCivQkdCe0JbQmNCLINCc0JjQm9CQ0J0KK9CR0J7QltCY0Isg0JzQmNCb0JDQnQor0JHQntCW0JjQiyDQnNCY0JvQkNCdCivQkdCe0JbQmNCLINCc0JjQm9CQ0J0KK9CR0J7QltCY0Isg0JzQmNCb0JDQnQor0JHQntCW0JjQiyDQnNCY0JvQkNCdCivQkdCe0JbQmNCLINCc0JjQm9CV0JLQkAor0JHQntCW0JjQiyDQnNCY0JvQlQor0JHQntCW0JjQiyDQnNCY0JvQmNCh0JDQkgor0JHQntCW0JjQiyDQnNCY0InQmtCeCivQkdCe0JbQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCe0JbQmNCLINCc0JjQntCU0KDQkNCTCivQkdCe0JbQmNCLINCc0JjQoNCI0JDQndCQCivQkdCe0JbQmNCLINCc0JjQoNCa0J4KK9CR0J7QltCY0Isg0JzQmNCg0JrQngor0JHQntCW0JjQiyDQnNCe0JzQp9CY0JvQngor0JHQntCW0JjQiyDQnNCe0JzQp9CY0JvQngor0JHQntCW0JjQiyDQndCV0ILQngor0JHQntCW0JjQiyDQndCV0J3QkNCUCivQkdCe0JbQmNCLINCd0JXQndCQ0JQKK9CR0J7QltCY0Isg0J3QmNCa0J7Qm9CQCivQkdCe0JbQmNCLINCe0JvQk9CQCivQkdCe0JbQmNCLINCe0JfQoNCV0J0KK9CR0J7QltCY0Isg0J/QkNCS0JvQlSDQlNCY0J/QmyDQmNCd0JMKK9CR0J7QltCY0Isg0J/QldCg0JAKK9CR0J7QltCY0Isg0J/QldCi0JDQoAor0JHQntCW0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JHQntCW0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JHQntCW0JjQiy3QoNCQ0JTQntCc0JjQoNCe0JLQmNCLINCI0J7QmtCQCivQkdCe0JbQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCe0JbQmNCLINCg0JDQiNCa0J4KK9CR0J7QltCY0Isg0KDQkNCd0JrQngor0JHQntCW0JjQiyDQodCQ0IrQkAor0JHQntCW0JjQiyDQodCQ0JLQkAor0JHQntCW0JjQiyDQodCQ0JLQkAor0JHQntCW0JjQiyDQodCQ0JLQngor0JHQntCW0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCe0JbQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7QltCY0Isg0KHQoNCV0KLQldCdCivQkdCe0JbQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9CR0J7QltCY0Isg0KHQotCV0JLQkNCdCivQkdCe0JbQmNCLINCh0KLQldCS0J4KK9CR0J7QltCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JHQntCW0JjQiyDQotCQ0JzQkNCg0JAKK9CR0J7QltCY0Isg0KLQkNCi0IjQkNCd0JAKK9CR0J7QltCY0Isg0KLQldCe0JTQntCgCivQkdCe0JbQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CR0J7QltCY0Isg0JLQldCg0JjQptCQCivQkdCe0JbQmNCLLdCS0JjQm9CY0Isg0IjQldCb0JXQndCQCivQkdCe0JbQmNCLINCS0JvQkNCU0JDQndCa0JAKK9CR0J7QltCY0Isg0JLQm9CQ0JTQkAor0JHQntCW0JjQiyDQktCb0JDQlNCQCivQkdCe0JbQmNCLINCS0JvQkNCU0JAKK9CR0J7QltCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQkdCe0JbQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9CR0J7QltCY0Isg0JfQm9CQ0KLQkAor0JHQntCW0JjQiyDQl9Cb0JDQotCY0KbQkAor0JHQntCW0JjQiyDQl9Ce0KDQkNCdCivQkdCe0JbQmNCLINCX0J7QoNCQ0J0KK9CR0J7QltCY0Isg0JfQntCg0JDQnQor0JHQntCW0JjQiyDQl9Ce0KDQkNCdCivQkdCe0JbQmNCLINCX0J7QoNCa0JAKK9CR0J7QltCY0JTQkNCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0JbQmNCU0JDQoCDQkdCe0KDQmNCh0JvQkNCSCivQkdCe0JbQmNCU0JDQoCDQkdCe0KDQmNCh0JvQkNCSCivQkdCe0JbQmNCU0JDQoC3QmtCg0JjQltCQ0Jog0JjQoNCV0J3QkAor0JHQntCW0JjQlNCQ0KAg0InQo9CR0J7QnNCY0KAKK9CR0J7QltCY0JTQkNCg0JXQktCY0Isg0ILQo9Cg0JAKK9CR0J7QltCY0JTQkNCg0JXQktCY0Isg0JTQldCh0JDQndCa0JAKK9CR0J7QltCY0JTQkNCg0JXQktCY0Isg0J/QldCg0KHQmNCU0JAKK9CR0J7QltCY0JTQkNCg0JXQktCY0Isg0JLQldCJ0JrQngor0JHQntCW0JjQnSDQltCQ0KDQmtCeCivQkdCe0JbQmNCdINCC0J7QoNCC0JUKK9CR0J7QltCY0J0g0JTQkNCd0JjQptCQCivQkdCe0JbQmNCdINCU0JDQoNCY0J3QmtCQCivQkdCe0JbQmNCdINCU0JXQodCQ0J3QmtCQCivQkdCe0JbQmNCdINCY0JPQitCQ0KIg0JTQmNCf0Jsg0JjQndCTCivQkdCe0JbQmNCdINCY0KHQmNCU0J7QoAor0JHQntCW0JjQnSDQiNCV0JvQmNCm0JAKK9CR0J7QltCY0J0g0IjQo9Cb0JjQiNCQ0J3QkAor0JHQntCW0JjQnSDQmtCg0JjQodCi0JjQndCQCivQkdCe0JbQmNCdINCa0KHQldCd0JjQiNCQCivQkdCe0JbQmNCdINCb0JDQl9CQ0KAKK9CR0J7QltCY0J0g0InQo9CR0JjQptCQCivQkdCe0JbQmNCdINCJ0KPQkdCY0KbQkAor0JHQntCW0JjQnSDQnNCY0JvQntCoCivQkdCe0JbQmNCdINCc0JjQm9Ce0KgKK9CR0J7QltCY0J0g0JzQmNCg0J7QodCb0JDQkgor0JHQntCW0JjQnSDQndCY0JrQntCb0JAKK9CR0J7QltCY0J0g0J/QkNCS0JvQlQor0JHQntCW0JjQnSDQn9CV0KLQkNCgCivQkdCe0JbQmNCdINCg0JDQlNCY0JLQntCICivQkdCe0JbQmNCdINCg0JDQlNCe0JLQkNCdCivQkdCe0JbQmNCdINCh0JjQndCY0KjQkAor0JHQntCW0JjQnSDQodCb0JDQktCY0KbQkAor0JHQntCW0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQkdCe0JbQmNCdINCh0KLQldCS0JDQnQor0JHQntCW0JjQnSDQodCi0JXQktCQ0J0KK9CR0J7QltCY0J0g0KHQotCV0JLQkNCdCivQkdCe0JbQmNCd0JjQiyDQoNCj0JbQmNCm0JAKK9CR0J7QltCY0J3QntCS0KHQmtCYINCQ0J3Qk9CV0JsKK9CR0J7QltCY0J3QntCS0KHQmtCYINCg0JjQodCi0JUKK9CR0J7QltCY0J3QntCS0KHQmtCYINCi0KDQkNCI0JDQnQor0JHQntCW0IjQkNCaINCk0KDQkNCK0J4KK9CR0J7QltCI0JDQmiDQnNCY0JrQkAor0JHQntCW0IjQkNCa0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9CR0J7QltCeINCV0JvQldCe0J3QntCg0JAKK9CR0J7QltCe0JrQmCDQldCg0J3QlQor0JHQntCW0J7QmtCYINCY0JvQntCd0JAKK9CR0J7QltCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQkdCe0JbQntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JHQntCW0J7QktCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQkdCe0JbQntCS0JjQiyDQk9Ce0KDQp9CY0J0KK9CR0J7QltCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQkdCe0JbQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CR0J7QltCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdINCU0JjQn9CbINCY0J3Qkwor0JHQntCW0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9CR0J7QltCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCe0JbQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JHQntCW0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0J7QltCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQkdCe0JbQntCS0JjQiyDQoNCQ0KjQmtCeCivQkdCe0JbQntCS0JjQiyDQodCb0JDQktCa0J4KK9CR0J7QltCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQkdCe0JbQntCS0JjQiyDQodCi0JDQndCa0JAKK9CR0J7QltCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQkdCe0JbQntCS0JjQiyDQktCV0KDQkAor0JHQntCW0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQntCW0KPQm9CY0Isg0JDQndCC0JXQm9Ca0J4KK9CR0J7QltCj0JvQmNCLINCY0JLQkNCdCivQkdCe0JbQo9Cb0JjQiyDQmNCS0JjQptCQCivQkdCe0JbQo9Cb0JjQiyDQodCY0J3QmNCo0JAKK9CR0J7QltCj0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQkdCe0ILQkCDQgtCj0KDQkAor0JHQntCC0JAg0JDQndCU0KDQmNCI0JAKK9CR0J7QgtCQINCQ0J3QlNCg0JjQiNCQCivQkdCe0ILQkCDQkNCd0JTQoNCY0IjQkAor0JHQntCC0JAg0JjQktCQ0J0KK9CR0J7QgtCQINCY0JLQkNCdCivQkdCe0ILQkCDQiNCe0JLQkNCdCivQkdCe0ILQkCDQodCQ0KjQkAor0JHQntCC0JAg0KHQotCV0JLQkNCdCivQkdCe0ILQkNCd0JDQpiDQiNCV0JvQldCd0JAKK9CR0J7QgtCQ0J3QkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9CR0J7QgtCQ0J3QkNCmINCX0JTQoNCQ0JLQmtCeCivQkdCe0ILQkNCd0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0JDQoNCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQkdCe0JDQoNCe0JIg0IjQntCS0JDQnQor0JHQntCQ0KDQntCSINCa0JDQotCQ0KDQmNCd0JAKK9CR0J7QkNCg0J7QkiDQnNCY0JvQkNCd0JrQkAor0JHQntCRINCI0KPQodCi0JjQndCQCivQkdCe0JHQkNCaINCY0KjQotCS0JDQnQor0JHQntCR0JDQmiDQmtCQ0KLQmNCm0JAKK9CR0J7QkdCQ0J0g0ILQldCg0IIKK9CR0J7QkdCQ0J0g0JzQkNCg0JjQiNCQCivQkdCe0JHQkNCdINCc0JXQoNCY0JzQkAor0JHQntCR0JDQnSDQndCV0JTQldCJ0JrQngor0JHQntCR0JDQnSDQodCi0JjQn9CVCivQkdCe0JHQkNCdINCh0KPQl9CQ0J3QkAor0JHQntCR0JDQnS3QktCQ0KDQndCj0KEg0JXQoNCW0JXQkdCV0KIKK9CR0J7QkdCQ0Iog0JjQnNCg0JUKK9CR0J7QkdCQ0KAg0JHQntCo0JrQngor0JHQntCR0JDQoNCV0JLQmNCLINCg0KPQltCY0KbQkAor0JHQntCR0JXQoNCY0Isg0J7Qm9CT0JAKK9CR0J7QkdCV0KDQmNCLINCX0J7QoNCa0JAKK9CR0J7QkdCY0Isg0ILQntCg0ILQlQor0JHQntCR0JjQiyDQgtCe0KDQgtCVCivQkdCe0JHQmNCLINCR0J7Qk9CU0JDQnQor0JHQntCR0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7QkdCY0Isg0JjQktCQ0J0KK9CR0J7QkdCY0Isg0IjQntCh0JjQnwor0JHQntCR0JjQiyDQmtCQ0IjQkAor0JHQntCR0JjQiyDQidCj0JHQntCc0JjQoAor0JHQntCR0JjQiyDQnNCY0JvQkNCd0JrQkAor0JHQntCR0JjQiyDQnNCY0JvQmNCm0JAKK9CR0J7QkdCY0Isg0JzQm9CQ0JTQldCdCivQkdCe0JHQmNCLINCd0JXQndCQ0JQKK9CR0J7QkdCY0Isg0KDQo9CW0JjQptCQCivQkdCe0JHQmNCLINCi0JDQitCQCivQkdCe0JHQmNCd0JDQpiDQiNCe0KHQmNCfCivQkdCe0JHQmNCd0JDQpiDQm9Cj0KbQmNCI0JAKK9CR0J7QkdCY0J3QldCmINCI0J7QodCY0J8KK9CR0J7QkdCJ0JDQk9Ce0JLQmNCLINCR0J7Qk9Ce0KHQm9CQ0JIKK9CR0J7QkdCe0Kgg0KHQotCQ0J3QmtCeCivQkdCe0KYg0KHQotCV0JLQkNCdCivQkdCe0KbQkCDQlNCQ0J3QlQor0JHQntCm0JAg0JTQo9Co0JDQnQor0JHQntCm0JAg0JzQmNCb0JUKK9CR0J7QptCQINCc0JjQm9Ce0KgKK9CR0J7QptCe0J3QkNCU0Jgg0JzQkNCg0KLQntCdCivQkdCe0I/QntCd0Jgg0JPQmNCX0JXQm9CQCivQkdCe0I/QntCd0Jgg0KHQotCV0JLQkNCdCivQkdCe0JTQkCDQiNCe0JLQkNCdCivQkdCe0JTQkNCa0J7QqCDQiNCe0KHQmNCfCivQkdCe0JTQkNCa0J7QqCDQodCi0IjQldCf0JDQnQor0JHQntCU0JXQk9Cg0JDQiNCQ0KYg0KHQntCk0JjQiNCQCivQkdCe0JTQmCDQldCg0JbQldCR0JXQogor0JHQntCU0Jgg0IjQkNCh0JzQmNCd0JAKK9CR0J7QlNCYINCb0JDQiNCe0KgKK9CR0J7QlNCYINCb0JDQodCb0J4KK9CR0J7QlNCYINCc0JjQpdCQ0IjQm9CeCivQkdCe0JTQmNCoINCI0J7QltCV0KQKK9CR0J7QlNCY0Kgg0JzQmNCb0JjQptCQCivQkdCe0JTQmNCg0J7QltCQINCf0JXQotCQ0KAKK9CR0J7QlNCY0KDQntCW0JAg0KDQkNCU0JjQktCe0IgKK9CR0J7QlNCY0KDQntCT0JAg0IjQntCS0JDQnQor0JHQntCU0JjQoNCe0JPQkCDQnNCQ0KDQmNCI0JAKK9CR0J7QlNCY0KDQntCT0JAg0J3QmNCa0J4KK9CR0J7QlNCY0KDQntCT0JAg0J/QoNCV0JTQoNCQ0JMKK9CR0J7QlNCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCe0JTQndCQ0KAg0KjQkNCd0JTQntCgCivQkdCe0JTQndCQ0KAg0KDQmNCh0KLQkAor0JHQntCU0J3QkNCgINCh0KLQldCS0JDQnQor0JHQntCU0J3QkNCgINCS0JXQoNCY0KbQkAor0JHQntCU0J4g0JjQqNCi0JLQkNCdCivQkdCe0JTQniDQmtCQ0KDQntCJCivQkdCe0JTQniDQnNCQ0KDQmNCI0JAKK9CR0J7QlNCeINCc0JDQoNCY0IjQkAor0JHQntCU0J4g0JzQkNCi0JjQiNCQCivQkdCe0JTQniDQodCi0JXQktCQ0J0KK9CR0J7QlNCe0KfQmCDQiNCe0JbQldCkCivQkdCe0JTQntCb0J4g0KjQkNCd0JTQntCgCivQkdCe0JTQntCb0J4g0JjQqNCi0JLQkNCdCivQkdCe0JTQntCK0Jgg0JrQkNCg0JvQngor0JHQntCU0J7QoCDQkNCd0KLQntCdCivQkdCe0JTQntCgINCQ0J3QotCj0J0KK9CR0J7QlNCe0KAg0JHQntCh0JjQidCa0JAKK9CR0J7QlNCe0KAg0KTQoNCQ0IrQkAor0JHQntCU0J7QoCDQpNCg0JDQitCQCivQkdCe0JTQntCgINCY0KjQotCS0JDQnQor0JHQntCU0J7QoCDQiNCQ0J3QntCoCivQkdCe0JTQntCgINCI0J7QodCY0J8KK9CR0J7QlNCe0KAg0J/QldCi0JDQoAor0JHQntCU0J7QoCDQodCY0J3QmNCo0JAKK9CR0J7QlNCg0JUg0JjQqNCi0JLQkNCdCivQkdCe0JTQoNCY0Kct0KXQldCg0IvQkNCdINCQ0KDQkNCd0JrQkAor0JHQntCU0KDQmNCnINCc0JjQpdCQ0IjQm9CeCivQkdCe0JTQoNCY0Kcg0KHQotCV0JLQkNCdCivQkdCe0JTQoNCY0Kcg0JLQldCh0J3QkAor0JHQntCU0KDQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCe0JTQoNCe0JbQkCDQkdCg0JDQndCa0J4KK9CR0J7QlNCg0J7QltCQINCe0JvQk9CQCivQkdCe0JTQoNCe0JbQmNCLINCY0JvQmNCI0JAKK9CR0J7QlNCg0J7QltCY0Isg0JjQm9CY0IjQkAor0JHQntCU0KDQntCW0JjQiyDQiNCe0JLQkNCdCivQkdCe0JTQoNCe0JbQmNCLINCc0JjQm9CQ0J0KK9CR0J7QlNCg0J7QltCY0Isg0KHQotCV0JLQkNCdCivQkdCe0JTQo9Cb0JjQiyDQqNCi0JXQpNCQ0J3QmNCI0JAKK9CR0J7QlNCj0JvQmNCLINCI0JXQm9CV0J3QkAor0JHQntCU0KPQm9CY0Isg0J/QldCi0JDQoAor0JHQntCU0KPQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCU0KPQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCU0JLQkNCYINCI0JDQndCa0J4KK9CR0J7Qk9CQ0KDQntCo0Jgg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCT0JDQoNCe0KjQmtCYINCQ0J3QlNCg0JjQiNCQCivQkdCe0JPQkNCi0JjQndCe0KHQmtCYINCi0J7QnNCY0KHQm9CQ0JIKK9CR0J7Qk9CQ0JLQkNCmINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9CR0J7Qk9CQ0JLQkNCmINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCT0JDQktCQ0KYg0JTQoNCQ0JPQmNCm0JAKK9CR0J7Qk9CQ0JLQkNCmINCI0JDQlNCg0JDQndCa0JAKK9CR0J7Qk9CQ0JLQkNCmINCc0JjQoNCI0JDQndCQCivQkdCe0JPQlNCQ0J0g0JDQndCU0KDQkNCoCivQkdCe0JPQlNCQ0J0g0JHQmNCJ0JDQndCQCivQkdCe0JPQlNCQ0J0g0JTQo9Co0JDQnQor0JHQntCT0JTQkNCdINCY0KjQotCS0JDQnQor0JHQntCT0JTQkNCdINCY0JzQoNCVCivQkdCe0JPQlNCQ0J0g0JjQktCQ0J0KK9CR0J7Qk9CU0JDQnSDQiNCe0KHQmNCfCivQkdCe0JPQlNCQ0J0g0IjQntCh0JjQnwor0JHQntCT0JTQkNCdINCc0JDQndCVCivQkdCe0JPQlNCQ0J0t0JzQmNCI0JjQnSDQlNCj0KjQkNCd0JrQkAor0JHQntCT0JTQkNCdINCc0JjQm9Ca0JAKK9CR0J7Qk9CU0JDQnSDQndCY0JrQntCb0JAKK9CR0J7Qk9CU0JDQnSDQodCi0JXQktCQ0J0KK9CR0J7Qk9CU0JDQnSDQodCi0JXQktCQCivQkdCe0JPQlNCQ0J0g0JLQldCg0JjQptCQCivQkdCe0JPQlNCQ0J0g0JfQntCg0JDQnQor0JHQntCT0JTQkNCd0KTQmCDQqNCQ0J3QlNCe0KAg0J3QntCS0JjQndCQ0KAKK9CR0J7Qk9CU0JDQndCk0Jgg0JzQkNCg0JjQndCa0J4KK9CR0J7Qk9CU0JDQndCe0JIt0JDQndCi0J7QndCY0Isg0JHQmNCJ0JDQndCQCivQkdCe0JPQlNCQ0J3QntCSINCR0JjQodCV0KDQmtCQCivQkdCe0JPQlNCQ0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkiDQlNCgINCf0KDQntCkCivQkdCe0JPQlNCQ0J3QntCSINCR0KDQkNCd0JrQkCDQlNCgINCb0JXQmtCQ0KAKK9CR0J7Qk9CU0JDQndCe0JIg0JTQkNCd0JjQm9CeCivQkdCe0JPQlNCQ0J3QntCSINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQntCT0JTQkNCd0J7QkiDQlNCg0JDQk9CQ0J0KK9CR0J7Qk9CU0JDQndCe0JIg0JTQo9Co0JDQnQor0JHQntCT0JTQkNCd0J7Qki3QpdCY0Jsg0JTQntCR0KDQmNCb0JAKK9CR0J7Qk9CU0JDQndCe0JIg0JjQoNCc0JAKK9CR0J7Qk9CU0JDQndCe0JIg0JjQktCQ0J0KK9CR0J7Qk9CU0JDQndCe0JIg0JvQkNCX0JDQoAor0JHQntCT0JTQkNCd0J7QkiDQnNCQ0KDQmNCm0JAKK9CR0J7Qk9CU0JDQndCe0JIg0JzQmNCb0JDQnQor0JHQntCT0JTQkNCd0J7QkiDQnNCY0JvQldCd0JAKK9CR0J7Qk9CU0JDQndCe0JIg0JzQmNCb0J7QqAor0JHQntCT0JTQkNCd0J7QkiDQnNCY0JvQntCg0JDQlAor0JHQntCT0JTQkNCd0J7QkiDQndCQ0JTQkAor0JHQntCT0JTQkNCd0J7QkiDQntCb0JPQkAor0JHQntCT0JTQkNCd0J7QkiDQn9CV0KLQkNCgCivQkdCe0JPQlNCQ0J3QntCSINCh0JvQkNCS0JrQngor0JHQntCT0JTQkNCd0J7QkiDQodCb0JDQktCd0JAKK9CR0J7Qk9CU0JDQndCe0JIg0KHQnNCY0InQkAor0JHQntCT0JTQkNCd0J7QkiDQodCi0JDQndCa0J4KK9CR0J7Qk9CU0JDQndCe0JIg0KHQotCV0JLQkNCdCivQkdCe0JPQlNCQ0J3QntCSINCh0KLQldCS0JDQnQor0JHQntCT0JTQkNCd0J7QkiDQl9Ce0KDQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQltCY0JLQkNCdINCc0KAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCC0KPQoNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JDQndCa0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCR0JvQkNCT0J7QiNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkdCe0KDQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCT0JTQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JHQntCT0JTQkNCd0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IgKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQntCT0JTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQlNCj0KjQmtCeCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQldCi0JXQm9Ca0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCT0JXQlNCV0J7QnQor0JHQntCT0JTQkNCd0J7QktCY0Isg0JPQntCI0JrQngor0JHQntCT0JTQkNCd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCY0JvQntCd0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCY0JLQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQiNCe0JLQmNCm0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCJ0KPQkdCY0KHQkNCSCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JDQoNCY0J3QkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JzQmNCL0J4KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0JvQmtCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0JHQntCT0JTQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCY0KLQkNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCd0JDQlNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQndCe0JLQkNCaCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQn9CQ0IjQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0JHQntCT0JTQkNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0JHQntCT0JTQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0J/QoNCS0J7QodCb0JDQkgor0JHQntCT0JTQkNCd0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQoNCQ0J3QmtCeCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQoNCQ0KLQntCc0JjQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0KDQo9CW0JjQptCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4g0JzQoCDQn9Cg0JDQktCd0JjQmgor0JHQntCT0JTQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAg0J/QoNCe0KTQldCh0J7QoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCT0JTQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCT0JTQkNCd0J7QktCY0Isg0KHQntCk0JjQiNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQodCe0IrQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCh0KLQldCS0J4KK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JHQntCT0JTQkNCd0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQktCQ0IjQkAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JLQkNCh0JAKK9CR0J7Qk9CU0JDQndCe0JLQmNCLINCS0JXQoNCQCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQktCY0KLQntCc0JjQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQntCT0JTQkNCd0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQkdCe0JPQlNCQ0J3QntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JHQntCT0JTQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JHQntCT0JTQkNCd0J7QktCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0J7Qk9CU0JDQndCe0JLQodCa0Jgg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCT0JXQotCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JHQntCT0JXQotCY0Isg0KHQkNCK0JAKK9CR0J7Qk9CY0KfQldCS0JjQiyDQltCY0JLQmtCeCivQkdCe0JPQmNCn0JXQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9CR0J7Qk9CY0KfQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0J7Qk9CY0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQkdCe0JPQmNCn0JXQktCY0Isg0JPQldCe0KDQk9CY0IjQlQor0JHQntCT0JjQp9CV0JLQmNCLINCa0J7QodCi0JDQlNCY0J3QmtCQCivQkdCe0JPQmNCn0JXQktCY0Isg0JrQoNCh0KLQkAor0JHQntCT0JjQp9CV0JLQmNCLINCJ0KPQkdCY0KjQkAor0JHQntCT0JjQp9CV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JHQntCT0JjQp9CV0JLQmNCLINCc0JDQoNCY0IjQkAor0JHQntCT0JjQp9CV0JLQmNCLINCc0JjQm9CY0KbQkAor0JHQntCT0JjQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQntCT0JjQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQntCT0JjQp9CV0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQkdCe0JPQmNCn0JXQktCY0Isg0JfQntCg0JrQkAor0JHQntCT0JjQqNCY0Isg0JDQndCU0KDQmNCI0JAKK9CR0J7Qk9CY0KjQmNCLINCk0KDQkNCK0JAKK9CR0J7Qk9CY0KjQmNCLINCI0J7QodCY0J8KK9CR0J7Qk9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7Qk9CY0Isg0JDQndCC0JXQm9Ca0JAKK9CR0J7Qk9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0JPQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQntCT0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0J7Qk9CY0Isg0JTQo9Co0JDQndCa0JAKK9CR0J7Qk9CY0Isg0JjQm9CU0JjQmtCeCivQkdCe0JPQmNCLINCI0JXQm9CV0J3QkAor0JHQntCT0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JHQntCT0JjQiyDQiNCe0JLQkNCdCivQkdCe0JPQmNCLINCJ0KPQkdCY0KbQkAor0JHQntCT0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0J7Qk9CY0Isg0JzQmNCb0JDQnQor0JHQntCT0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQntCT0JjQiyDQodCe0KTQmNCI0JAKK9CR0J7Qk9CY0Isg0KHQoNCV0IvQmtCeCivQkdCe0JPQmNCLINCh0KLQldCS0JDQnQor0JHQntCT0JjQi9CV0JLQmNCLINCW0JXQidCa0JAKK9CR0J7Qk9CY0IvQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JHQntCT0JjQi9CV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCT0JjQi9CV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQntCT0JjQi9CV0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCe0JPQmNCL0JXQktCY0Isg0IjQldCb0JrQkAor0JHQntCT0JjQi9CV0JLQmNCLINCI0J7Qm9CV0KLQkAor0JHQntCT0JjQi9CV0JLQmNCLINCa0J7QndCh0KLQkNCd0KLQmNCdCivQkdCe0JPQmNCL0JXQktCY0Isg0JzQmNCb0JDQnQor0JHQntCT0J3QkNCgINCo0JDQndCU0J7QoAor0JHQntCT0J3QkNCgINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JHQntCT0J3QkNCgINCQ0J3QotCQ0JsKK9CR0J7Qk9Cd0JDQoCDQldCb0JjQl9CQ0JHQldCi0JAKK9CR0J7Qk9Cd0JDQoCDQldCb0JjQl9CQ0JHQldCi0JAKK9CR0J7Qk9Cd0JDQoCDQk9CY0JfQldCb0JAKK9CR0J7Qk9Cd0JDQoCDQiNCe0JbQldCkCivQkdCe0JPQndCQ0KAg0JrQkNCb0JzQkNCdCivQkdCe0JPQndCQ0KAg0JvQkNCI0J7QqAor0JHQntCT0J3QkNCgINCc0JDQoNCY0JAKK9CR0J7Qk9Cd0JDQoCDQnNCQ0KDQmNCI0JAKK9CR0J7Qk9Cd0JDQoCDQnNCY0KDQmtCeCivQkdCe0JPQndCQ0KAg0KDQntCX0JjQmtCQCivQkdCe0JPQndCQ0KAg0KHQmNCb0JDQoNCUCivQkdCe0JPQndCQ0KAg0KHQotCV0JLQkNCdINCU0KAKK9CR0J7Qk9Ce0IjQldCSINCW0JjQktCa0J4KK9CR0J7Qk9Ce0IjQldCS0JDQpiDQldCg0JbQldCR0JXQogor0JHQntCT0J7QiNCV0JLQkNCmINCI0J7QktCQ0J0KK9CR0J7Qk9Ce0IjQldCS0JjQiyDQkNCd0JPQldCb0JjQndCQCivQkdCe0JPQntCI0JXQktCY0Isg0JHQmNCJ0JDQndCQCivQkdCe0JPQntCI0JXQktCY0Isg0JHQntCW0J4KK9CR0J7Qk9Ce0IjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQkdCg0JDQndCa0J4KK9CR0J7Qk9Ce0IjQldCS0JjQiyDQlNCg0JDQk9CeCivQkdCe0JPQntCI0JXQktCY0Isg0IjQntCS0JDQndCa0JAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQm9CQ0JfQngor0JHQntCT0J7QiNCV0JLQmNCLINCJ0KPQkdCY0KHQkNCSCivQkdCe0JPQntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0JHQntCT0J7QiNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCe0JPQntCI0JXQktCY0Isg0JzQmNCi0JDQoAor0JHQntCT0J7QiNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQkdCe0JPQntCI0JXQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0JHQntCT0J7QiNCV0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQkdCe0JPQntCI0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQoNCQ0IjQmtCeCivQkdCe0JPQntCI0JXQktCY0Isg0KHQotCQ0J3QmNCI0JAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQotCe0JTQntCgCivQkdCe0JPQntCI0JXQktCY0Isg0JLQldCb0JjQnNCY0KAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQktCb0JDQlNCQCivQkdCe0JPQntCI0JXQktCY0Isg0JLQm9CQ0JTQmNCm0JAKK9CR0J7Qk9Ce0IjQldCS0JjQiyDQktCb0JDQiNCa0J4KK9CR0J7Qk9Ce0KHQkNCSINCc0JjQm9CQ0J0KK9CR0J7Qk9Ce0KHQkNCS0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQkdCe0JPQntCh0JDQktCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0JHQntCT0J7QodCQ0JLQkNCmINCX0JTQoNCQ0JLQmtCeCivQkdCe0JPQntCh0JDQktCJ0JXQkiDQiNCe0JLQkNCd0JrQkAor0JHQntCT0J7QodCQ0JLQidCV0JLQmNCLINCW0JDQoNCa0J4KK9CR0J7Qk9Ce0KHQkNCS0InQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7Qk9Ce0KHQkNCS0InQldCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0JHQntCT0J7QodCQ0JLQidCV0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JHQntCT0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQkdCe0JPQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JHQntCT0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQkdCe0JPQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQoCDQmNCd0JMKK9CR0J7Qk9Ce0KHQkNCS0InQldCS0JjQiyDQoNCQ0JTQlQor0JHQntCT0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9CR0J7Qk9Ce0KHQkNCS0InQldCS0JjQiyDQl9Cb0JDQotCQCivQkdCe0JPQntCS0JDQpiDQlNCe0JHQoNCe0KHQm9CQ0JLQkAor0JHQntCT0J7QktCQ0KYg0JTQoNCQ0JPQntCJ0KPQkQor0JHQntCT0J7QktCQ0KYg0JzQmNCb0JDQnSDQlNCgCivQkdCe0JPQntCS0JDQpiDQndCY0JrQntCb0JAKK9CR0J7Qk9Ce0JLQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7Qk9Ce0JLQmNCLINCY0JHQntCI0JAKK9CR0J7Qk9Ce0JLQmNCLINCc0JjQiNCeCivQkdCe0JPQntCS0JjQiyDQndCY0JrQntCb0JAKK9CR0J7Qk9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0JHQntCT0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQntCT0J7QktCY0Isg0JLQldCh0J3QkAor0JHQntCT0J7QktCY0Isg0JLQldCh0J3QkAor0JHQntCT0J7QktCY0Isg0JfQm9CQ0KLQmtCeCivQkdCe0JPQo9Cd0J7QktCY0Isg0ILQntCg0ILQlQor0JHQntCT0KPQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JHQntCT0KPQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JHQntCT0KPQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQntCT0KPQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CR0J7Qk9Cj0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCe0JPQo9Cd0J7QktCY0Isg0JLQm9CQ0JTQlQor0JHQntCT0KPQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CR0J7Qk9Cj0KIg0InQo9CR0J4KK9CR0J7Qk9Cj0KIg0J3QkNCU0JAKK9CR0J7QpdCQ0KfQldCaINCS0JDQm9Ci0JXQoAor0JHQntCl0JjQndCmINCR0J7QltCQ0J3QkAor0JHQntCl0J7QptCa0Jgg0IjQkNCd0J7QqAor0JHQntCl0J7QptCa0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0JHQntCl0J7QptCa0Jgg0J/QldCi0JDQoAor0JHQntCl0J7QptCa0Jgg0KDQntCR0JXQoNCiCivQkdCe0KXQntCi0JAg0KHQmNCb0JLQldCh0KLQldCgCivQkdCe0KXQo9CoINCI0J7QktCQ0J0KK9CR0J7QiNCn0JXQotCQINCT0J7QoNCQ0J0KK9CR0J7QiNCn0JXQktCh0JrQmCDQndCQ0KPQnAor0JHQntCI0KfQmNCLINCc0JjQm9CQ0J0KK9CR0J7QiNCQINCQ0J3QlNCg0JDQqAor0JHQntCI0JAg0JXQoNCY0JrQkAor0JHQntCI0JDQpiDQlNCQ0KTQmNCd0JAKK9CR0J7QiNCQ0KYg0KDQkNCU0JjQktCe0IgKK9CR0J7QiNCQ0JTQmNCLINCc0JjQoNCa0J4KK9CR0J7QiNCQ0JPQmNCLINCc0JDQoNCa0J4KK9CR0J7QiNCQ0J3QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0IjQkNCd0JjQiyDQkNCd0JAKK9CR0J7QiNCQ0J3QmNCLINCR0J7Qk9Ce0KHQkNCSCivQkdCe0IjQkNCd0JjQiyDQkdCe0KDQmNCa0JAKK9CR0J7QiNCQ0J3QmNCLINCR0J7QodCY0InQmtCQCivQkdCe0IjQkNCd0JjQiyDQkdCg0JDQndCVCivQkdCe0IjQkNCd0JjQiyDQkdCj0JTQmNCc0JjQoAor0JHQntCI0JDQndCY0Isg0JTQkNCg0JjQndCa0JAKK9CR0J7QiNCQ0J3QmNCLINCU0JXQodCQ0J3QmtCQCivQkdCe0IjQkNCd0JjQiyDQlNCg0JDQk9CY0KbQkAor0JHQntCI0JDQndCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JHQntCI0JDQndCY0Isg0JTQo9Co0JDQnQor0JHQntCI0JDQndCY0Isg0JTQo9Co0JDQnQor0JHQntCI0JDQndCY0Isg0JjQm9CY0IjQkAor0JHQntCI0JDQndCY0Isg0IjQldCb0JjQptCQCivQkdCe0IjQkNCd0JjQiyDQidCj0JHQngor0JHQntCI0JDQndCY0Isg0JzQmNCb0JDQnQor0JHQntCI0JDQndCY0Isg0JzQmNCb0JjQktCe0IgKK9CR0J7QiNCQ0J3QmNCLINCc0JjQm9CY0JLQntCICivQkdCe0IjQkNCd0JjQiyDQnNCY0JvQntCoCivQkdCe0IjQkNCd0JjQiyDQnNCY0JvQo9CdCivQkdCe0IjQkNCd0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQntCI0JDQndCY0Isg0KDQkNCd0JrQngor0JHQntCI0JDQndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQntCI0JDQndCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JHQntCI0JDQndCY0Isg0JLQldCb0JjQnNCY0KAKK9CR0J7QiNCQ0J3QmNCLINCX0J7QoNCQ0J0KK9CR0J7QiNCQ0J3QmNCLINCX0J7QoNCQCivQkdCe0IjQkNCd0J7QktCY0Isg0KfQldCU0J4KK9CR0J7QiNCQ0J3QntCS0JjQiyDQlNCj0KjQmtCeCivQkdCe0IjQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0JHQntCI0JDQndCe0JLQmNCLINCc0JDQoNCI0JDQnQor0JHQntCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCe0IjQkNCd0J7QktCY0Isg0KDQmNCh0KLQkNCdCivQkdCe0IjQkNCd0J7QktCY0Isg0JLQo9CI0JDQlNCY0J0KK9CR0J7QiNCQ0J3QntCS0JjQiyDQktCj0IjQkNCU0JjQnQor0JHQntCI0JDQoiDQiNCQ0J3QmtCeCivQkdCe0IjQkNCiINCc0JjQm9Ce0KDQkNCUCivQkdCe0IjQkNCiINCg0JDQlNCe0JzQmNCgCivQkdCe0IjQkNCiINCS0JXQodCV0JvQmNCdINCU0KAKK9CR0J7QiNCR0JjQiyDQoNCQ0IjQmtCeCivQkdCe0IjQmNCn0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JHQntCI0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQkdCe0IjQmNCLINCR0JvQkNCT0J7QotCQCivQkdCe0IjQmNCLINCR0J7Qk9CU0JDQnQor0JHQntCI0JjQiyDQkdCe0JPQntCJ0KPQkQor0JHQntCI0JjQiyDQkdCe0JPQntCc0JjQoAor0JHQntCI0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQkdCe0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQkdCe0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7QiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0IjQmNCLINCU0JDQndCY0KbQkAor0JHQntCI0JjQiyDQlNCV0IjQkNCdCivQkdCe0IjQmNCLINCU0KDQkNCT0JDQnQor0JHQntCI0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0J7QiNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CR0J7QiNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9CR0J7QiNCY0Isg0JTQo9Co0JDQndCa0JAKK9CR0J7QiNCY0Isg0JTQo9Co0JDQnQor0JHQntCI0JjQiyDQlNCj0KjQkNCdCivQkdCe0IjQmNCLINCT0J7QoNCU0JDQndCQINCU0KAKK9CR0J7QiNCY0Isg0JPQntCg0JTQkNCd0JAKK9CR0J7QiNCY0Isg0JPQntCg0JTQkNCd0JAKK9CR0J7QiNCY0Isg0JrQkNCi0JjQptCQCivQkdCe0IjQmNCLLdCa0J7Qm9CQ0KDQodCa0Jgg0JPQntCg0JTQkNCd0JAKK9CR0J7QiNCY0Isg0JvQkNCX0JDQoAor0JHQntCI0JjQiyDQnNCQ0KDQmtCeCivQkdCe0IjQmNCLINCc0JjQqNCa0J4KK9CR0J7QiNCY0Isg0JzQmNCb0JAKK9CR0J7QiNCY0Isg0JzQmNCb0JXQndCa0J4KK9CR0J7QiNCY0Isg0JzQmNCb0JjQlNCQ0KAKK9CR0J7QiNCY0Isg0JzQmNCb0J7QktCQ0J0KK9CR0J7QiNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CR0J7QiNCY0Isg0JzQmNCg0JrQngor0JHQntCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQkdCe0IjQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0JHQntCI0JjQiyDQoNCQ0IjQmtCeCivQkdCe0IjQmNCLINCg0JDQiNCa0J4KK9CR0J7QiNCY0Isg0KHQldCd0JrQkAor0JHQntCI0JjQiyDQodCd0JXQltCQ0J3QkAor0JHQntCI0JjQiyDQodCd0JXQltCQ0J3QkAor0JHQntCI0JjQiyDQodCe0IrQmNCm0JAKK9CR0J7QiNCY0Isg0KHQoNCV0KLQldCdCivQkdCe0IjQmNCLINCh0KLQldCS0JDQnQor0JHQntCI0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCe0IjQmNCLINCj0JPQidCV0KjQkAor0JHQntCI0JjQiyDQktCV0KDQkAor0JHQntCI0JjQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JHQntCI0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0IjQmtCY0Isg0JzQmNCb0JjQptCQCivQkdCe0IjQmtCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0IjQmtCeINCI0J7QktCQ0J3QmtCQCivQkdCe0IjQmtCeINCc0JDQoNCY0IjQkAor0JHQntCI0JrQniDQndCV0JLQldCd0JrQkAor0JHQntCI0JrQntCSINCk0JXQntCU0J7QoAor0JHQntCI0JrQntCSINCg0J7QnNCQ0J0KK9CR0J7QiNCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQkdCe0IjQmtCe0JLQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CR0J7QiNCa0J7QktCY0Isg0JvQldCd0JAKK9CR0J7QiNCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQkdCe0IjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7QiNCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQkdCe0IjQntCS0JjQiyDQkdCe0KjQmtCeCivQkdCe0IjQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CR0J7QiNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JHQntCI0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCe0IjQntCS0JjQiyDQlNCg0JDQk9Ce0IjQlQor0JHQntCI0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQkdCe0IjQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQkdCe0IjQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQkdCe0IjQntCS0JjQiyDQmNCa0J7QndCY0IjQkAor0JHQntCI0J7QktCY0Isg0IjQkNCa0J7Qkgor0JHQntCI0J7QktCY0Isg0InQo9CR0JjQptCQCivQkdCe0IjQntCS0JjQiyDQidCj0JHQngor0JHQntCI0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQntCI0J7QktCY0Isg0JzQmNCb0JDQnQor0JHQntCI0J7QktCY0Isg0JzQmNCb0JjQptCQCivQkdCe0IjQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CR0J7QiNCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0JHQntCI0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQntCI0J7QktCY0Isg0J3QkNCU0JAKK9CR0J7QiNCe0JLQmNCLINCd0J7QktCY0KbQkAor0JHQntCI0J7QktCY0Isg0J/QldCi0JDQoAor0JHQntCI0J7QktCY0Isg0KHQoNCV0KLQmtCeCivQkdCe0IjQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQkdCe0IjQntCS0JjQiyDQktCV0JvQmNCo0JAKK9CR0J7QiNCe0JLQmNCLINCS0JXQidCa0J4KK9CR0J7QiNCe0JLQmNCLINCS0JvQkNCU0JDQnQor0JHQntCI0J7QktCY0Isg0JLQntCI0JjQnQor0JHQntCI0J7QktCY0Isg0JfQntCg0JDQnQor0JHQntCa0KjQkNCdINCQ0J3QmtCQCivQkdCe0JrQqNCQ0J0g0JXQnNCY0JvQmNCI0JDQnQor0JHQntCa0KjQkNCdINCh0KLQntCI0JDQnQor0JHQntCa0KjQmNCLINCC0J7QmtCQCivQkdCe0JrQqNCY0Isg0IjQldCb0JXQndCQCivQkdCe0JrQqNCY0Isg0JvQkNCX0JDQoAor0JHQntCa0KjQmNCLINCc0JjQoNCI0JDQndCQCivQkdCe0JrQqNCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0J7QmtCo0JjQiyDQoNCQ0JTQkAor0JHQntCa0KjQmNCLINCg0JDQlNCe0IjQmtCQCivQkdCe0JrQqNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JHQntCa0KjQmNCLINCg0KPQltCV0J3QmtCQCivQkdCe0JrQqNCY0Isg0KHQntCa0JAKK9CR0J7QmtCQINCW0JjQktCa0JAKK9CR0J7QmtCQINCh0JjQm9CS0JjQngor0JHQntCa0JAg0KHQotCI0JXQn9CQ0J0KK9CR0J7QmtCQ0J0g0JDQndCC0JAKK9CR0J7QmtCQ0J0g0JDQndCY0KbQkAor0JHQntCa0JDQnSDQlNCg0JDQk9CeCivQkdCe0JrQkNCdINCc0JjQm9CQ0J0KK9CR0J7QmtCQ0J0g0JzQmNCb0JDQnQor0JHQntCa0JDQnSDQnNCY0JvQldCd0JAKK9CR0J7QmtCQ0J0g0JzQmNCg0JrQngor0JHQntCa0JDQnSDQndCY0JrQntCb0JAKK9CR0J7QmtCQ0J0g0KDQkNCU0JUKK9CR0J7QmtCQ0J0g0KDQkNCU0J7QnNCY0KAKK9CR0J7QmtCQ0J0g0KHQm9Ce0JHQntCU0JDQnQor0JHQntCa0JDQnSDQotCe0JzQmNCh0JvQkNCSCivQkdCe0JrQkNCdINCS0JXQidCa0J4KK9CR0J7QmtCQ0J3QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JHQntCa0JDQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQntCa0JjQiyDQlNCQ0J3QmNCb0J4KK9CR0J7QmtCY0Isg0JTQo9Co0JDQnQor0JHQntCa0JjQiyDQnNCY0JvQkNCdCivQkdCe0JrQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9CR0J7QmtCY0Isg0JLQmNCUCivQkdCe0JrQntCgINCC0J7QoNCC0JUg0JTQmNCf0Jsg0JjQndCTCivQkdCe0JrQntCgINCC0J7QoNCC0JUKK9CR0J7QmtCe0KAg0JPQkNCS0KDQkAor0JHQntCa0J7QoCDQm9CQ0KHQm9CeINCU0JjQn9CbINCY0J3Qkwor0JHQntCa0J7QoCDQm9CQ0KHQm9CeCivQkdCe0JrQntCgINCc0JDQoNCY0IjQkAor0JHQntCa0J7QoNCe0JIg0KLQkNCd0JDQodCY0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9CR0J7QmtCj0J0g0JTQo9CR0KDQkNCS0JrQkAor0JHQntCa0KPQnSDQndCe0JLQkNCaCivQkdCe0JrQo9CdINCf0JXQotCQ0KAKK9CR0J7QmtCj0J0g0KHQn9CQ0KHQmNCI0JAKK9CR0J7QmtCj0J0g0KHQotCV0JLQkAor0JHQntCa0KPQnSDQktCb0JDQlNCY0JzQmNCgCivQkdCe0JvQkNCd0J7QktCY0Isg0KDQkNCI0JrQkAor0JHQntCb0JTQmNCW0JDQoCDQiNCe0JbQldCkCivQkdCe0JvQlNCY0JbQkNCgINCb0JDQodCb0J4KK9CR0J7Qm9CU0JjQnSDQoNCj0JTQntCb0KQKK9CR0J7Qm9CU0J7QptCa0Jgg0IjQntCW0JXQpAor0JHQntCb0JTQntCm0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQkdCe0JvQlNCe0JMg0JvQkNCI0J7QqAor0JHQntCb0JXQoNCQ0KYg0JDQndCQCivQkdCe0JvQldCh0J3QmNCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7Qm9CV0KHQndCY0JrQntCSINCU0JDQoNCY0J3QmtCQCivQkdCe0JvQldCh0J3QmNCa0J7QkiDQnNCY0JvQntCg0JDQlAor0JHQntCb0JXQodCd0JjQmtCe0JIg0JfQntCg0JDQnQor0JHQntCb0KQg0JHQoNCQ0J3QmtCeCivQkdCe0JvQpCDQndCV0JLQldCd0JrQkAor0JHQntCb0KTQmNCaINCI0J7QodCY0J8KK9CR0J7Qm9CY0Isg0JfQm9CQ0KLQmtCeCivQkdCe0JvQmNCd0J7QktCh0JrQkCDQodCe0KTQmNCI0JAKK9CR0J7Qm9CY0J3QntCS0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CR0J7QidCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQkdCe0InQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QidCQ0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQkdCe0InQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCe0InQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0J7QidCQ0J3QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CR0J7QidCV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CR0J7Qm9Cc0JDQndCQ0KYg0JHQoNCQ0J3QmtCeCivQkdCe0JvQnNCQ0J3QkNCmINCV0JLQk9CV0J3QmNCI0JUKK9CR0J7Qm9CeINCW0J7Qm9CiCivQkdCe0JvQntCaINCQ0J3QlNCg0JDQqAor0JHQntCb0J7QmiDQiNCe0JbQldCkCivQkdCe0JvQntCaINCa0JDQoNCb0J4KK9CR0J7Qm9Ce0Jog0JrQkNCg0J7QiQor0JHQntCb0J7QmiDQn9CQ0JsKK9CR0J7Qm9Ce0KDQmNCdINCg0JDQlNCY0JLQntCICivQkdCe0JvQotCQINCW0JXQidCa0J4KK9CR0J7Qm9Ci0JAg0ILQo9Cg0JAKK9CR0J7Qm9Ci0JAg0JHQoNCQ0J3QmtCeCivQkdCe0JvQotCQINCU0KDQkNCT0JjQptCQCivQkdCe0JzQldCo0KLQkNCgINCg0JDQlNCQCivQkdCe0J3QkCDQodCi0JXQktCQ0J0KK9CR0J7QndCP0JjQiyDQlNCV0IjQkNCdCivQkdCe0J3QlNCQ0KDQldCd0JrQniDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgCivQkdCe0J3QlNCe0JrQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CR0J7QndCU0J7QmtCY0Isg0InQo9CR0JjQptCQCivQkdCe0J3QldCg0KIg0JTQo9Co0JDQnSDQlNCgCivQkdCe0J3QldCg0KIg0JTQo9Co0JDQnQor0JHQntCd0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0J7QndCY0Isg0JzQkNCg0IjQkNCdCivQkdCe0J3QmNCLINCc0JjQm9CY0KbQkAor0JHQntCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCe0J3Qo9ChINCJ0KPQkdCY0KbQkAor0JHQntCgINCV0J3QlNCg0JUKK9CR0J7QoNCn0JDQndCY0J0g0InQo9CR0JjQptCQCivQkdCe0KDQp9CQ0J3QmNCdINCh0J7QpNCY0IjQkAor0JHQntCg0KfQkNCd0KHQmtCYINCi0JjQndCa0JAKK9CR0J7QoNCn0JjQiyDQkdCj0JTQlQor0JHQntCg0KfQmNCLINCU0KDQkNCT0JDQndCQCivQkdCe0KDQp9CY0Isg0IjQntCS0JDQnQor0JHQntCg0KjQmCDQotCY0JLQkNCU0JDQoCDQlNCY0J/QmyDQntCV0KYKK9CR0J7QoNCo0J7QqCDQkNCi0JjQm9CQCivQkdCe0KDQqNCe0Kgg0JHQkNCg0JHQkNCg0JAKK9CR0J7QoNCo0J7QqCDQmNCo0KLQktCQ0J0KK9CR0J7QoNCo0J7QqCDQmNCo0KLQktCQ0J0KK9CR0J7QoNCo0J7QqCDQmNCc0KDQlQor0JHQntCg0KjQotCd0JDQoCDQpdCV0J3QoNCY0JoKK9CR0J7QoNCo0KLQndCV0KAg0J3QkNCU0JAKK9CR0J7QoNCC0JjQnSDQm9CQ0JfQkNCgCivQkdCe0KDQgtCe0KjQmtCYINCC0J7QoNCC0JUg0JTQmNCf0Jsg0JjQndCTCivQkdCe0KDQgtCe0KjQmtCYINCR0J7QqNCa0J4KK9CR0J7QoNCC0J7QqNCa0Jgg0JzQmNCb0JjQptCQCivQkdCe0KDQgtCe0KjQmtCYINCi0JDQnNCQ0KDQkAor0JHQntCg0ILQntCo0JrQmCDQktCe0IjQmNCdCivQkdCe0KDQkNCoINCY0KDQldCd0JAKK9CR0J7QoNCQ0KEg0JHQntCg0JjQodCb0JDQkgor0JHQntCg0JDQoSDQnNCQ0KDQmNCI0JAKK9CR0J7QoNCQ0KEg0JzQmNCb0JjQptCQCivQkdCe0KDQkdCQ0Kgg0JrQkNCg0J7QiQor0JHQntCg0JHQkNCoINCS0JjQntCb0JXQotCQCivQkdCe0KDQkdCQ0Kgg0JfQntCb0KLQkNCdCivQkdCe0KDQkdCV0Ikg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QoNCR0JXQiSDQiNCQ0J3QntCoCivQkdCe0KDQkdCV0Ikg0IjQntCh0JjQnwor0JHQntCg0JHQldCJINCJ0KPQkdCY0KbQkAor0JHQntCg0JHQldCJINCc0JDQoNCY0IjQkAor0JHQntCg0JHQldCJINCd0JXQktCV0J3QmtCQCivQkdCe0KDQlNCQ0Kgg0ILQldCX0JUKK9CR0J7QoNCU0JDQqCDQkNCa0J7QqAor0JHQntCg0JTQkNCoINCR0JXQm9CQCivQkdCe0KDQlNCQ0Kgg0KTQldCg0JXQndCmCivQkdCe0KDQlNCQ0Kgg0KTQoNCQ0IrQkAor0JHQntCg0JTQkNCoINCl0JjQm9CU0JAKK9CR0J7QoNCV0J3QntCS0JjQiyDQkNCd0KLQntCd0JjQiNCVCivQkdCe0KDQldCd0J7QktCY0Isg0JzQmNCb0JUKK9CR0J7QoNCV0J3QntCS0JjQiyDQktCV0KDQkAor0JHQntCg0Jgg0JjQnNCg0JUg0JTQoAor0JHQntCg0Jgg0JzQkNCg0JjQiNCQCivQkdCe0KDQmNCn0JjQiyDQm9CQ0JfQkNCgCivQkdCe0KDQmNCn0JjQiyDQndCe0JLQkNCaCivQkdCe0KDQmNCn0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQkdCe0KDQmNCn0JjQiyDQoNCQ0JTQo9Cb0JUKK9CR0J7QoNCY0KjQldCSINCR0J7QoNCY0KHQm9CQ0JIKK9CR0J7QoNCY0KjQldCSINCJ0JjQidCQ0J3QkAor0JHQntCg0JjQqNCV0JIg0JzQmNCb0JXQndCa0J4KK9CR0J7QoNCY0KjQldCSINCd0JjQmtCe0JvQkAor0JHQntCg0JjQqNCV0JIg0KDQo9CW0JjQptCQCivQkdCe0KDQmNCo0JXQkiDQodCQ0JLQkAor0JHQntCg0JjQqNCV0JIg0KLQldCe0JTQntCgCivQkdCe0KDQmNCo0JXQkiDQktCQ0KHQkAor0JHQntCg0JjQqNCY0Isg0JzQkNCg0JjQiNCQCivQkdCe0KDQmNCo0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCe0KDQmNCLINCn0JXQlNCe0JzQmNCgCivQkdCe0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0KDQmNCLINCU0KPQqNCQ0J0KK9CR0J7QoNCY0Isg0JrQkNCc0JXQndCa0J4KK9CR0J7QoNCY0Isg0JrQkNCi0JjQptCQCivQkdCe0KDQmNCLINCc0JjQm9CQ0J0KK9CR0J7QoNCY0Isg0JzQmNCb0JrQkAor0JHQntCg0JjQiyDQndCY0JrQntCb0JAKK9CR0J7QoNCY0Isg0J/QldCi0JDQoAor0JHQntCg0JjQiyDQodCi0JXQktCQ0J0KK9CR0J7QoNCY0Isg0JfQntCg0JDQnQor0JHQntCg0JjQiyDQl9Ce0KDQkNCdCivQkdCe0KDQmNChINCI0J7QodCY0J8KK9CR0J7QoNCY0JLQntCI0JXQktCY0Isg0JLQmNCi0J7QnNCY0KAKK9CR0J7QoNCI0JDQndCY0J0g0KHQm9CQ0JLQmtCeCivQkdCe0KDQiNCQ0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JHQntCg0IjQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JHQntCg0IjQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCe0KDQmtCeINCh0KLQkNCd0JjQodCb0JDQkgor0JHQntCg0JrQntCS0JDQp9Ca0Jgg0JfQntCg0JDQnQor0JHQntCg0JrQntCS0JDQpiDQmtCQ0KLQkNCg0JjQndCQCivQkdCe0KDQmtCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQktCQCivQkdCe0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CR0J7QoNCJ0JAg0KHQotCV0JLQkNCdCivQkdCe0KDQntCoINCo0JDQndCU0J7QoAor0JHQntCg0J7QqCDQqNCQ0J3QlNCe0KAKK9CR0J7QoNCe0Kgg0ILQldCg0IIKK9CR0J7QoNCe0Kgt0ILQldCS0Jgg0JbQldCJ0JrQngor0JHQntCg0J7QqCDQgtCe0KDQgtCVCivQkdCe0KDQntCoINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0KDQntCoINCQ0J3QlNCg0JjQiNCQCivQkdCe0KDQntCoINCQ0J3QotCj0J0KK9CR0J7QoNCe0Kgg0JXQoNCd0JUKK9CR0J7QoNCe0Kgg0JXQktCQCivQkdCe0KDQntCoINCY0KjQotCS0JDQnQor0JHQntCg0J7QqCDQiNCe0JbQldCkCivQkdCe0KDQntCoINCI0J7Qm9CQ0J0KK9CR0J7QoNCe0Kgg0IjQo9Cb0JjQiNCQCivQkdCe0KDQntCoINCb0JDQlNCY0KHQm9CQ0JIKK9CR0J7QoNCe0Kgg0JvQkNCI0J7QqAor0JHQntCg0J7QqCDQnNCQ0KDQk9CY0KLQkAor0JHQntCg0J7QqCDQnNCY0KXQkNCI0JvQngor0JHQntCg0J7QqCDQnNCY0KXQkNCI0JvQngor0JHQntCg0J7QqCDQnNCY0JrQm9Ce0KgKK9CR0J7QoNCe0Kgg0JLQldCg0JAKK9CR0J7QoNCe0KjQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0JHQntCg0J7QptCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0J7QoNCe0KbQmtCYINCU0JDQndCY0KbQkAor0JHQntCg0J7QptCa0Jgg0InQo9CR0JjQndCa0JAKK9CR0J7QoNCe0IjQkCDQidCj0JHQkNCdCivQkdCe0KDQntCI0JAg0KDQo9CW0JjQptCQCivQkdCe0KDQntCI0JXQkiDQkNCg0KHQldCdINCU0KAg0JvQldCa0JDQoAor0JHQntCg0J7QiNCV0JIg0JXQnNCY0JvQmNCI0JDQnSDQlNCgCivQkdCe0KDQntCI0JXQkiDQiNCQ0JPQntCU0JAKK9CR0J7QoNCe0IjQldCSINCJ0KPQkdCe0JzQmNCgCivQkdCe0KDQntCI0JXQkiDQoNCQ0JTQnNCY0JvQkAor0JHQntCg0J7QiNCV0JLQmNCLINCQ0J3QkAor0JHQntCg0J7QiNCV0JLQmNCLINCR0J7QqNCa0J4KK9CR0J7QoNCe0IjQldCS0JjQiyDQkdCe0KjQmtCeCivQkdCe0KDQntCI0JXQktCY0Isg0JHQntCo0JrQngor0JHQntCg0J7QiNCV0JLQmNCLINCR0KDQkNCd0JrQngor0JHQntCg0J7QiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQntCg0J7QiNCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CR0J7QoNCe0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQkdCe0KDQntCI0JXQktCY0Isg0JrQoNCh0KLQkAor0JHQntCg0J7QiNCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0JHQntCg0J7QiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CR0J7QoNCe0IjQldCS0JjQiyDQn9CQ0JLQm9CVCivQkdCe0KDQntCI0JXQktCY0Isg0J/QldCi0KDQkAor0JHQntCg0J7QiNCV0JLQmNCLINCh0JvQkNCS0JrQniDQn9Cg0J7QpAor0JHQntCg0J7QnNCY0KHQkCDQlNCg0JDQk9CY0KbQkAor0JHQntCg0J7QnNCY0KHQkCDQiNCV0JvQldCd0JAKK9CR0J7QoNCe0IrQkNCmINCU0KDQkNCT0JDQnQor0JHQntCg0J7QitCQ0KYg0JzQmNCb0JjQptCQCivQkdCe0KDQntCK0JDQpiDQntCb0JPQkAor0JHQntCg0J7QitCQ0KYg0JLQldCg0JAKK9CR0J7QoNCe0KLQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQntCg0J7QotCQINCI0J7QktCQ0J3QmtCQCivQkdCe0KDQntCi0JAg0JzQmNCb0JDQnQor0JHQntCg0J7QotCQINCc0JjQm9Ce0KDQkNCUCivQkdCe0KDQntCi0JAg0JzQmNCg0JAKK9CR0J7QoNCe0KLQkCDQoNCQ0JTQntCh0JvQkNCSINCU0KAg0JvQldCa0JDQoAor0JHQntCg0J7QktCn0JDQndCY0J0g0InQo9CR0J7QnNCY0KAKK9CR0J7QoNCe0JLQp9CQ0J3QmNCdINCc0JjQm9CY0KHQkNCSCivQkdCe0KDQntCS0KfQkNCd0JjQnSDQndCV0JTQldCJ0JrQngor0JHQntCg0J7QktCn0JDQndCY0J0g0KDQkNCU0J7QnNCY0KAKK9CR0J7QoNCe0JLQp9CQ0J3QmNCdINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7QoNCe0JLQkNCmINCQ0KDQodCeCivQkdCe0KDQntCS0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0J7QoNCe0JLQkNCmINCa0JDQotCY0KbQkAor0JHQntCg0J7QktCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9CR0J7QoNCe0JLQmNCn0JDQndCY0J0g0JzQmNCb0J7QoNCQ0JQKK9CR0J7QoNCe0JLQmNCLINCQ0KLQmNCb0JAKK9CR0J7QoNCe0JLQmNCLINCI0J7QodCY0J8KK9CR0J7QoNCe0JLQmNCLINCI0J7QktCQ0J0KK9CR0J7QoNCe0JLQmNCLINCa0J7QodCi0JAKK9CR0J7QoNCe0JLQmNCLINCc0JXQndCQCivQkdCe0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQkdCe0KDQntCS0JjQiyDQoNCj0JTQntCb0KQKK9CR0J7QoNCe0JLQmNCLINCS0JvQkNCU0JUKK9CR0J7QoNCe0JLQmNCL0JDQndCY0J0g0JzQmNCg0J7QodCb0JDQkgor0JHQntCg0J7QktCY0KbQkCDQkdCe0IjQmtCQCivQkdCe0KDQntCS0JjQptCQINCY0JLQkNCdCivQkdCe0KDQntCS0JjQptCQINCY0JLQkNCdCivQkdCe0KDQntCS0JjQptCQINCI0JXQm9CV0J3QkAor0JHQntCg0J7QktCY0KbQkCDQnNCY0J7QlNCg0JDQkwor0JHQntCg0J7QktCd0JjQptCQINCR0KDQkNCd0JrQngor0JHQntCg0J7QktCd0JjQptCQINCc0JDQoNCa0J4KK9CR0J7QoNCe0JLQndCY0KbQkCDQnNCY0JvQkNCdCivQkdCe0KDQntCS0J3QmNCm0JAg0JzQmNCb0JXQktCQCivQkdCe0KDQntCX0JDQnSDQnNCY0JvQntCg0JDQlAor0JHQntCg0KPQqCDQmNCo0KLQktCQ0J0KK9CR0J7QoNCj0Kgg0JjQoNCV0J3QkAor0JHQntCg0JfQkNCo0JrQmCDQkdCg0JDQotCY0KHQm9CQ0JLQkAor0JHQntCg0JfQkNCo0JrQmCDQoNCQ0JTQntCc0JjQoAor0JHQntCg0JfQkNCo0JrQmCDQodCi0JXQktCQ0J0KK9CR0J7QodCQ0Jog0JjQoNCV0J3QkAor0JHQntCh0JDQmtCe0JIg0JTQoNCQ0JPQkNCdCivQkdCe0KHQkNCd0KfQmNCLINCR0J7QqNCa0J4KK9CR0J7QodCQ0J3Qp9CY0Isg0JHQntCT0JTQkNCdCivQkdCe0KHQkNCd0KfQmNCLINCR0J7Qk9CU0JDQnQor0JHQntCh0JDQndCn0JjQiyDQiNCV0JvQmNCm0JAKK9CR0J7QodCQ0J3Qp9CY0Isg0JzQkNCd0J7QiNCb0J4KK9CR0J7QodCQ0J3Qp9CY0Isg0JzQmNCb0JXQktCQCivQkdCe0KHQkNCd0KfQmNCLINCc0JjQntCU0KDQkNCTCivQkdCe0KHQkNCd0KfQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCe0KHQkNCd0KfQmNCLINCg0JDQiNCa0J4KK9CR0J7QodCQ0J3Qp9CY0Isg0KLQoNCY0JLQkAor0JHQntCh0JDQndCn0JjQiyDQktCQ0KHQngor0JHQntCh0JDQndCn0JjQiyDQktCb0JDQlNCeCivQkdCe0KHQkNCd0KfQmNCLINCS0KPQiNCeCivQkdCe0KHQkNCd0JDQpiDQiNCe0JLQkNCdCivQkdCe0KHQkNCd0JDQpiDQidCj0JHQmNCm0JAKK9CR0J7QodCQ0J3QkNCmINCc0JDQoNCY0IjQkAor0JHQntCh0JDQndCQ0KYg0J3QmNCa0J7Qm9CQCivQkdCe0KHQkNCd0JDQpiDQktCV0KDQkAor0JHQntCh0JjQiyDQkdCe0JbQkNCd0JAKK9CR0J7QodCY0Isg0JHQoNCQ0J3QmtCeCivQkdCe0KHQmNCLINCU0KPQqNCQ0J0g0JTQoAor0JHQntCh0JjQiyDQiNCe0JLQkNCdCivQkdCe0KHQmNCLINCc0JjQntCU0KDQkNCTCivQkdCe0KHQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCe0KHQmNCLINCh0JvQkNCS0JrQkAor0JHQntCh0JjQidCa0JjQiyDQm9CQ0JfQkNCgCivQkdCe0KHQmNCJ0JrQmNCLINCb0KPQmtCQCivQkdCe0KHQmNCdINCh0JvQntCR0J7QlNCQ0J0KK9CR0J7QodCY0J7QmiDQlNCe0KDQowor0JHQntCh0J3QkNCYLdCR0JDQkdCQINCb0KPQptCY0IjQkAor0JHQntCh0J3QkNCYINCI0JDQndCe0KgKK9CR0J7QodCd0JjQiyDQp9CV0JTQntCc0JjQoAor0JHQntCh0J3QmNCLINCC0KPQoNCC0JjQndCa0JAKK9CR0J7QodCd0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQntCh0J3QmNCLINCR0J7QltCY0JTQkNCgCivQkdCe0KHQndCY0Isg0JHQntCh0JjQidCa0JAKK9CR0J7QodCd0JjQiyDQlNCQ0JLQmNCUCivQkdCe0KHQndCY0Isg0JTQkNCS0JjQlAor0JHQntCh0J3QmNCLINCI0J7QktCQ0J0KK9CR0J7QodCd0JjQiyDQnNCQ0KDQkAor0JHQntCh0J3QmNCLINCc0JjQoNCa0J4KK9CR0J7QodCd0JjQiyDQnNCb0JDQlNCV0J0KK9CR0J7QodCd0JjQiyDQndCQ0JTQkAor0JHQntCh0J3QmNCLINCd0KPQoNCY0IjQkAor0JHQntCh0J3QmNCLINCg0JDQlNCe0KHQkAor0JHQntCh0J3QmNCLINCg0JDQiNCa0J4KK9CR0J7QodCd0JjQiyDQktCV0KDQkAor0JHQntCh0J3QmNCLINCS0JvQkNCU0JAKK9CR0J7QodCd0JjQiyDQktCb0JDQlNCQCivQkdCe0KHQndCY0Isg0JfQntCg0JDQnQor0JHQntCi0JAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCe0KLQmNCnINCe0JvQmNCS0JXQoNCQCivQkdCe0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCe0KLQmNCLINCR0J7Qk9CU0JDQnQor0JHQntCi0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0J7QotCY0Isg0JTQkNCg0JrQngor0JHQntCi0JjQiyDQlNCQ0KDQmtCeCivQkdCe0KLQmNCLINCT0JDQktCg0JAKK9CR0J7QotCY0Isg0JzQmNCb0JDQnQor0JHQntCi0JjQiyDQnNCY0JvQkNCdCivQkdCe0KLQmNCLINCc0JjQm9CVCivQkdCe0KLQmNCLINCc0JjQm9Ce0KDQkNCUINCQ0JTQktCe0JrQkNCiCivQkdCe0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JHQntCi0JjQiyDQntCb0JjQktCV0KDQkAor0JHQntCi0JjQiyDQn9Cg0J7QmtCQCivQkdCe0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0JHQntCi0JjQiyDQktCV0KDQmNCm0JAKK9CR0J7QotCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQntCi0JjQiyDQl9Ce0KDQkNCd0JrQkAor0JHQntCi0JrQkCDQkNCd0KLQkNCbCivQkdCe0KLQmtCQINCU0JDQktCY0JQKK9CR0J7QotCa0JAg0JXQoNCW0JXQkdCV0KIKK9CR0J7QotCa0JAg0JLQldCg0J7QndCQCivQkdCe0KLQmtCQINCX0J7Qm9Ci0JDQnQor0JHQntCi0JvQmNCaINCT0JXQl9CQCivQkdCe0KLQm9CY0Jog0JzQkNCg0JjQiNCQCivQkdCe0KLQntCo0JrQmCDQlNCg0JDQk9Ce0JLQkNCdCivQkdCe0KLQntCo0JrQmCDQodCQ0JLQkAor0JHQntCi0J7QoNCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0JHQntCi0JfQkCDQmNCo0KLQktCQ0J0KK9CR0J7Ql9CV0IjQkNCmINCQ0J3QotCQ0Jsg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9CR0J7Ql9CV0IjQkNCmINCU0KPQqNCQ0J0KK9CR0J7Ql9CV0IjQkNCmINCT0J7QoNCU0JDQndCQCivQkdCe0JfQldCI0JDQpiDQnNCY0JvQldCd0JrQngor0JHQntCX0JXQiNCQ0KYg0KHQnNCY0InQmtCQCivQkdCe0JfQldCI0JDQpiDQodCS0JXQotCY0KHQm9CQ0JIKK9CR0J7Ql9CV0IjQkNCmINCS0JXQoNCQCivQkdCe0JfQntCa0JjQnSDQodCi0JXQktCY0KbQkAor0JHQoNCn0JjQiyDQmNCT0IrQkNCmCivQkdCg0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CR0KDQp9CY0Isg0J3QldCC0J4KK9CR0KDQp9CY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0KDQp9CY0J0g0ILQntCg0ILQlQor0JHQoNCn0JjQnSDQnNCY0JvQmNCd0JrQkAor0JHQoNCn0JjQnSDQndCY0JrQntCb0JAKK9CR0KDQp9CY0J0g0KDQkNCi0J7QnNCY0KAKK9CR0KDQp9CY0J0g0KHQm9CQ0JLQmNCm0JAKK9CR0KDQp9CY0J0g0KHQktCV0KLQntCX0JDQoAor0JHQoNCn0JjQndCe0JLQmNCLINCf0JDQktCb0JUKK9CR0KDQp9Ca0JDQm9Ce0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQkdCg0JDQp9CV0JLQmNCLINCY0JLQkNCdCivQkdCg0JDQp9CV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQkdCg0JDQqNCQ0J3QkNCmINCR0J7QoNCY0KHQm9CQ0JIKK9CR0KDQkNCo0JDQndCQ0KYg0JPQkNCS0KDQmNCb0J4g0JTQmNCf0Jsg0JjQndCTCivQkdCg0JDQqNCQ0J3QkNCmINCY0JvQmNCI0JAKK9CR0KDQkNCo0JDQndCQ0KYg0JzQmNCg0IjQkNCd0JAKK9CR0KDQkNCo0JDQndCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0JHQoNCQ0KjQmtCeINCI0J7QltCV0KQKK9CR0KDQkNCo0IrQniDQk9Cj0KHQotCQ0JIKK9CR0KDQkNCo0IrQniDQmNCo0KLQktCQ0J0KK9CR0KDQkNCo0IrQniDQmNCo0KLQktCQ0J0KK9CR0KDQkNCm0JDQndCe0JLQmNCLINCU0JDQnNCI0JDQnQor0JHQoNCQ0KbQkNCd0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CR0KDQkNCm0JjQiyDQnNCY0JvQkNCdCivQkdCg0JDQlNCQ0Kcg0JXQm9CY0JfQkNCR0JXQotCQCivQkdCg0JDQlNCQ0Kcg0JjQnNCg0JUKK9CR0KDQkNCU0JDQqCDQltCY0JLQkCDQlNCY0J/QmyDQmNCd0JMKK9CR0KDQkNCU0JDQoNCY0Isg0J3QldCU0JXQidCa0J4KK9CR0KDQkNCU0JjQiyDQgtCe0KDQgtCVCivQkdCg0JDQlNCY0Isg0ILQntCg0ILQlQor0JHQoNCQ0JTQmNCLINCR0J7QltCY0JTQkNCgCivQkdCg0JDQlNCY0Isg0JHQntCT0J7QidCj0JEKK9CR0KDQkNCU0JjQiyDQkdCe0JPQntCJ0KPQkQor0JHQoNCQ0JTQmNCLINCR0KDQkNCd0JrQngor0JHQoNCQ0JTQmNCLINCV0JLQk9CV0J3QmNCI0JAKK9CR0KDQkNCU0JjQiyDQk9CQ0JLQoNCY0JvQngor0JHQoNCQ0JTQmNCLINCI0KPQodCi0JjQndCQCivQkdCg0JDQlNCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CR0KDQkNCU0JjQiyDQnNCY0JvQkNCdCivQkdCg0JDQlNCY0Isg0JzQmNCb0JjQptCQCivQkdCg0JDQlNCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JHQoNCQ0JTQmNCLINCc0JjQidCa0J4KK9CR0KDQkNCU0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCg0JDQlNCY0Isg0KHQoNCV0KLQkAor0JHQoNCQ0JTQmNCLLdCi0JXQitCYINCX0J7QoNCY0KbQkAor0JHQoNCQ0JTQmNCLINCi0JXQntCU0J7QoNCQCivQkdCg0JDQlNCY0Isg0KLQntCc0JjQodCb0JDQktCQCivQkdCg0JDQlNCY0Isg0JLQmNCU0J7QiNCVCivQkdCg0JDQlNCY0Isg0JfQntCg0JjQptCQCivQkdCg0JDQlNCe0Kgg0KHQm9Ce0JHQntCU0JDQnQor0JHQoNCQ0KXQotCbINCc0JDQoNCY0KbQkAor0JHQoNCQ0IjQlNCY0Isg0JjQktCQ0J0KK9CR0KDQkNCI0JXQoCDQpNCg0JDQitCQCivQkdCg0JDQiNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQkdCg0JDQiNCY0Isg0JzQmNCb0JjQptCQCivQkdCg0JDQiNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0KDQkNCI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQkdCg0JDQiNCa0J7QkiDQnNCQ0KDQmtCeCivQkdCg0JDQiNCa0J7QktCY0Isg0JjQktCeCivQkdCg0JDQiNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0KDQkNCI0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JHQoNCQ0IjQntCS0JjQiyDQnNCY0JvQntCoCivQkdCg0JDQiNCe0JLQmNCLINCh0JvQkNCS0JrQkAor0JHQoNCQ0IjQntCS0JjQiyDQodCf0JDQodCe0IjQlQor0JHQoNCQ0IjQntCS0JjQiyDQodCi0JDQndCa0JAKK9CR0KDQkNCI0J7QktCY0Isg0JLQldCJ0JrQngor0JHQoNCQ0JrQntCn0JXQktCY0Isg0IjQntCS0JDQnQor0JHQoNCQ0JrQo9ChINCU0KPQqNCQ0J3QmtCQCivQkdCg0JDQmtCj0KEg0InQmNCJ0JDQndCQCivQkdCg0JDQmtCj0KEg0JzQkNCg0JjQiNCQCivQkdCg0JDQmtCj0KEg0JzQmNCb0JDQnQor0JHQoNCQ0JrQo9ChINCc0J7QnNCn0JjQm9CeCivQkdCg0JDQm9Ce0JLQmNCLINCg0JDQotCa0J4KK9CR0KDQkNCd0KfQmNCLINCR0J7QoNCY0KEg0JTQmNCf0Jsg0JjQndCTCivQkdCg0JDQndCn0JjQiyDQiNCQ0KHQndCQCivQkdCg0JDQndCn0JjQiyDQnNCY0JvQldCd0JAKK9CR0KDQkNCd0KfQmNCLINCc0JjQm9Cj0KjQmtCeCivQkdCg0JDQndCQINCf0JXQotCQ0KAKK9CR0KDQkNCd0JjQm9Ce0JLQmNCLINCh0KLQiNCV0J/QkNCdCivQkdCg0JDQndCa0J7QkiDQgtCe0KDQgtCVCivQkdCg0JDQndCa0J7QkiDQgtCe0KDQgtCVCivQkdCg0JDQndCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JHQoNCQ0J3QmtCe0JIt0JHQntCa0JAg0KDQntCX0JDQm9CY0IjQkAor0JHQoNCQ0J3QmtCe0JIg0JHQntCg0JjQktCe0IgKK9CR0KDQkNCd0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JHQoNCQ0J3QmtCe0JIg0JTQntCR0KDQmNCm0JAKK9CR0KDQkNCd0JrQntCSINCU0KDQkNCT0JDQndCQCivQkdCg0JDQndCa0J7QkiDQlNCg0JDQk9CQ0J0KK9CR0KDQkNCd0JrQntCSINCU0KPQqNCQ0J0KK9CR0KDQkNCd0JrQntCSINCV0JzQmNCbCivQkdCg0JDQndCa0J7QkiDQmNCb0JjQiNCQCivQkdCg0JDQndCa0J7QkiDQiNCV0JvQmNCm0JAKK9CR0KDQkNCd0JrQntCSINCI0J7QktCQ0J3QmtCQCivQkdCg0JDQndCa0J7QkiDQmtCe0KHQotCQCivQkdCg0JDQndCa0J7QkiDQmtCe0KHQotCQCivQkdCg0JDQndCa0J7QkiDQidCj0JHQmNCm0JAKK9CR0KDQkNCd0JrQntCSINCJ0KPQkdCY0KbQkAor0JHQoNCQ0J3QmtCe0JIg0InQo9CR0JjQndCa0J4KK9CR0KDQkNCd0JrQntCSINCc0JjQm9CY0KbQkAor0JHQoNCQ0J3QmtCe0JIg0JzQmNCb0J7QoNCQ0JQKK9CR0KDQkNCd0JrQntCSINCc0JjQoNCa0J4KK9CR0KDQkNCd0JrQntCSINCc0JjQotCQCivQkdCg0JDQndCa0J7QkiDQnNCY0KLQkAor0JHQoNCQ0J3QmtCe0JIg0JzQm9CQ0JTQldCdCivQkdCg0JDQndCa0J7QkiDQnNCe0JzQmNCgCivQkdCg0JDQndCa0J7QkiDQndCQ0JTQkAor0JHQoNCQ0J3QmtCe0JIg0J7Qm9CY0JLQldCg0JAKK9CR0KDQkNCd0JrQntCSINCg0JDQlNCY0JLQntCICivQkdCg0JDQndCa0J7QkiDQoNCQ0JTQntCS0JDQnQor0JHQoNCQ0J3QmtCe0JIg0KDQkNCU0J7QktCQ0J0KK9CR0KDQkNCd0JrQntCSINCh0JLQldCi0JjQodCb0JDQkgor0JHQoNCQ0J3QmtCe0JIg0JLQldCJ0JrQngor0JHQoNCQ0J3QmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JHQoNCQ0J3QmtCe0JIg0JfQm9CQ0KLQmNCd0JrQkAor0JHQoNCQ0J3QmtCe0JLQkNCdINCC0J7QoNCC0JUKK9CR0KDQkNCd0JrQntCS0JDQnSDQktCb0JDQodCi0JjQnNCY0KAKK9CR0KDQkNCd0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JHQoNCQ0J3QmtCe0JLQmNCLINCR0J7QiNCQCivQkdCg0JDQndCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCg0JDQndCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCg0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQkdCg0JDQndCa0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CR0KDQkNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQkdCg0JDQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JHQoNCQ0J3QmtCe0JLQmNCLINCY0JvQmNCI0JAKK9CR0KDQkNCd0JrQntCS0JjQiy3QmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CR0KDQkNCd0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9CR0KDQkNCd0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CR0KDQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQkdCg0JDQndCa0J7QktCY0Isg0JzQmNCb0JXQndCQCivQkdCg0JDQndCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0KDQkNCd0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQkdCg0JDQndCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQkdCg0JDQndCa0J7QktCY0Isg0KHQkNCS0JrQkAor0JHQoNCQ0J3QmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0JHQoNCQ0J3QmtCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9CR0KDQkNCd0JrQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQkdCg0JDQndCa0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JHQoNCQ0J3QmtCe0JLQmNCLINCi0KPQk9Ce0JzQmNCgCivQkdCg0JDQndCa0J7QktCY0Isg0JfQmNCd0JAKK9CR0KDQkNCd0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQkdCg0JDQndCe0JLQkNCn0JrQmCDQgtCe0KDQgtCVCivQkdCg0JDQndCe0JLQkNCn0JrQmCDQkNCd0JPQldCb0JjQndCQCivQkdCg0JDQndCe0JLQkNCn0JrQmCDQk9CQ0JLQoNCY0JvQngor0JHQoNCQ0J3QntCS0JDQp9Ca0Jgg0JjQktCQ0J3QkAor0JHQoNCQ0J3QntCS0JDQp9Ca0Jgg0InQo9CR0JjQptCQCivQkdCg0JDQndCe0JLQkNCn0JrQmCDQntCb0JPQkAor0JHQoNCQ0J3QntCS0JDQp9Ca0Jgg0KHQktCV0KLQmNCh0JvQkNCSCivQkdCg0JDQndCe0JLQmNCLINCR0JjQodCV0KDQmtCQCivQkdCg0JDQndCe0JLQmNCLINCg0KPQltCQCivQkdCg0JDQntCS0JjQiyDQodCQ0J3QlNCg0JAKK9CR0KDQkNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0KDQkNCiINCU0KPQqNCQ0J0KK9CR0KDQkNCi0JjQiyDQkNCo0JjQoAor0JHQoNCQ0KLQmNCLINCU0KDQkNCT0J4KK9CR0KDQkNCi0JjQiyDQlNCj0KjQkNCdCivQkdCg0JDQotCY0Isg0JPQntCg0JDQnQor0JHQoNCQ0KLQmNCLINCJ0KPQkdCY0KbQkAor0JHQoNCQ0KLQmNCLINCJ0KPQkdCe0JzQmNCgCivQkdCg0JDQotCY0Isg0JzQo9Cl0J4KK9CR0KDQkNCi0JjQiyDQndCV0JTQldCJ0JrQngor0JHQoNCQ0KLQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCg0JDQotCY0Isg0JLQntCI0JjQodCb0JDQkgor0JHQoNCQ0KLQntCd0J7QltCY0Isg0JzQkNCg0JPQmNCi0JAKK9CR0KDQkdCe0KDQmNCLINCb0JDQl9CQ0KAKK9CR0KDQkdCe0KDQmNCLINCh0KDQkdCY0KHQm9CQ0JIKK9CR0KDQptCQ0J3QntCSINCC0KPQoNCC0JjQndCa0JAKK9CR0KDQptCQ0J3QntCSINCe0JvQk9CQCivQkdCg0KbQkNCd0J7QkiDQodCY0JzQkAor0JHQoNCm0JDQndCe0JIg0KLQmNCl0J7QnNCY0KAKK9CR0KDQptCQ0J3QodCa0Jgg0J3QmNCa0J7Qm9CQCivQkdCg0JTQkNCgINCU0JDQndCVCivQkdCg0JTQkNCgINCU0KDQkNCT0J4KK9CR0KDQlNCQ0KAg0JjQm9CY0IjQkAor0JHQoNCU0JDQoCDQmNCS0JDQndCa0JAKK9CR0KDQlNCQ0KAg0JzQmNCb0JDQnQor0JHQoNCU0JDQoCDQn9CV0KDQngor0JHQoNCU0JDQoCDQodCb0JDQktCY0KjQkAor0JHQoNCU0JDQoNCV0JLQmNCLINCU0KPQqNCa0J4KK9CR0KDQlNCQ0KDQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CR0KDQlNCQ0KDQmNCLINCa0J7QodCi0JAKK9CR0KDQlNCQ0KDQmNCLINCc0JjQm9CQ0J0KK9CR0KDQlNCQ0KDQmNCLINCf0JXQotCQ0KAKK9CR0KDQldCo0IvQkNCd0KHQmtCYINCc0JDQoNCY0IjQkAor0JHQoNCV0KjQmtCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQkdCg0JXQqNCa0J7QktCh0JrQmCDQlNCg0JDQk9CY0KbQkAor0JHQoNCV0JbQkNCdINCY0JvQntCd0JAKK9CR0KDQldCW0JDQnSDQm9CV0J7QndCe0KDQkAor0JHQoNCV0JbQkNCdINCc0JDQoNCY0IjQkAor0JHQoNCV0JHQldCgINCJ0KPQkdCY0KbQkAor0JHQoNCV0JHQldCg0JjQndCQINCc0JjQm9CQ0J0KK9CR0KDQldCR0JXQoNCY0J3QkCDQodCi0JXQktCQ0J0KK9CR0KDQldCT0KPQnSDQgtCe0KDQgtCVCivQkdCg0JXQk9Cj0J0g0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CR0KDQldCT0KPQnSDQndCY0JrQntCb0JAKK9CR0KDQldCT0KPQnSDQoNCQ0JTQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JHQoNCV0JrQkNCb0J4g0IjQntCh0JjQnwor0JHQoNCV0JrQmNCLINCY0JvQmNCI0JAKK9CR0KDQldCa0JjQiyDQndCY0JrQntCb0JAKK9CR0KDQldCa0JjQiyDQodCi0JXQktCQ0J0KK9CR0KDQldCd0JXQptCa0Jgg0JfQlNCg0JDQktCa0J4KK9CR0KDQldCd0JXQodCV0Jsg0JTQoNCQ0JPQkNCdCivQkdCg0JXQndCV0KHQldCbINCT0JDQkdCg0JjQldCbCivQkdCg0JXQndCV0KHQldCbINCc0JjQoNCI0JDQndCQCivQkdCg0JXQndCV0KHQldCbINCd0JjQmtCe0JvQkAor0JHQoNCV0KHQotCe0JLQkNCn0JrQmCDQmNCS0JDQnQor0JHQoNCV0KHQotCe0JLQkNCn0JrQmCDQiNCQ0KHQnNCY0J3QkAor0JHQoNCV0KHQotCe0JLQkNCn0JrQmCDQnNCY0JvQmtCQCivQkdCg0JXQodCi0J7QktCQ0KfQmtCYINCh0KLQldCS0JAKK9CR0KDQldCiINCS0JXQoNCQCivQkdCg0JXQotCo0J3QkNCI0JTQldCgINCQ0J3QkAor0JHQoNCV0JfQndCY0Jog0JXQoNCd0JUKK9CR0KDQldCX0IrQkNCaINCI0JDQndCe0KgKK9CR0KDQldCX0IrQkNCaINCc0JDQoNCY0IjQkAor0JHQoNCV0JfQntCS0KfQldCaINCI0J7QktCQ0J3QmtCQCivQkdCg0JXQl9Ce0JLQkNCmINCU0KDQkNCT0JjQptCQCivQkdCg0JXQl9Ce0JLQkNCmINCU0KPQqNCQ0J0KK9CR0KDQldCX0J7QktCQ0KYg0JjQktCQ0J0KK9CR0KDQldCX0J7QktCQ0KYg0JjQktCQ0J0KK9CR0KDQldCX0J7QktCQ0KYg0IjQo9Cg0JDQiAor0JHQoNCV0JfQntCS0JDQpiDQmtCQ0KLQkNCg0JjQndCQCivQkdCg0JXQl9Ce0JLQkNCmINCJ0KPQkdCY0J3QmtCQCivQkdCg0JXQl9Ce0JLQkNCmINCc0JjQm9CV0J3QkAor0JHQoNCV0JfQntCS0JDQpiDQnNCY0JvQntCoCivQkdCg0JXQl9Ce0JLQkNCmINCf0JXQotCQ0KAKK9CR0KDQldCX0J7QktCQ0KYg0KHQkNCS0JAKK9CR0KDQldCX0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0KDQmNCo0JXQktCQ0KYg0IjQo9Cg0JUKK9CR0KDQmNCa0JXQoCDQodCc0JjQidCQ0J3QkAor0JHQoNCY0IrQkNCaINCU0KDQkNCT0J4KK9CR0KDQmNCi0JLQldCmINCc0JDQoNCa0J4KK9CR0KDQmNCX0JAg0JbQldCb0JzQmNCg0JAKK9CR0KDQmNCX0JAg0IjQkNCdCivQkdCg0JjQl9CQINCb0KPQmtCg0JXQptCY0IjQkAor0JHQoNCaINCh0JjQnNCeCivQkdCg0JrQkNCd0JjQiyDQnNCQ0KDQmtCeCivQkdCg0JrQkNCd0JjQiyDQnNCY0JvQldCd0JrQngor0JHQoNCa0JDQndCY0Isg0KLQkNCi0IjQkNCd0JAKK9CR0KDQmtCQ0J3Qm9CY0Isg0JbQldCJ0JrQngor0JHQoNCa0JDQndCb0JjQiyDQlNCj0KjQkNCdCivQkdCg0JrQmNCLINCC0J7QoNCC0JUKK9CR0KDQmtCY0Isg0ILQntCg0ILQlQor0JHQoNCa0JjQiyDQgtCj0KDQngor0JHQoNCa0JjQiyDQkNCR0JDQlwor0JHQoNCa0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQoNCa0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQoNCa0JjQiyDQkNCd0JrQkAor0JHQoNCa0JjQiyDQkNCd0JrQmNCm0JAKK9CR0KDQmtCY0Ist0JHQldCb0JjQiyDQlNCQ0J3QmNCm0JAKK9CR0KDQmtCY0Isg0JHQntCT0JTQkNCdCivQkdCg0JrQmNCLINCR0KDQkNCd0JrQngor0JHQoNCa0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0KDQmtCY0Isg0JTQoNCQ0JPQkAor0JHQoNCa0JjQiyDQlNCg0JDQk9CeCivQkdCg0JrQmNCLINCU0KPQqNCQ0J3QmtCQCivQkdCg0JrQmNCLINCT0J7QiNCa0J4KK9CR0KDQmtCY0Isg0JjQm9CY0IjQkAor0JHQoNCa0JjQiyDQmNCS0JDQnQor0JHQoNCa0JjQiyDQmNCS0JjQptCQCivQkdCg0JrQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCg0JrQmNCLINCI0J7QktCQ0J0KK9CR0KDQmtCY0Isg0IjQntCS0JDQnQor0JHQoNCa0JjQiyDQiNCe0JLQkNCdCivQkdCg0JrQmNCLINCI0J7QktCQ0J0KK9CR0KDQmtCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0KDQmtCY0Isg0JvQo9Ca0JAKK9CR0KDQmtCY0Isg0JzQkNCT0JTQkNCb0JXQndCQCivQkdCg0JrQmNCLINCc0JDQndCU0JAKK9CR0KDQmtCY0Isg0JzQkNCg0JjQiNCQCivQkdCg0JrQmNCLINCc0JDQoNCY0IjQkAor0JHQoNCa0JjQiyDQnNCY0JvQkNCU0JjQnQor0JHQoNCa0JjQiyDQnNCY0JvQkNCdCivQkdCg0JrQmNCLINCc0JjQm9CQ0J0KK9CR0KDQmtCY0Isg0JzQmNCb0JDQnQor0JHQoNCa0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JHQoNCa0JjQiyDQnNCY0KLQkNCgCivQkdCg0JrQmNCLINCd0JDQlNCQCivQkdCg0JrQmNCLINCd0JXQkdCe0IjQqNCQCivQkdCg0JrQmNCLINCd0JjQmtCe0JvQkAor0JHQoNCa0JjQiyDQndCY0JrQntCb0JAKK9CR0KDQmtCY0Isg0J/QldCi0JDQoAor0JHQoNCa0JjQiyDQn9CV0KLQkNCgCivQkdCg0JrQmNCLINCf0JXQotCg0JAKK9CR0KDQmtCY0Isg0KDQkNCU0J7QiNCa0JAKK9CR0KDQmtCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JHQoNCa0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQkdCg0JrQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CR0KDQmtCY0Isg0KDQkNCi0JrQngor0JHQoNCa0JjQiyDQoNCj0JbQkAor0JHQoNCa0JjQiyDQodCY0JvQktCY0IjQkAor0JHQoNCa0JjQiyDQodCb0JDQktCa0J4KK9CR0KDQmtCY0Isg0KHQndCV0JbQkNCd0JAKK9CR0KDQmtCY0Isg0KHQndCV0JbQkNCd0JAKK9CR0KDQmtCY0Isg0KLQntCc0J4g0JTQmNCf0Jsg0JjQndCTCivQkdCg0JrQmNCLINCj0KDQntCoCivQkdCg0JrQmNCLINCS0JXQl9CY0JvQmNCI0JAKK9CR0KDQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQoNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCg0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0KDQmtCY0Isg0JLQntCI0JjQodCb0JDQkgor0JHQoNCa0JjQiyDQl9CU0KDQkNCS0JrQngor0JHQoNCa0JjQiyDQl9Ce0KDQkNCdCivQkdCg0JrQidCQ0Kcg0JHQoNCQ0J3QmNCc0JjQoAor0JHQoNCa0InQkNCnINCR0KDQkNCd0JjQodCb0JDQkgor0JHQoNCa0InQkNCnINCU0KDQkNCT0J7QidCj0JEKK9CR0KDQmtCJ0JDQpyDQmNCb0JjQiNCQCivQkdCg0JrQidCQ0Kcg0JrQkNCi0JDQoNCY0J3QkAor0JHQoNCa0InQkNCnINCc0JjQm9CQ0J3QmtCeCivQkdCg0JrQidCQ0Kcg0JzQmNCb0JDQnQor0JHQoNCa0InQkNCnINCd0JjQmtCe0JvQkAor0JHQoNCa0InQkNCnINCd0JjQmtCe0JvQkAor0JHQoNCa0InQkNCnINCg0KPQltCY0KbQkAor0JHQoNCa0InQkNCnINCh0JvQntCR0J7QlNCQ0J0KK9CR0KDQmtCJ0JDQpyDQodCi0JXQktCQ0J0KK9CR0KDQmtCJ0JDQp9CQINCR0KDQkNCi0J7QidCj0JEKK9CR0KDQmtCJ0JDQp9CY0Isg0JHQntCW0JXQndCQCivQkdCg0JrQidCQ0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0KDQmtCeINCd0JjQmtCe0JvQkAor0JHQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JHQoNCa0J7QktCY0Isg0JDQndCi0KPQnQor0JHQoNCa0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9CR0KDQmtCe0JLQmNCLINCU0KDQkNCT0J4KK9CR0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CR0KDQmtCe0JLQmNCLINCV0JzQmNCb0JjQiNCQCivQkdCg0JrQntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JHQoNCa0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0KDQmtCe0JLQmNCLINCc0JDQk9CU0JAKK9CR0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CR0KDQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JHQoNCa0J7QktCY0Isg0J3QkNCU0JAKK9CR0KDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQoNCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0KDQmtCe0JLQmNCLINCS0JjQntCU0KHQkNCS0JAKK9CR0KDQmtCe0JLQmNCLINCS0IjQldCa0J7QodCb0JDQkgor0JHQoNCa0J7QktCY0Isg0JfQm9CQ0KLQmtCeCivQkdCg0JvQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CR0KDQm9CY0Isg0JjQktCQ0J0KK9CR0KDQnNCR0J7QotCQINCI0J7QktCQ0J0KK9CR0KDQnNCR0J7QotCQINCI0J7QktCQ0J0KK9CR0KDQitCQ0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0KDQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CR0KDQntCo0KLQldCQ0J0g0JLQmNCe0KDQldCbCivQkdCg0J7Qi9CV0KLQkCDQkdCe0JPQlNCQ0J0KK9CR0KDQntCL0JXQotCQINCc0JjQi9CQCivQkdCg0J7Qi9CV0KLQkCDQnNCY0JvQntCg0JDQlAor0JHQoNCe0IvQldCi0JAg0J3QldCU0JXQidCa0J4KK9CR0KDQntCL0JXQotCQINCe0JHQoNCQ0JQKK9CR0KDQntCU0KDQkNCd0KHQmtCYINCh0JLQldCi0JvQkNCd0JAKK9CR0KDQntCI0KfQmNCdINCU0KPQqNCQ0J0KK9CR0KDQntCI0KfQmNCdINCh0JDQktCQCivQkdCg0J7QndCX0JAg0JTQoNCQ0JPQkNCdCivQkdCg0J7QndCX0JAg0KDQkNCI0JrQngor0JHQoNCe0JfQntCS0JjQiyDQmNCS0JDQnQor0JHQoNCh0JDQndCe0JLQmNCLINCa0KDQodCi0JAKK9CR0KDQodCi0JjQndCQINCS0JDQodCY0JvQmNCI0JUKK9CR0KDQotCQ0J0g0IjQntCh0JjQnwor0JHQoNCi0JrQkCDQiNCQ0J0KK9CR0KDQo9Co0IrQkNCYINCI0J7QodCY0J8KK9CR0KDQo9Co0IrQkNCaINCf0JXQoNCeCivQkdCg0KPQiNCY0Isg0JTQo9Co0JDQnQor0JHQoNCj0IjQmNCLINCI0J7QktCQ0J0KK9CR0KDQo9CI0JjQiyDQnNCQ0J3QntCI0JvQngor0JHQoNCj0IjQmNCLINCc0JjQm9CQ0J0KK9CR0KDQo9CI0JjQiyDQnNCY0JvQmNCm0JAKK9CR0KDQo9CI0JjQiyDQodCb0JDQktCa0J4KK9CR0KDQo9CI0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCg0KPQmiDQkNCd0JTQoNCY0IjQkCDQlNCgCivQkdCg0KPQmtCd0JXQoCDQkdCe0JPQlNCQ0J0KK9CR0KDQo9Ca0J3QldCgINCR0J7Qk9CU0JDQnQor0JHQoNCj0J3Qp9CV0JLQmNCLINCl0JjQktCX0J4KK9CR0KDQo9Cd0KfQldCS0JjQiyDQoNCV0I/QldCfCivQkdCg0KPQndCU0JfQkCDQptCV0KbQmNCb0JjQiNCQCivQkdCg0KPQndCU0JfQkCDQktCb0JDQlNCY0JzQmNCgINCc0KAKK9CR0KDQo9Cd0JXQoCDQiNCe0KHQmNCfCivQkdCg0KPQndCV0KIg0JXQm9CV0JzQldCgCivQkdCg0KPQndCV0KIg0KTQoNCQ0IrQkAor0JHQoNCj0J3QldCiINCY0KjQotCS0JDQnQor0JHQoNCj0J3QldCiINCX0J7Qm9Ci0JDQnQor0JHQoNCj0J3QldCiINCX0J7Qm9Ci0JDQnQor0JHQoNCj0KHQmNCdINCU0KPQqNCa0J4KK9CR0KDQo9Ch0JjQnSDQmtCQ0IjQmNCm0JAKK9CR0KDQo9Ch0JjQnSDQnNCY0JvQntCI0JrQngor0JHQoNCj0KHQmNCdINCc0JjQm9Ce0JLQkNCdCivQkdCg0KPQodCY0J0g0KDQkNCU0JjQptCQCivQkdCg0KPQodCY0J0g0KHQm9CQ0JLQmtCeCivQkdCg0KPQodCK0JDQmCDQmtCQ0KDQm9CeCivQkdCg0KPQodCK0JDQmCDQm9CQ0KHQm9CeCivQkdCg0KPQodCK0JDQmCDQnNCQ0KDQk9CQ0KDQmNCi0JAKK9CR0KDQl9CQ0Jog0JbQmNCS0JrQkAor0JHQoNCX0JDQmiDQltCY0JLQntCg0JDQlAor0JHQoNCX0JDQmiDQgtCe0KDQgtCVCivQkdCg0JfQkNCaINCC0J7QoNCC0JUKK9CR0KDQl9CQ0Jog0ILQntCg0ILQlQor0JHQoNCX0JDQmiDQgtCe0KDQgtCVCivQkdCg0JfQkNCaINCC0KPQmtCQCivQkdCg0JfQkNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCg0JfQkNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCg0JfQkNCaINCQ0J3QgtCV0JvQmtCQCivQkdCg0JfQkNCaINCR0J7Qk9CU0JDQndCa0JAKK9CR0KDQl9CQ0Jog0JHQntCg0JjQodCb0JDQkgor0JHQoNCX0JDQmiDQkdCe0KHQkAor0JHQoNCX0JDQmiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0KDQl9CQ0Jog0JTQoNCQ0JPQkNCdCivQkdCg0JfQkNCaINCU0KDQkNCT0JDQnQor0JHQoNCX0JDQmiDQlNCg0JDQk9CY0KbQkAor0JHQoNCX0JDQmiDQlNCg0JDQk9Ce0JzQmNCgCivQkdCg0JfQkNCaINCU0KPQqNCa0J4KK9CR0KDQl9CQ0Jog0JPQntCI0JrQngor0JHQoNCX0JDQmiDQmNCb0JjQiNCQCivQkdCg0JfQkNCaINCI0JDQlNCg0JDQndCa0JAKK9CR0KDQl9CQ0Jog0IjQldCb0JXQndCQCivQkdCg0JfQkNCaINCI0J7QktCQ0J0KK9CR0KDQl9CQ0Jog0IjQntCS0JDQnQor0JHQoNCX0JDQmiDQiNCe0JLQkNCdCivQkdCg0JfQkNCaINCI0J7QktCQ0J0KK9CR0KDQl9CQ0Jog0IjQntCS0JDQnQor0JHQoNCX0JDQmiDQiNCe0JLQkNCdCivQkdCg0JfQkNCaINCa0J7QodCi0JAKK9CR0KDQl9CQ0Jog0JvQkNCX0JDQoAor0JHQoNCX0JDQmiDQm9CV0J/QntCh0JDQktCQCivQkdCg0JfQkNCaINCc0JDQoNCY0IjQkAor0JHQoNCX0JDQmiDQnNCY0JvQkAor0JHQoNCX0JDQmiDQnNCY0JvQldCd0JrQngor0JHQoNCX0JDQmiDQnNCY0JvQldCd0JrQngor0JHQoNCX0JDQmiDQnNCY0JvQldCd0JrQngor0JHQoNCX0JDQmiDQnNCY0JvQntCS0JDQnQor0JHQoNCX0JDQmiDQnNCY0JvQntCS0JDQnQor0JHQoNCX0JDQmiDQnNCY0KDQkAor0JHQoNCX0JDQmiDQnNCY0KDQkAor0JHQoNCX0JDQmiDQnNCY0KDQntCh0JvQkNCSCivQkdCg0JfQkNCaINCc0JjQotCQ0KAKK9CR0KDQl9CQ0Jog0J/QldCi0JDQoAor0JHQoNCX0JDQmiDQn9Cg0JXQlNCg0JDQkwor0JHQoNCX0JDQmiDQoNCQ0JTQntCh0JvQkNCSCivQkdCg0JfQkNCaINCh0JDQktCQCivQkdCg0JfQkNCaINCh0JDQktCV0KLQkAor0JHQoNCX0JDQmiDQodCY0JzQldCe0J0KK9CR0KDQl9CQ0Jog0KHQm9CQ0JLQmtCeCivQkdCg0JfQkNCaINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQkdCg0JfQkNCaINCh0KLQldCS0JDQnQor0JHQoNCX0JDQmiDQodCi0JXQktCQ0J0KK9CR0KDQl9CQ0Jog0KHQotCV0JLQkNCdCivQkdCg0JfQkNCaINCh0KLQntCI0JDQndCa0JAKK9CR0KDQl9CQ0Jog0KHQktCV0KLQm9CQ0J3QkAor0JHQoNCX0JDQmiDQodCS0JXQotCe0JfQkNCgCivQkdCg0JfQkNCaINCi0J7QqNCQCivQkdCg0JfQkNCaINCi0J7QqNCQCivQkdCg0JfQkNCaINCi0J7QqNCY0KbQkAor0JHQoNCX0JDQmiDQotCe0JTQntCgCivQkdCg0JfQkNCaINCS0JDQodCQCivQkdCg0JfQkNCaINCS0JDQodCQCivQkdCg0JfQkNCaINCS0JDQodCQCivQkdCg0JfQkNCaINCS0JXQidCa0J4KK9CR0KDQl9CQ0Jog0JLQmNCU0JAKK9CR0KDQl9CQ0Jog0JLQmNCU0J7QodCQ0JLQkAor0JHQoNCX0JDQmiDQktCY0JTQntCh0JvQkNCSCivQkdCg0JfQkNCaINCS0JvQkNCU0JjQodCb0JDQkgor0JHQoNCX0JDQmiDQl9Ce0KDQkNCdCivQkdCg0JfQkNCa0J7QktCY0Isg0JjQk9Ce0KAKK9CR0KDQl9CQ0JrQntCS0JjQiyDQndCV0J3QkNCUINCU0KAKK9CR0KDQl9CQ0JrQntCS0JjQiyDQktCY0KLQntCc0JjQoCDQlNCgINCb0JXQmtCQ0KAKK9CR0KDQl9CQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0KDQl9CY0Isg0JbQmNCS0JDQnQor0JHQoNCX0JjQiyDQgtCe0KDQgtCVCivQkdCg0JfQmNCLINCR0KDQkNCd0JrQngor0JHQoNCX0JjQiyDQpNCg0JDQitCQCivQkdCg0JfQmNCLINCY0JLQkNCdCivQkdCg0JfQmNCLINCI0J7QktCQ0J0KK9CR0KDQl9CY0Isg0JvQkNCX0JDQoAor0JHQoNCX0JjQiyDQm9CQ0JfQkNCgCivQkdCg0JfQmNCLINCc0JjQoNCI0JDQndCQCivQkdCg0JfQmNCLINCf0JXQotCQ0KAKK9CR0KDQl9CY0Isg0J/QldCi0JDQoAor0JHQoNCX0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQkdCg0JfQmNCLINCh0KLQldCS0JDQnQor0JHQoNCX0JjQiyDQodCS0JXQotCe0JfQkNCgCivQkdCg0JfQmNCLINCi0J7QlNCe0KAKK9CR0KDQl9CY0Isg0JfQm9CQ0KLQkAor0JHQoNCX0JjQptCQINCR0KDQkNCd0JrQkAor0JHQoNCX0JjQptCQINCk0JXQoNCU0J4KK9CR0KDQl9CY0KbQkCDQmNCS0JDQndCa0JAKK9CR0KDQl9CY0KbQkCDQnNCQ0KDQmNCd0JrQngor0JHQoNCX0J7QktCQ0J0g0JHQldCl0JjQiNCQCivQkdCjINCY0KjQotCS0JDQnQor0JHQo9Cn0JAg0JTQo9Co0JDQnQor0JHQo9Cn0JAg0JTQo9Co0JjQptCQCivQkdCj0KfQkCDQmNCg0JjQndCQCivQkdCj0KfQkCDQktCQ0KHQkAor0JHQo9Cn0JDQndCh0JrQmCDQiNCe0JbQldCkCivQkdCj0KfQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CR0KPQp9Ca0J4g0JDQpdCd0JXQotCQCivQkdCj0KfQmtCeINCI0JDQndCa0J4KK9CR0KPQp9Ca0J4g0JzQkNCg0JjQiNCQCivQkdCj0KfQniDQlNCQ0J3QmNCI0JXQm9CQCivQkdCj0KfQoy3QnNCQ0KDQotCe0J3QntCo0Jgg0JPQmNCX0JXQm9CQCivQkdCj0Kgg0JDQndCQCivQkdCj0Kgg0JzQkNCT0JTQkNCb0JXQndCQCivQkdCj0Kgg0KHQmNCb0JLQldCh0KLQldCgCivQkdCj0KjQmNCLINCh0KDQldCL0JrQngor0JHQo9Co0InQldCi0JAg0JHQoNCQ0J3QmtCQCivQkdCj0KjQotCg0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0KPQqNCi0KDQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JHQo9Co0KLQoNCe0JLQmNCLINCe0JvQk9CQCivQkdCj0IvQkNCdINCU0KPQqNCQ0J0KK9CR0KPQi9CQ0J0g0JTQo9Co0JDQnQor0JHQo9CL0JDQnSDQnNCY0JvQldCS0JAKK9CR0KPQi9CQ0J0g0KHQm9CQ0JLQmtCQCivQkdCj0IvQkNCd0KHQmtCYINCc0JDQi9CQ0KgKK9CR0KPQi9CY0J0g0KDQkNCU0JUKK9CR0KPQi9CeINCX0JDQk9Ce0KDQmtCQCivQkdCj0JbQkNCd0KfQmNCLINCc0JjQoNCQCivQkdCj0JbQkNCd0JjQnSDQnNCY0JvQlQor0JHQo9CC0Jgg0ILQo9Cb0JAKK9CR0KPQgtCY0JvQkNCdINCf0JXQotCQ0KAKK9CR0KPQkNCn0JAg0JTQoNCQ0JPQkNCdCivQkdCj0JDQp9CQINCe0JvQk9CY0KbQkAor0JHQo9CQ0KfQkCDQodCi0JXQktCQ0J0KK9CR0KPQkdCQ0JvQniDQlNCg0JDQk9CQ0J0KK9CR0KPQkdCQ0JvQniDQlNCg0JDQk9CY0IrQkAor0JHQo9CR0JDQm9CeINCT0J7QoNCQ0J0KK9CR0KPQkdCQ0JvQniDQmNCb0JjQiNCQCivQkdCj0JHQkNCb0J4g0IjQntCS0JDQnQor0JHQo9CR0JDQm9CeINCI0J7QktCeCivQkdCj0JHQkNCb0J4g0JzQmNCg0J7QodCb0JDQkgor0JHQo9CR0JDQm9CeINCf0JXQotCQ0KAKK9CR0KPQkdCQ0JvQniDQoNCQ0KLQntCc0JjQoAor0JHQo9CR0JDQm9CeINCh0JjQnNCeCivQkdCj0JHQkNCb0J4g0KLQldCe0JTQntCg0JAKK9CR0KPQkdCQ0Iog0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCj0JHQkNCKINCU0JDQndCVCivQkdCj0JHQkNCKINCY0JLQkNCd0JrQkAor0JHQo9CR0JDQiiDQnNCY0JvQmNCm0JAKK9CR0KPQkdCQ0Iog0JzQmNCb0J7QqAor0JHQo9CR0JDQiiDQoNCQ0JTQlQor0JHQo9CR0JDQiiDQoNCQ0JTQntCI0JrQkAor0JHQo9CR0JDQiiDQodCg0JHQntCJ0KPQkQor0JHQo9CR0JDQiiDQktCY0JTQntCh0JDQktCQCivQkdCj0JHQkNCK0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQkdCQ0IrQkCDQkdCQ0KLQoNCY0IsKK9CR0KPQkdCQ0IrQkCDQlNCQ0KDQmNCd0JrQkAor0JHQo9CR0JDQitCQINCa0JDQotCY0KbQkAor0JHQo9CR0JDQitCQINCc0JDQqNCQ0J0KK9CR0KPQkdCQ0IrQkCDQoNCQ0JTQmNCh0JDQkgor0JHQo9CR0JDQitCQINCi0JDQlNCY0IjQkAor0JHQo9CR0JDQitCQINCS0J7QiNCY0KHQm9CQ0JIKK9CR0KPQkdCQ0IrQkCDQl9Ce0KDQmtCQCivQkdCj0JHQmNCLINCc0JjQm9CQ0J0KK9CR0KPQkdCd0JjQiyDQktCV0KDQntCd0JAKK9CR0KPQkdCK0JXQktCY0Isg0ILQntCg0ILQlQor0JHQo9CR0IrQldCS0JjQiyDQkdCe0KDQlQor0JHQo9CR0IrQldCS0JjQiyDQlNCQ0KDQkAor0JHQo9CR0IrQldCS0JjQiyDQlNCg0JDQk9CeCivQkdCj0JHQitCV0JLQmNCLINCT0J7QiNCa0J4KK9CR0KPQkdCK0JXQktCY0Isg0IjQkNCK0JAKK9CR0KPQkdCK0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0KPQkdCK0JXQktCY0Isg0JzQkNCg0JjQptCQCivQkdCj0JHQitCV0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQkdCj0JHQitCV0JLQmNCLINCc0JjQoNCa0J4KK9CR0KPQkdCK0JXQktCY0Isg0J3QldCd0JDQlAor0JHQo9CR0IrQldCS0JjQiyDQntCh0KLQntCI0JAKK9CR0KPQkdCK0JXQktCY0Isg0KDQkNCU0JAKK9CR0KPQkdCK0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CR0KPQkdCK0JXQktCY0Isg0KDQldCJ0JAKK9CR0KPQkdCK0JXQktCY0Isg0KHQoNCR0J7QidCj0JEKK9CR0KPQkdCK0JXQktCY0Isg0KHQoNCV0KLQldCdCivQkdCj0JHQitCV0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9CR0KPQkdCK0JXQktCY0Isg0JLQkNCh0JrQoNCh0JjQiNCVCivQkdCj0JHQitCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0KPQkdCK0JjQiyDQltCV0InQmtCeCivQkdCj0JHQntCK0JAg0JHQntCg0JjQoQor0JHQo9CR0J7QitCQINCU0J7QodCi0JDQndCQCivQkdCj0JHQntCK0JAg0JTQo9Co0JDQnQor0JHQo9CR0J7QitCQINCg0JDQlNCe0JLQkNCdCivQkdCj0JHQoNCV0KjQmtCeINCT0J7QoNCU0JDQndCQCivQkdCj0JHQo9CJINCc0JjQm9CY0IsKK9CR0KPQkdCj0Ikg0J3QkNCU0JAKK9CR0KPQkdCj0Ikg0KHQotCe0IjQkNCd0JrQkAor0JHQo9CR0KPQiSDQodCi0J7QiNCQCivQkdCj0KbQkNCb0J4g0JzQmNCb0JDQlNCY0J0KK9CR0KPQptCQ0JvQniDQnNCY0KDQkAor0JHQo9Cm0JDQm9CeINCc0JjQotCQ0KAKK9CR0KPQptCQ0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQkdCj0KbQmNCLINCQ0J3QotCVCivQkdCj0KbQmNCLINCc0JjQm9CY0JLQntCICivQkdCj0KbQo9CJ0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQptCj0InQldCS0JjQiyDQl9Cb0JDQotCe0JzQmNCgINCU0KAKK9CR0KPQj9CQ0JrQntCh0JrQmCDQotCe0JzQkAor0JHQo9CP0JDQoNCe0JIg0KHQkNCS0JAKK9CR0KPQlNCQINCQ0JTQkAor0JHQo9CU0JAg0JXQktCQCivQkdCj0JTQkCDQpdCQ0IjQndCQ0JvQmtCQCivQkdCj0JTQkCDQiNCe0JbQldCkCivQkdCj0JTQkCDQotCV0KDQldCX0JAKK9CR0KPQlNCQ0Isg0JfQntCg0JDQnQor0JHQo9CU0JDQmCDQk9Ce0KDQmNCm0JAKK9CR0KPQlNCQ0Jgg0JjQm9Ce0J3QmtCQCivQkdCj0JTQkNCYINCI0J7QltCV0KQKK9CR0KPQlNCQ0Jgg0IjQntCb0JDQnQor0JHQo9CU0JDQmCDQiNCe0JLQkNCdCivQkdCj0JTQkNCYINCb0JDQiNCe0KgKK9CR0KPQlNCQ0Jgg0JvQkNCI0J7QqAor0JHQo9CU0JDQmCDQl9Ce0KDQkAor0JHQo9CU0JDQmiDQlNCg0JDQk9CQ0J0KK9CR0KPQlNCQ0Jog0JjQktCY0KbQkAor0JHQo9CU0JDQmiDQnNCY0JvQkNCdCivQkdCj0JTQkNCaINCS0JXQoNCQCivQkdCj0JTQkNCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JHQo9CU0JDQmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCj0JTQkNCa0J7QkiDQlNCg0JDQk9CQ0J0KK9CR0KPQlNCQ0JrQntCSINCT0J7QoNCY0KbQkAor0JHQo9CU0JDQmtCe0JIg0JjQktCQ0J0KK9CR0KPQlNCQ0JrQntCSINCJ0JjQidCQ0J3QkAor0JHQo9CU0JDQmtCe0JIg0JzQmNCb0JDQnQor0JHQo9CU0JDQmtCe0JIg0JzQmNCb0KPQotCY0J0KK9CR0KPQlNCQ0JrQntCSINCe0JvQmNCS0JXQoNCQCivQkdCj0JTQkNCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQkdCj0JTQkNCd0J7QkiDQkNCd0KLQkNCbCivQkdCj0JTQkNCd0J7QkiDQlNCQ0J3QmNCm0JAKK9CR0KPQlNCQ0J3QntCS0JjQiyDQodCQ0JLQldCi0JAKK9CR0KPQlNCQ0J3QntCS0JjQiyDQodCi0JDQndCQCivQkdCj0JTQldCg0JrQkCDQnNCQ0KDQmNCI0JAKK9CR0KPQlNCY0KjQkCDQkdCe0JbQkAor0JHQo9CU0JjQqNCQINCR0J7QoNCQCivQkdCj0JTQmNCo0JAg0JzQmNCg0JrQngor0JHQo9CU0JjQqNCQINCi0JjQpdCe0JzQmNCgCivQkdCj0JTQmNCo0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0KPQlNCY0KjQmNCdINCC0J7QoNCC0JUKK9CR0KPQlNCY0KjQmNCdINCY0JLQkNCdCivQkdCj0JTQmNCo0JjQnSDQnNCY0JvQntCoCivQkdCj0JTQmNCo0JjQnSDQnNCY0JvQntCoCivQkdCj0JTQmNCo0JjQnSDQndCY0JrQntCb0JAg0JTQoAor0JHQo9CU0JjQqNCY0J0t0KHQkNCa0JDQpyDQodCe0IrQkCDQlNCgCivQkdCj0JTQmNCo0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQkdCj0JTQmNCLINCW0JXQidCa0J4KK9CR0KPQlNCY0Isg0JTQkNCd0JjQm9CeCivQkdCj0JTQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JHQo9CU0JjQiyDQlNCj0KjQkNCd0JrQkAor0JHQo9CU0JjQiyDQnNCY0JvQkNCdCivQkdCj0JTQmNCLINCX0J7QoNCa0JAKK9CR0KPQlNCY0JzQp9CY0Isg0IjQntCS0JDQnQor0JHQo9CU0JjQnNCn0JjQiyDQidCY0InQkNCd0JAKK9CR0KPQlNCY0JzQp9CY0Isg0JzQmNCb0JjQktCe0IgKK9CR0KPQlNCY0JzQkCDQkdCQ0IjQoNCj0KgKK9CR0KPQlNCY0JzQkNCmINCR0KPQlNCY0JzQmNCgCivQkdCj0JTQmNCc0JDQpiDQl9Ce0KDQkNCdCivQkdCj0JTQmNCc0JjQoCDQnNCQ0KDQmNCI0JAKK9CR0KPQlNCY0JzQmNCgINCc0JjQm9CQ0J0KK9CR0KPQlNCY0JzQmNCgINCc0JjQm9Ce0IjQmtCeCivQkdCj0JTQmNCc0JjQoNCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQkdCj0JTQmNCc0JjQoNCe0JLQmNCLINCd0JXQk9Ce0JLQkNCdCivQkdCj0JTQmNCc0JjQoNCe0JLQmNCLINCj0KDQntCoCivQkdCj0JTQmNCc0JrQmNCLLdCa0KDQodCi0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JHQo9CU0JjQnNCb0JjQiNCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCj0JTQmNCc0JvQmNCI0JAg0JTQoNCQ0JPQmNCm0JAKK9CR0KPQlNCY0JzQm9CY0IjQkCDQmNCb0JjQiNCQCivQkdCj0JTQmNCc0JvQmNCI0JAg0JzQmNCb0JDQnQor0JHQo9CU0JjQnNCb0JjQiNCQINCc0JjQm9CQ0J0KK9CR0KPQlNCY0JzQm9CY0IjQkCDQoNCQ0JTQlQor0JHQo9CU0JjQnNCh0JrQmCDQgtCj0KDQkAor0JHQo9CU0JjQnNCh0JrQmCDQodCb0JDQktCj0IgKK9CR0KPQlNCY0J3Qp9CV0JLQmNCLINCT0JDQkdCe0KAKK9CR0KPQlNCY0J3Qp9CV0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9CR0KPQlNCY0J3Qp9CV0JLQmNCLINCc0JjQoNCa0J4KK9CR0KPQlNCY0J3Qp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JHQo9CU0JjQndCh0JrQmCDQmtCY0KDQmNCbCivQkdCj0JTQmNCd0KHQmtCYINCJ0KPQkdCQCivQkdCj0JTQmNCd0KHQmtCYINCc0JDQoNCY0IjQkAor0JHQo9CU0JjQndCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQkdCj0JTQmNCh0JDQktCJ0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCj0JTQmNCh0JDQktCJ0JXQktCY0Isg0JTQo9Co0JDQnQor0JHQo9CU0JjQodCQ0JLQidCV0JLQmNCLINCa0JDQoNCe0JvQmNCd0JAKK9CR0KPQlNCY0KHQkNCS0InQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0KPQlNCY0KHQkNCS0InQldCS0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQkdCj0JTQmNCh0JDQktCJ0JXQktCY0Isg0J3QldCS0JXQndCa0JAKK9CR0KPQlNCY0KHQkNCS0InQldCS0JjQiyDQoNCj0JbQmNCm0JAKK9CR0KPQlNCY0KHQkNCS0InQldCS0JjQiyDQktCV0KDQmNCm0JAKK9CR0KPQlNCI0JjQm9CQ0J0g0J/QldCi0JDQoAor0JHQo9CU0J7QqNCQ0J0g0JbQmNCS0JrQngor0JHQo9CU0J7QqNCQ0J0g0ILQntCg0ILQlQor0JHQo9CU0J7QqNCQ0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQlNCe0KjQkNCdLdCa0J7QktCQ0Kcg0IjQldCb0JXQndCQCivQkdCj0JTQntCo0JDQnSDQnNCY0JvQntCoCivQkdCj0JTQntCo0JDQnSDQndCQ0JTQkAor0JHQo9CU0J7QqNCQ0J0g0KHQkNCS0JAKK9CR0KPQlNCe0KjQkNCdINCh0JDQktCQCivQkdCj0JTQntCo0JDQnSDQodCi0JXQktCQ0J0KK9CR0KPQlNCe0KjQkNCdINCi0J7QqNCY0KbQkAor0JHQo9CU0J7QqNCQ0J0g0JLQkNCh0JAKK9CR0KPQlNCe0KjQkNCdINCS0JDQodCQCivQkdCj0JTQntCo0JDQnSDQktCj0JrQntCh0JDQktCQCivQkdCj0JTQntCS0JDQm9Cn0JXQkiDQkNCg0KHQkAor0JHQo9CU0J7QktCQ0JvQp9CV0JIg0J7Qm9CT0JAKK9CR0KPQlNCe0JLQkNCb0KfQldCSINCf0JXQotCQ0KAKK9CR0KPQlNCe0JLQkNCb0KfQldCSINCf0JXQotCQ0KAKK9CR0KPQlNCj0KDQmNCdINCg0JDQlNCe0IjQlQor0JHQo9CT0JDQj9CY0IjQkCDQm9CQ0IjQntCoCivQkdCj0JPQkNCP0JjQiNCQINCh0KLQldCS0JDQnQor0JHQo9CT0JDQoNCn0JjQiyDQn9CV0KLQkNCgCivQkdCj0JPQkNCg0KfQmNCLINCg0JDQlNCc0JjQm9CeCivQkdCj0JPQkNCg0KfQmNCLINCh0JzQmNCJ0JrQkAor0JHQo9CT0JDQoNCY0J0t0KfQntCd0JrQmNCLINCg0JDQlNCe0IjQmtCQCivQkdCj0JPQkNCg0JjQnSDQltCY0JLQkNCdCivQkdCj0JPQkNCg0JjQnSDQltCY0JLQkNCdCivQkdCj0JPQkNCg0JjQnSDQltCY0JLQkNCdCivQkdCj0JPQkNCg0JjQnSDQltCY0JLQkNCdCivQkdCj0JPQkNCg0JjQnSDQkdCe0KjQmtCeCivQkdCj0JPQkNCg0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQkdCj0JPQkNCg0JjQnSDQlNCQ0J3QmNCm0JAKK9CR0KPQk9CQ0KDQmNCdINCY0JvQmNCI0JAKK9CR0KPQk9CQ0KDQmNCdINCY0JLQkNCd0JAKK9CR0KPQk9CQ0KDQmNCdINCI0JXQktCg0J7QodCY0JzQkAor0JHQo9CT0JDQoNCY0J0g0InQmNCJ0JDQndCQCivQkdCj0JPQkNCg0JjQnSDQidCj0JHQntCc0JjQoAor0JHQo9CT0JDQoNCY0J0g0JzQkNCg0JjQiNCQCivQkdCj0JPQkNCg0JjQnSDQnNCY0JvQntCoCivQkdCj0JPQkNCg0JjQnSDQnNCY0JvQntCg0JDQlAor0JHQo9CT0JDQoNCY0J0g0KDQkNCU0JjQodCb0JDQkgor0JHQo9CT0JDQoNCY0J0g0KDQkNCU0J7QodCb0JDQkgor0JHQo9CT0JDQoNCY0J0g0KHQmNCd0JjQqNCQCivQkdCj0JPQkNCg0JjQnSDQodCf0JDQodCe0IjQlQor0JHQo9CT0JDQoNCY0J0g0KHQotCV0JLQkNCdCivQkdCj0JPQkNCg0JjQnSDQktCV0JvQmNCR0J7QoAor0JHQo9CT0JDQoNCY0J0g0JLQldCh0J3QkAor0JHQo9CT0JDQoNCY0J0g0JfQntCg0JDQnQor0JHQo9CT0JDQoNCY0J0g0JfQntCg0JjQptCQCivQkdCj0JPQkNCg0JjQndCe0JLQmNCLINCc0JDQoNCT0JDQoNCV0KLQkAor0JHQo9CT0JDQoNCY0KMg0IjQo9Cb0JjQiNCQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0JbQkNCg0JrQngor0JHQo9CT0JDQoNCh0JrQmCDQltCY0JrQkAor0JHQo9CT0JDQoNCh0JrQmCDQltCY0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JHQo9CT0JDQoNCh0JrQmCDQgtCe0KDQgtCVCivQkdCj0JPQkNCg0KHQmtCYINCC0J7QoNCC0JUKK9CR0KPQk9CQ0KDQodCa0Jgg0ILQo9Cg0JjQptCQCivQkdCj0JPQkNCg0KHQmtCYINCR0J7QiNCQ0J3QkAor0JHQo9CT0JDQoNCh0JrQmCDQkdCg0JDQndCa0J4KK9CR0KPQk9CQ0KDQodCa0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQkdCj0JPQkNCg0KHQmtCYINCU0JjQnNCY0KLQoNCY0IjQlQor0JHQo9CT0JDQoNCh0JrQmCDQlNCg0JDQk9CQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0JTQoNCQ0JPQmNCm0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JTQoNCQ0JPQntCJ0KPQkSDQlNCgCivQkdCj0JPQkNCg0KHQmtCYINCU0KDQkNCT0J7QidCj0JEKK9CR0KPQk9CQ0KDQodCa0Jgg0JTQoNCQ0JPQntCh0JvQkNCSCivQkdCj0JPQkNCg0KHQmtCYINCU0KDQkNCT0J7QodCb0JDQkgor0JHQo9CT0JDQoNCh0JrQmCDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CR0KPQk9CQ0KDQodCa0Jgg0JTQo9Co0JDQnSDQlNCgCivQkdCj0JPQkNCg0KHQmtCYINCU0KPQqNCQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0JTQo9Co0JjQptCQCivQkdCj0JPQkNCg0KHQmtCYINCU0KPQqNCY0KbQkAor0JHQo9CT0JDQoNCh0JrQmCDQlNCj0KjQmtCeCivQkdCj0JPQkNCg0KHQmtCYINCV0JLQmNCm0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0IjQntCS0JDQnQor0JHQo9CT0JDQoNCh0JrQmCDQiNCj0JvQmtCQCivQkdCj0JPQkNCg0KHQmtCYINCa0JDQotCQCivQkdCj0JPQkNCg0KHQmtCYINCa0KDQodCi0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JrQodCV0J3QmNCI0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JvQkNCX0JDQoAor0JHQo9CT0JDQoNCh0JrQmCDQm9CQ0JfQkNCgCivQkdCj0JPQkNCg0KHQmtCYINCc0JjQm9CQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0JzQmNCb0JDQnQor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0JvQldCd0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JzQmNCb0JXQndCa0J4KK9CR0KPQk9CQ0KDQodCa0Jgg0JzQmNCb0JXQotCQCivQkdCj0JPQkNCg0KHQmtCYINCc0JjQm9CY0KbQkAor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0JvQntCg0JDQlAor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0KDQkAor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0KDQiNCQ0J3QkAor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0KDQiNCQ0J3QkAor0JHQo9CT0JDQoNCh0JrQmCDQnNCY0KDQntCh0JvQkNCS0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JHQo9CT0JDQoNCh0JrQmCDQndCQ0JTQkAor0JHQo9CT0JDQoNCh0JrQmCDQndCV0JTQldCJ0JrQngor0JHQo9CT0JDQoNCh0JrQmCDQndCY0JrQntCb0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0J7Qm9CY0JLQldCg0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0J/QkNCI0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0J/QkNCS0JvQlQor0JHQo9CT0JDQoNCh0JrQmCDQoNCQ0JTQntCh0JvQkNCSCivQkdCj0JPQkNCg0KHQmtCYINCg0JDQodCi0JrQngor0JHQo9CT0JDQoNCh0JrQmCDQoNCQ0KLQntCc0JjQoAor0JHQo9CT0JDQoNCh0JrQmCDQodCQ0JLQkAor0JHQo9CT0JDQoNCh0JrQmCDQodCQ0JLQkAor0JHQo9CT0JDQoNCh0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQkdCj0JPQkNCg0KHQmtCYINCh0JvQntCR0J7QlNCQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0KHQm9Ce0JHQntCU0JDQnQor0JHQo9CT0JDQoNCh0JrQmCDQodCe0KTQmNCI0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0KHQotCV0JLQkNCdCivQkdCj0JPQkNCg0KHQmtCYINCh0KLQldCS0JDQnQor0JHQo9CT0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9CR0KPQk9CQ0KDQodCa0Jgg0KHQotCV0JLQkNCdCivQkdCj0JPQkNCg0KHQmtCYINCh0JLQldCi0JvQkNCd0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0KLQkNCi0IjQkNCd0JAKK9CR0KPQk9CQ0KDQodCa0Jgg0JLQntCI0JjQodCb0JDQktCQCivQkdCj0JPQkNCg0KHQmtCYINCS0J7QiNCY0KHQm9CQ0JIKK9CR0KPQk9CQ0KDQodCa0Jgg0JLQntCI0JjQodCb0JDQkgor0JHQo9CT0JDQoNCh0JrQmCDQl9Ce0KDQkAor0JHQo9CT0JXQiSDQmNCS0JDQnQor0JHQo9Cl0JAg0JHQoNCQ0J3QmtCQCivQkdCj0KXQkCDQoNCQ0JTQmNCS0J7QiNCVCivQkdCj0KXQkCDQktCj0JrQkNCo0JjQnQor0JHQo9Cl0JzQmNCb0JXQoCDQkNCT0J3QldCoCivQkdCj0KXQnNCY0JvQldCgINCQ0KLQmNCb0JAKK9CR0KPQpdCc0JjQm9CV0KAg0JXQktCQCivQkdCj0KXQnNCY0JvQldCgINCI0J7QodCY0J8KK9CR0KPQpdCc0JjQm9CV0KAg0IjQntCh0JjQnwor0JHQo9Cl0JzQmNCb0JXQoCDQmtCQ0KDQm9CeCivQkdCj0JjQqNCQINCc0JjQm9CY0J3QmtCeCivQkdCj0JjQm9CQINCQ0J3QkAor0JHQo9CY0JvQkCDQmNCg0JjQndCV0IgKK9CR0KPQmNCb0JAg0InQo9CR0JjQptCQCivQkdCj0JjQm9CQINCc0JDQmtCh0JjQnNCY0JvQmNCI0JDQnQor0JHQo9CY0JvQkCDQnNCY0KDQntCh0JvQkNCSCivQkdCj0JjQm9CQINCh0JvQkNCS0JjQptCQCivQkdCj0JjQm9CQINCh0JvQkNCS0J7QnNCY0KAKK9CR0KPQiNCQ0Jog0JXQnNCY0JsKK9CR0KPQiNCQ0Jog0JzQkNCi0JjQm9CU0JAKK9CR0KPQiNCQ0Jog0KHQkNCS0JAKK9CR0KPQiNCQ0J3QlNCg0JjQiyDQkNCd0ILQldCb0JrQkAor0JHQo9CI0JDQndCU0KDQmNCLINCI0J7QktCQ0J0KK9CR0KPQiNCQ0J3QlNCg0JjQiyDQidCj0JHQmNCm0JAKK9CR0KPQiNCQ0J3QlNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0KPQiNCQ0J3QlNCg0JjQiyDQnNCY0JvQmNCS0J7QiAor0JHQo9CI0JDQndCU0KDQmNCLINCc0JjQotCQ0KAKK9CR0KPQiNCQ0J3QlNCg0JjQiyDQndCY0JrQntCb0JAKK9CR0KPQiNCQ0J3QlNCg0JjQiyDQn9CQ0JLQm9CVCivQkdCj0IjQkNCd0JTQoNCY0Isg0J/QldCi0JDQoAor0JHQo9CI0JDQndCU0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CR0KPQiNCQ0J3QlNCg0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCj0IjQkNChINCc0JjQm9CV0J3QmtCeCivQkdCj0IjQkNChINCS0JXQndCn0JXQodCb0JDQkgor0JHQo9CI0JTQntCo0JAg0KHQotCV0JLQkNCdCivQkdCj0IjQlNCe0KjQmNCaINCR0J7QpdCe0JzQmNCbCivQkdCj0IjQlNCe0KjQmNCaINCa0JvQkNCg0JAKK9CR0KPQiNCU0J7QqNCY0Jog0JzQmNCg0J7QodCb0JDQkgor0JHQo9CI0JTQntCo0J4g0JjQqNCi0JLQkNCdCivQkdCj0IjQmNCo0JjQiyDQltCY0JLQmtCeCivQkdCj0IjQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CR0KPQiNCb0JAg0JXQotCV0JvQmtCQCivQkdCj0IjQm9CQINCI0JDQodCc0JjQndCQCivQkdCj0IjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CR0KPQiNCd0J7QktCY0Isg0JzQmNCb0JjQndCa0J4KK9CR0KPQmtCQ0JvQntCSINCX0J7QoNCQCivQkdCj0JrQkNCg0JAg0JTQo9Co0JDQndCa0JAKK9CR0KPQmtCQ0KDQmNCm0JAg0JTQkNCd0JjQptCQCivQkdCj0JrQkNCg0JjQptCQINCI0J7QktCQ0J0KK9CR0KPQmtCQ0KLQmtCQINCQ0J3QlNCg0JXQiAor0JHQo9Ca0JDQotCa0JAg0KDQkNCU0J7QodCb0JDQkgor0JHQo9Ca0JDQotCa0J4g0JLQm9CQ0JTQmNCc0JjQoAor0JHQo9Ca0JDQotCa0J7QkiDQmNCS0JDQnQor0JHQo9Ca0JjQiyDQiNCQ0JrQntCSCivQkdCj0JrQmNCb0JjQiyDQlNCg0JDQk9CQCivQkdCj0JrQmNCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0JHQo9Ca0JjQnSDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0JjQndCTCivQkdCj0JrQmNCd0JDQpiDQgtCe0KDQgtCVCivQkdCj0JrQmNCd0JDQpiDQkdCY0InQkNCd0JAKK9CR0KPQmtCY0J3QkNCmINCR0J7Qk9Cj0JzQmNCb0JAKK9CR0KPQmtCY0J3QkNCmINCU0JjQndCQCivQkdCj0JrQmNCd0JDQpiDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9CR0KPQmtCY0J3QkNCmINCY0JLQkNCdCivQkdCj0JrQmNCd0JDQpiDQiNCj0JvQmtCQCivQkdCj0JrQmNCd0JDQpiDQm9CQ0JfQkNCgCivQkdCj0JrQmNCd0JDQpiDQnNCY0JvQkNCU0JjQnQor0JHQo9Ca0JjQndCQ0KYg0JzQmNCb0JDQnQor0JHQo9Ca0JjQndCQ0KYg0JzQmNCb0JjQptCQCivQkdCj0JrQmNCd0JDQpiDQnNCY0JvQntCh0JDQktCQCivQkdCj0JrQmNCd0JDQpiDQnNCY0KDQmtCeCivQkdCj0JrQmNCd0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQkdCj0JrQmNCd0JDQpiDQoNCj0JbQmNCm0JAKK9CR0KPQmtCY0J3QkNCmINCh0JvQkNCS0JrQngor0JHQo9Ca0JjQndCQ0KYg0KHQotCQ0J3QmtCQCivQkdCj0JrQmNCd0JDQpiDQodCi0JXQktCQ0J0KK9CR0KPQmtCY0J3QkNCmINCj0KDQntCoCivQkdCj0JrQntCS0KfQkNCd0JjQnSDQkNCm0JAKK9CR0KPQmtCe0JLQkNCn0JrQmCDQnNCY0J7QlNCg0JDQkwor0JHQo9Ca0J7QktCQ0KfQmtCYINCf0JXQoNCQCivQkdCj0JrQntCS0JDQp9Ca0Jgg0KHQktCV0KLQntCX0JDQoAor0JHQo9Ca0J7QktCQ0KYg0JDQndCa0JjQptCQCivQkdCj0JrQntCS0JDQpiDQkNCi0JjQm9CQCivQkdCj0JrQntCS0JDQpiDQodCi0JXQktCQ0J0KK9CR0KPQmtCe0JLQkNCmINCS0JvQkNCU0J4KK9CR0KPQmtCe0JLQkNCb0JAg0JTQldCh0JDQndCa0JAKK9CR0KPQmtCe0JLQmNCn0JDQndCY0J0g0KDQldCJ0JAKK9CR0KPQmtCe0JLQmNCLINCQ0J3QlNCg0JDQqAor0JHQo9Ca0J7QktCY0KbQkCDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0KPQmtCe0JLQmNCm0JAg0KDQkNCd0JrQngor0JHQo9Ca0KLQkCDQndCQ0JTQkAor0JHQo9Ca0KLQkCDQl9CS0J7QndCa0J4KK9CR0KPQmtCj0JzQmNCg0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9CR0KPQmtCj0JzQmNCg0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQmNCf0Jsg0JjQndCTCivQkdCj0JrQo9Cg0JXQptCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQkdCj0JrQo9Cg0JXQptCa0Jgg0KHQmNCd0JjQqNCQCivQkdCj0JrQo9Cg0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JHQo9Ca0KPQoNCe0JIg0JbQkNCg0JrQngor0JHQo9Ca0KPQoNCe0JIg0JbQmNCS0JDQnQor0JHQo9Ca0KPQoNCe0JIg0JbQmNCS0JDQnQor0JHQo9Ca0KPQoNCe0JIg0JHQntCo0JrQngor0JHQo9Ca0KPQoNCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0KAg0J/QoNCe0KQKK9CR0KPQmtCj0KDQntCSINCa0KHQldCd0JjQiNCQCivQkdCj0JrQktCQINCS0JXQm9CY0JzQmNCgCivQkdCj0JrQktCY0Isg0JbQldCJ0JrQkAor0JHQo9Ca0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCj0JrQktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCj0JrQktCY0Isg0JHQo9CU0JUKK9CR0KPQmtCS0JjQiyDQlNCQ0J3QlQor0JHQo9Ca0JLQmNCLINCU0JDQndCY0JvQngor0JHQo9Ca0JLQmNCLINCU0JDQndCY0JvQngor0JHQo9Ca0JLQmNCLINCU0KDQkNCT0JDQnQor0JHQo9Ca0JLQmNCLINCU0KPQqNCQ0J0KK9CR0KPQmtCS0JjQiyDQmNCb0JjQiNCQCivQkdCj0JrQktCY0Isg0JjQm9CY0J3QmtCQCivQkdCj0JrQktCY0Isg0IjQkNCd0JrQngor0JHQo9Ca0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCj0JrQktCY0Isg0IjQntCS0JDQnQor0JHQo9Ca0JLQmNCLINCa0J7QktCY0InQmtCQCivQkdCj0JrQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CR0KPQmtCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CR0KPQmtCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0JHQo9Ca0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQkdCj0JrQktCY0Isg0JzQmNCb0JrQkAor0JHQo9Ca0JLQmNCLINCc0JjQm9Ce0KgKK9CR0KPQmtCS0JjQiyDQnNCY0JvQntCoCivQkdCj0JrQktCY0Isg0JzQmNCb0J7QqAor0JHQo9Ca0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQkdCj0JrQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JHQo9Ca0JLQmNCLINCc0JvQkNCU0JXQnQor0JHQo9Ca0JLQmNCLINCd0J7QktCY0KbQkAor0JHQo9Ca0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQkdCj0JrQktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CR0KPQmtCS0JjQiyDQodCe0KTQmNCI0JAKK9CR0KPQmtCS0JjQiyDQodCi0JXQktCQ0J0KK9CR0KPQmtCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQkdCj0JrQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQo9Ca0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQkdCj0JrQktCY0Isg0JLQm9CQ0JTQngor0JHQo9Cb0JDQmNCLINCg0JXQidCQCivQkdCj0JvQkNCI0JjQiyDQgtCj0KDQngor0JHQo9Cb0JDQiNCY0Isg0JTQkNCd0JjQptCQCivQkdCj0JvQkNCI0JjQiyDQnNCY0J7QlNCg0JDQkwor0JHQo9Cb0JDQiNCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0JHQo9Cb0JDQiNCY0Isg0J3QldCU0JXQidCa0J4KK9CR0KPQm9CQ0IjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CR0KPQm9CQ0JrQmNCLINCS0KPQmtCQ0KjQmNCdCivQkdCj0JvQkNCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQm9CQ0KLQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0KPQm9CQ0KLQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0KPQm9CQ0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0KPQm9CQ0KLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0KPQm9CQ0KLQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JHQo9Cb0JDQotCe0JLQmNCLINCU0KPQqNCQ0J0KK9CR0KPQm9CQ0KLQntCS0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQkdCj0JvQkNCi0J7QktCY0Isg0JjQm9CY0IjQkAor0JHQo9Cb0JDQotCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQkdCj0JvQkNCi0J7QktCY0Isg0JzQmNCb0JjQiNCQ0J3QkAor0JHQo9Cb0JDQotCe0JLQmNCLINCc0JjQm9CY0J3QmtCeCivQkdCj0JvQkNCi0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CR0KPQm9CQ0KLQntCS0JjQiyDQnNCe0JzQmNCgCivQkdCj0JvQkNCi0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCj0JvQkNCi0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQkdCj0JvQkNCi0J7QktCY0Isg0J3QntCS0JDQmgor0JHQo9Cb0JDQotCe0JLQmNCLINCf0JDQktCb0JUKK9CR0KPQm9CQ0KLQntCS0JjQiyDQn9CV0KDQngor0JHQo9Cb0JDQotCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQkdCj0JvQkNCi0J7QktCY0Isg0KDQkNCU0JzQmNCb0J4KK9CR0KPQm9CQ0KLQntCS0JjQiyDQoNCQ0JTQntCK0JAKK9CR0KPQm9CQ0KLQntCS0JjQiyDQodCQ0JLQkAor0JHQo9Cb0JDQotCe0JLQmNCLINCh0JvQkNCC0JDQndCQCivQkdCj0JvQkNCi0J7QktCY0Isg0KHQn9CQ0KHQkAor0JHQo9Cb0JDQotCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CR0KPQm9CQ0KLQntCS0JjQiyDQktCe0IjQmNCdCivQkdCj0JvQkNCi0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JHQo9Cb0JDQotCe0JLQmNCLINCX0JvQkNCi0JjQiNCQCivQkdCj0JvQkNCi0J7QktCY0Isg0JfQntCg0JDQnQor0JHQo9Cb0JXQotCY0J3QkNCmINCc0JjQm9Ce0JLQkNCdCivQkdCj0JvQldCS0KHQmtCQINCS0JXQoNCQCivQkdCj0JvQmNCLINCo0KPQi9CeCivQkdCj0JvQmNCLINCQ0JTQmNCb0JAKK9CR0KPQm9CY0Isg0JDQndCi0JUKK9CR0KPQm9CY0Isg0JDQoNCY0KQKK9CR0KPQm9CY0Isg0JHQntCg0JjQoQor0JHQo9Cb0JjQiyDQlNCg0JDQk9CQ0J0KK9CR0KPQm9CY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JHQo9Cb0JjQiyDQlNCj0KjQkNCdCivQkdCj0JvQmNCLINCc0JDQoNCQCivQkdCj0JvQmNCLINCc0JDQoNCY0IjQkAor0JHQo9Cb0JjQiyDQnNCQ0KDQmNCd0JAKK9CR0KPQm9CY0Isg0J7Ql9Cg0JXQnQor0JHQo9Cb0JjQiyDQn9CV0KDQodCQCivQkdCj0JvQmNCLINCf0JXQotCQ0KAKK9CR0KPQm9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9CR0KPQm9CY0Isg0KHQnNCY0InQkAor0JHQo9Cb0JjQiyDQodCi0JXQktCQ0J0KK9CR0KPQm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JHQo9Cb0JjQmi3QmNCb0JXQkNCd0JAg0JTQntCg0JjQndCQCivQkdCj0Ikg0ILQo9Cg0JAKK9CR0KPQiSDQkdCe0KHQmNCb0IjQmtCQCivQkdCj0Ikg0JzQmNCb0JDQnQor0JHQo9CJ0KfQmNCaINCV0KPQk9CV0J0KK9CR0KPQidCn0JjQmiDQiNCe0JDQmtCY0JwKK9CR0KPQidCn0JjQmiDQnNCY0KXQkNCI0JvQngor0JHQo9CJ0KfQmNCaINCd0JjQmtCe0JvQkAor0JHQo9CJ0KfQmNCaINCf0JDQo9Cb0JjQndCQCivQkdCj0InQkNCaINCg0JDQotCa0J4KK9CR0KPQidCQ0J0g0JTQoNCQ0JPQo9Ci0JjQnSDQlNCY0J/QmyDQmNCd0JMKK9CR0KPQidCQ0J0g0J/QldCi0JDQoAor0JHQo9CJ0JDQnSDQodCb0JDQktCY0KbQkAor0JHQo9CJ0JjQiyDQmNCb0JjQiNCQCivQkdCj0InQmNCLINCI0JXQm9CV0J3QkAor0JHQo9CJ0JjQiyDQiNCe0JLQkNCdCivQkdCj0InQmNCLINCJ0KPQkdCY0KbQkAor0JHQo9CJ0JjQiyDQnNCY0JvQkNCdCivQkdCj0InQmNCLINCc0JjQm9CVCivQkdCj0InQmNCLINCd0J7QktCQ0JoKK9CR0KPQidCY0Isg0J/QkNCS0J4KK9CR0KPQidCY0Isg0KDQkNCU0J7QktCQ0J0KK9CR0KPQidCY0Isg0KHQldCa0KPQm9CQCivQkdCj0InQmNCLINCh0J3QldCW0JDQndCQCivQkdCj0InQmNCLINCh0KLQldCS0JAKK9CR0KPQidCY0Isg0JLQkNCh0J4KK9CR0KPQidCY0J0g0JHQoNCQ0J3QmtCeCivQkdCj0InQmNCdINCh0JvQkNCS0JrQngor0JHQo9CJ0JjQnSDQotCe0JzQmNCh0JvQkNCSCivQkdCj0InQntCS0KfQmNCLINCh0KLQmNCf0JDQnQor0JHQo9CJ0KPQk9CY0Isg0KDQkNCU0J7QiNCVCivQkdCj0JvQntCS0JDQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CR0KPQm9Ce0JLQmNCLINCY0KDQmNCd0JXQiAor0JHQo9Cb0KPQnCDQn9CV0KLQkNCgCivQkdCj0JvQo9CiINCQ0J3QgtCV0JvQmtCeCivQkdCj0JvQo9CiINCd0J7QktCY0KbQkAor0JHQo9Cc0JEg0JDQndCi0J7QnQor0JHQo9Cc0JHQkNCg0J7QodCa0Jgg0KDQkNCU0JAKK9CR0KPQnNCR0JjQiyDQnNCY0JvQkNCU0JjQnSDQlNCgCivQkdCj0JzQkdCY0Isg0KDQkNCU0JzQmNCb0JAKK9CR0KPQnNCR0JjQiyDQoNCQ0IjQmtCeCivQkdCj0JzQkdCY0Isg0JLQldCJ0JrQngor0JHQo9Cc0JHQmNCLINCS0JXQidCa0J4KK9CR0KPQndCn0JjQiyDQgtCe0KDQgtCVCivQkdCj0J3Qp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQndCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQo9Cd0KfQmNCLINCU0KDQkNCT0JDQnQor0JHQo9Cd0KfQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9CR0KPQndCn0JjQiyDQnNCY0JvQkNCdCivQkdCj0J3QkNCIINCc0KPQpdCQ0JzQldCUCivQkdCj0J3QlNCQ0JvQldCh0JrQmCDQnNCY0JvQntCoCivQkdCj0J3QlNCQ0JvQniDQkdCg0JDQndCa0J4KK9CR0KPQndCU0JDQm9CeINCd0JXQkdCe0IjQqNCQCivQkdCj0J3QlNCQ0JvQniDQndCY0JrQntCb0JAKK9CR0KPQndCU0JDQm9CeINCh0JvQkNCS0JrQngor0JHQo9Cd0JTQkNCb0J4g0KHQm9Ce0JHQntCU0JDQnQor0JHQo9Cd0JTQkNCb0J4g0KHQm9Ce0JHQntCU0JDQnQor0JHQo9Cd0JTQmNCLINCQ0J3QotCj0J0KK9CR0KPQndCV0KLQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQo9Cd0JXQotCQINCc0JjQm9CQ0J0KK9CR0KPQndCV0KLQkCDQodCd0JXQltCQ0J3QkAor0JHQo9Cd0JXQotCQINCS0KPQmtCe0KHQkNCS0JAKK9CR0KPQndCY0Isg0JTQoNCQ0JPQkNCdCivQkdCj0J3QmNCLINCc0JjQm9CQ0J0KK9CR0KPQitCQ0KYg0JLQkNCh0J4KK9CR0KPQitCQ0KYg0JLQntCI0JjQodCb0JDQkgor0JHQo9CK0JXQktCn0JXQkiDQgtCe0KDQgtCVCivQkdCj0IrQldCS0KfQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQkdCj0IrQldCS0KfQldCSINCh0KDQgtCQ0J0KK9CR0KPQitCV0JLQkNCn0JrQmCDQltCY0JLQntCI0JjQnQor0JHQo9CK0JXQktCQ0KfQmtCYINCR0KDQkNCd0JrQngor0JHQo9CK0JXQktCQ0KfQmtCYINCU0KDQkNCT0JjQitCQCivQkdCj0IrQldCS0JDQp9Ca0Jgg0IjQntCS0JDQndCa0JAKK9CR0KPQitCV0JLQkNCn0JrQmCDQidCj0JHQmNCm0JAKK9CR0KPQitCV0JLQkNCn0JrQmCDQnNCY0JvQldCd0JAKK9CR0KPQitCV0JLQkNCn0JrQmCDQktCe0IjQmNCh0JvQkNCSCivQkdCj0IrQmNCaINCo0JDQndCU0J7QoAor0JHQo9CK0JjQmiDQlNCg0JDQk9CY0KbQkAor0JHQo9CK0JjQmiDQmNCS0JDQnQor0JHQo9CK0JjQmiDQiNCe0KHQmNCfCivQkdCj0IrQmNCaINCa0JDQoNCe0IkKK9CR0KPQitCY0Jog0JfQntCb0KLQkNCdCivQkdCj0IrQmNCaINCX0J7Qm9Ci0JDQnQor0JHQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JHQo9Cd0J7QktCY0Isg0JvQkNCX0JDQoAor0JHQo9Cd0KIg0JzQmNCI0J4KK9CR0KPQoNCn0JXQoCDQotCe0JzQmNCh0JvQkNCSCivQkdCj0KDQqNCY0Isg0KLQmNCd0JrQkAor0JHQo9Cg0JDQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JHQo9Cg0JDQmCDQkNCd0JTQoNCQ0KgKK9CR0KPQoNCQ0Jgg0JrQkNCg0J7QiQor0JHQo9Cg0JDQmCDQmtCQ0KLQmNCm0JAKK9CR0KPQoNCQ0Jgg0J/QldCi0JDQoAor0JHQo9Cg0JDQiNCYINCI0J7QodCY0J8KK9CR0KPQoNCQ0Iog0JHQldCb0JAg0JTQoCDQm9CV0JrQkNCgCivQkdCj0KDQkNCKINCV0J3QlNCg0JUKK9CR0KPQoNCQ0Iog0JzQkNCg0KLQkAor0JHQo9Cg0JDQiiDQndCQ0J3QlNCe0KAKK9CR0KPQoNCQ0Iog0KHQmNCU0J7QndCY0IjQkAor0JHQo9Cg0JDQitCYINCc0JDQoNCY0IjQkAor0JHQo9Cg0JDQitCYINCd0JDQndCU0J7QoAor0JHQo9Cg0JDQl9Ce0KAg0JTQoNCQ0JPQntCI0JAKK9CR0KPQoNCQ0JfQntCgINCX0JTQoNCQ0JLQmtCeCivQkdCj0KDQkdCQ0KUg0JPQldCg0KXQkNCg0JQKK9CR0KPQoNCR0JDQnSDQpNCY0JvQmNCfCivQkdCj0KDQlNCQINCc0JXQm9CY0J3QlNCQCivQkdCj0KDQlNCQINCh0KLQkNCd0JjQodCb0JDQkgor0JHQo9Cg0JXQktCY0Isg0JzQmNCb0JjQiwor0JHQo9Cg0JPQmNCLINCU0KDQkNCT0J7QiNCVCivQkdCj0KDQk9CY0Isg0IjQntCS0JDQnQor0JHQo9Cg0JPQmNCLINCf0JXQotCQ0KAKK9CR0KPQoNCT0JjQiNCQ0KjQldCSINCS0JXQodCV0JvQmNCdCivQkdCj0KDQmNCLINCC0J7QmtCeINCU0JjQn9CbINCY0J3Qkwor0JHQo9Cg0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CR0KPQoNCY0Isg0JTQo9Co0JDQnSDQlNCgCivQkdCj0KDQmNCLINCU0KPQqNCQ0J3QmtCQCivQkdCj0KDQmNCLINCk0KDQkNCK0JAKK9CR0KPQoNCY0Isg0JPQntCg0JTQkNCd0JAKK9CR0KPQoNCY0Isg0JrQkNCi0JjQptCQCivQkdCj0KDQmNCLINCa0J7QodCi0JAKK9CR0KPQoNCY0Isg0JvQldCe0J3QntCg0JAKK9CR0KPQoNCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JHQo9Cg0JjQiyDQndCQ0JTQkAor0JHQo9Cg0IjQkNCdINCC0J7QoNCC0JUKK9CR0KPQoNCI0JDQndCe0JLQodCa0Jgg0KHQotCe0IjQkNCdCivQkdCj0KDQmtCQINCV0JvQldCe0J3QntCg0JAg0JTQoAor0JHQo9Cg0JrQkCDQldCc0JjQm9CY0IjQkAor0JHQo9Cg0JrQkCDQldCg0JbQldCR0JXQogor0JHQo9Cg0JrQkCDQiNCe0JLQkNCdCivQkdCj0KDQmtCQINCc0JjQoNCe0KHQm9CQ0JIKK9CR0KPQoNCa0JAg0J/QkNCS0JvQlQor0JHQo9Cg0JrQkCDQn9CV0KLQkNCgCivQkdCj0KDQmtCQINCh0J7QpNCY0IjQkAor0JHQo9Cg0JrQkCDQodCi0JXQktCQ0J0KK9CR0KPQoNCa0JAg0KHQotCV0JLQkNCdCivQkdCj0KDQmtCV0KDQoiDQldCU0JLQmNCdCivQkdCj0KDQmtCY0J0g0JbQmNCS0JDQnQor0JHQo9Cg0JrQmNCdINCC0J7QmtCQCivQkdCj0KDQm9CQ0Jog0J3QkNCi0JDQm9CY0IjQkAor0JHQo9Cg0JzQkNCI0JAg0J3QmNCa0J7Qm9CQCivQkdCj0KDQnNCj0I/QmNCI0JAg0JHQoNCQ0J3QmtCeCivQkdCj0KDQnNCj0I/QmNCI0JAg0JzQmNCb0JDQnQor0JHQo9Cg0JzQo9CP0JjQiNCQINCd0JjQmtCe0JvQkAor0JHQo9Cg0J3QkNCLINCk0JXQm9CY0JrQoQor0JHQo9Cg0J3QkNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQkdCj0KDQndCQ0Isg0KHQotCV0JLQkNCdCivQkdCj0KDQndCQ0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JHQo9Cg0J3QntCSINCY0JLQkNCd0JAKK9CR0KPQoNCd0J7QkiDQmNCS0JDQnQor0JHQo9Cg0J3QntCSINCS0JXQodCV0JvQmNCd0JrQkAor0JHQo9Cg0J7QktCQ0KYg0J3QkNCU0JAKK9CR0KPQoNCh0JDQiyDQlNCQ0KDQmNCd0JrQkAor0JHQo9Cg0KHQkNCLINCU0KDQkNCT0J7QodCb0JDQktCQINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQkdCj0KDQodCQ0Isg0IjQntCS0JDQnQor0JHQo9Cg0KHQkNCLINCJ0KPQkdCe0JzQmNCgCivQkdCj0KDQodCQ0Isg0JzQmNCb0JDQndCa0JAKK9CR0KPQoNCh0JDQiyDQnNCY0JvQkNCdCivQkdCj0KDQodCQ0Isg0JzQmNCb0JjQptCQCivQkdCj0KDQodCQ0Isg0JzQmNCb0J7QoNCQ0JQKK9CR0KPQoNCh0JDQiyDQnNCY0KDQmtCeCivQkdCj0KDQodCQ0Isg0J3QmNCa0J7Qm9CQCivQkdCj0KDQodCQ0Isg0J/QldCg0JAKK9CR0KPQoNCh0JDQiyDQn9CV0KDQodCQCivQkdCj0KDQodCQ0Isg0KHQm9Ce0JHQntCU0JDQnQor0JHQo9Cg0KHQkNCLINCh0JvQntCR0J7QlNCQ0J0KK9CR0KPQoNCh0JDQiyDQktCI0JXQmtCe0KHQm9CQ0JLQkAor0JHQo9Cg0KHQkNCLINCS0JvQkNCU0J4g0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9CR0KPQoNCh0JjQiyDQodCi0JXQktCQ0J0KK9CR0KPQoNCh0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQkdCj0KDQo9CoINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQkdCj0KDQo9CoINCR0J7QqNCa0J4KK9CR0KPQoNCj0JzQj9CY0IjQkCDQoNCQ0JTQlQor0JHQo9Cg0JfQkNCdINCc0JjQoNCI0JDQndCQCivQkdCj0KDQl9CV0JvQmNCLINCc0JjQm9Ca0JAKK9CR0KPQoNCX0JXQm9CY0Isg0JfQm9CQ0KLQkAor0JHQo9Ch0JDQoNCn0JXQktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CR0KPQodCQ0KDQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JHQo9Ch0JjQiNCQINCJ0KPQkdCY0J3QmtCQCivQkdCj0KHQmNCI0JAg0JzQmNCb0JDQnQor0JHQo9Ch0J7QkiDQkNCb0JXQmtCh0JjQiNCVINCU0JjQn9CbINCY0J3Qkwor0JHQo9Ch0J7QkiDQmNCT0J7QoAor0JHQo9Ch0KPQm9CQ0I/QmNCLINCc0KPQodCi0JDQpNCQCivQkdCj0KLQkCDQm9CQ0JfQkNCgCivQkdCj0KLQkCDQktCe0IjQmNCh0JvQkNCSINCU0KAKK9CR0KPQotCQ0Kgg0KTQldCg0JXQndCmCivQkdCj0KLQldCgINCa0KHQldCd0JjQiNCQCivQkdCj0KLQldCg0JXQoCDQmNCo0KLQktCQ0J0KK9CR0KPQotCV0KDQldCgINCI0KPQm9CY0IjQkAor0JHQo9Ci0JXQoNCY0J0g0JTQldCo0JAKK9CR0KPQotCe0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CR0KPQotCe0KAg0JXQndCU0KDQlQor0JHQo9Ci0J7QoCDQnNCY0KXQkNCI0JvQngor0JHQo9Ci0J7QoNCQ0KYg0IjQntCh0JjQnwor0JHQo9Ci0J7QoNCQ0KYg0JzQkNCg0JjQiNCQCivQkdCj0KLQntCg0JDQpiDQl9Ce0KDQkNCdCivQkdCj0KLQo9Cb0JjQiNCQINCR0KDQkNCd0JjQodCb0JDQkgor0JHQo9Ci0KPQoNCe0JLQmNCLINCg0JDQotCa0J4KK9CR0KPQotCj0KDQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQkdCj0JfQkCDQmNCg0JXQndCQCivQkdCj0JfQkCDQmtCe0KDQndCV0JvQmNCjCivQkdCj0JfQkCDQnNCY0KXQkNCJCivQkdCj0JfQkNCoINCo0JDQndCU0J7QoAor0JHQo9CX0JDQqCDQiNCe0KHQmNCfCivQkdCj0JfQkNCoINCI0J7QodCY0J8KK9CR0KPQl9CQ0Kgg0JvQkNCI0J7QqAor0JHQo9CX0JDQqCDQn9CQ0JLQkNCeCivQkdCj0JfQkNCoINCf0JDQktCb0JUKK9CR0KPQl9CQ0KjQmCDQiNCe0KHQmNCfCivQkdCj0JfQkNCo0Jgg0JzQmNCl0JDQiNCb0J4KK9CR0KPQl9CQ0I/QmNCLINCJ0JjQidCQ0J3QkAor0JHQo9CX0JDQj9CY0Isg0JzQmNCg0IjQkNCd0JAKK9CR0KPQl9CQ0I/QmNCI0JAg0J3QldCd0JDQlAor0JHQo9CX0JDQj9CY0IjQkCDQndCe0JLQkNCaCivQkdCj0JfQkNCJ0JrQniDQiNCj0KHQo9CkINCU0JjQn9CbINCY0J3Qkwor0JHQo9CX0JDQndCn0JjQiyDQiNCe0KHQmNCfCivQkdCj0JfQkNCd0KfQmNCLINCd0JDQlNCV0JbQlNCQCivQkdCj0JfQkNCd0KHQmtCYINCc0JjQqNCQCivQkdCj0JfQkNCg0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQkdCj0JfQkNCg0JXQktCY0Isg0KDQkNCU0J7QiNCa0JAKK9CR0KPQl9CQ0KDQldCS0JjQiyDQoNCj0JbQkAor0JHQo9CX0JDQoNCe0JIg0JbQmNCS0JDQnQor0JHQo9CX0JDQoNCe0JIg0IjQntCS0JDQnQor0JHQo9CX0JDQoNCe0JIg0JfQntCg0JAKK9CR0KPQl9CQ0KDQodCa0Jgg0ILQntCg0ILQlQor0JHQo9CX0JPQniDQiNCQ0J3QntCoCivQkdCj0JfQntCT0JDQiiDQnNCQ0KDQmNCI0JAKK9Cm0JDQptCa0J4g0JzQkNCg0JjQiNCQCivQptCQ0IjQmNCLINCc0JjQm9Ce0KgKK9Cm0JDQiNCd0JXQoCDQiNCV0JvQldCd0JAKK9Cm0JDQiNCd0JXQoCDQidCj0JHQmNCm0JAKK9Cm0JDQiNCd0JXQoCDQodCi0JXQktCQ0J0KK9Cm0JDQiNCd0JXQoCDQodCi0JXQktCQCivQptCQ0JrQmNCLINCU0KPQqNCQ0J3QmtCQCivQptCQ0JrQmNCLINCT0J7QoNCU0JDQndCQCivQptCQ0JrQmNCLINCI0JXQm9CV0J3QmtCeCivQptCQ0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cm0JDQmtCY0Isg0J/QldCi0JDQoAor0KbQkNCa0JjQiyDQodCi0JXQktCQ0J0KK9Cm0JDQndCU0JjQoCDQpNCg0JDQitCQCivQptCQ0J3QmNCLINCJ0JjQidCQ0J3QkAor0KbQkNCd0JjQiyDQktCV0JvQmNCc0JjQoAor0KbQkNCfINCC0KPQoNCQCivQptCQ0J8g0JHQntCo0JrQngor0KbQkNCfINCI0J7QkNCa0JjQnAor0KbQkNCfINCI0J7QktCQ0J0KK9Cm0JDQnyDQndCV0J3QkNCUCivQptCQ0J8g0J3QldCd0JDQlAor0KbQkNCfINCg0JDQlNCe0IjQmtCQCivQptCQ0J8g0KLQkNCc0JDQoNCQCivQptCQ0J/QkNCgLdCI0JDQndCa0J7QktCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0KbQkNCf0JDQoCDQiNCQ0J3QntCoCivQptCQ0J/QkNCgINCI0J7QktCQ0J0KK9Cm0JDQn9CQ0KAg0JzQkNCg0JjQiNCQCivQptCQ0J/QkNCgINCc0JDQoNCY0IjQkAor0KbQkNCf0JjQmiDQiNCe0KHQmNCfCivQptCQ0J/QmNCaINCJ0KPQlNCV0JLQmNCiCivQptCQ0KAg0JzQkNCg0JjQiNCQCivQptCQ0KDQkNCdINCR0J7QqNCa0J4KK9Cm0JDQoNCQ0J0g0JPQldCe0KDQk9CVCivQptCQ0KDQkNCdINCf0JXQoNCh0JAKK9Cm0JDQoNCQ0J0g0J/QldCi0JDQoAor0KbQkNCg0JDQndCe0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQptCQ0KDQldCS0JjQiyDQltCY0JLQkNCdCivQptCQ0KDQldCS0JjQiyDQltCY0JLQmtCQCivQptCQ0KDQldCS0JjQiyDQgtCe0KDQgtCVCivQptCQ0KDQldCS0JjQiyDQlNCj0KjQkNCdCivQptCQ0KDQldCS0JjQiyDQldCh0KLQldCgCivQptCQ0KDQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cm0JDQoNCV0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQptCQ0KDQldCS0JjQiyDQnNCY0JvQldCd0JAKK9Cm0JDQoNCV0JLQmNCLINCc0JjQm9CVCivQptCQ0KDQldCS0JjQiyDQndCQ0JTQkAor0KbQkNCg0JXQktCY0Isg0J/QldCi0JDQoAor0KbQkNCg0JXQktCY0Isg0KHQkNCS0JAKK9Cm0JDQoNCV0JLQmNCLINCh0JvQkNCS0JrQngor0KbQkNCg0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQptCQ0KDQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cm0JDQoNCV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cm0JDQoNCY0KfQmNCLINCh0JvQkNCS0JrQngor0KbQkNCg0JjQiyDQkNCd0JTQoNCY0IjQkAor0KbQkNCg0JjQiyDQkdCg0JDQndCa0J4KK9Cm0JDQoNCY0Isg0JPQntCI0JrQngor0KbQkNCg0JjQiyDQm9CQ0JfQkNCgCivQptCQ0KDQmNCLINCc0JDQoNCY0IjQkAor0KbQkNCg0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KbQkNCg0JjQiyDQodCb0JDQktCa0J4g0JTQoCDQn9Cg0J7QpAor0KbQkNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0KAKK9Cm0JDQoNCY0IvQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0KbQkNCg0J4g0JPQntCg0JDQnQor0KbQkNCi0JjQiyDQm9CQ0JfQkNCgCivQptCQ0JLQndCY0Isg0JzQkNCg0KLQkAor0KbQkNCS0J3QmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cm0JDQl9CY0J0g0JTQoNCQ0JPQkNCdCivQptCVINCf0JDQktCb0JUKK9Cm0JXQptCV0Jsg0JzQkNCg0JjQiNCQCivQptCV0JPQm9CV0JTQmCDQgtCj0KDQngor0KbQldCl0J7Qm9CQINCk0JXQoNCV0J3Qpgor0KbQldCa0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQptCV0JrQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cm0JXQmtCY0Isg0JHQntCg0JrQngor0KbQldCa0JjQiyDQiNCj0JvQmtCQCivQptCV0JrQmNCLINCf0JXQotCQ0KAKK9Cm0JXQmtCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cm0JXQmtCj0Kgg0JXQktCQCivQptCV0JvQmNCLINCR0KDQkNCd0JrQngor0KbQldCb0JjQnSDQnNCY0JvQkNCdCivQptCV0JvQmNCdINCc0JjQm9CQ0J0KK9Cm0JXQndCQ0Igg0KLQkNCl0JjQoAor0KbQldCd0JTQldCgINCQ0J3Qk9CV0JvQmNCd0JAKK9Cm0JXQndCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cm0JXQnyDQodCi0JXQktCQ0J0KK9Cm0JXQn9CkINCh0KLQldCS0JDQnQor0KbQldCg0JPQntCbINCS0JjQlNCe0KHQkNCS0JAKK9Cm0JXQoNCY0Isg0JTQkNCd0JjQptCQCivQptCV0KDQmNCLINCc0JXQpdCc0JXQlAor0KbQldCg0J3QkCDQoNCj0JTQntCb0KQKK9Cm0JXQoNCe0JLQkNCmINCX0J7QoNCa0JAKK9Cm0JXQoNCe0JLQmNCLINCR0JDQotCg0JjQiwor0KbQldCg0J7QktCY0Isg0JHQntCT0JTQkNCdCivQptCV0KDQntCS0JjQiyDQkdCe0IjQkNCd0JAKK9Cm0JXQoNCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQptCV0KDQntCS0JjQiyDQmNCa0J7QndCY0IjQkAor0KbQldCg0J7QktCY0Isg0InQo9CR0JjQktCe0IjQlQor0KbQldCg0J7QktCY0Isg0JzQmNCo0J4KK9Cm0JXQoNCe0JLQmNCLINCd0JXQndCQ0JQKK9Cm0JXQoNCe0JLQmNCLINCd0J7QktCQ0JoKK9Cm0JXQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cm0JXQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cm0JXQoNCe0JLQmNCLINCh0KDQldCi0JXQnQor0KbQldCg0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KbQldCg0J7QktCY0Isg0KPQoNCe0KgKK9Cm0JXQoNCe0JLQodCa0Jgg0JTQkNCd0JjQiNCV0JsKK9Cm0JXQodCd0JDQmiDQiNCQ0J3QmtCeCivQptCV0KHQndCQ0Jog0J/QkNCS0JvQlQor0KbQldCh0J3QkNCaINCX0JvQkNCi0JrQngor0KbQldCi0JXQitCYINCI0J7QktCQ0J0KK9Cm0JXQotCY0J3QkCDQiNCe0JLQkNCdCivQptCV0KLQmNCd0JAg0InQmNCJ0JDQndCQCivQptCV0JLQpiDQpNCg0JDQitCQCivQptCV0JLQpiDQodCe0IrQkAor0KbQmNCR0KDQmNCLINCi0J7QlNCe0KAKK9Cm0JjQkdCj0JvQkCDQgtCj0KDQkAor0KbQmNCR0KPQm9CQINCR0JXQm9CQCivQptCY0JHQo9Cb0JAg0IjQkNCd0JrQngor0KbQmNCR0KPQm9CQINCI0J7QktCQ0J0KK9Cm0JjQkdCj0JvQkCDQiNCe0JLQkNCdCivQptCY0JHQo9Cb0JAg0JzQkNCg0IjQldCd0JrQkAor0KbQmNCR0KPQm9CQINCc0JjQqNCQCivQptCY0JHQo9Cb0JAg0J/QldCg0JAKK9Cm0JjQptCV0KDQmCDQpNCV0KDQldCd0KYKK9Cm0JjQptCV0KDQmCDQmtCQ0KDQntCJCivQptCY0KbQldCg0Jgg0JvQkNCh0JvQngor0KbQmNCm0JXQoNCYINCc0JDQotCY0JvQlNCQCivQptCY0KbQldCg0Jgg0J/QldCg0JAKK9Cm0JjQptCV0KDQmCDQktCY0J3QmtCeCivQptCY0KbQmtCQINCo0IvQldCk0JDQnQor0KbQmNCm0JrQkCDQiNCQ0J0KK9Cm0JjQptCc0JjQmyDQkdCe0JbQmNCU0JDQoAor0KbQmNCm0JzQmNCbINCR0KDQkNCd0JrQngor0KbQmNCm0JzQmNCbINCa0KDQodCi0J4KK9Cm0JjQptCc0JjQmyDQnNCQ0KDQmNCI0JAKK9Cm0JjQptCc0JjQmyDQnNCQ0KDQmtCeCivQptCY0KbQnNCY0Jsg0JzQmNCb0JDQnQor0KbQmNCm0JzQmNCbINCh0KLQntCI0JDQnQor0KbQmNCm0JzQmNCbINCi0JDQotCI0JDQndCQCivQptCY0KbQnNCY0Jsg0JfQntCg0JDQnQor0KbQmNCm0JzQmNCb0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQptCY0KbQnNCY0JvQntCS0JjQiyDQl9Ce0KDQmtCQCivQptCY0KbQniDQlNCj0KjQkNCdCivQptCY0KbQktCQ0KDQmNCdINCJ0KPQkdCe0JzQmNCgCivQptCY0KTQoNCY0Isg0JPQkNCb0JjQkQor0KbQmNCT0JDQnSDQkNCd0KLQo9CdCivQptCY0JPQkNCdINCY0JLQkNCdCivQptCY0JPQkNCKINCI0J7QodCY0J8KK9Cm0JjQk9CQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cm0JjQk9CQ0J3QntCS0JjQiyDQlNCQ0J3QlQor0KbQmNCT0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cm0JjQk9CQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KbQmNCT0JDQndCe0JLQmNCLINCe0KHQotCe0IjQkAor0KbQmNCT0JDQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Cm0JjQk9CQ0J3QntCS0JjQiyDQodCi0JXQktCeCivQptCY0JPQmNCLINCY0JLQkNCdCivQptCY0JPQm9CV0KAg0KHQndCV0JbQkNCd0JAKK9Cm0JjQk9CJ0JXQptCa0Jgg0KTQoNCQ0IrQkAor0KbQmNCT0InQldCm0JrQmCDQktCV0KDQkAor0KbQmNCa0J7QoNCQINCW0KPQltCQ0J3QkAor0KbQmNCa0J7QotCQINCW0JXQidCa0J4KK9Cm0JjQmtCe0KLQkCDQntCb0JPQkAor0KbQmNCa0J7QotCQINCh0JvQkNCS0JrQngor0KbQmNCa0KPQqNCQINCI0J7QktCQ0J0KK9Cm0JjQmtCj0KjQkCDQl9Ce0KDQkNCdCivQptCY0JzQkdCQ0Jsg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cm0JjQnNCR0JDQmyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KbQmNCc0JHQkNCbINCi0JjQkdCe0KAKK9Cm0JjQnNCR0JDQmyDQktCV0KDQmNCm0JAKK9Cm0JjQnNCR0JDQidCV0JLQmNCLINCX0JvQkNCi0JDQndCQCivQptCY0JzQldCg0JzQkNCdINCb0JDQlNCY0KHQm9CQ0JIKK9Cm0JjQnNCV0KDQnNCQ0J0g0KHQnNCY0InQkAor0KbQmNCd0KbQntCS0JjQiyDQltCY0JLQmtCQCivQptCY0J3QlNCV0KAg0JLQmNCU0JAKK9Cm0JjQndCU0KDQmNCLINCC0J7QoNCC0JUKK9Cm0JjQndCU0KDQmNCLINCV0KDQltCV0JHQldCiCivQptCY0J3QlNCg0JjQiyDQn9CV0KLQkNCgINCU0KAKK9Cm0JjQndCT0JDQoNCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQptCY0J3Qk9CV0JvQmCDQnNCY0JvQldCd0JAKK9Cm0JjQndCT0Jgg0JrQkNCg0JvQngor0KbQmNCd0JrQm9CV0KAg0IjQldCb0JjQodCQ0JLQldCi0JAg0JTQmNCf0Jsg0JjQndCTCivQptCY0J3QmtCb0JXQoCDQiNCj0JvQmNCI0JUKK9Cm0JjQndCa0JvQldCgINCa0JDQm9Cc0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cm0JjQndCa0JvQldCgINCa0JDQm9Cc0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cm0JjQndCa0JvQldCgINCa0JDQm9Cc0JDQnQor0KbQmNCd0JrQm9CV0KAg0JzQkNCT0JTQntCb0J3QkAor0KbQmNCd0JrQntCm0JrQmCDQgtCe0KDQgtCVCivQptCY0J3QmtCe0KbQmtCYINCS0J7QiNCY0KHQm9CQ0JIKK9Cm0JjQn9Cg0KPQqCDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KbQmNCg0JHQo9ChINCc0JDQoNCY0IjQkAor0KbQmNCg0JPQldCgINCU0KPQqNCQ0J3QmtCQCivQptCY0KDQntCaINCo0JDQndCU0J7QoAor0KbQmNCi0JrQntCS0JjQiyDQmNCS0JrQkAor0KbQmNCi0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQptCY0JLQoNCY0Isg0JzQmNCb0JrQkAor0KbQnNCY0InQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cm0J7QptCV0Jog0KjQotCV0KTQkNCd0JjQiNCQCivQptCe0KbQldCaINCY0JzQoNCVCivQptCe0KbQldCaINCI0J7QodCY0J8KK9Cm0J7QptCV0Jog0KHQotCV0JLQkNCdCivQptCe0KbQmNCdINCc0JjQoNCQCivQptCe0KbQniDQktCQ0KXQlNCV0KLQkAor0KbQntCb0JjQiyDQkdCe0JbQmNCU0JDQoAor0KbQntCb0JjQiyDQkdCe0JPQntCh0JDQkgor0KbQntCb0JjQiyDQpNCg0JDQitCQCivQptCe0JvQmNCLINCI0J7QodCY0J8KK9Cm0J7Qm9CY0Isg0JrQkNCi0JjQptCQCivQptCe0JvQmNCLINCb0JDQlNCY0KHQm9CQ0JIKK9Cm0J7Qm9CY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KbQntCd0JjQiyDQlNCg0JDQk9CY0IrQkAor0KbQntCd0JjQiyDQiNCQ0J3QmtCeINCc0KAg0JjQndCTCivQptCe0J3QmNCLINCc0JjQntCU0KDQkNCTCivQptCe0J/QmtCe0JIg0JbQldCJ0JrQngor0KbQoNCV0J/QmNCLINCb0JDQlNCY0KHQm9CQ0JIKK9Cm0KDQldCf0KPQm9CY0Isg0JLQmNCU0J7QodCQ0JLQkAor0KbQoNCV0J/Qo9CJ0JAg0KLQntCU0J7QoAor0KbQoNCV0JLQkNCgINCR0J7Qk9CU0JDQnQor0KbQoNCV0JLQkNCgINCc0JjQm9Cj0KLQmNCdINCU0JjQn9CbINCY0J3Qkwor0KbQoNCV0JLQkNCgINCh0JjQnNCQCivQptCg0JXQktCQ0KAg0KHQm9CQ0JLQmtCeCivQptCg0JrQktCV0IrQkNCa0J7QkiDQlNCQ0J3QmNCm0JAKK9Cm0KDQmtCS0JXQitCQ0JrQntCSINCU0KPQqNCQ0J3QmtCQCivQptCg0JrQktCV0IrQkNCa0J7QkiDQodCj0JvQotCQ0J3QmNCI0JAKK9Cm0KDQndCn0JXQktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cm0KDQndCn0JXQktCY0Isg0JzQmNCg0JrQngor0KbQoNCd0KfQldCS0JjQiyDQnNCY0KDQmtCeCivQptCg0J3Qp9CV0JLQmNCLINCd0JXQlNCV0InQmtCQCivQptCg0J3Qp9CV0JLQmNCLINCh0JvQkNCS0JrQngor0KbQoNCd0KfQldCS0JjQiyDQktCV0KDQkAor0KbQoNCd0KfQldCS0JjQiyDQktCb0JDQlNCeCivQptCg0J3QkNCU0JDQmiDQktCb0JDQotCa0J4KK9Cm0KDQndCYINCS0JXQoNCY0KbQkAor0KbQoNCd0Jgg0JfQntCg0JjQptCQCivQptCg0J3QmNCLINCR0KDQkNCd0JrQkAor0KbQoNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Cm0KDQndCY0Isg0JPQntCg0JDQnQor0KbQoNCd0JjQiyDQnNCQ0KDQmtCeCivQptCg0J3QmNCLINCc0JjQm9CQ0J0KK9Cm0KDQndCY0Isg0JzQmNCb0KPQotCY0J0KK9Cm0KDQndCY0Isg0J3QmNCa0J7Qm9CQCivQptCg0J3QmNCLINCe0KHQotCe0IjQkAor0KbQoNCd0JjQiyDQoNCQ0JTQntCc0JjQoAor0KbQoNCd0JjQiyDQodCe0KTQmNCI0JAKK9Cm0KDQndCY0Isg0KPQk9CJ0JXQqNCQCivQptCg0J3QmNCLINCS0JDQodCQCivQptCg0J3QmNCLINCS0JXQoNCQCivQptCg0IrQkNCmINCc0JjQm9CV0J3QkAor0KbQoNCK0JDQmiDQltCY0JLQkNCd0JrQkAor0KbQoNCK0JDQmtCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQptCg0IrQkNCd0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0KbQoNCK0JDQndCY0J0g0JfQkNCT0J7QoNCa0JAKK9Cm0KDQitCQ0J3QodCa0Jgt0KfQldCd0JPQldCg0Jgg0JrQoNCY0KHQotCY0J3QkAor0KbQoNCK0JDQndCh0JrQmCDQltCQ0KDQmtCeCivQptCg0IrQkNCd0KHQmtCYINCC0J7QmtCQCivQptCg0IrQkNCd0KHQmtCYINCR0KPQlNCY0JzQmtCQCivQptCg0IrQkNCd0KHQmtCYINCY0JLQkNCdCivQptCg0IrQkNCd0KHQmtCYINCI0JXQm9CV0J3QkAor0KbQoNCK0JDQndCh0JrQmCDQmtCQ0KLQmNCm0JAKK9Cm0KDQitCQ0J3QodCa0Jgg0JrQo9CX0JzQkNCdCivQptCg0IrQkNCd0KHQmtCYINCb0JDQl9CQ0KAKK9Cm0KDQitCQ0J3QodCa0Jgg0KDQkNCU0JjQktCe0IgKK9Cm0KDQitCQ0J3QodCa0Jgg0KHQkNCK0JAKK9Cm0KDQitCQ0J3QodCa0Jgg0KHQotCV0JLQkNCdCivQptCg0IrQkNCd0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Cm0KDQitCQ0J3QodCa0Jgg0JfQntCg0JDQnQor0KbQoNCK0JDQndCh0JrQmCDQl9Ce0KDQkNCdCivQptCg0J3QmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KbQoNCd0JrQntCS0JjQiy3QodCQ0JLQmNCLINCJ0JjQidCQ0J3QkAor0KbQoNCd0JrQntCS0JjQiyDQl9Cb0JDQotCQCivQptCg0J3QntCR0JDQoNCQ0KYg0JTQo9Co0JDQnQor0KbQoNCd0J7QkdCQ0KDQkNCmINCI0J7QktCQ0J0KK9Cm0KDQndCe0JHQoNCK0JAg0JzQmNCb0JDQnQor0KbQoNCd0J7QkdCg0IrQkCDQnNCY0KDQiNCQ0J3QkAor0KbQoNCd0J7QkdCg0IrQkCDQn9CV0KLQkNCgCivQptCg0J3QntCT0JvQkNCS0JDQpiDQnNCY0KXQkNCI0JvQngor0KbQoNCd0J7Qk9Cb0JDQktCQ0KYg0KDQkNCU0J7QodCb0JDQkgor0KbQoNCd0J7Qk9Ce0KDQp9CV0JLQmNCLINCI0JXQm9CY0KbQkAor0KbQoNCd0J7Qk9Ce0KDQkNCmINCC0J7QmtCeCivQptCg0J3QntCT0J7QoNCQ0KYg0JHQntCg0JjQqNCQCivQptCg0J3QntCT0J7QoNCQ0KYg0JHQntCh0JjQidCa0JAKK9Cm0KDQndCe0JPQntCg0JDQpiDQlNCg0JDQk9CQ0J0KK9Cm0KDQndCe0JPQntCg0JDQpiDQlNCg0JDQk9Ce0InQo9CRCivQptCg0J3QntCT0J7QoNCQ0KYg0JTQo9Co0JDQnQor0KbQoNCd0J7Qk9Ce0KDQkNCmINCc0JjQm9CQ0J0KK9Cm0KDQndCe0JPQntCg0JDQpiDQnNCY0JvQmtCQCivQptCg0J3QntCT0J7QoNCQ0KYg0JzQmNCb0J7QodCQ0JIKK9Cm0KDQndCe0JPQntCg0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQptCg0J3QntCT0J7QoNCQ0KYg0J/QkNCS0JvQlQor0KbQoNCd0J7Qk9Ce0KDQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9Cm0KDQndCe0JPQntCg0JDQpiDQodCS0JXQotCb0JDQndCQCivQptCg0J3QntCT0J7QoNCQ0KYg0JLQldCb0JjQnNCY0KAg0JTQoAor0KbQoNCd0J7Qk9Ce0KDQkNCmINCX0JTQoNCQ0JLQmtCeCivQptCg0J3QntCT0J7QoNCQ0KYg0JfQntCg0JjQptCQCivQptCg0J3QntCI0JAg0JDQndCi0JUKK9Cm0KDQndCe0IjQkCDQodCb0JDQktCY0KbQkAor0KbQoNCd0J7QiNCQ0KfQmtCYINCR0J7Qk9CU0JDQnQor0KbQoNCd0J7QiNCQ0KfQmtCYINCU0JDQndCY0KbQkCDQlNCgCivQptCg0J3QntCI0JDQp9Ca0Jgg0JTQkNCd0JjQm9CeCivQptCg0J3QntCI0JDQp9Ca0Jgg0JTQoNCQ0JPQkNCdCivQptCg0J3QntCI0JDQp9Ca0Jgg0JTQoNCQ0JPQntCc0JjQoAor0KbQoNCd0J7QiNCQ0KfQmtCYINCT0J7QoNCU0JDQndCQCivQptCg0J3QntCI0JDQp9Ca0Jgg0IjQntCS0JDQnQor0KbQoNCd0J7QiNCQ0KfQmtCYINCa0JDQotCY0KbQkAor0KbQoNCd0J7QiNCQ0KfQmtCYINCc0JjQm9CV0J3QkCDQlNCgCivQptCg0J3QntCI0JDQp9Ca0Jgg0JzQmNCb0J7QqAor0KbQoNCd0J7QiNCQ0KfQmtCYINCc0JvQkNCU0JXQnQor0KbQoNCd0J7QiNCQ0KfQmtCYINCe0JHQoNCQ0JQKK9Cm0KDQndCe0IjQkNCn0JrQmCDQntCR0KDQkNCUCivQptCg0J3QntCI0JDQp9Ca0Jgg0KDQkNCU0JzQmNCb0JAKK9Cm0KDQndCe0IjQkNCn0JrQmCDQodCe0KTQmNCI0JAKK9Cm0KDQndCe0IjQkNCn0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQptCg0J3QntCI0JDQp9Ca0Jgg0JfQntCg0JjQptCQCivQptCg0J3QntCa0KDQkNCaINCI0J7QktCQ0J0KK9Cm0KDQndCe0JrQoNCQ0Jog0JzQmNCb0J7QqAor0KbQoNCd0J7QmtCg0JDQmiDQodCi0JXQktCQ0J0KK9Cm0KDQndCe0JzQkNCg0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cm0KDQndCe0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQptCg0J3QntCc0JDQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KbQoNCd0J7QnNCQ0KDQmtCe0JLQmNCLINCT0J7QiNCa0J4KK9Cm0KDQndCe0JzQkNCg0JrQntCS0JjQiyDQm9Cj0JrQkAor0KbQoNCd0J7QnNCQ0KDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KbQoNCd0J7QnNCQ0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cm0KDQndCe0JzQkNCg0JrQntCS0JjQiyDQoNCQ0J3QmtCeCivQptCg0J3QntCc0JDQoNCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQptCg0J3QntCc0JDQoNCa0J7QktCY0Isg0JLQldCg0JjQptCQCivQptCg0J3QntCc0KPQoiDQnNCY0KXQkNCI0JvQngor0KbQoNCS0JXQndCYINCW0JDQoNCa0J4KK9Cm0KDQktCV0J3QmCDQkNCd0JAKK9Cm0KDQktCV0J3QmCDQkdCY0KHQldCg0JrQkAor0KbQoNCS0JXQndCYINCU0KDQkNCT0JDQnQor0KbQoNCS0JXQndCYINCc0JDQoNCa0J4KK9Cm0KDQktCV0J3QmCDQnNCY0JvQkNCdCivQptCg0JLQldCd0Jgg0JzQmNCb0JXQndCa0J4KK9Cm0KDQktCV0J3QmCDQnNCY0J7QnNCY0KAKK9Cm0KDQktCV0J3QmCDQodCY0JzQkAor0KbQoNCS0JXQndCYINCh0KLQldCS0JDQnQor0KbQoNCS0JXQndCYINCh0KLQldCS0JDQnQor0KbQoNCS0JXQndCa0J4g0IjQkNCd0JrQngor0KbQoNCS0JXQndCa0J4g0JzQmNCb0JDQnQor0KbQoNCS0JXQndCa0J4g0KDQkNCU0J7QnNCY0KAKK9Cm0KDQktCV0J3QmtCe0JIg0JHQntCg0JjQodCb0JDQkgor0KbQoNCS0JXQndCa0J7QkiDQnNCY0JvQntCh0JDQktCQCivQptCg0JLQldCd0JrQntCSINCf0JXQotCQ0KAKK9Cm0KDQktCV0J3QmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cm0KDQktCV0J3QmtCe0JLQmNCLINCC0KPQoNCC0JjQptCQCivQptCg0JLQldCd0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQptCg0JLQldCd0JrQntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0KbQoNCS0JXQndCa0J7QktCY0Isg0KHQmNCd0JjQqNCQINCU0KAKK9Cm0KDQktCV0J3QmtCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQptCj0KbQkNCaINCc0JjQoNCI0JDQndCQCivQptCj0KbQkNCaINCg0JDQpdCY0JwKK9Cm0KPQptCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cm0KPQptCY0Isg0JHQntCg0JjQodCb0JDQkgor0KbQo9Cm0JjQiyDQk9CY0J3QkAor0KbQo9Cm0JjQiyDQiNCV0JvQmtCQCivQptCj0KbQmNCLINCJ0JjQidCQ0J3QkAor0KbQo9Cm0JjQiyDQodCi0JDQndCQCivQptCj0KbQmNCLINCh0KLQkNCd0J7QiNCb0J4KK9Cm0KPQptCY0Isg0JLQldCg0JAKK9Cm0KPQptCY0Isg0JLQldCh0J3QkAor0KbQo9Cm0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQptCj0KbQntCS0JjQiyDQoNCQ0KTQldCiCivQptCj0JPQm9CYINCI0J7QktCQ0J0KK9Cm0KPQmtCY0Isg0KDQkNCU0JAKK9Cm0KPQmtCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0KbQo9Ca0JjQiyDQodCS0JXQotCe0JfQkNCgCivQptCj0IrQkNCaINCc0JjQm9Cj0KLQmNCdCivQptCj0J/QkNCLINCh0JLQldCi0J7QnNCY0KAg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Cm0KPQn9CQ0KDQmNCLINCi0J7QnNCQCivQptCj0KDQkNCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KbQktCV0IjQkNCd0J7QkiDQiNCV0JvQldCd0JAKK9Cm0JLQldCI0JDQndCe0JIg0J3QldCR0J7QiNCo0JAKK9Cm0JLQldCI0JDQndCe0JIg0J/QoNCV0JTQoNCQ0JMKK9Cm0JLQldCI0JDQndCe0JIg0JLQldCb0JjQkdCe0KAKK9Cm0JLQldCI0JDQndCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQptCS0JXQiNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQptCS0JXQiNCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0KbQktCV0IjQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQptCS0JXQiNCQ0J3QntCS0JjQiyDQodCf0J7QnNCV0J3QmtCQCivQptCS0JXQiNCQ0J3QntCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQptCS0JXQiNCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQptCS0JXQiNCQ0J3QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cm0JLQldCI0JjQiyDQp9CV0JTQntCc0JjQoAor0KbQktCV0IjQmNCLINCW0JDQoNCa0J4KK9Cm0JLQldCI0JjQiyDQltCY0JLQntCI0JjQnQor0KbQktCV0IjQmNCLINCC0J7QoNCC0JUg0JTQoAor0KbQktCV0IjQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Cm0JLQldCI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgCivQptCS0JXQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cm0JLQldCI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KbQktCV0IjQmNCLINCR0J7QltCY0JTQkNCgCivQptCS0JXQiNCY0Isg0JHQntCg0JjQktCe0IgKK9Cm0JLQldCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Cm0JLQldCI0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cm0JLQldCI0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQptCS0JXQiNCY0Isg0JjQk9CK0JDQogor0KbQktCV0IjQmNCLINCY0JLQkNCdCivQptCS0JXQiNCY0Isg0IjQldCb0JXQndCQCivQptCS0JXQiNCY0Isg0JrQkNCi0JjQptCQCivQptCS0JXQiNCY0Isg0JvQkNCX0JDQoAor0KbQktCV0IjQmNCLINCc0JjQm9CQ0J0KK9Cm0JLQldCI0JjQiyDQnNCY0JvQkNCdCivQptCS0JXQiNCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cm0JLQldCI0JjQiyDQnNCY0JvQntCoCivQptCS0JXQiNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cm0JLQldCI0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KbQktCV0IjQmNCLINCd0JDQlNCV0JbQlNCQCivQptCS0JXQiNCY0Isg0J3QldCU0JXQidCa0JAKK9Cm0JLQldCI0JjQiyDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0JjQndCTCivQptCS0JXQiNCY0Isg0J3QmNCa0J7Qm9CQCivQptCS0JXQiNCY0Isg0J7Qm9CT0JAKK9Cm0JLQldCI0JjQiyDQn9CQ0JLQm9CVCivQptCS0JXQiNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KbQktCV0IjQmNCLINCg0JDQlNCe0JLQkNCdCivQptCS0JXQiNCY0Isg0KDQo9CW0JjQptCQCivQptCS0JXQiNCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KbQktCV0IjQmNCLINCh0KLQldCS0JDQnQor0KbQktCV0IjQmNCLINCh0KLQldCS0JDQnQor0KbQktCV0IjQmNCLINCS0JvQkNCU0JDQnQor0KbQktCV0IjQmNCLINCX0JDQk9Ce0KDQmtCQCivQptCS0JXQiNCY0J0g0JHQntCW0JAKK9Cm0JLQldCI0JjQnSDQkdCe0IjQkNCd0JAKK9Cm0JLQldCI0JjQnSDQlNCj0KjQkNCdINCU0JjQn9CbINCY0J3Qkwor0KbQktCV0IjQmNCdINCc0JDQoNCY0IjQkAor0KbQktCV0IjQmNCdINCc0JjQm9CQ0J0KK9Cm0JLQldCI0JjQnSDQnNCY0JvQntCoCivQptCS0JXQiNCY0J0g0JzQmNCg0IjQkNCd0JAKK9Cm0JLQldCI0JjQnSDQndCe0JLQkNCaCivQptCS0JXQiNCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0KbQktCV0IjQmNCdINCi0KDQmNCS0JAKK9Cm0JLQldCa0JjQiyDQnNCY0JvQldCi0JAKK9Cm0JLQldCa0JjQiyDQktCe0IjQmNCdCivQptCS0JXQmtCY0Isg0JfQm9CQ0KLQmNCm0JAKK9Cm0JLQldCg0JTQldCJINCI0JDQndCa0J4KK9Cm0JLQldCg0JTQldCJINCg0KPQltCQCivQptCS0JXQoNCK0JDQmiDQiNCV0J3QlQor0KbQktCV0KLQkNCd0J7QktCY0Isg0JDQndCY0KLQkAor0KbQktCV0KLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQptCS0JXQotCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cm0JLQldCi0JDQndCe0JLQmNCLINCI0JXQoNCc0JjQndCQINCU0KAg0JvQldCa0JDQoAor0KbQktCV0KLQkNCd0J7QktCY0Isg0JzQkNCT0JTQntCb0J3QkAor0KbQktCV0KLQkNCd0J7QktCY0Isg0KDQkNCU0JjQptCQCivQptCS0JXQotCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQptCS0JXQotCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQptCS0JXQotCQ0J3QntCS0JjQiyDQktCV0InQkAor0KbQktCV0KLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KbQktCV0KLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KbQktCV0KLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KbQktCV0KLQkNCd0J7QktCh0JrQmCDQnNCQ0J3QntCI0JvQngor0KbQktCV0KLQkNCd0J7QktCh0JrQmCDQnNCY0JvQlQor0KbQktCV0KLQmNCn0JDQndCY0J0g0InQo9CR0JjQptCQCivQptCS0JXQotCY0KfQkNCd0JjQnSDQnNCY0JvQmtCQCivQptCS0JXQotCY0KfQkNCd0JjQnSDQktCV0KHQndCQCivQptCS0JXQotCY0KfQkNCd0JjQnSDQl9Ce0KDQkNCdCivQptCS0JXQotCY0Isg0JHQntCo0JrQngor0KbQktCV0KLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cm0JLQldCi0JjQiyDQm9CQ0JfQkNCgCivQptCS0JXQotCY0Isg0JvQkNCX0J4KK9Cm0JLQldCi0JjQiyDQidCj0JHQmNCm0JAKK9Cm0JLQldCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Cm0JLQldCi0JjQiyDQn9CV0KLQkNCgCivQptCS0JXQotCY0Isg0KHQm9CQ0JLQmtCeCivQptCS0JXQotCY0Isg0KHQotCQ0J3QmtCeCivQptCS0JXQotCY0IvQkNCd0JjQnSDQkdCe0KjQmtCeCivQptCS0JXQotCY0IvQkNCd0JjQnSDQkdCg0JDQndCa0J4KK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCU0JDQndCVCivQptCS0JXQotCY0IvQkNCd0JjQnSDQlNCQ0J3QmNCm0JAKK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCU0KDQkNCT0J7QnNCY0KAKK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCY0JvQmNCI0JAKK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCY0KDQldCd0JAKK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCc0JjQm9Ce0KgKK9Cm0JLQldCi0JjQi9CQ0J3QmNCdINCc0JjQm9Ce0KDQkNCUCivQptCS0JXQotCY0IvQkNCd0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQptCS0JXQotCY0IvQkNCd0JjQnSDQodCd0JXQltCQ0J3QkAor0KbQktCV0KLQmNCL0JDQndCY0J0g0JfQntCg0JDQnQor0KbQktCV0KLQmNCd0JjQiyDQnNCQ0KDQmtCeCivQptCS0JXQotCY0J3QmNCLINCc0JDQotCY0IjQkAor0KbQktCV0KLQmNCK0JDQndCY0J0g0KLQntCc0JjQodCb0JDQkgor0KbQktCV0KLQmNCd0J7QkiDQodCQ0JLQkAor0KbQktCV0KLQmNCd0J7QktCY0Isg0JDQndCa0JAKK9Cm0JLQldCi0JjQndCe0JLQmNCLINCR0KDQkNCd0JAKK9Cm0JLQldCi0JjQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0KbQktCV0KLQmNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQptCS0JXQotCY0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQptCS0JXQotCY0J3QntCS0JjQiyDQmNCS0JDQndCa0J4KK9Cm0JLQldCi0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cm0JLQldCi0JjQndCe0JLQmNCLINCh0JjQnNCeCivQptCS0JXQotCY0J3QntCS0JjQiyDQktCV0KDQkAor0KbQktCV0KLQmNCd0J7QktCY0Isg0JfQntCg0JAKK9Cm0JLQldCi0JrQntCSINCI0J7QktCQ0J0KK9Cm0JLQldCi0JrQntCSINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQptCS0JXQotCa0J7QkiDQoNCQ0JTQntCI0JUKK9Cm0JLQldCi0JrQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0KbQktCV0KLQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQptCS0JXQotCa0J7QktCY0Isg0ILQntCg0ILQlQor0KbQktCV0KLQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cm0JLQldCi0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KbQktCV0KLQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQptCS0JXQotCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cm0JLQldCi0JrQntCS0JjQiyDQkNCd0JrQkAor0KbQktCV0KLQmtCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0KbQktCV0KLQmtCe0JLQmNCLINCR0J7QoNCQCivQptCS0JXQotCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KbQktCV0KLQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cm0JLQldCi0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cm0JLQldCi0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cm0JLQldCi0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cm0JLQldCi0JrQntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0KbQktCV0KLQmtCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQptCS0JXQotCa0J7QktCY0Isg0JTQldCh0JjQnNCY0KAKK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KbQktCV0KLQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgINCc0KAKK9Cm0JLQldCi0JrQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQptCS0JXQotCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KbQktCV0KLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiy3Qk9Cb0JDQlNCY0Isg0KHQnNCY0InQkAor0KbQktCV0KLQmtCe0JLQmNCLINCT0KDQntCX0JTQkAor0KbQktCV0KLQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQmNCS0JDQndCa0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQiNCV0JvQmtCQCivQptCS0JXQotCa0J7QktCY0Isg0IjQntCS0JDQnQor0KbQktCV0KLQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cm0JLQldCi0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQptCS0JXQotCa0J7QktCY0Isg0JvQmNCS0JjQkAor0KbQktCV0KLQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0KbQktCV0KLQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0KbQktCV0KLQmtCe0JLQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQptCS0JXQotCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KbQktCV0KLQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KbQktCV0KLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQptCS0JXQotCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cm0JLQldCi0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KbQktCV0KLQmtCe0JLQmNCLINCc0JjQoNCQCivQptCS0JXQotCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSINCU0KAKK9Cm0JLQldCi0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQptCS0JXQotCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQptCS0JXQotCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQptCS0JXQotCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQptCS0JXQotCa0J7QktCY0Isg0J/QldCi0JDQoAor0KbQktCV0KLQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQptCS0JXQotCa0J7QktCY0Isg0KDQkNCU0J7QiNCa0J4KK9Cm0JLQldCi0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQptCS0JXQotCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KbQktCV0KLQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQptCS0JXQotCa0J7QktCY0Isg0KDQkNCU0KPQm9CQCivQptCS0JXQotCa0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cm0JLQldCi0JrQntCS0JjQiyDQoNCY0KHQotCeCivQptCS0JXQotCa0J7QktCY0Isg0KDQo9CW0JjQptCQCivQptCS0JXQotCa0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KbQktCV0KLQmtCe0JLQmNCLINCh0J7QmtCQCivQptCS0JXQotCa0J7QktCY0Isg0KHQoNCR0J7QkdCg0JDQnQor0KbQktCV0KLQmtCe0JLQmNCLINCh0KLQkNCd0JrQngor0KbQktCV0KLQmtCe0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQptCS0JXQotCa0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9Cm0JLQldCi0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQptCS0JXQotCa0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cm0JLQldCi0JrQntCS0JjQiyDQotCe0J3QmAor0KbQktCV0KLQmtCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQptCS0JXQotCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KbQktCV0KLQmtCe0JLQmNCLINCX0J7QoNCQCivQptCS0JXQotCa0J7QktCh0JrQmCDQkdCe0KDQmNChCivQptCS0JXQotCa0J7QktCh0JrQmCDQlNCg0JDQk9Ce0InQo9CRCivQptCS0JXQotCa0J7QktCh0JrQmCDQndCY0JrQntCb0JAKK9Cm0JLQldCi0JrQntCS0KHQmtCYINCS0J7QiNCeCivQptCS0JXQotCe0IjQldCS0JjQiyDQidCY0InQkNCd0JAKK9Cm0JLQldCi0J7QiNCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0KbQktCV0KLQntCI0JXQktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cm0JLQldCi0J7QiNCV0JLQmNCLINCh0JvQkNCS0JrQngor0KbQktCY0IjQkNCdINCc0JDQoNCY0IjQkAor0KbQktCY0IjQkNCdINCc0JDQoNCa0J4KK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCQ0J3QgtCQCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQkNCd0JAKK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCQ0J3QotCeCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQkdCe0KDQngor0KbQktCY0IjQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCm0JAKK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KbQktCY0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KbQktCY0IjQkNCd0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0KbQktCY0IjQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KbQktCY0IjQkNCd0J7QktCY0Isg0JzQntCc0JjQoAor0KbQktCY0IjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0KbQktCY0IjQkNCd0J7QktCY0Isg0KDQkNCU0JUKK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCg0JDQndCa0J4KK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCh0JDQktCQCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Cm0JLQmNCI0JDQndCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQptCS0JjQiNCQ0J3QntCS0JjQiyDQl9Cb0JDQotCQCivQptCS0JjQiNCV0KLQkNCdINCc0JjQoNCa0J4KK9Cm0JLQmNCI0JXQotCY0KfQkNCd0JjQnSDQiNCe0JLQngor0KbQktCY0IjQldCi0JjQiyDQmNCT0J7QoAor0KbQktCY0IjQldCi0JjQiyDQiNCe0JLQngor0KbQktCY0IjQldCi0JjQiyDQnNCY0JvQlQor0KbQktCY0IjQldCi0JjQiyDQndCQ0JTQkAor0KbQktCY0IjQldCi0JjQndCe0JLQmNCLINCg0KPQltCQCivQptCS0JjQiNCV0KLQmNCd0J7QktCY0Isg0KDQo9CW0JjQptCQCivQptCS0JjQiNCV0KLQmNCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQptCS0JjQiNCY0Isg0JbQldCJ0JrQngor0KbQktCY0IjQmNCLINCU0KDQkNCT0JDQnQor0KbQktCY0IjQmNCLINCT0J7QoNCQ0J0KK9Cm0JLQmNCI0JjQiyDQiNCV0JvQmNCh0JDQktCQCivQptCS0JjQiNCY0Isg0IjQntCS0JDQndCa0JAKK9Cm0JLQmNCI0JjQiyDQnNCY0JvQldCd0JrQngor0KbQktCY0IjQmNCLINCc0JjQntCU0KDQkNCTCivQptCS0JjQiNCY0Isg0JzQm9CQ0ILQkAor0KbQktCY0IjQmNCLINCd0JjQmtCe0JvQkAor0KbQktCY0IjQmNCLINCf0JDQndCi0JUKK9Cm0JLQmNCI0JjQiyDQoNCj0JbQmNCm0JAKK9Cm0JLQmNCI0JjQiyDQodCi0JXQktCQ0J0KK9Cm0JLQmNCI0JjQnSDQkdCg0JDQndCa0J4KK9Cm0JLQmNCI0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cm0JLQmNCI0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KbQktCY0IjQntCS0JjQiyDQndCV0ILQldCJ0JrQkAor0KbQktCY0IjQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0KbQktCY0IjQntCS0JjQiyDQktCe0IjQmNCdCivQptCS0JjQmtCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cm0JLQmNCd0JMg0IjQntCh0JjQnwor0KbQktCY0KLQkNCd0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cm0JLQmNCi0JrQniDQn9CV0KLQkNCgCivQptCS0JjQotCa0J7QktCQ0KYg0JzQkNCg0JrQngor0KbQktCI0JXQotCQ0J0g0J7Qm9CT0JAKK9Cm0JLQiNCV0KLQmNCLINCY0JvQmNCI0JAKK9Cm0JLQiNCV0KLQmNCL0JDQndCY0J0g0JbQmNCS0JrQngor0KbQktCI0JXQotCY0IvQkNCd0JjQnSDQk9Ce0IjQmtCeCivQptCS0IjQldCi0JjQi9CQ0J3QmNCdINCh0KLQldCS0J4KK9Cm0JLQiNCV0KLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQptCS0IjQldCi0JrQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0KbQktCI0JXQotCe0IjQldCS0JjQiyDQp9CV0JTQntCc0JjQoAor0KbQktCe0KDQntCS0JjQiyDQoNCQ0JTQntCoCivQptCS0KDQmtCQ0Ikg0ILQo9Cg0J4KK9CP0JDQkdCQ0KHQkNCdINCU0KDQkNCT0J7QiNCVCivQj9CQ0JHQmNCLINCc0JjQm9Ca0JAKK9CP0JDQj9CY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0I/QkNCk0JXQoNCe0JLQodCa0Jgg0KDQldCC0JXQnwor0I/QkNCk0JjQiyDQpdCQ0JzQlNCY0IjQkAor0I/QkNCk0J4g0JzQkNCi0JjQiNCQCivQj9CQ0IjQkCDQnNCQ0KDQmNCm0JAKK9CP0JDQmtCY0Isg0KfQldCU0J4KK9CP0JDQmtCY0Isg0JHQntCW0JDQndCQCivQj9CQ0JrQmNCLINCb0JDQl9CQCivQj9CQ0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CP0JDQmtCj0JvQkCDQldCg0JbQldCR0JXQogor0I/QkNCa0KPQm9CQINCV0KDQltCV0JHQldCiCivQj9CQ0JrQo9Cb0JAg0JjQktCQ0J0KK9CP0JDQmtCj0JvQkCDQnNCQ0KDQmNCm0JAKK9CP0JDQmtCj0JvQkCDQndCV0JTQldCJ0JrQngor0I/QkNCa0KPQm9CQINCf0JXQotCQ0KAKK9CP0JDQmtCj0JvQkCDQoNCQ0JTQlQor0I/QkNCa0KPQm9CQINCS0JjQlNCe0KHQkNCSCivQj9CQ0JrQo9Cb0JjQnSDQlNCj0KjQkNCd0JrQkAor0I/QkNCa0KPQm9CY0J0g0J/QldCi0JDQoAor0I/QkNCa0KPQm9CY0J0g0KHQotCV0JLQkNCdCivQj9CQ0JvQmNCLINCh0KLQntCI0JDQnQor0I/QkNCc0JHQkNCg0KHQmtCYINCI0J7QktCQ0J0KK9CP0JDQnNCR0JDQoSDQlNCj0KjQkNCdINCU0KAg0JvQldCa0JDQoAor0I/QkNCc0JHQkNChINCc0JjQm9CVCivQj9CQ0JzQkdCQ0KHQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0I/QkNCc0JHQmNCLINCR0KDQkNCd0JrQngor0I/QkNCc0JHQmNCLINCc0JjQm9Ce0JLQkNCdCivQj9CQ0JzQkdCY0Isg0KDQkNCU0J7QktCQ0J0KK9CP0JDQnNCR0JjQiyDQodCb0JDQktCa0J4KK9CP0JDQnNCR0JjQiyDQodCg0JXQotCQCivQj9CQ0J3QmNCLINCh0JDQktCQCivQj9CQ0J3QmNCLINCh0KLQkNCX0JAKK9CP0JDQoNCY0Isg0JTQntCR0KDQmNCd0JrQkAor0I/QkNCg0JjQiyDQoNCQ0JTQntCc0JjQoAor0I/QldCb0JXQotCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQj9CV0JvQldCi0J7QktCY0Isg0JzQmNCb0JDQnQor0I/QldCb0JXQotCe0JLQmNCLINCc0JvQkNCU0JXQnQor0I/QldCb0JXQotCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQj9CV0JvQldCi0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0I/QldCb0JXQotCe0JLQmNCLINCi0J7QnNCeCivQj9CV0JvQmNCb0J7QktCY0Isg0IjQkNCd0JAKK9CP0JXQn9CY0J3QkCDQiNCe0JLQkNCdCivQj9CV0JLQldCb0JXQmtCY0JTQmNChINCc0JDQoNCY0J3QkAor0I/QldCS0JXQm9CV0JrQmNCU0JjQoSDQn9CQ0J3QotCQCivQj9CV0JLQldCgINCd0JXQlNCV0InQmtCeCivQj9CV0JLQldCg0JTQkNCd0J7QktCY0Isg0JDQndCY0KLQkAor0I/QldCS0JXQoNCU0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CP0JXQktCV0KDQlNCQ0J3QntCS0JjQiyDQndCQ0KHQotCeCivQj9CV0JLQldCg0JTQkNCd0J7QktCY0Isg0JLQldCb0JjQl9CQ0KAKK9CU0JbQmNCU0JAg0JrQkNCi0JjQptCQCivQj9CY0JTQkCDQmtCQ0KLQmNCm0JAKK9CP0JjQlNCQINCc0JjQm9CQ0JTQmNCdCivQj9CY0JTQkCDQnNCY0JvQntCc0JjQoAor0I/QmNCT0KPQoNCQ0Kgg0JzQmNCb0JXQndCa0J4KK9CP0JjQk9Cj0KDQodCa0Jgg0JHQntCg0JjQktCe0IgKK9CP0JjQk9Cj0KDQodCa0Jgg0JHQoNCQ0J3QmNCc0JjQoAor0I/QmNCT0KPQoNCh0JrQmCDQkdCg0JDQndCa0J4KK9CP0JjQk9Cj0KDQodCa0Jgg0JTQkNCd0JjQm9CeCivQj9CY0JPQo9Cg0KHQmtCYINCU0KPQqNCa0J4KK9CP0JjQk9Cj0KDQodCa0Jgg0InQmNCJ0JDQndCQCivQj9CY0JPQo9Cg0KHQmtCYINCJ0JjQidCQ0J3QkAor0I/QmNCT0KPQoNCh0JrQmCDQnNCQ0KDQmNCI0JAKK9CP0JjQk9Cj0KDQodCa0Jgg0JzQkNCg0JjQiNCQCivQj9CY0JPQo9Cg0KHQmtCYINCc0JjQm9CQ0J0KK9CP0JjQk9Cj0KDQodCa0Jgg0JzQmNCb0JXQndCa0J4KK9CP0JjQk9Cj0KDQodCa0Jgg0J/QldCi0JDQoAor0I/QmNCT0KPQoNCh0JrQmCDQn9Cg0JXQlNCg0JDQkwor0I/QmNCa0JjQiyDQnNCY0JvQkNCdCivQj9CY0JvQmNCi0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0I/QmNCb0JjQotCe0JIg0JrQkNCi0JjQptCQCivQj9CY0JvQmNCi0J7QkiDQodCi0JXQktCQ0J0KK9CP0JjQm9CY0KLQntCSINCh0KLQldCS0JAKK9CP0JjQm9CY0KLQntCSINCS0JXQm9CY0J3QmtCQCivQj9CY0JvQktCY0I/QmNCI0JXQkiDQnNCY0KLQmtCeCivQj9CY0J0g0JzQmNCg0JrQngor0I/QmNCd0JjQiyDQnNCY0KDQntCh0JvQkNCSINCU0KAKK9CP0JjQndCY0Isg0JzQmNCg0J7QodCb0JDQkgor0I/QmNCd0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CP0JjQoNCY0Isg0KDQo9CW0JjQptCQCivQj9Ce0I/QniDQoNCY0KHQotCeCivQj9Ce0JTQkNCdINCU0KDQkNCT0JAKK9CP0J7QlNCQ0J0g0JzQmNCg0IjQkNCd0JAKK9CP0J7QlNCQ0J0g0J3QmNCa0J7Qm9CQCivQj9Ce0JTQkNCdINCS0JXQoNCQCivQj9Ce0JPQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CP0J7Qk9Ce0JLQmNCLINCW0JjQktCQ0J0KK9CP0J7Qk9Ce0JLQmNCLINCc0JjQm9Cj0J0KK9CP0J7Qm9CV0JIg0JDQodCV0J0g0JTQoCDQodCi0J7QnNCQ0KLQntCb0J7Qkwor0I/QntCb0JXQkiDQkNCh0JXQnQor0I/QntCb0JXQkiDQkNCh0JXQnQor0I/QntCb0JXQkiDQnNCY0KLQmtCeCivQj9Ce0JvQldCSINCf0JDQndCU0JUKK9CP0J7Qm9CY0Isg0JPQntCg0JTQkNCd0JAKK9CP0J7Qm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0I/QntCc0JHQkCDQltCY0JLQmtCeCivQj9Ce0JzQkdCV0KLQkCDQmtCe0KHQotCQCivQj9Ce0JzQkdCV0KLQkCDQnNCY0JvQntCoCivQj9Ce0JzQkdCV0KLQkCDQndCY0JrQntCb0JAKK9CP0J7QnNCR0JXQotCQINCh0JLQldCi0J7Ql9CQ0KAKK9CP0J7QnNCR0JXQotCQINCS0JvQkNCU0J4KK9CP0J7QnNCR0JjQiyDQlNCj0KjQkNCdCivQj9Ce0JzQkdCY0Isg0JzQmNCJ0JAKK9CP0J7QnNCR0JjQiyDQodCe0JrQkAor0I/QntCd0JvQldCXINCf0JjQoNCe0KjQmtCQCivQj9Ce0J/QkNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CP0KPQj9CQ0KAg0ILQo9Cg0JAKK9CP0KPQj9CQ0KAg0IjQntCQ0JrQmNCcCivQj9Cj0I/QkNCgINCh0JvQkNCS0JrQngor0I/Qo9CU0J7QktCY0Isg0KHQnNCY0InQmtCQCivQj9Cj0JTQntCS0JjQiyDQktCQ0KHQngor0I/Qo9Ca0JvQldCS0KHQmtCYINCh0JDQqNCQCivQj9Cj0JrQidCV0JIg0JTQoNCQ0JPQkNCdCivQj9Cj0JrQidCV0JIg0KHQotCe0IjQkNCdCivQj9Cj0J3QmNCLINCW0JjQktCe0KDQkNCUCivQj9Cj0J3QmNCLINCc0JjQm9CY0JLQntCI0JUKK9CP0KPQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9CP0KPQndCY0Isg0KDQkNCU0J7QnNCY0KAKK9CP0KPQitCQINCQ0JzQkNCb0JjQiNCQCivQj9Cj0IrQkCDQldCS0JPQldCd0JjQiNCVCivQj9Cj0IrQkCDQk9Ce0KDQlNCQ0J3QkAor0I/Qo9CK0JAg0JjQoNCV0J3QkAor0I/Qo9CK0JAg0JjQktCQ0J0KK9CP0KPQitCQINCI0JDQmtCY0JwKK9CP0KPQitCQINCI0JDQndCa0J4KK9CP0KPQitCQINCI0JXQm9CV0J3QkAor0I/Qo9CK0JAg0InQo9CR0J7QnNCY0KAKK9CP0KPQitCQINCc0JjQoNCe0J0KK9CP0KPQitCQINCS0JvQkNCU0JjQnNCY0KAKK9CP0KPQitCQINCX0JLQntCd0JjQnNCY0KAKK9CP0KPQktCV0KAg0JLQldCh0JXQm9CY0J3QmtCQCivQj9Cj0JLQldCgINCS0J7QiNCY0KHQm9CQ0JIKK9CP0KPQktCV0KDQntCS0JjQiyDQmNCS0JDQndCa0JAKK9CU0JDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JDQp9CV0JLQmNCLINCc0J7QnNCY0KAKK9CU0JDQp9CY0Isg0JTQo9Co0JDQnQor0JTQkNCn0JjQiyDQmtCg0JjQodCi0JjQndCQCivQlNCQ0KfQmNCLINCJ0KPQkdCe0JzQmNCgCivQlNCQ0KfQmNCLINCc0JjQqNCQCivQlNCQ0KfQmNCLINCc0JjQm9CQ0J0g0J/QoNCe0KTQldCh0J7QoAor0JTQkNCn0JjQiyDQnNCY0JvQkNCdCivQlNCQ0KfQmNCLINCc0JjQm9CY0KbQkAor0JTQkNCn0JjQiyDQndCQ0JTQldCW0JTQkAor0JTQkNCn0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JTQkNCn0JjQiyDQktCV0JvQmNCd0JrQkAor0JTQkNCn0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9CU0JDQqNCY0Ist0JPQo9Cb0JQg0InQmNCJ0JDQndCQCivQlNCQ0KjQmNCLINCc0JDQoNCY0IjQkAor0JTQkNCo0JjQiyDQnNCY0JvQldCd0JrQngor0JTQkNCo0JjQiyDQoNCQ0JTQo9Cb0JUKK9CU0JDQqNCY0Isg0JLQm9CQ0JTQngor0JTQkNCW0ILQoyDQndCY0KHQotCe0KAKK9CU0JDQkdCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CU0JDQkdCQ0J3QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQlNCQ0JHQldCg0JXQoCDQkNCd0KLQntCd0JjQiNCQCivQlNCQ0JHQldCi0JjQiyDQoNCQ0JTQmNCh0JDQkgor0JTQkNCR0JXQotCY0Isg0KDQkNCU0J7QnNCY0KAKK9CU0JDQkdCY0Isg0KfQldCU0J7QnNCY0KAg0JTQmNCf0Jsg0J7QldCmCivQlNCQ0JHQmNCLINCC0J7QoNCC0JUKK9CU0JDQkdCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0JDQkdCY0Isg0JHQntCg0JrQngor0JTQkNCR0JjQiyDQk9Ce0KHQn9CQ0JLQkAor0JTQkNCR0JjQiyDQiNCe0JLQkNCdCivQlNCQ0JHQmNCLINCI0J7QktCQ0J0KK9CU0JDQkdCY0Isg0JzQkNCg0JjQiNCQCivQlNCQ0JHQmNCLINCc0JDQoNCa0J4KK9CU0JDQkdCY0Isg0JzQmNCb0JDQnQor0JTQkNCR0JjQiyDQnNCY0JvQntCoCivQlNCQ0JHQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCQ0JHQmNCLINCc0JjQm9Cj0KLQmNCdCivQlNCQ0JHQmNCLINCc0JjQntCU0KDQkNCTCivQlNCQ0JHQmNCLINCd0JXQlNCV0InQmtCeCivQlNCQ0JHQmNCLINCd0JXQndCQ0JQKK9CU0JDQkdCY0Isg0J3QldCd0JDQlAor0JTQkNCR0JjQiyDQndCV0J3QkNCUCivQlNCQ0JHQmNCLINCg0JDQlNCe0JzQmNCgCivQlNCQ0JHQmNCLINCh0JvQkNCS0JrQngor0JTQkNCR0JjQiyDQodCi0JXQktCQ0J0KK9CU0JDQkdCY0Isg0KHQktCV0KLQkAor0JTQkNCR0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQlNCQ0JHQmNCdINCC0J7QoNCC0JUKK9CU0JDQkdCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JTQkNCR0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQlNCQ0KbQmNCdINCW0JXQidCa0J4KK9CU0JDQlNCQ0Jgg0ILQo9Cb0JAKK9CU0JDQlNCQ0Jgg0JHQkNCg0JHQkNCg0JAKK9CU0JDQlNCQ0Jgg0JvQkNCU0JjQodCb0JDQkgor0JTQkNCU0JDQmCDQm9CQ0JTQmNCh0JvQkNCSCivQlNCQ0JTQkNCYINCb0JDQodCb0J4KK9CU0JDQlNCQ0Jgg0KHQotCV0JLQkNCdCivQlNCQ0JTQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQkNCU0JjQiyDQidCj0JHQmNCm0JAKK9CU0JDQmNCLINCb0KPQmtCQCivQlNCQ0JjQiyDQnNCY0JvQkNCdCivQlNCQ0IjQpyDQnNCY0KXQkNCI0JvQngor0JTQkNCI0Kcg0J3QkNCU0JAKK9CU0JDQiNCnINCg0KPQkdCV0J0KK9CU0JDQiNCnINCX0J7QoNCY0KbQkAor0JTQkNCI0JjQiyDQkdCg0JDQndCa0J4KK9CU0JDQiNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CU0JDQiNCY0Isg0JTQo9Co0JDQnQor0JTQkNCI0JjQiyDQidCY0InQkNCd0JAKK9CU0JDQiNCY0Isg0JLQldCb0JjQnNCY0KAKK9CU0JDQiNCa0J4g0JLQm9CQ0JTQmNCc0JjQoAor0JTQkNCI0JrQniDQktCb0JDQlNCY0JzQmNCgCivQlNCQ0IjQntCS0JjQiyDQl9Ce0KDQkAor0JTQkNCa0JjQiyDQgtCe0KDQgtCVCivQlNCQ0JrQmNCLINCQ0J3QotCVCivQlNCQ0JrQmNCLINCR0J7QiNCQ0J3QkAor0JTQkNCa0JjQiyDQkdCe0KDQmNChCivQlNCQ0JrQmNCLINCR0J7QoNCa0JAKK9CU0JDQmtCY0Isg0JHQoNCQ0J3QmtCQCivQlNCQ0JrQmNCLINCU0JDQndCVCivQlNCQ0JrQmNCLINCU0JDQndCY0JvQngor0JTQkNCa0JjQiyDQlNCg0JDQk9CeCivQlNCQ0JrQmNCLINCU0KDQkNCT0J4KK9CU0JDQmtCY0Isg0JTQo9Co0JDQndCa0JAKK9CU0JDQmtCY0Isg0JPQntCI0JrQngor0JTQkNCa0JjQiyDQmNCb0JjQiNCQCivQlNCQ0JrQmNCLINCI0JXQm9CV0J3QkAor0JTQkNCa0JjQiyDQmtCh0JXQndCY0IjQkAor0JTQkNCa0JjQiyDQnNCY0JvQkNCdCivQlNCQ0JrQmNCLINCc0JjQm9Ce0IjQlQor0JTQkNCa0JjQiyDQnNCY0JvQntCc0JjQoAor0JTQkNCa0JjQiyDQnNCY0KLQkNCgCivQlNCQ0JrQmNCLINCd0JXQkdCe0IjQqNCQCivQlNCQ0JrQmNCLINCd0JXQlNCV0InQmtCeCivQlNCQ0JrQmNCLINCd0JXQlNCV0InQmtCeCivQlNCQ0JrQmNCLINCd0JjQmtCe0JvQkAor0JTQkNCa0JjQiyDQndCY0JrQntCb0JAKK9CU0JDQmtCY0Isg0J/QkNCS0JvQlQor0JTQkNCa0JjQiyDQn9CV0KLQkNCgCivQlNCQ0JrQmNCLINCg0JDQiNCa0J4KK9CU0JDQmtCY0Isg0KDQkNCd0JrQngor0JTQkNCa0JjQiyDQoNCQ0KLQmtCeCivQlNCQ0JrQmNCLINCg0JXQidCQCivQlNCQ0JrQmNCLINCh0JvQkNCS0JjQptCQCivQlNCQ0JrQmNCLINCh0JvQkNCS0JrQngor0JTQkNCa0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCQ0JrQmNCLINCh0KDQldCi0JXQnQor0JTQkNCa0JjQiyDQodCS0JXQotCe0JfQkNCgCivQlNCQ0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0JTQkNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0KAKK9CU0JDQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JTQkNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQlNCQ0JrQmNCLINCS0JvQkNCU0J4KK9CU0JDQmtCY0Isg0JfQntCg0JDQnQor0JTQkNCa0J7QktCY0Isg0ILQntCa0J4KK9CU0JDQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JTQkNCa0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CU0JDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CU0JDQmtCh0JXQoCDQiNCe0JLQkNCdCivQlNCQ0JrQodCV0KAg0KHQotCV0JLQkNCdCivQlNCQ0JvQp9CV0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQlNCQ0JvQmNCf0J7QkiDQkdCj0JTQmNCc0JjQoAor0JTQkNCb0JjQn9Ce0JLQmNCLINCQ0JHQlNCj0JsKK9CU0JDQidCQ0KYg0InQo9CR0JjQptCQCivQlNCQ0InQldCSINCJ0JjQidCQ0J3QkAor0JTQkNCJ0JXQkiDQnNCY0JvQkNCdCivQlNCQ0JvQnNCQ0KbQmNCI0JAg0IjQkNCU0KDQkNCd0JrQkAor0JTQkNCb0JzQkNCm0JjQiNCQINCc0JjQoNCa0J4KK9CU0JDQm9Ce0Kgg0JzQkNCg0JjQiNCQCivQlNCQ0JzQqNCY0Isg0IjQntCh0JjQpAor0JTQkNCc0IjQkNCdINCI0JXQm9CY0KHQkNCS0JXQotCQCivQlNCQ0JzQiNCQ0J0g0IjQntCdCivQlNCQ0JzQiNCQ0J3QkNCmINCg0JDQlNCc0JjQm9CQCivQlNCQ0JzQiNCQ0J3QkNCmINCg0JDQlNCe0JLQkNCdCivQlNCQ0JzQiNCQ0J3QkNCmINCh0KLQntCI0JDQndCa0JAKK9CU0JDQnNCI0JDQndCY0Isg0JfQntCg0JjQptCQCivQlNCQ0JzQiNCQ0J3QntCh0JrQkCDQodCb0JDQktCa0JAKK9CU0JDQnNCI0JDQndCe0JIg0JbQmNCa0JAKK9CU0JDQnNCI0JDQndCe0JIg0ILQntCg0ILQlQor0JTQkNCc0IjQkNCd0J7QkiDQkdCY0InQkNCd0JAKK9CU0JDQnNCI0JDQndCe0JIg0JHQoNCQ0J3QmtCQCivQlNCQ0JzQiNCQ0J3QntCSINCm0JLQldCi0JrQngor0JTQkNCc0IjQkNCd0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9CU0JDQnNCI0JDQndCe0JIg0JTQoNCQ0JPQntCc0JjQoAor0JTQkNCc0IjQkNCd0J7QkiDQmNCU0JAKK9CU0JDQnNCI0JDQndCe0JIg0IjQntCg0JTQkNCd0JrQkAor0JTQkNCc0IjQkNCd0J7QkiDQiNCe0JLQkNCdCivQlNCQ0JzQiNCQ0J3QntCSINCa0JDQotCY0KbQkAor0JTQkNCc0IjQkNCd0J7QkiDQm9CQ0JfQkAor0JTQkNCc0IjQkNCd0J7QkiDQnNCY0JvQldCd0JrQngor0JTQkNCc0IjQkNCd0J7QkiDQnNCY0JvQldCd0JrQngor0JTQkNCc0IjQkNCd0J7QkiDQn9CQ0JLQm9CVCivQlNCQ0JzQiNCQ0J3QntCSINCh0J7QpNCY0IjQkAor0JTQkNCc0IjQkNCd0J7QkiDQodCi0JDQndCa0J4KK9CU0JDQnNCI0JDQndCe0JIg0KHQotCV0JLQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JDQoNCh0JXQndCY0IjQlQor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCU0KDQkNCT0J4KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCU0KPQqNCY0KbQkAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JTQo9Co0JrQngor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JXQnNCY0JsKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQiNCe0JLQngor0JTQkNCc0IjQkNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQidCj0JHQmNCo0JAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0JjQiy3QnNCY0JvQldCd0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQndCe0JLQngor0JTQkNCc0IjQkNCd0J7QktCY0Isg0J7QkdCg0JDQlAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0KDQkNCU0JUKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQoNCQ0J3QmtCeCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQoNCQ0KLQmtCeCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQodCY0JzQngor0JTQkNCc0IjQkNCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JTQkNCc0IjQkNCd0J7QktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CU0JDQnNCI0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JTQkNCc0IjQkNCd0J7QktCY0Isg0KHQotCV0JLQngor0JTQkNCc0IjQkNCd0J7QktCY0Isg0KLQldCg0JXQl9CQCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQotCe0JTQntCgCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQlNCQ0JzQiNCQ0J3QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVINCU0KAKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CU0JDQnNCI0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CU0JDQnNCI0JDQndCe0JLQodCa0Jgg0JbQmNCS0JrQngor0JTQkNCc0IjQkNCd0J7QktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQkNCc0IjQkNCd0J7QktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQkNCc0IjQkNCd0J7QktCh0JrQmCDQnNCY0JvQkNCdCivQlNCQ0JzQiNCQ0J3QntCS0KHQmtCYINCg0KPQltCY0KbQkAor0JTQkNCc0IjQkNCd0J7QktCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQlNCQ0JzQidCQ0J3QntCS0JjQiyDQltCY0JLQntCi0JAKK9CU0JDQnNCK0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCQ0JzQitCQ0J3QntCS0JjQiyDQmtCg0JjQodCi0JjQndCQCivQlNCQ0JzQitCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQlNCQ0JzQitCQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9CU0JDQnNCK0JDQndCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9CU0JDQnNCK0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CU0JDQnNCK0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CU0JDQnSDQnNCY0KDQkAor0JTQkNCd0Kcg0KLQmNCR0J7QoAor0JTQkNCd0KfQldCi0J7QktCY0Isg0JfQntCg0JjQptCQCivQlNCQ0J3Qp9CeINCn0JDQkdCQCivQlNCQ0J3Qp9CeINCI0JXQndCVCivQlNCQ0J3QkNCY0JvQntCSINCQ0KbQkAor0JTQkNCd0JDQmNCb0J7QkiDQotCV0JLQkAor0JTQkNCd0JPQo9CR0JjQiyDQltCQ0KDQmtCeCivQlNCQ0J3Qk9Cj0JHQmNCLINCg0JDQlNCY0JLQntCI0JUg0JTQmNCf0Jsg0JjQndCTCivQlNCQ0J3Qk9Cj0JHQmNCLINCg0JDQotCa0J4KK9CU0JDQndCT0KPQl9Ce0JIg0JTQo9Co0JDQnQor0JTQkNCd0Jgg0JPQkNCo0J/QkNCgCivQlNCQ0J3QmCDQm9CQ0KHQm9CeCivQlNCQ0J3QmNCn0JjQiyDQkdCe0KDQngor0JTQkNCd0JjQp9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCQ0J3QmNCn0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQlNCQ0J3QmNCn0JjQiyDQlNCg0JDQk9CeCivQlNCQ0J3QmNCn0JjQiyDQmNCg0JXQndCQCivQlNCQ0J3QmNCn0JjQiyDQodCQ0JLQmNCm0JAKK9CU0JDQndCY0KfQmNCLINCX0JTQoNCQ0JLQmtCeCivQlNCQ0J3QmNCoINCV0JLQkAor0JTQkNCd0JjQqCDQmNCo0KLQktCQ0J0KK9CU0JDQndCY0Kgg0JzQkNCg0JjQiNCQCivQlNCQ0J3QmNCLINCf0JXQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQlNCQ0J3QmNCLINCS0JXQodCd0JAKK9CU0JDQndCY0Isg0JfQntCg0JjQptCQCivQlNCQ0J3QmNCV0Jsg0JDQndCU0KDQmNCI0JAKK9CU0JDQndCY0JXQmyDQkNCg0JDQndCa0JAKK9CU0JDQndCY0JXQmyDQpdCY0JvQlNCQCivQlNCQ0J3QmNCV0Jsg0IjQntCh0JjQnwor0JTQkNCd0JjQldCbINCf0JXQotCQ0KAKK9CU0JDQndCY0JXQmyDQn9CY0KDQntCo0JrQkAor0JTQkNCd0JjQldCbINCg0KPQltCQCivQlNCQ0J3QmNCa0J7QkiDQnNCY0KDQntCJ0KPQkQor0JTQkNCd0JjQmtCe0JIg0JLQkNCb0JXQoNCY0IjQkAor0JTQkNCd0JjQm9Ce0JIg0JDQndCY0KbQkAor0JTQkNCd0JjQm9Ce0JIg0JHQntCh0JjQidCa0JAKK9CU0JDQndCY0JvQntCSINCU0KPQqNCQ0J0KK9CU0JDQndCY0JvQntCSINCc0JjQm9CQ0J0KK9CU0JDQndCY0JvQntCSINCg0JDQlNCe0JzQmNCgCivQlNCQ0J3QmNCb0J7QkiDQodCc0JjQidCQ0J3QkAor0JTQkNCd0JjQm9Ce0JIg0KHQotCe0IjQkNCdCivQlNCQ0J3QmNCb0J7QkiDQktCQ0KHQkAor0JTQkNCd0JjQm9Ce0JLQkNCmINCU0JjQnNCY0KLQoNCY0IjQlQor0JTQkNCd0JjQm9Ce0JLQkNCmINCf0JXQotCQ0KAKK9CU0JDQndCY0JvQntCS0JDQpiDQoNCj0JbQkAor0JTQkNCd0JjQm9Ce0JLQkNCmINCS0JjQotCe0JzQmNCgCivQlNCQ0J3QmNCb0J7QktCY0Isg0JbQmNCS0JDQnQor0JTQkNCd0JjQm9Ce0JLQmNCLINCW0JjQktCe0KDQkNCUCivQlNCQ0J3QmNCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0JDQndCY0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CU0JDQndCY0JvQntCS0JjQiyDQiNCe0JLQkNCdCivQlNCQ0J3QmNCb0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JTQkNCd0JjQm9Ce0JLQmNCLINCJ0JjQidCQ0J3QkAor0JTQkNCd0JjQm9Ce0JLQmNCLINCc0JDQoNCa0J4KK9CU0JDQndCY0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQlNCQ0J3QmNCb0J7QktCY0Isg0JzQmNCg0JrQniDQlNCgCivQlNCQ0J3QmNCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQlNCQ0J3QmNCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQlNCQ0J3QmNCb0J7QktCY0Isg0J/QldCg0KHQkAor0JTQkNCd0JjQm9Ce0JLQmNCLINCg0JDQlNCQCivQlNCQ0J3QmNCb0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CU0JDQndCY0JvQntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JLQkAor0JTQkNCd0JjQm9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0JTQkNCd0JjQm9Ce0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQlNCQ0J3QmNCb0J7QktCY0Ist0JLQldCh0JXQm9CY0J3QntCSINCS0JXQoNCQCivQlNCQ0J3QmNCb0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CU0JDQitCYINCk0JXQoNCV0J3Qpgor0JTQkNCK0Jgg0JPQldCX0JAKK9CU0JDQitCYINCa0JDQoNCe0IkKK9CU0JDQitCYINCb0JDQodCb0J4KK9CU0JDQitCYINCc0JDQi9CQ0KgKK9CU0JDQndCa0JAg0JzQkNCg0JrQngor0JTQkNCd0JrQkCDQl9Cb0JDQotCQCivQlNCQ0J3QmtCeINCI0JDQndCa0J4KK9CU0JDQndCa0J4g0IjQkNCg0J7QodCb0JDQkgor0JTQkNCd0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JTQkNCd0JrQntCS0JjQiyDQodCb0JDQktCY0KjQkAor0JTQkNCd0JrQntCS0JjQiyDQodCb0JDQktCa0JAKK9CU0JDQndCa0KPQpiDQlNCg0JDQk9CQ0J0KK9CU0JDQndCa0KPQpiDQnNCY0JvQmNCm0JAKK9CU0JDQndCa0KPQpiDQktCe0IjQmNCh0JvQkNCSCivQlNCQ0J3QmtCj0KYg0JLQntCI0JjQodCb0JDQkgor0JTQkNCd0J7QiNCV0JLQmNCLINCh0KLQldCS0JDQnQor0JTQkNCf0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQlNCQ0J/Qp9CV0JLQmNCLINCI0J7QktCQ0J0KK9CU0JDQn9Cn0JXQktCY0Isg0InQo9CR0JjQptCQCivQlNCQ0J/Qp9CV0JLQmNCLINCf0JDQktCb0JUKK9CU0JDQn9Cn0JXQktCY0Isg0KDQkNCI0JrQngor0JTQkNCf0KfQldCS0JjQiyDQoNCj0JbQmNCm0JAKK9CU0JDQn9Cn0JXQktCY0Isg0JLQldCg0JjQptCQCivQlNCQ0KDQkNCoINCW0JXQidCa0J4KK9CU0JDQoNCQ0JYg0IjQo9Cb0JjQiNCQ0J3QkAor0JTQkNCg0JDQliDQodCi0JXQktCQ0J0KK9CU0JDQoNCQ0JHQkNCKINCI0J7QltCV0KQKK9CU0JDQoNCQ0JHQntCoINCI0KPQm9Ca0JAKK9CU0JDQoNCQ0JHQntCoINCb0JDQlNCY0KHQm9CQ0JIKK9CU0JDQoNCQ0JHQntCoINCc0JDQoNCY0IjQkAor0JTQkNCg0JDQkdCe0Kgg0J/QldCi0JDQoAor0JTQkNCg0JDQkdCj0KYg0J3QldCU0JXQidCa0J4KK9CU0JDQoNCQ0JTQmNCLINCh0KLQldCS0JDQnQor0JTQkNCg0JzQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQkNCg0JzQkNCd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQlNCQ0KDQnNCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQlNCQ0KDQntCI0JXQktCY0Isg0JvQkNCX0JDQoAor0JTQkNCg0JLQmNCoINCX0J7QoNCY0KbQkAor0JTQkNCh0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JTQkNCh0J7QktCY0Isg0JfQm9CQ0KLQkAor0JTQkNCj0KLQntCS0JAt0KDQo9Co0JXQktCJ0JDQnSDQktCV0JvQmNCd0JrQkCDQlNCgCivQlNCQ0KPQotCe0JLQmNCLINCC0J7QoNCC0JUKK9CU0JDQo9Ci0J7QktCY0Isg0JHQntCT0JTQkNCdCivQlNCQ0KPQotCe0JLQmNCLINCP0JXQnNCQ0JsKK9CU0JDQo9Ci0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQlNCQ0KPQotCe0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JDQo9Ci0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQkNCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CU0JDQktCY0JQg0JDQndCU0KDQkNCoCivQlNCQ0JLQmNCUINCY0JvQntCd0JAKK9CU0JDQktCY0JTQntCSINCC0KPQoNCC0JjQndCQCivQlNCQ0JLQmNCU0J7QkiDQkdCe0JPQlNCQ0J0KK9CU0JDQktCY0JTQntCSINCR0KPQlNCY0JzQmtCQCivQlNCQ0JLQmNCU0J7QkiDQiNCV0JvQmNCm0JAKK9CU0JDQktCY0JTQntCSINCI0J7QktCQ0J0KK9CU0JDQktCY0JTQntCSINCJ0KPQkdCe0JzQmNCgCivQlNCQ0JLQmNCU0J7QkiDQnNCY0JvQkNCdCivQlNCQ0JLQmNCU0J7QkiDQnNCY0JvQkNCdCivQlNCQ0JLQmNCU0J7QkiDQnNCY0JvQmNCLCivQlNCQ0JLQmNCU0J7QkiDQnNCY0JvQmNCS0J7QiAor0JTQkNCS0JjQlNCe0JIg0JzQmNCb0JrQkAor0JTQkNCS0JjQlNCe0JIg0J3QldCT0J7QktCQ0J0KK9CU0JDQktCY0JTQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9CU0JDQktCY0JTQntCSINCg0JDQlNCe0JLQkNCdCivQlNCQ0JLQmNCU0J7QkiDQodCb0JDQktCa0J4KK9CU0JDQktCY0JTQntCSINCh0KLQntCI0JDQnQor0JTQkNCS0JjQlNCe0JIg0KLQmNCl0J7QnNCY0KAKK9CU0JDQktCY0JTQntCS0JDQpiDQgtCe0KDQgtCVCivQlNCQ0JLQmNCU0J7QktCQ0KYg0JHQntCo0JrQngor0JTQkNCS0JjQlNCe0JLQkNCmINCU0JDQndCY0JvQngor0JTQkNCS0JjQlNCe0JLQkNCmINCU0KPQqNCQ0J3QmtCQCivQlNCQ0JLQmNCU0J7QktCQ0KYg0JXQm9CS0JjQoNCQCivQlNCQ0JLQmNCU0J7QktCQ0KYg0JPQkNCS0KDQkAor0JTQkNCS0JjQlNCe0JLQkNCmINCT0J7QiNCa0J4KK9CU0JDQktCY0JTQntCS0JDQpiDQidCj0JHQmNCm0JAKK9CU0JDQktCY0JTQntCS0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQlNCQ0JLQmNCU0J7QktCQ0KYg0KDQkNCU0JjQktCe0IgKK9CU0JDQktCY0JTQntCS0JDQpiDQoNCQ0JTQmNCS0J7QiAor0JTQkNCS0JjQlNCe0JLQkNCmINCg0JDQlNCY0JLQntCICivQlNCQ0JLQmNCU0J7QktCQ0KYg0KDQkNCU0JjQktCe0IgKK9CU0JDQktCY0JTQntCS0JDQpiDQoNCQ0JTQnNCY0JvQkAor0JTQkNCS0JjQlNCe0JLQkNCmINCh0KLQldCS0JDQnQor0JTQkNCS0JjQlNCe0JLQkNCmINCi0J7QlNCe0KAKK9CU0JDQktCY0JTQntCS0JDQpiDQktCV0KDQmNCm0JAKK9CU0JDQktCY0JTQntCS0JDQpiDQktCV0KHQldCb0JjQndCa0JAKK9CU0JDQktCY0JTQntCS0JDQpiDQl9CU0KDQkNCS0JrQngor0JTQkNCS0JjQlNCe0JLQmNCLINCn0JDQodCb0JDQkgor0JTQkNCS0JjQlNCe0JLQmNCLINCU0JDQktCe0KAKK9CU0JDQktCY0JTQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JTQkNCS0JjQlNCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQlNCQ0JLQmNCU0J7QktCY0Isg0JTQo9Co0JrQngor0JTQkNCS0JjQlNCe0JLQmNCLINCT0J7QoNCQ0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQiNCe0JLQkNCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0IjQntCS0J4KK9CU0JDQktCY0JTQntCS0JjQiyDQidCY0InQkNCd0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQnNCQ0KDQiNCQ0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQnNCY0KXQkNCY0JvQngor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQnNCY0JvQkNCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JDQktCY0JTQntCS0JjQiyDQnNCY0JvQkNCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQm9CQCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQmNCb0J7QqAor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQm9Ce0KgKK9CU0JDQktCY0JTQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQmNCg0JrQngor0JTQkNCS0JjQlNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CU0JDQktCY0JTQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQlNCQ0JLQmNCU0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQndCV0J3QkNCUCivQlNCQ0JLQmNCU0J7QktCY0Isg0J7Qm9CT0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQn9CV0KDQkAor0JTQkNCS0JjQlNCe0JLQmNCLINCf0JXQotCQ0KAKK9CU0JDQktCY0JTQntCS0JjQiyDQn9CV0KLQkNCgCivQlNCQ0JLQmNCU0J7QktCY0Isg0J/QldCi0JDQoAor0JTQkNCS0JjQlNCe0JLQmNCLINCg0JDQlNCVINCU0KAKK9CU0JDQktCY0JTQntCS0JjQiyDQoNCQ0JTQlQor0JTQkNCS0JjQlNCe0JLQmNCLINCg0JDQlNCe0IjQlQor0JTQkNCS0JjQlNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQlNCQ0JLQmNCU0J7QktCY0Isg0KHQkNCS0JAKK9CU0JDQktCY0JTQntCS0JjQiyDQodCb0JDQktCa0J4KK9CU0JDQktCY0JTQntCS0JjQiyDQodCg0JXQotCQCivQlNCQ0JLQmNCU0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQlNCQ0JLQmNCU0J7QktCY0Isg0KHQotCV0JLQkNCdCivQlNCQ0JLQmNCU0J7QktCY0Isg0KPQoNCe0KgKK9CU0JDQktCY0JTQntCS0JjQiyDQktCQ0KHQkAor0JTQkNCS0JjQlNCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQlNCQ0JLQmNCU0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JTQkNCS0JjQlNCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CU0JDQktCY0JTQntCS0JjQiyDQl9Ce0KDQkAor0JTQkNCS0JjQlNCe0JLQodCa0Jgg0JzQkNCg0JAKK9CU0JDQktCY0J3QmNCLINCh0KLQntCI0JDQnQor0JTQkNCS0J7Qk9CY0Isg0KLQldCe0JTQntCgCivQlNCQ0JLQntCh0JjQoCDQmNCS0JDQnQor0JTQkNCS0J7QodCY0KAg0JzQkNCa0KHQmNCcCivQlNCQ0JLQntCh0JjQoCDQotCV0J7QlNCe0KAKK9CU0JDQktCe0KHQmNCgINCS0JvQkNCU0JjQnNCY0KAKK9CU0JUt0JLQoNCY0JXQoSDQmNCS0JDQndCa0JAKK9CU0JXQqNCYINCX0J7Qm9Ci0JDQnQor0JTQldCo0JjQiyDQnNCQ0KDQkAor0JTQldCo0J4g0JbQmNCS0JDQndCa0JAKK9CU0JXQltCVINCI0J7QktCQ0J0KK9CU0JXQltCVINCa0JDQoNCb0J4KK9CU0JXQltCVINCX0JTQldCd0JrQkAor0JTQldCW0JXQm9CY0Isg0IjQntCS0JDQndCa0JAKK9CU0JXQgtCQ0J3QodCa0Jgg0ILQntCg0ILQlQor0JTQldCC0JDQndCh0JrQmCDQlNCj0KjQkNCdCivQlNCV0ILQkNCd0KHQmtCYINCf0JXQotCQ0KAKK9CU0JXQkNCaINCW0JDQoNCa0J4KK9CU0JXQkNCaINCQ0J3QlNCg0JDQqAor0JTQldCQ0Jog0JDQndCU0KDQmNCI0JDQndCQCivQlNCV0JDQmiDQkNCd0JTQoNCY0IjQkAor0JTQldCQ0Jog0JDQoNCQ0J3QmtCQCivQlNCV0JDQmiDQpNCV0KDQldCd0KYKK9CU0JXQkNCaINCY0JvQldCoCivQlNCV0JDQmiDQm9CQ0KPQoNCQCivQlNCV0JDQmiDQnNCQ0KLQmNCb0JTQkAor0JTQldCQ0J0g0J3QldCS0JXQndCa0JAKK9CU0JXQkNCg0J7QodCa0Jgg0KTQldCl0JjQnAor0JTQldCQ0KDQntCS0JjQiyDQodCQ0JvQmNCcCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0JbQmNCS0J7QiNCY0J0KK9CU0JXQkdCV0InQkNCn0JrQmCDQgtCe0KDQgtCVCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0JXQkdCV0InQkNCn0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQldCR0JXQidCQ0KfQmtCYINCR0J7QodCY0InQmtCQCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0JTQoNCQ0JPQntCc0JjQoAor0JTQldCR0JXQidCQ0KfQmtCYINCY0JLQkNCdCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0JjQktCQ0J0KK9CU0JXQkdCV0InQkNCn0JrQmCDQmtCQ0KLQmNCm0JAKK9CU0JXQkdCV0InQkNCn0JrQmCDQidCj0JHQmNCm0JAKK9CU0JXQkdCV0InQkNCn0JrQmCDQnNCY0KDQiNCQ0J3QkAor0JTQldCR0JXQidCQ0KfQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CU0JXQkdCV0InQkNCn0JrQmCDQndCQ0JTQkAor0JTQldCR0JXQidCQ0KfQmtCYINCh0KDQgtCQCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0KHQktCV0KLQntCX0JDQoAor0JTQldCR0JXQidCQ0KfQmtCYINCS0JXQoNCQCivQlNCV0JHQldCJ0JDQp9Ca0Jgg0JLQo9Ca0J7QodCQ0JLQkAor0JTQldCR0JXQidCV0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQlNCV0KYg0JDQndCY0KbQkAor0JTQldCU0JDQiCDQlNCQ0JLQmNCUCivQlNCV0JTQkNCIINCb0JXQmtCeCivQlNCV0JTQldCYINCY0JvQntCd0JAKK9CU0JXQlNCV0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9CU0JXQlNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCV0JTQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9CU0JXQlNCY0Isg0JTQoNCQ0JPQkNCdCivQlNCV0JTQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JTQldCU0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9CU0JXQlNCY0Isg0JPQkNCS0KDQmNCb0J4KK9CU0JXQlNCY0Isg0IjQntCS0J4KK9CU0JXQlNCY0Isg0JrQntCS0JjQndCa0JAKK9CU0JXQlNCY0Isg0JzQkNCg0JAKK9CU0JXQlNCY0Isg0JzQkNCg0JjQiNCQCivQlNCV0JTQmNCLINCc0JjQm9CY0JLQntCIINCU0KAg0J/QoNCe0KQKK9CU0JXQlNCY0Isg0JzQmNCb0J4KK9CU0JXQlNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CU0JXQlNCY0Isg0J3QldCc0JDQitCQCivQlNCV0JTQmNCLINCg0JDQlNCY0KbQkAor0JTQldCU0JjQiyDQodCb0JDQktCa0JAKK9CU0JXQlNCY0Isg0KHQotCV0JLQkNCdCivQlNCV0JTQmNCLLdCi0JDQodCY0Isg0JzQmNCg0JAKK9CU0JXQlNCY0J0g0JTQldCI0JDQnQor0JTQldCU0JjQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9CU0JXQlNCY0J0g0JTQmNCc0JjQotCg0JjQiNCVCivQlNCV0JTQmNCdINCS0JDQodCY0JvQmNCI0JUKK9CU0JXQlNCY0J3QodCa0Jgg0KLQmNCR0J7QoAor0JTQldCU0J7QktCY0Isg0JzQmNCo0J4KK9CU0JXQpNCg0JDQndCT0JXQn9CQ0J0g0KTQoNCQ0J3QodCe0JAKK9CU0JXQk9CQINCQ0JLQoNCQ0JwKK9CU0JXQiNCQ0J3QkNCmINCc0JjQm9Ce0KDQkNCUCivQlNCV0IjQkNCd0J7QodCa0Jgg0JzQmNCb0JDQnQor0JTQldCI0JDQndCe0JIg0JHQldCg0JjQodCb0JDQkgor0JTQldCI0JDQndCe0JIg0JTQkNCd0JjQm9CeCivQlNCV0IjQkNCd0J7QkiDQiNCV0JvQldCd0JAKK9CU0JXQiNCQ0J3QntCSINCc0JjQotCQCivQlNCV0IjQkNCd0J7QkiDQodCY0JzQkAor0JTQldCI0JDQndCe0JLQmNCLINCW0JDQoNCa0J4KK9CU0JXQiNCQ0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQlNCV0IjQkNCd0J7QktCY0Isg0JbQmNCS0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JTQldCI0JDQndCe0JLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQgtCj0KDQmNCm0JAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQldCI0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQlNCV0IjQkNCd0J7QktCY0Isg0JDQndCC0JXQm9CY0IjQkAor0JTQldCI0JDQndCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0JTQldCI0JDQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JLQkAor0JTQldCI0JDQndCe0JLQmNCLINCU0JDQndCY0JvQngor0JTQldCI0JDQndCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JTQldCI0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JTQldCI0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JTQldCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CU0JXQiNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCY0JLQkNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQlNCV0IjQkNCd0J7QktCY0Isg0IjQldCb0JjQptCQCivQlNCV0IjQkNCd0J7QktCY0Isg0IjQntCg0JTQkNCdCivQlNCV0IjQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCa0JDQotCY0KbQkAor0JTQldCI0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQlNCV0IjQkNCd0J7QktCY0Isg0JzQmNCb0JDQndCQCivQlNCV0IjQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JXQiNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQlNCV0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JTQldCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCV0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CU0JXQiNCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JTQldCI0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CU0JXQiNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQlNCV0IjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JTQldCI0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CU0JXQiNCQ0J3QntCS0JjQiyDQoNCQ0JTQkAor0JTQldCI0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JTQldCI0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CU0JXQiNCQ0J3QntCS0KHQmtCYINCc0JvQkNCU0JXQnQor0JTQldCI0JDQndCe0JLQodCa0Jgg0KLQntCc0JjQodCb0JDQkgor0JTQldCI0JDQndCe0JLQodCa0Jgg0JLQldCh0JXQm9CY0J0KK9CU0JXQmtCQ0J3QmNCLINCR0KDQkNCd0JrQngor0JTQldCa0JDQndCY0Isg0JPQm9CY0JPQntCg0JjQiNCVCivQlNCV0JrQkNCd0JjQiyDQnNCY0JvQntCoCivQlNCV0JrQkNCd0JjQiyDQnNCY0JvQntCoCivQlNCV0JrQkNCd0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQlNCV0JrQkNCd0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQlNCV0JrQkNCKINCQ0J3QotCQ0JsKK9CU0JXQmtCQ0J3QodCa0Jgg0JTQmNCd0JAKK9CU0JXQmtCQ0J3QodCa0Jgg0J/QkNCS0JvQlQor0JTQldCa0JjQiyDQlNCQ0J3QlQor0JTQldCb0JDQpyDQpNCg0JDQndCm0JjQqNCa0JAKK9CU0JXQm9CV0KLQmNCLINCT0J7QoNCU0JDQndCQCivQlNCV0JvQmNCLINCC0J7QoNCC0JUKK9CU0JXQm9CY0Isg0JHQmNCJ0JDQndCQCivQlNCV0JvQmNCLINCR0J7QltCY0JTQkNCgCivQlNCV0JvQmNCLINCR0J7Qk9CU0JDQnQor0JTQldCb0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JTQldCb0JjQiyDQlNCV0KHQmNCc0JjQoAor0JTQldCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0JTQldCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0JTQldCb0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQlNCV0JvQmNCLLdCY0JHQo9Ca0JjQiyDQldCh0JDQlAor0JTQldCb0JjQiyDQmNCb0JjQiNCQCivQlNCV0JvQmNCLINCI0JDQitCQCivQlNCV0JvQmNCLINCI0J7QktCQ0J0KK9CU0JXQm9CY0Isg0JzQkNCg0JAKK9CU0JXQm9CY0Isg0JzQmNCL0J4g0JTQoAor0JTQldCb0JjQiyDQnNCY0KXQkNCI0JvQngor0JTQldCb0JjQiyDQnNCY0JvQkNCd0JAKK9CU0JXQm9CY0Isg0JzQmNCb0JDQnQor0JTQldCb0JjQiyDQnNCY0JvQmNCm0JAKK9CU0JXQm9CY0Isg0JzQmNCb0JrQkAor0JTQldCb0JjQiyDQnNCY0JvQntCoCivQlNCV0JvQmNCLINCc0JjQm9Ce0JzQmNCgCivQlNCV0JvQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9CU0JXQm9CY0Isg0JzQo9Ch0KLQkNCk0JAKK9CU0JXQm9CY0Isg0J/QkNCo0JrQngor0JTQldCb0JjQiyDQn9CV0KLQkNCgCivQlNCV0JvQmNCLINCg0JDQlNCc0JjQm9CQCivQlNCV0JvQmNCLINCg0JDQlNCe0IjQmtCQINCU0KAKK9CU0JXQm9CY0Isg0KDQkNCU0J7QnNCY0KAKK9CU0JXQm9CY0Isg0KDQkNCU0J7QodCQ0JIKK9CU0JXQm9CY0Ist0KHQm9CQ0JLQmtCe0JLQmNCLINCS0JXQoNCQCivQlNCV0JvQmNCLINCh0KDQldCi0JXQnQor0JTQldCb0JjQiyDQodCi0J7QiNCQ0J0KK9CU0JXQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JTQldCb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQlNCV0JvQmNCLINCS0JDQodCQCivQlNCV0JvQmNCLINCS0JXQodCV0JvQmtCeCivQlNCV0JvQmNCLINCS0JXQodCd0JAKK9CU0JXQm9CY0Isg0JLQm9CQ0JTQngor0JTQldCb0JjQiyDQktCb0JDQlNCeCivQlNCV0JvQmNCC0J7QoNCC0JXQktCY0Isg0KHQotCV0JLQkNCd0JrQkAor0JTQldCb0JjQkdCQ0KjQmNCLINCU0JXQiNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQlNCV0JvQmNCR0JDQqNCY0Isg0InQo9CR0JjQqNCQCivQlNCV0JvQmNCR0JDQqNCY0Isg0InQo9CR0JjQptCQCivQlNCV0JvQmNCR0JDQqNCY0Isg0JzQkNCg0JjQptCQCivQlNCV0JvQmNCR0JDQqNCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JTQldCb0JjQkdCQ0KjQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CU0JXQm9CY0JHQkNCo0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQldCb0JjQkdCQ0KjQmNCLINCc0JjQntCU0KDQkNCTCivQlNCV0JvQmNCR0JDQqNCY0Isg0KHQkNCS0J4KK9CU0JXQm9CY0JHQkNCo0JjQiyDQodCe0KTQmNCI0JAKK9CU0JXQm9CY0JHQkNCo0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQlNCV0JvQmNCR0JvQkNCL0JDQndCY0J0g0IjQntCS0JDQnQor0JTQldCb0JrQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9CU0JXQm9Ce0JjQmiDQlNCg0JDQk9Cj0KLQmNCdCivQlNCV0JvQntCd0JPQkCDQodCi0JDQndCa0J4KK9CU0JXQm9Ce0JIg0J7QoNCU0JDQndCn0J4KK9CU0JXQnNCn0JXQqNCV0J0g0JLQkNCh0JjQm9CY0IjQlQor0JTQldCc0KjQkNCgINCT0J7QoNCU0JDQndCQCivQlNCV0JzQqNCQ0KAt0JLQldCT0JXQoCDQnNCQ0KDQmNCI0JAKK9CU0JXQnNCQ0Jog0JzQmNCg0J7QodCb0JDQkgor0JTQldCc0JDQnSDQiNCQ0J3QmtCeCivQlNCV0JzQkNCdINCg0JDQodCi0JjQodCb0JDQkgor0JTQldCc0JHQmNCmINCh0JzQmNCJ0JDQndCQCivQlNCV0JzQlSDQldCc0JAKK9CU0JXQnNCVINCk0KDQkNCd0KbQmNCo0JrQkAor0JTQldCc0JUg0JjQoNCV0J3QkAor0JTQldCc0JUg0JrQm9CQ0KDQkAor0JTQldCc0JXQqNCYINCQ0KDQn9CQ0JQKK9CU0JXQnNCV0JvQmNChINCJ0KPQkdCY0KbQkAor0JTQldCc0JXQndCU0Jgg0JHQldCb0JAKK9CU0JXQnNCV0J3QlNCYINCU0J7QoNCe0KLQldCQCivQlNCV0JzQldCgINCR0JXQm9CQCivQlNCV0JzQldCgINCk0KDQkNCd0KYKK9CU0JXQnNCV0KLQldCgINCk0JXQoNCV0J3Qpgor0JTQldCc0JXQotCV0KAg0KTQoNCQ0IrQkAor0JTQldCc0JXQotCV0KAg0KHQotCV0JLQkNCdCivQlNCV0JzQmNCLINCW0JjQktCe0KDQkNCUCivQlNCV0JzQiNCV0J0g0JHQntCg0JjQodCb0JDQkgor0JTQldCc0JrQni3QoNCY0KXQotCV0KAg0IjQntCh0JjQnwor0JTQldCc0J7QktCh0JrQmCDQodCV0JLQlNCY0IjQkAor0JTQldCc0KPQoiDQoNCe0JfQkNCb0JjQiNCQCivQlNCV0J3Qp9CY0Jog0JLQm9CQ0JTQmNCh0JvQkNCSCivQlNCV0J3QlNCQINCU0KDQkNCT0JDQnQor0JTQldCd0JTQkCDQnNCY0JvQmNCS0J7QiAor0JTQldCd0JTQmNCLINCh0KDQldCi0JjQnNCY0KAKK9CU0JXQndCV0KjQmCDQktCY0JvQmNCcCivQlNCV0J3Qk9Ce0KDQmNCm0JjQiNCQINCh0KLQiNCV0J/QkNCdCivQlNCV0J3QmNCLINCn0JXQlNCe0JzQmNCgCivQlNCV0J3QmNCLINCW0JjQktCe0KLQkAor0JTQldCd0JjQiyDQidCj0JHQmNCo0JAKK9CU0JXQndCY0Isg0JzQntCc0KfQmNCb0J4g0JTQmNCf0Jsg0JjQndCTCivQlNCV0J3QmNCLINCg0JDQlNCY0KbQkAor0JTQldCd0JjQiyDQodCY0J3QmNCo0JAKK9CU0JXQndCY0Isg0JfQo9CX0JDQndCQCivQlNCV0J3QmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQlNCV0J3QmtCe0JLQodCa0Jgg0IjQkNCd0JUKK9CU0JXQn9Cn0JXQitCh0JrQmCDQodCi0JXQpNCQ0J0KK9CU0JXQoCDQpNCg0JDQitCQCivQlNCV0KAg0IjQntCW0JXQpAor0JTQldCgINCb0JDQiNCe0KgKK9CU0JXQoCDQodCi0JXQktCQ0J0KK9CU0JXQoNCQ0IjQmNCLINCh0KLQntCI0JAKK9CU0JXQoNCR0JDQmtCe0JIg0JzQkNCg0JrQngor0JTQldCg0JHQntCT0J7QodCY0IjQkNCdINCR0KDQkNCd0JrQngor0JTQldCg0JTQmNCLINCg0KPQlNCe0JvQpAor0JTQldCg0JXQpSDQodCY0JzQldCe0J0KK9CU0JXQoNCV0KLQkCDQnNCY0JvQkNCdCivQlNCV0KDQldCi0JAg0J/QldCi0JDQoAor0JTQldCg0JXQotCQINCh0JLQldCi0J7Ql9CQ0KAKK9CU0JXQoNCV0KLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CU0JXQoNCY0JrQoNCQ0JLQkCDQnNCY0KbQkAor0JTQldCg0JzQldCd0ILQmNCI0JXQktCh0JrQmCDQlNCY0JzQmNCi0JDQoAor0JTQldCg0J7QitCY0Isg0KLQntCU0J7QoAor0JTQldCg0KPQqNCV0Jog0JzQmNCJ0JXQndCa0J4KK9CU0JXQoNCS0JjQqNCV0JLQmNCLINCI0KPQodCj0KQKK9CU0JXQoNCS0JjQqNCV0JLQmNCLINCd0JXQj9CY0JEKK9CU0JXQoNCS0JjQqNCV0JLQmNCLINCh0JvQkNCS0JrQngor0JTQldCg0JLQmNCo0Jgg0JzQmNCh0JjQnQor0JTQldCg0JLQmNCo0Jgg0KDQkNCc0JDQlNCQ0J0KK9CU0JXQoNCS0JjQqNCYINCg0KPQqNCY0KIKK9CU0JXQoNCS0JjQiyDQqNCV0KTQmtCQCivQlNCV0KHQndCY0KbQkCDQgtCe0KDQgtCVCivQlNCV0KHQndCY0KbQkCDQgtCj0KDQniDQnNCgCivQlNCV0KHQndCY0KbQkCDQkdCe0JPQlNCQ0J0KK9CU0JXQodCd0JjQptCQINCR0KDQkNCd0JrQngor0JTQldCh0J3QmNCm0JAg0IjQkNCd0JrQngor0JTQldCh0J3QmNCm0JAg0JvQo9Ca0JAKK9CU0JXQodCd0JjQptCQINCd0JjQmtCe0JvQkAor0JTQldCh0J3QmNCm0JAg0KDQkNCU0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQlNCV0KHQndCY0KbQkCDQoNCQ0JTQntCc0JjQoAor0JTQldCh0J3QmNCm0JAg0KDQldCJ0JAKK9CU0JXQodCd0JjQptCQINCh0JzQmNCJ0JrQkAor0JTQldCh0J3QmNCm0JAg0KHQotCQ0J3QkAor0JTQldCh0J/QldCd0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQldCh0J/QmCDQiNCe0JLQkAor0JTQldCh0J/QmCDQktCV0InQmtCeCivQlNCV0KHQn9CY0Isg0JvQkNCX0JDQoAor0JTQldCh0J/QmNCLINCc0JDQoNCa0J4KK9CU0JXQodCf0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JTQldCh0J/QmNCLINCh0KDQldCi0JXQnQor0JTQldCh0J/QmNCLINCX0J7QoNCQ0J0KK9CU0JXQodCf0J7QoiDQlNCj0KjQkNCdCivQlNCV0KHQn9Ce0KIg0JzQmNCb0JDQnQor0JTQldCh0J/QntCiINCc0JjQm9CY0KbQkAor0JTQldCh0J/QntCiINCc0JjQoNCI0JDQndCQCivQlNCV0KHQn9Ce0KIg0J3QkNCU0JAKK9CU0JXQodCf0J7QoiDQndCV0J3QkNCUCivQlNCV0KHQn9Ce0KIg0KHQm9Ce0JHQntCU0JDQnQor0JTQldCh0J/QntCi0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQldCh0J/QntCi0J7QkiDQlNCe0JHQoNCY0JvQkAor0JTQldCh0J/QntCi0J7QkiDQldCS0JTQntCa0JjQiNCQCivQlNCV0KHQn9Ce0KLQntCSINCY0JvQmNCI0JAKK9CU0JXQodCf0J7QotCe0JIg0IjQntCm0JAKK9CU0JXQodCf0J7QotCe0JIg0InQo9CR0JjQndCa0JAKK9CU0JXQodCf0J7QotCe0JIg0JzQmNCb0JDQnQor0JTQldCh0J/QntCi0J7QkiDQnNCY0JvQntCS0JDQnQor0JTQldCh0J/QntCi0J7QkiDQoNCQ0JTQnNCY0JvQkAor0JTQldCh0J/QntCi0J7QkiDQoNCj0JbQmNCm0JAKK9CU0JXQodCf0J7QotCe0JIg0JLQmNCb0JzQkAor0JTQldCh0J/QntCi0J7QkiDQktCY0KLQntCc0JjQoNCa0JAKK9CU0JXQodCf0J7QotCe0JIg0JLQntCI0JjQodCb0JDQkgor0JTQldCh0J/QntCi0J7QkiDQl9Ce0KDQkNCdCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQkdCY0InQkNCd0JAKK9CU0JXQodCf0J7QotCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CU0JXQodCf0J7QotCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JTQldCh0J/QntCi0J7QktCY0Isg0J/QkNCd0KLQldCb0JjQiNCQCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JTQldCh0J/QntCi0J7QktCY0Isg0KDQkNCi0JrQngor0JTQldCh0J/QntCi0J7QktCY0Isg0KHQmNCc0JrQkAor0JTQldCh0J/QntCi0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQlNCV0KHQn9Ce0KLQntCS0JjQiyDQktCQ0KHQngor0JTQldCh0J/QntCi0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JTQldCh0J/QntCi0J7QktCh0JrQmCDQlNCj0KjQkNCdCivQlNCV0KLQkNCg0Jgg0JzQkNCg0JjQiNCQCivQlNCV0KLQldCb0JjQnSDQgtCj0KDQkAor0JTQldCi0JXQm9CY0J0g0IjQntCh0JjQnwor0JTQldCi0JXQm9CY0J0g0J3QkNCU0JAKK9CU0JXQo9Cg0JAg0JTQo9Co0JDQnSDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JTQldCj0KDQkCDQoNCQ0IjQmtCeCivQlNCV0KPQoNCQINCS0JXQoNCQCivQlNCV0KPQoNCY0Isg0KDQkNCU0JzQmNCb0JAKK9CU0JXQktCQ0Jgg0KjQkNCd0JTQntCgCivQlNCV0JLQkNCYINCY0JzQoNCVCivQlNCV0JLQkNCYINCb0JDQiNCe0KgKK9CU0JXQktCQ0Jgg0KHQkNCK0JAKK9CU0JXQktCQ0Jgg0JfQntCg0JjQptCQCivQlNCV0JLQkNCI0JAg0J3QkNCU0JAKK9CU0JXQktCQ0IjQkCDQntCc0JXQoCDQlNCgCivQlNCV0JLQkNCb0JQg0JXQotCV0JvQmtCQCivQlNCV0JLQkNCb0JQg0JjQktCQ0J0KK9CU0JXQktCQ0JvQlCDQiNCe0KXQkNCdCivQlNCV0JLQldCn0JXQoNCYINCa0KDQmNCh0KLQmNCd0JAKK9CU0JXQktCV0KfQldCg0KHQmtCYINCQ0JLQoNCQ0JwKK9CU0JXQktCV0KfQldCg0KHQmtCYINCU0JDQndCY0KbQkAor0JTQldCS0JXQp9CV0KDQodCa0Jgg0JLQkNCh0JjQm9CY0IjQlSDQlNCgCivQlNCV0JLQldCU0JDQnSDQgtCe0KDQgtCVCivQlNCV0JLQldCU0JDQnSDQkdCe0JPQlNCQ0J0KK9CU0JXQktCV0JTQkNCdINCU0KDQkNCT0J7QiNCVCivQlNCV0JLQldCU0JDQnSDQnNCQ0KDQkAor0JTQldCS0JXQlNCQ0J0g0JzQmNCb0J7QktCQ0J0KK9CU0JXQktCV0JTQkNCdINCc0JjQoNCa0J4KK9CU0JXQktCV0KLQkNCaINCX0J7QoNCQCivQlNCV0JLQmNCLLdCn0J7QkdCQ0J3QmtCh0Jgg0JzQmNCJ0JXQndCa0JAKK9CU0JXQktCY0Isg0JbQmNCS0JDQnQor0JTQldCS0JjQiyDQgtCe0JrQkAor0JTQldCS0JjQiyDQgtCe0KDQgtCVCivQlNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCV0JLQmNCLINCQ0J3QmtCY0KbQkAor0JTQldCS0JjQiyDQkdCY0InQkNCd0JAKK9CU0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CU0JXQktCY0Isg0JHQoNCQ0J3QmtCQCivQlNCV0JLQmNCLINCm0JLQmNCI0JXQotCQCivQlNCV0JLQmNCLINCU0JDQndCY0KbQkAor0JTQldCS0JjQiyDQlNCQ0J3QmNCb0JrQkAor0JTQldCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQlNCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CU0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JTQldCS0JjQiyDQlNCg0JDQk9CeCivQlNCV0JLQmNCLINCU0KPQqNCQ0J0KK9CU0JXQktCY0Isg0JXQktCY0KbQkAor0JTQldCS0JjQiyDQk9Ce0KDQkNCdCivQlNCV0JLQmNCLINCT0KDQntCX0JTQkAor0JTQldCS0JjQiyDQmNCT0IrQkNCiCivQlNCV0JLQmNCLINCY0JvQmNCI0JAKK9CU0JXQktCY0Isg0IjQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CU0JXQktCY0Isg0IjQntCS0JDQndCa0JAg0JTQoAor0JTQldCS0JjQiyDQiNCe0JLQkNCdCivQlNCV0JLQmNCLINCa0JDQotCY0KbQkAor0JTQldCS0JjQiyDQnNCY0JvQkNCdCivQlNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CU0JXQktCY0Isg0JzQmNCb0JXQotCQCivQlNCV0JLQmNCLINCc0JjQm9Ce0KgKK9CU0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CU0JXQktCY0Isg0JzQmNCg0JAKK9CU0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQlNCV0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQlNCV0JLQmNCLINCd0JXQndCQ0JQKK9CU0JXQktCY0Isg0J3QntCS0JrQkAor0JTQldCS0JjQiyDQn9CV0KLQkNCgCivQlNCV0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CU0JXQktCY0Isg0KHQmNCc0JAKK9CU0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQlNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CU0JXQktCY0Isg0KLQkNCi0IjQkNCd0JAKK9CU0JXQktCY0Isg0KLQntCc0JAKK9CU0JXQktCY0Isg0JLQldCb0JjQndCa0JAKK9CU0JXQktCY0Isg0JLQm9CQ0JTQkAor0JTQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JTQldCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0JTQldCS0KDQitCQINCR0KDQkNCd0JjQodCb0JDQkgor0JTQldCS0KDQitCQINCU0KDQkNCT0JjQptCQCivQlNCV0JLQoNCK0JAg0InQo9CR0JjQptCQCivQlNCV0JLQoNCK0JAt0JzQmNCl0JDQiNCb0J7QktCY0Isg0InQmNCJ0JDQndCQCivQlNCV0JLQoNCK0JAg0JzQmNCe0JTQoNCQ0JMKK9CU0JXQktCg0IrQkCDQodCf0JDQodCe0IjQlQor0JTQldCS0KPQqNCY0Isg0JzQmNCb0JDQnQor0JTQmNCm0JrQntCSINCC0J7QoNCC0JUKK9CU0JjQptCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JTQmNCm0JrQntCSINCU0KDQkNCT0JDQnQor0JTQmNCm0JrQntCSINCU0KDQkNCT0JDQnQor0JTQmNCm0JrQntCSINCU0KPQqNCa0J4KK9CU0JjQptCa0J7QkiDQmNCS0JDQnQor0JTQmNCm0JrQntCSINCa0J7QodCi0JAKK9CU0JjQptCa0J7QkiDQnNCY0KDQiNCQ0J3QkAor0JTQmNCm0JrQntCSINCd0JjQmtCe0JvQkAor0JTQmNCm0JrQntCSINCh0KLQldCS0JDQnQor0JTQmNCm0JrQntCSINCS0JXQodCV0JvQmNCdCivQlNCY0KbQmtCe0JIg0JLQldCh0JXQm9CY0J0KK9CU0JjQptCa0J7QkiDQl9Ce0KDQmtCQCivQlNCY0KbQnNCQ0J0g0JfQlNCV0J3QmtCQCivQlNCY0JTQkNCd0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CU0JjQlNCQ0J3QntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JTQmNCI0JDQmtCe0JLQmNCLINCf0JDQktCQCivQlNCY0IjQkNCc0JDQotCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQlNCY0JrQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQmNCa0JjQiyDQkdCg0JDQndCa0J4KK9CU0JjQmtCY0Isg0JTQo9Co0JDQnQor0JTQmNCa0JjQiyDQk9Ce0KDQkNCdCivQlNCY0JrQmNCLINCI0J7QktCQ0J3QmtCQCivQlNCY0JrQmNCLINCI0J7QktCQ0J0KK9CU0JjQmtCY0Isg0JzQmNCb0JDQnQor0JTQmNCa0JjQiyDQoNCQ0KLQmtCeCivQlNCY0JrQmNCLINCh0JDQktCQINCU0JjQn9CbINCY0J3Qkwor0JTQmNCa0JjQiyDQodCi0JXQktCQ0J0KK9CU0JjQmtCY0Isg0JLQldCb0JjQndCa0JAKK9CU0JjQmtCY0Isg0JfQkNCT0J7QoNCa0JAKK9CU0JjQmtCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQmNCa0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCY0JrQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCY0JrQm9CY0Isg0JTQoNCQ0JPQkNCdCivQlNCY0JrQm9CY0Isg0JTQoNCQ0JPQkNCdCivQlNCY0JrQm9CY0Isg0JTQo9Co0JDQnQor0JTQmNCa0JvQmNCLINCU0KPQqNCQ0J0KK9CU0JjQmtCb0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JTQmNCa0JvQmNCLINCI0J7QktCQ0J0KK9CU0JjQmtCb0JjQiyDQiNCj0JTQmNCiCivQlNCY0JrQm9CY0Isg0JzQkNCg0KLQkAor0JTQmNCa0JvQmNCLINCc0JjQm9CQ0J0KK9CU0JjQmtCb0JjQiyDQnNCY0JvQldCi0JAKK9CU0JjQmtCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQlNCY0JrQm9CY0Isg0J/QldCi0JDQoAor0JTQmNCa0JvQmNCLINCh0KLQkNCd0JrQngor0JTQmNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQlNCY0JvQkdCV0KDQntCS0JjQiyDQkNCd0KLQngor0JTQmNCc0KfQntCS0KHQmtCYINCi0KDQkNCI0KfQlQor0JTQmNCc0KjQmNCLINCQ0J3QmtCQCivQlNCY0JzQkCDQkdCe0KHQkAor0JTQmNCc0JDQqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCY0JzQkNCo0JXQktCY0Isg0J/QldCi0JDQoAor0JTQmNCc0JDQndCY0Isg0JDQndCa0JAKK9CU0JjQnNCQ0J3QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQmNCc0JXQodCa0Jgg0JjQm9CY0IjQkAor0JTQmNCc0JXQodCa0Jgg0JzQldCi0J7QlNCY0IjQlQor0JTQmNCc0JjQiyDQltCQ0KDQmtCeCivQlNCY0JzQmNCLINCC0J7QoNCC0JUKK9CU0JjQnNCY0Isg0JDQmtCh0JXQndCi0JjQiNCVCivQlNCY0JzQmNCLINCQ0JrQodCV0J3QotCY0IjQlQor0JTQmNCc0JjQiyDQkNCd0ILQldCb0JrQkAor0JTQmNCc0JjQiyDQkdCe0JPQlNCQ0J0KK9CU0JjQnNCY0Isg0JHQoNCQ0J3QmtCeCivQlNCY0JzQmNCLINCU0JDQndCY0KbQkAor0JTQmNCc0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CU0JjQnNCY0Isg0JTQoNCQ0JPQntCJ0KPQkSDQlNCgCivQlNCY0JzQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CU0JjQnNCY0Isg0JTQoNCQ0JPQngor0JTQmNCc0JjQiyDQlNCj0KjQkNCdINCU0KAKK9CU0JjQnNCY0Isg0JTQo9Co0JDQnQor0JTQmNCc0JjQiyDQlNCj0KjQkNCdCivQlNCY0JzQmNCLINCV0JzQmNCb0JjQiNCQCivQlNCY0JzQmNCLINCV0KDQltCV0JHQldCiCivQlNCY0JzQmNCLINCY0JPQitCQ0KIKK9CU0JjQnNCY0Isg0JjQktCQ0J0KK9CU0JjQnNCY0Isg0IjQkNCd0JrQngor0JTQmNCc0JjQiyDQmtCe0KHQotCQCivQlNCY0JzQmNCLINCb0JDQl9CQ0KAKK9CU0JjQnNCY0Isg0JvQkNCX0JDQoAor0JTQmNCc0JjQiyDQidCj0JHQntCc0JjQoAor0JTQmNCc0JjQiyDQnNCY0JvQkNCdCivQlNCY0JzQmNCLINCc0JjQm9CQ0J0KK9CU0JjQnNCY0Isg0JzQmNCb0JXQktCQCivQlNCY0JzQmNCLINCc0JjQm9CY0KbQkAor0JTQmNCc0JjQiyDQnNCY0JvQntCoCivQlNCY0JzQmNCLINCc0JjQm9Ce0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9CU0JjQnNCY0Isg0JzQmNCi0JAKK9CU0JjQnNCY0Isg0J3QkNCU0JAKK9CU0JjQnNCY0Isg0J3QkNCU0JAKK9CU0JjQnNCY0Isg0J3QldCR0J7QiNCo0JAKK9CU0JjQnNCY0Isg0J3QmNCa0J7Qm9CQCivQlNCY0JzQmNCLINCd0JjQmtCe0JvQkAor0JTQmNCc0JjQiyDQndCY0JrQntCb0JAKK9CU0JjQnNCY0Isg0J3QmNCa0J7Qm9CQCivQlNCY0JzQmNCLINCe0JvQk9CQCivQlNCY0JzQmNCLINCe0JfQoNCV0J0KK9CU0JjQnNCY0Isg0J/QldCi0JDQoAor0JTQmNCc0JjQiyDQodCi0JDQndCa0J4KK9CU0JjQnNCY0Isg0KHQotCV0JLQkNCdCivQlNCY0JzQmNCLINCh0KLQldCS0JDQnQor0JTQmNCc0JjQiyDQodCi0JXQktCQ0J0KK9CU0JjQnNCY0Isg0KHQotCV0JLQkAor0JTQmNCc0JjQiyDQktCQ0KHQkAor0JTQmNCc0JjQiyDQktCV0KDQmNCm0JAKK9CU0JjQnNCY0Isg0JLQmNCi0J7QnNCY0KAKK9CU0JjQnNCY0Isg0JLQmNCi0J7QnNCY0KAKK9CU0JjQnNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JTQmNCc0JjQotCg0JDQqNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JTQmNCc0JjQotCg0JjQiyDQltCY0JLQntCg0JDQlAor0JTQmNCc0JjQotCg0JjQiyDQkdCe0JPQntCJ0KPQkQor0JTQmNCc0JjQotCg0JjQiyDQkdCg0JDQndCa0J4KK9CU0JjQnNCY0KLQoNCY0Isg0JTQoNCQ0JPQkNCdCivQlNCY0JzQmNCi0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQlNCY0JzQmNCi0KDQmNCLINCc0JjQm9CV0JLQkAor0JTQmNCc0JjQotCg0JjQiyDQndCe0JLQkNCaCivQlNCY0JzQmNCi0KDQmNCLINCf0JXQoNCeCivQlNCY0JzQmNCi0KDQmNCLINCg0JDQotCa0J4KK9CU0JjQnNCY0KLQoNCY0Isg0JLQm9CQ0JTQkNCdCivQlNCY0JzQmNCi0KDQmNCLINCX0J7QoNCQ0J0KK9CU0JjQnNCY0KLQoNCY0JDQlNCY0KEg0J/QkNCS0JvQntChCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KfQldCU0J7QnNCY0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCC0J7QoNCC0JUKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0ILQo9Cg0ILQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JDQoNCh0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQkNCg0KHQldCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Ist0JHQldCh0JXQoNCc0JXQitCYINCa0JDQotCY0KbQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCR0KDQkNCd0JrQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCR0KDQl9Ce0JzQmNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQkNCd0JjQptCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQkNCd0JjQptCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQldCh0JDQndCa0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQlNCe0JHQoNCY0KbQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0KPQqNCQ0J0g0JTQoAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCV0KDQltCV0JHQldCiCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JXQotCV0JvQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCV0JLQmNCm0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQiNCV0JvQldCd0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQiNCV0JvQldCd0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQiNCV0JvQmNCm0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCI0J7QktCQ0J0KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQm9CQ0JfQkNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0InQo9CR0JjQptCQINCU0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQidCj0JHQmNCm0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQidCj0JHQmNCm0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQidCj0JHQmNCd0JrQngor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JDQoNCT0JjQotCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQkNCg0JjQptCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCb0JDQnSDQnNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCb0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCb0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQm9Ca0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0JvQntCI0JUKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCg0KfQlQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQmtCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCc0JvQkNCU0JXQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCd0JDQlNCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0J3QkNCU0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQndCV0J3QkNCUCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0J3QldCS0JXQndCa0JAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQn9CQ0IjQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCf0JXQotCQ0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQn9CV0KLQkNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0J/QldCi0JDQoAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCg0JDQotCa0J4KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQodCQ0KjQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCh0JDQktCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCh0KDQgtCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KHQotCQ0J3QmtCeCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KHQotCQ0J3QntCI0JUKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0KHQotCe0IjQkNCU0JjQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQotCY0KXQntCc0JjQoAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQktCV0KDQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCS0JjQotCe0JzQmNCgCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JLQo9CI0JjQptCQCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCX0JvQkNCi0JjQkdCe0KAKK9CU0JjQnNCY0KLQoNCY0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0JfQntCg0JDQnQor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCX0J7QoNCY0KbQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCX0J7QoNCY0KbQkAor0JTQmNCc0JjQotCg0JjQiNCV0JLQodCa0Jgg0JzQmNCl0JDQiNCb0J4KK9CU0JjQnNCY0KLQoNCe0JIg0JbQmNCS0J7QiNCY0J0KK9CU0JjQnNCY0KLQoNCe0JIg0ILQntCa0JAKK9CU0JjQnNCY0KLQoNCe0JIg0ILQntCg0ILQlQor0JTQmNCc0JjQotCg0J7QkiDQkdCe0KjQmtCeCivQlNCY0JzQmNCi0KDQntCSINCR0J7QoNCeCivQlNCY0JzQmNCi0KDQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JTQmNCc0JjQotCg0J7QkiDQkdCg0JDQndCa0J4KK9CU0JjQnNCY0KLQoNCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQlNCY0JzQmNCi0KDQntCSINCU0KPQqNCQ0J0KK9CU0JjQnNCY0KLQoNCe0JIg0JTQo9Co0JDQnQor0JTQmNCc0JjQotCg0J7QkiDQldCk0KLQmNCcCivQlNCY0JzQmNCi0KDQntCSINCI0J7QptCQCivQlNCY0JzQmNCi0KDQntCSINCf0JXQotCQ0KAKK9CU0JjQnNCY0KLQoNCe0JIg0KDQkNCU0JjQodCb0JDQkgor0JTQmNCc0JjQotCg0J7QkiDQodCb0JDQktCa0J4KK9CU0JjQnNCY0KLQoNCe0JIg0KHQntCh0JAKK9CU0JjQnNCY0KLQoNCe0JIg0KHQotCV0JLQkNCdCivQlNCY0JzQmNCi0KDQntCSINCh0JLQldCi0JjQodCb0JDQkgor0JTQmNCc0JjQotCg0J7QkiDQo9Cg0J7QqAor0JTQmNCc0JjQotCg0J7QkiDQktCV0JvQmNCn0JrQngor0JTQmNCc0JjQotCg0J7QkiDQl9Cb0JDQotCQCivQlNCY0JzQmNCi0KDQntCS0KHQmtCYINCY0JvQntCd0JAKK9CU0JjQnNCY0KLQoNCe0JLQodCa0Jgg0InQo9CR0J7QnNCY0KAKK9CU0JjQnNCY0KLQoNCe0JLQodCa0Jgg0InQo9CR0J7QnNCY0KAKK9CU0JjQnNCY0KLQoNCe0JLQodCa0Jgg0J/QkNCS0JvQlQor0JTQmNCc0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQlNCY0JzQmtCe0JLQodCa0Jgg0JPQntCg0JDQnQor0JTQmNCc0JrQntCS0KHQmtCYINCJ0KPQkdCY0KjQkAor0JTQmNCc0J7QodCa0Jgg0J3QmNCa0J7Qm9CQCivQlNCY0JzQntCSINCU0JjQnNCY0KLQkNCgCivQlNCY0JzQntCSINCi0J7QlNCe0KAKK9CU0JjQnNCe0JLQkCDQmtCQ0KLQmNCm0JAKK9CU0JjQnNCe0JLQmNCLINCh0J7QpNCY0IjQkAor0JTQmNCc0J7QktCh0JrQmCDQgtCV0KDQngor0JTQmNCc0J7QktCh0JrQmCDQkNCd0JTQoNCY0IjQkAor0JTQmNCc0J7QktCh0JrQmCDQidCj0JHQmNCm0JAKK9CU0JjQnNCe0JLQodCa0Jgg0JzQkNCg0JjQndCQCivQlNCY0JzQntCS0KHQmtCYINCc0JjQm9CY0KbQkAor0JTQmNCc0J7QktCh0JrQmCDQotCg0JDQiNCn0JUKK9CU0JjQndCn0JjQiyDQmtCQ0KLQmNCm0JAKK9CU0JjQndCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQmNCd0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CU0JjQndCn0JjQiyDQodCg0JXQotCV0J3QmtCQCivQlNCY0J3Qp9CY0Jog0JzQkNCg0JjQiNCQCivQlNCY0J3QmNCLINCn0JXQlNCe0JzQmNCgCivQlNCY0J3QmNCLINCR0J7QltCY0JTQkNCgCivQlNCY0J3QmNCLINCR0J7QodCQCivQlNCY0J3QmNCLINCI0J7QqNCa0JAKK9CU0JjQndCY0Ist0JrQndCV0JbQldCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JTQmNCd0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQmNCd0JjQiyDQoNCQ0JTQntCc0JjQoAor0JTQmNCd0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQlNCY0J3QmNCLINCS0JvQkNCU0JXQotCQCivQlNCY0J3QmNCLINCX0JLQntCd0JjQnNCY0KAKK9CU0JjQitCQ0KjQmtCYINCW0JDQoNCa0J4KK9CU0JjQitCQ0KjQmtCYINCY0KDQmNCd0JAKK9CU0JjQitCQ0KjQmtCYINCa0KHQldCd0JjQiNCQCivQlNCY0IrQkNCo0JrQmCDQm9CV0J/QkAor0JTQmNCK0JDQqNCa0Jgg0J3QldCh0KLQntCgCivQlNCY0IrQkNCo0JrQmCDQodCi0JDQndCY0JzQmNCgCivQlNCY0IrQkNCo0JrQmCDQodCi0JDQndCa0JAKK9CU0JjQitCQ0KjQmtCYINCh0KLQldCS0JDQnQor0JTQmNCK0JDQqNCa0Jgg0KLQoNCY0JLQkAor0JTQmNCK0JDQqNCa0Jgg0JfQlNCg0JDQktCa0J4KK9CU0JjQitCV0Kgg0IjQntCh0JjQnwor0JTQmNCd0KPQm9Ce0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CU0JjQntCo0Jgg0IjQntCh0JjQnwor0JTQmNCg0J3QldCgINCQ0KDQkNCd0JrQkAor0JTQmNCh0JjQiyDQidCj0JHQmNCo0JAKK9CU0JjQodCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JTQmNCi0KDQmNClINCQ0J3QkAor0JTQmNCi0KDQmNClINCg0J7QkdCV0KDQogor0JTQmNCi0KDQmNClINCS0JvQkNCU0JjQnNCY0KAKK9CU0JjQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CU0JjQktCY0IjQkNCn0JrQmCDQlNCg0JDQk9CQ0J0KK9CU0JjQktCY0IjQkNCn0JrQmCDQlNCg0JDQk9CQ0J0KK9CU0JjQktCY0JvQlCDQgtCe0KDQgtCVCivQlNCY0JLQmNCb0JQg0JDQndCU0KDQmNCI0JAKK9CU0JjQktCY0JvQlCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JTQmNCS0JjQm9CUINCg0JDQlNCe0KHQm9CQ0JIKK9CU0JjQktCI0JDQmiDQlNCj0KjQkNCdCivQlNCY0JLQiNCQ0Jog0JTQo9Co0JDQnQor0JTQmNCS0IjQkNCaINCU0KPQqNCQ0J0KK9CU0JjQktCI0JDQmiDQnNCQ0KDQmNCd0JrQngor0JTQmNCS0IjQkNCaINCc0JjQm9CQ0J0KK9CU0JjQktCI0JDQmiDQnNCY0JvQkNCdCivQlNCY0JLQiNCQ0Jog0JzQmNCb0JDQnQor0JTQmNCS0IjQkNCaINCh0JDQktCQCivQlNCY0JLQiNCQ0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQlNCY0JLQiNCQ0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CU0JjQktCI0JDQmtCe0JLQmNCLINCT0JDQktCg0JAKK9CU0JjQktCI0JDQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JTQmNCS0IjQkNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQlNCY0JLQiNCQ0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0JjQktCI0JDQmtCe0JLQmNCLLdCg0JDQlNCY0KfQldCS0JAg0JTQntCg0JjQndCQCivQlNCY0JLQiNCQ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CU0JjQktCI0JDQmtCe0JLQmNCLINCi0J7QlNCe0KAKK9CU0JjQktCI0JDQmtCe0JLQmNCLINCS0JvQkNCU0JAKK9CU0JjQktCJ0JDQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQmNCS0InQkNCaINCQ0J3Qk9CV0JvQmNCd0JAKK9CU0JjQktCJ0JDQmiDQkdCe0KjQmtCeCivQlNCY0JLQidCQ0Jog0JTQldCh0JjQnNCY0KAKK9CU0JjQktCJ0JDQmiDQlNCe0JHQoNCY0JLQntCICivQlNCY0JLQidCQ0Jog0JTQoNCQ0JPQngor0JTQmNCS0InQkNCaINCc0JjQoNCe0KHQm9CQ0JIKK9CU0JjQktCJ0JDQmiDQnNCY0KDQntCh0JvQkNCSCivQlNCY0JLQidCQ0Jog0KDQkNCi0JrQngor0JTQmNCS0InQkNCaINCX0JTQoNCQ0JLQmtCeCivQlNCY0JLQidCQ0JrQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQlNCY0JLQidCQ0JrQntCS0JjQiyDQmNCS0JDQndCa0JAKK9CU0JjQktCJ0JDQnSDQndCV0J3QkNCUCivQlNCY0JLQndCY0Isg0JbQmNCS0JDQnQor0JTQmNCS0J3QmNCLINCC0J7QoNCC0JUKK9CU0JjQktCd0JjQiyDQiNCV0JvQmtCQCivQlNCY0JLQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9CU0JjQktCd0JjQiyDQn9CQ0IjQkAor0JTQmNCS0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CU0JjQktCd0JjQiyDQodCe0IrQkAor0JTQmNCS0J3QmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CU0JjQktCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQlNCY0JfQlNCQ0KAg0JDQndCC0JAKK9CU0JjQl9CU0JDQoCDQkNCd0JrQmNCm0JAKK9CU0JjQl9CU0JDQoCDQmNCS0JjQptCQCivQlNCY0JfQlNCQ0KAg0IjQntCh0JjQnwor0JTQmNCX0JTQkNCgINCI0KPQoNCVCivQlNCY0JfQlNCQ0KAg0IjQo9Cg0J4KK9CU0JjQl9CU0JDQoCDQnNCQ0KDQmNCI0JAKK9CU0JjQl9CU0JDQoCDQnNCQ0KDQmtCeCivQlNCY0JfQlNCQ0KAg0J/QkNCS0J4KK9CU0JjQl9CU0JDQoCDQodCQ0KDQkNCk0JjQndCQCivQlNCY0JfQlNCQ0KAg0JLQm9CQ0JTQngor0JTQmNCX0JTQkNCg0JXQktCY0Isg0KDQkNCU0J7QidCj0JEKK9CU0JvQo9Cl0Jgg0IjQntCh0JjQnwor0JTQnNCY0KLQoNCQ0KjQmNCd0J7QktCY0Isg0KDQkNCU0JUKK9CU0JzQmNCi0KDQmNCI0JXQkiDQm9CY0JTQmNCI0JAKK9CU0JzQmNCi0KDQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CU0JzQmNCi0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9CU0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQntCoCivQlNCc0JjQotCg0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CU0JzQmNCi0KDQntCS0JjQiyDQoNCQ0JTQldCd0JrQniDQm9CV0JrQkNCgCivQlNCc0JjQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQlNCc0JjQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQlNCe0KjQldCc0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CU0J7QqNCV0J0g0JbQmNCS0JDQlNCY0J0KK9CU0J7QqNCV0J0g0JHQmNCJ0JDQndCQCivQlNCe0KjQldCdINCR0KDQkNCd0JrQngor0JTQntCo0JXQnSDQlNCV0KHQkNCd0JrQkAor0JTQntCo0JXQnSDQlNCg0JDQk9CQ0J0KK9CU0J7QqNCV0J0g0JTQo9Co0JDQnQor0JTQntCo0JXQnSDQlNCj0KjQkNCdCivQlNCe0KjQldCdINCU0KPQqNCQ0J0KK9CU0J7QqNCV0J0g0JTQo9CR0KDQkNCS0JrQkAor0JTQntCo0JXQnSDQpdCg0JjQodCi0JjQndCQINCU0KAKK9CU0J7QqNCV0J0g0JjQm9CY0IjQkAor0JTQntCo0JXQnSDQmNCS0JDQnQor0JTQntCo0JXQnSDQmNCS0JDQnQor0JTQntCo0JXQnSDQiNCV0JvQldCd0JAKK9CU0J7QqNCV0J0g0JzQmNCb0JDQnQor0JTQntCo0JXQnSDQnNCY0JvQkNCdCivQlNCe0KjQldCdINCc0JjQm9CVCivQlNCe0KjQldCdINCc0JjQm9Ce0KgKK9CU0J7QqNCV0J0g0KDQkNCU0J7QodCb0JDQkgor0JTQntCo0JXQnSDQoNCQ0JTQntCh0JvQkNCSCivQlNCe0KjQldCdINCg0JDQotCa0J4KK9CU0J7QqNCV0J0g0KHQktCV0KLQm9CQ0J3QkAor0JTQntCo0JXQnSDQktCe0IjQmNCdCivQlNCe0KjQldCd0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CU0J7QqNCV0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQlNCe0KjQldCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQlNCe0KjQldCd0J7QktCY0Isg0JLQkNCh0JjQidCa0JAKK9CU0J7QqNCV0J3QntCS0JjQiyDQktCe0IjQmNCdCivQlNCe0KjQmNCLINCT0JjQl9CV0JvQkAor0JTQntCo0JvQmNCLINCc0JjQm9CY0KbQkAor0JTQntCo0JvQmNCLINCd0JXQndCQ0JQKK9CU0J7QqNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQlNCe0KjQm9Ce0JIg0JrQoNCh0KLQngor0JTQntCo0JvQntCSINCh0JvQkNCS0JjQptCQCivQlNCe0JbQmNCLINCJ0JjQidCQ0J3QkAor0JTQntCW0JjQiyDQnNCQ0KDQmNCm0JAKK9CU0J7QltCY0Isg0KHQotCV0JLQkNCdCivQlNCe0JbQmNCLINCh0KLQldCS0JDQnQor0JTQntCW0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CU0J7QltCY0Isg0JLQkNCh0JjQidCa0JAKK9CU0J7QkdCQ0J0g0JzQkNCg0KfQldCbCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCn0JXQlNCe0JzQmNCgCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCR0J7QoNCY0KHQm9CQ0JIKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCU0J7QkdCg0JjQndCa0JAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JTQo9Co0JDQndCa0JAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JTQo9Co0JDQndCa0JAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JTQo9Co0JDQnQor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQmNCg0JXQndCQCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCI0JXQm9Ca0JAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0IjQo9Cb0JrQkAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQiNCj0JvQmtCY0KbQkAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQnNCQ0JrQodCY0JwKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JzQmNCb0JDQnQor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQnNCY0JvQkNCdCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCc0JjQoNCI0JDQndCQCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCc0JjQoNCa0J4KK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0J/QldCi0JDQoAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQoNCQ0JTQntCc0JjQoAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQodCQ0JLQkAor0JTQntCR0JDQndCe0JLQkNCn0JrQmCDQodCQ0JLQkAor0JTQntCR0JDQndCe0JLQkNCn0JrQmC3QodCQ0JLQmNCLINCi0JjQndCa0JAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0KHQotCV0JLQkNCdCivQlNCe0JHQkNCd0J7QktCQ0KfQmtCYINCi0JjQndCa0JAKK9CU0J7QkdCQ0J3QntCS0JDQp9Ca0Jgg0JfQntCg0JjQptCQCivQlNCe0JHQkNCd0J7QktCY0Isg0KHQntCk0JjQiNCQCivQlNCe0JHQldCoINCI0J7QktCQ0J0KK9CU0J7QkdCYINCI0KPQm9CY0IjQkNCd0JAKK9CU0J7QkdCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCe0JHQmNCLINCf0JXQotCQ0KAKK9CU0J7QkdCeINCY0JvQldCoCivQlNCe0JHQniDQiNCe0JbQldCkCivQlNCe0JHQniDQiNCe0JbQldCkCivQlNCe0JHQntCoINCI0J7QltCV0KQKK9CU0J7QkdCe0KjQmCDQqNCQ0J3QlNCe0KAKK9CU0J7QkdCe0KjQmCDQgtCV0KDQggor0JTQntCR0J7QqNCYINCV0KDQltCV0JHQldCiCivQlNCe0JHQntCo0Jgg0IjQkNCd0J7QqAor0JTQntCR0J7QqNCYINCb0JDQodCb0J4KK9CU0J7QkdCe0KjQmCDQnNCQ0JPQlNCQ0JvQldCd0JAKK9CU0J7QkdCe0KjQmCDQnNCQ0KDQk9CY0KLQkAor0JTQntCR0J7QqNCYINCf0JDQmwor0JTQntCR0J7QmtCQ0Jgg0JzQmNCl0JDQiNCb0J4KK9CU0J7QkdCe0JLQmNCn0JXQmiDQpNCg0JDQndCmCivQlNCe0JHQoNCQINCY0JLQkNCdCivQlNCe0JHQoNCQ0Kgg0JzQmNCb0JrQkAor0JTQntCR0KDQkNCdINCh0JvQkNCS0JrQngor0JTQntCR0KDQkNCd0JjQiyDQoNCQ0JTQntCS0JDQnQor0JTQntCR0KDQkNCd0JjQiyDQktCY0JTQntCh0JDQktCQCivQlNCe0JHQoNCVINCR0J7QltCQCivQlNCe0JHQoNCV0J3QntCSINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQlNCe0JHQoNCV0J3QntCSINCT0KDQldCi0JAKK9CU0J7QkdCg0JXQndCe0JIg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CU0J7QkdCg0JXQndCe0JIg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CU0J7QkdCg0JXQndCe0JIg0J3QmNCa0J7Qm9CQCivQlNCe0JHQoNCV0J3QntCSINCh0JDQndCU0KDQkAor0JTQntCR0KDQldCd0J7QkiDQktCe0IjQmNCdCivQlNCe0JHQoNCV0KLQmNCLINCc0JDQoNCY0KbQkAor0JTQntCR0KDQmNCn0JrQmCDQlNCj0KjQkNCdCivQlNCe0JHQoNCY0KfQmtCYINCc0JDQoNCY0IjQkAor0JTQntCR0KDQmNCLINCW0JjQktCa0J4KK9CU0J7QkdCg0JjQiyDQgtCe0KDQgtCVCivQlNCe0JHQoNCY0Isg0JHQntCo0JrQngor0JTQntCR0KDQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQntCR0KDQmNCLINCV0KDQltCV0JHQldCiCivQlNCe0JHQoNCY0Isg0JPQntCI0JrQngor0JTQntCR0KDQmNCLINCI0J7QktCQ0J0KK9CU0J7QkdCg0JjQiyDQmtCe0KHQotCQCivQlNCe0JHQoNCY0Isg0InQo9CR0JjQptCQCivQlNCe0JHQoNCY0Isg0JzQmNCb0JDQlNCY0J0KK9CU0J7QkdCg0JjQiyDQnNCY0JvQkNCdCivQlNCe0JHQoNCY0Isg0JzQmNCb0JDQnQor0JTQntCR0KDQmNCLINCd0JXQk9Ce0KHQkNCS0JAKK9CU0J7QkdCg0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQlNCe0JHQoNCY0Isg0KDQkNCU0JjQktCe0IgKK9CU0J7QkdCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCe0JHQoNCY0Isg0KHQotCV0JLQkNCdCivQlNCe0JHQoNCY0Isg0KPQk9CJ0JXQqNCQCivQlNCe0JHQoNCY0Isg0JLQldCg0J7QndCY0JrQkAor0JTQntCR0KDQmNCLINCS0JXQodCd0JAKK9CU0J7QkdCg0JjQiyDQl9CU0KDQkNCS0JrQngor0JTQntCR0KDQmNCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JTQntCR0KDQmNCI0JXQktCY0Isg0J/QldCi0JDQoAor0JTQntCR0KDQmNCI0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CU0J7QkdCg0JjQm9Ce0JLQmNCLINCg0JDQiNCa0J4KK9CU0J7QkdCg0JjQm9Ce0JLQmNCLINCg0JDQiNCa0J4KK9CU0J7QkdCg0JjQm9Ce0JLQmNCLINCh0JjQnNCQCivQlNCe0JHQoNCY0J0g0JTQldCW0JUKK9CU0J7QkdCg0JjQnSDQndCY0JrQntCb0JAKK9CU0J7QkdCg0JjQnSDQntCb0JPQkAor0JTQntCR0KDQmNCd0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JTQntCR0KDQmNCS0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9CU0J7QkdCg0JjQktCe0IjQldCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQlNCe0JHQoNCK0JDQpiDQodCi0J7QiNCQ0J3QmtCQCivQlNCe0JHQoNCe0JTQldCbINCk0KDQkNCK0J4KK9CU0J7QkdCg0J7QlNCe0JvQodCa0Jgg0IjQldCb0JXQndCQCivQlNCe0JHQoNCe0JTQntCb0KHQmtCYINCI0KPQm9Ca0JAKK9CU0J7QkdCg0J7QlNCe0JvQodCa0Jgg0JLQo9Ca0JjQptCQCivQlNCe0JHQoNCe0JrQldChINCc0JjQm9CV0J3QkAor0JTQntCR0KDQntCc0JjQoNCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0J7QkdCg0J7QnNCY0KDQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCe0JHQoNCe0JzQmNCg0J7QkiDQlNCj0KjQkNCdCivQlNCe0JHQoNCe0JzQmNCg0J7QkiDQldCj0KTQmNCc0JjQiNCQCivQlNCe0JHQoNCe0JzQmNCg0J7QkiDQndCQ0JTQkAor0JTQntCR0KDQntCc0JjQoNCe0JIg0J/QldCi0JDQoAor0JTQntCR0KDQntCc0JjQoNCe0JIg0JLQmNCi0J7QnNCY0KAKK9CU0J7QkdCg0J7QnNCY0KDQntCSINCS0JvQkNCU0JjQnNCY0KAKK9CU0J7QkdCg0J7QnNCY0KDQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9CU0J7QkdCg0J7QnNCY0KDQntCS0JjQiyDQn9CQ0JLQm9CVCivQlNCe0JHQoNCe0KHQkNCS0InQldCSINCb0JDQl9CQ0KAKK9CU0J7QkdCg0J7QodCQ0JLQidCV0JIg0JvQkNCX0JDQoAor0JTQntCR0KDQntCh0JDQktCJ0JXQkiDQnNCY0JvQkNCdCivQlNCe0JHQoNCe0KHQkNCS0InQldCSINCc0JjQm9CQ0J0KK9CU0J7QkdCg0J7QodCQ0JLQidCV0JIg0JzQmNCb0JDQnQor0JTQntCR0KDQntCh0JDQktCJ0JXQkiDQnNCY0JvQntCS0JDQnQor0JTQntCR0KDQntCh0JDQktCJ0JXQkiDQnNCY0KDQkAor0JTQntCR0KDQntCh0JDQktCJ0JXQkiDQn9CV0KLQkNCgCivQlNCe0JHQoNCe0KHQkNCS0InQldCSINCg0JDQlNCQCivQlNCe0JHQoNCe0KHQkNCS0InQldCSINCg0JDQndCa0J4KK9CU0J7QkdCg0J7QodCQ0JLQidCV0JIg0KHQkNCS0JAKK9CU0J7QkdCg0J7QodCQ0JLQidCV0JIg0KHQktCV0KLQntCX0JDQoAor0JTQntCR0KDQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCV0J3QmtCQCivQlNCe0JHQoNCe0KHQkNCS0InQldCS0JjQiyDQodCb0JDQktCa0J4KK9CU0J7QkdCg0J7QodCQ0JLQidCV0JLQmNCLINCS0JDQodCQINCd0J7QktCY0J3QkNCgCivQlNCe0JHQoNCe0KHQkNCS0InQldCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQlNCe0JHQoNCe0KHQkNCS0InQldCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQlNCe0JHQoNCe0KLQkCDQkdCY0KHQldCg0JrQkAor0JTQntCR0KDQntCi0JAg0JTQkNCc0JjQoAor0JTQntCR0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JTQntCR0KDQntCS0JjQiyDQlNCQ0JzQiNCQ0J3QmtCQCivQlNCe0JHQoNCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQlNCe0JTQldCg0J7QktCY0Isg0JzQmNCb0J7QodCQ0JIKK9CU0J7QlNCV0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JTQntCU0JjQiyDQmNCS0JDQnQor0JTQntCU0JjQiyDQiNCV0JvQldCd0JAKK9CU0J7QlNCY0Isg0JzQmNCb0JjQktCe0IgKK9CU0J7QlNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CU0J7QlNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CU0J7QlNCY0Isg0KHQkNCS0JAKK9CU0J7QlNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JTQntCU0JjQiyDQodCi0JDQndCe0IjQlQor0JTQntCU0JjQiyDQodCi0J7QiNCQ0J0KK9CU0J7QlNCY0Isg0JLQldCg0JAKK9CU0J7QlNCY0Jog0JHQkNCg0KLQntCbCivQlNCe0JTQmNCaINCh0KLQldCS0JDQnQor0JTQntCU0JvQldCaINCS0JvQkNCU0JjQnNCY0KAKK9CU0J7QlNCe0Kgg0JvQkNCX0JDQoAor0JTQntCT0JDQndCP0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9CU0J7QiNCn0JjQndCe0JLQmNCLINCC0KPQiNCQCivQlNCe0IjQp9CY0J3QntCS0JjQiyDQgtCj0KDQgtCY0KbQkAor0JTQntCI0KfQmNCd0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9CU0J7QiNCn0JjQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQlNCe0IjQp9CY0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQlNCe0IjQp9CY0J3QntCS0JjQiyDQiNCe0KHQmNCkCivQlNCe0IjQp9CY0J3QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JTQntCI0KfQmNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkiDQlNCgCivQlNCe0IjQp9CY0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQlNCe0IjQp9CY0J3QntCS0JjQiyDQktCb0JDQlNCQCivQlNCe0IjQp9CY0J3QntCS0KHQmtCYINCS0JDQndCn0JAKK9CU0J7QiNCU0JXQoCDQmNCS0J4KK9CU0J7QiNCU0JXQoCDQiNCQ0JrQntCSCivQlNCe0IjQmNCLINCb0JDQl9CQ0KAKK9CU0J7QiNCa0JjQiyDQkdCe0JbQmNCU0JDQoAor0JTQntCI0JrQmNCLINCI0KPQm9Ca0JjQptCQCivQlNCe0IjQmtCY0Isg0JrQodCV0J3QmNCI0JAKK9CU0J7QiNCa0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0J7QiNCa0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQntCI0JrQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCe0IjQmtCY0Isg0JzQm9CQ0JTQldCdCivQlNCe0IjQmtCY0Isg0JzQm9CQ0JTQldCdCivQlNCe0IjQmtCY0Isg0J/QkNCI0JAKK9CU0J7QiNCa0JjQiyDQn9CV0KLQkNCgINCU0KAKK9CU0J7QiNCa0JjQiyDQn9CV0KLQkNCgCivQlNCe0IjQmtCY0Isg0KDQkNCI0JrQngor0JTQntCI0JrQmNCLINCg0JDQiNCa0J4KK9CU0J7QiNCa0JjQiyDQodCb0JDQktCa0J4KK9CU0J7QiNCa0JjQiyDQktCI0JXQmtCe0KHQm9CQ0JIKK9CU0J7QmtCb0JXQkNCdINCQ0JTQkNCcCivQlNCe0JrQnNCQ0J3QntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JTQntCa0JzQkNCd0J7QktCY0Isg0JTQldCI0JDQnQor0JTQntCa0JzQkNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQlNCe0JrQnNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CU0J7QmtCc0JDQndCe0JLQmNCLINCd0JDQlNCQCivQlNCe0JrQnNCQ0J3QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JTQntCa0J3QmNCLINCS0JXQidCa0J4KK9CU0J7QmtCe0KjQmNCLINCc0JDQoNCY0IjQkAor0JTQntCb0JDQqCDQnNCY0JvQntCS0JDQnQor0JTQntCb0JXQndCV0KYg0KTQm9Ce0KDQmNCI0JDQnQor0JTQntCb0JPQkCDQnNCY0JvQldCd0JAKK9CU0J7Qm9CY0J3QkNCIINCC0KPQoNCeCivQlNCe0JvQmNCd0JDQiCDQiNCQ0KDQntCh0JvQkNCS0JAKK9CU0J7Qm9CY0J3QkNCgINCJ0KPQkdCY0KbQkAor0JTQntCb0JjQndCT0JAg0JzQkNCg0JjQntCg0JAKK9CU0J7Qm9CY0J3Qk9CQINCd0JjQmtCe0JvQkNCI0JUKK9CU0J7Qm9Ce0Kgg0KTQoNCQ0IrQkAor0JTQntCb0J7QktCn0JDQmiDQmtCQ0KLQmNCm0JAKK9CU0J7Qm9Ce0JLQkNCmINCQ0J3QmtCY0KbQkAor0JTQntCb0J7QktCQ0KYg0JHQmNCh0JXQoNCa0JAKK9CU0J7Qm9Ce0JLQkNCmINCU0KDQkNCT0JjQptCQCivQlNCe0JvQntCS0JDQpiDQiNCe0JLQkNCdCivQlNCe0JvQntCS0JDQpiDQm9CQ0JfQkNCgCivQlNCe0JvQntCS0JDQpiDQm9CQ0JfQkNCgCivQlNCe0JvQntCS0JDQpiDQnNCQ0KDQmNCI0JAKK9CU0J7Qm9Ce0JLQkNCmINCc0JjQm9CY0KbQkAor0JTQntCb0J7QktCQ0KYg0JzQmNCb0J7QqAor0JTQntCb0J7QktCQ0KYg0KDQkNCU0JjQktCe0IgKK9CU0J7Qm9Ce0JLQkNCmINCg0JDQlNCe0KHQm9CQ0JIKK9CU0J7Qm9Ce0JLQkNCmINCg0JDQlNCe0KHQm9CQ0JIKK9CU0J7Qm9Ce0JLQkNCmINCh0JvQkNCS0JrQngor0JTQntCb0J7QktCQ0KYg0KHQm9CQ0JLQmtCeCivQlNCe0JvQntCS0JDQpiDQodCb0J7QkdCe0JTQkNCdCivQlNCe0JvQntCS0JDQpiDQktCV0JvQmNCc0JjQoAor0JTQntCb0J7QktCQ0KYg0JfQntCg0JrQkAor0JTQntCc0JDQodCi0J7QktCY0Isg0JTQkNCd0JjQptCQCivQlNCe0JzQkNCX0JXQoiDQndCY0JrQntCb0JAKK9CU0J7QnNCQ0JfQldCiINCX0J7QoNCY0KbQkAor0JTQntCc0JDQl9CV0KLQntCSINCS0JXQm9CY0JzQmNCgCivQlNCe0JzQkNCX0JXQotCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQlNCe0JzQkNCX0JXQotCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQlNCe0JzQkNCX0JXQotCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQlNCe0JzQkdCYINCb0JDQodCb0J4KK9CU0J7QnNCR0Jgg0KDQkNCU0J7QiNCa0JAKK9CU0J7QnNCR0Jgg0KHQnNCY0InQmtCQCivQlNCe0JzQmNCd0JjQiyDQkNCd0JAKK9CU0J7QnNCY0J3QmNCLINCd0JjQmtCe0JvQkAor0JTQntCc0J7QitCYINCc0JDQoNCi0JjQnQor0JTQntCc0J7QndCa0J7QqCDQldCS0JAKK9CU0J7QnNCe0J3QmtCe0Kgg0JLQmNCb0JzQntCoCivQlNCe0JzQntCd0JrQntChINCY0KjQotCS0JDQnQor0JTQntCc0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQntCd0KfQldCSINCi0J7QlNCVCivQlNCe0J3Qp9CY0Isg0J3QkNCU0JAKK9CU0J7QndCQ0KIg0JTQoNCQ0JPQo9Ci0JjQnQor0JTQntCd0JDQoiDQodCQ0JLQldCi0JAKK9CU0J7QndCU0KPQoCDQltCY0JLQmtCeCivQlNCe0J3QlNCj0KAg0JTQkNCd0JjQptCQCivQlNCe0J3QlNCj0KAg0JTQkNCg0JjQndCa0JAKK9CU0J7QndCU0KPQoCDQnNCY0JvQmNCm0JAKK9CU0J7QndCU0KPQoCDQodCb0JDQktCa0J4KK9CU0J7QndCU0KPQoCDQodCi0JDQndCa0J4KK9CU0J7QndCU0KPQoCDQl9CU0KDQkNCS0JrQngor0JTQntCd0JXQkiDQotCe0JTQntCgCivQlNCe0J3QldCS0KHQmtCYINCI0JXQm9CV0J3QkAor0JTQntCd0JXQktCh0JrQmCDQmtCg0JjQodCi0JjQndCQCivQlNCe0J3QmNCLINCW0JjQktCe0IjQmNCdCivQlNCe0J3QmtCe0KAg0I/QldCc0KEKK9CU0J7QndCh0JrQntCSINCh0JXQoNCT0JjQiNCVCivQlNCe0J3QodCa0J7QktCQINCX0J7QiNCQINCU0KAg0JvQldCa0JDQoAor0JTQntCf0KPQgiDQkdCe0JbQmNCU0JDQoAor0JTQntCf0KPQgiDQkdCg0JDQndCa0J4KK9CU0J7Qn9Cj0IIg0JTQo9CR0KDQkNCS0JrQkAor0JTQntCf0KPQgiDQk9Ce0KDQkNCdCivQlNCe0J/Qo9CCINCc0JDQoNCY0IjQkAor0JTQntCf0KPQgiDQnNCY0JvQkNCdINCU0KAKK9CU0J7Qn9Cj0IIg0JzQmNCg0J7QodCb0JDQktCQCivQlNCe0J/Qo9CC0JAg0JbQmNCS0JrQngor0JTQntCf0KPQgtCQINCU0JDQoNCQCivQlNCe0J/Qo9CC0JAg0JTQoNCQ0JPQntCc0JjQoAor0JTQntCf0KPQgtCQINCh0JDQktCQCivQlNCe0J/Qo9CC0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JTQntCg0KfQmNCLINCQ0JvQntCI0JfQkAor0JTQntCg0KfQmNCLLdCR0JjQmtCY0Isg0J7Qm9CT0JjQptCQCivQlNCe0KDQp9CY0Isg0JHQntCW0J4KK9CU0J7QoNCn0JjQiyDQmtCb0JXQnNCV0J3Qogor0JTQntCg0KfQmNCLINCc0JDQoNCI0JDQnQor0JTQntCg0JjQiyDQltCQ0KDQmtCeCivQlNCe0KDQmNCLINCR0JjQidCQ0J3QkAor0JTQntCg0JjQiyDQkdCY0InQkNCd0JAKK9CU0J7QoNCY0Isg0JHQntCg0JjQodCb0JDQkgor0JTQntCg0JjQiyDQpNCg0JDQitCQCivQlNCe0KDQmNCLINCY0JvQmNCI0JAKK9CU0J7QoNCY0Isg0JjQoNCc0JAKK9CU0J7QoNCY0Isg0IjQntCh0JjQnwor0JTQntCg0JjQiyDQn9CV0KLQkNCgCivQlNCe0KDQmNCLINCh0KLQldCS0JDQnQor0JTQntCg0JjQiyDQktCV0KHQldCb0JjQnQor0JTQntCg0JrQniDQodCe0KTQmNCI0JAKK9CU0J7QoNCc0JDQnSDQm9CQ0KHQm9CeCivQlNCe0KDQniDQk9CV0JfQkCDQlNCgCivQlNCe0KDQntCo0JXQkiDQgtCe0KDQgtCVCivQlNCe0KDQntCo0JrQmCDQgtCe0KDQgtCVCivQlNCe0KDQntCo0JrQmCDQkdCg0JDQndCa0J4KK9CU0J7QoNCe0KjQmtCYINCU0JXQodCQ0J3QmtCQCivQlNCe0KDQntCo0JrQmCDQiNCe0JLQkNCdINCU0KAKK9CU0J7QoNCe0KjQmtCYINCJ0JjQidCQ0J3QkAor0JTQntCg0J7QqNCa0Jgg0JzQkNCg0JjQiNCQCivQlNCe0KDQntCo0JrQmCDQnNCY0JvQkNCdCivQlNCe0KDQntCo0JrQmCDQnNCY0JvQkAor0JTQntCg0J7QqNCa0Jgg0JzQmNCg0IjQkNCd0JAKK9CU0J7QoNCe0KjQmtCYINCd0JjQmtCe0JvQkAor0JTQntCg0J7QqNCa0Jgg0KHQmNCc0JAKK9CU0J7QoNCe0KjQmtCYINCS0JjQlNCe0KHQkNCS0JAKK9CU0J7QoNCe0KjQmtCYINCS0KPQiNCQ0JTQmNCdCivQlNCe0KDQntCm0JrQmCDQnNCQ0KXQkNCbCivQlNCe0KDQntCT0KXQkNCX0Jgg0JjQoNCY0J3QkAor0JTQntCg0J7Qk9CYINCo0JDQndCU0J7QoAor0JTQntCg0J7QitCh0JrQmCDQlNCj0KjQkNCdCivQlNCe0KDQntCK0KHQmtCYINCa0JDQotCQ0KDQmNCd0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQgtCj0KDQkAor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0JDQndCY0KbQkAor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCU0JDQndCY0KbQkAor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCT0KDQo9CI0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQiNCV0JvQldCd0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQmtCh0JXQndCY0IjQkAor0JTQntCg0J7QodCb0J7QktCQ0KfQmtCYINCc0JDQoNCT0JjQotCQCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0JzQkNCg0JjQndCQCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0JzQkNCg0IjQkNCd0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0J3QmNCa0J7Qm9CQCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0KDQkNCU0JUKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQodCQ0JLQldCi0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQodCi0JXQktCQ0J3QmtCQCivQlNCe0KDQntCh0JvQntCS0JDQp9Ca0Jgg0JLQo9CI0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCn0JrQmCDQktCj0JrQkAor0JTQntCg0J7QodCb0J7QktCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCmINCb0JDQl9CQ0KAKK9CU0J7QoNCe0KHQm9Ce0JLQkNCmINCc0JDQoNCY0IjQkAor0JTQntCg0J7QodCb0J7QktCQ0KYg0JzQmNCb0JDQndCQCivQlNCe0KDQntCh0JvQntCS0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQlNCe0KDQntCh0JvQntCS0JDQpiDQn9CV0KLQkNCgCivQlNCe0KDQntCh0JvQntCS0JDQpiDQl9Ce0KDQkNCdCivQlNCe0KDQntCi0JjQiyDQgtCe0KDQgtCVCivQlNCe0KDQntCi0JjQiyDQgtCe0KDQgtCVCivQlNCe0KDQntCi0JjQiyDQk9CY0JfQldCb0JAKK9CU0J7QoNCe0KLQmNCLINCT0J7QoNCU0JDQnQor0JTQntCg0J7QotCY0Ist0JPQo9Ci0JXQqNCQINCb0JXQntCd0JAKK9CU0J7QoNCe0KLQmNCLINCY0JvQkCDQnNCgINCf0KDQntCkCivQlNCe0KDQntCi0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0J7QoNCe0KLQmNCLINCh0KLQldCS0JDQnQor0JTQntCg0J7QotCa0JAg0JTQoNCQ0JPQkNCdCivQlNCe0KDQntCi0JrQkCDQnNCY0JvQntCoCivQlNCe0KHQotCQ0J0g0JDQndCQCivQlNCe0KHQotCQ0J0g0JDQoNCf0JDQlAor0JTQntCh0KLQkNCdINCU0JDQoNCY0J3QmtCQCivQlNCe0KHQotCQ0J0g0JjQqNCi0JLQkNCdCivQlNCe0KHQotCQ0J0g0IjQntCW0JXQpAor0JTQntCh0KLQkNCdINCb0JDQlNCY0KHQm9CQ0JIKK9CU0J7QodCi0JDQnSDQn9CV0KLQkNCgCivQlNCe0KHQotCQ0J0g0KHQotCV0JLQkNCdCivQlNCe0KHQotCQ0J0g0KLQmNCR0J7QoAor0JTQntCh0KLQkNCd0JjQiyDQlNCg0JDQk9CY0KbQkAor0JTQntCh0KLQkNCd0JjQiyDQoNCQ0JTQnNCY0JvQngor0JTQntCh0KLQkNCd0JjQiyDQktCe0JjQodCb0JDQkgor0JTQntCh0KLQkNCKINCI0J7QodCY0J8KK9CU0J7QodCi0JDQiiDQoNCe0JfQkNCb0JjQiNCQCivQlNCe0KHQotCY0Isg0KHQm9CQ0JLQmtCeCivQlNCe0KHQotCY0Isg0KHQntCk0JjQiNCQCivQlNCe0KLQm9CY0Isg0JbQmNCS0JrQngor0JTQntCi0JvQmNCLINCR0J7QqNCa0J4KK9CU0J7QotCb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQlNCe0KLQm9CY0Isg0JTQntCR0KDQmNCb0JAKK9CU0J7QotCb0JjQiyDQlNCj0KjQkNCdCivQlNCe0KLQm9CY0Isg0JvQkNCX0JDQoAor0JTQntCi0JvQmNCLINCb0JDQl9CQ0KAKK9CU0J7QotCb0JjQiyDQm9Cj0JrQkAor0JTQntCi0JvQmNCLINCh0JDQktCQCivQlNCe0KLQm9CY0Isg0KHQntCk0JjQiNCQCivQlNCe0KLQm9CY0Isg0JLQkNCh0JAKK9CU0J7QotCe0JIg0JTQoNCQ0JPQngor0JTQntCS0JDQoiDQn9CQ0JLQm9CVINCU0KAKK9CU0J7QktCQ0KIg0JLQm9CQ0JTQmNCc0JjQoAor0JTQntCS0JDQotCe0JIg0JDQlNCQ0JwKK9CU0J7QktCV0JTQldCdINCR0J7QoNCY0KHQm9CQ0JIKK9CU0J7QktCT0JDQnSDQiNCe0KHQmNCfCivQlNCe0JLQmNCI0JDQoNCe0JIg0JzQmNCb0J7QqAor0JTQntCS0JjQiNCQ0KDQntCSINCg0JDQlNCY0JLQntCICivQlNCe0JLQmNCI0JDQoNCh0JrQmCDQkdCg0JDQndCa0JAKK9CU0J7QktCY0IjQkNCg0KHQmtCYINCc0JjQm9CV0J3QkAor0JTQntCS0JjQiNCQ0KDQodCa0Jgg0KHQotCQ0J3QmNCc0JjQoAor0JTQntCS0J3QmNCa0J7QktCY0Isg0JvQkNCX0JDQoAor0JTQntCX0JXQoiDQgtCe0KDQgtCVCivQlNCe0JfQldCiINCR0J7QltCeCivQlNCe0JfQldCiINCU0KDQkNCT0JjQptCQCivQlNCe0JfQldCiINCY0JvQmNCI0JAKK9CU0J7Ql9CV0KIg0IjQkNCh0J3QkAor0JTQntCX0JXQoiDQiNCj0JvQmtCY0KbQkAor0JTQntCX0JXQoiDQidCj0JHQmNCm0JAKK9CU0J7Ql9CV0KIg0InQo9CR0J7QnNCY0KAKK9CU0J7Ql9CV0KIg0JzQmNCl0JDQiNCb0J4KK9CU0J7Ql9CV0KIg0JzQmNCb0JDQnQor0JTQntCX0JXQoiDQnNCY0JvQntCS0JDQnQor0JTQntCX0JXQoiDQndCY0JrQntCb0JAKK9CU0J7Ql9CV0KIg0KDQkNCU0JUKK9CU0J7Ql9CV0KIg0KDQkNCU0JzQmNCb0JAKK9CU0J7Ql9CV0KIg0KDQkNCU0J7QodCb0JDQktCa0JAKK9CU0J7Ql9CV0KIg0KHQkNCS0JrQkAor0JTQntCX0JXQoiDQodCi0JDQndCa0J4KK9CU0KDQp9CQINCQ0J3QkAor0JTQoNCn0JAg0JHQoNCQ0J3QmtCeCivQlNCg0KfQkCDQlNCg0JDQk9CY0KbQkAor0JTQoNCn0JAg0IjQkNCd0JrQngor0JTQoNCn0JAg0JzQmNCb0JDQnQor0JTQoNCn0JAg0KDQkNCi0JrQngor0JTQoNCn0JAg0KHQm9CQ0JLQmtCeCivQlNCg0KfQkCDQodCi0JXQktCQ0J0KK9CU0KDQp9CQLdCj0KDQk9CV0J0g0JzQkNCg0JjQiNCQCivQlNCg0KfQkCDQktCb0JDQotCa0J4KK9CU0KDQp9CV0JvQmNCLINCU0J7QkdCg0JjQodCQ0JIKK9CU0KDQp9CV0JvQmNCLINCc0JjQoNCI0JDQndCQCivQlNCg0JbQkNCI0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUg0J/QoNCe0KTQldCh0J7QoAor0JTQoNCW0JjQiyDQmNCb0JjQiNCQCivQlNCg0JDQp9CQINCW0JjQktCa0J4KK9CU0KDQkNCn0JAg0ILQntCg0ILQlQor0JTQoNCQ0KfQkCDQkNCm0JAKK9CU0KDQkNCn0JAg0JTQo9CR0KDQkNCS0JrQkAor0JTQoNCQ0KfQkCDQnNCY0JvQlQor0JTQoNCQ0KfQkCDQn9CV0KLQkNCgINCU0KAKK9CU0KDQkNCn0JAg0J/QldCi0JDQoAor0JTQoNCQ0KfQkCDQodCf0JDQodCV0J3QmtCQCivQlNCg0JDQp9CQINCi0J7QnNCeINCU0KAKK9CU0KDQkNCn0JjQnSDQmtCe0KHQotCQCivQlNCg0JDQqNCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0JTQoNCQ0KjQmtCeINCI0JXQm9Ca0JAKK9CU0KDQkNCo0JrQniDQnNCY0JvQntCS0JDQnQor0JTQoNCQ0KjQmtCeINCh0JvQntCR0J7QlNCQ0J0KK9CU0KDQkNCo0JrQntCS0JjQiyDQkdCg0JDQndCa0J4g0JTQmNCf0Jsg0J7QldCmCivQlNCg0JDQqNCa0J7QktCY0Isg0JTQoNCQ0JPQkAor0JTQoNCQ0KjQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CU0KDQkNCo0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JTQoNCQ0KjQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQlNCg0JDQqNCa0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9CU0KDQkNCo0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQoNCQ0KjQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9CU0KDQkNCo0JrQntCS0JjQiyDQodCQ0JLQngor0JTQoNCQ0KjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQlNCg0JDQqNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JTQoNCQ0KjQmtCe0JLQmNCLINCh0KDQldCi0JXQnQor0JTQoNCQ0JbQldCi0JAg0JzQmNCb0JXQndCa0J4KK9CU0KDQkNCW0JXQotCQINCh0KLQldCS0JDQnQor0JTQoNCQ0JbQldCi0JjQnSDQlNCj0KjQkNCdCivQlNCg0JDQltCV0KLQmNCdINCc0JvQkNCU0JXQnQor0JTQoNCQ0JbQmNCLINCW0JDQoNCa0J4KK9CU0KDQkNCW0JjQiyDQgtCe0KDQgtCVCivQlNCg0JDQltCY0Isg0ILQntCg0ILQlQor0JTQoNCQ0JbQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCg0JDQltCY0Isg0JHQntCT0JTQkNCdCivQlNCg0JDQltCY0Isg0JHQo9CU0J4KK9CU0KDQkNCW0JjQiyDQlNCe0JHQoNCY0JLQntCICivQlNCg0JDQltCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JTQoNCQ0JbQmNCLINCU0KPQqNCQ0J0KK9CU0KDQkNCW0JjQiyDQlNCj0KjQkNCdCivQlNCg0JDQltCY0Isg0JXQnNCY0JsKK9CU0KDQkNCW0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JTQoNCQ0JbQmNCLINCY0JvQmNCI0JAKK9CU0KDQkNCW0JjQiyDQmNCb0JjQiNCQCivQlNCg0JDQltCY0Isg0JjQoNCV0J3QkAor0JTQoNCQ0JbQmNCLINCI0JDQqNCQCivQlNCg0JDQltCY0Isg0IjQldCb0JjQptCQCivQlNCg0JDQltCY0Isg0IjQntCS0JDQnQor0JTQoNCQ0JbQmNCLINCI0J7QktCQ0J0KK9CU0KDQkNCW0JjQiyDQiNCe0JLQkNCdCivQlNCg0JDQltCY0Isg0IjQntCS0JDQnQor0JTQoNCQ0JbQmNCLINCI0J7QktCQ0J0KK9CU0KDQkNCW0JjQiyDQmtCQ0KLQmNCm0JAKK9CU0KDQkNCW0JjQiyDQmtCe0KHQotCQCivQlNCg0JDQltCY0Isg0JvQkNCX0JDQoAor0JTQoNCQ0JbQmNCLINCJ0KPQkdCY0KbQkAor0JTQoNCQ0JbQmNCLINCc0JDQoNCY0IjQkAor0JTQoNCQ0JbQmNCLINCc0JjQm9CQ0J0KK9CU0KDQkNCW0JjQiyDQnNCY0JvQkNCdCivQlNCg0JDQltCY0Isg0JzQmNCb0JXQndCa0J4KK9CU0KDQkNCW0JjQiyDQnNCY0JvQldCd0JrQngor0JTQoNCQ0JbQmNCLINCc0JjQm9CY0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0JTQoNCQ0JbQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCg0JDQltCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CU0KDQkNCW0JjQiyDQnNCY0JvQntCg0JDQlAor0JTQoNCQ0JbQmNCLINCc0JjQoNCQCivQlNCg0JDQltCY0Isg0JzQmNCi0JAKK9CU0KDQkNCW0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQlNCg0JDQltCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0JTQoNCQ0JbQmNCLINCd0JXQodCi0J7QoAor0JTQoNCQ0JbQmNCLINCd0JXQktCV0J3QmtCQCivQlNCg0JDQltCY0Isg0J3QmNCa0J7Qm9CQCivQlNCg0JDQltCY0Isg0J3QmNCa0J7Qm9CQCivQlNCg0JDQltCY0Isg0J7QodCi0J7QiNCQCivQlNCg0JDQltCY0Isg0J/QldCi0JDQoAor0JTQoNCQ0JbQmNCLINCg0JDQlNCe0JLQkNCdCivQlNCg0JDQltCY0Isg0KDQldCJ0JAKK9CU0KDQkNCW0JjQiyDQodCb0JDQktCa0J4KK9CU0KDQkNCW0JjQiyDQodCe0KTQmNCI0JAKK9CU0KDQkNCW0JjQiyDQodCi0JDQndCa0J4KK9CU0KDQkNCW0JjQiyDQodCi0JXQktCQ0J0KK9CU0KDQkNCW0JjQiyDQodCi0JXQktCQ0J0KK9CU0KDQkNCW0JjQiyDQodCj0JfQkNCd0JAKK9CU0KDQkNCW0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQlNCg0JDQltCY0Isg0JLQldCb0JjQndCa0JAKK9CU0KDQkNCW0JjQiyDQktCV0KDQkAor0JTQoNCQ0JbQmNCLINCS0JXQoNCQCivQlNCg0JDQltCY0Isg0JLQldCg0JAKK9CU0KDQkNCW0JjQiyDQl9Cb0JDQotCa0J4KK9CU0KDQkNCW0JjQm9Ce0JLQmNCLINCh0KLQkNCd0JjQqNCQCivQlNCg0JDQltCY0J0g0JHQntCg0JjQodCb0JDQkgor0JTQoNCQ0JPQkNCoINCC0J7QoNCC0JUKK9CU0KDQkNCT0JDQqCDQgtCj0KDQngor0JTQoNCQ0JPQkNCoINCR0J7QoNCY0KHQm9CQ0JIKK9CU0KDQkNCT0JDQqCDQkdCg0JDQndCa0J4KK9CU0KDQkNCT0JDQqCDQlNCg0JDQk9Ce0JzQmNCgCivQlNCg0JDQk9CQ0Kgg0JjQktCQ0J0KK9CU0KDQkNCT0JDQqCDQmtCQ0KLQmNCm0JAKK9CU0KDQkNCT0JDQqC3QmtCe0JLQkNCnINCJ0KPQkdCY0KbQkAor0JTQoNCQ0JPQkNCoINCb0JXQn9Ce0KHQkNCS0JAKK9CU0KDQkNCT0JDQqCDQidCj0JHQmNCm0JAKK9CU0KDQkNCT0JDQqCDQidCj0JHQmNCm0JAKK9CU0KDQkNCT0JDQqCDQnNCQ0J3QntCI0JvQngor0JTQoNCQ0JPQkNCoINCc0JjQm9CQ0J0KK9CU0KDQkNCT0JDQqCDQnNCY0JvQldCd0JrQngor0JTQoNCQ0JPQkNCoINCc0JjQoNCQCivQlNCg0JDQk9CQ0Kgg0JzQmNCg0IjQkNCd0JAKK9CU0KDQkNCT0JDQqCDQnNCe0JzQp9CY0JvQngor0JTQoNCQ0JPQkNCoINCg0JDQlNCY0JLQntCICivQlNCg0JDQk9CQ0Kgg0KDQkNCU0J7QnNCY0KAKK9CU0KDQkNCT0JDQqCDQodCf0J7QnNCV0J3QmtCQCivQlNCg0JDQk9CQ0Kgg0KHQktCV0KLQm9CQ0J3QkAor0JTQoNCQ0JPQkNCoINCX0J7QoNCQ0J0KK9CU0KDQkNCT0JDQqNCV0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JTQoNCQ0JPQkNCdINCc0JjQm9CV0J3QkAor0JTQoNCQ0JPQkNCd0JjQiyDQlNCg0JDQk9CQCivQlNCg0JDQk9CQ0J3QmNCLINCI0JDQndCa0J4KK9CU0KDQkNCT0JDQndCY0Isg0JzQmNCl0JDQiNCb0J4KK9CU0KDQkNCT0JDQndCY0Isg0JzQmNCb0JjQptCQINCU0KAKK9CU0KDQkNCT0JDQndCY0Isg0JzQmNCb0JrQkAor0JTQoNCQ0JPQkNCd0JjQiyDQnNCY0KDQmtCeCivQlNCg0JDQk9CQ0J3QmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CU0KDQkNCT0JDQndCY0Isg0J3QkNCU0JXQltCU0JAKK9CU0KDQkNCT0JDQndCY0Isg0KDQkNCd0JrQngor0JTQoNCQ0JPQkNCd0JjQiyDQktCY0JTQkAor0JTQoNCQ0JPQkNCd0JjQiyDQl9CV0JrQngor0JTQoNCQ0JPQkNCd0J7QkiDQnNCY0JvQntCoCivQlNCg0JDQk9CQ0J3QntCSINCe0JvQk9CQCivQlNCg0JDQk9CQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9CU0KDQkNCT0JDQndCe0JIg0KHQotCe0IjQkNCd0JrQkAor0JTQoNCQ0JPQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQlNCg0JDQk9CV0InQldCS0JjQiyDQlNCj0KjQkNCdCivQlNCg0JDQk9CV0InQldCS0JjQiyDQiNCe0JLQkNCdCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQkNCU0JDQnAor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCT0J7QiNCa0J4KK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCY0JvQmNCd0JrQkAor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0JjQktCa0JAKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCa0KDQldCo0JjQnNCY0KAKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCb0JDQl9CQ0KAKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CU0KDQkNCT0JjQp9CV0JLQmNCLINCc0JjQidCQCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQnNCY0JvQntCoCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQnNCY0KDQmtCeCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0KHQn9CQ0KHQkAor0JTQoNCQ0JPQmNCn0JXQktCY0Isg0KHQoNCV0KLQldCdCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQktCe0IjQmNCdCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQlNCg0JDQk9CY0KfQldCS0JjQiyDQl9Ce0KDQkNCdCivQlNCg0JDQk9CY0KjQkCDQltCQ0KDQmtCeCivQlNCg0JDQk9CY0KjQmNCLINCR0J7Qk9CU0JDQnQor0JTQoNCQ0JPQmNCo0JjQiyDQkdCe0KDQmNCh0JvQkNCS0JrQkAor0JTQoNCQ0JPQmNCo0JjQiyDQiNCe0JLQkNCd0JrQkAor0JTQoNCQ0JPQmNCo0JjQiyDQndCY0JrQntCb0JAKK9CU0KDQkNCT0JjQqNCY0Isg0J/QldCi0JDQoAor0JTQoNCQ0JPQmNCo0JjQiyDQoNCQ0JTQlQor0JTQoNCQ0JPQmNCLINCn0JXQlNCe0JzQmNCgCivQlNCg0JDQk9CY0Isg0JbQldCJ0JrQngor0JTQoNCQ0JPQmNCLINCC0J7QoNCC0JUKK9CU0KDQkNCT0JjQiyDQkNCd0JAKK9CU0KDQkNCT0JjQiyDQkdCg0JDQndCa0J4KK9CU0KDQkNCT0JjQiyDQlNCj0KjQkNCdCivQlNCg0JDQk9CY0Isg0JTQo9Co0JDQnQor0JTQoNCQ0JPQmNCLINCV0JvQktCY0KDQkAor0JTQoNCQ0JPQmNCLINCY0JvQmNCI0JAKK9CU0KDQkNCT0JjQiyDQmNCb0JjQiNCQCivQlNCg0JDQk9CY0Isg0JjQm9CY0IjQkAor0JTQoNCQ0JPQmNCLINCI0JXQm9CV0J3QkAor0JTQoNCQ0JPQmNCLINCJ0KPQkdCY0KjQkAor0JTQoNCQ0JPQmNCLINCJ0KPQkdCY0KjQkAor0JTQoNCQ0JPQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9CU0KDQkNCT0JjQiyDQnNCY0JvQldCd0JrQngor0JTQoNCQ0JPQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CU0KDQkNCT0JjQiyDQnNCY0JvQmtCQCivQlNCg0JDQk9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CU0KDQkNCT0JjQiyDQndCQ0JTQkAor0JTQoNCQ0JPQmNCLINCd0JXQlNCV0InQmtCeCivQlNCg0JDQk9CY0Isg0J3QldCS0JXQndCa0JAKK9CU0KDQkNCT0JjQiyDQndCY0JrQntCb0JAKK9CU0KDQkNCT0JjQiyDQntCR0KDQkNCUCivQlNCg0JDQk9CY0Isg0J/QkNCj0JvQkAor0JTQoNCQ0JPQmNCLINCf0JDQktCb0JUKK9CU0KDQkNCT0JjQiyDQn9CV0KDQkAor0JTQoNCQ0JPQmNCLINCf0JXQotCQ0KAKK9CU0KDQkNCT0JjQiyDQn9CV0KLQkNCgCivQlNCg0JDQk9CY0Isg0KDQkNCd0JrQngor0JTQoNCQ0JPQmNCLINCh0JDQktCQCivQlNCg0JDQk9CY0Isg0KHQm9CQ0JLQmtCeCivQlNCg0JDQk9CY0Isg0KHQn9CQ0KHQntCI0JUKK9CU0KDQkNCT0JjQiyDQodCi0JXQktCQ0J0KK9CU0KDQkNCT0JjQiyDQodCi0JXQktCQ0J0KK9CU0KDQkNCT0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQlNCg0JDQk9CY0Isg0JLQldCg0JAKK9CU0KDQkNCT0JjQiyDQktCV0KHQndCQCivQlNCg0JDQk9CY0IvQldCS0JjQiyDQkdCe0JPQmNCm0JAKK9CU0KDQkNCT0JjQi9CV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CU0KDQkNCT0JjQi9CV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQoNCQ0JPQmNCL0JXQktCY0Isg0KDQkNCI0JjQptCQCivQlNCg0JDQk9CY0J0g0JbQkNCg0JrQngor0JTQoNCQ0JPQmNCdINCR0J7Qk9CU0JDQnQor0JTQoNCQ0JPQmNCdINCR0J7QoNCY0JLQntCICivQlNCg0JDQk9CY0J0g0JTQkNCd0JjQm9CeCivQlNCg0JDQk9CY0J0g0JTQldCh0JDQndCa0JAKK9CU0KDQkNCT0JjQnSDQlNCj0KjQmtCeCivQlNCg0JDQk9CY0J0g0JPQntCg0JTQkNCd0JAKK9CU0KDQkNCT0JjQnSDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JTQoNCQ0JPQmNCdINCI0J7QktCeINCU0JjQn9CbINCY0J3Qkwor0JTQoNCQ0JPQmNCdINCb0JDQl9CQ0KAKK9CU0KDQkNCT0JjQnSDQnNCQ0KDQmtCeCivQlNCg0JDQk9CY0J0g0JzQmNCe0JTQoNCQ0JMKK9CU0KDQkNCT0JjQnSDQnNCY0J7QlNCg0JDQkwor0JTQoNCQ0JPQmNCdINCd0JjQmtCe0JvQkAor0JTQoNCQ0JPQmNCdINCf0JXQotCg0JjQiNCQCivQlNCg0JDQk9CY0J0g0KDQkNCU0JjQktCe0IgKK9CU0KDQkNCT0JjQnSDQoNCY0KHQotCeCivQlNCg0JDQk9CY0J0g0KHQkNCo0JAKK9CU0KDQkNCT0JjQnSDQodCe0JrQmNCm0JAKK9CU0KDQkNCT0JjQnSDQodCi0JXQktCQ0J0KK9CU0KDQkNCT0JjQnSDQodCS0JXQotCY0KHQm9CQ0JIKK9CU0KDQkNCT0JjQnSDQktCQ0KHQkAor0JTQoNCQ0JPQmNCdINCS0J7QiNCY0KHQm9CQ0JIKK9CU0KDQkNCT0JjQnSDQl9Ce0KDQkNCdCivQlNCg0JDQk9CY0J3Qp9CY0Isg0JTQo9Co0JDQnQor0JTQoNCQ0JPQmNCd0KfQmNCLINCh0JvQkNCS0JrQngor0JTQoNCQ0JPQntCo0JXQkiDQlNCg0JDQk9CQ0J0KK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCW0JXQidCa0J4KK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQkdCe0KjQmtCeCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQk9Ce0IjQmtCeCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQpdCg0JjQodCi0JjQndCQCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0JTQoNCQ0JPQntCI0JXQktCY0Isg0JzQmNCb0JXQndCQCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JTQoNCQ0JPQntCI0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0JTQoNCQ0JPQntCI0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JTQoNCQ0JPQntCI0JXQktCY0Isg0KDQkNCU0JjQqNCQCivQlNCg0JDQk9Ce0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9CU0KDQkNCT0J7QiNCV0JLQmNCLINCX0JvQkNCi0JDQndCQCivQlNCg0JDQk9Ce0IjQm9Ce0JIg0JDQndCa0JjQptCQCivQlNCg0JDQk9Ce0IjQm9Ce0JIg0JHQntCo0JrQngor0JTQoNCQ0JPQntCI0JvQntCSINCU0KPQqNCQ0J0KK9CU0KDQkNCT0J7QiNCb0J7QkiDQlNCj0JHQoNCQ0JLQmtCQCivQlNCg0JDQk9Ce0IjQm9Ce0JIg0JPQkNCS0KDQkAor0JTQoNCQ0JPQntCI0JvQntCSINCb0JDQl9CQ0KAKK9CU0KDQkNCT0J7QiNCb0J7QkiDQnNCQ0KDQk9CY0KLQkAor0JTQoNCQ0JPQntCI0JvQntCSINCc0JjQm9Ce0KgKK9CU0KDQkNCT0J7QiNCb0J7QkiDQnNCY0JvQntCoCivQlNCg0JDQk9Ce0IjQm9Ce0JIg0JzQmNCg0J7QodCb0JDQkgor0JTQoNCQ0JPQntCI0JvQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9CU0KDQkNCT0J7QiNCb0J7QktCY0Isg0JTQo9Co0JrQngor0JTQoNCQ0JPQntCI0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQlNCg0JDQk9Ce0IjQm9Ce0JLQmNCLINCc0JDQoNCQCivQlNCg0JDQk9Ce0IjQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9CU0KDQkNCT0J7QiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQoNCQ0JPQntCI0JvQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CU0KDQkNCT0J7QidCV0JLQmNCLINCT0J7QiNCa0J4KK9CU0KDQkNCT0J7QidCV0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQlNCg0JDQk9Ce0InQldCS0JjQiyDQnNCY0KLQkNCgCivQlNCg0JDQk9Ce0InQldCS0JjQiyDQoNCQ0J3QmtCeCivQlNCg0JDQk9Ce0InQldCS0JjQiyDQodCV0JrQo9Cb0JAKK9CU0KDQkNCT0J7QidCV0JLQmNCLINCh0KLQntCI0JDQnQor0JTQoNCQ0JPQntCJ0JXQktCY0Isg0JLQm9CQ0JTQlQor0JTQoNCQ0JPQntCc0JjQoNCe0JLQmNCLINCC0J7QmtCQCivQlNCg0JDQk9Ce0JzQmNCg0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQlNCg0JDQk9Ce0JzQmNCg0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CU0KDQkNCT0J7QnNCY0KDQntCS0JjQiyDQmNCS0JDQnQor0JTQoNCQ0JPQntCc0JjQoNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JTQoNCQ0JPQntCc0JjQoNCe0JLQmNCLINCh0JDQktCQCivQlNCg0JDQk9Ce0JzQmNCg0J7QktCY0Isg0KLQntCU0J7QoAor0JTQoNCQ0JPQntCh0JDQktCQ0KYg0JDQndCT0JXQm9CY0J3QkAor0JTQoNCQ0JPQntCh0JDQktCQ0KYg0JjQm9CY0IjQkAor0JTQoNCQ0JPQntCh0JDQktCQ0KYg0JrQkNCi0JjQptCQCivQlNCg0JDQk9Ce0KHQkNCS0JDQpiDQnNCV0JvQkNCd0JjQiNCQCivQlNCg0JDQk9Ce0KHQkNCS0JDQpiDQnNCY0JvQkNCd0JrQngor0JTQoNCQ0JPQntCh0JDQktCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9CU0KDQkNCT0J7QodCQ0JLQkNCmINCd0JjQmtCe0JvQkAor0JTQoNCQ0JPQntCh0JDQktCQ0KYg0JfQo9CX0JDQndCQCivQlNCg0JDQk9Ce0KHQkNCS0InQldCS0JjQiyDQgtCj0KDQkAor0JTQoNCQ0JPQntCh0JDQktCJ0JXQktCY0Isg0InQmNCJ0JDQndCQCivQlNCg0JDQk9Ce0KHQkNCS0InQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CU0KDQkNCT0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQlNCg0JDQk9Ce0KHQkNCS0InQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9CU0KDQkNCT0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQldCS0JAg0JTQmNCf0Jsg0JjQndCTCivQlNCg0JDQk9Ce0KHQkNCS0InQldCS0JjQiyDQodCi0J7QiNCo0JAKK9CU0KDQkNCT0J7QodCQ0JLQidCV0JLQmNCLINCS0J7QiNCQCivQlNCg0JDQk9Ce0KHQm9CQ0JLQmNCLINCS0JjQlNCQ0JoKK9CU0KDQkNCT0J7QktCQ0KYg0KHQm9CQ0JLQmtCeCivQlNCg0JDQk9Ce0JLQmNCLINCn0JXQlNCeCivQlNCg0JDQk9Ce0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQlNCg0JDQk9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQoNCQ0JPQntCS0JjQiyDQk9Ce0IjQmtCeCivQlNCg0JDQk9Ce0JLQmNCLINCT0J7QoNCU0JDQndCQCivQlNCg0JDQk9Ce0JLQmNCLINCI0JDQodCc0JjQndCa0JAKK9CU0KDQkNCT0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9CU0KDQkNCT0J7QktCY0Isg0JzQmNCb0JDQnQor0JTQoNCQ0JPQntCS0JjQiyDQnNCY0JvQmNCLCivQlNCg0JDQk9Ce0JLQmNCLINCc0JjQm9CY0KbQkAor0JTQoNCQ0JPQntCS0JjQiyDQnNCY0KDQkAor0JTQoNCQ0JPQntCS0JjQiyDQoNCQ0J3QmtCeCivQlNCg0JDQk9Ce0JLQmNCLINCh0J3QmNCI0JXQltCQ0J3QkAor0JTQoNCQ0JPQntCS0JjQiyDQodCi0JDQnNCV0J3QmtCQCivQlNCg0JDQk9Ce0JLQmNCLINCh0JLQldCi0JjQnNCY0KAKK9CU0KDQkNCT0J7QktCY0Isg0KHQktCV0KLQntCc0JjQoAor0JTQoNCQ0JPQntCS0JjQiyDQktCV0KDQkAor0JTQoNCQ0JPQntCS0JjQiyDQktCY0JTQkNCaCivQlNCg0JDQk9Ce0JLQmNCLINCS0JvQkNCU0JAKK9CU0KDQkNCT0J7QktCY0Isg0JfQntCg0JDQnQor0JTQoNCQ0JPQo9Cc0JjQm9CeINCc0JjQm9Ce0JzQmNCgCivQlNCg0JDQk9Cj0JzQmNCb0J4g0JzQmNCb0KPQotCY0J0KK9CU0KDQkNCT0KPQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CU0KDQkNCT0KPQndCe0JLQmNCLINCf0JXQoNCeCivQlNCg0JDQk9Cj0KLQmNCd0J7QktCY0Isg0JbQmNCS0JrQkAor0JTQoNCQ0JPQo9Ci0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CU0KDQkNCT0KPQotCY0J3QntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JTQoNCQ0JPQo9Ci0JjQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CU0KDQkNClINCI0JXQm9CY0KHQkNCS0JXQotCQCivQlNCg0JDQpSDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JTQoNCQ0KXQntCi0KPQodCa0Jgg0JHQntCg0JjQodCb0JDQkgor0JTQoNCQ0KXQntCi0KPQodCa0Jgg0J/QldCi0JDQoAor0JTQoNCQ0JrQmNCLINCU0KDQkNCT0JjQqNCQCivQlNCg0JDQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnSDQlNCgCivQlNCg0JDQmtCj0Jsg0JLQkNCh0J4KK9CU0KDQkNCa0KPQm9CQINCU0KPQqNCQ0J0KK9CU0KDQkNCa0KPQm9CQINCg0JDQlNCc0JjQm9CQCivQlNCg0JDQmtCj0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCg0JDQmtCj0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JTQoNCQ0JrQo9Cb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgINCU0KAg0KHQotCe0JzQkNCi0J7Qm9Ce0JMKK9CU0KDQkNCa0KPQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JTQoNCQ0JrQo9Cb0JjQiyDQldCg0JbQldCR0JXQogor0JTQoNCQ0JrQo9Cb0JjQiyDQiNCV0JvQldCd0JAKK9CU0KDQkNCa0KPQm9CY0Isg0IjQntCS0JDQnQor0JTQoNCQ0JrQo9Cb0JjQiyDQmtCe0KHQotCQCivQlNCg0JDQmtCj0JvQmNCLINCb0JDQl9CQ0KAKK9CU0KDQkNCa0KPQm9CY0Isg0InQo9CR0JjQptCQCivQlNCg0JDQmtCj0JvQmNCLINCc0JDQoNCQCivQlNCg0JDQmtCj0JvQmNCLINCc0JDQoNCQCivQlNCg0JDQmtCj0JvQmNCLINCc0JjQm9CQ0J0KK9CU0KDQkNCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0JTQoNCQ0JrQo9Cb0JjQiyDQnNCY0JvQkNCdCivQlNCg0JDQmtCj0JvQmNCLINCc0JjQm9CY0JLQntCICivQlNCg0JDQmtCj0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CU0KDQkNCa0KPQm9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9CU0KDQkNCa0KPQm9CY0Isg0KHQnNCY0InQkAor0JTQoNCQ0JrQo9Cb0JjQiyDQodCe0KTQmNCI0JAKK9CU0KDQkNCa0KPQm9CY0Isg0KHQotCV0JLQkNCdCivQlNCg0JDQmtCj0JvQmNCLINCh0KLQntCI0JDQndCa0JAKK9CU0KDQkNCa0KPQm9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQlNCg0JDQmtCj0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CU0KDQkNCa0KPQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JTQoNCQ0JrQo9Cb0JjQiyDQotCe0JTQntCgCivQlNCg0JDQmtCj0JvQmNCLINCX0J7QoNCQ0J0KK9CU0KDQkNCf0KjQmNCdINCn0JDQktCQCivQlNCg0JDQn9Co0JjQnSDQgtCe0KDQgtCVCivQlNCg0JDQn9Co0JjQnSDQlNCQ0J3QmNCm0JAKK9CU0KDQkNCf0KjQmNCdINCb0JXQn9Ce0KHQkNCS0JAKK9CU0KDQkNCf0KjQmNCdINCc0JjQm9CQ0J0KK9CU0KDQkNCf0KjQmNCdINCc0JjQm9CV0J3QmtCeCivQlNCg0JDQn9Co0JjQnSDQn9CV0KLQkNCgCivQlNCg0JDQn9Co0JjQnSDQn9Cg0JXQlNCg0JDQkwor0JTQoNCQ0J/QqNCY0J0g0KHQkNCS0JAKK9CU0KDQkNCf0KjQmNCdINCX0JDQk9Ce0KDQmtCQCivQlNCg0JDQn9Co0JjQnSDQl9Ce0KDQkNCdCivQlNCg0JDQn9CY0Isg0JHQntCT0JTQkNCdCivQlNCg0JDQn9CY0Isg0KHQldCd0JjQotCQCivQlNCg0JDQn9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JTQoNCQ0J/QmNCLINCS0JXQm9CY0JzQmNCgCivQlNCg0JDQn9Ce0Kgg0KHQotCV0JLQkNCdCivQlNCg0JXQqNCa0JDQmCDQqNCQ0J3QlNCe0KAKK9CU0KDQldCm0KPQnSDQktCV0InQmtCeCivQlNCg0JXQpdCV0KAg0JvQkNCI0J7QqAor0JTQoNCV0KXQldCgINCd0JjQmtCe0JvQkAor0JTQoNCV0KXQldCgINCe0KLQngor0JTQoNCV0KXQldCgINCS0JjQm9CY0Jwg0JTQmNCf0Jsg0JjQndCTCivQlNCg0JXQmtCe0JLQmNCLINCC0KPQoNCeCivQlNCg0JXQmtCe0JLQmNCLINCa0JDQotCY0KbQkAor0JTQoNCV0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQlNCg0JXQnNCf0JXQotCY0Isg0JTQkNCg0JrQngor0JTQoNCV0JzQn9CV0KLQmNCLINCf0JXQotCQ0KAKK9CU0KDQldCc0J/QldCi0JjQiyDQl9CU0JXQndCa0J4KK9CU0KDQldCK0JDQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JTQoNCV0J3QmtCe0JLQmNCLINCb0JDQodCb0J4KK9CU0KDQldCd0J7QktCn0JDQndCY0J0g0InQo9CR0J7QnNCY0KAKK9CU0KDQldCd0J7QktCQ0KYg0KDQkNCd0JrQngor0JTQoNCV0J3QntCS0JXQpiDQptCS0JXQotCeCivQlNCg0JXQotCQ0KAg0JzQmNCg0JrQngor0JTQoNCV0JfQk9CQINCI0JDQmtCe0JIKK9CU0KDQldCX0JPQkCDQotCe0JTQntCgCivQlNCg0JXQl9CT0JjQiyDQlNCQ0KDQkAor0JTQoNCV0JfQk9CY0Isg0JjQm9CY0IjQkAor0JTQoNCV0JfQk9CY0Isg0JzQkNCg0JjQiNCQCivQlNCg0JXQl9CT0JjQiyDQnNCY0JvQkNCdCivQlNCg0JXQl9CT0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JTQoNCV0JfQk9CY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JTQoNCV0JfQk9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JTQoNCY0JPQo9Cb0J7QkiDQodCf0JDQodCe0IjQlQor0JTQoNCY0J3Qp9CV0JLQmNCLINCW0JjQktCe0KLQkAor0JTQoNCY0J3Qp9CV0JLQmNCLINCU0JXQodCQ0J3QmtCQINCU0KAKK9CU0KDQmNCd0KfQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9CU0KDQmNCd0KfQmNCLINCc0JjQm9Ce0IjQmtCeCivQlNCg0JjQndCn0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JTQoNCY0J3QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCg0JjQndCY0Isg0JHQntCg0JjQodCb0JDQkgor0JTQoNCY0J3QmNCLINCI0JDQk9Ce0JTQkAor0JTQoNCY0J3QmNCLINCc0JjQm9CQ0J0KK9CU0KDQmNCd0JjQiyDQnNCY0JvQldCd0JrQngor0JTQoNCY0J3QmNCLINCc0JjQm9CV0KLQkAor0JTQoNCY0J3QmNCLINCc0JjQm9Ce0JLQkNCdCivQlNCg0JjQndCY0Isg0JzQmNCg0JrQngor0JTQoNCY0J3QmNCLINCd0JXQlNCV0InQmtCeCivQlNCg0JjQndCY0Isg0J/QldCg0J4KK9CU0KDQmNCd0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JTQoNCY0J3QmNCLINCh0JDQktCeCivQlNCg0JjQndCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CU0KDQmNCd0JjQiyDQodCi0JXQktCeCivQlNCg0JjQndCY0Isg0KLQntCc0J4KK9CU0KDQmNCd0JjQiyDQl9CU0KDQkNCS0JrQngor0JTQoNCY0IrQntCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCg0JjQitCe0JLQodCa0Jgg0JLQntCI0JjQodCb0JDQkgor0JTQoNCaINCR0JDQoNCR0JDQoNCQCivQlNCg0JrQo9Co0JjQiyDQmNCb0JjQiNCQCivQlNCg0InQkNCn0JAg0ILQntCg0ILQlQor0JTQoNCJ0JDQp9CQINCC0J7QoNCC0JUKK9CU0KDQidCQ0KfQkCDQkdCg0JDQndCa0JAKK9CU0KDQidCQ0KfQkCDQlNCg0JDQk9CQ0J0KK9CU0KDQidCQ0KfQkCDQlNCj0KjQkNCdCivQlNCg0InQkNCn0JAg0JzQkNCg0JrQngor0JTQoNCJ0JDQp9CQINCc0JjQi9CQCivQlNCg0InQkNCn0JAg0JzQmNCb0JDQndCa0J4KK9CU0KDQidCQ0KfQkCDQnNCY0JvQntCg0JDQlAor0JTQoNCJ0JDQp9CQINCc0JjQoNCa0J4KK9CU0KDQidCQ0KfQkCDQndCV0ILQngor0JTQoNCJ0JDQp9CQINCd0JXQndCQ0JQKK9CU0KDQidCQ0KfQkCDQoNCQ0JTQntCS0JDQnQor0JTQoNCJ0JDQp9CQINCg0JDQlNCe0JLQkNCdCivQlNCg0InQkNCn0JAg0KHQotCe0IjQkAor0JTQoNCJ0JDQp9CQINCX0JTQoNCQ0JLQmtCQCivQlNCg0InQkNCn0JjQiyDQmtCQ0KLQkAor0JTQoNCJ0JXQktCY0Isg0ILQo9Cg0J4KK9CU0KDQidCV0JLQmNCLINCQ0J3QmNCm0JAKK9CU0KDQidCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQlNCg0InQldCS0JjQiyDQnNCY0JvQldCi0JAKK9CU0KDQidCV0JLQmNCLINCc0JjQidCQCivQlNCg0InQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JTQoNCJ0JjQiyDQnNCY0JvQkNCU0JjQnQor0JTQoNCJ0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JTQoNCc0JDQndCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0JTQoNCc0JDQndCQ0KYg0KHQotCQ0J3QmtCeCivQlNCg0JzQkNCd0J7QktCY0Isg0JzQmNCb0JXQktCQCivQlNCg0J3QlNCQ0KDQldCS0JjQiyDQkdCe0KDQkAor0JTQoNCd0JTQkNCg0JXQktCY0Isg0JHQntCg0JAKK9CU0KDQndCU0JDQoNCV0JLQmNCLINCa0JDQotCY0KbQkAor0JTQoNCd0JTQkNCg0KHQmtCYINCc0JjQm9CQ0J0KK9CU0KDQndCU0JDQoNCh0JrQmCDQktCV0JvQmNCc0JjQoAor0JTQoNCe0JHQkNCmINCW0JDQoNCa0J4KK9CU0KDQntCR0JDQpiDQltCQ0KDQmtCeCivQlNCg0J7QkdCQ0KYg0ILQntCg0ILQlQor0JTQoNCe0JHQkNCmINCQ0J3QkAor0JTQoNCe0JHQkNCmINCR0KDQkNCd0JjQodCb0JDQkgor0JTQoNCe0JHQkNCmINCJ0JjQidCQ0J3QkAor0JTQoNCe0JHQkNCmINCc0JjQm9CQ0J0KK9CU0KDQntCR0JDQpiDQnNCY0JvQkNCdCivQlNCg0J7QkdCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9CU0KDQntCR0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQlNCg0J7QkdCQ0KYg0J3QldCd0JDQlAor0JTQoNCe0JHQkNCmINCd0JjQmtCe0JvQkAor0JTQoNCe0JHQkNCmINCf0KDQldCU0KDQkNCTCivQlNCg0J7QkdCQ0KYg0KDQkNCU0J7QiNCa0JAKK9CU0KDQntCR0JDQpiDQoNCQ0JTQntCI0JrQkAor0JTQoNCe0JHQkNCmINCh0JvQkNCS0JrQngor0JTQoNCe0JHQkNCmINCS0JvQkNCU0J4KK9CU0KDQntCR0JDQpiDQktCj0JrQkNCo0JjQnSDQndCe0JLQmNCd0JDQoAor0JTQoNCe0JHQkNCmINCX0JTQoNCQ0JLQmtCeCivQlNCg0J7QkdCY0J3QkCDQiNCj0JvQmNCI0JDQndCQCivQlNCg0J7QkdCY0J3QkCDQidCj0JHQmNCm0JAKK9CU0KDQntCR0JjQndCQINCc0JjQpdCQ0IkKK9CU0KDQntCR0JjQitCQ0Jog0KDQo9CW0JAKK9CU0KDQntCR0IrQkNCaINCV0JLQmNCm0JAKK9CU0KDQntCR0IrQkNCaINCJ0JjQidCQ0J3QkAor0JTQoNCe0JHQitCQ0Jog0JzQmNCb0JjQktCe0IjQlQor0JTQoNCe0JHQitCQ0Jog0JzQmNCe0JTQoNCQ0JMKK9CU0KDQntCR0IrQkNCaINCc0J7QnNCn0JjQm9CeCivQlNCg0J7QkdCK0JDQmiDQoNCQ0JTQmNCo0JAKK9CU0KDQntCR0IrQkNCaINCg0JDQlNCe0IjQmNCm0JAKK9CU0KDQntCR0IrQkNCaINCg0JDQlNCe0IjQmNCm0JAKK9CU0KDQntCR0IrQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JTQoNCe0JHQitCQ0JrQntCS0JjQiyDQk9CS0J7Ql9CU0JXQnQor0JTQoNCe0JHQitCQ0JrQntCS0JjQiyDQoNCY0KHQotCY0JLQntCI0JUKK9CU0KDQntCR0IrQmNCaINCI0J7QodCY0J8KK9CU0KDQntCR0IrQmNCaINCI0KPQlNCY0KIKK9CU0KDQntCK0JDQmiDQltCY0JLQkNCd0JAKK9CU0KDQntCK0JDQmiDQltCY0JLQmtCeCivQlNCg0J7QitCQ0Jog0ILQntCg0ILQlQor0JTQoNCe0IrQkNCaINCU0JDQoNCY0J3QmtCQCivQlNCg0J7QitCQ0Jog0JzQmNCb0JDQnQor0JTQoNCe0IrQkNCaINCc0JjQoNCI0JDQndCQCivQlNCg0J7QitCQ0Jog0J7Qm9CT0JAKK9CU0KDQntCK0JDQmiDQoNCQ0KHQotCa0J4KK9CU0KDQntCK0JDQmiDQodCQ0JLQmNCd0JrQkAor0JTQoNCe0IrQkNCaINCh0KLQldCS0JDQnQor0JTQoNCe0J/QmtCQINCQ0KDQn9CQ0JQKK9CU0KDQntCf0JrQkCDQiNCV0JvQldCd0JAKK9CU0KDQntCf0JrQkCDQndCQ0KLQkNCo0JAKK9CU0KDQntCf0JrQkCDQodCi0JXQktCQ0J0KK9CU0KDQntCf0J4g0JzQmNCb0JrQkAor0JTQoNCe0J/QniDQktCQ0KHQkAor0JTQoNCe0J/QniDQl9Ce0KDQkNCdCivQlNCg0J7Ql9CU0JjQmiDQmNCb0J7QndCQCivQlNCg0J7Ql9CU0JjQmiDQnNCQ0KDQmNCI0JAKK9CU0KDQo9CW0JXQotCY0Isg0JbQmNCa0JAKK9CU0KDQo9CT0J7QktCY0Isg0KDQo9CW0JjQptCQCivQlNCg0KPQk9Ce0JLQmNCLINCg0KPQltCY0KbQkAor0JTQoNCS0JXQndCP0JjQiNCQINCg0JDQlNCe0JLQkNCdCivQlNCg0JLQldCd0I/QmNCI0JAg0KHQm9CQ0JLQmtCeCivQlNCg0JLQldCK0JDQmiDQktCV0KDQmNCm0JAKK9CU0KPQp9CV0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CU0KPQp9CY0Isg0JzQmNCb0JDQnQor0JTQo9Cn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCj0KjQkNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9CU0KPQqNCQ0J3QmNCLINCb0JDQl9CQ0KAKK9CU0KPQqNCQ0J3QmNCLINCJ0KPQkdCY0KbQkAor0JTQo9Co0JDQndCY0Isg0J3QkNCU0JAKK9CU0KPQqNCQ0J3QmNCLINCd0JXQndCQ0JQKK9CU0KPQqNCQ0J3QntCS0JjQiyDQodCi0JDQndCe0IjQlQor0JTQo9Co0JDQndCe0JLQmNCLINCX0JLQldCX0JTQkNCd0JAKK9CU0KPQqNCV0Jog0JfQm9CQ0KLQmtCeINCU0JjQn9CbINCe0JXQpgor0JTQo9Co0JjQiyDQkdCg0JDQndCa0J4KK9CU0KPQqNCY0Isg0JfQntCg0JDQnQor0JTQo9CL0JDQmiDQkNCd0JTQoNCY0IjQkAor0JTQo9CL0JDQmiDQkNCg0JDQndCa0JAKK9CU0KPQi9CQ0Jog0JHQkNCg0JHQkNCg0JAKK9CU0KPQi9CQ0Jog0JzQmNCl0JDQiNCb0J4KK9CU0KPQi9CQ0Jog0KLQntCc0JAKK9CU0KPQgtCQ0Jog0JTQoNCQ0JPQo9Ci0JjQnQor0JTQo9CC0JjQmiDQpNCg0JDQitCQCivQlNCj0JHQkNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CU0KPQkdCQ0JjQiyDQnNCY0JvQkNCdCivQlNCj0JHQkNCY0Isg0JzQmNCg0JrQngor0JTQo9CR0JDQiNCY0Isg0JbQkNCg0JrQngor0JTQo9CR0JDQiNCY0Isg0ILQo9Cg0JAKK9CU0KPQkdCQ0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQlNCj0JHQkNCI0JjQiyDQkdCY0InQkNCd0JAKK9CU0KPQkdCQ0IjQmNCLINCU0KDQkNCT0JDQnQor0JTQo9CR0JDQiNCY0Isg0JzQmNCb0JjQptCQCivQlNCj0JHQkNCI0JjQiyDQnNCY0JvQntCoCivQlNCj0JHQkNCI0JjQiyDQnNCY0KDQmtCeCivQlNCj0JHQkNCI0JjQiyDQktCY0JTQkAor0JTQo9CR0InQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCj0JHQidCV0JLQmNCLINCh0KLQntCI0JDQnQor0JTQo9CR0InQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQlNCj0JHQidCV0JLQmNCLINCX0JvQkNCi0JAKK9CU0KPQkdCK0JDQmtCe0JLQmNCLINCc0JDQoNCi0JAKK9CU0KPQkdCe0JLQodCa0JAg0JzQmNCb0J7QotCQCivQlNCj0JHQntCS0KHQmtCYINCI0JDQndCa0J4KK9CU0KPQkdCe0JLQodCa0Jgg0JrQkNCi0JjQptCQCivQlNCj0JHQoNCQ0JLQkNCmINCU0KPQqNCQ0J0KK9CU0KPQkdCg0J7QiNCQINCU0JDQndCY0KbQkAor0JTQo9CR0KDQntCI0JAg0KHQm9Ce0JHQntCU0JDQnQor0JTQo9Cm0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9CU0KPQptCY0Isg0JzQmNCb0JDQnQor0JTQo9CU0JAg0J/QkNCS0JvQlQor0JTQo9CU0JDQqCDQgtCj0KDQkAor0JTQo9CU0JDQqCDQgtCj0KDQkAor0JTQo9CU0JDQqCDQgtCj0KDQkAor0JTQo9CU0JDQqCDQkNCd0JAKK9CU0KPQlNCQ0Kgg0JDQndCi0JDQmwor0JTQo9CU0JDQqCDQkNCg0J/QkNCUCivQlNCj0JTQkNCoINCQ0KDQn9CQ0JQKK9CU0KPQlNCQ0Kgg0JHQntCg0JjQoQor0JTQo9CU0JDQqCDQpdCV0JvQldCd0JAKK9CU0KPQlNCQ0Kgg0IjQkNCd0J7QqAor0JTQo9CU0JDQqCDQiNCj0JvQmNCI0JDQnQor0JTQo9CU0JDQqCDQm9CQ0JfQkNCgCivQlNCj0JTQkNCoINCc0JDQoNCY0J3QmtCeCivQlNCj0JTQkNCoINCc0JjQpdCQ0IkKK9CU0KPQlNCQ0Kgg0J/QmNCg0J7QqNCa0JAKK9CU0KPQlNCQ0Kgg0KDQntCc0JDQnQor0JTQo9CU0JDQqCDQodCb0JDQktCe0JzQmNCgCivQlNCj0JTQkNCaINCI0JDQoNCe0KHQm9CQ0JIKK9CU0KPQlNCQ0Jog0JzQkNCg0JjQiNCQCivQlNCj0JTQkNCaINCh0KLQldCS0JDQnQor0JTQo9CU0JDQnSDQnNCY0JvQmNCS0J7QiAor0JTQo9CU0JDQoCDQndCY0JrQntCb0JAKK9CU0KPQlNCQ0KDQmNCdINCW0JDQoNCa0J4KK9CU0KPQlNCQ0KDQmNCdINCU0KDQkNCT0JDQnQor0JTQo9CU0JDQoNCY0J0g0KHQkNCS0JAKK9CU0KPQlNCQ0KDQmNCdINCh0KLQldCS0JDQnQor0JTQo9CU0JDQoNCY0J0g0KHQotCV0JLQkNCdCivQlNCj0JTQkNCg0JjQnSDQktCV0KHQldCb0JjQnQor0JTQo9CU0JDQoNCY0J0g0JfQntCg0JDQnQor0JTQo9CU0JDQoNCY0J0g0JfQntCg0JDQnQor0JTQo9CU0JjQiyDQkNCd0JjQptCQCivQlNCj0JTQmNCLINCa0J7QodCi0JAKK9CU0KPQlNCY0Isg0JrQntCh0KLQkAor0JTQo9CU0JjQiyDQnNCQ0KLQlQor0JTQo9CU0JjQiyDQnNCY0JvQkAor0JTQo9CU0JjQiyDQnNCY0JvQlQor0JTQo9CU0JjQiyDQnNCY0JvQntCoCivQlNCj0JTQmNCLINCc0JjQm9Ce0KgKK9CU0KPQlNCY0Isg0J3QkNCU0JAKK9CU0KPQlNCY0Isg0KHQktCV0KLQntCX0JDQoAor0JTQo9CU0JjQiyDQktCQ0KHQkAor0JTQo9CU0JjQiyDQktCQ0KHQkAor0JTQo9CU0JjQiyDQktCV0KDQmNCm0JAKK9CU0KPQlNCY0Isg0JfQntCg0JDQnQor0JTQo9CU0J7QiNCV0JLQmNCLINCd0JXQj9CQ0JQKK9CU0KPQlNCe0Jog0JTQkNCd0JjQldCbINCU0KAKK9CU0KPQlNCe0Jog0IjQkNCd0JrQngor0JTQo9CU0J7QmiDQn9CQ0JLQldCbCivQlNCj0JTQo9Ca0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0KPQlNCj0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCj0JTQo9Ca0J7QktCY0Isg0KHQotCV0JLQkNCdCivQlNCj0JTQktCQ0KDQodCa0Jgg0JHQntCW0JjQlNCQ0KAKK9CU0KPQlNCS0JDQoNCh0JrQmCDQlNCg0JDQk9Ce0InQo9CRCivQlNCj0JTQktCQ0KDQodCa0Jgg0JjQktCQ0J0KK9CU0KPQlNCS0JDQoNCh0JrQmCDQn9CQ0IjQkAor0JTQo9CU0JLQkNCg0KHQmtCYINCS0JXQm9CY0J3QmtCQCivQlNCj0JPQkNCI0JvQmNCLINCQ0J3QgtCV0JvQmtCQCivQlNCj0JPQkNCI0JvQmNCLINCQ0KDQiNCQ0J3QkAor0JTQo9CT0JDQiNCb0JjQiyDQnNCY0JvQntCoCivQlNCj0JPQkNCI0JvQmNCLINCg0JDQlNCe0JLQkNCdCivQlNCj0JPQkNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CU0KPQk9CQ0J3Qj9CY0IjQkCDQkdCg0JDQndCa0J4KK9CU0KPQk9CQ0J3Qj9CY0IjQkCDQlNCg0JDQk9Ce0JzQmNCgCivQlNCj0JPQkNCd0I/QmNCI0JAg0JTQo9Co0JDQnQor0JTQo9CT0JDQndCP0JjQiNCQINCd0JXQlNCV0InQmtCeCivQlNCj0JPQmNCdINCh0KLQntCI0JDQnQor0JTQo9CT0J7QqNCY0IjQkCDQltCY0JLQmtCeCivQlNCj0JPQntCo0JjQiNCQLdCc0JDQmtCh0JjQnNCe0JLQmNCLINCd0JDQlNCQCivQlNCj0JPQntCK0JjQiyDQnNCY0JvQlQor0JTQo9CT0J7QitCY0Isg0JzQmNCb0KPQotCY0J0KK9CU0KPQk9Ce0IrQmNCLINCd0JjQmtCe0JvQkAor0JTQo9CT0J7QitCY0Isg0KHQktCV0KLQntCc0JjQoAor0JTQo9ClINCa0JDQotCQ0KDQmNCd0JAKK9CU0KPQpdCQ0KfQldCaINCS0JvQkNCU0J4KK9CU0KPQmNCLINCI0J7QodCY0J8KK9CU0KPQiNCQ0JrQntCS0JjQiyDQnNCY0JvQldCd0JAKK9CU0KPQiNCQ0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CU0KPQiNCQ0JrQntCS0JjQiyDQndCe0JLQkAor0JTQo9CI0JDQmtCe0JLQmNCLINCS0JXQidCa0J4KK9CU0KPQiNCV0JLQodCa0Jgg0JLQkNCd0JPQldCbINCU0KAKK9CU0KPQiNCY0Isg0ILQntCg0ILQlQor0JTQo9CI0JjQiyDQmNCS0JDQnQor0JTQo9CI0JjQiyDQmNCS0JjQptCQCivQlNCj0IjQmNCLINCJ0KPQkdCY0KbQkAor0JTQo9CI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQlNCj0IjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CU0KPQiNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JTQo9CI0JjQiyDQodCc0JjQidCQCivQlNCj0IjQmNCLINCh0KLQntCI0JDQndCa0JAKK9CU0KPQiNCY0J0g0JbQmNCS0JAKK9CU0KPQiNCY0J0g0JbQmNCS0JrQngor0JTQo9CI0JjQnSDQlNCQ0J3QmNCm0JAKK9CU0KPQiNCY0J0g0JvQo9Ca0JAKK9CU0KPQiNCY0J0g0KHQmNCc0JXQntCdCivQlNCj0IjQmNCdINCh0JLQldCi0JjQodCb0JDQkgor0JTQo9CI0JjQnSDQotCV0J7QlNCe0KAKK9CU0KPQiNCY0J0g0JLQmNCi0J7QnNCY0KAKK9CU0KPQiNCa0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CU0KPQiNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQlNCj0IjQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CU0KPQiNCa0J7QktCY0Isg0KLQldCe0JTQntCgCivQlNCj0IjQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CU0KPQiNCb0J7QktCY0Isg0JHQntCg0JAKK9CU0KPQiNCc0JjQiyDQkNCd0KLQlQor0JTQo9CI0JzQntCS0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9CU0KPQiNCc0J7QktCY0Isg0JXQktCQCivQlNCj0IjQnNCe0JLQmNCLINCk0JXQoNCV0J3Qpgor0JTQo9CI0JzQntCS0JjQiyDQiNCe0KHQmNCfCivQlNCj0IjQntCS0JjQiyDQmNCb0JjQiNCQCivQlNCj0IjQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JTQo9CI0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CU0KPQmtCQINCc0JjQoNCe0KHQm9CQ0JIKK9CU0KPQmtCQ0Jgg0JDQndCU0KDQkNCoCivQlNCj0JrQkNCdINCd0JDQotCQ0KjQkAor0JTQo9Ca0JDQoNCY0Isg0JLQmNCU0JAKK9CU0KPQmtCV0KEg0KTQntCh0JrQkAor0JTQo9Ca0JjQiyDQgtCj0KDQngor0JTQo9Ca0JjQiyDQkdCe0KDQkAor0JTQo9Ca0JjQiyDQlNCQ0J3QmNCb0J4KK9CU0KPQmtCY0Isg0JTQoNCQ0JPQkNCdCivQlNCj0JrQmNCLINCU0KDQkNCT0JjQptCQCivQlNCj0JrQmNCLINCU0KPQqNCQ0J0KK9CU0KPQmtCY0Isg0JjQktCQ0J3QmtCQCivQlNCj0JrQmNCLINCI0JXQm9CV0J3QkAor0JTQo9Ca0JjQiyDQiNCe0JLQkNCdCivQlNCj0JrQmNCLINCI0J7QktCQ0J0KK9CU0KPQmtCY0Isg0JrQntCh0JAKK9CU0KPQmtCY0Isg0InQo9CR0JjQptCQCivQlNCj0JrQmNCLINCc0JjQm9CQ0J0KK9CU0KPQmtCY0Isg0JzQmNCb0JDQnQor0JTQo9Ca0JjQiyDQnNCY0JvQkNCdCivQlNCj0JrQmNCLINCc0JjQm9CY0KbQkAor0JTQo9Ca0JjQiyDQnNCY0JvQmNCm0JAKK9CU0KPQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9CU0KPQmtCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CU0KPQmtCY0Isg0KDQkNCU0JUKK9CU0KPQmtCY0Isg0KDQkNCU0JUKK9CU0KPQmtCY0Isg0KDQkNCI0JrQngor0JTQo9Ca0JjQiyDQodCb0JDQktCY0KbQkAor0JTQo9Ca0JjQiyDQodCe0KTQmNCI0JAKK9CU0KPQmtCY0Isg0KHQotCV0JLQniDQlNCY0J/QmyDQmNCd0JMKK9CU0KPQmtCY0Isg0JLQo9Ca0JDQqNCY0J0g0JTQoAor0JTQo9Ca0JjQiyDQl9Ce0KDQkNCdCivQlNCj0JrQntCS0JAg0JvQmNCb0JgKK9CU0KPQmtCe0JLQodCa0Jgg0KHQktCV0KLQmNCh0JvQkNCSCivQlNCj0JvQldCI0JDQnSDQltCY0JLQkNCU0JjQndCa0JAKK9CU0KPQm9CV0IjQkNCdINCh0JvQkNCS0JrQngor0JTQo9Cb0JjQiyDQqNCQ0J3QlNCe0KAKK9CU0KPQm9CY0Isg0JDQndCa0JAKK9CU0KPQm9CY0Isg0JjQktCQ0J0KK9CU0KPQm9CY0Isg0IjQntCh0JjQnwor0JTQo9Cb0JjQiyDQiNCe0KHQmNCfCivQlNCj0JvQmNCLINCJ0KPQlNCV0JLQmNCiCivQlNCj0JvQmNCLINCc0JDQk9CU0JAKK9CU0KPQm9CY0Isg0JzQmNCl0JDQiNCb0J4KK9CU0KPQm9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JTQo9Cb0JjQiyDQndCY0JrQntCb0JAKK9CU0KPQm9Ce0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQlNCj0JvQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CU0KPQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JTQo9Cb0J7QktCY0Isg0JTQo9Co0JDQnQor0JTQo9Cb0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CU0KPQm9Ce0JLQmNCLINCc0JjQm9Cj0J0KK9CU0KPQm9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQlNCj0JvQntCS0JjQiyDQoNCQ0J3QmtCeCivQlNCj0JvQntCS0JjQiyDQoNCQ0KLQmtCQCivQlNCj0JvQntCS0JjQiyDQl9Ce0KDQkNCdCivQlNCj0JzQkCDQnNCY0JvQntCg0JDQlAor0JTQo9Cc0JDQndCn0JjQiyDQodCb0JDQktCY0KbQkAor0JTQo9Cc0JDQndCn0JjQiyDQl9CU0KDQkNCS0JrQngor0JTQo9Cc0JDQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JTQo9Cc0JXQlNCQ0Kgg0KHQn9CQ0KHQntCI0JUKK9CU0KPQnNCV0JTQkNCoINCS0JDQodCY0JvQmNCI0JUKK9CU0KPQnNCV0J3Qp9CY0Isg0JjQktCQ0J0KK9CU0KPQnNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CU0KPQnNCY0Isg0KHQotCV0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JTQo9Cc0JjQotCg0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQo9Cc0JjQotCg0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9CU0KPQnNCY0KLQoNCe0JIg0JvQo9Ca0JAKK9CU0KPQnNCY0KLQoNCe0JIg0JzQkNCg0JjQiNCQCivQlNCj0JzQmNCi0KDQntCSINCc0JjQntCU0KDQkNCTCivQlNCj0JzQmNCi0KDQntCSINCd0JXQlNCV0InQmtCeCivQlNCj0JzQmNCi0KDQntCSINCh0JvQkNCS0JrQngor0JTQo9Cc0JjQotCg0J7QkiDQktCV0KDQmNCm0JAKK9CU0KPQnNCY0KLQoNCe0JIg0JLQntCI0JjQnQor0JTQo9Cc0J3QmNCLINCo0JDQoNCY0JrQkAor0JTQo9Cc0J3QmNCLINCc0JjQm9CQ0J0KK9CU0KPQnNCe0J3QmNCLINCR0KDQkNCd0JrQngor0JTQo9Cc0J7QndCY0Isg0J/QldCi0JDQoAor0JTQo9Cd0ILQldCgINCg0JDQlNCVCivQlNCj0J3QgtCV0KAg0KDQkNCU0JUKK9CU0KPQndCC0JXQoNCY0J0g0ILQntCg0ILQlQor0JTQo9Cd0ILQldCg0J7QkiDQmtCe0KHQkNCd0JAKK9CU0KPQndCC0JXQoNCe0JIg0J3QkNCU0JAKK9CU0KPQndCC0JXQoNCe0JIg0J/QmNCg0J7QqNCa0JAKK9CU0KPQndCC0JXQoNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQlNCj0J3QgtCV0KDQodCa0Jgg0JbQmNCS0JDQnQor0JTQo9Cd0ILQldCg0KHQmtCYINCC0J7QoNCC0JUKK9CU0KPQndCC0JXQoNCh0JrQmCDQgtCe0KDQgtCVCivQlNCj0J3QgtCV0KDQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CU0KPQndCC0JXQoNCh0JrQmCDQkNCd0JAKK9CU0KPQndCC0JXQoNCh0JrQmCDQptCS0JXQotCQ0J3QkAor0JTQo9Cd0ILQldCg0KHQmtCYINCU0KDQkNCT0JDQnQor0JTQo9Cd0ILQldCg0KHQmtCYINCY0JLQkNCd0JrQkAor0JTQo9Cd0ILQldCg0KHQmtCYINCY0JLQkNCdCivQlNCj0J3QgtCV0KDQodCa0Jgg0IjQntCS0JDQnQor0JTQo9Cd0ILQldCg0KHQmtCYINCc0JDQoNCY0IjQkAor0JTQo9Cd0ILQldCg0KHQmtCYINCc0JjQm9CQ0J0KK9CU0KPQndCC0JXQoNCh0JrQmCDQnNCY0KDQiNCQ0J3QkAor0JTQo9Cd0ILQldCg0KHQmtCYINCd0J7QktCQ0JoKK9CU0KPQndCC0JXQoNCh0JrQmCDQodCY0JzQkAor0JTQo9Cd0ILQldCg0KHQmtCYINCh0J7QpNCY0IjQkAor0JTQo9Cd0ILQldCg0KHQmtCYINCh0KLQkNCd0JjQodCb0JDQkgor0JTQo9Cd0ILQldCg0KHQmtCYINCi0JjQpdCe0JzQmNCgCivQlNCj0J3QgtCV0KDQodCa0Jgg0KLQoNCY0JLQkAor0JTQo9Cd0ILQldCg0KHQmtCYINCX0JTQoNCQ0JLQmtCeCivQlNCj0J3QlNCY0Isg0KXQkNCg0JDQm9CQ0JzQn9CY0IjQlQor0JTQo9Cd0JTQmNCLINCI0JXQm9CV0J3QkAor0JTQo9Cd0JTQmNCLINCh0JvQkNCS0JrQngor0JTQo9Cd0JTQntCS0JjQiyDQodCi0IjQldCf0JDQnQor0JTQo9Cd0JjQiyDQlNCg0JDQk9CY0IsKK9CU0KPQitCY0Isg0KHQotCe0IjQkNCdCivQlNCj0J3QntCS0JjQiyDQnNCY0JvQmtCQCivQlNCj0J3QntCS0JjQiyDQndCQ0KLQkNCo0JAKK9CU0KPQn9CQ0Jog0JjQnNCg0JUKK9CU0KPQn9CQ0Jog0JzQkNCg0JjQiNCQCivQlNCj0J/QkNCb0J4g0KHQm9CQ0JLQmtCQCivQlNCj0J/QntCgINCT0J7QoNCU0JDQndCQCivQlNCj0J/QntCgINCc0JjQm9Ce0KgKK9CU0KPQn9Ce0KAg0JzQmNCg0JrQngor0JTQo9Cf0J7QoCDQl9Ce0KDQmNCm0JAKK9CU0KPQoNCQ0KfQmtCe0JLQmNCLINCR0JDQpdCg0JjQiNCQCivQlNCj0KDQkNCn0JrQntCS0JjQiyDQodCV0J3QmNCI0JAKK9CU0KPQoNCQ0JrQntCS0JjQiyDQgtCj0KDQngor0JTQo9Cg0JDQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JTQo9Cg0JDQmtCe0JLQmNCLINCT0J7QiNCa0J4KK9CU0KPQoNCQ0JrQntCS0JjQiyDQk9Ce0IjQmtCeCivQlNCj0KDQkNCdINCR0KDQkNCd0JrQngor0JTQo9Cg0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CU0KPQoNCT0KPQotCe0JLQmNCLINCg0JjQpNCQ0JQKK9CU0KPQoNCa0JDQm9CY0Isg0JLQmNCa0KLQntCgCivQlNCj0KDQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQlNCj0KDQmtCe0JLQmNCLINCS0JvQkNCI0JrQngor0JTQo9Cg0JrQo9Cb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JTQo9Cg0JrQo9Cb0JjQiyDQodCf0JDQodCe0IjQlQor0JTQo9Cg0JvQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9CU0KPQoNCc0JDQnSDQlNCg0JDQk9Ce0InQo9CRCivQlNCj0KDQnNCQ0J0g0JPQntCI0JrQngor0JTQo9Cg0JzQkNCdINCd0JDQlNCQCivQlNCj0KDQnNCQ0J0g0KDQkNCh0KLQmNCh0JvQkNCSCivQlNCj0KDQntCo0JrQkCDQqNCQ0J3QlNCe0KAKK9CU0KPQoNCe0KjQmtCQINCY0JLQkNCd0JrQkAor0JTQo9Cg0J7QqNCa0JAg0IjQldCb0JXQndCQCivQlNCj0KDQntCo0JrQkCDQnNCY0KXQkNCI0JvQngor0JTQo9Cg0J7QqNCa0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0JTQo9Cg0KPQqNCa0JAg0J/QkNCbCivQlNCj0KDQo9Ci0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQlNCj0KDQo9Ci0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CU0KPQoNCj0KLQntCS0JjQiyDQodCV0J3QmtCQCivQlNCj0KHQmNCLINCT0J7QodCf0JDQktCQCivQlNCj0KHQn9CQ0KDQkCDQnNCY0JvQldCd0JAKK9CU0KPQodCf0JXQoCDQqNCY0JzQngor0JTQo9Ci0JjQndCQINCQ0J3QlNCg0JjQiNCQCivQlNCj0KLQmNCd0JAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQlNCj0KLQmNCd0JAg0JHQoNCQ0KLQntCJ0KPQkQor0JTQo9Ci0JjQndCQINCU0KDQkNCT0JDQnQor0JTQo9Ci0JjQndCQINCY0KDQldCd0JAKK9CU0KPQotCY0J3QkCDQnNCY0J7QnNCY0KAKK9CU0KPQotCY0J3QkCDQodCb0J7QkdCe0JTQkNCdCivQlNCj0KLQmNCd0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JTQo9CS0IrQkNCaINCU0JjQktCd0JAKK9CU0KPQktCK0JDQmiDQlNCY0JLQndCQCivQlNCj0JLQitCQ0Jog0JjQktCY0KbQkAor0JTQo9CS0IrQkNCaINCa0J7QodCi0JAKK9CU0KPQktCK0JDQmiDQm9CQ0JfQkNCgCivQlNCj0JLQitCQ0Jog0JvQkNCX0JDQoAor0JTQo9CS0IrQkNCaINCc0JDQoNCQCivQlNCj0JLQitCQ0Jog0JzQmNCb0JXQndCa0J4KK9CU0KPQktCK0JDQmiDQnNCY0JvQntCg0JDQlAor0JTQo9CS0IrQkNCaINCd0JXQndCQ0JQKK9CU0KPQktCK0JDQmiDQoNCQ0JTQntCI0JrQkAor0JTQo9CS0IrQkNCaINCh0KLQkNCd0JAKK9CU0JLQntCg0JDQp9Ca0J4g0KjQkNCd0JTQntCgCivQlNCS0J7QoNCd0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JXQqNCa0Jgg0JXQoNCW0JXQkdCV0KIKK9CV0KjQmtCY0KfQldCS0JjQiyDQktCQ0KHQkAor0JXQi9CY0Jwg0KDQkNCU0J7QktCQ0J0KK9CV0IvQmNCc0J7QktCY0Isg0JPQntCI0JrQngor0JXQi9CY0JzQntCS0JjQiyDQndCY0JrQntCb0JAKK9CV0IvQmNCc0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CV0ILQldCU0Jgg0IjQntCW0JXQpAor0JXQgtCV0JTQmCDQiNCj0JvQmNCI0JDQndCQCivQldCR0JXQndCl0JUt0IjQntCS0JDQndCe0JLQmNCLINCI0JDQodCd0JAg0JTQoAor0JXQkdCV0J3QpdCVINCd0JjQmtCe0JvQkAor0JXQkdCV0KDQpdCQ0KDQlC3QnNCQ0KDQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQldCR0JXQoNCl0JDQoNCiINCf0JXQotCQ0KAKK9CV0JHQldCg0KHQoi3QodCV0JTQm9CQ0KfQldCaINCT0JDQkdCg0JjQldCb0JAKK9CV0KbQldCiINCI0J7QktCQ0J0KK9CV0KbQldCiINCI0J7QktCQ0J0KK9CV0KbQldCiINCa0JDQotCQ0JvQmNCdCivQldCm0JXQoiDQn9CQ0JsKK9CV0JTQldCb0JXQitCYINCc0JDQoNCY0IjQkAor0JXQlNCV0JvQmNCd0KHQmtCYINCV0KPQk9CV0J0KK9CV0JTQldCb0JjQndCh0JrQmCDQiNCe0JDQmtCY0JwKK9CV0JTQldCb0JjQndCh0JrQmCDQidCj0JHQmNCm0JAKK9CV0JTQldCb0JjQndCh0JrQmCDQktCV0KDQkAor0JXQlNCV0JvQmNCd0KHQmtCYINCS0JXQoNCQCivQldCk0KLQldCc0JjQiNCjINCd0JjQmtCe0JvQkAor0JXQk9CV0InQkCDQnNCY0JvQmNCm0JAKK9CV0JPQldCJ0JAg0J3QldCR0J7QiNCo0JAKK9CV0JPQldCg0JjQiyDQnNCY0KDQntCh0JvQkNCSINCU0KAKK9CV0JPQmNCLINCn0JXQlNCc0JjQm9CQCivQldCT0JjQiyDQgtCe0JrQkAor0JXQk9CY0Isg0JHQoNCQ0KbQngor0JXQk9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQldCT0JjQiyDQptCS0JXQotCQ0J3QmtCQCivQldCT0JjQiyDQlNCg0JDQk9CQ0J0KK9CV0JPQmNCLINCc0JDQndCVCivQldCT0JjQiyDQnNCQ0KDQmNCI0JDQnQor0JXQk9CY0Isg0JzQmNCm0JAKK9CV0JPQmNCLINCc0JjQm9CQ0J0KK9CV0JPQmNCLINCc0JjQm9CQ0J0KK9CV0JPQmNCLINCe0JvQk9CQCivQldCI0JjQiyDQnNCY0JvQkNCdCivQldCa0JXQqCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JXQmtCl0JDQoNCU0KIg0InQo9CR0JjQptCQCivQldCa0JvQmNCLINCc0JDQoNCI0JDQnQor0JXQmtCc0JXQqNCn0JjQiyDQnNCY0JvQmNCh0JDQkgor0JXQmtCc0JXQj9CY0Isg0JDQndCa0JAKK9CV0JrQnNCV0I/QmNCLINCd0JjQmtCe0JvQkAor0JXQmtCg0JXQoSDQgtCe0KDQgtCVCivQldCa0KDQldChINCQ0J3QlNCg0JjQiNCQCivQldCa0KDQldChINCI0JDQndCe0KgKK9CV0JrQoNCV0KEg0IjQo9Cb0JjQiNCQ0J3QkAor0JXQmtCg0JXQoSDQnNCY0JvQmtCQCivQldCa0KDQldChINCd0JDQndCU0J7QoAor0JXQmtCg0JXQoSDQntCi0J4KK9CV0JrQoNCV0KEt0KDQkNCa0JjQiyDQktCV0KDQmNCm0JAKK9CV0JrQoNCV0KEg0KDQntCX0JDQm9CY0IjQkAor0JXQmtCg0JXQoSDQktCQ0JvQldCg0JjQiNCQCivQldCb0JXQmiDQldCS0JAKK9CV0JvQldCg0J4g0JfQktCV0JfQlNCQ0J3QkAor0JXQm9CV0KHQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JXQm9CV0KHQmNCdINCR0KDQkNCd0JrQkAor0JXQm9CV0KHQmNCdINCU0KDQkNCT0JAKK9CV0JvQldCh0JjQnSDQlNCg0JDQk9Ce0InQo9CRCivQldCb0JXQodCY0J0g0JTQo9Co0JDQndCa0JAKK9CV0JvQldCh0JjQnSDQk9Cg0JDQlNCY0JzQmNCgCivQldCb0JXQodCY0J0g0JzQmNCg0J7QodCb0JDQkgor0JXQm9CV0KHQmNCdINCh0JDQktCQCivQldCb0JXQodCY0J0g0KHQmNCd0JjQqNCQCivQldCb0JXQodCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0JXQm9CV0Jcg0ILQntCa0JAKK9CV0JvQldCXINCT0J7QoNCQ0J0KK9CV0JvQldCX0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQldCb0JXQl9Ce0JLQmNCLINCf0JXQotCQ0KAKK9CV0JvQpdCQ0KDQoiDQm9CQ0JfQkNCgCivQldCb0KXQkNCg0KIg0JvQkNCX0JDQoAor0JXQm9CY0JDQoSDQmNCg0JXQndCQCivQldCb0JjQiNCQ0Kgg0IjQkNCdCivQldCb0JjQl9CV0Jog0JbQo9CW0JDQndCQCivQldCb0JjQl9CV0Jog0JjQktCQ0J0KK9CV0JvQntCgINCY0KjQotCS0JDQnQor0JXQm9Ce0KAg0IjQkNCd0J7QqAor0JXQm9Ce0KAg0InQo9CR0JjQptCQCivQldCb0J7QoCDQn9CQ0JLQm9CVCivQldCb0J7QoCDQl9Ce0KDQmNCm0JAKK9CV0JvQotCV0KAg0IjQkNCd0J7QqAor0JXQm9Ci0JXQoCDQl9Ce0JvQotCQ0J0KK9CV0JzQldCgINCI0JDQmtCe0JIKK9CV0JzQldCgINCc0JDQoNCa0J4KK9CV0JzQmNCd0Jgg0JHQkNCI0KDQkNCcCivQldCc0JjQndCYINCT0JDQndCYCivQldCc0JjQndCYINCg0J7Ql9CQ0JvQmNCI0JAKK9CV0J3QkNCl0J7Qm9CeINCd0JDQlNCQCivQldCd0JPQldCb0JzQkNCdINCa0JDQotCY0KbQkAor0JXQndCT0JXQoNCiINCc0JjQpdCQ0IjQm9CeCivQldCd0JPQm9CV0KAg0JvQkNCI0J7QqAor0JXQn9CY0KTQkNCd0JjQiyDQptCS0JXQotCQ0J3QkAor0JXQn9CY0KTQkNCd0JjQiyDQlNCj0KjQmtCeCivQldCg0KfQmC3QktCQ0KDQk9CQINCc0JDQoNCY0KjQmtCQCivQldCg0KfQmNCLINCR0J7QiNCQ0J3QkAor0JXQoNCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JXQoNCn0JjQiyDQoNCQ0JTQntCS0JDQnQor0JXQoNCo0KLQlSDQltCV0InQmtCeCivQldCg0JDQmiDQkdCe0KDQngor0JXQoNCQ0Jog0JTQo9Co0JDQnQor0JXQoNCQ0Jog0JjQm9CY0IjQkAor0JXQoNCQ0Jog0JvQkNCX0JDQoAor0JXQoNCQ0Jog0JzQkNCg0JrQngor0JXQoNCQ0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CV0KDQkNCa0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQldCg0JDQmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQldCg0JDQmtCe0JLQmNCLINCa0KDQmNCh0KLQmNCS0J7QiAor0JXQoNCQ0JrQntCS0JjQiyDQidCj0JHQmNCo0JAKK9CV0KDQkNCa0J7QktCY0Isg0InQo9CR0J7QiNCVCivQldCg0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQldCg0JDQmtCe0JLQmNCLINCc0JjQotCQ0KAKK9CV0KDQkNCa0J7QktCY0Isg0KDQkNCU0JUKK9CV0KDQkNCa0J7QktCY0Isg0KDQkNCI0JrQngor0JXQoNCQ0JrQntCS0JjQiyDQodCg0JXQotCV0J0KK9CV0KDQkdCV0Kgg0JXQoNCW0JXQkdCV0KIKK9CV0KDQkdCV0JbQndCY0Jog0KHQntCK0JAKK9CV0KDQkdCV0KEg0JHQoNCQ0J3QmtCQCivQldCg0JHQldChINCc0JDQoNCT0JjQotCQCivQldCg0JHQldCXINCR0JvQkNCW0J4KK9CV0KDQkdCV0Jcg0JXQoNCW0JXQkdCV0KIKK9CV0KDQptCV0JMg0KjQn9CY0KDQngor0JXQoNCm0JXQkyDQltCQ0KDQmtCeCivQldCg0KbQldCTINCW0JjQktCa0J4KK9CV0KDQptCV0JMg0JTQkNCg0JAKK9CV0KDQptCV0JMg0InQmNCJ0JDQndCQCivQldCg0KbQldCTINCc0JjQmtCQCivQldCg0KbQldCTINCg0JDQlNCe0JLQkNCdCivQldCg0KbQldCTINCg0JDQiNCa0J4KK9CV0KDQptCV0JMg0KDQkNCI0JrQngor0JXQoNCm0JXQkyDQodCb0J7QkdCe0JTQkNCdCivQldCg0KbQldCTINCh0KLQkNCd0JAKK9CV0KDQptCV0JMg0JfQlNCV0J3QmtCeCivQldCg0KbQldCTINCX0JTQoNCQ0JLQmtCeCivQldCg0KbQldCT0JDQnSDQk9Ce0KDQkNCdCivQldCg0KbQldCT0JDQnSDQnNCY0KLQkAor0JXQoNCm0JXQk9Ce0JLQp9CV0JLQmNCLINCW0JjQktCe0JTQkNCgCivQldCg0KbQldCT0J7QktCn0JXQktCY0Isg0JTQntCh0KLQkAor0JXQoNCm0JXQk9Ce0JLQkNCmINCQ0J3QgtCV0JvQmtCeCivQldCg0KbQldCT0J7QktCQ0KYg0JHQoNCQ0KLQmNCh0JvQkNCSCivQldCg0KbQldCT0J7QktCQ0KYg0JzQmNCe0JTQoNCQ0JMKK9CV0KDQptCV0JPQntCS0JDQpiDQnNCY0KLQkNCgCivQldCg0KbQldCT0J7QktCQ0KYg0J3QkNCU0JAKK9CV0KDQptCV0JPQntCS0JDQpiDQodCQ0JLQkAor0JXQoNCm0JXQk9Ce0JLQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9CV0KDQptCV0JPQntCS0JDQpiDQodCi0JXQktCQ0J0KK9CV0KDQptCV0JPQntCS0JDQpiDQotCe0JzQmNCh0JvQkNCSCivQldCg0KbQldCT0J7QktCY0Isg0JTQkNCd0JjQptCQCivQldCg0JTQldCoINCU0JDQndCY0JXQmwor0JXQoNCU0JXQqCDQldCc0JjQmwor0JXQoNCU0JXQqCDQldCh0KLQldCgCivQldCg0JTQldCoINCV0KLQldCb0JrQkAor0JXQoNCU0JXQqCDQmNCb0J7QndCQCivQldCg0JTQldCoINCY0JLQkNCdCivQldCg0JTQldCoINCI0KPQm9CY0IjQkNCd0JAKK9CV0KDQlNCV0Kgg0JrQm9CQ0KDQkAor0JXQoNCU0JXQqCDQm9CQ0KHQm9CeCivQldCg0JTQldCoINCf0JDQmwor0JXQoNCU0JXQqCDQn9CV0KLQkNCgCivQldCg0JTQldCo0Jgg0JvQkNCh0JvQngor0JXQoNCU0JXQqNCYINCS0JDQm9CV0KDQmNCI0JAKK9CV0KDQlNCV0JMg0JDQoNCQ0J3QmtCQCivQldCg0JTQldCTINCY0JvQntCd0JAKK9CV0KDQlNCV0JMg0IjQkNCd0J7QqAor0JXQoNCU0JXQkyDQiNCj0KHQotCY0J3QkAor0JXQoNCU0JXQkyDQotCe0JzQmNCh0JvQkNCSCivQldCg0JTQldCYINCo0JDQndCU0J7QoAor0JXQoNCU0JXQmCDQiNCe0KHQmNCfCivQldCg0JTQldCYINCI0J7QktCQ0J0KK9CV0KDQlNCV0Jgg0JzQmNCl0JDQiNCb0J4KK9CV0KDQlNCV0Jgg0J/QldCi0JDQoAor0JXQoNCU0JXQmCDQl9Ce0JvQotCQ0J0KK9CV0KDQlNCV0Ikg0JHQoNCQ0J3QmtCeCivQldCg0JTQldCJINCV0JzQmNCbCivQldCg0JTQldCJINCT0J7QoNCQ0J0KK9CV0KDQlNCV0Ikg0JvQo9CU0JzQmNCb0JAKK9CV0KDQlNCV0Ikg0JzQmNCb0KPQotCY0J0KK9CV0KDQlNCV0InQkNCdINCW0JjQktCa0J4KK9CV0KDQlNCV0InQkNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQldCg0JTQldCJ0JDQnSDQkNCb0JrQodCQ0J3QlNCQ0KAKK9CV0KDQlNCV0InQkNCdINCR0JjQodCV0KDQmtCQCivQldCg0JTQldCJ0JDQnSDQkdCe0KjQmtCeCivQldCg0JTQldCJ0JDQnS3QkdCe0JPQlNCQ0J3QntCSINCh0JvQkNCS0JjQptCQCivQldCg0JTQldCJ0JDQnSDQlNCQ0J3QmNCb0J4KK9CV0KDQlNCV0InQkNCdINCU0J7QkdCg0JjQktCe0IgKK9CV0KDQlNCV0InQkNCdINCU0KPQqNCQ0J3QmtCQCivQldCg0JTQldCJ0JDQnSDQlNCj0KjQkNCdCivQldCg0JTQldCJ0JDQnSDQlNCj0KjQkNCdCivQldCg0JTQldCJ0JDQnSDQlNCj0KjQkNCdCivQldCg0JTQldCJ0JDQnSDQlNCj0KjQkNCdCivQldCg0JTQldCJ0JDQnSDQiNCV0JvQldCd0JAKK9CV0KDQlNCV0InQkNCdINCa0JDQotCY0KbQkAor0JXQoNCU0JXQidCQ0J0g0InQo9CR0JjQptCQCivQldCg0JTQldCJ0JDQnSDQidCj0JHQntCc0JjQoAor0JXQoNCU0JXQidCQ0J0g0JzQmNCb0JDQlNCY0J0KK9CV0KDQlNCV0InQkNCdINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQldCg0JTQldCJ0JDQnSDQnNCY0JvQkNCdCivQldCg0JTQldCJ0JDQnSDQnNCY0JvQldCd0JrQngor0JXQoNCU0JXQidCQ0J0g0JzQmNCb0JjQktCe0IgKK9CV0KDQlNCV0InQkNCdINCc0JjQm9Ce0KDQkNCUCivQldCg0JTQldCJ0JDQnSDQnNCY0JvQntCg0JDQlAor0JXQoNCU0JXQidCQ0J0g0JzQmNCb0J7QktCQ0J0KK9CV0KDQlNCV0InQkNCdINCc0JjQoNCI0JDQndCQCivQldCg0JTQldCJ0JDQnSDQndCQ0JTQldCW0JTQkAor0JXQoNCU0JXQidCQ0J0g0J3QmNCa0J7Qm9CQCivQldCg0JTQldCJ0JDQnSDQn9Cg0JXQlNCg0JDQkwor0JXQoNCU0JXQidCQ0J0g0KDQkNCU0JjQktCe0IgKK9CV0KDQlNCV0InQkNCdINCh0JvQkNCS0JrQkAor0JXQoNCU0JXQidCQ0J0g0KHQm9CQ0JLQmtCQCivQldCg0JTQldCJ0JDQnSDQodCb0J7QkdCe0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0JXQoNCU0JXQidCQ0J0g0KHQoNCV0JTQntCI0JUKK9CV0KDQlNCV0InQkNCdINCh0KLQldCS0JDQnQor0JXQoNCU0JXQidCQ0J0g0KHQktCV0KLQmNCh0JvQkNCSCivQldCg0JTQldCJ0JDQnSDQotCY0KXQntCc0JjQoAor0JXQoNCU0JXQidCQ0J0g0JLQldCg0JjQptCQCivQldCg0JTQldCJ0JDQnSDQktCj0JrQmNCm0JAKK9CV0KDQlNCV0InQkNCdINCX0JvQkNCi0JrQngor0JXQoNCU0JXQidCQ0J0g0JfQntCg0JAKK9CV0KDQlNCV0InQkNCd0JjQnSDQkNCd0ILQldCb0JrQngor0JXQoNCU0JXQidCYINCC0JXQoNCCCivQldCg0JTQldCJ0Jgg0JDQndCi0JDQmwor0JXQoNCU0JXQidCYINCR0JXQm9CQCivQldCg0JTQldCJ0Jgg0JHQmNCh0JXQoNCa0JAKK9CV0KDQlNCV0InQmCDQkdCe0KDQkdCQ0JvQkAor0JXQoNCU0JXQidCYINCU0JXQltCVCivQldCg0JTQldCJ0Jgg0JTQoNCQ0JPQmNCm0JAKK9CV0KDQlNCV0InQmCDQpNCg0JDQitCQCivQldCg0JTQldCJ0Jgg0JPQkNCo0J/QkNCgCivQldCg0JTQldCJ0Jgg0JjQqNCi0JLQkNCdCivQldCg0JTQldCJ0Jgg0IjQldCd0JUKK9CV0KDQlNCV0InQmCDQiNCe0JbQldCkCivQldCg0JTQldCJ0Jgg0JrQkNCg0J7QiQor0JXQoNCU0JXQidCYINCb0JDQiNCe0KgKK9CV0KDQlNCV0InQmCDQm9CQ0KHQm9CeINCU0JjQn9CbINCY0J3Qkwor0JXQoNCU0JXQidCYINCc0JDQotCY0JvQlNCQCivQldCg0JTQldCJ0Jgg0KHQntCk0KDQntCd0JAKK9CV0KDQlNCV0InQmCDQodCi0JXQktCQ0J0KK9CV0KDQlNCV0InQmCDQotCY0JHQntCgCivQldCg0JTQldCS0JjQmiDQnNCQ0KDQkAor0JXQoNCU0JXQktCY0Jog0JzQkNCg0JjQiNCQCivQldCg0JTQldCS0JjQmiDQodCb0J7QkdCe0JTQkNCdCivQldCg0JTQldCS0JjQmiDQktCe0IjQmNCh0JvQkNCSCivQldCg0JTQldCS0JjQmiDQktCj0JrQmNCm0JAKK9CV0KDQlNCV0JLQmNCaINCX0JTQoNCQ0JLQmtCeCivQldCg0JXQqCDQqNCQ0J3QlNCe0KAKK9CV0KDQldCoINCb0JDQodCb0J4KK9CV0KDQldCC0JjQnSDQktCj0JrQkNCo0JjQnQor0JXQoNCV0JMg0JvQkNCI0J7QqAor0JXQoNCV0JzQmNCLINCI0JXQm9CY0KbQkAor0JXQoNCV0JzQmNCLINCI0J7QktCQ0J0KK9CV0KDQldCc0JjQiyDQndCY0J3QntCh0JvQkNCSCivQldCg0JXQnNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CV0KDQldCc0JjQiyDQodCQ0JLQkAor0JXQoNCV0JzQmNCLINCh0JvQkNCS0JjQptCQCivQldCg0JXQnNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9CV0KDQldCc0JjQiyDQotCY0KXQntCc0JjQoCDQlNCgINCb0JXQmtCQ0KAKK9CV0KDQldCc0JjQiyDQktCV0KHQldCb0JjQndCa0JAKK9CV0KDQldCc0JjQiNCQINCc0JjQm9CQ0J0KK9CV0KDQldCc0JjQiNCQINCh0KLQkNCd0JrQngor0JXQoNCV0JzQmNCdINCd0JjQmtCe0JvQkAor0JXQoNCV0J3QotCQINCJ0KPQkdCY0KbQkAor0JXQoNCTINCe0JvQk9CQCivQldCg0JPQldCb0JDQqNCV0JIg0JTQo9CR0KDQkNCS0JrQkAor0JXQoNCT0JXQm9CQ0KjQldCSINCY0JLQkNCdCivQldCg0JPQldCb0JDQqNCV0JIg0IjQntCS0JDQnQor0JXQoNCT0JXQm9CQ0KjQldCSINCc0JjQm9CQ0J0KK9CV0KDQk9CV0JvQkNCo0JXQkiDQnNCY0JvQntCoCivQldCg0JPQldCb0JDQqNCV0JIg0JzQntCc0KfQmNCb0J4KK9CV0KDQk9CV0JvQkNCo0JXQkiDQndCV0KHQotCe0KAKK9CV0KDQk9CV0JvQkNCo0JXQkiDQodCc0JjQidCa0JAKK9CV0KDQk9CV0JvQkNCo0JXQkiDQotCY0KXQntCc0JjQoAor0JXQoNCT0JXQm9CQ0KjQldCSINCX0J7QoNCa0JAKK9CV0KDQpdCQ0KDQotCY0Kcg0JDQndCQCivQldCg0KXQkNCg0KLQmNCnINCg0KPQlNCe0JvQpAor0JXQoNCYINCY0JvQntCd0JAKK9CV0KDQmCDQiNCQ0J3QntCoCivQldCg0Jgg0IjQntCS0JDQnQor0JXQoNCY0Isg0ILQo9Cb0JjQndCa0JAKK9CV0KDQmNCLINCR0J7QltCY0J0KK9CV0KDQmNCLINCJ0JjQidCQ0J3QkAor0JXQoNCY0Isg0JzQkNCg0JrQngor0JXQoNCY0Isg0JzQmNCb0J7QnNCY0KAKK9CV0KDQmNCLINCd0JXQkdCe0IjQqNCQCivQldCg0JjQiyDQn9CV0KDQngor0JXQoNCY0Isg0KHQndCV0JbQkNCd0JAKK9CV0KDQmNCLINCh0JLQldCi0J7QnNCY0KAKK9CV0KDQmNCLINCX0J7QoNCY0KbQkAor0JXQoNCa0JjQiyDQgtCe0KDQgtCVCivQldCg0JrQmNCLINCf0JXQotCQ0KAKK9CV0KDQm9CQ0KPQldCgINCY0JLQkNCdCivQldCg0JvQkNCj0JXQoCDQiNCe0KHQmNCfCivQldCg0JvQldCgINCS0JXQoNCe0J3QkAor0JXQoNCd0JXQodCiINCk0KDQkNCK0JAKK9CV0KDQntCgINCI0J7QktCQ0J0KK9CV0KDQntCgINCf0JXQotCQ0KAKK9CV0KDQntCgINCh0KLQldCS0JDQnQor0JXQoNCh0JrQmCDQn9CV0KLQkNCgCivQldCg0KHQmtCYLdCf0JXQotCa0J7QktCY0Isg0KHQntCK0JAKK9CV0KDQotCbINCk0JXQoNCV0J3Qpgor0JXQoNCi0Jsg0KXQldCU0JLQmNCT0JAKK9CV0KDQotCbINCb0JDQodCb0J4KK9CV0KDQotCbINCS0JvQkNCh0KLQkAor0JXQoSDQmtCb0JDQoNCQCivQldCh0JUg0KjQkNCd0JTQntCgCivQldCh0JrQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CV0KHQotCV0KAg0IjQntCh0JjQnwor0JXQodCi0JXQoCDQnNCQ0KDQmNCI0JAg0JTQoAor0JXQodCi0JXQoCDQnNCQ0KDQotCQCivQldCi0KjQkdCV0KDQk9CV0KAg0IjQkNCa0J7QkQor0JXQotCV0KAg0J7QotCeCivQldCi0JXQoNCe0JLQmNCLINCS0JXQoNCQCivQldCi0JjQndCh0JrQmCDQltCY0JLQkNCdCivQldCi0JjQndCh0JrQmCDQltCY0JLQntCI0JjQnQor0JXQotCY0J3QodCa0Jgg0ILQntCg0ILQlQor0JXQotCY0J3QodCa0Jgg0JTQoNCQ0JPQmNCLCivQldCi0JjQndCh0JrQmCDQlNCg0JDQk9CY0IsKK9CV0KLQmNCd0KHQmtCYINCI0J7QktCQ0J0KK9CV0KLQmNCd0KHQmtCYINCJ0KPQkdCY0KjQkAor0JXQotCY0J3QodCa0Jgg0JzQmNCl0JDQiNCb0J4KK9CV0KLQmNCd0KHQmtCYINCc0JjQm9Ce0KgKK9CV0KLQmNCd0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQldCi0JjQndCh0JrQmCDQnNCY0JvQntCg0JDQlAor0JXQotCY0J3QodCa0Jgg0JzQmNCb0J7QktCQ0J0KK9CV0KLQmNCd0KHQmtCYINCd0JDQlNCQCivQldCi0JjQndCh0JrQmCDQn9CV0KLQkNCgCivQldCi0JjQndCh0JrQmCDQoNCQ0JTQntCS0JDQnQor0JXQotCY0J3QodCa0Jgg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CV0KLQmNCd0KHQmtCYINCS0JXQidCa0J4KK9CV0KLQmNCd0KHQmtCYINCS0JXQoNCQCivQldCi0JjQndCh0JrQmCDQktCV0KDQmNCm0JAKK9CV0KLQntCg0JUg0ILQmNCd0JAKK9CV0JLQgtCY0Isg0KHQotCQ0J3QmtCQCivQldCS0JXQotCe0JLQmNCLINCR0JvQkNCo0JrQngor0JXQktCV0KLQntCS0JjQiyDQiNCe0KHQmNCfCivQldCS0JXQotCe0JLQmNCLINCI0J7QktCQ0J0KK9CV0JLQldCi0J7QktCY0Isg0IjQntCS0JDQnQor0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQldCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JXQktCY0Isg0IjQntCS0JDQnQor0JXQktCY0Isg0JvQkNCX0JDQoAor0JXQktCY0Isg0JvQkNCX0JDQoAor0JXQktCY0Isg0J/QldCi0JDQoAor0JXQktCY0Isg0KHQkNCS0JAKK9Ck0JAg0JzQldCb0JDQndCY0IjQkAor0KTQkCDQnNCY0JvQmtCQCivQpNCQ0KfQkNCgINCh0KLQldCS0JDQnQor0KTQkNCn0JrQniDQiNCe0JbQldCkCivQpNCQ0KfQmtCeINCh0JjQnNCQCivQpNCQ0JHQmNCQ0J0g0JHQntCg0JHQkNCb0JAKK9Ck0JDQkdCY0JDQnSDQmNCo0KLQktCQ0J0KK9Ck0JDQkdCY0JDQnSDQiNCQ0J3QntCoCivQpNCQ0JHQmNCI0JDQnSDQqNCQ0J3QlNCe0KAKK9Ck0JDQkdCY0IjQkNCdINCQ0J3QkAor0KTQkNCR0JjQiNCQ0J0g0JjQm9Ce0J3QkAor0KTQkNCR0JjQiNCQ0J0g0JjQnNCg0JUKK9Ck0JDQkdCY0IjQkNCdINCY0JLQkNCdCivQpNCQ0JHQmNCI0JDQnSDQiNCQ0J3QntCoCivQpNCQ0JHQmNCI0JDQnSDQm9CQ0KHQm9CeCivQpNCQ0JHQmNCI0JDQnSDQndCY0JrQntCb0JAKK9Ck0JDQkdCY0IjQkNCdINCh0KLQldCS0JDQnQor0KTQkNCR0JjQiNCQ0J0g0KHQotCV0JLQkNCdCivQpNCQ0JHQmNCI0JDQndCn0JjQiyDQmNCS0JDQnQor0KTQkNCR0JjQiNCQ0J3Qp9CY0Isg0KHQotCI0JXQn9CQ0J0KK9Ck0JDQkdCY0IjQkNCd0JjQiyDQnNCQ0KDQmNCI0JAKK9Ck0JDQkdCY0IjQkNCd0J7QktCY0Isg0JDQndCQCivQpNCQ0JHQoNCYINCc0JjQmtCb0J7QqAor0KTQkNCR0KDQmCDQndCQ0J3QlNCe0KAKK9Ck0JDQkdCg0Jgg0KHQotCI0JXQn9CQ0J0KK9Ck0JDQkdCg0Jgg0JfQktCe0J3QmtCeCivQpNCQ0JHQoNCY0Jog0JrQkNCi0JDQm9CY0J0KK9Ck0JDQptCY0KEg0J/QkNCd0KLQkAor0KTQkNCY0J0g0JDQndCQCivQpNCQ0JjQnSDQm9CQ0IjQntCoCivQpNCQ0JjQnSDQodCi0JXQktCQ0J0KK9Ck0JDQiCDQk9CQ0JHQntCgCivQpNCQ0IjQlNCV0KLQmNCLINCJ0KPQkdCY0KbQkAor0KTQkNCI0JTQmNCT0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ck0JDQiNCk0JXQoCDQn9CV0KLQkNCgCivQpNCQ0IjQk9CV0Ikg0JjQktCQ0J0KK9Ck0JDQiNCl0J3QldCgINCl0JXQndCg0JjQmgor0KTQkNCI0KXQotCd0JXQoCDQiNCe0KHQmNCfCivQpNCQ0IjQpdCi0J3QldCgINCg0KPQltCQCivQpNCQ0IjQmNCdINCY0KjQotCS0JDQnQor0KTQkNCI0JrQkCDQlNCQ0J3QmNCm0JAKK9Ck0JDQiNCa0JAg0J3QkNCU0JAKK9Ck0JDQiNCa0JAg0J/QkNCS0JvQlQor0KTQkNCI0J3QmNCaINCc0JDQoNCY0IjQkAor0KTQkNCI0KIt0JPQoNCQ0J3QldCgINCg0J7QltCQCivQpNCQ0IjQoiDQiNCV0JvQmNCm0JAKK9Ck0JDQiNCi0J3QldCgINCS0JXQoNCe0J3QmNCa0JAKK9Ck0JDQmtCY0J0g0KTQoNCQ0IrQkAor0KTQkNCa0JjQnSDQmNCS0JDQnQor0KTQkNCa0JjQnSDQl9CS0J7QndCY0JzQmNCgCivQpNCQ0JvQkSDQgtCe0KDQgtCVCivQpNCQ0JvQkSDQkdCe0KHQmNCJ0JrQkAor0KTQkNCb0JEg0IjQntCh0JjQnwor0KTQkNCb0JEg0JrQkNCg0J7QiQor0KTQkNCb0JEg0JrQkNCg0J7QiQor0KTQkNCb0JEg0JzQkNCg0JjQndCQCivQpNCQ0JvQkSDQnNCQ0KLQmNCI0JAKK9Ck0JDQm9CRINCe0KLQngor0KTQkNCb0JEg0JfQntCb0KLQkNCdCivQpNCQ0JzQmNCb0JjQiyDQgtCe0KDQgtCVCivQpNCQ0JzQmNCb0JjQiyDQmNCS0JDQnQor0KTQkNCd0KfQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KTQkNCd0KfQldCS0JjQiyDQiNCe0KHQmNCfCivQpNCQ0J3Qp9CV0JLQmNCLINCa0JDQotCQ0JvQmNCdCivQpNCQ0J3Qp9CV0JLQmNCLINCJ0KPQlNCV0JLQmNCiCivQpNCQ0J3Qp9CV0JLQmNCLINCi0JXQoNCV0JfQmNCI0JAKK9Ck0JDQndCa0JAg0JTQo9Co0JDQnQor0KTQkNCd0JrQkCDQnNCQ0KDQkAor0KTQkNCg0JDQk9CeINCo0JDQndCU0J7QoAor0KTQkNCg0JDQk9CeINCo0JDQndCU0J7QoAor0KTQkNCg0JDQk9CeINCQ0KDQkNCd0JrQkAor0KTQkNCg0JDQk9CeINCQ0KDQn9CQ0JQKK9Ck0JDQoNCQ0JPQniDQpNCg0JDQitCQCivQpNCQ0KDQkNCT0J4g0IjQntCW0JXQpAor0KTQkNCg0JDQk9CeINCI0J7QodCY0J8KK9Ck0JDQoNCQ0JPQniDQmtCQ0KDQm9CeCivQpNCQ0KDQkNCT0J4g0JvQkNCh0JvQngor0KTQkNCg0JDQk9CeINCc0JDQoNCY0IjQkAor0KTQkNCg0Jog0JDQnNCQ0JvQmNCI0JAKK9Ck0JDQoNCaINCR0JXQkNCi0JAKK9Ck0JDQoNCa0JDQqCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KTQkNCg0JrQkNCoINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpNCQ0KDQmtCQ0Kgg0JHQntCW0JXQndCQCivQpNCQ0KDQmtCQ0Kgg0JTQoNCQ0JPQo9Ci0JjQnQor0KTQkNCg0JrQkNCoINCV0JvQldCc0JXQoAor0KTQkNCg0JrQkNCoINCV0JvQmNCX0JDQkdCV0KLQkAor0KTQkNCg0JrQkNCoINCV0JvQl9CQCivQpNCQ0KDQmtCQ0Kgg0JXQodCi0JXQoAor0KTQkNCg0JrQkNCoINCV0KHQotCV0KAKK9Ck0JDQoNCa0JDQqCDQpNCV0KDQldCd0KYKK9Ck0JDQoNCa0JDQqCDQpNCV0KDQldCd0KYKK9Ck0JDQoNCa0JDQqCDQpNCV0KDQldCd0KYKK9Ck0JDQoNCa0JDQqCDQpNCV0KDQldCd0KYKK9Ck0JDQoNCa0JDQqCDQpNCg0JDQitCQCivQpNCQ0KDQmtCQ0Kgg0JPQkNCR0J7QoAor0KTQkNCg0JrQkNCoINCY0KjQotCS0JDQnQor0KTQkNCg0JrQkNCoINCY0KjQotCS0JDQnQor0KTQkNCg0JrQkNCoINCY0JvQntCd0JAKK9Ck0JDQoNCa0JDQqCDQmNCb0J7QndCa0JAKK9Ck0JDQoNCa0JDQqCDQmNCc0KDQlQor0KTQkNCg0JrQkNCoINCI0JDQnQor0KTQkNCg0JrQkNCoINCI0JDQoNCe0KHQm9CQ0JIKK9Ck0JDQoNCa0JDQqCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KTQkNCg0JrQkNCoINCI0J7QltCV0KQKK9Ck0JDQoNCa0JDQqCDQiNCe0JbQldCkCivQpNCQ0KDQmtCQ0Kgg0IjQntCW0JXQpAor0KTQkNCg0JrQkNCoINCI0J7QltCV0KQKK9Ck0JDQoNCa0JDQqCDQiNCe0KHQmNCfCivQpNCQ0KDQmtCQ0Kgg0IjQntCh0JjQnwor0KTQkNCg0JrQkNCoINCI0J7QktCQ0J0KK9Ck0JDQoNCa0JDQqCDQiNCe0JLQk9CV0J0KK9Ck0JDQoNCa0JDQqCDQiNCj0JTQmNCi0JAKK9Ck0JDQoNCa0JDQqCDQmtCQ0KDQm9CeCivQpNCQ0KDQmtCQ0Kgg0JrQkNCi0JDQm9CY0J0KK9Ck0JDQoNCa0JDQqCDQmtCb0JDQoNCQCivQpNCQ0KDQmtCQ0Kgg0JvQkNCU0JjQodCb0JDQkgor0KTQkNCg0JrQkNCoINCb0JDQiNCe0KgKK9Ck0JDQoNCa0JDQqCDQm9CQ0KHQm9CeCivQpNCQ0KDQmtCQ0Kgg0JzQkNCg0JjQiNCQCivQpNCQ0KDQmtCQ0Kgg0JzQkNCi0JjQm9CU0JAKK9Ck0JDQoNCa0JDQqCDQnNCY0KXQkNCJCivQpNCQ0KDQmtCQ0Kgg0J3QkNCU0JAKK9Ck0JDQoNCa0JDQqCDQn9CQ0JsKK9Ck0JDQoNCa0JDQqCDQn9CQ0JLQm9CVCivQpNCQ0KDQmtCQ0Kgg0KDQntCX0JDQm9CY0IjQkAor0KTQkNCg0JrQkNCoINCh0KLQldCS0JDQnQor0KTQkNCg0JrQkNCoLdCi0J7QoiDQktCY0JrQotCe0KDQmNCI0JAKK9Ck0JDQoNCa0JDQqCDQktCV0KDQkAor0KTQkNCg0JrQkNCoINCS0JXQoNCY0KbQkAor0KTQkNCg0JrQmNCLINCc0JjQm9CQ0J0KK9Ck0JDQoNCa0J7QkiDQiNCe0JLQkNCd0JrQkAor0KTQkNCiINCI0J7QodCY0J8KK9Ck0JDQoiDQm9CQ0KHQm9CeCivQpNCQ0KIg0JzQmNCl0JDQmwor0KTQkNCi0JjQiyDQnNCQ0KDQkAor0KTQkNCi0KPQoNCe0JLQmNCLINCg0JDQiNCa0J4KK9Ck0JDQo9Ca0J7QktCY0Isg0J3QkNCU0JAKK9Ck0JDQl9CV0JrQkNCoINCQ0J3QotCQ0JsKK9Ck0JDQl9CV0JrQkNCoINCI0JDQndCe0KgKK9Ck0JDQl9CV0JrQkNCoINCa0JDQotCQ0JvQmNCdCivQpNCQ0JfQldCa0JDQqCDQotCY0JHQntCgCivQpNCQ0JfQm9CY0Isg0IjQldCb0JjQptCQCivQpNCQ0JfQm9CY0Isg0IjQntCS0JDQndCa0JAKK9Ck0JDQl9Cb0JjQndCe0JLQmNCLINCV0JvQkdCY0KHQkAor0KTQkNCX0JvQmNCd0J7QktCY0Isg0IjQkNCh0JzQmNCd0JrQkAor0KTQldCo0JjQqCDQmNCc0KDQlQor0KTQldCo0JjQqCDQiNCe0JbQldCkCivQpNCV0KjQmNCoINCI0J7QltCV0KQKK9Ck0JXQptCVINCY0JLQkNCdCivQpNCV0KbQlSDQnNCQ0KDQmNCI0JAKK9Ck0JXQlNCV0KDQldCgINCI0J7QktCQ0J0KK9Ck0JXQlNCV0KDQldCgINCc0JjQoNCa0J4KK9Ck0JXQlNCYINCI0J7QltCV0KQKK9Ck0JXQpdCV0KAg0KjQkNCd0JTQntCgCivQpNCV0KXQldCgINCo0JDQndCU0J7QoAor0KTQldCl0JXQoCDQgtCV0KDQggor0KTQldCl0JXQoCDQgtCj0JvQkAor0KTQldCl0JXQoCDQgtCj0JvQkAor0KTQldCl0JXQoCDQkNCd0JTQoNCQ0KgKK9Ck0JXQpdCV0KAg0JDQoNCY0KHQotCY0JQKK9Ck0JXQpdCV0KAg0JXQoNCd0JUKK9Ck0JXQpdCV0KAg0JXQoNCd0JUKK9Ck0JXQpdCV0KAg0KTQldCg0JXQndCmCivQpNCV0KXQldCgINCI0JDQndCe0KgKK9Ck0JXQpdCV0KAg0IjQkNCd0J7QqAor0KTQldCl0JXQoCDQiNCQ0J3QntCoCivQpNCV0KXQldCgINCI0J7QltCV0KQKK9Ck0JXQpdCV0KAg0IjQntCW0JXQpAor0KTQldCl0JXQoCDQiNCe0JLQkNCdCivQpNCV0KXQldCgINCI0J7QktCQ0J0KK9Ck0JXQpdCV0KAg0IjQo9Cb0JjQiNCQCivQpNCV0KXQldCgINCa0JDQm9Cc0JDQnQor0KTQldCl0JXQoCDQm9CQ0IjQntCoCivQpNCV0KXQldCgINCb0JDQodCb0J4KK9Ck0JXQpdCV0KAg0JvQkNCh0JvQngor0KTQldCl0JXQoCDQnNCQ0KDQk9CY0KLQkAor0KTQldCl0JXQoCDQnNCQ0KDQmNCI0JAKK9Ck0JXQpdCV0KAg0JzQmNCl0JDQiNCb0J4KK9Ck0JXQpdCV0KAg0J3QkNCd0JTQntCgCivQpNCV0KXQldCgINCh0KLQldCS0JDQnQor0KTQldCl0JXQoCDQodCi0JXQktCQ0J0KK9Ck0JXQpdCV0KAg0KLQldCg0JXQl9CQCivQpNCV0KXQldCgINCS0JXQoNCQCivQpNCV0KXQldCg0JLQkNCg0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ck0JXQpdCY0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ck0JXQpdCY0KAg0J/QldCi0JDQoAor0KTQldCl0JjQoNCe0JIg0JDQktCg0JDQnAor0KTQldCl0JjQoNCe0JIg0JrQntCh0JDQndCQCivQpNCV0KXQmNCg0J7QkiDQnNCY0KDQiNCQ0J3QkAor0KTQldCI0ILQmCDQktCb0JDQlNCY0JzQmNCgCivQpNCV0IjQlNCV0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ck0JXQiNCV0Kgg0KjQkNCd0JTQntCgCivQpNCV0IjQldCoINCC0J7QoNCC0JUKK9Ck0JXQiNCV0Kgg0JDQoNCQ0J3QmtCQCivQpNCV0IjQldCoINCT0JXQndCQCivQpNCV0IjQldCoINCY0KjQotCS0JDQnQor0KTQldCI0JXQqCDQmNCo0KLQktCQ0J0KK9Ck0JXQiNCV0Kgg0IjQkNCd0J7QqAor0KTQldCI0JXQqCDQiNCQ0J3QntCoCivQpNCV0IjQldCoINCJ0JjQidCQ0J3QkAor0KTQldCI0JXQqCDQl9Ce0JvQotCQ0J0KK9Ck0JXQiNCV0Kgg0JfQntCb0KLQkNCdCivQpNCV0IjQpNCQ0KAg0IjQo9Cb0JjQiNCQ0J3QkAor0KTQldCI0KHQkCDQk9CV0J7QoNCT0JjQiNCVCivQpNCV0IjQodCQINCI0JDQndCa0J4g0JzQoCDQn9ClCivQpNCV0IjQodCQINCc0JDQoNCT0JjQotCQCivQpNCV0IjQodCQLdCf0J7Qn9Ce0JLQmNCLINCb0JXQntCd0JAKK9Ck0JXQiNCh0KLQpdCQ0JzQldCbINCf0JDQmwor0KTQldCI0JfQo9Cb0JDQpdCYINCk0JXQiNCX0KPQm9CQ0KUKK9Ck0JXQmtCV0KLQlSDQqNCQ0J3QlNCe0KAKK9Ck0JXQmtCV0KLQlSDQqNCQ0J3QlNCe0KAKK9Ck0JXQmtCV0KLQlSDQltCj0JbQkNCd0JAKK9Ck0JXQmtCV0KLQlSDQkNCU0J7Qm9CkCivQpNCV0JrQldCi0JUg0KTQldCg0JXQndCmCivQpNCV0JrQldCi0JUg0KTQldCg0JXQndCmCivQpNCV0JrQldCi0JUg0IjQkNCT0J7QlNCQCivQpNCV0JrQldCi0JUg0JrQkNCg0JvQngor0KTQldCa0JXQotCVINCa0JDQotCY0KbQkAor0KTQldCa0JXQotCVINCb0JDQodCb0J4KK9Ck0JXQmtCV0KLQlSDQnNCQ0KDQmNCI0JAKK9Ck0JXQmtCV0KLQlSDQnNCQ0KDQmNCI0JAKK9Ck0JXQmtCV0KLQlSDQnNCQ0KDQmNCI0JAKK9Ck0JXQmtCV0KLQlSDQnNCY0KXQkNCI0JvQngor0KTQldCa0JXQotCVINCc0JjQpdCQ0IkKK9Ck0JXQmtCV0KLQlSDQn9CV0KLQkNCgCivQpNCV0JrQldCi0JUg0KHQotCV0JLQkNCdCivQpNCV0JrQldCi0JUg0JLQldCh0J3QkAor0KTQldCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQpNCV0JvQkdCQ0JEg0KDQkNCU0JAKK9Ck0JXQm9CR0JDQkSDQodCQ0JLQkAor0KTQldCb0JHQkNCRINCh0KLQkNCd0JjQnNCY0KAKK9Ck0JXQm9CR0JDQkdCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQpNCV0JvQkdCQ0JHQntCSINCI0J7QktCQ0J0KK9Ck0JXQm9CR0JDQkdCe0JIg0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9Ck0JXQm9CR0JDQnyDQiNCj0JvQmtCQCivQpNCV0JvQkdCQ0J8g0J3QmNCa0J7Qm9CQCivQpNCV0JvQkdCQ0J/QntCSINCU0JjQnNCY0KLQoNCY0IjQlQor0KTQldCb0JHQkNCf0J7QkiDQnNCY0JvQkNCd0JrQkAor0KTQldCb0JHQkNCf0J7QkiDQnNCY0JvQntCg0JDQlAor0KTQldCb0JHQkNCf0J7QkiDQndCV0JzQkNCK0JAKK9Ck0JXQm9CR0JDQn9Ce0JIg0KDQkNCU0JzQmNCb0JAKK9Ck0JXQm9CR0JDQn9Ce0JIg0KDQkNCU0J7QodCb0JDQkgor0KTQldCb0JHQkNCf0J7QkiDQodCi0JXQktCQ0J0KK9Ck0JXQm9CU0KjQldCgINCQ0J3QkAor0KTQldCb0JTQqNCV0KAg0JrQkNCg0JvQngor0KTQldCb0JTQldCo0JTQmCDQkNCd0JTQoNCY0IjQkAor0KTQldCb0JTQldCo0Jgg0KTQoNCQ0IrQkAor0KTQldCb0JTQldCo0Jgg0JjQkdCe0InQkCDQlNCgCivQpNCV0JvQlNCV0KjQmCDQnNCQ0KDQmNCI0JAKK9Ck0JXQm9CU0JXQltCU0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0KTQldCb0JTQldCW0JTQmCDQm9CQ0KHQm9CeCivQpNCV0JvQlNCV0JbQlNCYINCf0JXQotCQ0KAKK9Ck0JXQm9CU0JXQltCU0Jgg0KHQotCV0JLQkNCdCivQpNCV0JvQlNCV0JDQmiDQlNCQ0J3QmNCm0JAKK9Ck0JXQm9CU0JXQkNCaINCI0J7QltCV0KQKK9Ck0JXQm9CU0Jgg0KjQkNCd0JTQntCgCivQpNCV0JvQlNCYINCV0KDQltCV0JHQldCiCivQpNCV0JvQlNCYINCI0JDQoNCe0KHQm9CQ0JIKK9Ck0JXQm9CU0JLQkNCg0Jgg0IjQntCh0JjQnwor0KTQldCb0JTQktCQ0KDQmCDQiNCe0JLQkNCdCivQpNCV0JvQlNCS0JDQoNCYINCI0KPQodCi0JjQndCQCivQpNCV0JvQlNCS0JDQoNCYINCa0JDQm9Cc0JDQnQor0KTQldCb0JTQktCQ0KDQmCDQntCb0JPQmNCm0JAKK9Ck0JXQm9CU0JLQkNCg0Jgg0KHQotCV0JLQkNCdCivQpNCV0JvQlNCS0JXQkdCV0Jsg0KDQntCX0JDQm9CY0IjQkAor0KTQldCb0JUg0JTQoNCQ0JbQldCdINCb0JXQmtCQ0KAKK9Ck0JXQm9CV0Isg0JjQl9CV0KIKK9Ck0JXQm9CV0JPQmCDQkNCd0JAKK9Ck0JXQm9CV0JPQmCDQm9CQ0JTQmNCh0JvQkNCSCivQpNCV0InQkCDQnNCY0KDQiNCQ0J3QkAor0KTQldCb0J3QldCgINCU0KPQqNCQ0J3QmtCQCivQpNCV0JvQndCV0KAg0KLQmNCR0J7QoAor0KTQldCc0JjQiyDQkNCb0JXQmtCh0JjQiNCVCivQpNCV0JzQmNCLINCR0JvQkNCT0J7QiNCVCivQpNCV0JzQmNCLINCT0KDQo9CI0JjQptCQCivQpNCV0JzQmNCLINCc0JjQm9CY0IjQkAor0KTQldCc0JjQiyDQnNCY0JvQntCS0JDQnQor0KTQldCc0JjQiyDQn9CV0KLQmtCeCivQpNCV0JzQmNCLINCg0JDQlNCc0JjQm9CQCivQpNCV0JzQmNCLINCh0KLQkNCd0JrQkAor0KTQldCc0JjQiyDQktCV0InQmtCeCivQpNCV0JzQmNCLINCX0J7QoNCQCivQpNCV0J3QpiDQoNCj0JbQmNCm0JAKK9Ck0JXQndCU0JvQldCgINCI0J7QktCQ0J0KK9Ck0JXQndCU0KDQmNCaINCQ0J3QlNCg0JjQiNCQCivQpNCV0J3QlNCg0JjQmiDQpNCg0JDQitCeCivQpNCV0J3QlNCg0JjQmiDQmtCQ0KDQm9CeCivQpNCV0IrQkNCmINCY0JLQkNCdCivQpNCV0IrQkNCmINCI0J7QktCQ0J0KK9Ck0JXQitCQ0KYg0KHQmNCd0JjQqNCQCivQpNCV0IrQkNCmINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQpNCV0IrQldCoINCQ0J3QkAor0KTQldCK0JXQqCDQpNCg0JDQitCQCivQpNCV0IrQktCV0KjQmCDQnNCQ0KDQmNCo0JrQkAor0KTQldCg0KfQmNCaINCQ0J3QlNCg0JjQiNCQCivQpNCV0KDQkNCg0JjQndCe0JIg0J/QkNCS0JvQlQor0KTQldCg0JDQoNCY0J4g0KHQmNCb0JLQmNCeCivQpNCV0KDQkNCi0Jgg0JDQpNCY0JcKK9Ck0JXQoNCQ0KLQmCDQkdCV0KDQngor0KTQldCg0JDQotCYINCV0KXQkNCiCivQpNCV0KDQkNCi0Jgg0KDQkNCT0JjQnwor0KTQldCg0JDQotCYINCh0JXQiNCk0JjQlNCY0J0KK9Ck0JXQoNCQ0KLQmCDQodCa0JXQndCU0JXQoAor0KTQldCg0JXQndCn0JDQmiDQmNCS0JjQptCQCivQpNCV0KDQldCd0KfQldCaINCJ0KPQkdCY0KbQkAor0KTQldCg0JXQndCn0JXQmiDQntCb0JjQktCV0KAg0JTQmNCf0Jsg0JjQndCTCivQpNCV0KDQldCd0KfQldCaINCS0JjQm9Ca0J4KK9Ck0JXQoNCV0J3Qp9CV0JIg0JzQmNCb0J7QoNCQ0JQKK9Ck0JXQoNCV0J3Qp9CV0JIg0JfQntCg0JAKK9Ck0JXQoNCV0J3Qp9CV0JLQmNCLINCC0J7QoNCC0JUKK9Ck0JXQoNCV0J3Qp9CV0JLQmNCLLdCh0JDQm9CQ0Igg0IjQldCb0JXQndCQCivQpNCV0KDQldCd0JDQpiDQkNCd0JTQoNCY0IjQkAor0KTQldCg0JXQndCQ0KYg0JDQndCU0KDQmNCI0JAKK9Ck0JXQoNCV0J3QkNCmINCY0JLQkNCdCivQpNCV0KDQldCd0JDQpiDQoNCQ0JTQnNCY0JvQkAor0KTQldCg0JXQndCmINCQ0J3QotCQ0JsKK9Ck0JXQoNCV0J3QpiDQiNCe0JbQldCkCivQpNCV0KDQldCd0KYg0IjQntCW0JXQpAor0KTQldCg0JXQndCm0Jgg0ILQldCg0IIKK9Ck0JXQoNCV0J3QptCYINCU0JXQl9CY0JTQldCgCivQpNCV0KDQldCd0KbQmCDQldCj0JPQldCdCivQpNCV0KDQldCd0KbQmCDQpNCg0JDQitCQCivQpNCV0KDQldCd0KbQmCDQiNCj0JvQmNCI0JDQndCQCivQpNCV0KDQldCd0KbQmCDQodCi0JXQktCQ0J0KK9Ck0JXQoNCV0J3QptCYINCS0JXQoNCQCivQpNCV0KDQmNCaINCI0KPQoNCQ0IgKK9Ck0JXQoNCY0Jog0IjQo9Cg0JDQiAor0KTQldCg0JjQl9Ce0JLQmNCLINCQ0KXQnNCV0KIKK9Ck0JXQoNCa0J4g0JDQndCU0KDQldCIINCU0KAg0JvQldCa0JDQoAor0KTQldCg0JrQniDQnNCY0JvQntCoCivQpNCV0KDQmtCeINCf0JDQktCV0JsKK9Ck0JXQoNCa0J4g0J/QkNCS0JvQlQor0KTQldCg0JvQkNCdINCg0JDQlNCc0JjQm9CQCivQpNCV0KLQkNCl0Jgg0JHQkNCI0KDQkNCcCivQpNCV0KLQkNCl0J7QktCY0Isg0JjQodCc0JXQogor0KTQldCi0JDQmCDQl9CY0JHQldCgCivQpNCY0KfQntCaINCQ0JvQntCI0JfQmNCI0JUKK9Ck0JjQqNCQ0JrQntCSINCa0J7QndCh0KLQkNCU0JjQnQor0KTQmNCo0JDQndCTINCJ0JjQidCQ0J3QkAor0KTQmNCo0JXQoCDQgtCe0KDQgtCVINCU0KAg0JvQldCa0JDQoAor0KTQmNCo0JXQoCDQgtCe0KDQgtCVCivQpNCY0KjQldCgINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9Ck0JjQqNCV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ck0JjQqNCV0KAg0JDQndCi0J7QnQor0KTQmNCo0JXQoCDQkdCb0JDQndCa0JAKK9Ck0JjQqNCV0KAg0JTQoNCQ0JPQo9Ci0JjQnQor0KTQmNCo0JXQoCDQk9CQ0JLQoNCQCivQpNCY0KjQldCgINCY0KDQldCd0JAKK9Ck0JjQqNCV0KAg0JjQoNCV0J3QkAor0KTQmNCo0JXQoCDQiNCV0J3QlQor0KTQmNCo0JXQoCDQiNCe0KHQmNCfCivQpNCY0KjQldCgINCa0JDQoNCe0IkKK9Ck0JjQqNCV0KAg0JvQkNCh0JvQngor0KTQmNCo0JXQoCDQm9CV0J4g0JTQoAor0KTQmNCo0JXQoCDQndCQ0KLQkNCb0JjQiNCQCivQpNCY0KjQldCgINCf0JjQoNCe0KjQmtCQCivQpNCY0KjQldCgINCh0KLQldCS0JDQnQor0KTQmNCo0JXQoCDQl9CS0J7QndCY0JzQmNCgCivQpNCY0KjQmyDQpNCV0JTQntCgCivQpNCY0KjQmyDQiNCj0JvQmNCI0JAg0JTQmNCf0Jsg0JjQndCTCivQpNCY0KjQotCV0Kgg0JjQnNCg0JUKK9Ck0JjQqNCi0JXQqCDQnNCQ0KDQmNCI0JAKK9Ck0JjQqNCi0JXQqCDQnNCY0KXQkNCJCivQpNCY0KjQotCV0Kgg0J/QmNCg0J7QqNCa0JAKK9Ck0JjQkNCb0JAg0JjQktCQ0J3QmtCQCivQpNCY0JDQm9CQINCY0JLQkNCdCivQpNCY0JHQmNCo0JDQnSDQgtCj0KDQkNCCCivQpNCY0JHQmNCo0JDQnSDQodCb0JDQktCe0InQo9CRCivQpNCY0KbQlSDQldCg0JbQldCR0JXQogor0KTQmNCm0JjQndCT0JXQoCDQktCQ0JvQldCg0JjQiNCQCivQpNCY0JTQo9Co0JXQmiDQmtCQ0KLQmNCm0JAKK9Ck0JjQpNCQINCU0KDQkNCT0JjQptCQCivQpNCY0KTQkCDQndCV0JHQmAor0KTQmNCT0KPQoNCQINCo0JDQndCU0J7QoAor0KTQmNCI0JDQotCe0JLQmNCLINCe0JvQk9CQCivQpNCY0IjQo9Ca0J7QktCY0Isg0KHQkNCU0JXQotCQCivQpNCY0IjQo9CJ0JDQndCY0J0g0JfQo9Cb0KTQngor0KTQmNCb0JXQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ck0JjQm9CV0JrQntCS0JjQiyDQodCV0JjQlAor0KTQmNCb0JXQnyDQgtCV0KDQggor0KTQmNCb0JXQnyDQgtCe0KDQgtCVCivQpNCY0JvQldCfINCC0J7QoNCC0JUKK9Ck0JjQm9CV0J8g0JDQndCi0JDQmwor0KTQmNCb0JXQnyDQkdCV0JvQkAor0KTQmNCb0JXQnyDQmNCU0JAKK9Ck0JjQm9CV0J8g0IjQldCd0JUKK9Ck0JjQm9CV0J8g0IjQntCW0JXQpAor0KTQmNCb0JXQnyDQmtCQ0JvQnNCQ0J0KK9Ck0JjQm9CV0J8g0JrQkNCb0JzQkNCdCivQpNCY0JvQldCfINCb0JDQlNCY0KHQm9CQ0JIKK9Ck0JjQm9CV0J8g0JzQmNCg0IjQkNCd0JAKK9Ck0JjQm9CV0J8g0JfQntCb0KLQkNCdCivQpNCY0JvQldCf0Jgg0JzQmNCg0J7QodCb0JDQkgor0KTQmNCb0JjQnNCe0J3QntCS0JjQiyDQltCY0JLQntCg0JDQlAor0KTQmNCb0JjQnNCe0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQpNCY0JvQmNCfINCI0J7QktCQ0J0g0JTQoCDQn9Cg0JDQktCd0JjQmgor0KTQmNCb0JjQnyDQoNCQ0JTQntCh0JDQkgor0KTQmNCb0JjQn9Cn0JXQkiDQl9CU0KDQkNCS0JrQngor0KTQmNCb0JjQn9CQ0Kgg0JTQoNCQ0JPQkNCdCivQpNCY0JvQmNCf0JDQqNCV0JIg0J3QkNCU0JAKK9Ck0JjQm9CY0J/QldCmINCX0JjQotCQCivQpNCY0JvQmNCf0JXQndCU0JjQnSDQnNCQ0KDQmtCeCivQpNCY0JvQmNCf0J7QkiDQmNCb0JjQiNCQCivQpNCY0JvQmNCf0J7QkiDQnNCY0JvQntCoCivQpNCY0JvQmNCf0J7QkiDQnNCY0J7QlNCg0JDQkwor0KTQmNCb0JjQn9Ce0JIg0JzQntCc0JjQoAor0KTQmNCb0JjQn9Ce0JIg0J3QmNCa0J7Qm9CQCivQpNCY0JvQmNCf0J7QkiDQn9Cg0JXQlNCg0JDQkwor0KTQmNCb0JjQn9Ce0JIg0KDQkNCU0J7QktCQ0J0KK9Ck0JjQm9CY0J/QntCSINCh0JvQkNCC0JDQndCQCivQpNCY0JvQmNCf0J7QkiDQotCY0KXQntCc0JjQoAor0KTQmNCb0JjQn9Ce0JIg0KLQmNCI0JDQndCQCivQpNCY0JvQmNCf0J7QktCY0Isg0KfQldCU0J4KK9Ck0JjQm9CY0J/QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KTQmNCb0JjQn9Ce0JLQmNCLINCQ0J3QotCe0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQkdCe0KjQmtCeCivQpNCY0JvQmNCf0J7QktCY0Isg0JHQntCT0J7QnNCY0KAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQkdCe0KDQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0KTQmNCb0JjQn9Ce0JLQmNCLLdCU0JDQnNCI0JDQndCe0JIg0J3QkNCU0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCU0JjQiNCQ0J3QkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCU0J7QkdCg0JjQptCQCivQpNCY0JvQmNCf0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQpNCY0JvQmNCf0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQmNCS0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCY0JLQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQiNCe0JLQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0IjQntCS0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQidCY0InQkNCd0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCJ0KPQkdCY0J3QmtCeCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CV0J3QkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9Ca0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQntCI0JrQngor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ck0JjQm9CY0J/QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQpNCY0JvQmNCf0J7QktCY0Isg0JzQmNCg0JrQngor0KTQmNCb0JjQn9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ck0JjQm9CY0J/QntCS0JjQiyDQndCQ0KLQkNCo0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ck0JjQm9CY0J/QntCS0JjQiyDQndCY0JrQntCb0JjQndCQCivQpNCY0JvQmNCf0J7QktCY0Isg0J/QkNCj0JvQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCf0JXQoNCeCivQpNCY0JvQmNCf0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Ck0JjQm9CY0J/QntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCg0JDQlNCe0IjQmtCeCivQpNCY0JvQmNCf0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KTQmNCb0JjQn9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0KDQkNCd0JrQkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCg0KPQltCQ0J3QkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCg0KPQlNCe0JvQpAor0KTQmNCb0JjQn9Ce0JLQmNCLINCh0JDQktCQINCU0JjQn9CbINCY0J3Qkwor0KTQmNCb0JjQn9Ce0JLQmNCLINCh0JDQktCQCivQpNCY0JvQmNCf0J7QktCY0Isg0KHQmNCR0JjQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCh0JvQkNCS0JrQngor0KTQmNCb0JjQn9Ce0JLQmNCLINCh0J3QldCW0JDQndCQCivQpNCY0JvQmNCf0J7QktCY0Isg0KHQn9CQ0KHQntCI0JUKK9Ck0JjQm9CY0J/QntCS0JjQiyDQodCg0ILQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0KHQoNCV0IvQmtCeCivQpNCY0JvQmNCf0J7QktCY0Isg0KHQotCV0JLQkNCdINCU0KAg0KHQotCe0JzQkNCi0J7Qm9Ce0JMKK9Ck0JjQm9CY0J/QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQpNCY0JvQmNCf0J7QktCY0Isg0JLQldCh0J3QkAor0KTQmNCb0JjQn9Ce0JLQmNCLINCS0JjQlNCe0KHQkNCSCivQpNCY0JvQmNCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KTQmNCb0JjQn9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQpNCY0JvQmNCf0J7QktCY0Isg0JfQntCg0JDQnQor0KTQmNCb0JjQn9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Ck0JjQm9CY0J/QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Ck0JjQm9CY0J/QntCS0KHQmtCQLdCe0JHQoNCQ0JTQntCS0JjQiyDQktCV0KDQkAor0KTQmNCb0JjQn9Ce0JLQodCa0Jgg0JHQntCW0J4KK9Ck0JjQm9CY0J/QntCS0KHQmtCYINCi0J7QlNCe0KEKK9Ck0JjQm9Ca0J4g0JTQoNCQ0JPQmNCm0JAKK9Ck0JjQm9Ca0J4g0IjQntCh0JjQnwor0KTQmNCb0JrQniDQiNCe0JLQkNCdCivQpNCY0JvQmtCeINCc0JDQoNCY0IjQkAor0KTQmNCb0JrQniDQnNCY0KXQkNCJCivQpNCY0JvQmtCeINCc0JjQpdCQ0IkKK9Ck0JjQm9Ca0J4g0J/QkNCS0JXQmwor0KTQmNCb0JrQniDQotCY0KXQntCc0JjQoAor0KTQmNCd0KfQo9CgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpNCY0J3Qp9Cj0KAg0IjQntCW0JXQpAor0KTQmNCd0KfQo9CgINCI0KPQm9CY0IjQkNCd0JAKK9Ck0JjQndCn0KPQoCDQm9CQ0JTQmNCh0JvQkNCSCivQpNCY0J3Qj9CQ0J3QntCS0JjQiyDQk9Ce0IjQmtCeCivQpNCY0J3Qj9CQ0J3QntCS0JjQiyDQnNCY0JrQngor0KTQmNCd0I/QkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0KTQmNCd0I/QkNCd0J7QktCY0Isg0J7QkdCg0JDQlAor0KTQmNCd0Jot0JTQmNCc0JjQotCg0JjQiNCV0JLQmNCLINCU0J7QoNCe0KLQldCQCivQpNCY0J3QmiDQktCY0JrQotCe0KAg0J3QntCS0JjQndCQ0KAKK9Ck0JjQndCa0JAg0JPQntCg0KfQkNCdCivQpNCY0KAg0JHQldCQ0KLQkAor0KTQmNCg0JDQiiDQiNCe0JbQldCkCivQpNCY0KDQkNCK0Jgg0ILQldCg0IIKK9Ck0JjQoNCQ0IrQmCDQgtCe0KDQgtCVCivQpNCY0KDQkNCK0Jgg0ILQntCg0ILQlQor0KTQmNCg0JDQitCYINCV0KDQltCV0JHQldCiCivQpNCY0KDQkNCK0Jgg0IjQntCS0JDQnQor0KTQmNCg0JDQitCYINCS0JjQmtCi0J7QoAor0KTQmNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Ck0JjQoNCj0JvQntCS0JjQiyDQmtCe0KHQotCQ0J3QotCY0J0KK9Ck0JjQodCi0KDQmNCLINCC0J7QoNCC0JUKK9Ck0JjQodCi0KDQmNCLINCc0JjQoNCI0JDQndCQCivQpNCY0JLQldCo0Jgg0JPQkNCR0J7QoAor0KTQmNCS0JXQqNCYINCi0JjQkdCe0KAKK9Ck0JvQkNCmINCY0JLQkNCd0JrQkAor0KTQm9CQ0KYg0J/QldCi0JDQoAor0KTQm9CQ0IjQoSDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KTQm9CV0JPQldCgINCh0KLQldCS0JDQnQor0KTQm9CV0JPQniDQmNCS0JDQnQor0KTQm9CV0JPQniDQnNCQ0KDQotCQCivQpNCb0JXQmtCQ0Kcg0JLQm9CQ0JTQngor0KTQm9CY0KLQndCV0KAg0J7QodCa0JDQoAor0KTQm9Ce0JrQkCDQgtCV0J3QmNCa0JAKK9Ck0JvQntCg0JAg0JLQkNCh0JAKK9Ck0JvQntCg0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ck0JvQntCg0JjQiyDQidCj0JHQmNCm0JAKK9Ck0JvQntCg0JjQiyDQl9Ce0KDQkNCdCivQpNCb0J7QoNCY0Isg0JfQntCg0JDQnQor0KTQm9Ce0KDQmNCdINCS0JjQndCa0JAKK9Ck0J7QlNCe0KAg0JbQntCk0JjQiNCQCivQpNCe0JTQntCgINCQ0J3QkAor0KTQntCU0J7QoCDQkNCd0JTQoNCY0IjQkAor0KTQntCU0J7QoCDQldCg0JbQldCR0JXQogor0KTQntCU0J7QoCDQpNCV0KDQldCd0KYKK9Ck0J7QlNCe0KAg0KTQoNCQ0IrQkAor0KTQntCU0J7QoCDQpNCg0JDQitCQCivQpNCe0JTQntCgINCI0J7Qm9CQ0J0KK9Ck0J7QlNCe0KAg0IjQntCS0JDQnQor0KTQntCU0J7QoCDQiNCe0JLQkNCdCivQpNCe0JTQntCgINCa0JDQm9Cc0JDQnQor0KTQntCU0J7QoCDQmtCQ0KLQkAor0KTQntCU0J7QoCDQm9CQ0IjQntCoCivQpNCe0JTQntCgINCb0JDQodCb0J4KK9Ck0J7QlNCe0KAg0JvQkNCh0JvQngor0KTQntCU0J7QoCDQm9CQ0KHQm9CeCivQpNCe0JTQntCgINCb0JDQodCb0J4KK9Ck0J7QlNCe0KAg0JvQmNCU0JjQiNCQCivQpNCe0JTQntCgINCc0JDQoNCi0JAKK9Ck0J7QlNCe0KAg0J7QodCa0JDQoCDQlNCY0J/QmyDQntCV0KYKK9Ck0J7QlNCe0KAg0KLQmNCR0J7QoAor0KTQntCU0J7QoCDQotCY0JHQntCgCivQpNCe0JTQntCgINCi0JjQkdCe0KAKK9Ck0J7QlNCe0KAg0JfQlNCg0JDQktCa0J4KK9Ck0J7QlNCe0KDQkCDQiNCQ0J3QmtCeCivQpNCe0JPQkNCg0JDQqNCYINCC0JXQoNCCINCU0KAKK9Ck0J7Qk9CQ0KDQkNCo0Jgg0ILQldCg0IIKK9Ck0J7Qk9CQ0KDQkNCo0Jgg0JDQndCU0KDQmNCI0JAKK9Ck0J7Qk9CQ0KDQkNCo0Jgg0JDQndCY0JrQngor0KTQntCT0JDQoNCQ0KjQmCDQmNCb0J7QndCQCivQpNCe0JPQkNCg0JDQqNCYINCh0KLQldCS0JDQnQor0KTQntCT0Jsg0JzQkNCT0JTQkNCb0JXQndCQCivQpNCe0IjQmtCQ0KAg0IjQkNCd0JrQngor0KTQntCb0JjQiyDQoNCQ0JTQntCc0JjQoCDQlNCgCivQpNCe0JvQotCY0J0g0JzQkNCg0JPQmNCi0JAKK9Ck0J7Qm9Ci0JjQnSDQnNCY0JvQmNCm0JAKK9Ck0J7QndCi0JDQiiDQm9Ce0KLQkNCgCivQpNCe0KDQkNCYINCX0J7Qm9Ci0JDQnQor0KTQntCg0JDQmCDQl9Ce0KDQmNCm0JAKK9Ck0J7QoNCT0JDQpyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KTQntCg0JPQmNCLINCY0JLQkNCdCivQpNCe0KDQk9CeINCY0KjQotCS0JDQnQor0KTQntCg0JPQniDQm9CQ0KHQm9CeCivQpNCe0KDQmNCo0JrQntCSINCI0J7QktCQ0J3QmtCQCivQpNCe0KDQmNCo0JrQntCSINCb0JDQl9CQ0KAKK9Ck0J7QoNCY0KjQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpNCe0KDQmtCQ0J/QkCDQodCQ0JLQngor0KTQntCg0JrQkNCf0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KTQntCg0JrQkNCf0JjQiyDQmNCS0JDQndCa0JAKK9Ck0J7QoNCa0JDQn9CY0Isg0JvQkNCX0JDQoAor0KTQntCg0JrQkNCf0JjQiyDQnNCQ0KDQmNCI0JAKK9Ck0J7QoNCa0JDQn9CY0Isg0J3QmNCa0J7Qm9CQCivQpNCe0KDQmtCQ0J/QmNCLINCh0JDQktCQCivQpNCe0KDQmtCQ0J/QmNCLINCh0JvQkNCS0JjQptCQCivQpNCe0KDQmtCQ0J/QmNCLINCS0JXQm9CY0J3QmtCQCivQpNCe0KDQniDQmNCS0JDQnQor0KTQntCg0J4g0IjQo9Cb0JjQiNCQ0J3QkAor0KTQntCi0JjQiyDQgtCe0KDQgtCVCivQpNCe0JfQldCa0J7QqCDQkNCd0JrQmNCm0JAKK9Ck0KDQp9CV0Jog0ILQo9Cg0JAKK9Ck0KDQp9CV0Jog0JzQkNCg0JjQiNCQCivQpNCg0JbQntCfINCc0JjQqNCVCivQpNCg0JbQntCS0JjQiyDQgtCe0KDQgtCVCivQpNCg0JbQntCS0JjQiyDQk9CQ0JLQoNCY0JvQngor0KTQoNCW0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ck0KDQltCe0JLQmNCLINCc0JjQm9CV0J3QkAor0KTQoNCQ0KbQmNCb0JUg0J3QmNCm0JUKK9Ck0KDQkNCI0KHQoiDQoNCj0JTQntCb0KQKK9Ck0KDQkNCI0KLQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KTQoNCQ0IjQlyDQn9CV0KLQkNCgCivQpNCg0JDQndCn0JjQiyDQoNCe0JoKK9Ck0KDQkNCd0KYg0JzQkNCT0JTQkNCb0JXQndCQINCU0JjQn9CbINCY0J3Qkwor0KTQoNCQ0J3QptCV0Ikg0KTQoNCQ0J3Qpgor0KTQoNCQ0J3QptCV0KAg0JjQktCQ0J0KK9Ck0KDQkNCd0KbQldCgINCY0JLQkNCdCivQpNCg0JDQndCm0JjQqNCa0J7QktCY0Isg0JDQotCY0JvQkAor0KTQoNCQ0J3QptCY0KjQmtCe0JLQmNCLINCY0JLQkNCdCivQpNCg0JDQndCm0JjQqNCa0J7QktCY0Isg0JzQkNCi0JUKK9Ck0KDQkNCd0KbQmNCQINCQ0J3QlNCg0JjQiNCQCivQpNCg0JDQndCm0JjQkCDQmNCo0KLQktCQ0J0KK9Ck0KDQkNCd0KbQmNCQINCf0JXQotCQ0KAKK9Ck0KDQkNCd0KbQmNCI0JAg0IjQntCW0JXQpAor0KTQoNCQ0J3QptCY0IjQkC3QmtCj0JrQmNCn0JrQkCDQnNCQ0KDQk9CQ0KDQldCi0JAKK9Ck0KDQkNCd0KbQmNCh0KLQmCDQgtCe0KDQgtCVCivQpNCg0JDQndCm0JjQodCi0Jgg0IjQkNCg0J7QodCb0JDQkgor0KTQoNCQ0J3QptCY0KHQotCYINCf0JDQktCb0JUKK9Ck0KDQkNCd0KbQmNCh0KLQmCDQktCb0JDQlNCY0JzQmNCgCivQpNCg0JDQndCm0KPQodCa0Jgg0JDQm9CV0JrQodCQCivQpNCg0JDQndCm0KPQodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQpNCg0JDQndCm0KPQodCa0Jgg0JTQkNCg0JjQndCa0JAKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQlNCV0KHQkNCd0JrQkAor0KTQoNCQ0J3QptCj0KHQmtCYINCU0KDQkNCT0JDQnQor0KTQoNCQ0J3QptCj0KHQmtCYINCU0KPQqNCQ0J0KK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQmNCS0JDQnSDQlNCgCivQpNCg0JDQndCm0KPQodCa0Jgg0IjQntCS0JDQndCa0JAKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQnNCQ0KDQmtCeCivQpNCg0JDQndCm0KPQodCa0Jgg0JzQmNCb0JDQnQor0KTQoNCQ0J3QptCj0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQn9CV0KLQkNCgCivQpNCg0JDQndCm0KPQodCa0Jgg0KDQkNCU0J7QktCQ0J0KK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KTQoNCQ0J3QptCj0KHQmtCYINCh0KLQoNCQ0KXQmNCK0JAKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQl9Ce0KDQkNCdCivQpNCg0JDQndCm0KPQodCa0Jgg0JfQntCg0JDQnQor0KTQoNCQ0J3QptCj0KHQmtCYINCX0J7QoNCa0JAKK9Ck0KDQkNCd0KbQo9Ch0JrQmCDQl9Ce0KDQmtCQCivQpNCg0JDQndCm0KPQlyDQlNCQ0KDQmNCd0JrQkAor0KTQoNCQ0J3QptCj0Jcg0IjQldCb0JXQndCQCivQpNCg0JDQndCm0KPQlyDQktCV0JvQmNCc0JjQoAor0KTQoNCQ0J3QptCj0Jcg0JLQo9CaCivQpNCg0JDQndCV0KLQkCDQiNCe0JLQngor0KTQoNCQ0J3QmNCLINCY0JLQkNCdCivQpNCg0JDQndCY0Isg0JzQmNCb0JrQkAor0KTQoNCQ0IrQmNCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQpNCg0JDQitCY0Isg0JzQkNCg0JjQptCQCivQpNCg0JDQitCeINCW0KPQltCQ0J3QkAor0KTQoNCQ0J3QmiDQgtCV0KDQggor0KTQoNCQ0J3QmiDQpNCV0KDQldCd0KYKK9Ck0KDQkNCd0Jog0JjQm9CV0KgKK9Ck0KDQkNCd0Jog0IjQkNCd0J7QqAor0KTQoNCQ0J3QmiDQotCY0JHQntCgCivQpNCg0JDQndCa0JAg0JzQmNCl0JDQiNCb0J4KK9Ck0KDQkNCd0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQpNCg0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQpNCg0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ck0KDQkNCd0JfQldCgINCY0JLQkNCdCivQpNCg0JDQotCe0Igg0IjQntCm0JAKK9Ck0KDQkNCi0KDQmNCLINCh0JjQk9Cc0KPQndCUCivQpNCg0JDQotCj0KbQkNCdINCC0J7QoNCC0JUKK9Ck0KDQkNCi0KPQptCQ0J0g0ILQntCg0ILQlQor0KTQoNCQ0KLQo9Cm0JDQnSDQpNCY0JvQmNCfCivQpNCg0JDQotCj0KbQkNCdINCY0JLQkNCdCivQpNCg0JDQotCj0KbQkNCdINCd0JXQktCV0J3QkAor0KTQoNCQ0KLQo9Cm0JDQnSDQn9CV0KLQkNCgCivQpNCg0JDQotCj0KbQkNCd0J7QkiDQmNCS0JDQndCa0JAKK9Ck0KDQldCYINCV0JvQmNCX0JDQkdCV0KLQkAor0KTQoNCV0JzQldCgINCQ0J3QotCj0J0KK9Ck0KDQldCc0Jsg0KjQkNCd0JTQntCgCivQpNCg0JXQndCa0JXQmyDQkNCd0JAKK9Ck0KDQldCd0JrQldCbINCV0JLQkAor0KTQoNCV0J3QmtCbINCU0KDQkNCT0JjQptCQCivQpNCg0JjQpyDQkdCe0JbQmNCU0JDQoAor0KTQoNCY0Kcg0JrQkNCi0JjQptCQCivQpNCg0JjQqCDQlNCg0JDQk9CQ0J0KK9Ck0KDQmNCoINCc0JjQm9CQ0J0KK9Ck0KDQmNCo0KfQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ck0KDQmNCmINCg0KPQlNCe0JvQpAor0KTQoNCY0JTQoNCY0KUg0JDQndCQCivQpNCg0JjQlNCg0JjQpSDQiNCV0JvQldCd0JAKK9Ck0KDQmNCU0KDQmNClINCc0JDQk9CU0JAKK9Ck0KDQmNCU0KDQmNClINCX0J7QoNCY0KbQkAor0KTQoNCY0J3QlNCY0Jog0KTQoNCQ0IrQkAor0KTQoNCY0J3QlNCY0Jog0JzQmNCl0JDQiQor0KTQoNCY0J3QlNCg0JjQmiDQkdCV0JvQkAor0KTQoNCa0JAg0JDQoNCi0KPQoAor0KTQoNCa0JAg0J3QmNCa0J7Qm9CQCivQpNCg0Ikg0JzQo9Cl0JDQoNCV0JwKK9Ck0KDQntCbINCc0JDQoNCY0IjQkNCdCivQpNCg0J7QmyDQndCQ0JTQkAor0KTQoNCe0Jsg0JLQmNCb0JjQnAor0KTQoNCj0JbQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KTQo9Cn0JjQmiDQmtCQ0KDQm9CeCivQpNCj0JTQldCg0JXQoCDQiNCj0JvQmNCI0JUKK9Ck0KPQlNCV0KDQldCgINCc0JDQk9CU0JDQm9CV0J3QkAor0KTQo9CI0JrQkCDQgtCe0KDQgtCVCivQpNCj0IjQotCeINCS0JvQkNCU0JjQnNCY0KAKK9Ck0KPQm9CQ0IjQotCV0KAg0ILQntCg0ILQlQor0KTQo9Cd0IvQmNCaINCf0JDQktCb0JUKK9Ck0KPQndCU0KPQoNCj0InQkCDQnNCY0JvQldCd0JrQngor0KTQo9Cd0Jog0KjQotCV0KTQkNCd0JjQiNCQCivQpNCj0J3QmiDQm9CQ0IjQntCoCivQpNCj0J3QotCV0Jog0JjQktCQ0J0KK9Ck0KPQoNCI0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0KTQo9Cg0JvQkNCdINCV0KDQltCV0JHQldCiCivQpNCj0KDQm9CQ0J0g0JzQkNCg0JrQngor0KTQo9Cg0JzQkNCdINCk0KDQkNCK0JAKK9Ck0KPQoNCc0JDQnSDQiNCe0JLQkNCdCivQpNCj0KDQnNCQ0J0g0JzQkNCg0JjQiNCQCivQpNCj0KDQnNCQ0J0g0KLQmNCc0J7QpNCV0IgKK9Ck0KPQoNCc0JDQnSDQotCY0J3QmtCQCivQpNCj0KDQniDQmNCc0KDQlQor0KTQo9Ch0JrQniDQkNCd0JPQldCb0JAKK9Ck0KPQodCa0J4g0JjQqNCi0JLQkNCdCivQpNCj0KHQmtCeINCc0JDQoNCY0IjQkAor0KTQo9Ch0JrQniDQnNCY0KXQkNCJCivQpNCj0KLQniDQkNCd0KLQkNCbCivQpNCj0KLQniDQiNCe0JbQldCkCivQpNCj0KLQniDQiNCe0JbQldCkCivQpNCj0KLQniDQnNCY0KDQmtCeCivQpNCj0KLQntCo0JrQmCDQnNCY0JvQkNCdCivQpNCj0KLQntCo0JrQmCDQnNCY0KLQkAor0JPQkNCn0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JPQkNCn0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JPQkNCn0JXQktCY0Isg0KDQkNCU0JXQndCa0J4KK9CT0JDQp9CV0JLQmNCLINCi0JXQoNCV0JfQkAor0JPQkNCn0JjQiyDQkdCg0JDQndCa0J4KK9CT0JDQp9CY0Isg0JTQkNCd0JjQptCQCivQk9CQ0KfQmNCLINCU0JDQndCY0JvQngor0JPQkNCn0JjQiyDQnNCY0JvQkNCdCivQk9CQ0KfQmNCLINCh0KLQldCS0JDQnQor0JPQkNCn0JjQiyDQodCi0JXQktCQ0J0KK9CT0JDQp9CY0Isg0JLQm9CQ0JTQkNCdCivQk9CQ0KjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JPQkNCo0JXQktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CT0JDQqNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQk9CQ0KjQldCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JPQkNCo0JXQktCY0Isg0KHQkNCS0JrQkAor0JPQkNCo0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9CT0JDQqNCYINCC0JXQnNCQ0JjQiQor0JPQkNCo0Jgg0KXQkNCc0JTQmAor0JPQkNCo0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0JPQkNCo0Jgg0InQo9CQ0J0KK9CT0JDQqNCYINCX0J7QoNCQ0J0KK9CT0JDQqNCY0Isg0JHQntCT0JTQkNCdCivQk9CQ0KjQmNCLINCU0KPQqNCQ0J0KK9CT0JDQqNCY0Isg0JrQntCS0JjQidCa0JAKK9CT0JDQqNCY0Isg0JrQntCS0JjQidCa0JAKK9CT0JDQqNCY0Isg0JrQoNCh0KLQkAor0JPQkNCo0JjQiyDQnNCY0KDQntCJ0KPQkQor0JPQkNCo0JjQiyDQndCY0JrQntCb0JAKK9CT0JDQqNCY0Isg0KHQmNCb0JLQkNCd0JAKK9CT0JDQqNCY0Isg0KLQntCU0J7QoCDQlNCY0J/QmyDQmNCd0JMKK9CT0JDQqNCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0JPQkNCo0JjQiyDQl9CU0KDQkNCS0JrQngor0JPQkNCo0JjQiyDQl9Ce0KDQkAor0JPQkNCo0J/QkNCgINCR0J7Qk9CU0JDQnQor0JPQkNCo0J/QkNCgINCI0JDQndCe0KgKK9CT0JDQqNCf0JDQoCDQm9CQ0IjQntCoCivQk9CQ0KjQn9CQ0KAg0JvQmNCU0JjQiNCQCivQk9CQ0KjQn9CQ0KAg0JzQmNCb0JXQndCa0J4KK9CT0JDQqNCf0JDQoNCV0JLQmNCLINCV0KDQmNCa0JAKK9CT0JDQqNCf0JDQoNCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0JPQkNCo0J/QkNCg0JjQiyDQndCQ0JTQkAor0JPQkNCo0J/QkNCg0JjQnSDQidCY0InQkNCd0JAKK9CT0JDQqNCf0JDQoNCe0JLQmNCLINCI0J7QodCY0J8KK9CT0JDQi9CQINCR0KDQkNCd0JjQodCb0JDQkgor0JPQkNCL0JAg0JzQmNCe0JTQoNCQ0JMKK9CT0JDQi9CQINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQi9CQ0Kgg0JTQoNCQ0JPQmNCm0JAKK9CT0JDQi9CQ0Kgg0KHQmNCd0JjQqNCQCivQk9CQ0IvQkNCoINCh0KLQldCS0JDQnQor0JPQkNCL0JXQqNCQINCC0KPQoNCeCivQk9CQ0IvQldCo0JAg0JHQoNCQ0J3QmtCQCivQk9CQ0IvQldCo0JAg0JTQoNCQ0JPQkNCdCivQk9CQ0IvQldCo0JAg0JTQoNCQ0JPQkNCdCivQk9CQ0IvQldCo0JAg0JjQm9CY0IjQkAor0JPQkNCL0JXQqNCQINCc0JDQndCe0IjQm9CeCivQk9CQ0IvQldCo0JAg0JzQmNCb0J7QqAor0JPQkNCL0JXQqNCQINCc0JjQm9Ce0KDQkNCUCivQk9CQ0IvQldCo0JAg0JzQmNCb0J7QktCQ0J0g0JTQoAor0JPQkNCL0JXQqNCQINCd0JjQmtCe0JvQkAor0JPQkNCL0JXQqNCQINCh0JvQkNCS0JrQngor0JPQkNCL0JXQqNCQINCS0JXQidCa0J4KK9CT0JDQi9CV0KjQkCDQktCb0JDQlNCY0JzQmNCgCivQk9CQ0IvQmNCd0JAg0JbQkNCg0JrQngor0JPQkNCL0JjQndCQINCJ0JjQidCQ0J3QkAor0JPQkNCL0JjQndCe0JLQmNCLINCR0J7QltCeCivQk9CQ0IvQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQk9CQ0IvQmNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JPQkNCL0JjQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9CQ0IvQmNCd0J7QktCY0Isg0KDQkNCI0JrQngor0JPQkNCW0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CT0JDQltCY0Jog0KLQldCg0JXQl9CY0IjQkAor0JPQkNCW0J4g0JrQkNCi0JjQptCQCivQk9CQ0JbQni3QnNCQ0KLQntCo0JrQntCS0JjQiyDQntCb0JPQmNCm0JAKK9CT0JDQltCeINCc0JjQpdCQ0IjQm9CeCivQk9CQ0JbQniDQnNCY0JrQm9Ce0KgKK9CT0JDQgtCQ0J3QodCa0Jgg0JfQntCg0JDQnQor0JPQkNCR0JvQldCgINCS0JjQmtCi0J7QoNCY0IjQkAor0JPQkNCR0J7QoCDQkNCg0J/QkNCUCivQk9CQ0JHQntCgINCR0JXQm9CQCivQk9CQ0JHQntCgINCV0KDQltCV0JHQldCiCivQk9CQ0JHQntCgINCY0KDQldCd0JAKK9CT0JDQkdCe0KAg0IjQntCW0JXQpAor0JPQkNCR0J7QoCDQmtCQ0KDQntCJCivQk9CQ0JHQntCgINCd0JDQndCU0J7QoAor0JPQkNCR0J7QoNCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQk9CQ0JHQntCg0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0JDQkdCe0KDQntCSINCT0JDQktCg0JjQm9CeCivQk9CQ0JHQntCg0J7QkiDQnNCY0JvQkNCdCivQk9CQ0JHQntCg0J7QkiDQnNCY0KLQkAor0JPQkNCR0J7QoNCe0JIg0J/QkNCS0JvQlQor0JPQkNCR0J7QoNCe0JIg0J/QldCi0JDQoAor0JPQkNCR0KDQlSDQoNCe0JrQngor0JPQkNCR0KDQmNCLINCV0JLQmNCm0JAKK9CT0JDQkdCg0JjQiyDQmtCh0JXQndCY0IjQkAor0JPQkNCR0KDQmNCLINCc0JjQpdCQ0IjQm9CeCivQk9CQ0JHQoNCY0Isg0J3QldCh0KLQntCgCivQk9CQ0JHQoNCY0Isg0J/QldCi0JDQoAor0JPQkNCR0KDQmNCLINCh0JvQkNCS0JrQngor0JPQkNCR0KDQmNCV0Jsg0JzQmNCa0JvQntCoCivQk9CQ0JHQoNCY0IjQldCb0KfQmNCLINCX0JTQoNCQ0JLQmtCeCivQk9CQ0JHQoNCe0JLQmNCLINCQ0J3QlNCg0JDQqAor0JPQkNCR0KDQntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0JPQkNCm0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQk9CQ0I/QkCDQmtCg0JjQltCQ0J0KK9CT0JDQj9CQINCg0KPQltCQCivQk9CQ0I/QmNCLINCc0JjQm9CQ0J0KK9CT0JDQj9CY0Isg0JLQmNCd0JrQngor0JPQkNCP0KPQoCDQmNCS0JDQnQor0JPQkNCP0KPQoNCY0Isg0JfQm9CQ0KLQmtCeCivQk9CQ0JTQkNCd0JXQpiDQmtCQ0KLQkNCg0JjQndCQCivQk9CQ0JTQitCQ0Jgg0IjQntCS0JAKK9CT0JDQlNCK0JDQndCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQk9CQ0JPQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CQ0JPQmNCLINCQ0JLQoNCQ0JwKK9CT0JDQk9CY0Isg0JHQntCo0JrQngor0JPQkNCT0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQk9CQ0JPQmNCLINCU0KDQkNCT0JjQptCQCivQk9CQ0JPQmNCLINCU0KPQqNCQ0J0KK9CT0JDQk9CY0Ist0JPQoNCj0JHQldCo0JAg0JzQmNCb0JXQktCQCivQk9CQ0JPQmNCLINCI0J7QktCQ0J3QmtCQCivQk9CQ0JPQmNCLINCI0J7QktCQ0J0KK9CT0JDQk9CY0Isg0J3QmNCa0J7Qm9CQCivQk9CQ0JPQmNCLINCd0JjQmtCe0JvQkAor0JPQkNCT0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQk9CQ0JPQmNCLINCg0JDQlNCe0JLQkNCdCivQk9CQ0JPQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CT0JDQk9CY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JPQkNCT0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CT0JDQk9Ce0JLQmNCLINCd0J7QktCQ0JoKK9CT0JDQk9Ce0JLQmNCLINCe0JvQk9CQCivQk9CQ0JPQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0JPQkNCT0KDQp9CY0J0g0JvQkNCX0JDQoAor0JPQkNCT0KDQp9CY0J0g0JzQm9CQ0JTQldCdCivQk9CQ0JPQoNCY0KbQkCDQiNCe0JLQkNCdCivQk9CQ0JPQo9Cb0JAg0JzQo9CI0J4KK9CT0JDQmNCLINCS0JXQidCa0J4KK9CT0JDQmNCm0JrQmCDQndCY0JrQntCb0JAKK9CT0JDQmNCm0JrQmCDQodCQ0IrQkAor0JPQkNCY0KbQmtCYINCi0JDQndCQ0KHQmNCI0JUKK9CT0JDQmNCm0JrQmCDQktCV0KDQmNCm0JAKK9CT0JDQmNCd0J7QkiDQoNCQ0JTQntCS0JDQnQor0JPQkNCI0KjQmNCdINCh0JvQkNCS0JjQptCQCivQk9CQ0IjQqNCY0J0g0KHQnNCY0InQkAor0JPQkNCI0KjQmNCdINCh0KLQkNCd0JjQodCb0JDQkgor0JPQkNCI0JDQndCY0Isg0KHQotCI0JXQn9CQ0J0KK9CT0JDQiNCU0JAg0KjQkNCd0JTQntCgCivQk9CQ0IjQlNCe0Kgg0ILQo9Cb0JAKK9CT0JDQiNCU0J7QqCDQmNCo0KLQktCQ0J0KK9CT0JDQiNCU0J7QqCDQmNCR0J7QidCQCivQk9CQ0IjQlNCe0Kgg0JvQkNCh0JvQngor0JPQkNCI0JTQntCoINCJ0KPQkdCe0JzQmNCgCivQk9CQ0IjQlNCe0Kgg0JzQmNCl0JDQiNCb0J4KK9CT0JDQiNCU0J7QqCDQndCY0JrQntCb0JAKK9CT0JDQiNCU0J7QqCDQn9CV0KLQkNCgCivQk9CQ0IjQlNCe0KjQldCS0JjQiyDQgtCe0KDQgtCVCivQk9CQ0IjQlNCe0JHQoNCQ0J3QodCa0Jgg0ILQntCg0ILQlSDQlNCgCivQk9CQ0IjQlNCe0JHQoNCQ0J3QodCa0Jgg0JTQkNCd0JjQptCQCivQk9CQ0IjQlNCe0JHQoNCQ0J3QodCa0Jgg0JTQoNCQ0JPQmNCm0JAKK9CT0JDQiNCU0J7QkdCg0JDQndCh0JrQmCDQidCj0JHQmNCm0JAKK9CT0JDQiNCU0J7QkdCg0JDQndCh0JrQmCDQnNCQ0KDQmNCI0JAKK9CT0JDQiNCU0J7QkdCg0JDQndCh0JrQmCDQnNCY0JvQmNCS0J7QiAor0JPQkNCI0JTQntCR0KDQkNCd0KHQmtCYINCf0JXQotCQ0KAKK9CT0JDQiNCU0J7QkdCg0JDQndCh0JrQmCDQotCe0JTQntCgCivQk9CQ0IjQldCgINCC0KPQoNCQCivQk9CQ0IjQldCgINCI0J7QptCQCivQk9CQ0IjQldCgINCb0JXQntCd0JAKK9CT0JDQiNCV0KAg0JzQkNCd0J7QiNCb0J4KK9CT0JDQiNCV0KAg0J3QkNCU0JAKK9CT0JDQiNCT0JXQoCDQiNCe0JbQldCkCivQk9CQ0IjQmNCo0JjQnSDQlNCQ0KDQkAor0JPQkNCI0JjQqNCY0J0g0JvQkNCX0JDQoAor0JPQkNCI0JjQqNCY0J0g0JzQmNCb0JjQptCQCivQk9CQ0IjQmNCo0JjQnSDQn9CV0KLQkNCgCivQk9CQ0IjQmNCo0JjQnSDQodCi0JXQktCQ0J0KK9CT0JDQiNCY0KjQmNCdINCh0KLQldCS0JDQnQor0JPQkNCI0JjQqNCY0J0g0KLQntCc0JjQodCb0JDQkgor0JPQkNCI0JjQiyDQltCQ0KDQmtCeCivQk9CQ0IjQmNCLINCW0JDQoNCa0J4KK9CT0JDQiNCY0Isg0JbQmNCS0JrQkAor0JPQkNCI0JjQiyDQltCY0JLQmtCeCivQk9CQ0IjQmNCLINCW0JjQktCe0KLQkAor0JPQkNCI0JjQiyDQgtCe0KDQgtCVCivQk9CQ0IjQmNCLINCC0KPQoNCeCivQk9CQ0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CQ0IjQmNCLINCQ0J3QkAor0JPQkNCI0JjQiyDQkdCe0JbQmNCm0JAKK9CT0JDQiNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CT0JDQiNCY0Isg0JHQntCT0JTQkNCdCivQk9CQ0IjQmNCLINCR0J7Qk9Ce0InQo9CRCivQk9CQ0IjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CT0JDQiNCY0Isg0JHQoNCQ0J3QmtCeCivQk9CQ0IjQmNCLINCR0KDQkNCd0JrQngor0JPQkNCI0JjQiyDQptCS0JjQiNCQ0J0KK9CT0JDQiNCY0Isg0KbQktCY0IjQkNCdCivQk9CQ0IjQmNCLINCU0JDQndCY0KbQkAor0JPQkNCI0JjQiyDQlNCV0IjQkNCdCivQk9CQ0IjQmNCLINCU0JXQiNCQ0J0KK9CT0JDQiNCY0Isg0JTQldCI0JDQnQor0JPQkNCI0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CT0JDQiNCY0Isg0JTQoNCQ0JPQkNCdCivQk9CQ0IjQmNCLINCU0KDQkNCT0JDQnQor0JPQkNCI0JjQiyDQlNCg0JDQk9CY0KbQkAor0JPQkNCI0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQk9CQ0IjQmNCLINCU0KDQkNCT0J4KK9CT0JDQiNCY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CT0JDQiNCY0Isg0JTQo9Co0JrQniDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JPQkNCI0JjQiyDQk9Ce0IjQmtCeCivQk9CQ0IjQmNCLINCT0J7QoNCQ0J0KK9CT0JDQiNCY0Isg0JPQntCg0JTQkNCd0JAKK9CT0JDQiNCY0Isg0JjQkdCe0InQkAor0JPQkNCI0JjQiyDQiNCV0JvQldCd0JAKK9CT0JDQiNCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JPQkNCI0JjQiyDQmtCg0JjQodCi0JjQndCQCivQk9CQ0IjQmNCLINCa0KDQo9Cd0JAKK9CT0JDQiNCY0Isg0JvQkNCX0JDQoAor0JPQkNCI0JjQiyDQm9CQ0JfQngor0JPQkNCI0JjQiyDQnNCQ0JrQodCQCivQk9CQ0IjQmNCLINCc0JDQoNCY0IjQkCDQlNCgCivQk9CQ0IjQmNCLINCc0JDQoNCY0IjQkAor0JPQkNCI0JjQiyDQnNCQ0KDQmNCd0JrQniDQlNCgCivQk9CQ0IjQmNCLINCc0JjQi9CeCivQk9CQ0IjQmNCLINCc0JjQmtCQCivQk9CQ0IjQmNCLINCc0JjQm9CQ0J3QkAor0JPQkNCI0JjQiyDQnNCY0JvQkNCdCivQk9CQ0IjQmNCLINCc0JjQm9CQ0J0KK9CT0JDQiNCY0Isg0JzQmNCb0JDQnQor0JPQkNCI0JjQiyDQnNCY0JvQkNCdCivQk9CQ0IjQmNCLINCc0JjQm9CQ0J0KK9CT0JDQiNCY0Isg0JzQmNCb0JjQndCa0J4KK9CT0JDQiNCY0Isg0JzQmNCb0JjQktCe0IgKK9CT0JDQiNCY0Isg0JzQmNCb0J7QqAor0JPQkNCI0JjQiyDQnNCY0JvQntCI0JrQkAor0JPQkNCI0JjQiyDQnNCY0JvQntCh0JDQkgor0JPQkNCI0JjQiyDQnNCY0JvQntCS0JDQnQor0JPQkNCI0JjQiyDQnNCY0J7QlNCg0JDQkwor0JPQkNCI0JjQiyDQnNCY0J7QlNCg0JDQkwor0JPQkNCI0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JPQkNCI0JjQiyDQnNCY0KDQmtCeINCU0KAKK9CT0JDQiNCY0Isg0JzQmNCg0JrQngor0JPQkNCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9CQ0IjQmNCLINCc0JjQotCg0JAKK9CT0JDQiNCY0Isg0JzQm9CQ0JTQldCd0JrQngor0JPQkNCI0JjQiyDQnNCb0JDQlNCV0J0KK9CT0JDQiNCY0Isg0JzQntCc0KfQmNCb0J4KK9CT0JDQiNCY0Isg0J3QldCU0JXQidCa0J4KK9CT0JDQiNCY0Isg0J3QmNCa0J7Qm9CQINCU0JjQn9CbINCY0J3Qkwor0JPQkNCI0JjQiyDQndCY0JrQntCb0JAKK9CT0JDQiNCY0Isg0J3QmNCa0J7Qm9CQCivQk9CQ0IjQmNCLINCd0J7QktCQ0JoKK9CT0JDQiNCY0Isg0J7Qm9CY0JLQldCg0JAKK9CT0JDQiNCY0Isg0J/QldCb0JrQkAor0JPQkNCI0JjQiyDQn9CV0KDQodCQCivQk9CQ0IjQmNCLINCg0JDQlNCV0J3QmtCeCivQk9CQ0IjQmNCLINCg0JDQlNCc0JjQm9CQCivQk9CQ0IjQmNCLINCg0JDQlNCe0JzQmNCgCivQk9CQ0IjQmNCLINCg0JDQiNCa0JAKK9CT0JDQiNCY0Isg0KDQkNCi0JrQngor0JPQkNCI0JjQiyDQoNCQ0KLQmtCeCivQk9CQ0IjQmNCLINCg0J7Ql9CQ0JvQmNCI0JAKK9CT0JDQiNCY0Isg0KDQo9CW0JjQptCQCivQk9CQ0IjQmNCLINCh0JDQktCQCivQk9CQ0IjQmNCLINCh0JvQkNCa0JAKK9CT0JDQiNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CT0JDQiNCY0Isg0KHQm9CQ0JLQmtCeCivQk9CQ0IjQmNCLINCh0JvQkNCS0JrQngor0JPQkNCI0JjQiyDQodCg0JXQi9Ca0J4KK9CT0JDQiNCY0Isg0KHQoNCV0KLQngor0JPQkNCI0JjQiyDQodCi0JDQndCY0JzQmNCgCivQk9CQ0IjQmNCLINCh0KLQkNCd0J7QiNCb0J4KK9CT0JDQiNCY0Isg0KHQotCe0IjQkNCdCivQk9CQ0IjQmNCLINCh0KLQoNCQ0KXQmNCK0JAKK9CT0JDQiNCY0Isg0KHQktCV0KLQntCX0JDQoAor0JPQkNCI0JjQiyDQotCQ0J3QkNCh0JrQngor0JPQkNCI0JjQiyDQktCV0JvQmNCc0JjQoAor0JPQkNCI0JjQiyDQktCV0KHQndCQCivQk9CQ0IjQmNCLINCS0JjQlNCQCivQk9CQ0IjQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9CT0JDQiNCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQk9CQ0IjQmNCLINCX0J7QoNCQ0J0KK9CT0JDQiNCY0KbQkCDQkdCg0JDQndCa0J4KK9CT0JDQiNCY0KbQmtCYINCR0KDQkNCd0JrQngor0JPQkNCI0JjQptCa0Jgg0JTQo9Co0JDQnQor0JPQkNCI0JjQptCa0Jgg0IjQldCb0JXQndCQCivQk9CQ0IjQmNCm0JrQmCDQm9CQ0JfQkNCgCivQk9CQ0IjQmNCm0JrQmCDQnNCQ0KDQmNCI0JAKK9CT0JDQiNCY0KbQmtCYINCc0JjQm9CQCivQk9CQ0IjQmNCm0JrQmCDQnNCY0JvQmNCm0JAKK9CT0JDQiNCY0KbQmtCYINCh0JDQktCQCivQk9CQ0IjQmNCdINCW0JjQktCa0J4KK9CT0JDQiNCY0J0g0ILQntCg0ILQlQor0JPQkNCI0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQkNCI0JjQnSDQkNCd0JrQkAor0JPQkNCI0JjQnSDQkdCg0JDQndCa0J4KK9CT0JDQiNCY0J0g0JTQoNCQ0JPQmNCm0JAKK9CT0JDQiNCY0J0g0IjQntCS0JDQnQor0JPQkNCI0JjQnSDQm9CQ0JfQkNCgCivQk9CQ0IjQmNCdINCc0JjQpdCQ0IjQm9CeCivQk9CQ0IjQmNCdINCc0JjQm9CQ0J0KK9CT0JDQiNCY0J0g0JzQmNCb0JXQndCa0J4KK9CT0JDQiNCY0J0g0JzQmNCb0J7QktCQ0J0KK9CT0JDQiNCY0J0g0JzQmNCg0IjQkNCd0JAKK9CT0JDQiNCY0J0g0J3QkNCU0JAKK9CT0JDQiNCY0J0g0J3QldCS0JXQndCa0JAKK9CT0JDQiNCY0J0g0J/QldCi0JDQoAor0JPQkNCI0JjQnSDQodCb0JDQktCa0JAg0JTQoAor0JPQkNCI0JjQnSDQodCS0JXQotCb0JDQndCQCivQk9CQ0IjQmNCdINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQiNCY0J3QkCDQlNCg0JDQk9Ce0JzQmNCgCivQk9CQ0IjQmNCd0J7QkiDQltCY0JLQkNCdCivQk9CQ0IjQmNCd0J7QkiDQltCY0JLQmtCeCivQk9CQ0IjQmNCd0J7QkiDQltCY0JLQmtCeCivQk9CQ0IjQmNCd0J7QkiDQgtCe0JrQmNCm0JAKK9CT0JDQiNCY0J3QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CQ0IjQmNCd0J7QkiDQkNCd0ILQldCb0JrQkAor0JPQkNCI0JjQndCe0JIg0JHQoNCQ0J3QmtCeCivQk9CQ0IjQmNCd0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9CT0JDQiNCY0J3QntCSINCU0KDQkNCT0J7QnNCY0KAKK9CT0JDQiNCY0J3QntCSINCY0JLQkNCd0JrQkAor0JPQkNCI0JjQndCe0JIg0IjQldCb0JXQndCQCivQk9CQ0IjQmNCd0J7QkiDQiNCe0JLQkNCdCivQk9CQ0IjQmNCd0J7QkiDQiNCj0JvQmtCQCivQk9CQ0IjQmNCd0J7QkiDQmtCe0KHQotCQCivQk9CQ0IjQmNCd0J7QkiDQmtCe0KHQotCQCivQk9CQ0IjQmNCd0J7QkiDQm9CQ0JfQkNCgCivQk9CQ0IjQmNCd0J7QkiDQm9CQ0JfQkNCgCivQk9CQ0IjQmNCd0J7QkiDQm9CQ0JfQkNCgCivQk9CQ0IjQmNCd0J7QkiDQidCY0InQkNCd0JAKK9CT0JDQiNCY0J3QntCSINCJ0KPQkdCY0KbQkAor0JPQkNCI0JjQndCe0JIg0InQo9CR0JjQptCQCivQk9CQ0IjQmNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9CT0JDQiNCY0J3QntCSINCc0JDQoNCa0J4KK9CT0JDQiNCY0J3QntCSINCc0JDQoNCa0J4KK9CT0JDQiNCY0J3QntCSINCc0JjQm9CQ0J0KK9CT0JDQiNCY0J3QntCSINCc0JjQm9Ce0KDQkNCUCivQk9CQ0IjQmNCd0J7QkiDQnNCY0JvQntCg0JDQlAor0JPQkNCI0JjQndCe0JIg0JzQmNCb0J7QoNCQ0JQKK9CT0JDQiNCY0J3QntCSINCd0JjQmtCe0JvQkAor0JPQkNCI0JjQndCe0JIg0J/QldCg0JAKK9CT0JDQiNCY0J3QntCSINCf0JXQoNCh0JjQlNCQCivQk9CQ0IjQmNCd0J7QkiDQoNCQ0JTQkAor0JPQkNCI0JjQndCe0JIg0KDQkNCU0JjQktCe0IgKK9CT0JDQiNCY0J3QntCSINCg0JDQlNCY0JLQntCICivQk9CQ0IjQmNCd0J7QkiDQodCQ0JLQkAor0JPQkNCI0JjQndCe0JIg0KHQotCV0JLQkNCdCivQk9CQ0IjQmNCd0J7QkiDQodCi0JXQktCQ0J0KK9CT0JDQiNCY0J3QntCSINCi0J7QlNCe0KAKK9CT0JDQiNCY0J3QntCSINCS0JXQm9CY0JzQmNCgCivQk9CQ0IjQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JPQkNCI0JjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CT0JDQiNCY0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CT0JDQiNCY0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JPQkNCI0JjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CT0JDQiNCY0J3QntCS0JjQiyDQmNCa0J7QndCY0IjQkAor0JPQkNCI0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CT0JDQiNCY0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQk9CQ0IjQmNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQk9CQ0IjQmNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQk9CQ0IjQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JPQkNCI0J4g0JjQqNCi0JLQkNCdCivQk9CQ0IjQntCU0Jgg0IjQntCW0JXQpAor0JPQkNCI0J7QlNCYINCc0JDQoNCY0IjQkAor0JPQkNCI0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JPQkNCI0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CT0JDQiNCe0JLQmNCLINCg0JDQlNCe0IjQlQor0JPQkNCI0KLQkCDQkNCd0JjQptCQCivQk9CQ0IjQotCQINCQ0KPQoNCV0JvQmNCI0JAKK9CT0JDQmiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JPQkNCaINCc0JjQm9CQ0J0KK9CT0JDQmiDQndCV0JLQldCd0JrQkAor0JPQkNCaINCg0JDQlNCVCivQk9CQ0Jog0KHQm9CQ0JLQmtCeCivQk9CQ0Jog0KHQndCV0JbQkNCd0JAKK9CT0JDQmiDQl9Ce0KDQmtCQCivQk9CQ0JrQmNCLINCR0J7QqNCa0J4KK9CT0JDQmtCe0JLQmNCLINCQ0J3QotCe0J3QmNCI0JAKK9CT0JDQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JPQkNCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQk9CQ0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQk9CQ0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQk9CQ0JrQntCS0JjQiyDQoNCQ0J3QmtCeCivQk9CQ0JrQntCS0JjQiyDQl9Ce0KDQkAor0JPQkNCbINCo0JDQndCU0J7QoAor0JPQkNCbINCC0KPQm9CQCivQk9CQ0Jsg0ILQo9Cb0JAKK9CT0JDQmyDQkNCd0JrQkAor0JPQkNCbINCk0JXQoNCV0J3Qpgor0JPQkNCbINCk0JXQoNCV0J3Qpgor0JPQkNCbINCk0JXQoNCV0J3Qpgor0JPQkNCbINCT0JDQkdCe0KAKK9CT0JDQmyDQk9CY0JfQldCb0JAKK9CT0JDQmyDQiNCQ0J3QntCoCivQk9CQ0Jsg0IjQntCW0JXQpAor0JPQkNCbINCI0J7QltCV0KQKK9CT0JDQmyDQiNCe0JLQkNCdCivQk9CQ0Jsg0JrQkNCb0JzQkNCdCivQk9CQ0Jsg0JvQkNCI0J7QqAor0JPQkNCbINCb0JDQiNCe0KgKK9CT0JDQmyDQnNCQ0KDQk9CY0KIKK9CT0JDQmyDQnNCQ0KDQmNCQCivQk9CQ0Jsg0JzQmNCo0JAKK9CT0JDQmyDQnNCY0JrQm9Ce0KgKK9CT0JDQmyDQn9CQ0JLQm9CVCivQk9CQ0Jsg0J/QldCi0JDQoAor0JPQkNCbINCf0JXQotCQ0KAKK9CT0JDQmyDQodCi0JXQktCQ0J0KK9CT0JDQm9CQ0KYg0IjQntCh0JjQnwor0JPQkNCb0JDQpiDQn9CQ0JLQm9CVCivQk9CQ0JvQkNCc0JEg0JDQotCY0JvQkAor0JPQkNCb0JDQnNCR0J7QqCDQkNCd0JAKK9CT0JDQm9CQ0JzQkdCe0Kgg0JDQndCi0J7QnQor0JPQkNCb0JDQnNCR0J7QqCDQldCg0JbQldCR0JXQogor0JPQkNCb0JDQnNCR0J7QqCDQmNCc0KDQlQor0JPQkNCb0JDQnNCR0J7QqCDQiNCe0KHQmNCfCivQk9CQ0JvQkNCc0JHQntCoINCb0JDQodCb0J4KK9CT0JDQm9CQ0JzQkdCe0Kgg0JvQkNCh0JvQngor0JPQkNCb0JHQkNCnINCI0J7QltCV0KQKK9CT0JDQm9CV0KfQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JPQkNCb0JXQp9CY0Isg0JTQoNCQ0JPQkNCdCivQk9CQ0JvQldCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9CQ0JvQldCn0JjQiyDQl9Ce0KDQkNCdCivQk9CQ0JvQldCn0JjQiyDQl9Ce0KDQkNCdCivQk9CQ0JvQldCo0JXQkiDQltCY0JLQntCI0JjQnQor0JPQkNCb0JXQqNCV0JIg0JTQo9CR0KDQkNCS0JrQkAor0JPQkNCb0JXQqNCV0JIg0KHQm9Ce0JHQntCU0JDQnQor0JPQkNCb0JXQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JDQm9CV0KLQmNCLINCc0JDQoNCY0IjQkAor0JPQkNCb0JXQotCY0Isg0JzQmNCb0JDQnQor0JPQkNCb0JXQotCY0Isg0JLQkNCh0JAKK9CT0JDQm9CV0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQm9CV0KLQmNCLINCX0J7QoNCQCivQk9CQ0JvQldCi0JjQnSDQnNCY0JvQmNCm0JAKK9CT0JDQm9CV0KLQmNCdINCd0JjQmtCe0JvQkAor0JPQkNCb0JXQotCY0J0g0J/QkNCI0JjQptCQCivQk9CQ0JvQldCi0JjQnSDQodCY0JzQkAor0JPQkNCb0JXQotCY0J0g0KHQm9CQ0JLQmtCeCivQk9CQ0JvQldCi0JjQnS3QodCc0JjQoiDQoNCQ0JTQntCI0JrQkAor0JPQkNCb0JXQotCY0J0g0KHQotCV0JLQkNCdCivQk9CQ0JvQldCi0JjQnSDQl9Cb0JDQotCa0J4KK9CT0JDQm9Ck0Jgg0IjQntCh0JjQnwor0JPQkNCb0KTQmCDQnNCY0JvQldCd0JAKK9CT0JDQm9CT0J4g0JjQqNCi0JLQkNCdCivQk9CQ0JvQmNCn0JjQiyDQkdCg0JDQndCa0J4KK9CT0JDQm9CY0KfQmNCLINCc0JjQm9CY0KbQkAor0JPQkNCb0JjQiyDQlNCj0KjQkNCd0JrQkAor0JPQkNCb0JjQiyDQmNCS0JDQndCa0JAKK9CT0JDQm9CY0Isg0IjQntCS0JDQnQor0JPQkNCb0JjQiyDQiNCe0JLQkNCdCivQk9CQ0JvQmNCLINCI0J7QktCQ0J0KK9CT0JDQm9CY0Isg0JrQkNCi0JjQptCQCivQk9CQ0JvQmNCLINCa0JDQotCY0KbQkAor0JPQkNCb0JjQiyDQm9CQ0JTQmNCh0JvQkNCSCivQk9CQ0JvQmNCLINCJ0KPQkdCY0KbQkAor0JPQkNCb0JjQiyDQnNCQ0KDQmNCI0JDQnQor0JPQkNCb0JjQiyDQnNCY0JvQkNCU0JjQnQor0JPQkNCb0JjQiyDQnNCY0JvQldCd0JrQngor0JPQkNCb0JjQiyDQnNCY0JvQmtCQCivQk9CQ0JvQmNCLINCc0JjQm9Ce0KgKK9CT0JDQm9CY0Isg0JzQmNCb0J7QktCQ0J0KK9CT0JDQm9CY0Isg0JzQmNCg0JrQngor0JPQkNCb0JjQiyDQnNCY0KLQkNCgCivQk9CQ0JvQmNCLINCc0J7QnNCn0JjQm9CeCivQk9CQ0JvQmNCLINCd0JXQlNCV0InQmtCeCivQk9CQ0JvQmNCLINCd0JjQmtCe0JvQkAor0JPQkNCb0JjQiyDQntCb0JPQkAor0JPQkNCb0JjQiyDQn9CV0KLQkNCgCivQk9CQ0JvQmNCLINCg0J7QltCY0JrQkAor0JPQkNCb0JjQiyDQodCQ0IrQkAor0JPQkNCb0JjQiyDQodCb0JDQktCa0JAKK9CT0JDQm9CY0Isg0KHQotCV0JLQngor0JPQkNCb0JjQiyDQotCV0KDQldCX0JAKK9CT0JDQm9CY0Isg0JLQntCI0JjQodCb0JDQkgor0JPQkNCb0JjQiyDQl9CU0KDQkNCS0JrQngor0JPQkNCb0JjQptCa0Jgg0ILQo9Cg0JAKK9CT0JDQm9CY0Jog0JXQotCV0JvQmtCQCivQk9CQ0JvQmNCf0J7QktCY0Isg0IjQntCS0JjQptCQCivQk9CQ0JvQmtCeINCI0KPQm9CY0JAKK9CT0JDQm9CeINCC0KPQoNCQCivQk9CQ0JvQntCK0JAg0JTQldCh0JDQndCa0JAKK9CT0JDQm9Ce0IrQkCDQlNCg0JDQk9Ce0InQo9CRCivQk9CQ0JvQntCK0JAg0JzQmNCe0JTQoNCQ0JMKK9CT0JDQm9Ce0IrQkCDQnNCY0KDQmtCeCivQk9CQ0JvQntCK0JAg0KDQkNCU0JUKK9CT0JDQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9CT0JDQm9Ce0JLQmNCLINCC0KPQoNCQCivQk9CQ0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JPQkNCb0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9CT0JDQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JPQkNCb0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAg0JTQoAor0JPQkNCb0J7QktCY0Isg0JjQktCY0KbQkAor0JPQkNCb0J7QktCY0Isg0IjQldCb0JjQptCQCivQk9CQ0JvQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CT0JDQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9CT0JDQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9CT0JDQm9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQk9CQ0JvQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JPQkNCb0J7QktCY0Isg0KHQotCV0JLQngor0JPQkNCb0J7QktCY0Isg0JfQntCg0JrQkAor0JPQkNCb0KPQoSDQm9CQ0KHQm9CeCivQk9CQ0JzQkdCV0KAg0KHQm9Ce0JHQntCU0JDQnQor0JPQkNCd0I/QmCDQodCQ0JLQmtCQCivQk9CQ0J3Qk9Cb0Jgg0JDQndCQCivQk9CQ0J3QmNCLINCQ0JvQntCI0JfQmNCI0JUKK9CT0JDQndCY0Isg0JDQm9Ce0IjQl9CY0IjQlQor0JPQkNCd0JjQiyDQnNCY0KjQngor0JPQkNCd0JjQiyDQodCi0JDQndCY0KHQm9CQ0JLQkAor0JPQkNCd0JjQiyDQl9CU0JXQndCa0J4KK9CT0JDQndCY0Isg0JfQntCg0JjQptCQCivQk9CQ0IrQmCDQodCQ0JzQo9CV0JsKK9CT0JDQndCi0JDQoCDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JPQkNCd0KLQkNCgINCk0JjQm9CY0J8KK9CT0JDQndCi0JDQoCDQnNCY0KDQntCh0JvQkNCSINCU0KAKK9CT0JDQoNCn0JXQkiDQlNCQ0J3QmNCm0JAKK9CT0JDQoNCn0JXQkiDQnNCY0JvQo9Ci0JjQnQor0JPQkNCg0KfQldCS0JjQiyDQn9CV0KDQngor0JPQkNCg0KfQldCS0JjQiyDQn9CV0KDQngor0JPQkNCg0JDQqNCV0JLQmNCLINCc0JjQm9Ca0JAKK9CT0JDQoNCQ0JHQkCDQkNCd0JTQoNCY0IjQkAor0JPQkNCg0JDQkdCQ0J3QlNCY0Isg0ILQntCg0ILQlQor0JPQkNCg0JDQkdCQ0J3QlNCY0Isg0JzQkNCg0JjQiNCQCivQk9CQ0KDQkNCR0JDQndCU0JjQiyDQnNCY0JvQldCd0JrQngor0JPQkNCg0JDQkdCQ0J3QlNCY0Isg0J3QmNCa0J7Qm9CQCivQk9CQ0KDQkNCR0JDQndCi0JjQnSDQmNCS0JDQnQor0JPQkNCg0JDQkdCQ0J3QotCY0J0g0JzQmNCb0J7QktCQ0J0KK9CT0JDQoNCQ0JHQkNCd0KLQmNCdINCh0KLQldCS0JDQnQor0JPQkNCg0JDQmCDQkdCV0JvQkAor0JPQkNCg0JDQmCDQmtCe0KDQndCV0JvQmNCI0JAKK9CT0JDQoNCQ0Igg0JHQoNCQ0J3QmNCc0JjQoAor0JPQkNCg0JDQiCDQiNCV0JvQldCd0JAKK9CT0JDQoNCQ0Igg0J7Qm9CT0JAKK9CT0JDQoNCQ0JvQldCI0JjQiyDQktCV0KDQmNCm0JAKK9CT0JDQoNCQ0J/QmNCLINCR0KDQkNCd0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CT0JDQoNCU0JDQqNCV0JLQmNCLINCc0JjQm9Ce0KgKK9CT0JDQoNCU0JDQqNCV0JLQmNCLLdCh0KLQoNCY0KfQldCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JPQkNCg0JTQkNCo0JXQktCY0Isg0JLQldCh0JXQm9CY0J0KK9CT0JDQoNCU0JjQiyDQkNCb0JjQiNCQCivQk9CQ0KDQlNCY0J3QntCS0JDQp9Ca0Jgg0ILQntCg0ILQlQor0JPQkNCg0JTQmNCd0J7QktCQ0KfQmtCYINCR0J7QoNCY0KHQm9CQ0JIKK9CT0JDQoNCU0JjQndCe0JLQkNCn0JrQmCDQkdCg0JDQndCY0JzQmNCgCivQk9CQ0KDQlNCY0J3QntCS0JDQp9Ca0Jgg0KbQktCV0KLQkAor0JPQkNCg0JTQmNCd0J7QktCQ0KfQmtCYINCc0JjQntCg0JrQkAor0JPQkNCg0JTQmNCd0J7QktCQ0KfQmtCYINCd0JXQlNCV0InQmtCeCivQk9CQ0KDQlNCY0J3QntCS0JDQp9Ca0Jgg0KHQotCV0JLQkNCdCivQk9CQ0KDQlNCY0J3QntCS0JDQp9Ca0Jgg0KHQktCV0KLQntCX0JDQoAor0JPQkNCg0JXQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CT0JDQoNCV0JLQodCa0Jgg0JTQmNCc0JjQotCg0JjQiNCQCivQk9CQ0KDQmNCLINCW0JDQoNCa0J4KK9CT0JDQoNCY0Isg0JvQkNCX0JDQoAor0JPQkNCg0JjQiyDQm9Cj0JrQkAor0JPQkNCg0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9CQ0KDQmNCLINCd0JDQlNCQCivQk9CQ0KDQmNCLINCh0KLQldCS0JDQnQor0JPQkNCg0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CT0JDQoNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQk9CQ0KDQntCS0J3QmNCa0J7QkiDQgtCe0KDQgtCVCivQk9CQ0KDQntCS0J3QmNCa0J7QkiDQkdCe0KDQmtCQCivQk9CQ0KDQotCd0JXQoCDQn9CV0KLQkNCgCivQk9CQ0KDQo9Cd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQk9CQ0KDQo9Cd0J7QktCY0Isg0JLQkNCh0JAKK9CT0JDQotCQ0JvQniDQk9Ce0KDQkNCdCivQk9CQ0KLQkNCb0J4g0KDQkNCi0JrQngor0JPQkNCi0JDQoNCY0Isg0JbQldCJ0JrQngor0JPQkNCi0JDQoNCY0Isg0JbQldCJ0JrQngor0JPQkNCi0JDQoNCY0Isg0JHQntCo0JrQngor0JPQkNCi0JDQoNCY0Isg0JTQoNCQ0JbQlQor0JPQkNCi0JDQoNCY0Isg0JzQkNCd0J7QiNCb0J4KK9CT0JDQotCQ0KDQmNCLINCh0JDQktCa0JAKK9CT0JDQotCQ0KDQmNCLINCh0KLQkNCd0JAKK9CT0JDQotCQ0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CT0JDQotCQ0KDQmNCLINCX0JvQkNCi0JjQkdCe0KAKK9CT0JDQotCV0KAg0IjQntCh0JjQnwor0JPQkNCj0JTQldCK0Jgg0JPQkNCR0KDQmNCI0JXQm9CQCivQk9CQ0KPQlNCV0IrQmCDQnNCQ0KLQmNCb0JQKK9CT0JDQo9CU0JXQitCYINCi0JjQktCQ0JTQkNCgCivQk9CQ0JLQkCDQkNCb0JXQmtCh0JXQiAor0JPQkNCS0JDQndCh0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIg0JDQlNCS0J7QmtCQ0KIKK9CT0JDQktCQ0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CT0JDQktCQ0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CT0JDQktCQ0J3QodCa0Jgg0JTQkNCg0JAKK9CT0JDQktCQ0J3QodCa0Jgg0JTQoNCQ0JPQkNCdCivQk9CQ0JLQkNCd0KHQmtCYINCU0KPQqNCQ0J0KK9CT0JDQktCQ0J3QodCa0Jgg0JPQkNCS0KDQmNCb0J4KK9CT0JDQktCQ0J3QodCa0Jgg0JjQktCQ0J0KK9CT0JDQktCQ0J3QodCa0Jgg0IjQldCb0JXQndCQCivQk9CQ0JLQkNCd0KHQmtCYINCI0KPQlNCY0KLQkAor0JPQkNCS0JDQndCh0JrQmCDQmtCe0J3QodCi0JDQndCi0JjQnSDQlNCgCivQk9CQ0JLQkNCd0KHQmtCYINCa0J7QodCi0JAg0JTQn9CbINCY0J3Qkwor0JPQkNCS0JDQndCh0JrQmCDQmtCe0KHQotCQCivQk9CQ0JLQkNCd0KHQmtCYINCb0JDQl9CQ0KAKK9CT0JDQktCQ0J3QodCa0Jgg0JvQo9Ca0JAKK9CT0JDQktCQ0J3QodCa0Jgg0JzQkNCg0JPQmNCi0JAKK9CT0JDQktCQ0J3QodCa0Jgg0JzQmNCb0JjQptCQCivQk9CQ0JLQkNCd0KHQmtCYINCc0JjQm9CY0KbQkAor0JPQkNCS0JDQndCh0JrQmCDQndCQ0JTQkAor0JPQkNCS0JDQndCh0JrQmCDQndCe0JLQkNCaCivQk9CQ0JLQkNCd0KHQmtCYINCf0JDQktCb0JUKK9CT0JDQktCQ0J3QodCa0Jgg0J/QldCi0KDQkAor0JPQkNCS0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9CT0JDQktCQ0J3QodCa0Jgg0KHQotCV0JLQkNCdCivQk9CQ0JLQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0JPQkNCS0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9CT0JDQktCQ0J3QodCa0Jgg0KHQktCV0KLQntCX0JDQoAor0JPQkNCS0JDQndCh0JrQmCDQl9Ce0KDQkNCdCivQk9CQ0JLQkNCd0KHQmtCYINCX0J7QoNCQ0J0KK9CT0JDQktCQ0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CQ0JLQkNCg0JjQiyDQk9CQ0JLQoNCY0JvQngor0JPQkNCS0JDQoNCY0Isg0IjQldCg0JXQnNCY0IjQlQor0JPQkNCS0JDQoNCY0Isg0InQo9CR0JjQptCQCivQk9CQ0JLQkNCg0JjQiyDQnNCY0JvQldCd0JrQngor0JPQkNCS0JvQmNCaINCT0JXQoNCT0JXQiQor0JPQkNCS0J7QlNCYINCV0KHQotCV0KAKK9CT0JDQktCg0JDQnSDQk9Ce0IjQmtCeCivQk9CQ0JLQoNCQ0J0g0InQo9CR0J7QnNCY0KAKK9CT0JDQktCg0JDQndCn0JjQiyDQgtCj0KDQgtCY0KbQkAor0JPQkNCS0KDQkNCd0KfQmNCLINCI0J7QktCQ0J0KK9CT0JDQktCg0JDQndCn0JjQiyDQmtCQ0KLQmNCm0JAKK9CT0JDQktCg0JDQndCn0JjQiyDQnNCQ0KDQk9CY0KLQkAor0JPQkNCS0KDQkNCd0KfQmNCLINCc0JDQoNCY0IjQkAor0JPQkNCS0KDQkNCd0KfQmNCLINCd0JjQmtCe0JvQkAor0JPQkNCS0KDQkNCd0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQktCg0JDQndCY0Isg0JPQntCI0JrQngor0JPQkNCS0KDQkNCd0JjQiyDQmNCb0JjQiNCQCivQk9CQ0JLQoNCQ0J3QmNCLINCX0JLQldCX0JTQkNCd0JAKK9CT0JDQktCg0JDQndCe0JIg0JHQntCh0JAKK9CT0JDQktCg0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JPQkNCS0KDQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JPQkNCS0KDQkNCd0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CT0JDQktCg0JjQiyDQp9CV0JTQntCc0JjQoAor0JPQkNCS0KDQmNCLINCW0JjQktCa0JAKK9CT0JDQktCg0JjQiyDQgtCe0KDQgtCVCivQk9CQ0JLQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQk9CQ0JLQoNCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQk9CQ0JLQoNCY0Ist0JPQkNCX0JTQmNCLINCd0JjQmtCe0JvQkAor0JPQkNCS0KDQmNCLINCY0JLQkNCdCivQk9CQ0JLQoNCY0Isg0JjQktCQ0J0KK9CT0JDQktCg0JjQiyDQiNCe0JLQkNCdCivQk9CQ0JLQoNCY0Isg0IjQntCS0J4KK9CT0JDQktCg0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0JDQktCg0JjQiyDQnNCY0KXQkNCI0JvQngor0JPQkNCS0KDQmNCLINCc0JjQm9CQ0J0KK9CT0JDQktCg0JjQiyDQnNCY0JvQkNCdCivQk9CQ0JLQoNCY0Isg0JzQmNCb0JXQndCQCivQk9CQ0JLQoNCY0Isg0JzQmNCb0JXQndCa0J4KK9CT0JDQktCg0JjQiyDQnNCY0JvQldCd0JrQngor0JPQkNCS0KDQmNCLINCc0JjQm9Ce0KgKK9CT0JDQktCg0JjQiyDQnNCY0KDQmtCeCivQk9CQ0JLQoNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JPQkNCS0KDQmNCLINCf0JXQotCQ0KAKK9CT0JDQktCg0JjQiyDQoNCQ0JTQntCc0JjQoAor0JPQkNCS0KDQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CT0JDQktCg0JjQiyDQodCV0J3QmtCQCivQk9CQ0JLQoNCY0Isg0KHQm9CQ0JLQmtCQCivQk9CQ0JLQoNCY0Isg0KHQn9CQ0KHQntCI0JUKK9CT0JDQktCg0JjQiyDQodCS0JXQotCe0JfQkNCgCivQk9CQ0JLQoNCY0Isg0JLQldCb0JjQndCa0JAKK9CT0JDQktCg0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQk9CQ0JLQoNCY0Isg0JfQntCg0JDQnQor0JPQkNCS0KDQmNCLINCX0J7QoNCQCivQk9CQ0JLQoNCY0JvQntCSINCW0JjQktCa0JAKK9CT0JDQktCg0JjQm9Ce0JIg0JDQndCa0JjQptCQCivQk9CQ0JLQoNCY0JvQntCSINCR0J7Qk9CU0JDQnQor0JPQkNCS0KDQmNCb0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0JPQkNCS0KDQmNCb0J7QkiDQpdCV0KDQnNCY0J3QkAor0JPQkNCS0KDQmNCb0J7QkiDQiNCj0JvQmtCQCivQk9CQ0JLQoNCY0JvQntCSINCJ0KPQkdCY0KbQkAor0JPQkNCS0KDQmNCb0J7QkiDQnNCQ0KDQotCQCivQk9CQ0JLQoNCY0JvQntCSINCc0JjQm9CY0JLQntCICivQk9CQ0JLQoNCY0JvQntCSINCc0JjQm9CY0JLQntCICivQk9CQ0JLQoNCY0JvQntCSINCc0JjQm9Ce0KDQkNCUCivQk9CQ0JLQoNCY0JvQntCSINCg0JDQlNCY0JLQntCICivQk9CQ0JLQoNCY0JvQntCSINCh0JvQkNCS0JrQngor0JPQkNCS0KDQmNCb0J7QkiDQodCc0JjQidCQCivQk9CQ0JLQoNCY0JvQntCSINCi0J7QlNCe0KAKK9CT0JDQktCg0JjQm9Ce0JIg0KPQoNCe0KgKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCW0JjQmtCY0KbQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JbQmNCS0JrQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0g0JTQoAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQkNCb0JXQmtCh0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCR0J7QoNCY0JLQntCICivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQkdCg0JDQndCa0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JTQo9Co0JjQptCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQldCc0JjQmwor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JPQoNCe0JfQlNCQ0J0KK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCI0JXQm9CY0KHQkNCS0JrQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JPQkNCS0KDQmNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JrQkNCi0JjQptCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQmtCb0JDQo9CU0JjQiNCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQkNCg0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0JvQldCd0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQmNCb0JjQptCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0JvQntCoCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0JvQntCoCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0JvQntCI0JUKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0KDQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0KDQmtCeCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCY0KLQkNCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQndCY0JrQntCb0JAg0JTQoCDQn9Cg0J7QpAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQn9CQ0JLQm9CVCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQoNCQ0IjQmtCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCQ0JLQkCDQlNCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCQ0JLQngor0JPQkNCS0KDQmNCb0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCh0JvQkNCS0JrQniDQlNCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCb0JDQktCa0J4KK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCh0JvQkNCS0JrQngor0JPQkNCS0KDQmNCb0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JPQkNCS0KDQmNCb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JPQkNCS0KDQmNCb0J7QktCY0Isg0KHQntCk0JjQiNCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCi0JDQndCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCi0JXQktCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCi0J7QqNCQCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQotCe0JTQntCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQktCV0KDQkCDQlNCgCivQk9CQ0JLQoNCY0JvQntCS0JjQiyDQktCV0KDQmNCm0JAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CT0JDQktCg0JjQm9Ce0JLQmNCLINCS0KPQmtCY0KbQkAor0JPQkNCS0KDQmNCb0J7QktCY0Isg0JfQm9CQ0KLQkAor0JPQkNCS0KDQmNCb0J7QktCh0JrQmCDQn9CQ0JLQm9CY0J3QkAor0JPQkNCS0KDQntCS0JjQiyDQk9Ce0KDQkNCdCivQk9CQ0JLQoNCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQk9CQ0JLQoNCe0JLQmNCLINCJ0KPQkdCY0JLQntCI0JUKK9CT0JDQktCg0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkCDQm9Ce0JrQkNCbCivQk9CQ0JfQkNCk0Jgg0JvQkNCh0JvQngor0JPQkNCX0JTQmNCLINCR0J7QoNCY0JLQntCICivQk9CQ0JfQldCf0J7QkiDQmNCb0JjQiNCQCivQk9CQ0JfQmNCLINCY0JLQkNCdCivQk9CQ0JfQmNCR0JDQoNCY0Isg0JjQl9CV0KLQkAor0JPQkNCX0JjQkdCQ0KDQmNCLINCI0JXQm9CV0J3QkAor0JPQkNCX0JjQkdCQ0KDQmNCLINCI0J7QktCQ0J3QmtCQCivQk9CQ0JfQmNCR0JDQoNCY0Isg0KHQmNCc0JAKK9CT0JDQl9CY0IjQkCDQiNCe0JLQkNCdCivQk9CQ0JfQmNCS0J7QlNCQINCT0J7QiNCa0J4KK9CT0JXQp9CV0JLQodCa0Jgg0KHQoNCV0KLQmtCeCivQk9CV0JHQkNCj0JXQoCDQldCg0JLQmNCdINCU0KAKK9CT0JXQkdCV0JvQoSDQkNCd0JAKK9CT0JXQptCYINCC0KPQoNCQCivQk9CV0JTQldCb0J7QktCh0JrQmCDQlNCj0KjQkNCdCivQk9CV0JTQldCb0J7QktCh0JrQmCDQodCe0KTQmNCI0JAKK9CT0JXQk9CV0Kgg0IjQo9Cb0JjQiNCQ0J3QkAor0JPQldCT0JXQqCDQndCQ0J3QlNCe0KAKK9CT0JXQk9CV0Kgg0KHQm9CQ0JLQmNCm0JAKK9CT0JXQk9CV0J3QkdCQ0KPQldCgINCU0KDQkNCT0KPQotCY0J0KK9CT0JXQk9CV0J3QkdCQ0KPQldCgINCY0JvQntCd0JrQkAor0JPQldCT0JXQndCR0JDQo9CV0KAg0JfQntCg0JAKK9CT0JXQk9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JXQk9CY0Isg0J3QldCc0JDQitCQCivQk9CV0JvQldCYINCI0JXQndCVCivQk9CV0JvQldCgINCo0JDQndCU0J7QoAor0JPQldCb0JXQoCDQgtCj0JvQkAor0JPQldCb0JXQoCDQkNCU0JDQnAor0JPQldCb0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQldCb0JXQoCDQkdCV0JvQkAor0JPQldCb0JXQoCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JPQldCb0JXQoCDQiNCe0JLQkNCdCivQk9CV0JvQldCgINCb0JDQodCb0J4KK9CT0JXQm9CV0KAg0JvQkNCh0JvQngor0JPQldCb0JXQoCDQnNCQ0KDQmNCI0JAKK9CT0JXQm9CV0KAg0JzQkNCg0KLQkAor0JPQldCb0JXQoCDQntCb0JPQkAor0JPQldCb0JXQoC3Qn9CV0KLQmtCe0JLQmNCLINCT0JjQl9CV0JvQkAor0JPQldCb0JXQoCDQotCY0JHQntCgCivQk9CV0InQmNCLINCc0JDQotCeCivQk9CV0JzQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQldCd0KYg0KTQldCg0JXQndCmCivQk9CV0J3QpiDQm9CQ0IjQntCoCivQk9CV0J3QptCV0Jsg0IjQo9Cb0JjQiNCQ0J3QkAor0JPQldCd0KbQldCbINCc0JDQoNCY0IjQkNCd0JAKK9CT0JXQndCm0JXQmyDQktCQ0JvQldCg0JjQiNCQCivQk9CV0J3QptCYINCI0J7QodCY0J8KK9CT0JXQndCV0JLQkNCI0J0g0ILQo9Cg0JAKK9CT0JXQndCV0JLQkNCI0J0g0IjQntCS0JDQnQor0JPQldCd0JXQktCQ0IjQnSDQmtCQ0KDQm9CeCivQk9CV0J3QldCS0JDQiNCdINCb0JDQiNCe0KgKK9CT0JXQndCV0JLQkNCI0J0g0JvQkNCI0J7QqAor0JPQldCd0J7QktCQINCc0JDQiNCU0JAg0JTQmNCf0Jsg0JjQndCTCivQk9CV0J3QntCS0JAg0JzQmNCb0JjQptCQINCU0JjQn9CbINCY0J3Qkwor0JPQldCe0KDQk9CY0JXQkiDQm9CV0J/QntCh0JDQktCQCivQk9CV0J7QoNCT0JjQldCS0KHQmtCYINCf0JXQoNCeCivQk9CV0J7QoNCT0JjQldCS0KHQmtCYINCS0JDQodCY0JsKK9CT0JXQntCg0JPQmNCI0JXQktCY0Isg0JbQmNCS0JrQngor0JPQldCe0KDQk9CY0IjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQldCe0KDQk9CY0IjQldCS0JjQiyDQmNCS0JDQndCQCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCI0J7QktCQ0J0KK9CT0JXQntCg0JPQmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0JPQldCe0KDQk9CY0IjQldCS0JjQiyDQm9CQ0JfQkNCgCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCb0JDQl9CQCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCJ0KPQkdCY0KjQkAor0JPQldCe0KDQk9CY0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQk9CV0J7QoNCT0JjQiNCV0JLQmNCLINCd0JXQodCi0J7QoAor0JPQldCe0KDQk9CY0IjQldCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JPQldCe0KDQk9CY0IjQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQk9CV0KDQkCDQmNCR0J7QidCQCivQk9CV0KDQkNCaINCV0JzQmNCb0JjQiNCQCivQk9CV0KDQkNCh0JjQnNCe0JLQodCa0Jgg0JfQm9CQ0KLQlQor0JPQldCg0JDQotCe0JLQmNCLINCX0J7QoNCQ0J0KK9CT0JXQoNCU0JjQiNCQ0J0g0KfQldCU0J7QnNCY0KAKK9CT0JXQoNCVINCb0JDQiNCe0KgKK9CT0JXQoNCVINCX0J7Qm9Ci0JDQnQor0JPQldCg0JXQptCYINCI0KPQoNCQ0IgKK9CT0JXQoNCV0JMg0JbQo9CW0JDQndCQCivQk9CV0KDQldCTINCQ0J3QlNCg0JDQqAor0JPQldCg0JXQkyDQkdCb0JDQndCa0JAKK9CT0JXQoNCV0JMg0JXQo9CT0JXQnQor0JPQldCg0JXQkyDQotCY0JHQntCgCivQk9CV0KDQk9CV0Kcg0KHQnNCY0InQkAor0JPQldCg0JPQldCJINCo0JjQnNCe0J0KK9CT0JXQoNCYINCi0JXQoNCV0JfQkAor0JPQldCg0JjQiyDQltCQ0KDQmtCeCivQk9CV0KDQmNCLINCC0J7QoNCC0JUKK9CT0JXQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JXQoNCY0Isg0JDQndCi0J7QnQor0JPQldCg0JjQiyDQptCS0JXQotCQCivQk9CV0KDQmNCLINCT0JjQndCQCivQk9CV0KDQmNCLINCT0J7QoNCU0JDQndCQCivQk9CV0KDQmNCLINCY0JLQkNCdCivQk9CV0KDQmNCLINCY0JLQkNCdCivQk9CV0KDQmNCLINCa0J7QodCi0JAKK9CT0JXQoNCY0Isg0JrQntCS0JjQptCQCivQk9CV0KDQmNCLINCJ0KPQkdCe0JzQmNCgCivQk9CV0KDQmNCLINCc0JDQoNCY0IjQkAor0JPQldCg0JjQiyDQnNCY0JvQkNCdCivQk9CV0KDQmNCLINCc0JjQm9Ce0KgKK9CT0JXQoNCY0Isg0JzQmNCb0J7QqAor0JPQldCg0JjQiyDQnNCY0KDQmtCeCivQk9CV0KDQmNCLINCd0JXQlNCV0InQmtCeCivQk9CV0KDQmNCLINCd0JXQodCi0J7QoAor0JPQldCg0JjQiyDQntCR0KDQkNCUCivQk9CV0KDQmNCLINCf0JXQotCQ0KAKK9CT0JXQoNCY0Isg0KDQkNCU0JjQndCa0JAKK9CT0JXQoNCY0Isg0KHQotCV0JLQkNCdCivQk9CV0KDQmNClINCQ0J3QlNCg0JjQiNCQCivQk9CV0KDQmyDQpNCV0KDQlNCeCivQk9CV0KDQmyDQnNCQ0KDQmNCI0JAKK9CT0JXQoNCb0JAg0JTQoNCQ0JPQkNCd0JAKK9CT0JXQoNCb0JAg0JvQkNCU0JjQodCb0JDQkgor0JPQldCg0JvQkCDQotCV0J7QlNCe0KAKK9CT0JXQoNCc0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CT0JXQoNCc0JDQndCe0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQk9CV0KDQndCQ0Kcg0ILQntCg0ILQlQor0JPQldCg0J3QkNCnINCk0KDQkNCK0JAKK9CT0JXQoNCd0JDQpyDQm9CQ0JTQmNCh0JvQkNCSCivQk9CV0KDQniDQgtCV0KDQggor0JPQldCg0J4g0JTQo9Co0JDQndCa0JAKK9CT0JXQoNCeINCI0JDQndCe0KgKK9CT0JXQoNCeINCI0J7QltCV0KQKK9CT0JXQoNCeINCa0JDQoNCb0J4KK9CT0JXQoNCeINCb0JDQiNCe0KgKK9CT0JXQoNCeINCc0JDQoNCT0JjQotCQCivQk9CV0KDQntCb0JQg0IjQkNCa0J7QkQor0JPQldCg0J7Qm9CUINCb0JDQodCb0J4KK9CT0JXQoNCe0JIg0JDQndCT0JXQmyDQlNCY0J/QmyDQmNCd0JMKK9CT0JXQoNCi0J3QldCgINCQ0J3QkAor0JPQldCg0KLQndCV0KAg0KTQoNCQ0IrQkAor0JPQldCg0KLQndCV0KAg0IjQntCW0JXQpAor0JPQldCg0KLQndCV0KAg0KDQldCW0JUKK9CT0JXQotCV0Jsg0KXQldCb0JzQo9CiCivQk9CV0Jcg0IjQkNCd0J7QqAor0JPQldCXINCI0JXQm9CY0KbQkAor0JPQldCXINCa0JDQotCY0KbQkAor0JPQldCXINCi0JjQkdCe0KAKK9CT0JXQlyDQktCV0KDQntCd0JjQmtCQCivQk9Cl0JDQndCU0J7Qo9CgLdCo0JDQmyDQiNCj0JvQmNCI0JDQndCQCivQk9CY0JDQlNCg0J7QqNCY0Isg0JzQkNCg0JjQiNCQCivQk9CY0JHQkNCd0JjQptCQINCT0JXQntCg0JPQmNCd0JAKK9CT0JjQk9CQINCh0KDQldCi0JXQnQor0JPQmNCT0JjQiyDQnNCY0J7QnNCY0KAKK9CT0JjQk9CY0Isg0JzQmNCg0IjQkNCd0JAKK9CT0JjQk9CY0Isg0JfQntCg0JDQnQor0JPQmNCa0JjQiyDQkdCe0JbQmNCU0JDQoAor0JPQmNCa0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CT0JjQmtCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JPQmNCa0J7QktCh0JrQmCDQnNCY0J3Qngor0JPQmNCb0JXQl9CQ0J0g0JrQntCg0JjQntCb0JDQnQor0JPQmNCb0JMg0JjQoNCV0J3QkAor0JPQmNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0JjQm9CY0Isg0JTQoNCQ0JPQkNCdCivQk9CY0JzQkdCe0Kgg0JTQntCR0KDQmNCS0J7QiNCVCivQk9CY0J3QptCj0Ikg0KHQldCg0JPQmNCI0JUg0JTQmNCf0Jsg0JjQndCTCivQk9CY0J7QnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQmNCe0J0g0JDQndCQINCU0KAKK9CT0JjQntCdINCY0KjQotCS0JDQnQor0JPQmNCe0J0g0JrQkNCb0JzQkNCdCivQk9CY0J7QnSDQndCQ0J3QlNCe0KAKK9CT0JjQoNCY0Isg0JzQkNCi0JjQiNCQCivQk9CY0KDQmNCmINCR0JXQm9CQCivQk9CY0KDQmNCmINCV0JvQldCd0JAKK9CT0JjQoNCY0KYg0JjQnNCg0JUKK9CT0JjQoNCY0KYg0IjQntCW0JXQpAor0JPQmNCg0JjQpiDQm9CQ0KHQm9CeCivQk9CY0KDQmNCmLdCc0J7QmtCj0Kgg0JrQm9CQ0KDQkAor0JPQmNCg0JjQl9CUINCb0JDQodCb0J4g0J3QntCS0JjQndCQ0KAKK9CT0JjQoNCd0KIg0KDQntCX0JDQm9CY0IjQkAor0JPQmNChINCl0JXQlNCS0JjQk9CQCivQk9CI0JDQpNCeINCc0JDQotCY0IjQkAor0JPQiNCV0KAg0JLQm9CQ0JTQmNCc0JjQoAor0JPQm9CQ0JTQmNCoINCh0KLQldCS0JDQnQor0JPQm9CQ0JTQmNCLINCc0JjQm9CQ0J0KK9CT0JvQkNCU0JjQiyDQoNCQ0IjQmtCeCivQk9Cb0JDQlNCY0Isg0KHQktCV0KLQntCX0JDQoAor0JPQm9CQ0JTQntCS0JjQiyDQlNCj0KjQkNCdCivQk9Cb0JDQlNCe0JLQmNCLINCi0JDQotCI0JDQndCQCivQk9Cb0JDQiNClINCT0JXQntCg0JMKK9CT0JvQkNCc0J7Qp9CQ0J3QmNCdINCd0JXQktCV0J3QmtCQCivQk9Cb0JDQnNCe0KfQkNCd0JjQnSDQndCV0JLQldCd0JrQkAor0JPQm9CQ0JzQntCn0JDQndCY0J0g0J/QldCg0J4KK9CT0JvQkNCc0J7Qp9CQ0J3QmNCdINCS0JvQkNCU0JjQnNCY0KAKK9CT0JvQkNCc0J7Qp9CY0Isg0JTQkNCd0JUKK9CT0JvQkNCc0J7Qp9CY0Isg0KHQndCV0JbQkNCd0JAKK9CT0JvQkNCc0J7Qp9Cb0JjQiNCQINCg0KPQltCY0KbQkAor0JPQm9CQ0J3QpiDQkNCd0KLQo9CdCivQk9Cb0JDQodCe0JLQkNCmINCc0JDQoNCi0JAKK9CT0JvQkNCS0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Cb0JDQktCQ0Kgg0JbQkNCg0JrQngor0JPQm9CQ0JLQkNCoINCI0J7QktCeCivQk9Cb0JDQktCQ0Kgg0JzQmNCb0JDQnQor0JPQm9CQ0JLQkNCoLdCi0KDQkdCY0Isg0JHQntCo0JrQngor0JPQm9CQ0JLQkNCo0JXQktCY0Isg0JDQndCC0JXQm9Ca0J4KK9CT0JvQkNCS0JDQqNCV0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQk9Cb0JDQktCQ0KjQmtCYINCW0JjQktCe0IjQmNCdCivQk9Cb0JDQktCQ0KjQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9Cb0JDQktCQ0KjQmtCYINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQk9Cb0JDQktCQ0KjQmtCYINCQ0J3QgtCV0JvQmtCQCivQk9Cb0JDQktCQ0KjQmtCYINCR0J7Qk9CU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CT0JvQkNCS0JDQqNCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQk9Cb0JDQktCQ0KjQmtCYINCR0KDQkNCd0JrQniDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JPQm9CQ0JLQkNCo0JrQmCDQlNCg0JDQk9CQ0J0KK9CT0JvQkNCS0JDQqNCa0Jgg0JTQo9Co0JDQnQor0JPQm9CQ0JLQkNCo0JrQmCDQk9Cb0JjQqNCQCivQk9Cb0JDQktCQ0KjQmtCYINCc0JjQm9Cj0KLQmNCdCivQk9Cb0JDQktCQ0KjQmtCYINCd0JXQnNCQ0IrQkAor0JPQm9CQ0JLQkNCo0JrQmCDQodCY0JzQkAor0JPQm9CQ0JLQkNCo0JrQmCDQodCY0J3QmNCo0JAKK9CT0JvQkNCS0JDQqNCa0Jgg0KHQnNCY0InQmtCQCivQk9Cb0JDQktCQ0J0g0IjQntCS0JDQnQor0JPQm9CQ0JLQkNCd0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JPQm9CQ0JLQkNCd0JjQiyDQiNCj0JvQmtCQCivQk9Cb0JDQktCQ0J3QmNCLINCc0JjQoNCa0J4KK9CT0JvQkNCS0JDQoNCU0JDQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0JvQkNCS0JDQoNCU0JDQndCe0JIg0JjQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQk9Cb0JDQktCQ0KDQlNCQ0J3QntCSINCc0JDQoNCY0IjQkAor0JPQm9CQ0JLQkNCg0JTQkNCd0J7QkiDQodCe0JrQngor0JPQm9CQ0JLQkNCi0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQk9Cb0JDQktCQ0KLQntCS0JjQiyDQlNCj0KjQkNCdCivQk9Cb0JDQktCY0KfQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9CT0JvQkNCS0JjQiyDQkdCe0KjQmtCeCivQk9Cb0JDQktCY0Isg0JPQkNCS0KDQngor0JPQm9CQ0JLQmNCLINCI0JXQm9Ca0JAKK9CT0JvQkNCS0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQk9Cb0JDQktCY0J3QmNCLINCI0J7QktCeCivQk9Cb0JDQktCY0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Cb0JDQktCe0KfQldCS0JjQiyDQmNCb0JjQiNCQCivQk9Cb0JXQgtCQINCc0JjQm9CV0J3QmtCeCivQk9Cb0JXQlNCY0Isg0JzQmNCb0JjQptCQCivQk9Cb0JjQqNCY0Isg0ILQntCg0ILQngor0JPQm9CY0KjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CT0JvQmNCo0JjQiyDQkdCg0JDQndCa0J4KK9CT0JvQmNCo0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQk9Cb0JjQqNCY0Isg0JjQm9CY0IjQkAor0JPQm9CY0KjQmNCLINCY0JLQkNCdCivQk9Cb0JjQqNCY0Isg0IjQldCb0JjQptCQCivQk9Cb0JjQqNCY0Isg0IjQntCS0JDQnQor0JPQm9CY0KjQmNCLLdCa0JXQodCV0JMg0JLQkNCb0JXQoNCY0IjQkAor0JPQm9CY0KjQmNCLINCJ0KPQkdCY0KjQkAor0JPQm9CY0KjQmNCLINCc0JjQm9CV0JLQkAor0JPQm9CY0KjQmNCLINCd0JXQndCQ0JQKK9CT0JvQmNCo0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JPQm9CY0KjQmNCLINCg0JDQlNCe0JzQmNCgCivQk9Cb0JjQqNCY0Isg0KHQmNCc0J4KK9CT0JvQmNCo0JjQiyDQodCg0JXQotCQCivQk9Cb0JjQqNCY0Isg0JLQldCh0J3QkAor0JPQm9CY0KjQmNCLINCX0J7QoNCQ0J0KK9CT0JvQmNCo0JjQnSDQgtCe0KDQgtCVCivQk9Cb0JjQqNCY0J0g0JHQoNCQ0J3QmtCQCivQk9Cb0JjQqNCY0J0g0J3QldCd0JDQlAor0JPQm9CY0KjQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0JvQmNCR0JjQiyDQnNCY0JvQkNCdCivQk9Cb0JjQkdCe0KLQkCDQktCb0JDQlNCeCivQk9Cb0JjQk9CY0Isg0JbQldCJ0JrQkAor0JPQm9CY0JPQmNCLINCc0JjQoNCQCivQk9Cb0JjQk9CY0Isg0J3QldCU0JXQidCa0J4KK9CT0JvQmNCT0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQk9Cb0JjQk9Ce0KDQldCS0JjQiyDQlNCj0KjQmtCeCivQk9Cb0JjQk9Ce0KDQldCS0JjQiyDQotCe0JzQngor0JPQm9CY0JPQntCg0JjQiyDQltCV0InQmtCeCivQk9Cb0JjQk9Ce0KDQmNCLINCW0JjQktCe0IjQmNCdCivQk9Cb0JjQk9Ce0KDQmNCLINCW0JjQktCe0KDQkNCUCivQk9Cb0JjQk9Ce0KDQmNCLINCQ0J3QgtCV0JvQmtCQCivQk9Cb0JjQk9Ce0KDQmNCLINCm0JLQldCi0JDQndCa0JAKK9CT0JvQmNCT0J7QoNCY0Isg0JTQoNCQ0JPQkNCdCivQk9Cb0JjQk9Ce0KDQmNCLINCU0KDQkNCT0JDQnQor0JPQm9CY0JPQntCg0JjQiyDQlNCg0JDQk9CY0KjQkAor0JPQm9CY0JPQntCg0JjQiyDQlNCg0JDQk9CY0KbQkAor0JPQm9CY0JPQntCg0JjQiyDQlNCg0JDQk9CY0IrQkAor0JPQm9CY0JPQntCg0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQk9Cb0JjQk9Ce0KDQmNCLINCI0JXQm9CV0J3QkAor0JPQm9CY0JPQntCg0JjQiyDQmtCQ0KLQmNCm0JAKK9CT0JvQmNCT0J7QoNCY0Isg0InQo9CR0J7QnNCY0KAKK9CT0JvQmNCT0J7QoNCY0Isg0JzQmNCb0JDQnQor0JPQm9CY0JPQntCg0JjQiyDQnNCY0JvQkNCdCivQk9Cb0JjQk9Ce0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Cb0JjQk9Ce0KDQmNCLINCc0JvQkNCU0JXQnQor0JPQm9CY0JPQntCg0JjQiyDQndCY0JrQntCb0JAKK9CT0JvQmNCT0J7QoNCY0Isg0KDQkNCU0JjQqNCQCivQk9Cb0JjQk9Ce0KDQmNCLINCh0KLQkNCd0J7QiNCVCivQk9Cb0JjQk9Ce0KDQmNCLINCh0KLQldCS0JDQnQor0JPQm9CY0JPQntCg0JjQiyDQodCi0JXQktCQ0J0KK9CT0JvQmNCT0J7QoNCY0IjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQm9CY0JPQntCg0JjQiNCV0JLQmNCLINCU0KDQkNCT0JDQndCQCivQk9Cb0JjQk9Ce0KDQmNCI0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CT0JvQmNCT0J7QoNCY0IjQldCS0JjQiyDQmtCg0KHQotCQCivQk9Cb0JjQk9Ce0KDQmNCI0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CT0JvQmNCT0J7QoNCY0IjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JPQm9CY0JPQntCg0JjQiNCV0JLQmNCLINCf0JXQotCg0JAKK9CT0JvQmNCT0J7QoNCY0IjQldCS0JjQiyDQoNCj0JbQmNCm0JAKK9CT0JvQmNCT0J7QoNCY0J0g0ILQo9Cg0ILQmNCd0JrQkAor0JPQm9CY0JPQntCg0JjQnSDQkdCe0IjQkNCd0JAKK9CT0JvQmNCT0J7QoNCY0J0g0JzQmNCg0J7QodCb0JDQkgor0JPQm9CY0JPQntCg0JjQnSDQodCb0JDQktCY0KbQkAor0JPQm9CY0JPQntCg0JjQnSDQodCi0JXQktCQ0J0KK9CT0JvQmNCT0J7QoNCY0J0g0KLQntCc0JjQodCb0JDQkgor0JPQm9CY0JPQntCg0JjQnSDQl9Ce0KDQkNCdCivQk9Cb0JjQk9Ce0KDQmNCdINCX0J7QoNCa0JAKK9CT0JvQmNCT0J7QoNCe0JIg0JTQldCh0JjQnNCY0KAKK9CT0JvQmNCT0J7QoNCe0JIg0IjQntCS0JDQnQor0JPQm9CY0JPQntCg0J7QkiDQm9CV0JrQkAor0JPQm9CY0JPQntCg0J7QkiDQidCj0JHQntCc0JjQoAor0JPQm9CY0JPQntCg0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQk9Cb0JjQk9Ce0KDQntCS0KHQmtCYINCi0KDQkNCI0JrQngor0JPQm9CY0J3QotCY0Isg0JzQmNCb0JUKK9CT0JvQmNCd0KLQmNCLINCc0JjQntCU0KDQkNCTCivQk9Cb0JjQndCi0JjQiyDQndCY0JrQntCb0JAKK9CT0JvQmNCd0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CT0JvQmNCd0KLQmNCLINCh0JDQktCa0JAKK9CT0JvQmNCd0KLQmNCLINCS0JXQodCV0JvQmtCQCivQk9Cb0J7QltCQ0J3QodCa0Jgg0JzQkNCg0JjQiNCQCivQk9Cb0J7QltCQ0J3QodCa0Jgg0J/QldCi0JDQoAor0JPQm9Ce0JbQkNCd0KHQmtCYINCS0J7QiNCY0KHQm9CQ0JIKK9CT0JvQntCT0J7QitCQ0KYg0JLQmNCi0J7QnNCY0KAKK9CT0JvQntCT0J7QktCn0JDQnSDQnNCY0JvQntCoINCU0JjQn9CbINCY0J3Qkwor0JPQm9Ce0JPQntCS0JDQpiDQiNCV0JLQoNCV0JwKK9CT0JvQntCT0J7QktCQ0KYg0JrQntCg0J3QldCb0JjQiNCQCivQk9Cb0J7Qk9Ce0JLQkNCmINCc0JjQoNCa0J4KK9CT0JvQntCT0J7QktCQ0KYg0JzQntCc0KfQmNCb0J4KK9CT0JvQo9Co0JDQpiDQkdCe0JbQmNCU0JDQoAor0JPQm9Cj0KjQkNCmINCU0KPQqNCQ0J0KK9CT0JvQo9Co0JDQpiDQnNCY0KXQkNCI0JvQngor0JPQm9Cj0KjQkNCmINCc0JjQm9CQ0J0KK9CT0JvQo9Co0JDQpiDQnNCY0JvQntCoCivQk9Cb0KPQqNCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9CT0JvQo9Co0JDQpiDQn9CV0KLQkNCgCivQk9Cb0KPQqNCY0Isg0JHQoNCQ0J3QmtCeCivQk9Cb0KPQqNCY0KbQkCDQidCj0JHQntCc0JjQoAor0JPQm9Cj0KjQmNCm0JAg0JzQmNCb0JDQnQor0JPQm9Cj0KjQmNCm0JAg0JzQmNCb0JDQnQor0JPQm9Cj0KjQmNCm0JAg0JzQmNCb0JUKK9CT0JvQo9Co0JjQptCQINCd0JXQndCQ0JQKK9CT0JvQo9Co0JjQptCQINCf0JXQotCQ0KAKK9CT0JvQo9Co0JjQptCQINCh0JvQkNCC0JDQndCQCivQk9Cb0KPQqNCY0KbQkCDQodCb0JDQktCa0JAKK9CT0JvQo9Co0JjQptCQINCX0JTQoNCQ0JLQmtCeCivQk9Cb0KPQpdCQ0JjQiyDQkNCd0ILQldCb0JrQngor0JPQm9Cj0KXQkNCI0JjQiyDQkdCe0JbQngor0JPQm9Cj0KXQkNCaINCa0JDQoNCb0J4KK9CT0JvQo9Cl0J7QktCY0Isg0JzQmNCb0J7QqAor0JPQm9Cj0KXQntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0JPQm9Cj0KXQntCS0JjQiyDQktCV0InQmtCeCivQk9Cb0KPQnNCQ0KYg0JTQkNCd0JUKK9CT0JvQo9Cc0JDQpiDQlNCQ0J3QmNCb0J4KK9CT0JvQo9Cc0JDQpiDQlNCQ0J3QmNCb0J4KK9CT0JvQo9Cc0JDQpiDQlNCg0JDQk9CQ0J0KK9CT0JvQo9Cc0JDQpiDQlNCj0KjQkNCdCivQk9Cb0KPQnNCQ0KYg0JPQkNCS0KDQkAor0JPQm9Cj0JzQkNCmINCI0JXQm9CV0J3QkAor0JPQm9Cj0JzQkNCmINCb0JDQl9CeCivQk9Cb0KPQnNCQ0KYg0InQo9CR0J4KK9CT0JvQo9Cc0JDQpiDQnNCQ0JPQlNCQ0JvQldCd0JAKK9CT0JvQo9Cc0JDQpiDQnNCY0JvQkNCdCivQk9Cb0KPQnNCQ0KYg0JzQmNCb0JUKK9CT0JvQo9Cc0JDQpiDQnNCY0J7QlNCg0JDQkyDQlNCgCivQk9Cb0KPQnNCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0JPQm9Cj0JzQkNCmINCh0JvQntCR0J7QlNCQ0J0g0JTQoAor0JPQm9Cj0JzQmNCn0JjQiyDQnNCQ0J3QlNCQCivQk9Cb0KPQktCQ0JjQiyDQgtCe0KDQgtCVCivQk9Cb0KPQktCQ0IjQmNCLINCU0KDQkNCT0JDQnQor0JPQm9Cj0JLQkNCI0JjQiyDQiNCe0JLQkNCdCivQk9Cb0KPQktCQ0JrQntCSINCc0JjQm9CQ0JTQmNCd0JrQkAor0JPQm9Cj0JLQkNCa0J7QkiDQn9CQ0JLQm9CVCivQk9Cb0KPQktCQ0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQk9Cb0KPQktCK0JAg0KHQotCV0JLQkNCdCivQk9Cc0JjQl9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQk9Cc0JjQl9CY0Isg0J3QldCT0J7QktCQ0J0KK9CT0JzQmNCX0JjQiyDQktCb0JDQlNCQCivQk9Cd0JjQnyDQiNCe0JDQmtCY0JwKK9CT0J3QmNCfINCS0JXQm9CY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JPQndCY0J8g0JLQldCg0JAKK9CT0J3QmNCfINCS0JvQkNCU0JjQnNCY0KAKK9CT0IrQkNCi0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQk9CK0JXQpyDQodCS0JXQnQor0JPQntCn0JDQndCY0J0g0KDQkNCU0JUKK9CT0J7Qp9CY0Isg0JDQndCC0JAKK9CT0J7QqNCY0Isg0IjQldCS0KDQldCcCivQk9Ce0KjQmNCLINCJ0JjQidCQCivQk9Ce0KjQmNCLINCf0JDQktCb0JUKK9CT0J7QqNCY0Isg0J/QkNCS0JvQlQor0JPQntCo0JjQiyDQn9CQ0JLQm9CVCivQk9Ce0KjQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CT0J7QqNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JPQntCo0IrQmNCLINCU0J7QkdCg0JjQktCe0IgKK9CT0J7QgtCV0JLQkNCmINCR0J7QodCY0InQmtCQCivQk9Ce0JHQldCmINCa0JDQotCY0KbQkAor0JPQntCR0JXQpiDQnNCY0JvQkNCdCivQk9Ce0JHQldCJ0JjQiyDQnNCY0JvQntCS0JDQnQor0JPQntCR0JXQidCY0Isg0KHQotCg0JDQpdCY0IrQkAor0JPQntCR0JXQidCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQk9Ce0JHQldCJ0JjQiyDQktCj0JrQkNCU0JjQnQor0JPQntCR0JXQidCY0Isg0JLQo9CaCivQk9Ce0JHQntCgINCQ0J3QkAor0JPQntCR0J7QoCDQm9CQ0JTQmNCh0JvQkNCSCivQk9Ce0JHQntCgINCX0J7Qm9Ci0JDQnQor0JPQntCR0J7QoCDQl9Ce0JvQotCQ0J0KK9CT0J7QptCY0Isg0JHQntCT0J7QodCQ0JIKK9CT0J7QptCY0Isg0IjQldCS0KDQntCh0JjQnNCQCivQk9Ce0KbQmNCLINCS0JjQlNCe0IjQmtCeCivQk9Ce0JTQkCDQntCb0JjQktCY0IjQkAor0JPQntCU0JDQoCDQmtCQ0KLQkNCg0JjQndCQCivQk9Ce0JTQmNCLINCc0JDQoNCY0IjQkAor0JPQntCU0JjQiyDQl9CS0J7QndCa0J4KK9CT0J7QlNCY0Isg0JfQktCe0J3QmtCeCivQk9Ce0JTQmNCd0JAg0JTQkNCg0JrQngor0JPQntCU0JjQndCQINCc0JjQm9Ca0J4KK9CT0J7QlNCY0J3QodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JPQntCU0J7QqNCV0JIg0JrQoNCh0KLQkAor0JPQntCU0J7QoCDQqNCQ0J3QlNCe0KAKK9CT0J7QlNCe0KAg0IjQkNCd0J7QqAor0JPQntCU0J7QoCDQiNCe0KHQmNCfCivQk9Ce0JTQo9Cd0KYg0JTQo9Co0JDQnQor0JPQntCT0JjQiyDQlNCe0JHQoNCY0JvQngor0JPQntCT0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQk9Ce0JPQmNCLINCc0JDQoNCQCivQk9Ce0JPQmNCLINCf0JDQktCb0JUKK9CT0J7Qk9CY0Isg0KHQm9CQ0JLQmtCeCivQk9Ce0JPQmNCLINCS0JXQm9CY0J3QmtCQCivQk9Ce0JPQntCb0JDQmiDQnNCQ0KDQk9CY0KLQkAor0JPQntCT0J7QidCV0JIg0JzQmNCl0JDQiNCb0J4KK9CT0J7Qk9Ce0InQldCSINCj0InQkNCd0JAKK9CT0J7Qk9Ce0InQldCSINCS0JDQodCY0JvQmNCI0JUKK9CT0J7Qk9Ce0JIg0JzQmNCb0JDQnQor0JPQntCI0JDQnSDQpNCV0KDQldCd0KYKK9CT0J7QiNCY0Isg0JTQoNCQ0JPQkNCdCivQk9Ce0IjQmNCLINCT0J7QiNCa0J4KK9CT0J7QiNCY0Isg0JzQmNCb0JXQndCQCivQk9Ce0IjQmNCLINCc0JjQm9CVCivQk9Ce0IjQmtCe0JIg0JbQmNCS0JrQngor0JPQntCI0JrQntCSINCI0KPQm9CY0IjQkNCd0JAKK9CT0J7QiNCa0J7QkiDQnNCY0JvQldCd0JAKK9CT0J7QiNCa0J7QkiDQoNCQ0JTQntCc0JjQoAor0JPQntCI0JrQntCSINCS0JDQodCY0JvQmNCI0JUKK9CT0J7QiNCa0J7QktCY0Isg0JTQntCd0JrQkAor0JPQntCI0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0J7QiNCa0J7QktCY0Isg0JTQoNCQ0JPQntCg0JDQlAor0JPQntCI0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQk9Ce0IjQmtCe0JLQmNCLINCT0JXQntCg0JPQmNCI0JUg0JTQmNCf0Jsg0JjQndCTCivQk9Ce0IjQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9CT0J7QiNCa0J7QktCY0Isg0IjQldCb0JAKK9CT0J7QiNCa0J7QktCY0Isg0InQo9CR0JjQqNCQCivQk9Ce0IjQmtCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQk9Ce0IjQmtCe0JLQmNCLINCc0JjQotCQCivQk9Ce0IjQmtCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQk9Ce0IjQmtCe0JLQmNCLINCd0JXQktCV0J3QmtCQCivQk9Ce0IjQmtCe0JLQmNCLINCf0JDQktCb0JUKK9CT0J7QiNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0J4KK9CT0J7QiNCa0J7QktCY0Isg0KDQkNCU0J7QidCj0JEKK9CT0J7QiNCa0J7QktCY0Isg0KHQkNCS0J4KK9CT0J7QiNCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JPQntCI0J3QmNCLINCU0JDQktCe0KAKK9CT0J7QiNCe0JLQmNCLINCS0KPQmtCe0KHQkNCSCivQk9Ce0JrQm9CV0KAg0JjQm9Ce0J3QkAor0JPQntCb0JTQnNCQ0J0g0JDQndCa0JjQptCQCivQk9Ce0JvQlNCc0JDQnS3QotCe0JzQkNCo0JXQktCY0Isg0JXQktCQCivQk9Ce0JvQldCoINCg0KPQltCQCivQk9Ce0JvQldCd0JjQiyDQodCb0JDQktCa0J4KK9CT0J7Qm9CV0IrQkCDQkdCg0JDQndCa0J4KK9CT0J7Qm9CV0IrQkCDQmNCg0JXQndCQCivQk9Ce0JvQldCK0JAg0JzQmNCg0J7QodCb0JDQktCQCivQk9Ce0JvQldCK0JAg0JzQmNCg0J7QodCb0JDQktCQCivQk9Ce0JvQldCS0JAg0J3QkNCU0JAKK9CT0J7Qm9CY0KjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JPQntCb0JjQiyDQltCY0JLQkNCdCivQk9Ce0JvQmNCLINCC0J7QoNCC0JUKK9CT0J7Qm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0J7Qm9CY0Isg0JDQndCY0KbQkAor0JPQntCb0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9CT0J7Qm9CY0Isg0KTQkNCY0JQKK9CT0J7Qm9CY0Isg0InQo9CR0J7QnNCY0KAKK9CT0J7Qm9CY0Isg0JzQkNCg0JrQngor0JPQntCb0JjQiyDQodCb0JDQktCa0JAKK9CT0J7Qm9CY0Isg0KHQotCQ0J3QmtCQCivQk9Ce0JvQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CT0J7Qm9CY0Isg0JLQntCI0JjQnQor0JPQntCb0JjQiyDQktCe0IjQmtCeCivQk9Ce0JvQmNCI0JDQnSDQkNCd0JAKK9CT0J7Qm9CY0IjQkNCd0JjQnSDQlNCj0KjQkNCd0JrQkAor0JPQntCb0JjQiNCQ0J3QmNCdINCV0KDQltCV0JHQldCiCivQk9Ce0JvQmNCaINCe0JvQk9CQCivQk9Ce0JvQmNCaINCh0JvQntCR0J7QlNCQ0J0KK9CT0J7QidCV0JLQkNCn0JrQmCDQlNCg0JDQk9CY0KbQkAor0JPQntCb0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0J7Qm9CeINCU0KDQkNCT0J7QodCb0JDQkgor0JPQntCb0J7Qp9Ce0KDQkdCY0J0g0KHQm9CQ0JLQo9CICivQk9Ce0JvQntCn0J7QoNCU0JjQnSDQlNCg0JDQk9CeCivQk9Ce0JvQntCo0JjQnS3QlNCY0JzQmNCi0KDQmNCI0JXQktCY0Isg0InQmNCJ0JDQndCQCivQk9Ce0JvQntCo0JjQnSDQodCi0JXQktCY0KbQkAor0JPQntCb0J7QkdCe0KfQkNCd0JjQnSDQnNCY0JvQntCh0JDQkgor0JPQntCb0J7QnNCV0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Ce0JvQntCd0JjQiyDQl9CQ0JPQntCg0JrQkAor0JPQntCb0J7Qo9ClINCY0JLQkNCdCivQk9Ce0JvQntCS0JjQiyDQiNCe0JLQkNCdCivQk9Ce0JvQo9Co0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0J7Qm9Cj0KjQmNCdINCU0KDQkNCT0JDQnQor0JPQntCb0KPQqNCY0J0g0InQo9CR0JjQptCQCivQk9Ce0JvQo9Co0JjQnSDQidCj0JHQntCc0JjQoAor0JPQntCb0KPQqNCY0J0t0JzQmNCL0JjQiyDQnNCY0JvQldCd0JrQngor0JPQntCb0KPQqNCY0J0g0JzQmNCe0JTQoNCQ0JMKK9CT0J7Qm9Cj0KjQmNCdINCd0JDQlNCQCivQk9Ce0JvQo9Co0JjQnSDQndCY0JrQntCb0JAKK9CT0J7Qm9Cj0JHQmNCn0JjQiyDQktCV0KDQkAor0JPQntCb0KPQkdCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JPQntCb0KPQkdCI0JDQotCd0JjQmtCe0JLQkCDQndCY0J3QkAor0JPQntCb0KPQkdCe0JIg0J3QkNCa0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JPQntCb0KPQkdCe0JLQmNCLINCC0J7QoNCC0JUKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQntCb0KPQkdCe0JLQmNCLINCQ0KDQodCV0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQkdCe0KjQmtCeCivQk9Ce0JvQo9CR0J7QktCY0Isg0JHQntCT0JTQkNCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0JPQntCb0KPQkdCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQk9Ce0JvQo9CR0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0JTQoNCQ0JPQkAor0JPQntCb0KPQkdCe0JLQmNCLINCT0J7Qm9Cj0JEKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQk9Ce0JvQo9CRCivQk9Ce0JvQo9CR0J7QktCY0Isg0JjQm9CY0IjQkAor0JPQntCb0KPQkdCe0JLQmNCLINCY0JLQkNCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0IjQldCg0JXQnNCY0IjQlQor0JPQntCb0KPQkdCe0JLQmNCLINCI0J7QktCQ0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQmtCh0JXQndCY0IjQkAor0JPQntCb0KPQkdCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JPQntCb0KPQkdCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQk9Ce0JvQo9CR0J7QktCY0Isg0JvQo9Ca0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCQ0J3QntCI0JvQngor0JPQntCb0KPQkdCe0JLQmNCLINCc0JDQndCe0IjQm9CeCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCY0JvQkNCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JPQntCb0KPQkdCe0JLQmNCLINCc0JjQm9Cj0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JPQntCb0KPQkdCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQm9CQ0ILQldCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JPQntCb0KPQkdCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQk9Ce0JvQo9CR0J7QktCY0Isg0J3QkNCU0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQndCY0JrQntCb0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQntCb0JPQmNCm0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQn9CV0KDQmNCo0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQodCV0JrQo9Cb0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQodCi0JDQndCQCivQk9Ce0JvQo9CR0J7QktCY0Isg0KHQotCQ0J3QkAor0JPQntCb0KPQkdCe0JLQmNCLINCi0JXQntCU0J7QoNCQCivQk9Ce0JvQo9CR0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQotCe0JzQngor0JPQntCb0KPQkdCe0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CT0J7Qm9Cj0JHQntCS0JjQiyDQktCV0JvQmNCX0JDQoAor0JPQntCb0KPQkdCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9CT0J7Qm9Cj0JHQntCS0JjQiyDQl9Ce0KDQkNCdCivQk9Ce0JvQo9CR0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0JPQntCb0KPQkdCh0JrQmCDQnNCY0JvQmNCm0JAKK9CT0J7Qm9Cj0JHQodCa0Jgg0KDQo9CW0JAKK9CT0J7QnNCR0JDQqCDQotCQ0JzQkNCoCivQk9Ce0JzQkdCQ0KAg0KjQkNCd0JTQntCgCivQk9Ce0JzQkdCQ0KAg0JXQm9CY0JfQkNCR0JXQotCQCivQk9Ce0JzQkdCQ0KAg0KTQldCg0JXQndCmCivQk9Ce0JzQkdCQ0KAg0JjQqNCi0JLQkNCdCivQk9Ce0JzQkdCQ0KAg0IjQkNCd0J7QqAor0JPQntCc0JHQkNCgINCI0JDQndCe0KgKK9CT0J7QnNCR0JDQoCDQmtCQ0KLQkNCb0JjQnQor0JPQntCc0JHQkNCgINCc0JjQpdCQ0IkKK9CT0J7QnNCR0JDQoCDQoNCe0JfQkNCb0JjQiNCQCivQk9Ce0JzQkdCe0Kgg0JjQqNCi0JLQkNCdCivQk9Ce0JzQkdCe0Kgg0JjQktCY0KbQkAor0JPQntCc0JHQntCoINCa0JDQoNCb0J4KK9CT0J7QnNCR0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQk9Ce0JzQmNCg0JDQpiDQltCY0JLQmtCeCivQk9Ce0JzQmNCg0JDQpiDQkdCg0JDQndCa0J4KK9CT0J7QnNCY0KDQkNCmINCh0KLQntCI0JDQnQor0JPQntCd0KfQmNCdINCh0KDQldCi0JrQngor0JPQntCd0ILQkCDQltCY0JLQkNCdCivQk9Ce0J3QgtCQINCc0JjQm9CV0J3QkAor0JPQntCd0ILQkCDQn9CV0KLQkNCgCivQk9Ce0J3QlNCQINCb0JDQlNCY0KHQm9CQ0JIKK9CT0J7QndCU0JDQoCDQoNCj0JbQkAor0JPQntCK0JAg0JHQoNCQ0J3QmNCc0JjQoAor0JPQntCK0JAg0JzQmNCb0J7QodCb0JDQkgor0JPQntCK0JAg0J/QldCi0JDQoAor0JPQntCg0KjQlSDQkNCd0JTQoNCY0IjQkAor0JPQntCg0JDQndCe0JLQmNCLINCU0KDQkNCT0J4KK9CT0J7QoNCQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQk9Ce0KDQkdCQ0J3QntCSINCY0JLQkNCdCivQk9Ce0KDQlNCQ0J3QmNCLINCh0KLQntCI0JDQnQor0JPQntCg0JTQmNCLINCU0JDQoNCY0J3QmtCQCivQk9Ce0KDQlNCY0Isg0JPQntCI0JrQngor0JPQntCg0JTQmNCLINCb0JDQktCY0J3QmNCI0JAKK9CT0J7QoNCU0JjQiyDQnNCY0JvQntCg0JDQlAor0JPQntCg0JTQmNCLINCc0JjQm9Ce0JLQkNCdCivQk9Ce0KDQlNCY0Isg0KDQmNCh0KLQngor0JPQntCg0JTQmNCLINCh0JvQkNCS0JrQngor0JPQntCg0JTQmNCLINCh0KLQldCS0JDQnQor0JPQntCg0JTQmNCLINCS0JjQotCe0JzQmNCgCivQk9Ce0KDQlNCe0Kgg0JbQo9CW0JDQndCQCivQk9Ce0KDQldCn0JDQnSDQmtCQ0KDQm9CeCivQk9Ce0KDQldCmINCU0KDQkNCT0KPQotCY0J0KK9CT0J7QoNCV0KYg0J3QkNCU0JAKK9CT0J7QoNCV0IrQkNCaINCg0KPQlNCe0JvQpAor0JPQntCg0JjQp9CQ0J3QldCmINCc0JjQiNCeCivQk9Ce0KDQiNCQ0J3QkNCmINCR0KDQkNCd0JrQngor0JPQntCg0IjQkNCd0JDQpiDQnNCQ0KDQmNCdCivQk9Ce0KDQitCQ0Jog0JrQkNCi0JjQptCQCivQk9Ce0KDQotCS0JAg0IjQntCh0JjQnwor0JPQntCh0JDQoNCY0Isg0KTQoNCQ0IrQkAor0JPQntCh0J/QmNCLINCd0JXQlNCV0InQmtCeCivQk9Ce0KHQn9Ce0ILQmNCd0JDQp9Ca0Jgg0KDQkNCU0J7QktCQ0J0KK9CT0J7QodCf0J7QlNCY0J3QntCS0JjQiyDQmNCS0JDQnQor0JPQntCh0KLQmNCLINCX0JTQoNCQ0JLQmtCeCivQk9Ce0KHQotCY0JzQmNCg0J7QktCY0Isg0JzQkNCg0JjQnQor0JPQntCh0KLQmNCc0JjQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9CT0J7QodCi0J7QiNCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0JPQntCh0KLQntCI0JjQiyDQlNCj0KjQkNCdCivQk9Ce0KHQotCe0IjQmNCLINCI0J7QktCQ0J0KK9CT0J7QodCi0J7QiNCY0Isg0JvQkNCX0JDQoAor0JPQntCh0KLQntCI0JjQiyDQnNCY0JvQkNCd0JAKK9CT0J7QodCi0J7QiNCY0Isg0JzQmNCb0J7QqAor0JPQntCh0KLQntCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQk9Ce0KHQotCe0IjQmNCLINCc0JjQotCQ0KAKK9CT0J7QodCi0J7QiNCY0Isg0KHQm9CQ0JLQmtCQCivQk9Ce0KHQotCe0IjQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQk9Ce0KHQotCe0IjQmNCLINCi0JXQntCU0J7QoAor0JPQntCh0KLQntCS0JjQiyDQgtCe0KDQgtCVCivQk9Ce0KHQotCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JPQntCh0KLQntCS0JjQiyDQmNCa0JAKK9CT0J7QodCi0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CT0J7QodCi0J7QktCY0Isg0JzQntCc0JjQoAor0JPQntCi0KjQotCQ0IjQnSDQpNCV0KDQldCd0KYKK9CT0J7QktCV0JTQkNCg0JjQptCQINCn0JXQlNCeCivQk9Ce0JLQldCU0JDQoNCY0KbQkCDQltCV0JvQmNCc0JjQoAor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0JTQldCI0JDQnQor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0JTQoNCQ0JPQmNCm0JAKK9CT0J7QktCV0JTQkNCg0JjQptCQINCc0JjQm9CV0J3QmtCeCivQk9Ce0JLQldCU0JDQoNCY0KbQkCDQnNCY0JvQntCS0JDQnQor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0JzQmNCi0JDQoAor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0JzQmNCi0JDQoAor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0J/QkNCS0JvQlQor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0KHQmNCc0J4KK9CT0J7QktCV0JTQkNCg0JjQptCQINCh0JvQkNCS0JrQngor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0KLQkNCi0JDQiNCQ0J3QkAor0JPQntCS0JXQlNCQ0KDQmNCm0JAg0JLQldCb0JjQnNCY0KAKK9CT0J7QktCV0JTQkNCg0JjQptCQINCS0JvQkNCU0JjQnNCY0KAKK9CT0J7QktCV0JTQkNCg0J7QktCY0Isg0IjQo9Cb0JjQiNCQCivQk9Ce0JLQldCU0JDQoNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JPQntCS0JXQlNCQ0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQk9Ce0JLQntCg0KfQmNCdINCW0JjQktCa0JAKK9CT0J7QktCe0KDQp9CY0J0g0JHQntCT0JTQkNCdCivQk9Ce0JLQntCg0KfQmNCdINCU0JDQoNCY0J3QmtCQCivQk9Ce0JLQntCg0KfQmNCdINCU0JXQm9CY0J3QmtCQCivQk9Ce0JLQntCg0KfQmNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0JPQntCS0J7QoNCn0JjQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9CT0J7QktCe0KDQp9CY0J0g0JTQo9Co0JDQnQor0JPQntCS0J7QoNCn0JjQnSDQk9CQ0JLQoNCQCivQk9Ce0JLQntCg0KfQmNCdINCb0JDQl9CQ0KAKK9CT0J7QktCe0KDQp9CY0J0g0JzQm9CQ0JTQldCdCivQk9Ce0JLQntCg0KfQmNCdINCh0JDQktCQCivQk9Ce0JLQntCg0KfQmNCdINCh0JvQkNCS0JjQptCQCivQk9Ce0JLQntCg0KfQmNCdINCh0JvQntCR0J7QlNCQ0J0KK9CT0J7QktCe0KDQp9CY0J0g0KHQotCV0JLQkNCdCivQk9Ce0JLQntCg0KfQmNCdINCh0KLQntCI0JDQnQor0JPQntCS0J7QoNCn0JjQnSDQktCV0KDQkAor0JPQntCS0J7QoNCn0JjQnSDQktCb0JDQlNCQCivQk9Ce0JLQntCg0KfQmNCdINCS0JvQkNCU0JjQnNCY0KAKK9CT0J7QktCe0KDQp9CY0J3QntCSINCc0JjQoNCe0KHQm9CQ0JIKK9CT0KDQp9CQ0J3QkNCmINCR0KDQkNCd0JrQngor0JPQoNCn0JUg0JzQmNCb0JDQnQor0JPQoNCn0JjQiyDQnNCY0JvQldCd0JrQngor0JPQoNCn0JjQiyDQnNCY0JvQmNCS0J7QiAor0JPQoNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0JPQoNCn0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CT0KDQp9CY0Ist0KLQo9CR0JjQiyDQiNCe0JLQkNCd0JrQkAor0JPQoNCn0JjQiyDQktCV0KDQmNCm0JAKK9CT0KDQp9CY0Isg0JfQntCg0JrQkAor0JPQoNCn0JrQmCDQnNCY0JvQlQor0JPQoNCn0JrQmCDQnNCY0KDQiNCQ0J3QkAor0JPQoNCo0JjQiyDQgtCe0KDQgtCVCivQk9Cg0KjQmNCLINCC0J7QoNCC0JUKK9CT0KDQqNCY0Isg0JzQmNCb0JjQptCQCivQk9Cg0KjQmNCLINCd0JjQmtCe0JvQkAor0JPQoNCo0JjQiyDQoNCj0JbQmNCm0JAKK9CT0KDQqNCY0Isg0KHQntCk0JjQiNCQCivQk9Cg0ILQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CT0KDQkNCn0JDQndCY0J0g0JjQktCQ0J0KK9CT0KDQkNCn0JDQndCY0J0g0JLQkNCb0JXQoNCY0IjQkAor0JPQoNCQ0KfQldCaINCh0KLQldCS0JDQnQor0JPQoNCQ0KfQmNCaINCh0JvQkNCS0JrQkAor0JPQoNCQ0KfQmNCaINCh0KLQldCS0JDQnQor0JPQoNCQ0KfQmtCeINCo0JDQndCU0J7QoAor0JPQoNCQ0KfQmtCeINCe0JvQk9CQCivQk9Cg0JDQp9Ca0J4g0J7Qm9CT0JAKK9CT0KDQkNCn0JrQniDQoNCe0JfQkNCb0JjQiNCQCivQk9Cg0JDQqNCQINCI0J7QodCY0J8KK9CT0KDQkNCo0JDQoCDQkNCd0JAKK9CT0KDQkNCo0JjQiyDQktCQ0JvQldCd0KLQmNCdCivQk9Cg0JDQqNCY0Isg0JfQlNCV0J3QmtCeCivQk9Cg0JDQqNCd0JXQoCDQodCe0KTQmNCI0JAKK9CT0KDQkNCC0JjQnSDQnNCY0JvQntCoCivQk9Cg0JDQkSDQpNCV0KDQldCd0KYKK9CT0KDQkNCR0JDQoCDQiNCe0KHQmNCf0JAKK9CT0KDQkNCR0JDQoCDQiNCe0KHQmNCfCivQk9Cg0JDQkdCQ0KAg0JzQmNCg0JrQngor0JPQoNCQ0JHQldCWINCY0JvQlQor0JPQoNCQ0JHQldCWINCI0J7QiNCQCivQk9Cg0JDQkdCY0Isg0KHQotCV0JLQkNCdCivQk9Cg0JDQkdCY0Isg0KPQoNCe0KgKK9CT0KDQkNCR0J7QptCYINCg0JDQnNCQ0JTQkNCdCivQk9Cg0JDQkdCe0JLQkNCmINCQ0KbQngor0JPQoNCQ0JHQntCS0JDQpiDQptCS0JXQotCQCivQk9Cg0JDQkdCe0JLQkNCmINCU0JjQnNCY0KLQoNCY0IjQlQor0JPQoNCQ0JHQntCS0JDQpiDQiNCe0JLQkNCdCivQk9Cg0JDQkdCe0JLQkNCmINCd0JXQktCV0J3QmtCQCivQk9Cg0JDQkdCe0JLQkNCmINCg0JDQndCa0J4KK9CT0KDQkNCR0J7QktCQ0KYg0KHQmNCc0JXQo9CdCivQk9Cg0JDQkdCj0J3Qj9CY0IjQkCDQiNCj0JvQmNCI0JDQndCQCivQk9Cg0JDQlNCQ0KjQp9CV0JLQmNCLINCe0KHQnNCQ0J0KK9CT0KDQkNCU0JjQiyDQltCY0JLQmtCeCivQk9Cg0JDQlNCY0Isg0JHQntCW0JjQptCQCivQk9Cg0JDQlNCY0Isg0JTQkNCd0JrQkAor0JPQoNCQ0JTQmNCLINCh0J/QkNCh0J7QiNCVCivQk9Cg0JDQlNCY0J3Qp9CV0JLQmNCLINCQ0KDQodCV0J3QmNCI0JUKK9CT0KDQkNCU0JjQndCQINCh0JzQmNCJ0JrQkAor0JPQoNCQ0JTQmNCd0JDQpiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQoNCQ0JTQmNCd0JDQpiDQodCg0JXQlNCe0IjQlQor0JPQoNCQ0JTQmNCd0JDQpiDQodCg0JXQlNCe0IjQlQor0JPQoNCQ0JTQmNCd0JDQpiDQodCg0JXQlNCe0IjQlQor0JPQoNCQ0JTQmNCd0JDQoNCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQk9Cg0JDQlNCe0IjQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CT0KDQkNCU0J7QiNCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JPQoNCQ0KXQldCaINCd0JDQlNCQCivQk9Cg0JDQpdCe0JLQkNCmINCC0J7QoNCC0JUKK9CT0KDQkNCl0J7QktCQ0KYg0ILQntCg0ILQlQor0JPQoNCQ0KXQntCS0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0KDQkNCl0J7QktCQ0KYg0KbQktCY0IjQngor0JPQoNCQ0KXQntCS0JDQpiDQlNCQ0J3QmNCI0JXQm9CQCivQk9Cg0JDQpdCe0JLQkNCmINCU0KDQkNCT0JDQndCQCivQk9Cg0JDQpdCe0JLQkNCmINCU0KDQkNCT0JjQptCQCivQk9Cg0JDQpdCe0JLQkNCmINCU0KPQqNCQ0J3QmtCQCivQk9Cg0JDQpdCe0JLQkNCmINCU0KPQqNCQ0J0KK9CT0KDQkNCl0J7QktCQ0KYg0JTQo9Co0JDQnQor0JPQoNCQ0KXQntCS0JDQpiDQlNCj0KjQkNCdCivQk9Cg0JDQpdCe0JLQkNCmINCT0J7QiNCa0J4KK9CT0KDQkNCl0J7QktCQ0KYg0IjQkNCd0JrQngor0JPQoNCQ0KXQntCS0JDQpiDQiNCe0JLQkNCdCivQk9Cg0JDQpdCe0JLQkNCmINCI0J7QktCQ0J0KK9CT0KDQkNCl0J7QktCQ0KYg0JzQmNCe0JTQoNCQ0JMKK9CT0KDQkNCl0J7QktCQ0KYg0JzQmNCg0JrQngor0JPQoNCQ0KXQntCS0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQk9Cg0JDQpdCe0JLQkNCmINCd0JDQlNCQCivQk9Cg0JDQpdCe0JLQkNCmINCd0JjQmtCe0JvQkAor0JPQoNCQ0KXQntCS0JDQpiDQntCR0KDQkNCUCivQk9Cg0JDQpdCe0JLQkNCmINCg0JDQlNCVCivQk9Cg0JDQpdCe0JLQkNCmINCg0JDQndCa0JAKK9CT0KDQkNCl0J7QktCQ0KYg0KHQm9CQ0JLQmNCm0JAKK9CT0KDQkNCl0J7QktCQ0KYg0KHQm9CQ0JLQmtCeCivQk9Cg0JDQpdCe0JLQkNCmINCh0JvQkNCS0JrQngor0JPQoNCQ0KXQntCS0JDQpiDQodCc0JjQidCQCivQk9Cg0JDQpdCe0JLQkNCmINCh0J/QkNCh0J4KK9CT0KDQkNCl0J7QktCQ0KYg0JLQkNCh0J4KK9CT0KDQkNCl0J7QktCQ0KYg0JLQldCb0JjQnNCY0KAKK9CT0KDQkNCl0J7QktCQ0KYg0JfQlNCV0J3QmtCeCivQk9Cg0JDQiNCb0JjQndCTINCV0JzQmNCbCivQk9Cg0JDQndCU0JjQiyDQnNCY0IjQntCU0KDQkNCTCivQk9Cg0JDQndCU0JjQiyDQnNCY0JvQmNCm0JAKK9CT0KDQkNCd0JTQmNCLINCg0JDQlNCe0JLQkNCdINCU0KAg0J/QoNCe0KQKK9CT0KDQkNCd0JTQmNCLINCh0KLQntCI0JDQnQor0JPQoNCQ0J3QmNCLINCc0JDQoNCY0IjQkAor0JPQoNCQ0J3QmNCLINCc0JDQoNCY0IjQkAor0JPQoNCQ0J3QmNCLINCd0JjQmtCe0JvQkAor0JPQoNCQ0J3Qo9Cb0JAg0JPQntCI0JrQngor0JPQoNCQ0J7QitCQINCC0KPQoNCeCivQk9Cg0JDQntCgINCc0JjQoNCe0KHQm9CQ0JIKK9CT0KDQkNCe0KAg0KHQm9CQ0JLQmtCeCivQk9Cg0JDQntCg0JDQpiDQmNCh0JjQlNCe0KAKK9CT0KDQkNCe0JLQkNCmINCC0J7QoNCC0JUKK9CT0KDQkNCe0JLQkNCmINCQ0J7QoNCY0JrQkAor0JPQoNCQ0J7QktCQ0KYg0JHQm9CQ0JYKK9CT0KDQkNCe0JLQkNCmINCR0J7Qk9CU0JDQnQor0JPQoNCQ0J7QktCQ0KYg0JHQntCT0JTQkNCdCivQk9Cg0JDQntCS0JDQpiDQkdCe0KDQmNCh0JvQkNCSCivQk9Cg0JDQntCS0JDQpiDQlNCj0KjQkNCdCivQk9Cg0JDQntCS0JDQpiDQnNCY0JvQntCoCivQk9Cg0JDQntCS0JDQpiDQnNCY0JvQntCg0JDQlAor0JPQoNCQ0J7QktCQ0KYg0J7Qm9CY0JLQldCg0JAKK9CT0KDQkNCe0JLQkNCmLdCf0JDQlNCg0J7QkiDQidCj0JHQmNCd0JrQkAor0JPQoNCQ0J7QktCQ0KYg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9CT0KDQkNCf0KfQkNCaINCI0J7QodCY0J8KK9CT0KDQkNCS0JDQoNCQINCU0KDQkNCT0JjQptCQCivQk9Cg0JDQktCQ0KDQkCDQndCY0JrQntCb0JAKK9CT0KDQkNCS0JDQoNCQINCg0JDQlNCVCivQk9Cg0JHQkCDQmtCe0KHQotCQCivQk9Cg0JHQkCDQnNCY0JvQkNCdCivQk9Cg0JHQkCDQndCV0JLQldCd0JrQkAor0JPQoNCR0JAg0JLQo9Ca0J7QiNCY0KbQkAor0JPQoNCR0JDQotCY0J3QmNCLINCc0JjQm9CQ0J0KK9CT0KDQkdCQ0KLQmNCd0JjQiyDQnNCY0JvQntCoCivQk9Cg0JHQkNCSINCI0J7QnQor0JPQoNCR0JDQktCQ0KYg0J3QldCS0JXQndCa0JAKK9CT0KDQkdCQ0JLQkNCmINCd0JjQmtCe0JvQkAor0JPQoNCR0JjQiyDQltCY0JLQkNCdCivQk9Cg0JHQmNCLINCW0JjQktCa0J4KK9CT0KDQkdCY0Isg0ILQntCg0ILQlSDQnNCgCivQk9Cg0JHQmNCLINCC0KPQoNCQ0IIKK9CT0KDQkdCY0Isg0ILQo9Cg0J4KK9CT0KDQkdCY0Isg0JDQndCC0JXQm9CY0IjQkAor0JPQoNCR0JjQiyDQkNCd0JrQkAor0JPQoNCR0JjQiyDQkNCd0JrQmNCm0JAKK9CT0KDQkdCY0Isg0JHQntCo0JrQngor0JPQoNCR0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQk9Cg0JHQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CT0KDQkdCY0Isg0JHQoNCQ0J3QmtCeCivQk9Cg0JHQmNCLINCP0JXQktCQ0JQKK9CT0KDQkdCY0Isg0JTQkNCg0JjQndCa0JAKK9CT0KDQkdCY0Isg0JTQldCh0JAKK9CT0KDQkdCY0Isg0JTQoNCQ0JPQkNCdCivQk9Cg0JHQmNCLINCU0KDQkNCT0JDQnQor0JPQoNCR0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0KDQkdCY0Isg0JTQoNCQ0JPQngor0JPQoNCR0JjQiyDQlNCg0JXQndCa0JAKK9CT0KDQkdCY0Isg0JTQo9Co0JDQnQor0JPQoNCR0JjQiyDQlNCj0KjQkNCdCivQk9Cg0JHQmNCLINCU0KPQqNCQ0J0KK9CT0KDQkdCY0Isg0JTQo9Co0JDQnQor0JPQoNCR0JjQiyDQlNCj0KjQkNCdCivQk9Cg0JHQmNCLINCU0KPQqNCQ0J0KK9CT0KDQkdCY0Isg0JTQo9Co0JDQnQor0JPQoNCR0JjQiyDQlNCj0KjQmNCm0JAKK9CT0KDQkdCY0Isg0JPQntCI0JrQngor0JPQoNCR0JjQiyDQk9Ce0KDQkNCdCivQk9Cg0JHQmNCLINCI0J7QktCQ0J3QmtCQCivQk9Cg0JHQmNCLINCI0J7QktCQ0J3QmtCQCivQk9Cg0JHQmNCLINCI0J7QktCQ0J0KK9CT0KDQkdCY0Isg0IjQntCS0JDQnQor0JPQoNCR0JjQiyDQiNCe0JLQmNCm0JAKK9CT0KDQkdCY0Isg0IjQntCS0J4KK9CT0KDQkdCY0Isg0JvQkNCX0JDQoAor0JPQoNCR0JjQiyDQidCj0JHQkNCdCivQk9Cg0JHQmNCLINCJ0KPQkdCY0KjQkAor0JPQoNCR0JjQiyDQnNCQ0KDQmNCI0JAKK9CT0KDQkdCY0Isg0JzQmNCb0JDQnQor0JPQoNCR0JjQiyDQnNCY0JvQkNCdCivQk9Cg0JHQmNCLINCc0JjQm9CQ0J0KK9CT0KDQkdCY0Isg0JzQmNCb0JXQndCQCivQk9Cg0JHQmNCLINCc0JjQm9CV0J3QkAor0JPQoNCR0JjQiyDQnNCY0JvQldCd0JrQngor0JPQoNCR0JjQiyDQnNCY0JvQldCd0JrQngor0JPQoNCR0JjQiyDQnNCY0JvQlQor0JPQoNCR0JjQiyDQnNCY0JvQmNCLCivQk9Cg0JHQmNCLINCc0JjQm9CY0KbQkAor0JPQoNCR0JjQiyDQnNCY0JvQmtCQCivQk9Cg0JHQmNCLINCc0JjQm9Ce0KgKK9CT0KDQkdCY0Isg0JzQmNCb0J7QqAor0JPQoNCR0JjQiyDQnNCY0JvQntCg0JDQlAor0JPQoNCR0JjQiyDQnNCY0JvQntCS0JDQnQor0JPQoNCR0JjQiyDQnNCY0JvQntCS0JDQnQor0JPQoNCR0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JPQoNCR0JjQiyDQnNCY0KDQkAor0JPQoNCR0JjQiyDQnNCY0KDQkAor0JPQoNCR0JjQiyDQnNCb0JDQlNCV0J0KK9CT0KDQkdCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0JHQmNCLINCe0KHQotCe0IjQkAor0JPQoNCR0JjQiyDQn9CV0KLQkNCgCivQk9Cg0JHQmNCLINCf0JXQotCQ0KAKK9CT0KDQkdCY0Isg0J/QldCi0JDQoAor0JPQoNCR0JjQiyDQoNCQ0JTQlQor0JPQoNCR0JjQiyDQoNCe0KHQkAor0JPQoNCR0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQk9Cg0JHQmNCLINCh0KLQldCS0JDQnQor0JPQoNCR0JjQiyDQodCi0JXQktCQ0J0KK9CT0KDQkdCY0Isg0KHQotCV0JLQngor0JPQoNCR0JjQiyDQodCS0JXQotCa0J4KK9CT0KDQkdCY0Isg0JLQkNCh0JAg0JTQoAor0JPQoNCR0JjQiyDQktCV0KDQkAor0JPQoNCR0JjQiyDQktCY0JQKK9CT0KDQkdCY0Isg0JLQntCI0JjQnQor0JPQoNCR0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQk9Cg0JHQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9CT0KDQkdCY0J0g0JzQkNCg0JjQiNCQCivQk9Cg0JHQmNCdINCg0JDQlNCe0KHQm9CQ0JIKK9CT0KDQkdCe0JLQkNCmINCc0JjQpdCQ0IkKK9CT0KDQkdCe0JLQmNCLINCQ0JvQmNCbCivQk9Cg0JHQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0KDQkdCe0JLQmNCLINCT0JDQktCg0JjQm9CeCivQk9Cg0JHQntCS0JjQiyDQiNCe0JLQkNCdCivQk9Cg0JHQntCS0JjQiyDQiNCe0JLQkNCdCivQk9Cg0JHQntCS0JjQiyDQnNCY0JvQkNCdCivQk9Cg0JHQntCS0JjQiyDQnNCY0JvQkNCdCivQk9Cg0JHQntCS0JjQiyDQnNCY0KDQp9CV0KLQkAor0JPQoNCR0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CT0KDQkdCe0JLQmNCLINCc0KPQoNCQ0KIKK9CT0KDQkdCe0JLQmNCLINCc0KPQoNCQ0KIKK9CT0KDQkdCe0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQk9Cg0JHQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CT0KDQkdCe0JLQmNCLINCh0JvQkNCS0JrQngor0JPQoNCR0J7QktCY0Isg0KHQnNCY0InQkAor0JPQoNCm0JUg0JDQndCY0KbQkAor0JPQoNCm0JjQiyDQiNCe0JLQkNCdCivQk9Cg0KbQmNCLINCc0JjQm9CY0KbQkAor0JPQoNCm0JjQiyDQndCY0JrQntCb0JAKK9CT0KDQptCY0Isg0JLQldCh0JXQm9CY0J0KK9CT0KDQptCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JPQoNCU0JjQiyDQmNCS0JjQptCQCivQk9Cg0JTQmNCLINCb0KPQiNCa0JAKK9CT0KDQlNCY0Isg0JzQkNCg0JAKK9CT0KDQlNCY0J3QmNCLINCc0JjQoNCa0J4KK9CT0KDQlNCY0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CT0KDQldCnINCg0J7Ql9CQ0JvQmNCI0JAKK9CT0KDQldCn0JXQmyDQmtCQ0KDQm9CeCivQk9Cg0JXQp9Cd0JjQmiDQiNCQ0J3QmtCeCivQk9Cg0JXQp9Cd0JjQmiDQnNCQ0KDQmNCI0JAKK9CT0KDQldCn0J3QmNCaINCf0JDQktCb0JUKK9CT0KDQldCR0JXQm9CU0JjQndCT0JXQoCDQidCj0JHQmNCm0JAKK9CT0KDQldCR0JXQm9CU0JjQndCT0JXQoCDQn9CV0KLQkNCgCivQk9Cg0JXQkdCK0JXQkiDQoNCe0JfQkNCb0JjQiNCQCivQk9Cg0JXQkdCeINCd0JXQlNCV0InQmtCeCivQk9Cg0JXQkdCe0JLQmNCLINCg0JDQndCa0J4KK9CT0KDQldCT0JXQpiDQnNCQ0KDQmNCI0JAKK9CT0KDQldCT0JXQpiDQktCY0JvQmAor0JPQoNCV0JPQldCmINCS0JjQm9CYCivQk9Cg0JXQk9CV0KAg0KXQldCU0JLQmNCT0JAKK9CT0KDQldCT0J7QoCDQiNCe0KHQmNCfCivQk9Cg0JXQk9Ce0KDQmNCLINCR0KDQkNCd0JrQngor0JPQoNCV0JPQntCg0JjQiyDQlNCj0KjQkNCdCivQk9Cg0JXQk9Ce0KDQmNCLINCc0JjQm9CQ0J3QmtCQCivQk9Cg0JXQk9Ce0KDQmNCdINCf0JXQotCQ0KAKK9CT0KDQldCT0J7QoNCe0JLQmNCLINCQ0J3QotCe0J3QmNCI0JUKK9CT0KDQldCT0J7QoNCe0JLQmNCLINCY0JLQkNCdCivQk9Cg0JXQk9Ce0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JPQoNCV0JPQo9CoINCQ0J3QotCQ0JsKK9CT0KDQldCT0KPQqCDQiNCQ0J3QntCoCivQk9Cg0JXQk9Cj0Kgg0JvQkNCh0JvQngor0JPQoNCV0JPQo9CoINCf0JXQotCQ0KAKK9CT0KDQldCT0KPQoNCY0Isg0JjQktCQ0J0KK9CT0KDQldCY0KHQmNCd0JPQldCgINCU0JDQoNCY0J3QkAor0JPQoNCV0JjQl9CV0KAg0J/QldCi0JDQoAor0JPQoNCV0Jog0KHQkNCU0JjQmgor0JPQoNCV0JrQoSDQn9CQ0JLQldCbCivQk9Cg0JXQmtCjINCQ0JTQldCcCivQk9Cg0JXQmtCjINCT0JDQndCYCivQk9Cg0JXQmtCjINCl0JDQodCQ0J0KK9CT0KDQldCa0KMg0JzQo9Cl0JDQnNCV0KAKK9CT0KDQldCa0KMg0J3QldCX0JjQoAor0JPQoNCV0JrQoyDQoNCQ0JzQmNCXCivQk9Cg0JXQmtCjINCh0JDQkdCY0KIKK9CT0KDQldCa0KPQm9Ce0JLQmNCLINCI0J7QktCQ0J0KK9CT0KDQldCa0KPQm9Ce0JLQmNCLINCh0KLQkNCd0KfQlQor0JPQoNCT0JDQndCe0JLQmNCLINCC0KPQoNCQCivQk9Cg0JPQkNCgINCC0KPQoNCY0KbQkAor0JPQoNCT0JDQoCDQkdCg0JDQndCa0JAKK9CT0KDQk9CQ0KAg0JvQkNCX0JDQoAor0JPQoNCT0JDQoCDQotCe0KjQkAor0JPQoNCT0JjQp9CV0JLQmNCLINCI0KPQm9CY0KjQmtCQCivQk9Cg0JPQmNCLINCR0J7QqNCa0J4KK9CT0KDQk9CY0Isg0JHQntCI0JDQndCQCivQk9Cg0JPQmNCLINCU0KDQkNCT0J7QiNCVCivQk9Cg0JPQmNCLINCc0JjQiNCeCivQk9Cg0JPQmNCLINCc0JjQm9CQ0J0KK9CT0KDQk9CY0Isg0KHQkNCS0JXQotCQCivQk9Cg0JPQmNCLINCh0JjQnNCeCivQk9Cg0JPQmNCLINCS0JXQoNCQCivQk9Cg0JPQmNCLINCS0JXQoNCY0KbQkAor0JPQoNCT0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQk9Cg0JPQmNCd0KfQldCS0JjQiyDQnNCY0KXQkNCV0JvQkCDQn9Cg0J7QpNCV0KHQntCgCivQk9Cg0JPQmNCd0KfQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQk9Cg0JPQo9CgINCU0KPQqNCQ0J0KK9CT0KDQk9Cj0KAg0KDQkNCU0J7QodCb0JDQkgor0JPQoNCT0KPQoCDQktCb0JDQlNCQCivQk9Cg0JPQo9Cg0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JPQoNCT0KPQoNCV0JLQmNCLINCg0JDQiNCa0J4KK9CT0KDQk9Cj0KDQmNCLINCQ0J3QotCj0J0KK9CT0KDQk9Cj0KDQmNCLINCI0J7QodCY0J8KK9CT0KDQk9Cj0KDQmNCLINCg0KPQltCY0KbQkAor0JPQoNCT0KPQoNCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JPQoNCT0KPQoNCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Cg0JjQpNCQ0KLQntCd0JMg0JrQkNCg0JvQngor0JPQoNCY0KTQkNCi0J7QndCTINCe0KLQngor0JPQoNCY0JPQntCg0JjQiNCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0KDQmNCT0J7QoNCY0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9CT0KDQmNCT0J7QoNCY0IjQldCS0JjQiyDQn9CV0KLQkNCgCivQk9Cg0JjQiNCQ0Jog0JTQkNCd0JjQptCQCivQk9Cg0JjQiNCQ0Jog0JrQntCh0J7QktCa0JAKK9CT0KDQmNCI0JDQmiDQnNCY0JvQkNCdCivQk9Cg0JjQiNCQ0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CT0KDQmNCI0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9CT0KDQmNCb0JXQpiDQodCi0JDQndCa0J4KK9CT0KDQmNCb0JXQpiDQodCi0JDQndCa0J4KK9CT0KDQmNCd0KXQo9CiINCb0JDQlNCY0KHQm9CQ0JIKK9CT0KDQmNCh0JAg0J/QldCi0JDQoAor0JPQoNCY0KHQpdCQ0JHQldCgINCk0KDQkNCK0JAKK9CT0KDQmNCX0JXQiSDQmtCQ0KDQm9CeCivQk9Cg0JjQl9CV0KAg0J/QldCi0JDQoAor0JPQoNCY0JfQldCgINCh0KLQldCS0JDQnQor0JPQoNCa0JDQktCQ0KYg0JzQmNCb0JDQnQor0JPQoNCa0JDQktCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0JPQoNCa0JjQndCY0Isg0JrQntCh0JDQoNCQCivQk9Cg0JrQmNCd0JjQiyDQnNCY0JvQkNCdCivQk9Cg0JrQntCS0JjQiyDQltCY0JLQkNCdCivQk9Cg0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQk9Cg0JrQntCS0JjQiyDQgtCj0KDQngor0JPQoNCa0J7QktCY0Isg0JDQndCa0JAKK9CT0KDQmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQk9Cg0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JPQoNCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JPQoNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQk9Cg0JrQntCS0JjQiyDQlNCQ0J3QlQor0JPQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JPQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JPQoNCa0J7QktCY0Isg0JPQkNCS0KDQmNCb0J4KK9CT0KDQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JPQoNCa0J7QktCY0Isg0IjQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CT0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CT0KDQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JPQoNCa0J7QktCY0Isg0JzQmNCb0JjQptCQINCU0KAKK9CT0KDQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQk9Cg0JrQntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQk9Cg0JrQntCS0JjQiyDQktCV0KDQkAor0JPQoNCa0J7QktCY0Isg0JLQntCI0JjQnNCY0KAKK9CT0KDQmtCe0JLQmNCLINCS0J7QiNCY0J0KK9CT0KDQmtCe0JLQodCa0Jgg0J/QkNCd0KLQkAor0JPQoNCb0JjQiyDQgtCe0KDQgtCVCivQk9Cg0JvQmNCLINCJ0KPQkdCY0J3QmtCeCivQk9Cg0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQk9Cg0JvQmNCm0JAg0JbQldCJ0JrQngor0JPQoNCb0JjQptCQINCR0J7QodCY0InQmtCQCivQk9Cg0JvQmNCm0JAg0JzQmNCb0JXQktCQCivQk9Cg0JvQmNCm0JAg0JzQmNCb0J7QktCQ0J0KK9CT0KDQm9CY0KbQkCDQodCi0JDQndCa0J4KK9CT0KDQm9CY0KbQkCDQktCe0IjQmNCdCivQk9Cg0InQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JPQoNCc0JDQqCDQgtCj0KDQngor0JPQoNCc0JDQqCDQkdCg0JDQndCa0J4KK9CT0KDQnNCe0Kgg0J/QoNCV0JTQoNCQ0JMKK9CT0KDQnNCj0KjQkCDQltCY0JLQmtCeCivQk9Cg0JzQo9Co0JAg0ILQo9Cg0J4KK9CT0KDQnNCj0KjQkCDQnNCY0JvQkNCdCivQk9Cg0JzQo9Co0JAg0JzQmNCb0JDQnQor0JPQoNCc0KPQqNCQINCg0JDQlNCVCivQk9Cg0JzQo9Co0JAg0KHQm9CQ0JLQmtCeCivQk9Cg0JzQo9Co0JAg0KHQnNCY0InQmtCQCivQk9Cg0JzQo9Co0JAg0KHQotCe0IjQkNCdCivQk9Cg0JzQo9Co0JAg0JLQldCb0JrQngor0JPQoNCK0JAg0ILQo9Cg0JAKK9CT0KDQitCQINCQ0J3QlNCg0JjQiNCQCivQk9Cg0IrQkCDQkNCd0JrQkAor0JPQoNCK0JAt0JDQodCQ0J3QmCDQidCj0JzQndCY0IjQkAor0JPQoNCK0JAg0JTQo9Co0JDQnQor0JPQoNCK0JAg0IjQkNCd0JrQngor0JPQoNCK0JAg0IjQkNCdCivQk9Cg0IrQkCDQiNCe0JLQkNCdCivQk9Cg0IrQkCDQiNCe0JLQkNCdCivQk9Cg0IrQkCDQiNCe0JLQkNCdCivQk9Cg0IrQkCDQiNCe0JLQkNCdCivQk9Cg0IrQkCDQiNCj0KDQkNCICivQk9Cg0IrQkCDQm9CQ0KHQm9CeCivQk9Cg0IrQkCDQidCj0JTQldCS0JjQogor0JPQoNCK0JAg0JzQkNCg0JjQiNCQCivQk9Cg0IrQkCDQntCh0JrQkNCgCivQk9Cg0IrQkCDQodCe0KTQmNCI0JAKK9CT0KDQitCQINCh0KLQldCS0JDQnQor0JPQoNCK0JAg0KHQotCV0JLQkNCdCivQk9Cg0IrQkCDQodCi0JXQktCQ0J0KK9CT0KDQitCQINCS0JvQkNCU0JjQnNCY0KAKK9CT0KDQntCo0JXQmiDQl9CS0J7QndCY0JzQmNCgCivQk9Cg0J7QqNCa0J4g0JzQkNCg0JjQiNCQCivQk9Cg0J7QnCDQptCY0KDQmNCbCivQk9Cg0J7QnNCY0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Cg0J7QoSDQgtCe0KDQgtCVCivQk9Cg0J7QoSDQmNCS0JDQnQor0JPQoNCe0KEg0JvQkNCU0JjQodCb0JDQkgor0JPQoNCe0JfQlNCQ0J3QmNCLINCC0J7QoNCC0JUKK9CT0KDQntCX0JTQkNCd0JjQiyDQldCd0JjQndCa0JAKK9CT0KDQntCX0JTQkNCd0JjQiyDQiNCe0KHQmNCfCivQk9Cg0J7Ql9CU0JDQndCY0Isg0JzQmNCb0JDQnQor0JPQoNCe0JfQlNCQ0J3QmNCLINCc0JjQm9CQ0J0KK9CT0KDQntCX0JTQkNCd0J7QkiDQodCb0JDQktCa0J4KK9CT0KDQntCX0JTQkNCd0J7QktCh0JrQmCDQlNCQ0JzQiNCQ0J0KK9CT0KDQntCX0JTQkNCd0J7QktCh0JrQmCDQnNCY0JvQlQor0JPQoNCe0JfQlNCQ0J3QntCS0KHQmtCYINCf0JXQotCQ0KAKK9CT0KDQntCX0JTQmNCLINCR0J7QqNCa0J4KK9CT0KDQntCX0JTQmNCLINCR0J7Qk9CU0JDQnQor0JPQoNCe0JfQlNCY0Isg0JTQldCh0JDQndCa0JAKK9CT0KDQntCX0JTQmNCLINCU0J7QkdCg0JjQktCe0IgKK9CT0KDQntCX0JTQmNCLINCU0KPQqNCQ0J0KK9CT0KDQntCX0JTQmNCLINCI0JDQodCc0JjQndCQCivQk9Cg0J7Ql9CU0JjQiyDQiNCe0JLQkNCdCivQk9Cg0J7Ql9CU0JjQiyDQiNCe0JLQkNCdCivQk9Cg0J7Ql9CU0JjQiyDQiNCe0JLQkNCdCivQk9Cg0J7Ql9CU0JjQiyDQmtCj0JfQnNCQ0J0KK9CT0KDQntCX0JTQmNCLINCb0JDQl9CQ0KAKK9CT0KDQntCX0JTQmNCLINCJ0KPQkdCY0KjQkAor0JPQoNCe0JfQlNCY0Isg0InQo9CR0J7QnNCY0KAKK9CT0KDQntCX0JTQmNCLINCc0JjQm9CQ0J0KK9CT0KDQntCX0JTQmNCLINCf0JXQotCQ0KAKK9CT0KDQntCX0JTQmNCLINCh0KLQldCS0JDQnQor0JPQoNCe0JfQlNCY0Isg0JLQldCh0J3QkAor0JPQoNCe0JfQlNCY0Isg0JfQlNCg0JDQktCa0J4KK9CT0KDQntCX0JTQmNCLINCX0J7QoNCQ0J0KK9CT0KDQntCX0JTQmNCLINCX0J7QoNCY0KbQkAor0JPQoNCe0JfQk9Cj0KIg0KLQmNCR0J7QoAor0JPQoNCj0JHQkCDQlNCe0KDQowor0JPQoNCj0JHQkCDQotCY0JHQldCg0JjQiNCVCivQk9Cg0KPQkdCQ0Kcg0JPQntCg0JTQkNCd0JAKK9CT0KDQo9CR0JDQpyDQnNCQ0JrQodCQCivQk9Cg0KPQkdCQ0Kcg0JzQntCc0KfQmNCb0J4KK9CT0KDQo9CR0JDQpyDQodCi0JDQndCa0JAKK9CT0KDQo9CR0JDQpyDQotCQ0J3QkNCh0JjQiNCVCivQk9Cg0KPQkdCQ0KfQmNCLINCT0J7QiNCa0J4KK9CT0KDQo9CR0JDQndCe0JIg0JTQntCR0KDQmNCS0J7QiAor0JPQoNCj0JHQkNCd0J7QkiDQlNCj0KjQkNCd0JrQkAor0JPQoNCj0JHQkNCd0J7QkiDQndCe0JLQkNCaCivQk9Cg0KPQkdCQ0J3QntCSINCX0JDQpdCQ0KDQmNCI0JUKK9CT0KDQo9CR0JXQqNCQINCd0JjQmtCe0JvQkAor0JPQoNCj0JHQldCo0JjQiyDQlNCg0JDQk9CQ0J0KK9CT0KDQo9CR0JXQqNCY0Isg0JTQo9Co0JDQnQor0JPQoNCj0JHQldCo0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQk9Cg0KPQkdCV0KAg0JXQlNCj0JDQoNCUCivQk9Cg0KPQkdCV0KAg0JXQnNCY0JsKK9CT0KDQo9CR0JXQoCDQldCS0JDQm9CUCivQk9Cg0KPQkdCV0KAg0KTQoNCQ0IrQkAor0JPQoNCj0JHQldCgINCg0KPQlNCe0JvQpAor0JPQoNCj0JHQldCi0JjQiyDQntCb0JPQkAor0JPQoNCj0JHQmNCo0JAg0JDQndCC0JXQm9CeCivQk9Cg0KPQkdCY0KjQmNCLINCc0JjQoNCI0JDQndCQCivQk9Cg0KPQkdCY0KjQmNCLINCc0JjQoNCa0J4KK9CT0KDQo9CR0JjQqNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQkdCY0Isg0JbQkNCg0JrQngor0JPQoNCj0JHQmNCLINCW0JDQoNCa0J4KK9CT0KDQo9CR0JjQiyDQkNCd0JrQkAor0JPQoNCj0JHQmNCLINCc0JjQm9CQ0J0KK9CT0KDQo9CR0JjQiyDQndCY0JrQntCb0JAKK9CT0KDQo9CR0JjQnSDQnNCY0JvQkNCdCivQk9Cg0KPQkdCY0J0g0JzQmNCg0J7QodCb0JDQkgor0JPQoNCj0JHQiNCV0KjQmNCLINCR0KDQkNCd0JrQngor0JPQoNCj0JHQiNCV0KjQmNCLINCc0JjQm9CV0J3QmtCeCivQk9Cg0KPQkdCI0JXQqNCY0Isg0JzQmNCg0JrQngor0JPQoNCj0JHQiNCV0KjQmNCLINCh0KLQldCS0J4KK9CT0KDQo9CR0J7QoCDQkNCU0JDQnAor0JPQoNCj0JHQntCgINCR0KDQkNCd0JrQngor0JPQoNCj0JHQntCgINCV0JzQkAor0JPQoNCj0JHQntCgINCI0JXQpNCi0J4KK9CT0KDQo9CR0J7QoC3QiNCe0IjQmNCLINCh0JvQkNCS0JjQptCQCivQk9Cg0KPQkdCe0KAg0IjQntCS0J4KK9CT0KDQo9CR0J7QoCDQm9CQ0JfQkNCgCivQk9Cg0KPQkdCe0KAg0JvQkNCX0J4KK9CT0KDQo9CR0J7QoCDQidCj0JHQntCc0JjQoAor0JPQoNCj0JHQntCgINCc0JjQidCQ0J3QkAor0JPQoNCj0JHQntCgINCc0JjQm9Ce0KgKK9CT0KDQo9CR0J7QoCDQndCV0ILQngor0JPQoNCj0JHQntCgINCd0JXQlNCV0InQmtCeCivQk9Cg0KPQkdCe0KAg0J3QldCS0JXQndCQCivQk9Cg0KPQkdCe0KAg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQkdCe0KAg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQkdCe0KAg0J7Qm9CT0JAKK9CT0KDQo9CR0J7QoCDQoNCQ0JTQlQor0JPQoNCj0JHQntCgINCh0JvQntCR0J7QlNCQ0J0KK9CT0KDQo9CR0J7QoCDQodCg0JXQotCeCivQk9Cg0KPQkdCe0KAg0JLQo9CI0J4KK9CT0KDQo9CR0J7QoCDQl9CU0KDQkNCS0JrQngor0JPQoNCj0JHQntCg0J7QktCY0Isg0JzQmNCb0JUKK9CT0KDQo9CR0J7QktCY0Isg0JjQm9CY0IjQkAor0JPQoNCj0JXQodCa0KMt0IvQmNCg0JjQqNCQ0J0g0JTQldCb0JjQiNCQCivQk9Cg0KPQmNCn0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQk9Cg0KPQmNCaINCS0JXQoNCe0J3QmNCa0JAKK9CT0KDQo9CI0KfQmNCLINCd0JjQmtCe0JvQkAor0JPQoNCj0IjQkNCd0JDQpiDQnNCY0JvQkNCdCivQk9Cg0KPQiNCV0JIg0J7Qk9CK0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CT0KDQo9CI0JjQpyDQodCb0J7QkdCe0JTQkNCdCivQk9Cg0KPQiNCY0KfQmNCLINCR0JjQidCQ0J3QkAor0JPQoNCj0IjQmNCn0JjQiyDQiNCe0JLQkAor0JPQoNCj0IjQmNCn0JjQiyDQnNCQ0KDQmNCd0JrQngor0JPQoNCj0IjQmNCn0JjQiyDQnNCY0JAKK9CT0KDQo9CI0JjQp9CY0Isg0JzQmNCb0JjQptCQCivQk9Cg0KPQiNCY0KfQmNCLINCc0JjQm9Ce0IjQlQor0JPQoNCj0IjQmNCn0JjQiyDQndCV0J3QkNCUCivQk9Cg0KPQiNCY0KfQmNCLINCf0JXQotCQ0KAKK9CT0KDQo9CI0JjQp9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9CT0KDQo9CI0JjQp9CY0Isg0KDQkNCU0J7QnNCY0KAKK9CT0KDQo9CI0JjQp9CY0J0g0KHQotCQ0J3QntCI0JUKK9CT0KDQo9CI0JjQp9Ca0J7QkiDQiNCe0JLQkNCdCivQk9Cg0KPQiNCY0KfQmtCe0JIg0JzQmNCb0JrQkAor0JPQoNCj0IjQmNCLINCW0JjQktCa0JAKK9CT0KDQo9CI0JjQiyDQltCY0JLQntCg0JDQlAor0JPQoNCj0IjQmNCLINCC0JXQndCQCivQk9Cg0KPQiNCY0Isg0ILQldCd0JjQodCY0IjQlQor0JPQoNCj0IjQmNCLINCC0J7QoNCC0JUKK9CT0KDQo9CI0JjQiyDQgtCj0KDQgtCY0KbQkAor0JPQoNCj0IjQmNCLINCC0KPQoNCQCivQk9Cg0KPQiNCY0Isg0ILQo9Cg0JAKK9CT0KDQo9CI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQoNCj0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9Cg0KPQiNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CT0KDQo9CI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQoNCj0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9Cg0KPQiNCY0Isg0JDQndCC0JXQm9Ca0J4KK9CT0KDQo9CI0JjQiyDQkNCd0JTQoNCY0IjQkAor0JPQoNCj0IjQmNCLINCQ0J3QmNCm0JAKK9CT0KDQo9CI0JjQiyDQkdCe0JbQmNCU0JDQoAor0JPQoNCj0IjQmNCLINCR0J7QltCY0JTQkNCgCivQk9Cg0KPQiNCY0Isg0JHQntCg0JjQodCb0JDQkgor0JPQoNCj0IjQmNCLINCR0J7QoNCY0JLQntCICivQk9Cg0KPQiNCY0Isg0JHQntCh0JjQidCa0JAKK9CT0KDQo9CI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0KDQo9CI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0KDQo9CI0JjQiyDQkdCg0JDQndCa0J4KK9CT0KDQo9CI0JjQiyDQptCS0JjQiNCV0KLQmNCdCivQk9Cg0KPQiNCY0Isg0KbQktCY0IjQngor0JPQoNCj0IjQmNCLINCU0JDQndCY0KbQkAor0JPQoNCj0IjQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JPQoNCj0IjQmNCLINCU0KDQkNCT0JjQptCQCivQk9Cg0KPQiNCY0Isg0JTQo9Co0JDQnQor0JPQoNCj0IjQmNCLINCU0KPQqNCQ0J0KK9CT0KDQo9CI0JjQiyDQlNCj0KjQkNCdCivQk9Cg0KPQiNCY0Isg0KTQoNCQ0J3QptCY0KjQmtCQCivQk9Cg0KPQiNCY0Isg0JPQkNCS0KDQkAor0JPQoNCj0IjQmNCLINCT0JDQktCg0JjQm9CeCivQk9Cg0KPQiNCY0Isg0JPQntCg0JDQnQor0JPQoNCj0IjQmNCLINCT0J7QoNCY0KbQkAor0JPQoNCj0IjQmNCLINCT0KDQo9CI0JAKK9CT0KDQo9CI0JjQiyDQmNCb0JjQndCa0JAKK9CT0KDQo9CI0JjQiyDQmNCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CT0KDQo9CI0JjQiyDQmNCS0JDQndCa0JAKK9CT0KDQo9CI0JjQiyDQiNCQ0IrQkAor0JPQoNCj0IjQmNCLINCI0JXQm9CY0KbQkAor0JPQoNCj0IjQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQk9Cg0KPQiNCY0Isg0IjQldCb0JrQkCDQlNCgCivQk9Cg0KPQiNCY0Isg0IjQntCS0JDQndCa0JAKK9CT0KDQo9CI0JjQiyDQiNCe0JLQkNCd0JrQkAor0JPQoNCj0IjQmNCLINCI0J7QktCQ0J0KK9CT0KDQo9CI0JjQiyDQiNCe0JLQkNCdCivQk9Cg0KPQiNCY0Isg0IjQntCS0JDQnQor0JPQoNCj0IjQmNCLINCI0J7QktCQ0J0KK9CT0KDQo9CI0JjQiyDQiNCe0JLQmNCm0JAKK9CT0KDQo9CI0JjQiyDQiNCj0JvQmtCQCivQk9Cg0KPQiNCY0Isg0JrQntCh0KLQkCDQlNCgCivQk9Cg0KPQiNCY0Isg0JrQntCh0KLQkCDQlNCgCivQk9Cg0KPQiNCY0Isg0JvQkNCX0JDQoAor0JPQoNCj0IjQmNCLINCb0JXQndCa0JAKK9CT0KDQo9CI0JjQiyDQidCY0InQkNCd0JAKK9CT0KDQo9CI0JjQiyDQidCj0JHQmNCm0JAKK9CT0KDQo9CI0JjQiyDQidCj0JHQntCc0JjQoAor0JPQoNCj0IjQmNCLINCJ0KPQkdCeCivQk9Cg0KPQiNCY0Isg0JzQkNCg0JjQiNCQCivQk9Cg0KPQiNCY0Isg0JzQkNCg0JjQiNCQCivQk9Cg0KPQiNCY0Isg0JzQkNCg0JjQiNCQCivQk9Cg0KPQiNCY0Isg0JzQkNCg0JjQiNCQCivQk9Cg0KPQiNCY0Isg0JzQkNCg0JjQndCQCivQk9Cg0KPQiNCY0Isg0JzQmNCl0JDQiNCb0J4KK9CT0KDQo9CI0JjQiyDQnNCY0JvQkNCdCivQk9Cg0KPQiNCY0Isg0JzQmNCb0JDQnQor0JPQoNCj0IjQmNCLINCc0JjQm9CQ0J0KK9CT0KDQo9CI0JjQiyDQnNCY0JvQldCd0JAKK9CT0KDQo9CI0JjQiyDQnNCY0JvQldCd0JrQngor0JPQoNCj0IjQmNCLINCc0JjQm9CVCivQk9Cg0KPQiNCY0Isg0JzQmNCb0JjQptCQCivQk9Cg0KPQiNCY0Isg0JzQmNCb0J7QqAor0JPQoNCj0IjQmNCLINCc0JjQm9Ce0KgKK9CT0KDQo9CI0JjQiyDQnNCY0JvQntCg0JDQlAor0JPQoNCj0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQk9Cg0KPQiNCY0Isg0JzQmNCg0IjQkNCd0JAKK9CT0KDQo9CI0JjQiyDQnNCY0KDQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JPQoNCj0IjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CT0KDQo9CI0JjQiyDQnNCY0KLQkNCgCivQk9Cg0KPQiNCY0Isg0J3QkNCU0JAg0JTQoCDQm9CV0JrQkNCgCivQk9Cg0KPQiNCY0Isg0J3QkNCU0JAKK9CT0KDQo9CI0JjQiyDQndCQ0JTQkAor0JPQoNCj0IjQmNCLINCd0JXQlNCV0InQmtCeCivQk9Cg0KPQiNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQiNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQiNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQiNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQiNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQiNCY0Isg0J3QmNCa0J7Qm9CQCivQk9Cg0KPQiNCY0Isg0J3QntCS0JDQmgor0JPQoNCj0IjQmNCLINCf0JDQktCb0JUKK9CT0KDQo9CI0JjQiyDQn9CV0KLQkNCgCivQk9Cg0KPQiNCY0Isg0KDQkNCU0JXQndCa0J4KK9CT0KDQo9CI0JjQiyDQoNCQ0JTQlQor0JPQoNCj0IjQmNCLINCg0JDQlNCY0KjQkAor0JPQoNCj0IjQmNCLINCg0JDQlNCY0J3QmtCQCivQk9Cg0KPQiNCY0Isg0KDQkNCU0JjQktCe0IgKK9CT0KDQo9CI0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JPQoNCj0IjQmNCLINCg0JDQlNCc0JjQm9CQCivQk9Cg0KPQiNCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0JPQoNCj0IjQmNCLINCg0JDQlNCe0JLQkNCdCivQk9Cg0KPQiNCY0Isg0KDQo9CW0JjQptCQCivQk9Cg0KPQiNCY0Isg0KHQkNCK0JAKK9CT0KDQo9CI0JjQiyDQodCQ0JLQkAor0JPQoNCj0IjQmNCLINCh0JDQktCQCivQk9Cg0KPQiNCY0Isg0KHQmNCd0JjQqNCQCivQk9Cg0KPQiNCY0Isg0KHQm9CQ0JLQmNCo0JAKK9CT0KDQo9CI0JjQiyDQodCb0JDQktCY0KbQkAor0JPQoNCj0IjQmNCLINCh0JvQkNCS0JrQkAor0JPQoNCj0IjQmNCLINCh0JvQkNCS0JrQngor0JPQoNCj0IjQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQk9Cg0KPQiNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JPQoNCj0IjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CT0KDQo9CI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQk9Cg0KPQiNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JPQoNCj0IjQmNCLINCh0JzQmNCJ0JDQndCQCivQk9Cg0KPQiNCY0Isg0KHQnNCY0InQkAor0JPQoNCj0IjQmNCLINCh0JzQmNCJ0JAKK9CT0KDQo9CI0JjQiyDQodCg0ILQkNCdCivQk9Cg0KPQiNCY0Isg0KHQotCV0JLQkNCdCivQk9Cg0KPQiNCY0Isg0KHQotCV0JLQkNCdCivQk9Cg0KPQiNCY0Isg0KHQotCV0JLQkNCdCivQk9Cg0KPQiNCY0Isg0KHQotCV0JLQkNCdCivQk9Cg0KPQiNCY0Isg0KHQotCe0IjQkNCdINCU0KAKK9CT0KDQo9CI0JjQiyDQodCS0JXQotCe0JfQkNCgCivQk9Cg0KPQiNCY0Isg0KHQktCV0KLQntCX0JDQoAor0JPQoNCj0IjQmNCLINCi0JDQotCI0JDQndCQCivQk9Cg0KPQiNCY0Isg0JLQldCb0JjQnNCY0KAKK9CT0KDQo9CI0JjQiyDQktCV0KDQmNCm0JAKK9CT0KDQo9CI0JjQiyDQktCV0KHQldCb0JjQnQor0JPQoNCj0IjQmNCLINCS0JXQodCd0JAKK9CT0KDQo9CI0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQk9Cg0KPQiNCY0Isg0JfQlNCg0JDQktCa0J4KK9CT0KDQo9CI0JjQiyDQl9Cb0JDQotCY0KbQkAor0JPQoNCj0IjQmNCLINCX0JvQkNCi0JjQptCQCivQk9Cg0KPQiNCY0J0g0JTQkNCd0JjQptCQCivQk9Cg0KPQiNCY0J0g0JTQo9Co0JDQnQor0JPQoNCj0IjQmNCdINCJ0KPQkdCY0KbQkAor0JPQoNCj0IjQmNCdINCc0JjQm9CQ0J0KK9CT0KDQo9CI0JjQnSDQnNCY0JvQntCoCivQk9Cg0KPQiNCY0J0g0J3QkNCU0JAKK9CT0KDQo9CI0JjQnSDQntCb0JPQkAor0JPQoNCj0IjQmNCdINCf0JXQotCQ0KAKK9CT0KDQo9CI0JjQnSDQoNCQ0JTQntCh0JvQkNCSCivQk9Cg0KPQiNCY0J0g0KHQkNCo0JAKK9CT0KDQo9CI0JjQnSDQodCc0JjQidCQCivQk9Cg0KPQiNCY0J0g0KHQn9CQ0KHQntCI0JUKK9CT0KDQo9CI0JjQnSDQotCV0KDQldCX0JAKK9CT0KDQo9CI0JjQnSDQl9Ce0KDQkNCdCivQk9Cg0KPQiNCY0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQk9Cg0KPQiNCY0J3QntCS0JjQiyDQl9Ce0KDQmtCQCivQk9Cg0KPQiNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JPQoNCj0IjQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JPQoNCj0IjQntCS0KHQmtCYINCb0JDQl9CQ0KAKK9CT0KDQo9Cb0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9CT0KDQo9Cb0J7QktCY0Isg0JfQlNCV0J3QmtCeCivQk9Cg0KPQm9Ce0JLQmNCLINCX0JTQoNCQ0JLQmtCQCivQk9Cg0KPQm9Ce0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQk9Cg0KPQndCn0JjQiyDQiNCe0JLQkNCdCivQk9Cg0KPQndCY0Jog0JLQm9CQ0JTQmNCc0JjQoCDQlNCgCivQk9Cj0KjQkCDQndCY0JrQntCb0JAKK9CT0KPQqNCQINCf0KDQldCU0KDQkNCTCivQk9Cj0KjQkNCS0JDQpiDQl9Ce0KDQkNCdCivQk9Cj0KjQmNCLINCR0J7Qk9CU0JDQnQor0JPQo9Co0JjQiyDQkdCe0KDQmNChCivQk9Cj0KjQmNCLINCc0JDQndCe0IjQm9CeCivQk9Cj0KjQmNCLINCc0JDQndCe0IjQm9CeCivQk9Cj0KjQmNCLINCc0JjQm9CV0J3QmtCQCivQk9Cj0KjQmNCLINCg0JDQlNCV0J3QmtCeCivQk9Cj0KjQmNCLINCg0JDQlNCV0J3QmtCeCivQk9Cj0KjQmNCLINCj0JPQidCV0KjQkAor0JPQo9Co0JjQiyDQktCQ0KHQmNCJ0JrQkAor0JPQo9CW0JDQm9CY0Isg0JzQkNCg0JjQiNCQCivQk9Cj0JbQkNCb0JjQiyDQodCi0IjQldCf0JDQnQor0JPQo9CW0JDQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JPQo9CW0JDQm9CY0Isg0JfQktCe0J3QmNCc0JjQoAor0JPQo9CW0JXQm9CQINCb0JDQodCb0J4KK9CT0KPQltCS0JDQiiDQmNCS0JjQptCQCivQk9Cj0JbQktCY0KbQkCDQgtCe0KDQgtCVCivQk9Cj0JbQktCY0KbQkCDQgtCe0KDQgtCVCivQk9Cj0JbQktCY0KbQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CT0KPQltCS0JjQptCQINCc0JjQm9CQ0J0KK9CT0KPQltCS0JjQptCQINCc0JjQm9CQ0J0KK9CT0KPQltCS0JjQptCQINCc0JjQoNCa0J4KK9CT0KPQltCS0JjQptCQINCd0JjQmtCe0JvQkAor0JPQo9CW0JLQmNCm0JAg0KHQotCV0JLQngor0JPQo9CW0JLQmNCm0JAg0JfQntCg0JDQnQor0JPQo9CR0JDQqCDQkNCd0ILQldCb0JjQiNCQCivQk9Cj0JHQkNCoINCc0JjQoNCe0KHQm9CQ0JIKK9CT0KPQkdCQ0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0JPQo9CR0JDQqCDQl9CQ0JPQntCg0JrQkAor0JPQo9CR0JDQndCU0JAg0JHQkNCg0JHQkNCg0JAKK9CT0KPQkdCQ0J3QlNCQINCb0JDQlNCY0KHQm9CQ0JIKK9CT0KPQkdCV0KDQmNCd0JAg0JTQo9Co0JDQnQor0JPQo9CR0JXQoNCY0J3QkCDQodCb0J7QkdCe0JTQkNCdCivQk9Cj0JHQldCg0JjQndCY0Isg0InQo9CR0JjQptCQCivQk9Cj0JHQldCg0J3QntCSINCI0KPQm9CY0IjQkNCd0JAKK9CT0KPQkdCY0Isg0JzQmNCg0JrQngor0JPQo9CR0JjQptCQINCI0J7QktCQ0J0KK9CT0KPQkdCY0Jog0KjQkNCd0JTQntCgCivQk9Cj0JHQmNCaINCo0JDQndCU0J7QoAor0JPQo9CR0JjQmiDQmtCQ0KDQm9CeCivQk9Cj0JHQmNCaINCa0JDQotCQ0KDQmNCd0JAKK9CT0KPQkdCY0Jog0KHQotCV0JLQkNCdCivQk9Cj0KYg0KHQotCV0JLQkNCdCivQk9Cj0KbQmNCI0JDQnSDQodCi0JXQktCQCivQk9Cj0KbQoyDQnNCY0KDQiNCQ0J3QkAor0JPQo9Cm0KPQiSDQiNCV0JvQldCd0JAKK9CT0KPQptCj0Ikg0JzQkNCg0JPQmNCi0JAKK9CT0KPQptCj0Ikg0JLQldCg0JAKK9CT0KPQptCj0IrQkCDQiNCe0JLQkNCdCivQk9Cj0KbQo9CK0JAg0JzQmNCb0JDQnQor0JPQo9Cm0KPQitCQINCc0JjQm9Ce0KDQkNCUCivQk9Cj0KbQo9CK0JAg0JzQmNCb0J7QoNCQ0JQKK9CT0KPQptCj0J3QodCa0Jgg0JbQmNCS0JrQkAor0JPQo9Cm0KPQndCh0JrQmCDQgtCe0KDQgtCVCivQk9Cj0KbQo9Cd0KHQmtCYINCR0J7QltCY0JTQkNCgCivQk9Cj0KbQo9Cd0KHQmtCYINCR0J7QoNCY0KHQm9CQ0JIKK9CT0KPQptCj0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQk9Cj0KbQo9Cd0KHQmtCYINCY0JLQkNCd0JrQkAor0JPQo9Cm0KPQndCh0JrQmCDQmNCS0JDQndCa0JAKK9CT0KPQptCj0J3QodCa0Jgg0IjQldCb0JXQndCQCivQk9Cj0KbQo9Cd0KHQmtCYINCI0J7QktCQ0J0KK9CT0KPQptCj0J3QodCa0Jgg0JzQkNCg0JjQiNCQCivQk9Cj0KbQo9Cd0KHQmtCYINCd0JDQlNCQCivQk9Cj0KbQo9Cd0KHQmtCYINCf0JXQoNCh0JjQlNCQCivQk9Cj0KbQo9Cd0KHQmtCYINCg0JDQlNCVCivQk9Cj0KbQo9Cd0KHQmtCYINCh0JjQnNCQCivQk9Cj0JTQkNCJINCc0JDQoNCi0JAKK9CT0KPQlNCQ0JvQntCS0JjQiyDQnNCe0JzQmNCgCivQk9Cj0JTQkNCb0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CT0KPQlNCV0Ikg0ILQntCg0ILQlQor0JPQo9CU0JXQiSDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQk9Cj0JTQldCJINCI0J7QktCQ0J0KK9CT0KPQlNCV0Ikg0JzQkNCg0JjQiNCQCivQk9Cj0JTQldCJINCc0JjQm9CQ0J0KK9CT0KPQlNCV0Ikg0JzQmNCb0JXQndCQCivQk9Cj0JTQldCJINCc0J7QnNCn0JjQm9CeCivQk9Cj0JTQldCJINCd0JXQlNCV0InQmtCQCivQk9Cj0JTQldCJINCh0JDQktCQINCU0KAKK9CT0KPQlNCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CT0KPQlNCe0JLQmNCLINCf0JDQktCb0JUKK9CT0KPQlNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQk9Cj0JTQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CT0KPQlNCj0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQk9Cj0JTQo9Cg0JjQiyDQkNCd0ILQldCb0JrQkCDQlNCgCivQk9Cj0JTQo9Cg0JjQiyDQkdCg0JDQndCY0JzQmNCgINCU0KAKK9CT0KPQlNCj0KDQmNCLINCU0JXQiNCQ0J0KK9CT0KPQlNCj0KDQmNCLINCI0J7QktCQ0J0KK9CT0KPQlNCj0KDQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JPQo9CU0KPQoNCY0Isg0JLQkNCh0JAKK9CT0KPQlNCj0KDQmNCLINCX0J7QoNCQ0J0KK9CT0KPQldCb0JzQmNCd0J4g0KjQkNCd0JTQntCgCivQk9Cj0JXQm9Cc0JjQndCeINCk0KDQmNCC0JXQqAor0JPQo9CT0JAg0JLQldCg0JAKK9CT0KPQk9CQINCS0JXQoNCQCivQk9Cj0JPQmNCLINCh0JjQndCY0KjQkAor0JPQo9CT0JvQldCi0JAg0KHQoNCR0JjQodCb0JDQkgor0JPQo9Ca0J7QlNCYINCc0JvQkNCU0JXQnQor0JPQo9Cb0JDQp9CYINCI0J7QodCY0J8KK9CT0KPQm9CQ0IvQmCDQidCj0JHQmNCd0JrQkAor0JPQo9Cb0JDQnSDQkdCe0KjQmtCeCivQk9Cj0JvQkNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JPQo9Cb0JDQnSDQktCY0JTQntCh0JDQktCQCivQk9Cj0JvQlCDQktCQ0JvQldCg0JjQiNCQCivQk9Cj0JvQldCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JPQo9Cb0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoCDQlNCgINCb0JXQmtCQ0KAKK9CT0KPQm9CV0JLQodCa0Jgg0JTQmNCc0KfQlQor0JPQo9Cb0JXQktCh0JrQmCDQlNCY0JzQp9CVCivQk9Cj0JvQldCS0KHQmtCYINCU0JjQnNCn0JUKK9CT0KPQm9CV0JLQodCa0Jgg0JTQmNCc0KfQlQor0JPQo9Cb0JXQktCh0JrQmCDQlNCY0JzQp9CVCivQk9Cj0JvQldCS0KHQmtCYINCc0JjQpdCQ0IjQm9CeCivQk9Cj0JvQldCS0KHQmtCYINCh0JDQqNCQCivQk9Cj0JvQmNCnINCY0JzQoNCVCivQk9Cj0JvQmNCLINCh0KLQkNCd0JrQngor0JPQo9Cb0JjQiyDQktCV0KHQndCQCivQk9Cj0JvQmNCdINCc0JDQoNCY0KbQkAor0JPQo9Cb0JjQnSDQl9Cb0JDQotCa0J4KK9CT0KPQidCQ0Kgg0JzQkNCg0JjQiNCQCivQk9Cj0InQkNCoINCi0JXQoNCV0JfQmNCI0JAKK9CT0KPQidCQ0Kgg0JLQldCh0J3QkAor0JPQo9CJ0J/QkCDQnNCY0JvQkNCdCivQk9Cj0InQn9CQINCh0JDQktCQCivQk9Cj0J3QldCaINCc0JDQoNCY0IjQkAor0JPQo9Cd0JXQmiDQnNCQ0KLQlQor0JPQo9Cd0JXQmiDQotCe0JzQkAor0JPQo9Cd0JjQiyDQnNCY0JvQldCd0JAKK9CT0KPQitCV0JLQmNCLINCc0JjQm9CVCivQk9Cj0IrQldCS0JjQiyDQndCV0JLQldCd0JrQkAor0JPQo9Cg0JDQnSDQotCQ0JzQkNCoCivQk9Cj0KDQiNCQ0J3QntCSINCW0JDQoNCa0J4KK9CT0KPQoNCI0JDQndCe0JIg0JHQm9CQ0JPQntCI0JUKK9CT0KPQoNCI0JDQndCe0JIg0IjQldCb0JjQptCQCivQk9Cj0KDQiNCQ0J3QntCSINCS0JDQodCQCivQk9Cj0KDQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JPQo9Ch0JjQiyDQnNCY0JvQldCS0JAKK9CT0KPQodCc0JDQnSDQgtCe0KDQgtCVINCU0KAg0JvQldCa0JDQoAor0JPQo9Ch0JzQkNCdINCU0KDQkNCT0JjQptCQCivQk9Cj0KHQnNCQ0J0g0JPQldCg0KXQkNCg0JQKK9CT0KPQodCc0JDQnSDQpdCY0JvQlNCQCivQk9Cj0KHQnNCQ0J0g0JjQnNCg0JUKK9CT0KPQoiDQiNCQ0J3QmtCeCivQk9Cj0KIg0IjQntCS0JDQnQor0JPQo9CiINCd0JDQotCQ0JvQmNCI0JAKK9CT0KPQotCQ0Jgg0IjQntCb0JDQnQor0JPQo9Ci0JDQmCDQnNCY0KXQkNCJCivQk9Cj0KLQkNCI0Jgg0JjQm9CV0KgKK9CT0KPQotCQ0Ikg0JzQmNCb0J7QoNCQ0JQKK9CT0KPQotCV0KjQkCDQgtCj0KDQngor0JPQo9Ci0JXQqNCQINCc0JjQoNCa0J4KK9CT0KPQotCV0KjQkCDQndCY0JrQntCb0JAKK9CT0KPQotCV0KjQkCDQktCe0IjQmNCh0JvQkNCSCivQk9Cj0KLQmCDQltCe0JvQogor0JPQo9Ci0JjQiyDQqNCf0JjQoNCeCivQk9Cj0KLQmNCLINCT0J7QoNCQ0J0KK9CT0KPQotCc0JDQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JPQo9Ci0JzQkNCdINCU0JDQoNCY0J3QmtCeCivQk9Cj0KLQntCS0JjQiyDQkNCd0ILQldCb0JrQngor0JPQo9Ci0J7QktCY0Isg0JTQkNCd0JjQldCb0JAKK9CT0KPQotCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQk9Cj0KLQntCS0JjQiyDQoNCQ0JTQlQor0JPQo9Ci0J7QktCY0Isg0KDQmNCh0KLQngor0JPQo9Ci0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQk9Cj0KLQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JPQo9Ci0J7QktCY0Isg0JfQntCg0JDQnQor0JPQo9Ci0JLQkNCI0J0g0JDQlNCQ0JwKK9CT0KPQotCS0JDQiNCdINCQ0JTQkNCcCivQk9Cj0KLQktCQ0IjQnSDQldCb0JjQl9CQ0JHQldCi0JAKK9CT0KPQotCS0JDQiNCdINCV0JLQkAor0JPQo9CX0JjQiNCQ0J0g0IjQntCS0J4KK9CT0KPQl9CY0IjQkNCdINCc0JjQm9CQ0J0KK9CT0KPQl9CY0IjQkNCdINCd0JjQmtCe0JvQkAor0JPQo9CX0JjQndCQINCn0JXQlNCe0JzQmNCgCivQk9Cj0JfQmNCd0JAg0InQo9CR0JjQodCQ0JIKK9CT0KPQl9CY0J3QkCDQnNCY0KXQkNCI0JvQngor0JPQo9CX0JjQndCQINCc0JjQm9Ce0KDQkNCUCivQk9Cj0JfQmNCd0JAg0JzQmNCb0J7QoNCQ0JQKK9CT0KPQl9CY0J3QkCDQnNCY0JvQntCh0JDQkiDQlNCgCivQk9Cj0JfQmNCd0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JPQo9CX0JjQndCQINCS0J7QiNCY0KHQm9CQ0JIKK9CT0KPQl9CY0J3QkCDQktCj0JrQkNCo0JjQnQor0JPQktCV0KDQmNCLINCR0J7QoNCY0JLQntCICivQk9CS0JXQoNCY0Isg0KHQndCV0JbQkNCd0JAKK9CT0JLQldCg0J4g0JvQkNCX0J4KK9CT0JLQldCg0J4g0JzQmNCg0JAKK9CT0JLQntCW0ILQkNCdINCR0J7QoNCY0KHQm9CQ0JLQkAor0JPQktCe0JbQgtCQ0J0g0JzQmNCl0JDQiNCb0J4KK9CT0JLQntCW0ILQkNCdINCg0JDQlNCe0JLQkNCdCivQk9CS0J7QmNCLINCR0KDQkNCd0JrQngor0JPQktCe0JjQiyDQnNCY0JvQkNCdCivQk9CS0J7QmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CT0JLQntCI0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQk9CS0J7QiNCY0Isg0JzQmNCb0JDQnQor0JPQktCe0IjQmNCLINCh0KLQkNCd0JrQngor0JPQktCe0IjQmNCLINCh0KLQldCS0JDQnQor0JPQktCe0JrQkCDQndCQ0JTQkAor0JPQktCe0JfQlNCV0J0g0JHQntCh0JjQidCa0JAKK9CT0JLQntCX0JTQldCdINCR0KDQkNCd0JrQngor0JPQktCe0JfQlNCV0J0g0KHQoNCV0KLQngor0JPQktCe0JfQlNCV0J0g0JLQm9CQ0JTQmNCc0JjQoAor0JPQktCe0JfQlNCV0J3QkNCmINCW0JjQktCa0J4KK9CT0JLQntCX0JTQldCd0JDQpiDQkdCe0KDQkAor0JPQktCe0JfQlNCV0J3QkNCmINCR0J7QoNCQCivQk9CS0J7Ql9CU0JXQndCQ0KYg0JHQntCg0JrQkAor0JPQktCe0JfQlNCV0J3QkNCmINCU0KDQkNCT0J7QidCj0JEKK9CT0JLQntCX0JTQldCd0JDQpiDQlNCj0KjQkNCdCivQk9CS0J7Ql9CU0JXQndCQ0KYg0KDQkNCI0JrQngor0JPQktCe0JfQlNCV0J3QkNCmINCh0J3QldCW0JDQndCQCivQk9CS0J7Ql9CU0JXQndCe0JIg0IjQntCS0JDQnQor0JPQktCe0JfQlNCV0J3QntCSINCc0JjQm9CQ0J0KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0ILQntCg0ILQlQor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQgtCj0KDQngor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQkdCe0JbQngor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCU0JXQiNCQ0J0KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JXQnNCY0JvQmNCI0JAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCJ0KPQkdCeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCc0JjQi9CeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0J/QldCi0JDQoAor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCg0JDQiNCa0J4KK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0KDQkNCI0JrQngor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQodCi0JXQktCeCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLLdCi0J7QlNCe0KDQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0JPQktCe0JfQlNCV0J3QntCS0JjQiy3QotCe0JTQntCg0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JLQmNCU0JAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9CT0JLQntCX0JTQldCd0J7QktCY0Isg0JLQm9CQ0JTQkAor0JPQktCe0JfQlNCV0J3QntCS0JjQiyDQktCb0JDQlNCQCivQk9CS0J7Ql9CU0JXQndCe0JLQmNCLINCX0J7QoNCY0KbQkAor0JPQktCe0JfQlNCY0Isg0ILQntCg0ILQlQor0JPQktCe0JfQlNCY0Isg0JzQmNCb0JDQnQor0KXQkNCo0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9Cl0JDQqNCe0JLQmNCLINCY0JzQoNCVCivQpdCQ0ILQmNCd0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cl0JDQkdCQ0Kgg0JfQntCg0JDQnQor0KXQkNCR0JDQiNCV0KYg0InQo9CR0JjQptCQCivQpdCQ0JHQldCaINCW0JXQidCa0J4KK9Cl0JDQkdCV0J3QqNCj0KEg0JzQmNCb0JXQndCa0J4KK9Cl0JDQkdCV0J3QqNCj0KEg0JzQmNCb0JXQndCa0J4KK9Cl0JDQkdCY0IjQkNCdINCk0KDQkNCK0JAKK9Cl0JDQkdCY0IjQkNCdINCS0JXQodCd0JAKK9Cl0JDQkdCY0IjQkNCd0JXQpiDQotCY0KXQntCc0JjQoAor0KXQkNCR0J7QoCDQiNCQ0J0KK9Cl0JDQkdCg0JDQnCDQkNCg0JDQndCa0JAKK9Cl0JDQkdCg0JDQnCDQmtCQ0KDQntCJCivQpdCQ0JHQo9CU0JAg0IjQntCh0JjQnwor0KXQkNCR0KPQlNCQINCS0JDQm9CV0J3QotCY0J0KK9Cl0JDQptCe0J/Qo9Cb0J7QoSDQgtCe0KDQgtCVCivQpdCQ0KbQntCf0KPQm9Ce0KEg0J3QkNCU0JAKK9Cl0JDQj9CYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpdCQ0I/QmCDQmtCe0KHQotCQINCQ0JTQktCe0JrQkNCiCivQpdCQ0I/QmC3QnNCQ0J3QntCSINCJ0KPQn9Cn0J4KK9Cl0JDQj9CYLdCf0JDQktCb0J7QktCY0Isg0J7Qm9CT0JAKK9Cl0JDQj9CYINCg0JDQnNCQ0JTQkNCdCivQpdCQ0I/QmNCLINCR0J7QodCY0InQmtCQCivQpdCQ0I/QmNCLINCT0J7QoNCQ0J3QmtCQCivQpdCQ0I/QmNCLINCY0JHQoNCQ0KXQmNCcCivQpdCQ0I/QmNCLINCY0KHQnNCV0KIKK9Cl0JDQj9CY0Isg0JvQkNCX0JDQoAor0KXQkNCP0JjQiyDQm9CQ0JfQkNCgCivQpdCQ0I/QmNCLINCc0JjQm9CQ0J0g0JTQoAor0KXQkNCP0JjQiyDQnNCY0JvQldCS0JAKK9Cl0JDQj9CY0Isg0JzQntCd0JjQmtCQCivQpdCQ0I/QmNCLINCc0KPQpdCQ0KDQldCcCivQpdCQ0I/QmNCLINCd0JDQlNCQCivQpdCQ0I/QmNCLINCe0JvQk9CQINCU0KAKK9Cl0JDQj9CY0Isg0J/QkNCS0JvQlQor0KXQkNCP0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KXQkNCP0JjQiyDQodCb0JDQktCj0IgKK9Cl0JDQj9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KXQkNCP0JjQkNCl0JzQldCi0J7QktCY0Isg0KDQkNCh0JjQnAor0KXQkNCP0JjQkNCg0KHQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0KXQkNCP0JjQkdCQ0JHQmNCLINCU0KDQkNCT0JDQnQor0KXQkNCP0JjQkdCQ0JHQmNCLINCg0JDQlNCe0JzQmNCgCivQpdCQ0I/QmNCR0JDQkdCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cl0JDQj9CY0JHQkNCR0JjQiyDQl9Ce0KDQmNCm0JAKK9Cl0JDQj9CY0KXQkNCh0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQpdCQ0I/QmNCS0KPQmtCe0JLQmNCLINCh0KLQldCS0JDQnSDQlNCgINCf0KDQntCkCivQpdCQ0I/QntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KXQkNCP0J7QktCY0Isg0KDQkNCi0JrQngor0KXQkNCU0JDQlNCYINCh0JzQmNCJ0JAKK9Cl0JDQlNCY0Jog0JDQlNCg0JjQldCdCivQpdCQ0JTQmNCaINCI0J7QltCV0KQKK9Cl0JDQlNCd0JDQgiDQk9CY0JfQldCb0JAKK9Cl0JDQlNCd0JDQgiDQotCV0KDQldCX0JAKK9Cl0JDQlNCd0JDQgiDQktCV0KDQkAor0KXQkNCU0J3QkNCCINCS0JXQoNCe0J3QmNCa0JAKK9Cl0JDQlNCd0JDQgtCV0JIg0JDQoNCh0JXQnQor0KXQkNCU0J3QkNCC0JXQkiDQlNCj0KjQkNCdINCU0KAKK9Cl0JDQlNCd0JDQgtCV0JIg0JTQo9Co0JDQnQor0KXQkNCU0J3QkNCC0JXQkiDQmNCh0JjQlNCe0KAKK9Cl0JDQlNCd0JDQgtCV0JIg0JzQmNCe0JTQoNCQ0JMKK9Cl0JDQlNCd0JDQgtCV0JIg0JzQmNCg0JrQngor0KXQkNCU0J3QkNCC0JXQkiDQodCi0JDQndCY0KHQm9CQ0JIKK9Cl0JDQlNCd0JDQgtCV0JIg0KHQotCV0JLQkNCdCivQpdCQ0JTQndCQ0ILQldCSINCh0KLQntCI0JDQnQor0KXQkNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQpdCQ0JjQnSDQl9Ce0KDQmNCm0JAKK9Cl0JDQiNCn0KPQndCaINCI0J7QltCV0KQKK9Cl0JDQiNCn0KPQndCaINCc0JjQoNCa0J4KK9Cl0JDQiNCQ0Kgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cl0JDQiNCU0JDQoNCV0JLQmNCLINCe0KDQpdCQ0J0KK9Cl0JDQiNCU0JDQoNCf0JDQqNCY0Isg0JXQodCQ0JQKK9Cl0JDQiNCU0JXQoCDQgtCe0KDQgtCVCivQpdCQ0IjQlNCV0KAg0JTQoNCQ0JPQkNCdCivQpdCQ0IjQlNCV0KAg0JvQo9Ca0JAKK9Cl0JDQiNCU0JXQoCDQnNCQ0KDQmNCm0JAKK9Cl0JDQiNCU0JXQoCDQnNCQ0KDQmtCeCivQpdCQ0IjQlNCV0KAg0JzQmNCb0J7QqAor0KXQkNCI0JTQldCgINCg0JDQlNCVCivQpdCQ0IjQlNCV0KAg0KDQkNCI0JrQngor0KXQkNCI0JTQldCgINCh0KLQntCI0JDQndCa0JAKK9Cl0JDQiNCU0JXQoCDQktCV0KHQndCQCivQpdCQ0IjQlNCV0KAg0JfQntCg0JDQnQor0KXQkNCI0JTQmNCLINCQ0J3QgtCV0JvQmtCeCivQpdCQ0IjQlNCY0J0g0JHQntCT0JTQkNCdCivQpdCQ0IjQlNCY0J0g0KHQm9CQ0JLQmtCeCivQpdCQ0IjQlNCjINCQ0J3QkAor0KXQkNCI0JTQoyDQkNCd0JTQoNCY0IjQkAor0KXQkNCI0JTQoyDQkNCd0KLQkNCbCivQpdCQ0IjQlNCjINCk0JXQoNCV0J3Qpgor0KXQkNCI0JTQoy3Qk9Cg0JDQiNCb0JDQpSDQldCc0JAKK9Cl0JDQiNCU0KMg0JjQm9Ce0J3QmtCQCivQpdCQ0IjQlNCjINCY0KDQldCd0JAKK9Cl0JDQiNCU0KMg0IjQntCW0JXQpAor0KXQkNCI0JTQoyDQiNCe0JvQmNCa0JAKK9Cl0JDQiNCU0KMg0IjQntCh0JjQnwor0KXQkNCI0JTQoyDQmtCQ0KLQmNCm0JAKK9Cl0JDQiNCU0KMg0JrQm9CQ0KDQkAor0KXQkNCI0JTQoyDQm9CQ0IjQntCoCivQpdCQ0IjQlNCjINCb0JDQodCb0J4KK9Cl0JDQiNCU0KMg0InQo9CU0JXQktCY0KIKK9Cl0JDQiNCU0KMg0JzQkNCg0JjQiNCQCivQpdCQ0IjQlNCjINCe0KLQngor0KXQkNCI0JTQoyDQn9CQ0JLQm9CVCivQpdCQ0IjQlNCjINCh0KLQldCS0JDQnQor0KXQkNCI0JTQo9CaINCC0J7QoNCC0JUKK9Cl0JDQiNCU0KPQmiDQmNCg0JjQndCQCivQpdCQ0IjQlNCj0Jog0IjQkNCd0JrQngor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0JDQoNCh0JXQnQor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0JHQntCo0JrQngor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0JHQntCT0JTQkNCdCivQpdCQ0IjQlNCj0JrQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0JTQo9Co0JDQnQor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cl0JDQiNCU0KPQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0KXQkNCI0JTQo9Ca0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9Cl0JDQiNCU0KPQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cl0JDQiNCU0KPQmtCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQpdCQ0IjQlNCj0JrQntCS0JjQiyDQntCi0J4KK9Cl0JDQiNCU0KPQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQpdCQ0IjQlNCj0JrQntCS0JjQiyDQodCc0JjQidCQCivQpdCQ0IjQndCQ0Jsg0JDQndCi0JDQmwor0KXQkNCI0J3QkNCbINCT0JDQkdCg0JjQiNCV0JvQkAor0KXQkNCI0J3QkNCbINCY0JLQkNCdCivQpdCQ0IjQndCQ0Jsg0JvQkNCh0JvQngor0KXQkNCI0J3QkNCbINCJ0KPQkdCY0KbQkAor0KXQkNCI0J3QkNCbINCc0JDQoNCY0IjQkAor0KXQkNCI0J3QkNCbINCd0JjQmtCe0JvQkAor0KXQkNCI0J3QpiDQgtCe0KDQgtCVCivQpdCQ0IjQndCmINCI0J7QodCY0J8KK9Cl0JDQiNCd0KYg0IjQntCS0JDQnQor0KXQkNCI0J3QpiDQl9Cb0JDQotCQCivQpdCQ0IjQotCk0J7Qk9CV0Jsg0JLQm9CQ0JTQkAor0KXQkNCI0KLQpNCe0JPQldCbINCS0JvQkNCU0JjQodCb0JDQkgor0KXQkNCI0KLQmyDQmNCS0JDQnQor0KXQkNCI0JLQkNCXINCg0JDQiNCa0J4KK9Cl0JDQiNCX0JvQldCgINCC0J7QoNCC0JUKK9Cl0JDQiNCX0JvQldCgINCU0KPQqNCQ0J0KK9Cl0JDQiNCX0JvQldCgINCI0J7QktCQ0J0KK9Cl0JDQmtCQ0Kcg0JzQkNCi0JjQiNCQCivQpdCQ0JrQldCgINCY0JLQkNCdCivQpdCQ0JrQldCgINCi0JXQoNCV0JfQkAor0KXQkNCb0JDQqCDQl9Cj0JfQkNCd0JAKK9Cl0JDQm9CQ0KjQmCDQgtCe0KDQgtCVCivQpdCQ0JvQkNCo0Jgg0JXQotCV0JvQmtCQCivQpdCQ0JvQkNCo0Jgt0JrQmNCoINCk0KDQkNCd0JrQkAor0KXQkNCb0JDQqNCYINCg0KPQltCQINCU0KAg0JjQndCTCivQpdCQ0JvQkNCYINCY0JzQoNCVCivQpdCQ0JvQkNCYINCc0JDQoNCY0IjQkAor0KXQkNCb0JDQmCDQn9CV0KLQkNCgCivQpdCQ0JvQkNCYINCh0JDQkdCe0JvQpwor0KXQkNCb0JDQn9CYINCU0KDQkNCT0JjQptCQCivQpdCQ0JvQkNCf0Jgg0JjQoNCV0J3QkAor0KXQkNCb0JDQn9CYINCY0JLQkNCdCivQpdCQ0JvQkNChINCo0JDQndCU0J7QoAor0KXQkNCb0JDQoSDQpNCg0JDQitCQCivQpdCQ0JvQkNChINCc0JDQoNCY0IjQkAor0KXQkNCb0JDQktCQ0IrQkCDQltCV0InQmtCeCivQpdCQ0JvQkNCS0JDQitCQINCJ0KPQkdCQ0J0KK9Cl0JDQm9CQ0JLQkNCK0JAg0JzQmNCb0JDQnQor0KXQkNCb0JDQktCQ0IrQkCDQoNCQ0JTQlQor0KXQkNCb0JDQktCQ0IrQkCDQodCi0JXQktCQCivQpdCQ0JvQldCgINCh0KLQldCS0JDQnQor0KXQkNCb0JjQm9Ce0JLQmNCLINCc0KPQpdCQ0KDQldCcCivQpdCQ0JvQmNCcINCh0JXQpNCV0KAKK9Cl0JDQm9Cj0J/QmtCQINCI0J7QltCV0KQg0JTQoAor0KXQkNCcINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpdCQ0JzQoyDQnNCY0KXQkNCJCivQpdCQ0JzQl9CY0Isg0JzQmNCb0JXQndCQCivQpdCQ0J0g0KHQntCk0JjQiNCQCivQpdCQ0J3QptCa0J4g0IjQntCW0JXQpCDQlNCgCivQpdCQ0J3QptCa0J4g0IjQntCW0JXQpCDQlNCgCivQpdCQ0J3QlNCQINCa0JDQotCY0KbQkAor0KXQkNCd0JMg0JzQkNCi0JXQiAor0KXQkNCd0JMg0JLQm9CQ0KLQmtCeCivQpdCQ0J3Qk9CQINCQ0J3QotCj0J0KK9Cl0JDQndCT0JAg0JDQndCi0KPQnQor0KXQkNCd0JPQkCDQnNCQ0KDQmNCI0JAKK9Cl0JDQndCT0J7QktCh0JrQmCDQkNCd0JTQoNCY0IjQkAor0KXQkNCd0KHQmtCeINCI0J7QodCY0J8KK9Cl0JDQndCh0JrQniDQodCi0JXQktCQ0J0KK9Cl0JDQndCj0KjQmNCLINCh0JXQkNCUCivQpdCQ0KDQkNCn0JjQiyDQj9CV0JzQkNCbCivQpdCQ0KDQkNCn0JjQiyDQidCj0JHQmNCm0JAKK9Cl0JDQoNCQ0Jog0J/QkNCS0JvQlQor0KXQkNCg0JDQnNCR0JDQqNCY0Isg0JHQntCW0JDQndCQCivQpdCQ0KDQkNCc0JjQiNCQINCc0JDQoNCY0IjQkAor0KXQkNCg0JDQndCT0J7Ql9CeINCo0JDQndCU0J7QoAor0KXQkNCg0JDQndCT0J7Ql9CeINCo0JDQndCU0J7QoAor0KXQkNCg0JDQndCT0J7Ql9CeINCo0JDQoNCY0JrQkAor0KXQkNCg0JDQndCT0J7Ql9CeINCR0JDQm9CY0J3Qogor0KXQkNCg0JDQndCT0J7Ql9CeINCR0J7QqNCa0J4KK9Cl0JDQoNCQ0J3Qk9Ce0JfQniDQldCg0JbQldCR0JXQogor0KXQkNCg0JDQndCT0J7Ql9CeINCV0KDQltCV0JHQldCiCivQpdCQ0KDQkNCd0JPQntCX0J4g0JjQqNCi0JLQkNCdCivQpdCQ0KDQkNCd0JPQntCX0J4g0JjQnNCg0JUKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QiNCV0JPQoNCY0KjQmtCYINCc0JDQoNCY0IjQkAor0KXQkNCg0JDQndCT0J7Ql9CeINCa0JDQoNCe0IkKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQltCj0JbQkNCd0JAKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQgtCj0KDQkAor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCR0J7QltCY0JTQkNCgCivQpdCQ0KDQkNCd0JPQntCX0J4t0KLQntCg0Jgg0JjQoNCY0J3QkAor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCY0JLQkNCdCivQpdCQ0KDQkNCd0JPQntCX0J4t0KLQntCg0Jgg0IjQntCQ0JrQmNCcCivQpdCQ0KDQkNCd0JPQntCX0J4t0KLQntCg0Jgg0IjQntCS0JDQnQor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCI0J7QktCQ0J0KK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQidCj0JHQmNCm0JAKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQndCV0KHQotCe0KAKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQndCY0JrQntCb0JAKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQodCY0JvQktCV0KHQotCV0KAKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQodCi0J7QiNCQ0J3QmtCQCivQpdCQ0KDQkNCd0JPQntCX0J4t0KLQntCg0Jgg0JLQldCh0J3QkAor0KXQkNCg0JDQndCT0J7Ql9CeLdCi0J7QoNCYINCS0JvQkNCU0JjQnNCY0KAKK9Cl0JDQoNCQ0J3Qk9Ce0JfQni3QotCe0KDQmCDQktCb0JDQlNCY0JzQmNCgCivQpdCQ0KDQpNCc0JDQnSDQnNCQ0KDQkAor0KXQkNCg0KXQkNCYINCW0JXQidCa0J4KK9Cl0JDQoNCl0JDQmCDQkdCe0JbQkNCd0JAKK9Cl0JDQoNCl0JDQmCDQiNCQ0J3QmtCeCivQpdCQ0KDQpdCQ0IjQmCDQpdCV0JvQldCd0JAKK9Cl0JDQoNCl0JDQiNCYINCI0JDQndCa0J4KK9Cl0JDQoNCl0JDQiNCYINCI0J7QkNCa0JjQnAor0KXQkNCg0KXQkNCI0Jgg0IjQntCQ0JrQmNCcCivQpdCQ0KDQpdCQ0IjQmCDQidCj0JHQntCc0JjQoAor0KXQkNCg0KXQkNCI0Jgg0InQo9CR0J7QnNCY0KAKK9Cl0JDQoNCl0JDQiNCYINCc0JjQoNCe0J0KK9Cl0JDQoNCl0JDQiNCYINCd0JjQmtCe0JvQkAor0KXQkNCg0KXQkNCI0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KXQkNCg0KXQkNCI0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KXQkNCg0JjQqCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KXQkNCg0JjQqCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KXQkNCg0JjQqCDQidCj0JHQmNCS0J7QiNCVCivQpdCQ0KDQmNCoINCf0JjQoNCe0KjQmtCQCivQpdCQ0KDQmNCI0JDQnSDQqNCi0JXQpNCY0KbQkAor0KXQkNCg0JrQkNCYINCh0KLQldCS0JDQnQor0KXQkNCg0JzQkNCiINCa0J7QndCg0JDQlAor0KXQkNCg0J/QkNCKINCc0JjQpdCQ0JsKK9Cl0JDQoNCiINCc0JDQoNCT0JjQotCQCivQpdCQ0KDQotCY0JMg0JjQoNCV0J3QkAor0KXQkNCg0KLQmNCTINCi0JjQkdCe0KAKK9Cl0JDQoNCi0JzQkNCdINCa0JDQotCQ0KDQmNCd0JAKK9Cl0JDQoNCi0JzQkNCdINCS0JXQodCd0JAKK9Cl0JDQoSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KXQkNChINCa0JDQoNCb0J4KK9Cl0JDQoSDQnNCQ0KDQotCQCivQpdCQ0KEg0JzQmNCb0JjQptCQCivQpdCQ0KHQkNCd0JDQk9CY0Isg0JXQodCd0JDQpAor0KXQkNCh0JDQndCQ0JPQmNCLINCc0JjQm9CQ0J0KK9Cl0JDQodCV0J3QkNCj0JXQoCDQiNCe0KHQmNCfCivQpdCQ0KHQmNCLINCP0JXQnNCQ0JsKK9Cl0JDQotCQ0JvQkCDQnNCQ0KLQlQor0KXQkNCi0JDQm9CQINCX0J7Qm9Ci0JDQnQor0KXQkNCj0JMg0JDQndCY0KbQkAor0KXQkNCj0Jog0KDQntCR0JXQoNCiCivQpdCQ0KPQn9Ci0JzQkNCdINCh0JvQkNCS0JrQngor0KXQkNCj0KDQlNCY0Isg0KDQkNCR0JjQiNCQCivQpdCQ0KPQodCV0KAg0KXQmNCb0JTQkAor0KXQkNCj0JfQldCgINCe0KHQmtCQ0KAKK9Cl0JDQo9CX0JvQntCl0J3QldCgINCY0KDQldCd0JAKK9Cl0JDQktCI0JDQoCDQktCV0JvQmNCX0JDQoAor0KXQkNCS0JvQldCaINCk0KDQkNCK0JAKK9Cl0JDQktCb0JXQmiDQiNCe0KHQmNCfCivQpdCQ0JLQoNCQ0J0g0JfQm9CQ0KLQmtCeCivQpdCQ0JLQl9CYINCo0JXQoNCY0KQKK9Cl0JDQktCX0Jgg0JvQmNCc0JDQnQor0KXQldCC0JXQqCDQiNCQ0J3QntCoCivQpdCV0ILQldCb0JDQmCDQodCi0JXQktCQ0J0KK9Cl0JXQgtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpdCV0ILQmCDQnNCY0JvQmNCm0JAKK9Cl0JXQlNCV0Kgg0IjQkNCd0J7QqAor0KXQldCT0JXQlNCY0Kgg0ILQldCg0IIKK9Cl0JXQk9CV0JTQmNCoINCR0JXQm9CQCivQpdCV0JPQldCU0JjQqCDQkdCV0KDQotCQCivQpdCV0JPQldCU0JjQqCDQk9CV0JfQkAor0KXQldCT0JXQlNCY0Kgg0JjQqNCi0JLQkNCdCivQpdCV0JPQldCU0JjQqCDQiNCe0JbQldCkCivQpdCV0JPQldCU0JjQqCDQiNCe0KXQkNCd0JAKK9Cl0JXQk9CV0JTQmNCoINCI0J7Ql9CV0KTQmNCd0JAKK9Cl0JXQk9CV0JTQmNCoINCi0JXQoNCV0JfQmNCI0JAKK9Cl0JXQk9CV0JTQmNCoINCX0J7Qm9Ci0JDQnQor0KXQldCT0JXQlNCj0Kgg0JrQkNCg0J7Qm9CY0J3QkAor0KXQldCY0Jwg0JzQkNCT0JTQkAor0KXQldCa0JjQiyDQodCb0JDQktCY0KbQkAor0KXQldCb0JXQoCDQk9CQ0JHQoNCY0IjQldCbCivQpdCV0JvQldCgINCY0J3Qk9Cg0JjQlAor0KXQldCcINCI0JDQndCe0KgKK9Cl0JXQnNCYINCQ0J3QmNCm0JAKK9Cl0JXQnNCYINCS0JvQkNCU0JjQodCb0JDQkgor0KXQldCc0J7QnSDQkdCe0KDQmNChCivQpdCV0JzQntCdINCc0JDQoNCY0IjQkAor0KXQldCc0J7QnSDQodCb0JDQktCY0KbQkAor0KXQldCc0J7QnSDQotCV0KDQldCX0JjQiNCQCivQpdCV0JzQntCdINCS0JvQkNCU0JjQnNCY0KAKK9Cl0JXQnNCe0J0g0JLQm9CQ0JTQmNCc0JjQoAor0KXQldCc0KDQmNClINCa0JvQkNCg0JAKK9Cl0JXQnNCj0J0g0JzQmNCl0JDQiNCb0J4KK9Cl0JXQnSDQltCV0InQmtCeCivQpdCV0J0g0JjQktCY0KbQkAor0KXQldCdINCc0JDQoNCY0IjQkAor0KXQldCd0JPQmyDQlNCQ0JzQiNCQ0J0KK9Cl0JXQndCT0Jsg0IjQntCS0JDQnQor0KXQldCd0JPQmyDQoNCY0KXQkNCg0JQKK9Cl0JXQndCY0Kgg0JLQmNCb0JzQkAor0KXQldCd0JrQldCbINCk0JjQm9CY0J8KK9Cl0JXQnyDQnNCQ0JrQodCY0JwKK9Cl0JXQoNCn0JjQmiDQoNCe0JHQldCg0KIKK9Cl0JXQoNCQ0Jog0JjQktCQ0J0KK9Cl0JXQoNCQ0Jog0KHQotCQ0J3QmNCh0JvQkNCSCivQpdCV0KDQkNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0JXQoNCQ0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cl0JXQoNCQ0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQpdCV0KDQkdCV0Jcg0JzQmNCb0JXQndCa0J4KK9Cl0JXQoNCR0KHQoiDQkNCd0KLQo9CdCivQpdCV0KDQkdCj0KIg0ILQntCg0ILQlQor0KXQldCg0JHQo9CiINCT0JDQkdCe0KAKK9Cl0JXQoNCR0KPQoiDQiNCe0JbQldCkCivQpdCV0KDQkdCj0KIg0JrQkNCg0J7QiQor0KXQldCg0JHQo9CiINCa0JjQoNCY0JsKK9Cl0JXQoNCR0KPQoiDQnNCY0KXQkNCI0JvQngor0KXQldCg0JHQo9CiINCh0JjQm9CS0JXQodCi0JXQoAor0KXQldCg0KbQldCTINCC0J7QoNCC0JUKK9Cl0JXQoNCm0JXQkyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cl0JXQoNCm0JXQkyDQmtCQ0KDQm9CeCivQpdCV0KDQptCV0J3QkdCV0KDQk9CV0KAg0ILQo9Cb0JAKK9Cl0JXQoNCm0JXQndCR0JXQoNCT0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KXQldCg0KbQldCd0JHQldCg0JPQldCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpdCV0KDQptCV0J3QkdCV0KDQk9CV0KAg0JPQmNCX0JXQm9CQCivQpdCV0KDQptCV0J3QkdCV0KDQk9CV0KAg0JjQoNCV0J0KK9Cl0JXQoNCm0J7QkyDQgtCe0KDQgtCVCivQpdCV0KDQlNCYINCI0J7QodCY0J8KK9Cl0JXQoNCU0Jgg0InQmNCJ0JDQndCQCivQpdCV0KDQlNCYLdCh0KLQntCI0JDQndCe0JLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9Cl0JXQoNCV0J3Qp9CY0Isg0JvQldCe0J/QntCb0JQKK9Cl0JXQoNCV0J3QlNCY0IjQkCDQgtCe0KDQgtCVCivQpdCV0KDQldCd0JTQmNCI0JAg0JzQkNCg0JrQngor0KXQldCg0JXQotCQINCh0JvQntCR0J7QlNCQ0J0KK9Cl0JXQoNCT0JXQoiDQmtCQ0KLQmNCm0JAKK9Cl0JXQoNCY0Isg0JzQmNCl0J7QktCY0JsKK9Cl0JXQoNCY0J3QkyDQkNCc0JDQm9CY0IjQkAor0KXQldCg0JjQndCTINCY0JLQkNCdCivQpdCV0KDQnNCQ0J0g0KfQmNCb0JAKK9Cl0JXQoNCc0JDQnSDQkNCd0ILQkAor0KXQldCg0JzQkNCdINCY0JLQkNCdCivQpdCV0KDQnNCQ0J0g0JrQkNCg0JvQngor0KXQldCg0JzQkNCdINCS0JjQm9CY0JwKK9Cl0JXQoNCe0KAg0JvQkNCX0JDQoAor0KXQldCg0J/QmtCQINCU0KPQkdCg0JDQktCa0JAKK9Cl0JXQoNCf0JrQkCDQmNCS0JDQnSDQlNCgINCY0J3Qkwor0KXQldCg0KLQmyDQiNCe0JbQldCkCivQpdCV0KDQotCbINCd0JDQlNCQCivQpdCV0KEg0KjQkNCd0JTQntCgCivQpdCV0KEg0JvQkNCh0JvQngor0KXQldCh0JrQniDQktCY0JrQotCe0KDQmNCI0JAKK9Cl0JXQktCV0KAg0JzQkNCg0JPQmNCi0JAKK9Cl0JXQktCV0KAg0J/QkNCS0JvQlQor0KXQldCS0JXQoNCQINCc0JjQpdCQ0IjQm9CeCivQpdCV0JLQldCg0JAg0JfQo9CX0JDQndCQCivQpdCV0JLQmNCX0Jgg0JjQm9Ce0J3QkAor0KXQldCS0JjQl9CYINCf0JXQotCQ0KAKK9Cl0JjQi9CY0Jsg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0JjQi9CY0Jsg0IjQntCh0JjQnwor0KXQmNCL0JjQmyDQmtCQ0KLQkNCg0JjQndCQCivQpdCY0JbQkCDQiNCe0JLQkNCdCivQpdCY0JbQkCDQnNCY0KjQkAor0KXQmNCR0Kgg0JzQkNCg0JjQiNCQCivQpdCY0JHQqCDQoNCY0KXQkNCg0JQg0KHQo9CU0JjQiNCQCivQpdCY0JHQqCDQotCQ0J3QmtCg0JXQlAor0KXQmNCV0Jsg0JrQodCV0J3QmNCI0JAKK9Cl0JjQmyDQiNCe0KHQmNCfCivQpdCY0Jsg0JLQldCg0JAKK9Cl0JjQm9CY0JXQoC3QmtCe0JvQkNCg0J7QkiDQktCQ0JvQldCg0JjQiNCQINCU0KAKK9Cl0JjQm9CY0JXQoCDQm9CQ0IjQntCoINCU0JjQn9CbINCY0J3Qkwor0KXQmNCd0JjQiyDQgtCe0KDQgtCVCivQpdCY0J3QmNCLINCR0KDQkNCd0JrQngor0KXQmNCd0JjQiyDQnNCQ0J3QlQor0KXQmNCd0JjQiyDQnNCY0JvQmNCm0JAKK9Cl0JjQndCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cl0JjQn9CY0Jog0KjQotCV0KTQkNCd0JAKK9Cl0JjQn9CY0Jog0IjQntCS0JDQnQor0KXQmNCf0JjQmiDQmtCQ0KDQm9CeCivQpdCY0KDQqCDQodCi0IjQldCf0JDQnQor0KXQmNCg0KjQldCd0JHQldCg0JPQldCgINCc0JDQoNCi0JAKK9Cl0JjQoNCo0JXQndCR0JXQoNCT0JXQoCDQodCi0JXQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQpdCY0KDQqNCc0JDQnSDQkNCd0KLQo9CdCivQpdCY0KDQiNCe0JLQkNCi0Jgg0InQo9CR0JjQptCQCivQpdCY0KDQiNCe0JLQkNCi0JjQiCDQnNCY0KDQntCdCivQpdCY0KDQnNCQ0J0g0KTQoNCQ0IrQkAor0KXQmNCg0JzQkNCdINCX0J7Qm9Ci0JDQnQor0KXQmNCi0JXQndCR0JXQoNCT0JXQoCDQgtCe0KDQgtCVCivQpdCY0KLQmCDQpNCg0JDQndCmCivQpdCY0KLQmyDQldCb0JjQl9CQ0JHQldCi0JAKK9Cl0JjQotCbINCh0KLQldCS0JDQnQor0KXQm9CQ0ILQmNCaINCX0JLQntCd0JrQngor0KXQm9CQ0JTQndCYINCY0JLQkNCdCivQpdCb0JDQlNCd0Jgg0KHQm9CQ0JLQmtCeCivQpdCb0JDQn9CV0KYg0KHQotCI0JXQn9CQ0J0KK9Cl0JvQkNCS0KHQkCDQodCb0JDQktCY0KbQkAor0KXQm9CV0JHQldCmINCd0J7QoNCR0JXQoNCiCivQpdCb0J7QltCQ0J0g0IjQntCS0JDQnQor0KXQnNCY0Ikg0JjQm9CY0IjQkAor0KXQndCQ0KLQmtCeINCc0JjQqNCa0J4KK9Cl0J7Qp9Ca0J4g0JDQiNCV0KIKK9Cl0J7QqNCV0Jog0KfQkNCR0JAKK9Cl0J7QqNCV0Jog0KTQoNCQ0IrQkAor0KXQntCR0KDQkNCiINCc0JDQoNCi0JAKK9Cl0J7Qj9CQINCg0JDQnNCQ0JTQkNCdCivQpdCe0I/QmNCLINCl0JDQm9CY0JQKK9Cl0J7Qj9CY0Isg0J7QnNCV0KAKK9Cl0J7Qj9CY0Isg0KHQotCQ0JfQkAor0KXQntCU0JAg0JzQldCI0KDQldCcCivQpdCe0JTQkNCaINCc0JjQm9CVCivQpdCe0JTQkNCaINCh0JjQm9CS0JXQodCi0JDQoAor0KXQntCU0JDQmiDQodCe0KTQmNCI0JAKK9Cl0J7QlNCQ0Jog0JLQldCg0JAKK9Cl0J7QlNCQ0Jog0JLQm9CQ0JTQmNCh0JvQkNCSCivQpdCe0JTQkNCgINCI0J7QodCY0J8KK9Cl0J7QlNCYINCV0KDQndCVCivQpdCe0JTQmCDQldCg0J3QlQor0KXQntCU0Jgg0KTQldCg0JXQndCmCivQpdCe0JTQmCDQktCY0JvQnNCQCivQpdCe0JTQmNCaINCR0JDQoNCR0JDQoNCQCivQpdCe0JTQmNCd0JrQkCDQnNCY0KXQkNCY0JvQngor0KXQntCU0J3QmNCaINCQ0JvQntCI0JcKK9Cl0J7QlNCe0JHQkCDQlNCQ0J3QmNCI0JXQm9CQCivQpdCe0JTQntCb0JjQpyDQiNCQ0J3QmtCeCivQpdCe0JTQntCb0JjQiyDQiNCQ0KDQntCh0JvQkNCSCivQpdCe0KTQnNCQ0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0J7QpNCc0JDQnSDQkNCg0KLQo9CgCivQpdCe0KTQnNCQ0J0g0JHQoNCj0J3Qngor0KXQntCk0JzQkNCdINCk0KDQkNCK0JAKK9Cl0J7QpNCc0JDQnSDQm9CQ0JTQmNCh0JvQkNCSCivQpdCe0KTQnNCQ0J0g0JzQkNCg0JjQiNCQCivQpdCe0KTQnNCQ0J0g0JLQldCh0J3QkAor0KXQntCl0IrQldCmINCU0JDQoNCa0J4KK9Cl0J7QpdCK0JXQpiDQn9CV0KLQkNCgCivQpdCe0KXQitCV0KYg0JLQm9CQ0JTQmNCc0JjQoAor0KXQntCb0KbQldCgINCb0JDQlNCY0KHQm9CQ0JIKK9Cl0J7Qm9CV0KDQkdCQ0KUg0JrQkNCi0JjQptCQCivQpdCe0JvQmCDQkNCd0JTQoNCY0IjQkCDQnNCgINCf0KUKK9Cl0J7Qm9CYINCa0JDQotCQ0KDQmNCd0JAKK9Cl0J7Qm9CY0KfQldCaINCb0JDQodCb0J4KK9Cl0J7Qm9CY0KfQldCaINCc0JDQoNCT0JjQogor0KXQntCb0JjQp9CV0Jog0KHQotCV0JLQkNCdCivQpdCe0JvQmNCT0JAg0JrQkNCg0JvQngor0KXQntCb0JjQk9CQINCh0J3QldCW0JDQndCQCivQpdCe0JvQmNCT0JAg0KHQotCV0JLQkNCdCivQpdCe0JvQmNCaINCI0JDQndCa0J4KK9Cl0J7Qm9CY0Jog0IjQntCQ0JrQmNCcCivQpdCe0JvQniDQm9CV0J7QndCi0JjQndCQCivQpdCe0JvQniDQktCY0JvQnNCe0Kgg0JTQmNCf0Jsg0JjQndCTCivQpdCe0JvQntCUINCh0KLQldCS0JDQnQor0KXQntCb0J7QlNCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQpdCe0JvQntCiINCg0KPQltCQCivQpdCe0JvQntCS0JrQkCDQkNCd0JrQkAor0KXQntCb0J7QktCa0JAg0JHQoNCQ0J3QmtCQCivQpdCe0JvQntCS0JrQkCDQndCQ0KLQkNCb0JjQiNCQCivQpdCe0JvQn9CV0KDQoiDQldCg0J3QldCh0KIKK9Cl0J7Qm9Cf0JXQoNCiINCb0KPQiNCeCivQpdCe0JzQkCDQkNCd0JAKK9Cl0J7QnNCQINCR0J7QodCY0InQmtCQCivQpdCe0JzQkCDQldCj0JPQldCdCivQpdCe0JzQkCDQiNCQ0J3QmtCeCivQpdCe0JzQkCDQiNCe0JLQk9CV0J0KK9Cl0J7QnNCQINCc0JjQoNCe0KHQm9CQ0JIKK9Cl0J7QnNCQINCd0JjQmtCe0JvQkAor0KXQntCc0JAg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cl0J7QnNCQINCS0JvQkNCU0JjQnNCY0KAKK9Cl0J7QnNCQINCS0JvQkNCU0JjQnNCY0KAKK9Cl0J7QnNCQINCS0KPQmtCY0KbQkAor0KXQntCc0J7QidCQINCI0J7QltCV0KQKK9Cl0J7QoCDQkdCe0JbQmNCm0JAKK9Cl0J7QoCDQmNCb0JjQiNCQCivQpdCe0KAg0J/QkNCS0JvQlQor0KXQntCg0JDQmiDQnNCY0KXQkNCI0JvQngor0KXQntCg0JDQmiDQndCQ0J3QlNCe0KAKK9Cl0J7QoNCT0JDQoSDQmNCo0KLQktCQ0J0KK9Cl0J7QoNCT0JDQoSDQnNCQ0KLQmNCb0JTQkAor0KXQntCg0JPQntCo0Jgg0ILQo9Cb0JAKK9Cl0J7QoNCT0J7QqNCYINCa0JDQotCQ0KDQmNCd0JAKK9Cl0J7QoNCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cl0J7QoNCY0Isg0JrQntCh0JjQnAor0KXQntCg0J0g0JLQkNCb0JXQndCi0JjQnQor0KXQntCg0IrQkNCaINCW0JjQktCQCivQpdCe0KDQitCQ0Jog0ILQo9Cg0J4KK9Cl0J7QoNCK0JDQmiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cl0J7QoNCK0JDQmiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cl0J7QoNCK0JDQmiDQmNCS0JDQnQor0KXQntCg0IrQkNCaINCI0JDQndCe0KgKK9Cl0J7QoNCK0JDQmiDQiNCQ0J0KK9Cl0J7QoNCK0JDQmiDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Cl0J7QoNCK0JDQmiDQnNCY0KjQkAor0KXQntCg0IrQkNCaINCc0JjQoNCa0J4KK9Cl0J7QoNCK0JDQmiDQntCb0JPQkAor0KXQntCg0IrQkNCaINCf0JXQotCQ0KAKK9Cl0J7QoNCK0JDQmi3Qn9Cj0KjQmtCQ0KjQntCS0JAg0JzQkNCg0JjQiNCQCivQpdCe0KDQitCQ0Jog0KHQntCk0KDQntCd0JAKK9Cl0J7QoNCK0JDQmiDQodCi0JXQktCQ0J0KK9Cl0J7QoNCK0JDQmiDQktCb0JDQlNCQCivQpdCe0KDQitCQ0Jog0JLQm9CQ0JTQkAor0KXQntCg0IrQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Cl0J7QoNCK0JjQmiDQqNCQ0J3QlNCe0KAKK9Cl0J7QoNCK0JjQmiDQgtCV0KDQggor0KXQntCg0IrQmNCaINCC0JXQoNCCCivQpdCe0KDQitCY0Jog0JfQntCb0KLQkNCdCivQpdCe0KDQndCe0Jog0JfQntCb0KLQkNCdCivQpdCe0KDQndCj0J3Qky3QqNCe0JzQkNCdINCo0KLQldCk0JDQndCY0IjQkAor0KXQntCg0J7QqNCY0JvQntCSINCh0J7QpNCY0IjQkAor0KXQntCg0J7QqNCa0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0J7QoNCe0KjQmtCeINCh0KLQldCk0JDQnSDQlNCgCivQpdCe0KDQntCS0JjQpiDQlNCg0JDQk9CY0IrQkAor0KXQntCg0J7QktCY0KYg0JLQm9CQ0JTQmNCc0JjQoAor0KXQntCg0KLQmCDQlNCg0JDQk9CQ0J3QkAor0KXQntCg0KLQmCDQk9CV0JfQkAor0KXQntCg0KLQmCDQiNCe0KHQmNCfCivQpdCe0KDQotCYINCS0JvQkNCU0JjQodCb0JDQkgor0KXQntCg0JLQkNCm0JrQmCDQnNCQ0KDQmtCeCivQpdCe0KDQktCQ0KbQmtCYINCh0J3QldCW0JDQndCQCivQpdCe0KDQktCQ0KIg0KjQkNCd0JTQntCgCivQpdCe0KDQktCQ0KIg0KjQkNCd0JTQntCgCivQpdCe0KDQktCQ0KIg0JbQntCb0KIKK9Cl0J7QoNCS0JDQoiDQgtCj0JvQkAor0KXQntCg0JLQkNCiINCC0KPQoNCQCivQpdCe0KDQktCQ0KIg0JDQk9CYCivQpdCe0KDQktCQ0KIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cl0J7QoNCS0JDQoiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KXQntCg0JLQkNCiINCQ0J3QlNCg0JDQqAor0KXQntCg0JLQkNCiINCQ0J3QlNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JDQndCa0JAKK9Cl0J7QoNCS0JDQoiDQkNCd0KLQkNCbCivQpdCe0KDQktCQ0KIg0JDQoNCf0JDQlAor0KXQntCg0JLQkNCiINCR0JXQm9CQCivQpdCe0KDQktCQ0KIg0JHQmNCh0JXQoNCa0JAKK9Cl0J7QoNCS0JDQoiDQlNCV0JbQlQor0KXQntCg0JLQkNCiINCU0JjQnNCY0KLQoNCY0IjQlQor0KXQntCg0JLQkNCiINCV0JTQmNCiCivQpdCe0KDQktCQ0KIg0JXQm9CY0JfQkNCR0JXQotCQCivQpdCe0KDQktCQ0KIg0JXQoNCW0JXQkdCV0KIKK9Cl0J7QoNCS0JDQoiDQldCg0JjQmtCQCivQpdCe0KDQktCQ0KIg0JXQodCi0JXQoAor0KXQntCg0JLQkNCiINCk0JXQoNCV0J3Qpgor0KXQntCg0JLQkNCiINCk0JXQoNCV0J3Qpgor0KXQntCg0JLQkNCiINCk0JXQoNCV0J3Qpgor0KXQntCg0JLQkNCiINCk0JXQoNCV0J3Qpgor0KXQntCg0JLQkNCiINCk0KDQkNCK0JAKK9Cl0J7QoNCS0JDQoiDQpNCg0JDQitCQCivQpdCe0KDQktCQ0KIg0KTQoNCQ0IrQngor0KXQntCg0JLQkNCiINCT0JDQkdCe0KAKK9Cl0J7QoNCS0JDQoiDQk9CY0JfQldCb0JAKK9Cl0J7QoNCS0JDQoiDQk9Cg0J7Ql9CU0JDQndCQCivQpdCe0KDQktCQ0KIg0JjQqNCi0JLQkNCdCivQpdCe0KDQktCQ0KIg0JjQk9Ce0KAKK9Cl0J7QoNCS0JDQoiDQmNCT0J7QoAor0KXQntCg0JLQkNCiINCY0JvQntCd0JrQkAor0KXQntCg0JLQkNCiINCY0JzQoNCVCivQpdCe0KDQktCQ0KIg0JjQnNCg0JUKK9Cl0J7QoNCS0JDQoiDQmNCc0KDQlQor0KXQntCg0JLQkNCiINCY0KDQldCd0JAKK9Cl0J7QoNCS0JDQoiDQmNCg0JXQndCa0JAKK9Cl0J7QoNCS0JDQoiDQmNCS0JDQndCa0JAKK9Cl0J7QoNCS0JDQoiDQmNCS0JDQnQor0KXQntCg0JLQkNCiINCI0JDQndCe0Kgg0JTQmNCf0Jsg0JjQndCTCivQpdCe0KDQktCQ0KIg0IjQkNCd0J7QqAor0KXQntCg0JLQkNCiINCI0JXQm9CV0J3QkAor0KXQntCg0JLQkNCiINCI0J7QltCV0KQKK9Cl0J7QoNCS0JDQoiDQiNCe0JbQldCkCivQpdCe0KDQktCQ0KIg0IjQntCW0JXQpAor0KXQntCg0JLQkNCiINCI0J7QodCY0J8KK9Cl0J7QoNCS0JDQoiDQiNCe0KHQmNCfCivQpdCe0KDQktCQ0KIg0IjQntCh0JjQnwor0KXQntCg0JLQkNCiINCI0J7QodCY0J8KK9Cl0J7QoNCS0JDQoiDQiNCe0KHQmNCfCivQpdCe0KDQktCQ0KIg0IjQntCS0JDQnQor0KXQntCg0JLQkNCiINCa0JDQm9Cc0JDQnQor0KXQntCg0JLQkNCiINCa0JDQoNCb0J4KK9Cl0J7QoNCS0JDQoiDQmtCQ0KDQm9CeCivQpdCe0KDQktCQ0KIg0JrQkNCg0JvQngor0KXQntCg0JLQkNCiINCa0JDQoNCe0IkKK9Cl0J7QoNCS0JDQoiDQmtCQ0KLQkNCb0JjQnQor0KXQntCg0JLQkNCiINCa0JDQotCQ0KDQmNCd0JAKK9Cl0J7QoNCS0JDQoiDQmtCQ0KLQmNCm0JAKK9Cl0J7QoNCS0JDQoiDQmtCQ0KLQmNCm0JAKK9Cl0J7QoNCS0JDQoiDQm9CQ0IjQntCoCivQpdCe0KDQktCQ0KIg0JvQkNCh0JvQngor0KXQntCg0JLQkNCiINCb0JDQodCb0J4KK9Cl0J7QoNCS0JDQoiDQm9CQ0KHQm9CeCivQpdCe0KDQktCQ0KIg0JvQkNCh0JvQngor0KXQntCg0JLQkNCiINCb0JDQodCb0J4KK9Cl0J7QoNCS0JDQoiDQm9CQ0KHQm9CeCivQpdCe0KDQktCQ0KIg0JvQo9CU0JLQmNCTCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JzQkNCi0J4KK9Cl0J7QoNCS0JDQoiDQnNCY0KXQkNCJCivQpdCe0KDQktCQ0KIt0JzQmNCb0JjQotCY0KfQmCDQmtCQ0KDQntCJINCU0KAKK9Cl0J7QoNCS0JDQoiDQnNCY0JvQmtCQCivQpdCe0KDQktCQ0KIg0JzQmNCb0JrQkAor0KXQntCg0JLQkNCiINCc0JjQm9Ce0KHQm9CQ0JIKK9Cl0J7QoNCS0JDQoiDQnNCY0KDQmtCeCivQpdCe0KDQktCQ0KIg0J/QkNCI0JAKK9Cl0J7QoNCS0JDQoiDQn9CQ0JLQm9CVCivQpdCe0KDQktCQ0KIg0J/QldCi0JDQoAor0KXQntCg0JLQkNCiINCg0JDQlNCc0JjQm9CQCivQpdCe0KDQktCQ0KIg0KDQntCW0JAKK9Cl0J7QoNCS0JDQoiDQoNCe0JfQkNCb0JjQiNCQCivQpdCe0KDQktCQ0KIg0KDQo9CW0JAKK9Cl0J7QoNCS0JDQoiDQoNCj0JTQntCb0KQKK9Cl0J7QoNCS0JDQoiDQodCQ0JzQo9CV0JsKK9Cl0J7QoNCS0JDQoiDQodCY0JvQktCV0KHQotCV0KAKK9Cl0J7QoNCS0JDQoiDQodCb0JDQktCa0J4KK9Cl0J7QoNCS0JDQoiDQodCc0JjQidCQCivQpdCe0KDQktCQ0KIg0KHQotCV0JLQkNCdCivQpdCe0KDQktCQ0KIg0KLQkNCc0JDQqAor0KXQntCg0JLQkNCiINCi0JXQoNCV0JfQkAor0KXQntCg0JLQkNCiINCi0JXQoNCV0JfQkAor0KXQntCg0JLQkNCiINCi0JjQkdCe0KAKK9Cl0J7QoNCS0JDQoiDQotCY0JHQntCgCivQpdCe0KDQktCQ0KIg0KLQmNCR0J7QoAor0KXQntCg0JLQkNCiINCi0JjQkdCe0KAKK9Cl0J7QoNCS0JDQoiDQktCQ0JvQldCg0JjQiNCQCivQpdCe0KDQktCQ0KIg0JLQldCg0JjQptCQCivQpdCe0KDQktCQ0KIg0JLQldCg0J7QndCY0JrQkAor0KXQntCg0JLQkNCiINCS0JXQoNCe0J3QmNCa0JAKK9Cl0J7QoNCS0JDQoiDQktCb0JDQlNCY0JzQmNCgCivQpdCe0KDQktCQ0KIg0JfQntCb0KLQkNCdCivQpdCe0KDQktCQ0KIg0JfQntCb0KLQkNCdCivQpdCe0KDQktCQ0KLQmNCLINCc0JDQoNCY0IjQkNCdCivQpdCe0KDQktCQ0KLQmNCLINCe0JvQk9CQCivQpdCe0KDQktCQ0KLQmNCLINCh0JvQkNCS0JrQngor0KXQntCg0JLQkNCi0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQpdCe0KDQktCQ0KLQntCSINCg0JDQodCi0JrQngor0KXQntCg0JLQkNCi0J7QktCY0Isg0ILQntCg0ILQlQor0KXQntCg0JLQkNCi0J7QktCY0Isg0JrQkNCi0JjQptCQCivQpdCe0KDQktCQ0KLQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KXQntCg0JLQkNCi0J7QktCY0Isg0J/QkNCS0JvQlSDQlNCgCivQpdCe0KDQktCQ0KLQodCa0Jgg0JTQo9Co0JDQnQor0KXQntCg0JLQkNCi0KHQmtCYINCJ0KPQkdCY0KbQkAor0KXQntCg0JLQkNCi0KHQmtCYINCJ0KPQkdCY0KbQkAor0KXQntCg0JLQkNCi0KHQmtCYINCc0JjQm9CV0J3QmtCeCivQpdCe0KDQktCQ0KLQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0KXQntCg0JLQkNCi0KHQmtCYINCg0JDQlNCY0JLQntCICivQpdCe0KDQktCQ0KLQodCa0Jgg0KDQo9CW0JjQptCQCivQpdCe0KHQotCY0Isg0JHQmNCh0JXQoNCa0JAKK9Cl0J7QodCi0J3QmNCaINCa0JDQotCY0KbQkAor0KXQntCh0KLQntCd0KHQmtCYINCh0KLQkNCd0JAKK9Cl0J7QoiDQkNCU0JXQnAor0KXQntCj0KQg0JXQm9CS0JjQoNCQCivQpdCe0JLQkNCdINCc0JDQoNCi0JjQnQor0KXQntCS0JDQnSDQnNCY0KDQntCh0JvQkNCSCivQpdCe0JLQkNCd0JXQpiDQktCY0JrQotCe0KDQmNCI0JAKK9Cl0KDQi9CQ0J0g0IjQntCS0JDQnQor0KXQoNCL0JDQnSDQiNCe0JLQkNCdCivQpdCg0JDQkdCQ0KAg0JjQktCeCivQpdCg0JDQkdCe0JLQodCa0Jgg0JDQndCi0J7QnQor0KXQoNCQ0JHQntCS0KHQmtCYINCQ0J3QotCe0J0KK9Cl0KDQkNCR0J7QktCh0JrQmCDQkdCe0IjQkNCd0JAg0JTQoAor0KXQoNCQ0JHQntCS0KHQmtCYINCV0JTQk9CQ0KAg0JTQmNCf0Jsg0J7QldCmCivQpdCg0JDQkdCe0JLQodCa0Jgg0JjQnNCg0JUKK9Cl0KDQkNCR0J7QktCh0JrQmCDQm9CQ0JTQmNCh0JvQkNCSCivQpdCg0JDQkdCg0JjQiyDQldCj0JPQldCdCivQpdCg0JDQlNCV0KfQndCYINCR0JXQm9CQCivQpdCg0JDQlNCV0KfQndCYINCk0KDQkNCK0JAKK9Cl0KDQkNCU0JXQp9Cd0Jgg0IjQntCh0JjQnwor0KXQoNCQ0J3QmNCn0JDQmiDQnNCY0KDQmtCeCivQpdCg0JDQndCY0KHQkNCS0InQldCS0JjQiyDQn9CQ0JLQm9CVCivQpdCg0JDQn9Ce0JLQmNCLINCe0KHQnNCQ0J0KK9Cl0KDQlNCb0JjQp9Ca0JAg0JTQldCh0JDQndCa0JAKK9Cl0KDQldCo0KfQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Cl0KDQldCd0JDQoCDQm9CQ0KPQoNCQCivQpdCg0JPQmNCLINCJ0KPQkdCe0JzQmNCgCivQpdCg0JPQmNCLINCc0JjQm9CQ0J0KK9Cl0KDQk9CY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQpdCg0JjQp9CQ0J3QldCaINCc0JjQoNCe0KHQm9CQ0JIKK9Cl0KDQmNCn0JDQndCV0Jog0J3QldCU0JXQidCa0JAKK9Cl0KDQmNCR0InQkNCdINCQ0J3QotCe0J0KK9Cl0KDQmNCR0J7QktCo0JXQmiDQpNCg0JDQndCmCivQpdCg0JjQptCa0JDQndCY0Isg0JvQo9Ca0JAKK9Cl0KDQmNCV0KjQmNCaINCc0JDQoNCY0IjQkAor0KXQoNCY0IjQldCo0JjQmiDQiNCQ0J0KK9Cl0KDQmNCI0JXQqNCY0Jog0IjQo9Cg0JDQiAor0KXQoNCY0KHQotCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cl0KDQmNCh0KLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KXQoNCY0KHQotCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KXQoNCY0KHQotCY0Isg0InQo9CR0JjQptCQCivQpdCg0JjQodCi0JjQlNCY0KEg0JDQn9Ce0KHQotCe0JsKK9Cl0KDQmNCh0KLQmNCU0JjQoSDQndCY0JrQntCb0JAKK9Cl0KDQmNCh0KLQmNCU0JjQoSDQndCY0JrQntCb0JAKK9Cl0KDQmNCh0KLQntCSINCR0KDQkNCd0JrQngor0KXQoNCY0KHQotCe0JIg0JzQmNCb0J7QodCY0IjQkAor0KXQoNCY0KHQotCe0JIg0JLQldCh0J3QkAor0KXQoNCY0KHQotCe0JIg0JfQkNCT0J7QoNCa0JAKK9Cl0KDQmNCh0KLQntCS0JAg0JXQnNCY0JvQmNCI0JAKK9Cl0KDQmNCh0KLQntCS0KHQmtCYINCi0J7QnNCQCivQpdCg0JjQodCi0KMg0KLQmNCl0J7QnNCY0KAKK9Cl0KDQmtCQ0JvQntCS0JjQiyDQkdCe0KjQmtCeCivQpdCg0J3Qp9CQ0KAg0KHQkNCc0KPQldCbCivQpdCg0J3Qp9CY0Isg0JzQkNCg0JPQmNCi0JAKK9Cl0KDQndCn0JjQiyDQnNCY0KXQkNCUCivQpdCg0J3Qp9CY0Isg0JLQkNCl0JjQlAor0KXQoNCd0KfQmNCQ0KAg0JDQndCQCivQpdCg0J3Qp9CY0JDQoCDQiNCQ0J3QmtCeCivQpdCg0J3Qp9CY0JDQoNCe0JLQkCDQotCV0KDQldCX0JjQkAor0KXQoNCd0KfQiNCQ0KAg0JDQndCU0KDQldCICivQpdCg0J3Qp9CI0JDQoCDQktCb0JDQlNCY0JzQmNCgCivQpdCg0IrQkNCn0JrQmCDQltCQ0KDQmtCeCivQpdCg0IrQkNCn0JrQmCDQgtCe0KDQgtCVCivQpdCg0IrQkNCn0JrQmCDQiNCV0JvQmNCm0JAKK9Cl0KDQitCQ0KfQmtCYINCI0J7QktCQ0J0KK9Cl0KDQitCQ0KfQmtCYINCb0JDQl9CY0KbQkAor0KXQoNCK0JDQp9Ca0Jgg0JzQmNCb0JrQkAor0KXQoNCK0JDQp9Ca0Jgg0JzQm9CQ0JTQldCdCivQpdCg0IrQkNCaINCU0JDQndCVCivQpdCg0IrQkNCaINCU0KDQkNCT0JDQnQor0KXQoNCK0JDQmiDQlNCj0KjQkNCdCivQpdCg0IrQkNCaINCJ0JjQidCQ0J3QkAor0KXQoNCK0JDQmiDQnNCQ0KDQmNCI0JAKK9Cl0KDQitCQ0Jog0KDQkNCI0JrQngor0KXQoNCK0JDQmiDQktCV0InQmtCeCivQpdCg0IrQkNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQpdCg0IrQkNCa0J7QktCY0Isg0JjQktCQ0J3QkAor0KXQoNCK0JDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cl0KDQitCQ0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQpdCg0IrQldCXINCe0JHQoNCQ0JQKK9Cl0KDQntCc0JjQqCDQkNCc0JDQm9CY0IjQkAor0KXQoNCe0JzQmNCoINCQ0J3QkAor0KXQoNCe0JzQmNCoINCR0JDQoNCR0JDQoNCQCivQpdCg0J7QnNCY0Kgg0JHQntCg0JjQodCb0JDQkgor0KXQoNCe0JzQmNCoINCI0J7QkNCa0JjQnAor0KXQoNCe0JzQmNCoINCI0J7QkNCa0JjQnAor0KXQoNCe0JzQmNCoINCa0JDQotCY0KbQkAor0KXQoNCe0JzQmNCoINCc0JDQoNCY0IjQkAor0KXQoNCe0JzQmNCoINCc0JXQm9CQ0J3QmNCI0JAKK9Cl0KDQntCc0JjQqCDQnNCY0KXQkNCI0JvQniDQlNCY0J/QmyDQmNCd0JMKK9Cl0KDQntCc0JjQqCDQnNCY0KDQntCh0JvQkNCSCivQpdCg0J7QnNCY0Kgg0JzQmNCg0J7QodCb0JDQkgor0KXQoNCe0JzQmNCoINCd0JDQlNCQCivQpdCg0J7QnNCY0Kgg0J3QmNCa0J7Qm9CQCivQpdCg0J7QnNCY0Kgg0J/QldCi0JDQoAor0KXQoNCe0JzQmNCoINCh0JjQnNCQCivQpdCg0J7QnNCY0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0KXQoNCe0JzQmNCoINCX0JTQldCd0JrQkAor0KXQoNCe0IrQldCmINCS0JjQi9CQ0JfQntCh0JvQkNCSCivQpdCg0KHQotCeINCh0JvQkNCS0JrQngor0KXQoNCj0JHQldCK0JAg0ILQo9Cg0JAKK9Cl0KDQo9CR0JXQitCQINCk0JXQkdCg0J7QndCQCivQpdCg0KPQkdCV0IrQkCDQiNCQ0J3QmtCeCivQpdCg0KPQkdCV0IrQkCDQiNCe0JDQmtCY0JwKK9Cl0KDQo9CR0JXQitCQINCI0J7QkNCa0JjQnAor0KXQoNCj0JHQldCK0JAg0IjQntCQ0JrQmNCcCivQpdCg0KPQkdCV0IrQkCDQmtCQ0KDQm9CeCivQpdCg0KPQkdCV0IrQkCDQnNCY0KXQkNCI0JvQngor0KXQoNCj0JHQldCK0JAg0JzQmNCg0J7QodCb0JDQkgor0KXQoNCj0JHQldCK0JAg0J/QldCi0JDQoAor0KXQoNCj0JHQldCK0JAg0JfQktCe0J3QmNCc0JjQoAor0KXQoNCj0JHQmNCaINCQ0J3QlNCg0JXQiAor0KXQoNCj0JHQmNCaINCI0J7QktCQ0J0KK9Cl0KDQo9CR0JjQmiDQmtCQ0KDQm9CeCivQpdCg0KPQkdCY0Jog0JzQmNCg0JrQngor0KXQoNCj0JHQmNCaINCe0KHQmtCQ0KAg0JTQoCDQm9CV0JrQkNCgCivQpdCg0KPQkdCY0Jog0KDQntCX0JDQm9CY0IjQkAor0KXQoNCj0KHQotCQ0J3QntCS0JjQiyDQotCj0KDQodCj0J0KK9Cl0KDQo9Ch0KLQmNCLINCV0JzQmNCdCivQpdCg0KPQodCi0JjQiyDQldCd0JLQldCgCivQpdCg0KPQodCi0JjQiyDQl9CY0IjQkNClCivQpdCg0KPQodCi0JjQiyDQl9CY0JvQpdCQCivQpdCj0KfQmNCLINCh0KLQiNCV0J/QkNCdCivQpdCj0KfQmtCQINCI0J7QktCQ0J0KK9Cl0KPQltCS0JDQoCDQqNCQ0J3QlNCe0KAKK9Cl0KPQgtCV0KYg0IjQntCS0JDQndCa0JAKK9Cl0KPQgtCV0KYg0JrQkNCg0JvQngor0KXQo9CR0JDQmCDQk9CQ0JHQntCgCivQpdCj0JHQkNCd0JjQiyDQnNCY0JvQldCd0JAKK9Cl0KPQkdCV0KAg0JHQntCI0JDQndCQCivQpdCj0JHQldCgINCU0KDQkNCT0JDQnQor0KXQo9CR0JXQoCDQldCb0JfQkAor0KXQo9CR0JXQoCDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0KXQo9CR0JXQoCDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Cl0KPQkdCV0KAg0JzQkNCg0JjQiNCQCivQpdCj0JHQldCgINCc0JDQotCY0JvQlNCQCivQpdCj0JHQldCgINCf0JXQotCQ0KAKK9Cl0KPQkdCV0KAg0KLQmNCR0J7QoAor0KXQo9CR0JXQoNCiINCV0JLQkAor0KXQo9CR0JXQoNCiINCg0JDQlNCc0JjQm9CQCivQpdCj0JHQldCg0KIg0JLQldCg0JAKK9Cl0KPQkdCY0IjQkNCgINCV0J3QldChCivQpdCj0JHQmNCI0JDQoCDQndCQ0JTQkAor0KXQo9CU0JDQmiDQmNCg0JjQndCV0IgKK9Cl0KPQlNCQ0Jog0J3QkNCi0JDQm9CY0IjQkAor0KXQo9CU0J7QnNCV0Jsg0JjQktCQ0J0KK9Cl0KPQiNCU0KPQoCDQkdCg0JDQndCa0JAKK9Cl0KPQnNCh0JrQmCDQoNCe0KHQkAor0KXQo9CK0JDQlNCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQpdCj0IrQkNCU0Jgg0JjQm9Ce0J3QmtCQCivQpdCj0IrQkNCU0Jgg0J7Qm9CT0JAKK9Cl0KPQn9CV0KDQoiDQm9CQ0IjQntCoCivQpdCj0J/QmNCaINCc0JjQoNCI0JDQndCQCivQpdCj0KEg0JjQnNCg0JUKK9Cl0KPQodCQ0JMg0JDQoNCf0JDQlAor0KXQo9Ch0JDQk9CY0Isg0JXQodCQ0JQKK9Cl0KPQodCQ0JPQmNCLINCh0KPQm9CV0IjQnNCQ0J0KK9Cl0KPQodCQ0JPQmNCLINCX0JjQndCV0KLQkAor0KXQo9Ch0JDQmiDQoNCQ0JTQntCS0JDQnQor0KXQo9Ch0JDQoCDQldCS0JAKK9Cl0KPQodCQ0KAg0JjQqNCi0JLQkNCdCivQpdCj0KHQkNCgINCI0JDQndCa0J4KK9Cl0KPQodCQ0KAg0JvQkNCh0JvQngor0KXQo9Ch0JDQoCDQotCe0JTQntCgCivQpdCj0KHQldCY0J0g0JzQldCl0JzQldCUCivQpdCj0KHQldCY0J3QkdCV0JPQntCS0JjQiyDQndCQ0JzQmNCaCivQpdCj0KHQldCY0J3QntCS0JjQiyDQkNCd0JjQptCQCivQpdCj0KHQldCY0J3QntCS0JjQiyDQkNCi0JjQm9CQCivQpdCj0KHQldCY0J3QntCS0JjQiyDQkNCi0JjQm9CQCivQpdCj0KHQldCY0J3QntCS0JjQiyDQldCh0JzQldCg0JDQm9CU0JAKK9Cl0KPQodCV0JjQndCe0JLQmNCLINCY0KHQnNCV0KIKK9Cl0KPQodCV0J3QkdCV0JPQntCS0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQpdCj0KHQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Cl0KPQodCY0Isg0JvQkNCU0JjQodCb0JDQkgor0KXQo9Ch0JrQkCDQmNCb0J7QndCQCivQpdCj0KHQmtCQLdCg0J7QmtCQINCc0JDQk9CU0JAg0JTQoAor0KXQo9Ch0JrQniDQnNCY0IjQngor0KXQo9Ch0J7QktCY0Isg0KXQo9Ch0J4KK9Cl0KPQotCQ0JvQkNCg0J7QktCY0Isg0IjQldCb0JXQndCQCivQpdCj0KLQkNCb0JDQoNCe0JLQmNCLINCa0J7QodCi0JAKK9Cl0KPQl9CI0JDQnSDQotCY0KXQntCc0JjQoAor0KXQktCQ0JvQkCDQnNCY0KDQkAor0KXQktCV0KLQmtCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQmNCn0JDQk9CY0Isg0J3QmNCa0J7Qm9CQCivQmNCn0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9CY0KfQmNCdINCW0JjQktCa0J4KK9CY0KfQmNCdINCc0JjQm9CV0J3QmtCeCivQmNCn0JjQnSDQoNCQ0JTQmNCh0JvQkNCSCivQmNCn0JjQnSDQodCg0JXQotCV0J0KK9CY0KjQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0JjQqNCf0JDQnSDQqNCQ0J3QlNCe0KAKK9CY0KjQn9CQ0J0g0JzQkNCg0JPQmNCi0JAKK9CY0KjQn9CQ0J3QntCS0JjQiyDQiNCe0JbQldCkCivQmNCo0KLQntCaINCI0J7QodCY0J8KK9CY0KjQotCe0Jog0IjQntCh0JjQnwor0JjQqNCi0J7QmiDQnNCY0KDQiNCQ0J3QkAor0JjQqNCi0J7QmiDQodCi0JXQktCQ0J0KK9CY0KjQotCe0JrQntCS0JjQiyDQodCi0JXQktCeCivQmNCo0KLQktCQ0J3QntCSINCh0KLQkNCd0JjQodCb0JDQktCQCivQmNCL0JjQotCe0JLQmNCLINCc0JjQm9CQ0J0KK9CY0IvQo9Cg0KPQnyDQltCY0JLQntCI0JjQnQor0JjQi9Cj0KDQo9CfINCc0JjQm9Ce0KDQkNCUCivQmNCL0KPQoNCj0J8g0KDQkNCU0J7QodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9CY0JbQkNCaINCk0JXQoNCV0J3Qpgor0JjQltCQ0Jog0JrQkNCg0JvQngor0JjQltCQ0Jog0KDQntCX0JDQm9CY0IjQkAor0JjQgtCY0JTQntCSINCe0JvQk9CQCivQmNCC0JjQlNCe0JIg0JLQldCb0JjQndCa0JAKK9CY0ILQntCo0JrQmCDQpdCe0KDQodCiCivQmNCC0J7QqNCa0Jgg0J3QmNCa0J7Qm9CQCivQmNCC0KPQqNCa0Jgg0KHQotCV0JLQkNCdCivQmNCR0KDQkNCl0JjQnCDQlNCV0JzQmNCgCivQmNCR0KDQkNCl0JjQnNCQ0JPQmNCLINCd0JDQlNCQCivQmNCR0KDQkNCl0JjQnNCYINCY0JHQoNCQ0KXQmNCcCivQmNCR0KDQkNCl0JjQnNCe0JLQmNCLINCU0JXQoNCS0JjQqNCQCivQmNCR0KDQkNCl0JjQnNCe0JLQmNCLINCV0JzQmNCbCivQmNCR0KDQkNCl0JjQnNCe0JLQmNCLINCl0JDQnNCU0JjQiNCQCivQmNCR0KDQkNCl0JjQnNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CY0JHQoNCQ0KXQmNCc0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQmNCR0KDQkNCl0JjQnNCe0JLQmNCLINCS0JXQoNCQCivQmNCR0KDQkNCl0JjQnNCf0JDQqNCY0Isg0JDQndCQCivQmNCR0KDQkNCI0KLQldCgINCY0JLQkNCdCivQmNCR0KDQkNCI0KLQldCgINCJ0KPQkdCe0JzQmNCgCivQmNCR0KDQkNCI0KLQldCgINCc0JvQkNCU0JXQnQor0JjQkdCg0JjQqNCV0JLQmNCLINCC0KPQm9CQ0JPQkAor0JjQkdCg0JjQqNCV0JLQmNCLINCc0JjQoNCh0JDQlAor0JjQkdCg0JjQqNCV0JLQmNCLINCh0KPQkNCUCivQmNCR0KDQntCn0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUg0JTQmNCf0Jsg0JjQndCTCivQmNCR0KDQntCn0JjQiyDQnNCQ0KDQmNCI0JAKK9CY0JHQoNCe0KfQmNCLINCg0JDQotCe0JzQmNCgCivQmNCR0KDQntCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmNCR0KDQntCn0JjQiyDQktCV0KDQkAor0JjQkdCg0J7Qm9CYINCR0JDQnQor0JjQptCe0KHQmtCYINCb0JDQl9CQ0KAKK9CY0JTQldCYINCd0JDQndCU0J7QoAor0JjQlNCV0IjQmCDQiNCe0JLQkNCdCivQmNCU0JXQiNCYINCS0JDQm9CV0KDQmNCI0JAKK9CY0JTQoNCY0JfQntCS0JjQiyDQkNCl0JzQldCiINCU0KAKK9CY0JTQktCe0KDQldCQ0J0g0KLQntCU0J7QoAor0JjQlNCS0J7QoNCV0JDQnSDQktCY0JrQldCd0KLQmNCI0JUKK9CY0KTQiNCjINCQ0J3Qk9CV0JvQmNCa0JAKK9CY0KTQiNCjINCT0JDQkdCe0KAKK9CY0KTQmtCeINCY0JvQlNCY0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CY0JPQmNCLINCW0JjQktCQ0JTQmNCdCivQmNCT0JjQiyDQgtCj0JvQktCQ0KHQmNCI0JAKK9CY0JPQmNCLINCQ0J3QmtCQCivQmNCT0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0JPQmNCLINCI0J7QktCQ0J3QmtCQCivQmNCT0JjQiyDQnNCY0JvQmtCQCivQmNCT0JjQiyDQnNCY0JvQntCg0JDQlAor0JjQk9CY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQmNCT0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmNCT0JjQiyDQndCY0JrQntCb0JAKK9CY0JPQmNCLINCf0JDQktCb0JUKK9CY0JPQmNCLINCg0JDQiNCa0J4KK9CY0JPQmNCLINCh0JDQqNCQCivQmNCT0JjQiyDQodCi0JXQktCQ0J0KK9CY0JPQmNCLINCh0KLQldCS0JDQnQor0JjQk9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JjQk9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JjQk9CY0Isg0JLQo9Ca0JAKK9CY0JPQndCQ0KYg0J/QldCg0JAKK9CY0JPQitCQ0KYg0JLQmNCU0JAKK9CY0JPQitCQ0KLQmNCLINCQ0J3QmtCQCivQmNCT0IrQkNCi0JjQiyDQkdCe0KDQmNCS0J7QiAor0JjQk9CK0JDQotCY0Isg0JTQo9Co0JDQndCa0JAKK9CY0JPQitCQ0KLQmNCLINCT0J7QiNCa0J4KK9CY0JPQitCQ0KLQmNCLINCd0JXQktCV0J3QmtCQCivQmNCT0IrQkNCi0JjQiyDQoNCQ0JTQntCS0JDQnQor0JjQk9CK0JDQotCY0Isg0JLQmNCUCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQidCY0InQkNCd0JAKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0JzQkNCg0JAKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0JzQmNCb0JDQnQor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQnNCY0JvQldCd0JAKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQnNCY0KLQkAor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQndCe0JLQkNCaCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCg0JDQlNCQ0KjQmNCdCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CY0JPQitCQ0KLQmNCI0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JjQk9CK0JDQotCY0IjQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmNCT0IrQkNCi0JjQiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9CY0JPQitCQ0KLQntCSLdCg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCQINCf0KDQntCkCivQmNCT0IrQkNCi0J7QktCY0Isg0JbQmNCS0JrQngor0JjQk9CK0JDQotCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQmNCT0IrQkNCi0J7QktCY0Isg0JDQndCT0JXQm9CQCivQmNCT0IrQkNCi0J7QktCY0Isg0JDQndCa0JAKK9CY0JPQitCQ0KLQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9CY0JPQitCQ0KLQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JjQk9CK0JDQotCe0JLQmNCLINCa0J7QodCQ0KDQkAor0JjQk9CK0JDQotCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JjQk9CK0JDQotCe0JLQmNCLINCc0JDQoNCY0KbQkAor0JjQk9CK0JDQotCe0JLQmNCLINCc0JjQm9CQ0J0KK9CY0JPQitCQ0KLQntCS0JjQiyDQnNCY0JvQlQor0JjQk9CK0JDQotCe0JLQmNCLINCc0JjQm9Ca0JAKK9CY0JPQitCQ0KLQntCS0JjQiyDQnNCY0JvQntCoINCU0KAg0J/QoNCQ0JLQndCY0JoKK9CY0JPQitCQ0KLQntCS0JjQiyDQnNCY0JvQntCoCivQmNCT0IrQkNCi0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CY0JPQitCQ0KLQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JjQk9CK0JDQotCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQmNCT0IrQkNCi0J7QktCY0Isg0KHQkNCS0JAKK9CY0JPQitCQ0KLQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmNCT0IrQkNCi0J7QktCY0Isg0JLQldCg0JAKK9CY0JPQitCQ0KLQntCS0JjQiyDQktCV0KDQkAor0JjQk9CK0JDQotCe0JLQmNCLINCS0JjQlNCQ0JoKK9CY0JPQitCQ0KLQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmNCT0IrQkNCi0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JjQk9CK0JDQotCe0JLQmNCLINCS0KPQp9Ca0J4KK9CY0JPQitCQ0KLQntCS0KHQmtCYINCV0KTQoNCV0JwKK9CY0JPQitCY0Isg0JHQoNCQ0J3QmtCeCivQmNCT0IrQmNCLINCI0J7QktCQ0J0KK9CY0JPQitCY0Isg0KHQotCe0IjQkNCdCivQmNCT0IrQmNCLINCX0JjQl9CQCivQmNCT0IrQmNCLINCX0J7QoNCQ0J0KK9CY0JPQitCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JjQk9Cg0JDQp9Ca0Jgg0ILQntCg0ILQlQor0JjQk9Cg0JDQp9Ca0Jgg0JXQotCV0JvQkAor0JjQk9Cg0JDQp9Ca0Jgg0IjQo9Cb0JjQnQor0JjQk9Cg0JDQp9Ca0Jgg0JrQkNCg0JvQngor0JjQk9Cg0JDQp9Ca0Jgg0JvQkNCh0JvQngor0JjQk9Cg0JjQiyDQndCQ0JTQkAor0JjQk9Cg0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQmNCT0KDQo9Ci0JjQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CY0KXQkNChINCY0JvQntCd0JAKK9CY0IjQkNCn0JjQiyDQkdCg0JDQndCa0J4KK9CY0IjQkNCn0JjQiyDQnNCQ0JrQodCY0JwKK9CY0IjQldCS0InQldCSINCk0JXQntCU0J7QoAor0JjQmtCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmNCa0JDQndCe0JLQmNCLINCY0JLQkNCdCivQmNCa0JDQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JjQmtCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CY0JrQldCJ0JjQiyDQmNCg0KTQkNCdCivQmNCa0JjQiyDQlNCV0IjQkNCdCivQmNCa0JjQiyDQiNCe0JLQkNCdCivQmNCa0JjQiyDQnNCb0JDQlNCV0J0KK9CY0JrQmNCLINCc0JvQkNCU0JXQnQor0JjQmtCY0Isg0KHQnNCY0InQkNCd0JAKK9CY0JrQntCU0JjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JrQntCd0JjQiyDQgtCj0KDQkAor0JjQmtCe0J3QntCSINCU0JXQiNCQ0J0KK9CY0JrQntCi0JjQnSDQiNCQ0J3QntCoCivQmNCa0J7QotCY0J0g0IjQntCS0JDQndCa0JAKK9CY0JrQntCi0JjQnSDQnNCQ0KLQmNCI0JAKK9CY0JrQntCi0JjQnSDQn9CQ0JsKK9CY0JrQntCi0JjQnSDQn9CV0KLQkNCgCivQmNCa0J7QktCQ0KYg0JHQntCo0JrQngor0JjQmtCe0JLQkNCmINCh0KLQldCS0JDQnQor0JjQmtCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CY0JrQntCS0JjQiyDQnNCY0JvQntCoCivQmNCa0J7QktCY0Isg0JzQmNCb0J7QodCQ0JIKK9CY0JrQntCS0JjQiyDQktCV0JvQmNCd0JrQkAor0JjQmtCg0JDQqNCV0JIg0IjQldCb0JjQptCQCivQmNCa0KDQkNCo0JXQkiDQiNCe0JLQkNCdCivQmNCbINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmNCbINCI0JXQm9CY0KbQkAor0JjQm9Cn0JjQmiDQnNCQ0KDQmNCI0JAKK9CY0JvQldCoINCk0KDQkNCd0KbQmNCo0JrQkAor0JjQm9CV0Kgg0JjQnNCg0JUKK9CY0JvQldCoINCY0KDQldCd0JAKK9CY0JvQldCoINCc0JjQpdCQ0JjQm9CeCivQmNCb0JXQqCDQnNCY0JvQkNCdCivQmNCb0JXQqCDQnNCY0KDQntCh0JvQkNCSCivQmNCb0JjQp9CY0Isg0JDQndCi0KPQnQor0JjQm9CY0KfQmNCLINCY0JLQkNCdCivQmNCb0JjQp9CY0Isg0InQo9CR0JjQptCQCivQmNCb0JjQp9CY0Isg0JzQmNCl0JDQiNCb0J4KK9CY0JvQmNCn0JjQiyDQn9CV0KLQkNCgCivQmNCb0JjQp9CY0Ist0J/QntCf0JjQiyDQntCJ0JAKK9CY0JvQmNCLINCn0JXQlNCe0JzQmNCgCivQmNCb0JjQiyDQp9CV0JTQngor0JjQm9CY0Isg0KjQmNCc0KPQnQor0JjQm9CY0Isg0JbQldCJ0JrQngor0JjQm9CY0Isg0JbQmNCS0JrQngor0JjQm9CY0Isg0JbQmNCS0JrQngor0JjQm9CY0Isg0JbQmNCS0JrQngor0JjQm9CY0Isg0JbQmNCS0J7QnNCY0KAKK9CY0JvQmNCLINCW0JjQktCe0JzQmNCgCivQmNCb0JjQiyDQltCY0JLQntCc0JjQoAor0JjQm9CY0Isg0JbQmNCS0J7QoNCQ0JQKK9CY0JvQmNCLINCW0JjQktCe0KDQkNCUCivQmNCb0JjQiyDQgtCe0KDQgtCVCivQmNCb0JjQiyDQgtCe0KDQgtCVCivQmNCb0JjQiyDQgtCe0KDQgtCVCivQmNCb0JjQiyDQkNCb0JXQmtCh0JAg0JTQoAor0JjQm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmNCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JvQmNCLINCQ0J3QmNCm0JAKK9CY0JvQmNCLINCQ0J3QmtCY0KbQkAor0JjQm9CY0Isg0JDQoNCh0JAKK9CY0JvQmNCLINCQ0KDQodCQCivQmNCb0JjQiyDQkdCY0InQkNCd0JAKK9CY0JvQmNCLINCR0JvQkNCT0J7QiNCVCivQmNCb0JjQiyDQkdCe0KjQmtCeCivQmNCb0JjQiyDQkdCe0KjQmtCeCivQmNCb0JjQiyDQkdCe0JbQmNCU0JDQoAor0JjQm9CY0Isg0JHQntCR0JDQnQor0JjQm9CY0Isg0JHQntCT0JTQkNCdCivQmNCb0JjQiyDQkdCe0JPQntCJ0KPQkQor0JjQm9CY0Isg0JHQntCg0JjQodCb0JDQktCa0JAKK9CY0JvQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CY0JvQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CY0JvQmNCLINCR0J7QoNCY0JLQntCI0JUKK9CY0JvQmNCLINCR0J7QoNCa0JAKK9CY0JvQmNCLINCR0J7QodCY0InQmtCQCivQmNCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CY0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JjQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmNCb0JjQiyDQkdCg0JDQndCa0J4KK9CY0JvQmNCLINCR0KDQkNCd0JrQngor0JjQm9CY0Isg0JHQoNCQ0J3QmtCeCivQmNCb0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9CY0JvQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0JjQm9CY0Isg0KbQldCm0JjQm9CY0IjQkAor0JjQm9CY0Isg0KbQktCV0KLQkAor0JjQm9CY0Isg0KbQktCY0IjQkNCdCivQmNCb0JjQiyDQlNCQ0J3QlQor0JjQm9CY0Isg0JTQkNCg0JjQndCa0JAKK9CY0JvQmNCLINCU0JXQiNCQ0J0KK9CY0JvQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JjQm9CY0Isg0JTQntCR0KDQntCh0JDQkgor0JjQm9CY0Isg0JTQoNCQ0JPQkNCdCivQmNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0JvQmNCLINCU0KDQkNCT0JDQnQor0JjQm9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9CY0JvQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CY0JvQmNCLINCU0KDQkNCT0J4KK9CY0JvQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CY0JvQmNCLINCU0KPQqNCQ0J3QmtCQCivQmNCb0JjQiyDQlNCj0KjQkNCdCivQmNCb0JjQiyDQlNCj0KjQkNCdCivQmNCb0JjQiyDQlNCj0KjQkNCdCivQmNCb0JjQiyDQlNCj0KjQkNCdCivQmNCb0JjQiyDQlNCj0KjQkNCdCivQmNCb0JjQiyDQlNCj0KjQmNCm0JAKK9CY0JvQmNCLINCU0KPQqNCY0KbQkAor0JjQm9CY0Isg0JXQlNCY0KIKK9CY0JvQmNCLINCV0KDQltCY0JrQkAor0JjQm9CY0Isg0JPQntCg0JDQnQor0JjQm9CY0Isg0JPQntCg0JDQnQor0JjQm9CY0Ist0JPQoNCV0JPQntCgINCc0JjQoNCQCivQmNCb0JjQiyDQmNCb0JjQiNCQCivQmNCb0JjQiyDQmNCb0JjQiNCQCivQmNCb0JjQiyDQmNCb0JjQiNCQCivQmNCb0JjQiyDQmNCg0JXQndCQCivQmNCb0JjQiyDQmNCS0JDQnSDQlNCgCivQmNCb0JjQiyDQmNCS0JDQnQor0JjQm9CY0Isg0JjQktCQ0J0KK9CY0JvQmNCLINCI0JXQm9CV0J3QkAor0JjQm9CY0Isg0IjQldCb0JXQndCQCivQmNCb0JjQiyDQiNCV0JvQldCd0JrQngor0JjQm9CY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CY0JvQmNCLINCI0JXQm9Ca0JAKK9CY0JvQmNCLINCI0J7QodCY0KQKK9CY0JvQmNCLINCI0J7QktCQ0J3QmtCQCivQmNCb0JjQiyDQiNCe0JLQkNCdCivQmNCb0JjQiyDQiNCe0JLQkNCdCivQmNCb0JjQiyDQiNCe0JLQkNCdCivQmNCb0JjQiyDQiNCe0JLQkNCdCivQmNCb0JjQiyDQiNCe0JLQkNCdCivQmNCb0JjQiyDQiNCe0JLQmNCm0JAKK9CY0JvQmNCLINCa0J7QktCY0InQmtCQCivQmNCb0JjQiyDQmtCg0KHQotCQ0J0KK9CY0JvQmNCLINCb0JDQl9CQ0KAKK9CY0JvQmNCLINCb0JDQl9CQ0KAKK9CY0JvQmNCLINCb0JDQl9CQ0KAKK9CY0JvQmNCLINCJ0KPQkdCY0KjQkAor0JjQm9CY0Isg0InQo9CR0JjQqNCQCivQmNCb0JjQiyDQidCj0JHQmNCm0JAKK9CY0JvQmNCLINCJ0KPQkdCY0KbQkAor0JjQm9CY0Isg0InQo9CR0JjQptCQCivQmNCb0JjQiyDQidCj0JHQmNCd0JrQngor0JjQm9CY0Isg0InQo9CR0J4KK9CY0JvQmNCLINCc0JDQoNCQCivQmNCb0JjQiyDQnNCQ0KDQkAor0JjQm9CY0Isg0JzQkNCg0JjQiNCQCivQmNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9CY0JvQmNCLINCc0JDQoNCY0IjQkAor0JjQm9CY0Isg0JzQkNCg0JjQiNCQCivQmNCb0JjQiyDQnNCQ0KDQmNCd0JrQngor0JjQm9CY0Isg0JzQkNCg0JrQngor0JjQm9CY0Isg0JzQmNCl0JDQiNCb0J4KK9CY0JvQmNCLINCc0JjQpdCQ0IjQm9CeCivQmNCb0JjQiyDQnNCY0JvQkNCU0JjQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JDQnQor0JjQm9CY0Isg0JzQmNCb0JAKK9CY0JvQmNCLINCc0JjQm9CV0J3QkAor0JjQm9CY0Isg0JzQmNCb0JXQndCQCivQmNCb0JjQiyDQnNCY0JvQldCdCivQmNCb0JjQiyDQnNCY0JvQldCS0JAKK9CY0JvQmNCLINCc0JjQm9CVCivQmNCb0JjQiyDQnNCY0JvQmNCLCivQmNCb0JjQiyDQnNCY0JvQmNCm0JAKK9CY0JvQmNCLINCc0JjQm9CY0KbQkAor0JjQm9CY0Isg0JzQmNCb0JjQptCQCivQmNCb0JjQiyDQnNCY0JvQmNCh0JDQkgor0JjQm9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0JjQm9CY0Isg0JzQmNCb0JjQktCe0IgKK9CY0JvQmNCLINCc0JjQm9CY0JLQntCICivQmNCb0JjQiyDQnNCY0JvQmNCS0J7QiAor0JjQm9CY0Isg0JzQmNCb0J7QqAor0JjQm9CY0Isg0JzQmNCb0J7QqAor0JjQm9CY0Isg0JzQmNCb0J7QqAor0JjQm9CY0Isg0JzQmNCb0J7QqAor0JjQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CY0JvQmNCLLdCc0JjQm9Cj0KjQmNCLINCe0JvQk9CQCivQmNCb0JjQiyDQnNCY0JvQo9Co0JrQkAor0JjQm9CY0Isg0JzQmNCb0KPQotCY0J0KK9CY0JvQmNCLINCc0JjQntCU0KDQkNCTINCU0KAKK9CY0JvQmNCLINCc0JjQntCU0KDQkNCTCivQmNCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0JjQm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CY0JvQmNCLINCc0JjQoNCI0JDQndCQCivQmNCb0JjQiyDQnNCY0KDQmtCeCivQmNCb0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9CY0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CY0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CY0JvQmNCLINCc0JjQotCQ0KAKK9CY0JvQmNCLINCc0J7QnNCn0JjQm9CeCivQmNCb0JjQiyDQnNCe0JzQp9CY0JvQngor0JjQm9CY0Isg0JzQntCc0KfQmNCb0J4KK9CY0JvQmNCLINCc0J7QnNCn0JjQm9CeCivQmNCb0JjQiyDQndCQ0JTQkAor0JjQm9CY0Isg0J3QldCC0J4KK9CY0JvQmNCLINCd0JXQkdCe0IjQqNCQCivQmNCb0JjQiyDQndCV0JHQntCI0KjQkAor0JjQm9CY0Isg0J3QldCd0JDQlAor0JjQm9CY0Isg0J3QldCS0JXQndCa0JAKK9CY0JvQmNCLINCd0JjQmtCe0JvQkAor0JjQm9CY0Isg0J3QmNCa0J7Qm9CQCivQmNCb0JjQiyDQntCR0KDQkNCUCivQmNCb0JjQiyDQntCR0KDQldCdCivQmNCb0JjQiyDQntCb0JPQkAor0JjQm9CY0Isg0J7Qm9CT0JAKK9CY0JvQmNCLINCe0JvQmNCS0JXQoNCQCivQmNCb0JjQiyDQntCh0KLQntCI0JAKK9CY0JvQmNCLINCf0JDQktCb0JUg0JTQmNCf0Jsg0JjQndCTCivQmNCb0JjQiyDQn9CQ0JLQm9CVCivQmNCb0JjQiyDQn9CV0KDQngor0JjQm9CY0Isg0J/QldCi0JDQoAor0JjQm9CY0Isg0J/QldCi0JDQoAor0JjQm9CY0Isg0J/QldCi0JDQoAor0JjQm9CY0Isg0J/QldCi0JDQoAor0JjQm9CY0Isg0J/QldCi0JDQoAor0JjQm9CY0Ist0J/QldCi0KDQntCS0JjQiyDQodCf0J7QnNCV0J3QmtCQCivQmNCb0JjQiyDQn9Cg0JXQktCY0KHQm9CQ0JIKK9CY0JvQmNCLINCg0JDQlNCVCivQmNCb0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JjQm9CY0Isg0KDQkNCU0J7QiNCa0JAKK9CY0JvQmNCLINCg0JDQlNCe0JzQmNCgCivQmNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmNCb0JjQiyDQoNCQ0JTQntCS0JDQnQor0JjQm9CY0Isg0KDQkNCU0J7QktCQ0J0KK9CY0JvQmNCLINCg0JDQlNCeCivQmNCb0JjQiyDQoNCQ0J3QmtCeCivQmNCb0JjQiyDQoNCQ0KLQmtCeCivQmNCb0JjQiyDQoNCQ0KLQmtCeCivQmNCb0JjQiyDQoNCj0JbQkAor0JjQm9CY0Isg0KDQo9CW0JjQptCQCivQmNCb0JjQiyDQodCQ0JLQkCDQlNCgCivQmNCb0JjQiyDQodCQ0JLQkAor0JjQm9CY0Ist0KHQkNCS0JjQiyDQktCe0IjQmNCh0JvQkNCS0JAKK9CY0JvQmNCLINCh0JjQnNCeCivQmNCb0JjQiyDQodCY0J3QmNCo0JAKK9CY0JvQmNCLINCh0JvQkNCS0JjQptCQCivQmNCb0JjQiyDQodCb0JDQktCa0J4KK9CY0JvQmNCLINCh0JvQkNCS0JrQngor0JjQm9CY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JjQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JjQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JjQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JjQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JjQm9CY0Isg0KHQoNCC0JDQnQor0JjQm9CY0Isg0KHQoNCC0JDQnQor0JjQm9CY0Isg0KHQoNCC0JDQnQor0JjQm9CY0Isg0KHQoNCV0KLQldCdCivQmNCb0JjQiyDQodCi0JDQndCQCivQmNCb0JjQiyDQodCi0JDQndCY0KjQkAor0JjQm9CY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JjQm9CY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JjQm9CY0Isg0KHQotCQ0J3QmtCQCivQmNCb0JjQiyDQodCi0JXQktCeCivQmNCb0JjQiyDQodCi0J7QiNCQ0J3Qp9CVCivQmNCb0JjQiyDQodCi0J7QiNCQ0J0KK9CY0JvQmNCLINCh0KLQntCI0JDQnQor0JjQm9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSINCU0KAg0JvQldCa0JDQoAor0JjQm9CY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JjQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JjQm9CY0Isg0KLQkNCi0IjQkNCd0JAKK9CY0JvQmNCLINCi0J7QlNCVCivQmNCb0JjQiyDQotCe0JTQlQor0JjQm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JjQm9CY0Isg0JLQkNCh0JAKK9CY0JvQmNCLINCS0JXQoNCQCivQmNCb0JjQiyDQktCY0JTQntCh0JDQkgor0JjQm9CY0Isg0JLQmNCd0JrQkAor0JjQm9CY0Isg0JLQmNCd0JrQngor0JjQm9CY0Isg0JLQm9CQ0JTQkNCdCivQmNCb0JjQiyDQktCb0JDQlNCQ0J0KK9CY0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0JjQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JjQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JjQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JjQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JjQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JjQm9CY0Isg0JLQm9CQ0KLQmtCQCivQmNCb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmNCb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmNCb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmNCb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmNCb0JjQiyDQl9CU0KDQkNCS0JrQngor0JjQm9CY0Isg0JfQm9CQ0KLQmtCeCivQmNCb0JjQiyDQl9Cb0JDQotCa0J4KK9CY0JvQmNCLINCX0J7QoNCQ0J0KK9CY0JvQmNCLINCX0J7QoNCY0KbQkAor0JjQm9CY0JHQkNCo0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JjQm9CY0JHQkNCo0JjQiyDQndCY0JrQntCb0JAKK9CY0JvQmNCR0JDQqNCY0Isg0J7QodCi0J7QiNCQCivQmNCb0JjQkdCQ0KjQmNCLINCh0KLQldCS0JDQnQor0JjQm9CY0JHQkNCo0JjQiyDQodCi0JXQktCeCivQmNCb0JjQkdCQ0KjQmNCLINCX0JvQkNCi0JAKK9CY0JvQmNCV0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JvQmNCI0Isg0KHQnNCY0InQkAor0JjQm9CY0IjQiyDQodCS0JXQotCe0JvQmNCaCivQmNCb0JjQiNCQ0KjQldCSINCh0J7QpNCY0IjQkAor0JjQm9CY0IjQkNCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JvQmNCI0JDQqNCV0JLQmNCLINCU0JDQoNCQCivQmNCb0JjQiNCQ0KjQldCS0JjQiyDQidCj0JHQmNCo0JAKK9CY0JvQmNCI0JDQqNCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JjQm9CY0IjQkNCX0Jgg0JDQkdCU0JjQodCQ0JzQmAor0JjQm9CY0IjQkNCX0Jgg0JTQkNCj0KIKK9CY0JvQmNCI0JDQl9CYINCl0JDQpNCY0JfQkAor0JjQm9CY0IjQkNCX0Jgg0IjQkNCb0KfQmNCdCivQmNCb0JjQiNCQ0JfQmCDQl9CQ0IjQndCV0JsKK9CY0JvQmNCI0JDQl9Ce0JLQmNCLINCS0JXQj9Cg0JjQiNCQCivQmNCb0JjQiNCV0JIg0JjQktCQ0J0KK9CY0JvQmNCI0JXQkiDQmNCS0JDQnQor0JjQm9CY0IjQldCSINCJ0KPQkdCV0J0KK9CY0JvQmNCI0JXQktCY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CY0JvQmNCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQmNCb0JjQiNCV0JLQmNCLINCg0JDQlNCVCivQmNCb0JjQiNCV0JLQodCa0Jgg0IvQmNCg0J4KK9CY0JvQmNCI0JXQktCh0JrQmCDQgtCe0KDQgtCVCivQmNCb0JjQiNCV0JLQodCa0Jgg0JTQkNCd0JjQm9CeCivQmNCb0JjQiNCY0J0g0JbQkNCg0JrQngor0JjQm9CY0IjQmNCdINCW0JjQktCQ0J0KK9CY0JvQmNCI0JjQnSDQlNCj0KjQkNCdCivQmNCb0JjQiNCY0J0g0IjQldCb0JXQndCQCivQmNCb0JjQiNCY0J0g0IjQntCS0JDQnQor0JjQm9CY0IjQmNCdINCI0J7QktCQ0J0KK9CY0JvQmNCI0JjQnSDQnNCY0JvQkNCdCivQmNCb0JjQiNCY0J0g0JzQmNCb0JjQktCe0IgKK9CY0JvQmNCI0JjQnSDQnNCY0JvQmNCS0J7QiAor0JjQm9CY0IjQmNCdINCc0JjQm9Ce0KgKK9CY0JvQmNCI0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JjQm9CY0IjQmNCdINCh0KLQldCS0JDQnQor0JjQm9CY0IjQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9CY0JvQmNCI0JjQnSDQotCQ0J3QkNCh0JjQiNCVCivQmNCb0JjQiNCY0J0g0KPQoNCe0KgKK9CY0JvQmNCI0JjQnSDQl9Ce0KDQmtCQCivQmNCb0JjQnSDQltCQ0KDQmtCeCivQmNCb0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQm9CY0J0g0JDQndCa0JjQptCQCivQmNCb0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQmNCb0JjQnSDQkdCe0KDQmtCQCivQmNCb0JjQnSDQlNCg0JDQk9CY0IrQkAor0JjQm9CY0J0g0JTQoNCQ0JPQmNCK0JAKK9CY0JvQmNCdINCU0KPQqNCQ0J0KK9CY0JvQmNCdINCU0KPQqNCQ0J0KK9CY0JvQmNCdINCY0JLQkNCdCivQmNCb0JjQnSDQidCj0JHQmNCd0JrQngor0JjQm9CY0J0g0InQo9CR0J7QnNCY0KAKK9CY0JvQmNCdINCc0JjQm9CQ0J0KK9CY0JvQmNCdINCc0JjQm9CV0J3QmtCeCivQmNCb0JjQnSDQnNCb0JDQlNCV0J0KK9CY0JvQmNCdINCd0JXQlNCV0InQmtCeCivQmNCb0JjQnSDQndCY0JrQntCb0JAKK9CY0JvQmNCdINCg0JDQlNCVCivQmNCb0JjQnSDQodCd0JXQltCQ0J3QkAor0JjQm9CY0J0g0KHQntCk0JjQiNCQCivQmNCb0JjQnSDQotCY0JzQkAor0JjQm9CY0J0g0JfQntCg0JAKK9CY0JvQmNCd0KfQmNCLINCc0J7QnNCY0KAKK9CY0JvQmNCd0KfQmNCLINCd0JXQkdCe0IjQqNCQCivQmNCJ0JDQl9CYINCP0JDQnNCY0IkKK9CY0JvQmtCY0Isg0IjQldCb0JAKK9CY0JvQmtCY0Isg0JzQkNCg0JjQptCQCivQmNCb0JrQmNCLINCc0JjQm9CQ0J0KK9CY0JvQmtCY0Isg0JzQmNCg0JAKK9CY0JvQmtCY0Isg0J3QkNCU0JAKK9CY0JvQmtCY0Isg0J3QldCR0J7QiNCo0JAKK9CY0JvQmtCY0Isg0J3QldCd0JDQlAor0JjQm9Ca0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JjQm9Ca0JjQiyDQodCi0JXQktCY0KbQkAor0JjQm9Ca0JjQiyDQl9Cb0JDQotCe0IjQkAor0JjQm9Ca0JjQnSDQoNCQ0JTQmNCS0J7QiAor0JjQm9Ce0JLQkNCn0JAg0JzQkNCg0JrQngor0JjQm9Ce0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JvQntCS0KHQmtCYINCX0JvQkNCi0JAKK9CY0JzQqNCY0KDQntCS0JjQiyDQmtCe0JvQntCc0JDQnQor0JjQnNCo0JjQoNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CY0JzQqNCY0KDQntCS0JjQiyDQodCc0JDQiNCY0JsKK9CY0JzQkNCc0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAKK9CY0JzQkdCg0JAg0JbQmNCS0J7QiNCY0J0KK9CY0JzQkdCg0JjQqNCY0Isg0JHQldCl0JjQiNCQCivQmNCc0JHQoNCY0KjQmNCLINCY0JLQkNCdCivQmNCc0JHQoNCe0IrQldCSINCg0JDQiNCa0J4KK9CY0JzQkdCg0J7QitCV0JIg0KDQkNCI0JrQngor0JjQnNCR0KDQntCK0JXQkiDQoNCQ0IjQmtCeCivQmNCc0JHQoNCe0IrQldCSINCh0J/QkNCh0J7QiNCQCivQmNCc0JHQoNCe0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQmNCc0JHQoNCe0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmNCc0JHQoNCe0J3QntCS0JjQiyDQiNCj0JvQmtCQCivQmNCc0KDQldCo0Jgg0JjQktCQ0J0KK9CY0J3QgtCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CY0J3QgtCY0Isg0JTQo9Co0JDQnQor0JjQndCC0JjQiyDQiNCV0JvQldCd0JAKK9CY0J3QgtCY0Isg0IjQldCb0JjQptCQCivQmNCd0ILQmNCLINCi0JXQoNCV0JcKK9CY0J3QgtCY0Isg0JLQntCI0JjQnQor0JjQndCC0JjQnSDQltCY0JLQmtCeCivQmNCd0ILQmNCdINCC0KPQoNCQCivQmNCd0ILQmNCdINCU0KPQqNCQ0J0KK9CY0J3QgtCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0JjQndCY0Isg0JHQoNCQ0J3QmtCeCivQmNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0J3QmNCLINCU0KPQqNCQ0J0KK9CY0J3QmNCLINCI0JXQm9CV0J3QkAor0JjQndCY0Isg0JrQoNCh0KLQkAor0JjQndCY0Isg0InQo9CR0JjQptCQCivQmNCd0JjQiyDQnNCY0JvQkNCdINCU0KAKK9CY0J3QmNCLINCi0JjQndCU0JAKK9CY0J3QmNCLINCS0JDQodCeCivQmNCK0JDQpiDQkdCe0JPQlNCQ0J0KK9CY0IrQkNCmINCU0KDQkNCT0JjQptCQCivQmNCK0JDQpiDQiNCe0JLQkNCdCivQmNCK0JDQpiDQidCj0JHQmNCm0JAKK9CY0IrQkNCmINCc0JjQoNCa0J4KK9CY0IrQkNCmINCd0JjQmtCe0JvQkAor0JjQitCQ0KYg0KDQkNCU0JAKK9CY0IrQkNCmINCg0JDQlNCVCivQmNCK0JDQpiDQoNCQ0JTQntCc0JjQoAor0JjQitCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0JjQitCQ0KYg0JLQm9CQ0JTQmNCc0JjQoAor0JjQndCe0JLQkNCdINCU0J7QkdCg0JjQktCe0IjQlQor0JjQn9CQ0Kcg0JrQkNCi0JDQm9CY0J3QkAor0JjQn9CQ0Kcg0JrQkNCi0JjQptCQCivQmNCf0JjQiyDQl9Ce0KDQkAor0JjQoNCo0JDQmCDQmNCS0JDQnQor0JjQoNCo0JDQiNCYINCI0J7QktCQ0J0KK9CY0KDQqNCQ0IjQmCDQodCi0JXQktCQCivQmNCg0JjQiyDQkdCe0JbQngor0JjQoNCY0Isg0JPQkNCo0J/QkNCgCivQmNCg0JzQldCoINCc0JDQoNCY0JAKK9CY0KDQnNCV0IrQmCDQiNCe0JbQldCkCivQmNCg0JzQldCK0Jgg0IjQntCh0JjQnwor0JjQoNCc0JXQitCYINCc0JDQoNCT0JjQogor0JjQodCQ0JjQm9Ce0JLQmNCLINCJ0KPQkdCY0KjQkAor0JjQodCQ0JjQm9Ce0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQmNCh0JDQmNCb0J7QktCY0Isg0JzQmNCg0JrQngor0JjQodCQ0JjQm9Ce0JLQmNCLINCS0JXQm9CY0KHQkNCSCivQmNCh0JDQiNCV0JIg0JzQkNCg0JjQiNCQCivQmNCh0JDQiNCV0JLQmNCLINCb0JDQl9CQ0KAKK9CY0KHQkNCI0JXQktCY0Isg0JzQmNCb0J7QqAor0JjQodCQ0IjQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JjQodCQ0IjQm9Ce0JIg0IjQntCd0JXQmwor0JjQodCQ0IjQm9Ce0JIg0IjQntCd0JXQmwor0JjQodCQ0IjQm9Ce0JIg0IjQntCd0JXQmwor0JjQodCQ0IjQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmNCh0JDQiNCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0KHQkNCI0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CY0KHQkNCI0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQmNCh0JDQiNCb0J7QktCY0Isg0KTQldCU0J7QoAor0JjQodCQ0Jog0JjQm9CY0IjQkAor0JjQodCQ0Jog0KHQotCQ0J3QmtCeCivQmNCh0JDQmtCe0JIg0JbQkNCg0JrQngor0JjQodCQ0JrQntCSINCW0JjQktCe0IjQmNCdCivQmNCh0JDQmtCe0JIg0JDQptCa0J4KK9CY0KHQkNCa0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQmNCh0JDQmtCe0JIg0KbQktCV0KLQmtCeCivQmNCh0JDQmtCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQmNCh0JDQmtCe0JIg0JTQoNCQ0JPQkNCd0JAKK9CY0KHQkNCa0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQmNCh0JDQmtCe0JIg0JTQo9Co0JjQptCQCivQmNCh0JDQmtCe0JIg0JXQodCi0JXQoAor0JjQodCQ0JrQntCSINCY0JLQkNCdCivQmNCh0JDQmtCe0JIg0IjQldCb0JjQptCQCivQmNCh0JDQmtCe0JIg0IjQntCS0JDQndCa0JAKK9CY0KHQkNCa0J7QkiDQmtCQ0KLQmNCm0JAKK9CY0KHQkNCa0J7QkiDQm9CV0J/QntCh0JDQktCQCivQmNCh0JDQmtCe0JIg0InQo9CR0JjQptCQCivQmNCh0JDQmtCe0JIg0InQo9CR0JjQptCQCivQmNCh0JDQmtCe0JIg0JzQmNCb0JDQnQor0JjQodCQ0JrQntCSINCc0JjQm9CQ0J0KK9CY0KHQkNCa0J7QkiDQnNCY0JvQldCd0JrQngor0JjQodCQ0JrQntCSINCc0JjQm9CY0JLQntCICivQmNCh0JDQmtCe0JIg0JzQmNCb0J7QoNCQ0JQKK9CY0KHQkNCa0J7QkiDQnNCY0JvQo9Ci0JjQnQor0JjQodCQ0JrQntCSINCc0JjQntCU0KDQkNCTCivQmNCh0JDQmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JjQodCQ0JrQntCSINCd0JXQndCQ0JQKK9CY0KHQkNCa0J7QkiDQn9CV0KLQkNCgCivQmNCh0JDQmtCe0JIg0KDQkNCU0JUKK9CY0KHQkNCa0J7QkiDQoNCQ0JTQmNCm0JAKK9CY0KHQkNCa0J7QkiDQoNCQ0JTQmNCd0JrQkAor0JjQodCQ0JrQntCSINCg0JDQlNCY0JLQntCICivQmNCh0JDQmtCe0JIg0KDQkNCU0JzQmNCb0JAKK9CY0KHQkNCa0J7QkiDQoNCQ0JTQntCc0JjQoAor0JjQodCQ0JrQntCSINCg0JDQlNCe0JLQkNCdCivQmNCh0JDQmtCe0JIg0KDQo9CW0JjQptCQCivQmNCh0JDQmtCe0JIg0KHQkNCS0JAKK9CY0KHQkNCa0J7QkiDQodCb0JDQktCa0J4KK9CY0KHQkNCa0J7QkiDQodCc0JjQidCa0JAKK9CY0KHQkNCa0J7QkiDQodCg0JXQlNCe0IjQlQor0JjQodCQ0JrQntCSINCh0KLQldCS0JDQnQor0JjQodCQ0JrQntCSINCh0KLQldCS0JDQnQor0JjQodCQ0JrQntCSINCi0J7QlNCe0KAKK9CY0KHQkNCa0J7QkiDQotCe0JzQmNCh0JvQkNCSCivQmNCh0JDQmtCe0JIg0JLQntCI0JjQodCb0JDQkgor0JjQodCQ0JrQntCSINCX0J7QoNCY0KbQkAor0JjQodCQ0JrQntCS0JjQiyDQgtCj0KDQkCDQlNCY0J/QmyDQmNCd0JMKK9CY0KHQkNCa0J7QktCY0Isg0JDQndCQCivQmNCh0JDQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9CY0KHQkNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQmNCh0JDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CY0KHQkNCa0J7QktCh0JrQmCDQiNCQ0JrQntCSCivQmNCh0JDQmtCe0JLQodCa0Jgg0KHQm9Ce0JHQntCU0JDQnSDQlNCgCivQmNCh0JDQndCe0JLQmNCLINCQ0J3QkAor0JjQodCY0IjQkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JjQodCY0IjQkNCd0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQmNCh0JrQkNCb0J7QkiDQnNCQ0KDQmNCI0JDQndCQCivQmNCh0JrQmNCLINCc0JjQm9CQ0JTQmNCdCivQmNCh0JrQoNCY0J0g0JHQoNCQ0J3QmtCeCivQmNCh0JrQoNCY0J0g0IjQldCb0JXQndCQCivQmNCh0JvQkNCc0JHQkNCo0JjQiyDQidCY0InQkNCd0JAKK9CY0KHQm9CQ0JzQmCDQkNCR0JjQkQor0JjQodCb0JDQnNCe0JLQmNCLINCc0JDQpdCc0KPQlAor0JjQodCb0JDQnNCe0JLQmNCLINCd0JDQlNCQCivQmNCh0JzQkNCY0JvQmCDQqNCQ0IvQmNCgCivQmNCi0JDQm9CeINCV0JLQmNCm0JAKK9CY0KLQkNCb0J4g0JzQkNCg0JrQngor0JjQotCV0JHQldCI0JDQpiDQl9Ce0KDQkAor0JjQktCQ0KfQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JjQktCQ0KfQmtCe0JLQmNCLINCc0JDQndCe0IjQm9CeCivQmNCS0JDQp9Ca0J7QktCY0Isg0J3QkNCU0JAKK9CY0JLQkNCo0KfQldCd0JrQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JjQktCQ0KjQp9CV0J3QmtCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmNCS0JDQqNCn0JXQndCa0J4g0JrQkNCi0JjQptCQCivQmNCS0JDQqNCa0KMt0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQpNCV0JvQmNCn0JjQkAor0JjQktCQ0Jog0IjQkNCdCivQmNCS0JDQnSDQqNCQ0J3QlNCe0KAKK9CY0JLQkNCdINCC0KPQoNCQCivQmNCS0JDQnSDQkNCi0JjQm9CQCivQmNCS0JDQnSDQptCV0KbQmNCb0JjQiNCQCivQmNCS0JDQnSDQk9CQ0JHQntCgCivQmNCS0JDQnSDQiNCe0JbQldCkCivQmNCS0JDQnSDQiNCe0JLQkNCdCivQmNCS0JDQnSDQmtCQ0KLQkNCb0JjQnQor0JjQktCQ0J0g0JzQmNCl0JDQiNCb0J4KK9CY0JLQkNCdINCh0JjQm9CS0JXQodCi0JXQoAor0JjQktCQ0J0g0JLQldCg0J7QndCQCivQmNCS0JDQndCn0JXQkiDQmNCg0JjQndCQCivQmNCS0JDQndCn0JXQkiDQktCb0JDQlNCY0JzQmNCgCivQmNCS0JDQndCn0JXQktCY0Isg0JbQkNCg0JrQniDQlNCgCivQmNCS0JDQndCn0JXQktCY0Isg0JHQntCo0JrQngor0JjQktCQ0J3Qp9CV0JLQmNCLINCR0KDQkNCd0JrQkAor0JjQktCQ0J3Qp9CV0JLQmNCLINCU0JDQoNCa0J4KK9CY0JLQkNCd0KfQldCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CY0JLQkNCd0KfQldCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0JjQktCQ0J3Qp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JLQkNCd0KfQldCS0JjQiyDQk9CQ0JLQoNCQCivQmNCS0JDQndCn0JXQktCY0Isg0IjQntCS0JDQnQor0JjQktCQ0J3Qp9CV0JLQmNCLINCI0J7QktCQ0J0KK9CY0JLQkNCd0KfQldCS0JjQiyDQnNCQ0KDQmNCm0JAKK9CY0JLQkNCd0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmNCS0JDQndCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JjQktCQ0J3Qp9CV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQmNCS0JDQndCn0JXQktCY0Isg0JzQmNCb0JjQktCe0IjQlSDQn9Cg0J7QpNCV0KHQntCgCivQmNCS0JDQndCn0JXQktCY0Isg0J7Qm9CY0JLQldCg0JAKK9CY0JLQkNCd0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQmNCS0JDQndCn0JXQktCY0Isg0J/QldCi0JDQoAor0JjQktCQ0J3Qp9CV0JLQmNCLINCg0JDQlNCY0JLQntCIINCU0JjQn9CbINCY0J3Qkwor0JjQktCQ0J3Qp9CV0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQmNCS0JDQndCn0JXQktCY0Isg0KHQmNCd0JjQqNCQCivQmNCS0JDQndCn0JXQktCY0Isg0KHQotCQ0J3QmtCeCivQmNCS0JDQndCn0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JjQktCQ0J3Qp9CV0JLQmNCLINCS0JvQkNCU0JAKK9CY0JLQkNCd0KfQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0KAKK9CY0JLQkNCd0KfQmNCLINCQ0J3QotCVCivQmNCS0JDQndCn0JjQiyDQkdCg0JDQndCa0J4KK9CY0JLQkNCd0KfQmNCLINCU0KDQkNCT0JDQnQor0JjQktCQ0J3Qp9CY0Isg0IjQntCh0JjQnwor0JjQktCQ0J3Qp9CY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JjQktCQ0J3Qp9CY0Isg0JzQkNCg0JjQiNCQCivQmNCS0JDQndCn0JjQiyDQnNCY0JvQkNCdCivQmNCS0JDQndCn0JjQiyDQntCb0JPQkAor0JjQktCQ0J3Qp9CY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JjQktCQ0J3Qp9CY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQmNCS0JDQndCn0JjQiyDQodCi0JXQktCQ0J0KK9CY0JLQkNCd0KfQmNCLINCh0KLQldCS0JDQnQor0JjQktCQ0J3Qp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JjQktCQ0J3Qp9CY0J0g0J3QmNCa0J7Qm9CQCivQmNCS0JDQndCn0JjQnSDQntCJ0JXQkwor0JjQktCQ0J3Qp9Cj0Jog0J/QkNCS0JDQngor0JjQktCQ0J3QlNCY0Isg0JjQktCY0KbQkAor0JjQktCQ0J3QlNCY0Isg0KDQkNCU0JzQmNCb0JAKK9CY0JLQkNCd0JXQltCQINCQ0J3QlNCg0JjQiNCQCivQmNCS0JDQndCV0Jog0ILQo9Cg0JAKK9CY0JLQkNCd0JXQmiDQlNCj0KjQmtCeCivQmNCS0JDQndCV0Jog0JLQmNCa0KLQntCg0JjQiNCQCivQmNCS0JDQndCYINCl0JjQidCQCivQmNCS0JDQndCY0Kgg0JrQntCS0JjQidCa0JAKK9CY0JLQkNCd0JjQqCDQodCb0JDQktCa0J4KK9CY0JLQkNCd0JjQqCDQodCb0JDQktCa0J4KK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCC0KPQoNCeCivQmNCS0JDQndCY0KjQldCS0JjQiyDQlNCj0KjQkNCdCivQmNCS0JDQndCY0KjQldCS0JjQiyDQldCS0JjQptCQCivQmNCS0JDQndCY0KjQldCS0JjQiyDQmNCb0JjQiNCQCivQmNCS0JDQndCY0KjQldCS0JjQiyDQiNCV0JvQmNCm0JAKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQmNCS0JDQndCY0KjQldCS0JjQiyDQnNCY0JvQkNCdCivQmNCS0JDQndCY0KjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmNCS0JDQndCY0KjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmNCS0JDQndCY0KjQldCS0JjQiyDQnNCY0KLQkNCgCivQmNCS0JDQndCY0KjQldCS0JjQiyDQndCQ0JTQkAor0JjQktCQ0J3QmNCo0JXQktCY0Isg0J3QkNCU0JAKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCd0JXQgtCQCivQmNCS0JDQndCY0KjQldCS0JjQiyDQndCV0JzQkNCK0JAKK9CY0JLQkNCd0JjQqNCV0JLQmNCLINCe0JvQk9CQCivQmNCS0JDQndCY0KjQldCS0JjQiyDQn9CV0KLQkNCgCivQmNCS0JDQndCY0KjQldCS0JjQiyDQoNCQ0IjQmtCeCivQmNCS0JDQndCY0KjQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmNCS0JDQndCY0KjQldCS0JjQiyDQotCY0J3QkAor0JjQktCQ0J3QmNCo0JXQktCY0Isg0JLQo9Ca0JjQptCQCivQmNCS0JDQndCY0Isg0KfQldCU0J7QnNCY0KAKK9CY0JLQkNCd0JjQiyDQgtCe0KDQgtCVCivQmNCS0JDQndCY0Isg0JDQm9CR0JXQoNCiCivQmNCS0JDQndCY0Isg0JDQndCQCivQmNCS0JDQndCY0Isg0JHQoNCQ0J3QmtCeCivQmNCS0JDQndCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CY0JLQkNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0JLQkNCd0JjQiyDQlNCg0JDQk9CY0KbQkAor0JjQktCQ0J3QmNCLINCU0KPQqNCQ0J0KK9CY0JLQkNCd0JjQiyDQlNCj0KjQkNCdCivQmNCS0JDQndCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0JjQktCQ0J3QmNCLINCY0JLQkNCd0JAKK9CY0JLQkNCd0JjQiyDQmNCS0JDQnQor0JjQktCQ0J3QmNCLINCY0JLQkNCdCivQmNCS0JDQndCY0Isg0JjQktCQ0J0KK9CY0JLQkNCd0JjQiyDQiNCe0JLQngor0JjQktCQ0J3QmNCLINCc0JDQoNCY0J3QkAor0JjQktCQ0J3QmNCLINCc0JjQm9CQ0J0KK9CY0JLQkNCd0JjQiyDQnNCY0JvQkNCdCivQmNCS0JDQndCY0Isg0JzQmNCb0JDQnQor0JjQktCQ0J3QmNCLINCd0JXQktCV0J3QmtCQCivQmNCS0JDQndCY0Isg0J/QldCg0KHQmNCU0JAKK9CY0JLQkNCd0JjQiyDQn9CV0KLQkNCgCivQmNCS0JDQndCY0Isg0KHQndCV0JbQkNCd0JAKK9CY0JLQkNCd0JjQiyDQodCi0JXQktCQ0J0KK9CY0JLQkNCd0JjQiyDQl9Cb0JDQotCe0IjQlQor0JjQktCQ0IrQmCDQodCY0J3QmNCo0JAKK9CY0JLQkNCK0Jgg0JLQldCg0J7QndCY0JrQkAor0JjQktCQ0J3QmtCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQmNCS0JDQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0JjQktCQ0J3QmtCe0JLQmNCLINCR0J7QltCQ0J3QkAor0JjQktCQ0J3QmtCe0JLQmNCLINCR0J7QltCeCivQmNCS0JDQndCa0J7QktCY0Isg0IjQkNCd0JrQngor0JjQktCQ0J3QmtCe0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQmNCS0JDQndCa0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CY0JLQkNCd0JrQntCS0JjQiyDQnNCY0JvQlQor0JjQktCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ca0JAKK9CY0JLQkNCd0JrQntCS0JjQiyDQnNCY0JvQmtCQCivQmNCS0JDQndCa0J7QktCY0Isg0J3QldCd0JDQlAor0JjQktCQ0J3QmtCe0JLQmNCLINCd0J7QktCeCivQmNCS0JDQndCa0J7QktCY0Isg0KDQkNCU0JUKK9CY0JLQkNCd0JrQntCS0JjQiyDQoNCQ0JTQlQor0JjQktCQ0J3QmtCe0JLQmNCLINCh0JDQktCeCivQmNCS0JDQndCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQmNCS0JDQndCa0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CY0JLQkNCd0JrQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JjQktCQ0J3QntCSINCW0JjQktCQ0J0KK9CY0JLQkNCd0J7QkiDQgtCe0JrQkAor0JjQktCQ0J3QntCSINCC0J7QoNCC0JUKK9CY0JLQkNCd0J7QkiDQgtCj0KDQgtCV0JLQmtCQCivQmNCS0JDQndCe0JIg0ILQo9Cg0ILQmNCd0JrQkAor0JjQktCQ0J3QntCSINCR0J7QoNCY0KEKK9CY0JLQkNCd0J7QkiDQlNCY0JzQmNCi0JDQoAor0JjQktCQ0J3QntCSINCU0KDQkNCT0JjQptCQCivQmNCS0JDQndCe0JIg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9CY0JLQkNCd0J7QkiDQldCc0JjQm9CY0IjQkAor0JjQktCQ0J3QntCSINCV0JLQmNCm0JAKK9CY0JLQkNCd0J7QkiDQk9CQ0JLQoNCQCivQmNCS0JDQndCe0JIg0IjQo9Cb0JrQkAor0JjQktCQ0J3QntCSINCa0JDQotCY0KbQkAor0JjQktCQ0J3QntCSINCJ0KPQkdCe0JzQmNCgCivQmNCS0JDQndCe0JIg0JzQkNCg0JjQptCQCivQmNCS0JDQndCe0JIg0JzQkNCg0JjQiNCQCivQmNCS0JDQndCe0JIg0JzQmNCo0JAKK9CY0JLQkNCd0J7QkiDQnNCY0JvQldCd0JrQngor0JjQktCQ0J3QntCSINCc0JjQm9CVCivQmNCS0JDQndCe0JIg0JzQmNCb0J7QoNCQ0JQKK9CY0JLQkNCd0J7QkiDQnNCY0KLQkAor0JjQktCQ0J3QntCSINCd0JjQmtCe0JvQkAor0JjQktCQ0J3QntCSINCe0JvQmNCS0JXQoNCQCivQmNCS0JDQndCe0JIg0J/QldCi0JDQoAor0JjQktCQ0J3QntCSINCh0JXQoNCT0JjQiNCVCivQmNCS0JDQndCe0JIg0KHQm9CQ0JLQmtCeCivQmNCS0JDQndCe0JIg0JLQldCg0JAKK9CY0JLQkNCd0J7QkiDQl9CU0KDQkNCS0JrQngor0JjQktCQ0J3QntCSINCX0J7QoNCQCivQmNCS0JDQndCe0JIg0JfQntCg0JjQptCQCivQmNCS0JDQndCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQmNCS0JDQndCe0JLQmNCLINCW0JjQmtCQCivQmNCS0JDQndCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQmNCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CY0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQCivQmNCS0JDQndCe0JLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CY0JLQkNCd0J7QktCY0Isg0JHQntCW0JAKK9CY0JLQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQmNCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQmNCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JjQktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CY0JLQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmNCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JjQktCQ0J3QntCS0JjQiyDQptCS0JXQiNCQCivQmNCS0JDQndCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQmNCS0JDQndCe0JLQmNCLINCU0JXQodCQCivQmNCS0JDQndCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JjQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQmNCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JjQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQmNCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CY0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JjQktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JjQktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmNCS0JDQndCe0JLQmNCLINCk0KDQkNCK0JAKK9CY0JLQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JjQktCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQmNCS0JDQndCe0JLQmNCLINCY0JLQkNCdINCU0KAKK9CY0JLQkNCd0J7QktCY0Isg0IjQkNCd0J7QqAor0JjQktCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9CY0JLQkNCd0J7QktCY0Isg0IjQntCg0JTQkNCdCivQmNCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0JrQntCS0JjQndCa0JAKK9CY0JLQkNCd0J7QktCY0Isg0JrQoNCh0KLQntCc0JjQoAor0JjQktCQ0J3QntCS0JjQiyDQmtCh0JXQndCY0IjQkAor0JjQktCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9CY0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQodCQ0JIKK9CY0JLQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9CY0JLQkNCd0J7QktCY0Isg0InQo9CU0JXQktCY0KIKK9CY0JLQkNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQmNCS0JDQndCe0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQmNCS0JDQndCe0JLQmNCLINCc0JDQoNCa0J4KK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnSDQodCj0JTQmNCI0JAKK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQotCQCivQmNCS0JDQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JjQiNCQCivQmNCS0JDQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCb0JrQngor0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JjQktCQ0J3QntCS0JjQiyDQnNCY0JvQo9CdCivQmNCS0JDQndCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQmNCS0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQmNCS0JDQndCe0JLQmNCLINCc0JjQoNCQCivQmNCS0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQmNCS0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9CY0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JjQktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmNCS0JDQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JjQktCQ0J3QntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JjQktCQ0J3QntCS0JjQiyDQndCV0JPQntCS0JDQnQor0JjQktCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CY0JLQkNCd0J7QktCY0Isg0J7QkdCg0JDQlAor0JjQktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQmNCS0JDQndCe0JLQmNCLINCf0JXQotCg0JAKK9CY0JLQkNCd0J7QktCY0Isg0KDQkNCo0JrQngor0JjQktCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JjQktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JjQktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmNCS0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQmNCS0JDQndCe0JLQmNCLINCh0JXQm9CY0JzQmNCgCivQmNCS0JDQndCe0JLQmNCLINCh0JjQnNCeCivQmNCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQmNCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JjQktCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmNCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0KHQotCQ0JzQldCdCivQmNCS0JDQndCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQmNCS0JDQndCe0JLQmNCLINCh0KLQkNCd0JrQkAor0JjQktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CY0JLQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQmNCS0JDQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0JjQktCQ0J3QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQmNCS0JDQndCe0JLQmNCLINCS0JXQm9CY0JHQntCgCivQmNCS0JDQndCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQmNCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JAKK9CY0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQkAor0JjQktCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmNCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CY0JLQkNCd0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JjQktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdINCU0JjQn9CbINCY0J3Qkwor0JjQktCQ0J3QntCS0JjQiyDQl9Ce0KDQkAor0JjQktCQ0J3QntCS0KHQmtCYINCC0J7QoNCC0JUKK9CY0JLQkNCd0J7QktCh0JrQmCDQkdCb0JDQk9Ce0IjQlQor0JjQktCQ0J3QntCS0KHQmtCYINCY0JvQmNCI0JAKK9CY0JLQkNCd0J7QktCh0JrQmCDQodCi0JDQndCQCivQmNCS0JDQotCe0JLQmNCLINCR0KDQkNCd0JrQngor0JjQktCV0JPQldCoINCQ0J3QkAor0JjQktCV0JPQldCoINCY0KjQotCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CY0JLQldCT0JXQqCDQm9CQ0KHQm9CeCivQmNCS0JXQmiDQktCb0JDQlNCY0JzQmNCgCivQmNCS0JXQotCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CY0JLQldCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JjQktCV0KLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JjQktCV0KLQmNCLINCU0KDQkNCT0JDQnQor0JjQktCV0KLQmNCLINCb0JDQl9CQCivQmNCS0JXQotCY0Isg0InQmNCJ0JDQndCQCivQmNCS0JXQotCY0Isg0JzQmNCb0J7QiNCa0J4KK9CY0JLQldCi0JjQiyDQoNCQ0JTQlSDQlNCgCivQmNCS0JXQotCY0Isg0KDQkNCU0JUg0JTQoAor0JjQktCV0KLQmNCLINCg0JDQlNCe0JLQkNCdCivQmNCS0JXQotCY0Isg0JLQkNCh0JAKK9CY0JLQldCi0JjQiyDQktCV0KHQndCQCivQmNCS0JXQl9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JLQldCX0JjQiyDQlNCg0JDQk9CeCivQmNCS0JXQl9CY0Isg0JPQntCI0JrQngor0JjQktCV0JfQmNCLINCc0JDQoNCa0J4g0JTQoAor0JjQktCV0JfQmNCLINCc0JjQm9CVCivQmNCS0JXQl9CY0Isg0JfQntCg0JDQnQor0JjQktCV0JfQmNCLINCX0JLQntCd0JrQngor0JjQktCY0KfQmNCLINCc0JjQoNCQCivQmNCS0JjQp9CY0Isg0J3QkNCU0JAKK9CY0JLQmNCn0JjQiy3QotCe0JzQmNCLINCR0JjQidCQ0J3QkAor0JjQktCY0Isg0JHQm9CQ0JPQntCc0JjQoAor0JjQktCY0Isg0JTQldCh0JDQndCa0JAKK9CY0JLQmNCLINCI0KPQm9CY0IjQkAor0JjQktCY0Isg0JzQldCb0JjQotCQCivQmNCS0JjQiyDQnNCY0KDQmtCeINCc0KAg0J/QpQor0JjQktCY0Isg0J/QldCi0JDQoCDQlNCY0J/QmyDQntCV0KYKK9CY0JLQmNCLINCg0JDQlNCVCivQmNCS0JjQiyDQodCi0J7QiNCQ0J0KK9CY0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CY0JLQmNCLINCS0JDQodCeCivQmNCS0JjQiyDQktCe0IjQmNCc0JjQoAor0JjQktCY0Isg0JfQm9CQ0KLQmtCeCivQmNCS0JrQntCSINCn0JXQlNCe0JzQmNCgCivQmNCS0JrQntCSINCW0JjQktCa0JAKK9CY0JLQmtCe0JIg0ILQntCg0ILQlQor0JjQktCa0J7QkiDQkdCe0KjQmtCeCivQmNCS0JrQntCSINCR0J7QoNCY0JLQntCICivQmNCS0JrQntCSINCU0JDQndCY0JvQngor0JjQktCa0J7QkiDQlNCe0JHQoNCY0JLQntCICivQmNCS0JrQntCSINCU0KPQqNCQ0J0KK9CY0JLQmtCe0JIg0JjQodCQCivQmNCS0JrQntCSINCY0JLQkNCdCivQmNCS0JrQntCSINCI0JXQm9CV0J3QkAor0JjQktCa0J7QkiDQiNCV0JvQldCd0JAKK9CY0JLQmtCe0JIg0JrQkNCi0JjQptCQCivQmNCS0JrQntCSINCa0JDQotCY0KbQkAor0JjQktCa0J7QkiDQmtCQ0KLQmNCm0JAKK9CY0JLQmtCe0JIg0JzQmNCb0JXQndCa0J4KK9CY0JLQmtCe0JIg0JzQmNCb0JjQptCQCivQmNCS0JrQntCSINCc0JjQm9Ce0JLQkNCdCivQmNCS0JrQntCSINCe0JvQk9CY0KbQkAor0JjQktCa0J7QkiDQn9CV0KLQkNCgCivQmNCS0JrQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9CY0JLQmtCe0JIg0KDQkNCU0J7QktCQ0J0KK9CY0JLQmtCe0JIg0KHQkNCS0JAKK9CY0JLQmtCe0JIg0KHQldCa0KPQm9CQCivQmNCS0JrQntCSINCh0JvQkNCS0JrQngor0JjQktCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQmNCS0JrQntCSINCh0JvQntCR0J7QlNCQ0J0KK9CY0JLQmtCe0JIg0KHQotCQ0J3QkAor0JjQktCa0J7QkiDQodCi0JDQndCY0KHQm9CQ0JLQkAor0JjQktCa0J7QkiDQodCi0JXQktCQ0J0KK9CY0JLQmtCe0JIg0KHQotCV0JLQkNCdCivQmNCS0JrQntCSINCh0KLQldCS0JDQnQor0JjQktCa0J7QkiDQo9Cg0J7QqAor0JjQktCa0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQmNCS0JrQntCS0JjQiyDQgtCj0KDQngor0JjQktCa0J7QktCY0Isg0JDQndCi0KPQnQor0JjQktCa0J7QktCY0Isg0JDQoNCh0JAKK9CY0JLQmtCe0JLQmNCLINCR0J7QltCQCivQmNCS0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CY0JLQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CY0JLQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CY0JLQmtCe0JLQmNCLINCU0JXQiNCQ0J0KK9CY0JLQmtCe0JLQmNCLINCU0JjQktCd0JAKK9CY0JLQmtCe0JLQmNCLINCU0KDQkNCT0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CY0JLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CY0JLQmtCe0JLQmNCLINCV0KHQotCV0KDQkAor0JjQktCa0J7QktCY0Isg0JPQo9Ch0KLQkNCSINCU0KAKK9CY0JLQmtCe0JLQmNCLLdCY0JLQkNCd0JTQldCa0JjQiyDQlNCQ0J3QmNCm0JAKK9CY0JLQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JjQktCa0J7QktCY0Isg0IjQntCS0JDQnQor0JjQktCa0J7QktCY0Isg0JrQntCS0JjQidCa0JAKK9CY0JLQmtCe0JLQmNCLLdCb0JDQl9CQ0KAg0KLQkNCi0IjQkNCd0JAg0JTQoAor0JjQktCa0J7QktCY0Isg0JvQo9Ca0JAKK9CY0JLQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQmNCS0JrQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0JjQktCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JjQktCa0J7QktCY0Isg0JzQmNCb0JXQndCi0JjQiNCVCivQmNCS0JrQntCS0JjQiyDQnNCY0JvQldCS0JAKK9CY0JLQmtCe0JLQmNCLINCc0JjQm9CVCivQmNCS0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CY0JLQmtCe0JLQmNCLINCc0JjQm9Ce0InQo9CRINCU0JjQn9CbINCY0J3Qkwor0JjQktCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CY0JLQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQmNCS0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JjQktCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQmNCS0JrQntCS0JjQiyDQndCQ0KLQkNCo0JAKK9CY0JLQmtCe0JLQmNCLINCd0JDQotCQ0KjQkAor0JjQktCa0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9CY0JLQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JjQktCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmNCS0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQmNCS0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JjQktCa0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIKK9CY0JLQmtCe0JLQmNCLINCg0JDQndCa0J4KK9CY0JLQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JjQktCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQmNCS0JrQntCS0JjQiyDQktCV0KDQkAor0JjQktCa0J7QktCY0Isg0JLQldCg0JAKK9CY0JLQmtCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JjQktCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JjQktCa0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQmNCS0JrQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0JjQktCa0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CY0JLQmtCe0JLQmNCLINCX0J7QoNCY0KbQkAor0JjQktCe0Kgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JLQntCoINCg0J7QlNCe0InQo9CRCivQmNCS0J7QqCDQktCe0IjQmNCh0JvQkNCSCivQmNCS0J7QqNCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CY0JLQntCo0JXQkiDQlNCj0KjQkNCdCivQmNCS0J7QqNCV0JIg0JjQm9CY0IjQkAor0JjQktCe0KjQldCSINCa0JDQotCQ0KDQmNCd0JAKK9CY0JLQntCo0JXQkiDQmtCe0KHQotCQCivQmNCS0J7QqNCV0JIg0JzQkNCg0JrQngor0JjQktCe0KjQldCSINCh0JvQkNCS0JrQngor0JjQktCe0KjQldCSINCS0J7QiNCY0KHQm9CQ0JIKK9CY0JLQntCo0JXQktCY0Isg0ILQo9Cg0J4KK9CY0JLQntCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CY0JLQntCo0JXQktCY0Isg0JTQkNCd0JjQptCQCivQmNCS0J7QqNCV0JLQmNCLINCT0J7QiNCa0J4KK9CY0JLQntCo0JXQktCY0Isg0JzQmNCb0JDQnQor0JjQktCe0KjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JjQktCe0KjQldCS0JjQiyDQodCQ0JLQkAor0JjQktCe0KjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmNCS0J7QqNCV0JLQmNCLINCX0J7QoNCQ0J0KK9CY0JLQntCS0JjQiyDQidCj0JHQmNCo0JAKK9CY0JLQntCS0JjQiyDQn9CV0KLQkNCgCivQmNCX0JHQoNCQ0JTQmNCLINCh0KLQldCS0JDQnQor0JjQl9CT0JDQoNCI0JDQnSDQnNCY0JvQmNCS0J7QiAor0IjQkNCo0KfQldCd0JrQntCSINCh0KLQkNCd0JAKK9CI0JDQqNCQ0KAg0KXQkNCh0JDQnQor0IjQkNCo0JDQoNCQ0JPQmNCLINCY0JLQkNCd0JrQkAor0IjQkNCo0JDQoNCQ0JPQmNCLINCX0JjQiNCeCivQiNCQ0KjQkNCg0JXQktCY0Isg0KXQo9Ch0JXQmNCdCivQiNCQ0KjQkNCg0JXQktCY0Isg0JzQo9Cl0JDQoNCV0JwKK9CI0JDQqNCQ0KDQldCS0JjQiyDQoNCQ0JzQngor0IjQkNCo0JDQoNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0JDQqNCQ0KDQmCDQj9CQ0KTQldCgCivQiNCQ0KjQkNCg0J7QkiDQqNCQ0JjQnwor0IjQkNCo0JjQiyDQlNCV0KHQkNCd0JrQkAor0IjQkNCo0JjQiyDQodCY0J3QmNCo0JAKK9CI0JDQqNCY0J3QodCa0Jgg0KDQo9CW0JAKK9CI0JDQqNCeINCQ0J3QkAor0IjQkNCo0J4g0IjQntCW0JXQpCDQlNCgCivQiNCQ0KjQniDQnNCY0JvQntCh0JDQkgor0IjQkNCo0J4g0JzQmNCg0J7QodCb0JDQktCQCivQiNCQ0KjQntCS0JjQiyDQk9Ce0IjQmtCeCivQiNCQ0IvQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQkNCL0JjQnNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCb0JXQmtCQ0KAKK9CI0JDQi9CY0JzQntCS0JjQiyDQkdCe0IjQmNCdCivQiNCQ0IvQmNCc0J7QktCY0Isg0IjQntCS0JAKK9CI0JDQi9CY0JzQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQkNCL0JjQnNCe0JLQmNCLINCc0JjQm9Ce0IjQmtCeCivQiNCQ0IvQmNCc0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0JDQi9CY0JzQntCS0JjQiyDQn9CV0KLQkNCgCivQiNCQ0IvQmNCc0J7QktCY0Isg0KHQotCV0JLQngor0IjQkNCL0JjQnNCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0JDQi9CY0JzQntCS0KHQmtCYINCc0J7QiNCh0JUKK9CI0JDQkdCb0JDQndCe0JIg0ILQo9Ca0JAKK9CI0JDQkdCb0JDQndCe0JIg0JTQoNCQ0JPQmNCm0JAKK9CI0JDQkdCb0JDQndCe0JIg0JjQk9CK0JDQotCY0IjQlQor0IjQkNCR0JvQkNCd0J7QkiDQiNCV0JvQldCd0JAKK9CI0JDQkdCb0JDQndCe0JIg0InQo9CR0J7QnNCY0KAKK9CI0JDQkdCb0JDQndCe0JIg0JzQmNCb0J7QoNCQ0JQg0JTQmNCf0Jsg0JjQndCTCivQiNCQ0JHQm9CQ0J3QntCSINCX0J7QoNCQCivQiNCQ0JHQm9CQ0J3QntCSINCX0J7QoNCQCivQiNCQ0JHQm9CQ0J3QntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0IjQkNCR0JvQkNCd0J7QktCY0Isg0KDQkNCi0JrQngor0IjQkNCm0JDQndCe0JLQmNCLINCW0JjQktCa0JAKK9CI0JDQptCQ0J3QntCS0JjQiyDQk9CQ0JHQoNCY0IjQldCb0JAKK9CI0JDQptCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQiNCQ0KbQmNCo0JjQnSDQkNCd0JrQkAor0IjQkNCm0JjQiyDQlNCQ0KDQmNCd0JrQkAor0IjQkNCm0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JDQk9CV0KAg0JDQndCQCivQiNCQ0JPQldCgINCc0JDQoNCY0J0KK9CI0JDQk9CV0KAg0JzQmNCl0JDQiNCb0J4KK9CI0JDQk9CV0KAg0J/QkNCS0JDQngor0IjQkNCT0JXQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JDQk9CV0KLQmNCLINCc0JjQm9Ce0KgKK9CI0JDQk9CV0KLQmNCLINCh0KLQldCS0JDQnQor0IjQkNCT0JXQotCY0Isg0JLQldCb0JjQnNCY0KAKK9CI0JDQk9CV0KLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0JDQk9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9CI0JDQk9Cb0JjQptCQINCR0KDQkNCd0JrQngor0IjQkNCT0JvQmNCm0JAg0KHQm9Ce0JHQntCU0JDQnQor0IjQkNCT0IrQmNCLINCU0KDQkNCT0JDQnQor0IjQkNCT0J7QlNCY0Isg0JDQndCC0JXQm9Ca0J4KK9CI0JDQk9Ce0JTQmNCLINCU0KPQqNCQ0J0KK9CI0JDQk9Ce0JTQmNCLINCc0JjQm9CY0KbQkAor0IjQkNCT0J7QlNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQkNCT0J7QlNCY0Isg0J/QldCi0JDQoAor0IjQkNCT0J7QlNCY0Isg0KDQkNCd0JrQngor0IjQkNCT0J7QlNCY0Isg0JLQldCJ0JrQngor0IjQkNCT0J7QlNCY0Isg0JLQm9CQ0JTQngor0IjQkNCT0KPQqNCiLdCQ0JrQmtCQ0JQg0JvQkNCU0JAKK9CI0JDQpdCI0JAg0KDQldCo0JDQlAor0IjQkNCl0KPQoNCQINCS0KPQmtCQ0KjQmNCdCivQiNCQ0IjQp9CQ0J3QmNCdINCR0J7QltCeCivQiNCQ0IjQp9CV0JLQmNCLINCQ0J3Qk9CV0JvQkAor0IjQkNCI0JDQk9CY0J0g0KDQkNCU0J7QktCQ0J0KK9CI0JDQiNCQ0JPQmNCdINCh0J/QkNCh0J7QiNCVCivQiNCQ0IjQkNCT0JjQnSDQl9Ce0KDQmNCm0JAKK9CI0JDQiNCY0Isg0ILQntCg0ILQlSDQlNCgCivQiNCQ0IjQmNCLINCC0J7QoNCC0JUKK9CI0JDQiNCY0Isg0JTQoNCQ0JPQkNCdCivQiNCQ0IjQmNCLINCY0JvQmNCI0JAKK9CI0JDQiNCY0Isg0JjQktCQ0J3QmtCQCivQiNCQ0IjQmNCLINCb0JDQl9CQ0KAKK9CI0JDQiNCY0Isg0JvQldCd0JrQkAor0IjQkNCI0JjQiyDQnNCY0JvQldCd0JAKK9CI0JDQiNCY0Isg0JzQmNCb0JjQptCQCivQiNCQ0IjQmNCLINCd0JjQmtCe0JvQkAor0IjQkNCI0JjQiyDQodCQ0JLQkAor0IjQkNCI0JjQiyDQodCi0JXQktCQ0J0KK9CI0JDQiNCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0IjQkNCI0JjQnSDQm9CQ0JTQmNCh0JvQkNCSCivQiNCQ0IjQmNCdINCc0JjQoNCI0JDQndCQCivQiNCQ0IjQmNCdINCX0JvQkNCi0JrQngor0IjQkNCa0KjQkCDQn9CY0KDQntCo0JrQkAor0IjQkNCa0KjQldCS0JDQpiDQlNCg0JDQk9CeCivQiNCQ0JrQqNCY0Isg0JbQkNCg0JrQngor0IjQkNCa0KjQmNCLINCC0J7QoNCC0JUKK9CI0JDQmtCo0JjQiyDQgtCe0KDQgtCVCivQiNCQ0JrQqNCY0Isg0ILQo9Cg0JAKK9CI0JDQmtCo0JjQiyDQkNCd0JAKK9CI0JDQmtCo0JjQiyDQkdCe0JPQlNCQ0J0KK9CI0JDQmtCo0JjQiyDQkdCe0JPQlNCQ0J0KK9CI0JDQmtCo0JjQiyDQkdCe0IjQkNCdCivQiNCQ0JrQqNCY0Isg0JHQoNCQ0J3QmtCeCivQiNCQ0JrQqNCY0Isg0JTQkNCd0JUKK9CI0JDQmtCo0JjQiyDQlNCQ0J3QlQor0IjQkNCa0KjQmNCLINCU0JDQndCVCivQiNCQ0JrQqNCY0Isg0JTQldCI0JDQnQor0IjQkNCa0KjQmNCLINCU0JzQmNCi0JDQoAor0IjQkNCa0KjQmNCLINCU0KDQkNCT0JDQnQor0IjQkNCa0KjQmNCLINCU0KPQqNCQ0J3QmtCQCivQiNCQ0JrQqNCY0Isg0JTQo9Co0JDQndCa0JAKK9CI0JDQmtCo0JjQiyDQlNCj0KjQkNCdCivQiNCQ0JrQqNCY0Isg0JTQo9Co0JDQnQor0IjQkNCa0KjQmNCLINCU0KPQqNCQ0J0KK9CI0JDQmtCo0JjQiyDQlNCj0KjQkNCdCivQiNCQ0JrQqNCY0Isg0JTQo9Co0JDQnQor0IjQkNCa0KjQmNCLINCU0KPQqNCa0J4KK9CI0JDQmtCo0JjQiyDQldCc0JjQmwor0IjQkNCa0KjQmNCLINCY0JvQmNCI0JAKK9CI0JDQmtCo0JjQiyDQmNCb0JjQiNCQCivQiNCQ0JrQqNCY0Isg0JjQktCY0KbQkAor0IjQkNCa0KjQmNCLINCY0JLQmNCm0JAKK9CI0JDQmtCo0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQiNCQ0JrQqNCY0Isg0IjQkNCh0JzQmNCd0JrQkAor0IjQkNCa0KjQmNCLINCI0JXQm9CV0J3QkAor0IjQkNCa0KjQmNCLINCI0J7QktCQ0J3QmtCQCivQiNCQ0JrQqNCY0Isg0IjQntCS0JDQnQor0IjQkNCa0KjQmNCLINCI0J7QktCQ0J0KK9CI0JDQmtCo0JjQiyDQmtCQ0KLQmNCm0JAKK9CI0JDQmtCo0JjQiyDQidCY0InQkAor0IjQkNCa0KjQmNCLINCJ0KPQkdCY0KHQkNCSCivQiNCQ0JrQqNCY0Isg0InQo9CR0J7QnNCY0KAKK9CI0JDQmtCo0JjQiyDQidCj0JHQntCc0JjQoAor0IjQkNCa0KjQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCQ0JrQqNCY0Isg0InQo9CR0J7QnNCY0KAKK9CI0JDQmtCo0JjQiyDQnNCQ0KDQmtCeCivQiNCQ0JrQqNCY0Isg0JzQkNCg0JrQngor0IjQkNCa0KjQmNCLINCc0JDQoNCa0J4KK9CI0JDQmtCo0JjQiyDQnNCY0IjQkNCiCivQiNCQ0JrQqNCY0Isg0JzQmNCb0JDQnQor0IjQkNCa0KjQmNCLINCc0JjQm9CQ0J0KK9CI0JDQmtCo0JjQiyDQnNCY0JvQldCd0JrQngor0IjQkNCa0KjQmNCLINCc0JjQm9CV0JLQkAor0IjQkNCa0KjQmNCLINCc0JjQm9Ce0KgKK9CI0JDQmtCo0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQkNCa0KjQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCQ0JrQqNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0JDQmtCo0JjQiyDQnNCY0KDQmtCeCivQiNCQ0JrQqNCY0Isg0J3QldCR0J7QiNCo0JAKK9CI0JDQmtCo0JjQiyDQndCV0JTQldCJ0JrQngor0IjQkNCa0KjQmNCLINCd0JXQndCQ0JQKK9CI0JDQmtCo0JjQiyDQn9CQ0JLQm9CVCivQiNCQ0JrQqNCY0Isg0J/QkNCS0JvQlQor0IjQkNCa0KjQmNCLINCf0JXQotCQ0KAKK9CI0JDQmtCo0JjQiyDQn9CV0KLQkNCgCivQiNCQ0JrQqNCY0Ist0J/QoNCe0JLQp9CYINCR0KDQkNCd0JrQkAor0IjQkNCa0KjQmNCLINCg0JDQlNCV0J3QmtCeCivQiNCQ0JrQqNCY0Isg0KDQkNCU0JUKK9CI0JDQmtCo0JjQiyDQoNCQ0JTQlQor0IjQkNCa0KjQmNCLINCg0JDQlNCY0KjQkAor0IjQkNCa0KjQmNCLINCg0JDQlNCe0IjQmtCeCivQiNCQ0JrQqNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0JDQmtCo0JjQiyDQoNCQ0JTQo9CdCivQiNCQ0JrQqNCY0Isg0KDQmNCh0KLQngor0IjQkNCa0KjQmNCLINCg0J7QodCQCivQiNCQ0JrQqNCY0Isg0KDQo9CW0JjQptCQCivQiNCQ0JrQqNCY0Isg0KDQo9CW0JjQptCQCivQiNCQ0JrQqNCY0Isg0KHQkNCS0JAKK9CI0JDQmtCo0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0JrQqNCY0Isg0KHQnNCY0InQkAor0IjQkNCa0KjQmNCLINCh0KLQldCS0JDQnQor0IjQkNCa0KjQmNCLINCh0JLQldCi0JrQngor0IjQkNCa0KjQmNCLINCh0JLQldCi0JvQkNCd0JAg0JTQmNCf0Jsg0J/QpQor0IjQkNCa0KjQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CI0JDQmtCo0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQiNCQ0JrQqNCY0Isg0JLQldCb0JjQnNCY0KAKK9CI0JDQmtCo0JjQiyDQktCV0KDQkAor0IjQkNCa0KjQmNCLINCS0JvQkNCU0JAKK9CI0JDQmtCo0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQiNCQ0JrQqNCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQkNCa0JDQkSDQlNCV0JbQlQor0IjQkNCa0JDQkSDQiNCe0JbQldCkCivQiNCQ0JrQkNCRINCf0JDQktCV0JsKK9CI0JDQmtCV0KjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JDQmtCV0KjQldCS0JjQiyDQndCY0JrQngor0IjQkNCa0JjQqNCQINCY0KjQotCS0JDQnQor0IjQkNCa0JjQiyDQgtCe0KDQgtCVCivQiNCQ0JrQmNCLINCU0JDQndCY0KbQkAor0IjQkNCa0JjQiyDQlNCQ0KDQkAor0IjQkNCa0JjQiyDQlNCV0KHQkNCd0JrQkAor0IjQkNCa0JjQiyDQnNCY0JvQkNCd0JrQkAor0IjQkNCa0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQkNCa0JjQiyDQndCY0JrQntCb0JAKK9CI0JDQmtCY0Isg0KHQotCV0JLQkNCdCivQiNCQ0JrQmNCLINCS0JjQlNCQCivQiNCQ0JrQmNCm0JAg0KfQldCU0J4KK9CI0JDQmtCY0KbQkCDQmNCb0JjQiNCQCivQiNCQ0JrQmNCc0J7QkiDQodCb0JDQktCa0J4g0JTQoCDQm9CV0JrQkNCgCivQiNCQ0JrQmNCc0J7QktCQLdCT0JDQl9CV0J/QntCS0JAg0IjQo9Cb0JrQkCDQlNCgCivQiNCQ0JrQmNCc0J7QktCh0JrQmCDQkdCb0JDQk9Ce0IgKK9CI0JDQmtCY0JzQntCS0KHQmtCYINCR0J7Qk9Ce0KHQm9CQ0JIKK9CI0JDQmtCY0JzQntCS0KHQmtCYINCR0J7QoNCa0J4KK9CI0JDQmtCY0JzQntCS0KHQmtCYINCU0JDQndCVCivQiNCQ0JrQm9CY0Isg0JjQktCQ0J0KK9CI0JDQmtCe0JEg0IjQntCo0JrQkAor0IjQkNCa0J7QkSDQiNCe0JbQldCkCivQiNCQ0JrQntCRINCb0JDQiNCe0KgKK9CI0JDQmtCe0JHQkNCmINCC0KPQoNCC0JjQptCQCivQiNCQ0JrQntCR0Jgg0JHQntCg0JjQoQor0IjQkNCa0J7QkdCYINCi0JDQotCI0JDQndCQCivQiNCQ0JrQntCR0Jgg0JLQmNCb0JzQntCoCivQiNCQ0JrQntCR0J7QktCY0Isg0KTQoNCQ0IrQngor0IjQkNCa0J7QkdChINCY0KjQotCS0JDQnQor0IjQkNCa0J7QndCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSINCU0KAKK9CI0JDQmtCe0J3QmNCLINCI0JDQodCc0JjQndCQCivQiNCQ0JrQntCd0JjQiyDQnNCY0JvQkNCdINCU0JjQn9CbINCe0JXQpgor0IjQkNCa0J7QndCY0Isg0KDQkNCU0JzQmNCb0JAKK9CI0JDQmtCe0J/Qp9CV0JLQmNCLINCR0KDQkNCd0JrQkAor0IjQkNCa0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQiNCQ0JrQntCf0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQkNCa0J7Qn9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JDQmtCe0KLQmNCdINCW0JjQktCa0J4KK9CI0JDQmtCe0KLQmNCdINCa0J7QodCi0JAKK9CI0JDQmtCe0KLQmNCdINCf0JvQldCc0JXQndCa0JAKK9CI0JDQmtCe0JIg0KHQkNCb0JDQnNCj0J0KK9CI0JDQmtCe0JLQkNCmINCY0JLQkNCdCivQiNCQ0JrQntCS0JjQiyDQoNCQ0JTQlQor0IjQkNCa0J7QktCJ0JXQkiDQltCQ0KDQmtCeCivQiNCQ0JrQntCS0InQldCSINCC0KPQoNCQCivQiNCQ0JrQntCS0InQldCSINCC0KPQoNCY0KbQkAor0IjQkNCa0J7QktCJ0JXQkiDQkNCb0JXQmtCh0JXQiAor0IjQkNCa0J7QktCJ0JXQkiDQlNCQ0J3QmNCm0JAKK9CI0JDQmtCe0JLQidCV0JIg0JTQoNCQ0JPQkNCdCivQiNCQ0JrQntCS0InQldCSINCU0KPQqNCQ0J0KK9CI0JDQmtCe0JLQidCV0JIg0JjQktCQ0J0KK9CI0JDQmtCe0JLQidCV0JIg0IjQldCk0KDQldCcCivQiNCQ0JrQntCS0InQldCSINCa0JDQotCQCivQiNCQ0JrQntCS0InQldCSINCa0J7QodCi0JAKK9CI0JDQmtCe0JLQidCV0JIg0JrQoNCY0KHQotCY0KTQntCgCivQiNCQ0JrQntCS0InQldCSINCc0JDQoNCY0J3QkAor0IjQkNCa0J7QktCJ0JXQkiDQnNCY0JvQntCoCivQiNCQ0JrQntCS0InQldCSINCc0JjQm9Ce0KgKK9CI0JDQmtCe0JLQidCV0JIg0JzQmNCg0J7QodCb0JDQkgor0IjQkNCa0J7QktCJ0JXQkiDQoNCQ0JTQntCS0JDQnQor0IjQkNCa0J7QktCJ0JXQkiDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0JrQntCS0InQldCSINCh0JLQldCi0J7Ql9CQ0KAKK9CI0JDQmtCe0JLQidCV0JIg0JLQm9CQ0JTQkAor0IjQkNCa0J7QktCJ0JXQkiDQl9Cb0JDQotCe0IjQlQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JbQmNCS0JDQnQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCC0J7QoNCC0JUKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCC0J7QoNCC0J4KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCQ0JrQntCS0InQldCS0JjQiyDQkNCd0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCR0J7QltCQ0J3QkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JHQntCT0JTQkNCdCivQiNCQ0JrQntCS0InQldCS0JjQiyDQkdCe0KDQmNCo0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCR0KDQkNCd0JrQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JTQkNCc0IjQkNCdCivQiNCQ0JrQntCS0InQldCS0JjQiyDQlNCQ0JzQiNCQ0J0KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCU0JjQktCd0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQiNCQ0JrQntCS0InQldCS0JjQiyDQldCc0JjQm9CY0IjQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JPQntCI0JrQngor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JjQk9CK0JDQogor0IjQkNCa0J7QktCJ0JXQktCY0Isg0IjQkNCK0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCI0J7QodCeCivQiNCQ0JrQntCS0InQldCS0JjQiyDQiNCe0JLQkNCdCivQiNCQ0JrQntCS0InQldCS0JjQiyDQiNCe0JLQkNCdCivQiNCQ0JrQntCS0InQldCS0JjQiyDQiNCe0JLQngor0IjQkNCa0J7QktCJ0JXQktCY0Isg0IjQntCS0J4KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCb0JDQl9CQ0KAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0InQo9CR0JjQndCa0J4KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCb0KPQmtCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCQ0KDQmtCeCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0JvQkNCd0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQm9CV0J3QkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JzQmNCb0JjQiwor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JzQmNCb0JjQptCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQm9CY0JLQntCIINCc0KAg0J/QpQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JzQmNCJ0JDQndCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0JvQntCoCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0JvQntCS0JDQnQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JzQmNCb0KPQotCY0J0KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0KDQmtCeCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCQ0JrQntCS0InQldCS0JjQiyDQnNCY0KLQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQntCR0KDQkNCUCivQiNCQ0JrQntCS0InQldCS0JjQiyDQn9CQ0IjQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0KDQkNCU0JjQqNCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0KDQkNCU0J7QiNCa0J4KK9CI0JDQmtCe0JLQidCV0JLQmNCLINCh0JDQktCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQodCY0JzQngor0IjQkNCa0J7QktCJ0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0KHQntCK0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCh0KLQldCS0JDQnQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0KLQkNCi0IjQkNCd0JAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCS0JDQodCQCivQiNCQ0JrQntCS0InQldCS0JjQiyDQktCQ0KHQkAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JLQmNCa0KLQntCgCivQiNCQ0JrQntCS0InQldCS0JjQiyDQktCY0JrQotCe0KAKK9CI0JDQmtCe0JLQidCV0JLQmNCLINCS0JjQmtCi0J7QoAor0IjQkNCa0J7QktCJ0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9CI0JDQmtCe0JLQntCS0JjQiyDQlNCj0KjQkNCdCivQiNCQ0JrQo9CoINCc0JjQoNCI0JDQndCQCivQiNCQ0JrQo9CR0JXQpiDQgtCj0KDQkAor0IjQkNCa0KPQkdCV0KYg0JvQkNCU0JjQodCb0JDQkgor0IjQkNCc0JAg0J3QkNCU0JAKK9CI0JDQnNCR0J7QoCDQkNCd0JTQoNCV0JAKK9CI0JDQnNCR0J7QoCDQlNCQ0J3QmNCV0JvQkAor0IjQkNCc0JHQntCgINCY0JzQoNCVCivQiNCQ0JzQkdCe0KAg0JzQmNCl0JDQiQor0IjQkNCc0JHQoNCj0KjQmNCLINCk0KDQkNCK0J4KK9CI0JDQnNCY0J3QkCDQnNCY0JvQntCS0JDQnQor0IjQkNCc0JjQndCQINCg0JDQotCa0J4KK9CI0JDQnNCg0JjQmiDQgtCe0KDQgtCVCivQiNCQ0JzQoNCY0Jog0IjQldCb0JXQndCQCivQiNCQ0JzQoNCY0Jog0InQo9CR0JjQptCQCivQiNCQ0JzQoNCY0Jog0J7QotCeCivQiNCQ0J3Qp9CQINCU0JXQiNCQ0J0g0JTQoAor0IjQkNCd0KfQkCDQmtCe0KHQotCQINCU0KAKK9CI0JDQndCn0JAg0InQo9CR0JjQptCQCivQiNCQ0J3Qp9CY0Isg0JHQmNCJ0JDQndCQCivQiNCQ0J3Qp9CY0Isg0JHQntCW0JDQndCQCivQiNCQ0J3Qp9CY0Isg0JHQntCT0JTQkNCdCivQiNCQ0J3Qp9CY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCQ0J3Qp9CY0Isg0JTQoNCQ0JPQmNCK0JAKK9CI0JDQndCn0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0IjQkNCd0KfQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQkNCd0KfQmNCLINCU0KPQqNCQ0J0KK9CI0JDQndCn0JjQiyDQlNCj0KjQkNCdCivQiNCQ0J3Qp9CY0Isg0JPQntCg0JTQkNCd0JAKK9CI0JDQndCn0JjQiyDQk9Ce0KDQmNCm0JAKK9CI0JDQndCn0JjQiyDQiNCV0KDQntCh0JjQnAor0IjQkNCd0KfQmNCLINCJ0KPQkdCY0KbQkAor0IjQkNCd0KfQmNCLINCc0JjQm9Ce0KgKK9CI0JDQndCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCQ0J3Qp9CY0Isg0JzQm9CQ0JTQldCdCivQiNCQ0J3Qp9CY0Isg0J3QmNCa0J7Qm9CQCivQiNCQ0J3Qp9CY0Isg0J/QldCg0JAKK9CI0JDQndCn0JjQiyDQn9CV0KLQkNCgCivQiNCQ0J3Qp9CY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0JDQndCn0JjQiyDQodCQ0JLQkAor0IjQkNCd0KfQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0IjQkNCd0KfQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0IjQkNCd0KfQmNCLINCi0JjQpdCe0JzQmNCgCivQiNCQ0J3Qp9CY0Isg0KLQmNCd0JrQkAor0IjQkNCd0KfQmNCLINCS0JXQm9CY0JHQntCgCivQiNCQ0J3Qp9CY0Isg0JLQmNCd0JrQkAor0IjQkNCd0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JDQndCn0JjQiyDQktCb0JDQodCi0JAKK9CI0JDQndCn0KPQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JDQndCn0KPQoNCY0Isg0JTQkNCg0JjQndCa0JAKK9CI0JDQndCn0KPQoNCY0Isg0JTQo9Co0JDQnQor0IjQkNCd0KfQo9Cg0JjQiyDQiNCe0JLQkNCdCivQiNCQ0J3Qp9Cj0KDQmNCLINCb0JDQl9CQ0KAKK9CI0JDQndCn0KPQoNCY0Isg0JvQldCd0JrQkAor0IjQkNCd0KfQo9Cg0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IjQkNCd0KfQo9Cg0JjQiyDQodCQ0JLQkAor0IjQkNCd0JbQldCa0J7QktCY0Isg0JzQmNCb0JXQktCa0JAKK9CI0JDQndCW0JXQmtCe0JLQmNCLINCe0JvQk9CQCivQiNCQ0J3QltCV0Ikg0JDQndCi0J7QnQor0IjQkNCd0JDQp9CV0Jog0ILQntCg0ILQlQor0IjQkNCd0JDQp9CV0Jog0JrQkNCi0JjQptCQCivQiNCQ0J3QkNCn0JrQntCS0JjQiyDQodCi0J7QmNCbCivQiNCQ0J3QkNCLINCI0JDQndCe0KgKK9CI0JDQndCQ0Isg0JrQkNCg0J7QiQor0IjQkNCd0KbQmNCLINCR0JvQkNCT0J7QiNCVCivQiNCQ0J3QptCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CI0JDQndCU0KDQmNCLINCC0KPQoNCY0KbQkAor0IjQkNCd0JTQoNCY0Isg0JHQntCT0JTQkNCdCivQiNCQ0J3QlNCg0JjQiyDQiNCQ0J3QlNCg0JjQiNCQCivQiNCQ0J3QlNCg0JjQiyDQnNCQ0KDQmNCd0JrQngor0IjQkNCd0JTQoNCY0Isg0JzQkNCg0JrQngor0IjQkNCd0JTQoNCY0Isg0JzQkNCg0JrQngor0IjQkNCd0JTQoNCY0Isg0JzQmNCL0J4KK9CI0JDQndCU0KDQmNCLINCc0JjQm9CV0J3QkAor0IjQkNCd0JTQoNCY0Isg0JzQmNCb0JjQndCQCivQiNCQ0J3QlNCg0JjQiyDQnNCY0JvQmtCQCivQiNCQ0J3QlNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQkNCd0JTQoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0JDQndCU0KDQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0JDQndCU0KDQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0JDQndCU0KDQmNCLINCc0JjQotCQ0KAKK9CI0JDQndCU0KDQmNCLINCc0J7QnNCn0JjQm9CeCivQiNCQ0J3QlNCg0JjQiyDQndCV0JTQldCJ0JrQngor0IjQkNCd0JTQoNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0JDQndCU0KDQmNCLINCg0JDQotCa0J4KK9CI0JDQndCU0KDQmNCLINCg0JjQodCi0J4KK9CI0JDQndCU0KDQmNCLINCh0JjQnNCeCivQiNCQ0J3QlNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0J3QlNCg0JjQiyDQodCg0JXQotCV0J0KK9CI0JDQndCU0KDQmNCLINCh0KLQkNCd0JrQngor0IjQkNCd0JTQoNCY0Isg0KHQotCQ0J3QmtCeCivQiNCQ0J3QlNCg0JjQiyDQodCi0JDQndCa0J4KK9CI0JDQndCU0KDQmNCLINCj0JPQidCV0KjQkAor0IjQkNCd0JTQoNCY0Isg0JLQmNCU0JAKK9CI0JDQndCU0KDQmNCLINCS0JjQndCa0JAKK9CI0JDQndCU0KDQmNCLINCX0J7QoNCQ0J0KK9CI0JDQndCU0KDQmNCLINCX0J7QoNCQ0J0KK9CI0JDQndCV0Kgg0J3QldCS0JXQnQor0IjQkNCd0JXQk9CQINCh0J3QldCW0JDQndCQCivQiNCQ0J3QldCSINCR0JvQkNCT0J7QiNCVINCU0JjQn9CbINCY0J3Qkwor0IjQkNCd0JXQktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQkNCd0JjQp9CY0Isg0JHQm9CQ0JbQngor0IjQkNCd0JjQp9CY0Isg0JHQntCW0JAKK9CI0JDQndCY0KfQmNCLINCI0JXQm9CV0J3QkAor0IjQkNCd0JjQp9CY0Isg0JzQmNCb0JXQktCQCivQiNCQ0J3QmNCn0JjQiyDQnNCY0KDQmtCeCivQiNCQ0J3QmNCn0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQiNCQ0J3QmNCn0JjQiyDQodCi0JXQktCeCivQiNCQ0J3QmNCLINCn0JDQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9CI0JDQndCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CI0JDQndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JDQndCY0Isg0JDQndCC0JXQm9Ca0J4KK9CI0JDQndCY0Isg0JTQo9Co0JDQnQor0IjQkNCd0JjQiyDQlNCj0KjQmtCeCivQiNCQ0J3QmNCLLdCl0JjQm9CiINCT0J7QoNCU0JDQndCQCivQiNCQ0J3QmNCLINCY0KDQldCd0JAKK9CI0JDQndCY0Isg0JjQktCQ0J0g0JTQoAor0IjQkNCd0JjQiyDQnNCY0JvQmNCh0JDQkgor0IjQkNCd0JjQiyDQndCQ0JTQkAor0IjQkNCd0JjQiyDQoNCQ0JTQntCI0JrQkAor0IjQkNCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0J3QmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JDQndCY0IvQmNCI0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0JDQndCY0IvQmNCI0JXQktCY0Isg0JzQmNCb0J7QqAor0IjQkNCd0JjQi9CY0IjQldCS0JjQiyDQnNCY0KDQmtCeCivQiNCQ0J3QmNCL0JjQiNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQiNCQ0J3QmNCL0JjQiNCV0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQiNCQ0J3QmNCL0JjQiNCV0JLQmNCLINCe0JfQoNCV0J3QmtCQCivQiNCQ0J3QmNCL0JjQiNCV0JLQmNCLINCg0JDQotCa0J4KK9CI0JDQndCY0IvQmNCI0JXQktCY0Isg0KHQntCk0JjQiNCQCivQiNCQ0J3QmNCL0JjQiNCV0JLQmNCLINCS0JjQotCe0JzQmNCgCivQiNCQ0J3QmNCL0JjQnSDQkNCd0JPQldCb0JjQndCQCivQiNCQ0J3QmNCL0JjQnSDQmNCb0JjQiNCQCivQiNCQ0J3QmNCm0JrQmCDQodCi0JDQndCY0JzQmNCgCivQiNCQ0J3QmNCaINCk0JXQoNCV0J3Qpgor0IjQkNCK0JDQndCY0J0g0JHQoNCQ0J3QmtCeCivQiNCQ0IrQkNCd0JjQnSDQodCY0JzQngor0IjQkNCK0JDQotCe0JLQmNCLINCU0JXQiNCQ0J0KK9CI0JDQitCQ0KLQntCS0JjQiyDQk9Ce0KDQmNCm0JAKK9CI0JDQitCQ0KLQntCS0JjQiyDQnNCQ0J3QlQor0IjQkNCK0JDQotCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0JDQitCQ0KLQntCS0JjQiyDQnNCY0KDQmtCeCivQiNCQ0IrQkNCi0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9CI0JDQitCQ0KLQntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0JDQitCQ0KLQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0IjQkNCK0JDQotCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQiNCQ0IrQkNCi0J7QktCY0Isg0JLQldCg0JAKK9CI0JDQitCV0KLQntCSINCg0JDQlNCQCivQiNCQ0IrQldCi0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQiNCQ0IrQldCi0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9CI0JDQitCV0KLQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0IjQkNCK0JXQotCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQitCV0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQkNCK0JXQktCY0Isg0JrQodCV0J3QmNCI0JAKK9CI0JDQitCV0JLQmNCLINCX0J7QoNCQ0J0KK9CI0JDQitCV0JLQmNCLINCX0J7QoNCQ0J0KK9CI0JDQitCY0KfQmNCLINCh0JjQnNCeCivQiNCQ0IrQmNCoINCI0JXQm9CY0KbQkAor0IjQkNCK0JjQiyDQp9CV0JTQntCc0JjQoAor0IjQkNCK0JjQiyDQltCV0InQmtCeCivQiNCQ0IrQmNCLINCW0JjQktCa0JAKK9CI0JDQitCY0Isg0JbQmNCS0JrQngor0IjQkNCK0JjQiyDQgtCe0KDQgtCVINCU0KAKK9CI0JDQitCY0Isg0JHQntCo0JrQngor0IjQkNCK0JjQiyDQlNCQ0J3QmNCm0JAKK9CI0JDQitCY0Isg0JTQoNCQ0JPQntCc0JjQoCDQlNCY0J/QmyDQntCV0KYKK9CI0JDQitCY0Isg0JjQm9CY0IjQkAor0IjQkNCK0JjQiyDQiNCV0JvQkAor0IjQkNCK0JjQiyDQiNCV0JLQoNCV0JwKK9CI0JDQitCY0Isg0IjQldCS0KLQngor0IjQkNCK0JjQiyDQiNCe0JLQkNCdCivQiNCQ0IrQmNCLINCI0J7QktCeCivQiNCQ0IrQmNCLINCI0J7QktCeCivQiNCQ0IrQmNCLINCI0J7QktCeCivQiNCQ0IrQmNCLINCa0KHQldCd0JjQiNCQCivQiNCQ0IrQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCQ0IrQmNCLINCb0KPQmtCQCivQiNCQ0IrQmNCLINCc0JDQoNCY0IjQkAor0IjQkNCK0JjQiyDQnNCQ0KDQmtCeCivQiNCQ0IrQmNCLINCc0JjQm9CY0KbQkAor0IjQkNCK0JjQiyDQnNCY0JvQmNCS0J7QiAor0IjQkNCK0JjQiyDQnNCY0JvQmtCQCivQiNCQ0IrQmNCLINCc0JjQm9Ce0JzQmNCgCivQiNCQ0IrQmNCLINCc0JvQkNCU0JXQnQor0IjQkNCK0JjQiyDQndCQ0KLQkNCo0JAKK9CI0JDQitCY0Isg0J3QldCR0J7QiNCo0JAKK9CI0JDQitCY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0JDQitCY0Isg0KHQkNCS0J4KK9CI0JDQitCY0Isg0KHQotCV0JLQkNCdCivQiNCQ0IrQmNCLINCS0JjQotCe0JzQmNCgCivQiNCQ0IrQmNCLINCS0J7QiNCY0KHQm9CQ0JIg0JzQoAor0IjQkNCK0JjQiyDQktCe0IjQmtCeCivQiNCQ0IrQmNCLINCS0KPQmtCe0KLQkAor0IjQkNCK0JjQnSDQkdCe0JPQntCJ0KPQkQor0IjQkNCK0JjQnSDQlNCQ0JzQiNCQ0J0KK9CI0JDQitCY0J0g0JvQkNCX0JDQoAor0IjQkNCK0JjQnSDQnNCY0JvQmNCS0J7QiAor0IjQkNCK0JjQnSDQoNCQ0JTQmNCS0J7QiAor0IjQkNCK0JjQnSDQodCd0JXQltCQ0J3QkAor0IjQkNCK0J7QqCDQl9Ce0KDQkNCdCivQiNCQ0IrQntCo0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCQ0IrQntCo0JXQktCY0Isg0JzQmNCb0JjQptCQCivQiNCQ0IrQntCo0JXQktCY0Isg0KHQotCV0JLQkNCd0JrQkAor0IjQkNCK0KPQqNCV0JLQmNCLINCR0J7QodCY0InQmtCQCivQiNCQ0IrQo9Co0JXQktCY0Isg0JPQntCI0JrQngor0IjQkNCK0KPQqNCV0JLQmNCLINCI0J7QmtCY0KbQkAor0IjQkNCK0KPQqNCV0JLQmNCLINCc0JjQoNCQCivQiNCQ0IrQo9Co0JXQktCY0Isg0J3QldCU0JXQidCa0J4KK9CI0JDQitCj0KjQldCS0JjQiyDQndCV0JTQldCJ0JrQngor0IjQkNCK0KPQqNCV0JLQmNCLINCh0KLQntCI0JDQnQor0IjQkNCd0JrQkCDQqNCQ0J3QlNCe0KAKK9CI0JDQndCa0JAg0JjQktCQ0J0KK9CI0JDQndCa0JDQiiDQktCb0JDQlNCeCivQiNCQ0J3QmtCY0Isg0JrQoNCY0KHQotCY0J3QkAor0IjQkNCd0JrQniDQiNCQ0J3QntCoCivQiNCQ0J3QmtCe0JIg0JHQntCg0JjQodCb0JDQkgor0IjQkNCd0JrQntCSINCR0J7QoNCY0KHQm9CQ0JIKK9CI0JDQndCa0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQiNCQ0J3QmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCQ0J3QmtCe0JIg0JTQoNCQ0JPQmNCm0JAKK9CI0JDQndCa0J7QkiDQlNCj0KjQkNCdCivQiNCQ0J3QmtCe0JIg0JjQktCQ0J0KK9CI0JDQndCa0J7QkiDQiNCV0JvQmNCm0JAKK9CI0JDQndCa0J7QkiDQiNCe0JLQkNCdCivQiNCQ0J3QmtCe0JIg0IjQntCS0JjQptCQCivQiNCQ0J3QmtCe0JIg0JzQmNCb0JDQnQor0IjQkNCd0JrQntCSINCc0JjQm9CY0IjQkNCd0JAKK9CI0JDQndCa0J7QkiDQnNCY0J7QnNCY0KAKK9CI0JDQndCa0J7QkiDQnNCY0KLQkAor0IjQkNCd0JrQntCSINCc0JjQotCa0J4KK9CI0JDQndCa0J7QkiDQndCQ0JTQkAor0IjQkNCd0JrQntCSINCd0JXQlNCV0InQmtCeCivQiNCQ0J3QmtCe0JIg0J3QmNCa0J7Qm9CQCivQiNCQ0J3QmtCe0JIg0J3QmNCa0J7Qm9CQCivQiNCQ0J3QmtCe0JIg0J3QntCS0JrQkAor0IjQkNCd0JrQntCSINCf0KDQldCU0KDQkNCTCivQiNCQ0J3QmtCe0JIg0KDQkNCU0JjQktCe0IgKK9CI0JDQndCa0J7QkiDQoNCQ0JTQntCh0JvQkNCS0JAKK9CI0JDQndCa0J7QkiDQoNCQ0J3QgtCV0JsKK9CI0JDQndCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0J3QmtCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0IjQkNCd0JrQntCSINCh0JzQmNCJ0JrQkAor0IjQkNCd0JrQntCSINCh0J/QkNCh0J7QiNCQCivQiNCQ0J3QmtCe0JIg0KHQoNCV0JTQntCI0JUKK9CI0JDQndCa0J7QkiDQotCY0KXQntCc0JjQoAor0IjQkNCd0JrQntCSINCS0JXQoNCQCivQiNCQ0J3QmtCe0JIg0JfQkNCT0J7QoNCa0JAg0JTQoAor0IjQkNCd0JrQntCS0JjQiyDQp9CQ0KHQm9CQ0JIKK9CI0JDQndCa0J7QktCY0Isg0KfQldCU0J4KK9CI0JDQndCa0J7QktCY0Isg0KfQldCU0J4KK9CI0JDQndCa0J7QktCY0Isg0JbQkNCg0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CI0JDQndCa0J7QktCY0Isg0JbQkNCg0JrQngor0IjQkNCd0JrQntCS0JjQiyDQltCY0JLQmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQiNCQ0J3QmtCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQiNCQ0J3QmtCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQiNCQ0J3QmtCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0JDQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0IjQkNCd0JrQntCS0JjQiyDQgtCj0KDQgtCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQgtCj0KDQkAor0IjQkNCd0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQkNCd0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQkNCd0JrQntCS0JjQiyDQkNCd0JAKK9CI0JDQndCa0J7QktCY0Isg0JDQndCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQkNCd0JrQkAor0IjQkNCd0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCR0J7QqNCa0J4KK9CI0JDQndCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CI0JDQndCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9CI0JDQndCa0J7QktCY0Isg0JHQntCW0J4KK9CI0JDQndCa0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9CI0JDQndCa0J7QktCY0Isg0JHQntCg0JjQktCe0Igg0JTQoCDQm9CV0JrQkNCgCivQiNCQ0J3QmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0IjQkNCd0JrQntCS0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9CI0JDQndCa0J7QktCY0Isg0JTQkNCg0JAKK9CI0JDQndCa0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCQ0J3QmtCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0IjQkNCd0JrQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CI0JDQndCa0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQiNCQ0J3QmtCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IgKK9CI0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CI0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9CI0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0IjQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CI0JDQndCa0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CI0JDQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCU0KPQqNCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IjQkNCd0JrQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IjQkNCd0JrQntCS0JjQiyDQpdCg0JjQodCi0JjQktCe0IjQlQor0IjQkNCd0JrQntCS0JjQiyDQmNCT0IrQkNCiCivQiNCQ0J3QmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQiNCe0KDQlNCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0IjQntCS0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0IjQntCS0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQiNCQ0J3QmtCe0JLQmNCLINCa0JDQm9Cc0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CI0JDQndCa0J7QktCY0Isg0JrQkNCb0JzQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCa0JDQotCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQmtCe0JLQmNCJ0JrQkAor0IjQkNCd0JrQntCS0JjQiyDQmtCg0KHQotCQCivQiNCQ0J3QmtCe0JLQmNCLLdCa0KPQl9Cc0JDQndCn0JXQkiDQntCb0JjQktCV0KDQkAor0IjQkNCd0JrQntCS0JjQiyDQm9CQ0KHQm9CeCivQiNCQ0J3QmtCe0JLQmNCLINCb0JDQodCb0J4KK9CI0JDQndCa0J7QktCY0Isg0JvQkNCX0JDQoAor0IjQkNCd0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQiNCQ0J3QmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0IjQkNCd0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CI0JDQndCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQiNCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0IjQkNCd0JrQntCS0JjQiyDQnNCQ0KDQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0JDQndCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQiNCQ0J3QmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0JDQndCa0J7QktCY0Isg0JzQkNCg0JjQndCQCivQiNCQ0J3QmtCe0JLQmNCLINCc0JDQoNCa0J4KK9CI0JDQndCa0J7QktCY0Isg0JzQldCb0JDQndCY0IjQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0IvQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0IvQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CI0JDQndCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQiNCQ0J3QmtCe0JLQmNCLINCc0JjQm9CY0IjQkNCd0JAKK9CI0JDQndCa0J7QktCY0Isg0JzQmNCb0JjQndCa0J4KK9CI0JDQndCa0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9CI0JDQndCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCI0JUKK9CI0JDQndCa0J7QktCY0Isg0JzQmNCb0J7QiNCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IjQkNCd0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IjQkNCd0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IjQkNCd0JrQntCS0JjQiyDQnNCY0KDQntCJ0KPQkQor0IjQkNCd0JrQntCS0JjQiyDQnNCY0KLQkNCgCivQiNCQ0J3QmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0IjQkNCd0JrQntCS0JjQiy3QnNCg0JrQmNCLINCX0J7QoNCQINCU0JjQn9CbINCY0J3Qkwor0IjQkNCd0JrQntCS0JjQiyDQndCQ0JTQkAor0IjQkNCd0JrQntCS0JjQiyDQndCQ0JTQkAor0IjQkNCd0JrQntCS0JjQiyDQndCQ0KHQotCQCivQiNCQ0J3QmtCe0JLQmNCLINCd0JXQndCQ0JQKK9CI0JDQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCQ0J3QmtCe0JLQmNCLINCe0JHQoNCQ0JQKK9CI0JDQndCa0J7QktCY0Isg0J/QkNCS0JvQlQor0IjQkNCd0JrQntCS0JjQiyDQn9CQ0JLQm9CVCivQiNCQ0J3QmtCe0JLQmNCLINCf0JDQktCb0JUKK9CI0JDQndCa0J7QktCY0Isg0J/QldCi0JDQoAor0IjQkNCd0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQiNCQ0J3QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0JDQndCa0J7QktCY0Isg0J/QoNCS0J7QodCb0JDQkgor0IjQkNCd0JrQntCS0JjQiyDQn9Cg0JLQntCh0JvQkNCSCivQiNCQ0J3QmtCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CI0JDQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CI0JDQndCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0IjQkNCd0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQiNCQ0J3QmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCg0JDQiNCa0J4KK9CI0JDQndCa0J7QktCY0Isg0KDQkNCI0JrQngor0IjQkNCd0JrQntCS0JjQiyDQoNCQ0J3QmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCg0JDQotCa0J4KK9CI0JDQndCa0J7QktCY0Isg0KDQntCh0JAKK9CI0JDQndCa0J7QktCY0Isg0KDQo9CW0JAKK9CI0JDQndCa0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CI0JDQndCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0IjQkNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCh0J7QpNCY0IjQkAor0IjQkNCd0JrQntCS0JjQiyDQodCf0JDQodCQCivQiNCQ0J3QmtCe0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQiNCQ0J3QmtCe0JLQmNCLINCh0J/QntCc0JXQndCa0JAKK9CI0JDQndCa0J7QktCY0Isg0KHQoNCR0J7QidCj0JEKK9CI0JDQndCa0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQiNCQ0J3QmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9CI0JDQndCa0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQiNCQ0J3QmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CI0JDQndCa0J7QktCY0Isg0KLQmNCR0J7QoAor0IjQkNCd0JrQntCS0JjQiyDQotCe0JTQntCgCivQiNCQ0J3QmtCe0JLQmNCLINCi0J7QlNCe0KAKK9CI0JDQndCa0J7QktCY0Isg0KLQntCU0J7QoAor0IjQkNCd0JrQntCS0JjQiyDQktCV0KHQndCQCivQiNCQ0J3QmtCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQiNCQ0J3QmtCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQiNCQ0J3QmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JDQndCa0J7QktCY0Isg0JLQo9Ca0JjQiwor0IjQkNCd0JrQntCS0JjQiyDQktCj0JrQmNCm0JAKK9CI0JDQndCa0J7QktCY0Isg0JLQo9Ca0J7QnNCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0JfQm9CQ0KLQntCI0JUKK9CI0JDQndCa0J7QktCY0Isg0JfQntCb0KLQkNCdCivQiNCQ0J3QmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0JDQndCa0J7QktCY0Isg0JfQntCg0JDQnQor0IjQkNCd0JrQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CI0JDQndCa0J7QktCY0Isg0JfQntCg0JjQptCQCivQiNCQ0J3QmtCe0JLQmNCLINCX0J7QoNCY0KbQkAor0IjQkNCd0JrQntCS0JjQiyDQl9Ce0KDQmtCQCivQiNCQ0J3QmtCj0JvQntCSINCU0JDQndCY0KbQkAor0IjQkNCd0JrQo9Cb0J7Qki3QlNCV0JzQiNCV0J0g0JzQkNCI0JAKK9CI0JDQndCa0KPQm9Ce0JIg0JTQoNCQ0JPQmNCo0JAg0JzQoCDQn9ClCivQiNCQ0J3QmtCj0JvQntCSINCh0KLQldCS0JDQnQor0IjQkNCd0JrQo9Cb0J7QktCh0JrQmCDQnNCQ0KDQmNCI0JAKK9CI0JDQndCa0KPQm9Ce0JLQodCa0Jgg0J/QldCi0JDQoAor0IjQkNCd0J4g0IjQo9Cb0JjQiNCQCivQiNCQ0J3QntCo0JXQkiDQkdCY0KHQldCg0JrQkAor0IjQkNCd0J7QqNCV0JIg0JTQoNCQ0JPQmNCm0JAKK9CI0JDQndCe0KjQldCSINCJ0JjQidCQ0J3QkAor0IjQkNCd0J7QqNCV0JIg0JzQmNCb0JDQnQor0IjQkNCd0J7QqNCV0JIg0JzQmNCb0JXQndCQCivQiNCQ0J3QntCo0JXQkiDQnNCY0JvQldCd0JrQngor0IjQkNCd0J7QqNCV0JLQmNCLINCg0JDQlNCY0JLQntCICivQiNCQ0J3QntCo0Jgg0KTQoNCQ0J3QptCY0KjQmtCQCivQiNCQ0J3QntCo0Jgg0JjQm9Ce0J3QkAor0IjQkNCd0J7QqNCYINCa0JDQoNCb0J4KK9CI0JDQndCe0KjQmCDQm9CQ0KHQm9CeCivQiNCQ0J3QntCo0Jgg0JzQkNCg0JPQmNCi0JAKK9CI0JDQndCe0KjQmCDQnNCY0KXQkNCJCivQiNCQ0J3QntCo0Jgg0JzQmNCl0JDQiQor0IjQkNCd0J7QqNCYINCi0JXQoNCV0JfQkAor0IjQkNCd0J7QqNCYINCX0J7Qm9Ci0JDQnQor0IjQkNCd0J7QktCQ0KYg0JbQmNCS0J7QiNCY0J0KK9CI0JDQndCe0JLQmNCLINCJ0JjQidCQCivQiNCQ0J3Qo9Co0JrQniDQmNCo0KLQktCQ0J0KK9CI0JDQndCj0KEg0JzQmNCb0JrQkAor0IjQkNCd0KPQoSDQktCe0JjQodCb0JDQkgor0IjQkNCd0KPQl9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQiNCQ0J3Qo9CX0J7QktCY0Isg0IjQntCb0JDQnQor0IjQkNCd0KPQl9Ce0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQiNCQ0J3Qo9CX0J7QktCY0Isg0JzQmNCg0JDQidCj0JEKK9CI0JDQndCj0JfQntCS0JjQiyDQndCe0JLQmNCm0JAg0JTQoAor0IjQkNCd0KPQl9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQndCj0JfQntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQiNCQ0J/Qo9Cd0I/QkCDQm9CQ0JfQkAor0IjQkNCf0KPQndCP0JjQiyDQgtCe0KDQgtCVCivQiNCQ0J/Qo9Cd0I/QmNCLINCT0J7QoNCU0JDQndCQCivQiNCQ0J/Qo9Cd0I/QmNCLINCc0JjQoNCa0J4KK9CI0JDQn9Cj0J3Qj9CY0Isg0J3QmNCa0J7Qm9CQCivQiNCQ0J/Qo9Cd0I/QmNCLINCd0JjQmtCe0JvQkAor0IjQkNCf0KPQndCP0JjQiyDQndCY0JrQntCb0JAKK9CI0JDQn9Cj0J3Qj9CY0Isg0KHQkNCS0JAKK9CI0JDQoNCQ0Jog0JjQktCQ0J0KK9CI0JDQoNCQ0JzQkNCXINCU0JjQiNCQ0J3QkAor0IjQkNCg0JDQnNCQ0Jcg0JzQmNCb0J7QktCQ0J0KK9CI0JDQoNCQ0JzQkNCXINCd0JjQmtCe0JvQkAor0IjQkNCg0KYg0JDQndCT0JXQmwor0IjQkNCg0Jgg0J/QoNCe0JrQkAor0IjQkNCg0JjQiyDQp9CV0JTQntCc0JjQoAor0IjQkNCg0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQkNCg0JjQiyDQkNCS0JTQngor0IjQkNCg0JjQiyDQkdCe0IjQkNCdCivQiNCQ0KDQmNCLINCR0KDQkNCd0JrQngor0IjQkNCg0JjQiyDQlNCQ0J3QmNCV0JvQkAor0IjQkNCg0JjQiyDQlNCV0KHQkNCd0JrQkAor0IjQkNCg0JjQiyDQlNCg0JDQk9CQ0J3QkAor0IjQkNCg0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JDQoNCY0Isg0JTQo9Co0JDQnSDQlNCgCivQiNCQ0KDQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CI0JDQoNCY0Isg0JrQoNCY0KHQotCY0J3QkAor0IjQkNCg0JjQiyDQidCY0InQkNCd0JAKK9CI0JDQoNCY0Isg0InQmNCJ0JDQndCQCivQiNCQ0KDQmNCLINCc0JDQoNCY0IjQkAor0IjQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0JDQoNCY0Isg0JzQmNCb0JDQnQor0IjQkNCg0JjQiyDQnNCY0JvQkNCdCivQiNCQ0KDQmNCLINCc0JjQm9Ce0IjQmtCeCivQiNCQ0KDQmNCLINCc0JjQoNCQCivQiNCQ0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0JDQoNCY0Isg0JfQntCg0JDQnQor0IjQkNCg0JzQmNCd0JDQpiDQkdCg0JDQndCa0J4KK9CI0JDQoNCe0KjQldCd0JrQniDQmtCQ0KLQkNCg0JjQndCQCivQiNCQ0KDQntCo0JXQktCh0JrQmCDQkNCd0KLQntCdCivQiNCQ0KDQntCo0JXQktCh0JrQmCDQmNCS0JjQptCQCivQiNCQ0KDQntCo0JXQktCh0JrQmCDQn9CQ0JLQldCbCivQiNCQ0KHQldCd0J7QktCh0JrQmCDQkNCd0JAKK9CI0JDQodCY0Isg0JTQmNCS0J3QkAor0IjQkNCh0JjQiyDQiNCQ0J3QmtCeCivQiNCQ0KHQmNCLINCc0JDQndCU0JAKK9CI0JDQodCY0Isg0JzQmNCg0JrQngor0IjQkNCh0JjQiyDQktCV0KDQmNCm0JAKK9CI0JDQodCY0JrQkCDQoNCj0JbQkAor0IjQkNCh0JjQmtCQINCh0KLQntCI0JDQndCa0JAKK9CI0JDQodCY0JrQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCQ0KHQnNCY0J3QntCS0JjQiyDQiNCQ0JzQmNCdCivQiNCQ0KHQndCY0Isg0JzQmNCb0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9CI0JDQodCd0JjQiyDQnNCY0JvQkNCdCivQiNCQ0KHQndCY0Isg0JzQmNCb0J7QnNCY0KDQmtCQCivQiNCQ0KHQndCY0Isg0KHQmNCd0JjQqNCQCivQiNCQ0KHQndCY0JPQldCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCQ0KLQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9CI0JDQotCY0Isg0JTQoNCQ0JPQkNCdCivQiNCQ0KLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9CI0JDQotCY0Isg0KHQotCV0JLQkNCdCivQiNCQ0KPQmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQiNCQ0KPQmtCe0JLQmNCLINCf0JXQiNCa0JAKK9CI0JDQo9ChINCS0JDQm9Ci0JXQoAor0IjQkNCS0J3QmCDQn9CV0KLQkNCgCivQiNCQ0JLQntCg0JDQnSDQmNCS0JDQnQor0IjQkNCS0J7QoNCY0J3QkCDQgtCj0KDQkAor0IjQkNCS0J7QoNCY0J3QkCDQidCY0InQkNCd0JAKK9CI0JDQktCe0KDQmNCd0JAg0JzQmNCb0JUKK9CI0JDQktCe0KDQmNCd0JAg0KHQmNCc0J4KK9CI0JDQktCe0KDQndCY0Jog0JHQntCh0JjQidCa0JAKK9CI0JDQktCe0KDQndCY0Jog0J/QkNCS0JXQmwor0IjQkNCX0JjQiyDQlNCQ0J3QmNCb0J4KK9CI0JDQl9CY0Isg0JjQktCQ0J3QmtCQCivQiNCQ0JfQmNCLINCb0JDQl9CQCivQiNCQ0JfQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCQ0JfQmNCLINCc0JDQoNCY0J3QmtCeCivQiNCQ0JfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0JDQl9CY0Ist0KHQkNCS0JjQnSDQotCQ0KLQiNCQ0J3QkAor0IjQkNCX0JjQiyDQodCS0JXQotCb0JDQndCQCivQiNCQ0JfQktCY0Isg0JDQndCa0JAKK9CI0JXQp9CY0J3QkNCmINCc0JjQm9CQ0J0KK9CI0JXQp9CY0J3QkNCmINCc0JjQm9Ce0KDQkNCUCivQiNCV0KfQmNCd0JDQpiDQktCV0KDQkAor0IjQldCn0JzQldCd0JjQptCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCV0KfQnNCV0J3QmNCm0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JXQp9Cc0JXQndCY0KbQkCDQiNCV0JvQldCd0JAKK9CI0JXQp9Cc0JXQndCY0KbQkCDQnNCY0JvQntCoCivQiNCV0KfQnNCV0J3QmNCm0JAg0JLQm9CQ0JTQmNCc0JjQoAor0IjQldCo0JjQiyDQltCY0JLQmtCQCivQiNCV0KjQmNCLINCQ0J3QgtCV0JvQmtCeCivQiNCV0KjQmNCLINCU0JDQndCY0IjQldCb0JAKK9CI0JXQqNCY0Isg0IjQo9Cb0JrQkAor0IjQldCo0JjQiyDQnNCY0JvQkNCdCivQiNCV0KjQmNCLINCc0JjQntCU0KDQkNCTCivQiNCV0KjQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0IjQldCo0JjQiyDQodCi0JXQktCQ0J0KK9CI0JXQqNCY0Isg0JfQntCg0JDQnQor0IjQldCWINCU0KDQkNCT0JDQnQor0IjQldCWINCT0J7QodCf0J7QiNCY0J3QmtCQCivQiNCV0JYg0JzQmNCb0J7QoNCQ0JQKK9CI0JXQliDQodCb0J7QkdCe0JTQkNCdCivQiNCV0JYg0KLQoNCY0JLQngor0IjQldCW0JXQmiDQnNCY0JvQmNCS0J7QiAor0IjQldCm0JrQntCSINCd0JDQlNCQCivQiNCV0JTQldCg0JDQnSDQiNCe0KHQmNCfCivQiNCV0JTQldCg0JDQnSDQiNCe0KHQmNCfCivQiNCV0KTQmNCLINCT0J7QoNCQ0J0KK9CI0JXQpNCi0JXQndCY0Isg0KjQn9CY0KDQngor0IjQldCk0KLQldCd0JjQiyDQktCb0JDQlNCeCivQiNCV0KTQotCY0Isg0JbQkNCg0JrQngor0IjQldCk0KLQmNCLINCR0JjQidCQ0J3QkAor0IjQldCk0KLQmNCLINCR0J7QltCY0JTQkNCgCivQiNCV0KTQotCY0Isg0JHQntCg0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9CI0JXQpNCi0JjQiyDQkdCg0JDQndCa0J4KK9CI0JXQpNCi0JjQiyDQlNCQ0JzQiNCQ0J0KK9CI0JXQpNCi0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JXQpNCi0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQiNCV0KTQotCY0Isg0IjQldCk0KLQkAor0IjQldCk0KLQmNCLINCI0JXQm9CV0J3QkAor0IjQldCk0KLQmNCLINCI0J7QktCQ0J0KK9CI0JXQpNCi0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQiNCV0KTQotCY0Isg0InQo9CR0J7QnNCY0KAKK9CI0JXQpNCi0JjQiyDQnNCY0JvQkNCdCivQiNCV0KTQotCY0Isg0JzQmNCb0JDQnQor0IjQldCk0KLQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCV0KTQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0JXQpNCi0JjQiyDQnNCY0KLQkAor0IjQldCk0KLQmNCLINCh0KDQldCi0JXQndCa0JAKK9CI0JXQpNCi0JjQiyDQotCY0KXQntCc0JjQoAor0IjQldCk0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CI0JXQpNCi0JjQiyDQktCV0JvQmNCd0JrQkAor0IjQldCk0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JXQpNCi0JjQiyDQktCb0JDQodCi0JAKK9CI0JXQpNCi0JjQiyDQl9CU0KDQkNCS0JrQngor0IjQldCk0KLQntCS0JjQiyDQpNCg0JDQitCQCivQiNCV0JPQkNCg0JDQpiDQntCb0JPQkAor0IjQldCT0JTQmNCLINCU0JDQnNCI0JDQnQor0IjQldCT0JTQmNCLINCT0J7QoNCU0JDQndCQCivQiNCV0JPQlNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQiNCV0JPQlNCY0Isg0JLQkNCh0JAKK9CI0JXQk9CU0JjQiyDQktCQ0KHQngor0IjQldCT0JXQqCDQnNCY0JvQkAor0IjQldCa0JXQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCV0JrQldCb0JjQiyDQkdCg0JDQndCa0J4KK9CI0JXQmtCV0JvQmNCLINCV0JzQmNCb0JjQiNCQCivQiNCV0JrQldCb0JjQiyDQm9CQ0KHQm9CeCivQiNCV0JrQldCb0JjQiyDQnNCY0JvQkNCdCivQiNCV0JrQldCb0JjQiyDQnNCY0JvQmNCLCivQiNCV0JrQldCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0IjQldCa0JXQm9CY0Isg0KHQm9CQ0JLQmtCeCivQiNCV0JrQldCb0JjQiyDQl9Ce0KDQmNCm0JAKK9CI0JXQmtCd0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQiNCV0JvQp9CY0Isg0IjQntCX0JXQpNCY0J3QkAor0IjQldCb0KfQmNCLINCa0KDQmNCh0KLQmNCI0JDQnQor0IjQldCb0KfQmNCLINCJ0KPQkdCY0KjQkAor0IjQldCb0KfQmNCLINCc0JjQm9Ce0JLQkNCdCivQiNCV0JvQp9CY0Isg0JzQmNCb0J7QktCQ0J0KK9CI0JXQm9Cn0JjQiyDQn9CQ0JLQm9CVCivQiNCV0JvQp9CY0Isg0JfQntCg0JAKK9CI0JXQm9CQ0KfQkCDQgtCj0KDQngor0IjQldCb0JDQp9CQINCC0KPQoNCeCivQiNCV0JvQkNCn0JAg0JHQoNCQ0J3QmtCeCivQiNCV0JvQkNCn0JAg0JTQldCh0JAKK9CI0JXQm9CQ0KfQkCDQmtCe0KHQotCQCivQiNCV0JvQkNCn0JAg0JzQmNCl0JDQiNCb0J4KK9CI0JXQm9CQ0KfQkCDQnNCY0JvQldCd0JrQngor0IjQldCb0JDQp9CQINCg0KPQltCQCivQiNCV0JvQkNCn0JAg0KHQmNCc0J4g0JTQoCDQmNCd0JMKK9CI0JXQm9CQ0KfQkCDQodCb0J7QkdCe0JTQkNCdCivQiNCV0JvQkNCn0JAg0KHQotCQ0J3QmtCeCivQiNCV0JvQkNCn0JAg0KHQotCe0IjQkNCdCivQiNCV0JvQkNCn0JjQiyDQkdCe0JbQmNCU0JDQoAor0IjQldCb0JDQp9CY0Isg0JHQoNCQ0J3QmtCeCivQiNCV0JvQkNCn0JjQiyDQlNCQ0J3QmNCb0J4KK9CI0JXQm9CQ0KfQmNCLINCU0KPQqNCQ0J0KK9CI0JXQm9CQ0KfQmNCLINCI0KPQm9CY0KjQmtCQCivQiNCV0JvQkNCn0JjQiyDQidCj0JHQntCc0JjQoAor0IjQldCb0JDQp9CY0Isg0JzQmNCl0JDQiNCb0J4KK9CI0JXQm9CQ0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCV0JvQkNCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCV0JvQkNCn0JjQiyDQoNCQ0KLQntCc0JjQoAor0IjQldCb0JDQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQldCb0JDQp9CY0Isg0JfQntCg0JrQkAor0IjQldCb0JDQktCY0Isg0JbQldCJ0JrQngor0IjQldCb0JDQktCY0Isg0JTQoNCQ0JPQngor0IjQldCb0JXQpyDQmNCb0JjQiNCQCivQiNCV0JvQldCn0JDQndCY0J0g0ILQntCg0ILQlQor0IjQldCb0JXQp9CQ0J3QmNCdINCc0JDQoNCY0IjQkAor0IjQldCb0JXQp9CY0Isg0IjQntCS0JDQnQor0IjQldCb0JXQndCn0JjQiyDQpNCg0JDQitCQCivQiNCV0JvQldCd0JjQiyDQltCY0JLQkNCdCivQiNCV0JvQldCd0JjQiyDQnNCY0JvQkNCdCivQiNCV0JvQldCd0JjQiyDQn9CQ0J3QotCQCivQiNCV0JvQldCd0JjQiyDQn9CQ0JLQm9CVCivQiNCV0JvQldCd0JjQiyDQoNCQ0JTQkAor0IjQldCb0JXQndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQldCb0JXQndCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0IjQldCb0JXQndCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JXQm9CV0J3QmtCe0JLQmNCLINCT0KDQntCX0JTQkAor0IjQldCb0JXQndCa0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQiNCV0JvQldCh0JjQiyDQkNCd0JPQldCb0JAg0J/QoNCe0KTQldCh0J7QoAor0IjQldCb0JjQp9CY0Isg0JbQmNCS0JrQngor0IjQldCb0JjQp9CY0Isg0ILQo9Cg0J4KK9CI0JXQm9CY0KfQmNCLINCR0JXQkNCi0JAKK9CI0JXQm9CY0KfQmNCLINCR0KDQkNCd0JrQngor0IjQldCb0JjQp9CY0Isg0JTQo9Co0JDQnQor0IjQldCb0JjQp9CY0Isg0IjQldCb0JXQndCQCivQiNCV0JvQmNCn0JjQiyDQiNCe0JLQngor0IjQldCb0JjQp9CY0Isg0InQo9CR0JjQptCQCivQiNCV0JvQmNCn0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0JXQm9CY0KfQmNCLINCc0JjQm9CQ0J0KK9CI0JXQm9CY0KfQmNCLINCc0JjQm9CVCivQiNCV0JvQmNCn0JjQiyDQnNCY0KDQmtCeCivQiNCV0JvQmNCn0JjQiyDQn9CV0KLQkNCgCivQiNCV0JvQmNCn0JjQiyDQn9CV0KLQkNCgCivQiNCV0JvQmNCn0JjQiyDQoNCe0KHQkAor0IjQldCb0JjQp9CY0Isg0JLQmNCUCivQiNCV0JvQmNCLINCW0JjQktCa0J4KK9CI0JXQm9CY0Isg0JbQmNCS0JrQngor0IjQldCb0JjQiyDQgtCe0KDQgtCVCivQiNCV0JvQmNCLINCC0J7QoNCC0JUKK9CI0JXQm9CY0Isg0JDQi9CY0JwKK9CI0JXQm9CY0Isg0JDQndCC0JAKK9CI0JXQm9CY0Isg0JDQndCi0JUKK9CI0JXQm9CY0Isg0JHQo9CU0JjQnNCY0KAKK9CI0JXQm9CY0Isg0JTQoNCQ0JPQkNCdCivQiNCV0JvQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CI0JXQm9CY0Isg0JTQo9Co0JDQnQor0IjQldCb0JjQiyDQldCc0JjQm9CY0IjQkAor0IjQldCb0JjQiyDQldCh0KLQldCg0JAKK9CI0JXQm9CY0Isg0JPQntCg0JTQkNCd0JAKK9CI0JXQm9CY0Isg0JjQktCQ0J3QmtCQCivQiNCV0JvQmNCLINCY0JLQmNCm0JAKK9CI0JXQm9CY0Isg0IjQkNCT0J7QlNCY0J3QmtCQCivQiNCV0JvQmNCLINCI0JDQitCQCivQiNCV0JvQmNCLINCI0JXQm9CV0J3QkAor0IjQldCb0JjQiyDQiNCe0JLQkNCdCivQiNCV0JvQmNCLINCb0JDQl9CQ0KAKK9CI0JXQm9CY0Isg0JvQkNCX0JDQoAor0IjQldCb0JjQiyDQidCj0JHQmNCm0JAKK9CI0JXQm9CY0Isg0InQo9CR0JjQndCa0JAKK9CI0JXQm9CY0Isg0JvQo9Ca0JAKK9CI0JXQm9CY0Isg0JzQkNCg0JjQptCQCivQiNCV0JvQmNCLINCc0JDQoNCY0J3QkAor0IjQldCb0JjQiy3QnNCQ0KLQmNCLINCc0JDQoNCY0IjQkAor0IjQldCb0JjQiyDQnNCY0JvQkNCdCivQiNCV0JvQmNCLINCc0JjQm9CQ0J0KK9CI0JXQm9CY0Isg0JzQmNCb0JXQndCQCivQiNCV0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCV0JvQmNCLINCc0JjQm9Ca0JAKK9CI0JXQm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0JXQm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0JXQm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0JXQm9CY0Isg0JzQmNCi0JAKK9CI0JXQm9CY0Isg0JzQntCc0JjQoAor0IjQldCb0JjQiyDQndCQ0JTQkAor0IjQldCb0JjQiyDQndCV0JTQldCJ0JrQngor0IjQldCb0JjQiyDQn9CQ0JLQm9CVCivQiNCV0JvQmNCLINCf0KDQldCU0KDQkNCTCivQiNCV0JvQmNCLINCf0KDQldCU0KDQkNCTCivQiNCV0JvQmNCLINCg0JDQlNCV0J3QmtCeCivQiNCV0JvQmNCLINCg0J7QodCQCivQiNCV0JvQmNCLINCh0JDQktCQCivQiNCV0JvQmNCLINCh0JjQnNCQCivQiNCV0JvQmNCLINCh0JvQkNCS0JjQptCQCivQiNCV0JvQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9CI0JXQm9CY0Isg0KHQotCV0JLQkNCdCivQiNCV0JvQmNCLINCh0KLQldCS0JAKK9CI0JXQm9CY0Isg0KHQotCV0JLQkAor0IjQldCb0JjQiyDQodCi0JjQn9CVCivQiNCV0JvQmNCLINCh0JLQldCi0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9CI0JXQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0IjQldCb0JjQiyDQotCe0JzQkAor0IjQldCb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQiNCV0JvQmNCLINCS0JDQodCQCivQiNCV0JvQmNCLINCS0JDQodCeCivQiNCV0JvQmNCLINCS0JjQmtCi0J7QoNCY0IjQkAor0IjQldCb0JjQptCa0Jgg0KHQmNCc0JXQo9CdCivQiNCV0JvQmNCdINCI0J7QktCQ0J0KK9CI0JXQm9CY0J0g0KDQkNCU0JzQmNCb0JAKK9CI0JXQm9CY0J3Qp9CY0Isg0JTQo9CI0J4KK9CI0JXQm9CY0J3QldCaINCh0KLQldCS0JDQnQor0IjQldCb0JjQodCQ0JLQkNCmINCT0J7QoNCU0JDQnQor0IjQldCb0JjQodCQ0JLQkNCmINCc0JjQm9Ce0KgKK9CI0JXQm9CY0KHQkNCS0JDQpiDQnNCe0JzQmNCgCivQiNCV0JvQmtCY0Isg0IjQntCS0JDQnQor0IjQldCb0JrQmNCLINCb0JDQl9CQ0KAKK9CI0JXQm9Ca0JjQiyDQntCb0JjQktCV0KDQkAor0IjQldCb0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0JXQm9Ce0JLQkNCmINCW0JDQoNCa0J4KK9CI0JXQm9Ce0JLQkNCmINCW0JDQoNCa0J4KK9CI0JXQm9Ce0JLQkNCmINCC0J7QoNCC0JUKK9CI0JXQm9Ce0JLQkNCmINCC0J7QoNCC0JUKK9CI0JXQm9Ce0JLQkNCmINCC0KPQoNCeCivQiNCV0JvQntCS0JDQpiDQkdCY0KHQldCg0JrQkAor0IjQldCb0J7QktCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCV0JvQntCS0JDQpiDQkdCg0JDQndCa0JAKK9CI0JXQm9Ce0JLQkNCmINCR0KDQkNCd0JrQkAor0IjQldCb0J7QktCQ0KYg0JHQoNCQ0J3QmtCeCivQiNCV0JvQntCS0JDQpiDQlNCg0JDQk9CQ0J0KK9CI0JXQm9Ce0JLQkNCmINCU0KDQkNCT0JDQnQor0IjQldCb0J7QktCQ0KYg0JTQo9Co0JDQnQor0IjQldCb0J7QktCQ0KYg0JjQl9CQ0JHQldCb0JAKK9CI0JXQm9Ce0JLQkNCmINCI0J7QktCQ0J0KK9CI0JXQm9Ce0JLQkNCmINCc0JjQm9CQ0J0KK9CI0JXQm9Ce0JLQkNCmINCc0JjQm9CY0KbQkAor0IjQldCb0J7QktCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0IjQldCb0J7QktCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0IjQldCb0J7QktCQ0KYg0J3QkNCU0JAKK9CI0JXQm9Ce0JLQkNCmINCd0JjQmtCe0JvQkAor0IjQldCb0J7QktCQ0KYg0KDQkNCU0J7QiNCa0JAKK9CI0JXQm9Ce0JLQkNCmINCg0JDQlNCe0IjQmtCQCivQiNCV0JvQntCS0JDQpiDQoNCQ0JTQntCc0JjQoCDQlNCgINCb0JXQmtCQ0KAKK9CI0JXQm9Ce0JLQkNCmINCg0KPQltCY0KbQkAor0IjQldCb0J7QktCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0IjQldCb0J7QktCQ0KYg0KHQotCV0JLQkNCdCivQiNCV0JvQntCS0JDQpiDQodCi0J7QiNCQ0J0KK9CI0JXQm9Ce0JLQkNCmINCi0KPQk9Ce0JzQmNCgCivQiNCV0JvQntCS0JDQpiDQktCV0JvQmNCc0JjQoAor0IjQldCb0J7QktCQ0KYg0JLQm9CQ0JTQkAor0IjQldCb0J7QktCQ0KYg0JLQo9CI0JjQptCQCivQiNCV0JvQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0IjQldCb0KPQqNCY0Isg0JPQntCg0JTQkNCd0JAKK9CI0JXQm9Cj0KjQmNCLINCb0JXQndCa0JAKK9CI0JXQm9Cj0KjQmNCLINCc0JDQotCY0IjQlQor0IjQldCc0Kcg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCV0JzQoNCY0Isg0IjQldCb0JAKK9CI0JXQndCV0KbQmtCe0JIg0KDQkNCU0JzQmNCb0JAKK9CI0JXQndCV0KbQmtCe0JIg0KHQkNCo0JAKK9CI0JXQndCV0Jgg0JDQndCU0KDQkNCoCivQiNCV0J3QldCYINCV0KPQk9CV0J0KK9CI0JXQndCV0Jgg0JvQkNCI0J7QqAor0IjQldCd0JXQmCDQnNCY0J7QlNCg0JDQkwor0IjQldCd0JXQmCDQoNCj0JbQkAor0IjQldCd0JXQmCDQodCi0JXQktCQ0J0KK9CI0JXQndCV0Jgg0KLQmNCR0J7QoAor0IjQldCd0JXQkiDQkdCb0JDQk9Ce0IgKK9CI0JXQn9Cj0KDQodCa0Jgg0J3QldCd0JDQlAor0IjQldCg0KfQmNCLINCk0KDQkNCK0J4KK9CI0JXQoNCQ0J3Qp9CVINCU0JDQndCY0KbQkAor0IjQldCg0JDQndCiINCQ0J3QlNCg0JjQiNCQCivQiNCV0KDQkNCd0KIg0J/QkNCi0JjQiyDQktCV0KDQkCDQlNCgCivQiNCV0KDQkNCd0KIg0J/QldCi0JDQoAor0IjQldCg0JDQo9Co0JXQmiDQpNCg0JDQitCeCivQiNCV0KDQkNCj0KjQldCaINCY0JLQmNCm0JAKK9CI0JXQoNCR0JjQiyDQlNCg0JDQk9CY0KbQkAor0IjQldCg0JXQkdCY0J3QqNCV0Jog0JDQndCQCivQiNCV0KDQldCR0JjQndCo0JXQmiDQodCb0JDQktCa0J4KK9CI0JXQoNCV0JvQlSDQpNCg0JDQndCm0JjQqNCa0JAKK9CI0JXQoNCV0JzQldCd0JrQniDQkNCb0JXQmtCh0JDQndCU0KDQkAor0IjQldCg0JXQnNCY0Isg0ILQntCa0JAKK9CI0JXQoNCV0JzQmNCLINCC0J7QoNCC0JUKK9CI0JXQoNCV0JzQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCV0KDQldCc0JjQiy3QkdCb0JDQk9Ce0IjQldCS0JjQiyDQktCV0KDQmNCm0JAKK9CI0JXQoNCV0JzQmNCLINCR0JvQkNCT0J7QiNCVCivQiNCV0KDQldCc0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUg0JTQoCDQm9CV0JrQkNCgCivQiNCV0KDQldCc0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CI0JXQoNCV0JzQmNCLINCU0KPQqNCQ0J3QmtCQCivQiNCV0KDQldCc0JjQiyDQiNCQ0KHQndCQCivQiNCV0KDQldCc0JjQiyDQiNCV0JvQldCd0JAKK9CI0JXQoNCV0JzQmNCLINCI0J7QktCQ0J0KK9CI0JXQoNCV0JzQmNCLINCI0J7QktCQ0J0KK9CI0JXQoNCV0JzQmNCLINCb0JDQl9CQ0KAKK9CI0JXQoNCV0JzQmNCLINCJ0JjQidCQ0J3QkAor0IjQldCg0JXQnNCY0Isg0JzQldCb0JDQndCY0IjQkAor0IjQldCg0JXQnNCY0Isg0JzQmNCb0JXQktCQCivQiNCV0KDQldCc0JjQiyDQnNCY0KDQkAor0IjQldCg0JXQnNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQldCg0JXQnNCY0Isg0J3QkNCU0JXQltCU0JAKK9CI0JXQoNCV0JzQmNCLINCd0JXQndCQ0JQKK9CI0JXQoNCV0JzQmNCLINCe0JvQmNCS0JXQoNCQCivQiNCV0KDQldCc0JjQiyDQn9CQ0JLQm9CVCivQiNCV0KDQldCc0JjQiyDQn9CQ0JLQm9CVCivQiNCV0KDQldCc0JjQiyDQoNCQ0JTQlQor0IjQldCg0JXQnNCY0Isg0KHQotCQ0J3QkAor0IjQldCg0JXQnNCY0Isg0KHQotCQ0J3QmtCeCivQiNCV0KDQldCc0JjQiyDQodCi0JDQndCe0IjQlQor0IjQldCg0JXQnNCY0Isg0KHQotCV0JLQkNCdCivQiNCV0KDQldCc0JjQiyDQodCi0JXQktCQ0J0KK9CI0JXQoNCV0JzQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CI0JXQoNCV0JzQmNCLINCS0JXQoNCQCivQiNCV0KDQldCc0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCV0KDQldCc0JjQiyDQl9Ce0KDQkAor0IjQldCg0JXQnNCY0IjQmNCLINCS0JjQotCe0JzQmNCgCivQiNCV0KDQldCd0JjQiyDQnNCb0JDQlNCV0J0KK9CI0JXQoNCT0JjQiyDQnNCY0JvQmNCm0JAKK9CI0JXQoNCT0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQldCg0JPQmNCLINCc0JjQoNCa0J4KK9CI0JXQoNCT0JjQiyDQn9CV0KLQkNCgCivQiNCV0KDQk9CY0Isg0KHQm9CQ0JLQmNCm0JAKK9CI0JXQoNCT0JjQiyDQodCf0JDQodCe0IjQlQor0IjQldCg0JjQiyDQlNCj0KjQkNCdCivQiNCV0KDQmNCLINCa0J7QktCY0J3QmtCQCivQiNCV0KDQmNCLINCJ0KPQkdCY0KjQkAor0IjQldCg0JjQiyDQnNCY0JvQmNCm0JAKK9CI0JXQoNCY0Isg0J/QldCi0JDQoAor0IjQldCg0JjQndCY0Isg0JHQoNCQ0J3QmtCeCivQiNCV0KDQmNCd0JjQiy3QmtCj0KDQmNCdINCV0JTQmNCiCivQiNCV0KDQmNCd0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQldCg0JjQndCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQldCg0JjQndCa0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0JXQoNCY0J3QmtCY0Isg0JjQktCQ0J0KK9CI0JXQoNCY0J3QmtCY0Isg0J/QkNCS0JvQlQor0IjQldCg0JrQkNCdINCQ0J3QotCVCivQiNCV0KDQmtCY0Isg0KHQktCV0KLQntCX0JDQoAor0IjQldCg0JrQntCSINCW0JDQoNCa0J4KK9CI0JXQoNCa0J7QkiDQkNCd0JTQoNCY0IjQkAor0IjQldCg0JrQntCSINCR0KDQkNCd0JjQnNCY0KAKK9CI0JXQoNCa0J7QkiDQiNCe0JLQkNCdCivQiNCV0KDQmtCe0JIg0IjQntCS0JjQptCQCivQiNCV0KDQmtCe0JIg0IjQntCS0JjQptCQCivQiNCV0KDQmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9CI0JXQoNCa0J7QkiDQnNCY0KDQiNCQ0J3QkAor0IjQldCg0JrQntCSINCf0JDQktCb0JUKK9CI0JXQoNCa0J7QkiDQodCc0JjQidCQCivQiNCV0KDQmtCe0JIg0KHQndCV0JbQkNCd0JAKK9CI0JXQoNCa0J7QkiDQktCV0InQmtCeCivQiNCV0KDQmtCe0JIg0JLQntCI0JjQodCb0JDQkgor0IjQldCg0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQiNCV0KDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCV0KDQmtCe0JLQmNCLINCU0JzQmNCi0JDQoAor0IjQldCg0JrQntCS0JjQiyDQpNCg0JDQitCeCivQiNCV0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0JXQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0IjQldCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCV0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0JXQoNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQiNCV0KDQmtCe0JLQmNCLINCa0JDQotCY0KbQkAor0IjQldCg0JrQntCS0JjQiyDQm9CV0J3QmtCQCivQiNCV0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0JXQoNCa0J7QktCY0Isg0JzQmNCb0J7QqAor0IjQldCg0JrQntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0IjQldCg0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0JXQoNCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CI0JXQoNCa0J7QktCY0Isg0KDQkNCI0JrQngor0IjQldCg0JrQntCS0JjQiyDQodCY0JzQngor0IjQldCg0JrQntCS0JjQiyDQodCY0J3QmNCo0JAKK9CI0JXQoNCa0J7QktCY0Isg0KHQntCk0JjQiNCQCivQiNCV0KDQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQldCg0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CI0JXQoNCa0J7QktCY0Isg0KHQktCV0KLQmtCeCivQiNCV0KDQmtCe0JLQmNCLINCi0JDQlNCY0IjQkAor0IjQldCg0JrQntCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQiNCV0KDQmtCe0JLQmNCLINCS0JDQodCQCivQiNCV0KDQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JzQoAor0IjQldCg0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQiNCV0KDQmtCe0JLQmNCLINCS0JvQkNCU0J4KK9CI0JXQoNCa0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0IjQldCg0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCV0KDQntCh0JjQnNCe0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9CI0JXQoNCe0KLQmNCI0JXQktCY0Isg0JTQkNCg0JjQndCa0JAKK9CI0JXQodCY0Isg0JzQmNCb0JXQndCQCivQiNCV0KHQotCg0J7QndCY0Isg0KLQntCc0JjQodCb0JDQkgor0IjQldCh0KLQoNCe0JLQmNCLINCY0KDQldCd0JAKK9CI0JXQktCC0JXQndCY0Isg0KDQo9CW0JjQptCQCivQiNCV0JLQgtCV0J3QmNCLINCS0JvQkNCU0JAKK9CI0JXQktCC0J7QktCY0Isg0JzQldCb0JDQndCY0IjQkCDQlNCgCivQiNCV0JLQgtCe0JLQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9CI0JXQktCY0Isg0KfQldCU0J4KK9CI0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CI0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9CI0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9CI0JXQktCY0Isg0J3QkNCU0JAKK9CI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCV0JLQmNCLINCi0J7QlNCe0KAKK9CI0JXQktCg0JXQnNCe0JIg0JbQmNCS0JAKK9CI0JXQktCg0JXQnNCe0JIg0ILQntCg0ILQlQor0IjQldCS0KDQldCc0J7QkiDQnNCY0JvQkNCdCivQiNCV0JLQoNCV0JzQntCSINCc0JjQoNCI0JDQndCQCivQiNCV0JLQoNCV0JzQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0IjQldCS0KDQldCc0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9CI0JXQktCg0JXQnNCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQiNCV0JLQoNCV0JzQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQldCS0KDQldCc0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0JXQktCg0JXQnNCe0JLQmNCLINCg0JDQlNCY0KjQkAor0IjQldCS0KDQldCc0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQiNCV0JLQoNCV0JzQntCS0JjQiyDQodCe0KTQmNCI0JAKK9CI0JXQktCg0JXQnNCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQldCS0KDQldCc0J7QktCY0Isg0JLQm9CQ0JTQkNCdCivQiNCV0JLQoNCY0Isg0JbQmNCS0JDQnQor0IjQldCS0KDQmNCLINCC0J7QoNCC0JUKK9CI0JXQktCg0JjQiyDQgtCe0KDQgtCVCivQiNCV0JLQoNCY0Isg0JHQntCW0JjQlNCQ0KAKK9CI0JXQktCg0JjQiyDQkdCe0JPQntCJ0KPQkQor0IjQldCS0KDQmNCLINCR0KDQkNCd0JrQngor0IjQldCS0KDQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0IjQldCS0KDQmNCLINCU0JDQndCY0KbQkAor0IjQldCS0KDQmNCLINCU0JXQodCY0JzQmNCgCivQiNCV0JLQoNCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0IjQldCS0KDQmNCLINCV0JLQmNCm0JAKK9CI0JXQktCg0JjQiyDQk9CY0JPQkAor0IjQldCS0KDQmNCLINCT0J7QoNCQ0J0KK9CI0JXQktCg0JjQiyDQiNCV0JvQkAor0IjQldCS0KDQmNCLINCI0J7QktCQ0J0KK9CI0JXQktCg0JjQiyDQmtCg0JjQodCi0JjQndCQCivQiNCV0JLQoNCY0Isg0InQo9CR0JjQptCQCivQiNCV0JLQoNCY0Isg0JzQkNCg0JjQiNCQCivQiNCV0JLQoNCY0Isg0JzQmNCb0JDQnQor0IjQldCS0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCV0JLQoNCY0Isg0JzQmNCb0JUKK9CI0JXQktCg0JjQiyDQnNCY0JvQntCoCivQiNCV0JLQoNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQldCS0KDQmNCLINCg0JDQlNCY0KjQkAor0IjQldCS0KDQmNCLINCg0JDQlNCY0JLQntCI0JUKK9CI0JXQktCg0JjQiyDQoNCQ0JTQmNCS0J7QiAor0IjQldCS0KDQmNCLINCg0JDQlNCY0JLQntCICivQiNCV0JLQoNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0IjQldCS0KDQmNCLINCg0JDQndCY0KHQkNCSCivQiNCV0JLQoNCY0Isg0KHQm9CQ0JLQmtCeCivQiNCV0JLQoNCY0Isg0KHQm9CQ0JLQmtCeCivQiNCV0JLQoNCY0Isg0KHQm9CQ0JLQmtCeCivQiNCV0JLQoNCY0Isg0KHQm9CQ0JLQmtCeCivQiNCV0JLQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQldCS0KDQmNCLINCh0KDQkdCe0InQo9CRCivQiNCV0JLQoNCY0Isg0KHQotCQ0JzQldCd0JrQngor0IjQldCS0KDQmNCLINCh0KLQldCS0JDQnSDQlNCgINCY0J3Qkwor0IjQldCS0KDQmNCLINCh0KLQldCS0JDQnQor0IjQldCS0KDQmNCLINCX0JvQkNCi0J7QnNCY0KAKK9CI0JXQktCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0JXQktCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CI0JXQktCi0J7QktCY0Isg0IjQntCg0JTQkNCdCivQiNCV0JLQotCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0JXQktCi0J7QktCY0Isg0JzQmNCg0JrQngor0IjQldCS0KLQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQiNCV0JLQotCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQiNCV0JLQotCe0JLQmNCLINCS0J7QiNCa0JDQnQor0IjQldCS0KLQntCS0JjQiyDQktCj0JrQntCi0JAKK9CI0JXQktCi0J7QktCY0Isg0JLQo9Cb0JUKK9CI0JXQl9CU0JjQiyDQlNCe0JHQoNCY0JvQkAor0IjQldCX0JTQmNCLINCU0KDQkNCT0JDQnQor0IjQldCX0JTQmNCLINCI0J7QktCQ0J0KK9CI0JXQl9CU0JjQiyDQidCj0JHQntCc0JjQoAor0IjQldCX0JTQmNCLINCc0J7QnNCn0JjQm9CeCivQiNCV0JfQlNCY0Isg0KHQkNCS0JAKK9CI0JXQl9CU0JjQiyDQodCf0JjQoNCQCivQiNCV0JfQlNCY0Isg0KHQotCV0JLQmtCQCivQiNCV0JfQlNCY0Isg0KHQotCe0IjQkNCdINCU0JjQn9CbINCY0J3Qkwor0IjQldCX0JTQmNCc0JjQoNCe0JLQmNCLINCQ0KbQkAor0IjQldCX0JTQmNCc0JjQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0IjQldCX0JTQmNCc0JjQoNCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQiNCV0JfQlNCY0JzQmNCg0J7QktCY0Isg0JvQkNCX0JDQoAor0IjQldCX0JTQmNCc0JjQoNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQiNCV0JfQlNCY0JzQmNCg0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0IjQldCX0JTQmNCc0JjQoNCe0JLQmNCLINCX0J7QoNCY0KbQkAor0IjQldCX0JXQoNCa0JjQiyDQntCb0JPQmNCm0JAKK9CI0JjQoNCe0KLQkC3Qk9CQ0JfQmNCR0JDQoNCY0Isg0JTQkNCd0JjQldCb0JAKK9CI0J7Qp9CY0Isg0JzQntCc0KfQmNCb0J4KK9CI0J7Qp9CY0Isg0KHQotCQ0J3QntCI0JvQngor0IjQntCn0JjQnSDQltCY0JrQkAor0IjQntCn0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0KjQkNCd0J7QkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0IjQntCo0JDQndCe0JIg0JvQkNCX0JDQoAor0IjQntCo0JDQndCe0JIg0InQo9CR0JjQptCQCivQiNCe0KjQkNCd0J7QkiDQnNCb0JDQlNCV0J0KK9CI0J7QqNCV0JLQodCa0Jgg0ILQntCg0ILQmNCI0JAKK9CI0J7QqNCY0Isg0ILQo9Cg0JAKK9CI0J7QqNCY0Isg0JHQm9CQ0JbQngor0IjQntCo0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CI0J7QqNCY0Isg0JzQmNCb0JDQnQor0IjQntCo0JjQiyDQnNCY0JvQmNCS0J7QiAor0IjQntCo0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQntCo0JjQiyDQn9CV0KLQkNCgCivQiNCe0JbQkCDQmtCQ0KLQkNCb0JjQnQor0IjQntCW0JjQiyDQgtCj0KDQkAor0IjQntCQ0J3QntCS0JjQiyDQptCS0JXQotCa0J4g0JTQmNCf0Jsg0JjQndCTCivQiNCe0JDQndCe0JLQmNCLINCV0KDQltCV0JHQldCiCivQiNCe0JDQndCe0JLQmNCLINCg0JDQnNCe0J3QkAor0IjQntCm0JjQiyDQltCY0JLQntCI0JjQnSDQlNCY0J/QmyDQmNCd0JMKK9CI0J7QptCY0Isg0JbQmNCS0J7QoNCQ0JQg0JTQoAor0IjQntCm0JjQiyDQgtCe0KDQgtCVCivQiNCe0KbQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0KbQmNCLINCQ0J3QgtCV0JvQmtCQCivQiNCe0KbQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CI0J7QptCY0Isg0JDQndCa0JjQptCQCivQiNCe0KbQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CI0J7QptCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0KAKK9CI0J7QptCY0Isg0JHQoNCQ0J3QmtCQCivQiNCe0KbQmNCLINCU0KDQkNCT0JjQptCQCivQiNCe0KbQmNCLINCU0KDQkNCT0KPQotCY0J0KK9CI0J7QptCY0Isg0KTQmNCb0JjQnwor0IjQntCm0JjQiyDQpdCg0JjQodCi0JjQndCQCivQiNCe0KbQmNCLINCY0JvQmNCI0JAKK9CI0J7QptCY0Isg0JjQodCY0JTQntCgCivQiNCe0KbQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQiNCe0KbQmNCLINCI0J7QktCQ0J3QmtCQCivQiNCe0KbQmNCLINCJ0JjQidCQ0J3QkAor0IjQntCm0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QptCY0Isg0JzQkNCg0JrQngor0IjQntCm0JjQiyDQnNCQ0KDQmtCeCivQiNCe0KbQmNCLINCc0JDQoNCi0JAKK9CI0J7QptCY0Isg0JzQmNCb0JDQlNCY0J3QmtCQCivQiNCe0KbQmNCLINCc0JjQm9CQ0J0KK9CI0J7QptCY0Isg0JzQmNCb0JDQnQor0IjQntCm0JjQiyDQnNCY0JvQntCoCivQiNCe0KbQmNCLINCc0JjQm9Ce0KgKK9CI0J7QptCY0Isg0JzQmNCg0JrQngor0IjQntCm0JjQiyDQnNCb0JDQlNCV0J0KK9CI0J7QptCY0Isg0J3QldCd0JDQlAor0IjQntCm0JjQiyDQn9CV0KLQkNCgCivQiNCe0KbQmNCLINCf0JXQotCQ0KAKK9CI0J7QptCY0Isg0J/QldCi0JDQoAor0IjQntCm0JjQiyDQoNCQ0JTQmNCS0J7QiAor0IjQntCm0JjQiyDQoNCQ0JTQnNCY0JvQkAor0IjQntCm0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQiNCe0KbQmNCLINCg0J7QlNCe0InQo9CRCivQiNCe0KbQmNCLINCh0JDQktCQCivQiNCe0KbQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7QptCY0Isg0KHQnNCY0InQkAor0IjQntCm0JjQiyDQodCi0JXQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQiNCe0KbQmNCLINCh0KLQldCS0JDQnQor0IjQntCm0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QptCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0IjQntCm0JjQiyDQktCV0KDQkAor0IjQntCm0JjQiyDQl9Ce0KDQkNCdCivQiNCe0KbQmNCdINCR0KDQkNCd0JrQngor0IjQntCm0JjQnSDQn9CV0KDQodCY0JTQkAor0IjQntCm0JjQnSDQl9Cb0JDQotCe0IjQlQor0IjQntCm0JrQntCSINCU0JDQndCY0KbQkAor0IjQntCm0JrQntCSINCc0JDQndCe0IjQm9CeCivQiNCe0KbQmtCe0JIg0JzQmNCb0JDQndCa0JAKK9CI0J7QptCa0J7QkiDQnNCY0JvQntCh0JDQkgor0IjQntCm0JrQntCSINCc0JjQoNCe0KHQm9CQ0JLQkAor0IjQntCm0JrQntCSINCd0JjQmtCe0JvQkAor0IjQntCm0JrQntCSINCd0JjQmtCe0JvQkAor0IjQntCm0JrQntCSINCg0JDQlNCe0JLQkNCdCivQiNCe0KbQmtCe0JLQmNCLINCC0J7QoNCC0JUg0JTQoAor0IjQntCm0JrQntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0IjQntCm0JrQntCS0JjQiyDQntCR0KDQkNCUCivQiNCe0KbQntCS0JjQiyDQltCY0JLQntCc0JjQoAor0IjQntCm0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7QptCe0JLQmNCLINCg0JDQlNCV0J3QmtCeCivQiNCe0KbQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CI0J7QptCj0JvQntCSINCR0KDQkNCd0JrQkAor0IjQntCm0KPQm9Ce0JIg0JzQmNCl0JDQiQor0IjQntCU0JDQmyDQoNCe0JbQkAor0IjQntCl0JjQnNCh0KLQkNCbINCQ0JPQkNCi0JAKK9CI0J7QiNCY0Isg0ILQntCg0ILQlQor0IjQntCI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCI0JjQiyDQkdCe0JbQmNCU0JDQoAor0IjQntCI0JjQiyDQlNCe0JjQndCQCivQiNCe0IjQmNCLINCU0KDQkNCT0JgKK9CI0J7QiNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSINCU0KAKK9CI0J7QiNCY0Isg0JTQo9Co0JDQnQor0IjQntCI0JjQiyDQk9CV0J7QoNCT0JjQiNCVCivQiNCe0IjQmNCLINCY0JLQkNCd0JrQkAor0IjQntCI0JjQiyDQmNCS0JDQndCa0JAKK9CI0J7QiNCY0Isg0IjQldCb0JAKK9CI0J7QiNCY0Isg0IjQldCb0JXQndCQCivQiNCe0IjQmNCLINCJ0KPQkdCY0KbQkAor0IjQntCI0JjQiyDQnNCY0IvQmtCeCivQiNCe0IjQmNCLINCc0JjQm9CV0JLQkAor0IjQntCI0JjQiyDQnNCY0JvQntCoCivQiNCe0IjQmNCLINCc0JjQntCU0KDQkNCTCivQiNCe0IjQmNCLINCc0JjQoNCa0J4KK9CI0J7QiNCY0Isg0JzQmNCg0JrQngor0IjQntCI0JjQiyDQnNCY0KDQntCJ0KPQkQor0IjQntCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0IjQmNCLINCe0JvQk9CQCivQiNCe0IjQmNCLINCh0JDQktCQCivQiNCe0IjQmNCLINCh0JjQnNCeCivQiNCe0IjQmNCLINCh0KLQkNCd0JAKK9CI0J7QiNCY0Isg0KHQotCV0JLQkNCdCivQiNCe0IjQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CI0J7QiNCY0Isg0KHQktCV0KLQngor0IjQntCI0JjQnSDQkdCQ0KDQkdCQ0KDQkAor0IjQntCI0JjQnSDQlNCe0JHQoNCe0KHQkNCSCivQiNCe0IjQmNCdINCh0JjQndCY0KjQkAor0IjQntCI0JrQmNCLINCC0J7QoNCC0JUKK9CI0J7QiNCa0JjQiyDQgtCe0KDQgtCVCivQiNCe0IjQmtCY0Isg0ILQntCg0ILQlQor0IjQntCI0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0IjQmtCY0Isg0JHQntCg0JjQodCb0JDQktCQCivQiNCe0IjQmtCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCe0IjQmtCY0Isg0JTQkNCd0JjQptCQCivQiNCe0IjQmtCY0Isg0JTQmNCd0JAKK9CI0J7QiNCa0JjQiyDQlNCj0KjQkNCdCivQiNCe0IjQmtCY0Isg0JTQo9Co0JrQngor0IjQntCI0JrQmNCLINCI0J7QktCY0KbQkAor0IjQntCI0JrQmNCLINCa0JDQotCY0KbQkAor0IjQntCI0JrQmNCLINCa0JDQotCY0KbQkAor0IjQntCI0JrQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCe0IjQmtCY0Isg0JzQkNCg0JjQptCQCivQiNCe0IjQmtCY0Isg0JzQkNCg0JjQiNCQCivQiNCe0IjQmtCY0Isg0JzQkNCg0JjQiNCQCivQiNCe0IjQmtCY0Isg0JzQmNCb0JDQlNCY0J0KK9CI0J7QiNCa0JjQiyDQnNCY0JvQldCd0JAKK9CI0J7QiNCa0JjQiyDQnNCY0JvQldCd0JrQngor0IjQntCI0JrQmNCLINCc0JjQm9CY0KbQkAor0IjQntCI0JrQmNCLINCc0JjQm9CY0KbQkAor0IjQntCI0JrQmNCLINCc0JjQntCU0KDQkNCTCivQiNCe0IjQmtCY0Isg0JzQmNCg0IjQkNCd0JAg0JTQoAor0IjQntCI0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QiNCa0JjQiyDQndCQ0JTQkAor0IjQntCI0JrQmNCLINCe0JvQk9CQCivQiNCe0IjQmtCY0Isg0J/QkNCI0JAKK9CI0J7QiNCa0JjQiy3Qn9Ce0JvQldCi0KLQniDQl9Ce0KDQkAor0IjQntCI0JrQmNCLINCg0JDQlNCY0JLQntCICivQiNCe0IjQmtCY0Isg0KDQkNCU0JjQktCe0IgKK9CI0J7QiNCa0JjQiyDQoNCQ0JTQntCI0JrQkAor0IjQntCI0JrQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CI0J7QiNCa0JjQiyDQodCb0JDQktCa0J4KK9CI0J7QiNCa0JjQiyDQodCc0JjQidCa0JAKK9CI0J7QiNCa0JjQiyDQodCd0JXQltCQ0J3QkAor0IjQntCI0JrQmNCLINCh0J7QpNCY0IjQkAor0IjQntCI0JrQmNCLINCh0J7QmtCeCivQiNCe0IjQmtCY0Isg0KHQotCQ0J3QmtCeCivQiNCe0IjQmtCY0Isg0KPQoNCe0KgKK9CI0J7QiNCa0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCe0IjQmtCY0Isg0JfQlNCg0JDQktCa0J4KK9CI0J7QmtCQINCa0JDQotCQ0KDQmNCd0JAKK9CI0J7QmtCQINCS0JDQodCeCivQiNCe0JrQkNCd0JjQiyDQmNCb0JjQiNCQCivQiNCe0JrQkNCd0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9CI0J7QmtCQ0J3QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0IjQntCa0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0IjQntCa0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0IjQntCa0JDQndCe0JLQmNCLINCU0JXQodCY0JzQmNCgCivQiNCe0JrQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0J7QmtCQ0J3QntCS0JjQiyDQoNCQ0JTQkAor0IjQntCa0JDQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQiNCe0JrQkNCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQiNCe0JrQkNCd0J7QktCY0Isg0KLQntCU0J7QoAor0IjQntCa0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CI0J7QmtCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0KAKK9CI0J7QmtCY0KjQmNCLINCR0KDQkNCd0JrQngor0IjQntCa0JjQqNCY0Isg0KHQn9CQ0KHQntCI0JUKK9CI0J7QmtCY0Isg0JbQkNCg0JrQngor0IjQntCa0JjQiyDQltCQ0KDQmtCeCivQiNCe0JrQmNCLINCW0JjQktCQ0J0KK9CI0J7QmtCY0Isg0ILQntCg0ILQlQor0IjQntCa0JjQiyDQgtCj0KDQkNCCCivQiNCe0JrQmNCLINCR0J7QltCY0JTQkNCgCivQiNCe0JrQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CI0J7QmtCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCe0JrQmNCLINCR0KPQlNCY0JzQmNCgCivQiNCe0JrQmNCLINCm0JLQmNCI0JXQotCY0J0KK9CI0J7QmtCY0Isg0JTQkNCd0JUKK9CI0J7QmtCY0Isg0JTQntCR0KDQmNCb0JAKK9CI0J7QmtCY0Isg0JTQoNCQ0JPQkNCdCivQiNCe0JrQmNCLINCU0KDQkNCT0JDQnQor0IjQntCa0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QmtCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CI0J7QmtCY0Isg0JTQoNCQ0JPQmNCK0JAKK9CI0J7QmtCY0Isg0JTQo9Co0JDQndCa0JAKK9CI0J7QmtCY0Isg0JTQo9Co0JDQnQor0IjQntCa0JjQiyDQlNCj0KjQkNCdCivQiNCe0JrQmNCLINCU0KPQqNCQ0J0KK9CI0J7QmtCY0Isg0JTQo9Co0JDQnQor0IjQntCa0JjQiyDQlNCj0KjQkNCdCivQiNCe0JrQmNCLINCU0KPQqNCQ0J0KK9CI0J7QmtCY0Isg0JjQk9CK0JDQogor0IjQntCa0JjQiyDQiNCV0JvQldCd0JAKK9CI0J7QmtCY0Isg0IjQntCa0JAKK9CI0J7QmtCY0Isg0JrQoNCh0KLQkNCdCivQiNCe0JrQmNCLINCa0KHQldCd0JjQiNCQCivQiNCe0JrQmNCLINCb0JDQmtCY0IsKK9CI0J7QmtCY0Isg0JvQkNCX0J4KK9CI0J7QmtCY0Isg0InQmNCJ0JDQndCQCivQiNCe0JrQmNCLINCJ0KPQkdCY0KbQkAor0IjQntCa0JjQiyDQidCj0JHQngor0IjQntCa0JjQiyDQm9Cj0JrQkAor0IjQntCa0JjQiyDQnNCQ0KDQkAor0IjQntCa0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QmtCY0Isg0JzQkNCg0JrQngor0IjQntCa0JjQiyDQnNCY0KXQkNCI0JvQngor0IjQntCa0JjQiyDQnNCY0JvQkNCdCivQiNCe0JrQmNCLINCc0JjQm9CQ0J0KK9CI0J7QmtCY0Isg0JzQmNCb0JDQnQor0IjQntCa0JjQiyDQnNCY0JvQkNCdCivQiNCe0JrQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCe0JrQmNCLINCc0JjQm9CV0JLQkAor0IjQntCa0JjQiyDQnNCY0JvQmNCI0JAKK9CI0J7QmtCY0Isg0JzQmNCb0JjQodCQ0JIKK9CI0J7QmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0J7QmtCY0Isg0JzQmNCb0J7QktCQ0J0KK9CI0J7QmtCY0Isg0JzQmNCg0JrQngor0IjQntCa0JjQiyDQnNCY0KDQmtCeCivQiNCe0JrQmNCLINCc0JjQoNCa0J4KK9CI0J7QmtCY0Isg0JzQmNCg0JrQngor0IjQntCa0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JrQmNCLINCd0JDQlNCQCivQiNCe0JrQmNCLINCd0JDQlNCQCivQiNCe0JrQmNCLINCd0JDQlNCY0KbQkAor0IjQntCa0JjQiyDQndCV0J3QkNCUCivQiNCe0JrQmNCLINCd0JjQmtCe0JvQkAor0IjQntCa0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QmtCY0Isg0J/QldCi0JDQoAor0IjQntCa0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQiNCe0JrQmNCLINCg0JDQlNCe0JjQptCQCivQiNCe0JrQmNCLINCg0JjQodCi0JAKK9CI0J7QmtCY0Isg0KHQkNCo0JAKK9CI0J7QmtCY0Isg0KHQmNCc0JAKK9CI0J7QmtCY0Isg0KHQmNCd0JjQqNCQCivQiNCe0JrQmNCLINCh0JvQkNCS0JrQngor0IjQntCa0JjQiyDQodCb0JDQktCa0J4KK9CI0J7QmtCY0Isg0KHQm9CQ0JLQmtCeCivQiNCe0JrQmNCLINCh0J3QldCW0JDQndCQCivQiNCe0JrQmNCLINCh0KLQldCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CI0J7QmtCY0Isg0KHQotCV0JLQkNCdCivQiNCe0JrQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0IjQntCa0JjQiyDQodCS0JXQotCe0JfQkNCgCivQiNCe0JrQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CI0J7QmtCY0Isg0KLQntCc0JjQodCb0JDQkgor0IjQntCa0JjQiyDQktCV0InQmtCeCivQiNCe0JrQmNCLINCS0JXQoNCQCivQiNCe0JrQmNCLINCS0JvQkNCU0J4KK9CI0J7QmtCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQntCa0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCe0JrQmNCLINCS0KPQiNCQ0JTQmNCdCivQiNCe0JrQmNCLINCS0KPQmtCQ0JTQmNCdCivQiNCe0JrQmNCLINCS0KPQmtCeCivQiNCe0JrQmNCLINCX0JvQkNCi0JAKK9CI0J7QmtCY0Isg0JfQntCg0JrQkAor0IjQntCa0JzQkNCd0J7QktCY0Isg0KHQkNCS0JXQotCQCivQiNCe0JrQntCS0JjQiyDQltCY0JLQmtCeCivQiNCe0JrQntCS0JjQiyDQgtCj0KDQgtCY0J3QkAor0IjQntCa0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQiNCe0JrQntCS0JjQiy3QnNCY0JrQmNCLINCc0JjQoNCI0JDQndCQCivQiNCe0JrQntCS0JjQiyDQnNCY0JvQmtCQCivQiNCe0JrQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0IjQntCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQntCa0KHQmNCLINCU0KDQkNCT0JjQqNCQCivQiNCe0JrQodCY0Isg0JPQntCI0JrQngor0IjQntCa0KHQmNCc0J7QktCLINCd0JXQkdCe0IjQqNCQCivQiNCe0JrQodCY0JzQntCS0JjQiyDQltCQ0KDQmtCeCivQiNCe0JrQodCY0JzQntCS0JjQiyDQlNCQ0KDQmtCeCivQiNCe0JrQodCY0JzQntCS0JjQiyDQlNCj0KjQmtCeCivQiNCe0JrQodCY0JzQntCS0JjQiyDQk9Ce0JvQo9CR0JDQndCa0JAKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCI0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQiNCe0JrQodCY0JzQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCJ0KPQkdCY0KHQkNCSINCU0KAKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCJ0KPQkdCY0KHQkNCSCivQiNCe0JrQodCY0JzQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0IjQntCa0KHQmNCc0J7QktCY0Isg0J3QkNCU0JAKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCf0JDQktCb0JUKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQiNCe0JrQodCY0JzQntCS0JjQiyDQodCY0J3QmNCo0JAKK9CI0J7QmtCh0JjQnNCe0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCa0KHQmNCc0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQntCa0KHQmNCc0J7QktCY0Isg0JfQm9CQ0KLQntCc0JjQoAor0IjQntCa0KHQmNCc0J7QktCY0Isg0JfQntCg0JDQnQor0IjQntCa0KHQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0IjQntCa0KHQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0IjQntCb0JTQmNCLINCc0JDQoNCQCivQiNCe0JvQlNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7Qm9CY0Isg0JbQmNCS0JDQnQor0IjQntCb0JjQiyDQltCY0JLQntCI0JjQnQor0IjQntCb0JjQiyDQkNCd0JPQldCb0JjQndCQCivQiNCe0JvQmNCLINCU0JDQndCY0JvQngor0IjQntCb0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQiNCe0JvQmNCLINCI0J7QktCQ0J0KK9CI0J7Qm9CY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9CI0J7Qm9CY0Isg0JrQntCh0KLQkAor0IjQntCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IjQntCb0JjQiyDQndCV0JHQntCI0KjQkAor0IjQntCb0JjQiyDQn9CV0KLQkNCgCivQiNCe0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7Qm9CY0Isg0KPQoNCe0KgKK9CI0J7Qm9CY0Isg0JLQkNCh0JAKK9CI0J7Qm9Ce0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQiNCe0J3Qp9CY0Isg0JzQkNCg0JAKK9CI0J7QndCQ0Kgg0JTQo9Co0JDQnQor0IjQntCd0JDQqCDQm9CQ0KHQm9CeCivQiNCe0J3QkNCoINCd0JjQmtCe0JvQkAor0IjQntCd0JjQiyDQkdCe0KjQmtCeCivQiNCe0J3QmNCLINCU0KDQkNCT0JDQnQor0IjQntCK0JXQkiDQnNCY0JvQmNCS0J7QiAor0IjQntCK0JXQkiDQodCb0JDQktCe0InQo9CRCivQiNCe0IrQmNCLINCh0JDQktCeCivQiNCe0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQiNCe0J3QotCe0JLQmNCLINCQ0JvQldCa0KHQkAor0IjQntCd0KLQntCS0JjQiy3QkdCY0JrQmNCLINCc0JjQoNCI0JDQndCQCivQiNCe0J3QotCe0JLQmNCLINCg0KPQlNCe0JvQpAor0IjQntCd0KPQl9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0J7QoNCU0JDQpyDQkNCd0JAKK9CI0J7QoNCU0JDQnSDQldCg0JbQldCR0JXQogor0IjQntCg0JTQkNCd0J7QkiDQmtCY0KDQmNCbCivQiNCe0KDQlNCQ0J3QntCS0KHQmtCYINCh0KLQkNCd0J7QiNCa0J4KK9CI0J7QoNCT0JDQndCe0JLQmNCLINCh0JjQnNCeCivQiNCe0KDQk9CY0Isg0JbQmNCS0JDQndCQCivQiNCe0KDQk9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0IjQntCg0JPQntCS0JDQndCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQiNCe0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CI0J7QoNCe0JLQmNCLINCg0JDQndCa0J4KK9CI0J7QodCV0JLQodCa0Jgg0KHQmNCc0JXQntCdCivQiNCe0KHQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0KHQmNCLINCk0JjQm9CY0J8KK9CI0J7QodCY0Isg0JjQm9CY0IjQkAor0IjQntCh0JjQiyDQmNCS0JDQnQor0IjQntCh0JjQiyDQmtCe0KHQkNCd0JAKK9CI0J7QodCY0Isg0InQo9CR0JjQndCa0J4KK9CI0J7QodCY0Isg0InQo9CR0JjQndCa0J4KK9CI0J7QodCY0Isg0InQo9CR0J7QnNCY0KAKK9CI0J7QodCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QodCY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0J7QodCY0Isg0J7QkdCg0JDQlAor0IjQntCh0JjQiyDQntCb0JPQkAor0IjQntCh0JjQiyDQoNCQ0JTQmNCd0JrQkAor0IjQntCh0JjQiyDQodCg0ILQkAor0IjQntCh0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QodCY0Isg0KHQotCV0JLQkNCdCivQiNCe0KHQmNCk0JjQlNCY0KEg0JrQntCh0KLQkAor0IjQntCh0JjQpNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0IjQntCh0JjQpNCe0JLQmNCLINCU0KDQkNCT0JjQiwor0IjQntCh0JjQpNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0IjQntCh0JjQpNCe0JLQmNCLINCe0JvQk9CQCivQiNCe0KHQmNCc0KfQldCSINCX0JLQntCd0JjQnNCY0KAKK9CI0J7QodCY0JzQntCSINCR0J7QoNCY0KHQm9CQ0JIKK9CI0J7QodCY0JzQntCSINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCh0JjQnNCe0JIg0JTQo9Co0JDQnQor0IjQntCh0JjQnNCe0JIg0JPQm9CY0JPQntCg0JjQiNCVCivQiNCe0KHQmNCc0J7QkiDQiNCV0JvQldCd0JAKK9CI0J7QodCY0JzQntCSINCh0KLQldCS0JDQnQor0IjQntCh0JjQnNCe0JIg0JLQkNCh0JjQm9CY0IjQlQor0IjQntCh0JjQnNCe0JIg0JLQntCI0J4KK9CI0J7QodCY0JzQntCS0JjQiyDQltCY0JLQkAor0IjQntCh0JjQnNCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQiNCe0KHQmNCc0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9CI0J7QodCY0JzQntCS0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQiNCe0KHQmNCc0J7QktCY0Isg0JzQkNCg0JrQngor0IjQntCh0JjQnNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0IjQntCh0JjQnNCe0JLQmNCLINCd0JXQndCQ0JQKK9CI0J7QodCY0JzQntCS0JjQiyDQodCY0J3QmNCo0JAKK9CI0J7QodCY0JzQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QodCY0JzQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QodCY0JzQntCS0JjQiyDQodCi0JXQktCa0JAKK9CI0J7QodCY0JzQntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0IjQntCh0JjQnNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0J7QodCY0JzQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQiNCe0KHQmNCc0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQntCh0JjQnNCe0JLQmNCLINCX0JTQldCd0JrQkAor0IjQntCh0JjQnNCe0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QodCY0J0g0JTQoNCQ0JPQkNCdCivQiNCe0KHQmNCdINCc0JDQoNCY0IjQkAor0IjQntCh0JjQnSDQnNCY0JvQlQor0IjQntCh0JjQnSDQoNCQ0JTQmNCm0JAKK9CI0J7QodCY0J0g0KDQkNCU0J7QktCQ0J0KK9CI0J7QodCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0IjQntCh0JjQn9Ce0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CI0J7QodCY0J/QntCS0JjQiyDQkdCe0KDQngor0IjQntCh0JjQn9Ce0JLQmNCLINCU0JDQndCY0KbQkAor0IjQntCh0JjQn9Ce0JLQmNCLINCY0JLQmNCm0JAKK9CI0J7QodCY0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQiNCe0KHQmNCf0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQntCh0JjQn9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0J7QotCQ0J3QntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0IjQntCi0JDQndCe0JLQmNCLINCa0J7QoNCd0JXQm9CY0IjQkAor0IjQntCi0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQiNCe0KLQkNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CI0J7QotCQ0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0IjQntCi0JDQndCe0JLQmNCLINCg0JDQiNCa0J4KK9CI0J7QotCQ0J3QntCS0JjQiyDQodCi0JDQndCa0J4KK9CI0J7QotCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQiNCe0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QktCn0JjQiyDQlNCj0KjQmtCeCivQiNCe0JLQp9CY0Isg0KHQm9CQ0JLQmtCeCivQiNCe0JLQp9CY0Isg0JLQm9CQ0JTQkNCdCivQiNCe0JLQkNCn0JXQktCY0Isg0JTQnNCY0KLQkNCgCivQiNCe0JLQkNCo0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQntCS0JDQndCn0JXQktCY0Isg0JHQntCh0JjQidCa0JAKK9CI0J7QktCQ0J3Qp9CV0JLQmNCLINCT0J7QiNCa0J4KK9CI0J7QktCQ0J3Qp9CV0JLQmNCLINCY0JvQmNCI0JAKK9CI0J7QktCQ0J3Qp9CV0JLQmNCLINCI0JXQm9CY0KbQkAor0IjQntCS0JDQndCn0JXQktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JDQndCn0JXQktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JDQndCn0JXQktCY0Isg0JrQntCS0JjQidCa0JAKK9CI0J7QktCQ0J3Qp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0IjQntCS0JDQndCn0JXQktCY0Ist0JfQldCa0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCQ0J3Qp9CV0JLQmNCLLdCX0JXQmtCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQkNCd0KfQmNCLINCU0KDQkNCT0JjQptCQCivQiNCe0JLQkNCd0KfQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9CI0J7QktCQ0J3Qp9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7QktCQ0J3Qp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCS0JDQndCm0JDQmCDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QlNCY0Isg0JzQkNCd0JTQkAor0IjQntCS0JDQndCU0JjQiyDQnNCY0JvQntCoCivQiNCe0JLQkNCd0JTQmNCdINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QmNCLINCC0J7QoNCC0JUKK9CI0J7QktCQ0J3QmNCLINCC0KPQoNCeCivQiNCe0JLQkNCd0JjQiyDQkdCe0KjQmtCeCivQiNCe0JLQkNCd0JjQiyDQkdCe0KjQmtCeCivQiNCe0JLQkNCd0JjQiyDQlNCe0JHQoNCY0KbQkAor0IjQntCS0JDQndCY0Isg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CI0J7QktCQ0J3QmNCLINCc0JDQoNCY0IjQkAor0IjQntCS0JDQndCY0Isg0JzQmNCg0JrQngor0IjQntCS0JDQndCY0Isg0JzQm9CQ0JTQldCdCivQiNCe0JLQkNCd0JjQiyDQnNCe0JzQmNCgCivQiNCe0JLQkNCd0JjQiyDQntCb0JjQktCV0KDQkAor0IjQntCS0JDQndCY0Isg0J7Qm9CY0JLQldCg0JAKK9CI0J7QktCQ0J3QmtCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QktCQ0J3QmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCSINCW0JDQoNCa0J4KK9CI0J7QktCQ0J3QntCSINCW0JjQktCQCivQiNCe0JLQkNCd0J7QkiDQkdCY0InQkNCd0JAKK9CI0J7QktCQ0J3QntCSINCR0J7QqNCa0J4KK9CI0J7QktCQ0J3QntCSINCR0J7QiNCQ0J3QkAor0IjQntCS0JDQndCe0JIg0JHQntCg0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JIg0JHQntCg0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QkiDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCSINCU0KDQkNCT0JjQptCQCivQiNCe0JLQkNCd0J7QkiDQlNCg0JDQk9CY0IrQkAor0IjQntCS0JDQndCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0IjQntCS0JDQndCe0JIg0JTQoNCQ0JPQntCc0JjQoAor0IjQntCS0JDQndCe0JIg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JIg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JIg0JTQo9Co0JjQptCQCivQiNCe0JLQkNCd0J7QkiDQmNCT0IrQkNCiCivQiNCe0JLQkNCd0J7QkiDQmNCh0JAKK9CI0J7QktCQ0J3QntCSINCY0JLQkNCdCivQiNCe0JLQkNCd0J7QkiDQiNCQ0KjQkAor0IjQntCS0JDQndCe0JIg0IjQkNCh0J3QkAor0IjQntCS0JDQndCe0JIg0IjQldCb0JXQndCQCivQiNCe0JLQkNCd0J7QkiDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QkiDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QkiDQiNCe0JLQmNCm0JAKK9CI0J7QktCQ0J3QntCSINCb0JDQl9CQ0KAKK9CI0J7QktCQ0J3QntCSINCb0JDQl9CQ0KAKK9CI0J7QktCQ0J3QntCSINCc0JXQm9CQ0J3QmNCI0JAKK9CI0J7QktCQ0J3QntCSINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCSINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCSINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCSINCc0JjQm9CY0JLQntCICivQiNCe0JLQkNCd0J7QkiDQnNCY0JvQntCoCivQiNCe0JLQkNCd0J7QkiDQnNCY0KDQiNCQ0J3QkAor0IjQntCS0JDQndCe0JIg0JzQm9CQ0JTQldCdCivQiNCe0JLQkNCd0J7QkiDQnNCe0JzQp9CY0JvQngor0IjQntCS0JDQndCe0JIg0J/QldCi0JDQoAor0IjQntCS0JDQndCe0JIg0KDQkNCU0JjQktCe0IgKK9CI0J7QktCQ0J3QntCSINCh0JDQktCQCivQiNCe0JLQkNCd0J7QkiDQodCf0J7QnNCV0J3QmtCQCivQiNCe0JLQkNCd0J7QkiDQodCi0JXQktCQ0J3QmtCQCivQiNCe0JLQkNCd0J7QkiDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCSINCh0JLQldCi0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JIg0KHQktCV0KLQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QkiDQodCS0JXQotCe0JfQkNCgCivQiNCe0JLQkNCd0J7QkiDQotCe0JTQntCgCivQiNCe0JLQkNCd0J7QkiDQotCe0JzQkAor0IjQntCS0JDQndCe0JIg0JLQmNCU0JAKK9CI0J7QktCQ0J3QntCSINCS0JvQkNCU0JjQnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQp9CV0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCn0JXQlNCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JbQmNCS0JDQlNCY0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JbQmNCS0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCW0JjQktCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQntCI0JjQnQor0IjQntCS0JDQndCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CI0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQntCg0JDQlAor0IjQntCS0JDQndCe0JLQmNCLINCW0JjQktCe0KLQkAor0IjQntCS0JDQndCe0JLQmNCLINCC0JXQndCC0JgKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0IjQntCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0IjQntCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0IjQntCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0IjQntCS0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCj0KDQgtCY0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQgtCj0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCC0KPQoNCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQndCC0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCd0ILQkAor0IjQntCS0JDQndCe0JLQmNCLINCQ0J3QgtCV0JvQmNCI0JAg0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCd0JTQoNCY0IjQkCDQlNCY0J/QmyDQmNCd0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCd0JTQoNCY0IjQkCDQlNCY0J/QmyDQntCV0KYKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCQ0J3QmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCd0JrQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCg0JDQndCC0JXQmwor0IjQntCS0JDQndCe0JLQmNCLINCQ0KDQodCQINCU0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkNCg0KHQkAor0IjQntCS0JDQndCe0JLQmNCLINCQ0KDQodCV0J3QmNCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiy3QkNCg0KHQmNCLINCS0JjQntCb0JXQotCQCivQiNCe0JLQkNCd0J7QktCY0Ist0JHQkNCd0JrQntCS0JDQp9Ca0Jgg0IjQntCS0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0IjQntCS0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAg0J/QoNCe0KTQldCh0J7QoAor0IjQntCS0JDQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCW0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCg0JjQktCe0Igg0JTQmNCf0Jsg0JjQndCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQkdCe0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIg0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KbQktCV0KLQkAor0IjQntCS0JDQndCe0JLQmNCLINCm0JLQldCi0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCU0JDQm9CY0JHQntCgINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQkNCb0JjQkdCe0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCU0JXQiNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCV0IjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQntCR0KDQntCh0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQiwor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQiwor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCS0J7QiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkSDQntCV0KYKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgINCf0KDQntCkCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCU0KPQqNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQlNCj0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCV0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQldCc0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JXQodCc0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQldCS0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KTQldCb0JjQptCY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCk0JjQm9CY0J8KK9CI0J7QktCQ0J3QntCS0JjQiyDQk9CV0J7QoNCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JPQntCI0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCT0J7QiNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JPQntCg0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQk9Cg0J7Ql9CU0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQk9Cg0KPQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JPQoNCj0IjQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQpdCg0JjQodCi0JjQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQm9CVCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQoNCY0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCY0JLQkNCdINCU0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmNCS0JDQndCa0JAg0JTQoCDQn9Cg0J7QpAor0IjQntCS0JDQndCe0JLQmNCLINCY0JLQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCY0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JjQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCQ0KjQkAor0IjQntCS0JDQndCe0JLQmNCLINCI0JDQlNCg0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCQ0KHQnNCY0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQldCb0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0IjQntCS0JDQndCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCV0JvQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQldCS0KLQkAor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQntCS0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCI0KPQm9Ca0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JrQntCh0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JrQntCh0KLQkAor0IjQntCS0JDQndCe0JLQmNCLINCa0J7QodCi0JAKK9CI0J7QktCQ0J3QntCS0JjQiy3QmtCe0KHQotCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQmtCe0JLQmNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQqNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQqNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCJ0KPQkdCY0JLQntCI0JUg0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgINCc0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCJ0KPQkdCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JvQo9Ca0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQm9Cj0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCb0KPQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JvQo9Ca0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0JvQmNCo0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JDQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQkNCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQkNCg0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQi9CeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCI0JDQogor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQqNCY0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0g0JDQlNCS0J7QmtCQ0KIKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQniDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0KLQmNCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQldCS0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQlQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CVCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JjQiwor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9CY0IsKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCI0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQidCQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ca0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QitCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQmNCf0Jsg0JjQndCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQoCDQm9CV0JrQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQmNCi0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCc0JvQkNCC0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCb0JDQlNCV0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0IjQntCS0JDQndCe0JLQmNCLINCc0J7QnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JDQlNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QldCU0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQnNCQ0IrQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQnNCQ0IrQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQndCQ0JQg0JDQlNCS0J7QmtCQ0KIKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCV0J3QkNCUCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QldCd0JDQlAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQndCQ0JQKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCV0JLQldCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQndCV0JLQldCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCd0JXQktCV0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0J3QntCS0JDQmgor0IjQntCS0JDQndCe0JLQmNCLINCd0J7QktCY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCe0JHQoNCQ0JQKK9CI0J7QktCQ0J3QntCS0JjQiyDQntCb0JPQkAor0IjQntCS0JDQndCe0JLQmNCLINCe0JvQk9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0J7Qm9CT0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQntCb0JPQkAor0IjQntCS0JDQndCe0JLQmNCLINCe0JvQk9CY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCe0KHQotCe0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCe0KHQotCe0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCe0KHQotCe0IjQkAor0IjQntCS0JDQndCe0JLQmNCLINCf0JDQktCb0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0IjQntCS0JDQndCe0JLQmNCLINCf0JXQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QldCg0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QldCg0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QldCg0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CV0KDQngor0IjQntCS0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMg0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQiNCe0JLQkNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CI0J7QktCQ0J3QntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0JjQqNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0JjQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAg0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QitCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQkNCI0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQndCC0JXQmwor0IjQntCS0JDQndCe0JLQmNCLINCg0JDQndCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCQ0KLQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KDQo9CW0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCQ0KjQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0JDQktCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQkNCS0JXQotCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQkNCS0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCQ0JLQngor0IjQntCS0JDQndCe0JLQmNCLINCh0JXQm9CY0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQldCg0JDQpNCY0JwKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCY0JzQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0JjQnNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQmNCc0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCY0J3QmNCo0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCb0JDQktCY0KbQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQoAor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0JzQmNCJ0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCc0JjQidCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQnNCY0InQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQnNCY0InQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQntCk0JjQiNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQn9CY0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0J/QntCc0JXQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCg0ILQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQoNCR0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCh0KDQldCi0JXQnQor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQkNCd0JjQqNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0J7QiNCo0JAKK9CI0J7QktCQ0J3QntCS0JjQiy3QodCi0J7QiNCQ0J0g0JPQldCg0KLQoNCj0JTQkCDQlNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQodCj0JfQkNCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0IjQntCS0JDQndCe0JLQmNCLINCi0JDQotCI0JDQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KLQldCe0JTQntCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQotCY0KXQntCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0KLQntCU0J7QoAor0IjQntCS0JDQndCe0JLQmNCLINCi0J7QnNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQotCg0JDQiNCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQotCj0JPQntCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCj0KDQntCoCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQkNCh0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCQ0KHQkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0IjQntCS0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCQ0KHQmNCJCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCb0JjQp9Ca0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0JvQmNCR0J7QoAor0IjQntCS0JDQndCe0JLQmNCLINCS0JXQm9CY0JHQntCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCb0JjQkdCe0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0JvQmNCd0JrQkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JXQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0KDQkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JXQoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCg0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCg0JjQptCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCg0J7QidCj0JEKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0KHQldCb0JjQnQor0IjQntCS0JDQndCe0JLQmNCLINCS0JXQodCd0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCV0KHQndCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQldCh0J3QkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JjQlNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQmNCU0J7QodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCS0JjQm9Cc0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCb0JDQlNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0IjQntCS0JDQndCe0JLQmNCLINCS0JvQkNCI0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0IjQntCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIg0JTQoCDQn9Cg0J7QpAor0IjQntCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0J7QktCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQiNCe0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQntCS0JDQndCe0JLQmNCLINCS0KPQp9CV0KLQkAor0IjQntCS0JDQndCe0JLQmNCLINCX0JDQk9Ce0KDQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQlNCV0J3QmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CI0J7QktCQ0J3QntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0IjQntCS0JDQndCe0JLQmNCLINCX0J7QoNCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQntCg0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9CI0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQmtCQCivQiNCe0JLQkNCd0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0IjQntCS0JDQndCe0JLQodCa0JAg0KbQktCV0KLQkAor0IjQntCS0JDQndCe0JLQodCa0JAg0KLQkNCh0JrQkAor0IjQntCS0JDQndCe0JLQodCa0Jgg0JTQmNCc0JjQotCQ0KAKK9CI0J7QktCQ0J3QntCS0KHQmtCYINCU0KPQqNCQ0J0KK9CI0J7QktCQ0J3QntCS0KHQmtCYINCc0JjQm9CVCivQiNCe0JLQkNCd0J7QktCh0JrQmCDQnNCY0JvQlQor0IjQntCS0JDQndCe0JLQodCa0Jgg0JzQmNCb0JjQptCQCivQiNCe0JLQkNCd0J7QktCh0JrQmCDQndCY0JrQntCb0JAKK9CI0J7QktCQ0J3QntCS0KHQmtCYINCf0JXQotCQ0KAKK9CI0J7QktCQ0J3QntCS0KHQmtCYINCh0JjQnNCV0J7QndCQCivQiNCe0JLQkNCd0J7QktCh0JrQmCDQodCi0J7QiNCQ0JTQmNCdCivQiNCe0JLQldCgINCc0JjQpdCQ0IkKK9CI0J7QktCV0KLQmNCLINCQ0J3QlNCg0JjQiNCQCivQiNCe0JLQldCi0JjQiyDQkdCg0JDQndCa0J4KK9CI0J7QktCV0KLQmNCLINCR0KDQkNCd0JrQngor0IjQntCS0JXQotCY0Isg0JzQmNCb0JjQptCQCivQiNCe0JLQldCi0JjQiyDQodCi0JDQndCa0J4KK9CI0J7QktCV0KLQmNCLINCS0JXQodCV0JvQmNCdCivQiNCe0JLQmNCn0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoCDQlNCgCivQiNCe0JLQmNCn0JjQiyDQp9CV0JTQntCc0JjQoAor0IjQntCS0JjQp9CY0Isg0JbQkNCg0JrQngor0IjQntCS0JjQp9CY0Isg0JbQkNCg0JrQngor0IjQntCS0JjQp9CY0Isg0JbQldCJ0JrQngor0IjQntCS0JjQp9CY0Isg0JbQmNCS0JDQnQor0IjQntCS0JjQp9CY0Isg0ILQntCg0ILQlQor0IjQntCS0JjQp9CY0Isg0ILQntCg0ILQlQor0IjQntCS0JjQp9CY0Isg0ILQo9Cg0JAKK9CI0J7QktCY0KfQmNCLINCQ0J3QmtCY0KbQkAor0IjQntCS0JjQp9CY0Isg0JHQntCo0JrQngor0IjQntCS0JjQp9CY0Isg0JHQntCT0JTQkNCdCivQiNCe0JLQmNCn0JjQiyDQkdCe0KDQkAor0IjQntCS0JjQp9CY0Isg0JHQoNCQ0J3QlQor0IjQntCS0JjQp9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CI0J7QktCY0KfQmNCLINCR0KDQkNCd0JrQkAor0IjQntCS0JjQp9CY0Isg0JTQldCI0JDQnQor0IjQntCS0JjQp9CY0Isg0JTQoNCQ0JPQkNCdCivQiNCe0JLQmNCn0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0J7QktCY0KfQmNCLINCU0KDQkNCT0JDQnQor0IjQntCS0JjQp9CY0Isg0JTQoNCQ0JPQkNCdCivQiNCe0JLQmNCn0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQiNCe0JLQmNCn0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQmNCn0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQmNCn0JjQiyDQlNCj0KjQmtCeCivQiNCe0JLQmNCn0JjQiyDQk9CV0J7QoNCT0JjQiNCVCivQiNCe0JLQmNCn0JjQiyDQpdCV0JvQldCd0JAKK9CI0J7QktCY0KfQmNCLINCY0JvQmNCI0JAKK9CI0J7QktCY0KfQmNCLINCY0JvQmNCI0JAKK9CI0J7QktCY0KfQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQiNCe0JLQmNCn0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQmNCn0JjQiyDQiNCe0JLQmNCm0JAKK9CI0J7QktCY0KfQmNCLINCa0JDQotCY0KbQkAor0IjQntCS0JjQp9CY0Isg0JvQkNCX0JDQoAor0IjQntCS0JjQp9CY0Isg0JvQldCf0J7QodCQ0JLQkAor0IjQntCS0JjQp9CY0Isg0InQmNCJ0JDQndCQCivQiNCe0JLQmNCn0JjQiyDQidCY0InQkNCd0JAKK9CI0J7QktCY0KfQmNCLINCJ0KPQkdCY0KbQkAor0IjQntCS0JjQp9CY0Isg0InQo9CR0JjQptCQCivQiNCe0JLQmNCn0JjQiyDQidCj0JHQmNCd0JrQkAor0IjQntCS0JjQp9CY0Isg0InQo9CR0J7QnNCY0KAKK9CI0J7QktCY0KfQmNCLINCc0JDQmtCh0JjQnAor0IjQntCS0JjQp9CY0Isg0JzQkNCg0JAKK9CI0J7QktCY0KfQmNCLINCc0JDQoNCY0IjQkAor0IjQntCS0JjQp9CY0Isg0JzQkNCg0JjQiNCQCivQiNCe0JLQmNCn0JjQiyDQnNCQ0KDQmtCeCivQiNCe0JLQmNCn0JjQiyDQnNCQ0KDQmtCeCivQiNCe0JLQmNCn0JjQiyDQnNCQ0KDQmtCeCivQiNCe0JLQmNCn0JjQiyDQnNCQ0KDQmtCeCivQiNCe0JLQmNCn0JjQiyDQnNCY0JvQkNCU0JjQnQor0IjQntCS0JjQp9CY0Isg0JzQmNCb0JDQnQor0IjQntCS0JjQp9CY0Isg0JzQmNCb0JDQnQor0IjQntCS0JjQp9CY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QktCY0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQiNCe0JLQmNCn0JjQiyDQnNCY0JvQmNCm0JAKK9CI0J7QktCY0KfQmNCLINCc0JjQm9CY0KbQkAor0IjQntCS0JjQp9CY0Isg0JzQmNCb0J7QqAor0IjQntCS0JjQp9CY0Isg0JzQmNCb0J7QqAor0IjQntCS0JjQp9CY0Isg0JzQmNCb0J7QnNCY0KAKK9CI0J7QktCY0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCe0JLQmNCn0JjQiyDQnNCY0JvQntCS0JDQnQor0IjQntCS0JjQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0IjQntCS0JjQp9CY0Isg0JzQm9CQ0JTQldCdCivQiNCe0JLQmNCn0JjQiyDQntCR0KDQkNCUCivQiNCe0JLQmNCn0JjQiyDQntCb0JPQkAor0IjQntCS0JjQp9CY0Isg0J/QkNCI0JAKK9CI0J7QktCY0KfQmNCLINCf0JXQotCQ0KAKK9CI0J7QktCY0KfQmNCLINCg0JDQlNCQCivQiNCe0JLQmNCn0JjQiyDQoNCQ0JTQlQor0IjQntCS0JjQp9CY0Isg0KDQkNCU0JjQodCb0JDQkgor0IjQntCS0JjQp9CY0Isg0KDQkNCU0JjQktCe0IjQlQor0IjQntCS0JjQp9CY0Isg0KDQkNCU0J7QnNCY0KAKK9CI0J7QktCY0KfQmNCLINCg0JDQlNCe0JLQkNCdCivQiNCe0JLQmNCn0JjQiyDQoNCQ0KLQmtCeCivQiNCe0JLQmNCn0JjQiyDQodCQ0JLQldCi0JAKK9CI0J7QktCY0KfQmNCLINCh0JjQnNCeCivQiNCe0JLQmNCn0JjQiyDQodCb0JDQktCa0J4KK9CI0J7QktCY0KfQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQiNCe0JLQmNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQiNCe0JLQmNCn0JjQiyDQodCg0JXQotCV0J0KK9CI0J7QktCY0KfQmNCLINCh0KLQkNCd0JrQngor0IjQntCS0JjQp9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQiNCe0JLQmNCn0JjQiyDQodCS0JXQotCe0JfQkNCgCivQiNCe0JLQmNCn0JjQiyDQodCS0JXQotCe0JfQkNCgCivQiNCe0JLQmNCn0JjQiyDQotCQ0J3QkNCh0JjQiNCVCivQiNCe0JLQmNCn0JjQiyDQotCQ0KLQiNCQ0J3QkAor0IjQntCS0JjQp9CY0Isg0KLQntCU0J7QoAor0IjQntCS0JjQp9CY0Isg0KPQoNCe0KgKK9CI0J7QktCY0KfQmNCLINCS0JDQodCQCivQiNCe0JLQmNCn0JjQiyDQktCV0KDQmNCm0JAKK9CI0J7QktCY0KfQmNCLINCS0J7QiNCY0J0KK9CI0J7QktCY0KfQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CI0J7QktCY0KfQmNCLINCX0JTQoNCQ0JLQmtCeCivQiNCe0JLQmNCn0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQmNCn0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0IjQntCS0JjQp9CY0J0g0JDQndCY0KbQkAor0IjQntCS0JjQp9CY0J0g0JrQkNCi0JjQptCQCivQiNCe0JLQmNCn0JjQnSDQidCj0JHQmNCm0JAKK9CI0J7QktCY0KfQmNCdINCJ0KPQkdCY0KbQkAor0IjQntCS0JjQp9CY0J0g0JzQmNCb0J7QktCQ0J0KK9CI0J7QktCY0KfQmNCdINCh0JvQkNCS0JrQngor0IjQntCS0JjQp9CY0J0g0KHQntCk0JjQiNCQCivQiNCe0JLQmNCn0JjQnSDQotCe0KjQkAor0IjQntCS0JjQqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCY0KjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0IjQntCS0JjQqNCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQiNCe0JLQmNCo0JjQiyDQltCQ0KDQmtCeCivQiNCe0JLQmNCo0JjQiyDQgtCj0KDQngor0IjQntCS0JjQqNCY0Isg0JHQntCg0J4KK9CI0J7QktCY0KjQmNCLINCU0KPQqNCQ0J0KK9CI0J7QktCY0KjQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCY0KjQmNCLINCc0JjQotCQ0KAKK9CI0J7QktCY0KjQmNCLINCd0JjQmtCe0JvQkAor0IjQntCS0JjQqNCY0Isg0J/QkNCS0JvQlQor0IjQntCS0JjQqNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CI0J7QktCY0KjQmNCLINCh0JjQnNCeCivQiNCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQiNCe0JLQmNCLINCW0JDQoNCa0J4KK9CI0J7QktCY0Isg0JbQkNCg0JrQngor0IjQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0IjQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0IjQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0IjQntCS0JjQiyDQgtCe0KDQgtCVCivQiNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQiNCe0JLQmNCLINCQ0J3QmNCm0JAKK9CI0J7QktCY0Isg0JHQntCo0JrQngor0IjQntCS0JjQiyDQkdCe0JHQkNCdCivQiNCe0JLQmNCLINCR0J7QoNCQCivQiNCe0JLQmNCLINCR0KDQkNCd0JrQngor0IjQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CI0J7QktCY0Isg0KbQktCV0KLQkAor0IjQntCS0JjQiyDQlNCQ0JLQmNCUCivQiNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0IjQntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0IjQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQiNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CI0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQntCS0JjQiyDQlNCj0KjQkNCdCivQiNCe0JLQmNCLINCV0KDQmNCa0JAKK9CI0J7QktCY0Isg0JPQntCI0JrQngor0IjQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0IjQntCS0JjQiyDQmNCS0JDQndCQCivQiNCe0JLQmNCLINCY0JLQkNCdCivQiNCe0JLQmNCLINCI0JDQlNCg0JDQndCa0JAg0JTQoAor0IjQntCS0JjQiyDQiNCQ0KHQndCQCivQiNCe0JLQmNCLINCI0J7QptCeCivQiNCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQiNCe0JLQmNCLINCI0J7QktCQ0J0KK9CI0J7QktCY0Isg0IjQntCS0JDQnQor0IjQntCS0JjQiyDQiNCe0JLQngor0IjQntCS0JjQiyDQmtCe0KHQotCQCivQiNCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQiNCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0IjQntCS0JjQiyDQnNCQ0KDQmNCm0JAKK9CI0J7QktCY0Isg0JzQkNCg0JjQiNCQ0J0KK9CI0J7QktCY0Isg0JzQkNCg0JrQngor0IjQntCS0JjQiyDQnNCV0JvQmNCi0JAKK9CI0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9CI0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9CI0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9CI0J7QktCY0Isg0JzQmNCb0JDQnQor0IjQntCS0JjQiyDQnNCY0JvQkNCdCivQiNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CI0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CI0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0IjQntCS0JjQiyDQnNCY0JvQntCI0JjQptCQCivQiNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQiNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQiNCe0JLQmNCLINCc0JjQoNCQCivQiNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQiNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQiNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0IjQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQiNCe0JLQmNCLINCc0JjQotCQ0KAKK9CI0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0IjQntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQmNCLINCf0JDQiNCY0KbQkAor0IjQntCS0JjQiyDQn9CV0KDQodCY0JTQkAor0IjQntCS0JjQiyDQn9CV0KLQkNCgCivQiNCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0J7QktCY0Isg0KDQkNCU0JUKK9CI0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0IjQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQiNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQiNCe0JLQmNCLINCg0JDQiNCa0J4KK9CI0J7QktCY0Isg0KHQkNCS0J4KK9CI0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQiNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7QktCY0Isg0KHQn9CQ0KHQldCd0JjQiNCQCivQiNCe0JLQmNCLINCh0KLQkNCd0JAKK9CI0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9CI0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQiNCe0JLQmNCLINCh0KLQkNCd0JrQngor0IjQntCS0JjQiyDQodCi0JDQndCa0J4KK9CI0J7QktCY0Isg0KHQotCV0JLQkNCdCivQiNCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0IjQntCS0JjQiyDQktCQ0KHQkAor0IjQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0IjQntCS0JjQiyDQktCV0JvQmNCX0JDQoAor0IjQntCS0JjQiyDQktCV0InQmtCeCivQiNCe0JLQmNCLINCS0JXQoNCQCivQiNCe0JLQmNCLINCS0JXQoNCQCivQiNCe0JLQmNCLINCS0JXQoNCQCivQiNCe0JLQmNCLINCS0JvQkNCU0JAKK9CI0J7QktCY0Isg0JLQm9CQ0JTQkAor0IjQntCS0JjQiyDQktCb0JDQlNCQCivQiNCe0JLQmNCLINCS0JvQkNCU0JAKK9CI0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0IjQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CI0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0IjQntCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQiNCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQiNCe0JLQmNCLINCX0JLQntCd0JjQnNCY0KAKK9CI0J7QktCY0IvQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0IjQntCS0JjQi9CV0JLQmNCLINCc0JjQm9CQCivQiNCe0JLQmNCL0JXQktCY0Isg0JzQmNCb0KPQotCY0J0KK9CI0J7QktCY0IvQldCS0JjQiyDQndCV0J3QkNCUCivQiNCe0JLQmNCL0JXQktCY0Isg0KHQotCQ0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0IjQntCS0JjQi9CV0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9CI0J7QktCY0IvQldCS0JjQiyDQl9Ce0KDQkNCdCivQiNCe0JLQmNCdINCW0JjQktCQCivQiNCe0JLQmNCdINCQ0J3QgtCV0JvQmtCQCivQiNCe0JLQmNCdINCR0J7QoNCY0JLQntCICivQiNCe0JLQmNCdINCR0KDQkNCd0JrQngor0IjQntCS0JjQnSDQlNCg0JDQk9CQ0J0KK9CI0J7QktCY0J0g0JTQoNCQ0JPQntCc0JjQoAor0IjQntCS0JjQnSDQlNCj0KjQkNCdCivQiNCe0JLQmNCdINCU0KPQqNCQ0J0KK9CI0J7QktCY0J0g0JjQktCQ0J0KK9CI0J7QktCY0J0g0IjQldCb0JXQndCQCivQiNCe0JLQmNCdINCJ0KPQkdCY0KbQkAor0IjQntCS0JjQnSDQnNCY0JvQkNCdCivQiNCe0JLQmNCdINCc0JjQm9CY0JLQntCIINCU0KAKK9CI0J7QktCY0J0g0JzQmNCb0J7QqAor0IjQntCS0JjQnSDQnNCY0KDQiNCQ0J3QkAor0IjQntCS0JjQnSDQoNCQ0JTQntCh0JvQkNCSCivQiNCe0JLQmNCdINCg0JDQlNCe0JLQkNCdCivQiNCe0JLQmNCdINCh0JjQnNCQCivQiNCe0JLQmNCdINCh0JvQkNCS0JrQniDQlNCgCivQiNCe0JLQmNCdINCh0JLQldCi0JvQkNCd0JAKK9CI0J7QktCY0J0g0JLQldCh0J3QkAor0IjQntCS0JjQnSDQl9Cb0JDQotCe0IjQlQor0IjQntCS0JjQnSDQl9Cj0KHQmtCQCivQiNCe0JLQmNCd0J7QkiDQkdCe0JPQlNCQ0J0KK9CI0J7QktCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CI0J7QktCa0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAKK9CI0J7QktCe0JLQmNCLINCW0JXQidCa0J4KK9CI0J7QktCe0JLQmNCLINCQ0J3QmtCQCivQiNCe0JLQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0IjQntCS0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCe0JLQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCe0JLQntCS0JjQiyDQidCY0InQkNCd0JAKK9CI0J7QktCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCe0JLQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0IjQntCS0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQiNCe0JLQntCS0JjQiyDQndCY0JrQntCb0JAKK9CI0J7QktCe0JLQmNCLINCg0JDQlNCVCivQiNCe0JLQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0IjQntCS0J7QktCY0Isg0KDQkNCI0JrQngor0IjQntCS0J7QktCY0Isg0KHQotCQ0J3QkAor0IjQntCS0J7QktCY0Isg0KHQotCe0IjQkNCdCivQiNCe0JfQkNCd0J7QkiDQlNCQ0J3QmNCm0JAKK9CI0J7Ql9CQ0J3QntCSINCc0JjQm9CQ0J0KK9CI0J7Ql9CQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9CI0J7Ql9CQ0J3QntCSINCX0J7QoNCQ0J0KK9CI0J7Ql9CV0KTQp9CQ0Jog0JjQktCQ0J0KK9CI0J7Ql9CY0Isg0IjQntCX0JAKK9CI0J7Ql9CY0Isg0JrQkNCi0JDQoNCY0J3QkAor0IjQntCX0JjQiyDQnNCY0J7QlNCg0JDQkwor0IjQntCX0JjQiyDQnNCY0KDQmtCeCivQiNCe0JfQmNCLINCf0JXQiNCeCivQiNCj0KjQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9CI0KPQqNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQiNCj0JDQndCY0J0g0JbQmNCS0J7QiNCY0J0g0JTQmNCf0Jsg0JjQndCTCivQiNCj0JDQndCY0J0g0IjQntCS0JDQnQor0IjQo9CT0JjQnSDQnNCY0JvQldCd0JAKK9CI0KPQk9Ce0JLQmNCLINCC0KPQoNCQ0IIKK9CI0KPQk9Ce0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9CI0KPQk9Ce0JLQmNCLINCc0JjQm9CVCivQiNCj0JPQntCS0JjQiyDQnNCY0JvQntCoCivQiNCj0JPQntCS0JjQiyDQktCV0KHQldCb0JjQnQor0IjQo9CT0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CI0KPQpdCQ0KEg0ILQldCg0IIKK9CI0KPQpdCQ0KEg0JDQndCU0KDQkNCoCivQiNCj0KXQkNChINCQ0J3QlNCg0JDQqAor0IjQo9Cl0JDQoSDQkNCd0KLQkNCbCivQiNCj0KXQkNChINCU0JXQl9CVCivQiNCj0KXQkNChINCV0KDQndCVCivQiNCj0KXQkNChINCV0JLQkAor0IjQo9Cl0JDQoSDQpNCV0KDQldCd0KYKK9CI0KPQpdCQ0KEg0KTQldCg0JXQndCmCivQiNCj0KXQkNChINCT0JXQl9CQINCU0KAg0J/QoNCe0KTQldCh0J7QoAor0IjQo9Cl0JDQoSDQk9CY0JfQldCb0JAKK9CI0KPQpdCQ0KEg0JjQktCQ0J3QmtCQCivQiNCj0KXQkNChINCI0JDQndCe0KgKK9CI0KPQpdCQ0KEg0IjQkNCd0J7QqAor0IjQo9Cl0JDQoSDQiNCV0JvQmNCh0JDQktCV0KLQkAor0IjQo9Cl0JDQoSDQmtCQ0KLQkNCg0JjQndCQCivQiNCj0KXQkNChLdCa0J7QodCi0JjQiyDQgtCV0KDQgtCYCivQiNCj0KXQkNChINCb0JDQlNCY0KHQm9CQ0JIKK9CI0KPQpdCQ0KEg0JzQkNCg0JjQiNCQCivQiNCj0KXQkNChINCc0JjQpdCQ0IkKK9CI0KPQpdCQ0KEg0JzQmNCl0JDQiQor0IjQo9Cl0JDQoSDQnNCY0IjQngor0IjQo9Cl0JDQoSDQnNCY0KDQntCdCivQiNCj0KXQkNChINCh0KLQldCS0JDQnQor0IjQo9Cl0JDQoSDQodCi0JXQktCQ0J0KK9CI0KPQpdCQ0KEg0KHQotCV0JLQkNCdCivQiNCj0KXQkNChINCh0KLQldCS0JDQnQor0IjQo9Cl0JDQoSDQotCY0JHQntCgINCU0JjQn9CbINCY0J3Qkwor0IjQo9Cl0JDQoSDQotCY0JHQntCgCivQiNCj0KXQkNChINCS0JDQm9CV0KDQmNCI0JAKK9CI0KPQpdCQ0KEg0JLQmNCa0KLQntCg0JjQiNCQCivQiNCj0KXQkNChINCS0JvQkNCU0JjQodCb0JDQkgor0IjQo9Ca0JjQiyDQkdCQ0J3QlQor0IjQo9Ca0JjQiyDQpNCg0JDQitCQCivQiNCj0JrQmNCLINCk0KDQkNCK0J4KK9CI0KPQmtCY0Isg0JjQktCY0KbQkAor0IjQo9Ca0JjQiyDQiNCe0KHQmNCfCivQiNCj0JrQmNCLINCb0KPQmtCQCivQiNCj0JrQmNCLINCc0JDQoNCa0J4KK9CI0KPQmtCY0Isg0J3QkNCU0JAKK9CI0KPQmtCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQiNCj0JrQntCS0JjQiyDQoNCQ0KHQmNCcCivQiNCj0JvQmNCd0JDQpiDQlNCg0JDQk9CY0IrQkAor0IjQo9Cd0JMg0ILQldCg0IIKK9CI0KPQndCTINCk0KDQkNCd0KbQmNCo0JrQkAor0IjQo9Cd0JMg0JjQkdCe0InQmtCQCivQiNCj0J3QkyDQmNCb0JTQmNCa0J4KK9CI0KPQndCTINCY0JLQmNCm0JAKK9CI0KPQndCTINCI0J7QodCY0J8KK9CI0KPQndCTINCI0J7QktCQ0J0KK9CI0KPQndCTINCa0JDQoNCe0Ikg0JzQoAor0IjQo9Cd0JMg0JzQkNCg0JjQiNCQCivQiNCj0J3QkyDQoNCe0JHQldCg0KIKK9CI0KPQndCTINCg0J7QkdCV0KDQogor0IjQo9Cd0JMg0JLQldCg0JjQptCQCivQiNCj0J3Qo9CX0J7QktCY0Isg0JjQodCc0JXQogor0IjQo9Cf0JXQmiDQl9CU0JXQndCa0JAKK9CI0KPQoNCn0JXQktCY0Isg0JzQkNCg0JrQngor0IjQo9Cg0KfQmNCLINCW0JXQidCa0J4KK9CI0KPQoNCn0JjQiyDQlNCV0KHQkNCd0JrQkAor0IjQo9Cg0KjQmNCLINCm0JLQldCi0JAKK9CI0KPQoNCQ0JPQkCDQnNCQ0KDQmtCeCivQiNCj0KDQkNCT0JAg0JzQmNCb0J7QoNCQ0JQKK9CI0KPQoNCQ0JrQmNCLINCT0J7QoNCQ0J0KK9CI0KPQoNCQ0JrQmNCLINCY0JvQmNCI0JAKK9CI0KPQoNCQ0JrQmNCLINCY0JLQkNCdCivQiNCj0KDQkNCa0JjQiyDQiNCV0JvQkAor0IjQo9Cg0JDQmtCY0Isg0IjQntCX0J4KK9CI0KPQoNCQ0JrQmNCLINCf0JXQiNCeCivQiNCj0KDQkNCa0JjQiyDQodCi0JjQn9CeCivQiNCj0KDQkNCK0Jgg0JzQkNCg0JjQiNCQCivQiNCj0KDQkNChINCQ0J3QmNCm0JAKK9CI0KPQoNCQ0KEg0JDQndCi0JUKK9CI0KPQoNCQ0KHQntCS0JjQiyDQiNCe0JLQkNCdCivQiNCj0KDQptCQINCW0JXQidCa0J4KK9CI0KPQoNCm0JAg0ILQntCg0ILQlQor0IjQo9Cg0KbQkCDQmNCS0JDQnQor0IjQo9Cg0KbQkCDQm9CQ0KDQmNCh0JAKK9CI0KPQoNCV0KjQldCSINCf0JXQotCQ0KAKK9CI0KPQoNCV0KjQmNCLINCI0J7Ql9CeCivQiNCj0KDQldCo0JjQiyDQktCV0KDQkAor0IjQo9Cg0JjQqNCV0JLQmNCLINCQ0J3QmtCQCivQiNCj0KDQmNCo0JXQktCY0Isg0JzQkNCg0JAKK9CI0KPQoNCY0KjQldCS0JjQiyDQnNCY0KDQmtCeCivQiNCj0KDQmNCo0JjQiyDQgtCe0KDQgtCVCivQiNCj0KDQmNCo0JjQiyDQgtCj0KDQkAor0IjQo9Cg0JjQqNCY0Isg0JDQm9Ce0IjQlwor0IjQo9Cg0JjQqNCY0Isg0JDQndCU0KDQmNCI0JAKK9CI0KPQoNCY0KjQmNCLINCR0J7Qk9Ce0InQo9CRCivQiNCj0KDQmNCo0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0KPQoNCY0KjQmNCLINCk0KDQkNCK0JAKK9CI0KPQoNCY0KjQmNCLINCT0J7QodCf0JDQktCQCivQiNCj0KDQmNCo0JjQiyDQmNCT0IrQkNCiCivQiNCj0KDQmNCo0JjQiyDQmNCb0JjQndCa0JAKK9CI0KPQoNCY0KjQmNCLINCY0JLQkNCdCivQiNCj0KDQmNCo0JjQiyDQiNCV0JvQldCd0JAKK9CI0KPQoNCY0KjQmNCLINCI0J7QktCQ0J0KK9CI0KPQoNCY0KjQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CI0KPQoNCY0KjQmNCLINCJ0KPQkdCY0KbQkAor0IjQo9Cg0JjQqNCY0Isg0JzQkNCg0JjQiNCQCivQiNCj0KDQmNCo0JjQiyDQnNCY0JvQldCd0JrQngor0IjQo9Cg0JjQqNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CI0KPQoNCY0KjQmNCLINCc0JjQm9Ce0KDQkNCUCivQiNCj0KDQmNCo0JjQiyDQndCV0JTQldCJ0JrQkAor0IjQo9Cg0JjQqNCY0Isg0J3QldCd0JDQlAor0IjQo9Cg0JjQqNCY0Isg0J3QmNCa0J7Qm9CQCivQiNCj0KDQmNCo0JjQiyDQntCb0JPQkAor0IjQo9Cg0JjQqNCY0Isg0J7QodCi0J7QiNCQCivQiNCj0KDQmNCo0JjQiyDQn9CV0KLQkNCgCivQiNCj0KDQmNCo0JjQiyDQn9CV0KLQkNCgCivQiNCj0KDQmNCo0JjQiyDQoNCQ0JTQldCd0JrQngor0IjQo9Cg0JjQqNCY0Isg0KHQotCV0JLQkNCdCivQiNCj0KDQmNCo0JjQiyDQodCi0JXQktCQ0J0KK9CI0KPQoNCY0KjQmNCLINCS0JvQkNCi0JrQngor0IjQo9Cg0JjQqNCY0Isg0JfQntCg0JrQkAor0IjQo9Cg0JjQqNCY0J0g0JbQkNCg0JrQngor0IjQo9Cg0JjQqNCY0J0g0JbQmNCS0JAKK9CI0KPQoNCY0KjQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0IjQo9Cg0JjQqNCY0J0g0JTQoNCQ0JPQntCJ0KPQkQor0IjQo9Cg0JjQqNCY0J0g0InQmNCJ0JDQndCQCivQiNCj0KDQmNCo0JjQnSDQnNCY0JvQmNCd0JAKK9CI0KPQoNCY0KjQmNCdINCc0JjQm9Ce0KgKK9CI0KPQoNCY0KjQmNCdINCd0JDQotCQ0JvQmNCI0JAKK9CI0KPQoNCY0KjQmNCdINCg0JDQodCi0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CI0KPQoNCY0KjQmNCdINCh0JvQkNCS0JrQngor0IjQo9Cg0JjQqNCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0IjQo9Cg0JjQiyDQltCY0JLQkNCU0JjQndCa0JAKK9CI0KPQoNCY0Isg0JDQndCQCivQiNCj0KDQmNCLINCQ0JLQk9Cj0KHQogor0IjQo9Cg0JjQiyDQkdCe0KHQmNCJ0JrQngor0IjQo9Cg0JjQiyDQptCS0JjQiNCeCivQiNCj0KDQmNCLINCk0JjQm9CY0J8KK9CI0KPQoNCY0Isg0JjQm9CY0IjQkAor0IjQo9Cg0JjQiyDQmNCS0JDQnQor0IjQo9Cg0JjQiyDQiNCV0JvQmtCQCivQiNCj0KDQmNCLINCc0JDQoNCY0IjQkAor0IjQo9Cg0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0KPQoNCY0Isg0JzQkNCg0JrQngor0IjQo9Cg0JjQiyDQnNCQ0KDQmtCeCivQiNCj0KDQmNCLINCc0JjQm9Ce0KgKK9CI0KPQoNCY0Isg0J/QkNCj0JvQmNCd0JAKK9CI0KPQoNCY0Isg0J/QldCi0JDQoAor0IjQo9Cg0JjQiyDQodCe0KTQmNCI0JAKK9CI0KPQoNCY0JHQkNCo0JjQiyDQnNCQ0KDQmNCI0JAKK9CI0KPQoNCY0JHQkNCo0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQiNCj0KDQmNCmINCY0JLQkNCdCivQiNCj0KDQmNCmINCI0J7QodCY0J8KK9CI0KPQoNCY0KYg0KHQotCI0JXQn9CQ0J0KK9CI0KPQoNCY0KbQkCDQkNCd0JAKK9CI0KPQoNCY0KbQkCDQlNCQ0JvQmNCR0J7QoAor0IjQo9Cg0JjQptCQINCI0JDQnQor0IjQo9Cg0JjQmiDQqNCQ0J3QlNCe0KAKK9CI0KPQoNCY0Jog0JTQo9Co0JDQnQor0IjQo9Cg0JjQmiDQiNCe0KHQmNCfCivQiNCj0KDQmNCaINCI0J7QodCY0J8KK9CI0KPQoNCY0Jog0IjQntCS0JDQnQor0IjQo9Cg0JjQmiDQnNCQ0KDQmNCI0JAKK9CI0KPQoNCY0Jog0JzQmNCl0JDQmwor0IjQo9Cg0JjQmiDQnNCY0JvQmtCQCivQiNCj0KDQmNCaINCf0JDQktCb0JUKK9CI0KPQoNCY0Jog0KHQotCV0JLQkNCdCivQiNCj0KDQmNCh0KLQntCS0KHQmtCYINCT0JXQntCg0JMg0JTQmNCf0Jsg0JjQndCTCivQiNCj0KDQiNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0IjQo9Cg0IjQldCS0JjQiyDQiNCQ0KHQnNCY0J3QkAor0IjQo9Cg0JrQmNCLINCQ0J3QotCj0J0KK9CI0KPQoNCa0JjQiyDQkNCj0JPQo9Ch0KLQmNCdCivQiNCj0KDQmtCY0Isg0JzQkNCg0JrQngor0IjQo9Cg0JrQntCS0JjQiyDQkNCd0JAKK9CI0KPQoNCa0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQiNCj0KDQmtCe0JLQmNCLINCR0J7QltCY0KbQkAor0IjQo9Cg0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CI0KPQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0IjQo9Cg0JrQntCS0JjQiyDQmtCg0JjQodCi0JjQndCQCivQiNCj0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CI0KPQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0IjQo9Cg0JrQntCS0JjQiyDQl9Cb0JDQotCa0J4KK9CI0KPQoNCa0J7QktCY0Isg0JfQktCe0J3QmtCeCivQiNCj0KDQmtCe0JLQodCa0Jgg0KHQotCV0JLQkNCdCivQiNCj0KDQm9CY0J3QkCDQkNCd0KLQo9CdCivQiNCj0KDQm9CY0J3QkCDQnNCQ0KDQmtCeINCU0KAKK9CI0KPQoNCb0JjQndCQINCf0JDQktCb0JUKK9CI0KPQoNCj0JrQntCS0KHQmtCYINCT0J7QodCf0JDQktCQCivQiNCj0KDQo9Ca0J7QktCh0JrQmCDQm9CV0JLQmtCeCivQiNCj0KDQo9Ca0J7QktCh0JrQmCDQnNCY0JvQntCS0JDQndCa0JAKK9CI0KPQodCi0JjQnSDQptCY0KDQmNCbCivQiNCj0KHQotCY0J0g0JTQkNCd0JjQptCQCivQiNCj0KHQo9Ck0Jgg0JHQldCg0JfQkNCiCivQiNCj0KHQo9Ck0J7QktCY0Isg0JDQnNCY0KAKK9CI0KPQktCQ0J0g0KTQkNCd0JjQmtCQCivQmtCL0JjQmtCjINCC0JDQktCY0JQKK9Ca0IvQmNCa0KMg0KDQkNCl0JjQnAor0JrQkNCn0JDQmiDQmNCb0J7QndCQCivQmtCQ0KfQkNCf0J7QoCDQodCV0KTQldCU0JjQnQor0JrQkNCn0JDQoCDQp9CV0JTQntCc0JjQoAor0JrQkNCn0JDQoCDQgtCj0KDQngor0JrQkNCn0JDQoCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0JDQp9CQ0KAg0JTQo9Co0JDQndCa0JAKK9Ca0JDQp9CQ0KAg0KHQm9CQ0JLQmtCeCivQmtCQ0KfQkNCgINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JDQp9CQ0KAg0KHQm9Ce0JHQntCU0JDQnQor0JrQkNCn0JDQoCDQotCQ0JTQmNCI0JAKK9Ca0JDQp9CQ0KDQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCQ0KfQkNCS0JXQndCU0JAg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ca0JDQp9CQ0JLQldCd0JTQkCDQm9CQ0JfQngor0JrQkNCn0JDQktCV0J3QlNCQINCc0JjQm9CQ0J0KK9Ca0JDQp9CQ0JLQldCd0JTQkCDQnNCY0JvQntCg0JDQlAor0JrQkNCn0JDQktCV0J3QlNCQINCc0JjQm9Ce0KDQkNCUCivQmtCQ0KfQkNCS0JXQndCU0JAg0KHQm9Ce0JHQntCU0JDQnQor0JrQkNCn0JDQktCV0J3QlNCQINCi0JDQotCI0JDQndCQCivQmtCQ0KfQkNCS0JXQndCU0JAg0KLQkNCi0IjQkNCd0JAKK9Ca0JDQp9CQ0JLQldCd0JTQkCDQktCV0KDQkAor0JrQkNCn0JzQkNCg0KfQmNCaINCo0KLQldCk0JDQnQor0JrQkNCn0JzQkNCg0KfQmNCaINCI0JXQm9CV0J3QkAor0JrQkNCo0JAg0KLQmNCR0J7QoAor0JrQkNCo0JDQmCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQkNCo0JDQndCY0J0g0JzQmNCb0JXQotCQCivQmtCQ0KjQkNCd0JjQnSDQnNCY0KDQkAor0JrQkNCo0JDQndCY0J0g0JzQmNCg0IjQkNCd0JAKK9Ca0JDQqNCQ0J3QmNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0JDQqNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQqNCY0Isg0IjQntCS0JDQnSDQlNCgCivQmtCQ0KjQmNCLINCc0JDQoNCY0IjQkAor0JrQkNCo0JjQiyDQnNCY0JvQmNCS0J7QiAor0JrQkNCo0JjQiyDQnNCb0JDQlNCV0J0KK9Ca0JDQqNCY0Isg0KDQldCS0JXQmtCQCivQmtCQ0KjQmNCLINCS0JXQoNCQCivQmtCQ0KjQmNCLINCS0JjQmtCi0J7QoNCY0IjQkAor0JrQkNCo0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmtCQ0KjQmNCaINCY0JLQkNCdCivQmtCQ0KjQmNCa0J7QktCY0Isg0ILQntCg0ILQngor0JrQkNCo0JjQmtCe0JLQmNCLINCR0J7QqNCa0J4KK9Ca0JDQqNCY0JrQntCS0JjQiyDQk9Ce0IjQmtCeCivQmtCQ0KjQmNCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ca0JDQqNCY0JrQntCS0JjQiyDQodCb0JDQktCa0JAKK9Ca0JDQqNCY0JrQntCS0JjQiyDQktCb0JDQlNCeCivQmtCQ0KjQm9CY0Jog0JjQnNCg0JUKK9Ca0JDQqNCb0JjQmiDQnNCQ0KLQmNCI0JAKK9Ca0JDQqNCe0JLQodCa0Jgg0IjQkNCd0JrQngor0JrQkNCo0J7QktCh0JrQmCDQndCY0JrQntCb0JAKK9Ca0JDQi9CQ0J3QodCa0Jgg0JbQkNCg0JrQngor0JrQkNCL0JDQndCh0JrQmCDQltCQ0KDQmtCeCivQmtCQ0IvQkNCd0KHQmtCYINCW0JjQktCa0J4KK9Ca0JDQi9CQ0J3QodCa0Jgg0ILQntCg0ILQlQor0JrQkNCL0JDQndCh0JrQmCDQkdCe0IjQkNCd0JAKK9Ca0JDQi9CQ0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCQ0IvQkNCd0KHQmtCYINCR0KDQkNCd0JrQngor0JrQkNCL0JDQndCh0JrQmCDQlNCj0KjQkNCd0JrQkAor0JrQkNCL0JDQndCh0JrQmCDQlNCj0KjQkNCdCivQmtCQ0IvQkNCd0KHQmtCYINCI0JXQm9CY0KHQkNCS0JXQotCQCivQmtCQ0IvQkNCd0KHQmtCYINCa0J7QndCh0KLQkNCd0KLQmNCdCivQmtCQ0IvQkNCd0KHQmtCYINCJ0KPQkdCY0KbQkAor0JrQkNCL0JDQndCh0JrQmCDQnNCY0JvQmNCS0J7QiAor0JrQkNCL0JDQndCh0JrQmCDQnNCY0JvQmNCS0J7QiAor0JrQkNCL0JDQndCh0JrQmCDQnNCY0JvQmtCQCivQmtCQ0IvQkNCd0KHQmtCYINCc0JjQm9Ce0KDQkNCUCivQmtCQ0IvQkNCd0KHQmtCYINCc0JjQm9Cj0KLQmNCdCivQmtCQ0IvQkNCd0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JLQkAor0JrQkNCL0JDQndCh0JrQmCDQnNCb0JDQlNCV0J0KK9Ca0JDQi9CQ0J3QodCa0Jgg0J/QkNCS0JvQlSDQlNCgINCb0JXQmtCQ0KAKK9Ca0JDQi9CQ0J3QodCa0Jgg0J/Qm9CQ0KLQntCdINCU0KAKK9Ca0JDQi9CQ0J3QodCa0Jgg0KDQkNCU0J7QktCQ0J0KK9Ca0JDQi9CQ0J3QodCa0Jgg0KHQmNCc0JAKK9Ca0JDQi9CQ0J3QodCa0Jgg0KHQm9CQ0JLQmtCeCivQmtCQ0IvQkNCd0KHQmtCYINCh0JzQmNCJ0JAKK9Ca0JDQi9CQ0J3QodCa0Jgg0KHQntCk0JjQiNCQCivQmtCQ0IvQkNCd0KHQmtCYINCh0JLQldCi0JjQodCb0JDQkgor0JrQkNCL0JDQndCh0JrQmCDQotCe0JTQntCgCivQmtCQ0IvQkNCd0KHQmtCYINCS0JXQm9CY0J3QmtCQCivQmtCQ0IvQkNCd0KHQmtCYINCS0JXQoNCQCivQmtCQ0IvQkNCd0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAg0JLQldCi0JXQoNCY0J3QkNCgCivQmtCQ0IvQkNCd0KHQmtCYINCS0JvQkNCU0JjQodCb0JDQktCQCivQmtCQ0IvQmNCQ0Jog0JzQmNCl0JDQiNCb0J4KK9Ca0JDQi9Cj0KDQmNCdINCW0JjQktCQ0J0KK9Ca0JDQi9Cj0KDQmNCdINCa0KDQmNCh0KLQmNCd0JAKK9Ca0JDQi9Cj0KDQmNCdINCc0JjQm9CQ0J3QkAor0JrQkNCL0KPQoNCY0J0g0JzQmNCb0JDQnQor0JrQkNCL0KPQoNCY0J0g0KDQkNCU0J7QodCb0JDQkgor0JrQkNCW0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCQ0JHQkCDQodCj0JvQldCI0JzQkNCdCivQmtCQ0JHQmNCLINCQ0J3QkAor0JrQkNCR0JjQiyDQkdCe0JPQlNCQ0J0KK9Ca0JDQkdCY0Isg0JTQkNCd0JjQm9CeCivQmtCQ0JHQmNCLINCU0KDQkNCT0JjQptCQCivQmtCQ0JHQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ca0JDQkdCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQkNCR0JjQiyDQotCY0JzQntCo0JXQndCa0J4KK9Ca0JDQkdCY0InQniDQlNCg0JDQk9CY0KbQkAor0JrQkNCR0JjQidCeINCI0J7QodCY0J8KK9Ca0JDQkdCY0InQniDQodCY0JvQktCY0J4KK9Ca0JDQkdCe0Jog0JXQoNCY0JrQkAor0JrQkNCR0J7QmiDQiNCe0JbQldCkCivQmtCQ0KbQkNCg0J7QqCDQmtCe0KHQotCQ0KEKK9Ca0JDQlNCQ0Kgg0JvQkNCI0J7QqCDQlNCY0J/QmyDQmNCd0JMKK9Ca0JDQlNCQ0KAg0IjQo9Cb0JjQiNCQ0J3QkAor0JrQkNCU0JjQiyDQmNCb0JjQiNCQCivQmtCQ0JTQmNCLINCc0JDQoNCY0IjQkNCdCivQmtCQ0JTQmNCLINCd0JjQmtCe0JvQkAor0JrQkNCU0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JrQkNCU0JjQiyDQodCQ0JLQkAor0JrQkNCU0JjQiNCQINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0JDQlNCY0JLQndCY0Jog0JzQmNCe0JTQoNCQ0JMKK9Ca0JDQlNCb0JXQp9CY0Jog0JrQkNCi0JjQptCQCivQmtCQ0JTQoNCY0IjQkCDQpNCV0JLQl9CY0IjQkAor0JrQkNCU0KDQmNCI0JAg0KXQkNCR0JjQiQor0JrQkNCU0KDQmNCI0JAg0KXQkNCh0JDQpAor0JrQkNCU0KDQmNCI0JAg0KXQo9Cg0JzQldCiCivQmtCQ0JTQktCQ0Iog0IjQkNCd0J7QqAor0JrQkNCU0JLQkNCKINCI0J7QktCQ0J0KK9Ca0JDQlNCS0JDQiiDQm9CQ0JTQmNCh0JvQkNCSCivQmtCQ0JTQktCQ0Iog0JvQkNCI0J7QqAor0JrQkNCl0KDQmNCc0JDQnSDQn9CV0KLQkNCgCivQmtCQ0KXQoNCY0JzQkNCdINCh0J3QldCW0JDQndCQCivQmtCQ0KXQoNCY0JzQkNCdINCh0J3QldCW0JDQndCQCivQmtCQ0KXQoNCY0JzQkNCdINCh0J3QldCW0JDQndCQCivQmtCQ0JjQiyDQmNCS0JDQnQor0JrQkNCY0Isg0JrQkNCi0JDQm9CY0J0g0JTQoAor0JrQkNCY0Isg0J/QldCi0JDQoAor0JrQkNCY0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQkNCY0KLQntCS0JjQiyDQiNCV0JvQkAor0JrQkNCI0KfQmNCLINCJ0JjQidCQ0J3QkAor0JrQkNCI0KfQmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCQ0IjQp9CY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0JDQiNCV0JLQmNCLINCW0JDQoNCa0J4KK9Ca0JDQiNCk0JXQqCDQl9CS0J7QndCa0J4KK9Ca0JDQiNCT0JDQndCY0Isg0JjQm9CY0IjQkAor0JrQkNCI0JPQkNCd0JjQiyDQidCj0JHQkNCdCivQmtCQ0IjQk9CQ0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCQ0IjQk9CQ0J3QmNCLINCS0JXQoNCe0J3QmNCa0JAKK9Ca0JDQiNCY0Kgg0JbQldCJ0JrQngor0JrQkNCI0JjQqCDQnNCY0JvQlQor0JrQkNCI0JjQiyDQltCV0InQmtCeCivQmtCQ0IjQmNCLINCd0JDQlNCQCivQmtCQ0IjQmtCQ0KDQkCDQkdCe0JPQlNCQ0J0KK9Ca0JDQiNCa0JDQoNCQINCc0JjQm9CV0J3QmtCeCivQmtCQ0IjQmtCQ0KDQkCDQoNCQ0JTQntCh0JvQkNCSCivQmtCQ0IjQntCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCQ0IjQntCdINCQ0J3QkAor0JrQkNCI0J7QnSDQidCY0InQkNCd0JAKK9Ca0JDQiNCe0J0g0JzQmNCg0J7QodCb0JDQkgor0JrQkNCI0J7QnSDQnNCY0KDQntCh0JvQkNCSCivQmtCQ0IjQotCV0KEg0ILQo9Cg0J4KK9Ca0JDQiNCi0JXQlyDQlNCg0JDQk9CQ0J0KK9Ca0JDQiNCi0JXQlyDQnNCY0KDQmtCeCivQmtCQ0IjQotCV0Jcg0J3QldCU0JXQidCa0J4KK9Ca0JDQiNCi0JXQlyDQoNCe0JfQkNCb0JjQiNCQCivQmtCQ0IjQotCV0Jcg0KLQoNCY0JLQo9CdCivQmtCQ0IjQotCV0Jcg0JLQkNCb0JXQndCi0JjQndCQCivQmtCQ0IjQl9CV0KAg0JrQkNCg0JvQngor0JrQkNCa0JDQqCDQlNCQ0JzQmNCgCivQmtCQ0JrQkNCoINCY0JvQmNCI0JAKK9Ca0JDQmtCQ0Kgg0IjQntCW0JXQpAor0JrQkNCa0JDQqCDQiNCe0KHQmNCfCivQmtCQ0JrQkNCoINCc0JDQoNCY0IjQkAor0JrQkNCa0J7QitCYINCQ0J3QkAor0JrQkNCa0KPQp9Ca0JAg0JjQqNCi0JLQkNCdCivQmtCQ0JrQo9Cn0JrQkCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQkNCa0KPQp9Ca0JAg0KHQotCV0JLQkNCdCivQmtCQ0JvQp9Ce0JIg0JzQmNCl0JDQiQor0JrQkNCb0JAg0JPQldCX0JAKK9Ca0JDQm9CQ0KfQkNCI0Jgg0KHQktCV0KLQmNCh0JvQkNCSCivQmtCQ0JvQkNCn0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQkNCb0JDQkdCQINCR0J7QiNCQ0J0KK9Ca0JDQm9CQ0JHQkCDQkdCg0JDQndCa0J4KK9Ca0JDQm9CQ0JHQkCDQlNCg0JDQk9CY0KbQkAor0JrQkNCb0JDQkdCQINCJ0KPQn9Ca0J4KK9Ca0JDQm9CQ0JHQkCDQm9Cj0JrQkAor0JrQkNCb0JDQkdCQINCc0JDQoNCa0J4KK9Ca0JDQm9CQ0JHQkCDQnNCb0JDQlNCV0J0KK9Ca0JDQm9CQ0JHQkCDQndCY0JrQntCb0JAKK9Ca0JDQm9CQ0JHQkCDQodCi0JXQktCQ0J0KK9Ca0JDQm9CQ0JHQmNCLINCU0JDQndCVCivQmtCQ0JvQkNCR0JjQiyDQodCi0JXQktCeCivQmtCQ0JvQkNCR0KDQmNCLINCR0KDQkNCd0JrQngor0JrQkNCb0JDQkdCg0JjQiyDQnNCY0KXQntCS0JjQmwor0JrQkNCb0JDQpNCQ0KLQmNCLINCc0JjQm9CY0JLQntCICivQmtCQ0JvQkNCk0JDQotCY0Isg0J3QldCR0J7QiNCo0JAKK9Ca0JDQm9CQ0Jgg0JrQkNCg0J7QiQor0JrQkNCb0JDQiNCP0JjQiyDQlNCQ0KDQmtCeCivQmtCQ0JvQkNCI0I/QmNCLINCb0KPQmtCQCivQmtCQ0JvQkNCI0I/QmNCLINCc0JjQpdCQ0JjQm9CeCivQmtCQ0JvQkNCI0I/QmNCLINCc0JjQm9CQ0J0KK9Ca0JDQm9CQ0JzQkNCd0JTQkCDQlNCg0JDQk9CQ0J0KK9Ca0JDQm9CQ0JzQkNCd0JTQkCDQodCb0J7QkdCe0JTQkNCdCivQmtCQ0JvQkNCKINCC0KPQmtCQCivQmtCQ0JvQkNCKINCU0KDQkNCT0JjQqNCQCivQmtCQ0JvQkNCKINCk0JXQnNCa0JAKK9Ca0JDQm9CQ0Iog0KHQotCV0JLQkNCdCivQmtCQ0JvQkNCK0JAg0JTQo9Co0JDQndCa0JAKK9Ca0JDQm9CQ0IrQkCDQnNCY0KDQntCh0JvQkNCSCivQmtCQ0JvQkNCK0JXQkiDQl9Ce0KDQkAor0JrQkNCb0JDQitCe0Kgg0ILQo9Cg0JAKK9Ca0JDQm9CQ0IrQntCoINCQ0J3QkAor0JrQkNCb0JDQitCe0Kgg0JHQntCg0JjQodCb0JDQkgor0JrQkNCb0JDQitCe0Kgg0IjQkNCd0J7QqAor0JrQkNCb0JDQitCe0Kgg0JzQmNCg0IjQkNCd0JAKK9Ca0JDQm9CQ0IrQntCoINCf0JXQotCQ0KAKK9Ca0JDQm9CQ0IrQntCoINCf0JXQotCQ0KAKK9Ca0JDQm9CQ0IrQntCoINCg0KPQltCQCivQmtCQ0JvQkNCK0J7QqCDQoNCj0JbQkAor0JrQkNCb0JDQitCj0Kgg0ILQo9Cg0JAKK9Ca0JDQm9CQ0IrQo9CoINCk0KDQkNCK0JAKK9Ca0JDQm9CQ0J/QkNCoINCV0JLQmNCm0JAKK9Ca0JDQm9CQ0J/QkNCo0JXQkiDQlNCY0J3QkAor0JrQkNCb0JDQn9CQ0KjQldCSINCh0JjQndCY0KjQkAor0JrQkNCb0JDQn9CQ0KLQmCDQqNCQ0KDQkAor0JrQkNCb0JDQn9CQ0KLQmCDQpNCV0KDQldCd0KYKK9Ca0JDQm9CQ0J/QkNCi0Jgg0JjQktCQ0J0KK9Ca0JDQm9CQ0J/QkNCi0Jgg0KDQo9CU0J7Qm9CkCivQmtCQ0JvQkNCf0JjQqCDQoNCj0JTQmAor0JrQkNCb0JDQn9CY0Kgg0JfQntCb0KLQkNCdCivQmtCQ0JvQkNCj0Jcg0JzQkNCg0JjQndCa0J4KK9Ca0JDQm9CQ0KPQl9Ce0JIg0JzQkNCo0JAKK9Ca0JDQm9CmINCc0JjQm9CV0J3QmtCQCivQmtCQ0JvQpiDQnNCY0JvQmtCeCivQmtCQ0JvQpiDQodCb0JDQktCe0IjQmtCQCivQmtCQ0JvQldCQINCI0JXQm9CV0J3QkAor0JrQkNCb0JXQiNCh0JrQmCDQl9Cb0JDQotCe0JzQmNCgCivQmtCQ0JvQldCcINCR0KDQkNCd0JrQngor0JrQkNCb0JXQnCDQmNCS0JDQndCa0JAKK9Ca0JDQm9CV0Jwg0JzQmNCg0IjQkNCd0JAKK9Ca0JDQm9CV0Jwg0J3QldCU0JXQidCa0J4KK9Ca0JDQm9CV0Jwg0KHQoNCV0KLQldCdCivQmtCQ0JvQldCcINCh0KDQldCi0JXQnQor0JrQkNCb0JXQnNCR0JXQoCDQkdCe0KjQmtCeCivQmtCQ0JvQldCc0JHQldCgINCc0JjQqNCQCivQmtCQ0JvQldCc0JHQldCgINCc0JjQm9CV0J3QkAor0JrQkNCb0JXQnNCR0JXQoCDQnNCY0JvQmNCS0J7QiAor0JrQkNCb0JXQnNCR0JXQoCDQnNCY0KDQiNCQ0J3QkAor0JrQkNCb0JXQnNCR0JXQoCDQodCe0KTQmNCI0JAKK9Ca0JDQm9CV0JzQkdCV0KAg0KHQotCe0IjQkNCU0JjQnQor0JrQkNCb0JXQnNCYINCo0JXQoNCY0KQKK9Ca0JDQm9CV0J3QlNCV0KAg0JrQoNCY0KHQotCY0J3QkAor0JrQkNCb0JXQndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQmtCQ0JvQldCd0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQkNCb0JXQndCY0Isg0JLQntCI0JjQodCb0JDQkgor0JrQkNCb0JXQitCj0Jog0JzQmNCi0JDQoAor0JrQkNCb0JXQndCi0JjQiyDQkdCe0KHQkAor0JrQkNCb0JXQndCi0JjQiyDQoNCQ0JTQntCS0JDQnQor0JrQkNCb0JXQl9CY0Isg0IjQldCb0JXQndCQCivQmtCQ0JvQldCX0JjQiyDQiNCe0JLQkNCd0JrQkAor0JrQkNCb0JXQl9CY0Isg0J7Qm9CT0JAKK9Ca0JDQm9CV0JfQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0JDQm9CY0KfQkNCd0JjQnSDQnNCe0JzQp9CY0JvQngor0JrQkNCb0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JrQkNCb0JjQiyDQiNCe0KHQmNCfCivQmtCQ0JvQmNCLINCI0J7QktCQ0J3QmtCQCivQmtCQ0JvQmNCLINCc0JjQm9CV0J3QkAor0JrQkNCb0JjQiyDQnNCj0KHQotCQ0KTQkAor0JrQkNCb0JjQiyDQntCb0JPQkAor0JrQkNCb0JjQiyDQoNCQ0JTQntCS0JDQnQor0JrQkNCb0JjQiyDQodCe0KTQmNCI0JAKK9Ca0JDQm9CY0Jog0JPQoNCe0JfQlNCQCivQmtCQ0JvQmNCdINCV0JTQo9CQ0KDQlAor0JrQkNCb0JjQnSDQnNCQ0KDQmNCI0JDQnQor0JrQkNCb0JjQndCY0Isg0JTQkNCd0JjQptCQCivQmtCQ0JvQmNCd0JjQiyDQiNCe0JLQngor0JrQkNCb0JjQndCY0Isg0JrQoNCh0KLQngor0JrQkNCb0JjQndCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ca0JDQm9CY0J3QmNCLINCc0JjQm9CY0KbQkAor0JrQkNCb0JjQndCY0Isg0J3QkNCU0JAKK9Ca0JDQm9CY0J3QodCa0Jgg0JTQkNCg0JrQngor0JrQkNCb0JjQktCe0JTQkCDQoNCj0JTQntCb0KQKK9Ca0JDQidCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCQ0InQldCS0JjQiyDQmtCg0KHQotCeCivQmtCQ0InQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Ca0JDQm9Ca0JDQnSDQnNCY0JvQkNCdCivQmtCQ0JvQnNCQ0J0g0JrQm9CQ0KDQkAor0JrQkNCb0JzQkNCdINCc0JjQpdCQ0IjQm9CeCivQmtCQ0JvQnNCQ0J0g0JzQmNCa0JvQntCoCivQmtCQ0JvQnNCQ0J0g0KDQkNCU0JjQptCQCivQmtCQ0JvQnNCQ0KAg0ILQntCg0ILQlQor0JrQkNCb0JzQkNCgINCC0KPQoNCQCivQmtCQ0JvQnNCQ0KAg0JDQndCQCivQmtCQ0JvQnNCQ0KAg0KTQldCg0JXQndCmCivQmtCQ0JvQnNCQ0KAg0KTQoNCQ0IrQkAor0JrQkNCb0JzQkNCgINCT0KDQk9Cj0KAKK9Ca0JDQm9Cc0JDQoCDQmNCo0KLQktCQ0J0KK9Ca0JDQm9Cc0JDQoCDQm9CQ0IjQntCoCivQmtCQ0JvQnNCQ0KAg0JzQmNCg0JrQngor0JrQkNCb0JzQkNCgLdCS0JXQoNCV0Kgg0JPQmNCX0JXQm9CQCivQmtCQ0JvQnNCQ0KAg0JLQm9CQ0JTQmNCc0JjQoAor0JrQkNCb0JzQkNCg0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQm9Cd0J7QmiDQodCb0J7QkdCe0JTQkNCdCivQmtCQ0JvQntCn0JDQmCDQqNCQ0J3QlNCe0KAKK9Ca0JDQm9Ce0KfQkNCYINCY0KjQotCS0JDQnQor0JrQkNCb0J7Qp9CQ0Jgg0JvQldCd0JrQlQor0JrQkNCb0J7Qp9CQ0Jgg0J/QldCi0JDQoAor0JrQkNCb0J7Qp9CQ0IjQmCDQgtCe0KDQgtCVCivQmtCQ0JvQntCn0JDQiiDQpNCV0KDQldCd0KYKK9Ca0JDQm9Ce0KbQmCDQmNCS0JDQnQor0JrQkNCb0J7QptCYINCb0JDQlNCY0KHQm9CQ0JIKK9Ca0JDQm9Ce0KbQmCDQotCY0JHQntCgCivQmtCQ0JvQntCm0Jgg0JLQldCh0JXQm9CY0J3QmtCQCivQmtCQ0JvQntCf0JXQoCDQiNCe0JLQkNCd0JrQkAor0JrQkNCb0J7Qn9CV0KAg0J/QldCg0JjQptCQCivQmtCQ0JvQntCX0Jgg0JDQoNCQ0J3QmtCQCivQmtCQ0JvQotCd0JXQmtCV0KAg0JXQnNCY0JvQmNCI0JAKK9Ca0JDQm9Ci0J3QldCa0JXQoCDQldCc0JjQm9CY0IjQkAor0JrQkNCb0KPQqNCV0JIg0JPQm9CY0KjQkAor0JrQkNCb0KPQqNCa0JAg0KHQm9CQ0JLQmtCeCivQmtCQ0JvQo9CW0JjQiyDQmtCQ0KLQmNCm0JAKK9Ca0JDQm9Cj0JbQmNCLINCd0JDQlNCQCivQmtCQ0JvQo9CC0JXQoNCe0JLQmNCLINCc0JDQoNCa0J4KK9Ca0JDQm9Cj0ILQldCg0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JrQkNCb0KPQgtCV0KDQntCS0JjQiyDQnNCY0JvQntCoCivQmtCQ0JvQo9CC0JXQoNCe0JLQmNCLINCc0JjQoNCY0IjQkNCd0JAKK9Ca0JDQm9Cj0ILQldCg0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQmtCQ0JvQo9CC0JXQoNCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQmtCQ0JvQo9CC0JXQoNCe0JLQmNCLINCe0JvQmNCS0JXQoNCQCivQmtCQ0JvQo9CC0JXQoNCe0JLQmNCLINCj0KDQntCoCivQmtCQ0JvQo9CC0JXQoNCh0JrQmCDQgtCe0JrQkAor0JrQkNCb0KPQgtCV0KDQodCa0Jgg0ILQntCa0JAKK9Ca0JDQm9Cj0ILQldCg0KHQmtCYINCQ0JPQndCV0JfQkAor0JrQkNCb0KPQgtCV0KDQodCa0Jgg0JHQntCg0JjQoQor0JrQkNCb0KPQgtCV0KDQodCa0Jgg0JPQkNCS0KDQkAor0JrQkNCb0KPQgtCV0KDQodCa0Jgg0JzQmNCb0J7QoNCQ0JQKK9Ca0JDQm9Cj0ILQldCg0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0JDQm9Cj0ILQldCg0KHQmtCYINCh0JjQndCY0KjQkAor0JrQkNCb0KPQgtCV0KDQodCa0Jgg0KHQotCe0IjQkNCdINCU0KAKK9Ca0JDQm9Cj0JPQldCgINCd0JjQmtCe0JvQkAor0JrQkNCb0KPQk9CV0KAg0JfQntCg0JDQnQor0JrQkNCc0KfQldCh0JrQkCDQlNCg0JDQk9CY0KbQkAor0JrQkNCc0KfQldCh0JrQmCDQlNCY0JzQp9CVCivQmtCQ0JzQp9CV0KHQmtCYINCh0KLQldCS0JDQnQor0JrQkNCc0KfQldCS0JjQiyDQkNCd0JAKK9Ca0JDQnNCn0JXQktCh0JrQmCDQodCQ0JLQkAor0JrQkNCc0JDQoNCY0KIg0JfQntCg0JDQnQor0JrQkNCc0JDQodCYINCk0JXQoNCV0J3Qpgor0JrQkNCc0JDQodCYINCk0JXQoNCV0J3Qpgor0JrQkNCc0JDQodCYINCY0JzQoNCVCivQmtCQ0JzQkNCh0Jgg0IjQkNCd0J7QqAor0JrQkNCc0JHQldCg0Jgg0JTQo9Co0JDQnQor0JrQkNCc0JHQldCg0Jgg0JzQo9Ch0JAKK9Ca0JDQnNCR0JXQoNCe0JLQmNCLINCR0JDQotCeCivQmtCQ0JzQkdCV0KDQntCS0JjQiyDQodCY0J3QmNCo0JAKK9Ca0JDQnNCV0J3QkNCg0J7QktCY0Isg0JPQm9CY0JPQntCg0JjQiNCVCivQmtCQ0JzQldCd0JDQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0JDQnNCV0J3QkNCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCQ0JzQldCK0JjQptCa0Jgg0IjQo9Cb0JjQiNCQ0J0KK9Ca0JDQnNCV0J3QmtCeINCc0JjQm9CQ0J0KK9Ca0JDQnNCV0J3QmtCeINCg0JDQlNCVCivQmtCQ0JzQldCd0JrQniDQoNCQ0JTQlQor0JrQkNCc0JXQndCa0J4g0JLQldCg0JAKK9Ca0JDQnNCV0J3QmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQmtCQ0JzQldCd0JrQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0JrQkNCc0JXQndCa0J7QktCY0Isg0IjQntCh0JjQnwor0JrQkNCc0JXQndCa0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Ca0JDQnNCV0J3QmtCe0JLQmNCLINCe0JvQk9CQCivQmtCQ0JzQldCd0J7QkiDQldCc0JjQmyDQlNCgCivQmtCQ0JzQn9CV0Jsg0JjQktCQ0J0KK9Ca0JDQnNCf0JjQiyDQn9CQ0JLQm9CVCivQmtCQ0JzQoNCQINCY0JLQkNCdCivQmtCQ0J3Qp9CQ0KAg0JXQoNCW0JXQkdCV0KIKK9Ca0JDQndCQ0KfQmtCYINCW0JDQoNCa0J4KK9Ca0JDQndCQ0KfQmtCYINCJ0JjQidCQ0J3QkAor0JrQkNCd0JDQp9Ca0Jgg0JzQkNCT0JTQkNCb0JXQndCQCivQmtCQ0J3QkNCn0JrQmCDQodCi0JXQktCQ0J0KK9Ca0JDQndCQ0KfQmtCYINCX0JvQkNCi0JAKK9Ca0JDQndCQ0JfQmNCgINCW0JjQktCa0JAKK9Ca0JDQndCQ0JfQmNCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCQ0J3QkNCX0JjQoC3QkdCV0JvQmNCLINCc0JjQm9CY0KbQkAor0JrQkNCd0JDQl9CY0KAg0JHQntCg0JjQodCb0JDQkgor0JrQkNCd0JDQl9CY0KAg0JHQntCg0JjQodCb0JDQkgor0JrQkNCd0JDQl9CY0KAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCQ0J3QkNCX0JjQoCDQptCS0JXQotCQCivQmtCQ0J3QkNCX0JjQoCDQlNCg0JDQk9CY0KbQkAor0JrQkNCd0JDQl9CY0KAg0JTQoNCQ0JPQmNCm0JAKK9Ca0JDQndCQ0JfQmNCgINCU0KPQqNCQ0J0KK9Ca0JDQndCQ0JfQmNCgINCY0JLQkNCd0JrQkAor0JrQkNCd0JDQl9CY0KAg0IjQntCS0JDQndCa0JAKK9Ca0JDQndCQ0JfQmNCgINCI0J7QktCQ0J0KK9Ca0JDQndCQ0JfQmNCgINCa0J7QodCi0JAKK9Ca0JDQndCQ0JfQmNCgINCa0J7QodCi0JAKK9Ca0JDQndCQ0JfQmNCgINCa0J7QodCi0JAKK9Ca0JDQndCQ0JfQmNCgINCc0JDQoNCY0IjQkAor0JrQkNCd0JDQl9CY0KAg0JzQmNCb0JDQnQor0JrQkNCd0JDQl9CY0KAg0JzQmNCb0JjQptCQCivQmtCQ0J3QkNCX0JjQoCDQnNCY0JvQntCS0JDQnQor0JrQkNCd0JDQl9CY0KAg0KDQkNCU0JjQktCe0IgKK9Ca0JDQndCQ0JfQmNCgINCh0JvQkNCS0JrQngor0JrQkNCd0JDQl9CY0KAg0JLQkNCh0JAKK9Ca0JDQndCQ0JfQmNCgINCS0JXQoNCY0KbQkCDQlNCgCivQmtCQ0J3QkNCX0JjQoCDQktCj0JrQmNCm0JAKK9Ca0JDQndCQ0JfQmNCgINCX0JDQpdCQ0KDQmNCI0JUKK9Ca0JDQndCR0JDQnSDQnNCY0JvQmNCm0JAKK9Ca0JDQndCU0JjQiyDQndCQ0JTQkAor0JrQkNCd0JTQmNCLINCg0JDQlNCc0JjQm9CQCivQmtCQ0J3QlNCY0Isg0KHQnNCY0InQkNCd0JAKK9Ca0JDQndCU0JjQiyDQktCY0JTQntCI0JUKK9Ca0JDQndCU0KDQkNCnINCC0J7QoNCC0JUKK9Ca0JDQndCU0KDQkNCnINCb0JXQntCd0JAKK9Ca0JDQndCT0KDQk9CQINCQ0J3QmtCQCivQmtCQ0J3Qk9Cg0JPQkCDQmtCe0KHQotCQCivQmtCQ0J3Qk9Cg0JPQkCDQoNCj0JbQkAor0JrQkNCd0JjQltCQ0Jgg0JXQktCQCivQmtCQ0IrQkCDQiNCQ0J0KK9Ca0JDQitCV0KDQmNCLINCc0JDQotCVCivQmtCQ0IrQniDQmNCo0KLQktCQ0J0KK9Ca0JDQitCeINCh0KLQiNCV0J/QkNCdCivQmtCQ0IrQniDQl9Ce0JvQotCQ0J0KK9Ca0JDQitCj0KUg0IjQkNCa0JjQnAor0JrQkNCK0KPQpSDQiNCe0JDQmtCY0JwKK9Ca0JDQitCj0KUg0JzQkNCg0JjQptCQCivQmtCQ0IrQo9ClINCc0JjQoNCQCivQmtCQ0IrQo9ClINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JDQitCj0KUg0JfQktCe0J3QmtCeCivQmtCQ0IrQo9Ca0JAg0JjQktCQ0J0KK9Ca0JDQitCj0JrQkCDQktCb0JDQlNCY0JzQmNCgCivQmtCQ0J3QmtCQ0KDQkNCoINCg0JDQlNCe0KHQkNCSCivQmtCQ0J3QmtCQ0KDQkNCoINCS0JXQodCV0JvQmNCdCivQmtCQ0J3Qm9CY0Isg0JzQmNCb0JDQnQor0JrQkNCd0JvQmNCLINCX0JDQoNCY0IjQkAor0JrQkNCd0J7QktCY0Isg0J/QkNCS0JvQlSDQlNCY0J/QmyDQmNCd0JMKK9Ca0JDQndCi0JDQoCDQgtCj0KDQngor0JrQkNCd0KLQkNCgINCU0JzQmNCi0JDQoAor0JrQkNCd0KLQkNCgINCa0JDQiNCQCivQmtCQ0J3QotCQ0KAg0JzQmNCb0JDQnQor0JrQkNCd0KLQkNCgINCc0JjQm9Ce0KgKK9Ca0JDQndCi0JDQoCDQnNCY0KDQntCh0JvQkNCSCivQmtCQ0J3QotCQ0KAg0J3QmNCa0J7Qm9CQCivQmtCQ0J3QotCQ0KAg0J7QodCi0J7QiNCQCivQmtCQ0J3QotCQ0KAg0JLQm9CQ0JTQngor0JrQkNCd0KLQkNCg0I/QmNCLINCC0J7QoNCC0JUKK9Ca0JDQndCi0JDQoNCP0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQkNCd0KLQkNCg0I/QmNCLINCI0JXQm9CV0J3QkAor0JrQkNCd0KLQkNCg0I/QmNCLINCa0JDQotCY0KbQkAor0JrQkNCd0KLQkNCg0I/QmNCLINCa0J7QodCi0JAKK9Ca0JDQndCi0JDQoNCP0JjQiyDQm9CQ0JfQkNCgCivQmtCQ0J3QotCQ0KDQj9CY0Isg0JvQkNCX0JAKK9Ca0JDQndCi0JDQoNCP0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0JDQndCi0JDQoNCP0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQkNCd0KLQkNCg0I/QmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCQ0J3QotCQ0KDQj9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQkNCd0KLQkNCg0I/QmNCLINCc0JvQkNCU0JXQnQor0JrQkNCd0KLQkNCg0I/QmNCLINCd0JDQlNCQCivQmtCQ0J3QotCQ0KDQj9CY0Isg0J7Qm9CT0JAKK9Ca0JDQndCi0JDQoNCP0JjQiyDQn9CV0KLQkNCgCivQmtCQ0J3QotCQ0KDQj9CY0Isg0KHQotCV0JLQkNCdCivQmtCQ0J3QotCQ0KDQj9CY0Isg0JLQkNCh0JAKK9Ca0JDQndCi0JjQndCa0J7QodCa0Jgg0KXQkNCd0KMKK9Ca0JDQndCi0J7QoCDQm9CQ0IjQntCoCivQmtCQ0J3QotCe0KAg0J7QodCa0JDQoAor0JrQkNCd0KPQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQndCj0KDQmNCLINCc0JjQm9CY0KbQkAor0JrQkNCd0KPQoNCY0Isg0JfQntCg0JrQkAor0JrQkNCd0KPQoNCh0JrQmCDQiNCe0JLQkNCdCivQmtCQ0J3Qo9Cg0KHQmtCYINCS0JjQlNCe0KHQkNCS0JAKK9Ca0JDQn9CQ0JzQkNCP0JjQiNCQINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQmtCQ0J/QkNCc0JDQj9CY0IjQkCDQkdCe0KDQmNCh0JvQkNCSINCU0KAKK9Ca0JDQn9CQ0JzQkNCP0JjQiNCQINCU0KPQqNCQ0J3QmtCQCivQmtCQ0J/QkNCc0JDQj9CY0IjQkCDQoNCQ0JTQnNCY0JvQkAor0JrQkNCf0JDQnNCQ0I/QmNCdINCI0J7QktCQ0J0KK9Ca0JDQn9CV0JvQkNCdINCd0JjQmtCe0JvQkAor0JrQkNCf0JXQoSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQkNCf0JXQoSDQl9CU0KDQkNCS0JrQkAor0JrQkNCf0JXQotCQ0J3QmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0JDQn9CV0KLQkNCd0J7QkiDQnNCY0KDQiNCQ0J3QkAor0JrQkNCf0JXQotCQ0J3QntCSINCh0JLQldCi0JjQodCb0JDQkgor0JrQkNCf0JXQotCQ0J3QntCSINCS0KPQmtCY0KbQkAor0JrQkNCf0JXQotCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQmtCQ0J/QldCi0JDQndCe0JLQmNCLINCc0JjQlNCl0JDQogor0JrQkNCf0JXQotCQ0J3QntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JrQkNCf0JXQotCQ0J3QntCS0JjQiyDQntCb0JPQkAor0JrQkNCf0JXQotCQ0J3QntCS0JjQiyDQoNCQ0KLQmtCeCivQmtCQ0J/QldCi0JDQndCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JrQkNCf0JjQp9CY0Isg0JTQo9Co0JDQnQor0JrQkNCf0JjQp9CY0Isg0KHQkNCS0J4KK9Ca0JDQn9CY0KfQmNCLINCh0KLQldCS0JDQnQor0JrQkNCf0JjQptCbINCU0KDQkNCT0KPQotCY0J0KK9Ca0JDQn9CY0KLQkNCKINCb0JDQodCb0J4KK9Ca0JDQn9Cb0JDQoCDQltCY0JLQkNCdCivQmtCQ0J/Qm9CQ0KAg0JzQkNCg0JjQiNCQCivQmtCQ0J/Qm9CQ0KDQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQkNCf0JvQkNCg0KHQmtCYINCa0J7QndCh0KLQkNCd0KLQmNCdCivQmtCQ0J/Qm9CQ0KDQodCa0Jgg0JzQm9CQ0JTQldCdCivQmtCQ0J/Qm9CQ0KDQodCa0Jgg0KHQktCV0KLQm9CQ0J3QkAor0JrQkNCf0JvQmNCI0JXQkiDQn9CV0KLQkNCgCivQmtCQ0J/QnNCQ0IjQldCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCQ0J/QntCnINCQ0J3QotCQ0JsKK9Ca0JDQn9Ce0Kcg0IjQo9CU0JjQogor0JrQkNCf0J7QoCDQkNCT0J3QldCoCivQmtCQ0J/QntCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCQ0J/QntCgINCU0JXQodCQ0J3QmtCQCivQmtCQ0J/QntCgINCT0J7QiNCa0J4KK9Ca0JDQn9Ce0KAg0JrQkNCi0JDQoNCY0J3QkAor0JrQkNCf0J7QoCDQndCQ0JTQkAor0JrQkNCf0J7QoCDQndCe0JLQmNCm0JAKK9Ca0JDQn9Ce0KAg0KHQotCQ0J3QkAor0JrQkNCf0J7QodCi0JAg0KLQldCg0JXQl9CQCivQmtCQ0J/QoNCY0Kgg0JzQmNCg0IjQkNCd0JAKK9Ca0JDQn9Cj0Isg0JjQm9Ce0J3QkAor0JrQkNCg0IvQkNCoINCc0JjQm9Ca0JAKK9Ca0JDQoNCQ0Kcg0JzQmNCg0JrQngor0JrQkNCg0JDQp9Ce0IrQmCDQmNCo0KLQktCQ0J0KK9Ca0JDQoNCQ0Isg0JTQoNCQ0JPQkNCdCivQmtCQ0KDQkNCLINCU0KPQqNCQ0J0KK9Ca0JDQoNCQ0Isg0JTQo9Co0JDQnQor0JrQkNCg0JDQiyDQmNCb0JjQiNCQCivQmtCQ0KDQkNCLINCI0JXQm9CY0KbQkAor0JrQkNCg0JDQiyDQidCj0JHQntCc0JjQoAor0JrQkNCg0JDQiyDQnNCQ0KDQmNCI0JAKK9Ca0JDQoNCQ0Isg0JzQmNCb0JXQndCa0J4KK9Ca0JDQoNCQ0Isg0KDQkNCU0JXQndCa0J4KK9Ca0JDQoNCQ0Isg0KDQkNCI0JrQngor0JrQkNCg0JDQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCQ0KDQkNCC0JXQndCe0JIg0JjQktCQ0J0KK9Ca0JDQoNCQ0ILQldCd0J7QkiDQmNCS0JDQnQor0JrQkNCg0JDQgtCV0J3QntCSINCc0JjQoNCI0JDQndCQCivQmtCQ0KDQkNCC0JjQndCe0JLQmNCLINCo0J/QmNCg0J4KK9Ca0JDQoNCQ0ILQmNCd0J7QktCY0Isg0J3QldCd0JDQlAor0JrQkNCg0JDQgtCY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQmtCQ0KDQkNCC0JjQndCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQmtCQ0KDQkNCC0JjQndCe0JLQmNCLINCX0J7QoNCQCivQmtCQ0KDQkNCR0JAg0JjQoNCV0J3QkCDQlNCgINCb0JXQmtCQ0KAKK9Ca0JDQoNCQ0JHQkCDQiNCe0JLQkNCdCivQmtCQ0KDQkNCR0JAg0J7Qm9CT0JAKK9Ca0JDQoNCQ0JHQkNCoINCc0JjQm9CY0JLQntCICivQmtCQ0KDQkNCR0JDQqCDQodCb0J7QkdCe0JTQkNCdCivQmtCQ0KDQkNCR0JDQodCY0Jsg0JTQoNCQ0JPQkNCdCivQmtCQ0KDQkNCR0JDQodCY0Jsg0JLQmNCU0J7QnNCY0KAKK9Ca0JDQoNCQ0JHQldCT0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQmtCQ0KDQkNCP0JjQiyDQqNCj0IjQngor0JrQkNCg0JDQj9CY0Isg0JbQkNCg0JrQngor0JrQkNCg0JDQj9CY0Isg0ILQntCg0ILQlQor0JrQkNCg0JDQj9CY0Isg0JDQoNCh0JXQndCY0IjQlQor0JrQkNCg0JDQj9CY0Isg0JDQktCg0JDQnAor0JrQkNCg0JDQj9CY0Isg0JHQntCW0J4KK9Ca0JDQoNCQ0I/QmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0JrQkNCg0JDQj9CY0Isg0IjQntCS0JDQnQor0JrQkNCg0JDQj9CY0Isg0IjQntCS0JDQnQor0JrQkNCg0JDQj9CY0Isg0JrQodCV0J3QmNCI0JAKK9Ca0JDQoNCQ0I/QmNCLINCc0JDQoNCY0IjQkAor0JrQkNCg0JDQj9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0JDQoNCQ0I/QmNCLINCc0JjQntCU0KDQkNCTCivQmtCQ0KDQkNCP0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCQ0KDQkNCP0JjQiyDQndCV0J3QkNCUCivQmtCQ0KDQkNCP0JjQiyDQoNCV0InQkAor0JrQkNCg0JDQj9CY0Isg0KDQo9CW0JAKK9Ca0JDQoNCQ0I/QmNCLINCh0JvQkNCS0JjQptCQCivQmtCQ0KDQkNCP0JjQiyDQotCS0KDQotCa0J4KK9Ca0JDQoNCQ0I/QmNCLINCS0JXQoNCQCivQmtCQ0KDQkNCP0JjQiyDQktCj0JoKK9Ca0JDQoNCQ0I/QmNCLINCX0J7QoNCQ0J0KK9Ca0JDQoNCQ0I/QmNCLINCX0J7QoNCQ0J0KK9Ca0JDQoNCQ0JTQkNCg0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQkNCg0JDQlNCQ0KDQldCS0JjQiyDQnNCY0JvQntCoCivQmtCQ0KDQkNCU0JXQk9Cb0JjQiyDQmtCe0KHQkAor0JrQkNCg0JDQk9CQINCd0JjQmtCe0JvQkAor0JrQkNCg0JDQk9CY0Ist0JvQmNCf0JjQndCh0JrQmCDQmNCb0J7QndCQCivQmtCQ0KDQkNCY0KbQkCDQl9Ce0KDQkNCdCivQmtCQ0KDQkNCI0JrQntCSINCQ0JvQntCI0JfQmNCI0JUKK9Ca0JDQoNCQ0IjQmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JrQkNCg0JDQiNCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQmtCQ0KDQkNCI0JvQntCS0JjQiyDQgtCj0KDQngor0JrQkNCg0JDQiNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQmtCQ0KDQkNCa0JDQqCDQnNCY0KDQiNCQ0J3QkAor0JrQkNCg0JDQmtCQ0KjQldCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JrQkNCg0JDQmtCQ0KjQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQkNCg0JDQmtCQ0KjQldCS0JjQiyDQldCS0JjQptCQCivQmtCQ0KDQkNCa0JDQqNCV0JLQmNCLINCh0KLQldCS0JDQnQor0JrQkNCg0JDQmtCQ0KjQldCS0JjQiyDQl9Ce0KDQkAor0JrQkNCg0JDQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CQCivQmtCQ0KDQkNCc0JDQotCY0Isg0JDQndCi0JUKK9Ca0JDQoNCQ0J0g0JbQldCJ0JrQngor0JrQkNCg0JDQnSDQlNCg0JDQk9CQ0J0KK9Ca0JDQoNCQ0J0t0JrQldCg0J0g0JHQkNCg0JHQkNCg0JAKK9Ca0JDQoNCQ0J0g0JzQmNCb0JDQnQor0JrQkNCg0JDQnSDQnNCY0JvQldCd0JrQngor0JrQkNCg0JDQnSDQnNCY0JvQmNCd0JrQngor0JrQkNCg0JDQnSDQodCQ0JLQngor0JrQkNCg0JDQnSDQodCg0ILQngor0JrQkNCg0JDQitCQ0KYg0JTQoNCQ0JPQntCh0JvQkNCSCivQmtCQ0KDQkNCK0JDQpiDQidCj0JHQmNCm0JAKK9Ca0JDQoNCQ0IrQkNCmINCS0JXQoNCe0InQo9CRCivQmtCQ0KDQkNCd0J7QkiDQltCY0JLQkNCdCivQmtCQ0KDQkNCd0J7QkiDQkdCj0JTQmNCc0JrQkAor0JrQkNCg0JDQndCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JrQkNCg0JDQndCe0JIg0JrQo9CX0JzQkNCdCivQmtCQ0KDQkNCd0J7QkiDQnNCY0JvQkNCdCivQmtCQ0KDQkNCd0J7QkiDQnNCY0JvQntCS0JDQnQor0JrQkNCg0JDQndCe0JIg0JzQmNCg0J7QodCb0JDQkgor0JrQkNCg0JDQndCe0JIg0KHQntCk0JjQiNCQCivQmtCQ0KDQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JrQkNCg0JDQndCe0JLQmNCLINCR0J7QltCeCivQmtCQ0KDQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQmtCQ0KDQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JrQkNCg0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQldCc0JjQm9CY0IjQkAor0JrQkNCg0JDQndCe0JLQmNCLINCT0KDQldCi0JAKK9Ca0JDQoNCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQmtCQ0KDQkNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JrQkNCg0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Ca0JDQoNCQ0J3QntCS0JjQiyDQmNCS0JjQptCQCivQmtCQ0KDQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JrQkNCg0JDQndCe0JLQmNCLINCa0JDQotCY0KbQkAor0JrQkNCg0JDQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JrQkNCg0JDQndCe0JLQmNCLINCJ0KPQkdCQCivQmtCQ0KDQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQkNCg0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0JrQkNCg0JDQndCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQmtCQ0KDQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0JDQoNCQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQmtCQ0KDQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCQ0KDQkNCd0J7QktCY0Isg0J/QldCg0J4KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQoNCQ0KLQmtCeCivQmtCQ0KDQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQmtCQ0KDQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQkNCg0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JrQkNCg0JDQndCe0JLQmNCLINCh0KLQldCS0J4KK9Ca0JDQoNCQ0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmtCQ0KDQkNCd0J7QktCY0Isg0KLQoNCY0JLQngor0JrQkNCg0JDQndCe0JLQmNCLINCS0JXQodCeCivQmtCQ0KDQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQkNCg0JDQn9CQ0J3QltCQINCc0JDQoNCY0IjQkAor0JrQkNCg0JDQn9CQ0J3Qj9CQINCJ0JjQidCQ0J3QkAor0JrQkNCg0JDQn9CQ0J3Qj9CQINCS0JjQotCe0JzQmNCgCivQmtCQ0KDQkNCf0JDQndCP0JjQiyDQgtCj0KDQkAor0JrQkNCg0JDQn9CQ0J3Qj9CY0Isg0JPQntCg0JTQkNCd0JAKK9Ca0JDQoNCQ0J/QkNCd0I/QmNCLINCc0JjQoNCI0JDQndCQCivQmtCQ0KDQkNCf0JDQndCP0JjQnSDQkdCQ0KDQkdCQ0KDQkAor0JrQkNCg0JDQn9CQ0J3Qj9CY0J0g0JfQntCg0JrQkAor0JrQkNCg0JDQoSDQmtCQ0JfQmNCc0JjQoAor0JrQkNCg0JDQoSDQnNCQ0JPQlNCQCivQmtCQ0KDQkNChINCf0JXQotCQ0KAKK9Ca0JDQoNCQ0KEg0J/QldCi0JDQoAor0JrQkNCg0JDQodCQ0JvQmNCl0J7QktCY0Isg0KHQnNCQ0JjQmwor0JrQkNCg0JDQodCV0Jog0JrQkNCg0J7QiQor0JrQkNCg0JDQodCY0Igg0JHQntCg0JjQoQor0JrQkNCg0JDQodCY0Igg0IjQkNCh0JzQmNCd0JAKK9Ca0JDQoNCQ0KHQmNCIINCS0JXQoNCe0J3QmNCa0JAKK9Ca0JDQoNCQ0KLQmCDQldCj0JPQldCdCivQmtCQ0KDQkNCi0KPQoCDQiNCQ0JTQoNCQ0J3QmtCQCivQmtCQ0KDQkNCS0JvQkCDQmtCQ0KLQkNCg0JjQndCQCivQmtCQ0KDQkNCS0JvQkCDQl9Cb0JDQotCa0J4KK9Ca0JDQoNCQ0JLQm9CQINCX0J7QoNCY0KbQkAor0JrQkNCg0JHQkNCdINCg0KPQlNCe0JvQpAor0JrQkNCg0JTQkNCoINCe0JHQoNCQ0JQKK9Ca0JDQoNCU0JDQqCDQntCb0JPQkAor0JrQkNCg0JTQkNCo0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCQ0KDQlNCQ0KjQldCS0JjQiyDQpNCY0IjQkAor0JrQkNCg0JTQkNCo0JXQktCY0Isg0KXQo9Ch0J3QmNCI0JAKK9Ca0JDQoNCU0J7QqCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQkNCg0JTQntCoINCV0KDQmNCa0JAKK9Ca0JDQoNCU0J7QqCDQmNCb0J7QndCQCivQmtCQ0KDQlNCe0Kgg0JvQkNCI0J7QqAor0JrQkNCg0JTQntCoINCf0JDQmwor0JrQkNCg0JTQntCoINCS0JXQoNCe0J3QmNCa0JAKK9Ca0JDQoNCU0J7QkiDQiNCe0KHQmNCfCivQmtCQ0KDQlNCj0Jwg0ILQntCg0ILQlQor0JrQkNCg0JPQkNCn0JjQnSDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQkNCg0JjQqNCY0Isg0JjQktCQ0J3QmtCQCivQmtCQ0KDQmNCo0JjQmiDQlNCQ0J3QlQor0JrQkNCg0JjQqNCY0Jog0IjQntCS0JDQndCa0JAKK9Ca0JDQoNCY0KjQmNCaINCc0JjQm9Cj0KLQmNCdCivQmtCQ0KDQmNCLINCR0J7QodCY0InQmtCQCivQmtCQ0KDQmNCLINCI0J7QktCQ0J3QmtCQCivQmtCQ0KDQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0JDQoNCY0Isg0KHQkNCS0JAKK9Ca0JDQoNCY0Isg0KHQkNCS0JAKK9Ca0JDQoNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQmtCQ0KDQmNCa0J4g0IjQntCh0JjQnwor0JrQkNCg0JjQmtCeINCc0JDQoNCY0IjQkAor0JrQkNCg0JjQmtCeINCi0JXQoNCV0JfQkAor0JrQkNCg0JjQndCQINCU0KDQkNCT0JjQptCQCivQmtCQ0KDQmNCj0KEg0JzQkNCg0JjQiNCQCivQmtCQ0KDQmNCj0KEg0JLQldCg0JAKK9Ca0JDQoNCb0JDQqCDQnNCY0JvQntCg0JDQlAor0JrQkNCg0JvQkNCS0JDQoNCY0KEg0JTQoNCQ0JPQkNCdCivQmtCQ0KDQm9CQ0JLQkNCg0JjQoSDQmNCS0JDQnQor0JrQkNCg0JvQkNCS0JDQoNCY0KEg0J3QkNCU0JAKK9Ca0JDQoNCb0JDQktCQ0KDQmNChINCg0JDQlNCY0JLQntCICivQmtCQ0KDQm9CQ0JLQkNCg0JjQoS3Ql9CV0JrQntCS0JjQiyDQnNCY0KDQldCb0JAKK9Ca0JDQoNCb0JjQiyDQiNCV0KTQotCQCivQmtCQ0KDQm9CY0Isg0JvQkNCX0JDQoAor0JrQkNCg0JvQmNCLINCc0JjQm9CY0JLQntCICivQmtCQ0KDQm9CeINCS0JDQiNCU0JAKK9Ca0JDQoNCb0J7QktCn0JXQpiDQnNCY0KDQmtCeCivQmtCQ0KDQm9Ce0JLQmNCLINCC0JXQoNCCCivQmtCQ0KDQm9Ce0JLQmNCLINCc0JDQoNCY0KbQkAor0JrQkNCg0J7Qm9CY0Isg0InQo9CR0JjQptCQCivQmtCQ0KDQntCb0JjQiyDQnNCY0KDQmtCeCivQmtCQ0KDQntCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCQ0KDQntCJ0Jgg0IjQkNCd0J7QqAor0JrQkNCg0J7QidCYINCb0JDQodCb0J4KK9Ca0JDQoNCe0JLQmNCLINCT0JvQmNCo0JAKK9Ca0JDQoNCf0JDQotCYINCb0JDQodCb0J4KK9Ca0JDQoNCf0J7QitCQINCI0KPQm9CY0IjQkNCd0JAKK9Ca0JDQoNCf0J7QitCQINCh0JjQndCY0KjQkAor0JrQkNCg0KLQkNCTINCd0JDQndCU0J7QoAor0JrQkNCg0KLQkNCYINCb0JDQiNCe0KgKK9Ca0JDQoNCi0JDQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0JDQoNCi0IjQlSDQiNCe0JLQkNCdCivQmtCQ0KDQktCQ0Jog0JXQnNCQCivQmtCQ0KDQktCQ0Jog0JPQldCX0JAKK9Ca0JDQodCQINCC0JXQoNCCCivQmtCQ0KHQkCDQkNCd0JTQoNCY0IjQkAor0JrQkNCh0JAg0JDQndCi0JDQmwor0JrQkNCh0JAg0KTQoNCQ0IrQkAor0JrQkNCh0JAg0JjQlNCQCivQmtCQ0KHQkCDQmNCc0KDQlQor0JrQkNCh0JAg0IjQldCb0JXQndCQCivQmtCQ0KHQkCDQnNCY0KXQkNCJCivQmtCQ0KHQkCDQoNCj0JbQkAor0JrQkNCh0JAg0KDQo9CW0JAKK9Ca0JDQodCQINCX0J7QoNCa0JAKK9Ca0JDQodCQ0Kgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JzQoAor0JrQkNCh0JDQqCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQkNCh0JDQqCDQmNCc0KDQlQor0JrQkNCh0JDQqCDQmNCc0KDQlQor0JrQkNCh0JDQqCDQmNCc0KDQlQor0JrQkNCh0JDQqCDQiNCQ0J3QntCoCivQmtCQ0KHQkNCoINCI0J7QltCV0KQKK9Ca0JDQodCQ0Kgg0IjQntCh0JjQnwor0JrQkNCh0JDQqCDQmtCQ0KDQntCJCivQmtCQ0KHQkNCoINCa0JDQoNCe0IkKK9Ca0JDQodCQ0Kgg0JrQkNCg0J7QiQor0JrQkNCh0JDQqCDQntCb0JPQkAor0JrQkNCh0JDQk9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JrQkNCh0JDQm9CY0KbQkCDQltCQ0KDQmtCeCivQmtCQ0KHQkNCb0JjQptCQINCW0JjQktCa0J4KK9Ca0JDQodCQ0JvQmNCm0JAg0JzQmNCb0JDQnQor0JrQkNCh0JDQm9CY0KbQkCDQodCi0JXQktCQ0J3QmNCI0JAKK9Ca0JDQodCQ0J8g0JXQoNCS0JjQnQor0JrQkNCh0JDQn9Ce0JIg0KHQotCV0JLQkNCdCivQmtCQ0KHQkNCf0J7QktCY0Isg0JzQkNCg0JAKK9Ca0JDQodCQ0J/QntCS0JjQiyDQnNCV0KXQngor0JrQkNCh0JDQn9Ce0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQmtCQ0KHQkNCf0KHQmtCYINCW0JDQoNCa0J4KK9Ca0JDQodCQ0J/QodCa0Jgg0IjQldCb0JrQkAor0JrQkNCh0JDQoCDQodCV0JvQmNCcCivQmtCQ0KHQmNCLINCU0JDQndCY0KbQkAor0JrQkNCh0J3QldCgINCc0JjQiNCe0InQmtCQCivQmtCQ0KHQn9CV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQodCf0JXQoCDQpNCV0KDQldCd0KYKK9Ca0JDQodCf0JXQoCDQpNCg0JDQitCQCivQmtCQ0KHQn9CV0KAg0JvQkNCU0JjQodCb0JDQkgor0JrQkNCh0J/QldCgINCh0KLQldCS0JDQnQor0JrQkNCh0KLQldCb0Jgg0ILQo9Cg0ILQmNCd0JrQkAor0JrQkNCh0KLQldCb0Jgg0JzQkNCg0JrQngor0JrQkNCh0KLQntCg0Jgg0KDQo9CU0J7Qm9CkCivQmtCQ0KHQotCg0JDQotCYINCk0JDQlNCY0JsKK9Ca0JDQodCi0KDQkNCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JDQodCi0KDQkNCi0J7QktCY0Isg0JHQntCT0JTQkNCdCivQmtCQ0KHQotCg0JDQotCe0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQmtCQ0KHQotCg0JDQotCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JDQodCi0KDQkNCi0J7QktCY0Isg0JfQntCg0JDQnQor0JrQkNCh0KLQoNCQ0KLQntCS0JjQiyDQl9Ce0KDQkNCdCivQmtCQ0KLQkNCo0JjQiyDQn9CV0KLQkNCgCivQmtCQ0KLQkNCb0JXQndCY0Isg0JTQo9Co0JDQnQor0JrQkNCi0JDQm9CY0J3Qp9CV0JIg0JbQmNCS0JDQnQor0JrQkNCi0JDQndCQINCQ0J3Qk9CV0JvQmNCd0JAKK9Ca0JDQotCQ0J3QkCDQndCY0JrQntCb0JAKK9Ca0JDQotCQ0J3QmNCLINCQ0J3QgtCV0JvQmtCQCivQmtCQ0KLQkNCd0JjQiyDQiNCV0KbQkAor0JrQkNCi0JDQndCY0Isg0JrQodCV0J3QmNCI0JAKK9Ca0JDQotCQ0J3QmNCLINCJ0KPQkdCY0KbQkAor0JrQkNCi0JDQndCY0Isg0JzQkNCg0JAKK9Ca0JDQotCQ0J3QmNCLINCg0JDQlNCY0JLQntCICivQmtCQ0KLQkNCd0JjQiyDQoNCQ0JTQntCc0JjQoAor0JrQkNCi0JDQndCY0Isg0KHQkNCS0JAg0JTQoAor0JrQkNCi0JDQndCh0JrQmCDQnNCY0JvQntCoCivQmtCQ0KLQkNCd0KHQmtCYINCf0JDQktCb0JUKK9Ca0JDQotCQ0KDQmNCd0KfQmNCLINCm0JXQm9CV0KHQotCY0J0KK9Ca0JDQotCQ0KDQmNCS0JDQoSDQldCb0JAKK9Ca0JDQotCQ0KDQmNCS0JDQoS3QndCY0JrQntCb0JjQiyDQk9CY0JfQldCb0JAKK9Ca0JDQotCQ0KLQmNCLINCY0JvQntCd0JAKK9Ca0JDQotCQ0JLQkCDQoNCj0JTQntCb0KQKK9Ca0JDQotCQ0JLQmNCLINCU0JDQndCY0JvQmtCQCivQmtCQ0KLQkNCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0JDQotCQ0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQmtCQ0KLQmNCLINCQ0JTQkAor0JrQkNCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Ca0JDQotCY0Isg0JHQntCh0JjQidCa0JAKK9Ca0JDQotCY0Isg0JTQkNCg0JAKK9Ca0JDQotCY0Isg0JTQntCR0KDQmNCb0JAKK9Ca0JDQotCY0Isg0JPQntCI0JrQngor0JrQkNCi0JjQiyDQmNCb0JjQiNCQCivQmtCQ0KLQmNCLINCY0JvQmNCI0JAKK9Ca0JDQotCY0Isg0JjQktCQ0J0KK9Ca0JDQotCY0Isg0IjQntCS0JDQnQor0JrQkNCi0JjQiyDQiNCe0JLQngor0JrQkNCi0JjQiyDQmtCe0KHQotCQCivQmtCQ0KLQmNCLINCa0KDQodCi0JAKK9Ca0JDQotCY0Isg0JrQodCV0J3QmNCI0JAKK9Ca0JDQotCY0Isg0InQmNCJ0JDQndCQCivQmtCQ0KLQmNCLINCJ0KPQkdCY0J3QmtCeCivQmtCQ0KLQmNCLINCb0KPQmtCQCivQmtCQ0KLQmNCLINCc0JDQoNCT0JDQoNCV0KLQkAor0JrQkNCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0JDQotCY0Isg0JzQmNCb0JDQnQor0JrQkNCi0JjQiyDQnNCY0JvQkNCdCivQmtCQ0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCQ0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCQ0KLQmNCLINCc0JjQotCQCivQmtCQ0KLQmNCLINCd0JjQmtCe0JvQkAor0JrQkNCi0JjQiyDQndCe0JLQkNCaCivQmtCQ0KLQmNCLINCe0KLQmNCb0JjQiNCQCivQmtCQ0KLQmNCLINCf0JDQktCb0JUg0JTQoAor0JrQkNCi0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JrQkNCi0JjQiyDQoNCQ0KLQmtCeCivQmtCQ0KLQmNCLINCh0JDQktCeCivQmtCQ0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JDQotCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQkNCi0JjQiyDQodCd0JXQltCQ0J3QkAor0JrQkNCi0JjQiyDQodCg0JXQotCV0J0KK9Ca0JDQotCY0Isg0KHQotCQ0J3QmtCeCivQmtCQ0KLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JrQkNCi0JjQiyDQodCS0JXQotCb0JDQndCQCivQmtCQ0KLQmNCLINCS0JXQodCV0JvQkAor0JrQkNCi0JjQiyDQktCV0KHQndCQCivQmtCQ0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JDQotCY0Isg0JfQm9CQ0KLQntCc0JjQoAor0JrQkNCi0JjQndCn0JjQiyDQltCV0JvQmNCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Ca0JDQotCd0JjQiyDQodCQ0JLQldCi0JAKK9Ca0JDQotCe0J3QkCDQmNCc0KDQlQor0JrQkNCi0J7QndCQINCI0J7QltCV0KQKK9Ca0JDQotCe0J3QkCDQm9CQ0IjQntCoINCU0JjQn9CbINCY0J3Qkwor0JrQkNCi0J7QndCQINCb0JDQodCb0J4KK9Ca0JDQotCe0J3QkCDQktCY0J3QptCVCivQmtCQ0KPQoNCY0Isg0J3QmNCa0J7Qm9CQCivQmtCQ0KPQoNCY0J0g0IjQo9Cg0JUKK9Ca0JDQo9Cg0JjQnSDQmtCg0KHQotCeCivQmtCQ0KPQoNCY0J0g0JvQkNCX0JDQoAor0JrQkNCj0KDQmNCdINCc0J7QnNCn0JjQm9CeCivQmtCQ0KPQoNCY0J0g0J3QldCU0JXQidCa0J4KK9Ca0JDQo9Cg0JjQnSDQktCQ0KHQngor0JrQkNCj0KDQmNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ca0JDQo9Cg0JjQndCe0JLQmNCLINCh0JjQnNCeINCU0JjQn9CbINCY0J3Qkwor0JrQkNCj0KLQldCdINCI0J7QpdCQ0J0KK9Ca0JDQktCn0JjQiyDQodCi0JXQktCQ0J0KK9Ca0JDQktCQ0IjQkCDQm9Cj0JrQkAor0JrQkNCS0JDQiNCQINCd0JjQmtCeCivQmtCQ0JLQkNCb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCQ0JLQldCn0JDQnSDQmNCS0JDQnSDQlNCgCivQmtCQ0JLQldCn0JDQnSDQndCY0JrQntCb0JAKK9Ca0JDQktCT0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQkNCS0JPQmNCLINCd0JjQmtCe0JvQkAor0JrQkNCS0JPQmNCLINCf0JXQotCQ0KAKK9Ca0JDQktCT0JjQiyDQn9CV0KLQkNCgCivQmtCQ0JLQk9CY0Isg0KHQotCV0JLQkNCdCivQmtCQ0JLQoNCQ0IjQkCDQodCi0JXQktCQ0J0KK9Ca0JDQktCg0JDQiNCQINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0JDQktCg0JDQnSDQltCV0InQmtCeCivQmtCQ0JfQkNCk0JXQoNCe0JLQmNCLINCg0JXQqNCQ0JQKK9Ca0JDQl9CQ0J3QptCV0JIg0IjQntCh0JjQn9CQCivQmtCQ0JfQmCDQldCg0J3QlQor0JrQkNCX0Jgg0IjQntCW0JXQpAor0JrQkNCX0JjQiNCQINCh0JzQmNCJ0JrQkAor0JrQkNCX0JjQnNCY0Isg0KHQotCV0JLQkNCdCivQmtCQ0JfQmNCc0JjQoNCe0JLQmNCLINCQ0J3QkAor0JrQkNCX0JjQnNCY0KDQntCS0JjQiyDQidCj0JHQmNCh0JDQkgor0JrQkNCX0JjQnNCY0KDQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQkNCX0JjQnNCY0KDQntCS0JjQiyDQndCV0KHQotCe0KAKK9Ca0JXQp9CQINCR0J7QiNCQ0J3QkAor0JrQldCn0JAg0JTQo9Co0JDQndCa0JAKK9Ca0JXQp9CQINCY0JvQmNCI0JAKK9Ca0JXQp9CQINCc0JjQmtCQ0J0KK9Ca0JXQp9CQINCc0JjQm9CQ0J0KK9Ca0JXQp9CQINCc0JjQm9CQ0J0KK9Ca0JXQp9CQINCc0JjQm9CQ0J0KK9Ca0JXQp9CQINCc0JjQm9CV0J3QmtCeCivQmtCV0KfQkCDQnNCY0JvQldCS0JAKK9Ca0JXQp9CQINCf0JXQoNCeCivQmtCV0KfQkCDQoNCQ0J3QmtCeCivQmtCV0KfQkCDQodCb0J7QkdCe0JTQkNCdCivQmtCV0KfQkCDQktCe0IjQmNCdCivQmtCV0KfQmNCLINCW0JjQktCQ0J0KK9Ca0JXQp9CY0Isg0JzQmNCb0JDQnSDQkNCa0JDQlNCV0JzQodCa0Jgg0KHQm9CY0JrQkNCgCivQmtCV0KfQmtCV0Kgg0ILQldCg0IIKK9Ca0JXQp9Ca0JXQqCDQpNCV0KDQldCd0KYKK9Ca0JXQp9Ca0JXQqCDQiNCe0KHQmNCfCivQmtCV0KfQmtCV0JzQldCi0Jgg0JjQqNCi0JLQkNCdCivQmtCV0KfQmtCYINCg0KPQltCY0KbQkAor0JrQldCo0JDQndCh0JrQmCDQmNCS0JrQkAor0JrQldCo0JDQndCh0JrQmCDQmtCQ0KLQmNCm0JAKK9Ca0JXQqNCQ0J3QodCa0Jgg0KDQkNCU0JXQndCa0J4KK9Ca0JXQqNCQ0J3QodCa0Jgg0KDQkNCU0JjQktCe0IgKK9Ca0JXQqNCQ0J3QodCa0Jgg0KDQo9CW0JjQptCQCivQmtCV0KjQkNCd0KHQmtCYINCh0JjQnNCeCivQmtCV0KjQkNCd0KHQmtCYINCh0KLQkNCd0JjQodCb0JDQkgor0JrQldCo0JXQiSDQp9CV0JTQntCc0JjQoAor0JrQldCo0JXQiSDQldCS0JAKK9Ca0JXQqNCV0Ikg0JPQntCI0JrQngor0JrQldCo0JXQiSDQiNCe0JLQkNCdCivQmtCV0KjQldCJINCg0JDQlNCc0JjQm9CQCivQmtCV0KjQldCJINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JXQqNCV0Ikg0KPQk9CJ0JXQqNCQCivQmtCV0KjQldCJINCS0KPQmtCQ0KjQmNCdCivQmtCV0KjQmtCY0Isg0JfQktCe0J3QmNCc0JjQoAor0JrQldCo0JzQkNCg0JrQmC3QmtCg0JXQodCi0JAg0IjQldCb0JXQndCQCivQmtCV0JbQmNCLINCR0JjQidCQ0J3QkAor0JrQldCW0JjQiyDQlNCj0KjQkNCdCivQmtCV0JbQmNCLINCa0JDQotCY0KbQkAor0JrQldCW0JjQiyDQnNCQ0KDQiNCQ0J0KK9Ca0JXQltCY0Isg0JzQmNCb0JDQnQor0JrQldCW0JjQiyDQndCV0JLQldCd0JrQkAor0JrQldCW0JjQiyDQktCb0JDQlNCeCivQmtCV0JHQmNCdINCW0JDQoNCa0J4KK9Ca0JXQptCV0JvQmCDQnNCY0KXQkNCJCivQmtCV0KbQmNCLINCU0JDQndCY0JvQniDQlNCgCivQmtCV0KbQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0JXQptCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQldCm0JzQkNCdINCn0JXQlNCQCivQmtCV0KbQnNCQ0J0g0JbQkNCg0JrQngor0JrQldCm0JzQkNCdINCC0KPQoNCeCivQmtCV0KbQnNCQ0J0g0ILQo9Cg0J4KK9Ca0JXQptCc0JDQnSDQkdCe0KDQmNCh0JvQkNCSCivQmtCV0KbQnNCQ0J0g0JHQoNCQ0J3QmtCeCivQmtCV0KbQnNCQ0J0g0JTQoNCQ0JPQmNCm0JAKK9Ca0JXQptCc0JDQnSDQlNCj0KjQkNCdCivQmtCV0KbQnNCQ0J0g0JjQm9CY0IjQkAor0JrQldCm0JzQkNCdINCI0J7QktCQ0J0KK9Ca0JXQptCc0JDQnSDQiNCe0JLQkNCdCivQmtCV0KbQnNCQ0J0g0IjQo9Cb0JrQkAor0JrQldCm0JzQkNCdINCJ0KPQkdCQCivQmtCV0KbQnNCQ0J0g0JzQkNCg0JAKK9Ca0JXQptCc0JDQnSDQnNCQ0KDQmtCeCivQmtCV0KbQnNCQ0J0g0JzQmNCb0JDQlNCY0J0KK9Ca0JXQptCc0JDQnSDQnNCY0JvQkNCdCivQmtCV0KbQnNCQ0J0g0JzQmNCb0JDQnQor0JrQldCm0JzQkNCdINCc0JjQm9Ca0JAKK9Ca0JXQptCc0JDQnSDQnNCY0JvQo9Ci0JjQnQor0JrQldCm0JzQkNCdINCc0JjQoNCI0JDQndCQCivQmtCV0KbQnNCQ0J0g0JzQmNCg0J7QodCb0JDQktCQCivQmtCV0KbQnNCQ0J0g0JzQm9CQ0JTQldCdCivQmtCV0KbQnNCQ0J0g0KHQotCV0JLQkNCdCivQmtCV0KbQnNCQ0J0g0KHQktCV0KLQmtCeCivQmtCV0KbQniDQp9CV0JTQntCc0JjQoAor0JrQldCm0J4g0JPQntCI0JrQngor0JrQldCm0J4g0IjQldCb0JXQndCQCivQmtCV0KbQniDQidCj0JHQntCc0JjQoAor0JrQldCm0J4g0JzQkNCg0JjQiNCQCivQmtCV0KbQniDQnNCQ0KDQmNCI0JAKK9Ca0JXQptCeINCc0JjQoNCI0JDQndCQCivQmtCV0KbQniDQnNCY0KLQkNCgCivQmtCV0KbQniDQnNCe0JzQmNCgCivQmtCV0KbQniDQoNCQ0JTQntCI0JUKK9Ca0JXQptCeINCg0JDQotCa0J4KK9Ca0JXQptCeINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JXQptCeINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JXQj9CQINCc0JjQm9Ce0KDQkNCUCivQmtCV0JTQmNCLINCU0KPQqNCQ0J0KK9Ca0JXQlNCY0Isg0KHQotCQ0J3QmtCeCivQmtCV0JTQktCV0Kgg0JXQktCQCivQmtCV0KTQldCgINCI0JDQndCe0KgKK9Ca0JXQpNCV0KAg0IjQntCh0JjQnwor0JrQldCT0JvQntCS0JjQiyDQktCY0J3QmtCeCivQmtCV0Jog0JXQoNCW0JXQkdCV0KIKK9Ca0JXQmiDQldCS0JAKK9Ca0JXQmtCV0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQldCa0JXQiiDQk9CY0JfQldCb0JAKK9Ca0JXQmtCV0Jcg0JTQoNCQ0JPQmNCK0JAKK9Ca0JXQmtCY0Isg0ILQntCg0ILQlQor0JrQldCa0JjQiyDQgtCj0KDQkAor0JrQldCa0JjQiyDQkNCT0JjQptCQCivQmtCV0JrQmNCLINCU0JDQndCY0KbQkAor0JrQldCa0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0JXQmtCY0Isg0JTQo9Co0JDQnQor0JrQldCa0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQldCa0JjQiyDQmtCe0KHQntCS0JrQkAor0JrQldCa0JjQiyDQnNCY0JvQkNCdCivQmtCV0JrQmNCLINCc0JjQm9CY0KbQkAor0JrQldCa0JjQiyDQnNCY0KDQmtCeCivQmtCV0JrQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Ca0JXQmtCY0Isg0J/QldCi0JDQoAor0JrQldCa0JjQiyDQodCb0JDQktCY0KbQkAor0JrQldCa0JjQiyDQotCV0J7QlNCe0KAKK9Ca0JXQmtCY0J0g0JzQkNCg0JjQiNCQCivQmtCV0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmtCV0JrQntCS0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQmtCV0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQldCb0JHQm9CYINCc0JjQpdCQ0IjQm9CeCivQmtCV0JvQlSDQiNCe0JbQldCkCivQmtCV0JvQlSDQiNCe0JbQldCkCivQmtCV0JvQldCnINCc0JjQm9Ce0KDQkNCUCivQmtCV0JvQldCnINCc0JjQoNCa0J4KK9Ca0JXQm9CV0KfQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0JXQm9CV0KfQldCS0JjQiyDQndCY0JrQmNCm0JAKK9Ca0JXQm9CV0KfQmNCLINCY0JLQkNCdCivQmtCV0JvQldCn0JjQiyDQiNCe0KHQmNCfCivQmtCV0JvQldCc0JXQnSDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Ca0JXQm9CV0JzQldCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCV0JvQldCc0JXQnSDQkNCd0JAKK9Ca0JXQm9CV0JzQldCdINCT0JDQkdCe0KAKK9Ca0JXQm9CV0JzQldCdINCY0JzQoNCVCivQmtCV0JvQldCc0JXQnSDQiNCe0JbQldCkCivQmtCV0JvQldCc0JXQnSDQiNCe0JbQldCkCivQmtCV0JvQldCc0JXQnSDQm9CQ0IjQntCoCivQmtCV0JvQldCc0JXQnSDQnNCQ0IvQkNCoCivQmtCV0JvQldCc0JXQnSDQnNCQ0KDQmNCI0JAKK9Ca0JXQm9CV0JzQldCdINCi0JjQkdCe0KAKK9Ca0JXQm9CV0KAg0IjQkNCd0J7QqAor0JrQldCb0JXQoCDQiNCQ0J3QntCoCivQmtCV0JvQldCgINCf0JXQotCQ0KAKK9Ca0JXQm9CV0KAg0KDQkNCU0JzQmNCb0JAKK9Ca0JXQm9CV0KAg0KHQotCV0JLQkNCdCivQmtCV0JvQldCj0JLQkCDQlNCg0JDQk9CeCivQmtCV0JvQldCj0JLQkCDQnNCY0KXQkNCI0JvQngor0JrQldCb0JjQiyDQodCi0JXQktCQ0J3QmtCQCivQmtCV0JvQmNCI0JDQqNCV0JLQmNCLINCW0JjQktCa0J4KK9Ca0JXQm9Cd0JXQoCDQnNCQ0KDQmNCI0JAKK9Ca0JXQm9Ce0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQmtCV0JzQldCmINCQ0J3QlNCg0JjQiNCQCivQmtCV0JzQldCmINCc0JjQiNCeINCU0JjQn9CbINCY0J3Qkwor0JrQldCc0JXQndCm0Jgg0JHQldCb0JAKK9Ca0JXQnNCV0Iog0JzQmNCg0JAKK9Ca0JXQnNCV0Iog0KLQldCg0JXQl9CY0IjQkCDQlNCY0J/QmyDQmNCd0JMKK9Ca0JXQnNCY0JLQldCoINCT0JXQntCg0JMKK9Ca0JXQndCC0JXQmyDQodCi0JXQktCY0KbQkAor0JrQldCd0KbQldCbINCh0JzQmNCJ0JAKK9Ca0JXQndCV0KjQmtCYINCU0KDQkNCT0JDQnQor0JrQldCd0JjQkyDQpdCV0J3QlNCg0JjQpQor0JrQldCd0JjQkyDQiNCV0JrQkAor0JrQldCd0JjQkyDQiNCV0JvQldCd0JAKK9Ca0JXQitCQ0JvQniDQodCi0J7QiNCQ0J0KK9Ca0JXQn9Cn0JjQiNCQINCY0JvQmNCI0JAKK9Ca0JXQn9Cn0JjQiNCQINCc0JjQm9CVCivQmtCV0J/Qp9CY0IjQkCDQotCe0JTQntCgCivQmtCV0J/QlS3QlNCg0JDQk9Ce0KHQkNCS0InQldCS0JjQiyDQm9CY0JLQmNCI0JAKK9Ca0JXQn9CVINCI0KPQm9CY0IjQkNCd0JAKK9Ca0JXQn9CY0Isg0JbQmNCS0JDQnQor0JrQldCg0KfQldCSINCa0JDQoNCb0J4KK9Ca0JXQoNCn0KMg0JzQmNCg0IjQkNCd0JAKK9Ca0JXQoNCn0KMg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCV0KDQqNCd0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQldCg0JDQpiDQltCQ0KDQmtCeCivQmtCV0KDQkNCmINCW0JDQoNCa0J4KK9Ca0JXQoNCQ0KYg0ILQo9Cg0JAKK9Ca0JXQoNCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCV0KDQkNCmINCU0JDQndCY0KbQkAor0JrQldCg0JDQpiDQlNCj0KjQkNCdCivQmtCV0KDQkNCmINCV0KDQltCV0JHQldCiCivQmtCV0KDQkNCmINCT0JDQktCg0JAKK9Ca0JXQoNCQ0KYg0IjQntCS0JDQnQor0JrQldCg0JDQpiDQiNCe0JLQkNCdCivQmtCV0KDQkNCmINCb0JDQl9CQ0KAKK9Ca0JXQoNCQ0KYg0JvQkNCX0JDQoAor0JrQldCg0JDQpiDQm9CV0J/QntCh0JDQktCQCivQmtCV0KDQkNCmINCc0JjQm9CY0JLQntCICivQmtCV0KDQkNCmINCc0JjQm9Ce0KgKK9Ca0JXQoNCQ0KYg0JzQmNCi0JAKK9Ca0JXQoNCQ0KYg0J/QkNCS0JvQlQor0JrQldCg0JDQpiDQn9CQ0JLQm9CVCivQmtCV0KDQkNCmINCf0JXQoNCQCivQmtCV0KDQkNCmINCh0JjQnNCQCivQmtCV0KDQkNCmINCh0J7QitCQCivQmtCV0KDQkNCmINCh0J/QkNCh0JAKK9Ca0JXQoNCQ0KYg0KHQotCQ0J3QkAor0JrQldCg0JDQpiDQodCi0JDQndCY0KHQm9CQ0JLQkAor0JrQldCg0JDQpiDQodCi0JXQktCQ0J0KK9Ca0JXQoNCQ0KYg0KHQotCV0JLQkNCdCivQmtCV0KDQkNCmINCi0J7QlNCe0KAKK9Ca0JXQoNCQ0KYg0JfQm9CQ0KLQmtCeCivQmtCV0KDQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQldCg0JDQndCe0JLQmNCLINCh0KLQkNCd0JAKK9Ca0JXQoNCQ0JLQp9CY0J0g0JzQmNCi0JAKK9Ca0JXQoNCQ0JLQp9CY0J0g0KHQktCV0KLQntCX0JDQoAor0JrQldCg0JDQktCY0KbQkCDQlNCQ0JLQmNCUCivQmtCV0KDQkNCS0JjQptCQINCI0J7QktCQ0J0KK9Ca0JXQoNCQ0JLQmNCm0JAg0InQo9CR0J7QnNCY0KAKK9Ca0JXQoNCQ0JLQmNCm0JAg0JzQmNCb0JjQktCe0IgKK9Ca0JXQoNCQ0JLQmNCm0JAg0JzQmNCb0J7QqAor0JrQldCg0JDQktCY0KbQkCDQnNCY0JvQntCoCivQmtCV0KDQkNCS0JjQptCQINCc0JjQntCU0KDQkNCTCivQmtCV0KDQkNCS0JjQptCQINCc0JjQntCU0KDQkNCTCivQmtCV0KDQkNCS0JjQptCQINCf0JXQotCQ0KAKK9Ca0JXQoNCQ0JLQmNCm0JAg0KHQotCV0JLQkNCdCivQmtCV0KDQkNCS0JjQptCQINCh0JLQldCi0JjQodCb0JDQkgor0JrQldCg0JXQp9Ca0Jgg0JHQoNCQ0J3QmtCeCivQmtCV0KDQldCn0JrQmCDQlNCg0JDQk9Ce0JzQmNCgCivQmtCV0KDQldCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ca0JXQoNCV0KjQldCS0JjQiyDQmNCb0J7QndCQCivQmtCV0KDQldCo0JXQktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JrQldCg0JXQqNCYINCI0KPQm9CY0IjQkNCd0JAKK9Ca0JXQoNCV0KjQmCDQktCY0J3QptCVCivQmtCV0KDQldCW0Jgg0KTQldCg0JXQndCmCivQmtCV0KDQldCmINCY0JLQkNCdCivQmtCV0KDQldCP0JjQnSDQnNCY0JvQkNCdCivQmtCV0KDQldCP0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JrQldCg0JXQj9CY0J0g0KHQntCk0JjQiNCQCivQmtCV0KDQldCa0JXQqCDQmNCo0KLQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQmtCV0KDQldCa0JXQqC3QnNCQ0JvQntCd0JrQkCDQldCi0JXQm9Ca0JAKK9Ca0JXQoNCV0J3QldCmINCJ0JjQidCQ0J3QkAor0JrQldCg0JXQitCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCV0KDQldCh0KLQldCoINCI0JXQndCVCivQmtCV0KDQldCh0KLQldCoINCJ0KPQkdCY0KbQkAor0JrQldCg0JXQodCi0JXQqCDQnNCQ0KDQk9CY0KLQkAor0JrQldCg0JXQl9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQmtCV0KDQldCX0J7QktCY0Isg0J3QldCC0J4KK9Ca0JXQoNCYINCU0JXQndCV0KgKK9Ca0JXQoNCYINCk0KDQkNCK0J4KK9Ca0JXQoNCYINCI0J7QktCQ0J0KK9Ca0JXQoNCY0Isg0KHQkNCS0JAKK9Ca0JXQoNCa0JXQlyDQlNCg0JDQk9CeCivQmtCV0KDQmtCV0Jcg0JTQo9Co0JDQndCa0JAKK9Ca0JXQoNCa0JXQlyDQlNCj0KjQkNCdCivQmtCV0KDQmtCV0Jcg0JTQo9Co0JDQnQor0JrQldCg0JrQldCXINCT0J7QiNCa0J4KK9Ca0JXQoNCa0JXQlyDQmNCb0JjQiNCQCivQmtCV0KDQmtCV0Jcg0JvQkNCX0JDQoAor0JrQldCg0JrQldCXINCc0JjQm9CQ0J0KK9Ca0JXQoNCa0JXQlyDQnNCY0JvQldCd0JrQngor0JrQldCg0JrQldCXINCc0JjQm9CY0KbQkAor0JrQldCg0JrQldCXINCc0JjQoNCI0JDQndCQCivQmtCV0KDQmtCV0Jcg0JzQmNCg0J7QodCb0JDQkgor0JrQldCg0JrQldCXINCc0JvQkNCU0JXQnQor0JrQldCg0JrQldCXINCd0JjQmtCe0JvQkAor0JrQldCg0JrQldCXINCf0JDQo9Cb0JjQndCQCivQmtCV0KDQmtCV0Jcg0J/QldCi0JDQoAor0JrQldCg0JrQldCXINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JXQoNCa0JXQlyDQodCg0JXQotCV0J0KK9Ca0JXQoNCa0JXQlyDQodCi0JXQktCQ0J0KK9Ca0JXQoNCa0JXQlyDQodCi0JXQktCQ0J0KK9Ca0JXQoNCa0JXQlyDQktCb0JDQlNCQCivQmtCV0KDQmtCV0Jcg0JLQntCI0JjQnQor0JrQldCg0JvQldCi0JAg0J3QldCC0J4KK9Ca0JXQoNCc0JXQpiDQmNCb0J7QndCa0JAKK9Ca0JXQoNCc0JXQptCYINCi0JjQkdCe0KAKK9Ca0JXQoNCc0JXQndCU0Jgg0J/QldCi0JDQoAor0JrQldCg0J0g0JTQkNCd0JjQldCbCivQmtCV0KDQn9CV0Jsg0KHQntCk0JjQiNCQCivQmtCV0KDQodCd0JjQmiDQiNCe0JbQlQor0JrQldCg0KHQndCY0Jog0JzQmNCo0JAKK9Ca0JXQoNCh0KLQmNCd0JMg0JrQkNCi0JDQoNCY0J3QkAor0JrQldCg0KLQldChINCV0KDQltCV0JHQldCiCivQmtCV0KDQotCV0KEg0IjQkNCd0J7QqAor0JrQldCg0KLQldChINCI0JDQndCe0KgKK9Ca0JXQoNCi0JXQoSDQktCY0JvQnNCe0KgKK9Ca0JXQoNCS0JjQndCQINCQ0J3QotCe0J0KK9Ca0JXQoNCS0JjQndCQINCQ0KDQmNCI0JDQndCQCivQmtCV0KHQldCTINCb0JDQiNCe0KgKK9Ca0JXQodCV0JMg0JvQkNCI0J7QqAor0JrQldCh0JXQk9CYINCT0JXQl9CQCivQmtCV0KHQldCT0Jgg0JrQkNCg0J7QiQor0JrQldCh0JXQk9CYINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0JXQodCV0KAg0JTQoNCQ0JPQmNCo0JAKK9Ca0JXQodCV0KDQntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQmtCV0KHQmNCLINCW0JjQktCa0J4KK9Ca0JXQodCY0Isg0ILQo9Cg0JAKK9Ca0JXQodCY0Isg0JHQntCo0JrQngor0JrQldCh0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCV0KHQmNCLINCT0J7QoNCQ0J0KK9Ca0JXQodCY0Isg0IjQntCS0JDQnQor0JrQldCh0JjQiyDQnNCQ0KDQmNCd0JrQngor0JrQldCh0JjQiyDQnNCY0JvQlQor0JrQldCh0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0JXQodCY0Isg0JzQmNCb0JrQkAor0JrQldCh0JjQiyDQndCV0JLQldCd0JrQkAor0JrQldCh0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCV0KHQmNCLINCh0KLQkNCd0J7QiNCVINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQmtCV0KHQm9CV0KAg0JDQndCU0KDQmNCI0JAg0JTQoCDQm9CV0JrQkNCgCivQmtCV0KHQm9CV0KAg0KDQntCR0JXQoNCiCivQmtCV0KLQldCb0JXQqCDQoNCe0JbQmNCa0JAKK9Ca0JXQotCY0JMg0KLQntCc0JjQodCb0JDQkgor0JrQldCi0JjQkyDQotCe0JzQmNCh0JvQkNCSCivQmtCV0JLQmNCLINCc0JjQm9CQCivQmtCV0JLQmNCLINCe0JvQk9CQCivQmtCV0JLQmNCLINCg0JDQlNCVCivQmtCV0JLQmNCJINCR0KDQkNCd0JrQngor0JrQldCS0KDQldCo0JDQnSDQldCc0JjQmwor0JrQldCX0JXQqNCYINCU0KPQqNCa0J4KK9Ca0JXQl9CY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0JXQl9CY0Isg0JzQmNCg0JrQngor0JrQldCX0JjQiNCQINCc0JjQm9Ce0KDQkNCUCivQmtCV0JfQnNCY0Isg0JHQmNCJ0JDQndCQCivQmtCV0JfQo9Cd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ca0JXQl9Cj0J3QntCS0JjQiyDQn9CV0KLQmtCeCivQmtCV0JfQo9Cd0J7QktCY0Isg0KDQkNCI0JrQngor0JrQmNCn0Jgg0JXQoNCd0JUKK9Ca0JjQp9CY0J0g0JXQktCQCivQmtCY0KfQmNCd0JAg0JvQkNCX0JDQoAor0JrQmNCn0JjQiiDQldCb0JjQl9CQ0JHQldCi0JAKK9Ca0JjQqC3Qp9CV0J/QldCT0Jgg0JPQkNCR0J7QoAor0JrQmNCoLdCn0JXQn9CV0JPQmCDQk9CQ0JHQntCgCivQmtCY0Kgt0KfQldCf0JXQk9CYINCg0KPQlNCe0JvQpAor0JrQmNCoLdCn0JXQn9CV0JPQmCDQotCV0KDQldCX0JAKK9Ca0JjQqCDQqNCQ0J3QlNCe0KAKK9Ca0JjQqCDQqNCQ0J3QlNCe0KAKK9Ca0JjQqCDQgtCV0KDQggor0JrQmNCoINCC0JXQoNCCCivQmtCY0Kgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0JjQqCDQkNCd0JAKK9Ca0JjQqCDQkNCd0JTQoNCY0IjQkAor0JrQmNCoINCR0JXQm9CQCivQmtCY0Kgg0JHQldCb0JAKK9Ca0JjQqCDQkdCe0JvQlNCY0JbQkNCgCivQmtCY0Kgg0JHQoNCQ0J3QmtCeCivQmtCY0Kgg0JTQo9Co0JDQndCa0JAKK9Ca0JjQqCDQlNCj0KjQmNCm0JAKK9Ca0JjQqCDQldCg0J3QldCh0KIKK9Ca0JjQqCDQldCg0J3QlQor0JrQmNCoINCV0KHQotCV0KAKK9Ca0JjQqCDQldCS0JAKK9Ca0JjQqCDQpNCV0KDQldCd0KYKK9Ca0JjQqCDQpNCV0KDQldCd0KYKK9Ca0JjQqCDQpNCV0KDQldCd0KYKK9Ca0JjQqCDQpNCg0JDQitCeCivQmtCY0Kgg0JPQldCX0JAKK9Ca0JjQqCDQk9CV0JfQkAor0JrQmNCoINCT0JjQl9CV0JvQkAor0JrQmNCoINCl0JXQm9CV0J3QkAor0JrQmNCoINCl0JXQndCg0JjQiNCV0KLQkAor0JrQmNCoINCY0KjQotCS0JDQnQor0JrQmNCoINCY0KjQotCS0JDQnQor0JrQmNCoINCY0KjQotCS0JDQnQor0JrQmNCoINCY0JvQntCd0JAKK9Ca0JjQqCDQmNCb0J7QndCa0JAKK9Ca0JjQqCDQmNCg0JXQndCQCivQmtCY0Kgg0JjQodCY0JTQntCgCivQmtCY0Kgg0JjQktCQ0J0KK9Ca0JjQqCDQmNCS0JDQnQor0JrQmNCoINCI0JDQndCa0J4KK9Ca0JjQqCDQiNCQ0J3QntCoCivQmtCY0Kgg0IjQntCW0JXQpAor0JrQmNCoINCI0J7QptCQCivQmtCY0Kgg0IjQntCh0JjQnwor0JrQmNCoINCI0J7QodCY0J8KK9Ca0JjQqC3QiNCe0JLQkNCaINCk0KDQkNCK0JAKK9Ca0JjQqCDQiNCe0JfQldCk0JjQndCQCivQmtCY0Kgg0IjQo9Cb0JjQiNCQ0J0KK9Ca0JjQqCDQmtCQ0JvQnNCQ0J0KK9Ca0JjQqCDQmtCQ0KLQkNCb0JjQnQor0JrQmNCoINCa0JDQotCY0KbQkAor0JrQmNCoINCa0JDQotCY0KbQkAor0JrQmNCoINCb0JDQptCY0JrQkAor0JrQmNCoINCb0JDQodCb0J4KK9Ca0JjQqCDQm9CQ0KHQm9CeCivQmtCY0Kgg0JzQkNCg0JPQmNCi0JAKK9Ca0JjQqCDQnNCQ0KDQmNCI0JAKK9Ca0JjQqCDQnNCQ0KDQmNCI0JAKK9Ca0JjQqCDQnNCY0KXQkNCJCivQmtCY0Kgg0JzQmNCI0JAKK9Ca0JjQqCDQnNCY0JvQkNCdCivQmtCY0Kgg0JzQmNCb0JjQptCQCivQmtCY0Kgg0JzQmNCg0JrQngor0JrQmNCoINCd0JDQndCU0J7QoAor0JrQmNCoINCd0JjQmtCe0JvQkAor0JrQmNCoINCd0JjQmtCe0JvQkAor0JrQmNCoINCe0KLQngor0JrQmNCoINCe0KLQngor0JrQmNCoINCf0JDQktCb0JUKK9Ca0JjQqCDQn9CV0KDQkAor0JrQmNCoINCf0JXQotCQ0KAKK9Ca0JjQqCDQn9CV0KLQkNCgCivQmtCY0Kgg0J/QldCi0JDQoAor0JrQmNCoINCg0J7Ql9CQ0JvQmNCI0JAKK9Ca0JjQqCDQodCb0JDQktCY0KbQkAor0JrQmNCoINCh0JvQkNCS0JjQptCQCivQmtCY0Kgg0KHQm9Ce0JHQntCU0JDQnQor0JrQmNCoINCh0KLQkNCd0JjQodCb0JDQkgor0JrQmNCoINCh0KLQldCS0JDQnQor0JrQmNCoINCh0KLQldCS0JDQnQor0JrQmNCoINCh0KLQldCS0JDQnQor0JrQmNCoINCh0KLQldCS0JDQnQor0JrQmNCoINCh0KLQiNCV0J/QkNCdCivQmtCY0Kgg0KLQmNCR0J7QoCDQlNCgCivQmtCY0Kgg0KLQmNCR0J7QoAor0JrQmNCoINCi0JjQkdCe0KAKK9Ca0JjQqCDQotCe0JTQntCgCivQmtCY0Kgg0JLQldCh0J3QkAor0JrQmNCoINCS0JjQmtCi0J7QoNCY0IjQkAor0JrQmNCoINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JjQqCDQktCb0JDQlNCY0JzQmNCgCivQmtCY0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0JrQmNCoINCS0JvQkNCU0JjQnNCY0KAKK9Ca0JjQqCDQktCj0JrQntCh0JDQktCQCivQmtCY0Kgg0JfQntCb0KLQkNCdCivQmtCY0Kgg0JfQntCb0KLQkNCdCivQmtCY0Kgg0JfQntCb0KLQkNCdCivQmtCY0Kgg0JfQntCb0KLQkNCdCivQmtCY0Kgg0JfQntCb0KLQkNCdCivQmtCY0Kgg0JfQntCb0KLQkNCdCivQmtCY0Kgg0JfQntCb0KLQkNCdCivQmtCY0KjQlNCe0JHQoNCQ0J3QodCa0Jgg0JzQmNCb0JjQktCe0IgKK9Ca0JjQqNCV0JPQldCm0Jgg0IjQkNCdINCU0KAKK9Ca0JjQqNCT0JXQptCYLdCU0KPQlNCQ0Kgg0JrQm9CQ0KDQkAor0JrQmNCo0JPQldCm0Jgg0JXQnNCY0JsKK9Ca0JjQqNCT0JXQptCYINCY0JLQkNCdCivQmtCY0KjQk9CV0KbQmCDQn9CQ0JLQm9CVCivQmtCY0KjQk9CV0KbQmCDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0JjQqNCT0JXQptCYINCh0KLQkNCd0JjQodCb0JDQkgor0JrQmNCo0JPQldCm0Jgg0KHQotCV0JLQkNCdCivQmtCY0KjQk9CV0KbQmCDQktCb0JDQlNCY0JzQmNCgCivQmtCY0KjQiNCj0KXQkNChINCI0JDQmtCe0JIKK9Ca0JjQqNCc0JjQqNCa0JAg0J/QkNCbCivQmtCY0KjQn9Cg0JTQmNCb0J7QkiDQlNCV0IjQkNCdCivQmtCY0KjQn9Cg0JTQmNCb0J7QkiDQl9Ce0KDQkNCdCivQmtCY0IvQkNCd0J7QktCY0Isg0JHQntCg0J4KK9Ca0JjQi9CQ0J3QntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JrQmNCL0JDQndCe0JLQmNCLINCI0J7QmtCQCivQmtCY0IvQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQmNCL0JDQndCe0JLQmNCLINCc0JjQotCQ0KAKK9Ca0JjQi9CQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQmtCY0IvQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ca0JjQi9CQ0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQmtCY0IvQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JrQmNCW0JTQntCR0KDQkNCd0KHQmtCYINCW0JDQoNCa0J4KK9Ca0JjQltCU0J7QkdCg0JDQndCh0JrQmCDQidCj0JHQmNCm0JAKK9Ca0JjQltCU0J7QkdCg0JDQndCh0JrQmCDQnNCY0JvQkNCdCivQmtCY0JbQlNCe0JHQoNCQ0J3QodCa0Jgg0JzQmNCb0JDQnQor0JrQmNCW0JTQntCR0KDQkNCd0KHQmtCYINCc0JjQm9CY0JLQntCICivQmtCY0JbQlNCe0JHQoNCQ0J3QodCa0Jgg0KHQkNCS0JAKK9Ca0JjQltCV0JLQodCa0Jgg0JTQmNCc0JrQngor0JrQmNCW0JXQktCh0JrQmCDQnNCY0KDQkAor0JrQmNCW0JXQktCh0JrQmCDQktCe0IjQmNCh0JvQkNCSCivQmtCY0KbQntCo0JXQkiDQkdCg0JDQndCa0J4KK9Ca0JjQptCe0KjQldCSINCJ0JjQidCQ0J3QkAor0JrQmNCm0J7QqNCV0JIg0JzQmNCi0JAKK9Ca0JjQptCe0KjQldCSINCh0JDQqNCQCivQmtCY0KbQntCo0JXQkiDQodCi0J7QiNCQ0J0KK9Ca0JjQptCe0KjQldCS0JjQiyDQotCg0JjQktCQCivQmtCY0KbQntCo0JXQktCY0Isg0JLQm9CQ0IjQmtCeCivQmtCY0IjQkNCn0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0JjQiNCQ0J3QntCS0JjQiyDQnNCQ0J3QntCI0JvQlQor0JrQmNCI0JDQndCe0JLQmNCLINCh0KLQkNCd0JrQngor0JrQmNCa0JDQndCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQmNCa0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQmtCY0JrQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCY0IjQkAor0JrQmNCa0JjQiy3QqNCe0JLQidCQ0J3QodCa0Jgg0InQmNCJ0JDQndCQCivQmtCY0JrQmNCLINCc0JjQoNCa0J4KK9Ca0JjQmtCY0Isg0KHQnNCY0InQkCDQlNCgCivQmtCY0JrQmNCd0ILQkNCd0JjQnSDQnNCY0KDQntCh0JvQkNCS0JAKK9Ca0JjQmtCY0J3QlNCQ0Jgg0JLQldCg0JAKK9Ca0JjQmtCe0Kgg0JPQntCg0JTQkNCdCivQmtCY0JrQntCoINCI0J7QktCQ0J0KK9Ca0JjQmtCe0Kgg0JvQkNCX0JDQoAor0JrQmNCa0J7QqCDQodCg0JHQmNCh0JvQkNCSCivQmtCY0JrQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0JrQmNCb0JjQiyDQndCY0JrQntCb0JAKK9Ca0JjQm9CY0JHQkNCg0JTQkCDQnNCY0JvQntCg0JDQlAor0JrQmNCb0JjQkdCQ0KDQlNCQINCc0JjQotCQ0KAKK9Ca0JjQm9CY0JHQkNCg0JTQkCDQn9CQ0JLQm9CVCivQmtCY0JvQmNCR0JDQoNCU0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JrQmNCb0JjQkdCQ0KDQlNCQINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0JjQnNCf0JDQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCY0JzQn9CQ0J3QntCSINCd0JDQotCQ0JvQmNCI0JAKK9Ca0JjQnNCf0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JrQmNCc0J/QkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQmtCY0JzQn9CQ0J3QntCSINCh0J7QpNCY0IjQkAor0JrQmNCd0KfQldCoINCc0JjQpdCQ0IkKK9Ca0JjQndCC0JjQnSDQodCS0JXQotCe0JfQkNCgCivQmtCY0J3QgtCY0J0g0JLQkNCh0JAKK9Ca0JjQndCU0JXQoNCd0JDQiCDQmNCb0JjQiNCQCivQmtCY0J3QlNCV0KDQndCQ0Igg0JzQmNCb0JDQnQor0JrQmNCd0JTQldCg0J3QkNCIINCe0KLQngor0JrQmNCd0JTQldCg0J3QntCIINCf0JDQktCb0JUKK9Ca0JjQndCY0Jog0IjQkNCdCivQmtCY0J3QmNCaINCf0JDQktCb0JUKK9Ca0JjQitCV0KDQkNCdINCh0JLQldCi0JjQodCb0JDQkgor0JrQmNCd0JrQkCDQoNCY0KLQkAor0JrQmNCf0JXQoNCe0JLQmNCLINCI0J7QktCeCivQmtCY0J/QmNCLINCC0KPQm9CQCivQmtCY0J/QmNCLINCQ0J3QlNCg0JjQiNCQCivQmtCY0J/QmNCLINCQ0J3QmtCQCivQmtCY0J/QmNCLINCV0JTQmNCi0JAKK9Ca0JjQn9CY0Isg0JXQoNCW0JXQkdCV0KIKK9Ca0JjQn9CY0Isg0JXQoNCd0JUKK9Ca0JjQn9CY0Isg0KTQldCg0JXQndCmCivQmtCY0J/QmNCLINCk0KDQkNCK0JAKK9Ca0JjQn9CY0Isg0JjQqNCi0JLQkNCdCivQmtCY0J/QmNCLINCI0J7QodCY0J8KK9Ca0JjQn9CY0Isg0JvQkNCh0JvQngor0JrQmNCf0JjQiyDQndCQ0J3QlNCe0KAKK9Ca0JjQoNCn0JDQnSDQldCc0JjQmwor0JrQmNCg0Kgg0IjQntCW0JXQpAor0JrQmNCg0Kgg0JzQmNCb0J7QoNCQ0JQKK9Ca0JjQoNCo0JXQmiDQiNCj0KDQkNCICivQmtCY0KDQi9CQ0J0g0KHQkNCS0JAKK9Ca0JjQoNCL0JDQndCh0JrQmCDQkdCg0JDQndCa0J4KK9Ca0JjQoNCL0JDQndCh0JrQmCDQlNCj0KjQmtCeCivQmtCY0KDQi9CQ0J3QodCa0Jgg0JjQktCQ0J0KK9Ca0JjQoNCL0JDQndCh0JrQmCDQnNCY0JvQmNCm0JAKK9Ca0JjQoNCL0JDQndCh0JrQmCDQntCR0KDQkNCUCivQmtCY0KDQi9CQ0J3QodCa0Jgg0KDQkNCU0JjQktCe0IgKK9Ca0JjQoNCL0JDQndCh0JrQmCDQoNCQ0JTQntCh0JvQkNCS0JAKK9Ca0JjQoNCU0JAg0JLQm9CQ0JTQmNCc0JjQoAor0JrQmNCg0JjQiyDQpNCg0JDQitCeCivQmtCY0KDQmNCLINCc0JXQndCa0JAKK9Ca0JjQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQmNCg0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0JjQoNCY0I/QmNCLINCU0KDQkNCT0JjQqNCQCivQmtCY0KDQmNCP0JjQiyDQnNCY0JvQntCoCivQmtCY0KDQmNCP0JjQiyDQntCR0KDQkNCUCivQmtCY0KDQmNCb0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQmNCg0JjQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCY0KDQmNCb0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0JrQmNCg0JjQm9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0JrQmNCg0JjQm9Ce0JLQmNCLINCa0KDQmNCh0KLQkAor0JrQmNCg0JjQm9Ce0JLQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9Ca0JjQoNCY0JvQntCS0JjQiyDQntCb0JPQkAor0JrQmNCg0JjQnSDQltCV0InQmtCeCivQmtCY0KDQmNCdINCY0JLQmNCm0JAKK9Ca0JjQoNCY0J0g0KHQndCV0JbQkNCd0JAKK9Ca0JjQoNCI0JDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Ca0JjQoNCI0JDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQmNCg0JrQntCSINCU0JjQnNCY0KLQkNCgCivQmtCY0KDQmtCe0JIg0JLQldCg0JjQptCQCivQmtCY0KDQnSDQktCb0JDQlNCY0JzQmNCgCivQmtCY0KDQntCS0JDQmtCe0JIg0JLQkNCb0JXQoNCY0IjQkAor0JrQmNCg0KLQmNCLINCU0KPQqNCQ0J0KK9Ca0JjQodCQ0KfQkNCd0JjQnSDQlNCV0KHQkNCd0JrQkAor0JrQmNCh0JDQp9CQ0J3QmNCdINCU0KPQqNCQ0J0KK9Ca0JjQodCQ0KfQkNCd0JjQnSDQnNCY0J7QlNCg0JDQkyDQlNCY0J/QmyDQmNCd0JMKK9Ca0JjQodCQ0KfQkNCd0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQmtCY0KHQkNCn0JDQndCY0J0g0J/QkNCS0JvQlQor0JrQmNCh0JDQp9CQ0J3QmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0JjQodCV0JvQmNCn0JrQmCDQltCY0JLQmtCeINCh0KPQlNCY0IjQkAor0JrQmNCh0JXQm9CY0KfQmtCYINCU0JDQndCY0KbQkAor0JrQmNCh0JXQm9CY0KfQmtCYINCk0JXQlNCe0KAg0JTQoAor0JrQmNCh0JXQm9CY0KfQmtCYINCb0JDQl9CQ0KAg0JTQmNCf0Jsg0JjQndCTCivQmtCY0KHQldCb0JjQptCQINCW0JDQoNCa0J4KK9Ca0JjQodCV0JvQmNCm0JAg0J3QkNCU0JAKK9Ca0JjQodCV0JvQmNCm0JAg0J/QldCi0JDQoAor0JrQmNCh0JXQm9CY0KbQkCDQn9CV0KLQkNCgCivQmtCY0KHQmNCLINCU0KPQqNCQ0J0KK9Ca0JjQodCY0Isg0IjQntCS0JDQnQor0JrQmNCh0JjQiyDQnNCY0KDQmtCeCivQmtCY0KHQmNCLINCh0KDQgtCQ0J0KK9Ca0JjQodCY0Isg0KHQktCV0KLQntCX0JDQoAor0JrQmNCh0JjQnSDQkNCd0ILQkAor0JrQmNCh0JjQnSDQnNCY0JvQmNCm0JAKK9Ca0JjQodCY0J0g0JzQmNCb0JrQkAor0JrQmNCh0JjQnSDQotCe0JzQngor0JrQmNCh0JvQmNCmINCY0KDQldCd0JAKK9Ca0JjQodCb0J7QktCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQmtCY0KHQniDQnNCY0JvQntCg0JDQlAor0JrQmNCh0KLQldCgINCS0JjQndCa0J4KK9Ca0JjQoiDQktCQ0KHQmNCJCivQmtCY0KLQkNCd0J7QktCY0Isg0JbQmNCS0JrQngor0JrQmNCi0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQmtCY0KLQkNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQmtCY0KLQkNCd0J7QktCY0Isg0JvQldCd0JrQkAor0JrQmNCi0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQmtCY0KLQkNCd0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Ca0JjQotCQ0J3QntCS0JjQiyDQotCe0JzQkAor0JrQmNCi0JDQndCe0JLQodCa0Jgg0JTQmNCc0KfQlQor0JrQmNCi0JjQiyDQoNCQ0JTQntCI0JrQkAor0JrQmNCi0JjQiyDQodCQ0JLQngor0JrQmNCi0JjQiyDQodCi0J7QiNCa0J4KK9Ca0JjQotCY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0JjQo9Cg0KHQmtCYINCh0KLQldCS0JDQnSDQlNCY0J/QmyDQntCV0KYKK9Ca0JjQktCe0JLQmNCLINCQ0J3QotCe0J3QmNCI0JAKK9Ca0JjQl9CQINCR0KDQkNCd0JrQmNCm0JAKK9Ca0JjQl9CY0Isg0JTQo9Co0JDQnQor0JrQmNCX0JjQiyDQm9CY0JTQmNCI0JAKK9Ca0JjQl9CY0Isg0JzQkNCg0JrQngor0JrQmNCX0JjQiyDQnNCY0KXQkNCY0JvQngor0JrQmNCX0JjQiyDQodCQ0JLQmtCQCivQmtCY0JfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0JjQl9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQmNCX0JjQiyDQodCd0JXQltCQ0J3QkAor0JrQmNCX0JjQiyDQotCY0KXQntCh0JvQkNCSCivQmtCY0JfQo9CgINCQ0J3QlNCg0JDQqAor0JrQmNCX0KPQoCDQmNCo0KLQktCQ0J0KK9Ca0JjQl9Cj0KAg0IjQkNCd0J7QqAor0JrQmNCX0KPQoCDQm9CQ0KHQm9CeCivQmtCY0JfQo9CgINCf0JDQktCV0JsKK9Ca0JjQl9Cj0KAg0JLQldCg0JAKK9Ca0JvQkNCn0JDQoCDQnNCY0JvQmtCeCivQmtCb0JDQp9CQ0KAg0JzQmNCb0J7QqAor0JrQm9CQ0KjQitCQINCW0JDQoNCa0J4KK9Ca0JvQkNCo0IrQkCDQkdCg0JDQndCa0J4KK9Ca0JvQkNCo0IrQkCDQiNCe0JLQkNCdCivQmtCb0JDQqNCK0JAg0JzQkNCg0JjQiNCQCivQmtCb0JDQqNCK0JAg0JzQmNCa0JAKK9Ca0JvQkNCo0IrQkCDQnNCY0JvQldCd0JAKK9Ca0JvQkNCo0IrQkCDQnNCY0JvQlQor0JrQm9CQ0KjQitCQINCc0JjQm9CY0KbQkAor0JrQm9CQ0KjQitCQINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0JvQkNCo0IrQkCDQktCb0JDQlNCY0KHQm9CQ0JIg0JTQoCDQm9CV0JrQkNCgCivQmtCb0JDQiyDQlNCg0JDQk9CQ0J0KK9Ca0JvQkNCL0JjQmiDQiNCe0JbQldCkCivQmtCb0JDQi9CY0Jog0JzQkNCg0JjQiNCQCivQmtCb0JDQlNCj0KjQmNCLINCc0JXQndCh0KPQoNCQCivQmtCb0JDQmNCLINCQ0J3QotCeCivQmtCb0JDQmNCLINCf0JDQktCeCivQmtCb0JDQiCDQn9CV0KLQkNCgCivQmtCb0JDQiNCY0Isg0ILQo9Cg0JAKK9Ca0JvQkNCI0JjQiyDQlNCQ0J3QmNCb0J4KK9Ca0JvQkNCI0JjQiyDQidCj0JHQmNCm0JAKK9Ca0JvQkNCI0JjQiyDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Ca0JvQkNCI0JjQiyDQntCb0JPQkAor0JrQm9CQ0IjQmNCLINCg0J7Ql9CQ0JvQmNCI0JAKK9Ca0JvQkNCI0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQmtCb0JDQiNCY0Isg0JLQmNCU0JAKK9Ca0JvQkNCI0J0g0JDQm9CR0JXQoNCiCivQmtCb0JDQiNCdINCQ0J3QkAor0JrQm9CQ0IjQnSDQlNCg0JDQk9Cj0KLQmNCdCivQmtCb0JDQiNCdINCY0JLQkNCd0JrQkAor0JrQm9CQ0IjQnSDQmNCS0JDQnQor0JrQm9CQ0IjQnSDQm9CQ0IjQp9CeINCU0KAKK9Ca0JvQkNCI0J0g0JzQmNCg0J7QodCb0JDQkgor0JrQm9CQ0IjQnSDQktCV0KDQkAor0JrQm9CQ0IjQndCV0KAg0JXQodCi0JXQoAor0JrQm9CQ0IjQndCV0KAg0JjQqNCi0JLQkNCdCivQmtCb0JDQnNCQ0KAg0JrQkNCg0JvQngor0JrQm9CQ0JzQmNCaINCY0JzQoNCVCivQmtCb0JDQn9CQ0KDQldCS0JjQiyDQk9Ce0KDQkNCdCivQmtCb0JDQn9CQ0KDQldCS0JjQiyDQodCQ0JLQkAor0JrQm9CQ0J/QkNCg0JXQktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JrQm9CQ0KDQmNCLINCU0KPQqNCQ0J3QmtCQCivQmtCb0JDQoNCY0Isg0JPQntCg0JDQnQor0JrQm9CQ0KDQmNCLINCJ0KPQkdCY0KbQkAor0JrQm9CQ0KDQmNCLINCc0JjQm9CY0IsKK9Ca0JvQkNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQm9CQ0KDQmNCLINCe0JvQk9CQCivQmtCb0JDQoNCY0Isg0KHQldCa0JAKK9Ca0JvQkNCh0JDQnSDQkNCd0JAKK9Ca0JvQkNCh0JXQoCDQkNCb0JHQldCg0KIKK9Ca0JvQkNCh0JjQiyDQm9CQ0JTQmNCh0JvQkNCSCivQmtCb0JDQodCY0Isg0KHQkNCo0JAKK9Ca0JvQkNCj0KEg0JXQoNCW0JXQkdCV0KIKK9Ca0JvQkNCj0KEg0JXQoNCW0JXQkdCV0KIKK9Ca0JvQkNCj0KEg0JvQkNCh0JvQngor0JrQm9CV0JHQldCn0JrQniDQqNCQ0J3QlNCe0KAKK9Ca0JvQldCR0JXQp9Ca0J4g0KjQkNCd0JTQntCgCivQmtCb0JXQnCDQkNCU0JDQnCDQlNCgCivQmtCb0JXQnCDQiNCe0JbQldCkCivQmtCb0JXQnCDQotCV0KDQldCX0JAKK9Ca0JvQldCc0JXQndCe0JLQmNCLINCj0KDQntCoCivQmtCb0JXQndCe0KbQmtCYINCc0JDQoNCY0IjQkAor0JrQm9CV0J3QntCS0KjQldCaINCk0KDQkNCK0JAKK9Ca0JvQldCd0J7QktCo0JXQmiDQotCV0KDQldCX0JjQiNCQCivQmtCb0JXQndCe0JLQqNCV0Jog0JfQktCe0J3QmNCc0JjQoAor0JrQm9CV0J/QmNCLINCC0KPQoNCQ0IIKK9Ca0JvQldCf0JjQiyDQndCY0JrQntCb0JAKK9Ca0JvQldCiINCT0JXQl9CQCivQmtCb0JXQo9CiINCc0JjQm9CQ0J0KK9Ca0JvQldCj0KIg0KDQo9CW0JAg0JTQoCDQm9CV0JrQkNCgCivQmtCb0JXQktCV0KDQndCY0Isg0JHQntCg0JjQodCb0JDQkgor0JrQm9CY0KfQldCaINCY0KDQldCd0JAKK9Ca0JvQmNCn0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0JvQmNCn0JrQntCS0JjQiyDQmtCe0KHQotCQCivQmtCb0JjQp9Ca0J7QktCY0Isg0JLQldCg0JAKK9Ca0JvQmNCo0JDQndCY0Isg0IjQntCh0JjQnwor0JrQm9CY0KjQkNCd0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0JvQmNCm0J7QkiDQmNCb0JjQiNCQCivQmtCb0JjQmtCe0JLQkNCmINCc0JjQpdCQ0IjQm9CeCivQmtCb0JjQmtCe0JLQkNCmINCS0JXQm9CY0JzQmNCgCivQmtCb0JjQnNCV0Kgg0JTQoNCQ0JPQkNCd0JAKK9Ca0JvQmNCc0JXQqCDQl9Ce0KDQkAor0JrQm9CY0J3QkNCmINCj0KDQntCoCivQmtCb0JjQndCQ0KAg0JjQktCQ0J0KK9Ca0JvQmNCd0KbQntCSINCd0JDQlNCQCivQmtCb0JjQndCP0JjQiyDQodCi0IjQldCf0JDQnQor0JrQm9CY0J3Qk9CV0KAg0JrQkNCi0JjQptCQCivQmtCb0JjQndCa0J4g0IjQkNCdCivQmtCb0JjQndCe0KbQmtCYINCC0JXQoNCCCivQmtCb0JjQndCe0JLQodCa0Jgg0JHQoNCQ0J3QmtCeCivQmtCb0JjQndCe0JLQodCa0Jgg0JTQoNCQ0JPQkNCdCivQmtCb0JjQndCe0JLQodCa0Jgg0JTQoNCQ0JPQkNCdCivQmtCb0JjQndCe0JLQodCa0Jgg0JTQo9Co0JDQnQor0JrQm9CY0J/QkCDQltCY0JLQkNCdCivQmtCb0JjQn9CQINCC0J7QoNCC0JUKK9Ca0JvQmNCf0JAg0IjQldCb0JjQptCQCivQmtCb0JjQn9CQLdCa0KDQkNCR0JXQoSDQk9Cg0JXQotCQCivQmtCb0JjQn9CQINCb0JDQl9CQ0KAKK9Ca0JvQmNCf0JAg0JzQmNCa0JAKK9Ca0JvQmNCgINCY0JvQntCd0JAKK9Ca0JvQmNCgINCg0J7Ql9CQ0JvQmNCI0JAKK9Ca0JvQmNCh0JDQoNCQINCW0JjQktCa0J4KK9Ca0JvQmNCh0JDQoNCQINCC0J7QoNCC0JUKK9Ca0JvQmNCh0JDQoNCY0Isg0JzQmNCg0JrQngor0JrQm9CY0KHQmNCLINCd0JDQlNCQCivQmtCb0JjQodCa0JAg0JDQndCC0JXQm9CY0IjQkAor0JrQm9CY0KHQmtCQINCS0J7QiNCeCivQmtCb0JjQodCj0KDQkCDQnNCY0JvQntCoCivQmtCb0JjQodCj0KDQkCDQnNCe0JzQmNCgCivQmtCb0JjQodCj0KDQkCDQodCi0JDQmtCQCivQmtCb0JjQodCj0KDQmNCLINCC0KPQoNCeCivQmtCb0JjQktCY0IrQmCDQiNCe0JbQldCkCivQmtCJ0JDQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Ca0InQkNCY0Isg0JzQkNCm0JAKK9Ca0InQkNCY0Isg0KHQmNCc0J4KK9Ca0InQkNCY0J0g0JTQoNCQ0JPQmNCK0JAKK9Ca0InQkNCY0J0g0JvQkNCX0JDQoAor0JrQidCQ0IjQmNCLINCC0J7QoNCC0JUg0J/QoNCe0KTQldCh0J7QoAor0JrQidCQ0IjQmNCLINCC0J7QoNCC0JUKK9Ca0InQkNCI0JjQiyDQgtCe0KDQgtCVCivQmtCJ0JDQiNCY0Isg0JHQntCg0JjQktCe0IjQlQor0JrQidCQ0IjQmNCLINCR0J7QoNCa0JAKK9Ca0InQkNCI0JjQiyDQkdCg0JDQndCa0J4KK9Ca0InQkNCI0JjQiyDQkdCg0JDQndCa0J4KK9Ca0InQkNCI0JjQiyDQlNCQ0J3QmNCb0J4KK9Ca0InQkNCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0InQkNCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0InQkNCI0JjQiyDQlNCj0KjQkNCd0JrQkAor0JrQidCQ0IjQmNCLINCY0JvQmNCI0JAKK9Ca0InQkNCI0JjQiyDQmNCb0JjQiNCQCivQmtCJ0JDQiNCY0Isg0JjQktCQ0J0KK9Ca0InQkNCI0JjQiyDQiNCV0JvQldCd0JAKK9Ca0InQkNCI0JjQiyDQmtCe0JLQmNCJ0JrQkAor0JrQidCQ0IjQmNCLINCb0KPQmtCQCivQmtCJ0JDQiNCY0Isg0JzQkNCg0JAKK9Ca0InQkNCI0JjQiyDQnNCY0JvQkNCdCivQmtCJ0JDQiNCY0Isg0JzQmNCb0JXQktCQCivQmtCJ0JDQiNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0InQkNCI0JjQiyDQndCQ0JTQkAor0JrQidCQ0IjQmNCLINCe0JvQmNCS0JXQoNCQCivQmtCJ0JDQiNCY0Isg0J/QldCi0JDQoAor0JrQidCQ0IjQmNCLLdCg0JDQlNCQ0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0InQkNCI0JjQiyDQodCV0J3QmtCQCivQmtCJ0JDQiNCY0Isg0JLQkNCi0JAKK9Ca0InQkNCI0JjQiyDQktCb0JDQlNCeCivQmtCJ0JDQiNCY0Isg0JLQo9Ca0JjQptCQCivQmtCJ0JDQiNCY0Isg0JfQlNCg0JDQktCa0J4KK9Ca0InQkNCa0JjQiyDQktCj0JrQkNCo0JjQnQor0JrQidCV0KfQkNCd0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JrQidCj0KfQntCS0KHQmtCYINCc0JDQpdCQ0InQmNCd0JAKK9Ca0InQo9Cn0J7QktCh0JrQmCDQndCY0JrQntCb0JAKK9Ca0InQo9Ci0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JrQidCj0KLQmNCLINCe0KHQotCe0IjQkAor0JrQm9Ce0JHQo9Co0JjQptCa0Jgg0JLQm9CQ0JTQmNCh0JvQkNCSCivQmtCb0J7Qn9Ck0JXQoCDQgtCe0KDQgtCVCivQmtCb0J7Qn9Ca0JAg0JrQm9CQ0KDQkCDQlNCgCivQmtCb0J7Qn9Ca0JAg0J/QmNCg0J7QqNCa0JAKK9Ca0JzQldCnINCc0JDQoNCi0JjQnQor0JrQnNCV0KfQmtCeINCh0KLQldCS0JDQnQor0JrQnNCV0Isg0IjQkNCdINCU0KAKK9Ca0JzQldCX0JjQiyDQmNCS0JDQndCa0JAKK9Ca0JzQldCX0JjQiyDQnNCY0JvQlQor0JrQnNCV0JfQmNCLINCS0JvQkNCU0JAKK9Ca0JzQmNCm0JjQmtCV0JLQmNCLINCX0J7QoNCQ0J0KK9Ca0JzQmNCm0JjQmtCe0JLQmNCLINCc0JjQm9Ce0IjQmtCQCivQmtCd0JXQqNCQ0KPQoNCV0Jog0JzQkNCg0JjQiNCQCivQmtCd0JXQltCV0JIg0JbQkNCg0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Ca0J3QldCW0JXQkiDQgtCe0KDQgtCVCivQmtCd0JXQltCV0JIg0ILQntCg0ILQlQor0JrQndCV0JbQldCSINCC0KPQoNCQCivQmtCd0JXQltCV0JIg0IjQldCb0JjQptCQCivQmtCd0JXQltCV0JIg0InQmNCJ0JDQndCQCivQmtCd0JXQltCV0JLQmNCLINCW0JDQoNCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JbQldCJ0JrQngor0JrQndCV0JbQldCS0JjQiyDQltCV0InQmtCeCivQmtCd0JXQltCV0JLQmNCLINCW0JXQidCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JbQmNCS0JrQkAor0JrQndCV0JbQldCS0JjQiyDQltCY0JLQmtCeCivQmtCd0JXQltCV0JLQmNCLINCW0JjQktCe0IjQmNCdCivQmtCd0JXQltCV0JLQmNCLINCW0JjQktCe0IjQmNCdCivQmtCd0JXQltCV0JLQmNCLINCC0JjQndCVCivQmtCd0JXQltCV0JLQmNCLINCC0J7QoNCC0JUKK9Ca0J3QldCW0JXQktCY0Isg0ILQntCg0ILQlQor0JrQndCV0JbQldCS0JjQiyDQgtCe0KDQgtCVCivQmtCd0JXQltCV0JLQmNCLINCC0J7QoNCC0JUKK9Ca0J3QldCW0JXQktCY0Isg0ILQntCg0ILQlQor0JrQndCV0JbQldCS0JjQiyDQgtCe0KDQgtCVCivQmtCd0JXQltCV0JLQmNCLINCC0J7QoNCC0JUKK9Ca0J3QldCW0JXQktCY0Isg0ILQo9Cg0JAKK9Ca0J3QldCW0JXQktCY0Isg0ILQo9Cg0JAKK9Ca0J3QldCW0JXQktCY0Isg0ILQo9Cg0J4KK9Ca0J3QldCW0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J3QldCW0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J3QldCW0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J3QldCW0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ca0J3QldCW0JXQktCY0Isg0JDQm9CV0JrQodCQCivQmtCd0JXQltCV0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQmtCd0JXQltCV0JLQmNCLINCQ0J3QmNCm0JAKK9Ca0J3QldCW0JXQktCY0Isg0JDQndCY0KbQkAor0JrQndCV0JbQldCS0JjQiyDQkNCg0JrQkNCU0JjQiNCQCivQmtCd0JXQltCV0JLQmNCLINCR0J7QqNCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JHQntCW0J4KK9Ca0J3QldCW0JXQktCY0Isg0JHQntCT0JTQkNCdCivQmtCd0JXQltCV0JLQmNCLINCR0J7Qk9CU0JDQnQor0JrQndCV0JbQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JrQndCV0JbQldCS0JjQiyDQkdCe0KDQmNChCivQmtCd0JXQltCV0JLQmNCLINCR0J7QoNCa0JAKK9Ca0J3QldCW0JXQktCY0Isg0JHQntCh0JjQidCa0JAKK9Ca0J3QldCW0JXQktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0JrQndCV0JbQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCd0JXQltCV0JLQmNCLINCm0JLQmNCI0J4KK9Ca0J3QldCW0JXQktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQmtCd0JXQltCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JrQndCV0JbQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQmtCd0JXQltCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JrQndCV0JbQldCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JrQndCV0JbQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQndCV0JbQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQndCV0JbQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmtCd0JXQltCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ca0J3QldCW0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0J3QldCW0JXQktCY0Isg0JTQo9Co0JDQnQor0JrQndCV0JbQldCS0JjQiyDQlNCj0KjQkNCdCivQmtCd0JXQltCV0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JTQo9Co0JDQnQor0JrQndCV0JbQldCS0JjQiyDQk9Cb0JjQqNCQCivQmtCd0JXQltCV0JLQmNCLINCT0J7QoNCU0JDQndCQCivQmtCd0JXQltCV0JLQmNCLINCY0JvQmNCI0JAKK9Ca0J3QldCW0JXQktCY0Isg0JjQm9CY0IjQkAor0JrQndCV0JbQldCS0JjQiyDQmNCb0JjQiNCQCivQmtCd0JXQltCV0JLQmNCLINCY0JvQmNCI0JAKK9Ca0J3QldCW0JXQktCY0Isg0JjQm9CY0IjQkAor0JrQndCV0JbQldCS0JjQiyDQmNCb0JjQiNCQCivQmtCd0JXQltCV0JLQmNCLINCY0JLQkNCd0JrQkAor0JrQndCV0JbQldCS0JjQiyDQmNCS0JDQnQor0JrQndCV0JbQldCS0JjQiyDQmNCS0JDQnQor0JrQndCV0JbQldCS0JjQiyDQiNCV0JvQkAor0JrQndCV0JbQldCS0JjQiyDQiNCV0JvQldCd0JAKK9Ca0J3QldCW0JXQktCY0Isg0IjQldCb0JXQndCQCivQmtCd0JXQltCV0JLQmNCLINCI0JXQm9CY0KHQkNCS0JrQkAor0JrQndCV0JbQldCS0JjQiyDQiNCe0KHQmNCfCivQmtCd0JXQltCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQmtCd0JXQltCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQmtCd0JXQltCV0JLQmNCLINCI0J7QktCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0IjQntCS0JDQnQor0JrQndCV0JbQldCS0JjQiyDQiNCe0JLQkNCdCivQmtCd0JXQltCV0JLQmNCLINCI0J7QktCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0IjQntCS0JDQnQor0JrQndCV0JbQldCS0JjQiyDQiNCe0JLQngor0JrQndCV0JbQldCS0JjQiyDQiNCj0JPQntCh0JvQkNCSCivQmtCd0JXQltCV0JLQmNCLINCa0KDQodCi0JDQnQor0JrQndCV0JbQldCS0JjQiyDQm9CQ0KLQmNCd0JrQkAor0JrQndCV0JbQldCS0JjQiyDQm9CQ0JfQkNCgCivQmtCd0JXQltCV0JLQmNCLINCb0JDQl9CQ0KAKK9Ca0J3QldCW0JXQktCY0Isg0InQmNCJ0JDQndCQCivQmtCd0JXQltCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCc0JDQndCVCivQmtCd0JXQltCV0JLQmNCLINCc0JDQoNCY0KbQkAor0JrQndCV0JbQldCS0JjQiyDQnNCQ0KDQmNCm0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQmtCd0JXQltCV0JLQmNCLINCc0JDQoNCY0IjQkAor0JrQndCV0JbQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQmtCd0JXQltCV0JLQmNCLINCc0JDQoNCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCL0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JjQptCQCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9CY0IjQkNCd0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0JrQkAor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQntCoCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCc0JjQm9Ce0IrQkAor0JrQndCV0JbQldCS0JjQiyDQnNCY0JvQntCK0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCb0KPQotCY0J0KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCg0JrQngor0JrQndCV0JbQldCS0JjQiyDQnNCY0KDQmtCeCivQmtCd0JXQltCV0JLQmNCLINCc0JjQoNCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCg0JrQngor0JrQndCV0JbQldCS0JjQiyDQnNCY0KDQmtCeCivQmtCd0JXQltCV0JLQmNCLINCc0JjQoNCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0JzQmNCg0JrQngor0JrQndCV0JbQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCd0JXQltCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J3QldCW0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQmtCd0JXQltCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQmtCd0JXQltCV0JLQmNCLINCc0J7QnNCY0KAKK9Ca0J3QldCW0JXQktCY0Isg0JzQntCc0JjQoAor0JrQndCV0JbQldCS0JjQiyDQnNCe0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCd0JDQlNCQCivQmtCd0JXQltCV0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQmtCd0JXQltCV0JLQmNCLINCd0JXQndCQ0JQKK9Ca0J3QldCW0JXQktCY0Isg0J3QldCS0JXQndCQCivQmtCd0JXQltCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQndCV0JbQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J3QldCW0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCd0JXQltCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQndCV0JbQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J3QldCW0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCd0JXQltCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQndCV0JbQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J3QldCW0JXQktCY0Isg0J/QkNCd0KLQkAor0JrQndCV0JbQldCS0JjQiyDQn9CQ0JLQm9CVCivQmtCd0JXQltCV0JLQmNCLINCf0JXQoNCQCivQmtCd0JXQltCV0JLQmNCLINCf0JXQotCQ0KAKK9Ca0J3QldCW0JXQktCY0Isg0J/QldCi0JDQoAor0JrQndCV0JbQldCS0JjQiyDQn9CV0KLQkNCgCivQmtCd0JXQltCV0JLQmNCLINCf0JXQotCQ0KAKK9Ca0J3QldCW0JXQktCY0Isg0J/QldCi0JrQngor0JrQndCV0JbQldCS0JjQiyDQoNCQ0JTQkAor0JrQndCV0JbQldCS0JjQiyDQoNCQ0JTQlQor0JrQndCV0JbQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQmtCd0JXQltCV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ca0J3QldCW0JXQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ca0J3QldCW0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ca0J3QldCW0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JrQndCV0JbQldCS0JjQiyDQoNCQ0IjQmtCeCivQmtCd0JXQltCV0JLQmNCLINCg0JDQndCa0J4KK9Ca0J3QldCW0JXQktCY0Isg0KDQmNCh0KLQngor0JrQndCV0JbQldCS0JjQiyDQoNCe0JfQkAor0JrQndCV0JbQldCS0JjQiyDQodCQ0JLQngor0JrQndCV0JbQldCS0JjQiyDQodCY0J3QmNCo0JAKK9Ca0J3QldCW0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQmtCd0JXQltCV0JLQmNCLINCh0JvQkNCS0JrQngor0JrQndCV0JbQldCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQmtCd0JXQltCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQndCV0JbQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCd0JXQltCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQndCV0JbQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCd0JXQltCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQndCV0JbQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCd0JXQltCV0JLQmNCLINCh0J/QkNCh0JXQndCY0IjQkAor0JrQndCV0JbQldCS0JjQiyDQodCg0JHQmNCh0JvQkNCS0JAKK9Ca0J3QldCW0JXQktCY0Isg0KHQotCQ0J3QkAor0JrQndCV0JbQldCS0JjQiyDQodCi0JDQndCY0KjQkAor0JrQndCV0JbQldCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCh0KLQkNCd0JrQngor0JrQndCV0JbQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0KHQotCV0JLQngor0JrQndCV0JbQldCS0JjQiyDQodCi0JXQktCeCivQmtCd0JXQltCV0JLQmNCLINCh0KLQmNCf0JUKK9Ca0J3QldCW0JXQktCY0Isg0KHQotCe0IjQkNCdCivQmtCd0JXQltCV0JLQmNCLINCh0JLQldCi0JrQngor0JrQndCV0JbQldCS0JjQiyDQodCS0JXQotCeCivQmtCd0JXQltCV0JLQmNCLINCi0JXQntCU0J7QoAor0JrQndCV0JbQldCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQmtCd0JXQltCV0JLQmNCLINCj0KDQntCoCivQmtCd0JXQltCV0JLQmNCLINCS0JDQodCY0JvQmNCI0JAKK9Ca0J3QldCW0JXQktCY0Isg0JLQldCg0JAKK9Ca0J3QldCW0JXQktCY0Isg0JLQldCg0JAKK9Ca0J3QldCW0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQndCV0JbQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCd0JXQltCV0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0JrQndCV0JbQldCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Ca0J3QldCW0JXQktCY0Isg0JLQntCI0JjQnQor0JrQndCV0JbQldCS0JjQiyDQktCj0JrQntCh0JDQkgor0JrQndCV0JbQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JrQndCV0JbQldCS0JjQiyDQl9Cb0JDQotCQ0J0KK9Ca0J3QldCW0JXQktCY0Isg0JfQntCg0JDQnQor0JrQndCV0JbQldCS0JjQiyDQl9Ce0KDQkNCdCivQmtCd0JXQltCV0JLQmNCLINCX0J7QoNCQCivQmtCd0JXQltCY0Isg0J7Qm9CT0JAKK9Ca0J3QldCW0JjQiyDQoNCQ0JTQntCc0JjQoAor0JrQndCV0JHQmyDQpNCg0JDQitCQCivQmtCd0JXQkdCbINCd0JjQmtCe0JvQkAor0JrQndCV0JPQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J3QldCgINCU0JXQl9CY0JTQldCgCivQmtCd0JXQodCV0JvQkNCmINCR0KDQkNCd0JjQodCb0JDQktCQCivQmtCd0JXQlyDQl9Cb0JDQotCa0J4KK9Ca0J3QldCX0Jgg0JjQktCQ0J0KK9Ca0J3QldCX0Jgg0IjQntCW0JXQpAor0JrQndCV0JfQmCDQodCb0J7QkdCe0JTQkNCdCivQmtCK0JXQqNCa0J4g0JbQo9CW0JDQndCQCivQmtCK0JXQqNCa0J4g0JDQm9CR0JXQoNCiCivQmtCe0KfQkNCgINCb0JDQodCb0J4KK9Ca0J7Qp9CQ0KAg0KHQotCV0KTQkNCd0JjQiNCQCivQmtCe0KfQkNCgINCi0JjQpdCe0JzQmNCgCivQmtCe0KfQldCi0J7QkiDQotCQ0KLQiNCQ0J3QkAor0JrQntCn0Jgg0JXQotCV0JvQmtCQCivQmtCe0KfQmCDQmNCo0KLQktCQ0J0KK9Ca0J7Qp9CYINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7Qp9CY0Kgg0ILQo9Cg0JAKK9Ca0J7Qp9CY0Kgg0JDQndCU0KDQmNCI0JAKK9Ca0J7Qp9CY0Kgg0JDQndCU0KDQmNCI0JAKK9Ca0J7Qp9CY0Kgg0JXQoNCd0JXQodCiCivQmtCe0KfQmNCoINCT0JXQoNCT0JXQiSDQlNCY0J/QmyDQmNCd0JMKK9Ca0J7Qp9CY0Kgg0KXQldCb0JXQndCQCivQmtCe0KfQmNCoINCY0KjQotCS0JDQnQor0JrQntCn0JjQqCDQiNCQ0JrQntCSCivQmtCe0KfQmNCoINCI0JDQndCa0J4KK9Ca0J7Qp9CY0Kgg0IjQkNCd0J7QqAor0JrQntCn0JjQqCDQmtCQ0KDQm9CeCivQmtCe0KfQmNCoINCc0JDQoNCY0IjQkAor0JrQntCn0JjQqCDQnNCY0KXQkNCI0JvQngor0JrQntCn0JjQqCDQndCY0JrQntCb0JAg0J/QoNCe0KTQldCh0J7QoAor0JrQntCn0JjQqCDQoNCQ0JTQlQor0JrQntCn0JjQqCDQktCb0JDQlNCY0JzQmNCgCivQmtCe0KfQmNCoINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7Qp9CY0Isg0JTQoNCQ0JPQngor0JrQntCn0JjQiyDQnNCQ0J3QlQor0JrQntCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQntCn0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0J7Qp9Ce0JHQkCDQoNCQ0JTQmNCh0JvQkNCSCivQmtCe0KfQntCh0JrQmCDQn9CV0KLQkNCgCivQmtCe0KfQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCn0J7QktCY0Isg0JzQmNCb0JXQotCQCivQmtCe0KjQi9CQ0Jog0KHQkNCS0JrQkAor0JrQntCo0JAg0KLQmNCR0J7QoCDQlNCY0J/QmyDQmNCd0JMKK9Ca0J7QqNCQ0J3QmNCdINCc0JjQm9Ce0JzQmNCgCivQmtCe0KjQkNCK0Jgg0KTQldCg0JXQndCmCivQmtCe0KjQkNCg0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ca0J7QqNCY0Isg0InQo9CR0JjQptCQCivQmtCe0KjQmNCLINCc0JjQotCQCivQmtCe0KjQmNCLINCh0KLQldCS0JDQnQor0JrQntCo0JjQiyDQodCi0JXQktCeCivQmtCe0KjQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ca0J7QqNCY0KbQmtCYINCb0JXQkAor0JrQntCo0JjQptCa0Jgg0JzQkNCg0JjQiNCQCivQmtCe0KjQndCY0KfQkNCgINCc0JjQm9CQ0J0KK9Ca0J7QqNCd0JjQp9CQ0KAg0KHQntCk0JjQiNCQCivQmtCe0KjQntCm0JrQmCDQnNCQ0KDQmNCI0JAKK9Ca0J7QqNCj0KLQmNCLINCC0KPQoNCeCivQmtCe0KjQo9Ci0JjQiyDQgtCj0KDQngor0JrQntCo0KPQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ca0J7QqNCj0KLQmNCLINCR0KDQkNCd0JrQngor0JrQntCo0KPQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCe0KjQo9Ci0JjQiyDQlNCj0KjQkNCdCivQmtCe0KjQo9Ci0JjQiyDQiNCe0JLQkNCdCivQmtCe0KjQo9Ci0JjQiyDQmtCe0KHQotCQCivQmtCe0KjQo9Ci0JjQiyDQnNCQ0J3QlQor0JrQntCo0KPQotCY0Isg0JzQmNCb0J7QqAor0JrQntCo0KPQotCY0Isg0J3QmNCa0J7Qm9CQCivQmtCe0IvQkNCb0J4g0KDQkNCU0J7QiNCY0KbQkAor0JrQntCW0KPQmyDQk9Ce0IjQmtCeCivQmtCe0JbQo9CbINCT0J7QiNCa0J4KK9Ca0J7QltCj0Jsg0KDQkNCI0JrQngor0JrQntCW0KPQktCQ0KDQkCDQk9CQ0JLQoNCQCivQmtCe0JHQkNCoINCI0J7QodCY0J8KK9Ca0J7QkdCQ0Kgg0JrQkNCi0JjQptCQCivQmtCe0JHQkNCoINCS0KPQmtCQ0KjQmNCdCivQmtCe0JHQkNCbINCC0KPQoNCQCivQmtCe0JHQkNCbINCR0J7QltCY0JTQkNCgCivQmtCe0JHQkNCbINCY0KDQmNChCivQmtCe0JHQkNCbINCY0JLQkNCdCivQmtCe0JHQmNCb0JDQoNCY0Isg0ILQo9Cg0ILQmNCm0JAKK9Ca0J7QkdCY0JvQkNCg0J7QkiDQkNCd0JPQldCb0JjQndCQCivQmtCe0JHQmNCb0JDQoNCe0JIg0InQo9CR0J7QnNCY0KAKK9Ca0J7QkdCY0JvQkNCg0J7QkiDQnNCY0JvQkNCd0JrQkAor0JrQntCR0JjQm9CQ0KDQntCSINCc0JjQm9Ce0KgKK9Ca0J7QkdCY0JvQkNCg0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQmtCe0JHQmNCb0JDQoNCe0JIg0J3QldCT0J7QktCQ0J0KK9Ca0J7QkdCY0JvQkNCg0J7QkiDQndCV0KHQotCe0KAKK9Ca0J7QkdCY0JvQkNCg0J7QkiDQodCY0JzQkAor0JrQntCR0JjQm9CQ0KDQntCSINCi0J7QqNCQCivQmtCe0JHQmNCb0JDQoNCe0JIg0JLQkNCh0JAKK9Ca0J7QkdCY0InQodCa0Jgg0ILQntCg0ILQlQor0JrQntCR0JjQidCh0JrQmCDQlNCe0JHQoNCY0JvQkAor0JrQntCR0JjQidCh0JrQmCDQlNCg0JDQk9Ce0JzQmNCgCivQmtCe0JHQmNCJ0KHQmtCYINCU0KPQqNCQ0J0KK9Ca0J7QkdCY0InQodCa0Jgg0JvQkNCX0JDQoAor0JrQntCR0JjQidCh0JrQmCDQnNCY0JvQntCoCivQmtCe0JHQmNCJ0KHQmtCYINCc0JjQoNCI0JDQndCQCivQmtCe0JHQmNCJ0KHQmtCYINCc0JvQkNCU0JXQnQor0JrQntCR0JjQidCh0JrQmCDQndCY0JrQntCb0JAKK9Ca0J7QkdCY0InQodCa0Jgg0KHQotCV0JLQkNCdCivQmtCe0JHQmNCJ0KHQmtCYINCS0JjQlNCQCivQmtCe0JHQmNCb0KHQmtCYINCc0JDQoNCY0IjQkAor0JrQntCR0KDQldCl0JXQmyDQm9CQ0IjQntCoCivQmtCe0KbQkNCfINCc0JDQoNCY0IjQkAor0JrQntCm0JDQnyDQnNCY0KDQkAor0JrQntCm0JDQnyDQktCb0JDQlNCY0JzQmNCgCivQmtCe0KbQmCDQpNCV0KDQldCd0KYKK9Ca0J7QptCYINCg0JXQltCVCivQmtCe0KbQmNCLINCW0JjQmtCY0KbQkAor0JrQntCm0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCm0JjQiyDQkNCd0JjQptCQCivQmtCe0KbQmNCLINCU0KPQqNCQ0J3QmtCQCivQmtCe0KbQmNCLINCI0JDQodCd0JAKK9Ca0J7QptCY0Isg0InQmNCJ0JDQndCQCivQmtCe0KbQmNCLINCc0JjQm9CY0IjQkNCd0JAKK9Ca0J7QptCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ca0J7QptCY0Isg0KHQmNCd0JjQqNCQCivQmtCe0KbQmNCLINCh0JvQkNCC0JDQndCQCivQmtCe0KbQmNCLINCh0JvQkNCS0JrQngor0JrQntCm0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQmtCe0KbQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ca0J7QptCY0Isg0JLQldCb0JjQndCa0JAKK9Ca0J7QptCY0Isg0JfQktCV0JfQlNCQ0J0KK9Ca0J7QptCY0IjQkNCd0KfQmNCLINCc0JjQoNCQCivQmtCe0KbQmtCQ0KAg0JHQntCg0JjQodCb0JDQkgor0JrQntCm0JrQkNCgINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0J7QptCa0JDQoCDQidCj0JHQntCc0JjQoAor0JrQntCm0JrQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QptCa0JDQoNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQntCm0JrQkNCg0JXQktCY0Isg0IjQntCS0JDQnQor0JrQntCm0JrQkNCg0JXQktCY0Isg0JzQmNCb0JjQptCQCivQmtCe0KbQniDQqNCQ0J3QlNCe0KAKK9Ca0J7QptCeINCV0KDQltCV0JHQldCiCivQmtCe0KbQntCJ0JXQktCQ0KYg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCe0I/QniDQodCQ0KjQkAor0JrQntCP0J4g0JfQntCg0JDQnQor0JrQntCU0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ca0J7QlNCg0JDQndCe0JIg0KDQkNCU0J7QktCQ0J0KK9Ca0J7QlNCg0JDQndCe0JIg0KHQoNCV0JTQntCI0JUKK9Ca0J7QlNCg0JjQnSDQidCj0JTQnNCY0JvQkAor0JrQntCT0J7QiCDQldCU0KPQkNCg0JQKK9Ca0J7Qk9Ce0Igg0JXQnNCQCivQmtCe0KUg0IjQntCW0JXQpAor0JrQntClINCh0JDQktCV0KLQkAor0JrQntCl0JDQndCV0KYg0KjQkNCd0JTQntCgCivQmtCe0KXQkNCd0JXQpiDQpNCg0JDQitCQCivQmtCe0KXQkNCd0JXQpiDQk9CQ0KjQn9CQ0KAKK9Ca0J7QpdCQ0J3QldCmINCI0J7QktCQ0J0KK9Ca0J7QpdCQ0J3QldCmINCc0JDQoNCY0IjQkAor0JrQntCl0JDQndCV0KYg0J/QkNCbCivQmtCe0KXQo9CiINCC0KPQoNCQCivQmtCe0KXQo9CiINCh0KLQntCI0JAKK9Ca0J7QiNCn0JjQiyDQkNCd0ILQldCb0JrQngor0JrQntCI0KfQmNCLINCU0KDQkNCT0JjQptCQCivQmtCe0IjQp9CY0Isg0JjQktCQ0J3QkAor0JrQntCI0KfQmNCLINCf0KDQldCU0KDQkNCTCivQmtCe0IjQp9CY0Isg0KHQoNCV0JTQntCI0JUg0JTQoAor0JrQntCI0KfQmNCdINCP0JXQnNCY0InQkAor0JrQntCI0KfQmNCdINCc0JjQm9CV0JLQkAor0JrQntCI0JDQlNCY0J3QntCS0JjQiyDQltCY0JLQmtCeCivQmtCe0IjQkNCU0JjQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Ca0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JHQntCg0J4KK9Ca0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Ca0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JrQkNCi0JAKK9Ca0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCg0JAKK9Ca0J7QiNCQ0JTQmNCd0J7QktCY0Isg0KDQkNCU0JUKK9Ca0J7QiNCQ0JTQmNCd0J7QktCY0Isg0KHQotCe0IjQkNCdCivQmtCe0IjQkNCU0JjQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QiNCU0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQntCI0JTQmNCLINCc0JvQkNCU0JXQnQor0JrQntCI0JTQmNCLINCf0JXQotCQ0KAKK9Ca0J7QiNCY0KfQmNCLINCd0J7QktCa0JAKK9Ca0J7QiNCY0KfQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7QiNCY0KfQmNCdINCc0JjQm9CQ0J0KK9Ca0J7QiNCY0Isg0KfQldCU0J7QnNCY0KAKK9Ca0J7QiNCY0Isg0JbQmNCS0JDQnQor0JrQntCI0JjQiyDQgtCj0KDQkNCCCivQmtCe0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0IjQmNCLINCQ0KDQodCV0J0KK9Ca0J7QiNCY0Isg0JHQntCo0JrQngor0JrQntCI0JjQiy3QkdCe0JbQkNCd0JjQiyDQodCe0KTQmNCI0JAKK9Ca0J7QiNCY0Isg0JHQntCg0JjQktCe0IgKK9Ca0J7QiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCe0IjQmNCLINCU0JDQndCY0KbQkAor0JrQntCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J7QiNCY0Isg0JTQoNCQ0JPQkNCdCivQmtCe0IjQmNCLINCU0KDQkNCT0JDQnQor0JrQntCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J7QiNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Ca0J7QiNCY0Isg0JTQo9Co0JDQnQor0JrQntCI0JjQiyDQldCg0JbQldCR0JXQogor0JrQntCI0JjQiyDQk9Ce0KDQkNCdCivQmtCe0IjQmNCLINCT0J7QoNCQ0J0KK9Ca0J7QiNCY0Isg0JPQntCg0JDQnQor0JrQntCI0JjQiyDQpdCg0JjQodCi0JjQpNCe0KAKK9Ca0J7QiNCY0Isg0JjQktCQ0J0KK9Ca0J7QiNCY0Isg0JjQktCQ0J0KK9Ca0J7QiNCY0Isg0JjQktCQ0J0KK9Ca0J7QiNCY0Isg0IjQntCS0JDQndCa0JAKK9Ca0J7QiNCY0Isg0IjQntCS0JDQndCa0JAKK9Ca0J7QiNCY0Isg0IjQntCS0J4KK9Ca0J7QiNCY0Isg0JvQldCf0J7QodCQ0JLQkAor0JrQntCI0JjQiyDQidCj0JHQmNCm0JAKK9Ca0J7QiNCY0Isg0InQo9CR0J7QlNCg0JDQkwor0JrQntCI0JjQiyDQm9Cj0JrQkAor0JrQntCI0JjQiyDQnNCY0KXQkNCY0JvQngor0JrQntCI0JjQiyDQnNCY0JvQkNCdCivQmtCe0IjQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QiNCY0Isg0JzQmNCb0JDQnQor0JrQntCI0JjQiyDQnNCY0JvQkNCdCivQmtCe0IjQmNCLINCc0JjQm9CV0J3QkAor0JrQntCI0JjQiyDQnNCY0JvQldCd0JAKK9Ca0J7QiNCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0J7QiNCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0J7QiNCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0J7QiNCY0Isg0JzQmNCb0J7QktCY0J3QkAor0JrQntCI0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQntCI0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQntCI0JjQiyDQnNCe0JzQp9CY0JvQngor0JrQntCI0JjQiyDQndCV0ILQngor0JrQntCI0JjQiyDQndCV0JHQntCI0KjQkAor0JrQntCI0JjQiyDQndCV0JHQntCI0KjQkAor0JrQntCI0JjQiyDQndCV0JTQldCJ0JrQngor0JrQntCI0JjQiyDQntCb0JPQmNCm0JAKK9Ca0J7QiNCY0Isg0J/QldCi0JDQoAor0JrQntCI0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JrQntCI0JjQiyDQoNCj0JbQmNCm0JAKK9Ca0J7QiNCY0Isg0KDQo9CW0JjQptCQCivQmtCe0IjQmNCLINCh0JDQktCeCivQmtCe0IjQmNCLINCh0JjQnNCV0J7QnQor0JrQntCI0JjQiyDQodCY0J3QmNCo0JAKK9Ca0J7QiNCY0Isg0KHQn9CQ0KHQldCd0JjQiNCQCivQmtCe0IjQmNCLINCh0KLQldCS0JDQnQor0JrQntCI0JjQiyDQodCi0JXQktCQ0J0KK9Ca0J7QiNCY0Isg0KHQotCV0JLQkNCdCivQmtCe0IjQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JrQntCI0JjQiyDQo9CT0InQldCo0JAKK9Ca0J7QiNCY0Isg0JLQkNCh0JAKK9Ca0J7QiNCY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0J7QiNCY0Isg0JLQmNCd0JrQkAor0JrQntCI0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Ca0J7QiNCe0JLQmNCLINCW0JDQoNCa0J4KK9Ca0J7QiNCe0JLQmNCLINCc0JjQm9CY0J3QmtCeCivQmtCe0JrQkNCYINCo0JDQndCU0J7QoAor0JrQntCa0JDQmCDQqNCQ0J3QlNCe0KAKK9Ca0J7QmtCQ0Jgg0KjQkNCd0JTQntCgCivQmtCe0JrQkNCYINCQ0JvQmNCh0JAKK9Ca0J7QmtCQ0Jgg0JXQm9CV0J3QkAor0JrQntCa0JDQmCDQpNCV0KDQldCd0KYKK9Ca0J7QmtCQ0Jgg0KTQldCg0JXQndCmCivQmtCe0JrQkNCYINCk0JXQoNCV0J3Qpgor0JrQntCa0JDQmCDQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0JrQkNCYINCb0JDQodCb0J4KK9Ca0J7QmtCQ0Jgg0JzQkNCT0JTQntCb0J3QkAor0JrQntCa0JDQmCDQnNCY0KXQkNCI0JvQngor0JrQntCa0JDQmCDQotCY0JHQntCgCivQmtCe0JrQkNCdINCY0JLQkNCdCivQmtCe0JrQkNCd0J7QkiDQnNCY0JvQldCi0JAKK9Ca0J7QmtCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmtCe0JrQkNCd0J7QktCY0Isg0JrQntCS0JjQidCa0JAKK9Ca0J7QmtCQ0KAg0JLQldCg0JjQptCQCivQmtCe0JrQkNCgINCS0JjQm9Cc0JAKK9Ca0J7QmtCV0Ikg0KLQo9CT0J7QnNCY0KAKK9Ca0J7QmtCV0JfQkCDQltCQ0KDQmtCeCivQmtCe0JrQldCX0JAg0JTQo9Co0JDQnQor0JrQntCa0JXQl9CQINCc0JjQm9CV0J3QkAor0JrQntCa0JjQiyDQiNCe0JLQkNCdCivQmtCe0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QmtCY0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0J7QmtCY0KAg0InQo9CR0J4KK9Ca0J7QmtCe0KDQo9CoINCe0KHQotCe0IjQkAor0JrQntCa0J7QoiDQoNCQ0JTQlQor0JrQntCa0J7QoiDQodCc0JjQidCQCivQmtCe0JrQntCiINCh0KDQldCi0JAKK9Ca0J7QmtCe0KIg0KHQktCV0KLQm9CQ0J3QkAor0JrQntCa0J7QoiDQktCY0KbQngor0JrQntCa0J7QotCe0JLQmNCLINCW0JjQktCa0J4KK9Ca0J7QmtCe0KLQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JrQntCa0J7QotCe0JLQmNCLINCT0J7QiNCa0J4KK9Ca0J7QmtCe0KLQntCS0JjQiyDQmNCb0JjQiNCQCivQmtCe0JrQntCi0J7QktCY0Isg0JjQktCY0KbQkAor0JrQntCa0J7QotCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQmtCe0JrQntCi0J7QktCY0Isg0JrQkNCi0JjQptCQCivQmtCe0JrQntCi0J7QktCY0Isg0J/QldCi0JDQoAor0JrQntCa0J7QotCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQmtCe0JrQntCi0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9Ca0J7QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JrQntCa0J7QktCY0Isg0JPQntCg0JDQnQor0JrQntCb0ILQldCg0JDQiCDQgtCe0J0KK9Ca0J7Qm9CQ0KfQkNCg0JjQiyDQktCV0JvQmNCR0J7QoAor0JrQntCb0JDQqNCY0J3QkNCmINCJ0KPQkdCe0JzQmNCgCivQmtCe0JvQkNCaINCU0KPQqNCQ0J0KK9Ca0J7Qm9CQ0Jog0IjQldCb0JXQndCQCivQmtCe0JvQkNCaINCc0JjQm9CQ0J0KK9Ca0J7Qm9CQ0JrQntCS0JjQiyDQkNCb0JzQkNCXCivQmtCe0JvQkNCa0J7QktCY0Isg0IjQo9Cg0JUKK9Ca0J7Qm9CQ0JrQntCS0JjQiyDQnNCY0JvQlQor0JrQntCb0JDQmtCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQmtCe0JvQkNCa0KPQqNCY0Isg0JjQktCY0KbQkAor0JrQntCb0JDQmtCS0JjQiyDQidCY0InQkNCd0JAKK9Ca0J7Qm9CQ0J3QniDQkNCd0KLQntCdCivQmtCe0JvQkNCd0J4g0JTQoNCQ0JPQntCh0JvQkNCSCivQmtCe0JvQkNCd0J4g0JjQktCQ0J0KK9Ca0J7Qm9CQ0J3QniDQiNCj0JvQmtCQCivQmtCe0JvQkNCgINCQ0J3QkAor0JrQntCb0JDQoCDQkNCd0JAKK9Ca0J7Qm9CQ0KAg0JDQndCU0KDQmNCI0JAKK9Ca0J7Qm9CQ0KAg0JDQndCi0JDQmwor0JrQntCb0JDQoCDQlNCQ0KDQmtCeCivQmtCe0JvQkNCgINCY0JHQntCJ0JrQkAor0JrQntCb0JDQoCDQmNCS0JDQnQor0JrQntCb0JDQoCDQiNCe0KHQmNCfCivQmtCe0JvQkNCgINCI0J7QodCY0J8KK9Ca0J7Qm9CQ0KAg0IjQo9Cb0JjQiNCQ0J3QkAor0JrQntCb0JDQoCDQm9CQ0IjQntCoCivQmtCe0JvQkNCgINCb0JDQodCb0J4KK9Ca0J7Qm9CQ0KAg0JvQntCX0JjQndCa0JAKK9Ca0J7Qm9CQ0KAg0JzQkNCi0JjQiNCQCivQmtCe0JvQkNCgINCc0JjQm9CY0KbQkAor0JrQntCb0JDQoCDQnNCY0KDQmtCeCivQmtCe0JvQkNCgINCf0JDQktCb0JUKK9Ca0J7Qm9CQ0KAg0J/QldCi0JDQoAor0JrQntCb0JDQoNCoINCo0KLQldCk0JDQnQor0JrQntCb0JDQoNCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JrQntCb0JDQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ca0J7Qm9CQ0KDQmNCLINCR0KDQkNCd0JrQngor0JrQntCb0JDQoNCY0Isg0JHQoNCY0JPQmNCi0JAKK9Ca0J7Qm9CQ0KDQmNCLINCU0J7QkdCg0JjQm9CQCivQmtCe0JvQkNCg0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQntCb0JDQoNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JrQntCb0JDQoNCY0Isg0JTQo9Co0JDQnQor0JrQntCb0JDQoNCY0Isg0KTQmNCb0JjQnwor0JrQntCb0JDQoNCY0Isg0JjQlNCQCivQmtCe0JvQkNCg0JjQiyDQmtCe0KHQotCQCivQmtCe0JvQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0J7Qm9CQ0KDQmNCLINCc0JDQoNCY0IjQkAor0JrQntCb0JDQoNCY0Isg0JzQmNCb0JDQnQor0JrQntCb0JDQoNCY0Isg0JzQmNCb0JDQnQor0JrQntCb0JDQoNCY0Isg0JzQmNCb0JjQktCe0IgKK9Ca0J7Qm9CQ0KDQmNCLINCc0JvQkNCU0JXQnQor0JrQntCb0JDQoNCY0Isg0J3QkNCU0JAKK9Ca0J7Qm9CQ0KDQmNCLINCd0JXQnNCQ0IrQkAor0JrQntCb0JDQoNCY0Isg0J3QmNCa0J7Qm9CQCivQmtCe0JvQkNCg0JjQiyDQoNCQ0JTQntCS0JDQnQor0JrQntCb0JDQoNCY0Isg0KHQm9CQ0JLQmtCeCivQmtCe0JvQkNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0JvQkNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0JvQkNCg0JjQiyDQodCd0JXQltCQ0J3QkAor0JrQntCb0JDQoNCY0Isg0KHQotCV0JLQkNCdCivQmtCe0JvQkNCg0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQmtCe0JvQkNCg0JjQiyDQktCe0IjQkAor0JrQntCb0JDQoNCY0Isg0JfQntCg0JDQnQor0JrQntCb0JDQoNCY0Isg0JfQktCe0J3QmtCeCivQmtCe0JvQkNCg0J7QkiDQltCY0JLQkAor0JrQntCb0JDQoNCe0JIg0ILQntCg0ILQlQor0JrQntCb0JDQoNCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7Qm9CQ0KDQntCSINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQntCb0JDQoNCe0JIg0JTQoNCQ0JPQntCh0JvQkNCSCivQmtCe0JvQkNCg0J7QkiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ca0J7Qm9CQ0KDQntCSINCT0J7QiNCa0J4KK9Ca0J7Qm9CQ0KDQntCSINCI0J7QktCQ0J0KK9Ca0J7Qm9CQ0KDQntCSINCI0J7QktCQ0J0KK9Ca0J7Qm9CQ0KDQntCSINCI0KPQm9Ca0JAKK9Ca0J7Qm9CQ0KDQntCSINCa0JDQotCVCivQmtCe0JvQkNCg0J7QkiDQidCY0InQkNCd0JAKK9Ca0J7Qm9CQ0KDQntCSINCc0JDQoNCY0KbQkAor0JrQntCb0JDQoNCe0JIg0JzQmNCb0JDQndCa0JAKK9Ca0J7Qm9CQ0KDQntCSINCc0JjQm9CY0JLQntCICivQmtCe0JvQkNCg0J7QkiDQnNCY0JvQntCoCivQmtCe0JvQkNCg0J7QkiDQnNCe0JzQmNCgCivQmtCe0JvQkNCg0J7QkiDQndCQ0JTQkCDQlNCgINCb0JXQmtCQ0KAKK9Ca0J7Qm9CQ0KDQntCSINCd0JXQkdCe0IjQqNCQCivQmtCe0JvQkNCg0J7QkiDQn9CQ0JLQm9CVCivQmtCe0JvQkNCg0J7QkiDQn9CV0KLQkNCgCivQmtCe0JvQkNCg0J7QkiDQoNCQ0JTQntCI0JrQngor0JrQntCb0JDQoNCe0JIt0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCd0JAKK9Ca0J7Qm9CQ0KDQntCSINCh0JDQktCQCivQmtCe0JvQkNCg0J7QkiDQotCe0JTQntCgCivQmtCe0JvQkNCg0J7QkiDQotCe0JzQmNCh0JvQkNCSCivQmtCe0JvQkNCg0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQmtCe0JvQkNCg0J7QktCY0Isg0JbQmNCS0JrQngor0JrQntCb0JDQoNCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JrQntCb0JDQoNCe0JLQmNCLINCa0JDQotCY0KbQkAor0JrQntCb0JDQoNCe0JLQmNCLINCa0J7QktCY0J3QmtCQCivQmtCe0JvQkNCg0J7QktCY0Isg0JvQo9Ca0JAg0JTQoAor0JrQntCb0JDQoNCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQmtCe0JvQkNCg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQmtCe0JvQkNCg0J7QktCY0Isg0J3QldCd0JDQlAor0JrQntCb0JDQoNCh0JrQmCDQgtCe0KDQgtCVCivQmtCe0JvQkNCg0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0JvQkNCg0KHQmtCYINCQ0J3QmNCm0JAKK9Ca0J7Qm9CQ0KDQodCa0Jgg0JDQoNCf0JDQlAor0JrQntCb0JDQoNCh0JrQmCDQkdCe0KHQmNCJ0JrQkAor0JrQntCb0JDQoNCh0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0J7Qm9CQ0KDQodCa0Jgg0JTQkNCd0JjQptCQCivQmtCe0JvQkNCg0KHQmtCYINCU0KPQqNCQ0J3QmtCQINCU0JjQn9CbINCe0JXQpgor0JrQntCb0JDQoNCh0JrQmCDQiNCe0JLQkNCdCivQmtCe0JvQkNCg0KHQmtCYINCI0J7QktCQ0J0KK9Ca0J7Qm9CQ0KDQodCa0Jgg0JrQkNCi0JjQptCQCivQmtCe0JvQkNCg0KHQmtCYINCb0JDQodCb0J4KK9Ca0J7Qm9CQ0KDQodCa0Jgg0JvQkNCX0JDQoAor0JrQntCb0JDQoNCh0JrQmCDQnNCY0JvQkNCU0JjQnQor0JrQntCb0JDQoNCh0JrQmCDQnNCY0JvQkNCdCivQmtCe0JvQkNCg0KHQmtCYINCc0JjQm9CV0J3QmtCeINCS0JXQotCV0KDQmNCd0JDQoAor0JrQntCb0JDQoNCh0JrQmCDQnNCY0JvQldCd0JrQngor0JrQntCb0JDQoNCh0JrQmCDQnNCY0JvQmNCm0JAKK9Ca0J7Qm9CQ0KDQodCa0Jgg0JzQmNCi0JDQoAor0JrQntCb0JDQoNCh0JrQmCDQnNCb0JDQlNCV0J0KK9Ca0J7Qm9CQ0KDQodCa0Jgg0JzQm9CQ0JTQldCdCivQmtCe0JvQkNCg0KHQmtCYINCd0JDQlNCQCivQmtCe0JvQkNCg0KHQmtCYINCd0JjQmtCe0JvQkAor0JrQntCb0JDQoNCh0JrQmCDQoNCQ0JTQnNCY0JvQkAor0JrQntCb0JDQoNCh0JrQmCDQoNCQ0JTQntCh0JvQkNCSCivQmtCe0JvQkNCg0KHQmtCYINCg0JDQlNCe0JLQkNCdCivQmtCe0JvQkNCg0KHQmtCYINCg0JDQlNCe0JLQkNCdCivQmtCe0JvQkNCg0KHQmtCYINCh0JvQkNCS0JjQptCQCivQmtCe0JvQkNCg0KHQmtCYINCh0KLQldCS0JDQnQor0JrQntCb0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9Ca0J7Qm9CQ0KDQodCa0Jgg0KLQntCU0J7QoAor0JrQntCb0JDQoNCh0JrQmCDQktCV0KDQkAor0JrQntCb0JDQoNCh0JrQmCDQl9CU0KDQkNCS0JrQngor0JrQntCb0JHQkNChINCU0JDQndCY0IjQldCbCivQmtCe0JvQkdCQ0KEg0IjQkNCd0JrQngor0JrQntCb0JHQkNChINCI0J7QkNCa0JjQnAor0JrQntCb0JHQkNChINCc0JXQm9CQ0J3QmNCI0JAKK9Ca0J7Qm9CR0JDQoSDQnNCY0JvQldCS0JAKK9Ca0J7Qm9CR0JDQoSDQktCb0JDQlNCQCivQmtCe0JvQj9CY0Isg0JHQoNCQ0J3QmtCQCivQmtCe0JvQj9CY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0JvQj9CY0J0g0JzQmNCg0JrQngor0JrQntCb0I/QmNCdINCS0JXQodCV0JvQmNCdCivQmtCe0JvQlNCQ0J0g0JzQmNCb0JXQndCa0J4KK9Ca0J7Qm9CV0KjQmtCQINCV0JTQo9CQ0KDQlAor0JrQntCb0JXQlNCQ0KAg0JDQndCU0KDQmNCI0JAKK9Ca0J7Qm9CV0JTQmNCdINCC0J7QoNCC0JUKK9Ca0J7Qm9CV0JTQmNCdINCk0J7QotCY0IjQlQor0JrQntCb0JXQlNCY0J0g0JzQmNCb0J7QqAor0JrQntCb0JXQlNCY0J0g0JzQmNCg0IjQkNCd0JAKK9Ca0J7Qm9CV0JTQmNCdINCf0JXQotCQ0KAKK9Ca0J7Qm9CV0JTQmNCdINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0J7Qm9CV0JTQmNCdINCg0JDQlNCe0JLQkNCdCivQmtCe0JvQldCU0JjQnSDQoNCQ0JTQntCS0JDQnQor0JrQntCb0JXQlNCY0J0g0KHQotCV0JLQkNCdCivQmtCe0JvQldCU0JjQnSDQktCV0JvQmNCc0JjQoAor0JrQntCb0JXQlNCY0J0g0JLQldCg0JAKK9Ca0J7Qm9CV0KAg0JDQndCi0JDQmwor0JrQntCb0JXQoCDQm9CQ0IjQntCoCivQmtCe0JvQldCh0JDQoCDQgtCj0KDQkAor0JrQntCb0JXQodCQ0KAg0JDQndCY0KbQkAor0JrQntCb0JXQodCQ0KAg0KTQldCU0J7QoAor0JrQntCb0JXQodCQ0KAg0KTQldCg0JXQndCmCivQmtCe0JvQldCh0JDQoCDQk9CQ0JLQoNCQCivQmtCe0JvQldCh0JDQoCDQiNCQ0J3QntCoCivQmtCe0JvQldCh0JDQoCDQiNCe0JLQkNCdCivQmtCe0JvQldCh0JDQoCDQiNCe0JLQkNCdCivQmtCe0JvQldCh0JDQoCDQiNCj0JvQmNCI0JDQnQor0JrQntCb0JXQodCQ0KAg0IjQo9Cb0JjQiNCQ0J0KK9Ca0J7Qm9CV0KHQkNCgINCa0JDQotCY0KbQkAor0JrQntCb0JXQodCQ0KAg0JrQodCV0J3QmNCI0JAKK9Ca0J7Qm9CV0KHQkNCgINCc0JjQpdCQ0IjQm9CeCivQmtCe0JvQldCh0JDQoCDQn9CV0KLQkNCgINCU0KAKK9Ca0J7Qm9CV0KHQkNCgINCf0JXQotCQ0KAKK9Ca0J7Qm9CV0KHQkNCgINCh0JjQnNCV0J7QnQor0JrQntCb0JXQodCQ0KAg0JLQldCg0JAKK9Ca0J7Qm9CV0KHQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7Qm9CV0KHQkNCgINCX0J7QoNCY0KbQkAor0JrQntCb0JXQodCQ0KDQmNCLINCS0JjQndCa0J4KK9Ca0J7Qm9CV0JIg0KLQntCU0J7QoNCa0JAKK9Ca0J7Qm9CY0Isg0JDQmNCo0JAKK9Ca0J7Qm9CY0J0g0IjQntCW0JXQpCDQndCe0JLQmNCd0JDQoAor0JrQntCJ0JDQj9CY0J3QodCa0Jgg0IjQntCS0JDQnQor0JrQntCJ0JDQj9CY0J3QodCa0Jgg0KHQotCV0KTQkNCd0JjQiNCQCivQmtCe0InQkNCI0JAg0JHQm9CQ0JPQntCI0JUKK9Ca0J7QidCQ0IjQkCDQlNCg0JDQk9CQ0J0KK9Ca0J7QidCQ0IjQkCDQk9Ce0KDQkNCdCivQmtCe0InQkNCd0JjQnSDQn9CV0KLQkNCgCivQmtCe0JvQnNCQ0J0g0IjQntCW0JXQpAor0JrQntCb0J7Qp9CQ0Jgg0IjQntCh0JjQnwor0JrQntCb0J7QqNCK0JDQmCDQnNCY0KDQntCdCivQmtCe0JvQntCo0IrQkNCI0Jgg0IjQkNCd0JrQngor0JrQntCb0J7QqNCK0JDQiNCYINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7Qm9Ce0J/QmNCLINCf0JXQotCQ0KAKK9Ca0J7Qm9Ce0J/QmNCLINCg0KPQltCY0KbQkAor0JrQntCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQmtCe0JvQotCY0J0g0JHQoNCQ0J3QmtCeCivQmtCe0JvQo9Cd0I/QmNCLINCW0JjQktCa0JAKK9Ca0J7Qm9Cj0J3Qj9CY0Isg0ILQo9Cg0JAKK9Ca0J7Qm9Cj0J3Qj9CY0Isg0JDQndCa0JAKK9Ca0J7Qm9Cj0J3Qj9CY0Isg0J/QldCg0JjQptCQCivQmtCe0JvQo9Cd0I/QmNCLINCh0JvQkNCS0JrQngor0JrQntCb0KPQndCP0JjQiyDQodCb0JDQktCa0J4KK9Ca0J7Qm9Cj0J3Qj9CY0IjQkCDQkNCd0ILQldCb0JrQkAor0JrQntCb0KPQndCP0JjQiNCQINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0J7Qm9Cj0J3Qj9CY0IjQkCDQlNCQ0JLQntCg0JrQkAor0JrQntCb0KPQndCP0JjQiNCQINCU0KDQkNCT0JDQnQor0JrQntCb0KPQndCP0JjQiNCQINCb0JDQl9CQ0KAKK9Ca0J7Qm9Cj0J3Qj9CY0IjQkCDQidCj0JHQntCc0JjQoAor0JrQntCb0KPQndCP0JjQiNCQINCc0JjQoNCa0J4KK9Ca0J7Qm9Cj0J3Qj9CY0IjQkCDQndCQ0JTQkAor0JrQntCb0KPQndCP0JjQiNCQINCd0JjQmtCe0JvQkAor0JrQntCb0KPQndCP0JjQiNCQINCX0J7QoNCa0JAKK9Ca0J7Qm9Cj0KLQkNCmINCc0JDQotCY0IjQkAor0JrQntCc0KjQmNCLINCI0J7QktCQ0J0KK9Ca0J7QnNCo0J4g0J3QmNCa0J7Qm9CQCivQmtCe0JzQkNCUINCQ0J3QkAor0JrQntCc0JDQlCDQk9Ce0IjQmtCeCivQmtCe0JzQkNCUINCg0JDQotCe0JzQmNCgCivQmtCe0JzQkNCUINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7QnNCQ0JTQkNCd0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ca0J7QnNCQ0JTQkNCd0J7QktCY0Isg0JzQntCc0JjQoAor0JrQntCc0JDQlNCQ0KDQmNCLINCc0JjQm9Ce0KgKK9Ca0J7QnNCQ0JTQmNCd0JAg0JzQkNCd0JUKK9Ca0J7QnNCQ0JTQmNCd0JAg0JLQldCb0JjQodCb0JDQkgor0JrQntCc0JDQlNCY0J3QkCDQktCj0IjQkNCU0JjQnQor0JrQntCc0JDQlNCY0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCe0JzQkNCU0JjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QnNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCg0JAKK9Ca0J7QnNCQ0JTQmNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JrQntCc0JDQnSDQkdCe0KHQmNCJ0JrQkAor0JrQntCc0JDQndCe0JIg0JzQkNCg0JjQiNCQCivQmtCe0JzQkNCgINCT0J7QiNCa0J4g0JTQmNCf0Jsg0JjQndCTCivQmtCe0JzQkNCgINCg0JDQlNCY0JLQntCI0JUKK9Ca0J7QnNCQ0KAg0KHQm9CQ0JLQmtCQCivQmtCe0JzQkNCgINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7QnNCQ0KAg0JfQntCg0JrQkAor0JrQntCc0JDQoNCn0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QnNCQ0KDQp9CV0JLQmNCLINCY0KjQotCS0JDQnQor0JrQntCc0JDQoNCn0JXQktCY0Isg0JzQmNCb0JXQndCQCivQmtCe0JzQkNCg0KfQldCS0JjQiyDQnNCY0JvQmNCd0JrQniDQlNCgCivQmtCe0JzQkNCg0KfQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCe0JzQkNCg0KfQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCe0JzQkNCg0JjQptCQINCc0JDQoNCa0J4KK9Ca0J7QnNCQ0KDQmNCm0JAg0J3QntCS0JrQngor0JrQntCc0JDQoNCY0KbQkCDQoNCQ0JTQnNCY0JvQkAor0JrQntCc0JDQoNCe0JzQmCDQgtCe0KDQgtCVCivQmtCe0JzQkNCg0J7QnNCYINCQ0J3QgtCV0JvQmtCQCivQmtCe0JzQkNCg0J7QnNCYINCR0J7QoNCR0JDQm9CQCivQmtCe0JzQkNCg0J7QnNCYINCR0J7QoNCI0JDQndCa0JAKK9Ca0J7QnNCQ0KDQntCc0Jgg0JHQntCg0IjQkNCd0JrQkAor0JrQntCc0JDQoNCe0JzQmCDQmNCg0JzQkAor0JrQntCc0JDQoNCe0JzQmCDQmtCb0JDQoNCQCivQmtCe0JzQkNCg0J7QnNCYINCc0JDQk9CU0J7Qm9Cd0JAKK9Ca0J7QnNCQ0KDQntCc0Jgg0JzQkNCT0JTQntCb0J3QkAor0JrQntCc0JDQoNCe0JzQmCDQnNCQ0KDQmNCI0JAKK9Ca0J7QnNCQ0KDQntCc0Jgg0J/QldCi0JDQoAor0JrQntCc0JDQoNCe0JzQmCDQl9Ce0JvQotCQ0J0KK9Ca0J7QnNCQ0KDQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JrQntCc0JDQoNCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QnNCQ0KDQntCSINCR0KDQkNCd0JrQkAor0JrQntCc0JDQoNCe0JIg0JTQoNCQ0JPQmNCm0JAKK9Ca0J7QnNCQ0KDQntCSINCU0KDQkNCT0J7QnNCY0KAKK9Ca0J7QnNCQ0KLQmNCd0JAg0JTQoNCQ0JPQkNCdCivQmtCe0JzQkNCi0JjQndCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQmtCe0JzQkNCi0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQntCc0JDQotCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQmtCe0JzQkNCX0JXQpiDQlNCg0JDQk9Ce0JzQmNCgCivQmtCe0JzQkNCX0JXQpiDQn9CV0KLQkNCgCivQmtCe0JzQkdCV0KDQmCDQkNCS0JTQo9CoCivQmtCe0JzQkdCY0Ikg0JLQldCg0JAKK9Ca0J7QnNCV0J3QlNCQINCQ0J3QlNCg0JjQiNCQCivQmtCe0JzQmNCd0JrQniDQidCj0JHQmNCm0JAKK9Ca0J7QnNCb0JXQndCY0Isg0ILQntCg0ILQlQor0JrQntCc0JvQldCd0J7QkiDQltCY0JLQkNCdCivQmtCe0JzQm9CV0J3QntCSINCC0J7QoNCC0JUKK9Ca0J7QnNCb0JXQndCe0JIg0IjQntCS0JDQnQor0JrQntCc0JvQldCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQmtCe0JzQm9CV0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JzQm9CV0J3QntCS0JjQiyDQnNCY0JvQlQor0JrQntCc0JvQldCd0J7QktCY0Isg0JLQldCJ0JrQngor0JrQntCc0JvQldCd0KHQmtCYINCW0JjQktCQ0J0KK9Ca0J7QnNCb0JXQndCh0JrQmC3QlNCV0JvQmNCLINCS0KPQmtCe0KHQkNCS0JAg0JTQoAor0JrQntCc0JvQldCd0KHQmtCYINCX0J7QoNCQ0J0KK9Ca0J7QnNCJ0JXQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQmtCe0JzQidCV0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQmtCe0JzQidCV0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JzQidCV0J3QntCS0JjQiyDQnNCe0JzQmNCgCivQmtCe0JzQidCV0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ca0J7QnNCJ0JXQndCe0JLQmNCLINCS0JvQkNCU0J4KK9Ca0J7QnNCb0KPQqNCQ0J0g0JHQntCW0JAKK9Ca0J7QnNCb0KPQqNCa0Jgg0JjQktCQ0J3QkCDQnNCgCivQmtCe0JzQndCV0J3QmNCLINCY0JLQkNCd0JrQkAor0JrQntCc0J3QldCd0J7QkiDQqNCQ0KDQm9Ce0KLQkAor0JrQntCc0J3QldCd0J7QkiDQnNCY0JvQntCg0JDQlAor0JrQntCc0J3QldCd0J7QkiDQndCY0JrQntCb0JAKK9Ca0J7QnNCd0JXQndCe0JIg0KHQkNCd0JTQoNCQCivQmtCe0JzQndCV0J3QntCSINCh0KLQkNCd0JjQodCb0JDQkgor0JrQntCc0J3QldCd0J7QkiDQktCV0KHQldCb0JjQndCQCivQmtCe0JzQndCV0J3QntCSINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0JrQntCc0J3QldCd0J7QktCY0Isg0JbQmNCS0JDQnQor0JrQntCc0J3QldCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0JzQndCV0J3QntCS0JjQiyDQlNCV0IjQkNCdCivQmtCe0JzQndCV0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Ca0J7QnNCd0JXQndCe0JLQmNCLINCJ0KPQkdCe0IjQlQor0JrQntCc0J3QldCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQntCc0J3QldCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JrQntCc0J3QldCd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQmtCe0JzQndCV0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ca0J7QnNCd0JXQndCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JrQntCc0J7QodCQ0KAg0JHQoNCQ0J3QmtCeCivQmtCe0JzQntCh0JDQoCDQoNCQ0IjQmtCeCivQmtCe0JzQntCX0JXQpiDQgtCe0KDQgtCVCivQmtCe0JzQntCX0JXQpiDQm9CQ0JfQkNCgCivQmtCe0J0g0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Ca0J7QnSDQodCi0JXQktCQ0J0KK9Ca0J7QnSDQotCe0JzQkNCWCivQmtCe0J3Qp9CQ0KAg0JDQndCU0KDQmNCI0JAKK9Ca0J7QndCn0JDQoCDQkdCe0KHQmNCJ0JrQkAor0JrQntCd0KfQkNCgINCI0J7QktCeCivQmtCe0J3Qp9CQ0KAg0JvQkNCU0JjQodCb0JDQkgor0JrQntCd0KfQkNCgINCc0JjQoNCQCivQmtCe0J3Qp9CQ0KAg0JzQmNCi0JDQoAor0JrQntCd0KfQkNCgINCd0JjQmtCe0JvQkAor0JrQntCd0KfQkNCgINCd0JjQmtCe0JvQkAor0JrQntCd0KfQkNCgINCg0JDQndCa0J4KK9Ca0J7QndCn0JDQoCDQodCb0JDQktCa0J4KK9Ca0J7QndCn0JDQoCDQl9Ce0KDQkAor0JrQntCd0KfQkNCgINCX0J7QoNCQCivQmtCe0J3Qp9CQ0KDQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0J7QndCn0JDQoNCV0JLQmNCLINCY0JvQmNCI0JAKK9Ca0J7QndCn0JXQmiDQoNCe0JfQkNCb0JjQiNCQCivQmtCe0J3QkNCa0J7QkiDQndCV0JTQldCJ0JrQngor0JrQntCd0KYg0KjQkNCd0JTQntCgCivQmtCe0J3QpiDQmNCo0KLQktCQ0J0KK9Ca0J7QndCmINCY0JvQntCd0JAKK9Ca0J7QndCmINCJ0JjQidCQ0J3QkAor0JrQntCd0KYg0JfQntCg0JDQndCa0JAKK9Ca0J7QndCU0JDQnSDQnNCQ0KDQk9CQ0KDQldCi0JAKK9Ca0J7QndCU0JjQiyDQkNCd0JAKK9Ca0J7QndCU0JjQiyDQkNCd0JrQkAor0JrQntCd0JTQmNCLINCR0KDQkNCd0JrQngor0JrQntCd0JTQmNCLINCU0KDQkNCT0JDQnQor0JrQntCd0JTQmNCLINCU0KDQkNCT0JjQptCQCivQmtCe0J3QlNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JrQntCd0JTQmNCLINCU0KPQqNCQ0J3QmtCQCivQmtCe0J3QlNCY0Isg0IjQntCS0JDQnQor0JrQntCd0JTQmNCLINCJ0KPQkdCY0KbQkAor0JrQntCd0JTQmNCLINCc0JjQm9CV0J3QmtCeCivQmtCe0J3QlNCY0Isg0JzQmNCg0JAKK9Ca0J7QndCU0JjQiyDQndCV0JHQntCI0KjQkAor0JrQntCd0JTQmNCLINCd0JXQnNCQ0IrQkAor0JrQntCd0JTQmNCLINCd0JjQmtCe0JvQkAor0JrQntCd0JTQmNCLINCd0JjQmtCe0JvQkAor0JrQntCd0JTQmNCLINCg0JDQlNCc0JjQm9CQCivQmtCe0J3QlNCY0Isg0KDQkNCU0J7QiNCa0JAKK9Ca0J7QndCU0JjQiyDQoNCQ0IjQmtCeCivQmtCe0J3QlNCY0Isg0KHQkNCd0JTQoNCQCivQmtCe0J3QlNCY0Isg0KLQoNCY0JLQngor0JrQntCd0JTQmNCLINCX0JTQoNCQ0JLQmtCeCivQmtCe0J3QlNCY0Isg0JfQntCg0JrQkAor0JrQntCd0JTQntCI0JDQndCYINCC0J7QoNCC0JUKK9Ca0J7QndCU0KDQkNCaINCh0KLQntCI0JDQnQor0JrQntCd0JTQoNCQ0KLQiNCV0JIg0KjQotCV0KTQkNCd0JjQiNCQCivQmtCe0J3QldCn0J3QmCDQnNCQ0KDQmNCI0JAKK9Ca0J7QndCV0KbQmtCYINCX0JvQkNCi0JrQngor0JrQntCd0JXQptCa0Jgg0JfQm9CQ0KLQmtCeCivQmtCe0J3QldCdINCg0J7QkdCV0KDQogor0JrQntCd0JXQnSDQoNCe0JHQldCg0KIKK9Ca0J7QndCV0KHQmtCQINCJ0JjQidCQ0J3QkAor0JrQntCd0JPQniDQktCV0KDQkAor0JrQntCK0JDQotCY0Isg0KjQmNCc0J4KK9Ca0J7QitCV0JLQmNCLINCW0JjQktCQINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQmtCe0IrQldCS0JjQiyDQkNCd0JAKK9Ca0J7QitCV0JLQmNCLINCU0JDQndCY0JvQngor0JrQntCK0JXQktCY0Isg0JTQntCR0KDQmNCS0J7QiAor0JrQntCK0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JrQntCK0JXQktCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0JrQntCK0JXQktCY0Isg0JjQktCQ0J3QmtCQCivQmtCe0IrQldCS0JjQiyDQnNCY0JvQldCS0JAKK9Ca0J7QitCV0JLQmNCLINCc0JjQm9CY0JLQntCICivQmtCe0IrQldCS0JjQiyDQnNCb0JDQgtCV0J0KK9Ca0J7QitCV0JLQmNCLINCc0JvQkNCU0JXQnQor0JrQntCK0JXQktCY0Isg0J3QldCd0JDQlAor0JrQntCK0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ca0J7QitCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQmtCe0IrQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JrQntCK0JXQktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCe0IrQldCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ca0J7QitCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JrQntCK0JjQmiDQndCQ0JTQkAor0JrQntCK0JjQmiDQktCY0JTQntCI0JUKK9Ca0J7QitCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQntCK0J7QktCY0Isg0IjQntCS0JDQnQor0JrQntCK0J7QktCY0Isg0JzQkNCa0KHQmNCcCivQmtCe0IrQntCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0IrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQntCK0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCe0IrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9Ca0J7QitCe0JLQmNCLINCh0JzQmNCJ0JAKK9Ca0J7QitCe0JLQmNCLINCh0J7QpNCY0IjQkAor0JrQntCK0J7QktCY0Isg0KLQmNCd0JrQkAor0JrQntCK0J7QktCY0Isg0JLQldCg0JAKK9Ca0J7QndCa0J7QmyDQnNCY0KXQkNCI0JvQngor0JrQntCd0JrQntCJINCc0JDQoNCY0IjQkAor0JrQntCd0J7Qn9CV0Jog0KHQotCQ0J3QmNCc0JjQoAor0JrQntCd0KDQkNCUINCk0KDQkNCK0JAKK9Ca0J7QndCg0JDQlCDQnNCY0KDQp9CQCivQmtCe0J3QoNCQ0JQg0J/QkNCS0JvQlQor0JrQntCd0KHQotCQ0J3QotCY0J0g0JHQo9Cl0JAKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0JjQlNCY0KEg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCe0J3QodCi0JDQndCi0JjQndCY0JTQmNChINCT0JXQntCg0JPQmNCe0KEKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0JjQlNCY0KEg0KLQldCe0JTQntCgCivQmtCe0J3QodCi0JDQndCi0JjQndCY0JTQoyDQodCe0KTQmNCI0JAKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0J7QktCY0Isg0JDQndCC0JXQm9CY0IjQkAor0JrQntCd0KHQotCQ0J3QotCY0J3QntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JrQntCd0KHQotCQ0J3QotCY0J3QntCS0JjQiyDQpdCV0KDQnNCY0J3QkAor0JrQntCd0KHQotCQ0J3QotCY0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ca0J7QndCh0KLQkNCd0KLQmNCd0J7QktCY0Isg0IjQntCg0JTQkNCdCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ca0J7QndCh0KLQkNCd0KLQmNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCb0KPQmtCQCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQntCd0KHQotCQ0J3QotCY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCS0JXQoNCQCivQmtCe0J3QodCi0JDQndCi0JjQndCe0JLQmNCLINCX0JLQntCd0JjQnNCY0KAKK9Ca0J7QndCi0JjQiyDQlNCe0JHQoNCY0JLQntCICivQmtCe0J3QotCY0Isg0IjQntCS0JDQndCa0JAKK9Ca0J7QndCi0JjQiyDQnNCY0JvQkNCdCivQmtCe0J3QotCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ca0J7QndCi0KDQmNCLINCI0J7QktCQ0J0KK9Ca0J7Qn9Cn0JDQndCh0JrQmCDQltCV0InQmtCeCivQmtCe0J/Qp9CQ0J3QodCa0Jgg0JjQoNCY0J3QkAor0JrQntCf0KfQkNCd0KHQmtCYINCd0JjQmtCe0JvQkAor0JrQntCf0KfQkNCd0KHQmtCYINCf0JXQotCQ0KAKK9Ca0J7Qn9Cn0JDQndCh0JrQmCDQoNCQ0JTQnNCY0JvQkAor0JrQntCf0KfQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0JrQntCf0KfQkNCd0KHQmtCYINCS0JvQkNCU0JAKK9Ca0J7Qn9Cn0J7QmiDQkNCd0JAKK9Ca0J7Qn9Cn0J7QmiDQmtCQ0KLQmNCm0JAKK9Ca0J7Qn9Cn0J7QmiDQnNCY0KjQkAor0JrQntCf0KfQntCaINCh0JDQndCU0KDQkAor0JrQntCf0JDQitCQINCU0JDQndCY0JvQngor0JrQntCf0JDQitCQINCU0KDQkNCT0J7QnNCY0KAKK9Ca0J7Qn9CQ0IrQkCDQlNCj0KjQkNCdCivQmtCe0J/QkNCK0JAg0JTQo9Co0JDQnQor0JrQntCf0JDQitCQINCT0J7QiNCa0J4KK9Ca0J7Qn9CQ0IrQkCDQk9Ce0IjQmtCeCivQmtCe0J/QkNCK0JAg0JjQm9CY0IjQkAor0JrQntCf0JDQitCQINCJ0KPQn9Ca0J4KK9Ca0J7Qn9CQ0IrQkCDQnNCY0IvQngor0JrQntCf0JDQitCQINCc0JjQntCU0KDQkNCTCivQmtCe0J/QkNCK0JAg0JzQmNCi0JDQoAor0JrQntCf0JDQitCQINCg0JDQndCY0KHQm9CQ0JIKK9Ca0J7Qn9CQ0IrQkCDQoNCe0KHQkAor0JrQntCf0JDQitCQINCS0JjQlAor0JrQntCf0JDQoSDQiNCQ0J3QntCoCivQmtCe0J/QldCg0JXQpiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCf0JXQoNCV0KYg0JDQndCU0KDQmNCI0JAKK9Ca0J7Qn9CV0KDQldCmINCI0JDQndCe0KgKK9Ca0J7Qn9CV0KDQldCmINCI0J7QktCQ0J0KK9Ca0J7Qn9CV0KDQldCmINCh0KLQldCS0JDQnQor0JrQntCf0JXQoNCV0KYg0KHQotCV0JLQkNCdCivQmtCe0J/QldCh0KLQldCd0KHQmtCYINCa0JDQotCY0KbQkAor0JrQntCf0JXQodCi0JjQndCh0JrQmNCIINCg0JXQk9CY0J3QkAor0JrQntCf0JjQiyDQmNCb0J7QndCQCivQmtCe0J/QmNCm0Jsg0KDQo9CU0J7Qm9CkCivQmtCe0J/QmNCb0J7QktCY0Isg0IjQntCh0JjQnwor0JrQntCf0JjQm9Ce0JLQmNCLINCc0JDQoNCT0JAKK9Ca0J7Qn9CY0JvQntCS0JjQiy3QnNCY0IjQkNCi0J7QkiDQlNCg0JDQk9CY0KbQkAor0JrQntCf0JjQm9Ce0JLQmNCLINCf0JDQktCb0JUKK9Ca0J7Qn9CY0KLQntCS0JjQiyDQqNCf0JjQoNCeCivQmtCe0J/QmNCi0J7QktCY0Isg0J/QldCi0JDQoAor0JrQntCf0JvQkNCK0Jgg0JzQkNCg0JjQiNCQCivQmtCe0J/Qm9CQ0IrQmCDQnNCY0KDQntCh0JvQkNCS0JAKK9Ca0J7Qn9Cb0JjQiyDQgtCe0KDQgtCVCivQmtCe0J/Qm9CY0Isg0JTQkNCd0JjQptCQCivQmtCe0J/Qm9CY0Isg0JTQo9Co0JDQnQor0JrQntCf0JvQmNCLINCc0JjQm9CVCivQmtCe0J/QoNCV0J3QntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0JrQntCf0KDQmNCS0KjQldCaINCX0JLQntCd0JjQnNCY0KAKK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQkNCd0JPQldCb0JjQndCQCivQmtCe0J/QoNCY0JLQmNCm0JAg0JHQntCW0JjQlNCQ0KAKK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQkdCe0JbQmNCU0JDQoAor0JrQntCf0KDQmNCS0JjQptCQINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQk9Ce0KDQlNCQ0J3QkAor0JrQntCf0KDQmNCS0JjQptCQINCJ0JjQidCQ0J3QkAor0JrQntCf0KDQmNCS0JjQptCQINCc0JjQm9CV0J3QmtCeCivQmtCe0J/QoNCY0JLQmNCm0JAg0JzQmNCb0KPQotCY0J0KK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQnNCY0J7QlNCg0JDQkwor0JrQntCf0KDQmNCS0JjQptCQINCd0J7QktCQ0JoKK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQntCR0KDQldCdCivQmtCe0J/QoNCY0JLQmNCm0JAg0J/QldCi0JDQoAor0JrQntCf0KDQmNCS0JjQptCQINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0J7Qn9Cg0JjQktCY0KbQkCDQl9Ce0KDQkNCdCivQmtCe0J/Qo9Cd0J7QktCY0Isg0InQo9CR0JjQptCQCivQmtCe0KDQp9Ce0Jog0IjQkNCdCivQmtCe0KDQp9Ce0Jog0JzQkNCg0JjQiNCQCivQmtCe0KDQp9Ce0Jog0JLQm9CQ0JTQmNCc0JjQoAor0JrQntCg0JDQiyDQltCV0InQmtCeCivQmtCe0KDQkNCLINCQ0J3QgtCV0JvQmNCI0JAKK9Ca0J7QoNCQ0Isg0JTQo9Co0JDQnQor0JrQntCg0JDQiyDQk9Ce0IjQmtCeCivQmtCe0KDQkNCLINCY0JPQntCgCivQmtCe0KDQkNCLINCI0KPQm9CY0IjQkNCd0JAKK9Ca0J7QoNCQ0Isg0JrQkNCi0JjQptCQCivQmtCe0KDQkNCLINCJ0KPQkdCY0KHQkNCSCivQmtCe0KDQkNCLINCc0JDQndCVCivQmtCe0KDQkNCLINCc0JjQpdCQ0IjQm9CeCivQmtCe0KDQkNCLINCc0JjQm9CQ0J0KK9Ca0J7QoNCQ0Isg0JzQmNCb0JUKK9Ca0J7QoNCQ0Isg0JzQmNCb0JUKK9Ca0J7QoNCQ0Isg0JzQmNCb0JUKK9Ca0J7QoNCQ0Isg0JzQmNCb0JUKK9Ca0J7QoNCQ0Isg0JzQmNCb0J7QktCQ0J0g0JTQoCDQn9Cg0J7QpAor0JrQntCg0JDQiyDQnNCY0JvQntCS0JDQnQor0JrQntCg0JDQiyDQnNCY0JvQntCS0JDQnQor0JrQntCg0JDQiyDQnNCY0J7QlNCg0JDQkwor0JrQntCg0JDQiyDQn9CV0KLQkNCgCivQmtCe0KDQkNCLINCf0JXQotCg0JAKK9Ca0J7QoNCQ0Isg0KDQkNCU0JUKK9Ca0J7QoNCQ0Isg0KDQkNCU0J7QiNCa0JAKK9Ca0J7QoNCQ0Isg0KDQkNCU0J7QiNCa0JAKK9Ca0J7QoNCQ0Isg0KDQkNCU0J7QodCQ0JIKK9Ca0J7QoNCQ0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCg0JDQiyDQodCd0JXQltCQ0J3QkAor0JrQntCg0JDQiyDQotCQ0KLQiNCQ0J3QkAor0JrQntCg0JDQiyDQktCb0JDQlNCeCivQmtCe0KDQkNCI0JjQptCQINCC0KPQoNCQCivQmtCe0KDQkNCI0JvQmNCI0JAg0JbQkNCg0JrQngor0JrQntCg0JDQiNCb0JjQiNCQINCW0JDQoNCa0J4KK9Ca0J7QoNCQ0IjQm9CY0IjQkCDQltCQ0KDQmtCeCivQmtCe0KDQkNCI0JvQmNCI0JAg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCe0KDQkNCI0JvQmNCI0JAg0JzQmNCb0JDQnQor0JrQntCg0JDQmtCjINCb0KPQp9CY0IjQkNCdCivQmtCe0KDQkNCa0KMg0JvQo9Cm0JjQiNCQ0J0KK9Ca0J7QoNCR0JDQotCk0JjQndCh0JrQmCDQldCb0JLQmNCg0JAKK9Ca0J7QoNCR0JDQotCk0JjQndCh0JrQmCDQktCY0JrQotCe0KAg0JTQoAor0JrQntCg0JHQkNCi0JLQmNCd0KHQmtCYINCU0KDQkNCT0JDQnQor0JrQntCg0JHQkNCi0JLQmNCd0KHQmtCYLdCb0JDQm9Ce0KjQldCS0JjQiyDQl9Cb0JDQotCQCivQmtCe0KDQkdCY0Isg0JzQm9CQ0JTQldCdCivQmtCe0KDQlNCQINCc0JjQm9Ce0KgKK9Ca0J7QoNCU0JAg0J3QkNCd0JTQntCgCivQmtCe0KDQlNCY0Isg0ILQo9Cg0JAKK9Ca0J7QoNCU0JjQiyDQkdCe0IjQkNCdCivQmtCe0KDQlNCY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0J7QoNCU0JjQiyDQk9Ce0IjQmtCeCivQmtCe0KDQlNCY0Isg0JzQmNCb0JDQnQor0JrQntCg0JXQndCY0Isg0JPQkNCR0KDQmNCV0JsKK9Ca0J7QoNCV0J3QmNCLINCi0JXQntCU0J7QoAor0JrQntCg0JXQitCYINCC0J7QoNCC0JUKK9Ca0J7QoNCV0IrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCg0JXQitCYINCb0JDQodCb0J4KK9Ca0J7QoNCV0J3QoiDQm9Cj0JTQktCY0JMKK9Ca0J7QoNCl0JDQnNCV0KAg0KTQldCg0JXQndCmCivQmtCe0KDQpdCV0KYg0J/QkNCS0JvQlQor0JrQntCg0JjQqCDQiNCj0JvQmNCI0JDQndCQCivQmtCe0KDQmNCL0JDQndCQ0KYg0JjQktCQ0J0KK9Ca0J7QoNCY0IvQkNCd0JDQpiDQidCj0JHQmNCd0JrQkAor0JrQntCg0JjQliDQkNCg0J/QkNCUCivQmtCe0KDQmNCm0JAg0ILQntCg0ILQlQor0JrQntCg0JjQptCQINCC0KPQoNCeCivQmtCe0KDQmNCm0JAg0JTQo9Co0JDQnQor0JrQntCg0JjQptCQINCI0JDQndCa0J4KK9Ca0J7QoNCY0KbQkCDQnNCY0JvQntCg0JDQlAor0JrQntCg0JjQptCQINCd0JXQlNCV0InQmtCeCivQmtCe0KDQmNCm0JAg0J3QmNCa0J7Qm9CQCivQmtCe0KDQmNCm0JAg0J/QldCi0JDQoAor0JrQntCg0JjQptCQINCh0J3QldCW0JDQndCQCivQmtCe0KDQmNCm0JAg0KHQntCk0JjQiNCQCivQmtCe0KDQmNCm0JAg0KHQotCV0JLQkNCdCivQmtCe0KDQmNCh0KLQntCS0JjQiyDQnNCY0JrQodCQ0KDQlAor0JrQntCg0JvQkNCiINCf0JXQoNCY0KbQkAor0JrQntCg0JvQkNCiINCf0JXQotCQ0KAKK9Ca0J7QoNCc0JDQitCe0Kgg0KjQkNCd0JTQntCgCivQmtCe0KDQnNCQ0IrQntCoINCQ0J3QlNCg0JjQiNCQCivQmtCe0KDQnNCQ0IrQntCoINCR0J7QoNCa0JAKK9Ca0J7QoNCc0JDQitCe0Kgg0KTQldCg0JXQndCmCivQmtCe0KDQnNCQ0IrQntCoINCa0JDQoNCe0IkKK9Ca0J7QoNCc0JDQitCe0Kgg0JzQmNCl0JDQiQor0JrQntCg0JzQntCoINCI0JDQndCe0KgKK9Ca0J7QoNCc0J7QqCDQnNCQ0KDQk9CY0KLQkAor0JrQntCg0JzQntCoINCc0JDQoNCT0JjQotCQCivQmtCe0KDQnNCe0Kgg0JzQkNCg0JjQiNCQCivQmtCe0KDQnNCe0Kgg0KLQldCg0JXQl9CQCivQmtCe0KDQntCoINCg0JDQodCi0JjQodCb0JDQkgor0JrQntCg0J7QqCDQktCb0JDQlNCQCivQmtCe0KDQntCo0JDQnSDQqNCQ0J3QlNCe0KAKK9Ca0J7QoNCe0KjQldCmINCb0JXQngor0JrQntCg0J7QkdCa0J4g0KLQkNCg0JDQoQor0JrQntCg0J7QlNCYINCk0KDQkNCK0JAKK9Ca0J7QoNCe0JrQndCQ0Jgg0KTQldCg0JXQndCmCivQmtCe0KDQntCa0J3QkNCYINCI0JDQndCe0KgKK9Ca0J7QoNCe0JrQndCQ0Jgg0JfQntCb0KLQkNCdCivQmtCe0KDQntCb0JjQiNCQINCU0KPQqNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQmtCe0KDQntCb0JjQiNCQINCU0KPQqNCQ0J0KK9Ca0J7QoNCe0JvQmNCI0JAg0KHQotCV0JLQkNCdINCU0KAKK9Ca0J7QoNCe0JvQmNCI0JAg0JLQldCg0JAKK9Ca0J7QoNCe0Jwg0JXQoNCW0JXQkdCV0KIKK9Ca0J7QoNCe0Jwg0KLQmNCR0J7QoAor0JrQntCg0J7QnNCQ0J0g0JzQmNCb0J7QoNCQ0JQKK9Ca0J7QoNCe0JIg0ILQntCg0ILQlQor0JrQntCg0J7QktCJ0JXQkiDQmNCS0JDQnQor0JrQntCg0J7QktCJ0JXQkiDQiNCe0JLQkNCd0JrQkAor0JrQntCg0J7QktCJ0JXQkiDQnNCQ0KDQmNCI0JAKK9Ca0J7QoNCe0JLQidCV0JIg0JzQmNCb0JXQndCa0J4KK9Ca0J7QoNCe0JLQidCV0JIg0JzQmNCb0J7QqAor0JrQntCg0J7QktCJ0JXQkiDQoNCQ0JTQnNCY0JvQkAor0JrQntCg0J7QktCJ0JXQkiDQktCj0JrQmNCm0JAKK9Ca0J7QoNCf0JAg0JHQldCb0JAKK9Ca0J7QoNCf0JDQqCDQkNCc0JDQm9CY0IjQkAor0JrQntCg0J/QkNCoINCU0JDQndCY0KbQkAor0JrQntCg0J/QkNCoINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQntCg0J/QkNCoINCI0JDQndCa0J4KK9Ca0J7QoNCf0JDQqCDQnNCY0KDQntCh0JvQkNCSCivQmtCe0KDQn9CQ0Kgg0JzQmNCg0J7QodCb0JDQkgor0JrQntCg0J/QkNCoINCf0JXQoNCQCivQmtCe0KDQn9CQ0Jog0JTQoNCQ0JPQmNCK0JAKK9Ca0J7QoNCf0JDQmiDQndCQ0JTQkAor0JrQntCg0J/QntCd0JDQmCDQmNCo0KLQktCQ0J0KK9Ca0J7QoNCf0J7QndCQ0Jgg0JzQkNCg0JjQiNCQCivQmtCe0KDQo9CT0JAg0JHQntCg0JAKK9Ca0J7QoNCj0JPQkCDQiNCj0JvQmtCQCivQmtCe0KDQo9CT0JAg0KDQkNCU0J7QnNCY0KAKK9Ca0J7QoNCj0J3QmNCLINCb0JjQl9CQCivQmtCe0KEg0JjQlNCQCivQmtCe0KEg0JzQkNCg0JjQiNCQCivQmtCe0KEg0KHQm9CQ0JLQmtCeCivQmtCe0KEg0KHQm9CQ0JLQmtCeCivQmtCe0KEg0KHQotCQ0J3QmtCeCivQmtCe0KHQkNCLINCU0JDQoNCY0J3QmtCQCivQmtCe0KHQkNCd0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0J7QodCQ0J3QmNCLINCY0JLQkNCd0JrQkAor0JrQntCh0JDQndCY0Isg0KHQkNCS0JAKK9Ca0J7QodCQ0J3QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0KHQkNCd0J7QkiDQmtCQ0KLQmNCm0JAKK9Ca0J7QodCQ0J3QntCSINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JrQntCh0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQnSDQnNCgCivQmtCe0KHQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0KHQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQmtCe0KHQkNCd0J7QktCY0Isg0JTQkNCd0JUKK9Ca0J7QodCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J7QodCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JrQntCh0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QodCQ0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQmtCe0KHQkNCd0J7QktCY0Isg0JrQntCh0JDQndCQCivQmtCe0KHQkNCd0J7QktCY0Isg0JvQkNCX0J4KK9Ca0J7QodCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoCDQlNCgCivQmtCe0KHQkNCd0J7QktCY0Ist0JzQkNCd0JTQmNCLINCd0JXQndCQCivQmtCe0KHQkNCd0J7QktCY0Isg0JzQkNCd0JUKK9Ca0J7QodCQ0J3QntCS0JjQiyDQnNCQ0KDQmtCeCivQmtCe0KHQkNCd0J7QktCY0Isg0JzQmNCL0J4KK9Ca0J7QodCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0KHQkNCd0J7QktCY0Isg0JzQmNCb0JUKK9Ca0J7QodCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQntCh0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Ca0J7QodCQ0J3QntCS0JjQiyDQnNCY0KLQkNCgCivQmtCe0KHQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQmtCe0KHQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQntCb0JPQkAor0JrQntCh0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ca0J7QodCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JrQntCh0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JrQntCh0JDQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0JrQntCh0JDQndCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQmtCe0KHQkNCd0J7QktCY0Isg0JfQntCg0JjQptCQCivQmtCe0KHQkNCg0JXQndCa0J4g0J/QldCi0JDQoAor0JrQntCh0JXQlNCd0JDQoCDQodCi0IjQldCf0JDQnQor0JrQntCh0JjQiyDQltCQ0KDQmtCeCivQmtCe0KHQmNCLINCW0JDQoNCa0J4KK9Ca0J7QodCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ca0J7QodCY0Isg0JHQmNCJ0JDQndCQCivQmtCe0KHQmNCLINCR0J7QiNCQ0J0KK9Ca0J7QodCY0Isg0JHQntCg0JrQngor0JrQntCh0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0J7QodCY0Isg0JPQntCg0JDQnQor0JrQntCh0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQntCh0JjQiyDQmNCS0JDQnQor0JrQntCh0JjQiyDQiNCV0JvQmNCm0JAKK9Ca0J7QodCY0Isg0IjQntCS0JjQptCQCivQmtCe0KHQmNCLINCb0KPQmtCQCivQmtCe0KHQmNCLINCc0JDQoNCY0IjQkAor0JrQntCh0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQntCh0JjQiyDQnNCY0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0JrQntCh0JjQiyDQndCV0JTQldCJ0JrQngor0JrQntCh0JjQiyDQoNCj0JbQkAor0JrQntCh0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmtCe0KHQmNCLINCi0J7QnNCQCivQmtCe0KHQmNCLINCX0J7QoNCY0KbQkAor0JrQntCh0JjQndCQINCc0JjQm9CY0KbQkAor0JrQntCh0JjQoNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JrQntCh0JjQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QodCY0KDQntCS0JjQiyDQn9CQ0J3QotCV0JvQmNCI0JAKK9Ca0J7QodCI0JXQoCDQlNCj0KjQkNCdCivQmtCe0KHQiNCV0KDQmNCd0JAg0JzQmNCb0JXQndCa0J4KK9Ca0J7QodCa0JAg0JDQotCc0JDQndCQCivQmtCe0KHQmtCQINCl0JDQotCY0I/QlQor0JrQntCh0JrQkCDQiNCQ0KHQnNCY0JTQmNCdCivQmtCe0KHQmtCQINCJ0JXQoNCa0JAKK9Ca0J7QodCa0JAg0JzQmNCb0JXQndCQCivQmtCe0KHQmtCQINCd0JDQlNCV0JbQlNCQCivQmtCe0KHQmtCQINCh0JDQpNCV0KIKK9Ca0J7QodCa0JAg0KHQkNCb0JgKK9Ca0J7QodCc0JDQiNCQ0KYg0ILQntCg0ILQlQor0JrQntCh0JzQkNCI0JDQpiDQkNCd0JjQptCQCivQmtCe0KHQniDQkdCe0KHQmNCJ0JrQkAor0JrQntCh0J4g0KTQoNCQ0IrQngor0JrQntCh0J4g0JzQmNCl0JDQiQor0JrQntCh0J4g0J7Qm9CY0JLQldCg0JAKK9Ca0J7QodCeINCf0JDQmwor0JrQntCh0J7QoNCj0Kgg0ILQo9Cg0JAKK9Ca0J7QodCe0KDQo9CoINCV0KLQldCb0JrQkAor0JrQntCh0J7QoNCj0Kgg0J/QldCi0JXQoAor0JrQntCh0J7QktCQ0KYg0KfQldCU0JAKK9Ca0J7QodCe0JLQkNCmINCW0JjQktCa0J4KK9Ca0J7QodCe0JLQkNCmINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9Ca0J7QodCe0JLQkNCmINCR0J7QiNCQ0J0KK9Ca0J7QodCe0JLQkNCmINCR0J7QiNCQ0J0KK9Ca0J7QodCe0JLQkNCmINCU0JDQoNCa0J4KK9Ca0J7QodCe0JLQkNCmINCU0KDQkNCT0JDQnQor0JrQntCh0J7QktCQ0KYg0JTQo9Co0JDQnQor0JrQntCh0J7QktCQ0KYg0JPQldCe0KDQk9CY0IjQlQor0JrQntCh0J7QktCQ0KYg0JPQntCI0JrQngor0JrQntCh0J7QktCQ0KYg0IjQo9Cb0JjQiNCQ0J3QkAor0JrQntCh0J7QktCQ0KYg0JzQmNCb0JDQnQor0JrQntCh0J7QktCQ0KYg0JzQmNCb0JDQnQor0JrQntCh0J7QktCQ0KYg0JzQmNCg0JrQngor0JrQntCh0J7QktCQ0KYg0J3QmNCa0J7Qm9CQCivQmtCe0KHQntCS0JDQpiDQoNCQ0JTQmNCS0J7QiAor0JrQntCh0J7QktCQ0KYg0JfQlNCg0JDQktCa0J4KK9Ca0J7QodCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQmtCe0KHQntCS0JjQiyDQkNCd0JrQmNCm0JAKK9Ca0J7QodCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCe0KHQntCS0JjQiyDQntCb0JPQkCDQn9Cg0J7QpNCV0KHQntCgCivQmtCe0KHQntCS0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQmtCe0KHQntCS0JjQiyDQoNCQ0KLQmtCeCivQmtCe0KHQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ca0J7QodCe0JLQoNCQ0KHQotCYINCQ0I/QmAor0JrQntCh0KLQkNCU0JjQndCe0KHQmtCYINCR0JvQkNCT0J7QiNCVCivQmtCe0KHQotCQ0JTQmNCd0J7QkiDQoNCY0KHQotCQCivQmtCe0KHQotCQ0JTQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCe0KHQotCQ0JTQmNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JrQntCh0KLQkNCU0JjQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JrQntCh0KLQkNCU0JjQndCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQmtCe0KHQotCQ0JTQmNCd0J7QktCY0Isg0JLQldCg0JAKK9Ca0J7QodCi0JDQlNCY0J3QntCS0JjQiyDQktCV0KDQmNCm0JAKK9Ca0J7QodCi0JDQlNCY0J3QntCS0JjQiyDQktCj0JrQkNCdCivQmtCe0KHQotCQ0JTQmNCd0J7QktCh0JrQmCDQlNCY0JzQp9CVCivQmtCe0KHQotCV0JvQndCY0Jog0J3QldCh0KLQntCgCivQmtCe0KHQotCV0JvQndCY0Jog0KHQmNCb0JLQldCh0KLQldCgCivQmtCe0KHQotCV0JLQodCa0Jgg0JjQktCQ0J0KK9Ca0J7QodCi0JjQiy3QqNCe0JHQntCiINCc0JjQm9Ca0JAKK9Ca0J7QodCi0JjQiyDQltCQ0KDQmtCeCivQmtCe0KHQotCY0Isg0JbQldCJ0JrQngor0JrQntCh0KLQmNCLINCW0JjQktCe0IjQmNCdCivQmtCe0KHQotCY0Isg0ILQntCg0ILQlQor0JrQntCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0J7QodCi0JjQiyDQgtCe0KDQgtCVCivQmtCe0KHQotCY0Isg0ILQntCg0ILQlQor0JrQntCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0J7QodCi0JjQiyDQgtCj0KDQgtCY0KbQkAor0JrQntCh0KLQmNCLINCQ0KbQkAor0JrQntCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0KHQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QodCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQmtCe0KHQotCY0Isg0JDQndCQCivQmtCe0KHQotCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JrQntCh0KLQmNCLINCQ0J3QmtCY0KbQkAor0JrQntCh0KLQmNCLINCR0J7QltCY0JTQkNCgCivQmtCe0KHQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ca0J7QodCi0JjQiyDQkdCe0JPQntCJ0KPQkQor0JrQntCh0KLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Ca0J7QodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0J7QodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0J7QodCi0JjQiyDQkdCg0JDQndCa0J4KK9Ca0J7QodCi0JjQiyDQlNCQ0J3QmNCb0J4KK9Ca0J7QodCi0JjQiyDQlNCV0IjQkNCdCivQmtCe0KHQotCY0Isg0JTQldCh0JDQndCa0JAKK9Ca0J7QodCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0J7QodCi0JjQiyDQlNCg0JDQk9CQCivQmtCe0KHQotCY0Isg0JTQoNCQ0JPQkAor0JrQntCh0KLQmNCLINCU0KDQkNCT0JjQptCQCivQmtCe0KHQotCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ca0J7QodCi0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQntCh0KLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ca0J7QodCi0JjQiyDQlNCj0KjQkNCdCivQmtCe0KHQotCY0Isg0JTQo9Co0JDQnQor0JrQntCh0KLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QodCi0JjQiyDQldCb0JXQntCd0J7QoNCQCivQmtCe0KHQotCY0Isg0JPQldCe0KDQk9CY0J3QkAor0JrQntCh0KLQmNCLINCT0JvQmNCo0JAKK9Ca0J7QodCi0JjQiyDQk9Ce0JvQo9CRCivQmtCe0KHQotCY0Isg0JPQntCg0JTQkNCd0JAKK9Ca0J7QodCi0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQmtCe0KHQotCY0Isg0JjQktCQ0J0KK9Ca0J7QodCi0JjQiyDQmNCS0JDQnQor0JrQntCh0KLQmNCLINCI0JXQm9CV0J3QkAor0JrQntCh0KLQmNCLINCI0JXQm9CY0KbQkAor0JrQntCh0KLQmNCLINCI0JXQm9CY0KbQkAor0JrQntCh0KLQmNCLINCI0J7QoNCU0JDQndCa0JAKK9Ca0J7QodCi0JjQiyDQiNCe0JLQkNCdCivQmtCe0KHQotCY0Isg0IjQntCS0JDQnQor0JrQntCh0KLQmNCLINCI0J7QktCQ0J0KK9Ca0J7QodCi0JjQiyDQiNCe0JLQkNCdCivQmtCe0KHQotCY0Isg0IjQntCS0JDQnQor0JrQntCh0KLQmNCLINCa0KDQodCc0JDQnQor0JrQntCh0KLQmNCLINCa0KDQodCi0JAKK9Ca0J7QodCi0JjQiyDQidCY0InQkNCd0JAKK9Ca0J7QodCi0JjQiyDQidCY0InQkNCd0JAKK9Ca0J7QodCi0JjQiyDQidCj0JHQmNCo0JAKK9Ca0J7QodCi0JjQiyDQidCj0JHQmNCm0JAKK9Ca0J7QodCi0JjQiyDQidCj0JHQmNCm0JAKK9Ca0J7QodCi0JjQiyDQidCj0JHQmNCm0JAKK9Ca0J7QodCi0JjQiyDQnNCQ0JrQodCY0JwKK9Ca0J7QodCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0J7QodCi0JjQiyDQnNCQ0KDQmtCeCivQmtCe0KHQotCY0Isg0JzQldCi0J7QlNCY0IjQlQor0JrQntCh0KLQmNCLINCc0JjQpdCQ0IjQm9CeCivQmtCe0KHQotCY0Isg0JzQmNCb0JDQnQor0JrQntCh0KLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QodCi0JjQiyDQnNCY0JvQldCd0JAg0JTQoAor0JrQntCh0KLQmNCLINCc0JjQm9CV0J3QkAor0JrQntCh0KLQmNCLINCc0JjQm9CV0JLQkAor0JrQntCh0KLQmNCLINCc0JjQm9CY0KbQkAor0JrQntCh0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCe0KHQotCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ca0J7QodCi0JjQiyDQnNCY0JvQo9Co0JAKK9Ca0J7QodCi0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQntCh0KLQmNCLINCc0JjQoNCa0J4KK9Ca0J7QodCi0JjQiyDQnNCe0IjQodCVCivQmtCe0KHQotCY0Isg0J3QkNCU0JAKK9Ca0J7QodCi0JjQiyDQndCQ0JTQkAor0JrQntCh0KLQmNCLINCd0JjQmtCe0JvQkAor0JrQntCh0KLQmNCLINCd0JjQmtCe0JvQkAor0JrQntCh0KLQmNCLINCe0JvQmNCS0JXQoNCQCivQmtCe0KHQotCY0Isg0J/QkNCS0JvQlQor0JrQntCh0KLQmNCLINCf0JXQotCQ0KAKK9Ca0J7QodCi0JjQiyDQn9CV0KLQkNCgCivQmtCe0KHQotCY0Isg0J/QldCi0JDQoAor0JrQntCh0KLQmNCLINCf0JXQotCQ0KAKK9Ca0J7QodCi0JjQiyDQn9CV0KLQkNCgCivQmtCe0KHQotCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0JrQntCh0KLQmNCLINCg0JDQlNCe0IjQmtCeCivQmtCe0KHQotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ca0J7QodCi0JjQiyDQoNCQ0JTQntCh0JDQkgor0JrQntCh0KLQmNCLINCg0JDQotCa0J4KK9Ca0J7QodCi0JjQiyDQoNCj0JbQmNCm0JAKK9Ca0J7QodCi0JjQiyDQodCQ0JLQkAor0JrQntCh0KLQmNCLINCh0JDQktCQCivQmtCe0KHQotCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ca0J7QodCi0JjQiyDQodCb0JDQktCa0JAKK9Ca0J7QodCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0KHQotCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCh0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7QodCi0JjQiyDQodCd0JXQltCQ0J3QkAor0JrQntCh0KLQmNCLINCh0J/QkNCh0JXQndCa0J4KK9Ca0J7QodCi0JjQiyDQodCg0JXQotCV0J0KK9Ca0J7QodCi0JjQiyDQodCi0JDQndCQCivQmtCe0KHQotCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JrQntCh0KLQmNCLINCh0KLQkNCd0JrQngor0JrQntCh0KLQmNCLINCh0KLQkNCX0JAKK9Ca0J7QodCi0JjQiyDQodCi0JXQktCQ0J0KK9Ca0J7QodCi0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQmtCe0KHQotCY0Isg0KHQotCg0JDQpdCY0IrQkCDQlNCgINCf0KDQntCkCivQmtCe0KHQotCY0Isg0KHQktCV0KLQmNCh0JvQkNCSINCU0KAKK9Ca0J7QodCi0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ca0J7QodCi0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmtCe0KHQotCY0Isg0KLQmNCR0JXQoNCY0IjQlQor0JrQntCh0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7QodCi0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQmtCe0KHQotCY0Isg0KLQntCc0JjQodCb0JDQkgor0JrQntCh0KLQmNCLINCS0JDQodCeCivQmtCe0KHQotCY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0J7QodCi0JjQiyDQktCV0KDQkAor0JrQntCh0KLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQmtCe0KHQotCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0KHQotCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQmtCe0KHQotCY0Isg0JLQntCI0JjQodCb0JDQkgor0JrQntCh0KLQmNCLINCS0KPQmtCQ0KjQmNCdCivQmtCe0KHQotCY0Isg0JfQlNCg0JDQktCa0J4KK9Ca0J7QodCi0JjQiyDQl9Ce0KDQkNCdCivQmtCe0KHQotCY0Isg0JfQntCg0JDQnQor0JrQntCh0KLQmNCLINCX0J7QoNCQ0J0KK9Ca0J7QodCi0JjQiyDQl9Ce0KDQkNCdCivQmtCe0KHQotCY0Isg0JfQntCg0JDQnQor0JrQntCh0KLQmNCLINCX0J7QoNCY0KbQkAor0JrQntCh0KLQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ca0J7QodCi0J7QktCY0Isg0KDQkNCi0JrQngor0JrQntCh0KLQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JrQntCh0KLQntCS0KHQmtCYINCa0JDQotCY0KbQkAor0JrQntCh0KLQntCS0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QodCi0J7QktCh0JrQmCDQotCg0JDQiNCn0JUKK9Ca0J7QodCi0KDQldCoINCc0J7QnNCn0JjQm9CeCivQmtCe0KHQotCg0JXQqNCV0JLQmNCLINCT0J7QoNCQ0J0KK9Ca0J7QodCi0KDQldCo0JXQktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ca0J7QodCi0KDQldCo0JXQktCY0Isg0J3QldCU0JXQidCa0J4KK9Ca0J7QodCi0KDQldCo0JXQktCY0Isg0KHQotCQ0J3QmtCQCivQmtCe0KHQotCg0JjQp9CV0J3QmtCeINCS0JDQodCY0JvQmNCI0JUKK9Ca0J7QodCi0KPQlNCY0IjQkCDQnNCY0KDQntCh0JvQkNCSCivQmtCe0KIg0JjQm9Ce0J3QkAor0JrQntCiINCI0J7QodCY0J8KK9Ca0J7QoiDQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0KIg0JvQkNCh0JvQngor0JrQntCiINCc0JDQoNCi0JAKK9Ca0J7QoiDQnNCY0KDQkAor0JrQntCiINCc0JjQoNCa0J4KK9Ca0J7QotCQINCV0KDQltCV0JHQldCiCivQmtCe0KLQkCDQm9CQ0IjQntCoCivQmtCe0KLQkCDQnNCY0KXQkNCI0JvQngor0JrQntCi0JDQoNCn0JXQktCY0Isg0JXQm9CS0JjQoNCQCivQmtCe0KLQkNCg0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J7QotCQ0KDQkNCmINCa0JDQotCY0KbQkAor0JrQntCi0JDQoNCQ0KYg0JrQntCh0KLQkAor0JrQntCi0JDQoNCQ0KYg0KHQktCV0KLQmNCh0JvQkNCSCivQmtCe0KLQkNCg0JDQndCY0J0g0InQmNCJ0JDQndCQCivQmtCe0KLQkNCg0JDQndCY0J0g0J/QldCi0JDQoAor0JrQntCi0JDQoNCb0JjQiyDQlNCQ0KDQmtCeCivQmtCe0KLQkNCg0JvQmNCLINCU0KDQkNCT0JDQndCQCivQmtCe0KLQkNCg0JvQmNCLINCh0JDQktCQCivQmtCe0KLQpdCQ0Jgg0JjQqNCi0JLQkNCdCivQmtCe0KLQpdCQ0Jgg0IjQntCW0JXQpAor0JrQntCi0KXQkNCYINCh0KLQldCS0JDQnQor0JrQntCi0KXQkNCIINCh0KLQldCS0JDQnQor0JrQntCi0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmtCe0KLQm9CQ0IjQkCDQnNCY0JvQkNCd0JrQngor0JrQntCi0JvQkNCI0JAg0JzQmNCb0JrQngor0JrQntCi0JvQkNCg0JjQiyDQnNCQ0KDQmtCeINCU0KAKK9Ca0J7QotCb0JDQoNCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JrQntCi0KDQkdCQINCk0KDQkNCK0JAKK9Ca0J7QotCg0JUg0JzQkNCT0JTQntCb0J3QkAor0JrQntCi0KPQqCDQldCg0JbQldCR0JXQogor0JrQntCi0KPQqCDQnNCY0JvQmNCm0JAKK9Ca0J7QotCj0Kgg0JzQmNCg0J7QodCb0JDQkgor0JrQntCi0KPQqCDQodCi0JXQktCQ0J0KK9Ca0J7QotCj0Isg0JzQkNCg0JjQiNCV0KLQkAor0JrQntCi0KPQoCDQkNCd0ILQldCb0JrQkAor0JrQntCi0KPQoCDQlNCg0JDQk9CQ0J0KK9Ca0J7QotCj0KAg0IjQldCb0JAKK9Ca0J7QotCj0KAg0KDQkNCU0JUKK9Ca0J7QotCj0KDQntCSINCd0JDQlNCQCivQmtCe0KLQo9Cg0J7QktCY0Isg0JrQkNCi0JjQptCQCivQmtCe0KPQndCY0KEg0InQmNCJ0JDQndCQCivQmtCe0JLQp9CVINCQ0JzQkNCb0JjQiNCQCivQmtCe0JLQp9CV0JIg0KHQn9CQ0KHQldCd0JrQkAor0JrQntCS0KfQmNCdINCc0JjQm9CY0KbQkAor0JrQntCS0KfQmNCdINCc0JjQm9Ce0JLQkNCdCivQmtCe0JLQp9CY0J0g0JzQmNCg0J7QodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Ca0J7QktCn0JjQnSDQndCV0JPQkAor0JrQntCS0KfQmNCdINCh0KLQkNCd0JjQnNCY0KAg0JTQoAor0JrQntCS0JDQpyDQp9CV0JTQngor0JrQntCS0JDQpyDQqNCQ0J3QlNCe0KAKK9Ca0J7QktCQ0Kcg0KjQkNCd0JTQntCgCivQmtCe0JLQkNCnINCC0J7QoNCC0JUKK9Ca0J7QktCQ0Kcg0ILQntCg0ILQlQor0JrQntCS0JDQpyDQgtCj0JvQkAor0JrQntCS0JDQpyDQgtCj0KDQgtCQCivQmtCe0JLQkNCnLdCQ0Kcg0JrQkNCg0J7QiQor0JrQntCS0JDQpyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCS0JDQpyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCS0JDQpyDQkNCd0JAKK9Ca0J7QktCQ0Kcg0JDQndCQCivQmtCe0JLQkNCnINCQ0J3QlNCg0JDQqAor0JrQntCS0JDQpyDQkNCd0KLQkNCbCivQmtCe0JLQkNCnINCQ0J3QotCe0J0KK9Ca0J7QktCQ0Kcg0JDQoNCf0JDQlAor0JrQntCS0JDQpyDQkNCi0JjQm9CQCivQmtCe0JLQkNCnINCR0JXQm9CQCivQmtCe0JLQkNCnINCR0JXQm9CQCivQmtCe0JLQkNCnLdCR0JjQoNCa0JDQqCDQnNCY0KXQkNCJCivQmtCe0JLQkNCnINCR0J7QoNCY0KEKK9Ca0J7QktCQ0Kcg0JTQldCW0JUKK9Ca0J7QktCQ0Kcg0JTQldCh0JDQndCa0JAKK9Ca0J7QktCQ0Kcg0JTQoNCQ0JPQmNCm0JAg0JzQoAor0JrQntCS0JDQpyDQlNCj0KjQkNCdCivQmtCe0JLQkNCnINCV0KLQldCb0JrQkAor0JrQntCS0JDQpyDQldCi0JXQm9Ca0JAKK9Ca0J7QktCQ0Kcg0KTQldCg0JXQndCmCivQmtCe0JLQkNCnINCk0JXQoNCV0J3Qpgor0JrQntCS0JDQpyDQpNCg0JDQitCQCivQmtCe0JLQkNCnINCk0KDQkNCK0JAKK9Ca0J7QktCQ0Kcg0JPQkNCR0J7QoAor0JrQntCS0JDQpyDQk9CY0JfQldCb0JAKK9Ca0J7QktCQ0Kcg0JjQqNCi0JLQkNCdCivQmtCe0JLQkNCnINCY0KjQotCS0JDQnQor0JrQntCS0JDQpyDQmNCo0KLQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQqNCi0JLQkNCdCivQmtCe0JLQkNCnINCY0KjQotCS0JDQnQor0JrQntCS0JDQpyDQmNCo0KLQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQqNCi0JLQkNCdCivQmtCe0JLQkNCnINCY0KjQotCS0JDQnQor0JrQntCS0JDQpyDQmNCo0KLQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQm9Ce0J3QkAor0JrQntCS0JDQpyDQmNCc0KDQlQor0JrQntCS0JDQpyDQmNCc0KDQlQor0JrQntCS0JDQpyDQmNCc0KDQlQor0JrQntCS0JDQpyDQmNCg0JXQndCQCivQmtCe0JLQkNCnINCY0KDQldCd0JAKK9Ca0J7QktCQ0Kcg0JjQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQktCQ0J0KK9Ca0J7QktCQ0Kcg0JjQktCQ0J0KK9Ca0J7QktCQ0Kcg0IjQkNCa0J7QkQor0JrQntCS0JDQpyDQiNCQ0J3QmtCeCivQmtCe0JLQkNCnINCI0JDQndCe0KgKK9Ca0J7QktCQ0Kcg0IjQkNCd0J7QqAor0JrQntCS0JDQpyDQiNCQ0J3QntCoCivQmtCe0JLQkNCnINCI0JDQndCe0KgKK9Ca0J7QktCQ0Kcg0IjQkNCd0J7QqAor0JrQntCS0JDQpyDQiNCQ0J3QntCoCivQmtCe0JLQkNCnINCI0JDQndCe0KgKK9Ca0J7QktCQ0Kcg0IjQkNCdCivQmtCe0JLQkNCnINCI0JDQnQor0JrQntCS0JDQpyDQiNCV0JvQmNCm0JAKK9Ca0J7QktCQ0Kcg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ca0J7QktCQ0Kcg0IjQntCW0JXQpAor0JrQntCS0JDQpyDQiNCe0JbQldCkCivQmtCe0JLQkNCnINCI0J7QodCY0J8KK9Ca0J7QktCQ0Kcg0IjQntCh0JjQnwor0JrQntCS0JDQpyDQiNCe0KHQmNCfCivQmtCe0JLQkNCnINCI0J7QodCY0J8KK9Ca0J7QktCQ0Kcg0IjQntCS0JDQnQor0JrQntCS0JDQpyDQiNCe0JLQkNCdCivQmtCe0JLQkNCnINCI0J7QktCQ0J0KK9Ca0J7QktCQ0Kcg0IjQo9Cb0JjQkNCd0JAKK9Ca0J7QktCQ0Kcg0IjQo9Cb0JjQiNCQ0J3QkAor0JrQntCS0JDQpyDQmtCQ0KDQm9CeCivQmtCe0JLQkNCnINCa0JDQoNCb0J4KK9Ca0J7QktCQ0Kcg0JrQkNCg0J7QiQor0JrQntCS0JDQpyDQmtCQ0KDQntCJCivQmtCe0JLQkNCnINCa0JDQoNCe0IkKK9Ca0J7QktCQ0Kcg0JrQkNCg0J7Qm9CICivQmtCe0JLQkNCnINCa0JDQotCQ0JvQmNCdCivQmtCe0JLQkNCnINCa0JDQotCQ0KDQmNCd0JAKK9Ca0J7QktCQ0Kcg0JrQkNCi0JjQptCQCivQmtCe0JLQkNCnINCa0JDQotCY0KbQkAor0JrQntCS0JDQpyDQmtCQ0KLQmNCm0JAKK9Ca0J7QktCQ0Kcg0JrQkNCi0JjQptCQCivQmtCe0JLQkNCnINCa0JDQotCY0KbQkAor0JrQntCS0JDQpyDQmtCe0JLQmNCJ0JrQkAor0JrQntCS0JDQpyDQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0JLQkNCnINCb0JDQlNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0Kcg0JvQkNCU0JjQodCb0JDQkgor0JrQntCS0JDQpyDQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0JLQkNCnINCb0JDQlNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0Kcg0JvQkNCI0J7QqAor0JrQntCS0JDQpyDQm9CQ0IjQntCoCivQmtCe0JLQkNCnINCb0JDQodCb0J4KK9Ca0J7QktCQ0Kcg0JvQkNCh0JvQngor0JrQntCS0JDQpyDQm9CQ0KHQm9CeCivQmtCe0JLQkNCnINCb0JDQodCb0J4KK9Ca0J7QktCQ0Kcg0JvQkNCh0JvQngor0JrQntCS0JDQpyDQm9CQ0KHQm9CeCivQmtCe0JLQkNCnINCb0JDQodCb0J4KK9Ca0J7QktCQ0Kcg0JvQkNCh0JvQngor0JrQntCS0JDQpyDQidCj0JHQkNCdCivQmtCe0JLQkNCnINCJ0KPQlNCV0JLQmNCiCivQmtCe0JLQkNCnINCc0JDQiNCQCivQmtCe0JLQkNCnINCc0JDQoNCT0JjQotCQCivQmtCe0JLQkNCnINCc0JDQoNCY0IjQkAor0JrQntCS0JDQpyDQnNCQ0KDQmNCI0JAKK9Ca0J7QktCQ0Kcg0JzQkNCg0JjQiNCQCivQmtCe0JLQkNCnINCc0JDQoNCY0IjQkAor0JrQntCS0JDQpyDQnNCQ0KDQmNCI0JAKK9Ca0J7QktCQ0Kcg0JzQkNCg0KLQmNCdCivQmtCe0JLQkNCnINCc0JDQotCY0IjQkAor0JrQntCS0JDQpyDQnNCY0KXQkNCI0JvQngor0JrQntCS0JDQpyDQnNCY0KXQkNCI0JvQngor0JrQntCS0JDQpyDQnNCY0KXQkNCJCivQmtCe0JLQkNCnINCc0JjQpdCQ0IkKK9Ca0J7QktCQ0Kcg0JzQmNCa0JvQntCoCivQmtCe0JLQkNCnINCc0JjQmtCb0J7QqAor0JrQntCS0JDQpyDQnNCY0JvQkNCU0JjQnQor0JrQntCS0JDQpyDQnNCY0JvQkNCdCivQmtCe0JLQkNCnINCc0JjQm9CV0J3QkAor0JrQntCS0JDQpyDQnNCY0JvQntCoCivQmtCe0JLQkNCnINCc0JjQm9Ce0KDQkNCUCivQmtCe0JLQkNCnINCc0JjQoNCI0JDQndCQCivQmtCe0JLQkNCnINCc0JjQoNCI0JDQndCQCivQmtCe0JLQkNCnINCc0JjQoNCI0JDQndCQCivQmtCe0JLQkNCnINCc0JjQoNCa0J4KK9Ca0J7QktCQ0Kcg0JzQmNCg0J7QnSDQlNCY0J/QmyDQmNCd0JMKK9Ca0J7QktCQ0Kcg0JzQmNCg0J7QodCb0JDQkgor0JrQntCS0JDQpyDQndCQ0KLQkNCb0JjQiNCQCivQmtCe0JLQkNCnINCd0JjQmtCe0JvQkAor0JrQntCS0JDQpyDQndCY0JrQntCb0JAKK9Ca0J7QktCQ0Kcg0J7Qm9CT0JjQptCQCivQmtCe0JLQkNCnINCe0JvQk9CY0KbQkAor0JrQntCS0JDQpyDQntCi0J4KK9Ca0J7QktCQ0Kcg0J/QkNCS0JXQmwor0JrQntCS0JDQpyDQn9CV0KLQkNCgCivQmtCe0JLQkNCnINCg0JjQodCi0J4g0JTQmNCf0Jsg0JjQndCTCivQmtCe0JLQkNCnINCg0J7QltCYCivQmtCe0JLQkNCnINCg0J7QltCYCivQmtCe0JLQkNCnINCg0J7Ql9CQ0JvQmNCI0JAKK9Ca0J7QktCQ0Kcg0KDQntCX0JDQm9CY0IjQkAor0JrQntCS0JDQpyDQoNCj0JbQmNCm0JAKK9Ca0J7QktCQ0Kcg0KHQmNCb0JLQldCh0KLQldCgCivQmtCe0JLQkNCnINCh0JzQmNCJ0JAKK9Ca0J7QktCQ0Kcg0KHQotCQ0J3QntCI0JrQkAor0JrQntCS0JDQpyDQodCi0JXQktCQ0J0KK9Ca0J7QktCQ0Kcg0KHQotCV0JLQkNCdCivQmtCe0JLQkNCnINCh0KLQldCS0JDQnQor0JrQntCS0JDQpyDQodCi0JXQktCQ0J0KK9Ca0J7QktCQ0Kcg0KHQotCI0JXQn9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQmtCe0JLQkNCnINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0J7QktCQ0Kcg0KLQldCe0JTQntCgINCU0KAg0J/QoNCe0KQKK9Ca0J7QktCQ0Kcg0KLQldCe0JTQntCgINCU0KAKK9Ca0J7QktCQ0Kcg0KLQmNCR0J7QoAor0JrQntCS0JDQpyDQotCY0JHQntCgCivQmtCe0JLQkNCnLdCi0JjQpdCc0JDQiNCV0KAg0KHQotCV0JLQkNCdCivQmtCe0JLQkNCnINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0Kcg0KLQoNCf0JjQnNCY0KAKK9Ca0J7QktCQ0Kcg0JLQkNCb0JXQoNCY0IjQkAor0JrQntCS0JDQpyDQktCV0KDQkAor0JrQntCS0JDQpyDQktCV0KDQkAor0JrQntCS0JDQpyDQktCV0KDQkAor0JrQntCS0JDQpyDQktCV0KDQkAor0JrQntCS0JDQpyDQktCV0KDQkAor0JrQntCS0JDQpyDQktCV0KDQmNCm0JAKK9Ca0J7QktCQ0Kcg0JLQldCg0J7QndCQCivQmtCe0JLQkNCnINCS0JXQoNCe0J3QkAor0JrQntCS0JDQpyDQktCY0JTQkAor0JrQntCS0JDQpyDQktCb0JDQlNCY0JzQmNCgCivQmtCe0JLQkNCnINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QktCQ0Kcg0JfQntCg0JAKK9Ca0J7QktCQ0Kcg0JfQktCe0J3QmNCc0JjQoAor0JrQntCS0JDQp9CV0Jog0JHQntCW0JjQlNCQ0KAg0JTQoAor0JrQntCS0JDQp9CV0Jog0JTQkNCd0JjQptCQCivQmtCe0JLQkNCn0JXQmiDQiNCV0JvQldCd0JAKK9Ca0J7QktCQ0KfQldCSINCC0J7QoNCC0JUKK9Ca0J7QktCQ0KfQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0JLQkNCn0JXQkiDQkdCg0JDQndCa0JAKK9Ca0J7QktCQ0KfQldCSINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JIg0JHQoNCQ0J3QmtCeCivQmtCe0JLQkNCn0JXQkiDQlNCQ0J3Qp9CVCivQmtCe0JLQkNCn0JXQkiDQlNCQ0J3QmNCb0JrQkAor0JrQntCS0JDQp9CV0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCe0JLQkNCn0JXQkiDQlNCg0JDQk9CY0KjQkAor0JrQntCS0JDQp9CV0JIg0JTQoNCQ0JPQntCh0JvQkNCSCivQmtCe0JLQkNCn0JXQkiDQlNCg0JDQk9Cj0KLQmNCdCivQmtCe0JLQkNCn0JXQkiDQlNCg0JDQk9Cj0KLQmNCdCivQmtCe0JLQkNCn0JXQkiDQlNCj0KjQkNCd0JrQkAor0JrQntCS0JDQp9CV0JIg0JPQntCg0JDQnQor0JrQntCS0JDQp9CV0JIg0JPQntCg0JTQkNCd0JAKK9Ca0J7QktCQ0KfQldCSINCT0J7QoNCU0JDQndCQCivQmtCe0JLQkNCn0JXQkiDQmNCb0JjQiNCQCivQmtCe0JLQkNCn0JXQkiDQmNCS0JjQptCQCivQmtCe0JLQkNCn0JXQkiDQiNCV0JvQkAor0JrQntCS0JDQp9CV0JIg0IjQldCb0JXQndCQCivQmtCe0JLQkNCn0JXQkiDQiNCe0JLQkNCdCivQmtCe0JLQkNCn0JXQkiDQiNCj0JvQmNCI0JDQndCQCivQmtCe0JLQkNCn0JXQkiDQiNCj0JvQmtCQCivQmtCe0JLQkNCn0JXQkiDQm9CQ0JfQkNCgCivQmtCe0JLQkNCn0JXQkiDQnNCQ0KDQmNCI0JAKK9Ca0J7QktCQ0KfQldCSINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0KfQldCSINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0KfQldCSINCc0JjQm9CV0J3QkAor0JrQntCS0JDQp9CV0JIg0JzQmNCb0JjQptCQCivQmtCe0JLQkNCn0JXQkiDQnNCY0JvQntCoCivQmtCe0JLQkNCn0JXQkiDQnNCY0JvQntCg0JDQlCDQlNCgINCb0JXQmtCQ0KAKK9Ca0J7QktCQ0KfQldCSINCc0JjQm9Cj0KLQmNCdCivQmtCe0JLQkNCn0JXQkiDQnNCY0KDQiNCQ0J3QkAor0JrQntCS0JDQp9CV0JIg0JzQm9CQ0JTQldCdCivQmtCe0JLQkNCn0JXQkiDQndCV0JTQldCJ0JrQngor0JrQntCS0JDQp9CV0JIg0J3QldCc0JDQitCQCivQmtCe0JLQkNCn0JXQkiDQn9CV0KLQkNCgCivQmtCe0JLQkNCn0JXQkiDQodCi0JXQktCQ0J0KK9Ca0J7QktCQ0KfQldCSINCh0KLQldCS0JDQnQor0JrQntCS0JDQp9CV0JIg0KHQotCV0JLQkNCdCivQmtCe0JLQkNCn0JXQkiDQodCS0JXQotCY0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQldCSINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0J7QktCQ0KfQldCSINCi0JXQntCU0J7QoCDQlNCgCivQmtCe0JLQkNCn0JXQkiDQotCV0J7QlNCe0KAg0JTQoAor0JrQntCS0JDQp9CV0JIg0JLQldCg0JAKK9Ca0J7QktCQ0KfQldCSINCS0JXQoNCQCivQmtCe0JLQkNCn0JXQkiDQktCV0KHQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KfQldCU0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQltCV0JvQmNCc0JjQoAor0JrQntCS0JDQp9CV0JLQmNCLINCW0JXQidCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQltCY0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JbQmNCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCC0J7QoNCC0JUg0JTQmNCf0Jsg0JjQndCTCivQmtCe0JLQkNCn0JXQktCY0Isg0ILQntCg0ILQlQor0JrQntCS0JDQp9CV0JLQmNCLINCC0J7QoNCC0JUKK9Ca0J7QktCQ0KfQldCS0JjQiyDQgtCe0KDQgtCVCivQmtCe0JLQkNCn0JXQktCY0Isg0ILQntCg0ILQlQor0JrQntCS0JDQp9CV0JLQmNCLINCC0KPQoNCC0JjQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0ILQo9Cg0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkNCT0J3QldCoCivQmtCe0JLQkNCn0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQntCS0JDQp9CV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JDQndCC0JXQm9CY0IjQkAor0JrQntCS0JDQp9CV0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JDQndCV0KLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCQ0J3QmtCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCQ0KDQodCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCe0KjQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQntCo0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7QqNCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7Qk9CU0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7Qk9CU0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQntCg0JjQktCe0IjQlQor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7QoNCY0JLQntCICivQmtCe0JLQkNCn0JXQktCY0Isg0JHQntCg0JjQktCe0IgKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JrQntCS0JDQp9CV0JLQmNCLINCR0J7QoNCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAg0JTQmNCf0Jsg0JjQndCTCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JHQo9CU0JjQnNCY0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0JzQiNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCQ0J3QmtCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQkNCS0J7QoNCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlSDQlNCY0J/QmyDQntCV0KYKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JDQk9CQ0J0g0JTQoAor0JrQntCS0JDQp9CV0JLQmNCLINCU0KDQkNCT0JDQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JrQntCS0JDQp9CV0JLQmNCLINCU0KDQkNCT0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JDQk9CeCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JrQntCS0JDQp9CV0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCg0JXQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JTQo9Co0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCU0KPQqNCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQlNCj0KjQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0KTQoNCQ0IrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCT0JDQktCg0JjQm9CeCivQmtCe0JLQkNCn0JXQktCY0Isg0JPQm9CY0JPQntCg0JjQiNCVCivQmtCe0JLQkNCn0JXQktCY0Isg0JPQntCI0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCY0KjQotCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCY0JPQitCQ0KIKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmNCb0JjQiNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JjQm9CY0IjQkAor0JrQntCS0JDQp9CV0JLQmNCLINCY0JvQmNCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmNCh0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmNCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCI0JDQk9Ce0KgKK9Ca0J7QktCQ0KfQldCS0JjQiyDQiNCV0JvQldCd0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCI0J7QoNCU0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQmtCe0JLQkNCn0JXQktCY0Isg0IjQntCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCI0J7QktCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0IjQntCS0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0IjQntCS0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JrQkNCi0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCQ0KLQmNCm0JAg0JTQoAor0JrQntCS0JDQp9CV0JLQmNCLINCa0JDQotCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0JDQotCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0JvQkNCg0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCe0KfQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0J7QiNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JrQntCh0KLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0J7QodCi0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCe0JLQmNCJ0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCa0KDQodCi0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCg0KHQotCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JrQodCV0J3QmNCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQmtCh0JXQndCY0IjQkAor0JrQntCS0JDQp9CV0JLQmNCLINCb0JDQl9CeCivQmtCe0JLQkNCn0JXQktCY0Isg0InQmNCJ0JDQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0InQmNCJ0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQidCj0JHQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQidCj0JHQngor0JrQntCS0JDQp9CV0JLQmNCLINCc0JDQoNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQkNCg0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCQ0KDQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQkNCg0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQkNCU0JjQndCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CV0J3QkAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CV0J3QkAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9CVCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JjQptCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0JjQnNCY0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQmNCS0J7QiCDQlNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCJ0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9Ca0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQntCoCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0J7QqAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9Ce0KgKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQntCoCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0J7QqAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQoNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCg0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCg0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQntCS0JDQp9CV0JLQmNCLINCc0JjQotCQ0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQnNCY0KLQkAor0JrQntCS0JDQp9CV0JLQmNCLLdCc0JvQkNCU0JXQndCe0JLQmNCLINCe0JvQk9CQCivQmtCe0JLQkNCn0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQmtCe0JLQkNCn0JXQktCY0Isg0J3QkNCU0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQndCQ0JTQldCW0JTQkAor0JrQntCS0JDQp9CV0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQndCV0JHQntCI0KjQkAor0JrQntCS0JDQp9CV0JLQmNCLINCd0JXQlNCV0InQmtCQCivQmtCe0JLQkNCn0JXQktCY0Isg0J3QldCU0JXQidCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQntCb0JPQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQntCX0KDQldCdCivQmtCe0JLQkNCn0JXQktCY0Isg0J/QkNCS0JvQlQor0JrQntCS0JDQp9CV0JLQmNCLINCf0JDQktCb0JUKK9Ca0J7QktCQ0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCU0JXQndCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0JTQlQor0JrQntCS0JDQp9CV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JrQntCS0JDQp9CV0JLQmNCLINCg0JDQlNCY0JLQntCICivQmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCg0JDQlNCe0IjQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCU0J7QnNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCQ0IjQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0KDQkNCI0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCg0JDQndCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQoNCV0InQkAor0JrQntCS0JDQp9CV0JLQmNCLINCg0KPQltCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCg0KPQltCY0KbQkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0JDQktCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQkNCS0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCQ0JLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0JDQktCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCQ0JLQngor0JrQntCS0JDQp9CV0JLQmNCLINCh0JXQmtCj0JvQkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0JjQnNCV0J7QnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0JvQkNCC0JDQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCf0JDQodCV0J3QmNCI0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCg0JHQmNCI0JDQndCa0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCg0JXQotCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQoNCV0KLQldCdCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQotCQ0J3QkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQkNCd0JrQkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCh0KLQldCS0J4KK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCi0JXQktCeCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQotCV0JLQngor0JrQntCS0JDQp9CV0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JrQntCS0JDQp9CV0JLQmNCLINCh0JLQldCi0J7Qm9CY0JoKK9Ca0J7QktCQ0KfQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JrQntCS0JDQp9CV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQotCV0KDQldCX0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQotCe0JTQntCgCivQmtCe0JLQkNCn0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JrQntCS0JDQp9CV0JLQmNCLINCS0JDQodCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JrQntCS0JDQp9CV0JLQmNCLINCS0JXQoNCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQldCg0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCV0KDQkAor0JrQntCS0JDQp9CV0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JrQntCS0JDQp9CV0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCY0J3QmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQntCS0JDQp9CV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQntCI0JjQnQor0JrQntCS0JDQp9CV0JLQmNCLINCS0J7QiNCY0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JrQntCS0JDQp9CV0JLQmNCLINCS0KPQiNCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JrQntCS0JDQp9CV0JLQmNCLINCX0JTQldCd0JrQngor0JrQntCS0JDQp9CV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQmtCe0JLQkNCn0JXQktCY0Isg0JfQntCg0JDQnSDQlNCgCivQmtCe0JLQkNCn0JXQktCY0Isg0JfQntCg0JDQnQor0JrQntCS0JDQp9CV0JLQmNCLINCX0J7QoNCQ0J0KK9Ca0J7QktCQ0KfQldCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Ca0J7QktCQ0KfQldCS0JjQiyDQl9CS0J7QndCY0JzQmNCg0JrQkAor0JrQntCS0JDQp9CY0Isg0JbQmNCS0JrQngor0JrQntCS0JDQp9CY0Isg0JDQndCY0KbQkAor0JrQntCS0JDQp9CY0Isg0JHQntCW0JDQndCQCivQmtCe0JLQkNCn0JjQiyDQkdCe0KDQmNCS0J7QiAor0JrQntCS0JDQp9CY0Isg0JTQoNCQ0JPQkNCd0JAKK9Ca0J7QktCQ0KfQmNCLINCU0KPQqNCQ0J3QmtCQCivQmtCe0JLQkNCn0JjQiyDQlNCj0KjQkNCdCivQmtCe0JLQkNCn0JjQiyDQiNCe0JLQkNCdCivQmtCe0JLQkNCn0JjQiyDQiNCe0JLQkNCdCivQmtCe0JLQkNCn0JjQiyDQiNCe0JLQkNCdCivQmtCe0JLQkNCn0JjQiyDQidCV0J/QntCh0JDQktCQCivQmtCe0JLQkNCn0JjQiyDQm9Cj0JrQkAor0JrQntCS0JDQp9CY0Isg0JzQmNCb0JDQnQor0JrQntCS0JDQp9CY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0J7QktCQ0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQmNCLINCd0JXQlNCV0InQmtCeCivQmtCe0JLQkNCn0JjQiyDQndCY0JrQntCb0JAKK9Ca0J7QktCQ0KfQmNCLINCf0JXQotCQ0KAKK9Ca0J7QktCQ0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ca0J7QktCQ0KfQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JrQntCS0JDQp9CY0Isg0KLQkNCd0JDQodCY0IjQlQor0JrQntCS0JDQp9CY0Isg0KLQntCo0JAKK9Ca0J7QktCQ0KfQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7QktCQ0KfQmNCLINCS0JXQodCd0JAKK9Ca0J7QktCQ0KfQmNCaINCc0JDQoNCT0JjQotCQCivQmtCe0JLQkNCn0JjQmiDQnNCQ0KDQmNCI0JAKK9Ca0J7QktCQ0JvQp9CY0Jog0JLQm9CQ0JTQmNCh0JvQkNCSCivQmtCe0JLQkNCb0J7QktCh0JrQmCDQotCV0J7QlNCe0KAKK9Ca0J7QktCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQmtCe0JLQkNCgINCI0JDQitCQCivQmtCe0JLQkNCg0KfQmNCaINCQ0J3QlNCg0JjQiNCQCivQmtCe0JLQkNCg0KfQmNCaINCc0JDQoNCY0IjQkAor0JrQntCS0JDQoNCY0Jog0JLQkNCb0JXQoNCY0IjQkAor0JrQntCS0JXQmNCd0JTQmyDQiNCe0KHQmNCfCivQmtCe0JLQldCJINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ca0J7QktCY0Isg0J3QkNCU0JAKK9Ca0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQntCS0JjQiNCQ0J3QmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0J7QktCY0J3Qp9CY0Isg0JHQntCI0JDQnQor0JrQntCS0JjQndCn0JjQiyDQnNCY0JvQkNCdCivQmtCe0JLQmNCd0KfQmNCLINCd0JDQlNCQCivQmtCe0JLQmNCd0KfQmNCLINCd0JDQotCQ0KjQkAor0JrQntCS0JjQndCn0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0JrQntCS0JjQndCn0JjQiyDQodCi0J7QiNCQ0J0KK9Ca0J7QktCI0JDQndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0J7QktCI0JDQndCY0Isg0IjQntCS0JDQnQor0JrQntCS0IjQkNCd0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQntCS0IjQkNCd0JjQiyDQndCQ0JTQkAor0JrQntCS0IjQkNCd0JjQiyDQndCV0J3QkNCUCivQmtCe0JLQiNCQ0J3QmNCLINCf0JXQoNCQCivQmtCe0JLQiNCQ0J3QmNCLINCh0JDQktCQCivQmtCe0JLQidCQ0J0g0ILQntCg0ILQlQor0JrQntCS0InQkNCdINCh0JDQktCeCivQmtCe0JLQoNCb0JjQiNCQINCI0J7QktCQ0J0KK9Ca0J7Ql9CQ0Jog0JzQkNCg0JjQiNCQCivQmtCe0JfQkNCa0JjQkiDQmNCS0JDQnQor0JrQntCX0JDQoCDQoNCQ0JTQlQor0JrQntCX0JDQoNCn0JjQiyDQiNCe0JLQkNCd0JrQkAor0JrQntCX0JDQoNCn0JjQiyDQiNCe0JLQkNCdCivQmtCe0JfQkNCg0KfQmNCLINCI0J7QktCQ0J0KK9Ca0J7Ql9CQ0KDQp9CY0Isg0JzQkNCg0JrQngor0JrQntCX0JDQoNCn0JjQiyDQnNCY0JvQkNCdCivQmtCe0JfQkNCg0JDQpiDQnNCY0IvQngor0JrQntCX0JDQoNCV0JIg0JbQkNCg0JrQngor0JrQntCX0JDQoNCV0JIg0JbQmNCS0JrQngor0JrQntCX0JDQoNCV0JIg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ca0J7Ql9CQ0KDQldCSINCR0J7Qk9Ce0InQo9CRCivQmtCe0JfQkNCg0JXQkiDQlNCQ0KDQmNCd0JrQkAor0JrQntCX0JDQoNCV0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCe0JfQkNCg0JXQkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ca0J7Ql9CQ0KDQldCSINCU0KDQkNCT0JjQptCQCivQmtCe0JfQkNCg0JXQkiDQk9Ce0KHQn9CQ0JLQkAor0JrQntCX0JDQoNCV0JIg0JvQkNCX0JDQoAor0JrQntCX0JDQoNCV0JIg0InQo9CR0JjQptCQCivQmtCe0JfQkNCg0JXQkiDQnNCQ0KDQmNCI0JAKK9Ca0J7Ql9CQ0KDQldCSINCc0JjQm9CQ0J0KK9Ca0J7Ql9CQ0KDQldCSINCc0JjQm9Ca0JAKK9Ca0J7Ql9CQ0KDQldCSINCc0JvQkNCU0JXQnQor0JrQntCX0JDQoNCV0JIg0J3QldCU0JXQidCa0J4KK9Ca0J7Ql9CQ0KDQldCSINCf0JDQktCb0JUKK9Ca0J7Ql9CQ0KDQldCSINCf0JXQotCQ0KAKK9Ca0J7Ql9CQ0KDQldCSINCh0JDQktCQCivQmtCe0JfQkNCg0JXQkiDQodCQ0JLQkAor0JrQntCX0JDQoNCV0JIg0KLQntCU0J7QoAor0JrQntCX0JDQoNCV0JLQmNCLINCg0JDQlNCY0J3QmtCQCivQmtCe0JfQkNCg0JXQktCY0Isg0JfQntCg0JDQnQor0JrQntCX0JDQoNCe0JIg0ILQntCg0ILQlQor0JrQntCX0JDQoNCe0JIg0JDQndCY0KbQkAor0JrQntCX0JDQoNCe0JIg0JPQkNCS0KDQkAor0JrQntCX0JDQoNCe0JIg0JjQktCQ0J0KK9Ca0J7Ql9CQ0KDQntCSINCI0J7QktCQ0J3QmtCQCivQmtCe0JfQkNCg0J7QkiDQmtCQ0KLQmNCm0JAKK9Ca0J7Ql9CQ0KDQntCSINCc0JjQm9Ce0KgKK9Ca0J7Ql9CQ0KDQntCSINCd0JDQotCQ0JvQmNCI0JAKK9Ca0J7Ql9CQ0KDQntCSINCf0JDQktCb0JUKK9Ca0J7Ql9CQ0KDQntCSINCf0JDQktCb0JUKK9Ca0J7Ql9CQ0KDQntCSINCh0KDQkdCY0KHQm9CQ0JIKK9Ca0J7Ql9CQ0KDQntCSINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0J7Ql9CQ0KDQodCa0Jgg0JbQmNCS0JDQnQor0JrQntCX0JDQoNCh0JrQmCDQltCY0JLQmtCeCivQmtCe0JfQkNCg0KHQmtCYINCb0JjQlNCY0IjQkAor0JrQntCX0JDQoNCh0JrQmCDQnNCQ0KDQmNCI0JAKK9Ca0J7Ql9CQ0KDQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JrQntCX0JDQoNCh0JrQmC3QoNCQ0IjQmNCLINCS0JXQoNCY0KbQkAor0JrQntCX0JDQoNCh0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQmtCe0JfQkNCg0KHQmtCYINCh0J7QpNCY0IjQkAor0JrQntCX0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9Ca0J7Ql9CQ0KDQodCa0Jgg0KLQldCe0JTQntCg0JAKK9Ca0J7Ql9CQ0KDQodCa0Jgg0JLQkNCh0JjQm9CY0IjQlQor0JrQntCX0JDQoNCh0JrQmCDQktCV0KDQkAor0JrQntCX0JDQoNCh0JrQmCDQktCe0IjQmNCh0JvQkNCSCivQmtCe0JfQkNCg0KHQmtCYINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0J7Ql9CR0JDQqNCY0Isg0KHQotCV0JLQkNCdCivQmtCe0JfQmNCLINCR0J7Qk9CU0JDQnQor0JrQntCX0JjQiyDQn9CV0KLQkNCgCivQmtCe0JfQmNCLINCg0JDQotCa0J4KK9Ca0J7Ql9CY0Isg0KDQntCW0JAKK9Ca0J7Ql9CY0Isg0KHQkNCS0JAKK9Ca0J7Ql9CY0Isg0KHQotCQ0J3QmtCeCivQmtCe0JfQmNCLINCS0JXQidCa0J4KK9Ca0J7Ql9CY0J3QkCDQmNCS0JDQnQor0JrQntCX0JjQndCQINCc0JDQoNCY0KbQkAor0JrQntCX0JvQmNCaINCa0JDQotCQ0KDQmNCd0JAKK9Ca0J7Ql9Cb0JjQmiDQm9CQ0IjQntCoCivQmtCe0JfQm9CY0J3QkCDQlNCV0KHQkNCd0JrQkAor0JrQntCX0JvQmNCd0JAg0JTQo9Co0JrQngor0JrQntCX0JvQmNCd0JAg0IjQldCa0JAKK9Ca0J7Ql9Cb0JjQndCQINCc0JjQm9CVCivQmtCe0JfQm9CY0J3QkCDQl9Cb0JDQotCY0KbQkAor0JrQntCX0JvQntCS0JDQp9Ca0Jgg0JbQmNCS0JrQngor0JrQntCX0JvQntCS0JDQp9Ca0Jgg0JPQntCg0JTQkNCd0JAKK9Ca0J7Ql9Cb0J7QktCQ0KfQmtCYINCJ0KPQkdCQCivQmtCe0JfQm9Ce0JLQkNCn0JrQmCDQodCQ0JLQkAor0JrQntCX0JvQntCS0JDQp9Ca0Jgg0KHQntCk0JjQiNCQCivQmtCe0JfQm9Ce0JLQkNCn0JrQmCDQktCV0KHQldCb0JjQnQor0JrQntCX0JvQntCS0JjQiyDQkdCe0KDQmNChCivQmtCe0JfQm9Ce0JLQmNCLINCh0JDQktCQCivQmtCe0JfQnNCQINCo0JDQndCU0J7QoAor0JrQntCX0JzQkCDQldCi0JXQmwor0JrQntCX0JzQkCDQpNCV0KDQldCd0KYKK9Ca0J7Ql9Cc0JAg0IjQntCW0JXQpAor0JrQntCX0JzQkCDQiNCe0KHQmNCfCivQmtCe0JfQnNCY0JTQmNChLdCf0JXQotCg0J7QktCY0Isg0JDQndCQCivQmtCe0JfQntCc0JDQoNCQINCC0J7QoNCC0JUKK9Ca0J7Ql9Ce0JzQkNCg0JAg0IjQntCS0J4KK9Ca0J7Ql9Ce0JzQkNCg0JAg0InQo9CR0JjQptCQCivQmtCe0JfQntCc0JDQoNCQINCc0JDQoNCY0IjQkAor0JrQntCX0J7QnNCQ0KDQkCDQl9Ce0KDQkNCdCivQmtCe0JfQntCc0JDQoNCY0Isg0JzQkNCg0JjQiNCQCivQmtCe0JfQntCc0J7QoNCQINCR0J7QltCY0JTQkNCgCivQmtCe0JfQntCc0J7QoNCQINCR0KDQkNCd0JrQngor0JrQntCX0J7QnNCe0KDQkCDQmNCb0JjQiNCQCivQmtCe0JfQntCc0J7QoNCQINCI0J7QmtCQCivQmtCe0JfQntCc0J7QoNCQINCI0J7QktCeCivQmtCe0JfQntCc0J7QoNCQINCb0JDQl9CeCivQmtCe0JfQntCc0J7QoNCQINCc0JjQm9CQ0J0KK9Ca0J7Ql9Ce0JzQntCg0JAg0JzQmNCb0JUKK9Ca0J7Ql9Ce0JzQntCg0JAg0JzQmNCb0J7QiNCa0J4KK9Ca0J7Ql9Ce0JzQntCg0JAg0JzQmNCg0J7QodCb0JDQkgor0JrQntCX0J7QnNCe0KDQkCDQn9CV0KLQkNCgCivQmtCe0JfQntCc0J7QoNCQINCg0JDQlNCe0JzQmNCgCivQmtCe0JfQntCc0J7QoNCQINCh0KDQgtCQ0J0KK9Ca0J7Ql9Ce0JzQntCg0JAg0KLQkNCi0IjQkNCd0JAKK9Ca0J7Ql9Ce0JzQntCg0JAg0JLQkNCh0JjQm9CY0IjQlQor0JrQntCX0J7QnNCe0KDQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQINCU0KAg0JvQldCa0JDQoAor0JrQntCX0KPQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0KDQp9CQ0JTQmNCd0JDQpiDQmtCe0KHQotCQCivQmtCg0KfQkNCU0JjQndCQ0KYg0J3QmNCa0J7Qm9CQCivQmtCg0KfQldCU0JjQndCQ0KYg0JzQmNCe0JTQoNCQ0JMKK9Ca0KDQp9CV0JTQmNCd0JDQpiDQotCY0JzQkAor0JrQoNCn0JXQm9CY0Isg0JDQndCU0KDQmNCI0JAKK9Ca0KDQp9Cc0JDQoCDQltCV0InQmtCeCivQmtCg0KfQnNCQ0KAg0KbQktCY0IjQngor0JrQoNCn0JzQkNCgINCU0KDQkNCT0J7QnNCY0KAKK9Ca0KDQp9Cc0JDQoCDQlNCj0KjQmtCeCivQmtCg0KfQnNCQ0KAg0IjQntCS0JDQnQor0JrQoNCn0JzQkNCgINCb0JXQn9Ce0KHQkNCS0JAKK9Ca0KDQp9Cc0JDQoCDQidCj0JHQmNCm0JAKK9Ca0KDQp9Cc0JDQoCDQidCj0JHQmNCm0JAKK9Ca0KDQp9Cc0JDQoCDQnNCY0JvQkNCdCivQmtCg0KfQnNCQ0KAg0JzQmNCb0JDQnQor0JrQoNCn0JzQkNCgINCc0JjQoNCa0J4KK9Ca0KDQp9Cc0JDQoCDQn9CQ0J3QlQor0JrQoNCn0JzQkNCgINCS0JDQodCeCivQmtCg0KfQnNCQ0KAg0JLQmNCd0JrQngor0JrQoNCn0JzQkNCgINCX0J7QoNCQ0J0KK9Ca0KDQp9Cc0JDQoCDQl9Ce0KDQkNCdCivQmtCg0KfQnNCQ0KDQmNCaINCU0JDQndCY0JvQngor0JrQoNCn0JzQkNCg0JjQmiDQn9Cg0JXQlNCg0JDQkwor0JrQoNCn0J4g0JHQntCW0JjQlNCQ0KAKK9Ca0KDQp9CeINCc0JjQm9CV0J3QmtCeCivQmtCg0KfQniDQoNCQ0KHQmNCcCivQmtCg0KfQniDQoNCQ0KHQmNCcCivQmtCg0KjQldCSINCR0J7QoNCY0KEKK9Ca0KDQqNCV0JIg0JjQktCQ0J0KK9Ca0KDQqNCV0JIg0IjQo9Cb0JjQiNCQ0J3QkAor0JrQoNCo0JXQkiDQiNCj0JvQmtCY0KbQkAor0JrQoNCo0JjQiyDQlNCQ0KDQkAor0JrQoNCo0JjQiyDQmNCT0IrQkNCiCivQmtCg0KjQmNCLINCI0JXQm9CQCivQmtCg0KjQmNCLINCi0J7QnNCeCivQmtCg0KjQmNCdINCI0J7QktCeCivQmtCg0KjQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Ca0KDQqNCi0JXQndCY0Isg0JTQldCh0JDQndCa0JAKK9Ca0KDQltCQINCc0JjQm9CV0J3QmtCeCivQmtCg0JbQmNCLINCh0JjQnNCeCivQmtCg0ILQmNCLINCh0J/QntCc0JXQndCa0JAKK9Ca0KDQkNCn0JXQndCh0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQmtCg0JDQp9CV0JLQodCa0Jgg0JDQn9Ce0KHQotCe0JsKK9Ca0KDQkNCn0KPQnSDQmNCS0JDQnQor0JrQoNCQ0KfQo9CdINCi0KDQkNCI0JDQnQor0JrQoNCQ0KfQo9CdINCi0KDQkNCI0JDQnQor0JrQoNCQ0KfQo9Cd0J7QkiDQn9CV0KLQkNCgCivQmtCg0JDQp9Cj0J3QntCSINCh0KLQldCS0JDQnQor0JrQoNCQ0KfQo9Cd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Ca0KDQkNCn0KPQndCe0JLQmNCLINCS0JXQidCa0J4KK9Ca0KDQkNCL0JDQmiDQkdCe0KjQmtCeCivQmtCg0JDQk9CY0KfQldCaINCa0JvQkNCg0JAKK9Ca0KDQkNCT0JjQiyDQkdCY0InQkNCd0JAKK9Ca0KDQkNCT0JjQiyDQkdCe0KDQkAor0JrQoNCQ0JPQmNCLINCJ0JjQidCQ0J3QkAor0JrQoNCQ0JPQmNCLINCX0J7QoNCQ0J0KK9Ca0KDQkNCT0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9Ca0KDQkNCT0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQoNCQ0JPQo9CI0JXQkiDQlNCj0KjQkNCdCivQmtCg0JDQk9Cj0IjQldCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCgINCb0JXQmtCQ0KAKK9Ca0KDQkNCT0KPQiNCV0JLQmNCLINCg0JDQiNCa0J4KK9Ca0KDQkNCT0KPQiNCV0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkiDQlNCgINCb0JXQmtCQ0KAKK9Ca0KDQkNCT0KPQiSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQoNCQ0JPQo9CJINCU0KPQqNCQ0J3QmtCQCivQmtCg0JDQk9Cj0Ikg0IjQldCb0JAKK9Ca0KDQkNCT0KPQiSDQm9CQ0JfQngor0JrQoNCQ0JPQo9CJINCh0JDQktCa0JAKK9Ca0KDQkNCT0KPQidCV0JLQmNCLINCX0J7QoNCY0KbQkAor0JrQoNCQ0IjQp9CV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQmtCg0JDQiNCn0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JrQoNCQ0IjQp9CY0J3QntCS0JjQiyDQiNCe0JLQkNCdINCU0KAg0JvQldCa0JDQoAor0JrQoNCQ0IjQqNCY0Isg0JzQmNCg0JrQngor0JrQoNCQ0IjQkNCn0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JrQoNCQ0IjQkNCn0JXQktCY0Isg0KXQmNCb0JTQkAor0JrQoNCQ0IjQkNCn0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0KDQkNCI0JDQp9CV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ca0KDQkNCI0JDQp9CV0JLQmNCLINCX0J7QoNCQ0J0KK9Ca0KDQkNCI0KbQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KDQkNCI0KbQldCgINCV0KPQk9CV0J0KK9Ca0KDQkNCI0KbQldCgINCY0KDQldCd0JAKK9Ca0KDQkNCI0KbQldCgINCY0JLQkNCdCivQmtCg0JDQiNCm0JXQoCDQn9CV0KLQkNCgCivQmtCg0JDQiNCY0KjQndCY0Jog0JbQmNCS0J7QoNCQ0JQKK9Ca0KDQkNCI0JjQqNCd0JjQmiDQmtCg0JjQodCi0JjQndCQCivQmtCg0JDQiNCY0Isg0JDQk9CY0KbQkAor0JrQoNCQ0IjQmNCd0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0KDQkNCI0JjQndCQINCk0JjQm9CY0J8KK9Ca0KDQkNCI0JjQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JrQoNCQ0IjQmNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0JrQoNCQ0IjQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQoNCQ0IjQmNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0JrQoNCQ0IjQmNCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQmtCg0JDQiNCd0JjQmiDQltCQ0KDQmtCeCivQmtCg0JDQiNCd0JjQmiDQm9CQ0JfQkNCgCivQmtCg0JDQiNCd0JjQmtCV0KAg0J3QkNCd0JTQntCgCivQmtCg0JDQiNCd0J7QkiDQkdCe0JPQlNCQ0J0KK9Ca0KDQkNCI0J3QntCSINCR0J7Qk9Ce0InQo9CRCivQmtCg0JDQiNCd0J7QkiDQk9Ce0KDQkNCdCivQmtCg0JDQiNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JrQoNCQ0IjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQkNCI0J3QntCS0JjQiyDQgtCj0KDQngor0JrQoNCQ0IjQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Ca0KDQkNCI0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ca0KDQkNCI0J3QntCS0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQmtCg0JDQiNCd0J7QktCY0Isg0JzQmNCb0JjQiwor0JrQoNCQ0IjQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JrQoNCQ0IjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQoNCQ0IjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ca0KDQkNCI0J3QntCS0JjQiyDQoNCQ0JTQlQor0JrQoNCQ0IjQndCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQmtCg0JDQiNCd0J7QktCY0Isg0JLQldCg0JAKK9Ca0KDQkNCI0J7QktCQ0J0g0JzQmNCg0IjQkNCd0JAKK9Ca0KDQkNCI0J7QktCQ0J0g0JzQmNCg0J7QodCb0JDQkgor0JrQoNCQ0Jog0JzQmNCo0JAKK9Ca0KDQkNCa0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0KDQkNCa0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ca0KDQkNCb0JjQmiDQnNCY0KDQntCh0JvQkNCSCivQmtCg0JDQm9CY0Jog0J7Qm9CY0J3QmtCQCivQmtCg0JDQm9CY0Jog0J/QkNCS0JvQlQor0JrQoNCQ0JvQmNCaINCh0KLQldCS0JDQnQor0JrQoNCQ0Ikg0JLQkNCb0JXQndCi0JjQnQor0JrQoNCQ0Ikg0JfQktCe0J3QmNCc0JjQoAor0JrQoNCQ0InQldCS0JDQp9Ca0Jgg0JHQkNCg0JHQkNCg0JAKK9Ca0KDQkNCJ0JXQktCQ0KfQmtCYINCY0JvQmNCI0JAKK9Ca0KDQkNCJ0JXQktCQ0KfQmtCYINCI0J7QodCY0J8KK9Ca0KDQkNCJ0JXQktCY0Isg0JHQntCh0JjQidCa0JAKK9Ca0KDQkNCJ0JXQktCY0Isg0JTQo9Co0JDQnQor0JrQoNCQ0InQldCS0JjQiyDQnNCQ0KDQmNCm0JAKK9Ca0KDQkNCJ0JXQktCY0Isg0JzQmNCb0JrQkAor0JrQoNCQ0InQldCS0JjQiyDQodCQ0JLQngor0JrQoNCQ0InQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0KAKK9Ca0KDQkNCJ0JjQiyDQiNCV0JvQldCd0JAKK9Ca0KDQkNCJ0JjQiyDQktCb0JDQlNCQCivQmtCg0JDQitCn0JXQktCY0Isg0JPQntCg0JTQkNCd0JAKK9Ca0KDQkNCK0KfQldCS0JjQiyDQiNCe0KHQmNCfCivQmtCg0JDQoSDQiNCV0JvQldCd0JAKK9Ca0KDQkNCh0JDQktCQ0KYg0JbQmNCS0J7QoNCQ0JQKK9Ca0KDQkNCh0JDQktCQ0KYg0JzQmNCb0JrQkAor0JrQoNCQ0KHQkNCS0JDQpiDQnNCY0JvQntCg0JDQlAor0JrQoNCQ0KHQkNCS0JDQpiDQnNCY0JvQntCg0JDQlAor0JrQoNCQ0KHQkNCS0JDQpiDQoNCj0JbQmNCm0JAKK9Ca0KDQkNCh0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQkNCh0JjQiyDQlNCj0KjQkNCdCivQmtCg0JDQodCY0Isg0JPQntCb0KPQkQor0JrQoNCQ0KHQmNCLINCc0JjQm9Ce0IjQlQor0JrQoNCQ0KHQmNCLINCd0JjQmtCe0JvQkAor0JrQoNCQ0KHQmNCLINCh0KLQldCS0JDQnQor0JrQoNCQ0KHQmtCeINCI0JDQndCa0J4KK9Ca0KDQkNCh0J3QmNCLINCY0KDQmNCd0JAKK9Ca0KDQkNCh0J3QmNCLINCS0JXQoNCQCivQmtCg0JDQodCd0JjQmiDQktCb0JDQotCa0J4KK9Ca0KDQkNCh0J3QmNCaINCX0JLQntCd0JrQngor0JrQoNCQ0KHQntCI0JXQktCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Ca0KDQkNCh0J7QiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Ca0KDQkNCh0KPQm9CQINCi0J7QnNCQCivQmtCg0JDQodCj0InQkCDQlNCj0KjQkNCdCivQmtCg0JDQodCj0InQkCDQodCi0JXQktCQ0J0KK9Ca0KDQkNCj0KEg0JDQndCQCivQmtCg0JDQo9ChINCe0KLQngor0JrQoNCQ0JLQp9CV0J3QmtCeINCf0JXQotCQ0KAKK9Ca0KDQkNCS0JDQoNCj0KjQmNCLINCU0KDQkNCT0JDQnQor0JrQoNCQ0JLQkNCg0KPQqNCY0Isg0JjQm9CY0IjQkAor0JrQoNCQ0JLQkNCg0KPQqNCY0Isg0KLQoNCY0JLQo9CdCivQmtCg0JDQktCQ0KDQo9Co0JjQiyDQktCY0KLQntCc0JjQoAor0JrQoNCQ0JLQmNCLINCU0KPQqNCQ0J0KK9Ca0KDQkNCS0JjQiyDQnNCY0JvQkNCdCivQmtCg0JDQktCY0Isg0J/QldCi0JDQoAor0JrQoNCQ0JLQidCQ0J3QkNCmINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQmtCg0JDQktCJ0JDQndCQ0KYg0JjQktCQ0J3QmtCQCivQmtCg0JHQkNCK0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0KDQkdCQ0IrQldCS0JjQiyDQnNCY0JvQkNCdCivQmtCg0JHQkNCK0JXQktCY0Isg0KHQkNCo0JAKK9Ca0KDQkdCQ0JLQkNCmINCI0JXQm9CQCivQmtCg0KbQmNCLINCR0KDQkNCi0JjQnNCY0KAKK9Ca0KDQptCj0J3QntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JrQoNCP0JDQm9CY0Isg0JTQoNCQ0JPQkNCdCivQmtCg0I/QkNCb0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KDQj9CY0Isg0JLQmNCU0J7QiNCVCivQmtCg0JXQqNCeINCV0JzQmNCgCivQmtCg0JXQptCj0Jsg0JvQmNCU0JjQiNCQCivQmtCg0JXQptCj0Ikg0JzQkNCg0JjQiNCQCivQmtCg0JXQkyDQldCU0KPQkNCg0JQKK9Ca0KDQldCTINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KDQldCI0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCg0JXQiNCY0Isg0IjQntCS0JDQnQor0JrQoNCV0IjQmNCLINCc0JDQoNCY0J3QmtCeCivQmtCg0JXQiNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCg0JXQiNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCg0JXQiNCY0Isg0KHQotCe0IjQkAor0JrQoNCV0JrQmNCLINCR0JDQoNCY0KjQkCDQlNCgCivQmtCg0JXQmtCY0Isg0JXQndCS0JXQoAor0JrQoNCV0JrQmNCLINCk0KDQkNCK0JAKK9Ca0KDQldCa0JjQiyDQnNCY0JvQldCd0JAKK9Ca0KDQldCa0J4g0InQo9CR0JjQptCQCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQmtCb0JDQoNCQCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQidCj0JHQkAor0JrQoNCV0JzQldCd0J7QktCY0Isg0InQo9CR0JAKK9Ca0KDQldCc0JXQndCe0JLQmNCLINCJ0KPQkdCQCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0JrQoNCV0JzQldCd0J7QktCY0Isg0JzQmNCb0JXQndCQCivQmtCg0JXQnNCV0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JrQoNCV0JzQldCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JrQoNCV0JzQldCd0J7QktCY0Isg0JzQmNCg0JrQngor0JrQoNCV0JzQldCd0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Ca0KDQldCc0JXQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ca0KDQldCc0JXQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0KDQldCc0JXQndCe0JLQmNCLINCh0JjQndCY0KjQkAor0JrQoNCV0JzQldCd0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Ca0KDQldCc0JXQndCe0JLQmNCLINCh0KLQkNCd0JrQngor0JrQoNCV0JzQldCd0J7QktCY0Isg0KHQotCV0JLQngor0JrQoNCV0JzQldCd0J7QktCY0Isg0JLQntCI0JjQnQor0JrQoNCV0JzQldCgINCV0JvQmNCX0JDQkdCV0KLQkAor0JrQoNCV0JzQldCgINCk0KDQkNCK0JAKK9Ca0KDQldCc0JXQoCDQiNCe0JLQkNCdCivQmtCg0JXQnNCV0KAg0JrQkNCi0JjQptCQCivQmtCg0JXQnNCV0KAg0JzQkNCi0JjQiNCQCivQmtCg0JXQnNCV0KAg0J/QkNCI0JAKK9Ca0KDQldCc0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0KDQldCc0JjQiyDQidCj0JHQntCc0JjQoAor0JrQoNCV0JzQn9CQ0KHQmtCYLdCQ0J3QlNCg0JjQiyDQpdCY0JvQlNCQCivQmtCg0JXQnNCf0JDQodCa0Jgg0JXQm9CY0JfQkNCR0JXQotCQCivQmtCg0JXQodCQ0J3QmtCeINCb0JDQodCb0J4KK9Ca0KDQldCh0JDQndCa0J4g0JzQkNCg0JPQmNCi0JAKK9Ca0KDQldCh0JDQndCa0J4g0JzQkNCg0JjQiNCQCivQmtCg0JXQodCY0Isg0IjQkNCK0JAKK9Ca0KDQldCh0JjQiyDQnNCY0JvQldCd0JAKK9Ca0KDQldCh0JjQiyDQnNCY0KLQkNCgCivQmtCg0JXQodCY0Isg0KHQm9CQ0JLQmtCeCivQmtCg0JXQodCeINCo0JDQi9CY0KAKK9Ca0KDQldCh0J7QiNCQINCU0KPQqNCa0J4KK9Ca0KDQldCh0J7QiNCQINCc0JDQoNCY0J3QmtCeCivQmtCg0JXQodCe0IjQldCS0JjQiyDQlNCQ0JzQiNCQ0J0KK9Ca0KDQldCh0J7QiNCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQmtCg0JXQodCe0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQmtCg0JXQodCe0IjQldCS0JjQiyDQodCg0JHQntCh0JvQkNCSCivQmtCg0JXQodCe0IjQldCS0JjQiyDQktCV0KHQndCQCivQmtCg0JXQodCe0IjQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JrQoNCV0KHQntCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0KDQldCh0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQoNCV0KHQntCS0JjQiyDQktCQ0KHQngor0JrQoNCV0KHQotCQINCQ0KDQn9CQ0JQKK9Ca0KDQldCh0KLQkCDQkNCi0JjQm9CQCivQmtCg0JXQodCi0JjQiyDQlNCQ0KTQmNCd0JAKK9Ca0KDQldCh0KLQmNCLINCd0JDQlNCQCivQmtCg0JXQodCi0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KDQldCh0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KDQldCS0JXQqNCY0Isg0JrQkNCg0JvQngor0JrQoNCV0JLQldCo0JjQiyDQmtCQ0KLQkAor0JrQoNCT0JAg0JPQkNCS0KDQkAor0JrQoNCT0JAg0JzQkNCd0JUKK9Ca0KDQk9CQINCc0JDQoNCQCivQmtCg0JPQkCDQnNCY0JvQkNCdCivQmtCg0JPQkCDQnNCY0JvQntCoCivQmtCg0JPQkCDQktCQ0KHQkAor0JrQoNCT0JjQnSDQnNCb0JDQlNCV0J0KK9Ca0KDQk9CY0J0g0J3QkNCU0JAKK9Ca0KDQk9CY0J0g0J3QldCU0JXQidCa0J4KK9Ca0KDQk9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQmtCg0JPQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JrQoNCT0J7QktCY0Isg0IjQntCS0J4KK9Ca0KDQk9Ce0JLQmNCLINCc0JDQm9CY0KjQkAor0JrQoNCT0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQmtCg0JPQntCS0JjQiyDQnNCY0IvQngor0JrQoNCT0J7QktCY0Isg0JzQmNCb0JDQnQor0JrQoNCT0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQoCDQm9CV0JrQkNCgCivQmtCg0JPQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JrQoNCT0J7QktCY0Isg0KDQkNCi0JrQngor0JrQoNCT0J7QktCY0Isg0KHQnNCY0InQkAor0JrQoNCT0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Ca0KDQk9Ce0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ca0KDQk9Ce0JLQmNCLINCS0JvQkNCU0JAKK9Ca0KDQk9Ce0JLQmNCLINCS0KPQmtCe0JzQkNCdINCU0JjQn9CbINCY0J3Qkwor0JrQoNCT0J7QktCY0Isg0JfQntCg0JjQptCQCivQmtCg0JjQqCDQn9CV0KLQkNCgCivQmtCg0JjQqNCQ0J0g0JHQntCh0JjQidCa0JAKK9Ca0KDQmNCo0JDQnSDQlNCg0JDQk9Ce0IjQm9CeCivQmtCg0JjQqNCQ0J0g0JzQkNCi0JjQiNCQCivQmtCg0JjQqNCQ0J0g0JzQmNCb0J7QqAor0JrQoNCY0KjQkNCdINCS0KPQmtCY0KbQkAor0JrQoNCY0KjQkNCdINCX0JTQoNCQ0JLQmtCeCivQmtCg0JjQqNCQ0J3QntCSINCI0J7QktCQ0J0KK9Ca0KDQmNCo0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Ca0KDQmNCo0KLQniDQiNCj0JvQmNCI0JDQndCQCivQmtCg0JjQliDQiNCQ0J3QmtCeCivQmtCg0JjQliDQn9CQ0JLQldCbCivQmtCg0JjQltCQ0Jog0JDQndCQCivQmtCg0JjQltCQ0J0g0KjQkNCd0JTQntCgCivQmtCg0JjQltCQ0J0g0ILQo9Cg0JAKK9Ca0KDQmNCW0JDQnSDQkNCd0JjQptCQCivQmtCg0JjQltCQ0J0g0JXQlNCj0JDQoNCUCivQmtCg0JjQltCQ0J0g0IjQkNCd0J7QqAor0JrQoNCY0JbQkNCdINCI0KPQm9CQCivQmtCg0JjQltCQ0J0g0JvQkNCh0JvQngor0JrQoNCY0JbQkNCdINCc0JDQoNCY0IjQkAor0JrQoNCY0JbQkNCdINCc0JDQotCY0IjQkAor0JrQoNCY0JbQkNCdINCc0JjQmtCb0J7QqAor0JrQoNCY0JbQkNCdINCg0J7QltCQCivQmtCg0JjQltCQ0J3QmNCLINCI0J7QktCQ0J0KK9Ca0KDQmNCW0JDQndCY0Isg0IjQntCS0JDQnQor0JrQoNCY0JbQkNCd0JjQiyDQnNCY0JvQldCd0JrQngor0JrQoNCY0JbQkNCd0JjQiyDQodCb0JDQgtCQ0J3QkAor0JrQoNCY0JbQkNCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCg0JjQltCQ0J3QntCS0JjQiyDQltCj0JbQkNCd0JAKK9Ca0KDQmNCW0J3QkNCgINCR0J7QiNCQ0J0KK9Ca0KDQmNCW0J3QkNCgINCc0JDQoNCQCivQmtCg0JjQltCd0JDQoCDQnNCY0KDQmtCeINCU0KAg0JTQmNCf0Jsg0JjQndCTCivQmtCg0JjQltCd0JDQoCDQotCe0JzQkCDQlNCY0J/QmyDQmNCd0JMKK9Ca0KDQmNCc0KjQkNCc0KXQkNCb0J7QkiDQl9CQ0JjQlNCQCivQmtCg0JjQndCa0J7QktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQoNCY0J3QmtCe0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0KDQmNCd0JrQntCS0KHQmtCYINCS0JXQoNCe0J3QmNCa0JAKK9Ca0KDQmNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0JrQoNCY0KHQotCY0Isg0J3QkNCU0JAKK9Ca0KDQmNCh0KLQmNCQ0J0g0IjQntCW0JXQpAor0JrQoNCY0KHQotCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JrQoNCY0KHQotCe0JLQmNCLINCg0KPQlNCe0JvQpAor0JrQoNCY0JLQkNCaINCQ0J3QkAor0JrQoNCY0JLQkNCaINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0KDQmNCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JrQoNCY0JLQmNCLINCJ0JjQidCQ0J3QkAor0JrQoNCY0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQoNCY0JLQntCo0JjQiNCQINCW0JjQktCa0J4KK9Ca0KDQmNCS0J7QqNCY0IjQkCDQpNCg0JDQitCeCivQmtCg0JjQktCe0KjQmNCI0JAg0JzQmNCb0JUKK9Ca0KDQmNCS0J7QmtCQ0J/QmNCLINCQ0JzQkNCb0JjQiNCQCivQmtCg0JjQktCe0JrQkNCf0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0KDQmNCS0J7QmtCQ0J/QmNCLINCc0JDQoNCi0JjQnQor0JrQoNCY0JLQntCa0JDQn9CY0Isg0J3QldCU0JXQidCa0J4KK9Ca0KDQmNCS0J7QmtCQ0J/QmNCLINCd0JXQktCV0J3QmtCQINCU0JjQn9CbINCV0KbQpgor0JrQoNCY0JLQntCa0JDQn9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0JrQoNCY0JLQntCa0JDQn9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQoNCY0JLQntCa0JDQn9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQoNCY0JLQntCa0JDQn9CY0Isg0KHQotCV0JLQkNCdCivQmtCg0JjQktCe0JrQkNCf0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCg0JjQktCe0JrQo9CL0JAg0ILQntCg0ILQlQor0JrQoNCY0JLQntCa0KPQi9CQINCU0JXQiNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQmtCg0JjQktCe0JrQo9CL0JAg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCg0JjQktCe0JrQo9CL0JAg0JTQoNCQ0JPQmNCm0JAKK9Ca0KDQmNCS0J7QmtCj0IvQkCDQlNCg0JDQk9Ce0JzQmNCgCivQmtCg0JjQktCe0JrQo9CL0JAg0JTQoNCQ0JPQntCc0JjQoAor0JrQoNCY0JLQntCa0KPQi9CQINCU0KPQqNCQ0J0KK9Ca0KDQmNCS0J7QmtCj0IvQkCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQoNCY0JLQntCa0KPQi9CQINCI0J7QktCQ0J0KK9Ca0KDQmNCS0J7QmtCj0IvQkCDQiNCj0JvQmNCI0JDQndCQCivQmtCg0JjQktCe0JrQo9CL0JAg0JzQmNCb0JDQnQor0JrQoNCY0JLQntCa0KPQi9CQINCc0JjQm9CY0KbQkAor0JrQoNCY0JLQntCa0KPQi9CQINCc0JjQm9Ca0JAKK9Ca0KDQmNCS0J7QmtCj0IvQkCDQnNCY0J7QlNCg0JDQkwor0JrQoNCY0JLQntCa0KPQi9CQINCf0JXQotCQ0KAKK9Ca0KDQmNCS0J7QmtCj0IvQkCDQoNCQ0JTQntCh0JvQkNCSCivQmtCg0JjQktCe0JrQo9CL0JAg0KDQkNCU0J7QktCQ0J0KK9Ca0KDQmNCX0JHQkNCYINCX0J7Qm9Ci0JDQnQor0JrQoNCa0JXQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQoNCa0JXQidCV0Kgg0JHQntCg0JjQoQor0JrQoNCa0JXQidCY0Isg0JzQntCc0KfQmNCb0J4KK9Ca0KDQmtCV0InQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JrQoNCa0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQoNCa0JvQldCmINCI0J7QodCY0J8KK9Ca0KDQmtCb0JXQpiDQktCV0KDQkAor0JrQoNCa0JvQldCmINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KDQmtCJ0JXQqCDQgtCj0KDQngor0JrQoNCa0InQldCoINCR0J7QoNCQCivQmtCg0JrQidCV0Kgg0JzQmNCb0JUg0JTQoAor0JrQoNCa0InQmNCLINCC0KPQoNCeCivQmtCg0JrQidCY0Isg0JTQoNCQ0JPQkNCdCivQmtCg0JrQidCY0Isg0JzQmNCb0JDQnQor0JrQoNCa0InQmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCg0JrQidCY0Isg0J3QmNCa0J7Qm9CQCivQmtCg0JrQidCY0Isg0J7QodCi0J7QiNCQCivQmtCg0JrQidCj0Kgg0JHQntCo0JrQngor0JrQoNCa0InQo9CoINCR0KDQkNCd0JrQngor0JrQoNCa0InQo9CoINCU0KDQkNCT0JDQndCQCivQmtCg0JrQidCj0Kgg0JTQo9Co0JDQndCa0JAKK9Ca0KDQmtCJ0KPQqCDQlNCj0KjQkNCdCivQmtCg0JrQidCj0Kgg0IjQldCb0JXQndCQCivQmtCg0JrQidCj0Kgg0IjQldCb0JjQptCQCivQmtCg0JrQidCj0Kgg0JrQoNCY0KHQotCY0J3QkAor0JrQoNCa0InQo9CoINCJ0KPQkdCY0J3QmtCQCivQmtCg0JrQidCj0Kgg0InQo9CR0J7QnNCY0KDQmtCQINCU0KAKK9Ca0KDQmtCJ0KPQqCDQnNCY0JvQkNCdCivQmtCg0JrQidCj0Kgg0JzQmNCb0JDQnQor0JrQoNCa0InQo9CoINCc0JjQm9CY0KbQkAor0JrQoNCa0InQo9CoINCc0JjQm9Ce0KDQkNCUCivQmtCg0JrQidCj0Kgg0JzQmNCg0J7QodCb0JDQkgor0JrQoNCa0InQo9CoINCc0J7QnNCn0JjQm9CeCivQmtCg0JrQidCj0Kgg0J/QldCi0JDQoAor0JrQoNCa0InQo9CoINCf0JXQotCQ0KAKK9Ca0KDQmtCJ0KPQqCDQoNCQ0JTQlQor0JrQoNCa0InQo9CoINCh0JvQkNCS0JrQngor0JrQoNCa0InQo9CoINCh0JvQntCR0J7QlNCQ0J0KK9Ca0KDQmtCJ0KPQqCDQodCi0JXQktCQ0J0KK9Ca0KDQmtCJ0KPQqCDQktCV0KDQmNCm0JAKK9Ca0KDQmtCe0JHQkNCR0JjQiyDQmNCb0JjQiNCQCivQmtCg0JrQntCR0JDQkdCY0Isg0JLQldCg0JjQptCQCivQmtCg0JrQntCS0JjQiy3QiNCj0J/QldCaINCU0KPQqNCQ0J3QmtCQCivQmtCg0JzQkNCgINCU0KPQqNCQ0J0KK9Ca0KDQnNCQ0KAg0IjQkNCh0J3QkAor0JrQoNCc0JDQoCDQnNCQ0KDQmtCeCivQmtCg0JzQkNCgINCX0J7QoNCQCivQmtCg0JzQn9Ce0KIg0JPQntCI0JrQngor0JrQoNCc0J/QntCiINCb0JDQl9CQ0KAKK9Ca0KDQnNCf0J7QotCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ca0KDQnNCf0J7QotCY0Isg0JLQntCI0JjQodCb0JDQkiDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JrQoNCc0J/QntCi0JjQiyDQktCj0JrQmNCm0JAKK9Ca0KDQndCn0JXQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ca0KDQndCQ0IjQkNCmINCW0JjQktCQ0J0KK9Ca0KDQndCQ0IjQkNCmINCY0JLQkNCdCivQmtCg0J3QkNCI0JDQpiDQnNCe0JzQp9CY0JvQngor0JrQoNCd0JDQiNCQ0KYg0J3QldCS0JXQndCa0JAKK9Ca0KDQndCQ0IjQkNCmINCf0JXQotCQ0KAKK9Ca0KDQndCQ0IjQkNCmINCg0JDQlNCe0JLQkNCdCivQmtCg0J3QkNCI0JDQpiDQl9Cb0JDQotCY0KbQkAor0JrQoNCd0JDQiNCh0JrQmCDQnNCY0JvQntCg0JDQlAor0JrQoNCd0JTQmNCI0JAg0JHQntCT0J7QidCj0JEKK9Ca0KDQndCU0JjQiNCQINCR0KDQkNCd0JrQngor0JrQoNCd0JTQmNCI0JAg0JzQkNCg0JrQngor0JrQoNCd0JTQmNCI0JAg0JzQmNCb0J7QktCQ0J0KK9Ca0KDQndCU0JjQiNCQINCd0JXQndCQ0JQKK9Ca0KDQndCU0JjQiNCQINCf0JXQotCQ0KAKK9Ca0KDQndCU0JjQiNCQINCh0KLQkNCd0JAKK9Ca0KDQndCU0JjQiNCQINCh0KLQldCS0J4KK9Ca0KDQndCU0JjQiNCQINCS0J7QiNCY0J0KK9Ca0KDQndCV0KLQkCDQkdCe0JPQlNCQ0J0KK9Ca0KDQndCV0KLQkCDQiNCV0JvQmtCQCivQmtCg0J3QldCi0JAg0JzQmNCb0J7QoNCQ0JQKK9Ca0KDQndCV0KLQkCDQnNCY0JvQntCh0JDQktCQCivQmtCg0J3QldCi0JAg0J3QmNCa0J7Qm9CQCivQmtCg0J3QldCi0JAg0KDQkNCU0JUKK9Ca0KDQndCV0KLQkCDQodCb0J7QkdCe0JTQkNCdCivQmtCg0J3QldCi0JAg0KHQotCV0JLQkNCdCivQmtCg0J3QldCi0JjQiyDQk9Ce0IjQmtCeCivQmtCg0J3QldCi0JjQiyDQiNCe0JLQkNCdCivQmtCg0J3QmNCLINCQ0J3QkAor0JrQoNCd0JjQiyDQn9CV0KDQkAor0JrQoNCd0JjQiyDQoNCQ0JTQntCI0JrQkAor0JrQoNCd0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KDQndCY0Isg0KHQotCY0J/Qngor0JrQoNCd0JjQiNCQINCc0JDQoNCY0J3QmtCeCivQmtCg0IrQkNCY0Isg0JTQoNCQ0JPQngor0JrQoNCK0JDQmNCLINCT0J7QoNCQ0J0KK9Ca0KDQitCQ0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQoNCK0JDQiNCY0Isg0JTQo9Co0JDQndCa0JAKK9Ca0KDQitCQ0IjQmNCLINCY0JvQmNCI0JAKK9Ca0KDQitCQ0IjQmNCLINCY0JLQmNCm0JAKK9Ca0KDQitCQ0IjQmNCLINCI0J7QktCQ0J0KK9Ca0KDQitCQ0IjQmNCLINCc0JjQm9Ce0KgKK9Ca0KDQitCQ0IjQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0KDQitCQ0IjQmNCLINCg0JDQlNCe0JzQmNCgCivQmtCg0IrQldCo0JXQktCQ0KYg0KHQkNCS0JAKK9Ca0KDQitCV0KLQkCDQm9CV0J/QntCh0JDQktCQCivQmtCg0IrQldCi0JAg0J3QntCS0JDQmgor0JrQoNCK0JXQotCY0J0g0JbQmNCS0JrQngor0JrQoNCK0JXQotCY0J0g0JHQoNCQ0J3QmtCeCivQmtCg0IrQldCi0JjQnSDQlNCg0JDQk9CQ0J0KK9Ca0KDQitCV0KLQmNCdINCI0J7QktCQ0J0KK9Ca0KDQitCV0KLQmNCdINCa0JDQotCY0KbQkAor0JrQoNCK0JXQotCY0J0g0JzQkNCI0JAKK9Ca0KDQitCV0KLQmNCdINCc0JjQmtCQCivQmtCg0IrQldCi0JjQnSDQodCQ0JLQkAor0JrQoNCK0JjQiyDQmNCS0JDQnQor0JrQoNCK0KPQm9CQ0KYg0JTQo9Co0JDQnQor0JrQoNCd0J7QiNCV0JvQkNCmINCU0JDQndCY0JvQngor0JrQoNCe0KjQm9CQ0Jog0KHQotCV0JLQkNCdCivQmtCg0J7QnNCR0KXQntCb0KYg0JXQnNCY0JsKK9Ca0KDQntCc0KXQntCb0KYg0JrQkNCg0JvQngor0JrQoNCe0JzQn9CY0Isg0InQmNCJ0JDQndCQINCf0KDQntCk0JXQodCe0KAKK9Ca0KDQntCc0J/QmNCLINCJ0KPQkdCY0KbQkAor0JrQoNCe0JzQn9CY0Isg0JzQmNCb0JDQnQor0JrQoNCe0JzQn9CY0Isg0KHQotCQ0J3QmtCeCivQmtCg0J7QndCQ0JLQldCi0JXQoCDQkNCb0KTQoNCV0JQKK9Ca0KDQntCd0JjQiyDQm9CQ0JfQkNCgCivQmtCg0J7QndCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0KDQntCK0JAg0JjQktCQ0J0KK9Ca0KDQntCK0JAg0JjQktCQ0J0KK9Ca0KDQntCK0JAg0JzQmNCb0JDQndCa0JAKK9Ca0KDQntCf0Kgg0KXQmNCb0JTQkAor0JrQoNCe0J/QkNCn0JXQmiDQmNCS0JDQnQor0JrQoNCe0J/QpCDQkNCd0ILQldCb0JrQkAor0JrQoNCe0J/QpCDQpNCg0JDQitCQCivQmtCg0J/QkNCdINCW0JXQidCa0J4KK9Ca0KDQn9CQ0J0g0JjQktCQ0J0KK9Ca0KDQn9CQ0J0g0InQmNCJ0JDQndCQCivQmtCg0J/QkNCdINCc0JjQoNCa0J4KK9Ca0KDQn9CQ0J0g0KHQotCV0JLQkNCdCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoNCa0JAKK9Ca0KDQodCc0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9Ca0KDQodCc0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JrQoNCh0JzQkNCd0J7QktCY0Isg0KbQktCY0IjQkNCdCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQmtCg0KHQnNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Ca0KDQodCc0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ca0KDQodCc0JDQndCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQntCR0KDQldCdCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQodCQ0KjQkAor0JrQoNCh0JzQkNCd0J7QktCY0Isg0KHQm9CQ0JLQntCI0JrQkAor0JrQoNCh0JzQkNCd0J7QktCY0Isg0KHQoNCV0KLQldCdCivQmtCg0KHQnNCQ0J3QntCS0JjQiyDQktCQ0KHQkAor0JrQoNCh0J3QmNCaINCI0J7QnQor0JrQoNCh0J3QmNCaINCc0JDQoNCY0IjQkAor0JrQoNCh0KLQkNCI0JjQiyDQnNCY0JvQntCI0JjQptCQCivQmtCg0KHQotCQ0IjQmNCLINCf0JXQoNCa0J4KK9Ca0KDQodCi0JDQndCe0JLQmNCLINCm0JLQmNCI0J4KK9Ca0KDQodCi0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Ca0KDQodCi0JDQndCe0JLQmNCLINCk0KDQkNCK0JAKK9Ca0KDQodCi0JDQndCe0JLQmNCLINCY0JLQkNCd0JrQkAor0JrQoNCh0KLQkNCd0J7QktCY0Isg0JrQntCh0KLQkAor0JrQoNCh0KLQkNCd0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ca0KDQodCi0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ca0KDQodCi0JXQmtCQ0J3QmNCLINCn0JXQlNCe0JzQmNCgCivQmtCg0KHQotCV0JrQkNCd0JjQiyDQkNCd0JAKK9Ca0KDQodCi0JXQmtCQ0J3QmNCLINCa0KDQmNCh0KLQmNCd0JAKK9Ca0KDQodCi0JXQmtCQ0J3QmNCLINCg0JDQotCe0JzQmNCgCivQmtCg0KHQotCV0JLQodCa0Jgg0JTQoNCQ0JPQntCh0JvQkNCSCivQmtCg0KHQotCV0JLQodCa0Jgg0KHQotCQ0J3QmNCh0JvQkNCSCivQmtCg0KHQotCY0Ist0KjQotCY0JzQkNCmINCh0J/QkNCh0JXQndCY0IjQkCDQlNCgCivQmtCg0KHQotCY0Isg0JbQkNCg0JrQngor0JrQoNCh0KLQmNCLINCW0JjQktCQ0J0KK9Ca0KDQodCi0JjQiyDQltCY0JLQmtCeCivQmtCg0KHQotCY0Isg0JbQmNCS0JrQngor0JrQoNCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQodCi0JjQiyDQgtCe0KDQgtCVCivQmtCg0KHQotCY0Isg0ILQntCg0ILQlQor0JrQoNCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQodCi0JjQiyDQgtCe0KDQgtCVCivQmtCg0KHQotCY0Isg0ILQntCg0ILQlQor0JrQoNCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQodCi0JjQiyDQgtCe0KDQgtCVCivQmtCg0KHQotCY0Isg0ILQntCg0ILQlQor0JrQoNCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQodCi0JjQiyDQgtCe0KDQgtCVCivQmtCg0KHQotCY0Isg0ILQntCg0ILQlQor0JrQoNCh0KLQmNCLINCC0J7QoNCC0JUKK9Ca0KDQodCi0JjQiy3QgtCj0KDQp9CI0JDQndCh0JrQmCDQoNCj0JbQldCd0JrQkAor0JrQoNCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9Ca0KDQodCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQoNCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCg0KHQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0KDQodCi0JjQiyDQkNCd0JTQoNCY0IjQkAor0JrQoNCh0KLQmNCLINCQ0J3QmNCm0JAKK9Ca0KDQodCi0JjQiyDQkdCe0KjQmtCeCivQmtCg0KHQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ca0KDQodCi0JjQiyDQkdCe0JbQmNCU0JDQoAor0JrQoNCh0KLQmNCLINCR0J7QltCY0JTQkNCgCivQmtCg0KHQotCY0Isg0JHQntCT0JTQkNCdCivQmtCg0KHQotCY0Isg0JHQntCg0JjQktCe0IgKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCa0JAKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCa0JAKK9Ca0KDQodCi0JjQiyDQkdCg0JDQndCa0J4KK9Ca0KDQodCi0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0KDQodCi0JjQiyDQlNCV0KHQkNCd0JrQkAor0JrQoNCh0KLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQoNCh0KLQmNCLINCU0J7QkdCg0JjQm9CQCivQmtCg0KHQotCY0Isg0JTQntCR0KDQmNCb0JAKK9Ca0KDQodCi0JjQiyDQlNCe0JHQoNCY0J3QmtCQCivQmtCg0KHQotCY0Isg0JTQntCR0KDQntCh0JvQkNCSCivQmtCg0KHQotCY0Isg0JTQoNCQ0JPQkNCdCivQmtCg0KHQotCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Ca0KDQodCi0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmtCg0KHQotCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQmtCg0KHQotCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JrQoNCh0KLQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQmtCg0KHQotCY0Isg0JTQo9Co0JDQnQor0JrQoNCh0KLQmNCLINCU0KPQqNCa0J4KK9Ca0KDQodCi0JjQiyDQldCi0JXQm9Ca0JAKK9Ca0KDQodCi0JjQiyDQldCS0JjQptCQCivQmtCg0KHQotCY0Isg0JPQkNCS0KDQkAor0JrQoNCh0KLQmNCLLdCT0KPQndCV0Jog0JzQkNCg0JjQiNCQCivQmtCg0KHQotCY0Isg0JjQm9CY0IjQkAor0JrQoNCh0KLQmNCLINCY0JLQkNCdINCU0KAKK9Ca0KDQodCi0JjQiyDQiNCV0JvQldCd0JAKK9Ca0KDQodCi0JjQiyDQiNCV0JvQldCd0JAKK9Ca0KDQodCi0JjQiyDQiNCe0KDQlNCQ0J0KK9Ca0KDQodCi0JjQiyDQiNCe0JLQkNCdCivQmtCg0KHQotCY0Isg0IjQntCS0JDQnQor0JrQoNCh0KLQmNCLINCI0J7QktCQ0J0KK9Ca0KDQodCi0JjQiyDQmtCQ0JzQldCd0JrQngor0JrQoNCh0KLQmNCLINCa0JDQnNCV0J3QmtCeCivQmtCg0KHQotCY0Isg0JrQkNCi0JjQptCQCivQmtCg0KHQotCY0Isg0JrQkNCi0JjQptCQCivQmtCg0KHQotCY0Isg0JrQkNCi0JjQptCQCivQmtCg0KHQotCY0Isg0JrQntCg0J3QldCb0JjQiNCQCivQmtCg0KHQotCY0Isg0JvQkNCX0JDQoAor0JrQoNCh0KLQmNCLINCb0JDQl9CQ0KAKK9Ca0KDQodCi0JjQiyDQidCY0InQkNCd0JAKK9Ca0KDQodCi0JjQiyDQidCY0InQkNCd0JAKK9Ca0KDQodCi0JjQiyDQidCj0JHQmNCo0JAKK9Ca0KDQodCi0JjQiyDQidCj0JHQmNCo0JAKK9Ca0KDQodCi0JjQiyDQidCj0JHQmNCm0JAKK9Ca0KDQodCi0JjQiyDQidCj0JHQmNCd0JrQkAor0JrQoNCh0KLQmNCLINCJ0KPQkdCY0KHQkNCSCivQmtCg0KHQotCY0Isg0InQo9CR0J7QnNCY0KAKK9Ca0KDQodCi0JjQiyDQidCj0JHQntCc0JjQoAor0JrQoNCh0KLQmNCLINCJ0KPQkdCe0JzQmNCgCivQmtCg0KHQotCY0Isg0InQo9CR0J7QnNCY0KAKK9Ca0KDQodCi0JjQiyDQidCj0JHQntCc0JjQoAor0JrQoNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0JrQoNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0JrQoNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0JrQoNCh0KLQmNCLINCc0JDQoNCa0J4KK9Ca0KDQodCi0JjQiyDQnNCY0JvQkNCU0JjQnQor0JrQoNCh0KLQmNCLINCc0JjQm9CQ0J0KK9Ca0KDQodCi0JjQiyDQnNCY0JvQkNCdCivQmtCg0KHQotCY0Isg0JzQmNCb0JDQnQor0JrQoNCh0KLQmNCLINCc0JjQm9CV0J3QmtCeCivQmtCg0KHQotCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0KDQodCi0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0KDQodCi0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0KDQodCi0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0KDQodCi0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0KDQodCi0JjQiyDQnNCY0JvQmNCm0JAKK9Ca0KDQodCi0JjQiyDQnNCY0JvQntCoCivQmtCg0KHQotCY0Isg0JzQmNCb0J7QqAor0JrQoNCh0KLQmNCLINCc0JjQm9Ce0IjQmtCeCivQmtCg0KHQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0KDQodCi0JjQiyDQnNCY0JvQntCg0JDQlAor0JrQoNCh0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQmtCg0KHQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ca0KDQodCi0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQoNCh0KLQmNCLINCc0JjQm9Ce0JLQkNCdCivQmtCg0KHQotCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ca0KDQodCi0JjQiyDQnNCY0J3Qp9CVINCU0JjQn9CbINCY0J3Qkwor0JrQoNCh0KLQmNCLINCc0JjQntCU0KDQkNCTCivQmtCg0KHQotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0KDQodCi0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQoNCh0KLQmNCLINCc0JjQoNCa0J4KK9Ca0KDQodCi0JjQiyDQnNCY0KDQmtCeCivQmtCg0KHQotCY0Isg0JzQmNCg0J7QidCj0JEKK9Ca0KDQodCi0JjQiyDQnNCY0KDQntCJ0KPQkQor0JrQoNCh0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JrQoNCh0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JrQoNCh0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0KDQodCi0JjQiyDQnNCY0KLQkNCgCivQmtCg0KHQotCY0Isg0J3QkNCU0JAKK9Ca0KDQodCi0JjQiyDQndCV0JHQntCI0KjQkAor0JrQoNCh0KLQmNCLINCd0JXQndCQ0JQKK9Ca0KDQodCi0JjQiyDQndCV0J3QkNCUCivQmtCg0KHQotCY0Isg0J3QmNCa0J7Qm9CQCivQmtCg0KHQotCY0Isg0J3QmNCa0J7Qm9CQCivQmtCg0KHQotCY0Isg0J3QmNCa0J7Qm9CQCivQmtCg0KHQotCY0Isg0J3QntCS0JDQmgor0JrQoNCh0KLQmNCLINCd0J7QktCQ0JoKK9Ca0KDQodCi0JjQiyDQn9CV0KLQkNCgINCU0JjQn9CbINCY0J3Qkwor0JrQoNCh0KLQmNCLINCf0JXQotCQ0KAKK9Ca0KDQodCi0JjQiyDQn9CV0KLQkNCgCivQmtCg0KHQotCY0Isg0J/QldCi0JDQoAor0JrQoNCh0KLQmNCLINCf0JXQotCQ0KAKK9Ca0KDQodCi0JjQiyDQn9CV0KLQoNCj0J0KK9Ca0KDQodCi0JjQiyDQoNCQ0JTQmNCh0JDQkgor0JrQoNCh0KLQmNCLINCg0JDQlNCY0JLQntCICivQmtCg0KHQotCY0Isg0KDQkNCU0JjQktCe0IgKK9Ca0KDQodCi0JjQiyDQoNCQ0JTQntCI0JUKK9Ca0KDQodCi0JjQiyDQoNCQ0JTQntCc0JjQoAor0JrQoNCh0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQmtCg0KHQotCY0Isg0KDQkNCU0J7QodCQ0JIKK9Ca0KDQodCi0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmtCg0KHQotCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ca0KDQodCi0JjQiyDQoNCQ0KLQmtCeCivQmtCg0KHQotCY0Isg0KDQkNCi0JrQngor0JrQoNCh0KLQmNCLINCh0JDQktCQCivQmtCg0KHQotCY0Isg0KHQkNCS0JXQotCQCivQmtCg0KHQotCY0Isg0KHQmNCd0JjQqNCQCivQmtCg0KHQotCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ca0KDQodCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQmtCg0KHQotCY0Isg0KHQoNCC0JDQnQor0JrQoNCh0KLQmNCLINCh0KDQldCi0JXQnQor0JrQoNCh0KLQmNCLINCh0KLQkNCd0JrQngor0JrQoNCh0KLQmNCLINCh0KLQkNCd0J7QiNCVCivQmtCg0KHQotCY0Isg0KHQotCV0JLQkNCdCivQmtCg0KHQotCY0Isg0KHQotCV0JLQkNCdCivQmtCg0KHQotCY0Isg0KHQotCV0JLQkNCdCivQmtCg0KHQotCY0Isg0KHQotCV0JLQkNCdCivQmtCg0KHQotCY0Isg0KHQotCV0JLQkNCdCivQmtCg0KHQotCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JrQoNCh0KLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JrQoNCh0KLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JrQoNCh0KLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ca0KDQodCi0JjQiyDQodCS0JXQotCb0JDQndCQCivQmtCg0KHQotCY0Isg0KHQktCV0KLQntCX0JDQoAor0JrQoNCh0KLQmNCLINCi0JjQndCa0JAKK9Ca0KDQodCi0JjQiyDQo9CT0InQldCo0JAg0JTQoAor0JrQoNCh0KLQmNCLINCS0JDQodCQINCU0KAg0JvQldCa0JDQoAor0JrQoNCh0KLQmNCLINCS0JDQodCQCivQmtCg0KHQotCY0Isg0JLQkNCh0JjQm9CY0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9Ca0KDQodCi0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQmtCg0KHQotCY0Isg0JLQldCb0JjQnNCY0KAKK9Ca0KDQodCi0JjQiyDQktCV0InQmtCeCivQmtCg0KHQotCY0Isg0JLQldCg0JAKK9Ca0KDQodCi0JjQiyDQktCV0KDQkAor0JrQoNCh0KLQmNCLINCS0JXQodCV0JvQmNCdCivQmtCg0KHQotCY0Isg0JLQm9CQ0JTQkAor0JrQoNCh0KLQmNCLINCS0J7QiNCY0J0KK9Ca0KDQodCi0JjQiy3QktCg0JbQmNCd0JAg0JHQntCh0JDQndCa0JAKK9Ca0KDQodCi0JjQiyDQktCj0JrQmNCm0JAKK9Ca0KDQodCi0JjQiyDQl9Ce0KDQkNCdCivQmtCg0KHQotCY0Isg0JfQntCg0JDQnQor0JrQoNCh0KLQmNCdINCW0JjQktCa0JAKK9Ca0KDQodCi0JjQnSDQkdCg0JDQndCa0J4KK9Ca0KDQodCi0JjQnSDQmNCS0JDQnQor0JrQoNCh0KLQmNCdINCI0JXQm9Ca0JAKK9Ca0KDQodCi0JjQnSDQmtCe0KHQotCQCivQmtCg0KHQotCY0J0g0JvQkNCX0JDQoAor0JrQoNCh0KLQmNCdINCc0JvQkNCU0JXQnQor0JrQoNCh0KLQmNCdINCd0JDQotCQ0KjQkAor0JrQoNCh0KLQmNCdINCf0JXQotCQ0KAKK9Ca0KDQodCi0JjQnSDQodCb0JDQktCa0J4KK9Ca0KDQodCi0JjQnSDQodCi0JXQktCQ0J0KK9Ca0KDQodCi0JjQnSDQodCS0JXQotCe0JfQkNCgCivQmtCg0KHQotCY0J0g0JLQldCg0JAKK9Ca0KDQodCi0JjQnSDQktCb0JDQlNCQ0J0KK9Ca0KDQodCi0JjQnSDQl9Ce0KDQkNCdCivQmtCg0KHQotCY0J3QmNCLINCU0KDQkNCT0JDQnQor0JrQoNCh0KLQntCd0J7QqNCY0Isg0JbQmNCS0JDQnQor0JrQoNCh0KLQntCd0J7QqNCY0Isg0JHQntCh0JjQidCa0JAKK9Ca0KDQodCi0J7QndCe0KjQmNCLINCI0JXQm9CV0J3QkAor0JrQoNCh0KLQntCd0J7QqNCY0Isg0IjQntCS0JDQnQor0JrQoNCh0KLQntCd0J7QqNCY0Isg0InQo9CR0JjQptCQCivQmtCg0KHQotCe0J3QntCo0JjQiyDQnNCY0JvQkNCd0JrQkAor0JrQoNCh0KLQntCd0J7QqNCY0Isg0JzQmNCb0JXQndCa0J4KK9Ca0KDQodCi0J7QndCe0KjQmNCLINCc0JjQm9CV0J3QmtCeCivQmtCg0KHQotCe0J3QntCo0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQmtCg0KHQotCe0J3QntCo0JjQiyDQndCQ0JTQkAor0JrQoNCh0KLQntCd0J7QqNCY0Isg0J3QldCh0KLQntCgCivQmtCg0KHQotCe0J3QntCo0JjQiyDQn9CV0KLQkNCgCivQmtCg0KHQotCe0J3QntCo0JjQiyDQn9CV0KLQkNCgCivQmtCg0KHQotCe0J3QntCo0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KDQodCi0J7QndCe0KjQmNCLINCS0JXQoNCQCivQmtCg0KHQotCe0J3QntCo0JjQiyDQktCY0JTQkAor0JrQoNCh0KLQntCd0J7QqNCY0Isg0JfQm9CQ0KLQkCDQlNCgCivQmtCg0KHQotCe0J3QntCo0JjQiyDQl9Ce0KDQkAor0JrQoNCh0KLQntCS0KHQmtCYINCg0JDQlNCe0IjQmtCQCivQmtCg0KLQldCd0JjQiyDQkdCg0JDQndCa0J4KK9Ca0KDQotCV0J3QmNCLINCU0J7QkdCg0JjQm9CQCivQmtCg0KLQldCd0JjQiyDQn9CQ0JLQm9CVCivQmtCg0KLQmNCd0JjQiyDQkdCe0KDQkAor0JrQoNCi0JjQndCY0Isg0JTQkNCd0JUKK9Ca0KDQotCY0J3QmNCLINCU0JDQndCVCivQmtCg0KLQmNCd0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JrQoNCi0JjQndCY0Isg0JzQmNCg0JrQngor0JrQoNCi0JjQndCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQoNCi0JjQndCY0Isg0J3QkNCU0JAKK9Ca0KDQotCY0J3QmNCLINCh0JDQktCQCivQmtCg0KLQmNCd0JjQiyDQodCc0JjQidCQ0J3QkAor0JrQoNCi0JjQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQoNCj0KfQmNCn0JDQnSDQnNCY0JvQkNCdCivQmtCg0KPQqNCa0JAg0ILQntCg0ILQlQor0JrQoNCj0KjQmtCQINCh0KLQldCS0JDQnQor0JrQoNCj0JbQldCS0JjQiyDQlNCV0IjQkNCdCivQmtCg0KPQltCV0JLQmNCLINCd0JXQndCQ0JQKK9Ca0KDQo9CW0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JrQoNCj0JbQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JrQoNCj0JbQldCS0JjQiyDQl9Ce0KDQkNCdCivQmtCg0KPQltCY0Isg0JDQndCQCivQmtCg0KPQiSDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JrQoNCj0Ikg0JzQmNCb0JDQnQor0JrQoNCj0J3QmNCLINCW0JjQktCQ0J0KK9Ca0KDQo9Cd0JjQiyDQltCY0JLQntCg0JDQlAor0JrQoNCj0J3QmNCLINCC0J7QoNCC0JUKK9Ca0KDQo9Cd0JjQiyDQgtCe0KDQgtCVCivQmtCg0KPQndCY0Isg0ILQntCg0ILQlQor0JrQoNCj0J3QmNCLLdCR0JXQm9CY0Isg0JzQmNCb0JDQndCQCivQmtCg0KPQndCY0Isg0JHQoNCQ0J3QmtCeCivQmtCg0KPQndCY0Isg0JHQoNCQ0J3QmtCeCivQmtCg0KPQndCY0Isg0JHQoNCQ0J3QmtCeCivQmtCg0KPQndCY0Isg0JTQkNCg0JAKK9Ca0KDQo9Cd0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQmtCg0KPQndCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JrQoNCj0J3QmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Ca0KDQo9Cd0JjQiyDQmNCb0JjQiNCQCivQmtCg0KPQndCY0Isg0JjQm9Ce0J3QmtCQCivQmtCg0KPQndCY0Isg0IjQldCb0JXQndCQCivQmtCg0KPQndCY0Isg0InQo9CR0JjQqNCQCivQmtCg0KPQndCY0Isg0InQo9CR0JjQptCQCivQmtCg0KPQndCY0Isg0InQo9CR0J7QnNCY0KAKK9Ca0KDQo9Cd0JjQiyDQnNCY0IvQngor0JrQoNCj0J3QmNCLINCc0JjQmtCQCivQmtCg0KPQndCY0Isg0JzQmNCb0JDQndCa0JAKK9Ca0KDQo9Cd0JjQiyDQnNCY0JvQkNCdCivQmtCg0KPQndCY0Isg0JzQmNCb0J7QqAor0JrQoNCj0J3QmNCLINCd0J7QktCQ0JoKK9Ca0KDQo9Cd0JjQiyDQn9CQ0JLQm9CVCivQmtCg0KPQndCY0Isg0J/QldCg0JjQqNCQCivQmtCg0KPQndCY0Isg0J/Qm9CV0JzQldCd0JrQkAor0JrQoNCj0J3QmNCLINCg0JDQlNCe0IjQmtCQCivQmtCg0KPQndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQoNCj0J3QmNCLINCh0J7QpNCY0IjQkAor0JrQoNCj0J3QmNCLINCi0J7QqNCY0KbQkAor0JrQoNCj0J3QmNCLINCj0KDQntCoCivQmtCg0KPQndCY0Isg0JLQldCb0JjQp9Ca0J4KK9Ca0KDQo9Cd0JjQiyDQktCV0KDQmNCm0JAKK9Ca0KDQo9Cd0JjQiyDQl9CU0KDQkNCS0JrQngor0JrQoNCj0J/QldCW0JXQktCY0Isg0JTQkNCg0JjQndCa0JAKK9Ca0KDQo9Cf0JXQltCV0JLQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9Ca0KDQo9Cf0InQkNCd0JjQnSDQodCi0JDQndCQCivQmtCg0KPQn9CJ0JDQndCY0J0g0JLQldCh0JXQm9CQCivQmtCg0KPQotCQINCR0J7QltCQ0J3QkAor0JrQoNCj0KLQkCDQlNCg0JDQk9CQ0J0KK9Ca0KDQktCQ0JLQkNCmINCR0JjQodCV0KDQmtCQCivQmtCg0JLQkNCS0JjQptCQINCU0KDQkNCW0JXQnQor0JrQoNCS0JDQktCY0KbQkCDQotCe0JzQmNCh0JvQkNCSCivQmtCg0JLQntCf0JjQiyDQntCb0JPQkAor0JrQoNCX0JzQkNCd0J7QktCY0Isg0JzQkNCg0JPQkNCg0JXQotCQCivQmtCg0JfQndCQ0KDQmNCLINCc0JjQm9CVCivQmtCg0JfQndCQ0KDQmNCLINCS0JDQm9CV0J3QotCY0J3QkAor0JrQo9CnINCh0JvQntCR0J7QlNCQ0J0KK9Ca0KPQp9CV0KDQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQo9Cn0JXQoNCQINCh0KLQldCS0JDQnQor0JrQo9Cn0JjQiyDQndCY0JrQntCb0JAKK9Ca0KPQp9Cc0JDQqCDQmNCg0JXQndCQCivQmtCj0KfQnNCQ0Kgg0J3QkNCi0JDQqNCQCivQmtCj0KfQnNCQ0Kgg0J3QmNCa0J7Qm9CQCivQmtCj0KfQndCV0KAg0JvQkNCU0JjQodCb0JDQkgor0JrQo9Co0JDQmtCe0JLQmNCLINCh0JzQmNCJ0JAKK9Ca0KPQqNCb0JjQiyDQnNCY0JvQkNCdCivQmtCj0KjQidCQ0J0g0KHQm9CQ0JLQmtCeCivQmtCj0KjQidCY0Isg0JHQntCg0JjQodCb0JDQkgor0JrQo9Co0InQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0KPQqNCJ0JjQiyDQkdCe0KDQmNChCivQmtCj0Isg0KHQotCQ0J3QmtCQCivQmtCj0JbQkNCi0JrQniDQkNCd0JjQptCQCivQmtCj0JbQkNCi0JrQniDQldCc0JjQmwor0JrQo9CW0JDQotCa0J4g0JzQkNCg0KLQkAor0JrQo9CW0JDQotCa0J4g0JLQm9CQ0JTQmNCc0JjQoAor0JrQo9CW0JXQm9Ca0JAg0KHQmNCc0JAKK9Ca0KPQltCV0KLQmNCdINCR0J7QltCQCivQmtCj0JbQldCi0JjQnSDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JrQo9CW0JXQotCY0J0g0JzQkNCg0JAKK9Ca0KPQltCV0KLQmNCdINCc0JjQm9CQ0J0KK9Ca0KPQltCV0KLQmNCdINCd0J7QktCQ0JoKK9Ca0KPQltCV0JLQodCa0Jgg0JzQmNCb0JjQktCe0IjQlQor0JrQo9CW0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQmtCj0JbQmNCLINCc0JvQkNCU0JXQnQor0JrQo9CW0JjQiyDQnNCb0JDQlNCV0J0KK9Ca0KPQltCY0Isg0J/QldCi0JDQoAor0JrQo9CR0JDQitCYINCQ0J3QkAor0JrQo9CR0JDQndCe0JLQmCDQl9Cb0JDQotCa0J4KK9Ca0KPQkdCQ0KIg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ca0KPQkdCQ0KIg0KPQoNCe0KgKK9Ca0KPQkdCQ0KLQntCS0JjQiyDQkNCd0JAKK9Ca0KPQkdCQ0KLQntCS0JjQiyDQmNCb0JjQiNCQCivQmtCj0JHQldCn0JrQkCDQnNCY0JvQkNCdCivQmtCj0JHQldCiINCc0JjQm9CQ0J0KK9Ca0KPQkdCY0KfQldCb0JAg0J/QldCi0JDQoAor0JrQo9CR0JjQp9Ca0J4g0KTQldCg0JXQndCmCivQmtCj0JHQmNCm0JAg0KHQotCI0JXQn9CQ0J0KK9Ca0KPQkdCY0KbQkCDQktCV0KDQkAor0JrQo9CR0JjQmiDQpNCg0JDQndCm0JjQqNCa0JAKK9Ca0KPQkdCY0IrQldCmINCI0J7QodCY0J8KK9Ca0KPQkdCj0KDQmNCLINCc0JjQi9CeCivQmtCj0JHQo9Cg0JjQiyDQndCe0JLQmtCQCivQmtCj0JHQo9Cg0JjQiyDQodCS0JXQotCe0JfQkNCgCivQmtCj0KbQo9Cb0J7QktCY0Isg0JTQkNCd0JjQptCQCivQmtCj0KbQo9Cb0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JrQo9Cm0KPQoNCQ0KYg0JTQmNCc0JjQotCg0JjQiNCVCivQmtCj0KbQo9Cg0JDQpiDQnNCQ0KDQkAor0JrQo9Cm0KPQoNCQ0KYg0J3QkNCU0JXQltCU0JAKK9Ca0KPQptCj0KDQkNCmINCh0KLQldCS0JDQnQor0JrQo9Cm0KPQoNCh0JrQmCDQgtCj0KDQmNCm0JAKK9Ca0KPQptCj0KDQodCa0Jgg0JTQoNCQ0JPQntCc0JjQoAor0JrQo9Cm0KPQoNCh0JrQmCDQoNCQ0JTQmNCh0JvQkNCSCivQmtCj0JTQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9Ca0KPQlNCY0Isg0KHQotCV0JLQkAor0JrQo9CU0KDQkCDQlNCQ0J3QmNCI0JXQm9CQCivQmtCj0JTQoNCQINCe0JvQk9CQCivQmtCj0JTQoNCQLdCX0JjQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JrQo9CU0KDQmNCLINCU0JXQodCY0JzQmNCgCivQmtCj0JPQkCDQiNCe0JLQkNCdCivQmtCj0JPQmNCLINCY0JvQmNCI0JAKK9Ca0KPQk9CY0Isg0KDQkNCU0JzQmNCb0JAKK9Ca0KPQk9CY0Isg0KHQkNCS0JrQkAor0JrQo9CT0JvQmCDQmNCc0KDQlQor0JrQo9CT0JvQmCDQiNCe0KHQmNCfCivQmtCj0JPQm9CYINCc0JjQpdCQ0IjQm9CeCivQmtCj0JPQm9CYINCc0JjQpdCQ0IkKK9Ca0KPQk9Cb0Jgg0J/QkNCS0JDQngor0JrQo9CT0JvQmCDQoNCe0JbQmNCa0JAKK9Ca0KPQk9Cb0Jgg0KHQotCV0JLQkNCdCivQmtCj0KXQkNCI0JTQkCDQqNCQ0J3QlNCe0KAKK9Ca0KPQpdCQ0IjQlNCQINCa0KHQldCd0JjQiNCQINCc0KAKK9Ca0KPQpdCQ0IjQlNCQINCS0JvQkNCU0JjQnNCY0KAg0JzQoAor0JrQo9Cl0JDQiNCU0JAg0JfQm9CQ0KLQkAor0JrQo9Cl0JDQoCDQiNCV0JvQldCd0JAKK9Ca0KPQpdCQ0KAg0IjQntCS0JDQnQor0JrQo9Cl0JDQoCDQodCb0JDQktCY0KbQkAor0JrQo9CI0JDQp9CY0Isg0JTQoNCQ0JPQkNCdCivQmtCj0IjQntCS0JjQiyDQndCV0JTQkAor0JrQo9CI0J7QktCY0Isg0KHQntCk0JjQiNCQCivQmtCj0IjQo9Cd0I/QmNCLINCb0KPQiNCX0JAKK9Ca0KPQiNCj0J3Qj9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0KPQiNCj0J3Qj9CY0Isg0KLQntCc0JDQndCY0IjQkAor0JrQo9CI0KPQndCP0JjQiyDQktCV0KDQkAor0JrQo9Ca0JDQktCY0KbQkCDQiNCe0KDQlNCQ0J0KK9Ca0KPQmtCQ0JLQmNCm0JAg0JzQmNCg0JrQngor0JrQo9Ca0JDQktCY0KbQkCDQoNCj0JbQmNCm0JAKK9Ca0KPQmtCQ0JLQodCa0Jgg0J/QkNCS0JvQlQor0JrQo9Ca0JjQiyDQltCQ0KDQmtCeCivQmtCj0JrQmNCLINCR0KDQkNCd0JrQkAor0JrQo9Ca0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0KPQmtCY0Isg0JPQntCI0JrQngor0JrQo9Ca0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQo9Ca0JjQiyDQiNCV0JvQmNCm0JAKK9Ca0KPQmtCY0Isg0IjQldCb0JrQkAor0JrQo9Ca0JjQiyDQnNCY0JvQkNCdCivQmtCj0JrQmNCLINCc0JjQm9Ce0IjQmtCQCivQmtCj0JrQmNCLINCc0JjQoNCI0JDQndCQCivQmtCj0JrQmNCLINCc0JjQoNCa0J4KK9Ca0KPQmtCY0Isg0J3QldCR0J7QiNCo0JAKK9Ca0KPQmtCY0Isg0J3QmNCa0J7Qm9CQCivQmtCj0JrQmNCLINCf0JXQotCQ0KAKK9Ca0KPQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQo9Ca0JjQiyDQodCi0JXQktCQ0J0KK9Ca0KPQmtCY0Isg0KHQktCV0KLQntCX0JDQoAor0JrQo9Ca0JjQiyDQktCV0KDQkAor0JrQo9Ca0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCj0JrQmNCLINCX0J7QoNCQ0J0KK9Ca0KPQmtCY0Isg0JfQntCg0JDQnQor0JrQo9Ca0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQmtCj0JrQmNCdINCW0JjQktCQ0J0KK9Ca0KPQmtCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ca0KPQmtCY0J0g0JTQldCI0JDQnQor0JrQo9Ca0JjQnSDQodCc0JjQidCa0JAKK9Ca0KPQmtCb0JAg0JjQktCQ0J0KK9Ca0KPQmtCe0Kcg0JLQmNCd0JrQngor0JrQo9Ca0J7QkdCQ0KIg0KDQkNCU0J7QktCQ0J0KK9Ca0KPQmtCe0Ikg0JTQkNCd0JUKK9Ca0KPQmtCe0Ikg0JTQoNCQ0JPQkNCdCivQmtCj0JrQntCJINCU0KPQqNCa0J4KK9Ca0KPQmtCe0Ikg0JzQmNCb0JrQkAor0JrQo9Ca0J7QiSDQnNCY0KDQiNCQ0J3QkAor0JrQo9Ca0J7QiSDQoNCQ0JTQnNCY0JvQkAor0JrQo9Ca0J7QiSDQoNCQ0IjQmtCeCivQmtCj0JrQntCS0KHQmtCYINCI0J7QktCQ0J0KK9Ca0KPQmtCg0JjQmtCQINCR0J7QqNCa0J4KK9Ca0KPQmtCj0KfQmtCQINCI0JDQnQor0JrQo9Ca0KPQp9Ca0JAg0JzQmNCl0JDQiNCb0J4KK9Ca0KPQmtCj0Ikg0JTQntCR0KDQmNCb0JAKK9Ca0KPQmtCj0KDQntCSINCI0J7QodCY0KQKK9Ca0KPQmtCj0KDQo9CX0J7QktCY0Isg0IjQldCb0JXQndCQCivQmtCj0JrQo9Cg0KPQl9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KPQm9Cn0JDQoCDQmNCo0KLQktCQ0J0KK9Ca0KPQm9CQ0KfQkNCd0JjQnSDQkNCd0JjQptCQCivQmtCj0JvQkNCn0JDQndCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCj0JvQkNCn0JDQndCY0J0g0JzQmNCb0JXQndCa0J4KK9Ca0KPQm9CQ0KfQkNCd0JjQnSDQndCQ0JTQkAor0JrQo9Cb0JDQp9CY0Isg0JfQktCe0J3QmNCc0JjQoAor0JrQo9Cb0JDQp9CY0J0g0ILQo9Cg0J4KK9Ca0KPQm9CQ0KfQmNCdINCR0KPQlNCY0JzQmtCQCivQmtCj0JvQkNCn0JjQnSDQlNCj0KjQkNCdCivQmtCj0JvQkNCn0JjQnSDQodCb0JDQktCa0J4KK9Ca0KPQm9CQ0KfQmtCYINCc0JjQotCQ0KAKK9Ca0KPQm9CQ0Kgg0JzQkNCg0JrQngor0JrQo9Cb0JDQqCDQodCb0J7QkdCe0JTQkNCdCivQmtCj0JvQkNCo0JXQktCY0Isg0JfQm9CQ0KLQkAor0JrQo9Cb0JDQqNCY0J3QntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JrQo9Cb0JDQqNCY0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ca0KPQm9CQ0KjQmNCd0J7QktCY0Isg0JTQo9Co0JjQptCQCivQmtCj0JvQkNCo0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ca0KPQm9CQ0KjQmNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ca0KPQm9CQ0KPQl9Ce0JIg0JDQoNCa0JDQlNCY0IjQlQor0JrQo9Cb0JDQo9CX0J7QkiDQiNCe0JLQkNCd0JrQkAor0JrQo9Cb0JDQo9CX0J7QkiDQnNCY0JvQldCd0JrQniDQlNCgCivQmtCj0JvQldCo0JXQktCY0Isg0J7Qm9CY0JLQldCg0JAKK9Ca0KPQm9CV0KjQldCS0JjQiyDQn9CV0KLQkNCgCivQmtCj0JvQldCo0JrQniDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0JrQo9Cb0JXQndCe0JLQmNCLINCQ0KXQnNCV0JQKK9Ca0KPQm9CV0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQmtCj0JvQldCS0KHQmtCYINCa0JDQotCY0KbQkAor0JrQo9Cb0JXQktCh0JrQmCDQoNCe0JbQkAor0JrQo9Cb0JXQktCh0JrQmCDQoNCe0JbQkAor0JrQo9Cb0JjQqNCY0Isg0J3QldCU0JAKK9Ca0KPQm9CY0KjQmNCLINCe0JvQk9CQCivQmtCj0JvQmNCo0JjQiyDQodCb0JDQktCe0InQo9CRCivQmtCj0JvQmNCLINCU0JDQoNCY0J3QmtCQCivQmtCj0JvQmNCLINCI0J7QktCQ0J0KK9Ca0KPQm9CY0Isg0IjQntCS0J4KK9Ca0KPQm9CY0Isg0JvQkNCX0JDQoAor0JrQo9Cb0JjQiyDQndCV0JHQntCI0KjQkAor0JrQo9Cb0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JrQo9Cb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQmtCj0JvQmNCP0JDQnSDQlNCg0JDQk9Cj0KLQmNCdCivQmtCj0JvQmNCP0JDQnSDQndCV0JzQkNCK0JAKK9Ca0KPQm9CY0I/QkNCdINCS0JDQodCeINCU0KAKK9Ca0KPQidCQ0KfQkCDQmNCb0JjQiNCQCivQmtCj0InQkNCn0JAg0J/QldCi0JDQoAor0JrQo9CJ0JDQmiDQnNCQ0KDQmNCI0JAKK9Ca0KPQidCQ0J3Qp9CY0Isg0JTQo9Co0JDQnQor0JrQo9CJ0JDQndCn0JjQiyDQiNCj0JvQmtCQCivQmtCj0InQkNCd0KfQmNCLINCc0JjQm9CV0J3QkAor0JrQo9CJ0JDQndCn0JjQiyDQndCY0JrQntCb0JAKK9Ca0KPQidCQ0J3Qp9CY0Isg0KHQkNCS0J4KK9Ca0KPQidCQ0J3Qp9CY0Isg0JLQldCg0JAKK9Ca0KPQidCQ0J3QmNCdINCI0JDQmtCe0JIKK9Ca0KPQidCQ0J3QmtCY0Isg0JzQo9Cg0JDQlNCY0KQKK9Ca0KPQidCQ0J3QodCa0Jgg0J7Qm9CT0JAKK9Ca0KPQidCQ0J3QodCa0Jgg0KHQm9CQ0JLQmtCeCivQmtCj0InQmNCoINCh0JvQntCR0J7QlNCQ0J0KK9Ca0KPQidCY0Isg0JHQmNCh0JXQoNCa0JAKK9Ca0KPQidCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQmtCj0InQmNCLINCb0JDQl9CQ0KAKK9Ca0KPQidCY0Isg0InQo9CR0J7QnNCY0KAKK9Ca0KPQidCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0KPQidCY0Isg0J3QldCU0JXQidCa0J4KK9Ca0KPQidCY0Isg0J3QmNCa0J7Qm9CQCivQmtCj0InQmNCLINCf0JXQotCQ0KAKK9Ca0KPQidCY0Isg0KHQkNCS0J4KK9Ca0KPQidCY0Ist0KHQnNCj0ILQkCDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Ca0KPQidCY0Isg0JfQlNCg0JDQktCa0J4KK9Ca0KPQm9Ca0JAg0JPQoNCV0KLQkAor0JrQo9Cb0J/QmNCd0KfQldCS0JjQiyDQgtCe0KDQgtCVCivQmtCj0JvQn9CY0J3Qp9CV0JLQmNCLINCI0J7QktCeCivQmtCj0JvQn9CY0J3QodCa0Jgg0JTQo9Co0JDQnQor0JrQo9Cb0J/QmNCd0KHQmtCYINCc0JjQoNCI0JDQndCQCivQmtCj0JvQn9CY0J3QodCa0Jgg0KHQotCV0JLQkNCdCivQmtCj0JvQn9CY0J3QodCa0Jgg0JLQo9CI0JDQlNCY0J0KK9Ca0KPQnNCQ0J3QntCSINCW0JjQktCQ0J0KK9Ca0KPQnNCQ0J3QntCSINCR0J7QltCY0JTQkNCgCivQmtCj0JzQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ca0KPQnNCQ0JfQldCmINCb0JDQl9CQCivQmtCj0JzQntCS0JjQiyDQkdCg0JDQndCa0JAKK9Ca0KPQnNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JrQo9Cc0J7QktCY0Isg0KHQkNCS0J4KK9Ca0KPQnSDQgtCj0KDQkAor0JrQo9CdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCj0J0g0JHQldCb0JAKK9Ca0KPQnSDQlNCQ0J3QmNCm0JAKK9Ca0KPQnSDQldCU0JjQotCQCivQmtCj0J0g0JXQoNCd0JUKK9Ca0KPQnSDQm9CQ0KHQm9CeCivQmtCj0J0g0KHQotCV0JLQkNCdCivQmtCj0J3Qp9CQ0JrQntCS0JAg0JzQkNCg0JjQiNCQCivQmtCj0J3QkNCg0JDQpiDQkNCd0JjQldCb0JAKK9Ca0KPQndCU0JDQp9CY0J3QkCDQiNCe0JLQngor0JrQo9Cd0JTQkNCn0JjQndCQINCg0JDQlNCe0JLQkNCdCivQmtCj0J3QlNCQ0KfQmNCd0JAg0KHQkNCS0J4KK9Ca0KPQndCY0Isg0ILQntCg0ILQlQor0JrQo9Cd0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JrQo9Cd0JjQiyDQktCV0KHQldCb0JjQndCa0JAKK9Ca0KPQndCe0KHQmNCLINCd0JXQj9CQ0JQKK9Ca0KPQndCe0KHQmNCLINCe0KHQnNCQ0J0KK9Ca0KPQndCe0JLQkNCmINCJ0KPQkdCeCivQmtCj0J3QodCiINCY0KDQldCdCivQmtCj0J3QodCi0JzQkNCdINCQ0J3QkNCh0KLQkNCh0JjQiNCQCivQmtCj0J/QldCaINCW0JXQidCa0JAKK9Ca0KPQn9CV0Jog0JfQntCg0JjQptCQCivQmtCj0J/QmNCg0J7QktCY0Isg0KHQntCk0JjQiNCQCivQmtCj0J/QoNCV0KjQkNCaINCU0JDQndCY0JvQngor0JrQo9Cf0KDQldCo0JDQmiDQktCY0JTQkAor0JrQo9Cf0KDQldCo0JDQndCY0J0g0JHQmNCJ0JDQndCQCivQmtCj0J/QoNCV0KjQkNCd0JjQnSDQmNCb0JjQiNCQCivQmtCj0J/QoNCV0KjQkNCd0JjQnSDQnNCY0JvQlSDQlNCY0J/QmyDQmNCd0JMKK9Ca0KPQn9Cg0JXQqNCa0Jgg0IjQntCm0JAKK9Ca0KPQn9Cg0JXQqNCa0Jgg0JLQldCg0JAKK9Ca0KPQn9Cj0KHQkNCg0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCj0J/Qo9Ch0JjQndCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQmtCj0J/Qo9Ch0JjQndCQ0KYg0JLQldCJ0JrQngor0JrQo9Cg0KfQo9CR0JjQiyDQlNCg0JDQk9CY0IsKK9Ca0KPQoNCn0KPQkdCY0Isg0JzQldCb0JDQndCY0IjQkAor0JrQo9Cg0KjQo9Cc0J7QktCY0Isg0JDQktCU0KPQm9CQ0KUKK9Ca0KPQoNCQ0IjQmNCLINCI0J7QktCQ0J0KK9Ca0KPQoNCQ0J0g0JjQktCQ0J0KK9Ca0KPQoNCQ0IrQmCDQiNCQ0J0KK9Ca0KPQoNCQ0IrQmCDQiNCQ0J0KK9Ca0KPQoNCR0JDQm9CY0IjQkCDQgtCe0KDQgtCVCivQmtCj0KDQkdCQ0JvQmNCI0JAg0JTQkNCd0JjQptCQCivQmtCj0KDQkdCQ0JvQmNCI0JAg0IjQntCS0JDQnQor0JrQo9Cg0JHQkNCb0JjQiNCQINCb0JDQl9CQ0KAKK9Ca0KPQoNCR0JDQm9CY0IjQkCDQnNCY0KDQiNCQ0J3QkAor0JrQo9Cg0JHQkNCi0KTQmNCd0KHQmtCYINCk0JXQgtCQINCU0JjQn9CbINCY0J3Qkwor0JrQo9Cg0JHQkNCi0KTQmNCd0KHQmtCYINCY0JLQkNCdCivQmtCj0KDQkdCQ0KLQpNCY0J3QodCa0Jgg0KHQm9CQ0JLQmtCeCivQmtCj0KDQkdCQ0KLQpNCY0J3QodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JrQo9Cg0JHQkNCi0JLQmNCd0KHQmtCYINCU0JjQndCQCivQmtCj0KDQkdCQ0KLQktCY0J3QodCa0Jgg0JjQktCQ0J0KK9Ca0KPQoNCR0JDQotCS0JjQndCh0JrQmCDQodCi0JXQktCQ0J0KK9Ca0KPQoNCR0JDQotCS0JjQndCh0JrQmCDQl9Ce0KDQkAor0JrQo9Cg0KbQmNCd0JDQmiDQldCc0JjQmwor0JrQo9Cg0KbQmNCd0JDQmiDQmNCc0KDQlQor0JrQo9Cg0KbQmNCd0JDQmiDQiNCe0KHQmNCfCivQmtCj0KDQptCY0J3QkNCaINCb0JDQiNCe0KgKK9Ca0KPQoNCm0JjQndCQ0Jog0J/QkNCS0JvQlQor0JrQo9Cg0KbQmNCd0JDQmiDQodCi0JXQktCQ0J0KK9Ca0KPQoNCm0JjQndCQ0Jog0JLQldCh0J3QkAor0JrQo9Cg0JTQmCDQkNCc0JDQm9CY0IjQkAor0JrQo9Cg0JTQntCS0KHQmtCYINCc0JjQotCQ0KAKK9Ca0KPQoNCU0KPQm9CY0Isg0JzQmNCb0J7QqAor0JrQo9Cg0JXQqNCV0JLQmNCLINCg0JDQptCa0J4KK9Ca0KPQoNCV0KjQldCS0JjQiyDQodCQ0JLQngor0JrQo9Cg0JXQmtCQ0Kgg0JzQmNCi0JDQoAor0JrQo9Cg0JXQn9CQINCS0JDQodCQCivQmtCj0KDQmNCoINCo0KLQldCk0JDQnQor0JrQo9Cg0JjQj9CQINCR0J7Qk9CU0JDQnQor0JrQo9Cg0JjQj9CQINCU0KPQqNCQ0J0KK9Ca0KPQoNCY0Igg0KLQntCc0JjQodCb0JDQkgor0JrQo9Cg0JjQiNCQINCS0JXQidCa0J4KK9Ca0KPQoNCY0JrQqNCQINCQ0J3QotCe0J3QmNCd0JAKK9Ca0KPQoNCY0JvQkCDQiNCQ0J3QntCoCivQmtCj0KDQmNCb0JjQiyDQiNCe0JLQngor0JrQo9Cg0JjQm9CY0Isg0JzQmNCb0JDQnQor0JrQo9Cg0JjQm9CY0Isg0JzQmNCb0J7QqAor0JrQo9Cg0JjQm9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JrQo9Cg0JjQnSDQgtCe0KDQgtCVCivQmtCj0KDQmNCdINCI0J7QodCY0J8KK9Ca0KPQoNCI0JDQp9Ca0Jgg0JbQmNCS0JrQngor0JrQo9Cg0IjQkNCn0JrQmCDQgtCe0KDQgtCVCivQmtCj0KDQiNCQ0KfQmtCYINCC0KPQoNCC0JjQndCQCivQmtCj0KDQiNCQ0KfQmtCYINCQ0J3QmtCY0KbQkAor0JrQo9Cg0IjQkNCn0JrQmCDQlNCQ0J3QmNCm0JAKK9Ca0KPQoNCI0JDQp9Ca0Jgg0IjQntCS0JDQnQor0JrQo9Cg0IjQkNCn0JrQmCDQnNCY0KXQkNCI0JvQngor0JrQo9Cg0IjQkNCn0JrQmCDQnNCY0JvQkNCdCivQmtCj0KDQiNCQ0KfQmtCYINCc0JjQm9CV0JLQkAor0JrQo9Cg0IjQkNCn0JrQmCDQnNCY0JvQldCS0JAKK9Ca0KPQoNCI0JDQp9Ca0Jgg0JzQmNCb0JjQptCQCivQmtCj0KDQiNCQ0KfQmtCYINCc0JjQm9CY0JLQntCICivQmtCj0KDQiNCQ0KfQmtCYINCc0JjQntCU0KDQkNCTCivQmtCj0KDQiNCQ0KfQmtCYINCc0JjQoNCI0JDQndCQCivQmtCj0KDQiNCQ0KfQmtCYINCc0JjQoNCI0JDQndCQCivQmtCj0KDQiNCQ0KfQmtCYINCh0KDQldCU0J7QiNCVCivQmtCj0KDQiNCQ0KfQmtCYINCh0KLQkNCd0JrQngor0JrQo9Cg0IjQkNCn0JrQmCDQodCi0JXQktCQ0J0KK9Ca0KPQoNCI0JDQp9Ca0Jgg0KHQktCV0KLQntCX0JDQoAor0JrQo9Cg0IjQkNCn0JrQmCDQl9Ce0KDQkAor0JrQo9Cg0IjQkNCa0J7QkiDQgtCe0KDQgtCVCivQmtCj0KDQiNCQ0JrQntCSINCU0JDQndCY0JvQngor0JrQo9Cg0IjQkNCa0J7QkiDQlNCg0JDQk9CQ0J0KK9Ca0KPQoNCI0JDQmtCe0JIg0JzQmNCb0JDQnQor0JrQo9Cg0IjQkNCa0J7QkiDQnNCY0JvQmNCS0J7QiAor0JrQo9Cg0IjQkNCa0J7QkiDQoNCe0JrQodCQ0J3QlNCQCivQmtCj0KDQiNCQ0JrQntCSINCS0JjQmtCi0J7QoNCY0IjQkAor0JrQo9Cg0KEg0ILQntCg0ILQlQor0JrQo9Cg0KLQkCDQkNCX0JjQoQor0JrQo9Cg0KLQldCoINCI0JDQodCd0JAKK9Ca0KPQoNCi0JXQqCDQm9CQ0JfQkNCgCivQmtCj0KDQotCV0Kgg0JzQkNCg0JAKK9Ca0KPQoNCi0JXQqCDQodCS0JXQotCa0J4KK9Ca0KPQoNCi0JXQqNCYINCk0KPQkNCiCivQmtCj0KDQotCV0KjQmCDQndCj0KHQoNCV0KIKK9Ca0KPQoNCi0JXQqNCYINCX0JXQndCj0J0KK9Ca0KPQoNCi0Jgg0JzQo9Ch0KLQkNCk0JAKK9Ca0KPQoNCi0Jgg0J3QldCX0JjQoAor0JrQo9Cg0KLQmNCo0JXQktCY0Isg0J3QkNCh0KPQpAor0JrQo9Cg0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQmtCj0KDQotCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ca0KPQoNCi0JjQiyDQnNCY0JvQntCS0JDQnQor0JrQo9Cg0KLQmNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ca0KPQoNCi0J7QktCY0Isg0JDQndCQCivQmtCj0KDQotCe0JLQmNCLINCY0JLQkNCdCivQmtCj0KDQotCj0KjQmNCLINCY0JLQkNCd0JrQkAor0JrQo9Cg0KPQp9CV0JIg0JzQkNCg0JjQiNCQCivQmtCj0KDQo9Cn0JXQkiDQnNCY0KDQiNCQ0J3QkAor0JrQo9Cg0KPQp9CV0JIg0KHQm9Ce0JHQntCU0JDQnQor0JrQo9Cg0KPQp9Ca0Jgg0JrQkNCc0JXQndCa0J4KK9Ca0KPQoNCj0KfQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Ca0KPQoNCj0KfQmtCYINCX0JvQkNCi0JjQnNCY0KAKK9Ca0KPQoNCj0KjQmNCLINCR0J7QoNCeCivQmtCj0KDQo9CmINCC0KPQm9CQCivQmtCj0KDQo9CmINCC0KPQm9CQCivQmtCj0KDQo9CmINCY0JPQndCQ0KYKK9Ca0KPQoNCj0KYg0JjQoNCV0J3QkAor0JrQo9Cg0KPQpiDQiNCQ0J3QntCoCivQmtCj0KDQo9CmINCI0J7QktCeCivQmtCj0KDQo9CmINCb0JDQiNCe0KgKK9Ca0KPQoNCj0KYg0JvQkNCh0JvQngor0JrQo9Cg0KPQpiDQndCQ0J3QlNCe0KAKK9Ca0KPQoNCj0KYg0KLQmNCR0J7QoAor0JrQo9Cg0KPQpiDQktCY0J3QmtCQCivQmtCj0KDQo9Cm0JAg0JHQntCW0JAKK9Ca0KPQoNCj0KbQkCDQiNCe0JLQkNCdCivQmtCj0KDQo9Cm0JjQiyDQlNCg0JDQk9CQ0J0KK9Ca0KPQoNCj0KbQmNCLINCJ0KPQkdCY0KbQkAor0JrQo9Cg0KPQptCY0Isg0KHQmNCd0JjQqNCQCivQmtCj0KDQo9Cm0JjQiyDQktCY0KLQntCc0JjQoAor0JrQo9Cg0KPQptCY0J0g0JbQmNCS0JDQndCQCivQmtCj0KDQo9Cd0KbQmCDQkNCd0JTQoNCY0IjQkAor0JrQo9Cg0KPQndCm0Jgg0IjQntCW0JXQpAor0JrQo9Cg0KPQndCm0Jgg0IjQntCW0JXQpAor0JrQo9Cg0KPQndCm0Jgg0JzQkNCg0JjQiNCQCivQmtCj0KDQo9CX0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Ca0KPQodCY0Isg0KHQoNCV0KLQmtCeCivQmtCj0KHQm9CYINCk0JXQoNCV0J3Qpgor0JrQo9Ch0JvQmCDQk9CV0JfQkAor0JrQo9Ch0JzQo9CaINCU0JDQoNCY0J3QmtCQCivQmtCj0KHQotCY0Isg0KHQntCk0JjQiNCQCivQmtCj0KHQotCj0JTQmNCI0JAg0JTQkNCd0JjQptCQCivQmtCj0KHQotCj0JTQmNCI0JAg0JzQmNCg0J7QodCb0JDQkgor0JrQo9Ch0KLQo9CU0JjQiNCQINCh0JvQntCR0J7QlNCQ0J0KK9Ca0KPQodCi0KPQoNCY0Isg0J3QmNCa0J7Qm9CQCivQmtCj0KHQotCj0KDQmNCLINCh0JXQm9CY0JzQmNCgCivQmtCj0KHQotCj0KDQmNCm0JAg0KXQkNCh0JDQnQor0JrQo9Ch0KLQo9Cg0JjQptCQINCd0JDQl9CY0KQKK9Ca0KPQodCi0KPQoNCY0J0g0JDQndCi0KPQnQor0JrQo9Ch0KLQo9Cg0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JrQo9Ch0KPQoNCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0JrQo9Ci0JjQiNCV0JLQkNCmINCJ0KPQkdCY0KbQkAor0JrQo9Ci0JvQkNCn0JAg0JzQkNCg0JrQngor0JrQo9Ci0JvQldCo0JjQiyDQidCj0JHQmNCo0JAKK9Ca0KPQotCb0JXQqNCY0Isg0InQo9CR0JjQqNCQCivQmtCj0KLQoNCYINCa0JDQoNCb0J4KK9Ca0KPQotCg0Jgg0JrQkNCg0J7QiQor0JrQo9Ci0KDQmCDQodCi0JXQktCQ0J0KK9Ca0KPQotCg0JjQp9Ca0Jgg0JfQntCg0JDQnQor0JrQo9Ci0KPQl9Ce0JIg0JzQmNCb0J7QoNCQ0JQKK9Ca0KPQotCj0JfQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Ca0KPQktCQ0Ikg0KHQotCV0JLQkNCdCivQmtCj0JLQkNCJ0JAg0JTQoNCQ0JPQkNCdCivQmtCj0JLQkNCJ0JAg0JTQoNCQ0JPQntCJ0KPQkQor0JrQo9CS0JDQidCQINCa0JDQotCY0KbQkAor0JrQo9CS0JDQidCQINCe0KHQotCe0IjQkAor0JrQo9CS0JXQmtCQ0JvQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmtCj0JLQldCa0JDQm9Ce0JLQmNCLINCh0KLQoNCQ0JjQnQor0JrQo9CS0JXQidCY0Isg0JbQkNCg0JrQngor0JrQo9CS0JXQidCY0Isg0InQmNCJ0JDQndCQCivQmtCj0JLQldCJ0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQmtCj0JLQldCJ0JjQiyDQoNCQ0JTQntCc0JDQnQor0JrQo9CS0JjQl9CY0Isg0JbQmNCS0J7QiNCY0J0KK9Ca0KPQktCY0JfQmNCLINCW0JjQktCe0IjQmNCdCivQmtCj0JfQldCS0KHQmtCYINCU0KDQkNCT0JDQnQor0JrQo9CX0JzQkNCdINCQ0J3QmtCQCivQmtCj0JfQnNCQ0J0g0JHQntCT0JTQkNCdCivQmtCj0JfQnNCQ0J0g0JHQntCT0JTQkNCdCivQmtCj0JfQnNCQ0J0g0JHQntCg0JjQodCb0JDQkgor0JrQo9CX0JzQkNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQo9CX0JzQkNCdINCU0KDQkNCT0JDQnQor0JrQo9CX0JzQkNCdINCc0JjQm9CQ0J0KK9Ca0KPQl9Cc0JDQnSDQnNCY0JvQntCS0JDQnQor0JrQo9CX0JzQkNCdINCc0JjQoNCa0J4KK9Ca0KPQl9Cc0JDQnSDQndCQ0JTQkAor0JrQo9CX0JzQkNCdINCd0JDQlNCQCivQmtCj0JfQnNCQ0J0g0J3QkNCU0JAKK9Ca0KPQl9Cc0JDQnSDQndCQ0JTQldCW0JTQkAor0JrQo9CX0JzQkNCdINCf0JXQotCQ0KAKK9Ca0KPQl9Cc0JDQnSDQoNCY0KHQotCeCivQmtCj0JfQnNCQ0J0g0KHQm9CQ0JLQmNCm0JAKK9Ca0KPQl9Cc0JDQndCn0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQo9CX0JzQkNCd0KfQldCSINCU0JjQnNCY0KLQoNCY0IjQlQor0JrQo9CX0JzQkNCd0KfQldCSINCU0KPQqNCQ0J0KK9Ca0KPQl9Cc0JDQndCn0JXQkiDQntCb0JjQktCV0KDQkCDQlNCgCivQmtCj0JfQnNCQ0J3Qp9CV0JIg0KLQmNCc0J7QqNCV0J3QmtCeCivQmtCj0JfQnNCQ0J3QntCSINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0KPQl9Cc0JDQndCe0JIg0JzQkNCg0JjQiNCQCivQmtCj0JfQnNCQ0J3QntCSINCe0JHQoNCQ0JQKK9Ca0KPQl9Cc0JDQndCe0JIg0J7QkdCg0JDQlAor0JrQo9CX0JzQkNCd0J7QkiDQoNCQ0JTQntCoINCU0JjQn9CbINCY0J3Qkwor0JrQo9CX0JzQkNCd0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQmtCj0JfQnNCQ0J3QntCSINCh0JDQktCQCivQmtCj0JfQnNCQ0J3QntCSINCh0JvQkNCS0JrQngor0JrQo9CX0JzQkNCd0J7QkiDQodCS0JXQotCY0KHQm9CQ0JIKK9Ca0KPQl9Cc0JDQndCe0JIg0KLQkNCd0JDQodCY0IjQlQor0JrQo9CX0JzQkNCd0J7QkiDQl9Ce0KDQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCC0KPQoNCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCU0JXQiNCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQitCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQlNCj0KjQmtCeCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCa0JDQotCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQm9CQ0JfQngor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JvQldCd0JrQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQidCj0JHQmNCo0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQlQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JzQmNCJ0J7QiNCa0J4g0JTQmNCf0Jsg0JjQndCTCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0JvQntCoCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQndCV0J3QkNCUCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQndCV0JLQldCd0JAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQn9CQ0IjQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KDQkNCU0J7QiNCa0J4KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KHQn9Ce0JzQldCd0JrQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0KHQotCe0IjQkNCdCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCi0J7QlNCe0KAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCi0J7QlNCe0KAKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ca0KPQl9Cc0JDQndCe0JLQmNCLINCS0JXQoNCQCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQktCV0KDQkAor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQmtCj0JfQnNCQ0J3QntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JrQo9CX0JzQkNCd0J7QktCY0Isg0JfQntCg0JAKK9Ca0KPQl9Cc0JDQndCe0JLQodCa0Jgg0JHQm9CQ0JPQntCI0JAKK9Ca0KPQl9Cc0JDQndCe0JLQodCa0Jgg0KbQktCV0KLQkAor0JrQo9CX0JzQkNCd0J7QktCh0JrQmCDQlNCj0KjQkNCdCivQmtCj0JfQnNCQ0J3QntCS0KHQmtCYINCc0JjQm9CVCivQmtCj0JfQnNCQ0J3QntCS0KHQmtCYINCf0JXQoNCVCivQmtCj0JfQnNCQ0J3QntCS0KHQmtCYINCg0JDQlNCe0IjQmtCQCivQmtCj0JfQnNCQ0J3QntCS0KHQmtCYINCi0JDQodCVCivQmtCj0JfQnNCQ0J3QntCS0KHQmtCYINCi0KDQkNCI0KfQlQor0JrQo9CX0JzQmNCLINCc0JjQm9Ca0JAKK9Ca0KPQl9Cc0JjQiyDQl9CS0J7QndCa0J4KK9Ca0KPQl9Cc0JjQndCQ0KYg0JHQntCg0JjQodCb0JDQkgor0JrQo9CX0JzQmNCd0JDQpiDQk9Ce0KDQlNCQ0J3QkAor0JrQo9CX0JzQmNCd0JDQpiDQn9CV0KLQkNCgCivQmtCj0JfQnNCY0J3QkNCmINCf0KDQldCU0KDQkNCTCivQmtCj0JfQnNCY0J3QkNCmINCg0JDQlNCe0KHQm9CQ0JIKK9Ca0JLQkNCo0KfQldCSINCI0J7QktCQ0J0KK9Ca0JLQkNCo0KfQldCSINCc0JjQoNCQCivQmtCS0JDQqNCn0JXQkiDQoNCQ0JTQmNCS0J7QiAor0JrQktCQ0JjQiyDQgtCe0KDQgtCVCivQmtCS0JDQmNCLINCU0KPQqNCQ0J0KK9Ca0JLQkNCY0Isg0IjQldCb0JXQndCQCivQmtCS0JDQmNCLINCc0JjQm9CV0JLQkAor0JrQktCg0JPQmNCLINCR0J7QqNCa0J4KK9Ca0JLQoNCT0JjQiyDQnNCY0JvQkNCdCivQmtCS0KDQk9CY0Isg0J/QldCi0JDQoAor0JrQktCg0JPQmNCLINCg0JDQlNCe0JLQkNCdCivQmtCS0KDQk9CY0Isg0KHQkNCS0J4KK9Ca0JLQoNCT0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQm9CQ0KfQkNCd0KHQmtCYINCU0JXQodCQ0J3QmtCQCivQm9CQ0KfQntCaINCa0JDQoNCb0J4KK9Cb0JDQp9Ce0Jog0JrQkNCg0J7QiQor0JvQkNCo0JrQntCSINCY0JPQntCgINCU0JjQn9CbINCY0J3Qkwor0JvQkNCL0JDQmiDQgtCj0KDQkAor0JvQkNCL0JDQmiDQnNCY0KXQkNCJCivQm9CQ0IvQkNCd0KHQmtCYINCS0J7QiNCY0KHQm9CQ0JIKK9Cb0JDQi9CQ0KDQkNCmINCW0JDQoNCa0J4KK9Cb0JDQi9CQ0KDQkNCmINCR0JjQidCQ0J3QkAor0JvQkNCL0JDQoNCQ0KYg0JHQntCg0JjQodCb0JDQkgor0JvQkNCL0JDQoNCQ0KYg0JTQntCR0KDQmNCS0J7QiNCVCivQm9CQ0IvQkNCg0JDQpiDQiNCe0JLQkNCdCivQm9CQ0IvQkNCg0JDQpiDQnNCQ0JrQodCY0JwKK9Cb0JDQi9CQ0KDQkNCmINCd0JjQmtCe0JvQkAor0JvQkNCL0JDQoNCQ0KYg0J3QmNCa0J7Qm9CQCivQm9CQ0IvQkNCg0JDQpiDQndCY0JrQntCb0JAKK9Cb0JDQi9CQ0KDQkNCmINCi0JXQntCU0J7QoAor0JvQkNCL0JDQoNCQ0KYg0JLQldCg0JAKK9Cb0JDQi9CQ0KDQkNCaINCW0JDQoNCa0J4KK9Cb0JDQi9CQ0KDQkNCaINCb0JDQl9CQ0KAKK9Cb0JDQi9CQ0KDQkNCaINCb0JDQl9CQCivQm9CQ0IvQkNCg0JDQmiDQnNCY0JvQntCoCivQm9CQ0IvQkNCg0JDQmiDQnNCb0JDQlNCV0J0KK9Cb0JDQi9CQ0KDQkNCaINCe0JPQitCQ0J3QmtCQCivQm9CQ0JbQldCT0JjQiyDQndCV0JLQldCd0JrQkAor0JvQkNCW0JXQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JDQltCV0KLQmNCLINCc0JDQoNCY0IjQkCDQlNCgCivQm9CQ0ILQldCS0JDQpiDQlNCj0KjQkNCdCivQm9CQ0ILQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cb0JDQgtCV0JLQmNCLINCT0J7QiNCa0J4KK9Cb0JDQgtCV0JLQmNCLINCI0J7QktCQ0J0KK9Cb0JDQgtCY0J3QntCS0JjQiyDQltCY0JrQkAor0JvQkNCC0JjQndCe0JLQmNCLINCX0JvQkNCi0JrQngor0JvQkNCR0JDQqCDQmNCS0JDQnQor0JvQkNCR0JDQlNCYINCI0J7QltCV0KQKK9Cb0JDQkdCQ0J0g0IjQo9Cb0JrQkAor0JvQkNCR0JDQnSDQnNCY0KDQmtCeCivQm9CQ0JHQkNCiINCQ0J3QkAor0JvQkNCR0JDQoiDQkNCd0JrQkAor0JvQkNCR0JDQoiDQiNCQ0J0KK9Cb0JDQkdCQ0KIg0JrQktCV0KLQntCh0JvQkNCS0JAKK9Cb0JDQkdCQ0KIg0KDQo9CW0JXQndCQCivQm9CQ0JHQkNCiINCh0KLQldCS0JDQnQor0JvQkNCR0JDQoiDQktCV0KDQkAor0JvQkNCR0JDQoiDQktCb0JDQlNCY0JzQmNCgCivQm9CQ0JHQkNCiINCS0JvQkNCU0JjQodCb0JDQkgor0JvQkNCR0JDQktCY0Isg0JjQktCQ0J0KK9Cb0JDQkdCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQm9CQ0JHQntCS0JjQiyDQnNCQ0J3QntCI0JvQngor0JvQkNCR0KDQntCS0JjQiyDQnNCY0KDQmtCeCivQm9CQ0JHQo9CU0J7QktCY0Isg0JHQntCg0JjQoQor0JvQkNCR0KPQlNCe0JLQmNCLINCl0JXQm9CV0J3QkAor0JvQkNCR0KPQlNCe0JLQmNCLINCg0J7Ql9CQ0JvQmNCI0JAKK9Cb0JDQkdCj0JTQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9CQ0JHQo9ChINCC0KPQoNCeCivQm9CQ0JHQo9ChINCR0J7QltCY0JTQkNCgCivQm9CQ0JHQo9ChINCR0KDQkNCd0JrQngor0JvQkNCR0KPQoSDQmNCb0JjQiNCQCivQm9CQ0JHQo9ChINCI0J7QktCQ0J0KK9Cb0JDQkdCj0KEg0InQo9CR0J7QnNCY0KAKK9Cb0JDQkdCj0KEg0JzQkNCa0JXQlNCe0J3QmtCQCivQm9CQ0JHQo9ChINCc0JjQm9CQ0J0KK9Cb0JDQkdCj0KEg0JzQmNCb0JDQnQor0JvQkNCR0KPQoSDQnNCY0JvQkNCdCivQm9CQ0JHQo9ChINCc0JjQm9CQ0J0KK9Cb0JDQkdCj0KEg0JzQmNCb0JUKK9Cb0JDQkdCj0KEg0J3QmNCa0J7Qm9CQCivQm9CQ0JHQo9ChINCh0JvQkNCS0JrQngor0JvQkNCm0JjQmiDQiNCQ0J3QntCoCivQm9CQ0KbQmNCaINCh0JvQkNCS0JjQptCQCivQm9CQ0KbQmtCeINCc0JjQpdCQ0IjQm9CeCivQm9CQ0KbQmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQm9CQ0KbQmtCe0JLQmNCLINCI0J7QodCY0J8KK9Cb0JDQptCa0J7QktCY0Isg0KDQkNCU0JUKK9Cb0JDQptCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cb0JDQptCa0J7QktCY0Isg0KHQntCk0JjQiNCQCivQm9CQ0KbQmtCe0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cb0JDQptCa0J7QktCY0Isg0JfQm9CQ0KLQmtCeCivQm9CQ0KbQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cb0JDQptCc0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQm9CQ0KbQnNCQ0J3QntCS0JjQiyDQodCb0JDQktCe0IjQmtCQCivQm9CQ0JTQkNCgINCc0JjQm9Ce0KgKK9Cb0JDQlNCQ0KAg0KHQotCV0JLQkNCdCivQm9CQ0JTQmCDQmNCo0KLQktCQ0J0KK9Cb0JDQlNCYINCb0JDQiNCe0KgKK9Cb0JDQlNCYINCc0JDQoNCY0IjQkAor0JvQkNCU0JjQqNCY0Isg0JDQndCi0J7QnQor0JvQkNCU0JjQqNCY0Isg0JPQo9Ch0KLQkNCSCivQm9CQ0JTQmNCo0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JvQkNCU0JjQqNCY0Isg0IjQntCh0JjQnwor0JvQkNCU0JjQqNCY0Isg0JzQmNCg0JrQngor0JvQkNCU0JjQqNCY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0JTQmNCo0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQlNCY0Jog0KjQkNCd0JTQntCgCivQm9CQ0JTQmNCaINCk0JXQoNCV0J3Qpgor0JvQkNCU0JjQmiDQmtCQ0KLQkNCb0JjQnQor0JvQkNCU0JjQmiDQmtCQ0KLQkNCb0JjQnQor0JvQkNCU0JjQmiDQnNCQ0KDQk9CY0KLQkAor0JvQkNCU0JjQmiDQnNCY0KDQiNCQ0J3QkAor0JvQkNCU0JjQmtCQINCR0JvQkNCWCivQm9CQ0JTQntCm0JrQmCDQkNCd0JTQoNCY0IjQkAor0JvQkNCU0J7Qm9CV0JYg0JXQoNCW0JXQkdCV0KIKK9Cb0JDQlNCe0JvQldCWINCc0JjQm9CQ0JTQmNCdCivQm9CQ0JPQo9Cc0I/QmNCI0JAg0KXQkNCc0JjQlAor0JvQkNCT0KPQnNCP0JjQiNCQINCc0JjQm9CV0J3QkAor0JvQkNCT0KPQndCP0JjQnSDQlNCg0JDQk9CQ0J0KK9Cb0JDQk9Cj0J3Qj9CY0J0g0JTQoNCQ0JPQkNCdCivQm9CQ0JPQo9Cd0I/QmNCdINCU0KDQkNCT0JDQnQor0JvQkNCT0KPQndCP0JjQnSDQodCS0JXQotCe0JfQkNCgCivQm9CQ0JPQo9Cd0I/QmNCdINCX0J7QoNCQ0J0KK9Cb0JDQpdCQ0KDQndCQ0KAg0JvQo9Cm0JjQiNCQCivQm9CQ0KXQntCoINCC0J7QoNCC0JUKK9Cb0JDQpdCe0Kgg0JDQndCU0KDQmNCI0JAKK9Cb0JDQpdCe0Kgg0JjQqNCi0JLQkNCdCivQm9CQ0JjQndCe0JLQmNCLINCQ0JvQldCa0KHQkAor0JvQkNCY0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQm9CQ0JjQndCe0JLQmNCLINCg0JDQndCa0J4KK9Cb0JDQiNCo0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQiNCo0JjQiyDQl9Ce0KDQmtCQCivQm9CQ0IjQpSDQnNCQ0KDQmNCI0JAKK9Cb0JDQiNCl0KLQndCV0KAg0JDQndCi0JDQmwor0JvQkNCI0KXQotCd0JXQoCDQpNCg0JDQitCQCivQm9CQ0IjQpdCi0J3QldCgINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Cb0JDQiNCY0Isg0KjQotCV0KTQmtCQCivQm9CQ0IjQmNCLINCR0KDQkNCd0JrQngor0JvQkNCI0JjQiyDQlNCg0JDQk9CQ0J0KK9Cb0JDQiNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JvQkNCI0JjQiyDQidCY0InQkNCd0JAKK9Cb0JDQiNCY0Isg0JzQmNCg0JrQngor0JvQkNCI0JjQiyDQoNCQ0IjQmtCeCivQm9CQ0IjQmNCLINCh0KLQkNCd0JAKK9Cb0JDQiNCY0Isg0JfQlNCg0JDQktCa0J4KK9Cb0JDQiNCa0J4g0KjQkNCd0JTQntCgCivQm9CQ0IjQmtCeINCI0J7QodCY0J8KK9Cb0JDQiNCa0J4g0JvQkNCI0J7QqCDQlNCY0J/QmyDQmNCd0JMKK9Cb0JDQiNCa0J4g0JzQkNCg0JjQiNCQCivQm9CQ0IjQmtCeINCh0KLQldCS0JDQnQor0JvQkNCI0JrQniDQktCV0KDQkAor0JvQkNCI0J7QqCDQm9CQ0KHQm9CeCivQm9CQ0IjQotCV0KAg0JXQm9CX0JAKK9Cb0JDQiNCi0JXQoCDQk9CY0JfQldCb0JAKK9Cb0JDQiNCi0JXQoCDQmNCS0JDQnQor0JvQkNCI0KLQmNClINCh0JjQk9Ck0KDQmNCUCivQm9CQ0JrQkNCi0J7QqCDQkNCc0JDQm9CY0IjQkAor0JvQkNCa0JDQotCe0Kgg0JDQndCQCivQm9CQ0JrQkNCi0J7QqCDQkNCd0JTQoNCQ0KgKK9Cb0JDQmtCQ0KLQntCoINCU0KDQkNCT0JjQptCQCivQm9CQ0JrQkNCi0J7QqCDQk9CY0JfQkAor0JvQkNCa0JDQotCe0Kgg0JjQnNCg0JUKK9Cb0JDQmtCQ0KLQntCoINCY0JzQoNCVCivQm9CQ0JrQkNCi0J7QqCDQmNCc0KDQlQor0JvQkNCa0JDQotCe0Kgg0IjQkNCh0JzQmNCd0JrQkAor0JvQkNCa0JDQotCe0Kgg0IjQldCb0JXQndCQCivQm9CQ0JrQkNCi0J7QqCDQm9CQ0IjQntCoCivQm9CQ0JrQkNCi0J7QqCDQnNCY0KXQkNCI0JvQngor0JvQkNCa0JDQotCe0Kgg0JzQmNCb0JjQptCQCivQm9CQ0JrQkNCi0J7QqCDQndCQ0JTQkAor0JvQkNCa0JDQotCe0Kgg0J/QkNCS0JvQlQor0JvQkNCa0JDQotCe0Kgg0KHQotCV0JLQkNCdCivQm9CQ0JrQkNCi0J7QqCDQotCY0JHQntCgCivQm9CQ0JrQkNCi0J7QqCDQktCV0KDQkAor0JvQkNCa0JDQotCe0Kgg0JLQmNCb0JzQntCoCivQm9CQ0JrQkNCi0J7QqCDQl9Ce0JvQotCQ0J0KK9Cb0JDQmtCQ0KLQntCoINCX0J7Qm9Ci0JDQnQor0JvQkNCa0JDQotCj0Kgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQm9CQ0JrQldCi0JAg0JHQntCW0J4KK9Cb0JDQmtCV0KLQmNCLINCJ0KPQkdCe0JzQmNCgCivQm9CQ0JrQldCi0JjQiyDQnNCY0JvQkNCdCivQm9CQ0JrQldCi0JjQiyDQnNCY0JvQmNCS0J7QiAor0JvQkNCa0JjQp9CV0JLQmNCLINCd0JDQlNCQCivQm9CQ0JrQmNCn0JXQktCY0Ist0KHQotCe0IjQkNCn0JjQiyDQodCd0JXQltCQ0J3QkAor0JvQkNCa0JjQiyDQkNCd0ILQkAor0JvQkNCa0JjQiyDQkNCd0ILQldCb0JrQkAor0JvQkNCa0JjQiyDQkdCe0JPQntCh0JDQkgor0JvQkNCa0JjQiyDQkdCg0JDQndCa0J4g0JTQoCDQm9CV0JrQkNCgCivQm9CQ0JrQmNCLINCR0KDQkNCd0JrQngor0JvQkNCa0JjQiyDQkdCg0JDQndCa0J4KK9Cb0JDQmtCY0Isg0JTQkNCd0JjQm9CeCivQm9CQ0JrQmNCLINCY0JvQmNCI0JAKK9Cb0JDQmtCY0Isg0IjQntCb0JDQnQor0JvQkNCa0JjQiyDQnNCQ0KDQmtCeCivQm9CQ0JrQmNCLINCc0JjQoNCQCivQm9CQ0JrQmNCLINCc0JjQoNCI0JDQndCQCivQm9CQ0JrQmNCLINCc0JvQkNCU0JXQnQor0JvQkNCa0JjQiyDQnNCe0JzQmNCgCivQm9CQ0JrQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCa0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQm9CQ0JrQmNCLINCg0JDQlNCY0JLQntCICivQm9CQ0JrQmNCLINCg0JDQlNCY0JLQntCICivQm9CQ0JrQmNCLINCg0JDQlNCc0JjQm9CQCivQm9CQ0JrQmNCLINCg0JDQiNCa0J4KK9Cb0JDQmtCY0Isg0KHQkNCS0JAg0JTQoAor0JvQkNCa0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9CQ0JrQmNCLINCh0JzQmNCJ0JAKK9Cb0JDQmtCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cb0JDQmtCY0Isg0KHQoNCC0JDQnQor0JvQkNCa0JjQiyDQodCg0ILQkNCdCivQm9CQ0JrQmNCLINCh0KDQgtCQ0J0KK9Cb0JDQmtCY0Isg0KHQotCV0JLQkNCdCivQm9CQ0JrQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JvQkNCa0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQm9CQ0JrQmNCLINCS0JXQm9CY0JzQmNCgCivQm9CQ0JrQmNCLINCS0JXQodCd0JAKK9Cb0JDQmtCY0Isg0JLQo9Cn0JXQotCQCivQm9CQ0JrQmNCLINCX0J7QoNCY0KbQkAor0JvQkNCa0JjQi9CV0JLQmNCLINCc0JjQm9CY0IjQkAor0JvQkNCa0JjQi9CV0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cb0JDQmtCY0IvQldCS0JjQiyDQktCQ0KHQngor0JvQkNCa0JjQi9CV0JLQmNCLINCS0JXQodCd0JAKK9Cb0JDQmtCY0IvQldCS0JjQiyDQktCj0JrQodCQ0J0g0JTQoAor0JvQkNCa0JvQmNCI0JAg0KHQotCV0JLQkNCdCivQm9CQ0JrQniDQnNCQ0KDQmNCI0JAKK9Cb0JDQmtCe0JHQoNCY0IjQkCDQlNCg0JDQk9CQ0J0KK9Cb0JDQmtCe0JHQoNCY0IjQkCDQlNCj0KjQkNCdCivQm9CQ0JrQntCR0KDQmNCI0JAg0JjQm9CY0IjQkAor0JvQkNCa0J7QkdCg0JjQiNCQINCI0JXQm9CV0J3QkAor0JvQkNCa0J7QkdCg0JjQiNCQINCc0JjQm9CQ0J0KK9Cb0JDQmtCe0JHQoNCY0IjQkCDQnNCY0JvQkNCdCivQm9CQ0JrQntCR0KDQmNCI0JAg0JzQmNCb0J7QqAor0JvQkNCa0J7QkdCg0JjQiNCQINCc0JjQm9Ce0KgKK9Cb0JDQmtCe0JHQoNCY0IjQkCDQndCY0JrQntCb0JAKK9Cb0JDQmtCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQm9CQ0JrQntCS0JjQiyDQlNCj0KjQmtCeCivQm9CQ0JrQntCS0JjQiyDQnNCY0JvQmNCLCivQm9CQ0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQkNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JvQkNCa0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0JvQkNCa0J7QktCY0Isg0JLQkNCh0JjQidCa0JAKK9Cb0JDQm9CQ0KLQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JvQkNCb0JDQotCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cb0JDQm9CQ0KLQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JvQkNCb0JDQotCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cb0JDQm9CY0KfQmNCLINCS0JXQm9CY0JzQmNCgCivQm9CQ0JvQmNCLINCW0JjQktCQCivQm9CQ0JvQmNCLINCC0J7QoNCC0JUKK9Cb0JDQm9CY0Isg0JDQndCa0JjQptCQCivQm9CQ0JvQmNCLINCQ0KDQmtCQ0JTQmNCI0JUKK9Cb0JDQm9CY0Isg0JHQntCT0JTQkNCdCivQm9CQ0JvQmNCLINCT0JvQmNCT0J7QoNCY0IjQlQor0JvQkNCb0JjQiyDQk9Ce0IjQmtCeCivQm9CQ0JvQmNCLINCT0J7QoNCU0JDQndCQCivQm9CQ0JvQmNCLINCY0JrQntCd0JjQiNCQCivQm9CQ0JvQmNCLINCI0JDQk9Ce0JTQkAor0JvQkNCb0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQm9CQ0JvQmNCLINCI0KPQm9Ca0JAKK9Cb0JDQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cb0JDQm9CY0Isg0JzQkNCg0JjQiNCQCivQm9CQ0JvQmNCLINCc0JjQm9CQ0JTQmNCd0JrQkAor0JvQkNCb0JjQiyDQnNCY0JvQkNCdCivQm9CQ0JvQmNCLINCc0JjQm9CY0KbQkAor0JvQkNCb0JjQiyDQnNCY0KDQmtCeCivQm9CQ0JvQmNCLINCd0JXQndCQ0JQKK9Cb0JDQm9CY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0JvQmNCLINCg0JDQlNCe0JzQmNCgINCU0KAKK9Cb0JDQm9CY0Isg0KHQoNCV0JTQntCI0JUKK9Cb0JDQm9CY0Isg0KLQkNCc0JDQoNCQCivQm9CQ0JvQmNCLINCi0J7QlNCe0KAKK9Cb0JDQm9CY0Isg0KPQk9CJ0JXQqNCQCivQm9CQ0JvQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cb0JDQm9CY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JDQm9CY0J0g0JzQmNCb0JDQnQor0JvQkNCb0J7QqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQm9CQ0JvQntCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQlNCj0KjQkNCdCivQm9CQ0JvQntCo0JXQktCY0Isg0JTQo9Co0JrQngor0JvQkNCb0J7QqNCV0JLQmNCLINCk0JXQnNCa0JAKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JvQkNCb0J7QqNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cb0JDQm9Ce0KjQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQm9CQ0JfQkNCgCivQm9CQ0JvQntCo0JXQktCY0Isg0JzQkNCg0JAKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQnNCY0JrQkAor0JvQkNCb0J7QqNCV0JLQmNCLINCh0KLQldCS0JDQnQor0JvQkNCb0J7QqNCV0JLQmNCLINCh0KLQldCS0JAKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQktCQ0KHQkAor0JvQkNCb0J7QqNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JDQm9Ce0KjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9CQ0JvQntCS0JjQiyDQiNCQ0J3QmtCeCivQm9CQ0JvQntCS0JjQiyDQnNCQ0KDQmtCeCivQm9CQ0JvQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JvQkNCb0J7QktCY0Isg0J3QkNCU0JAKK9Cb0JDQm9Ce0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cb0JDQm9Ce0JLQmNCLINCh0KPQl9CQ0J3QkAor0JvQkNCb0J7QktCY0Isg0JLQldCg0JAKK9Cb0JDQnNCR0JXQotCQINCf0JXQmtCeCivQm9CQ0JzQkdCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQm9CQ0JzQkdCY0Isg0IjQntCS0J4KK9Cb0JDQnNCR0JjQiyDQntCb0JjQktCV0KDQkAor0JvQkNCc0J/QoNCV0KIg0JrQoNCY0KHQotCY0IjQkNCdCivQm9CQ0J3Qp9Cj0KjQmtCYINCV0JzQmNCb0JrQkAor0JvQkNCd0KYg0KTQoNCQ0IrQkAor0JvQkNCd0KYg0JzQkNCg0JjQiNCQCivQm9CQ0J3QptCe0Kgg0JDQndCQCivQm9CQ0J3QptCe0Kgg0J3QldCd0JDQlAor0JvQkNCd0KbQntCoINCh0JLQldCi0J7Ql9CQ0KAKK9Cb0JDQndCm0J7QqCDQotCe0JzQmNCh0JvQkNCSCivQm9CQ0J3QlNCV0JrQkCDQkNCd0KLQntCd0JjQiNCVCivQm9CQ0J3QkyDQkNCi0JjQm9CQCivQm9CQ0J3QkyDQlNCg0JDQk9CY0KbQkAor0JvQkNCd0JMg0IjQntCh0JjQnwor0JvQkNCd0JMg0JzQmNCg0IjQkNCd0JAKK9Cb0JDQndCTINCS0JDQm9CV0KDQmNCI0JAKK9Cb0JDQitCYINCQ0J3QlNCg0JDQqAor0JvQkNCK0Jgg0KHQotCV0JLQkNCdCivQm9CQ0J3QmtCe0JLQodCa0Jgg0J/QldCm0J4KK9Cb0JDQndCa0J7QktCh0JrQmCDQotCe0JzQp9CVCivQm9CQ0J/Qp9CV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQm9CQ0J/Qp9CV0JLQmNCLINCc0JjQm9CY0KbQkAor0JvQkNCf0KfQldCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JvQkNCf0KfQldCS0JjQiyDQn9CQ0IjQkAor0JvQkNCf0KfQldCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQm9CQ0J/Qp9CY0Isg0JzQmNCb0JDQnQor0JvQkNCf0JDQlNCQ0KIg0KXQntCg0KLQldCd0JfQmNCI0JAKK9Cb0JDQn9CQ0JTQkNCiINCh0J7QoNCY0J0KK9Cb0JDQn9CQ0JTQkNCiINCS0JDQodCY0JvQmNCI0JUKK9Cb0JDQn9CQ0IjQndCVINCc0JjQm9CQ0J0KK9Cb0JDQn9CeINCI0J7QktCQ0J0KK9Cb0JDQn9CjINCQ0J3QlNCg0JDQqAor0JvQkNCg0JrQmNCdINCh0KLQldCS0JDQnQor0JvQkNCh0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQm9CQ0KHQmNCLINCX0JLQntCd0JrQngor0JvQkNCh0JjQiyDQl9CS0J7QndCa0J4KK9Cb0JDQodCY0KbQkCDQkdCj0JTQmNCc0JjQoAor0JvQkNCh0JjQptCQINCU0KDQkNCT0KPQotCY0J0KK9Cb0JDQodCY0KbQkCDQmNCb0JjQiNCQCivQm9CQ0KHQmNCm0JAg0JzQmNCb0JDQnQor0JvQkNCh0JjQptCQINCc0JjQm9CQ0J0KK9Cb0JDQodCY0KbQkCDQnNCY0JvQldCd0JrQngor0JvQkNCh0JjQptCQINCc0JjQoNCe0KHQm9CQ0JIKK9Cb0JDQodCY0KbQkCDQo9Cg0J7QqAor0JvQkNCh0JjQptCQINCS0JXQidCa0J4KK9Cb0JDQodCY0KbQkCDQl9CU0KDQkNCS0JrQngor0JvQkNCh0JjQptCQINCX0JvQkNCi0JAKK9Cb0JDQodCY0KbQkCDQl9Ce0KDQkAor0JvQkNCh0JrQntCSINCU0J7QkdCg0JUKK9Cb0JDQodCa0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQm9CQ0KHQmtCe0JLQmNCLINCU0JDQndCY0JvQngor0JvQkNCh0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cb0JDQodCb0J4g0JXQotCV0JvQmtCQCivQm9CQ0KHQm9CeINCk0JXQoNCV0J3Qpgor0JvQkNCh0JvQniDQpNCg0JDQitCQCivQm9CQ0KHQm9CeINCk0KDQkNCK0JAKK9Cb0JDQodCb0J4g0JjQm9Ce0J3QkAor0JvQkNCh0JvQniDQiNCe0JbQldCkCivQm9CQ0KHQm9CeINCI0J7QodCY0J8KK9Cb0JDQodCb0J4g0IjQntCS0JDQnQor0JvQkNCh0JvQniDQm9CQ0KHQm9CeCivQm9CQ0KHQm9CeINCc0JjQmtCb0J7QqAor0JvQkNCh0JvQniDQnNCY0JvQldCd0JAKK9Cb0JDQodCb0J4g0KLQmNCR0J7QoAor0JvQkNCh0JvQniDQktCV0KDQkAor0JvQkNCh0JvQntCS0KHQmtCYINCi0JXQoNCV0JfQkAor0JvQkNCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQm9CQ0KLQkNCaINCd0JDQndCU0J7QoAor0JvQkNCi0JDQmyDQnNCQ0KDQiNCQ0J0KK9Cb0JDQotCQ0Jsg0KHQm9CQ0JLQmNCm0JAKK9Cb0JDQotCQ0Jsg0KHQotCV0JLQkNCdCivQm9CQ0KLQkNCbINCS0JXQoNCQCivQm9CQ0KLQkNCbINCX0JDQk9Ce0KDQmtCQCivQm9CQ0KLQkNChINCW0JjQktCa0JAKK9Cb0JDQotCQ0KEg0JvQkNCX0JDQoAor0JvQkNCi0JDQoSDQnNCQ0KDQmtCeCivQm9CQ0KLQkNChINCc0JjQm9CQ0JTQmNCdCivQm9CQ0KLQkNChINCc0JjQm9CQ0J0KK9Cb0JDQotCQ0KEg0J/QldCi0JDQoAor0JvQkNCi0JDQoSDQodCQ0JLQkCDQlNCgINCh0KLQntCc0JDQotCe0JvQntCTCivQm9CQ0KLQkNChINCX0J7QoNCQCivQm9CQ0KLQmNCo0JrQniDQo9Cg0J7QqAor0JvQkNCi0JjQiyDQmNCh0JDQmgor0JvQkNCi0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JvQkNCi0JjQndCn0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQm9CQ0KLQmNCd0KfQmNCLINCU0JDQndCY0KbQkAor0JvQkNCi0JjQndCn0JjQiyDQk9Cg0KPQiNCQCivQm9CQ0KLQmNCd0KfQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCi0JjQndCn0JjQiyDQoNCj0JbQkAor0JvQkNCi0JjQndCa0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQotCY0J3QmtCY0Isg0JLQmNCd0JrQkAor0JvQkNCi0JjQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cb0JDQotCY0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQm9CQ0KLQmNCd0J7QktCY0Isg0ILQo9CI0JAKK9Cb0JDQotCY0J3QntCS0JjQiyDQkdCe0JbQngor0JvQkNCi0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JvQkNCi0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JvQkNCi0JjQndCe0JLQmNCLINCV0KDQmNCa0JAKK9Cb0JDQotCY0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQm9CQ0KLQmNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JvQkNCi0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cb0JDQotCY0J3QntCS0JjQiyDQm9CQ0JfQkAor0JvQkNCi0JjQndCe0JLQmNCLINCJ0KPQkdCQCivQm9CQ0KLQmNCd0J7QktCY0Isg0JzQkNCm0JAKK9Cb0JDQotCY0J3QntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0JvQkNCi0JjQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQm9CQ0KLQmNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0JDQotCY0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQm9CQ0KLQmNCd0J7QktCY0Isg0J3QldCC0J4KK9Cb0JDQotCY0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JvQkNCi0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCi0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCi0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cb0JDQotCY0J3QntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JvQkNCi0JjQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Cb0JDQotCY0J3QntCS0JjQiyDQodCQ0JLQngor0JvQkNCi0JjQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQm9CQ0KLQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JvQkNCi0JjQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JDQotCY0J3QntCS0JjQiyDQodCc0JjQidCQCivQm9CQ0KLQmNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JvQkNCi0JjQndCe0JLQmNCLINCX0J7QoNCa0JAKK9Cb0JDQotCa0J7QktCY0Isg0JbQldCJ0JrQngor0JvQkNCi0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQm9CQ0KLQmtCe0JLQmNCLINCI0J7QktCeCivQm9CQ0KLQmtCe0JLQmNCLINCc0JjQm9CVCivQm9CQ0KLQmtCe0JLQmNCLINCS0KPQiNCeCivQm9CQ0KLQmtCe0JLQodCa0Jgg0KDQmNCh0KLQngor0JvQkNCi0J4g0IjQkNCh0J3QkAor0JvQkNCi0J7QktCJ0JXQkiDQl9CQ0JPQntCg0JrQkAor0JvQkNCj0Kgg0JTQmNCc0JjQotCg0JjQiNCVCivQm9CQ0KPQqCDQktCb0JDQlNCY0JzQmNCgCivQm9CQ0KPQqNCV0JIg0JTQoNCQ0JPQkNCd0JAKK9Cb0JDQo9Co0JXQkiDQiNCe0KbQkAor0JvQkNCj0KjQldCSINCJ0KPQkdCY0J3QmtCQCivQm9CQ0KPQqNCV0JIg0JzQmNCg0IjQkNCd0JAKK9Cb0JDQo9Co0JXQkiDQotCe0KjQkAor0JvQkNCj0KjQldCSINCS0JXQm9CY0JzQmNCgCivQm9CQ0KPQqNCV0JIg0JLQntCI0JjQodCb0JDQkgor0JvQkNCj0KjQldCS0JjQiyDQltCY0JLQkNCdCivQm9CQ0KPQqNCV0JLQmNCLINCW0JjQktCa0JAKK9Cb0JDQo9Co0JXQktCY0Isg0JbQmNCS0JrQkAor0JvQkNCj0KjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0JDQo9Co0JXQktCY0Isg0JTQoNCQ0JPQntCI0JUKK9Cb0JDQo9Co0JXQktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JvQkNCj0KjQldCS0JjQiyDQn9CQ0JLQm9CVCivQm9CQ0KPQqNCV0JLQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9Cb0JDQo9Co0JXQktCY0Isg0JLQldCh0JXQm9CY0J0KK9Cb0JDQo9Co0JXQktCY0Isg0JfQmNCi0JAKK9Cb0JDQo9Co0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0JDQo9CR0JXQoNCiINCS0JvQkNCU0JjQodCb0JDQktCQCivQm9CQ0KPQoSDQkNCd0JAKK9Cb0JDQo9ChINCa0JDQotCQ0KDQmNCd0JAKK9Cb0JDQo9Ci0JDQoNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JvQkNCj0KLQldCg0JXQoCDQgtCV0J3QgtCYCivQm9CQ0KPQotCV0KDQldCgINCb0JDQodCb0J4KK9Cb0JDQktCQ0Kcg0IjQntCW0JXQpAor0JvQkNCS0JDQpyDQm9CQ0KHQm9CeCivQm9CQ0JLQmNCn0JrQkCDQmtCQ0KDQm9CeCivQm9CQ0JLQoNCd0JjQiyDQmtCh0JXQndCY0IjQkAor0JvQkNCS0KDQndCY0Isg0JrQodCV0J3QmNCI0JAKK9Cb0JDQktCg0J3QmNCLINCc0JjQm9Ce0KgKK9Cb0JDQktCg0J3QmNCLINCg0JDQlNCY0JLQntCICivQm9CQ0JLQoNCK0JAg0JvQkNCX0JDQoAor0JvQkNCS0KDQitCQINCc0JjQm9Ca0JDQnQor0JvQkNCX0JAg0IjQntCdCivQm9CQ0JfQkCDQotCV0J7QlNCe0KDQkAor0JvQkNCX0JDQndCh0JrQmCDQkNCd0JAKK9Cb0JDQl9CQ0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQm9CQ0JfQkNCd0KHQmtCYINCT0J7QoNCU0JDQndCQCivQm9CQ0JfQkNCd0KHQmtCYINCT0J7QoNCU0JDQndCQCivQm9CQ0JfQkNCgINCC0KPQm9CQCivQm9CQ0JfQkNCgINCV0JvQldCd0JAKK9Cb0JDQl9CQ0KAg0IjQo9Cb0JjQkAor0JvQkNCX0JDQoCDQiNCj0JvQmNCI0JAKK9Cb0JDQl9CQ0KAg0JrQkNCi0JDQm9CY0J0KK9Cb0JDQl9CQ0KAg0JvQkNCU0JjQodCb0JDQkgor0JvQkNCX0JDQoCDQn9CQ0JLQm9CVCivQm9CQ0JfQkNCgINCh0JjQnNCQCivQm9CQ0JfQkNCgINCh0KLQiNCV0J/QkNCdCivQm9CQ0JfQkNCgINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JDQl9CQ0KDQldCSINCC0J7QmtCQCivQm9CQ0JfQkNCg0JXQkiDQkNCd0JAKK9Cb0JDQl9CQ0KDQldCSINCQ0J3QlNCg0JjQiNCQCivQm9CQ0JfQkNCg0JXQkiDQiNCe0JLQkNCdCivQm9CQ0JfQkNCg0JXQkiDQktCV0KDQkAor0JvQkNCX0JDQoNCV0JLQmNCLINCn0JXQlNCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0JbQmNCS0JrQkAor0JvQkNCX0JDQoNCV0JLQmNCLINCW0JjQktCe0KLQkAor0JvQkNCX0JDQoNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQkdCe0KjQmtCeCivQm9CQ0JfQkNCg0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JvQkNCX0JDQoNCV0JLQmNCLINCR0KDQkNCd0JrQngor0JvQkNCX0JDQoNCV0JLQmNCLINCR0KDQkNCd0JrQngor0JvQkNCX0JDQoNCV0JLQmNCLINCU0JDQndCY0JvQngor0JvQkNCX0JDQoNCV0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQm9CQ0JfQkNCg0JXQktCY0Isg0JTQntCR0KDQntCh0JDQkgor0JvQkNCX0JDQoNCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JvQkNCX0JDQoNCV0JLQmNCLINCI0JDQlNCS0JjQk9CQCivQm9CQ0JfQkNCg0JXQktCY0Isg0IjQldCb0JXQndCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0IjQldCb0JXQndCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0JvQkNCX0JDQoAor0JvQkNCX0JDQoNCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQm9CQ0JfQkNCg0JXQktCY0Isg0InQo9CR0J4KK9Cb0JDQl9CQ0KDQldCS0JjQiyDQnNCQ0J3QlNCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0JzQmNCb0JDQlNCY0J3QmtCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0JzQmNCb0JDQnQor0JvQkNCX0JDQoNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cb0JDQl9CQ0KDQldCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQm9CQ0JfQkNCg0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQkNCX0JDQoNCV0JLQmNCLINCc0JjQm9Cj0J0KK9Cb0JDQl9CQ0KDQldCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JvQkNCX0JDQoNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCX0JDQoNCV0JLQmNCLINCh0JDQktCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0KHQnNCY0InQkAor0JvQkNCX0JDQoNCV0JLQmNCLINCh0KLQkNCd0JjQqNCQCivQm9CQ0JfQkNCg0JXQktCY0Isg0KHQotCQ0J3QntCI0JUKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQl9CQ0KDQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQl9CQ0KDQldCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JvQkNCX0JDQoNCV0JLQmNCLINCS0JXQodCd0JAKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQktCY0JTQkNCdCivQm9CQ0JfQkNCg0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JvQkNCX0JDQoNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cb0JDQl9CQ0KDQldCS0JjQiyDQl9Ce0KDQkNCdINCU0KAg0JvQldCa0JDQoAor0JvQkNCX0JDQoNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Cb0JDQl9CQ0KDQldCS0KHQmtCYINCC0J7QoNCC0JUKK9Cb0JDQl9CQ0KDQldCS0KHQmtCYINCU0KDQkNCT0J7QidCj0JEKK9Cb0JDQl9CQ0KDQldCS0KHQmtCYINCh0JvQkNCS0JrQngor0JvQkNCX0JDQoNCe0JIg0JLQldCh0JXQm9CY0J0KK9Cb0JDQl9CQ0KDQntCSINCX0J7QoNCQ0J0KK9Cb0JDQl9CQ0KDQntCS0KHQmtCYINCU0KDQkNCT0JDQnQor0JvQkNCX0JXQndCU0JjQiyDQm9CQ0JfQkNCgCivQm9CQ0JfQldCd0JTQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCX0JjQp9CY0Isg0JHQoNCQ0J3QmtCeCivQm9CQ0JfQmNCn0JjQiyDQodCi0JDQndCY0IjQkAor0JvQkNCX0JjQiyDQltCQ0KDQmtCeCivQm9CQ0JfQmNCLINCW0JjQktCQ0J0KK9Cb0JDQl9CY0Isg0JbQmNCS0JDQnQor0JvQkNCX0JjQiyDQltCY0JLQkNCdCivQm9CQ0JfQmNCLINCW0JjQktCa0J4KK9Cb0JDQl9CY0Isg0JbQmNCS0J7QiNCY0J0KK9Cb0JDQl9CY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cb0JDQl9CY0Isg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Cb0JDQl9CY0Isg0JDQndCC0JXQm9Ca0JAKK9Cb0JDQl9CY0Isg0JDQndCU0KDQmNCI0JAKK9Cb0JDQl9CY0Isg0JHQntCo0JrQngor0JvQkNCX0JjQiyDQkdCe0JbQmNCU0JDQoAor0JvQkNCX0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JvQkNCX0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JvQkNCX0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0JDQl9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQm9CQ0JfQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JvQkNCX0JjQiyDQkdCg0JDQndCa0JAg0JTQoAor0JvQkNCX0JjQiyDQkdCj0JTQmNCc0JjQoAor0JvQkNCX0JjQiyDQlNCQ0JzQiNCQ0J3QmtCQCivQm9CQ0JfQmNCLINCU0JXQiNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQm9CQ0JfQmNCLINCU0JXQiNCQ0J0KK9Cb0JDQl9CY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cb0JDQl9CY0Isg0JTQoNCQ0JPQkNCdCivQm9CQ0JfQmNCLINCU0KDQkNCT0JAKK9Cb0JDQl9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cb0JDQl9CY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JvQkNCX0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQm9CQ0JfQmNCLINCU0KDQkNCT0J4KK9Cb0JDQl9CY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JvQkNCX0JjQiyDQlNCj0KjQkNCdCivQm9CQ0JfQmNCLINCU0KPQqNCQ0J0KK9Cb0JDQl9CY0Isg0JTQo9Co0JDQnQor0JvQkNCX0JjQiyDQlNCj0KjQkNCdCivQm9CQ0JfQmNCLINCV0JzQmNCbINCU0KAg0JvQldCa0JDQoAor0JvQkNCX0JjQiyDQk9Ce0IjQmtCeCivQm9CQ0JfQmNCLINCT0J7QoNCe0InQo9CRCivQm9CQ0JfQmNCLINCT0KDQntCX0JTQkNCd0JAKK9Cb0JDQl9CY0Isg0JjQktCQ0J3QkAor0JvQkNCX0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JvQkNCX0JjQiyDQiNCe0KbQkAor0JvQkNCX0JjQiyDQiNCe0JLQkNCd0JrQkAor0JvQkNCX0JjQiyDQiNCe0JLQkNCdCivQm9CQ0JfQmNCLINCI0KPQm9Ca0JAKK9Cb0JDQl9CY0Isg0JrQkNCi0JjQptCQCivQm9CQ0JfQmNCLINCa0JDQotCY0KbQkAor0JvQkNCX0JjQiyDQmtCQ0KLQmNCm0JAKK9Cb0JDQl9CY0Isg0JrQntCh0KLQkNCU0JjQnQor0JvQkNCX0JjQiyDQmtCe0KHQotCQCivQm9CQ0JfQmNCLINCb0JDQl9CQ0KAKK9Cb0JDQl9CY0Isg0JvQkNCX0JDQoAor0JvQkNCX0JjQiyDQidCj0JHQkNCdCivQm9CQ0JfQmNCLINCJ0KPQkdCY0J3QmtCQCivQm9CQ0JfQmNCLINCJ0KPQkdCY0KHQkNCS0JAKK9Cb0JDQl9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cb0JDQl9CY0Isg0JzQkNCg0JjQiNCQCivQm9CQ0JfQmNCLINCc0JDQoNCY0IjQkAor0JvQkNCX0JjQiyDQnNCQ0KDQmNCd0JrQngor0JvQkNCX0JjQiyDQnNCQ0KDQotCQCivQm9CQ0JfQmNCLINCc0JjQm9CQ0JTQmNCdCivQm9CQ0JfQmNCLINCc0JjQm9CQ0JTQmNCdCivQm9CQ0JfQmNCLINCc0JjQm9CQ0JTQmNCdCivQm9CQ0JfQmNCLINCc0JjQm9CQ0J0KK9Cb0JDQl9CY0Isg0JzQmNCb0JDQnQor0JvQkNCX0JjQiyDQnNCY0JvQkNCdCivQm9CQ0JfQmNCLINCc0JjQm9CQ0J0KK9Cb0JDQl9CY0Isg0JzQmNCb0JXQndCQCivQm9CQ0JfQmNCLINCc0JjQm9CV0J3QkAor0JvQkNCX0JjQiyDQnNCY0JvQldCd0JrQngor0JvQkNCX0JjQiyDQnNCY0JvQldCd0JrQngor0JvQkNCX0JjQiyDQnNCY0JvQldCS0JrQkAor0JvQkNCX0JjQiyDQnNCY0JvQmNCm0JAKK9Cb0JDQl9CY0Isg0JzQmNCb0JjQptCQCivQm9CQ0JfQmNCLINCc0JjQm9CY0KbQkAor0JvQkNCX0JjQiyDQnNCY0JvQmNCd0JrQngor0JvQkNCX0JjQiyDQnNCY0JvQmNCh0JDQkiDQn9Cg0J7QpNCV0KHQntCgCivQm9CQ0JfQmNCLINCc0JjQm9CY0KHQkNCSCivQm9CQ0JfQmNCLINCc0JjQm9CY0JLQntCICivQm9CQ0JfQmNCLINCc0JjQm9Ce0KgKK9Cb0JDQl9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0JDQl9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cb0JDQl9CY0Isg0JzQmNCg0JAKK9Cb0JDQl9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cb0JDQl9CY0Isg0JzQmNCg0JrQngor0JvQkNCX0JjQiyDQnNCY0KDQntCJ0KPQkQor0JvQkNCX0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQm9CQ0JfQmNCLINCc0JvQkNCU0JXQnQor0JvQkNCX0JjQiyDQndCQ0JTQkAor0JvQkNCX0JjQiyDQndCQ0JTQkAor0JvQkNCX0JjQiyDQndCQ0JTQkAor0JvQkNCX0JjQiyDQndCQ0JTQldCW0JTQkAor0JvQkNCX0JjQiyDQndCQ0IjQlNCQ0J0KK9Cb0JDQl9CY0Isg0J3QldCS0JXQndCQCivQm9CQ0JfQmNCLINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Cb0JDQl9CY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0JfQmNCLINCd0JjQmtCe0JvQkAor0JvQkNCX0JjQiyDQndCY0JrQntCb0JAKK9Cb0JDQl9CY0Isg0J3QmNCa0J7Qm9CQCivQm9CQ0JfQmNCLINCe0JHQoNCV0J0KK9Cb0JDQl9CY0Isg0J/QkNCI0JAKK9Cb0JDQl9CY0Isg0J/QldCi0JDQoAor0JvQkNCX0JjQiyDQn9CV0KLQkNCgCivQm9CQ0JfQmNCLINCf0JXQotCQ0KAKK9Cb0JDQl9CY0Isg0J/QldCi0JDQoAor0JvQkNCX0JjQiyDQn9CY0KDQntCo0JrQkAor0JvQkNCX0JjQiyDQn9CY0KDQntCo0JrQkAor0JvQkNCX0JjQiyDQoNCQ0JTQkAor0JvQkNCX0JjQiyDQoNCQ0JTQlQor0JvQkNCX0JjQiyDQoNCQ0JTQmNCo0JAKK9Cb0JDQl9CY0Isg0KDQkNCU0JjQktCe0IgKK9Cb0JDQl9CY0Isg0KDQkNCU0JzQmNCb0JAKK9Cb0JDQl9CY0Isg0KDQkNCU0J7QiNCa0JAKK9Cb0JDQl9CY0Isg0KDQkNCU0J7QiNCa0J4KK9Cb0JDQl9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Cb0JDQl9CY0Isg0KDQkNCI0JrQngor0JvQkNCX0JjQiyDQoNCe0JTQntCJ0KPQkQor0JvQkNCX0JjQiyDQoNCj0JbQkAor0JvQkNCX0JjQiyDQodCQ0IrQkAor0JvQkNCX0JjQiyDQodCQ0JLQkAor0JvQkNCX0JjQiyDQodCQ0JLQkAor0JvQkNCX0JjQiyDQodCQ0JLQkAor0JvQkNCX0JjQiyDQodCQ0JLQkAor0JvQkNCX0JjQiyDQodCY0JzQkCDQlNCgCivQm9CQ0JfQmNCLINCh0JvQkNCS0JrQngor0JvQkNCX0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9CQ0JfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JDQl9CY0Isg0KHQnNCY0InQkAor0JvQkNCX0JjQiyDQodCg0JHQmNCh0JvQkNCSCivQm9CQ0JfQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cb0JDQl9CY0Isg0KHQotCQ0J3QmtCeCivQm9CQ0JfQmNCLINCh0KLQldCS0JDQndCa0JAKK9Cb0JDQl9CY0Isg0KHQotCV0JLQkNCdCivQm9CQ0JfQmNCLINCh0KLQldCS0JDQnQor0JvQkNCX0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JDQl9CY0Isg0KHQotCV0JLQkNCdCivQm9CQ0JfQmNCLINCh0KLQntCI0JDQlNCY0J0KK9Cb0JDQl9CY0Isg0KHQotCe0IjQkNCdCivQm9CQ0JfQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cb0JDQl9CY0Isg0KLQldCe0JTQntCgCivQm9CQ0JfQmNCLINCi0KDQkNCI0JrQngor0JvQkNCX0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQm9CQ0JfQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cb0JDQl9CY0Isg0JLQldCb0JjQndCa0JAKK9Cb0JDQl9CY0Isg0JLQldCh0JXQm9CY0J0KK9Cb0JDQl9CY0Isg0JLQldCh0J3QkAor0JvQkNCX0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9CQ0JfQmNCLINCX0J7QoNCQ0J0KK9Cb0JDQl9CY0Isg0JfQntCg0JjQptCQCivQm9CQ0JfQmNCLINCX0J7QoNCY0KbQkAor0JvQkNCX0JjQptCQ0J3QmCDQkNCJ0KPQqAor0JvQkNCX0JjQnSDQkdCe0JPQlNCQ0J0KK9Cb0JDQl9CY0J0g0JHQoNCQ0J3QmtCeCivQm9CQ0JfQmNCdINCT0J7QiNCa0J4KK9Cb0JDQl9CY0J0g0JzQmNCg0J7QodCb0JDQktCQCivQm9CQ0JfQmNCdINCd0JDQotCQ0JvQmNCI0JAKK9Cb0JDQl9CY0J0g0KHQkNCS0JAKK9Cb0JDQl9CY0J0g0KHQkNCS0JAKK9Cb0JDQl9CY0J0g0KHQmNCd0JjQqNCQCivQm9CQ0JfQmNCdINCh0JjQndCY0KjQkAor0JvQkNCX0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQm9CQ0JfQmNCdINCS0J7QiNCY0J0KK9Cb0JDQl9CY0J0g0JfQntCg0JjQptCQCivQm9CQ0JfQmNCd0JjQptCQINCg0JDQlNCe0IjQmtCQCivQm9CQ0JfQntCgINCc0JjQoNCe0J0KK9Cb0JDQl9Ce0KAg0J3QmNCa0J7Qm9CQCivQm9CQ0JfQntCSINCi0KDQkNCI0JDQnQor0JvQkNCX0J7QktCQINCi0KDQkNCI0JrQkAor0JvQkNCX0J7QktCY0Isg0KfQldCU0J4KK9Cb0JDQl9Ce0JLQmNCLINCR0J7QqNCa0J4KK9Cb0JDQl9Ce0JLQmNCLINCR0J7QltCY0JTQkNCgCivQm9CQ0JfQntCS0JjQiyDQlNCV0IjQkNCdINCU0JjQn9CbINCY0J3Qkwor0JvQkNCX0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQm9CQ0JfQntCS0JjQiyDQm9CQ0JfQkNCgCivQm9CQ0JfQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cb0JDQl9Ce0JLQmNCLINCc0JjQm9CV0J3QotCY0IjQlQor0JvQkNCX0J7QktCY0Isg0JzQmNCb0JXQotCQCivQm9CQ0JfQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cb0JDQl9Ce0JLQmNCLINCc0JjQm9Ce0IjQmNCm0JAKK9Cb0JDQl9Ce0JLQmNCLINCd0JXQndCQ0JQKK9Cb0JDQl9Ce0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQm9CQ0JfQntCS0JjQiyDQodCQ0JLQmNCm0JAKK9Cb0JDQl9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JDQl9Ce0JLQmNCLINCh0KLQkNCd0JrQngor0JvQkNCX0J7QktCY0Isg0KHQotCV0JLQkNCdINCf0KDQntCk0JXQodCe0KAKK9Cb0JDQl9Ce0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JvQkNCX0J7QktCY0Isg0JLQo9CI0JDQlNCY0J0KK9Cb0JDQl9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cb0JDQl9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cb0JDQl9Ce0JLQodCa0Jgg0KHQm9CQ0JLQp9CeCivQm9CQ0JfQo9Ca0JjQiyDQp9CV0JTQngor0JvQkNCX0KPQmtCY0Isg0JDQndCC0JAKK9Cb0JDQl9Cj0JrQmNCLINCI0J7QktCeCivQm9CQ0JfQo9Ca0JjQiyDQmtCQ0IvQkAor0JvQkNCX0KPQmtCY0Isg0JzQmNCb0JDQnQor0JvQkNCX0KPQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JvQldCnINCV0J3QlNCg0JUg0JTQoAor0JvQldCnINCV0KDQmNClCivQm9CV0KfQkNCgINCI0J7QodCY0J8KK9Cb0JXQp9CQ0KAg0JrQkNCg0JvQngor0JvQldCn0JjQiyDQp9CV0JTQntCc0JjQoAor0JvQldCn0JjQiyDQlNCe0JHQoNCY0JvQkAor0JvQldCn0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQm9CV0KfQmNCLINCT0J7QiNCa0J4KK9Cb0JXQp9CY0Isg0JzQmNCb0JXQktCQCivQm9CV0KfQmNCLINCc0JjQm9Ce0JLQkNCdCivQm9CV0KfQmNCLINCd0JDQlNCQCivQm9CV0KfQmNCLINCd0JDQlNCQCivQm9CV0KfQmNCLINCh0JjQnNCeCivQm9CV0KfQmNCLINCh0J/QkNCh0J7QiNCVCivQm9CV0KfQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cb0JXQp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JvQldCo0KfQldCo0JXQnSDQldCU0JLQkNCg0JQKK9Cb0JXQqNCn0JXQqNCV0J0g0IjQldCb0JXQndCQCivQm9CV0KjQmNCLINCC0KPQoNCQCivQm9CV0KjQmNCLINCh0KLQntCI0JDQnQor0JvQldCo0JrQmNCLINCC0J7QoNCC0JUKK9Cb0JXQqNCa0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQm9CV0KjQmtCe0JIg0IjQntCS0JDQnQor0JvQldCo0JrQntCSINCc0JjQm9CQ0J0KK9Cb0JXQqNCa0J7QkiDQnNCY0J7QlNCg0JDQkwor0JvQldCo0JrQntCSINCe0JvQk9CY0KbQkAor0JvQldCo0JrQntCS0JjQiyDQl9Cb0JDQotCa0J4KK9Cb0JXQqNCd0JjQmiDQl9CQ0JPQntCg0JrQkAor0JvQldCo0KLQkNCgINCh0KLQldCS0JDQnQor0JvQldCo0KLQkNCgINCX0J7QoNCY0KbQkAor0JvQldCW0JDQiNCY0Isg0JLQo9Ca0JDQlNCY0J0KK9Cb0JXQltCQ0JrQntCSINCC0KPQoNCC0JjQptCQCivQm9CV0JbQkNCa0J7QkiDQnNCY0JvQkNCdCivQm9CV0JbQmNCc0JjQoNCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JXQltCY0JzQmNCg0JDQpiDQkdCg0JDQndCa0JjQptCQCivQm9CV0JbQmNCc0JjQoNCQ0KYg0JTQntCR0KDQmNCd0JrQkAor0JvQldCW0JjQnNCY0KDQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9Cb0JXQltCY0JzQmNCg0JDQpiDQodCb0J7QkdCe0JTQkNCdCivQm9CV0JbQmNCc0JjQoNCQ0KYg0KHQktCV0KLQm9CQ0J3QkAor0JvQldCW0JjQnNCY0KDQkNCmINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JXQgtCQ0J3QkCDQiNCV0JvQldCd0JAKK9Cb0JXQgtCQ0J3QkNCmINCC0KPQoNCC0JjQndCa0JAKK9Cb0JXQgtCQ0J3QkNCmINCR0KDQkNCd0JjQodCb0JDQktCQCivQm9CV0ILQkNCd0JDQpiDQlNCg0JDQk9Ce0JzQmNCgCivQm9CV0ILQkNCd0JDQpiDQldCc0JjQm9CY0IjQkAor0JvQldCC0JDQndCQ0KYg0JPQkNCS0KDQkAor0JvQldCC0JDQndCQ0KYg0JPQntCg0JjQptCQCivQm9CV0ILQkNCd0JDQpiDQiNCe0JLQkNCdCivQm9CV0ILQkNCd0JDQpiDQnNCY0JvQkNCdCivQm9CV0ILQkNCd0JDQpiDQodCV0JrQo9Cb0JAKK9Cb0JXQgtCQ0J3QkNCmINCh0JXQmtCj0JvQkAor0JvQldCC0JDQndCQ0KYg0KHQm9CQ0JLQmtCeCivQm9CV0ILQkNCd0JDQpiDQodCi0JXQktCQ0J0KK9Cb0JXQgtCQ0J3QkNCmINCh0KLQldCS0JDQnQor0JvQldCC0JDQndCQ0KYg0JLQmNCi0J7QnNCY0KAKK9Cb0JXQgtCQ0J3QodCa0Jgg0JHQoNCQ0J3QmtCQCivQm9CV0ILQldCd0JDQpiDQlNCg0JDQk9CQ0J0KK9Cb0JXQgtCV0J3QkNCmINCd0JDQlNCQCivQm9CV0ILQldCd0JDQpiDQodCb0JDQktCa0J4KK9Cb0JXQgtCV0J3QkNCmINCh0KLQkNCd0JjQnNCY0KAKK9Cb0JXQgtCV0J3QkNCmINCh0KLQoNCQ0KXQmNCK0JAKK9Cb0JXQkdCQ0KAg0JfQm9CQ0KLQmNCm0JAKK9Cb0JXQkdCV0KAg0JfQm9CQ0KLQmtCeCivQm9CV0JHQmyDQkNCg0J/QkNCUINCU0KAg0J/QoNCe0KTQldCh0J7QoAor0JvQldCR0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9Cb0JXQkdCj0KDQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cb0JXQptCa0Jgg0ILQo9Cb0JAKK9Cb0JXQptCa0Jgg0JrQoNCY0KjQotCe0KQKK9Cb0JXQptCa0J7QktCY0Isg0JXQnNCY0JsKK9Cb0JXQlNCV0J3QmtCeINCQ0J3QotCVINCc0KAKK9Cb0JXQlNCV0KAg0JXQnNCY0J3QkAor0JvQldCU0JXQoCDQntCb0JPQkAor0JvQldCT0JXQnSDQodCi0J7QiNCQ0J0KK9Cb0JXQk9CV0KLQmNCLINCR0KDQkNCd0JrQkAor0JvQldCl0J7QptCa0Jgg0KjQkNCd0JTQntCgCivQm9CV0KXQntCm0JrQmCDQpNCV0KDQldCd0KYKK9Cb0JXQpdCe0KLQodCa0Jgg0JrQkNCg0JvQngor0JvQldCl0KAg0JTQkNCS0J7QoAor0JvQldCY0KLQndCV0KAg0J3QmNCa0J7Qm9CQCivQm9CV0JrQmCDQgtCj0KDQkAor0JvQldCa0Jgg0JzQkNCg0JjQiNCQCivQm9CV0JrQmCDQodCi0IjQldCf0JDQnQor0JvQldCa0Jgg0KLQldCg0JXQl9CY0IjQkAor0JvQldCa0JjQiyDQltCY0JLQkNCU0JjQnQor0JvQldCa0JjQiyDQgtCe0KDQgtCY0IjQlQor0JvQldCa0JjQiyDQkdCe0JPQlNCQ0J0KK9Cb0JXQmtCY0Isg0JHQoNCQ0J3QmtCQCivQm9CV0JrQmNCLINCR0KDQkNCd0JrQngor0JvQldCa0JjQiyDQlNCV0IjQkNCdCivQm9CV0JrQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cb0JXQmtCY0Isg0JTQo9Co0JDQnQor0JvQldCa0JjQiyDQiNCe0KDQlNCQ0J0KK9Cb0JXQmtCY0Isg0InQo9CR0J7QnNCY0KAKK9Cb0JXQmtCY0Isg0InQo9CR0J7QnNCY0KAKK9Cb0JXQmtCY0Isg0JzQmNCb0JDQlNCY0J0KK9Cb0JXQmtCY0Isg0JzQmNCb0JDQndCa0JAKK9Cb0JXQmtCY0Isg0J3QldCC0J4KK9Cb0JXQmtCY0Isg0J3QmNCa0J7Qm9CQCivQm9CV0JrQmNCLINCh0JjQnNCV0JLQo9CdCivQm9CV0JrQmNCLINCh0KLQkNCd0JrQkAor0JvQldCa0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JXQmtCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cb0JXQmtCY0Isg0KLQldCe0JTQntCgCivQm9CV0JrQmNCLINCS0JXQodCV0JvQmtCeCivQm9CV0JrQmNCLINCX0JDQk9Ce0KDQmtCQCivQm9CV0JrQmNCLINCX0JTQoNCQ0JLQmtCeCivQm9CV0JrQmNCdINCJ0KPQkdCY0KbQkAor0JvQldCa0JjQnSDQnNCY0JvQkNCdCivQm9CV0JrQmNCdINCc0JjQm9CQ0J0KK9Cb0JXQmtCY0J0g0JzQmNCb0JDQnQor0JvQldCa0JjQnSDQl9CU0KDQkNCS0JrQngor0JvQldCa0J4g0ILQldCg0IIKK9Cb0JXQmtCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQm9CV0JrQniDQkdCe0KDQmNCh0JvQkNCSCivQm9CV0JrQniDQnNCb0JDQlNCV0J0KK9Cb0JXQmtCe0JLQmNCLINCU0J7QkdCg0JjQm9CeCivQm9CV0JrQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JvQldCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JvQldCa0J7QktCY0Isg0JzQmNCg0JrQngor0JvQldCa0J7QktCY0Isg0J3QntCS0JDQmgor0JvQldCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cb0JXQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cb0JXQmtCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JvQldCb0JXQkCDQotCe0JTQntCgCivQm9CV0JvQldCe0JLQmNCLINCR0J7QoNCeCivQm9CV0JvQmNCLINCW0JXQidCa0J4KK9Cb0JXQm9CY0Isg0JzQkNCl0JzQo9CiCivQm9CV0JvQmNCLINCc0JDQoNCY0IjQkAor0JvQldCb0JjQiyDQnNCY0KDQodCQ0JwKK9Cb0JXQm9CY0Isg0JfQo9Cc0KDQldCi0JAKK9Cb0JXQm9CY0Jog0IjQkNCd0J7QqAor0JvQldCb0JjQmiDQiNCV0J3QlQor0JvQldCb0J7QktCY0Isg0KDQkNCU0JUKK9Cb0JXQnNCQ0JjQiyDQltCV0InQmtCeCivQm9CV0JzQkNCY0Isg0KHQntCk0JjQiNCQCivQm9CV0JzQkNCI0JjQiyDQkdCg0JDQndCa0J4KK9Cb0JXQnNCQ0IjQmNCLINCm0JXQptCY0JvQmNCI0JAKK9Cb0JXQnNCQ0IjQmNCLINCa0JDQotCY0KbQkAor0JvQldCc0JDQiNCY0Isg0JzQkNCg0JjQiNCQCivQm9CV0JzQkNCI0JjQiyDQnNCY0JvQkNCdCivQm9CV0JzQkNCI0JjQiyDQnNCY0JvQkNCdCivQm9CV0JzQkNCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQm9CV0JzQkNCI0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQm9CV0JzQkNCI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9CV0JzQkNCI0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9CV0JzQpdCVINCI0JXQm9CY0KHQkNCS0JXQotCQCivQm9CV0JzQmNCLINCR0J7QodCQCivQm9CV0JzQmNCLINCU0KDQkNCT0JjQitCQCivQm9CV0JzQmNCLINCb0JDQl9CQ0KAKK9Cb0JXQnNCY0Isg0JzQmNCb0JXQndCa0J4KK9Cb0JXQnNCY0Isg0J3QldCR0J7QiNCo0JAKK9Cb0JXQnNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JvQldCdINCf0JjQoNCe0KjQmtCQCivQm9CV0J3Qp9CQINCQ0J3QlNCg0JjQiNCQCivQm9CV0J3Qp9CQINCa0JDQotCQCivQm9CV0J3QgtCV0Jsg0ILQo9Cg0J4KK9Cb0JXQndCC0JXQmyDQiNCe0JLQkNCdCivQm9CV0J3QgtCV0Jsg0IjQntCS0JDQnQor0JvQldCd0ILQldCbINCa0JDQoNCe0IkKK9Cb0JXQndCC0JXQmyDQnNCY0KXQkNCI0JvQngor0JvQldCd0JDQoNCUINCQ0KDQn9CQ0JQKK9Cb0JXQndCQ0KDQlCDQn9CV0KLQkNCgCivQm9CV0J3QkNCg0KIg0JrQkNCi0JjQptCQCivQm9CV0J3QkNCg0KLQmNCLINCC0J7QoNCC0JUKK9Cb0JXQndCQ0KLQntCSINCU0KPQqNCQ0J0KK9Cb0JXQndCU0JjQiyDQiNCe0KHQmNCfCivQm9CV0J3QlNCS0JDQiNCYINCQ0J3QlNCg0JjQiNCQCivQm9CV0J3QlNCS0JDQiNCYINCI0J7QltCV0KQKK9Cb0JXQndCU0JLQkNCI0Jgg0InQmNCJ0JDQndCQCivQm9CV0J3QldCgINCQ0J3QlNCg0JDQqAor0JvQldCd0JXQoCDQlNCV0JbQlQor0JvQldCd0JXQoNCiINCQ0J3QotCQ0JsKK9Cb0JXQndCV0KDQoiDQn9CV0KLQkNCgINCU0KAg0JTQntCm0JXQndCiCivQm9CV0J3QldCg0KIg0KHQotCV0JLQkNCdCivQm9CV0J3QpdCQ0KDQlCDQiNCQ0J3QntCoCivQm9CV0J3QmtCV0Kgg0IjQntCS0JDQnQor0JvQldCd0JrQldCoINCb0JDQodCb0J4KK9Cb0JXQntCS0JDQpiDQnNCY0JvQmNCS0J7QiNCVCivQm9CV0J7QktCQ0KYg0JLQo9Ca0JDQlNCY0J0KK9Cb0JXQn9Cn0JXQktCY0Isg0JzQmNCb0JXQotCQCivQm9CV0J/QqNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgINCU0KAg0JvQldCa0JDQoAor0JvQldCf0KjQmNCLINCU0KDQkNCT0JjQptCQCivQm9CV0J/QkNCgINCo0JDQndCU0J7QoAor0JvQldCf0JDQoCDQiNCV0JvQmNCm0JAKK9Cb0JXQn9CQ0KAg0JvQkNCU0JjQodCb0JDQkgor0JvQldCf0JXQqCDQm9CQ0JTQmNCh0JvQkNCSCivQm9CV0J/QldCoINCi0JjQkdCe0KAg0JTQoCDQn9Cg0J7QpAor0JvQldCf0KXQkNCk0KIg0J/QkNCbCivQm9CV0J/QmNCgINCQ0J3QgtCV0JvQmtCQCivQm9CV0J/QmNCgINCR0J7QodCY0InQmtCQCivQm9CV0J/QmNCgINCc0JjQm9Ce0KDQkNCUCivQm9CV0J/QmNCgINCS0JXQm9CY0JzQmNCgCivQm9CV0J/QntCo0JAg0KDQo9CU0J7Qm9CkCivQm9CV0J/QntCI0JXQkiDQkdCg0JDQndCa0J4KK9Cb0JXQn9Ce0IjQldCSINCh0JDQktCQCivQm9CV0J/QntCI0JXQkiDQktCQ0KHQmNCb0JjQiNCVCivQm9CV0J/QntCI0JXQktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cb0JXQn9Ce0IjQldCS0JjQiyDQodCi0JDQndCa0J4KK9Cb0JXQn9Ce0KDQmNChINCI0JDQnQor0JvQldCf0J7QotCY0Isg0JbQmNCS0JDQnQor0JvQldCf0J7QotCY0Isg0JzQmNCb0JXQndCa0J4KK9Cb0JXQn9Ce0KLQmNCLINCd0JjQmtCe0JvQkAor0JvQldCf0J7QktCY0Isg0JzQmNCa0JAKK9Cb0JXQn9Cj0KjQkCDQl9CU0JXQndCa0J4KK9Cb0JXQoCDQmNCS0JDQnQor0JvQldCg0JjQiyDQldCg0JbQldCR0JXQogor0JvQldCg0JjQmiDQkNCd0JTQoNCQ0KgKK9Cb0JXQoNCY0Jog0JjQqNCi0JLQkNCdCivQm9CV0KDQmNCaINCc0JjQmtCb0J7QqAor0JvQldCg0JjQndCmINCQ0J3QmNCa0J4KK9Cb0JXQoNCY0J3QpiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cb0JXQoNCY0J3QpiDQiNCQ0J3QntCoCivQm9CV0KDQmNCd0KYg0JrQkNCg0JvQngor0JvQldCg0JjQndCmINCa0JDQotCQ0JvQmNCdCivQm9CV0KDQmNCd0KYg0JvQkNCh0JvQngor0JvQldCg0JjQndCmINCb0JDQodCb0J4KK9Cb0JXQoNCY0J3QpiDQm9CV0J4KK9Cb0JXQoNCY0J3QpiDQm9CV0J4KK9Cb0JXQoNCeINCR0J7QltCY0JTQkNCgCivQm9CV0KDQniDQktCb0JDQlNCY0JzQmNCgCivQm9CV0KHQmtCe0JLQkNCmINCC0J7QoNCC0JUKK9Cb0JXQodCa0J7QktCQ0KYg0JTQoNCQ0JPQkNCdCivQm9CV0KHQmtCe0JLQkNCmINCJ0KPQkdCY0KbQkAor0JvQldCh0JrQntCS0JDQpiDQnNCY0JvQkNCdCivQm9CV0KHQmtCe0JLQkNCmINCc0JjQm9CQ0J0KK9Cb0JXQodCa0J7QktCQ0KYg0JzQmNCb0JXQotCQCivQm9CV0KHQmtCe0JLQkNCmINCc0JvQkNCU0JXQnSDQn9Cg0J7QpNCV0KHQntCgCivQm9CV0KHQmtCe0JLQkNCmINCg0JDQlNCe0JzQmNCgCivQm9CV0KHQmtCe0JLQkNCmINCh0KLQkNCd0JrQkAor0JvQldCh0JrQntCS0JDQpiDQktCb0JDQlNCY0JzQmNCgINCU0KAKK9Cb0JXQodCa0J7QktCQ0KYg0JLQntCI0JjQodCb0JDQkgor0JvQldCi0JDQiNCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0JXQotCQ0IjQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQm9CV0KLQkNCI0JXQkiDQnNCY0KXQkNCI0JvQngor0JvQldCi0JDQiNCV0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JvQldCi0JjQiyDQp9CV0JTQngor0JvQldCi0JjQiyDQltCQ0KDQmtCeCivQm9CV0KLQmNCLINCW0JjQktCQCivQm9CV0KLQmNCLINCW0JjQktCa0J4g0JTQmNCf0Jsg0JjQndCTCivQm9CV0KLQmNCLINCC0J7QmtCeCivQm9CV0KLQmNCLINCC0J7QoNCC0JUKK9Cb0JXQotCY0Isg0ILQntCg0ILQlQor0JvQldCi0JjQiyDQgtCe0KDQgtCVCivQm9CV0KLQmNCLINCC0J7QoNCC0JUKK9Cb0JXQotCY0Isg0ILQntCg0ILQlQor0JvQldCi0JjQiyDQkNCd0JjQptCQCivQm9CV0KLQmNCLINCQ0J3QmNCm0JAKK9Cb0JXQotCY0Isg0JDQoNCY0KjQmtCeCivQm9CV0KLQmNCLINCR0J7Qk9CU0JDQnQor0JvQldCi0JjQiyDQkdCe0KDQmNCS0J7QiAor0JvQldCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0JXQotCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQm9CV0KLQmNCLINCR0KDQkNCd0JrQkAor0JvQldCi0JjQiyDQkdCg0JDQndCa0J4KK9Cb0JXQotCY0Isg0JTQkNCg0JjQndCa0JAKK9Cb0JXQotCY0Isg0JTQoNCQ0JPQkNCdCivQm9CV0KLQmNCLINCU0KDQkNCT0JjQqNCQCivQm9CV0KLQmNCLINCU0KDQkNCT0JjQptCQCivQm9CV0KLQmNCLINCU0KPQqNCQ0J0KK9Cb0JXQotCY0Isg0JTQo9Co0JDQnQor0JvQldCi0JjQiyDQk9CQ0JLQoNCQCivQm9CV0KLQmNCLINCT0J7QiNCa0J4KK9Cb0JXQotCY0Isg0JPQntCg0JTQkNCd0JAg0JTQoAor0JvQldCi0JjQiyDQmNCS0JDQnQor0JvQldCi0JjQiyDQiNCe0JLQkNCd0JrQkAor0JvQldCi0JjQiyDQiNCe0JLQkNCdCivQm9CV0KLQmNCLINCa0J7QodCi0JAKK9Cb0JXQotCY0Isg0JvQkNCX0JDQoAor0JvQldCi0JjQiyDQm9CQ0JfQkNCgCivQm9CV0KLQmNCLINCb0JDQl9CQ0KAKK9Cb0JXQotCY0Isg0InQo9CR0JjQqNCQCivQm9CV0KLQmNCLINCJ0KPQkdCY0KbQkAor0JvQldCi0JjQiyDQnNCQ0KDQmNCm0JAKK9Cb0JXQotCY0Isg0JzQkNCg0JjQiNCQCivQm9CV0KLQmNCLINCc0JDQoNCY0IjQkAor0JvQldCi0JjQiyDQnNCQ0KDQmNCd0JrQngor0JvQldCi0JjQiyDQnNCY0JvQkNCdCivQm9CV0KLQmNCLINCc0JjQm9CQ0J0KK9Cb0JXQotCY0Isg0JzQmNCb0JDQnQor0JvQldCi0JjQiyDQnNCY0JvQkNCdCivQm9CV0KLQmNCLINCc0JjQm9CY0KbQkAor0JvQldCi0JjQiyDQnNCY0JvQmNCm0JAKK9Cb0JXQotCY0Isg0JzQmNCb0JjQptCQCivQm9CV0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQm9CV0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQm9CV0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQm9CV0KLQmNCLINCc0JjQm9Ce0JLQkNCdCivQm9CV0KLQmNCLINCc0JjQntCU0KDQkNCTCivQm9CV0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cb0JXQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JvQldCi0JjQiyDQndCV0J3QkNCUCivQm9CV0KLQmNCLINCd0JXQktCV0J3QkAor0JvQldCi0JjQiyDQntCb0JPQkAor0JvQldCi0JjQiyDQntCb0JPQkAor0JvQldCi0JjQiyDQntCb0JPQmNCm0JAKK9Cb0JXQotCY0Isg0J/QldCg0JAKK9Cb0JXQotCY0Isg0KDQkNCU0JAKK9Cb0JXQotCY0Isg0KDQkNCU0JUKK9Cb0JXQotCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cb0JXQotCY0Isg0KHQkNCS0JAKK9Cb0JXQotCY0Isg0KHQkNCS0JAKK9Cb0JXQotCY0Isg0KHQmNCc0JrQkAor0JvQldCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9CV0KLQmNCLINCh0KLQldCS0JDQnQor0JvQldCi0JjQiyDQodCi0JXQktCQ0J0KK9Cb0JXQotCY0Isg0KHQotCV0JLQkNCdCivQm9CV0KLQmNCLINCh0KLQntCI0JDQnSDQm9CV0JrQkNCgCivQm9CV0KLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JvQldCi0JjQiyDQodCS0JXQotCe0JfQkNCgCivQm9CV0KLQmNCLINCi0J7QlNCe0KAKK9Cb0JXQotCY0Isg0JLQldCg0JAKK9Cb0JXQotCY0Isg0JLQldCh0J3QkAor0JvQldCi0JjQiyDQktCY0JTQkAor0JvQldCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9CV0KLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQm9CV0KLQmNCLINCX0JTQoNCQ0JLQmtCeCivQm9CV0KLQmNCLINCX0J7QoNCQ0J0KK9Cb0JXQotCY0Isg0JfQntCg0JDQnQor0JvQldCi0JjQiyDQl9Ce0KDQkNCdCivQm9CV0KLQmNCLINCX0J7QoNCa0JAKK9Cb0JXQotCY0KbQkCDQmNCS0JDQndCQCivQm9CV0KLQmNCm0JAg0JzQmNCb0JDQnQor0JvQldCi0JjQptCQINCi0J7QnNCY0KHQm9CQ0JIKK9Cb0JXQotCeINCg0KPQltCY0KbQkAor0JvQldCi0J7QndCQ0Jgg0IjQkNCd0J7QqAor0JvQldCi0J7QndCQ0Jgg0JvQkNCh0JvQngor0JvQldCS0JAg0JjQm9CY0J3QmtCQCivQm9CV0JLQkNCYINCT0JDQkdCe0KAKK9Cb0JXQktCQ0Jgg0JrQkNCi0JDQm9CY0J0KK9Cb0JXQktCQ0Jgg0J3QkNCd0JTQntCgCivQm9CV0JLQkNCYINCh0KLQldCS0JDQnQor0JvQldCS0JDQiNCQ0KYg0JLQldCg0JAKK9Cb0JXQktCQ0JrQntCSINCc0JDQoNCQCivQm9CV0JLQkNCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQm9CV0JLQkNCa0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQm9CV0JLQkNCg0KHQmtCYINCc0JjQpdCQ0IjQm9CeCivQm9CV0JLQkNCi0JjQiyDQnNCQ0KLQmNCI0JAKK9Cb0JXQktCQ0KLQmNCLINCc0JjQm9Ca0JAKK9Cb0JXQktCQ0KLQmNCLINCc0JjQm9Ca0JjQptCQCivQm9CV0JLQldCd0KHQmtCYINCi0JDQlNCV0IgKK9Cb0JXQktCYINCT0J7QoNCQ0J0KK9Cb0JXQktCYINCb0JXQntCdCivQm9CV0JLQmCDQktCY0JrQotCe0KAKK9Cb0JXQktCY0Isg0InQo9CR0JjQndCa0J4KK9Cb0JXQktCd0JDQiNCY0Isg0JTQoNCQ0JPQkNCdCivQm9CV0JLQndCQ0IjQmNCLINCc0JjQm9Ca0JAKK9Cb0JXQktCd0JDQiNCY0Isg0JzQntCc0KfQmNCb0J4KK9Cb0JXQl9CV0KfQldCSINCh0JjQndCY0KjQkAor0JvQmNCn0JDQndCY0J0g0JTQoNCQ0JPQkNCdCivQm9CY0KfQkNCd0JjQnSDQnNCQ0KDQmNCI0JAKK9Cb0JjQp9CQ0J3QmNCdINCh0JvQkNCS0JrQngor0JvQmNCn0JXQnSDQpdCe0KLQmNCc0JjQoAor0JvQmNCn0JXQnSDQiNCe0KHQmNCfINCU0JjQn9CbINCY0J3Qkwor0JvQmNCn0JXQnSDQidCj0JTQnNCY0JvQkAor0JvQmNCn0JjQndCQINCC0J7QoNCC0JUKK9Cb0JjQp9CY0J3QkCDQkdCg0JDQndCa0JjQptCQCivQm9CY0KfQmNCd0JAg0JTQkNCd0JjQm9CeCivQm9CY0KfQmNCd0JAg0JTQnNCY0KLQkNCgCivQm9CY0KfQmNCd0JAg0JTQoNCQ0JPQngor0JvQmNCn0JjQndCQINCU0KPQqNCQ0J0KK9Cb0JjQp9CY0J3QkCDQm9Cj0JrQkAor0JvQmNCn0JjQndCQINCc0JDQoNCY0IjQkAor0JvQmNCn0JjQndCQINCc0JjQm9CQ0J3QmtCQCivQm9CY0KfQmNCd0JAg0JzQmNCb0JDQnQor0JvQmNCn0JjQndCQINCc0JjQm9CVCivQm9CY0KfQmNCd0JAg0J/QoNCV0JTQoNCQ0JMKK9Cb0JjQp9CY0J3QkCDQoNCQ0JTQlQor0JvQmNCn0JjQndCQINCS0JXQm9CY0JHQntCgCivQm9CY0KfQmNCd0JAg0JfQntCg0JDQnQor0JvQmNCn0JjQndCQ0KAg0JTQoNCQ0JPQkNCdCivQm9CY0KfQmNCd0JDQoCDQndCV0JTQldCJ0JrQngor0JvQmNCn0JjQndCQ0KAg0KHQm9CQ0JLQmtCeCivQm9CY0KfQmNCd0JDQoCDQodCi0JDQndCa0J4KK9Cb0JjQp9CY0J3QmNCLINCU0KPQqNCQ0J0KK9Cb0JjQp9CY0J3QmNCLINCd0JDQlNCQCivQm9CY0KjQp9CY0Isg0JLQldCb0JjQndCa0JAKK9Cb0JjQqNCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0JvQmNCo0JjQiyDQnNCQ0KDQmNCm0JAKK9Cb0JjQqNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JvQmNCo0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQm9CY0JHQldCgINCh0KLQldCS0JDQnQor0JvQmNCR0KDQmNCLINCY0JLQkNCdCivQm9CY0JHQoNCY0Isg0JjQktCQ0J0KK9Cb0JjQkdCg0JjQiyDQnNCQ0KDQmNCI0JDQnQor0JvQmNCU0JvQntCkINCf0JjQoNCe0KjQmtCQCivQm9CY0JTQm9Ce0KQg0KDQo9CU0J7Qm9CkCivQm9CY0JTQm9Ce0KQg0JfQntCb0KLQkNCdCivQm9CY0KXQotCV0J3QotCQ0Jsg0JDQndCi0JDQmwor0JvQmNCl0KLQldCd0KLQkNCbINCV0JvQmNCX0JDQkdCV0KLQkAor0JvQmNCl0JLQkNCg0KfQldCaINCQ0J3QlNCg0JjQiNCQCivQm9CY0JrQkNCS0JXQpiDQiNCQ0KDQntCc0JjQoAor0JvQmNCa0JDQktCV0KYg0JrQkNCg0JvQniDQlNCY0J/QmyDQmNCd0JMKK9Cb0JjQmtCY0Isg0JHQntCg0JjQodCb0JDQkgor0JvQmNCa0JjQiyDQkdCj0JTQmNCh0JvQkNCSCivQm9CY0JrQntCU0KDQmNCLINCc0JjQm9Ce0JLQkNCdCivQm9CY0JvQp9CV0JIg0JTQkNCg0JjQndCa0JAKK9Cb0JjQm9CYINCS0JXQoNCQCivQm9CY0JvQmNCLINCC0J7QoNCC0JUKK9Cb0JjQm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQm9CY0JvQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9Cb0JjQm9CY0Isg0JzQmNCb0JXQndCQCivQm9CY0JvQmNCLINCc0JjQntCU0KDQkNCTCivQm9CY0JvQmNCLINCh0KDQkdCY0KHQm9CQ0JIKK9Cb0JjQm9CY0Isg0KLQkNCi0IjQkNCd0JAKK9Cb0JjQm9CY0Isg0JLQldCb0JjQnNCY0KAKK9Cb0JjQnNCQ0J3QmCDQqNCQ0IvQmNCgCivQm9CY0JzQkNCd0Jgg0JzQldCc0JjQqAor0JvQmNCc0JDQndCYINCd0JDQl9CY0KQKK9Cb0JjQnNCQ0J3QntCS0JjQiyDQndCQ0JfQmNCkCivQm9CY0JzQkNCd0J7QktCh0JrQmCDQmNCR0KDQkNCl0JjQnAor0JvQmNCc0JDQndCe0JLQodCa0Jgg0JzQo9Ch0JDQpNCV0KIKK9Cb0JjQnNCR0J7QptCa0Jgg0J/QldCi0JDQoAor0JvQmNCc0JHQo9Cg0JPQldCgINCI0J7QltCV0KQKK9Cb0JjQndCU0JXQnNCQ0J0g0IjQldCb0JXQndCQCivQm9CY0J3QlNCV0JzQkNCdINCg0KPQlNCe0JvQpAor0JvQmNCd0JTQndCV0KAg0JzQkNCg0JPQmNCiCivQm9CY0J3QmNCLINCU0KDQkNCT0JDQnQor0JvQmNCK0JDQmiDQlNCg0JDQk9Ce0JzQmNCgCivQm9CY0J3QmtCeINCa0J7Qm9Ce0JzQkNCdCivQm9CY0J/QkNCYINCa0J7QoNCd0JXQmwor0JvQmNCf0JDQndCe0JLQmNCLINCT0J7QiNCa0J4KK9Cb0JjQn9Cd0JjQp9Ca0Jgg0JfQntCg0JjQptCQCivQm9CY0J/QntCi0JjQiyDQn9CV0KLQkNCgCivQm9CY0J/QntCS0JDQpiDQlNCj0KjQkNCdCivQm9CY0J/QntCS0JDQpiDQnNCQ0KLQmNCI0JAKK9Cb0JjQodCY0KfQmNCdINCd0JDQlNCQCivQm9CY0KHQmNCn0JjQnSDQotCe0JzQmNCh0JvQkNCSCivQm9CY0KHQmNCLINCc0JDQoNCY0KbQkAor0JvQmNCh0JjQptCQINCc0JjQpdCQ0IjQm9CeCivQm9CY0KHQmNCm0JAg0JzQmNCl0JDQiNCb0J4KK9Cb0JjQodCY0KbQkCDQnNCY0JvQntCoINCQ0JTQktCe0JrQkNCiCivQm9CY0KHQntCSINCa0JDQotCY0KbQkAor0JvQmNCh0J7QkiDQnNCY0JvQmNCc0JjQoAor0JvQmNCh0J7QkiDQnNCY0KDQmtCeCivQm9CY0KHQntCS0JDQpiDQl9Ce0KDQkNCdCivQm9CY0KHQo9CbINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQm9CY0KHQo9CbINCc0JjQm9Ca0JAKK9Cb0JjQodCj0JvQntCSINCe0JvQk9CQCivQm9CY0KHQo9Cb0J7QkiDQoNCQ0KLQntCc0JjQoAor0JvQmNCh0KPQm9Ce0JIg0JfQntCg0JDQnQor0JvQmNCi0JDQktCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQm9CY0KLQndCV0KAg0IjQntCS0JDQnQor0JvQmNCi0KDQmNCn0JjQiyDQk9CQ0JLQoNCQCivQm9CY0KLQoNCY0KfQmNCdINCR0J7Qk9CU0JDQnQor0JvQmNCi0KDQmNCn0JjQnSDQk9CV0J3QkAor0JvQmNCi0KDQmNCn0JjQnS3QktCV0JHQldCgINCR0J7Qk9CU0JDQndCa0JAKK9Cb0JjQotCg0JjQp9CY0J0g0JLQldCb0JjQnNCY0KAKK9Cb0JjQotCS0IjQkNCaINCf0JDQktCb0JUKK9Cb0JjQotCS0IjQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Cb0JjQktCQ0JTQkCDQnNCY0JvQkNCdCivQm9CY0JLQkNCU0JAg0JzQmNCb0J7QqAor0JvQmNCS0JDQiNCQINCI0J7Ql9CeCivQm9CY0JLQkNCI0JAg0IjQo9Cg0JUKK9Cb0JjQl9CQ0KLQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CJ0JDQp9CV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQidCQ0IjQmNCLINCi0JDQmNCfCivQidCQ0InQmNCLINCC0J7QoNCC0JUKK9CJ0JDQotCY0KTQmCDQmtCQ0JTQoNCYCivQidCQ0JLQoNCe0KjQmtCQINCf0JDQktCV0JsKK9CJ0JDQktCg0J7QqNCa0JAg0J/QkNCS0JXQmwor0InQldCo0JXQktCY0Isg0InQmNCJ0JDQndCQINCU0KAKK9CJ0JXQqNCV0JLQmNCLINCc0JDQoNCY0IjQkAor0InQldCo0IrQkNCaINCc0JjQoNCe0InQo9CRCivQidCV0KjQitCQ0Jog0JzQntCc0KfQmNCb0J4KK9CJ0JXQidCQ0Jog0JzQldCl0J4KK9CJ0JXQn9Ce0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9CJ0JjQmtCQ0KAg0JXQktCT0JXQndCY0IjQlQor0InQmNCa0JDQoCDQnNCY0KXQkNCI0JvQniDQlNCY0J/QmyDQmNCd0JMKK9CJ0JjQmtCQ0KAg0JLQldCg0J7QndCQCivQidCY0JrQkNCgINCS0JvQkNCU0JjQnNCY0KAg0JvQldCa0JDQoAor0InQmNCJ0JDQmiDQidCY0InQkNCd0JAKK9CJ0JjQidCQ0Jog0JzQmNCb0JDQnQor0InQmNCJ0JDQmiDQnNCY0JvQkNCdCivQidCY0InQkNCaINCc0JjQm9CV0J3QmtCeCivQidCY0InQkNCaINCc0JjQm9Ce0KDQkNCUCivQidCY0InQkNCaINCc0JjQntCU0KDQkNCTCivQidCY0InQkNCaINCc0JjQoNCa0J4KK9CJ0JjQidCQ0Jog0JzQmNCg0J7QodCb0JDQkgor0InQmNCJ0JDQmiDQndCQ0JTQkAor0InQmNCJ0JDQmiDQndCQ0JTQldCW0JTQkAor0InQmNCJ0JDQmiDQn9CQ0IjQngor0InQmNCJ0JDQmiDQodCQ0JLQkAor0InQmNCJ0JDQmiDQodCb0JDQktCa0J4KK9CJ0JjQidCQ0Jog0JLQm9CQ0JTQmNCc0JjQoAor0InQmNCJ0JDQmiDQktCb0JDQlNCeCivQidCj0KjQotCY0J3QkCDQltCY0JLQkNCdCivQidCj0KjQotCY0J3QkCDQgtCe0KDQgtCVCivQidCj0KjQotCY0J3QkCDQiNCV0JvQldCd0JAKK9CJ0KPQqNCi0JjQndCQINCJ0KPQkdCY0KbQkAor0InQo9Co0KLQmNCd0JAg0JzQmNCb0JDQnQor0InQo9Co0KLQmNCd0JAg0JzQmNCb0JDQnQor0InQo9Co0KLQmNCd0JAg0JzQmNCb0J7QktCQ0J0KK9CJ0KPQqNCi0JjQndCQINCd0JjQmtCe0JvQkAor0InQo9Co0KLQmNCd0JAg0J7Qm9CT0JAKK9CJ0KPQqNCi0JjQndCQINCh0J7QpNCY0IjQkAor0InQo9Co0KLQmNCd0JAg0JLQntCI0JrQkAor0InQo9Co0KLQmNCd0J7QkiDQndCQ0JTQkAor0InQo9CR0JDQqNCn0JjQmiDQkNCd0KLQntCdCivQidCj0JHQkNCd0JjQiyDQnNCQ0KDQkAor0InQo9CR0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQidCj0JHQkNCd0J7QktCY0Isg0KDQkNCU0JjQodCb0JDQkgor0InQo9CR0JXQndCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CJ0KPQkdCV0J3QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CJ0KPQkdCV0J3QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9CJ0KPQkdCY0KfQmNCLINCW0JDQoNCa0J4KK9CJ0KPQkdCY0KfQmNCLINCW0JDQoNCa0J4KK9CJ0KPQkdCY0KfQmNCLINCW0JjQktCa0JAKK9CJ0KPQkdCY0KfQmNCLINCC0KPQoNCC0JjQndCa0JAKK9CJ0KPQkdCY0KfQmNCLINCR0JvQkNCW0J4KK9CJ0KPQkdCY0KfQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CJ0KPQkdCY0KfQmNCLINCU0JDQndCa0J4KK9CJ0KPQkdCY0KfQmNCLINCU0JDQoNCQCivQidCj0JHQmNCn0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQidCj0JHQmNCn0JjQiyDQiNCe0JLQmNCm0JAKK9CJ0KPQkdCY0KfQmNCLINCb0JDQl9CQ0KAKK9CJ0KPQkdCY0KfQmNCLINCb0KPQmtCQCivQidCj0JHQmNCn0JjQiyDQnNCQ0KDQmNCI0JDQnQor0InQo9CR0JjQp9CY0Isg0JzQkNCg0JjQndCQCivQidCj0JHQmNCn0JjQiyDQnNCY0KXQkNCI0JvQngor0InQo9CR0JjQp9CY0Isg0JzQmNCb0J7QqCDQm9Ce0JrQkNCbCivQidCj0JHQmNCn0JjQiyDQnNCY0JvQntCoCivQidCj0JHQmNCn0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9CJ0KPQkdCY0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CJ0KPQkdCY0KfQmNCLINCd0JDQlNCQCivQidCj0JHQmNCn0JjQiyDQndCQ0JTQkAor0InQo9CR0JjQp9CY0Isg0J3QldCS0JXQndCa0JAKK9CJ0KPQkdCY0KfQmNCLINCd0JjQmtCe0JvQkAor0InQo9CR0JjQp9CY0Isg0J/QldCi0JDQoAor0InQo9CR0JjQp9CY0Isg0J/QldCi0JDQoAor0InQo9CR0JjQp9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0InQo9CR0JjQp9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0InQo9CR0JjQp9CY0Isg0KDQkNCi0JrQngor0InQo9CR0JjQp9CY0Isg0KDQldCJ0JAKK9CJ0KPQkdCY0KfQmNCLINCg0KPQlNCe0JvQpAor0InQo9CR0JjQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0InQo9CR0JjQp9CY0Isg0KHQotCQ0J3QmtCeCivQidCj0JHQmNCn0JjQiyDQodCi0JXQktCQ0J0KK9CJ0KPQkdCY0KfQmNCLINCh0KPQl9CQ0J3QkAor0InQo9CR0JjQp9CY0Isg0KLQkNCb0JjQndCa0JAKK9CJ0KPQkdCY0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CJ0KPQkdCY0KfQmNCLINCX0J7QoNCQCivQidCj0JHQmNCo0JXQktCY0Isg0JzQmNCb0J7QqAor0InQo9CR0JjQqNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQidCj0JHQmNCo0JjQiyDQnNCY0JvQkNCd0JrQngor0InQo9CR0JjQqNCY0Isg0J/QldCi0JDQoAor0InQo9CR0JjQqNCY0Isg0KHQo9CX0JDQndCQCivQidCj0JHQmNCLINCQ0J3QgtCV0JvQmtCQCivQidCj0JHQmNCLINCQ0J3QlNCg0JjQiNCQCivQidCj0JHQmNCLINCY0JLQkNCdCivQidCj0JHQmNCLINCI0JXQm9CV0J3QkAor0InQo9CR0JjQiyDQnNCY0KDQiNCQ0J3QkAor0InQo9CR0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQidCj0JHQmNCLINCf0JXQoNCeCivQidCj0JHQmNCLINCg0JDQiNCa0J4KK9CJ0KPQkdCY0JHQoNCQ0KLQmNCLINCV0JTQngor0InQo9CR0JjQkdCg0JDQotCY0Isg0JvQldCeCivQidCj0JHQmNCd0JDQpiDQnNCY0JvQkNCd0JrQkAor0InQo9CR0JjQndCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CJ0KPQkdCY0J3QmtCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQidCj0JHQmNCd0JrQntCS0JjQiyDQm9CV0J3QmtCQCivQidCj0JHQmNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CJ0KPQkdCY0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQidCj0JHQmNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQidCj0JHQmNCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0InQo9CR0JjQndCa0J7QktCY0Isg0J/QkNCS0JvQlQor0InQo9CR0JjQndCa0J7QktCY0Isg0KHQkNCS0JAKK9CJ0KPQkdCY0J3QmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0InQo9CR0JjQndCa0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9CJ0KPQkdCY0KHQkNCS0InQldCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CJ0KPQkdCY0KHQkNCS0InQldCS0JjQiyDQnNCY0KjQkAor0InQo9CR0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9CJ0KPQkdCY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9CJ0KPQkdCe0IjQkCDQlNCg0JXQndCa0JAKK9CJ0KPQkdCe0IjQkCDQnNCb0JDQlNCV0J0KK9CJ0KPQkdCe0IjQkCDQodCY0JvQktCY0IjQkAor0InQo9CR0J7QiNCV0JIg0JHQmNCJ0JDQndCQCivQidCj0JHQntCI0JXQkiDQmNCS0JDQnQor0InQo9CR0J7QiNCV0JIg0IjQldCb0JXQndCQCivQidCj0JHQntCI0JXQkiDQm9CQ0JfQkNCgCivQidCj0JHQntCI0JXQkiDQnNCQ0IjQkAor0InQo9CR0J7QiNCV0JIg0J/QldCi0JDQoCDQnNCgCivQidCj0JHQntCI0JXQkiDQoNCQ0IjQmtCeCivQidCj0JHQntCI0JXQktCY0Isg0KfQldCU0J7QnNCY0KAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQidCj0JHQntCI0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0InQo9CR0J7QiNCV0JLQmNCLINCR0KDQkNCd0JrQngor0InQo9CR0J7QiNCV0JLQmNCLINCU0JXQodCY0JzQmNCgCivQidCj0JHQntCI0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQmNCb0JjQiNCQCivQidCj0JHQntCI0JXQktCY0Isg0IjQntCS0JDQnQor0InQo9CR0J7QiNCV0JLQmNCLINCI0KPQm9Ca0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQmtCe0KHQotCQCivQidCj0JHQntCI0JXQktCY0Isg0JzQkNCg0JrQngor0InQo9CR0J7QiNCV0JLQmNCLINCc0JDQoNCa0J4KK9CJ0KPQkdCe0IjQldCS0JjQiyDQnNCY0KXQkNCI0JvQngor0InQo9CR0J7QiNCV0JLQmNCLINCc0JjQm9CV0J3QkAor0InQo9CR0J7QiNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0InQo9CR0J7QiNCV0JLQmNCLINCc0JjQoNCa0J4KK9CJ0KPQkdCe0IjQldCS0JjQiyDQntCh0KLQntCI0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQn9CV0KLQkNCgCivQidCj0JHQntCI0JXQktCY0Isg0KDQo9CW0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQoNCj0JbQmNCm0JAKK9CJ0KPQkdCe0IjQldCS0JjQiyDQodCb0JDQktCa0J4KK9CJ0KPQkdCe0IjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQidCj0JHQntCI0JXQktCY0Isg0KHQotCV0JLQkNCdCivQidCj0JHQntCI0JXQktCY0Isg0KLQntCU0J7QoAor0InQo9CR0J7QiNCV0JLQmNCLINCS0JXQidCa0J4KK9CJ0KPQkdCe0IjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQidCj0JHQntCI0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0InQo9CR0J7QiNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CJ0KPQkdCe0KLQmNCdINCI0JXQm9CV0J3QkAor0InQo9CR0J7QotCY0J0g0KDQkNCU0J7QodCb0JDQkgor0InQo9CR0J7QotCY0J3QkC3QkdCg0JrQmNCLINCg0JDQiNCd0JAKK9CJ0KPQkdCe0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQidCj0JHQo9Co0KfQmNCaINCf0JXQotCQ0KAKK9CJ0KPQmtCe0JLQp9CQ0J3QmNCdINCc0JjQoNCI0JDQndCQCivQidCj0JrQntCS0KfQkNCd0JjQnSDQl9Ce0KDQmNCm0JAKK9CJ0KPQnNCe0JbQldCS0KHQmtCYINCI0JXQm9CV0J3QkAor0InQo9Cc0J7QltCV0JLQodCa0Jgg0JzQkNCg0JjQiNCQCivQidCj0JzQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CJ0KPQotCY0Isg0KHQotCQ0J3QmNCa0JAKK9CJ0KPQotCS0Jgg0KDQkNCU0JjQktCe0IgKK9Cb0J7Qp9Ca0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cb0J7QqNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0J7QqNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0J7QqNCY0Isg0JzQmNCi0KDQkAor0JvQntCo0J7QndCmINCl0JXQndCg0JjQiNCV0KLQlQor0JvQntCR0J7QlNCQINCQ0J3QotCj0J0KK9Cb0J7QkdCe0JTQkCDQodCi0JXQktCQ0J0KK9Cb0J7QpiDQkNCd0JTQoNCQ0KgKK9Cb0J7QpiDQiNCe0JbQldCkCivQm9Ce0KbQmCDQmNCo0KLQktCQ0J0KK9Cb0J7QlNCYINCT0JDQkdCe0KAKK9Cb0J7QlNCYINCI0JXQm9CY0KHQkNCS0JXQotCQCivQm9Ce0JTQmCDQm9CQ0KHQm9CeCivQm9Ce0JPQo9Cd0J7QkiDQkNCb0JXQmtCh0JXQiCDQlNCY0J/QmyDQmNCd0JMKK9Cb0J7QiNCQ0J3QmNCn0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQm9Ce0IjQkNCd0JjQptCQINCR0J7QqNCa0J4KK9Cb0J7QiNCd0JAg0JjQktCQ0J0KK9Cb0J7QiNCe0JLQmNCLINCR0J7QltCY0KbQkAor0JvQntCI0J7QktCY0Isg0J7QodCi0J7QiNCQCivQm9Ce0IjQntCS0JjQiyDQoNCQ0J3QmtCeCivQm9Ce0IjQn9Cj0KAg0JzQmNCb0J7QktCQ0J0KK9Cb0J7QmtCQ0KEg0JTQkNCg0JrQngor0JvQntCa0JjQiyDQlNCQ0J3QmNCm0JAKK9Cb0J7QmtCY0Isg0IjQldCb0JXQndCQCivQm9Ce0JrQmNCLINCJ0KPQkdCY0KbQkAor0JvQntCa0JjQiyDQnNCY0JvQntCS0JDQnQor0JvQntCa0JjQiyDQktCV0KDQkAor0JvQntCb0JjQiyDQkdCe0KjQmtCeCivQm9Ce0JvQmNCLINCU0J7QkdCg0JjQndCa0JAKK9Cb0J7Qm9CY0Isg0JzQkNCg0JjQiNCQCivQm9Ce0JvQmNCLINCc0JjQm9CQ0J0KK9Cb0J7Qm9CY0Isg0J3QldCU0JXQidCa0J4KK9Cb0J7Qm9CY0Isg0KHQm9CQ0JLQmtCQCivQm9Ce0JvQmNCLINCi0J7QlNCe0KAKK9Cb0J7Qm9CY0J0g0JTQldCI0JDQnQor0JvQntCb0JjQnSDQl9Ce0KDQmNCm0JAKK9Cb0J7QnNCV0J0g0JXQm9CV0J3QkAor0JvQntCc0JjQiyDQnNCe0JzQmNCgCivQm9Ce0JzQmNCLINCg0JDQlNCe0JLQkNCdCivQm9Ce0JzQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0J7QnNCI0JDQndCh0JrQmCDQkNCU0JDQnAor0JvQntCc0IjQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0JvQntCc0J7QktCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSINCc0KAg0J7QldCmINCYINCY0KPQoNCVCivQm9Ce0JzQntCS0JjQiyDQnNCY0KXQkNCY0J3QkAor0JvQntCc0J7QktCY0Isg0JzQmNCl0JDQmNCd0JAKK9Cb0J7QnNCf0JDQoCDQlNCg0JDQk9CQ0J0KK9Cb0J7QnNCf0JDQoCDQnNCY0KLQkNCgCivQm9Ce0JzQn9CQ0KAg0J/QldCi0JDQoAor0JvQntCc0J/QkNCgINCh0JDQktCQCivQm9Ce0J3Qp9CQ0KAg0KfQldCU0J7QnNCY0KAKK9Cb0J7QndCn0JDQoCDQgtCj0KDQngor0JvQntCd0KfQkNCgINCR0J7QqNCa0J4KK9Cb0J7QndCn0JDQoCDQkdCe0JbQmNCU0JDQoAor0JvQntCd0KfQkNCgINCR0J7QiNCQ0J3QkAor0JvQntCd0KfQkNCgINCR0J7QoNCY0KEKK9Cb0J7QndCn0JDQoCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cb0J7QndCn0JDQoCDQlNCg0JDQk9CQ0J0KK9Cb0J7QndCn0JDQoCDQlNCj0KjQkNCdCivQm9Ce0J3Qp9CQ0KAg0JTQo9Co0JDQnQor0JvQntCd0KfQkNCgINCU0KPQqNCQ0J0KK9Cb0J7QndCn0JDQoCDQlNCj0KjQkNCdCivQm9Ce0J3Qp9CQ0KAg0JPQntCI0JrQngor0JvQntCd0KfQkNCgINCT0J7QoNCU0JDQndCQCivQm9Ce0J3Qp9CQ0KAg0JjQm9CY0IjQkAor0JvQntCd0KfQkNCgINCI0JXQm9CY0KbQkAor0JvQntCd0KfQkNCgINCI0J7QktCQ0J0KK9Cb0J7QndCn0JDQoCDQmtCe0KHQotCQCivQm9Ce0J3Qp9CQ0KAg0JrQodCV0J3QmNCI0JAKK9Cb0J7QndCn0JDQoCDQidCj0JHQmNCm0JAKK9Cb0J7QndCn0JDQoCDQidCj0JHQmNCm0JAKK9Cb0J7QndCn0JDQoCDQidCj0JHQmNCm0JAKK9Cb0J7QndCn0JDQoCDQnNCQ0KDQmtCeCivQm9Ce0J3Qp9CQ0KAg0JzQmNCl0JDQiNCb0J4KK9Cb0J7QndCn0JDQoCDQnNCY0JvQkNCdCivQm9Ce0J3Qp9CQ0KAg0JzQmNCb0JDQnQor0JvQntCd0KfQkNCgINCc0JjQm9CQ0J0KK9Cb0J7QndCn0JDQoCDQnNCY0JvQkNCdCivQm9Ce0J3Qp9CQ0KAg0JzQmNCb0JDQnQor0JvQntCd0KfQkNCgINCc0JjQm9CQ0J0KK9Cb0J7QndCn0JDQoCDQnNCY0JvQkNCdCivQm9Ce0J3Qp9CQ0KAg0JzQmNCb0JDQnQor0JvQntCd0KfQkNCgINCc0JjQm9CQ0J0KK9Cb0J7QndCn0JDQoCDQnNCY0JvQkNCdCivQm9Ce0J3Qp9CQ0KAg0JzQmNCb0JXQndCa0J4KK9Cb0J7QndCn0JDQoCDQnNCY0JvQlQor0JvQntCd0KfQkNCgINCc0JjQm9CVCivQm9Ce0J3Qp9CQ0KAg0JzQmNCb0J7QoNCQ0JQKK9Cb0J7QndCn0JDQoCDQnNCY0KDQmtCeCivQm9Ce0J3Qp9CQ0KAg0JzQmNCg0JrQngor0JvQntCd0KfQkNCgINCd0JXQlNCV0InQmtCeCivQm9Ce0J3Qp9CQ0KAg0J3QldCS0JXQndCa0JAKK9Cb0J7QndCn0JDQoCDQndCY0JrQntCb0JAKK9Cb0J7QndCn0JDQoCDQndCY0JrQntCb0JAKK9Cb0J7QndCn0JDQoCDQn9CQ0J3QotCV0JvQmNCI0JAKK9Cb0J7QndCn0JDQoCDQn9Cg0JXQlNCg0JDQkwor0JvQntCd0KfQkNCgINCg0JDQlNCVCivQm9Ce0J3Qp9CQ0KAg0KDQkNCU0J7QnNCY0KAKK9Cb0J7QndCn0JDQoCDQoNCQ0JTQntCc0JjQoAor0JvQntCd0KfQkNCgINCh0JjQnNCeCivQm9Ce0J3Qp9CQ0KAg0KHQm9CQ0JLQmtCeCivQm9Ce0J3Qp9CQ0KAg0KHQm9Ce0JHQntCU0JDQnQor0JvQntCd0KfQkNCgLdCh0KDQldCc0KfQldCSINCS0JXQoNCY0KbQkAor0JvQntCd0KfQkNCgINCh0KLQldCS0J4KK9Cb0J7QndCn0JDQoCDQotCQ0KLQiNCQ0J3QkAor0JvQntCd0KfQkNCgINCS0JXQm9CY0JzQmNCgCivQm9Ce0J3Qp9CQ0KAg0JLQldCg0JAKK9Cb0J7QndCn0JDQoCDQktCb0JDQlNCQCivQm9Ce0J3Qp9CQ0KAg0JLQm9CQ0JTQmNCc0JjQoNCa0JAg0JTQoAor0JvQntCd0KfQkNCgINCS0KPQmtCQ0KjQmNCdCivQm9Ce0J3Qp9CQ0KAg0JfQlNCg0JDQktCa0J4KK9Cb0J7QndCn0JDQoCDQl9Ce0KDQkNCdCivQm9Ce0J3Qp9CQ0KDQldCS0JjQiyDQltCY0JLQntCi0JAKK9Cb0J7QndCn0JDQoNCV0JLQmNCLINCY0JPQitCQ0KIKK9Cb0J7QndCn0JDQoNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cb0J7QndCn0JDQoNCV0JLQmNCLINCf0KPQndCY0KjQkAor0JvQntCd0KfQkNCg0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cb0J7QndCn0JDQoNCV0JLQmNCLINCS0JjQotCe0JzQmNCgCivQm9Ce0J3Qp9CQ0KDQmNCLINCg0JDQlNCc0JjQm9CQCivQm9Ce0J3Qp9CQ0KDQodCa0Jgg0JTQoNCQ0JPQkNCd0JAKK9Cb0J7QndCn0JDQoNCh0JrQmCDQlNCg0JDQk9CY0KjQkAor0JvQntCd0KfQkNCg0KHQmtCYINCf0KDQldCU0KDQkNCTCivQm9Ce0J3Qp9CQ0KDQodCa0Jgg0KHQkNCS0JAKK9Cb0J7QndCn0JDQoNCh0JrQmCDQodCg0JXQlNCe0IjQlQor0JvQntCd0KfQmNCd0JAg0JzQmNCJ0JAKK9Cb0J7QndCn0JjQndCQINCf0KDQldCU0KDQkNCTCivQm9Ce0J3QptCY0Isg0JHQldCg0JjQodCb0JDQktCQCivQm9Ce0J3QptCY0Isg0KDQkNCI0JrQngor0JvQntCf0JDQotCY0J0g0J3QmNCa0J7Qm9CQCivQm9Ce0J/QmNCn0JjQiyDQqNCf0JjQoNCeCivQm9Ce0J/QmNCn0JjQiyDQkdCg0JDQndCa0J4KK9Cb0J7Qn9CY0KfQmNCLINCR0KDQkNCd0JrQngor0JvQntCf0JjQp9CY0Isg0IjQldCb0JjQptCQCivQm9Ce0J/QmNCn0JjQiyDQiNCe0JLQkNCdCivQm9Ce0J/QmNCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0JvQntCf0JjQp9CY0Isg0J7Qm9CT0JAKK9Cb0J7Qn9CY0KfQmNCLINCS0JXQodCV0JvQmNCdCivQm9Ce0J/Qo9Co0JDQndCh0JrQmCDQlNCj0KjQmNCm0JAKK9Cb0J7Qn9Cj0KjQmNCd0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cb0J7Qn9Cj0KjQmNCd0JAg0IjQldCb0JjQptCQCivQm9Ce0KDQkdCV0Jog0IjQntCh0JjQnwor0JvQntCg0JXQmiDQiNCe0JLQkNCdCivQm9Ce0KDQldCd0KbQmNCdINCc0JjQm9CQ0J0KK9Cb0J7QotCY0J3QkCDQlNCg0JDQk9CQ0J0KK9Cb0J7QotCY0J3QkCDQnNCY0KDQntCh0JvQkNCSCivQm9Ce0KLQmNCd0JAg0KHQnNCY0InQkAor0JvQntCS0KfQldCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JvQntCS0KfQldCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cb0J7QktCn0JXQktCY0Isg0JzQmNCb0JjQiwor0JvQntCS0KfQldCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQm9Ce0JLQp9CV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cb0J7QktCQ0Kgg0KDQntCX0JDQm9CY0IjQkAor0JvQntCS0JDQlNCY0J3QntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cb0J7QktCQ0KEg0JjQktCQ0J0KK9Cb0J7QktCY0Isg0JrQo9CX0JzQkNCdCivQm9Ce0JLQoNCVINCn0JXQlNCeCivQm9Ce0JLQoNCVINCU0KDQkNCT0JDQnQor0JvQntCS0KDQlSDQidCY0InQkNCd0JAKK9Cb0J7QktCg0JUg0JzQmNCb0J7QqAor0JvQntCS0KDQlSDQodCQ0JLQngor0JvQntCS0KDQlSDQodCb0JDQktCa0J4KK9Cb0J7QktCg0JUg0KHQotCV0JLQkNCdCivQm9Ce0JLQoNCV0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQm9Ce0JLQoNCV0JrQntCS0JjQiyDQl9Cb0JDQotCa0J4KK9Cb0J7QktCg0JXQnSDQodCb0JDQktCa0J4KK9Cb0J7QktCg0JXQndCn0JjQiyDQmtCQ0KLQmNCm0JAKK9Cb0J7QktCg0JXQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JvQntCS0KDQldCd0KHQmtCYINCU0KPQqNCQ0J0KK9Cb0J7QktCg0JXQndCh0JrQmCDQlNCj0KjQkNCdCivQm9Ce0JLQoNCY0Isg0JbQldCJ0JrQngor0JvQntCS0KDQmNCLINCW0JXQidCa0J4KK9Cb0J7QktCg0JjQiyDQgtCj0KDQkAor0JvQntCS0KDQmNCLINCU0JjQktCd0JAKK9Cb0J7QktCg0JjQiyDQnNCQ0KDQmtCeCivQm9Ce0JLQoNCY0Isg0J3QmNCa0J7Qm9CQCivQm9Ce0JLQoNCY0Isg0J/QldCi0JDQoAor0JvQntCS0KDQmNCLINCg0JDQiNCa0J4KK9Cb0J7QktCg0JjQiyDQoNCQ0KLQmtCeCivQm9Ce0JLQoNCY0Isg0KHQm9CQ0JLQmtCeCivQm9Ce0JLQoNCY0Isg0KHQm9CQ0JLQmtCeCivQm9Ce0JLQoNCY0Isg0KHQotCV0JLQkNCdCivQm9Ce0JLQoNCY0Isg0KHQotCV0JLQkNCdCivQm9Ce0JLQoNCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cb0J7QktCg0JjQiyDQotCg0JjQktCj0J0KK9Cb0J7QktCg0JjQnSDQlNCQ0KDQkAor0JvQntCS0KDQmNCdINCU0KDQkNCT0JDQnQor0JvQntCX0JDQndCn0JjQiyDQndCY0JrQngor0JvQntCX0JDQndCY0Isg0JjQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQm9Ce0JfQkNCd0JjQiy3Qn9CQ0JLQm9Ce0JLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Cb0J7Ql9CQ0J3QntCSINCV0JzQmNCbCivQm9Ce0JfQkNCd0J7QkiDQodCQ0JLQkAor0JvQntCX0JjQiyDQiNCe0KHQmNCfCivQm9Ce0JfQmNCLINCa0KDQodCi0JAKK9Cb0J7Ql9CY0Isg0JrQodCV0J3QmNCI0JAKK9Cb0J7Ql9CY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQmNCf0Jsg0JjQndCTCivQm9Ce0JfQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cb0J7Ql9CI0JDQndCY0J0g0J3QmNCa0J7Qm9CQCivQm9Ce0JfQiNCQ0J3QmNCdINCd0JjQmtCe0JvQkAor0JvQntCX0IjQkNCd0JjQnSDQndCY0JrQntCb0JAKK9Cb0J7Ql9Ce0JLQntCIINCJ0KPQkdCY0KbQkAor0JvQo9Cn0JDQmiDQl9Cb0JDQotCY0KbQkAor0JvQo9Cn0JDQoCDQnNCY0JvQkNCU0JjQnQor0JvQo9Cn0JDQoCDQnNCY0JvQkNCdCivQm9Cj0KfQkNCgINCS0JXQoNCQCivQm9Cj0KfQmCDQkNCd0JjQptCQCivQm9Cj0KfQmCDQmNCS0JDQnQor0JvQo9Cn0JjQiyDQp9CV0JTQntCc0JjQoAor0JvQo9Cn0JjQiyDQltCY0JLQmtCeCivQm9Cj0KfQmNCLINCC0J7QmtCeCivQm9Cj0KfQmNCLINCC0J7QoNCC0JUKK9Cb0KPQp9CY0Isg0ILQo9Cg0ILQmNCd0JAKK9Cb0KPQp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoAor0JvQo9Cn0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JvQo9Cn0JjQiyDQkdCg0JDQndCa0J4KK9Cb0KPQp9CY0Isg0JTQoNCQ0JPQkNCdCivQm9Cj0KfQmNCLINCU0KDQkNCT0JjQptCQCivQm9Cj0KfQmNCLINCU0KDQkNCT0JjQitCQCivQm9Cj0KfQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cb0KPQp9CY0Isg0JPQldCe0KDQk9CY0IjQlQor0JvQo9Cn0JjQiyDQiNCV0JvQldCd0JAKK9Cb0KPQp9CY0Isg0IjQldCb0JjQptCQCivQm9Cj0KfQmNCLINCI0J7QktCQ0J0g0JzQoAor0JvQo9Cn0JjQiyDQiNCe0JLQkNCdCivQm9Cj0KfQmNCLINCI0J7QktCQ0J0KK9Cb0KPQp9CY0Isg0IjQntCS0JjQptCQCivQm9Cj0KfQmNCLINCb0JDQl9CeCivQm9Cj0KfQmNCLINCJ0KPQkdCQ0J0KK9Cb0KPQp9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cb0KPQp9CY0Isg0InQo9CR0J4KK9Cb0KPQp9CY0Isg0JzQmNCl0JDQiNCb0J4KK9Cb0KPQp9CY0Isg0JzQmNCb0JDQnQor0JvQo9Cn0JjQiyDQnNCY0JvQldCd0JrQngor0JvQo9Cn0JjQiyDQnNCY0JvQldCd0JrQngor0JvQo9Cn0JjQiyDQnNCY0JvQmNCm0JAKK9Cb0KPQp9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0JvQo9Cn0JjQiyDQnNCY0JvQntCoCivQm9Cj0KfQmNCLINCc0JjQm9Ce0IjQmNCm0JAKK9Cb0KPQp9CY0Isg0JzQmNCb0J7QiNCa0JAKK9Cb0KPQp9CY0Isg0JzQmNCb0J7QnNCY0KAKK9Cb0KPQp9CY0Isg0JzQmNCb0J7QodCQ0JLQkAor0JvQo9Cn0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JvQo9Cn0JjQiyDQnNCY0J7QlNCg0JDQkwor0JvQo9Cn0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JvQo9Cn0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cb0KPQp9CY0Isg0JzQntCc0KfQmNCb0J4KK9Cb0KPQp9CY0Isg0JzQntCc0JjQoAor0JvQo9Cn0JjQiyDQndCQ0JTQkAor0JvQo9Cn0JjQiyDQntCR0KDQkNCUCivQm9Cj0KfQmNCLINCf0JDQndCi0JAKK9Cb0KPQp9CY0Isg0J/QkNCS0JAKK9Cb0KPQp9CY0Isg0J/QldCi0JDQoAor0JvQo9Cn0JjQiyDQn9CV0KLQmtCeCivQm9Cj0KfQmNCLINCf0JXQotCa0J4KK9Cb0KPQp9CY0Isg0KDQkNCI0JrQngor0JvQo9Cn0JjQiyDQoNCY0KHQotCeCivQm9Cj0KfQmNCLINCh0JvQkNCS0JrQngor0JvQo9Cn0JjQiyDQodCb0JDQktCd0JAKK9Cb0KPQp9CY0Isg0KHQntCk0JjQiNCQCivQm9Cj0KfQmNCLINCh0J/QkNCh0J7QiNCVCivQm9Cj0KfQmNCLINCh0KLQldCk0JDQndCY0IjQkAor0JvQo9Cn0JjQiyDQodCi0JXQktCQ0J0KK9Cb0KPQp9CY0Isg0JLQkNCh0J4KK9Cb0KPQp9CY0Isg0JLQm9CQ0JTQngor0JvQo9Cn0JjQiyDQktCe0IjQmNCdCivQm9Cj0KfQmNCLINCX0JTQoNCQ0JLQmtCeCivQm9Cj0KjQmNCd0J7QktCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cb0KPQltCQ0JjQiyDQgtCe0KDQgtCVCivQm9Cj0JbQkNCY0Isg0ILQntCg0ILQlQor0JvQo9CW0JDQmNCLINCQ0J3QmtCQCivQm9Cj0JbQkNCY0Isg0JHQntCW0JjQptCQCivQm9Cj0JbQkNCY0Isg0JTQo9Co0JrQngor0JvQo9CW0JDQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Cb0KPQltCQ0JjQiyDQiNCj0JvQmtCQCivQm9Cj0JbQkNCY0Isg0JzQmNCg0JAKK9Cb0KPQltCQ0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9Cj0JbQkNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JvQo9CW0JDQiNCY0Isg0JDQndCa0JAKK9Cb0KPQltCQ0IjQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Cb0KPQltCQ0IjQmNCLINCc0JjQm9CV0J3QkAor0JvQo9CW0JDQiNCY0Isg0J3QkNCU0JAKK9Cb0KPQltCQ0IjQmNCLINCh0KLQkNCd0JrQngor0JvQo9CW0JDQiNCY0Isg0KHQotCQ0J3QmtCeCivQm9Cj0JbQkNCI0JjQiyDQodCi0J7QiNCQ0J0KK9Cb0KPQltCQ0J3QmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9Cb0KPQkdCQ0KjQp9CY0Jog0JDQndCi0JDQmwor0JvQo9CR0JDQqNCn0JjQmiDQm9CQ0KHQm9CeCivQm9Cj0JHQkNCg0JTQkCDQidCj0JHQmNCm0JAKK9Cb0KPQkdCQ0KDQlNCQINCh0KLQldCS0JDQnQor0JvQo9CR0JXQnSDQoNCQ0J3QmtCeCivQm9Cj0JHQldCdINCh0JDQktCQCivQm9Cj0JHQo9Cg0JjQiyDQp9CV0JTQntCc0JjQoAor0JvQo9CR0KPQoNCY0Isg0JTQkNCd0JjQm9CeCivQm9Cj0JHQo9Cg0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQo9CR0KPQoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0KPQkdCj0KDQmNCLINCc0JjQm9Ce0JLQkNCdCivQm9Cj0JHQo9Cg0JjQiyDQnNCY0J7QlNCg0JDQkwor0JvQo9CR0KPQoNCY0Isg0JzQmNCg0JrQngor0JvQo9CR0KPQoNCY0Isg0J3QkNCU0JAKK9Cb0KPQkdCj0KDQmNCLINCg0JDQlNCe0JzQmNCgCivQm9Cj0JHQo9Cg0JjQiyDQoNCQ0IjQmtCeCivQm9Cj0JHQo9Cg0JjQiyDQodCi0JDQndCQCivQm9Cj0JHQo9Cg0JjQiyDQodCi0JXQktCQ0J0KK9Cb0KPQpiDQiNCQ0J3QntCoCivQm9Cj0KYg0IjQo9Cb0JjQiNCQCivQm9Cj0KbQmNCLINCW0JjQktCe0IjQmNCdCivQm9Cj0KbQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQm9Cj0KbQmNCLINCf0JXQotCQ0KAKK9Cb0KPQptCY0Isg0KDQkNCU0JjQktCe0IgKK9Cb0KPQptCa0JDQoNCWINCS0JvQkNCU0JjQnNCY0KAKK9Cb0KPQlNCQ0IjQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQm9Cj0JTQkNCI0JjQiyDQktCV0KDQkAor0JvQo9CU0J7QqNCa0Jgg0JDQndCC0JXQm9Ca0J4KK9Cb0KPQlNCe0KjQmtCYINCa0JDQotCY0KbQkAor0JvQo9CU0J7QqNCa0Jgg0JvQkNCX0JDQoAor0JvQo9CU0J7QqNCa0Jgg0JvQkNCX0JDQoAor0JvQo9CU0J7QqNCa0Jgg0InQo9CR0JjQptCQCivQm9Cj0JTQntCo0JrQmCDQidCj0JHQntCc0JjQoAor0JvQo9CU0J7QqNCa0Jgg0JzQmNCb0JXQndCa0J4KK9Cb0KPQlNCe0KjQmtCYINCS0JXQm9CY0JzQmNCgCivQm9Cj0JTQoNCe0JLQkNCdINCh0KLQldCS0JAKK9Cb0KPQk9Ce0IrQkCDQm9CQ0JfQngor0JvQo9CT0J7QitCQINCf0JXQotCQ0KAKK9Cb0KPQk9Ce0IrQkCDQoNCQ0JTQmNCS0J7QiAor0JvQo9CT0J7QitCQINCh0JDQktCQCivQm9Cj0JPQntCK0JAg0KHQm9Ce0JHQntCU0JDQnQor0JvQo9CT0J7QitCQINCS0JXQidCa0J4KK9Cb0KPQk9Ce0IrQkCDQktCY0JTQntCI0JUKK9Cb0KPQk9Cj0JzQldCg0KHQmtCYINCU0JDQndCY0KbQkAor0JvQo9CY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQm9Cj0IjQkNCd0J7QkiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cb0KPQiNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQm9Cj0IjQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JvQo9Ca0JDQpyDQqNCQ0J3QlNCe0KAKK9Cb0KPQmtCQ0Kcg0JDQndCU0KDQkNCoCivQm9Cj0JrQkNCnINCQ0J3QmtCY0KbQkAor0JvQo9Ca0JDQpyDQkNCg0JDQndCa0JAKK9Cb0KPQmtCQ0Kcg0JHQntCo0JrQngor0JvQo9Ca0JDQpyDQkdCe0KjQmtCeCivQm9Cj0JrQkNCnINCR0J7QltCY0JTQkNCgCivQm9Cj0JrQkNCnINCR0KDQkNCd0JjQodCb0JDQkgor0JvQo9Ca0JDQpyDQlNCQ0J3QmNCb0J4KK9Cb0KPQmtCQ0Kcg0JTQoNCQ0JPQkNCdCivQm9Cj0JrQkNCnINCU0KDQkNCT0J7QodCb0JDQkiDQlNCgCivQm9Cj0JrQkNCnINCk0JXQoNCV0J3Qpgor0JvQo9Ca0JDQpyDQpNCg0JDQndCm0JjQqNCa0JAKK9Cb0KPQmtCQ0Kcg0KTQoNCQ0IrQkAor0JvQo9Ca0JDQpyDQk9Cg0J7Ql9CU0JAKK9Cb0KPQmtCQ0Kcg0JjQk9CK0JDQogor0JvQo9Ca0JDQpyDQmNCS0JDQnQor0JvQo9Ca0JDQpyDQm9CQ0JfQkNCgCivQm9Cj0JrQkNCnINCc0JjQpdCQ0IjQm9CeCivQm9Cj0JrQkNCnINCc0JjQpdCQ0IjQm9CeCivQm9Cj0JrQkNCnINCc0JjQpdCQ0IjQm9CeCivQm9Cj0JrQkNCnINCc0JjQm9CV0JLQkAor0JvQo9Ca0JDQpyDQndCQ0JTQldCW0JTQkAor0JvQo9Ca0JDQpyDQn9CV0KLQkNCgCivQm9Cj0JrQkNCnINCf0JXQotCQ0KAKK9Cb0KPQmtCQ0Kcg0KDQkNCU0JUKK9Cb0KPQmtCQ0Kcg0KHQkNCS0JAKK9Cb0KPQmtCQ0Kcg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cb0KPQmtCQ0Kcg0KHQm9Ce0JHQntCU0JDQnQor0JvQo9Ca0JDQpyDQodCi0JXQktCQ0J0KK9Cb0KPQmtCQ0Kcg0KHQktCV0KLQmtCeCivQm9Cj0JrQkNCnINCS0JXQm9CY0JzQmNCgCivQm9Cj0JrQkNCn0JXQktCY0Isg0InQo9CR0JjQqNCQCivQm9Cj0JrQkNCn0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cb0KPQmtCQ0KfQmCDQiNCj0JvQmNCI0JDQndCQCivQm9Cj0JrQkNCI0JjQiyDQm9CQ0JfQkNCgINCc0KAKK9Cb0KPQmtCQ0J0g0ILQntCg0ILQlQor0JvQo9Ca0JDQnSDQktCY0J3QptCV0J3Qpgor0JvQo9Ca0JDQndCY0Isg0KTQoNCY0ILQldCoCivQm9Cj0JrQkNCd0JjQiyDQodCi0JXQktCQ0J0KK9Cb0KPQmtCQ0KLQldCb0Jgg0JjQktCQ0J3QmtCQCivQm9Cj0JrQkNCS0JDQpiDQodCc0JjQidCa0JAKK9Cb0KPQmtCQ0JLQkNCmINCX0J7QoNCQ0J0KK9Cb0KPQmtCV0KjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cb0KPQmtCV0J3QmNCLINCJ0JjQidCQ0J3QkAor0JvQo9Ca0JXQotCQINCg0JDQlNCc0JjQm9CQCivQm9Cj0JrQmNCn0JjQiyDQkdCe0JPQlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQm9Cj0JrQmNCn0JjQiyDQmtCQ0KLQmNCm0JAKK9Cb0KPQmtCY0KfQmNCLINCg0JDQlNCQCivQm9Cj0JrQmNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9Cj0JrQmNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9Cj0JrQmNCLINCW0JjQktCe0KDQkNCUCivQm9Cj0JrQmNCLINCW0JjQktCe0KDQkNCUCivQm9Cj0JrQmNCLINCW0JjQktCe0KLQkAor0JvQo9Ca0JjQiyDQgtCj0KDQkAor0JvQo9Ca0JjQiyDQgtCj0KDQngor0JvQo9Ca0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JvQo9Ca0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JvQo9Ca0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JvQo9Ca0JjQiyDQkNCd0JPQldCb0JjQndCQCivQm9Cj0JrQmNCLINCR0JXQoNCi0JAKK9Cb0KPQmtCY0Isg0JHQntCo0JrQngor0JvQo9Ca0JjQiyDQkdCe0JbQmNCU0JDQoAor0JvQo9Ca0JjQiyDQkdCe0JPQntCJ0KPQkQor0JvQo9Ca0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQm9Cj0JrQmNCLINCR0J7QoNCeCivQm9Cj0JrQmNCLINCR0J7QodCY0InQmtCQCivQm9Cj0JrQmNCLINCm0JLQldCi0JAKK9Cb0KPQmtCY0Isg0KbQktCI0JXQotCa0J4KK9Cb0KPQmtCY0Isg0JTQkNCd0JUKK9Cb0KPQmtCY0Isg0JTQkNCd0JUKK9Cb0KPQmtCY0Isg0JTQkNCg0JjQndCa0JAKK9Cb0KPQmtCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQm9Cj0JrQmNCLINCU0J7QkdCg0JjQm9CQCivQm9Cj0JrQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Cb0KPQmtCY0Isg0JTQoNCQ0JPQkNCdCivQm9Cj0JrQmNCLINCU0KDQkNCT0JAKK9Cb0KPQmtCY0Isg0JTQoNCQ0JPQntCI0JUKK9Cb0KPQmtCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9Cb0KPQmtCY0Isg0JTQo9Co0JDQndCa0JAKK9Cb0KPQmtCY0Isg0JTQo9Co0JDQnQor0JvQo9Ca0JjQiyDQlNCj0KjQkNCdCivQm9Cj0JrQmNCLLdCk0KPQlNCV0KDQldCgINCI0J7Qm9CQ0J3QmtCQCivQm9Cj0JrQmNCLINCT0KDQntCX0JTQkAor0JvQo9Ca0JjQiyDQk9Cg0KPQiNCY0KbQkCDQlNCY0J/QmyDQmNCd0JMKK9Cb0KPQmtCY0Isg0JjQm9CY0IjQkAor0JvQo9Ca0JjQiyDQmNCb0JjQiNCQCivQm9Cj0JrQmNCLINCY0JvQmNCI0JAKK9Cb0KPQmtCY0Isg0JjQktCQ0J0KK9Cb0KPQmtCY0Isg0JjQktCQ0J0KK9Cb0KPQmtCY0Isg0JjQktCQ0J0KK9Cb0KPQmtCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0JvQo9Ca0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JvQo9Ca0JjQiyDQiNCV0JvQldCd0JAKK9Cb0KPQmtCY0Isg0IjQldCb0JXQndCQCivQm9Cj0JrQmNCLINCI0JXQm9CV0J3QkAor0JvQo9Ca0JjQiyDQiNCV0JvQmNCm0JAKK9Cb0KPQmtCY0Isg0IjQntCS0JDQndCa0JAKK9Cb0KPQmtCY0Isg0IjQntCS0JDQnQor0JvQo9Ca0JjQiyDQiNCe0JLQkNCdCivQm9Cj0JrQmNCLINCI0J7QktCQ0J0KK9Cb0KPQmtCY0Isg0IjQntCS0J4KK9Cb0KPQmtCY0Isg0IjQntCS0J4KK9Cb0KPQmtCY0Isg0IjQo9Cb0JrQkAor0JvQo9Ca0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQm9Cj0JrQmNCLINCa0J7QodCi0JAKK9Cb0KPQmtCY0Isg0JrQntCh0KLQkAor0JvQo9Ca0JjQiyDQm9CQ0JfQkNCgCivQm9Cj0JrQmNCLINCJ0JjQidCQ0J3QkAor0JvQo9Ca0JjQiyDQidCj0JHQkAor0JvQo9Ca0JjQiyDQidCj0JHQmNCo0JAg0JTQoCDQm9CV0JrQkNCgCivQm9Cj0JrQmNCLINCJ0KPQkdCY0KbQkAor0JvQo9Ca0JjQiyDQm9CI0KPQkdCe0JzQmNCgCivQm9Cj0JrQmNCLINCc0JDQoNCQCivQm9Cj0JrQmNCLINCc0JDQoNCY0IjQkAor0JvQo9Ca0JjQiyDQnNCQ0KDQmtCeCivQm9Cj0JrQmNCLINCc0JDQoNCa0J4KK9Cb0KPQmtCY0Isg0JzQkNCg0JrQngor0JvQo9Ca0JjQiyDQnNCY0IvQkAor0JvQo9Ca0JjQiyDQnNCY0JvQkNCdCivQm9Cj0JrQmNCLINCc0JjQm9CQ0J0KK9Cb0KPQmtCY0Isg0JzQmNCb0JDQnQor0JvQo9Ca0JjQiyDQnNCY0JvQkNCdCivQm9Cj0JrQmNCLINCc0JjQm9CQ0J0KK9Cb0KPQmtCY0Isg0JzQmNCb0JDQnQor0JvQo9Ca0JjQiyDQnNCY0JvQkNCdCivQm9Cj0JrQmNCLINCc0JjQm9CVCivQm9Cj0JrQmNCLINCc0JjQm9CY0IjQkAor0JvQo9Ca0JjQiyDQnNCY0JvQmtCQCivQm9Cj0JrQmNCLINCc0JjQm9Ce0KgKK9Cb0KPQmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0KPQmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0KPQmtCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cb0KPQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cb0KPQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cb0KPQmtCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JvQo9Ca0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQm9Cj0JrQmNCLINCc0J7QnNCn0JjQm9CeCivQm9Cj0JrQmNCLINCd0JXQktCV0J3QkAor0JvQo9Ca0JjQiyDQndCY0JrQntCb0JAKK9Cb0KPQmtCY0Isg0J3QmNCa0J7Qm9CQCivQm9Cj0JrQmNCLINCd0JjQmtCe0JvQkAor0JvQo9Ca0JjQiyDQndCe0JLQmtCQCivQm9Cj0JrQmNCLINCe0JHQoNCQ0JQKK9Cb0KPQmtCY0Isg0J7Qm9CT0JAKK9Cb0KPQmtCY0Isg0J7Qm9CT0JjQptCQCivQm9Cj0JrQmNCLINCf0JXQotCQ0KAKK9Cb0KPQmtCY0Isg0J/QldCi0JDQoAor0JvQo9Ca0JjQiyDQn9CV0KLQkNCgCivQm9Cj0JrQmNCLINCf0JXQotCQ0KAKK9Cb0KPQmtCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cb0KPQmtCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JvQo9Ca0JjQiyDQoNCQ0JTQntCS0JDQnQor0JvQo9Ca0JjQiyDQoNCQ0JTQntCS0JDQnQor0JvQo9Ca0JjQiyDQoNCQ0IjQmtCeCivQm9Cj0JrQmNCLINCg0JjQodCi0J4KK9Cb0KPQmtCY0Isg0KDQo9CW0JAKK9Cb0KPQmtCY0Isg0KDQo9CW0JAKK9Cb0KPQmtCY0Isg0KHQkNCS0JrQkAor0JvQo9Ca0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JvQo9Ca0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9Cj0JrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cb0KPQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JvQo9Ca0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQm9Cj0JrQmNCLINCh0J7QpNCY0IjQkAor0JvQo9Ca0JjQiyDQodCe0KTQmNCI0JAKK9Cb0KPQmtCY0Isg0KHQotCQ0J3QkAor0JvQo9Ca0JjQiyDQodCi0JDQndCY0KjQkAor0JvQo9Ca0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cb0KPQmtCY0Isg0KHQotCV0JLQkNCdCivQm9Cj0JrQmNCLINCh0KLQldCS0JDQnQor0JvQo9Ca0JjQiy3QodCi0JXQktCY0Isg0InQmNCJ0JDQndCQCivQm9Cj0JrQmNCLINCh0KLQldCS0J4KK9Cb0KPQmtCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JvQo9Ca0JjQiyDQodCi0J7QiNCQ0J0KK9Cb0KPQmtCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JvQo9Ca0JjQiyDQotCQ0JzQkNCg0JAKK9Cb0KPQmtCY0Isg0KLQntCc0JjQodCb0JDQkgor0JvQo9Ca0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQm9Cj0JrQmNCLINCS0JXQm9CY0JHQntCgINCU0KAKK9Cb0KPQmtCY0Isg0JLQldCb0JjQkdCe0KAg0JTQoAor0JvQo9Ca0JjQiyDQktCV0JvQmNCc0JjQoAor0JvQo9Ca0JjQiyDQktCV0InQmtCeCivQm9Cj0JrQmNCLINCS0JXQoNCQCivQm9Cj0JrQmNCLINCS0JXQoNCY0KbQkAor0JvQo9Ca0JjQiyDQktCV0KDQntCd0JAKK9Cb0KPQmtCY0Isg0JLQldCg0J7QndCY0JrQkAor0JvQo9Ca0JjQiyDQktCV0KHQldCb0JjQnQor0JvQo9Ca0JjQiyDQktCY0JTQntCh0JDQktCQCivQm9Cj0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQm9Cj0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cb0KPQmtCY0Isg0JLQntCI0JjQnQor0JvQo9Ca0JjQiyDQktCj0JrQntCh0JDQkgor0JvQo9Ca0JjQiyDQktCj0JoKK9Cb0KPQmtCY0Isg0JfQntCg0JDQnQor0JvQo9Ca0JjQiyDQl9Ce0KDQkNCdCivQm9Cj0JrQmNCLINCX0J7QoNCQ0J0KK9Cb0KPQmtCY0Isg0JfQntCg0JrQkAor0JvQo9Ca0J4g0KjQkNCd0JTQntCgCivQm9Cj0JrQniDQkNCd0JTQoNCQ0KgKK9Cb0KPQmtCe0JLQkNCmINCQ0J3QmNCm0JAKK9Cb0KPQmtCe0JLQkNCmINCU0KDQkNCT0JDQnQor0JvQo9Ca0J7QktCQ0KYg0JzQmNCb0JDQnQor0JvQo9Ca0J7QktCQ0KYg0JzQmNCb0J7QktCQ0J0KK9Cb0KPQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cb0KPQmtCe0JLQmNCLINCY0JLQkNCdCivQm9Cj0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQm9Cj0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQm9Cj0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JvQo9Ca0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0KPQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQm9Cj0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cb0KPQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQm9Cj0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQm9Cj0JvQmNCLINCQ0J3QkAor0JvQo9Cb0JjQiyDQkNCd0KLQo9CdCivQm9Cj0JvQmNCLINCk0KDQkNCK0JAKK9Cb0KPQm9CY0Isg0JjQktCQ0J0g0JzQoAor0JvQo9Cb0JjQiyDQmNCS0JDQnQor0JvQo9Cb0JjQiyDQnNCQ0IjQkAor0JvQo9Cb0JjQiyDQnNCQ0KDQmtCeCivQm9Cj0J3QkyDQlNCg0JDQk9CQ0J0KK9Cb0KPQndCTINCh0KLQldCS0JDQnQor0JvQo9Cd0JPQmNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQm9Cj0J3Qk9Cj0JvQntCSINCc0JjQm9CY0JLQntCICivQm9Cj0J/QqNCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JvQo9Cf0KjQmNCLINCa0J7QoNCd0JXQmwor0JvQo9Cf0KjQmNCLINCa0J7QoNCd0JXQmwor0JvQo9Cf0KjQntCgINCh0KLQldCb0JAKK9Cb0KPQn9CY0J3QodCa0Jgg0J3QmNCd0J7QodCb0JDQkgor0JvQo9Cf0JjQndCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQm9Cj0J/Qo9CmINCI0JXQm9CY0KbQkAor0JvQo9Cf0KPQoNCe0JIg0JvQkNCX0JAKK9Cb0KPQn9Cj0KDQntCS0JjQnSDQndCV0JLQldCd0JrQkAor0JvQo9Ci0JrQmNCLINCW0JjQktCa0JAKK9Cb0KPQotCa0JjQiyDQgtCe0KDQgtCVCivQm9Cj0KLQmtCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cb0KPQotCa0JjQiyDQm9CQ0JfQkNCgCivQm9Cj0KLQmtCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cb0KPQotCa0JjQiyDQodCi0JDQndCa0J4KK9Cb0KPQotCa0JjQiyDQodCi0JXQktCQ0J0KK9Cb0KPQotCa0JjQiyDQl9CQ0JPQntCg0JrQkAor0JvQo9Ci0KDQntCSINCd0JDQlNCQCivQm9Cj0JLQoNCQ0JTQntCSINCR0JvQkNCT0J7QiNCVCivQnNCQ0KfQldCaINCI0J7QktCQ0J0KK9Cc0JDQp9Ca0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQp9Ca0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQkNCn0JrQmNCLINCI0JDQndCa0J4KK9Cc0JDQp9Ca0JjQiyDQiNCQ0J3QmtCeCivQnNCQ0KfQmtCY0Isg0JzQmNCb0JXQndCQCivQnNCQ0KfQmtCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQp9Ca0JjQiyDQnNCY0JvQldCS0JrQkAor0JzQkNCn0JrQmNCLINCc0JjQm9CY0JLQntCICivQnNCQ0KfQmtCY0Isg0JzQmNCJ0JrQkAor0JzQkNCn0JrQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQp9Ca0JjQiyDQndCV0JTQldCJ0JrQngor0JzQkNCn0JrQmNCLINCd0JXQndCQ0JQKK9Cc0JDQp9Ca0JjQiyDQn9CV0KLQoNCQCivQnNCQ0KfQmtCY0Isg0KHQotCV0JLQngor0JzQkNCn0JrQmNCLINCS0JDQodCeCivQnNCQ0KfQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCn0JrQntCS0JjQiyDQnNCY0JvQkNCd0JAKK9Cc0JDQp9Ca0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCn0JrQntCS0JjQiyDQotCe0JzQkAor0JzQkNCn0KPQmtCQ0KIg0JPQoNCT0J4KK9Cc0JDQp9CS0JDQndCY0J0g0JHQntCI0JDQndCQINCU0KAg0JvQldCa0JDQoAor0JzQkNCo0JAg0JXQoNCW0JXQkdCV0KIKK9Cc0JDQqNCQINCc0JjQpdCQ0IjQm9CeCivQnNCQ0KjQkCDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KjQkNCd0J7QktCY0Isg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQqNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCY0IjQlQor0JzQkNCo0JDQndCe0JLQmNCLINCR0JvQkNCW0J4KK9Cc0JDQqNCQ0J3QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQkNCo0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCo0JDQndCe0JLQmNCLINCU0KDQkNCT0J4KK9Cc0JDQqNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQqNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KjQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCo0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQqNCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0KjQmNCLINCW0JDQoNCa0J4KK9Cc0JDQqNCY0Isg0JbQmNCS0JDQnQor0JzQkNCo0JjQiyDQkdCe0KDQmNChCivQnNCQ0KjQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCo0JjQiyDQlNCg0JDQk9CY0IsKK9Cc0JDQqNCY0Isg0JjQqNCi0JLQkNCdCivQnNCQ0KjQmNCLINCY0JzQoNCVCivQnNCQ0KjQmNCLINCY0JLQkNCdCivQnNCQ0KjQmNCLINCI0J7QktCQ0J0KK9Cc0JDQqNCY0Isg0JrQkNCg0J7QiQor0JzQkNCo0JjQiyDQnNCQ0J3QlNCQCivQnNCQ0KjQmNCLINCc0JjQm9CQ0J0g0JTQoAor0JzQkNCo0JjQiyDQnNCY0JvQmNCd0JrQngor0JzQkNCo0JjQiyDQnNCY0JvQmNCS0J7QiAor0JzQkNCo0JjQiyDQnNCY0InQkNCd0JAKK9Cc0JDQqNCY0Isg0JzQmNCb0J7QiNCVCivQnNCQ0KjQmNCLINCc0JjQoNCQCivQnNCQ0KjQmNCLINCc0JjQoNCa0J4KK9Cc0JDQqNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCo0JjQiyDQndCQ0JTQkAor0JzQkNCo0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KjQmNCLINCg0JXQqNCQ0JQKK9Cc0JDQqNCY0Isg0KHQldCd0JrQkAor0JzQkNCo0JjQiyDQodCV0J3QmtCQCivQnNCQ0KjQmNCLINCh0JjQnNCV0J7QnQor0JzQkNCo0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQqNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQkNCo0JjQiyDQktCV0KDQkAor0JzQkNCo0JjQiyDQktCY0JrQotCe0KAKK9Cc0JDQqNCY0Isg0JLQo9Cn0JXQotCQCivQnNCQ0KjQmNCg0JXQktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cc0JDQqNCY0KDQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQqNCa0J7QktCY0Isg0J3QntCS0JjQptCQCivQnNCQ0KjQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQqNCi0KDQkNCf0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCo0KPQm9Ce0JLQmNCLINCI0JDQodCc0JjQndCQCivQnNCQ0KjQo9Cb0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cc0JDQi9CQ0Kgg0KHQotCV0JLQkNCdCivQnNCQ0IvQkNCoINCS0JDQodCQCivQnNCQ0IvQkNCo0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCL0JDQqNCV0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0IvQkNCo0JXQkiDQlNCQ0J3QmNCb0J4KK9Cc0JDQi9CQ0KjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0IvQldCo0JjQiyDQiNCe0KHQmNCfCivQnNCQ0IvQldCo0JjQiyDQnNCY0KXQkNCY0JvQngor0JzQkNCL0JrQniDQiNCe0JbQldCkCivQnNCQ0IvQmtCeINCS0JjQm9Cc0J7QqAor0JzQkNCW0JjQiyDQgtCe0KDQgtCVCivQnNCQ0JbQmNCLINCU0KDQkNCT0JjQqNCQCivQnNCQ0JbQmNCLINCc0JjQoNCQCivQnNCQ0JbQmNCLINCf0JXQotCQ0KAKK9Cc0JDQltCY0Isg0KDQo9CW0JAKK9Cc0JDQltCY0JHQoNCQ0JTQkCDQktCQ0KHQngor0JzQkNCW0JjQkdCg0JDQlNCQLdCS0KPQk9Cg0JjQnSDQnNCQ0KDQotCQINCU0JjQn9CbINCY0J3Qkwor0JzQkNCC0JDQoCDQkdCe0JbQmNCU0JDQoAor0JzQkNCC0JDQoCDQldCg0JbQldCR0JXQogor0JzQkNCC0JDQoCDQiNCe0JLQkNCdCivQnNCQ0ILQkNCgINCI0J7QktCQ0J0KK9Cc0JDQgtCQ0KAg0JvQkNCU0JjQodCb0JDQkgor0JzQkNCC0JDQoCDQodCi0JXQktCQ0J0KK9Cc0JDQgtCQ0KDQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCC0JDQoNCV0JLQmNCLINCY0JLQkNCdCivQnNCQ0ILQkNCg0JXQktCY0Isg0JrQntCh0KLQkAor0JzQkNCC0JDQoNCV0JLQmNCLINCc0JjQm9CVCivQnNCQ0ILQkNCg0JXQktCY0Isg0JzQmNCb0J7QqAor0JzQkNCC0JDQoNCV0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQnNCQ0ILQkNCg0JXQktCY0Isg0JfQntCg0JjQptCQCivQnNCQ0ILQkNCg0Jgg0JDQndCU0J7QoAor0JzQkNCC0JjQodCi0J7QoNCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCm0JDQmiDQn9CQ0JLQm9CVCivQnNCQ0KbQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQptCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KbQkNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQnNCQ0KbQkNCd0J7QktCY0Isg0IjQldCS0KDQntCh0JjQnNCQCivQnNCQ0KbQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCm0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQptCQ0J3QntCS0JjQiyDQoNCQ0KLQmtCeCivQnNCQ0KbQldCU0J7QndCY0Isg0JHQntCT0JTQkNCdINCU0KAKK9Cc0JDQptCV0JTQntCd0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQkNCm0JXQlNCe0J3QmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cc0JDQptCV0JTQntCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KbQmtCeINCC0KPQoNCQCivQnNCQ0KbQmtCeINCQ0J3QkAor0JzQkNCm0J3QldCgINCU0JDQktCe0KAKK9Cc0JDQptCj0KDQkCDQp9CV0JTQngor0JzQkNCm0KPQoNCQINCC0J7QoNCC0JUKK9Cc0JDQptCj0KDQkCDQlNCe0JHQoNCY0J3QmtCQCivQnNCQ0KbQo9Cg0JAg0JTQoNCQ0JPQngor0JzQkNCm0KPQoNCQINCb0JjQlNCY0IjQkAor0JzQkNCm0KPQoNCQINCc0JjQm9Ce0KgKK9Cc0JDQptCj0KDQkCDQnNCY0JvQntCg0JDQlAor0JzQkNCm0KPQoNCQINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQptCj0KDQkCDQn9CV0KLQkNCgCivQnNCQ0KbQo9Cg0JAg0KLQldCe0JTQntCgCivQnNCQ0KbQo9CiINCc0JjQm9Ce0KgKK9Cc0JDQj9CQ0KAg0JHQntCg0JjQodCb0JDQkgor0JzQkNCP0JDQoCDQnNCY0JvQntCg0JDQlAor0JzQkNCP0JDQoCDQnNCY0KDQmtCeCivQnNCQ0I/QkNCg0JDQpiDQp9CV0JTQntCc0JjQoAor0JzQkNCP0JDQoNCQ0KYg0JTQo9Co0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQj9CQ0KDQldCSINCU0KPQqNCQ0J0KK9Cc0JDQj9CQ0KDQldCSINCc0JjQm9CQ0J3QmtCQCivQnNCQ0I/QkNCg0JXQktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cc0JDQj9CQ0KDQldCS0JjQiyDQgtCe0KDQgtCVCivQnNCQ0I/QkNCg0JXQktCY0Isg0JHQmNCh0JXQoNCa0JAKK9Cc0JDQj9CQ0KDQldCS0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0I/QkNCg0JXQktCY0Isg0KHQkNCS0JAKK9Cc0JDQj9CT0JDQiSDQnNCY0JvQldCd0JrQngor0JzQkNCP0JPQkNCJINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQj9Ce0JLQodCa0Jgg0KHQkNCd0JTQlQor0JzQkNCU0JDQp9CYINCc0JDQoNCY0IjQkAor0JzQkNCU0JDQptCa0Jgg0JDQndCi0JDQmwor0JzQkNCU0JDQptCa0Jgg0IjQkNCdCivQnNCQ0JTQkNCm0JrQmCDQiNCe0KHQmNCfCivQnNCQ0JTQkNCm0JrQmCDQmtCQ0KDQm9CeCivQnNCQ0JTQkNCg0JDQoSDQkNCd0JTQoNCQ0KgKK9Cc0JDQlNCQ0KDQkNChINCQ0KDQn9CQ0JQKK9Cc0JDQlNCQ0KDQkNChINCc0JDQi9CQ0KgKK9Cc0JDQlNCQ0KDQkNChINCc0JDQoNCY0IjQkAor0JzQkNCU0JDQoNCQ0KEg0KDQntCX0JDQm9CY0IjQkAor0JzQkNCU0Jgg0ILQo9Cg0JjQptCQCivQnNCQ0JTQmCDQiNCe0JbQldCkCivQnNCQ0JTQmNCLINCR0J7QltCY0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JzQkNCU0JjQiyDQnNCQ0KDQmNCI0JDQnQor0JzQkNCU0JjQiyDQnNCY0JvQmNCh0JDQkgor0JzQkNCU0J7QndCY0Isg0KHQotCI0JXQn9CQ0J0KK9Cc0JDQlNCe0JIg0JjQm9CY0IjQkAor0JzQkNCT0JDQoNCQ0KjQldCS0JjQiyDQkNCd0JDQnNCQ0KDQmNCI0JAKK9Cc0JDQk9CQ0KDQkNCo0JXQktCY0Isg0JHQntCg0JjQktCe0IgKK9Cc0JDQk9CQ0KDQkNCo0JXQktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JzQkNCT0JDQoNCQ0KjQldCS0JjQiyDQnNCY0KDQmtCeCivQnNCQ0JPQkNCg0JDQqNCV0JLQmNCLINCd0JDQlNCQCivQnNCQ0JPQlNCQINCa0JvQkNCg0JAKK9Cc0JDQk9CU0JDQm9CV0J3QmNCLINCS0JXQoNCI0J7Qkgor0JzQkNCT0JTQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JDQk9CU0KMg0IjQntCdINCU0JjQn9CbINCY0J3Qkwor0JzQkNCT0JTQoyDQm9CY0JAKK9Cc0JDQk9CU0KMg0KDQntCU0JjQmtCQINCb0JXQmtCQ0KAKK9Cc0JDQk9CY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0JPQm9CQ0IjQm9CY0Isg0KHQkNCR0KDQmNCI0JAKK9Cc0JDQk9Cb0JjQiyDQiNCe0JLQkNCdCivQnNCQ0JPQm9CY0J3QodCa0Jgg0JHQntCg0JjQodCb0JDQkiDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JzQkNCT0JvQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0JPQm9Ce0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCT0JvQntCSINCU0KPQqNCQ0J0KK9Cc0JDQk9Cb0J7QktCh0JrQmCDQlNCj0KjQmtCeCivQnNCQ0JPQm9Ce0JLQodCa0Jgg0IjQntCh0JjQnwor0JzQkNCT0JvQntCS0KHQmtCYINCc0JDQoNCT0JjQotCQCivQnNCQ0JPQm9Ce0JLQodCa0Jgg0JzQmNCb0JjQptCQCivQnNCQ0JPQm9Ce0JLQodCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCT0JvQntCS0KHQmtCYINCh0KLQldCS0JDQnQor0JzQkNCT0JvQntCS0KHQmtCYINCh0KLQldCS0JDQnQor0JzQkNCT0J7QpyDQpNCg0JDQitCQCivQnNCQ0JPQntCnINCI0KPQm9CY0IjQkNCdCivQnNCQ0JPQntCnINCc0JjQoNCe0IoKK9Cc0JDQk9Ce0Kgg0KjQkNCd0JTQntCgCivQnNCQ0JPQntCoINCI0JXQm9CY0KHQkNCS0JXQotCQCivQnNCQ0JPQntCoINCI0KPQm9CY0IjQkNCd0JAKK9Cc0JDQk9Ce0Kgg0JzQkNCg0JjQiNCQCivQnNCQ0JPQo9Cg0JAg0KLQntCc0JAKK9Cc0JDQpdCC0JjQmiDQldCb0JXQndCQCivQnNCQ0KXQkNCn0Jgg0IjQkNCd0J7QqAor0JzQkNCl0JzQo9Ci0Jgg0JzQkNCl0JzQo9CiCivQnNCQ0KXQnNCj0KLQmCDQl9Cj0JfQkNCd0JAKK9Cc0JDQpdCe0JLQkNCmINCc0JjQm9Ce0KDQkNCUCivQnNCQ0JjQptCl0JXQoCDQgtCe0KDQgtCVCivQnNCQ0IjQqNCQ0Jgg0KTQldCg0JXQndCmCivQnNCQ0IjQqNCQ0Jgg0JrQm9CQ0KDQkAor0JzQkNCI0JTQkNCd0KfQldCS0JjQiyDQnNCY0KLQkNCgCivQnNCQ0IjQlNCQ0J3QkNCmINCU0KDQkNCT0JjQitCQCivQnNCQ0IjQlNCQ0J3Qj9CY0Isg0IjQntCX0J4KK9Cc0JDQiNCU0JDQndCP0JjQiyDQn9CV0KDQmNCm0JAKK9Cc0JDQiNCU0JDQndCP0JjQiyDQn9CV0KLQkNCgCivQnNCQ0IjQlNCV0JLQkNCmINCW0JjQktCa0J4g0JTQoAor0JzQkNCI0JTQldCS0JDQpiDQoNCQ0JTQntCS0JDQnQor0JzQkNCI0JXQoCDQqNCQ0J3QlNCe0KAKK9Cc0JDQiNCV0KAg0JXQlNCj0JDQoNCUCivQnNCQ0IjQldCgINCI0JDQndCe0KgKK9Cc0JDQiNCV0KAg0IjQntCS0JDQnQor0JzQkNCI0JXQoCDQmtCQ0KLQmNCm0JAKK9Cc0JDQiNCV0KAg0JzQkNCg0JjQiNCQCivQnNCQ0IjQldCgINCd0JjQmtCe0JvQkAor0JzQkNCI0JXQoCDQn9CV0KLQkNCgCivQnNCQ0IjQldCgINCh0KLQldCS0JDQnQor0JzQkNCI0JXQoNCh0JrQmCDQqNCi0JXQpNCQ0J0KK9Cc0JDQiNCV0KLQmNCLINCQ0J3QotCe0J0KK9Cc0JDQiNCV0KLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCI0JXQotCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0IjQmNCLINCh0KLQldCS0JDQnQor0JzQkNCI0JjQiyDQktCV0KHQndCQCivQnNCQ0IjQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQiNCY0Isg0JfQntCg0JDQnQor0JzQkNCI0JjQnSDQldCk0JjQnNCY0IjQkAor0JzQkNCI0JjQnSDQnNCY0J7QlNCg0JDQkwor0JzQkNCI0JjQndCh0JrQmCDQl9Ce0KDQkAor0JzQkNCI0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQnNCQ0IjQmtCY0Isg0JHQntCT0JTQkNCdCivQnNCQ0IjQmtCY0Isg0JHQntCT0JTQkNCdCivQnNCQ0IjQmtCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0IjQmtCY0Isg0JjQm9CY0IjQkAor0JzQkNCI0JrQmNCLINCY0JLQkNCd0JrQkAor0JzQkNCI0JrQmNCLINCI0J7QptCQCivQnNCQ0IjQmtCY0Isg0JzQmNCb0JDQnQor0JzQkNCI0JrQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQiNCa0JjQiyDQnNCY0JvQkNCdCivQnNCQ0IjQmtCY0Isg0JzQmNCb0JDQnQor0JzQkNCI0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQiNCa0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQiNCa0JjQiyDQntCR0KDQkNCUCivQnNCQ0IjQmtCY0Isg0KDQkNCU0JUKK9Cc0JDQiNCa0JjQiyDQoNCQ0JTQntCI0JrQkAor0JzQkNCI0JrQmNCLINCh0KLQntCI0JDQndCa0JAKK9Cc0JDQiNCa0JjQiyDQktCV0InQmtCeCivQnNCQ0IjQmtCY0Isg0JLQm9CQ0JTQngor0JzQkNCI0JrQmNCLINCX0JTQoNCQ0JLQmtCeCivQnNCQ0IjQmtCY0Isg0JfQntCg0JDQnQor0JzQkNCI0JrQodCd0JXQoCDQgtCe0KDQgtCVCivQnNCQ0IjQntCgINCC0KPQoNCQCivQnNCQ0IjQntCgINCQ0J3QkAor0JzQkNCI0J7QoCDQpNCV0KDQldCd0KYg0JTQoCDQmNCd0JMKK9Cc0JDQiNCe0KAg0IjQntCW0JXQpAor0JzQkNCI0J7QoCDQiNCe0JbQldCkCivQnNCQ0IjQntCgINCa0JDQoNCe0IkKK9Cc0JDQiNCe0KAg0JrQkNCg0J7QiQor0JzQkNCI0J7QoCDQnNCQ0KDQk9CY0KLQkAor0JzQkNCI0J7QoCDQnNCQ0KDQmNCI0JAKK9Cc0JDQiNCe0KAg0JzQkNCg0JjQiNCQCivQnNCQ0IjQntCgINCd0JDQndCU0J7QoAor0JzQkNCI0J7QoCDQodCi0JXQktCQ0J0KK9Cc0JDQiNCe0KDQp9CY0Jog0KTQoNCQ0IrQkAor0JzQkNCI0J7QoNCe0Kgg0JHQldCb0JAg0JTQoAor0JzQkNCI0J7QoNCe0Kgg0JTQldCW0JUKK9Cc0JDQiNCe0KDQntCoINCI0J7QktCQ0J0KK9Cc0JDQiNCe0KDQntCoINCb0JDQiNCe0KgKK9Cc0JDQiNCe0KDQntCoINCh0KLQldCS0JDQnQor0JzQkNCI0J7QoNCe0Kgg0KLQldCg0JXQl9CY0IjQkAor0JzQkNCI0J7QoNCe0KjQmC3QlNCV0KPQoNCQINCc0JDQoNCY0IjQkAor0JzQkNCI0J7QoNCe0KjQmCDQmNCc0KDQlQor0JzQkNCI0KHQmtCYINCI0JXQm9CY0KbQkAor0JzQkNCI0KHQmtCYINCI0J7QktCQ0J0KK9Cc0JDQiNCh0JrQmCDQnNCY0JvQkNCdCivQnNCQ0IjQodCa0Jgg0J3QmNCa0J7Qm9CQCivQnNCQ0IjQodCa0Jgg0KHQm9CQ0JLQmtCeCivQnNCQ0IjQodCa0Jgg0JLQldCh0J3QkAor0JzQkNCI0KHQotCe0KDQkNCmINCU0KDQkNCT0JDQnQor0JzQkNCI0KHQotCe0KDQkNCmINCJ0KPQkdCe0JzQmNCgCivQnNCQ0IjQodCi0J7QoNCQ0KYg0J/QldCi0JDQoAor0JzQkNCI0KHQotCe0KDQkNCmINCh0JDQktCeCivQnNCQ0IjQodCi0J7QoNCe0JIg0InQo9CR0JjQqNCQCivQnNCQ0IjQodCi0J7QoNCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQgtCj0KDQkNCCCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCQ0J3QgtCQCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCQ0J3QmtCQCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQlNCQ0KDQmtCeCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JTQo9Co0JrQngor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Ist0JrQntCh0KLQmNCLINCS0JXQodCd0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0InQmNCJ0JDQndCQCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0J3QldCC0J4KK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0J3QldCS0JXQndCa0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQodCQ0JLQmtCQCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCh0JjQnNCQCivQnNCQ0IjQodCi0J7QoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JzQkNCI0KHQotCe0KDQntCS0JjQiyDQotCV0J7QlNCe0KAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0KPQoNCe0KgKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JLQkNCh0JAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cc0JDQiNCh0KLQntCg0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JzQkNCI0KLQkNCdINCC0J7QoNCC0JUg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0IjQotCQ0J0g0JrQkNCg0JvQngor0JzQkNCI0KLQkNCdINCc0JjQpdCQ0IjQm9CeCivQnNCQ0IjQotCQ0J0g0J/QkNCS0JvQlQor0JzQkNCaINCQ0J3QlNCg0JjQiNCQCivQnNCQ0Jog0IjQntCh0JjQn9CQCivQnNCQ0Jog0J7QodCa0JDQoAor0JzQkNCa0KjQkCDQkNCd0JAKK9Cc0JDQmtCo0JAg0IjQntCS0JDQnQor0JzQkNCa0KjQkCDQmtCQ0KDQm9CeCivQnNCQ0JrQqNCQINCf0JXQotCQ0KAKK9Cc0JDQmtCQ0IjQmCDQiNCQ0JrQntCSCivQnNCQ0JrQkNCI0Jgg0IjQkNCd0JrQngor0JzQkNCa0JDQnSDQiNCQ0J0KK9Cc0JDQmtCQ0IrQmNCLINCR0J7QiNCQ0J0KK9Cc0JDQmtCQ0IrQmNCLINCc0JjQm9CY0KHQkNCSCivQnNCQ0JrQkNCg0JjQiyDQndCQ0JTQkAor0JzQkNCa0JDQoNCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0JrQkNCg0JjQiyDQktCY0JTQkAor0JzQkNCa0JDQoNCY0Isg0JfQntCg0JDQnQor0JzQkNCa0JDQoNCY0J0g0JbQkNCg0JrQngor0JzQkNCa0JDQoNCY0J0g0JfQktCe0J3QmNCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQmtCY0Kgg0KDQo9CW0JAKK9Cc0JDQmtCY0Kgg0JLQm9CQ0KLQmtCeCivQnNCQ0JrQmNCi0JDQnSDQiNCe0JLQkNCdCivQnNCQ0JrQmNCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQkNCa0JjQktCY0Isg0JzQmNCb0J7QqAor0JzQkNCa0JjQktCY0Isg0KHQkNCS0JAKK9Cc0JDQmtCY0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0JzQkNCa0IjQmCDQl9CU0JXQndCa0JAKK9Cc0JDQmtCb0JXQndCe0JLQmNCLINCg0JDQlNCQCivQnNCQ0JrQidCV0J3QntCS0JjQiyDQodCg0JHQntCJ0KPQkQor0JzQkNCa0InQldCd0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCa0J4g0KjQkNCd0JTQntCgCivQnNCQ0JrQniDQpNCg0JDQitCQCivQnNCQ0JrQniDQiNCj0JvQmNCI0JDQndCQCivQnNCQ0JrQniDQnNCY0JvQldCd0JAKK9Cc0JDQmtCe0KUg0JDQndCi0J7QnQor0JzQkNCa0KDQkCDQkNCd0JAKK9Cc0JDQmtCg0JAg0JjQktCQ0J0KK9Cc0JDQmtCg0JAg0IjQntCh0JjQnwor0JzQkNCa0KDQkCDQmtCQ0KLQkNCg0JjQndCQCivQnNCQ0JrQoNCY0J0g0JzQkNCg0JPQmNCi0JAg0JTQoAor0JzQkNCa0KDQmNCdINCg0KPQltCY0KbQkAor0JzQkNCa0KHQmNCLINCW0JjQktCQ0J3QkAor0JzQkNCa0KHQmNCLINCC0J7QoNCC0JUKK9Cc0JDQmtCh0JjQiyDQkdCY0InQkNCd0JAKK9Cc0JDQmtCh0JjQiyDQkdCe0KjQmtCeCivQnNCQ0JrQodCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JDQmtCh0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JDQmtCh0JjQiyDQlNCV0IjQkNCdCivQnNCQ0JrQodCY0Isg0JTQnNCY0KLQkNCgCivQnNCQ0JrQodCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQnNCQ0JrQodCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0JrQodCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0JrQodCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQkNCa0KHQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQmtCh0JjQiyDQldCU0JjQogor0JzQkNCa0KHQmNCLINCT0JDQktCg0JAKK9Cc0JDQmtCh0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JDQmtCh0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JDQmtCh0JjQiyDQiNCe0JLQkNCd0JrQkAor0JzQkNCa0KHQmNCLINCI0J7QktCQ0J0KK9Cc0JDQmtCh0JjQiyDQiNCe0JLQkNCdCivQnNCQ0JrQodCY0Isg0JvQo9Ca0JAKK9Cc0JDQmtCh0JjQiyDQnNCQ0KDQmNCI0JDQndCQCivQnNCQ0JrQodCY0Isg0JzQmNCb0JDQndCQCivQnNCQ0JrQodCY0Isg0JzQmNCb0JjQptCQCivQnNCQ0JrQodCY0Isg0JzQmNCb0JjQptCQCivQnNCQ0JrQodCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQmtCh0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCa0KHQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCa0KHQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JDQmtCh0JjQiyDQoNCQ0KLQmtCeCivQnNCQ0JrQodCY0Isg0KHQkNCS0JAKK9Cc0JDQmtCh0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQmtCh0JjQiyDQktCe0IjQmNCdCivQnNCQ0JrQodCY0Isg0JfQntCg0JrQkAor0JzQkNCa0KHQmNCc0KfQldCSINCQ0J3QgtCV0JvQmtCeCivQnNCQ0JrQodCY0JzQp9CV0JIg0KHQotCV0JLQkNCdCivQnNCQ0JrQodCY0JzQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCa0KHQmNCc0J7QkiDQidCj0JHQntCc0JjQoAor0JzQkNCa0KHQmNCc0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0JrQodCY0JzQntCSINCS0JXQoNCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCC0KPQoNCY0KbQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JDQndCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQkNCd0JrQmNCm0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCR0J7QqNCa0J4KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQnNCQ0JrQodCY0JzQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KbQktCY0IjQldCi0JjQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCQ0KDQmtCeCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCU0KDQkNCT0JjQiwor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCj0KjQkNCdINCc0KAg0J7QldCmCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQmNCS0JDQndCa0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCY0JLQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQiNCQ0JrQntCSCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQm9CQ0JfQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JvQldCd0JrQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0InQo9CR0JjQqNCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQidCj0JHQmNCo0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQm9Cj0JrQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQkNCg0JrQngor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JjQm9CQ0J3QkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQnNCY0JvQmNCd0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCg0JDQlNCe0JLQkNCd0JrQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KDQkNCU0J4KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCg0JDQndCC0JXQmwor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KDQmNCh0KLQngor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCh0JDQktCeCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQodCg0JXQi9Ca0J4KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCh0KLQldCS0JjQptCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQodCS0JXQotCe0JzQmNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KLQmNCd0JrQkAor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQkNCa0KHQmNCc0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQkNCa0KHQmNCc0J7QktCY0Isg0JLQldCb0JjQp9Ca0J4KK9Cc0JDQmtCh0JjQnNCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQl9Cb0JDQotCQCivQnNCQ0JrQodCY0JzQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0JrQodCY0JzQntCS0KHQmtCYINCC0J7QoNCC0JUKK9Cc0JDQmtCh0JjQnNCe0JLQodCa0Jgg0JLQntCI0J4KK9Cc0JDQmtCh0JjQnSDQodCb0JDQktCa0JAKK9Cc0JDQmtCj0KUg0JzQmNCl0JDQmNCb0J4KK9Cc0JDQmtCj0KUg0JzQmNCl0JDQiNCb0J4KK9Cc0JDQmtCj0KUg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCb0KfQmNCLINCQ0J3QlNCg0JjQiNCQINCU0JjQn9CbINCY0J3Qkwor0JzQkNCb0KfQmNCLINCQ0J3QlNCg0JjQiNCQCivQnNCQ0JvQp9CY0Isg0IjQntCW0JXQpAor0JzQkNCb0KfQmNCLINCI0KPQm9Ca0JAKK9Cc0JDQm9Cn0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQm9CQ0KjQldCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQkNCb0JDQptCa0J4g0IjQo9Cb0JjQiNCQ0J0KK9Cc0JDQm9CQ0KbQmtCeINCJ0KPQkdCY0KbQkAor0JzQkNCb0JDQldCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQm9CQ0JLQoNCQ0JfQmNCLINCI0J7QktCQ0J0KK9Cc0JDQm9CR0JDQqNCQINCR0J7QoNCY0KHQm9CQ0JLQkAor0JzQkNCb0JHQkNCo0JAg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCb0JHQkNCo0JAg0JTQo9Co0JDQndCa0JAKK9Cc0JDQm9CR0JDQqNCQINCI0JXQm9Ca0JAKK9Cc0JDQm9CR0JDQqNCQINCc0JjQm9CQ0J0KK9Cc0JDQm9CR0JDQqNCQINCc0JjQm9CVCivQnNCQ0JvQkdCQ0KjQkCDQktCV0InQmtCeCivQnNCQ0JvQkdCQ0KjQkCDQl9CU0KDQkNCS0JrQngor0JzQkNCb0JHQkNCo0JjQiyDQkdCe0KjQmtCeCivQnNCQ0JvQkdCQ0KjQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCb0JHQkNCo0JjQiyDQiNCQ0J3QmtCeCivQnNCQ0JvQkdCQ0KjQmNCLINCc0JjQi9CeCivQnNCQ0JvQkdCQ0KjQmNCLINCg0KPQltCQCivQnNCQ0JvQkdCQ0KjQmtCYINCU0KPQqNCQ0J0KK9Cc0JDQm9CR0JDQqNCa0Jgt0IjQkNCd0JrQntCSINCQ0J3QgtCQCivQnNCQ0JvQkdCQ0KjQmtCYINCc0JDQoNCY0IjQkAor0JzQkNCb0JHQkNCo0JrQmCDQnNCY0JvQmNCd0JrQkAor0JzQkNCb0JXQqCDQkNCd0ILQldCb0JrQkAor0JzQkNCb0JXQqCDQkdCe0KDQkAor0JzQkNCb0JXQqCDQlNCc0JjQotCQ0KAKK9Cc0JDQm9CV0Kgg0IjQldCb0JXQndCQCivQnNCQ0JvQldCoINCI0J7QktCQ0J3QmtCQCivQnNCQ0JvQldCoINCa0J7QodCi0JAKK9Cc0JDQm9CV0Kgg0InQmNCJ0JDQndCQCivQnNCQ0JvQldCoINCc0JDQoNCY0J3QmtCeCivQnNCQ0JvQldCoINCd0J7QktCQ0JoKK9Cc0JDQm9CV0Kgg0KDQkNCU0J7QnNCY0KAKK9Cc0JDQm9CV0Kgg0KDQo9CW0JjQptCQCivQnNCQ0JvQldCoINCh0KLQkNCd0JAKK9Cc0JDQm9CV0Kgg0KHQktCV0KLQm9CQ0J3QkAor0JzQkNCb0JXQqCDQktCQ0KHQngor0JzQkNCb0JXQqCDQktCe0IjQmNCh0JvQkNCSCivQnNCQ0JvQldCoINCX0J7QoNCQCivQnNCQ0JvQldCo0JXQkiDQltCY0JLQmtCeCivQnNCQ0JvQldCo0JXQkiDQltCY0JLQntCI0JjQnQor0JzQkNCb0JXQqNCV0JIg0ILQntCg0ILQlQor0JzQkNCb0JXQqNCV0JIg0JHQntCo0JrQngor0JzQkNCb0JXQqNCV0JIg0JHQntCg0JjQodCb0JDQkgor0JzQkNCb0JXQqNCV0JIg0JHQoNCQ0J3QmtCeCivQnNCQ0JvQldCo0JXQkiDQlNCQ0JzQiNCQ0J0KK9Cc0JDQm9CV0KjQldCSINCU0JDQnNCI0JDQnQor0JzQkNCb0JXQqNCV0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCQ0JvQldCo0JXQkiDQlNCg0JDQk9CQ0J3QkAor0JzQkNCb0JXQqNCV0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCb0JXQqNCV0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCb0JXQqNCV0JIg0JTQo9Co0JDQnQor0JzQkNCb0JXQqNCV0JIg0IjQldCb0JjQptCQCivQnNCQ0JvQldCo0JXQkiDQiNCe0JLQkNCdCivQnNCQ0JvQldCo0JXQkiDQmtCe0KHQkNCd0JAKK9Cc0JDQm9CV0KjQldCSINCb0JDQl9CQ0KAKK9Cc0JDQm9CV0KjQldCSINCJ0KPQkdCY0KbQkAor0JzQkNCb0JXQqNCV0JIg0InQo9CR0JjQndCa0J4KK9Cc0JDQm9CV0KjQldCSINCJ0KPQkdCe0JzQmNCgCivQnNCQ0JvQldCo0JXQkiDQm9Cj0JrQkAor0JzQkNCb0JXQqNCV0JIg0JzQkNCg0JjQiNCQCivQnNCQ0JvQldCo0JXQkiDQnNCY0JvQldCd0JrQngor0JzQkNCb0JXQqNCV0JIg0JzQmNCb0JXQktCQCivQnNCQ0JvQldCo0JXQkiDQnNCY0InQkAor0JzQkNCb0JXQqNCV0JIg0JzQmNCb0J7QqAor0JzQkNCb0JXQqNCV0JIg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQm9CV0KjQldCSINCc0JjQntCU0KDQkNCTCivQnNCQ0JvQldCo0JXQkiDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0JvQldCo0JXQkiDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0JvQldCo0JXQkiDQn9CV0KLQkNCgCivQnNCQ0JvQldCo0JXQkiDQn9CV0KLQkNCgCivQnNCQ0JvQldCo0JXQkiDQn9Cg0JXQlNCg0JDQkwor0JzQkNCb0JXQqNCV0JIg0J/QoNCV0JTQoNCQ0JMKK9Cc0JDQm9CV0KjQldCSINCf0KDQmNCX0KDQldCd0JrQkAor0JzQkNCb0JXQqNCV0JIg0KHQm9CQ0JLQmtCeCivQnNCQ0JvQldCo0JXQkiDQotCQ0JzQkNCg0JAKK9Cc0JDQm9CV0KjQldCSINCS0JXQoNCQCivQnNCQ0JvQldCo0JXQkiDQktCY0KLQntCc0JjQoAor0JzQkNCb0JXQqNCV0JLQmNCLINCW0JjQktCQ0J0KK9Cc0JDQm9CV0KjQldCS0JjQiyDQltCY0JLQmtCQCivQnNCQ0JvQldCo0JXQktCY0Isg0ILQo9Ca0JAKK9Cc0JDQm9CV0KjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JzQkNCb0JXQqNCV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JzQkNCb0JXQqNCV0JLQmNCLINCU0KDQkNCT0JDQndCQCivQnNCQ0JvQldCo0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0JvQldCo0JXQktCY0Isg0JTQo9Co0JrQngor0JzQkNCb0JXQqNCV0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JDQm9CV0KjQldCS0JjQiyDQmNCS0JDQnQor0JzQkNCb0JXQqNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQm9CV0KjQldCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0JvQldCo0JXQktCY0Isg0JvQkNCX0JDQoAor0JzQkNCb0JXQqNCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQkNCb0JXQqNCV0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCb0JXQqNCV0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JDQm9CV0KjQldCS0JjQiyDQnNCY0JvQlQor0JzQkNCb0JXQqNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQkNCb0JXQqNCV0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQm9CV0KjQldCS0JjQiyDQnNCY0KDQmtCeCivQnNCQ0JvQldCo0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCb0JXQqNCV0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQkNCb0JXQqNCV0JLQmNCLINCd0JDQlNCQCivQnNCQ0JvQldCo0JXQktCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JDQm9CV0KjQldCS0JjQiyDQndCY0JrQmNCm0JAKK9Cc0JDQm9CV0KjQldCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0JvQldCo0JXQktCY0Isg0J/QldCi0JDQoAor0JzQkNCb0JXQqNCV0JLQmNCLINCh0JDQktCa0J4g0JvQntCa0JDQmwor0JzQkNCb0JXQqNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQINCU0KAKK9Cc0JDQm9CV0KjQldCS0JjQiyDQktCQ0KHQmtCg0KHQmNCI0JUKK9Cc0JDQm9CV0KjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0JvQldCo0JXQktCY0Isg0JLQntCI0JjQodCb0JDQktCQCivQnNCQ0JvQldCm0JrQmCDQkdCb0JDQlgor0JzQkNCb0JXQndCn0JjQiyDQgtCe0KDQgtCVCivQnNCQ0JvQldCd0KfQmNCLINCT0JDQktCg0JjQm9CeCivQnNCQ0JvQldCd0KfQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCb0JXQndCn0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQm9CV0J3Qp9CY0Isg0KDQntCU0J7QidCj0JEKK9Cc0JDQm9CV0J3Qp9CY0Isg0KDQo9CW0JjQptCQCivQnNCQ0JvQldCd0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0JvQldCd0JjQiyDQoNCj0JbQkAor0JzQkNCb0JXQndCY0Isg0KHQmNCc0JAKK9Cc0JDQm9CV0J3QmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JDQm9CV0J3QmNCm0JAg0ILQo9Cg0J4KK9Cc0JDQm9CV0J3QmNCm0JAg0JDQndCi0KPQnQor0JzQkNCb0JXQndCY0KbQkCDQlNCg0JDQk9CeCivQnNCQ0JvQldCd0JjQptCQINCY0JLQkNCdCivQnNCQ0JvQldCd0JjQptCQINCc0JDQoNCa0J4KK9Cc0JDQm9CV0J3QmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQm9CV0J3QmtCe0JLQmNCLINCc0JjQm9Ce0Kgg0JTQoAor0JzQkNCb0JXQndCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCb0JXQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQm9CV0KAg0JrQoNCY0KjQotCe0KQKK9Cc0JDQm9CV0KDQoiDQktCV0J3QlNCV0JsKK9Cc0JDQm9CV0KLQkNCo0JrQmCDQldCS0JjQptCQCivQnNCQ0JvQldCi0JjQiy3QqNCg0JXQmiDQnNCQ0KDQmNCI0JAKK9Cc0JDQm9CV0KLQmNCLLdCo0KDQldCaINCc0JDQoNCY0IjQkAor0JzQkNCb0JXQotCY0Isg0JbQkNCg0JrQngor0JzQkNCb0JXQotCY0Isg0JbQmNCS0JDQndCa0JAKK9Cc0JDQm9CV0KLQmNCLINCW0JjQktCa0J4KK9Cc0JDQm9CV0KLQmNCLINCC0J7QoNCC0JUg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0JvQldCi0JjQiyDQgtCe0KDQgtCVCivQnNCQ0JvQldCi0JjQiyDQgtCe0KDQgtCVCivQnNCQ0JvQldCi0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQkNCb0JXQotCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCQ0JvQldCi0JjQiyDQlNCg0JDQk9CeCivQnNCQ0JvQldCi0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JDQm9CV0KLQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCQ0JvQldCi0JjQiyDQiNCe0JLQkNCdCivQnNCQ0JvQldCi0JjQiyDQm9CQ0KPQoNCQCivQnNCQ0JvQldCi0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0JvQldCi0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0JvQldCi0JjQiyDQm9Cj0JrQkAor0JzQkNCb0JXQotCY0Isg0JzQkNCg0JjQptCQCivQnNCQ0JvQldCi0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCb0JXQotCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cc0JDQm9CV0KLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCQ0JvQldCi0JjQiyDQnNCY0J7QnNCY0KAKK9Cc0JDQm9CV0KLQmNCLINCd0JDQlNCQCivQnNCQ0JvQldCi0JjQiyDQndCV0JTQldCJ0JrQngor0JzQkNCb0JXQotCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0JvQldCi0JjQiyDQn9CQ0IjQkAor0JzQkNCb0JXQotCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0JDQm9CV0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JDQm9CV0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JDQm9CV0KLQmNCLINCh0JDQktCQCivQnNCQ0JvQldCi0JjQiyDQodCQ0JLQngor0JzQkNCb0JXQotCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cc0JDQm9CV0KLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQnNCQ0JvQldCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0JvQldCi0JjQiyDQodCg0JHQntCJ0KPQkQor0JzQkNCb0JXQotCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0JvQldCi0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQm9CV0KLQmNCLINCh0KLQldCS0JDQnQor0JzQkNCb0JXQotCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQkNCb0JXQotCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQkNCb0JXQotCY0Isg0KLQkNCc0JDQoNCQCivQnNCQ0JvQldCi0JjQiyDQktCV0JrQntCh0JvQkNCSCivQnNCQ0JvQldCi0JjQiyDQktCI0JXQoNCQCivQnNCQ0JvQldCi0JjQiyDQktCI0JXQoNCQCivQnNCQ0JvQldCi0JjQiyDQl9Cb0JDQotCa0J4KK9Cc0JDQm9CV0KLQmNCdINCn0JDQoNCd0JAg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0JvQldCi0JjQnSDQltCY0JLQmtCeCivQnNCQ0JvQldCi0JjQnSDQgtCe0KDQgtCVCivQnNCQ0JvQldCi0JjQnSDQgtCe0KDQgtCVCivQnNCQ0JvQldCi0JjQnSDQgtCj0KDQkAor0JzQkNCb0JXQotCY0J0g0ILQo9Cg0JjQptCQCivQnNCQ0JvQldCi0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCb0JXQotCY0J0g0JHQntCo0JrQngor0JzQkNCb0JXQotCY0J0g0JHQntCW0JDQndCQCivQnNCQ0JvQldCi0JjQnSDQlNCQ0J3QmNCm0JAKK9Cc0JDQm9CV0KLQmNCdINCU0JDQoNCY0J3QmtCQCivQnNCQ0JvQldCi0JjQnSDQlNCg0JDQk9CY0KjQkAor0JzQkNCb0JXQotCY0J0g0JTQo9Co0JDQnQor0JzQkNCb0JXQotCY0J0g0JTQo9Co0JDQnQor0JzQkNCb0JXQotCY0J0g0JPQntCg0JDQnQor0JzQkNCb0JXQotCY0J0g0IjQkNCd0JAKK9Cc0JDQm9CV0KLQmNCdINCI0JXQm9CV0J3QkAor0JzQkNCb0JXQotCY0J0g0IjQntCS0JDQnQor0JzQkNCb0JXQotCY0J0g0IjQntCS0JDQnQor0JzQkNCb0JXQotCY0J0g0IjQntCS0JDQnQor0JzQkNCb0JXQotCY0J0g0InQo9CR0J7QnNCY0KAKK9Cc0JDQm9CV0KLQmNCdINCc0JDQoNCY0IjQkAor0JzQkNCb0JXQotCY0J0g0JzQkNCg0JjQiNCQCivQnNCQ0JvQldCi0JjQnSDQnNCY0JvQkNCd0JrQkAor0JzQkNCb0JXQotCY0J0g0JzQmNCb0JDQnQor0JzQkNCb0JXQotCY0J0g0JzQmNCb0JDQnQor0JzQkNCb0JXQotCY0J0g0JzQmNCb0J7QqAor0JzQkNCb0JXQotCY0J0g0JzQmNCb0J7QktCQ0J0KK9Cc0JDQm9CV0KLQmNCdINCc0JjQoNCa0J4KK9Cc0JDQm9CV0KLQmNCdINCf0JDQiNCQCivQnNCQ0JvQldCi0JjQnSDQn9CQ0JLQm9CVCivQnNCQ0JvQldCi0JjQnSDQoNCQ0JTQkAor0JzQkNCb0JXQotCY0J0g0KDQkNCU0JjQktCe0IjQlQor0JzQkNCb0JXQotCY0J0g0KDQo9CW0JjQptCQCivQnNCQ0JvQldCi0JjQnSDQodCb0JDQktCY0KbQkAor0JzQkNCb0JXQotCY0J0g0KHQm9CQ0JLQmtCeCivQnNCQ0JvQldCi0JjQnSDQodCf0J7QnNCV0J3QmtCQCivQnNCQ0JvQldCi0JjQnSDQodCi0JXQktCQ0J0KK9Cc0JDQm9CV0KLQmNCdINCh0KLQldCS0JDQnQor0JzQkNCb0JXQotCY0J0g0KHQktCV0KLQntCX0JDQoAor0JzQkNCb0JXQotCY0J0g0KHQktCV0KLQntCX0JDQoAor0JzQkNCb0JXQotCY0J0g0KLQmNCc0JAKK9Cc0JDQm9CV0KLQmNCdINCi0J7QlNCe0KAKK9Cc0JDQm9CV0KLQmNCdINCi0J7QlNCe0KAKK9Cc0JDQm9CV0KLQmNCdINCS0JDQodCQCivQnNCQ0JvQldCi0JjQnSDQktCY0KLQntCc0JjQoAor0JzQkNCb0JXQotCY0J0g0JLQntCI0JjQodCb0JDQkgor0JzQkNCb0JXQotCY0J0g0JfQntCg0JAKK9Cc0JDQm9CV0KLQmNCdINCX0J7QoNCQCivQnNCQ0JvQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0JvQmCDQltCY0JLQkNCdCivQnNCQ0JvQmCDQltCY0JLQmtCeCivQnNCQ0JvQmCDQlNCQ0JzQiNCQ0J0KK9Cc0JDQm9CYINCU0KDQkNCT0JAKK9Cc0JDQm9CYINCV0JvQldCe0J3QntCg0JAKK9Cc0JDQm9CYINCT0J7QoNCQ0J0KK9Cc0JDQm9CYINCI0J7QktCQ0J0KK9Cc0JDQm9CYINCa0KDQmNCh0KLQmNCk0J7QoAor0JzQkNCb0Jgg0InQo9CR0JjQptCQCivQnNCQ0JvQmCDQidCj0JHQntCc0JjQoAor0JzQkNCb0Jgg0JzQmNCb0J7QqAor0JzQkNCb0Jgg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQm9CYINCh0JDQktCQCivQnNCQ0JvQmCDQodCi0JDQndCY0JzQmNCgCivQnNCQ0JvQmCDQktCe0IjQmNCh0JvQkNCSCivQnNCQ0JvQmNCn0JXQktCY0Isg0ILQntCg0ILQlQor0JzQkNCb0JjQp9CV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cc0JDQm9CY0KfQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQm9CY0KfQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JDQm9CY0Isg0JbQkNCg0JrQngor0JzQkNCb0JjQiyDQkdCY0InQkNCd0JAKK9Cc0JDQm9CY0Isg0JHQntCW0JDQndCQCivQnNCQ0JvQmNCLINCm0JLQmNCI0JXQotCY0J0KK9Cc0JDQm9CY0Isg0JzQmNCb0JDQnQor0JzQkNCb0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCb0JjQiyDQnNCY0KLQkNCgCivQnNCQ0JvQmNCLINCc0JvQkNCU0JXQnQor0JzQkNCb0JjQiyDQndCe0JLQkNCaCivQnNCQ0JvQmNCLINCf0KDQldCU0KDQkNCTCivQnNCQ0JvQmNCLINCg0JDQlNCY0JLQntCICivQnNCQ0JvQmNCLINCg0JDQotCa0J4KK9Cc0JDQm9CY0Isg0KHQm9CQ0JLQmtCeCivQnNCQ0JvQmNCLINCh0J7QpNCY0IjQkAor0JzQkNCb0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JDQm9CY0Isg0KHQotCe0IjQkAor0JzQkNCb0JjQiyDQo9Cg0J7QqAor0JzQkNCb0JjQiyDQktCj0JrQmNCm0JAKK9Cc0JDQm9CY0I/QkCDQltCV0InQmtCeCivQnNCQ0JvQmNCP0JDQnSDQkdCb0JDQltCeCivQnNCQ0JvQmNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCb0JjQnSDQgtCj0KDQkAor0JzQkNCb0JjQnSDQmNCb0JjQiNCQCivQnNCQ0JvQmNCdINCc0JjQm9CY0KbQkAor0JzQkNCb0JjQnSDQntCb0JPQkAor0JzQkNCb0JjQnSDQodCi0JDQndCY0KHQm9CQ0JIKK9Cc0JDQm9CY0J0g0KLQkNCi0IjQkNCd0JAKK9Cc0JDQm9CY0J3QkNCgINCI0JXQm9CV0J3QkAor0JzQkNCb0JjQndCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cc0JDQm9CY0J3QntCS0JjQiyDQkNCd0ILQkAor0JzQkNCb0JjQndCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0JzQkNCb0JjQndCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0JzQkNCb0JjQndCe0JLQmNCLINCR0J7QltCeCivQnNCQ0JvQmNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQnNCQ0JvQmNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQnNCQ0JvQmNCd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCQ0JvQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0JvQmNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Cc0JDQm9CY0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0JvQmNCd0J7QktCY0Isg0IjQntCS0J4KK9Cc0JDQm9CY0J3QntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0JzQkNCb0JjQndCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQnNCQ0JvQmNCd0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JDQm9CY0J3QntCS0JjQiyDQodCQ0JLQngor0JzQkNCb0JjQndCe0JLQmNCLINCh0JjQndCY0KjQkAor0JzQkNCb0JjQndCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQnNCQ0JvQmNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0JvQmNCd0J7QktCY0Isg0JLQldCJ0JrQngor0JzQkNCb0JjQktCj0Jog0JHQntCW0JDQndCQCivQnNCQ0JvQmNCS0KPQmiDQlNCj0KjQkNCdCivQnNCQ0JvQmNCS0KPQmiDQnNCY0JvQkNCdCivQnNCQ0JvQmNCS0KPQmiDQndCY0JrQntCb0JAKK9Cc0JDQm9CY0JLQo9CaINCf0JDQktCb0JUKK9Cc0JDQm9CY0JLQo9CaINCh0JLQldCi0JjQodCb0JDQkgor0JzQkNCJ0JAg0JzQntCg0JjQndCQCivQnNCQ0InQmNCaINCh0KLQldCS0JAKK9Cc0JDQidCa0J7QktCY0Isg0ILQo9Cg0J4KK9Cc0JDQidCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0InQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQkNCJ0JrQntCS0JjQiy3Qj9Cj0JrQm9CV0JLQodCa0Jgg0JDQndCQCivQnNCQ0InQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JDQidCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCJ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0InQmtCe0JLQmNCLINCd0JXQktCV0J3QmtCQCivQnNCQ0InQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCJ0JrQntCS0JjQiyDQoNCQ0J3QmtCQCivQnNCQ0InQmtCe0JLQmNCLINCS0JXQoNCQCivQnNCQ0JvQmtCY0Isg0JPQntCg0JTQkNCdCivQnNCQ0JvQmtCY0Isg0InQo9CR0JjQqNCQCivQnNCQ0JvQmtCY0Isg0KHQotCQ0J3QkAor0JzQkNCb0JzQldCgINCQ0J3QlNCg0JjQiNCQCivQnNCQ0JvQnNCV0KAg0JDQndCU0KDQmNCI0JAKK9Cc0JDQm9Cd0JDQoCDQlNCg0JDQk9Cj0KLQmNCdCivQnNCQ0JvQndCQ0KAg0IjQntCh0JjQnwor0JzQkNCb0J7Qp9CY0Isg0JzQmNCb0JDQnQor0JzQkNCb0J7Qp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQm9Ce0JHQkNCR0JjQiyDQidCj0JHQkNCdCivQnNCQ0JvQntCR0JDQkdCY0Isg0JzQkNCg0JrQngor0JzQkNCb0J7QkdCQ0JHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQm9Ce0JHQkNCR0JjQiyDQndCe0JLQmNCm0JAKK9Cc0JDQm9Ce0JHQkNCR0JjQiyDQoNCQ0JTQlQor0JzQkNCb0J7Qk9CQ0IjQodCa0Jgg0JHQntCg0JjQodCb0JDQkgor0JzQkNCb0J7Qk9CQ0IjQodCa0Jgg0KHQotCV0JLQkNCdCivQnNCQ0JvQntCi0JjQiyDQodCQ0JLQngor0JzQkNCb0J7QktCQ0KjQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCb0J7QktCY0Isg0JHQntCT0JTQkNCdCivQnNCQ0JvQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQkNCb0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cc0JDQm9Ce0JLQoNCQ0JfQmNCLINCT0J7QiNCa0J4KK9Cc0JDQm9Ce0JLQoNCQ0JfQmNCLINCT0J7QiNCa0J4KK9Cc0JDQm9Cj0KbQmtCe0JIg0JHQntCT0JTQkNCdCivQnNCQ0JvQo9Cm0JrQntCSINCU0JDQndCY0KbQkAor0JzQkNCb0KPQptCa0J7QkiDQiNCe0JLQkNCdCivQnNCQ0JvQo9Cm0JrQntCSINCc0JDQoNCY0IjQkAor0JzQkNCb0KPQptCa0J7QkiDQnNCY0J7QlNCg0JDQkyDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQm9Cj0KbQmtCe0JIg0KDQkNCU0J7QktCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQnNCQ0JvQo9Cm0JrQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQm9Cj0KbQmtCe0JIg0KHQotCV0JLQkNCdCivQnNCQ0JvQo9Cm0JrQntCSINCX0J7QoNCa0JAKK9Cc0JDQnNCY0Isg0JjQktCQ0J0KK9Cc0JDQnNCY0Isg0IjQntCX0J4KK9Cc0JDQnNCj0JbQmNCLINCY0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQkNCc0KPQltCY0Isg0JjQktCQ0J0KK9Cc0JDQnNCj0JbQmNCLINCY0JLQkNCdCivQnNCQ0JzQo9Cb0JAg0JTQo9Co0JDQnQor0JzQkNCc0KPQm9CQINCc0JvQkNCU0JXQndCa0JAKK9Cc0JDQnNCj0JvQkCDQn9CQ0JLQm9CVCivQnNCQ0JzQo9Cb0JAg0KDQo9CW0JAKK9Cc0JDQnNCj0KLQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0JzQo9Ci0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCc0KPQotCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQnNCQ0JzQo9CX0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQnNCQ0J3Qp9CV0JIg0J3QmNCa0J7Qm9CQCivQnNCQ0J3Qp9CV0JLQodCa0Jgg0JrQkNCi0JAKK9Cc0JDQndCn0JXQktCh0JrQmCDQodCi0JXQktCQ0J0KK9Cc0JDQndCn0JjQiyDQkNCg0JDQndCa0JAKK9Cc0JDQndCn0JjQiyDQlNCg0JDQk9CQ0J0g0JTQoAor0JzQkNCd0KfQmNCLINCa0JDQotCQCivQnNCQ0J3Qp9CY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0J3Qp9CY0Isg0KHQkNCo0JAKK9Cc0JDQndCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0J3Qp9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQkNCd0KfQoyDQgtCe0KDQgtCVCivQnNCQ0J3Qp9CjINCU0KDQkNCT0JjQitCQCivQnNCQ0J3Qp9CjINCU0KPQqNCQ0J0KK9Cc0JDQndCn0KMg0JzQmNCb0JDQnQor0JzQkNCd0KfQoyDQnNCY0JvQkNCdCivQnNCQ0J3Qp9CjINCc0JjQm9Ce0KgKK9Cc0JDQndCn0KMg0JzQmNCb0J7QqAor0JzQkNCd0KfQoyDQndCV0J3QkNCUCivQnNCQ0J3Qp9CjINCh0KLQldCS0JDQnQor0JzQkNCd0KfQoyDQodCS0JXQotCe0JfQkNCgCivQnNCQ0J3Qp9CjINCS0JjQmtCi0J7QoAor0JzQkNCd0JDQodCY0IjQldCS0JjQiyDQk9CV0KDQkNCh0JjQnAor0JzQkNCd0JDQodCi0JjQoNCQ0KYg0JTQkNCc0IjQkNCdCivQnNCQ0J3QkNCh0KLQmNCg0JDQpiDQidCj0JHQmNCo0JAKK9Cc0JDQndCmINCh0KLQldCS0JDQnQor0JzQkNCd0KbQldCU0JXQoCDQgtCj0KDQkAor0JzQkNCd0I/Qo9Ca0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQkNCd0I/Qo9Ca0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cc0JDQndCU0JDQoNCY0J0g0J3QkNCi0JDQqNCQCivQnNCQ0J3QlNCV0Jog0KTQmNCb0JjQnwor0JzQkNCd0JTQldCb0KYg0InQo9CR0JjQptCQCivQnNCQ0J3QlNCY0Isg0KfQkNCS0JAKK9Cc0JDQndCU0JjQiyDQltCY0JLQmtCeCivQnNCQ0J3QlNCY0Isg0ILQntCg0ILQlQor0JzQkNCd0JTQmNCLINCC0J7QoNCC0JUKK9Cc0JDQndCU0JjQiyDQgtCj0KDQkAor0JzQkNCd0JTQmNCLINCC0KPQoNCY0KbQkAor0JzQkNCd0JTQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JzQkNCd0JTQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0J3QlNCY0Isg0JHQntCo0JrQngor0JzQkNCd0JTQmNCLINCR0J7Qk9CU0JDQnQor0JzQkNCd0JTQmNCLINCR0J7QoNCY0KHQm9CQ0JLQkAor0JzQkNCd0JTQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JDQndCU0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQndCU0JjQiyDQptCS0JjQiNCV0KLQkAor0JzQkNCd0JTQmNCLINCU0JDQndCY0KbQkAor0JzQkNCd0JTQmNCLINCU0JDQoNCQCivQnNCQ0J3QlNCY0Isg0JTQldCb0KTQmNCd0JAKK9Cc0JDQndCU0JjQiyDQlNCV0J3QldCoCivQnNCQ0J3QlNCY0Isg0JTQntCR0KDQmNCb0JAKK9Cc0JDQndCU0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JzQkNCd0JTQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCd0JTQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JzQkNCd0JTQmNCLINCU0KDQkNCT0J4KK9Cc0JDQndCU0JjQiyDQlNCg0JDQk9CeCivQnNCQ0J3QlNCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JzQkNCd0JTQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCQ0J3QlNCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JDQndCU0JjQiyDQlNCj0KjQkNCd0JrQkAor0JzQkNCd0JTQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQndCU0JjQiyDQpNCg0JDQitCQCivQnNCQ0J3QlNCY0Isg0JjQk9CK0JDQogor0JzQkNCd0JTQmNCLINCY0JLQkNCd0JrQkAor0JzQkNCd0JTQmNCLINCY0JLQmtCQCivQnNCQ0J3QlNCY0Isg0IjQntCS0JDQndCa0JAKK9Cc0JDQndCU0JjQiy3QiNCe0JLQkNCd0J7QktCY0Isg0JLQmNCd0JrQkAor0JzQkNCd0JTQmNCLINCI0J7QktCeCivQnNCQ0J3QlNCY0Isg0IjQntCS0J4KK9Cc0JDQndCU0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JDQndCU0JjQiyDQmtCe0KHQotCQCivQnNCQ0J3QlNCY0Isg0JrQodCV0J3QmNCI0JAKK9Cc0JDQndCU0JjQiyDQidCY0InQkNCd0JAKK9Cc0JDQndCU0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JDQndCU0JjQiyDQidCj0JHQntCc0JjQoAor0JzQkNCd0JTQmNCLINCc0JDQndCVCivQnNCQ0J3QlNCY0Isg0JzQkNCd0JUKK9Cc0JDQndCU0JjQiyDQnNCQ0KDQkAor0JzQkNCd0JTQmNCLINCc0JDQoNCT0JjQotCQCivQnNCQ0J3QlNCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0J3QlNCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0J3QlNCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0J3QlNCY0Isg0JzQmNCa0JAKK9Cc0JDQndCU0JjQiyDQnNCY0JvQkNCU0JjQiNCQCivQnNCQ0J3QlNCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQndCU0JjQiyDQnNCY0JvQkNCdCivQnNCQ0J3QlNCY0Isg0JzQmNCb0JXQndCQCivQnNCQ0J3QlNCY0Isg0JzQmNCb0JUKK9Cc0JDQndCU0JjQiyDQnNCY0JvQlQor0JzQkNCd0JTQmNCLINCc0JjQm9CVCivQnNCQ0J3QlNCY0Isg0JzQmNCb0JUKK9Cc0JDQndCU0JjQiyDQnNCY0JvQntCI0JUKK9Cc0JDQndCU0JjQiyDQnNCY0JvQntCI0JrQniDQlNCgINCb0JXQmtCQ0KAKK9Cc0JDQndCU0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCd0JTQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0J3QlNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQndCU0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0J3QlNCY0Isg0J3QkNCU0JAKK9Cc0JDQndCU0JjQiyDQndCQ0JTQkAor0JzQkNCd0JTQmNCLINCd0JXQgtCeCivQnNCQ0J3QlNCY0Isg0J3QldCC0J4KK9Cc0JDQndCU0JjQiyDQndCV0JTQldCJ0JrQniDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JzQkNCd0JTQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCd0JTQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCd0JTQmNCLINCd0J7QktCa0JAKK9Cc0JDQndCU0JjQiyDQn9CQ0J3QlQor0JzQkNCd0JTQmNCLINCf0JXQoNCQCivQnNCQ0J3QlNCY0Isg0J/QldCi0JDQoAor0JzQkNCd0JTQmNCLINCg0JDQlNCV0J3QmtCeCivQnNCQ0J3QlNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JzQkNCd0JTQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0J3QlNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JDQndCU0JjQiyDQoNCQ0JTQntCI0JrQkAor0JzQkNCd0JTQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCQ0J3QlNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JDQndCU0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCd0JTQmNCLINCg0JDQiNCQCivQnNCQ0J3QlNCY0Isg0KHQmNCd0JjQqNCQCivQnNCQ0J3QlNCY0Isg0KHQm9CQ0JLQmtCQCivQnNCQ0J3QlNCY0Isg0KHQm9CQ0JLQmtCeCivQnNCQ0J3QlNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCd0JTQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQndCU0JjQiyDQodCd0JXQltCQ0J3QkAor0JzQkNCd0JTQmNCLINCh0KDQldCi0JXQnQor0JzQkNCd0JTQmNCLINCh0KDQldCi0JXQnQor0JzQkNCd0JTQmNCLINCh0KDQldCi0J4KK9Cc0JDQndCU0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQndCU0JjQiyDQodCS0JXQotCa0J4KK9Cc0JDQndCU0JjQiyDQodCS0JXQotCb0JDQndCQCivQnNCQ0J3QlNCY0Isg0KLQldCg0JXQl9CY0IjQkAor0JzQkNCd0JTQmNCLINCi0JjQkdCe0KAKK9Cc0JDQndCU0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCQ0J3QlNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQkNCd0JTQmNCLINCj0KDQntCoINCU0JjQn9CbINCe0JXQpgor0JzQkNCd0JTQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cc0JDQndCU0JjQiyDQktCV0JvQmNCX0JDQoAor0JzQkNCd0JTQmNCLINCS0JXQoNCQCivQnNCQ0J3QlNCY0Isg0JLQmNCe0JvQldCi0JAKK9Cc0JDQndCU0JjQiyDQl9Cb0JDQotCY0KbQkAor0JzQkNCd0JTQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQndCU0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0J3QlNCY0Isg0JfQntCg0JjQptCQCivQnNCQ0J3QlNCY0Isg0JfQntCg0JrQkAor0JzQkNCd0JTQmNCLINCX0J7QoNCa0JAKK9Cc0JDQndCU0JjQiyDQl9Ce0KDQmtCQCivQnNCQ0J3QlNCY0Isg0JfQktCe0J3QmNCc0JjQoAor0JzQkNCd0JTQoNCQ0J/QkCDQgtCj0KDQngor0JzQkNCd0JTQoNCY0J3QniDQodCQ0J3QmtCQCivQnNCQ0J3QldCh0JrQmCDQkdCb0JDQk9Ce0IjQkAor0JzQkNCd0JXQktCh0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQndCV0JLQodCa0Jgg0JTQo9Co0JDQnQor0JzQkNCd0JXQktCh0JrQmCDQoNCQ0JTQntCh0JvQkNCSCivQnNCQ0J3QldCS0KHQmtCYINCi0KDQkNCI0JrQniDQlNCgCivQnNCQ0J3QldCS0KHQmtCYINCS0JXQoNCQCivQnNCQ0J3QkyDQkdCg0JDQndCa0J4KK9Cc0JDQndCT0JXQoCDQiNCe0KHQmNCfCivQnNCQ0J3QpdCQ0IjQnCDQiNCe0JbQldCkCivQnNCQ0J3QmNCLINCQ0J3QmtCY0KbQkAor0JzQkNCd0JjQiyDQkdCb0JDQndCa0JAKK9Cc0JDQndCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JDQndCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0J3QmNCLINCR0KDQkNCd0JrQngor0JzQkNCd0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQndCY0Isg0JTQkNCd0JjQm9CeCivQnNCQ0J3QmNCLINCU0KDQkNCT0JjQqNCQCivQnNCQ0J3QmNCLINCc0JjQm9Ce0IjQlQor0JzQkNCd0JjQiyDQnNCY0JvQntCI0JUKK9Cc0JDQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQndCY0Isg0KHQldCS0JXQoCDQlNCY0J/QmyDQn9ClCivQnNCQ0J3QmNCLINCh0JLQldCi0J7QnNCY0KAKK9Cc0JDQndCY0J0g0ILQntCg0ILQlQor0JzQkNCK0JAg0KHQoNCV0JTQntCI0JUKK9Cc0JDQitCQINCX0JTQoNCQ0JLQmtCeCivQnNCQ0IrQkNCaINCU0KDQkNCT0J4KK9Cc0JDQitCV0J3Qp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCK0KPQm9Ce0JIg0JvQo9Ca0JAKK9Cc0JDQndCe0IjQm9Ce0JIg0JjQoNCV0J3QkAor0JzQkNCd0J7QiNCb0J7QkiDQmNCS0JDQnQor0JzQkNCd0J7QiNCb0J7QkiDQiNCe0JLQkNCd0JrQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCn0JXQlNCeCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQltCQ0KDQmtCeCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQltCY0JLQmtCeCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCT0KDQo9CI0JjQptCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCa0J7QktCY0InQmtCeCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JDQiNCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCQ0J3QntCI0JvQngor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQkNCd0J7QiNCb0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQmNCg0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCd0JXQndCQ0JQKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCg0JDQotCa0J4KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCh0JDQktCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQodCQ0JLQngor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCh0KLQkNCd0JjQqNCQINCU0KAg0J/QoNCe0KQKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCh0KLQkNCd0JrQngor0JzQkNCd0J7QiNCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JDQndCe0IjQm9Ce0JLQmNCLINCi0J7QqNCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQktCQ0J3QlNCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQktCV0JvQmNCh0JvQkNCSCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQktCV0KDQkAor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCd0J7QiNCb0J7QktCY0Isg0JfQntCg0JjQptCQCivQnNCQ0J3QntCI0JvQntCS0JjQiyDQl9CS0J7QndCa0J4KK9Cc0JDQndCj0JrQntCSINCe0JvQk9CQCivQnNCQ0J3Qo9Ca0J7QkiDQotCe0JTQntCgCivQnNCQ0J7QlNCj0Kgg0JDQndCQCivQnNCQ0J7QlNCj0Kgg0JTQkNCd0JjQptCQCivQnNCQ0J7QlNCj0Kgg0IjQntCS0J4KK9Cc0JDQntCU0KPQqCDQnNCY0J7QlNCg0JDQkwor0JzQkNCe0JTQo9CoINCd0JjQmtCe0JvQkAor0JzQkNCe0JTQo9CoINCf0KDQldCU0KDQkNCTCivQnNCQ0KAg0JXQlNCS0JDQoNCUCivQnNCQ0KDQp9CQ0Jog0JzQmNCl0JDQiNCb0J4KK9Cc0JDQoNCn0JXQmiDQnNCY0JvQkNCdCivQnNCQ0KDQp9CV0KLQkCDQgtCj0KDQkAor0JzQkNCg0KfQldCi0JAg0JHQoNCQ0J3QmtCeCivQnNCQ0KDQp9CV0KLQkCDQlNCg0JDQk9CY0KbQkAor0JzQkNCg0KfQldCi0JAg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQoNCn0JXQotCQINCb0JDQl9CQ0KAKK9Cc0JDQoNCn0JXQotCQINCc0JjQm9CQ0J0KK9Cc0JDQoNCn0JXQotCQINCg0JDQiNCa0J4KK9Cc0JDQoNCn0JXQotCQINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQoNCn0JXQotCQINCh0KLQldCS0JAKK9Cc0JDQoNCn0JXQotCQINCS0JXQm9CY0JzQmNCgCivQnNCQ0KDQp9CV0KLQkCDQl9Ce0KDQkAor0JzQkNCg0KfQldCi0JjQiyDQptCS0JXQotCQCivQnNCQ0KDQp9CV0KLQmNCLINCU0KDQkNCT0J4KK9Cc0JDQoNCn0JXQotCY0Isg0JzQkNCg0JrQngor0JzQkNCg0KfQldCi0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQp9CV0KLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCn0JXQotCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0KfQldCi0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCn0JXQotCY0Isg0J7QkdCg0JXQndCY0IjQkAor0JzQkNCg0KfQldCi0JjQiyDQntCb0JHQmNCd0JAKK9Cc0JDQoNCn0JXQotCY0Isg0J/QldCg0JjQptCQCivQnNCQ0KDQp9CV0KLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQoNCn0JXQotCY0Isg0J/QldCi0JDQoAor0JzQkNCg0KfQldCi0JjQnSDQoNCQ0JTQlQor0JzQkNCg0KfQmNCLINCW0JjQktCQ0J0KK9Cc0JDQoNCn0JjQiyDQgtCe0KDQgtCVCivQnNCQ0KDQp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQoNCn0JjQiyDQkdCe0JbQkNCd0JAKK9Cc0JDQoNCn0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JDQoNCn0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCn0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCg0KfQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0KfQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0KfQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0KfQmNCL0JXQkiDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCn0JjQi9CV0JIg0JzQldCg0JjQnNCQCivQnNCQ0KDQp9CY0J3QmtCeINCc0JjQm9CQ0J0KK9Cc0JDQoNCn0J7QmiDQkNCd0JjQptCQCivQnNCQ0KDQp9Ce0Jog0JjQqNCi0JLQkNCdCivQnNCQ0KDQp9Ce0Jog0JjQodCY0JTQntCg0JAKK9Cc0JDQoNCn0J7QmiDQm9CY0JTQmNCI0JAKK9Cc0JDQoNCn0J7QmiDQnNCY0KXQkNCI0JvQngor0JzQkNCg0KfQntCaINCc0JjQpdCQ0IjQm9CeCivQnNCQ0KDQp9Ce0Jog0JLQldCg0JAKK9Cc0JDQoNCn0J7QmiDQl9Cj0JfQkNCd0JAKK9Cc0JDQoNCn0KPQmiDQodCQ0KjQkAor0JzQkNCg0KfQo9CaINCh0KLQldCS0JDQnQor0JzQkNCg0JbQmNCLINCQ0J3QmNCm0JAKK9Cc0JDQoNCC0JXQm9Ce0KjQmtCYINCh0KLQkNCd0KPQqNCQCivQnNCQ0KDQkNCoINCI0J7QktCQ0J0KK9Cc0JDQoNCQ0Kgg0JzQmNCg0J7QiNCVCivQnNCQ0KDQkNCoINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQoNCQ0Kgg0JLQntCI0JjQnQor0JzQkNCg0JDQptCYINCc0JjQpdCQ0IkKK9Cc0JDQoNCQ0JrQntCS0JjQiyDQndCV0JLQldCd0JAKK9Cc0JDQoNCQ0JzQmNCm0JAg0IjQldCb0JXQndCQCivQnNCQ0KDQkNCc0JjQptCQINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQoNCQ0J0g0JTQoNCQ0JPQmNCo0JAKK9Cc0JDQoNCQ0J0g0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCQ0KEg0KTQmNCb0JjQnwor0JzQkNCg0JDQoSDQiNCe0KHQmNCfCivQnNCQ0KDQkNCj0KYg0JfQktCe0J3QmNCc0JjQoAor0JzQkNCg0JDQktCY0Isg0ILQo9Cg0J4KK9Cc0JDQoNCQ0JLQmNCLINCC0KPQoNCeCivQnNCQ0KDQkNCS0JjQiyDQgtCj0KDQngor0JzQkNCg0JDQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0KDQkNCS0JjQiyDQlNCc0JjQotCQ0KAKK9Cc0JDQoNCQ0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCQ0KDQkNCS0JjQiyDQm9CQ0JfQngor0JzQkNCg0JDQktCY0Isg0JzQkNCg0JrQngor0JzQkNCg0JDQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JDQoNCQ0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCQ0JLQmNCLINCc0JjQm9CV0J3QkAor0JzQkNCg0JDQktCY0Isg0JzQmNCb0J7QqAor0JzQkNCg0JDQktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQkNCS0JjQiyDQodCQ0JLQkAor0JzQkNCg0JDQktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cc0JDQoNCQ0JLQmNCLINCS0JvQkNCU0JAKK9Cc0JDQoNCm0JXQmtCY0Isg0JTQntCR0KDQmNCd0JrQkAor0JzQkNCg0KbQmNCa0JjQiyDQltCY0JLQkNCd0JAKK9Cc0JDQoNCm0JjQmtCY0Isg0JHQntCT0JTQkNCdCivQnNCQ0KDQptCY0JrQmNCLINCU0KDQkNCT0JjQptCQCivQnNCQ0KDQptCY0JrQmNCLINCV0JzQmNCbCivQnNCQ0KDQptCY0JrQmNCLINCT0JjQk9CQINCU0KAKK9Cc0JDQoNCm0JjQmtCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Cc0JDQoNCm0JjQmtCY0Isg0InQmNCJ0JDQndCQCivQnNCQ0KDQptCY0JrQmNCLINCJ0KPQkdCY0J3QmtCQCivQnNCQ0KDQptCY0JrQmNCLINCc0JDQoNCY0KbQkAor0JzQkNCg0KbQmNCa0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JDQoNCm0JjQmtCY0Isg0KHQntCk0JjQiNCQCivQnNCQ0KDQptCY0JrQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0KbQmNCa0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCm0JjQmtCY0Isg0JLQldCg0JAKK9Cc0JDQoNCU0JXQqNCY0Isg0KjQmNCc0JUKK9Cc0JDQoNCV0Kgg0JHQntCW0J4KK9Cc0JDQoNCV0Kgg0KLQoNCY0KTQo9CdCivQnNCQ0KDQldCo0KfQo9CaINCf0JXQotCQ0KAKK9Cc0JDQoNCV0Ikg0JbQmNCS0JDQnQor0JzQkNCg0JXQiSDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0KDQldCJINCh0JXQm9CV0J3QkAor0JzQkNCg0JXQiSDQktCV0JvQmNCh0JvQkNCSCivQnNCQ0KDQldCJINCX0JvQkNCi0JAKK9Cc0JDQoNCV0InQldCSINCI0JXQm9CV0J3QkAor0JzQkNCg0JXQotCY0Isg0JzQkNCg0JrQniDQlNCY0J/QmyDQntCV0KYKK9Cc0JDQoNCV0KLQmNCLINCh0KLQldCS0J4KK9Cc0JDQoNCV0KLQmNCLINCS0JvQkNCU0JAKK9Cc0JDQoNCV0KLQmNCLINCS0JvQkNCU0JAKK9Cc0JDQoNCV0KLQmNCLINCS0JvQkNCU0JAKK9Cc0JDQoNCV0JLQmNCLINCQ0J3QotCVCivQnNCQ0KDQpNCYINCh0JzQmNCJ0JrQkAor0JzQkNCg0JPQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQoNCT0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0g0JTQoAor0JzQkNCg0JPQkNCd0J7QktCY0Isg0JPQldCe0KDQk9CY0J3QkAor0JzQkNCg0JPQkNCd0Jcg0JLQmNCa0KLQntCgCivQnNCQ0KDQk9CV0KLQkCDQkNCd0JjQptCQCivQnNCQ0KDQk9CV0KLQkCDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCT0JXQotCY0Isg0JbQmNCW0JAKK9Cc0JDQoNCT0JXQotCY0Isg0JXQm9CS0JjQoNCQCivQnNCQ0KDQk9CY0KIg0IjQo9Cb0JjQiNCQ0J3QkAor0JzQkNCg0JPQmNCiINCS0JXQoNCQCivQnNCQ0KDQk9Cj0KjQmNCLINCQ0J3QlNCg0JjQiNCQCivQnNCQ0KDQpdCe0KjQldCS0JjQiyDQnNCj0IjQngor0JzQkNCg0JjQp9CV0JLQmNCLINCa0JDQotCY0KbQkAor0JzQkNCg0JjQp9CV0JLQmNCLINCg0JjQodCi0JAKK9Cc0JDQoNCY0KfQmNCLINCQ0J3QlNCg0JjQiNCQCivQnNCQ0KDQmNCn0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQoNCY0KfQmNCLINCR0KDQkNCi0J7QidCj0JEKK9Cc0JDQoNCY0KfQmNCLINCT0J7QiNCa0J4KK9Cc0JDQoNCY0KfQmNCLINCY0JvQmNCI0JAKK9Cc0JDQoNCY0KfQmNCLINCY0JLQmNCm0JAKK9Cc0JDQoNCY0KfQmNCLINCc0JDQoNCQCivQnNCQ0KDQmNCn0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmNCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCg0JjQp9CY0Isg0JzQmNCg0JAKK9Cc0JDQoNCY0KfQmNCLINCd0JXQlNCV0InQmtCeCivQnNCQ0KDQmNCn0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCY0KfQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0JjQp9CY0Isg0J/QkNCS0JvQlQor0JzQkNCg0JjQp9CY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQmNCn0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0KfQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JDQoNCY0KfQmNCdINCd0JXQndCQ0JQKK9Cc0JDQoNCY0KjQkNCdINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQoNCY0Isg0JbQkNCg0JrQngor0JzQkNCg0JjQiyDQltCQ0KDQmtCeCivQnNCQ0KDQmNCLINCW0JjQmtCQCivQnNCQ0KDQmNCLINCW0JjQktCQ0J3QkAor0JzQkNCg0JjQiyDQltCY0JLQmtCeCivQnNCQ0KDQmNCLINCC0J7QoNCC0JUKK9Cc0JDQoNCY0Isg0ILQo9Cg0J4KK9Cc0JDQoNCY0Isg0JDQlNCQ0Jwg0JTQoAor0JzQkNCg0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JjQiyDQkNCd0ILQldCb0JrQngor0JzQkNCg0JjQiyDQkNCd0ILQldCb0JrQngor0JzQkNCg0JjQiyDQkNCd0JrQkAor0JzQkNCg0JjQiyDQkNCd0JrQkAor0JzQkNCg0JjQiyDQkNCd0JrQmNCm0JAKK9Cc0JDQoNCY0Isg0JHQntCo0JrQngor0JzQkNCg0JjQiyDQkdCe0KjQmtCeCivQnNCQ0KDQmNCLINCR0J7QltCY0KbQkAor0JzQkNCg0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQkNCg0JjQiyDQkdCe0JPQntCJ0KPQkQor0JzQkNCg0JjQiyDQkdCe0IjQkNCU0JjQnNCY0KAKK9Cc0JDQoNCY0Isg0JHQntCg0JjQktCe0IgKK9Cc0JDQoNCY0Isg0JHQntCh0JjQidCa0JAKK9Cc0JDQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JzQkNCg0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQoNCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0KDQmNCLINCR0KDQkNCd0J4KK9Cc0JDQoNCY0Isg0KbQktCY0IjQngor0JzQkNCg0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JDQoNCY0Isg0JTQkNCg0JjQndCa0JAKK9Cc0JDQoNCY0Isg0JTQkNCS0JjQlAor0JzQkNCg0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JzQkNCg0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCg0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCg0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQkNCg0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0KDQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCQ0KDQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JjQiyDQlNCj0KjQmNCm0JAKK9Cc0JDQoNCY0Isg0JXQoNCW0JXQkdCV0KIKK9Cc0JDQoNCY0Isg0JPQntCI0JrQngor0JzQkNCg0JjQiyDQk9Ce0IjQmtCeCivQnNCQ0KDQmNCLINCT0KDQo9CI0JjQptCQINCU0KAKK9Cc0JDQoNCY0Isg0JjQm9CVCivQnNCQ0KDQmNCLINCY0JvQmNCI0JAKK9Cc0JDQoNCY0Isg0JjQm9CY0IjQkAor0JzQkNCg0JjQiyDQmNCb0JjQndCa0JAKK9Cc0JDQoNCY0Isg0JjQktCeCivQnNCQ0KDQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Cc0JDQoNCY0Isg0IjQldCb0JjQptCQCivQnNCQ0KDQmNCLINCI0J7QptCQCivQnNCQ0KDQmNCLINCI0J7Qm9CQ0J3QmtCQCivQnNCQ0KDQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCQ0KDQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCY0Isg0IjQntCS0JDQnQor0JzQkNCg0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KDQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCY0Isg0IjQntCS0JDQnQor0JzQkNCg0JjQiyDQiNCe0JLQngor0JzQkNCg0JjQiyDQiNCe0JLQngor0JzQkNCg0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQnNCQ0KDQmNCLINCa0JDQlNCY0JLQmtCQCivQnNCQ0KDQmNCLINCa0JDQotCY0KbQkAor0JzQkNCg0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JDQoNCY0Isg0JrQntCh0KLQkAor0JzQkNCg0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0KDQmNCLINCJ0JXQn9Ce0KHQkNCS0JAKK9Cc0JDQoNCY0Isg0InQo9CR0JAKK9Cc0JDQoNCY0Isg0InQo9CR0JjQptCQCivQnNCQ0KDQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCQ0KDQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCQ0KDQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCQ0KDQmNCLINCJ0KPQn9Ca0J4KK9Cc0JDQoNCY0Isg0JvQo9Ca0JAKK9Cc0JDQoNCY0Isg0JzQkNCg0JAKK9Cc0JDQoNCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0KDQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCY0Isg0JzQkNCg0JrQngor0JzQkNCg0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0KDQmNCLINCc0JjQi9CQINCU0JjQn9CbINCY0J3Qkwor0JzQkNCg0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQkNCg0JjQiyDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQkNCg0JjQiyDQnNCY0JvQkNCdINCU0KAKK9Cc0JDQoNCY0Isg0JzQmNCb0JDQndCQCivQnNCQ0KDQmNCLINCc0JjQm9CQ0J3QmtCQCivQnNCQ0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmNCLINCc0JjQm9CVINCU0JjQn9CbINCe0JXQpgor0JzQkNCg0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JDQoNCY0Isg0JzQmNCb0JXQndCQCivQnNCQ0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0KDQmNCLINCc0JjQm9CY0KHQkNCSCivQnNCQ0KDQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQoNCY0Isg0JzQmNCb0J7QqAor0JzQkNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCg0JjQiyDQnNCY0JvQntCh0JDQkgor0JzQkNCg0JjQiyDQnNCY0JvQo9CdCivQnNCQ0KDQmNCLINCc0JjQm9Cj0KLQmNCdCivQnNCQ0KDQmNCLINCc0JjQoNCa0J4KK9Cc0JDQoNCY0Isg0JzQmNCg0JrQngor0JzQkNCg0JjQiyDQnNCY0KDQmtCeCivQnNCQ0KDQmNCLINCc0JjQoNCa0J4KK9Cc0JDQoNCY0Isg0JzQmNCg0J7QidCj0JEKK9Cc0JDQoNCY0Isg0JzQmNCi0JDQoAor0JzQkNCg0JjQiyDQnNCY0KLQkNCgCivQnNCQ0KDQmNCLLdCc0JjQotCg0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQnNCQ0KDQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCQ0KDQmNCLINCd0JXQkdCe0IjQqNCQCivQnNCQ0KDQmNCLINCd0JXQlNCV0InQmtCeCivQnNCQ0KDQmNCLINCd0JXQktCV0J3QmtCQCivQnNCQ0KDQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCY0Isg0J3QntCS0JDQmgor0JzQkNCg0JjQiyDQndCe0JLQkNCaCivQnNCQ0KDQmNCLINCe0KHQotCe0IjQkAor0JzQkNCg0JjQiyDQn9CQ0JLQm9CVCivQnNCQ0KDQmNCLINCf0JXQotCQ0KAKK9Cc0JDQoNCY0Isg0J/QldCi0JDQoAor0JzQkNCg0JjQiyDQn9Cg0JLQntCh0JvQkNCSCivQnNCQ0KDQmNCLINCg0JDQlNCY0JLQntCICivQnNCQ0KDQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0KDQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0KDQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0KDQmNCLINCg0JDQlNCe0JzQmNCgINCU0KAKK9Cc0JDQoNCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cc0JDQoNCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQnNCQ0KDQmNCLINCg0JDQlNCe0JLQkNCd0JrQkAor0JzQkNCg0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCg0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCg0JjQiyDQoNCQ0IjQmtCeCivQnNCQ0KDQmNCLINCh0JDQktCQCivQnNCQ0KDQmNCLINCh0JjQndCY0KjQkAor0JzQkNCg0JjQiyDQodCb0JDQktCY0KbQkAor0JzQkNCg0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQoNCY0Isg0KHQm9CQ0JLQmtCeCivQnNCQ0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCg0JjQiyDQodCg0JXQotCV0J0g0JTQoCDQn9Cg0J7QpAor0JzQkNCg0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cc0JDQoNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQnNCQ0KDQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0Isg0KHQotCV0JLQmtCQCivQnNCQ0KDQmNCLINCh0KLQldCS0J4KK9Cc0JDQoNCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JzQkNCg0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIg0J/QoNCe0KTQldCh0J7QoAor0JzQkNCg0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cc0JDQoNCY0Isg0KLQkNCc0JDQoNCQINCU0JjQn9CbINCY0J3Qkwor0JzQkNCg0JjQiyDQo9Cg0J7QqAor0JzQkNCg0JjQiyDQktCQ0KHQmtCQCivQnNCQ0KDQmNCLINCS0JDQodCeCivQnNCQ0KDQmNCLINCS0JXQoNCQCivQnNCQ0KDQmNCLINCS0JjQlAor0JzQkNCg0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cc0JDQoNCY0Isg0JLQntCI0JjQodCb0JDQkiDQlNCgINCf0KDQntCkCivQnNCQ0KDQmNCLINCS0KPQmtCQ0JTQmNCdCivQnNCQ0KDQmNCLINCX0J7QoNCQ0J3QmtCQCivQnNCQ0KDQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQoNCY0Isg0JfQntCg0JDQnQor0JzQkNCg0JjQi9CV0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQoNCY0JDQqCDQiNCe0JbQldCkCivQnNCQ0KDQmNCQ0Kgg0JzQkNCg0JjQiNCQCivQnNCQ0KDQmNCI0JDQqCDQiNCe0JLQkNCdCivQnNCQ0KDQmNCI0JDQqCDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCY0IjQkNCoINCc0JDQoNCY0IjQkAor0JzQkNCg0JjQiNCQ0Kgg0JzQkNCg0JjQiNCQCivQnNCQ0KDQmNCI0JDQqCDQnNCY0KXQkNCJCivQnNCQ0KDQmNCI0JDQqCDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0IjQkNCoINCX0JTQldCd0JrQkAor0JzQkNCg0JjQiNCQ0J0g0JbQldCJ0JrQngor0JzQkNCg0JjQiNCQ0J0g0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cc0JDQoNCY0IjQkNCd0JDQpiDQodCi0J7QiNCQCivQnNCQ0KDQmNCI0JDQndCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCQ0KDQmNCI0JDQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JDQoNCY0IjQkNCd0KHQmtCYINCC0J7QoNCC0JUKK9Cc0JDQoNCY0IjQkNCd0KHQmtCYINCC0J7QoNCC0JUKK9Cc0JDQoNCY0IjQkNCd0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KDQmNCI0JDQndCh0JrQmCDQnNCY0JvQntCoCivQnNCQ0KDQmNCI0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0IjQkNCd0KHQmtCYINCS0JXQodCd0JAKK9Cc0JDQoNCY0J0g0JzQmNCb0JDQnQor0JzQkNCg0JjQnSDQnNCY0JvQmNCS0J7QiAor0JzQkNCg0JjQnSDQnNCb0JDQlNCV0J0KK9Cc0JDQoNCY0J0g0J3QkNCi0JDQm9CY0IjQkAor0JzQkNCg0JjQnSDQndCY0JrQntCb0JAKK9Cc0JDQoNCY0J0g0KDQkNCU0J7QnNCY0KAKK9Cc0JDQoNCY0J0g0JLQkNCh0J4KK9Cc0JDQoNCY0J0g0JLQldCg0JjQptCQCivQnNCQ0KDQmNCdINCX0J7QoNCQ0J0KK9Cc0JDQoNCY0J3Qp9CV0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0KDQmNCd0KfQldCSINCh0KLQldCS0JDQnQor0JzQkNCg0JjQndCn0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQkNCg0JjQndCn0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0KDQmNCd0KfQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0J3Qp9CY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JjQndCn0JjQiyDQntCb0JPQkAor0JzQkNCg0JjQndCo0JXQmiDQktCI0JXQmtCe0KHQm9CQ0JIKK9Cc0JDQoNCY0J3QkCDQqNCi0JXQpNCQ0J0KK9Cc0JDQoNCY0J3QkCDQm9Cj0IvQmNCI0JDQnQor0JzQkNCg0JjQndCQ0KYg0JfQntCg0JDQnQor0JzQkNCg0JjQndCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0KDQmNCd0JjQiyDQmNCS0J4KK9Cc0JDQoNCY0J3QmNCLINCh0KLQmNCf0JDQnQor0JzQkNCg0JjQndCa0J7QkiDQp9CV0JTQkAor0JzQkNCg0JjQndCa0J7QkiDQltCQ0KDQmtCeCivQnNCQ0KDQmNCd0JrQntCSINCC0J7QoNCC0JUKK9Cc0JDQoNCY0J3QmtCe0JIg0ILQntCg0ILQlQor0JzQkNCg0JjQndCa0J7QkiDQgtCj0KDQkCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JDQoNCY0J3QmtCe0JIg0JDQndCa0JjQptCQCivQnNCQ0KDQmNCd0JrQntCSINCQ0KDQodCV0J0KK9Cc0JDQoNCY0J3QmtCe0JIg0JHQntCW0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JTQldCI0JDQnQor0JzQkNCg0JjQndCa0J7QkiDQlNCg0JDQk9CY0IrQkAor0JzQkNCg0JjQndCa0J7QkiDQlNCj0KjQkNCdCivQnNCQ0KDQmNCd0JrQntCSINCk0JXQnNCa0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JPQkNCS0KDQkAor0JzQkNCg0JjQndCa0J7QkiDQiNCe0JLQkNCd0JrQkAor0JzQkNCg0JjQndCa0J7QkiDQiNCe0JLQkNCdCivQnNCQ0KDQmNCd0JrQntCSINCI0J7QktCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JIg0IjQo9Cb0JjQiNCQ0J3QkAor0JzQkNCg0JjQndCa0J7QkiDQiNCj0JvQmNCI0JDQndCQCivQnNCQ0KDQmNCd0JrQntCSINCc0JXQm9CQ0J3QmNCI0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JzQmNCb0JXQndCa0J4KK9Cc0JDQoNCY0J3QmtCe0JIg0JzQmNCb0JjQktCe0Igg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KDQmNCd0JrQntCSINCc0JjQidCQCivQnNCQ0KDQmNCd0JrQntCSINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KDQmNCd0JrQntCSINCc0JjQm9Ce0KHQkNCS0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQoNCY0J3QmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JzQntCc0KfQmNCb0J4KK9Cc0JDQoNCY0J3QmtCe0JIg0JzQntCc0KfQmNCb0J4KK9Cc0JDQoNCY0J3QmtCe0JIg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQmNCd0JrQntCSINCe0JzQldCgCivQnNCQ0KDQmNCd0JrQntCSINCf0JDQiNCQCivQnNCQ0KDQmNCd0JrQntCSINCf0KDQldCU0KDQkNCTCivQnNCQ0KDQmNCd0JrQntCSINCg0KPQltCY0KbQkAor0JzQkNCg0JjQndCa0J7QkiDQodCQ0JLQkAor0JzQkNCg0JjQndCa0J7QkiDQodCY0J3QmNCo0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0KHQm9CQ0JLQmtCeCivQnNCQ0KDQmNCd0JrQntCSINCh0JvQkNCS0JrQngor0JzQkNCg0JjQndCa0J7QkiDQodCi0JXQktCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQnNCQ0KDQmNCd0JrQntCSINCh0KLQoNCQ0KXQmNCK0JAg0JTQoCDQn9Cg0J7QpAor0JzQkNCg0JjQndCa0J7QkiDQktCV0KHQldCb0JjQnQor0JzQkNCg0JjQndCa0J7QkiDQktCV0KHQndCQCivQnNCQ0KDQmNCd0JrQntCSINCS0JvQkNCU0JAKK9Cc0JDQoNCY0J3QmtCe0JIg0JLQm9CQ0IjQmtCeCivQnNCQ0KDQmNCd0JrQntCSINCX0J7QoNCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQltCY0JLQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JbQmNCS0JrQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JbQmNCS0JrQngor0JzQkNCg0JjQndCa0J7QktCY0Isg0JbQmNCS0JrQngor0JzQkNCg0JjQndCa0J7QktCY0Isg0JbQmNCS0JrQngor0JzQkNCg0JjQndCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JHQntCI0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUg0JTQoAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQkdCg0JDQotCY0JzQmNCgCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQmtCQ0KLQkNCb0JjQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCL0J4KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCb0JXQndCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQm9CV0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCb0J7QiNCa0J4KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQotCQ0KAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCc0JjQotCQ0KAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCd0JXQndCQ0JQKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCg0JDQlNCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JzQkNCg0JjQndCa0J7QktCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSINCU0KAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQoNCY0KHQotCQ0J3QkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0KDQo9CW0JjQptCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCQ0JLQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCh0KLQkNCd0JrQngor0JzQkNCg0JjQndCa0J7QktCY0Isg0KHQotCQ0J3QntCI0JrQkAor0JzQkNCg0JjQndCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQkNCg0JjQndCa0J7QktCY0Isg0JLQm9CQ0JTQmNCm0JAKK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCS0JvQkNCU0J4KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCS0J7QiNCY0J0KK9Cc0JDQoNCY0J3QmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JLQmtCQCivQnNCQ0KDQmNCd0JrQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JzQkNCg0JjQndCa0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCg0JjQndCe0JIg0JzQkNCg0JjQndCa0J4KK9Cc0JDQoNCY0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQnNCQ0KDQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JDQoNCY0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JjQndCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JzQkNCg0JjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCY0J3QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JDQoNCY0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmNCd0J7QktCY0Isg0J/QldCI0J4KK9Cc0JDQoNCY0J3QntCS0JjQiy3QodCg0JTQkNCd0J7QkiDQlNCQ0J3QmNCm0JAKK9Cc0JDQoNCY0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCQ0KDQmNCd0J7QktCY0Isg0JLQmNCd0JrQkAor0JzQkNCg0JjQndCe0JLQmNCLINCX0JvQkNCi0JjQptCQCivQnNCQ0KDQmNCd0J7QktCY0Isg0JfQntCg0JjQptCQCivQnNCQ0KDQmNCd0J7QktCY0Isg0JfQntCg0JjQptCQCivQnNCQ0KDQmNCd0J7QktCh0JrQmCDQgtCe0KDQgtCVCivQnNCQ0KDQmNCd0J7QktCh0JrQmCDQmtCQ0KLQmNCm0JAKK9Cc0JDQoNCI0JDQqCDQkNCd0JrQkAor0JzQkNCg0IjQkNCoINCI0JDQndCa0J4KK9Cc0JDQoNCI0JDQqCDQnNCY0KjQkAor0JzQkNCg0IjQkNCoINCc0JjQpdCQ0IjQm9CeCivQnNCQ0KDQiNCQ0Kgg0JzQmNCb0JrQkAor0JzQkNCg0IjQkNCoINCh0KLQkNCd0JrQngor0JzQkNCg0IjQkNCoINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQoNCI0JDQnSDQlNCj0KjQkNCdCivQnNCQ0KDQiNCQ0J0g0JzQmNCb0JjQiNCQ0J3QkAor0JzQkNCg0IjQkNCdINCc0JjQoNCa0J4KK9Cc0JDQoNCI0JDQndCe0JIg0JTQo9Co0JDQnQor0JzQkNCg0IjQkNCd0J7QkiDQldCg0JbQldCR0JXQogor0JzQkNCg0IjQkNCd0J7QkiDQiNCe0JLQkNCd0JrQkAor0JzQkNCg0IjQkNCd0J7QkiDQidCj0JHQntCc0JjQoAor0JzQkNCg0IjQkNCd0J7QkiDQnNCQ0KDQkAor0JzQkNCg0IjQkNCd0J7QkiDQnNCY0KXQkNCI0JvQniDQlNCgCivQnNCQ0KDQiNCQ0J3QntCSINCc0JjQm9CV0J3QmtCeCivQnNCQ0KDQiNCQ0J3QntCSINCe0JvQk9CQCivQnNCQ0KDQiNCQ0J3QntCSINCg0JDQlNCe0JLQkNCdCivQnNCQ0KDQiNCQ0J3QntCSINCh0J7QitCQCivQnNCQ0KDQiNCQ0J3QntCSINCi0JjQnNCe0KLQmNCI0JUKK9Cc0JDQoNCI0JDQndCe0JIg0JLQo9CI0JjQptCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JbQkNCg0JrQngor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JbQldCJ0JrQngor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JbQmNCS0J7QotCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQltCY0JLQntCi0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCC0KPQoNCeCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JHQntCg0JjQktCe0IjQlQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCU0JDQndCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCb0JrQngor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JTQo9Co0JDQndCa0J4KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCU0KPQqNCa0J4KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCT0JDQkdCg0JjQiNCV0JsKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQiNCe0JLQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0InQo9CR0JjQktCe0IjQlQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCb0KPQmtCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeINCU0KAg0JjQndCTCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAg0JTQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JzQmNCi0JDQoAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JzQkNCg0IjQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQINCc0KAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQn9Cg0JLQntCh0JvQkNCSCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0KDQo9CW0JjQptCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQodCb0JDQktCe0InQo9CRINCU0KAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCh0KLQldCS0JrQkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JzQkNCg0IjQkNCd0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCi0KDQmNCS0KPQnQor0JzQkNCg0IjQkNCd0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCS0JXQoNCQCivQnNCQ0KDQiNCQ0J3QntCS0JjQiyDQktCY0JQKK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCS0JvQkNCU0J4KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCS0J7QiNCY0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQoNCI0JDQndCe0JLQmNCLINCX0J7QoNCQCivQnNCQ0KDQiNCQ0J3QodCa0Jgg0KTQldCU0J7QoAor0JzQkNCg0JrQkNCd0J7QkiDQidCj0JHQmNCm0JAKK9Cc0JDQoNCa0JDQndCe0JIg0JfQntCg0JjQptCQCivQnNCQ0KDQmtCT0KDQkNCkINCQ0J3QmNCm0JAKK9Cc0JDQoNCa0JPQoNCQ0KQg0KHQntCk0JjQiNCQCivQnNCQ0KDQmtCYINCd0JXQktCV0J3QmtCQCivQnNCQ0KDQmtCYINCd0JjQmtCe0JvQkAor0JzQkNCg0JrQmCDQodCb0JDQktCa0JAKK9Cc0JDQoNCa0JjQqCDQodCe0KTQmNCI0JAKK9Cc0JDQoNCa0JjQi9CV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCQ0KDQmtCY0IvQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmtCeINCI0JDQnSDQn9Cg0J7QpNCV0KHQntCgCivQnNCQ0KDQmtCeINCd0JDQlNCQINCU0KAKK9Cc0JDQoNCa0J7QodCa0Jgg0KHQotCe0IjQkNCdCivQnNCQ0KDQmtCe0JIg0JbQkNCg0JrQngor0JzQkNCg0JrQntCSINCW0JjQktCQCivQnNCQ0KDQmtCe0JIg0ILQo9Cg0JAKK9Cc0JDQoNCa0J7QkiDQkNCd0ILQldCb0JrQkAor0JzQkNCg0JrQntCSINCm0JLQldCi0JDQndCQCivQnNCQ0KDQmtCe0JIg0JTQntCR0KDQmNCb0JAKK9Cc0JDQoNCa0J7QkiDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCa0J7QkiDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCa0J7QkiDQlNCj0KjQkNCdCivQnNCQ0KDQmtCe0JIg0JXQnNCY0JsKK9Cc0JDQoNCa0J7QkiDQpNCe0KLQmNCI0JUKK9Cc0JDQoNCa0J7QkiDQmNCb0JjQiNCQCivQnNCQ0KDQmtCe0JIg0JjQktCY0KbQkAor0JzQkNCg0JrQntCSLdCI0JXQm9CV0J3QmNCLINCc0JjQoNCI0JDQndCQCivQnNCQ0KDQmtCe0JIg0InQo9CR0J7QnNCY0KAKK9Cc0JDQoNCa0J7QkiDQidCj0JHQntCc0JjQoAor0JzQkNCg0JrQntCSINCJ0KPQkdCe0JzQmNCgCivQnNCQ0KDQmtCe0JIg0JzQkNCg0JjQiNCQCivQnNCQ0KDQmtCe0JIg0JzQmNCb0JDQnQor0JzQkNCg0JrQntCSINCc0JjQm9CQ0J0KK9Cc0JDQoNCa0J7QkiDQnNCY0JvQldCd0JrQngor0JzQkNCg0JrQntCSINCc0JjQm9CY0KbQkAor0JzQkNCg0JrQntCSINCc0JjQm9CY0KbQkAor0JzQkNCg0JrQntCSINCc0JjQoNCQCivQnNCQ0KDQmtCe0JIg0J3QkNCU0JAKK9Cc0JDQoNCa0J7QkiDQndCQ0JTQkAor0JzQkNCg0JrQntCSINCd0JjQmtCe0JvQkAor0JzQkNCg0JrQntCSINCf0JXQotCQ0KAKK9Cc0JDQoNCa0J7QkiDQn9CV0KLQkNCgCivQnNCQ0KDQmtCe0JIg0KDQkNCU0JjQodCb0JDQkgor0JzQkNCg0JrQntCSINCg0JDQlNCe0KHQkNCSCivQnNCQ0KDQmtCe0JIg0KDQkNCU0J7QktCQ0J0KK9Cc0JDQoNCa0J7QkiDQoNCQ0JTQntCS0JDQnQor0JzQkNCg0JrQntCSINCh0JDQktCQCivQnNCQ0KDQmtCe0JIg0KHQmNCd0JjQqNCQCivQnNCQ0KDQmtCe0JIg0KHQn9CQ0KHQntCI0JUg0JTQoAor0JzQkNCg0JrQntCSINCh0KLQntCI0JDQnQor0JzQkNCg0JrQntCSINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QkiDQktCV0KDQkAor0JzQkNCg0JrQntCSINCS0JjQlNCe0KHQkNCS0JAKK9Cc0JDQoNCa0J7QkiDQl9Ce0KDQkNCdINCc0KAKK9Cc0JDQoNCa0J7QkiDQl9Ce0KDQkAor0JzQkNCg0JrQntCSINCX0J7QoNCa0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JbQkNCg0JrQngor0JzQkNCg0JrQntCS0JjQiyDQltCQ0KDQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JbQldCb0JjQkdCe0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JbQldCJ0JrQkAor0JzQkNCg0JrQntCS0JjQiyDQltCV0InQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCW0JjQktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JbQmNCS0JrQngor0JzQkNCg0JrQntCS0JjQiyDQltCY0JLQntCI0JjQnSDQlNCgCivQnNCQ0KDQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCQ0KDQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCQ0KDQmtCe0JLQmNCLINCW0JjQktCe0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JbQmNCS0J7QotCQCivQnNCQ0KDQmtCe0JLQmNCLINCC0JXQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQkNCg0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCQ0KDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQkNCg0JrQntCS0JjQiyDQkNCU0JDQnAor0JzQkNCg0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQkNCd0KLQntCd0JjQiNCVCivQnNCQ0KDQmtCe0JLQmNCLINCR0J7QqNCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCR0J7QoNCY0KEKK9Cc0JDQoNCa0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9Cc0JDQoNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQkNCg0JrQntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQptCS0JXQotCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0KbQktCV0KLQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCU0JDQndCY0KbQkAor0JzQkNCg0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCQ0KDQmtCe0JLQmNCLINCU0JXQiNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCQ0KDQmtCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JzQkNCg0JrQntCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCg0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0KDQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCU0KPQkdCg0JDQktCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JXQoNCW0JXQkdCV0KIKK9Cc0JDQoNCa0J7QktCY0Isg0JXQktCY0KbQkAor0JzQkNCg0JrQntCS0JjQiyDQk9Ce0KDQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCY0JPQitCQ0KIKK9Cc0JDQoNCa0J7QktCY0Isg0JjQm9CY0IjQkAor0JzQkNCg0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCQ0KDQmtCe0JLQmNCLINCY0KDQldCd0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JjQktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JjQktCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0JzQkNCg0JrQntCS0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCI0JDQoNCe0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JzQkNCg0JrQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JDQoNCa0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KDQmtCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0IjQntCS0J4KK9Cc0JDQoNCa0J7QktCY0Isg0IjQntCS0J4KK9Cc0JDQoNCa0J7QktCY0Isg0IjQo9Cb0JjQiNCQCivQnNCQ0KDQmtCe0JLQmNCLINCI0KPQm9Ca0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JrQkNCg0JvQngor0JzQkNCg0JrQntCS0JjQiyDQmtCQ0KDQntCb0JjQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCa0JDQoNCe0JvQmNCd0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JrQkNCi0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCQ0KDQmtCe0JLQmNCLINCa0J7QodCQ0J3QkAor0JzQkNCg0JrQntCS0JjQiyDQmtCe0KHQotCQCivQnNCQ0KDQmtCe0JLQmNCLINCa0KDQkNCh0JjQnNCY0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JrQodCV0J3QmNCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkCDQm9CV0JrQkNCgCivQnNCQ0KDQmtCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JzQkNCg0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JDQoNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCQ0KDQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQkNCg0JrQntCS0JjQiyDQidCj0JHQmNCd0JrQngor0JzQkNCg0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQm9Cj0JrQkAor0JzQkNCg0JrQntCS0JjQiy3QnNCQ0IjQotCV0IrQmCDQkNCd0JTQoNCY0IjQkAor0JzQkNCg0JrQntCS0JjQiy3QnNCQ0IjQotCV0IrQmCDQnNCY0KXQkNCJCivQnNCQ0KDQmtCe0JLQmNCLINCc0JDQoNCQCivQnNCQ0KDQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCg0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JzQkNCg0JjQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JzQkNCg0JrQngor0JzQkNCg0JrQntCS0JjQiyDQnNCY0KXQkNCY0JvQngor0JzQkNCg0JrQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CQCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQldCS0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0JrQngor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0JvQntCoCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QidCj0JEKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCg0JrQngor0JzQkNCg0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JzQkNCg0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCQ0KDQmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCQ0KDQmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCQ0KDQmtCe0JLQmNCLINCc0J7QnNCY0KAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QkNCi0JDQqNCQCivQnNCQ0KDQmtCe0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0J3QldCT0J7QodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQndCV0JzQkNCK0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QldCd0JDQlAor0JzQkNCg0JrQntCS0JjQiyDQndCV0J3QkNCUCivQnNCQ0KDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQkNCg0JrQntCS0JjQiyDQntCR0KDQkNCUCivQnNCQ0KDQmtCe0JLQmNCLINCe0JHQoNCQ0JQKK9Cc0JDQoNCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCa0J7QktCY0Isg0J/QkNCS0JvQlQor0JzQkNCg0JrQntCS0JjQiyDQn9CV0IjQp9CQCivQnNCQ0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAg0JLQldCi0JXQoNCY0J3QkNCgCivQnNCQ0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQn9CV0KLQoNCe0J3QmNCI0JUKK9Cc0JDQoNCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cc0JDQoNCa0J7QktCY0Isg0J/QoNCS0J7QodCb0JDQkiDQlNCgCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQqNCQCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCV0J3QmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCVCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCY0J3QmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCe0KHQkNCSINCU0JjQn9CbINCY0J3Qkwor0JzQkNCg0JrQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCd0JrQkAor0JzQkNCg0JrQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQoNCQ0J3QmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCg0JDQotCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0KDQntCU0J7QidCj0JEKK9Cc0JDQoNCa0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0JzQkNCg0JrQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KDQo9CW0JjQptCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JDQqNCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JDQktCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JDQktCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JDQktCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JjQndCY0KjQkAor0JzQkNCg0JrQntCS0JjQiyDQodCY0J3QmNCo0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0KHQnNCY0InQkAor0JzQkNCg0JrQntCS0JjQiyDQodCg0ILQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCh0KLQkNCd0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cc0JDQoNCa0J7QktCY0Isg0KHQotCV0KTQkNCd0JjQiNCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQodCi0J7QiNCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JDQoNCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQkNCg0JrQntCS0JjQiyDQotCQ0J3QkNCh0JjQiNCVCivQnNCQ0KDQmtCe0JLQmNCLINCi0JDQotCI0JDQndCQCivQnNCQ0KDQmtCe0JLQmNCLINCi0J7QlNCe0KAKK9Cc0JDQoNCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQo9CT0InQldCo0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JLQkNCh0JAKK9Cc0JDQoNCa0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlSDQlNCgCivQnNCQ0KDQmtCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQnNCQ0KDQmtCe0JLQmNCLINCS0JXQidCa0J4KK9Cc0JDQoNCa0J7QktCY0Isg0JLQldCJ0JrQngor0JzQkNCg0JrQntCS0JjQiyDQktCV0KDQkAor0JzQkNCg0JrQntCS0JjQiyDQktCV0KDQkAor0JzQkNCg0JrQntCS0JjQiyDQktCV0KDQkAor0JzQkNCg0JrQntCS0JjQiyDQktCV0KDQkAor0JzQkNCg0JrQntCS0JjQiyDQktCV0KDQkAor0JzQkNCg0JrQntCS0JjQiyDQktCY0IvQkAor0JzQkNCg0JrQntCS0JjQiyDQktCY0JTQntCI0JUKK9Cc0JDQoNCa0J7QktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JzQkNCg0JrQntCS0JjQiyDQktCY0JQKK9Cc0JDQoNCa0J7QktCY0Isg0JLQmNCd0JrQngor0JzQkNCg0JrQntCS0JjQiyDQktCY0KLQmtCeCivQnNCQ0KDQmtCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQnNCQ0KDQmtCe0JLQmNCLINCS0JvQkNCU0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KDQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQoNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCg0JrQntCS0JjQiyDQktCb0JDQlNCe0IjQlQor0JzQkNCg0JrQntCS0JjQiyDQktCe0IjQmNCdCivQnNCQ0KDQmtCe0JLQmNCLINCS0J7QiNCY0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQkNCg0JrQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0JzQkNCg0JrQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0JzQkNCg0JrQntCS0JjQiyDQl9Cb0JDQotCQCivQnNCQ0KDQmtCe0JLQmNCLINCX0JvQkNCi0JjQiNCQCivQnNCQ0KDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCQ0KDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQoNCa0J7QktCY0Isg0JfQntCg0JDQnQor0JzQkNCg0JrQntCS0JjQiyDQl9Ce0KDQkAor0JzQkNCg0JrQntCS0JjQiyDQl9Ce0KDQkAor0JzQkNCg0JrQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cc0JDQoNCa0J7QktCY0IvQkNCdINCI0J7QnQor0JzQkNCg0JrQntCS0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQoNCa0J7QktCY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KDQmtCe0JLQidCV0JIg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQmtCe0JLQodCa0Jgg0KbQktCV0KLQkNCd0JAKK9Cc0JDQoNCa0J7QktCh0JrQmCDQiNCe0JLQkNCdCivQnNCQ0KDQmtCh0JXQoCDQmNCS0JDQnQor0JzQkNCg0JrQodCV0KAg0IjQntCS0JDQnQor0JzQkNCg0JrQo9CoINCQ0J3QmtCY0KbQkAor0JzQkNCg0JrQo9CoINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JDQoNCa0KPQqCDQldCc0JjQmwor0JzQkNCg0JrQo9CoINCV0KLQldCb0JrQkAor0JzQkNCg0JrQo9CoINCI0J7QodCY0J8KK9Cc0JDQoNCa0KPQqCDQn9Cg0JXQlNCg0JDQkwor0JzQkNCg0JrQo9CoINCX0J7QoNCQ0J0KK9Cc0JDQoNCa0KPQqNCV0JIg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQoNCa0KPQqNCV0JIg0IjQldCb0JXQndCQCivQnNCQ0KDQm9Ce0JMg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCg0J7QqCDQlNCj0KjQkNCdCivQnNCQ0KDQntCoINCc0JjQm9Ce0JLQkNCdCivQnNCQ0KDQntCoINCh0KLQldCS0JDQnQor0JzQkNCg0J7QqCDQktCV0InQmtCeCivQnNCQ0KDQntCo0JDQnSDQotCY0KXQntCc0JjQoAor0JzQkNCg0J7QqNCV0JIg0JrQoNCY0KHQotCQCivQnNCQ0KDQntCo0JXQktCY0Isg0JjQktCQ0J0KK9Cc0JDQoNCe0KjQldCS0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0KDQntCo0JXQktCY0Isg0JzQkNCi0JAKK9Cc0JDQoNCe0KjQldCS0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQnNCQ0KDQntCo0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCg0J7QgtCYINCY0JLQkNCdCivQnNCQ0KDQntCC0Jgg0IjQntCb0JDQnQor0JzQkNCg0J7QgtCYINCI0J7Qm9CQ0J0KK9Cc0JDQoNCe0KbQmCDQnNCQ0KDQk9CY0KLQkAor0JzQkNCg0J7QiNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KDQntCI0JXQktCY0Isg0JjQktCQ0J3QmtCQCivQnNCQ0KDQntCI0JXQktCY0Isg0IjQntCh0JjQnwor0JzQkNCg0J7QiNCV0JLQmNCLINCg0JDQlNCc0JjQm9CeCivQnNCQ0KDQntCI0JXQktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JzQkNCg0J7Qm9CUINCI0J7QodCY0J8KK9Cc0JDQoNCe0JvQmCDQmNCh0JDQmgor0JzQkNCg0J7QnSDQlNCV0J3QldCoCivQnNCQ0KDQntCdINCa0JDQoNCb0J4KK9Cc0JDQoNCe0KHQm9CQ0JLQkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQoNCe0KIg0JjQktCQ0J0KK9Cc0JDQoNCe0KLQmCDQnNCY0JrQm9Ce0KgKK9Cc0JDQoNCe0JLQmNCLINCC0KPQoNCQCivQnNCQ0KDQntCS0JjQiyDQkdCe0KDQmNChINCU0KAKK9Cc0JDQoNCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQnNCQ0KDQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JDQoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JDQoNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCQ0KDQntCS0JjQiyDQl9CU0JXQndCa0JAKK9Cc0JDQoNCe0JLQodCa0Jgg0J3QmNCa0J7Qm9CQCivQnNCQ0KDQodCV0J3QmNCLINCU0KDQkNCT0JDQndCQCivQnNCQ0KDQodCV0J3QmNCLINCb0JXQmtCQCivQnNCQ0KDQodCV0J3QmNCLINCh0JvQkNCS0J7QiNCa0JAKK9Cc0JDQoNCi0JjQiyDQltCY0JLQntCI0JjQnQor0JzQkNCg0KLQmNCLINCC0KPQoNCQCivQnNCQ0KDQotCY0Isg0JHQoNCQ0J3QmtCQCivQnNCQ0KDQotCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KDQotCY0Isg0JrQntCh0KLQkAor0JzQkNCg0KLQmNCLINCb0JDQl9CQ0KAKK9Cc0JDQoNCi0JjQiyDQidCj0JHQntCc0JjQoAor0JzQkNCg0KLQmNCLINCc0JDQoNCQCivQnNCQ0KDQotCY0Isg0JzQmNCb0JDQnQor0JzQkNCg0KLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCQ0KDQotCY0Isg0JzQmNCb0JjQptCQCivQnNCQ0KDQotCY0Isg0J7Qm9CT0JAKK9Cc0JDQoNCi0JjQiyDQn9CV0KDQngor0JzQkNCg0KLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCQ0KDQotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0JDQoNCi0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQoNCi0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JDQoNCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KDQotCY0Isg0JLQntCI0J3QkAor0JzQkNCg0KLQmNCm0JrQmCDQnNCb0JDQlNCV0J0KK9Cc0JDQoNCi0JjQnSDQkNCb0J7QiNCX0JjQiNCVCivQnNCQ0KDQotCY0J0g0JDQndCi0JDQmwor0JzQkNCg0KLQmNCdINCV0J3QlNCg0JUKK9Cc0JDQoNCi0JjQnSDQldCg0JbQldCR0JXQogor0JzQkNCg0KLQmNCdINCY0JzQoNCVCivQnNCQ0KDQotCY0J0g0JjQktCQ0J0KK9Cc0JDQoNCi0JjQnSDQiNCe0KHQmNCkCivQnNCQ0KDQotCY0J0g0IjQntCS0JDQnQor0JzQkNCg0KLQmNCdINCJ0KPQkdCY0J3QmtCQCivQnNCQ0KDQotCY0J0g0JzQkNCi0JjQm9CU0JAKK9Cc0JDQoNCi0JjQnSDQnNCY0KDQntCh0JvQkNCS0JAKK9Cc0JDQoNCi0JjQnSDQl9CS0J7QndCY0JzQmNCgCivQnNCQ0KDQotCY0J3Qp9CV0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCQ0KDQotCY0J3Qp9CY0Isg0JTQkNCS0J7QoAor0JzQkNCg0KLQmNCd0KfQmNCLINCU0JDQktCe0KAKK9Cc0JDQoNCi0JjQndCQ0KjQldCS0JjQiyDQpdCV0KDQnNCY0J3QkAor0JzQkNCg0KLQmNCd0JDQqNCV0JLQmNCLINCe0KLQngor0JzQkNCg0KLQmNCd0JDQmiDQiNCe0JLQkNCdCivQnNCQ0KDQotCY0J3QldCmINCQ0J3QotCe0J0KK9Cc0JDQoNCi0JjQndCV0Jog0JDQndCi0JDQmwor0JzQkNCg0KLQmNCd0JXQmiDQpNCV0KDQldCd0KYKK9Cc0JDQoNCi0JjQndCa0J4g0JDQndCU0KDQmNCI0JAKK9Cc0JDQoNCi0JjQndCe0JIg0ILQntCg0ILQlQor0JzQkNCg0KLQmNCd0J7QkiDQkNCd0JrQkAor0JzQkNCg0KLQmNCd0J7QkiDQm9CQ0JfQkNCgCivQnNCQ0KDQotCY0J3QntCSINCc0JjQmtCQCivQnNCQ0KDQotCY0J3QntCSINCc0JjQm9CQ0J0g0JTQoAor0JzQkNCg0KLQmNCd0J7QkiDQnNCY0JvQmNCm0JAKK9Cc0JDQoNCi0JjQndCe0JIg0JzQmNCb0J7QqAor0JzQkNCg0KLQmNCd0J7QkiDQnNCY0JvQntCoCivQnNCQ0KDQotCY0J3QntCSINCc0JjQm9Ce0KgKK9Cc0JDQoNCi0JjQndCe0JIg0KHQkNCd0JTQoNCQCivQnNCQ0KDQotCY0J3QntCSINCh0JDQktCQCivQnNCQ0KDQotCY0J3QntCSINCh0JvQkNCS0JrQngor0JzQkNCg0KLQmNCd0J7QkiDQodCb0JDQktCa0J4KK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQkNCd0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCQ0J3QmNCi0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0KTQmNCb0JjQnwor0JzQkNCg0KLQmNCd0J7QktCY0Isg0KTQmNCd0JrQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JjQktCeCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCI0J7QktCQ0J0g0JLQldCi0JXQoNCY0J3QkNCgCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JDQndCQCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCc0JjQm9CVCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCd0JDQlNCQCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQndCV0J3QkNCUCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQntCb0JPQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0J/QldCg0KHQmNCU0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCg0JjQodCi0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JzQkNCg0KLQmNCd0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCh0KLQkNCd0JrQkAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCQ0KDQotCY0J3QntCS0JjQiyDQo9Cg0J7QqAor0JzQkNCg0KLQmNCd0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCS0JXQidCa0J4KK9Cc0JDQoNCi0JjQndCe0JLQmNCLINCX0JDQoNCY0IjQlQor0JzQkNCg0KLQmNCd0J7QktCh0JrQmCDQoNCe0JzQkNCdCivQnNCQ0KDQotCe0J0g0KjQkNCd0JTQntCgCivQnNCQ0KDQotCe0J0g0JbQo9CW0JDQndCQCivQnNCQ0KDQotCe0J0g0JDQndCU0KDQkNCoCivQnNCQ0KDQotCe0J0g0KTQldCg0JXQndCmCivQnNCQ0KDQotCe0J0g0JjQqNCi0JLQkNCdCivQnNCQ0KDQotCe0J0g0JjQm9CV0KgKK9Cc0JDQoNCi0J7QnSDQiNCe0JbQldCkCivQnNCQ0KDQotCe0J0g0IjQntCW0JXQpAor0JzQkNCg0KLQntCdINCI0J7Qm9CQ0J0KK9Cc0JDQoNCi0J7QnSDQm9CQ0IjQntCoCivQnNCQ0KDQotCe0J0g0JzQkNCL0JDQqAor0JzQkNCg0KLQntCdINCc0JDQoNCY0IjQkAor0JzQkNCg0KLQntCdINCg0J7Ql9CQCivQnNCQ0KDQo9Co0KfQo9CaINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQoNCj0KjQldCS0JjQiyDQmNCS0JDQnQor0JzQkNCg0KPQqNCY0Isg0JTQkNCd0JjQptCQCivQnNCQ0KDQo9Co0JjQiyDQpNCg0JDQitCQCivQnNCQ0KDQo9Co0JjQiyDQk9Ce0KDQkNCdCivQnNCQ0KDQo9Co0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQnNCQ0KDQo9Co0JjQiyDQidCj0JHQngor0JzQkNCg0KPQqNCY0Isg0JzQmNCe0KDQmNCm0JAKK9Cc0JDQoNCj0KjQmNCLINCd0JXQkdCe0IjQqNCQCivQnNCQ0KDQo9Co0JjQiyDQntCb0JPQkAor0JzQkNCg0KPQqNCY0Isg0KHQotCe0IjQkNCdCivQnNCQ0KDQo9Co0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KDQo9Cd0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQkNCg0KPQndCa0JjQiyDQnNCY0JvQmNCd0JAKK9Cc0JDQoNCj0J3QntCS0JjQiyDQkdCb0JDQk9Ce0KLQkAor0JzQkNCh0JvQkNCLINCQ0J3QotCVCivQnNCQ0KHQm9CQ0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQodCb0JDQiyDQoNCQ0IjQmtCeCivQnNCQ0KHQm9CQ0Isg0JLQmNCd0JrQngor0JzQkNCh0JvQntCS0JDQoNCY0Isg0JHQntCW0JjQlNCQ0KAg0JTQoAor0JzQkNCh0J3QldCmINCQ0J3QmtCQCivQnNCQ0KHQndCY0JrQntCh0JAg0KTQldCc0JrQkAor0JzQkNCh0J3QmNCa0J7QodCQINCk0JXQnNCa0JAKK9Cc0JDQodCd0J7QkiDQoNCe0JfQkNCb0JjQiNCQCivQnNCQ0KHQotCY0JrQntCh0JAg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQodCi0JjQmtCe0KHQkCDQndCY0JrQngor0JzQkNCh0KLQmNCb0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQkNCh0KLQmNCb0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCQ0KHQotCY0JvQntCS0JjQiyDQnNCY0KDQkAor0JzQkNCh0KLQmNCb0J7QktCY0Isg0JzQmNCg0JrQngor0JzQkNCh0KLQmNCb0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JDQodCi0JjQm9Ce0JLQmNCLINCf0JvQldCc0JAKK9Cc0JDQodCi0JjQm9Ce0JLQmNCLINCg0JDQndCa0J4KK9Cc0JDQotCQ0IjQp9CY0Isg0KTQoNCQ0IrQngor0JzQkNCi0JDQiNCn0JjQiyDQmNCS0JDQnQor0JzQkNCi0JDQmiDQnNCQ0KDQmNCI0JAKK9Cc0JDQotCQ0Jog0JzQkNCg0IjQkNCdCivQnNCQ0KLQkNCaINCS0JXQodCd0JAKK9Cc0JDQotCQ0JrQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JDQotCQ0J3QntCSINCI0JDQodCc0JjQndCQCivQnNCQ0KLQkNCd0J7QktCY0Isg0JTQldCX0JjQlNCV0KAKK9Cc0JDQotCQ0J3QntCS0JjQiyDQmNCg0JXQndCQCivQnNCQ0KLQkNCd0J7QktCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0JzQkNCi0JDQndCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQnNCQ0KLQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JDQotCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQkNCi0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCQ0KLQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQkNCi0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQotCQ0J3QntCS0JjQiyDQodCb0JDQktCY0KbQkAor0JzQkNCi0JDQndCe0JLQmNCLINCS0JvQkNCU0JAKK9Cc0JDQotCQ0KDQo9CT0JAg0InQmNCJ0JDQndCQCivQnNCQ0KLQkNCg0KPQk9CQINCc0JjQm9Ca0JAKK9Cc0JDQotCQ0KDQo9CT0JAg0J/QkNCS0JvQlQor0JzQkNCi0JDQoNCj0JPQkCDQl9CQ0JPQntCg0JrQkAor0JzQkNCi0JDQoNCj0JPQmNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KLQkNCh0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JDQotCQ0JLQo9CJINCc0JjQm9CY0KbQkAor0JzQkNCi0JUg0JXQotCV0JvQmtCQCivQnNCQ0KLQlSDQk9CY0JfQldCb0JAKK9Cc0JDQotCVINCS0JXQndCU0JXQmyDQlNCgCivQnNCQ0KLQldCn0JjQmiDQnNCY0JrQm9Ce0KgKK9Cc0JDQotCV0IjQkNCo0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCi0JXQiNCQ0KjQldCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JDQotCV0IjQkNCo0JXQkiDQodCS0JXQotCe0JfQkNCgCivQnNCQ0KLQldCI0JXQktCY0Isg0IjQldCb0JXQndCQCivQnNCQ0KLQldCI0JXQktCY0Isg0KHQotCQ0J3QmtCeCivQnNCQ0KLQldCI0JXQktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cc0JDQotCV0IjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCQ0KLQldCI0JXQktCY0Isg0JfQmNCb0JTQkAor0JzQkNCi0JXQiNCY0Isg0ILQo9Cg0JAKK9Cc0JDQotCV0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KLQldCI0JjQiyDQndCQ0JTQldCW0JTQkAor0JzQkNCi0JXQiNCY0Isg0KDQkNCi0JrQngor0JzQkNCi0JXQiNCY0Isg0KDQo9CW0JjQptCQCivQnNCQ0KLQldCI0JjQiyDQodCb0JDQktCe0InQo9CRINCU0KAg0JvQldCa0JDQoAor0JzQkNCi0JXQiNCY0J0g0ILQntCg0ILQlQor0JzQkNCi0JXQiNCY0J0g0JTQoNCQ0JPQkNCdCivQnNCQ0KLQldCI0JjQnSDQlNCg0JDQk9CY0IsKK9Cc0JDQotCV0IjQmNCdINCU0KPQqNCQ0J0KK9Cc0JDQotCV0IjQmNCdINCc0JjQm9CY0JLQntCICivQnNCQ0KLQldCI0JjQnSDQktCV0KHQldCb0JjQnQor0JzQkNCi0JXQmtCQ0JvQniDQnNCY0JvQmtCQCivQnNCQ0KLQldCa0J7QktCY0Isg0KHQnNCY0InQkAor0JzQkNCi0JXQntCS0JjQiyDQn9Cj0JHQkCDQlNCgCivQnNCQ0KLQldCS0KHQmtCYINCb0KPQmNCC0JgKK9Cc0JDQotCY0KfQldCaINCJ0KPQlNCV0JLQmNCiCivQnNCQ0KLQmNCo0JAg0JjQoNCV0J3QkAor0JzQkNCi0JjQqNCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JDQotCY0Isg0JbQkNCg0JrQngor0JzQkNCi0JjQiyDQltCY0JLQmtCQCivQnNCQ0KLQmNCLINCW0JjQktCa0J4KK9Cc0JDQotCY0Isg0JbQmNCS0JrQngor0JzQkNCi0JjQiyDQltCY0JLQntCI0JjQnQor0JzQkNCi0JjQiyDQltCY0JLQntCg0JDQlAor0JzQkNCi0JjQiyDQgtCe0KDQgtCVCivQnNCQ0KLQmNCLINCC0J7QoNCC0JUKK9Cc0JDQotCY0Isg0ILQntCg0ILQlQor0JzQkNCi0JjQiyDQgtCj0KDQgtCY0KbQkAor0JzQkNCi0JjQiyDQgtCj0KDQkCDQlNCgCivQnNCQ0KLQmNCLINCQ0KbQmtCeCivQnNCQ0KLQmNCLINCQ0KbQmtCeCivQnNCQ0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KLQmNCLINCQ0J3QmtCQCivQnNCQ0KLQmNCLINCQ0J3QmtCY0KbQkAor0JzQkNCi0JjQiyDQkNCg0JDQndCa0JAKK9Cc0JDQotCY0Isg0JDQoNCQ0J3QmtCQCivQnNCQ0KLQmNCLLdCR0JDQo9ChINCW0JjQktCa0J4KK9Cc0JDQotCY0Ist0JHQldCa0JLQkNCb0JDQpiDQktCV0KHQndCQCivQnNCQ0KLQmNCLINCR0J7QltCY0JTQkNCgINCU0KAKK9Cc0JDQotCY0Isg0JHQntCI0JDQndCQCivQnNCQ0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCi0JjQiyDQlNCQ0JzQiNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KLQmNCLINCU0JXQodCQ0J3QmtCQCivQnNCQ0KLQmNCLINCU0J7QkdCg0JjQptCQCivQnNCQ0KLQmNCLINCU0J7QkdCg0JjQm9CeCivQnNCQ0KLQmNCLINCU0KDQkNCT0JDQnQor0JzQkNCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JDQotCY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0KLQmNCLINCU0KDQkNCT0JjQqNCQCivQnNCQ0KLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCQ0KLQmNCLINCU0KDQkNCT0JjQitCQCivQnNCQ0KLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cc0JDQotCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JDQotCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JDQotCY0Isg0JTQo9Co0JDQnQor0JzQkNCi0JjQiyDQlNCj0KjQkNCdCivQnNCQ0KLQmNCLINCU0KPQqNCQ0J0KK9Cc0JDQotCY0Isg0JTQo9Co0JDQnQor0JzQkNCi0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9Cc0JDQotCY0Isg0JXQktCQCivQnNCQ0KLQmNCLINCk0JjQndCa0JAKK9Cc0JDQotCY0Isg0JPQntCg0JTQkNCd0JAKK9Cc0JDQotCY0Isg0JjQm9CY0IjQkAor0JzQkNCi0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JDQotCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0JDQotCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0JDQotCY0Isg0IjQldCb0JjQodCQ0JLQmtCQCivQnNCQ0KLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQotCY0Isg0JrQkNCi0JjQptCQCivQnNCQ0KLQmNCLLdCa0JXQmtCY0Isg0KHQndCV0JbQkNCd0JAKK9Cc0JDQotCY0Isg0JrQoNCY0KHQotCY0J3QkAor0JzQkNCi0JjQiyDQm9CQ0JfQkNCgCivQnNCQ0KLQmNCLINCb0JDQl9CQ0KAKK9Cc0JDQotCY0Isg0InQmNCJ0JDQndCQCivQnNCQ0KLQmNCLINCJ0JjQidCQ0J3QkAor0JzQkNCi0JjQiyDQidCY0InQkNCd0JAKK9Cc0JDQotCY0Isg0InQo9CR0JjQptCQCivQnNCQ0KLQmNCLINCJ0KPQkdCY0KbQkAor0JzQkNCi0JjQiyDQidCj0JHQngor0JzQkNCi0JjQiyDQm9Cj0JrQkAor0JzQkNCi0JjQiyDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Cc0JDQotCY0Isg0JzQkNCg0JjQptCQCivQnNCQ0KLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCi0JjQiyDQnNCQ0KDQmtCeCivQnNCQ0KLQmNCLINCc0JDQoNCa0J4KK9Cc0JDQotCY0Isg0JzQmNCb0JDQnQor0JzQkNCi0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KLQmNCLINCc0JjQm9CQ0J0KK9Cc0JDQotCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQotCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JDQotCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cc0JDQotCY0Isg0JzQmNCb0J7QqAor0JzQkNCi0JjQiyDQnNCY0JvQntCoCivQnNCQ0KLQmNCLINCc0JjQm9Ce0KgKK9Cc0JDQotCY0Isg0JzQmNCb0J7QqAor0JzQkNCi0JjQiyDQnNCY0JvQntCoCivQnNCQ0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCQ0KLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCQ0KLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCQ0KLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCQ0KLQmNCLINCc0JjQoNCa0J4KK9Cc0JDQotCY0Isg0J3QkNCU0JAKK9Cc0JDQotCY0Isg0J3QkNCU0JXQltCU0JAKK9Cc0JDQotCY0Isg0J3QkNCi0JDQqNCQCivQnNCQ0KLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Cc0JDQotCY0Isg0J3QldCT0J7QktCQ0J0KK9Cc0JDQotCY0Isg0J3QmNCa0J7Qm9CQCivQnNCQ0KLQmNCLINCd0J7QktCY0KbQkAor0JzQkNCi0JjQiyDQn9CQ0JLQkAor0JzQkNCi0JjQiyDQn9CQ0JLQm9CVCivQnNCQ0KLQmNCLINCf0JDQktCb0JUKK9Cc0JDQotCY0Isg0J/QldCi0JDQoAor0JzQkNCi0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KLQmNCLINCf0JvQkNCd0JjQndCa0JAKK9Cc0JDQotCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cc0JDQotCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cc0JDQotCY0Isg0KDQkNCU0JUKK9Cc0JDQotCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JDQotCY0Isg0KDQkNCU0J7QiNCVCivQnNCQ0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCQ0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCQ0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCQ0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JDQotCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JDQotCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JDQotCY0Isg0KDQkNCI0JrQngor0JzQkNCi0JjQiyDQodCQ0JLQkAor0JzQkNCi0JjQiyDQodCY0JzQkAor0JzQkNCi0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQotCY0Isg0KHQm9CQ0JLQmtCeCivQnNCQ0KLQmNCLINCh0JvQkNCS0JrQngor0JzQkNCi0JjQiyDQodCb0JDQktCa0J4KK9Cc0JDQotCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQkNCi0JjQiyDQodCi0JDQndCa0J4KK9Cc0JDQotCY0Isg0KHQotCQ0J3QmtCeCivQnNCQ0KLQmNCLINCh0KLQkNCX0JAKK9Cc0JDQotCY0Isg0KHQotCY0J/Qngor0JzQkNCi0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JDQotCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JzQkNCi0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCQ0KLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JDQotCY0Isg0KLQntCc0JAKK9Cc0JDQotCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQkNCi0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQnNCQ0KLQmNCLINCS0JXQodCV0JvQmNCdCivQnNCQ0KLQmNCLINCS0JjQlNCQCivQnNCQ0KLQmNCLINCS0JjQotCe0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JzQkNCi0JjQiyDQktCb0JDQlNCQCivQnNCQ0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JDQotCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQkNCi0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cc0JDQotCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgINCc0KAKK9Cc0JDQotCY0Isg0JLQo9CI0JjQptCQCivQnNCQ0KLQmNCLINCS0KPQmtCY0KbQkAor0JzQkNCi0JjQiyDQl9CQ0JPQntCg0JrQkAor0JzQkNCi0JjQiyDQl9CU0KDQkNCS0JrQkAor0JzQkNCi0JjQiyDQl9Ce0KDQkAor0JzQkNCi0JjQptCa0Jgg0JzQmNCb0JDQndCQINCU0KAKK9Cc0JDQotCY0KbQmtCYINCc0JjQm9Ce0KgKK9Cc0JDQotCY0IjQkNCoINCY0JvQmNCI0JAKK9Cc0JDQotCY0IjQkNCo0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQkNCi0JjQiNCQ0KjQldCSINCg0JDQlNCY0JLQntCICivQnNCQ0KLQmNCI0JDQqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCQ0KLQmNCI0JDQqNCV0JLQmNCLINCI0JXQm9Ca0JAKK9Cc0JDQotCY0IjQkNCo0JXQktCY0Isg0JrQkNCi0JjQptCQCivQnNCQ0KLQmNCI0JDQqNCV0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JDQotCY0IjQkNCo0JXQktCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cc0JDQotCY0IjQkNCo0JXQktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JrQkAor0JzQkNCi0JjQiNCV0JLQmNCLINCQ0J3QotCY0KbQkAor0JzQkNCi0JjQiNCV0JLQmNCLINCQ0J3QotCj0J0KK9Cc0JDQotCY0IjQldCS0JjQiyDQkdCe0IjQkNCdCivQnNCQ0KLQmNCI0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCQ0KLQmNCI0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JDQotCY0IjQldCS0JjQiyDQpNCg0JDQndCn0JjQqNCa0JAKK9Cc0JDQotCY0IjQldCS0JjQiyDQmNCb0JjQiNCQCivQnNCQ0KLQmNCI0JXQktCY0Isg0IjQntCh0JjQnwor0JzQkNCi0JjQiNCV0JLQmNCLINCa0JDQotCQ0JvQmNCdCivQnNCQ0KLQmNCI0JXQktCY0Isg0JvQkNCI0J7QqAor0JzQkNCi0JjQiNCV0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQkNCi0JjQiNCV0JLQmNCLINCc0JjQm9CVCivQnNCQ0KLQmNCI0JXQktCY0Isg0JzQmNCb0J7QiNCa0J4KK9Cc0JDQotCY0IjQldCS0JjQiyDQn9CV0KDQngor0JzQkNCi0JjQiNCV0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JDQotCY0IjQldCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KLQmNCI0JXQktCY0Isg0J/QldCi0JDQoAor0JzQkNCi0JjQiNCV0JLQmNCLINCg0JDQlNCVCivQnNCQ0KLQmNCI0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCQ0KLQmNCI0JXQktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JzQkNCi0JjQiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JDQotCY0IjQldCS0JjQiyDQl9Ce0KDQkAor0JzQkNCi0JjQiNCV0JLQmNCLINCX0J7QoNCQCivQnNCQ0KLQmNCdINCU0J7QoNCe0KLQldCQCivQnNCQ0KLQmNCdINCI0J7QodCY0J8KK9Cc0JDQotCY0J0g0JvQkNCI0J7QqAor0JzQkNCi0JjQnSDQnNCQ0KLQmNCI0JAKK9Cc0JDQotCY0KEg0KjQkNCd0JTQntCgINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQnNCQ0KLQmNChINCo0JDQndCU0J7QoAor0JzQkNCi0IjQkNCn0JjQiyDQktCY0J3QmtCeCivQnNCQ0KLQmtCeINCV0JLQkAor0JzQkNCi0JrQntCS0JjQiyDQltCQ0KDQmtCeCivQnNCQ0KLQmtCe0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JDQotCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JDQotCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQkNCi0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCQ0KLQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JDQotCa0J7QktCY0Isg0JvQkNCU0JjQodCb0JDQkgor0JzQkNCi0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCi0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cc0JDQotCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQkNCi0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCQ0KLQmtCe0JLQmNCLINCc0J7QnNCY0KAKK9Cc0JDQotCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JDQotCa0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0JzQkNCi0JrQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JDQotCa0J7QktCY0Isg0KHQotCQ0JzQldCd0JrQngor0JzQkNCi0JrQntCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Cc0JDQotCa0J7QktCY0Isg0JfQlNCV0J3QmtCQINCU0KAKK9Cc0JDQotCe0KjQldCS0JjQiyDQmNCS0JDQnQor0JzQkNCi0J7QqNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQnNCQ0KLQntCo0JrQntCS0JjQiyDQkNCT0JDQotCQCivQnNCQ0KLQntCo0JrQntCS0JjQiyDQotCV0KDQldCX0JAKK9Cc0JDQotCe0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQnNCQ0KLQntCS0JjQiyDQkNCd0JAKK9Cc0JDQotCe0JLQmNCLINCR0J7QltCQ0J3QkAor0JzQkNCi0J7QktCY0Isg0JHQntCg0JjQktCe0IjQlQor0JzQkNCi0J7QktCY0Isg0JHQntCg0J4KK9Cc0JDQotCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCi0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCQ0KLQntCS0JjQiyDQlNCQ0KDQngor0JzQkNCi0J7QktCY0Isg0JTQldCh0JAKK9Cc0JDQotCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQnNCQ0KLQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JzQkNCi0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9Cc0JDQotCe0JLQmNCLINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCQ0KLQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCQ0KLQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQkNCi0J7QktCY0Isg0JzQmNCb0JUKK9Cc0JDQotCe0JLQmNCLLdCc0JjQm9CY0Isg0JHQkNCi0KDQmNCLCivQnNCQ0KLQntCS0JjQiyDQnNCY0JvQmNCLCivQnNCQ0KLQntCS0JjQiyDQnNCY0JvQntCI0JrQngor0JzQkNCi0J7QktCY0Isg0J3QkNCi0JDQqNCQCivQnNCQ0KLQntCS0JjQiyDQn9CQ0JLQm9CVCivQnNCQ0KLQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCQ0KLQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQnNCQ0KLQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0JzQkNCi0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQkNCi0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cc0JDQotCe0JLQmNCd0JAg0KTQoNCQ0IrQkAor0JzQkNCi0J7QktCY0J3QkCDQk9Ce0KDQkNCdCivQnNCQ0KLQntCS0JjQndCQINCc0JDQoNCa0J4KK9Cc0JDQotCg0JDQmiDQlNCg0JDQk9CQ0J0KK9Cc0JDQotCj0Kgg0IjQkNCdCivQnNCQ0KLQo9Co0JrQkCDQnNCQ0KDQotCe0J0KK9Cc0JDQotCj0InQmNCdINCY0JPQitCQ0KYKK9Cc0JDQotCj0KHQmtCYINCh0J7QitCQCivQnNCQ0KLQktCY0JrQntCSINCV0KPQk9CV0J3QmNCI0JUKK9Cc0JDQo9Ca0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQkNCj0Jsg0JPQntCg0JTQkNCd0JAKK9Cc0JDQo9Cg0JjQiyDQpNCV0KDQldCd0KYKK9Cc0JDQo9Cg0JjQiyDQk9CV0JfQkAor0JzQkNCj0KDQmNCLINCd0JXQndCQ0JQKK9Cc0JDQktCY0Isg0KHQoNCC0JDQnQor0JzQkNCS0KDQkNCaINCY0JzQoNCVCivQnNCQ0JLQoNCV0J3QodCa0Jgg0JHQntCT0JTQkNCdCivQnNCQ0JLQoNCV0J3QodCa0Jgg0JHQntCg0JrQngor0JzQkNCS0KDQldCd0KHQmtCYINCY0JLQmNCm0JAKK9Cc0JDQktCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCQ0JfQkNCb0JjQptCQINCR0KDQkNCd0JjQodCb0JDQkgor0JzQkNCX0JDQm9CY0KbQkCDQlNCj0KjQkNCdCivQnNCQ0JfQkNCb0JjQptCQINCT0J7QiNCa0J4KK9Cc0JDQl9CQ0JvQmNCm0JAg0InQo9CR0J4KK9Cc0JDQl9CQ0JvQmNCm0JAg0JzQkNCg0JjQiNCQCivQnNCQ0JfQkNCb0JjQptCQINCg0JDQiNCa0J4KK9Cc0JDQl9CQ0JvQmNCm0JAg0KHQndCV0JbQkNCd0JAKK9Cc0JDQl9CQ0JvQmNCm0JAg0KPQoNCe0KgKK9Cc0JDQl9CQ0JvQmNCm0JAg0JLQkNCh0J4KK9Cc0JDQl9CQ0JvQmNCm0JAg0JLQldCJ0JrQngor0JzQkNCX0JDQndCn0JjQmiDQkNCd0JTQoNCY0IjQkAor0JzQkNCX0JDQndCL0JjQmiDQn9CQ0IjQkAor0JzQkNCX0JDQitCYINCa0JDQoNCb0J4KK9Cc0JDQl9CY0Isg0JbQmNCS0JrQngor0JzQkNCX0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JDQl9CY0Isg0JTQoNCQ0JPQkNCdCivQnNCQ0JfQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCQ0JfQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCQ0JfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JDQl9CY0Isg0J/Qm9CV0KLQmNCa0J7QodCQCivQnNCQ0JfQmNCK0JDQndCY0J0g0JTQo9Co0JDQnQor0JzQkNCX0JvQkNCc0Jgg0I/QkNCR0JjQoAor0JzQkNCX0KPQoCDQktCj0JrQmNCm0JAKK9Cc0KYt0KbQntCd0J3QldCb0Jsg0JzQkNCg0KLQkAor0JzQldCn0JrQkNCg0J7QktCh0JrQmCDQlNCg0JDQk9CQ0J0KK9Cc0JXQp9Ca0JjQiyDQlNCe0JHQoNCY0JvQkAor0JzQldCn0JrQmNCLINCh0JvQkNCS0JrQngor0JzQldCo0JDQndCe0JLQmNCLINCl0JDQl9CY0JwKK9Cc0JXQqNCi0JXQoCDQmNCg0JXQndCQCivQnNCV0KjQotCV0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JXQqNCi0KDQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQldCL0JDQktCQINCR0KDQkNCd0JrQngor0JzQldCL0JDQktCQINCU0KDQkNCT0JDQnQor0JzQldCL0JDQktCQINCc0JjQm9CQ0J0KK9Cc0JXQgtCQ0J3QmNCdINCU0KPQqNCQ0J0KK9Cc0JXQgtCV0KjQmCDQidCj0JHQntCc0JjQoAor0JzQldCC0JXQqNCYINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JXQgtCV0JQg0JzQkNCg0JjQptCQCivQnNCV0ILQldCU0J7QktCY0Isg0ILQntCg0ILQmNCI0JUKK9Cc0JXQgtCV0JTQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JXQgtCV0JTQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Cc0JXQgtCV0JTQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCV0ILQldCU0J7QktCY0Isg0JTQoNCQ0JPQngor0JzQldCC0JXQlNCe0JLQmNCLINCU0KPQkdCg0JDQktCa0JAKK9Cc0JXQgtCV0JTQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQldCC0JXQlNCe0JLQmNCLINCd0JXQnNCQ0IrQkAor0JzQldCC0JXQlNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCV0ILQldCg0Jgg0JLQldCg0J7QndCY0JrQkAor0JzQldCC0JjQnNCe0KDQldCmINCV0JTQo9CQ0KDQlAor0JzQldCC0JjQnNCe0KDQldCmINCJ0KPQkdCe0JzQmNCgCivQnNCV0ILQmNCc0J7QoNCV0KYg0KHQotCI0JXQn9CQ0J0KK9Cc0JXQgtCY0JzQntCg0JXQpiDQktCY0JrQotCe0KAKK9Cc0JXQkNCc0I/QmNCI0JAg0JzQmNCg0JAKK9Cc0JXQkNCd0I/QmNCLINCh0JvQkNCS0JrQngor0JzQldCm0JDQndCe0JIg0KHQotCe0IjQkNCd0JrQkAor0JzQldCU0JDQmtCe0JIg0JbQmNCS0JrQngor0JzQldCU0JDQmtCe0JIg0JzQkNCg0JjQiNCQCivQnNCV0JTQkNCa0J7QkiDQnNCY0JvQkNCdCivQnNCV0JTQkNCa0J7QkiDQnNCY0JvQkNCdCivQnNCV0JTQkNCa0J7QkiDQnNCY0InQkNCd0JAKK9Cc0JXQlNCQ0JrQntCSINCg0JDQlNCY0JLQntCICivQnNCV0JTQkNCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQnNCV0JTQkNCa0J7QktCY0Isg0JHQntCT0JTQkNCdCivQnNCV0JTQkNCa0J7QktCY0Isg0JTQkNCc0JjQoAor0JzQldCU0JDQmtCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQnNCV0JTQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQldCU0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JXQlNCQ0JrQntCS0JjQiyDQmNCb0JTQmNCa0J4KK9Cc0JXQlNCQ0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCV0JTQkNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQldCU0JDQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQldCU0JDQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQldCU0JDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JXQlNCQ0JrQntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQnNCV0JTQkNCa0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JzQldCU0JDQmtCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JzQldCU0JDQnSDQlNCg0JDQk9CY0IrQkAor0JzQldCU0JDQnSDQnNCQ0J3QntCI0JvQngor0JzQldCU0JDQnSDQnNCY0JvQldCd0JrQngor0JzQldCU0JDQnSDQnNCY0JvQldCd0JrQngor0JzQldCU0JDQnSDQnNCY0JvQldCd0JrQngor0JzQldCU0JDQnSDQnNCY0JvQntCg0JDQlAor0JzQldCU0JDQnSDQnNCY0KDQntCh0JvQkNCSCivQnNCV0JTQkNCdINCg0JDQlNCV0J3QmtCeCivQnNCV0JTQkNCdINCh0JvQkNCS0JjQptCQCivQnNCV0JTQkNCdINCh0J/QkNCh0J7QiNCVCivQnNCV0JTQkNCdINCS0JXQm9CY0JzQmNCgCivQnNCV0JTQkNCdINCS0JvQkNCU0JjQodCb0JDQkgor0JzQldCU0JDQndCe0JLQodCa0Jgg0JHQntCg0JjQoQor0JzQldCU0JDQoCDQktCj0KfQmtCeCivQnNCV0JTQkNCg0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCV0JTQkNCg0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCV0JTQkNCg0JXQktCY0Isg0KHQotCQ0J3QkAor0JzQldCU0JXQndCY0KbQkCDQgtCj0KDQgtCY0KbQkAor0JzQldCU0JXQndCY0KbQkCDQgtCj0KDQngor0JzQldCU0JXQndCY0KbQkCDQkdCe0KHQmNCJ0JrQkAor0JzQldCU0JXQndCY0KbQkCDQnNCY0JvQmNCh0JDQkgor0JzQldCU0JXQndCY0KbQkCDQoNCQ0JTQntCc0JjQoAor0JzQldCU0JXQndCY0KbQkCDQodCd0JXQltCQ0J3QkAor0JzQldCU0JXQndCY0KbQkCDQodCd0JXQltCQ0J3QkAor0JzQldCU0JXQndCY0KbQkCDQktCe0IjQmNCh0JvQkNCSCivQnNCV0JTQldCd0JjQptCQINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JXQlNCV0KAg0ILQntCg0ILQlQor0JzQldCU0JXQoCDQiNCV0JvQldCd0JAKK9Cc0JXQlNCY0Isg0ILQo9Cg0JAKK9Cc0JXQlNCY0Isg0ILQo9Cg0JAKK9Cc0JXQlNCY0Isg0JHQntCo0JrQngor0JzQldCU0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JXQlNCY0Isg0JHQntCT0JTQkNCdCivQnNCV0JTQmNCLINCR0J7QoNCY0JLQntCICivQnNCV0JTQmNCLINCR0KDQkNCd0JrQkAor0JzQldCU0JjQiyDQlNCQ0J3QlQor0JzQldCU0JjQiyDQlNCQ0J3QlQor0JzQldCU0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JXQlNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JXQlNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQldCU0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0JzQldCU0JjQiyDQlNCj0KjQkNCdCivQnNCV0JTQmNCLINCU0KPQqNCQ0J0KK9Cc0JXQlNCY0Isg0JPQntCI0JrQngor0JzQldCU0JjQiyDQmNCb0JjQiNCQCivQnNCV0JTQmNCLINCY0JvQmNCI0JAKK9Cc0JXQlNCY0Isg0JjQm9CY0IjQkAor0JzQldCU0JjQiyDQm9CQ0JfQkNCgCivQnNCV0JTQmNCLINCc0JjQi9CeCivQnNCV0JTQmNCLINCc0JjQm9CQ0J0KK9Cc0JXQlNCY0Isg0JzQmNCb0JDQnQor0JzQldCU0JjQiyDQnNCY0JvQlQor0JzQldCU0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JXQlNCY0Isg0JzQmNCb0JrQkAor0JzQldCU0JjQiyDQnNCY0JvQntCoCivQnNCV0JTQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCV0JTQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCV0JTQmNCLINCc0JjQntCU0KDQkNCTCivQnNCV0JTQmNCLINCc0JjQoNCQCivQnNCV0JTQmNCLINCc0JjQoNCI0JDQndCQCivQnNCV0JTQmNCLINCc0JjQoNCa0J4KK9Cc0JXQlNCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQnNCV0JTQmNCLINCd0JjQmtCe0JvQkAor0JzQldCU0JjQiyDQndCY0JrQntCb0JAKK9Cc0JXQlNCY0Isg0J3QmNCa0J7Qm9CQCivQnNCV0JTQmNCLINCd0JjQmtCe0JvQkAor0JzQldCU0JjQiyDQn9CV0KLQkNCgCivQnNCV0JTQmNCLINCg0JDQlNCVCivQnNCV0JTQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCV0JTQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCV0JTQmNCLINCh0JDQktCeCivQnNCV0JTQmNCLINCh0JjQnNCeCivQnNCV0JTQmNCLINCh0JvQkNCS0JrQngor0JzQldCU0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JzQldCU0JjQiyDQodCc0JjQidCQCivQnNCV0JTQmNCLINCh0KLQldCS0JDQnQor0JzQldCU0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCV0JTQmNCLINCi0JDQotCI0JDQndCQCivQnNCV0JTQmNCLINCX0JTQoNCQ0JLQmtCeCivQnNCV0JTQmNCLINCX0JTQoNCQ0JLQmtCeCivQnNCV0JTQmNCLINCX0J7QoNCQ0J0KK9Cc0JXQlNCY0Isg0JfQntCg0JAKK9Cc0JXQlNCe0Kgg0KPQoNCe0KgKK9Cc0JXQlNCe0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCV0JTQntCI0JXQktCY0Isg0JzQmNCb0JXQotCQCivQnNCV0JTQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCV0JTQntCS0JDQoNCh0JrQmCDQpNCg0JDQitCQCivQnNCV0JTQntCS0JDQoNCh0JrQmCDQnNCY0KjQkAor0JzQldCU0J7QktCQ0KDQodCa0Jgg0J/QmNCg0J7QqNCa0JAKK9Cc0JXQlNCe0JLQkNCg0KHQmtCYINCf0JjQoNCe0KjQmtCQCivQnNCV0JTQntCS0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9Cc0JXQlNCe0JLQmNCLINCf0KDQldCU0KDQkNCTINCU0KAKK9Cc0JXQlNCj0IrQkNCd0JjQnSDQpNCV0JHQoNCe0J3QkAor0JzQldCU0KPQitCQ0J3QmNCdINCY0KHQmNCU0J7QoAor0JzQldCU0KPQoNCY0Isg0JTQkNCd0JjQm9CeCivQnNCV0JTQo9Cg0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQnNCV0JTQo9Cg0JjQiyDQk9Ce0KDQkNCdCivQnNCV0JTQo9Cg0JjQiyDQmNCg0JXQndCQCivQnNCV0JTQo9Cg0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JXQlNCj0KDQmNCLINCa0J7QodCi0JAKK9Cc0JXQlNCj0KDQmNCLINCc0JjQm9CY0JLQntCICivQnNCV0JTQo9Cg0JjQiyDQn9CV0KLQkNCgCivQnNCV0JTQo9Cg0JjQiyDQodCc0JjQidCQCivQnNCV0JTQo9Cg0JjQiyDQl9Cb0JDQotCQCivQnNCV0JTQktCV0JTQntCS0JjQiyDQlNCg0JDQk9CQCivQnNCV0JPQm9CQ0Igg0JHQntCh0JjQidCa0JAKK9Cc0JXQpdCQ0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JXQpdCQ0J3Qj9CY0KHQmtCYINCS0JXQndCa0J4KK9Cc0JXQpdCc0JXQotCYINCl0JjQodCV0J0KK9Cc0JXQpdCc0JXQotCYINCg0JDQpNCV0KIKK9Cc0JXQpdCc0JXQotCe0Igg0KXQkNCh0JDQnQor0JzQldCI0JjQiyDQndCV0JLQldCd0JrQkAor0JzQldCa0JXQitCY0KjQkNCmINCS0JXQodCV0JvQmNCdCivQnNCV0JrQldCK0JjQqNCQ0KYg0JfQntCg0JDQnQor0JzQldCa0JjQiyDQodCe0KTQmNCI0JAKK9Cc0JXQmtCY0J3QlNCQINCc0JDQoNCY0IjQkNCdINCU0KAKK9Cc0JXQmtCY0J3QlNCQINCc0JjQoNCI0JDQndCQCivQnNCV0JrQmNCd0JjQiyDQkNCd0KLQlQor0JzQldCa0JjQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JXQmtCY0J3QmNCLINCi0J7QndCa0JAKK9Cc0JXQm9CQ0KAg0JDQndCU0KDQkNCoCivQnNCV0JvQkNCgINCI0JXQm9CV0J3QkAor0JzQldCb0JDQoCDQidCj0JTQldCS0JjQogor0JzQldCb0JXQkyDQiNCQ0J3QmtCeCivQnNCV0JvQldCTINCI0J7QktCQ0J0KK9Cc0JXQm9CV0JMg0IjQntCS0JDQnQor0JzQldCb0JXQkyDQnNCY0KjQkAor0JzQldCb0JXQkyDQktCb0JDQlNCY0JzQmNCgCivQnNCV0JvQldCg0KIg0JLQldCd0JTQldCbCivQnNCV0JvQmNCd0Jog0JTQo9Co0JDQndCa0JAKK9Cc0JXQm9CY0J3QmiDQiNCe0KXQkNCdCivQnNCV0InQkCDQiNCj0JvQmNCI0JDQndCQCivQnNCV0InQmtCj0KLQmCDQpNCV0KDQldCd0KYKK9Cc0JXQidCa0KPQotCYINCI0J7QltCV0KQKK9Cc0JXQidCa0KPQotCYINCa0JDQoNCb0J4KK9Cc0JXQidCa0KPQotCYINCe0KDQkdCQ0J0KK9Cc0JXQidCd0JjQmiDQmNCb0JjQiNCQCivQnNCV0InQndCY0JrQntCSINCU0JXQodCQ0J3QmtCQCivQnNCV0JvQmtCj0KEg0JHQntCW0JAKK9Cc0JXQm9Ca0KPQoSDQkdCe0KDQmNCS0J7QiAor0JzQldCb0JrQo9ChINCa0JDQotCY0KbQkAor0JzQldCb0JrQo9ChINCc0JjQoNCI0JDQndCQCivQnNCV0JvQmtCj0KEg0JLQntCI0JjQodCb0JDQkgor0JzQldCb0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JXQm9Ce0JLQmNCLINCU0JXQiNCQ0J0KK9Cc0JXQm9Ce0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCV0JvQktCQ0J0g0JXQoNCW0JXQkdCV0KIKK9Cc0JXQm9CS0JDQnSDQn9CV0KLQkNCgCivQnNCV0JvQktCQ0J0g0JfQntCg0JDQnQor0JzQldCb0JLQmNCd0JPQldCgINCQ0JvQntCI0JfQmNCI0JAKK9Cc0JXQnNCQ0KDQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQldCc0JXQlNCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JXQnNCV0JTQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQldCc0JXQlNCe0JLQodCa0Jgg0KPQl9CV0JjQoAor0JzQldCc0JjQqNCV0JLQmNCLINCY0JHQoNCQ0KXQmNCcCivQnNCV0JzQmNCo0JXQktCY0Isg0JjQodCc0JDQmNCbCivQnNCV0JzQmNCo0JXQktCY0Isg0JzQkNCg0IjQkNCdCivQnNCV0JzQmNCo0JXQktCY0Isg0JzQldCl0JzQldCUCivQnNCV0JzQmNCo0JXQktCY0Isg0KDQkNCo0JjQlNCQCivQnNCV0JzQmNCo0Jgg0KLQldCk0JjQmgor0JzQldCc0JjQj9CQ0J0g0KDQldCP0J4KK9Cc0JXQndCC0JDQnSDQqNCQ0J3QlNCe0KAKK9Cc0JXQndCC0JDQnSDQnNCQ0KDQmNCI0JAKK9Cc0JXQndCC0JDQnSDQn9CQ0JLQldCbCivQnNCV0J3QgtCQ0J0g0KDQkNCh0KLQmNCh0JvQkNCSCivQnNCV0J3QlNCV0JHQkNCR0JAg0JHQntCg0JjQodCb0JDQkgor0JzQldCd0JTQldCR0JDQkdCQINCf0JDQndCi0JAKK9Cc0JXQndCU0JXQmyDQldCb0JjQl9CQ0JHQldCi0JAKK9Cc0JXQndCU0KDQkNCT0JjQiyDQgtCe0KDQgtCVCivQnNCV0J3QlNCg0JXQmCDQpdCV0JvQldCd0JAKK9Cc0JXQndCV0KjQmCDQkdCV0JvQkAor0JzQldCd0JXQqNCYINCY0KDQldCd0JAKK9Cc0JXQndCV0KjQmCDQm9CQ0KHQm9CeCivQnNCV0J3Qk9CbINCY0KDQldCdCivQnNCV0J3Qk9CbINCb0JDQiNCe0KgKK9Cc0JXQndCY0KfQkNCd0JjQnSDQiNCV0JvQkAor0JzQldCd0JjQp9CQ0J3QmNCdINCh0KLQldCS0JDQnQor0JzQldCd0JjQi9CQ0J3QmNCdINCf0JXQotCQ0KAKK9Cc0JXQitCQ0Jog0JjQktCQ0J0KK9Cc0JXQndCX0JjQm9CP0JjQiyDQk9CQ0JHQoNCY0IjQldCb0JAKK9Cc0JXQoNCnINCI0JDQndCe0KgKK9Cc0JXQoNCn0JAg0KHQotCV0JLQkNCdCivQnNCV0KDQqCDQnNCY0JvQkNCdCivQnNCV0KDQltCQINCa0JDQoNCe0IkKK9Cc0JXQoNCC0JXQm9Ce0KjQmtCYINCc0JjQm9CY0KbQkAor0JzQldCg0KYg0JXQktCQCivQnNCV0KDQlNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQldCg0JTQntCS0JjQiyDQnNCY0JvQmtCQCivQnNCV0KDQldCYINCa0JDQotCQ0JvQmNCdCivQnNCV0KDQldCYINCc0JDQoNCT0JjQotCQCivQnNCV0KDQk9CQ0J3QpiDQmtCQ0KLQmNCm0JAKK9Cc0JXQoNCT0JXQqCDQiNCQ0J3QntCoCivQnNCV0KDQk9CV0Jsg0JzQkNCg0JjQiNCQCivQnNCV0KDQmNCn0JDQoCDQoNCQ0JTQntCI0JjQptCQCivQnNCV0KDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCV0KDQmtCe0JLQmNCLINCQ0JvQntCI0JcKK9Cc0JXQoNCa0J7QktCY0Isg0JDQndCa0JjQptCQCivQnNCV0KDQmtCe0JLQmNCLINCI0KPQlNCY0KIKK9Cc0JXQoNCa0J7QktCY0Isg0InQo9CU0JXQktCY0KIKK9Cc0JXQoNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCV0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JXQoNCa0J7QktCY0Isg0KHQmNCb0JLQmNCQCivQnNCV0KDQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQktCQCivQnNCV0KDQmtCe0JLQmNCLINCS0JXQoNCQCivQnNCV0KDQmtCj0JvQntCSINCJ0JjQidCQ0J3QkAor0JzQldCg0JrQktCQINCV0JzQkAor0JzQldCg0JrQktCQINCI0J7QltCV0KQKK9Cc0JXQoNCK0JDQmiDQpNCg0JDQitCeCivQnNCV0KHQkNCaINCd0JjQmtCe0JvQkAor0JzQldCh0JDQoNCY0Isg0JPQkNCR0KDQmNCI0JXQm9CQCivQnNCV0KHQkNCg0J7QqCDQqNCQ0J3QlNCe0KAg0JTQoAor0JzQldCh0JDQoNCe0Kgg0ILQo9Cg0JAKK9Cc0JXQodCQ0KDQntCoINCQ0J3QlNCg0JDQqAor0JzQldCh0JDQoNCe0Kgg0JDQoNCf0JDQlAor0JzQldCh0JDQoNCe0Kgg0JDQotCY0JvQkAor0JzQldCh0JDQoNCe0Kgg0JHQkNCb0JDQlgor0JzQldCh0JDQoNCe0Kgg0KTQldCg0JXQndCmCivQnNCV0KHQkNCg0J7QqCDQpNCg0JDQitCQCivQnNCV0KHQkNCg0J7QqCDQk9CV0JfQkAor0JzQldCh0JDQoNCe0Kgg0JPQldCX0JAKK9Cc0JXQodCQ0KDQntCoINCT0J7QoNCQ0J0KK9Cc0JXQodCQ0KDQntCoINCY0KjQotCS0JDQnQor0JzQldCh0JDQoNCe0Kgg0JjQqNCi0JLQkNCdCivQnNCV0KHQkNCg0J7QqCDQmNCb0J7QndCQCivQnNCV0KHQkNCg0J7QqCDQmNCb0J7QndCQCivQnNCV0KHQkNCg0J7QqCDQmNCc0KDQlQor0JzQldCh0JDQoNCe0Kgg0IjQldCb0JXQndCQCivQnNCV0KHQkNCg0J7QqCDQiNCV0JvQmNCm0JAKK9Cc0JXQodCQ0KDQntCoINCI0J7QodCY0KQKK9Cc0JXQodCQ0KDQntCoINCI0J7QodCeCivQnNCV0KHQkNCg0J7QqCDQmtCQ0KDQm9CeCivQnNCV0KHQkNCg0J7QqCDQmtCQ0KLQmNCm0JAKK9Cc0JXQodCQ0KDQntCoINCb0JDQiNCe0KgKK9Cc0JXQodCQ0KDQntCoINCb0JDQodCb0J4KK9Cc0JXQodCQ0KDQntCoINCb0JXQntCdCivQnNCV0KHQkNCg0J7QqCDQnNCY0KXQkNCJCivQnNCV0KHQkNCg0J7QqCDQnNCY0JrQm9Ce0KgKK9Cc0JXQodCQ0KDQntCoINCf0JDQktCb0JUKK9Cc0JXQodCQ0KDQntCoINCf0JjQoNCe0KjQmtCQCivQnNCV0KHQkNCg0J7QqCDQodCi0JXQktCQ0J0KK9Cc0JXQodCQ0KDQntCoINCi0JjQkdCe0KAKK9Cc0JXQodCQ0KDQntCoINCi0JjQkdCe0KAKK9Cc0JXQodCQ0KDQntCoINCX0J7Qm9Ci0JDQnQor0JzQldCh0JDQoNCe0Kgg0JfQntCg0JAg0JTQmNCf0Jsg0JjQndCTCivQnNCV0KHQkNCg0J7QqCDQl9Ce0KDQmNCm0JAKK9Cc0JXQodCQ0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCV0KHQkNCg0J7QktCY0Isg0IjQntCS0JDQnQor0JzQldCh0JDQoNCe0JLQmNCLINCc0JDQoNCT0JjQotCQCivQnNCV0KHQkNCg0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQldCh0JDQoNCe0JLQmNCLINCh0JLQldCi0J7Qm9CY0JoKK9Cc0JXQodCV0KjQkNCdINCT0JXQl9CQCivQnNCV0KHQldCb0I/QmNCI0JAg0JbQmNCS0JrQngor0JzQldCh0JXQm9CP0JjQiNCQINCd0JDQlNCV0JbQlNCQCivQnNCV0KHQldCb0I/QmNCI0JAg0J7QodCi0J7QiNCQCivQnNCV0KHQldCb0I/QmNCI0JAg0KDQkNCI0JrQngor0JzQldCh0JXQm9CP0JjQiNCQINCh0JvQkNCS0JjQptCQCivQnNCV0KHQldCb0I/QmNCI0JAg0KHQotCQ0J3QmNCc0JjQoAor0JzQldCi0JXQidCh0JrQmCDQodCV0KDQk9CY0IjQlQor0JzQldCi0J7QlNCY0IjQldCS0JjQiyDQnNCY0JvQntCh0JDQkgor0JzQldCX0JUg0IjQo9Cb0JjQiNCQ0J3QkAor0JzQldCX0JXQqCDQmNCc0KDQlQor0JzQldCX0JXQmCDQqNCQ0J3QlNCe0KAKK9Cc0JXQl9CV0Jgg0IjQntCW0JXQpAor0JzQldCX0JXQmCDQm9CQ0JTQmNCh0JvQkNCSCivQnNCV0JfQldCYINCb0JDQodCb0J4KK9Cc0JXQl9CV0Jgg0KHQndCV0JbQkNCd0JAKK9Cc0JXQl9CV0Jgg0KHQotCV0JLQkNCdINCU0KAKK9Cc0JXQl9CV0Jgg0KHQotCV0JLQkNCdCivQnNCY0KfQkCDQiNCe0KHQmNCfCivQnNCY0KfQkCDQiNCe0JLQkNCdCivQnNCY0KfQmNCLLdCC0JXQoNCc0JDQndCe0JIg0JLQmNCU0JAKK9Cc0JjQp9CY0Isg0JHQntCo0JrQngor0JzQmNCn0JjQiyDQkdCe0KjQmtCeCivQnNCY0KfQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0KfQmNCLLdCc0JjQotCg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQnNCY0KfQmNCLINCd0JXQlNCV0InQmtCeCivQnNCY0KfQmNCLINCh0J3QldCW0JDQndCQCivQnNCY0KfQmNCLINCh0J7QpNCY0IjQkAor0JzQmNCn0JjQiyDQl9Ce0KDQkAor0JzQmNCn0KPQoNCY0J0g0IjQntCh0JjQnwor0JzQmNCo0KfQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQqNCn0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0KjQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQqNCn0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCo0KfQldCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KjQp9CV0JLQmNCLINCY0JLQkNCd0JrQkAor0JzQmNCo0KfQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQqNCn0JXQktCY0Isg0JzQmNCm0JAKK9Cc0JjQqNCn0JXQktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Cc0JjQqNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCo0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQqNCn0JXQktCY0Isg0J7Qm9CT0JAKK9Cc0JjQqNCn0JXQktCY0Isg0J/QldCi0JDQoAor0JzQmNCo0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0KjQp9CV0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQqNCn0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCo0KfQldCS0JjQiyDQl9Cb0JDQotCa0J4KK9Cc0JjQqNCQ0J0g0JvQkNCX0JDQoAor0JzQmNCo0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQqNCQ0J3QntCS0JjQiyDQodCY0JzQngor0JzQmNCo0JXQm9CY0Isg0IjQldCk0KLQkAor0JzQmNCo0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCo0JjQiyDQgtCj0KDQkAor0JzQmNCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCo0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQnNCY0KjQmNCLINCQ0J3QgtCV0JvQmtCQCivQnNCY0KjQmNCLINCQ0J3QkAor0JzQmNCo0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JjQqNCY0Isg0JHQo9CU0JjQnNCY0KAKK9Cc0JjQqNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQqNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQqNCY0Isg0JXQotCI0JXQnQor0JzQmNCo0JjQiyDQk9Ce0KDQkNCdCivQnNCY0KjQmNCLINCY0JLQkNCdCivQnNCY0KjQmNCLINCY0JLQkNCdCivQnNCY0KjQmNCLINCI0JDQk9Ce0JTQkAor0JzQmNCo0JjQiyDQiNCQ0JrQntCSCivQnNCY0KjQmNCLINCI0JDQodCc0JjQndCQCivQnNCY0KjQmNCLINCI0J7QodCY0J8KK9Cc0JjQqNCY0Isg0IjQntCS0JDQnQor0JzQmNCo0JjQiyDQm9CQ0JfQkNCgCivQnNCY0KjQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQqNCY0Isg0JvQmNCd0JrQkAor0JzQmNCo0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQqNCY0Isg0InQo9CR0J4KK9Cc0JjQqNCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0KjQmNCLINCc0JDQoNCa0J4KK9Cc0JjQqNCY0Isg0JzQmNCb0JDQnQor0JzQmNCo0JjQiyDQnNCY0JvQkNCdCivQnNCY0KjQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQqNCY0Isg0JzQmNCb0JDQnQor0JzQmNCo0JjQiyDQnNCY0JvQkNCdCivQnNCY0KjQmNCLINCc0JjQm9Ce0KHQkNCS0JrQkAor0JzQmNCo0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQmNCo0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCo0JjQiyDQnNCY0J7QnNCY0KAKK9Cc0JjQqNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQqNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCo0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0KjQmNCLINCd0JDQlNCQCivQnNCY0KjQmNCLINCd0JXQndCQ0JQKK9Cc0JjQqNCY0Isg0J3QldCh0KLQntCgCivQnNCY0KjQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCo0JjQiyDQn9CV0KLQkNCgCivQnNCY0KjQmNCLINCf0KDQldCU0KDQkNCTCivQnNCY0KjQmNCLINCg0JDQlNCVCivQnNCY0KjQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cc0JjQqNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JzQmNCo0JjQiyDQoNCQ0JTQntCI0JrQkAor0JzQmNCo0JjQiyDQoNCQ0J3QmtCeCivQnNCY0KjQmNCLINCh0JDQktCQCivQnNCY0KjQmNCLINCh0JvQkNCS0JrQngor0JzQmNCo0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0KjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQqNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCo0JjQiyDQodCe0KTQmNCI0JAKK9Cc0JjQqNCY0Isg0KHQotCY0J/Qngor0JzQmNCo0JjQiyDQodCi0IjQldCf0JDQnQor0JzQmNCo0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0KjQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQqNCY0Isg0KLQntCU0J7QoCDQlNCgCivQnNCY0KjQmNCLINCi0KPQk9Ce0JzQmNCgCivQnNCY0KjQmNCLINCS0JDQodCQCivQnNCY0KjQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cc0JjQqNCY0Isg0JLQm9CQ0JTQmNCm0JAKK9Cc0JjQqNCY0Isg0JLQntCI0JjQnQor0JzQmNCo0JjQiyDQl9CU0KDQkNCS0JrQngor0JzQmNCo0JjQiyDQl9Ce0KDQkNCdCivQnNCY0KjQmNCLINCX0J7QoNCQCivQnNCY0KjQmNCLINCX0J7QoNCY0KbQkAor0JzQmNCo0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQnNCY0KjQmNCd0KHQmtCYINCI0JXQm9CV0J3QkAor0JzQmNCo0JrQkNCgINCI0J7QktCQ0J0KK9Cc0JjQqNCa0JXQidCY0J0g0JHQntCo0JrQngor0JzQmNCo0JrQmNCLINCo0JjQnNCj0J0KK9Cc0JjQqNCa0JjQiyDQlNCj0KjQkNCdCivQnNCY0KjQmtCY0Isg0JjQktCQ0J0KK9Cc0JjQqNCa0JjQiyDQnNCY0JvQkNCdCivQnNCY0KjQmtCY0Isg0KDQkNCI0JrQngor0JzQmNCo0JrQmNCLINCg0JDQndCa0J4KK9Cc0JjQqNCa0JjQiyDQodCS0JXQotCY0KHQm9CQ0JLQmtCQCivQnNCY0KjQmtCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cc0JjQqNCa0JjQi9CV0JLQmNCLINCR0J7QoNCY0JLQntCICivQnNCY0KjQmtCJ0JjQnSDQmtCQ0KLQmNCm0JAKK9Cc0JjQqNCa0J7QkiDQgtCj0KDQgtCY0J3QmtCQCivQnNCY0KjQmtCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQqNCa0J7QkiDQkNCd0JPQldCb0JjQndCQCivQnNCY0KjQmtCe0JIg0JDQndCa0JAKK9Cc0JjQqNCa0J7QkiDQkNCd0JrQmNCm0JAKK9Cc0JjQqNCa0J7QkiDQkNCS0KDQkNCcCivQnNCY0KjQmtCe0JIg0JHQmNCJ0JDQndCQCivQnNCY0KjQmtCe0JIg0JHQntCI0JrQkAor0JzQmNCo0JrQntCSINCR0KDQkNCd0JjQnNCY0KAKK9Cc0JjQqNCa0J7QkiDQkdCg0JDQndCa0J4KK9Cc0JjQqNCa0J7QkiDQmNCS0JjQptCQCivQnNCY0KjQmtCe0JIg0IjQntCS0JDQnQor0JzQmNCo0JrQntCSINCa0JDQotCQ0KDQmNCd0JAKK9Cc0JjQqNCa0J7QkiDQmtCQ0KLQkNCg0JjQndCQCivQnNCY0KjQmtCe0JIg0InQo9CR0JjQptCQCivQnNCY0KjQmtCe0JIg0InQo9CR0JjQptCQCivQnNCY0KjQmtCe0JIg0JzQkNCa0KHQkAor0JzQmNCo0JrQntCSINCc0JDQoNCY0KbQkAor0JzQmNCo0JrQntCSINCc0JjQm9Ce0KgKK9Cc0JjQqNCa0J7QkiDQnNCY0JvQntCS0JDQnQor0JzQmNCo0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQqNCa0J7QkiDQndCQ0JTQkAor0JzQmNCo0JrQntCSINCd0JXQktCV0J3QmtCQCivQnNCY0KjQmtCe0JIg0J3QmNCa0J7Qm9CQCivQnNCY0KjQmtCe0JIg0J3QntCS0JAKK9Cc0JjQqNCa0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JzQmNCo0JrQntCSINCh0JDQktCQINCU0JjQn9CbINCY0J3Qkwor0JzQmNCo0JrQntCSINCh0JDQktCQCivQnNCY0KjQmtCe0JIg0KHQotCQ0J3QmtCQCivQnNCY0KjQmtCe0JIg0KHQotCV0JLQkNCdCivQnNCY0KjQmtCe0JIg0JLQldCh0J3QkAor0JzQmNCo0JrQntCSINCS0JXQodCd0JAKK9Cc0JjQqNCa0J7QkiDQl9CQ0JPQntCg0JrQkAor0JzQmNCo0JrQntCSINCX0JvQkNCi0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JbQmNCS0JrQngor0JzQmNCo0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0KjQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQqNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCo0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JzQmNCo0JrQntCS0JjQiyDQkNCd0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JDQndCQCivQnNCY0KjQmtCe0JLQmNCLINCQ0KDQodCQCivQnNCY0KjQmtCe0JLQmNCLINCR0JvQkNCW0J4KK9Cc0JjQqNCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQqNCa0J7QktCY0Isg0JHQntCI0JDQndCQCivQnNCY0KjQmtCe0JLQmNCLINCR0J7QiNCQ0J0KK9Cc0JjQqNCa0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9Cc0JjQqNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0KjQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCo0JrQntCS0JjQiyDQptCS0JXQotCa0J4KK9Cc0JjQqNCa0J7QktCY0Isg0JTQkNCd0KfQmNCa0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JTQldCb0JjQndCa0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0KjQmtCe0JLQmNCLINCU0KDQkNCT0J7QoNCQ0JQKK9Cc0JjQqNCa0J7QktCY0Isg0JTQo9CR0KDQkNCS0JrQkAor0JzQmNCo0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KjQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JjQm9Ce0J3QmtCQCivQnNCY0KjQmtCe0JLQmNCLINCI0J7QptCQCivQnNCY0KjQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQqNCa0J7QktCY0Isg0JvQkNCX0JDQoAor0JzQmNCo0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQqNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCY0KjQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JjQqNCa0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQqNCa0J7QktCY0Isg0JzQmNCb0JrQkAor0JzQmNCo0JrQntCS0JjQiyDQnNCY0JvQntCoCivQnNCY0KjQmtCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0JzQmNCo0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCo0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCo0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCo0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0KjQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQqNCa0J7QktCY0Isg0JzQmNCg0JrQngor0JzQmNCo0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cc0JjQqNCa0J7QktCY0Isg0J3QldCd0JDQlAor0JzQmNCo0JrQntCS0JjQiyDQndCY0IvQmNCk0J7QoAor0JzQmNCo0JrQntCS0JjQiyDQntCR0KDQkNCUCivQnNCY0KjQmtCe0JLQmNCLINCe0JvQk9CY0KbQkAor0JzQmNCo0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0KjQmtCe0JLQmNCLINCg0JDQlNCVCivQnNCY0KjQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCIINCc0KAKK9Cc0JjQqNCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCo0JrQntCS0JjQiyDQoNCQ0J3QmtCeCivQnNCY0KjQmtCe0JLQmNCLINCh0JDQqNCQCivQnNCY0KjQmtCe0JLQmNCLINCh0JDQktCa0JAKK9Cc0JjQqNCa0J7QktCY0Isg0KHQotCQ0J3QmtCQCivQnNCY0KjQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCo0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQqNCa0J7QktCY0Isg0KLQkNCK0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JzQmNCo0JrQntCS0JjQiyDQktCY0IjQldCd0KbQldCh0JvQkNCSCivQnNCY0KjQmtCe0JLQmNCLINCS0KPQmtCY0KbQkAor0JzQmNCo0JrQntCS0JjQiyDQktCj0JrQmNCm0JAKK9Cc0JjQqNCa0J7QktCY0Isg0JfQoNCd0JrQkAor0JzQmNCo0JrQntCS0JjQpiDQidCj0JTQldCS0JjQogor0JzQmNCo0JrQntCS0JjQpiDQl9Cj0JfQkNCd0JAKK9Cc0JjQqNCa0KPQm9CY0J0g0JTQoNCQ0JPQmNCo0JAKK9Cc0JjQqNCa0KPQm9CY0J0g0J3QkNCU0JAKK9Cc0JjQqNCa0KPQm9CY0J0g0J3QmNCa0J7Qm9CQCivQnNCY0KjQidCV0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCo0JvQntCSINCJ0KPQkdCY0KbQkAor0JzQmNCo0J7QktCY0Isg0JzQmNCg0JrQngor0JzQmNCo0J7QktCh0JrQmCDQoNCY0KHQotCeCivQnNCY0KjQo9Cb0JjQiyDQn9CV0KLQkNCgCivQnNCY0KjQo9Cb0JjQiyDQktCY0JTQkNCaCivQnNCY0KjQo9Cb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCY0KjQo9Cg0JAg0JjQktCQ0J0KK9Cc0JjQi9CQ0KjQldCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0IvQkNCo0JXQktCY0Isg0KHQkNCS0JAKK9Cc0JjQi9CQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQi9CQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0JzQmNCL0JDQndCe0JLQmNCLINCc0JDQoNCI0JDQnQor0JzQmNCL0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCL0JXQktCY0Isg0KHQntCk0JjQiNCQCivQnNCY0IvQmNCLINCC0J7QoNCC0JUKK9Cc0JjQi9CY0Isg0ILQo9Cg0ILQmNCd0JAKK9Cc0JjQi9CY0Isg0JHQntCI0JDQndCQCivQnNCY0IvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCL0JjQiyDQkdCg0JDQndCa0JAKK9Cc0JjQi9CY0Isg0JHQoNCQ0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0JzQmNCL0JjQiyDQkdCg0JDQndCeCivQnNCY0IvQmNCLINCm0JLQmNCI0JXQotCY0J0KK9Cc0JjQi9CY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQmNCL0JjQiyDQlNCj0KjQkNCdINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQnNCY0IvQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQi9CY0Isg0JTQo9Co0JDQnQor0JzQmNCL0JjQiyDQmNCb0JjQiNCQCivQnNCY0IvQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCY0IvQmNCLINCa0J7QndCh0KLQkNCd0KLQmNCd0JAKK9Cc0JjQi9CY0Isg0JrQoNCh0KLQkAor0JzQmNCL0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCL0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCL0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQi9CY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQi9CY0Isg0JzQmNCb0JDQndCQCivQnNCY0IvQmNCLINCc0JjQm9CV0J3QkAor0JzQmNCL0JjQiyDQnNCY0JvQldCd0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQi9CY0Isg0JzQmNCb0JjQptCQCivQnNCY0IvQmNCLINCc0JjQm9CY0KbQkAor0JzQmNCL0JjQiyDQnNCY0JvQmtCQCivQnNCY0IvQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0IvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQi9CY0Isg0J7Qm9CY0JLQldCg0JAKK9Cc0JjQi9CY0Isg0J7Ql9Cg0JXQnQor0JzQmNCL0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQmNCL0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQnNCY0IvQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0IvQmNCLINCg0J7QlNCe0InQo9CRCivQnNCY0IvQmNCLINCh0JvQkNCS0JjQptCQCivQnNCY0IvQmNCLINCh0JvQkNCS0JrQngor0JzQmNCL0JjQiyDQodCc0JjQidCQCivQnNCY0IvQmNCLINCh0KLQntCI0JDQnQor0JzQmNCL0JjQiyDQodCj0JfQkNCd0JAKK9Cc0JjQi9CY0Isg0JLQldCb0JjQnNCY0KAKK9Cc0JjQi9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCL0JjQnSDQltCQ0KDQmtCeCivQnNCY0IvQmNCdINCC0J7QoNCC0JUKK9Cc0JjQi9CY0J0g0JTQo9Co0JrQngor0JzQmNCL0JjQnSDQm9CQ0JfQkAor0JzQmNCL0JjQnSDQnNCY0JvQmNCm0JAKK9Cc0JjQi9CY0J0g0KDQkNCU0J7QktCQ0J0KK9Cc0JjQi9CY0J0g0KPQoNCe0KgKK9Cc0JjQi9Ca0J7QktCY0Isg0JzQmNCb0JjQndCa0J4KK9Cc0JjQi9Ce0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0IvQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0IvQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQmNCL0J7QktCY0Isg0IjQkNCd0JrQngor0JzQmNCL0J7QktCY0Isg0JrQntCh0KLQkNCU0JjQnSDQlNCgCivQnNCY0IvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0IvQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCL0J7QktCY0Isg0J3QldCR0J7QiNCo0JAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0IvQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkyDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQi9Ce0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9Cc0JjQi9Ce0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQnNCY0IvQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JzQmNCL0KPQndCe0JLQmNCLINCc0JDQoNCY0KbQkAor0JzQmNCL0KPQndCe0JLQmNCLINCh0KLQkNCd0JrQkAor0JzQmNCL0KPQndCe0JLQmNCLINCS0JvQkNCU0J4KK9Cc0JjQi9Cj0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCS0JrQkAor0JzQmNCQ0JLQldCmINCc0JDQi9CQ0KgKK9Cc0JjQptCQ0Jgg0JzQkNCg0JjQiNCQCivQnNCY0KbQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCm0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0KbQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQptCY0Isg0JTQo9Co0JDQnQor0JzQmNCm0JjQiyDQmtCg0KHQotCQINCU0KAKK9Cc0JjQptCY0Isg0JzQmNCg0JrQngor0JzQmNCm0JrQntCSINCR0JvQkNCT0J7QiAor0JzQmNCm0JrQntCSINCV0JvQldCd0JAKK9Cc0JjQlNCYINCd0JXQndCQ0JQKK9Cc0JjQlNCY0Isg0ILQntCg0ILQlQor0JzQmNCU0JjQiyDQkdCe0KDQmNCS0J7QiAor0JzQmNCU0JjQiy3QlNCj0J3QgtCV0KDQodCa0Jgg0JzQmNCb0JXQndCQCivQnNCY0JTQmNCLINCI0JXQm9CV0J3QkAor0JzQmNCU0JjQiyDQiNCe0JLQkNCdCivQnNCY0JTQmNCLINCJ0KPQkdCY0KjQkAor0JzQmNCU0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCU0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCU0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JTQmNCLINCh0KLQldCS0JDQnQor0JzQmNCU0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0JTQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQlNCY0Isg0JfQntCg0JrQkAor0JzQmNCT0JvQmNCd0KbQmCDQkdCQ0KDQkdCQ0KDQkAor0JzQmNCT0JvQmNCd0KbQmCDQldCi0JXQm9Ca0JAKK9Cc0JjQk9Cb0JjQndCm0Jgg0IjQldCb0JXQndCQCivQnNCY0JPQm9CY0J3QptCYINCb0JDQodCb0J4KK9Cc0JjQpdCQ0JjQm9Ce0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQgtCe0JrQngor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JPQntCg0JDQnQor0JzQmNCl0JDQmNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JrQntCh0KLQkNCU0JjQnQor0JzQmNCl0JDQmNCb0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQnNCY0JvQntCoCivQnNCY0KXQkNCY0JvQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCl0JDQmNCb0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JzQmNCl0JDQmNCb0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JzQmNCl0JDQmNCb0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCl0JDQmNCb0J7QktCY0Isg0JLQldCb0JjQkdCe0KAKK9Cc0JjQpdCQ0JjQm9Ce0JLQmNCLINCS0JXQoNCQINCU0KAKK9Cc0JjQpdCQ0JjQm9Ce0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQpdCQ0JjQm9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQpdCQ0IjQidCV0JLQmNCLINCg0JDQotCe0JzQmNCgCivQnNCY0KXQkNCI0JvQniDQidCQ0JLQngor0JzQmNCl0JDQiNCb0J7QkiDQltCY0JLQkAor0JzQmNCl0JDQiNCb0J7QkiDQgtCe0KDQgtCVCivQnNCY0KXQkNCI0JvQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9Cc0JjQpdCQ0IjQm9Ce0JIg0JHQntCT0JTQkNCdCivQnNCY0KXQkNCI0JvQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QkiDQlNCg0JDQk9CQ0J3QkAor0JzQmNCl0JDQiNCb0J7QkiDQlNCg0JDQk9CQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JIg0JTQo9Co0JDQnQor0JzQmNCl0JDQiNCb0J7QkiDQmNCS0JDQnQor0JzQmNCl0JDQiNCb0J7QkiDQiNCe0JLQkNCd0JrQkAor0JzQmNCl0JDQiNCb0J7QkiDQm9CQ0JfQkNCgCivQnNCY0KXQkNCI0JvQntCSINCJ0JjQidCQ0J3QkAor0JzQmNCl0JDQiNCb0J7QkiDQnNCQ0KDQmNCI0JAKK9Cc0JjQpdCQ0IjQm9Ce0JIg0JzQmNCb0JDQnQor0JzQmNCl0JDQiNCb0J7QkiDQnNCY0JvQntCoCivQnNCY0KXQkNCI0JvQntCSINCc0JjQm9Ce0KDQkNCUCivQnNCY0KXQkNCI0JvQntCSINCc0JjQm9Ce0JLQkNCdCivQnNCY0KXQkNCI0JvQntCSINCc0JjQm9Ce0JLQkNCdCivQnNCY0KXQkNCI0JvQntCSINCc0JjQoNCe0KHQm9CQ0JLQkAor0JzQmNCl0JDQiNCb0J7QkiDQndCY0JrQntCb0JAKK9Cc0JjQpdCQ0IjQm9Ce0JIg0J7Qm9CT0JAKK9Cc0JjQpdCQ0IjQm9Ce0JIg0KDQkNCU0J7QiNCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JIg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QkiDQodCf0JDQodCe0IjQlQor0JzQmNCl0JDQiNCb0J7QkiDQktCV0KDQkAor0JzQmNCl0JDQiNCb0J7QkiDQktCV0KHQldCb0JjQnQor0JzQmNCl0JDQiNCb0J7QkiDQktCY0JTQntCh0JDQkgor0JzQmNCl0JDQiNCb0J7QkiDQl9Ce0KDQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KfQldCU0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCW0JXQidCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCW0JjQktCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQgtCj0KDQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCQ0J3QmNCm0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCQ0J3QmtCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCe0JPQntCJ0KPQkSDQlNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0JDQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCV0IjQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCV0IjQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCV0JvQmNCI0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEg0JTQoCDQm9CV0JrQkNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCg0JXQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQlNCj0KjQmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQldCg0J3QldCh0KIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCk0KDQkNCK0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCT0J7QoNCU0JDQndCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JjQm9CVCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmNCS0JDQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCI0JDQodCc0JjQndCQINCU0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCI0JXQm9CQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQiNCV0JvQldCd0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQldCb0JjQptCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCI0J7QmtCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmtCe0KHQotCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmtCg0JjQodCi0JjQndCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQmtCh0JXQndCY0IjQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JvQkNCX0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCb0JXQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCb0JXQndCa0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCJ0KPQkdCY0KjQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0InQo9CR0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JDQoNCT0JjQotCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCL0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JXQotCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQlQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0JjQptCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQm9Cj0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQoNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQnNCY0KDQntCJ0KPQkSDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQndCQ0JTQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCd0JDQlNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQndCQ0JTQmNCg0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCd0J7QktCQ0JoKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCe0JvQmNCS0JXQoNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQntCh0KLQntCI0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCg0JDQlNCVCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KDQo9CW0JjQptCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0JDQitCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCQ0JLQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0JDQktCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCQ0JLQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCb0JDQktCe0InQo9Cf0JrQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQnNCY0InQkNCd0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0J7QpNCY0IjQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQoNCC0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0KDQkdCY0KHQm9CQ0JIg0JTQoCDQm9CV0JrQkNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCg0JXQotCV0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0KDQldCi0JrQngor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JLQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQotCV0JLQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQotCV0JLQmNCm0JAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCh0KLQntCI0JDQnQor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KHQotCe0IjQkNCdCivQnNCY0KXQkNCI0JvQntCS0JjQiy3QodCj0JHQmNCLINCI0J7QktCQ0J3QmtCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQotCj0JPQntCc0JjQoAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0KPQoNCe0KgKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCS0JDQodCQCivQnNCY0KXQkNCI0JvQntCS0JjQiyDQktCV0KDQkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQmNCLINCX0J7QoNCQ0J3QkAor0JzQmNCl0JDQiNCb0J7QktCY0Isg0JfQntCg0JjQptCQCivQnNCY0KXQkNCI0JvQntCS0KHQmtCYINCJ0KPQkdCY0J3QmtCQCivQnNCY0KXQkNCI0JvQntCS0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQpdCQ0IjQm9Ce0JLQodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCl0JDQm9CQ0KfQmtCYINCc0JjQpdCQ0JjQm9CeCivQnNCY0KXQkNCb0JDQp9Ca0Jgg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCl0JDQm9CV0KYg0JDQndCT0JXQm9CY0J3QkAor0JzQmNCl0JDQm9CV0KYg0JzQkNCg0JjQiNCQCivQnNCY0KXQkNCb0JXQmiDQmNCS0JDQnQor0JzQmNCl0JDQm9CV0Jog0JzQkNCg0JjQiNCQCivQnNCY0KXQkNCb0JXQndCa0J4g0KHQotCV0JLQkNCdCivQnNCY0KXQkNCb0JjQiyDQn9CV0KLQkNCgCivQnNCY0KXQkNCb0JjQmi3QotCY0KAg0JfQo9CX0JDQndCQCivQnNCY0KXQkNCJINCV0KHQotCV0KAKK9Cc0JjQpdCQ0Ikg0JzQkNCg0JjQiNCQINCU0KAKK9Cc0JjQpdCQ0Ikg0JzQmNCl0JDQiNCb0J4g0JTQoAor0JzQmNCl0JDQiSDQnNCY0KDQntCh0JvQkNCSINCU0KAKK9Cc0JjQpdCQ0Ikg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCl0JDQidCn0JXQktCY0Isg0JDQm9Ce0IjQl9CY0IjQlQor0JzQmNCl0JDQidCn0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQpdCQ0InQp9CY0Isg0JPQntCI0JrQngor0JzQmNCl0JDQidCn0JjQiyDQmNCb0JUKK9Cc0JjQpdCQ0InQp9CY0Isg0IjQntCS0JDQnQor0JzQmNCl0JDQidCn0JjQiyDQiNCe0JLQkNCdCivQnNCY0KXQkNCJ0KfQmNCLINCb0KPQmtCQCivQnNCY0KXQkNCJ0KfQmNCLINCc0JjQotCQ0KAKK9Cc0JjQpdCQ0InQp9CY0Isg0KHQn9CQ0KHQntCI0JUKK9Cc0JjQpdCQ0InQldCSINCW0JXQidCa0J4KK9Cc0JjQpdCQ0InQldCSINCY0JLQkNCdINCU0KAKK9Cc0JjQpdCQ0InQldCSINCh0KLQntCI0JDQnQor0JzQmNCl0JDQidCV0JLQmNCLINCQ0J3QotCe0J0KK9Cc0JjQpdCQ0InQldCS0JjQiyDQldCc0JjQmwor0JzQmNCl0JDQidCV0JLQmNCLINCY0JLQkNCdCivQnNCY0KXQkNCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCl0JDQidCV0JLQmNCLINCg0KPQltCY0KbQkAor0JzQmNCl0JDQidCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQnNCY0KXQkNCJ0KTQmCDQnNCQ0KDQmNCa0JAKK9Cc0JjQpdCQ0InQmCDQnNCQ0KDQmNCI0JAKK9Cc0JjQpdCQ0InQmNCn0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQpdCQ0InQmNCn0JjQiyDQlNCc0JjQotCQ0KAKK9Cc0JjQpdCQ0InQmNCn0JjQiyDQiNCe0JLQkNCd0JrQkAor0JzQmNCl0JDQidCY0KfQmNCLINCh0JjQnNCeCivQnNCY0KXQkNCJ0JjQp9CY0Isg0KLQntCU0JUKK9Cc0JjQpdCQ0InQmNCm0JAg0JDQndCC0JAKK9Cc0JjQpdCQ0InQmNCm0JAg0JHQntCW0J4KK9Cc0JjQpdCQ0InQmNCm0JAg0KbQktCV0KLQmtCeCivQnNCY0KXQkNCJ0JjQptCQINCc0JjQoNCQCivQnNCY0KXQkNCJ0JrQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQpdCQ0InQntCS0KHQmtCYINCU0JDQndCY0JvQngor0JzQmNCl0JDQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCl0JDQm9Ce0JLQmNCLINCT0KDQntCX0JTQkNCd0JAKK9Cc0JjQpdCV0Ikg0KTQoNCQ0IrQngor0JzQmNCl0JXQktCmINCY0JLQkNCd0JrQkAor0JzQmNCl0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCl0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQmNCl0JjQiyDQnNCY0JvQkNCdCivQnNCY0KXQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQpdCY0Isg0JzQmNCb0JXQndCQCivQnNCY0KXQmNCLINCg0JjQodCi0J4KK9Cc0JjQpdCY0Isg0KDQmNCh0KLQngor0JzQmNCl0JjQiyDQodCQ0JLQkCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQpdCY0Isg0JLQldCg0JAKK9Cc0JjQpdCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCl0JjQiyDQktCe0IjQmNCh0JvQkNCS0JrQkAor0JzQmNCl0JjQiyDQl9Ce0KDQkNCdCivQnNCY0KXQm9CY0KYg0J/QldCi0JDQoAor0JzQmNCl0IrQkNCaINCI0J7QkNCa0JjQnAor0JzQmNCl0IrQkNCaINCa0JDQotCY0KbQkAor0JzQmNCl0IrQkNCaINCb0JDQlNCY0KHQm9CQ0JIKK9Cc0JjQpdCK0JDQmiDQnNCV0JvQkNCd0JjQiNCQCivQnNCY0KXQitCQ0Jog0J3QkNCU0JAKK9Cc0JjQpdCK0JDQmiDQn9CV0KLQkNCgCivQnNCY0KXQntCm0Jgg0KTQoNCQ0IrQkAor0JzQmNCl0J7QptCYINCX0JLQntCd0JjQnNCY0KAKK9Cc0JjQpdCe0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0KXQntCI0JXQktCY0Isg0JzQmNCb0JXQndCQCivQnNCY0KXQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0KXQntCI0JXQktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cc0JjQpdCe0JvQp9CY0Isg0KHQotCV0JLQmNCm0JAKK9Cc0JjQpdCe0InQldCS0JjQiyDQldCc0JAKK9Cc0JjQpdCe0InQldCS0JjQiyDQnNCY0JvQntCi0JrQkAor0JzQmNCI0JDQpyDQodCb0JDQktCa0J4KK9Cc0JjQiNCQ0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0IjQkNCP0JXQktCY0Isg0IjQntCS0J4KK9Cc0JjQiNCQ0JjQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQiNCQ0JjQm9Ce0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQiNCQ0JjQm9Ce0JLQmNCLINCf0JDQndCi0JXQm9CY0IjQkAor0JzQmNCI0JDQmNCb0J7QktCY0Isg0KDQkNCd0JjQodCQ0JIKK9Cc0JjQiNCQ0JjQm9Ce0JLQmNCLINCg0JDQndCa0J4KK9Cc0JjQiNCQ0JjQm9Ce0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQnNCY0IjQkNCI0JvQntCS0JjQiyDQkNCI0J3QkAor0JzQmNCI0JDQiNCb0J7QktCY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JzQmNCI0JDQm9Cn0JjQiyDQnNCY0JvQkNCdCivQnNCY0IjQkNCb0KfQmNCLINCh0JDQktCQCivQnNCY0IjQkNCb0KfQmNCLINCX0J7QoNCQCivQnNCY0IjQkNCb0JjQptCQINCh0JLQldCi0J7QodCb0JDQkgor0JzQmNCI0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQiNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0IjQkNCd0J7QktCY0Isg0JzQmNCb0JjQptCQCivQnNCY0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQmNCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQiNCQ0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQnNCY0IjQkNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0JjQiNCQ0KIg0JjQktCQ0J0KK9Cc0JjQiNCQ0KIg0JzQmNCb0JDQndCa0JAKK9Cc0JjQiNCQ0KIg0KDQntCa0J4KK9Cc0JjQiNCQ0KIg0KLQntCc0JjQodCb0JDQkgor0JzQmNCI0JDQotCe0JIg0JbQmNCS0JrQkAor0JzQmNCI0JDQotCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQiNCQ0KLQntCSINCQ0J3QgtCV0JvQmtCQCivQnNCY0IjQkNCi0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQiNCQ0KLQntCSINCU0KDQkNCT0JjQiwor0JzQmNCI0JDQotCe0JIg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQiNCQ0KLQntCSINCY0JLQkNCdCivQnNCY0IjQkNCi0J7QkiDQmNCS0JDQnQor0JzQmNCI0JDQotCe0JIg0IjQntCh0JAKK9Cc0JjQiNCQ0KLQntCSINCa0JDQotCY0KbQkAor0JzQmNCI0JDQotCe0JIg0JvQkNCX0JDQoAor0JzQmNCI0JDQotCe0JIg0InQo9CR0JjQndCa0JAKK9Cc0JjQiNCQ0KLQntCSINCJ0KPQkdCe0JzQmNCgCivQnNCY0IjQkNCi0J7QkiDQnNCY0JvQkNCU0JjQnQor0JzQmNCI0JDQotCe0JIg0JzQmNCb0JDQnQor0JzQmNCI0JDQotCe0JIg0JzQmNCb0JDQnQor0JzQmNCI0JDQotCe0JIg0JzQmNCb0JDQnQor0JzQmNCI0JDQotCe0JIg0JzQmNCb0JAKK9Cc0JjQiNCQ0KLQntCSINCc0JjQm9CV0J3QmtCeCivQnNCY0IjQkNCi0J7QkiDQnNCY0JvQntCoCivQnNCY0IjQkNCi0J7QkiDQnNCY0JvQntCg0JDQlAor0JzQmNCI0JDQotCe0JIg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQiNCQ0KLQntCSINCc0JjQoNCI0JDQndCQCivQnNCY0IjQkNCi0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JzQmNCI0JDQotCe0JIg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQiNCQ0KLQntCSINCh0JDQktCQCivQnNCY0IjQkNCi0J7QkiDQodCQ0JLQmtCQCivQnNCY0IjQkNCi0J7QkiDQodCb0JDQktCa0J4KK9Cc0JjQiNCQ0KLQntCSINCh0JzQmNCJ0JrQkAor0JzQmNCI0JDQotCe0JIg0KHQotCV0JLQkNCdCivQnNCY0IjQkNCi0J7QkiDQktCY0JTQntCh0JDQktCQCivQnNCY0IjQkNCi0J7QkiDQktCe0IjQmNCdCivQnNCY0IjQkNCi0J7QkiDQl9Cb0JDQotCY0J3QmtCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JbQmNCS0JDQnQor0JzQmNCI0JDQotCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQgtCj0IjQkAor0JzQmNCI0JDQotCe0JLQmNCLINCC0KPQoNCY0KbQkAor0JzQmNCI0JDQotCe0JLQmNCLINCC0KPQoNCeCivQnNCY0IjQkNCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQkNCd0KLQntCd0JjQiNCVCivQnNCY0IjQkNCi0J7QktCY0Isg0JHQmNCh0JXQoNCa0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0IjQkNCi0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQkdCe0JbQngor0JzQmNCI0JDQotCe0JLQmNCLINCR0J7Qk9Ce0JzQmNCgCivQnNCY0IjQkNCi0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0IjQkNCi0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0IjQkNCi0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0IjQkNCi0J7QktCY0Isg0JTQoNCQ0JPQmNCLCivQnNCY0IjQkNCi0J7QktCY0Isg0JTQoNCQ0JPQmAor0JzQmNCI0JDQotCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0IjQkNCi0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCI0JDQotCe0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JjQm9CY0IjQkAor0JzQmNCI0JDQotCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0IjQkNCi0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JrQntCh0KLQkAor0JzQmNCI0JDQotCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCY0IjQkNCi0J7QktCY0Isg0JvQldCb0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQidCj0JHQldCd0JrQngor0JzQmNCI0JDQotCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQmNCI0JDQotCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQmNCI0JDQotCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQmNCI0JDQotCe0JLQmNCLINCc0JDQoNCi0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQnNCQ0KLQngor0JzQmNCI0JDQotCe0JLQmNCLINCc0JjQqNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCI0JDQotCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JzQmNCI0JDQotCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQnNCY0JvQmtCeCivQnNCY0IjQkNCi0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQmNCI0JDQotCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0IjQkNCi0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCI0JDQotCe0JLQmNCLINCc0JjQoNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCI0JDQotCe0JLQmNCLINCd0JDQotCQ0KjQkAor0JzQmNCI0JDQotCe0JLQmNCLINCd0JXQktCV0J3QkAor0JzQmNCI0JDQotCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCI0JDQotCe0JLQmNCLINCd0J7QktCeCivQnNCY0IjQkNCi0J7QktCY0Isg0J7QkdCg0JDQlAor0JzQmNCI0JDQotCe0JLQmNCLINCf0JXQoNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCI0JDQotCe0JLQmNCLLdCf0KPQqNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAg0JTQoAor0JzQmNCI0JDQotCe0JLQmNCLINCg0JDQlNCY0KcKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0IjQkNCi0J7QktCY0Isg0KHQmNCc0J4KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JzQmNCI0JDQotCe0JLQmNCLINCh0KLQkNCd0JAKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQotCe0KjQkAor0JzQmNCI0JDQotCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JjQiNCQ0KLQntCS0JjQiyDQktCV0KDQkAor0JzQmNCI0JDQotCe0JLQmNCLINCS0JXQoNCQCivQnNCY0IjQkNCi0J7QktCY0Isg0JLQmNCUCivQnNCY0IjQkNCi0J7QktCY0Isg0JLQm9CQ0JTQkNCdCivQnNCY0IjQkNCi0J7QktCY0Isg0JLQntCI0JjQnSDQkNCU0JLQntCa0JDQogor0JzQmNCI0JDQotCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeINCU0JjQn9CbINCY0J3Qkwor0JzQmNCI0JDQotCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQiNCQ0KLQntCS0JjQiyDQl9Ce0KDQkAor0JzQmNCI0JDQotCe0JLQmNCLINCX0J7QoNCY0KbQkAor0JzQmNCI0JDQotCe0JLQmNCLINCX0JLQntCd0JjQnNCY0KAKK9Cc0JjQiNCQ0JLQldCmINCC0J7QoNCC0JUKK9Cc0JjQiNCQ0JLQldCmINCI0J7QktCQ0J0KK9Cc0JjQiNCQ0JLQldCmINCb0KPQlNCS0JjQkwor0JzQmNCI0JDQktCV0KYg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQiNCQ0JLQldCmINCf0JDQiNCQCivQnNCY0IjQkNCS0JXQpiDQl9Ce0KDQkAor0JzQmNCI0JjQiyDQltCV0InQmtCeCivQnNCY0IjQmNCLINCW0JXQidCa0J4KK9Cc0JjQiNCY0Isg0ILQntCg0ILQlQor0JzQmNCI0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCI0JjQiyDQkNCd0KLQlQor0JzQmNCI0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQiNCY0Isg0JTQldCh0JDQndCa0JAKK9Cc0JjQiNCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0IjQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQiNCY0Isg0JjQm9CY0IjQkAor0JzQmNCI0JjQiyDQiNCQ0IrQkAor0JzQmNCI0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQmNCI0JjQiyDQnNCY0JvQkNCdCivQnNCY0IjQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQiNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQiNCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0IjQmNCLINCf0JXQoNCQCivQnNCY0IjQmNCLINCf0JXQotCQ0KAKK9Cc0JjQiNCY0Isg0J/QldCi0JDQoAor0JzQmNCI0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCI0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCI0JjQiyDQodCQ0JLQkAor0JzQmNCI0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cc0JjQiNCY0Isg0KLQmNCd0JrQkAor0JzQmNCI0JjQiyDQktCV0InQmtCeCivQnNCY0IjQmNCLINCS0JXQodCd0JAKK9Cc0JjQiNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCI0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0IjQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCI0JjQnSDQiNCe0JLQkAor0JzQmNCI0JjQnSDQm9CQ0JfQkNCgCivQnNCY0IjQmNCdINCb0JDQl9CQ0KAKK9Cc0JjQiNCY0J0g0JzQmNCb0JDQnQor0JzQmNCI0JjQnSDQnNCY0JvQldCS0JAKK9Cc0JjQiNCY0J0g0JzQmNCb0JjQptCQCivQnNCY0IjQmNCdINCc0JjQm9Ce0KgKK9Cc0JjQiNCY0J0g0J/QldCi0JDQoAor0JzQmNCI0JjQnSDQn9CV0KLQkNCgCivQnNCY0IjQmNCdINCg0JDQlNCQCivQnNCY0IjQmNCdINCh0JDQktCQCivQnNCY0IjQmNCdINCh0JjQnNCQCivQnNCY0IjQmNCdINCh0KLQldCS0JDQnQor0JzQmNCI0JjQnSDQodCS0JXQotCe0JfQkNCgCivQnNCY0IjQntCa0J7QkiDQlNCg0JDQk9CQ0J0KK9Cc0JjQiNCe0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQiNCe0InQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCI0J7QktCY0Isg0JbQkNCg0JrQngor0JzQmNCI0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQiNCe0JLQmNCLINCT0JDQktCg0JjQm9CeCivQnNCY0IjQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0JzQmNCI0J7QktCY0Isg0JLQldCg0JAKK9Cc0JjQiNCj0KfQmNCLINCh0KLQldCS0JDQnQor0JzQmNCI0KPQp9CY0Isg0JLQldCg0JAKK9Cc0JjQiNCj0KfQmNCdINCc0JjQm9Ca0JAKK9Cc0JjQiNCj0KjQmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0IjQo9Co0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0IjQo9Co0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQnNCY0IjQo9Co0JrQntCS0JjQiyDQntCR0KDQldCdCivQnNCY0IjQo9Co0JrQntCS0JjQiyDQoNCQ0JTQlQor0JzQmNCI0KPQqNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JjQiNCj0KjQmtCe0JLQmNCLINCi0JjQndCa0JAKK9Cc0JjQmtCo0JAg0JzQmNCb0JDQnQor0JzQmNCa0KjQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0JrQqNCY0Isg0J7QotCe0J0KK9Cc0JjQmtCo0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JrQkNCo0JjQndCe0JLQmNCLINCR0JjQidCQ0J3QkAor0JzQmNCa0JDQqNCY0J3QntCS0JjQiyDQodCQ0JLQkAor0JzQmNCa0JDQiyDQnNCY0JvQkNCdCivQnNCY0JrQkNCmINCV0JLQmtCQCivQnNCY0JrQkNCb0JDQp9Ca0Jgg0ILQntCg0ILQlQor0JzQmNCa0JDQm9CQ0KfQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JrQkNCb0JDQp9Ca0Jgg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQmNCS0JDQndCa0JAKK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQmNCS0JDQndCa0JAKK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQiNCQ0KHQnNCY0J3QkAor0JzQmNCa0JDQm9CQ0KfQmtCYINCc0JjQm9Cj0KLQmNCdCivQnNCY0JrQkNCb0JDQp9Ca0Jgg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQn9CQ0JLQm9CVCivQnNCY0JrQkNCb0JDQp9Ca0Jgg0KPQoNCe0KgKK9Cc0JjQmtCQ0JvQkNCn0JrQmCDQl9Ce0KDQkNCdCivQnNCY0JrQkNCb0JDQp9Ca0Jgg0JfQntCg0JDQnQor0JzQmNCa0JDQnSDQkdCe0KHQmNCJ0JrQkAor0JzQmNCa0JDQnSDQmNCS0JDQnQor0JzQmNCa0JDQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0JzQmNCa0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCa0JDQndCe0JLQmNCLINCY0KDQldCd0JAKK9Cc0JjQmtCQ0J3QntCS0JjQiyDQoNCQ0J3QmtCeCivQnNCY0JrQkNCS0JjQptCQINCh0KLQkNCd0JjQnNCY0KAKK9Cc0JjQmtCVINCV0KHQotCV0KAKK9Cc0JjQmtCV0Kgg0JDQndCU0KDQmNCI0JAKK9Cc0JjQmtCV0Kgg0JXQndCU0KDQlQor0JzQmNCa0JXQqCDQldCi0JXQmwor0JzQmNCa0JXQqCDQnNCV0JvQkNCd0JjQiNCQCivQnNCY0JrQldCoINCc0JjQpdCQ0IkKK9Cc0JjQmtCV0KLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JrQmNCLINCW0JDQoNCa0J4KK9Cc0JjQmtCY0Isg0JbQkNCg0JrQngor0JzQmNCa0JjQiyDQgtCj0KDQkCDQlNCgCivQnNCY0JrQmNCLINCU0JXQodCY0JzQmNCgCivQnNCY0JrQmNCLINCY0JLQkNCdCivQnNCY0JrQmNCLINCI0J7QodCY0J8g0JTQmNCf0Jsg0JjQndCTCivQnNCY0JrQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQmtCY0Isg0JzQkNCa0KHQmNCcCivQnNCY0JrQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQmtCY0Isg0JzQmNCb0JXQndCQCivQnNCY0JrQmNCLINCc0JjQm9CY0KHQkNCSCivQnNCY0JrQmNCLINCc0JjQm9Ca0JAKK9Cc0JjQmtCY0Isg0JzQmNCb0JrQkAor0JzQmNCa0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQmNCa0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0JrQmNCLINCe0JvQk9CQCivQnNCY0JrQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cc0JjQmtCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cc0JjQmtCY0Isg0KDQkNCU0J7QodCb0JDQktCa0JAKK9Cc0JjQmtCY0Isg0KDQo9CW0JAKK9Cc0JjQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCa0JjQiyDQodCg0JHQntCJ0KPQkQor0JzQmNCa0JjQiyDQodCi0J7QiNCQCivQnNCY0JrQmNCLINCi0J7QlNCe0KAKK9Cc0JjQmtCY0Isg0JLQm9CQ0JTQkNCdCivQnNCY0JrQmNCLINCX0J7QoNCa0JAKK9Cc0JjQmtCY0J0g0J3QkNCU0JAKK9Cc0JjQmtCY0KLQmNCo0JjQnSDQndCQ0JTQkAor0JzQmNCa0JvQldCSINCh0KLQntCI0JDQndCa0JAKK9Cc0JjQmtCb0JjQiyDQgtCe0KDQgtCVCivQnNCY0JrQm9CY0Isg0JDQndCQCivQnNCY0JrQm9CY0Isg0KLQldCg0JXQl9CQCivQnNCY0JrQm9Ce0Kgg0JDQndCU0KDQkNCoCivQnNCY0JrQm9Ce0Kgg0JDQndCU0KDQmNCI0JAKK9Cc0JjQmtCb0J7QqCDQkNCd0KLQkNCbCivQnNCY0JrQm9Ce0Kgg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCY0JrQm9Ce0Kgg0IjQkNCd0JrQngor0JzQmNCa0JvQntCoINCI0JXQm9CY0KHQkNCS0JXQotCQCivQnNCY0JrQm9Ce0Kgg0IjQo9Cb0JjQiNCQ0J0KK9Cc0JjQmtCb0J7QqCDQndCQ0J3QlNCe0KAg0JTQoCDQm9CV0JrQkNCgCivQnNCY0JrQm9Ce0Kgg0KHQotCV0JLQkNCdCivQnNCY0JrQm9Ce0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCa0JvQntCS0JjQpiDQiNCQ0J0KK9Cc0JjQmtCb0J7QktCY0KYg0JzQmNCb0J7QodCb0JDQkgor0JzQmNCa0J7Qm9CQINCC0KPQoNCQCivQnNCY0JrQntCb0JDQptCYINCb0JXQn9Ce0KHQkNCS0JAKK9Cc0JjQmtCe0JvQldCm0JrQmCDQodCb0JDQktCY0KbQkAor0JzQmNCa0J7Qm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQmtCe0JIg0IjQntCS0JDQndCa0JAKK9Cc0JjQmtCe0JIg0JzQldCi0J7QlNCYINCU0KAg0JvQldCa0JDQoAor0JzQmNCa0J7QkiDQnNCe0JzQmNCgCivQnNCY0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JrQntCS0JjQiyDQgtCj0KDQkAor0JzQmNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JrQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Cc0JjQmtCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQnNCY0JrQntCS0JjQiyDQlNCV0IjQkNCdCivQnNCY0JrQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JzQmNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQnNCY0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQnNCY0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JzQmNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCa0J7QktCY0Isg0JzQntCc0KfQmNCb0J4g0JTQoCDQn9Cg0JDQktCd0JjQmgor0JzQmNCa0J7QktCY0Isg0J3QkNCU0JAKK9Cc0JjQmtCe0JLQmNCLINCd0JjQndCe0KHQm9CQ0JIKK9Cc0JjQmtCe0JLQmNCLINCf0JDQktCQCivQnNCY0JrQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JjQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0JzQmNCa0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cc0JjQmtCe0JLQmNCLINCh0KDQldCU0J7QiNCVCivQnNCY0JrQntCS0JjQm9Ce0JLQmNCLINCY0JLQkNCdCivQnNCY0JrQodCQ0KIg0IjQntCW0JXQpAor0JzQmNCa0KPQqCDQkNCd0ILQldCb0JrQkAor0JzQmNCa0KPQqCDQnNCY0JvQmtCQCivQnNCY0JrQo9CoINCc0JjQoNCI0JDQndCQCivQnNCY0JrQo9Cb0JXQodCa0J4g0JTQo9Co0JDQnQor0JzQmNCa0KPQm9CV0KHQmtCeINCh0JDQktCeINCU0JjQn9CbINCY0J3Qkwor0JzQmNCa0KPQm9CY0Isg0KjQmNCc0JUKK9Cc0JjQmtCj0JvQmNCLINCR0JjQidCQ0J3QkAor0JzQmNCa0KPQm9CY0Isg0JHQm9CQ0JYKK9Cc0JjQmtCj0JvQmNCLINCV0JTQmNCiCivQnNCY0JrQo9Cb0JjQiyDQmNCS0JDQnQor0JzQmNCa0KPQm9CY0Isg0JjQktCQ0J0KK9Cc0JjQmtCj0JvQmNCLINCY0JLQkAor0JzQmNCa0KPQm9CY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0JjQmtCj0JvQmNCLINCb0J7QktCg0JUKK9Cc0JjQmtCj0JvQmNCLINCc0JDQoNCQCivQnNCY0JrQo9Cb0JjQiyDQnNCY0JvQlQor0JzQmNCa0KPQm9CY0Isg0JzQmNCb0JjQiwor0JzQmNCa0KPQm9CY0J3QkNCmINCc0JDQotCY0IjQkAor0JzQmNCa0KPQm9CY0J3QkNCmINCg0JXQndCV0KLQkAor0JzQmNCa0KPQm9CY0J3QkNCmINCh0JvQkNCS0JjQptCQCivQnNCY0JvQp9CY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQp9CY0Isg0IjQntCS0JDQnQor0JzQmNCb0JDQp9CY0Isg0JbQldCJ0JrQngor0JzQmNCb0JDQp9CY0Isg0JHQntCg0JjQktCe0IjQlQor0JzQmNCb0JDQp9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQkNCn0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9CQ0KfQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CQ0KfQmNCLINCY0JLQkNCdCivQnNCY0JvQkNCn0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCb0JDQp9CY0Isg0JzQkNCo0JDQnQor0JzQmNCb0JDQp9CY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9CQ0KfQmNCLINCh0KDQkdCe0KHQm9CQ0JIKK9Cc0JjQm9CQ0KfQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQm9CQ0KfQmNCLINCX0J7QoNCY0KbQkAor0JzQmNCb0JDQqCDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CQ0Kgg0JTQo9Co0JDQndCa0JAKK9Cc0JjQm9CQ0KjQldCS0JjQiyDQl9Ce0KDQmtCQCivQnNCY0JvQkNCo0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9CQ0KjQmNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JjQm9CQ0KjQmNCd0J7QktCY0Isg0JzQmNCL0KPQnQor0JzQmNCb0JDQqNCY0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0JDQqNCY0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0JDQqNCY0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0JvQkNCo0JjQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQm9CQ0KjQmNCd0J7QktCY0Isg0KDQkNCU0JUKK9Cc0JjQm9CQ0KjQmNCd0J7QktCY0Ist0KHQotCQ0J3QntCI0JXQktCY0Isg0InQmNCJ0JDQndCQCivQnNCY0JvQkNCo0JjQndCe0JLQmNCLINCS0KPQmtCe0JzQkNCdCivQnNCY0JvQkNCo0JjQndCe0JLQmNCLINCX0JvQkNCi0J7QiNCQCivQnNCY0JvQkNCU0JjQiyDQp9CV0JTQkAor0JzQmNCb0JDQlNCY0Isg0JTQntCR0KDQntCc0JjQoAor0JzQmNCb0JDQlNCY0Isg0J/QldCi0JDQoAor0JzQmNCb0JDQlNCY0J3QntCh0JrQmCDQm9CV0JLQmtCeCivQnNCY0JvQkNCU0JjQndCe0JIg0JbQkNCg0JrQngor0JzQmNCb0JDQlNCY0J3QntCSINCW0JjQktCa0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQkdCe0JbQmNCU0JDQoAor0JzQmNCb0JDQlNCY0J3QntCSINCU0JDQndCY0KbQkAor0JzQmNCb0JDQlNCY0J3QntCSINCU0JDQndCY0KbQkAor0JzQmNCb0JDQlNCY0J3QntCSINCU0KPQqNCQ0J3QmtCQCivQnNCY0JvQkNCU0JjQndCe0JIg0JTQo9Co0JDQnQor0JzQmNCb0JDQlNCY0J3QntCSINCI0J7QptCQCivQnNCY0JvQkNCU0JjQndCe0JIg0IjQntCS0JDQnQor0JzQmNCb0JDQlNCY0J3QntCSINCI0J7QktCQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQiNCe0JLQkNCdCivQnNCY0JvQkNCU0JjQndCe0JIg0IjQntCS0JjQptCQCivQnNCY0JvQkNCU0JjQndCe0JIg0InQo9CR0JjQptCQCivQnNCY0JvQkNCU0JjQndCe0JIg0JzQkNCg0JjQiNCQCivQnNCY0JvQkNCU0JjQndCe0JIg0JzQmNCb0JDQnQor0JzQmNCb0JDQlNCY0J3QntCSINCc0JjQm9CQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQnNCY0JvQldCd0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQnNCY0JvQldCd0JrQngor0JzQmNCb0JDQlNCY0J3QntCSINCc0JjQm9Ce0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQmNCb0JDQlNCY0J3QntCSINCc0JjQm9Ce0JLQkNCdCivQnNCY0JvQkNCU0JjQndCe0JIg0J3QkNCU0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQndCe0JLQkNCaCivQnNCY0JvQkNCU0JjQndCe0JIg0KDQkNCU0JjQktCe0IgKK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQoNCQ0JTQntCS0JDQnQor0JzQmNCb0JDQlNCY0J3QntCSINCh0JvQkNCS0JjQptCQCivQnNCY0JvQkNCU0JjQndCe0JIg0KHQoNCR0JjQndCa0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QkiDQodCS0JXQotCe0JfQkNCgCivQnNCY0JvQkNCU0JjQndCe0JIg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0JDQlNCY0J3QntCSINCi0JjQpdCe0JzQmNCgCivQnNCY0JvQkNCU0JjQndCe0JIg0JLQldCh0J3QkAor0JzQmNCb0JDQlNCY0J3QntCSINCS0IjQldCg0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JbQmNCS0JDQlNCY0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JTQkNCc0JjQoAor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQlNCY0JLQndCQCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCc0JDQoNCa0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JUKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQndCe0JLQmNCm0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0JDQlNCY0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQkNCU0JjQndCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0KLQntCU0JUKK9Cc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JLQldCg0JAKK9Cc0JjQm9CQ0Jog0ILQntCg0ILQlQor0JzQmNCb0JDQmiDQlNCQ0KDQmNCd0JrQkAor0JzQmNCb0JDQmiDQlNCj0KjQkNCdCivQnNCY0JvQkNCaINCI0JXQm9CV0J3QkAor0JzQmNCb0JDQmiDQiNCe0JLQkNCdCivQnNCY0JvQkNCaINCI0J7QktCQ0J0KK9Cc0JjQm9CQ0Jog0JrQkNCi0JjQptCQCivQnNCY0JvQkNCaINCb0JDQl9CQ0KAKK9Cc0JjQm9CQ0Jog0JzQmNCb0JDQnQor0JzQmNCb0JDQmiDQnNCY0JvQkNCdCivQnNCY0JvQkNCaINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQkNCaINCc0JjQm9Ce0KgKK9Cc0JjQm9CQ0Jog0KDQkNCU0J7QodCb0JDQkgor0JzQmNCb0JDQmiDQodCQ0JLQkAor0JzQmNCb0JDQmtCe0JIg0IjQldCb0JXQndCQINCU0KAg0J/QoNCe0KQKK9Cc0JjQm9CQ0JrQntCSINCJ0KPQkdCY0KbQkCDQlNCgCivQnNCY0JvQkNCa0J7QkiDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CQ0JrQntCS0JjQiyDQgtCj0KDQkNCCCivQnNCY0JvQkNCa0J7QktCY0Isg0ILQo9Cg0J4KK9Cc0JjQm9CQ0JrQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQmNCb0JDQmtCe0JLQmNCLINCU0JDQndCY0KbQkAor0JzQmNCb0JDQmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JDQmtCe0JLQmNCLINCT0J7QoNCQ0J0KK9Cc0JjQm9CQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQkNCa0J7QktCY0Isg0JzQmNCb0JrQkAor0JzQmNCb0JDQmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCb0JDQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCY0JvQkNCa0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cc0JjQm9CQ0JrQntCS0JjQiyDQotCV0J7QlNCe0KAKK9Cc0JjQm9CQ0JrQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCY0JvQkNCa0J7QktCY0Isg0JLQntCI0J4KK9Cc0JjQm9CQ0JrQntCS0JjQiyDQktCj0JrQmNCm0JAKK9Cc0JjQm9CQ0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQkNCd0JrQniDQodCb0JDQktCa0J4KK9Cc0JjQm9CQ0J3QmtCe0JIg0JbQmNCS0JAKK9Cc0JjQm9CQ0J3QmtCe0JIg0JbQmNCS0JAKK9Cc0JjQm9CQ0J3QmtCe0JIg0ILQntCg0ILQlQor0JzQmNCb0JDQndCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CQ0J3QmtCe0JIg0KbQktCV0KLQkAor0JzQmNCb0JDQndCa0J7QkiDQlNCj0KjQkNCdCivQnNCY0JvQkNCd0JrQntCSINCY0JLQkNCdCivQnNCY0JvQkNCd0JrQntCSINCI0JXQm9CV0J3QkAor0JzQmNCb0JDQndCa0J7QkiDQiNCj0JvQmNCI0JDQndCQCivQnNCY0JvQkNCd0JrQntCSINCb0JDQl9CQ0KAKK9Cc0JjQm9CQ0J3QmtCe0JIg0JzQkNCg0JrQngor0JzQmNCb0JDQndCa0J7QkiDQnNCY0JvQldCd0JrQngor0JzQmNCb0JDQndCa0J7QkiDQnNCY0JvQmNCS0J7QiAor0JzQmNCb0JDQndCa0J7QkiDQnNCY0JvQmtCeCivQnNCY0JvQkNCd0JrQntCSINCh0JvQkNCS0JjQnNCY0KAKK9Cc0JjQm9CQ0J3QmtCe0JIg0KHQntCk0JjQiNCQCivQnNCY0JvQkNCd0JrQntCSINCh0KLQkNCd0JjQnNCY0KAKK9Cc0JjQm9CQ0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQkNCd0JAKK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLLdCm0J7QmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQk9Ce0KDQkNCdCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQk9Ce0KDQkNCdCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQmNCb0JjQndCa0JAKK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQkNCd0JrQntCS0JjQiyDQnNCY0JvQldCS0JAKK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CQ0J3QmtCe0JLQmNCLINCX0J7QoNCQCivQnNCY0JvQkNCd0J7QkiDQkNCd0JjQptCQCivQnNCY0JvQkNCd0J7QkiDQkNCd0JrQkAor0JzQmNCb0JDQndCe0JIg0JHQntCT0JTQkNCdCivQnNCY0JvQkNCd0J7QkiDQkdCe0KDQmNCh0JvQkNCS0JAKK9Cc0JjQm9CQ0J3QntCSINCU0J7QkdCg0JjQktCe0IgKK9Cc0JjQm9CQ0J3QntCSINCI0JXQm9CY0KbQkAor0JzQmNCb0JDQndCe0JIg0InQo9CR0JjQqNCQCivQnNCY0JvQkNCd0J7QkiDQnNCY0JvQkNCdCivQnNCY0JvQkNCd0J7QkiDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0JDQndCe0JIg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQm9CQ0J3QntCSINCc0JvQkNCU0JXQnQor0JzQmNCb0JDQndCe0JIg0J/QldCg0KHQmNCU0JAKK9Cc0JjQm9CQ0J3QntCSINCg0JDQlNCY0JLQntCICivQnNCY0JvQkNCd0J7QkiDQodCQ0JLQmtCQCivQnNCY0JvQkNCd0J7QkiDQodCS0JXQotCe0JfQkNCgCivQnNCY0JvQkNCd0J7QkiDQktCj0JrQntCh0JDQktCQCivQnNCY0JvQkNCd0J7QktCY0Isg0JbQldCJ0JrQngor0JzQmNCb0JDQndCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQnNCY0JvQkNCd0J7QktCY0Isg0JbQmNCS0J7QotCY0IjQlQor0JzQmNCb0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JvQkNCd0J7QktCY0Isg0JHQntCo0JrQngor0JzQmNCb0JDQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQnNCY0JvQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQnNCY0JvQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeINCU0KAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQptCS0JjQiNCV0KLQmNCdCivQnNCY0JvQkNCd0J7QktCY0Isg0JTQkNCc0IjQkNCd0JrQkAor0JzQmNCb0JDQndCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQnNCY0JvQkNCd0J7QktCY0Isg0JTQntCd0JrQkAor0JzQmNCb0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQkNCd0J7QktCY0Isg0JTQoNCQ0JPQngor0JzQmNCb0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQnNCY0JvQkNCd0J7QktCY0Isg0JPQntCg0JDQnQor0JzQmNCb0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0JvQkNCd0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQidCj0JHQmNCo0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQnNCQ0KDQotCQCivQnNCY0JvQkNCd0J7QktCY0Isg0JzQmNCl0J4KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQnNCY0JvQkNCd0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCb0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQkNCd0J7QktCY0Isg0JzQmNCb0JjQiNCQCivQnNCY0JvQkNCd0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JzQmNCb0JDQndCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0JzQmNCb0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0JDQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCb0JDQndCe0JLQmNCLINCd0JDQlNCQCivQnNCY0JvQkNCd0J7QktCY0Ist0J/QldCi0KDQkNCo0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0JvQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQodCQ0KjQkAor0JzQmNCb0JDQndCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9Cc0JjQm9CQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQkNCd0J7QktCY0Isg0KHQktCV0KLQntCc0JjQoAor0JzQmNCb0JDQndCe0JLQmNCLINCS0JjQmtCi0J7QoNCY0IjQkAor0JzQmNCb0JDQndCe0JLQmNCLINCS0JjQotCa0J4KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCb0JDQndCe0JLQmNCLINCS0KPQiNCeCivQnNCY0JvQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JzQmNCb0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQm9CQ0J3QntCS0JjQiyDQl9Ce0KDQkAor0JzQmNCb0JDQndCe0JLQmNCLINCX0J7QoNCa0JAKK9Cc0JjQm9CQ0KDQmNCLINCY0JLQkNCdCivQnNCY0JvQkNCi0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQnNCY0JvQkNCi0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cc0JjQm9CQ0KLQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQldCo0JXQkiDQnNCY0JvQmNCm0JAKK9Cc0JjQm9CV0KjQldCS0JjQiyDQntCR0KDQkNCUCivQnNCY0JvQldCmINCU0J7QoNCe0KLQldCQCivQnNCY0JvQldCmINCY0JvQntCd0JrQkAor0JzQmNCb0JXQmCDQlNCg0JDQk9Cj0KLQmNCdCivQnNCY0JvQldCYINCI0JDQndCe0KgKK9Cc0JjQm9CV0Jgg0KLQntCc0JjQodCb0JDQkgor0JzQmNCb0JXQmtCo0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JjQm9CV0JrQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CV0JrQmNCLINCc0JjQm9Ce0JzQmNCgCivQnNCY0JvQldCa0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQm9CV0JrQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JXQmtCY0Isg0KPQoNCe0KgKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCY0JvQldCd0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQldCd0JrQntCS0JjQiyDQgtCj0KDQgtCY0J3QkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLLdCQ0J3QotCY0Isg0JvQkNCX0JDQoAor0JzQmNCb0JXQndCa0J7QktCY0Ist0JHQiNCV0JvQkNCI0JDQpiDQnNCY0JvQkNCd0JrQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCR0J7Qk9Ce0JzQmNCgCivQnNCY0JvQldCd0JrQntCS0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQnNCY0JvQldCd0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0JXQndCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQldCd0JrQntCS0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0JzQmNCb0JXQndCa0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQnNCY0JvQldCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0g0JTQoAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JTQoNCQ0JPQntCoCivQnNCY0JvQldCd0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRINCU0KAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JzQmNCb0JXQndCa0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCY0JvQldCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQldCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQldCd0JrQntCS0JjQiyDQldCg0JbQmNCa0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCT0KDQntCX0JTQkNCd0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCY0JvQntCd0JrQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JjQoNCV0J3QkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0IjQldCb0JjQptCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQiNCV0JLQotCeCivQnNCY0JvQldCd0JrQntCS0JjQiyDQiNCj0JPQntCh0JvQkNCSCivQnNCY0JvQldCd0JrQntCS0JjQiyDQiNCj0KHQotCY0J3QkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JrQntCS0JjQidCa0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCa0KDQodCi0JDQndCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JzQmNCb0JjQiNCQ0J0KK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQnNCY0JvQldCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQnNCY0JvQldCd0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQmNCb0JXQndCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCY0JvQldCd0JrQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0J3QldCd0JDQlAor0JzQmNCb0JXQndCa0J7QktCY0Isg0J3QmNCL0JjQpNCe0KAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCf0JDQo9CdCivQnNCY0JvQldCd0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQmNCb0JXQndCa0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCY0JvQldCd0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0JvQldCd0JrQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCb0JXQndCa0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQodCg0JXQotCV0J0KK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCb0JXQndCa0J7QktCY0Isg0KHQktCV0KLQntCc0JjQoAor0JzQmNCb0JXQndCa0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCS0JXQodCV0JvQmNCd0JrQkAor0JzQmNCb0JXQndCa0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cc0JjQm9CV0J3QmtCe0JLQmNCLINCS0JvQkNCU0JDQnQor0JzQmNCb0JXQndCa0J7QktCY0Isg0JfQntCg0JjQptCQCivQnNCY0JvQldCd0JrQntCS0JjQiyDQl9Ce0KDQmtCQCivQnNCY0JvQldCd0JrQntCS0KHQmtCYINCR0JvQkNCT0J7QiNCVCivQnNCY0JvQldCd0JrQntCS0KHQmtCYINCc0JjQm9CY0KbQkAor0JzQmNCb0JXQndCe0JLQmNCLINCW0JjQktCQCivQnNCY0JvQldCd0J7QktCY0Ist0JHQldCa0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0JXQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0JXQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQldCd0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JjQm9CV0J3QntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQmNCb0JXQndCi0JjQiNCV0JLQmNCLINCW0JjQktCe0KDQkNCUCivQnNCY0JvQldCd0KLQmNCI0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9Cc0JjQm9CV0KAg0JHQkNCg0JHQkNCg0JAKK9Cc0JjQm9CV0KAg0JXQoNCW0JXQkdCV0KIKK9Cc0JjQm9CV0KAg0KTQoNCQ0IrQkAor0JzQmNCb0JXQoCDQmNCc0KDQlSDQlNCgINCb0JXQmtCQ0KAKK9Cc0JjQm9CV0KAg0JjQktCQ0J3QmtCQCivQnNCY0JvQldCgINCI0JXQm9CV0J3QkAor0JzQmNCb0JXQoCDQiNCV0JvQmNCm0JAKK9Cc0JjQm9CV0KAg0JrQkNCg0JvQngor0JzQmNCb0JXQoCDQnNCQ0KDQmNCI0JAKK9Cc0JjQm9CV0KAg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQm9CV0KAg0J7QotCe0JrQkNCgCivQnNCY0JvQldCgINCX0JvQkNCi0JrQngor0JzQmNCb0JXQodCa0Jgg0JDQotCQ0J3QkNCh0JjQiNCVCivQnNCY0JvQldCi0JAg0J3QmNCa0J7Qm9CQCivQnNCY0JvQldCi0JDQqNCa0Jgg0JHQntCg0JjQktCe0IgKK9Cc0JjQm9CV0KLQkNCo0JrQmCDQnNCY0JvQlQor0JzQmNCb0JXQotCY0Isg0JbQmNCS0JrQngor0JzQmNCb0JXQotCY0Isg0JbQmNCS0J7QotCQCivQnNCY0JvQldCi0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQldCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JzQmNCb0JXQotCY0Isg0JDQndCQCivQnNCY0JvQldCi0JjQiyDQkdCe0JbQkAor0JzQmNCb0JXQotCY0Isg0JHQntCg0JjQqNCQCivQnNCY0JvQldCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CV0KLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Cc0JjQm9CV0KLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQldCi0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQldCi0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQldCi0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQldCi0JjQiyDQk9Ce0IjQmtCeCivQnNCY0JvQldCi0JjQiyDQk9CS0J7Ql9CU0JXQnQor0JzQmNCb0JXQotCY0Isg0JjQm9CY0IjQkAor0JzQmNCb0JXQotCY0Isg0JjQktCY0KbQkAor0JzQmNCb0JXQotCY0Isg0InQo9CR0JjQptCQCivQnNCY0JvQldCi0JjQiyDQidCj0JHQmNCh0JDQkgor0JzQmNCb0JXQotCY0Isg0JzQmNCb0JjQptCQCivQnNCY0JvQldCi0JjQiyDQnNCY0JvQmNCS0J7QiAor0JzQmNCb0JXQotCY0Isg0JzQmNCb0J7QiNCVCivQnNCY0JvQldCi0JjQiyDQnNCY0KLQkAor0JzQmNCb0JXQotCY0Isg0J3QkNCU0JAKK9Cc0JjQm9CV0KLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCb0JXQotCY0Isg0J7Qm9CT0JAKK9Cc0JjQm9CV0KLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9CV0KLQmNCLINCg0JDQlNCVCivQnNCY0JvQldCi0JjQiyDQoNCQ0JTQntCoCivQnNCY0JvQldCi0JjQiyDQoNCQ0JTQntCI0JrQkAor0JzQmNCb0JXQotCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCb0JXQotCY0Isg0KDQkNCd0JrQngor0JzQmNCb0JXQotCY0Isg0KHQldCS0JXQoNCY0J3QkAor0JzQmNCb0JXQotCY0Isg0KHQm9CQ0JLQmtCeINCU0KAg0JvQldCa0JDQoAor0JzQmNCb0JXQotCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0JvQldCi0JjQiyDQodCb0JDQktCe0InQo9CRCivQnNCY0JvQldCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQldCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQldCi0JjQiyDQodCe0IrQkAor0JzQmNCb0JXQotCY0Isg0KHQotCV0JLQkNCdCivQnNCY0JvQldCi0JjQiyDQktCV0JvQlQor0JzQmNCb0JXQotCY0Isg0JLQldCb0JjQkdCe0KAKK9Cc0JjQm9CV0KLQmNCLINCS0JXQm9CY0JHQntCgCivQnNCY0JvQldCi0JjQiyDQktCV0JvQmNCc0JjQoAor0JzQmNCb0JXQotCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0JzQmNCb0JXQotCY0Isg0JfQlNCg0JDQktCa0J4KK9Cc0JjQm9CV0KLQmNCm0JrQmCDQoNCQ0JTQkAor0JzQmNCb0JXQotCY0KbQmtCYINCX0J7QoNCa0JAKK9Cc0JjQm9CV0KLQmNCdINCU0JDQndCQCivQnNCY0JvQldCi0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0JXQotCY0J0g0J3QmNCa0J7Qm9CQCivQnNCY0JvQldCi0JjQnSDQoNCQ0JTQmNCS0J7QiAor0JzQmNCb0JXQotCY0J0g0KHQktCV0KLQntCX0JDQoCDQlNCY0J/QmyDQntCV0KYKK9Cc0JjQm9CV0KLQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQm9CV0KPQodCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CV0KPQodCd0JjQiyDQnNCQ0KDQmtCeCivQnNCY0JvQldCj0KHQndCY0Isg0J3QkNCU0JAKK9Cc0JjQm9CV0KPQodCd0JjQiyDQndCQ0JTQkAor0JzQmNCb0JXQo9Ch0J3QmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9CV0JIg0J/QldCi0JDQoAor0JzQmNCb0JXQktCh0JrQmCDQgtCe0KDQgtCVCivQnNCY0JvQpdCQ0J3QoSDQodCi0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CY0KfQldCS0JjQiyDQgtCj0KDQkAor0JzQmNCb0JjQp9CV0JLQmNCLINCQ0KDQkNCd0JrQkAor0JzQmNCb0JjQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0JjQp9CV0JLQmNCLINCU0KDQkNCT0JjQitCQCivQnNCY0JvQmNCn0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQp9CV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9CY0KfQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQm9CY0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQmNCn0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9CY0KfQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQm9CY0KfQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0JzQmNCb0JjQp9CV0JLQmNCLINCc0JjQm9Ca0JDQnQor0JzQmNCb0JjQp9CV0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCb0JjQp9CV0JLQmNCLINCd0JXQndCQ0JQKK9Cc0JjQm9CY0KfQldCS0JjQiyDQndCe0JLQmNCm0JAKK9Cc0JjQm9CY0KfQldCS0JjQiyDQn9CQ0JLQkAor0JzQmNCb0JjQp9CV0JLQmNCLINCf0JXQoNCeCivQnNCY0JvQmNCn0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JzQmNCb0JjQp9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JjQp9CV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JjQm9CY0KfQmNCLINCW0JDQoNCa0J4KK9Cc0JjQm9CY0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JvQmNCn0JjQiyDQkNCd0JAKK9Cc0JjQm9CY0KfQmNCLINCQ0J3QlNCg0JjQiNCQCivQnNCY0JvQmNCn0JjQiyDQkNCd0JrQkAor0JzQmNCb0JjQp9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JzQmNCb0JjQp9CY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQmNCn0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCb0JjQp9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCb0JjQp9CY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQp9CY0Isg0IjQldCb0JjQptCQCivQnNCY0JvQmNCn0JjQiyDQiNCe0JLQkNCd0JrQkAor0JzQmNCb0JjQp9CY0Isg0IjQntCS0JDQnQor0JzQmNCb0JjQp9CY0Isg0JrQkNCi0JjQptCQCivQnNCY0JvQmNCn0JjQiyDQidCj0JHQmNCd0JrQkAor0JzQmNCb0JjQp9CY0Isg0JzQkNCg0JjQndCa0J4KK9Cc0JjQm9CY0KfQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCY0JvQmNCn0JjQiyDQnNCY0JvQntCoCivQnNCY0JvQmNCn0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0JjQp9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQm9CY0KfQmNCLINCg0JDQiNCa0J4KK9Cc0JjQm9CY0KfQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JjQp9CY0Isg0KLQmNCb0JrQkAor0JzQmNCb0JjQp9CY0Isg0JLQkNCh0JAKK9Cc0JjQm9CY0KjQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0KjQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCY0JvQmNCo0JjQiyDQndCV0JHQntCI0KjQkAor0JzQmNCb0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCb0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCb0JjQiyDQltCY0JrQkAor0JzQmNCb0JjQiyDQltCY0JLQmtCeCivQnNCY0JvQmNCLINCW0JjQktCe0JzQmNCgCivQnNCY0JvQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQiyDQgtCj0KDQmNCm0JAKK9Cc0JjQm9CY0Isg0JDQlNCY0JvQkAor0JzQmNCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JzQmNCb0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQnNCY0JvQmNCLINCR0J7QltCY0JTQkNCgINCU0KAKK9Cc0JjQm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9CY0Isg0JHQntCW0J4KK9Cc0JjQm9CY0Isg0JHQntCT0JTQkNCdCivQnNCY0JvQmNCLINCR0J7QiNCQ0J3QkAor0JzQmNCb0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQnNCY0JvQmNCLINCR0J7QoNCY0JLQntCICivQnNCY0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQmNCLINCR0KDQkNCd0JrQkAor0JzQmNCb0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9CY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0JzQmNCb0JjQiyDQlNCQ0J3QmNCm0JAKK9Cc0JjQm9CY0Isg0JTQkNCd0JjQm9Ca0JAKK9Cc0JjQm9CY0Isg0JTQkNCd0JjQm9Ca0JAKK9Cc0JjQm9CY0Isg0JTQkNCd0JjQm9CeCivQnNCY0JvQmNCLINCU0JDQoNCQCivQnNCY0JvQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0JvQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cc0JjQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCb0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0JjQm9CY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JjQm9CY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JjQm9CY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9CY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9Cc0JjQm9CY0Isg0JXQnNCY0JvQmNCI0JAKK9Cc0JjQm9CY0Isg0JXQnNCY0JvQmNCI0JAKK9Cc0JjQm9CY0Isg0JXQktCQCivQnNCY0JvQmNCLINCV0JLQkAor0JzQmNCb0JjQiyDQldCS0JjQptCQCivQnNCY0JvQmNCLINCk0JXQoNCV0J3Qpgor0JzQmNCb0JjQiyDQk9CQ0JLQoNCQCivQnNCY0JvQmNCLINCY0JvQmNCI0JAKK9Cc0JjQm9CY0Ist0IjQkNCT0J7QlNCY0J3QodCa0Jgg0JzQmNCb0JDQnQor0JzQmNCb0JjQiyDQiNCQ0J3QmtCeCivQnNCY0JvQmNCLINCI0JXQm9CV0J3QkAor0JzQmNCb0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0JjQm9CY0Isg0IjQldCb0JrQkAor0JzQmNCb0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9CY0Isg0IjQntCS0JDQnQor0JzQmNCb0JjQiyDQiNCe0JLQkAor0JzQmNCb0JjQiyDQiNCe0JLQngor0JzQmNCb0JjQiyDQiNCe0JLQngor0JzQmNCb0JjQiyDQiNCj0JvQmtCQCivQnNCY0JvQmNCLINCa0JDQotCY0KbQkAor0JzQmNCb0JjQiyDQmtCg0KHQotCeCivQnNCY0JvQmNCLINCa0KHQldCd0JjQiNCQCivQnNCY0JvQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQm9CY0Isg0InQmNCJ0JDQndCQCivQnNCY0JvQmNCLINCJ0KPQkdCY0KjQkAor0JzQmNCb0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQm9CY0Isg0InQo9CR0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQmNCLINCc0JDQoNCQCivQnNCY0JvQmNCLINCc0JDQoNCY0IjQkAor0JzQmNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Cc0JjQm9CY0Isg0JzQkNCg0JjQiNCQCivQnNCY0JvQmNCLINCc0JjQm9CQ0J3QmtCQCivQnNCY0JvQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9CY0Isg0JzQmNCb0JjQptCQCivQnNCY0JvQmNCLINCc0JjQm9CY0KbQkAor0JzQmNCb0JjQiyDQnNCY0JvQntCoCivQnNCY0JvQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9CY0Isg0JzQmNCb0J7QodCQ0JIKK9Cc0JjQm9CY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0JjQm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9CY0Isg0JzQmNCg0IjQkNCd0JAg0JTQmNCf0Jsg0J7QldCmCivQnNCY0JvQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9CY0Isg0JzQmNCi0JAKK9Cc0JjQm9CY0Isg0JzQm9CQ0JTQldCdCivQnNCY0JvQmNCLINCd0JDQlNCQCivQnNCY0JvQmNCLINCd0JXQlNCV0InQmtCeCivQnNCY0JvQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCb0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQm9CY0Isg0J3QntCS0JDQmgor0JzQmNCb0JjQiyDQndCe0JLQkNCaCivQnNCY0JvQmNCLINCf0JDQndCi0JAKK9Cc0JjQm9CY0Isg0J/QkNCS0JvQlQor0JzQmNCb0JjQiyDQn9CV0KDQkAor0JzQmNCb0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9CY0Isg0J/QoNCe0JrQkAor0JzQmNCb0JjQiyDQoNCQ0JTQkAor0JzQmNCb0JjQiyDQoNCQ0JTQlQor0JzQmNCb0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQnNCY0JvQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCY0JvQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCY0JvQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCY0JvQmNCLINCg0JDQndCa0J4KK9Cc0JjQm9CY0Isg0KDQo9CW0JAKK9Cc0JjQm9CY0Isg0KHQkNCd0JTQoNCQCivQnNCY0JvQmNCLINCh0JDQktCQCivQnNCY0JvQmNCLINCh0JvQkNCS0JjQptCQCivQnNCY0JvQmNCLINCh0JvQkNCS0JjQptCQCivQnNCY0JvQmNCLINCh0JvQkNCS0JrQkAor0JzQmNCb0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQm9CY0Isg0KHQm9CQ0JLQo9CICivQnNCY0JvQmNCLINCh0J7QpNCY0IjQkAor0JzQmNCb0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQm9CY0Isg0KHQotCV0JLQkNCdCivQnNCY0JvQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JjQiyDQodCS0JXQotCb0JDQndCQCivQnNCY0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQm9CY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0JjQiyDQotCV0J7QlNCe0KDQkAor0JzQmNCb0JjQiyDQotCe0JTQntCgCivQnNCY0JvQmNCLINCi0J7QlNCe0KAKK9Cc0JjQm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQmNCb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCY0JvQmNCLINCj0KDQntCoCivQnNCY0JvQmNCLINCS0JDQodCQCivQnNCY0JvQmNCLINCS0JXQm9CY0J3QmtCQCivQnNCY0JvQmNCLINCS0JXQoNCQCivQnNCY0JvQmNCLINCS0JXQoNCQCivQnNCY0JvQmNCLINCS0JXQoNCY0KbQkAor0JzQmNCb0JjQiyDQktCb0JDQlNCY0KbQkAor0JzQmNCb0JjQiyDQktCb0JDQlNCeCivQnNCY0JvQmNCLINCS0KPQmtCY0KbQkAor0JzQmNCb0JjQiyDQl9CU0KDQkNCS0JrQngor0JzQmNCb0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQm9CY0Isg0JfQntCg0JDQnQor0JzQmNCb0JjQiyDQl9Ce0KDQkAor0JzQmNCb0JjQi9CV0JIg0JHQntCg0JjQodCb0JDQkgor0JzQmNCb0JjQi9CV0JIg0JHQoNCQ0J3QmtCeCivQnNCY0JvQmNCL0JXQkiDQodCb0JDQktCa0J4KK9Cc0JjQm9CY0IvQldCSINCS0JDQodCY0JvQmNCI0JUKK9Cc0JjQm9CY0IvQldCSINCS0JjQmtCV0J3QotCY0IjQlQor0JzQmNCb0JjQi9CV0JLQmNCLINCW0JjQktCe0KDQkNCUCivQnNCY0JvQmNCL0JXQktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQi9CV0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0IvQldCS0JjQiyDQgtCj0KDQkNCCCivQnNCY0JvQmNCL0JXQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQkdCe0KDQmNCo0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9CY0IvQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CY0IvQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCL0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQi9CV0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JjQm9CY0IvQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQmNCb0JjQi9CV0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQmtCh0JXQndCY0IjQkCDQlNCgINCh0KLQntCc0JDQotCe0JvQntCTCivQnNCY0JvQmNCL0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQnNCQ0KDQmtCeCivQnNCY0JvQmNCL0JXQktCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cc0JjQm9CY0IvQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0JjQi9CV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0JvQmNCL0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9CY0IvQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0JjQi9CV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCY0JvQmNCL0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JjQm9CY0IvQldCS0JjQiyDQndCQ0KLQkNCo0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQn9CQ0JLQm9CVCivQnNCY0JvQmNCL0JXQktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0JjQi9CV0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCY0JvQmNCL0JXQktCY0Isg0KDQkNCI0JrQngor0JzQmNCb0JjQi9CV0JLQmNCLINCh0JvQkNCC0JDQndCQCivQnNCY0JvQmNCL0JXQktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCL0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0JjQi9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CY0IvQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCL0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0JjQi9CV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9CY0IvQldCS0JjQiyDQodCf0JDQodCeCivQnNCY0JvQmNCL0JXQktCY0Isg0KHQotCQ0J3QkAor0JzQmNCb0JjQi9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JjQi9CV0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JjQi9CV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCb0JjQi9CV0JLQmNCLINCS0JXQm9CY0KjQkAor0JzQmNCb0JjQi9CV0JLQmNCLINCS0JXQoNCe0InQo9CRCivQnNCY0JvQmNCL0JXQktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cc0JjQm9CY0IvQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQmNCL0JXQktCY0Isg0JLQo9Ca0J7QnNCY0KAKK9Cc0JjQm9CY0KYg0JrQkNCg0J7QiQor0JzQmNCb0JjQlNCg0JDQkyDQmtCg0KHQotCeCivQnNCY0JvQmNCU0KDQkNCT0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JzQmNCb0JjQlNCg0JDQk9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQm9CY0JTQoNCQ0JPQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQnNCY0JvQmNCU0KDQkNCT0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQmNCU0KDQkNCT0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCY0JvQmNCU0KDQkNCT0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JjQm9CY0JTQoNCQ0JPQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCI0JDQqC3Qn9CQ0JLQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQmNCb0JjQiNCQ0KjQldCS0JjQiyDQltCY0JLQntCg0JDQlAor0JzQmNCb0JjQiNCQ0KjQldCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0JvQmNCI0JDQqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0IjQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQmNCI0JXQktCY0Isg0ILQo9Cg0JDQggor0JzQmNCb0JjQmtCY0Isg0JTQoNCQ0JPQntCI0JUKK9Cc0JjQm9CY0JrQmNCLINCh0JjQnNCQCivQnNCY0JvQmNCdINCW0JjQktCQ0J0KK9Cc0JjQm9CY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQmNCdINCU0KPQqNCQ0J0KK9Cc0JjQm9CY0J0g0JTQo9Co0JDQnQor0JzQmNCb0JjQnSDQmNCS0JDQnQor0JzQmNCb0JjQnSDQiNCe0JLQkNCdCivQnNCY0JvQmNCdINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQmNCdINCc0JjQm9CY0KbQkAor0JzQmNCb0JjQnSDQnNCe0JzQmNCgCivQnNCY0JvQmNCdINCg0JDQlNCY0JLQntCIINCU0KAKK9Cc0JjQm9CY0J0g0KDQkNCU0JjQktCe0IgKK9Cc0JjQm9CY0J0g0KHQndCV0JbQkNCd0JAKK9Cc0JjQm9CY0J0g0KHQotCV0JLQkNCdCivQnNCY0JvQmNCdINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCb0JjQnSDQktCe0IjQmNCh0JvQkNCSINCd0J7QktCY0J3QkNCgCivQnNCY0JvQmNCdINCX0JTQoNCQ0JLQmtCeINCU0JjQn9CbINCY0J3Qkwor0JzQmNCb0JjQnSDQl9Ce0KDQmNCm0JAKK9Cc0JjQm9CY0J3Qp9CY0Isg0KfQkNCh0JvQkNCSCivQnNCY0JvQmNCd0KfQmNCLINCh0KLQntCI0JDQnQor0JzQmNCb0JjQndCY0Isg0KDQkNCU0JXQndCa0J4KK9Cc0JjQm9CY0J3QmNCLINCg0JDQiNCa0J4KK9Cc0JjQm9CY0J3QmtCe0JIg0JbQmNCS0JDQnQor0JzQmNCb0JjQndCa0J7QkiDQltCY0JLQntCI0JjQnQor0JzQmNCb0JjQndCa0J7QkiDQkNCd0ILQldCb0JrQkAor0JzQmNCb0JjQndCa0J7QkiDQkdCe0JbQkAor0JzQmNCb0JjQndCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9CY0J3QmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQmNCd0JrQntCSINCR0KDQkNCd0JrQngor0JzQmNCb0JjQndCa0J7QkiDQlNCQ0J3QmNCb0J4KK9Cc0JjQm9CY0J3QmtCe0JIg0JTQo9Co0JDQnQor0JzQmNCb0JjQndCa0J7QkiDQmNCS0JDQnQor0JzQmNCb0JjQndCa0J7QkiDQiNCj0JvQmtCQCivQnNCY0JvQmNCd0JrQntCSINCb0JDQl9CQ0KAKK9Cc0JjQm9CY0J3QmtCe0JIg0InQo9CR0JjQptCQCivQnNCY0JvQmNCd0JrQntCSINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0J3QmtCe0JIg0JzQmNCb0JjQptCQCivQnNCY0JvQmNCd0JrQntCSINCd0JXQndCQ0JQKK9Cc0JjQm9CY0J3QmtCe0JIg0J3QldCd0JDQlAor0JzQmNCb0JjQndCa0J7QkiDQndCY0JrQntCb0JAKK9Cc0JjQm9CY0J3QmtCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0JjQndCa0J7QkiDQktCV0KDQkAor0JzQmNCb0JjQndCa0J7QkiDQktCV0KHQldCb0JjQnQor0JzQmNCb0JjQndCa0J7QkiDQktCb0JDQiNCa0J4KK9Cc0JjQm9CY0J3QmtCe0JIg0JfQntCg0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQndCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQndCa0J7QktCY0Isg0ILQo9Cg0J4KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCR0JjQidCQ0J3QkAor0JzQmNCb0JjQndCa0J7QktCY0Isg0JHQntCI0J4KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JzQmNCb0JjQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0JXQotCV0JvQmtCQCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQmNCS0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0JjQktCQ0J0KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCY0JLQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQmNCS0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0JjQndCa0J7QktCY0Isg0IjQntCS0JjQptCQCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCc0JDQoNCQCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCc0JjQm9CY0IsKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0JzQmNCb0JjQndCa0J7QktCY0Isg0J3QntCS0JDQmgor0JzQmNCb0JjQndCa0J7QktCY0Isg0J/QkNCd0KLQkAor0JzQmNCb0JjQndCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0JjQndCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQodCc0JjQidCa0JAKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCh0KDQldCi0J4KK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCS0JjQlNCQCivQnNCY0JvQmNCd0JrQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cc0JjQm9CY0J3QmtCe0JLQmNCLINCS0J7QiNCQCivQnNCY0JvQmNCd0J7QkiDQk9CQ0JLQoNCQCivQnNCY0JvQmNCd0J7QkiDQiNCV0JvQldCd0JrQngor0JzQmNCb0JjQndCe0JIg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9CY0J3QntCSINCc0JjQoNCI0JDQndCQCivQnNCY0JvQmNCd0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQnNCY0JvQmNCd0J7QkiDQndCV0JLQldCd0JAKK9Cc0JjQm9CY0J3QntCSINCd0JjQmtCe0JvQkAor0JzQmNCb0JjQndCe0JIg0KDQkNCU0JjQktCe0IgKK9Cc0JjQm9CY0J3QntCSINCh0JvQkNCS0JrQngor0JzQmNCb0JjQndCe0JIg0KHQotCV0JLQkNCdCivQnNCY0JvQmNCd0J7QkiDQodCS0JXQotCY0KHQm9CQ0JIKK9Cc0JjQm9CY0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQnNCY0JvQmNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9CY0J3QntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JzQmNCb0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JjQndCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQnNCY0JvQmNCd0J7QktCY0Isg0JvQkNCX0J4KK9Cc0JjQm9CY0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCb0JjQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQmNCd0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQm9CY0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0JvQmNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0JvQmNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9CY0J3QntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JzQmNCb0JjQndCe0JLQmNCLINCh0JDQktCQCivQnNCY0JvQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0JjQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCb0JjQndCe0JLQmNCLINCh0KLQldCS0JAKK9Cc0JjQm9CY0J3QntCS0JjQiyDQotCY0JzQkAor0JzQmNCb0JjQndCe0JLQmNCLINCS0IjQldCa0J7QodCb0JDQkgor0JzQmNCb0JjQndCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0JjQndCh0JrQmCDQkNCg0J/QkNCUCivQnNCY0JvQmNCd0KHQmtCYINCV0KDQltCV0JHQldCiCivQnNCY0JvQmNCd0KHQmtCYINCT0JDQkdCe0KAKK9Cc0JjQm9CY0J3QodCa0Jgg0JPQntCg0JTQkNCd0JAKK9Cc0JjQm9CY0J3QodCa0Jgg0IjQldCb0JXQndCQCivQnNCY0JvQmNCd0KHQmtCYINCI0JXQm9CV0J3QkAor0JzQmNCb0JjQndCh0JrQmCDQm9CQ0JTQmNCh0JvQkNCSCivQnNCY0JvQmNCd0KHQmtCYINCc0JjQpdCQ0JjQm9CeCivQnNCY0JvQmNCd0KHQmtCYINCd0JjQmtCe0JvQkAor0JzQmNCb0JjQndCh0JrQmCDQotCV0J7QlNCe0KAKK9Cc0JjQm9CY0J3QodCa0Jgg0JLQmNCa0KLQntCgCivQnNCY0JvQmNCd0KHQmtCYINCS0JjQmtCi0J7QoAor0JzQmNCb0JjQndCh0JrQmCDQl9Ce0JvQotCQ0J0KK9Cc0JjQm9CY0KHQkNCS0JDQpiDQltCY0JLQkNCdCivQnNCY0JvQmNCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCb0JjQodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkiDQlNCgINCf0KDQntCkCivQnNCY0JvQmNCh0JDQktCJ0JXQktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0JjQodCQ0JLQidCV0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Cc0JjQm9CY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0JzQmNCb0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQoNCn0JXQotCQCivQnNCY0JvQmNCh0JDQktCJ0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JzQmNCb0JjQodCQ0JLQidCV0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cc0JjQm9CY0KHQkNCS0InQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQmNCS0J7QiNCn0JXQkiDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0JvQmNCS0J7QiNCn0JXQkiDQodCi0JXQktCQ0J0KK9Cc0JjQm9CY0JLQntCI0KfQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0JjQktCe0IjQqNCQINCb0JDQl9CQ0KAKK9Cc0JjQm9CY0JLQntCI0KjQmNCdINCI0J7QktCQ0J0KK9Cc0JjQm9CY0JLQntCI0KjQmNCdINCf0JDQiNCQCivQnNCY0JvQmNCS0J7QiNCV0JIg0JDQndCY0KbQkAor0JzQmNCb0JjQktCe0IjQldCSINCR0J7QoNCY0JLQntCICivQnNCY0JvQmNCS0J7QiNCV0JIg0JPQoNCQ0JTQntCI0JUKK9Cc0JjQm9CY0JLQntCI0JXQkiDQiNCe0JLQkNCd0JrQkAor0JzQmNCb0JjQktCe0IjQldCSINCa0J7QndCh0KLQkNCd0KLQmNCdCivQnNCY0JvQmNCS0J7QiNCV0JIg0JvQo9Ca0JAKK9Cc0JjQm9CY0JLQntCI0JXQkiDQnNCY0KXQkNCI0JvQngor0JzQmNCb0JjQktCe0IjQldCSINCc0JjQm9CQ0J3QkAor0JzQmNCb0JjQktCe0IjQldCSINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0JLQntCI0JXQkiDQnNCY0JvQkNCdCivQnNCY0JvQmNCS0J7QiNCV0JIg0JzQmNCb0J7QqAor0JzQmNCb0JjQktCe0IjQldCSINCc0JvQkNCU0JXQnQor0JzQmNCb0JjQktCe0IjQldCSINCd0JDQlNCQCivQnNCY0JvQmNCS0J7QiNCV0JIg0J/QkNCS0JvQlQor0JzQmNCb0JjQktCe0IjQldCSINCh0J7QpNCY0IjQkAor0JzQmNCb0JjQktCe0IjQldCSINCh0J7QpNCY0IjQkAor0JzQmNCb0JjQktCe0IjQldCSINCh0J7QpNCY0IjQkAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQltCY0JLQmtCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCR0JjQidCQ0J3QkAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQkdCj0JTQmNCh0JvQkNCSCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCY0JvQmNCI0JAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0IjQkNCT0J7QlNCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCI0JXQm9CV0J3QkAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JzQkNCg0JjQndCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JzQmNCb0JXQndCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQoNCQ0JTQntCI0JUKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQodCQ0JLQngor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0KHQm9CQ0JLQndCQCivQnNCY0JvQmNCS0J7QiNCV0JLQmNCLINCh0KLQntCI0JDQndCa0JAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JLQntCI0JAKK9Cc0JjQm9CY0JLQntCI0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQktCj0KfQngor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JzQmNCb0JjQktCe0IjQldCS0JjQiyDQl9Ce0KDQkAor0JzQmNCJ0JDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQidCQ0J3QmNCLINCW0JjQktCa0JAKK9Cc0JjQidCQ0J3QmNCLINCU0KDQkNCT0JDQnQor0JzQmNCJ0JDQndCY0Isg0JTQo9Co0JDQnQor0JzQmNCJ0JDQndCY0Isg0IjQntCS0JDQnQor0JzQmNCJ0JDQndCY0Isg0JzQkNCg0JrQngor0JzQmNCJ0JDQndCY0Isg0J3QntCS0JDQmgor0JzQmNCJ0JDQndCY0Isg0J7QkdCg0JDQlAor0JzQmNCJ0JDQndCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JzQmNCJ0JDQndCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCb0IjQkNCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0InQkNCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0InQkNCd0JjQiyDQodCi0JDQndCa0J4KK9Cc0JjQidCQ0J3QmNCLINCS0KPQmtCe0KLQkAor0JzQmNCJ0JDQndCe0JLQmNCLINCW0JXQidCa0J4KK9Cc0JjQidCQ0J3QntCS0JjQiyDQkNCU0JDQnAor0JzQmNCJ0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCJ0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQidCQ0J3QntCS0JjQiyDQlNCj0KjQmNCm0JAKK9Cc0JjQidCQ0J3QntCS0JjQiyDQnNCY0JvQmtCQCivQnNCY0InQkNCd0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cc0JjQidCQ0J3QntCS0JjQiyDQodCi0JDQndCa0J4KK9Cc0JjQidCQ0J3QntCS0JjQiyDQktCY0JvQnNCQCivQnNCY0InQkNCd0KHQmtCYINCR0J7QqNCa0J4KK9Cc0JjQidCQ0J3QodCa0Jgg0JvQkNCX0JDQoAor0JzQmNCJ0JDQndCh0JrQmCDQl9Ce0KDQmNCm0JAKK9Cc0JjQidCQ0J3QodCa0Jgg0JfQntCg0JjQptCQCivQnNCY0InQkNCi0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCJ0JDQotCe0JLQmNCLINCc0JDQoNCY0KbQkAor0JzQmNCJ0JDQotCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQidCQ0KLQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JzQmNCJ0JDQotCe0JLQmNCLINCS0JXQoNCQCivQnNCY0InQldCo0JjQiyDQndCV0J3QkNCUCivQnNCY0InQldCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCJ0JXQktCY0Isg0JbQmNCS0JrQngor0JzQmNCJ0JXQktCY0Isg0JDQlNCQ0JwKK9Cc0JjQidCV0JLQmNCLINCQ0J3QmtCQCivQnNCY0InQldCS0JjQiyDQkdCe0JPQlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCY0InQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0InQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0InQldCS0JjQiyDQk9CQ0JLQoNCY0JvQngor0JzQmNCJ0JXQktCY0Isg0IjQkNCK0JAKK9Cc0JjQidCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQidCV0JLQmNCLINCI0J7QktCeCivQnNCY0InQldCS0JjQiyDQm9CQ0JfQkNCgCivQnNCY0InQldCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQidCV0JLQmNCLINCJ0KPQkdCY0J3QmtCeCivQnNCY0InQldCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0JzQmNCJ0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQidCV0JLQmNCLINCd0JDQotCQ0KjQkAor0JzQmNCJ0JXQktCY0Isg0J3QldCU0JXQidCa0J4KK9Cc0JjQidCV0JLQmNCLINCe0JHQoNCQ0JQKK9Cc0JjQidCV0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCY0InQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQidCV0JLQmNCLINCS0JXQoNCY0KbQkAor0JzQmNCJ0JXQktCY0Isg0JLQldCg0JjQptCQCivQnNCY0InQldCS0JjQiyDQktCY0J3QmtCeCivQnNCY0InQmNCLINCh0JvQkNCS0JrQngor0JzQmNCJ0JrQntCSINCC0KPQoNCY0KbQkAor0JzQmNCJ0JrQntCS0JDQpiDQkdCe0JPQntCh0JDQkgor0JzQmNCJ0JrQntCS0JDQpiDQlNCg0JDQk9Ce0JzQmNCgCivQnNCY0InQmtCe0JLQkNCmINCf0JXQotCQ0KAKK9Cc0JjQidCa0J7QktCQ0KYg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQidCa0J7QktCQ0KYg0KLQkNCi0IjQkNCd0JAKK9Cc0JjQidCa0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0JjQidCa0J7QktCY0Isg0JbQmNCS0JDQnQor0JzQmNCJ0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0InQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JjQidCa0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Cc0JjQidCa0J7QktCY0Isg0JTQntCR0KDQmNCb0J4KK9Cc0JjQidCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQnNCY0InQmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQnNCY0InQmtCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cc0JjQidCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCJ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0InQmtCe0JLQmNCLINCb0JXQndCa0JUKK9Cc0JjQidCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQnNCY0InQmtCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JzQmNCJ0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cc0JjQidCa0J7QktCY0Isg0InQo9Cf0KfQlQor0JzQmNCJ0JrQntCS0JjQiyDQnNCQ0KDQkAor0JzQmNCJ0JrQntCS0JjQiyDQnNCY0IvQkAor0JzQmNCJ0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQidCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQnNCY0InQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQidCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQidCa0J7QktCY0Isg0JzQmNCg0JAKK9Cc0JjQidCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQidCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQidCa0J7QktCY0Isg0JzQmNCi0JAKK9Cc0JjQidCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCY0InQmtCe0JLQmNCLINCc0J7QiNCh0JAKK9Cc0JjQidCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQINCU0KAg0JjQndCTCivQnNCY0InQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCJ0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQidCa0J7QktCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cc0JjQidCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCJ0JrQntCS0JjQiyDQoNCQ0KXQmNCJ0JAKK9Cc0JjQidCa0J7QktCY0Isg0KDQntCh0JAKK9Cc0JjQidCa0J7QktCY0Isg0KDQntCh0JAKK9Cc0JjQidCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCJ0JrQntCS0JjQiyDQodCi0JDQnNCV0J3QmtCeINCU0KAg0JvQldCa0JDQoAor0JzQmNCJ0JrQntCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQnNCY0InQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0JzQmNCJ0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCY0InQmtCe0JLQmNCLINCS0JXQm9CY0JHQntCgCivQnNCY0InQntCI0JrQntCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0JzQmNCJ0J7QiNCa0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0JzQmNCJ0J7QiNCa0J7QktCY0Isg0JXQnNCY0JvQmNCI0JAKK9Cc0JjQidCe0IjQmtCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JzQmNCJ0J7QiNCa0J7QktCY0Isg0InQo9CR0JjQqNCQCivQnNCY0InQo9CoINCC0KPQoNCeCivQnNCY0InQo9CoINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0InQo9CoINCR0KDQkNCd0JrQngor0JzQmNCJ0KPQqCDQkdCg0JDQndCa0J4KK9Cc0JjQidCj0Kgg0JTQoNCQ0JPQngor0JzQmNCJ0KPQqCDQlNCj0KjQkNCd0JrQkAor0JzQmNCJ0KPQqCDQlNCj0KjQkNCdCivQnNCY0InQo9CoINCV0JLQkAor0JzQmNCJ0KPQqCDQiNCe0JLQkNCdINCU0KAKK9Cc0JjQidCj0Kgg0IjQntCS0JDQnQor0JzQmNCJ0KPQqCDQiNCe0JLQkNCdCivQnNCY0InQo9CoINCa0JDQotCQ0KDQmNCd0JAKK9Cc0JjQidCj0Kgg0InQmNCJ0JDQndCQCivQnNCY0InQo9CoINCJ0KPQkdCY0KbQkAor0JzQmNCJ0KPQqCDQnNCQ0KDQmNCI0JAKK9Cc0JjQidCj0Kgg0JzQkNCg0JjQiNCQCivQnNCY0InQo9CoINCc0JjQm9CQ0J0KK9Cc0JjQidCj0Kgg0JzQmNCb0JUKK9Cc0JjQidCj0Kgg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQidCj0Kgg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQidCj0Kgg0J3QmNCa0J7Qm9CQCivQnNCY0InQo9CoINCf0JXQotCQ0KAKK9Cc0JjQm9Ca0J7QkiDQgtCj0KDQgtCY0J3QmtCQCivQnNCY0JvQmtCe0JIg0ILQo9Cg0ILQmNCd0JrQkAor0JzQmNCb0JrQntCSINCQ0KbQkAor0JzQmNCb0JrQntCSINCU0KDQkNCT0JDQnSDQlNCgCivQnNCY0JvQmtCe0JIg0JTQoNCQ0JPQmNCK0JAKK9Cc0JjQm9Ca0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0JzQmNCb0JrQntCSINCT0J7QoNCU0JDQndCQCivQnNCY0JvQmtCe0JIg0IjQkNCh0JzQmNCd0JAKK9Cc0JjQm9Ca0J7QkiDQiNCV0JvQldCd0JAKK9Cc0JjQm9Ca0J7QkiDQm9CQ0JfQkNCgCivQnNCY0JvQmtCe0JIg0JvQkNCX0JDQoAor0JzQmNCb0JrQntCSINCh0JvQkNCS0JjQptCQCivQnNCY0JvQmtCe0JIg0KHQotCQ0J3QntCI0JUKK9Cc0JjQm9Ca0J7QkiDQodCi0JXQktCQ0J0KK9Cc0JjQm9Ca0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9Ca0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQmtCe0JLQmNCLINCS0JXQidCa0J4KK9Cc0JjQm9Cd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9Cd0J7QktCY0Isg0JrQkNCc0JXQndCa0J4KK9Cc0JjQm9Cd0J7QktCY0Isg0JvQkNCX0JDQoAor0JzQmNCb0J3QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQmNCb0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JjQm9Cd0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JzQmNCb0J3QntCS0JjQiyDQl9Ce0KDQkAor0JzQmNCb0J4g0JPQmNCX0JXQm9CQCivQnNCY0JvQntCoINCY0JLQkNCdCivQnNCY0JvQntCo0KfQmNCdINCh0KLQkNCo0JAKK9Cc0JjQm9Ce0KjQp9CY0J0g0KHQotCV0JLQkNCdCivQnNCY0JvQntCo0KfQmNCdINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQm9Ce0KjQldCSINCW0JDQoNCa0J4g0JTQoAor0JzQmNCb0J7QqNCV0JIg0JbQmNCa0JAKK9Cc0JjQm9Ce0KjQldCSINCW0JjQktCa0JAKK9Cc0JjQm9Ce0KjQldCSINCW0JjQktCe0IjQmNCdCivQnNCY0JvQntCo0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0J7QqNCV0JIg0JDQndCC0JXQm9CY0IjQkAor0JzQmNCb0J7QqNCV0JIg0JHQntCo0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQm9Ce0KjQldCSINCR0KDQkNCd0JjQodCb0JDQktCQCivQnNCY0JvQntCo0JXQkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0KjQldCSINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0J7QqNCV0JIg0JTQntCR0KDQmNCS0J7QiAor0JzQmNCb0J7QqNCV0JIg0JTQo9Co0JDQnQor0JzQmNCb0J7QqNCV0JIg0JTQo9Co0JrQngor0JzQmNCb0J7QqNCV0JIg0IjQntCS0JDQndCa0JAKK9Cc0JjQm9Ce0KjQldCSINCI0J7QktCQ0J0KK9Cc0JjQm9Ce0KjQldCSINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQntCo0JXQkiDQnNCQ0KDQmNCI0JAKK9Cc0JjQm9Ce0KjQldCSINCc0JjQi9CeCivQnNCY0JvQntCo0JXQkiDQnNCY0KXQkNCI0JvQngor0JzQmNCb0J7QqNCV0JIg0JzQmNCb0JDQnQor0JzQmNCb0J7QqNCV0JIg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9Ce0KjQldCSINCc0JjQm9CY0JLQntCICivQnNCY0JvQntCo0JXQkiDQnNCY0InQkNCd0JAKK9Cc0JjQm9Ce0KjQldCSINCc0JjQm9Ce0KgKK9Cc0JjQm9Ce0KjQldCSINCc0JjQm9Ce0KgKK9Cc0JjQm9Ce0KjQldCSINCc0JjQm9Ce0KgKK9Cc0JjQm9Ce0KjQldCSINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCo0JXQkiDQnNCY0JvQntCg0JDQlAor0JzQmNCb0J7QqNCV0JIg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9Ce0KjQldCSINCc0JjQoNCQCivQnNCY0JvQntCo0JXQkiDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0J7QqNCV0JIg0JzQmNCg0JrQngor0JzQmNCb0J7QqNCV0JIg0JzQmNCg0J7QodCb0JDQktCQCivQnNCY0JvQntCo0JXQkiDQnNCY0KDQntCh0JvQkNCSCivQnNCY0JvQntCo0JXQkiDQnNCY0KLQkAor0JzQmNCb0J7QqNCV0JIg0JzQntCc0KfQmNCb0J4KK9Cc0JjQm9Ce0KjQldCSINCd0JXQkdCe0IjQqNCQCivQnNCY0JvQntCo0JXQkiDQndCe0JLQmtCQCivQnNCY0JvQntCo0JXQkiDQn9CV0KLQkNCgCivQnNCY0JvQntCo0JXQkiDQoNCQ0JTQkAor0JzQmNCb0J7QqNCV0JIg0KHQkNCS0JAKK9Cc0JjQm9Ce0KjQldCSINCh0JvQkNCS0JrQkAor0JzQmNCb0J7QqNCV0JIg0KHQntCk0JjQiNCQCivQnNCY0JvQntCo0JXQkiDQodCi0JDQndCQCivQnNCY0JvQntCo0JXQkiDQodCi0J7QiNCQ0J3QmtCQCivQnNCY0JvQntCo0JXQkiDQktCQ0KHQkCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQm9Ce0KjQldCSINCS0JDQodCQCivQnNCY0JvQntCo0JXQkiDQktCV0JvQmNCc0JjQoAor0JzQmNCb0J7QqNCV0JIg0JfQm9CQ0KLQntCc0JjQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQnNCY0JvQntCo0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkNCd0JDQodCi0JDQl9CY0IjQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCQ0J3QmtCQCivQnNCY0JvQntCo0JXQktCY0Isg0JHQmNCJ0JDQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0JHQmNCh0JXQoNCa0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JHQntCW0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCe0IjQkNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0KbQktCV0KLQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0KbQktCV0KLQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JTQkNCd0JjQptCQCivQnNCY0JvQntCo0JXQktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCV0IjQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQntCo0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0JvQntCo0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQldCS0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQldCS0JjQptCQCivQnNCY0JvQntCo0JXQktCY0Isg0JPQoNCe0JfQlNCQCivQnNCY0JvQntCo0JXQktCY0Isg0JjQk9CK0JDQogor0JzQmNCb0J7QqNCV0JLQmNCLINCY0JLQkNCd0JrQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCI0JDQmtCe0JIKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQiNCQ0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0IjQldCb0JXQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0IjQldCb0JXQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0IjQldCb0JXQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0IjQldCb0JXQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0IjQldCg0JjQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCI0J7QktCY0KbQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCI0KPQm9Ca0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQmtCb0JDQo9CU0JjQiNCVCivQnNCY0JvQntCo0JXQktCY0Isg0JrQoNCY0KHQotCY0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCb0JDQotCY0J3QmtCQCivQnNCY0JvQntCo0JXQktCY0Isg0JvQkNCX0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQidCj0JHQmNCo0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCb0J7Ql9CQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JDQoNCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQkNCg0JjQptCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQkNCg0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JDQoNCi0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0KXQkNCY0JvQngor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQpdCQ0InQmNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0J7QqAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCg0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0JvQntCo0JXQktCY0Isg0JzQmNCi0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCY0JvQntCo0JXQktCY0Isg0J3QkNCU0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQndCV0JLQldCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQndCe0JLQmNCm0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQntCR0KDQkNCUCivQnNCY0JvQntCo0JXQktCY0Isg0J7Qm9CT0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQntCb0JjQktCV0KDQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCf0JDQktCb0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQn9CQ0JLQm9CVCivQnNCY0JvQntCo0JXQktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQoNCQ0JTQlSDQlNCgCivQnNCY0JvQntCo0JXQktCY0Isg0KDQkNCU0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQoNCQ0JTQlQor0JzQmNCb0J7QqNCV0JLQmNCLINCg0JDQlNCVCivQnNCY0JvQntCo0JXQktCY0Isg0KDQkNCU0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCg0JDQiNCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQoNCQ0IjQmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0KDQkNCi0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCg0JjQodCi0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQoNCj0JbQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCg0KPQltCY0KbQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCh0JDQktCQCivQnNCY0JvQntCo0JXQktCY0Isg0KHQkNCS0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCQ0JLQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCh0JDQktCQCivQnNCY0JvQntCo0JXQktCY0Isg0KHQldCb0JXQndCa0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCb0JDQktCQCivQnNCY0JvQntCo0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0JvQntCo0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JzQmNCb0J7QqNCV0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQnNCY0JvQntCo0JXQktCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCg0JHQntCR0KDQkNCdCivQnNCY0JvQntCo0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCh0KLQkNCd0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCh0KLQkNCd0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCh0KLQldCS0JjQptCQCivQnNCY0JvQntCo0JXQktCY0Isg0KHQotCe0IjQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCb0J7QqNCV0JLQmNCLINCh0JLQldCi0J7QidCj0JEKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQnNCY0JvQntCo0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0J7QqNCV0JLQmNCLINCi0JDQlNCY0IjQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQo9Cg0J7QqAor0JzQmNCb0J7QqNCV0JLQmNCLINCS0JDQodCQCivQnNCY0JvQntCo0JXQktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JzQmNCb0J7QqNCV0JLQmNCLINCS0JXQidCa0J4KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQktCV0KDQkAor0JzQmNCb0J7QqNCV0JLQmNCLINCS0JXQodCV0JvQmNCdCivQnNCY0JvQntCo0JXQktCY0Isg0JLQmNCU0J7QiNCVCivQnNCY0JvQntCo0JXQktCY0Isg0JLQm9CQ0JTQkCDQlNCY0J/QmyDQntCV0KYKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQntCo0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQmNCb0J7QqNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQktCe0IjQmtCQ0J0KK9Cc0JjQm9Ce0KjQldCS0JjQiyDQktCj0JrQkNCo0JjQnSDQlNCgINCb0JXQmtCQ0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JzQmNCb0J7QqNCV0JLQmNCLINCX0JDQpdCQ0KDQmNCI0JUKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0JzQmNCb0J7QqNCV0JLQmNCLINCX0JvQkNCi0JjQnNCY0KAKK9Cc0JjQm9Ce0KjQldCS0JjQiyDQl9Ce0KDQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQmNCb0J7QqNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQntCI0JXQktCY0Isg0JDQndCQCivQnNCY0JvQntCI0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQntCI0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQntCI0JXQktCY0Isg0KbQktCY0IjQldCi0JAKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JzQmNCb0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQntCI0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCb0J7QiNCV0JLQmNCLINCT0J7QiNCa0J4KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQmNCb0J7QiNCV0JLQmNCLINCT0KDQntCX0JTQkNCd0JAKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQiNCQ0J3QmtCeCivQnNCY0JvQntCI0JXQktCY0Isg0IjQldCb0JXQndCQCivQnNCY0JvQntCI0JXQktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JzQmNCb0J7QiNCV0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCY0JvQntCI0JXQktCY0Ist0JzQmNCb0JDQndCe0JIg0KHQktCV0KLQm9CQ0J3QkAor0JzQmNCb0J7QiNCV0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQnNCY0JvQntCI0JUg0JTQoCDQn9Cg0J7QpAor0JzQmNCb0J7QiNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCI0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCb0J7QiNCV0JLQmNCLINCc0J7QnNCY0KAg0JTQoAor0JzQmNCb0J7QiNCV0JLQmNCLINCe0JvQk9CY0KbQkAor0JzQmNCb0J7QiNCV0JLQmNCLINCf0JDQktCb0JUKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQmNCb0J7QiNCV0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0JvQntCI0JXQktCY0Isg0KDQkNCd0JrQngor0JzQmNCb0J7QiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9Ce0IjQldCS0JjQiyDQktCQ0KHQkAor0JzQmNCb0J7QiNCV0JLQmNCLINCS0JvQkNCU0JAKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQntCI0JXQktCY0Isg0JLQntCI0JjQnQor0JzQmNCb0J7QiNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQntCI0JXQktCY0Isg0JfQntCg0JDQnQor0JzQmNCb0J7QiNCV0JLQmNCLINCX0JLQntCd0JrQngor0JzQmNCb0J7QiNCY0KbQkCDQnNCY0InQkAor0JzQmNCb0J7QiNCa0J7QktCY0Isg0JbQmNCS0JDQnQor0JzQmNCb0J7QiNCa0J7QktCY0Isg0JDQptCQCivQnNCY0JvQntCI0JrQntCS0JjQiyDQkdCe0JbQkNCd0JAKK9Cc0JjQm9Ce0IjQmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQnNCY0JvQntCI0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQntCI0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQntCI0JrQntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JzQmNCb0J7QiNCa0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JzQmNCb0J7QiNCa0J7QktCY0Isg0JrQoNCY0KHQotCQCivQnNCY0JvQntCI0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQmNCb0J7QiNCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9Cc0JjQm9Ce0IjQmtCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0JvQntCI0JrQntCS0JjQiyDQnNCY0KDQntCJ0KPQkQor0JzQmNCb0J7QiNCa0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9Cc0JjQm9Ce0Jwg0JjQnNCg0JUKK9Cc0JjQm9Ce0Jwg0JjQnNCg0JUKK9Cc0JjQm9Ce0KDQkNCU0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9Ce0KDQkNCU0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQm9Ce0KDQkNCU0J7QkiDQkdCe0KDQmNCh0JvQkNCS0JAKK9Cc0JjQm9Ce0KDQkNCU0J7QkiDQnNCY0JvQntCoCivQnNCY0JvQntCg0JDQlNCe0JIg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Ce0KDQkNCU0J7QkiDQoNCQ0JTQntCh0JvQkNCS0JrQkAor0JzQmNCb0J7QoNCQ0JTQntCSINCS0JjQntCb0JXQotCQCivQnNCY0JvQntCg0JDQlNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCb0J7QoNCQ0JTQntCS0JjQiyDQlNCV0IjQkNCdCivQnNCY0JvQntCg0JDQlNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QoNCQ0JTQntCS0JjQiyDQnNCY0JvQntCoCivQnNCY0JvQntCg0JDQlNCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCb0J7QoNCQ0JTQntCS0JjQiyDQl9Cb0JDQotCe0IjQlQor0JzQmNCb0J7QodCQ0JLQkNCmINCc0JjQi9CQCivQnNCY0JvQntCh0JDQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JzQmNCb0J7QodCQ0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCb0J7QodCQ0JLQmNCLINCa0KDQodCi0JDQnQor0JzQmNCb0J7QodCQ0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCb0J7QodCQ0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCY0JvQntCh0JDQktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0J7QodCQ0JLQmNCLINCg0JDQlNCY0JLQntCICivQnNCY0JvQntCh0JDQktCY0Isg0KHQotCe0IjQkAor0JzQmNCb0J7QodCQ0JLQidCV0JIg0JbQmNCS0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JIg0JbQmNCS0JrQkAor0JzQmNCb0J7QodCQ0JLQidCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCR0J7QltCY0JTQkNCgCivQnNCY0JvQntCh0JDQktCJ0JXQkiDQlNCe0JHQoNCV0J0KK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCU0KDQkNCT0JjQitCQCivQnNCY0JvQntCh0JDQktCJ0JXQkiDQidCY0InQkNCd0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCc0JXQm9CQ0J3QmNCI0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQntCh0JDQktCJ0JXQkiDQnNCY0JvQmNCm0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCd0J7QktCa0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCS0JvQkNCU0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCSINCS0J7QiNCQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JbQkNCg0JrQngor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCW0JjQktCQ0JTQmNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JbQmNCS0JrQngor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCW0JjQktCa0J4KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQkNCU0JDQnCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JHQntCg0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JTQldCI0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0IjQntCS0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQm9CQ0JfQkNCgCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9CVCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JjQptCQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JrQkAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQoAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQndCY0JrQntCb0JAg0JTQoAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCd0J7QktCY0KbQkAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCe0JvQk9CQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0J/QldCi0JDQoAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0KHQkNCS0J4KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCh0KDQldCi0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQodCi0JDQndCa0J4KK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQodCi0JXQktCeCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0J7QodCQ0JLQidCV0JLQmNCLINCS0JXQoNCQCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JLQldCg0JAKK9Cc0JjQm9Ce0KHQkNCS0InQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQnNCY0JvQntCh0JDQktCJ0JXQktCY0Isg0JfQntCg0JDQnQor0JzQmNCb0J7QodCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9Ce0KHQntCS0JjQiyDQnNCY0JvQntCoCivQnNCY0JvQntCh0J7QktCY0Isg0JzQmNCg0JrQngor0JzQmNCb0J7QktCn0JXQktCY0Isg0JzQmNCb0J7QqAor0JzQmNCb0J7QktCQ0KYg0JTQo9Co0JDQnQor0JzQmNCb0J7QktCQ0KYg0JPQm9CY0KjQkAor0JzQmNCb0J7QktCQ0KYg0JPQntCg0JDQnQor0JzQmNCb0J7QktCQ0KYg0JjQm9CVCivQnNCY0JvQntCS0JDQpiDQmNCb0JjQiNCQCivQnNCY0JvQntCS0JDQpiDQiNCV0JvQkAor0JzQmNCb0J7QktCQ0KYg0JzQmNCb0JDQnQor0JzQmNCb0J7QktCQ0KYg0JzQmNCb0JDQnQor0JzQmNCb0J7QktCQ0KYg0JzQmNCb0JDQnQor0JzQmNCb0J7QktCQ0KYg0J/QldCi0JDQoAor0JzQmNCb0J7QktCQ0KYg0KDQo9CW0JjQptCQCivQnNCY0JvQntCS0JDQpiDQodCY0JzQngor0JzQmNCb0J7QktCQ0KYg0KHQotCQ0J3QmtCeCivQnNCY0JvQntCS0JDQpiDQodCi0JXQktCQ0J0KK9Cc0JjQm9Ce0JLQkNCmINCh0KLQntCI0JDQnQor0JzQmNCb0J7QktCQ0J0g0JrQntCd0KHQotCQ0J3QptCQCivQnNCY0JvQntCS0JDQndCn0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCb0J7QktCQ0J3Qp9CV0JIg0JjQodCY0JTQntCgCivQnNCY0JvQntCS0JDQndCn0JXQkiDQndCY0JrQntCb0JAKK9Cc0JjQm9Ce0JLQkNCd0KfQldCSINCh0JvQntCR0J7QlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQntCS0JDQndCn0JXQkiDQodCS0JXQotCe0JfQkNCgINCU0KAKK9Cc0JjQm9Ce0JLQkNCd0JrQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9Ce0JLQkNCd0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQgtCe0KDQgtCVCivQnNCY0JvQntCS0JDQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQntCS0JDQndCe0JIg0JDQndCY0KbQkAor0JzQmNCb0J7QktCQ0J3QntCSINCR0J7QltCY0JTQkNCgCivQnNCY0JvQntCS0JDQndCe0JIg0JTQmNCc0JjQotCg0JjQiNCVINCU0JjQn9CbINCY0J3Qkwor0JzQmNCb0J7QktCQ0J3QntCSINCU0KDQkNCT0JDQnQor0JzQmNCb0J7QktCQ0J3QntCSINCT0J7QiNCa0J4KK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQk9Ce0IjQmtCeCivQnNCY0JvQntCS0JDQndCe0JIg0JPQntCg0JDQnQor0JzQmNCb0J7QktCQ0J3QntCSINCT0J7QoNCU0JDQndCQINCU0KAg0JvQldCa0JDQoAor0JzQmNCb0J7QktCQ0J3QntCSINCY0JLQkNCdCivQnNCY0JvQntCS0JDQndCe0JIg0IjQo9Cb0JrQkAor0JzQmNCb0J7QktCQ0J3QntCSINCc0JjQm9CQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQnNCY0JvQlQor0JzQmNCb0J7QktCQ0J3QntCSINCc0JjQm9CY0J3QmtCQCivQnNCY0JvQntCS0JDQndCe0JIg0JzQmNCb0JjQndCa0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQnNCY0KDQiNCQ0J3QkAor0JzQmNCb0J7QktCQ0J3QntCSINCh0JjQnNCQCivQnNCY0JvQntCS0JDQndCe0JIg0KHQotCe0IjQkNCd0JrQkAor0JzQmNCb0J7QktCQ0J3QntCSINCi0J7QlNCe0KAKK9Cc0JjQm9Ce0JLQkNCd0J7QkiDQktCQ0KHQmNCb0JjQiNCVCivQnNCY0JvQntCS0JDQndCe0JIg0JfQntCg0JDQnQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQltCY0JrQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCQ0J3QmNCm0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JDQndCY0KbQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQkdCe0JPQntCh0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQlNCe0JHQoNCY0KHQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0IrQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JPQntCg0JDQnQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCY0JLQkNCd0JrQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQmNCS0JjQptCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JrQkNCi0JDQm9CY0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCa0J7QodCQ0KDQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQmtCg0KHQotCe0JzQmNCgCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCb0KPQmtCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCc0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCd0JDQlNCQINCc0KAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCe0JHQoNCV0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCU0JDQqNCY0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCU0JUKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KDQkNCU0JjQodCb0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCg0JjQodCi0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCh0J7QitCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCh0KDQkdCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQotCQ0J3QmNCm0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQotCV0KDQmtCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0JXQodCV0JvQmNCd0JrQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQktCV0KHQndCQCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0JjQlNCQ0J0KK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQktCe0IjQkAor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Cc0JjQm9Ce0JLQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JzQmNCb0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQntCS0JDQndCe0JLQmNCLINCX0J7QoNCa0JAKK9Cc0JjQm9Ce0JLQmNCLINCn0JXQlNCeCivQnNCY0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQntCS0JjQiyDQkdCe0KjQmtCeCivQnNCY0JvQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0JjQm9Ce0JLQmNCLINCR0J7QoNCY0KjQkAor0JzQmNCb0J7QktCY0Isg0JHQntCg0J4KK9Cc0JjQm9Ce0JLQmNCLINCR0J7QoNCeCivQnNCY0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQm9Ce0JLQmNCLINCU0JXQodCY0JzQmNCgCivQnNCY0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0JvQntCS0JjQiyDQk9Ce0IjQmtCeCivQnNCY0JvQntCS0JjQiyDQk9Ce0IjQmtCeCivQnNCY0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQnNCY0JvQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JjQm9Ce0JLQmNCLINCa0KDQodCi0J4KK9Cc0JjQm9Ce0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQnNCY0JvQntCS0JjQiyDQnNCQ0IjQkAor0JzQmNCb0J7QktCY0Isg0JzQkNCg0JjQiNCQ0J0KK9Cc0JjQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Ce0JLQmNCLINCc0JjQntCc0JjQoAor0JzQmNCb0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cc0JjQm9Ce0JLQmNCLINCe0KDQm9CVCivQnNCY0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQntCS0JjQiyDQoNCQ0JTQlQor0JzQmNCb0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0JjQm9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9Ce0JLQmNCLINCh0KLQkNCd0JrQngor0JzQmNCb0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQmNCb0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cc0JjQm9Cj0KjQmNCLINCV0JLQmNCm0JAKK9Cc0JjQm9Cj0KjQmNCLINCf0JXQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0JvQo9Cd0J7QkiDQiNCe0JLQkNCdCivQnNCY0JvQo9Cd0J7QkiDQiNCj0JvQmtCQCivQnNCY0JvQo9Cd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0JvQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCb0KPQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQm9Cj0J3QntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0JzQmNCb0KPQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0JvQo9Cd0J7QktCY0Isg0JzQmNCb0KPQnQor0JzQmNCb0KPQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQnNCY0JvQo9Cd0J7QktCY0Isg0KHQn9CQ0KHQldCd0JrQngor0JzQmNCb0KPQndCe0JLQmNCLINCX0J7QoNCY0KbQkAor0JzQmNCb0KPQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQm9Cj0KLQmNCdINCW0JjQktCa0J4KK9Cc0JjQm9Cj0KLQmNCdINCI0JDQodCd0JAKK9Cc0JjQm9Cj0KLQmNCdINCc0JjQoNCQCivQnNCY0JvQo9Ci0JjQnSDQndCV0JTQldCJ0JrQngor0JzQmNCb0KPQotCY0J0g0KDQkNCi0JrQngor0JzQmNCb0KPQotCY0J0g0JLQntCI0JjQodCb0JDQkgor0JzQmNCb0KPQotCY0J3QntCSINCC0J7QmtCQCivQnNCY0JvQo9Ci0JjQndCe0JIg0JDQptCQCivQnNCY0JvQo9Ci0JjQndCe0JIg0JTQoNCQ0JPQntCh0JvQkNCSCivQnNCY0JvQo9Ci0JjQndCe0JIg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQiNCe0JLQkNCdCivQnNCY0JvQo9Ci0JjQndCe0JIg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQm9CQ0JfQkNCgCivQnNCY0JvQo9Ci0JjQndCe0JIg0JzQmNCb0JjQodCQ0JIKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQnNCY0KLQkAor0JzQmNCb0KPQotCY0J3QntCSLdCd0JXQlNCV0InQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0JvQo9Ci0JjQndCe0JIg0KDQkNCU0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0JvQo9Ci0JjQndCe0JIg0KHQkNCS0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQodCQ0JLQldCi0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QkiDQotCe0JTQntCgCivQnNCY0JvQo9Ci0JjQndCe0JIg0JLQldCb0JjQkdCe0KAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KjQotCV0KTQmNCm0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JbQmNCa0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0ILQo9Cg0ILQmNCm0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JHQntCo0JrQngor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQkdCe0IjQkNCdCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQlNCQ0J3QmNCI0JXQm9CQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JPQkNCS0KDQmNCb0J4KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JjQk9CK0JDQogor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0IjQo9Cb0JrQmNCm0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JvQmNCU0JjQiNCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCb0JjQlNCY0IjQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQidCj0JHQngor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCQ0J3QlNCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JDQoNCi0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQldCb0JDQndCY0IjQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0JjQndCa0J4KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0J7QiNCa0J4KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQmNCe0JzQmNCgCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkCDQlNCgCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JzQntCc0JjQoAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQntCb0JPQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KDQkNCU0JUKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KDQkNCU0JjQqNCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCh0JDQqNCQCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQodCg0JXQotCV0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KHQotCQ0J3QkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQktCV0KDQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQktCV0KDQkAor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQktCV0KDQmNCm0JAg0JTQoAor0JzQmNCb0KPQotCY0J3QntCS0JjQiy3QktCj0JrQodCQ0J0g0J7Qm9CT0JAKK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JzQmNCb0KPQotCY0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0JvQo9Ci0JjQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQm9Cj0KLQmNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JzQmNCc0JjQptCQINCc0JvQkNCU0JXQnQor0JzQmNCc0JjQptCQINCd0JXQndCQ0JQKK9Cc0JjQnNCY0KbQkCDQndCV0J3QkNCUCivQnNCY0JzQmNCm0JAg0J3QldCd0JDQlAor0JzQmNCd0KfQmNCLINCc0JjQoNCe0InQo9CRCivQnNCY0J3Qp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCd0KfQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQnNCY0J3QlNCQLdCg0JDQgtCV0J3QntCS0JjQiyDQldCb0JXQndCQCivQnNCY0J3QlNCQINCi0JjQkdCe0KAKK9Cc0JjQndCU0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQmNCd0JTQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCd0JXQkCDQoNCe0JzQkNCdCivQnNCY0J3QmNCLINCc0JjQm9Ce0KHQkNCSCivQnNCY0J3QmNCLINCd0JDQlNCQCivQnNCY0J3QmNCLINCh0JvQkNCS0JrQngor0JzQmNCd0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCY0J3QmNCLINCX0J7QoNCa0JAKK9Cc0JjQndCY0Jog0KjQkNCd0JTQntCgCivQnNCY0J3QmNCaINCI0J7QodCY0J8KK9Cc0JjQitCQINCc0JDQiNCQCivQnNCY0IrQkCDQnNCY0JvQo9Ci0JjQnQor0JzQmNCe0Kcg0JbQldCJ0JrQngor0JzQmNCe0Kcg0JjQktCQ0J0KK9Cc0JjQntCnINCX0JTQldCd0JrQngor0JzQmNCe0KfQmNCd0J7QktCY0Isg0JzQkNCg0JrQngor0JzQmNCe0KfQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCe0JTQkNCd0JjQiyDQlNCQ0J3QmtCeCivQnNCY0J7QlNCg0JDQkyDQkNCd0JAKK9Cc0JjQntCU0KDQkNCTINCc0JjQoNCa0J4KK9Cc0JjQntCU0KDQkNCTINCf0JXQoNCeCivQnNCY0J7QlNCg0JDQkyDQl9CU0KDQkNCS0JrQkAor0JzQmNCe0JTQoNCQ0JMg0JfQntCg0JjQptCQCivQnNCY0J7QlNCg0JDQk9Ce0JLQmNCLINCQ0JvQkNCa0KHQkNCd0JTQkNCgCivQnNCY0J7QlNCg0JDQk9Ce0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQmNCe0JTQoNCQ0JPQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCY0J7QlNCg0JDQk9Ce0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0JTQo9Co0JrQngor0JzQmNCe0JTQoNCQ0JPQntCS0JjQiyDQnNCY0JvQldCd0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JzQmNCe0JTQoNCQ0JPQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0KLQntCo0JAKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0JLQldCg0JAKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Ist0JLQo9Ca0JDQndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cc0JjQntCU0KDQkNCT0J7QktCY0Isg0JfQntCg0JjQptCQCivQnNCY0J7QmiDQktCb0JDQodCi0JjQnNCY0KAKK9Cc0JjQntCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQnNCY0J7QmtCe0JLQmNCLINCU0JDQndCY0KbQkAor0JzQmNCe0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCY0J7Qm9Ch0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0J7Qm9Ch0JrQmCDQlNCj0KjQmtCeCivQnNCY0J7Qm9Ch0JrQmCDQodCi0JDQndCa0J4KK9Cc0JjQntCb0KHQmtCYINCh0KLQldCS0JDQnQor0JzQmNCg0KfQldCi0JjQiyDQiNCe0JLQkNCdCivQnNCY0KDQp9CV0KLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQoNCn0JXQotCY0Isg0JzQmNCb0JjQptCQCivQnNCY0KDQp9CV0KLQmNCLINCc0JjQm9Cj0KLQmNCdCivQnNCY0KDQp9CV0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cc0JjQoNCn0JXQotCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0KDQp9CV0KLQmNCLINCX0J7QoNCQ0J0KK9Cc0JjQoNCn0JXQotCY0Isg0JfQntCg0JDQnQor0JzQmNCg0KfQldCS0KHQmtCYINCc0JjQpdCQ0JjQm9CeCivQnNCY0KDQp9CY0Isg0JrQntCS0JjQidCa0JAKK9Cc0JjQoNCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCg0KfQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCg0KfQmNCLINCg0JDQlNCe0JLQkNCdCivQnNCY0KDQp9CY0Isg0KHQotCe0IjQkNCd0JrQkAor0JzQmNCg0KfQmNCLINCh0KLQntCI0JDQnQor0JzQmNCg0JDQltCY0Isg0JDQndCi0KPQnQor0JzQmNCg0JDQltCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCY0KDQkNCW0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQoNCQ0JbQmNCLINCI0JXQm9CQCivQnNCY0KDQkNCW0JjQiyDQnNCQ0KDQkAor0JzQmNCg0JDQltCY0Isg0JLQldCh0JXQm9CY0J3QmtCQCivQnNCY0KDQkNCb0JXQnCDQkNCl0JzQldCUCivQnNCY0KDQkNCd0J7QktCY0Isg0JrQodCV0J3QmNCI0JAg0JTQoCDQm9CV0JrQkNCgCivQnNCY0KDQkNCd0J7QktCY0Isg0JzQkNCI0JAKK9Cc0JjQoNCQ0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0KDQldCo0JXQktCY0Isg0JTQo9Co0JDQnQor0JzQmNCg0JXQqNCV0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQnNCY0KDQmNCLINCC0KPQoNCQCivQnNCY0KDQmNCLINCQ0JPQkNCi0JAKK9Cc0JjQoNCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0JjQoNCY0Isg0JTQkNCd0JUKK9Cc0JjQoNCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQmNCg0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQnNCY0KDQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCY0KDQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQoNCY0Isg0JTQo9Co0JDQnQor0JzQmNCg0JjQiyDQlNCj0KjQmtCeCivQnNCY0KDQmNCLINCI0J7QodCY0KQKK9Cc0JjQoNCY0Isg0IjQntCS0JDQnQor0JzQmNCg0JjQiyDQiNCe0JLQngor0JzQmNCg0JjQiyDQmtCQ0KLQkAor0JzQmNCg0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0JjQoNCY0Isg0JrQntCS0JjQidCa0JAKK9Cc0JjQoNCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQoNCY0Isg0JzQmNCb0JDQnQor0JzQmNCg0JjQiyDQnNCY0JvQkNCdCivQnNCY0KDQmNCLINCc0JjQm9CV0J3QkAor0JzQmNCg0JjQiyDQnNCY0JvQmtCQCivQnNCY0KDQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCg0JjQiyDQn9CQ0JLQm9CVCivQnNCY0KDQmNCLINCg0JDQiNCa0J4KK9Cc0JjQoNCY0Isg0KDQo9CW0JjQptCQCivQnNCY0KDQmNCLINCh0JDQqNCQCivQnNCY0KDQmNCLINCh0JDQktCa0JAKK9Cc0JjQoNCY0Isg0KHQnNCY0InQkAor0JzQmNCg0JjQiyDQodCi0JXQktCQ0J0KK9Cc0JjQoNCY0Isg0KHQotCe0IjQkNCd0JrQkAor0JzQmNCg0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQnNCY0KDQmNCb0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCg0JjQm9Ce0JIg0JzQmNCb0JDQlNCY0J0g0JTQoAor0JzQmNCg0JjQm9Ce0JIg0JfQntCg0JrQkAor0JzQmNCg0JjQm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCg0JjQm9Ce0JLQmNCLINCT0J7QoNCU0JDQndCQCivQnNCY0KDQmNCb0J7QktCY0Isg0JvQkNCX0JDQoAor0JzQmNCg0JjQm9Ce0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCg0JjQm9Ce0JLQmNCLINCh0J3QldCW0JDQndCQCivQnNCY0KDQmNCc0JDQndCe0JIg0JTQkNCg0JAKK9Cc0JjQoNCY0JzQkNCd0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQnNCY0KDQiNCQ0KfQmNCLINCR0J7QodCQCivQnNCY0KDQiNCQ0J3QmNCLINCU0JDQndCY0KbQkAor0JzQmNCg0IjQkNCd0JjQiyDQnNCe0KDQkNCS0JrQkAor0JzQmNCg0IjQkNCd0JjQiyDQktCQ0KHQkAor0JzQmNCg0IjQkNCd0JjQiyDQktCV0KDQmNCm0JAKK9Cc0JjQoNCI0JDQndCY0J0g0J3QldCg0JAKK9Cc0JjQoNCa0JDQpiDQodCi0JDQndCY0KHQm9CQ0JIKK9Cc0JjQoNCa0JDQiNCb0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQoNCa0JDQiNCb0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cc0JjQoNCa0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JzQmNCg0JrQntCKINCh0KDQldCU0J7QiNCVCivQnNCY0KDQmtCe0IrQldCSINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCg0JrQntCK0JXQkiDQodCd0JXQltCQ0J3QkAor0JzQmNCg0JrQntCSINCW0JXQidCa0J4KK9Cc0JjQoNCa0J7QkiDQltCY0JLQkNCdCivQnNCY0KDQmtCe0JIg0ILQntCg0ILQlQor0JzQmNCg0JrQntCSINCC0KPQoNCC0JjQiNCQCivQnNCY0KDQmtCe0JIg0ILQo9Cg0ILQmNCI0JAKK9Cc0JjQoNCa0J7QkiDQgtCj0KDQmNCm0JAKK9Cc0JjQoNCa0J7QkiDQkdCe0KHQmNCJ0JrQkAor0JzQmNCg0JrQntCSINCU0KPQqNCY0KbQkAor0JzQmNCg0JrQntCSINCV0JLQmNCm0JAKK9Cc0JjQoNCa0J7QkiDQnNCQ0KDQmNCm0JAKK9Cc0JjQoNCa0J7QkiDQn9CQ0JLQm9CVCivQnNCY0KDQmtCe0JIg0KDQo9CW0JjQptCQCivQnNCY0KDQmtCe0JIg0KHQldCa0KPQm9CQINCU0JjQn9CbINCe0JXQpgor0JzQmNCg0JrQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQoNCa0J7QkiDQodCd0JXQltCQ0J3QkAor0JzQmNCg0JrQntCSINCh0KLQkNCd0JjQodCb0JDQkgor0JzQmNCg0JrQntCSINCh0KLQldCS0JDQnQor0JzQmNCg0JrQntCSINCh0KLQldCS0JDQnQor0JzQmNCg0JrQntCSINCS0JXQidCa0J4KK9Cc0JjQoNCa0J7QkiDQktCb0JDQlNCQCivQnNCY0KDQmtCe0JIg0JfQntCg0JDQnQor0JzQmNCg0JrQntCSINCX0J7QoNCY0KbQkAor0JzQmNCg0JrQntCSINCX0J7QoNCa0JAKK9Cc0JjQoNCa0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0JjQoNCa0J7QktCY0Isg0JbQmNCS0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQltCY0JLQmtCQCivQnNCY0KDQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQnNCY0KDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JjQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JzQmNCg0JrQntCS0JjQiyDQkNCS0KDQkNCcCivQnNCY0KDQmtCe0JLQmNCLINCR0J7QoNCQCivQnNCY0KDQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCg0JrQntCS0JjQiyDQkdCg0JDQndCa0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQnNCY0KDQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCg0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQoNCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCY0KDQmtCe0JLQmNCLINCU0JXQiNCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQmNCg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQlNCj0KjQmtCeCivQnNCY0KDQmtCe0JLQmNCLINCU0KPQkdCg0JDQktCa0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JXQlNCY0KLQkAor0JzQmNCg0JrQntCS0JjQiyDQldCb0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JXQnNCY0JvQmNCI0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JPQkNCS0KDQmNCb0J4KK9Cc0JjQoNCa0J7QktCY0Isg0JjQktCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cc0JjQoNCa0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCY0KDQmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQoNCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQnNCY0KDQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCg0JrQntCS0JjQiyDQnNCQ0KDQkAor0JzQmNCg0JrQntCS0JjQiyDQnNCQ0KDQkAor0JzQmNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdINCU0KAKK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0JjQktCe0Igg0JTQmNCf0Jsg0JjQndCTCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCb0JrQkAor0JzQmNCg0JrQntCS0JjQiyDQnNCY0JvQntCoCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQm9Ce0KHQkNCSCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQnNCY0KDQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQoNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCg0JrQntCS0JjQiyDQndCV0J3QkNCUCivQnNCY0KDQmtCe0JLQmNCLINCd0J7QktCQ0JoKK9Cc0JjQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCg0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQnNCY0KDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0JjQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCg0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JzQmNCg0JrQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JzQmNCg0JrQntCS0JjQiyDQoNCQ0KLQmtCeCivQnNCY0KDQmtCe0JLQmNCLINCh0JDQitCQCivQnNCY0KDQmtCe0JLQmNCLINCh0JDQktCQCivQnNCY0KDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQnNCY0KDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQoNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JzQmNCg0JrQntCS0JjQiyDQotCg0JjQpNCj0J0KK9Cc0JjQoNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQmNCg0JrQntCS0JjQiyDQl9Ce0KDQkNCdINCU0KAKK9Cc0JjQoNCa0J7QktCY0Isg0JfQntCg0JDQnQor0JzQmNCg0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQnNCY0KDQmtCe0JLQmNCLINCX0J7QoNCa0JAKK9Cc0JjQoNCa0J7QktCY0Isg0JfQntCg0JrQkAor0JzQmNCg0J3QmNCLINCI0J7QodCY0J8g0JTQoAor0JzQmNCg0J3QmNCLINCh0JjQm9CS0JjQiNCQCivQnNCY0KDQndCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cc0JjQoNCe0KjQldCS0JjQiyDQndCY0J3Qngor0JzQmNCg0J7QndCY0KbQmtCYINCg0KPQltCY0KbQkAor0JzQmNCg0J7QndCY0KbQmtCYINCX0JLQntCd0JjQnNCY0KAKK9Cc0JjQoNCe0KHQkNCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCg0J7QodCQ0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0KDQntCh0JDQktCJ0JXQkiDQmNCb0JjQndCa0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCSINCI0J7QptCQCivQnNCY0KDQntCh0JDQktCJ0JXQkiDQnNCQ0KDQmNCI0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCSINCc0JjQm9CV0J3QmtCeCivQnNCY0KDQntCh0JDQktCJ0JXQkiDQnNCb0JDQlNCV0J0KK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCR0J7QqNCa0J4KK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0JHQntCg0JjQktCe0IgKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQkdCg0JDQndCa0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQm9CV0J/QntCh0JDQktCQCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0InQo9CR0JjQptCQCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0InQo9CR0J7QlNCg0JDQkwor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCc0JDQk9CU0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQoNCQ0KXQmNCK0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCS0JXQoNCQCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0JLQldCg0JAKK9Cc0JjQoNCe0KHQkNCS0InQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQnNCY0KDQntCh0JDQktCJ0JXQktCY0Isg0JfQntCg0JDQnQor0JzQmNCg0J7QodCQ0JLQidCV0JLQmNCLINCX0J7QoNCa0JAKK9Cc0JjQoNCe0KHQm9CQ0JLQidCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQnNCY0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCg0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCY0KDQntCS0JjQiyDQmNCT0J7QoAor0JzQmNCg0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0KDQntCS0JjQiyDQnNCY0JvQngor0JzQmNCg0J7QktCY0Isg0J3QldCd0JDQlAor0JzQmNCh0JDQmNCb0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JzQmNCh0JDQiNCb0J7QktCY0Isg0JzQkNCg0JPQmNCi0JAKK9Cc0JjQodCQ0InQldCS0JjQiyDQndCV0JzQkNCK0JAKK9Cc0JjQodCY0JzQmCDQmtCQ0JzQkdCV0KAKK9Cc0JjQodCY0J3QmCDQnNCY0KDQmNCc0JDQnQor0JzQmNCh0JjQoNCa0JjQiyDQnNCY0JvQntCoCivQnNCY0KHQmNCg0JrQmNCLINCS0JvQkNCU0JAKK9Cc0JjQodCY0KDQm9CY0KEg0JPQldCe0KDQk9CY0J7QoQor0JzQmNCh0JrQmNCdINCU0KDQkNCT0JDQnQor0JzQmNCh0JrQmNCdINCc0JjQm9Ce0KgKK9Cc0JjQodCa0JjQnSDQndCY0JrQngor0JzQmNCh0JrQmNCdINCX0JTQoNCQ0JLQmtCeCivQnNCY0KHQm9CY0JzQmCDQkNCb0JjQktCV0JHQmAor0JzQmNCi0JDQoCDQotCe0JzQkAor0JzQmNCi0JDQoCDQktCV0KDQkAor0JzQmNCi0JXQktCh0JrQmCDQmNCS0JDQnQor0JzQmNCi0JjQiyDQp9CV0JTQntCc0JjQoAor0JzQmNCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQmNCi0JjQiyDQkdCe0KDQmNCS0J7QiAor0JzQmNCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JzQmNCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0JjQotCY0Isg0JHQo9CU0JjQnNCY0KAKK9Cc0JjQotCY0Isg0JTQkNCd0JjQptCQCivQnNCY0KLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQotCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQmNCi0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQnNCY0KLQmNCLINCU0KPQqNCQ0J0KK9Cc0JjQotCY0Isg0JPQntCg0JTQkNCd0JAKK9Cc0JjQotCY0Isg0JjQk9Ce0KAKK9Cc0JjQotCY0Isg0IjQntCh0JjQpAor0JzQmNCi0JjQiyDQiNCe0JLQkNCdCivQnNCY0KLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQotCY0Isg0JzQkNCg0JjQiNCQCivQnNCY0KLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQotCY0Isg0JzQmNCb0JjQktCe0IgKK9Cc0JjQotCY0Isg0JzQmNCe0JTQoNCQ0JMg0JTQoCDQm9CV0JrQkNCgCivQnNCY0KLQmNCLINCc0JjQntCU0KDQkNCTCivQnNCY0KLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQotCY0Isg0JzQmNCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cc0JjQotCY0Isg0J3QmNCa0J7Qm9CQCivQnNCY0KLQmNCLINCf0JDQktCb0JUKK9Cc0JjQotCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JzQmNCi0JjQiyDQoNCj0JbQmNCm0JAKK9Cc0JjQotCY0Isg0KHQm9CQ0JLQmtCeCivQnNCY0KLQmNCLINCh0KDQldCR0KDQkAor0JzQmNCi0JjQiyDQodCj0JfQkNCd0JAKK9Cc0JjQotCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQmNCi0JjQiyDQktCV0JvQmNCc0JjQoAor0JzQmNCi0JjQiyDQktCV0KDQkAor0JzQmNCi0JjQiyDQktCY0JTQntCh0JDQktCQCivQnNCY0KLQmNCLINCS0JjQotCe0JzQmNCgCivQnNCY0KLQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCi0J7QqNCV0JLQmNCLINCR0J7Qk9CU0JDQnQor0JzQmNCi0J7QqNCV0JLQmNCLINCc0JjQm9CVCivQnNCY0KLQntCo0JXQktCY0Isg0J3QkNCU0JAKK9Cc0JjQotCe0KjQldCS0JjQiyDQodCQ0JLQkAor0JzQmNCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQotCe0JLQmNCLINCU0J7QkdCg0JjQodCb0JDQkgor0JzQmNCi0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCi0KDQkNCo0JjQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JzQmNCi0KDQkNCo0JjQndCe0JLQmNCLINCX0J7QoNCQCivQnNCY0KLQoNCQ0JrQntCS0JjQiyDQgtCj0KDQkNCCCivQnNCY0KLQoNCQ0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0KLQoNCQ0JrQntCS0JjQiyDQndCV0J3QkNCUCivQnNCY0KLQoNCQ0JrQntCS0JjQiyDQo9CT0InQldCo0JAKK9Cc0JjQotCg0JXQmtCQ0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQnNCY0KLQoNCV0KHQmtCYINCc0J7QnNCn0JjQm9CeCivQnNCY0KLQoNCV0JLQodCa0JAg0JXQktCU0J7QmtCY0IjQkAor0JzQmNCi0KDQldCS0KHQmtCYINCb0JDQnNCR0JUKK9Cc0JjQotCg0JXQktCh0JrQmCDQnNCe0JzQp9CY0JvQngor0JzQmNCi0KDQldCS0KHQmtCYINCg0JDQlNCQCivQnNCY0KLQoNCY0KfQldCS0JjQiyDQltCY0JrQkAor0JzQmNCi0KDQmNCn0JXQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cc0JjQotCg0JjQp9CV0JLQmNCLINCQ0J3QkAor0JzQmNCi0KDQmNCn0JXQktCY0Isg0KHQnNCY0InQkAor0JzQmNCi0KDQmNCLINCC0KPQoNCeCivQnNCY0KLQoNCY0Isg0JHQntCT0JjQiwor0JzQmNCi0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQotCg0JjQiyDQnNCY0JvQkNCdCivQnNCY0KLQoNCY0Isg0JzQmNCb0J7QqAor0JzQmNCi0KDQmNCLINCd0JXQgtCeCivQnNCY0KLQoNCY0Isg0J3QldCC0J4KK9Cc0JjQotCg0JjQiyDQndCe0JLQkNCaCivQnNCY0KLQoNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JjQotCg0JjQiyDQktCQ0JvQldCd0KLQmNCd0JAKK9Cc0JjQotCg0J7QktCn0JDQnSDQiNCj0JvQmtCY0KbQkAor0JzQmNCi0KDQntCS0KfQkNCdINCa0J7QodCi0JAKK9Cc0JjQotCg0J7QktCn0JDQnSDQm9CQ0JfQkNCgCivQnNCY0KLQoNCe0JLQp9CQ0J0g0InQo9CR0JjQndCa0J4KK9Cc0JjQotCg0J7QktCn0JDQnSDQidCj0JHQmNCd0JrQngor0JzQmNCi0KDQntCS0KfQkNCdINCc0JjQotCQCivQnNCY0KLQoNCe0JLQp9CQ0J0g0KDQkNCU0JjQndCa0JAKK9Cc0JjQotCg0J7QktCn0JDQnSDQodCi0JXQktCQ0J0KK9Cc0JjQotCg0J7QktCn0JDQnSDQodCi0IjQldCf0JDQnQor0JzQmNCi0KDQntCS0KfQkNCdINCX0JDQk9Ce0KDQmtCQCivQnNCY0KLQoNCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQnNCY0KLQoNCe0JLQmNCLINCW0JDQoNCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cc0JjQotCg0J7QktCY0Isg0ILQntCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQotCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQotCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0JjQotCg0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0JzQmNCi0KDQntCS0JjQiyDQkNCd0JrQkAor0JzQmNCi0KDQntCS0JjQiyDQkdCY0InQkNCd0JAKK9Cc0JjQotCg0J7QktCY0Isg0JHQntCo0JrQngor0JzQmNCi0KDQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0KLQoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JzQmNCi0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0JTQkNCd0JjQptCQCivQnNCY0KLQoNCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQnNCY0KLQoNCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQnNCY0KLQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JjQotCg0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cc0JjQotCg0J7QktCY0Isg0JTQoNCQ0JPQmAor0JzQmNCi0KDQntCS0JjQiyDQlNCg0JDQk9Ce0IjQm9CeCivQnNCY0KLQoNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cc0JjQotCg0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0JjQotCg0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCU0KPQqNCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0JTQo9CR0KDQkNCS0JrQkAor0JzQmNCi0KDQntCS0JjQiyDQk9Ce0IjQmtCeCivQnNCY0KLQoNCe0JLQmNCLINCT0J7QodCf0JDQktCQCivQnNCY0KLQoNCe0JLQmNCLINCT0J7QodCf0JAKK9Cc0JjQotCg0J7QktCY0Isg0JjQmtCQCivQnNCY0KLQoNCe0JLQmNCLINCY0JLQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JzQmNCi0KDQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JjQotCg0J7QktCY0Isg0IjQldCb0JjQptCQCivQnNCY0KLQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cc0JjQotCg0J7QktCY0Isg0IjQntCS0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cc0JjQotCg0J7QktCY0Isg0JvQkNCX0JDQoAor0JzQmNCi0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cc0JjQotCg0J7QktCY0Isg0InQo9CR0JjQodCQ0JIKK9Cc0JjQotCg0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JjQotCg0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cc0JjQotCg0J7QktCY0Isg0JzQkNCg0JrQngor0JzQmNCi0KDQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQmNCi0KDQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cc0JjQotCg0J7QktCY0Isg0JzQmNCb0JXQndCQCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQmtCQCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cc0JjQotCg0J7QktCY0Isg0JzQmNCb0J7QqAor0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQmNCi0KDQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCi0KDQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCi0KDQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQmNCi0KDQntCS0JjQiyDQnNCY0KDQmtCeCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JzQmNCi0KDQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCY0KLQoNCe0JLQmNCLINCc0JjQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQnNCY0KLQoNCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JzQmNCi0KDQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cc0JjQotCg0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCY0KLQoNCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQnNCY0KLQoNCe0JLQmNCLINCc0J7QnNCY0KAKK9Cc0JjQotCg0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9Cc0JjQotCg0J7QktCY0Isg0J3QldCd0JDQlAor0JzQmNCi0KDQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cc0JjQotCg0J7QktCY0Isg0J7Qm9CT0JAKK9Cc0JjQotCg0J7QktCY0Isg0J/QldCi0JDQoAor0JzQmNCi0KDQntCS0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQnNCY0KLQoNCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cc0JjQotCg0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0JjQotCg0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JjQotCg0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cc0JjQotCg0J7QktCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0JzQmNCi0KDQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQoNCQ0JTQngor0JzQmNCi0KDQntCS0JjQiyDQoNCQ0KLQmtCeCivQnNCY0KLQoNCe0JLQmNCLINCh0JvQkNCS0JrQngor0JzQmNCi0KDQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JjQotCg0J7QktCY0Isg0KHQntCk0JjQiNCQCivQnNCY0KLQoNCe0JLQmNCLINCh0KDQldCi0JAKK9Cc0JjQotCg0J7QktCY0Isg0KHQotCQ0JrQkAor0JzQmNCi0KDQntCS0JjQiyDQodCi0JDQndCY0KjQkAor0JzQmNCi0KDQntCS0JjQiyDQodCi0JDQndCa0J4KK9Cc0JjQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQnNCY0KLQoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0JzQmNCi0KDQntCS0JjQiyDQodCj0JfQkNCd0JAKK9Cc0JjQotCg0J7QktCY0Isg0KHQo9CX0JDQndCQCivQnNCY0KLQoNCe0JLQmNCLINCi0JjQpdCe0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JzQmNCi0KDQntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JzQmNCi0KDQntCS0JjQiyDQotCe0JTQlQor0JzQmNCi0KDQntCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQnNCY0KLQoNCe0JLQmNCLINCS0JDQodCQCivQnNCY0KLQoNCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQnNCY0KLQoNCe0JLQmNCLINCS0JXQoNCQCivQnNCY0KLQoNCe0JLQmNCLINCS0JXQoNCQCivQnNCY0KLQoNCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JzQmNCi0KDQntCS0JjQiyDQktCV0KDQntCd0JjQmtCQCivQnNCY0KLQoNCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQnNCY0KLQoNCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cc0JjQotCg0J7QktCY0Isg0JLQo9Cn0JXQotCQCivQnNCY0KLQoNCe0JLQmNCLLdCS0KPQiNCd0JjQiyDQodCc0JjQidCQ0J3QkAor0JzQmNCi0KDQntCS0JjQiyDQktCj0IjQntCoCivQnNCY0KLQoNCe0JLQmNCLINCX0JvQkNCi0JrQngor0JzQmNCi0KDQo9Co0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCY0KLQoNCj0KjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JzQmNCi0KDQo9Co0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JzQmNCj0KfQmNCdINCd0JDQotCQ0JvQmNCI0JAKK9Cc0JjQo9Cn0JjQnSDQoNCe0JfQmNCd0JAKK9Cc0JjQo9Cn0JjQnSDQodCb0JDQktCa0J4KK9Cc0JjQo9Cn0JjQnSDQodCS0JXQotCe0JfQkNCgCivQnNCY0KPQp9CY0J0g0JLQldCg0JjQptCQCivQnNCY0Jcg0JzQkNCg0JjQiNCQCivQnNCY0Jcg0KDQntCc0JDQnQor0JzQmNCX0JTQoNCQ0Jog0JHQoNCQ0J3QmtCeCivQnNCI0JXQlNCQINCh0JjQnNCe0J0KK9Cc0JvQkNCC0JXQnSDQgtCj0KDQngor0JzQm9CQ0ILQldCdINCU0JzQmNCi0JDQoAor0JzQm9CQ0ILQldCd0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQnNCb0JDQgtCV0J3QntCS0JjQiyDQldCb0JXQndCQCivQnNCb0JDQgtCV0J3QntCS0JjQiyDQoNCQ0JTQlQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JHQntCo0JrQngor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0IjQldCb0JjQptCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQiNCj0KHQotCY0J3QkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JzQkNCg0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCc0JDQoNCY0J3QkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLLdCd0JjQmtCe0JvQmNCLINCT0J7QoNCU0JDQndCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQntCb0JPQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCg0JDQndCa0J4KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCg0KPQltCY0KbQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KHQkNCS0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCh0KDQkdCY0KHQm9CQ0JLQmtCQCivQnNCb0JDQlNCV0J3QntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQm9CQ0JTQldCd0J7QktCY0Isg0KPQoNCe0KgKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCS0JXQmtCe0KHQm9CQ0JIKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCS0JXQoNCY0KbQkAor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQm9CQ0JTQldCd0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cc0JvQkNCU0JXQndCe0JLQmNCLINCX0J7QoNCQ0J3QkAor0JzQm9CQ0JTQldCd0J7QktCh0JrQmCDQm9Ce0JfQkNCd0JAKK9Cc0JvQkNCU0JjQnSDQmNCc0KDQlQor0JzQm9CQ0JTQmNCdINCc0JDQoNCT0JjQotCQCivQnNCb0JDQl9CV0JIg0JLQkNCh0JjQmwor0JzQm9CY0J3QkNCgINCc0KPQpdCQ0KDQldCcCivQnNCb0JjQndCQ0KAg0JzQo9Ch0KLQkNCk0JAKK9Cc0JvQmNCd0JrQniDQkNCc0JHQoNCe0JfQmNCI0JUKK9Cc0JvQmNCd0JrQniDQlNCj0KjQkNCdCivQnNCb0JjQndCa0J4g0J/QldCi0JDQoAor0JzQm9CY0J3QmtCeINCX0JLQntCd0JjQnNCY0KAKK9Cc0J7QpyDQiNCV0JvQldCd0JAKK9Cc0J7QpyDQiNCe0JLQkNCd0JrQkAor0JzQntCo0J4g0IjQntCW0JXQpAor0JzQntCo0J7QoNCY0J3QkNCmINCW0JjQktCa0J4KK9Cc0J7QqNCe0KDQmNCd0JDQpiDQndCV0J3QkNCUCivQnNCe0KjQntCg0JjQndCh0JrQmCDQl9CQ0JPQntCg0JrQkAor0JzQntCo0J7QoNCY0J3QodCa0Jgg0JfQntCg0JAKK9Cc0J7Qi9CQ0J0g0IjQldCb0JXQndCQINCU0JjQn9CbINCY0J3Qkwor0JzQntCW0JUg0JXQnNCY0JsKK9Cc0J7QptCY0Isg0JzQntCc0JjQoAor0JzQntCm0JjQmiDQgtCj0JvQkAor0JzQntCm0JjQmiDQmNCg0JXQndCa0JAKK9Cc0J7QptCa0J4g0IjQkNCdCivQnNCe0KbQmtCeLdCc0JjQm9CQ0JTQmNCd0J7QktCY0Isg0JLQmNCV0KDQkAor0JzQntCm0JrQniDQnNCY0KDQntCh0JvQkNCSCivQnNCe0KbQmtCeINCh0KLQldCS0JDQnQor0JzQntCm0J3QkNCYINCY0KDQldCd0JAKK9Cc0J7QptCd0Jgg0IjQntCS0JDQnQor0JzQntCm0J3QmCDQnNCQ0KDQmNCI0JAKK9Cc0J7QptCd0Jgg0KHQotCV0JLQkNCdCivQnNCe0JTQldCb0KHQmtCYINCR0KDQkNCd0JjQodCb0JDQktCQCivQnNCe0JTQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCe0JTQmNCLINCc0JjQm9CV0J3QmtCeCivQnNCe0JTQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0J7QlNCY0Isg0KDQkNCd0JrQngor0JzQntCU0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCe0JTQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0J7QlNCY0Isg0KLQntCc0JjQodCb0JDQkgor0JzQntCU0J7QqNCQ0J3QntCSINCc0JDQoNCi0JAKK9Cc0J7QlNCe0KjQkNCd0J7QkiDQndCY0JrQntCb0JAKK9Cc0J7QlNCg0JDQpSDQktCb0JDQlNCY0JzQmNCgCivQnNCe0JTQoNCYINCo0JDQndCU0J7QoAor0JzQntCU0KDQmCDQlNCg0JDQk9CQ0J0KK9Cc0J7QlNCg0Jgg0JXQktCQCivQnNCe0JTQoNCY0Isg0JjQm9CY0IjQkAor0JzQntCU0KDQmNCLINCh0KLQkNCd0JrQngor0JzQntCU0KDQmNCd0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0J7QlNCg0J7QitCQINCk0JXQpdCY0JwKK9Cc0J7QpNCQ0KDQlNCY0J0g0KHQn9CQ0KHQldCd0JrQkAor0JzQntCT0JAg0JHQoNCQ0J3QmtCeCivQnNCe0JPQkCDQiNCe0JLQkNCdCivQnNCe0JPQkCDQnNCY0JvQkNCdINCU0KAg0JvQldCa0JDQoAor0JzQntCT0JAg0JzQm9CQ0JTQldCdCivQnNCe0JPQkCDQn9CQ0IjQkAor0JzQntCT0JAg0KHQotCV0JLQkNCdCivQnNCe0JPQkCDQktCV0KDQkAor0JzQntCT0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQntCT0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQnNCe0JPQmNCLINCT0J7QoNCQ0J3QkAor0JzQntCT0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQntCT0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQntCT0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQntCT0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQnNCe0JPQmNCdINCY0KDQmNCd0JAKK9Cc0J7Qk9CY0J0g0IjQldCb0JXQndCQCivQnNCe0JPQmNCdINCI0KPQm9CY0IjQkNCd0JAKK9Cc0J7Qk9CY0J0g0JrQodCV0J3QmNCI0JAKK9Cc0J7Qk9CY0J0g0JvQkNCX0JDQoAor0JzQntCT0JjQnSDQidCj0JHQmNCo0JAKK9Cc0J7Qk9CY0J0g0JzQkNCg0JAKK9Cc0J7Qk9CY0J0g0JzQmNCb0JDQndCQCivQnNCe0JPQmNCdINCc0JjQm9CQ0J0KK9Cc0J7Qk9CY0J0g0J/QkNCS0JvQlQor0JzQntCT0JjQnSDQn9CQ0JLQm9CVCivQnNCe0JPQmNCdINCf0JDQktCb0JUKK9Cc0J7Qk9CY0J0g0J/QldCi0JDQoAor0JzQntCT0JjQnSDQoNCQ0JTQntCc0JjQoAor0JzQntCT0JjQnSDQoNCQ0JTQntCc0JjQoAor0JzQntCT0JjQnSDQktCY0KLQntCc0JjQoAor0JzQntCl0JDQp9CYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCe0KXQkNCn0Jgg0JvQkNCh0JvQngor0JzQntCl0JDQnSDQlNCV0JDQndCQCivQnNCe0KXQkNCdINCI0J7QnQor0JzQntCl0JDQnSDQn9CV0KLQkNCgCivQnNCe0KXQkNCdINCh0JzQmNCJ0JDQndCQCivQnNCe0KXQntCg0JAg0JXQnNCY0JvQmNCI0JDQnQor0JzQntCl0J7QoNCY0Isg0JTQkNCd0JjQptCQCivQnNCe0KXQntCg0JrQniDQmNCb0JjQiNCQCivQnNCe0KXQntCg0JrQniDQmNCb0JjQiNCQCivQnNCe0KXQntCg0JrQniDQnNCQ0KDQk9CY0KLQkAor0JzQntCl0J7QoNCa0J4g0KDQkNCI0JrQngor0JzQntCI0JjQiyDQlNCj0KjQkNCdCivQnNCe0IjQmNCLINCU0KPQqNCQ0J0KK9Cc0J7QiNCY0Isg0JjQktCQ0J3QmtCQCivQnNCe0IjQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cc0J7QiNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cc0J7QiNCY0Isg0JzQmNCi0JDQoAor0JzQntCI0JjQiyDQndCY0JrQntCb0JAKK9Cc0J7QiNCY0Isg0J3QmNCa0J7Qm9CQCivQnNCe0IjQmNCLINCh0JvQkNCS0JrQngor0JzQntCI0JjQi9CV0JLQmNCLINCU0JXQodCY0JzQmNCgCivQnNCe0IjQmNCdINCh0J7QpNCY0IjQkAor0JzQntCI0KHQlSDQmtCQ0KLQmNCm0JAKK9Cc0J7QiNCh0JUg0J3QkNCd0JTQntCgCivQnNCe0IjQodCV0IjQldCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCe0IjQodCV0IjQldCSINCa0J7QndCh0KLQkNCd0KLQmNCdINCU0JjQn9CbINCf0KUKK9Cc0J7QiNCh0JjQiNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0JzQntCI0KHQmNCI0JXQktCY0Isg0KHQkNCS0JAKK9Cc0J7QiNCh0JjQm9Ce0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQnNCe0IjQodCY0JvQntCSINCU0KDQkNCT0JDQnQor0JzQntCI0KHQmNCb0J7QkiDQnNCY0JvQmNCh0JDQkgor0JzQntCI0KHQmNCb0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cc0J7QiNCh0JjQm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cc0J7QiNCh0JjQm9Ce0JLQmNCLINCh0JvQkNCS0JjQptCQCivQnNCe0IjQodCY0JvQntCS0JjQiyDQktCV0KDQkAor0JzQntCI0KHQmNCb0J7QktCY0Isg0JLQmNCU0J7QiNCVCivQnNCe0IjQodCY0J0g0JTQoNCQ0JPQntCc0JjQoAor0JzQntCI0KHQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQntCI0JfQldCoINCQ0JvQpNCg0JXQlAor0JzQntCI0JfQldCoINCc0JDQoNCY0IjQkAor0JzQntCa0KPQqCDQqNCQ0J3QlNCe0KAKK9Cc0J7QmtCj0Kgg0JjQnNCg0JUKK9Cc0J7QmtCj0Kgg0IjQntCS0JDQnQor0JzQntCa0KPQqCDQmtCQ0JvQnNCQ0J0KK9Cc0J7QmtCj0Kgg0JvQkNCh0JvQngor0JzQntCa0KPQqCDQm9CQ0KHQm9CeCivQnNCe0JrQo9CoINCb0JDQodCb0J4KK9Cc0J7QmtCj0Kgg0JzQmNCa0JvQntCoCivQnNCe0JrQo9CoINCi0JjQkdCe0KAKK9Cc0J7QmtCj0Kgg0JfQntCb0KLQkNCdCivQnNCe0JvQkNCmINCc0JjQm9Ce0KDQkNCUCivQnNCe0JvQpiDQmtCQ0KLQmNCm0JAKK9Cc0J7Qm9CU0J7QktCQ0J0g0InQo9CR0JjQndCa0JAKK9Cc0J7Qm9CU0J7QktCQ0J0g0JzQkNCg0JjQiNCQCivQnNCe0JvQlNCe0JLQkNCd0J7QkiDQkdCe0KjQmtCeCivQnNCe0JvQlNCe0JLQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JzQntCb0JTQktCQ0Jgg0JXQoNCS0JjQnQor0JzQntCb0JTQktCQ0Jgg0JjQl9CQ0JHQldCb0JAKK9Cc0J7Qm9CU0JLQkNCYINCb0JDQodCb0J4KK9Cc0J7Qm9CU0JLQkNCYINCe0KLQngor0JzQntCb0JTQktCQ0Igg0KTQoNCQ0IrQkAor0JzQntCb0JTQktCQ0Igg0KXQmNCb0JTQkAor0JzQntCb0JTQktCQ0Igt0J7Qm9CQ0KUg0JXQnNCY0JvQmNCI0JAKK9Cc0J7Qm9CU0JLQkNCIINCg0J7Ql9CQ0JvQmNCQCivQnNCe0JvQlNCS0JDQiCDQodCi0JXQktCQ0J0KK9Cc0J7Qm9CU0JLQkNCIINCS0JjQmtCi0J7QoAor0JzQntCb0JTQktCQ0IjQmCDQn9Cg0JXQlNCg0JDQkwor0JzQntCb0JXQoNCe0JIg0KDQkNCU0J7QktCQ0J0KK9Cc0J7QidCQ0KYg0ILQntCg0ILQlQor0JzQntCJ0JDQpiDQkdCg0JDQndCa0JAKK9Cc0J7QidCQ0KYg0JPQkNCS0KDQkAor0JzQntCJ0JDQpiDQk9CQ0JLQoNCQCivQnNCe0InQkNCmINCI0J7QktCQ0J0KK9Cc0J7QidCQ0KYg0IjQntCS0JDQnQor0JzQntCJ0JDQpiDQmtCQ0KLQmNCm0JAKK9Cc0J7QidCQ0KYg0JzQmNCb0JjQptCQCivQnNCe0InQkNCmINCc0JjQntCU0KDQkNCTCivQnNCe0InQkNCmINCd0JDQlNCQCivQnNCe0InQkNCmINCf0JDQiNCQCivQnNCe0InQkNCmINCh0KLQldCS0JDQnQor0JzQntCJ0JDQpiDQodCi0JXQktCQ0J0KK9Cc0J7QidCQ0KYg0JLQldCg0JAKK9Cc0J7QidCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQnNCe0JvQmtCj0KYg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cc0J7Qm9Ca0KPQpiDQktCY0KDQgtCY0J3QldCbCivQnNCe0JvQndCQ0KAg0KjQkNCd0JTQntCgCivQnNCe0JvQndCQ0KAt0KjQotCV0KTQo9Cb0JjQmiDQmNCb0J7QndCQCivQnNCe0JvQndCQ0KAg0ILQntCg0ILQlQor0JzQntCb0J3QkNCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCe0JvQndCQ0KAg0JDQndCU0KDQkNCoCivQnNCe0JvQndCQ0KAg0JDQndCU0KDQkNCoCivQnNCe0JvQndCQ0KAg0JDQndCi0J7QnQor0JzQntCb0J3QkNCgINCQ0KDQn9CQ0JQKK9Cc0J7Qm9Cd0JDQoCDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JzQntCb0J3QkNCgINCU0JXQltCVCivQnNCe0JvQndCQ0KAg0JXQnNCY0JvQmNCI0JAKK9Cc0J7Qm9Cd0JDQoCDQldCc0JjQm9CY0IjQkAor0JzQntCb0J3QkNCgINCV0JLQmNCm0JAKK9Cc0J7Qm9Cd0JDQoCDQpNCV0J7QlNCe0KAKK9Cc0J7Qm9Cd0JDQoCDQpNCV0KDQldCd0KYg0JTQmNCf0Jsg0JjQndCTCivQnNCe0JvQndCQ0KAg0JjQqNCi0JLQkNCdCivQnNCe0JvQndCQ0KAg0JjQqNCi0JLQkNCdCivQnNCe0JvQndCQ0KAg0JjQnNCg0JUg0JTQoAor0JzQntCb0J3QkNCgINCY0JzQoNCVCivQnNCe0JvQndCQ0KAg0JjQnNCg0JUKK9Cc0J7Qm9Cd0JDQoCDQmNCg0JXQndCQCivQnNCe0JvQndCQ0KAg0JjQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQnNCe0JvQndCQ0KAg0JjQktCQ0J0KK9Cc0J7Qm9Cd0JDQoCDQmNCS0JDQnQor0JzQntCb0J3QkNCgINCI0JDQmtCe0JIKK9Cc0J7Qm9Cd0JDQoCDQiNCQ0J3QntCoCivQnNCe0JvQndCQ0KAg0IjQkNCdCivQnNCe0JvQndCQ0KAg0IjQldCb0JXQndCQCivQnNCe0JvQndCQ0KAg0IjQldCb0JjQptCQCivQnNCe0JvQndCQ0KAg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cc0J7Qm9Cd0JDQoCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JzQntCb0J3QkNCgINCI0JXQm9CY0KHQkNCS0JXQotCQCivQnNCe0JvQndCQ0KAg0IjQntCW0JXQpAor0JzQntCb0J3QkNCgINCI0J7QltCV0KQKK9Cc0J7Qm9Cd0JDQoCDQiNCe0JbQldCkCivQnNCe0JvQndCQ0KAg0IjQntCW0JXQpAor0JzQntCb0J3QkNCgINCI0J7QltCV0KQKK9Cc0J7Qm9Cd0JDQoCDQiNCe0JvQkNCd0JrQkAor0JzQntCb0J3QkNCgINCI0J7QodCY0J8KK9Cc0J7Qm9Cd0JDQoCDQiNCe0KHQmNCfCivQnNCe0JvQndCQ0KAg0IjQntCh0JjQnwor0JzQntCb0J3QkNCgINCI0J7QodCY0J8KK9Cc0J7Qm9Cd0JDQoCDQiNCe0JLQkNCdCivQnNCe0JvQndCQ0KAg0JrQkNCg0JvQngor0JzQntCb0J3QkNCgINCa0JDQotCQ0JvQmNCdCivQnNCe0JvQndCQ0KAg0JvQkNCh0JvQngor0JzQntCb0J3QkNCgINCb0JDQl9CQ0KAKK9Cc0J7Qm9Cd0JDQoCDQnNCQ0IvQkNCoCivQnNCe0JvQndCQ0KAg0JzQkNCg0JjQiNCQINCU0KAKK9Cc0J7Qm9Cd0JDQoCDQnNCQ0KDQotCQINCU0KAKK9Cc0J7Qm9Cd0JDQoCDQnNCQ0KLQmNCb0JTQkAor0JzQntCb0J3QkNCgINCc0JjQpdCQ0IjQm9CeCivQnNCe0JvQndCQ0KAg0JzQmNCl0JDQiQor0JzQntCb0J3QkNCgINCc0JjQpdCQ0IkKK9Cc0J7Qm9Cd0JDQoCDQnNCY0KXQkNCJCivQnNCe0JvQndCQ0KAg0JzQmNCl0JDQiQor0JzQntCb0J3QkNCgINCc0JjQm9CQ0J0KK9Cc0J7Qm9Cd0JDQoCDQnNCY0KDQntCdCivQnNCe0JvQndCQ0KAg0J3QmNCa0J7Qm9CQCivQnNCe0JvQndCQ0KAg0KHQn9Ce0JzQldCd0JrQkAor0JzQntCb0J3QkNCgINCh0JLQldCi0J7QodCb0JDQkgor0JzQntCb0J3QkNCgINCi0JXQoNCV0JfQkAor0JzQntCb0J3QkNCgINCS0JXQoNCQCivQnNCe0JvQndCQ0KAg0JLQmNCb0JzQntCoINCU0JjQn9CbINCY0J3Qkwor0JzQntCb0J3QkNCgINCS0IjQldCg0JAKK9Cc0J7Qm9Cd0JDQoCDQktCb0JDQlNCY0JzQmNCgCivQnNCe0JvQndCQ0KAg0JfQktCe0J3QmtCeCivQnNCe0JzQp9CY0JvQntCSINCU0J7QkdCg0JjQiNCQCivQnNCe0JzQp9CY0JvQntCSINCT0JDQktCg0JjQm9CeCivQnNCe0JzQp9CY0JvQntCSINCT0JDQktCg0JjQm9CeCivQnNCe0JzQp9CY0JvQntCSINCh0KLQldCS0JDQnQor0JzQntCc0KfQmNCb0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCR0J7Qk9Ce0JzQmNCgCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQkdCg0JDQndCa0J4g0JTQoAor0JzQntCc0KfQmNCb0J7QktCY0Isg0JTQkNCd0JUKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQntCc0KfQmNCb0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQnNCY0JvQlQor0JzQntCc0KfQmNCb0J7QktCY0Isg0JzQmNCg0JAKK9Cc0J7QnNCn0JjQm9Ce0JLQmNCLINCc0JjQoNCQCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0JzQntCc0KfQmNCb0J7QktCY0Isg0J/QldCi0JDQoAor0JzQntCc0KfQmNCb0J7QktCY0Isg0KDQo9CW0JjQptCQCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQodCc0JjQidCQCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQnNCe0JzQp9CY0JvQntCS0JjQiyDQktCQ0KHQkAor0JzQntCc0KfQmNCb0J7QktCY0Isg0JLQmNCU0JDQnQor0JzQntCc0KfQmNCb0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JzQntCc0KfQmNCb0J7QktCY0Isg0JLQo9Ca0JjQptCQCivQnNCe0JzQkNCd0Jgg0JDQmtCg0JDQnAor0JzQntCc0JjQiyDQntCR0KDQkNCUCivQnNCe0JzQmNCg0J7QkiDQmNCb0JjQiNCQCivQnNCe0JzQmNCg0J7QkiDQidCY0InQkNCd0JAKK9Cc0J7QnNCY0KDQntCSINCc0JjQm9CV0J3QmtCeCivQnNCe0JzQmNCg0J7QkiDQnNCY0JvQldCi0JAKK9Cc0J7QnNCY0KDQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0J7QnNCY0KDQntCSINCd0JDQlNCQCivQnNCe0JzQmNCg0J7QkiDQn9CQ0IjQkAor0JzQntCc0JjQoNCe0JIg0KHQkNCS0JAKK9Cc0J7QnNCY0KDQntCSINCh0JLQldCi0JvQkNCd0JAKK9Cc0J7QnNCY0KDQntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cc0J7QnNCY0KDQntCSINCi0J7QqNCQCivQnNCe0JzQmNCg0J7QkiDQl9Ce0KDQmNCm0JAKK9Cc0J7QnNCY0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0J7QnNCY0KDQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cc0J7QnNCY0KDQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Cc0J7QnNCY0KDQntCS0JjQiyDQm9CQ0JfQkAor0JzQntCc0JjQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cc0J7QnNCY0KDQntCS0JjQiyDQodCg0JXQi9Ca0J4KK9Cc0J7QnNCY0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0J7QnNCY0KDQntCS0KHQmtCYLdCc0JjQm9Ce0KjQldCS0JjQiyDQptCS0JXQotCQ0J3QkAor0JzQntCd0JDQoCDQiNCQ0J3QmtCeCivQnNCe0J3QkNCg0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQntCd0JDQoNCV0JIg0IjQntCh0JjQn9CQCivQnNCe0J3QkNCg0JXQki3QodCe0JrQntCb0JjQiyDQndCQ0JTQkAor0JzQntCd0JDQoNCe0JIg0JXQm9CY0JfQkNCR0JXQotCQCivQnNCe0J3QkNCg0J7QkiDQiNCe0JfQldCk0JjQndCQCivQnNCe0J3QlNCe0JLQmNCLINCC0KPQm9CQCivQnNCe0J3QlNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCe0J3QlNCe0JLQmNCLINCk0KDQkNCK0JAKK9Cc0J7QndCU0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCe0J3QlNCe0JLQmNCLINCb0JDQlNCY0KHQm9CQ0JIKK9Cc0J7QndCT0JXQiNCQ0KAg0KDQkNCU0J7QodCQ0JLQkAor0JzQntCd0Jgg0JjQodCb0JDQnAor0JzQntCd0J7QmtCYINCC0KPQm9CQCivQnNCe0J3QntCa0Jgg0JjQqNCi0JLQkNCdCivQnNCe0KAg0ILQldCg0IIKK9Cc0J7QoCDQpNCg0JDQitCQCivQnNCe0KAg0JPQkNCR0J7QoAor0JzQntCgINCT0JDQkdCe0KAKK9Cc0J7QoCDQm9CQ0KHQm9CeCivQnNCe0KAg0JfQlNCV0J3QmtCeCivQnNCe0KDQkCDQkNCd0JAKK9Cc0J7QoNCQINCQ0J3QlNCg0JDQqAor0JzQntCg0JAg0JrQntCg0J3QldCb0JjQiNCQCivQnNCe0KDQkNCn0JAg0ILQo9Cg0JDQggor0JzQntCg0JDQp9CQINCc0JjQntCU0KDQkNCTCivQnNCe0KDQkNCn0JAg0J3QmNCa0J7Qm9CQCivQnNCe0KDQkNCn0JAg0KDQkNCU0JzQmNCb0JAKK9Cc0J7QoNCQ0KfQkCDQktCQ0KHQngor0JzQntCg0JDQp9CQINCS0JDQodCeCivQnNCe0KDQkNCn0JDQndCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Cc0J7QoNCQ0JjQiyDQgtCe0KDQgtCVCivQnNCe0KDQkNCg0JXQktCY0Isg0InQo9CR0JjQptCQCivQnNCe0KDQkNCg0JXQktCY0Isg0JLQntCI0JrQkNCdCivQnNCe0KDQkNCS0JDQpiDQktCe0IjQmNCh0JvQkNCSCivQnNCe0KDQkNCS0JXQmiDQiNCQ0J3QmtCeCivQnNCe0KDQlSDQnNCQ0KDQmNCI0JAKK9Cc0J7QoNCVINCh0JjQm9CS0JXQodCi0JXQoAor0JzQntCg0JPQldCd0KLQkNCb0JXQoCDQiNCe0JLQkNCdCivQnNCe0KDQmNCLINCl0JDQnNCeCivQnNCe0KDQmNCmINCU0KDQkNCT0KPQotCY0J0KK9Cc0J7QoNCY0KYg0JPQkNCR0J7QoAor0JzQntCg0JjQpiDQiNCQ0J3QntCoCivQnNCe0KDQmNCmINCI0JXQm9CV0J3QkAor0JzQntCg0JjQpiDQiNCj0JvQmNCI0JAKK9Cc0J7QoNCY0KYg0JrQkNCg0JvQngor0JzQntCg0JjQpiDQm9CQ0IjQntCoCivQnNCe0KDQmNCmINCb0JDQodCb0J4KK9Cc0J7QoNCY0KYg0JvQkNCh0JvQngor0JzQntCg0JjQpiDQm9CY0JTQmNCI0JAKK9Cc0J7QoNCY0KYg0JzQmNCb0JDQndCQCivQnNCe0KDQmNCmINCf0JDQo9Cb0JAKK9Cc0J7QoNCY0KYg0KHQmNCb0JDQoNCUCivQnNCe0KDQmNCmINCh0JvQkNCS0JjQptCQCivQnNCe0KDQmNCmINCX0J7Qm9Ci0JDQnQor0JzQntCg0J7QqNCV0JIg0KDQkNCU0J7QodCb0JDQkgor0JzQntCg0J7QmtCS0JDQqNCY0Isg0JHQntCT0JTQkNCd0JrQkAor0JzQntCg0J7QmtCS0JDQqNCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cc0J7QoNCe0JrQktCQ0KjQmNCLINCd0JXQndCQ0JQKK9Cc0J7QoNCe0JrQktCQ0KjQmNCLINCd0JjQmtCe0JvQkAor0JzQntCg0J7QnNCY0JvQntCSINCJ0KPQkdCY0J3QmtCQCivQnNCe0KDQntCi0JLQkNCd0KHQmtCYINCS0JjQlNCe0KHQkNCS0JAKK9Cc0J7QoNCe0JLQmNCLINCc0JDQotCY0JvQlNCQCivQnNCe0KDQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cc0J7QoNCe0JLQmNCLINCd0JXQodCi0J7QoAor0JzQntCg0J7QktCY0KYg0JvQkNCh0JvQngor0JzQntCg0JLQkNCYINCo0JDQndCU0J7QoAor0JzQntCg0JLQkNCYINCC0JXQoNCCCivQnNCe0KDQktCQ0Jgg0KTQldCg0JXQndCmCivQnNCe0KDQktCQ0Jgg0IjQkNCd0J7QqAor0JzQntCg0JLQkNCYINCa0JDQoNCb0J4KK9Cc0J7QoNCS0JDQmCDQm9CQ0JTQmNCh0JvQkNCSCivQnNCe0KDQktCQ0Jgg0J/QldCi0JDQoAor0JzQntCh0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQntCh0JrQkNCJINCJ0KPQkdCe0JzQmNCgCivQnNCe0KHQmtCQ0Ikg0J3QmNCa0J7Qm9CQCivQnNCe0KHQmtCQ0Ikg0J3QmNCa0J7Qm9CQCivQnNCe0KHQmtCQ0Ikg0KDQkNCU0JzQmNCb0JAKK9Cc0J7QodCa0JLQkNCJINCh0JDQktCa0JAKK9Cc0J7QodCb0J7QktCQ0KYg0JrQkNCi0JDQoNCY0J3QkAor0JzQntCh0J3QkNCaINCQ0J3QlNCg0JjQiNCQCivQnNCe0KHQndCQ0Jog0J/QkNCS0JXQmwor0JzQntCh0KLQkNCg0JDQpiDQiNCV0JvQldCd0JAKK9Cc0J7QodCi0JDQoNCh0JrQmCDQodCb0JDQktCY0KbQkAor0JzQntCh0KLQmNCLINCg0JDQlNCc0JjQm9CQCivQnNCe0KHQo9Cg0J7QktCY0Isg0JzQmNCb0JjQiNCQ0J3QkAor0JzQntCi0J7QmiDQgtCe0KDQgtCVCivQnNCe0KLQntCaINCR0KDQkNCd0JrQngor0JzQntCi0J7QoNCe0JbQldCh0JrQoyDQkNCj0KDQntCg0JAKK9Cc0J7QktCg0JjQnSDQmNCS0JDQnQor0JzQntCX0JXQotCY0Isg0JzQm9CQ0JTQldCdCivQnNCg0KfQkNCg0JjQptCQINCX0J7QoNCQ0J0KK9Cc0KDQqNCQINCc0JjQm9CV0J3QmtCQCivQnNCg0KjQmNCLINCC0J7QoNCC0JUKK9Cc0KDQqNCY0Isg0JHQntCT0JTQkNCdCivQnNCg0KjQmNCLINCU0KPQqNCQ0J0KK9Cc0KDQqNCY0Isg0JzQkNCg0JrQngor0JzQoNCo0JjQiyDQnNCY0JvQlQor0JzQoNCo0J4g0JDQndCi0J4KK9Cc0KDQqNCj0InQkCDQndCY0JrQntCb0JAKK9Cc0KDQqNCj0InQkCDQoNCQ0JTQntCc0JjQoAor0JzQoNCC0JAg0JHQntCo0JrQngor0JzQoNCC0JAg0JHQntCT0JTQkNCdCivQnNCg0ILQkCDQnNCQ0J3QlQor0JzQoNCC0JAg0JzQmNCb0JrQkNCdCivQnNCg0ILQkCDQnNCY0KDQntCh0JvQkNCSCivQnNCg0ILQkCDQodCi0JXQktCQ0J0KK9Cc0KDQgtCQINCX0J7QoNCQ0J0KK9Cc0KDQgtCQ0J0g0JTQo9Co0JDQnQor0JzQoNCC0JDQnSDQnNCY0KXQkNCI0JvQngor0JzQoNCC0JDQnSDQoNCj0JbQmNCm0JAKK9Cc0KDQgtCQ0J0g0KHQkNCS0JAKK9Cc0KDQgtCQ0J0g0KHQkNCS0JAKK9Cc0KDQgtCQ0J0g0KHQotCV0JLQkNCdCivQnNCg0ILQkNCdINCh0KLQldCS0JDQnQor0JzQoNCC0JDQndCY0J0g0JLQm9CQ0JTQmNCh0JvQkNCSCivQnNCg0ILQkNCd0J7QkiDQltCQ0KDQmtCeCivQnNCg0ILQkNCd0J7QkiDQkNCd0JjQptCQCivQnNCg0ILQkNCd0J7QkiDQmtCh0JXQndCY0IjQkAor0JzQoNCC0JDQndCe0JIg0JvQkNCX0JAKK9Cc0KDQgtCQ0J3QntCSINCc0JDQoNCY0J3QmtCeCivQnNCg0ILQkNCd0J7QkiDQnNCV0JvQkNCd0JjQiNCQCivQnNCg0ILQkNCd0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQnNCg0ILQkNCd0J7QkiDQnNCe0JzQp9CY0JvQngor0JzQoNCC0JDQndCe0JIg0J3QldCc0JDQitCQCivQnNCg0ILQkNCd0J7QkiDQndCe0JLQmNCm0JAKK9Cc0KDQgtCQ0J3QntCSINCf0KDQntCa0JAKK9Cc0KDQgtCQ0J3QntCSINCh0JzQmNCJ0JAKK9Cc0KDQgtCQ0J3QntCSINCS0KPQmtCe0KHQkNCS0JAKK9Cc0KDQgtCQ0J3QntCSINCX0JTQoNCQ0JLQmtCeCivQnNCg0ILQldCdINCY0JvQmNCI0JAKK9Cc0KDQgtCV0J0g0IjQldCb0JXQndCQCivQnNCg0ILQldCdINCb0JDQl9CQ0KAKK9Cc0KDQgtCV0J0g0JzQmNCg0JrQngor0JzQoNCC0JXQnSDQktCV0InQmtCeCivQnNCg0ILQldCd0J7QkiDQmtCQ0KLQmNCm0JAKK9Cc0KDQgtCV0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0KDQgtCV0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cc0KDQgtCV0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JzQoNCC0JXQndCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQnNCg0ILQldCd0J7QktCY0Isg0J/QldCi0JDQoAor0JzQoNCC0JXQndCe0JLQmNCLINCS0JDQodCeCivQnNCg0JDQp9CQ0IjQkNCmINCm0JLQmNCI0J4KK9Cc0KDQkNCn0JDQiNCQ0KYg0JTQldCI0JDQnQor0JzQoNCQ0IvQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JzQoNCQ0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JzQoNCQ0JrQntCS0JjQiyDQidCj0JHQkNCdCivQnNCg0JDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQnNCg0JDQntCS0JjQiy3QkdCQ0KXQo9CdINCc0JjQm9CY0IjQkNCd0JAKK9Cc0KDQkNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JzQoNCQ0J7QktCY0Isg0JTQo9Co0JDQnQor0JzQoNCQ0J7QktCY0Isg0JrQkNCi0JjQptCQCivQnNCg0JDQntCS0JjQiyDQnNCQ0KDQmtCeCivQnNCg0JDQntCS0JjQiyDQntCb0JPQkCDQlNCgINCf0KDQkNCS0J3QmNCaCivQnNCg0JDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQnNCg0JDQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0KDQkNCi0JjQndCa0J7QktCY0Isg0JHQntCg0JjQoSDQlNCgINCb0JXQmtCQ0KAKK9Cc0KDQkNCi0JjQndCa0J7QktCY0Isg0JTQo9Co0JDQnSDQlNCgCivQnNCg0JDQotCY0J3QmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JzQoNCQ0JLQmNCaINCW0JjQktCa0JAKK9Cc0KDQkNCS0JjQmiDQgtCj0KDQkAor0JzQoNCQ0JLQmNCaINCf0JDQktCb0JUKK9Cc0KDQkNCXINCQ0J3QlNCg0JjQiNCQCivQnNCg0JDQl9CV0Jog0JHQldCg0J3QkNCg0JTQngor0JzQoNCQ0JfQntCS0JjQiyDQiNCe0KHQmNCfCivQnNCg0JDQl9Ce0JLQmNCLINCc0JjQm9CQ0J3QkAor0JzQoNCQ0JfQntCS0JjQiyDQnNCY0JvQkNCdCivQnNCg0JDQl9Ce0JLQmNCLINCd0JXQktCV0J3QmtCQCivQnNCg0JTQkNCaINCC0J7QoNCC0JUKK9Cc0KDQlNCQ0Jog0JzQmNCg0JDQqAor0JzQoNCU0JDQmtCe0JLQmNCLINCR0J7QoNCY0KHQkNCSCivQnNCg0JTQkNCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cc0KDQlNCQ0JrQntCS0JjQiyDQktCV0KDQmNCm0JAKK9Cc0KDQlNCQ0JrQntCS0JjQiyDQktCj0JrQntCh0JDQkgor0JzQoNCU0JDQiSDQn9CV0KLQkNCgCivQnNCg0JTQmNCLINCa0JDQoNCe0JvQmNCd0JAKK9Cc0KDQlNCY0Isg0JzQkNCg0JrQngor0JzQoNCU0JjQiyDQodCQ0IrQkAor0JzQoNCT0JDQndCY0Isg0IjQntCX0J4KK9Cc0KDQk9CQ0J3QmNCLINCh0KDQldCL0JrQngor0JzQoNCT0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQoNCa0KjQmNCLINCC0J7QoNCC0JUKK9Cc0KDQmtCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JzQoNCa0KjQmNCLINCR0J7QiNCQ0J3QkAor0JzQoNCa0KjQmNCLINCU0KDQkNCT0JDQnQor0JzQoNCa0KjQmNCLINCU0KDQkNCT0JDQnQor0JzQoNCa0KjQmNCLINCI0JXQm9CV0J3QkAor0JzQoNCa0KjQmNCLINCI0J7QptCQCivQnNCg0JrQqNCY0Isg0IjQntCm0JAKK9Cc0KDQmtCo0JjQiyDQmtCe0KHQotCQCivQnNCg0JrQqNCY0Isg0JzQmNCb0J7QqAor0JzQoNCa0KjQmNCLINCd0JXQndCQ0JQKK9Cc0KDQmtCo0JjQiyDQodCb0JDQktCY0KbQkAor0JzQoNCa0KjQmNCLINCX0JDQk9Ce0KDQmtCQCivQnNCg0JrQqNCY0Isg0JfQm9CQ0KLQkAor0JzQoNCa0JDQmNCLINCT0J7QoNCQ0J0KK9Cc0KDQmtCQ0JjQiyDQodCY0JzQkAor0JzQoNCa0JDQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0KDQmtCQ0Ikg0JHQntCW0JjQlNCQ0KAKK9Cc0KDQmtCV0JvQkCDQnNCY0KDQkAor0JzQoNCa0JXQm9CQINCS0J7QiNCY0J0KK9Cc0KDQmtCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQnNCg0JrQmNCLINCc0JjQm9Ca0JAg0JzQoCDQn9ClCivQnNCg0JrQmNCLINCd0JjQmtCe0JvQkAor0JzQoNCa0JjQiyDQodCc0JjQidCQCivQnNCg0JrQntCI0JXQktCY0Isg0JrQntCh0KLQkAor0JzQoNCa0J7QiNCV0JLQmNCLINCc0JDQoNCY0IjQkAor0JzQoNCa0J7QitCV0JIg0JTQoNCQ0JPQkNCdCivQnNCg0JrQntCK0JjQiyDQltCY0JLQntCI0JjQnQor0JzQoNCa0J7QktCQ0KfQmtCYINCI0JXQm9CV0J3QkAor0JzQoNCa0J7QktCQ0KfQmtCYINCc0JjQm9Ce0KgKK9Cc0KDQmtCe0JLQkNCn0JrQmCDQnNCY0JvQntCS0JDQnQor0JzQoNCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQnNCg0JrQo9Co0JjQiyDQnNCY0JvQmNCm0JAKK9Cc0KDQmtCj0KjQmNCLINCc0JjQm9CY0KbQkAor0JzQoNCa0KPQqNCY0Isg0KDQkNCU0JjQktCe0IgKK9Cc0KDQmtCj0KjQmNCLINCh0KLQldCS0JDQnQor0JzQoNCc0J7QqCDQnNCY0JvQkNCdCivQnNCg0J3Qo9Co0KLQmNCaINCh0KLQldCS0JDQnQor0JzQoNCS0JjQiyDQndCV0JTQldCJ0JrQngor0JzQoNCS0JjQiyDQodCQ0JLQkAor0JzQoNCS0JjQiyDQodCi0JXQktCQ0J0KK9Cc0KDQktCY0Isg0JLQo9Ca0J7QnNCY0KAKK9Cc0KDQktCY0KbQkCDQoNCj0JbQmNCm0JAKK9Cc0KDQktCe0Kgg0IjQntCS0JDQnQor0JzQoNCS0J7QqCDQnNCY0KXQkNCY0JvQngor0JzQoNCS0J7QqCDQnNCY0JvQkNCd0JrQkAor0JzQo9Cn0JDQm9CY0KbQkCDQlNCg0JDQk9Ce0InQo9CRCivQnNCj0KfQkNCb0J4g0KHQm9CQ0JLQmNCm0JAKK9Cc0KPQp9CQ0JvQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cc0KPQp9CQ0JvQntCS0JjQiyDQlNCj0KjQmtCeCivQnNCj0KfQldCd0KHQmtCYINCJ0KPQkdCe0JzQmNCgCivQnNCj0KfQldCd0KHQmtCYINCd0JjQmtCe0JvQkAor0JzQo9Cn0JXQndCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQnNCj0KfQmCDQgtCV0KDQgiDQlNCY0J/QmyDQmNCd0JMKK9Cc0KPQp9CYINCQ0J3QlNCg0JDQqAor0JzQo9Cn0Jgg0KTQoNCQ0IrQkAor0JzQo9Cn0Jgg0JjQm9Ce0J3QkAor0JzQo9Cn0Jgg0JjQm9Ce0J3QmtCQCivQnNCj0KfQmCDQiNCe0JbQldCkCivQnNCj0KfQmCDQiNCe0JbQldCkCivQnNCj0KfQmNCR0JDQkdCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cc0KPQp9CY0JHQkNCR0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQnNCj0KfQmNCR0JDQkdCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cc0KPQp9CY0JHQkNCR0JjQiyDQoNCQ0JTQntCS0JDQnQor0JzQo9Cn0JjQkdCQ0JHQmNCLINCh0JDQktCeCivQnNCj0KfQmNCR0JDQkdCY0Isg0JLQldCg0JAKK9Cc0KPQp9CjINCI0J7QktCQ0J0KK9Cc0KPQp9CjINCd0JjQmtCe0JvQkAor0JzQo9Co0JDQnSDQnNCQ0KDQmNCI0JAKK9Cc0KPQqNCY0Isg0KTQoNCQ0IrQkAor0JzQo9Co0JjQptCa0Jgg0IvQmNCg0JAKK9Cc0KPQqNCY0KbQmtCYINCW0JjQktCQ0J0KK9Cc0KPQqNCY0KbQmtCYINCW0JjQktCQ0J0KK9Cc0KPQqNCY0KbQmtCYINCW0JjQktCQ0J0KK9Cc0KPQqNCY0KbQmtCYINCC0J7QoNCC0JUKK9Cc0KPQqNCY0KbQmtCYINCC0J7QoNCC0JUKK9Cc0KPQqNCY0KbQmtCYINCR0J7Qk9CU0JDQnQor0JzQo9Co0JjQptCa0Jgg0JHQntCI0JDQndCQCivQnNCj0KjQmNCm0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0KPQqNCY0KbQmtCYINCR0KDQkNCd0JrQkAor0JzQo9Co0JjQptCa0Jgg0JTQntCg0J7QotCV0IjQkAor0JzQo9Co0JjQptCa0Jgg0JTQoNCQ0JPQkNCdCivQnNCj0KjQmNCm0JrQmCDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cc0KPQqNCY0KbQmtCYINCU0KPQqNCQ0J0KK9Cc0KPQqNCY0KbQmtCYINCU0KPQqNCQ0J0KK9Cc0KPQqNCY0KbQmtCYINCU0KPQqNCQ0J0KK9Cc0KPQqNCY0KbQmtCYINCV0JLQmNCm0JAKK9Cc0KPQqNCY0KbQmtCYINCI0J7QktCQ0J0KK9Cc0KPQqNCY0KbQmtCYINCb0JDQl9CQ0KAKK9Cc0KPQqNCY0KbQmtCYINCc0JDQoNCY0IjQkAor0JzQo9Co0JjQptCa0Jgg0JzQmNCb0JDQndCQCivQnNCj0KjQmNCm0JrQmCDQnNCY0JvQldCd0JrQngor0JzQo9Co0JjQptCa0Jgg0JzQmNCb0JjQptCQCivQnNCj0KjQmNCm0JrQmCDQnNCY0JvQmNCm0JAKK9Cc0KPQqNCY0KbQmtCYINCc0JjQm9Ce0KDQkNCUCivQnNCj0KjQmNCm0JrQmCDQndCQ0KLQkNCo0JAKK9Cc0KPQqNCY0KbQmtCYINCd0J7QktCQ0JoKK9Cc0KPQqNCY0KbQmtCYINCf0KDQntCa0JAKK9Cc0KPQqNCY0KbQmtCYINCh0JvQkNCS0JrQngor0JzQo9Co0JjQptCa0Jgg0KHQm9CQ0JLQmtCeCivQnNCj0KjQmNCm0JrQmCDQodCe0KTQmNCI0JAKK9Cc0KPQqNCY0KbQmtCYINCh0KLQldCS0JDQnQor0JzQo9Co0JjQptCa0Jgg0JLQldCJ0JrQngor0JzQo9Co0JjQmtCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cc0KPQqNCY0JrQmNCLINCJ0KPQkdCY0KbQkAor0JzQo9Co0JjQmtCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cc0KPQqNCY0JrQmNCLINCg0JDQotCa0J4KK9Cc0KPQqNCa0JjQitCQINCR0JDQoNCY0KbQkAor0JzQo9Co0JrQmNCK0JAg0JzQmNCg0JrQngor0JzQo9CW0JXQmiDQktCY0JTQkAor0JzQo9CW0JjQiNCV0JLQmNCLINCg0JjQodCi0J4KK9Cc0KPQltCY0Jog0JHQmNCJ0JDQndCQCivQnNCj0JbQmNCaINCc0JDQotCQCivQnNCj0JbQmNCa0JAt0KLQntCiINCX0J7Qm9Ci0JDQnQor0JzQo9CW0JvQkNCYINCo0JDQndCU0J7QoAor0JzQo9CmINCX0JvQkNCi0J7QnNCY0KAKK9Cc0KPQptCYINCI0JDQndCe0KgKK9Cc0KPQlNCg0JXQndCY0Isg0JzQkNCg0JjQiNCQCivQnNCj0JTQoNCV0J3QmNCLINCg0JDQlNCY0KHQm9CQ0JIKK9Cc0KPQlNCg0Jgg0JXQo9CT0JXQnQor0JzQo9CU0KDQmCDQiNCe0JDQmtCY0JwKK9Cc0KPQlNCg0Jgg0InQo9CR0JjQptCQCivQnNCj0JTQoNCYINCc0JjQoNCe0KHQm9CQ0JIKK9Cc0KPQlNCg0Jgg0J/QldCi0JDQoAor0JzQo9CU0KDQmCDQn9CV0KLQkNCgCivQnNCj0JTQoNCYINCS0JXQoNCQINCU0KAg0JLQldCi0JXQoNCY0J3QlQor0JzQo9CU0KDQmCDQktCb0JDQlNCQCivQnNCj0JTQoNCYINCS0JvQkNCU0JjQnNCY0KAKK9Cc0KPQlNCg0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JzQo9CU0KDQmNCLINCC0KPQoNCQCivQnNCj0JTQoNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JzQo9CU0KDQmNCLINCJ0KPQkdCe0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0JzQo9CU0KDQmNCLINCf0JXQotCQ0KAKK9Cc0KPQlNCg0JjQiyDQodCb0JDQktCa0JAKK9Cc0KPQlNCg0JjQndCY0Isg0JHQntCo0JrQngor0JzQo9CU0KDQmNCd0JjQiyDQkdCe0KjQmtCeCivQnNCj0JTQoNCY0J3QmNCLINCR0KDQkNCd0JrQngor0JzQo9CU0KDQmNCd0JjQiyDQk9Ce0IjQmtCeCivQnNCj0JTQoNCY0J3QmNCLINCc0JDQiNCQCivQnNCj0JTQoNCY0J3QmNCLINCc0JjQpdCQ0IjQm9CeCivQnNCj0JTQoNCY0J3QmNCLINCc0JjQm9CQ0J0KK9Cc0KPQlNCg0JjQndCY0Isg0JzQmNCb0JXQktCQCivQnNCj0JTQoNCY0J3QmNCLINCc0JvQkNCU0JXQnQor0JzQo9CU0KDQmNCd0JjQiyDQn9CV0KLQkNCgINCU0KAKK9Cc0KPQlNCg0JjQndCY0Isg0KHQm9CQ0JLQmtCeCivQnNCj0JTQoNCY0J3QmNCLINCh0J/QkNCh0JXQndCa0JAKK9Cc0KPQlNCg0JjQndCY0Isg0KHQotCV0JLQngor0JzQo9CU0KDQmNCd0JjQiyDQodCi0J7QiNCQ0J0KK9Cc0KPQlNCg0JjQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JzQo9CU0KDQmNCd0JjQiyDQktCe0IjQmNCdCivQnNCj0JTQoNCY0J3QodCa0Jgg0ILQntCg0ILQlQor0JzQo9CU0KDQmNCd0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCj0JTQoNCY0J3QodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQnNCj0JTQoNCY0J3QodCa0Jgg0JHQntCh0JjQidCa0JAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQmNCS0JDQndCa0JAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQm9CQ0JfQkNCgCivQnNCj0JTQoNCY0J3QodCa0Jgg0JzQmNCb0JDQnQor0JzQo9CU0KDQmNCd0KHQmtCYINCc0JjQm9CV0KLQkAor0JzQo9CU0KDQmNCd0KHQmtCYINCc0JjQm9Ce0KgKK9Cc0KPQlNCg0JjQndCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQnNCj0JTQoNCY0J3QodCa0Jgg0J7Qm9CT0JAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQn9CV0KLQkNCgCivQnNCj0JTQoNCY0J3QodCa0Jgg0KHQkNCS0JAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQodCe0KTQmNCI0JAKK9Cc0KPQlNCg0JjQndCh0JrQmCDQodCi0JXQktCQ0J0KK9Cc0KPQlNCg0JjQndCh0JrQmCDQktCe0IjQmNCh0JvQkNCSCivQnNCj0JPQntCo0JAg0JzQmNCb0J4KK9Cc0KPQpdCQINCX0KPQl9CQ0J3QkAor0JzQo9Cl0JDQoNCV0JzQmCDQpNCj0JDQlAor0JzQo9Cl0JDQoNCV0JzQodCa0Jgt0JHQldCL0JjQoNCe0JLQmNCLINCg0JXQnNCX0JjQiNCQCivQnNCj0KXQkNCg0Jgg0JvQkNCI0J7QqAor0JzQo9Cl0Jgg0JHQldCb0JAKK9Cc0KPQiNCQ0J3QntCS0JjQiyDQodCQ0KTQldCiCivQnNCj0IjQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JzQo9CI0JDQndCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cc0KPQiNCV0JfQmNCd0J7QktCY0Isg0JDQm9Cc0JDQoQor0JzQo9CI0JXQl9CY0J3QntCS0JjQiyDQmNCg0JXQndCQCivQnNCj0IjQldCX0JjQndCe0JLQmNCLINCX0JvQkNCi0JDQnQor0JzQo9CI0JjQiyDQnNCY0JvQkNCdCivQnNCj0IjQmtCQ0J3QntCS0JjQiyDQodCQ0JvQmNClCivQnNCj0IjQmtCY0Isg0KjQldCk0JjQmgor0JzQo9CI0JrQmNCLINCl0JDQiNCg0KPQlNCY0J0KK9Cc0KPQiNCa0JjQiyDQmNCb0JTQo9CX0JAKK9Cc0KPQiNCa0JjQiyDQmNCX0KPQlNCY0J0KK9Cc0KPQiNCa0JjQiyDQiNCQ0JrQo9CRCivQnNCj0IjQmtCY0Isg0JzQldCl0JzQldCUCivQnNCj0Jot0KHQkNCc0JDQoNCP0JjQiyDQldCc0JAKK9Cc0KPQm9CQ0Jgg0JzQkNCi0JjQiNCQCivQnNCj0JvQkNCIINCV0KHQotCY0JrQkAor0JzQo9Cb0JDQiCDQmtCQ0KLQmNCm0JAKK9Cc0KPQm9CY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JzQo9Cb0JjQiyDQnNCY0J7QlNCg0JDQkwor0JzQo9Cb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQnNCj0JvQmNCLINCf0JXQotCQ0KAKK9Cc0KPQm9CY0Isg0KDQkNCU0JzQmNCb0J4KK9Cc0KPQm9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQnNCj0JvQmNCLINCS0JXQidCa0J4KK9Cc0KPQm9CY0Isg0JfQntCg0JDQnQor0JzQo9Cc0I/QmNCLINCl0JDQl9CY0KAKK9Cc0KPQnNCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0KPQnNCY0J0g0J3QmNCa0J7Qm9CQCivQnNCj0JzQmNCd0JDQk9CY0Isg0JDQm9CY0JTQkAor0JzQo9Cc0JjQndCe0JLQmNCLINCQ0JvQmNCcCivQnNCj0JzQmNCd0J7QktCY0Isg0KXQkNCc0JXQlAor0JzQo9Cc0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9Cc0KPQnNCe0JLQmNCLINCI0J7QktCQCivQnNCj0JzQntCS0JjQiyDQodCQ0JLQkAor0JzQo9Cd0IvQkNCdINCC0J7QoNCC0JUKK9Cc0KPQndCL0JDQnSDQgtCe0KDQgtCVCivQnNCj0J3Qi9CQ0J0g0ILQntCg0ILQlQor0JzQo9Cd0IvQkNCdINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQnNCj0J3Qi9CQ0J0g0JDQndCT0JXQm9CY0J3QkAor0JzQo9Cd0IvQkNCdINCR0J7QqNCa0J4KK9Cc0KPQndCL0JDQnSDQkdCe0KjQmtCeCivQnNCj0J3Qi9CQ0J0g0JTQoNCQ0JPQkNCdCivQnNCj0J3Qi9CQ0J0g0JTQoNCQ0JPQntCJ0KPQkQor0JzQo9Cd0IvQkNCdINCU0KPQqNCQ0J0KK9Cc0KPQndCL0JDQnSDQiNCe0JLQkNCdINCU0KAKK9Cc0KPQndCL0JDQnSDQiNCe0JLQkNCdCivQnNCj0J3Qi9CQ0J0g0JvQkNCX0JDQoAor0JzQo9Cd0IvQkNCdINCb0JDQl9CQCivQnNCj0J3Qi9CQ0J0g0JzQmNCb0JXQndCa0J4KK9Cc0KPQndCL0JDQnSDQoNCQ0JTQntCS0JDQnQor0JzQo9Cd0IvQkNCdINCh0JvQkNCS0JrQngor0JzQo9Cd0IvQkNCdINCh0J7QpNCY0IjQkAor0JzQo9Cd0IvQkNCdINCi0J7QlNCe0KAKK9Cc0KPQndCL0JDQnSDQktCQ0KHQkAor0JzQo9Cd0IvQkNCdINCS0JXQodCV0JvQmNCdCivQnNCj0J3Qi9CQ0J0g0JLQm9CQ0JTQmNCc0JjQoAor0JzQo9Cd0IvQkNCdINCX0J7QoNCQCivQnNCj0J3Qj9CY0Isg0JbQmNCS0J7QiNCY0J0KK9Cc0KPQndCP0JjQiyDQkdCe0JPQlNCQ0J0KK9Cc0KPQndCP0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JzQo9Cd0I/QmNCLINCf0JXQotCQ0KAKK9Cc0KPQndCU0JjQndCTINCV0KLQldCb0JrQkAor0JzQo9Cd0JjQqNCY0Isg0IjQntCS0JDQnQor0JzQo9Cd0JjQltCQ0JHQkCDQgtCe0KDQgtCVINCU0JjQn9CbINCY0J3Qkwor0JzQo9Cd0JjQltCQ0JHQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cc0KPQndCY0JbQkNCR0JAg0IjQntCS0JDQnQor0JzQo9Cd0JjQltCQ0JHQkCDQmtCQ0KLQmNCm0JAKK9Cc0KPQndCY0JbQkNCR0JAg0JvQkNCX0JDQoAor0JzQo9Cd0JjQltCQ0JHQkCDQnNCY0JvQldCd0JrQngor0JzQo9Cd0JjQltCQ0JHQkCDQktCV0JTQoNCQ0J3QkAor0JzQo9Cd0JjQotCb0JDQmiDQlNCg0JDQk9CQ0J0KK9Cc0KPQitCQ0KEg0JHQntCW0JjQlNCQ0KAKK9Cc0KPQitCQ0KEg0JTQnNCY0KLQkNCgCivQnNCj0IrQkNChINCc0JjQm9CQ0J0KK9Cc0KPQitCQ0KEg0KHQmNCc0JrQkAor0JzQo9CK0JDQoSDQodCi0JDQndCQCivQnNCj0IrQmNCdINCW0JjQktCa0J4KK9Cc0KPQitCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0KPQitCY0J0t0JHQkNCd0JjQiyDQntCb0JPQkCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JzQo9CK0JjQnSDQmtCQ0IjQmNCm0JAKK9Cc0KPQitCY0J0g0JvQkNCX0JDQoAor0JzQo9CK0JjQnSDQn9CV0KLQkNCgCivQnNCj0IrQmNCdINCh0JzQmNCJ0JAKK9Cc0KPQitCY0JfQkCDQltCV0InQmtCeCivQnNCj0IrQmNCX0JAg0IjQntCS0JDQndCa0JAKK9Cc0KPQndCaINCC0J7QoNCC0JUKK9Cc0KPQndCa0JAg0JTQo9Co0JDQndCa0JAKK9Cc0KPQndCa0JDQp9CYINCc0JjQpdCQ0IjQm9CeCivQnNCj0J3QotCV0JDQnSDQmNCb0JjQiNCQCivQnNCj0J3QotCV0JDQnSDQotCe0JTQntCgCivQnNCj0J3Ql9CQ0KAg0JLQldCg0JAKK9Cc0KPQoNCQ0KLQmCDQnNCY0InQkNCX0JjQnAor0JzQo9Cg0JDQotCYINCh0KLQkNCd0JAKK9Cc0KPQoNCQ0KLQntCS0JjQiyDQmNCR0KDQkNCl0JjQnAor0JzQo9Cg0JDQotCe0JLQmNCLINCI0J7QktCeCivQnNCj0KDQkNCi0J7QktCY0Isg0JzQmNCa0JAKK9Cc0KPQoNCQ0KLQntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JzQo9Cg0JDQotCe0JLQmNCLINCh0JDQkdCg0JjQiNCQCivQnNCj0KDQk9CQ0KjQmtCYINCR0KDQkNCd0JrQkAor0JzQo9Cg0JPQkNCo0JrQmCDQlNCQ0J3QmNCm0JAKK9Cc0KPQoNCT0JDQqNCa0Jgg0JTQntCR0KDQldCdCivQnNCj0KDQk9CQ0KjQmtCYINCU0KPQqNCQ0J0KK9Cc0KPQoNCT0JDQqNCa0Jgg0IjQntCS0JDQnQor0JzQo9Cg0JPQkNCo0JrQmCDQidCj0JHQmNCd0JrQkAor0JzQo9Cg0JPQkNCo0JrQmCDQnNCQ0KLQmNCI0JAKK9Cc0KPQoNCT0JDQqNCa0Jgg0JzQmNCl0JDQiNCb0J4KK9Cc0KPQoNCT0JDQqNCa0Jgg0JzQmNCb0JjQptCQCivQnNCj0KDQk9CQ0KjQmtCYINCc0JjQm9Ce0KgKK9Cc0KPQoNCT0JDQqNCa0Jgg0JzQmNCb0J7QoNCQ0JQKK9Cc0KPQoNCT0JDQqNCa0Jgg0JzQmNCg0J7QodCb0JDQkgor0JzQo9Cg0JPQkNCo0JrQmCDQndCV0J3QkNCUCivQnNCj0KDQk9CQ0KjQmtCYINCd0J7QktCQ0JoKK9Cc0KPQoNCT0JDQqNCa0Jgg0J/QldCi0JDQoAor0JzQo9Cg0JPQkNCo0JrQmCDQodCQ0JLQkAor0JzQo9Cg0JPQkNCo0JrQmCDQodCV0JLQldCgCivQnNCj0KDQk9CQ0KjQmtCYINCh0JvQntCR0J7QlNCQ0J0g0JTQoAor0JzQo9Cg0JPQkNCo0JrQmCDQodCS0JXQotCe0JfQkNCgCivQnNCj0KDQk9CQ0KjQmtCYINCS0KPQmtCe0KHQkNCS0JAKK9Cc0KPQoNCT0KPQmyDQidCj0JHQntCc0JjQoAor0JzQo9Cg0JPQo9Cb0J7QktCY0Isg0JzQntCc0JjQoAor0JzQo9Cg0JjQiyDQodCb0JDQktCa0J4KK9Cc0KPQoNCY0Isg0KHQotCV0JLQkNCdCivQnNCj0KDQmNCLINCS0JXQidCa0J4KK9Cc0KPQoNCY0IrQmCDQiNCe0KHQmNCfCivQnNCj0KDQmNCK0Jgg0JrQkNCi0JjQptCQCivQnNCj0KDQmNCK0Jgg0JzQmNCb0JXQktCQCivQnNCj0KDQmNCK0Jgg0KHQotCe0IjQkNCd0JrQkAor0JzQo9Cg0J/QpdCjINCc0JjQoNCI0JDQndCQCivQnNCj0KDQodCV0JvQmCDQnNCY0KDQp9CVCivQnNCj0KDQodCV0JvQmCDQndCV0JfQmNCgCivQnNCj0KDQodCV0JvQntCS0JjQiyDQndCQ0JfQmNCkCivQnNCj0KDQodCV0JvQntCS0JjQiyDQoNCQ0JjQpAor0JzQo9Ch0JAg0JjQktCQ0J3QmtCQCivQnNCj0KHQkCDQiNCV0JvQmNCm0JAKK9Cc0KPQodCQ0KTQmNCI0JAg0JHQm9CQ0J3QmtCQCivQnNCj0KHQmNCLINCo0JDQkdCQ0J3QmNCI0JAKK9Cc0KPQodCY0Isg0KjQldCc0KHQkAor0JzQo9Ch0JjQiyDQmtCQ0KLQmNCm0JAKK9Cc0KPQodCY0Isg0JzQmNCg0JrQngor0JzQo9Ch0JjQiyDQoNCQ0JTQntCI0JrQkAor0JzQo9Ch0JjQiyDQl9Ce0KDQkNCdCivQnNCj0KHQmNCdINCa0JDQm9Cc0JDQnQor0JzQo9Ch0J7QktCh0JrQmCDQmNCh0JAKK9Cc0KPQodCi0JDQpNCY0Isg0JHQoNCQ0J3QmtCQCivQnNCj0KHQotCQ0KTQmNCLINCl0JDQoNCY0JcKK9Cc0KPQodCi0JDQpNCY0Isg0JzQmNCb0JjQptCQCivQnNCj0KHQotCQ0KTQmNCLINCh0JXQlNCQ0KIKK9Cc0KPQodCi0JDQpNCe0KHQmtCYINCR0JXQlNCg0JjQiNCQCivQnNCj0KHQotCV0JTQkNCd0JDQk9CY0Isg0JXQodCQ0JQKK9Cc0KPQodCj0JvQmNCdINCT0J7QoNCa0JgKK9Cc0KPQodCj0JvQmNCdINCc0JjQm9Ce0KDQkNCUCivQnNCj0KHQo9Cb0JjQnSDQodCb0JDQktCa0J4KK9Cc0KPQotCQ0JHQj9CY0IjQkCDQnNCY0JvQntCS0JDQnQor0JzQo9Ci0JDQktCn0JjQldCSINCY0JLQkNCdCivQnNCj0KLQkNCS0I/QmNCLLdCT0JjQntCdINCc0JDQoNCY0IjQkAor0JzQo9Ci0JDQktCP0JjQiyDQnNCY0JvQkNCdCivQnNCj0KLQkNCS0I/QmNCLINCc0JjQm9CQ0J0KK9Cc0KPQotCQ0JLQj9CY0Isg0JzQmNCb0J7QqAor0JzQo9Ci0JDQktCP0JjQiyDQoNCQ0KLQmtCeCivQnNCj0KLQkNCS0I/QmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cc0KPQotCQ0JLQj9CY0Isg0JLQldCJ0JrQngor0JzQo9Ci0JDQktCP0JjQiyDQl9Cb0JDQotCQCivQnNCj0KLQkNCS0I/QmNCI0JAg0JzQmNCg0IjQkNCd0JAKK9Cc0KPQotCY0Isg0JbQmNCS0JrQngor0JzQo9Ci0JjQiyDQkdCg0JDQndCa0J4KK9Cc0KPQotCY0Isg0JTQo9Co0JDQnQor0JzQo9Ci0JjQiyDQlNCj0KjQkNCdCivQnNCj0KLQmNCLINCU0KPQqNCQ0J0KK9Cc0KPQotCY0Isg0JTQo9Co0JjQptCQCivQnNCj0KLQmNCLINCa0JDQnNCV0J3QmtCeCivQnNCj0KLQmNCLINCJ0JjQidCQ0J3QkAor0JzQo9Ci0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQnNCj0KLQmNCLINCh0JzQmNCJ0JAKK9Cc0KPQotCY0JHQkNCg0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgCivQnNCj0KLQmNCR0JDQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0KPQotCY0JHQkNCg0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQnNCj0KLQmNCR0JDQoNCY0Isg0JjQoNCV0J3QkAor0JzQo9Ci0JjQkdCQ0KDQmNCLINCb0JjQkdCj0KjQkAor0JzQo9Ci0JjQkdCQ0KDQmNCLINCc0JjQm9CQ0J0KK9Cc0KPQotCY0JHQkNCg0JjQiyDQnNCY0JvQlQor0JzQo9Ci0JjQkdCQ0KDQmNCLINCd0JDQotCQ0KjQkAor0JzQo9Ci0JjQkdCQ0KDQmNCLINCh0KLQldCS0JDQnQor0JzQo9Ci0JjQkdCQ0KDQmNCLINCi0J7QlNCe0KAKK9Cc0KPQotCY0J0g0ILQntCg0ILQlQor0JzQo9Ci0JjQnSDQldCc0JjQmwor0JzQo9Ci0JjQnSDQl9CU0KDQkNCS0JrQngor0JzQo9CX0JDQm9CV0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cc0KPQl9CV0JrQkCDQnNCQ0KDQmNCI0JDQndCQCivQnNCj0JfQldCgINCk0KDQkNCK0JAKK9Cc0KPQl9CV0KAg0JzQmNCg0J7QodCb0JDQkgor0JzQo9CX0JXQoCDQoNCQ0JTQntCh0JvQkNCSCivQnNCj0JfQmNCa0KDQkNCS0JjQiyDQkdCb0JDQltCeCivQnNCj0JfQmNCa0KDQkNCS0JjQiyDQidCj0JHQntCc0JjQoCDQlNCgCivQndCQ0Kcg0JDQndCU0KDQmNCI0JAKK9Cd0JDQp9CQINCI0JDQndCe0KgKK9Cd0JDQp9CQINCI0J7QodCY0J8KK9Cd0JDQp9CQINCe0KLQmNCb0JjQiNCQCivQndCQ0KjQmNCT0JDQi9CY0J0g0JzQmNCb0JXQndCa0J4KK9Cd0JDQi9Cj0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JDQi9Cj0Jog0JjQoNCY0J3QkAor0J3QkNCCINCn0J7QndCT0J7QoAor0J3QkNCCINCn0J7QndCT0J7QoAor0J3QkNCCINCo0JDQndCU0J7QoAor0J3QkNCCINCo0JDQndCU0J7QoAor0J3QkNCCINCC0JXQoNCCCivQndCQ0IIt0JDQkdCe0IrQmCDQk9CQ0JHQntCgCivQndCQ0IIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JDQgiDQkNCd0JAKK9Cd0JDQgiDQkNCd0JPQldCb0JAKK9Cd0JDQgiDQkdCQ0KDQkdCQ0KDQkAor0J3QkNCCINCR0JXQm9CQCivQndCQ0IIg0JHQoNCQ0J3QmtCQCivQndCQ0IIg0JTQldCW0JUKK9Cd0JDQgi3QlNCe0KDQntCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Cd0JDQgiDQlNCg0JDQk9CY0KHQm9CQ0JIKK9Cd0JDQgiDQlNCj0KjQkNCd0JrQkAor0J3QkNCCINCV0KDQltCV0JHQldCiCivQndCQ0IIg0JXQotCV0JsKK9Cd0JDQgiDQldCj0KTQldCc0JjQiNCQCivQndCQ0IIg0KTQldCg0JXQndCmCivQndCQ0IIg0KTQldCg0JXQndCmCivQndCQ0IIg0KTQldCg0JXQndCmCivQndCQ0IIg0KTQldCg0JXQndCmCivQndCQ0IIg0KTQldCg0JXQndCmCivQndCQ0IIt0KTQntCg0JrQkNCoINCa0JDQotCY0KbQkAor0J3QkNCCINCk0KDQkNCK0JAKK9Cd0JDQgiDQpNCg0JDQitCQCivQndCQ0IIg0KTQoNCQ0IrQkAor0J3QkNCCINCT0JXQntCg0JPQmNCd0JAKK9Cd0JDQgiDQk9CY0JfQldCb0JAKK9Cd0JDQgi3QpdCV0JLQldCo0Jgg0JvQkNCh0JvQngor0J3QkNCCINCY0KjQotCS0JDQnQor0J3QkNCCINCY0KjQotCS0JDQnQor0J3QkNCCINCY0JvQntCd0JAKK9Cd0JDQgiDQmNCc0KDQlQor0J3QkNCCINCY0KDQmNCd0JAKK9Cd0JDQgiDQmNCS0JDQnQor0J3QkNCCINCI0JDQndCe0KgKK9Cd0JDQgiDQiNCQ0J3QntCoCivQndCQ0IIg0IjQntCW0JXQpAor0J3QkNCCINCI0J7QltCV0KQKK9Cd0JDQgiDQiNCe0JbQldCkCivQndCQ0IIg0IjQntCW0JXQpAor0J3QkNCCINCI0J7QodCY0J8KK9Cd0JDQgiDQiNCe0KHQmNCfCivQndCQ0IIg0IjQntCh0JjQnwor0J3QkNCCINCI0J7QodCY0J8KK9Cd0JDQgiDQiNCe0KHQmNCfCivQndCQ0IIg0IjQntCh0JjQnwor0J3QkNCCINCI0J7QktCQ0J3QmtCQCivQndCQ0IIg0IjQntCS0JDQnQor0J3QkNCCINCa0JDQoNCb0J4KK9Cd0JDQgiDQmtCQ0KDQntCJCivQndCQ0IIg0JrQkNCg0J7QiQor0J3QkNCCINCa0JDQotCQ0KDQmNCd0JAKK9Cd0JDQgiDQm9CQ0JTQmNCh0JvQkNCSCivQndCQ0IIg0JvQkNCI0J7QqAor0J3QkNCCINCb0JDQiNCe0KgKK9Cd0JDQgiDQm9CQ0KHQm9CeINCU0JjQn9CbINCY0J3Qkwor0J3QkNCCINCb0JDQodCb0J4KK9Cd0JDQgiDQm9CQ0KHQm9CeCivQndCQ0IIg0JvQkNCh0JvQngor0J3QkNCCINCb0JDQodCb0J4KK9Cd0JDQgiDQm9CQ0KHQm9CeCivQndCQ0IIg0JvQldCe0J3QkAor0J3QkNCCINCb0JXQntCd0JAKK9Cd0JDQgiDQidCj0JHQmNCm0JAKK9Cd0JDQgiDQnNCQ0KDQk9CQ0KDQldCi0JAKK9Cd0JDQgiDQnNCQ0KDQmNCI0JAKK9Cd0JDQgiDQnNCQ0KDQmNCI0JAKK9Cd0JDQgiDQnNCQ0KDQotCe0J0KK9Cd0JDQgi3QnNCV0InQmtCj0KLQmCDQldCU0JjQogor0J3QkNCCINCc0JjQpdCQ0IjQm9CeCivQndCQ0IIg0JzQmNCl0JDQiQor0J3QkNCCINCc0JjQoNCQCivQndCQ0IIg0JzQmNCg0JAKK9Cd0JDQgiDQnNCY0KDQkAor0J3QkNCCINCc0JjQoNCI0JDQndCQCivQndCQ0IIg0J3QkNCd0JTQntCgCivQndCQ0IIg0J3QkNCd0JTQntCgCivQndCQ0IIg0J3QldCS0JXQndCa0JAKK9Cd0JDQgiDQndCY0JrQntCb0JAKK9Cd0JDQgiDQndCe0JLQmNCm0JAKK9Cd0JDQgiDQntCi0J4KK9Cd0JDQgiDQntCi0J4KK9Cd0JDQgiDQn9CQ0JLQm9CVCivQndCQ0IIg0J/QkNCS0JvQlQor0J3QkNCCINCf0JXQotCQ0KAKK9Cd0JDQgiDQn9CV0KLQkNCgCivQndCQ0IIg0J/QldCi0JDQoAor0J3QkNCCINCf0JXQotCV0KAKK9Cd0JDQgiDQn9CY0KDQntCo0JrQkAor0J3QkNCCINCf0JjQoNCe0KjQmtCQCivQndCQ0IIt0J/QntCf0J7QkiDQptCV0KbQmNCb0JjQiNCQCivQndCQ0IIg0KDQntCX0JAKK9Cd0JDQgiDQodCb0JDQktCa0J4KK9Cd0JDQgiDQodCi0JXQktCQ0J0KK9Cd0JDQgiDQodCi0JXQktCQ0J0KK9Cd0JDQgiDQodCS0IjQkNCi0J7QodCb0JDQkgor0J3QkNCCLdCi0JDQndCQ0KHQmtCe0JLQmNCLINCI0KPQm9CY0IjQkAor0J3QkNCCINCi0JjQkdCe0KAKK9Cd0JDQgiDQktCQ0KHQmNCb0JjQiNCVCivQndCQ0IIg0JLQldCg0J7QndCQCivQndCQ0IIg0JLQmNCa0KLQntCg0JjQiNCQCivQndCQ0IIg0JLQm9CQ0JTQmNCc0JjQoAor0J3QkNCCINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JDQgiDQktCb0JDQlNCY0JzQmNCgCivQndCQ0IIg0JLQm9CQ0JTQmNCc0JjQoAor0J3QkNCCINCX0JvQkNCi0JjQnNCY0KAKK9Cd0JDQgiDQl9Ce0JvQotCQ0J0KK9Cd0JDQgtCQ0JvQmNCdINCR0KDQkNCd0JrQngor0J3QkNCC0JDQm9CY0J0g0JjQodCQCivQndCQ0ILQkdCQ0JHQmCDQpNCV0KDQldCd0KYKK9Cd0JDQgtCR0JDQkdCYINCk0JXQoNCV0J3Qpgor0J3QkNCC0JHQkNCR0Jgg0JjQk9Ce0KAKK9Cd0JDQgtCR0JDQkdCYINCY0JLQmtCQCivQndCQ0ILQkdCQ0JHQmCDQiNCQ0J3QmNCa0JAKK9Cd0JDQgtCV0KDQgiDQmNCb0J7QndCa0JAKK9Cd0JDQgtCT0JXQm9CV0KDQoiDQiNCQ0J3QntCoCivQndCQ0ILQpdCV0ILQldCo0Jgg0KTQoNCQ0IrQkAor0J3QkNCC0KXQldCC0JXQqNCYINCI0J7QktCQ0J0KK9Cd0JDQgtCl0JXQgtCV0KjQmCDQm9CQ0JTQmNCh0JvQkNCSCivQndCQ0ILQmNCU0JDQmCDQmtCQ0KDQntCJCivQndCQ0ILQnNCV0InQmtCj0KLQmCDQmtCb0JDQoNCQCivQndCQ0ILQnNCY0IvQniDQktCV0KHQldCb0JjQndCQCivQndCQ0ILQntCg0IIg0KHQkNCo0JAKK9Cd0JDQgtCf0JDQmyDQmNCg0JXQndCa0JAKK9Cd0JDQgtCS0JjQndCh0JrQmCDQmtCh0JXQndCY0IjQkAor0J3QkNCC0JLQmNCd0KHQmtCYINCf0JXQotCQ0KAKK9Cd0JDQptCV0JIg0JPQoNCj0IjQngor0J3QkNCU0JDQqNCa0Jgg0JvQkNCX0JDQoAor0J3QkNCU0JDQqNCa0Jgg0JzQmNCb0JjQktCe0IgKK9Cd0JDQlNCQ0KjQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JDQlNCQ0KjQmtCY0Isg0JrQkNCi0JjQptCQCivQndCQ0JTQkNCW0JTQmCDQoNCj0JbQmNCm0JAKK9Cd0JDQlNCQ0KDQldCS0JjQiyDQkdCe0KDQmNChCivQndCQ0JTQkdCQ0J3QlNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0J3QkNCU0JHQkNCd0KLQmNCLINCd0JDQlNCQCivQndCQ0JTQmNClINCk0KDQmNCU0KDQmNClCivQndCQ0JTQmNClINCc0JjQoNCa0J4KK9Cd0JDQlNCb0JDQp9Ca0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JDQlNCb0JDQp9Ca0Jgg0JzQmNCb0J7QiNCVCivQndCQ0JTQm9CQ0KfQmtCYINCg0JDQlNCY0JLQntCICivQndCQ0JTQm9CQ0KfQmtCYINCg0JDQlNCe0JLQkNCdCivQndCQ0JTQm9CQ0KfQmtCYINCh0KLQldCS0JrQkAor0J3QkNCU0JvQo9Ca0JDQpyDQnNCQ0KDQmNCI0JAKK9Cd0JDQlNCg0InQkNCd0KHQmtCYINCC0J7QoNCC0JUKK9Cd0JDQlNCg0InQkNCd0KHQmtCYINCU0JDQndCY0JvQmtCQCivQndCQ0JTQoNCJ0JDQndCh0JrQmCDQidCY0InQkNCd0JAKK9Cd0JDQlNCg0InQkNCd0KHQmtCYINCJ0KPQkdCY0KjQkAor0J3QkNCU0KDQidCQ0J3QodCa0Jgg0JzQmNCb0JjQktCe0IgKK9Cd0JDQlNCg0InQkNCd0KHQmtCYINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JDQlNCg0InQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0J3QkNCV0KDQkNCmINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JDQk9Cb0JjQiyDQodCb0JDQktCa0J4KK9Cd0JDQk9Cg0JDQlNCY0Isg0IjQldCb0JXQndCQCivQndCQ0JPQoNCQ0JTQmNCLINCJ0KPQkdCY0KbQkAor0J3QkNCl0JvQntCS0KHQmtCYINCI0J7QltCV0KQKK9Cd0JDQiNCR0JDQo9CV0KAg0JjQktCQ0J0KK9Cd0JDQiNCU0JDQndCe0JIg0JPQldCe0KDQk9CYCivQndCQ0IjQlNCQ0J3QntCSINCY0JLQkNCdCivQndCQ0IjQlNCV0Jog0JLQmNCd0JrQngor0J3QkNCI0JTQntCS0KHQmtCYINCi0J7QnNCY0KHQm9CQ0JIKK9Cd0JDQiNCU0J7QktCh0JrQmCDQotCe0JzQmNCh0JvQkNCSCivQndCQ0IjQmNCLINCQ0J3QmtCY0KbQkAor0J3QkNCI0JjQiyDQnNCY0JvQldCd0JrQngor0J3QkNCI0JjQiyDQl9Ce0KDQmNCm0JAKK9Cd0JDQiNCS0JjQoNCiINCT0J7QotCk0KDQmNCUCivQndCQ0IjQktCY0KDQoiDQiNCe0JLQkNCdCivQndCQ0JrQkNCg0JDQlNCQINCU0JDQoNCY0J3QmtCQCivQndCQ0JrQkNCg0JDQlNCY0Isg0InQo9CR0J4KK9Cd0JDQmtCY0Isg0JTQoNCQ0JPQkNCdCivQndCQ0JrQmNCLINCY0JLQkNCdCivQndCQ0JrQmNCLINCI0JDQitCQCivQndCQ0JrQmNCLINCJ0KPQkdCY0J3QmtCQCivQndCQ0JrQmNCLINCg0JDQlNCe0JLQkNCdCivQndCQ0JrQmNCLINCh0KLQldCS0JDQnQor0J3QkNCa0J7QnNCn0JjQiyDQl9Ce0KDQmtCQCivQndCQ0JrQntCSINCI0J7QoNCU0JDQnQor0J3QkNCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0J3QkNCb0JjQiyDQldCd0JjQodCQCivQndCQ0JzQldCh0J3QmNCaINCe0JvQk9CQCivQndCQ0JzQm9CY0ILQmCDQpNCV0KDQmNCU0JAKK9Cd0JDQndCQ0KjQmCDQltCe0JvQogor0J3QkNCd0JDQqNCYINCQ0JPQkNCi0JAKK9Cd0JDQndCQ0KjQmCDQiNCj0JvQmNCI0JDQndCQCivQndCQ0J3QmNCLINCC0J7QmtCQCivQndCQ0J3QntCS0KHQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JDQndCe0JLQodCa0JjQiCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QkNCe0JTQntCS0JjQiyDQn9CQ0JLQm9CVCivQndCQ0KDQkNCYINCk0JXQoNCV0J3Qpgor0J3QkNCg0JDQndCn0JjQiyDQmNCb0J7QndCa0JAKK9Cd0JDQoNCQ0J3Qp9CY0Isg0JzQmNCb0JUKK9Cd0JDQoNCQ0J3Qp9CY0Isg0JzQmNCb0JUKK9Cd0JDQoNCQ0J3Qp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0JDQoNCQ0J3Qp9CY0Isg0J3QkNCU0JAKK9Cd0JDQoNCQ0J3Qp9CY0Isg0J/QldCi0JDQoAor0J3QkNCg0JDQndCn0JjQiyDQn9CV0KLQkNCgCivQndCQ0KDQkNCd0KfQmNCLINCf0JXQotCQ0KAKK9Cd0JDQoNCQ0J3Qp9CY0Isg0J/QldCi0JDQoAor0J3QkNCg0JDQndCn0JjQiyDQodCQ0JLQkAor0J3QkNCg0JDQndCn0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JDQoNCQ0J3Qp9CY0Isg0KHQotCV0JLQkNCdCivQndCQ0KDQkNCd0KfQmNCLINCh0KPQl9CQ0J3QkAor0J3QkNCg0JDQndCn0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCQ0KDQkNCd0I/QmNCLINCU0JDQoNCa0J4KK9Cd0JDQoNCQ0J3Qj9CY0Isg0JXQktCQCivQndCQ0KDQkNCd0I/QmNCLINCc0JjQm9CQ0J0KK9Cd0JDQoNCQ0J3Qj9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cd0JDQoNCQ0J3Qj9CY0Isg0JLQldCg0JAKK9Cd0JDQoNCY0Isg0J3QldCU0JXQidCa0J4KK9Cd0JDQoSDQgtCV0KDQggor0J3QkNChINCk0JXQoNCV0J3Qpgor0J3QkNChINCk0KDQkNCK0JAKK9Cd0JDQoSDQmtCQ0KDQm9CeCivQndCQ0KHQmtCe0JLQmNCLINCR0JvQkNCW0JAKK9Cd0JDQodCa0J7QktCY0Isg0JfQntCg0JrQkAor0J3QkNCh0J7QkiDQnNCY0JvQmNCS0J7QiAor0J3QkNCh0KLQkNCh0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JDQodCi0JDQodCY0Isg0JjQktCQ0J0KK9Cd0JDQodCi0JDQodCY0Isg0IjQldCb0JXQndCQCivQndCQ0KHQotCQ0KHQmNCLINCJ0JjQidCQ0J3QkAor0J3QkNCh0KLQkNCh0JjQiyDQn9CQ0JLQm9CVCivQndCQ0KHQotCQ0KHQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cd0JDQodCi0JDQodCY0Isg0KHQotCV0JLQkNCdINCU0KAg0JvQldCa0JDQoAor0J3QkNCh0KLQkNCh0JjQiyDQotCQ0KLQiNCQ0J3QkAor0J3QkNCh0KLQkNCh0JjQiyDQotCV0J7QlNCe0KAKK9Cd0JDQodCi0JDQodCY0IjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCQ0KHQotCQ0KHQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cd0JDQodCi0JDQodCe0JLQmNCLINCi0J7QndCn0JAKK9Cd0JDQodCi0JXQktCY0Isg0KLQntCU0J7QoAor0J3QkNCh0KLQmNCLINCY0KDQldCd0JAKK9Cd0JDQodCi0JjQiyDQm9CV0J/QntCh0JDQktCQCivQndCQ0KHQotCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cd0JDQodCi0JjQiyDQnNCY0JvQldCd0JAKK9Cd0JDQodCi0JjQiyDQnNCY0JvQmNCm0JAKK9Cd0JDQodCi0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J3QkNCh0KLQmNCLINCd0JjQmtCe0JvQldCi0JAKK9Cd0JDQodCi0JjQiyDQntCb0JPQkAor0J3QkNCh0KLQmNCLINCg0JDQlNCVCivQndCQ0KHQotCY0Isg0KDQkNCU0JjQodCQ0JIKK9Cd0JDQodCi0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QkNCh0KLQmNCLINCg0JDQotCe0JzQmNCgCivQndCQ0KHQotCY0Isg0KHQktCV0KLQntCX0JDQoAor0J3QkNCh0KLQmNCLINCS0JvQkNCU0JAKK9Cd0JDQodCi0JjQiyDQl9Ce0KDQkNCdINCU0KAg0JvQldCa0JDQoAor0J3QkNCh0KLQntCSINCa0JjQoNCeCivQndCQ0KHQotCe0JLQodCa0Jgg0JTQoNCQ0JPQngor0J3QkNCi0J7QqNCV0JLQmNCLINCU0JXQiNCQ0J0KK9Cd0JDQo9Cc0J7QkiDQgtCe0KDQgtCVCivQndCQ0KPQnNCe0JIg0JHQoNCQ0J3QmtCQCivQndCQ0KPQnNCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0J3QkNCj0JzQntCSINCa0JDQotCQ0KDQmNCd0JAKK9Cd0JDQo9Cc0J7QkiDQmtCQ0KLQkNCg0JjQndCQCivQndCQ0KPQnNCe0JIg0JzQmNCb0JXQndCQCivQndCQ0KPQnNCe0JIg0JzQmNCb0JjQktCe0IgKK9Cd0JDQo9Cc0J7QkiDQodCi0JXQktCQ0J0KK9Cd0JDQo9Cc0J7QktCY0Isg0IjQldCb0JjQptCQCivQndCQ0KPQnNCe0JLQmNCLINCc0JjQm9CY0JLQntCIINCU0KAKK9Cd0JDQo9Cc0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCQ0KPQnNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JDQo9Cc0J7QktCh0JrQmCDQnNCY0KDQmtCeCivQndCQ0KPQnNCe0JLQodCa0Jgg0J3QmNCa0J7Qm9CQCivQndCQ0KPQnNCe0JLQodCa0Jgg0KHQntCK0JAKK9Cd0JDQo9Cc0J7QktCh0JrQmCDQodCi0J7QiNCQ0J0KK9Cd0JDQo9Cc0J7QktCh0JrQmCDQotCQ0J3QkNChCivQndCQ0KPQndCa0J7QktCY0Isg0JHQntCT0JTQkNCd0JrQkAor0J3QkNCj0J3QmtCe0JLQmNCLINCh0JjQndCY0KjQkAor0J3QkNCS0JDQm9CQINCd0JjQmtCe0JvQkAor0J3QkNCS0JDQm9Cj0KjQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Cd0JDQktCQ0JvQo9Co0JjQiyDQktCe0IjQmNCdCivQndCQ0JLQoNCQ0KLQmNCbINCC0KPQoNCQCivQndCQ0JLQoNCQ0KLQmNCbINCI0J7QodCY0J8KK9Cd0JDQktCg0JDQotCY0Jsg0IjQntCh0JjQnwor0J3QkNCS0KDQkNCi0JjQmyDQodCb0J7QkdCe0JTQkNCdCivQndCQ0JLQoNCQ0KLQmNCbINCX0JTQldCd0JrQngor0J3QkNCS0KDQkNCi0JjQmyDQl9Ce0KDQkNCdCivQndCQ0JfQlNCg0JDQktCV0KbQmtCYINCQ0J3QlNCg0JDQqAor0J3QldCn0J7QktCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cd0JXQqNCV0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQndCV0KjQldCS0JjQiyDQkNCd0ILQldCb0JrQngor0J3QldCo0JjQiyDQkNCm0JAKK9Cd0JXQqNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQqNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQqNCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cd0JXQqNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0KAKK9Cd0JXQqNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCV0KjQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J3QldCo0JjQiyDQlNCj0KjQkNCdCivQndCV0KjQmNCLINCI0JXQpNCi0JAKK9Cd0JXQqNCY0Isg0IjQntCS0JDQnQor0J3QldCo0JjQiyDQiNCe0JLQkNCdCivQndCV0KjQmNCLINCI0J7QktCQ0J0KK9Cd0JXQqNCY0Isg0IjQntCS0JDQnQor0J3QldCo0JjQiyDQmtCe0KHQkNCd0JAKK9Cd0JXQqNCY0Isg0JvQldCd0JrQkAor0J3QldCo0JjQiyDQm9CV0J7QndCY0JQKK9Cd0JXQqNCY0Isg0InQmNCJ0JDQndCQCivQndCV0KjQmNCLINCc0JDQoNCI0JDQnQor0J3QldCo0JjQiyDQnNCY0JvQkNCdCivQndCV0KjQmNCLINCc0JjQm9CQ0J0KK9Cd0JXQqNCY0Isg0JzQmNCb0JDQnQor0J3QldCo0JjQiyDQnNCY0JvQldCd0JrQngor0J3QldCo0JjQiyDQnNCY0JvQmNCm0JAKK9Cd0JXQqNCY0Isg0JzQmNCb0JjQktCe0IgKK9Cd0JXQqNCY0Isg0JzQmNCb0JrQkAor0J3QldCo0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QldCo0JjQiyDQnNCY0KDQkAor0J3QldCo0JjQiyDQnNCY0KDQmtCeCivQndCV0KjQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0J3QldCo0JjQiyDQnNCb0JDQlNCV0J0KK9Cd0JXQqNCY0Isg0JzQm9CQ0JTQldCdCivQndCV0KjQmNCLINCd0JXQlNCV0InQmtCeCivQndCV0KjQmNCLINCf0JXQotCQ0KAKK9Cd0JXQqNCY0Isg0KDQkNCU0JjQodCQ0JIKK9Cd0JXQqNCY0Isg0KHQkNCS0JXQotCQCivQndCV0KjQmNCLINCh0JjQnNCV0J7QnQor0J3QldCo0JjQiyDQodCb0JDQktCa0J4KK9Cd0JXQqNCY0Isg0KHQm9CQ0JLQntCI0JrQkAor0J3QldCo0JjQiyDQotCe0JTQntCgCivQndCV0KjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JXQqNCY0J0g0JbQkNCg0JrQngor0J3QldCo0JjQnSDQiNCe0JLQkNCd0JAKK9Cd0JXQqNCY0J0g0IjQntCS0JDQnQor0J3QldCo0JjQnSDQnNCQ0KDQmtCeCivQndCV0KjQmNCdINCh0KLQldCS0JDQnQor0J3QldCo0JrQntCSINCU0KDQkNCT0J7QodCb0JDQkiDQlNCgCivQndCV0KjQmtCe0JIg0KHQotCQ0J3QmNCh0JvQkNCSCivQndCV0KjQmtCe0JIg0JLQntCI0JjQodCb0JDQkgor0J3QldCo0JrQntCS0JjQiyDQgtCj0KDQgtCQCivQndCV0KjQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCV0KjQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J3QldCo0JrQntCS0JjQiyDQmNCg0JXQndCQCivQndCV0KjQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0J3QldCo0JrQntCS0JjQiyDQidCj0JHQmNCo0JAKK9Cd0JXQqNCa0J7QktCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cd0JXQqNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QldCo0JrQntCS0JjQiyDQnNCY0JvQmNCI0JDQnQor0J3QldCo0JrQntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0J3QldCo0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQndCV0KjQmtCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cd0JXQqNCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cd0JXQqNCa0J7QktCY0Isg0JzQmNCi0JAKK9Cd0JXQqNCa0J7QktCY0Isg0J3QldCo0JrQngor0J3QldCo0JrQntCS0JjQiyDQn9CV0KDQmNCm0JAKK9Cd0JXQqNCa0J7QktCY0Isg0J/QldCi0JDQoAor0J3QldCo0JrQntCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0J3QldCo0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QldCo0JrQntCS0JjQiyDQoNCQ0JTQntCK0JAKK9Cd0JXQqNCa0J7QktCY0Isg0KDQldCI0JzQntCd0JQKK9Cd0JXQqNCa0J7QktCY0Isg0KDQo9CW0JjQptCQCivQndCV0KjQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0J3QldCo0JrQntCS0JjQiy3Ql9CU0KDQkNCS0JjQiyDQktCV0KDQmNCm0JAKK9Cd0JXQqNCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQndCV0KjQntCS0JjQiyDQlNCg0JDQk9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQndCV0KjQntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0J3QldCo0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQndCV0KjQntCS0JjQiyDQmNCS0JDQndCa0JAKK9Cd0JXQqNCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQndCV0KjQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J3QldCo0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0JXQqNCe0JLQmNCLINCg0KPQltCY0KbQkAor0J3QldCo0J7QktCY0Isg0KLQoNCY0JLQmtCQCivQndCV0KjQotCY0KbQmtCYINCI0J7QodCY0J8KK9Cd0JXQqNCi0JjQptCa0Jgg0IjQntCh0JjQnwor0J3QldCo0KLQmNCm0JrQmCDQnNCY0JvQmNCm0JAKK9Cd0JXQqNCi0JjQptCa0Jgg0KHQotCV0JLQkNCdCivQndCV0IvQkNCaINCC0J7QoNCC0JUKK9Cd0JXQi9CQ0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQi9CQ0Jog0JHQoNCQ0J3QmtCeCivQndCV0IvQkNCaLdCa0J7QoNCQ0Isg0JDQndCC0JXQm9Ca0JAKK9Cd0JXQi9CQ0Jog0KHQotCV0JLQkNCdCivQndCV0IvQkNCaINCS0JXQoNCQCivQndCV0IvQkNCaINCX0JTQoNCQ0JLQmtCeCivQndCV0IvQkNCa0J7QkiDQnNCQ0KDQmNCI0JAKK9Cd0JXQi9CQ0JrQntCSINCc0JjQm9CQ0J0KK9Cd0JXQi9CQ0JrQntCSINCc0JjQm9Ca0JAKK9Cd0JXQi9CQ0JrQntCSINCh0JjQnNCQCivQndCV0IvQkNCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQndCV0JbQmNCLINCU0JDQnNCY0KAKK9Cd0JXQkNCi0J3QmNCm0JAg0JTQo9Co0JDQnQor0J3QldCQ0KLQndCY0KbQkCDQoNCQ0JTQmNCS0J7QiCDQlNCY0J/QmyDQmNCd0JMKK9Cd0JXQkdCV0KHQndCYINCR0J7QoNCY0KEKK9Cd0JXQkdCe0IjQqNCQINCh0J7QpNCY0IjQkAor0J3QldCR0KDQmNCT0JjQiyDQiNCe0JLQmNCm0JAKK9Cd0JXQkdCg0JjQk9CY0Isg0KDQkNCi0JrQngor0J3QldCm0JXQkiDQlNCg0JDQk9Ce0InQo9CRCivQndCV0KbQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cd0JXQptCY0Isg0KLQntCo0JAKK9Cd0JXQptCY0J0g0JbQmNCS0JjQptCQCivQndCV0KbQmNCdINCh0KLQldCS0JAKK9Cd0JXQptCY0J0g0JLQntCI0JAKK9Cd0JXQptCY0J0g0JfQm9CQ0KLQntCc0JjQoAor0J3QldCm0JrQntCSINCU0KDQkNCT0JjQitCQCivQndCV0KbQmtCe0JIg0JPQntCg0JDQnQor0J3QldCm0JrQntCSINCa0JDQotCY0KbQkAor0J3QldCm0JrQntCSINCb0JDQl9CQ0KAKK9Cd0JXQptCa0J7QkiDQm9Ce0JfQmNCd0JrQkAor0J3QldCm0JrQntCSINCc0JDQoNCY0IjQkAor0J3QldCm0JrQntCSINCc0JjQoNCI0JDQndCQCivQndCV0KbQmtCe0JIg0JzQntCc0KfQmNCb0J4KK9Cd0JXQptCa0J7QkiDQndCY0JrQntCb0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JbQmNCS0JrQngor0J3QldCU0JXQidCa0J7QkiDQltCY0JLQmtCeCivQndCV0JTQldCJ0JrQntCSINCC0J7QoNCC0JUKK9Cd0JXQlNCV0InQmtCe0JIg0ILQntCg0ILQlQor0J3QldCU0JXQidCa0J7QkiDQgtCe0KDQgtCVCivQndCV0JTQldCJ0JrQntCSINCQ0J3QgtCV0JvQmtCQCivQndCV0JTQldCJ0JrQntCSINCQ0J3QmtCQCivQndCV0JTQldCJ0JrQntCSINCU0JXQodCQ0J3QmtCQCivQndCV0JTQldCJ0JrQntCSINCU0KDQkNCT0JDQnQor0J3QldCU0JXQidCa0J7QkiDQlNCg0JDQk9CY0IrQkAor0J3QldCU0JXQidCa0J7QkiDQlNCj0KjQkNCdCivQndCV0JTQldCJ0JrQntCSINCY0JvQmNCI0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JjQoNCV0J3QkAor0J3QldCU0JXQidCa0J7QkiDQmNCS0JDQnQor0J3QldCU0JXQidCa0J7QkiDQiNCV0JvQldCd0JAKK9Cd0JXQlNCV0InQmtCe0JIg0IjQntCS0JDQnQor0J3QldCU0JXQidCa0J7QkiDQiNCe0JLQkNCdCivQndCV0JTQldCJ0JrQntCSINCI0KPQm9CY0IjQkNCd0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JrQkNCi0JjQptCQCivQndCV0JTQldCJ0JrQntCSINCa0KDQodCi0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JvQkNCX0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cd0JXQlNCV0InQmtCe0JIg0JvQmNCd0JAKK9Cd0JXQlNCV0InQmtCe0JIg0InQmNCJ0JDQndCQCivQndCV0JTQldCJ0JrQntCSINCJ0KPQkdCY0KbQkAor0J3QldCU0JXQidCa0J7QkiDQidCj0JHQmNCm0JAKK9Cd0JXQlNCV0InQmtCe0JIg0JzQkNCg0JjQiNCQCivQndCV0JTQldCJ0JrQntCSINCc0JDQoNCY0IjQkAor0J3QldCU0JXQidCa0J7QkiDQnNCQ0KDQmtCeCivQndCV0JTQldCJ0JrQntCSINCc0JjQm9CQ0J0KK9Cd0JXQlNCV0InQmtCe0JIg0JzQmNCb0JDQnQor0J3QldCU0JXQidCa0J7QkiDQnNCY0JvQmNCS0J7QiAor0J3QldCU0JXQidCa0J7QkiDQnNCY0JvQntCoCivQndCV0JTQldCJ0JrQntCSINCc0JjQoNCI0JDQndCQCivQndCV0JTQldCJ0JrQntCSINCc0JjQoNCa0J4KK9Cd0JXQlNCV0InQmtCe0JIg0JzQmNCg0J7QodCb0JDQktCQCivQndCV0JTQldCJ0JrQntCSINCc0JjQotCQCivQndCV0JTQldCJ0JrQntCSINCe0JvQk9CQCivQndCV0JTQldCJ0JrQntCSINCe0JvQk9CQCivQndCV0JTQldCJ0JrQntCSINCg0JDQlNCVCivQndCV0JTQldCJ0JrQntCSINCg0JDQlNCY0JLQntCICivQndCV0JTQldCJ0JrQntCSINCg0JDQlNCe0IjQmtCQCivQndCV0JTQldCJ0JrQntCSINCg0JDQlNCe0JzQmNCgCivQndCV0JTQldCJ0JrQntCSINCh0JjQndCY0KjQkAor0J3QldCU0JXQidCa0J7QkiDQodCi0JXQktCQ0J0KK9Cd0JXQlNCV0InQmtCe0JIg0KLQldCe0JTQntCg0JAKK9Cd0JXQlNCV0InQmtCe0JIg0KLQntCc0JjQodCb0JDQkgor0J3QldCU0JXQidCa0J7QkiDQktCY0J3QmtCQCivQndCV0JTQldCJ0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCW0JjQktCa0J4KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCW0JjQktCa0J4KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCW0JjQktCa0J4KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQndCV0JTQldCJ0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQndCV0JTQldCJ0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQndCV0JTQldCJ0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QldCU0JXQidCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQkdCe0JPQntCc0JjQoAor0J3QldCU0JXQidCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCR0J7QoNCa0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCU0J7QkdCg0JjQndCa0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQiNCe0KDQlNCQ0J0KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCI0KPQk9Ce0KHQm9CQ0JIKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCI0KPQm9Ca0JjQptCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQiNCj0KHQotCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQm9CV0J/QntCh0JDQktCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQkNCg0JrQngor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCc0JjQm9CY0IjQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCc0JjQm9Ce0IjQmtCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQnNCY0JvQntCI0JrQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCV0JTQldCJ0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCV0JTQldCJ0JrQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQn9CQ0JLQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQndCV0JTQldCJ0JrQntCS0JjQiyDQodCY0JzQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0KHQmNCc0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0J3QldCU0JXQidCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQndCV0JTQldCJ0JrQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0KDQldCi0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0J3QldCU0JXQidCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQndCV0JTQldCJ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0J3QldCU0JXQidCa0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQndCV0JTQldCJ0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQndCV0JTQldCJ0JrQntCS0JjQiyDQktCV0KDQkAor0J3QldCU0JXQidCa0J7QktCY0Isg0JLQldCg0JjQptCQCivQndCV0JTQldCJ0JrQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIg0JTQoAor0J3QldCU0JXQidCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0J3QldCU0JXQidCa0J7QktCY0Isg0JLQo9Cn0JrQngor0J3QldCU0JXQidCa0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cd0JXQlNCV0InQmtCe0JLQmNCLINCX0JvQkNCi0JAKK9Cd0JXQlNCY0Isg0KjQn9CY0KDQngor0J3QldCU0JjQiyDQkdCY0InQkNCd0JAKK9Cd0JXQlNCY0Isg0JHQntCg0JjQodCb0JDQkgor0J3QldCU0JjQiyDQkdCe0KDQiNCQ0J3QmtCQCivQndCV0JTQmNCLINCU0JDQoNCY0J3QmtCQCivQndCV0JTQmNCLINCU0JXQodCQ0J3QmtCQINCf0KDQntCk0JXQodCe0KAKK9Cd0JXQlNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQndCV0JTQmNCLINCI0JXQm9CV0J3QkAor0J3QldCU0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J3QldCU0JjQiyDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0J3QldCU0JjQiyDQiNCe0JLQkNCdCivQndCV0JTQmNCLINCa0JDQotCY0KbQkAor0J3QldCU0JjQiyDQmtCQ0KLQmNCm0JAKK9Cd0JXQlNCY0Isg0JvQkNCX0JDQoAor0J3QldCU0JjQiyDQm9CQ0JfQkNCgCivQndCV0JTQmNCLINCb0JDQl9CQ0KAKK9Cd0JXQlNCY0Isg0JvQkNCX0JDQoAor0J3QldCU0JjQiyDQidCj0JHQmNCm0JAKK9Cd0JXQlNCY0Isg0JzQldCb0JDQndCY0IjQkAor0J3QldCU0JjQiyDQnNCY0JvQkNCdCivQndCV0JTQmNCLINCc0JjQm9CQ0J0KK9Cd0JXQlNCY0Isg0JzQmNCb0JDQnQor0J3QldCU0JjQiyDQnNCY0JvQldCd0JrQngor0J3QldCU0JjQiyDQnNCY0JvQntCoCivQndCV0JTQmNCLINCc0JjQm9Ce0IjQlQor0J3QldCU0JjQiyDQnNCY0JvQntCS0JDQnQor0J3QldCU0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCV0JTQmNCLINCc0JvQkNCU0JXQnQor0J3QldCU0JjQiyDQndCV0J3QkNCUCivQndCV0JTQmNCLINCd0JjQmtCe0JvQkAor0J3QldCU0JjQiyDQn9CV0KLQkNCgCivQndCV0JTQmNCLINCg0JDQlNCe0KgKK9Cd0JXQlNCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0JXQlNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0J3QldCU0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQndCV0JTQmNCLINCh0JDQktCQCivQndCV0JTQmNCLINCh0JzQmNCJ0JAKK9Cd0JXQlNCY0Isg0KHQndCV0JbQkNCd0JAKK9Cd0JXQlNCY0Ist0KHQoNCV0JzQkNCmINCd0JDQlNCQCivQndCV0JTQmNCLINCh0KLQldCS0JDQnQor0J3QldCU0JjQiyDQktCV0KDQkAor0J3QldCU0JjQiyDQktCY0JTQkAor0J3QldCU0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCV0JTQmNCLINCX0JvQkNCi0J7QiNCVCivQndCV0JTQmNCLINCX0J7QoNCQ0J0KK9Cd0JXQlNCY0JzQntCS0JjQiyDQkdCe0JbQngor0J3QldCU0JjQnNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J3QldCU0JjQnNCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQndCV0JTQmNCd0JjQiyDQodCg0JXQotCV0J0KK9Cd0JXQlNCY0J3QmNCLINCX0J7QoNCQ0J0KK9Cd0JXQlNCe0JzQkNCn0JrQmCDQnNCY0JvQkNCdCivQndCV0JTQntCc0JDQp9Ca0Jgg0KHQotCV0JLQkNCdCivQndCV0JTQntCS0JjQiyDQkNCd0JrQmNCm0JAKK9Cd0JXQlNCe0JLQmNCLINCc0JjQoNCeCivQndCV0JTQntCS0JjQiyDQnNCY0KDQngor0J3QldCU0J7QktCY0Isg0JLQm9CQ0JTQngor0J3QldCU0KPQp9CY0Isg0KHQktCV0KLQntCX0JDQoAor0J3QldCU0KPQp9CY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQlNCj0KfQmNCdINCU0KDQkNCT0JjQptCQCivQndCV0JTQo9Cn0JjQnSDQm9CQ0JfQkNCgINCU0JjQn9CbINCY0J3Qkwor0J3QldCU0KPQp9CY0J0g0JzQmNCb0JXQndCQCivQndCV0JTQktCY0JTQldCaINCR0J7QoNCY0KEg0JTQoAor0J3QldCT0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JXQk9Cb0JjQiyDQmtCQ0KLQmNCm0JAKK9Cd0JXQk9Ce0JLQkNCd0J7QktCY0Isg0JbQmNCS0JrQngor0J3QldCT0J7QktCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cd0JXQk9Ce0JLQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0J3QldCT0KDQoyDQkdCY0KHQldCg0JrQkAor0J3QldCT0KPQqNCV0JLQmNCLINCf0JDQiNCQCivQndCV0IjQk9CV0JHQkNCj0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgINCf0KDQntCkCivQndCV0JzQp9CQ0J3QmNCdINCC0KPQoNCC0JjQptCQCivQndCV0JzQp9CQ0J3QmNCdINCc0JDQoNCY0IjQkAor0J3QldCc0KfQkNCd0JjQnSDQnNCY0KDQiNCQ0J3QkAor0J3QldCc0KfQldCSINCR0J7QoNCY0JLQntCICivQndCV0JzQp9CV0JIg0JTQo9Co0JrQngor0J3QldCc0KfQldCSINCI0JXQm9CV0J3QkAor0J3QldCc0KfQldCSINCd0JjQmtCe0JvQkAor0J3QldCc0KfQldCSINCh0KDQkdCY0J3QmtCeCivQndCV0JzQp9CV0JLQmNCLINCc0JDQoNCa0J4KK9Cd0JXQnNCn0JXQktCY0Isg0J/QldCi0JDQoAor0J3QldCc0JAg0JLQkNCb0JXQoNCY0IjQkAor0J3QldCc0JXQp9CV0Jog0KDQntCW0JAKK9Cd0JXQnNCV0Kgg0IjQldCb0JAKK9Cd0JXQnNCV0Kgg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cd0JXQnNCV0KYg0JDQndCi0KPQnQor0J3QldCc0JXQpiDQkNCd0KLQo9CdCivQndCV0JzQldCmINCV0JzQkNCd0KPQldCbCivQndCV0JzQldCmINCJ0KPQlNCc0JjQm9CQCivQndCV0JzQldCiINCo0JDQndCU0J7QoAor0J3QldCc0JXQoiDQkNCd0JTQoNCY0IjQkAor0J3QldCc0JXQoiDQkNCd0KLQkNCbCivQndCV0JzQldCiINCQ0J3QotCQ0JsKK9Cd0JXQnNCV0KIg0JDQndCi0JDQmwor0J3QldCc0JXQoiDQkNCg0J/QkNCUCivQndCV0JzQldCiINCR0J7QoNCY0KHQm9CQ0JLQmtCQCivQndCV0JzQldCiINCU0JXQltCVCivQndCV0JzQldCiINCU0JXQiNCQ0J0KK9Cd0JXQnNCV0KIg0JXQoNCd0JXQodCiCivQndCV0JzQldCiINCT0JXQoNCT0JXQiQor0J3QldCc0JXQoiDQk9CV0JfQkCDQlNCgCivQndCV0JzQldCiINCT0JXQl9CQCivQndCV0JzQldCiINCY0KjQotCS0JDQnQor0J3QldCc0JXQoiDQmNCo0KLQktCQ0J0KK9Cd0JXQnNCV0KIg0JjQqNCi0JLQkNCdCivQndCV0JzQldCiINCY0JvQntCd0JAKK9Cd0JXQnNCV0KIg0JjQm9Ce0J3QkAor0J3QldCc0JXQoiDQmNCb0J7QndCa0JAKK9Cd0JXQnNCV0KIg0IjQo9Cb0JjQiNCQ0J3QkAor0J3QldCc0JXQoiDQmtCQ0KDQm9CeCivQndCV0JzQldCiINCa0JDQoNCb0J4KK9Cd0JXQnNCV0KIg0JrQkNCi0JjQptCQCivQndCV0JzQldCiINCb0JDQiNCe0KgKK9Cd0JXQnNCV0KIg0JvQkNCh0JvQngor0J3QldCc0JXQoiDQm9CQ0KHQm9CeCivQndCV0JzQldCiINCJ0JjQidCQ0J3QkAor0J3QldCc0JXQoiDQnNCQ0KDQmNCI0JDQndCQCivQndCV0JzQldCiINCc0JDQoNCY0IjQkAor0J3QldCc0JXQoiDQnNCQ0KDQmNCI0JAKK9Cd0JXQnNCV0KIg0JzQmNCl0JDQiQor0J3QldCc0JXQoiDQnNCY0JvQmtCQCivQndCV0JzQldCiINCc0JjQoNCI0JDQndCQCivQndCV0JzQldCiLdCc0KPQp9CYINCc0JDQoNCY0IjQkAor0J3QldCc0JXQoiDQntCb0JjQktCV0KDQkAor0J3QldCc0JXQoiDQntCi0J4KK9Cd0JXQnNCV0KIg0J/QldCi0JDQoAor0J3QldCc0JXQoiDQoNCe0JfQkNCb0JjQiNCQCivQndCV0JzQldCiINCg0KPQlNCe0JvQpAor0J3QldCc0JXQoiDQodCi0JXQktCQ0J0KK9Cd0JXQnNCV0KIg0KHQotCe0IjQkNCd0JrQkAor0J3QldCc0JXQoiDQotCY0JHQntCgCivQndCV0JzQldCiINCS0JjQntCb0JXQotCQCivQndCV0JzQldCiINCX0J7Qm9Ci0JDQnQor0J3QldCc0JXQoiDQl9Ce0JvQotCQ0J0KK9Cd0JXQnNCV0KLQpSDQmNCg0JXQndCQCivQndCV0J3QkNCUINCh0JjQnNCeCivQndCV0J3QkNCU0JjQiyDQnNCY0JvQkNCdCivQndCV0J3QkNCU0JjQiyDQnNCY0JvQldCd0JrQngor0J3QldCd0JDQlNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0JXQndCQ0JTQmNCLINCg0JDQotCa0J4KK9Cd0JXQndCQ0JTQntCSINCW0JjQktCa0J4KK9Cd0JXQndCQ0JTQntCSINCQ0JzQkNCb0JjQiNCQCivQndCV0J3QkNCU0J7QkiDQkNCd0JrQkAor0J3QldCd0JDQlNCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCV0J3QkNCU0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQndCV0J3QkNCU0J7QkiDQiNCV0JLQoNCe0KHQmNCc0JAKK9Cd0JXQndCQ0JTQntCSINCa0JDQnNCV0J3QmtCeCivQndCV0J3QkNCU0J7QkiDQmtCe0KHQotCQINCU0JjQn9CbINCY0J3Qkwor0J3QldCd0JDQlNCe0JIg0JzQmNCb0JXQndCa0J4KK9Cd0JXQndCQ0JTQntCSINCc0JjQm9CV0J3QmtCeCivQndCV0J3QkNCU0J7QkiDQntCb0JPQkAor0J3QldCd0JDQlNCe0JIg0J/QldCi0JDQoAor0J3QldCd0JDQlNCe0JIg0KDQkNCI0JrQngor0J3QldCd0JDQlNCe0JIg0KHQotCV0JLQkNCdCivQndCV0J3QkNCU0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQndCV0J3QkNCU0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0J3QldCd0JDQlNCe0JLQmNCLINCU0JDQndCY0KbQkAor0J3QldCd0JDQlNCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQndCV0J3QkNCU0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QldCd0JDQlNCe0JLQmNCLINCI0KPQm9Ca0JjQptCQCivQndCV0J3QkNCU0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cd0JXQndCQ0JTQntCS0JjQiyDQnNCY0JvQldCd0JrQniDQlNCgCivQndCV0J3QkNCU0J7QktCY0Isg0JzQmNCi0JDQoAor0J3QldCd0JDQlNCe0JLQmNCLINCf0JDQndCi0JAKK9Cd0JXQndCQ0JTQntCS0JjQiyDQn9CV0KLQkNCgCivQndCV0J3QkNCU0J7QktCY0Isg0KHQm9CQ0JLQndCQCivQndCV0J3QkNCU0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J3QldCd0JDQlNCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cd0JXQndCV0JfQmNCLINCC0J7QoNCC0JUKK9Cd0JXQndCV0JfQmNCLINCU0JDQoNCa0J4KK9Cd0JXQndCV0JfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JXQndCV0JfQmNCLINCg0JDQlNCV0J3QmtCeCivQndCV0J3QldCX0JjQiyDQoNCQ0JTQmNCh0JDQkgor0J3QldCd0JjQiyDQgtCe0KDQgtCVCivQndCV0J3QmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Cd0JXQndCY0Isg0KHQkNCS0JAKK9Cd0JXQndCY0Isg0JLQldCg0JAKK9Cd0JXQndCY0Isg0JLQldCg0JjQptCQCivQndCV0J3QmNCdINCW0JjQktCa0J4KK9Cd0JXQndCY0J0g0JTQldCI0JDQnQor0J3QldCd0JjQnSDQlNCg0JDQk9CY0IrQkAor0J3QldCd0JjQnSDQlNCg0JDQk9Ce0JzQmNCgCivQndCV0J3QmNCdINCI0JDQodCV0J3QmtCQCivQndCV0J3QmNCdINCb0JXQndCa0JAKK9Cd0JXQndCY0J0g0JzQkNCg0JAKK9Cd0JXQndCY0J0g0JzQmNCb0JDQnQor0J3QldCd0JjQnSDQnNCY0JvQmNCm0JAKK9Cd0JXQndCY0J0g0JzQmNCb0JjQptCQCivQndCV0J3QmNCdINCc0JjQm9Ce0KDQkNCUCivQndCV0J3QmNCdINCc0JjQoNCa0J4KK9Cd0JXQndCY0J0g0KDQkNCI0JrQngor0J3QldCd0JjQnSDQodCQ0JLQkAor0J3QldCd0JjQnSDQodCb0JDQktCa0J4KK9Cd0JXQndCY0J0g0KLQntCc0JjQodCb0JDQkgor0J3QldCd0JjQnSDQktCQ0KHQkAor0J3QldCe0KTQmNCi0J7QktCY0Isg0JTQldCI0JDQnQor0J3QldCf0JjQmyDQkNCd0KLQo9CdCivQndCV0J/QntCa0J7QiNCn0JjQptCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQoNCQINCe0KDQm9CV0JDQndCQCivQndCV0KDQkNCmINCc0JvQkNCU0JjQndCa0J4KK9Cd0JXQoNCQ0KYg0J/QldCg0J4KK9Cd0JXQoNCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0J3QldCg0JDQndCn0JjQiyDQndCY0JrQntCb0JAKK9Cd0JXQoNCQ0J3Qj9CY0Isg0JHQntCo0JrQngor0J3QldCg0JDQndCP0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JXQoNCQ0J3Qj9CY0Isg0IjQkNCh0JzQmNCd0JAKK9Cd0JXQoNCQ0J3Qj9CY0Isg0JzQkNCa0KHQmNCcCivQndCV0KDQkNCd0I/QmNCLINCd0JXQktCV0J3QmtCQCivQndCV0KDQkNCd0I/QmNCLINCh0KLQntCI0JDQndCa0JAKK9Cd0JXQoNCV0KAg0ILQo9Cg0JAKK9Cd0JXQoNCV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JXQoNCi0JjQptCQINCh0KLQldCS0JDQnQor0J3QldCh0JrQkNCb0JjQiyDQldCS0JPQldCd0JjQiNCVCivQndCV0KHQmtCQ0JvQmNCLINCb0JXQntCd0JDQoNCU0J4KK9Cd0JXQodCi0J7QoNCe0JIg0JbQldCJ0JrQngor0J3QldCh0KLQntCg0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QldCh0KLQntCg0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQndCV0KHQotCe0KDQntCSINCb0JDQl9CQ0KAKK9Cd0JXQodCi0J7QoNCe0JIg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cd0JXQodCi0J7QoNCe0JIg0JzQmNCg0JrQngor0J3QldCh0KLQntCg0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQndCV0KHQotCe0KDQntCS0JjQiyDQltCY0JLQntCi0JAKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCR0JjQidCQ0J3QkAor0J3QldCh0KLQntCg0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0J3QldCh0KLQntCg0J7QktCY0Isg0JHQntCg0JjQoQor0J3QldCh0KLQntCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQndCV0KHQotCe0KDQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQndCV0KHQotCe0KDQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQndCV0KHQotCe0KDQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J3QldCh0KLQntCg0J7QktCY0Isg0JPQkNCS0KDQkAor0J3QldCh0KLQntCg0J7QktCY0Isg0JjQodCQCivQndCV0KHQotCe0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCc0JjQm9CVCivQndCV0KHQotCe0KDQntCS0JjQiyDQndCQ0JTQkAor0J3QldCh0KLQntCg0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQndCV0KHQotCe0KDQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0J3QldCh0KLQntCg0J7QktCY0Isg0KHQkNCS0JAKK9Cd0JXQodCi0J7QoNCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQndCV0KHQotCe0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQndCV0KHQotCe0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCV0KHQotCe0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCV0JLQkNCI0JTQmNCLINCS0JXQm9CY0JzQmNCgCivQndCV0JLQmNCU0J7QktCn0JjQiyDQidCj0JHQmNCm0JAKK9Cd0JXQktCY0JTQntCS0KfQmNCLINCc0JjQm9Ca0JAKK9Cd0JXQktCY0JTQntCS0KfQmNCLINCh0JDQktCQCivQndCV0JLQntCb0JjQiyDQkNCd0JjQptCQCivQndCV0JfQmNCg0Jgg0JDQoNCY0KQKK9Cd0JXQl9CY0KDQntCSINCQ0InQmNCJCivQndCV0JfQmNCg0J7QkiDQktCV0JvQmNCn0JrQngor0J3QmNCn0JjQiyDQndCQ0JTQkAor0J3QmNCn0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J3QmNCo0JDQktCY0Isg0JrQoNCY0KHQotCY0J3QkAor0J3QmNCo0JDQktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cd0JjQqNCQ0JLQmNCLINCf0JDQktCb0JUKK9Cd0JjQqNCQ0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cd0JjQqNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cd0JjQqNCV0JLQmNCLINCC0KPQoNCQCivQndCY0KjQldCS0JjQiyDQiNCe0JLQmNCm0JAKK9Cd0JjQqNCV0JLQmNCLINCa0JDQotCY0KbQkAor0J3QmNCo0JXQktCY0Isg0J7Qm9CT0JAKK9Cd0JjQqNCV0JLQmNCLINCh0JDQktCQCivQndCY0KjQmNCLINCU0KDQkNCT0JDQnQor0J3QmNCo0JjQiyDQnNCb0JDQgtCV0J0KK9Cd0JjQqNCa0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Cd0JjQqNCa0JDQndCe0JLQmNCLINCJ0KPQn9Ca0J4KK9Cd0JjQqNCa0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Cd0JjQi9CV0KLQmNCLINCJ0KPQkdCe0JzQmNCgCivQndCY0IvQldCi0JjQiyDQnNCY0KDQkAor0J3QmNCL0JjQpNCe0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQndCY0IvQmNCk0J7QoNCe0JLQmNCLINCf0JXQoNCQCivQndCY0IvQmNCk0J7QoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cd0JjQi9CY0KTQntCg0J7QktCY0Isg0KLQldCe0JTQntCgCivQndCY0IvQmNCdINCC0J7QoNCC0JUKK9Cd0JjQi9CY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JjQi9CY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCY0IvQmNCdINCU0J7QndCa0JAKK9Cd0JjQi9CY0J0g0JTQo9Co0JrQngor0J3QmNCL0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQndCY0IvQmNCdINCd0JXQktCV0J3QmtCQCivQndCY0IvQmNCdINCd0JjQi9CY0KTQntCgINCU0JjQn9CbINCY0J3Qkwor0J3QmNCL0JjQnSDQodCd0JXQltCQ0J3QkAor0J3QmNCL0JjQnSDQodCe0KTQmNCI0JAKK9Cd0JjQi9CY0J0g0KHQktCV0KLQntCX0JDQoAor0J3QmNCL0JjQnSDQktCQ0KHQmNCb0JjQiNCVCivQndCY0IvQmNCdINCS0JXQoNCY0KbQkAor0J3QmNCL0JjQnSDQl9Ce0KDQkAor0J3QmNCm0JjQiyDQlNCQ0KDQmtCeCivQndCY0JTQldCg0JvQldCd0JTQldCgINCC0J7QoNCC0JUKK9Cd0JjQlNCV0KDQm9CV0J3QmNCLINCX0J7QoNCQ0J3QkAor0J3QmNCI0JXQnNCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQndCY0JrQp9CV0JLQmNCLINCR0J7QqNCa0J4KK9Cd0JjQmtCn0JXQktCY0Isg0IjQntCS0JDQnQor0J3QmNCa0KfQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0J3QmNCa0KfQldCS0JjQiyDQnNCe0JzQngor0J3QmNCa0KfQldCS0JjQiyDQoNCQ0KLQmtCeCivQndCY0JrQp9CV0JLQmNCLINCh0KLQkNCd0JAKK9Cd0JjQmtCo0JjQiyDQltCY0JLQmtCeCivQndCY0JrQqNCY0Isg0ILQo9Cg0JAKK9Cd0JjQmtCo0JjQiyDQptCS0JXQotCe0JfQkNCgCivQndCY0JrQqNCY0Isg0JTQkNCg0JrQngor0J3QmNCa0KjQmNCLINCU0KDQkNCT0JjQitCQCivQndCY0JrQqNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J3QmNCa0KjQmNCLINCU0KPQqNCQ0J3QmtCQCivQndCY0JrQqNCY0Isg0KTQoNCQ0IrQkAor0J3QmNCa0KjQmNCLINCY0KHQkAor0J3QmNCa0KjQmNCLINCI0KPQm9CY0IjQkAor0J3QmNCa0KjQmNCLINCc0JjQm9CQ0J0KK9Cd0JjQmtCo0JjQiyDQnNCY0KDQmtCeCivQndCY0JrQqNCY0Isg0JzQm9CQ0JTQldCdCivQndCY0JrQqNCY0Isg0KHQotCV0JLQkNCdCivQndCY0JrQqNCY0Isg0JLQldCh0J3QkAor0J3QmNCa0JDQp9CV0JIg0KDQkNCU0J7QktCQ0J0KK9Cd0JjQmtCQ0KfQldCSINCg0JDQlNCe0JLQkNCdCivQndCY0JrQkNCn0JXQktCY0Isg0JzQmNCl0J7QktCY0JsKK9Cd0JjQmtCQ0KfQldCS0JjQiyDQoNCQ0JTQntCc0JDQnQor0J3QmNCa0JDQqNCY0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cd0JjQmtCQ0KjQmNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQndCY0JrQldCi0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J3QmNCa0JXQotCY0Isg0JPQntCh0J/QkNCS0JAKK9Cd0JjQmtCV0KLQmNCLINCI0JXQpNCi0JAKK9Cd0JjQmtCV0KLQmNCLINCa0JDQotCY0KbQkAor0J3QmNCa0JXQotCY0Isg0J3QldCR0J7QiNCo0JAg0JTQoAor0J3QmNCa0JXQotCY0Isg0J/QldCi0JDQoAor0J3QmNCa0JXQotCY0Isg0KHQkNCo0JAKK9Cd0JjQmtCV0KLQmNCLINCh0JjQnNCQCivQndCY0JrQldCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQndCY0JrQldCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCY0JrQldCX0JjQiyDQnNCY0JvQkAor0J3QmNCa0JXQl9CY0Isg0J/QldCi0JDQoAor0J3QmNCa0JXQl9CY0Isg0KDQntCa0KHQkNCd0JTQkAor0J3QmNCa0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0J3QmNCa0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JjQmtCY0Isg0JHQo9CU0JjQnNCY0KAKK9Cd0JjQmtCY0Isg0JTQkNCI0JDQndCQCivQndCY0JrQmNCLINCU0KDQkNCT0JDQnQor0J3QmNCa0JjQiyDQiNCe0JLQkNCd0JrQkAor0J3QmNCa0JjQiyDQiNCe0JLQngor0J3QmNCa0JjQiyDQiNCe0JLQngor0J3QmNCa0JjQiyDQmtCQ0KLQmNCm0JAKK9Cd0JjQmtCY0Isg0JvQkNCX0JDQoAor0J3QmNCa0JjQiyDQnNCQ0KDQmNCd0JrQngor0J3QmNCa0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQmNCLINCc0JjQm9CVCivQndCY0JrQmNCLINCc0JjQm9Cj0KLQmNCdCivQndCY0JrQmNCLINCc0JjQntCU0KDQkNCTCivQndCY0JrQmNCLINCc0JjQoNCI0JDQndCQCivQndCY0JrQmNCLINCd0JDQlNCQCivQndCY0JrQmNCLINCd0JDQotCQ0KjQkAor0J3QmNCa0JjQiyDQndCV0JLQldCd0JrQkAor0J3QmNCa0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J3QmNCa0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QmNCa0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QmNCa0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QmNCa0JjQiyDQodCQ0IrQkAor0J3QmNCa0JjQiyDQodCQ0JLQkAor0J3QmNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCY0JrQmNCLINCX0JTQoNCQ0JLQmtCeCivQndCY0JrQmNCLINCX0JvQkNCi0JAKK9Cd0JjQmtCY0Isg0JfQntCg0JAKK9Cd0JjQmtCY0Isg0JfQntCg0JrQkAor0J3QmNCa0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQndCY0JrQmNCdINCg0JDQlNCe0JzQmNCgCivQndCY0JrQmNCdINCS0JXQoNCQCivQndCY0JrQmNCi0JjQqNCY0J0g0J3QkNCU0JAKK9Cd0JjQmtCY0KLQntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0J3QmNCa0JjQotCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCY0JrQmNCi0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0J3QmNCa0JjQotCe0JLQmNCLINCR0J7QltCeCivQndCY0JrQmNCi0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QmNCa0JjQotCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCY0KLQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0J3QmNCa0JjQotCe0JLQmNCLINCc0JjQm9CY0IjQkNCd0JrQkAor0J3QmNCa0JjQotCe0JLQmNCLINCg0JDQlNCQCivQndCY0JrQmNCi0J7QktCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0J3QmNCa0JjQotCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JjQmtCe0KfQldCSINCX0J7QoNCY0KbQkAor0J3QmNCa0J7QlNCY0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQndCY0JrQntCU0JjQiNCV0JLQmNCLINCV0J3QldCh0JAKK9Cd0JjQmtCe0JTQmNCI0JXQktCY0Isg0KDQkNCU0J7QiNCa0J4KK9Cd0JjQmtCe0JTQmNCI0JXQktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cd0JjQmtCe0JTQmNCd0J7QktCh0JrQmCDQodCi0J7QiNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQndCY0JrQntCb0KfQmNCLINCR0JvQkNCW0J4KK9Cd0JjQmtCe0JvQp9CY0Isg0JTQoNCQ0JPQkNCdCivQndCY0JrQntCb0KfQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cd0JjQmtCe0JvQp9CY0J0g0JzQmNCb0J7QqAor0J3QmNCa0J7Qm9Cn0JjQnSDQnNCY0KDQiNCQ0J3QkAor0J3QmNCa0J7Qm9CQ0KjQldCSINCR0J7QoNCY0JLQntCICivQndCY0JrQntCb0JDQqNCV0JIg0IjQntCS0JAKK9Cd0JjQmtCe0JvQkNCo0JXQkiDQidCj0JHQntCc0JjQoAor0J3QmNCa0J7Qm9CQ0KjQldCSINCc0JDQotCY0JvQlNCQCivQndCY0JrQntCb0JDQqNCV0JIg0J3QkNCU0JAKK9Cd0JjQmtCe0JvQkNCI0JXQkiDQiNCV0JvQldCd0JAKK9Cd0JjQmtCe0JvQkNCI0JXQkiDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JDQiNCV0JIg0JzQmNCb0JjQptCQCivQndCY0JrQntCb0JDQiNCV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J3QmNCa0J7Qm9CQ0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQndCY0JrQntCb0JDQiNCV0JLQmNCLINCY0KDQldCd0JAKK9Cd0JjQmtCe0JvQkNCI0JXQktCY0Isg0JzQmNCb0JjQktCe0Igg0JDQmtCQ0JTQldCc0KHQmtCYINCh0JvQmNCa0JDQoAor0J3QmNCa0J7Qm9CQ0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQmtCe0JvQkNCI0JXQktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cd0JjQmtCe0JvQkNCI0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CQ0IjQldCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCY0JrQntCb0JXQotCY0Isg0JHQntCg0JAKK9Cd0JjQmtCe0JvQldCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JjQmtCe0JvQldCi0JjQiyDQlNCj0KjQkNCd0JrQkAor0J3QmNCa0J7Qm9CV0KLQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQldCi0JjQiyDQlNCj0KjQkNCdCivQndCY0JrQntCb0JXQotCY0Isg0IjQntCS0JDQndCa0JAKK9Cd0JjQmtCe0JvQldCi0JjQiyDQiNCe0JLQkNCdCivQndCY0JrQntCb0JXQotCY0Isg0IjQntCS0JDQnQor0J3QmNCa0J7Qm9CV0KLQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQldCi0JjQiyDQiNCe0JLQkNCdCivQndCY0JrQntCb0JXQotCY0Isg0JzQmNCb0JDQnQor0J3QmNCa0J7Qm9CV0KLQmNCLINCc0JjQm9Ce0KgKK9Cd0JjQmtCe0JvQldCi0JjQiyDQnNCY0JvQntCS0JDQnQor0J3QmNCa0J7Qm9CV0KLQmNCLINCh0JjQnNCeCivQndCY0JrQntCb0JXQotCY0Isg0KHQotCV0JLQkNCdCivQndCY0JrQntCb0JXQotCY0Isg0KHQktCV0KLQntCX0JDQoAor0J3QmNCa0J7Qm9CV0KLQmNCLINCS0JjQlAor0J3QmNCa0J7Qm9CV0KLQmNCLINCX0J7QoNCQ0J0KK9Cd0JjQmtCe0JvQmNCn0JjQnSDQkdCg0JDQndCa0J4KK9Cd0JjQmtCe0JvQmNCn0JjQnSDQlNCQ0J3QmNCb0J4KK9Cd0JjQmtCe0JvQmNCn0JjQnSDQl9Ce0KDQkNCdCivQndCY0JrQntCb0JjQqCDQlNCg0JDQk9Cj0KLQmNCdCivQndCY0JrQntCb0JjQqCDQldCS0JjQptCQCivQndCY0JrQntCb0JjQqCDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiy3Qp9CQ0IrQmCDQkdCQ0KDQkdCQ0KDQkAor0J3QmNCa0J7Qm9CY0Ist0KjQmNCa0J7Qn9CQ0KDQmNCI0JAg0J3QldCS0JXQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCL0JjQoNCY0JvQngor0J3QmNCa0J7Qm9CY0Isg0JbQkNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JbQkNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JbQkNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JbQkNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCW0JjQktCa0JAKK9Cd0JjQmtCe0JvQmNCLINCW0JjQktCa0JAKK9Cd0JjQmtCe0JvQmNCLINCW0JjQktCa0J4KK9Cd0JjQmtCe0JvQmNCLINCW0JjQktCa0J4KK9Cd0JjQmtCe0JvQmNCLINCW0JjQktCe0KDQkNCUCivQndCY0JrQntCb0JjQiyDQltCY0JLQntCg0JDQlAor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cd0JjQmtCe0JvQmNCLINCW0JjQktCe0KLQkAor0J3QmNCa0J7Qm9CY0Isg0JbQmNCS0J7QotCQCivQndCY0JrQntCb0JjQiyDQgtCe0KDQgtCVINCf0KDQntCk0JXQodCe0KAKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQmNCLINCC0J7QoNCC0JUKK9Cd0JjQmtCe0JvQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCC0KPQoNCQCivQndCY0JrQntCb0JjQiyDQgtCj0KDQkAor0J3QmNCa0J7Qm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCY0JrQntCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QmNCa0J7Qm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCY0JrQntCb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J3QmNCa0J7Qm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCY0JrQntCb0JjQiy3QkNCb0JXQmtCh0J7QktCh0JrQmCDQodCb0JDQktCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JDQndCQCivQndCY0JrQntCb0JjQiyDQkNCd0JTQoNCY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0JDQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCQ0J3QmtCY0KbQkAor0J3QmNCa0J7Qm9CY0Ist0JHQkNCI0KjQldCSINCh0KLQkNCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JHQmNCJ0JDQndCQCivQndCY0JrQntCb0JjQiyDQkdCY0KHQldCg0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JHQntCo0JrQngor0J3QmNCa0J7Qm9CY0Isg0JHQntCo0JrQngor0J3QmNCa0J7Qm9CY0Isg0JHQntCo0JrQngor0J3QmNCa0J7Qm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCR0J7QltCY0JTQkNCgCivQndCY0JrQntCb0JjQiyDQkdCe0JbQmNCU0JDQoAor0J3QmNCa0J7Qm9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCR0J7QltCeCivQndCY0JrQntCb0JjQiyDQkdCe0JPQlNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCR0J7QiNCa0JAKK9Cd0JjQmtCe0JvQmNCLINCR0J7QoNCQCivQndCY0JrQntCb0JjQiyDQkdCe0KDQkAor0J3QmNCa0J7Qm9CY0Isg0JHQntCg0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JHQntCg0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JHQntCg0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JHQntCg0JjQktCe0IjQlQor0J3QmNCa0J7Qm9CY0Isg0JHQntCg0JjQktCe0IgKK9Cd0JjQmtCe0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCR0KDQkNCd0JrQngor0J3QmNCa0J7Qm9CY0Isg0JHQoNCQ0J3QmtCeCivQndCY0JrQntCb0JjQiyDQkdCg0JDQndCa0J4KK9Cd0JjQmtCe0JvQmNCLINCR0KPQlNCY0JzQmNCgCivQndCY0JrQntCb0JjQiyDQptCS0JXQotCQ0J3QmtCQCivQndCY0JrQntCb0JjQiyDQptCS0JjQiNCV0KLQkAor0J3QmNCa0J7Qm9CY0Ist0I/QkNCS0JXQoCDQmNCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cd0JjQmtCe0JvQmNCLINCU0JDQnNCI0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQkNCc0IjQkNCdCivQndCY0JrQntCb0JjQiyDQlNCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JTQkNCd0JjQptCQCivQndCY0JrQntCb0JjQiyDQlNCQ0J3QmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCU0JDQndCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JTQkNCd0JjQldCbCivQndCY0JrQntCb0JjQiyDQlNCQ0J3QmNCI0JXQmwor0J3QmNCa0J7Qm9CY0Isg0JTQkNCd0JjQm9CeCivQndCY0JrQntCb0JjQiyDQlNCQ0J3QmNCb0J4KK9Cd0JjQmtCe0JvQmNCLINCU0JDQndCa0J4KK9Cd0JjQmtCe0JvQmNCLINCU0JDQoNCY0J3QmtCQCivQndCY0JrQntCb0JjQiyDQlNCQ0JLQntCg0JjQnQor0J3QmNCa0J7Qm9CY0Isg0JTQldCI0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQldCh0JDQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J3QmNCa0J7Qm9CY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQndCY0JrQntCb0JjQiyDQlNCg0JDQqNCa0J4KK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JDQndCQCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQkNCdCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQkNCdCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JDQnQor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQkNCdCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9CQCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0JjQptCQCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQndCY0JrQntCb0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0J4KK9Cd0JjQmtCe0JvQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQndCY0JrQntCb0JjQiyDQlNCj0KjQkNCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JTQo9Co0JDQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCU0KPQqNCa0J4KK9Cd0JjQmtCe0JvQmNCLINCV0JzQmNCb0JjQiNCQCivQndCY0JrQntCb0JjQiyDQldCc0JjQmwor0J3QmNCa0J7Qm9CY0Isg0JPQntCg0JTQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCT0J7QoNCU0JDQndCQCivQndCY0JrQntCb0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0KXQmNCb0JTQkAor0J3QmNCa0J7Qm9CY0Isg0KXQoNCY0KHQotCY0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JjQm9CY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0JjQodCY0JTQntCgCivQndCY0JrQntCb0JjQiyDQmNCS0JDQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCY0JLQkNCdCivQndCY0JrQntCb0JjQiyDQmNCS0J4KK9Cd0JjQmtCe0JvQmNCLINCI0JDQktCe0KDQmtCQCivQndCY0JrQntCb0JjQiyDQiNCV0KTQotCQCivQndCY0JrQntCb0JjQiyDQiNCV0KTQotCY0JzQmNCgCivQndCY0JrQntCb0JjQiyDQiNCV0KTQotCY0JzQmNCgCivQndCY0JrQntCb0JjQiyDQiNCV0JvQldCd0JAKK9Cd0JjQmtCe0JvQmNCLINCI0JXQm9CV0J3QkAor0J3QmNCa0J7Qm9CY0Isg0IjQldCb0JrQkAor0J3QmNCa0J7Qm9CY0Isg0IjQldCb0JrQkAor0J3QmNCa0J7Qm9CY0Isg0IjQntCm0JAKK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCI0J7QktCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0IjQo9Cb0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JrQkNCi0JDQoNCY0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JrQkNCi0JjQptCQCivQndCY0JrQntCb0JjQiyDQmtCQ0KLQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCa0JDQotCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JrQntCh0KLQkNCU0JjQnQor0J3QmNCa0J7Qm9CY0Isg0JrQntCh0KLQkAor0J3QmNCa0J7Qm9CY0Isg0JrQoNCh0KLQkCDQlNCgCivQndCY0JrQntCb0JjQiyDQmtCg0KHQotCQCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQm9CQ0JfQkNCgCivQndCY0JrQntCb0JjQiyDQidCY0InQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCJ0JjQidCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0InQmNCJ0JDQndCQCivQndCY0JrQntCb0JjQiyDQidCj0JHQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCJ0KPQkdCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0InQo9CR0JjQptCQCivQndCY0JrQntCb0JjQiyDQidCj0JHQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCb0KPQiNCX0JAKK9Cd0JjQmtCe0JvQmNCLINCb0KPQmtCQCivQndCY0JrQntCb0JjQiyDQnNCQ0J3QntCI0JvQngor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JDQoNCQCivQndCY0JrQntCb0JjQiyDQnNCQ0KDQkAor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JPQmNCi0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JDQoNCT0JjQotCQCivQndCY0JrQntCb0JjQiyDQnNCQ0KDQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JDQoNCY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JjQiNCQCivQndCY0JrQntCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JDQoNCY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JzQkNCg0JrQngor0J3QmNCa0J7Qm9CY0Isg0JzQldCb0JDQndCY0IjQkCDQodCi0J7QnNCQ0KLQntCb0J7Qkwor0J3QmNCa0J7Qm9CY0Isg0JzQldCb0JDQndCY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCl0JDQiNCb0J4KK9Cd0JjQmtCe0JvQmNCLINCc0JjQpdCQ0IjQm9CeCivQndCY0JrQntCb0JjQiyDQnNCY0KXQkNCI0JvQngor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JDQqNCY0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JDQndCQCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQldCd0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQndCY0JrQntCb0JjQiyDQnNCY0JvQldCS0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CV0JLQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JUKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CVCivQndCY0JrQntCb0JjQiyDQnNCY0JvQlQor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JjQptCQCivQndCY0JrQntCb0JjQiyDQnNCY0JvQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9CY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QqAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QqAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QqAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QqAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QqAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QiNCa0J4KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0JzQmNCgCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQndCY0JrQntCb0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Ce0JLQkNCdCivQndCY0JrQntCb0JjQiyDQnNCY0JvQo9Ci0JjQnQor0J3QmNCa0J7Qm9CY0Isg0JzQmNCb0KPQotCY0J0KK9Cd0JjQmtCe0JvQmNCLINCc0JjQm9Cj0KLQmNCdCivQndCY0JrQntCb0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCY0J/QmyDQmNCd0JMKK9Cd0JjQmtCe0JvQmNCLINCc0JjQntCU0KDQkNCTINCU0KAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQntCU0KDQkNCTINCU0KAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQntCU0KDQkNCTCivQndCY0JrQntCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0J3QmNCa0J7Qm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cd0JjQmtCe0JvQmNCLINCc0JjQntCU0KDQkNCTCivQndCY0JrQntCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0J3QmNCa0J7Qm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cd0JjQmtCe0JvQmNCLINCc0JjQntCU0KDQkNCTCivQndCY0JrQntCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCI0JDQndCQCivQndCY0JrQntCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCa0J4KK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCa0J4KK9Cd0JjQmtCe0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQndCY0JrQntCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQnNCY0KLQkAor0J3QmNCa0J7Qm9CY0Isg0JzQmNCi0JAKK9Cd0JjQmtCe0JvQmNCLINCc0JjQotCQCivQndCY0JrQntCb0JjQiyDQnNCb0JDQlNCV0J3QmtCQCivQndCY0JrQntCb0JjQiyDQnNCb0JDQlNCV0J0KK9Cd0JjQmtCe0JvQmNCLINCc0J7QnNCn0JjQm9CeCivQndCY0JrQntCb0JjQiy3QnNCj0KjQmNCm0JrQmCDQlNCQ0KDQkAor0J3QmNCa0J7Qm9CY0Isg0J3QkNCU0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JDQlNCQCivQndCY0JrQntCb0JjQiyDQndCQ0JTQkAor0J3QmNCa0J7Qm9CY0Isg0J3QkNCU0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JDQlNCQCivQndCY0JrQntCb0JjQiyDQndCQ0JTQldCW0JTQkAor0J3QmNCa0J7Qm9CY0Isg0J3QldCR0J7QiNCo0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JXQlNCV0InQmtCQCivQndCY0JrQntCb0JjQiyDQndCV0JTQldCJ0JrQngor0J3QmNCa0J7Qm9CY0Isg0J3QldCU0JXQidCa0J4KK9Cd0JjQmtCe0JvQmNCLINCd0JXQndCQ0JQg0JTQoAor0J3QmNCa0J7Qm9CY0Isg0J3QldCd0JDQlAor0J3QmNCa0J7Qm9CY0Isg0J3QmNCa0J7Qm9CQCivQndCY0JrQntCb0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JjQmtCe0JvQkAor0J3QmNCa0J7Qm9CY0Isg0J3QmNCa0J7Qm9CQCivQndCY0JrQntCb0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQmtCe0JvQmNCLINCd0JjQmtCe0JvQkAor0J3QmNCa0J7Qm9CY0Isg0J3QmNCa0J7Qm9CQCivQndCY0JrQntCb0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQmtCe0JvQmNCLINCd0J7QktCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0J3QntCS0JjQptCQCivQndCY0JrQntCb0JjQiyDQndCe0JLQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCe0JvQk9CQCivQndCY0JrQntCb0JjQiyDQntCh0JzQkNCdCivQndCY0JrQntCb0JjQiyDQn9CQ0KPQnQor0J3QmNCa0J7Qm9CY0Isg0J/QkNCS0JvQlQor0J3QmNCa0J7Qm9CY0Isg0J/QldCg0JAKK9Cd0JjQmtCe0JvQmNCLINCf0JXQoNCeCivQndCY0JrQntCb0JjQiyDQn9CV0KDQodCY0JTQkAor0J3QmNCa0J7Qm9CY0Isg0J/QldCi0JDQoCDQlNCY0J/QmyDQntCV0KYKK9Cd0JjQmtCe0JvQmNCLINCf0JXQotCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCf0JXQotCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCf0JXQotCQ0KAKK9Cd0JjQmtCe0JvQmNCLINCf0JXQotCg0JAKK9Cd0JjQmtCe0JvQmNCLINCf0JXQotCg0JAKK9Cd0JjQmtCe0JvQmNCLINCf0JXQotCg0J7QndCY0IjQlQor0J3QmNCa0J7Qm9CY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cd0JjQmtCe0JvQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCV0J3QmtCeCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQmNCh0JDQkgor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0JjQktCe0IjQlQor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0J7QiNCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0J7QiNCa0JAKK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCe0IjQmtCQCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCe0JzQmNCgCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCe0JLQkNCdCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KDQkNCU0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCg0JDQlNCe0JLQkNCdCivQndCY0JrQntCb0JjQiyDQoNCQ0JTQntCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KDQkNCI0JrQngor0J3QmNCa0J7Qm9CY0Isg0KDQkNCI0JrQngor0J3QmNCa0J7Qm9CY0Isg0KDQkNCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0KDQkNCi0JrQniDQnNCgCivQndCY0JrQntCb0JjQiyDQoNCQ0KLQntCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0KDQkNCi0J7QnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCg0KPQltCQCivQndCY0JrQntCb0JjQiyDQoNCj0JbQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCg0KPQltCY0KbQkAor0J3QmNCa0J7Qm9CY0Isg0KHQkNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JDQktCQCivQndCY0JrQntCb0JjQiyDQodCQ0JLQkAor0J3QmNCa0J7Qm9CY0Isg0KHQkNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JDQktCQCivQndCY0JrQntCb0JjQiyDQodCQ0JLQldCi0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JDQktCa0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JDQktCeCivQndCY0JrQntCb0JjQiyDQodCV0IvQldCg0JrQkAor0J3QmNCa0J7Qm9CY0Isg0KHQmNCc0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JjQnNCV0J7QnQor0J3QmNCa0J7Qm9CY0Isg0KHQmNCc0JXQo9CdCivQndCY0JrQntCb0JjQiyDQodCY0J3QmNCo0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JjQndCY0KjQkAor0J3QmNCa0J7Qm9CY0Isg0KHQmNCd0JjQqNCQCivQndCY0JrQntCb0JjQiyDQodCb0JDQgtCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0KHQm9CQ0JLQmNCo0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JvQkNCS0JjQptCQCivQndCY0JrQntCb0JjQiyDQodCb0JDQktCa0J4KK9Cd0JjQmtCe0JvQmNCLINCh0JvQkNCS0J3QkAor0J3QmNCa0J7Qm9CY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cd0JjQmtCe0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0JzQmNCJ0JDQndCQCivQndCY0JrQntCb0JjQiyDQodCd0JXQltCQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0KHQntCk0JjQiNCQCivQndCY0JrQntCb0JjQiyDQodCe0KTQmNCI0JAKK9Cd0JjQmtCe0JvQmNCLINCh0J7QpNCY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0KHQn9CQ0KHQldCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0KHQn9CQ0KHQntCI0JUKK9Cd0JjQmtCe0JvQmNCLINCh0J/QkNCh0J7QiNCVCivQndCY0JrQntCb0JjQiyDQodCf0JDQodCe0IjQlQor0J3QmNCa0J7Qm9CY0Isg0KHQoNCV0KLQkAor0J3QmNCa0J7Qm9CY0Isg0KHQoNCV0KLQldCd0JrQkAor0J3QmNCa0J7Qm9CY0Isg0KHQotCQ0J3QmNCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0KHQotCQ0J3QmNCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQodCi0JDQndCa0J4KK9Cd0JjQmtCe0JvQmNCLINCh0KLQldCk0JDQndCY0IjQkAor0J3QmNCa0J7Qm9CY0Isg0KHQotCV0JLQkNCdCivQndCY0JrQntCb0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0KLQldCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KHQotCV0JLQkNCdCivQndCY0JrQntCb0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0KLQldCS0JDQnQor0J3QmNCa0J7Qm9CY0Isg0KHQotCV0JLQkNCdCivQndCY0JrQntCb0JjQiyDQodCi0JXQktCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0KLQldCS0JjQptCQCivQndCY0JrQntCb0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQndCY0JrQntCb0JjQiyDQodCi0J7QiNCQ0J0KK9Cd0JjQmtCe0JvQmNCLINCh0KPQl9CQ0J3QkAor0J3QmNCa0J7Qm9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cd0JjQmtCe0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cd0JjQmtCe0JvQmNCLINCi0JDQnNCQ0KDQkAor0J3QmNCa0J7Qm9CY0Isg0KLQkNCi0IjQkNCd0JAKK9Cd0JjQmtCe0JvQmNCLINCi0JXQntCU0J7QoAor0J3QmNCa0J7Qm9CY0Isg0KLQldCe0JTQntCgCivQndCY0JrQntCb0JjQiyDQotCY0KXQntCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0KLQmNCl0J7QnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCi0J7QlNCe0KAKK9Cd0JjQmtCe0JvQmNCLINCi0J7QnNCY0KHQm9CQ0JIg0JzQoAor0J3QmNCa0J7Qm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0KLQoNCV0J3Qp9CQCivQndCY0JrQntCb0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQndCY0JrQntCb0JjQiyDQktCV0JrQntCh0JvQkNCSCivQndCY0JrQntCb0JjQiyDQktCV0JvQmNCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0JLQldCb0JjQnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCS0JXQidCa0J4g0JTQoCDQmNCd0JMKK9Cd0JjQmtCe0JvQmNCLINCS0JXQidCa0J4KK9Cd0JjQmtCe0JvQmNCLINCS0JXQoNCQCivQndCY0JrQntCb0JjQiyDQktCV0KDQkAor0J3QmNCa0J7Qm9CY0Isg0JLQldCg0JAKK9Cd0JjQmtCe0JvQmNCLINCS0JXQoNCQCivQndCY0JrQntCb0JjQiyDQktCV0KDQmNCm0JAKK9Cd0JjQmtCe0JvQmNCLINCS0JXQodCd0JAKK9Cd0JjQmtCe0JvQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cd0JjQmtCe0JvQmNCLINCS0JjQotCe0JzQmNCgCivQndCY0JrQntCb0JjQiyDQktCY0KLQntCc0JjQoAor0J3QmNCa0J7Qm9CY0Isg0JLQmNCi0J7QnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCS0JvQkNCU0JAKK9Cd0JjQmtCe0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0JjQmtCe0JvQmNCLINCS0JvQkNCU0JjQodCb0JDQkiDQlNCgCivQndCY0JrQntCb0JjQiyDQktCe0IjQmNCh0JvQkNCSINCU0KAg0JTQntCm0JXQndCiCivQndCY0JrQntCb0JjQiyDQktCe0IjQmNCh0JvQkNCSINCU0KAg0JvQldCa0JDQoAor0J3QmNCa0J7Qm9CY0Isg0JLQntCI0JjQodCb0JDQkgor0J3QmNCa0J7Qm9CY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cd0JjQmtCe0JvQmNCLINCS0KPQmtCQ0KjQmNCdCivQndCY0JrQntCb0JjQiyDQl9CQ0JPQntCg0JrQkAor0J3QmNCa0J7Qm9CY0Isg0JfQlNCg0JDQktCa0J4KK9Cd0JjQmtCe0JvQmNCLINCX0JTQoNCQ0JLQmtCeCivQndCY0JrQntCb0JjQiyDQl9Ce0KDQkNCdCivQndCY0JrQntCb0JjQiyDQl9Ce0KDQkNCdCivQndCY0JrQntCb0JjQiyDQl9Ce0KDQkNCdCivQndCY0JrQntCb0JjQiyDQl9Ce0KDQkAor0J3QmNCa0J7Qm9CY0Isg0JfQntCg0JAKK9Cd0JjQmtCe0JvQmNCLINCX0J7QoNCQCivQndCY0JrQntCb0JjQiyDQl9Ce0KDQmtCQCivQndCY0JrQntCb0JjQnSDQkNCb0JXQmtCh0JDQndCU0KDQkAor0J3QmNCa0J7Qm9CY0J0g0JDQndCQCivQndCY0JrQntCb0JjQnSDQkdCg0JDQndCa0J4KK9Cd0JjQmtCe0JvQmNCdINCU0KDQkNCT0J7QodCb0JDQktCQINCU0KAKK9Cd0JjQmtCe0JvQmNCdINCU0KPQqNCY0KbQkAor0J3QmNCa0J7Qm9CY0J0g0JXQoNCW0JXQkdCV0KIKK9Cd0JjQmtCe0JvQmNCdINCY0JLQmNCm0JAKK9Cd0JjQmtCe0JvQmNCdINCb0JDQl9CQ0KAg0JTQoCDQm9CV0JrQkNCgCivQndCY0JrQntCb0JjQnSDQidCj0JHQmNCo0JAKK9Cd0JjQmtCe0JvQmNCdINCc0JDQoNCT0JjQotCQCivQndCY0JrQntCb0JjQnSDQnNCY0JvQkNCdCivQndCY0JrQntCb0JjQnSDQnNCY0JvQmNCm0JAKK9Cd0JjQmtCe0JvQmNCdINCc0JjQm9CY0JLQntCICivQndCY0JrQntCb0JjQnSDQnNCY0JvQmNCS0J7QiAor0J3QmNCa0J7Qm9CY0J0g0JzQmNCg0J7QodCb0JDQkgor0J3QmNCa0J7Qm9CY0J0g0KDQkNCU0J7QktCQ0J0KK9Cd0JjQmtCe0JvQmNCdINCg0JDQlNCe0JLQkNCdCivQndCY0JrQntCb0JjQnSDQoNCj0JbQmNCm0JAKK9Cd0JjQmtCe0JvQmNCdINCh0JDQktCQCivQndCY0JrQntCb0JjQnSDQodCY0J3QmNCo0JAKK9Cd0JjQmtCe0JvQmNCdINCh0JjQndCY0KjQkAor0J3QmNCa0J7Qm9CY0J0g0KHQotCY0J/QkNCdCivQndCY0JrQntCb0JjQnSDQktCV0KHQndCQCivQndCY0JrQntCb0JjQnSDQktCY0KLQntCc0JjQoAor0J3QmNCa0J7Qm9Ce0KHQmtCYINCd0JjQmtCe0JvQkAor0J3QmNCa0J7Qm9Ce0KHQmtCYINCh0JvQkNCS0JjQptCQCivQndCY0JrQntCb0J7QkiDQgtCe0KDQgtCVCivQndCY0JrQntCb0J7QkiDQkdCe0KjQmtCeCivQndCY0JrQntCb0J7QkiDQiNCe0KbQkAor0J3QmNCa0J7Qm9Ce0JIg0IjQntCm0JAKK9Cd0JjQmtCe0JvQntCSINCJ0KPQkdCY0KbQkAor0J3QmNCa0J7Qm9Ce0JIg0J3QmNCd0JAKK9Cd0JjQmtCe0JvQntCSINCg0JDQqNCQCivQndCY0JrQntCb0J7QkiDQodCY0J3QmNCo0JAKK9Cd0JjQmtCe0JvQntCSINCh0KLQntCI0JDQnQor0J3QmNCa0J7Qm9Ce0JIg0KLQntCU0J7QoAor0J3QmNCa0J7Qm9Ce0JLQodCa0Jgg0JjQm9CY0IjQkAor0J3QmNCa0J7Qm9Ce0JLQodCa0Jgg0JzQmNCb0JDQnQor0J3QmNCa0J7QotCY0Isg0JLQldCb0JjQnNCY0KAKK9Cd0JjQm9CY0Isg0J3QmNCa0J7Qm9CQCivQndCY0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQndCY0JzQoNCY0KXQotCV0KAg0JTQoNCQ0JPQo9Ci0JjQnQor0J3QmNCc0KDQmNCl0KLQldCgINCc0JjQm9CQ0J0KK9Cd0JjQnNCg0JjQpdCi0JXQoCDQnNCY0KDQntCh0JvQkNCSCivQndCY0JzQoNCY0KXQotCV0KAg0JLQm9CQ0JTQkAor0J3QmNCd0KfQmNCLINCR0JjQodCV0KDQmtCQCivQndCY0J3Qp9CY0Isg0JTQkNCc0IjQkNCdCivQndCY0J3Qp9CY0Isg0JzQmNCb0JXQndCa0J4KK9Cd0JjQndCn0JjQiyDQn9CV0KDQngor0J3QmNCd0JjQiyDQkNCb0JXQmtCh0JAKK9Cd0JjQndCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCY0J3QmNCLINCc0JDQoNCa0J4KK9Cd0JjQndCY0Isg0JzQmNCg0JrQngor0J3QmNCd0JjQiyDQoNCQ0JTQntCI0JUKK9Cd0JjQndCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0JjQndCa0J7QkiDQltCY0JLQmtCeCivQndCY0J3QmtCe0JIg0ILQntCg0ILQlQor0J3QmNCd0JrQntCSINCC0J7QoNCC0JUKK9Cd0JjQndCa0J7QkiDQgtCe0KDQgtCVCivQndCY0J3QmtCe0JIg0JHQntCW0JjQptCQCivQndCY0J3QmtCe0JIg0JHQntCg0JjQodCb0JDQkgor0J3QmNCd0JrQntCSINCR0J7QoNCY0KHQm9CQ0JIKK9Cd0JjQndCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cd0JjQndCa0J7QkiDQlNCe0JHQoNCY0JLQntCICivQndCY0J3QmtCe0JIg0JTQoNCQ0JPQntCc0JjQoAor0J3QmNCd0JrQntCSINCU0KPQqNCQ0J0KK9Cd0JjQndCa0J7QkiDQlNCj0KjQkNCdCivQndCY0J3QmtCe0JIg0JTQo9Co0JDQnQor0J3QmNCd0JrQntCSINCV0JzQmNCb0JjQiNCQCivQndCY0J3QmtCe0JIg0JXQoNCW0JXQkdCV0KIKK9Cd0JjQndCa0J7QkiDQiNCV0JvQmNCm0JAKK9Cd0JjQndCa0J7QkiDQiNCe0JLQkNCdCivQndCY0J3QmtCe0JIg0IjQo9Cb0JjQiNCQ0J0g0JzQoAor0J3QmNCd0JrQntCSLdCa0J7QnNCb0JXQndCe0JIg0JTQkNCd0JjQptCQINCU0KAKK9Cd0JjQndCa0J7QkiDQm9CQ0JfQkNCgCivQndCY0J3QmtCe0JIg0JvQkNCX0JDQoAor0J3QmNCd0JrQntCSLdCb0JXQgtCV0J3QkNCmINCI0J7QktCQ0J3QmtCQINCU0KAKK9Cd0JjQndCa0J7QkiDQidCj0JHQntCc0JjQoAor0J3QmNCd0JrQntCSINCJ0KPQkdCe0JzQmNCgCivQndCY0J3QmtCe0JIg0JzQkNCg0JjQiNCQCivQndCY0J3QmtCe0JIg0JzQkNCg0JjQiNCQCivQndCY0J3QmtCe0JIg0JzQmNCb0JDQndCQCivQndCY0J3QmtCe0JIg0JzQmNCb0JDQnQor0J3QmNCd0JrQntCSINCc0JjQm9CY0KbQkAor0J3QmNCd0JrQntCSINCc0JjQm9Ce0KgKK9Cd0JjQndCa0J7QkiDQnNCY0JvQntCoCivQndCY0J3QmtCe0JIg0JzQmNCb0J7QqAor0J3QmNCd0JrQntCSINCc0JjQm9Ce0JLQkNCdCivQndCY0J3QmtCe0JIg0JzQmNCb0J7QktCQ0J0KK9Cd0JjQndCa0J7QkiDQnNCY0JvQo9Ci0JjQnQor0J3QmNCd0JrQntCSINCc0JjQoNCI0JDQndCQCivQndCY0J3QmtCe0JIg0JzQmNCg0JrQngor0J3QmNCd0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0JjQndCa0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQndCY0J3QmtCe0JIg0J3QkNCU0JAKK9Cd0JjQndCa0J7QkiDQndCV0JHQntCI0KjQkAor0J3QmNCd0JrQntCSINCd0JXQkdCe0IjQqNCQCivQndCY0J3QmtCe0JIg0J3QmNCa0J7Qm9CQCivQndCY0J3QmtCe0JIg0J7Qm9CT0JjQptCQCivQndCY0J3QmtCe0JIg0KDQkNCU0JjQptCQCivQndCY0J3QmtCe0JIg0KHQkNCS0JXQotCQINCU0JjQn9CbINCY0J3Qkwor0J3QmNCd0JrQntCSINCh0JDQktCV0KLQkAor0J3QmNCd0JrQntCSINCh0JvQkNCS0JrQngor0J3QmNCd0JrQntCSINCh0JzQmNCJ0JAKK9Cd0JjQndCa0J7QkiDQodCe0KTQmNCI0JAKK9Cd0JjQndCa0J7QkiDQodCf0J7QnNCV0J3QmtCQCivQndCY0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQndCY0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQndCY0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQndCY0J3QmtCe0JIg0JLQldCb0JjQnNCY0KAKK9Cd0JjQndCa0J7QkiDQktCV0InQmtCeCivQndCY0J3QmtCe0JIg0JLQldCg0JjQptCQCivQndCY0J3QmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0J3QmNCd0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Cd0JjQndCa0J7QktCY0Isg0KjQn9CY0KDQngor0J3QmNCd0JrQntCS0JjQiyDQqNCf0JjQoNCeCivQndCY0J3QmtCe0JLQmNCLINCC0KPQoNCQ0IIKK9Cd0JjQndCa0J7QktCY0Isg0ILQo9Cg0JAKK9Cd0JjQndCa0J7QktCY0Isg0JDQndCa0JjQptCQCivQndCY0J3QmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0J3QmNCd0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cd0JjQndCa0J7QktCY0Isg0JTQoNCQ0JPQkAor0J3QmNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQndCY0J3QmtCe0JLQmNCLINCV0KDQmNCa0JAKK9Cd0JjQndCa0J7QktCY0Isg0JPQkNCS0KDQkAor0J3QmNCd0JrQntCS0JjQiyDQiNCQ0J3QmtCeCivQndCY0J3QmtCe0JLQmNCLINCI0J7QiNCQCivQndCY0J3QmtCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQndCY0J3QmtCe0JLQmNCLINCc0JDQoNCY0KbQkAor0J3QmNCd0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQndCY0J3QmtCe0JLQmNCLINCc0JjQi9CeCivQndCY0J3QmtCe0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQndCY0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cd0JjQndCa0J7QktCY0Isg0JzQmNCb0J7QqAor0J3QmNCd0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J3QmNCd0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J3QmNCd0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0JjQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCY0J3QmtCe0JLQmNCLINCf0JXQoNCQCivQndCY0J3QmtCe0JLQmNCLINCf0JXQoNCeCivQndCY0J3QmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cd0JjQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0JjQndCa0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cd0JjQndCa0J7QktCY0Isg0KDQkNCI0JrQngor0J3QmNCd0JrQntCS0JjQiyDQodCg0ILQkNCdCivQndCY0J3QmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0J3QmNCd0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cd0JjQndCa0J7QktCY0Isg0JLQldCg0JAKK9Cd0JjQodCY0Jwg0JTQldCh0JAKK9Cd0JjQodCi0JXQoCDQldCS0JAKK9Cd0JjQodCi0J7QoCDQlNCg0JDQk9CQ0J0KK9Cd0JjQodCi0J7QoNCQ0J0g0ILQntCg0ILQlQor0J3QmNCh0KLQntCg0JDQnSDQnNCY0JvQkNCdCivQitCQ0JPQntCI0JXQkiDQnNCY0JvQkNCU0JjQnQor0IrQkNCT0KDQmNCdINCh0JvQkNCS0JjQptCQCivQitCQ0JPQo9CbLdCU0J7QmtCY0Isg0KHQoNCR0JjQodCb0JDQktCQCivQitCQ0JPQo9CbINCU0KPQqNCQ0J0KK9CK0JDQoNCQ0JTQmCDQldCS0JPQldCd0JjQiNCVCivQitCQ0KDQkNCU0Jgg0IjQkNCd0JrQngor0IrQkNCg0JDQlNCYINCI0J7QktCT0JXQnQor0IrQkNCg0JDQlNCYINCc0JDQoNCY0IjQkAor0IrQkNCg0JDQlNCYINCh0J7QpNCY0IjQkAor0IrQkNCg0Jgg0KjQkNCd0JTQntCgCivQitCQ0KDQmCDQlNCV0JbQlQor0IrQldCW0JjQiyDQntCR0KDQkNCUCivQitCV0JbQmNCLINCX0JLQntCd0JrQngor0IrQldCT0J7QnNCY0KAg0ILQo9Cg0J4KK9CK0JXQk9Ce0JzQmNCgINCJ0KPQkdCY0J3QmtCQINCU0KAg0JvQldCa0JDQoAor0IrQldCT0J7QnNCY0KAg0JzQmNCb0JDQnQor0IrQldCT0J7QnNCY0KAg0J3QmNCa0J7Qm9CQCivQitCV0JPQntCc0JjQoCDQndCe0JLQkNCaCivQitCV0JPQntCS0JDQnSDQltCQ0KDQmtCeCivQitCV0JPQntCS0JDQnSDQiNCe0JLQkNCd0JrQkAor0IrQldCT0J7QktCQ0J0g0JzQkNCg0JAKK9CK0JXQk9Ce0JLQkNCdINCc0JDQoNCY0IjQkAor0IrQldCT0J7QktCQ0J0g0JzQmNCg0JrQngor0IrQldCT0J7QktCQ0J0g0JzQmNCg0JrQngor0IrQldCT0J7QktCQ0J0g0KHQotCe0IjQkNCd0JrQkAor0IrQldCT0J7QktCQ0J3QntCS0JjQiyDQldCb0JXQndCQCivQitCV0JPQoNCY0Isg0JzQkNCg0JjQiNCQCivQitCV0JPQoNCY0Isg0KDQkNCU0JzQmNCb0JAKK9CK0JXQnNCn0J7QmiDQiNCe0JbQldCkCivQitCV0JzQntCT0JAg0IjQo9Cg0JDQiAor0IrQldCK0JjQiyDQktCb0JDQlNCeCivQitCV0KDQk9CV0Kgg0IjQkNCd0J7QqAor0IrQldCg0JPQldCoINCc0JDQoNCY0IjQkAor0IrQmNCg0JUg0KHQotCV0JLQkNCdCivQitCY0KDQiNCQ0Jog0ILQntCg0ILQlQor0IrQmNCg0IjQkNCaINCb0JXQntCd0JAKK9CK0JjQotCg0Jgg0JrQkNCg0J7QiQor0IrQo9CK0JjQiyDQnNCY0JvQldCS0JAKK9Cd0J7Qp9CV0JLQodCa0JAg0JLQldCb0JjQmtCQCivQndCe0KfQldCS0KHQmtCYINCR0JjQidCQ0J3QkAor0J3QntCn0JXQktCh0JrQmCDQoNCQ0JTQlQor0J3QntCW0JjQptCQINCm0JLQmNCI0JXQotCQCivQndCe0JbQmNCm0JAg0JzQmNCb0JjQktCe0IjQlQor0J3QntCW0JjQndCY0Isg0JTQkNCg0JAKK9Cd0J7QltCY0J3QmNCLINCJ0KPQkdCY0KbQkAor0J3QntCW0JjQndCY0Isg0JzQmNCb0JDQnQor0J3QntCW0JjQndCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JvQkCDQotCY0JzQitCQCivQndCe0JvQmNCdINCC0KPQoNCC0JjQndCa0JAKK9Cd0J7QndCY0J0g0JDQndCC0JXQm9Ca0JAKK9Cd0J7QndCY0J0g0JTQo9Co0JDQnQor0J3QntCd0JjQnSDQnNCY0JvQntCg0JDQlAor0J3QntCd0JjQnSDQndCY0JrQntCb0JAKK9Cd0J7QndCY0J0g0KHQntCK0JAKK9Cd0J7QndCY0J0g0JLQmNCi0J7QnNCY0KAKK9Cd0J7QndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QntCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QntCh0JDQmiDQgtCe0KDQgtCVCivQndCe0KHQkNCaINCc0JjQmtCb0J7QqAor0J3QntCh0JDQiSDQnNCY0KjQkAor0J3QntCh0JXQmiDQldCS0JjQptCQCivQndCe0KHQldCaINCk0KDQkNCK0JAKK9Cd0J7QodCV0Jog0JrQkNCg0JvQngor0J3QntCh0JXQmiDQmtCh0JXQndCY0IjQkAor0J3QntCh0JXQmiDQl9Ce0KDQkNCdCivQndCe0KHQntCK0JjQnSDQm9CV0J3QmtCQCivQndCe0KHQntCK0JjQnSDQnNCY0JvQkNCdCivQndCe0KHQntCK0JjQnSDQodCQ0JLQkAor0J3QntCh0J7QktCY0Isg0ILQntCg0ILQlQor0J3QntCh0J7QktCY0Isg0JTQkNCd0JjQptCQCivQndCe0KHQntCS0JjQiyDQiNCQ0J3QmtCeCivQndCe0KHQntCS0JjQiyDQiNCe0JLQkNCdCivQndCe0KHQntCS0JjQiyDQiNCe0JLQkNCdCivQndCe0KHQntCS0JjQiyDQl9Ce0KDQkNCdCivQndCe0KLQkCDQiNCQ0J3QmtCeCivQndCe0KLQkNCg0J7QqCDQlNCQ0KDQmNCd0JrQkAor0J3QntCi0JDQoNCe0Kgg0JTQldCI0JDQnQor0J3QntCi0JDQoNCe0Kgg0JzQmNCb0JDQnQor0J3QntCi0KXQntCkINCV0JLQkAor0J3QntCi0KXQntCkINCX0J7Qm9Ci0JDQnQor0J3QntCS0KfQmNCLINCR0KPQlNCY0JzQmNCgCivQndCe0JLQp9CY0Isg0JTQkNCc0IrQkNCdCivQndCe0JLQp9CY0Isg0JTQo9Co0JDQnQor0J3QntCS0KfQmNCLINCh0KLQkNCd0JAKK9Cd0J7QktCn0JjQiyDQodCi0JDQndCQCivQndCe0JLQp9CY0Isg0KLQkNCi0IjQkNCd0JAKK9Cd0J7QktCn0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCe0JLQkNCn0JjQiyDQgtCj0KDQkAor0J3QntCS0JDQp9CY0Isg0ILQo9Cg0J4KK9Cd0J7QktCQ0KfQmNCLINCf0JXQoNCh0JjQlNCQCivQndCe0JLQkNCaINCC0J7QoNCC0JUKK9Cd0J7QktCQ0Jog0JDQndCU0KDQmNCI0JAKK9Cd0J7QktCQ0Jog0JDQndCi0JDQmwor0J3QntCS0JDQmiDQkdCe0KjQmtCeCivQndCe0JLQkNCaINCU0KDQkNCT0JjQptCQCivQndCe0JLQkNCaINCU0KPQqNCQ0J3QmtCQCivQndCe0JLQkNCaINCk0KDQkNCK0JAKK9Cd0J7QktCQ0Jog0JjQqNCi0JLQkNCdCivQndCe0JLQkNCaINCY0KDQldCd0JAKK9Cd0J7QktCQ0Jog0JjQktCQ0J0KK9Cd0J7QktCQ0Jog0IjQkNCd0JAKK9Cd0J7QktCQ0Jog0IjQkNCd0J7QqAor0J3QntCS0JDQmiDQiNCe0KHQmNCfCivQndCe0JLQkNCaINCI0J7QodCY0J8KK9Cd0J7QktCQ0Jog0IjQntCS0JDQnQor0J3QntCS0JDQmiDQm9CQ0JTQmNCh0JvQkNCSINCc0KAKK9Cd0J7QktCQ0Jog0JvQkNCh0JvQngor0J3QntCS0JDQmiDQm9CQ0JfQkNCgCivQndCe0JLQkNCaINCJ0KPQkdCe0JzQmNCgCivQndCe0JLQkNCaINCc0JDQoNCT0JjQotCQCivQndCe0JLQkNCaINCc0JDQoNCY0IjQkAor0J3QntCS0JDQmiDQnNCQ0KLQmNCb0JTQkAor0J3QntCS0JDQmiDQnNCY0KXQkNCJCivQndCe0JLQkNCaINCd0JDQndCU0J7QoAor0J3QntCS0JDQmiDQndCY0JrQntCb0JAKK9Cd0J7QktCQ0Jog0KHQm9CQ0JLQmtCQCivQndCe0JLQkNCaINCh0KLQldCS0JDQnQor0J3QntCS0JDQmiDQodCi0JXQktCQ0J0KK9Cd0J7QktCQ0Jog0KHQotCI0JXQn9CQ0J0KK9Cd0J7QktCQ0Jog0KLQmNCR0J7QoAor0J3QntCS0JDQmi3QktCQ0IjQlNCQINCJ0JjQidCQ0J3QkAor0J3QntCS0JDQmiDQktCQ0KHQmNCb0JjQiNCQCivQndCe0JLQkNCaINCS0JXQoNCQCivQndCe0JLQkNCaINCS0JXQoNCe0J3QkAor0J3QntCS0JDQmiDQktCY0JrQotCe0KAKK9Cd0J7QktCQ0JrQntCSINCn0JXQlNCe0JzQmNCgCivQndCe0JLQkNCa0J7QkiDQkNCd0ILQldCb0JrQngor0J3QntCS0JDQmtCe0JIg0JHQntCg0JjQodCb0JDQkgor0J3QntCS0JDQmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkSDQnNCgCivQndCe0JLQkNCa0J7QkiDQlNCj0KjQkNCdCivQndCe0JLQkNCa0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0J3QntCS0JDQmtCe0JIg0JPQntCh0J/QkNCS0JAg0JTQoAor0J3QntCS0JDQmtCe0JIg0IjQldCb0JjQptCQCivQndCe0JLQkNCa0J7QkiDQm9CQ0JfQkNCgCivQndCe0JLQkNCa0J7QkiDQidCj0JHQmNCd0JrQkAor0J3QntCS0JDQmtCe0JIg0InQo9CR0J7QnNCY0KAKK9Cd0J7QktCQ0JrQntCSINCc0JDQoNCY0J3QkAor0J3QntCS0JDQmtCe0JIg0JzQmNCb0JDQnQor0J3QntCS0JDQmtCe0JIg0JzQmNCb0JjQptCQCivQndCe0JLQkNCa0J7QkiDQnNCY0JvQmNCS0J7QiAor0J3QntCS0JDQmtCe0JIg0JzQmNCb0J7QoNCQ0JQKK9Cd0J7QktCQ0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0J7QktCQ0JrQntCSINCd0JDQlNCQCivQndCe0JLQkNCa0J7QkiDQn9Cg0JXQlNCg0JDQkwor0J3QntCS0JDQmtCe0JIg0J/QoNCV0JTQoNCQ0JMKK9Cd0J7QktCQ0JrQntCSINCg0JDQlNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0J3QntCS0JDQmtCe0JIg0KHQkNCS0JAKK9Cd0J7QktCQ0JrQntCSINCh0JDQktCQCivQndCe0JLQkNCa0J7QkiDQodCg0JHQmNCh0JvQkNCSCivQndCe0JLQkNCa0J7QkiDQodCg0JXQotCV0J0KK9Cd0J7QktCQ0JrQntCSINCh0KDQldCi0JXQnQor0J3QntCS0JDQmtCe0JIg0KHQotCV0JLQkNCdINCU0KAKK9Cd0J7QktCQ0JrQntCSINCh0KLQldCS0JDQnQor0J3QntCS0JDQmtCe0JIg0JLQkNCb0JXQoNCY0IjQkAor0J3QntCS0JDQmtCe0JIg0JLQldCh0JXQm9CY0J0KK9Cd0J7QktCQ0JrQntCSINCX0JTQoNCQ0JLQmtCeCivQndCe0JLQkNCa0J7QktCY0Isg0JbQmNCS0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCW0JjQktCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQltCY0JLQmtCeCivQndCe0JLQkNCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQndCe0JLQkNCa0J7QktCY0Isg0ILQo9CI0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQgtCj0KDQngor0J3QntCS0JDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQndCe0JLQkNCa0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQkNCd0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQkNCd0JrQkAor0J3QntCS0JDQmtCe0JLQmNCLINCR0J7QqNCa0J4g0JTQoCDQn9Cg0J7QpAor0J3QntCS0JDQmtCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQndCe0JLQkNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQndCe0JLQkNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQndCe0JLQkNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQndCe0JLQkNCa0J7QktCY0Isg0KbQktCV0KLQmtCeINCU0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQptCS0JjQiNCV0KLQkAor0J3QntCS0JDQmtCe0JLQmNCLINCU0JDQndCQCivQndCe0JLQkNCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQndCe0JLQkNCa0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQndCe0JLQkNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JTQoNCQ0JPQkAor0J3QntCS0JDQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQndCe0JLQkNCa0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQndCe0JLQkNCa0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0KTQoNCQ0IrQngor0J3QntCS0JDQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQndCe0JLQkNCa0J7QktCY0Isg0JPQntCg0JjQptCQCivQndCe0JLQkNCa0J7QktCY0Isg0JPQoNCe0JfQlNCQCivQndCe0JLQkNCa0J7QktCY0Isg0JjQndCC0JjQiNCQCivQndCe0JLQkNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQndCe0JLQkNCa0J7QktCY0Isg0IjQldCb0JXQndCQCivQndCe0JLQkNCa0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0IjQntCS0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCa0J7QodCQCivQndCe0JLQkNCa0J7QktCY0Isg0JvQkNCX0JDQoAor0J3QntCS0JDQmtCe0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0J3QntCS0JDQmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQndCe0JLQkNCa0J7QktCY0Isg0JzQkNCg0JjQptCQCivQndCe0JLQkNCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQndCe0JLQkNCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQndCe0JLQkNCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQndCe0JLQkNCa0J7QktCY0Isg0JzQldCb0JDQndCY0IjQkAor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQqNCeCivQndCe0JLQkNCa0J7QktCY0Ist0JzQmNCU0Jgg0JTQmNCS0J3QkCDQlNCY0J/QmyDQotCj0KDQmNCX0JwKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0IjQntCU0KDQkNCTCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCb0J7QqAor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J3QntCS0JDQmtCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCgCivQndCe0JLQkNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J3QntCS0JDQmtCe0JLQmNCLINCd0JDQlNCQCivQndCe0JLQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQndCe0JLQkNCa0J7QktCY0Isg0J7Qm9CY0JLQldCgCivQndCe0JLQkNCa0J7QktCY0Isg0J/QldCi0JDQoAor0J3QntCS0JDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQndCe0JLQkNCa0J7QktCY0Isg0J/QldCi0JDQoAor0J3QntCS0JDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQndCe0JLQkNCa0J7QktCY0Ist0J/Qm9CQ0JLQqNCY0Isg0IjQldCb0JXQndCQCivQndCe0JLQkNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0J4KK9Cd0J7QktCQ0JrQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0J3QntCS0JDQmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQndCe0JLQkNCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J3QntCS0JDQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0KDQkNCI0JrQngor0J3QntCS0JDQmtCe0JLQmNCLINCg0JDQndCa0J4KK9Cd0J7QktCQ0JrQntCS0JjQiyDQoNCe0KHQkNCd0JrQkAor0J3QntCS0JDQmtCe0JLQmNCLINCg0KPQltCY0KbQkAor0J3QntCS0JDQmtCe0JLQmNCLINCh0JDQktCQCivQndCe0JLQkNCa0J7QktCY0Isg0KHQkNCS0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCf0JDQodCe0IjQkAor0J3QntCS0JDQmtCe0JLQmNCLINCh0J/QntCc0JXQndCa0JAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cd0J7QktCQ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQndCe0JLQkNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQndCe0JLQkNCa0J7QktCY0Isg0KHQotCV0JLQngor0J3QntCS0JDQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0J3QntCS0JDQmtCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0J3QntCS0JDQmtCe0JLQmNCLINCS0JXQm9CY0J3QmtCQCivQndCe0JLQkNCa0J7QktCY0Isg0JLQldCg0JjQptCQCivQndCe0JLQkNCa0J7QktCY0Isg0JLQldCh0J3QkAor0J3QntCS0JDQmtCe0JLQmNCLINCS0JjQlNCe0IjQlQor0J3QntCS0JDQmtCe0JLQmNCLINCS0JjQotCa0J4KK9Cd0J7QktCQ0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0J3QntCS0JDQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cd0J7QktCQ0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQndCe0JLQkNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQndCe0JLQkNCa0J7QktCY0Isg0JfQm9CQ0KLQntCc0JjQoAor0J3QntCS0JDQmtCe0JLQmNCLINCX0J7QoNCQCivQndCe0JLQkNCa0J7QktCY0Isg0JfQntCg0JjQptCQCivQndCe0JLQkNCa0J7QktCY0Isg0JfQntCg0JjQptCQCivQndCe0JLQmNCn0JjQiyDQnNCY0JvQntCoCivQndCe0JLQmNCLINCn0JXQlNCeCivQndCe0JLQmNCLLdCn0KPQidCQ0Jog0InQo9CR0JjQptCQCivQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cd0J7QktCY0Isg0JzQmNCb0JDQnQor0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J3QntCS0JjQiyDQnNCY0KLQkNCgCivQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J3QntCS0JjQiyDQn9CQ0J3QotCV0JvQmNCI0JAKK9Cd0J7QktCY0Isg0J/QldCg0KHQmNCU0JAKK9Cd0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cd0J7QktCY0Isg0KLQntCc0JAKK9Cd0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQndCe0JLQmNCm0JrQmCDQkNCb0JXQmtCh0JAKK9Cd0J7QktCY0JrQntCSINCS0JXQoNCQCivQndCe0JLQmNCd0KYg0JjQktCQ0J0KK9Cd0J7QktCY0KLQntCS0JjQiyDQnNCQ0KDQmtCeCivQndCe0JLQmtCe0JIg0JbQmNCS0J7QiNCY0J0KK9Cd0J7QktCa0J7QkiDQlNCe0JHQoNCY0JvQkAor0J3QntCS0JrQntCSINCT0JDQktCg0JAKK9Cd0J7QktCa0J7QkiDQiNCe0JLQkNCdCivQndCe0JLQmtCe0JIg0JzQmNCb0JDQnQor0J3QntCS0JrQntCSINCd0JDQlNCQCivQndCe0JLQmtCe0JIg0KHQotCV0JLQkNCdCivQndCe0JLQmtCe0JIg0KHQotCV0JLQkNCdCivQndCe0JLQmtCe0JIg0JfQkNCT0J7QoNCa0JAKK9Cd0J7QktCa0J7QktCY0Isg0ILQntCg0ILQlQor0J3QntCS0JrQntCS0JjQiyDQkNCd0JrQkAor0J3QntCS0JrQntCS0JjQiyDQkdCY0InQkNCd0JAKK9Cd0J7QktCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cd0J7QktCa0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Cd0J7QktCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QntCS0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQndCe0JLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cd0J7QktCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J3QntCS0JrQntCS0JjQiyDQldCb0KTQoNCY0JTQkAor0J3QntCS0JrQntCS0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9Cd0J7QktCa0J7QktCY0Isg0IjQntCS0JDQnQor0J3QntCS0JrQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0J3QntCS0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQndCe0JLQmtCe0JLQmNCLINCc0JjQm9CY0J3QmtCeCivQndCe0JLQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cd0J7QktCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cd0J7QktCa0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cd0J7QktCa0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cd0J7QktCa0J7QktCY0Isg0J3QkNCU0JAKK9Cd0J7QktCa0J7QktCY0Isg0J3QldCR0J7QiNCo0JAg0JTQoAor0J3QntCS0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cd0J7QktCa0J7QktCY0Isg0KDQntCh0JAKK9Cd0J7QktCa0J7QktCY0Isg0KHQnNCY0InQmtCQCivQndCe0JLQmtCe0JLQmNCLINCh0KLQkNCd0JrQngor0J3QntCS0JrQntCS0JjQiyDQktCb0JDQlNCQCivQndCe0JLQmtCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQndCe0JLQntCh0JXQmyDQk9Ce0KDQlNCQ0J3QkAor0J3QntCS0J7QodCV0Jsg0JzQkNCg0JjQiNCQCivQndCe0JLQntCh0JXQmyDQndCQ0JTQkAor0J3QntCS0J7QodCV0Jsg0KDQkNCI0JrQngor0J3QntCS0J7QodCV0JvQkNCmINCa0JDQotCY0KbQkAor0J3QntCS0J7QodCV0JvQkNCmINCh0KLQldCS0JDQnQor0J3QntCS0J7QodCV0JvQkNCmINCX0JLQntCd0JjQnNCY0KAKK9Cd0J7QktCe0KHQldCJ0JDQp9Ca0Jgg0JzQmNCb0JjQktCe0IgKK9Cd0J7QktCe0KHQldCb0J7QktCh0JrQmCDQkNCd0JPQldCbCivQndCe0JLQntCiINCb0JDQlNCY0KHQm9CQ0JIKK9Cd0J7QktCe0KIg0J/QkNCS0JvQlQor0J3QntCS0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cd0J7QktCe0JLQmNCLINCR0JDQotCg0JjQiwor0J3QntCS0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQndCe0JLQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cd0J7QktCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQndCe0JLQntCS0JjQiyDQnNCY0J3QkAor0J3QntCS0J7QktCY0Isg0J3QkNCU0JAKK9Cd0J7QktCe0JLQmNCLINCS0JvQkNCU0J4KK9Cd0J7QktCe0JLQmNCLINCX0JTQldCd0JrQkAor0J3QntCS0KLQkCDQndCY0JrQntCb0JAg0JTQoAor0J3QntCS0KLQkCDQktCb0JDQlNCY0JzQmNCgCivQndCe0JLQotCQINCS0JvQkNCU0JjQnNCY0KAKK9Cd0KPQltCU0JjQiyDQnNCY0JvQkNCdCivQndCj0JbQlNCY0Isg0J7QkdCg0JDQlAor0J3Qo9CR0JXQoCDQkNCd0JAKK9Cd0KPQlNCY0Isg0ILQntCg0ILQlQor0J3Qo9CU0JjQiyDQodCS0JXQotCe0JfQkNCgCivQndCj0KXQmCDQpNCV0JLQl9CYCivQndCj0KXQmCDQpdCQ0IjQlNCQ0J0KK9Cd0KPQpdCYINCX0JXQmtCY0IjQkAor0J3Qo9Ca0JAg0KXQkNCh0JDQnQor0J3Qo9Ca0JjQiyDQkNCJ0J4KK9Cd0KPQmtCY0Isg0I/QldCS0JDQlAor0J3Qo9Ca0JjQiyDQmtCQ0J3QmNCi0JAKK9Cd0KPQmtCY0Isg0J7QnNCV0KAKK9Ce0KfQldCd0JDQqCDQidCj0JTQnNCY0JvQkAor0J7Qp9Ca0JDQiNCYINCY0KjQotCS0JDQnQor0J7Qp9Ca0J4g0JLQmNCb0KXQldCb0JwKK9Ce0KfQntCS0JDQiCDQkdCe0JbQldCd0JrQkAor0J7Qp9Ce0JLQkNCIINCX0KPQl9CQ0J3QkAor0J7QqNCQ0J8g0IjQldCb0JXQndCQCivQntCo0JDQnyDQiNCe0JLQkNCdCivQntCo0JrQldCg0KIg0JDQndCa0JAKK9Ce0KjQotCg0JjQiyDQnNCY0JvQlSDQlNCY0J/QmyDQmNCd0JMKK9Ce0KjQotCg0JjQmtCQINCW0JDQoNCa0J4KK9Ce0KjQotCg0JjQmtCQINCW0JDQoNCa0J4KK9Ce0KjQotCg0JjQmtCQINCU0JDQoNCY0J3QmtCQCivQntCW0JXQk9Ce0JLQmNCLINCW0JDQoNCa0J4g0JTQmNCf0Jsg0JjQndCTCivQntCW0JXQk9Ce0JLQmNCLINCR0J7QqNCa0J4KK9Ce0JbQldCT0J7QktCY0Isg0JHQoNCQ0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0J7QltCV0JPQntCS0JjQiyDQlNCQ0J3QlQor0J7QltCV0JPQntCS0JjQiyDQlNCg0JDQk9CQCivQntCW0JXQk9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Ce0JbQldCT0J7QktCY0Isg0JzQmNCg0JrQngor0J7QltCV0JPQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J7QltCV0JPQntCS0JjQiyDQndCV0JLQldCd0JrQkAor0J7QltCV0JPQntCS0JjQiyDQodCb0JDQktCa0J4KK9Ce0JbQldCT0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J7QltCV0JrQntCS0JjQiyDQk9Ce0IjQmtCeCivQntCW0JLQkNCiINCI0JDQodCc0JjQndCQCivQntCW0JLQkNCiINCI0JDQodCc0JjQndCQCivQntCW0JLQkNCiINCI0KPQm9CY0IjQkNCd0JAKK9Ce0JbQktCQ0KIg0J7QndCU0KDQldCICivQntCC0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J7QkdCo0KPQodCiINCI0JDQndCa0J4KK9Ce0JHQkNCU0J7QkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0J7QkdCQ0JTQntCSINCc0JjQm9CVCivQntCR0JDQlNCe0JIg0J3QkNCi0JDQm9CY0IjQkAor0J7QkdCQ0JTQntCSINCh0JvQkNCS0JrQngor0J7QkdCQ0JTQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J7QkdCQ0JTQntCS0JjQiyDQnNCY0JvQntCI0JUKK9Ce0JHQkNCU0J7QktCY0Isg0JzQmNCb0J7QiNCVCivQntCR0JDQlNCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0J7QkdCQ0JTQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J7QkdCQ0JTQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0J7QkdCV0KDQnNCQ0IjQldCgINCk0KDQkNCK0JAKK9Ce0JHQldCg0JzQkNCdINCR0KDQkNCd0JjQodCb0JDQkgor0J7QkdCV0KDQoiDQpNCg0JDQndCmCivQntCR0IjQldCU0J7QktCY0Isg0KHQotCe0IjQkNCdCivQntCR0JvQldCo0KfQo9CaINCQ0J3QmtCQCivQntCR0JvQldCo0KfQo9CaINCQ0J3QmtCQCivQntCR0JvQldCo0KfQo9CaINCU0KDQkNCT0JjQqNCQCivQntCR0JvQldCo0KfQo9CaINCT0KDQldCT0J7QoAor0J7QkdCb0JXQqNCn0KPQmiDQnNCQ0KDQmNCI0JAKK9Ce0JHQntCn0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQntCR0KDQkNCU0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0J7QkdCg0JDQlNCe0JIg0JPQntCg0JTQkNCd0JAKK9Ce0JHQoNCQ0JTQntCSINCJ0KPQkdCY0KjQkAor0J7QkdCg0JDQlNCe0JIg0InQo9CR0JjQqNCQCivQntCR0KDQkNCU0J7QkiDQnNCY0JvQkNCdCivQntCR0KDQkNCU0J7QkiDQnNCY0JvQntCg0JDQlAor0J7QkdCg0JDQlNCe0JIg0J3QkNCU0JAKK9Ce0JHQoNCQ0JTQntCSINCd0J7QktCQ0JoKK9Ce0JHQoNCQ0JTQntCSINCg0JDQlNCY0JLQntCICivQntCR0KDQkNCU0J7QkiDQoNCQ0JTQnNCY0JvQkAor0J7QkdCg0JDQlNCe0JIg0KHQotCe0IjQkNCd0JrQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQntCR0KDQkNCU0J7QktCY0Isg0JbQmNCS0JrQngor0J7QkdCg0JDQlNCe0JLQmNCLINCW0JjQktCa0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQgtCe0KDQgtCVCivQntCR0KDQkNCU0J7QktCY0Isg0ILQntCg0ILQlQor0J7QkdCg0JDQlNCe0JLQmNCLINCC0J7QoNCC0JUKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQgtCj0KDQgtCY0J3QkAor0J7QkdCg0JDQlNCe0JLQmNCLINCC0KPQoNCeCivQntCR0KDQkNCU0J7QktCY0Isg0ILQo9Cg0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J7QkdCg0JDQlNCe0JLQmNCLINCQ0J3QmtCQCivQntCR0KDQkNCU0J7QktCY0Isg0JHQntCT0JTQkNCd0JrQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQkdCe0KDQmtCQCivQntCR0KDQkNCU0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQntCR0KDQkNCU0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQntCR0KDQkNCU0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQntCR0KDQkNCU0J7QktCY0Isg0JHQo9CU0JjQnNCY0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQkdCj0JTQngor0J7QkdCg0JDQlNCe0JLQmNCLINCU0JDQndCVCivQntCR0KDQkNCU0J7QktCY0Isg0JTQkNCd0JjQiNCV0JvQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCU0JDQndCY0JvQniDQlNCgCivQntCR0KDQkNCU0J7QktCY0Isg0JTQnNCY0KLQkNCgCivQntCR0KDQkNCU0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCj0KjQkNCdCivQntCR0KDQkNCU0J7QktCY0Isg0JTQo9Co0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQlNCj0KjQkNCdCivQntCR0KDQkNCU0J7QktCY0Isg0JTQo9Co0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCV0JzQmNCb0JjQiNCQCivQntCR0KDQkNCU0J7QktCY0Isg0JPQm9CY0KjQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQntCR0KDQkNCU0J7QktCY0Isg0JPQktCe0JfQlNCV0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQmNCb0JjQiNCQCivQntCR0KDQkNCU0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQiNCe0JLQkNCdCivQntCR0KDQkNCU0J7QktCY0Isg0IjQntCS0JDQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCI0J7QktCeCivQntCR0KDQkNCU0J7QktCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQm9CQ0JfQkNCgCivQntCR0KDQkNCU0J7QktCY0Isg0JvQkNCX0JDQoAor0J7QkdCg0JDQlNCe0JLQmNCLINCb0JjQlNCY0IjQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J7QkdCg0JDQlNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J7QkdCg0JDQlNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J7QkdCg0JDQlNCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCJ0KPQkdCe0JTQoNCQ0JMKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQm9Cj0JrQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JDQoNCa0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9CV0J3QkAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCb0JUKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQlQor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9CY0IjQkNCd0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQmtCQCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCb0J7QqAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9Ce0IjQmtCeCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQm9Cj0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQntCR0KDQkNCU0J7QktCY0Isg0JzQmNCg0JDQqAor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQoNCI0JDQndCQINCU0JjQn9CbINCY0J3Qkwor0J7QkdCg0JDQlNCe0JLQmNCLINCc0JjQoNCa0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQntCR0KDQkNCU0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQntCR0KDQkNCU0J7QktCY0Isg0J3QkNCU0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQndCV0JHQntCI0KjQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCd0JXQlNCV0InQmtCQCivQntCR0KDQkNCU0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQndCV0JzQkNCK0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQndCV0J3QkNCUINCU0KAg0JvQldCa0JDQoAor0J7QkdCg0JDQlNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCf0JXQotCQ0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQn9CV0KLQkNCgCivQntCR0KDQkNCU0J7QktCY0Isg0KDQkNCU0JUKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQntCR0KDQkNCU0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCg0JDQotCa0J4KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQoNCe0KHQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCh0JDQktCQCivQntCR0KDQkNCU0J7QktCY0Ist0KHQmNCa0JjQnNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0J7QkdCg0JDQlNCe0JLQmNCLINCh0JvQkNCS0JrQngor0J7QkdCg0JDQlNCe0JLQmNCLINCh0JvQkNCS0JrQngor0J7QkdCg0JDQlNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCc0JjQidCa0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCc0JjQidCa0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCi0JDQndCY0JzQmNCgCivQntCR0KDQkNCU0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQntCR0KDQkNCU0J7QktCY0Isg0KHQotCV0JLQkNCdINCU0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCi0JXQktCeCivQntCR0KDQkNCU0J7QktCY0Isg0KHQotCV0JLQngor0J7QkdCg0JDQlNCe0JLQmNCLINCh0KLQiNCV0J/QkNCdCivQntCR0KDQkNCU0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0J7QkdCg0JDQlNCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQntCR0KDQkNCU0J7QktCY0Isg0KLQntCU0J7QoAor0J7QkdCg0JDQlNCe0JLQmNCLINCS0JXQoNCQCivQntCR0KDQkNCU0J7QktCY0Isg0JLQldCg0JAKK9Ce0JHQoNCQ0JTQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQntCR0KDQkNCU0J7QktCY0Isg0JfQm9CQ0KLQmNCm0JAKK9Ce0JHQoNCV0KXQoiDQn9CV0KLQkNCgCivQntCR0KDQldCd0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQntCR0KDQldCd0JjQiyDQlNCg0JDQk9CeCivQntCR0KDQldCd0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J7QkdCg0JXQndCY0Isg0JzQkNCd0J7QiNCb0JUKK9Ce0JHQoNCV0J3QmNCLINCc0JjQm9CQ0JTQmNCdCivQntCR0KDQldCd0JjQiyDQnNCY0JvQldCS0JAKK9Ce0JHQoNCV0J3QmNCLINCc0JjQm9Ce0JzQmNCgCivQntCR0KDQldCd0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J7QkdCg0JXQndCY0Isg0KDQkNCU0J7QnNCQ0J0KK9Ce0JHQoNCV0J3QmNCLINCh0J3QldCW0JDQndCQCivQntCR0KDQldCd0J7QkiDQltCY0JLQkNCdCivQntCR0KDQldCd0J7QkiDQltCY0JLQkNCdCivQntCR0KDQldCd0J7QkiDQiNCV0JvQldCd0JAKK9Ce0JHQoNCV0J3QntCSINCI0JXQktCg0JXQnAor0J7QkdCg0JXQndCe0JIg0IjQntCb0JDQndCU0JAKK9Ce0JHQoNCV0J3QntCSINCa0KDQo9Cd0JAKK9Ce0JHQoNCV0J3QntCSINCf0JXQotCQ0KAKK9Ce0JHQoNCV0J3QntCSINCg0JDQlNCY0JLQntCICivQntCR0KDQldCd0J7QkiDQodCQ0IrQkAor0J7QkdCg0JXQndCe0JIg0KHQkNCS0JAKK9Ce0JHQoNCV0J3QntCSINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQntCR0KDQldCd0J7QkiDQodCi0JDQndCa0JAKK9Ce0JHQoNCV0J3QntCSINCh0KLQldCS0JDQnQor0J7QkdCg0JXQndCe0JIg0JLQkNCh0JAKK9Ce0JHQoNCV0J3QntCSINCS0JvQkNCU0JjQnNCY0KAKK9Ce0JHQoNCV0J3QntCSINCX0J7QoNCY0KbQkAor0J7QkdCg0JXQndCe0JIg0JfQntCg0JjQptCQCivQntCR0KDQldCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ce0JHQoNCV0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ce0JHQoNCV0J3QntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0J7QkdCg0JXQndCe0JLQmNCLINCU0JXQodCY0JzQmNCgCivQntCR0KDQldCd0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0J7QkdCg0JXQndCe0JLQmNCLINCc0JjQm9CQ0J0g0JTQoAor0J7QkdCg0JXQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTINCU0JjQn9CbINCY0J3Qkwor0J7QkdCg0JXQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ce0JHQoNCV0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ce0JHQoNCV0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQntCR0KDQldCd0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Ce0JHQoNCV0J3QntCS0JjQiyDQktCQ0KHQngor0J7QkdCg0JXQndCe0JLQmNCLINCS0JvQkNCI0JrQngor0J7QkdCg0JjQiyDQk9Ce0IjQmtCeCivQntCR0KDQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9Ce0JHQoNCa0J3QldCW0JXQkiDQgtCe0KDQgtCVCivQntCR0KDQmtCd0JXQltCV0JIg0JzQmNCb0JXQndCa0J4KK9Ce0JHQoNCa0J3QldCW0JXQkiDQoNCQ0JTQnNCY0JvQkAor0J7QkdCg0JrQndCV0JbQldCSINCg0JDQlNCe0IjQmtCQCivQntCR0KDQmtCd0JXQltCV0JIg0KHQotCV0JLQkNCdCivQntCR0KDQntCS0JDQp9Ca0Jgg0JTQo9Co0JjQptCQCivQntCR0KDQntCS0JDQp9Ca0Jgg0JPQntCg0JTQkNCd0JAKK9Ce0JHQoNCe0JLQkNCn0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQntCR0KDQntCS0JDQp9Ca0Jgg0KDQkNCU0JUKK9Ce0JHQoNCe0JLQkNCn0JrQmCDQodCS0JXQotCe0JfQkNCgCivQntCR0KDQntCS0JDQpiDQnNCY0IjQkNCiCivQntCR0KDQntCS0KHQmtCYINCC0J7QoNCC0JUKK9Ce0JHQoNCe0JLQodCa0Jgg0JTQoNCQ0JPQo9Ci0JjQnQor0J7QkdCg0J7QktCh0JrQmCDQmNCS0JDQnQor0J7QkdCg0J7QktCh0JrQmCDQiNCe0JLQkNCdCivQntCR0KDQntCS0KHQmtCYINCa0JDQotCY0KbQkAor0J7QkdCg0J7QktCh0JrQmCDQnNCY0KXQkNCI0JvQngor0J7QkdCg0J7QktCh0JrQmCDQktCQ0KHQkAor0J7QkdCj0IvQmNCd0JAg0KDQkNCi0J7QnNCY0KAKK9Ce0JHQo9CL0JjQndCQINCh0JvQkNCS0JrQngor0J7QkdCj0IvQmNCd0JAg0KHQm9CQ0JLQntCJ0KPQkQor0J7QptCe0JrQntCJ0JjQiyDQidCj0JHQmNCd0JrQngor0J7Qj9CY0Isg0J3QntCS0JrQkAor0J7Qj9CY0Isg0KDQkNCi0J7QnNCY0KAKK9Ce0I/QmNCLINCX0J7QoNCa0JAKK9Ce0I/QntCS0KHQmtCYINCY0JvQmNCI0JAKK9Ce0JTQkNCP0JjQiyDQlNCj0KjQkNCdCivQntCU0JDQj9CY0Isg0JPQntCg0JTQkNCd0JAKK9Ce0JTQkNCP0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J7QlNCQ0I/QmNCLINCd0JDQlNCQCivQntCU0JDQj9CY0Isg0KDQkNCU0JjQktCe0IgKK9Ce0JTQkNCP0JjQiyDQodCi0JXQktCQ0J0KK9Ce0JTQkNCb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQntCU0JDQktCY0Ist0IjQntCh0JjQiyDQiNCV0JvQmNCm0JAg0JTQmNCf0Jsg0JjQndCTCivQntCU0JDQktCY0Isg0JzQmNCb0JrQkAor0J7QlNCQ0JLQmNCLINCh0JvQkNCS0JrQngor0J7QlNCe0KAg0IjQntCh0JjQnwor0J7QlNCe0JLQmNCLINCI0J7QktCeCivQntCU0KDQmCDQkdCQ0JvQmNCd0KIKK9Ce0JTQoNCYINCa0JDQoNCb0J4KK9Ce0KTQldCd0JHQldCl0JXQoCDQk9CY0JfQldCb0JAKK9Ce0KTQldCd0JHQldCl0JXQoCDQktCQ0JvQldCg0JjQiNCQCivQntCk0JXQndCR0JXQpdCV0KAg0JLQldCg0JjQptCQCivQntCT0JDQoCDQiNCV0JvQldCd0JAKK9Ce0JPQkNCgINCS0JvQkNCU0JUKK9Ce0JPQndCV0J3QntCS0KHQmtCQINCR0J7QiNCQ0J3QkAor0J7Qk9Cd0JXQndCe0JLQodCa0JAg0KbQktCV0KLQkNCd0JrQkAor0J7Qk9CK0JDQndCQ0KYg0JTQoNCQ0JPQmNCm0JAKK9Ce0JPQitCQ0J3QntCSINCc0JjQm9CV0KLQkAor0J7Qk9CK0JDQndCe0JLQkNCmINCR0J7QoNCY0KHQm9CQ0JIKK9Ce0JPQitCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQntCT0IrQkNCd0J7QktCY0Isg0JDQptCQCivQntCT0IrQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ce0JPQitCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Ce0JPQitCQ0J3QntCS0JjQiyDQlNCV0IjQkNCdINCU0KAg0JvQldCa0JDQoAor0J7Qk9CK0JDQndCe0JLQmNCLINCU0JzQmNCi0JDQoAor0J7Qk9CK0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkCDQlNCgINCb0JXQmtCQ0KAKK9Ce0JPQitCQ0J3QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0J7Qk9CK0JDQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQntCT0IrQkNCd0J7QktCY0Isg0J7Qk9CK0JXQndCQCivQntCT0IrQkNCd0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAg0JTQoCDQm9CV0JrQkNCgCivQntCT0IrQkNCd0J7QktCY0Isg0KDQkNCd0JrQngor0J7Qk9CK0JDQndCe0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQntCT0IrQkNCd0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0J7Qk9CK0JXQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQntCT0IrQldCd0J7QktCY0Isg0JTQkNCg0JAKK9Ce0JPQitCV0J3QntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQntCT0IrQldCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ce0JPQitCV0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ce0JPQitCV0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ce0JPQitCV0J3QntCS0JjQiyDQndCe0JLQmtCQCivQntCT0IrQldCd0J7QktCY0Isg0J/QldCi0JDQoAor0J7Qk9CK0JXQndCe0JLQmNCLINCg0JDQlNCe0JLQkNCd0JrQkAor0J7Qk9CK0JXQndCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0J7Qk9CK0JXQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0J7Qk9CK0JXQndCe0JLQmNCLINCh0KLQldCS0J4KK9Ce0JPQitCV0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQntCT0J7QoNCV0JvQmNCm0JAg0JHQmNCb0IjQkNCd0JAKK9Ce0JPQntCg0JXQm9CY0KbQkCDQkdCe0JPQlNCQ0J0KK9Ce0JPQntCg0JXQm9CY0KbQkCDQkdCg0JDQndCa0J4KK9Ce0JPQntCg0JXQm9CY0KbQkCDQnNCQ0KDQmNCI0JAKK9Ce0JPQoNCY0JfQldCaINCU0KDQkNCT0JjQptCQCivQntCT0KDQmNCX0JXQmiDQlNCg0JDQk9Cj0KLQmNCdCivQntCT0KDQmNCX0JXQmiDQmtCg0JjQodCi0JjQndCQCivQntCT0KDQmNCX0JXQmiDQoNCe0JHQldCg0KIKK9Ce0JPQoNCY0JfQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCR0J7QoNCQCivQntCT0KDQmNCX0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9Ce0JPQoNCY0JfQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCU0KDQkNCT0JjQptCQCivQntCT0KDQmNCX0J7QktCY0Isg0JTQo9Co0JDQnQor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ce0JPQoNCY0JfQntCS0JjQiyDQnNCY0JvQlQor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCc0JjQm9CY0JLQntCICivQntCT0KDQmNCX0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Ce0JPQoNCY0JfQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQntCT0KDQmNCX0J7QktCY0Isg0KHQoNCV0KLQkAor0J7Qk9Cg0JjQl9Ce0JLQmNCLINCS0JXQidCa0J4KK9Ce0JPQoNCY0JfQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQntCT0KDQmNCX0J7QktCY0Isg0JfQntCg0JDQnQor0J7QiNCU0JDQndCY0Isg0KHQkNCS0JAKK9Ce0IjQmtCY0Isg0KHQm9CQ0JLQmtCeCivQntCa0JDQqNCQ0J3QntCS0JjQiyDQodCg0JXQotCV0J0KK9Ce0JrQkNCKINCh0KLQldCS0JDQnQor0J7QmtCQ0IrQmCDQm9CQ0IjQntCoCivQntCa0JDQitCYINCe0KHQmtCQ0KAKK9Ce0JrQkNCK0Jgg0KDQkNCd0JrQkAor0J7QmtCQ0IrQmCDQotCY0JHQntCgCivQntCa0JDQndCe0JLQmNCLINCd0J7QktCY0KbQkAor0J7QmtCV0JfQkNCdINCI0J7QktCQ0J0KK9Ce0JrQmNCJINCh0JvQkNCS0JrQngor0J7QmtCY0InQldCS0JjQiyDQodCe0KTQmNCI0JAKK9Ce0JrQidCV0KjQkCDQndCV0J3QkNCUCivQntCa0InQldCo0JAg0J3QldCd0JDQlAor0J7QmtCb0J7QkdCP0JjQiNCQINCc0JDQoNCa0J4KK9Ce0JrQoNCQ0IjQndCe0JIg0KHQotCV0JLQkNCdCivQntCa0KDQo9CW0J3QmNCaINCU0KDQkNCT0JDQnQor0J7QmtCh0JXQndCk0JXQm9CUINCI0J7QktCQ0J0KK9Ce0JrQo9Ca0JAg0InQmNCJ0JDQndCQCivQntCa0KPQm9CY0Isg0JHQntCT0JTQkNCdCivQntCa0KPQm9CY0Isg0JfQntCg0JDQnQor0J7Qm9Co0J7QktCYINCd0JjQmtCe0JvQkAor0J7Qm9CQ0KUg0KjQkNCd0JTQntCgCivQntCb0JDQpSDQqNCQ0J3QlNCe0KAKK9Ce0JvQkNClINCo0JDQndCU0J7QoAor0J7Qm9CQ0KUg0ILQntCg0ILQlQor0J7Qm9CQ0KUg0JDQndCU0KDQmNCI0JAKK9Ce0JvQkNClINCV0KDQndCQCivQntCb0JDQpSDQpNCV0KDQldCd0KYKK9Ce0JvQkNClINCk0JXQoNCV0J3Qpgor0J7Qm9CQ0KUg0JjQqNCi0JLQkNCdCivQntCb0JDQpSDQmNCo0KLQktCQ0J0KK9Ce0JvQkNClINCI0JXQm9CV0J3QkAor0J7Qm9CQ0KUg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ce0JvQkNClINCI0J7QktCQ0J0KK9Ce0JvQkNClINCI0KPQm9CY0IjQkNCd0JAKK9Ce0JvQkNClINCb0JDQodCb0J4KK9Ce0JvQkNClINCc0JjQoNCa0J4KK9Ce0JvQkNClINCd0JDQndCU0J7QoAor0J7Qm9CQ0KUg0J3QkNCd0JTQntCgCivQntCb0JDQpSDQn9CQ0JLQm9CVCivQntCb0JDQpSDQn9CQ0JLQm9CVCivQntCb0JDQpSDQoNCe0JfQkNCb0JjQiNCQCivQntCb0JDQpSDQktCY0J3QptCVCivQntCb0JDQiNCe0Kgg0JHQldCb0JAKK9Ce0JvQkNCI0J7QqCDQk9Ce0KDQlNCQ0J3QkAor0J7Qm9CQ0IjQntCoINCI0JDQndCe0KgKK9Ce0JvQkNCI0J7QqCDQnNCY0KXQkNCJCivQntCb0JDQiNCe0Kgg0JzQmNCl0JDQiQor0J7Qm9CQ0IjQntCoINCe0KLQngor0J7Qm9CQ0KAg0J/QkNCjCivQntCb0JHQmNCd0JAg0KHQm9CQ0JLQmtCeCivQntCb0JXQkNCgINCc0JjQpdCQ0IjQm9CeCivQntCb0JXQkNCgINCc0JjQpdCQ0IjQm9CeCivQntCb0JXQkNCgINCh0JDQitCQCivQntCb0JXQkNCgINCh0JLQldCi0JjQodCb0JDQkgor0J7Qm9CV0JDQoCDQktCb0JDQlNCQCivQntCb0JXQiNCQ0KAg0IjQntCQ0JrQmNCcCivQntCb0JjQp9Ca0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ce0JvQmNCn0JrQntCSINCc0JjQm9Ce0KDQkNCUCivQntCb0JjQiyDQodCi0JXQktCQ0J0KK9Ce0JvQmNCS0JXQoNCY0Isg0J3QldCR0J7QiNCo0JAKK9Ce0InQqNCV0JLQodCa0JAg0J3QkNCi0JDQqNCQCivQntCJ0JDQp9CQINCY0JvQmNCI0JAKK9Ce0InQkNCn0JAg0JzQkNCg0JjQptCQCivQntCJ0JDQp9CQINCc0JjQm9CV0J3QmtCeCivQntCJ0JDQp9CQINCc0JjQm9Ce0JLQkNCdCivQntCJ0JDQp9CQINCd0JjQmtCe0JvQkAor0J7QidCQ0KfQkCDQoNCQ0JTQkAor0J7QidCQ0KfQkCDQodCb0JDQktCe0InQo9CRCivQntCJ0JDQp9CQINCh0KLQkNCd0JjQodCb0JDQkgor0J7QidCQ0KfQkCDQodCi0JXQktCQ0J0KK9Ce0JvQnNCQ0J0g0JzQkNCg0JjQiNCQCivQntCb0KPQqNCa0Jgg0JTQntCR0KDQmNCb0JAKK9Ce0JvQo9Co0JrQmCDQlNCj0KjQkNCdCivQntCb0KPQqNCa0Jgg0JTQo9Co0JDQnQor0J7Qm9Cj0KjQmtCYINCb0JDQl9CQ0KAKK9Ce0JvQo9Co0JrQmCDQnNCY0JvQo9Ci0JjQnQor0J7Qm9Cj0KjQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ce0JvQo9Co0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQntCb0KPQqNCa0Jgg0J7Qm9CY0JLQldCg0JAKK9Ce0JvQo9Co0JrQmCDQodCi0J7QiNCQ0J0KK9Ce0JvQo9Co0JrQmCDQotCe0JTQntCgCivQntCb0KPQqNCa0Jgg0KLQntCc0JjQodCb0JDQkgor0J7Qm9Cj0KjQmtCYINCS0JDQodCQCivQntCb0KPQqNCa0Jgg0JLQldCb0JjQnNCY0KAg0JTQoAor0J7Qm9Cj0KjQmtCYINCS0JXQoNCY0KbQkAor0J7Qm9Cj0IjQmNCLINCY0JLQkNCd0JAKK9Ce0JvQo9CI0JjQiyDQmNCS0JDQnQor0J7Qm9Cj0IjQmNCLINCI0JXQm9CV0J3QkAor0J7Qm9Cj0IjQmNCLINCc0JjQm9CY0KbQkAor0J7Qm9Cj0IjQmNCLINCc0JjQoNCa0J4KK9Ce0JzQp9CY0JrQo9ChINCR0J7QqNCa0J4KK9Ce0JzQp9CY0JrQo9ChINCI0JXQm9CV0J3QkAor0J7QnNCn0JjQmtCj0KEg0JzQkNCT0JTQkAor0J7QnNCn0JjQmtCj0KEg0J3QmNCa0J7Qm9CQCivQntCc0KfQmNCa0KPQoSDQoNCQ0IjQmtCeCivQntCc0JDQidCV0JIg0JjQktCQ0J0KK9Ce0JzQkNCJ0JXQkiDQmNCS0JDQnQor0J7QnNCQ0InQldCSINCI0KPQm9Ca0JAKK9Ce0JzQkNCJ0JXQkiDQm9CV0J/QntCh0JDQktCQCivQntCc0JDQidCV0JIg0JvQldCf0J7QodCQ0JLQkAor0J7QnNCQ0InQldCSINCc0JjQm9CV0J3QkAor0J7QnNCQ0InQldCSINCc0JjQm9Ce0KDQkNCUCivQntCc0JDQidCV0JIg0JLQntCI0JjQodCb0JDQkgor0J7QnNCQ0JfQmNCLINCh0J7QpNCY0IjQkAor0J7QnNCV0KDQkNCT0JjQiyDQmtCV0JzQkNCbCivQntCc0JXQoNCYINCl0JDQiNCg0KPQlNCY0J0KK9Ce0JzQldCg0Jgg0KXQkNCb0JjQnAor0J7QnNCV0KDQmCDQpdCQ0KHQngor0J7QnNCV0KDQmCDQndCV0I/QkNCUCivQntCc0JXQoNCYINCd0KPQoNCj0JTQmNCdCivQntCc0JXQoNCX0KMg0JDQndCi0J7QnQor0J7QnNCV0KDQl9CjINCV0JvQmNCX0JDQkdCV0KLQkAor0J7QnNCY0Isg0JjQlNCg0JjQlwor0J7QnNCe0KDQkNCmINCa0JDQotCQ0KDQmNCd0JAKK9Ce0JzQntCg0JDQpiDQm9CQ0KLQmNCd0JrQkAor0J7QndCn0JXQktCh0JrQmCDQiNCe0JLQkNCdCivQntCd0KfQoyDQn9CV0KLQkNCgCivQntCd0JTQoNCY0Jog0JTQo9Co0JDQndCa0JAKK9Ce0J3QldCo0KfQo9CaINCc0JjQpdCQ0IjQm9CeCivQntCd0JXQqNCL0KPQmiDQndCV0J3QkNCUCivQntCd0KXQkNCj0Jcg0JzQkNCg0JjQiNCQCivQntCd0J7QlNCYINCY0KjQotCS0JDQnQor0J7Qn9CQ0KfQkNCaINCQ0J3QotCj0J0KK9Ce0J/QkNCn0JDQmiDQmNCS0JDQnQor0J7Qn9CQ0KfQmNCLINCQ0J3QgtCQCivQntCf0JDQp9CY0Isg0JDQndCT0JXQm9CY0J3QkAor0J7Qn9CQ0KfQmNCLINCR0J7QodCY0InQmtCQCivQntCf0JDQp9CY0Isg0JHQoNCQ0J3QmtCeCivQntCf0JDQp9CY0Isg0JTQo9Co0JDQnQor0J7Qn9CQ0KfQmNCLINCa0J7QodCi0JAKK9Ce0J/QkNCn0JjQiyDQnNCY0JvQkNCdCivQntCf0JDQp9CY0Isg0JzQmNCb0JDQnQor0J7Qn9CQ0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQntCf0JDQp9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ce0J/QkNCn0JjQiyDQnNCY0KDQmtCeCivQntCf0JDQp9CY0Isg0JzQmNCg0JrQngor0J7Qn9CQ0KfQmNCLINCd0JXQndCQ0JQKK9Ce0J/QkNCn0JjQiyDQn9CQ0JLQm9CVCivQntCf0JDQp9CY0Isg0KHQmNCc0J4KK9Ce0J/QkNCn0JjQiyDQodCb0JDQktCa0J4KK9Ce0J/QkNCn0JjQiyDQodCi0JXQktCQ0J0KK9Ce0J/QkNCn0JjQiyDQotCe0JTQntCgCivQntCf0JDQm9CY0Isg0JTQkNCg0JjQndCa0JAKK9Ce0J/QkNCb0JjQiyDQnNCQ0KDQmtCeCivQntCf0JDQm9CY0Isg0J3QmNCa0J7Qm9CQCivQntCf0JDQm9CY0Isg0J3QmNCa0J7Qm9CQCivQntCf0JDQm9CY0Isg0J3QmNCa0J7Qm9CQCivQntCf0JDQm9CY0Isg0KHQntCk0JjQiNCQCivQntCf0JDQndCn0JDQoNCV0JIg0JTQo9Co0JDQnQor0J7Qn9CQ0J3Qp9CQ0KDQldCSINCY0JLQkNCdCivQntCf0JDQndCn0JDQoNCV0JIg0JzQmNCb0JrQkAor0J7Qn9CQ0KDQndCY0KbQkCDQidCj0JHQngor0J7Qn9CQ0KDQndCY0KbQkCDQm9Cj0JrQkAor0J7Qn9CQ0KDQndCY0KbQkCDQnNCQ0JrQodCY0JwKK9Ce0J/QkNCg0J3QmNCm0JAg0JzQkNCa0KHQmNCcCivQntCf0JDQoNCd0JjQptCQINCc0JDQmtCh0JjQnAor0J7Qn9CQ0KDQndCY0KbQkCDQnNCQ0KDQmNCd0JrQngor0J7Qn9CQ0KDQndCY0KbQkCDQnNCY0JvQldCd0JrQngor0J7Qn9CQ0KDQndCY0KbQkCDQnNCY0KDQkAor0J7Qn9CQ0KDQndCY0KbQkCDQodCe0KTQmNCI0JAKK9Ce0J/QkNCg0J3QmNCm0JAg0JLQmNCUCivQntCf0JXQm9CmINCb0JDQlNCY0KHQm9CQ0JIKK9Ce0J/QntCI0JvQldCS0JjQiyDQm9CQ0JfQkNCgCivQntCf0KDQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ce0J/QoNCQ0J3QntCS0JjQiyDQnNCY0KbQkAor0J7Qn9Cg0JXQqNCd0JjQmiDQkNCd0JrQmNCm0JAKK9Ce0J/QoNCY0IjQkNCdINCQ0J3QgtCV0JvQmtCeINCU0JjQn9CbINCY0J3Qkwor0J7Qn9Cg0JjQiNCQ0J0g0JTQoNCQ0JPQkNCdCivQntCf0KDQmNCI0JDQnSDQnNCY0JvQmtCQCivQntCf0KDQo9CmINCc0JjQm9Ce0KDQkNCUCivQntCf0KHQldCd0JjQptCQINCc0JjQm9CQ0J0KK9Ce0J/QodCV0J3QmNCm0JAg0KHQntCa0JAKK9Ce0KDQp9CY0Isg0KjQmNCc0JUKK9Ce0KDQp9CY0Isg0KjQmNCc0JUKK9Ce0KDQp9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Ce0KDQp9CY0Isg0JTQoNCQ0JPQngor0J7QoNCn0JjQiyDQmNCS0JDQnQor0J7QoNCn0JjQiyDQodCi0IjQldCf0JDQnQor0J7QoNCo0JjQiyDQgtCe0KDQgtCVCivQntCg0KjQmNCLINCI0J7QptCQCivQntCg0KjQmNCLINCc0JjQm9CY0KbQkAor0J7QoNCo0J7QqCDQgtCe0KDQgtCVCivQntCg0KjQntCoINCR0KDQkNCd0JrQngor0J7QoNCo0J7QqCDQlNCg0JDQk9CQ0J0KK9Ce0KDQqNCe0Kgg0KTQldCg0JXQndCmCivQntCg0KjQntCoINCI0J7QodCY0J8KK9Ce0KDQqNCe0Kgg0J3QmNCa0J7Qm9CQCivQntCg0KjQntCoINCg0J7Ql9CQ0JvQmNCI0JAKK9Ce0KDQqNCe0Kgg0KHQkNCS0JAKK9Ce0KDQqNCe0Kgg0KLQldCg0JXQl9CQCivQntCg0KjQntCoINCX0J7QoNCQ0J0KK9Ce0KDQqNCe0JvQmNCLINCh0KLQiNCV0J/QkNCdCivQntCg0JDQndCY0KbQkCDQnNCQ0JrQodCY0JwKK9Ce0KDQkNCS0JXQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ce0KDQkNCS0JXQpiDQkdCg0JDQndCa0J4KK9Ce0KDQkNCS0JXQpiDQnNCQ0KDQmtCeCivQntCg0JDQktCV0KYg0J/QkNCS0JvQlQor0J7QoNCR0JDQnSDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J7QoNCR0JDQnSDQldCc0JjQm9CY0IjQkAor0J7QoNCR0JDQnSDQk9CQ0JLQoNCQCivQntCg0JHQkNCdINCS0JXQodCd0JAKK9Ce0KDQlNCQ0J3QntCh0JrQmCDQiNCV0JvQldCd0JAKK9Ce0KDQlNCY0J3QkNCn0JXQkiDQgtCe0KDQgtCVCivQntCg0JTQmNCd0JDQp9CV0JIg0JzQm9CQ0JTQldCdCivQntCg0JTQmNCd0JDQp9CV0JIg0KLQntCU0J7QoAor0J7QoNCU0JjQndCQ0KfQldCSINCi0J7QlNCe0KAKK9Ce0KDQlNCY0J3QkNCn0JXQkiDQotCe0JTQntCgCivQntCg0JXQqNCn0JDQndCY0J0g0JHQntCT0JTQkNCdCivQntCg0JXQqNCn0JDQndCY0J0g0JHQoNCQ0J3QmtCeCivQntCg0JXQqNCn0JDQndCY0J0g0JzQmNCb0JDQnQor0J7QoNCV0KjQp9CQ0J3QmNCdINCc0JjQm9Ce0JLQkNCdCivQntCg0JXQqNCn0JDQndCY0J0g0J3QkNCi0JDQm9CY0IjQkCDQlNCgCivQntCg0JXQqNCn0JDQndCY0J0g0J3QkNCi0JDQm9CY0IjQkAor0J7QoNCV0KjQp9CQ0J3QmNCdINCd0JjQmtCe0JvQkAor0J7QoNCV0KjQp9CQ0J3QmNCdINCg0JDQlNCe0JLQkNCdCivQntCg0JXQqNCn0JDQndCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0J7QoNCV0KjQp9CQ0J3QmNCdINCS0JvQkNCU0JjQnNCY0KAKK9Ce0KDQldCo0IvQkNCd0JjQnSDQlNCj0KjQkNCdCivQntCg0JXQqNCa0J7QktCY0Isg0JTQntCd0JAKK9Ce0KDQldCo0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Ce0KDQldCo0JrQntCS0JjQiyDQnNCY0JvQlQor0J7QoNCV0KjQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0J7QoNCV0KjQmtCe0JLQmNCLINCX0JLQntCd0JjQnNCY0KAKK9Ce0KDQldCRINCR0J7QoNCY0KEKK9Ce0KDQldCl0J7QktCQ0KYg0KDQo9CW0JAKK9Ce0KDQldCJINCC0KPQoNCeCivQntCg0JXQiSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ce0KDQldCJINCU0JDQoNCY0J3QmtCQCivQntCg0JXQiSDQiNCe0JLQkNCdCivQntCg0JXQiSDQidCj0JHQngor0J7QoNCV0Ikg0JzQkNCi0JjQm9CU0JAKK9Ce0KDQldCJINCc0JjQm9CV0JLQkAor0J7QoNCV0Ikg0J3QkNCi0JDQm9CY0IjQkAor0J7QoNCV0Ikg0KDQkNCU0JUKK9Ce0KDQldCd0JTQmCDQiNCj0JvQmNCI0JDQndCQCivQntCg0JXQndCU0Jgg0JvQkNCh0JvQngor0J7QoNCV0J3QlNCYINCe0KLQngor0J7QoNCb0JDQndCU0JjQiyDQmtCe0KDQndCV0JvQmNCI0JAKK9Ce0KDQm9CQ0J3QlNCY0Isg0JfQntCb0KLQkNCdCivQntCg0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J7QoNCb0JjQiyDQidCj0JHQmNCm0JAKK9Ce0KDQm9CY0Isg0InQo9CR0JjQptCQCivQntCg0JvQmNCLINCc0JDQoNCY0KbQkAor0J7QoNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Ce0KDQm9CY0Isg0JzQmNCb0JDQnQor0J7QoNCb0JjQiyDQnNCY0JvQntCg0JDQlAor0J7QoNCb0JjQiyDQndCQ0JTQkAor0J7QoNCb0JjQiyDQndCQ0JTQldCW0JTQkAor0J7QoNCb0JjQiyDQndCV0JTQldCJ0JrQngor0J7QoNCb0JjQmiDQkNCd0JAKK9Ce0KDQm9CY0Jog0JzQkNCg0JjQiNCQCivQntCg0JvQntCS0JDQpiDQldCg0JbQldCR0JXQogor0J7QoNCb0J7QktCY0Isg0JDQndCi0JUKK9Ce0KDQm9Ce0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQntCg0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQntCg0JvQntCS0JjQiyDQiNCe0JLQngor0J7QoNCb0J7QktCY0Isg0InQo9CR0JjQptCQCivQntCg0JvQntCS0JjQiyDQnNCQ0J3QlQor0J7QoNCb0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ce0KDQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ce0KDQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ce0KDQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUINCU0KAKK9Ce0KDQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQntCg0JvQntCS0JjQiyDQodCQ0KjQkAor0J7QoNCb0J7QktCY0Isg0KHQoNCR0J7QidCj0JEKK9Ce0KDQm9Ce0JLQmNCLINCh0KLQldCS0JjQptCQCivQntCg0JvQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ce0KDQm9Ce0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ce0KDQnNCQ0Jgg0KLQmNCR0J7QoAor0J7QoNCK0JDQmtCe0JIg0J/QoNCY0JfQoNCV0J3QmtCQCivQntCg0J4g0KfQldCU0J7QnNCY0KAKK9Ce0KDQntChINCW0JDQoNCa0J4KK9Ce0KDQntChINCC0KPQoNCQCivQntCg0J7QoSDQgtCj0KDQkAor0J7QoNCe0KEg0JDQm9CR0JXQoNCiCivQntCg0J7QoSDQldCj0JPQldCdCivQntCg0J7QoSDQiNCe0JDQmtCY0JwKK9Ce0KDQntChINCc0JDQoNCY0IjQkAor0J7QoNCe0KEg0J3QmNCa0J7Qm9CQCivQntCg0J7QoSDQktCQ0KHQkAor0J7QoNCe0KEg0JfQlNCV0J3QmtCQCivQntCg0J7QktCn0JDQndCV0KYg0JrQmNCg0JAg0JTQoAor0J7QoNCe0JLQldCmINCI0J7QodCY0J8KK9Ce0KDQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0J7QoNCh0JDQkyDQkNCd0KLQkNCbCivQntCg0KHQmNCLINCg0JDQlNCc0JjQm9CQCivQntCg0KLQkNCaINCa0JDQi9CQCivQntCg0JLQntCoINCb0JDQiNCe0KgKK9Ce0KDQl9CQINCc0JjQoNCm0JAKK9Ce0KDQl9CQINCg0J7QodCQ0J3QkAor0J7QodCV0IvQkNCd0KHQmtCYINCc0JvQkNCU0JXQnQor0J7QodCV0KLQoNCe0JIg0J3QmNCa0J7Qm9CQCivQntCh0JvQntCS0KfQkNCdINCR0J7QodCY0InQmtCQCivQntCh0JzQkNCd0JDQiCDQmNCc0JXQoAor0J7QodCc0JDQndCYINCQ0KHQkNCdCivQntCh0JzQkNCd0Jgg0JzQldCl0JzQldCUCivQntCh0JzQkNCd0Jgg0J3QldCo0JDQogor0J7QodCc0JDQndCYINCg0J7QnNCQ0J3QmtCQCivQntCh0JzQkNCd0Jgg0KHQldCb0JjQnAor0J7QodCc0JDQndCa0JDQpyDQodCV0JvQmNCcCivQntCh0JzQkNCd0J7QktCY0Isg0JrQm9CQ0KPQlNCY0IjQkAor0J7QodCc0JDQndCe0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQntCh0JzQntCd0J7QiCDQodCQ0JTQoNCY0IjQkAor0J7QodCd0J7QktCY0Isg0J7QodCa0JDQoAor0J7QodCe0KHQm9CY0IjQkCDQoNCQ0JTQldCd0JrQngor0J7QodCg0JXQlNCa0JDQoCDQiNCe0KHQmNCfCivQntCh0KLQldCgINCY0JvQntCd0JAKK9Ce0KHQotCe0JjQiyDQgtCe0KDQgtCVCivQntCh0KLQntCY0Isg0JfQntCg0JDQnQor0J7QodCi0J7QiNCY0Isg0JbQmNCS0JrQngor0J7QodCi0J7QiNCY0Isg0ILQntCg0ILQlQor0J7QodCi0J7QiNCY0Isg0JHQntCo0JrQngor0J7QodCi0J7QiNCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ce0KHQotCe0IjQmNCLINCR0J7QltCY0JTQkNCgCivQntCh0KLQntCI0JjQiyDQkdCe0JPQlNCQ0J0KK9Ce0KHQotCe0IjQmNCLINCR0KDQkNCd0JAKK9Ce0KHQotCe0IjQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Ce0KHQotCe0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkiDQlNCgCivQntCh0KLQntCI0JjQiyDQkdCg0JDQndCa0J4KK9Ce0KHQotCe0IjQmNCLINCU0JDQpNCY0J3QkAor0J7QodCi0J7QiNCY0Isg0JTQntCR0KDQmNCS0J7QiAor0J7QodCi0J7QiNCY0Isg0JTQoNCQ0JPQkNCdCivQntCh0KLQntCI0JjQiyDQlNCg0JDQk9CY0KbQkAor0J7QodCi0J7QiNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ce0KHQotCe0IjQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ce0KHQotCe0IjQmNCLINCU0KPQqNCQ0J0KK9Ce0KHQotCe0IjQmNCLINCU0KPQqNCQ0J0KK9Ce0KHQotCe0IjQmNCLINCU0KPQqNCQ0J0KK9Ce0KHQotCe0IjQmNCLINCT0J7QiNCa0J4KK9Ce0KHQotCe0IjQmNCLINCT0J7QoNCY0J3QmtCQCivQntCh0KLQntCI0JjQiyDQmNCS0JDQnQor0J7QodCi0J7QiNCY0Isg0IjQntCS0JDQndCa0JAKK9Ce0KHQotCe0IjQmNCLINCa0JDQotCY0KbQkAor0J7QodCi0J7QiNCY0Isg0JvQkNCX0JDQoAor0J7QodCi0J7QiNCY0Isg0InQo9CR0JAKK9Ce0KHQotCe0IjQmNCLINCJ0KPQkdCY0J3QmtCeCivQntCh0KLQntCI0JjQiyDQidCj0JHQntCc0JjQoAor0J7QodCi0J7QiNCY0Isg0InQo9CR0J7QnNCY0KAKK9Ce0KHQotCe0IjQmNCLINCJ0KPQkdCe0JzQmNCgCivQntCh0KLQntCI0JjQiyDQnNCY0IvQkAor0J7QodCi0J7QiNCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ce0KHQotCe0IjQmNCLINCc0JjQm9CQ0J0KK9Ce0KHQotCe0IjQmNCLINCc0JjQm9CV0J3QmtCeCivQntCh0KLQntCI0JjQiyDQnNCY0JvQldCd0JrQngor0J7QodCi0J7QiNCY0Isg0JzQmNCb0JXQktCQCivQntCh0KLQntCI0JjQiyDQnNCY0JvQmNCm0JAKK9Ce0KHQotCe0IjQmNCLINCc0JjQm9Ca0JAKK9Ce0KHQotCe0IjQmNCLINCc0JjQm9Ce0KgKK9Ce0KHQotCe0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQntCh0KLQntCI0JjQiyDQnNCY0JvQntCg0JDQlAor0J7QodCi0J7QiNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ce0KHQotCe0IjQmNCLINCd0JDQlNCQCivQntCh0KLQntCI0JjQiyDQndCQ0KLQkNCo0JAKK9Ce0KHQotCe0IjQmNCLINCd0JXQndCQ0JQKK9Ce0KHQotCe0IjQmNCLINCe0JHQoNCQ0JQKK9Ce0KHQotCe0IjQmNCLINCe0JHQoNCQ0JQKK9Ce0KHQotCe0IjQmNCLINCe0JvQk9CQCivQntCh0KLQntCI0JjQiyDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQiyDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQiyDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQiyDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQiyDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQiyDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J7QodCi0J7QiNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0J7QodCi0J7QiNCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0J7QodCi0J7QiNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ce0KHQotCe0IjQmNCLINCg0JDQotCa0J4KK9Ce0KHQotCe0IjQmNCLINCg0JjQodCi0J4KK9Ce0KHQotCe0IjQmNCLINCh0JvQkNCS0JjQptCQCivQntCh0KLQntCI0JjQiyDQodCb0JDQktCa0J4KK9Ce0KHQotCe0IjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ce0KHQotCe0IjQmNCLINCh0JzQmNCJ0JrQkAor0J7QodCi0J7QiNCY0Isg0KHQotCQ0J3QkAor0J7QodCi0J7QiNCY0Isg0KHQotCQ0J3QmtCQCivQntCh0KLQntCI0JjQiyDQodCS0JXQotCe0JfQkNCgCivQntCh0KLQntCI0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQntCh0KLQntCI0JjQiyDQktCQ0KHQkAor0J7QodCi0J7QiNCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0J7QodCi0J7QiNCY0Isg0JLQldCh0JXQm9CY0J0KK9Ce0KHQotCe0IjQmNCLINCS0JXQodCV0JvQmNCdCivQntCh0KLQntCI0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQntCh0KLQntCI0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQntCh0KLQntCI0JjQiyDQl9CQ0JPQntCg0JrQkAor0J7QodCi0J7QiNCY0Isg0JfQntCg0JDQnQor0J7QodCi0J7QiNCY0Isg0JfQntCg0JAKK9Ce0KHQotCe0IjQmNCdINCW0JDQoNCa0J4KK9Ce0KHQotCe0IjQmNCdINCI0KPQm9Ca0JAKK9Ce0KHQotCe0IjQmNCdINCb0JDQl9CQ0KAKK9Ce0KHQotCe0IjQmNCdINCc0JDQoNCY0IjQkAor0J7QodCi0J7QiNCY0J0g0JzQmNCb0J7QqAor0J7QodCi0J7QiNCY0J0g0J/QldCg0JAKK9Ce0KHQotCe0IjQmNCdINCf0JXQoNCeCivQntCh0KLQntCI0JjQnSDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQnSDQn9CV0KLQkNCgCivQntCh0KLQntCI0JjQnSDQoNCQ0JTQntCS0JDQnQor0J7QodCi0J7QiNCY0J0g0KHQktCV0KLQmNCh0JvQkNCSCivQntCh0KLQntCI0JjQnSDQotCe0KjQkAor0J7QodCi0KDQntCT0J7QndCQ0KYg0JjQktCQ0J0g0J3QntCS0JjQndCQ0KAKK9Ce0KHQotCg0J7Qk9Ce0J3QkNCmINCY0JLQkNCdCivQntCh0KLQoNCe0JPQntCd0JDQpiDQotCY0JHQntCgCivQntCh0JLQkNCb0JQg0JHQkNCg0JHQkNCg0JAKK9Ce0KHQktCQ0JvQlCDQmNCS0JDQnQor0J7QodCS0JDQm9CUINCS0JXQoNCQCivQntCi0JDQqNCV0JLQmNCLINCW0JjQktCa0J4KK9Ce0KLQkNCo0JXQktCY0Isg0IjQntCS0JDQnQor0J7QotCQ0KjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0J7QotCQ0KjQldCS0JjQiyDQktCb0JDQodCi0JAKK9Ce0KLQmNCLINCW0JjQktCa0J4KK9Ce0KLQmNCLINCR0J7QoNCY0JLQntCICivQntCi0JjQiyDQkdCe0KDQmNCS0J7QiAor0J7QotCY0Isg0JTQkNCg0JjQndCa0JAKK9Ce0KLQmNCLINCU0KPQkdCg0JDQktCa0JAKK9Ce0KLQmNCLINCI0J7QktCQ0J3QmtCQCivQntCi0JjQiyDQmtCQ0KLQmNCm0JAKK9Ce0KLQmNCLINCc0JjQm9CQ0J0KK9Ce0KLQmNCLINCc0JjQm9CY0JLQntCICivQntCi0JjQiyDQndCY0JrQntCb0JAKK9Ce0KLQmNCLINCd0J7QktCQ0JoKK9Ce0KLQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0J7QotCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQntCi0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQntCi0JjQiyDQodCQ0JLQkAor0J7QotCY0Isg0KHQktCV0KLQntCX0JDQoAor0J7QotCY0Isg0JLQldCb0JjQl9CQ0KAKK9Ce0KLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0J7QotCY0Isg0JLQo9Ca0JjQptCQCivQntCi0JvQntCa0JDQnSDQiNCe0JLQkNCdCivQntCi0JzQkNCn0JjQiyDQlNCg0JDQk9CeCivQntCi0J7QqCDQkNCd0JTQoNCQ0KgKK9Ce0KLQntCg0JDQndCe0JIg0KHQm9CQ0JLQmtCeCivQntCi0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J7QotCg0KPQn9Cn0JDQmiDQiNCe0KHQmNCfCivQntCi0KDQo9Cf0KfQkNCaINCc0JjQm9Ce0KgKK9Ce0KLQoNCj0J/Qp9CQ0Jog0KHQkNCc0KPQmNCb0J4KK9Ce0JLQptCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Ce0JLQo9Ca0JAg0ILQo9Cg0J4KK9Ce0JLQo9Ca0JAg0ILQo9Cg0J4KK9Ce0JLQo9Ca0JAg0JzQmNCb0JDQnQor0J7QktCj0JrQkCDQndCY0JrQntCb0JAKK9Ce0JfQldCgINCC0KPQoNCQCivQntCX0JXQoCDQgtCj0KDQkAor0J7Ql9CV0KAg0ILQo9Cg0JAKK9Ce0JfQnNCV0KYg0JLQldCg0JAKK9Cf0KjQldCd0JjQp9Cd0JjQmiDQl9CS0J7QndCY0JzQmNCgCivQn9CQ0KfQkNCg0JjQiyDQltCY0JLQkNCdCivQn9CQ0KfQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0JDQp9CQ0KDQmNCLINCc0JjQoNCa0J4KK9Cf0JDQp9CQ0KDQmNCLINCd0JjQmtCe0JvQkAor0J/QkNCn0JDQoNCY0Isg0KDQkNCU0JjQktCe0IgKK9Cf0JDQp9CQ0KDQmNCLINCg0JDQlNCe0JzQmNCgCivQn9CQ0KfQkNCg0JjQiyDQl9Ce0KDQkNCdCivQn9CQ0KjQi9CQ0J0g0KjQotCV0KTQkNCd0JjQiNCQCivQn9CQ0KjQi9CQ0J0g0ILQntCg0ILQlQor0J/QkNCo0IvQkNCdINCC0J7QoNCC0JUKK9Cf0JDQqNCL0JDQnSDQkNCd0JrQkAor0J/QkNCo0IvQkNCdINCU0JDQndCY0KbQkAor0J/QkNCo0IvQkNCdINCU0KDQkNCT0JDQnQor0J/QkNCo0IvQkNCdINCU0KPQqNCQ0J3QmtCQCivQn9CQ0KjQi9CQ0J0g0JTQo9Co0JDQnQor0J/QkNCo0IvQkNCdINCT0JDQktCg0JAKK9Cf0JDQqNCL0JDQnSDQiNCe0JLQkNCdCivQn9CQ0KjQi9CQ0J0g0IjQntCS0JDQnQor0J/QkNCo0IvQkNCdINCc0JjQm9Ce0KDQkNCUCivQn9CQ0KjQi9CQ0J0g0J3QkNCU0JXQltCU0JAKK9Cf0JDQqNCL0JDQnSDQndCV0JTQldCJ0JrQngor0J/QkNCo0IvQkNCdINCd0JjQmtCe0JvQkAor0J/QkNCo0IvQkNCdINCe0JvQk9CQCivQn9CQ0KjQi9CQ0J0g0J/QldCg0JAKK9Cf0JDQqNCL0JDQnSDQn9CV0KLQkNCgCivQn9CQ0KjQi9CQ0J0g0KDQkNCU0JjQktCe0IgKK9Cf0JDQqNCL0JDQnSDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cf0JDQqNCL0JDQnSDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0KjQi9CQ0J0g0KHQkNCS0JAKK9Cf0JDQqNCL0JDQnSDQodCY0J3QmNCo0JAKK9Cf0JDQqNCL0JDQnSDQodCc0JjQidCQCivQn9CQ0KjQi9CQ0J0g0KHQotCV0JLQkNCdCivQn9CQ0KjQi9CQ0J0g0KLQntCU0J7QoAor0J/QkNCo0IvQkNCdINCS0JDQodCQCivQn9CQ0KjQi9CQ0J0g0JfQkNCT0J7QoNCa0JAKK9Cf0JDQqNCL0JDQndCe0JLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Cf0JDQqNCL0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0JDQqNCL0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0J/QkNCo0IvQmNCaINCa0JvQkNCg0JAKK9Cf0JDQqNCL0JjQmiDQm9CQ0KHQm9CeCivQn9CQ0KjQkNCT0JjQiyDQoNCQ0IjQmtCeCivQn9CQ0KjQkNCI0JvQmNCLINCQ0J3QgtCV0JvQmtCeCivQn9CQ0KjQkNCI0JvQmNCLINCR0JjQidCQ0J3QkAor0J/QkNCo0JDQiNCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QkNCo0JDQiNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0KjQkNCI0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQqNCQ0IjQm9CY0Isg0JLQm9CQ0JTQngor0J/QkNCo0JDQm9CY0Isg0J/QkNCS0JvQlQor0J/QkNCo0JDQndCh0JrQmCDQnNCY0JvQkNCdCivQn9CQ0KjQkNCd0KHQmtCYINCS0KPQmtCY0KbQkAor0J/QkNCo0JjQiyDQkdCe0JbQkNCd0JAKK9Cf0JDQqNCY0Isg0JHQntCW0J4KK9Cf0JDQqNCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cf0JDQqNCY0Isg0JTQo9Co0JrQngor0J/QkNCo0JjQiyDQiNCe0JLQkNCdCivQn9CQ0KjQmNCLINCa0JDQotCY0KbQkAor0J/QkNCo0JjQiyDQnNCY0JvQkNCdCivQn9CQ0KjQmNCLINCc0JjQm9CV0J3QkAor0J/QkNCo0JjQiyDQn9CV0KLQkNCgCivQn9CQ0KjQmNCLINCg0J7QodCQCivQn9CQ0KjQmNCLINCh0JDQqNCQCivQn9CQ0KjQmNCLINCh0JjQndCY0KjQkAor0J/QkNCo0JjQiyDQodCi0J7QiNCQCivQn9CQ0KjQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JDQqNCY0Isg0JfQntCg0JAKK9Cf0JDQqNCY0J0g0JPQoNCe0JfQlNCQ0J3QkAor0J/QkNCo0JrQkCDQqNCQ0J3QlNCe0KAKK9Cf0JDQqNCa0JjQndCe0JIg0JLQkNCh0JrQngor0J/QkNCo0KLQldCg0JDQpiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCo0KLQmCDQqNCQ0J3QlNCe0KAKK9Cf0JDQqNCi0Jgg0JzQkNCi0JjQiNCQCivQn9CQ0KjQo9CI0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CQ0IvQmCDQkdCe0KDQmNChCivQn9CQ0IvQmCDQmNCo0KLQktCQ0J0KK9Cf0JDQi9CYINCc0JDQoNCY0J4KK9Cf0JDQi9Cj0Jog0J3QmNCa0J7Qm9CQCivQn9CQ0IvQo9CaINCh0JvQkNCS0JrQngor0J/QkNCW0ILQldCg0KHQmtCYLdCc0JDQndCe0IjQm9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QkNCW0JjQnSDQltCV0InQmtCeCivQn9CQ0JbQmNCdINCQ0J3QgtCV0JvQmtCeCivQn9CQ0JbQmNCdINCU0JDQndCY0KbQkAor0J/QkNCW0JjQnSDQidCj0JHQntCc0JjQoAor0J/QkNCC0JDQnSDQidCj0JHQntCc0JjQoAor0J/QkNCC0JDQnSDQnNCY0JvQmNCm0JAKK9Cf0JDQgtCV0J0g0JTQo9Co0JDQnQor0J/QkNCC0JXQnSDQm9CV0J/QkAor0J/QkNCC0JXQnSDQnNCQ0KDQmNCI0JAKK9Cf0JDQgtCV0J0g0KHQotCV0JLQkAor0J/QkNCC0JXQnSDQl9CU0KDQkNCS0JrQngor0J/QkNCmINCY0JLQkNCd0JrQkAor0J/QkNCm0JXQmiDQm9CQ0KHQm9CeCivQn9CQ0KbQmNCaINCY0KjQotCS0JDQnQor0J/QkNCU0JXQltCQ0J3QmNCdINCJ0KPQkdCeCivQn9CQ0JTQldCW0JDQndCY0J0g0JLQm9CQ0JTQldCi0JAKK9Cf0JDQlNCV0IjQodCa0Jgg0JzQmNCb0JXQndCQCivQn9CQ0JTQldCI0KHQmtCYINCc0JjQm9Ce0JLQkNCdCivQn9CQ0JTQldCI0KHQmtCYINCh0JDQktCQCivQn9CQ0JTQldCI0KHQmtCYINCS0JXQm9CY0JzQmNCgCivQn9CQ0JTQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCU0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JDQlNCYINCb0JDQiNCe0KgKK9Cf0JDQlNCg0J7QkiDQk9Ce0KDQkNCdCivQn9CQ0JTQoNCe0JIg0J3QmNCa0J7Qm9CQCivQn9CQ0JTQoNCe0JIg0KDQkNCU0JjQktCe0IgKK9Cf0JDQlNCg0J7QkiDQktCV0KHQndCQCivQn9CQ0JPQkNCnINCR0JjQidCQ0J3QkAor0J/QkNCT0JDQpyDQndCY0JrQntCb0JAKK9Cf0JDQk9CQ0KfQldCS0JjQiyDQkNCd0ILQldCb0JrQngor0J/QkNCT0JDQp9CV0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cf0JDQk9CQ0KfQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQk9CQ0KfQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQk9CQ0KfQldCS0JjQiyDQktCQ0KHQkAor0J/QkNCT0JDQndCV0KLQniDQotCY0J3QkAor0J/QkNCT0J7QndCY0KEg0IjQo9Cb0JrQkAor0J/QkNCT0J7QndCY0KEg0JLQm9CQ0JTQmNCc0JjQoNCe0KEKK9Cf0JDQmNCLINCC0KPQoNCQ0IIKK9Cf0JDQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCY0Isg0KTQoNCQ0J3QlQor0J/QkNCY0Isg0JjQktCQ0J0KK9Cf0JDQmNCLINCc0JDQoNCY0IjQkAor0J/QkNCI0KfQmNCLINCQ0JvQldCa0KHQkAor0J/QkNCI0KfQmNCLINCQ0J3QkAor0J/QkNCI0KfQmNCdINCY0JvQmNCI0JAKK9Cf0JDQiNCn0JjQnSDQnNCY0JvQntCI0JrQngor0J/QkNCI0KfQmNCdINCd0JXQlNCV0InQmtCQCivQn9CQ0IjQp9CY0J0g0JLQntCI0JjQodCb0JDQkgor0J/QkNCI0JDQndCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQiNCQ0JfQmNCi0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JDQiNCU0JDQmtCe0JLQmNCLINCU0KPQkdCg0JDQktCa0JAKK9Cf0JDQiNCU0JjQiyDQiNCj0JvQmNCI0JAKK9Cf0JDQiNCU0JjQiyDQnNCQ0KDQmNCI0JDQnQor0J/QkNCI0JXQktCY0Isg0ILQntCg0ILQlQor0J/QkNCI0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J/QkNCI0JXQktCY0Isg0JPQntCg0JDQnQor0J/QkNCI0JXQktCY0Isg0JrQntCh0KLQkAor0J/QkNCI0JXQktCY0Isg0JzQmNCb0JDQnQor0J/QkNCI0JjQiyDQkdCb0JDQk9Ce0IjQlQor0J/QkNCI0JjQiyDQkdCb0JDQk9Ce0IjQlQor0J/QkNCI0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/QkNCI0JjQiyDQkdCe0JbQngor0J/QkNCI0JjQiyDQkdCe0JPQmNCLCivQn9CQ0IjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JDQiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CQ0IjQmNCLINCR0KDQkNCd0JrQngor0J/QkNCI0JjQiyDQkdCj0JTQmNCh0JvQkNCSCivQn9CQ0IjQmNCLINCU0J7QkdCg0JjQktCe0IgKK9Cf0JDQiNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQn9CQ0IjQmNCLINCU0KPQqNCQ0J0g0JTQoAor0J/QkNCI0JjQiyDQlNCj0KjQkNCdCivQn9CQ0IjQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQiNCY0Isg0JXQnNCY0J3QkAor0J/QkNCI0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J/QkNCI0JjQiyDQk9Ce0KDQmNCm0JAKK9Cf0JDQiNCY0Isg0JPQoNCj0IjQkAor0J/QkNCI0JjQiyDQmtCe0JLQmNCJ0JrQkAor0J/QkNCI0JjQiyDQidCj0JHQmNCd0JrQkAor0J/QkNCI0JjQiyDQidCj0JHQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQiNCY0Isg0JzQkNCg0JjQiNCQCivQn9CQ0IjQmNCLINCc0JjQm9CY0KbQkAor0J/QkNCI0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQn9CQ0IjQmNCLINCc0JjQm9Ce0KgKK9Cf0JDQiNCY0Isg0JzQmNCb0J7QqAor0J/QkNCI0JjQiyDQnNCY0JvQntCI0JUKK9Cf0JDQiNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQiNCY0Isg0JzQmNCb0J7QodCQ0JIKK9Cf0JDQiNCY0Isg0JzQmNCb0KPQnQor0J/QkNCI0JjQiyDQnNCY0KDQmtCeCivQn9CQ0IjQmNCLINCc0JjQoNCa0J4KK9Cf0JDQiNCY0Isg0JzQm9CQ0JTQldCdCivQn9CQ0IjQmNCLINCd0JDQlNCQCivQn9CQ0IjQmNCLINCd0JDQlNCQCivQn9CQ0IjQmNCLINCd0JjQmtCe0JvQkAor0J/QkNCI0JjQiyDQndCe0JLQkNCaCivQn9CQ0IjQmNCLINCf0JXQoNCeCivQn9CQ0IjQmNCLINCf0JXQotCQ0KAKK9Cf0JDQiNCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0J/QkNCI0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QkNCI0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cf0JDQiNCY0Isg0KDQkNCI0JrQngor0J/QkNCI0JjQiyDQodCY0J3QmNCo0JAKK9Cf0JDQiNCY0Isg0KHQnNCY0InQkAor0J/QkNCI0JjQiyDQodCg0JXQlNCe0IjQlQor0J/QkNCI0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQiNCY0Isg0KHQktCV0KLQntCX0JDQoAor0J/QkNCI0JjQiyDQotCY0KXQntCc0JjQoAor0J/QkNCI0JjQiyDQktCQ0KHQkAor0J/QkNCI0JjQiyDQktCV0JvQmNCc0JjQoAor0J/QkNCI0JjQiyDQktCV0KHQldCb0JjQnQor0J/QkNCI0JjQiyDQktCY0JTQntCh0JDQktCQCivQn9CQ0IjQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0J/QkNCI0JjQiyDQktCj0JrQmNCm0JAKK9Cf0JDQiNCY0Jog0JTQkNCd0JjQptCQCivQn9CQ0IjQmNCdINCI0J7QktCQ0J0KK9Cf0JDQiNCY0J0g0JzQmNCb0JjQktCe0IgKK9Cf0JDQiNCa0JXQoNCiINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0IjQmtCV0KDQoiDQpNCg0JDQitCQCivQn9CQ0IjQmtCV0KDQoiDQnNCY0KDQntCh0JvQkNCS0JAKK9Cf0JDQiNCa0JXQoNCiINCg0JDQndCa0JAKK9Cf0JDQiNCa0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQiNCa0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0IjQmtCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQn9CQ0IjQmtCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0J/QkNCI0J7QoCDQnNCQ0KLQmNCI0JAKK9Cf0JDQiNCe0JLQmNCLINCo0J/QmNCg0J4KK9Cf0JDQiNCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JDQiNCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cf0JDQiNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQiNCe0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QkNCI0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cf0JDQiNCe0JLQmNCLINCg0JDQiNCa0J4KK9Cf0JDQiNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JDQiNCe0JLQmNCLINCX0J7QoNCa0JAKK9Cf0JDQiNCi0JDQqNCV0JIg0JTQntCR0KDQmNCS0J7QiAor0J/QkNCI0KLQkNCaINCg0JDQlNCc0JjQm9CQCivQn9CQ0IjQotCY0Isg0J/QkNCS0JvQlQor0J/QkNCI0JLQkNCd0KfQmNCLINCk0KDQkNCK0JAKK9Cf0JDQiNCS0JDQndCn0JjQiyDQmtCQ0KLQkAor0J/QkNCI0JLQkNCd0KfQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9Cf0JDQiNCS0J7QlCDQkdCe0KHQmNCJ0JrQkAor0J/QkNCa0JDQqNCa0Jgg0ILQo9Cg0JAKK9Cf0JDQmtCQ0KjQmtCYINCc0JjQmtCQCivQn9CQ0JrQkNCo0JrQmCDQnNCY0JvQntCS0JDQnQor0J/QkNCa0JDQqNCa0Jgg0KDQkNCU0J7QodCb0JDQkgor0J/QkNCa0JDQqNCa0Jgg0KHQmNCc0JAKK9Cf0JDQmtCQ0KjQmtCYINCS0JDQodCQCivQn9CQ0JrQkNCo0JrQmCDQktCY0KLQkNCb0JjQiCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQmtCQ0Jgg0IjQntCW0JXQpAor0J/QkNCa0JDQmCDQm9CQ0KHQm9CeCivQn9CQ0JrQm9CQ0KAg0JLQmNCU0JAKK9Cf0JDQmtCb0JXQlNCY0J3QkNCmINCS0JjQndCa0J4KK9Cf0JDQmtCj0KjQldCS0KHQmtCYINCa0JDQotCQ0KDQmNCd0JAKK9Cf0JDQmtCj0KjQldCS0KHQmtCYINCc0JjQpdCQ0IjQm9CeCivQn9CQ0JrQo9Co0JXQktCh0JrQmCDQnNCY0KLQkNCgCivQn9CQ0JrQo9Co0JXQktCh0JrQmCDQoNCj0JbQmNCm0JAKK9Cf0JDQmtCj0KjQldCS0KHQmtCY0Igg0KHQotCV0KTQkNCdCivQn9CQ0Jsg0JjQm9Ce0J3QkAor0J/QkNCbINCg0J7Ql9CQ0JvQmNCI0JAKK9Cf0JDQm9Cn0JXQmiDQiNCe0KHQmNCfCivQn9CQ0JvQkNCn0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CQ0JvQkNCn0JrQntCS0JjQiyDQo9Cg0J7QqAor0J/QkNCb0JDQqNCi0Jgg0ILQntCg0ILQlQor0J/QkNCb0JDQqNCi0Jgg0JTQldCh0JDQndCa0JAKK9Cf0JDQm9CQ0KjQotCYINCY0KjQotCS0JDQnQor0J/QkNCb0JDQqNCi0Jgg0JjQqNCi0JLQkNCdCivQn9CQ0JvQkNCo0KLQmCDQiNCe0KHQmNCfCivQn9CQ0JvQkNCo0KLQmCDQoNCe0JfQkNCb0JjQiNCQCivQn9CQ0JvQkNCU0JAg0IjQntCX0J4KK9Cf0JDQm9CQ0JvQmNCLINCC0KPQoNCQCivQn9CQ0JvQkNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQm9CQ0JvQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQm9CQ0JvQmNCLINCT0J7QiNCa0J4KK9Cf0JDQm9CQ0JvQmNCLINCT0J7QiNCa0J4KK9Cf0JDQm9CQ0JvQmNCLINCY0JvQmNCI0JAKK9Cf0JDQm9CQ0JvQmNCLINCI0J7QktCQ0J0KK9Cf0JDQm9CQ0JvQmNCLINCc0JjQoNCa0J4KK9Cf0JDQm9CQ0JvQmNCLINCd0JXQktCV0J3QkAor0J/QkNCb0JDQm9CY0Isg0J3QmNCa0J4KK9Cf0JDQm9CQ0JvQmNCLINCf0JDQktCb0JUKK9Cf0JDQm9CQ0JvQmNCLINCg0JDQlNCVCivQn9CQ0JvQkNCb0JjQiyDQodCd0JXQltCQ0J3QkAor0J/QkNCb0JDQm9CY0Isg0KHQoNCV0KLQngor0J/QkNCb0JDQm9CY0Isg0KHQotCe0IjQkNCdCivQn9CQ0JvQkNCb0JjQiyDQotCe0JTQlQor0J/QkNCb0JDQm9CY0Isg0JLQmNCUCivQn9CQ0JvQkNCb0JjQiyDQktCe0IjQmNCdCivQn9CQ0JvQkNCb0JjQiyDQl9CU0KDQkNCS0JrQngor0J/QkNCb0JDQnNCQ0KDQp9Cj0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JDQm9CQ0J0g0IjQntCh0JjQnwor0J/QkNCb0JDQndCn0JDQndCY0J0g0JXQm9CV0J3QkAor0J/QkNCb0JDQndCn0JDQndCY0J0g0IjQntCS0JDQnQor0J/QkNCb0JDQndCn0JDQndCY0J0g0KDQo9CW0JAKK9Cf0JDQm9CQ0J3Qp9CQ0J3QmNCdINCS0JDQodCQCivQn9CQ0JvQkNCd0KfQkNCd0JjQnSDQktCQ0KHQkAor0J/QkNCb0JDQndCQ0KfQmtCYINCC0J7QoNCC0JUKK9Cf0JDQm9CQ0J3QkNCn0JrQmCDQoNCj0JbQmNCm0JAKK9Cf0JDQm9CQ0J3QkNCn0JrQmCDQodCQ0JLQkAor0J/QkNCb0JDQotCY0J3Qo9CoINCQ0J3QlNCg0JDQqAor0J/QkNCb0JDQotCY0J3Qo9CoINCY0KjQotCS0JDQnQor0J/QkNCb0JDQotCY0J3Qo9CoINCI0J7QltCV0KQKK9Cf0JDQm9CV0JbQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9CQ0JvQldCS0JjQiyDQodCb0JDQktCY0KbQkAor0J/QkNCb0KTQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCb0KTQmCDQkdCe0KDQmtCQCivQn9CQ0JvQpNCYINCY0KjQotCS0JDQnQor0J/QkNCb0KTQmCDQmNCo0KLQktCQ0J0KK9Cf0JDQm9Ck0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0J/QkNCb0KTQmCDQmtCQ0KLQmNCm0JAKK9Cf0JDQm9CY0KfQmtCeINCC0KPQoNCC0JjQndCa0JAKK9Cf0JDQm9CY0KfQmtCeINCQ0J3QlNCg0JDQqAor0J/QkNCb0JjQp9Ca0J4g0JjQm9CV0KgKK9Cf0JDQm9CY0KfQmtCeINCY0KDQldCd0JAKK9Cf0JDQm9CY0KfQmtCeINCI0JXQm9CV0J3QkAor0J/QkNCb0JjQqNCQ0KjQmtCYINCe0JvQk9CQCivQn9CQ0JvQmNCLINCR0J7QoNCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JvQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCb0JjQiyDQlNCj0KjQkNCdCivQn9CQ0JvQmNCLINCJ0KPQkdCY0KbQkAor0J/QkNCb0JjQiyDQnNCQ0KDQotCQCivQn9CQ0JvQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CQ0JvQmNCLINCd0JjQmtCe0JvQkAor0J/QkNCb0JjQiyDQntCb0JPQkAor0J/QkNCb0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQm9CY0Isg0KHQotCV0JLQkNCdCivQn9CQ0JvQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0J/QkNCb0JjQndCa0JDQqCDQgtCe0KDQgtCVCivQn9CQ0JvQmNCd0JrQkNCoINCC0KPQoNCQCivQn9CQ0JvQmNCd0JrQkNCoINCR0JvQkNCd0JrQkAor0J/QkNCb0JjQndCa0JDQqCDQkdCe0KDQmNCS0J7QiNCVINCU0JjQn9CbINCY0J3Qkwor0J/QkNCb0JjQndCa0JDQqCDQpNCg0JDQitCQCivQn9CQ0JvQmNCd0JrQkNCoINCT0JXQl9CQCivQn9CQ0JvQmNCd0JrQkNCoINCI0J7QltCV0KQKK9Cf0JDQm9CY0J3QmtCQ0Kgg0JzQkNCg0JjQiNCQCivQn9CQ0JvQmNCd0JrQkNCoINCc0JjQpdCQ0IkKK9Cf0JDQm9CY0J3QmtCQ0Kgg0JzQmNCg0JrQngor0J/QkNCb0JjQndCa0JDQqCDQodCi0JXQktCQ0J0KK9Cf0JDQm9CY0J3QmtCQ0Kgg0JLQldCg0JAg0JTQoAor0J/QkNCJ0JjQiyDQidCj0JHQntCc0JjQoAor0J/QkNCJ0KPQoNCQ0KEg0JDQn9Ce0KHQotCe0JvQntChCivQn9CQ0JvQntCoINCY0JLQkNCdCivQn9CQ0JvQntCo0Jgg0J7Qm9CT0JAKK9Cf0JDQm9Ce0KYg0KjQkNCd0JTQntCgCivQn9CQ0JvQntCmINCb0JDQodCb0J4KK9Cf0JDQm9Ce0KYg0KLQmNCR0J7QoAor0J/QkNCb0J7QotCQ0Kgg0JDQndCU0KDQmNCI0JAKK9Cf0JDQm9Ce0JIg0JzQmNCl0JDQmNCb0J4g0JTQoAor0J/QkNCb0KPQoNCe0JLQmNCLINCh0KLQldCf0JDQnQor0J/QkNCc0KPQp9CY0J3QkCDQiNCe0JLQkNCdCivQn9CQ0J3Qp9CY0Isg0JPQkNCS0KDQmNCb0J4KK9Cf0JDQndCn0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQn9CQ0J3Qp9CY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0J/QkNCd0KfQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Cf0JDQndCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CQ0J3Qp9CY0Isg0JfQntCg0JDQnQor0J/QkNCd0KfQntCS0JDQnSDQkNCS0KDQkNCcCivQn9CQ0J3Qp9Cj0JvQmNCU0JfQldCSINCQ0JvQldCa0KHQmNCI0JUKK9Cf0JDQndCQ0IjQntCi0JjQlNCY0KEg0JvQldCe0J3QmNCU0JDQoQor0J/QkNCd0JDQntCi0J7QktCY0Isg0JHQntCT0JTQkNCdCivQn9CQ0J3QkNCe0KLQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QkNCd0JDQntCi0J7QktCY0Isg0IjQntCS0JjQptCQCivQn9CQ0J3QkNCe0KLQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QkNCd0KbQldCgINCR0KDQkNCd0JrQngor0J/QkNCd0KbQldCgINCR0KDQkNCd0JrQngor0J/QkNCd0I/QkCDQkdCe0JbQmNCm0JAKK9Cf0JDQndCP0JAg0JfQktCV0JfQlNCQ0J3QkAor0J/QkNCd0I/QmNCLINCd0JDQlNCQCivQn9CQ0J3Qj9CY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cf0JDQndCP0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CQ0J3Qj9CY0Isg0KLQntCc0JjQodCb0JDQkgor0J/QkNCd0I/QmNCLINCS0J7QiNCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQn9CQ0J3QlNCYINCe0KHQmtCQ0KAKK9Cf0JDQndCU0KPQoNCV0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQn9CQ0J3QlNCj0KDQntCSINCW0JjQktCa0JAKK9Cf0JDQndCU0KPQoNCe0JIg0JDQptCQCivQn9CQ0J3QlNCj0KDQntCSINCU0KDQkNCT0J7QidCj0JEKK9Cf0JDQndCU0KPQoNCe0JIg0JTQo9Co0JDQndCa0JAKK9Cf0JDQndCU0KPQoNCe0JIg0JzQmNCb0JjQptCQCivQn9CQ0J3QlNCj0KDQntCSINCc0JjQm9CY0JLQntCICivQn9CQ0J3QlNCj0KDQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JDQndCU0KPQoNCe0JIg0J/QldCi0JDQoAor0J/QkNCd0JTQo9Cg0J7QkiDQodCQ0JLQkAor0J/QkNCd0JTQo9Cg0J7QkiDQl9Ce0KDQkNCdCivQn9CQ0J3QlNCj0KDQntCSINCX0J7QoNCQ0J0KK9Cf0JDQndCU0KPQoNCe0JLQmNCLINCW0JjQktCa0JAKK9Cf0JDQndCU0KPQoNCe0JLQmNCLINCY0JLQkNCdCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQiNCj0JvQmtCQCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQn9CQ0JLQm9CVCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QkNCd0JTQo9Cg0J7QktCY0Isg0KHQoNCV0KLQldCdCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9CQ0J3QlNCj0KDQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0J/QkNCd0JTQo9Cg0J7QktCY0Isg0JLQntCI0JjQnQor0J/QkNCd0JTQo9Cg0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JDQndCT0JXQoNCmINCc0JDQoNCQCivQn9CQ0J3Qk9CV0KDQpiDQktCV0JvQmNCR0J7QoAor0J/QkNCd0JjQiyDQltCQ0KDQmtCeCivQn9CQ0J3QmNCLINCW0JjQktCQ0J0KK9Cf0JDQndCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cf0JDQndCY0Isg0ILQntCg0ILQlQor0J/QkNCd0JjQiyDQgtCe0KDQgtCVCivQn9CQ0J3QmNCLINCC0J7QoNCC0JUKK9Cf0JDQndCY0Isg0ILQntCg0ILQlQor0J/QkNCd0JjQiyDQgtCe0KDQgtCVCivQn9CQ0J3QmNCLINCC0KPQoNCQCivQn9CQ0J3QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0J3QmNCLINCQ0J3QkAor0J/QkNCd0JjQiyDQkNCd0JAKK9Cf0JDQndCY0Isg0JDQndCi0KPQnQor0J/QkNCd0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JDQndCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CQ0J3QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QkNCd0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JDQndCY0Isg0JTQkNCc0IjQkNCdCivQn9CQ0J3QmNCLINCU0JDQndCY0JvQmtCQCivQn9CQ0J3QmNCLINCU0KDQkNCT0JDQnQor0J/QkNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQndCY0Isg0JTQoNCQ0JPQkNCdCivQn9CQ0J3QmNCLINCU0KDQkNCT0JDQnQor0J/QkNCd0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQn9CQ0J3QmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0J/QkNCd0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cf0JDQndCY0Isg0JTQoNCV0J3QkAor0J/QkNCd0JjQiyDQlNCj0KjQkNCdCivQn9CQ0J3QmNCLINCU0KPQqNCQ0J0KK9Cf0JDQndCY0Isg0JPQntCg0JTQkNCd0JAKK9Cf0JDQndCY0Isg0JjQm9CY0IjQkAor0J/QkNCd0JjQiyDQmNCb0J7QndCQCivQn9CQ0J3QmNCLINCI0JDQqNCQCivQn9CQ0J3QmNCLINCI0JXQm9CV0J3QkAor0J/QkNCd0JjQiyDQiNCV0JvQldCd0JAKK9Cf0JDQndCY0Isg0IjQntCS0JDQndCa0JAg0JTQoAor0J/QkNCd0JjQiyDQiNCe0JLQkNCd0JrQkAor0J/QkNCd0JjQiyDQiNCe0JLQkNCd0JrQkAor0J/QkNCd0JjQiyDQiNCj0JvQmtCQCivQn9CQ0J3QmNCLINCa0JDQmNCm0JAKK9Cf0JDQndCY0Isg0JrQkNCi0JAKK9Cf0JDQndCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Cf0JDQndCY0Isg0InQo9CR0JjQptCQCivQn9CQ0J3QmNCLINCc0JDQoNCa0J4KK9Cf0JDQndCY0Isg0JzQmNCL0J4KK9Cf0JDQndCY0Isg0JzQmNCm0JAKK9Cf0JDQndCY0Isg0JzQmNCa0JAKK9Cf0JDQndCY0Isg0JzQmNCb0JDQndCQCivQn9CQ0J3QmNCLINCc0JjQm9CQ0J0KK9Cf0JDQndCY0Isg0JzQmNCb0JXQndCQCivQn9CQ0J3QmNCLINCc0JjQm9CV0J3QmtCeCivQn9CQ0J3QmNCLINCc0JjQm9CVCivQn9CQ0J3QmNCLINCc0JjQm9CY0KbQkAor0J/QkNCd0JjQiyDQnNCY0JvQmNCI0JAKK9Cf0JDQndCY0Isg0JzQmNCb0JjQktCe0IgKK9Cf0JDQndCY0Isg0JzQmNCb0JjQktCe0IgKK9Cf0JDQndCY0Isg0JzQmNCb0JjQktCe0IgKK9Cf0JDQndCY0Isg0JzQmNCb0J7QqAor0J/QkNCd0JjQiyDQnNCY0JvQntCoCivQn9CQ0J3QmNCLINCc0JjQm9Ce0KgKK9Cf0JDQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQndCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0JDQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JDQndCY0Isg0JzQmNCg0JrQngor0J/QkNCd0JjQiyDQnNCY0KDQmtCeCivQn9CQ0J3QmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JDQndCY0Isg0J3QkNCU0JAKK9Cf0JDQndCY0Isg0J3QkNCU0JAKK9Cf0JDQndCY0Isg0J3QkNCU0JAKK9Cf0JDQndCY0Isg0J3QldCc0JDQitCQCivQn9CQ0J3QmNCLINCd0JXQndCQ0JQKK9Cf0JDQndCY0Isg0J7QkdCg0JDQlNCY0J0KK9Cf0JDQndCY0Isg0J7Qk9CK0JXQnQor0J/QkNCd0JjQiyDQntCb0JPQkAor0J/QkNCd0JjQiyDQn9CV0KLQkNCgCivQn9CQ0J3QmNCLINCf0JXQotCQ0KAKK9Cf0JDQndCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cf0JDQndCY0Isg0KDQkNCU0JjQktCe0IjQlQor0J/QkNCd0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QkNCd0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0J3QmNCLINCg0JDQndCa0J4KK9Cf0JDQndCY0Isg0KDQmNCh0KLQngor0J/QkNCd0JjQiyDQodCQ0KjQkAor0J/QkNCd0JjQiyDQodCQ0IrQkAor0J/QkNCd0JjQiyDQodCb0JDQgtCQ0J3QkAor0J/QkNCd0JjQiyDQodCc0JjQidCQ0J3QmtCQCivQn9CQ0J3QmNCLINCh0J3QldCW0JDQndCQCivQn9CQ0J3QmNCLINCh0KDQgtCQ0J0KK9Cf0JDQndCY0Isg0KHQoNCR0J7QidCj0JEKK9Cf0JDQndCY0Isg0KHQotCQ0J3QkAor0J/QkNCd0JjQiyDQodCi0JDQndCa0JAKK9Cf0JDQndCY0Isg0KHQotCV0JLQkNCdCivQn9CQ0J3QmNCLINCh0KLQldCS0JDQnQor0J/QkNCd0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQndCY0Isg0KHQktCV0KLQntCX0JDQoAor0J/QkNCd0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9CQ0J3QmNCLINCj0JPQidCV0KjQkAor0J/QkNCd0JjQiyDQktCQ0KHQmNCJ0JrQkAor0J/QkNCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0J3QmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JDQndCY0Isg0JfQlNCg0JDQktCa0J4KK9Cf0JDQndCY0Isg0JfQm9CQ0KLQmtCeCivQn9CQ0J3QmNCLINCX0J7QoNCQ0J0KK9Cf0JDQndCY0Isg0JfQntCg0JAKK9Cf0JDQndCY0JDQnSDQkNCd0JjQptCQCivQn9CQ0J3QmNCdINCR0J7QoNCY0JLQntCI0JUKK9Cf0JDQndCY0J0g0JHQoNCQ0J3QkAor0J/QkNCd0JjQnSDQnNCY0JvQmNCm0JAKK9Cf0JDQndCY0J0g0JzQmNCb0J7QqAor0J/QkNCd0JjQnSDQnNCY0KLQkAor0J/QkNCd0JjQnSDQnNCb0JDQlNCV0J0KK9Cf0JDQndCY0J0g0JfQntCg0JDQnQor0J/QkNCd0JjQndCn0JjQiyDQodCe0KTQmNCI0JAKK9Cf0JDQitCa0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQn9CQ0IrQmtCe0JLQmNCLINCR0KDQkNCd0JrQkAor0J/QkNCK0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQitCa0J7QktCY0Isg0JjQm9CY0IjQkCDQnNCgCivQn9CQ0IrQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QkNCK0JrQntCS0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQn9CQ0IrQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JDQitCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QkNCK0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CQ0IrQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QkNCK0JrQntCS0JjQiyDQndCQ0JTQkAor0J/QkNCK0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0JDQitCa0J7QktCY0Isg0J/QldCi0JDQoAor0J/QkNCK0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0J3QmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CQ0J3QmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CQ0J3QmtCe0JIg0JHQoNCQ0J3QmtCeCivQn9CQ0J3QmtCe0JIg0IjQldCb0JXQndCQCivQn9CQ0J3QmtCe0JIg0IjQldCb0JjQptCQCivQn9CQ0J3QmtCe0JIg0JrQkNCi0JjQptCQCivQn9CQ0J3QmtCe0JIg0JzQkNCg0JrQngor0J/QkNCd0JrQntCSINCc0JjQm9CV0J3QmtCeCivQn9CQ0J3QmtCe0JIg0JzQmNCb0J7QktCQ0J0KK9Cf0JDQndCa0J7QkiDQn9Cg0JXQlNCg0JDQkwor0J/QkNCd0JrQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQndCa0J7QkiDQodCQ0JLQkAor0J/QkNCd0JrQntCSINCh0JvQkNCS0JrQngor0J/QkNCd0JrQntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JDQndCa0J7QkiDQktCV0KHQndCQCivQn9CQ0J3QmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0JDQndCe0JIg0JTQldCh0JDQndCa0JAKK9Cf0JDQndCe0JIg0J3QldCd0JDQlAor0J/QkNCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cf0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CQ0J3QotCV0JvQldCc0J7QndCe0JIg0J3QldCU0JXQidCa0J4KK9Cf0JDQndCi0JXQm9CV0JzQntCd0J7QkiDQndCe0JLQmtCQCivQn9CQ0J3QotCV0JvQmNCLINCn0JXQlNCe0JzQmNCgCivQn9CQ0J3QotCV0JvQmNCLINCW0JDQoNCa0J4KK9Cf0JDQndCi0JXQm9CY0Isg0ILQntCg0ILQlQor0J/QkNCd0KLQldCb0JjQiyDQgtCe0KDQgtCVCivQn9CQ0J3QotCV0JvQmNCLINCQ0J3QgtCV0JvQmtCeCivQn9CQ0J3QotCV0JvQmNCLINCQ0J3QkAor0J/QkNCd0KLQldCb0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQn9CQ0J3QotCV0JvQmNCLINCR0J7QoNCY0JLQntCICivQn9CQ0J3QotCV0JvQmNCLINCm0JLQldCi0JjQnQor0J/QkNCd0KLQldCb0JjQiyDQlNCQ0KTQmNCd0JAKK9Cf0JDQndCi0JXQm9CY0Isg0JTQkNCd0JjQptCQCivQn9CQ0J3QotCV0JvQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCd0KLQldCb0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQn9CQ0J3QotCV0JvQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JDQndCi0JXQm9CY0Isg0JjQm9CY0IjQkCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQndCi0JXQm9CY0Isg0JjQm9CY0IjQkAor0J/QkNCd0KLQldCb0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQn9CQ0J3QotCV0JvQmNCLINCa0JDQnNCV0J3QmtCeCivQn9CQ0J3QotCV0JvQmNCLINCb0JDQl9CQ0KAKK9Cf0JDQndCi0JXQm9CY0Isg0InQo9CR0JjQqNCQCivQn9CQ0J3QotCV0JvQmNCLINCJ0KPQkdCY0KbQkAor0J/QkNCd0KLQldCb0JjQiyDQnNCY0KXQkNCI0JvQngor0J/QkNCd0KLQldCb0JjQiyDQnNCY0JvQkNCU0JjQnQor0J/QkNCd0KLQldCb0JjQiyDQnNCY0JvQkNCdCivQn9CQ0J3QotCV0JvQmNCLINCc0JjQm9Ce0KgKK9Cf0JDQndCi0JXQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQndCi0JXQm9CY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0JDQndCi0JXQm9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JDQndCi0JXQm9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QkNCd0KLQldCb0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QkNCd0KLQldCb0JjQiyDQnNCe0JzQmNCgCivQn9CQ0J3QotCV0JvQmNCLINCd0JXQndCQ0JQKK9Cf0JDQndCi0JXQm9CY0Isg0J3QldCS0JXQndCa0JAKK9Cf0JDQndCi0JXQm9CY0Isg0J3QmNCa0J7Qm9CQCivQn9CQ0J3QotCV0JvQmNCLINCf0JDQiNCeCivQn9CQ0J3QotCV0JvQmNCLINCf0JDQktCb0JUKK9Cf0JDQndCi0JXQm9CY0Isg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQndCi0JXQm9CY0Isg0J/QldCi0JDQoAor0J/QkNCd0KLQldCb0JjQiy3Qn9CV0KLQoNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0J/QkNCd0KLQldCb0JjQiyDQodCb0JDQktCY0KbQkAor0J/QkNCd0KLQldCb0JjQiyDQodCe0KTQmNCI0JAKK9Cf0JDQndCi0JXQm9CY0Isg0JLQkNCh0JAKK9Cf0JDQndCi0JXQm9CY0Isg0JLQldCg0JAKK9Cf0JDQndCi0JXQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QkNCd0KLQldCb0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cf0JDQndCi0JXQm9CY0Isg0JLQo9CI0JjQptCQCivQn9CQ0J3QotCV0JvQmNCLLdCS0KPQmtCQ0J3QntCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQn9CQ0J3QotCV0JvQmNCLINCS0KPQmtCY0KbQkAor0J/QkNCd0KLQldCb0JjQiyDQktCj0JrQmNCm0JAKK9Cf0JDQndCi0JXQm9CY0Isg0JfQntCg0JDQnQor0J/QkNCd0KLQldCb0JjQnSDQk9CV0J7QoNCT0JjQiNCVCivQn9CQ0J3QotCV0JvQmNCd0JDQpiDQndCY0JrQntCb0JAKK9Cf0JDQndCi0JXQm9CY0J3QkNCmINCf0JDQktCb0JUKK9Cf0JDQndCi0JXQm9CY0J3QkNCmINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JDQndCi0JjQiyDQltCQ0KDQmtCeCivQn9CQ0J3QotCY0Isg0JbQmNCS0JDQnQor0J/QkNCd0KLQmNCLINCW0JjQktCa0JAKK9Cf0JDQndCi0JjQiyDQltCY0JLQntCI0JjQnQor0J/QkNCd0KLQmNCLINCW0JjQktCe0KDQkNCUCivQn9CQ0J3QotCY0Isg0ILQntCg0ILQlQor0J/QkNCd0KLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Cf0JDQndCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCd0KLQmNCLINCR0JDQotCQCivQn9CQ0J3QotCY0Isg0JHQntCT0JTQkNCdCivQn9CQ0J3QotCY0Isg0JHQntCg0JjQktCe0IjQlQor0J/QkNCd0KLQmNCLINCR0J7QodCY0InQmtCQCivQn9CQ0J3QotCY0Isg0JTQntCR0KDQmNCS0J7QiAor0J/QkNCd0KLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9Cf0JDQndCi0JjQiyDQlNCj0KjQkNCdCivQn9CQ0J3QotCY0Isg0JPQmNCX0JXQm9CQCivQn9CQ0J3QotCY0Isg0JPQktCe0JfQlNCV0J0KK9Cf0JDQndCi0JjQiyDQiNCV0JvQmNCm0JAKK9Cf0JDQndCi0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JDQndCi0JjQiyDQnNCQ0KDQmNCd0JAKK9Cf0JDQndCi0JjQiyDQnNCY0KXQkNCY0JvQngor0J/QkNCd0KLQmNCLINCc0JjQm9CQ0J0KK9Cf0JDQndCi0JjQiyDQnNCY0JvQldCd0JrQngor0J/QkNCd0KLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cf0JDQndCi0JjQiyDQnNCY0JvQmNCS0J7QiAor0J/QkNCd0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CQ0J3QotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQndCi0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCgINCb0JXQmtCQ0KAKK9Cf0JDQndCi0JjQiyDQoNCQ0JTQldCd0JrQngor0J/QkNCd0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQn9CQ0J3QotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0JDQndCi0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0J3QotCY0Isg0KDQntCX0JAKK9Cf0JDQndCi0JjQiyDQodCV0JvQmNCc0JjQoAor0J/QkNCd0KLQmNCLINCh0JXQm9CY0JzQmNCgCivQn9CQ0J3QotCY0Isg0KHQktCV0KLQntCX0JDQoAor0J/QkNCd0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0JDQndCi0JjQiyDQo9Cg0J7QqAor0J/QkNCd0KLQmNCLINCS0JXQodCd0JAKK9Cf0JDQndCi0JjQiyDQktCe0IjQmNCh0JvQkNCSINCU0KAKK9Cf0JDQndCi0JjQiyDQl9CQ0JPQntCg0JrQkAor0J/QkNCd0KLQmNCLINCX0JTQoNCQ0JLQmtCeCivQn9CQ0J3QotCe0Kgg0ILQo9Cg0J4KK9Cf0JDQndCi0J7QqCDQmtCe0JLQmNCJ0JrQkAor0J/QkNCd0KLQntCoINCf0JXQotCQ0KAKK9Cf0JDQndCi0J7QqCDQn9CV0KLQkNCgCivQn9CQ0J3QotCe0JLQmNCLINCo0IvQldCf0JDQnQor0J/QkNCd0KLQntCS0JjQiyDQltCV0InQmtCeCivQn9CQ0J3QotCe0JLQmNCLINCQ0KbQkAor0J/QkNCd0KLQntCS0JjQiyDQkdCY0InQkNCd0JAKK9Cf0JDQndCi0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CQ0J3QotCe0JLQmNCLINCU0KDQkNCT0JjQitCQCivQn9CQ0J3QotCe0JLQmNCLINCJ0KPQkdCeCivQn9CQ0J3QotCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQn9CQ0J3QotCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQn9CQ0J3QotCe0JLQmNCLINCc0JvQkNCU0JXQnQor0J/QkNCd0KLQntCS0JjQiyDQodCQ0JLQkAor0J/QkNCd0KLQntCS0JjQiyDQodCS0JXQotCe0JvQmNCaCivQn9CQ0J3QotCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQndCX0JDQm9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQn9CQ0J7Qm9Ce0J3QmCDQgtCj0JfQldCf0JjQndCQCivQn9CQ0J8g0KjQkNCd0JTQntCgCivQn9CQ0J8g0KjQkNCd0JTQntCgCivQn9CQ0J8g0KjQkNCd0JTQntCgCivQn9CQ0J8g0KjQkNCd0JTQntCgCivQn9CQ0J8g0ILQldCg0IIKK9Cf0JDQnyDQgtCj0KDQngor0J/QkNCfINCQ0J3QkAor0J/QkNCfINCU0JXQiNCQ0J0KK9Cf0JDQnyDQlNCg0JDQk9CY0KbQkAor0J/QkNCfINCV0JTQmNCiCivQn9CQ0J8g0JXQlNCY0KIKK9Cf0JDQnyDQldCd0JTQoNCVINCU0KAKK9Cf0JDQnyDQldCd0JTQoNCVCivQn9CQ0J8g0JXQoNCW0JXQkdCV0KIKK9Cf0JDQnyDQldCi0JXQm9Ca0JAKK9Cf0JDQnyDQpNCV0KDQldCd0KYKK9Cf0JDQnyDQpNCg0JDQitCQCivQn9CQ0J8g0KTQoNCQ0IrQkAor0J/QkNCfINCT0JDQkdCe0KAKK9Cf0JDQnyDQmNCo0KLQktCQ0J0g0JTQoAor0J/QkNCfINCY0KjQotCS0JDQnQor0J/QkNCfINCY0JvQldCoCivQn9CQ0J8g0JjQnNCg0JUKK9Cf0JDQnyDQmNCc0KDQlQor0J/QkNCfINCY0KDQldCd0JAKK9Cf0JDQnyDQmNCg0JXQndCQCivQn9CQ0J8g0IjQkNCK0JAKK9Cf0JDQnyDQiNCQ0J3QmtCeCivQn9CQ0J8g0IjQldCb0JXQndCQCivQn9CQ0J8g0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cf0JDQnyDQiNCe0JbQldCkINCU0KAKK9Cf0JDQnyDQiNCe0KHQmNCfCivQn9CQ0J8g0IjQntCh0JjQnwor0J/QkNCfINCI0J7QktCQ0J0KK9Cf0JDQnyDQiNCj0JvQmNCI0JDQndCQCivQn9CQ0J8g0IjQo9Cb0JjQiNCQ0J0KK9Cf0JDQnyDQiNCj0JvQmNCI0JAKK9Cf0JDQnyDQmtCQ0KLQkNCg0JjQndCQCivQn9CQ0J8g0JvQkNCh0JvQngor0J/QkNCfINCc0JDQoNCT0JjQotCQCivQn9CQ0J8g0JzQmNCl0JDQiNCb0J4KK9Cf0JDQnyDQnNCY0KXQkNCI0JvQngor0J/QkNCfINCc0JjQmtCb0J7QqAor0J/QkNCfINCc0JjQoNCe0J0KK9Cf0JDQnyDQntCb0JPQkAor0J/QkNCfINCf0JDQktCb0JUKK9Cf0JDQnyDQoNCe0JfQkNCb0JjQiNCQCivQn9CQ0J8g0KHQmNCb0JLQldCh0KLQldCgCivQn9CQ0J8g0KLQldCg0JXQl9CY0IjQkAor0J/QkNCfINCi0JjQkdCe0KAKK9Cf0JDQnyDQktCQ0JvQldCg0JjQiNCQCivQn9CQ0J8g0JLQldCg0JAKK9Cf0JDQnyDQktCY0J3QptCVCivQn9CQ0J8g0JLQm9CQ0JTQmNCh0JvQkNCSCivQn9CQ0J8g0JfQlNCV0J3QmtCQCivQn9CQ0J8g0JfQntCb0KLQkNCdCivQn9CQ0J/QqNCe0KIt0JrQntCX0JjQmiDQn9CV0J/QmAor0J/QkNCf0ILQo9Cg0JTQldChINCI0J7QktCT0JXQnQor0J/QkNCf0JDQlNCe0J/QntCb0J4g0JTQoNCQ0JPQntCh0JvQkNCSCivQn9CQ0J/QkNCU0J7Qn9Ce0JvQniDQktCI0JXQmtCe0KHQm9CQ0JIKK9Cf0JDQn9CQ0JTQntCf0KPQm9Ce0KEg0IjQkNCd0JjQoQor0J/QkNCf0JDQlNCe0J/Qo9Cb0J7QoSDQmtCe0KHQotCQ0KEKK9Cf0JDQn9CQ0JPQldCe0KDQk9CY0KIg0JrQntCh0KLQkAor0J/QkNCf0JDQmiDQlNCg0JDQk9CQ0J0KK9Cf0JDQn9CQ0KLQkNCd0JDQodCY0KMg0J3QmNCm0JAKK9Cf0JDQn9CV0Kgg0IjQntCh0JjQnwor0J/QkNCf0JXQqCDQmtCe0KHQkAor0J/QkNCf0JXQliDQmNCb0JjQndCa0JAKK9Cf0JDQn9Cl0JDQoNCl0JDQiNCYINCC0KPQoNCQCivQn9CQ0J/QpdCQ0KDQpdCQ0IjQmCDQotCV0KDQldCX0JjQiNCQCivQn9CQ0J/QpdCQ0KDQpdCQ0IjQmCDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0J/QmNCo0KLQkCDQpNCg0JDQitCQCivQn9CQ0J/QmNCo0KLQkCDQpNCg0JDQitCQCivQn9CQ0J/QmNCo0KLQkCDQmNCb0JTQmNCa0JAKK9Cf0JDQn9CY0KjQotCQINCI0J7QktCQ0J0KK9Cf0JDQn9CY0KjQotCQINCc0JDQoNCY0IjQkAor0J/QkNCf0JjQqNCi0JAg0JzQkNCg0JrQngor0J/QkNCf0JjQqNCi0JAg0JzQmNCl0JDQiNCb0J4KK9Cf0JDQn9CY0Isg0KfQldCU0J7QnNCY0KAKK9Cf0JDQn9CY0Isg0JbQmNCS0JrQngor0J/QkNCf0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCf0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCf0JjQiyDQkNCd0JAKK9Cf0JDQn9CY0Isg0JDQoNCQ0J3QmtCQCivQn9CQ0J/QmNCLINCQ0KDQkNCd0JrQkAor0J/QkNCf0JjQiyDQkNCg0JDQndCa0JAKK9Cf0JDQn9CY0Isg0JDQoNCQ0J3QmtCQCivQn9CQ0J/QmNCLINCR0J7QqNCa0J4KK9Cf0JDQn9CY0Isg0JHQntCW0JAKK9Cf0JDQn9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cf0JDQn9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CQ0J/QmNCLINCR0KDQkNCd0JrQngor0J/QkNCf0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JDQn9CY0Isg0JTQldCh0JDQndCa0JAKK9Cf0JDQn9CY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQn9CQ0J/QmNCLINCU0KPQqNCQ0J0KK9Cf0JDQn9CY0Isg0JTQo9Co0JDQnQor0J/QkNCf0JjQiyDQk9Ce0IjQmtCeCivQn9CQ0J/QmNCLINCY0JLQkNCdCivQn9CQ0J/QmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQn9CQ0J/QmNCLINCb0JDQl9CQ0KAKK9Cf0JDQn9CY0Isg0JvQldCf0J7QodCQ0JLQkAor0J/QkNCf0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JDQn9CY0Isg0JvQntCX0JjQndCa0JAKK9Cf0JDQn9CY0Isg0JvQo9Ca0JAKK9Cf0JDQn9CY0Isg0JzQkNCg0JjQiNCQCivQn9CQ0J/QmNCLINCc0JjQpdCQ0IjQm9CeCivQn9CQ0J/QmNCLINCc0JjQm9CQ0JTQmNCdCivQn9CQ0J/QmNCLINCc0JjQm9CQ0JTQmNCdCivQn9CQ0J/QmNCLINCc0JjQm9CY0KbQkAor0J/QkNCf0JjQiyDQnNCY0JvQmNCS0J7QiAor0J/QkNCf0JjQiyDQnNCY0JvQmtCQCivQn9CQ0J/QmNCLINCc0JjQm9Ce0KgKK9Cf0JDQn9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QkNCf0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQn9CQ0J/QmNCLINCd0JjQmtCe0JvQkAor0J/QkNCf0JjQiyDQn9CQ0JLQm9CVCivQn9CQ0J/QmNCLINCg0JDQlNCV0J3QmtCeCivQn9CQ0J/QmNCLINCh0JDQktCQCivQn9CQ0J/QmNCLINCh0JzQmNCJ0JAKK9Cf0JDQn9CY0Isg0KHQoNCC0JDQnSDQlNCgCivQn9CQ0J/QmNCLINCh0KDQgtCQ0J3QmtCQCivQn9CQ0J/QmNCLINCh0KLQldCS0JDQnQor0J/QkNCf0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQn9CY0Isg0KHQotCV0JLQkNCdCivQn9CQ0J/QmNCLINCh0JLQldCi0JjQodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Cf0JDQn9CY0Isg0KLQldCe0JTQntCgCivQn9CQ0J/QmNCLINCi0J7QlNCe0KAKK9Cf0JDQn9CY0Isg0JLQldCg0JAKK9Cf0JDQn9CY0Isg0JfQntCg0JjQptCQCivQn9CQ0J/QmNCLINCX0J7QoNCY0KbQkAor0J/QkNCf0JjQmiDQktCY0JrQotCe0KAKK9Cf0JDQn9CY0JvQmNCe0J0g0JHQntCg0JjQqNCa0JAKK9Cf0JDQn9Cb0JDQptCa0J4g0JLQldCb0JjQnNCY0KAKK9Cf0JDQn9Ce0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQn9CQ0J/QntCS0JjQiyDQkdCb0JDQltCeCivQn9CQ0J/QntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0J/QkNCf0J7QktCY0Isg0JrQoNCh0KLQngor0J/QkNCf0J7QktCY0Isg0JzQmNCb0JUKK9Cf0JDQn9Ce0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CQ0J/QntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cf0JDQn9Ce0JLQmNCLINCS0JXQodCV0JvQmNCdCivQn9CQ0J/QntCS0JjQiyDQktCj0JrQntCh0JDQkgor0J/QkNCf0KDQmNCLINCW0JjQktCQ0J0KK9Cf0JDQn9Cg0JjQiyDQgtCe0KDQgtCVCivQn9CQ0J/QoNCY0Isg0JzQkNCg0JrQngor0J/QkNCf0KDQmNCLINCg0JDQiNCa0J4KK9Cf0JDQn9Cj0JPQkCDQgtCj0KDQkAor0J/QkNCf0KPQk9CQINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QkNCf0KPQk9CQINCV0KPQpNCV0JzQmNCI0JAKK9Cf0JDQn9Cj0JPQkCDQmNCg0JjQndCQCivQn9CQ0J/Qo9CT0JAg0IjQkNCg0J7QodCb0JDQkgor0J/QkNCf0KPQk9CQINCa0JjQoNCY0JsKK9Cf0JDQn9Cj0JPQkCDQidCj0JHQntCc0JjQoAor0J/QkNCf0KPQk9CQINCc0JjQpdCQ0IjQm9CeCivQn9CQ0J/Qo9CT0JAg0KLQkNCi0IjQkNCd0JAKK9Cf0JDQn9Cj0JPQkCDQktCV0KDQkAor0J/QkNCf0KPQk9CQINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQn9Cj0JvQmNCdINCC0JXQoNCC0JjQmtCQCivQn9CQ0J/Qo9Cb0JjQnSDQkdCe0KDQmNCh0JvQkNCSCivQn9CQ0J/Qo9Cb0JjQnSDQlNCe0JHQoNCY0J3QkAor0J/QkNCf0KPQm9CY0J0g0KDQkNCU0J7QiNCa0JAKK9Cf0JDQoNCn0JjQiyDQndCQ0ILQkCDQlNCgCivQn9CQ0KDQkNCR0KPQi9Ch0JrQmCDQnNCY0JvQldCd0JrQngor0J/QkNCg0JDQkdCj0IvQodCa0Jgt0KHQmNCc0JjQiyDQoNCj0JbQmNCm0JAKK9Cf0JDQoNCQ0JHQo9CL0KHQmtCYINCh0JLQldCi0JjQodCb0JDQkiDQndCe0JLQmNCd0JDQoAor0J/QkNCg0JDQkdCj0KbQmtCYINCb0JDQl9CQ0KAKK9Cf0JDQoNCQ0JHQo9Cm0JrQmCDQidCY0InQkNCd0JAKK9Cf0JDQoNCQ0JMg0KHQotCV0JLQkNCdCivQn9CQ0KDQkNCd0JTQmNCb0J7QktCY0Isg0KDQntCh0JAKK9Cf0JDQoNCQ0J/QmNCUINCc0JjQoNCI0JDQndCQCivQn9CQ0KDQkNCS0JjQmyDQndCY0JrQntCb0JAKK9Cf0JDQoNCQ0JLQmNCd0JAg0IjQkNCg0JzQmNCb0JAKK9Cf0JDQoNCQ0JLQmNCd0JAg0JzQmNCb0J7QqAor0J/QkNCg0JTQntCS0JjQptCa0Jgg0KTQldCg0JXQndCmCivQn9CQ0KDQlNCe0JLQmNCm0JrQmCDQpNCg0JDQitCQCivQn9CQ0KDQlNCe0JLQmNCm0JrQmCDQnNCQ0KDQmNCI0JAKK9Cf0JDQoNCV0JbQkNCd0JjQnSDQoNCQ0JTQmNCS0J7QiAor0J/QkNCg0JXQltCQ0J3QmNCdINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JDQoNCV0JbQkNCd0JjQnSDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cf0JDQoNCl0JDQndCe0JIg0JLQmNCa0KLQntCg0JjQiNCQCivQn9CQ0KDQmNCn0JXQktCY0Isg0JXQktCQCivQn9CQ0KDQmNCLINCh0KLQmNCf0JUKK9Cf0JDQoNCY0J/QntCSINCI0JXQm9CQCivQn9CQ0KDQmNCf0J7QkiDQnNCY0JvQkNCdCivQn9CQ0KDQmNCf0J7QkiDQnNCY0JvQldCd0JrQngor0J/QkNCg0JjQn9Ce0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQn9CQ0KDQmNCf0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CQ0KDQmNCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QkNCg0JjQn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JDQoNCY0J/QntCS0JjQiyDQiNCe0JLQngor0J/QkNCg0JjQn9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQn9CQ0KDQmNCf0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0JDQoNCY0J/QntCS0JjQiyDQnNCY0JvQlQor0J/QkNCg0JjQn9Ce0JLQmNCLINCc0JjQm9Ca0JAKK9Cf0JDQoNCY0J/QntCS0JjQiyDQn9CQ0IjQkAor0J/QkNCg0JjQn9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JDQoNCY0J/QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CQ0KDQmNCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QkNCg0JjQn9Ce0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCa0JAKK9Cf0JDQoNCY0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CQ0KDQmtCQ0IrQmCDQodCQ0JzQo9CV0JsKK9Cf0JDQoNCb0JDQiyDQidCj0JHQntCc0JjQoAor0J/QkNCg0JvQkNCLINCc0JDQoNCY0J3QmtCeCivQn9CQ0KDQm9CQ0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JDQoNCb0JjQiyDQkNCd0JAKK9Cf0JDQoNCb0JjQiyDQiNCV0JLQotCQCivQn9CQ0KDQm9CY0Isg0J3QmNCa0J7Qm9CQCivQn9CQ0KDQnNCQ0Isg0J3QldCU0JXQidCa0J4KK9Cf0JDQoNCd0JjQptCa0Jgg0JjQktCQ0J0KK9Cf0JDQoNCd0JjQptCa0Jgg0IjQntCS0JDQnQor0J/QkNCg0J7QqNCa0JDQiCDQgtCj0KDQkAor0J/QkNCg0J7QqNCa0JDQiCDQlNCQ0J3QmNCb0J4KK9Cf0JDQoNCe0KjQmtCYINCC0J7QoNCC0JUKK9Cf0JDQoNCe0KjQmtCYINCC0J7QoNCC0JUKK9Cf0JDQoNCe0KjQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0KDQntCo0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCg0J7QqNCa0Jgg0JDQndCQCivQn9CQ0KDQntCo0JrQmCDQkNCd0JrQmNCm0JAKK9Cf0JDQoNCe0KjQmtCYINCR0J7QoNCY0JLQntCICivQn9CQ0KDQntCo0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JDQoNCe0KjQmtCYINCU0JDQnNCI0JDQnQor0J/QkNCg0J7QqNCa0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CQ0KDQntCo0JrQmCDQlNCe0JHQoNCY0JvQkAor0J/QkNCg0J7QqNCa0Jgg0JTQoNCQ0JPQkNCdCivQn9CQ0KDQntCo0JrQmCDQlNCj0KjQkNCdCivQn9CQ0KDQntCo0JrQmCDQk9Cb0JjQqNCQCivQn9CQ0KDQntCo0JrQmCDQk9Ce0KDQlNCQ0J0KK9Cf0JDQoNCe0KjQmtCYINCY0JLQkNCdCivQn9CQ0KDQntCo0JrQmCDQiNCV0JvQldCd0JAKK9Cf0JDQoNCe0KjQmtCYINCI0JXQm9CY0KbQkAor0J/QkNCg0J7QqNCa0Jgg0IjQntCS0JDQnQor0J/QkNCg0J7QqNCa0Jgg0JzQkNCg0JjQiNCQCivQn9CQ0KDQntCo0JrQmCDQnNCY0JvQkNCdCivQn9CQ0KDQntCo0JrQmCDQnNCY0JvQkNCdCivQn9CQ0KDQntCo0JrQmCDQnNCY0JvQkNCdCivQn9CQ0KDQntCo0JrQmCDQnNCY0JvQmNCm0JAKK9Cf0JDQoNCe0KjQmtCYINCc0JjQm9Ce0KgKK9Cf0JDQoNCe0KjQmtCYINCc0JjQm9Ce0KDQkNCUCivQn9CQ0KDQntCo0JrQmCDQnNCY0JvQntCS0JDQnQor0J/QkNCg0J7QqNCa0Jgg0JzQmNCg0JAKK9Cf0JDQoNCe0KjQmtCYINCc0JjQoNCI0JDQndCQCivQn9CQ0KDQntCo0JrQmCDQnNCY0KDQmtCeCivQn9CQ0KDQntCo0JrQmCDQndCV0KHQotCe0KAKK9Cf0JDQoNCe0KjQmtCYINCe0JHQoNCV0J0KK9Cf0JDQoNCe0KjQmtCYINCe0JvQk9CQCivQn9CQ0KDQntCo0JrQmCDQn9CV0KLQkNCgCivQn9CQ0KDQntCo0JrQmCDQn9Cj0J3QmNCo0JAKK9Cf0JDQoNCe0KjQmtCYINCg0JDQlNCc0JjQm9CQCivQn9CQ0KDQntCo0JrQmCDQoNCQ0IjQmtCeCivQn9CQ0KDQntCo0JrQmCDQoNCe0JbQkAor0J/QkNCg0J7QqNCa0Jgg0KHQkNCS0JAKK9Cf0JDQoNCe0KjQmtCYINCh0JvQkNCS0JjQptCQCivQn9CQ0KDQntCo0JrQmCDQodCe0KTQmNCI0JAKK9Cf0JDQoNCe0KjQmtCYINCh0KLQldCS0JDQnQor0J/QkNCg0J7QqNCa0Jgg0JLQldCg0J7QidCj0JEKK9Cf0JDQoNCe0KjQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQoNCe0KjQmtCYINCX0JDQk9Ce0KDQmtCQCivQn9CQ0KDQntCm0Jgg0IjQntCh0JjQnwor0J/QkNCg0J7QptCYINCI0KPQm9CY0IjQkNCd0JAKK9Cf0JDQoNCe0KbQmCDQmtCQ0KDQm9CeCivQn9CQ0KDQntCm0Jgg0InQmNCJ0JDQndCQCivQn9CQ0KDQntCm0Jgg0KLQmNCR0J7QoAor0J/QkNCg0J7QptCYINCi0JjQkdCe0KAKK9Cf0JDQoNCe0KbQmCDQotCY0JHQntCgCivQn9CQ0KDQntCI0KfQmNCLINCJ0KPQkdCY0KbQkAor0J/QkNCg0J7QiNCn0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CQ0KDQntCa0JDQmCDQnNCY0KDQmtCeCivQn9CQ0KDQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0JDQoNCj0JbQmNCLINCf0JDQndCi0JAKK9Cf0JDQoNCj0KbQmtCYINCc0JjQpdCQ0IjQm9CeCivQn9CQ0KHQkNCg0JjQiyDQoNCj0JbQkAor0J/QkNCh0JrQkNCoINCc0JjQm9CQ0J0KK9Cf0JDQodCa0JDQqCDQnNCY0JvQmtCQCivQn9CQ0KHQmtCQ0Kgg0J3QkNCi0JDQqNCQCivQn9CQ0KHQmtCQ0JvQmCDQk9Ce0KDQkNCdCivQn9CQ0KHQmtCQ0InQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCh0JrQoyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0JDQodCa0KPQm9Ce0JIg0JzQmNCg0J7QidCj0JEKK9Cf0JDQodCiINCg0J7QkdCV0KDQogor0J/QkNCh0KLQldCg0JrQniDQodCi0JXQktCQ0J0KK9Cf0JDQodCi0J7QitCY0KbQmtCYINCV0JvQldCc0JjQoAor0J/QkNCh0KLQntCgINCT0JXQl9CQCivQn9CQ0KHQotCe0KAg0IjQkNCd0J7QqAor0J/QkNCh0KLQntCgINCI0JDQndCe0KgKK9Cf0JDQodCi0J7QoCDQiNCe0KHQmNCfCivQn9CQ0KHQotCe0KAg0IjQntCh0JjQnwor0J/QkNCh0KLQntCgINCI0J7Ql9CV0KQKK9Cf0JDQodCi0J7QoCDQm9CQ0KHQm9CeCivQn9CQ0KHQotCe0KAg0JzQkNCg0JjQiNCQCivQn9CQ0KHQotCe0KAg0JzQmNCl0JDQiNCb0J4KK9Cf0JDQodCi0J7QoCDQnNCY0JvQkNCdCivQn9CQ0KHQotCe0KAg0J/QldCi0JDQoAor0J/QkNCh0KLQntCgINCh0KLQiNCV0J/QkNCdCivQn9CQ0KHQotCe0KDQndCQ0KfQmtCYINCC0KPQoNCC0JjQndCa0JAKK9Cf0JDQodCi0J7QoNCd0JDQp9Ca0Jgg0JvQkNCX0JDQoAor0J/QkNCh0KLQntCg0J3QkNCn0JrQmCDQidCj0JHQmNCo0JAKK9Cf0JDQodCi0J7QoNCd0JDQp9Ca0Jgg0JzQkNCg0JjQiNCQCivQn9CQ0KHQotCe0KDQndCQ0KfQmtCYINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQodCi0J7QoNCK0JjQptCa0Jgg0JPQntCg0JTQkNCd0JAKK9Cf0JDQotCQ0KTQotCQINCI0KPQm9CY0IjQkAor0J/QkNCi0JDQpNCi0JAg0KHQotCV0JLQkNCdCivQn9CQ0KLQkNCIINCQ0KDQkNCd0JrQkCDQlNCgCivQn9CQ0KLQkNCaINCf0JDQktCb0JUKK9Cf0JDQotCQ0JrQmCDQkNCd0JAKK9Cf0JDQotCQ0JrQmCDQldCS0JAKK9Cf0JDQotCQ0JrQmCDQk9Ce0KDQkNCdCivQn9CQ0KLQkNCg0JjQiyDQodCi0JjQn9CQ0J0KK9Cf0JDQotCQ0KDQmNCm0JAg0JXQm9CV0JzQldCgCivQn9CQ0KLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cf0JDQotCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cf0JDQotCY0Isg0KDQkNCi0JrQngor0J/QkNCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0KLQm9CV0IjQpSDQndCQ0JTQldCW0JTQkAor0J/QkNCi0KDQmNCaINCb0JDQiNCe0KgKK9Cf0JDQotCg0JjQmiDQodCi0JXQktCQ0J0KK9Cf0JDQotCg0J3QntCT0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQn9CQ0KLQoNCd0J7Qk9CY0Isg0JTQo9Co0JDQnSDQlNCgCivQn9CQ0KLQoNCd0J7Qk9CY0Isg0JTQo9Co0JjQptCQCivQn9CQ0KLQoNCd0J7Qk9CY0Isg0JvQmNCU0JjQiNCQCivQn9CQ0KPQqNCY0Isg0JjQktCQ0J0KK9Cf0JDQo9Co0JjQiyDQnNCQ0KDQmtCeCivQn9CQ0KPQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CQ0KPQmyDQmtCQ0KLQmNCm0JAKK9Cf0JDQo9CbINCb0JDQiNCe0KgKK9Cf0JDQo9CbINCb0JDQiNCe0KgKK9Cf0JDQo9CbINCe0KHQmtCQ0KAKK9Cf0JDQo9Cb0JjQiyDQnNCY0JvQlQor0J/QkNCj0JvQmNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0KPQm9CY0Jog0J/QldCg0J4KK9Cf0JDQo9Cb0JjQmiDQn9CV0KLQkNCgCivQn9CQ0KPQm9Ce0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cf0JDQo9Cd0JXQodCa0KMg0JLQkNCh0JAKK9Cf0JDQo9Cd0JjQiyDQltCY0JLQmtCeINCU0JjQn9CbINCY0J3Qkwor0J/QkNCj0J3QmNCLINCC0KPQoNCQCivQn9CQ0KPQndCY0Isg0JDQm9CY0JzQn9CY0IjQlQor0J/QkNCj0J3QmNCLINCR0KDQkNCd0JrQngor0J/QkNCj0J3QmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QkNCj0J3QmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cf0JDQo9Cd0JjQiyDQmNCb0JjQiNCQCivQn9CQ0KPQndCY0Isg0JvQkNCX0JDQoAor0J/QkNCj0J3QmNCLINCc0JjQm9CQ0J3QkAor0J/QkNCj0J3QmNCLINCc0JjQm9CV0JLQkAor0J/QkNCj0J3QmNCLINCc0JjQm9CVCivQn9CQ0KPQndCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0J/QkNCj0J3QmNCLINCi0J7QnNCQCivQn9CQ0KPQndCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cf0JDQo9Cd0JrQntCS0JjQiyDQiNCe0JLQkNCd0JAKK9Cf0JDQo9Cd0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cf0JDQo9Cd0JrQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0J/QkNCj0J3QmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQo9Cd0JrQoyDQkNCj0KDQldCb0JjQiNCQCivQn9CQ0KPQndCe0JLQmNCLINCn0JDQodCb0JDQkgor0J/QkNCj0J3QntCS0JjQiyDQkNCd0KLQngor0J/QkNCj0J3QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0JDQo9Cd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQn9CQ0KPQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0J/QkNCj0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JDQo9Cd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CQ0KPQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JDQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0J/QkNCj0J3QntCS0JjQiyDQk9Ce0KHQn9CQ0JLQkAor0J/QkNCj0J3QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0IjQntCS0JDQnQor0J/QkNCj0J3QntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQn9CQ0KPQndCe0JLQmNCLINCa0J7QktCY0InQmtCQCivQn9CQ0KPQndCe0JLQmNCLINCa0J7QktCY0InQmtCQCivQn9CQ0KPQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QkNCj0J3QntCS0JjQiyDQidCj0JHQmNCS0J7QiNCVCivQn9CQ0KPQndCe0JLQmNCLINCc0JDQoNCY0J3QkAor0J/QkNCj0J3QntCS0JjQiyDQnNCV0JvQmNCd0JTQkAor0J/QkNCj0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Cf0JDQo9Cd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQo9Cd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQo9Cd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQo9Cd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9CQ0KPQndCe0JLQmNCLINCf0JDQo9CdCivQn9CQ0KPQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JDQo9Cd0J7QktCY0Isg0KDQkNCU0J7QqAor0J/QkNCj0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0KPQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JDQo9Cd0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cf0JDQo9Cd0J7QktCY0Isg0KHQm9CQ0JLQkAor0J/QkNCj0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0J/QkNCj0J3QntCS0JjQiyDQodCg0JHQmNCm0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0J/QkNCj0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9CQ0KPQndCe0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Cf0JDQo9Cd0J7QktCY0Isg0JfQntCg0JDQnQor0J/QkNCj0J3QntCS0JjQiyDQl9CS0J7QndCa0J4KK9Cf0JDQo9CiINCc0JjQm9CQ0J0KK9Cf0JDQo9CX0JXQndCR0JXQoNCT0JXQoCDQmNCg0JXQndCQCivQn9CQ0KPQl9CV0J3QkdCV0KDQk9CV0KAg0IjQntCS0JDQnQor0J/QkNCS0JDQmCDQpNCg0JDQitCQCivQn9CQ0JLQldCb0JrQkCDQlNCQ0J3QmNCV0JvQkAor0J/QkNCS0JXQm9Ca0JAg0JLQm9CQ0JTQmNCc0JjQoAor0J/QkNCS0JjQpyDQlNCQ0J3QmNCm0JAKK9Cf0JDQktCY0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQn9CQ0JLQmNCn0JXQktCY0Isg0J3QkNCU0JAKK9Cf0JDQktCY0KfQmNCLINCU0KDQkNCT0JjQptCQCivQn9CQ0JLQmNCn0JjQiyDQmNCS0JDQnQor0J/QkNCS0JjQp9CY0Isg0JzQmNCg0JrQngor0J/QkNCS0JjQqNCY0Isg0ILQo9Cg0JAKK9Cf0JDQktCY0Isg0ILQo9Cg0J4KK9Cf0JDQktCY0Isg0JDQndCa0JAKK9Cf0JDQktCY0Isg0JDQoNCe0J0KK9Cf0JDQktCY0Isg0JHQmNCJ0JDQndCQCivQn9CQ0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQktCY0Isg0JPQkNCo0J4KK9Cf0JDQktCY0Isg0JPQntCI0JrQngor0J/QkNCS0JjQiyDQiNCe0JbQldCkCivQn9CQ0JLQmNCLINCJ0KPQkdCY0KjQkAor0J/QkNCS0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JDQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0JDQktCY0Isg0JzQkNCg0JjQiNCQCivQn9CQ0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JDQktCY0Isg0JzQmNCb0JDQnQor0J/QkNCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JDQktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CQ0JLQmNCLINCh0KLQldCS0JDQnQor0J/QkNCS0JjQiy3QodCj0JvQntCm0JrQmCDQldCh0KLQldCgCivQn9CQ0JLQmNCLINCi0JXQoNCV0JfQmNCI0JAKK9Cf0JDQktCY0Isg0JLQldCd0JrQngor0J/QkNCS0JjQiyDQktCV0KDQmtCQCivQn9CQ0JLQmNCL0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JDQktCY0IvQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCS0JjQi9CV0JLQmNCLINCQ0J3QkNCd0JjQiNCVCivQn9CQ0JLQmNCL0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CQ0JLQmNCL0JXQktCY0Isg0JTQldCh0JAKK9Cf0JDQktCY0IvQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQktCY0IvQldCS0JjQiyDQlNCj0KjQkNCdCivQn9CQ0JLQmNCL0JXQktCY0Isg0JTQo9Co0JDQnQor0J/QkNCS0JjQi9CV0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QkNCS0JjQi9CV0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QkNCS0JjQi9CV0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQn9CQ0JLQmNCL0JXQktCY0Isg0JzQmNCb0J7QqAor0J/QkNCS0JjQi9CV0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQn9CQ0JLQmNCL0JXQktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cf0JDQktCY0IvQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QkNCS0JjQi9CV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CQ0JLQmNCL0JXQktCY0Isg0JzQmNCg0JAKK9Cf0JDQktCY0IvQldCS0JjQiyDQnNCY0KDQmtCeCivQn9CQ0JLQmNCL0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CQ0JLQmNCL0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QkNCS0JjQnSDQidCj0JHQmNCm0JAKK9Cf0JDQktCa0J7QkiDQltCY0JLQmtCeCivQn9CQ0JLQmtCe0JIg0JbQmNCS0J7QiNCY0J0KK9Cf0JDQktCa0J7QkiDQgtCj0KDQgtCV0JLQmtCQCivQn9CQ0JLQmtCe0JIg0ILQo9Cg0ILQmNCd0JAKK9Cf0JDQktCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCS0JrQntCSINCQ0J3QmtCQCivQn9CQ0JLQmtCe0JIg0JHQntCW0JjQlNCQ0KAKK9Cf0JDQktCa0J7QkiDQkdCe0KHQmNCJ0JrQkAor0J/QkNCS0JrQntCSINCR0KDQkNCd0JrQngor0J/QkNCS0JrQntCSINCU0KDQkNCT0JDQnQor0J/QkNCS0JrQntCSINCU0KDQkNCT0JDQnQor0J/QkNCS0JrQntCSINCU0KPQqNCQ0J0KK9Cf0JDQktCa0J7QkiDQlNCj0KjQkNCdCivQn9CQ0JLQmtCe0JIg0JPQntCI0JrQngor0J/QkNCS0JrQntCSINCT0J7QoNCU0JDQndCQCivQn9CQ0JLQmtCe0JIg0JjQktCQ0J3QmtCQCivQn9CQ0JLQmtCe0JIg0IjQntCS0JDQnQor0J/QkNCS0JrQntCSINCI0J7QktCQ0J0KK9Cf0JDQktCa0J7QkiDQiNCe0JLQkNCdCivQn9CQ0JLQmtCe0JIg0JrQkNCi0JjQptCQCivQn9CQ0JLQmtCe0JIg0JvQkNCX0JDQoAor0J/QkNCS0JrQntCSINCc0JjQm9CQ0J0KK9Cf0JDQktCa0J7QkiDQnNCY0JvQkNCdCivQn9CQ0JLQmtCe0JIg0JzQmNCb0JDQnQor0J/QkNCS0JrQntCSINCc0JjQm9CY0JLQntCIINCU0JjQn9CbINCY0J3Qkwor0J/QkNCS0JrQntCSINCc0JjQm9Ce0KgKK9Cf0JDQktCa0J7QkiDQnNCY0JvQntCI0JUKK9Cf0JDQktCa0J7QkiDQnNCY0JvQntCg0JDQlAor0J/QkNCS0JrQntCSINCc0JjQm9Ce0KDQkNCUCivQn9CQ0JLQmtCe0JIg0JzQmNCb0KPQotCY0J0KK9Cf0JDQktCa0J7QkiDQnNCY0KLQkNCgCivQn9CQ0JLQmtCe0JIg0J3QkNCU0JAKK9Cf0JDQktCa0J7QkiDQndCQ0JTQkAor0J/QkNCS0JrQntCSINCf0JDQktCb0JUKK9Cf0JDQktCa0J7QkiDQn9CV0KLQkNCgCivQn9CQ0JLQmtCe0JIg0KDQkNCU0JjQktCe0IgKK9Cf0JDQktCa0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QkNCS0JrQntCSINCg0JDQotCe0JzQmNCgCivQn9CQ0JLQmtCe0JIg0KHQkNCS0JAKK9Cf0JDQktCa0J7QkiDQodCQ0JLQkAor0J/QkNCS0JrQntCSINCh0JjQndCY0KjQkAor0J/QkNCS0JrQntCSINCh0JvQkNCS0JrQngor0J/QkNCS0JrQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JrQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JrQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JrQntCSINCj0KDQntCoCivQn9CQ0JLQmtCe0JIg0JLQmNCi0J7QnNCY0KAKK9Cf0JDQktCa0J7QkiDQl9Ce0KDQkNCdCivQn9CQ0JLQmtCe0JIg0JfQntCg0JrQkAor0J/QkNCS0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/QkNCS0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9CQ0JLQmtCe0JLQmNCLINCU0KDQkNCT0JDQndCQCivQn9CQ0JLQmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQn9CQ0JLQmtCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQn9CQ0JLQmtCe0JLQmNCLINCa0JDQotCY0KbQkAor0J/QkNCS0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0JDQktCa0J7QktCY0Isg0J/QldCi0JDQoAor0J/QkNCS0JrQntCS0JjQiyDQoNCQ0JTQntCI0JUKK9Cf0JDQktCb0JXQmtCY0Isg0KHQotCV0JLQkNCdCivQn9CQ0JLQm9CV0KHQmtCYINCc0JXQndCa0JAKK9Cf0JDQktCb0JXQktCh0JrQmCDQlNCV0KHQkAor0J/QkNCS0JvQldCS0KHQmtCYINCi0KDQkNCI0JDQnQor0J/QkNCS0JvQmNCnINCc0JjQoNCa0J4KK9Cf0JDQktCb0JjQp9CY0Isg0JrQoNCV0KjQmNCc0JjQoAor0J/QkNCS0JvQmNCn0JjQiyDQidCj0JHQmNCo0JAg0JTQoAor0J/QkNCS0JvQmNCLINCC0J7QoNCC0JUKK9Cf0JDQktCb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9CQ0JLQm9CY0Isg0JHQoNCQ0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0J/QkNCS0JvQmNCLINCf0JXQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JLQm9CY0Isg0JLQm9CQ0JTQkAor0J/QkNCS0JvQmNCL0JXQkiDQgtCe0KDQgtCVCivQn9CQ0JLQm9CY0KbQkCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JDQktCb0JjQptCQINCI0J7QktCQ0J0KK9Cf0JDQktCb0JjQptCQINCb0JDQl9CQ0KAKK9Cf0JDQktCb0JjQptCQINCc0JDQoNCY0KbQkAor0J/QkNCS0JvQmNCm0JAg0JzQmNCm0JAKK9Cf0JDQktCb0JjQptCQINCc0JjQm9CQ0J0KK9Cf0JDQktCb0JjQptCQINCc0JjQm9CV0J3QkAor0J/QkNCS0JvQmNCm0JAg0JzQmNCb0JXQktCQCivQn9CQ0JLQm9CY0KbQkCDQndCQ0JTQkAor0J/QkNCS0JvQmNCm0JAg0J3QmNCa0J7Qm9CQCivQn9CQ0JLQm9CY0KbQkCDQndCY0JrQntCb0JAKK9Cf0JDQktCb0JjQptCQINCh0JDQktCeCivQn9CQ0JLQm9CY0KbQkCDQodCe0KTQmNCI0JAKK9Cf0JDQktCb0JjQptCQINCi0J7QlNCe0KAKK9Cf0JDQktCb0JjQptCQINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JDQktCb0JjQmiDQkNCd0KLQkNCbCivQn9CQ0JLQm9CY0Jog0IjQntCh0JjQnwor0J/QkNCS0JvQmNCaINCa0JDQotCQ0KDQmNCd0JAKK9Cf0JDQktCb0JjQmiDQnNCY0KjQkAor0J/QkNCS0JvQmNCaINCS0JjQndCa0J4KK9Cf0JDQktCb0J7QkiDQltCQ0KDQmtCeCivQn9CQ0JLQm9Ce0JIg0JbQmNCS0JDQnQor0J/QkNCS0JvQntCSINCW0JjQktCa0JAKK9Cf0JDQktCb0J7QkiDQgtCe0JrQkAor0J/QkNCS0JvQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0JLQm9Ce0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JDQktCb0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCS0JvQntCSINCR0J7Qk9CU0JDQndCa0JAKK9Cf0JDQktCb0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQn9CQ0JLQm9Ce0JIg0JTQkNCd0JjQptCQCivQn9CQ0JLQm9Ce0JIg0JTQkNCd0JjQm9CeCivQn9CQ0JLQm9Ce0JIg0JTQoNCQ0JPQmNCK0JAKK9Cf0JDQktCb0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQn9CQ0JLQm9Ce0JIg0JTQo9Co0JDQndCa0JAKK9Cf0JDQktCb0J7QkiDQlNCj0KjQkNCd0JrQkAor0J/QkNCS0JvQntCSINCU0KPQqNCQ0J0KK9Cf0JDQktCb0J7QkiDQlNCj0KjQkNCdCivQn9CQ0JLQm9Ce0JIg0IjQntCS0JDQnQor0J/QkNCS0JvQntCSINCa0JDQotCY0KbQkAor0J/QkNCS0JvQntCSLdCa0J7QodCi0JjQiyDQkNCd0JAg0JTQoAor0J/QkNCS0JvQntCSINCa0J7QktCY0InQmtCQCivQn9CQ0JLQm9Ce0JIg0JrQoNCY0KHQotCY0J3QkAor0J/QkNCS0JvQntCSINCa0KPQl9Cc0JDQnQor0J/QkNCS0JvQntCSINCb0JDQl9CQ0KAKK9Cf0JDQktCb0J7QkiDQm9CQ0JfQkNCgCivQn9CQ0JLQm9Ce0JIg0InQo9CR0JjQptCQCivQn9CQ0JLQm9Ce0JIg0InQo9CR0JjQptCQCivQn9CQ0JLQm9Ce0JIg0JzQkNCg0JjQiNCQCivQn9CQ0JLQm9Ce0JIg0JzQmNCb0JDQnQor0J/QkNCS0JvQntCSINCc0JjQm9CV0KLQkAor0J/QkNCS0JvQntCSINCc0JjQm9CY0JLQntCICivQn9CQ0JLQm9Ce0JIg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQktCb0J7QkiDQnNCY0JvQntCg0JDQlAor0J/QkNCS0JvQntCSINCc0JjQm9Ce0JLQkNCdCivQn9CQ0JLQm9Ce0JIg0JzQmNCb0J7QktCQ0J0KK9Cf0JDQktCb0J7QkiDQnNCY0JvQo9Ci0JjQnQor0J/QkNCS0JvQntCSINCc0JjQoNCQCivQn9CQ0JLQm9Ce0JIt0JzQmNCg0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAg0JTQoAor0J/QkNCS0JvQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JDQktCb0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQn9CQ0JLQm9Ce0JIg0JzQmNCi0JrQngor0J/QkNCS0JvQntCSINCd0JDQlNCQCivQn9CQ0JLQm9Ce0JIg0J3QkNCU0JAKK9Cf0JDQktCb0J7QkiDQndCQ0KLQkNCb0JjQiNCQCivQn9CQ0JLQm9Ce0JIg0J3QldCS0JXQndCa0JAKK9Cf0JDQktCb0J7QkiDQntCb0JPQkAor0J/QkNCS0JvQntCSINCf0JDQiNCQCivQn9CQ0JLQm9Ce0JIg0J/QkNCS0JXQmwor0J/QkNCS0JvQntCSINCf0JDQktCV0JsKK9Cf0JDQktCb0J7QkiDQn9CQ0JLQm9CVCivQn9CQ0JLQm9Ce0JIg0J/QldCi0JDQoAor0J/QkNCS0JvQntCSINCf0JXQotCQ0KAKK9Cf0JDQktCb0J7QkiDQoNCQ0JTQkAor0J/QkNCS0JvQntCSINCg0JDQlNCY0JLQntCICivQn9CQ0JLQm9Ce0JIg0KDQkNCU0JzQmNCb0JAKK9Cf0JDQktCb0J7QkiDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cf0JDQktCb0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQn9CQ0JLQm9Ce0JIg0KHQkNCS0JAKK9Cf0JDQktCb0J7QkiDQodCQ0JLQkAor0J/QkNCS0JvQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCSINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCSINCh0KLQntCI0JDQnQor0J/QkNCS0JvQntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JDQktCb0J7QkiDQktCQ0KHQmNCb0JjQiNCVCivQn9CQ0JLQm9Ce0JIg0JLQldCg0JAKK9Cf0JDQktCb0J7QkiDQktCV0KDQkAor0J/QkNCS0JvQntCSINCS0JXQoNCY0KbQkAor0J/QkNCS0JvQntCSINCS0JjQlNCe0KHQkNCS0JAKK9Cf0JDQktCb0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0JLQm9Ce0JIg0JLQm9CQ0KHQotCY0JzQmNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCW0JDQoNCa0J4KK9Cf0JDQktCb0J7QktCY0Ist0JbQldCd0JXQoCDQntCb0JPQkAor0J/QkNCS0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CQ0JLQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JDQktCb0J7QktCY0Isg0ILQntCg0ILQlQor0J/QkNCS0JvQntCS0JjQiyDQgtCe0KDQgtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCC0J7QoNCC0J4KK9Cf0JDQktCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoAor0J/QkNCS0JvQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QkNCS0JvQntCS0JjQiyDQkNCb0JXQmtCh0JjQiNCVCivQn9CQ0JLQm9Ce0JLQmNCLINCQ0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQkNCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9Cf0JDQktCb0J7QktCY0Isg0JDQndCY0KbQkAor0J/QkNCS0JvQntCS0JjQiyDQkNCd0JrQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cf0JDQktCb0J7QktCY0Isg0JHQm9CQ0JPQngor0J/QkNCS0JvQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/QkNCS0JvQntCS0JjQiyDQkdCe0JbQngor0J/QkNCS0JvQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9Cf0JDQktCb0J7QktCY0Isg0JHQntCg0JAKK9Cf0JDQktCb0J7QktCY0Isg0JHQntCg0JjQodCQ0JIKK9Cf0JDQktCb0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0J/QkNCS0JvQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9CQ0JLQm9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0J/QkNCS0JvQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0KbQktCV0KLQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCU0JXQiNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CQ0JLQm9Ce0JLQmNCLINCU0J7QkdCg0JjQktCe0IgKK9Cf0JDQktCb0J7QktCY0Isg0JTQntCR0KDQntCh0JvQkNCSCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JDQktCb0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9Cf0JDQktCb0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cf0JDQktCb0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cf0JDQktCb0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCU0KPQqNCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0JXQnNCY0JsKK9Cf0JDQktCb0J7QktCY0Isg0JXQoNCW0JXQkdCV0KIKK9Cf0JDQktCb0J7QktCY0Isg0JXQoNCW0JXQkdCV0KIKK9Cf0JDQktCb0J7QktCY0Isg0JPQntCI0JrQngor0J/QkNCS0JvQntCS0JjQiyDQk9Ce0KDQmNCd0JrQkAor0J/QkNCS0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Cf0JDQktCb0J7QktCY0Isg0JjQm9Ce0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQmNCb0J7QndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCY0KDQmNCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0JjQktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JLQm9Ce0JLQmNCLINCY0JLQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCI0JDQk9CeCivQn9CQ0JLQm9Ce0JLQmNCLINCI0JDQndCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0IjQkNCd0JrQngor0J/QkNCS0JvQntCS0JjQiyDQiNCQ0J3QntCoCivQn9CQ0JLQm9Ce0JLQmNCLINCI0JXQm9CQCivQn9CQ0JLQm9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0IjQldCb0JXQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0IjQntCQ0JrQmNCcCivQn9CQ0JLQm9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0IjQntCS0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0J/QkNCS0JvQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Cf0JDQktCb0J7QktCY0Isg0JrQntCS0JjQndCa0JAKK9Cf0JDQktCb0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QkNCS0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0JDQktCb0J7QktCY0Isg0InQo9CR0JjQqNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JDQk9CU0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQkNCg0JAg0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JDQoNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JDQoNCY0KbQkAor0J/QkNCS0JvQntCS0JjQiyDQnNCQ0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0J/QkNCS0JvQntCS0JjQiyDQnNCQ0KDQmtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQptCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JUKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JUKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JjQptCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCJ0JDQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9Ca0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0JrQkAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQntCI0JUKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0J7QiNCVCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUINCU0KAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCb0J7QodCQ0JLQkAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QkNCS0JvQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QkNCS0JvQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QkNCS0JvQntCS0JjQiyDQnNCY0KDQkAor0J/QkNCS0JvQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkCDQlNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQoNCa0J4g0JTQmNCf0Jsg0J7QldCmCivQn9CQ0JLQm9Ce0JLQmNCLINCc0JjQoNCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCg0JrQngor0J/QkNCS0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Cf0JDQktCb0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QkNCS0JvQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QkNCS0JvQntCS0JjQiyDQndCQ0JTQkCDQlNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JDQlNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JDQlNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JXQlNCV0InQmtCQCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JXQlNCV0InQmtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JXQnNCQ0IrQkAor0J/QkNCS0JvQntCS0JjQiyDQndCV0JzQkNCK0JAKK9Cf0JDQktCb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QkNCS0JvQntCS0JjQiyDQndCY0JrQntCb0JjQptCQCivQn9CQ0JLQm9Ce0JLQmNCLINCd0JjQndCQCivQn9CQ0JLQm9Ce0JLQmNCLINCd0J7QktCQ0JoKK9Cf0JDQktCb0J7QktCY0Isg0J7Qm9CT0JAKK9Cf0JDQktCb0J7QktCY0Isg0J7Qm9CT0JAKK9Cf0JDQktCb0J7QktCY0Isg0J7Qm9CT0JAKK9Cf0JDQktCb0J7QktCY0Isg0J7Qm9CT0JAKK9Cf0JDQktCb0J7QktCY0Isg0J/QkNCS0JvQlQor0J/QkNCS0JvQntCS0JjQiyDQn9CQ0JLQm9CVCivQn9CQ0JLQm9Ce0JLQmNCLINCf0JXQgtCQCivQn9CQ0JLQm9Ce0JLQmNCLINCf0JXQoNCeCivQn9CQ0JLQm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JDQktCb0J7QktCY0Isg0J/QldCi0JDQoAor0J/QkNCS0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCf0JvQldCc0JXQndCa0JAKK9Cf0JDQktCb0J7QktCY0Ist0J/QntCf0J7QktCY0Isg0JfQntCg0JAg0JTQoCDQm9CV0JrQkNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCf0KDQldCU0KDQkNCTCivQn9CQ0JLQm9Ce0JLQmNCLINCf0KDQldCU0KDQkNCTCivQn9CQ0JLQm9Ce0JLQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0JzQmNCb0J4g0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JLQm9Ce0JLQmNCLINCg0JDQlNCc0JjQm9CeCivQn9CQ0JLQm9Ce0JLQmNCLINCg0JDQlNCe0IjQlQor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0JTQntCc0JjQoCDQlNCY0J/QmyDQntCV0KYKK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQn9CQ0JLQm9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCdINCU0KAg0JLQldCi0JXQoNCY0J3QlQor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQoNCQ0IjQmtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCg0JDQndCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0KDQkNCi0JrQngor0J/QkNCS0JvQntCS0JjQiyDQodCQ0JLQkAor0J/QkNCS0JvQntCS0JjQiyDQodCQ0JLQngor0J/QkNCS0JvQntCS0JjQiyDQodCY0JzQkAor0J/QkNCS0JvQntCS0JjQiyDQodCY0JzQldCe0J0KK9Cf0JDQktCb0J7QktCY0Isg0KHQmNCc0JXQntCdCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JjQndCY0KjQkAor0J/QkNCS0JvQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0J/QkNCS0JvQntCS0JjQiyDQodCb0JDQktCa0J4g0JTQmNCf0Jsg0JjQndCTCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JvQkNCS0JrQngor0J/QkNCS0JvQntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQoAor0J/QkNCS0JvQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQodCc0JjQidCQCivQn9CQ0JLQm9Ce0JLQmNCLINCh0KLQkNCd0JAKK9Cf0JDQktCb0J7QktCY0Isg0KHQotCQ0J3QmNCa0JAKK9Cf0JDQktCb0J7QktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQn9CQ0JLQm9Ce0JLQmNCLINCh0KLQldCS0JDQndCa0JAKK9Cf0JDQktCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQodCi0IjQldCf0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0KHQotCe0IjQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0J/QkNCS0JvQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCi0J7QqNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCi0J7QnNCQCivQn9CQ0JLQm9Ce0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIg0JTQoAor0J/QkNCS0JvQntCS0JjQiyDQktCV0JvQmNCX0JDQoAor0J/QkNCS0JvQntCS0JjQiyDQktCV0KDQkAor0J/QkNCS0JvQntCS0JjQiyDQktCV0KDQkAor0J/QkNCS0JvQntCS0JjQiyDQktCV0KDQkAor0J/QkNCS0JvQntCS0JjQiyDQktCY0JTQkAor0J/QkNCS0JvQntCS0JjQiyDQktCY0JTQntCh0JDQktCQCivQn9CQ0JLQm9Ce0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cf0JDQktCb0J7QktCY0Isg0JLQmNCU0J7QodCb0JDQkgor0J/QkNCS0JvQntCS0JjQiyDQktCY0KLQntCc0JjQoAor0J/QkNCS0JvQntCS0JjQiyDQktCY0KLQntCc0JjQoAor0J/QkNCS0JvQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CQ0JLQm9Ce0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JDQktCb0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cf0JDQktCb0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9Cf0JDQktCb0J7QktCY0Isg0JfQntCg0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CQ0JLQm9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0JDQktCb0J7QktCY0Isg0JfQntCg0JDQnQor0J/QkNCS0JvQntCS0JjQiyDQl9Ce0KDQkAor0J/QkNCS0JvQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cf0JDQktCb0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0J/QkNCS0JvQntCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CQ0JLQm9Ce0JLQodCa0Jgg0JzQkNCg0JjQiNCQCivQn9CQ0JLQm9Ce0JLQodCa0Jgg0KHQldCg0JPQldCICivQn9CQ0JLQntCo0JXQktCY0Isg0JDQndCa0JAKK9Cf0JDQktCe0KjQldCS0JjQiyDQoNCe0JTQntCJ0KPQkQor0J/QkNCX0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9Cf0JDQl9Cc0JDQiiDQiNCj0JvQmNCI0JDQndCQCivQn9CV0KfQkNCg0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0JXQp9CYINCT0JXQl9CQCivQn9CV0KfQmCDQmNCo0KLQktCQ0J0KK9Cf0JXQp9CYINCc0JDQoNCY0IjQkAor0J/QldCn0JrQkNCYLdCa0J7QktCQ0Kcg0JDQndCQCivQn9CV0KfQmtCQ0Jgg0JzQkNCg0JPQmNCi0JAKK9Cf0JXQp9CS0JDQoNCQ0KYg0KHQotCQ0J3QntCI0JUKK9Cf0JXQqNCV0IrQkNCd0KHQmtCYINCY0JLQkNCdCivQn9CV0KjQldCK0JDQndCh0JrQmCDQmNCS0JDQnQor0J/QldCo0JXQitCQ0J3QodCa0Jgg0JrQkNCg0JvQngor0J/QldCo0JXQktCY0Isg0JHQntCT0JTQkNCdCivQn9CV0KjQldCS0KHQmtCYINCC0J7QmtCQCivQn9CV0KjQldCS0KHQmtCYINCi0J7QnNCVCivQn9CV0KjQldCS0KHQmtCYINCS0JvQkNCU0J4KK9Cf0JXQqNCY0Isg0JbQmNCS0JDQnQor0J/QldCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QldCo0JjQiyDQkNCd0ILQldCb0JrQngor0J/QldCo0JjQiyDQkdCj0JTQmNCc0JjQoAor0J/QldCo0JjQiyDQlNCV0KHQmNCc0JjQoAor0J/QldCo0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0JXQqNCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CV0KjQmNCLINCU0KDQkNCT0JDQnQor0J/QldCo0JjQiyDQlNCg0JDQk9CY0KbQkAor0J/QldCo0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQn9CV0KjQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JXQqNCY0Isg0JPQntCI0JrQngor0J/QldCo0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQn9CV0KjQmNCLINCY0JvQmNCI0JAKK9Cf0JXQqNCY0Isg0IjQntCg0JTQkNCdCivQn9CV0KjQmNCLINCI0J7QktCQ0J0KK9Cf0JXQqNCY0Isg0InQo9CR0JjQptCQCivQn9CV0KjQmNCLINCc0JjQm9CQ0JTQmNCdCivQn9CV0KjQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQqNCY0Isg0JzQmNCb0JjQndCa0J4KK9Cf0JXQqNCY0Isg0JzQmNCb0KPQotCY0J0KK9Cf0JXQqNCY0Isg0JzQmNCb0KPQotCY0J0KK9Cf0JXQqNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QldCo0JjQiyDQn9CV0KLQkNCgCivQn9CV0KjQmNCLINCg0JDQlNCc0JjQm9CQCivQn9CV0KjQmNCLINCg0JDQiNCa0J4KK9Cf0JXQqNCY0Isg0KDQo9CW0JAKK9Cf0JXQqNCY0Isg0KHQkNCS0JAKK9Cf0JXQqNCY0Isg0KHQotCQ0J3QntCI0JUKK9Cf0JXQqNCY0Isg0KHQotCV0JLQkNCdINCU0KAKK9Cf0JXQqNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QldCo0JjQiyDQktCj0JrQkNCo0JjQnQor0J/QldCo0JjQmtCQ0J0g0KLQmNCl0J7QnNCY0KAKK9Cf0JXQqNCY0JrQkNCdINCS0KPQmgor0J/QldCo0JrQkCDQkNCd0JAKK9Cf0JXQqNCa0JDQnSDQlNCg0JDQk9CQ0J0KK9Cf0JXQqNCa0JDQnSDQktCV0KDQkAor0J/QldCo0JrQkNCd0J7QkiDQnNCY0JvQntCg0JDQlAor0J/QldCo0JrQkNCd0J7QkiDQn9CV0KDQodCY0JTQkAor0J/QldCo0JrQkNCd0J7QkiDQodCi0JXQktCQ0J0KK9Cf0JXQqNCa0JDQndCe0JIg0KLQntCU0J7QoAor0J/QldCo0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0J/QldCo0J7QktCY0Isg0KHQotCe0IjQkNCdCivQn9CV0KjQotCQ0JvQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQn9CV0KjQotCV0KDQkNCmINCn0JXQlNCe0JzQmNCgCivQn9CV0KjQotCV0KDQkNCmINCc0JjQm9Ce0JzQmNCgCivQn9CV0KjQotCV0KDQkNCmINCc0JjQm9Cj0KLQmNCdCivQn9CV0KjQotCYINCI0J7QltCV0KQKK9Cf0JXQqNCj0KIg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Cf0JXQqNCj0KIg0JHQntCo0JrQngor0J/QldCo0KPQoiDQkdCg0JDQndCa0J4KK9Cf0JXQqNCj0KIg0JTQo9Co0JDQnQor0J/QldCo0KPQoiDQlNCj0KjQkNCdCivQn9CV0KjQo9CiINCY0JvQmNCI0JAKK9Cf0JXQqNCj0KIg0JzQkNCg0JjQiNCQCivQn9CV0KjQo9CiINCc0JjQm9CQ0J0KK9Cf0JXQqNCj0KIg0JzQmNCb0JjQptCQCivQn9CV0KjQo9CiINCh0JvQkNCS0JrQkAor0J/QldCo0KPQoiDQodCc0JjQidCQCivQn9CV0KjQo9CiINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JXQi9CQ0J3QkNCmINCR0J7QodCY0InQmtCQCivQn9CV0IvQkNCd0JDQpiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0JXQi9CQ0J3QkNCmINCI0J7QktCQ0J0KK9Cf0JXQi9CQ0J3QkNCmINCd0JjQmtCe0JvQkAor0J/QldCL0JDQndCQ0KYg0JLQldCh0J3QkAor0J/QldCL0JDQndCY0J0g0JTQo9Co0JDQnQor0J/QldCL0JDQndCY0J0g0InQo9CR0JjQqNCQINCU0JjQn9CbINCY0J3Qkwor0J/QldCL0JDQndCY0J0g0JzQmNCg0J7QodCb0JDQktCQCivQn9CV0IvQkNCd0JjQnSDQntCc0JjQidCV0J0KK9Cf0JXQi9CQ0J3QmNCdLdCS0JXQoNCc0JXQl9Ce0JLQmNCLINCe0InQkAor0J/QldCL0JrQniDQlNCQ0J3QmNCb0J4KK9Cf0JXQi9Ca0J4g0JLQldCg0JAKK9Cf0JXQi9CeINCb0JDQl9CQ0KAKK9Cf0JXQi9CeINCb0KPQmtCQCivQn9CV0IvQniDQodCS0JXQotCe0JfQkNCgCivQn9CV0KYg0IjQo9Cb0JjQiNCVCivQn9CV0KbQkNCg0KHQmtCYINCb0JXQmtCh0JAKK9Cf0JXQptCVINCC0J7QoNCC0JUKK9Cf0JXQptCVINCC0J7QoNCC0JUKK9Cf0JXQptCVINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KbQlSDQkNCd0KLQntCdCivQn9CV0KbQlSDQmNCb0JXQqAor0J/QldCm0JUg0JfQntCb0KLQkNCdCivQn9CV0KbQldCJINCR0J7QltCeCivQn9CV0KbQldCJINCh0KLQldCS0JDQnQor0J/QldCm0JjQiyDQkNCm0JAKK9Cf0JXQptCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0J/QldCm0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QldCm0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQptCK0JjQmiDQkNCd0JAKK9Cf0JXQptCeINCc0JjQoNCh0JDQlAor0J/QldCm0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0JXQlNCe0JLQmNCLINCg0JDQotCe0JzQmNCgCivQn9CV0JjQiy3QotCj0JrQo9CJ0JDQpiDQktCI0JXQmtCe0KHQm9CQ0JIKK9Cf0JXQiNCn0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/QldCI0KfQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0J/QldCI0KfQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0J/QldCI0KfQmNCLINCU0J7QkdCg0JjQktCe0IgKK9Cf0JXQiNCn0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQn9CV0IjQp9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0J/QldCI0KfQmNCLINCU0KPQqNCQ0J3QmtCQCivQn9CV0IjQp9CY0Isg0JTQo9CR0KDQkNCS0JrQkAor0J/QldCI0KfQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Cf0JXQiNCn0JjQiyDQmNCb0JjQiNCQCivQn9CV0IjQp9CY0Isg0JjQm9CY0IjQkAor0J/QldCI0KfQmNCLINCI0JDQodCc0JjQndCQCivQn9CV0IjQp9CY0Isg0IjQntCS0JDQnQor0J/QldCI0KfQmNCLINCI0J7QktCQ0J0KK9Cf0JXQiNCn0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JXQiNCn0JjQiyDQidCj0JHQntCc0JjQoAor0J/QldCI0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CV0IjQp9CY0Isg0JzQmNCb0JUKK9Cf0JXQiNCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QldCI0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JXQiNCn0JjQiyDQnNCY0KLQkNCgCivQn9CV0IjQp9CY0Isg0JzQntCc0KfQmNCb0J4KK9Cf0JXQiNCn0JjQiyDQndCe0JLQkNCaCivQn9CV0IjQp9CY0Isg0J/QldCi0JDQoAor0J/QldCI0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0J/QldCI0KfQmNCLINCg0KPQltCQCivQn9CV0IjQp9CY0Isg0KHQkNCS0JAKK9Cf0JXQiNCn0JjQiyDQodCQ0JLQkAor0J/QldCI0KfQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0J/QldCI0KfQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JXQiNCn0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQn9CV0IjQp9CY0Isg0JfQntCg0JDQnQor0J/QldCI0JDQmiDQgtCe0KDQgtCVCivQn9CV0IjQkNCaINCC0KPQoNCQCivQn9CV0IjQkNCaINCR0KDQkNCd0JrQngor0J/QldCI0JDQmiDQlNCg0JDQk9Ce0KHQm9CQ0JLQkAor0J/QldCI0JDQmiDQiNCV0JvQldCd0JAKK9Cf0JXQiNCQ0Jog0IjQntCS0JDQnQor0J/QldCI0JDQmiDQiNCe0JLQmNCm0JAKK9Cf0JXQiNCQ0Jog0JvQkNCX0JDQoAor0J/QldCI0JDQmiDQidCj0JHQmNCm0JAKK9Cf0JXQiNCQ0Jog0JzQmNCb0JDQnQor0J/QldCI0JDQmiDQnNCY0JvQmNCd0JrQkAor0J/QldCI0JDQmiDQnNCY0J7QlNCg0JDQkwor0J/QldCI0JDQmiDQnNCY0KDQiNCQ0J3QkAor0J/QldCI0JDQmiDQnNCe0IjQkAor0J/QldCI0JDQmiDQndCV0JLQldCd0JrQkAor0J/QldCI0JDQmiDQoNCQ0JTQntCS0JDQnQor0J/QldCI0JDQmiDQoNCQ0IjQmtCeCivQn9CV0IjQkNCaINCh0JDQktCQCivQn9CV0IjQkNCaINCh0JvQkNCS0JrQngor0J/QldCI0JDQmiDQotCg0JjQktCQCivQn9CV0IjQkNCaINCS0JXQoNCY0KbQkAor0J/QldCI0JDQmiDQktCb0JDQlNCY0JzQmNCgCivQn9CV0IjQkNCa0JjQiyDQnNCQ0KDQmtCeCivQn9CV0IjQkNCa0J7QktCY0Isg0JbQkNCg0JrQngor0J/QldCI0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQiNCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0IjQkNCa0J7QktCY0Isg0JjQm9CY0IjQkAor0J/QldCI0JDQmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CV0IjQkNCa0J7QktCY0Isg0J3QkNCd0JTQntCgCivQn9CV0IjQkNCa0J7QktCY0Isg0J3QldCd0JDQlAor0J/QldCI0JDQmtCe0JLQmNCLINCf0JXQoNCY0KbQkAor0J/QldCI0JDQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQiNCQ0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J/QldCI0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQiNCQ0J3QntCS0JjQiyDQkNCd0ILQldCb0JrQngor0J/QldCI0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0J/QldCI0JDQndCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QldCI0JDQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cf0JXQiNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnSDQlNCgCivQn9CV0IjQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0J/QldCI0JjQp9CY0Isg0JzQmNCb0JDQnQor0J/QldCI0JjQiyDQltCY0JLQkNCdCivQn9CV0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0IjQmNCLINCQ0J3QmNCm0JAKK9Cf0JXQiNCY0Isg0JDQndCi0J7QnQor0J/QldCI0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQn9CV0IjQmNCLINCR0J7QoNCY0JLQntCICivQn9CV0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQiNCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0IjQmNCLINCU0KDQkNCT0JDQnQor0J/QldCI0JjQiyDQlNCg0JDQk9CY0KjQkAor0J/QldCI0JjQiyDQlNCg0JDQk9CY0KbQkAor0J/QldCI0JjQiyDQlNCg0JDQk9CeCivQn9CV0IjQmNCLINCU0KDQkNCT0J4KK9Cf0JXQiNCY0Isg0JTQo9Co0JDQnQor0J/QldCI0JjQiyDQlNCj0KjQkNCdCivQn9CV0IjQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQiNCY0Isg0JPQkNCS0KDQkAor0J/QldCI0JjQiyDQmNCS0JDQnQor0J/QldCI0JjQiyDQmNCS0JDQnQor0J/QldCI0JjQiyDQiNCQ0IrQkAor0J/QldCI0JjQiyDQiNCe0JLQkNCdCivQn9CV0IjQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9CV0IjQmNCLINCc0JDQoNCQCivQn9CV0IjQmNCLINCc0JjQpdCQ0IjQm9CeCivQn9CV0IjQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQiNCY0Isg0JzQmNCb0JDQnQor0J/QldCI0JjQiyDQnNCY0JvQkNCdCivQn9CV0IjQmNCLINCc0JjQm9CV0J3QmtCeCivQn9CV0IjQmNCLINCc0JjQm9CY0KbQkAor0J/QldCI0JjQiyDQnNCY0JvQntCoCivQn9CV0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0IjQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0IjQmNCLINCc0JjQm9Ce0KHQkNCSCivQn9CV0IjQmNCLINCd0JXQlNCV0InQmtCeCivQn9CV0IjQmNCLINCd0JjQmtCe0JvQkAor0J/QldCI0JjQiyDQndCY0JrQngor0J/QldCI0JjQiyDQndCe0JLQkNCaCivQn9CV0IjQmNCLINCe0KDQiNCV0J0KK9Cf0JXQiNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cf0JXQiNCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cf0JXQiNCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cf0JXQiNCY0Isg0KDQkNCI0JrQngor0J/QldCI0JjQiyDQoNCj0JbQmNCm0JAKK9Cf0JXQiNCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cf0JXQiNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0IjQmNCLINCh0J7QpNCY0IjQkAor0J/QldCI0JjQiyDQodCi0JDQndCa0J4KK9Cf0JXQiNCY0Isg0KHQotCV0JLQkNCdCivQn9CV0IjQmNCLINCh0KLQmNCf0JDQnQor0J/QldCI0JjQiyDQktCV0KDQmNCm0JAKK9Cf0JXQiNCY0Isg0JLQm9CQ0JTQngor0J/QldCI0JjQnSDQgtCe0KDQgtCVCivQn9CV0IjQmNCdINCC0KPQoNCC0JjQndCQCivQn9CV0IjQmNCdINCQ0J3QgtCV0JvQmtCQCivQn9CV0IjQmNCdINCR0KDQkNCd0JjQnNCY0KAKK9Cf0JXQiNCY0J0g0JHQoNCQ0J3QmNCc0JjQoAor0J/QldCI0JjQnSDQkdCg0JDQndCY0JzQmNCgCivQn9CV0IjQmNCdINCU0JXQiNCQ0J0KK9Cf0JXQiNCY0J0g0JTQmNCc0JjQotCg0JjQiNCVCivQn9CV0IjQmNCdINCU0KPQqNCQ0J0g0JTQoAor0J/QldCI0JjQnSDQk9Ce0IjQmtCeCivQn9CV0IjQmNCdINCI0JXQm9CV0J3QkAor0J/QldCI0JjQnSDQiNCe0JLQkNCdCivQn9CV0IjQmNCdINCb0JDQl9CQ0KAg0JTQmNCf0Jsg0J7QldCmCivQn9CV0IjQmNCdINCc0JDQoNCY0IjQkAor0J/QldCI0JjQnSDQnNCQ0KDQmNCi0JAKK9Cf0JXQiNCY0J0g0JzQmNCb0JjQktCe0IgKK9Cf0JXQiNCY0J0g0JzQmNCb0J7QqAor0J/QldCI0JjQnSDQnNCY0JvQntCg0JDQlAor0J/QldCI0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQn9CV0IjQmNCdINCc0JvQkNCU0JXQnQor0J/QldCI0JjQnSDQndCV0J3QkNCUCivQn9CV0IjQmNCdINCd0JjQmtCe0JvQkAor0J/QldCI0JjQnSDQndCY0JrQntCb0JAKK9Cf0JXQiNCY0J0g0J3QmNCa0J7Qm9CQCivQn9CV0IjQmNCdINCd0J7QktCQ0JoKK9Cf0JXQiNCY0J0g0J/QkNCS0JvQlQor0J/QldCI0JjQnSDQn9CV0KDQodCY0JTQkAor0J/QldCI0JjQnSDQn9Cb0JDQktCo0JAKK9Cf0JXQiNCY0J0g0KDQkNCU0JAKK9Cf0JXQiNCY0J0g0KDQkNCU0JAKK9Cf0JXQiNCY0J0g0KDQkNCU0J7QodCb0JDQkgor0J/QldCI0JjQnSDQodCi0JXQktCQ0J0KK9Cf0JXQiNCY0J0g0KHQotCV0JLQkNCdCivQn9CV0IjQmNCdINCS0JDQodCQCivQn9CV0IjQmNCdINCS0JXQoNCY0KbQkAor0J/QldCI0JjQnSDQktCj0JrQntCh0JDQktCQCivQn9CV0IjQmNCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQiNCY0J3QntCSINCJ0KPQkdCY0KbQkAor0J/QldCI0JjQndCe0JIg0JLQldCJ0JrQngor0J/QldCI0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCI0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QldCI0JrQntCS0JjQiyDQlNCQ0J3QmNCb0JrQkAor0J/QldCI0JrQntCS0JjQiyDQmNCR0J7QidCa0JAKK9Cf0JXQiNCa0J7QktCY0Isg0JjQktCQ0J0KK9Cf0JXQiNCa0J7QktCY0Isg0IjQkNCh0J3QkAor0J/QldCI0J3QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0J/QldCI0J3QntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0J/QldCI0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0IjQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JXQiNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9CV0IjQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0J/QldCI0J7QktCY0Isg0ILQntCa0JAKK9Cf0JXQiNCe0JLQmNCLINCC0KPQmtCQ0J0KK9Cf0JXQiNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0IjQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QldCI0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cf0JXQiNCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JXQiNCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cf0JXQiNCe0JLQmNCLINCR0J7QoNCa0JAKK9Cf0JXQiNCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQn9CV0IjQntCS0JjQiyDQkdCg0JDQndCa0JAKK9Cf0JXQiNCe0JLQmNCLINCU0JDQndCY0KbQkAor0J/QldCI0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQn9CV0IjQntCS0JjQiyDQlNCQ0JLQmNCUCivQn9CV0IjQntCS0JjQiyDQlNCV0IjQkNCdCivQn9CV0IjQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0J/QldCI0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cf0JXQiNCe0JLQmNCLINCJ0KPQkdCeCivQn9CV0IjQntCS0JjQiyDQnNCQ0KDQmtCeCivQn9CV0IjQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0IjQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cf0JXQiNCe0JLQmNCLINCc0JjQm9CV0J3QkAor0J/QldCI0J7QktCY0Isg0JzQmNCb0JjQiNCQCivQn9CV0IjQntCS0JjQiyDQnNCY0JvQntCI0JrQkAor0J/QldCI0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQiNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CV0IjQntCS0JjQiyDQnNCe0JzQmNCgCivQn9CV0IjQntCS0JjQiyDQndCQ0JTQkAor0J/QldCI0J7QktCY0Isg0J7Qm9CT0JAKK9Cf0JXQiNCe0JLQmNCLINCf0JDQktCb0JUKK9Cf0JXQiNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQiNCe0JLQmNCLINCh0JDQktCQCivQn9CV0IjQntCS0JjQiyDQodCb0JDQktCa0JAKK9Cf0JXQiNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQn9CV0IjQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0IjQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9CV0IjQntCS0KHQmtCYINCU0KDQkNCT0JDQnQor0J/QldCI0J7QktCh0JrQmCDQmtCe0JvQlQor0J/QldCI0J7QktCh0JrQmCDQotCe0JzQmNCh0JvQkNCSCivQn9CV0JrQkNCgINCU0JDQoNCa0J4KK9Cf0JXQmtCQ0KAg0IjQkNCd0J7QqAor0J/QldCa0JDQoCDQnNCY0JvQmtCQCivQn9CV0JrQkNCgINCg0J7Ql9CQ0JvQmNCI0JAKK9Cf0JXQmtCQ0KDQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0J/QldCa0JDQoSDQkNCd0KLQlQor0J/QldCa0JXQpyDQnNCY0KLQkAor0J/QldCa0JXQlyDQkdCg0JDQndCa0J4KK9Cf0JXQmtCV0Jcg0IjQntCS0JDQnQor0J/QldCa0JXQlyDQiNCe0JLQkNCdCivQn9CV0JrQldCXINCc0JDQoNCY0KbQkAor0J/QldCa0JXQlyDQnNCY0JvQntCg0JDQlAor0J/QldCa0JXQlyDQodCi0JDQndCQCivQn9CV0JrQldCXINCX0J7QoNCQCivQn9CV0JrQmNCLINCR0KDQkNCd0JjQodCb0JDQkiDQlNCgCivQn9CV0JrQmNCLINCT0J7QoNCQ0J0KK9Cf0JXQmtCY0Isg0JrQoNCh0KLQngor0J/QldCa0JjQiyDQnNCY0KXQkNCI0JvQngor0J/QldCa0JjQiyDQnNCY0JvQkNCdCivQn9CV0JrQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQmtCY0Isg0JzQmNCb0J7QqAor0J/QldCa0JjQiyDQnNCY0KDQmtCeCivQn9CV0JrQmNCLINCh0KLQldCS0JDQnQor0J/QldCa0J7QktCY0Isg0JbQldCJ0JrQngor0J/QldCa0J7QktCY0Isg0JjQm9CY0IjQkAor0J/QldCa0J7QktCY0Isg0JzQkNCT0JTQkNCb0JXQndCQCivQn9CV0JrQntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQn9CV0JrQntCS0JjQiyDQnNCY0KLQoNCj0KjQkAor0J/QldCa0J7QktCY0Ist0J/QkNCg0JvQkNCLINCh0JzQmNCJ0JAg0JTQoAor0J/QldCa0J7QktCY0Isg0J/QkNCS0JAKK9Cf0JXQmtCe0JLQmNCLINCS0JXQoNCQCivQn9CV0JrQntCS0JjQiyDQktCY0JTQkAor0J/QldCa0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Cf0JXQmtCj0KDQkNCgINCa0J7QoNCd0JXQmwor0J/QldCa0KPQoNCQ0KAg0KDQntCc0JDQnQor0J/QldCb0JDQk9CY0Isg0J3QkNCU0JAKK9Cf0JXQm9CQ0JPQmNCLINCh0KDQgtCQ0J0KK9Cf0JXQm9CVINCk0JXQoNCV0J3Qpgor0J/QldCb0JUg0JzQkNCg0JjQiNCQCivQn9CV0JvQlSDQl9Ce0JvQotCQ0J0KK9Cf0JXQm9CV0JPQoNCY0J0g0KHQotCI0JXQn9CQ0J0KK9Cf0JXQm9CV0JPQoNCY0J0g0JLQm9CQ0JTQngor0J/QldCb0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0JvQpdCVINCk0KDQkNCK0JAg0JTQoAor0J/QldCJ0KXQkCDQgtCj0KDQkAor0J/QldCJ0KXQkCDQodCQ0IrQkAor0J/QldCJ0KXQkCDQl9CS0J7QndCa0J4KK9Cf0JXQm9Ce0JfQkCDQlNCj0KjQkNCdCivQn9CV0JvQntCX0JAg0J3QkNCU0JAKK9Cf0JXQm9CS0JAg0IjQntCh0JjQnwor0J/QldCb0JLQkCDQiNCe0JLQkNCdCivQn9CV0JvQktCQINCX0J7Qm9Ci0JDQnQor0J/QldCb0JLQkNCYLdCX0J7QoNCY0Isg0JXQlNCY0KIKK9Cf0JXQnNCQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0JzQkNCmINCb0JDQl9CQ0KAKK9Cf0JXQndCQINCc0JDQoNCY0J3QmtCeCivQn9CV0J3QkCDQnNCY0JvQkNCdCivQn9CV0J3QkCDQnNCY0J7QlNCg0JDQkwor0J/QldCd0JAg0KDQkNCU0JjQktCe0IgKK9Cf0JXQndCQINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JXQndCQ0KYg0KHQotCQ0JrQmNCm0JAKK9Cf0JXQndCQ0JLQmNCdINCS0JXQm9CY0JzQmNCgCivQn9CV0J3QpiDQlNCe0JHQoNCY0JvQkAor0J/QldCd0KYg0JjQoNCV0J3QkAor0J/QldCd0KbQkCDQodCb0JDQktCa0J4KK9Cf0JXQndCP0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQndCP0JjQiyDQiNCV0KDQntCh0JjQnNCQCivQn9CV0J3QldCX0JjQiyDQlNCj0KjQkNCdCivQn9CV0J3QldCX0JjQiyDQndCV0J3QkNCUCivQn9CV0J3QldCX0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9CV0J3QldCX0JjQiyDQl9Ce0KDQmNCm0JAKK9Cf0JXQndCY0Isg0KfQldCU0J7QnNCY0KAKK9Cf0JXQndCY0Isg0ILQo9Cg0ILQmNCm0JAKK9Cf0JXQndCY0Isg0JHQntCg0JjQodCb0JDQkgor0J/QldCd0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQndCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cf0JXQndCY0Isg0JzQmNCb0JXQktCQCivQn9CV0J3QmNCLINCc0JjQm9CY0KbQkAor0J/QldCd0JjQiyDQn9CQ0JLQm9CVCivQn9CV0J3QmNCLINCh0JvQkNCS0JrQngor0J/QldCd0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QldCK0JDQqNCa0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0J/QldCK0JjQnSDQltCY0JLQkAor0J/QldCK0JjQnSDQodCb0JDQktCa0J4KK9Cf0JXQndCe0JIg0JXQnNCY0JsKK9Cf0JXQndCe0JIg0InQo9CR0JjQqNCQCivQn9CV0J3QntCSINCc0JDQoNCa0J4KK9Cf0JXQndCX0JXQqCDQgtCe0KDQgtCVCivQn9CV0J3Ql9CV0Kgg0KTQldCg0JXQndCmCivQn9CV0J3Ql9CV0Kgg0KTQldCg0JXQndCmCivQn9CV0J3Ql9CV0Kgg0JzQmNCl0JDQiQor0J/QldCd0JfQldCoINCc0JjQpdCQ0IkKK9Cf0JXQndCX0JXQqCDQotCY0JHQntCgCivQn9CV0J/QmNCLINCb0JDQl9CeCivQn9CV0J/QmNCLINCc0JjQm9CQ0J0KK9Cf0JXQn9CY0Isg0JzQmNCb0JUKK9Cf0JXQn9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JXQn9CY0Isg0JzQmNCg0JrQngor0J/QldCf0JvQmNCd0JDQpiDQotCe0JzQkAor0J/QldCg0KfQmCDQkNCT0J3QldCX0JAKK9Cf0JXQoNCn0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQoNCoINCa0KHQldCd0JjQiNCQCivQn9CV0KDQqNCQ0Igg0JzQmNCg0IjQkNCd0JAKK9Cf0JXQoNCo0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0JXQoNCo0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQn9CV0KDQgtCV0ILQkNCIINCR0JDQqNCa0JjQnAor0J/QldCg0ILQo9CdINCX0JLQntCd0JrQngor0J/QldCg0JDQiyDQkdCg0JDQndCa0J4KK9Cf0JXQoNCQ0Isg0InQo9Cf0JrQngor0J/QldCg0JDQl9CY0Isg0KHQkNCS0JAKK9Cf0JXQoNCQ0JfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JXQoNCmINCR0KDQkNCd0JrQkAor0J/QldCg0KYg0JXQm9CQCivQn9CV0KDQpiDQktCb0JDQlNCY0JzQmNCgCivQn9CV0KDQptCVINCb0KPQmtCQCivQn9CV0KDQlNCQ0J0g0KHQotCQ0J3QmNCh0JvQkNCSCivQn9CV0KDQldCoINCl0JXQoNCc0JjQndCQCivQn9CV0KDQldCW0JAg0J3QmNCa0J7Qm9CQCivQn9CV0KDQldCT0Jgg0JPQldCX0JAKK9Cf0JXQoNCV0JPQmCDQntCh0JrQkNCgCivQn9CV0KDQldCl0JjQndCQ0KYg0JjQktCQ0J0KK9Cf0JXQoNCV0J3Qp9CV0JLQmNCLINCS0JDQodCeCivQn9CV0KDQldCf0JDQotCY0Isg0J/QmNCg0J7QqAor0J/QldCg0JXQn9CQ0KLQmNCLINCh0KLQldCS0JDQnQor0J/QldCg0JXQo9Cb0JAg0JHQntCT0JTQkNCdCivQn9CV0KDQk9CQ0Jsg0JzQmNCg0J7QodCb0JDQkiDQlNCgINCY0J3Qkwor0J/QldCg0JPQlSDQldCh0KLQldCgCivQn9CV0KDQk9CVINCc0JDQoNCQCivQn9CV0KDQk9CVINCS0JjQmtCi0J7QoNCY0IjQkAor0J/QldCg0JjQp9CV0JLQmNCLINCR0KDQkNCd0JrQngor0J/QldCg0JjQp9CV0JLQmNCLINCg0JDQiNCa0J4KK9Cf0JXQoNCY0KfQmNCdINCW0JjQktCQ0J0KK9Cf0JXQoNCY0KfQmNCdINCc0JjQm9CQ0J3QmtCQCivQn9CV0KDQmNCn0JjQnSDQnNCY0JvQldCd0JrQngor0J/QldCg0JjQp9CY0J0g0KDQkNCi0JrQngor0J/QldCg0JjQp9CY0J0g0JLQm9CQ0JTQkAor0J/QldCg0JjQqNCQINCI0JDQmtCe0JIKK9Cf0JXQoNCY0KjQkCDQnNCY0KDQntCh0JvQkNCSCivQn9CV0KDQmNCo0JjQiyDQp9CV0JTQntCc0JjQoAor0J/QldCg0JjQqNCY0Isg0JbQmNCS0J7QlNCQ0KDQmtCQCivQn9CV0KDQmNCo0JjQiyDQgtCe0KDQgtCVCivQn9CV0KDQmNCo0JjQiyDQgtCe0KDQgtCVCivQn9CV0KDQmNCo0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QldCg0JjQqNCY0Isg0JDQndCY0KbQkAor0J/QldCg0JjQqNCY0Isg0JHQm9CQ0JbQngor0J/QldCg0JjQqNCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cf0JXQoNCY0KjQmNCLINCR0J7QkdCQ0J0KK9Cf0JXQoNCY0KjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JXQoNCY0KjQmNCLINCR0KDQkNCd0JrQngor0J/QldCg0JjQqNCY0Isg0JTQkNCd0JjQptCQCivQn9CV0KDQmNCo0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQn9CV0KDQmNCo0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QldCg0JjQqNCY0Isg0JjQoNCV0J3QkAor0J/QldCg0JjQqNCY0Isg0JrQkNCi0JjQptCQCivQn9CV0KDQmNCo0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0JXQoNCY0KjQmNCLINCb0JDQl9CQ0KAKK9Cf0JXQoNCY0KjQmNCLINCb0JDQl9CQ0KAKK9Cf0JXQoNCY0KjQmNCLINCb0JDQl9CQ0KAKK9Cf0JXQoNCY0KjQmNCLINCb0JDQl9CQCivQn9CV0KDQmNCo0JjQiyDQidCj0JHQntCc0JjQoAor0J/QldCg0JjQqNCY0Isg0JzQkNCd0KbQmNCa0JAKK9Cf0JXQoNCY0KjQmNCLINCc0JDQoNCQCivQn9CV0KDQmNCo0JjQiyDQnNCY0KXQkNCI0JvQngor0J/QldCg0JjQqNCY0Isg0JzQmNCb0JDQnQor0J/QldCg0JjQqNCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0JXQoNCY0KjQmNCLINCc0JjQm9CY0J3QmtCeCivQn9CV0KDQmNCo0JjQiyDQnNCY0InQkAor0J/QldCg0JjQqNCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0JXQoNCY0KjQmNCLINCc0JjQm9Ce0JLQkNCdCivQn9CV0KDQmNCo0JjQiyDQnNCY0JvQo9Ci0JjQnQor0J/QldCg0JjQqNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQoNCY0KjQmNCLINCc0JjQoNCQCivQn9CV0KDQmNCo0JjQiyDQndCY0JrQntCb0JAKK9Cf0JXQoNCY0KjQmNCLINCg0JDQlNCVCivQn9CV0KDQmNCo0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cf0JXQoNCY0KjQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JXQoNCY0KjQmNCLINCg0JDQndCa0J4KK9Cf0JXQoNCY0KjQmNCLINCh0KLQkNCd0JrQngor0J/QldCg0JjQqNCY0Isg0KHQotCV0JLQngor0J/QldCg0JjQqNCY0Isg0KHQotCe0IjQkNCdCivQn9CV0KDQmNCo0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CV0KDQmNCo0JjQiyDQotCe0JTQntCgCivQn9CV0KDQmNCo0JjQiyDQo9CT0InQldCo0JAKK9Cf0JXQoNCY0KjQmNCLINCS0JDQodCeCivQn9CV0KDQmNCo0JjQiyDQktCQ0KHQngor0J/QldCg0JjQiyDQltCQ0KDQmtCeCivQn9CV0KDQmNCLINCW0JjQktCa0JAKK9Cf0JXQoNCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cf0JXQoNCY0Isg0ILQntCg0ILQlQor0J/QldCg0JjQiyDQgtCj0KDQmNCm0JAKK9Cf0JXQoNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JXQoNCY0Isg0JDQndCQCivQn9CV0KDQmNCLINCR0JjQodCV0KDQmtCQCivQn9CV0KDQmNCLINCR0J7QltCY0JTQkNCgCivQn9CV0KDQmNCLINCR0J7QltCY0JTQkNCgCivQn9CV0KDQmNCLINCR0J7QoNCY0KEKK9Cf0JXQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0KDQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCg0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQoNCY0Isg0KbQktCY0IjQldCi0JjQnQor0J/QldCg0JjQiyDQlNCe0JHQoNCY0JvQkAor0J/QldCg0JjQiyDQlNCg0JDQk9CQ0J3QkAor0J/QldCg0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QldCg0JjQiyDQlNCj0KjQkNCdCivQn9CV0KDQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQoNCY0Isg0JPQntCI0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cf0JXQoNCY0Isg0JPQntCg0JDQnQor0J/QldCg0JjQiyDQmNCS0JDQnQor0J/QldCg0JjQiyDQiNCQ0J3QmtCeCivQn9CV0KDQmNCLINCI0JXQm9Ca0JAKK9Cf0JXQoNCY0Isg0IjQntCS0JDQndCa0JAKK9Cf0JXQoNCY0Isg0IjQntCS0JDQnQor0J/QldCg0JjQiyDQmtCh0JXQndCY0IjQkAor0J/QldCg0JjQiyDQm9CQ0JfQkAor0J/QldCg0JjQiyDQidCj0JHQmNCo0JAKK9Cf0JXQoNCY0Isg0InQo9CR0JjQptCQCivQn9CV0KDQmNCLINCJ0KPQkdCY0J3QmtCQCivQn9CV0KDQmNCLINCJ0KPQkdCY0J3QmtCeCivQn9CV0KDQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9CV0KDQmNCLINCc0JDQoNCQCivQn9CV0KDQmNCLINCc0JDQoNCY0IjQkAor0J/QldCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0JXQoNCY0Isg0JzQkNCg0JjQiNCQCivQn9CV0KDQmNCLINCc0JDQoNCY0J3QmtCeCivQn9CV0KDQmNCLINCc0JDQoNCa0J4KK9Cf0JXQoNCY0Isg0JzQmNCl0JAKK9Cf0JXQoNCY0Isg0JzQmNCb0JDQlNCY0J0KK9Cf0JXQoNCY0Isg0JzQmNCb0JDQnQor0J/QldCg0JjQiyDQnNCY0JvQldCd0JrQngor0J/QldCg0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JXQoNCY0Isg0JzQmNCb0JrQmNCm0JAKK9Cf0JXQoNCY0Isg0JzQmNCb0J7QqAor0J/QldCg0JjQiyDQnNCY0JvQntCoCivQn9CV0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9CV0KDQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KDQmNCLINCc0JjQotCQ0KAKK9Cf0JXQoNCY0Isg0J3QkNCi0JDQqNCQCivQn9CV0KDQmNCLLdCd0JXQqNCY0Isg0KbQntCa0JAKK9Cf0JXQoNCY0Isg0J3QmNCa0J7Qm9CQCivQn9CV0KDQmNCLINCd0JjQmtCe0JvQkAor0J/QldCg0JjQiyDQndCY0JrQntCb0JAKK9Cf0JXQoNCY0Isg0J3QmNCa0J7Qm9CQCivQn9CV0KDQmNCLINCf0JDQktCb0JUKK9Cf0JXQoNCY0Isg0J/QldCi0JDQoAor0J/QldCg0JjQiyDQoNCQ0KjQkAor0J/QldCg0JjQiyDQoNCQ0JTQlQor0J/QldCg0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J/QldCg0JjQiyDQoNCQ0JTQngor0J/QldCg0JjQiyDQoNCQ0IjQmtCeCivQn9CV0KDQmNCLINCg0J7QlNCe0InQo9CRCivQn9CV0KDQmNCLINCg0KPQltCY0KbQkAor0J/QldCg0JjQiyDQodCQ0JLQkAor0J/QldCg0JjQiyDQodCQ0JLQkAor0J/QldCg0JjQiyDQodCb0JDQktCY0KbQkAor0J/QldCg0JjQiyDQodCb0JDQktCa0J4KK9Cf0JXQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0KDQmNCLINCh0JzQmNCJ0JAKK9Cf0JXQoNCY0Isg0KHQotCQ0J3QmtCQCivQn9CV0KDQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JXQoNCY0Isg0KLQntCc0JjQodCb0JDQkgor0J/QldCg0JjQiyDQktCQ0KHQkAor0J/QldCg0JjQiyDQktCY0J3QmtCQCivQn9CV0KDQmNCLINCS0JvQkNCi0JrQngor0J/QldCg0JjQiyDQl9CU0JXQndCa0JAKK9Cf0JXQoNCY0Isg0JfQntCg0JDQnQor0J/QldCg0JjQiyDQl9Ce0KDQkNCdCivQn9CV0KDQmNCLINCX0J7QoNCQCivQn9CV0KDQmNCm0JAg0JDQndCi0JUKK9Cf0JXQoNCY0KbQkCDQoNCQ0JTQntCh0JvQkNCSCivQn9CV0KDQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCg0JjQnSDQlNCg0JDQk9CY0KjQkAor0J/QldCg0JjQnSDQnNCY0JvQmNCd0JrQngor0J/QldCg0JjQnSDQnNCY0JvQntCg0JDQlAor0J/QldCg0JjQnSDQoNCQ0JTQmNCo0JAKK9Cf0JXQoNCY0J0g0KHQldCa0KPQm9CQCivQn9CV0KDQmNCdINCX0J7QoNCQCivQn9CV0KDQmNCd0JDQpiDQoNCQ0JTQntCS0JDQnQor0J/QldCg0JjQndCQ0KYg0KDQkNCU0J7QktCQ0J0KK9Cf0JXQoNCY0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQoNCY0J3QntCS0JjQiyDQndCQ0JTQkAor0J/QldCg0JjQndCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQn9CV0KDQmNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CV0KDQmNCd0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQn9CV0KDQmNCXINCh0KLQldCS0J4KK9Cf0JXQoNCa0J7QkiDQoNCQ0JTQmNCd0JrQkAor0J/QldCg0JrQntCS0JDQpiDQnNCQ0KDQmNCI0JAKK9Cf0JXQoNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0J/QldCg0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQoNCa0J7QktCY0Isg0JTQkNCd0JjQptCQCivQn9CV0KDQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCg0JrQntCS0JjQiyDQk9CS0J7Ql9CU0JXQnQor0J/QldCg0JrQntCS0JjQiyDQiNCV0JvQmtCQCivQn9CV0KDQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQn9CV0KDQmtCe0JLQmNCLINCg0JDQlNCe0JzQkNCdINCc0KAKK9Cf0JXQoNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CV0KDQmtCe0JLQmNCLINCi0JDQlNCY0IjQkAor0J/QldCg0JrQntCS0JjQiyDQotCe0JzQngor0J/QldCg0JrQntCS0KHQmtCYINCC0J7QoNCC0JUKK9Cf0JXQoNCa0J7QktCh0JrQmCDQkNCd0ILQldCb0JrQngor0J/QldCg0JrQo9Cn0JjQnSDQgtCe0KDQgtCVCivQn9CV0KDQmtCj0KfQmNCdINCC0KPQm9CY0J3QmtCQCivQn9CV0KDQmtCj0KfQmNCdINCU0KPQqNCQ0J0KK9Cf0JXQoNCa0KPQp9CY0J0g0JPQntCg0JTQkNCd0JAKK9Cf0JXQoNCa0KPQp9CY0J0g0JrQkNCi0JjQptCQCivQn9CV0KDQmtCj0KfQmNCdINCd0JjQmtCe0JvQkAor0J/QldCg0JrQo9Cn0JjQnSDQoNCQ0JTQmNCS0J7QiCDQlNCgCivQn9CV0KDQm9CQ0JrQmCDQm9CQ0IjQntCoCivQn9CV0KDQm9CY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0KDQm9CY0J3QkNCmINCh0JjQnNCV0KPQnQor0J/QldCg0IrQkNCaINCd0JDQotCQ0JvQmNCI0JAKK9Cf0JXQoNCK0JDQmiDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0JjQndCTCivQn9CV0KDQitCQ0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cf0JXQoNCe0KjQldCS0JjQiyDQndCe0JLQmNCm0JAKK9Cf0JXQoNCe0KjQldCS0JjQiyDQodCi0JDQndCa0JAKK9Cf0JXQoNCe0KHQkNCS0InQldCS0JjQiyDQidCj0JHQmNCo0JAKK9Cf0JXQoNCe0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0JXQoNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCg0J7QktCQ0J3QntCS0JjQiyDQiNCQ0JPQntCU0JAKK9Cf0JXQoNCe0JLQmNCLINCW0JDQndCa0JAKK9Cf0JXQoNCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQn9CV0KDQntCS0JjQiyDQkdCe0IjQkNCd0JAKK9Cf0JXQoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0J/QldCg0J7QktCY0Isg0JHQoNCQ0KLQmNCc0JjQoAor0J/QldCg0J7QktCY0Isg0JTQoNCQ0JPQngor0J/QldCg0J7QktCY0Isg0JPQkNCR0KDQmNCV0JvQkAor0J/QldCg0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQn9CV0KDQntCS0JjQiyDQiNCV0JvQkAor0J/QldCg0J7QktCY0Isg0IjQntCS0JDQnQor0J/QldCg0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0J/QldCg0J7QktCY0Isg0JzQkNCg0JrQngor0J/QldCg0J7QktCY0Isg0JzQmNCb0JXQndCa0J4g0JTQoAor0J/QldCg0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQoNCe0JLQmNCLINCc0JvQkNCC0JXQnQor0J/QldCg0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9Cf0JXQoNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QldCg0J7QktCY0Isg0KDQkNCU0JDQqNCY0J0KK9Cf0JXQoNCe0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQn9CV0KDQntCS0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQn9CV0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQn9CV0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J/QldCg0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQn9CV0KDQntCS0JjQiyDQodCS0JXQotCe0JzQmNCgCivQn9CV0KDQntCS0JjQiyDQktCV0KHQldCb0JjQnQor0J/QldCg0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQn9CV0KDQotCY0Isg0JfQkNCa0JDQoNCY0JDQqAor0J/QldCg0KLQntCiINCI0JXQm9CV0J3QkAor0J/QldCg0KPQndCY0KfQmNCLINCU0J7QkdCg0JjQm9CQCivQn9CV0KDQo9Cd0JjQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQoNCj0J3QmNCn0JjQiyDQoNCQ0JTQkNCdCivQn9CV0KDQo9Cd0J7QktCY0Isg0InQmNCJ0JDQndCQCivQn9CV0KDQo9Cd0J7QktCY0Isg0J/QkNCd0KLQngor0J/QldCg0KPQndCe0JLQmNCLINCh0KLQkNCd0J7QiNCVCivQn9CV0KDQktCQ0Jcg0JbQmNCS0JrQkAor0J/QldCg0JLQkNCXINCU0KDQkNCT0JjQitCQINCU0KAg0J/QoNCe0KQKK9Cf0JXQodCY0KDQkNCmINCU0KDQkNCT0J7QidCj0JEKK9Cf0JXQodCY0KDQkNCmINCa0JDQotCQ0KDQmNCd0JAKK9Cf0JXQodCY0KDQkNCmINCf0JXQotCQ0KAKK9Cf0JXQodCY0KDQkNCmINCh0KLQldCS0JDQnQor0J/QldCh0JvQkNCLINCI0J7QktCQ0J0KK9Cf0JXQodCi0JDQm9CY0Isg0IjQntCh0JjQnwor0J/QldCh0KLQldCb0JXQmiDQidCj0JHQmNCo0JAKK9Cf0JXQodCi0JXQm9CV0Jog0InQo9CR0JjQqNCQCivQn9CV0KLQkNCa0J7QkiDQltCY0JLQmtCeCivQn9CV0KLQkNCa0J7QkiDQiNCj0JvQmtCQCivQn9CV0KLQkNCa0J7QkiDQnNCY0JvQldCd0JrQngor0J/QldCi0JDQmtCe0JIg0KDQkNCU0J7QodCb0JDQkgor0J/QldCi0JDQmtCe0JIg0KDQkNCd0JrQkAor0J/QldCi0JDQmtCe0JIg0KHQkNCS0JAKK9Cf0JXQotCQ0JrQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0J/QldCi0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQotCQ0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQn9CV0KLQkNCa0J7QktCY0Isg0IjQntCS0JDQnQor0J/QldCi0JDQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QldCi0JDQmtCe0JLQmNCLINCd0JXQnNCQ0IrQkAor0J/QldCi0JDQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQn9CV0KLQkNCa0J7QktCY0Isg0KDQkNCI0JrQngor0J/QldCi0JDQmtCe0JLQmNCLINCh0JDQktCQCivQn9CV0KLQlSDQgtCj0KDQkAor0J/QldCi0JUg0ILQo9Cg0JAKK9Cf0JXQotCVINCU0KPQqNCQ0J3QmtCQCivQn9CV0KLQlSDQpNCV0KDQldCd0KYKK9Cf0JXQotCVINCk0JXQoNCV0J3Qpgor0J/QldCi0JUg0KTQoNCQ0IrQkAor0J/QldCi0JUg0JjQqNCi0JLQkNCdCivQn9CV0KLQlSDQmNCo0KLQktCQ0J0KK9Cf0JXQotCVINCY0KjQotCS0JDQnQor0J/QldCi0JUg0JrQkNCg0J7QiQor0J/QldCi0JUg0J/QldCi0JDQoAor0J/QldCi0JUg0KHQotCV0J/QkNCdCivQn9CV0KLQlSDQodCi0JXQktCQ0J0KK9Cf0JXQotCV0Igg0KDQkNCi0JrQngor0J/QldCi0JXQmiDQlNCQ0JzQmNCgCivQn9CV0KLQldCb0JjQnSDQldCb0JjQl9CQ0JHQldCi0JAKK9Cf0JXQotCV0IrQmCDQiNCe0KHQmNCfINCU0KAKK9Cf0JXQotCV0IrQmCDQodCi0JXQktCQ0J0KK9Cf0JXQotCV0KAg0KTQoNCQ0J3QptCY0KjQmtCQCivQn9CV0KLQldCgINCI0J7QltCV0KQKK9Cf0JXQotCV0KAg0IjQntCb0JDQnQor0J/QldCi0JXQoCDQiNCe0JLQkNCdCivQn9CV0KLQldCgINCc0JjQpdCQ0IkKK9Cf0JXQotCV0KAg0JLQmNCb0JzQntCoCivQn9CV0KLQldCg0JrQkCDQgtCe0KDQgtCVCivQn9CV0KLQldCg0JrQkCDQiNCV0JvQldCd0JAKK9Cf0JXQotCV0KDQmtCQINCI0J7QodCY0J8KK9Cf0JXQotCV0KDQmtCQINCc0JDQoNCY0IjQkAor0J/QldCi0JXQoNCa0JAg0KHQotCV0JLQkNCdCivQn9CV0KLQldCg0JrQkCDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cf0JXQotCV0KDQm9CY0Isg0JzQmNCb0JDQnQor0J/QldCi0JXQoNCd0JXQmyDQm9CY0JTQmNCI0JAKK9Cf0JXQotCY0Isg0JzQmNCb0JDQnQor0J/QldCi0JjQiyDQl9Ce0KDQmtCQCivQn9CV0KLQmNCI0JXQktCY0Isg0IjQntCS0JDQnSDQnNCgCivQn9CV0KLQmNCI0JXQktCY0Isg0IjQntCS0JDQnQor0J/QldCi0JjQnSDQndCY0JrQntCb0JAg0J/QoNCe0KTQldCh0J7QoAor0J/QldCi0JrQkNCd0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QldCi0JrQntCSINCW0JDQoNCVCivQn9CV0KLQmtCe0JIg0ILQntCg0ILQlQor0J/QldCi0JrQntCSINCC0KPQoNCQCivQn9CV0KLQmtCe0JIg0JHQntCg0JjQodCb0JDQkgor0J/QldCi0JrQntCSINCY0JLQkNCdCivQn9CV0KLQmtCe0JIg0JzQmNCb0JDQnQor0J/QldCi0JrQntCSINCd0JDQlNCV0JbQlNCQCivQn9CV0KLQmtCe0JIg0KHQkNCS0JAKK9Cf0JXQotCa0J7QkiDQodCi0JXQktCQ0J0KK9Cf0JXQotCa0J7QkiDQodCi0JXQktCQCivQn9CV0KLQmtCe0JLQmNCLINCn0JXQlNCQCivQn9CV0KLQmtCe0JLQmNCLINCW0JDQoNCa0J4KK9Cf0JXQotCa0J7QktCY0Isg0JbQldCJ0JrQngor0J/QldCi0JrQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0J/QldCi0JrQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0J/QldCi0JrQntCS0JjQiyDQgtCe0KDQgtCVINCU0KAKK9Cf0JXQotCa0J7QktCY0Isg0ILQntCg0ILQlQor0J/QldCi0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CV0KLQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQotCa0J7QktCY0Isg0ILQntCg0ILQlQor0J/QldCi0JrQntCS0JjQiyDQgtCj0JvQkAor0J/QldCi0JrQntCS0JjQiyDQgtCj0KDQkNCCCivQn9CV0KLQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KLQmtCe0JLQmNCLINCQ0J3QkAor0J/QldCi0JrQntCS0JjQiyDQkNCd0KLQo9CdCivQn9CV0KLQmtCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0J/QldCi0JrQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9CV0KLQmtCe0JLQmNCLINCR0J7QoNCa0J4KK9Cf0JXQotCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0KLQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0J/QldCi0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQotCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0KLQmtCe0JLQmNCLINCm0JLQldCi0JrQngor0J/QldCi0JrQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0J/QldCi0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQn9CV0KLQmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQn9CV0KLQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JXQotCa0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cf0JXQotCa0J7QktCY0Isg0JPQktCe0JfQlNCV0J0KK9Cf0JXQotCa0J7QktCY0Isg0JjQqNCi0JLQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Cf0JXQotCa0J7QktCY0Isg0JjQm9CY0IjQkAor0J/QldCi0JrQntCS0JjQiyDQmNCJ0JAKK9Cf0JXQotCa0J7QktCY0Isg0JjQoNCV0J3QkAor0J/QldCi0JrQntCS0JjQiyDQiNCQ0JPQntCU0JAKK9Cf0JXQotCa0J7QktCY0Isg0IjQntCh0JjQnwor0J/QldCi0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCI0J7QktCeCivQn9CV0KLQmtCe0JLQmNCLINCa0JDQm9Cc0JDQnQor0J/QldCi0JrQntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQn9CV0KLQmtCe0JLQmNCLINCa0J7QodCi0JDQlNCY0J0KK9Cf0JXQotCa0J7QktCY0Isg0JrQoNCh0KLQkAor0J/QldCi0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQn9CV0KLQmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0JXQotCa0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QldCi0JrQntCS0JjQiyDQm9CQ0JfQngor0J/QldCi0JrQntCS0JjQiyDQidCj0JHQmNCd0JrQngor0J/QldCi0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0J/QldCi0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9CQ0J3QkAor0J/QldCi0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QldCi0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0JjQptCQCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J3QmtCQCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQntCg0JjQmtCQCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQoNCQCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQINCU0JjQn9CbINCY0J3Qkwor0J/QldCi0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QldCi0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQn9CV0KLQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Cf0JXQotCa0J7QktCY0Isg0JzQmNCg0JrQngor0J/QldCi0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cf0JXQotCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQn9CV0KLQmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0J/QldCi0JrQntCS0JjQiyDQndCQ0JTQkAor0J/QldCi0JrQntCS0JjQiyDQndCY0JrQngor0J/QldCi0JrQntCS0JjQiyDQntCR0KDQkNCUCivQn9CV0KLQmtCe0JLQmNCLINCe0JvQmNCS0JXQoNCQCivQn9CV0KLQmtCe0JLQmNCLINCf0JDQktCb0JUKK9Cf0JXQotCa0J7QktCY0Isg0J/QkNCS0JvQlQor0J/QldCi0JrQntCS0JjQiyDQn9CQ0JLQm9CVCivQn9CV0KLQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCa0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CV0KLQmtCe0JLQmNCLINCf0JXQotCg0JAKK9Cf0JXQotCa0J7QktCY0Isg0J/Qo9Cd0JjQqNCQCivQn9CV0KLQmtCe0JLQmNCLINCg0JDQlNCVCivQn9CV0KLQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQn9CV0KLQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCg0JDQotCa0JAKK9Cf0JXQotCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CV0KLQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JXQotCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCi0JrQntCS0JjQiyDQodCg0ILQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCh0KLQkNCd0JAKK9Cf0JXQotCa0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9Cf0JXQotCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0J/QldCi0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cf0JXQotCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0J/QldCi0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9CV0KLQmtCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cf0JXQotCa0J7QktCY0Isg0JLQldCg0JAKK9Cf0JXQotCa0J7QktCY0Isg0JLQldCg0JjQptCQCivQn9CV0KLQmtCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQn9CV0KLQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JXQotCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QldCi0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CV0KLQmtCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0J/QldCi0JrQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQn9CV0KLQmtCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQn9CV0KLQmtCe0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Cf0JXQotCa0J7QktCY0Isg0JfQm9CQ0KLQmtCeCivQn9CV0KLQmtCe0JLQmNCLINCX0JvQkNCi0J7QnNCY0KAKK9Cf0JXQotCa0J7QktCY0Isg0JfQntCg0JDQnQor0J/QldCi0JrQntCS0KHQmtCQINCh0JvQkNCS0JjQptCQCivQn9CV0KLQmtCe0JLQodCa0Jgg0JDQptCQCivQn9CV0KLQmtCe0JLQodCa0Jgg0JPQntCg0JDQnQor0J/QldCi0JrQntCS0KHQmtCYINCc0JjQm9Ca0JAKK9Cf0JXQotCa0J7QktCh0JrQmCDQodCi0JDQndCa0J4KK9Cf0JXQotCb0JXQmiDQiNCe0JLQkNCdCivQn9CV0KLQidCQ0J3QodCa0Jgg0JHQoNCQ0J3QmtCeCivQn9CV0KLQidCQ0J3QodCa0Jgg0JTQoNCQ0JPQntCh0JvQkNCSCivQn9CV0KLQidCQ0J3QodCa0Jgg0JjQoNCV0J3QkAor0J/QldCi0J4g0IjQntCW0JXQpAor0J/QldCi0J7QqNCV0JLQmNCLINCc0JjQm9CVCivQn9CV0KLQntCo0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CV0KLQntCo0JXQktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQntCo0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQn9CV0KLQntCl0JvQldCRINCf0JDQktCY0KbQkAor0J/QldCi0J7QiNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQotCe0JLQmNCLINCC0KPQoNCeCivQn9CV0KLQntCS0JjQiyDQk9Ce0IjQmtCeCivQn9CV0KLQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Cf0JXQotCe0JLQmNCLINCh0JvQkNCS0JrQngor0J/QldCi0KDQkNCo0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCi0KDQkNCo0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQotCg0JDQqNCa0J7QktCY0Isg0JXQnNCY0JvQmNCI0JAKK9Cf0JXQotCg0JDQmtCe0JLQmNCLLdCT0KDQkNCe0JLQkNCmINCa0J7QodCQ0J3QkAor0J/QldCi0KDQkNCd0J7QktCY0Isg0IjQntCh0JjQnwor0J/QldCi0KDQkNCd0J7QktCY0Isg0JzQkNCT0JTQkAor0J/QldCi0KDQkNCd0J7QktCY0Isg0JfQktCe0J3QmtCeCivQn9CV0KLQoNCV0Kgg0KTQoNCQ0IrQngor0J/QldCi0KDQldCoINCg0JDQlNCVCivQn9CV0KLQoNCV0Iog0KHQotCV0JLQkNCdCivQn9CV0KLQoNCV0JLQodCa0JAg0JfQntCg0JDQndCa0JAKK9Cf0JXQotCg0JXQktCh0JrQmCDQkdCe0KDQmNChCivQn9CV0KLQoNCV0JLQodCa0Jgg0JjQm9Ce0J3QkAor0J/QldCi0KDQldCS0KHQmtCYINCa0JjQoNCeCivQn9CV0KLQoNCYINCc0JjQm9CV0J3QkAor0J/QldCi0KDQmCDQnNCY0KDQntCh0JvQkNCS0JAKK9Cf0JXQotCg0JjQp9CV0JLQmNCLINCY0JLQkNCdCivQn9CV0KLQoNCY0KfQmNCLINCR0KDQkNCd0JrQngor0J/QldCi0KDQmNCn0JjQiyDQlNCQ0J3QlQor0J/QldCi0KDQmNCn0JjQiyDQiNCe0JLQngor0J/QldCi0KDQmNCn0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQoNCY0KfQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCg0JjQp9CY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQoNCY0KfQmNCLINCi0JDQotCI0JDQndCQCivQn9CV0KLQoNCY0Isg0ILQntCg0ILQlQor0J/QldCi0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KLQoNCY0Isg0JDQndCQ0KHQotCQ0JfQmNCI0JAKK9Cf0JXQotCg0JjQiyDQkdCe0KjQmtCeCivQn9CV0KLQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cf0JXQotCg0JjQiyDQkdCg0JDQndCa0J4g0JTQoAor0J/QldCi0KDQmNCLINCU0JDQndCY0JvQngor0J/QldCi0KDQmNCLINCU0JXQodCQ0J3QmtCQINCU0JjQn9CbINCY0J3Qkwor0J/QldCi0KDQmNCLINCU0JXQodCY0JzQmNCgCivQn9CV0KLQoNCY0Isg0JTQmNCc0JjQotCg0JjQiNCVINCU0JjQn9CbINCY0J3Qkwor0J/QldCi0KDQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QldCi0KDQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QldCi0KDQmNCLINCU0KPQqNCQ0J3QmtCQCivQn9CV0KLQoNCY0Isg0JTQo9Co0JDQnQor0J/QldCi0KDQmNCLINCY0JvQmNCI0JAKK9Cf0JXQotCg0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQoNCY0Isg0JvQkNCX0JDQoCDQnNCgCivQn9CV0KLQoNCY0Isg0InQmNCJ0JDQndCQCivQn9CV0KLQoNCY0Isg0InQo9CR0JjQptCQCivQn9CV0KLQoNCY0Isg0JzQmNCb0JDQnQor0J/QldCi0KDQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCg0JjQiyDQnNCY0JvQldCd0JrQngor0J/QldCi0KDQmNCLINCc0JjQm9CV0KLQkAor0J/QldCi0KDQmNCLINCc0JjQm9CY0JLQntCICivQn9CV0KLQoNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQotCg0JjQiyDQndCQ0JTQkAor0J/QldCi0KDQmNCLINCe0JvQk9CQCivQn9CV0KLQoNCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCg0JjQiyDQoNCQ0JTQmNCh0JDQkgor0J/QldCi0KDQmNCLINCg0JDQlNCY0KHQkNCSCivQn9CV0KLQoNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cf0JXQotCg0JjQiyDQodCb0JDQktCY0KbQkAor0J/QldCi0KDQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQn9CV0KLQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCi0KDQmNCLINCh0J7QpNCY0IjQkAor0J/QldCi0KDQmNCLINCh0J7QpNCY0IjQkAor0J/QldCi0KDQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Cf0JXQotCg0JjQiyDQktCj0JvQldCi0JAKK9Cf0JXQotCg0JjQmiDQqNCQ0J3QlNCe0KAKK9Cf0JXQotCg0JjQmiDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JXQotCg0JjQmiDQldCb0JjQl9CQ0JHQldCi0JAKK9Cf0JXQotCg0JjQmiDQmNCo0KLQktCQ0J0KK9Cf0JXQotCg0JjQmiDQktCY0J3QptCVCivQn9CV0KLQoNCY0Jog0JfQntCb0KLQkNCdCivQn9CV0KLQoNCY0JrQkCDQidCj0JHQmNCo0JAKK9Cf0JXQotCg0JjQmtCQINCc0JjQntCU0KDQkNCTCivQn9CV0KLQoNCY0JrQntCK0JAg0JrQodCV0J3QmNCI0JAKK9Cf0JXQotCg0JjQmtCe0IrQkCDQm9CQ0JfQkNCgCivQn9CV0KLQoNCY0J0g0JTQo9Co0JDQnQor0J/QldCi0KDQmNCdINCa0JDQotCY0KbQkAor0J/QldCi0KDQmNCdINCc0JDQiNCQCivQn9CV0KLQoNCY0J0g0JzQmNCb0JDQndCa0JAKK9Cf0JXQotCg0JjQnSDQnNCY0JvQkNCd0JrQkAor0J/QldCi0KDQmNCdINCg0JDQlNCc0JjQm9CQCivQn9CV0KLQoNCY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0J/QldCi0KDQmNCdINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JXQotCg0JjQndCY0Isg0JzQmNCg0JrQngor0J/QldCi0KDQmNCd0J7QktCY0Isg0JzQmNCb0JjQndCQCivQn9CV0KLQoNCY0J3QntCS0JjQiyDQodCi0JXQktCQCivQn9CV0KLQoNCeINCQ0J3QotCVCivQn9CV0KLQoNCeINCa0JDQotCQ0JvQmNCdCivQn9CV0KLQoNCeINCd0JjQmtCeCivQn9CV0KLQoNCeINCh0JDQitCQCivQn9CV0KLQoNCe0J3QmNCLINCW0JjQktCe0KLQkAor0J/QldCi0KDQntCd0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QldCi0KDQntCd0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQn9CV0KLQoNCe0J3QmNCI0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0J/QldCi0KDQntCd0JjQiNCV0JLQmNCLINCT0J7QoNCQ0J0KK9Cf0JXQotCg0J7QndCY0IjQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J/QldCi0KDQntCd0JjQiNCV0JLQmNCLINCh0KDQldCi0JAKK9Cf0JXQotCg0J7QndCY0IjQldCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Cf0JXQotCg0J7QitCVINCc0JjQntCU0KDQkNCTCivQn9CV0KLQoNCe0IrQlSDQnNCY0J7QlNCg0JDQkwor0J/QldCi0KDQntCSINCW0JjQktCQ0J3QkAor0J/QldCi0KDQntCSINCW0JjQktCQ0J0KK9Cf0JXQotCg0J7QkiDQkNCd0JDQotCe0JvQmNCICivQn9CV0KLQoNCe0JIg0JDQndCQCivQn9CV0KLQoNCe0JIg0JHQntCg0JjQoQor0J/QldCi0KDQntCSINCU0JDQndCY0KbQkAor0J/QldCi0KDQntCSINCU0KPQqNCQ0J3QmtCQCivQn9CV0KLQoNCe0JIg0JTQo9Co0JDQnQor0J/QldCi0KDQntCSINCV0JLQmNCm0JAKK9Cf0JXQotCg0J7QkiDQpNCg0JDQndCa0JAKK9Cf0JXQotCg0J7QkiDQmNCo0KLQktCQ0J0KK9Cf0JXQotCg0J7QkiDQmNCS0JDQnQor0J/QldCi0KDQntCSINCI0JDQodCc0JjQndCQCivQn9CV0KLQoNCe0JIg0IjQldCb0JXQndCQCivQn9CV0KLQoNCe0JIg0IjQntCW0JXQpAor0J/QldCi0KDQntCSINCb0JDQl9CQ0KAKK9Cf0JXQotCg0J7QkiDQidCj0JHQntCc0JjQoAor0J/QldCi0KDQntCSINCJ0KPQkdCe0JzQmNCgCivQn9CV0KLQoNCe0JIg0JzQkNCg0JjQiNCQCivQn9CV0KLQoNCe0JIg0JzQkNCg0JjQiNCQCivQn9CV0KLQoNCe0JIg0JzQkNCg0JjQndCa0J4KK9Cf0JXQotCg0J7QkiDQnNCY0JvQkNCdCivQn9CV0KLQoNCe0JIg0JzQmNCb0JXQndCa0J4KK9Cf0JXQotCg0J7QkiDQnNCY0JvQmNCm0JAKK9Cf0JXQotCg0J7QkiDQnNCY0JvQntCg0JDQlAor0J/QldCi0KDQntCSINCc0JjQm9Ce0KHQkNCS0JAKK9Cf0JXQotCg0J7QkiDQnNCY0JvQntCS0JDQnQor0J/QldCi0KDQntCSINCc0JjQntCU0KDQkNCTCivQn9CV0KLQoNCe0JIg0JzQmNCe0JTQoNCQ0JMKK9Cf0JXQotCg0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQn9CV0KLQoNCe0JIg0JzQntCc0KfQmNCb0J4KK9Cf0JXQotCg0J7QkiDQndCQ0JTQkAor0J/QldCi0KDQntCSINCd0JDQotCQ0JvQmNCI0JAKK9Cf0JXQotCg0J7QkiDQndCV0JHQntCI0KjQkCDQlNCgCivQn9CV0KLQoNCe0JIg0J7Qm9CT0JAKK9Cf0JXQotCg0J7QkiDQoNCQ0JTQnNCY0JvQkAor0J/QldCi0KDQntCSINCh0JDQqNCQCivQn9CV0KLQoNCe0JIg0KHQkNCS0JAKK9Cf0JXQotCg0J7QkiDQodCQ0JLQkAor0J/QldCi0KDQntCSINCh0JDQktCQCivQn9CV0KLQoNCe0JIg0KHQldCg0JPQmNCI0JUKK9Cf0JXQotCg0J7QkiDQodCb0JDQktCa0JAKK9Cf0JXQotCg0J7QkiDQodCb0JDQktCa0J4KK9Cf0JXQotCg0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQn9CV0KLQoNCe0JIg0KHQoNCR0JjQktCe0IgKK9Cf0JXQotCg0J7QkiDQodCi0JXQktCQ0J0KK9Cf0JXQotCg0J7QkiDQodCS0JXQotCe0JfQkNCgCivQn9CV0KLQoNCe0JIg0KLQntCc0JjQodCb0JDQkgor0J/QldCi0KDQntCSINCS0JDQodCeCivQn9CV0KLQoNCe0JIg0JLQldCb0JjQl9CQ0KAKK9Cf0JXQotCg0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQn9CV0KLQoNCe0JIg0JLQntCI0JjQodCb0JDQkgor0J/QldCi0KDQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QkiDQl9Cb0JDQotCe0JzQmNCgCivQn9CV0KLQoNCe0JLQp9CQ0J0t0KjQn9CQ0J3QntCS0JjQiyDQldCj0KTQldCc0JjQiNCQCivQn9CV0KLQoNCe0JLQkNCn0JrQmCDQlNCj0KjQkNCdCivQn9CV0KLQoNCe0JLQkNCn0JrQmCDQiNCe0JLQkNCdCivQn9CV0KLQoNCe0JLQkNCn0JrQmCDQidCY0InQkNCd0JAKK9Cf0JXQotCg0J7QktCQ0KfQmtCYINCS0JXQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCn0JXQlNCQCivQn9CV0KLQoNCe0JLQmNCLINCo0KLQldCk0JDQnQor0J/QldCi0KDQntCS0JjQiyDQltCQ0KDQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCW0JDQoNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JbQkNCg0JrQngor0J/QldCi0KDQntCS0JjQiyDQltCQ0KDQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCW0JXQidCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JbQldCJ0JrQngor0J/QldCi0KDQntCS0JjQiyDQltCY0JrQkAor0J/QldCi0KDQntCS0JjQiyDQltCY0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCW0JjQktCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JbQmNCS0JrQkAor0J/QldCi0KDQntCS0JjQiyDQltCY0JLQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCW0JjQktCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Cf0JXQotCg0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cf0JXQotCg0J7QktCY0Isg0JbQmNCS0J7QotCQCivQn9CV0KLQoNCe0JLQmNCLINCC0J7QmtCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CV0KLQoNCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQotCg0J7QktCY0Isg0ILQntCg0ILQlQor0J/QldCi0KDQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CV0KLQoNCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JXQotCg0J7QktCY0Isg0ILQntCg0ILQlQor0J/QldCi0KDQntCS0JjQiyDQgtCe0KDQgtCVCivQn9CV0KLQoNCe0JLQmNCLINCC0KPQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCQ0JvQmNCd0JrQkAor0J/QldCi0KDQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0J/QldCi0KDQntCS0JjQiyDQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0J/QldCi0KDQntCS0JjQiyDQkNCd0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCQ0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCQ0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLLdCR0JDQm9CY0JYg0InQmNCJ0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCR0JjQidCQ0J3QkAor0J/QldCi0KDQntCS0JjQiyDQkdCe0KjQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0J/QldCi0KDQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JHQntCI0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0KLQoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CV0KLQoNCe0JLQmNCLINCm0JLQmNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JTQkNCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQlNCQ0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCU0JDQndCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JTQkNCd0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCU0JDQoNCQCivQn9CV0KLQoNCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCU0JXQiNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JTQldCh0JjQnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9CV0KLQoNCe0JLQmNCLINCU0J7QkdCg0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQmNCLCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0JjQitCQCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEg0JTQoAor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQn9CV0KLQoNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0JXQotCg0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QldCi0KDQntCS0JjQiyDQlNCj0KjQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JTQo9Co0JrQngor0J/QldCi0KDQntCS0JjQiyDQldCS0JAKK9Cf0JXQotCg0J7QktCY0Isg0JXQktCT0JXQndCY0IjQlQor0J/QldCi0KDQntCS0JjQiyDQldCS0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCk0JDQkdCY0IjQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCT0JDQktCg0JjQm9CeCivQn9CV0KLQoNCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQpdCg0JjQodCi0JjQndCQCivQn9CV0KLQoNCe0JLQmNCLINCY0JvQmNCI0JAKK9Cf0JXQotCg0J7QktCY0Isg0JjQm9CY0IjQkAor0J/QldCi0KDQntCS0JjQiyDQmNCb0JjQiNCQCivQn9CV0KLQoNCe0JLQmNCLINCY0JvQntCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0JjQodCQ0JoKK9Cf0JXQotCg0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCY0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCY0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCY0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCY0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCY0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCI0JDQndCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0IjQkNCh0JzQmNCd0JrQkAor0J/QldCi0KDQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0IjQldCb0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQn9CV0KLQoNCe0JLQmNCLINCI0JXQktCg0JXQnAor0J/QldCi0KDQntCS0JjQiyDQiNCe0JbQldCkCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0IjQntCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0IjQntCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0IjQntCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JrQkNCi0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCa0JDQotCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JrQkNCi0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCa0J7QodCi0JAg0JTQoAor0J/QldCi0KDQntCS0JjQiyDQmtCg0KHQotCeCivQn9CV0KLQoNCe0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0JvQkNCX0JDQoAor0J/QldCi0KDQntCS0JjQiyDQm9CV0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCb0JjQlNCQCivQn9CV0KLQoNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QldCi0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0InQmNCJ0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QldCi0KDQntCS0JjQiyDQidCj0JHQmNCo0JAKK9Cf0JXQotCg0J7QktCY0Isg0InQo9CR0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0InQo9CR0JjQodCQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0JzQkNCg0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQkNCg0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0J/QldCi0KDQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQkNCg0JjQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JDQoNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JzQkNCg0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCQ0KDQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCc0JDQoNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCQ0IjQm9CeCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeINCU0KAg0JLQldCi0JXQoNCY0J3QlQor0J/QldCi0KDQntCS0JjQiyDQnNCY0IjQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CV0J3QkAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQldCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CV0JLQkAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQlQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQmNCLCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9Ce0Kgg0JTQoAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQntCoINCU0KAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QqAor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQntCI0JUKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QiNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QidCj0JEKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCb0KPQnQor0J/QldCi0KDQntCS0JjQiyDQnNCY0JvQo9CdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQntCJ0KPQkQor0J/QldCi0KDQntCS0JjQiyDQnNCY0J7QnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCg0KfQldCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkiDQlNCgINCb0JXQmtCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQnNCb0JDQgtCV0J0KK9Cf0JXQotCg0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQn9CV0KLQoNCe0JLQmNCLINCc0JvQkNCU0JXQnQor0J/QldCi0KDQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QldCi0KDQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QldCi0KDQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QldCi0KDQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QldCi0KDQntCS0JjQiyDQndCQ0JTQkAor0J/QldCi0KDQntCS0JjQiyDQndCQ0JTQkAor0J/QldCi0KDQntCS0JjQiyDQndCQ0JTQkAor0J/QldCi0KDQntCS0JjQiyDQndCQ0JTQmNCg0JAKK9Cf0JXQotCg0J7QktCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0J/QldCi0KDQntCS0JjQiyDQndCV0J3QkNCUCivQn9CV0KLQoNCe0JLQmNCLINCd0JXQktCV0J3QkAor0J/QldCi0KDQntCS0JjQiyDQndCV0JLQldCd0JrQkCDQlNCgCivQn9CV0KLQoNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QldCi0KDQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0JXQotCg0J7QktCY0Isg0J3QntCS0JDQmgor0J/QldCi0KDQntCS0JjQiyDQndCe0JLQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0J7QkdCg0JDQlAor0J/QldCi0KDQntCS0JjQiyDQntCb0JPQkAor0J/QldCi0KDQntCS0JjQiyDQntCb0JPQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0J7Qm9CY0JLQldCg0JAKK9Cf0JXQotCg0J7QktCY0Isg0J/QkNCI0JAKK9Cf0JXQotCg0J7QktCY0Isg0J/QkNCd0KLQldCb0JjQiNCQCivQn9CV0KLQoNCe0JLQmNCLINCf0JXQoNCh0JjQlNCQCivQn9CV0KLQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0J/QldCi0JDQoAor0J/QldCi0KDQntCS0JjQiyDQn9CV0KLQoNCY0IjQkAor0J/QldCi0KDQntCS0JjQiyDQn9Cb0JDQnNCV0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLLdCf0J7Qn9CQ0JTQmNCLINCc0JjQm9CQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cf0JXQotCg0J7QktCY0Isg0J/QoNCS0J7QodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQlQor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQmNCo0JAg0JTQmNCf0Jsg0JjQndCTCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCY0KjQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQmNCo0JAKK9Cf0JXQotCg0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0J/QldCi0KDQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0KDQkNCI0JrQngor0J/QldCi0KDQntCS0JjQiyDQoNCQ0IjQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQndCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0KDQkNCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQoNCQ0KLQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCg0JDQotCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cf0JXQotCg0J7QktCY0Isg0KDQmNCh0KLQngor0J/QldCi0KDQntCS0JjQiyDQoNCe0JTQntCJ0KPQkQor0J/QldCi0KDQntCS0JjQiyDQoNCe0KHQkAor0J/QldCi0KDQntCS0JjQiyDQoNCj0JbQkAor0J/QldCi0KDQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0KDQo9CX0JzQkNCg0JjQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQkNCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCQ0JLQkAor0J/QldCi0KDQntCS0JjQiyDQodCQ0JLQkAor0J/QldCi0KDQntCS0JjQiyDQodCQ0JLQkAor0J/QldCi0KDQntCS0JjQiyDQodCY0JzQkAor0J/QldCi0KDQntCS0JjQiyDQodCY0JzQldCj0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQmNCc0J4KK9Cf0JXQotCg0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQn9CV0KLQoNCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCh0JvQkNCS0JrQkAor0J/QldCi0KDQntCS0JjQiyDQodCb0JDQktCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CV0KLQoNCe0JLQmNCLINCh0JvQkNCS0JrQngor0J/QldCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0J/QldCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0J/QldCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0KAKK9Cf0JXQotCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0JzQmNCJ0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQntCk0JjQiNCQCivQn9CV0KLQoNCe0JLQmNCLINCh0J/QkNCh0JUKK9Cf0JXQotCg0J7QktCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cf0JXQotCg0J7QktCY0Isg0KHQn9Ce0JzQldCd0JrQkAor0J/QldCi0KDQntCS0JjQiyDQodCg0ILQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQkNCc0JXQndCa0J4KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQldCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cf0JXQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQldCS0JDQnQor0J/QldCi0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCe0IjQkNCU0JjQnQor0J/QldCi0KDQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0KHQotCe0IjQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCh0KLQntCI0JrQkAor0J/QldCi0KDQntCS0JjQiyDQodCj0JfQkNCd0JAg0JTQoAor0J/QldCi0KDQntCS0JjQiyDQodCj0JfQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCh0JLQldCi0JrQngor0J/QldCi0KDQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0J/QldCi0KDQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9CV0KLQoNCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0JXQotCg0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0KLQmNCR0J7QoAor0J/QldCi0KDQntCS0JjQiyDQotCY0J3QmtCQCivQn9CV0KLQoNCe0JLQmNCLINCi0J7QlNCe0KDQmtCQCivQn9CV0KLQoNCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0KPQoNCe0KgKK9Cf0JXQotCg0J7QktCY0Isg0KPQoNCe0KgKK9Cf0JXQotCg0J7QktCY0Isg0JLQkNCh0JAKK9Cf0JXQotCg0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0J/QldCi0KDQntCS0JjQiyDQktCV0JvQmNCR0J7QoAor0J/QldCi0KDQntCS0JjQiyDQktCV0JvQmNCR0J7QoAor0J/QldCi0KDQntCS0JjQiyDQktCV0JvQmNCR0J7QoAor0J/QldCi0KDQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQktCV0KDQkAor0J/QldCi0KDQntCS0JjQiyDQktCV0KDQkAor0J/QldCi0KDQntCS0JjQiyDQktCV0KDQkAor0J/QldCi0KDQntCS0JjQiyDQktCV0KDQkAor0J/QldCi0KDQntCS0JjQiyDQktCV0KDQkAor0J/QldCi0KDQntCS0JjQiyDQktCV0KDQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JLQldCh0JXQm9CQCivQn9CV0KLQoNCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQn9CV0KLQoNCe0JLQmNCLINCS0JXQodCd0JAKK9Cf0JXQotCg0J7QktCY0Isg0JLQmNCo0IrQkAor0J/QldCi0KDQntCS0JjQiyDQktCY0JTQkAor0J/QldCi0KDQntCS0JjQiyDQktCb0JDQlNCQCivQn9CV0KLQoNCe0JLQmNCLINCS0JvQkNCU0JUKK9Cf0JXQotCg0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CV0KLQoNCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQn9CV0KLQoNCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0J/QldCi0KDQntCS0JjQiyDQktCe0IjQmNCdCivQn9CV0KLQoNCe0JLQmNCLINCS0J7QiNCY0J0KK9Cf0JXQotCg0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0J/QldCi0KDQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQn9CV0KLQoNCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JXQotCg0J7QktCY0Isg0JLQntCI0JrQkAor0J/QldCi0KDQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0J/QldCi0KDQntCS0JjQiyDQktCj0JrQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cf0JXQotCg0J7QktCY0Isg0JfQlNCV0J3QmtCeCivQn9CV0KLQoNCe0JLQmNCLINCX0JTQldCd0JrQngor0J/QldCi0KDQntCS0JjQiyDQl9Cb0JDQotCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JfQntCg0JDQnQor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JfQntCg0JDQnQor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQkNCdCivQn9CV0KLQoNCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cf0JXQotCg0J7QktCY0Isg0JfQntCg0JDQnQor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQkAor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQkAor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Cf0JXQotCg0J7QktCY0Isg0JfQntCg0JjQptCQCivQn9CV0KLQoNCe0JLQmNCLINCX0J7QoNCY0KbQkAor0J/QldCi0KDQntCS0JjQiyDQl9Ce0KDQmtCQCivQn9CV0KLQoNCe0JLQodCa0Jgg0JHQntCg0JjQoQor0J/QldCi0KDQntCS0KHQmtCYINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QldCi0KDQntCS0KHQmtCYINCV0JLQkAor0J/QldCi0KDQntCS0KHQmtCYINCk0JjQlNCQ0J3Qp9CeCivQn9CV0KLQoNCe0JLQodCa0Jgg0KXQldCb0JXQndCQCivQn9CV0KLQoNCe0JLQodCa0Jgg0JzQmNCb0JDQlNCY0J0KK9Cf0JXQotCg0J7QktCh0JrQmCDQnNCY0JvQkNCdCivQn9CV0KLQoNCe0JLQodCa0Jgg0JzQmNCb0J7QlNCQ0KDQmtCQCivQn9CV0KLQoNCe0JLQodCa0Jgg0J/QldCi0JDQoAor0J/QldCi0KDQntCS0KHQmtCYINCh0JvQkNCS0JrQkAor0J/QldCi0KDQo9Co0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cf0JXQotCg0KPQqNCV0JLQodCa0Jgg0JzQntCc0KfQmNCb0J4KK9Cf0JXQotCg0KPQqNCV0JLQodCa0Jgg0J3QkNCU0JAKK9Cf0JXQotCg0KPQqNCY0Ist0J/QkNCg0JjQn9Ce0JLQmNCLINCe0JvQk9CQCivQn9CV0KLQoNCj0KjQmNCLINCS0JDQodCY0IkKK9Cf0JXQotCg0KPQidCV0KHQmtCe0JIg0JTQoNCQ0JPQkNCdCivQn9CV0KLQoNCj0InQldCh0JrQntCSINCU0KDQkNCT0JDQnQor0J/QldCj0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9CV0KPQm9CY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0JXQo9CJ0JAg0JLQntCI0JjQnQor0J/QldCj0KDQkNCn0JAg0JTQoNCQ0JPQkNCdCivQn9CV0KPQoNCQ0KfQkCDQnNCY0JvQlQor0J/QldCS0JDQpyDQodCi0IjQldCf0JDQnQor0J/QldCS0JjQiyDQldCg0JbQldCR0JXQogor0J/QldCX0JTQldCS0KjQldCaINCI0JDQndCV0JcKK9Cf0JXQl9CU0JXQktCo0JXQmiDQmtCQ0KDQmwor0J/QldCX0JXQoNCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQn9Ck0JDQiNCk0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QpNCQ0IjQpNCV0KAg0JDQotCY0JvQkAor0J/QpNCQ0IjQpNCV0KAg0J/QldCi0JDQoAor0J/QpNCQ0IjQpNCV0KDQoiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QpNCQ0KMg0IjQntCS0JDQndCa0JAKK9Cf0KTQo9Cd0KjQotCQ0IjQnSDQiNCe0KHQmNCfCivQn9CY0KjQmtCe0KDQmNCLINCY0JLQkNCdCivQn9CY0KjQn9CV0Jog0JzQkNCg0KLQkAor0J/QmNCo0KLQkNCb0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cf0JjQqNCi0JDQm9Ce0JLQmNCLINCc0JjQoNCa0J4KK9Cf0JjQi9Cj0KDQmNCLINCW0JjQktCa0J4KK9Cf0JjQi9Cj0KDQmNCLINCc0JjQmtCeCivQn9CY0JbQo9Cg0JjQptCQINCc0JDQotCeCivQn9CY0JPQmyDQkNCd0JAKK9Cf0JjQk9CbINCY0JzQoNCVCivQn9CY0KXQkNCI0JvQmNCLINCR0JvQkNCWCivQn9CY0KXQm9CV0KAg0IjQntCh0JjQnwor0J/QmNCl0JvQldCgINCh0KLQkNCd0JrQniDQlNCgCivQn9CY0KXQm9CV0KAg0KLQntCU0J7QoAor0J/QmNCI0JDQndCY0Isg0JTQkNCd0JjQiNCV0JsKK9Cf0JjQiNCV0KLQm9Ce0JLQmNCLINCR0KDQkNCd0J4KK9Cf0JjQiNCV0KLQm9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0JjQiNCj0JrQntCS0JjQiyDQldCb0JfQkAor0J/QmNCI0KPQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Cf0JjQmtCh0JjQkNCU0JXQoSDQntCd0JTQoNCV0IgKK9Cf0JjQmtCh0JjQiNCQ0JTQldChINCQ0J3QkAor0J/QmNCa0KHQmNCI0JDQlNCV0KEg0J/QkNCS0JXQmwor0J/QmNCa0KHQmNCI0JDQlNCV0KEg0J/QkNCS0JvQlQor0J/QmNCa0KPQm9CQINCC0J7QoNCC0JUKK9Cf0JjQmtCj0JvQkCDQkdCg0JDQndCa0J4KK9Cf0JjQmyDQkNCd0JTQoNCY0IjQkAor0J/QmNCbINCc0JjQpdCQ0IjQm9CeCivQn9CY0Jsg0KHQotCV0JLQkNCdCivQn9CY0Jsg0KLQldCg0JXQl9CQCivQn9CY0JvQkNCgINCc0JDQoNCY0KbQkAor0J/QmNCb0KYg0J3QkNCd0JTQntCgCivQn9CY0JvQpiDQoNCV0JbQlQor0J/QmNCb0KYg0JfQntCb0KLQkNCdCivQn9CY0JvQldCgINCa0JDQoNCb0J4KK9Cf0JjQm9CY0Kgg0JDQndCQCivQn9CY0JvQmNCoINCQ0J3QlNCg0JDQqAor0J/QmNCb0JjQqCDQiNCe0KHQmNCfCivQn9CY0JvQmNCo0JXQoCDQgtCe0KDQgtCVCivQn9CY0JvQmNCLINCW0JDQoNCa0J4KK9Cf0JjQm9CY0Isg0JDQndCi0J7QnQor0J/QmNCb0JjQiyDQkdCe0KDQmNCS0J7QiAor0J/QmNCb0JjQiyDQkdCe0KDQngor0J/QmNCb0JjQiyDQk9CQ0JLQoNCQCivQn9CY0JvQmNCLINCI0J7QktCQ0J0KK9Cf0JjQm9CY0Ist0JrQkNCb0JXQndCY0Isg0JzQmNCb0JjQndCa0JAKK9Cf0JjQm9CY0Isg0InQmNCJ0JAKK9Cf0JjQm9CY0Isg0JzQmNCb0J7QqAor0J/QmNCb0JjQiyDQnNCY0JvQo9Ci0JjQnQor0J/QmNCb0JjQiyDQoNCQ0J3QmtCeCivQn9CY0JvQmNCLINCh0JvQkNCS0JrQngor0J/QmNCb0JjQiyDQodCg0JHQntCJ0KPQkQor0J/QmNCb0JjQiyDQodCi0JDQndCa0J4KK9Cf0JjQm9CY0Isg0KHQotCV0JLQkNCdCivQn9CY0JvQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0JjQm9CY0J/QntCSINCV0JLQkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCn0JXQlNCQCivQn9CY0JvQmNCf0J7QktCY0Isg0JbQmNCS0JrQngor0J/QmNCb0JjQn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JjQm9CY0J/QntCS0JjQiyDQgtCj0KDQkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCQ0J3QgtCQCivQn9CY0JvQmNCf0J7QktCY0Isg0JHQntCo0JrQngor0J/QmNCb0JjQn9Ce0JLQmNCLINCR0J7QltCY0JTQkNCgCivQn9CY0JvQmNCf0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9CY0JvQmNCf0J7QktCY0Isg0KbQktCY0IjQldCi0JAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQptCS0JjQiNCV0KLQkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCU0JDQndCVCivQn9CY0JvQmNCf0J7QktCY0Isg0JTQkNCd0JjQptCQCivQn9CY0JvQmNCf0J7QktCY0Isg0JTQkNCd0JjQptCQCivQn9CY0JvQmNCf0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9CY0JvQmNCf0J7QktCY0Isg0JTQoNCQ0JPQngor0J/QmNCb0JjQn9Ce0JLQmNCLINCT0J7QoNCQ0J0KK9Cf0JjQm9CY0J/QntCS0JjQiyDQiNCe0JvQkNCdCivQn9CY0JvQmNCf0J7QktCY0Isg0IjQntCS0JDQnQor0J/QmNCb0JjQn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQidCj0JHQngor0J/QmNCb0JjQn9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQn9CY0JvQmNCf0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cf0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9CY0JvQmNCf0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JjQm9CY0J/QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9CV0JLQkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Cf0JjQm9CY0J/QntCS0JjQiyDQnNCY0KDQmtCeCivQn9CY0JvQmNCf0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9CY0JvQmNCf0J7QktCY0Isg0J/QldCi0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cf0JjQm9CY0J/QntCS0JjQiyDQoNCQ0JTQlQor0J/QmNCb0JjQn9Ce0JLQmNCLINCg0JDQlNCVCivQn9CY0JvQmNCf0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0J/QmNCb0JjQn9Ce0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQn9CY0JvQmNCf0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9CY0JvQmNCf0J7QktCY0Isg0KHQn9Ce0JzQldCd0JrQngor0J/QmNCb0JjQn9Ce0JLQmNCLINCh0KLQkNCd0JAKK9Cf0JjQm9CY0J/QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JjQm9CY0J/QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0JjQm9CY0J/QntCS0JjQiyDQodCi0JXQktCeCivQn9CY0JvQmNCf0J7QktCY0Isg0JLQntCI0JjQnQor0J/QmNCb0JjQn9Ce0JLQmNCLINCX0J7QoNCY0KbQkAor0J/QmNCb0JjQn9Ce0JLQmNCLINCX0JLQntCd0JrQngor0J/QmNCJ0JjQiyDQnNCQ0KDQmNCI0JDQnQor0J/QmNCb0JrQniDQmNCg0JXQndCQCivQn9CY0JvQmtCeINCf0JDQktCb0JUKK9Cf0JjQm9Ce0JLQmNCLINCU0JXQodCY0JzQmNCgCivQn9CY0JvQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QmNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QmNCd0IvQmNCgINCI0JDQnQor0J/QmNCd0IvQmNCgINCS0JvQkNCU0JjQnNCY0KAKK9Cf0JjQndCL0JjQoCDQl9CU0JXQndCa0J4KK9Cf0JjQndCL0IjQldCgINCe0J3QlNCg0JXQiAor0J/QmNCd0IvQiNCV0KAg0KHQkNCc0KPQldCbCivQn9CY0J3Qi9CI0JXQoCDQodCQ0JzQo9CY0JvQngor0J/QmNCK0KPQqNCY0Isg0JjQm9CY0IjQkAor0J/QmNCK0KPQpSDQnNCY0KDQiNCQ0J3QkAor0J/QmNCK0KPQpSDQn9CV0KLQkNCgCivQn9CY0J3QotCQ0Kcg0KTQoNCQ0IrQngor0J/QmNCd0KLQkNCnINCb0JDQlNCY0KHQm9CQ0JIKK9Cf0JjQndCi0JDQpyDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0J7QldCmCivQn9CY0J3QotCQ0Kcg0JLQldCh0J3QkAor0J/QmNCd0KLQkNCLINCC0J7QoNCC0JUKK9Cf0JjQndCi0JDQiyDQnNCQ0KDQmNCI0JAKK9Cf0JjQndCi0JDQoNCY0Isg0IjQkNCh0J3QkAor0J/QmNCd0KLQkNCg0JjQiyDQiNCe0JLQkNCdCivQn9CY0J3QotCV0KAg0JDQlNCg0JjQldCd0JUKK9Cf0JjQndCi0JXQoCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QmNCd0KLQldCgINCQ0J3QlNCg0JDQqAor0J/QmNCd0KLQldCgINCR0JXQm9CQCivQn9CY0J3QotCV0KAg0JHQldCb0JAKK9Cf0JjQndCi0JXQoCDQpNCg0JDQitCQCivQn9CY0J3QotCV0KAg0JjQnNCg0JUKK9Cf0JjQndCi0JXQoCDQiNCQ0J3QntCoCivQn9CY0J3QotCV0KAg0JrQkNCg0J7QiQor0J/QmNCd0KLQldCgINCa0JDQotCQ0JvQmNCdCivQn9CY0J3QotCV0KAg0JvQldCd0JrQkAor0J/QmNCd0KLQldCgINCb0JjQktCY0IjQkAor0J/QmNCd0KLQldCgINCc0JDQoNCY0IjQkAor0J/QmNCd0KLQldCgINCc0JjQpdCQ0IkKK9Cf0JjQndCi0JXQoCDQnNCY0KXQkNCJCivQn9CY0J3QotCV0KAg0KHQotCV0JLQkNCdCivQn9CY0J3QotCV0KAg0KLQmNCR0J7QoAor0J/QmNCd0KLQldCgINCS0JXQoNCQCivQn9CY0J3QotCV0KAg0JLQiNCV0JrQntCh0JvQkNCSCivQn9CY0J/QldCgINCS0JXQm9CY0JHQntCgCivQn9CY0J/QldCg0JDQpiDQndCQ0JTQkAor0J/QmNCf0JXQoNCa0J7QkiDQkNCd0JrQkAor0J/QmNCf0JXQoNCh0JrQmCDQltCY0JLQkAor0J/QmNCf0JXQoNCh0JrQmCDQkNCd0JAKK9Cf0JjQn9CV0KDQodCa0Jgg0JTQoNCQ0JPQntCc0JjQoAor0J/QmNCf0JXQoNCh0JrQmCDQmtCe0KHQotCQCivQn9CY0KDQpiDQlNCQ0J3QmNCm0JAKK9Cf0JjQoNCYINCI0JDQndCe0KgKK9Cf0JjQoNCYINCI0J7QltCV0KQKK9Cf0JjQoNCYINCI0J7QodCY0J8KK9Cf0JjQoNCYINCI0J7QodCY0J8KK9Cf0JjQoNCY0Isg0JjQkdCg0JDQpdCY0JwKK9Cf0JjQoNCY0Isg0J7QodCc0JDQnQor0J/QmNCg0JjQiyDQl9Ce0KDQkAor0J/QmNCg0JjQktCQ0KLQoNCY0Isg0JTQo9Co0JDQndCa0JAKK9Cf0JjQoNCc0JDQiNCV0KAg0IjQntCh0JjQnwor0J/QmNCg0J7QqNCa0Jgg0JTQoNCQ0JPQmNCm0JAKK9Cf0JjQoNCe0KjQmtCYINCI0KPQm9CY0IjQkNCd0JAKK9Cf0JjQoNCe0KjQmtCYINCc0JjQntCU0KDQkNCTCivQn9CY0KDQntCo0JrQmCDQktCQ0KHQkAor0J/QmNCg0KLQmNCLINCa0KHQldCd0JjQiNCQCivQn9CY0KDQotCY0Isg0KDQkNCU0JjQndCa0JAKK9Cf0JjQoNCi0JjQiyDQodCQ0JLQldCi0JAKK9Cf0JjQoSDQldCU0JjQotCQCivQn9CY0KHQkNCn0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQn9CY0KHQkNCgINCo0JDQndCU0J7QoAor0J/QmNCh0JDQoCDQlNCj0KjQkNCdCivQn9CY0KHQkNCgINCI0J7QltCV0KQKK9Cf0JjQodCQ0KAg0JvQkNCh0JvQngor0J/QmNCh0JDQoNCV0JIg0ILQntCg0ILQlQor0J/QmNCh0JDQoNCV0JIg0JXQnNCY0JvQmNCI0JAKK9Cf0JjQodCQ0KDQldCSINCa0JDQotCY0KbQkAor0J/QmNCh0JDQoNCV0JIg0JzQmNCb0JDQnQor0J/QmNCh0JDQoNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cf0JjQodCQ0KDQldCS0JjQiyDQnNCY0KDQmtCeCivQn9CY0KHQkNCg0JXQktCY0Isg0JzQmNCg0JrQngor0J/QmNCh0JDQoNCV0JLQmNCLINCc0JjQotCQ0KAKK9Cf0JjQodCQ0KDQldCS0JjQiyDQodCf0JDQodCV0J3QmNCI0JAKK9Cf0JjQodCQ0KDQmNCLINCC0KPQoNCQCivQn9CY0KHQkNCg0JjQiyDQgtCj0KDQngor0J/QmNCh0JDQoNCY0Isg0JHQm9CQ0JbQngor0J/QmNCh0JDQoNCY0Isg0JHQoNCQ0J3QmtCeCivQn9CY0KHQkNCg0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0JjQodCQ0KDQmNCLINCU0KDQkNCT0J4KK9Cf0JjQodCQ0KDQmNCLINCd0JXQgtCeCivQn9CY0KHQkNCg0JjQiyDQntCh0KLQntCI0JAKK9Cf0JjQodCQ0KDQmNCLINCe0KHQotCe0IjQkAor0J/QmNCh0JDQoNCY0Isg0J/QkNCS0JvQlQor0J/QmNCh0JDQoNCY0Isg0JLQm9CQ0JTQngor0J/QmNCh0JDQoNCe0JIg0ILQntCg0ILQlQor0J/QmNCh0JDQoNCe0JIg0JrQkNCi0JjQptCQCivQn9CY0KHQkNCg0J7QkiDQktCQ0KHQkAor0J/QmNCi0JAg0JzQkNCl0JzQo9CiCivQn9CY0KLQkCDQnNCQ0KXQnNCj0KIKK9Cf0JjQotCe0JzQkNCn0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQn9CY0KLQntCc0JDQp9CY0Isg0JLQm9CQ0JTQkAor0J/QmNCi0KPQmiDQndCQ0JTQkAor0J/QmNCj0JrQntCS0JjQiyDQmNCS0JDQnQor0J/QmNCj0JrQntCS0JjQiyDQnNCQ0JPQlNCQCivQn9CY0JLQkNCnINCR0J7QodCY0InQmtCQCivQn9CY0JLQkNCmINCU0KDQkNCT0J7QidCj0JEKK9Cf0JjQktCQ0KYg0JzQmNCb0J7QoNCQ0JQKK9Cf0JjQktCQ0KYg0JzQmNCb0J7QktCQ0J0KK9Cf0JjQktCQ0KYg0JfQktCe0J3QmNCc0JjQoAor0J/QmNCS0JDQoNCh0JrQmCDQkdCg0JDQndCa0JAKK9Cf0JjQktCQ0KDQodCa0Jgg0JTQo9Co0JDQnQor0J/QmNCS0JDQoNCh0JrQmCDQnNCY0J7QlNCg0JDQkwor0J/QmNCS0JDQoNCh0JrQmCDQoNCQ0KLQntCc0JjQoAor0J/QmNCS0JDQoNCh0JrQmCDQodCb0JDQktCY0KbQkAor0J/QmNCS0JDQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9Cf0JjQktCQ0KDQodCa0Jgg0JLQldCh0JXQm9CY0J0g0JzQoCDQn9ClCivQn9CY0JLQndCY0KfQmtCYINCR0J7Qk9CU0JDQndCa0JAKK9Cf0JjQktCd0JjQp9Ca0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9CY0JLQndCY0KfQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0J/QmNCS0J3QmNCn0JrQmCDQkdCg0JDQndCa0JAKK9Cf0JjQktCd0JjQp9Ca0Jgg0JTQoNCQ0JPQkNCdCivQn9CY0JLQndCY0KfQmtCYINCT0J7QoNCU0JDQndCQCivQn9CY0JLQndCY0KfQmtCYINCY0JLQkNCd0JrQkAor0J/QmNCS0J3QmNCn0JrQmCDQmtCQ0KLQkNCg0JjQndCQCivQn9CY0JLQndCY0KfQmtCYINCc0JDQoNCY0IjQkAor0J/QmNCS0J3QmNCn0JrQmCDQnNCY0JvQkNCdCivQn9CY0JLQndCY0KfQmtCYINCc0JjQm9CV0KLQkAor0J/QmNCS0J3QmNCn0JrQmCDQoNCQ0JTQldCd0JrQngor0J/QmNCS0J3QmNCn0JrQmCDQoNCQ0IjQmtCeCivQn9CY0JLQndCY0KfQmtCYINCh0KLQntCI0JrQkAor0J/QmNCS0J3QmNCn0JrQmCDQodCS0JXQotCe0JfQkNCgCivQn9CI0JDQndCY0Isg0JzQmNCl0JDQiNCb0J4KK9Cf0IjQkNCd0JjQiyDQoNCY0KHQotCQCivQn9CI0JXQqNCn0JjQiyDQkdCe0JPQntCJ0KPQkQor0J/QiNCV0KjQp9CY0Isg0JvQldCf0J7QodCQ0JLQkAor0J/QiNCV0KjQp9CY0Isg0JzQkNCg0JjQiNCQCivQn9CI0JXQqNCn0JjQiyDQnNCY0JvQldCS0JAKK9Cf0IjQldCo0KfQmNCLINCd0J7QktCQ0JoKK9Cf0IjQldCo0JjQktCQ0KYg0JfQlNCg0JDQktCa0J4KK9Cf0IjQldCi0JvQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0J/QiNCV0JLQkNCnINCd0JjQmtCe0JvQkAor0J/QiNCV0JLQkNCmINCR0KDQkNCd0JrQngor0J/QiNCV0JLQkNCmINCU0KPQqNCQ0J0KK9Cf0IjQldCS0JDQpiDQodCi0JXQktCQ0J0KK9Cf0IjQldCS0JDQpiDQktCb0JDQlNCY0JzQmNCgCivQn9CI0JXQktCQ0KYg0JfQntCg0JAKK9Cf0IjQldCS0JDQm9CY0KbQkCDQo9Cg0J7QqAor0J/QiNCV0JLQmNCLINCC0KPQoNCQ0IIKK9Cf0IjQldCS0JjQiyDQkdCe0JbQngor0J/QiNCV0JLQmNCLINCc0JjQoNCa0J4g0JTQoAor0J/QiNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkCDQlNCgCivQn9Cb0JDQp9Ca0JjQiyDQltCQ0KDQmtCeCivQn9Cb0JDQp9Ca0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/Qm9CQ0KfQmtCY0Isg0JHQoNCQ0J3QmtCeCivQn9Cb0JDQp9Ca0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQn9Cb0JDQp9Ca0JjQiyDQodCb0JDQktCa0J4KK9Cf0JvQkNCn0JrQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0JvQkNCn0JrQniDQodCi0IjQldCf0JDQnQor0J/Qm9CQ0KfQmtCe0JIg0JbQmNCS0JrQkAor0J/Qm9CQ0KfQmtCe0JIg0ILQntCg0ILQlQor0J/Qm9CQ0KfQmtCe0JIg0JHQntCg0JjQktCe0IgKK9Cf0JvQkNCn0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0J/Qm9CQ0KfQmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Cb0JDQp9Ca0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0JvQkNCn0JrQntCSINCR0KDQkNCd0JrQkAor0J/Qm9CQ0KfQmtCe0JIg0JTQo9Co0JDQnQor0J/Qm9CQ0KfQmtCe0JIg0JjQm9Ce0J3QmtCQCivQn9Cb0JDQp9Ca0J7QkiDQnNCY0JvQkNCdCivQn9Cb0JDQp9Ca0J7QkiDQnNCY0KDQntCJ0KPQkQor0J/Qm9CQ0KfQmtCe0JIg0J/QkNCI0JAKK9Cf0JvQkNCn0JrQntCSINCf0JXQoNCQCivQn9Cb0JDQp9Ca0J7QkiDQn9CV0KLQkNCgCivQn9Cb0JDQp9Ca0J7QkiDQoNCj0JTQntCb0KQKK9Cf0JvQkNCn0JrQntCSINCh0JDQktCQCivQn9Cb0JDQp9Ca0J7QkiDQodCQ0JLQldCi0JAKK9Cf0JvQkNCn0JrQntCSINCh0JjQnNCQCivQn9Cb0JDQp9Ca0J7QkiDQodCi0JDQndCY0JzQmNCgCivQn9Cb0JDQp9Ca0J7QkiDQodCi0JXQktCQ0J0KK9Cf0JvQkNCn0JrQntCSINCh0KLQldCS0JAKK9Cf0JvQkNCn0JrQntCSINCh0KLQntCI0JDQnQor0J/Qm9CQ0KfQmtCe0JIg0KHQktCV0KLQntCX0JDQoAor0J/Qm9CQ0KfQmtCe0JIg0JLQo9Ca0J7QodCQ0JLQkAor0J/Qm9CQ0KfQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0JvQkNCn0JrQntCS0JjQiyDQn9CQ0IjQkAor0J/Qm9CQ0KYg0JXQlNCeCivQn9Cb0JDQmtCQ0JvQntCS0JjQiyDQnNCY0JvQkNCU0JjQnQor0J/Qm9CQ0J3Qp9CQ0Jog0JDQnNCQ0JvQmNCI0JAKK9Cf0JvQkNCd0KfQkNCaINCV0KPQpNCV0JzQmNCI0JAKK9Cf0JvQkNCd0KfQkNCaINCV0KPQk9CV0J0KK9Cf0JvQkNCd0KfQkNCaINCI0J7QktCQ0J0KK9Cf0JvQkNCd0KfQkNCaINCc0JjQpdCQ0IjQm9CeCivQn9Cb0JDQndCn0JDQmiDQnNCY0KDQntCh0JvQkNCSINCU0KAg0J/QoNCe0KQKK9Cf0JvQkNCd0JjQiyDQoNCQ0JTQntCS0JDQnQor0J/Qm9CQ0J3QmNCLINCX0JTQldCd0JrQkAor0J/Qm9CQ0J3QmNCd0KfQmNCLINCc0JjQndCQCivQn9Cb0JDQndCY0J3Qp9CY0Isg0JLQldCh0JXQm9CY0J0KK9Cf0JvQkNCK0JDQndCY0J0g0KDQkNCU0J7QnNCY0KAKK9Cf0JvQkNCd0J7QiNCV0JLQmNCLINCc0JjQm9Cj0KLQmNCdINCU0KAKK9Cf0JvQkNCd0J7QktCY0Isg0JLQldCh0J3QkAor0J/Qm9CQ0KLQmNCo0JAg0JzQmNCb0JDQnQor0J/Qm9CQ0KLQmNCo0JAg0JzQmNCe0JTQoNCQ0JMKK9Cf0JvQkNCS0KjQmNCLINCQ0J3QgtCQCivQn9Cb0JDQktCo0JjQiyDQkNCd0JjQptCQCivQn9Cb0JDQktCo0JjQiyDQkNCd0JjQptCQCivQn9Cb0JDQktCo0JjQiyDQkNCd0JrQkAor0J/Qm9CQ0JLQqNCY0Isg0JHQntCo0JrQngor0J/Qm9CQ0JLQqNCY0Isg0JHQntCW0JAKK9Cf0JvQkNCS0KjQmNCLINCR0J7QltCQCivQn9Cb0JDQktCo0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/Qm9CQ0JLQqNCY0Isg0JHQntCT0J7QnNCY0KAKK9Cf0JvQkNCS0KjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0JvQkNCS0KjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/Qm9CQ0JLQqNCY0Isg0JHQoNCQ0J3QmtCeCivQn9Cb0JDQktCo0JjQiyDQkdCg0JDQndCa0J4KK9Cf0JvQkNCS0KjQmNCLINCR0KDQkNCd0JrQngor0J/Qm9CQ0JLQqNCY0Isg0KbQktCY0IjQngor0J/Qm9CQ0JLQqNCY0Isg0JTQoNCQ0JPQkNCdCivQn9Cb0JDQktCo0JjQiyDQlNCj0KjQkNCdCivQn9Cb0JDQktCo0JjQiyDQlNCj0KjQmNCm0JAKK9Cf0JvQkNCS0KjQmNCLINCT0J7QoNCU0JDQndCQCivQn9Cb0JDQktCo0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J/Qm9CQ0JLQqNCY0Isg0IjQntCS0JDQndCa0JAKK9Cf0JvQkNCS0KjQmNCLINCI0J7QktCQ0J0KK9Cf0JvQkNCS0KjQmNCLINCI0J7QktCQ0J0KK9Cf0JvQkNCS0KjQmNCLINCI0J7QktCY0KbQkAor0J/Qm9CQ0JLQqNCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0J/Qm9CQ0JLQqNCY0Isg0JrQoNCh0KLQkAor0J/Qm9CQ0JLQqNCY0Isg0JvQkNCX0JDQoAor0J/Qm9CQ0JLQqNCY0Isg0InQmNCJ0JDQndCQCivQn9Cb0JDQktCo0JjQiyDQidCj0JHQmNCm0JAKK9Cf0JvQkNCS0KjQmNCLINCJ0KPQkdCY0KbQkAor0J/Qm9CQ0JLQqNCY0Isg0InQo9CR0JjQndCa0JAKK9Cf0JvQkNCS0KjQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9Cb0JDQktCo0JjQiyDQm9Cj0JrQkAor0J/Qm9CQ0JLQqNCY0Isg0JzQkNCg0JjQiNCQCivQn9Cb0JDQktCo0JjQiyDQnNCQ0KDQmNCd0JrQngor0J/Qm9CQ0JLQqNCY0Isg0JzQkNCg0JjQndCa0J4KK9Cf0JvQkNCS0KjQmNCLINCc0JjQm9CV0J3QmtCeCivQn9Cb0JDQktCo0JjQiyDQnNCY0JvQldCd0JrQngor0J/Qm9CQ0JLQqNCY0Isg0JzQmNCb0JjQptCQCivQn9Cb0JDQktCo0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JvQkNCS0KjQmNCLINCc0JjQm9CY0J3QmtCQCivQn9Cb0JDQktCo0JjQiyDQnNCY0JvQntCoCivQn9Cb0JDQktCo0JjQiyDQnNCY0JvQntCc0JjQoAor0J/Qm9CQ0JLQqNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0JvQkNCS0KjQmNCLINCc0JjQoNCa0J4KK9Cf0JvQkNCS0KjQmNCLINCc0JjQoNCa0J4KK9Cf0JvQkNCS0KjQmNCLINCc0JjQoNCe0KHQm9CQ0JIg0JTQoCDQm9CV0JrQkNCgCivQn9Cb0JDQktCo0JjQiyDQnNCY0KLQkNCgCivQn9Cb0JDQktCo0JjQiyDQnNCY0KLQkAor0J/Qm9CQ0JLQqNCY0Isg0JzQntCc0KfQmNCb0J4KK9Cf0JvQkNCS0KjQmNCLINCc0J7QnNCY0KAKK9Cf0JvQkNCS0KjQmNCLINCd0JXQoNCQCivQn9Cb0JDQktCo0JjQiyDQndCY0JrQntCb0JAKK9Cf0JvQkNCS0KjQmNCLINCd0J7QktCa0JAKK9Cf0JvQkNCS0KjQmNCLINCf0JDQktCQCivQn9Cb0JDQktCo0JjQiyDQn9CV0KLQkNCgCivQn9Cb0JDQktCo0JjQiyDQn9CV0KLQkNCgCivQn9Cb0JDQktCo0JjQiyDQoNCQ0JTQlQor0J/Qm9CQ0JLQqNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cf0JvQkNCS0KjQmNCLINCg0JDQlNCe0JLQkNCdCivQn9Cb0JDQktCo0JjQiyDQoNCQ0JTQntCS0JDQnQor0J/Qm9CQ0JLQqNCY0Isg0KDQkNCd0JrQngor0J/Qm9CQ0JLQqNCY0Isg0KDQkNCd0JrQngor0J/Qm9CQ0JLQqNCY0Isg0KHQmNCc0JAKK9Cf0JvQkNCS0KjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JvQkNCS0KjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0JvQkNCS0KjQmNCLINCh0KLQldCS0JDQnQor0J/Qm9CQ0JLQqNCY0Isg0KHQotCV0JLQkNCdCivQn9Cb0JDQktCo0JjQiyDQodCi0JXQktCeCivQn9Cb0JDQktCo0JjQiyDQotCe0JTQlQor0J/Qm9CQ0JLQqNCY0Isg0KLQntCU0J7QoAor0J/Qm9CQ0JLQqNCY0Isg0JLQmNCd0JrQngor0J/Qm9CQ0JLQqNCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cf0JvQkNCS0KjQmNCLINCS0JvQkNCU0JAKK9Cf0JvQkNCS0KjQmNCLINCS0J7QiNCY0J0KK9Cf0JvQkNCS0KjQmNCLINCS0J7QiNCY0J0KK9Cf0JvQkNCS0KjQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Cf0JvQkNCS0KjQmNCLINCX0J7QoNCa0JAKK9Cf0JvQkNCS0KjQmNCdINCU0KPQqNCQ0J0KK9Cf0JvQkNCS0KjQmNCdINCc0JjQm9CY0KbQkAor0J/Qm9CQ0JLQqNCY0J0g0KHQotCV0JLQkNCdCivQn9Cb0JDQktCQ0KYg0JbQldCJ0JrQngor0J/Qm9CQ0JLQkNCmINCU0KPQqNCQ0J0KK9Cf0JvQkNCS0JDQpiDQiNCQ0J3QmtCeCivQn9Cb0JDQktCmINCQ0KXQnNCV0KIKK9Cf0JvQkNCS0KYg0JHQkNCI0KDQo9CoCivQn9Cb0JDQktCJ0JDQndCY0J0g0JbQmNCS0JrQngor0J/Qm9CQ0JfQkNCn0JjQiyDQktCY0JTQntCI0JUKK9Cf0JvQkNCX0JjQndCQINCf0KPQndCY0KjQkAor0J/Qm9CV0KjQkCDQiNCe0KHQmNCfCivQn9Cb0JXQqNCVINCT0J7QoNCQ0J0KK9Cf0JvQldCo0JrQniDQkNCd0JjQptCQCivQn9Cb0JXQqNCi0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0JvQldCo0KLQmNCLINCc0JjQoNCI0JDQndCQCivQn9Cb0JXQi9CQ0Kgg0JTQkNCd0JjQm9CeCivQn9Cb0JXQi9CQ0Kgg0JjQm9CY0IjQkAor0J/Qm9CV0IvQkNCoINCa0JDQotCY0KbQkAor0J/Qm9CV0IvQkNCoINCc0JjQm9CV0JLQkAor0J/Qm9CV0IvQkNCoINCg0JDQlNCVCivQn9Cb0JXQi9CQ0Kgg0KDQntCX0JDQm9CY0IjQkAor0J/Qm9CV0JzQmNCLINCC0KPQoNCeCivQn9Cb0JXQnNCY0Isg0JTQkNCd0JUKK9Cf0JvQldCc0JjQiyDQnNCY0JvQkNCdCivQn9Cb0JXQodCa0J7QitCQINCc0JjQm9Ce0IjQmNCm0JAKK9Cf0JvQldCh0JrQntCK0JjQiyDQkNCc0JDQm9CY0IjQkAor0J/Qm9CV0KHQmtCe0JLQmNCLINCQ0J3QotCj0J0KK9Cf0JvQldCh0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0JvQldCh0JrQntCS0JjQiyDQl9CU0KDQkNCS0JrQngor0J/Qm9CV0KLQldCbINCa0KHQldCd0JjQiNCQCivQn9Cb0JXQotCV0Jsg0JzQmNCb0JDQnQor0J/Qm9CV0KLQmNCa0JDQn9CY0Isg0JTQoNCQ0JPQkNCdCivQn9Cb0JXQotCY0JrQntCh0JjQiyDQidCV0KDQmtCQCivQn9Cb0JXQotCY0JrQntCh0JjQiyDQn9CV0KLQkNCgCivQn9Cb0JXQotCbINCe0KLQmNCb0JjQiNCQCivQn9Cb0JjQodCd0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0JvQmNCh0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQn9Cb0JjQktCQ0KAg0IjQntCS0JDQnQor0J/QidCj0KbQniDQkdCg0JDQndCa0J4KK9Cf0JvQntClINCU0KDQkNCT0J4KK9Cf0JvQntClINCk0KDQkNCK0JAKK9Cf0JvQntCIINCc0JDQoNCY0IjQkAor0J/Qm9Ce0KEg0JzQmNCe0JTQoNCQ0JMKK9Cf0JvQo9CW0JDQoNCV0JIg0JvQkNCX0JDQoAor0J/Qm9Cj0JbQkNCg0JXQkiDQntCb0JjQktCV0KDQkCDQlNCgCivQn9Cb0KPQltCQ0KDQntCSINCc0JjQm9CV0J3QmtCeCivQn9Cb0KPQmtCQ0JLQldCmINCY0JLQkNCdCivQn9Cb0JfQkNCaINCU0KDQkNCT0J7QodCb0JDQkgor0J/QntCn0JDQndCY0Isg0KLQoNCY0J/Qngor0J/QntCn0JXQmiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0J7Qp9CV0Jog0JHQoNCQ0J3QmtCeCivQn9Ce0KfQldCaINCJ0JjQidCQ0J3QkAor0J/QntCn0JXQmiDQnNCY0JvQntCS0JDQnQor0J/QntCn0JXQmiDQktCb0JDQlNCQCivQn9Ce0KfQldCaINCS0JvQkNCU0JjQodCb0JDQkgor0J/QntCn0JXQmiDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cf0J7Qp9CV0KLQkNCaINCc0JjQm9CV0J3QmtCeCivQn9Ce0KfQldCi0JDQmiDQnNCY0JvQmNCm0JAKK9Cf0J7Qp9Cj0KfQkCDQlNCc0JjQotCQ0KAKK9Cf0J7Qp9Cj0KfQkCDQlNCj0KjQkNCdCivQn9Ce0KfQo9Cn0JAg0IjQntCS0JDQndCa0JAKK9Cf0J7Qp9Cj0KfQkCDQn9CV0KLQkNCgCivQn9Ce0KfQo9Cn0JAg0KDQkNCU0JzQmNCb0JAKK9Cf0J7QqNCn0JjQiyDQldCg0JjQmtCQCivQn9Ce0KjQkCDQgtCj0KDQkAor0J/QntCo0JAg0JDQndCU0KDQkNCoCivQn9Ce0KjQkCDQlNCg0JDQk9CY0KbQkAor0J/QntCo0JAg0JjQqNCi0JLQkNCdCivQn9Ce0KjQkCDQmtCQ0KDQm9CeCivQn9Ce0KjQkCDQn9CV0KLQkNCgCivQn9Ce0KjQkCDQoNCe0JfQkNCb0JjQiNCQCivQn9Ce0KjQkCDQodCd0JXQltCQ0J3QkAor0J/QntCo0JDQoNCQ0KYg0JTQo9Co0JrQngor0J/QntCo0JDQoNCQ0KYg0JfQntCg0JDQnQor0J/QntCo0KLQkCDQndCY0JrQntCb0JAKK9Cf0J7QqNCi0JjQiyDQgtCe0KDQgtCVINCU0KAKK9Cf0J7QqNCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0J7QqNCi0JjQiyDQnNCY0JvQkNCdCivQn9Ce0KjQotCY0Isg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Cf0J7QqNCi0JjQiyDQodCe0KTQmNCI0JAKK9Cf0J7QqNCi0JjQiyDQodCg0ILQkNCdINCU0JjQn9CbINCY0J3Qkwor0J/QntCo0KLQntCoINCS0JXQoNCQCivQn9Ce0JbQkNCgINCc0JjQm9CY0KbQkAor0J/QntCW0JDQoNCV0JIg0ILQntCg0ILQlQor0J/QntCW0JDQoNCV0JIg0ILQntCg0ILQlQor0J/QntCW0JDQoNCV0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0J7QltCQ0KDQldCSINCQ0J3QgtCV0JvQmtCQCivQn9Ce0JbQkNCg0JXQkiDQlNCe0KDQkAor0J/QntCW0JDQoNCV0JIg0IjQldCb0JXQndCQCivQn9Ce0JbQkNCg0JXQkiDQoNCQ0JTQlQor0J/QntCW0JDQoNCV0JIg0KDQkNCi0J7QnNCY0KDQmtCQCivQn9Ce0JbQkNCg0JXQkiDQoNCQ0KLQntCc0JjQoAor0J/QntCW0JDQoNCV0JIg0KHQotCV0JLQkNCdCivQn9Ce0JbQkNCg0JXQkiDQktCV0KHQldCb0JjQnQor0J/QntCW0JXQk9CQINCc0JjQm9CVCivQn9Ce0JbQldCT0JAg0KHQntCk0JjQiNCQCivQn9Ce0JbQldCT0JAg0KHQotCV0JLQkNCdCivQn9Ce0JbQk9CQ0Igg0JDQndCi0KPQnQor0J/QntCW0JPQkNCIINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0J7QkdCe0KAg0IjQldCb0JXQndCQCivQn9Ce0JHQntCgINCh0KDQldCi0J4KK9Cf0J7QkdCg0JDQnSDQodCi0JXQktCQ0J0KK9Cf0J7QkdCg0JDQnSDQktCb0JDQlNCY0JzQmNCgCivQn9Ce0JHQoNCY0Isg0JjQodCQ0JoKK9Cf0J7QkdCj0IvQkNCd0J7QktCY0Ist0JrQo9CJ0JDQndCa0JjQiyDQqNCj0KXQoNCV0KLQkAor0J/QntCR0KPQgtCQ0J3QntCS0JjQiyDQmNCb0JjQndCa0JAKK9Cf0J7QkdCj0ILQkNCd0J7QktCY0Isg0JzQo9Cl0JDQoNCV0JwKK9Cf0J7QkdCj0ILQkNCd0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0J/QntCm0JDQiNCiINCS0JjQmtCi0J7QoAor0J/QntCm0JzQkNCdINCQ0J3QotCj0J0KK9Cf0J7QptCc0JDQnSDQktCY0JvQmNCcCivQn9Ce0KbQoNCd0JjQiyDQnNCY0JvQlQor0J/QntCm0KDQndCY0Isg0J3QmNCa0J7Qm9CQCivQn9Ce0JTQk9Ce0KDQndCY0Jog0JzQmNCb0JDQnQor0J/QntCU0JPQntCg0J3QmNCaINCg0JDQiNCd0JAKK9Cf0J7QlNCb0JjQn9CV0KYg0JzQkNCg0JjQiNCQCivQn9Ce0JTQnNCQ0IjQntCg0KHQmtCYINCc0JDQoNCQCivQn9Ce0JTQntCR0J3QmNCaINCI0JDQodCd0JAKK9Cf0J7QlNCe0JvQkCDQiNCj0KHQotCY0J3QkAor0J/QntCU0KDQkNCo0KfQkNCd0JjQnSDQiNCe0JLQkNCdCivQn9Ce0JTQoNCQ0KjQp9CQ0J3QmNCdINCd0JDQlNCQCivQn9Ce0JTQoNCQ0KjQp9CQ0J3QmNCdINCS0J7QiNCQCivQn9Ce0JTQoNCQ0JLQkNCmINCR0KDQkNCd0JrQngor0J/QntCT0JDQndCn0JXQkiDQk9Ce0KDQkNCdCivQn9Ce0JPQkNCd0KfQldCSINCT0J7QoNCQ0J0KK9Cf0J7Qk9CQ0Iog0IjQo9Cb0JjQiNCQ0J3QkAor0J/QntCT0KPQkdCV0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQn9Ce0IjQkdCY0Isg0JTQo9Co0JDQnQor0J/QntCI0JUg0IjQntCh0JjQnwor0J/QntCI0JjQiyDQkdCg0JDQndCa0J4KK9Cf0J7QmtCQINCI0J7QodCY0J8KK9Cf0J7QmtCQ0KEg0IjQntCh0JjQnwor0J/QntCa0KDQkNCI0JDQpiDQkNCd0JPQldCb0JjQndCQCivQn9Ce0JrQoNCQ0IjQkNCmINCI0J7QktCQ0J0KK9Cf0J7QmtCg0JDQiNCQ0KYg0IjQntCS0JDQnQor0J/QntCa0KDQkNCI0JDQpiDQnNCY0JvQkNCdCivQn9Ce0JrQoNCQ0IjQkNCmINCc0JjQm9Ce0KDQkNCUCivQn9Ce0JrQoNCQ0IjQkNCmINCg0JDQlNCVCivQn9Ce0JrQoNCQ0IjQkNCmINCh0JvQkNCS0JrQngor0J/QntCa0KDQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0J7QmtCj0KjQldCS0KHQmtCYINCU0J7QkdCg0JjQndCa0JAKK9Cf0J7QmtCj0J/QldCmINCc0JjQm9CQ0J0KK9Cf0J7Qm9CQ0Jog0IjQldCb0JXQndCQCivQn9Ce0JvQkNCaINCI0J7QltCV0KQKK9Cf0J7Qm9CQ0Jog0KHQotCV0JLQkNCdCivQn9Ce0JvQkNCa0J7QktCY0Isg0JXQoNCW0JXQkdCV0KIKK9Cf0J7Qm9CQ0JrQntCS0JjQiyDQiNCQ0J3QntCoCivQn9Ce0JvQkNCd0JXQpiDQpNCg0JDQitCeCivQn9Ce0JvQlSDQndCY0JrQntCb0JAKK9Cf0J7Qm9CVINCd0JjQmtCe0JvQkAor0J/QntCb0JXQlNCY0KbQkCDQlNCj0KjQkNCd0JrQkAor0J/QntCb0JXQndCU0JXQoCDQodCe0KTQmNCI0JAKK9Cf0J7Qm9CV0KDQnNCQ0J0g0JHQldCb0JAKK9Cf0J7Qm9CV0KDQnNCQ0J0g0JzQmNCb0JjQptCQCivQn9Ce0JvQldCi0JDQndCe0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQn9Ce0JvQldCi0J4g0JTQntCc0JXQndCY0JoKK9Cf0J7Qm9CV0KLQniDQmNCS0JDQnQor0J/QntCb0JPQkNCgINCY0KjQotCS0JDQnQor0J/QntCb0JjQiyDQgtCj0KDQkAor0J/QntCb0JjQiyDQkdCe0KjQmtCeCivQn9Ce0JvQmNCLINCU0JDQndCY0KbQkAor0J/QntCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0J7Qm9CY0Isg0InQo9CR0JjQptCQCivQn9Ce0JvQmNCLINCc0JDQoNCY0IjQkNCdCivQn9Ce0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0J7Qm9CY0JzQkNCmINCQ0J3QgtCV0JvQmNCI0JAKK9Cf0J7Qm9CY0J0g0ILQo9Cg0JAKK9Cf0J7Qm9CY0J0g0JvQkNCh0JvQngor0J/QntCb0JjQndCh0JrQmCDQkNCg0JDQndCa0JAKK9Cf0J7QidCQ0KfQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0InQkNCn0JrQmCDQnNCY0JvQmNCm0JAKK9Cf0J7QidCQ0KfQmtCYINCc0JjQm9CY0KbQkAor0J/QntCJ0JDQp9Ca0Jgg0KHQktCV0KLQntCX0JDQoAor0J/QntCJ0JDQmiDQgtCV0KDQggor0J/QntCJ0JDQmiDQldCS0JAKK9Cf0J7QidCQ0Jog0KTQoNCQ0IrQngor0J/QntCJ0JDQmiDQm9CQ0KHQm9CeCivQn9Ce0InQkNCaINCc0JjQqNCQCivQn9Ce0InQkNCaINCc0JjQpdCQ0IkKK9Cf0J7QidCQ0Jog0JzQmNCb0JrQkAor0J/QntCJ0JDQmiDQnNCY0J7QlNCg0JDQkwor0J/QntCJ0JDQmiDQnNCY0J7QlNCg0JDQkwor0J/QntCJ0JDQmiDQndCY0JrQntCb0JAKK9Cf0J7QidCQ0Jog0J3QmNCa0J7Qm9CQCivQn9Ce0InQkNCaINCf0JXQotCQ0KAKK9Cf0J7QidCQ0Jog0KDQkNCd0JrQngor0J/QntCJ0JDQmtCe0JLQmNCLINCh0KLQiNCV0J/QkNCdCivQn9Ce0InQkNCd0KHQmtCYINCI0J7QktCY0KbQkAor0J/QntCJ0JDQndCh0JrQmCDQidCj0JHQmNCm0JAKK9Cf0J7QidCQ0J3QodCa0Jgg0KHQotCe0IjQkNCdCivQn9Ce0InQmNCn0JDQmiDQkNCd0KLQlQor0J/QntCJ0JjQp9CQ0Jog0InQo9CR0JDQnQor0J/QntCJ0JjQiyDQoNCV0KTQmNCaCivQn9Ce0InQntCS0JrQkCDQiNCQ0J0KK9Cf0J7QidCS0JDQqCDQiNCe0JbQldCkCivQn9Ce0JvQntCI0JDQpiDQm9Cj0JrQkAor0J/QntCb0J7QktCY0Isg0JrQntCh0KLQkAor0J/QntCb0J7QktCY0Isg0KHQotCV0JLQngor0J/QntCb0J7QktCY0J3QkCDQgtCe0KDQgtCVCivQn9Ce0JvQntCS0JjQndCQINCU0JDQndCY0IjQldCbCivQn9Ce0JvQntCS0JjQndCQINCY0KHQkAor0J/QntCb0J7QktCY0J3QkCDQnNCY0JvQkNCdCivQn9Ce0JvQntCS0JjQndCQINCc0JjQm9CY0KbQkAor0J/QntCb0J7QktCY0J3QkCDQnNCY0JvQntCg0JDQlAor0J/QntCb0J7QktCY0J3QkCDQndCQ0JTQkAor0J/QntCb0J7QktCY0J3QkCDQndCY0JrQntCb0JAKK9Cf0J7Qm9Ce0JLQmNCd0JAg0J/Qm9CV0JzQldCd0JrQkAor0J/QntCb0J7QktCY0J3QkCDQoNCQ0JTQmNCS0J7QiNCVCivQn9Ce0JvQntCS0JjQndCQINCh0JvQntCR0J7QlNCQ0J0KK9Cf0J7Qm9Ce0JLQmNCd0JAg0KHQotCV0JLQngor0J/QntCb0J7QktCY0J3QkCDQotCe0JTQntCgCivQn9Ce0JvQntCS0JjQndCQINCS0JvQkNCU0JjQnNCY0KAKK9Cf0J7Qm9Ce0JLQmNCd0JAg0JLQm9CQ0JTQngor0J/QntCb0J7QktCY0J3QodCa0Jgg0KHQkNCS0JAKK9Cf0J7Qm9Ci0KPQoNCQINCW0KPQltCQ0J3QkAor0J/QntCb0KLQo9Cg0JAg0JPQkNCR0J7QoAor0J/QntCb0KLQo9Cg0JAg0JjQoNCV0J3QkAor0J/QntCb0KLQo9Cg0JAg0JzQmNCg0JrQngor0J/QntCb0KPQltCQ0J3QodCa0Jgg0JjQktCQ0J3QmtCQCivQn9Ce0JvQo9Cc0JjQoNCQ0KYg0JzQmNCb0JjQptCQCivQn9Ce0JvQo9Ci0JAg0JvQmNCd0JAKK9Cf0J7Qm9CS0JXQoNCV0JbQkNCdLdCe0JHQqNCj0KHQoiDQi9CV0IvQmNCb0JjQiNCQCivQn9Ce0JvQl9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0JvQl9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qm9CX0J7QktCY0Isg0JzQmNCe0JzQmNCgCivQn9Ce0JvQl9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0J7Qm9CX0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0J/QntCc0J7QoNCY0KjQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0J/QntCd0JPQniDQltCj0JbQkNCd0JAKK9Cf0J7QndCT0J4g0IjQkNCd0J7QqAor0J/QntCd0JPQniDQm9CQ0KHQm9CeCivQn9Ce0J3Qk9CeINCh0KLQldCS0JDQnQor0J/QntCK0JDQoNCQ0KYg0KHQkNCS0J4KK9Cf0J7QitCQ0JLQmNCLINCT0J7QoNCU0JDQndCQCivQn9Ce0IrQkNCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0J/QntCK0JDQktCY0Isg0KHQmNCd0JjQqNCQCivQn9Ce0IrQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QntCK0JXQktCY0Isg0J/QldCi0JDQoAor0J/QntCK0JXQktCY0Isg0KHQn9CQ0KHQkNCdCivQn9Ce0IrQldCS0JjQiyDQl9CS0JXQl9CU0JDQnQor0J/QntCK0JjQp9CQ0J0g0KXQntCg0JjQodCb0JDQkgor0J/QntCK0JjQp9CQ0J0g0IjQkNCdCivQn9Ce0IrQmNCn0JDQnSDQiNCe0KHQmNCfCivQn9Ce0IrQmNCT0JXQoCDQgtCj0KDQkAor0J/QntCK0JjQk9CV0KAg0JjQktCQ0J0KK9Cf0J7QndCe0IvQmtCeINCn0JXQlNCe0JzQmNCgCivQn9Ce0J3QntCg0JDQpiDQm9CQ0JfQkNCgCivQn9Ce0J8t0IjQntCS0JDQndCe0JIg0JLQldCg0JAKK9Cf0J7QnyDQl9CU0JXQndCa0J4KK9Cf0J7Qn9CC0KPQoNCC0JXQkiDQnNCY0JvQkNCdCivQn9Ce0J/QkCDQodCf0JDQodCV0J3QmNCI0JAKK9Cf0J7Qn9CQ0JTQmNCLINCW0JjQktCQ0J0KK9Cf0J7Qn9CQ0JTQmNCLINCW0JjQktCQCivQn9Ce0J/QkNCU0JjQiyDQltCY0JLQmtCeCivQn9Ce0J/QkNCU0JjQiyDQgtCe0JrQngor0J/QntCf0JDQlNCY0Isg0ILQo9Ca0JAKK9Cf0J7Qn9CQ0JTQmNCLINCR0KDQkNCd0JrQkAor0J/QntCf0JDQlNCY0Isg0JPQntCI0JrQngor0J/QntCf0JDQlNCY0Isg0JjQodCY0JTQntCgCivQn9Ce0J/QkNCU0JjQiy3QiNCQ0J3Qo9CX0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cf0J7Qn9CQ0JTQmNCLINCJ0JjQidCQ0J3QkAor0J/QntCf0JDQlNCY0Isg0InQo9CR0JjQptCQCivQn9Ce0J/QkNCU0JjQiyDQidCj0JHQngor0J/QntCf0JDQlNCY0Isg0JzQmNCb0JDQnQor0J/QntCf0JDQlNCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0J7Qn9CQ0JTQmNCLINCc0JjQm9CV0J3QmtCeCivQn9Ce0J/QkNCU0JjQiyDQnNCY0JvQldCd0JrQngor0J/QntCf0JDQlNCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0J7Qn9CQ0JTQmNCLINCd0JXQlNCV0InQmtCeCivQn9Ce0J/QkNCU0JjQiyDQndCV0JPQntCS0JDQnQor0J/QntCf0JDQlNCY0Isg0J3QmNCa0J7Qm9CQCivQn9Ce0J/QkNCU0JjQiyDQndCe0JLQkNCaCivQn9Ce0J/QkNCU0JjQiyDQn9CV0KLQmtCeCivQn9Ce0J/QkNCU0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J/QntCf0JDQlNCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cf0J7Qn9CQ0JTQmNCLINCg0JDQlNCc0JjQm9CQCivQn9Ce0J/QkNCU0JjQiyDQoNCQ0KLQntCc0JjQoAor0J/QntCf0JDQlNCY0Isg0KHQmNCb0JLQmNCI0JAKK9Cf0J7Qn9CQ0JTQmNCLINCh0JvQkNCS0JrQngor0J/QntCf0JDQlNCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0J/QntCf0JDQlNCY0Isg0KHQotCQ0J3QkAor0J/QntCf0JDQlNCY0Isg0KHQotCe0IjQmNCm0JAKK9Cf0J7Qn9CQ0JTQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cf0J7Qn9CQ0JTQmNCLINCi0JjQpdCe0JzQmNCgCivQn9Ce0J/QkNCU0JjQiyDQktCV0KDQkAor0J/QntCf0JDQlNCY0Isg0JLQntCI0JjQodCb0JDQkiDQkNCU0JLQntCa0JDQogor0J/QntCf0JDQlNCY0Isg0JLQntCI0JjQodCb0JDQkgor0J/QntCf0JDQoNCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QkNCg0JAg0JjQm9CY0IjQkAor0J/QntCf0JDQoNCQINCJ0KPQkdCY0KjQkAor0J/QntCf0JDQoNCQINCi0JDQlNCY0IjQkAor0J/QntCf0JDQoNCQINCX0J7QoNCQ0J0KK9Cf0J7Qn9CQ0KDQmNCLINCW0JjQktCe0IjQmNCdCivQn9Ce0J/QkNCg0JjQiyDQmNCh0JjQlNCe0KAKK9Cf0J7Qn9CQ0KDQmNCLINCc0JDQoNCY0KbQkAor0J/QntCf0JDQoNCY0Isg0J3QldCd0JDQlAor0J/QntCf0JTQkNCd0JrQntCSINCI0KPQlNCY0KLQkAor0J/QntCf0JXQiNCa0J7QkiDQkdCe0KDQmNCh0JvQkNCSCivQn9Ce0J/QldCI0JrQntCSINCJ0JjQidCQ0J3QkAor0J/QntCf0JXQiNCa0J7QkiDQnNCQ0KDQkAor0J/QntCf0JXQndCT0J7QkiDQktCQ0KHQkAor0J/QntCf0JXQodCa0KMg0KDQo9CW0JAKK9Cf0J7Qn9CT0JvQmNCT0J7QoNCY0J0g0J/QkNCS0JvQlQor0J/QntCf0JjQiyDQltCV0InQmtCeCivQn9Ce0J/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QmNCLINCQ0J3QgtCV0JvQmtCeCivQn9Ce0J/QmNCLINCR0KDQkNCd0JrQngor0J/QntCf0JjQiyDQkdCj0JTQmNCc0JjQoAor0J/QntCf0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0J7Qn9CY0Isg0JTQo9Co0JDQnQor0J/QntCf0JjQiyDQlNCj0KjQkNCdCivQn9Ce0J/QmNCLINCU0KPQqNCQ0J0KK9Cf0J7Qn9CY0Isg0JXQlNCY0KLQkAor0J/QntCf0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J/QntCf0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0J/QntCf0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0J7Qn9CY0Isg0InQmNCJ0JDQndCQCivQn9Ce0J/QmNCLINCb0KPQmtCQCivQn9Ce0J/QmNCLINCc0JjQm9CQ0J0KK9Cf0J7Qn9CY0Isg0JzQmNCb0JDQnQor0J/QntCf0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QmNCLINCc0JjQm9CY0KbQkAor0J/QntCf0JjQiyDQnNCY0JvQmNCS0J7QiAor0J/QntCf0JjQiyDQnNCY0KDQkAor0J/QntCf0JjQiyDQnNCY0KDQkAor0J/QntCf0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QntCf0JjQiyDQndCQ0JTQkAor0J/QntCf0JjQiy3Qn9CQ0InQmNCLINCk0JXQntCU0J7QoNCQCivQn9Ce0J/QmNCLINCg0JDQlNCY0JLQntCICivQn9Ce0J/QmNCLINCh0JDQktCQCivQn9Ce0J/QmNCLINCh0JDQktCeCivQn9Ce0J/QmNCLINCh0J3QldCW0JDQndCQCivQn9Ce0J/QmNCLINCh0J7QpNCY0IjQkAor0J/QntCf0JjQiyDQodCe0KTQmNCI0JAKK9Cf0J7Qn9CY0Isg0KHQktCV0KLQntCX0JDQoAor0J/QntCf0JjQiyDQotCe0JzQkAor0J/QntCf0JjQiyDQktCj0JrQmNCm0JAKK9Cf0J7Qn9CY0Isg0JfQntCg0JAKK9Cf0J7Qn9CY0J0g0JjQktCQ0J0KK9Cf0J7Qn9CY0J0g0KDQkNCU0JjQktCe0IgKK9Cf0J7Qn9CY0J0g0JLQmNCi0J7QnNCY0KAKK9Cf0J7Qn9CY0J0g0JLQm9CQ0JTQmNCc0JjQoAor0J/QntCf0JjQktCe0JTQkCDQkdCe0JbQmNCU0JDQoAor0J/QntCf0JjQktCe0JTQkCDQnNCY0JvQntCS0JDQnQor0J/QntCf0JjQktCe0JTQkCDQnNCY0JvQo9Ci0JjQnQor0J/QntCf0JjQktCe0JTQkCDQndCV0JTQldCJ0JrQngor0J/QntCf0JjQktCe0JTQkCDQn9CV0KLQkNCgCivQn9Ce0J/QmNCS0J7QlNCQINCg0JDQlNCY0KHQm9CQ0JIKK9Cf0J7Qn9Cc0JjQpdCQ0IjQm9Ce0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQn9Ce0J/QnNCY0KXQkNCI0JvQntCSINCU0KPQqNCQ0J0KK9Cf0J7Qn9Cd0J7QktCQ0JrQntCSINCU0KDQkNCT0J7QnNCY0KAKK9Cf0J7Qn9Cd0J7QktCQ0JrQntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Cd0J7QktCQ0JrQntCSINCc0JjQm9CY0KbQkAor0J/QntCf0J7QkiDQp9CV0JTQntCc0JjQoAor0J/QntCf0J7QkiDQltCQ0KDQmtCeCivQn9Ce0J/QntCSINCW0JDQoNCa0J4KK9Cf0J7Qn9Ce0JIt0JbQmNCa0JXQm9CY0Isg0JfQntCg0JAKK9Cf0J7Qn9Ce0JIg0JbQmNCS0JrQkAor0J/QntCf0J7QkiDQltCY0JLQmtCeCivQn9Ce0J/QntCSINCW0JjQktCa0J4KK9Cf0J7Qn9Ce0JIg0JbQmNCS0JrQngor0J/QntCf0J7QkiDQltCY0JLQmtCeCivQn9Ce0J/QntCSINCW0JjQktCa0J4KK9Cf0J7Qn9Ce0JIg0JbQmNCS0JrQngor0J/QntCf0J7QkiDQgtCe0JrQkAor0J/QntCf0J7QkiDQgtCe0JrQkAor0J/QntCf0J7QkiDQgtCe0KDQgtCVCivQn9Ce0J/QntCSINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JIg0ILQntCg0ILQlQor0J/QntCf0J7QkiDQgtCe0KDQgtCVCivQn9Ce0J/QntCSINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JIg0ILQntCg0ILQlQor0J/QntCf0J7QkiDQgtCj0KDQgtCY0J3QkAor0J/QntCf0J7QkiDQgtCj0KDQkAor0J/QntCf0J7QkiDQgtCj0KDQkAor0J/QntCf0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QkiDQkNCd0ILQkAor0J/QntCf0J7QkiDQkNCd0JTQntCdCivQn9Ce0J/QntCSINCQ0J3QmtCY0KbQkAor0J/QntCf0J7Qki3QkdCQ0KjQkCDQktCV0KDQkAor0J/QntCf0J7QkiDQkdCe0KDQmNCS0J7QiCDQlNCY0J/QmyDQmNCd0JMKK9Cf0J7Qn9Ce0JIg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cf0J7Qn9Ce0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Ce0J/QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0J/QntCf0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JIg0JHQoNCQ0J3QmtCeCivQn9Ce0J/QntCSINCR0KDQkNCd0JrQngor0J/QntCf0J7QkiDQlNCQ0J3QmNCm0JAKK9Cf0J7Qn9Ce0JIg0JTQkNCd0JjQptCQCivQn9Ce0J/QntCSINCU0JDQndCY0JvQngor0J/QntCf0J7QkiDQlNCQ0J3QmNCb0J4KK9Cf0J7Qn9Ce0JIg0JTQkNCg0JjQndCa0JAKK9Cf0J7Qn9Ce0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQn9Ce0J/QntCSINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QntCf0J7QkiDQlNCg0JDQk9CQ0J3QkAor0J/QntCf0J7QkiDQlNCg0JDQk9CQ0J0KK9Cf0J7Qn9Ce0JIg0JTQoNCQ0JPQkNCdCivQn9Ce0J/QntCSINCU0KDQkNCT0JDQnQor0J/QntCf0J7QkiDQlNCg0JDQk9CQ0J0KK9Cf0J7Qn9Ce0JIg0JTQoNCQ0JPQkAor0J/QntCf0J7QkiDQlNCg0JDQk9CY0KjQkAor0J/QntCf0J7QkiDQlNCg0JDQk9CY0KbQkAor0J/QntCf0J7Qki3QlNCg0JDQk9CY0J0g0J7Qm9CT0JAKK9Cf0J7Qn9Ce0JIg0JTQoNCQ0JPQntCJ0KPQkQor0J/QntCf0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQn9Ce0J/QntCSINCU0KDQkNCT0J7QidCj0JEKK9Cf0J7Qn9Ce0JIg0JTQoNCQ0JPQntCc0JjQoAor0J/QntCf0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQn9Ce0J/QntCSINCU0KDQkNCT0J7QnNCY0KAKK9Cf0J7Qn9Ce0JIg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9Cf0J7Qn9Ce0JIg0JTQo9Co0JDQnSDQlNCgCivQn9Ce0J/QntCSINCU0KPQqNCQ0J0KK9Cf0J7Qn9Ce0JIg0JTQo9Co0JDQnQor0J/QntCf0J7QkiDQlNCj0KjQkNCdCivQn9Ce0J/QntCSINCU0KPQqNCa0JAKK9Cf0J7Qn9Ce0JIg0JPQkNCS0KDQkAor0J/QntCf0J7QkiDQk9Ce0KDQkNCdCivQn9Ce0J/QntCSINCT0J7QoNCU0JDQndCQINCU0KAKK9Cf0J7Qn9Ce0JIg0JPQntCg0JTQkNCd0JAKK9Cf0J7Qn9Ce0JIg0JPQntCg0JTQkNCd0JAKK9Cf0J7Qn9Ce0JIg0JjQm9Ce0J3QmtCQCivQn9Ce0J/QntCSINCY0KHQkAor0J/QntCf0J7QkiDQmNCS0JDQndCa0JAKK9Cf0J7Qn9Ce0JIg0JjQktCQ0J0KK9Cf0J7Qn9Ce0JIg0JjQktCa0JAKK9Cf0J7Qn9Ce0JIg0IjQldCb0JAKK9Cf0J7Qn9Ce0JIg0IjQldCb0JAKK9Cf0J7Qn9Ce0JIg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cf0J7Qn9Ce0JIg0IjQldCX0JTQmNCc0JjQoAor0J/QntCf0J7QkiDQiNCe0JLQkNCdCivQn9Ce0J/QntCSINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JIg0IjQntCS0JDQnQor0J/QntCf0J7QkiDQiNCe0JLQkNCdCivQn9Ce0J/QntCSINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JIg0IjQntCS0JDQnQor0J/QntCf0J7QkiDQiNCe0JLQkNCdCivQn9Ce0J/QntCSINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JIg0IjQntCS0JDQnQor0J/QntCf0J7QkiDQiNCj0JPQntCh0JvQkNCSCivQn9Ce0J/QntCSINCI0KPQkwor0J/QntCf0J7QkiDQiNCj0JvQmtCQCivQn9Ce0J/QntCSINCa0JDQotCY0KbQkAor0J/QntCf0J7QkiDQmtCQ0KLQmNCm0JAKK9Cf0J7Qn9Ce0JIg0JrQntCh0JAKK9Cf0J7Qn9Ce0JIg0JrQntCS0JjQndCa0JAKK9Cf0J7Qn9Ce0JIg0JvQkNCX0JDQoAor0J/QntCf0J7QkiDQm9CQ0JfQkNCgCivQn9Ce0J/QntCSINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JIg0JvQkNCX0JDQoAor0J/QntCf0J7QkiDQm9CV0J3QmtCQCivQn9Ce0J/QntCSINCJ0JjQidCQ0J3QkAor0J/QntCf0J7QkiDQidCY0InQkNCd0JAKK9Cf0J7Qn9Ce0JIg0InQo9CR0JjQqNCQCivQn9Ce0J/QntCSINCJ0KPQkdCY0KbQkAor0J/QntCf0J7QkiDQidCj0JHQmNCm0JAKK9Cf0J7Qn9Ce0JIg0InQo9CR0JjQptCQCivQn9Ce0J/QntCSINCJ0KPQkdCY0KbQkAor0J/QntCf0J7QkiDQidCj0JHQmNCd0JrQkAor0J/QntCf0J7QkiDQidCj0JHQntCc0JjQoAor0J/QntCf0J7QkiDQnNCQ0KDQkAor0J/QntCf0J7QkiDQnNCQ0KDQmNCm0JAKK9Cf0J7Qn9Ce0JIg0JzQkNCg0JjQiNCQCivQn9Ce0J/QntCSINCc0JDQoNCY0IjQkAor0J/QntCf0J7QkiDQnNCQ0KDQmNCd0JrQngor0J/QntCf0J7QkiDQnNCQ0KDQmtCeCivQn9Ce0J/QntCSINCc0JDQoNCa0J4KK9Cf0J7Qn9Ce0JIg0JzQkNCg0JrQngor0J/QntCf0J7QkiDQnNCY0JvQkNCU0JjQnQor0J/QntCf0J7QkiDQnNCY0JvQkNCdCivQn9Ce0J/QntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQkNCdCivQn9Ce0J/QntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQkNCdCivQn9Ce0J/QntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQkNCdCivQn9Ce0J/QntCSINCc0JjQm9CQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQkNCdCivQn9Ce0J/QntCSINCc0JjQm9CV0J3QkAor0J/QntCf0J7QkiDQnNCY0JvQldCd0JAKK9Cf0J7Qn9Ce0JIg0JzQmNCb0JXQndCa0J4KK9Cf0J7Qn9Ce0JIg0JzQmNCb0JjQptCQCivQn9Ce0J/QntCSINCc0JjQm9CY0KbQkAor0J/QntCf0J7QkiDQnNCY0JvQmNCm0JAKK9Cf0J7Qn9Ce0JIg0JzQmNCb0JjQptCQCivQn9Ce0J/QntCSINCc0JjQm9CY0JLQntCICivQn9Ce0J/QntCSINCc0JjQm9CY0JLQntCICivQn9Ce0J/QntCSINCc0JjQm9CY0JLQntCICivQn9Ce0J/QntCSINCc0JjQm9CY0JLQntCICivQn9Ce0J/QntCSINCc0JjQm9Ca0JAKK9Cf0J7Qn9Ce0JIg0JzQmNCb0J7QqAor0J/QntCf0J7QkiDQnNCY0JvQntCoCivQn9Ce0J/QntCSINCc0JjQm9Ce0IjQlQor0J/QntCf0J7QkiDQnNCY0JvQntCg0JDQlAor0J/QntCf0J7QkiDQnNCY0JvQntCS0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQntCS0JDQnQor0J/QntCf0J7QkiDQnNCY0JvQo9Ci0JjQnQor0J/QntCf0J7QkiDQnNCY0KDQiNCQ0J3QkAor0J/QntCf0J7QkiDQnNCY0KDQiNCQ0J3QkAor0J/QntCf0J7QkiDQnNCY0KDQiNCQ0J0KK9Cf0J7Qn9Ce0JIg0JzQmNCg0J7QodCb0JDQkgor0J/QntCf0J7QkiDQnNCY0KLQkAor0J/QntCf0J7QkiDQnNCe0JzQp9CY0JvQngor0J/QntCf0J7QkiDQndCV0JTQldCJ0JrQngor0J/QntCf0J7QkiDQndCV0J3QkNCi0JrQkAor0J/QntCf0J7QkiDQndCY0JrQntCb0JAKK9Cf0J7Qn9Ce0JIg0J3QmNCd0JAKK9Cf0J7Qn9Ce0JIg0J3QmNCd0J7QodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9Cf0J7Qn9Ce0JIg0J3QntCS0JDQmgor0J/QntCf0J7QkiDQntCR0KDQkNCUCivQn9Ce0J/QntCSLdCe0JHQoNCe0JLQkNCn0JrQmCDQodCe0KTQmNCI0JAKK9Cf0J7Qn9Ce0JIg0J7Qm9CT0JAKK9Cf0J7Qn9Ce0JIg0J/QkNCI0JAKK9Cf0J7Qn9Ce0JIg0J/QkNCS0JvQlQor0J/QntCf0J7QkiDQn9CQ0JLQm9CVCivQn9Ce0J/QntCSINCf0JDQktCb0JUKK9Cf0J7Qn9Ce0JIg0J/QldCg0JAKK9Cf0J7Qn9Ce0JIg0J/QldCi0JDQoAor0J/QntCf0J7QkiDQn9CV0KLQkNCgCivQn9Ce0J/QntCSINCf0JvQkNCi0J7QnQor0J/QntCf0J7QkiDQn9Cg0JXQlNCg0JDQkwor0J/QntCf0J7QkiDQoNCQ0JTQmNCS0J7QiNCVCivQn9Ce0J/QntCSINCg0JDQlNCY0JLQntCICivQn9Ce0J/QntCSINCg0JDQlNCY0JLQntCICivQn9Ce0J/QntCSINCg0JDQlNCY0JLQntCICivQn9Ce0J/QntCSINCg0JDQlNCY0JLQntCICivQn9Ce0J/QntCSINCg0JDQlNCY0JLQntCICivQn9Ce0J/QntCSINCg0JDQlNCc0JjQm9CQCivQn9Ce0J/QntCSINCg0JDQlNCe0IjQmtCQCivQn9Ce0J/QntCSINCg0JDQlNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0J/QntCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QkiDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QkiDQoNCQ0KLQntCc0JjQoAor0J/QntCf0J7QkiDQoNCV0InQkAor0J/QntCf0J7QkiDQoNCe0JTQntCJ0KPQkQor0J/QntCf0J7QkiDQodCQ0JLQkAor0J/QntCf0J7QkiDQodCQ0JLQkAor0J/QntCf0J7QkiDQodCQ0JLQkAor0J/QntCf0J7QkiDQodCQ0JLQkAor0J/QntCf0J7QkiDQodCQ0JLQldCi0JAKK9Cf0J7Qn9Ce0JIg0KHQldCa0KPQm9CQCivQn9Ce0J/QntCSINCh0JjQndCY0KjQkAor0J/QntCf0J7QkiDQodCb0JDQktCY0KbQkAor0J/QntCf0J7QkiDQodCb0JDQktCa0J4KK9Cf0J7Qn9Ce0JIg0KHQm9CQ0JLQmtCeCivQn9Ce0J/QntCSINCh0JvQkNCS0JrQngor0J/QntCf0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQn9Ce0J/QntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cf0J7Qn9Ce0JIg0KHQndCV0JbQkNCd0JAKK9Cf0J7Qn9Ce0JIg0KHQntCk0JjQiNCQCivQn9Ce0J/QntCSINCh0J/QkNCh0J7QiNCVCivQn9Ce0J/QntCSINCh0KDQldCU0J7QiNCVCivQn9Ce0J/QntCSINCh0KLQkNCd0JAKK9Cf0J7Qn9Ce0JIg0KHQotCV0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0J/QntCf0J7QkiDQodCi0JXQktCQ0J0KK9Cf0J7Qn9Ce0JIg0KHQotCV0JLQkNCdCivQn9Ce0J/QntCSINCh0KLQldCS0JDQnQor0J/QntCf0J7QkiDQodCi0JXQktCQ0J0KK9Cf0J7Qn9Ce0JIg0KHQotCV0JLQkNCdCivQn9Ce0J/QntCSINCh0KLQldCS0JDQnQor0J/QntCf0J7QkiDQodCi0JXQktCQ0J0KK9Cf0J7Qn9Ce0JIg0KHQotCV0JLQkNCdCivQn9Ce0J/QntCSINCh0KLQldCS0JAKK9Cf0J7Qn9Ce0JIg0KHQotCV0JLQmNCm0JAKK9Cf0J7Qn9Ce0JIg0KHQotCe0IjQkNCd0JrQkAor0J/QntCf0J7QkiDQodCS0JXQotCb0JDQndCQCivQn9Ce0J/QntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Cf0J7Qn9Ce0JIg0KHQktCV0KLQntCX0JDQoAor0J/QntCf0J7QkiDQotCQ0KLQntCc0JjQoAor0J/QntCf0J7QkiDQotCe0JTQntCgCivQn9Ce0J/QntCSINCi0KDQmNCS0JAKK9Cf0J7Qn9Ce0JIg0KPQoNCe0KgKK9Cf0J7Qn9Ce0JIg0JLQkNCh0JjQm9CY0IjQlQor0J/QntCf0J7QkiDQktCQ0KHQmNCb0JjQiNCVCivQn9Ce0J/QntCSINCS0JDQodCY0JvQmNCI0JUKK9Cf0J7Qn9Ce0JIg0JLQldCg0JAKK9Cf0J7Qn9Ce0JIg0JLQldCg0JAKK9Cf0J7Qn9Ce0JIg0JLQldCg0JAKK9Cf0J7Qn9Ce0JIg0JLQldCg0JjQptCQCivQn9Ce0J/QntCSINCS0JXQodCV0JvQmNCdCivQn9Ce0J/QntCSINCS0JvQkNCU0JjQnNCY0KAKK9Cf0J7Qn9Ce0JIg0JLQm9CQ0JTQmNCc0JjQoAor0J/QntCf0J7QkiDQktCe0IjQmNCdCivQn9Ce0J/QntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JIg0JLQo9Ca0J7QodCQ0JLQkAor0J/QntCf0J7QkiDQl9Cb0JDQotCQCivQn9Ce0J/QntCSINCX0JvQkNCi0JjQptCQCivQn9Ce0J/QntCSINCX0J7QoNCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCn0JDQodCb0JDQkiDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0J/QntCf0J7QktCY0Isg0KfQldCU0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQn9Ce0J/QntCS0JjQiyDQp9CV0JTQntCc0JjQoAor0J/QntCf0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQn9Ce0J/QntCS0JjQiy3Qp9CV0IjQntCS0JjQiyDQn9CQ0JLQm9CVCivQn9Ce0J/QntCS0JjQiyDQqNCL0JXQn9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCW0JDQoNCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCW0JDQoNCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCW0JDQoNCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCW0JXQidCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCW0JjQktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCW0JjQktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCW0JjQktCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCW0JjQktCe0KDQkNCUCivQn9Ce0J/QntCS0JjQiyDQltCj0JbQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cf0J7Qn9Ce0JLQmNCLINCC0J7QoNCC0JjQiNCVCivQn9Ce0J/QntCS0JjQiyDQgtCj0KDQgtCY0J3QkAor0J/QntCf0J7QktCY0Isg0ILQo9Cg0ILQmNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCC0KPQoNCQCivQn9Ce0J/QntCS0JjQiyDQgtCj0KDQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCC0KPQoNCeCivQn9Ce0J/QntCS0JjQiyDQgtCj0KDQngor0J/QntCf0J7QktCY0Isg0JDQmtCh0JXQndCi0JjQiNCVCivQn9Ce0J/QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgINCf0KDQkNCS0J3QmNCaCivQn9Ce0J/QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgCivQn9Ce0J/QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Ce0J/QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QntCf0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cf0J7Qn9Ce0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQn9Ce0J/QntCS0JjQiyDQkNCd0ILQldCbCivQn9Ce0J/QntCS0JjQiyDQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCQ0J3QkAor0J/QntCf0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0J/QntCf0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0J/QntCf0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0J/QntCf0J7QktCY0Isg0JDQndCY0KbQkAor0J/QntCf0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cf0J7Qn9Ce0JLQmNCLINCR0J7QltCQCivQn9Ce0J/QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0J/QntCf0J7QktCY0Isg0JHQntCT0JTQkNCdCivQn9Ce0J/QntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQn9Ce0J/QntCS0JjQiyDQkdCe0IjQkNCdCivQn9Ce0J/QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCS0JAKK9Cf0J7Qn9Ce0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCR0J7QoNCI0JDQnQor0J/QntCf0J7QktCY0Isg0JHQntCg0JrQkAor0J/QntCf0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkiDQlNCgCivQn9Ce0J/QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Ce0J/QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmNCS0J7QiAor0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmNCS0J7QiAor0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JrQngor0J/QntCf0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQptCS0JXQiNCQCivQn9Ce0J/QntCS0JjQiyDQlNCQ0J3Qp9CY0JrQkAor0J/QntCf0J7QktCY0Isg0JTQkNCd0JUKK9Cf0J7Qn9Ce0JLQmNCLINCU0JDQndCVCivQn9Ce0J/QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCU0JDQndCY0KbQkAor0J/QntCf0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQn9Ce0J/QntCS0JjQiyDQlNCQ0J3QmtCY0KbQkAor0J/QntCf0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCU0JXQiNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQlNCV0KHQkAor0J/QntCf0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQn9Ce0J/QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0J7Qn9Ce0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0J/QntCf0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0J/QntCf0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQkAor0J/QntCf0J7QktCY0Isg0JTQntCR0KDQmNCd0JrQngor0J/QntCf0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiAor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9Ce0J/QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0JjQqNCQINCU0KAKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQn9Ce0J/QntCS0JjQiyDQlNCg0JDQk9CY0IrQkAor0J/QntCf0J7QktCY0Isg0JTQoNCQ0JPQniDQlNCY0J/QmyDQmNCd0JMKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J7QiNCb0J4KK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J4KK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J4KK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0J4KK9Cf0J7Qn9Ce0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cf0J7Qn9Ce0JLQmNCLINCU0KPQqNCQ0J0g0JTQoAor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QntCf0J7QktCY0Isg0JTQo9Co0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQlNCj0KjQmtCeINCU0KAKK9Cf0J7Qn9Ce0JLQmNCLINCV0JzQmNCbCivQn9Ce0J/QntCS0JjQiyDQpNCV0J7QlNCe0KDQkAor0J/QntCf0J7QktCY0Isg0KTQldCe0JTQntCgCivQn9Ce0J/QntCS0JjQiyDQk9Ce0IjQmtCeCivQn9Ce0J/QntCS0JjQiyDQk9Ce0KDQkNCdCivQn9Ce0J/QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J/QntCf0J7QktCY0Isg0JjQm9CVCivQn9Ce0J/QntCS0JjQiyDQmNCb0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQmNCb0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQmNCb0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQmNCb0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQmNCb0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQmNCg0JjQndCQCivQn9Ce0J/QntCS0JjQiyDQmNCS0JDQnQor0J/QntCf0J7QktCY0Isg0JjQktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCY0JLQkNCdCivQn9Ce0J/QntCS0JjQiyDQmNCS0JDQnQor0J/QntCf0J7QktCY0Isg0JjQktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCI0JDQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCI0JDQodCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCI0JXQpNCi0JAKK9Cf0J7Qn9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QntCf0J7QktCY0Isg0IjQldCb0JXQndCQCivQn9Ce0J/QntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0J/QntCf0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0J/QntCf0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCI0J7QktCeCivQn9Ce0J/QntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQn9Ce0J/QntCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCa0JDQotCY0KbQkAor0J/QntCf0J7QktCY0Isg0JrQkNCi0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQmtCe0J3QodCi0JDQndCi0JjQnQor0J/QntCf0J7QktCY0Isg0JrQntCh0KLQkCDQlNCgCivQn9Ce0J/QntCS0JjQiyDQmtCe0KHQotCQ0JTQmNCdCivQn9Ce0J/QntCS0JjQiyDQmtCe0KHQotCQCivQn9Ce0J/QntCS0JjQiyDQmtCe0KHQotCQCivQn9Ce0J/QntCS0JjQiyDQmtCg0JjQodCi0JjQndCQCivQn9Ce0J/QntCS0JjQiyDQmtCg0KHQotCQCivQn9Ce0J/QntCS0JjQiyDQmtCg0KHQotCeCivQn9Ce0J/QntCS0JjQiyDQmtCh0JXQndCY0IjQkAor0J/QntCf0J7QktCY0Isg0JvQkNCX0JDQoCDQlNCgINCb0JXQmtCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JDQl9CQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCb0JXQm9CQCivQn9Ce0J/QntCS0JjQiyDQm9CV0J/QntCh0JDQktCQCivQn9Ce0J/QntCS0JjQiyDQidCY0InQkNCd0JAg0JTQoAor0J/QntCf0J7QktCY0Isg0InQmNCJ0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/QntCf0J7QktCY0Isg0InQmNCJ0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0J/QntCf0J7QktCY0Isg0InQo9CR0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCJ0KPQkdCY0KbQkAor0J/QntCf0J7QktCY0Isg0InQo9CR0JjQodCQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9Ce0J/QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0J/QntCf0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9Ce0J/QntCS0JjQiyDQnNCQ0JrQodCY0JwKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCQCivQn9Ce0J/QntCS0JjQiyDQnNCQ0KDQkAor0J/QntCf0J7QktCY0Isg0JzQkNCg0JjQiNCQINCU0KAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCY0IjQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0J/QntCf0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCY0IjQkAor0J/QntCf0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0J/QntCf0J7QktCY0Isg0JzQkNCg0JrQniDQlNCgINCb0JXQmtCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCa0J4g0JzQoCDQmNCd0JMKK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0JDQoNCi0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JXQm9CQ0J3QmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQn9Ce0J/QntCS0JjQiyDQnNCY0KXQkNCI0JvQniDQlNCgCivQn9Ce0J/QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0J/QntCf0J7QktCY0Isg0JzQmNCb0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQkAor0J/QntCf0J7QktCY0Isg0JzQmNCb0JXQndCQCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CV0KLQkCDQlNCY0J/QmyDQmNCd0JMKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CVCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QntCf0J7QktCY0Isg0JzQmNCb0JjQiNCQ0J0g0JTQoAor0J/QntCf0J7QktCY0Isg0JzQmNCb0JjQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ca0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ce0Kgg0JTQmNCf0Jsg0JjQndCTCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCoCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCoCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCoCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QntCf0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QntCf0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCh0JDQktCQCivQn9Ce0J/QntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0J/QntCf0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQn9Ce0J/QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QntCf0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQntCU0KDQkNCTCivQn9Ce0J/QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QntCf0J7QktCY0Isg0JzQmNCg0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQoNCQCivQn9Ce0J/QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QntCf0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QntCf0J7QktCY0Isg0JzQmNCg0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCg0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCg0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCg0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCg0JrQngor0J/QntCf0J7QktCY0Isg0JzQmNCg0J7QidCj0JEKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQotCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JjQotCQ0KAKK9Cf0J7Qn9Ce0JLQmNCLINCc0JvQkNCU0JXQnQor0J/QntCf0J7QktCY0Isg0JzQm9CQ0JTQmNCd0JrQngor0J/QntCf0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cf0J7Qn9Ce0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQn9Ce0J/QntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0J/QntCf0J7QktCY0Isg0J3QkNCU0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JDQlNCQCivQn9Ce0J/QntCS0JjQiyDQndCQ0JTQkAor0J/QntCf0J7QktCY0Isg0J3QkNCU0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JDQlNCQCivQn9Ce0J/QntCS0JjQiyDQndCQ0JTQldCW0JTQkAor0J/QntCf0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQn9Ce0J/QntCS0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQndCV0ILQngor0J/QntCf0J7QktCY0Isg0J3QldCR0J7QiNCo0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JXQlNCV0InQmtCeCivQn9Ce0J/QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0J/QntCf0J7QktCY0Isg0J3QldCd0JDQlAor0J/QntCf0J7QktCY0Isg0J3QldCd0JDQlAor0J/QntCf0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9Ce0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QntCf0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQn9Ce0J/QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0J7Qn9Ce0JLQmNCLINCd0JjQmtCe0JvQkAor0J/QntCf0J7QktCY0Isg0J3QntCS0JDQmgor0J/QntCf0J7QktCY0Isg0J3QntCS0JDQmgor0J/QntCf0J7QktCY0Isg0J7QkdCg0JDQlAor0J/QntCf0J7QktCY0Isg0J7QkdCg0JDQlAor0J/QntCf0J7QktCY0Isg0J7Qm9CT0JAKK9Cf0J7Qn9Ce0JLQmNCLINCe0JvQk9CQCivQn9Ce0J/QntCS0JjQiyDQntCb0JPQkAor0J/QntCf0J7QktCY0Isg0J/QkNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCf0JDQktCb0JUg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Cf0J7Qn9Ce0JLQmNCLINCf0JDQktCb0JUKK9Cf0J7Qn9Ce0JLQmNCLINCf0JDQktCb0JUKK9Cf0J7Qn9Ce0JLQmNCLINCf0JDQktCb0JUKK9Cf0J7Qn9Ce0JLQmNCLINCf0JXQoNCQCivQn9Ce0J/QntCS0JjQiyDQn9CV0KDQmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCf0JXQoNCeCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQn9CV0KLQkNCgCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQkAor0J/QntCf0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCVCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQlQor0J/QntCf0J7QktCY0Isg0KDQkNCU0JUKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCY0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0J/QntCf0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0J/QntCf0J7QktCY0Isg0KDQkNCU0J7QmNCm0JAKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCe0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0J/QntCf0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0J/QntCf0J7QktCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCLINCg0JDQlNCe0JLQkNCd0JrQkAor0J/QntCf0J7QktCY0Isg0KDQkNCU0J7QktCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0J/QntCf0J7QktCY0Isg0KDQkNCU0KPQmwor0J/QntCf0J7QktCY0Isg0KDQkNCI0JrQngor0J/QntCf0J7QktCY0Isg0KDQkNCd0JrQngor0J/QntCf0J7QktCY0Isg0KDQkNCi0JrQngor0J/QntCf0J7QktCY0Isg0KDQkNCS0JjQiNCe0IjQm9CQCivQn9Ce0J/QntCS0JjQiyDQoNCV0InQkCDQlNCgCivQn9Ce0J/QntCS0JjQiyDQoNCe0JTQntCJ0KPQkQor0J/QntCf0J7QktCY0Isg0KHQkNCK0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0JDQktCQINCU0JjQn9CbINCY0J3Qkwor0J/QntCf0J7QktCY0Isg0KHQkNCS0JAg0JTQmNCf0Jsg0JjQndCTCivQn9Ce0J/QntCS0JjQiyDQodCQ0JLQkAor0J/QntCf0J7QktCY0Isg0KHQkNCS0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0JDQktCQCivQn9Ce0J/QntCS0JjQiyDQodCQ0JLQngor0J/QntCf0J7QktCY0Isg0KHQldCa0KPQm9CQCivQn9Ce0J/QntCS0JjQiyDQodCY0J3QmNCo0JAg0JTQoCDQm9CV0JrQkNCgCivQn9Ce0J/QntCS0JjQiyDQodCb0JDQktCY0KbQkAor0J/QntCf0J7QktCY0Isg0KHQm9CQ0JLQmtCeINCU0JjQn9CbINCe0JXQpgor0J/QntCf0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQn9Ce0J/QntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCh0JvQkNCS0JrQngor0J/QntCf0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0J/QntCf0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0J/QntCf0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QntCf0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QntCf0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QntCf0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QntCf0J7QktCY0Isg0KHQnNCY0InQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0J7QpNCY0IjQkAor0J/QntCf0J7QktCY0Isg0KHQntCk0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQodCe0KTQmNCI0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0J7QpNCY0IjQkAor0J/QntCf0J7QktCY0Isg0KHQntCk0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQodCe0IrQkAor0J/QntCf0J7QktCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQkNCd0JrQngor0J/QntCf0J7QktCY0Isg0KHQotCQ0J3QmtCeCivQn9Ce0J/QntCS0JjQiyDQodCi0JDQndCa0J4KK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQldCS0JDQnSDQlNCgCivQn9Ce0J/QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0J/QntCf0J7QktCY0Isg0KHQotCV0JLQkNCdCivQn9Ce0J/QntCS0JjQiyDQodCi0JXQktCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQldCS0J4KK9Cf0J7Qn9Ce0JLQmNCLINCh0KLQntCI0JDQnQor0J/QntCf0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQn9Ce0J/QntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQn9Ce0J/QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQn9Ce0J/QntCS0JjQiyDQotCV0J7QlNCe0KAKK9Cf0J7Qn9Ce0JLQmNCLINCi0JXQoNCV0JfQkAor0J/QntCf0J7QktCY0Isg0KLQntCU0J7QoAor0J/QntCf0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0J/QntCf0J7QktCY0Isg0KLQntCc0J4KK9Cf0J7Qn9Ce0JLQmNCLINCj0JPQidCV0KjQkAor0J/QntCf0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0J/QntCf0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0J/QntCf0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCLINCS0JXQm9CY0JfQkNCgCivQn9Ce0J/QntCS0JjQiyDQktCV0InQmtCeCivQn9Ce0J/QntCS0JjQiyDQktCV0KDQkAor0J/QntCf0J7QktCY0Isg0JLQldCg0JAKK9Cf0J7Qn9Ce0JLQmNCLINCS0JXQoNCQCivQn9Ce0J/QntCS0JjQiyDQktCV0KDQkAor0J/QntCf0J7QktCY0Isg0JLQldCg0JAKK9Cf0J7Qn9Ce0JLQmNCLINCS0JXQoNCY0KbQkAor0J/QntCf0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9Cf0J7Qn9Ce0JLQmNCLINCS0JjQlNCe0IjQlQor0J/QntCf0J7QktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0J/QntCf0J7QktCY0Isg0JLQmNCa0KLQntCg0JjQiNCQCivQn9Ce0J/QntCS0JjQiyDQktCb0JDQlNCQ0J0KK9Cf0J7Qn9Ce0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0J/QntCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QntCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QntCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QntCf0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0J/QntCf0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQn9Ce0J/QntCS0JjQiyDQktCb0JDQlNCeCivQn9Ce0J/QntCS0JjQiyDQktCe0IjQmNCdCivQn9Ce0J/QntCS0JjQiyDQktCe0IjQmNCdCivQn9Ce0J/QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQn9Ce0J/QntCS0JjQiyDQktCj0KfQmNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCS0KPQp9Ca0J4KK9Cf0J7Qn9Ce0JLQmNCLINCS0KPQiNCQ0JTQmNCdCivQn9Ce0J/QntCS0JjQiyDQktCj0JrQkNCU0JjQnQor0J/QntCf0J7QktCY0Isg0JLQo9Ca0JDQlNCY0J0KK9Cf0J7Qn9Ce0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Cf0J7Qn9Ce0JLQmNCLINCX0JTQldCd0JrQngor0J/QntCf0J7QktCY0Isg0JfQlNCg0JDQktCa0JAKK9Cf0J7Qn9Ce0JLQmNCLINCX0JvQkNCi0J7QiNCQCivQn9Ce0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9Ce0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9Ce0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9Ce0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9Ce0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9Ce0J/QntCS0JjQiyDQl9Ce0KDQkNCdCivQn9Ce0J/QntCS0JjQiyDQl9Ce0KDQmtCQCivQn9Ce0J/QntCS0JjQiyDQl9Cj0JfQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCLINCX0JLQntCd0JjQnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQltCQ0KDQmtCeCivQn9Ce0J/QntCS0JjQptCa0Jgg0JHQntCg0JjQodCb0JDQkgor0J/QntCf0J7QktCY0KbQmtCYINCI0J7QktCQ0J3QmtCQCivQn9Ce0J/QntCS0JjQptCa0Jgg0InQo9CR0J7QnNCY0KAKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQnNCY0JvQldCd0JrQngor0J/QntCf0J7QktCY0KbQmtCYINCc0JjQm9CV0J3QmtCeCivQn9Ce0J/QntCS0JjQptCa0Jgg0JzQmNCb0JjQptCQCivQn9Ce0J/QntCS0JjQptCa0Jgg0JzQmNCb0J7QqAor0J/QntCf0J7QktCY0KbQmtCYINCf0JXQotCQ0KAKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQoNCQ0JTQntCc0JjQoAor0J/QntCf0J7QktCY0KbQmtCYINCg0JDQlNCe0JzQmNCgCivQn9Ce0J/QntCS0JjQptCa0Jgg0KHQkNCb0J7QnNCQCivQn9Ce0J/QntCS0JjQptCa0Jgg0KHQktCV0KLQmNCh0JvQkNCSCivQn9Ce0J/QntCS0JjQptCa0Jgg0KLQkNCi0IjQkNCd0JAKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQotCV0J7QlNCe0KAKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cf0J7Qn9Ce0JLQmNCm0JrQmCDQl9Ce0KDQkNCdCivQn9Ce0J/QntCS0KHQmtCYINCg0JDQlNCe0IjQmtCQCivQn9Ce0J/QntCS0KHQmtCYINCS0JXQndCa0J4KK9Cf0J7Qn9Cg0JbQkNCdINCc0JjQm9CQ0J0KK9Cf0J7Qn9Cg0JbQkNCdINCd0JjQmtCe0JvQkAor0J/QntCf0KDQltCQ0J0g0JLQkNCb0JXQndCi0JjQndCQCivQn9Ce0J/QoNCW0JXQnSDQkdCe0KDQmNCS0J7QiAor0J/QntCf0KHQkNCS0JjQnSDQlNCj0KjQkNCdCivQn9Ce0J/QodCQ0JLQmNCdINCS0JXQm9CY0JzQmNCgCivQn9Ce0J/QotCV0KjQmNCdINCC0J7QoNCC0JUKK9Cf0J7Qn9Ci0JXQqNCY0J0g0JvQkNCX0JDQoCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0J/QntCf0KLQldCo0JjQnSDQnNCY0JvQkNCU0JjQndCa0JAKK9Cf0J7Qn9Ci0JXQqNCY0J0g0KHQotCV0JLQkNCdCivQn9Ce0KDQp9CQINCJ0JjQidCQ0J3QkAor0J/QntCg0KfQkCDQoNCQ0JzQmNCXCivQn9Ce0KDQntCo0JjQnSDQlNCg0JDQk9CY0IrQkAor0J/QntCg0J7QqNCY0J0g0JPQldCe0KDQk9CY0IjQlSDQlNCgINCb0JXQmtCQ0KAKK9Cf0J7QoNCe0JHQmNCLINCc0JjQm9CQ0J0KK9Cf0J7QoNCe0JHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0J7QoNCe0JHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0J7QoNCe0JHQmNCLINCd0JjQiNCQ0JcKK9Cf0J7QoNCe0JHQmNCLINCd0JjQmtCe0JvQkAor0J/QntCg0J7QkdCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/QntCg0J7Qn9CQ0KIg0JHQntCo0JrQngor0J/QntCg0J7Qn9CQ0KLQmNCLINCX0J7QoNCQCivQn9Ce0KHQkNCS0JDQpiDQktCI0JXQmtCe0KHQm9CQ0JIKK9Cf0J7QodCb0JDQnSDQmNCS0JDQnQor0J/QntCh0KLQntCb0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0J/QntCiINCk0KDQkNCK0JAKK9Cf0J7QoiDQiNCe0KHQmNCfCivQn9Ce0KIg0JzQmNCg0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cf0J7QotCQ0Jgg0JvQkNCU0JjQodCb0JDQkgor0J/QntCi0KUg0InQo9CU0JXQktCY0KIKK9Cf0J7QotCY0Isg0JzQkNCg0JjQiNCV0JvQkAor0J/QntCi0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQn9Ce0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQn9Ce0KLQmtCe0IrQkNCaINCI0J7QktCQ0J0KK9Cf0J7QotCa0J7QitCQ0Jog0JzQkNCg0JAKK9Cf0J7QotCa0J7QitCQ0Jog0J3QmNCa0J7Qm9CQCivQn9Ce0KLQmtCe0IrQkNCaINCf0JXQotCQ0KAKK9Cf0J7QotCa0J7QitCQ0Jog0KHQntCk0JjQiNCQCivQn9Ce0KLQmtCe0IrQkNCaINCh0KLQkNCd0JrQngor0J/QntCi0JrQntCK0JDQmiDQodCi0JXQktCeCivQn9Ce0KLQmtCe0IrQkNCaINCS0JvQkNCU0J4KK9Cf0J7QotCa0J7Ql9CQ0KDQkNCmINCI0KPQm9CY0IjQkNCd0JAKK9Cf0J7QotCd0JXQoCDQotCV0KDQldCX0JjQiNCQCivQn9Ce0KLQntCa0J7QktCY0Isg0JDQkdCU0KPQm9CQ0KUKK9Cf0J7QotCe0JrQntCS0JjQiyDQodCc0JDQiNCeCivQn9Ce0KLQn9CQ0KDQmNCLINCI0JXQm9CY0KbQkAor0J/QntCi0KDQkNCdINCc0JjQqNCQCivQn9Ce0KLQoNCV0JHQmNCLINCC0KPQoNCeCivQn9Ce0KLQoNCV0JHQmNCLINCU0J7QkdCg0JjQm9CQCivQn9Ce0KLQoNCV0JHQmNCLINCU0KDQkNCT0JjQptCQCivQn9Ce0KLQoNCV0JHQmNCLINCc0JjQm9CVCivQn9Ce0KLQoNCV0JHQmNCLINCc0JjQm9CVCivQn9Ce0KLQoNCV0JHQmNCLINCc0JjQm9CY0KbQkAor0J/QntCi0KDQldCR0JjQiyDQndCY0JrQntCb0JAKK9Cf0J7QotCg0JXQkdCY0Isg0KDQkNCU0JUKK9Cf0J7QotCg0JXQkdCY0Isg0KHQm9CQ0JLQmtCeCivQn9Ce0KLQoNCV0JHQmNCLINCh0J7QpNCY0IjQkAor0J/QntCi0KPQoNCY0Isg0KHQotCV0JLQkAor0J/QntCj0KfQmtCYINCg0JDQlNCY0KHQm9CQ0JIKK9Cf0J7QktCQINCc0JjQoNCe0KHQm9CQ0JLQkAor0J/QntCS0JDQltCQ0J0g0JDQndCU0KDQmNCI0JAKK9Cf0J7QktCQ0JbQkNCdINCc0JDQoNCY0IjQkAor0J/QntCS0JDQl9CQ0Jgg0JjQqNCi0JLQkNCdCivQn9Ce0JLQkNCX0JDQmCDQotCY0JHQntCgCivQn9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0J7QktCg0JbQkNCdINCh0JjQnNCeCivQn9Ce0JfQlNCQ0J0g0ILQo9Cg0J4KK9Cf0J7Ql9CU0JXQoCDQktCV0KDQntCd0JAKK9Cf0J7Ql9CU0JXQoNCV0KYg0KTQoNCQ0J3Qpgor0J/QntCX0J3QkNCd0J7QktCY0Isg0JTQldCI0JDQnQor0J/QntCX0J3QkNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQn9Ce0JfQndCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0J/QntCX0J3QkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QntCX0J3QkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QntCX0J3QkNCd0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Cf0J7Ql9Cd0JDQndCe0JLQmNCLINCe0JHQoNCQ0JQKK9Cf0J7Ql9Cd0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cf0J7Ql9Cd0JjQiyDQgtCj0KDQngor0J/QntCX0J3QmNCLINCI0J7QktCeCivQn9Ce0JfQndCY0Isg0JzQmNCg0JAKK9Cf0J7Ql9Cd0JjQiyDQndCY0JrQntCb0JAKK9Cf0J7Ql9Ce0IjQldCS0JjQiyDQmtCb0JDQoNCQCivQn9Ce0JfQntCI0JXQktCY0Isg0KHQotCV0JLQkNCdCivQn9Cg0KfQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQn9Cg0KfQmNCLINCh0KLQiNCV0J/QkNCdCivQn9Cg0KfQmNCLINCi0JjQpdCe0JzQmNCgCivQn9Cg0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0KDQqNCQINCc0JjQoNCe0KHQm9CQ0JIg0JzQoAor0J/QoNCo0JAg0JLQldCg0JAKK9Cf0KDQi9CY0Isg0JjQktCQ0J0KK9Cf0KDQltCQ0KAg0J3QkNCU0JAKK9Cf0KDQltCV0JLQkNCJ0KHQmtCYINCd0JjQmtCe0JvQkAor0J/QoNCW0J3QmNCm0JAg0JzQmNCb0JDQndCQCivQn9Cg0JbQndCY0KbQkCDQl9Cb0JDQotCa0J4KK9Cf0KDQkNCo0KfQldCS0JjQiyDQkNCd0KLQntCd0JjQiNCQCivQn9Cg0JDQqNCn0JXQktCY0Isg0JfQntCg0JjQptCQCivQn9Cg0JDQqNCi0JDQm9CeINCc0JjQm9Cj0KLQmNCdCivQn9Cg0JDQqNCi0JDQm9CeINCf0JXQotCQ0KAKK9Cf0KDQkNCW0JjQiyDQkdCY0InQkNCd0JAKK9Cf0KDQkNCW0JjQiyDQkdCg0JDQndCa0J4KK9Cf0KDQkNCm0J3QldCgINCI0J7QodCY0J8KK9Cf0KDQkNCm0J3QldCgINCg0KPQltCY0KbQkAor0J/QoNCQ0JvQmNCm0JAg0InQo9CR0J7QnNCY0KAKK9Cf0KDQkNCb0JjQptCQINCd0JXQlNCV0InQmtCeCivQn9Cg0JDQm9CY0KbQkCDQodCi0JXQktCQ0J0KK9Cf0KDQkNCb0JjQptCQINCh0KLQldCS0JDQnQor0J/QoNCQ0JzQldCd0JrQniDQnNCY0KDQntCh0JvQkNCSCivQn9Cg0JDQnNCV0J3QmtCeINCd0JXQlNCV0InQmtCeCivQn9Cg0JDQnNCV0J3QmtCeINCg0JjQodCi0J4KK9Cf0KDQkNCc0JXQndCa0J4g0KHQoNCV0KLQngor0J/QoNCQ0J3QmNCLINCa0JDQotCY0KbQkAor0J/QoNCQ0J3QmNCLINCc0JjQoNCa0J4KK9Cf0KDQkNCd0JjQiyDQn9CV0KLQkNCgCivQn9Cg0JDQndCY0Isg0KLQntCk0JjQmwor0J/QoNCQ0IrQmNCLINCX0JvQkNCi0JrQngor0J/QoNCQ0IrQmtCY0Isg0JzQkNCg0JrQngor0J/QoNCQ0J3QmtCY0Isg0JzQmNCb0JUKK9Cf0KDQkNCS0JTQkCDQkdCe0KDQkdCQ0JvQkAor0J/QoNCQ0JLQlNCQINCb0JDQlNCY0KHQm9CQ0JIKK9Cf0KDQkNCS0JTQkCDQm9CQ0IjQntCoCivQn9Cg0JDQktCY0KbQkCDQldCS0JjQptCQCivQn9Cg0JDQktCY0KbQkCDQidCj0JHQntCc0JjQoAor0J/QoNCU0JjQiyDQndCV0JTQldCJ0JrQngor0J/QoNCV0KfQkNCd0JjQptCQINCR0J7QltCeCivQn9Cg0JXQqNCV0KDQnSDQiNCj0JvQmNCI0JDQndCQCivQn9Cg0JXQqNCe0JLQkCDQnNCY0KDQiNCQ0J3QkAor0J/QoNCV0JHQldCTINCU0KDQkNCT0JDQnQor0J/QoNCV0JHQmNCg0KfQldCS0JjQiyDQndCV0JLQldCd0JAKK9Cf0KDQldCR0JjQoNCQ0KfQldCS0JjQiyDQmtCg0JjQodCi0JjQndCQCivQn9Cg0JXQkdCY0KDQkNCn0JXQktCY0Isg0JvQkNCX0J4KK9Cf0KDQldCU0JAg0JDQo9Cg0JXQmwor0J/QoNCV0JTQmNCLINCc0JjQpdCQ0IjQm9CeCivQn9Cg0JXQlNCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCW0JXQidCa0J4KK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCQ0J3QmtCQCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQkdCe0JbQngor0J/QoNCV0JTQntCI0JXQktCY0Isg0JHQntCW0J4KK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCU0JDQndCY0KbQkAor0J/QoNCV0JTQntCI0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQm9Cj0JrQkAor0J/QoNCV0JTQntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0J/QoNCV0JTQntCI0JXQktCY0Isg0JzQmNCb0JUKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QoNCV0JTQntCI0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQnNCY0KDQmtCeCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQndCV0J3QkNCUCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQn9CQ0JLQm9CVCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0J/QoNCV0JTQntCI0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQktCQCivQn9Cg0JXQlNCe0IjQldCS0JjQiyDQodCY0JzQkAor0J/QoNCV0JTQntCI0JXQktCY0Isg0KHQmNCc0J4KK9Cf0KDQldCU0J7QiNCV0JLQmNCLINCh0KLQntCI0JDQnQor0J/QoNCV0JTQntCI0JXQktCY0Isg0KLQoNCY0JLQngor0J/QoNCV0JTQntCI0JXQktCY0Isg0JfQntCg0JAKK9Cf0KDQldCU0J7Qm9CQ0KYg0JTQoNCQ0JPQntCc0JjQoAor0J/QoNCV0JTQntCS0JjQiyDQlNCj0KjQkNCdCivQn9Cg0JXQlNCg0JDQqNCa0Jgg0JTQoNCQ0JPQntCJ0KPQkQor0J/QoNCV0JTQoNCQ0JPQntCS0JjQiyDQkdCe0KDQkAor0J/QoNCV0JTQoNCQ0JPQntCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0J/QoNCV0JTQoNCQ0JPQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0KDQldCU0KDQkNCT0J7QktCY0Isg0J3QntCS0JDQmgor0J/QoNCV0JTQoNCQ0JPQntCS0JjQiyDQktCV0KHQldCb0JrQngor0J/QoNCV0JTQoNCQ0JPQntCS0JjQiyDQktCV0KHQndCQCivQn9Cg0JXQlNCg0JDQk9Ce0JLQmNCLINCX0JLQldCX0JTQkNCdINCU0JjQn9CbINCY0J3Qkwor0J/QoNCV0JPQo9CdINCC0KPQoNCQCivQn9Cg0JXQk9Cj0J0g0J3QmNCa0J7Qm9CQCivQn9Cg0JXQk9Cj0J0g0J/QldCi0JDQoAor0J/QoNCV0JPQo9CdINCh0KLQldCS0JDQnQor0J/QoNCV0JPQo9CdINCX0J7QoNCQCivQn9Cg0JXQmtCQ0IjQkNCmINCW0JjQktCe0IjQmNCdCivQn9Cg0JXQmtCQ0IjQkNCmINCh0JvQkNCS0JrQngor0J/QoNCV0JrQkNCI0KHQmtCYINCR0KDQkNCd0JrQngor0J/QoNCV0JrQkNCI0KHQmtCYINCc0JjQoNCI0JDQnQor0J/QoNCV0JrQmNCLINCQ0J3QgtCV0JvQmtCQCivQn9Cg0JXQmtCe0JTQoNCQ0JLQkNCmINCd0JXQktCV0J3QmtCQCivQn9Cg0JXQmtCe0JPQkNCn0JjQiyDQgtCe0KDQgtCVCivQn9Cg0JXQmtCe0JPQkNCn0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0KDQldCa0J7Qk9CQ0KfQmNCLINCY0JvQmNCI0JAKK9Cf0KDQldCa0J7Qk9CQ0KfQmNCLINCS0JXQoNCQCivQn9Cg0JXQmtCe0J8g0IjQntCW0JXQpAor0J/QoNCV0JrQntCfINCg0JDQlNCe0IjQmtCQCivQn9Cg0JXQmtCf0JDQidCQ0Igg0JHQmNCR0JAKK9Cf0KDQldCa0J/QkNCJ0JDQiCDQmtCe0InQkAor0J/QoNCV0JrQn9CQ0InQkNCIINCc0JDQoNCi0JjQnQor0J/QoNCV0JrQn9CQ0InQkNCIINCf0IjQldCi0JXQoAor0J/QoNCV0Jsg0JzQkNCg0JjQiNCQCivQn9Cg0JXQm9CV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cf0KDQldCb0JXQktCY0Isg0JzQkNCg0JrQngor0J/QoNCV0JvQldCS0JjQiyDQnNCY0JvQkNCdCivQn9Cg0JXQm9CV0JLQmNCLINCc0JjQm9Ce0KgKK9Cf0KDQldCb0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0KDQldCb0JXQktCY0Isg0KHQldCd0JrQkAor0J/QoNCV0JvQldCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQn9Cg0JXQm9CY0Isg0JzQmNCb0J7QiNCa0JAKK9Cf0KDQldCb0JjQiyDQktCQ0KHQkAor0J/QoNCV0JvQmNCLINCX0JDQk9Ce0KDQmtCQCivQn9Cg0JXQnNCY0Isg0J/QldCi0JDQoAor0J/QoNCV0JzQmNCLINCS0JDQodCQCivQn9Cg0JXQnNCe0JLQmNCLINCU0JDQndCY0KbQkAor0J/QoNCV0JzQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0J/QoNCV0JzQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQn9Cg0JXQnNCj0Kgg0KTQoNCQ0IrQkAor0J/QoNCV0JzQo9CW0JjQiyDQlNCQ0JzQmNCgCivQn9Cg0JXQnNCj0JbQmNCLINCc0JDQotCeCivQn9Cg0JXQnNCj0JbQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0KDQldCd0JTQntCS0JjQiyDQn9CQ0InQo9CoCivQn9Cg0JXQndCi0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9Cg0JXQndCi0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9Cg0JXQndCi0J7QktCY0Isg0JzQmNCb0JDQnQor0J/QoNCV0J3QotCe0JLQmNCLINCf0JDQktCb0JUKK9Cf0KDQldCd0KLQntCS0JjQiyDQn9CV0KLQkNCgCivQn9Cg0JXQndCi0J7QktCY0Isg0KDQmNCh0KLQngor0J/QoNCV0J3QotCe0JLQmNCLINCS0JDQodCeCivQn9Cg0JXQoNCQ0JQg0JTQntCR0KDQmNCb0JAKK9Cf0KDQldCg0JDQlNCe0JIg0JTQmNCd0JrQkAor0J/QoNCV0KDQkNCU0J7QkiDQlNCg0JDQk9CY0KbQkAor0J/QoNCV0KDQkNCU0J7QkiDQlNCj0JHQoNCQ0JLQmtCQCivQn9Cg0JXQoNCQ0JTQntCSINCT0JDQktCg0JAKK9Cf0KDQldCg0JDQlNCe0JIg0JvQkNCX0JDQoAor0J/QoNCV0KDQkNCU0J7QkiDQm9CV0J/QntCh0JDQktCQCivQn9Cg0JXQoNCQ0JTQntCSINCc0JDQoNCY0IjQkAor0J/QoNCV0KDQkNCU0J7QkiDQnNCY0KDQiNCQ0J3QkAor0J/QoNCV0KDQkNCU0J7QkiDQnNCY0KDQiNCQ0J3QkAor0J/QoNCV0KDQkNCU0J7QkiDQndCV0JTQldCJ0JrQngor0J/QoNCV0KDQkNCU0J7QkiDQn9CV0KLQkNCgCivQn9Cg0JXQoNCQ0JTQntCSINCh0JDQktCQCivQn9Cg0JXQoNCQ0JTQntCSINCS0JXQm9CY0JfQkNCgCivQn9Cg0JXQoNCQ0JTQntCSINCS0JvQkNCU0JjQnNCY0KAKK9Cf0KDQldCg0JDQlNCe0JLQmNCLINCQ0J3QkAor0J/QoNCV0KDQkNCU0J7QktCY0Isg0JHQntCI0JAKK9Cf0KDQldCg0JDQlNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQn9Cg0JXQoNCQ0JTQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cf0KDQldCg0JDQlNCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQn9Cg0JXQoNCQ0JTQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0J/QoNCV0KHQldCn0JrQntCS0JjQiyDQktCV0KHQndCQCivQn9Cg0JXQotCc0JXQoNCh0JrQmCDQiNCe0JLQkNCdCivQn9Cg0JXQotCc0JXQoNCh0JrQmCDQodCi0JXQktCQ0J0KK9Cf0KDQldCS0JXQlNCV0J0g0JvQldCeCivQn9Cg0JPQntCc0JXQidCQINCd0JjQmtCe0JvQkAor0J/QoNCY0KjQmNCLINCa0JDQotCY0KbQkAor0J/QoNCY0KjQmNCLINCb0JDQl9CQ0KAKK9Cf0KDQmNCo0JjQiyDQm9CY0JTQmNCI0JAKK9Cf0KDQmNCo0JjQiyDQnNCY0JvQntCoCivQn9Cg0JjQqNCY0Isg0JzQmNCi0JAKK9Cf0KDQmNCo0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQn9Cg0JjQqNCY0Isg0KHQotCV0JLQkNCdCivQn9Cg0JjQkdCQ0JrQntCS0JjQiyDQmtCh0JXQndCY0IjQkAor0J/QoNCY0JHQkNCa0J7QktCY0Isg0JzQmNCb0JDQndCQCivQn9Cg0JjQkdCQ0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0KDQmNCR0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cf0KDQmNCR0JjQp9CV0JLQmNCLINCQ0KDQodCV0J3QmNCI0JUKK9Cf0KDQmNCR0JjQp9CV0JLQmNCLINCh0JDQktCa0JAKK9Cf0KDQmNCR0JjQp9CV0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAg0JTQoCDQmNCd0JMKK9Cf0KDQmNCR0JjQqCDQodCi0JXQktCQ0J0KK9Cf0KDQmNCR0JjQqNCV0JIg0JzQmNCg0IjQkNCd0JAKK9Cf0KDQmNCR0JjQqNCY0Isg0InQo9CR0J4KK9Cf0KDQmNCR0JjQqNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QoNCY0JHQmNCo0JjQiyDQoNCY0KHQotCY0IrQkAor0J/QoNCY0JHQmNCo0JjQiyDQodCQ0JLQngor0J/QoNCY0JHQmNCLINCQ0KDQodCV0J3QmNCI0JUKK9Cf0KDQmNCR0JjQiyDQlNCQ0J3QmNCb0J4KK9Cf0KDQmNCR0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cf0KDQmNCR0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0KDQmNCR0JjQiyDQnNCY0JvQntCI0JUKK9Cf0KDQmNCR0JjQiyDQodCQ0JLQkAor0J/QoNCY0JHQmNCL0JXQktCY0Isg0IjQntCS0J4KK9Cf0KDQmNCR0JjQi9CV0JLQmNCLINCe0JvQk9CQCivQn9Cg0JjQkdCY0IvQldCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0J/QoNCY0JHQmNCb0J7QktCY0Isg0JHQoNCQ0J3QmtCY0KbQkAor0J/QoNCY0KbQkCDQltCY0JLQmtCeCivQn9Cg0JjQptCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Cg0JjQptCQINCR0J7QoNCY0JLQntCICivQn9Cg0JjQptCQINCR0J7QodCY0InQmtCQCivQn9Cg0JjQptCQINCU0JDQndCY0JvQngor0J/QoNCY0KbQkCDQlNCj0KjQkNCdCivQn9Cg0JjQptCQINCY0KHQngor0J/QoNCY0KbQkCDQiNCe0JLQkNCd0JrQkAor0J/QoNCY0KbQkCDQnNCQ0KDQmtCeCivQn9Cg0JjQptCQINCc0JjQm9CVCivQn9Cg0JjQptCQINCc0JvQkNCU0JXQnQor0J/QoNCY0KbQkCDQn9CV0KLQkNCgCivQn9Cg0JjQptCQINCh0J7QpNCY0IjQkAor0J/QoNCY0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQn9Cg0JjQiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0KDQmNCI0JjQiyDQnNCY0JvQkNCdCivQn9Cg0JjQiNCY0Isg0JzQmNCg0KHQkNCUCivQn9Cg0JjQiNCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0J/QoNCY0IjQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0KDQmNCI0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cf0KDQmNCa0JXQmyDQn9CV0KLQkNCgCivQn9Cg0JjQmtCY0JTQkNCd0J7QktCY0Kcg0JvQkNCh0JvQngor0J/QoNCY0JrQmNCU0JDQndCe0JLQmNCLINCQ0J3QkAor0J/QoNCY0InQldCS0JAg0JHQntCg0JjQodCb0JDQkgor0J/QoNCY0JzQntCg0JDQpiDQndCY0JrQntCb0JAKK9Cf0KDQmNCc0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cf0KDQmNCc0J7QktCY0Isg0JTQldCI0JDQnQor0J/QoNCY0JzQntCS0JjQiyDQlNCe0JHQoNCY0KbQkAor0J/QoNCY0JzQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0J/QoNCY0JzQntCS0JjQiyDQmtCe0JLQmNCd0JrQkAor0J/QoNCY0JzQntCS0JjQiyDQnNCY0JvQkNCdCivQn9Cg0JjQnNCe0JLQmNCLINCh0KLQntCI0JDQnQor0J/QoNCY0J3QptCY0J8g0IjQntCX0J4KK9Cf0KDQmNCh0JXQm9CQ0KYg0JHQntCg0JjQoQor0J/QoNCY0KHQldCb0JDQpiDQkdCg0JDQndCa0J4KK9Cf0KDQmNCh0JXQm9CQ0KYg0JfQlNCg0JDQktCa0J4KK9Cf0KDQmNCh0JvQkNCdINCX0JLQntCd0JjQnNCY0KAKK9Cf0KDQmNCh0KLQkNCYINCb0JDQlNCY0KHQm9CQ0JIKK9Cf0KDQmNCS0KDQntCU0KHQmtCYINCR0J7QoNCY0KEg0JTQoAor0J/QoNCY0JLQoNCe0JTQodCa0Jgg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Cf0KDQmtCj0KjQmNCLINCQ0J3QmNCm0JAKK9Cf0KDQmtCj0KjQmNCLINCh0JvQkNCS0JrQngor0J/QoNCb0JXQktCY0Isg0KHQotCe0IjQkNCdCivQn9Cg0JvQmNCd0JDQpiDQktCV0InQmtCeCivQn9Cg0InQldCS0JjQiyDQndCQ0JTQkAor0J/QoNCe0KfQmNCa0JXQktCY0Isg0JDQndCa0JAKK9Cf0KDQntCo0JjQiyDQkdCe0JPQlNCQ0J0KK9Cf0KDQntCo0JjQiyDQiNCe0JLQkNCdCivQn9Cg0J7QqNCY0Isg0J3QldCC0J4KK9Cf0KDQntCo0JjQiyDQndCV0ILQngor0J/QoNCe0KjQmNCLINCd0JXQkdCe0IjQqNCQCivQn9Cg0J7QqNCY0Isg0J3QmNCa0J7Qm9CQCivQn9Cg0J7QqNCY0Isg0J/QldCi0JDQoAor0J/QoNCe0KjQmNCLINCh0JzQmNCJ0JAKK9Cf0KDQntCR0J7QiNCn0JXQktCY0Isg0JDQndCi0KPQnQor0J/QoNCe0JHQntCI0KfQldCS0JjQiyDQldCg0J3QldCh0KIKK9Cf0KDQntCR0J7QiNCn0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQn9Cg0J7QkdCe0IjQp9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cf0KDQntCU0JDQndCQINCa0KDQodCi0JDQnQor0J/QoNCe0JTQkNCd0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQn9Cg0J7QlNCQ0J3QmNCLINCc0JjQm9CQ0J0KK9Cf0KDQntCU0JDQndCe0JIg0JDQndCC0JXQm9Ca0JAKK9Cf0KDQntCU0JDQndCe0JIg0JHQm9CQ0JPQntCI0JAKK9Cf0KDQntCU0JDQndCe0JIg0JHQntCg0JAKK9Cf0KDQntCU0JDQndCe0JIg0JTQkNCd0JjQm9CeCivQn9Cg0J7QlNCQ0J3QntCSINCU0KDQkNCT0J7QidCj0JEKK9Cf0KDQntCU0JDQndCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0J/QoNCe0JTQkNCd0J7QkiDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cf0KDQntCU0JDQndCe0JIg0JTQo9Co0JDQnQor0J/QoNCe0JTQkNCd0J7QkiDQk9Ce0KDQmNCm0JAKK9Cf0KDQntCU0JDQndCe0JIg0JjQm9CY0IjQkAor0J/QoNCe0JTQkNCd0J7QkiDQiNCe0JLQkNCdCivQn9Cg0J7QlNCQ0J3QntCSINCI0KPQodCi0JjQndCQCivQn9Cg0J7QlNCQ0J3QntCSINCc0JjQm9CQ0J0KK9Cf0KDQntCU0JDQndCe0JIg0JzQmNCb0JXQndCQCivQn9Cg0J7QlNCQ0J3QntCSINCc0JjQm9CV0J3QmtCeCivQn9Cg0J7QlNCQ0J3QntCSINCc0JjQntCU0KDQkNCTCivQn9Cg0J7QlNCQ0J3QntCSINCc0JvQkNCU0JXQnQor0J/QoNCe0JTQkNCd0J7QkiDQndCV0JTQldCJ0JrQngor0J/QoNCe0JTQkNCd0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQn9Cg0J7QlNCQ0J3QntCSINCh0JDQktCQCivQn9Cg0J7QlNCQ0J3QntCSINCh0JvQkNCS0JrQkCDQlNCgCivQn9Cg0J7QlNCQ0J3QntCSINCX0KPQl9CQ0J3QkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0KjQn9CY0KDQngor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JbQkNCg0JrQngor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JbQldCJ0JrQngor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JbQmNCS0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JbQmNCS0JrQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JbQmNCS0JrQngor0J/QoNCe0JTQkNCd0J7QktCY0Isg0ILQntCa0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCC0KPQoNCeCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCR0JjQidCQ0J3QkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCU0JDQnNCI0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCU0JDQndCY0JvQmtCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JTQo9Co0JjQptCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQk9CQ0JLQoNCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JrQntCh0KLQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JrQntCh0KLQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JvQkNCX0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCJ0KPQkdCe0IjQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JDQoNCi0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCJ0JrQngor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCc0JjQoNCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLLdCf0JDQitCa0J7QktCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0J/QkNCS0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCf0JDQktCb0JUKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQoNCQ0KLQmtCeCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQoNCe0JTQntCJ0KPQkQor0J/QoNCe0JTQkNCd0J7QktCY0Isg0KHQkNCS0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCh0JjQndCY0KjQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCh0KLQkNCd0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCi0JDQndCQ0KHQmNCI0JUKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCS0JDQodCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQktCQ0KHQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JLQldCb0JjQndCa0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCS0JXQidCa0J4KK9Cf0KDQntCU0JDQndCe0JLQmNCLINCS0JXQoNCQINCU0KAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cf0KDQntCU0JDQndCe0JLQmNCLINCX0JDQk9Ce0KDQmtCQCivQn9Cg0J7QlNCQ0J3QntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0J/QoNCe0JTQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0J/QoNCe0JTQmNCLINCU0JDQndCY0KbQkAor0J/QoNCe0JTQmNCLINCS0JjQlNCQCivQn9Cg0J7QlNCY0Isg0JLQmNCi0J7QnNCY0KAKK9Cf0KDQntCU0JjQiyDQktCY0KLQntCc0JjQoAor0J/QoNCe0KTQntCd0KLQkNCg0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0J/QoNCe0KXQkNCh0JrQkCDQnNCY0JvQldCd0JrQngor0J/QoNCe0KXQkNCh0JrQkCDQndCY0JrQntCb0JAKK9Cf0KDQntCl0JDQodCa0JAg0KHQotCV0JLQkNCdCivQn9Cg0J7QpdCQ0KHQmtCQINCS0JXQoNCQCivQn9Cg0J7QiNCa0J7QktCh0JrQmCDQlNCV0KHQn9CQCivQn9Cg0J7QmtCV0Kgg0JHQldCb0JAKK9Cf0KDQntCa0JXQqCDQm9CQ0JTQmNCh0JvQkNCSCivQn9Cg0J7QmtCY0Isg0ILQntCg0ILQlQor0J/QoNCe0JrQmNCLINCT0J7QoNCQ0J0KK9Cf0KDQntCa0JjQiyDQnNCY0JvQkNCdCivQn9Cg0J7QmtCY0Isg0JzQmNCg0JAKK9Cf0KDQntCa0JjQiyDQoNCj0JbQmNCm0JAKK9Cf0KDQntCa0JjQiyDQodCi0JXQktCQ0J0KK9Cf0KDQntCa0JjQiyDQodCi0JXQktCQ0J0KK9Cf0KDQntCa0JjQiyDQl9Ce0KDQkNCdCivQn9Cg0J7QmtCY0Isg0JfQntCg0JDQnQor0J/QoNCe0JrQmNCdINCQ0J3QgtCV0JvQmtCQCivQn9Cg0J7QmtCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Cg0J7QmtCY0J0g0JrQodCV0J3QmNCI0JAKK9Cf0KDQntCa0JjQnSDQm9CQ0JfQkNCgCivQn9Cg0J7QmtCY0J0g0JzQkNCg0JrQngor0J/QoNCe0JrQmNCdINCc0JjQoNCQCivQn9Cg0J7QmtCY0J0g0KDQkNCU0JjQktCe0IgKK9Cf0KDQntCa0JjQnSDQoNCj0JbQmNCm0JAKK9Cf0KDQntCa0JjQnSDQodCi0JXQktCQ0J0KK9Cf0KDQntCa0JjQnSDQodCi0JXQktCQ0J0KK9Cf0KDQntCa0JjQnSDQl9Cb0JDQotCY0J3QmtCQCivQn9Cg0J7QmtCY0J0g0JfQntCg0JAKK9Cf0KDQntCa0J7Qn9CV0KYg0JTQo9Co0JDQnQor0J/QoNCe0JrQntCf0JXQpiDQpdCV0JvQldCd0JAKK9Cf0KDQntCa0J7Qn9CV0KYg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cf0KDQntCa0J7Qn9CV0KYg0KHQotCV0JLQkNCdCivQn9Cg0J7QmtCe0J/QmNCLINCn0JXQlNCeCivQn9Cg0J7QmtCe0J/QmNCLINCc0JjQpdCQ0IjQmNCb0J4KK9Cf0KDQntCa0J7Qn9CY0Isg0KHQotCe0IjQkNCdCivQn9Cg0J7Qm9CVINCm0JLQmNCI0J4KK9Cf0KDQntCb0JUg0IjQkNCT0J7QlNCQCivQn9Cg0J7Qm9CVINCc0JXQm9CQ0J3QmNCI0JAKK9Cf0KDQntCb0JUg0JzQmNCb0JXQndCa0J4KK9Cf0KDQntCb0JUg0JzQmNCb0JjQiNCQ0J3QkAor0J/QoNCe0JvQlSDQnNCY0JvQntCoCivQn9Cg0J7Qm9CVINCc0JjQoNCa0J4KK9Cf0KDQntCb0JUg0JzQmNCg0J7QodCb0JDQkgor0J/QoNCe0JvQlSDQnNCY0KLQkNCgCivQn9Cg0J7Qm9CVINCc0JjQotCQ0KAKK9Cf0KDQntCb0JUg0JzQm9CQ0JTQldCdCivQn9Cg0J7Qm9CVINCg0JDQlNCe0JLQkNCdCivQn9Cg0J7Qm9CVINCg0JjQodCi0JAKK9Cf0KDQntCb0JUg0KHQotCQ0J3QmNCh0JvQkNCSCivQn9Cg0J7Qm9CVINCh0KLQkNCd0JrQngor0J/QoNCe0JvQlSDQo9CT0InQldCo0JAKK9Cf0KDQntCb0JUg0JLQldCJ0JrQngor0J/QoNCe0JvQlSDQktCV0KDQntCd0JAKK9Cf0KDQntCb0JjQiyDQlNCg0JDQk9CY0KbQkAor0J/QoNCe0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQn9Cg0J7Qm9CY0Isg0J/QldCg0J4KK9Cf0KDQntCb0JjQiyDQktCY0JQKK9Cf0KDQntCh0JXQndCY0KbQkCDQnNCQ0KDQmtCeCivQn9Cg0J7QodCV0J3QmNCm0JAg0JLQmNCU0J7QodCQ0JLQkAor0J/QoNCe0KHQldCd0JjQmiDQlNCj0JHQoNCQ0JLQmtCeCivQn9Cg0J7QodCV0J3QmNCaINCX0JLQntCd0JjQnNCY0KAKK9Cf0KDQntCh0KLQoNCQ0J0g0KfQldCU0J7QnNCY0KAKK9Cf0KDQntCh0KLQoNCQ0J0g0J/QldCi0JDQoAor0J/QoNCe0KLQmNCLINCW0JDQoNCa0J4KK9Cf0KDQntCi0JjQiyDQgtCe0JrQkAor0J/QoNCe0KLQmNCLINCC0J7QoNCC0JUKK9Cf0KDQntCi0JjQiyDQkdCe0KHQmNCJ0JrQkAor0J/QoNCe0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0J/QoNCe0KLQmNCLINCU0KDQkNCT0JDQnQor0J/QoNCe0KLQmNCLINCU0KPQqNCQ0J0KK9Cf0KDQntCi0JjQiyDQmNCb0JjQiNCQINCU0JjQn9CbINCY0J3Qkwor0J/QoNCe0KLQmNCLINCI0J7QodCY0JwKK9Cf0KDQntCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0KDQntCi0JjQiyDQnNCY0JvQldCd0JAg0JTQoCDQodCi0J7QnNCQ0KLQntCb0J7Qkwor0J/QoNCe0KLQmNCLINCc0JjQm9Ca0JAKK9Cf0KDQntCi0JjQiy3QnNCY0JvQntCo0JXQktCY0Isg0KHQmNCc0JrQkCDQn9Cg0J7QpAor0J/QoNCe0KLQmNCLINCc0JjQm9Ce0KgKK9Cf0KDQntCi0JjQiyDQnNCY0JvQntCg0JDQlAor0J/QoNCe0KLQmNCLINCc0JjQoNCI0JDQndCQCivQn9Cg0J7QotCY0Isg0JzQmNCi0JDQoAor0J/QoNCe0KLQmNCLINCd0JDQlNCQCivQn9Cg0J7QotCY0Isg0J7QkdCg0JDQlAor0J/QoNCe0KLQmNCLINCf0KDQldCU0KDQkNCTCivQn9Cg0J7QotCY0Isg0J/Qo9Cd0JjQqNCQCivQn9Cg0J7QotCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cf0KDQntCi0JjQiyDQodCQ0JzQo9CY0JvQngor0J/QoNCe0KLQmNCLINCh0JzQmNCJ0JAKK9Cf0KDQntCi0JjQiyDQktCY0JTQkAor0J/QoNCe0KLQmNCLINCS0JjQotCe0JzQmNCgCivQn9Cg0J7QktCn0Jgg0JDQk9CQ0KTQmNCI0JAKK9Cf0KDQntCS0KfQmCDQldCS0JPQldCd0JjQiNCVINCU0JjQn9CbINCY0J3Qkwor0J/QoNCe0JLQp9CYINCI0J7QktCT0JXQnQor0J/QoNCe0JLQp9CYINCS0JXQoNCQCivQn9Cg0J/QkCDQkNCd0ILQkAor0J/QoNCf0JAg0JPQntCh0J/QkAor0J/QoNCf0JAg0JvQkNCX0JDQoAor0J/QoNCf0JAg0JzQkNCg0JPQmNCi0JAKK9Cf0KDQn9CQINCc0JjQm9Ce0JLQkNCdCivQn9Cg0J/QkCDQktCV0InQmtCeCivQn9Cg0J/QkCDQl9CQ0JPQntCg0JrQkAor0J/QoNCf0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QoNCf0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QoNCf0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/QoNCf0JjQiyDQnNCQ0KDQmNCI0JDQndCQCivQn9Cg0J/QmNCLINCd0JjQmtCe0JvQkAor0J/QoNCf0JjQiyDQoNCQ0JTQntCS0JDQnQor0J/QoNCh0JrQkNCb0J4g0JHQm9CQ0JPQngor0J/QoNCh0KLQntCI0JXQktCY0Isg0JPQntCg0JDQnQor0J/QoNCh0KLQntCI0JXQktCY0Isg0JLQntCI0JjQodCb0JDQkgor0J/QoNCi0JjQndCQINCR0KDQkNCd0JrQngor0J/QoNCj0JbQkNCg0JXQkiDQotCQ0KLQiNCQ0J3QkAor0J/QoNCj0JTQkNCdLdCC0KPQoNCY0KjQmNCLINCg0JDQlNCe0IjQmtCQINCU0KAKK9Cf0KDQo9CT0JjQiyDQidCj0JHQntCc0JjQoAor0J/QoNCj0JPQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cf0KDQo9CT0JjQndCY0Isg0InQo9CR0JjQptCQCivQn9Cg0KPQndCY0Isg0IjQntCS0JDQnQor0J/QoNCj0KHQmNCd0JAg0JTQoNCQ0JPQngor0J/QoNCj0KHQmNCd0JAg0JjQm9CY0IjQkAor0J/QoNCj0KHQmNCd0JAg0JzQkNCg0JPQmNCi0JAKK9Cf0KDQo9Ch0JjQndCQINCc0JjQm9CQ0J0KK9Cf0KDQo9Ch0JjQndCQINCS0JvQkNCi0JrQngor0J/QoNCS0JDQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQn9Cg0JLQkNCd0J7QkiDQlNCQ0KDQmNCd0JrQkAor0J/QoNCS0JDQndCe0JIg0JTQmNCS0J3QkAor0J/QoNCS0JDQndCe0JIg0JzQmNCb0J7QqAor0J/QoNCS0JDQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0J/QoNCS0JDQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0J/QodCe0JTQkNCg0J7QkiDQkdCg0JDQndCa0J4KK9Cf0KHQntCU0J7QoNCe0JIg0JzQkNCI0JAKK9Cf0KHQntCU0J7QoNCe0JIg0KHQn9CQ0KHQntCI0JUKK9Cf0KHQntCU0J7QoNCe0JIg0KLQkNCc0JDQoNCQCivQn9Ci0JjQp9CQ0KAg0ILQo9Cg0JAKK9Cf0KLQmNCn0JDQoCDQnNCY0JvQkNCdCivQn9Cj0KjQkNCmINCR0KDQkNCd0JrQngor0J/Qo9Co0JDQpiDQiNCV0JvQldCd0JrQngor0J/Qo9Co0JDQpiDQnNCY0JvQldCd0JAKK9Cf0KPQqNCQ0KYg0JzQmNCb0JXQndCQCivQn9Cj0KjQkNCg0JAg0ILQntCg0ILQlQor0J/Qo9Co0JDQoNCQINCR0J7QltCY0JTQkNCgCivQn9Cj0KjQkNCg0JAg0JTQo9Co0JDQnQor0J/Qo9Co0JDQoNCQINCI0JXQm9CV0J3QkAor0J/Qo9Co0JDQoNCQINCc0JjQm9CY0JLQntCICivQn9Cj0KjQkNCg0JAg0JzQmNCg0JrQngor0J/Qo9Co0JDQoNCQINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0KPQqNCQ0KDQkCDQoNCQ0JTQnNCY0JvQkAor0J/Qo9Co0JXQidCY0Isg0IjQldCb0JXQndCQCivQn9Cj0KjQldCK0JDQmiDQnNCQ0KDQmNCI0JAKK9Cf0KPQqNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0J/Qo9Co0JjQiyDQlNCj0KjQkNCdCivQn9Cj0KjQmNCLINCV0JzQmNCbCivQn9Cj0KjQmNCLINCT0J7QoNCQ0J0KK9Cf0KPQqNCY0Isg0IjQntCS0JDQnQor0J/Qo9Co0JjQiyDQidCj0JHQmNCd0JrQngor0J/Qo9Co0JjQiyDQnNCY0JvQldCd0JAKK9Cf0KPQqNCY0Isg0JzQmNCb0JjQptCQCivQn9Cj0KjQmNCLINCc0JjQm9CY0JLQntCICivQn9Cj0KjQmNCLINCc0JjQm9Ce0KgKK9Cf0KPQqNCY0Isg0J3QmNCa0J7Qm9CQCivQn9Cj0KjQmNCLINCe0JHQoNCQ0JQKK9Cf0KPQqNCY0Isg0J/QkNCS0JvQlQor0J/Qo9Co0JjQiyDQodCQ0JLQkAor0J/Qo9Co0JjQiyDQodCQ0JLQkAor0J/Qo9Co0JjQiyDQodCe0KTQmNCI0JAKK9Cf0KPQqNCY0Isg0KHQotCV0JLQkNCdCivQn9Cj0KjQmNCLINCS0JXQoNCY0KbQkAor0J/Qo9Co0JjQiyDQktCV0KDQmNCm0JAKK9Cf0KPQqNCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cf0KPQqNCY0JHQoNCaINCm0JLQldCi0JrQngor0J/Qo9Co0JjQkdCg0Jog0JLQkNCh0JAKK9Cf0KPQqNCY0J0g0JzQmNCg0IjQkNCd0JAKK9Cf0KPQqNCY0J0g0JzQmNCg0J7QodCb0JDQkgor0J/Qo9Co0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQn9Cj0KjQmNCdINCS0JvQkNCU0JAKK9Cf0KPQqNCa0JDQqCDQgtCj0KDQkAor0J/Qo9Co0JrQkNCoINCC0KPQoNCQCivQn9Cj0KjQmtCQ0Kgg0KbQmNCb0JAKK9Cf0KPQqNCa0JDQqCDQiNCe0JbQldCkCivQn9Cj0KjQmtCQ0Kgg0IjQntCQ0JrQmNCcCivQn9Cj0KjQmtCQ0Kgg0IjQo9Cb0JjQiNCQ0J0KK9Cf0KPQqNCa0JDQqCDQnNCY0KXQkNCI0JvQngor0J/Qo9Co0JrQkNCoINCc0JjQm9CV0J3QkAor0J/Qo9Co0JrQkNCoINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0KPQqNCa0JDQqCDQntCb0JXQndCQCivQn9Cj0KjQmtCQ0Kgg0J7QndCj0KTQoNCY0IjQlQor0J/Qo9Co0JrQkNCoINCf0JXQotCQ0KAKK9Cf0KPQqNCa0JDQqCDQoNCe0JfQkNCb0JjQiNCQCivQn9Cj0KjQmtCQ0Kgg0KHQotCV0JLQkNCdCivQn9Cj0KjQmtCQ0Kgg0JLQldCg0JAKK9Cf0KPQqNCa0JDQqCDQktCb0JDQlNCY0JzQmNCgCivQn9Cj0KjQmtCQ0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0J/Qo9Co0JrQkNCgINCI0J7QktCY0KbQkAor0J/Qo9Co0JrQkNCgINCh0KLQldCS0JAKK9Cf0KPQqNCa0JDQoCDQktCe0IjQmNCh0JvQkNCSCivQn9Cj0KjQmtCQ0KDQldCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0J/Qo9Co0JrQkNCg0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQn9Cj0KjQmtCQ0KDQmNCLINCQ0J3QkAor0J/Qo9Co0JrQkNCg0JjQiyDQmNCS0JDQnQor0J/Qo9Co0JrQkNCg0JjQiyDQiNCj0KDQlQor0J/Qo9Co0JrQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9Cf0KPQqNCa0JDQoNCe0JIg0JTQkNCd0JjQm9Ca0JAKK9Cf0KPQqNCa0JDQoNCe0JIg0JTQkNCd0JjQm9Ca0JAKK9Cf0KPQqNCa0JDQoNCe0JIg0JzQmNCb0JDQnQor0J/Qo9Co0JrQkNCg0J7QkiDQl9Ce0KDQkAor0J/Qo9Co0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQngor0J/Qo9Co0KLQoNCY0Isg0JzQmNCb0JDQnQor0J/Qo9Co0KLQoNCY0Isg0KHQn9CQ0KHQntCI0JUKK9Cf0KPQli3QldCS0JjQiyDQntCb0JPQkAor0J/Qo9CW0JjQiyDQktCV0KDQkAor0J/Qo9CC0JAg0JvQldCf0J7QodCQ0JLQkAor0J/Qo9CQ0Kcg0KHQktCV0KLQmNCh0JvQkNCSCivQn9Cj0JDQpyDQodCS0JXQotCe0JfQkNCgCivQn9Cj0JDQp9CQINCS0JXQidCa0J4g0JTQoAor0J/Qo9Cm0JDQoCDQgtCj0KDQngor0J/Qo9Cm0JDQoCDQlNCj0KjQkNCdCivQn9Cj0KbQkNCgINCc0JjQm9CY0KbQkAor0J/Qo9Cm0JDQoCDQodCi0JXQktCeCivQn9Cj0KbQkNCgINCS0JDQodCY0JvQmNCI0JUKK9Cf0KPQptCQ0KAg0JLQkNCh0J4KK9Cf0KPQptCQ0KAg0JfQlNCg0JDQktCa0J4KK9Cf0KPQptCQ0KDQldCS0JjQiyDQltCY0JLQmtCeCivQn9Cj0KbQkNCg0JXQktCY0Isg0JHQntCh0JjQidCa0JAKK9Cf0KPQptCQ0KDQldCS0JjQiyDQk9Ce0IjQmtCeCivQn9Cj0KbQkNCg0JXQktCY0Isg0KXQmNCb0JTQkAor0J/Qo9Cm0JDQoNCV0JLQmNCLINCI0JXQm9CQCivQn9Cj0KbQkNCg0JXQktCY0Isg0J3QntCS0JDQmgor0J/Qo9Cm0JDQoNCV0JLQmNCLINCh0J7QpNCY0IjQkAor0J/Qo9Cm0J7QktCh0JrQmCDQgtCj0KDQngor0J/Qo9CU0JDQoCDQlNCQ0J3QmNCb0J4KK9Cf0KPQlNCQ0KAg0JPQntCI0JrQngor0J/Qo9CU0JDQoCDQoNCQ0IjQmtCeCivQn9Cj0JTQkNCgINCg0JDQndCa0J4KK9Cf0KPQlNCQ0KAg0KDQkNCd0JrQngor0J/Qo9CU0JDQoCDQoNCQ0J3QmtCeCivQn9Cj0JTQkNCgINCg0JDQotCa0J4KK9Cf0KPQlNCQ0KAg0KHQm9Ce0JHQntCU0JDQnQor0J/Qo9CU0JDQoCDQodCi0JXQktCQ0J0KK9Cf0KPQlNCQ0KAg0JfQlNCg0JDQktCa0J4KK9Cf0KPQlNCY0Isg0JjQm9CY0IjQkAor0J/Qo9CU0JjQiyDQiNCe0JfQkAor0J/Qo9CU0KDQidCQINCR0KDQkNCd0JrQngor0J/Qo9CT0JDQoCDQkNCd0ILQldCb0JrQkAor0J/Qo9Cl0JDQp9CQINCh0KLQldCS0J4KK9Cf0KPQpdCQ0JvQkNCaINCR0JXQoNCi0JAKK9Cf0KPQpdCQ0JvQkNCaINCb0JDQodCb0J4g0JTQoCDQm9CV0JrQkNCgCivQn9Cj0KXQkNCb0JDQmiDQodCi0JXQktCQ0J0KK9Cf0KPQpdCQ0J0g0J7QodCa0JDQoAor0J/Qo9Cl0JDQndCY0Isg0KLQldCg0JXQl9CQCivQn9Cj0KXQkNCgINCU0KPQqNCQ0J0KK9Cf0KPQpdCQ0KAg0KTQoNCQ0J3Qpgor0J/Qo9CY0Isg0ILQntCg0ILQlQor0J/Qo9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0J/Qo9CI0JAg0KTQm9Ce0KDQmNCdCivQn9Cj0IjQmNCLINCc0JjQm9CY0JLQntCICivQn9Cj0IjQmNCLINCc0JjQm9Ce0KgKK9Cf0KPQiNCY0Isg0J3QkNCU0JXQltCU0JAKK9Cf0KPQiNCY0Isg0J/QldCg0KHQmNCU0JAg0JTQmNCf0Jsg0JjQndCTCivQn9Cj0IjQmNCLINCh0JDQktCQCivQn9Cj0IjQmNCLINCh0KLQldCS0JDQnQor0J/Qo9CI0JjQnSDQm9CQ0JfQkAor0J/Qo9CI0JjQnSDQoNCQ0JTQlQor0J/Qo9CI0JjQnSDQoNCQ0JTQmNCS0J7QiNCVCivQn9Cj0IjQmNCdINCh0KLQldCS0JDQnQor0J/Qo9CI0JjQnSDQktCb0JDQodCi0JAg0JTQoAor0J/Qo9Cb0JDQmCDQm9CQ0IjQntCoCivQn9Cj0JvQldCi0JjQiyDQl9CU0KDQkNCS0JrQngor0J/Qo9Cb0JjQiyDQkNCd0KLQntCd0JjQiNCQCivQn9Cj0JvQmNCLINCe0JvQk9CQCivQn9Cj0JvQmNCLINCg0JDQlNCe0IjQmtCQCivQn9Cj0JvQmNCh0JDQmiDQpNCg0JDQitCQCivQn9Cj0JvQmNCh0JDQmiDQmNCb0J7QndCa0JAKK9Cf0KPQm9CY0KHQkNCaINCI0J7QktCQ0J0KK9Cf0KPQm9CY0KHQkNCaINCc0JjQpdCQ0IjQm9CeCivQn9Cj0JvQmNCh0JDQmiDQndCQ0JTQldCW0JTQkAor0J/Qo9Cb0JjQodCQ0Jog0J3QmNCa0J7Qm9CQCivQn9Cj0InQmNCX0JXQktCY0Isg0JDQndCi0KPQnSDQlNCY0J/QmyDQmNCd0JMKK9Cf0KPQndCU0J7QkiDQkNCd0JTQoNCV0IgKK9Cf0KPQndCT0KPQmyDQiNCe0JLQmNCm0JAKK9Cf0KPQndCT0KPQmyDQnNCY0KDQkAor0J/Qo9Cf0JDQktCQ0KYg0ILQntCg0ILQlQor0J/Qo9Cf0JDQktCQ0KYg0JHQoNCQ0J3QmtCeCivQn9Cj0J/QkNCS0JDQpiDQkdCg0JDQndCa0J4KK9Cf0KPQn9CQ0JLQkNCmINCk0KDQkNCK0JAKK9Cf0KPQn9CQ0JLQkNCmINCc0JjQm9CQ0J0KK9Cf0KPQn9CQ0JLQkNCmINCf0JXQotCQ0KAKK9Cf0KPQn9CQ0JLQkNCmINCh0KLQkNCa0JAKK9Cf0KPQn9CQ0JLQkNCmINCh0KLQldCS0JDQnQor0J/Qo9Cf0JDQktCQ0KYg0KHQotCe0IjQkNCdCivQn9Cj0J/QkNCS0JDQpiDQotCe0JTQntCgCivQn9Cj0J/QkNCS0JDQpiDQktCV0KHQndCQCivQn9Cj0J/QmNCLINCg0JDQlNCc0JjQm9CQCivQn9Cj0J/QmNCdINCW0JjQktCQ0J0KK9Cf0KPQn9Ce0JLQkNCmINCU0JzQmNCi0JDQoAor0J/Qo9Cf0J7QktCQ0KYg0JTQo9Co0JDQnQor0J/Qo9Cf0J7QktCQ0KYg0JvQo9Ca0JAKK9Cf0KPQn9Ce0JLQkNCmINCc0JjQm9Ce0KgKK9Cf0KPQn9Ce0JLQkNCmINCc0JjQm9Ce0KgKK9Cf0KPQn9Ce0JLQkNCmINCh0JLQldCi0JvQkNCd0JAKK9Cf0KPQn9Ce0JLQkNCmINCi0J7QlNCe0KAKK9Cf0KPQn9Ce0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQn9Cj0KDQkNCLINCW0JjQktCa0J4KK9Cf0KPQoNCQ0Isg0JHQoNCQ0J3QmtCeCivQn9Cj0KDQkNCLINCV0KDQltCV0JHQldCiCivQn9Cj0KDQkNCLINCI0J7QktCQ0J0KK9Cf0KPQoNCQ0Isg0JvQkNCX0JDQoAor0J/Qo9Cg0JDQiyDQnNCQ0JPQlNCQCivQn9Cj0KDQkNCLINCc0JjQm9CQ0JTQmNCdCivQn9Cj0KDQkNCLINCc0JjQm9CQ0JTQmNCdCivQn9Cj0KDQkNCLINCc0JjQm9CV0J3QmtCeCivQn9Cj0KDQkNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cf0KPQoNCQ0Isg0J3QkNCU0JAKK9Cf0KPQoNCQ0Isg0J7Qm9CT0JAKK9Cf0KPQoNCY0KjQmNCLINCn0JXQlNCeCivQn9Cj0KDQmNCo0JjQiyDQodCS0JXQotCb0JDQndCQCivQn9Cj0KDQmNCLINCR0JvQkNCd0JrQkAor0J/Qo9Cg0JjQiyDQkdCe0JbQngor0J/Qo9Cg0JjQiyDQlNCY0IjQkNCd0JAKK9Cf0KPQoNCY0Isg0JTQoNCQ0JPQkNCdCivQn9Cj0KDQmNCLINCU0KDQkNCT0JjQptCQCivQn9Cj0KDQmNCLINCc0JjQm9CQ0J0KK9Cf0KPQoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0J/Qo9Cg0JjQiyDQl9Ce0KDQkAor0J/Qo9Cg0JrQntCSINCS0JXQodCV0JvQmNCdCivQn9Cj0KDQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0J/Qo9Cg0KLQmNCLINCd0JjQmtCe0JvQkAor0J/Qo9Ch0KLQkNCYINCY0JzQoNCVCivQn9Cj0KHQotCQ0Jgg0IjQldCd0JUKK9Cf0KPQodCi0JDQiNCY0Isg0JHQoNCQ0J3QmtCQCivQn9Cj0KHQotCQ0IjQmNCLINCg0JDQlNCQCivQn9Cj0KHQotCQ0IjQmNCLINCS0KPQmtCY0KbQkAor0J/Qo9Ch0KLQmCDQiNCe0KHQmNCfCivQn9Cj0KLQkNCg0JjQiyDQiNCe0JLQkNCdCivQn9Cj0KLQmNCLINCW0JjQktCQ0J3QkAor0J/Qo9Ci0JjQiyDQmtCQ0KLQmNCm0JAKK9Cf0KPQotCY0Isg0JvQmNCS0JjQiNCQCivQn9Cj0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cf0KPQotCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQn9Cj0KLQmNCLINCX0J7QoNCQ0J0KK9Cf0KPQotCd0JjQmiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0J/Qo9Ci0J3QmNCaINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQn9Cj0KLQndCY0Jog0JHQntCg0JjQodCb0JDQkgor0J/Qo9Ci0J3QmNCaINCR0KDQkNCd0JrQngor0J/Qo9Ci0J3QmNCaINCU0JDQndCY0JvQmtCQCivQn9Cj0KLQndCY0Jog0JTQmNCc0JjQotCg0JjQiNCVCivQn9Cj0KLQndCY0Jog0JPQldCg0KLQoNCj0JTQkAor0J/Qo9Ci0J3QmNCaINCT0J7QoNCQ0J0KK9Cf0KPQotCd0JjQmiDQmNCS0JDQnQor0J/Qo9Ci0J3QmNCaINCI0JXQm9CV0J3QkAor0J/Qo9Ci0J3QmNCaINCa0JDQotCY0KbQkAor0J/Qo9Ci0J3QmNCaINCa0KHQldCd0JjQiNCQCivQn9Cj0KLQndCY0Jog0InQo9CR0JjQptCQCivQn9Cj0KLQndCY0Jog0JzQmNCb0JDQnQor0J/Qo9Ci0J3QmNCaINCc0JjQm9CQ0J0KK9Cf0KPQotCd0JjQmiDQnNCY0JvQldCd0JAKK9Cf0KPQotCd0JjQmiDQnNCY0JvQntCg0JDQlAor0J/Qo9Ci0J3QmNCaINCd0JXQktCV0J3QmtCQCivQn9Cj0KLQndCY0Jog0J/QkNCI0J4KK9Cf0KPQotCd0JjQmiDQn9CV0KLQkNCgCivQn9Cj0KLQndCY0Jog0J/QldCi0JDQoAor0J/Qo9Ci0J3QmNCaINCg0JDQlNCVCivQn9Cj0KLQndCY0Jog0KDQkNCU0J7QnNCY0KAKK9Cf0KPQotCd0JjQmiDQoNCQ0JTQntCS0JDQnQor0J/Qo9Ci0J3QmNCaINCh0JvQntCR0J7QlNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQn9Cj0KLQndCY0Jog0KHQndCV0JbQkNCd0JAKK9Cf0KPQotCd0JjQmiDQodCi0JXQpNCQ0J3QmNCI0JAKK9Cf0KPQotCd0JjQmiDQodCi0JXQktCQ0J0KK9Cf0KPQotCd0JjQmiDQodCi0JXQktCQ0J0KK9Cf0KPQotCd0JjQmi3Qo9Cg0JDQpyDQoNCV0J3QkNCi0JAKK9Cf0KPQotCd0JjQmiDQktCb0JDQlNCY0JzQmNCgINCU0KAKK9Cf0KPQotCd0JjQmiDQktCb0JDQlNCY0JzQmNCgCivQn9Cj0KLQndCY0Jog0JfQntCg0JDQnQor0J/Qo9Ci0J3QmNCa0J7QktCY0Isg0JjQktCQ0J0KK9Cf0KPQotCd0JjQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0J/Qo9Ci0J3QmNCa0J7QktCY0Isg0J/QmNCg0J7QqNCa0JAKK9Cf0KPQktCQ0KfQkCDQidCY0InQkNCd0JAKK9Cf0KPQktCQ0JvQmNCLINCa0JDQotCY0KbQkAor0J/Qo9CX0JjQiyDQkdCY0InQkNCd0JAKK9Cf0KPQl9CY0Isg0JHQntCo0JrQngor0J/Qo9CX0JjQiyDQkdCe0KHQkAor0J/Qo9CX0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQn9Cj0JfQmNCLINCh0JDQktCQCivQn9Cj0JfQmNCLINCS0JXQidCa0J4KK9Cf0KPQl9CY0JPQkNCL0JAg0JrQoNCY0KHQotCY0J3QkAor0KDQkNCn0JjQiyDQkNCg0JDQndCC0JXQmwor0KDQkNCn0JjQiyDQm9CV0J/QntCh0JDQktCQCivQoNCQ0KfQmNCLINCc0JjQm9Ce0KgKK9Cg0JDQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQkNCn0JjQiyDQndCQ0JTQkAor0KDQkNCn0JjQiyDQoNCQ0J3QmtCeCivQoNCQ0KfQmNCLINCh0JDQqNCQCivQoNCQ0KfQmNCLLdCh0JDQktCY0J0g0JfQntCg0JjQptCQCivQoNCQ0KfQmNCLINCh0KLQntCI0JDQnQor0KDQkNCn0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0KfQmNCLINCS0JXQoNCQCivQoNCQ0KfQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCQ0KjQp9CQ0J3QmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0KDQkNCo0KfQkNCd0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQqNCn0JjQiyDQndCV0KXQoNCjCivQoNCQ0KjQkCDQlNCe0IjQndCQCivQoNCQ0KjQkNCI0KHQmtCYINCU0KPQqNCQ0J0KK9Cg0JDQqNCQ0IjQodCa0Jgg0JLQldCg0J7QodCb0JDQkgor0KDQkNCo0JXQotCQINCU0JDQndCVCivQoNCQ0KjQldCi0JAg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQqNCV0KLQkCDQnNCY0KDQiNCQ0J3QkAor0KDQkNCo0JXQotCQINCd0JjQmtCe0JvQkAor0KDQkNCo0JXQotCQINCf0JXQotCQ0KAKK9Cg0JDQqNCV0KLQkCDQodCi0JXQktCQCivQoNCQ0KjQldCi0JAg0KLQntCc0JAKK9Cg0JDQqNCV0KLQkCDQl9CU0KDQkNCS0JrQngor0KDQkNCo0JXQktCY0Isg0JbQkNCg0JrQngor0KDQkNCo0JXQktCY0Isg0JbQldCJ0JrQngor0KDQkNCo0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQqNCY0Isg0JHQntCW0JjQlNCQ0KAg0JTQoAor0KDQkNCo0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cg0JDQqNCY0Isg0JTQo9Co0JjQptCQCivQoNCQ0KjQmNCLINCY0JHQntCI0JrQkAor0KDQkNCo0JjQiyDQmNCT0IrQkNCiCivQoNCQ0KjQmNCLINCY0JvQmNCI0JAKK9Cg0JDQqNCY0Ist0JrQntCf0KfQntCaINCd0JDQlNCQCivQoNCQ0KjQmNCLINCb0JDQl9CQ0KAKK9Cg0JDQqNCY0Isg0JzQkNCd0JTQkAor0KDQkNCo0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQqNCY0Isg0J3QkNCU0JXQltCU0JAKK9Cg0JDQqNCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0KjQmNCLINCf0JDQo9CdCivQoNCQ0KjQmNCLINCf0JXQotCQ0KAg0JzQoCDQmNCd0JMKK9Cg0JDQqNCY0Isg0KHQnNCY0InQkAor0KDQkNCo0JjQiyDQodCi0J7QiNCQ0J0KK9Cg0JDQqNCY0Isg0KPQoNCe0KgKK9Cg0JDQqNCY0Isg0JLQldCh0J3QkAor0KDQkNCo0JjQlNCYINCU0J7QoNCe0KLQldCI0JAKK9Cg0JDQqNCY0JTQmCDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KDQkNCo0JjQiNCe0JLQkNCdINCg0JDQlNCc0JjQm9CQCivQoNCQ0KjQmNCi0Jgg0JHQkNCI0KDQkNCcCivQoNCQ0KjQmNCi0Jgg0KXQkNCS0JAKK9Cg0JDQqNCY0KLQmCDQmNCc0JXQoAor0KDQkNCo0JrQntCSINCR0KDQkNCd0JrQngor0KDQkNCo0JrQntCSINCR0KDQkNCd0JrQngor0KDQkNCo0JrQntCSINCU0JDQndCY0KbQkAor0KDQkNCo0JrQntCSINCc0JDQoNCY0IjQkAor0KDQkNCo0JrQntCSINCh0JzQmNCJ0JrQkAor0KDQkNCo0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0KjQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQqNCa0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cg0JDQqNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQoNCQ0KjQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Cg0JDQqNCa0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9Cg0JDQqNCa0J7QktCY0Isg0JPQntCg0JTQkNCd0JAKK9Cg0JDQqNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCo0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQqNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQqNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQqNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQqNCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQoNCQ0KjQmtCe0JLQmNCLINCg0JDQlNCe0KHQkNCSCivQoNCQ0KjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQqNCa0J7QktCY0Isg0KHQoNCV0IvQmtCeCivQoNCQ0KjQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCo0JrQntCS0JjQiyDQktCV0KDQkAor0KDQkNCo0JrQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0KjQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCo0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KDQkNCW0J3QkNCi0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQgtCV0JvQmNCLINCT0J7QoNCU0JDQndCQCivQoNCQ0ILQldCb0JjQiyDQnNCY0JvQkNCdCivQoNCQ0ILQldCd0J7QktCY0Isg0JbQldCJ0JrQngor0KDQkNCC0JXQndCe0JLQmNCLINCW0JXQidCa0J4KK9Cg0JDQgtCV0J3QntCS0JjQiyDQkdCe0JbQngor0KDQkNCC0JXQndCe0JLQmNCLINCR0J7QoNCY0KEKK9Cg0JDQgtCV0J3QntCS0JjQiyDQkdCe0KHQkAor0KDQkNCC0JXQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0KDQkNCC0JXQndCe0JLQmNCLINCU0KDQkNCT0JAKK9Cg0JDQgtCV0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0ILQldCd0J7QktCY0Isg0JTQo9Co0JDQnQor0KDQkNCC0JXQndCe0JLQmNCLINCa0JDQoNCb0J4KK9Cg0JDQgtCV0J3QntCS0JjQiyDQnNCQ0J3QlQor0KDQkNCC0JXQndCe0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQoNCQ0ILQldCd0J7QktCY0Isg0JzQmNCb0JXQktCQCivQoNCQ0ILQldCd0J7QktCY0Isg0JzQmNCb0JrQkAor0KDQkNCC0JXQndCe0JLQmNCLINCc0JjQm9Ca0JAKK9Cg0JDQgtCV0J3QntCS0JjQiyDQndCV0JHQntCI0KjQkAor0KDQkNCC0JXQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCC0JXQndCe0JLQmNCLINCh0J7QpNCY0IjQkAor0KDQkNCC0JXQndCe0JLQmNCLINCj0KDQntCoCivQoNCQ0ILQldCd0J7QktCY0Isg0JLQldCJ0JrQngor0KDQkNCC0JXQndCe0JLQmNCLINCX0J7QoNCY0KbQkAor0KDQkNCC0JXQktCY0Isg0KHQkNCS0J4KK9Cg0JDQkdCQ0I/QmNCI0JXQktCh0JrQmCDQn9CQ0KPQm9CQCivQoNCQ0JHQkNCi0JjQiyDQnNCY0JvQntCoCivQoNCQ0JHQmCDQiNCe0JbQldCkCivQoNCQ0JHQmNCI0JDQpiDQodCg0JHQkAor0KDQkNCR0KDQldCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JHQoNCV0J3QntCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0KDQkNCR0KDQldCd0J7QktCY0Isg0JfQm9CQ0KLQmNCd0JrQkAor0KDQkNCmINCo0JDQndCU0J7QoAor0KDQkNCmINCQ0JvQkdCV0KDQogor0KDQkNCmINCQ0J3QkAor0KDQkNCmINCR0KDQo9Cd0J4KK9Cg0JDQpiDQldCU0JzQo9Cd0JQKK9Cg0JDQpiDQpNCV0KDQldCd0KYKK9Cg0JDQpiDQpNCV0KDQldCd0KYKK9Cg0JDQpiDQpNCg0JDQitCQCivQoNCQ0KYg0JPQkNCR0KDQmNCI0JXQmwor0KDQkNCmINCI0JDQndCe0KgKK9Cg0JDQpiDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KDQkNCmINCI0J7QktCQ0J0KK9Cg0JDQpiDQidCY0InQkNCd0JAKK9Cg0JDQpiDQidCj0JHQntCc0JjQoAor0KDQkNCmINCc0JDQoNCY0IjQkAor0KDQkNCmINCc0JDQoNCY0IjQkAor0KDQkNCmINCc0JXQm9CQ0J3QmNCI0JAKK9Cg0JDQpiDQn9CQ0JsKK9Cg0JDQpiDQoNCj0JTQntCb0KQKK9Cg0JDQpi3QodCQ0JHQniDQm9CQ0IjQntCoCivQoNCQ0KYg0KHQotCV0JLQkNCdCivQoNCQ0KYg0KLQldCe0JTQntCgCivQoNCQ0KYg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCmINCX0JvQkNCi0JAKK9Cg0JDQptCQINCC0KPQoNCeCivQoNCQ0KbQkCDQlNCg0JDQk9CQ0J0KK9Cg0JDQptCQINCU0KDQkNCT0JDQnQor0KDQkNCm0JAg0JTQoNCQ0JPQkNCdCivQoNCQ0KbQkCDQlNCj0KjQkNCdCivQoNCQ0KbQkCDQk9Ce0KDQlNCQ0J3QkCDQlNCgCivQoNCQ0KbQkCDQnNCY0KDQmtCeCivQoNCQ0KbQkCDQn9CV0KLQkNCgCivQoNCQ0KbQkCDQoNCj0JbQmNCm0JAKK9Cg0JDQptCY0Isg0KfQldCU0J7QnNCY0KAKK9Cg0JDQptCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0KbQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQptCY0Isg0JzQmNCb0JDQnQor0KDQkNCm0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCm0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQptCY0Isg0JzQmNCb0JjQptCQCivQoNCQ0KbQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCQ0KbQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0KbQmNCLINCd0JXQlNCV0InQmtCeCivQoNCQ0KbQmNCLINCg0JDQlNCV0J3QmtCeCivQoNCQ0KbQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQptCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCm0JjQiyDQktCV0InQmtCeCivQoNCQ0KbQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCQ0KbQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCQ0KbQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQptCa0J7QkiDQlNCQ0KDQmNCd0JrQkAor0KDQkNCm0JrQntCSINCU0KDQkNCT0J7QodCb0JDQkgor0KDQkNCm0JrQntCSINCa0JDQotCY0KbQkAor0KDQkNCm0JrQntCSINCb0JDQl9CQ0KAKK9Cg0JDQptCa0J7QkiDQnNCY0JvQmNCm0JAKK9Cg0JDQptCa0J7QkiDQnNCY0JvQmNCS0J7QiAor0KDQkNCm0JrQntCSINCc0JjQm9Ce0KgKK9Cg0JDQptCa0J7QkiDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0KbQmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0KDQkNCm0JrQntCSINCd0JDQotCQ0KjQkAor0KDQkNCm0JrQntCSINCe0JvQk9CQCivQoNCQ0KbQmtCe0JIg0KDQkNCU0J7QiNCa0JAKK9Cg0JDQptCa0J7QkiDQoNCQ0JTQntCc0JjQoAor0KDQkNCm0JrQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9Cg0JDQptCa0J7QkiDQodCQ0JLQkAor0KDQkNCm0JrQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQptCa0J7QkiDQodCg0ILQkNCdCivQoNCQ0KbQmtCe0JIg0KHQoNCC0JDQnQor0KDQkNCm0JrQntCSINCh0KDQgtCQ0J0KK9Cg0JDQptCa0J7QkiDQl9Cb0JDQotCY0KbQkAor0KDQkNCm0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0KbQmtCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cg0JDQptCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KDQkNCm0JrQntCS0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0KbQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQptCa0J7QktCY0Isg0JzQmNCb0J7QqAor0KDQkNCm0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQkNCm0JvQldCgINCC0JXQoNCCCivQoNCQ0KbQm9CV0KAg0JzQkNCg0JPQmNCiCivQoNCQ0KbQniDQnNCY0IvQngor0KDQkNCm0J4g0KDQkNCi0JrQngor0KDQkNCUINCf0KDQldCU0KDQkNCTCivQoNCQ0JTQkNCo0JjQnSDQldCb0JLQmNCg0JAKK9Cg0JDQlNCQ0KjQmNCdINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCQ0KjQmNCdINCX0JLQldCX0JTQkNCdCivQoNCQ0JTQkNCaINCC0J7QoNCC0JUKK9Cg0JDQlNCQ0Jog0ILQo9Cg0JjQptCQCivQoNCQ0JTQkNCaINCU0KPQqNCQ0J0KK9Cg0JDQlNCQ0Jog0JTQo9Co0JDQnQor0KDQkNCU0JDQmiDQk9CQ0JLQoNCQCivQoNCQ0JTQkNCaINCI0JXQm9CY0KHQkNCS0JXQotCQCivQoNCQ0JTQkNCaINCI0J7QktCQ0J3QmtCQCivQoNCQ0JTQkNCaINCI0J7QktCQ0J0KK9Cg0JDQlNCQ0Jog0JrQntCS0JjQndCa0JAKK9Cg0JDQlNCQ0Jog0JvQkNCX0JDQoAor0KDQkNCU0JDQmiDQm9CQ0JfQkNCgCivQoNCQ0JTQkNCaINCJ0KPQkdCY0KbQkAor0KDQkNCU0JDQmiDQidCj0JHQmNCm0JAKK9Cg0JDQlNCQ0Jog0JvQo9Ca0JAKK9Cg0JDQlNCQ0Jog0JzQmNCb0JDQlNCY0J3QmtCQCivQoNCQ0JTQkNCaINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQlNCQ0Jog0J7Qm9CT0JAKK9Cg0JDQlNCQ0Jog0KDQkNCU0JzQmNCb0JAKK9Cg0JDQlNCQ0Jog0KHQm9CQ0JLQmtCeCivQoNCQ0JTQkNCaINCX0J7QoNCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0JbQmNCS0JDQnQor0KDQkNCU0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JTQkNCa0J7QktCY0Isg0ILQo9Cg0JDQggor0KDQkNCU0JDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JTQkNCa0J7QktCY0Isg0JDQndCQINCU0KAKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQlNCQ0JzQiNCQ0J0KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQlNCQ0KDQmtCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQoNCQ0JTQkNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KDQkNCU0JDQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0JjQm9CY0IjQkAor0KDQkNCU0JDQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KDQkNCU0JDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQkNCa0J7QktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0JDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQm9CQ0JfQngor0KDQkNCU0JDQmtCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0KDQkNCU0JDQmtCe0JLQmNCLINCc0JDQndCU0JAKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQnNCQ0J3QlQor0KDQkNCU0JDQmtCe0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQoNCQ0JTQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0JDQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0KDQkNCU0JDQmtCe0JLQmNCLINCc0JjQm9CVCivQoNCQ0JTQkNCa0J7QktCY0Isg0JzQmNCb0JUKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQnNCY0JvQntCI0JrQkAor0KDQkNCU0JDQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCQ0JTQkNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQkNCU0JDQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQkNCa0J7QktCY0Isg0KDQkNCU0JUKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQoNCQ0JTQlQor0KDQkNCU0JDQmtCe0JLQmNCLINCg0JDQiNCa0J4KK9Cg0JDQlNCQ0JrQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Cg0JDQlNCQ0JrQntCS0JjQiyDQodCQ0JLQkAor0KDQkNCU0JDQmtCe0JLQmNCLINCh0JzQmNCJ0JrQkAor0KDQkNCU0JDQmtCe0JLQmNCLINCi0JXQntCU0J7QoNCQCivQoNCQ0JTQkNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCU0JDQmtCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0KDQkNCU0JDQnSDQktCV0JvQmNCc0JjQoAor0KDQkNCU0JDQndCe0JIg0JHQmNCJ0JDQndCQCivQoNCQ0JTQkNCd0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQoNCQ0JTQkNCd0J7QkiDQlNCj0KjQkNCdCivQoNCQ0JTQkNCd0J7QkiDQk9Ce0KHQn9CQ0JLQkAor0KDQkNCU0JDQndCe0JIg0InQo9CR0J7QnNCY0KAg0JDQlNCS0J7QmtCQ0KIKK9Cg0JDQlNCQ0J3QntCSINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JTQkNCd0J7QkiDQnNCY0KDQntCh0JvQkNCS0JAKK9Cg0JDQlNCQ0J3QntCSINCd0JjQmtCe0JvQkAor0KDQkNCU0JDQndCe0JIg0J7Qm9CY0JLQldCg0JAKK9Cg0JDQlNCQ0J3QntCSINCg0JDQlNCY0J3QmtCQCivQoNCQ0JTQkNCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KDQkNCU0JDQndCe0JIg0KDQkNCU0J7QodCb0JDQkgor0KDQkNCU0JDQndCe0JIg0JLQldCg0JjQptCQCivQoNCQ0JTQkNCd0J7QktCY0Isg0JbQldCJ0JrQngor0KDQkNCU0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JTQkNCd0J7QktCY0Isg0ILQo9Ca0JAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCU0JDQndCe0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQoNCQ0JTQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KDQkNCU0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQoNCQ0JTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KDQkNCU0JDQndCe0JLQmNCLINCT0J7QiNCa0J4KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQoNCQ0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQmtCQ0KLQkAor0KDQkNCU0JDQndCe0JLQmNCLINCa0J7QktCY0InQmtCQCivQoNCQ0JTQkNCd0J7QktCY0Isg0InQo9CR0J4KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCd0JrQngor0KDQkNCU0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0JDQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQoNCQ0JTQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KDQkNCU0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQoNCQ0JTQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQndCV0JLQldCd0JrQkAor0KDQkNCU0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCU0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCU0JDQndCe0JLQmNCLINCe0JHQoNCQ0JQKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQkNCd0J7QktCY0Isg0J/QldCi0JDQoAor0KDQkNCU0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQoNCQ0JTQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J3QmtCQCivQoNCQ0JTQkNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cg0JDQlNCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQoNCQ0JTQkNCd0J7QktCY0Isg0KHQkNCo0JAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQodCQ0JLQkAor0KDQkNCU0JDQndCe0JLQmNCLINCh0J7QpNCY0IjQkAor0KDQkNCU0JDQndCe0JLQmNCLINCh0J7QpNCY0IjQkAor0KDQkNCU0JDQndCe0JLQmNCLINCh0KDQldCi0JXQnQor0KDQkNCU0JDQndCe0JLQmNCLINCi0KDQmNCo0JAKK9Cg0JDQlNCQ0J3QntCS0JjQiyDQktCY0KLQntCc0JjQoAor0KDQkNCU0JDQoiDQnNCQ0KDQmtCeCivQoNCQ0JTQkNCi0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JTQldCaINCQ0J3QlNCg0JDQqAor0KDQkNCU0JXQmiDQnNCQ0KDQmNCI0JAKK9Cg0JDQlNCV0JrQkCDQqNCi0JXQpNCa0JAKK9Cg0JDQlNCV0JrQkCDQlNCj0KjQmtCeCivQoNCQ0JTQldCa0JAg0IjQntCS0JDQnQor0KDQkNCU0JXQmtCQINCc0JjQm9CVCivQoNCQ0JTQldCa0JAg0JzQmNCb0JrQkAor0KDQkNCU0JXQmtCQINCd0JjQmtCe0JvQkAor0KDQkNCU0JXQmtCQINCg0JDQlNCe0JLQkNCdCivQoNCQ0JTQldCa0JjQnSDQidCj0JHQmNCm0JAKK9Cg0JDQlNCV0JvQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCV0J3Qp9CY0Isg0IjQntCh0JjQnwor0KDQkNCU0JXQndCa0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQkdCb0JDQltCQCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0KDQkNCU0JXQndCa0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KDQkNCU0JXQndCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KDQkNCU0JXQndCa0J7QktCY0Isg0J3QkNCU0JAKK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9Cg0JDQlNCV0J3QmtCe0JLQmNCLINCg0JDQotCe0JzQmNCgCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0JTQldCd0JrQntCS0JjQiyDQktCY0KLQntCc0JjQoAor0KDQkNCU0JXQndCa0J7QktCY0Isg0JLQiNCV0KDQkAor0KDQkNCU0JXQndCe0JLQmNCLINCe0JHQoNCV0J0KK9Cg0JDQlNCV0KLQkCDQodCb0JDQktCa0J4KK9Cg0JDQlNCV0KLQkCDQodCS0JXQotCe0JfQkNCgCivQoNCQ0JTQldCi0JjQiyDQkdCe0KjQmtCeCivQoNCQ0JTQldCi0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCV0KLQmNCLINCT0J7QoNCQ0J0KK9Cg0JDQlNCV0KLQmNCLINCg0JDQlNCe0JzQmNCgCivQoNCQ0JTQldCi0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQoNCQ0JTQldCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JTQldCS0JjQiyDQk9Ce0KDQkNCdCivQoNCQ0JTQldCS0JjQiyDQmNCS0JDQnQor0KDQkNCU0JXQktCY0Isg0JzQmNCb0JXQktCQCivQoNCQ0JTQldCS0JjQiyDQnNCY0JvQntCoCivQoNCQ0JTQldCS0JjQiyDQktCe0IjQmNCc0JjQoAor0KDQkNCU0JjQp9CV0JIg0IjQldCb0JjQptCQCivQoNCQ0JTQmNCn0JXQkiDQnNCQ0KDQmNCI0JAg0JTQoAor0KDQkNCU0JjQp9CV0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQoNCQ0JTQmNCn0JXQktCY0Isg0KHQkNCS0JAKK9Cg0JDQlNCY0KfQldCS0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0JTQmNCn0JjQiyDQodCc0JjQidCQ0J3QkAor0KDQkNCU0JjQqNCY0Isg0JbQmNCS0JrQngor0KDQkNCU0JjQqNCY0Isg0ILQntCg0ILQlQor0KDQkNCU0JjQqNCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cg0JDQlNCY0KjQmNCLINCR0JjQidCQ0J3QkAor0KDQkNCU0JjQqNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQkNCU0JjQqNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQkNCU0JjQqNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0JTQmNCo0JjQiyDQkdCg0JDQndCa0JAKK9Cg0JDQlNCY0KjQmNCLINCR0KDQkNCd0JrQngor0KDQkNCU0JjQqNCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cg0JDQlNCY0KjQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cg0JDQlNCY0KjQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCY0KjQmNCLINCU0KPQqNCY0KbQkAor0KDQkNCU0JjQqNCY0Isg0JjQm9CY0IjQkAor0KDQkNCU0JjQqNCY0Isg0IjQldCk0KLQkAor0KDQkNCU0JjQqNCY0Isg0IjQldCb0JXQndCQCivQoNCQ0JTQmNCo0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQmNCo0JjQiyDQiNCe0JLQngor0KDQkNCU0JjQqNCY0Isg0JrQkNCi0JjQptCQCivQoNCQ0JTQmNCo0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JTQmNCo0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JTQmNCo0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JTQmNCo0JjQiyDQidCY0InQkNCd0JAKK9Cg0JDQlNCY0KjQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCU0JjQqNCY0Isg0JzQkNCg0JrQngor0KDQkNCU0JjQqNCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0JjQqNCY0Isg0JzQmNCb0JXQndCQCivQoNCQ0JTQmNCo0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCU0JjQqNCY0Isg0JzQmNCb0JjQptCQCivQoNCQ0JTQmNCo0JjQiyDQnNCY0JvQmNCI0JDQndCQCivQoNCQ0JTQmNCo0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KDQkNCU0JjQqNCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQoNCQ0JTQmNCo0JjQiyDQnNCb0JDQlNCV0J0KK9Cg0JDQlNCY0KjQmNCLINCd0JXQndCQCivQoNCQ0JTQmNCo0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQlNCY0KjQmNCLINCe0JHQoNCQ0JTQmNCdCivQoNCQ0JTQmNCo0JjQiyDQntCb0JjQktCV0KDQkAor0KDQkNCU0JjQqNCY0Isg0J/QldCg0JjQptCQCivQoNCQ0JTQmNCo0JjQiyDQn9CV0KDQngor0KDQkNCU0JjQqNCY0Isg0J/QldCg0KHQkAor0KDQkNCU0JjQqNCY0Isg0J/QldCi0JDQoAor0KDQkNCU0JjQqNCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQlNCY0KjQmNCLINCg0JDQlNCc0JjQm9CQCivQoNCQ0JTQmNCo0JjQiyDQoNCQ0JTQntCI0JrQkAor0KDQkNCU0JjQqNCY0Isg0KHQkNCS0JXQotCQCivQoNCQ0JTQmNCo0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JTQmNCo0JjQiyDQodCi0JDQndCe0IjQlQor0KDQkNCU0JjQqNCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQmNCo0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCY0KjQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JDQlNCY0KjQmNCLINCi0J7QlNCe0KAKK9Cg0JDQlNCY0KjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCY0KjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCY0KjQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQlNCY0Isg0KfQldCU0JAKK9Cg0JDQlNCY0Isg0JbQldCJ0JrQngor0KDQkNCU0JjQiyDQltCY0JLQkNCdCivQoNCQ0JTQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCY0Isg0ILQntCg0ILQlQor0KDQkNCU0JjQiyDQkNCd0ILQkAor0KDQkNCU0JjQiyDQkNCd0ILQldCb0JrQngor0KDQkNCU0JjQiyDQkNCd0JTQoNCY0IjQkCDQlNCgCivQoNCQ0JTQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9Cg0JDQlNCY0Isg0JDQndCa0JjQptCQCivQoNCQ0JTQmNCLINCQ0J3QotCVCivQoNCQ0JTQmNCLINCR0J7QqNCa0J4KK9Cg0JDQlNCY0Isg0JHQoNCQ0J3QmtCQCivQoNCQ0JTQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0KDQkNCU0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQoNCQ0JTQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCY0Isg0JTQo9Co0JDQnQor0KDQkNCU0JjQiyDQpNCg0JDQitCQCivQoNCQ0JTQmNCLINCk0KDQkNCK0J4KK9Cg0JDQlNCY0Isg0JPQntCI0JrQngor0KDQkNCU0JjQiyDQpdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQlNCY0Isg0JjQm9CY0IjQkAor0KDQkNCU0JjQiyDQmNCb0JjQiNCQCivQoNCQ0JTQmNCLINCY0JLQkNCd0JrQkAor0KDQkNCU0JjQiyDQiNCe0KHQmNCfCivQoNCQ0JTQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCY0Isg0JvQkNCX0JDQoAor0KDQkNCU0JjQiyDQidCj0JHQmNCm0JAKK9Cg0JDQlNCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JTQmNCLINCc0JjQiNCQCivQoNCQ0JTQmNCLINCc0JjQm9CQ0J3QmtCeCivQoNCQ0JTQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0JjQiyDQnNCY0JvQlQor0KDQkNCU0JjQiyDQnNCY0JvQmNCS0J7QiAor0KDQkNCU0JjQiyDQnNCY0JvQmNCS0J7QiAor0KDQkNCU0JjQiyDQnNCY0JvQmtCQCivQoNCQ0JTQmNCLINCc0JjQm9Cj0KLQmNCdINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQkNCU0JjQiyDQnNCY0KDQmtCeCivQoNCQ0JTQmNCLINCc0JvQkNCU0JXQnQor0KDQkNCU0JjQiyDQndCV0JTQldCJ0JrQngor0KDQkNCU0JjQiyDQndCV0J3QkNCUCivQoNCQ0JTQmNCLINCf0JDQktCb0JUKK9Cg0JDQlNCY0Isg0J/QldCi0JDQoAor0KDQkNCU0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQmNCLINCf0JXQotCQ0KAKK9Cg0JDQlNCY0Isg0J/QldCi0JDQoAor0KDQkNCU0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQmNCLLdCf0J7Qn9Ce0JLQmNCLINCT0J7QoNCU0JDQndCQCivQoNCQ0JTQmNCLINCf0KDQldCU0KDQkNCTCivQoNCQ0JTQmNCLINCg0JDQlNCQCivQoNCQ0JTQmNCLINCg0JDQlNCVCivQoNCQ0JTQmNCLINCg0J7QkdCV0KDQogor0KDQkNCU0JjQiyDQodCQ0JLQkAor0KDQkNCU0JjQiyDQodCb0JDQktCY0KjQkAor0KDQkNCU0JjQiyDQodCb0JDQktCa0J4KK9Cg0JDQlNCY0Isg0KHQntCk0JjQiNCQCivQoNCQ0JTQmNCLINCh0KLQkNCd0JrQngor0KDQkNCU0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQmNCLINCh0KLQntCI0JDQnQor0KDQkNCU0JjQiyDQotCY0KXQntCc0JjQoAor0KDQkNCU0JjQiyDQotCg0JjQktCQCivQoNCQ0JTQmNCLINCS0JXQm9CY0J3QmtCQCivQoNCQ0JTQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCY0Isg0JfQlNCg0JDQktCa0J4KK9Cg0JDQlNCY0Isg0JfQntCg0JDQnQor0KDQkNCU0JjQiyDQl9Ce0KDQkAor0KDQkNCU0JjQiyDQl9Ce0KDQmNCm0JAKK9Cg0JDQlNCY0JHQoNCQ0KLQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQlNCY0JHQoNCQ0KLQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KDQkNCU0JjQiNCV0InQkNCmINCI0JXQm9CV0J3QkAor0KDQkNCU0JjQiNCV0InQkNCmINCc0J7QnNCn0JjQm9CeCivQoNCQ0JTQmNCdINCW0JjQktCQ0J0KK9Cg0JDQlNCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCY0J0g0JDQndCi0J7QndCY0IjQkAor0KDQkNCU0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQlNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0JTQmNCdINCR0KDQkNCd0JrQngor0KDQkNCU0JjQnSDQlNCg0JDQk9Ce0IjQm9CQCivQoNCQ0JTQmNCdINCl0KDQmNCh0KLQmNCd0JAKK9Cg0JDQlNCY0J0g0JjQktCQ0J3QmtCQCivQoNCQ0JTQmNCdINCI0J7QktCQ0J3QmtCQCivQoNCQ0JTQmNCdINCb0JDQl9CQ0KAKK9Cg0JDQlNCY0J0g0InQo9CR0J7QnNCY0KAg0JTQoCDQm9CV0JrQkNCgCivQoNCQ0JTQmNCdINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JTQmNCdINCc0JDQmtCh0JjQnNCY0JvQmNCI0JDQnQor0KDQkNCU0JjQnSDQnNCQ0KDQkAor0KDQkNCU0JjQnSDQnNCY0JvQkNCU0JjQndCa0JAKK9Cg0JDQlNCY0J0g0JzQmNCb0JDQnQor0KDQkNCU0JjQnSDQnNCY0JvQkNCdCivQoNCQ0JTQmNCdINCc0JjQm9CQ0J0KK9Cg0JDQlNCY0J0g0JzQmNCb0JDQnQor0KDQkNCU0JjQnSDQnNCY0JvQkNCdCivQoNCQ0JTQmNCdINCc0JjQm9CV0J3QkAor0KDQkNCU0JjQnSDQnNCY0JvQmtCQCivQoNCQ0JTQmNCdINCc0JjQoNCQCivQoNCQ0JTQmNCdINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQlNCY0J0g0JzQm9CQ0JTQldCdCivQoNCQ0JTQmNCdINCd0JDQlNCQCivQoNCQ0JTQmNCdINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQlNCY0J0g0J/QldCi0JDQoCDQlNCgCivQoNCQ0JTQmNCdINCg0JDQlNCQCivQoNCQ0JTQmNCdINCg0JDQlNCe0KHQm9CQ0JIKK9Cg0JDQlNCY0J0g0KHQm9CQ0JLQmNCd0JrQkAor0KDQkNCU0JjQnSDQodCb0JDQktCa0J4KK9Cg0JDQlNCY0J0g0KHQotCV0JLQkNCdCivQoNCQ0JTQmNCdINCh0KLQldCS0JDQnQor0KDQkNCU0JjQnSDQodCS0JXQotCY0KHQm9CQ0JIKK9Cg0JDQlNCY0J0g0KLQntCc0JjQodCb0JDQkgor0KDQkNCU0JjQnSDQktCV0KHQldCb0JjQnQor0KDQkNCU0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQmNCdINCX0JvQkNCi0J7QiNCVCivQoNCQ0JTQmNCdINCX0J7QoNCQ0J3QmtCQCivQoNCQ0JTQmNCdINCX0J7QoNCQCivQoNCQ0JTQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0KDQkNCU0JjQndCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQoNCQ0JTQmNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQoNCQ0JTQmNCd0J7QktCY0Isg0JTQo9Co0JrQngor0KDQkNCU0JjQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Cg0JDQlNCY0J3QntCS0JjQiyDQm9CQ0JfQngor0KDQkNCU0JjQndCe0JLQmNCLINCc0JDQndCe0IjQm9CeCivQoNCQ0JTQmNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JjQptCQCivQoNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQkNCU0JjQndCe0JLQmNCLINCc0JjQoNCQCivQoNCQ0JTQmNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQoNCQ0JTQmNCd0J7QktCY0Isg0JzQntCc0KfQmNCb0J4g0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Cg0JDQlNCY0J3QntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KDQkNCU0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCU0JjQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cg0JDQlNCY0J3QntCS0JjQiyDQodCY0JvQktCQ0J3QkAor0KDQkNCU0JjQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0JjQndCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQoNCQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Cg0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cg0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQoNCQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0JjQktCQ0J0KK9Cg0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQntCh0JDQkgor0KDQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCh0JvQkNCS0JjQptCQCivQoNCQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cg0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQl9Ce0KDQmNCm0JAg0JTQoAor0KDQkNCU0JjQktCe0IjQqNCQINCc0JjQm9Ce0KgKK9Cg0JDQlNCY0JLQntCI0KjQkCDQodCc0JjQidCQCivQoNCQ0JTQmNCS0J7QiNCQ0KYg0JTQntCR0KDQmNCb0JAKK9Cg0JDQlNCY0JLQntCI0JDQpiDQlNCg0JDQk9CQCivQoNCQ0JTQmNCS0J7QiNCQ0KYg0JTQoNCQ0JPQntCJ0KPQkQor0KDQkNCU0JjQktCe0IjQkNCmINCI0J7QktCQ0J0KK9Cg0JDQlNCY0JLQntCI0JDQpiDQndCQ0KLQkNCb0JjQiNCQCivQoNCQ0JTQmNCS0J7QiNCV0JIg0KDQkNCU0JjQndCa0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JHQntCT0J7QidCj0JEKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCR0KDQkNCd0JrQngor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQkdCg0JDQotCY0JzQmNCgCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCU0KDQkNCT0JDQnSDQnNCgCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0J7QldCmCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCY0JTQkAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQiNCQ0J3QmtCeCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCI0JXQm9CQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0InQo9CR0JjQptCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCJ0KPQkdCe0JTQoNCQ0JMKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JvQo9Ca0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JvQo9Ca0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQnNCY0JvQkAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQnNCY0JvQlQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCc0JvQkNCU0JXQnQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQndCV0ILQngor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQndCV0JzQkNCK0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCf0JDQktCb0JUKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0KDQkNCU0JjQqNCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0KDQkNCU0J7QqAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQoNCQ0KLQmtCeCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCh0JjQndCY0KjQkAor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0JjQktCe0IjQldCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0KLQo9CT0J7QnNCY0KAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JLQldCg0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JLQmNCU0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JLQmNCU0JAKK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JLQo9Ca0JjQptCQCivQoNCQ0JTQmNCS0J7QiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQlNCY0JLQntCI0JXQktCY0Isg0JfQntCg0JDQnQor0KDQkNCU0JjQktCe0IjQmtCe0JIg0ILQntCg0ILQlQor0KDQkNCU0JjQktCe0IjQmtCe0JIg0IjQldCb0JjQptCQCivQoNCQ0JTQmNCS0J7QiNCa0J7QkiDQnNCY0KDQiNCQ0J3QkAor0KDQkNCU0JjQktCe0IjQmtCe0JIg0KDQkNCI0JrQngor0KDQkNCU0JjQktCe0IjQmtCe0JIg0KHQkNCS0JAKK9Cg0JDQlNCY0JLQntCI0JrQntCSINCh0KLQldCS0JDQnQor0KDQkNCU0JvQntCS0JDQp9Ca0Jgg0JTQntCR0KDQmNCd0JrQkAor0KDQkNCU0JvQntCS0JDQp9Ca0Jgg0KHQmNCd0JjQqNCQCivQoNCQ0JTQm9Ce0JLQmNCLINCc0JjQm9Ca0JAKK9Cg0JDQlNCc0JDQnSDQqNCY0JzQo9CdCivQoNCQ0JTQnNCQ0J0g0KjQn9CY0KDQngor0KDQkNCU0JzQkNCdINCY0JLQkNCdCivQoNCQ0JTQnNCQ0J0g0JvQldCf0J7QodCQ0JLQkAor0KDQkNCU0JzQkNCdINCc0JjQm9CQ0J0KK9Cg0JDQlNCc0JDQnSDQnNCY0JvQlQor0KDQkNCU0JzQkNCdINCc0JjQm9CY0KbQkAor0KDQkNCU0JzQkNCdINCc0JjQm9Ce0JLQkNCdCivQoNCQ0JTQnNCQ0J0g0JzQmNCg0J7QodCb0JDQkgor0KDQkNCU0JzQkNCd0JjQiyDQldCS0JjQptCQCivQoNCQ0JTQnNCQ0J3QntCS0JDQpiDQnNCY0JvQntCS0JDQnQor0KDQkNCU0JzQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cg0JDQlNCc0JDQndCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQoNCQ0JTQnNCQ0J3QntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KDQkNCU0JzQmNCb0J4g0ILQo9Cg0J4KK9Cg0JDQlNCc0JjQm9CeINCc0JDQoNCY0IjQkAor0KDQkNCU0JzQmNCb0J4g0JzQmNCg0JrQngor0KDQkNCU0JzQmNCb0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cg0JDQlNCc0JjQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCc0JjQm9Ce0JLQmNCLINCc0JjQm9Ce0KgKK9Cg0JDQlNCc0JjQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQlNCc0JjQm9Ce0JLQmNCLINCd0JXQlNCV0InQmtCeCivQoNCQ0JTQnNCY0JvQntCS0JjQiyDQoNCQ0JTQlSDQn9Cg0J7QpNCV0KHQntCgCivQoNCQ0JTQnNCY0JvQntCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQoNCQ0JTQnNCY0JvQntCS0JjQiyDQodCi0JXQktCeCivQoNCQ0JTQndCY0Isg0JTQntCR0KDQmNCd0JrQkAor0KDQkNCU0J3QntCSINCQ0JvQldCa0KHQkAor0KDQkNCU0J3QntCSINCb0JXQndCa0JAKK9Cg0JDQlNCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KDQkNCU0J3QntCSINCg0JDQiNCa0J4KK9Cg0JDQlNCd0J7QkiDQl9Ce0KDQmtCQCivQoNCQ0JTQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0J3QntCS0JjQiyDQntCb0JPQmNCm0JAKK9Cg0JDQlNCd0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cg0JDQlNCd0J7QktCY0Isg0KPQoNCe0KgKK9Cg0JDQlNCd0J7QktCY0Isg0KPQoNCe0KgKK9Cg0JDQlNCe0KfQkNCIINCU0KPQqNCQ0J3QmtCQCivQoNCQ0JTQntCn0JDQiCDQmNCb0JjQiNCQCivQoNCQ0JTQntCn0JDQiCDQnNCQ0KDQkAor0KDQkNCU0J7Qp9CQ0Igg0JzQmNCb0JrQkAor0KDQkNCU0J7Qp9CQ0Igg0J3QldCU0JXQidCa0JAKK9Cg0JDQlNCe0KfQkNCIINCh0JDQktCa0JAKK9Cg0JDQlNCe0Kgg0JHQntCg0JjQodCb0JDQkgor0KDQkNCU0J7QqCDQlNCQ0J3QmNCm0JAKK9Cg0JDQlNCe0Kgg0JTQoNCV0J3QmtCQCivQoNCQ0JTQntCoINCc0JDQoNCi0JAKK9Cg0JDQlNCe0Kgg0JzQmNCb0JDQnQor0KDQkNCU0J7QqCDQoNCj0JbQkAor0KDQkNCU0J7QqCDQktCe0IjQmNCh0JvQkNCSCivQoNCQ0JTQntCoINCX0J7QoNCQCivQoNCQ0JTQntCo0JXQktCY0Ist0KjQotCY0JzQkNCmINCJ0KPQkdCY0KbQkAor0KDQkNCU0J7QqNCV0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCe0KjQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KDQkNCU0J7QqNCV0JLQmNCLINCQ0J3QmNCm0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQkNCd0JjQptCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQkdCe0JbQngor0KDQkNCU0J7QqNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KDQkNCU0J7QqNCV0JLQmNCLINCR0KDQkNCd0JrQngor0KDQkNCU0J7QqNCV0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JTQo9Co0JjQptCQCivQoNCQ0JTQntCo0JXQktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0KDQkNCU0J7QqNCV0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCe0KjQldCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQntCo0JXQktCY0Isg0InQmNCJ0JDQndCQCivQoNCQ0JTQntCo0JXQktCY0Isg0InQo9CR0JjQptCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JzQmNCb0JXQndCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JzQmNCb0JXQndCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0JDQlNCe0KjQldCS0JjQiyDQnNCY0JvQntCoCivQoNCQ0JTQntCo0JXQktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cg0JDQlNCe0KjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KDQkNCU0J7QqNCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQoNCQ0JTQntCo0JXQktCY0Isg0JzQmNCi0JDQoAor0KDQkNCU0J7QqNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCU0J7QqNCV0JLQmNCLINCe0JvQmNCS0JXQoNCQCivQoNCQ0JTQntCo0JXQktCY0Isg0KDQkNCU0JUKK9Cg0JDQlNCe0KjQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KDQkNCU0J7QqNCV0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQoNCQ0JTQntCo0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cg0JDQlNCe0KjQldCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCU0J7QqNCV0JLQmNCLINCg0J7QlNCe0InQo9CRCivQoNCQ0JTQntCo0JXQktCY0Isg0KHQotCQ0J3QmNCm0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQotCV0KDQldCX0JAKK9Cg0JDQlNCe0KjQldCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQntCo0JXQktCY0Isg0JfQlNCg0JDQktCa0J4KK9Cg0JDQlNCe0KYg0KTQoNCQ0IrQkAor0KDQkNCU0J7Qpi3QodCY0JzQmNCLINCh0J7QpNCY0IjQkAor0KDQkNCU0J7QmNCn0JjQiyDQnNCY0JvQntCoCivQoNCQ0JTQntCY0KfQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0KDQkNCU0J7QiNCn0JXQktCY0Isg0JzQmNCb0J7QqAor0KDQkNCU0J7QiNCn0JjQiyDQkdCe0JbQkCDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQlNCe0IjQp9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cg0JDQlNCe0IjQp9CY0Isg0JHQntCW0JjQlNCQ0KAKK9Cg0JDQlNCe0IjQp9CY0Isg0JTQkNCd0JjQptCQCivQoNCQ0JTQntCI0KfQmNCLINCU0JDQoNCY0J3QmtCQCivQoNCQ0JTQntCI0KfQmNCLINCU0KDQkNCT0JDQndCQCivQoNCQ0JTQntCI0KfQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cg0JDQlNCe0IjQp9CY0Isg0JTQoNCQ0JPQngor0KDQkNCU0J7QiNCn0JjQiyDQlNCj0KjQmtCeCivQoNCQ0JTQntCI0KfQmNCLINCT0J7QiNCa0J4KK9Cg0JDQlNCe0IjQp9CY0Isg0JjQoNCV0J3QkAor0KDQkNCU0J7QiNCn0JjQiyDQmNCS0JDQnQor0KDQkNCU0J7QiNCn0JjQiyDQmNCS0JDQnQor0KDQkNCU0J7QiNCn0JjQiyDQmNCS0JDQnQor0KDQkNCU0J7QiNCn0JjQiyDQidCY0IjQkNCd0JAKK9Cg0JDQlNCe0IjQp9CY0Isg0InQmNCJ0JDQndCQCivQoNCQ0JTQntCI0KfQmNCLINCc0JjQm9CQ0JTQmNCdCivQoNCQ0JTQntCI0KfQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCe0IjQp9CY0Isg0JzQmNCb0JXQndCa0J4KK9Cg0JDQlNCe0IjQp9CY0Isg0JzQmNCb0JjQptCQCivQoNCQ0JTQntCI0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCQ0JTQntCI0KfQmNCLINCc0JjQm9Cj0KLQmNCdCivQoNCQ0JTQntCI0KfQmNCLINCc0JjQntCU0KDQkNCTCivQoNCQ0JTQntCI0KfQmNCLINCc0JjQotCQ0KAKK9Cg0JDQlNCe0IjQp9CY0Isg0J3QkNCU0JjQptCQCivQoNCQ0JTQntCI0KfQmNCLINCd0JXQndCQ0JQKK9Cg0JDQlNCe0IjQp9CY0Ist0J7QkdCV0KDQmtCd0JXQltCV0JIg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQlNCe0IjQp9CY0Isg0J/QkNCS0JvQlQor0KDQkNCU0J7QiNCn0JjQiyDQodCQ0JLQkAor0KDQkNCU0J7QiNCn0JjQiyDQodCg0JXQotCV0J0KK9Cg0JDQlNCe0IjQp9CY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQntCI0KfQmNCLINCS0JjQotCe0JzQmNCgCivQoNCQ0JTQntCI0KfQmNCLINCS0JvQkNCU0JDQnQor0KDQkNCU0J7QiNCn0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQoNCQ0JTQntCI0KfQmNCdINCC0J7QoNCC0JUKK9Cg0JDQlNCe0IjQp9CY0J0g0JDQndCY0KbQkAor0KDQkNCU0J7QiNCn0JjQnSDQlNCe0JHQoNCY0JvQkAor0KDQkNCU0J7QiNCn0JjQnSDQlNCj0KjQmNCm0JAKK9Cg0JDQlNCe0IjQp9CY0J0g0JXQktCY0KbQkAor0KDQkNCU0J7QiNCn0JjQnSDQiNCj0JvQmtCQCivQoNCQ0JTQntCI0KfQmNCdINCc0JDQoNCQCivQoNCQ0JTQntCI0KfQmNCdINCc0JDQoNCi0JAKK9Cg0JDQlNCe0IjQp9CY0J0g0JzQmNCb0JDQnQor0KDQkNCU0J7QiNCn0JjQnSDQnNCY0JvQmtCQCivQoNCQ0JTQntCI0KfQmNCdINCc0JjQm9Ce0KgKK9Cg0JDQlNCe0IjQp9CY0J0g0JzQmNCb0J7QktCQ0J0KK9Cg0JDQlNCe0IjQp9CY0J0g0JzQmNCg0IjQkNCd0JAKK9Cg0JDQlNCe0IjQp9CY0J0g0KDQkNCU0JzQmNCb0JAKK9Cg0JDQlNCe0IjQp9CY0J0g0KDQkNCU0J7QiNCa0JAKK9Cg0JDQlNCe0IjQp9CY0J0g0KDQkNCU0J7QktCQ0J0KK9Cg0JDQlNCe0IjQp9CY0J0g0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCU0J7QiNCn0JjQnSDQodCg0JXQlNCe0IjQlQor0KDQkNCU0J7QiNCn0JjQnSDQotCe0JTQntCgCivQoNCQ0JTQntCI0KfQmNCdINCS0JXQm9CY0JzQmNCgCivQoNCQ0JTQntCI0KfQmNCdINCS0JXQoNCQCivQoNCQ0JTQntCI0KfQmNCdINCS0JXQoNCQCivQoNCQ0JTQntCI0JAg0JHQntCg0JjQodCb0JDQkgor0KDQkNCU0J7QiNCQINCa0J7QktCY0InQmtCQCivQoNCQ0JTQntCI0JXQkiDQmNCS0JDQnQor0KDQkNCU0J7QiNCV0JIg0KHQm9CQ0JLQmtCeCivQoNCQ0JTQntCI0JXQktCY0Isg0ILQntCa0JAKK9Cg0JDQlNCe0IjQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KDQkNCU0J7QiNCV0JLQmNCLINCR0J7QodCY0InQmtCQCivQoNCQ0JTQntCI0JXQktCY0Isg0JTQldCI0JDQnQor0KDQkNCU0J7QiNCV0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0KDQkNCU0J7QiNCV0JLQmNCLINCI0JXQm9CV0J3QkAor0KDQkNCU0J7QiNCV0JLQmNCLINCI0JXQm9CY0KbQkAor0KDQkNCU0J7QiNCV0JLQmNCLINCa0JDQotCQCivQoNCQ0JTQntCI0JXQktCY0Isg0JrQntCh0KLQkAor0KDQkNCU0J7QiNCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCe0IjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCU0J7QiNCV0JLQmNCLINCc0JjQm9CVCivQoNCQ0JTQntCI0JXQktCY0Isg0JzQmNCb0KPQotCY0J0KK9Cg0JDQlNCe0IjQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQkNCU0J7QiNCV0JLQmNCLINCc0JjQoNCe0KHQkNCd0JTQkAor0KDQkNCU0J7QiNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQoNCQ0JTQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQntCI0JXQktCY0Isg0J/QldCi0KDQkAor0KDQkNCU0J7QiNCV0JLQmNCLINCg0JDQlNCY0KHQkNCSCivQoNCQ0JTQntCI0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQktCa0JAg0JTQoAor0KDQkNCU0J7QiNCV0JLQmNCLINCh0JDQktCQCivQoNCQ0JTQntCI0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQoNCQ0JTQntCI0JXQktCY0Isg0KHQoNCR0J7QidCj0JEKK9Cg0JDQlNCe0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCe0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCe0IjQldCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KDQkNCU0J7QiNCV0JLQmNCLINCS0JXQoNCQCivQoNCQ0JTQntCI0JXQktCY0Isg0JfQntCg0JDQnQor0KDQkNCU0J7QiNCY0KfQmNCLINCC0J7QmtCQCivQoNCQ0JTQntCI0JjQp9CY0Isg0ILQntCg0ILQngor0KDQkNCU0J7QiNCY0KfQmNCLINCU0JDQndCY0JvQngor0KDQkNCU0J7QiNCY0KfQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0J7QiNCY0KfQmNCLINCI0JXQm9CV0J3QkAor0KDQkNCU0J7QiNCY0KfQmNCLINCI0J7QoNCU0JDQnQor0KDQkNCU0J7QiNCY0KfQmNCLINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JTQntCI0JjQp9CY0Isg0JzQmNCb0JjQptCQCivQoNCQ0JTQntCI0JjQp9CY0Isg0JzQmNCb0J7QodCQ0JIKK9Cg0JDQlNCe0IjQmNCn0JjQiyDQntCR0KDQldCdCivQoNCQ0JTQntCI0JjQp9CY0Isg0KDQkNCU0JUKK9Cg0JDQlNCe0IjQmNCn0JjQiyDQoNCQ0JTQmNCo0JAKK9Cg0JDQlNCe0IjQmNCn0JjQiyDQktCb0JDQlNCQ0J0KK9Cg0JDQlNCe0IjQmNCn0JjQiyDQktCe0IjQmNCdCivQoNCQ0JTQntCI0JrQniDQiNCV0JvQldCd0JAKK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCU0J7QiNCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCg0JDQiNCa0J4KK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQoNCQ0JTQntCI0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0JTQntCI0JrQntCS0JjQiyDQotCg0JDQiNCa0J4KK9Cg0JDQlNCe0IjQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCe0JzQkNCdINCI0JXQm9CV0J3QkAor0KDQkNCU0J7QnNCQ0J0g0InQo9CR0JjQptCQCivQoNCQ0JTQntCc0JDQnSDQnNCQ0KDQotCQCivQoNCQ0JTQntCc0JDQnSDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0JTQntCc0JDQnSDQl9Ce0KDQkNCdCivQoNCQ0JTQntCc0JjQoCDQodCi0J7QiNCQ0J0KK9Cg0JDQlNCe0JzQmNCg0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0JDQlNCe0JzQmNCg0J7QktCY0Isg0JLQmNCd0JrQngor0KDQkNCU0J7QnNCY0KDQntCS0JjQiyDQktCj0JrQodCQ0J0KK9Cg0JDQlNCe0JzQmNCg0J7QktCY0Isg0JfQm9CQ0KLQkAor0KDQkNCU0J7QndCn0JjQiyDQiNCj0KHQo9CkCivQoNCQ0JTQntCd0KfQmNCLINCg0JDQnNCY0JcKK9Cg0JDQlNCe0J3QmNCLINCW0JXQidCa0J4KK9Cg0JDQlNCe0J3QmNCLINCW0JjQktCQ0J0KK9Cg0JDQlNCe0J3QmNCLINCW0JjQktCa0J4KK9Cg0JDQlNCe0J3QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JTQntCd0JjQiyDQkNCd0ILQldCb0JrQkAor0KDQkNCU0J7QndCY0Isg0JHQm9CQ0JPQntCI0JUKK9Cg0JDQlNCe0J3QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KDQkNCU0J7QndCY0Isg0JHQoNCQ0J3QmtCeINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0J7QndCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQntCd0JjQiyDQlNCQ0J3QmNCm0JAKK9Cg0JDQlNCe0J3QmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCe0J3QmNCLINCV0JLQk9CV0J3QmNCI0JUKK9Cg0JDQlNCe0J3QmNCLINCk0JXQoNCV0J3Qpgor0KDQkNCU0J7QndCY0Isg0KXQkNCd0JAKK9Cg0JDQlNCe0J3QmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCe0J3QmNCLINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JTQntCd0JjQiyDQnNCQ0JrQodCY0JwKK9Cg0JDQlNCe0J3QmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cg0JDQlNCe0J3QmNCLINCc0JjQm9Ce0JLQkNCdCivQoNCQ0JTQntCd0JjQiyDQnNCb0JDQlNCV0J0KK9Cg0JDQlNCe0J3QmNCLINCd0JDQlNCQCivQoNCQ0JTQntCd0JjQiyDQndCQ0JTQkAor0KDQkNCU0J7QndCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0JDQlNCe0J3QmNCLINCd0JXQndCQ0JQKK9Cg0JDQlNCe0J3QmNCLINCd0JjQmtCe0JvQkAor0KDQkNCU0J7QndCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQntCd0JjQiyDQndCe0JLQmNCm0JAKK9Cg0JDQlNCe0J3QmNCLINCf0JXQotCQ0KAKK9Cg0JDQlNCe0J3QmNCLINCg0JDQlNCQCivQoNCQ0JTQntCd0JjQiyDQoNCQ0JTQlQor0KDQkNCU0J7QndCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQlNCe0J3QmNCLINCg0JDQlNCY0JLQntCICivQoNCQ0JTQntCd0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KDQkNCU0J7QndCY0Isg0KDQkNCI0JrQngor0KDQkNCU0J7QndCY0Isg0KHQntCk0JjQiNCQCivQoNCQ0JTQntCd0JjQiyDQktCb0JDQlNCQCivQoNCQ0JTQntCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQntCK0JAg0JDQndCi0JUKK9Cg0JDQlNCe0IrQkNCd0JjQnSDQnNCQ0KDQotCQCivQoNCQ0JTQntCK0JDQndCY0J0g0J/QldCi0JDQoAor0KDQkNCU0J7QitCQ0J3QmNCdINCS0JvQkNCh0KLQmNCc0JjQoAor0KDQkNCU0J7QitCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0JTQntCK0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQlNCe0IrQmNCLINCY0JLQkNCdCivQoNCQ0JTQntCK0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQoNCQ0JTQntCK0JjQiyDQm9Cj0JrQkAor0KDQkNCU0J7QitCY0Isg0JzQkNCd0JTQkAor0KDQkNCU0J7QitCY0Isg0JzQmNCb0JDQlNCY0J0KK9Cg0JDQlNCe0IrQmNCLINCc0JjQm9Ce0JLQkNCdCivQoNCQ0JTQntCK0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQkNCU0J7QitCY0Isg0JzQmNCi0JDQoAor0KDQkNCU0J7QitCY0Isg0J7Qm9CT0JAKK9Cg0JDQlNCe0IrQmNCLINCh0JXQndCa0JAKK9Cg0JDQlNCe0IrQmNCLINCh0JvQkNCS0J7QnNCY0KAKK9Cg0JDQlNCe0IrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQlNCe0IrQmNCLINCh0J3QldCW0JDQndCQCivQoNCQ0JTQntCK0JjQiyDQodCi0JDQndCQCivQoNCQ0JTQntCK0JjQiyDQktCV0KDQmNCm0JAKK9Cg0JDQlNCe0KHQkNCSINCV0KDQltCV0JHQldCiCivQoNCQ0JTQntCh0JDQkiDQmtCg0JjQodCi0JjQndCQCivQoNCQ0JTQntCh0JDQkiDQoNCQ0JTQmNCS0J7QiAor0KDQkNCU0J7QodCQ0JLQp9CV0JIg0JTQo9Co0JDQnQor0KDQkNCU0J7QodCQ0JLQp9CV0JIg0JzQmNCb0JAKK9Cg0JDQlNCe0KHQkNCS0JDQpiDQlNCY0JzQmNCi0KDQmNCI0JUg0JTQoAor0KDQkNCU0J7QodCQ0JLQkNCmINCU0KPQqNCY0KbQkAor0KDQkNCU0J7QodCQ0JLQkNCmINCd0JXQlNCV0InQmtCeCivQoNCQ0JTQntCh0JDQktCQ0KYg0JLQldCb0JjQl9CQ0KAKK9Cg0JDQlNCe0KHQkNCS0JDQpiDQktCb0JDQlNCeCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQltCY0JLQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQkdCe0JbQmNCU0JDQoAor0KDQkNCU0J7QodCQ0JLQidCV0JIg0JTQoNCQ0JPQntCJ0KPQkQor0KDQkNCU0J7QodCQ0JLQidCV0JIg0JTQoNCQ0JPQo9Ci0JjQnQor0KDQkNCU0J7QodCQ0JLQidCV0JIg0JPQntCI0JrQngor0KDQkNCU0J7QodCQ0JLQidCV0JIg0JjQktCQ0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCSINCI0JXQktCg0JXQnAor0KDQkNCU0J7QodCQ0JLQidCV0JIg0JrQkNCL0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCSINCc0JjQm9Ce0KDQkNCUCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQndCY0JrQntCb0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCSINCf0JDQktCb0JUKK9Cg0JDQlNCe0KHQkNCS0InQldCSINCh0JvQkNCS0JrQkAor0KDQkNCU0J7QodCQ0JLQidCV0JIg0KHQotCV0JLQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQkiDQl9Ce0KDQkAor0KDQkNCU0J7QodCQ0JLQidCV0JIg0JfQntCg0JjQptCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JbQmNCS0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQkNCd0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQkNCd0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCR0J7Qk9CU0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCR0J7Qk9Ce0JLQmNCUCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JHQntCg0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQkdCe0KDQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JTQkNCd0JjQldCbCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JTQmNCQ0J3QkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQlNCj0KjQkNCdINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JjQm9CY0IjQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCI0JDQodCc0JjQndCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0IjQo9Cb0JjQiNCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCJ0JjQidCQ0J3QkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCJ0JjQidCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0InQo9CR0JjQqNCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQidCj0JHQntCc0JjQoAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCc0JDQoNCa0J4KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JXQktCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JrQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0IrQldCT0J7QodCQ0JLQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCf0JDQktCb0JUKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0KDQkNCU0JjQqNCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0KDQkNCU0JjQqNCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQoNCQ0JzQmNCX0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQoNCe0JTQntCJ0KPQkSDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQodCQ0JLQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0JjQndCY0KjQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQntCI0JDQnQor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JLQmNCU0J7QodCQ0JLQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCS0JvQkNCU0JXQotCQCivQoNCQ0JTQntCh0JDQktCJ0JXQktCY0Isg0JfQkNCT0JAKK9Cg0JDQlNCe0KHQkNCS0InQldCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0KDQkNCU0J7QodCQ0JLQidCV0JLQmNCLINCX0J7QoNCY0KbQkAor0KDQkNCU0J7QktCQ0KYg0JjQktCQCivQoNCQ0JTQntCS0JDQpiDQndCY0JrQntCb0JAKK9Cg0JDQlNCe0JLQkNCmINCf0JXQotCQ0KAKK9Cg0JDQlNCe0JLQkNCmINCh0JDQktCQCivQoNCQ0JTQntCS0JDQnSDQkNCd0KLQlQor0KDQkNCU0J7QktCQ0J0g0JLQmNCU0J7QodCQ0JLQkAor0KDQkNCU0J7QktCQ0J3Qp9CV0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0JTQntCS0JDQndCn0JXQkiDQidCj0JHQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0KfQldCSINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCe0JLQkNCd0KfQldCSINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQlNCe0JLQkNCd0JDQpiDQgtCj0KDQkAor0KDQkNCU0J7QktCQ0J3QkNCmINCd0JXQgtCeCivQoNCQ0JTQntCS0JDQndCe0JIg0JbQmNCS0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JTQntCS0JDQndCe0JIg0JDQndCC0JXQm9Ca0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQkNCd0JrQkAor0KDQkNCU0J7QktCQ0J3QntCSINCR0J7QltCY0JTQkNCgCivQoNCQ0JTQntCS0JDQndCe0JIg0JHQntCT0JTQkNCd0JrQkAor0KDQkNCU0J7QktCQ0J3QntCSINCR0KDQkNCd0JrQngor0KDQkNCU0J7QktCQ0J3QntCSINCU0JDQndCY0KbQkAor0KDQkNCU0J7QktCQ0J3QntCSINCU0KPQqNCQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QkiDQlNCj0KjQkNCdCivQoNCQ0JTQntCS0JDQndCe0JIg0JTQo9Co0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCV0JLQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0KDQkNCU0J7QktCQ0J3QntCSINCY0JvQmNCI0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQmtCj0JfQnNCQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QkiDQidCj0JHQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCQ0KDQmNCI0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCV0JvQkNCd0JjQiNCQCivQoNCQ0JTQntCS0JDQndCe0JIg0JzQmNCb0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCc0JjQm9CQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCY0JvQldCd0JrQngor0KDQkNCU0J7QktCQ0J3QntCSINCc0JjQm9CV0J3QmtCeCivQoNCQ0JTQntCS0JDQndCe0JIg0JzQmNCb0JXQndCa0J4KK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCY0JvQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCY0JvQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCY0JvQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQnNCY0JvQmtCQCivQoNCQ0JTQntCS0JDQndCe0JIg0JzQmNCg0IjQkNCd0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQndCQ0JTQkAor0KDQkNCU0J7QktCQ0J3QntCSINCd0JXQktCV0J3QmtCQCivQoNCQ0JTQntCS0JDQndCe0JIg0J/QldCi0JDQoAor0KDQkNCU0J7QktCQ0J3QntCSINCf0JXQotCQ0KAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQn9CV0KLQkNCgCivQoNCQ0JTQntCS0JDQndCe0JIg0KDQkNCU0J7QnNCY0KAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQoNCQ0JTQntCS0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCg0KPQltCY0KbQkAor0KDQkNCU0J7QktCQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQoNCQ0JTQntCS0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QkiDQodCc0JjQidCQ0J3QkAor0KDQkNCU0J7QktCQ0J3QntCSINCh0KLQldCS0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCh0KLQldCS0JDQnQor0KDQkNCU0J7QktCQ0J3QntCSINCh0KLQldCS0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQodCS0JXQotCe0JfQkNCgCivQoNCQ0JTQntCS0JDQndCe0JIg0KLQkNCi0IjQkNCd0JAKK9Cg0JDQlNCe0JLQkNCd0J7QkiDQotCY0J3QmtCQCivQoNCQ0JTQntCS0JDQndCe0JIg0JLQntCI0JjQodCb0JDQkgor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQltCY0JLQkNCU0JjQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQgtCe0KDQgtCY0IjQlQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQkdCe0KDQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQkdCe0KDQmtCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JTQo9Co0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JjQm9Ce0J3QmtCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQiNCe0JrQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCb0JDQl9CeCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAg0JTQoAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCL0J4KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0JjQptCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSINCU0KAg0J/QoNCe0KQKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQnNCb0JDQgtCV0J0KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JzQntCc0JjQoAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0J3QmNCd0J7QodCb0JDQkiDQlNCgCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCg0JDQlNCV0J3QmtCeCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAg0JTQoCDQm9CV0JrQkNCgCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQoNCQ0IjQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCh0JvQkNCU0J7QidCj0JEKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCh0KDQldCi0JXQnQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQodCi0JDQndCe0IjQlQor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCS0JXQm9CY0KHQkNCSCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JLQmNCd0JrQkAor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cg0JDQlNCe0JLQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KDQkNCU0J7QktCQ0J3QntCS0JjQiyDQl9Ce0KDQmtCQCivQoNCQ0JTQntCS0JDQndCe0JLQmNCLINCX0JLQldCX0JTQkNCd0JAKK9Cg0JDQlNCe0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQoNCQ0JTQntCS0JjQiyDQltCQ0KDQmtCeCivQoNCQ0JTQntCS0JjQiyDQltCY0JLQkNCdCivQoNCQ0JTQntCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JTQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCU0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCe0JLQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9Cg0JDQlNCe0JLQmNCLINCR0JvQkNCT0JAKK9Cg0JDQlNCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQoNCQ0JTQntCS0JjQiyDQkdCe0KjQmtCeCivQoNCQ0JTQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0KDQkNCU0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQkNCU0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQntCS0JjQiyDQlNCQ0JzQiNCQ0J0KK9Cg0JDQlNCe0JLQmNCLINCU0JDQoNCa0J4KK9Cg0JDQlNCe0JLQmNCLINCU0JXQiNCQ0J0KK9Cg0JDQlNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KDQkNCU0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Cg0JDQlNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cg0JDQlNCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQoNCQ0JTQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQoNCQ0JTQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQoNCQ0JTQntCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JTQntCS0JjQiyDQk9Ce0IjQmtCeINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0J7QktCY0Isg0JjQoNCc0JAKK9Cg0JDQlNCe0JLQmNCLINCY0JLQkAor0KDQkNCU0J7QktCY0Isg0IjQldCS0KLQngor0KDQkNCU0J7QktCY0Isg0IjQntCS0JDQnQor0KDQkNCU0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0JDQlNCe0JLQmNCLINCc0JDQk9CU0JDQm9CV0J3QkAor0KDQkNCU0J7QktCY0Isg0JzQkNCT0JTQkAor0KDQkNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0J7QktCY0Isg0JzQmNCb0JXQndCQCivQoNCQ0JTQntCS0JjQiyDQnNCY0JvQldCS0JAKK9Cg0JDQlNCe0JLQmNCLINCc0JjQm9CVCivQoNCQ0JTQntCS0JjQiyDQnNCY0JvQntCoCivQoNCQ0JTQntCS0JjQiyDQnNCY0JvQntCI0JUKK9Cg0JDQlNCe0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQoNCQ0JTQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KDQkNCU0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQlNCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQoNCQ0JTQntCS0JjQiyDQnNCY0KDQp9CV0KLQkAor0KDQkNCU0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Cg0JDQlNCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQoNCQ0JTQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0KDQkNCU0J7QktCY0Isg0J3QntCS0JDQmgor0KDQkNCU0J7QktCY0Isg0J7Qm9CT0JAKK9Cg0JDQlNCe0JLQmNCLINCf0JDQktCb0JUKK9Cg0JDQlNCe0JLQmNCLINCf0JXQotCQ0KAKK9Cg0JDQlNCe0JLQmNCLINCf0JXQotCa0J4KK9Cg0JDQlNCe0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQoNCQ0JTQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KDQkNCU0J7QktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Cg0JDQlNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQoNCQ0JTQntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCU0J7QktCY0Isg0KDQkNCI0JrQngor0KDQkNCU0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQoNCQ0JTQntCS0JjQiyDQoNCe0JfQmNCa0JAKK9Cg0JDQlNCe0JLQmNCLINCh0JDQktCeCivQoNCQ0JTQntCS0JjQiyDQodCY0JzQkAor0KDQkNCU0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cg0JDQlNCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQoNCQ0JTQntCS0JjQiyDQodCb0JDQktCa0JAKK9Cg0JDQlNCe0JLQmNCLINCh0JvQkNCS0JrQngor0KDQkNCU0J7QktCY0Isg0KHQoNCV0KLQldCdCivQoNCQ0JTQntCS0JjQiyDQodCi0JDQndCa0J4KK9Cg0JDQlNCe0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCU0J7QktCY0Isg0KHQotCg0JDQpdCY0IrQkAor0KDQkNCU0J7QktCY0Isg0KLQldCg0JXQl9CY0IjQkAor0KDQkNCU0J7QktCY0Ist0KPQktCV0KDQmNCLINCc0JjQm9CQINCU0KAKK9Cg0JDQlNCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQoNCQ0JTQntCS0JjQiyDQktCV0InQkAor0KDQkNCU0J7QktCY0Isg0JLQldCJ0JrQngor0KDQkNCU0J7QktCY0Isg0JLQldCJ0JrQngor0KDQkNCU0J7QktCY0Isg0JLQldCg0JAKK9Cg0JDQlNCe0JLQmNCLINCS0JXQoNCQCivQoNCQ0JTQntCS0JjQiyDQktCY0JTQkNCaCivQoNCQ0JTQntCS0JjQiyDQktCY0JTQntCh0JDQkgor0KDQkNCU0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCU0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCU0J7QktCY0Isg0JLQm9CQ0IjQmtCeCivQoNCQ0JTQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQoNCQ0JTQntCS0JjQiyDQktCj0JrQodCQ0J0KK9Cg0JDQlNCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCQ0JTQntCS0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0JTQntCS0J3QmNCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JTQoyDQkdCg0JDQndCa0J4KK9Cg0JDQlNCj0IjQmtCeINCC0KPQoNCQCivQoNCQ0JTQo9CI0JrQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCU0KPQiNCa0J4g0JHQoNCQ0J3QmtCeCivQoNCQ0JTQo9CI0JrQniDQlNCV0KHQkAor0KDQkNCU0KPQiNCa0J4g0JTQo9Co0JDQnQor0KDQkNCU0KPQiNCa0J4g0JTQo9Co0JDQnQor0KDQkNCU0KPQiNCa0J4g0JPQntCg0JDQnQor0KDQkNCU0KPQiNCa0J4g0IjQkNCh0JzQmNCd0JAKK9Cg0JDQlNCj0IjQmtCeINCJ0JjQidCQ0J3QkAor0KDQkNCU0KPQiNCa0J4g0JzQkNCg0JrQngor0KDQkNCU0KPQiNCa0J4g0JzQmNCb0JDQnQor0KDQkNCU0KPQiNCa0J4g0JzQmNCg0JAKK9Cg0JDQlNCj0IjQmtCeINCc0JjQoNCa0J4KK9Cg0JDQlNCj0IjQmtCeINCd0JXQlNCV0InQmtCeCivQoNCQ0JTQo9CI0JrQniDQodCi0JXQktCeCivQoNCQ0JTQo9CI0JrQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JTQo9CI0JrQntCSINCU0JDQndCY0KbQkCDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQlNCj0IjQmtCe0JIg0JTQkNCd0JjQm9CeCivQoNCQ0JTQo9CI0JrQntCSINCU0JDQndCY0JvQngor0KDQkNCU0KPQiNCa0J7QkiDQlNCV0IjQkNCdCivQoNCQ0JTQo9CI0JrQntCSINCU0KDQkNCT0J7QidCj0JEKK9Cg0JDQlNCj0IjQmtCe0JIg0InQo9CR0JjQptCQCivQoNCQ0JTQo9CI0JrQntCSINCJ0KPQkdCY0KbQkAor0KDQkNCU0KPQiNCa0J7QkiDQnNCY0JvQkNCdCivQoNCQ0JTQo9CI0JrQntCSINCc0JjQm9CY0JLQntCICivQoNCQ0JTQo9CI0JrQntCSINCc0JjQotCQ0KAKK9Cg0JDQlNCj0IjQmtCe0JIg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQo9CI0JrQntCSINCf0JXQotCQ0KAKK9Cg0JDQlNCj0IjQmtCe0JIg0KDQo9CW0JjQptCQCivQoNCQ0JTQo9CI0JrQntCSINCh0KLQldCS0JDQnQor0KDQkNCU0KPQiNCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQo9CI0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQoNCQ0JTQo9CI0JrQntCS0JjQiyDQiNCV0JvQmtCQCivQoNCQ0JTQo9CI0JrQntCS0JjQiyDQmtCe0KHQotCQCivQoNCQ0JTQo9Ca0JAg0JvQkNCI0J7QqAor0KDQkNCU0KPQmtCY0Isg0KDQkNCU0J7QodCQ0JIKK9Cg0JDQlNCj0JrQmNCdINCQ0JvQldCa0KHQkAor0KDQkNCU0KPQmtCY0J0g0JHQoNCQ0J3QmtCQCivQoNCQ0JTQo9Ca0JjQnSDQlNCQ0J3QmNCm0JAKK9Cg0JDQlNCj0JrQmNCdINCT0JDQktCg0JAKK9Cg0JDQlNCj0JrQmNCdINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JTQo9Ca0JjQnSDQnNCY0JvQkNCdCivQoNCQ0JTQo9Ca0JjQnSDQnNCY0JvQldCd0JrQngor0KDQkNCU0KPQmtCY0J0g0JzQmNCg0JrQngor0KDQkNCU0KPQmtCY0J0g0KDQkNCU0J7QodCb0JDQkgor0KDQkNCU0KPQmtCY0J0g0KHQotCe0IjQmtCQCivQoNCQ0JTQo9Cb0JDQqNCa0Jgg0JHQntCo0JrQngor0KDQkNCU0KPQm9CQ0KjQmtCYINCh0KLQldCS0JDQnQor0KDQkNCU0KPQm9CV0JIg0IjQntCS0JDQnQor0KDQkNCU0KPQiSDQiNCV0JvQldCd0JAKK9Cg0JDQlNCj0JvQntCSINCm0JLQldCi0JjQodCb0JDQkgor0KDQkNCU0KPQm9Ce0JIg0KbQktCV0KLQmNCh0JvQkNCSCivQoNCQ0JTQo9Cb0J7QkiDQiNCe0JLQkNCdCivQoNCQ0JTQo9Cb0J7QkiDQiNCj0JvQmtCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JbQmNCS0JrQngor0KDQkNCU0KPQm9Ce0JLQmNCLINCC0J7QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0ILQntCg0ILQlQor0KDQkNCU0KPQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCj0JvQntCS0JjQiyDQgtCj0KDQngor0KDQkNCU0KPQm9Ce0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQkNCd0JAKK9Cg0JDQlNCj0JvQntCS0JjQiy3QkdCV0JvQmNCLINCX0J7QoNCa0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQkdCe0JPQlNCQ0J3QmtCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9Cg0JDQlNCj0JvQntCS0JjQiyDQkdCe0KHQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCR0J7QodCY0InQmtCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JTQkNCd0JjQiNCV0JvQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCU0KDQkNCT0JjQptCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQk9Ce0KDQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JjQm9CY0IjQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCI0J7QoNCU0JDQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JrQoNCj0J3QmNCh0JvQkNCSCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JrQodCV0J3QmNCI0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JTQo9Cb0J7QktCY0Isg0InQo9CR0JjQqNCQINCU0JjQn9CbINCY0J3Qkwor0KDQkNCU0KPQm9Ce0JLQmNCLINCc0JDQk9CU0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCQ0KDQmNCI0JDQndCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCl0JDQmNCb0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCb0JXQndCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCb0JUKK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0JvQntCI0JUKK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCgCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JzQmNCg0JrQngor0KDQkNCU0KPQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCd0JDQlNCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0J3QldCU0JXQidCa0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0JjQndCTCivQoNCQ0JTQo9Cb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0J3QmNCd0J7QodCb0JDQktCQINCU0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQoNCQ0JTQo9Cb0J7QktCY0Isg0J/QldCi0JDQoAor0KDQkNCU0KPQm9Ce0JLQmNCLINCg0JDQlNCVCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQlNCj0JvQntCS0JjQiyDQoNCQ0JTQntCI0JUg0JTQoAor0KDQkNCU0KPQm9Ce0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQoNCQ0IjQmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCg0KPQltCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KDQo9CU0J7Qm9CkCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQkNCS0JAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCQ0JLQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCh0JDQktCQCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQldCb0JjQnNCY0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCg0JXQi9Ca0J4KK9Cg0JDQlNCj0JvQntCS0JjQiyDQodCg0JXQotCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQotCQ0J3QkAor0KDQkNCU0KPQm9Ce0JLQmNCLINCh0KLQkNCd0JrQngor0KDQkNCU0KPQm9Ce0JLQmNCLINCh0KLQldCS0JDQnSDQlNCgCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQktCV0KLQmtCeCivQoNCQ0JTQo9Cb0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KDQkNCU0KPQm9Ce0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQotCe0JzQkNCoCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQl9Cb0JDQotCY0J3QmtCQINCU0KAKK9Cg0JDQlNCj0JvQntCS0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0JTQo9Cb0J7QktCY0Isg0JfQntCg0JDQnQor0KDQkNCU0KPQm9Ce0JLQmNCLINCX0JLQntCd0JjQnNCY0KAKK9Cg0JDQlNCj0JzQmNCb0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQlNCj0JzQmNCb0J4g0JPQntCg0JTQkNCd0JAKK9Cg0JDQlNCj0JzQmNCb0J4g0JzQmNCL0J4KK9Cg0JDQlNCj0JzQmNCb0J4g0JzQmNCb0J7QoNCQ0JQKK9Cg0JDQlNCj0JzQmNCb0J4g0JzQmNCg0JrQngor0KDQkNCU0KPQnSDQltCV0InQmtCeCivQoNCQ0JTQo9CdINCW0JXQidCa0J4KK9Cg0JDQlNCj0J0g0JTQoNCQ0JPQkNCdCivQoNCQ0JTQo9CdINCT0J7QoNCQ0J0KK9Cg0JDQlNCj0J0g0JjQm9CY0IjQkAor0KDQkNCU0KPQnSDQiNCe0JLQkNCdCivQoNCQ0JTQo9CdINCJ0KPQkdCY0KbQkAor0KDQkNCU0KPQnSDQnNCQ0KDQmtCeCivQoNCQ0JTQo9CdINCc0JjQm9Ce0KgKK9Cg0JDQlNCj0J0g0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCU0KPQnSDQodCc0JjQidCQCivQoNCQ0JTQo9CdINCS0JvQkNCU0J4KK9Cg0JDQlNCj0IrQmNCLINCc0JjQm9Ce0JzQmNCgCivQoNCQ0JTQo9Cd0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0JTQo9Cd0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KDQkNCU0KPQndCa0J7QktCY0Isg0KDQkNCd0JrQngor0KDQkNCU0KPQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQlNCj0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cg0JDQlNCj0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cg0JDQlNCj0J3QntCS0JjQiyDQiNCV0JLQoNCV0JwKK9Cg0JDQlNCj0J3QntCS0JjQiyDQoNCQ0JTQo9CdCivQoNCQ0JTQo9Cd0J7QktCY0Isg0KDQntCh0JDQndCU0JAKK9Cg0JDQlNCj0KHQmNCdINCc0JjQm9CVCivQoNCQ0JTQo9Ch0JjQnSDQotCe0JzQkAor0KDQkNCU0KPQodCY0J0g0JLQldCg0JjQptCQCivQoNCQ0JTQo9Ch0JjQnSDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JTQo9Ch0JjQndCe0JLQmNCLINCR0JjQodCV0KAg0JTQmNCf0Jsg0JjQndCTCivQoNCQ0JTQo9Ch0JjQndCe0JLQmNCLINCR0J7QoNCQCivQoNCQ0JTQo9Ch0JjQndCe0JLQmNCLINCU0JDQndCY0JvQngor0KDQkNCU0KPQodCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JTQo9Ch0JjQndCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQoNCQ0JTQo9Ch0JjQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cg0JDQlNCS0JDQiiDQodCQ0KjQkAor0KDQkNCU0JLQkNCK0Jgg0IjQntCS0JDQnQor0KDQkNCU0JLQkNCd0KHQmtCYINCh0KLQldCS0JDQnQor0KDQkNCk0JAg0JDQndCU0KDQkNCoCivQoNCQ0KTQkNCYINCT0JDQkdCe0KAKK9Cg0JDQpNCQ0Jgg0JjQqNCi0JLQkNCdCivQoNCQ0KTQkNCYINCI0KPQm9CY0IjQkNCd0JAKK9Cg0JDQpNCQ0Jgg0KHQotCV0JLQkNCdCivQoNCQ0KTQkNCYINCi0JjQkdCe0KAKK9Cg0JDQpNCQ0IjQm9Ce0JLQmNCLINCX0KPQl9CQ0J3QkAor0KDQkNCk0JDQmyDQgtCj0KDQgtCY0J3QmtCQCivQoNCQ0KTQkNCbINCb0JDQiNCe0KgKK9Cg0JDQpNCQ0Jsg0JzQkNCg0JjQiNCQCivQoNCQ0JPQkNCnINCY0JLQkNCdCivQoNCQ0JPQkNCYINCI0J7QktCT0JXQnQor0KDQkNCT0JDQiNCYINCC0KPQoNCQCivQoNCQ0JPQkNCI0Jgg0JjQoNCY0J3QkAor0KDQkNCT0JDQiNCYINCd0JjQmtCe0JvQkAor0KDQkNCT0JDQiNCYINCd0JjQmtCe0JvQkAor0KDQkNCT0JDQiNCYINCS0JvQkNCU0JAKK9Cg0JDQk9CQ0IjQmCDQktCb0JDQlNCQCivQoNCQ0JPQkNCI0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCT0J4g0JDQlNCQ0JwKK9Cg0JDQk9Cj0JYg0JTQoNCQ0JbQldCdCivQoNCQ0KXQldCb0JjQiyDQodCS0JXQotCe0JzQmNCgINCU0KAKK9Cg0JDQpdCc0JDQnSDQnNCY0KXQkNCI0JvQngor0KDQkNCY0Kcg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQmNCnINCd0JjQmtCe0JvQkAor0KDQkNCY0KfQldCS0JjQiyDQltCY0JLQmtCeCivQoNCQ0JjQp9CV0JLQmNCLINCW0JjQktCe0IjQmNCdCivQoNCQ0JjQp9CV0JLQmNCLINCW0JjQktCe0IjQmNCdCivQoNCQ0JjQp9CV0JLQmNCLINCR0J7QoNCa0JAKK9Cg0JDQmNCn0JXQktCY0Isg0JTQoNCQ0JPQmNCLCivQoNCQ0JjQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQmNCn0JXQktCY0Isg0JzQmNCb0JjQptCQCivQoNCQ0JjQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCY0KfQldCS0JjQiyDQktCV0KHQndCQCivQoNCQ0JjQp9CV0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQmNCn0JjQiyDQltCY0JLQntCI0JjQnQor0KDQkNCY0KfQmNCLINCW0JjQktCe0IjQmNCdCivQoNCQ0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCY0JvQmNCLINCg0JDQndCa0J4KK9Cg0JDQmNCb0JjQiyDQktCj0JrQntCh0JDQktCQCivQoNCQ0JjQnNCe0JLQodCa0Jgg0JTQldCh0JDQndCa0JAKK9Cg0JDQmNCd0JDQpiDQnNCQ0KDQmNCa0JAKK9Cg0JDQmNCd0JDQpiDQnNCY0KLQkNCgCivQoNCQ0IjQp9CQ0J0g0JjQqNCi0JLQkNCdCivQoNCQ0IjQp9CV0KLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cg0JDQiNCn0JXQotCY0Isg0JXQnNCY0JsKK9Cg0JDQiNCn0JXQotCY0Isg0JPQntCI0JrQngor0KDQkNCI0KfQldCi0JjQiyDQmNCS0JDQndCa0JAKK9Cg0JDQiNCn0JXQotCY0Isg0JvQkNCX0JDQoAor0KDQkNCI0KfQldCi0JjQiyDQidCj0JHQmNCm0JAKK9Cg0JDQiNCn0JXQotCY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0JDQiNCn0JXQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQkNCI0KfQldCi0JjQiyDQoNCj0JbQmNCm0JAKK9Cg0JDQiNCn0JXQotCY0Isg0KHQmNCd0JjQqNCQCivQoNCQ0IjQp9CV0KLQmNCLINCh0KLQntCI0JDQnQor0KDQkNCI0KfQldCi0JjQiyDQktCV0KDQkAor0KDQkNCI0KfQldCi0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cg0JDQiNCn0JXQotCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQoNCQ0IjQp9CV0JLQmNCLINCS0JvQkNCU0JXQotCQCivQoNCQ0IjQp9CY0Isg0JPQoNCT0JAKK9Cg0JDQiNCn0JjQiyDQn9CQ0JLQm9CVCivQoNCQ0IjQp9CY0Isg0KHQotCV0JLQkNCdCivQoNCQ0IjQqNCY0Isg0JDQndCC0JAKK9Cg0JDQiNCo0JjQiyDQlNCQ0J3QmNCm0JAKK9Cg0JDQiNCo0JjQiyDQlNCj0KjQkNCdCivQoNCQ0IjQqNCY0Isg0JjQm9CY0IjQkAor0KDQkNCI0KjQmNCLINCI0JXQm9CQCivQoNCQ0IjQqNCY0Isg0J3QkNCU0JAKK9Cg0JDQiNCo0JjQiyDQoNCQ0JTQlQor0KDQkNCI0KjQmNCLINCh0KLQkNCd0JAKK9Cg0JDQiNCo0JjQiyDQodCi0JDQndCa0J4KK9Cg0JDQiNCo0JvQmCDQmNCb0J7QndCQCivQoNCQ0IjQqNCb0Jgg0JvQkNCh0JvQngor0KDQkNCI0JDQp9CY0Ist0KfQkNCf0JDQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KDQkNCI0JDQp9CY0Isg0ILQo9Cg0J4KK9Cg0JDQiNCQ0KfQmNCLINCC0KPQoNCeCivQoNCQ0IjQkNCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQkNCI0JDQp9CY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQkNCI0JDQp9CY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQkNCI0JDQp9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cg0JDQiNCQ0KfQmNCLINCU0JzQmNCi0JDQoAor0KDQkNCI0JDQp9CY0Isg0JTQo9Co0JDQnQor0KDQkNCI0JDQp9CY0Isg0JPQntCg0JTQkNCd0JAKK9Cg0JDQiNCQ0KfQmNCLINCY0JvQmNCI0JAKK9Cg0JDQiNCQ0KfQmNCLINCI0J7QktCQ0J0KK9Cg0JDQiNCQ0KfQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQiNCQ0KfQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQiNCQ0KfQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQiNCQ0KfQmNCLINCf0JXQotCQ0KAKK9Cg0JDQiNCQ0KfQmNCLINCi0JjQpdCe0JzQmNCgCivQoNCQ0IjQkNCn0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0IjQkNCn0JjQiyDQktCb0JDQlNCeCivQoNCQ0IjQkNCn0JjQiyDQl9Ce0KDQmNCm0JAKK9Cg0JDQiNCQ0KfQmNCLINCX0J7QoNCa0JAKK9Cg0JDQiNCQ0Jog0JHQoNCQ0J3QmtCeCivQoNCQ0IjQkNCaINCc0JjQm9CV0J3QkAor0KDQkNCI0JDQmiDQndCV0JPQntCS0JDQnQor0KDQkNCI0JDQmtCe0JLQkNCmINCc0JjQntCU0KDQkNCTCivQoNCQ0IjQkNCa0J7QktCQ0KYg0JfQntCg0JDQnQor0KDQkNCI0JHQldCgINCI0J7QltCV0KQKK9Cg0JDQiNCU0JAg0J/QldCi0JDQoAor0KDQkNCI0JTQkCDQn9CV0KLQldCgCivQoNCQ0IjQlNCQINCh0JDQndCU0JgKK9Cg0JDQiNCV0JLQmNCLINCa0J7QodCi0JAKK9Cg0JDQiNCV0JLQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9Cg0JDQiNClINCU0JXQltCVCivQoNCQ0IjQpSDQntCb0JPQkAor0KDQkNCI0KUg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCI0JjQpyDQnNCY0JvQkNCdCivQoNCQ0IjQmNCn0JjQiyDQmtCQ0KLQkNCb0JjQnQor0KDQkNCI0JjQp9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JDQiNCY0KfQmNCLINCc0JjQntCU0KDQkNCTCivQoNCQ0IjQmNCLINCQ0J3QmtCY0KbQkAor0KDQkNCI0JjQiyDQkdCe0KDQmNCh0JDQkgor0KDQkNCI0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KDQkNCI0JjQiyDQlNCV0KHQkNCd0JrQkAor0KDQkNCI0JjQiyDQlNCe0JHQoNCY0JLQntCICivQoNCQ0IjQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCI0JjQiyDQlNCg0JDQk9CQCivQoNCQ0IjQmNCLINCU0KDQkNCT0JjQptCQCivQoNCQ0IjQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Cg0JDQiNCY0Isg0JPQntCg0JTQkNCd0JAKK9Cg0JDQiNCY0Isg0JjQk9CK0JDQogor0KDQkNCI0JjQiyDQmNCh0JAKK9Cg0JDQiNCY0Isg0IjQntCS0JDQnQor0KDQkNCI0JjQiyDQiNCe0JLQkNCdCivQoNCQ0IjQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cg0JDQiNCY0Isg0JrQntCS0JjQndCa0JAKK9Cg0JDQiNCY0Isg0JrQoNCY0KHQotCY0J3QkAor0KDQkNCI0JjQiyDQidCj0JHQmNCm0JAKK9Cg0JDQiNCY0Isg0JvQo9Ca0JAKK9Cg0JDQiNCY0Isg0JzQmNCb0JDQnQor0KDQkNCI0JjQiyDQnNCY0JvQldCd0JAKK9Cg0JDQiNCY0Isg0JzQmNCb0JrQkAor0KDQkNCI0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQkNCI0JjQiyDQnNCY0J7QnNCY0KAKK9Cg0JDQiNCY0Isg0J3QkNCU0JAKK9Cg0JDQiNCY0Isg0J3QkNCU0JAKK9Cg0JDQiNCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0IjQmNCLINCf0JXQoNCa0JAKK9Cg0JDQiNCY0Isg0J/QldCi0JDQoAor0KDQkNCI0JjQiyDQoNCQ0JTQlQor0KDQkNCI0JjQiyDQoNCQ0JTQmNCh0JvQkNCSCivQoNCQ0IjQmNCLINCg0JDQlNCc0JjQm9CQCivQoNCQ0IjQmNCLINCg0KPQltCQCivQoNCQ0IjQmNCLINCh0JvQkNCS0JrQkAor0KDQkNCI0JjQiyDQodCd0JXQltCQ0J3QkAor0KDQkNCI0JjQiyDQodCf0JDQodCe0IjQlSDQlNCgCivQoNCQ0IjQmNCLINCh0KLQldCS0JDQnQor0KDQkNCI0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQiNCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0IjQmNCLINCS0JXQm9CY0JzQmNCgCivQoNCQ0IjQmNCLINCS0JXQm9CY0JzQmNCgCivQoNCQ0IjQmNCLINCS0JXQm9CY0J3QmtCQCivQoNCQ0IjQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Cg0JDQiNCY0Isg0JLQntCI0JjQodCb0JDQkgor0KDQkNCI0JjQiyDQl9Ce0KDQkNCdCivQoNCQ0IjQmNCb0JjQiyDQiNCe0JLQkNCd0JrQkAor0KDQkNCI0JjQndCQ0KYt0JHQo9Ca0KPQoNCe0JIg0JTQoNCQ0JPQkNCd0JAKK9Cg0JDQiNCY0J3QkNCmINCd0JXQndCQ0JQKK9Cg0JDQiNCY0J3QkNCmINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JDQiNCY0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQoNCQ0IjQmtCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0IjQmtCe0JIg0JHQntCT0JTQkNCdINCU0KAKK9Cg0JDQiNCa0J7QkiDQkdCe0KDQmNCS0J7QiAor0KDQkNCI0JrQntCSINCU0JXQodCQ0J3QmtCQCivQoNCQ0IjQmtCe0JIg0JTQoNCQ0JPQmNCLCivQoNCQ0IjQmtCe0JIg0JTQo9Co0JDQnQor0KDQkNCI0JrQntCSINCY0KHQmNCU0J7QoAor0KDQkNCI0JrQntCSINCY0JLQkNCdCivQoNCQ0IjQmtCe0JIg0JjQktCQ0J0KK9Cg0JDQiNCa0J7QkiDQidCj0JHQntCc0JjQoAor0KDQkNCI0JrQntCSINCc0JDQoNCa0J4KK9Cg0JDQiNCa0J7QkiDQnNCY0JvQkNCdCivQoNCQ0IjQmtCe0JIg0JzQmNCb0JXQndCa0J4KK9Cg0JDQiNCa0J7QkiDQnNCY0JvQntCg0JDQlAor0KDQkNCI0JrQntCSINCc0JvQkNCU0JXQnSDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQiNCa0J7QkiDQnNCe0JzQmNCgCivQoNCQ0IjQmtCe0JIg0JzQntCc0JjQoAor0KDQkNCI0JrQntCSINCd0JjQmtCe0JvQkAor0KDQkNCI0JrQntCSINCf0JXQotCQ0KAKK9Cg0JDQiNCa0J7QkiDQoNCQ0IjQmtCeCivQoNCQ0IjQmtCe0JIg0KDQkNCi0JjQnNCY0KAKK9Cg0JDQiNCa0J7QkiDQodCQ0JLQkAor0KDQkNCI0JrQntCSINCh0KLQldCS0JDQnQor0KDQkNCI0JrQntCSINCS0JXQodCd0JAKK9Cg0JDQiNCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0IjQmtCe0JIg0JLQo9Ca0JDQqNCY0J0KK9Cg0JDQiNCa0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9Cg0JDQiNCa0J7QktCY0Isg0JbQmNCS0JDQnSDQlNCgCivQoNCQ0IjQmtCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0KDQkNCI0JrQntCS0JjQiyDQkdCb0JDQk9Cj0KLQmNCdCivQoNCQ0IjQmtCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQoNCQ0IjQmtCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Cg0JDQiNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQoNCQ0IjQmtCe0JLQmNCLINCU0JDQnNCK0JDQnQor0KDQkNCI0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J3QkAor0KDQkNCI0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQiNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cg0JDQiNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KDQkNCI0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0IjQmtCe0JLQmNCLINCY0JLQngor0KDQkNCI0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0KDQkNCI0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQoNCQ0IjQmtCe0JLQmNCLINCc0JjQm9CV0JLQkAor0KDQkNCI0JrQntCS0JjQiyDQnNCY0JvQmNCLCivQoNCQ0IjQmtCe0JLQmNCLINCc0JjQidCa0J4KK9Cg0JDQiNCa0J7QktCY0Isg0JzQmNCg0JrQngor0KDQkNCI0JrQntCS0JjQiyDQnNCY0KDQntCJ0KPQkQor0KDQkNCI0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQiNCa0J7QktCY0Isg0J/QldCi0JDQoAor0KDQkNCI0JrQntCS0JjQiyDQoNCQ0IjQmtCeCivQoNCQ0IjQmtCe0JLQmNCLINCg0JDQotCa0J4KK9Cg0JDQiNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQoNCQ0IjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQiNCa0J7QktCY0Isg0KHQoNCR0J7QidCj0JEKK9Cg0JDQiNCa0J7QktCY0Isg0KHQoNCV0KLQldCdCivQoNCQ0IjQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCI0JrQntCS0JjQiyDQodCi0J7QiNCQCivQoNCQ0IjQmtCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KDQkNCI0JrQntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KDQkNCI0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0IjQmtCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQoNCQ0IjQmtCe0JLQmNCLINCS0JjQlNCe0KHQkNCSCivQoNCQ0IjQmtCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0KDQkNCI0JvQmNCLINCc0JjQm9Ca0JAKK9Cg0JDQiNCb0JjQiyDQndCV0JLQldCd0JrQkAor0KDQkNCI0JzQntCS0KHQmtCQINCI0JXQm9CX0JAKK9Cg0JDQiNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQiNCd0JjQiyDQndCe0JLQkNCaCivQoNCQ0IjQndCY0J3Qk9CV0KAg0IjQntCW0JXQpAor0KDQkNCI0J3QntCS0JjQiyDQkNCb0J7QiNCXCivQoNCQ0IjQndCe0JLQmNCLINCR0JvQkNCWCivQoNCQ0IjQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KDQkNCI0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0IjQndCe0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Cg0JDQiNCd0J7QktCY0Isg0J3QkNCU0JAKK9Cg0JDQiNCd0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Cg0JDQiNCd0J/QoNCV0KXQoiDQktCV0KDQkAor0KDQkNCI0KLQkCDQmNCo0KLQktCQ0J0KK9Cg0JDQiNCi0JAg0JzQkNCg0JjQiNCQCivQoNCQ0IjQotCQINCd0JjQmtCe0JvQkAor0KDQkNCI0KLQldCd0JHQkNClINCV0JvQldCc0JjQoAor0KDQkNCI0KLQldCgINCU0KDQkNCT0JjQptCQCivQoNCQ0IjQotCV0KAg0JfQntCb0KLQkNCdCivQoNCQ0Jog0JDQndCY0KbQkAor0KDQkNCaINCc0JDQoNCY0IjQkAor0KDQkNCaINCd0JjQmtCe0JvQkAor0KDQkNCaINCS0JXQm9CY0JHQntCgCivQoNCQ0JrQqNCQ0IrQmCDQm9CQ0JTQmNCh0JvQkNCSCivQoNCQ0JrQkNChINCC0J7QoNCC0JUKK9Cg0JDQmtCQ0KEg0KDQkNCU0J7QiNCa0JAKK9Cg0JDQmtCQ0JfQntCSINCc0JjQntCU0KDQkNCTCivQoNCQ0JrQldCi0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0JrQmNCLINCW0JDQoNCa0J4KK9Cg0JDQmtCY0Isg0JbQmNCS0JrQkAor0KDQkNCa0JjQiyDQltCY0JLQmtCeCivQoNCQ0JrQmNCLINCC0J7QoNCC0JUKK9Cg0JDQmtCY0Isg0ILQntCg0ILQlQor0KDQkNCa0JjQiyDQgtCe0KDQgtCVCivQoNCQ0JrQmNCLINCC0KPQoNCQCivQoNCQ0JrQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCQ0JrQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9Cg0JDQmtCY0Isg0JDQndCC0JXQm9Ca0JAKK9Cg0JDQmtCY0Isg0JDQndCQ0KHQotCQ0KHQmNCI0JAKK9Cg0JDQmtCY0Isg0JDQndCQCivQoNCQ0JrQmNCLINCR0JvQkNCT0J7QiNCVCivQoNCQ0JrQmNCLINCR0J7QltCeCivQoNCQ0JrQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9Cg0JDQmtCY0Isg0JHQntCg0J4KK9Cg0JDQmtCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0KDQkNCa0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0JDQmtCY0Isg0JHQoNCQ0J3QmtCQCivQoNCQ0JrQmNCLINCR0KDQkNCd0JrQngor0KDQkNCa0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KDQkNCa0JjQiyDQlNCe0JzQmNCd0JrQkAor0KDQkNCa0JjQiyDQlNCg0JDQk9CQ0J3QkAor0KDQkNCa0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0JDQmtCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cg0JDQmtCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KDQkNCa0JjQiyDQlNCj0KjQkNCd0JrQkAor0KDQkNCa0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JrQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQmtCY0Isg0JTQo9Co0JDQnQor0KDQkNCa0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JrQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQmtCY0Isg0JTQo9Co0JDQnQor0KDQkNCa0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JrQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQmtCY0Isg0JTQo9Co0JDQnQor0KDQkNCa0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JrQmNCLINCT0JDQktCg0JAKK9Cg0JDQmtCY0Isg0JPQm9CY0JPQntCg0JjQiNCVCivQoNCQ0JrQmNCLINCT0J7QoNCU0JDQndCQCivQoNCQ0JrQmNCLINCT0KDQo9CI0JAKK9Cg0JDQmtCY0Isg0JjQktCQ0J0KK9Cg0JDQmtCY0Isg0IjQntCS0JDQndCa0JAKK9Cg0JDQmtCY0Isg0IjQntCS0JDQnQor0KDQkNCa0JjQiyDQiNCe0JLQkNCdCivQoNCQ0JrQmNCLINCI0J7QktCQ0J0KK9Cg0JDQmtCY0Isg0IjQntCS0JjQptCQCivQoNCQ0JrQmNCLINCa0JDQotCY0KbQkAor0KDQkNCa0JjQiyDQmtCb0JXQnNCV0J3Qogor0KDQkNCa0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JrQmNCLINCJ0JjQidCQ0J3QkAor0KDQkNCa0JjQiyDQidCY0InQkNCd0JAKK9Cg0JDQmtCY0Isg0InQmNCJ0JDQndCQCivQoNCQ0JrQmNCLINCJ0KPQkdCY0KjQkCDQlNCgINCb0JXQmtCQ0KAKK9Cg0JDQmtCY0Isg0InQo9CR0JjQqNCQCivQoNCQ0JrQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCa0JjQiyDQidCj0JHQmNCm0JAKK9Cg0JDQmtCY0Isg0InQo9CR0JjQptCQCivQoNCQ0JrQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCa0JjQiyDQidCj0JHQntCc0JjQoAor0KDQkNCa0JjQiyDQidCj0JHQngor0KDQkNCa0JjQiyDQnNCQ0KLQmNCI0JAKK9Cg0JDQmtCY0Isg0JzQmNCb0JDQndCa0JAKK9Cg0JDQmtCY0Isg0JzQmNCb0JDQnQor0KDQkNCa0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JrQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQmtCY0Isg0JzQmNCb0JDQnQor0KDQkNCa0JjQiyDQnNCY0JvQkNCdCivQoNCQ0JrQmNCLINCc0JjQm9CQ0J0KK9Cg0JDQmtCY0Isg0JzQmNCb0JDQnQor0KDQkNCa0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCa0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCa0JjQiyDQnNCY0JvQldCd0JrQngor0KDQkNCa0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQmtCY0Isg0JzQmNCb0JjQndCQCivQoNCQ0JrQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Cg0JDQmtCY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0JDQmtCY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0JDQmtCY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0JDQmtCY0Isg0JzQmNCb0JrQkAor0KDQkNCa0JjQiyDQnNCY0JvQntCoCivQoNCQ0JrQmNCLINCc0JjQm9Ce0JLQkNCdCivQoNCQ0JrQmNCLINCc0JjQm9Cj0KLQmNCdCivQoNCQ0JrQmNCLINCc0JjQntCU0KDQkNCTCivQoNCQ0JrQmNCLINCc0JjQoNCQCivQoNCQ0JrQmNCLINCc0JjQoNCQCivQoNCQ0JrQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JrQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JrQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JrQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0JrQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KDQkNCa0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQoNCQ0JrQmNCLINCd0JXQkdCe0IjQqNCQCivQoNCQ0JrQmNCLINCd0JXQlNCV0InQmtCeCivQoNCQ0JrQmNCLINCd0JXQndCQ0JQKK9Cg0JDQmtCY0Isg0J3QldCd0JDQlAor0KDQkNCa0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQmtCY0Isg0J3QmNCa0J7Qm9CQCivQoNCQ0JrQmNCLINCd0J7QktCQ0JoKK9Cg0JDQmtCY0Isg0J7QkdCg0JDQlAor0KDQkNCa0JjQiyDQn9CQ0IjQkAor0KDQkNCa0JjQiyDQn9CQ0J3QlQor0KDQkNCa0JjQiyDQn9CQ0JLQm9CVCivQoNCQ0JrQmNCLINCf0JXQotCQ0KAKK9Cg0JDQmtCY0Isg0J/QldCi0JDQoAor0KDQkNCa0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KDQkNCa0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KDQkNCa0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KDQkNCa0JjQiyDQoNCQ0JTQntCI0JrQkAor0KDQkNCa0JjQiyDQoNCQ0JTQntCI0JrQkAor0KDQkNCa0JjQiyDQoNCQ0JTQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0KDQkNCa0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCa0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCa0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCa0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCa0JjQiyDQoNCQ0JTQntCS0JDQnQor0KDQkNCa0JjQiyDQoNCQ0IjQmtCeCivQoNCQ0JrQmNCLINCg0JDQiNCa0J4KK9Cg0JDQmtCY0Isg0KDQo9CW0JjQptCQCivQoNCQ0JrQmNCLINCh0JDQktCQCivQoNCQ0JrQmNCLINCh0JvQkNCS0JrQkAor0KDQkNCa0JjQiyDQodCb0JDQktCa0J4KK9Cg0JDQmtCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCa0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0JrQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JDQmtCY0Isg0KHQnNCY0InQkNCd0JAKK9Cg0JDQmtCY0Isg0KHQntCk0JjQiNCQCivQoNCQ0JrQmNCLINCh0KLQkNCc0JXQndCa0JAKK9Cg0JDQmtCY0Isg0KHQotCV0JLQkNCd0JrQkAor0KDQkNCa0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQmtCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0JrQmNCLINCh0KLQldCS0JDQnQor0KDQkNCa0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JDQmtCY0Isg0KHQotCV0JLQmNCm0JAKK9Cg0JDQmtCY0Isg0KHQotCe0IjQkNCd0JrQkAor0KDQkNCa0JjQiyDQodCi0J7QiNCQ0J0KK9Cg0JDQmtCY0Isg0KHQktCV0KLQntCc0JjQoAor0KDQkNCa0JjQiyDQodCS0JXQotCe0JfQkNCgCivQoNCQ0JrQmNCLINCi0JjQnNCQCivQoNCQ0JrQmNCLINCi0J7QlNCe0KAKK9Cg0JDQmtCY0Isg0KLQntCc0JjQodCb0JDQkgor0KDQkNCa0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQoNCQ0JrQmNCLINCS0JXQm9CV0JzQmNCgCivQoNCQ0JrQmNCLINCS0JXQoNCQCivQoNCQ0JrQmNCLINCS0JXQoNCQCivQoNCQ0JrQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9Cg0JDQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JrQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCa0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0JrQmNCLINCX0JDQk9CQCivQoNCQ0JrQmNCLINCX0JvQkNCi0JAKK9Cg0JDQmtCY0Isg0JfQntCg0JDQnQor0KDQkNCa0JjQiyDQl9Ce0KDQmtCQCivQoNCQ0JrQmNCL0JXQktCY0Isg0KHQotCQ0JzQldCd0JAKK9Cg0JDQmtCY0IvQldCS0JjQiyDQotCY0KXQntCc0JjQoAor0KDQkNCa0JjQi9CV0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQmtCY0J0g0ILQntCg0ILQlQor0KDQkNCa0JjQnSDQkNCd0KLQo9CdCivQoNCQ0JrQmNCdINCR0J7QoNCY0KHQm9CQ0JIKK9Cg0JDQmtCY0J0g0JPQntCI0JrQngor0KDQkNCa0JjQnSDQiNCV0JvQmNCm0JAKK9Cg0JDQmtCY0J0g0IjQo9Cb0JjQiNCQ0J3QkAor0KDQkNCa0JjQnS3QnNCQ0KDQotCY0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KDQkNCa0JjQnSDQoNCQ0JTQntCS0JDQnQor0KDQkNCa0JjQotCQINCQ0J3QmtCY0KbQkAor0KDQkNCa0JjQotCQINCR0J7QltCeCivQoNCQ0JrQmNCi0JAg0KbQktCY0IjQkNCdCivQoNCQ0JrQmNCi0JAg0KbQktCY0IjQngor0KDQkNCa0JjQotCQINCI0J7QktCeCivQoNCQ0JrQmNCi0JAg0InQmNCJ0JDQndCQCivQoNCQ0JrQmNCi0JAg0JzQmNCb0JDQnQor0KDQkNCa0JjQotCQINCc0JvQkNCU0JjQndCa0J4KK9Cg0JDQmtCY0KLQkCDQn9CV0KLQkNCgCivQoNCQ0JrQmNCi0JAg0KHQmNCc0JrQkAor0KDQkNCa0J7Qp9CV0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQmtCe0KfQldCS0JjQiyDQkdCe0KDQngor0KDQkNCa0J7Qp9CV0JLQmNCLINCT0KDQo9CI0JjQptCQCivQoNCQ0JrQntCn0JXQktCY0Isg0JzQkNCg0JjQiNCQ0J0KK9Cg0JDQmtCe0KfQldCS0JjQiyDQnNCQ0KDQmtCeCivQoNCQ0JrQntCn0JXQktCY0Isg0JzQmNCb0JDQnQor0KDQkNCa0J7Qp9CV0JLQmNCLINCc0JjQm9CY0IjQkAor0KDQkNCa0J7Qp9CV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQmtCe0KfQldCS0JjQiyDQoNCQ0JTQlQor0KDQkNCa0J7Qp9CV0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQoNCQ0JrQntCoINCI0JDQndCe0KgKK9Cg0JDQmtCe0Kgg0JrQkNCi0JjQptCQCivQoNCQ0JrQntCoINCX0JLQntCd0JjQnNCY0KAKK9Cg0JDQmtCe0KjQmCDQndCQ0JTQkAor0KDQkNCa0J7QqNCYINCS0JvQkNCU0JjQodCb0JDQkgor0KDQkNCa0J7QitCQ0KYg0JHQntCT0J7QidCj0JEKK9Cg0JDQmtCe0IrQkNCmINCf0KPQndCY0KjQkAor0KDQkNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JDQmtCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQoNCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0JrQntCS0JjQiyDQiNCj0JPQntCh0JvQkNCSCivQoNCQ0JrQntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0KDQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cg0JDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCa0J7QktCY0Isg0J7QodCi0J7QiNCQCivQoNCQ0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KDQkNCa0J7QktCY0Isg0KDQkNCi0JrQngor0KDQkNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQoNCQ0JrQntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Cg0JDQmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cg0JDQmtCe0JLQmNCLINCS0JjQotCe0JzQmNCg0JrQkAor0KDQkNCa0J7QktCY0Isg0JLQm9CQ0JTQngor0KDQkNCa0KPQqNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCb0JXQotCY0Isg0JbQmNCS0JrQkAor0KDQkNCb0JXQotCY0Isg0ILQntCg0ILQlQor0KDQkNCb0JXQotCY0Isg0ILQo9Cg0JAKK9Cg0JDQm9CV0KLQmNCLINCQ0J3QgtCV0JvQmtCQCivQoNCQ0JvQldCi0JjQiyDQkNCd0JAKK9Cg0JDQm9CV0KLQmNCLINCR0J7Qk9CU0JDQnQor0KDQkNCb0JXQotCY0Isg0JTQntCR0KDQmNCm0JAKK9Cg0JDQm9CV0KLQmNCLINCU0KDQkNCT0JDQnQor0KDQkNCb0JXQotCY0Isg0JTQo9Co0JDQnQor0KDQkNCb0JXQotCY0Isg0JjQm9CY0IjQkAor0KDQkNCb0JXQotCY0Isg0IjQldCb0JjQptCQCivQoNCQ0JvQldCi0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JvQldCi0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JvQldCi0JjQiyDQm9CQ0JfQkNCgCivQoNCQ0JvQldCi0JjQiyDQm9CV0J/QntCh0JDQktCQCivQoNCQ0JvQldCi0JjQiyDQnNCQ0IjQkAor0KDQkNCb0JXQotCY0Isg0JzQmNCb0JDQnQor0KDQkNCb0JXQotCY0Isg0JzQmNCb0J7QqAor0KDQkNCb0JXQotCY0Isg0JzQmNCb0J7QqAor0KDQkNCb0JXQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0JDQm9CV0KLQmNCLINCc0JjQoNCa0J4KK9Cg0JDQm9CV0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQm9CV0KLQmNCLINCc0JvQkNCU0JXQnQor0KDQkNCb0JXQotCY0Isg0J/QldCi0JDQoAor0KDQkNCb0JXQotCY0Ist0KHQkNCS0JjQiyDQiNCV0JvQldCd0JAKK9Cg0JDQm9CV0KLQmNCLLdCh0JDQktCY0Isg0IjQldCb0JXQndCQCivQoNCQ0JvQldCi0JjQiyDQktCV0InQmtCeCivQoNCQ0JvQldCi0JjQiyDQktCV0KDQkAor0KDQkNCb0JXQotCY0Isg0JfQntCg0JDQnQor0KDQkNCb0JXQotCY0Isg0JfQntCg0JjQptCQCivQoNCQ0JvQldCS0JjQiyDQndCV0JHQntCI0KjQkAor0KDQkNCb0JjQiyDQltCY0JLQntCI0JjQnQor0KDQkNCb0JjQiyDQkdCg0JDQndCa0J4KK9Cg0JDQm9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9Cg0JDQm9CY0Isg0JTQo9Co0JDQnQor0KDQkNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JDQm9CY0Isg0JzQkNCg0JjQiNCQCivQoNCQ0JvQmNCLINCc0JjQm9CVCivQoNCQ0JvQmNCLINCc0J7QnNCY0KDQmtCQCivQoNCQ0JvQmNCLINCh0KLQldCS0JDQnQor0KDQkNCb0JjQiyDQodCi0JXQktCQCivQoNCQ0InQmNCLINCQ0J3QgtCV0JvQmtCeCivQoNCQ0InQmNCLINCU0KDQkNCT0JjQitCQCivQoNCQ0InQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQidCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0JDQnNCQ0Kcg0JDQndCY0KbQkAor0KDQkNCc0JDQpyDQmNCS0JDQnQor0KDQkNCc0JDQpyDQiNCj0JvQmNCI0JDQnQor0KDQkNCc0JDQpyDQm9CV0J7QndCQCivQoNCQ0JzQkNCnINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JzQkNCnINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JzQkNCnINCJ0KPQkdCe0JzQmNCgCivQoNCQ0JzQkNCnINCc0JDQoNCY0IjQkAor0KDQkNCc0JDQpyDQnNCY0KXQkNCI0JvQngor0KDQkNCc0JDQpyDQnNCY0KXQkNCI0JvQngor0KDQkNCc0JDQpyDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0JzQkNCnINCd0JDQlNCQCivQoNCQ0JzQkNCnINCd0JDQotCQ0JvQmNCI0JAKK9Cg0JDQnNCQ0Kcg0J/QldCi0JDQoAor0KDQkNCc0JDQpyDQodCY0JzQldCe0J0KK9Cg0JDQnNCQ0Kcg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCc0JDQpyDQl9CU0JXQndCa0JAKK9Cg0JDQnNCQ0Isg0JzQmNCb0JXQktCQCivQoNCQ0JzQkNCU0JDQndCYINCg0J7Ql9CQCivQoNCQ0JzQkNCU0JDQndCe0JIg0JzQo9Cc0KPQlNCY0IjQkAor0KDQkNCc0JDQlNCQ0J3QntCS0JjQiyDQgtCV0JzQkNCJCivQoNCQ0JzQkNCU0JDQndCe0JLQmNCLINCI0JDQmtCe0JIKK9Cg0JDQnNCQ0JTQkNCd0J7QktCh0JrQmCDQndCQ0JTQkAor0KDQkNCc0JDQlNCQ0J3QntCS0KHQmtCYINCd0JXQlNCV0InQmtCeCivQoNCQ0JzQkNCU0JDQndCh0JrQmCDQlNCg0JDQk9CY0IsKK9Cg0JDQnNCQ0JTQkNCd0KHQmtCYINCI0JXQm9CV0J3QkAor0KDQkNCc0JDQlNCQ0J3QodCa0Jgg0JzQmNCb0JjQndCa0JAKK9Cg0JDQnNCQ0JfQkNCd0J7QkiDQktCY0JrQotCe0KAKK9Cg0JDQnNCY0Isg0ILQo9Ca0JAKK9Cg0JDQnNCY0Isg0IjQntCS0JDQndCa0JAKK9Cg0JDQnNCY0Isg0JvQkNCX0JDQoAor0KDQkNCc0JjQiyDQm9Cj0JrQkAor0KDQkNCc0JjQiyDQm9Cj0JrQkAor0KDQkNCc0JjQiyDQnNCY0JvQntCoINCU0JjQn9CbINCe0JXQpgor0KDQkNCc0JjQiyDQndCY0JrQntCb0JAKK9Cg0JDQnNCY0Isg0KDQkNCU0J7QiNCa0JAKK9Cg0JDQnNCY0Isg0KHQotCe0IjQkNCdCivQoNCQ0JzQmNCLINCS0JXQm9CY0JTQkAor0KDQkNCc0InQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JDQnNCJ0JDQmiDQl9Cb0JDQotCa0J4KK9Cg0JDQndCn0JjQiyDQqNCY0JzQlQor0KDQkNCd0KfQmNCLINCU0KPQqNCQ0J3QmtCQCivQoNCQ0J3Qp9CY0Isg0KXQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0J3Qp9CY0Isg0IjQntCg0JTQkNCdCivQoNCQ0J3Qp9CY0Isg0JzQmNCb0J7QqAor0KDQkNCd0KfQmNCLINCg0JDQndCa0J4KK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCC0J7QoNCC0JUKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCl0KDQkNCd0JjQodCb0JDQkgor0KDQkNCd0ILQldCb0J7QktCY0Isg0JjQm9CY0IjQkAor0KDQkNCd0ILQldCb0J7QktCY0Isg0InQmNCJ0JDQndCQCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQidCj0JHQmNCo0JAKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCJ0KPQkdCe0JTQoNCQ0JMKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCe0JHQoNCQ0JQKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCg0KPQltCY0KbQkAor0KDQkNCd0ILQldCb0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KDQkNCd0ILQldCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQoNCQ0J3QgtCV0JvQntCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Cg0JDQndCC0JXQm9Ce0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQndCU0JXQiSDQgtCe0KDQgtCVCivQoNCQ0J3QlNCV0Ikg0ILQo9Cg0ILQmNCd0JrQkAor0KDQkNCd0JTQldCJINCb0JDQl9CQ0KAKK9Cg0JDQndCU0JXQiSDQntCb0JjQktCV0KDQkAor0KDQkNCd0JTQldCJINCf0JXQotCQ0KAKK9Cg0JDQndCU0JXQiSDQodCi0JXQktCQ0J0KK9Cg0JDQndCU0JXQiSDQodCS0JXQotCe0JfQkNCgCivQoNCQ0J3Qk9CV0JvQntCSINCU0JjQnNCY0KLQkNCgCivQoNCQ0J3Qk9CV0JvQntCSINCh0KLQldCS0JDQnQor0KDQkNCd0JPQldCb0J7QkiDQodCi0JXQktCQ0J0KK9Cg0JDQndCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQoNCQ0J3QmNCdINCI0J7QktCQ0J0KK9Cg0JDQndCY0J0g0JvQkNCX0JDQoAor0KDQkNCd0JjQodCQ0JIg0KDQkNCU0JjQktCe0IgKK9Cg0JDQndCY0KHQkNCS0InQldCSINCW0JjQktCa0J4KK9Cg0JDQndCY0KHQkNCS0InQldCSINCC0J7QoNCC0JUKK9Cg0JDQndCY0KHQkNCS0InQldCSINCC0J7QoNCC0JUKK9Cg0JDQndCY0KHQkNCS0InQldCSINCT0J7QoNCU0JDQndCQCivQoNCQ0J3QmNCh0JDQktCJ0JXQkiDQnNCY0JvQmNCm0JAKK9Cg0JDQndCY0KHQkNCS0InQldCSINCc0JjQm9Ce0KgKK9Cg0JDQndCY0KHQkNCS0InQldCSINCf0JDQiNCQCivQoNCQ0J3QmNCh0JDQktCJ0JXQkiDQoNCQ0JTQkAor0KDQkNCd0JjQodCQ0JLQidCV0JIg0KDQkNCU0JzQmNCb0JAKK9Cg0JDQndCY0KHQkNCS0InQldCSINCg0JDQlNCc0JjQm9CQCivQoNCQ0J3QmNCh0JDQktCJ0JXQkiDQoNCQ0JTQntCh0JvQkNCSCivQoNCQ0J3QmNCh0JDQktCJ0JXQkiDQodCb0JDQktCe0InQo9CRCivQoNCQ0J3QmNCh0JDQktCJ0JXQkiDQodCi0JXQktCQ0J0KK9Cg0JDQndCY0KHQkNCS0InQldCSINCi0JjQiNCQ0J3QkAor0KDQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCW0JDQoNCa0J4KK9Cg0JDQndCY0KHQkNCS0InQldCS0JjQiyDQltCV0InQmtCeCivQoNCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JHQntCT0KPQnNCY0JvQkAor0KDQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCU0J7QkdCg0JjQktCe0IgKK9Cg0JDQndCY0KHQkNCS0InQldCS0JjQiyDQlNCj0KjQkNCdCivQoNCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0IjQldCb0JXQndCQCivQoNCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0J3QldCR0J7QiNCo0JAKK9Cg0JDQndCY0KHQkNCS0InQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KDQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCh0JjQndCY0KjQkAor0KDQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCh0JvQkNCS0JrQkAor0KDQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCS0JjQntCb0JXQotCQCivQoNCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JfQntCg0JDQnQor0KDQkNCd0JjQodCb0JDQki3Qm9CQ0KDQolkg0J3QkNCU0JAg0JTQoAor0KDQkNCd0JjQotCe0JLQmNCLINCR0J7QqNCa0J4KK9Cg0JDQndCY0KLQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0KDQkNCd0JjQotCe0JLQmNCLINCU0JjQktCd0JAKK9Cg0JDQndCY0KLQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Cg0JDQndCY0KLQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Cg0JDQndCY0KLQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0KDQkNCd0JjQotCe0JLQmNCLINCS0JXQm9CY0KHQm9CQ0JIKK9Cg0JDQndCa0JjQiyDQodCi0JXQktCeCivQoNCQ0J3QmtCY0Isg0KLQntCc0JjQodCb0JDQkgor0KDQkNCd0JrQntCSINCQ0J3QmtCY0KbQkAor0KDQkNCd0JrQntCSINCU0KDQkNCT0JDQnSDQlNCgCivQoNCQ0J3QmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0KDQkNCd0JrQntCSINCT0KDQntCX0JTQkAor0KDQkNCd0JrQntCSINCY0KDQldCd0JAKK9Cg0JDQndCa0J7QkiDQmNCS0JDQndCa0JAKK9Cg0JDQndCa0J7QkiDQiNCe0JLQkNCdCivQoNCQ0J3QmtCe0JIg0JrQntCh0KLQkAor0KDQkNCd0JrQntCSINCJ0JjQidCQ0J3QkAor0KDQkNCd0JrQntCSINCJ0KPQkdCY0KbQkAor0KDQkNCd0JrQntCSINCc0JDQoNCY0IjQkAor0KDQkNCd0JrQntCSINCc0JjQm9CQ0J0KK9Cg0JDQndCa0J7QkiDQnNCY0JvQmNCS0J7QiAor0KDQkNCd0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JDQndCa0J7QkiDQndCV0JTQldCJ0JrQngor0KDQkNCd0JrQntCSINCd0JXQlNCV0InQmtCeCivQoNCQ0J3QmtCe0JIg0J7Qm9CT0JjQptCQCivQoNCQ0J3QmtCe0JIg0J/QldCi0JDQoAor0KDQkNCd0JrQntCSINCg0JDQlNCY0KHQm9CQ0JIKK9Cg0JDQndCa0J7QkiDQoNCQ0JTQnNCY0JvQkAor0KDQkNCd0JrQntCSINCg0JDQlNCe0IjQmtCQCivQoNCQ0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQoNCQ0J3QmtCe0JIg0KHQotCV0JLQkNCdCivQoNCQ0J3QmtCe0JIg0KLQkNCd0JDQodCY0IjQlQor0KDQkNCd0JrQntCSINCX0J7QoNCQCivQoNCQ0J3QmtCe0JLQmNCLINCW0JjQktCa0J4KK9Cg0JDQndCa0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAg0JTQoAor0KDQkNCd0JrQntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0KDQkNCd0JrQntCS0JjQiyDQkNCd0JrQkAor0KDQkNCd0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQoNCQ0J3QmtCe0JLQmNCLINCR0J7QiNCQ0J0KK9Cg0JDQndCa0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9Cg0JDQndCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCQ0J3QmtCe0JLQmNCLINCR0KDQkNCd0JrQkAor0KDQkNCd0JrQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KDQkNCd0JrQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0KDQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CeCivQoNCQ0J3QmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQndCa0J7QktCY0Isg0JTQo9Co0JjQptCQCivQoNCQ0J3QmtCe0JLQmNCLINCU0KPQkdCg0JDQktCa0JAKK9Cg0JDQndCa0J7QktCY0Isg0JjQoNCV0J3QkAor0KDQkNCd0JrQntCS0JjQiyDQmNCS0JDQnQor0KDQkNCd0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQoNCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0KDQkNCd0JrQntCS0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQoNCQ0J3QmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KDQkNCd0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCQ0J3QmtCe0JLQmNCLINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9Cg0JDQndCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Cg0JDQndCa0J7QktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0JDQndCa0J7QktCY0Isg0KDQkNCi0J7QnNCY0KAKK9Cg0JDQndCa0J7QktCY0Isg0KDQntCX0JDQm9CY0IjQkAor0KDQkNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0J3QmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCd0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQoNCQ0J3QmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0JDQndCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KDQkNCd0JrQntCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQoNCQ0J3QmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Cg0JDQndCe0JPQkNCI0JXQpiDQmNCS0JDQnQor0KDQkNCe0J3QmNCLINCC0J7QoNCC0JUKK9Cg0JDQntCd0JjQiyDQmNCa0J7QndCY0IjQkAor0KDQkNCe0J3QmNCLINCI0JDQndCa0J4KK9Cg0JDQntCd0JjQiyDQoNCQ0JTQldCd0JrQngor0KDQkNCe0J3QmNCLINCh0J/QkNCh0J7QiNCVCivQoNCQ0J7QndCY0Isg0JLQo9Ca0J7Qm9CQCivQoNCQ0J/Qp9CeINCa0JDQotCQ0JvQmNCdCivQoNCQ0J/QkNCY0Isg0JTQldCI0JDQnQor0KDQkNCf0JDQmNCLINCc0JjQntCU0KDQkNCTINCU0KAKK9Cg0JDQn9CQ0JjQiyDQoNCQ0JTQldCd0JrQkAor0KDQkNCf0JDQmNCLINCh0KLQldCS0JDQnQor0KDQkNCf0JDQiNCY0Isg0JDQndCQ0JzQkNCg0JjQiNCQCivQoNCQ0J/QkNCI0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQoNCQ0J/QkNCI0JjQiyDQlNCj0KjQmtCeCivQoNCQ0J/QkNCI0JjQiyDQnNCY0JvQkNCdINCQ0JTQktCe0JrQkNCiCivQoNCQ0J/QkNCI0JjQiyDQnNCY0JvQkNCdCivQoNCQ0J/QkNCI0JjQiyDQnNCY0JvQkNCdCivQoNCQ0J/QkNCI0JjQiyDQoNCQ0JTQntCI0JAKK9Cg0JDQn9CQ0IjQmNCLINCh0KLQldCS0JDQnQor0KDQkNCf0JDQiNCY0Isg0KLQkNCc0JDQoNCQCivQoNCQ0J/QmNCLINCR0J7QoNCVCivQoNCQ0J/QmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Cg0JDQn9CY0Isg0JTQo9Co0JDQndCa0JAKK9Cg0JDQn9CY0Isg0IjQntCS0JDQnQor0KDQkNCf0JjQiyDQiNCe0JLQkNCdCivQoNCQ0J/QmNCLINCc0JjQm9CQ0J0KK9Cg0JDQn9CY0Isg0J3QkNCU0JAKK9Cg0JDQn9CY0Isg0J3QldCd0JDQlAor0KDQkNCf0JjQiyDQoNCQ0JTQlQor0KDQkNCf0JjQiyDQoNCj0KjQmtCeCivQoNCQ0J/QniDQodCi0IjQldCf0JDQnQor0KDQkNCf0J7QotCYINCY0KjQotCS0JDQnQor0KDQkNCh0J/QntCf0J7QktCY0Isg0JHQntCo0JrQngor0KDQkNCh0J/QntCf0J7QktCY0Isg0JzQmNCb0J7QqAor0KDQkNCh0J/QntCf0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQkNCh0J/QntCf0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQoNCQ0KHQn9Ce0J/QntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cg0JDQodCi0JDQktCQ0KYg0J/QldCi0JDQoAor0KDQkNCh0KLQmNCaINCC0J7QoNCC0JUKK9Cg0JDQodCi0J7QktCQ0KYg0ILQo9Cg0J4KK9Cg0JDQodCi0J7QktCY0Isg0JjQm9CY0IjQkAor0KDQkNCh0KLQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Cg0JDQodCi0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQkNCh0KLQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0JDQodCi0J7QktCY0Ist0J/Qm9CY0JLQldCb0JjQiyDQlNCV0KHQkNCd0JrQkAor0KDQkNCh0KLQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KDQkNCh0KLQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCQ0KHQotCe0JLQmNCLINCh0KLQldCS0JDQnQor0KDQkNCh0KLQntCS0JjQiyDQktCV0KDQkAor0KDQkNCiINCk0JXQoNCV0J3Qpgor0KDQkNCiINCk0KDQkNCK0JAKK9Cg0JDQoiDQiNCQ0JrQntCRCivQoNCQ0KIg0IjQntCh0JjQnwor0KDQkNCi0JDQiNCQ0KYg0JTQoNCQ0JPQntCJ0KPQkSDQlNCgCivQoNCQ0KLQk9CV0JHQldCgINCI0KPQm9CY0IjQkAor0KDQkNCi0JPQldCR0JXQoCDQm9CQ0KHQm9CeCivQoNCQ0KLQmNCLINCC0KPQoNCC0JjQndCQCivQoNCQ0KLQmNCLINCR0J7QoNCQCivQoNCQ0KLQmNCLINCU0KPQqNCQ0J0KK9Cg0JDQotCa0JXQm9CY0Isg0JzQmNCb0JDQnQor0KDQkNCi0JrQntCSINCW0JjQktCa0J4KK9Cg0JDQotCa0J7QkiDQgtCe0KDQgtCVCivQoNCQ0KLQmtCe0JIg0JDQptCQCivQoNCQ0KLQmtCe0JIg0JHQntCg0JjQktCe0IgKK9Cg0JDQotCa0J7QkiDQptCV0KbQmNCb0JjQiNCQCivQoNCQ0KLQmtCe0JIg0JTQoNCQ0JPQkNCdCivQoNCQ0KLQmtCe0JIg0JTQoNCQ0JPQmNCK0JAKK9Cg0JDQotCa0J7QkiDQlNCg0JDQk9CY0IrQkAor0KDQkNCi0JrQntCSINCU0KPQqNCQ0J3QmtCQCivQoNCQ0KLQmtCe0JIg0JTQo9Co0JDQnQor0KDQkNCi0JrQntCSINCI0JXQm9CV0J3QkAor0KDQkNCi0JrQntCSINCI0KPQm9CY0IjQkNCd0JAKK9Cg0JDQotCa0J7QkiDQmtCQ0KLQkNCg0JjQndCQCivQoNCQ0KLQmtCe0JIg0JvQldCf0J7QodCQ0JLQkAor0KDQkNCi0JrQntCSINCc0JjQi9CeCivQoNCQ0KLQmtCe0JIg0JzQmNCb0JXQndCa0J4KK9Cg0JDQotCa0J7QkiDQnNCY0JvQldCd0JrQngor0KDQkNCi0JrQntCSINCc0JjQm9CY0KbQkAor0KDQkNCi0JrQntCSINCd0JXQndCQ0JQKK9Cg0JDQotCa0J7QkiDQndCV0J3QkNCUCivQoNCQ0KLQmtCe0JIg0J/QkNCS0JvQlQor0KDQkNCi0JrQntCSINCf0KDQldCU0KDQkNCTCivQoNCQ0KLQmtCe0JIg0KDQkNCU0JUKK9Cg0JDQotCa0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KDQkNCi0JrQntCSINCg0JDQlNCe0JzQmNCgCivQoNCQ0KLQmtCe0JIg0KDQo9CW0JjQptCQCivQoNCQ0KLQmtCe0JIg0KHQkNCS0JrQkAor0KDQkNCi0JrQntCSINCh0JzQmNCJ0JDQndCQCivQoNCQ0KLQmtCe0JIg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9Cg0JDQotCa0J7QkiDQodCi0JDQndCY0KHQm9CQ0JIKK9Cg0JDQotCa0J7QkiDQktCV0KDQkAor0KDQkNCi0JrQntCSINCS0JjQlNCe0KHQkNCS0JAKK9Cg0JDQotCa0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQoNCQ0KLQmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0KDQkNCi0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Cg0JDQotCa0J7QkiDQktCj0IjQmNCm0JAKK9Cg0JDQo9CoINCa0JvQkNCj0JTQmNCI0JAKK9Cg0JDQo9CoINCg0JjQpdCQ0KDQlAor0KDQkNCj0KjQldCd0JHQldCg0JPQldCgINCc0JDQoNCi0JjQnQor0KDQkNCj0KjQmtCYINCC0J7QoNCC0JUKK9Cg0JDQo9Co0JrQmCDQkNCd0JPQldCb0JjQndCQCivQoNCQ0KPQqNCa0Jgg0JTQkNCd0JjQm9CeCivQoNCQ0KPQqNCa0Jgg0InQmNCJ0JDQndCQCivQoNCQ0KPQqNCa0Jgg0JzQmNCb0JDQndCQCivQoNCQ0KPQqNCa0Jgg0JzQmNCb0J7QqAor0KDQkNCj0KHQkNCS0InQldCS0JjQiyDQgtCe0KDQgtCVCivQoNCQ0KPQodCQ0JLQidCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQoNCQ0KPQl9CQINCf0JDQm9Ca0J4KK9Cg0JDQktCQ0IjQmNCLINCC0KPQoNCeCivQoNCQ0JLQkNCh0Jgg0InQo9CR0JjQptCQCivQoNCQ0JLQmNCLINCd0JjQmtCe0JvQkAor0KDQkNCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KDQkNCS0JvQmNCLLdCR0JDQitCQ0KYg0KHQndCV0JbQkNCd0JAKK9Cg0JDQktCb0JjQiyDQn9CV0IjQngor0KDQkNCS0JvQmNCLINCS0JjQlNCQCivQoNCQ0JLQm9CY0IjQkCDQlNCg0JDQk9CQ0J0KK9Cg0JDQl9CU0JXQktCo0JXQmiDQodCi0J7QiNCQ0J3QmtCQCivQoNCQ0JfQmNCLINCP0JXQnNCQ0JsKK9Cg0JDQl9Cc0J7QktCh0JrQmCDQndCY0JrQntCb0JAKK9Cg0JDQl9Cj0JzQldCd0JjQiy3QmtCe0KLQoNCe0KjQkNCdINCc0JjQm9CV0J3QkAor0KDQldCn0JXQmCDQmNCb0J7QndCa0JAKK9Cg0JXQp9Ca0J4g0JjQm9CV0KgKK9Cg0JXQqNCL0JDQndCh0JrQmCDQkdCe0KjQmtCeCivQoNCV0KjQi9CQ0J3QodCa0Jgg0JHQntCT0JTQkNCdCivQoNCV0KjQi9CQ0J3QodCa0Jgg0JLQldCg0JAKK9Cg0JXQqNCV0KLQkNCgINCQ0J3QotCVCivQoNCV0KjQldCi0JDQoCDQodCi0JDQndCQCivQoNCV0KjQldCi0JDQoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Cg0JXQqNCY0KLQmCDQgtCe0KDQgtCVCivQoNCV0KjQitCQ0Jog0JDQndCU0KDQmNCI0JAKK9Cg0JXQqNCK0JDQmiDQm9CQ0KHQm9CeCivQoNCV0KjQitCQ0Jog0KHQotCV0JLQkNCdCivQoNCV0KjQitCQ0Jog0JfQntCg0JjQptCQCivQoNCV0JbQitCQ0Jog0JvQkNCh0JvQngor0KDQldCW0KPQmiDQiNCe0KHQmNCfCivQoNCV0ILQldCfINCU0KDQkNCo0JrQngor0KDQldCC0JXQn9CYINCP0JXQidCQ0J0KK9Cg0JXQgtCV0J/QmCDQnNCY0JvQkNCY0JwKK9Cg0JXQgtCV0J/QntCS0JjQiyDQkNCb0JjQiNCQCivQoNCV0JHQkCDQkdCb0JDQk9Ce0IjQlQor0KDQldCR0JAg0JjQk9Ce0KAKK9Cg0JXQkdCQINCY0JPQntCgCivQoNCV0JHQmNCLINCR0J7Qk9CU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cg0JXQkdCY0Isg0JTQoNCQ0JPQkNCdCivQoNCV0JHQmNCLINCd0JXQlNCV0InQmtCeCivQoNCV0JHQmNCLINCd0JXQlNCV0InQmtCeCivQoNCV0JHQmNCLINCh0JjQnNCV0J7QnQor0KDQldCR0JjQiyDQodCY0JzQngor0KDQldCR0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0KAKK9Cg0JXQkdCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQldCR0KDQmNCd0JAg0JrQkNCi0JDQoNCY0J3QkAor0KDQldCP0JAg0JjQkdCg0JDQpdCY0JwKK9Cg0JXQj9CV0Jog0IjQntCS0JDQnQor0KDQldCP0JXQnyDQiNCj0KHQndCY0IjQkAor0KDQldCP0JXQn9Ce0JIg0KjQldCS0JrQmNCdCivQoNCV0I/QldCf0J7QkiDQmtCQ0JzQkdCV0KAKK9Cg0JXQlNCVINCg0KPQlNCe0JvQpAor0KDQldCU0JjQkyDQktCY0JvQmNCcCivQoNCV0JTQm9CYINCC0J7QoNCC0JUKK9Cg0JXQlNCb0Jgg0JzQkNCg0JjQiNCQCivQoNCV0JTQm9CYINCS0JXQoNCQCivQoNCV0JPQkNCI0Jcg0KHQotCV0JLQkNCdCivQoNCV0JPQldCmINCV0KLQldCb0JrQkAor0KDQldCT0JXQidCQ0KYg0InQo9CR0JjQptCQCivQoNCV0JPQldCJ0JDQpiDQnNCQ0KDQkAor0KDQldCT0JXQoCDQiNCe0JLQkNCdCivQoNCV0JPQmyDQktCb0JDQlNCY0JzQmNCgCivQoNCV0JPQntCU0JjQiyDQodCS0JXQotCe0JfQkNCgCivQoNCV0JPQntCI0JXQktCY0Isg0JzQm9CQ0ILQldCd0JrQngor0KDQldCl0JDQmiDQmNCc0KDQlQor0KDQldCl0JDQmiDQm9CQ0KHQm9CeCivQoNCV0KXQkNCaINCe0JvQk9CQCivQoNCV0KXQndCV0KAg0JzQkNCg0JjQiNCQCivQoNCV0KXQndCV0KAg0KHQotCQ0JzQldCd0JrQkAor0KDQldCY0J3QpdCe0JvQpiDQgtCV0JfQlQor0KDQldCY0J3QpdCe0JvQpiDQgtCV0JfQlQor0KDQldCY0J3QpdCe0JvQlyDQgtCV0JfQlQor0KDQldCa0JAg0JDQoNCY0KQKK9Cg0JXQmtCQLdCY0JLQkNCd0J7QktCY0Isg0JTQo9Co0JjQptCQCivQoNCV0JrQldCL0JUg0KjQkNCd0JTQntCgCivQoNCV0JrQldCm0JrQmCDQldCb0JXQntCd0J7QoNCQCivQoNCV0JrQldCm0JrQmCDQiNCe0JbQldCkCivQoNCV0JrQmNCLINCl0KPQodCV0JjQnQor0KDQldCb0JjQiyDQgtCe0KDQgtCVCivQoNCV0JvQmNCLINCC0J7QoNCC0JUKK9Cg0JXQm9CY0Isg0JTQkNCg0JrQngor0KDQldCb0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cg0JXQm9CY0Isg0JPQntCI0JrQngor0KDQldCb0JjQiyDQiNCe0JLQkNCdCivQoNCV0JvQmNCLINCI0J7QktCY0KbQkAor0KDQldCb0JjQiyDQmtCe0J3QodCi0JDQndCi0JjQnQor0KDQldCb0JjQiyDQidCj0JHQkNCdCivQoNCV0JvQmNCLINCc0JjQm9CQ0J0KK9Cg0JXQm9CY0Isg0JzQmNCb0JXQndCa0J4KK9Cg0JXQm9CY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0JXQm9CY0Isg0JzQmNCg0JAKK9Cg0JXQm9CY0Isg0J/QkNCS0JvQlQor0KDQldCb0JjQiyDQn9CV0KLQkNCgCivQoNCV0JvQmNCLINCg0JDQlNCY0J3QmtCQCivQoNCV0JvQmNCLINCh0JDQktCQCivQoNCV0JvQmNCLINCh0JvQkNCS0J7QidCj0JEKK9Cg0JXQm9CY0Isg0KHQntCk0JjQiNCQCivQoNCV0JvQmNCLINCh0J7QpNCY0IjQkAor0KDQldCb0JjQiyDQodCf0J7QnNCV0J3QmtCQINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQoNCV0JvQmNCLINCh0KDQldCi0JAKK9Cg0JXQidCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0JXQidCY0Isg0ILQo9Cg0JjQptCQCivQoNCV0InQmNCLINCC0KPQoNCeCivQoNCV0InQmNCLINCR0J7QltCY0JTQkNCgCivQoNCV0InQmNCLINCU0JDQnNCI0JDQndCa0JAKK9Cg0JXQidCY0Isg0JTQkNCd0JjQm9CeCivQoNCV0InQmNCLINCI0J7QktCQ0J0KK9Cg0JXQidCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0JXQidCY0Isg0JzQkNCg0JAKK9Cg0JXQidCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0JXQidCY0Isg0KDQntCc0JDQnQor0KDQldCJ0JjQiyDQodCb0JDQktCa0J4KK9Cg0JXQidCY0Isg0KHQnNCY0InQkAor0KDQldCJ0JjQiyDQodCd0JXQltCQ0J3QkAor0KDQldCJ0JjQiyDQodCi0JXQktCQ0J0KK9Cg0JXQidCY0Isg0KHQotCV0JLQkAor0KDQldCJ0JjQiyDQl9Cb0JDQotCa0J4KK9Cg0JXQidCY0Isg0JfQntCg0JrQkAor0KDQldCJ0JjQnSDQlNCj0KjQkNCd0JrQkAor0KDQldCJ0JjQnSDQlNCj0KjQkNCdCivQoNCV0InQmNCdINCU0KPQqNCQ0J0KK9Cg0JXQidCY0J0g0JjQk9CK0JDQoiDQlNCgCivQoNCV0InQmNCdINCY0JvQntCd0JAKK9Cg0JXQidCY0J0g0JjQktCQ0J0KK9Cg0JXQidCY0J0g0JvQkNCX0JDQoAor0KDQldCJ0JjQnSDQm9CV0J/QntCh0JDQktCQCivQoNCV0InQmNCdINCc0JDQoNCY0KbQkAor0KDQldCJ0JjQnSDQnNCY0JvQkNCdCivQoNCV0InQmNCdINCc0JjQm9CQ0J0KK9Cg0JXQidCY0J0g0JzQmNCb0JjQptCQCivQoNCV0InQmNCdINCc0JjQm9CY0JLQntCICivQoNCV0InQmNCdINCc0JjQm9Ce0KgKK9Cg0JXQidCY0J0g0JzQmNCb0J7QqAor0KDQldCJ0JjQnSDQnNCY0JvQntCoCivQoNCV0InQmNCdINCc0JjQm9Ce0KgKK9Cg0JXQidCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Cg0JXQidCY0J0g0J3QkNCU0JAKK9Cg0JXQidCY0J0g0J/QoNCe0JrQntCf0JjQiNCVCivQoNCV0InQmNCdINCg0JDQlNCe0JLQkNCdCivQoNCV0InQmNCdINCh0JDQktCQCivQoNCV0InQmNCdINCh0JjQnNCQCivQoNCV0InQmNCdINCh0JvQntCR0J7QlNCQ0J0KK9Cg0JXQidCY0J0g0KHQotCV0JLQkNCdCivQoNCV0JvQntCi0JAg0KDQo9CU0J7Qm9CkCivQoNCV0JzQldCm0JrQmCDQlNCg0JDQk9Cj0KLQmNCdCivQoNCV0JzQldCm0JrQmCDQn9CV0KLQkNCgCivQoNCV0JzQldCb0Jgg0JDQndCi0J7QnQor0KDQldCc0JXQm9CYINCb0JDQodCb0J4KK9Cg0JXQnNCV0J3QkNCgINCU0KDQkNCT0KPQotCY0J0KK9Cg0JXQnNCV0KAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCV0JzQm9CY0J3Qk9CV0KAg0KDQntCR0JXQoNCiCivQoNCV0J3Qp9CQ0KAg0KjQkNCd0JTQntCgCivQoNCV0J3Qp9CQ0KAg0KLQmNCS0JDQlNCQ0KAKK9Cg0JXQndCn0JXQktCY0Isg0JzQmNCb0JDQnQor0KDQldCd0JTQo9Cb0JjQiyDQnNCQ0KDQmtCeCivQoNCV0J3QlNCj0JvQmNCLINCh0KLQntCI0JDQnQor0KDQldCf0KjQotCe0Jog0IjQntCW0JXQpAor0KDQldCf0JDQqNCYINCI0J7QodCY0J8KK9Cg0JXQn9CQ0KjQmCDQodCi0JXQktCQ0J0KK9Cg0JXQn9CQ0KYg0JbQo9CW0JDQndCQCivQoNCV0J/QkNCmINCC0J7QoNCC0JUKK9Cg0JXQn9CQ0KYg0JDQndCQCivQoNCV0J/QkNCmINCY0KHQkAor0KDQldCf0JDQpiDQiNCe0JLQkNCdCivQoNCV0J/QkNCmINCa0J7QktCY0InQmtCQCivQoNCV0J/QkNCmINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JXQn9CQ0KYg0J/QldCg0JrQmNCm0JAKK9Cg0JXQn9CQ0KYg0J/QldCi0JDQoAor0KDQldCf0JDQpiDQodCb0JDQktCa0J4KK9Cg0JXQn9CQ0KYg0KHQotCQ0J3QmNCo0JAKK9Cg0JXQn9CQ0KYg0JLQkNCh0JjQm9CY0IjQkAor0KDQldCf0JjQiyDQltCY0JLQkNCdCivQoNCV0J/QmNCLINCU0JDQndCY0KbQkAor0KDQldCf0JjQiyDQldCc0JjQmwor0KDQldCf0JjQiyDQk9CY0JfQldCb0JAKK9Cg0JXQn9CY0Isg0JjQktCQ0J0KK9Cg0JXQn9CY0Isg0JzQkNCg0JrQngor0KDQldCf0JjQiyDQnNCY0JvQldCd0JAKK9Cg0JXQn9CY0Isg0JzQmNCb0JrQkAor0KDQldCf0JjQiyDQktCV0KDQmNCm0JAKK9Cg0JXQn9CY0Isg0JfQntCg0JDQnQor0KDQldCh0JDQnSDQkNCd0JAKK9Cg0JXQodCQ0J3QntCS0JjQiyDQkNCd0JrQkAor0KDQldCh0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KDQldCh0JDQndCe0JLQmNCLINCJ0KPQkdCeCivQoNCV0KHQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9Cg0JXQodCQ0J3QntCS0JjQiyDQn9CV0KDQngor0KDQldCh0JzQkNCdINCX0JTQoNCQ0JLQmtCeCivQoNCV0KHQo9Cb0J7QktCh0JrQmCDQodCi0J7QiNCQ0J0KK9Cg0JXQoyDQm9CQ0JLQmNCd0JXQmwor0KDQldCS0JXQoSDQkNCd0JTQoNCY0IjQkAor0KDQldCS0JjQlCDQmtCQ0KLQkNCg0JjQndCQCivQoNCV0JfQkNCd0KbQntCSINCa0JDQotCY0KbQkAor0KDQldCX0JXQpiDQkNCd0KLQntCdCivQoNCV0JfQndCY0KfQldCaINCa0JDQoNCb0J4KK9Cg0JjQltCQ0IrQmCDQmNCg0JXQndCQCivQoNCY0ILQmNCn0JrQmCDQgtCe0JrQkAor0KDQmNCC0JjQp9Ca0Jgg0ILQntCg0ILQlQor0KDQmNCC0JjQp9Ca0Jgg0JzQmNCb0JDQndCa0JAKK9Cg0JjQgtCY0KfQmtCYINCc0JjQm9CQ0J0KK9Cg0JjQgtCY0KfQmtCYINCh0J/QntCc0JXQndCa0JAKK9Cg0JjQgtCY0Jot0JPQoNCj0IjQmNCLINCn0JXQlNCe0JzQmNCgCivQoNCY0ILQmNCaLdCT0KDQo9CI0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQoNCY0ILQmNCaLdCT0KDQo9CI0JjQiyDQktCV0JvQmNCc0JjQoAor0KDQmNCR0JDQoCDQqNCQ0J3QlNCe0KAKK9Cg0JjQkdCQ0KAg0JHQldCb0JAg0JTQoAor0KDQmNCR0JDQoCDQmNCc0KDQlQor0KDQmNCR0JDQoCDQmtCQ0KLQmNCm0JAKK9Cg0JjQkdCQ0KDQldCS0JjQiyDQktCV0KDQkAor0KDQmNCR0JDQoNCe0JIg0JzQmNCg0J7QodCb0JDQkgor0KDQmNCR0JDQoNCe0JIg0KHQm9CQ0JLQmNCm0JAKK9Cg0JjQkdCY0Kcg0KDQo9CW0JAKK9Cg0JjQkdCY0Isg0KfQldCU0J4KK9Cg0JjQkdCY0Isg0JHQoNCQ0J3QmtCeCivQoNCY0JHQmNCLINCk0KDQkNCd0KYKK9Cg0JjQkdCY0Isg0IjQntCS0JDQnQor0KDQmNCR0JjQiyDQnNCY0KXQkNCI0JvQngor0KDQmNCR0JjQiyDQnNCY0JvQkNCdCivQoNCY0JHQmNCLINCf0JDQktCeCivQoNCY0JHQmNCLINCf0JXQotCQ0KAKK9Cg0JjQkdCY0Isg0KHQotCQ0J3QmtCeCivQoNCY0JHQmNCLINCX0J7QoNCY0KbQkAor0KDQmNCR0J7QktCY0Isg0JDQnNCQ0JvQmNCI0JAKK9Cg0JjQpiDQnNCY0KXQkNCJINCU0JjQn9CbINCe0JXQpgor0KDQmNCmINCg0KPQlNCe0JvQpAor0KDQmNCmINCS0JXQodCV0JvQmNCdCivQoNCY0KbQkCDQkNCd0JjQptCQCivQoNCY0KbQlSDQnNCQ0KDQk9CY0KLQkAor0KDQmNCT0J4g0ILQo9Cb0JAKK9Cg0JjQk9CeINCb0JDQodCb0J4KK9Cg0JjQpdCQ0Jog0J3QkNCd0JTQntCgCivQoNCY0KXQotCQ0KDQldCmINCa0JDQotCQ0KDQmNCd0JAKK9Cg0JjQiNCQ0JLQldCmINCY0JLQkNCdCivQoNCY0JrQldCgINCX0JLQntCd0JjQnNCY0KAKK9Cg0JjQmtCY0Isg0JbQldCJ0JrQngor0KDQmNCa0JjQiyDQlNCg0JDQk9CY0KbQkAor0KDQmNCa0JjQiyDQnNCY0JvQkNCU0JjQnQor0KDQmNCa0JjQiyDQnNCY0JvQldCd0JrQngor0KDQmNCbINCf0JDQmwor0KDQmNCb0JDQmiDQnNCY0JvQntCc0JjQoAor0KDQmNCb0JrQlSDQoNCe0JHQldCg0KIKK9Cg0JjQnNCo0J3QkNCI0JTQldCgINCg0J7QkdCV0KDQogor0KDQmNCc0JDQpiDQiNCe0KHQmNCfCivQoNCY0JzQkNCdINCV0JPQntCdINCU0KAKK9Cg0JjQnNCQ0KAg0JvQldCe0J3QkAor0KDQmNCc0JDQoCDQktCb0JDQlNCY0JzQmNCgCivQoNCY0JzQodCa0Jgg0JbQkNCg0JrQngor0KDQmNCc0KHQmtCYINCW0JDQoNCa0J4KK9Cg0JjQnNCh0JrQmCDQltCQ0KDQmtCeCivQoNCY0JzQodCa0Jgg0JbQkNCg0JrQngor0KDQmNCc0KHQmtCYINCC0J7QmtCQCivQoNCY0JzQodCa0Jgg0JHQmNCh0JXQoNCa0JAKK9Cg0JjQnNCh0JrQmCDQkdCY0KHQldCg0JrQkAor0KDQmNCc0KHQmtCYINCR0KDQkNCd0JjQodCb0JDQkgor0KDQmNCc0KHQmtCYINCR0KDQkNCd0JrQkAor0KDQmNCc0KHQmtCYINCR0KDQkNCd0JrQngor0KDQmNCc0KHQmtCYINCI0JDQodCc0JjQndCQCivQoNCY0JzQodCa0Jgg0IjQldCb0JXQndCQCivQoNCY0JzQodCa0Jgg0JzQmNCb0JDQnQor0KDQmNCc0KHQmtCYINCc0JjQm9CY0KbQkAor0KDQmNCc0KHQmtCYINCd0JDQotCQ0JvQmNCI0JAKK9Cg0JjQnNCh0JrQmCDQndCe0JLQkNCaCivQoNCY0JzQodCa0Jgg0KHQkNCS0JAKK9Cg0JjQnNCh0JrQmCDQodCQ0JLQkAor0KDQmNCc0KHQmtCYINCh0JzQmNCJ0JAKK9Cg0JjQnNCh0JrQmCDQodCc0JjQidCQCivQoNCY0JzQodCa0Jgg0KHQotCV0JLQkNCdCivQoNCY0KEg0KjQkNCd0JTQntCgCivQoNCY0KEg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JjQoSDQlNCg0JDQk9CY0IrQkAor0KDQmNChINCU0KPQqNCa0J4KK9Cg0JjQoSDQk9CV0JfQkAor0KDQmNChINCd0JXQlNCV0InQmtCeCivQoNCY0KEg0KHQotCV0JLQkNCdCivQoNCY0KEg0KLQkNCK0JAKK9Cg0JjQoSDQl9CU0KDQkNCS0JrQngor0KDQmNCh0J7QktCY0Isg0JTQo9Co0JDQnQor0KDQmNCh0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Cg0JjQodCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQoNCY0KHQotCQINCW0JXQidCa0JAKK9Cg0JjQodCi0JDQndCe0JLQmNCLINCm0JLQldCi0JjQnQor0KDQmNCh0KLQkNCd0J7QktCY0Isg0KDQkNCU0JUKK9Cg0JjQodCi0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cg0JjQodCi0JDQndCe0JLQmNCLINCS0JXQoNCY0KbQkAor0KDQmNCh0KLQkNCd0J7QktCY0Isg0JLQntCI0JjQnNCY0KAKK9Cg0JjQodCi0JDQndCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCY0KHQotCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQoNCY0KHQotCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQoNCY0KHQotCY0Isg0ILQntCg0ILQlSDQlNCgINCb0JXQmtCQ0KAKK9Cg0JjQodCi0JjQiyDQgtCe0KDQgtCVCivQoNCY0KHQotCY0Isg0ILQntCg0ILQlQor0KDQmNCh0KLQmNCLINCC0J7QoNCC0JUKK9Cg0JjQodCi0JjQiyDQgtCj0IjQkAor0KDQmNCh0KLQmNCLINCC0KPQoNCC0JAKK9Cg0JjQodCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQmNCh0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCY0KHQotCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0JjQodCi0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KDQmNCh0KLQmNCLINCQ0JvQldCa0KHQkAor0KDQmNCh0KLQmNCLINCQ0J3QlNCg0JjQiNCQCivQoNCY0KHQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9Cg0JjQodCi0JjQiyDQkdCe0JbQmNCU0JDQoAor0KDQmNCh0KLQmNCLINCR0J7QoNCQCivQoNCY0KHQotCY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQmNCh0KLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KDQmNCh0KLQmNCLINCR0KDQkNCd0JrQngor0KDQmNCh0KLQmNCLINCm0JLQiNCV0KLQkNCd0JrQkAor0KDQmNCh0KLQmNCLINCU0JDQndCY0JvQngor0KDQmNCh0KLQmNCLINCU0JDQoNCY0J3QmtCQCivQoNCY0KHQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQoNCY0KHQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQoNCY0KHQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQoNCY0KHQotCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQoNCY0KHQotCY0Isg0JTQoNCQ0JPQkNCdCivQoNCY0KHQotCY0Isg0JTQoNCQ0JPQkNCdCivQoNCY0KHQotCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Cg0JjQodCi0JjQiyDQlNCg0JDQk9CY0KbQkAor0KDQmNCh0KLQmNCLINCU0KDQkNCT0J7QiNCb0JAKK9Cg0JjQodCi0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQoNCY0KHQotCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KDQmNCh0KLQmNCLINCU0KPQqNCQ0J0g0JTQoAor0KDQmNCh0KLQmNCLINCU0KPQqNCQ0J0KK9Cg0JjQodCi0JjQiyDQlNCj0KjQkNCdCivQoNCY0KHQotCY0Isg0JTQo9Co0JDQnQor0KDQmNCh0KLQmNCLINCU0KPQqNCQ0J0KK9Cg0JjQodCi0JjQiyDQk9CQ0JLQoNCY0JvQngor0KDQmNCh0KLQmNCLINCY0KHQmNCU0J7QoAor0KDQmNCh0KLQmNCLINCI0JDQodCc0JjQndCQCivQoNCY0KHQotCY0Isg0IjQldCb0JXQndCQCivQoNCY0KHQotCY0Isg0IjQldCb0JXQndCQCivQoNCY0KHQotCY0Isg0IjQldCg0JXQnNCY0IjQkAor0KDQmNCh0KLQmNCLINCI0J7QktCQ0J0g0JTQoAor0KDQmNCh0KLQmNCLINCI0J7QktCQ0J0g0JTQoAor0KDQmNCh0KLQmNCLINCI0J7QktCQ0J0KK9Cg0JjQodCi0JjQiyDQmtCh0JXQndCY0IjQkAor0KDQmNCh0KLQmNCLINCb0JDQkdCj0JQg0JTQoCDQm9CV0JrQkNCgCivQoNCY0KHQotCY0Isg0JvQkNCX0JDQoAor0KDQmNCh0KLQmNCLINCJ0JjQidCQ0J3QkAor0KDQmNCh0KLQmNCLINCJ0JjQidCQ0J3QkAor0KDQmNCh0KLQmNCLINCJ0KPQkdCY0KbQkAor0KDQmNCh0KLQmNCLINCJ0KPQkdCY0KbQkAor0KDQmNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0KDQmNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0KDQmNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0KDQmNCh0KLQmNCLINCc0JDQoNCY0IjQkAor0KDQmNCh0KLQmNCLINCc0JDQoNCY0IjQldCd0JrQkAor0KDQmNCh0KLQmNCLINCc0JDQoNCa0J4KK9Cg0JjQodCi0JjQiyDQnNCY0KXQkNCI0JvQngor0KDQmNCh0KLQmNCLINCc0JjQm9CQ0J3QmtCQCivQoNCY0KHQotCY0Isg0JzQmNCb0JDQnQor0KDQmNCh0KLQmNCLINCc0JjQm9CQ0J0KK9Cg0JjQodCi0JjQiyDQnNCY0JvQkNCdCivQoNCY0KHQotCY0Isg0JzQmNCb0JDQnQor0KDQmNCh0KLQmNCLINCc0JjQm9CQ0J0KK9Cg0JjQodCi0JjQiyDQnNCY0JvQldCi0JAKK9Cg0JjQodCi0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQoNCY0KHQotCY0Isg0JzQmNCb0JrQkAor0KDQmNCh0KLQmNCLINCc0JjQm9Ce0KgKK9Cg0JjQodCi0JjQiyDQnNCY0JvQntCoCivQoNCY0KHQotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0JjQodCi0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQmNCh0KLQmNCLINCc0JjQm9Cj0J0KK9Cg0JjQodCi0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KDQmNCh0KLQmNCLINCc0JjQntCU0KDQkNCTCivQoNCY0KHQotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Cg0JjQodCi0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCY0KHQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQmNCh0KLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Cg0JjQodCi0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQoNCY0KHQotCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQmNCh0KLQmNCLINCc0JvQkNCU0JXQnQor0KDQmNCh0KLQmNCLINCd0JDQlNCQCivQoNCY0KHQotCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0KDQmNCh0KLQmNCLINCd0JXQk9Ce0JLQkNCdCivQoNCY0KHQotCY0Isg0J3QldCh0KLQntCgCivQoNCY0KHQotCY0Isg0J3QmNCa0J7Qm9CQCivQoNCY0KHQotCY0Isg0J3QmNCa0J7Qm9CQCivQoNCY0KHQotCY0Isg0J3QntCS0JjQptCQCivQoNCY0KHQotCY0Isg0J7Qm9CT0JAKK9Cg0JjQodCi0JjQiyDQn9CQ0JLQm9CVCivQoNCY0KHQotCY0Isg0J/QldCg0JAKK9Cg0JjQodCi0JjQiyDQn9CV0KLQkNCgCivQoNCY0KHQotCY0Ist0J/QntCf0J7QktCY0Isg0JzQmNCb0JjQptCQCivQoNCY0KHQotCY0Isg0KDQkNCU0JjQodCQ0JIKK9Cg0JjQodCi0JjQiyDQoNCQ0JjQodCQCivQoNCY0KHQotCY0Isg0KDQntCU0J7QidCj0JEg0JTQoAor0KDQmNCh0KLQmNCLINCh0JDQktCQCivQoNCY0KHQotCY0Isg0KHQkNCS0JAKK9Cg0JjQodCi0JjQiyDQodCQ0JLQngor0KDQmNCh0KLQmNCLINCh0JvQkNCC0JDQnQor0KDQmNCh0KLQmNCLINCh0JvQkNCS0JjQptCQCivQoNCY0KHQotCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Cg0JjQodCi0JjQiyDQodCb0JDQktCa0J4KK9Cg0JjQodCi0JjQiyDQodCf0J7QnNCV0J3QmtCQCivQoNCY0KHQotCY0Isg0KHQotCQ0J3QmNCo0JAKK9Cg0JjQodCi0JjQiyDQodCi0JDQndCe0IjQlSDQlNCgCivQoNCY0KHQotCY0Isg0KHQotCV0JLQkNCdCivQoNCY0KHQotCY0Isg0KHQotCV0JLQkNCdCivQoNCY0KHQotCY0Isg0KHQotCV0JLQkNCdCivQoNCY0KHQotCY0Isg0KHQotCV0JLQkNCdCivQoNCY0KHQotCY0Isg0KHQotCV0JLQmNCm0JAKK9Cg0JjQodCi0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Cg0JjQodCi0JjQiyDQotCV0JzQldCJ0JrQngor0KDQmNCh0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Cg0JjQodCi0JjQiyDQktCV0KDQmNCm0JAKK9Cg0JjQodCi0JjQiyDQktCY0KLQntCc0JjQoAor0KDQmNCh0KLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cg0JjQodCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQoNCY0KHQotCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQmNCh0KLQmNCLINCS0J7QiNCY0J0KK9Cg0JjQodCi0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQoNCY0KHQotCY0Isg0JfQkNCT0J7QoNCa0JAKK9Cg0JjQodCi0JjQiyDQl9CU0KDQkNCS0JrQngor0KDQmNCh0KLQmNCLINCX0J7QoNCQ0J0KK9Cg0JjQodCi0JjQiyDQl9Ce0KDQkNCdCivQoNCY0KHQotCY0J0g0IjQntCS0JDQnQor0KDQmNCh0KLQmNCdINCc0JjQntCU0KDQkNCTCivQoNCY0KHQotCY0J0g0JzQmNCe0JTQoNCQ0JMKK9Cg0JjQodCi0JjQktCe0IjQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KDQmNCh0KLQmNCS0J7QiNCV0JLQmNCLINCQ0J3QmNCm0JAKK9Cg0JjQodCi0JjQktCe0IjQldCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0KDQmNCh0KLQmNCS0J7QiNCV0JLQmNCLINCY0JPQitCQ0KIKK9Cg0JjQodCi0JjQktCe0IjQldCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KDQmNCh0KLQmNCS0J7QiNCV0JLQmNCLINCg0JDQotCe0JzQmNCgCivQoNCY0KHQotCY0JLQntCI0JXQktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0KDQmNCh0KLQmNCS0J7QiNCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCY0KHQotCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQoNCY0KHQotCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQoNCY0KHQotCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Cg0JjQodCi0J7QktCY0Isg0KDQkNCi0JrQngor0KDQmNCh0KLQntCS0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCY0KHQotCe0JLQodCa0Jgg0JrQntCh0KLQkAor0KDQmNCh0KLQntCS0KHQmtCYINCJ0JjQidCQ0J3QkAor0KDQmNCh0KLQntCS0KHQmtCYINCJ0JjQidCQ0J3QkAor0KDQmNCh0KLQntCS0KHQmtCYINCJ0KPQkdCeCivQoNCY0KHQotCe0JLQodCa0Jgg0KHQmNCc0JXQntCdCivQoNCY0KLQldCgINCQ0J3QmtCY0KbQkAor0KDQmNCi0JXQoCDQkNCd0KLQntCdCivQoNCY0KLQldCgINCk0KDQkNCK0JAKK9Cg0JjQotCV0KAg0IjQntCW0JXQpAor0KDQmNCi0JXQoCDQm9Cj0JTQktCY0JMKK9Cg0JjQotCV0KAg0J3QkNCU0JAKK9Cg0JjQotCe0KYg0JPQldCX0JAKK9Cg0JjQotCi0JXQoCDQqNCQ0J3QlNCe0KAKK9Cg0JjQktCY0Isg0JjQktCeCivQoNCY0JfQndCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Cg0JjQl9Cd0JjQiyDQktCV0InQmtCeCivQoNCY0JfQndCY0Isg0JLQldCJ0JrQngor0KDQmNCX0J7QktCh0JrQmCDQlNCg0JDQk9CeCivQoNCY0JfQktCQ0J0g0KjQo9Ca0KDQmAor0KDQmNCX0JLQkNCd0J7QktCY0Isg0KHQkNCU0JjQmgor0KDQnNCj0Kgg0JfQntCg0JjQptCQCivQoNCd0JjQiyDQnNCY0KXQkNCY0JvQngor0KDQitCQ0Jog0JTQkNCd0JjQptCQCivQoNCK0JDQmiDQodCi0JDQndCa0J4KK9Cg0J7QqNCY0J0g0JrQodCV0J3QmNCI0JAKK9Cg0J7QqNCY0J0g0JfQntCg0JrQngor0KDQntCo0KMg0JrQntCh0KLQkAor0KDQntCo0KPQiSDQltCY0JLQkNCdCivQoNCe0KjQo9CJINCW0JjQktCQCivQoNCe0KjQo9CJINCQ0J3QgtCV0JvQmtCQCivQoNCe0KjQo9CJINCV0JzQmNCbCivQoNCe0KjQo9CJINCb0JDQl9CQ0KAKK9Cg0J7QqNCj0Ikg0JzQmNCb0JDQndCQCivQoNCe0KjQo9CJINCc0JjQm9Ce0KDQkNCUCivQoNCe0KjQo9CJINCg0JDQlNCe0JLQkNCdCivQoNCe0KjQo9CJINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0J7QqNCj0Ikg0JfQntCg0JDQnQor0KDQntCo0KPQidCQINCS0JDQodCQCivQoNCe0KjQo9Cb0J7QkiDQodCi0JDQlNCe0IjQlQor0KDQntCW0JAg0JHQldCb0JAKK9Cg0J7QltCQINCk0JXQoNCV0J3Qpgor0KDQntCW0JAg0IjQkNCd0J7QqAor0KDQntCW0JAg0IjQntCS0JDQnQor0KDQntCW0JAg0JzQmNCg0JrQngor0KDQntCW0JDQndCa0J7QktCY0Isg0JjQktCQ0J0KK9Cg0J7QgtCQ0Jog0KTQoNCQ0IrQkAor0KDQntCC0JXQndCa0J7QkiDQltCY0JLQntCI0JjQnQor0KDQntCC0JXQndCa0J7QkiDQgtCj0KDQkAor0KDQntCC0JXQndCa0J7QkiDQnNCY0JvQntCoCivQoNCe0JHQntCi0JjQiyDQkNCd0JAKK9Cg0J7QkdCe0KLQmNCLINCi0JXQoNCV0JfQkAor0KDQntCUINCU0JDQndCY0KbQkAor0KDQntCU0JjQiyDQp9CV0JTQntCc0JjQoAor0KDQntCU0JjQiyDQp9CV0JTQntCc0JjQoAor0KDQntCU0JjQiyDQqNCf0JjQoNCeCivQoNCe0JTQmNCLINCC0J7QoNCC0JUKK9Cg0J7QlNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0J7QlNCY0Isg0JDQndCU0KDQmNCI0JAKK9Cg0J7QlNCY0Isg0JHQntCW0J4KK9Cg0J7QlNCY0Isg0JHQntCW0J4KK9Cg0J7QlNCY0Isg0JHQntCT0JTQkNCdCivQoNCe0JTQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Cg0J7QlNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KDQntCU0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0J7QlNCY0Isg0JTQkNCd0JjQptCQCivQoNCe0JTQmNCLINCU0KDQkNCT0JDQnQor0KDQntCU0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQoNCe0JTQmNCLINCU0KPQqNCQ0J0KK9Cg0J7QlNCY0Isg0JTQo9Co0JDQnQor0KDQntCU0JjQiyDQlNCj0KjQkNCdCivQoNCe0JTQmNCLINCU0KPQqNCQ0J0KK9Cg0J7QlNCY0Isg0JPQntCI0JrQngor0KDQntCU0JjQiyDQk9Ce0IjQmtCeCivQoNCe0JTQmNCLINCT0J7QiNCa0J4KK9Cg0J7QlNCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cg0J7QlNCY0Isg0IjQntCS0J4KK9Cg0J7QlNCY0Isg0JvQldCf0JAKK9Cg0J7QlNCY0Isg0InQmNCJ0JDQndCQCivQoNCe0JTQmNCLINCc0JDQndCe0IjQm9CeCivQoNCe0JTQmNCLINCc0JjQi9CQCivQoNCe0JTQmNCLINCc0JjQi9CeCivQoNCe0JTQmNCLINCc0JjQm9CQ0J0KK9Cg0J7QlNCY0Isg0JzQmNCb0JXQndCQCivQoNCe0JTQmNCLINCc0JjQm9CY0KbQkAor0KDQntCU0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0J7QlNCY0Isg0JzQmNCb0JrQkAor0KDQntCU0JjQiyDQnNCY0JvQntCoCivQoNCe0JTQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCe0JTQmNCLINCc0JjQoNCa0J4KK9Cg0J7QlNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KDQntCU0JjQiyDQndCQ0KLQkNCb0JjQiNCQCivQoNCe0JTQmNCLINCd0JXQgtCeCivQoNCe0JTQmNCLINCd0JXQlNCV0InQmtCeCivQoNCe0JTQmNCLINCd0JjQmtCe0JvQkAor0KDQntCU0JjQiyDQndCY0JrQntCb0JAKK9Cg0J7QlNCY0Isg0J3QmNCa0J7Qm9CQCivQoNCe0JTQmNCLINCd0JjQmtCe0JvQkAor0KDQntCU0JjQiyDQntCb0JPQkAor0KDQntCU0JjQiyDQn9CV0KLQkNCgINCU0JjQn9CbINCY0J3Qkwor0KDQntCU0JjQiyDQn9CV0KLQkNCgCivQoNCe0JTQmNCLINCf0JXQotCg0JAKK9Cg0J7QlNCY0Isg0KDQkNCU0JUKK9Cg0J7QlNCY0Isg0KDQkNCd0JrQngor0KDQntCU0JjQiyDQodCb0JDQktCa0J4KK9Cg0J7QlNCY0Isg0KHQnNCY0InQkAor0KDQntCU0JjQiyDQodCg0JXQotCV0J0KK9Cg0J7QlNCY0Isg0KHQotCQ0J3QmtCeCivQoNCe0JTQmNCLINCh0KLQldCS0JDQnQor0KDQntCU0JjQiyDQodCj0JfQkNCd0JAKK9Cg0J7QlNCY0Isg0KHQo9CX0JDQndCQCivQoNCe0JTQmNCLINCh0JLQldCi0JrQngor0KDQntCU0JjQiy3QotCe0JzQidCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KDQntCU0JjQiyDQktCV0KDQmNCm0JAKK9Cg0J7QlNCY0Isg0JfQntCg0JDQnQor0KDQntCT0JDQpyDQodCS0JXQotCb0JDQndCQCivQoNCe0JPQkNCnINCh0JLQldCi0J7Ql9CQ0KAKK9Cg0J7Qk9CQ0KfQldCS0JjQiyDQntCR0KDQkNCUCivQoNCe0JPQkNCJ0KHQmtCYINCI0JXQm9CV0J3QkAor0KDQntCT0JDQm9CeINCQ0J3QotCe0J0KK9Cg0J7Qk9CQ0J0g0KHQktCV0KLQntCX0JDQoAor0KDQntCT0JDQndCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Cg0J7Qk9CQ0J3QntCS0JjQiyDQm9Cj0JrQkAor0KDQntCT0JDQndCe0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQoNCe0JPQkNCd0J7QktCY0Isg0J3QkNCU0JAKK9Cg0J7Qk9CQ0J3QntCS0JjQiyDQndCe0JLQkNCaCivQoNCe0JPQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQntCT0JDQndCe0JLQmNCLINCh0KLQldCS0J4KK9Cg0J7Qk9CQ0J3QntCS0JjQiyDQotCQ0IrQkAor0KDQntCT0JDQndCe0JLQmNCLINCS0JXQm9CY0JfQkNCgCivQoNCe0JPQkNCS0JDQpiDQnNCY0JvQkNCdCivQoNCe0JPQmNCLINCQ0JvQldCa0KHQkAor0KDQntCT0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQntCT0JjQiyDQodCQ0JLQkAor0KDQntCT0JjQiyDQktCV0InQmtCeCivQoNCe0JPQmNCLINCS0JXQodCV0JvQmNCdCivQoNCe0JPQmNCLINCS0JXQodCd0JAKK9Cg0J7Qk9CY0Isg0JfQntCg0JDQnQor0KDQntCT0JvQmNCLINCY0JLQkNCdCivQoNCe0JPQm9CY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0J7Qk9Cb0JjQiyDQnNCY0JvQkNCdCivQoNCe0JPQm9CY0Isg0JLQldCh0J3QkAor0KDQntCT0JvQmNCLINCS0JXQodCd0JAKK9Cg0J7Qk9Ce0JbQkNCg0KHQmtCYINCh0KLQldCS0JDQndCa0JAKK9Cg0J7Qk9Cj0JvQmNCLINCI0JXQm9CV0J3QkAor0KDQntCT0KPQidCQINCC0J7QoNCC0JUKK9Cg0J7Qk9Cj0InQkCDQmNCb0JjQiNCQCivQoNCe0JPQo9CJ0JAg0IjQntCS0JDQnQor0KDQntCT0KPQidCQINCd0JjQmtCe0JvQkAor0KDQntCT0KPQidCQINCf0JDQktCb0JUg0JTQoAor0KDQntCT0KPQidCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cg0J7Qk9Cj0InQmNCLINCd0JXQlNCV0InQmtCeCivQoNCe0JPQo9CJ0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KDQntCT0KPQidCY0Isg0JfQlNCg0JDQktCa0J4KK9Cg0J7QiNCa0JAg0JDQndCU0KDQldCICivQoNCe0IjQmtCQINCQ0J3QlNCg0JXQiAor0KDQntCI0J3QmNCaINCJ0KPQkdCe0JzQmNCgCivQoNCe0JrQkCDQltCj0JbQkNCd0JAKK9Cg0J7QmtCQINCI0JDQndCe0KgKK9Cg0J7QmtCQINCS0JDQm9CV0KDQmNCI0JAKK9Cg0J7QmtCQ0Jgg0J/QldCi0JDQoAor0KDQntCa0JjQiyDQlNCj0KjQkNCdCivQoNCe0JrQmNCLINCc0JjQm9CV0J3QmtCeCivQoNCe0JrQm9CY0KbQldCgINCk0KDQkNCK0JAKK9Cg0J7QmtCb0JjQptCV0KAg0IjQntCh0JjQnwor0KDQntCa0J3QmNCLINCI0KPQm9Ca0JjQptCQCivQoNCe0JrQndCY0Isg0JzQmNCb0JXQndCa0J4KK9Cg0J7QmtCd0JjQiyDQnNCe0JzQp9CY0JvQngor0KDQntCa0KHQkNCd0JTQmNCLINCQ0JTQkNCcCivQoNCe0JrQodCQ0J3QlNCY0Isg0JzQmNCb0JDQnQor0KDQntCa0KHQkNCd0JTQmNCLINCh0JjQnNCQCivQoNCe0JrQodCQ0J3QlNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQntCa0KHQkNCd0JTQmNCLINCS0JvQkNCU0J4KK9Cg0J7QmtCh0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQoNCe0JrQktCY0Isg0JHQntCT0JTQkNCdCivQoNCe0JrQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCe0JrQktCY0Isg0JTQo9Co0JDQnQor0KDQntCa0JLQmNCLINCT0J7QiNCa0J4KK9Cg0J7QmtCS0JjQiyDQm9CQ0JfQkNCgCivQoNCe0JrQktCY0Isg0JzQkNCg0JrQngor0KDQntCa0JLQmNCLINCc0JjQm9CQ0J0KK9Cg0J7QmtCS0JjQiyDQnNCY0JvQmNCm0JAKK9Cg0J7QmtCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQntCa0JLQmNCLINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQn9Ce0JvQmNCi0JjQmtCe0JvQntCTCivQoNCe0JrQktCY0Isg0J7QnNCY0InQmtCeCivQoNCe0JrQktCY0Isg0KDQkNCU0JjQktCe0IgKK9Cg0J7QmtCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KDQntCa0JLQmNCLINCg0JDQndCa0J4KK9Cg0J7QmtCS0JjQiyDQodCY0J3QmNCo0JAKK9Cg0J7QmtCS0JjQiyDQktCV0KHQldCb0JrQngor0KDQntCa0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQoNCe0JvQkNCd0JQg0KLQntCc0JjQodCb0JDQkgor0KDQntCb0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Cg0J7Qm9Ce0JLQmNCLINCe0JvQk9CQCivQoNCe0Jwg0JHQoNCQ0J3QmtCQCivQoNCe0JzQp9CV0JIg0JzQmNCg0J7QodCb0JDQkgor0KDQntCc0JDQnSDQiNCV0JvQldCd0JAKK9Cg0J7QnNCQ0J0g0InQo9CR0JjQptCQCivQoNCe0JzQkNCdINCc0JjQndCV0JAKK9Cg0J7QnNCQ0J0g0JzQmNCg0J7QnQor0KDQntCc0JDQnSDQoNCe0JzQmtCeCivQoNCe0JzQkNCd0JTQmNCLINCQ0J3QmtCY0KbQkAor0KDQntCc0JDQndCU0JjQiyDQiNCV0JvQldCd0JAKK9Cg0J7QnNCQ0J3QlNCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KDQntCc0JDQndCV0JvQmCDQk9CY0J3Qngor0KDQntCc0JDQndCY0Isg0JTQo9Co0JDQnQor0KDQntCc0JDQndCY0Isg0JXQoNCW0JXQkdCV0KIKK9Cg0J7QnNCQ0J3QmNCLINCI0J7QpjAKK9Cg0J7QnNCQ0J3QmNCLINCc0JDQoNCY0IjQkAor0KDQntCc0JDQndCa0JjQkiDQnNCY0KXQkNCI0JvQngor0KDQntCc0JDQndCe0JIg0IjQntCh0JjQnwor0KDQntCc0JDQndCe0JIg0KHQndCV0JbQkNCd0JAKK9Cg0J7QnNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQoNCe0JzQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0KDQntCc0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQoNCe0JzQkNCd0J7QktCY0Isg0JjQm9CY0J3QmtCQCivQoNCe0JzQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KDQntCc0JDQndCe0JLQmNCLINCd0JDQlNCQCivQoNCe0JzQkNChINCI0J7QodCY0J8KK9Cg0J7QnNCY0Isg0JXQotCQCivQoNCe0JzQmNCLINCI0JDQndCa0J4KK9Cg0J7QnNCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0J7QnNCY0Isg0InQo9CR0J7QnNCY0KAKK9Cg0J7QnNCY0Isg0JzQm9CQ0JTQldCdCivQoNCe0JzQmNCLINCd0JXQndCQ0JQKK9Cg0J7QnNCY0Isg0J/QkNCS0JvQlQor0KDQntCc0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KDQntCc0J7QlNCQINCY0KjQotCS0JDQnQor0KDQntCc0J7QlNCQINCa0JDQoNCb0J4KK9Cg0J7QnNCe0JTQkCDQnNCQ0KDQmNCI0JAKK9Cg0J7QndCn0JXQm9CYINCa0JDQotCY0KbQkAor0KDQntCd0KfQldCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Cg0J7QndCn0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQoNCe0J3Qp9CV0JLQmNCLINCY0JrQntCd0JjQiNCQCivQoNCe0J3Qp9CV0JLQmNCLINCa0J7QodCi0JAKK9Cg0J7QndCn0JXQktCY0Isg0JzQmNCb0JUKK9Cg0J7QndCn0JXQktCY0Isg0J3QkNCU0JAKK9Cg0J7QndCn0JXQktCY0Isg0J7QkdCg0JDQlAor0KDQntCd0KfQldCS0JjQiyDQn9CV0KLQkNCgCivQoNCe0J3Qp9CV0JLQmNCLINCf0JXQotCQ0KAKK9Cg0J7QndCn0JXQktCY0Isg0J/QldCi0JDQoAor0KDQntCd0KfQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQoNCe0J3Qp9CV0JLQmNCLINCh0JDQktCV0KLQkAor0KDQntCd0KfQldCS0JjQiyDQodCQ0JLQngor0KDQntCd0KfQldCS0JjQiyDQodCi0JDQndCQCivQoNCe0J3Qp9CV0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Cg0J7QndCn0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KDQntCd0KfQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Cg0J7QndCn0JXQktCY0Isg0KHQotCV0JLQkNCdCivQoNCe0J3Qp9CV0JLQmNCLINCS0JXQoNCQCivQoNCe0J3QkNCYINCc0JjQoNCa0J4g0JTQmNCf0Jsg0JjQndCTCivQoNCe0J3QotCeINCk0KDQkNCd0KbQmNCo0JrQkAor0KDQntCd0KLQniDQmNCb0J7QndCa0JAKK9Cg0J7QndCi0J4g0IjQkNCa0J7QkQor0KDQntCd0KLQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQoNCe0KAg0JTQldCh0JAKK9Cg0J7QoNCR0JDQpdCV0KAg0JzQkNCT0JTQntCb0J3QkAor0KDQntCh0JjQiyDQgtCj0KDQngor0KDQntCh0JjQiyDQkdCe0JPQlNCQ0J0KK9Cg0J7QodCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Cg0J7QodCY0Isg0JTQoNCQ0JPQkNCdCivQoNCe0KHQmNCLINCU0KDQkNCT0JDQnQor0KDQntCh0JjQiyDQlNCg0JDQk9CQ0J0KK9Cg0J7QodCY0Isg0JTQoNCQ0JPQkNCdCivQoNCe0KHQmNCLINCU0KPQqNCQ0J0KK9Cg0J7QodCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0KDQntCh0JjQiyDQmNCb0JjQiNCQCivQoNCe0KHQmNCLINCJ0JjQidCQ0J3QkAor0KDQntCh0JjQiyDQnNCY0JvQldCd0JAKK9Cg0J7QodCY0Isg0JzQmNCb0JjQptCQCivQoNCe0KHQmNCLINCc0JjQm9Ce0KDQkNCUCivQoNCe0KHQmNCLINCc0JjQntCU0KDQkNCTCivQoNCe0KHQmNCLINCd0JjQmtCe0JvQkAor0KDQntCh0JjQiyDQntCh0KLQntCI0JAKK9Cg0J7QodCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQntCh0JjQiyDQl9Ce0KDQkNCdCivQoNCe0KHQm9CQ0JLQidCV0JIg0JLQntCI0JjQodCb0JDQkgor0KDQntCh0J4g0JjQktCQ0J0KK9Cg0J7QodCeINCc0JDQoNCi0JAKK9Cg0J7QoiDQlNCV0JfQmNCU0JXQoAor0KDQntCiINCk0KDQkNCK0JAKK9Cg0J7QotCQ0KDQmNCjINCi0JjQkdCV0KDQmNCI0JUKK9Cg0J7QotCR0JDQoNCiINCS0JvQkNCU0JjQodCb0JDQkgor0KDQntCi0JjQnCDQmNCS0JDQnQor0KDQntCS0KfQkNCd0JjQnSDQldCj0ILQldCd0JjQiNCQCivQoNCe0JLQp9CQ0J3QmNCdINCj0JfQldCY0KAKK9Cg0J7QktCn0JDQndCY0J0g0JLQldCh0JXQm9CY0J0KK9Cg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQoNCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KDQntCS0J4g0JzQmNCl0JDQiQor0KDQntCX0JXQndCi0JDQmyDQlNCg0JDQk9CY0KbQkAor0KDQntCX0JXQndCi0JDQmyDQmtCQ0KDQm9CeCivQoNCe0JfQldCd0KLQkNCbINCc0JDQoNCi0J7QnQor0KDQntCX0JjQiyDQkNCd0KLQlQor0KDQntCX0JzQkNCg0JjQndCTINCY0KjQotCS0JDQnQor0KDQntCX0JzQmNCg0J7QkiDQlNCg0JDQk9CQ0J0KK9Cg0J7Ql9Cc0JjQoNCe0JIg0JzQmNCb0JXQndCa0J4KK9Cg0KPQqNCY0KLQmCDQkNCb0JjQiNCQCivQoNCj0KjQmtCeINCV0KDQltCV0JHQldCiCivQoNCj0KjQmtCj0KYg0ILQntCg0ILQlQor0KDQo9Co0JrQo9CmINCQ0KLQkNCd0JDQodCY0IjQlQor0KDQo9Co0JrQo9CmINCc0JDQoNCT0JDQoNCY0KLQkAor0KDQo9Co0JrQo9CmINCc0JDQoNCi0JAKK9Cg0KPQqNCa0KPQpiDQn9CQ0JLQm9CVCivQoNCj0KjQmtCj0KYg0KHQotCV0JLQkNCdCivQoNCj0KjQmtCj0KYg0KHQktCV0KLQmNCh0JvQkNCSCivQoNCj0KjQmtCj0KYg0JLQldCh0JXQm9CY0J0KK9Cg0KPQqNCa0KPQpiDQktCb0JDQlNCY0JzQmNCgCivQoNCj0JbQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KDQo9CW0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KDQo9CW0JjQp9CY0Isg0ILQntCg0ILQlQor0KDQo9CW0JjQp9CY0Isg0JHQntCo0JrQngor0KDQo9CW0JjQp9CY0Isg0JzQmNCb0JDQnQor0KDQo9CW0JjQp9CY0J0g0JTQkNCd0JjQptCQCivQoNCj0JbQmNCn0JjQnSDQoNCQ0JTQmNCS0J7QiAor0KDQo9CW0JjQp9Ca0JAg0ILQo9Cg0JAKK9Cg0KPQltCY0KfQmtCQINCg0KPQltCQCivQoNCj0JbQmNCLINCW0JDQoNCa0J4KK9Cg0KPQltCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0KPQltCY0Isg0JTQoNCQ0JbQkNCd0JAKK9Cg0KPQltCY0Isg0JTQo9Co0JDQnQor0KDQo9CW0JjQiyDQlNCj0KjQkNCdCivQoNCj0JbQmNCLINCU0KPQqNCQ0J0KK9Cg0KPQltCY0Isg0JXQnNCQCivQoNCj0JbQmNCLINCT0J7QoNCU0JDQndCQCivQoNCj0JbQmNCLINCY0JLQmNCm0JAKK9Cg0KPQltCY0Isg0IjQntCS0JDQnQor0KDQo9CW0JjQiyDQiNCe0JLQngor0KDQo9CW0JjQiyDQiNCj0JvQmtCQCivQoNCj0JbQmNCLINCa0KDQodCi0J4KK9Cg0KPQltCY0Isg0JzQkNCg0JjQiNCQCivQoNCj0JbQmNCLINCc0JDQoNCY0IjQkAor0KDQo9CW0JjQiyDQnNCY0JvQkNCdCivQoNCj0JbQmNCLINCc0JjQm9CQ0J0KK9Cg0KPQltCY0Isg0JzQmNCb0JjQktCe0IgKK9Cg0KPQltCY0Isg0JzQmNCg0JAKK9Cg0KPQltCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0KPQltCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cg0KPQltCY0Isg0JzQmNCg0JrQngor0KDQo9CW0JjQiyDQndCY0JrQntCb0JAKK9Cg0KPQltCY0Isg0J3QmNCa0J7Qm9CQCivQoNCj0JbQmNCLINCf0JDQktCQCivQoNCj0JbQmNCLINCf0JXQotCQ0KAKK9Cg0KPQltCY0Isg0KDQkNCU0JzQmNCb0JAKK9Cg0KPQltCY0Isg0KDQkNCU0J7QnNCY0KAKK9Cg0KPQltCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KDQo9CW0JjQiyDQodCc0JjQidCQ0J3QkAor0KDQo9CW0JjQiyDQodCi0JDQndCa0J4KK9Cg0KPQltCY0Ist0KHQotCQ0KDQmCDQktCV0KHQndCQCivQoNCj0JbQmNCLINCh0KLQiNCV0J/QkNCdCivQoNCj0JbQmNCLINCh0JLQldCi0J7Qm9CY0JoKK9Cg0KPQltCY0Isg0JLQldCJ0JrQngor0KDQo9CW0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0KDQo9CW0JjQiyDQl9Ce0KDQkNCdCivQoNCj0JbQmNCLINCX0J7QoNCQ0J0KK9Cg0KPQltCY0J0g0KfQldCU0J7QnNCY0KAKK9Cg0KPQltCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Cg0KPQltCd0JjQptCa0Jgg0JjQktCQ0J0KK9Cg0KPQgtCQINCd0JXQnNCQ0IrQkAor0KDQo9CC0JAg0JfQntCg0JDQnQor0KDQo9CC0JAg0JfQntCg0JDQnQor0KDQo9CR0JXQltCY0Isg0JzQmNCb0J7QktCQ0J0KK9Cg0KPQkdCV0JbQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Cg0KPQkdCY0J0g0JzQmNCb0JDQnQor0KDQo9CR0KPQqCDQkNCT0J3QldCX0JAKK9Cg0KPQkdCj0Kgg0IjQntCW0JXQpAor0KDQo9CU0JDQnSDQnNCQ0KDQmtCeCivQoNCj0JTQkNCdINCg0JDQlNCY0JLQntCI0JUKK9Cg0KPQlNCV0JYg0JjQm9CY0IjQkAor0KDQo9CU0JXQliDQnNCY0IvQngor0KDQo9CU0JXQliDQn9CV0KDQkAor0KDQo9CU0JXQmiDQiNCQ0KDQntCh0JvQkNCSCivQoNCj0JTQldCaINCd0JjQmtCe0JvQkAor0KDQo9CU0JXQmiDQndCY0JrQntCb0JAKK9Cg0KPQlNCY0Isg0JTQkNCg0JrQngor0KDQo9CU0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Cg0KPQlNCY0Isg0JTQoNCQ0JPQkNCdCivQoNCj0JTQmNCLINCU0KPQqNCQ0J0KK9Cg0KPQlNCY0Isg0JjQnNCg0JUKK9Cg0KPQlNCY0Isg0JjQktCQ0J0KK9Cg0KPQlNCY0Isg0JjQktCQ0J0KK9Cg0KPQlNCY0Isg0IjQntCh0JjQnwor0KDQo9CU0JjQiyDQm9CQ0JfQkNCgCivQoNCj0JTQmNCLINCc0JDQoNCa0J4KK9Cg0KPQlNCY0Isg0JzQkNCg0JrQngor0KDQo9CU0JjQiyDQnNCY0JvQmtCQCivQoNCj0JTQmNCLINCd0JXQlNCV0InQmtCeCivQoNCj0JTQmNCLINCd0JjQmtCe0JvQkAor0KDQo9CU0JjQiyDQn9CV0KDQkAor0KDQo9CU0JjQiyDQodCi0JXQktCQ0J0KK9Cg0KPQlNCY0Isg0KHQotCV0JLQmNCm0JAKK9Cg0KPQlNCY0Ist0JLQoNCQ0J3QmNCLINCd0JXQlNCV0InQmtCQCivQoNCj0JTQntCb0KQg0JrQm9CQ0IjQnQor0KDQo9CU0J7Qm9CkINCe0JvQk9CQCivQoNCj0JTQntCb0KQg0KHQn9CQ0KHQntCI0JUKK9Cg0KPQlNCe0JvQpCDQl9Ce0KDQkNCdCivQoNCj0JTQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Cg0KPQlNCe0JLQmNCLINCY0JvQmNCI0JAKK9Cg0KPQlNCe0JLQmNCLINCI0KPQk9Ce0KHQm9CQ0JIKK9Cg0KPQlNCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQoNCj0JTQntCS0JjQiyDQl9Ce0KDQkNCdCivQoNCj0KTQp9CV0KHQmtCYINCh0JvQntCR0J7QlNCQ0J0KK9Cg0KPQiNCV0JLQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Cg0KPQiNCV0JLQmNCLINCc0JjQm9CV0JLQkAor0KDQo9Ca0JDQktCY0J3QkC3QqNCb0JjQkdCQ0KAg0KXQldCg0JzQmNCd0JAKK9Cg0KPQmtCQ0JLQmNCd0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Cg0KPQmtCQ0JLQmNCd0JAg0JHQkNCg0JjQptCQCivQoNCj0JrQkNCS0JjQndCQINCU0JXQodCf0JjQndCQCivQoNCj0JrQkNCS0JjQndCQINCU0J7QkdCg0JjQm9CQCivQoNCj0JrQkNCS0JjQndCQINCU0KPQqNCQ0J0KK9Cg0KPQmtCQ0JLQmNCd0JAg0IjQo9Cg0JUKK9Cg0KPQmtCQ0JLQmNCd0JAg0JrQoNCV0KjQmNCc0JjQoAor0KDQo9Ca0JDQktCY0J3QkCDQidCj0JHQmNCm0JAKK9Cg0KPQmtCQ0JLQmNCd0JAg0JzQkNCg0JjQiNCQCivQoNCj0JrQkNCS0JjQndCQINCc0JjQm9Ca0JAKK9Cg0KPQmtCQ0JLQmNCd0JAg0KDQo9CU0J7Qm9CkCivQoNCj0JrQkNCS0JjQndCQINCg0KPQlNCe0JvQpAor0KDQo9Ca0JDQktCY0J3QkCDQodCi0JXQktCQ0J0KK9Cg0KPQmtCQ0JLQmNCd0JAg0JfQktCe0J3QmNCc0JjQoAor0KDQo9Cc0JDQnSDQnNCY0KXQkNCI0JvQngor0KDQo9Cd0JjQiyDQnNCQ0KDQmNCI0JAKK9Cg0KPQndCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cg0KPQitCQ0IjQmNCLINCY0JvQmNCI0JAKK9Cg0KPQitCQ0J3QmNCdINCC0J7QoNCC0JUKK9Cg0KPQitCQ0J3QmNCdINCS0JvQkNCU0JjQodCb0JDQkgor0KDQo9CK0JDQndCY0J0g0JLQntCI0J4KK9Cg0KPQitCY0Isg0JDQnNCQ0JvQmNCI0JAKK9Cg0KPQitCY0Isg0JTQoNCQ0JPQkNCdCivQoNCj0IrQmNCLINCU0KDQkNCT0JjQptCQCivQoNCj0IrQmNCLINCT0JDQktCg0JjQm9CeCivQoNCj0IrQmNCLINCT0J7QoNCQ0J0KK9Cg0KPQitCeINCI0J7QktCQ0J0KK9Cg0KPQndCi0JjQiyDQkdCe0KjQmtCeCivQoNCj0J/Qp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KDQo9Cf0JAg0JDQotCY0JvQkAor0KDQo9Cf0JDQoCDQkdCg0JDQndCY0KHQm9CQ0JIKK9Cg0KPQn9CQ0KAg0JXQoNCW0JXQkdCV0KIKK9Cg0KPQn9CY0Isg0JbQmNCS0JrQngor0KDQo9Cf0IrQkNCaINCR0KDQkNCd0JjQodCb0JDQkgor0KDQo9ChINCC0KPQoNCC0JjQndCa0JAKK9Cg0KPQoSDQlNCg0JDQk9CQ0J0KK9Cg0KPQoSDQmNCS0JDQndCa0JAKK9Cg0KPQoSDQiNCe0KHQmNCfCivQoNCj0KEg0JzQkNCg0JPQmNCi0JAKK9Cg0KPQoSDQnNCQ0KDQmNCI0JAKK9Cg0KPQoSDQnNCY0JvQntCh0JDQktCQCivQoNCj0KEg0KDQkNCU0JAKK9Cg0KPQoSDQodCb0JDQktCY0KbQkAor0KDQo9ChINCh0JzQmNCJ0JAKK9Cg0KPQoSDQodCS0JXQotCb0JDQndCQCivQoNCj0KEg0JLQldCg0JAKK9Cg0KPQoSDQktCj0JrQntCh0JDQktCQCivQoNCj0KHQmNCLINCQ0J3QlNCg0JjQiNCQCivQoNCj0KHQmtCQ0IjQmCDQodCb0JDQktCe0JzQmNCgCivQoNCj0KHQmtCYINCU0JjQnNCY0KLQoNCY0IjQlQor0KDQo9Ch0JrQmCDQm9CQ0JfQkNCgCivQoNCj0KHQmtCe0JLQodCa0Jgg0ILQntCg0ILQlQor0KDQo9Ch0JrQntCS0KHQmtCYINCU0KDQkNCT0JjQptCQCivQoNCj0KHQmtCe0JLQodCa0Jgg0JzQkNCT0JTQkNCb0JXQndCQCivQoNCj0KHQnNCY0KAg0KDQkNCU0JzQmNCb0JAKK9Cg0KPQodCc0JjQoNCe0JLQmNCLINCR0JjQidCQ0J3QkAor0KDQo9Ch0JzQmNCg0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQoNCj0KHQntCSINCW0JDQoNCa0J4KK9Cg0KPQodCe0JIg0JbQmNCS0JrQkAor0KDQo9Ch0J7QkiDQkdCg0JDQndCa0JAKK9Cg0KPQodCe0JIg0JHQoNCQ0J3QmtCeCivQoNCj0KHQntCSINCU0KDQldCd0JrQkAor0KDQo9Ch0J7QkiDQmtCQ0KLQmNCm0JAKK9Cg0KPQodCe0JIg0JrQntCh0KLQkAor0KDQo9Ch0J7QkiDQmtCg0JjQodCi0JjQndCQCivQoNCj0KHQntCSINCc0JDQoNCY0IjQkAor0KDQo9Ch0J7QkiDQnNCY0JvQkNCdCivQoNCj0KHQntCSINCc0JjQm9Ce0KDQkNCUCivQoNCj0KHQntCSINCd0JDQlNCQCivQoNCj0KHQntCSINCf0JDQktCb0JUKK9Cg0KPQodCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0KDQo9Ch0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQoNCj0KHQntCS0JDQnSDQltCY0JLQmNCm0JAKK9Cg0KPQodCe0JLQkNCdINCU0KDQkNCT0J7QidCj0JEKK9Cg0KPQodCe0JLQkNCdINCc0JjQm9CQ0J0KK9Cg0KPQodCe0JLQkNCdINCc0JjQm9CQ0J0KK9Cg0KPQodCi0JXQnNCQ0JPQmNCLINCV0KDQktCY0J0KK9Cg0KPQodCi0JXQnNCYINCo0JDQkdCQ0J0KK9Cg0KPQotCV0KjQmNCLINCI0J7QktCY0KbQkAor0KDQo9Ci0JjQiyDQnNCY0JvQntCg0JDQlAor0KDQo9Ci0J7QndCY0Isg0IjQo9Cb0JrQmNCm0JAKK9Cg0KPQotCe0J3QmNCLLdCa0J7Qm9CV0J3QlNCQINCS0JjQlNCe0KHQkNCS0JAKK9Cg0KPQotCe0J3QmNCLINCb0JDQl9CQ0KAKK9Cg0KPQotCe0J3QmNCLINCb0JDQl9CQ0KAKK9Cg0KPQotCe0IrQodCa0Jgg0JTQo9Co0JDQnQor0KDQo9Ci0J7QitCh0JrQmCDQiNCV0JvQmNCm0JAKK9Cg0KPQotCe0IrQodCa0Jgg0IjQntCS0JDQndCa0JAKK9Cg0KPQotCe0IrQodCa0Jgg0J3QkNCU0JAKK9Cg0KPQotCe0IrQodCa0Jgg0KHQm9Ce0JHQntCU0JDQnQor0KDQo9Ci0J7QitCh0JrQmCDQktCQ0KHQkAor0KDQo9Ci0J7QndCh0JrQmCDQgtCe0KDQgtCVCivQoNCj0KLQntCS0JjQiyDQkdCe0KjQmtCeCivQodCQ0KfQldCaINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JDQp9CV0KAg0KDQntCa0JgKK9Ch0JDQp9CY0Isg0JzQkNCg0JjQiNCQCivQodCQ0JHQkNCU0Jgg0JvQkNCh0JvQngor0KHQkNCR0JDQlNCYINCc0JjQoNCI0JDQndCQCivQodCQ0JHQkNCU0JrQkCDQqNCQ0J3QlNCe0KAKK9Ch0JDQkdCQ0JTQmtCQINCY0JvQntCd0JrQkAor0KHQkNCR0JDQlNCa0JAg0JLQkNCb0JXQoNCY0IjQkAor0KHQkNCR0JDQlNCe0Kgg0KjQkNCd0JTQntCgCivQodCQ0JHQkNCU0J7QqCDQgtCj0KDQkAor0KHQkNCR0JDQlNCe0Kgg0JjQktCQ0J0KK9Ch0JDQkdCQ0JTQntCoINCI0JDQndCa0J4KK9Ch0JDQkdCQ0JTQntCoINCI0JDQndCa0J4KK9Ch0JDQkdCQ0JTQntCoINCI0JDQndCa0J4KK9Ch0JDQkdCQ0JTQntCoINCI0J7QkNCa0JjQnAor0KHQkNCR0JDQlNCe0Kgg0InQo9CR0J7QnNCY0KAKK9Ch0JDQkdCQ0JTQntCoINCc0JjQqNCQCivQodCQ0JHQkNCU0J7QqCDQnNCY0KXQkNCI0JvQngor0KHQkNCR0JDQlNCe0Kgg0JzQmNCl0JDQiNCb0J4KK9Ch0JDQkdCQ0JTQntCoINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JDQkdCQ0JTQntCoINCf0JDQktCb0JjQndCQCivQodCQ0JHQkNCU0J7QqCDQoNCj0JbQmNCm0JAKK9Ch0JDQkdCQ0JTQntCoINCh0JvQkNCS0J3QkAor0KHQkNCR0JDQlNCe0Kgg0KHQm9CQ0JLQntCc0JjQoAor0KHQkNCR0JDQlNCe0Kgg0KHQoNCR0JjQodCb0JDQkgor0KHQkNCR0JDQlNCe0Kgg0KHQotCV0JLQkNCdCivQodCQ0JHQkNCU0J7QqCDQktCb0JDQlNCY0JzQmNCgCivQodCQ0JHQkNCU0J7QqCDQktCb0JDQlNCY0JzQmNCgCivQodCQ0JHQkNCU0J7QqCDQl9CU0JXQndCa0JAKK9Ch0JDQkdCQ0JTQo9CoINCI0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCQ0JHQkNCU0KPQqCDQodCi0JXQktCQ0J0KK9Ch0JDQkdCQ0KLQmtCQINCh0KLQldCS0JDQnQor0KHQkNCR0JDQotCj0Kgg0JHQntCg0JjQodCb0JDQkgor0KHQkNCR0JDQotCj0Kgg0JTQoNCQ0JPQntCJ0KPQkQor0KHQkNCR0JDQotCj0Kgg0KLQntCc0JjQodCb0JDQkgor0KHQkNCR0JvQmNCLINCR0KDQkNCd0JrQngor0KHQkNCR0InQkNCaINCU0KDQkNCT0JDQnQor0KHQkNCR0InQkNCaINCk0KDQkNCK0J4KK9Ch0JDQkdCJ0JDQmiDQnNCQ0KDQmNCI0JDQnQor0KHQkNCR0InQkNCa0J7QktCY0Isg0JXQodCQ0JQKK9Ch0JDQkdCJ0JDQoCDQgtCe0KDQgtCVCivQodCQ0JHQidCQ0KAg0JzQkNCd0J7QiNCb0J4KK9Ch0JDQkdCJ0JDQoCDQnNCY0JvQkNCdCivQodCQ0JHQidCQ0KAg0KLQldCe0JTQntCgCivQodCQ0JHQidCQ0KDQldCS0JjQiyDQktCV0KDQmNCm0JAKK9Ch0JDQkdCJ0JjQiyDQlNCQ0J3QmNCb0J4g0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Ch0JDQkdCJ0JjQiyDQlNCQ0KDQkAor0KHQkNCR0InQmNCLINCT0J7QoNCU0JDQndCQCivQodCQ0JHQidCe0JIg0JjQqNCi0JLQkNCdCivQodCQ0JHQidCe0JIg0JzQmNCb0JjQptCQCivQodCQ0JHQniDQqNCQ0J3QlNCe0KAKK9Ch0JDQkdCeINCo0JDQitCY0JrQkAor0KHQkNCR0J4g0ILQldCX0JUKK9Ch0JDQkdCeINCC0J7QoNCC0JUKK9Ch0JDQkdCeINCC0J7QoNCC0JUKK9Ch0JDQkdCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCQ0JHQniDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQkNCR0J4g0JDQndCQINCU0KAKK9Ch0JDQkdCeINCQ0J3QkAor0KHQkNCR0J4g0JDQndCQCivQodCQ0JHQniDQkNCd0JTQoNCQ0KgKK9Ch0JDQkdCeINCQ0J3QlNCg0JDQqAor0KHQkNCR0J4g0JDQndCY0KbQkAor0KHQkNCR0J4g0JDQndCY0KbQkAor0KHQkNCR0J4g0JHQldCg0KLQkNCb0JDQnQor0KHQkNCR0J4g0JTQoNCQ0JPQkNCdCivQodCQ0JHQniDQldCb0JjQl9CQ0JHQldCi0JAKK9Ch0JDQkdCeINCV0JzQmNCbCivQodCQ0JHQniDQldCg0JbQldCR0JXQogor0KHQkNCR0J4g0JXQoNCW0JXQkdCV0KIKK9Ch0JDQkdCeINCV0KDQndCVCivQodCQ0JHQniDQldCg0J3QlQor0KHQkNCR0J4g0JXQodCi0JXQoAor0KHQkNCR0J4g0KTQldCg0JXQndCmCivQodCQ0JHQniDQpNCV0KDQldCd0KYKK9Ch0JDQkdCeINCk0KDQkNCK0JAKK9Ch0JDQkdCeINCk0KDQkNCK0JAKK9Ch0JDQkdCeINCk0KDQkNCK0J4KK9Ch0JDQkdCeINCT0JDQqNCf0JDQoAor0KHQkNCR0J4g0JPQkNCR0J7QoAor0KHQkNCR0J4g0JPQldCg0JPQldCJCivQodCQ0JHQniDQk9CY0JfQldCb0JAKK9Ch0JDQkdCeINCT0J7QoNCU0JDQndCQCivQodCQ0JHQniDQpdCY0JvQlNCQCivQodCQ0JHQniDQmNCo0KLQktCQ0J0KK9Ch0JDQkdCeINCY0KjQotCS0JDQnQor0KHQkNCR0J4g0JjQqNCi0JLQkNCdCivQodCQ0JHQniDQmNCo0KLQktCQ0J0KK9Ch0JDQkdCeINCY0KjQotCS0JDQnQor0KHQkNCR0J4g0JjQqNCi0JLQkNCdCivQodCQ0JHQniDQmNCR0J7QidCa0JAKK9Ch0JDQkdCeINCY0JTQkAor0KHQkNCR0J4g0JjQm9Ce0J3QkAor0KHQkNCR0J4g0JjQnNCg0JUKK9Ch0JDQkdCeINCY0JzQoNCVCivQodCQ0JHQniDQmNCS0JDQnQor0KHQkNCR0J4g0IjQkNCd0JjQmtCQCivQodCQ0JHQniDQiNCQ0J3QntCoCivQodCQ0JHQniDQiNCe0KHQmNCfCivQodCQ0JHQniDQiNCe0KHQmNCfCivQodCQ0JHQniDQiNCe0KHQmNCfCivQodCQ0JHQniDQiNCe0KHQmNCfCivQodCQ0JHQniDQiNCe0KHQmNCfCivQodCQ0JHQniDQiNCe0KHQmNCfCivQodCQ0JHQniDQiNCj0JvQmNCQCivQodCQ0JHQniDQiNCj0JvQmNCI0JDQndCQCivQodCQ0JHQniDQmtCQ0KDQntCb0JjQndCQCivQodCQ0JHQniDQmtCQ0KLQmNCm0JAKK9Ch0JDQkdCeINCa0JDQotCY0KbQkAor0KHQkNCR0J4g0JvQkNCU0JjQodCb0JDQkgor0KHQkNCR0J4g0JvQkNCU0JjQodCb0JDQkgor0KHQkNCR0J4g0JvQkNCU0JjQodCb0JDQkgor0KHQkNCR0J4g0InQo9CR0J7QnNCY0KAKK9Ch0JDQkdCeINCc0JDQoNCY0IjQkAor0KHQkNCR0J4g0JzQkNCg0KLQkAor0KHQkNCR0J4g0JzQmNCl0JDQiNCb0J4KK9Ch0JDQkdCeINCc0JjQm9CY0KbQkAor0KHQkNCR0J4g0J3QmNCa0J7Qm9CQCivQodCQ0JHQniDQntCb0JjQktCV0KDQkAor0KHQkNCR0J4g0J/QkNCS0JvQlQor0KHQkNCR0J4g0J/QldCi0JDQoAor0KHQkNCR0J4g0J/QldCi0JDQoAor0KHQkNCR0J4g0J/QldCi0JDQoAor0KHQkNCR0J4g0J/QmNCo0KLQkAor0KHQkNCR0J4g0KDQntCX0JDQm9CY0IjQkAor0KHQkNCR0J4g0KHQndCY0IjQldCW0JDQndCQCivQodCQ0JHQniDQodCi0JXQktCQ0J0KK9Ch0JDQkdCeINCi0JXQoNCV0JfQmNCI0JAKK9Ch0JDQkdCeINCi0JjQkdCe0KAKK9Ch0JDQkdCeINCS0JDQm9CV0KDQmNCI0JAKK9Ch0JDQkdCeINCX0J7Qm9Ci0JDQnQor0KHQkNCR0J4g0JfQntCb0KLQkNCdCivQodCQ0JHQntCo0J7QotCYINCk0JDQkdCY0IjQkNCdCivQodCQ0JHQntCbINCI0JDQoNCe0KHQm9CQ0JIKK9Ch0JDQkdCe0Jsg0IjQldCb0JXQndCQCivQodCQ0JHQntCb0KfQmtCYINCQ0J3QlNCg0JjQiNCQCivQodCQ0JHQntCb0KfQmtCYINCQ0J3QlNCg0JjQiNCQCivQodCQ0JHQntCb0KfQmtCYINCQ0J3QlNCg0JjQiNCQCivQodCQ0JHQntCb0KfQmtCYINCX0J7Qm9Ci0JDQnQor0KHQkNCR0J7Qm9Ce0JLQmNCLINCR0J7QoNCY0KEKK9Ch0JDQkdCe0JIg0JHQntCg0JjQktCe0IjQlQor0KHQkNCR0J7QktCJ0JXQktCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ch0JDQj9CQ0Jog0InQo9CR0JjQptCQCivQodCQ0I/QkNCa0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQodCQ0I/QkNCa0J7QkiDQlNCj0KjQkNCd0JrQkAor0KHQkNCP0JDQmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0KHQkNCP0JDQmtCe0JIg0J7Qm9CT0JAKK9Ch0JDQj9CQ0JrQntCSINCf0JXQotCQ0KAKK9Ch0JDQj9CQ0JrQntCSINCg0JDQlNCe0JLQkNCdCivQodCQ0I/QkNCa0J7QkiDQoNCQ0JTQntCS0JDQnQor0KHQkNCP0JDQmtCe0JIg0JLQmNCU0J7QodCQ0JLQkAor0KHQkNCP0JDQmtCe0JIg0JfQntCg0JDQnQor0KHQkNCU0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KHQkNCU0JjQmtCjINCh0JDQlNCY0JoKK9Ch0JDQmNCi0J7QkiDQqNCQ0KXQmNCcCivQodCQ0IjQpNCV0KDQoiDQgtCj0JvQkAor0KHQkNCI0KTQldCg0KIg0IjQntCl0JDQnQor0KHQkNCI0KTQldCg0KIg0InQo9CR0JjQqNCQCivQodCQ0IjQpNCV0KDQoiDQidCj0JHQmNCo0JAKK9Ch0JDQiNCk0JXQoNCiINCc0JDQoNCT0JjQogor0KHQkNCI0KTQldCg0KIg0JzQkNCg0JjQiNCQCivQodCQ0IjQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Ch0JDQiNCa0J4g0JHQoNCQ0J3QmtCQCivQodCQ0IjQmtCeINCY0KjQotCS0JDQnQor0KHQkNCI0JrQniDQnNCQ0KDQk9CY0KLQkAor0KHQkNCI0JrQniDQoNCj0JbQmNCm0JAKK9Ch0JDQiNCa0J4g0JfQntCb0KLQkNCdCivQodCQ0IjQm9CV0KAg0KTQldCg0JXQndCmCivQodCQ0IjQotCe0JLQmNCLINCU0KDQkNCT0JjQitCQCivQodCQ0JrQkNCnINCR0J7QoNCY0KHQm9CQ0JIg0JvQldCa0JDQoAor0KHQkNCa0JDQpyDQpNCV0KDQldCd0KYKK9Ch0JDQmtCQ0Kcg0JjQqNCi0JLQkNCdCivQodCQ0JrQkNCnINCI0JDQndCa0J4KK9Ch0JDQmtCQ0Kcg0IjQkNCd0JrQngor0KHQkNCa0JDQpyDQiNCe0JLQkNCdCivQodCQ0JrQkNCnINCI0KPQm9CY0IjQkNCd0JAKK9Ch0JDQmtCQ0Kcg0IjQo9Cb0JjQiNCQ0J0KK9Ch0JDQmtCQ0Kcg0InQo9CU0JXQktCY0KIKK9Ch0JDQmtCQ0Kcg0JzQkNCT0JTQkAor0KHQkNCa0JDQpyDQnNCQ0KDQmNCI0JAKK9Ch0JDQmtCQ0Kcg0JzQmNCl0JDQmNCb0J4KK9Ch0JDQmtCQ0Kcg0KHQmNCc0JAKK9Ch0JDQmtCQ0Kcg0KHQktCV0KLQm9CQ0J3QkAor0KHQkNCa0JDQpyDQktCQ0KHQmNCb0JjQiNCVCivQodCQ0JrQkNCnINCS0JvQkNCU0JjQnNCY0KAg0JDQlNCS0J7QmtCQ0KIKK9Ch0JDQmtCQ0Kcg0JLQm9CQ0JTQmNCc0JjQoAor0KHQkNCa0JDQpyDQktCb0JDQlNCY0JzQmNCgCivQodCQ0JrQkNCbINCQ0JTQldCb0JAKK9Ch0JDQmtCQ0Jsg0JDQo9CT0KPQodCi0JjQndCQCivQodCQ0JrQkNCbINCT0JDQkdCe0KAKK9Ch0JDQmtCQ0Jsg0IjQntCW0JXQpAor0KHQkNCa0JDQmyDQnNCQ0KDQmNCI0JAKK9Ch0JDQmtCQ0Jsg0JzQkNCg0JjQiNCQCivQodCQ0JrQkNCb0JDQqCDQntCi0J4KK9Ch0JDQmtCQ0J0g0JTQkNCb0JjQkdCe0KAKK9Ch0JDQmtCe0JLQmNCLINCQ0JvQmNCI0JAKK9Ch0JDQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0KHQkNCa0KPQm9Ch0JrQmCDQnNCY0JvQkNCdCivQodCQ0JvQkNCnINCC0KPQoNCeCivQodCQ0JvQkNCTINCV0JLQk9CV0J3QmNCI0JUKK9Ch0JDQm9CQ0JMg0IjQkNCd0JrQngor0KHQkNCb0JDQkyDQidCj0JHQkAor0KHQkNCb0JDQmCDQldCg0JbQldCR0JXQogor0KHQkNCb0JDQmCDQldCh0KLQldCgCivQodCQ0JvQkNCYLdCT0J7QnNCR0JDQoCDQoNCj0JbQkAor0KHQkNCb0JDQmCDQmNCo0KLQktCQ0J0g0J3QntCS0JjQndCQ0KAKK9Ch0JDQm9CQ0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ch0JDQm9CQ0Jgg0JvQkNCU0JjQodCb0JDQkgor0KHQkNCb0JDQmCDQm9CQ0KHQm9CeCivQodCQ0JvQkNCIINCk0KDQkNCK0J4KK9Ch0JDQm9CQ0Igg0IjQkNCd0JrQngor0KHQkNCb0JDQiCDQiNCe0JbQldCkCivQodCQ0JvQkNCIINCc0JjQoNCI0JDQndCQCivQodCQ0JvQkNCIINCg0KPQlNCe0JvQpAor0KHQkNCb0JDQmiDQiNCQ0J3QmtCeCivQodCQ0JvQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JDQm9CQ0Jog0JLQm9CQ0JTQmNCc0JjQoAor0KHQkNCb0JDQnNCj0J0g0JDQndCQCivQodCQ0JvQkNCc0KPQnSDQkdCe0KHQmNCJ0JrQkAor0KHQkNCb0JDQnNCj0J0g0JjQm9CY0IjQkAor0KHQkNCb0JDQnNCj0J0g0IjQkNCd0JrQngor0KHQkNCb0JDQnNCj0J0g0IjQntCQ0JrQmNCcCivQodCQ0JvQkNCc0KPQnSDQiNCe0JDQmtCY0JwKK9Ch0JDQm9CQ0JzQo9CdINCd0JDQotCQ0JvQmNCI0JAKK9Ch0JDQm9CQ0JzQo9CdINCh0JjQm9CS0JXQodCi0JXQoAor0KHQkNCb0JDQnNCj0J0g0JLQm9CQ0JTQmNCc0JjQoAor0KHQkNCb0JDQn9Cj0KDQkCDQnNCY0JvQlQor0KHQkNCb0JDQn9Cj0KDQkCDQndCV0JTQldCJ0JrQngor0KHQkNCb0JDQn9Cj0KDQkCDQn9CV0KLQkNCgCivQodCQ0JvQkNCi0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQkNCb0JDQotCY0Isg0J/QldCi0JDQoCDQnNCgINCe0JXQpgor0KHQkNCb0JDQotCY0Isg0JLQldCb0JjQnNCY0KAKK9Ch0JDQm9CU0KPQnCDQktCY0JTQkAor0KHQkNCb0JXQotCQINCQ0J3QotCj0J0KK9Ch0JDQm9CY0Isg0JzQmNCb0JDQnQor0KHQkNCb0JjQkdCV0JPQntCS0JjQiyDQnNCj0KHQotCQ0KTQkAor0KHQkNCb0JjQpdCe0JLQmNCLINCY0KHQnNCV0KIKK9Ch0JDQm9CY0IjQkCDQodCV0KTQldCgCivQodCQ0JvQmNCI0JXQktCY0Isg0KjQldCL0JXQoNCY0IjQkAor0KHQkNCb0JrQkNCYINCY0JvQntCd0JAKK9Ch0JDQm9Ca0JDQmCDQm9CQ0KHQm9CeCivQodCQ0JvQnNCQINCo0JDQndCU0J7QoAor0KHQkNCb0JzQkCDQk9CV0JfQkAor0KHQkNCb0JzQkCDQiNCe0JbQldCkINCf0KDQntCkINCU0KAKK9Ch0JDQm9Cc0JAg0IjQntCh0JjQnwor0KHQkNCb0JzQkCDQn9CV0KLQkNCgCivQodCQ0JvQnNCQINCi0JjQkdCe0KAKK9Ch0JDQm9Cc0JAg0KLQmNCR0J7QoAor0KHQkNCb0J7QptCa0Jgg0KHQotCV0JLQkNCdCivQodCQ0JvQntCd0KHQmtCYINCR0J7QltCY0JTQkNCgCivQodCQ0JvQntCd0KHQmtCYINCI0JXQm9CV0J3QkAor0KHQkNCb0J7QndCh0JrQmCDQnNCY0JvQntCg0JDQlAor0KHQkNCb0J7QndCh0JrQmCDQnNCY0KDQiNCQ0J3QkAor0KHQkNCb0J7QndCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQodCQ0JvQntCd0KHQmtCYINCg0KPQltCQCivQodCQ0JvQntCd0KLQkNCYINCI0KPQm9CY0IjQkNCd0JAKK9Ch0JDQm9Ce0J/QldCaINCR0KDQkNCd0JrQngor0KHQkNCb0J7QkiDQiNCe0JLQkNCdCivQodCQ0JzQkNCmINCY0JLQkNCd0JrQkAor0KHQkNCc0JDQpiDQnNCY0KDQmtCeCivQodCQ0JzQkNCg0ILQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQodCQ0JzQkNCg0I/QmNCLINCW0JDQoNCa0J4KK9Ch0JDQnNCQ0KDQj9CY0Isg0JDQlNCQ0JwKK9Ch0JDQnNCQ0KDQj9CY0Isg0JHQntCo0JrQngor0KHQkNCc0JDQoNCP0JjQiyDQkdCe0KjQmtCeCivQodCQ0JzQkNCg0I/QmNCLINCR0J7QoNCQCivQodCQ0JzQkNCg0I/QmNCLINCR0J7QoNCQCivQodCQ0JzQkNCg0I/QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQkNCc0JDQoNCP0JjQiyDQkdCg0JDQndCa0J4KK9Ch0JDQnNCQ0KDQj9CY0Isg0JTQkNCd0JjQm9CeCivQodCQ0JzQkNCg0I/QmNCLINCU0JDQndCY0JvQngor0KHQkNCc0JDQoNCP0JjQiyDQlNCV0KHQkAor0KHQkNCc0JDQoNCP0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JDQnNCQ0KDQj9CY0Isg0JTQo9Co0JDQnQor0KHQkNCc0JDQoNCP0JjQiyDQk9Ce0IjQmtCeCivQodCQ0JzQkNCg0I/QmNCLINCY0JvQmNCI0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0JjQktCQ0J0KK9Ch0JDQnNCQ0KDQj9CY0Isg0JrQoNCh0KLQkAor0KHQkNCc0JDQoNCP0JjQiyDQidCj0JHQngor0KHQkNCc0JDQoNCP0JjQiyDQnNCY0JvQkNCdCivQodCQ0JzQkNCg0I/QmNCLINCc0JjQm9CY0IjQkAor0KHQkNCc0JDQoNCP0JjQiyDQnNCY0JvQntCoCivQodCQ0JzQkNCg0I/QmNCLINCc0JjQm9Ce0KgKK9Ch0JDQnNCQ0KDQj9CY0Isg0JzQmNCb0J7QiNCa0J4KK9Ch0JDQnNCQ0KDQj9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JDQnNCQ0KDQj9CY0Isg0JzQmNCb0J7QodCQ0JIKK9Ch0JDQnNCQ0KDQj9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0JDQnNCQ0KDQj9CY0Isg0JzQmNCg0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0J3QldCC0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0J3QntCS0JjQptCQCivQodCQ0JzQkNCg0I/QmNCLINCe0JvQk9CQCivQodCQ0JzQkNCg0I/QmNCLINCe0KHQotCe0IjQkAor0KHQkNCc0JDQoNCP0JjQiyDQoNCQ0JTQntCI0JrQkAor0KHQkNCc0JDQoNCP0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQodCQ0JzQkNCg0I/QmNCLINCg0JDQlNCe0JLQkNCdCivQodCQ0JzQkNCg0I/QmNCLINCg0JDQiNCa0J4KK9Ch0JDQnNCQ0KDQj9CY0Isg0KDQkNCi0JrQngor0KHQkNCc0JDQoNCP0JjQiyDQoNCe0JfQmNCd0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0KHQkNCS0JrQkAor0KHQkNCc0JDQoNCP0JjQiyDQodCQ0JLQngor0KHQkNCc0JDQoNCP0JjQiyDQodCf0J7QnNCV0J3QmtCQCivQodCQ0JzQkNCg0I/QmNCLINCh0KDQldCi0JXQnQor0KHQkNCc0JDQoNCP0JjQiyDQodCg0JXQotCV0J0KK9Ch0JDQnNCQ0KDQj9CY0Ist0KHQotCQ0J3QmNCo0JjQiyDQnNCY0JvQkNCd0JrQkAor0KHQkNCc0JDQoNCP0JjQiyDQodCS0JXQotCb0JDQndCQCivQodCQ0JzQkNCg0I/QmNCLINCS0JDQodCY0JvQmNCI0JAKK9Ch0JDQnNCQ0KDQj9CY0Isg0JLQkNCh0J4KK9Ch0JDQnNCQ0KDQj9CY0Isg0JLQldCb0JjQnNCY0KAKK9Ch0JDQnNCQ0KDQj9CY0Isg0JLQm9CQ0JTQngor0KHQkNCc0JDQoNCP0JjQiyDQktCj0JrQkNCo0JjQnQor0KHQkNCc0JDQoNCP0JjQiyDQl9CU0KDQkNCS0JrQngor0KHQkNCc0JDQoNCP0JjQiyDQl9Ce0KDQkNCdCivQodCQ0JzQkNCg0I/QmNCLINCX0KPQl9CQ0J3QkAor0KHQkNCc0JDQoNCP0JjQiNCQINCC0KPQoNCC0JjQndCa0JAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQgtCj0KDQkNCCCivQodCQ0JzQkNCg0I/QmNCI0JAg0ILQo9Cg0JAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQkdCe0KjQmtCeCivQodCQ0JzQkNCg0I/QmNCI0JAg0JTQldCh0JAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQlNCj0KjQkNCdCivQodCQ0JzQkNCg0I/QmNCI0JAg0JPQntCg0JjQptCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0IjQldCb0JXQndCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0InQo9CR0JjQptCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0InQo9CR0JjQptCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0JzQkNCg0JjQiNCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0JzQkNCg0JjQiNCQCivQodCQ0JzQkNCg0I/QmNCI0JAg0JzQmNCb0JDQndCa0JAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQnNCY0JvQkNCdCivQodCQ0JzQkNCg0I/QmNCI0JAg0JzQmNCb0JDQnQor0KHQkNCc0JDQoNCP0JjQiNCQINCc0JjQm9CVCivQodCQ0JzQkNCg0I/QmNCI0JAg0JzQmNCg0JrQngor0KHQkNCc0JDQoNCP0JjQiNCQINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQndCV0JHQntCI0KjQkAor0KHQkNCc0JDQoNCP0JjQiNCQINCd0J7QktCY0KbQkAor0KHQkNCc0JDQoNCP0JjQiNCQINCf0JXQotCQ0KAKK9Ch0JDQnNCQ0KDQj9CY0IjQkCDQoNCQ0JTQlQor0KHQkNCc0JDQoNCP0JjQiNCQINCg0JDQlNCVCivQodCQ0JzQkNCg0I/QmNCI0JAg0KDQkNCd0JrQngor0KHQkNCc0JDQoNCP0JjQiNCQINCh0KLQntCI0JDQnQor0KHQkNCc0JDQoNCP0JjQiNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JDQnNCR0KDQkNCY0JvQniDQkdCg0KPQndCeCivQodCQ0JzQldCmINCR0J7QltCV0J3QmtCQCivQodCQ0JzQmNCYINCQ0JHQkdCQ0KEKK9Ch0JDQnNCe0KfQldCi0JAg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ch0JDQnNCe0KfQldCi0JAg0JzQmNCb0JUKK9Ch0JDQnNCe0KfQldCi0JAg0J3QldCS0JXQndCa0JAKK9Ch0JDQnNCe0KfQldCi0JAg0KDQkNCU0J7QnNCY0KAKK9Ch0JDQnNCe0IjQm9CY0Jog0J3QmNCa0J7Qm9CQCivQodCQ0JzQntCa0J7QktCb0JjQiNCQINCc0JDQoNCa0J4KK9Ch0JDQnNCe0JvQntCSINCS0JXQidCa0J4KK9Ch0JDQnNCe0JvQntCS0KfQldCSINCY0JLQkNCd0JrQkAor0KHQkNCc0KHQntCd0J7QkiDQndCY0JrQntCb0JAg0JTQmNCf0Jsg0JjQndCTCivQodCQ0J3Qp9CQ0J3QmNCdINCc0JjQm9CY0JLQntCICivQodCQ0J3QkNCU0JXQoCDQltCY0JLQmtCeCivQodCQ0J3QkNCU0JXQoCDQltCY0JLQmtCeCivQodCQ0J3QkNCU0JXQoCDQiNCV0JvQldCd0JAKK9Ch0JDQndCQ0JTQldCgINCg0JDQlNCe0JLQkNCdCivQodCQ0J3QkNCU0JXQoCDQodCb0J7QkdCe0JTQkNCdCivQodCQ0J3QkNCU0JXQoCDQktCV0KDQkAor0KHQkNCd0JTQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Ch0JDQndCU0JjQiyDQmNCS0JDQnQor0KHQkNCd0JTQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ch0JDQndCU0JjQmtCYINCQ0J/QntCh0KLQntCbCivQodCQ0J3QlNCY0JrQmCDQmtCe0KHQotCQCivQodCQ0J3QlNCY0JrQmCDQmtCe0KHQotCQCivQodCQ0J3QmtCe0JLQmNCLINCR0J7QoNCa0J4KK9Ch0JDQndCa0J7QktCY0Isg0InQo9CR0JjQndCa0JAKK9Ch0JDQndCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JDQndCa0J7QktCY0Isg0JzQmNCg0JAKK9Ch0JDQndCa0J7QktCY0Isg0J/QldCi0JDQoAor0KHQkNCd0JrQntCS0JjQiyDQodCQ0JHQmNCd0JAKK9Ch0JDQndCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQkNCd0KLQkNCYINCY0JvQntCd0JAKK9Ch0JDQndCi0J4g0KTQoNCQ0IrQkAor0KHQkNCd0KLQniDQmtCQ0KDQntCJCivQodCQ0J3QotCeINCb0JDQlNCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQodCQ0J3QotCeINCX0J7Qm9Ci0JDQnQor0KHQkNCd0KLQniDQl9Ce0JvQotCQ0J0KK9Ch0JDQndCi0J7QktCQ0KYg0JTQoNCQ0JPQkNCdCivQodCQ0J3QotCe0JLQkNCmINCJ0KPQkdCY0J3QmtCQCivQodCQ0J3QotCe0JLQkNCmINCc0JjQm9Ce0KgKK9Ch0JDQndCi0J7QktCQ0KYg0J/QldCi0JDQoAor0KHQkNCd0KLQntCS0JDQpiDQodCi0JXQktCQ0J0KK9Ch0JDQndCi0KDQkNCnINCC0KPQoNCC0JjQndCa0JAKK9Ch0JDQndCi0KDQkNCnINCU0KDQkNCT0J7QidCj0JEKK9Ch0JDQndCi0KDQkNCnINCT0J7QoNCU0JDQndCQCivQodCQ0J3QotCg0JDQpyDQnNCY0JvQkNCdCivQodCQ0J3QotCg0JDQpyDQnNCY0JvQntCg0JDQlAor0KHQkNCd0KLQoNCQ0Kcg0JzQntCc0KfQmNCb0J4KK9Ch0JDQndCi0KDQkNCnINCd0JjQmtCe0JvQkAor0KHQkNCd0KLQoNCQ0Kcg0KDQkNCi0JrQngor0KHQkNCd0KLQoNCQ0Kcg0KHQkNCS0J4KK9Ch0JDQndCi0KDQkNCnINCh0JvQkNCS0JrQngor0KHQkNCf0KPQndCP0JjQiy3QnNCQ0KLQmNCLINCc0JjQoNCI0JDQndCQCivQodCQ0J/Qo9Cd0I/QmNCLINCc0JjQm9CQ0J0KK9Ch0JDQn9Cj0J3Qj9CY0Isg0JzQmNCg0JAKK9Ch0JDQn9Cj0J3Qj9CY0Isg0KLQkNCi0IjQkNCd0JAKK9Ch0JDQn9Cj0J3Qj9CY0IjQkCDQldCg0JbQldCR0JXQogor0KHQkNCf0KPQndCP0JjQiNCQINCc0JDQoNCY0IjQkAor0KHQkNCg0KfQldCSINCd0JDQlNCY0KbQkAor0KHQkNCg0KfQldCSINCg0JDQlNCY0JLQntCICivQodCQ0KDQkNCn0JXQktCY0Isg0KHQoNCR0J7QidCj0JEKK9Ch0JDQoNCQ0KTQmNCI0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQkNCg0JDQiNCb0JjQiNCQINCU0KDQkNCT0J7QnNCY0KAKK9Ch0JDQoNCQ0JzQkNCd0JTQmNCLINCc0J7QnNCY0KAKK9Ch0JDQoNCQ0JzQkNCd0JTQmNCLINCd0JXQlNCV0InQmtCeCivQodCQ0KDQkNCd0JTQkCDQktCQ0KHQmNCJ0JrQkAor0KHQkNCg0JDQn9Ca0JAg0JrQkNCi0JjQptCQCivQodCQ0KDQkNCi0JvQmNCLINCc0JjQm9CQ0J0KK9Ch0JDQoNCQ0KLQm9CY0Isg0KHQoNCR0J7QidCj0JEKK9Ch0JDQoNCQ0JLQntCb0JDQpiDQm9CQ0JfQkNCgINCS0JXQotCV0KDQmNCd0JDQoAor0KHQkNCg0JDQktCe0JvQkNCmINCc0JDQk9CU0JDQm9CV0J3QkAor0KHQkNCg0JDQktCe0JvQkNCmINCc0JjQoNCI0JDQndCQCivQodCQ0KDQkNCS0J7Qm9CQ0KYg0JzQmNCg0IjQkNCd0JAKK9Ch0JDQoNCQ0JLQntCb0JDQpiDQodCY0J3QmNCo0JAg0JTQoAor0KHQkNCg0JDQktCe0JvQkNCmINCh0JvQkNCS0JrQngor0KHQkNCg0JDQktCe0JvQkNCmINCh0JLQldCi0JvQkNCd0JAKK9Ch0JDQoNCY0Isg0ILQo9Cg0JAKK9Ch0JDQoNCY0Isg0JTQkNCd0JjQm9CeCivQodCQ0KDQmNCLINCY0JLQkNCdCivQodCQ0KDQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Ch0JDQoNCY0Isg0JzQkNCg0JjQndCa0J4KK9Ch0JDQoNCY0Isg0JzQmNCb0J7QqAor0KHQkNCg0JjQiyDQnNCY0JvQntCI0JUg0JTQoAor0KHQkNCg0JjQiyDQoNCQ0JTQntCoCivQodCQ0KDQmNCLINCg0JDQotCa0J4KK9Ch0JDQoNCY0Isg0KLQmNCR0J7QoAor0KHQkNCg0JjQiyDQktCe0IjQmNCdCivQodCQ0KDQmNCa0JDQoSDQodCd0JXQltCQ0J3QkAor0KHQkNCg0JjQmtCQ0KEg0JLQkNCh0JjQm9CY0IjQlQor0KHQkNCg0JrQkCDQkNCg0J/QkNCUCivQodCQ0KDQmtCQINCc0JjQpdCQ0IkKK9Ch0JDQoNCa0J7QotCY0Isg0KTQoNCQ0IrQkAor0KHQkNCg0JzQldCoINCc0JDQoNCY0IjQkCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0KHQkNCg0J7QkiDQm9CQ0JfQkNCgCivQodCQ0KDQktCQ0Kgg0KjQkNCd0JTQntCgCivQodCQ0KDQktCQ0Kgg0IjQkNCd0J7QqAor0KHQkNCg0JLQkNCaINCQ0JvQldCa0KHQkAor0KHQkNCg0JLQkNCdINCU0KDQkNCT0J7QidCj0JEKK9Ch0JDQoNCS0JDQnSDQktCI0JXQoNCQCivQodCQ0KEg0IjQldCd0JUKK9Ch0JDQodCY0Jog0JHQntCg0JjQodCb0JDQkgor0KHQkNCi0JDQoNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCQ0KLQkNCg0JjQiyDQnNCY0InQmtCeINCU0KAKK9Ch0JDQotCa0JDQndCe0JLQmNCLINCl0JDQkdCY0JEKK9Ch0JDQo9CV0KAg0IjQldCb0JjQptCQCivQodCQ0KPQldCgINCc0JDQoNCT0JjQotCQCivQodCQ0KPQldCgINCf0JDQktCb0JUKK9Ch0JDQo9CV0KAg0KDQntCh0JAKK9Ch0JDQo9CV0KAg0KHQnNCY0InQkNCd0JAKK9Ch0JDQo9Ch0JzQkNCdINCb0JDQodCb0J4KK9Ch0JDQo9CX0JXQoCDQpNCg0JDQitCeCivQodCQ0JLQp9CY0Isg0JTQoNCQ0JPQkNCdCivQodCQ0JLQp9CY0Isg0JzQmNCb0JDQndCQCivQodCQ0JLQp9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0KHQkNCS0KfQmNCLINCc0JjQm9CY0JLQntCICivQodCQ0JLQp9CY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQkNCS0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JDQktCQINCk0KDQkNCK0JAKK9Ch0JDQktCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ch0JDQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCQ0JLQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQkNCS0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0JDQktCQ0J3QntCS0JjQiyDQiNCe0JLQngor0KHQkNCS0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCQ0JLQkNCd0J7QktCY0Isg0JzQkNCg0JjQptCQCivQodCQ0JLQkNCd0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9Ch0JDQktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCQ0JLQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQkNCS0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Ch0JDQktCQ0J3QntCS0JjQiyDQndCV0J3QkNCUCivQodCQ0JLQkNCd0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Ch0JDQktCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0JDQktCQ0J3QntCS0JjQiyDQl9CU0KDQkNCS0JrQkAor0KHQkNCS0JDQotCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQkNCS0JDQotCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQkNCS0JDQotCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQodCQ0JLQkNCi0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCQ0JLQkNCi0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQkNCS0JDQotCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQodCQ0JLQldCJ0JjQiyDQp9CV0JTQntCc0JjQoAor0KHQkNCS0JXQidCY0Isg0JTQo9Co0JDQnQor0KHQkNCS0JXQidCY0Isg0JzQkNCg0JjQiNCQCivQodCQ0JLQldCJ0JjQiyDQodCS0JXQotCb0JDQndCQCivQodCQ0JLQldCJ0JjQiyDQktCV0InQmtCeCivQodCQ0JLQldCh0JrQmCDQnNCY0JvQp9CeCivQodCQ0JLQldCh0JrQmCDQl9Ce0KDQkNCdCivQodCQ0JLQmNCn0JXQktCY0Isg0JPQntCI0JrQngor0KHQkNCS0JjQp9CY0Isg0JPQntCI0JrQngor0KHQkNCS0JjQp9CY0Isg0KHQotCe0IjQkNCdCivQodCQ0JLQmNCn0JjQnSDQidCj0JHQmNCm0JAKK9Ch0JDQktCY0Isg0KfQldCU0J7QnNCY0KAKK9Ch0JDQktCY0Isg0KfQldCU0J4KK9Ch0JDQktCY0Isg0IvQldCi0JrQngor0KHQkNCS0JjQiyDQltCY0JLQmtCQCivQodCQ0JLQmNCLINCW0JjQktCa0JAKK9Ch0JDQktCY0Isg0ILQntCa0JAKK9Ch0JDQktCY0Isg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Ch0JDQktCY0Isg0ILQntCg0ILQlQor0KHQkNCS0JjQiyDQgtCj0KDQgtCY0IjQkAor0KHQkNCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KHQkNCS0JjQiyDQkNCb0JXQmtCh0JAKK9Ch0JDQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ch0JDQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ch0JDQktCY0Isg0JDQndCQCivQodCQ0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQodCQ0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQodCQ0JLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9Ch0JDQktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Ch0JDQktCY0Isg0JHQm9CQ0JPQntCI0JUKK9Ch0JDQktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0JDQktCY0Isg0JHQntCW0JjQnNCY0KAg0JTQoAor0KHQkNCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ch0JDQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQkNCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JDQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCQ0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQkNCS0JjQiyDQkdCg0JDQndCa0J4KK9Ch0JDQktCY0Isg0KbQktCV0KLQkNCd0JrQkAor0KHQkNCS0JjQiyDQptCS0JXQotCa0J4KK9Ch0JDQktCY0Isg0JTQkNCc0IjQkNCdINCU0KAg0JvQldCa0JDQoAor0KHQkNCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ch0JDQktCY0Isg0JTQkNCg0JAKK9Ch0JDQktCY0Isg0JTQldCI0JDQnQor0KHQkNCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0KHQkNCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0KHQkNCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0KHQkNCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JDQktCY0Isg0JTQoNCQ0JPQkNCdCivQodCQ0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQkNCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JDQktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Ch0JDQktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQodCQ0JLQmNCLINCU0KDQkNCT0J4KK9Ch0JDQktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KHQkNCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQodCQ0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQodCQ0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0JDQktCY0Isg0JTQo9Co0JDQnQor0KHQkNCS0JjQiyDQlNCj0KjQkNCdCivQodCQ0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0JDQktCY0Isg0JTQo9Co0JDQnQor0KHQkNCS0JjQiyDQlNCj0KjQkNCdCivQodCQ0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0JDQktCY0Isg0JPQldCe0KDQk9CY0IjQlQor0KHQkNCS0JjQiyDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9Ch0JDQktCY0Isg0JPQntCI0JrQngor0KHQkNCS0JjQiyDQk9Ce0KDQkNCdCivQodCQ0JLQmNCLINCT0J7QodCi0JjQnNCY0KAKK9Ch0JDQktCY0Isg0JPQoNCe0JfQlNCQ0J3QkAor0KHQkNCS0JjQiyDQmNCb0JjQiNCQCivQodCQ0JLQmNCLINCY0JvQmNCI0JAKK9Ch0JDQktCY0Isg0JjQktCQ0J0KK9Ch0JDQktCY0Isg0IjQkNCU0KDQkNCd0JrQkAor0KHQkNCS0JjQiyDQiNCV0JvQkAor0KHQkNCS0JjQiyDQiNCV0JvQldCd0JAKK9Ch0JDQktCY0Isg0IjQldCb0JXQndCQCivQodCQ0JLQmNCLINCI0JXQm9CY0KbQkAor0KHQkNCS0JjQiyDQiNCV0JLQotCeCivQodCQ0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQodCQ0JLQmNCLINCI0J7QktCQ0J0KK9Ch0JDQktCY0Isg0IjQntCS0JDQnQor0KHQkNCS0JjQiyDQiNCe0JLQkNCdCivQodCQ0JLQmNCLINCI0J7QktCQ0J0KK9Ch0JDQktCY0Isg0IjQntCS0JDQnQor0KHQkNCS0JjQiyDQiNCe0JLQkNCdCivQodCQ0JLQmNCLINCa0JDQotCY0KbQkAor0KHQkNCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0JDQktCY0Isg0JrQntCh0KLQkAor0KHQkNCS0JjQiyDQmtCh0JXQndCY0IjQkAor0KHQkNCS0JjQiyDQm9CQ0JfQkNCgCivQodCQ0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0JDQktCY0Isg0JvQldCd0JrQkCDQlNCgCivQodCQ0JLQmNCLINCJ0JjQidCQ0J3QkAor0KHQkNCS0JjQiyDQidCY0InQkNCd0JAKK9Ch0JDQktCY0Isg0InQo9CR0JjQqNCQCivQodCQ0JLQmNCLINCJ0KPQkdCY0KbQkAor0KHQkNCS0JjQiyDQidCj0JHQntCc0JjQoAor0KHQkNCS0JjQiyDQidCj0JHQntCh0JvQkNCSCivQodCQ0JLQmNCLINCb0KPQmtCQCivQodCQ0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQkNCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JDQktCY0Isg0JzQkNCg0JjQiNCQCivQodCQ0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQkNCS0JjQiyDQnNCQ0KDQmNCd0JAKK9Ch0JDQktCY0Isg0JzQkNCg0JjQndCQCivQodCQ0JLQmNCLINCc0JDQoNCa0J4KK9Ch0JDQktCY0Isg0JzQldCP0J4KK9Ch0JDQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ch0JDQktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ch0JDQktCY0Isg0JzQmNCb0JDQnQor0KHQkNCS0JjQiyDQnNCY0JvQkNCdCivQodCQ0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0JDQktCY0Isg0JzQmNCb0JDQnQor0KHQkNCS0JjQiyDQnNCY0JvQldCd0JAKK9Ch0JDQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0JDQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0JDQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0JDQktCY0Isg0JzQmNCb0JjQiNCQ0J3QkAor0KHQkNCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0KHQkNCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQodCQ0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Ch0JDQktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KHQkNCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQkNCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQkNCS0JjQiyDQnNCY0JvQmtCeCivQodCQ0JLQmNCLINCc0JjQm9Ce0Kgg0JTQmNCf0Jsg0JjQndCTCivQodCQ0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0JDQktCY0Isg0JzQmNCb0J7QqAor0KHQkNCS0JjQiyDQnNCY0JvQntCoCivQodCQ0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0JDQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JDQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JDQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JDQktCY0Isg0JzQmNCb0J7QodCQ0JLQkAor0KHQkNCS0JjQiyDQnNCY0JvQntCh0JDQkgor0KHQkNCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQkNCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQkNCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQkNCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQkNCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQkNCS0JjQiyDQnNCY0KDQmtCeCivQodCQ0JLQmNCLINCc0JjQoNCa0J4KK9Ch0JDQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQkNCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCQ0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JDQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQkNCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ch0JDQktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ch0JDQktCY0Isg0J3QkNCU0JAKK9Ch0JDQktCY0Isg0J3QkNCU0JXQltCU0JAKK9Ch0JDQktCY0Isg0J3QkNCi0JDQqNCQCivQodCQ0JLQmNCLINCd0JXQlNCV0InQmtCeCivQodCQ0JLQmNCLINCd0JXQlNCV0InQmtCeCivQodCQ0JLQmNCLINCd0JXQlNCV0InQmtCeCivQodCQ0JLQmNCLINCd0JXQlNCV0InQmtCeCivQodCQ0JLQmNCLINCd0JXQndCQ0JQKK9Ch0JDQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCQ0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQkNCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0JDQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCQ0JLQmNCLINCd0JjQndCe0KHQm9CQ0JIKK9Ch0JDQktCY0Isg0J3QntCS0J4KK9Ch0JDQktCY0Isg0J7Qm9CT0JAKK9Ch0JDQktCY0Isg0J7Qm9CY0JLQldCg0JAKK9Ch0JDQktCY0Isg0J7Qm9CY0JLQldCg0JAKK9Ch0JDQktCY0Isg0J/QkNCd0KLQldCb0JjQiNCQCivQodCQ0JLQmNCLINCf0JDQktCb0JUKK9Ch0JDQktCY0Isg0J/QldCg0JAKK9Ch0JDQktCY0Isg0J/QldCi0JDQoAor0KHQkNCS0JjQiyDQn9CV0KLQkNCgCivQodCQ0JLQmNCLINCf0JXQotCQ0KAKK9Ch0JDQktCY0Isg0J/QldCi0JDQoAor0KHQkNCS0JjQiyDQn9Cb0JDQndCY0J3QmtCQCivQodCQ0JLQmNCLINCf0KDQldCU0KDQkNCTCivQodCQ0JLQmNCLINCf0KDQntCa0J7Qn9CY0IjQlQor0KHQkNCS0JjQiyDQoNCQ0JTQmNCo0JAKK9Ch0JDQktCY0Isg0KDQkNCU0JjQktCe0IjQlSDQlNCY0J/QmyDQmNCd0JMKK9Ch0JDQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0JDQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0JDQktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0JDQktCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0KHQkNCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQkNCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQkNCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KHQkNCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KHQkNCS0JjQiyDQoNCQ0JrQmNCLCivQodCQ0JLQmNCLINCg0JDQotCa0J4KK9Ch0JDQktCY0Isg0KDQkNCi0JrQngor0KHQkNCS0JjQiyDQoNCV0InQkCDQlNCgCivQodCQ0JLQmNCLINCg0JXQndCQ0KLQkAor0KHQkNCS0JjQiyDQoNCe0JrQodCQ0J3QlNCQCivQodCQ0JLQmNCLINCg0KPQltCY0KbQkAor0KHQkNCS0JjQiyDQodCQ0KjQkAor0KHQkNCS0JjQiyDQodCQ0JLQkCDQkNCU0JLQntCa0JDQogor0KHQkNCS0JjQiyDQodCQ0JLQkAor0KHQkNCS0JjQiyDQodCQ0JLQkAor0KHQkNCS0JjQiyDQodCQ0JLQkAor0KHQkNCS0JjQiyDQodCY0JzQldCj0J0g0JTQmNCf0Jsg0JjQndCTCivQodCQ0JLQmNCLINCh0JjQndCY0KjQkAor0KHQkNCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0JDQktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KHQkNCS0JjQiyDQodCb0JDQktCe0InQo9CRCivQodCQ0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JDQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQkNCS0JjQiyDQodCc0JjQidCQCivQodCQ0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQodCQ0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQodCQ0JLQmNCLINCh0KDQgtCQ0J0KK9Ch0JDQktCY0Isg0KHQoNCR0JjQodCb0JDQkgor0KHQkNCS0JjQiyDQodCg0JXQotCQCivQodCQ0JLQmNCLINCh0KLQldCS0JDQnQor0KHQkNCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQodCQ0JLQmNCLINCh0KLQntCI0JDQnQor0KHQkNCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0JDQktCY0Isg0KHQotCe0IjQkNCdCivQodCQ0JLQmNCLINCh0JLQldCd0JrQkAor0KHQkNCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCQ0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0JDQktCY0Isg0KLQkNCi0J7QnNCY0KAKK9Ch0JDQktCY0Isg0KLQldCe0JTQntCgCivQodCQ0JLQmNCLINCi0JjQndCa0JAKK9Ch0JDQktCY0Isg0KLQntCU0J7QoAor0KHQkNCS0JjQiyDQotCe0JTQntCgCivQodCQ0JLQmNCLINCi0J7QlNCe0KAKK9Ch0JDQktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQkNCS0JjQiyDQo9Cg0J7QqAor0KHQkNCS0JjQiyDQktCV0InQmtCeCivQodCQ0JLQmNCLINCS0JXQoNCY0KbQkAor0KHQkNCS0JjQiyDQktCV0KDQmNCm0JAKK9Ch0JDQktCY0Isg0JLQldCh0J3QkAor0KHQkNCS0JjQiyDQktCY0JTQntCh0JDQkgor0KHQkNCS0JjQiyDQktCY0KLQntCc0JjQoAor0KHQkNCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCQ0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JDQktCY0Isg0JLQntCI0JAKK9Ch0JDQktCY0Isg0JLQo9Ca0JDQnQor0KHQkNCS0JjQiyDQktCj0JrQntCi0JAKK9Ch0JDQktCY0Isg0JfQntCg0JDQnQor0KHQkNCS0JjQiyDQl9Ce0KDQkNCdCivQodCQ0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0JDQktCY0Isg0JfQntCg0JDQnQor0KHQkNCS0JjQiyDQl9Ce0KDQkNCdCivQodCQ0JLQmNCLINCX0J7QoNCQCivQodCQ0JLQmNCdINCW0JjQktCa0JAKK9Ch0JDQktCY0J0g0JbQmNCS0JrQngor0KHQkNCS0JjQnSDQgtCe0KDQgtCVCivQodCQ0JLQmNCdINCC0KPQoNCC0JjQndCa0JAKK9Ch0JDQktCY0J0g0JHQldCg0JjQodCb0JDQkgor0KHQkNCS0JjQnSDQkdCY0InQkNCd0JAg0JTQoAor0KHQkNCS0JjQnSDQkdCe0KDQkAor0KHQkNCS0JjQnSDQlNCQ0J3QmNCm0JAKK9Ch0JDQktCY0J0g0JTQoNCQ0JPQntCJ0KPQkQor0KHQkNCS0JjQnSDQlNCg0JDQk9Ce0JzQmNCgCivQodCQ0JLQmNCdINCU0KDQldCd0JrQkAor0KHQkNCS0JjQnSDQlNCj0KjQkNCdCivQodCQ0JLQmNCdINCU0KPQqNCQ0J0KK9Ch0JDQktCY0J0g0IjQntCS0JDQnQor0KHQkNCS0JjQnSDQiNCe0JLQkNCdCivQodCQ0JLQmNCdINCI0KPQm9Ca0JAKK9Ch0JDQktCY0J0g0JvQkNCh0JvQngor0KHQkNCS0JjQnSDQm9CQ0JfQkNCgCivQodCQ0JLQmNCdINCJ0KPQkdCY0J3QmtCQCivQodCQ0JLQmNCdINCc0JDQk9CU0JAKK9Ch0JDQktCY0J0g0JzQmNCb0JXQktCQCivQodCQ0JLQmNCdINCc0JjQm9CY0KbQkAor0KHQkNCS0JjQnSDQnNCY0JvQmtCQCivQodCQ0JLQmNCdINCc0JjQm9Ce0KDQkNCUCivQodCQ0JLQmNCdINCc0JjQm9Ce0KDQkNCUCivQodCQ0JLQmNCdINCc0JjQm9Ce0JLQkNCdCivQodCQ0JLQmNCdINCc0JjQntCU0KDQkNCTINCU0JjQn9CbINCe0JXQpgor0KHQkNCS0JjQnSDQnNCY0KDQiNCQ0J3QkAor0KHQkNCS0JjQnSDQnNCY0KDQiNCQ0J3QkAor0KHQkNCS0JjQnSDQndCY0JrQntCb0JAKK9Ch0JDQktCY0J0g0J/QkNCS0JvQlQor0KHQkNCS0JjQnSDQn9Cg0JXQlNCg0JDQkwor0KHQkNCS0JjQnSDQoNCQ0JTQmNCS0J7QiAor0KHQkNCS0JjQnSDQodCQ0JLQkAor0KHQkNCS0JjQnSDQodCd0JXQltCQ0J3QkAor0KHQkNCS0JjQnSDQodCf0JjQoNCY0JTQntCdCivQodCQ0JLQmNCdINCh0KLQkNCd0JAKK9Ch0JDQktCY0J0g0KLQntCU0J7QoAor0KHQkNCS0JjQnSDQotCe0JTQntCgCivQodCQ0JLQmNCdINCS0JXQoNCY0KbQkAor0KHQkNCS0JjQnSDQktCj0JrQntCh0JDQktCQCivQodCQ0JLQmNCdINCX0J7QoNCQCivQodCQ0JLQmtCV0InQmNCdINCh0KLQldCS0JDQnQor0KHQkNCS0JrQmNCLINCU0KPQqNCQ0J0KK9Ch0JDQktCa0J7QkiDQlNCg0JDQk9Ce0InQo9CRCivQodCQ0JLQmtCe0JIg0JjQm9CY0IjQkAor0KHQkNCS0JrQntCSINCc0JjQm9CQ0J0KK9Ch0JDQktCa0J7QkiDQotCe0JTQntCgCivQodCQ0JLQmtCe0JIg0JLQldCg0JAKK9Ch0JDQktCa0J7QkiDQktCe0IjQmNCh0JvQkNCSCivQodCQ0JLQmtCe0JIg0JfQntCg0JDQnQor0KHQkNCS0JrQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0KHQkNCS0JrQntCS0JjQiyDQiNCQ0IrQkAor0KHQkNCS0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQkNCS0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQodCQ0JLQmtCe0JLQmNCLINCd0JXQnNCQ0IrQkAor0KHQkNCS0JrQntCS0JjQiyDQodCQ0JLQkAor0KHQkNCS0JrQntCS0JjQiyDQodCQ0JLQngor0KHQkNCS0JrQntCS0JjQiyDQodCi0JDQqNCQCivQodCQ0JLQmtCe0JLQmNCLINCi0JDQotCI0JDQndCQCivQodCQ0JLQmtCe0JLQmNCLINCS0KPQmtCQCivQodCQ0JLQmtCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQodCQ0JLQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0KHQkNCS0J7QktCY0Isg0KTQkNCi0JjQnNCQCivQodCQ0JLQntCS0JjQiyDQidCj0JHQngor0KHQkNCS0J7QktCY0Isg0JvQo9Ca0JAKK9Ch0JDQktCe0JLQmNCLINCd0JXQndCQ0JQKK9Ch0JDQktCe0JLQmNCLINCg0JDQlNCVCivQodCQ0JLQoy3QnNCY0KXQkNCI0JvQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Ch0JDQktCjINCi0JjQkdCYCivQodCQ0JLQo9CJ0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQkNCX0JTQkNCd0JjQiyDQgtCe0JrQkAor0KHQkNCX0JTQkNCd0JjQiyDQn9CQ0JLQm9CVCivQodCQ0JfQlNCQ0J3QmNCLINCh0KLQldCS0JDQnQor0KHQldCn0JDQndCh0JrQmCDQgtCe0KDQgtCVCivQodCV0KfQldCdINCc0JjQm9CY0JLQntCICivQodCV0KfQldCdINCh0JLQldCi0J7Ql9CQ0KAg0JTQoAor0KHQldCn0JXQitCYINCY0JHQntCJ0JAKK9Ch0JXQp9CYINCY0KjQotCS0JDQnQor0KHQldCn0JjQktCQ0J3QntCS0JjQiyDQm9CV0J/QqNCQCivQodCV0KfQmNCS0JDQndCe0JLQmNCLINCb0JXQn9Co0JAKK9Ch0JXQp9CY0JLQkNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0KHQldCn0KPQiNCh0JrQmCDQkNCd0JTQoNCY0IjQkCDQlNCY0J/QmyDQmNCd0JMKK9Ch0JXQp9Cj0IjQodCa0Jgg0JTQkNCd0JjQm9CeCivQodCV0KfQo9CI0KHQmtCYINCc0JvQkNCU0JXQnQor0KHQldCn0KPQiNCh0JrQmCDQoNCQ0JTQmNCS0J7QiAor0KHQldCR0JDQodCi0JjQkNCdINCV0KDQndCVCivQodCV0JHQkNCh0KLQmNCQ0J0g0IjQntCl0JDQndCQCivQodCV0JHQkNCh0KLQmNCI0JDQnSDQl9Cb0JDQotCa0J4KK9Ch0JXQkdCV0JvQldCU0Jgg0J/QkNCS0JvQlQor0KHQldCR0JXQitCYINCk0JXQoNCV0J3Qpgor0KHQldCR0JXQitCYINCk0KDQkNCK0JAKK9Ch0JXQkdCY0KjQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0KHQldCR0JjQqNCQ0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQodCV0JTQldCIINCI0JDQndCV0JcKK9Ch0JXQlNCV0KAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0JXQlNCV0KAg0JjQktCY0KbQkAor0KHQldCU0JXQoCDQodCb0JDQktCa0J4KK9Ch0JXQlNCV0KAg0JLQm9CQ0JTQmNCc0JjQoAor0KHQldCU0JXQoNCb0JDQndCUINCC0J7QoNCC0JUKK9Ch0JXQlNCb0JDQp9CV0Jog0KHQkNCg0JAKK9Ch0JXQlNCb0JDQmiDQkNCd0JTQoNCQ0KgKK9Ch0JXQlNCb0JDQnSDQmNCb0JjQiNCQCivQodCV0JTQm9CQ0J0g0JzQkNCd0J7QiNCb0J4KK9Ch0JXQlNCb0JDQnSDQnNCY0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0KHQldCU0JvQkNCdINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0JXQlNCb0JDQnSDQodCQ0JLQkAor0KHQldCU0JvQkNCgINCY0JvQmNCI0JAKK9Ch0JXQlNCb0JDQoCDQnNCQ0J3QlQor0KHQldCU0JvQkNCgINCc0JjQm9CY0KbQkAor0KHQldCU0JvQkNCgINCc0JjQm9CY0KbQkAor0KHQldCU0JvQkNCgINCd0JDQlNCQCivQodCV0JTQnNCQ0Jog0JTQoNCQ0JPQkNCdCivQodCV0JTQnNCQ0Jog0JLQm9CQ0JTQngor0KHQldCk0KfQmNCaINCW0KPQltCQ0J3QkAor0KHQldCk0JXQoCDQnNCQ0KDQmNCI0JAKK9Ch0JXQpNCV0KAg0KHQkNCa0JjQkQor0KHQldCk0JXQoCDQodCV0J3QkNCUCivQodCV0KTQldCg0J7QktCY0Isg0KHQo9CQ0JQKK9Ch0JXQkyDQltCj0JbQkNCd0JAKK9Ch0JXQkyDQmNCc0KDQlQor0KHQldCT0JXQlNCYINCR0KDQkNCd0JrQkAor0KHQldCT0JXQlNCYINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQldCT0JXQlNCYINCV0JLQk9CV0J3QmNCI0JUKK9Ch0JXQk9CV0JTQmCDQmNCS0JjQptCQCivQodCV0JPQldCU0Jgg0IjQntCh0JjQnwor0KHQldCT0JXQlNCYINCI0J7QktCQ0J0KK9Ch0JXQk9CV0JTQmCDQiNCj0JvQmNCI0JDQnQor0KHQldCT0JXQlNCYINCa0JDQoNCe0IkKK9Ch0JXQk9CV0JTQmC3QmtCe0JLQkNCn0JXQkiDQkdCg0JDQndCa0JAg0JTQoAor0KHQldCT0JXQlNCYINCa0KHQldCd0JjQiNCQCivQodCV0JPQldCU0Jgg0JvQldCe0J3QkAor0KHQldCT0JXQlNCYINCc0JDQoNCY0IjQkAor0KHQldCT0JXQlNCYINCc0JXQm9CY0KLQkAor0KHQldCT0JXQlNCYINCc0JjQm9CV0J3QkAor0KHQldCT0JXQlNCYINCh0JvQkNCS0JjQptCQCivQodCV0JPQldCU0Jgg0KHQotCV0JLQkNCdCivQodCV0JPQldCU0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KHQldCT0JXQlNCY0J3QkNCmINCU0KPQqNCa0J4KK9Ch0JXQk9CV0JTQmNCd0JDQpiDQndCQ0KLQkNCb0JjQiNCQCivQodCV0JPQldCU0JjQndCQ0KYg0JfQlNCg0JDQktCa0J4KK9Ch0JXQk9CV0JTQmNCd0KHQmtCYINCQ0KDQmtCQ0JTQmNCI0JUKK9Ch0JXQk9CV0JTQmNCd0KHQmtCYINCR0J7QiNCa0J4KK9Ch0JXQk9CV0JTQmNCd0KHQmtCYINCI0KPQm9CY0IjQkNCd0JAKK9Ch0JXQk9CV0JTQmNCd0KHQmtCYINCd0JXQodCi0J7QoAor0KHQldCT0JXQlNCY0J3QodCa0Jgg0KHQkNCS0JAKK9Ch0JXQk9CV0JTQmNCd0KHQmtCYINCi0J7QnNCQCivQodCV0JPQldCU0JjQndCh0JrQmCDQktCY0KLQntCc0JjQoAor0KHQldCT0Jgg0JvQkNCh0JvQngor0KHQldCT0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCV0JPQmNCLINCg0JDQndCa0J4KK9Ch0JXQmNCX0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0JXQmtCQ0Kcg0J/QldCi0JDQoAor0KHQldCa0JUg0JDQoNCf0JDQlAor0KHQldCa0JUg0JXQktCQCivQodCV0JrQlSDQmNCb0JjQiNCQCivQodCV0JrQlSDQiNCe0KHQmNCfCivQodCV0JrQlSDQmtCQ0KLQkNCg0JjQndCQCivQodCV0JrQlSDQodCi0JXQktCQ0J0KK9Ch0JXQmtCVINCh0KLQldCS0JDQnQor0KHQldCa0JXQiSDQiNCQ0J3QmAor0KHQldCa0JXQiSDQiNCe0KHQmNCfCivQodCV0JrQldCJINCc0JDQoNCY0IjQkAor0KHQldCa0JXQiSDQoNCj0JbQmNCm0JAKK9Ch0JXQmtCV0KDQldCoINCo0JDQndCU0J7QoAor0KHQldCa0JXQoNCV0Kgg0ILQo9Cb0JAKK9Ch0JXQmtCV0KDQldCoINCU0JXQndCV0KgKK9Ch0JXQmtCV0KDQldCoINCV0KLQldCbCivQodCV0JrQldCg0JXQqCDQpNCV0KDQldCd0KYg0JTQoCDQm9CV0JrQkNCgCivQodCV0JrQldCg0JXQqCDQpNCV0KDQldCd0KYKK9Ch0JXQmtCV0KDQldCoINCY0KjQotCS0JDQnQor0KHQldCa0JXQoNCV0Kgg0JjQqNCi0JLQkNCdCivQodCV0JrQldCg0JXQqCDQmNCg0JXQndCQCivQodCV0JrQldCg0JXQqCDQiNCe0JbQldCkCivQodCV0JrQldCg0JXQqCDQiNCj0JvQmNCI0JDQndCQCivQodCV0JrQldCg0JXQqCDQiNCj0JvQmNCI0JAKK9Ch0JXQmtCV0KDQldCoINCa0JDQoNCe0IkKK9Ch0JXQmtCV0KDQldCoINCa0JDQotCY0KbQkAor0KHQldCa0JXQoNCV0Kgg0JvQkNCI0J7QqCDQlNCY0J/QmyDQmNCd0JMKK9Ch0JXQmtCV0KDQldCoINCd0JDQndCU0J7QoAor0KHQldCa0JXQoNCV0Kgg0KHQotCV0JLQkNCdCivQodCV0JrQldCg0JXQqCDQotCY0JHQntCgCivQodCV0JrQldCg0JXQqCDQktCV0KDQkAor0KHQldCa0JXQoNCV0JfQntCS0JjQiyDQnNCY0JvQkNCdCivQodCV0JrQldCg0JjQiyDQodCi0JXQktCQ0J0KK9Ch0JXQmtCV0KDQo9CoINCI0JXQm9CY0KHQkNCS0JXQotCQCivQodCV0JrQldCg0KPQqCDQidCj0JHQmNCm0JAKK9Ch0JXQmtCV0KDQo9CoINCc0JjQm9Ca0JjQptCQCivQodCV0JrQldCg0KPQqCDQnNCY0KDQiNCQ0J3QkAor0KHQldCa0JXQoNCj0Kgg0J/QkNCS0JvQlQor0KHQldCa0JXQoNCj0Kgg0J/QldCi0JDQoAor0KHQldCa0JXQoNCj0Kgg0KHQotCQ0J3QmNCh0JvQkNCSCivQodCV0JrQldCg0KPQqCDQktCb0JDQlNCY0JzQmNCgCivQodCV0JrQmNCm0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQldCa0JjQptCa0Jgg0JXQnNCY0JvQmNCI0JAKK9Ch0JXQmtCY0KbQmtCYINCY0KHQmNCU0J7QoAor0KHQldCa0JjQptCa0Jgg0JvQkNCX0JDQoAor0KHQldCa0JjQptCa0Jgg0JzQkNCg0JjQptCQCivQodCV0JrQmNCm0JrQmCDQnNCY0JvQntCg0JDQlAor0KHQldCa0JjQptCa0Jgg0J/QldCi0JDQoAor0KHQldCa0JjQptCa0Jgg0JLQldCJ0JAKK9Ch0JXQmtCY0Jcg0JbQmNCS0JrQngor0KHQldCa0JjQlyDQmNCb0JjQiNCQCivQodCV0JrQmNCXINCI0J7QktCQ0J0KK9Ch0JXQmtCY0Jcg0JzQldCb0JDQndCY0IjQkAor0KHQldCa0JjQlyDQn9CV0KLQkNCgCivQodCV0JrQmNCXINCf0JXQotCQ0KAKK9Ch0JXQmtCY0Jcg0KDQkNCU0JjQktCe0IgKK9Ch0JXQmtCY0Jcg0KHQntCK0JAKK9Ch0JXQmtCe0KjQkNCdINCJ0KPQkdCY0KbQkAor0KHQldCa0J7QqNCQ0J0g0JzQkNCg0JjQndCQCivQodCV0JrQntCbINCc0JjQm9Ca0JAKK9Ch0JXQmtCe0KHQmtCYINCI0J7QnNCn0JUKK9Ch0JXQmtCe0JLQodCa0Jgg0KDQkNCU0JUKK9Ch0JXQmtCg0JXQiiDQiNCe0JbQldCkCivQodCV0JrQo9Cb0JjQiyDQp9CV0JTQmNCm0JAKK9Ch0JXQmtCj0JvQmNCLINCn0JXQlNCe0JzQmNCgCivQodCV0JrQo9Cb0JjQiyDQltCQ0KDQmtCeCivQodCV0JrQo9Cb0JjQiyDQltCY0JLQmtCeCivQodCV0JrQo9Cb0JjQiyDQltCY0JLQmtCeCivQodCV0JrQo9Cb0JjQiyDQltCY0JLQntCI0JjQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0JXQmtCj0JvQmNCLINCC0J7QoNCC0JUKK9Ch0JXQmtCj0JvQmNCLINCC0J7QoNCC0JUKK9Ch0JXQmtCj0JvQmNCLINCC0KPQoNCC0JjQptCQCivQodCV0JrQo9Cb0JjQiyDQgtCj0KDQkNCCCivQodCV0JrQo9Cb0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQldCa0KPQm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0JXQmtCj0JvQmNCLINCQ0J3QgtCV0JvQmtCQCivQodCV0JrQo9Cb0JjQiyDQkNCg0KHQldCd0JjQiNCVCivQodCV0JrQo9Cb0JjQiyDQkdCe0JbQmNCU0JDQoCDQlNCY0J/QmyDQmNCd0JMKK9Ch0JXQmtCj0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQldCa0KPQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCV0JrQo9Cb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JXQmtCj0JvQmNCLINCU0JDQndCVCivQodCV0JrQo9Cb0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KHQldCa0KPQm9CY0Isg0JTQkNCg0JjQndCa0JAKK9Ch0JXQmtCj0JvQmNCLINCU0JXQodCQ0J3QmtCQCivQodCV0JrQo9Cb0JjQiyDQlNCV0KHQkNCd0JrQkAor0KHQldCa0KPQm9CY0Isg0JTQntCh0KLQkAor0KHQldCa0KPQm9CY0Isg0JTQoNCQ0JPQkNCdCivQodCV0JrQo9Cb0JjQiyDQlNCg0JDQk9CY0KbQkAor0KHQldCa0KPQm9CY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQldCa0KPQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQldCa0KPQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQldCa0KPQm9CY0Isg0JTQo9Co0JDQnQor0KHQldCa0KPQm9CY0Isg0JTQo9Co0JDQnQor0KHQldCa0KPQm9CY0Isg0JTQo9Co0JDQnQor0KHQldCa0KPQm9CY0Isg0JTQo9Co0JDQnQor0KHQldCa0KPQm9CY0Isg0JjQm9CY0IjQkAor0KHQldCa0KPQm9CY0Isg0JjQm9CY0IjQkAor0KHQldCa0KPQm9CY0Isg0JjQktCQ0J0KK9Ch0JXQmtCj0JvQmNCLINCY0JLQkNCdCivQodCV0JrQo9Cb0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0JXQmtCj0JvQmNCLINCb0JDQl9CQ0KAKK9Ch0JXQmtCj0JvQmNCLINCJ0JjQidCQ0J3QkAor0KHQldCa0KPQm9CY0Isg0InQmNCJ0JDQndCQCivQodCV0JrQo9Cb0JjQiyDQidCj0JHQmNCo0JAKK9Ch0JXQmtCj0JvQmNCLINCJ0KPQkdCY0KbQkAor0KHQldCa0KPQm9CY0Isg0InQo9CR0JjQptCQCivQodCV0JrQo9Cb0JjQiyDQidCj0JHQmNCm0JAKK9Ch0JXQmtCj0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCV0JrQo9Cb0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JXQmtCj0JvQmNCLINCc0JDQoNCY0IjQkAor0KHQldCa0KPQm9CY0Isg0JzQkNCg0JjQiNCQCivQodCV0JrQo9Cb0JjQiyDQnNCY0IvQngor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCb0JXQndCQCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQldCd0JAKK9Ch0JXQmtCj0JvQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Ch0JXQmtCj0JvQmNCLINCc0JjQidCQCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQldCa0KPQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JXQmtCj0JvQmNCLINCc0JjQm9Ce0JLQkNCdCivQodCV0JrQo9Cb0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQldCa0KPQm9CY0Isg0JzQmNCb0J7QktCQ0J0KK9Ch0JXQmtCj0JvQmNCLINCc0JjQntCU0KDQkNCTCivQodCV0JrQo9Cb0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQldCa0KPQm9CY0Isg0JzQmNCg0JAKK9Ch0JXQmtCj0JvQmNCLINCc0JjQoNCI0JDQndCQCivQodCV0JrQo9Cb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQldCa0KPQm9CY0Isg0JzQmNCg0JrQngor0KHQldCa0KPQm9CY0Isg0J3QldCT0JjQptCQCivQodCV0JrQo9Cb0JjQiyDQndCV0JzQkNCK0JAKK9Ch0JXQmtCj0JvQmNCLINCe0JvQk9CQCivQodCV0JrQo9Cb0JjQiyDQntCb0JjQktCV0KDQkAor0KHQldCa0KPQm9CY0Isg0J/QkNCS0JvQlQor0KHQldCa0KPQm9CY0Isg0J/QkNCS0JvQlQor0KHQldCa0KPQm9CY0Isg0J/QldCi0JDQoCDQlNCgCivQodCV0JrQo9Cb0JjQiyDQn9CV0KLQkNCgCivQodCV0JrQo9Cb0JjQiyDQn9CV0KLQmtCeCivQodCV0JrQo9Cb0JjQiyDQoNCQ0JTQlQor0KHQldCa0KPQm9CY0Isg0KDQkNCU0JjQktCe0Igg0JzQoAor0KHQldCa0KPQm9CY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0JXQmtCj0JvQmNCLINCg0JDQlNCe0KHQkNCSCivQodCV0JrQo9Cb0JjQiyDQoNCj0JbQmNCm0JAKK9Ch0JXQmtCj0JvQmNCLINCh0JjQnNCeCivQodCV0JrQo9Cb0JjQiyDQodCb0JDQktCa0J4KK9Ch0JXQmtCj0JvQmNCLINCh0JzQmNCJ0JAKK9Ch0JXQmtCj0JvQmNCLINCh0J/QkNCh0JAKK9Ch0JXQmtCj0JvQmNCLINCh0J/QkNCh0J4KK9Ch0JXQmtCj0JvQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0KHQldCa0KPQm9CY0Isg0KHQotCQ0J3QntCI0JUKK9Ch0JXQmtCj0JvQmNCLINCh0KLQldCS0JDQnQor0KHQldCa0KPQm9CY0Isg0KHQotCV0JLQkNCdCivQodCV0JrQo9Cb0JjQiyDQodCi0J7QiNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCV0JrQo9Cb0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0JXQmtCj0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0JXQmtCj0JvQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0JXQmtCj0JvQmNCLINCi0JjQpdCe0JzQmNCgCivQodCV0JrQo9Cb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCV0JrQo9Cb0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCV0JrQo9Cb0JjQiyDQo9Ch0KLQmNCI0JDQndCa0JAKK9Ch0JXQmtCj0JvQmNCLINCS0JDQm9CV0J3QotCY0J3QkAor0KHQldCa0KPQm9CY0Isg0JLQldCd0J4KK9Ch0JXQmtCj0JvQmNCLINCS0JjQlNCe0IjQlQor0KHQldCa0KPQm9CY0Isg0JLQmNCd0JrQngor0KHQldCa0KPQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQldCa0KPQm9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQldCa0KPQm9CY0Isg0JLQm9CQ0JTQngor0KHQldCa0KPQm9CY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQldCa0KPQm9CY0Isg0JfQntCg0JDQnQor0KHQldCa0KPQm9CY0Isg0JfQntCg0JDQnQor0KHQldCa0KPQm9CY0Isg0JfQntCg0JAKK9Ch0JXQmtCj0JvQmNCLINCX0J7QoNCY0KbQkAor0KHQldCa0KPQm9Ce0JLQmNCLINCc0JjQpdCQ0JjQm9CeCivQodCV0JrQo9Cb0J7QktCY0Isg0JzQmNCb0JDQndCa0JAKK9Ch0JXQmtCj0JvQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0KHQldCa0KPQm9Ce0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ch0JXQmtCj0JvQntCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0JXQmyDQkNCd0JAKK9Ch0JXQmyDQiNCe0JbQldCkCivQodCV0Jsg0JvQkNCU0JjQodCb0JDQkgor0KHQldCb0JDQmiDQiNCe0JLQkNCdCivQodCV0JvQkNCaINCI0J7QktCeCivQodCV0JvQkNCaINCc0JjQoNCI0JDQndCQCivQodCV0JvQkNCaINCh0KLQldCS0JDQnQor0KHQldCb0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUg0JTQoCDQm9CV0JrQkNCgCivQodCV0JvQkNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAg0JTQoCDQm9CV0JrQkNCgCivQodCV0JvQkNCa0J7QktCY0Isg0InQo9CR0JjQodCQ0JIKK9Ch0JXQm9CQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQodCV0JvQkNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0JXQm9CQ0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCV0JvQkNCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQodCV0JvQkNCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KHQldCb0JDQmtCe0JLQmNCLINCh0KDQldCL0JrQngor0KHQldCb0JDQmtCe0JLQmNCLINCS0J7QiNCQCivQodCV0JvQldCoINCa0JDQoNCe0IkKK9Ch0JXQm9CV0Kgg0JrQkNCg0J7QiQor0KHQldCb0JXQqCDQnNCY0KXQkNCI0JvQngor0KHQldCb0JXQqNCYINCV0JvQl9CQCivQodCV0JvQldCo0Jgg0JXQotCV0JvQmtCQCivQodCV0JvQldCo0Jgg0JvQkNCU0JjQodCb0JDQkgor0KHQldCb0JXQqNCYINCb0JDQodCb0J4KK9Ch0JXQm9CV0KjQmCDQnNCQ0JPQlNCQ0JvQldCd0JAKK9Ch0JXQm9CV0KjQmCDQnNCQ0KDQmNCI0JAKK9Ch0JXQm9CV0KjQmCDQn9CQ0JsKK9Ch0JXQm9CV0KjQmCDQodCi0JXQktCQ0J0KK9Ch0JXQm9CV0KjQmCDQktCY0J3QptCVCivQodCV0JvQldCo0Jgg0JfQntCb0KLQkNCdCivQodCV0JvQldCd0JAg0IjQldCb0JXQndCQCivQodCV0JvQldCd0JAg0J3QmNCa0J7Qm9CQCivQodCV0JvQldCd0JjQiyDQkNCd0JrQmNCm0JAKK9Ch0JXQm9CYINCV0KLQldCb0JrQkAor0KHQldCb0Jgg0JjQqNCi0JLQkNCdINCU0KAKK9Ch0JXQm9CYINCc0JjQmtCb0J7QqAor0KHQldCb0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQodCV0JvQmNCLINCc0JjQi9CeCivQodCV0JvQmNCLINCc0JjQm9Ce0KgKK9Ch0JXQm9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JXQm9CY0KUg0JTQkNCd0JjQm9CeCivQodCV0JvQmNClINCU0KDQkNCT0J4KK9Ch0JXQm9CY0Jog0IjQntCh0JjQnwor0KHQldCb0JjQmiDQm9CQ0JTQmNCh0JvQkNCSCivQodCV0JvQmNCc0J7QktCY0Isg0JzQo9Ch0KLQkNCk0JAKK9Ch0JXQm9CY0J3Qk9CV0KAg0JPQkNCR0KDQmNCI0JXQm9CQCivQodCV0InQkNCa0J7QkiDQndCQ0JTQkAor0KHQldCb0JzQkNCdINCl0JDQmtCY0IjQkAor0KHQldCb0KHQmtCYINCQ0J3QkAor0KHQldCb0KHQmtCYINCc0JDQoNCY0IjQkAor0KHQldCb0JLQldCgINCQ0JvQmNCd0JDQgtCYCivQodCV0JzQkNCdINCI0J7QkNCa0JjQnAor0KHQldCc0JXQlNCV0KAg0JTQmNCc0JjQotCg0JjQiNCVCivQodCV0JzQldCU0JXQoCDQodCj0JfQkNCd0JAKK9Ch0JXQnNCV0JTQldCgINCh0KPQl9CQ0J3QkAor0KHQldCc0JXQmiDQp9CQ0JHQkAor0KHQldCc0JXQmiDQp9CY0JvQkAor0KHQldCc0JXQndCh0JrQmCDQmtCe0KDQndCV0JvQmNCI0JAKK9Ch0JXQnNCV0KDQldCU0Jgg0IjQntCW0JXQpAor0KHQldCc0JXQoNCV0JTQmCDQktCV0KDQkAor0KHQldCc0JjQlyDQmtCQ0KLQmNCm0JAKK9Ch0JXQnNCY0JfQntCS0JjQiyDQodCQ0JTQmNCaCivQodCV0JzQndCY0KYg0KDQo9CU0J7Qm9CkINCU0KAKK9Ch0JXQnSDQnNCQ0KDQotCY0J0KK9Ch0JXQndCn0KPQmiDQodCb0JDQktCY0KbQkAor0KHQldCd0KfQo9CaINCh0KLQldCS0J4KK9Ch0JXQndCL0JDQndCh0JrQmCDQiNCj0JvQmNCI0JAKK9Ch0JXQndCL0JDQndCh0JrQmCDQmtCQ0KLQmNCm0JAKK9Ch0JXQndCL0JDQndCh0JrQmCDQndCQ0JTQkAor0KHQldCd0IvQkNCd0KHQmtCYINCf0JXQotCQ0KAKK9Ch0JXQndCL0JDQndCh0JrQmCDQl9Ce0KDQkAor0KHQldCd0JDQqNCYINCb0JDQlNCY0KHQm9CQ0JIKK9Ch0JXQndCm0Jgg0JvQkNCU0JjQodCb0JDQkgor0KHQldCd0JTQldCg0JDQmiDQgtCj0KDQkAor0KHQldCd0JTQldCg0JDQmiDQldCj0JPQldCdCivQodCV0J3QlNCV0KDQkNCaINCb0JjQlNCY0IjQkAor0KHQldCd0JTQldCg0JDQmiDQnNCV0JvQkNCd0JjQiNCQCivQodCV0J3QlNCV0KDQkNCaINCc0JjQoNCa0J4KK9Ch0JXQndCU0JXQoNCQ0Jog0J3QmNCa0J7Qm9CQCivQodCV0J3QlNCV0KDQkNCaINCf0JXQotCQ0KAKK9Ch0JXQndCU0JXQoNCQ0Jog0KHQmNCb0JLQldCh0KLQldCgCivQodCV0J3QldCo0Jgg0IjQldCb0JXQndCQCivQodCV0J3QmNCLINCQ0J3QmNCm0JAKK9Ch0JXQndCY0Isg0JjQktCQ0J3QmtCQCivQodCV0J3QmNCLINCb0JDQl9CQ0KAKK9Ch0JXQndCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JXQndCY0Isg0KDQmNCh0KLQngor0KHQldCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCV0IrQldCoINCo0JDQndCU0J7QoAor0KHQldCK0Jgg0JDQk9Ce0KjQotCe0J0g0JTQoCDQm9CV0JrQkNCgCivQodCV0IrQmCDQmNCb0J7QndCQCivQodCV0IrQmCDQmNCg0JXQndCQCivQodCV0J3QotCVINCJ0KPQkdCY0KbQkAor0KHQldCd0KLQlSDQn9CV0KLQkNCgCivQodCV0J3QotCY0J0g0KfQldCU0J7QnNCY0KAKK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCC0J7QoNCC0JUKK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCc0JDQoNCa0J4KK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCc0JjQm9CQ0J0KK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCc0JjQm9Ce0KgKK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCc0J7QnNCY0KAKK9Ch0JXQndCi0JjQktCQ0J3QkNCmINCh0JDQktCQCivQodCV0J3QotCY0JLQkNCd0JDQpiDQodCS0JXQotCb0JDQndCQCivQodCV0J3QotCY0JLQkNCd0JDQpiDQotCe0JTQntCgCivQodCV0J3QotCY0JLQkNCd0JDQpiDQktCV0KHQndCQCivQodCV0J3QotCc0JDQoNCi0J7QndCYINCk0JXQoNCV0J3Qpgor0KHQldCfINCQ0J3QotCQ0JsKK9Ch0JXQnyDQlNCV0JbQlSDQlNCgINCb0JXQmtCQ0KAKK9Ch0JXQnyDQpNCV0KDQldCd0KYKK9Ch0JXQny3QktCQ0KDQk9CQINCV0JzQmNCb0JjQiNCQCivQodCV0KDQkNCk0JjQnNCe0JIg0JrQmNCg0JjQmwor0KHQldCg0JDQotCb0JjQiyDQp9CV0JTQntCc0JjQoAor0KHQldCg0JDQotCb0JjQiyDQlNCQ0KDQmtCQCivQodCV0KDQkNCi0JvQmNCLINCT0J7Qm9Cj0JEKK9Ch0JXQoNCQ0KLQm9CY0Isg0JzQmNCg0JDQqAor0KHQldCg0JDQotCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQldCg0JDQotCb0JjQiyDQktCV0JvQmNCc0JjQoCDQlNCgCivQodCV0KDQkNCi0JvQmNCLINCX0J7QoNCQ0J0KK9Ch0JXQoNCU0JAg0KjQkNCd0JTQntCgCivQodCV0KDQlNCQ0KAg0JTQkNCd0JjQptCQCivQodCV0KDQlNCQ0KAg0JjQm9CY0IjQkAor0KHQldCg0JTQkNCgINCc0JDQoNCQCivQodCV0KDQlNCQ0KAg0JzQm9CQ0JTQldCdCivQodCV0KDQlNCQ0KAg0J3QldCU0JXQidCa0J4KK9Ch0JXQoNCU0JDQoCDQn9CV0KLQkNCgCivQodCV0KDQlNCQ0KAg0J/QldCi0JDQoAor0KHQldCg0JTQkNCg0JXQktCY0Isg0IvQkNCX0JjQnAor0KHQldCg0JTQkNCg0JXQktCY0Isg0JPQmNCX0JXQm9CQCivQodCV0KDQldCo0Jgg0KTQldCg0JXQndCmCivQodCV0KDQldCo0Jgg0JjQqNCi0JLQkNCdCivQodCV0KDQldCo0Jgg0JvQkNCh0JvQngor0KHQldCg0JXQqNCYINCg0J7Ql9CQ0JvQmNCI0JAKK9Ch0JXQoNCV0KjQmCDQodCi0JXQktCQ0J0KK9Ch0JXQoNCV0KjQmCDQotCY0JHQntCgCivQodCV0KDQldCd0KfQlSDQm9CQ0JTQmNCh0JvQkNCSCivQodCV0KDQldCd0KfQldCoINCI0J7QltCV0KQg0J3QntCS0JjQndCQ0KAKK9Ch0JXQoNCd0JXQpiDQodCi0JXQktCQ0J0KK9Ch0JXQoNCi0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JXQoNCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JXQoNCi0JjQiyDQnNCQ0KLQmNCI0JAKK9Ch0JXQoNCi0JjQiyDQnNCY0JvQkNCdCivQodCV0KDQotCY0Isg0JLQm9CQ0JTQkAor0KHQldCi0JXQndCn0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQldCS0JXQoCDQqNCY0JzQlQor0KHQldCS0JXQoNCY0J3QmCDQiNCQ0J0KK9Ch0JXQktCY0Isg0ILQntCg0ILQlQor0KHQldCS0JjQiyDQoNCQ0JTQldCd0JrQngor0KHQldCS0JrQmNCLINCR0KDQkNCd0JrQngor0KHQldCS0JrQmNCLINCc0JDQk9CU0JDQm9CV0J3QkAor0KHQmNCnINCQ0J3QlNCg0JjQiNCQCivQodCY0Kcg0JTQoNCQ0JPQkNCdCivQodCY0Kcg0KTQldCg0JXQndCmCivQodCY0Kcg0JjQnNCg0JUKK9Ch0JjQpyDQiNCe0JbQldCkCivQodCY0Kcg0IjQntCh0JjQnwor0KHQmNCnINCI0J7QodCY0J8KK9Ch0JjQpyDQiNCj0JvQmNCI0JDQndCQCivQodCY0Kcg0JrQkNCb0JzQkNCdCivQodCY0Kcg0JrQkNCb0JzQkNCdCivQodCY0Kcg0JzQkNCg0JPQmNCi0JAKK9Ch0JjQpyDQnNCQ0KDQmNCI0JAKK9Ch0JjQpyDQnNCQ0KDQmNCI0JAKK9Ch0JjQpyDQnNCY0KXQkNCJCivQodCY0Kcg0JzQmNCg0J7QodCb0JDQktCQCivQodCY0Kcg0J/QldCi0JDQoCDQlNCgINCb0JXQmtCQ0KAKK9Ch0JjQpyDQn9CY0KDQntCo0JrQkAor0KHQmNCnINCh0KLQldCS0JDQnQor0KHQmNCnINCh0KLQldCS0JDQnQor0KHQmNCnINCh0KLQldCS0JDQnQor0KHQmNCnINCi0JXQoNCV0JfQkAor0KHQmNCnINCS0JvQkNCU0JjQodCb0JDQkgor0KHQmNCnINCX0JvQkNCi0JrQngor0KHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0JjQiyDQodCb0JDQgtCQ0J3QkAor0KHQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0KHQmNCLINCh0KLQkNCd0JrQngor0KHQmNCC0Jgg0JzQmNCg0JrQngor0KHQmNCR0JXQoCDQmNCo0KLQktCQ0J0KK9Ch0JjQkdCV0KAg0JjQqNCi0JLQkNCdCivQodCY0JHQmNCd0JDQpiDQktCj0JrQmNCm0JAKK9Ch0JjQkdCY0J3QmtCY0Isg0J/QldCi0JDQoAor0KHQmNCR0JjQndCa0JjQiyDQoNCQ0KLQmtCeCivQodCY0JHQmNCd0JrQmNCLINCg0JDQotCa0J4KK9Ch0JjQkdCY0J3QmtCY0Isg0JLQkNCh0JAKK9Ch0JjQkdCY0J3QntCSINCd0JjQmtCe0JvQkAor0KHQmNCR0JjQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQodCY0JHQmNCd0KHQmtCYINCS0JjQlNCQCivQodCY0I/QmNCc0J7QodCa0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQodCY0JTQntCgINCL0JjQoNCY0Jsg0JTQoAor0KHQmNCT0JXQotCYLdCR0JjQp9Ca0JXQmCDQkNCT0J7QotCQCivQodCY0JPQldCi0Jgg0IjQkNCo0JAKK9Ch0JjQk9CV0KLQmCDQiNCQ0J3QntCoCivQodCY0JPQldCi0Jgg0KHQotCV0JLQkNCdCivQodCY0JrQkCDQpNCg0JDQitCQCivQodCY0JrQkCDQmNCg0JXQndCQCivQodCY0JrQmNCc0JjQiyDQkNCd0ILQldCb0JrQkAor0KHQmNCa0JjQnNCY0Isg0J3QntCS0JDQmgor0KHQmNCa0JjQnNCY0Isg0KHQoNCC0JDQnQor0KHQmNCa0JjQnNCY0Isg0KHQoNCC0JDQnQor0KHQmNCa0JjQoNCY0KbQkCDQnNCY0KDQiNCQ0J3QkAor0KHQmNCa0J7QoNCQINCa0JDQoNCe0IkKK9Ch0JjQmtCe0KDQkCDQm9CQ0JTQmNCh0JvQkNCSCivQodCY0JrQntCg0JAg0J/QldCi0JDQoAor0KHQmNCb0JDQqNCa0Jgg0JjQm9CY0IjQkAor0KHQmNCb0JDQqNCa0Jgg0KDQkNCU0J7QktCQ0J0KK9Ch0JjQm9CQ0KjQmtCYINCh0JvQkNCS0JrQngor0KHQmNCb0JDQqNCa0Jgg0KHQndCV0JbQkNCd0JAKK9Ch0JjQm9CQ0KjQmtCYINCS0JXQoNCQCivQodCY0JvQkNCo0JrQmCDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0KHQmNCb0JDQgtCV0JIg0KDQo9CW0JjQptCQCivQodCY0JvQkNCC0Jgg0KjQkNCd0JTQntCgCivQodCY0JvQkNCC0Jgg0JDQndCU0KDQkNCoCivQodCY0JvQkNCC0Jgg0KTQoNCQ0IrQkAor0KHQmNCb0JDQgtCYINCT0JjQl9CV0JvQkAor0KHQmNCb0JDQgtCYINCY0KjQotCS0JDQnQor0KHQmNCb0JDQgtCYINCY0JzQoNCVCivQodCY0JvQkNCC0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ch0JjQm9CQ0ILQmCDQmtCQ0KDQntCJCivQodCY0JvQkNCC0Jgg0JvQkNCU0JjQodCb0JDQkgor0KHQmNCb0JDQgtCYINCb0JDQodCb0J4g0JLQkNCI0JDQoAor0KHQmNCb0JDQgtCYINCb0JDQodCb0J4KK9Ch0JjQm9CQ0ILQmCDQm9CQ0KHQm9CeCivQodCY0JvQkNCC0Jgg0JvQkNCh0JvQngor0KHQmNCb0JDQgtCYINCJ0KPQlNCV0JLQmNCiCivQodCY0JvQkNCC0Jgg0InQo9CU0JXQktCY0KIKK9Ch0JjQm9CQ0ILQmCDQnNCQ0KDQmNCI0JAKK9Ch0JjQm9CQ0ILQmCDQnNCY0JrQm9Ce0KgKK9Ch0JjQm9CQ0ILQmCDQoNCe0JfQkNCb0JjQiNCQCivQodCY0JvQkNCC0Jgg0KLQldCg0JXQl9CQCivQodCY0JvQkNCC0Jgg0JLQmNCa0KLQntCg0JjQiNCQCivQodCY0JvQkNCaINCQ0J3QlNCg0JDQqAor0KHQmNCb0JDQmiDQk9CY0JfQldCb0JAKK9Ch0JjQm9CQ0Jog0JjQqNCi0JLQkNCdCivQodCY0JvQkNCaINCX0J7Qm9Ci0JDQnQor0KHQmNCb0JHQkNCo0JrQmCDQlNCe0KjQmtCeCivQodCY0JvQkdCQ0KjQmtCYINCJ0KPQkdCY0KbQkAor0KHQmNCb0JHQkNCo0JrQmCDQnNCQ0KDQiNCQ0J0KK9Ch0JjQm9CR0JDQqNCa0Jgg0JfQntCg0JDQnQor0KHQmNCb0JHQldCg0KXQntCb0KYg0KHQotCV0JLQkNCdCivQodCY0JvQldCgINCC0KPQm9CQCivQodCY0JvQldCgINCU0KPQqNCY0KbQkAor0KHQmNCb0JXQoCDQk9Cj0KHQotCQ0JIKK9Ch0JjQm9CV0KAg0JrQkNCg0JsKK9Ch0JjQidCQ0J3QntCS0KHQmtCYINCU0JDQoNCa0J4KK9Ch0JjQidCQ0J3QntCS0KHQmtCYINCI0J7QltCVCivQodCY0JvQndCYINCh0JvQkNCS0J3QkAor0KHQmNCb0JLQkNCo0Jgg0KjQkNCd0JTQntCgCivQodCY0JvQktCQ0KjQmCDQiNCQ0J3QntCoCivQodCY0JvQktCQ0KjQmCDQmtCQ0KDQntCJCivQodCY0JvQktCV0KHQotCg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQodCY0JvQktCV0KHQotCg0J7QktCY0Isg0KLQkNCd0JDQodCY0IjQlQor0KHQmNCc0KfQmNCdINCc0JjQpdCQ0IjQm9CeCivQodCY0JzQkNCd0JjQiyDQmNCb0JjQiNCQCivQodCY0JzQkNCd0JjQiyDQiNCV0JfQlNCY0JzQmNCgCivQodCY0JzQkNCd0JjQiyDQn9CV0KLQmtCeCivQodCY0JzQkNCd0JjQiyDQoNCQ0IjQmtCQCivQodCY0JzQkNCd0JjQiyDQodCQ0JLQkAor0KHQmNCc0JXQndCU0JjQiyDQkdCe0JbQkAor0KHQmNCc0JXQndCU0JjQiyDQk9Ce0KDQkNCdCivQodCY0JzQldCd0JTQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0JjQnNCV0J3QlNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQmNCc0JXQndCi0JjQiyDQiNCe0JLQkNCdCivQodCY0JzQldCd0KLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0JjQnNCV0J7QndCe0JIg0J/QkNCS0JvQlQor0KHQmNCc0JXQntCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KHQmNCc0JXQntCd0J7QkiDQl9CU0KDQkNCS0KfQngor0KHQmNCc0JXQntCd0J7QktCY0Isg0ILQntCg0ILQlQor0KHQmNCc0JXQntCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ch0JjQnNCV0J7QndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0JjQnNCV0J7QndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQodCY0JzQldCi0JjQiyDQnNCe0JzQp9CY0JvQngor0KHQmNCc0JXQotCY0Isg0J7QodCi0J7QiNCQCivQodCY0JzQldCj0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCY0JzQldCj0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0JjQnNCV0KPQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0IjQkNCd0JrQngor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9Ch0JjQnNCV0KPQndCe0JLQmNCLINCd0JXQktCV0J3QmtCQCivQodCY0JzQldCj0J3QntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0KHQkNCS0JAKK9Ch0JjQnNCV0KPQndCe0JLQmNCLINCh0JjQnNCeCivQodCY0JzQldCj0J3QntCS0JjQiyDQodCY0JzQngor0KHQmNCc0JXQo9Cd0J7QktCY0Isg0KHQoNCV0KLQldCdCivQodCY0JzQldCj0J3QntCS0JjQiyDQktCb0JDQlNCQCivQodCY0JzQmNCn0JjQiyDQlNCg0JDQk9CQ0J3QkAor0KHQmNCc0JjQqNCY0Isg0KDQkNCU0J7QiNCY0KbQkAor0KHQmNCc0JjQiyDQp9CV0JTQkAor0KHQmNCc0JjQiyDQltCY0JLQntCI0JjQnQor0KHQmNCc0JjQiyDQltCY0JLQntCI0JjQnQor0KHQmNCc0JjQiyDQgtCj0KDQgtCV0JLQmtCQCivQodCY0JzQmNCLINCC0KPQoNCQCivQodCY0JzQmNCLINCC0KPQoNCeCivQodCY0JzQmNCLINCQ0KbQkAor0KHQmNCc0JjQiyDQkNCU0JDQnAor0KHQmNCc0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQmNCc0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQmNCc0JjQiyDQkNCd0ILQldCb0JrQkAor0KHQmNCc0JjQiyDQkdCe0KjQmtCeCivQodCY0JzQmNCLINCR0J7QiNCQ0J3QkAor0KHQmNCc0JjQiyDQkdCe0KDQkAor0KHQmNCc0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCY0JzQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0JjQnNCY0Isg0JHQntCg0JrQkAor0KHQmNCc0JjQiyDQkdCe0KHQmNCJ0JrQkAor0KHQmNCc0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JjQnNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCY0JzQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQmNCc0JjQiyDQkdCg0JDQndCa0J4KK9Ch0JjQnNCY0Isg0JHQo9CU0JjQnNCY0KAKK9Ch0JjQnNCY0Ist0KbQpdCQ0JvQkNCR0Jgg0JTQoNCQ0JPQkNCd0JAKK9Ch0JjQnNCY0Isg0KbQktCV0KLQmNCdCivQodCY0JzQmNCLINCU0JXQiNCQ0J0KK9Ch0JjQnNCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQodCY0JzQmNCLINCU0J7QkdCg0JjQktCe0IjQlQor0KHQmNCc0JjQiyDQlNCe0IjQp9CY0J0KK9Ch0JjQnNCY0Isg0JTQoNCQ0JPQkNCdCivQodCY0JzQmNCLINCU0KDQkNCT0JjQptCQCivQodCY0JzQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0JjQnNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQmNCc0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQodCY0JzQmNCLINCU0KPQqNCQ0J3QmtCQCivQodCY0JzQmNCLINCU0KPQqNCQ0J0KK9Ch0JjQnNCY0Isg0JTQo9Co0JDQnQor0KHQmNCc0JjQiyDQlNCj0KjQmNCm0JAKK9Ch0JjQnNCY0Isg0JPQntCI0JrQngor0KHQmNCc0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KHQmNCc0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQodCY0JzQmNCLINCl0JXQoNCc0JjQndCQINCU0KAKK9Ch0JjQnNCY0Isg0JjQm9CY0IjQkAor0KHQmNCc0JjQiyDQmNCb0J7QndCa0JAKK9Ch0JjQnNCY0Isg0JjQktCQ0J0KK9Ch0JjQnNCY0Isg0IjQldCb0JXQndCQCivQodCY0JzQmNCLINCI0J7QktCQ0J0KK9Ch0JjQnNCY0Isg0IjQntCS0JDQnQor0KHQmNCc0JjQiyDQiNCe0JLQmNCm0JAKK9Ch0JjQnNCY0Isg0IjQntCS0J4KK9Ch0JjQnNCY0Isg0IjQntCS0J4KK9Ch0JjQnNCY0Isg0IjQo9CU0JjQogor0KHQmNCc0JjQiyDQmtCg0JjQodCi0JjQndCQCivQodCY0JzQmNCLINCJ0JjQidCQ0J3QkAor0KHQmNCc0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JjQnNCY0Isg0JzQkNCg0JjQiNCQCivQodCY0JzQmNCLINCc0JDQoNCY0IjQkAor0KHQmNCc0JjQiyDQnNCY0KbQkAor0KHQmNCc0JjQiyDQnNCY0KXQkNCY0JvQngor0KHQmNCc0JjQiyDQnNCY0JvQkNCdCivQodCY0JzQmNCLINCc0JjQm9CQ0J0KK9Ch0JjQnNCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0JjQiyDQnNCY0JvQldCd0JAKK9Ch0JjQnNCY0Isg0JzQmNCb0JjQptCQCivQodCY0JzQmNCLINCc0JjQm9CY0IjQkAor0KHQmNCc0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQmNCc0JjQiyDQnNCY0JvQntCoCivQodCY0JzQmNCLINCc0JjQm9Ce0KgKK9Ch0JjQnNCY0Isg0JzQmNCb0J7QqAor0KHQmNCc0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQmNCc0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQmNCc0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQmNCc0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQmNCc0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQmNCc0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQmNCc0JjQiyDQnNCY0KDQmtCeCivQodCY0JzQmNCLINCc0J7QnNCn0JjQm9CeCivQodCY0JzQmNCLINCc0J7QnNCn0JjQm9CeCivQodCY0JzQmNCLINCc0J7QnNCn0JjQm9CeCivQodCY0JzQmNCLINCc0J7QnNCn0JjQm9CeCivQodCY0JzQmNCLINCd0JDQlNCQCivQodCY0JzQmNCLINCd0JDQlNCQCivQodCY0JzQmNCLINCd0JDQoNCQ0J3Qp9CQCivQodCY0JzQmNCLINCd0JXQgtCeCivQodCY0JzQmNCLINCd0JXQlNCV0InQmtCeCivQodCY0JzQmNCLINCd0JXQnNCQ0IrQkAor0KHQmNCc0JjQiyDQndCV0JLQldCd0JrQkAor0KHQmNCc0JjQiyDQndCY0JrQntCb0JAKK9Ch0JjQnNCY0Isg0J3QmNCa0J7Qm9CQCivQodCY0JzQmNCLINCd0J7QktCQ0JoKK9Ch0JjQnNCY0Isg0J3QntCS0JDQmgor0KHQmNCc0JjQiyDQndCe0JLQkNCaCivQodCY0JzQmNCLINCe0JvQk9CQCivQodCY0JzQmNCLINCe0KHQotCe0IjQkAor0KHQmNCc0JjQiyDQn9CQ0J3QotCV0JvQmNCI0JAKK9Ch0JjQnNCY0Isg0J/QkNCS0JvQlQor0KHQmNCc0JjQiyDQn9CV0KLQkNCgCivQodCY0JzQmNCLINCg0JDQlNCQCivQodCY0JzQmNCLINCg0JDQlNCV0J3QmtCeCivQodCY0JzQmNCLINCg0JDQlNCV0J3QmtCeCivQodCY0JzQmNCLINCg0JDQlNCY0KHQkNCSCivQodCY0JzQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ch0JjQnNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0KHQmNCc0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KHQmNCc0JjQiyDQoNCQ0JTQntCI0JUKK9Ch0JjQnNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ch0JjQnNCY0Isg0KDQkNCI0JrQngor0KHQmNCc0JjQiyDQoNCj0JbQmNCm0JAKK9Ch0JjQnNCY0Isg0KDQo9CW0JjQptCQCivQodCY0JzQmNCLINCh0JDQktCQCivQodCY0JzQmNCLINCh0JjQnNCQCivQodCY0JzQmNCLINCh0JjQndCY0KjQkAor0KHQmNCc0JjQiyDQodCb0JDQlNCQCivQodCY0JzQmNCLINCh0JvQkNCS0JrQngor0KHQmNCc0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCY0JzQmNCLINCh0KDQgtCQ0J0KK9Ch0JjQnNCY0Isg0KHQoNCV0KLQldCdCivQodCY0JzQmNCLINCh0KLQldCS0JDQnQor0KHQmNCc0JjQiyDQodCi0JXQktCQ0J0KK9Ch0JjQnNCY0Isg0KHQotCV0JLQkNCdCivQodCY0JzQmNCLINCh0KLQntCI0JDQndCa0JAKK9Ch0JjQnNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQodCY0JzQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KHQmNCc0JjQiyDQotCY0KXQntCc0JjQoAor0KHQmNCc0JjQiyDQotCY0KXQntCc0JjQoAor0KHQmNCc0JjQiyDQotCe0JTQlQor0KHQmNCc0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCY0JzQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0JjQnNCY0Isg0JLQkNCI0JrQkAor0KHQmNCc0JjQiyDQktCQ0KHQkAor0KHQmNCc0JjQiyDQktCV0KDQntCd0JrQkAor0KHQmNCc0JjQiyDQktCV0KHQldCb0JrQngor0KHQmNCc0JjQiyDQktCY0J3QmtCQCivQodCY0JzQmNCLINCS0JvQkNCU0JUKK9Ch0JjQnNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQmNCc0JjQiyDQktCb0JDQlNCeCivQodCY0JzQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0JjQnNCY0Isg0JfQm9CQ0KLQmNCc0JjQoAor0KHQmNCc0JjQiyDQl9Ce0KDQkNCdCivQodCY0JzQmNCLINCX0J7QoNCQ0J0KK9Ch0JjQnNCY0Isg0JfQntCg0JDQnQor0KHQmNCc0JjQiyDQl9Ce0KDQkAor0KHQmNCc0JjQiyDQl9Ce0KDQkAor0KHQmNCc0JjQiyDQl9Ce0KDQmNCm0JAKK9Ch0JjQnNCY0Isg0JfQntCg0JrQkAor0KHQmNCc0JjQi9CV0JLQmNCLINCg0JDQlNCe0JzQkNCdCivQodCY0JzQmNCI0J7QndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JjQnNCY0JrQmNCLINCI0J7QktCQ0J0KK9Ch0JjQnNCY0JvQldCK0Jgg0JTQo9Co0JjQptCQCivQodCY0JzQmNCdINCW0JjQktCa0JAKK9Ch0JjQnNCY0J0g0JbQmNCS0J7QiNCY0J0KK9Ch0JjQnNCY0J0g0JDQndCC0JXQm9Ca0JAKK9Ch0JjQnNCY0J0g0JDQoNCQ0J3QmtCQCivQodCY0JzQmNCdINCm0JLQldCi0JrQngor0KHQmNCc0JjQnSDQlNCQ0J3QmNCm0JAKK9Ch0JjQnNCY0J0g0JTQkNCd0JjQm9CeCivQodCY0JzQmNCdINCU0JjQndCQCivQodCY0JzQmNCdINCU0KDQkNCT0JDQnQor0KHQmNCc0JjQnSDQpdCY0JvQlNCQCivQodCY0JzQmNCdINCY0JLQkNCd0JrQkAor0KHQmNCc0JjQnSDQmNCS0JDQnQor0KHQmNCc0JjQnSDQiNCQ0KjQkAor0KHQmNCc0JjQnSDQiNCV0JvQldCd0JAKK9Ch0JjQnNCY0J0g0JrQntCh0KLQkAor0KHQmNCc0JjQnSDQm9CQ0JfQkNCgCivQodCY0JzQmNCdINCb0JXQn9Ce0KHQkNCS0JAKK9Ch0JjQnNCY0J0g0InQo9CR0JjQptCQCivQodCY0JzQmNCdINCc0JDQk9CU0JAKK9Ch0JjQnNCY0J0g0JzQmNCb0JXQndCQCivQodCY0JzQmNCdINCc0JjQm9CY0KbQkAor0KHQmNCc0JjQnSDQnNCY0JvQmNCm0JAKK9Ch0JjQnNCY0J0g0JzQmNCb0JjQktCe0IgKK9Ch0JjQnNCY0J0g0JzQmNCb0JjQktCe0IgKK9Ch0JjQnNCY0J0g0JzQmNCb0KPQotCY0J0KK9Ch0JjQnNCY0J0g0JzQmNCg0J7QodCb0JDQkgor0KHQmNCc0JjQnSDQndCQ0JTQkAor0KHQmNCc0JjQnSDQndCQ0JTQkAor0KHQmNCc0JjQnSDQndCV0JHQntCI0KjQkAor0KHQmNCc0JjQnSDQn9CQ0JLQm9CVCivQodCY0JzQmNCdINCf0JXQotCQ0KAKK9Ch0JjQnNCY0J0g0KDQkNCU0JjQptCQCivQodCY0JzQmNCdINCg0JDQlNCY0JLQntCI0JUKK9Ch0JjQnNCY0J0g0KDQkNCU0J7QiNCY0KbQkAor0KHQmNCc0JjQnSDQoNCQ0JTQntCS0JDQnQor0KHQmNCc0JjQnSDQodCY0J3QmNCo0JAKK9Ch0JjQnNCY0J0g0KHQntCk0JjQiNCQCivQodCY0JzQmNCdINCh0KLQldCS0JDQnQor0KHQmNCc0J7QndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQktCQCivQodCY0JzQntCd0J7QktCY0Isg0KXQoNCY0KHQotCY0J3QkAor0KHQmNCc0J7QndCe0JLQmNCLINCY0KDQldCd0JAg0JTQoAor0KHQmNCc0J7QndCe0JLQmNCLINCc0JjQm9CVCivQodCY0JzQntCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0JjQnNCe0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQmNCc0J7QndCe0JLQmNCLINCd0JDQlNCQCivQodCY0JzQntCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCY0JzQntCd0J7QktCY0Isg0J/QldCi0JDQoAor0KHQmNCc0J7QndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JjQnNCe0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCY0JzQntCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQmNCc0J7QndCe0JLQodCa0Jgg0KTQmNCd0JrQkAor0KHQmNCc0J7QndCe0JLQodCa0Jgg0JzQmNCi0JAKK9Ch0JjQnNCe0KLQmNCdINCg0JDQlNCe0JLQkNCdCivQodCY0JzQntCS0JjQiyDQltCV0InQmtCeCivQodCY0JzQntCS0JjQiyDQltCY0JLQntCi0JAKK9Ch0JjQnNCe0JLQmNCLINCQ0J3QmtCQCivQodCY0JzQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQoAor0KHQmNCc0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQmNCc0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQmNCc0J7QktCY0Isg0JTQoNCQ0JPQngor0KHQmNCc0J7QktCY0Isg0IjQntCS0JAKK9Ch0JjQnNCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0KHQmNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQmNCc0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQmNCc0J7QktCY0Isg0JzQmNCg0JrQngor0KHQmNCc0J7QktCY0Isg0JzQmNCi0JDQoAor0KHQmNCc0J7QktCY0Isg0J/QldCi0JDQoAor0KHQmNCc0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0KHQmNCc0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ch0JjQnNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0J/QoNCe0KTQldCh0J7QoAor0KHQmNCc0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQmNCc0J7QktCY0Isg0KLQntCU0J7QoAor0KHQmNCc0J7QktCY0Isg0JLQmNCU0JDQmgor0KHQmNCc0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQmNCc0J7QktCJ0JXQktCY0Isg0IjQntCm0JAKK9Ch0JjQnNCj0J3QmNCLINCW0JXQm9CY0JzQmNCgCivQodCY0JzQo9Cd0JjQiyDQkNCd0JTQoNCY0IjQkAor0KHQmNCc0KPQndCY0Isg0JzQkNCT0JTQkAor0KHQmNCc0KPQndCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KHQmNCc0KPQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQmNCc0KPQndCe0JLQmNCLINCc0JjQm9Cj0J0KK9Ch0JjQnNCj0KDQlNCY0Isg0JzQmNCb0JDQnQor0KHQmNCc0KPQoNCU0JjQiyDQn9CV0KLQkNCgCivQodCY0JzQo9Cg0JTQmNCLINCS0JjQotCe0JzQmNCgCivQodCY0J3Qp9CY0Isg0JfQktCe0J3QmNCc0JjQoAor0KHQmNCd0ILQldCb0JjQiyDQidCj0JHQmNCh0JDQkgor0KHQmNCd0ILQldCb0JjQiyDQnNCY0JvQntCoCivQodCY0J3QgtCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0JjQndCQ0JTQmNCd0J7QktCY0Isg0JLQntCI0J4KK9Ch0JjQndCQ0J3QmCDQkNCR0JTQo9Cb0JAKK9Ch0JjQndCQ0J3QmCDQnNCY0JvQmNCm0JAKK9Ch0JjQndCQ0J3QntCS0JjQiyDQodCQ0KTQldCiCivQodCY0J3Qk9CV0KAg0JTQoNCQ0JPQmNCm0JAKK9Ch0JjQndCT0JXQoCDQoNCj0JbQmNCm0JAKK9Ch0JjQoNCQ0KfQmtCYINCa0JDQoNCe0JvQmNCd0JAKK9Ch0JjQoNCQ0KbQmtCYINCI0J7QktCQ0J0KK9Ch0JjQoNCQ0KbQmtCYINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JjQoNCQ0Jog0JvQkNCh0JvQniDQlNCgCivQodCY0KDQmNCo0JrQmCDQltCQ0KDQmtCeCivQodCY0KDQmNCo0JrQmCDQgtCj0KDQgtCY0J3QkAor0KHQmNCg0JjQqNCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCY0KDQmNCo0JrQmCDQmNCS0JDQnQor0KHQmNCg0JjQqNCa0Jgg0IjQkNCh0JzQmNCd0JrQkAor0KHQmNCg0JjQqNCa0Jgg0IjQldCb0JXQndCQCivQodCY0KDQmNCo0JrQmCDQiNCe0JLQkNCdCivQodCY0KDQmNCo0JrQmCDQnNCY0KDQntCh0JvQkNCS0JAKK9Ch0JjQoNCY0KjQmtCYINCh0JvQkNCS0JrQniDQodCj0JTQmNCI0JAKK9Ch0JjQoNCY0KjQmtCYINCh0JvQkNCS0JrQngor0KHQmNCg0J7Qp9CY0Isg0JjQktCQ0J0KK9Ch0JjQoNCe0JbQldCd0JrQniDQodCd0JXQltCQ0J3QkAor0KHQmNCg0J7QltCV0J3QmtCeINCS0JXQoNCQCivQodCY0KDQntCi0JjQnSDQodCb0JDQktCY0KbQkAor0KHQmNCg0J7QktCY0KbQkCDQiNCQ0J3QntCoCivQodCY0KDQo9Cn0JXQmiDQktCY0JvQmNCcINCU0JjQn9CbINCY0J3Qkwor0KHQmNCi0JDQqCDQmNCb0J7QndCQCivQodCY0KLQkNCoINCb0JDQiNCe0KgKK9Ch0JjQotCQ0KDQldCS0JjQiyDQkNCc0JjQoAor0KHQmNCi0JDQoNCY0Isg0J/QkNCI0JAKK9Ch0JjQktCnINCQ0JzQkNCb0JjQiNCQCivQodCY0JLQpyDQkNCd0ILQldCb0JrQkAor0KHQmNCS0Kcg0JTQkNCd0JjQm9CeCivQodCY0JLQpyDQpdCV0JvQldCd0JAKK9Ch0JjQktCnINCY0KDQmNCd0JAKK9Ch0JjQktCnINCI0JDQndCa0J4KK9Ch0JjQktCnINCJ0KPQkdCe0JzQmNCgCivQodCY0JLQpyDQidCj0JHQntCc0JjQoAor0KHQmNCS0Kcg0J3QldCh0KLQntCgCivQodCY0JLQpyDQktCb0JDQlNCY0JzQmNCgCivQodCY0JLQp9CV0JIg0ILQntCa0JAKK9Ch0JjQktCn0JXQkiDQkdCe0JbQmNCU0JDQoAor0KHQmNCS0KfQldCSINCI0J7QktCQ0J0g0JTQoAor0KHQmNCS0KfQldCSINCI0KPQm9Ca0JAKK9Ch0JjQktCn0JXQkiDQidCj0JHQmNCm0JAKK9Ch0JjQktCn0JXQkiDQnNCY0JvQkNCdCivQodCY0JLQp9CV0JIg0JfQntCg0JDQnQor0KHQmNCS0JDQp9Ca0Jgg0ILQo9Cg0JAKK9Ch0JjQktCQ0KfQmtCYINCI0J7QktCQ0J0KK9Ch0JjQktCQ0KfQmtCYINCc0JjQm9CQ0J0KK9Ch0JjQktCQ0KfQmtCYINCc0JjQoNCI0JDQndCQCivQodCY0JLQkNCn0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQodCY0JLQkNCn0JrQmCDQodCQ0JLQkAor0KHQmNCS0JDQp9Ca0Jgg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Ch0JjQktCQ0KfQmtCYINCS0JXQoNCQCivQodCY0JLQkNCn0JrQmCDQktCV0KDQkAor0KHQmNCS0JDQpiDQiNCe0JLQkNCd0JrQkAor0KHQmNCS0JDQmiDQmNCR0J7QidCQCivQodCY0JLQkNCaINCI0KPQlNCY0KLQkAor0KHQmNCS0JDQmiDQidCj0JHQmNCd0JrQkAor0KHQmNCS0JDQmiDQoNCe0JfQmNCd0JAKK9Ch0JjQktCY0Isg0JPQntCI0JrQngor0KHQmNCS0JjQiyDQoNCQ0JTQlQor0KHQmNCX0J7QkiDQnNCQ0KDQk9CY0KLQkAor0KHQiNCV0J3QmNCn0JjQiyDQndCV0JTQldCJ0JrQngor0KHQiNCV0J/QkNCd0J7QktCY0Isg0KHQoNCC0JDQnQor0KHQmtCQ0JrQkNCS0JDQpiDQndCY0JrQntCb0JAKK9Ch0JrQkNCa0JDQktCQ0KYg0J3QntCS0JAKK9Ch0JrQkNCa0JDQktCQ0KYg0J3QntCS0JAKK9Ch0JrQkNCa0JDQktCQ0KYg0KHQntCk0JjQiNCQCivQodCa0JDQmtCQ0JLQkNCmINCS0JXQm9CY0JzQmNCgCivQodCa0JDQmtCQ0JLQkNCmINCS0KPQiNCY0KbQkAor0KHQmtCQ0JrQkNCS0JDQpiDQl9CU0KDQkNCS0JrQngor0KHQmtCQ0JrQmNCLINCR0J7QqNCa0J4KK9Ch0JrQkNCa0JjQiyDQnNCY0JvQkNCdCivQodCa0JDQmtCY0Isg0J3QmNCa0J7Qm9CQCivQodCa0JDQmtCj0J0g0JbQmNCS0JrQngor0KHQmtCQ0JvQkCDQkNCd0KLQkNCbCivQodCa0JDQm9CQINCc0JjQm9CV0J3QkAor0KHQmtCQ0JvQkCDQktCb0JDQlNCY0JzQmNCgCivQodCa0JDQm9CY0KbQmtCYINCX0JDQk9Ce0KDQmtCQCivQodCa0JDQndCU0JDQoNCh0JrQmCDQkNCd0JrQkAor0KHQmtCQ0J3QlNCQ0KDQodCa0Jgg0JzQmNCb0JDQnQor0KHQmtCQ0J3QlNCQ0KDQodCa0Jgg0JzQmNCb0J7QqAor0KHQmtCQ0J3QlNCQ0KDQodCa0Jgg0JzQmNCg0JrQngor0KHQmtCQ0J3QlNCQ0KDQodCa0Jgg0JzQm9CQ0JTQldCdCivQodCa0JDQndCU0JDQoNCh0JrQmCDQnNCe0JzQp9CY0JvQngor0KHQmtCQ0J3QlNCQ0KDQodCa0Jgg0KDQkNCU0J7QktCQ0J0KK9Ch0JrQkNCg0JDQnNCj0KbQkCDQnNCY0IjQngor0KHQmtCQ0KDQkNCc0KPQptCQINCX0JTQoNCQ0JLQmtCeCivQodCa0JXQm9CV0I/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCa0JXQm9CV0I/QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCa0JXQm9CV0I/QmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQmtCV0JvQldCP0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JrQldCb0JXQj9CY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0JrQldCb0JXQj9CY0Isg0JrQkNCi0JjQptCQCivQodCa0JXQm9CV0I/QmNCLINCJ0KPQkdCY0J3QmtCeCivQodCa0JXQm9CV0I/QmNCLINCc0JDQoNCY0IjQkAor0KHQmtCV0JvQldCP0JjQiyDQnNCY0JvQkNCdCivQodCa0JXQm9CV0I/QmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KHQmtCV0JvQldCP0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQodCa0JXQm9CV0I/QmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0JrQldCb0JXQj9CY0IjQkCDQmtCQ0KLQkAor0KHQmtCV0JvQldCP0JjQiNCQINCg0JDQlNCe0IjQmNCm0JAKK9Ch0JrQldCb0JXQj9CY0IjQkCDQodCf0JDQodCY0JzQmNCgCivQodCa0JXQndCP0JjQiyDQltCQ0KDQmtCeCivQodCa0JXQndCP0JjQiyDQkdCe0JPQlNCQ0J0KK9Ch0JrQldCd0I/QmNCLINCR0KDQkNCd0JrQkAor0KHQmtCV0J3Qj9CY0Isg0JTQkNCd0JUKK9Ch0JrQldCd0I/QmNCLINCU0JDQndCY0JvQngor0KHQmtCV0J3Qj9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQmtCV0J3Qj9CY0Isg0JTQo9Co0JDQnQor0KHQmtCV0J3Qj9CY0Isg0JjQm9CY0IjQkAor0KHQmtCV0J3Qj9CY0Isg0IjQkNCh0JzQmNCd0JrQkAor0KHQmtCV0J3Qj9CY0Isg0IjQntCS0JDQndCa0JAKK9Ch0JrQldCd0I/QmNCLINCc0JDQoNCT0JDQoNCV0KLQkAor0KHQmtCV0J3Qj9CY0Isg0JzQmNCb0JDQnQor0KHQmtCV0J3Qj9CY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0JrQldCd0I/QmNCLINCc0JjQm9CY0KbQkAor0KHQmtCV0J3Qj9CY0Isg0KDQkNCU0JUKK9Ch0JrQldCd0I/QmNCLINCh0JDQoNCQCivQodCa0JXQndCP0JjQiyDQodCe0KTQmNCI0JAKK9Ch0JrQldCd0I/QmNCLINCh0KLQldCS0JDQnQor0KHQmtCV0J3QlNCV0KDQntCS0JjQiyDQkNCd0JTQoNCY0IjQkAor0KHQmtCV0J3QlNCV0KDQntCS0JjQiyDQkdCV0KDQmNCh0JvQkNCSCivQodCa0JXQndCU0JXQoNCe0JLQmNCLINCT0JDQkdCe0KAKK9Ch0JrQldCd0JTQldCg0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQodCa0JXQndCU0JXQoNCe0JLQmNCLINCh0JjQndCY0KjQkAor0KHQmtCV0KDQm9CV0KLQntCS0JjQiyDQnNCY0JvQntCoCivQodCa0JXQoNCb0JXQotCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0JrQldCg0KIg0JHQntCW0JjQlNCQ0KAKK9Ch0JrQmNCn0JDQmiDQm9CQ0KHQm9CeCivQodCa0JjQktCI0JDQndCYINCo0JDQndCU0J7QoAor0KHQmtCY0JLQiNCQ0J3QmCDQnNCY0KXQkNCJCivQodCa0JvQkNCR0JjQndCQ0KYg0JLQm9CQ0JTQmNCc0JjQoAor0KHQmtCb0JDQkdCY0J3QodCa0Jgg0KHQkNCc0J4KK9Ch0JrQm9CV0J3QkCDQiNCe0KXQkNCdINCU0JjQn9CbINCY0J3Qkwor0KHQmtCb0JXQndCQINCe0JvQmNCS0JXQoNCQCivQodCa0JvQldCd0JAg0JLQmNCa0KLQntCg0JjQiNCQCivQodCa0JvQldCd0JDQoCDQn9CV0KLQkNCgCivQodCa0InQkNCgINCC0KPQoNCeCivQodCa0J7Qp9CQ0IjQmNCLINCS0KPQmtCQ0KjQmNCdCivQodCa0J7Qp9Ce0JLQodCa0Jgg0JzQkNCg0JjQiNCQCivQodCa0J7QkdCVINCY0JLQkNCdCivQodCa0J7QmiDQnNCY0KDQiNCQ0J3QkAor0KHQmtCe0JrQkNCd0JTQmNCLINCf0JXQotCQ0KAKK9Ch0JrQntCa0JjQiyDQndCV0J3QkNCUCivQodCa0J7QmtCY0Isg0JLQldCh0J3QkAor0KHQmtCe0JrQndCY0Isg0JTQo9Co0JDQnQor0KHQmtCe0JrQndCY0Isg0KHQotCV0JLQkNCdCivQodCa0J7QmtCeINCc0JjQm9Ce0KgKK9Ch0JrQntCc0JjQndCQINCS0JXQoNCY0KbQkAor0KHQmtCe0J/QkNCbINCR0JXQm9CQCivQodCa0J7Qn9CQ0Jsg0IjQntCS0JDQnQor0KHQmtCe0KDQmNCLINCI0JDQodCc0JjQndCa0JAKK9Ch0JrQntCg0JjQiyDQidCj0JHQngor0KHQmtCe0KDQmNCLINCi0J7QndCa0JAKK9Ch0JrQntCg0JjQiyDQktCj0IjQngor0KHQmtCe0KDQo9Cf0JDQnSDQgtCj0KDQkAor0KHQmtCe0KDQo9Cf0JDQnSDQlNCQ0J3QmNCm0JAKK9Ch0JrQntCg0KPQn9CQ0J0g0JrQkNCi0JAKK9Ch0JrQntCg0KPQn9CQ0J0g0KDQkNCU0JXQndCa0J4KK9Ch0JrQntCg0KPQn9CQ0J0g0KHQm9CQ0JLQmtCeCivQodCa0J7QotCe0JLQmNCLINCk0JXQoNCV0J3Qpgor0KHQmtCg0JDQnNCe0IvQmNCdINCh0KDQldCL0JrQngor0KHQmtCg0J7QkdCY0Isg0JTQoNCQ0JPQkNCdCivQodCa0KDQntCR0JjQiyDQn9CV0KLQkNCgCivQodCa0KDQntCR0J7QitCQINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCa0KDQntCR0J7QitCQINCa0JDQotCY0KbQkAor0KHQmtCg0J7QkdCe0IrQkCDQndCY0JrQntCb0JAKK9Ch0JrQoNCe0JHQntCK0JAg0JLQm9CQ0JTQmNCc0JjQoAor0KHQmtCj0JHQkNCdINCl0JXQm9CV0J3QkAor0KHQmtCj0JHQkNCdINCI0JDQndCa0J4KK9Ch0JrQo9CR0JDQnSDQiNCV0KTQoNCV0JwKK9Ch0JrQo9CR0JDQnSDQiNCj0JvQmNCI0JDQnQor0KHQmtCj0JHQkNCdINCb0JXQntCd0JAKK9Ch0JrQo9CR0JDQnSDQidCj0JHQntCc0JjQoAor0KHQmtCj0JHQkNCdINCc0JjQpdCQ0IjQm9CeCivQodCa0KPQkdCQ0J0g0J3QkNCi0JDQm9CY0IjQkAor0KHQmtCj0JHQkNCdINCd0JjQmtCe0JvQkAor0KHQmtCj0JHQkNCdINCX0J7QoNCa0JAKK9Ch0JrQo9Cb0JDQoCDQoNCQ0JTQntCI0JrQkAor0KHQmtCj0JvQmNCLINCc0JjQoNCI0JDQndCQCivQodCa0KPQm9CY0Isg0KHQmNCc0JrQkAor0KHQmtCj0JvQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JrQo9Cc0J/QmNCI0JAg0IjQntCW0JXQpAor0KHQmtCj0KDQo9Cf0JDQotCY0KEg0JzQmNCg0IjQkNCd0JAKK9Ch0JvQkNCL0JDQndCY0J0g0JjQktCQ0J0KK9Ch0JvQkNCU0JDQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQm9CQ0JTQldCaINCQ0J3QlNCg0JjQiNCQCivQodCb0JDQlNCY0Isg0KbQktCV0KLQkAor0KHQm9CQ0JTQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JvQkNCU0JjQiyDQodCi0JXQktCQ0J0KK9Ch0JvQkNCU0JjQiyDQl9Ce0KDQmNCm0JAKK9Ch0JvQkNCU0J7QiNCQINCc0JjQm9Ce0JLQkNCdCivQodCb0JDQlNCe0IjQlSDQmNCb0JjQiNCQCivQodCb0JDQlNCe0IjQlSDQoNCQ0JTQntCc0JjQoAor0KHQm9CQ0JTQntCI0JXQkiDQnNCY0JvQkNCdCivQodCb0JDQlNCe0IjQldCSINCf0KDQldCU0KDQkNCTCivQodCb0JDQlNCe0IjQldCS0JjQiyDQltCY0JLQmtCeCivQodCb0JDQlNCe0IjQldCS0JjQiyDQnNCY0KDQmtCeCivQodCb0JDQlNCe0IjQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KHQm9CQ0JzQkCDQgtCe0KDQgtCVCivQodCb0JDQnNCQINCc0JDQoNCY0IjQkAor0KHQm9CQ0JzQkNCgINCk0JXQoNCV0J3Qpgor0KHQm9CQ0J3QpiDQiNCV0JvQldCd0JAKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JbQmNCS0JrQngor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQltCY0JLQmtCeCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCC0J7QoNCC0JUKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JDQndCa0JjQptCQCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCR0KDQkNCd0JjQodCb0JDQkgor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQlNCj0KjQkNCd0JrQkAor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQmNCU0JAKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0IjQldCb0JXQndCQCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCI0J7QktCQ0J0KK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JzQkNCg0JjQiNCQCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCc0JDQoNCY0IjQkAor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQnNCY0JvQkNCdCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCc0JjQm9CQ0J0KK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JzQmNCb0JDQnQor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQnNCY0JvQntCoCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCc0JjQm9Ce0KgKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0JzQmNCb0J7QiNCVCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCc0JjQoNCI0JDQndCQCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCc0J7QnNCn0JjQm9CeCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCd0JDQlNCQCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCf0JXQotCQ0KAg0JTQoAor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQn9CV0KLQkNCgCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCf0JXQotCQ0KAKK9Ch0JvQkNCd0JrQkNCc0JXQndCQ0KYg0J/QoNCe0JrQkAor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQoNCQ0JTQntCh0JvQkNCSCivQodCb0JDQndCa0JDQnNCV0J3QkNCmINCh0KLQldCS0JDQnQor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQktCV0KHQldCb0JjQnQor0KHQm9CQ0J3QmtCQ0JzQldCd0JDQpiDQl9Ce0KDQkNCdCivQodCb0JDQotCS0JjQndCh0JrQmCDQk9CV0J7QoNCT0JjQiNCVCivQodCb0JDQktCY0Isg0ILQntCg0ILQlQor0KHQm9CQ0JLQmNCLINCh0J7QpNCY0IjQkAor0KHQm9CQ0JLQmNCm0JAg0KHQotCY0J/QlQor0KHQm9CQ0JLQmtCY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0JvQkNCS0JrQntCS0JjQiyDQkNCb0J7QiNCXCivQodCb0JDQktCa0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQm9CQ0JLQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCb0JDQktCa0J7QktCY0Isg0KHQmNCR0JjQnQor0KHQm9CQ0JLQmtCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQodCb0JDQktCa0J7QktCY0Isg0KLQoNCY0KTQo9CdCivQodCb0JDQktCa0J7QktCY0Isg0JfQlNCV0J3QmtCeCivQodCb0JDQktCd0JjQiyDQlNCQ0J3QmNCb0J4KK9Ch0JvQkNCS0J3QmNCLINCI0JDQodCc0JjQndCQCivQodCb0JDQktCd0JjQiyDQidCj0JHQmNCm0JAKK9Ch0JvQkNCS0J3QmNCLINCd0J7QktCa0JAKK9Ch0JvQkNCS0J3QmNCLINCg0JDQlNCY0JLQntCICivQodCb0JDQktCd0J7QktCY0Isg0JjQktCQ0J0KK9Ch0JvQkNCS0KPQiCDQkdCe0JbQngor0KHQm9CQ0JLQo9CIINCU0KDQkNCT0JDQnQor0KHQm9CQ0JLQo9CI0JXQktCY0Isg0JTQo9Co0JDQnQor0KHQm9CQ0JLQo9CI0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0JvQkNCS0KPQiNCV0JLQmNCLINCc0JjQm9CV0J3QkAor0KHQm9CQ0JLQo9CI0JXQktCY0Isg0KDQkNCU0JjQodCQ0JIKK9Ch0JvQkNCS0KPQiNCV0JLQmNCLINCh0KLQldCS0J4KK9Ch0JvQkNCS0KPQiSDQnNCY0JvQlQor0KHQm9CV0J/Qp9CV0JIg0JbQmNCS0JDQnQor0KHQm9CV0J/Qp9CV0JIg0JTQkNCd0JjQptCQCivQodCb0JXQn9Cn0JXQkiDQiNCe0JLQkNCdCivQodCb0JXQn9Cn0JXQkiDQndCY0JrQntCb0JAKK9Ch0JvQldCf0KfQldCSINCX0JTQldCd0JrQkAor0KHQm9CV0J/Qp9CV0JIg0JfQntCg0JjQptCQCivQodCb0JXQn9Cn0JXQktCY0Isg0JrQoNCh0KLQkNCdCivQodCb0JXQn9Cn0JXQktCY0Isg0InQo9CR0JjQqNCQCivQodCb0JXQn9Cn0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQm9CV0J/Qp9CV0JLQmNCLINCe0JvQk9CQCivQodCb0JXQn9Cn0JXQktCY0Isg0KDQo9CW0JAKK9Ch0JvQldCf0KfQldCS0JjQiyDQl9CU0KDQkNCS0JrQkAor0KHQm9CV0J/QmtCeINCY0KDQldCd0JAKK9Ch0JvQldCf0JrQniDQiNCe0JLQkNCdCivQodCb0JXQn9Ca0J4g0JzQmNCl0JDQiNCb0J4KK9Ch0JvQldCf0JrQniDQnNCY0JvQmNCm0JAKK9Ch0JvQldCh0JDQoCDQlNCQ0J3QmNCb0J4KK9Ch0JvQldCh0JDQoCDQiNCV0JvQldCd0JAKK9Ch0JvQldCh0JDQoCDQnNCe0JzQp9CY0JvQngor0KHQm9CV0KHQkNCgINCS0JDQodCQCivQodCb0JjQqNCa0J4g0JDQndCU0KDQmNCI0JAKK9Ch0JvQmNCo0JrQniDQnNCQ0KDQmtCeCivQodCb0JjQqNCa0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0JDQndCQCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCR0JjQodCV0KDQmtCQCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQm9CY0IjQldCf0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0JPQldCe0KDQk9CY0IjQlQor0KHQm9CY0IjQldCf0KfQldCS0JjQiyDQiNCQ0J3QmtCeCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCI0JDQndCa0J4KK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0IjQntCS0JDQnQor0KHQm9CY0IjQldCf0KfQldCS0JjQiyDQmtCe0JLQmNCJ0JrQkAor0KHQm9CY0IjQldCf0KfQldCS0JjQiyDQidCj0JHQkNCdCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KHQm9CY0IjQldCf0KfQldCS0JjQiyDQndCe0JLQmNCm0JAKK9Ch0JvQmNCI0JXQn9Cn0JXQktCY0Isg0KDQo9CW0JjQptCQCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCh0JDQktCeCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCS0JXQoNCQCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCS0IjQldCa0J7QodCb0JDQktCQCivQodCb0JjQiNCV0J/Qp9CV0JLQmNCLINCX0JLQntCd0JrQngor0KHQm9CY0IjQldCf0JDQpiDQnNCY0JvQntCoCivQodCb0JjQiNCV0J/QkNCmINCh0JvQntCR0J7QlNCQ0J0KK9Ch0JvQmNCc0JDQmiDQkNCU0JDQnAor0KHQm9CY0JLQkCDQldCb0JjQl9CQ0JHQldCi0JAKK9Ch0JvQmNCS0JrQkCDQgtCj0KDQkAor0KHQm9CY0JLQmtCQINCQ0J3QkAor0KHQm9CY0JLQmtCQINCR0J7QltCQ0J3QkAor0KHQm9CY0JLQmtCQINCR0J7QodCY0InQmtCQCivQodCb0JjQktCa0JAg0IjQkNCg0J7QodCb0JDQkgor0KHQm9CY0JLQmtCQINCI0J7QktCQ0J0KK9Ch0JvQmNCS0JrQkCDQnNCY0KjQkAor0KHQm9CY0JLQmtCQINCc0JjQqNCQCivQodCb0JjQktCa0JAg0KHQotCV0JLQkNCdCivQodCb0JjQktCa0JAg0JfQlNCV0J3QmtCQCivQodCb0JjQktCa0JAg0JfQm9CQ0KLQkAor0KHQidCj0JrQkCDQkdCe0KXQo9Ch0JvQkNCSCivQodCJ0KPQmtCQINCI0KPQoNCQ0IgKK9Ch0JvQntCR0J7QlNCQINCQ0J3QotCQ0JsKK9Ch0JvQntCR0J7QlNCQINCY0KjQotCS0JDQnQor0KHQm9Ce0JHQntCU0JAg0IjQkNCd0J7QqAor0KHQm9Ce0JHQntCU0JAg0IjQntCW0JXQpAor0KHQm9Ce0JHQntCU0JAg0IjQo9Cb0JrQkAor0KHQm9Ce0JHQntCU0JAg0JzQmNCl0JDQiNCb0J4KK9Ch0JvQntCR0J7QlNCQINCc0JjQpdCQ0IkKK9Ch0JvQntCR0J7QlNCQINCf0JXQotCQ0KAKK9Ch0JvQntCR0J7QlNCQINCh0JvQkNCS0JrQkAor0KHQm9Ce0JHQntCU0JAg0KHQotCV0JLQkNCdCivQodCb0J7QmtCQ0KAg0JjQktCQ0J0KK9Ch0JvQntCa0JDQoCDQnNCQ0KLQmNCI0JAKK9Ch0JvQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRINCU0KAKK9Ch0JvQo9CK0KHQmtCYINCk0KDQkNCK0JAKK9Ch0JzQkNCT0JjQnSDQmNCS0JDQnQor0KHQnNCQ0IjQmNCLINCc0JDQmtCh0JjQnAor0KHQnNCQ0IjQmNCLINCc0JjQm9Ce0KgKK9Ch0JzQkNCI0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCc0JDQiNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQnNCV0JTQldCg0JXQktCQ0KYg0JTQo9Co0JDQnQor0KHQnNCV0JTQldCg0JXQktCQ0KYg0IjQntCS0JDQnQor0KHQnNCV0JTQldCg0JXQktCQ0KYg0JzQmNCb0JjQptCQCivQodCc0JXQlNCV0KDQldCS0JDQpiDQn9CV0KLQkNCgCivQodCc0JXQlNCV0KDQldCS0JDQpiDQodCi0JXQktCY0KbQkAor0KHQnNCY0IvQldCS0JjQiyDQo9Cg0J7QqAor0KHQnNCY0JXQqNCa0J4g0IjQldCb0JjQodCQ0JLQldCi0JAKK9Ch0JzQmNCb0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0ILQntCg0ILQlQor0KHQnNCY0InQkNCd0JjQiyDQgtCe0KDQgtCVCivQodCc0JjQidCQ0J3QmNCLINCC0J7QoNCC0JUKK9Ch0JzQmNCJ0JDQndCY0Isg0JHQntCI0JDQndCQCivQodCc0JjQidCQ0J3QmNCLINCR0J7QoNCa0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0JHQoNCQ0J3QmtCeCivQodCc0JjQidCQ0J3QmNCLINCU0J7QkdCg0JjQktCe0IgKK9Ch0JzQmNCJ0JDQndCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0JjQm9CY0IjQkAor0KHQnNCY0InQkNCd0JjQiyDQiNCe0JLQkNCd0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0IjQntCS0JDQnQor0KHQnNCY0InQkNCd0JjQiyDQiNCe0JLQngor0KHQnNCY0InQkNCd0JjQiyDQidCY0InQkNCd0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0InQmNCJ0JDQndCQCivQodCc0JjQidCQ0J3QmNCLINCc0JDQoNCY0IjQkAor0KHQnNCY0InQkNCd0JjQiyDQnNCY0JvQkNCdCivQodCc0JjQidCQ0J3QmNCLINCc0JjQm9CQ0J0KK9Ch0JzQmNCJ0JDQndCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0JzQmNCJ0JDQndCY0Isg0JzQmNCb0JrQkAor0KHQnNCY0InQkNCd0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQnNCY0InQkNCd0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQnNCY0InQkNCd0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQnNCY0InQkNCd0JjQiyDQnNCb0JDQlNCV0J0KK9Ch0JzQmNCJ0JDQndCY0Isg0J3QldCS0JXQndCa0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0J3QldCS0JXQndCa0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0J7Qm9CY0JLQldCg0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0J/QldCi0JDQoAor0KHQnNCY0InQkNCd0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KHQnNCY0InQkNCd0JjQiyDQoNCQ0JTQkAor0KHQnNCY0InQkNCd0JjQiyDQoNCQ0JTQlQor0KHQnNCY0InQkNCd0JjQiyDQodCQ0JLQkAor0KHQnNCY0InQkNCd0JjQiyDQodCe0KTQmNCI0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0KHQntCk0JjQiNCQCivQodCc0JjQidCQ0J3QmNCLINCh0KLQkNCd0JAKK9Ch0JzQmNCJ0JDQndCY0Isg0KHQotCV0JLQngor0KHQnNCY0InQkNCd0JjQiyDQotCg0JjQktCeCivQodCc0JjQidCQ0J3QmNCLINCS0JXQodCV0JvQmtCeCivQodCc0JjQidCQ0J3QmNCLINCS0JjQlNCe0KHQkNCSCivQodCc0JjQidCQ0J3QmNCLINCS0JjQndCa0J4KK9Ch0JzQmNCJ0JDQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQnNCY0InQkNCd0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCc0JjQidCQ0J3QmNCLINCX0JvQkNCi0JrQngor0KHQnNCY0InQkNCd0JjQiyDQl9Ce0KDQmtCQCivQodCc0JjQidCQ0J3QntCSINCc0JjQm9CQ0J0KK9Ch0JzQmNCJ0JDQndCe0JIg0KDQkNCU0J7QktCQ0J0KK9Ch0JzQmNCJ0JDQndCh0JrQmCDQnNCY0JvQkNCdCivQodCc0JjQidCY0Isg0JbQmNCS0JrQngor0KHQnNCY0InQmtCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQodCc0JjQidCa0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KHQnNCY0KDQndCe0JIg0IjQo9CU0JjQotCQCivQodCc0JjQoNCd0J7QkiDQiNCj0JTQmNCiCivQodCc0JjQoNCd0J7QkiDQoNCQ0KHQotCY0KHQm9CQ0JIKK9Ch0JzQmNCg0J3QntCSINCS0JvQkNCU0JjQnNCY0KAKK9Ch0JzQntCaINCd0JjQmtCe0JvQkAor0KHQnNCe0JvQp9CY0Isg0KDQo9CW0JAKK9Ch0JzQntCb0JXQndCY0KbQmtCYINCc0JXQm9CY0KLQkAor0KHQnNCe0JvQldCd0KHQmtCYINCa0JDQoNCb0J4KK9Ch0JzQntCb0JXQndCh0JrQmCDQoNCe0JfQkNCb0JjQiNCQCivQodCc0J7QidCQ0J3QmNCa0J7QkiDQnNCY0KXQkNCI0JvQniDQlNCY0J/QmyDQmNCd0JMKK9Ch0JzQntCb0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQnNCe0JvQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0KHQnNCe0JvQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQnNCe0JvQntCS0JjQiyDQoNCQ0KLQmtCeCivQodCc0J7Qm9Ce0JLQmNCLINCh0JDQktCQCivQodCc0KDQldCa0JAg0JTQoNCQ0JPQmNCm0JAKK9Ch0JzQo9CC0JAg0JPQoNCQ0JTQmNCc0JjQoAor0KHQnNCj0ILQkCDQiNCe0JLQkNCdCivQodCc0KPQgtCQINCc0JjQm9CV0J3QmtCeCivQodCc0KPQgtCQINCd0JjQmtCe0JvQkAor0KHQnNCj0ILQkCDQodCQ0JLQkAor0KHQnNCj0Jog0JbQmNCS0JDQndCQCivQodCc0KPQmiDQkdCe0KDQmNCS0J7QiAor0KHQnNCj0KLQldCaINCI0J7QodCY0J8KK9Ch0JzQo9Ci0J3QmCDQmNCS0JDQnQor0KHQitCY0JTQkCDQkNCd0JAKK9Ch0IrQmNCU0JAg0KHQkNCo0JAKK9Ch0J7QkdCn0JDQmiDQpNCg0JDQitCQCivQodCe0JHQntCn0JDQnSDQnNCY0KjQkAor0KHQntCR0J7Qi9CQ0J0g0JjQktCQ0J0KK9Ch0J7QptCV0Jog0JjQnNCg0JUKK9Ch0J7QptCV0Jog0IjQntCh0JjQnwor0KHQntCm0JXQmiDQnNCY0KDQiNCQ0J3QkAor0KHQntCk0JjQiSDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KHQntCk0JjQiSDQlNCg0JDQk9CY0KbQkAor0KHQntCk0JjQiSDQiNCe0JLQkNCd0JrQkAor0KHQntCk0JjQiSDQoNCQ0J3QmtCeCivQodCe0KTQmNCJINCh0JvQkNCS0JjQptCQCivQodCe0KTQmNCd0JrQmNCLINCR0KDQkNCd0JrQkAor0KHQntCk0KDQkNCP0JjQiNCQINCc0KPQpdCQ0JzQldCUCivQodCe0KTQoNCQ0J3QmNCdINCR0J7QoNCY0JLQntCICivQodCe0KTQoNCQ0J3QmNCdINCa0KPQl9Cc0JDQnQor0KHQntCk0KDQkNCd0JjQnSDQnNCY0JvQmNCS0J7QiAor0KHQntCk0KDQldCd0JjQiyDQktCV0KDQmNCm0JAKK9Ch0J7QpNCg0J7QndCY0IjQldCS0JjQiyDQidCj0JHQmNCm0JAKK9Ch0J7QpNCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0J7Qk9CY0Isg0KHQkNCS0JAKK9Ch0J7Qk9CY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQodCe0IjQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ch0J7QiNCY0Isg0KDQkNCU0J7QiNCa0JAKK9Ch0J7QmtCV0JvQlSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0J7QmtCY0Isg0JbQmNCS0JrQngor0KHQntCa0JjQiyDQgtCj0KDQgtCY0KbQkAor0KHQntCa0JjQiyDQmNCb0JjQiNCQCivQodCe0JrQmNCLINCb0JjQlNCY0IjQkAor0KHQntCa0JjQiyDQl9Ce0KDQmtCQCivQodCe0JrQndCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQntCa0J7Qm9CQINCQ0J3QotCj0J0KK9Ch0J7QmtCe0JvQkCDQpNCV0KDQldCd0KYKK9Ch0J7QmtCe0JvQkCDQmNCo0KLQktCQ0J0KK9Ch0J7QmtCe0JvQkCDQmNCo0KLQktCQ0J0KK9Ch0J7QmtCe0JvQkCDQmtCQ0KLQkNCg0JjQndCQCivQodCe0JrQntCb0JAg0JzQkNCg0KLQkAor0KHQntCa0J7Qm9CQ0Jgg0IjQntCW0JXQpAor0KHQntCa0J7Qm9CQ0Jgg0JvQkNCI0J7QqAor0KHQntCa0J7Qm9CY0Isg0JbQldCJ0JrQngor0KHQntCa0J7Qm9Ce0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0J7QmtCe0JvQntCSINCJ0KPQkdCe0JzQmNCgCivQodCe0JrQntCb0J7QkiDQnNCY0JvQkNCdCivQodCe0JrQntCb0J7QkiDQndCQ0JTQmtCQCivQodCe0JrQntCb0J7QkiDQodCb0JDQktCa0JAKK9Ch0J7QmtCe0JvQntCSINCh0KLQldCS0JDQnQor0KHQntCa0J7Qm9Ce0JIg0JfQmNCd0JDQmNCU0J4KK9Ch0J7QmtCe0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQodCe0JrQntCb0J7QktCY0Isg0JDQndCQCivQodCe0JrQntCb0J7QktCY0Isg0JTQo9Co0JrQngor0KHQntCa0J7Qm9Ce0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Ch0J7QmtCe0JvQntCS0JjQiyDQnNCY0JvQlQor0KHQntCa0J7Qm9Ce0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Ch0J7QmtCe0JvQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Ch0J7QmtCe0JvQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCe0JrQntCb0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQntCa0J7Qm9Ce0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0J7QmtCe0JvQntCS0JjQiyDQl9Ce0KDQmNCm0JAKK9Ch0J7QmtCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQntCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQntCb0JDQoCDQidCj0JHQmNCm0JAKK9Ch0J7Qm9CQ0KAg0KHQotCI0JXQn9CQ0J0KK9Ch0J7Qm9CQ0KDQldCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0KHQntCb0JDQoNCV0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQodCe0JvQkNCg0JjQiyDQodCe0KTQmNCI0JAKK9Ch0J7Qm9CQ0KDQntCSINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0J7Qm9CQ0KDQntCSINCR0J7QoNCeCivQodCe0JvQkNCg0J7QkiDQnNCY0JvQkNCdCivQodCe0JvQkNCg0J7QkiDQnNCY0JvQmNCm0JAKK9Ch0J7Qm9CQ0KDQntCSINCc0JjQm9CY0KbQkAor0KHQntCb0JDQoNCe0JIg0JzQmNCb0J7QqAor0KHQntCb0JDQoNCe0JIg0JzQmNCb0J7QktCQ0J0KK9Ch0J7Qm9CQ0KDQntCSINCd0JjQmtCe0JvQkAor0KHQntCb0JDQoNCe0JIg0KDQkNCU0JjQktCe0IgKK9Ch0J7Qm9CU0JDQoiDQkdCe0KjQmtCeCivQodCe0JvQlNCQ0KIg0JHQoNCQ0J3QmtCQCivQodCe0JvQlNCQ0KIg0JTQoNCQ0JPQngor0KHQntCb0JTQkNCiINCc0JjQm9Ce0KgKK9Ch0J7Qm9CU0JDQoiDQnNCY0KLQkNCgCivQodCe0JvQlNCQ0KIg0J/QldCi0JDQoAor0KHQntCb0JTQkNCiINCS0JXQodCd0JAKK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCC0J7QoNCC0JUKK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCC0J7QoNCC0JUKK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCT0J7QoNCQ0J0KK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCc0JjQm9CQCivQodCe0JvQlNCQ0KLQntCS0JjQiyDQodCQ0JLQkCDQndCe0JLQmNCd0JDQoAor0KHQntCb0JTQkNCi0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCS0JXQodCd0JAKK9Ch0J7Qm9CU0JDQotCe0JLQmNCLINCS0J7QiNCeCivQodCe0JvQlNCeINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCe0JvQlNCeINCY0JLQkNCdCivQodCe0JvQlNCeINCd0J7QktCY0KbQkAor0KHQntCb0JTQniDQktCb0JDQlNCY0JzQmNCgCivQodCe0JvQldCo0JAg0JzQmNCo0J4KK9Ch0J7Qm9Ce0JzQo9CdINCR0KDQkNCd0JrQngor0KHQntCb0J7QnNCj0J0g0JTQoNCQ0JPQngor0KHQntCb0J7QnNCj0J0g0JjQm9CY0IjQkAor0KHQntCb0J7QnNCj0J0g0JzQmNCb0JUKK9Ch0J7Qm9Ce0JzQo9CdINCS0JXQodCQCivQodCe0JvQntCK0JAg0KHQotCV0JLQkNCdCivQodCe0JzQkdCe0KDQkNCmINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCe0JzQkdCe0KDQkNCmINCI0J7QktCQ0J0KK9Ch0J7QnNCR0J7QoNCQ0KYg0JzQkNCg0JjQiNCQCivQodCe0JzQkdCe0KDQkNCmINCh0KDQldCL0JrQngor0KHQntCc0JHQntCg0JDQpiDQotCV0KDQldCX0JAKK9Ch0J7QnNCR0J7QoNCQ0KYg0KLQntCU0J7QoAor0KHQntCc0JHQntCg0KHQmtCYINCb0JDQl9CQ0KAKK9Ch0J7QnNCR0J7QoNCh0JrQmCDQnNCY0JvQmNCm0JAKK9Ch0J7QnNCV0KAg0JjQnNCg0JUKK9Ch0J7QnNCV0KAg0IjQldCb0JXQndCQCivQodCe0JzQldCgINCi0JjQkdCe0KAKK9Ch0J7Qn9Ca0JAg0JDQndCY0KbQkAor0KHQntCf0JrQkCDQiNCQ0J3QmtCeCivQodCe0J/QmtCQINCJ0KPQkdCe0JzQmNCgCivQodCe0J/QmtCQINCJ0KPQkdCe0JzQmNCgCivQodCe0J/QmtCQINCc0JDQoNCY0IjQkAor0KHQntCf0JrQkCDQnNCY0KDQntCh0JvQkNCSCivQodCe0KDQqNCQ0Jog0JzQmNCb0JDQnQor0KHQntCg0KjQkNCaINCS0JDQm9CV0J3QotCY0J0KK9Ch0J7QoNCQ0JTQmCDQkNCd0KLQo9CdCivQodCe0KDQkNCU0Jgg0JjQktCQ0J0KK9Ch0J7QoNCQ0JTQmCDQodCi0IjQldCf0JDQnQor0KHQntCg0JDQiNCY0Isg0JzQmNCb0JDQnQor0KHQntCg0JDQiNCY0Isg0JzQmNCb0JjQktCe0IgKK9Ch0J7QoNCQ0Jog0JTQldCb0JjQktCe0IjQlQor0KHQntCg0JMg0JDQndCT0JXQm9CY0J3QkAor0KHQntCg0JMg0IjQldCb0JXQndCQCivQodCe0KDQkyDQndCY0JrQntCb0JAKK9Ch0J7QoNCT0JXQoCDQnNCY0KDQkAor0KHQntCg0J4g0JzQmNCb0JDQnQor0KHQntCg0J4g0JzQmNCe0JTQoNCQ0JMKK9Ch0J7QoNCeINCc0JjQoNCI0JDQndCQCivQodCe0KDQniDQndCY0JrQntCb0JAKK9Ch0J7QoNCeINCh0JjQnNCeCivQodCe0KLQldCgINCI0JDQndCe0KgKK9Ch0J7QotCY0KDQntCS0JjQiyDQodCb0JDQktCY0KbQkAor0KHQntCi0J7QndCY0KbQkCDQoNCQ0IjQmtCeCivQodCe0JLQkCDQn9CV0KLQkNCgCivQodCe0JLQkCDQoNCj0JTQmAor0KHQntCS0JjQqCDQgtCe0KDQgtCVCivQodCe0JLQmNCoINCc0JjQqNCQCivQodCe0JLQmNCoINCe0JvQk9CQCivQodCe0JLQmNCoINCf0JDQktCb0JUKK9Ch0J7QktCY0Ikg0ILQntCg0ILQlQor0KHQntCS0JjQiSDQgtCj0KDQngor0KHQntCS0JjQiSDQkNCd0ILQldCb0JrQngor0KHQntCS0JjQiSDQkNCd0JrQkAor0KHQntCS0JjQiSDQkdCe0JbQngor0KHQntCS0JjQiSDQkdCe0JPQlNCQ0J0KK9Ch0J7QktCY0Ikg0JTQo9Co0JDQnQor0KHQntCS0JjQiSDQmNCb0JjQiNCQCivQodCe0JLQmNCJINCY0JvQmNCI0JAKK9Ch0J7QktCY0Ikg0JjQm9CY0IjQkAor0KHQntCS0JjQiSDQmNCS0JjQptCQCivQodCe0JLQmNCJINCI0J7QktCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQodCe0JLQmNCJINCJ0KPQkdCY0KbQkAor0KHQntCS0JjQiSDQnNCY0JvQkNCdINCc0KAKK9Ch0J7QktCY0Ikg0JzQmNCb0JDQnQor0KHQntCS0JjQiSDQn9CV0KDQmtCQCivQodCe0JLQmNCJINCf0JXQotCQ0KAKK9Ch0J7QktCY0Ikg0J/QldCi0JDQoAor0KHQntCS0JjQiSDQktCb0JDQlNCeCivQodCf0JDQpdCY0Isg0JrQldCc0JDQmwor0KHQn9CQ0JjQiyDQltCV0InQmtCeCivQodCf0JDQmNCLINCc0JjQm9CQ0J0KK9Ch0J/QkNCY0Isg0JzQmNCb0JDQnQor0KHQn9CQ0IjQmNCLINCR0J7QltCQCivQodCf0JDQiNCY0Isg0JTQmNCa0J4KK9Ch0J/QkNCI0JjQiyDQiNCe0JLQkNCdCivQodCf0JDQiNCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0KHQn9CQ0IjQmNCLINCc0JjQm9Ce0IjQlQor0KHQn9CQ0IjQmNCLINCc0JjQoNCI0JDQndCQCivQodCf0JDQiNCY0Isg0KHQntCk0JjQiNCQCivQodCf0JDQiNCY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQn9CQ0IjQmNCLINCX0J7QoNCQ0J0KK9Ch0J/QkNCI0JjQiyDQl9Ce0KDQkNCdCivQodCf0JDQm9CV0JLQmNCLINCc0JjQntCc0JjQoAor0KHQn9CQ0JvQldCS0JjQiyDQktCV0KDQkAor0KHQn9CQ0KDQmNCe0KHQmCDQkNCd0ILQldCb0JrQkAor0KHQn9CQ0KHQldCd0J7QodCa0Jgg0JTQmNCc0JjQotCg0JjQiNCVCivQodCf0JDQodCV0J3QntCSINCc0JjQm9CVCivQodCf0JDQodCV0J3QntCSINCh0J/QkNCh0JrQngor0KHQn9CQ0KHQldCd0J7QkiDQodCi0JDQndCQCivQodCf0JDQodCV0J3QntCS0JjQiyDQltCY0JLQmtCeCivQodCf0JDQodCV0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ch0J/QkNCh0JXQndCe0JLQodCa0Jgg0KDQntCc0JDQnQor0KHQn9CQ0KHQldCd0J7QktCh0JrQmCDQktCQ0KHQkAor0KHQn9CQ0KHQmNCLINCW0JjQktCe0JzQmNCgCivQodCf0JDQodCY0Isg0ILQntCg0ILQlQor0KHQn9CQ0KHQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCf0JDQodCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0J/QkNCh0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0J/QkNCh0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0J/QkNCh0JjQiyDQlNCg0JDQk9CY0KjQkAor0KHQn9CQ0KHQmNCLINCT0J7QoNCU0JDQndCQCivQodCf0JDQodCY0Isg0JPQntCg0JTQkNCd0JAKK9Ch0J/QkNCh0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KHQn9CQ0KHQmNCLINCI0J7QktCQ0J0KK9Ch0J/QkNCh0JjQiyDQiNCj0JPQntCh0JvQkNCSCivQodCf0JDQodCY0Isg0InQmNCJ0JDQndCQCivQodCf0JDQodCY0Isg0InQo9CR0JjQptCQCivQodCf0JDQodCY0Isg0JzQmNCb0JDQnQor0KHQn9CQ0KHQmNCLINCc0JjQm9CV0JLQkAor0KHQn9CQ0KHQmNCLINCc0JjQm9Ce0KgKK9Ch0J/QkNCh0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQn9CQ0KHQmNCLINCc0JjQoNCI0JDQndCQCivQodCf0JDQodCY0Isg0JzQmNCg0JrQngor0KHQn9CQ0KHQmNCLINCe0JvQmNCS0JXQoNCQCivQodCf0JDQodCY0Isg0J/QldCi0JDQoAor0KHQn9CQ0KHQmNCLINCf0KDQldCU0KDQkNCTCivQodCf0JDQodCY0Isg0KHQotCQ0J3QmNCo0JAKK9Ch0J/QkNCh0JjQiyDQodCi0JDQndCa0J4KK9Ch0J/QkNCh0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0J/QkNCh0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ch0J/QkNCh0JjQiyDQotCe0JzQmNCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0KHQn9CQ0KHQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0J/QkNCh0JjQiyDQotCg0JDQiNCQ0J3QmtCQCivQodCf0JDQodCY0Isg0JLQldCb0JjQp9Ca0J4KK9Ch0J/QkNCh0JjQiyDQktCj0IjQmNCm0JAKK9Ch0J/QkNCh0J7QiNCV0JIg0InQo9CR0JjQptCQCivQodCf0JDQodCe0IjQldCSINCh0KLQntCI0JDQnQor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JbQmNCS0J7QotCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQodCf0JDQodCe0IjQldCS0JjQiyDQgtCj0KDQkAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JHQntCg0JjQqNCQINCc0KAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCm0JLQldCi0JrQngor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JTQldCh0JjQnNCY0KAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQodCf0JDQodCe0IjQldCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQodCf0JDQodCe0IjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCf0JDQodCe0IjQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQodCf0JDQodCe0IjQldCS0JjQiyDQlNCj0KjQkNCdCivQodCf0JDQodCe0IjQldCS0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCT0J7QodCf0JDQktCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQk9Ce0KHQotCY0JzQmNCgCivQodCf0JDQodCe0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQodCf0JDQodCe0IjQldCS0JjQiyDQiNCj0JvQmtCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCa0KDQodCi0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCc0JjQi9CeCivQodCf0JDQodCe0IjQldCS0JjQiyDQnNCY0IvQngor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCf0JDQodCe0IjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQodCf0JDQodCe0IjQldCS0JjQiyDQndCV0JHQntCI0KjQkAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0J3QntCS0JDQmgor0KHQn9CQ0KHQntCI0JXQktCY0Isg0J/QkNCS0JvQlQor0KHQn9CQ0KHQntCI0JXQktCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCg0JDQptCeCivQodCf0JDQodCe0IjQldCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KDQkNCU0J7QiNCb0JUKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCg0JDQndCa0J4g0JTQmNCf0Jsg0JjQndCTCivQodCf0JDQodCe0IjQldCS0JjQiyDQoNCe0JTQntCJ0KPQkQor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KDQo9CW0JjQptCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQodCb0JDQktCa0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCh0JvQkNCS0JrQngor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KHQm9CQ0JLQngor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQn9CQ0KHQntCI0JXQktCY0Isg0KHQntCK0JAKK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQodCf0JDQodCe0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0J/QkNCh0J7QiNCV0JLQmNCLINCh0KPQl9CQ0J3QkAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JLQmNCi0J7QnNCY0KAg0JTQoAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQn9CQ0KHQntCI0JXQktCY0Isg0JfQntCg0JDQnQor0KHQn9CQ0KHQntCb0Jgg0KTQldCg0JDQogor0KHQn9CQ0KHQntCS0JAg0InQo9CR0JjQptCQCivQodCf0JXQoNCQ0J3QodCa0Jgg0InQo9CU0JzQmNCb0JAg0JzQoAor0KHQn9CV0KDQitCQ0Jog0ILQntCg0ILQlQor0KHQn9CV0KDQitCQ0Jog0JHQntCT0JTQkNCdCivQodCf0JXQoNCK0JDQmiDQidCj0JHQmNCd0JrQkAor0KHQn9CV0KDQitCQ0Jog0JzQmNCb0JXQndCa0J4g0JTQmNCf0Jsg0JjQndCTCivQodCf0JXQktCQ0Jog0JTQkNCd0JjQldCb0JAKK9Ch0J/QldCS0JDQmiDQiNCj0KDQkNCICivQodCf0JXQktCQ0Jog0JfQntCg0J7QodCb0JDQkgor0KHQn9CY0KfQkNCd0J7QktCY0Isg0JXQktCY0KbQkAor0KHQn9CY0KfQkNCd0J7QktCY0Isg0JzQkNCI0JAKK9Ch0J/QmNCn0JDQndCe0JLQmNCLINCX0JDQk9Ce0KDQmtCQCivQodCf0JjQm9Ca0KPQptCY0Isg0JHQntCg0JjQktCe0IjQlQor0KHQn9CY0KDQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCf0JjQoNCY0JTQntCd0J7QkiDQkNCd0JDQodCi0JDQoQor0KHQn9CY0KDQmNCU0J7QndCe0JLQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Ch0J/QmNCg0JjQlNCe0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0KHQn9CY0KDQmNCU0J7QndCe0JLQmNCLINCh0JjQm9CS0JjQiNCQCivQodCf0JjQoNCe0KHQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCf0JjQoNCe0JLQodCa0Jgg0KbQkNCd0JUKK9Ch0J/QntCI0JAg0JbQldCJ0JrQngor0KHQn9Cg0JXQnNCY0Isg0JTQoNCQ0JPQkNCdCivQodCf0KDQldCc0JjQiyDQn9CV0KLQkNCgCivQodCf0KDQldCc0JjQiyDQodCg0JXQotCV0J0KK9Ch0J/QoNCV0JzQniDQgtCj0KDQngor0KHQn9Cg0JXQnNCeINCc0JjQntCU0KDQkNCTCivQodCf0KDQldCc0J4g0JzQmNCg0JrQngor0KHQn9Cg0JXQnNCeINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0J/QoNCV0JzQniDQoNCQ0JTQntCS0JDQnQor0KHQn9Cg0JXQnNCeINCh0JvQkNCS0JrQngor0KHQn9Cg0JXQnNCeINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0J/Qo9Ch0JXQndCY0Jog0JvQkNCI0J7QqAor0KHQoNCC0JDQndCe0JIg0JbQkNCg0JrQngor0KHQoNCC0JDQndCe0JIg0JbQmNCS0JrQngor0KHQoNCC0JDQndCe0JIg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Ch0KDQgtCQ0J3QntCSINCc0JjQpdCQ0IjQm9CeCivQodCg0ILQkNCd0J7QkiDQnNCY0JvQmNCS0J7QiAor0KHQoNCC0JDQndCe0JIg0JzQmNCb0J7QqCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KDQgtCQ0J3QntCSINCc0JjQm9Ce0KgKK9Ch0KDQgtCQ0J3QntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KDQgtCQ0J3QntCSINCd0JDQlNCQCivQodCg0ILQkNCd0J7QkiDQndCQ0JTQkAor0KHQoNCC0JDQndCe0JIg0KHQm9CQ0JLQmtCeCivQodCg0ILQkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KHQoNCC0JDQndCe0JIg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Ch0KDQgtCQ0J3QntCSINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KDQgtCQ0J3QntCSINCS0JXQoNCQCivQodCg0ILQldCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQoNCC0JXQndCe0JLQmNCLINCj0KDQntCoCivQodCg0ILQldCS0JjQiyDQkdCe0IjQkNCdCivQodCg0JHQmNCdINCQ0J3QmtCQCivQodCg0JHQmNCdINCR0J7Qk9CU0JDQnQor0KHQoNCR0JjQnSDQiNCe0JLQkNCdINCU0KAKK9Ch0KDQkdCY0J0g0JrQntCh0KLQkAor0KHQoNCR0JjQnSDQnNCY0KDQntCh0JvQkNCSCivQodCg0JHQmNCd0J7QktCh0JrQmCDQkdCe0KDQmNChCivQodCg0JHQmNCd0J7QktCh0JrQmCDQlNCg0JDQk9CQ0J3QkAor0KHQoNCR0JjQndCe0JLQodCa0Jgg0JTQoNCQ0JPQkNCd0JAKK9Ch0KDQkdCY0J3QntCS0KHQmtCYINCc0JDQqNCQCivQodCg0JHQmNCd0J7QktCh0JrQmCDQn9CQ0J3QotCQCivQodCg0JHQmNCd0J7QktCh0JrQmCDQn9CV0KLQkNCgCivQodCg0JHQidCQ0J0g0JvQkNCX0JDQoAor0KHQoNCR0InQkNCd0JjQnSDQlNCg0JDQk9CQ0J0KK9Ch0KDQkdCJ0JDQndCY0J0g0J/QoNCV0JTQoNCQ0JMKK9Ch0KDQkdCe0JLQkNCdINCI0J7QnQor0KHQoNCR0KPQm9Ce0JLQmNCLINCR0J7QltCY0JTQkNCgCivQodCg0JHQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQoNCR0KPQm9Ce0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KDQlNCQ0J3QntCSINCW0JjQktCQ0J0KK9Ch0KDQlNCQ0J3QntCSINCW0JjQktCe0IjQmNCdCivQodCg0JTQkNCd0J7QkiDQgtCe0KDQgtCVCivQodCg0JTQkNCd0J7QkiDQkdCe0JbQmNCU0JDQoAor0KHQoNCU0JDQndCe0JIg0IjQldCb0JrQkAor0KHQoNCU0JDQndCe0JIg0IjQntCS0JDQnQor0KHQoNCU0JDQndCe0JIg0JvQkNCX0JDQoAor0KHQoNCU0JDQndCe0JIg0JvQkNCX0JDQoAor0KHQoNCU0JDQndCe0JIg0InQmNCJ0JDQndCQCivQodCg0JTQkNCd0J7QkiDQnNCY0KjQkAor0KHQoNCU0JDQndCe0JIg0JzQmNCb0JjQptCQCivQodCg0JTQkNCd0J7QkiDQnNCY0JvQntCoCivQodCg0JTQkNCd0J7QkiDQnNCY0JvQntCh0JDQktCQCivQodCg0JTQkNCd0J7QkiDQn9CV0KLQkNCgCivQodCg0JTQkNCd0J7QkiDQodCY0JzQkAor0KHQoNCU0JDQndCe0JIg0KHQm9CQ0JLQmtCQCivQodCg0JTQkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQodCg0JTQkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQodCg0JTQkNCd0J7QkiDQotCe0JTQntCgCivQodCg0JTQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCg0JTQkNCd0J7QktCY0Isg0JTQldCI0JDQnQor0KHQoNCU0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QiNCVCivQodCg0JTQkNCd0J7QktCY0Isg0KTQmNCb0JjQnwor0KHQoNCU0JDQndCe0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9Ch0KDQlNCQ0J3QntCS0JjQiyDQntCX0KDQldCdINCU0JjQn9CbINCY0J3Qkwor0KHQoNCU0JDQndCe0JLQmNCLINCg0J7QodCQ0J3QlNCQCivQodCg0JTQkNCd0J7QktCY0Isg0KHQkNCK0JAKK9Ch0KDQlNCY0Isg0KfQldCU0J7QnNCY0KAKK9Ch0KDQlNCY0Isg0JbQmNCS0JrQngor0KHQoNCU0JjQiyDQltCY0JLQmtCeCivQodCg0JTQmNCLINCW0JjQktCa0J4KK9Ch0KDQlNCY0Isg0ILQntCg0ILQlSDQnNCgCivQodCg0JTQmNCLINCC0KPQoNCeCivQodCg0JTQmNCLINCQ0J3QgtCQCivQodCg0JTQmNCLINCQ0J3QkAor0KHQoNCU0JjQiyDQkdCe0KjQmtCeCivQodCg0JTQmNCLINCR0J7Qk9CU0JDQnQor0KHQoNCU0JjQiyDQkdCe0KHQkAor0KHQoNCU0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KDQlNCY0Isg0JTQkNCd0JUKK9Ch0KDQlNCY0Isg0JTQmNCI0JDQndCQCivQodCg0JTQmNCLINCU0KPQqNCQ0J0KK9Ch0KDQlNCY0Isg0JXQnNCV0KDQmNCa0JAKK9Ch0KDQlNCY0Isg0JXQnNCV0KDQmNCa0JAKK9Ch0KDQlNCY0Isg0JPQntCg0JDQnQor0KHQoNCU0JjQiyDQmNCS0JDQnQor0KHQoNCU0JjQiyDQiNCV0JvQldCd0JAKK9Ch0KDQlNCY0Isg0InQo9CR0JjQptCQCivQodCg0JTQmNCLINCc0JjQm9CQ0J0KK9Ch0KDQlNCY0Isg0JzQmNCb0JDQnQor0KHQoNCU0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KDQlNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KDQlNCY0Isg0JzQmNCg0JrQngor0KHQoNCU0JjQiyDQnNCY0KDQmtCeCivQodCg0JTQmNCLINCd0JDQlNCQCivQodCg0JTQmNCLINCd0JDQlNCQCivQodCg0JTQmNCLINCd0JjQmtCe0JvQkAor0KHQoNCU0JjQiyDQndCY0JrQntCb0JAKK9Ch0KDQlNCY0Isg0J3QmNCa0J7Qm9CQCivQodCg0JTQmNCLINCf0JXQotCQ0KAKK9Ch0KDQlNCY0Isg0KDQkNCU0JUKK9Ch0KDQlNCY0Isg0KDQkNCU0JUKK9Ch0KDQlNCY0Isg0KHQmNCc0JAKK9Ch0KDQlNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQoNCU0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCg0JTQmNCLINCS0JDQodCeCivQodCg0JTQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KDQlNCY0Isg0JLQntCI0JAKK9Ch0KDQlNCY0Isg0JfQntCg0JAKK9Ch0KDQldCL0JrQntCSINCW0JjQktCa0J4KK9Ch0KDQldCL0JrQntCSINCR0JvQkNCT0JjQptCQCivQodCg0JXQi9Ca0J7QkiDQkdCg0JDQndCa0J4KK9Ch0KDQldCL0JrQntCSINCU0KDQkNCT0JDQnQor0KHQoNCV0IvQmtCe0JIg0JTQoNCQ0JPQmNCm0JAKK9Ch0KDQldCL0JrQntCSINCU0KPQqNCQ0J0KK9Ch0KDQldCL0JrQntCSINCU0KPQqNCQ0J0KK9Ch0KDQldCL0JrQntCSINCV0KDQltCV0JHQldCiCivQodCg0JXQi9Ca0J7QkiDQiNCe0JLQkNCdCivQodCg0JXQi9Ca0J7QkiDQmtCQ0KLQmNCm0JAKK9Ch0KDQldCL0JrQntCSINCc0JjQm9CV0J3QkAor0KHQoNCV0IvQmtCe0JIg0JzQmNCb0JXQndCQCivQodCg0JXQi9Ca0J7QkiDQnNCY0JvQmNCS0J7QiAor0KHQoNCV0IvQmtCe0JIg0JzQmNCg0J7QodCb0JDQkgor0KHQoNCV0IvQmtCe0JIg0KDQkNCU0JjQktCe0IgKK9Ch0KDQldCL0JrQntCSINCg0JDQlNCe0IjQmtCQCivQodCg0JXQi9Ca0J7QkiDQodCi0JDQndCa0J4KK9Ch0KDQldCL0JrQntCSINCh0KLQldCS0JDQnQor0KHQoNCV0IvQmtCe0JIg0KLQldCe0JTQntCg0JAKK9Ch0KDQldCL0JrQntCSINCS0JDQodCQCivQodCg0JXQi9Ca0J7QkiDQl9CU0KDQkNCS0JrQngor0KHQoNCV0IvQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAKK9Ch0KDQldCL0JrQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KHQoNCV0IvQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQoNCV0IvQmtCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdCivQodCg0JXQi9Ca0J7QktCY0Isg0KDQkNCU0JjQqNCQCivQodCg0JXQi9Ca0J7QktCY0Isg0KHQotCe0IjQkNCd0JAKK9Ch0KDQldCL0J4g0JTQkNCd0JjQptCQCivQodCg0JXQi9CeINCc0JjQi9CeCivQodCg0JXQkdCe0KLQitCQ0Jog0KHQotCQ0J3QmtCeCivQodCg0JXQkdCg0J4g0JjQm9CY0IjQkCDQlNCgCivQodCg0JXQlNCQ0J3QntCS0JjQiyDQnNCY0JvQntCg0JDQlCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KDQldCU0JDQndCe0JLQmNCLINCd0JXQlNCV0InQmtCeCivQodCg0JXQlNCe0IjQldCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KHQoNCV0JTQntCI0JXQktCY0Isg0JTQntCR0KDQngor0KHQoNCV0JTQntCI0JXQktCY0Isg0IjQo9Cb0JrQmNCm0JAKK9Ch0KDQldCU0J7QiNCV0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0KDQldCU0J7QiNCV0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQodCg0JXQlNCe0IjQldCS0JjQiyDQnNCY0KDQmtCeCivQodCg0JXQlNCe0IjQldCS0JjQiyDQndCV0JHQntCI0KjQkAor0KHQoNCV0JTQntCI0JXQktCY0Isg0JLQldCb0JjQnNCY0KAKK9Ch0KDQldCU0J7QiNCV0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQodCg0JXQlNCe0JLQmNCLINCg0JDQiNCa0J4KK9Ch0KDQldCI0JjQiyDQkdCe0KDQmtCQCivQodCg0JXQnNCn0JXQkiDQgtCe0KDQgtCVCivQodCg0JXQnNCn0JXQkiDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgINCb0JXQmtCQ0KAKK9Ch0KDQldCc0KfQldCSINCb0JDQl9CQ0KAKK9Ch0KDQldCc0KfQldCSINCc0JDQoNCY0IjQkAor0KHQoNCV0JzQp9CV0JIg0J3QldCh0KLQntCgCivQodCg0JXQnNCn0JXQkiDQodCb0J7QkdCe0JTQkNCdCivQodCg0JXQnNCn0JXQkiDQodCe0KTQmNCI0JAKK9Ch0KDQldCc0KfQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCg0JXQnNCn0JXQktCY0Isg0IjQntCS0JDQnQor0KHQoNCV0JzQp9CV0JLQmNCLINCI0J7QktCQ0J0KK9Ch0KDQldCc0KfQldCS0JjQiyDQmtCQ0KLQkAor0KHQoNCV0JzQp9CV0JLQmNCLINCa0JDQotCY0KbQkAor0KHQoNCV0JzQp9CV0JLQmNCLINCJ0KPQkdCY0KjQkAor0KHQoNCV0JzQp9CV0JLQmNCLINCg0JDQlNCY0JLQntCICivQodCg0JXQnNCn0JXQktCY0Isg0KDQkNCh0KLQmtCeCivQodCg0JXQnNCn0JXQktCY0Isg0KHQm9CQ0JLQndCQCivQodCg0JXQnNCn0JXQktCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQodCg0JXQnNCn0JXQktCY0Isg0JLQldCJ0JrQngor0KHQoNCV0JzQkNCn0JrQmCDQgtCe0KDQgtCVCivQodCg0JXQnNCQ0KfQmtCYINCU0KDQkNCT0J7QidCj0JEKK9Ch0KDQldCc0JDQp9Ca0Jgg0JTQo9Co0JDQndCa0JAKK9Ch0KDQldCc0JDQp9Ca0Jgt0JPQkNCS0KDQmNCb0J7QktCY0Isg0JzQkNCI0JAKK9Ch0KDQldCc0JDQp9Ca0Jgg0JjQktCQ0J3QmtCQCivQodCg0JXQnNCQ0KfQmtCYINCI0J7QktCQ0J3QmtCQCivQodCg0JXQnNCQ0KfQmtCYINCc0JjQm9Ce0KgKK9Ch0KDQldCc0JDQp9Ca0Jgt0JzQmNCg0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQoNCV0JzQkNCn0JrQmCDQn9CV0KLQkNCgCivQodCg0JXQnNCQ0KfQmtCYINCh0JjQnNCQCivQodCg0JXQnNCQ0KfQmtCYINCh0J7QmtCQCivQodCg0JXQnNCQ0KfQmtCYINCh0J/QkNCh0J7QiNCVCivQodCg0JXQnNCQ0KfQmtCYINCh0KLQkNCd0J7QiNCVCivQodCg0JXQnNCQ0KfQmtCYINCS0JvQkNCU0JAKK9Ch0KDQldCc0JDQp9Ca0Jgg0JfQntCg0JjQptCQCivQodCg0JXQnNCQ0KYg0ILQntCg0ILQlQor0KHQoNCV0JzQkNCmINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCg0JXQnNCQ0KYg0JTQoNCQ0JPQntCJ0KPQkQor0KHQoNCV0JzQkNCmINCY0KHQkNCaCivQodCg0JXQnNCQ0KYg0IjQkNCd0JrQngor0KHQoNCV0JzQkNCmINCI0J7QktCQ0J0KK9Ch0KDQldCc0JDQpiDQidCj0JHQmNCm0JAKK9Ch0KDQldCc0JDQpiDQidCj0JHQmNCm0JAKK9Ch0KDQldCc0JDQpiDQnNCY0JvQldCd0JAKK9Ch0KDQldCc0JDQpiDQnNCY0JvQldCd0JrQngor0KHQoNCV0JzQkNCmINCc0JjQm9CY0JLQntCICivQodCg0JXQnNCQ0KYg0JzQmNCg0JAKK9Ch0KDQldCc0JDQpiDQndCY0JrQntCb0JAKK9Ch0KDQldCc0JDQpiDQn9CQ0KPQm9CY0J3QkAor0KHQoNCV0JzQkNCmINCf0JDQktCb0JUKK9Ch0KDQldCc0JDQpiDQn9CV0KDQodCY0JTQkAor0KHQoNCV0JzQkNCmINCg0JDQlNCe0IjQmtCeCivQodCg0JXQnNCQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0KHQoNCV0JzQkNCmINCh0KDQgtCQ0J0KK9Ch0KDQldCc0JDQpiDQodCi0J7QiNCQ0J3QmtCQCivQodCg0JXQnNCQ0KYg0KHQktCV0KLQmNCh0JvQkNCSCivQodCg0JXQnNCQ0KYg0KHQktCV0KLQmNCh0JvQkNCSCivQodCg0JXQnNCQ0KYg0KLQkNCd0JDQodCY0IjQlQor0KHQoNCV0JzQkNCmINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KDQldCc0JDQpiDQktCb0JDQiNCa0J4KK9Ch0KDQldCc0JDQpiDQl9Ce0KDQkNCd0JAKK9Ch0KDQldCc0JDQpiDQl9Ce0KDQkNCdCivQodCg0JXQotCV0J3QntCS0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQodCg0JXQotCV0J3QntCS0JjQiyDQkdCe0KDQmNCS0J7QiAor0KHQoNCV0KLQldCd0J7QktCY0Ist0JzQkNCd0J7QiNCb0J7QktCY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0KHQoNCV0KLQldCd0J7QktCY0Isg0J3QldCS0JXQndCa0JAKK9Ch0KDQldCi0JXQndCe0JLQmNCLINCh0KLQntCI0JDQlNCY0J0KK9Ch0KDQldCi0JjQiyDQnNCY0JvQldCd0JrQngor0KHQoNCV0KLQmNCLINCc0JjQoNCI0JDQndCQCivQodCg0JXQotCY0Isg0KDQkNCi0J7QnNCY0KAKK9Ch0KDQldCi0JrQntCS0JjQiyDQktCV0KDQmNCm0JAKK9Ch0KDQndCU0J7QktCY0Isg0JfQntCg0JrQkAor0KHQoNCd0JXQpiDQltCV0InQmtCeCivQodCg0J3QmNCLINCR0J7Qk9CU0JDQnQor0KHQoNCd0JjQiyDQldCS0JjQptCQCivQodCg0J3QmtCQINCI0JDQndCa0J4KK9Ch0KDQndCa0JAg0IjQntCS0JDQnQor0KHQotCQ0KjQo9CaINCc0JjQpdCQ0IjQm9CeCivQodCi0JDQpdCQ0J3QmNCLINCQ0J3QmtCQCivQodCi0JDQmNCdINCh0KLQldCS0JDQnQor0KHQotCQ0IjQp9CY0Isg0JjQktCQ0J0KK9Ch0KLQkNCI0KfQmNCLINCf0JXQotCQ0KAKK9Ch0KLQkNCI0KjQmNCLINCC0KPQoNCQCivQodCi0JDQiNCY0Isg0ILQntCg0ILQlQor0KHQotCQ0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQodCi0JDQiNCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQkNCI0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCi0JDQiNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQotCQ0IjQmNCLINCR0J7QoNCY0JLQntCICivQodCi0JDQiNCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0KHQotCQ0IjQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQotCQ0IjQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQkNCI0JjQiyDQlNCj0KjQkNCdCivQodCi0JDQiNCY0Isg0JTQo9Co0JjQptCQCivQodCi0JDQiNCY0Isg0KTQldCc0JAKK9Ch0KLQkNCI0JjQiyDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9Ch0KLQkNCI0JjQiyDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9Ch0KLQkNCI0JjQiyDQk9Cg0JjQk9Ce0KDQmNCI0JUg0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQiNCY0Isg0IjQo9Ch0KLQmNCd0JAKK9Ch0KLQkNCI0JjQiyDQm9CV0J/QntCh0JDQktCQCivQodCi0JDQiNCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0KLQkNCI0JjQiyDQnNCQ0KDQkAor0KHQotCQ0IjQmNCLINCc0JDQoNCY0IjQkAor0KHQotCQ0IjQmNCLINCc0JjQm9CQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQiNCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0IjQmNCLINCc0JjQm9CV0KHQkAor0KHQotCQ0IjQmNCLINCc0JjQm9CV0JLQkAor0KHQotCQ0IjQmNCLINCc0JjQm9Ca0JAKK9Ch0KLQkNCI0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0JDQiNCY0Isg0J3QldCh0KLQntCgCivQodCi0JDQiNCY0Isg0J/QkNCS0JvQlQor0KHQotCQ0IjQmNCLINCf0JXQotCQ0KAKK9Ch0KLQkNCI0JjQiy3Qn9Ce0J/QntCSINCR0J7QoNCY0KHQm9CQ0JLQkCDQlNCgCivQodCi0JDQiNCY0Isg0KDQkNCU0JjQktCe0IgKK9Ch0KLQkNCI0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQodCi0JDQiNCY0Isg0KHQmNCa0JAKK9Ch0KLQkNCI0JjQiyDQodCg0JXQotCQCivQodCi0JDQiNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQodCi0JDQiNCY0Isg0KHQotCe0IjQkNCU0JjQnQor0KHQotCQ0IjQmNCLINCi0J7QlNCe0KAKK9Ch0KLQkNCI0JjQiyDQktCV0JvQmNCc0JjQoAor0KHQotCQ0IjQmNCLINCS0KPQmtCe0KHQkNCSCivQodCi0JDQiNCY0Isg0JfQm9CQ0KLQkAor0KHQotCQ0IjQmtCe0JLQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0KHQotCQ0IjQmtCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQkNCa0JjQiyDQltCY0JLQkNCdCivQodCi0JDQmtCY0Isg0JbQmNCS0JrQkAor0KHQotCQ0JrQmNCLINCC0KPQoNCeCivQodCi0JDQmtCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQkNCa0JjQiyDQkdCe0KjQmtCeCivQodCi0JDQmtCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQkNCa0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQodCi0JDQmtCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCi0JDQmtCY0Isg0JTQldCI0JDQnQor0KHQotCQ0JrQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQmtCY0Isg0IjQldCb0JXQndCQCivQodCi0JDQmtCY0Isg0IjQntCS0JDQnSDQodCj0JTQmNCI0JAKK9Ch0KLQkNCa0JjQiyDQnNCV0JvQmNCd0JTQkAor0KHQotCQ0JrQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCa0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQmtCY0Isg0JzQmNCg0JrQngor0KHQotCQ0JrQmNCLINCc0J7QnNCY0KAKK9Ch0KLQkNCa0JjQiyDQndCV0JHQntCI0KjQkAor0KHQotCQ0JrQmNCLINCd0JXQlNCV0InQmtCeCivQodCi0JDQmtCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQmtCY0Isg0J/QkNCS0JvQlQor0KHQotCQ0JrQmNCLINCh0J/QntCc0JXQndCa0JAKK9Ch0KLQkNCa0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0KLQkNCa0JjQiyDQktCV0KDQkAor0KHQotCQ0JrQmNCLINCX0JDQpdCQ0KDQmNCI0JUKK9Ch0KLQkNCa0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQmtCe0KDQmNCLINCX0JTQoNCQ0JLQmtCeCivQodCi0JDQnNCQ0KLQntCS0JjQiyDQnNCY0JvQldCd0JrQniDQlNCgCivQodCi0JDQnNCQ0KLQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQotCQ0JzQldCd0JjQiyDQlNCQ0JzQitCQ0J0KK9Ch0KLQkNCc0JXQndCY0Isg0JzQkNCg0JrQngor0KHQotCQ0JzQldCd0JjQiyDQoNCQ0JTQntCh0JDQkgor0KHQotCQ0JzQldCd0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoCDQlNCgCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCc0JDQoNCI0JDQnQor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0J3QntCS0JjQptCQCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCf0JXQotCg0J7QndCY0IjQlQor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQodCg0JXQotCV0J0g0JTQoAor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQodCg0JXQotCV0J0KK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0KHQotCe0IjQkNCdCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0KHQotCQ0JzQldCd0JrQntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCS0JXQm9CY0JHQntCgCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCS0JXQoNCQCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCS0KPQmtCQ0JTQmNCdCivQodCi0JDQnNCV0J3QmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQkNCc0JXQndCa0J7QktCY0Isg0JfQntCg0JAKK9Ch0KLQkNCc0JXQndCe0JIg0JHQoNCQ0J3QmtCeCivQodCi0JDQnNCV0J3QntCSINCd0JjQmtCe0JvQkAor0KHQotCQ0JzQldCd0J7QkiDQodCb0JDQktCa0JAKK9Ch0KLQkNCc0JXQndCe0JLQmNCLINCa0KDQodCi0JjQktCe0IgKK9Ch0KLQkNCc0JXQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Ch0KLQkNCc0JXQktCh0JrQmCDQotCe0J3Qp9CVCivQodCi0JDQnNCe0KDQkNCdINCa0JDQotCY0KbQkAor0KHQotCQ0JzQn9Ck0JXQoCDQoNCe0JfQkNCb0JjQiNCQCivQodCi0JDQndCn0JXQotCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0KLQkNCd0KfQldCi0JjQiyDQn9CQ0JLQm9CVCivQodCi0JDQndCn0JjQiyDQkNCd0ILQldCb0JrQkAor0KHQotCQ0J3Qp9CY0Isg0JDQndCU0KDQmNCI0JAg0JTQoAor0KHQotCQ0J3Qp9CY0Isg0JHQm9CQ0JPQntCI0JUg0JzQoAor0KHQotCQ0J3Qp9CY0Isg0JHQntCW0JDQndCQCivQodCi0JDQndCn0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCQ0J3Qp9CY0Isg0JTQkNCd0JjQptCQCivQodCi0JDQndCn0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0JDQndCn0JjQiyDQm9CQ0JfQkNCgCivQodCi0JDQndCn0JjQiyDQidCj0JHQntCc0JjQoAor0KHQotCQ0J3Qp9CY0Isg0JzQkNCg0JjQiNCQCivQodCi0JDQndCn0JjQiyDQnNCQ0KDQmtCeCivQodCi0JDQndCn0JjQiyDQnNCY0IvQkAor0KHQotCQ0J3Qp9CY0Isg0JzQmNCl0JDQiNCb0J4KK9Ch0KLQkNCd0KfQmNCLINCc0JjQmtCQCivQodCi0JDQndCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQotCQ0J3Qp9CY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCn0JjQiyDQn9CQ0JLQm9CVCivQodCi0JDQndCn0JjQiyDQotCQ0J3QmtCe0KHQkNCS0JAKK9Ch0KLQkNCd0KfQmNCLINCi0JjQpdCe0JzQmNCgCivQodCi0JDQndCn0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCn0JjQmiDQnNCQ0KDQk9CY0KLQkAor0KHQotCQ0J3Qp9CjINCc0JDQoNCY0IjQkAor0KHQotCQ0J3Qp9Cj0Jsg0JbQmNCS0JDQnQor0KHQotCQ0J3Qp9Cj0Jsg0JDQndCa0JAKK9Ch0KLQkNCd0KfQo9CbINCJ0JjQidCQ0J3QkAor0KHQotCQ0J3Qp9Cj0Jsg0InQo9CR0J7QnNCY0KAKK9Ch0KLQkNCd0KfQo9CbINCg0JDQlNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0KfQo9CbINCg0JDQlNCe0JLQkNCdCivQodCi0JDQndCn0KPQmyDQodCQ0JLQkAor0KHQotCQ0J3Qp9Cj0JvQntCSINCU0KDQkNCT0JjQptCQCivQodCi0JDQndCn0KPQm9Ce0JIg0JzQmNCb0JDQnQor0KHQotCQ0J3QkNCL0JXQkiDQltCY0JLQkAor0KHQotCQ0J3QkNCL0JXQkiDQnNCY0JvQldCd0JAKK9Ch0KLQkNCd0JDQi9CV0JIg0JzQmNCb0JjQktCe0IgKK9Ch0KLQkNCd0JDQi9CV0JIg0KHQoNCV0JTQntCI0JUg0JTQoAor0KHQotCQ0J3QkNCgINCC0KPQoNCQCivQodCi0JDQndCQ0KAg0ILQo9Cg0JAKK9Ch0KLQkNCd0JDQoCDQgtCj0KDQkAor0KHQotCQ0J3QkNCgINCQ0J3QmtCQCivQodCi0JDQndCQ0KAg0JTQldCh0JAKK9Ch0KLQkNCd0JDQoCDQlNCj0KjQkNCd0JrQkAor0KHQotCQ0J3QkNCgINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0JDQoC3Qk9Ce0JPQmNCLINCh0KLQldCS0JDQnQor0KHQotCQ0J3QkNCgINCY0JvQmNCI0JAKK9Ch0KLQkNCd0JDQoCDQnNCY0JvQlQor0KHQotCQ0J3QkNCgINCg0JDQlNCVCivQodCi0JDQndCQ0KAg0KDQkNCi0JrQngor0KHQotCQ0J3QkNCg0JXQktCY0Isg0JbQldCJ0JrQngor0KHQotCQ0J3QkNCg0JXQktCY0Isg0JHQntCW0JAKK9Ch0KLQkNCd0JDQoNCV0JLQmNCLINCc0JDQoNCa0J4KK9Ch0KLQkNCd0JDQoNCV0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQodCi0JDQndCQ0KDQldCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCQ0KDQldCS0JjQiyDQndCV0JTQldCJ0JrQkAor0KHQotCQ0J3QkNCg0JXQktCY0Isg0KHQkNCS0JAKK9Ch0KLQkNCd0JHQntCb0JjQiNCQINCc0JjQoNCa0J4KK9Ch0KLQkNCd0JXQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JXQmtCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0KHQotCQ0J3QldCa0J7QktCY0Isg0JLQntCI0JAKK9Ch0KLQkNCd0JjQp9Ca0J7QkiDQp9CV0JTQntCc0JjQoAor0KHQotCQ0J3QmNCn0JrQntCSINCR0J7QoNCQCivQodCi0JDQndCY0KfQmtCe0JIg0IjQntCS0JDQnQor0KHQotCQ0J3QmNCn0JrQntCSINCJ0JjQidCQ0J3QkAor0KHQotCQ0J3QmNCn0JrQntCSINCc0JDQoNCi0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0JHQntCT0J7QidCj0JEKK9Ch0KLQkNCd0JjQqNCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQotCQ0J3QmNCo0JjQiyDQkdCj0JTQmNCd0JrQkAor0KHQotCQ0J3QmNCo0JjQiyDQlNCQ0JzQiNCQ0J0KK9Ch0KLQkNCd0JjQqNCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCQ0J3QmNCo0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0JDQndCY0KjQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Ch0KLQkNCd0JjQqNCY0Isg0JTQo9Co0JDQnQor0KHQotCQ0J3QmNCo0JjQiyDQlNCj0KjQkNCdCivQodCi0JDQndCY0KjQmNCLINCT0J7QiNCa0J4KK9Ch0KLQkNCd0JjQqNCY0Isg0IjQldCb0JXQndCQCivQodCi0JDQndCY0KjQmNCLINCI0J7QktCQ0J0KK9Ch0KLQkNCd0JjQqNCY0Isg0IjQntCS0JDQnQor0KHQotCQ0J3QmNCo0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KHQotCQ0J3QmNCo0JjQiyDQidCY0InQkNCd0JAg0JTQoAor0KHQotCQ0J3QmNCo0JjQiyDQidCj0JHQmNCm0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0JzQkNCg0JrQngor0KHQotCQ0J3QmNCo0JjQiyDQnNCQ0KDQmtCeCivQodCi0JDQndCY0KjQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JjQqNCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmNCo0JjQiyDQnNCY0JvQmNCLINCU0KAg0JvQldCa0JDQoAor0KHQotCQ0J3QmNCo0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQotCQ0J3QmNCo0JjQiyDQnNCY0JvQntCoCivQodCi0JDQndCY0KjQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0JDQndCY0KjQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0JDQndCY0KjQmNCLINCc0JvQkNCU0JXQnQor0KHQotCQ0J3QmNCo0JjQiyDQnNCe0JzQmNCgCivQodCi0JDQndCY0KjQmNCLINCd0JXQkdCe0IjQqNCQCivQodCi0JDQndCY0KjQmNCLINCd0JXQlNCV0InQmtCQCivQodCi0JDQndCY0KjQmNCLINCd0JjQmtCe0JvQkAor0KHQotCQ0J3QmNCo0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0J7Qm9CT0JjQptCQCivQodCi0JDQndCY0KjQmNCLINCf0JDQktCb0JUKK9Ch0KLQkNCd0JjQqNCY0Isg0J/QkNCS0JvQlQor0KHQotCQ0J3QmNCo0JjQiyDQn9CV0KLQkNCgCivQodCi0JDQndCY0KjQmNCLINCf0KDQntCa0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0KDQkNCU0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0KDQkNCU0J7QktCQ0J0KK9Ch0KLQkNCd0JjQqNCY0Isg0KDQkNCi0JrQngor0KHQotCQ0J3QmNCo0JjQiyDQoNCV0InQkAor0KHQotCQ0J3QmNCo0JjQiyDQodCY0JzQngor0KHQotCQ0J3QmNCo0JjQiyDQodCb0JDQktCa0J4g0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQndCY0KjQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQkNCd0JjQqNCY0Isg0KHQotCQ0J3QmNCo0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQodCi0JDQndCY0KjQmNCLINCh0KLQldCS0J4KK9Ch0KLQkNCd0JjQqNCY0Isg0KHQotCe0IjQkNCd0KfQkAor0KHQotCQ0J3QmNCo0JjQiyDQodCS0JXQotCb0JDQndCQCivQodCi0JDQndCY0KjQmNCLINCh0JLQldCi0J7Ql9CQ0KAg0JTQoAor0KHQotCQ0J3QmNCo0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCi0JDQndCY0KjQmNCLINCi0JjQpdCe0JzQmNCgCivQodCi0JDQndCY0KjQmNCLINCi0J7QlNCe0KAKK9Ch0KLQkNCd0JjQqNCY0Isg0KLQntCc0JDQqAor0KHQotCQ0J3QmNCo0JjQiyDQktCQ0KHQmNCJ0JrQkAor0KHQotCQ0J3QmNCo0JjQiyDQktCV0InQmtCeCivQodCi0JDQndCY0KjQmNCLINCS0JvQkNCU0JAKK9Ch0KLQkNCd0JjQqNCY0Isg0JfQntCg0JDQnQor0KHQotCQ0J3QmNCo0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCY0KjQmNCdINCR0KDQkNCd0JrQngor0KHQotCQ0J3QmNCo0JjQnSDQmNCh0JAKK9Ch0KLQkNCd0JjQqNCY0J0g0JLQntCI0JjQnQor0KHQotCQ0J3QmNCo0InQldCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0KHQotCQ0J3QmNCLINCW0JjQktCQ0JTQmNCdCivQodCi0JDQndCY0Isg0JbQmNCS0JDQnQor0KHQotCQ0J3QmNCLINCC0KPQoNCQCivQodCi0JDQndCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQkNCd0JjQiyDQkdCe0KjQmtCeCivQodCi0JDQndCY0Isg0JHQntCT0JTQkNCdCivQodCi0JDQndCY0Isg0JHQoNCQ0J3QmtCQCivQodCi0JDQndCY0Isg0JHQoNCQ0J3QmtCeCivQodCi0JDQndCY0Isg0JHQoNCQ0J3QmtCeCivQodCi0JDQndCY0Isg0JTQkNCd0JUKK9Ch0KLQkNCd0JjQiyDQlNCQ0J3QmNCm0JAKK9Ch0KLQkNCd0JjQiyDQlNCQ0J3QmtCQCivQodCi0JDQndCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JDQndCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSINCU0KAKK9Ch0KLQkNCd0JjQiyDQlNCg0JDQk9CeCivQodCi0JDQndCY0Isg0JTQo9Co0JDQnQor0KHQotCQ0J3QmNCLINCT0J7QiNCa0J4KK9Ch0KLQkNCd0JjQiyDQmNCb0JjQiNCQCivQodCi0JDQndCY0Isg0JjQm9CY0IjQkAor0KHQotCQ0J3QmNCLINCY0JvQmNCI0JAKK9Ch0KLQkNCd0JjQiyDQmNCb0JjQiNCQCivQodCi0JDQndCY0Isg0JjQktCQ0J0KK9Ch0KLQkNCd0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQodCi0JDQndCY0Isg0IjQldCb0JXQndCQCivQodCi0JDQndCY0Isg0IjQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCd0JjQiyDQiNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0J3QmNCLINCI0KPQm9Ca0JAKK9Ch0KLQkNCd0JjQiyDQmtCg0JjQodCi0JjQktCe0IjQlQor0KHQotCQ0J3QmNCLINCb0JjQndCa0JAKK9Ch0KLQkNCd0JjQiyDQidCj0JHQntCU0KDQkNCTCivQodCi0JDQndCY0Isg0JzQkNCd0JUKK9Ch0KLQkNCd0JjQiyDQnNCQ0KDQmtCeCivQodCi0JDQndCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0KHQotCQ0J3QmNCLINCc0JjQm9CQ0J3QmtCeCivQodCi0JDQndCY0Isg0JzQmNCb0JDQndCa0J4KK9Ch0KLQkNCd0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCY0Isg0JzQmNCb0JUKK9Ch0KLQkNCd0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQkNCd0JjQiyDQnNCY0JvQmNCd0JrQngor0KHQotCQ0J3QmNCLINCc0JjQm9CY0KHQkNCSCivQodCi0JDQndCY0Isg0JzQmNCb0J7QiNCVCivQodCi0JDQndCY0Isg0JzQmNCb0J7QodCQ0JLQkAor0KHQotCQ0J3QmNCLINCc0JvQkNCU0JXQnQor0KHQotCQ0J3QmNCLINCc0J7QnNCn0JjQm9CeCivQodCi0JDQndCY0Isg0J7Qm9CT0JAKK9Ch0KLQkNCd0JjQiyDQntCh0KLQntCI0JAKK9Ch0KLQkNCd0JjQiyDQn9CV0KLQkNCgCivQodCi0JDQndCY0Isg0J/QldCi0JDQoAor0KHQotCQ0J3QmNCLINCf0JXQotCQ0KAKK9Ch0KLQkNCd0JjQiyDQoNCQ0JTQlQor0KHQotCQ0J3QmNCLINCg0JDQlNCVCivQodCi0JDQndCY0Isg0KDQkNCU0JjQqNCQCivQodCi0JDQndCY0Isg0KDQkNCU0J7QktCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQndCY0Isg0KDQkNCI0JrQngor0KHQotCQ0J3QmNCLINCh0JDQktCeCivQodCi0JDQndCY0Isg0KHQmNCc0J4KK9Ch0KLQkNCd0JjQiyDQodCY0J3QmNCo0JAKK9Ch0KLQkNCd0JjQiyDQodCf0JDQodCe0IjQlQor0KHQotCQ0J3QmNCLINCh0KDQgtCQ0J0KK9Ch0KLQkNCd0JjQiyDQodCi0JDQnNCV0J3QkAor0KHQotCQ0J3QmNCLINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmNCLINCj0KDQntCoCivQodCi0JDQndCY0Isg0JLQldCb0JjQkdCe0KAKK9Ch0KLQkNCd0JjQiyDQktCY0JrQotCe0KAKK9Ch0KLQkNCd0JjQiyDQktCY0KLQntCc0JjQoAor0KHQotCQ0J3QmNCLINCS0JjQotCe0JzQmNCgCivQodCi0JDQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCQ0J3QmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCY0Isg0JfQntCg0JDQnQor0KHQotCQ0J3QmNCW0JDQnSDQnNCY0JvQntCg0JDQlAor0KHQotCQ0J3QmNCaINCe0JvQk9CQCivQodCi0JDQndCY0JrQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JjQmtCY0Isg0JzQmNCb0JXQktCQCivQodCi0JDQndCY0JzQmNCg0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCQ0J3QmNCc0JjQoNCe0JIg0JDQndCQCivQodCi0JDQndCY0JzQmNCg0J7QkiDQkdCe0KDQmNCS0J7QiAor0KHQotCQ0J3QmNCc0JjQoNCe0JIg0JHQoNCQ0J3QmtCQCivQodCi0JDQndCY0JzQmNCg0J7QkiDQlNCj0KjQkNCdCivQodCi0JDQndCY0JzQmNCg0J7QkiDQk9CQ0JLQoNCQCivQodCi0JDQndCY0JzQmNCg0J7QkiDQiNCV0JvQmtCQCivQodCi0JDQndCY0JzQmNCg0J7QkiDQmtCQ0KLQmNCm0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCSINCJ0JjQidCQ0J3QkAor0KHQotCQ0J3QmNCc0JjQoNCe0JIg0InQmNCJ0JDQndCQCivQodCi0JDQndCY0JzQmNCg0J7QkiDQidCj0JHQmNCm0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCSINCd0JXQlNCV0InQmtCeCivQodCi0JDQndCY0JzQmNCg0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KHQotCQ0J3QmNCc0JjQoNCe0JIg0KDQkNCd0JrQkAor0KHQotCQ0J3QmNCc0JjQoNCe0JIg0KHQm9CQ0JLQmtCeCivQodCi0JDQndCY0JzQmNCg0J7QkiDQl9Ce0KDQmNCm0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCU0JXQodCY0JzQmNCgCivQodCi0JDQndCY0JzQmNCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JDQndCY0JzQmNCg0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JDQndCY0JzQmNCg0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCI0JDQlNCg0JDQndCa0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ch0KLQkNCd0JjQnNCY0KDQntCS0JjQiyDQmtCg0KHQotCeCivQodCi0JDQndCY0JzQmNCg0J7QktCY0Isg0JzQntCc0JAg0JTQoAor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCf0JDQktCb0JUKK9Ch0KLQkNCd0JjQnNCY0KDQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Ch0KLQkNCd0JjQnNCY0KDQntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCi0KDQmNCk0KPQnQor0KHQotCQ0J3QmNCc0JjQoNCe0JLQmNCLINCS0JXQoNCe0J3QmNCa0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JIg0ILQntCa0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JIg0ILQntCg0ILQlQor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQkNCd0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JIg0JTQntCR0KDQmNCS0J7QiAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQlNCj0KjQkNCdCivQodCi0JDQndCY0KHQkNCS0InQldCSINCJ0KPQkdCY0KbQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQidCj0JHQntCc0JjQoAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQnNCY0JvQkNCdCivQodCi0JDQndCY0KHQkNCS0InQldCSINCc0JjQm9CY0KbQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQnNCY0JvQntCI0JrQngor0KHQotCQ0J3QmNCh0JDQktCJ0JXQkiDQnNCY0KDQntCh0JvQkNCSCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQgtCe0KDQgtCVINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0ILQntCg0ILQlQor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JHQmNCJ0JDQndCQCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQkdCe0JbQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0KbQktCV0KLQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JTQkNCd0JUKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JPQmNCX0JXQm9CQCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JjQk9CK0JDQotCY0IjQlQor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JrQkNCi0JjQptCQCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQm9CV0J/QntCh0JDQktCQCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CY0JLQntCI0JUKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCg0JrQngor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0J3QkNCU0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCg0JDQlNCVCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQoNCj0JbQmNCm0JAKK9Ch0KLQkNCd0JjQodCQ0JLQidCV0JLQmNCLINCh0JDQktCQINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0KHQotCQ0JLQoNCQINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0KHQotCV0JLQkNCdCivQodCi0JDQndCY0KHQkNCS0InQldCS0JjQiyDQktCV0JvQmNCX0JDQoAor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JLQldCJ0JrQngor0KHQotCQ0J3QmNCh0JDQktCJ0JXQktCY0Isg0JfQntCg0JjQptCQCivQodCi0JDQndCY0JLQo9CaINCW0JDQoNCa0J4KK9Ch0KLQkNCd0JjQktCj0Jog0JTQldCI0JDQnQor0KHQotCQ0J3QmNCS0KPQmiDQnNCY0KDQmtCeCivQodCi0JDQndCY0JLQo9CaINCc0JvQkNCU0JXQnQor0KHQotCQ0J3QmNCS0KPQmiDQndCQ0JTQkAor0KHQotCQ0J3QmNCS0KPQmiDQndCV0JTQldCJ0JrQngor0KHQotCQ0J3QmNCS0KPQmiDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0JjQktCj0Jog0JfQlNCg0JDQktCa0J4KK9Ch0KLQkNCd0JjQktCj0JrQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdINCc0KAKK9Ch0KLQkNCd0JjQktCj0JrQntCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQodCi0JDQndCY0JLQo9Ca0J7QktCY0Isg0InQmNCJ0JDQndCQCivQodCi0JDQndCY0JLQo9Ca0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQodCi0JDQndCY0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JjQktCe0Igg0JTQoCDQktCV0KLQldCg0JjQndCVCivQodCi0JDQndCY0JLQo9Ca0J7QktCY0Isg0KPQoNCe0KgKK9Ch0KLQkNCd0JrQmNCLINCU0KDQkNCT0JDQnQor0KHQotCQ0J3QmtCY0Isg0JvQkNCX0JDQoAor0KHQotCQ0J3QmtCY0Isg0JzQmNCb0J7QqAor0KHQotCQ0J3QmtCY0Isg0KHQotCV0JLQkNCdCivQodCi0JDQndCa0JjQiyDQktCY0JvQntCT0J7QoNCa0JAKK9Ch0KLQkNCd0JrQmNCI0JXQktCY0Isg0JTQo9Co0JDQnQor0KHQotCQ0J3QmtCY0J0g0ILQntCg0ILQlQor0KHQotCQ0J3QmtCY0J0g0JHQoNCQ0J3QmtCQCivQodCi0JDQndCa0JjQnSDQiNCQ0KHQnNCY0J3QkAor0KHQotCQ0J3QmtCY0J0g0JzQmNCb0JUKK9Ch0KLQkNCd0JrQmNCdINCc0JjQm9CY0JLQntCICivQodCi0JDQndCa0JjQnSDQnNCY0JvQmNCS0J7QiAor0KHQotCQ0J3QmtCY0J0g0KLQntCU0J7QoAor0KHQotCQ0J3QmtCeINCY0JzQoNCVCivQodCi0JDQndCa0J4g0JjQktCQ0J0KK9Ch0KLQkNCd0JrQniDQiNCe0KHQmNCfINCU0JjQn9CbINCY0J3Qkwor0KHQotCQ0J3QmtCeINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCeINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCeINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCeINCS0JXQoNCY0KbQkAor0KHQotCQ0J3QmtCe0JIg0JbQkNCg0JrQngor0KHQotCQ0J3QmtCe0JIg0JbQmNCS0JrQkAor0KHQotCQ0J3QmtCe0JIg0JbQmNCS0JrQngor0KHQotCQ0J3QmtCe0JIg0JbQmNCS0JrQngor0KHQotCQ0J3QmtCe0JIg0ILQntCg0ILQlQor0KHQotCQ0J3QmtCe0JIg0JHQntCI0JDQndCQCivQodCi0JDQndCa0J7QkiDQlNCQ0KDQmNCd0JrQkAor0KHQotCQ0J3QmtCe0JIg0JTQkNCg0JrQngor0KHQotCQ0J3QmtCe0JIg0JTQo9Co0JDQnQor0KHQotCQ0J3QmtCe0JIg0JTQo9Co0JDQnQor0KHQotCQ0J3QmtCe0JIg0JXQltCV0JHQldCiCivQodCi0JDQndCa0J7QkiDQmNCS0JDQndCa0JAKK9Ch0KLQkNCd0JrQntCSINCY0JLQkNCdCivQodCi0JDQndCa0J7QkiDQiNCV0JvQldCd0JAKK9Ch0KLQkNCd0JrQntCSINCa0JDQotCY0KbQkAor0KHQotCQ0J3QmtCe0JIg0JrQntCS0JjQndCQCivQodCi0JDQndCa0J7QkiDQidCj0JHQmNCm0JAKK9Ch0KLQkNCd0JrQntCSINCc0JDQoNCY0IjQkAor0KHQotCQ0J3QmtCe0JIg0JzQkNCg0JjQndCa0J4KK9Ch0KLQkNCd0JrQntCSINCc0JDQoNCa0J4KK9Ch0KLQkNCd0JrQntCSINCc0JjQm9CQ0J3QmtCeCivQodCi0JDQndCa0J7QkiDQnNCY0JvQkNCd0JrQngor0KHQotCQ0J3QmtCe0JIg0JzQmNCb0J7QqAor0KHQotCQ0J3QmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9Ch0KLQkNCd0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCSINCd0JXQktCV0J3QmtCQCivQodCi0JDQndCa0J7QkiDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0JrQntCSINCf0JDQiNCQINCU0KAKK9Ch0KLQkNCd0JrQntCSINCf0JDQktCb0JUKK9Ch0KLQkNCd0JrQntCSINCf0JXQotCQ0KAKK9Ch0KLQkNCd0JrQntCSINCf0JXQotCQ0KAKK9Ch0KLQkNCd0JrQntCSINCg0JDQlNCe0JLQkNCdCivQodCi0JDQndCa0J7QkiDQoNCQ0KHQotCa0J4KK9Ch0KLQkNCd0JrQntCSINCg0KPQltCY0KbQkAor0KHQotCQ0J3QmtCe0JIg0KHQm9Ce0JHQntCU0JDQndCa0JAKK9Ch0KLQkNCd0JrQntCSINCh0J7QpNCY0IjQkAor0KHQotCQ0J3QmtCe0JIg0KHQotCQ0J3QmtCQCivQodCi0JDQndCa0J7QkiDQodCi0JXQktCQ0J0KK9Ch0KLQkNCd0JrQntCSINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCe0JIg0KHQotCe0IjQkNCdCivQodCi0JDQndCa0J7QkiDQodCS0JXQotCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQkNCd0JrQntCSINCS0JXQidCa0J4KK9Ch0KLQkNCd0JrQntCSINCS0JXQidCa0J4KK9Ch0KLQkNCd0JrQntCSINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQkNCd0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCSINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCSINCX0J7QoNCQ0J3QmtCQCivQodCi0JDQndCa0J7QkiDQl9Ce0KDQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JbQkNCg0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCW0JDQoNCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQltCY0JLQmtCeCivQodCi0JDQndCa0J7QktCY0Isg0JbQmNCS0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCW0JjQktCe0IjQmNCdCivQodCi0JDQndCa0J7QktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQltCY0JLQntCg0JDQlAor0KHQotCQ0J3QmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Ch0KLQkNCd0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQodCi0JDQndCa0J7QktCY0Isg0ILQntCg0JUKK9Ch0KLQkNCd0JrQntCS0JjQiyDQgtCj0KDQngor0KHQotCQ0J3QmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0JDQndCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCQ0J3QgtCV0JvQmtCQCivQodCi0JDQndCa0J7QktCY0Isg0JDQndCC0JXQm9Ca0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkNCd0JjQptCQCivQodCi0JDQndCa0J7QktCY0Isg0JDQoNCQ0J3QmtCQCivQodCi0JDQndCa0J7QktCY0Isg0JDQktCg0JDQnAor0KHQotCQ0J3QmtCe0JLQmNCLINCR0JjQidCQ0J3QkAor0KHQotCQ0J3QmtCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQodCi0JDQndCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkSDQlNCgCivQodCi0JDQndCa0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkdCe0IjQkNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkdCe0IjQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JHQntCg0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkdCe0KDQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCR0J7QoNCQCivQodCi0JDQndCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCU0JDQndCY0KbQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCU0JDQndCY0JvQngor0KHQotCQ0J3QmtCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQodCi0JDQndCa0J7QktCY0Isg0JTQmNCS0J3QkAor0KHQotCQ0J3QmtCe0JLQmNCLINCU0J7QkdCg0JjQndCa0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCe0JHQoNCe0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQodCi0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0JDQndCa0J7QktCY0Isg0JTQoNCQ0JPQntCg0JDQlAor0KHQotCQ0J3QmtCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JTQo9Co0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCV0JLQldCb0JjQnSDQlNCgCivQodCi0JDQndCa0J7QktCY0Isg0JXQktCY0KbQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCk0KDQldCU0JXQoNCY0JoKK9Ch0KLQkNCd0JrQntCS0JjQiyDQmNCb0JjQiNCQCivQodCi0JDQndCa0J7QktCY0Isg0JjQm9CY0IjQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCY0JLQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JjQktCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQiNCQ0JPQntCU0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQiNCV0KHQldCd0JrQkCDQlNCgCivQodCi0JDQndCa0J7QktCY0Isg0IjQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCd0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0IjQntCS0JjQptCQCivQodCi0JDQndCa0J7QktCY0Isg0IjQntCS0JjQptCQCivQodCi0JDQndCa0J7QktCY0Isg0JrQkNCi0JDQm9CY0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQodCi0JDQndCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQodCi0JDQndCa0J7QktCY0Isg0JrQntCh0JDQndCQCivQodCi0JDQndCa0J7QktCY0Isg0JrQntCh0KLQkNCU0JjQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCb0JDQl9CQ0KAg0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQndCa0J7QktCY0Isg0JvQkNCX0JDQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCY0InQkNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCj0JHQmNCh0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCi0JDQndCa0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCJ0KPQkdCeCivQodCi0JDQndCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQodCi0JDQndCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQodCi0JDQndCa0J7QktCY0Isg0JzQkNCg0JjQndCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCQ0KDQmNCd0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JDQoNCI0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JDQoNCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J3QmtCeCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQndCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0JvQntCoCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQntCc0JjQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCg0JrQngor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQodCi0JDQndCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCS0JjQiyDQnNCY0KLQkNCgCivQodCi0JDQndCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQodCi0JDQndCa0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQodCi0JDQndCa0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQndCQ0JTQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCd0JDQlNCQCivQodCi0JDQndCa0J7QktCY0Isg0J3QkNCU0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQndCQ0JTQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCd0JDQotCQ0KjQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCd0JDQotCQ0JvQmNCI0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQndCV0J3QkNCUCivQodCi0JDQndCa0J7QktCY0Isg0J3QldCS0JXQndCQCivQodCi0JDQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCa0J7QktCY0Isg0J7Qm9CT0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQntCb0JPQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCe0JvQk9CY0KbQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCe0KHQotCe0IjQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCf0JDQktCb0JUKK9Ch0KLQkNCd0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQodCi0JDQndCa0J7QktCY0Isg0J/QldCi0JDQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQodCi0JDQndCa0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQodCi0JDQndCa0J7QktCY0Isg0KHQkNCo0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCQ0JLQmtCQCivQodCi0JDQndCa0J7QktCY0Isg0KHQkNCS0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCh0J7QpNCY0IjQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCh0KDQgtCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCg0JHQntCJ0KPQkSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCi0JDQnNCV0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCi0JDQndCa0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCi0JDQndCe0IjQlQor0KHQotCQ0J3QmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCh0KLQldCS0J4KK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCi0JDQndCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCi0JXQoNCV0JfQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCi0JjQntCh0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCi0J7QqNCQCivQodCi0JDQndCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCQ0J3QmtCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0JrQntCS0JjQiyDQktCV0J3QldCg0JAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQktCV0KHQldCb0JjQnQor0KHQotCQ0J3QmtCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQodCi0JDQndCa0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQktCb0JDQlNCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQktCb0JDQlNCQCivQodCi0JDQndCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCQ0J3QmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQkNCd0JrQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCi0JDQndCa0J7QktCY0Ist0JLQoNCQ0J3QmNCLINCc0JjQm9CY0KbQkAor0KHQotCQ0J3QmtCe0JLQmNCLINCX0JvQkNCi0JjQktCe0IjQlQor0KHQotCQ0J3QmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQkNCd0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCa0J7QktCY0Isg0JfQntCg0JAKK9Ch0KLQkNCd0JrQntCS0KHQmtCYINCa0J7QodCi0JAKK9Ch0KLQkNCd0JrQntCS0KHQmtCYINCh0KLQldCS0JDQnQor0KHQotCQ0J3QmtCe0JLQodCa0Jgg0JLQldCJ0JDQnQor0KHQotCQ0J3QntCI0KfQmNCLINCC0J7QoNCC0JUKK9Ch0KLQkNCd0J7QiNCn0JjQiyDQkNCd0ILQldCb0JrQngor0KHQotCQ0J3QntCI0KfQmNCLINCQ0J3QmtCY0KbQkAor0KHQotCQ0J3QntCI0KfQmNCLINCU0JXQodCY0JzQmNCgCivQodCi0JDQndCe0IjQp9CY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0KLQkNCd0J7QiNCn0JjQiyDQntCb0JPQkAor0KHQotCQ0J3QntCI0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQkNCd0J7QiNCn0JjQiyDQodCe0KTQmNCI0JAKK9Ch0KLQkNCd0J7QiNCn0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQkNCd0J7QiNCn0JjQiyDQktCV0KDQkAor0KHQotCQ0J3QntCI0KfQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0J7QiNCV0JIg0JbQmNCS0JDQnQor0KHQotCQ0J3QntCI0JXQkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0KHQotCQ0J3QntCI0JXQkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KLQkNCd0J7QiNCV0JIg0JTQldCI0JDQnQor0KHQotCQ0J3QntCI0JXQkiDQlNCj0KjQkNCdCivQodCi0JDQndCe0IjQldCSINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JIg0JTQo9Co0JDQnQor0KHQotCQ0J3QntCI0JXQkiDQlNCj0KjQkNCdCivQodCi0JDQndCe0IjQldCSINCT0J7QoNCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JIg0IjQntCm0JAKK9Ch0KLQkNCd0J7QiNCV0JIg0JvQkNCX0JDQoAor0KHQotCQ0J3QntCI0JXQkiDQidCj0JHQmNCm0JAKK9Ch0KLQkNCd0J7QiNCV0JIg0JzQmNCb0JDQnQor0KHQotCQ0J3QntCI0JXQki3QnNCe0KHQmtCQ0Ikg0J7Qm9CT0JAKK9Ch0KLQkNCd0J7QiNCV0JIg0J3QldCR0J7QiNCo0JAKK9Ch0KLQkNCd0J7QiNCV0JIg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCe0IjQldCSLdCf0JXQotCg0JXQiiDQnNCY0KDQiNCQ0J3QkAor0KHQotCQ0J3QntCI0JXQkiDQodCQ0JLQkAor0KHQotCQ0J3QntCI0JXQkiDQodCi0JDQndCa0JAKK9Ch0KLQkNCd0J7QiNCV0JIg0KHQotCV0JLQkNCdCivQodCi0JDQndCe0IjQldCSINCi0JjQpdCe0JzQmNCgCivQodCi0JDQndCe0IjQldCSINCS0JXQoNCY0KbQkAor0KHQotCQ0J3QntCI0JXQkiDQktCb0JDQlNCY0JzQmNCgCivQodCi0JDQndCe0IjQldCSINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQodCi0JDQndCe0IjQldCS0JjQiyDQltCQ0KDQmtCeCivQodCi0JDQndCe0IjQldCS0JjQiyDQltCY0JLQkNCd0JrQngor0KHQotCQ0J3QntCI0JXQktCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCC0KPQoNCQCivQodCi0JDQndCe0IjQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCQ0J3QntCI0JXQktCY0Isg0JTQkNCd0JjQptCQCivQodCi0JDQndCe0IjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCl0KDQkNCd0JjQodCb0JDQkgor0KHQotCQ0J3QntCI0JXQktCY0Isg0JjQm9CY0IjQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0IjQntCS0JDQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0JrQkNCL0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCa0J7QodCi0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCJ0KPQkdCY0J3QmtCQCivQodCi0JDQndCe0IjQldCS0JjQiy3QnNCQ0J3QlNCY0Isg0JzQmNCb0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCb0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCc0JjQm9CV0KLQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCi0JDQndCe0IjQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KHQotCQ0J3QntCI0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCd0JDQlNCQCivQodCi0JDQndCe0IjQldCS0JjQiyDQndCQ0KLQkNCo0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQodCi0JDQndCe0IjQldCS0JjQiyDQndCV0JzQkNCK0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCd0JXQodCi0J7QoAor0KHQotCQ0J3QntCI0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQndCe0IjQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCf0JDQktCb0JUKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQodCi0JDQndCe0IjQldCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQotCQ0J3QntCI0JXQktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCg0JDQlNCeCivQodCi0JDQndCe0IjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0JDQndCe0IjQldCS0JjQiyDQodCe0KTQmNCI0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCh0KDQkdCe0InQo9CRCivQodCi0JDQndCe0IjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KHQotCQ0J3QntCI0JXQktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLLdCS0JDQoNCT0JAg0JDQndCQINCU0KAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCS0JXQidCa0J4KK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQkNCd0J7QiNCV0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0KHQotCQ0J3QntCI0JXQktCY0Isg0JLQo9CaCivQodCi0JDQndCe0IjQldCS0JjQiyDQl9CU0KDQkNCS0JrQngor0KHQotCQ0J3QntCI0JXQktCY0Isg0JfQm9CQ0KLQmtCeCivQodCi0JDQndCe0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCe0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCe0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCe0IjQldCS0JjQiyDQl9Ce0KDQkNCdCivQodCi0JDQndCe0IjQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0KLQkNCd0J7QiNCa0J7QktCY0Isg0KDQkNCU0JUKK9Ch0KLQkNCd0J7QiNCa0J7QktCY0Isg0JLQm9CQ0JTQkAor0KHQotCQ0J3QntCI0JvQntCS0JjQiyDQnNCY0KLQkNCgCivQodCi0JDQndCe0IjQm9Ce0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCQ0J3QntCI0J7QodCa0Jgg0JTQkNCd0JjQptCQCivQodCi0JDQndCe0IjQntCh0JrQmCDQl9Cb0JDQotCQCivQodCi0JDQndCe0IjQodCa0Jgg0JHQm9CQ0JPQntCI0JUKK9Ch0KLQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQodCi0JDQndCe0JLQmNCLINCS0JXQodCV0JvQmNCdCivQodCi0JDQndCi0JUg0IjQntCh0JjQnwor0KHQotCQ0J3QotCY0Isg0JHQkNCg0KLQo9CbCivQodCi0JDQndCi0JjQiyDQkdCV0KDQotCQ0JvQkNCdCivQodCi0JDQndCi0JjQiyDQmtCQ0KLQkNCb0JjQnQor0KHQotCQ0J3QotCY0Isg0JvQkNCU0JjQodCb0JDQkgor0KHQotCQ0J3QotCY0Isg0JLQldCg0J7QndCQCivQodCi0JDQndCj0KjQmNCLINCc0JjQiNCQ0KIKK9Ch0KLQkNCd0KPQmyDQn9CV0KLQkNCgCivQodCi0JDQndCj0JvQntCSINCh0JLQldCi0JvQkNCd0JAKK9Ch0KLQkNCd0KPQm9Ce0JIg0KLQntCU0J7QoAor0KHQotCQ0J3Qo9Cb0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVINCU0KAKK9Ch0KLQkNCd0KPQm9Ce0JLQmNCLINCc0JjQm9CQ0J0g0JTQoAor0KHQotCQ0J/QkNCgINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0JDQn9CQ0KDQodCa0Jgg0JHQntCg0JjQodCb0JDQkgor0KHQotCQ0J/QkNCg0KHQmtCYINCc0JjQm9CQ0J0KK9Ch0KLQkNCf0JDQoNCh0JrQmCDQn9CV0KLQkNCgCivQodCi0JDQn9CQ0KDQodCa0Jgg0KHQotCV0JLQkNCdCivQodCi0JDQoNCn0JXQkiDQkNCd0ILQldCb0JrQkAor0KHQotCQ0KDQp9CV0JIg0JHQoNCQ0J3QmtCQCivQodCi0JDQoNCn0JXQkiDQlNCV0KHQkNCd0JrQkAor0KHQotCQ0KDQp9CV0JIg0IjQldCb0JAKK9Ch0KLQkNCg0KfQldCSINCa0JDQotCY0KbQkAor0KHQotCQ0KDQp9CV0JIg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQkNCg0KfQldCSINCc0JjQm9CV0J3QmtCeCivQodCi0JDQoNCn0JXQkiDQnNCY0JvQntCoCivQodCi0JDQoNCn0JXQkiDQnNCY0KDQntCh0JvQkNCSCivQodCi0JDQoNCn0JXQkiDQodCi0J7QiNCQ0J3QmtCQCivQodCi0JDQoNCn0JXQktCY0Isg0JDQndCY0KbQkAor0KHQotCQ0KDQp9CV0JLQmNCLINCQ0J3QmtCQCivQodCi0JDQoNCn0JXQktCY0Isg0JHQntCo0JrQngor0KHQotCQ0KDQp9CV0JLQmNCLINCR0J7Qk9CU0JDQnQor0KHQotCQ0KDQp9CV0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0KLQkNCg0KfQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KLQkNCg0KfQldCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0KHQotCQ0KDQp9CV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQodCi0JDQoNCn0JXQktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0KLQkNCg0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQodCi0JDQoNCn0JXQktCY0Isg0KTQoNCQ0IrQkAor0KHQotCQ0KDQp9CV0JLQmNCLINCY0JLQkNCdCivQodCi0JDQoNCn0JXQktCY0Isg0InQo9CR0JjQndCa0J4g0JTQmNCf0Jsg0JjQndCTCivQodCi0JDQoNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQkNCg0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQodCi0JDQoNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQm9CY0KbQkAor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQm9CY0KbQkAor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQm9Ca0JAKK9Ch0KLQkNCg0KfQldCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0JDQoNCn0JXQktCY0Isg0JzQmNCg0JrQngor0KHQotCQ0KDQp9CV0JLQmNCLINCc0JjQoNCa0J4KK9Ch0KLQkNCg0KfQldCS0JjQiyDQnNCY0KDQmtCeCivQodCi0JDQoNCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQoNCn0JXQktCY0Isg0J7Qm9CT0JAKK9Ch0KLQkNCg0KfQldCS0JjQiyDQn9CQ0JLQm9CVCivQodCi0JDQoNCn0JXQktCY0Isg0KDQo9CU0J7Qm9CkCivQodCi0JDQoNCn0JXQktCY0Isg0KHQotCQ0JzQldCd0JrQkAor0KHQotCQ0KDQp9CV0JLQmNCLINCh0KLQkNCd0JrQngor0KHQotCQ0KDQp9CV0JLQmNCLINCh0KLQmNCf0J4KK9Ch0KLQkNCg0KfQldCS0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0KLQkNCg0KfQldCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Ch0KLQkNCg0JDQp9CV0Jog0JbQldCJ0JrQngor0KHQotCQ0KDQkNCn0JXQmiDQiNCe0JbQldCkCivQodCi0JDQoNCQ0KfQldCaINCI0J7QktCQ0J0KK9Ch0KLQkNCg0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JDQoNCYINCU0JDQndCY0JXQmwor0KHQotCQ0KDQmCDQm9CY0JLQmNCI0JAKK9Ch0KLQkNCg0JjQiyDQmNCS0JDQnQor0KHQotCQ0KDQntCS0JjQiyDQkdCe0KDQmNCS0J7QiCDQlNCgCivQodCi0JDQoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0KHQotCQ0KDQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQkNCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCQ0KDQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0KHQotCQ0KDQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQotCQ0KDQntCS0JjQiyDQoNCQ0KHQotCY0KHQm9CQ0JIKK9Ch0KLQkNCg0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9Ch0KLQkNCg0J7QktCb0JDQpSDQnNCb0JDQlNCV0J0KK9Ch0KLQkNCS0JXQndCe0JIg0ILQntCg0ILQlQor0KHQotCQ0JLQiNCV0Jsg0JzQm9CQ0JTQldCdCivQodCi0JDQktCg0JXQktCh0JrQmCDQkdCe0JPQlNCQ0J0KK9Ch0KLQkNCS0KDQmNCLINCY0JvQntCd0JrQkAor0KHQotCQ0JLQoNCY0Isg0KHQotCQ0J3QntCI0JUKK9Ch0KLQkNCS0KDQntCSINCU0JDQndCY0KbQkAor0KHQotCV0Isg0JzQmNCi0JDQoAor0KHQotCV0Isg0JLQkNCh0JjQm9CY0IjQlQor0KHQotCV0KTQkNCdINCY0JLQkNCdCivQodCi0JXQpNCQ0J0g0InQo9CR0J7QnNCY0KDQkAor0KHQotCV0KTQkNCd0JjQlNCV0KEg0IjQo9Cb0JjQiNCVCivQodCi0JXQpNCQ0J3QmNCU0JXQoSDQidCj0JTQldCS0JjQogor0KHQotCV0KTQkNCd0JjQlNCY0KEg0JrQmNCg0JjQkNCa0JgKK9Ch0KLQldCk0JDQitCj0Jog0J3QmNCa0J7Qm9CQCivQodCi0JXQpNCQ0J3QntCSINCR0JvQkNCT0J7QiNCVCivQodCi0JXQpNCQ0J3QntCSINCJ0KPQkdCe0JzQmNCgCivQodCi0JXQpNCQ0J3QntCSINCd0JDQlNCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQltCY0JrQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JbQmNCa0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCW0JjQmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQltCY0JLQntCg0JDQlAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JbQmNCS0J7QotCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQgtCj0KDQmNCm0JAg0JTQoCDQm9CV0JrQkNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCQ0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JDQndCT0JXQm9CY0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JDQndCa0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JHQntCT0J7QidCj0JEKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQodCi0JXQpNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQkNCd0JjQm9Ca0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCV0JbQlQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQldCI0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCd0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCU0KPQqNCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCV0KDQltCY0JrQkAor0KHQotCV0KTQkNCd0J7QktCY0Ist0JPQldCg0JjQiyDQl9Ce0KDQmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCY0JLQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0IjQntCh0JjQpAor0KHQotCV0KTQkNCd0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCI0J7Ql9CV0KTQmNCd0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCa0JDQoNCQ0J3QpNCY0JvQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQm9CV0J3QmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoCDQlNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JvQo9Cm0JjQiNCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JDQoNCY0J3QmtCeCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCQ0KDQmtCeCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCQ0KDQotCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCQ0KDQotCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0JXQndCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0JvQldCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQm9Cj0KLQmNCdINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCe0JzQmNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQnNCY0KDQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCd0JDQlNCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQn9CQ0J3QotCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQn9CQ0KPQm9CQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCg0KPQltCY0KbQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQkNCK0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0JvQkNCS0JjQptCQINCU0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0J/QoNCe0KTQldCh0J7QoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQnNCY0InQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQnNCY0InQmtCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQotCQ0J3QmNCo0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0KLQkNCd0JrQngor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQotCI0JXQn9CQ0J0KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0KLQntCI0JDQndCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQodCj0JfQkNCd0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KLQkNCi0IjQkNCd0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLLdCi0JjQm9CY0Isg0JTQmNCS0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KLQntCU0J7QoAor0KHQotCV0KTQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQkNCh0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0JDQodCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCV0KDQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQldCg0JAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0JXQoNCY0KbQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQldCh0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQldCh0J3QkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQptCQCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0JXQpNCQ0J3QntCS0JjQiyDQktCb0JDQiNCa0J4KK9Ch0KLQldCk0JDQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JLQkAor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQotCV0KTQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQotCV0KTQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KHQotCV0KTQkNCd0J7QktCY0Isg0JfQntCg0JDQnQor0KHQotCV0KTQkNCd0J7QktCh0JrQkCDQl9Ce0KDQmtCQCivQodCi0JXQpNCQ0J3QntCS0KHQmtCYINCb0JXQktCa0J4KK9Ch0KLQldCk0JDQndCe0JLQodCa0Jgg0JzQldCi0J7QlNCY0IjQlQor0KHQotCV0KTQkNCd0J7QktCh0JrQmCDQnNCY0JvQntCg0JDQlAor0KHQotCV0KTQkNCd0J7QktCh0JrQmCDQodCi0JDQnNCV0J0KK9Ch0KLQldCT0JjQiyDQlNCV0IjQkNCdCivQodCi0JXQk9CY0Isg0JjQktCQ0J0KK9Ch0KLQldCT0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQldCT0IrQkNCY0Isg0J7Qm9CT0JAKK9Ch0KLQldCT0IrQkNCI0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0JXQiNCY0Isg0JDQoNCQ0J3QmtCQCivQodCi0JXQiNCY0Isg0IjQldCb0JXQndCQCivQodCi0JXQiNCY0Isg0JrQntCh0KLQkAor0KHQotCV0IjQmNCLINCd0JXQktCV0J3QmtCQCivQodCi0JXQiNCY0Isg0KDQo9CW0JAKK9Ch0KLQldCI0JjQnSDQgtCe0KDQgtCVCivQodCi0JXQiNCY0J0g0JHQntCg0JjQodCb0JDQkgor0KHQotCV0IjQmNCdINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQodCi0JXQiNCY0J0g0IjQldCb0JXQndCQCivQodCi0JXQiNCY0J0g0IjQntCS0JDQndCa0JAKK9Ch0KLQldCI0JjQnSDQidCj0JHQmNCm0JAKK9Ch0KLQldCI0JjQnSDQoNCj0JbQmNCm0JAKK9Ch0KLQldCI0JjQnSDQodCQ0KjQkAor0KHQotCV0IjQmNCdINCh0KDQgtCQ0J0KK9Ch0KLQldCb0JAg0JLQm9CQ0JTQmNCc0JjQoNCQCivQodCi0JXQidCQINCd0J7QktCQ0JoKK9Ch0KLQldCJ0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQodCi0JXQidCY0Isg0JzQmNCb0KPQnQor0KHQotCV0JvQmtCY0Isg0ILQo9Cg0JjQptCQCivQodCi0JXQm9Ca0JjQiyDQlNCg0JDQk9CY0KbQkAor0KHQotCV0JvQmtCY0Isg0JzQmNCb0JjQktCe0IgKK9Ch0KLQldCb0JrQmNCLINCg0JDQlNCY0KbQkAor0KHQotCV0JvQmtCY0Isg0KDQldCJ0JAg0JTQmNCf0Jsg0JjQndCTCivQodCi0JXQm9Ca0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCi0JXQm9Ca0JjQiyDQl9Cb0JDQotCe0JzQmNCgCivQodCi0JXQn9CQ0J3Qp9CV0JIg0JDQndCY0KbQkAor0KHQotCV0J/QkNCd0KfQldCSINCh0KLQldCS0JDQnQor0KHQotCV0J/QkNCd0KfQldCSINCS0JvQkNCU0JjQodCb0JDQkgor0KHQotCV0J/QkNCd0KfQldCSINCX0J7QoNCQ0J0KK9Ch0KLQldCf0JDQndCn0JXQkiDQl9Ce0KDQkAor0KHQotCV0J/QkNCd0KfQldCSINCX0J7QoNCY0KbQkAor0KHQotCV0J/QkNCd0KfQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQldCf0JDQndCn0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQldCf0JDQndCn0JXQktCY0Isg0KHQntCk0JjQiNCQCivQodCi0JXQn9CQ0J3Qp9CV0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQodCi0JXQn9CQ0J3QmNCLINCc0JjQm9CY0KHQkNCSCivQodCi0JXQn9CQ0J3QmNCLINCf0KDQldCU0KDQkNCTCivQodCi0JXQn9CQ0J3QntCSINCC0J7QoNCC0JUKK9Ch0KLQldCf0JDQndCe0JIg0ILQntCg0ILQlQor0KHQotCV0J/QkNCd0J7QkiDQgtCe0KDQgtCVCivQodCi0JXQn9CQ0J3QntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0JXQn9CQ0J3QntCSINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQodCi0JXQn9CQ0J3QntCSINCQ0J3QgtCV0JvQmtCQCivQodCi0JXQn9CQ0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0KHQotCV0J/QkNCd0J7QkiDQkdCg0JDQndCa0J4KK9Ch0KLQldCf0JDQndCe0JIg0JHQoNCQ0J3QmtCeCivQodCi0JXQn9CQ0J3QntCSINCU0KDQkNCT0JjQqNCQCivQodCi0JXQn9CQ0J3QntCSINCU0KDQkNCT0JjQptCQCivQodCi0JXQn9CQ0J3QntCSINCU0KPQqNCQ0J0KK9Ch0KLQldCf0JDQndCe0JIg0JTQo9Co0JDQnQor0KHQotCV0J/QkNCd0J7QkiDQldCc0JjQmwor0KHQotCV0J/QkNCd0J7QkiDQiNCe0JvQlQor0KHQotCV0J/QkNCd0J7QkiDQmtCQ0KLQmNCm0JAKK9Ch0KLQldCf0JDQndCe0JIg0InQmNCJ0JDQndCQCivQodCi0JXQn9CQ0J3QntCSINCJ0KPQkdCe0JzQmNCgINCU0KAKK9Ch0KLQldCf0JDQndCe0JIg0InQo9CR0J7QnNCY0KAKK9Ch0KLQldCf0JDQndCe0JIg0JzQkNCa0KHQkAor0KHQotCV0J/QkNCd0J7QkiDQnNCQ0KDQkAor0KHQotCV0J/QkNCd0J7QkiDQnNCY0JvQkNCd0JrQkAor0KHQotCV0J/QkNCd0J7QkiDQnNCY0JvQkNCd0JrQkAor0KHQotCV0J/QkNCd0J7QkiDQnNCY0JvQkNCdCivQodCi0JXQn9CQ0J3QntCSINCc0JjQm9CQ0J0KK9Ch0KLQldCf0JDQndCe0JIg0JzQmNCb0JXQktCQCivQodCi0JXQn9CQ0J3QntCSINCc0JjQm9CY0JLQntCICivQodCi0JXQn9CQ0J3QntCSINCc0JjQm9CY0JLQntCICivQodCi0JXQn9CQ0J3QntCSINCc0JjQm9CY0JLQntCICivQodCi0JXQn9CQ0J3QntCSINCc0JjQm9Ce0JLQkNCdCivQodCi0JXQn9CQ0J3QntCSINCd0JjQmtCe0JvQkAor0KHQotCV0J/QkNCd0J7QkiDQn9CQ0IjQkAor0KHQotCV0J/QkNCd0J7QkiDQn9CQ0IjQkAor0KHQotCV0J/QkNCd0J7QkiDQn9CV0KLQkNCgINCU0KAKK9Ch0KLQldCf0JDQndCe0JIg0J/QldCi0JDQoAor0KHQotCV0J/QkNCd0J7QkiDQn9CY0KDQntCo0JrQkAor0KHQotCV0J/QkNCd0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KHQotCV0J/QkNCd0J7QkiDQoNCQ0JTQntCS0JDQnQor0KHQotCV0J/QkNCd0J7QkiDQodCQ0JLQkAor0KHQotCV0J/QkNCd0J7QkiDQodCQ0JLQkAor0KHQotCV0J/QkNCd0J7QkiDQodCV0KDQk9CY0IjQlQor0KHQotCV0J/QkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQodCi0JXQn9CQ0J3QntCSINCh0JLQldCi0JjQodCb0JDQkgor0KHQotCV0J/QkNCd0J7QkiDQktCQ0KHQmNCb0JjQiNCVCivQodCi0JXQn9CQ0J3QntCSINCS0JXQm9CY0JzQmNCgCivQodCi0JXQn9CQ0J3QntCSINCS0JXQodCd0JAKK9Ch0KLQldCf0JDQndCe0JIg0JLQmNCU0JAKK9Ch0KLQldCf0JDQndCe0JIg0JLQmNCU0J7QodCQ0JLQkAor0KHQotCV0J/QkNCd0J7QkiDQktCe0IjQndCQCivQodCi0JXQn9CQ0J3QntCSINCX0JTQoNCQ0JLQmtCeCivQodCi0JXQn9CQ0J3QntCS0JjQiyDQgtCj0KDQgtCY0KbQkAor0KHQotCV0J/QkNCd0J7QktCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQodCi0JXQn9CQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KHQotCV0J/QkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ch0KLQldCf0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQodCi0JXQn9CQ0J3QntCS0JjQiyDQndCV0JHQntCI0KjQkAor0KHQotCV0J/QkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCV0J/QkNCd0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Ch0KLQldCf0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCV0J/QkNCd0J7QktCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KHQotCV0J/QmNCLINCI0J7QodCY0J8KK9Ch0KLQldCf0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQldCg0JjQniDQgtCe0KDQgtCVCivQodCi0JXQoNCY0J4g0JHQoNCQ0J3QmtCeINCU0KAKK9Ch0KLQldCg0J/QmNCdINCX0JLQntCd0JjQnNCY0KAKK9Ch0KLQldCS0KfQmNCLINCh0JDQktCQ0KLQmNCI0JUKK9Ch0KLQldCS0JDQndCn0JXQkiDQkNCd0JrQmNCm0JAKK9Ch0KLQldCS0JDQndCn0JXQkiDQnNCY0JvQmNCm0JAKK9Ch0KLQldCS0JDQndCn0JXQkiDQnNCY0JvQntCg0JDQlAor0KHQotCV0JLQkNCd0KfQldCSINCe0JvQk9CQCivQodCi0JXQktCQ0J3Qp9CV0JLQmNCLINCJ0JjQidCQ0J3QkAor0KHQotCV0JLQkNCd0JTQmNCLINCC0KPQoNCeCivQodCi0JXQktCQ0J3QlNCY0Isg0JzQmNCb0JjQptCQCivQodCi0JXQktCQ0J3QlNCY0Isg0KDQkNCU0JUKK9Ch0KLQldCS0JDQndCY0Isg0JHQntCg0JjQktCe0IjQlQor0KHQotCV0JLQkNCd0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ch0KLQldCS0JDQndCY0Isg0JjQktCQ0J0KK9Ch0KLQldCS0JDQndCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQldCS0JDQndCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCV0JLQkNCd0JjQiyDQktCj0JrQntCc0JDQnQor0KHQotCV0JLQkNCd0J7QkiDQltCY0JLQkNCdCivQodCi0JXQktCQ0J3QntCSINCU0KDQkNCT0JDQndCQCivQodCi0JXQktCQ0J3QntCSINCV0JzQmNCb0JrQkAor0KHQotCV0JLQkNCd0J7QkiDQk9CQ0JLQoNCQCivQodCi0JXQktCQ0J3QntCSINCI0JXQm9CV0J3QkAor0KHQotCV0JLQkNCd0J7QkiDQidCY0InQkNCd0JAKK9Ch0KLQldCS0JDQndCe0JIg0JzQkNCU0JvQldCdCivQodCi0JXQktCQ0J3QntCSINCc0JjQm9Ce0KDQkNCUCivQodCi0JXQktCQ0J3QntCSINCc0JjQm9Ce0JLQkNCdCivQodCi0JXQktCQ0J3QntCSINCc0JjQm9Cj0KLQmNCdCivQodCi0JXQktCQ0J3QntCSINCc0JvQkNCU0JXQnQor0KHQotCV0JLQkNCd0J7QkiDQnNCb0JDQlNCV0J0KK9Ch0KLQldCS0JDQndCe0JIg0J3QkNCi0JDQm9CY0IjQkAor0KHQotCV0JLQkNCd0J7QkiDQodCi0JDQndCQCivQodCi0JXQktCQ0J3QntCSINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQldCS0JDQndCe0JIg0JLQldCh0JXQm9CY0J0KK9Ch0KLQldCS0JDQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCV0JLQkNCd0J7QkiDQl9Cb0JDQotCe0IjQlQor0KHQotCV0JLQkNCd0J7QktCY0Isg0JbQmNCS0JDQlNCY0J0KK9Ch0KLQldCS0JDQndCe0JLQmNCLINCW0JjQktCa0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCW0JjQktCe0KDQkNCUCivQodCi0JXQktCQ0J3QntCS0JjQiyDQkNCU0JDQnAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCR0J7QqNCa0J4KK9Ch0KLQldCS0JDQndCe0JLQmNCLINCR0J7QoNCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0g0JTQoAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JPQntCg0JDQnQor0KHQotCV0JLQkNCd0J7QktCY0Isg0JPQntCg0JDQnQor0KHQotCV0JLQkNCd0J7QktCY0Isg0IjQkNCg0J7QodCb0JDQkgor0KHQotCV0JLQkNCd0J7QktCY0Isg0IjQntCS0JDQnQor0KHQotCV0JLQkNCd0J7QktCY0Isg0InQo9CR0JjQqNCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQnNCY0JvQkNCU0JjQndCa0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQodCi0JXQktCQ0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0KHQotCV0JLQkNCd0J7QktCY0Isg0JzQmNCb0JUKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQodCi0JXQktCQ0J3QntCS0JjQiyDQnNCY0JvQmtCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQnNCY0JvQntCJ0KPQkQor0KHQotCV0JLQkNCd0J7QktCY0Isg0JzQmNCe0JzQmNCgCivQodCi0JXQktCQ0J3QntCS0JjQiyDQnNCY0KDQkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JzQm9CQ0JTQldCd0JrQkAor0KHQotCV0JLQkNCd0J7QktCY0Ist0J3QldCL0JDQmiDQodCb0J7QkdCe0JTQkNCd0JrQkCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCd0JjQmtCe0KHQkNCS0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCg0JDQiNCa0J4KK9Ch0KLQldCS0JDQndCe0JLQmNCLINCg0JDQndCa0J4g0JTQoCDQm9CV0JrQkNCgCivQodCi0JXQktCQ0J3QntCS0JjQiyDQoNCQ0KLQmtCeCivQodCi0JXQktCQ0J3QntCS0JjQiyDQoNCj0JbQkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0KHQkNCS0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQldCS0JDQndCe0JLQmNCLINCh0J3QldCW0JDQndCQCivQodCi0JXQktCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQodCi0JXQktCQ0J3QntCS0JjQiyDQodCS0JjQiNCV0KLQm9CQ0J3QkAor0KHQotCV0JLQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCV0JLQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCV0JLQkNCd0J7QktCY0Isg0JLQldCg0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCS0JvQkNCU0JAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0KHQotCV0JLQkNCd0J7QktCY0Isg0JfQm9CQ0KLQmtCeINCU0KAKK9Ch0KLQldCS0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQldCS0JDQndCe0JLQmNCLINCX0J7QoNCY0KbQkAor0KHQotCV0JLQkNCd0J7QktCh0JrQmCDQk9Ce0KjQlQor0KHQotCV0JLQkNCd0J7QktCh0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQodCi0JXQktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQodCi0JXQktCY0Isg0JTQo9Co0JDQnQor0KHQotCV0JLQmNCLINCT0J7QoNCU0JDQndCQCivQodCi0JXQktCY0Isg0InQo9CR0JjQqNCQCivQodCi0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0JXQktCY0Isg0J/QldCi0JDQoAor0KHQotCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQldCS0JjQiyDQodCd0JXQltCQ0J3QkAor0KHQotCV0JLQmNCLINCh0KDQkdCQCivQodCi0JXQktCY0Isg0JLQldCb0JjQnNCY0KAKK9Ch0KLQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCi0JXQktCY0J0g0JHQntCT0JTQkNCdCivQodCi0JXQktCY0J0g0JHQntCg0JjQodCb0JDQkgor0KHQotCV0JLQmNCdINCd0JDQlNCQINCU0JjQn9CbINCY0J3Qkwor0KHQotCV0JLQmNCdINCg0JDQlNCe0IjQm9CQCivQodCi0JXQktCe0JLQmNCLINCQ0J3QmtCQCivQodCi0JXQktCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQodCi0JXQktCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQotCV0JLQntCS0JjQiyDQmNCS0JDQnSDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0KHQotCV0JLQntCS0JjQiy3Qm9Cj0JrQmNCLINCg0JDQlNCc0JjQm9CQCivQodCi0JXQktCe0JLQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9Ch0KLQldCS0J7QktCY0Isg0JLQntCI0JjQnQor0KHQotCY0IjQkNCn0JjQiyDQkdCg0JDQndCa0J4KK9Ch0KLQmNCI0JDQp9CY0Isg0J/QkNCS0JvQlQor0KHQotCY0IjQkNCn0JjQiyDQodCS0JXQotCe0JfQkNCgCivQodCi0JjQiNCQ0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQmNCI0JXQn9Ce0JLQmNCLINCQ0JvQldCa0KHQkAor0KHQotCY0IjQldCf0J7QktCY0Isg0JzQmNCb0JjQiNCQ0J3QkAor0KHQotCY0IjQntCS0JjQiyDQmNCb0JjQiNCQCivQodCi0JjQiNCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQodCi0JjQiNCe0JLQmNCLINCc0JDQoNCQCivQodCi0JjQiNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQmNCa0JjQiyDQkdCY0InQkNCd0JAKK9Ch0KLQmNCa0JjQiyDQiNCe0JLQkNCdCivQodCi0JjQmtCY0Isg0JzQntCc0JjQoNCa0JAKK9Ch0KLQmNCa0J7QktCY0Isg0KDQntCh0JAKK9Ch0KLQmNCb0JjQndCe0JLQmNCLINCa0J7QktCY0J3QmtCQCivQodCi0JjQm9CY0J3QntCS0JjQiyDQl9CS0J7QndCY0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0KHQotCY0J/QkNCd0KfQmNCLINCh0KLQmNCf0JDQnQor0KHQotCY0J/QkNCd0J7QktCY0Isg0JHQiNCV0JvQmNCm0JAKK9Ch0KLQmNCf0JDQndCe0JLQmNCLINCT0J7QiNCa0J4KK9Ch0KLQmNCf0JXQotCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0JjQn9CY0Isg0JDQndCU0KDQmNCI0JAKK9Ch0KLQmNCf0JjQiyDQkNCd0KLQlQor0KHQotCY0J/QmNCLINCR0KPQlNCVCivQodCi0JjQn9CY0Isg0JPQmNCX0JXQm9CQCivQodCi0JjQn9CY0Isg0IjQkNCo0JAKK9Ch0KLQmNCf0JjQiyDQndCQ0JTQkAor0KHQotCY0J/QmNCLINCe0JvQmNCS0JXQoNCQCivQodCi0JjQn9CY0Isg0KHQntCK0JAKK9Ch0KLQmNCf0JjQiyDQktCV0InQmtCeCivQodCi0JjQodCa0JDQm9CeINCi0JjQpdCe0JzQmNCgCivQodCi0IjQldCJ0JAg0JTQkNCd0JjQptCQCivQodCi0IjQldCf0KfQldCS0JjQiyDQkNCd0JjQptCQCivQodCi0IjQldCf0JDQndCe0JLQmNCLINCR0J7QltCeCivQodCi0IjQldCf0JDQndCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Ch0KLQiNCV0J/QkNCd0J7QktCY0Isg0KbQktCV0IjQkAor0KHQotCI0JXQn9CQ0J3QntCS0JjQiyDQiNCQ0KHQndCQCivQodCi0IjQldCf0JDQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KHQotCI0JXQn9CQ0J3QntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KHQotCI0JXQn9CQ0J3QntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Ch0KLQiNCV0J/QkNCd0J7QktCY0Isg0KHQotCQ0J3QmtCQCivQodCi0IjQldCf0JDQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0KLQiNCV0J/QmNCLINCI0J7QodCY0J8KK9Ch0KLQiNCV0J/QmNCLINCc0JjQiNCeCivQodCi0J7QqNCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QqNCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QqNCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QqNCY0Isg0JTQo9Co0JDQnQor0KHQotCe0KjQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCo0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QqNCY0Isg0IjQldCb0JXQndCQCivQodCi0J7QqNCY0Isg0JzQmNCb0JjQptCQCivQodCi0J7QqNCY0Isg0J3QldCU0JXQidCa0J4KK9Ch0KLQntCo0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KHQotCe0KjQmNCLINCh0JvQkNCS0JjQqNCQCivQodCi0J7QqNCY0Isg0KHQotCe0IjQkNCU0JjQnQor0KHQotCe0KjQmNCLINCh0KLQntCI0JDQnQor0KHQotCe0KjQmNCLINCi0JDQitCQCivQodCi0J7QqNCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCe0KjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCo0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCi0J7QqNCY0Isg0JfQntCg0JDQnQor0KHQotCe0JbQmNCd0JjQiyDQlNCg0JDQk9CY0IrQkAor0KHQotCe0JXQodCa0Jgg0IjQldCS0KLQmNCcCivQodCi0J7Qk9Ce0JIg0JDQndCQ0KLQntCb0JjQiCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQntCY0InQmtCe0JLQmNCLINCW0JjQmtCQCivQodCi0J7QmNCJ0JrQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ch0KLQntCY0InQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KHQotCe0JjQidCa0J7QktCY0Isg0IjQntCS0JDQnQor0KHQotCe0JjQidCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0KLQntCY0InQmtCe0JLQmNCLINCd0JXQndCQ0JQKK9Ch0KLQntCY0InQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0KHQotCe0JjQm9Ca0J7QktCh0JrQmCDQkdCe0KDQmNChCivQodCi0J7QmNCh0JDQktCJ0JXQktCY0Isg0ILQo9CI0JAKK9Ch0KLQntCY0KHQkNCS0InQldCS0JjQiyDQnNCY0IvQngor0KHQotCe0IjQp9CV0JIg0JzQkNCg0JjQiNCQCivQodCi0J7QiNCn0JXQktCY0Isg0JjQm9CY0IjQkAor0KHQotCe0IjQp9CV0JLQmNCLINCh0KLQkNCd0J7QiNCa0J4KK9Ch0KLQntCI0KfQldCS0KHQmtCYINCR0JvQkNCT0J7QiNCQCivQodCi0J7QiNCn0JXQktCh0JrQmCDQotCe0JzQmNCh0JvQkNCSCivQodCi0J7QiNCn0JXQktCh0JrQmCDQotCe0J3QlQor0KHQotCe0IjQp9CY0Isg0ILQntCg0ILQlQor0KHQotCe0IjQp9CY0Isg0ILQo9Cg0J4KK9Ch0KLQntCI0KfQmNCLINCU0JXQodCY0JzQmNCgCivQodCi0J7QiNCn0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QiNCn0JjQiyDQiNCV0JvQldCd0JAKK9Ch0KLQntCI0KfQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0KfQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQodCi0J7QiNCn0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0J7QiNCn0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQntCI0KfQmNCLINCh0KDQldCL0JrQngor0KHQotCe0IjQp9CY0Isg0KHQoNCV0KLQmtCeCivQodCi0J7QiNCn0JjQndCe0JLQmNCLINCc0JDQoNCa0J4KK9Ch0KLQntCI0KfQmNCd0J7QktCY0Isg0KHQmNCc0J4KK9Ch0KLQntCI0KjQmNCLINCW0JjQktCQ0J0KK9Ch0KLQntCI0KjQmNCLINCC0J7QoNCC0JUKK9Ch0KLQntCI0KjQmNCLINCC0J7QoNCC0JUKK9Ch0KLQntCI0KjQmNCLINCR0J7QiNCa0JAKK9Ch0KLQntCI0KjQmNCLINCU0JDQndCn0JjQmtCQCivQodCi0J7QiNCo0JjQiyDQlNCg0JDQk9CYCivQodCi0J7QiNCo0JjQiyDQlNCj0KjQkNCd0JrQkAor0KHQotCe0IjQqNCY0Isg0IjQldCb0JXQndCQCivQodCi0J7QiNCo0JjQiyDQiNCe0JLQkNCdCivQodCi0J7QiNCo0JjQiyDQiNCe0JLQkNCdCivQodCi0J7QiNCo0JjQiyDQm9CQ0JfQkNCgCivQodCi0J7QiNCo0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQntCI0KjQmNCLINCc0JDQoNCY0IjQkAor0KHQotCe0IjQqNCY0Isg0JzQkNCg0JjQiNCQCivQodCi0J7QiNCo0JjQiyDQnNCY0JvQkNCdINCU0JjQn9CbINCY0J3Qkwor0KHQotCe0IjQqNCY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQqNCY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQqNCY0Isg0JzQmNCb0JjQktCe0IgKK9Ch0KLQntCI0KjQmNCLINCc0JjQm9Ca0JAKK9Ch0KLQntCI0KjQmNCLINCc0JjQm9Ce0KgKK9Ch0KLQntCI0KjQmNCLINCc0JjQoNCQCivQodCi0J7QiNCo0JjQiyDQndCQ0JTQkAor0KHQotCe0IjQqNCY0Isg0J3QkNCU0JAKK9Ch0KLQntCI0KjQmNCLINCd0JXQk9Ce0JLQkNCdCivQodCi0J7QiNCo0JjQiyDQndCV0J3QkNCUCivQodCi0J7QiNCo0JjQiyDQndCV0JLQldCd0JrQkAor0KHQotCe0IjQqNCY0Isg0J3QldCS0JXQndCa0JAKK9Ch0KLQntCI0KjQmNCLINCd0JjQmtCe0JvQkAor0KHQotCe0IjQqNCY0Isg0J7Qm9CT0JAKK9Ch0KLQntCI0KjQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0KjQmNCLINCf0KDQntCa0J7Qn9CY0IjQlQor0KHQotCe0IjQqNCY0Isg0J/QoNCS0J7QodCb0JDQkgor0KHQotCe0IjQqNCY0Isg0KHQkNCS0JAKK9Ch0KLQntCI0KjQmNCLINCh0JDQktCQCivQodCi0J7QiNCo0JjQiyDQodCQ0JLQkAor0KHQotCe0IjQqNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ch0KLQntCI0KjQmNCLINCh0JzQmNCJ0JAKK9Ch0KLQntCI0KjQmNCLINCh0J7QpNCY0IjQkAor0KHQotCe0IjQqNCY0Isg0KHQoNCR0JjQodCb0JDQkgor0KHQotCe0IjQqNCY0Isg0KHQotCQ0J3QntCI0JUKK9Ch0KLQntCI0KjQmNCLINCh0KLQldCS0JDQnQor0KHQotCe0IjQqNCY0Isg0KLQkNCi0IjQkNCd0JAKK9Ch0KLQntCI0KjQmNCLINCS0JXQoNCQCivQodCi0J7QiNCo0JjQiyDQktCY0JTQntCh0JDQktCQCivQodCi0J7QiNCo0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0J7QiNCo0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0J7QiNCo0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQodCi0J7QiNCo0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCi0J7QiNCo0JjQiyDQktCj0IjQkNCU0JjQnSDQlNCY0J/QmyDQmNCd0JMKK9Ch0KLQntCI0KjQmNCLINCX0JTQoNCQ0JLQmtCeCivQodCi0J7QiNCo0JjQnSDQltCQ0KDQmtCeCivQodCi0J7QiNCo0JjQnSDQgtCe0KDQgtCVCivQodCi0J7QiNCo0JjQnSDQgtCj0KDQgtCQCivQodCi0J7QiNCo0JjQnSDQgtCj0KDQgtCY0J3QmtCQCivQodCi0J7QiNCo0JjQnSDQkdCe0JPQntCh0JvQntCSCivQodCi0J7QiNCo0JjQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0KLQntCI0KjQmNCdINCU0J7QkdCg0JjQktCe0IgKK9Ch0KLQntCI0KjQmNCdINCU0KDQkNCT0JDQnQor0KHQotCe0IjQqNCY0J0g0JTQo9Co0JDQnQor0KHQotCe0IjQqNCY0J0g0JXQnNCY0JsKK9Ch0KLQntCI0KjQmNCdINCV0KHQotCV0KAKK9Ch0KLQntCI0KjQmNCdINCT0JDQktCg0JAKK9Ch0KLQntCI0KjQmNCdINCT0KDQntCX0JTQkNCd0JAKK9Ch0KLQntCI0KjQmNCdINCI0J7QktCQ0J0KK9Ch0KLQntCI0KjQmNCdINCI0J7QktCQ0J0KK9Ch0KLQntCI0KjQmNCdINCb0JDQl9CQ0KAKK9Ch0KLQntCI0KjQmNCdINCc0JjQm9CQ0J3QmtCQCivQodCi0J7QiNCo0JjQnSDQnNCY0JvQkNCdCivQodCi0J7QiNCo0JjQnSDQnNCY0JvQkNCdCivQodCi0J7QiNCo0JjQnSDQnNCY0JvQmNCm0JAKK9Ch0KLQntCI0KjQmNCdINCc0JjQm9Ce0KDQkNCUCivQodCi0J7QiNCo0JjQnSDQnNCY0JvQntCS0JDQnQor0KHQotCe0IjQqNCY0J0g0J3QmNCa0J7Qm9CQCivQodCi0J7QiNCo0JjQnSDQntCb0JPQkAor0KHQotCe0IjQqNCY0J0g0KDQkNCU0JAKK9Ch0KLQntCI0KjQmNCdINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0KLQntCI0KjQmNCdINCh0JDQktCQCivQodCi0J7QiNCo0JjQnSDQodCQ0JLQkAor0KHQotCe0IjQqNCY0J0g0KHQmNCd0JjQqNCQCivQodCi0J7QiNCo0JjQnSDQodCS0JXQotCe0JfQkNCgCivQodCi0J7QiNCo0JjQnSDQotCe0JTQntCgCivQodCi0J7QiNCo0JjQnSDQktCQ0KHQkAor0KHQotCe0IjQqNCY0J0g0JLQldCg0JAKK9Ch0KLQntCI0KjQmNCdINCX0JvQkNCi0JAKK9Ch0KLQntCI0JAg0InQmNCJ0JDQndCQCivQodCi0J7QiNCQINCc0JDQoNCY0IjQkAor0KHQotCe0IjQkCDQnNCY0JvQkNCd0JAKK9Ch0KLQntCI0JAg0KHQm9CQ0ILQkNCd0JAKK9Ch0KLQntCI0JAg0KHQm9Ce0JHQntCU0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9Ch0KLQntCI0JAg0JLQntCI0JjQodCb0JDQkgor0KHQotCe0IjQkNCn0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0KLQntCI0JDQp9CY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQkNCn0JjQiyDQndCV0J3QkNCUCivQodCi0J7QiNCQ0KfQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0KHQotCe0IjQkNCU0JjQndCe0JIg0KDQkNCU0JjQktCe0IgKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQkNCd0JjQptCQCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JHQntCg0JjQodCb0JDQktCQCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JHQntCg0JjQktCe0IgKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQndCQINCb0JXQmtCQ0KAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQlNCg0JDQk9CY0IrQkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQidCj0JHQmNCo0JAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CV0JLQkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CY0J3QmtCeCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JrQkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCc0JjQm9Ce0IjQlQor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0J/Qo9Cd0JjQqNCQCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQodCi0J7QiNCQ0JTQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQodCe0KTQmNCI0JAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQodCe0KTQmNCI0JAKK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQntCI0JDQlNCY0J3QntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KHQotCe0IjQkNCU0JjQndCe0JLQmNCLINCS0JvQkNCU0JXQotCQCivQodCi0J7QiNCQ0Jog0JfQntCg0JjQptCQCivQodCi0J7QiNCQ0JrQntCSINCR0J7QltCY0JTQkNCgCivQodCi0J7QiNCQ0JrQntCSINCc0JjQm9Ce0KDQkNCUCivQodCi0J7QiNCQ0JrQntCSINCh0KDQkdCe0KHQm9CQ0JIKK9Ch0KLQntCI0JDQmtCe0JIg0KHQoNCR0J7QodCb0JDQkgor0KHQotCe0IjQkNCa0J7QktCY0Isg0ILQo9Ca0JDQnQor0KHQotCe0IjQkNCa0J7QktCY0Isg0ILQo9Cg0J4KK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQktCQCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQlNCY0JLQndCQCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCI0JXQm9Ca0JAKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCa0J7QodCi0JAKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCc0JDQoNCT0JjQotCQCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQnNCY0KXQkNCI0JvQngor0KHQotCe0IjQkNCa0J7QktCY0Isg0JzQmNCb0JDQlNCY0J3QmtCQCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQnNCY0JvQkAor0KHQotCe0IjQkNCa0J7QktCY0Isg0JzQmNCb0JUKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQotCe0IjQkNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQotCe0IjQkNCa0J7QktCY0Isg0KHQkNCS0JDQnQor0KHQotCe0IjQkNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQodCc0JjQidCQCivQodCi0J7QiNCQ0JrQntCS0JjQiyDQodCi0JDQndCa0J4KK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCh0KLQldCS0J4KK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQntCI0JDQmtCe0JLQmNCLINCX0J7QoNCQCivQodCi0J7QiNCQ0J3Qp9CV0JIg0JPQntCg0JTQkNCd0JAKK9Ch0KLQntCI0JDQndCn0JXQkiDQmNCS0JDQnQor0KHQotCe0IjQkNCd0KfQldCSINCg0JDQlNCe0JzQmNCgCivQodCi0J7QiNCQ0J3Qp9CV0JIg0KHQm9CQ0JLQmNCm0JAKK9Ch0KLQntCI0JDQndCn0JXQkiDQktCQ0KHQkAor0KHQotCe0IjQkNCd0KfQmNCLINCS0JvQkNCU0JAKK9Ch0KLQntCI0JDQndCQ0KYg0JHQoNCQ0J3QmtCeCivQodCi0J7QiNCQ0J3QkNCmINCc0JjQm9CVCivQodCi0J7QiNCQ0J3QkNCmINCd0JjQmtCe0JvQkAor0KHQotCe0IjQkNCd0JjQiyDQkNCd0JPQldCb0JjQndCQCivQodCi0J7QiNCQ0J3QntCh0JrQmCDQlNCj0KjQkNCdCivQodCi0J7QiNCQ0J3QntCh0JrQmCDQk9CQ0JLQoNCY0JsKK9Ch0KLQntCI0JDQndCe0JIg0JHQoNCQ0J3QmtCeCivQodCi0J7QiNCQ0J3QntCSINCR0KDQkNCd0JrQngor0KHQotCe0IjQkNCd0J7QkiDQmNCS0JDQnQor0KHQotCe0IjQkNCd0J7QkiDQnNCY0JvQntCS0JDQnQor0KHQotCe0IjQkNCd0J7QkiDQnNCY0KDQiNCQ0J3QkAor0KHQotCe0IjQkNCd0J7QkiDQnNCb0JDQlNCV0J0g0JTQoAor0KHQotCe0IjQkNCd0J7QkiDQndCQ0JTQkAor0KHQotCe0IjQkNCd0J7QkiDQndCQ0JTQkAor0KHQotCe0IjQkNCd0J7QkiDQntCb0JPQkAor0KHQotCe0IjQkNCd0J7QkiDQoNCQ0JTQmNCS0J7QiNCVCivQodCi0J7QiNCQ0J3QntCSINCg0JDQlNCe0JLQkNCdCivQodCi0J7QiNCQ0J3QntCSINCh0JDQktCQCivQodCi0J7QiNCQ0J3QntCSINCh0JDQktCQCivQodCi0J7QiNCQ0J3QntCSINCh0JXQndCa0JAKK9Ch0KLQntCI0JDQndCe0JIg0KHQotCQ0J3QmtCeCivQodCi0J7QiNCQ0J3QntCSINCh0KLQldCS0JDQnQor0KHQotCe0IjQkNCd0J7QkiDQktCV0KDQkAor0KHQotCe0IjQkNCd0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQodCi0J7QiNCQ0J3QntCSINCS0KPQmtCY0KbQkAor0KHQotCe0IjQkNCd0J7QkiDQl9Ce0KDQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQltCY0JLQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQltCY0JLQntCI0JjQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCC0J7QoNCC0JUKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCC0KPQoNCC0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQgtCj0KDQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JDQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkNCJ0J7QqNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkNCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLLdCR0JDQm9CY0J3QoiDQkdCe0JbQkNCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7QkdCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7Qk9Ce0InQo9CRCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCS0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7QoNCY0JLQntCI0JUKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQptCS0JjQiNCV0KLQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQkNCd0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0JDQndCY0JvQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQkNCd0JrQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQkNCg0JjQndCa0JAg0JTQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQldCh0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0J7QkdCg0JjQndCa0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCU0KDQkNCT0JjQqNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQlNCj0KjQmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCT0JDQktCg0JjQm9CeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQk9CQ0JLQoNCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQk9Ce0KDQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQk9Cg0JDQlNCY0JzQmNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQmNCS0JrQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0IjQkNCa0J7Qkgor0KHQotCe0IjQkNCd0J7QktCY0Isg0IjQkNCh0JzQmNCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLLdCI0JXQpNCi0J7QktCY0Isg0JHQntCh0JjQidCa0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0IjQldCb0JXQndCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCI0KPQm9Ca0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCa0JDQotCY0KbQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCa0J7QodCi0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCa0KDQodCi0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCb0JXQntCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0InQo9CR0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQidCj0JHQmNCd0JrQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JDQoNCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQqNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCaCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQldCi0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQm9CVCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0JrQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QqAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0J7QnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQoNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0JjQoNCe0InQo9CRCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQnNCY0KDQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCc0J7QnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCd0JDQlNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQndCQ0JTQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J3QkNCh0KLQkNChCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQndCV0JTQldCJ0JrQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0J3QldCd0JDQlAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J3QldCd0JDQlAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J3QmNCa0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0J3QntCS0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQndCe0JLQmNCm0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCe0JHQoNCQ0JQKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCe0JvQk9CQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQntCh0KLQntCI0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCf0KDQktCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCg0JDQlNCVCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQoNCQ0JTQlQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCY0KbQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQoNCQ0JTQntCS0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KDQo9CW0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCQ0KjQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQkNCS0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLLdCh0JjQnNCY0Isg0JLQldCh0J3QkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQm9CQ0JLQntCI0JrQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQoNCC0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQoNCR0J7QidCj0JEKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0KDQldCi0JXQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQoNCV0KLQldCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIg0JTQoCDQm9CV0JrQkNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCi0JDQndCe0IjQlQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnSDQlNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0KHQotCe0IjQkNCd0J7QktCY0Isg0KHQotCe0IjQkNCdCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCi0J7Qm9CVCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCi0JjQpdCe0JzQmNCgINCU0KAg0JjQndCTCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQotCY0KXQntCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkiDQnNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQktCQ0KHQmNCb0JjQiNCVCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQktCQ0KHQngor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JXQm9CY0JzQmNCgCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQktCV0InQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQktCV0KDQkAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQldCg0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JXQodCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JXQodCd0JAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0KHQotCe0IjQkNCd0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQodCi0J7QiNCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdINCU0KAKK9Ch0KLQntCI0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ch0KLQntCI0JDQndCe0JLQmNCLINCX0J7QoNCa0JAKK9Ch0KLQntCI0JDQndCe0JLQodCa0Jgg0JbQmNCS0JrQngor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQkNCd0JTQoNCY0IjQkAor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQkdCY0InQkNCd0JAKK9Ch0KLQntCI0JDQndCe0JLQodCa0Jgg0JHQoNCQ0J3QmNCc0JjQoAor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQlNCg0JDQk9CQ0J0g0JTQmNCf0Jsg0J7QldCmCivQodCi0J7QiNCQ0J3QntCS0KHQmtCYINCI0J7QoNCU0JDQnQor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQidCj0JHQmNCo0JAKK9Ch0KLQntCI0JDQndCe0JLQodCa0Jgg0InQo9CR0JjQptCQCivQodCi0J7QiNCQ0J3QntCS0KHQmtCYINCf0JDQktCb0JUKK9Ch0KLQntCI0JDQndCe0JLQodCa0Jgg0J/QkNCS0JvQlQor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQodCQ0J3QlQor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQodCb0JDQktCY0KbQkAor0KHQotCe0IjQkNCd0J7QktCh0JrQmCDQotCe0JzQngor0KHQotCe0IjQldCSINCh0KLQntCY0KfQmtCeCivQodCi0J7QiNCY0KfQmNCLINCU0JXQodCQ0J3QmtCQCivQodCi0J7QiNCY0KfQmNCLINCT0JvQmNCT0J7QoNCY0IjQlQor0KHQotCe0IjQmNCn0JjQiyDQiNCQ0KHQnNCY0J3QkAor0KHQotCe0IjQmNCn0JjQiyDQiNCQ0KHQnNCY0J3QkAor0KHQotCe0IjQmNCn0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQntCI0JjQp9CY0Isg0KDQntCh0JAKK9Ch0KLQntCI0JjQp9CY0Isg0KHQm9CQ0JLQmtCeCivQodCi0J7QiNCY0KfQmNCLINCi0J7QlNCe0KDQkAor0KHQotCe0IjQmNCo0JjQiyDQgtCj0KDQmNCm0JAg0JTQoAor0KHQotCe0IjQmNCLINCC0KPQoNCC0JjQndCa0JAKK9Ch0KLQntCI0JjQiy3QkNCf0JjQiyDQodCb0JDQktCa0JAKK9Ch0KLQntCI0JjQiyDQkdCe0JPQntCJ0KPQkQor0KHQotCe0IjQmNCLINCR0J7Qk9Ce0InQo9CRCivQodCi0J7QiNCY0Isg0JHQntCT0J7QidCj0JEKK9Ch0KLQntCI0JjQiyDQkdCg0JDQndCa0JAKK9Ch0KLQntCI0JjQiyDQlNCe0JHQoNCY0JLQntCICivQodCi0J7QiNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Ch0KLQntCI0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0J7QiNCY0Isg0JTQo9Co0JDQnQor0KHQotCe0IjQmNCLINCT0JDQktCg0JAKK9Ch0KLQntCI0JjQiyDQk9Ce0IjQmtCeCivQodCi0J7QiNCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0KHQotCe0IjQmNCLINCY0KjQotCS0JDQnQor0KHQotCe0IjQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Ch0KLQntCI0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0KLQntCI0JjQiyDQidCj0JHQmNCd0JrQkAor0KHQotCe0IjQmNCLINCc0JDQoNCQCivQodCi0J7QiNCY0Isg0JzQkNCg0JjQndCa0J4KK9Ch0KLQntCI0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCY0Isg0JzQmNCb0JXQndCQCivQodCi0J7QiNCY0Isg0JzQmNCb0JUKK9Ch0KLQntCI0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQntCI0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCgCivQodCi0J7QiNCY0Isg0JzQmNCe0JzQmNCgCivQodCi0J7QiNCY0Isg0JzQmNCg0JrQngor0KHQotCe0IjQmNCLINCc0JvQkNCU0JXQnSDQlNCgINCb0JXQmtCQ0KAKK9Ch0KLQntCI0JjQiyDQndCV0JTQldCJ0JrQngor0KHQotCe0IjQmNCLINCd0JjQmtCe0JvQkAor0KHQotCe0IjQmNCLINCh0JjQndCY0KjQkCDQlNCgCivQodCi0J7QiNCY0Isg0KHQm9CQ0JLQmtCQCivQodCi0J7QiNCY0Isg0KHQotCQ0J3QmNCh0JvQkNCSCivQodCi0J7QiNCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0KHQotCe0IjQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KLQntCI0JjQiyDQotCe0JTQntCgCivQodCi0J7QiNCY0Isg0JLQkNCh0JAKK9Ch0KLQntCI0JjQiyDQktCj0KfQmtCeCivQodCi0J7QiNCY0Isg0JLQo9Ca0JDQqNCY0J0KK9Ch0KLQntCI0JjQiyDQl9Ce0KDQkNCdCivQodCi0J7QiNCY0IvQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0J7QiNCY0KYg0IjQntCd0JXQmwor0KHQotCe0IjQmNCJ0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCe0IjQmNCJ0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCe0IjQmNCJ0JrQntCS0JjQiyDQkdCg0JDQndCY0JzQmNCgINCU0JjQn9CbINCe0JXQpgor0KHQotCe0IjQmNCJ0JrQntCS0JjQiyDQlNCQ0JzQmNCgCivQodCi0J7QiNCY0InQmtCe0JLQmNCLINCU0JDQoNCa0JAKK9Ch0KLQntCI0JjQidCa0J7QktCY0Isg0JPQntCg0JDQnSDQlNCgCivQodCi0J7QiNCY0InQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQodCi0J7QiNCY0InQmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KHQotCe0IjQmNCJ0JrQntCS0JjQiyDQidCj0JHQmNCo0JAKK9Ch0KLQntCI0JjQidCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQotCe0IjQmNCJ0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQodCi0J7QiNCY0InQmtCe0JLQmNCLINCS0JjQmtCi0J7QoAor0KHQotCe0IjQmNCb0JrQntCS0JjQiyDQnNCY0JvQldCi0JjQiNCVCivQodCi0J7QiNCY0JvQmtCe0JLQmNCLINCc0JjQm9CVCivQodCi0J7QiNCY0JvQmtCe0JLQmNCLINCh0KLQntCI0JDQnQor0KHQotCe0IjQmNCb0JrQntCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQodCi0J7QiNCY0JvQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9Ch0KLQntCI0JjQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0JjQm9Ce0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0JjQnSDQp9CV0JTQntCc0JjQoAor0KHQotCe0IjQmNCdINCc0JjQm9CY0JLQntCIINCU0KAg0J/QoNCe0KQKK9Ch0KLQntCI0JjQnSDQnNCY0JvQmNCS0J7QiAor0KHQotCe0IjQmNCd0J7QkiDQltCY0JLQmtCeCivQodCi0J7QiNCY0J3QntCSINCR0KDQkNCd0JrQngor0KHQotCe0IjQmNCd0J7QkiDQlNCj0KjQkNCdCivQodCi0J7QiNCY0J3QntCSINCI0J7QktCQ0J0KK9Ch0KLQntCI0JjQndCe0JIg0JrQkNCi0JDQoNCY0J3QkAor0KHQotCe0IjQmNCd0J7QkiDQmtCQ0KLQmNCm0JAKK9Ch0KLQntCI0JjQndCe0JIg0InQo9CR0JjQptCQCivQodCi0J7QiNCY0J3QntCSINCc0JjQm9CV0J3QmtCeCivQodCi0J7QiNCY0J3QntCSINCX0J7QoNCY0KbQkAor0KHQotCe0IjQmNCd0J7QktCY0Isg0JPQntCg0JDQnQor0KHQotCe0IjQmNCd0J7QktCY0Isg0JzQkNCg0JjQptCQCivQodCi0J7QiNCY0KHQkNCS0InQldCS0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QiNCY0KHQkNCS0InQldCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0KHQotCe0IjQmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JUKK9Ch0KLQntCI0JjQodCQ0JLQidCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQntCI0JjQodCQ0JLQidCV0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KLQntCI0JjQodCQ0JLQidCV0JLQmNCLINCS0JXQidCa0J4KK9Ch0KLQntCI0JrQntCSINCW0JDQoNCa0J4KK9Ch0KLQntCI0JrQntCSINCW0JjQktCe0KDQkNCUCivQodCi0J7QiNCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCe0IjQmtCe0JIg0JHQntCT0JTQkNCdCivQodCi0J7QiNCa0J7QkiDQkdCe0KDQmNCS0J7QiAor0KHQotCe0IjQmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCi0J7QiNCa0J7QkiDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0KLQntCI0JrQntCSINCU0KDQkNCT0JjQndCQCivQodCi0J7QiNCa0J7QkiDQmNCS0JDQnQor0KHQotCe0IjQmtCe0JIg0IjQldCb0JjQptCQCivQodCi0J7QiNCa0J7QkiDQiNCV0JvQmtCQCivQodCi0J7QiNCa0J7QkiDQiNCe0JLQkNCdCivQodCi0J7QiNCa0J7QkiDQiNCj0JvQmtCQCivQodCi0J7QiNCa0J7QkiDQmtCQ0KLQmNCm0JAKK9Ch0KLQntCI0JrQntCSINCJ0KPQkdCY0KbQkAor0KHQotCe0IjQmtCe0JIg0JzQmNCb0JDQnQor0KHQotCe0IjQmtCe0JIg0JzQmNCb0JDQnQor0KHQotCe0IjQmtCe0JIg0JzQmNCb0JDQnQor0KHQotCe0IjQmtCe0JIg0JzQmNCb0JXQndCQCivQodCi0J7QiNCa0J7QkiDQnNCY0JvQldCS0JrQkAor0KHQotCe0IjQmtCe0JIg0JzQmNCb0JUKK9Ch0KLQntCI0JrQntCSINCc0JjQntCU0KDQkNCTCivQodCi0J7QiNCa0J7QkiDQnNCY0J7QnNCY0KAKK9Ch0KLQntCI0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQntCI0JrQntCSINCc0JvQkNCU0JXQnQor0KHQotCe0IjQmtCe0JIg0J3QldCT0J7QktCQ0J0KK9Ch0KLQntCI0JrQntCSINCg0JDQlNCY0JLQntCICivQodCi0J7QiNCa0J7QkiDQoNCQ0JTQmNCS0J7QiAor0KHQotCe0IjQmtCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0IjQmtCe0JIg0KHQotCV0JLQkNCdCivQodCi0J7QiNCa0J7QkiDQodCi0J7QiNCQ0J0KK9Ch0KLQntCI0JrQntCSINCh0KLQntCI0JDQnQor0KHQotCe0IjQmtCe0JIg0KLQntCU0J7QoAor0KHQotCe0IjQmtCe0JIg0JLQldCg0JjQptCQCivQodCi0J7QiNCa0J7QkiDQktCj0JrQntCh0JDQktCQCivQodCi0J7QiNCa0J7QkiDQl9CU0KDQkNCS0JrQngor0KHQotCe0IjQmtCe0JLQmNCLLdCo0JDQm9CR0J7QoiDQkdCe0IjQkNCd0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQltCY0JLQmtCQCivQodCi0J7QiNCa0J7QktCY0Isg0JbQmNCS0J7QotCQCivQodCi0J7QiNCa0J7QktCY0Isg0ILQntCg0ILQlQor0KHQotCe0IjQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Ch0KLQntCI0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KHQotCe0IjQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCi0J7QiNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ch0KLQntCI0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0KHQotCe0IjQmtCe0JLQmNCLINCQ0J3QkNCd0JjQiNCVCivQodCi0J7QiNCa0J7QktCY0Isg0JDQndCi0J7QndCY0IjQlQor0KHQotCe0IjQmtCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQodCi0J7QiNCa0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQntCI0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQotCe0IjQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ch0KLQntCI0JrQntCS0JjQiyDQkdCe0KDQmtCeCivQodCi0J7QiNCa0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCi0J7QiNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JTQoNCQ0JPQmNCK0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQodCi0J7QiNCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCe0IjQmtCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQodCi0J7QiNCa0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JTQo9Co0JDQnQor0KHQotCe0IjQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KHQotCe0IjQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQodCi0J7QiNCa0J7QktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0KHQotCe0IjQmtCe0JLQmNCLINCY0JvQmNCI0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQmNCS0JDQnQor0KHQotCe0IjQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KHQotCe0IjQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KHQotCe0IjQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KHQotCe0IjQmtCe0JLQmNCLLdCI0J7QktCQ0J3QntCS0JjQiyDQodCb0JDQktCY0KbQkAor0KHQotCe0IjQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQodCi0J7QiNCa0J7QktCY0Isg0JrQo9CX0JzQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JvQldCd0JrQkAor0KHQotCe0IjQmtCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0JvQldCd0KLQmNCI0JUKK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0JvQntCoCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0JvQotCV0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCi0J7QiNCa0J7QktCY0Isg0JzQmNCg0JrQngor0KHQotCe0IjQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQntCI0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQndCQ0JTQkAor0KHQotCe0IjQmtCe0JLQmNCLINCf0JDQktCb0JUKK9Ch0KLQntCI0JrQntCS0JjQiyDQn9CQ0JLQm9CVCivQodCi0J7QiNCa0J7QktCY0Isg0J/QldCi0JDQoAor0KHQotCe0IjQmtCe0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQodCi0J7QiNCa0J7QktCY0Isg0J/QoNCV0JTQoNCQ0JMg0JTQoAor0KHQotCe0IjQmtCe0JLQmNCLINCg0JDQlNCV0J3QmtCeCivQodCi0J7QiNCa0J7QktCY0Isg0KDQkNCU0JjQodCQ0JIg0JTQmNCf0Jsg0JjQndCTCivQodCi0J7QiNCa0J7QktCY0Isg0KDQkNCU0JjQktCe0IjQlQor0KHQotCe0IjQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQodCi0J7QiNCa0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ch0KLQntCI0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KHQotCe0IjQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JLQmtCQCivQodCi0J7QiNCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KHQotCe0IjQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0KHQotCe0IjQmtCe0JLQmNCLINCh0JDQitCQCivQodCi0J7QiNCa0J7QktCY0Isg0KHQm9CQ0JLQmtCQCivQodCi0J7QiNCa0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KHQotCe0IjQmtCe0JLQmNCLINCh0JzQmNCJ0JrQkAor0KHQotCe0IjQmtCe0JLQmNCLINCh0KLQntCI0JDQlNCY0J0KK9Ch0KLQntCI0JrQntCS0JjQiyDQotCV0J7QlNCe0KAKK9Ch0KLQntCI0JrQntCS0JjQiyDQktCV0JvQmNCc0JjQoAor0KHQotCe0IjQmtCe0JLQmNCLINCS0JXQidCa0J4KK9Ch0KLQntCI0JrQntCS0JjQiyDQktCV0KDQntCh0JvQkNCSCivQodCi0J7QiNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCe0IjQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KLQntCI0JrQntCS0JjQiyDQl9CQ0JPQntCg0JrQkAor0KHQotCe0IjQmtCe0JLQmNCLINCX0JvQkNCi0JjQkdCe0KAKK9Ch0KLQntCI0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQodCi0J7QiNCa0J7QktCh0JrQmCDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCI0JrQntCS0KHQmtCYINCU0KDQkNCT0JDQnQor0KHQotCe0IjQm9Ce0JLQmNCLINCC0KPQm9CQCivQodCi0J7QiNCc0JXQndCe0JLQmNCLINCW0JjQktCa0J4KK9Ch0KLQntCI0JzQldCd0J7QktCY0Isg0JjQktCQ0J0KK9Ch0KLQntCI0JzQldCd0J7QktCY0Isg0IjQntCS0JDQnQor0KHQotCe0IjQnNCV0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KLQntCI0JzQldCd0J7QktCY0Isg0JLQm9CQ0JTQkAor0KHQotCe0IjQnNCV0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQodCi0J7QiNCd0JjQiyDQkdCe0KjQmtCeCivQodCi0J7QiNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KLQntCI0J3QmNCLINCU0KDQkNCT0JjQptCQCivQodCi0J7QiNCd0JjQiyDQlNCj0KjQkNCdCivQodCi0J7QiNCd0JjQiyDQnNCY0JvQmNCm0JAKK9Ch0KLQntCI0J3QmNCLINCc0JjQoNCa0J4KK9Ch0KLQntCI0J3QmNCLINCf0JDQktCb0JUKK9Ch0KLQntCI0J3QmNCLINCg0JDQlNCe0JzQmNCgCivQodCi0J7QiNCd0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQodCi0J7QiNCd0J7QkiDQlNCQ0JzQiNCQ0J0KK9Ch0KLQntCI0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9Ch0KLQntCI0J7QktCY0Isg0KLQntCc0JDQqAor0KHQotCe0IjQodCQ0JLQidCV0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQotCe0IjQodCQ0JLQidCV0JLQmNCLINCf0JXQotCQ0KAKK9Ch0KLQntCI0KHQkNCS0InQldCS0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQntCI0KHQkNCS0InQldCS0JjQiyDQotCY0KXQntCc0JjQoAor0KHQotCe0JrQkNCd0J7QktCY0Isg0ILQntCg0ILQlQor0KHQotCe0JrQkNCd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0KLQntCa0JjQiyDQgtCe0KDQgtCVCivQodCi0J7QmtCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KHQotCe0JrQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCa0JjQiyDQiNCe0JLQmNCm0JAKK9Ch0KLQntCa0JjQiyDQnNCY0JvQkNCdCivQodCi0J7QmtCY0Isg0KLQntCU0J7QoAor0KHQotCe0JrQmNCdINCQ0JvQldCh0JDQndCU0JDQoAor0KHQotCe0JrQmNCdINCR0KDQkNCd0JrQngor0KHQotCe0JrQmNCdINCc0JjQm9CY0JLQntCICivQodCi0J7QmtCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0KHQotCe0JrQmNCdINCh0KLQntCI0JDQnQor0KHQotCe0JrQo9CL0JAg0JTQkNCd0JUKK9Ch0KLQntCa0KPQi9CQINCc0JjQpdCQ0IjQm9CeCivQodCi0J7QmtCj0IvQkCDQnNCY0JvQkNCdCivQodCi0J7QmtCj0IvQkCDQnNCY0JvQkNCdCivQodCi0J7QmtCj0IvQkCDQnNCY0JvQkNCdCivQodCi0J7QmtCj0IvQkCDQnNCY0KDQiNCQ0J3QkAor0KHQotCe0JrQo9CL0JAg0J3QmNCa0J7Qm9CQCivQodCi0J7QmtCj0IvQkCDQn9CV0KLQkNCgCivQodCi0J7Qm9CV0KHQmtCYINCc0JjQotCY0IjQkAor0KHQotCe0JvQmNCLINCC0KPQoNCeCivQodCi0J7Qm9CY0Isg0JHQmNCh0JXQoNCa0JAKK9Ch0KLQntCb0JjQiyDQlNCj0KjQkNCdCivQodCi0J7Qm9CY0Isg0JTQo9Co0JDQnQor0KHQotCe0JvQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQntCb0JjQiyDQmtCQ0KLQmNCm0JAKK9Ch0KLQntCb0JjQiyDQidCj0JHQmNCm0JAKK9Ch0KLQntCb0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KHQotCe0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQntCb0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQodCi0J7Qm9CY0Isg0J3QldCd0JDQlAor0KHQotCe0JvQmNCLINCf0JXQotCQ0KAg0JTQoAor0KHQotCe0JvQmNCLINCh0KDQldCi0JAKK9Ch0KLQntCb0JjQiyDQodCi0JXQktCQ0J0KK9Ch0KLQntCf0JjQndCo0JXQmiDQodCi0JDQndCY0KHQm9CQ0JIKK9Ch0KLQoNCQ0JbQnNCV0KjQotCV0KAg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQoNCQ0JbQnNCV0KjQotCV0KAg0JTQo9Co0JDQnQor0KHQotCg0JDQltCc0JXQqNCi0JXQoNCe0JIg0JTQmNCc0JjQotCg0JjQiNCVCivQodCi0KDQkNCW0JzQldCo0KLQldCg0J7QkiDQnNCY0JvQmNCm0JAKK9Ch0KLQoNCQ0JbQnNCV0KjQotCV0KDQntCSINCc0JjQoNCe0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQodCi0KDQkNCW0JzQldCo0KLQldCg0J7QkiDQodCQ0JLQkAor0KHQotCg0JDQltCc0JXQqNCi0JXQoNCe0JIg0KHQntCk0JjQiNCQCivQodCi0KDQkNCW0JzQldCo0KLQldCg0J7QkiDQodCi0JXQktCQ0J0KK9Ch0KLQoNCQ0KbQldCd0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9Ch0KLQoNCQ0KbQldCd0KHQmtCYINCh0KLQldCS0JDQnQor0KHQotCg0JDQk9CQINCh0KLQiNCV0J/QkNCdCivQodCi0KDQkNCl0JjQndCY0Isg0JrQoNCh0KLQntCc0JjQoAor0KHQotCg0JDQiNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9Ch0KLQoNCQ0IjQmNCdINCI0JXQm9CV0J3QkAor0KHQotCg0JDQiNCY0J0g0J3QkNCU0JAKK9Ch0KLQoNCQ0IjQmNCdINCg0JDQlNCe0JLQkNCdCivQodCi0KDQkNCI0JjQnSDQodCi0J7QiNCQ0J0KK9Ch0KLQoNCQ0IjQmNCdINCS0JXQm9CY0JfQkNCgCivQodCi0KDQkNCI0JjQndCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ch0KLQoNCQ0IjQmNCd0JjQiyDQmNCg0JXQndCQCivQodCi0KDQkNCI0JjQndCY0Isg0IjQntCS0JDQnQor0KHQotCg0JDQiNCY0J3QmNCLINCb0JDQl9CQ0KAKK9Ch0KLQoNCQ0IjQmNCd0JjQiyDQnNCY0JvQo9Ci0JjQnQor0KHQotCg0JDQiNCd0JjQiyDQkdCg0JDQndCa0J4KK9Ch0KLQoNCQ0IjQndCY0Isg0JTQo9Co0JDQnQor0KHQotCg0JDQiNCd0JjQiyDQk9Cg0KPQiNCQCivQodCi0KDQkNCI0J3QmNCLINCc0JDQoNCY0IjQkAor0KHQotCg0JDQiNCd0JjQiyDQnNCY0JvQkNCd0JrQngor0KHQotCg0JDQiNCd0JjQiyDQnNCY0JvQkNCdCivQodCi0KDQkNCI0J3QmNCLINCc0JvQkNCU0JXQnQor0KHQotCg0JDQiNCd0JjQiyDQn9CQ0JsKK9Ch0KLQoNCQ0IjQndCY0Isg0KLQntCo0JAKK9Ch0KLQoNCQ0J3QmNCLINCI0J7QktCY0KbQkAor0KHQotCg0JDQitCQ0JrQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0KHQotCg0JDQitCQ0J3QkNCmINCc0JjQm9Ce0KDQkNCUCivQodCi0KDQkNCK0JDQndCQ0KYg0JzQmNCg0J7QodCb0JDQkgor0KHQotCg0JHQkNCn0JrQmCDQpNCg0JjQlNCe0JvQmNCd0JAKK9Ch0KLQoNCR0JDQp9Ca0Jgg0KHQotCV0JLQkNCdCivQodCi0KDQkdCQ0JQg0KHQotCV0JLQkNCdCivQodCi0KDQkdCQ0KIg0KLQntCc0JjQodCb0JDQkgor0KHQotCg0JXQpdCe0JLQodCa0Jgg0JfQo9CX0JDQndCQCivQodCi0KDQldCb0JUg0KDQkNCo0JAKK9Ch0KLQoNCV0JfQntCh0JrQmCDQiNCe0JLQkNCdCivQodCi0KDQldCX0J7QodCa0Jgg0JzQmNCb0JXQodCQCivQodCi0KDQldCX0J7QodCa0Jgg0J3QmNCa0J7QlNCY0J3QmtCQCivQodCi0KDQldCX0J7QodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCg0JPQkNCgINCf0JXQotCQ0KAKK9Ch0KLQoNCY0KfQldCS0JjQiyDQlNCQ0KDQkAor0KHQotCg0JjQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KLQoNCY0KfQldCS0JjQiyDQiNCe0KHQmNCfCivQodCi0KDQmNCn0JXQktCY0Isg0IjQo9Cb0JrQkAor0KHQotCg0JjQp9CV0JLQmNCLINCa0KHQldCd0JjQiNCQCivQodCi0KDQmNCn0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9Ch0KLQoNCY0KfQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ch0KLQoNCY0KfQldCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KHQotCg0JjQp9CV0JLQmNCLINCh0JDQktCa0JAKK9Ch0KLQoNCY0KfQldCS0JjQiyDQktCV0JvQmNCc0JjQoAor0KHQotCg0JjQp9CV0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQodCi0KDQmNCn0JrQniDQktCb0JDQlNCY0JzQmNCgCivQodCi0KDQmNCR0JXQoCDQldCc0JjQmwor0KHQotCg0JjQkdCV0KAg0KTQoNCQ0IrQkAor0KHQotCg0JjQkdCV0KAg0KTQoNCQ0IrQkAor0KHQotCg0JjQkdCV0KAg0JzQmNCl0JDQiNCb0J4KK9Ch0KLQoNCY0JHQldCgINCh0KLQldCS0JDQnQor0KHQotCg0JjQkdCV0KAg0KHQotCV0JLQkNCdCivQodCi0KDQmNCm0JrQmCDQmNCS0JDQnQor0KHQotCg0JjQmtCQINCC0J7QoNCC0JUKK9Ch0KLQoNCY0JrQkCDQkdCg0JDQndCa0J4KK9Ch0KLQoNCY0JrQntCS0JjQiyDQi9CQ0JzQmNCbCivQodCi0KDQmNCa0J7QktCY0Isg0JHQldCb0JgKK9Ch0KLQoNCY0JrQntCS0JjQiyDQiNCQ0J3QntCoCivQodCi0KDQmNCa0J7QktCY0Isg0JzQmNCb0J7QodCQ0JIKK9Ch0KLQoNCY0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQodCi0KDQmNCa0J7QktCY0Isg0JLQldCg0JAKK9Ch0KLQoNCY0J3QldCa0JAg0JrQkNCi0JjQptCQCivQodCi0KDQmNCX0J7QktCY0Isg0InQmNCJ0JDQndCQCivQodCi0KDQmNCX0J7QktCY0Isg0JzQkNCa0KHQmNCcCivQodCi0KDQo9CT0JDQoCDQltCQ0KDQmtCeCivQodCi0KDQo9CT0JDQoCDQltCY0JLQntCg0JDQlAor0KHQotCg0KPQk9CQ0KAg0JPQntCg0JDQnQor0KHQotCg0KPQk9CQ0KAg0IjQntCh0JjQnwor0KHQotCg0KPQk9CQ0KAg0JzQmNCb0KPQotCY0J0KK9Ch0KLQoNCj0JPQkNCgINCf0JDQktCb0JUKK9Ch0KLQoNCj0JPQkNCgINCg0JDQlNCc0JjQm9CQCivQodCi0KDQo9CT0JDQoCDQodCe0IrQkAor0KHQotCg0KPQk9CQ0KAg0JLQntCI0JjQodCb0JDQkgor0KHQotCg0KPQk9CQ0KAg0JfQkNCg0JjQiNCQCivQodCi0KDQo9Cl0JDQoCDQkNCd0JAKK9Ch0KLQoNCj0KXQkNCgINCI0JDQoNCc0JjQm9CQCivQodCi0KDQo9Cl0JDQoCDQiNCe0KHQmNCfCivQodCi0KDQo9Cl0JDQoCDQnNCQ0JPQlNCQCivQodCi0KDQo9Cl0JDQoNCY0Jog0IjQntCh0JjQnwor0KHQotCg0KPQpdCQ0KDQmNCaINCI0J7QodCY0J8KK9Ch0KLQoNCj0KXQkNCg0JjQmi3QiNCj0KAg0KDQkNCh0KLQmNCh0JvQkNCSCivQodCi0KDQo9Cl0JDQoNCY0Jog0IjQo9Cg0JDQiCDQlNCgCivQodCi0KDQo9Cl0JDQoNCY0Jog0JzQkNCg0IjQldCd0JAKK9Ch0KLQoNCj0KXQkNCg0JjQmiDQnNCQ0KLQngor0KHQotCg0KPQpdCQ0KDQmNCaINCf0JDQktCb0JUKK9Ch0KLQoNCj0JrQkNCdINCU0J7QnNCQ0JPQntCIINCU0KAKK9Ch0KLQoNCj0IrQkNCoINCT0J7QoNCU0JDQndCQCivQodCi0KPQkdCb0JjQndCQ0KYg0JzQmNCb0J7QqAor0KHQotCj0JTQldCdINCW0JjQktCe0KDQkNCUCivQodCi0KPQm9CQ0KAg0JTQo9Co0JDQnQor0KHQotCj0J/QkNCgINCn0JXQlNCQCivQodCi0KPQn9CQ0KAg0JbQldCJ0JrQngor0KHQotCj0J/QkNCgINCW0JjQktCa0J4KK9Ch0KLQo9Cf0JDQoCDQgtCe0KDQgtCVCivQodCi0KPQn9CQ0KAg0JHQntCT0J7QidCj0JEKK9Ch0KLQo9Cf0JDQoCDQkdCe0KDQngor0KHQotCj0J/QkNCgINCR0J7QodCY0InQmtCQCivQodCi0KPQn9CQ0KAg0JHQoNCQ0J3QmtCeCivQodCi0KPQn9CQ0KAg0JHQoNCQ0J3QmtCeCivQodCi0KPQn9CQ0KAg0JHQoNCQ0J3QmtCeCivQodCi0KPQn9CQ0KAg0KbQktCV0KLQkAor0KHQotCj0J/QkNCgINCU0JXQodCQ0J3QmtCQCivQodCi0KPQn9CQ0KAg0JTQoNCQ0JPQkNCdCivQodCi0KPQn9CQ0KAg0JTQoNCQ0JPQngor0KHQotCj0J/QkNCgINCU0KPQqNCQ0J3QmtCQCivQodCi0KPQn9CQ0KAg0JTQo9Co0JDQnQor0KHQotCj0J/QkNCgINCU0KPQqNCQ0J0KK9Ch0KLQo9Cf0JDQoCDQlNCj0KjQkNCdCivQodCi0KPQn9CQ0KAg0JjQm9CY0IjQkAor0KHQotCj0J/QkNCgINCI0JDQitCQCivQodCi0KPQn9CQ0KAg0IjQkNCd0JrQngor0KHQotCj0J/QkNCgINCI0J7QktCeCivQodCi0KPQn9CQ0KAg0InQo9CR0JjQndCa0JAKK9Ch0KLQo9Cf0JDQoCDQnNCQ0KDQmtCeCivQodCi0KPQn9CQ0KAg0JzQkNCg0JrQngor0KHQotCj0J/QkNCgINCc0JjQidCQCivQodCi0KPQn9CQ0KAg0JzQmNCb0JrQkAor0KHQotCj0J/QkNCgINCc0JjQm9Ce0KDQkNCUCivQodCi0KPQn9CQ0KAg0JzQmNCb0J7QoNCQ0JQKK9Ch0KLQo9Cf0JDQoCDQnNCY0KDQiNCQ0J3QkAor0KHQotCj0J/QkNCgINCc0JjQoNCa0J4KK9Ch0KLQo9Cf0JDQoCDQndCY0JrQntCb0JAKK9Ch0KLQo9Cf0JDQoCDQn9CV0KDQngor0KHQotCj0J/QkNCgINCf0JXQotCQ0KAKK9Ch0KLQo9Cf0JDQoCDQn9CV0KLQkNCgCivQodCi0KPQn9CQ0KAg0KDQkNCU0JAKK9Ch0KLQo9Cf0JDQoCDQoNCQ0JTQlQor0KHQotCj0J/QkNCgINCg0JDQiNCa0J4KK9Ch0KLQo9Cf0JDQoCDQoNCQ0IjQmtCeCivQodCi0KPQn9CQ0KAg0KDQkNCI0JrQngor0KHQotCj0J/QkNCgINCh0JvQkNCC0JDQndCQCivQodCi0KPQn9CQ0KAg0JLQm9CQ0JTQmNCc0JjQoAor0KHQotCj0J/QkNCgINCX0JTQoNCQ0JLQmtCeCivQodCi0KPQn9CQ0KAg0JfQntCg0JDQnQor0KHQotCj0J/QkNCS0KHQmtCYINCQ0J3QlNCg0JXQiAor0KHQotCj0J/QkNCS0KHQmtCYINCI0JDQndCa0J4KK9Ch0KLQo9Cf0JjQiyDQodCb0JDQktCV0J3QmtCeCivQodCi0KPQn9CY0J0g0JjQktCQ0J0KK9Ch0KLQo9Cf0JjQnSDQl9CS0J7QndCY0JzQmNCgCivQodCi0KPQoNCQ0KAg0JfQlNCg0JDQktCa0J4KK9Ch0KLQktCe0KDQmNCLINCf0JDQktCb0JUKK9Ch0KPQp9CV0JLQmNCLINCU0JDQndCVINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQodCj0KfQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9Ch0KPQp9CV0JLQmNCLINCU0KPQqNCQ0J0KK9Ch0KPQp9CV0JLQmNCLINCc0JDQoNCY0IjQkAor0KHQo9Cn0JXQktCY0Isg0JzQkNCg0KLQkAor0KHQo9Cn0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KHQo9Cn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQodCj0KfQldCS0JjQiyDQndCY0JrQntCb0JAKK9Ch0KPQp9CV0JLQmNCLINCg0KPQltCY0KbQkAor0KHQo9Co0JAg0JTQkNCd0JjQm9CeCivQodCj0KjQkCDQnNCQ0KDQmtCeCivQodCj0KjQkCDQnNCY0JvQmNCI0JDQndCQCivQodCj0KjQkNCmINCS0JjQndCa0J4KK9Ch0KPQqNCY0Isg0JPQntCg0JTQkNCd0JAKK9Ch0KPQqNCY0Isg0KXQmNCb0JTQkAor0KHQo9Co0JjQiyDQoNCQ0JTQkAor0KHQo9Co0JjQiyDQktCj0IjQkNCd0JAKK9Ch0KPQgtCYINCI0J7QktCQ0J0KK9Ch0KPQgtCYINCc0JDQoNCY0IjQkAor0KHQo9CC0Jgg0KHQotCQ0J3QmtCeCivQodCj0JHQkNCo0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQodCj0JHQkNCo0JjQiyDQiNCj0JvQmtCQCivQodCj0JHQkNCo0JjQiyDQm9CQ0JfQkNCgCivQodCj0JHQkNCo0JjQiyDQnNCQ0KDQmtCeCivQodCj0JHQkNCo0JjQiyDQnNCY0JvQkNCdCivQodCj0JHQkNCo0JjQiyDQndCY0JrQntCb0JAKK9Ch0KPQkdCQ0KjQmNCLINCf0JXQoNCeCivQodCj0JHQkNCo0JjQiyDQn9CV0KLQkNCgINCc0KAKK9Ch0KPQkdCQ0KjQmNCLINCg0JDQiNCa0J4KK9Ch0KPQkdCQ0KjQmNCLINCh0JjQnNCQCivQodCj0JHQkNCo0JjQiyDQodCi0J7QiNCQ0J0KK9Ch0KPQkdCQ0IjQmtCe0JIg0KDQkNCU0J7QiNCa0JAKK9Ch0KPQkdCQ0JrQntCSINCa0J7QktCY0InQmtCQCivQodCj0JHQkNCa0J7QkiDQodCc0JjQidCa0JAKK9Ch0KPQkdCQ0JrQntCSINCh0J7QpNCY0IjQkAor0KHQo9CR0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ch0KPQkdCY0Isg0JbQkNCg0JrQngor0KHQo9CR0JjQiyDQgtCe0KDQgtCVCivQodCj0JHQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCj0JHQmNCLINCQ0J3QgtCV0JvQmtCQCivQodCj0JHQmNCLINCR0J7QltCV0J3QkAor0KHQo9CR0JjQiyDQkdCe0JbQmNCU0JDQoAor0KHQo9CR0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0KPQkdCY0Isg0JTQkNCc0JjQoAor0KHQo9CR0JjQiyDQlNCQ0KDQkAor0KHQo9CR0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0KPQkdCY0Isg0JTQo9Co0JDQnQor0KHQo9CR0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KHQo9CR0JjQiyDQiNCe0JLQkNCdCivQodCj0JHQmNCLINCa0J7QodCi0JAKK9Ch0KPQkdCY0Isg0JvQkNCX0JDQoAor0KHQo9CR0JjQiyDQm9CQ0JfQkNCgCivQodCj0JHQmNCLINCb0JDQl9CQ0KAKK9Ch0KPQkdCY0Isg0InQo9CR0JjQptCQCivQodCj0JHQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCj0JHQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCj0JHQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCj0JHQmNCLINCc0JDQoNCY0IjQkAor0KHQo9CR0JjQiyDQnNCQ0KDQmtCeCivQodCj0JHQmNCLINCc0JDQoNCa0J4KK9Ch0KPQkdCY0Isg0JzQmNCb0JDQnQor0KHQo9CR0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Ch0KPQkdCY0Isg0JzQm9CQ0JTQldCdCivQodCj0JHQmNCLINCd0JDQlNCQCivQodCj0JHQmNCLINCd0JXQlNCV0InQmtCQCivQodCj0JHQmNCLINCd0JXQlNCV0InQmtCeCivQodCj0JHQmNCLINCd0J7QktCQ0JoKK9Ch0KPQkdCY0Isg0J7Qm9CT0JAKK9Ch0KPQkdCY0Isg0J/QkNCI0JAKK9Ch0KPQkdCY0Isg0KDQkNCU0JjQktCe0IgKK9Ch0KPQkdCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KHQo9CR0JjQiyDQodCc0JjQidCQCivQodCj0JHQmNCLINCh0J3QldCW0JDQndCQCivQodCj0JHQmNCLINCh0KLQldCS0JDQnQor0KHQo9CR0JjQiyDQl9Ce0KDQkNCdCivQodCj0JHQntCi0JjQp9Ca0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCj0JHQntCi0JjQp9Ca0Jgg0JPQntCg0JjQptCQCivQodCj0JHQntCi0JjQp9Ca0Jgg0JrQkNCi0JjQptCQCivQodCj0JHQntCi0JjQp9Ca0Jgg0JvQo9Ca0JAKK9Ch0KPQkdCe0KLQmNCn0JrQmCDQnNCY0KDQiNCQ0J3QkAor0KHQo9CR0J7QotCY0KfQmtCYINCc0JjQoNCa0J4KK9Ch0KPQkdCe0KLQmNCn0JrQmCDQndCQ0JTQkAor0KHQo9CR0J7QotCY0KfQmtCYINCd0JXQodCi0J7QoCDQlNCY0J/QmyDQmNCd0JMKK9Ch0KPQkdCe0KLQmNCn0JrQmCDQoNCQ0JTQntCS0JDQnQor0KHQo9CR0J7QotCY0KfQmtCYINCh0JDQktCQCivQodCj0JHQntCi0JjQp9Ca0Jgg0KHQm9Ce0JHQntCU0JDQnQor0KHQo9CR0J7QotCY0KfQmtCYINCh0J7QpNCY0IjQkAor0KHQo9CR0J7QotCY0KfQmtCYINCh0JLQldCi0JjQodCb0JDQkgor0KHQo9CR0J7QotCY0KfQmtCYINCS0JDQodCQCivQodCj0JHQntCi0JjQp9Ca0Jgg0JLQldCg0JAKK9Ch0KPQkdCe0KLQmNCn0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQodCj0JHQntCi0JjQp9Ca0Jgg0JfQntCg0JDQnQor0KHQo9CR0J7QotCY0Isg0JbQkNCg0JrQngor0KHQo9CR0J7QotCY0Isg0ILQntCg0ILQlQor0KHQo9CR0J7QotCY0Isg0ILQo9Cg0J4KK9Ch0KPQkdCe0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQodCj0JHQntCi0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIg0JTQoAor0KHQo9CR0J7QotCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0KHQo9CR0J7QotCY0Isg0JTQo9Co0JDQnQor0KHQo9CR0J7QotCY0Isg0JTQo9Co0JDQnQor0KHQo9CR0J7QotCY0Isg0InQmNCJ0JDQndCQCivQodCj0JHQntCi0JjQiyDQidCj0JHQmNCm0JAKK9Ch0KPQkdCe0KLQmNCLINCc0JDQptCQCivQodCj0JHQntCi0JjQiyDQnNCQ0KDQmtCeCivQodCj0JHQntCi0JjQiyDQnNCY0JvQmNCS0J7QiAor0KHQo9CR0J7QotCY0Isg0JzQmNCb0J7QqAor0KHQo9CR0J7QotCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ch0KPQkdCe0KLQmNCLINCc0JjQntCU0KDQkNCTINCU0JjQn9CbINCY0J3Qkwor0KHQo9CR0J7QotCY0Isg0J3QldCd0JDQlAor0KHQo9CR0J7QotCY0Isg0KDQkNCU0JjQktCe0IgKK9Ch0KPQkdCe0KLQmNCLINCg0JDQlNCe0KgKK9Ch0KPQkdCe0KLQmNCLINCg0JDQiNCa0J4KK9Ch0KPQkdCe0KLQmNCLINCg0JDQiNCa0J4KK9Ch0KPQkdCe0KLQmNCLINCg0KPQltCQCivQodCj0JHQntCi0JjQiyDQoNCj0JbQkAor0KHQo9CR0J7QotCY0Isg0KHQkNCS0JAKK9Ch0KPQkdCe0KLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ch0KPQkdCe0KLQmNCLINCh0KLQkNCd0JAKK9Ch0KPQkdCe0KLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KPQkdCe0KLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ch0KPQkdCe0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ch0KPQkdCe0KLQmNCLINCS0JXQoNCQCivQodCj0JHQntCi0JjQiyDQktCb0JDQlNCQ0J3QkAor0KHQo9CR0J7QotCY0J0g0JbQmNCS0JrQngor0KHQo9CR0J7QotCY0J0g0JbQmNCS0JrQngor0KHQo9CR0J7QotCY0J0g0ILQntCg0ILQlQor0KHQo9CR0J7QotCY0J0g0ILQntCg0ILQlQor0KHQo9CR0J7QotCY0J0g0ILQo9Cg0JAKK9Ch0KPQkdCe0KLQmNCdINCR0J7Qk9CU0JDQnQor0KHQo9CR0J7QotCY0J0g0JHQntCT0JTQkNCdCivQodCj0JHQntCi0JjQnSDQlNCQ0J3QmNCm0JAKK9Ch0KPQkdCe0KLQmNCdINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQo9CR0J7QotCY0J0g0JTQoNCQ0JPQkNCdCivQodCj0JHQntCi0JjQnSDQlNCg0JDQk9CY0IrQkAor0KHQo9CR0J7QotCY0J0g0JTQo9Co0JDQndCa0JAKK9Ch0KPQkdCe0KLQmNCdINCY0KDQmNCd0JAKK9Ch0KPQkdCe0KLQmNCdINCY0JLQkNCdCivQodCj0JHQntCi0JjQnSDQiNCV0JvQldCd0JAKK9Ch0KPQkdCe0KLQmNCdINCI0JXQm9CY0KbQkAor0KHQo9CR0J7QotCY0J0g0InQmNCJ0JDQndCQCivQodCj0JHQntCi0JjQnSDQidCj0JHQmNCd0JrQkAor0KHQo9CR0J7QotCY0J0g0JzQkNCg0JrQngor0KHQo9CR0J7QotCY0J0g0JzQkNCg0JrQngor0KHQo9CR0J7QotCY0J0g0JzQkNCg0JrQngor0KHQo9CR0J7QotCY0J0g0JzQmNCb0JDQnQor0KHQo9CR0J7QotCY0J0g0JzQmNCb0JDQnQor0KHQo9CR0J7QotCY0J0g0JzQmNCb0JDQnQor0KHQo9CR0J7QotCY0J0g0JzQmNCb0J7QoNCQ0JQKK9Ch0KPQkdCe0KLQmNCdINCd0JXQktCV0J3QmtCQCivQodCj0JHQntCi0JjQnSDQn9CQ0JLQm9CVCivQodCj0JHQntCi0JjQnSDQn9CV0KLQkNCgCivQodCj0JHQntCi0JjQnSDQn9Cg0JXQlNCg0JDQkwor0KHQo9CR0J7QotCY0J0g0KDQkNCU0J7QodCb0JDQkgor0KHQo9CR0J7QotCY0J0g0KDQkNCU0J7QktCQ0J0KK9Ch0KPQkdCe0KLQmNCdINCh0JDQqNCQCivQodCj0JHQntCi0JjQnSDQodCQ0JLQkAor0KHQo9CR0J7QotCY0J0g0KHQkNCS0JAKK9Ch0KPQkdCe0KLQmNCdINCh0JDQktCQCivQodCj0JHQntCi0JjQnSDQodCb0J7QkdCe0JTQkNCdCivQodCj0JHQntCi0JjQnSDQodCc0JjQidCQCivQodCj0JHQntCi0JjQnSDQodCi0JDQndCa0JAKK9Ch0KPQkdCe0KLQmNCdINCh0KLQldCS0JDQnQor0KHQo9CR0J7QotCY0J0g0KHQotCV0JLQkNCdCivQodCj0JHQntCi0JjQnSDQodCS0JXQotCe0JfQkNCgCivQodCj0JHQntCi0JjQnSDQodCS0JXQotCe0JfQkNCgCivQodCj0JHQntCi0JjQnSDQodCS0JXQotCe0JfQkNCgCivQodCj0JHQntCi0JjQnSDQl9Ce0KDQkAor0KHQo9CR0KMg0ILQntCg0ILQlQor0KHQo9CP0KPQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KHQo9CP0KPQnCDQkdCe0KjQmtCeCivQodCj0I/Qo9CcINCR0J7Qk9CU0JDQnQor0KHQo9CP0KPQnCDQmNCb0JjQiNCQCivQodCj0JTQkNCaINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KPQlNCQ0KAg0JTQo9Co0JDQnQor0KHQo9CU0JDQoCDQlNCj0KjQkNCdCivQodCj0JTQkNCgINCT0JDQiNCQCivQodCj0JTQkNCgINCS0J7QiNCY0J0KK9Ch0KPQlNCQ0KDQldCS0JjQiyDQkdCe0KjQmtCeCivQodCj0JTQkNCg0J7QkiDQkdCg0JDQotCY0KHQm9CQ0JIKK9Ch0KPQlNCQ0KDQodCa0Jgg0JTQo9Co0JDQnQor0KHQo9CU0JjQnNCQ0KYg0JTQoNCQ0JPQngor0KHQo9CU0JjQnNCQ0KYg0JzQmNCb0JDQnQor0KHQo9Cl0JDQndCV0Jog0JDQlNCQ0JwKK9Ch0KPQpdCQ0J3QodCa0Jgg0KHQotCV0JLQkNCdCivQodCj0KXQntCS0KHQmtCYINCI0JDQndCeCivQodCj0JjQiyDQkdCg0JDQndCa0J4KK9Ch0KPQmNCLINCd0JXQndCQ0JQKK9Ch0KPQiNCV0KAg0JzQmNCl0JDQiNCb0J4KK9Ch0KPQiNCY0Isg0IjQldCb0JXQndCQCivQodCj0IjQmNCLINCc0JjQm9CQ0J0KK9Ch0KPQiNCY0Isg0KHQntCk0JjQiNCQCivQodCj0IjQmNCLINCS0J7QiNCY0J0KK9Ch0KPQiNCY0Isg0JfQlNCV0J3QmtCQCivQodCj0JrQkNCnINCc0JjQpdCQ0IjQm9CeCivQodCj0JrQitCQ0IjQkCDQlNCQ0J3QmNCb0J4KK9Ch0KPQmtCd0J7QktCY0Isg0JzQmNCg0JrQngor0KHQo9Ca0J3QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQodCj0JrQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0KHQo9Ca0J7Qm9CQINCQ0J3QotCQ0JsKK9Ch0KPQmtCe0JvQkCDQodCj0JfQkNCd0JAKK9Ch0KPQmtCj0J8g0JzQkNCg0JPQmNCi0JAKK9Ch0KPQm9CV0IjQnNCQ0J3QntCSINCd0JDQpNCY0IjQkAor0KHQo9Cb0JjQiyDQnNCQ0KDQmNCm0JAKK9Ch0KPQm9CY0Isg0KLQntCc0JjQodCb0JDQkgor0KHQo9CJ0JAg0KDQkNCc0JDQlNCQ0J0KK9Ch0KPQidCQ0JPQmNCLINCg0JXQpNCY0JoKK9Ch0KPQm9Ce0KbQmtCYINCI0J7QqNCa0JAKK9Ch0KPQm9Ce0JzQkNCgINCQ0JPQndCV0JfQkAor0KHQo9Cb0J7QnNCQ0KAg0JXQoNCW0JXQkdCV0KIKK9Ch0KPQm9Ce0JzQkNCgINCY0JvQntCd0JAKK9Ch0KPQm9Ce0JzQkNCgINCI0JDQndCe0KgKK9Ch0KPQm9Ce0JzQkNCgINCc0JDQk9CU0JAKK9Ch0KPQnNCQ0J0g0JzQmNCb0JUKK9Ch0KPQnNCQ0KDQntCSINCI0JXQm9CY0KHQkNCS0JXQotCQCivQodCj0JzQmNCd0JAg0JTQkNCd0JjQptCQCivQodCj0JzQmNCK0JAg0JzQmNCo0JAKK9Ch0KPQndCQ0IjQmtCeINCC0KPQoNCeCivQodCj0J3QkNCI0JrQniDQlNCj0KjQkNCdCivQodCj0J3QlNCQ0Isg0ILQo9Cg0JAKK9Ch0KPQndCU0JDQiyDQotCe0JTQntCgCivQodCj0J3QmNCLINCc0JjQoNCI0JDQndCQCivQodCj0J3QmtCQINCJ0KPQkdCY0KbQkAor0KHQo9Cd0KLQntCaINCQ0J3QmNCm0JAKK9Ch0KPQndCX0JXQoCDQktCb0JDQlNCY0JzQmNCgCivQodCj0J/QmNCLINCR0J7QoNCY0KjQkAor0KHQo9Cf0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KHQo9Cf0JjQiyDQnNCY0JvQkNCdCivQodCj0J/QmNCLINCe0JvQk9CQCivQodCj0KDQi9CQINCI0J7QodCY0J8KK9Ch0KPQoNCL0JAg0KLQoNCQ0IjQkNCdCivQodCj0KDQkCDQnNCQ0KDQk9CY0KLQkAor0KHQo9Cg0JTQo9Cn0JDQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ch0KPQoNCU0KPQp9Ca0Jgg0JbQmNCS0JrQngor0KHQo9Cg0JTQo9Cn0JrQmCDQlNCg0JDQk9CQ0J0KK9Ch0KPQoNCU0KPQp9Ca0Jgg0JjQm9CY0IjQkAor0KHQo9Cg0JTQo9Cn0JrQmCDQmNCb0JjQiNCQCivQodCj0KDQlNCj0KfQmtCYINCY0KHQmNCU0J7QoAor0KHQo9Cg0JTQo9Cn0JrQmCDQnNCQ0KDQkAor0KHQo9Cg0JTQo9Cn0JrQmCDQnNCY0JvQkNCdCivQodCj0KDQlNCj0KfQmtCYINCc0JjQm9Ce0KgKK9Ch0KPQoNCU0KPQp9Ca0Jgg0JzQmNCb0J7QqAor0KHQo9Cg0JTQo9Cn0JrQmCDQnNCY0KDQiNCQ0J3QkAor0KHQo9Cg0JTQo9Cn0JrQmCDQndCV0JHQntCI0KjQkAor0KHQo9Cg0JTQo9Cn0JrQmCDQn9CQ0J3QotCV0JvQmNCI0JAKK9Ch0KPQoNCU0KPQp9Ca0Jgg0J/QldCg0KHQkAor0KHQo9Cg0JTQo9Cn0JrQmCDQodCY0J3QmNCo0JAKK9Ch0KPQoNCU0KPQp9Ca0Jgg0KHQotCQ0J3QmtCQCivQodCj0KDQlNCj0KfQmtCYINCh0KLQldCS0JDQnQor0KHQo9Cg0JvQkCDQkdCe0JbQngor0KHQo9Cg0JvQkCDQlNCj0KjQkNCdCivQodCj0KDQm9CQINCb0KPQmtCQCivQodCj0KDQm9CQINCf0JXQotCQ0KAKK9Ch0KPQoNCb0JAg0J/QldCi0JDQoAor0KHQo9Cg0JvQkCDQodCQ0JLQkAor0KHQo9Cg0JvQkCDQl9Ce0KDQkNCdCivQodCj0KDQm9CY0Isg0JzQmNCb0JXQndCa0J4KK9Ch0KPQoNCe0JLQmCDQkNCd0KLQntCdCivQodCj0KDQntCS0Jgg0IjQntCb0JDQndCa0JAKK9Ch0KPQoNCe0JLQmCDQnNCY0KXQkNCbCivQodCj0KDQntCS0Jgg0JzQmNCg0J7QodCb0JDQkgor0KHQo9Cg0J7QktCYINCh0KLQldCS0JDQnQor0KHQo9Cg0J7QktCYINCS0JvQkNCU0JjQnNCY0KAKK9Ch0KPQodCV0JTQodCa0Jgg0J7QodCa0JDQoAor0KHQo9Ci0JDQoNCY0Isg0JLQldCg0JAKK9Ch0KPQotCg0JjQnSDQkdCe0KDQmNChCivQodCj0KLQo9Cg0J7QktCY0Isg0IjQkNCT0JAKK9Ch0KPQotCj0KDQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ch0KPQotCj0KDQntCS0JjQiyDQndCV0KHQotCeCivQodCj0KLQo9Cg0J7QktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0KHQo9CS0JDQp9CQ0KAg0JjQm9CY0J3QmtCQCivQodCj0JLQkNCn0JDQoCDQotCe0JTQntCgCivQodCj0JLQkNCn0JDQoCDQktCV0KDQkAor0KHQo9CS0JDQp9CQ0KDQldCSINCR0J7QoNCY0KHQm9CQ0JLQkAor0KHQo9CS0JDQp9CQ0KDQldCSINCI0J7QktCQ0J0KK9Ch0KPQktCQ0KfQkNCg0JXQkiDQnNCQ0KDQmNCI0JAKK9Ch0KPQktCQ0KfQkNCg0JXQkiDQnNCY0JvQldCd0JrQngor0KHQo9CS0JDQp9CQ0KDQldCSINCc0J7QnNCY0KAKK9Ch0KPQktCQ0KfQkNCg0JXQkiDQntCR0KDQkNCUCivQodCj0JLQkNCn0JDQoNCV0JIg0J/QkNCI0JAKK9Ch0KPQktCQ0KfQkNCg0JXQkiDQoNCQ0JTQldCd0JrQngor0KHQo9CS0JDQiNCn0JXQktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQodCj0JLQkNCI0JDQpiDQltCV0InQmtCeCivQodCj0JLQkNCI0JDQpiDQktCQ0KHQmNCb0JjQiNCVCivQodCj0JLQkNCI0I/QmNCLINCW0JjQktCa0J4KK9Ch0KPQktCQ0IjQj9CY0Isg0ILQntCg0ILQlQor0KHQo9CS0JDQiNCP0JjQiyDQgtCe0KDQgtCVCivQodCj0JLQkNCI0I/QmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0KHQo9CS0JDQiNCP0JjQiyDQk9Ce0IjQmtCeCivQodCj0JLQkNCI0I/QmNCLINCY0JvQmNCI0JAKK9Ch0KPQktCQ0IjQj9CY0Isg0JjQodCQCivQodCj0JLQkNCI0I/QmNCLINCI0J7QktCQ0J0KK9Ch0KPQktCQ0IjQj9CY0Isg0InQmNCJ0JDQndCQCivQodCj0JLQkNCI0I/QmNCLINCc0JDQoNCY0IjQkAor0KHQo9CS0JDQiNCP0JjQiyDQnNCQ0KDQmNCd0JrQngor0KHQo9CS0JDQiNCP0JjQiyDQnNCY0JvQmtCQCivQodCj0JLQkNCI0I/QmNCLINCd0JXQndCQ0JQKK9Ch0KPQktCQ0IjQj9CY0Isg0J3QldCd0JDQlAor0KHQo9CS0JDQiNCP0JjQiyDQntCR0KDQkNCUCivQodCj0JLQkNCI0I/QmNCLINCe0JvQk9CY0KbQkAor0KHQo9CS0JDQiNCP0JjQiyDQn9CV0KLQkNCgCivQodCj0JLQkNCI0I/QmNCLINCg0JDQlNCc0JjQm9CQCivQodCj0JLQkNCI0I/QmNCLINCS0JDQodCQCivQodCj0JLQkNCI0I/QmNCLINCS0JDQodCQCivQodCj0JLQkNCI0I/QmNCdINCI0J7QktCQ0J0KK9Ch0KPQktCQ0IjQj9CY0J0g0IjQntCS0JDQnQor0KHQo9CS0JDQiNCP0JjQnSDQnNCb0JDQlNCV0J0KK9Ch0KPQktCQ0IjQj9CY0J0g0J3QmNCa0J7Qm9CQCivQodCj0JfQmNCLINCc0JDQoNCQCivQodCj0JfQmNCLINCc0JjQoNCa0J4KK9Ch0KPQl9CY0Isg0J3QmNCa0J7Qm9CQCivQodCj0JfQmNCLINCh0J7QpNCY0IjQkAor0KHQktCQ0JvQmNCd0JAg0JrQkNCi0JAKK9Ch0JLQldCL0IrQkNCaINCR0KDQkNCd0JrQngor0KHQktCV0KLQmNCLINCY0JLQkNCdINCU0KAKK9Ch0JLQldCi0JjQiyDQmNCS0JDQnQor0KHQktCV0KLQmNCLINCJ0JXQoNCa0JAKK9Ch0JLQldCi0JvQmNCaINCQ0JTQkNCcCivQodCS0JjQm9CQ0JrQntChINCc0JDQoNCY0IjQkAor0KHQktCY0JvQkNCgINCQ0J3QgtCV0JvQmtCQCivQodCS0JjQm9CQ0KAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQodCS0JjQm9CQ0KAg0JPQntCI0JrQngor0KHQktCY0JvQkNCgINCJ0KPQkdCe0JzQmNCgCivQodCS0JjQm9CQ0KAg0JzQmNCl0JDQiNCb0J4KK9Ch0JLQmNCb0JDQoCDQnNCY0KXQkNCI0JvQngor0KHQktCY0JvQkNCgINCd0JjQmtCe0JvQkAor0KHQktCY0JvQkNCgINCf0JXQotCQ0KAKK9Ch0JLQmNCb0JDQoCDQoNCQ0JTQntCc0JjQoAor0KHQktCY0JvQkNCgINCg0JDQotCa0J4KK9Ch0JLQmNCb0JDQoCDQodCb0JDQktCY0KbQkAor0KHQktCY0JvQkNCgINCh0J7QpNCY0IjQkAor0KHQktCY0JvQkNCgINCS0JXQoNCY0KbQkAor0KHQktCY0JvQkNCgINCS0JjQndCa0JAKK9Ch0JLQmNCb0JDQoNCV0JLQmNCLINCh0KLQldCS0J4KK9Ch0JLQmNCb0JDQoNCa0J7QktCY0Isg0KHQotCQ0J3QmNCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Ch0JLQmNCb0JDQoNCe0JIg0JzQmNCb0JDQnQor0KHQktCY0JvQntCa0J7QoSDQkdCe0KDQmNCh0JvQkNCSCivQodCS0JjQm9Ce0JrQntChINCT0JDQktCg0JAKK9Ch0JLQmNCb0J7QmtCe0KEg0JrQkNCi0JjQptCQCivQodCS0JjQm9Ce0JrQntChINCc0JjQm9CQ0J0KK9Ch0JLQmNCb0J7QmtCe0KEg0KHQotCV0JLQkNCdCivQodCS0JjQitCQ0KDQldCS0JjQiyDQodCb0JDQktCa0J4KK9Ch0JLQmNCg0KfQldCSINCW0JjQktCa0J4KK9Ch0JLQmNCg0KfQldCSINCI0J7QktCQ0J0KK9Ch0JLQmNCg0KfQldCSINCc0JjQm9CY0JLQntCICivQodCS0JjQoNCn0JXQkiDQnNCY0JvQntCoCivQodCS0JjQoNCn0JXQkiDQoNCQ0JTQkAor0KHQktCY0KDQp9CV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0KAg0JTQntCm0JXQndCiCivQodCS0JjQoNCn0JXQktCY0Isg0JDQndCQCivQodCS0JjQoNCn0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KHQktCY0KDQp9CV0JLQmNCLINCU0KDQkNCT0JDQnQor0KHQktCY0KDQp9CV0JLQmNCLINCU0KDQkNCT0JAKK9Ch0JLQmNCg0KfQldCS0JjQiyDQlNCg0JXQndCa0JAKK9Ch0JLQmNCg0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQodCS0JjQoNCn0JXQktCY0Isg0IjQntCS0JDQnQor0KHQktCY0KDQp9CV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQodCS0JjQoNCn0JXQktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ch0JLQmNCg0KfQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KHQktCY0KDQp9CV0JLQmNCLINCc0JjQoNCI0JDQndCQCivQodCS0JjQoNCn0JXQktCY0Isg0J/QldCi0JDQoAor0KHQktCY0KDQp9CV0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQodCS0JjQoNCn0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQodCS0JjQoNCn0JXQktCY0Isg0KHQotCV0JLQkNCdCivQodCS0JjQoNCn0JXQktCY0Isg0KLQldCe0JTQntCg0JAKK9Ch0JLQmNCg0KfQldCS0JjQiy3QotCg0JDQiNCa0J7QktCY0Isg0InQo9CR0JjQptCQCivQodCS0JjQoNCn0JXQktCY0Isg0JLQkNCh0JAKK9Ch0JLQmNCg0KfQldCS0JjQiyDQktCj0JrQkNCdCivQodCS0JjQoNCQ0KYg0KDQo9CW0JjQptCQCivQodCS0JjQotCY0Isg0JHQntCW0J4KK9Ch0JLQmNCi0JvQmNCm0JAg0JTQoNCQ0JPQkNCdCivQodCS0JjQotCb0JjQptCQINCU0KPQqNCQ0J0KK9Ch0JLQmNCi0JvQmNCm0JAg0JPQntCI0JrQniDQlNCY0J/QmyDQntCV0KYKK9Ch0JLQmNCi0JvQmNCm0JAg0IjQldCb0JjQptCQCivQodCS0JjQotCb0JjQptCQINCc0JjQm9CQ0J0KK9Ch0JLQmNCi0JvQmNCm0JAg0KDQo9CW0JjQptCQCivQodCS0JjQotCb0JjQptCQINCh0JjQnNCeCivQodCS0JjQotCb0JjQptCQINCh0KLQkNCd0JrQngor0KHQktCY0KLQm9CY0KbQkCDQotCQ0J3QkNCh0JjQiNCVINCU0JjQn9CbINCe0JXQpgor0KHQktCY0KLQm9CY0KbQkCDQktCV0KDQkAor0KHQktCe0JHQntCU0JAg0KHQotCV0JLQkNCdCivQodCS0J7QoNCm0JDQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ch0JLQntCg0KbQkNCdINCJ0KPQkdCe0JzQmNCgCivQodCS0J7QoNCm0JDQnSDQnNCY0JvQntCoCivQodCS0J7QoNCm0JDQnSDQnNCY0JvQntCg0JDQlAor0KHQktCe0KDQptCQ0J0g0JzQmNCb0J7QoNCQ0JQKK9Ch0JLQntCg0KbQkNCdINCg0JDQlNCY0KHQm9CQ0JIKK9Ch0JLQntCg0KbQkNCdINCg0JDQlNCe0JzQmNCgCivQodCS0J7QoNCm0JDQnSDQodCi0JXQktCQ0J0KK9Ch0JLQntCg0KbQkNCdINCh0KLQntCI0JDQnQor0KHQktCe0KDQptCQ0J0g0JfQntCg0JjQptCQCivQodCS0KDQlNCb0JDQnSDQnNCb0JDQgtCQ0J0KK9Ch0JLQoNCa0J7QotCQINCW0JjQktCa0J4KK9Ch0JLQoNCa0J7QotCQINCS0KPQmtCe0JzQkNCdCivQodCS0KDQl9CY0Isg0JPQntCg0JTQkNCd0JAKK9Ci0JDQp9CYINCY0KHQnNCQ0JjQiQor0KLQkNCn0Jgg0KLQldCe0KTQmNCbCivQotCQ0Kgg0JrQkNCg0J7QiQor0KLQkNCo0JXQktCh0JrQmCDQnNCY0JvQmtCQCivQotCQ0KjQldCS0KHQmtCYINCh0J7QpNCY0IjQkAor0KLQkNCo0Jgg0InQo9CR0JjQptCQCivQotCQ0KjQmCDQn9CV0KLQkNCgCivQotCQ0KjQmCDQoNCe0JfQkNCb0JjQiNCQCivQotCQ0KjQmCDQodCi0JXQktCQ0J0KK9Ci0JDQqNCYINCX0J7Qm9Ci0JDQnQor0KLQkNCo0JjQiyDQnNCY0JvQmNCS0J7QiAor0KLQkNCo0JjQiyDQktCV0KDQkAor0KLQkNCo0J3QkNCU0Jgg0JzQmNCl0JDQiQor0KLQkNCR0Kgg0J3QkNCU0JAKK9Ci0JDQkdCoINCd0J7QpdCQ0JTQldCU0JjQnQor0KLQkNCR0JDQp9Ca0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0KLQkNCR0JDQp9Ca0Jgg0JfQntCg0JjQptCQCivQotCQ0JHQkNCaINCU0KDQkNCT0JDQnQor0KLQkNCR0JDQmiDQmNCS0JDQnQor0KLQkNCR0JDQmiDQktCQ0KHQkAor0KLQkNCR0JDQmiDQktCe0IjQmNCh0JvQkNCSCivQotCQ0JHQkNCa0J7QkiDQlNCg0JDQk9Ce0JzQmNCgCivQotCQ0JHQkNCa0J7QkiDQnNCY0JvQldCd0JrQngor0KLQkNCR0JDQmtCe0JIg0JzQm9CQ0JTQldCdCivQotCQ0JHQkNCa0J7QktCY0Isg0ILQntCg0ILQlSDQlNCY0J/QmyDQmNCd0JMKK9Ci0JDQkdCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQotCQ0JHQkNCa0J7QktCY0Isg0JjQodCc0JXQogor0KLQkNCR0JDQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9Ci0JDQkdCe0KDQmCDQgtCe0KDQgtCVINCU0KAg0JvQldCa0JDQoAor0KLQkNCm0J7QktCY0Isg0JLQldCg0JAKK9Ci0JDQlNCY0Isg0JbQmNCS0JDQnQor0KLQkNCU0JjQiyDQgtCe0KDQgtCVCivQotCQ0JTQmNCLINCC0J7QoNCC0JUKK9Ci0JDQlNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JDQlNCY0Isg0JDQndCQCivQotCQ0JTQmNCLINCQ0KDQodCV0J3QmNCI0JUKK9Ci0JDQlNCY0Isg0JHQntCh0JjQidCa0JAKK9Ci0JDQlNCY0Isg0JTQkNCd0JjQm9CeCivQotCQ0JTQmNCLINCU0KDQkNCT0JDQnQor0KLQkNCU0JjQiyDQlNCg0JDQk9CQCivQotCQ0JTQmNCLINCU0KPQqNCQ0J0KK9Ci0JDQlNCY0Isg0JTQo9Co0JDQnQor0KLQkNCU0JjQiyDQlNCj0KjQkNCdCivQotCQ0JTQmNCLINCV0JTQmNCi0JAKK9Ci0JDQlNCY0Isg0JPQntCg0JDQnQor0KLQkNCU0JjQiyDQmNCb0JjQiNCQCivQotCQ0JTQmNCLINCY0JvQmNCI0JAKK9Ci0JDQlNCY0Isg0JjQktCQ0J0KK9Ci0JDQlNCY0Isg0IjQntCS0JjQptCQCivQotCQ0JTQmNCLINCa0KDQkNCh0JjQnNCY0KAKK9Ci0JDQlNCY0Isg0JvQkNCX0JDQoAor0KLQkNCU0JjQiyDQm9CQ0JfQkNCgCivQotCQ0JTQmNCLINCc0JDQoNCY0IjQkAor0KLQkNCU0JjQiyDQnNCQ0KDQmNCd0JrQngor0KLQkNCU0JjQiyDQnNCQ0KDQmNCd0JrQngor0KLQkNCU0JjQiyDQnNCY0IjQngor0KLQkNCU0JjQiyDQnNCY0JvQntCoINCU0JjQn9CbINCY0J3Qkwor0KLQkNCU0JjQiyDQnNCY0JvQntCoCivQotCQ0JTQmNCLINCc0JjQm9Ce0IjQlQor0KLQkNCU0JjQiyDQnNCY0JvQntCh0JDQkgor0KLQkNCU0JjQiyDQnNCY0KDQmtCeCivQotCQ0JTQmNCLINCc0JjQoNCa0J4KK9Ci0JDQlNCY0Isg0JzQmNCg0JrQngor0KLQkNCU0JjQiyDQndCQ0JTQkAor0KLQkNCU0JjQiyDQndCV0JLQldCd0JrQkAor0KLQkNCU0JjQiyDQntCR0KDQldCdCivQotCQ0JTQmNCLINCf0JXQotCQ0KAKK9Ci0JDQlNCY0Isg0KDQkNCU0J7QiNCVCivQotCQ0JTQmNCLINCg0JDQotCa0J4KK9Ci0JDQlNCY0Isg0KHQkNCo0JAKK9Ci0JDQlNCY0Isg0KHQkNCS0JAKK9Ci0JDQlNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KLQkNCU0JjQiyDQodCe0KTQmNCI0JAKK9Ci0JDQlNCY0Isg0KHQn9CQ0KHQntCI0JUKK9Ci0JDQlNCY0Isg0KHQotCe0IjQkNCdCivQotCQ0JTQmNCLINCi0JDQndCa0J7QodCQ0JLQkAor0KLQkNCU0JjQiyDQo9Cg0J7QqAor0KLQkNCU0JjQiyDQktCV0KHQldCb0JjQnQor0KLQkNCU0JjQiyDQl9Ce0KDQkNCdCivQotCQ0JTQmNCLINCX0J7QoNCQCivQotCQ0JTQmNCLINCX0J7QoNCa0JAKK9Ci0JDQlNCY0IjQkNCd0J7QktCY0Isg0KHQmNCb0JLQldCh0KLQldCgCivQotCQ0JTQmNCI0JjQnSDQk9Cb0JjQqNCQCivQotCQ0JTQmNCI0JjQnSDQnNCY0JvQmNCm0JAKK9Ci0JDQlNCY0IjQmNCdINCc0JjQm9Ce0KgKK9Ci0JDQlNCY0IjQmNCdINCc0JjQm9Ce0KDQkNCUCivQotCQ0JTQmNCdINCU0KPQqNCQ0J3QmtCQCivQotCQ0JTQmNCdINCU0KPQqNCQ0J0KK9Ci0JDQlNCY0J0g0JjQktCQ0J3QmtCQCivQotCQ0JTQmNCdINCc0JjQm9Ce0JLQkNCdCivQotCQ0JTQmNCdINCX0JvQkNCi0J7QiNCVCivQotCQ0KXQmNCg0J7QktCY0Isg0JXQktCY0KbQkAor0KLQkNCl0JjQoNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KLQkNCl0JjQoNCe0JLQmNCLINCc0JjQm9CQ0JTQmNCd0JrQkAor0KLQkNCY0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQkNCI0KXQnNCQ0J0g0JHQldCb0JAKK9Ci0JDQiNCl0JzQkNCdINCU0JXQodCQ0J3QmtCQCivQotCQ0IjQpdCc0JDQnSDQiNCe0KHQmNCfCivQotCQ0IjQmtCe0JIg0JDQndCC0JXQm9Ca0JAKK9Ci0JDQiNCa0J7QkiDQiNCe0JLQkNCdCivQotCQ0IjQmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9Ci0JDQiNCa0J7QkiDQoNCQ0JTQntCI0JrQkAor0KLQkNCI0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9Ci0JDQiNCi0Jgg0JLQldCg0J7QndCY0JrQkAor0KLQkNCa0JDQpyDQqNCQ0J3QlNCe0KAKK9Ci0JDQmtCQ0Kcg0ILQldCg0ILQmAor0KLQkNCa0JDQpyDQgtCe0KDQgtCVCivQotCQ0JrQkNCnINCC0KPQm9CQCivQotCQ0JrQkNCnINCC0KPQoNCQCivQotCQ0JrQkNCnINCC0KPQoNCQCivQotCQ0JrQkNCnINCQ0J3QgtCV0JvQmtCQCivQotCQ0JrQkNCnINCQ0J3QlNCg0JjQiNCQCivQotCQ0JrQkNCnINCQ0J3QotCQ0JsKK9Ci0JDQmtCQ0Kcg0JDQndCi0JDQmwor0KLQkNCa0JDQpyDQkNCd0KLQo9CdCivQotCQ0JrQkNCnINCQ0J3QotCj0J0KK9Ci0JDQmtCQ0Kcg0JDQoNCf0JDQlAor0KLQkNCa0JDQpyDQldCg0J3QlQor0KLQkNCa0JDQpyDQldCS0JPQldCdCivQotCQ0JrQkNCnINCk0JXQoNCV0J3Qpgor0KLQkNCa0JDQpyDQpNCg0JDQitCQCivQotCQ0JrQkNCnINCY0KjQotCS0JDQnQor0KLQkNCa0JDQpyDQmNCo0KLQktCQ0J0KK9Ci0JDQmtCQ0Kcg0IjQkNCa0JjQnAor0KLQkNCa0JDQpyDQiNCQ0J3QntCoCivQotCQ0JrQkNCnINCI0JDQndCe0KgKK9Ci0JDQmtCQ0Kcg0IjQkNCd0J7QqAor0KLQkNCa0JDQpyDQiNCe0JbQldCkINCU0JjQn9CbINCY0J3Qkwor0KLQkNCa0JDQpyDQiNCe0JbQldCkCivQotCQ0JrQkNCnINCI0J7QltCV0KQKK9Ci0JDQmtCQ0Kcg0IjQntCh0JjQnwor0KLQkNCa0JDQpyDQmtCQ0KDQntCJCivQotCQ0JrQkNCnINCa0JDQotCY0KbQkAor0KLQkNCa0JDQpyDQmtCQ0KLQmNCm0JAKK9Ci0JDQmtCQ0Kcg0JvQkNCU0JjQodCb0JDQkgor0KLQkNCa0JDQpyDQm9CQ0IjQntCoCivQotCQ0JrQkNCnINCb0JDQodCb0J4KK9Ci0JDQmtCQ0Kcg0JzQkNCT0JTQkAor0KLQkNCa0JDQpyDQnNCQ0KLQkAor0KLQkNCa0JDQpyDQnNCY0KXQkNCI0JvQngor0KLQkNCa0JDQpyDQnNCY0JvQkNCdCivQotCQ0JrQkNCnINCc0JjQoNCa0J4KK9Ci0JDQmtCQ0Kcg0KDQntCW0JAKK9Ci0JDQmtCQ0Kcg0KHQldCd0JAKK9Ci0JDQmtCQ0Kcg0KHQntCk0JjQiNCQCivQotCQ0JrQkNCnINCh0J7QpNCY0IjQkAor0KLQkNCa0JDQpyDQodCi0JXQktCQ0J0KK9Ci0JDQmtCQ0Kcg0KLQmNCR0J7QoAor0KLQkNCa0JDQpyDQotCY0JHQntCgCivQotCQ0JrQkNCnINCS0JjQndCa0J4KK9Ci0JDQmtCQ0Kcg0JLQm9CQ0JTQmNCc0JjQoAor0KLQkNCa0JDQpyDQktCb0JDQlNCY0JzQmNCgCivQotCQ0JrQkNCnINCX0J7Qm9Ci0JDQnQor0KLQkNCa0JDQp9CYINCQ0KDQn9CQ0JQg0JTQmNCf0Jsg0J7QldCmCivQotCQ0JrQkNCn0Jgg0JDQoNCf0JDQlCDQlNCgCivQotCQ0JrQkNCn0Jgg0JPQkNCR0J7QoAor0KLQkNCa0J4g0JfQktCe0J3QmNCc0JjQoAor0KLQkNCa0J7QktCQ0KYg0KDQkNCU0JjQodCQ0JIKK9Ci0JDQmtCe0JLQodCa0Jgg0JHQm9CQ0JPQntCI0JUKK9Ci0JDQmtCe0JLQodCa0Jgg0IjQntCS0JDQndCa0JAKK9Ci0JDQm9CV0KHQmtCYINCJ0KPQkdCY0KbQkAor0KLQkNCb0JXQodCa0Jgg0KDQmNCh0KLQkAor0KLQkNCb0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0JDQm9CY0Isg0JzQmNCi0JDQoAor0KLQkNCb0JjQiNCQ0J0g0KDQntCW0JAKK9Ci0JDQm9CeINCo0JDQndCU0J7QoAor0KLQkNCb0J4g0JbQmNCS0JrQkAor0KLQkNCb0J4g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JDQm9CeINCR0KDQmNCT0JjQotCQCivQotCQ0JvQniDQpNCg0JDQitCQCivQotCQ0JvQniDQiNCV0JvQldCd0JAKK9Ci0JDQm9CeINCI0JXQm9CY0KHQkNCS0JXQotCQCivQotCQ0JvQniDQiNCe0JbQldCkCivQotCQ0JvQniDQiNCe0KHQmNCfCivQotCQ0JvQniDQiNCe0JLQkNCdCivQotCQ0JvQniDQotCV0KDQldCX0JAKK9Ci0JDQm9Ce0KjQmCDQgtCe0KDQgtCVCivQotCQ0JvQntCo0Jgg0JjQoNCV0J3QkAor0KLQkNCb0J7QqNCYINCa0JDQoNCe0IkKK9Ci0JDQm9Ce0JLQmNCLINCR0JXQpdCj0JTQmNCdCivQotCQ0JvQntCS0JjQiyDQpdCQ0IjQoNCY0IjQkAor0KLQkNCb0J7QktCY0Isg0KHQkNCU0JjQmgor0KLQkNCc0JDQqCDQgtCV0KDQggor0KLQkNCc0JDQqCDQgtCj0KDQkAor0KLQkNCc0JDQqCDQmNCg0JjQndCV0IgKK9Ci0JDQnNCQ0Kgt0IjQntCo0JDQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9Ci0JDQnNCQ0Kgg0InQo9CR0J7QnNCY0KAKK9Ci0JDQnNCQ0Kgg0JzQkNCg0JjQiNCQCivQotCQ0JzQkNCoINCc0JjQpdCQ0IjQm9CeCivQotCQ0JzQkNCoINCf0JDQktCb0JUKK9Ci0JDQnNCQ0Kgg0JLQm9CQ0JTQmNCc0JjQoAor0KLQkNCc0JDQqCDQktCb0JDQlNCY0JzQmNCgCivQotCQ0JzQkNCo0Jgg0JDQk9Ce0KjQotCe0J0KK9Ci0JDQnNCQ0KjQmCDQkNCb0JDQlNCQ0KAKK9Ci0JDQnNCQ0KjQmCDQotCY0JHQntCgCivQotCQ0JzQkNCo0JrQntCS0JjQiyDQl9Ce0JvQotCQ0J0KK9Ci0JDQnNCR0KPQoNCQ0KjQldCSINCS0KPQmtCQ0KjQmNCdCivQotCQ0JzQkdCj0KDQmtCe0JLQodCa0Jgg0JTQoNCQ0JPQkNCdCivQotCQ0JzQmNCd0I/QmNCLINCn0JXQlNCe0JzQmNCgCivQotCQ0JzQmNCd0I/QmNCLINCQ0J3QgtCV0JvQmtCeCivQotCQ0JzQmNCd0I/QmNCLINCa0J7QktCY0J3QmtCQCivQotCQ0JzQmNCd0I/QmNCLINCg0JjQodCi0JAKK9Ci0JDQnNCY0J3Qj9CY0IjQkCDQlNCQ0J3QmNCb0J4KK9Ci0JDQnNCY0J3Qj9CY0IjQkCDQnNCY0JvQntCg0JDQlAor0KLQkNCc0JjQndCP0JjQiNCQINCc0JjQoNCa0J4KK9Ci0JDQnNCY0J3Qj9CY0IjQkCDQktCb0JDQlNCeCivQotCQ0J3Qp9CY0Jog0KjQkNCd0JTQntCgCivQotCQ0J3Qp9CY0Jog0JDQm9CR0JXQoNCiCivQotCQ0J3Qp9CY0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JDQndCn0JjQmiDQldCc0JjQmwor0KLQkNCd0KfQmNCaINCY0JHQntCJ0JAKK9Ci0JDQndCn0JjQmiDQoNCe0JfQkAor0KLQkNCd0JDQptCa0J7QkiDQndCe0JLQkNCaCivQotCQ0J3QkNCm0JrQntCS0JjQiyDQkNCm0J4KK9Ci0JDQndCQ0KbQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQotCQ0J3QkNCh0JjQiyDQiNCe0JLQkNCdCivQotCQ0J3QkNCh0JjQiyDQntCb0JjQktCV0KDQkAor0KLQkNCd0JDQodCY0Isg0J/QoNCV0JTQoNCQ0JMKK9Ci0JDQndCQ0KHQmNCLINCg0KPQltCQCivQotCQ0J3QkNCh0JjQiyDQodCf0JDQodCe0IjQlQor0KLQkNCd0JDQodCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0KLQkNCd0JDQodCY0Isg0JLQkNCb0JXQoNCY0IjQkAor0KLQkNCd0JDQodCY0IjQldCS0JjQiyDQltCQ0KDQmtCeCivQotCQ0J3QkNCh0JjQiNCV0JLQmNCLLdCk0JjQm9CY0J/QntCSINCY0JLQkNCd0JrQkAor0KLQkNCd0JDQodCY0IjQldCS0JjQiyDQnNCY0JvQkNCdCivQotCQ0J3QkNCh0JjQiNCV0JLQmNCLINCh0JjQndCY0KjQkAor0KLQkNCd0JDQodCY0IjQmNCdINCb0KPQmtCQCivQotCQ0J3QkNCh0JjQiNCY0J0g0J/QldCi0JDQoAor0KLQkNCd0JDQodCY0IjQmNCdINCS0JXQoNCQCivQotCQ0J3QkNCh0JjQnSDQlNCQ0J3QmNCh0JvQkNCS0JAKK9Ci0JDQndCQ0KHQmNCdINCI0J7QktCQ0J0KK9Ci0JDQndCQ0KHQmNCdINCJ0KPQkdCY0KbQkAor0KLQkNCd0JDQodCY0J0g0J3QldCh0KLQntCgCivQotCQ0J3QkNCh0JjQnSDQodCi0JXQktCQ0J0KK9Ci0JDQndCQ0KHQmNCdINCh0KLQldCS0JDQnQor0KLQkNCd0JDQodCY0J0g0KHQotCV0JLQkNCdCivQotCQ0J3QkNCh0JjQnSDQodCi0JXQktCQ0J0KK9Ci0JDQndCQ0KHQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KLQkNCd0JDQodCa0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KLQkNCd0JDQodCa0J7QktCY0Isg0JPQmNCd0JAKK9Ci0JDQndCQ0KHQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQotCQ0J3QkNCh0JrQntCS0JjQiyDQk9Ce0KHQn9CQ0JLQkAor0KLQkNCd0JDQodCa0J7QktCY0Isg0JvQkNCX0JDQoAor0KLQkNCd0JDQodCa0J7QktCY0Isg0JzQmNCb0JUKK9Ci0JDQndCQ0KHQmtCe0JLQmNCLINCd0J7QktCQ0JoKK9Ci0JDQndCQ0KHQmtCe0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0KLQkNCd0JDQodCa0J7QktCY0Isg0JLQmNCi0JrQngor0KLQkNCd0JDQodCa0J7QktCY0Isg0JLQmNCi0J7QnNCY0KAKK9Ci0JDQndCQ0KHQmtCe0JLQmNCLINCS0KPQmtCQ0J0KK9Ci0JDQndCU0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0KLQkNCd0JXQkiDQotCg0JDQiNCa0J4KK9Ci0JDQndCT0Jsg0JjQktCQ0J0KK9Ci0JDQndCT0Jsg0J7Qm9CT0JAKK9Ci0JDQitCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ci0JDQitCV0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQotCQ0IrQk9CQINCT0J7QoNCQ0J0KK9Ci0JDQitCT0JAg0InQo9CR0J7QnNCY0KAKK9Ci0JDQitCT0JAg0JzQkNCg0JjQiNCQCivQotCQ0IrQk9CQINCg0JDQiNCa0J4KK9Ci0JDQitCT0JAg0KLQkNCd0JUKK9Ci0JDQndCa0JAg0JjQqNCi0JLQkNCdCivQotCQ0J3QmtCe0KHQmNCLINCR0J7Qk9CU0JDQnQor0KLQkNCd0JrQntCh0JjQiyDQkdCe0IjQkNCd0JAKK9Ci0JDQndCa0J7QodCY0Isg0JHQoNCQ0J3QmtCeCivQotCQ0J3QmtCe0KHQmNCLINCI0J7QktCQ0J0KK9Ci0JDQndCa0J7QodCY0Isg0JrQo9CX0JzQkNCdCivQotCQ0J3QmtCe0KHQmNCLINCc0JDQoNCa0J4KK9Ci0JDQndCa0J7QodCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ci0JDQndCa0J7QodCY0Isg0JzQmNCb0JDQnQor0KLQkNCd0JrQntCh0JjQiyDQnNCY0JvQldCd0JAKK9Ci0JDQndCa0J7QodCY0Isg0JzQmNCb0JjQptCQCivQotCQ0J3QmtCe0KHQmNCLINCc0JjQm9CY0KbQkAor0KLQkNCd0JrQntCh0JjQiyDQndCY0JrQntCb0JAKK9Ci0JDQndCa0J7QodCY0Isg0KDQkNCX0JjQiNCQCivQotCQ0J3QmtCe0KHQmNCLINCh0KLQldCS0JDQnQor0KLQkNCd0JrQntCS0JjQiyDQodCQ0JvQmtCeCivQotCQ0J3QntCS0JjQiyDQk9CQ0JLQoNCY0JvQniDQnNCgCivQotCQ0J3QntCS0JjQiyDQiNCe0JLQngor0KLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQkNCd0KLQmNCLINCh0JvQkNCS0JrQngor0KLQkNCd0KPQoNCP0JjQiyDQltCY0JLQntCI0JjQnQor0KLQkNCd0KPQoNCP0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQkNCd0KPQoNCP0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KLQkNCd0KPQoNCP0JjQiyDQk9Ce0IjQmtCeCivQotCQ0J3Qo9Cg0I/QmNCLINCI0J7QktCQ0J0KK9Ci0JDQndCj0KDQj9CY0Isg0JzQmNCb0JjQptCQCivQotCQ0J3Qo9Cg0I/QmNCLINCc0JjQoNCa0J4KK9Ci0JDQndCj0KDQj9CY0Isg0KHQoNCR0J7QnNCY0KAKK9Ci0JDQndCj0KDQj9CY0Isg0KHQotCQ0J3QmNCh0JvQkNCS0JAKK9Ci0JDQndCj0KDQj9CY0Isg0KHQktCV0KLQntCX0JDQoAor0KLQkNCd0KPQoNCP0JjQiyDQl9Ce0KDQkAor0KLQkNCf0JDQmCDQoNCj0JTQntCb0KQKK9Ci0JDQn9CQ0Igg0JPQkNCR0KDQmNCI0JXQmwor0KLQkNCf0JDQiCDQodCi0JDQnNCV0J3QmtCQCivQotCQ0J/QkNCb0JDQk9CQINCI0J7QnQor0KLQkNCf0JDQm9CQ0JPQkCDQotCe0JTQntCgCivQotCQ0J/QkNCS0JjQp9Ca0Jgg0KfQldCU0J7QnNCY0KAKK9Ci0JDQn9CQ0JLQmNCn0JrQmCDQkdCe0KDQmNCS0J7QiAor0KLQkNCf0JDQktCY0KfQmtCYINCk0JXQntCU0J7QoAor0KLQkNCf0JDQktCY0KfQmtCYINCc0JvQkNCU0JXQnQor0KLQkNCf0JDQktCY0KfQmtCYINCg0JDQlNCe0JLQkNCdCivQotCQ0J/QkNCS0JjQp9Ca0Jgg0KHQotCV0JLQkNCdCivQotCQ0J/QkNCS0JjQptCQINCn0JXQlNCe0JzQmNCgCivQotCQ0J/QkNCS0JjQptCQINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQotCQ0J/QkNCS0JjQptCQINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQotCQ0J/QkNCS0JjQptCQINCR0J7QoNCa0JAKK9Ci0JDQn9CQ0JLQmNCm0JAg0JHQoNCQ0J3QmtCQCivQotCQ0J/QkNCS0JjQptCQINCU0J7QkdCg0JjQm9CQCivQotCQ0J/QkNCS0JjQptCQINCI0JXQm9CY0KbQkAor0KLQkNCf0JDQktCY0KbQkCDQidCj0JHQntCc0JjQoAor0KLQkNCf0JDQktCY0KbQkCDQnNCY0JvQntCg0JDQlAor0KLQkNCf0JDQktCY0KbQkCDQnNCY0KLQkAor0KLQkNCf0JDQktCY0KbQkCDQoNCQ0JTQntCh0JvQkNCS0JAKK9Ci0JDQn9CQ0JLQmNCm0JAg0KDQkNCI0JrQngor0KLQkNCf0JDQktCY0KbQkCDQodCY0JzQkAor0KLQkNCf0JDQktCY0KbQkCDQodCi0JXQktCQ0J0KK9Ci0JDQn9CQ0JLQmNCm0JAg0KLQmNCl0J7QnNCY0KAKK9Ci0JDQn9CQ0JLQmNCm0JAg0JLQldCg0JjQptCQCivQotCQ0J/QkNCS0JjQptCQINCS0JXQoNCY0KbQkAor0KLQkNCg0JDQmtCn0JjQiNCQINCC0J7QoNCC0JUKK9Ci0JDQoNCQ0JrQp9CY0IjQkC3QnNCY0JvQntCS0JDQndCe0JLQmNCLINCg0JDQotCa0JAKK9Ci0JDQoNCQ0J3Qj9CQINCY0JLQkNCdCivQotCQ0KDQkNCd0I/QkCDQmNCS0JDQnQor0KLQkNCg0JDQodCV0J3QmtCeINCR0KDQkNCi0JjQodCb0JDQkiDQlNCgCivQotCQ0KDQkdCj0Jog0JzQmNCg0JrQngor0KLQkNCg0JHQo9CaINCd0JjQmtCe0JvQkAor0KLQkNCg0JXQktCh0JrQmCDQi9CQ0JzQmNCbCivQotCQ0KDQk9Cj0Kgg0JzQkNCi0JjQiNCQCivQotCQ0KDQmCDQmNCb0J7QndCQCivQotCQ0KDQiNCQ0J0g0JTQldCW0JUKK9Ci0JDQoNCI0JDQnSDQk9CQ0JHQntCgCivQotCQ0KDQiNCQ0J0g0JjQnNCg0JUKK9Ci0JDQoNCI0JDQnSDQmtCQ0KDQm9CeCivQotCQ0KDQiNCQ0J0g0KLQmNCR0J7QoAor0KLQkNCg0JrQniDQiNCQ0J3QntCoCivQotCQ0KDQm9CQ0Isg0J/QldCg0JjQptCQCivQotCQ0KDQm9CVINCY0JvQmNCI0JAKK9Ci0JDQoNCb0JUg0JjQktCQ0J0KK9Ci0JDQoNCd0J7QptCa0Jgg0JDQnNCQ0JvQmNCI0JAg0JTQoAor0KLQkNCg0J3QntCm0JrQmCDQn9CQ0JsKK9Ci0JDQodCV0JIg0JHQm9CQ0JbQngor0KLQkNCh0JXQktCh0JrQmCDQmNCb0J4KK9Ci0JDQodCV0JLQodCa0Jgg0IjQntCg0JTQkNCdCivQotCQ0KHQmNCLINCW0JDQmtCb0JjQndCQCivQotCQ0KHQmNCLINCW0JjQktCe0IjQmNCdCivQotCQ0KHQmNCLINCC0J7QoNCC0JUKK9Ci0JDQodCY0Isg0JDQndCC0JXQm9CY0IjQkAor0KLQkNCh0JjQiyDQkNCd0JAKK9Ci0JDQodCY0Isg0JHQm9CQ0JPQntCI0JUg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Ci0JDQodCY0Isg0JHQm9CQ0JPQntCI0JUKK9Ci0JDQodCY0Isg0JHQntCW0JjQlNCQ0KAg0JzQoCDQn9ClCivQotCQ0KHQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0JDQodCY0Isg0JHQntCg0JjQktCe0IjQlQor0KLQkNCh0JjQiyDQkdCe0KDQmNCS0J7QiNCVCivQotCQ0KHQmNCLINCU0JXQodCQ0J3QmtCQCivQotCQ0KHQmNCLINCU0J7QkdCg0JjQktCe0IgKK9Ci0JDQodCY0Isg0JjQktCQ0J0KK9Ci0JDQodCY0Isg0InQo9CR0J7QlNCg0JDQkyDQlNCY0J/QmyDQmNCd0JMKK9Ci0JDQodCY0Isg0JzQmNCb0J7QqCDQlNCgINCb0JXQmtCQ0KAKK9Ci0JDQodCY0Isg0JzQmNCb0J7QqCDQlNCgCivQotCQ0KHQmNCLINCc0JjQm9Ce0Kgg0JTQoAor0KLQkNCh0JjQiyDQnNCY0JvQntCoCivQotCQ0KHQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0JDQodCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQkNCh0JjQiyDQndCV0JLQldCd0JrQkAor0KLQkNCh0JjQiyDQoNCQ0JTQlQor0KLQkNCh0JjQiyDQodCY0J3QmNCo0JAKK9Ci0JDQodCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KLQkNCh0JjQiyDQotCg0JjQpNCj0J0KK9Ci0JDQodCY0Isg0KPQoNCe0KgKK9Ci0JDQodCY0Isg0JLQldCg0JAKK9Ci0JDQodCY0Isg0JLQm9CQ0JTQkNCd0JrQkAor0KLQkNCh0JjQiyDQl9Ce0KDQkNCdCivQotCQ0KHQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0JDQodCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQkNCh0JrQntCS0JjQiyDQn9CV0KDQkAor0KLQkNCh0J7QktCQ0KYg0JTQntCR0KDQmNCb0JAKK9Ci0JDQodCe0JLQkNCmINCc0JjQm9Ce0KDQkNCUCivQotCQ0KLQkNCYINCV0JzQmNCb0JjQiNCQCivQotCQ0KLQkNCYINCY0JLQkNCdCivQotCQ0KLQkNCYINCa0JDQoNCe0IkKK9Ci0JDQotCQ0Jgg0JzQkNCg0JPQmNCiCivQotCQ0KLQkNCYINCi0JjQkdCe0KAKK9Ci0JDQotCQ0JvQntCS0JjQiyDQltCY0JLQmtCeCivQotCQ0KLQkNCb0J7QktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0KLQkNCi0JDQm9Ce0JLQmNCLINCU0KDQkNCT0JDQnQor0KLQkNCi0JDQm9Ce0JLQmNCLINCY0JvQmNCI0JAKK9Ci0JDQotCQ0JvQntCS0JjQiyDQmNCb0JjQiNCQCivQotCQ0KLQkNCb0J7QktCY0Isg0JvQkNCX0J4KK9Ci0JDQotCQ0JvQntCS0JjQiyDQnNCY0JvQkNCdCivQotCQ0KLQkNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQkNCi0JDQm9Ce0JLQmNCLINCf0JXQotCQ0KAKK9Ci0JDQotCQ0JvQntCS0JjQiyDQn9CV0KLQkNCgCivQotCQ0KLQkNCb0J7QktCY0Isg0J/QldCi0JDQoAor0KLQkNCi0JDQoCDQlNCj0KjQkNCdCivQotCQ0KLQkNCgINCU0KPQqNCQ0J0KK9Ci0JDQotCQ0KDQldCS0JjQiyDQkdCb0JDQltCQCivQotCQ0KLQkNCg0JjQnSDQoNCj0JbQmNCm0JAKK9Ci0JDQotCQ0KDQodCa0Jgg0JTQo9Co0JDQnQor0KLQkNCi0JDQoNCh0JrQmCDQnNCY0JvQntCg0JDQlAor0KLQkNCi0JDQoNCh0JrQmCDQndCQ0JTQkAor0KLQkNCi0JDQoNCh0JrQmCDQodCS0JXQotCY0KHQm9CQ0JIKK9Ci0JDQotCQ0KDQodCa0Jgg0JLQm9CQ0JTQldCi0JAKK9Ci0JDQotCY0Isg0JbQkNCg0JrQngor0KLQkNCi0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQotCQ0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCQ0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCQ0KLQmNCLINCQ0J3QmtCY0KbQkAor0KLQkNCi0JjQiyDQkdCg0JDQndCa0J4KK9Ci0JDQotCY0Isg0JTQkNCd0JAKK9Ci0JDQotCY0Isg0JTQoNCQ0JPQkNCdCivQotCQ0KLQmNCLINCU0KDQkNCT0J7QqAor0KLQkNCi0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQotCQ0KLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9Ci0JDQotCY0Isg0JTQo9Co0JDQnQor0KLQkNCi0JjQiyDQldCc0JjQmyDQlNCgCivQotCQ0KLQmNCLINCV0JLQmNCm0JAKK9Ci0JDQotCY0Isg0JjQm9CY0IjQkAor0KLQkNCi0JjQiyDQmNCb0JjQiNCQCivQotCQ0KLQmNCLINCY0JvQntCd0JrQkAor0KLQkNCi0JjQiyDQiNCV0JvQldCd0JAKK9Ci0JDQotCY0Isg0IjQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ci0JDQotCY0Isg0IjQntCS0JDQnQor0KLQkNCi0JjQiyDQm9CQ0JfQkNCgCivQotCQ0KLQmNCLINCc0JDQoNCQCivQotCQ0KLQmNCLINCc0JDQoNCY0IjQkAor0KLQkNCi0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0JDQotCY0Isg0JzQmNCb0JDQnQor0KLQkNCi0JjQiyDQnNCY0JvQkNCdCivQotCQ0KLQmNCLINCc0JjQm9CY0JLQntCICivQotCQ0KLQmNCLINCc0JjQm9Ca0JAKK9Ci0JDQotCY0Isg0JzQmNCb0J7QqAor0KLQkNCi0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQkNCi0JjQiyDQnNCY0JvQntCh0JDQkgor0KLQkNCi0JjQiyDQnNCY0JvQo9Ci0JjQnSDQlNCY0J/QmyDQmNCd0JMKK9Ci0JDQotCY0Isg0J3QldCU0JXQidCa0J4KK9Ci0JDQotCY0Isg0J/QkNCI0JAKK9Ci0JDQotCY0Isg0J/QldCg0KHQmNCU0JAKK9Ci0JDQotCY0Isg0J/QldCi0JDQoAor0KLQkNCi0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KLQkNCi0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQotCQ0KLQmNCLINCh0JvQkNCS0JrQngor0KLQkNCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCQ0KLQmNCLINCh0KDQkdCY0KHQm9CQ0JIKK9Ci0JDQotCY0Isg0KHQotCV0JLQkNCdCivQotCQ0KLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ci0JDQotCY0Isg0JfQm9CQ0KLQmNCm0JAKK9Ci0JDQotCe0JzQmNCgINCc0JDQoNCa0J4KK9Ci0JDQotCe0JzQmNCg0J7QkiDQiNCe0JLQkNCdCivQotCQ0KLQntCc0JjQoNCe0JIg0JzQkNCg0JjQiNCQCivQotCQ0KLQntCc0JjQoNCe0JIg0JzQkNCg0JjQiNCQCivQotCQ0KLQntCc0JjQoNCe0JIg0KDQkNCU0JjQktCe0IgKK9Ci0JDQotCe0JzQmNCg0J7QkiDQl9Ce0KDQkNCdCivQotCQ0KLQntCc0JjQoNCe0JLQmNCLINCR0KDQkNCd0JrQkAor0KLQkNCj0KjQkNCdINCc0JDQoNCa0J4KK9Ci0JDQo9Co0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9Ci0JDQo9Co0JDQndCe0JLQmNCLINCg0JDQlNCVCivQotCQ0KPQkdCd0JXQoCDQmtCQ0KLQmNCm0JAKK9Ci0JXQqNCQ0J3QntCSINCc0JjQm9CQ0J0KK9Ci0JXQqNCQ0J3QntCS0JjQiyDQp9CV0JTQngor0KLQldCo0JDQndCe0JLQmNCLINCW0JXQidCa0J4KK9Ci0JXQqNCQ0J3QntCS0JjQiyDQgtCe0JrQngor0KLQldCo0JDQndCe0JLQmNCLINCm0JLQmNCI0JXQotCQCivQotCV0KjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQotCV0KjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQotCV0KjQkNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0KLQldCo0JDQndCe0JLQmNCLINCI0JXQm9CQCivQotCV0KjQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0KLQldCo0JDQndCe0JLQmNCLINCd0JXQndCQ0JQKK9Ci0JXQqNCQ0J3QntCS0JjQiyDQndCV0JLQldCd0JrQkAor0KLQldCo0JDQndCe0JLQmNCLINCf0JXQotCQ0KAKK9Ci0JXQqNCQ0J3QntCS0JjQiyDQoNCQ0KjQmtCeCivQotCV0KjQkNCd0J7QktCY0Isg0KDQkNCI0JrQngor0KLQldCo0JDQndCe0JLQmNCLINCi0J7QnNCQCivQotCV0KjQkNCd0J7QktCY0Isg0JLQntCI0JAKK9Ci0JXQqNCQ0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQotCV0KjQldCK0Jgg0JXQlNCj0JDQoNCUCivQotCV0KjQmNCLINCC0J7QoNCC0JUKK9Ci0JXQqNCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JXQqNCY0Isg0JTQkNCg0JjQndCa0JAKK9Ci0JXQqNCY0Isg0JTQoNCQ0JPQkNCdCivQotCV0KjQmNCLINCU0KPQqNCQ0J0KK9Ci0JXQqNCY0Isg0JXQoNCW0JXQkdCV0KIKK9Ci0JXQqNCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0KLQldCo0JjQiyDQmNCb0JjQiNCQCivQotCV0KjQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9Ci0JXQqNCY0Isg0InQo9CR0J7QnNCY0KAKK9Ci0JXQqNCY0Isg0JvQo9Ca0JAKK9Ci0JXQqNCY0Isg0JzQkNCg0JjQiNCQCivQotCV0KjQmNCLINCc0JjQm9CV0J3QmtCeCivQotCV0KjQmNCLINCc0JjQm9CVCivQotCV0KjQmNCLINCc0JjQm9CVCivQotCV0KjQmNCLINCc0JjQm9CY0KbQkAor0KLQldCo0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQldCo0JjQiyDQnNCY0KDQmtCeCivQotCV0KjQmNCLINCf0JXQoNCh0JAKK9Ci0JXQqNCY0Isg0KDQkNCU0JjQodCb0JDQkgor0KLQldCo0JjQiyDQodCb0JDQktCa0JAKK9Ci0JXQqNCY0Isg0KHQm9CQ0JLQntCJ0KPQkSDQlNCY0J/QmyDQmNCd0JMKK9Ci0JXQqNCY0Isg0KHQntCk0JjQiNCQCivQotCV0KjQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQotCV0KjQmNCLINCh0KLQldCS0JDQnSDQlNCgCivQotCV0KjQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ci0JXQqNCY0Isg0JfQlNCg0JDQktCa0J4KK9Ci0JXQqNCY0J0g0IjQkNCh0JzQmNCd0JrQkAor0KLQldCo0JjQnSDQidCj0JHQmNCd0JrQkAor0KLQldCo0JjQnSDQnNCY0JvQntCoCivQotCV0KjQmNCdINCh0KLQldCS0JrQkAor0KLQldCo0JjQnSDQktCV0KHQndCQCivQotCV0KjQntCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KLQldCo0J7QktCY0Isg0InQo9CR0J4KK9Ci0JXQqNCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQotCV0KjQntCS0JjQiyDQnNCY0JvQntCc0JjQoAor0KLQldCo0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ci0JXQqNCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ci0JXQltCb0JAg0JDQndCU0KDQmNCI0JAKK9Ci0JXQlNCY0Isg0JbQmNCS0JrQngor0KLQldCU0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ci0JXQlNCY0Isg0JzQmNCb0J7QktCQ0J0KK9Ci0JXQlNCY0Isg0J3QldCS0JXQndCa0JAKK9Ci0JXQk9CV0JvQotCY0IjQkCDQkdCe0JPQlNCQ0J0KK9Ci0JXQk9CV0JvQotCY0IjQkCDQlNCj0KjQkNCdCivQotCV0JPQldCb0KLQmNCI0JAg0JTQo9Co0JDQnQor0KLQldCT0JXQm9Ci0JjQiNCQINCY0JvQntCd0JrQkAor0KLQldCT0JXQm9Ci0JjQiNCQINCc0JDQk9CU0JDQm9CV0J3QkAor0KLQldCT0JXQm9Ci0JjQiNCQINCc0JjQm9CQ0J0KK9Ci0JXQk9CV0JvQotCY0IjQkCDQnNCY0KLQoNCQCivQotCV0JPQldCb0KLQmNCI0JAg0KHQotCQ0J3QmtCeCivQotCV0JPQldCb0KLQmNCI0JAg0JLQm9CQ0IjQmtCeCivQotCV0JPQm9CQ0Kgg0JDQndCQCivQotCV0JPQm9CQ0Kgg0JvQmNCU0JjQiNCQCivQotCV0JPQm9CQ0Kgg0J3QkNCU0JAKK9Ci0JXQk9Cb0JDQqNCYINCY0KjQotCS0JDQnQor0KLQldCT0JvQkNCo0Jgg0IjQntCW0JXQpAor0KLQldCI0JjQiyDQkdCg0JDQndCa0J4KK9Ci0JXQiNCY0Ist0JrQntCS0JDQpyDQnNCQ0KDQmNCI0JAKK9Ci0JXQiNCY0Isg0JvQkNCX0JDQoAor0KLQldCI0JjQiyDQnNCY0JvQmNCI0JAKK9Ci0JXQmtCY0Isg0JHQntCg0J4KK9Ci0JXQmtCY0Isg0JzQmNCb0JDQnQor0KLQldCa0JjQiyDQnNCY0JvQmtCQCivQotCV0JrQmNCLINCc0JjQntCU0KDQkNCTCivQotCV0JrQmNCLINCc0JjQoNCa0J4KK9Ci0JXQmtCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ci0JXQmtCY0Isg0KHQm9CQ0JLQmtCeCivQotCV0Jsg0KTQldCg0JXQndCmCivQotCV0Jsg0IjQkNCd0J7QqAor0KLQldCbINCI0JXQm9CY0KHQkNCS0JXQotCQCivQotCV0Jsg0IjQldCd0JUKK9Ci0JXQmyDQn9CV0KLQkNCgCivQotCV0Jsg0JLQmNCb0JzQntCoCivQotCV0JvQkNCg0J7QkiDQkNCd0JrQkAor0KLQldCb0JDQoNCe0JIg0IjQntCS0JDQnQor0KLQldCb0JDQoNCe0JIg0JzQmNCb0J7QqAor0KLQldCb0JDQoNCe0JIg0J3QkNCU0JAKK9Ci0JXQm9CQ0KDQntCSINCf0JXQoNCQCivQotCV0JvQkNCg0J7QkiDQodCY0JzQkAor0KLQldCb0JDQoNCe0JIg0KHQmNCd0JjQqNCQCivQotCV0JvQkNCg0J7QkiDQodCY0J3QmNCo0JAKK9Ci0JXQm9CQ0KDQntCSINCh0JzQmNCJ0JDQndCQCivQotCV0JvQkNCg0J7QkiDQktCe0IjQmNCdCivQotCV0JvQkNCg0J7QkiDQl9Ce0KDQkAor0KLQldCb0JDQoNCe0JLQmNCLINCR0J7QoNCY0KEKK9Ci0JXQm9CQ0KDQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ci0JXQm9CQ0KDQntCS0JjQiyDQmNCS0JDQndCQCivQotCV0JvQkNCg0J7QktCY0Isg0JjQktCQ0J0KK9Ci0JXQm9CQ0KDQntCS0JjQiyDQoNCQ0KLQntCc0JjQoAor0KLQldCb0JDQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0JXQm9CQ0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ci0JXQm9CQ0KDQntCS0JjQiyDQodCi0IjQldCf0JDQnQor0KLQldCb0JXQmtCYINCo0JDQndCU0J7QoAor0KLQldCb0JXQmtCYINCV0KDQmNCa0JAKK9Ci0JXQm9CV0JrQmCDQodCi0JXQktCQ0J0KK9Ci0JXQm9CV0JrQmCDQktCV0KDQkAor0KLQldCc0JXQoNCY0J3QkNCmINCU0JDQoNCQCivQotCV0JzQldCg0JjQndCQ0KYg0JzQmNCb0JXQktCQCivQotCV0JzQldCg0JjQndCQ0KYg0JzQmNCe0JTQoNCQ0JMKK9Ci0JXQnNCV0KDQmNCd0KHQmtCYINCI0JXQm9CY0KbQkAor0KLQldCc0JXQoNCY0J3QodCa0Jgg0IjQntCS0JDQnQor0KLQldCc0JXQoNCY0J3QodCa0Jgg0J3QkNCU0JAKK9Ci0JXQnNCj0J3QntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0JXQndCm0JUg0JDQm9CR0JjQnQor0KLQldCK0Jgg0ILQntCg0ILQlQor0KLQldCK0Jgg0IjQntCh0JjQnwor0KLQldCK0Jgg0IjQntCh0JjQnwor0KLQldCK0Jgg0IjQntCh0JjQnwor0KLQldCK0Jgg0JrQodCV0J3QmNCI0JAKK9Ci0JXQitCYINCc0JDQoNCY0IjQkAor0KLQldCK0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQotCV0IrQntCS0JjQiyDQnNCY0JvQntCoCivQotCV0IrQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQotCV0J7QlNCe0KDQntCS0JjQiyDQkNCd0JTQoNCV0IjQkAor0KLQldCe0JTQntCg0J7QktCY0Isg0JTQntCR0KDQmNCb0JAKK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCI0J7QktCQ0J0KK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCJ0KPQkdCeCivQotCV0J7QlNCe0KDQntCS0JjQiyDQnNCQ0KDQkAor0KLQldCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQldCe0JTQntCg0J7QktCY0Isg0J3QkNCU0JAKK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCf0JDQiNCQCivQotCV0J7QlNCe0KDQntCS0JjQiyDQn9CV0KDQkAor0KLQldCe0JTQntCg0J7QktCY0Isg0J/QldCg0JAKK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCg0JDQotCY0JzQmNCgCivQotCV0J7QlNCe0KDQntCS0JjQiyDQodCQ0JLQkAor0KLQldCe0JTQntCg0J7QktCY0Isg0KHQmNCc0JAKK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0JXQntCU0J7QoNCe0JLQmNCLINCS0JjQotCe0JzQmNCgCivQotCV0J7QlNCe0KDQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIg0JTQmNCf0Jsg0JjQndCTCivQotCV0J7QlNCe0KDQntCS0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JLQkAor0KLQldCe0JTQntCh0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KLQldCe0JTQntCh0JjQiNCV0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KLQldCe0JTQntCh0JjQiNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0KLQldCe0JTQntCh0JjQiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9Ci0JXQntCk0JDQndCe0JIg0ILQo9Cg0ILQmNCm0JAKK9Ci0JXQntCk0JDQndCe0JIg0JHQntCo0JrQngor0KLQldCe0KTQkNCd0J7QkiDQlNCe0JHQoNCY0J3QmtCQCivQotCV0J7QpNCQ0J3QntCSINCU0KPQqNCQ0J0KK9Ci0JXQntCk0JDQndCe0JIg0JTQo9Co0JrQngor0KLQldCe0KTQkNCd0J7QkiDQnNCQ0KDQmNCd0JrQngor0KLQldCe0KTQkNCd0J7QkiDQnNCY0JvQkNCdCivQotCV0J7QpNCQ0J3QntCSINCc0JjQm9CY0JLQntCICivQotCV0J7QpNCQ0J3QntCSINCc0JjQm9Ce0KgKK9Ci0JXQntCk0JDQndCe0JIg0JzQmNCb0J7QqAor0KLQldCe0KTQkNCd0J7QkiDQntCb0JjQktCV0KDQkAor0KLQldCe0KTQkNCd0J7QkiDQl9Ce0KDQkAor0KLQldCe0KTQkNCd0J7QktCY0Isg0KjQotCV0KTQkNCd0JjQiNCQCivQotCV0J7QpNCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQldCe0KTQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JXQntCk0JDQndCe0JLQmNCLINCQ0J3QkAor0KLQldCe0KTQkNCd0J7QktCY0Isg0JDQoNCQ0J3QgtCV0JsKK9Ci0JXQntCk0JDQndCe0JLQmNCLINCR0J7Qk9CU0JDQnQor0KLQldCe0KTQkNCd0J7QktCY0Isg0JHQntCT0JTQkNCdCivQotCV0J7QpNCQ0J3QntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Ci0JXQntCk0JDQndCe0JLQmNCLINCU0J7QndCa0JAKK9Ci0JXQntCk0JDQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0JXQntCk0JDQndCe0JLQmNCLINCc0JDQoNCa0J4g0JTQoCDQktCV0KLQldCg0JjQndCVCivQotCV0J7QpNCQ0J3QntCS0JjQiyDQnNCY0JvQldCS0JAKK9Ci0JXQntCk0JDQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0KLQldCe0KTQkNCd0J7QktCY0Isg0KLQkNCU0JjQiNCQCivQotCV0J7QpNCY0JvQntCS0JjQiyDQgtCj0KDQgtCY0KbQkAor0KLQldCe0KTQmNCb0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JXQntCk0JjQm9Ce0JLQmNCLINCR0KDQkNCd0JrQkAor0KLQldCe0KTQmNCb0J7QktCY0Isg0JPQntCg0JDQnQor0KLQldCe0KTQmNCb0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ci0JXQntCk0JjQm9Ce0JLQmNCLINCh0JDQktCeCivQotCV0J7QktCQ0J3QntCS0JjQiyDQndCV0JLQldCd0JrQkAor0KLQldCf0KjQkCDQndCV0JHQntCI0KjQkAor0KLQldCf0KjQkCDQodCY0J3QmNCo0JAKK9Ci0JXQn9Co0JjQiyDQiNCe0JLQmNCm0JAKK9Ci0JXQn9Co0JjQiyDQnNCY0J7QlNCg0JDQkwor0KLQldCf0KjQmNCLINCg0JDQlNCVCivQotCV0J/QkNCn0JXQktCY0Isg0JDQndCU0KDQldCI0JAKK9Ci0JXQn9CQ0JLQp9CV0JLQmNCLINCW0JDQndCa0JAKK9Ci0JXQn9CQ0JLQp9CV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQotCV0J/QkNCS0KfQldCS0JjQiyDQk9Ce0IjQmtCeCivQotCV0J/QkNCS0KfQldCS0JjQiyDQnNCY0JvQntCS0JDQnQor0KLQldCf0JDQktCn0JXQktCY0Isg0J/QldCi0JDQoCDQlNCgCivQotCV0J/QkNCS0KfQldCS0JjQiyDQoNCQ0KLQmtCeCivQotCV0J/QkNCS0KfQldCS0JjQiyDQodCi0KDQkNCl0JjQitCQCivQotCV0J/QmNCLINCk0KDQkNCd0KbQmNCa0JAKK9Ci0JXQn9CY0Isg0JPQntCg0JDQnQor0KLQldCf0JjQiyDQiNCe0JLQkNCdCivQotCV0J/QmNCLINCc0JjQm9CQ0J0KK9Ci0JXQn9CY0Isg0JzQmNCb0J7QqAor0KLQldCf0JjQiyDQnNCY0JvQntCS0JDQnQor0KLQldCf0JjQiyDQndCV0JTQldCJ0JrQngor0KLQldCf0JjQiyDQntCR0KDQldCd0JrQngor0KLQldCf0JjQiyDQoNCQ0JTQntCS0JDQnQor0KLQldCf0JjQiyDQoNCQ0IjQmtCeCivQotCV0J/QmNCLINCh0J3QldCW0JDQndCQCivQotCV0J/QmNCLINCS0JjQlNCQCivQotCV0J/QmNCLINCX0J7QoNCQ0J0KK9Ci0JXQoNCV0KfQldCaINCQ0J3QgtCV0JvQmtCQCivQotCV0KDQldCn0JjQiyDQm9CQ0IjQntCoCivQotCV0KDQldCn0JjQmiDQn9CQ0JsKK9Ci0JXQoNCV0KbQmtCYINCY0KjQotCS0JDQnQor0KLQldCg0JXQmiDQgtCj0JvQkAor0KLQldCg0JXQmiDQkNCd0JTQoNCY0IjQkAor0KLQldCg0JXQmiDQpNCV0KDQldCd0KYKK9Ci0JXQoNCV0Jog0JjQqNCi0JLQkNCdCivQotCV0KDQldCaINCY0JzQoNCVINCU0JjQn9CbINCY0J3Qkwor0KLQldCg0JXQmiDQmNCg0JXQndCQCivQotCV0KDQldCaINCI0JDQndCe0KgKK9Ci0JXQoNCV0Jog0JrQkNCi0JDQm9CY0J0KK9Ci0JXQoNCV0Jog0JvQkNCh0JvQngor0KLQldCg0JXQmiDQidCj0JTQldCS0JjQoiDQlNCgINCY0J3Qkwor0KLQldCg0JXQmiDQntCb0JPQkAor0KLQldCg0JXQmiDQotCY0JHQntCgCivQotCV0KDQldCX0JjQiNCQINCR0J7QodCY0InQmtCQCivQotCV0KDQpdCV0Kgg0KjQkNCd0JTQntCgCivQotCV0KDQiNCV0Jog0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JXQoNCI0JXQmi3QmtCe0JLQkNCnINCa0JDQoNCb0J4KK9Ci0JXQoNCI0JXQmiDQnNCY0KXQkNCI0JvQngor0KLQldCg0IjQldCaINCS0JjQmtCi0J7QoNCY0IjQkAor0KLQldCg0JrQldCJINCQ0J3QkAor0KLQldCg0InQo9CaINCY0JLQkNCdCivQotCV0KDQndCe0JLQkNCmINCY0KjQotCS0JDQnQor0KLQldCg0JfQmNCLINCW0JjQktCa0J4KK9Ci0JXQoNCX0JjQiyDQgtCe0KDQgtCVCivQotCV0KDQl9CY0Isg0ILQo9Cg0J4KK9Ci0JXQoNCX0JjQiyDQkdCV0JvQkAor0KLQldCg0JfQmNCLINCR0JjQodCV0KDQmtCQCivQotCV0KDQl9CY0Isg0JHQntCT0J7QidCj0JEKK9Ci0JXQoNCX0JjQiyDQkdCg0JDQndCa0JAKK9Ci0JXQoNCX0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0JXQoNCX0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQotCV0KDQl9CY0Isg0JTQo9Co0JDQnQor0KLQldCg0JfQmNCLINCU0KPQqNCQ0J0KK9Ci0JXQoNCX0JjQiyDQpNCg0JDQndCm0JAKK9Ci0JXQoNCX0JjQiyDQiNCV0JLQoNCV0JwKK9Ci0JXQoNCX0JjQiyDQiNCe0JLQkNCdCivQotCV0KDQl9CY0Isg0JzQmNCb0JDQnQor0KLQldCg0JfQmNCLINCc0JjQm9CQ0J0KK9Ci0JXQoNCX0JjQiyDQnNCY0JvQldCd0JAKK9Ci0JXQoNCX0JjQiyDQnNCY0JvQldCd0JrQngor0KLQldCg0JfQmNCLINCc0JjQm9CY0KbQkAor0KLQldCg0JfQmNCLINCc0JjQntCU0KDQkNCTCivQotCV0KDQl9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ci0JXQoNCX0JjQiyDQndCY0JrQntCb0JAKK9Ci0JXQoNCX0JjQiyDQitCV0JPQntCh0JDQktCQCivQotCV0KDQl9CY0Isg0J/QkNCS0JvQlQor0KLQldCg0JfQmNCLINCf0JXQoNCa0JAKK9Ci0JXQoNCX0JjQiyDQn9CV0KLQkNCgINCU0KAKK9Ci0JXQoNCX0JjQiyDQn9CV0KLQkNCgCivQotCV0KDQl9CY0Isg0J/QldCi0JDQoAor0KLQldCg0JfQmNCLINCg0JXQidCQCivQotCV0KDQl9CY0Isg0KHQkNCS0JAKK9Ci0JXQoNCX0JjQiyDQodCb0JDQktCa0J4KK9Ci0JXQoNCX0JjQiyDQodCb0JDQktCa0J4KK9Ci0JXQoNCX0JjQiyDQodCb0JDQktCd0JAKK9Ci0JXQoNCX0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCV0KDQl9CY0Isg0KHQoNCR0JjQodCb0JDQkgor0KLQldCg0JfQmNCLINCh0KLQkNCd0JrQkAor0KLQldCg0JfQmNCLINCi0JXQntCU0J7QoAor0KLQldCg0JfQmNCLINCi0JXQoNCV0JfQkAor0KLQldCg0JfQmNCLINCi0KDQmNCk0KPQnQor0KLQldCg0JfQmNCLINCS0JXQoNCQCivQotCV0KDQl9CY0Isg0JLQm9CQ0JTQkNCdCivQotCV0KDQl9CY0Isg0JLQntCI0JjQodCb0JDQkgor0KLQldCg0JfQmNCI0JAg0JzQmNCi0JDQoAor0KLQldCg0JfQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0KLQldCg0JfQmNCdINCR0KDQkNCd0JrQngor0KLQldCg0JfQmNCdINCU0KDQkNCT0J7QodCb0JDQkgor0KLQldCg0JfQmNCdINCU0KPQqNCQ0J0KK9Ci0JXQoNCX0JjQnSDQiNCe0JLQkNCd0JrQkAor0KLQldCg0JfQmNCdINCI0J7QktCQ0J3QmtCQCivQotCV0KDQl9CY0J0g0InQo9CR0JjQptCQCivQotCV0KDQl9CY0J0g0JzQmNCb0JDQnQor0KLQldCg0JfQmNCdINCc0JjQm9CY0J3QkAor0KLQldCg0JfQmNCdINCc0JjQoNCI0JDQndCQCivQotCV0KDQl9CY0J0g0JzQmNCg0J7QodCb0JDQktCQCivQotCV0KDQl9CY0J0g0JzQmNCg0J7QodCb0JDQktCQCivQotCV0KDQl9CY0J0g0JzQmNCi0JAKK9Ci0JXQoNCX0JjQnSDQndCV0JLQldCd0JrQkAor0KLQldCg0JfQmNCdINCg0JDQlNCY0JLQntCICivQotCV0KDQl9CY0J0g0KDQkNCU0JzQmNCb0JAKK9Ci0JXQoNCX0JjQnSDQoNCY0KHQotCQCivQotCV0KDQl9CY0J0g0KHQm9Ce0JHQntCU0JDQnQor0KLQldCg0JfQmNCdINCh0KLQkNCd0JrQngor0KLQldCg0JfQmNCdINCi0J7QqNCQCivQotCV0KDQl9CY0J0g0JLQkNCh0JAKK9Ci0JXQoNCX0JjQnSDQktCV0JvQmNCc0JjQoAor0KLQldCg0JfQmNCdINCS0JXQidCa0J4KK9Ci0JXQoNCX0JjQnSDQktCV0KDQmNCm0JAKK9Ci0JXQoNCX0JjQnSDQktCV0KHQldCb0JjQnQor0KLQldCg0JfQmNCdINCS0J7QiNCY0KHQm9CQ0JIKK9Ci0JXQodCb0JAg0KjQn9CY0KDQngor0KLQldCh0JvQkCDQkdCg0JDQndCa0J4KK9Ci0JXQodCb0JAg0JTQoNCQ0JPQkNCdCivQotCV0KHQm9CQINCc0JjQoNCQCivQotCV0KHQm9CY0Isg0ILQntCg0ILQlQor0KLQldCh0JvQmNCLINCc0JDQmtCh0JjQnAor0KLQldCh0JvQmNCLINCc0JDQoNCa0J4KK9Ci0JXQodCb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQotCV0KHQotCY0J0g0JzQkNCg0JjQiNCQCivQotCY0KjQkNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9Ci0JjQqNCY0Isg0JzQmNCb0JXQndCQCivQotCY0KjQnNCQINCn0JXQlNCe0JzQmNCgCivQotCY0KjQnNCQINCW0JXQidCa0J4KK9Ci0JjQqNCc0JAg0ILQo9Cg0JjQptCQCivQotCY0KjQnNCQINCQ0J3QlNCg0JXQiAor0KLQmNCo0JzQkCDQkdCg0JDQndCa0J4KK9Ci0JjQqNCc0JAg0JTQo9Co0JDQnQor0KLQmNCo0JzQkCDQlNCj0KjQkNCdCivQotCY0KjQnNCQINCY0JvQmNCI0JAKK9Ci0JjQqNCc0JAg0IjQntCS0JDQnQor0KLQmNCo0JzQkCDQm9CQ0JfQkNCgCivQotCY0KjQnNCQINCJ0JjQidCQ0J3QkAor0KLQmNCo0JzQkCDQnNCQ0KDQmNCI0JAKK9Ci0JjQqNCc0JAg0JzQkNCg0KLQkAor0KLQmNCo0JzQkC3QnNCY0JvQntCo0JXQktCh0JrQmCDQndCQ0KLQkNCo0JAKK9Ci0JjQqNCc0JAg0JzQmNCb0J7QqAor0KLQmNCo0JzQkCDQnNCY0KDQmtCeCivQotCY0KjQnNCQINCc0J7QnNCY0KAKK9Ci0JjQqNCc0JAg0J3QmNCa0J7Qm9CQCivQotCY0KjQnNCQINCh0JjQndCY0KjQkAor0KLQmNCo0JzQkCDQodCc0JjQidCQCivQotCY0KjQnNCQINCh0KLQldCS0JDQnQor0KLQmNCo0JzQkCDQodCS0JXQotCe0JfQkNCgCivQotCY0KjQnNCQINCS0J7QiNCY0J3QmtCQCivQotCY0KjQnNCQINCS0J7QiNCY0J0KK9Ci0JjQqNCc0JAg0JfQntCg0JDQnQor0KLQmNCR0JDQmCDQmNCo0KLQktCQ0J0KK9Ci0JjQpiDQkNCd0JDQnNCQ0KDQmNCI0JAKK9Ci0JjQptCQINCR0J7QltCeCivQotCY0KbQkCDQptCS0JXQotCQCivQotCY0KbQkCDQlNCc0JjQotCQ0KAKK9Ci0JjQptCQINCU0KDQkNCT0JDQnQor0KLQmNCm0JAg0IjQntCS0JDQnQor0KLQmNCm0JAg0JzQmNCb0J7QqAor0KLQmNCm0JAg0J3QldCU0JXQidCa0J4KK9Ci0JjQk9CQ0Iog0JDQndCi0JUKK9Ci0JjQpdCYINCI0J7QodCY0J8KK9Ci0JjQpdCe0JzQmNCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQmNCl0J7QnNCY0KDQntCS0JjQiyDQktCV0InQmtCeCivQotCY0KXQktCY0J3QodCa0Jgg0JLQm9CQ0JTQkNCdCivQotCY0KXQktCY0J3QodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoCDQlNCY0J/QmyDQmNCd0JMKK9Ci0JjQiNCQ0J3QmNCLINCc0JjQm9Ce0KgKK9Ci0JjQiNCQ0J3QmNCLINCh0JzQmNCJ0JAKK9Ci0JjQiNCQ0J3QmNCLINCX0J7QoNCQ0J0KK9Ci0JjQmtCS0JXQqNCQINCd0JDQmNCb0JAKK9Ci0JjQmtCS0JjQiyDQkdCe0KjQmtCeCivQotCY0JrQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQmNCa0JLQmNCm0JrQmCDQpdCg0JLQntCI0JUKK9Ci0JjQmtCS0JjQptCa0Jgg0JzQkNCg0JjQiNCQ0J3QkAor0KLQmNCbINCV0JTQktCY0J0g0JTQoAor0KLQmNCc0JDQoNCQ0KYg0JHQoNCQ0J3QmtCeCivQotCY0JzQkNCg0JDQpiDQodCi0J7QiNCQ0J0KK9Ci0JjQnNCQ0KDQntCSINCC0J7QoNCC0JUKK9Ci0JjQnNCQ0KDQntCSINCh0KLQldCS0JDQnQor0KLQmNCc0JDQoNCe0JIg0JLQkNCh0JAKK9Ci0JjQnNCQ0KDQntCSINCS0JXQoNCQCivQotCY0JzQmNCb0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ci0JjQnNCa0J4g0JjQoNCY0J3QldCICivQotCY0JzQmtCeINCJ0KPQkdCe0JIKK9Ci0JjQnNCa0J4g0JzQldCb0JDQndCY0IjQkAor0KLQmNCc0JrQniDQndCV0KHQotCe0KAKK9Ci0JjQnNCa0J4g0JLQldCg0JAKK9Ci0JjQnNCa0J4g0JLQm9CQ0JTQmNCc0JjQoAor0KLQmNCc0J7QotCY0Isg0ILQntCg0ILQlQor0KLQmNCc0J7QotCY0Isg0KHQotCQ0J3QkAor0KLQmNCc0J7QotCY0Isg0KPQoNCe0KgKK9Ci0JjQnNCe0KLQmNCI0JXQktCY0Isg0JDQndCY0KbQkAor0KLQmNCc0J7QotCY0IjQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KLQmNCc0J7QotCY0IjQldCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ci0JjQnNCe0KLQmNCI0JXQktCY0Isg0IjQldCS0KDQldCcCivQotCY0JzQntCi0JjQiNCV0JLQmNCLLdCa0J7Qn9Cg0JjQktCY0KbQkCDQnNCQ0IjQkAor0KLQmNCc0J7QotCY0IjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCY0JzQntCi0JjQiNCV0JLQmNCLINCe0JvQk9CQCivQotCY0JzQntCi0JjQiNCV0JLQmNCLINCf0JvQldCc0JXQndCa0JAKK9Ci0JjQnNCe0KLQmNCI0JXQktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KLQmNCd0JrQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQotCY0J3QotCV0KAg0KXQldCU0JLQmNCT0JAKK9Ci0JjQndCi0J7QoCDQgtCj0KDQkAor0KLQmNCd0KLQntCgINCU0KPQqNCQ0J0KK9Ci0JjQndCi0J7QoCDQnNCQ0KDQmtCeCivQotCY0J3QotCe0KAg0JzQmNCb0JrQkAor0KLQmNCd0KLQntCgINCc0JjQntCU0KDQkNCTCivQotCY0J3QotCe0KAg0JzQmNCg0JAKK9Ci0JjQndCi0J7QoC3QoNCQ0JTQntCc0JjQoCDQodCi0J7QiNCQCivQotCY0J3QotCe0KAg0KHQotCV0JLQkNCdCivQotCY0J3Qo9ChINCR0JXQoNCd0JDQlNCV0KLQkAor0KLQmNCd0KPQoSDQnNCQ0KDQotCQCivQotCY0J7QlNCe0KDQntCS0JjQiyDQidCY0InQkNCd0JAKK9Ci0JjQntCU0J7QoNCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQotCY0J/QqNCY0J0g0JHQntCg0JjQodCb0JDQkgor0KLQmNCf0KPQoNCQINCI0J7QodCY0J8KK9Ci0JjQn9Cj0KDQkCDQiNCe0KHQmNCfCivQotCY0J/Qo9Cg0JAg0JvQkNCU0JjQodCb0JDQkgor0KLQmNCf0KPQoNCQINCb0JDQodCb0J4KK9Ci0JjQoCDQmNCo0KLQktCQ0J0KK9Ci0JjQoCDQnNCY0JvQmtCQCivQotCY0KAg0J/QldCi0JDQoAor0KLQmNCg0Jgg0JDQndCi0JDQmwor0KLQmNCg0JjQndCU0JAg0ILQo9Cg0JAKK9Ci0JjQoNCY0J3Qk9CV0KAg0JXQm9CX0JAKK9Ci0JjQoNCa0JDQiNCb0JAg0JDQndCQCivQotCY0KDQmtCQ0IjQm9CQINCh0JvQkNCS0J7QnNCY0KAKK9Ci0JjQoNCd0JDQndCY0Isg0JHQmNCh0JXQoNCa0JAKK9Ci0JjQodCY0J3QntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KLQmNCh0KLQkCDQldCg0JbQldCR0JXQogor0KLQmNCh0KLQkCDQiNCQ0J3QntCoCivQotCY0KLQldCb0JDQpiDQgtCe0KDQgtCVCivQotCY0KLQldCb0JDQpiDQgtCe0KDQgtCVCivQotCY0KLQldCb0JDQpiDQiNCV0JvQldCd0JAKK9Ci0JjQotCV0JvQkNCmINCI0J7QktCQ0J0KK9Ci0JjQotCV0JvQkNCmINCc0JjQm9CY0J3QmtCQCivQotCY0KLQldCb0JDQpiDQndCQ0JTQkAor0KLQmNCi0JXQm9CQ0KYg0KHQotCV0JLQkNCdCivQotCY0KLQldCb0JDQpiDQl9Ce0KDQmNCm0JAKK9Ci0JjQotCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0JjQotCe0JIg0JDQndCQCivQotCY0KLQntCSINCQ0J3QmNCm0JAKK9Ci0JjQotCe0JIg0JXQktCT0JXQndCY0IjQlQor0KLQmNCi0J7QkiDQn9CQ0JLQm9CVCivQotCY0KLQntCSINCi0J7QnNCY0KHQm9CQ0JIKK9Ci0JrQkNCb0KfQldCmINCI0J7QktCQ0J0KK9Ci0JrQkNCb0JXQpiDQn9CQ0JLQkNCeCivQotCe0KjQmNCLINCW0JDQoNCa0J4KK9Ci0J7QqNCY0Isg0JHQntCg0JjQodCb0JDQktCQCivQotCe0KjQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0J7QqNCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQotCe0KjQmNCLINCR0KDQkNCi0JjQodCb0JDQkgor0KLQntCo0JjQiyDQlNCQ0J3QmNCm0JAKK9Ci0J7QqNCY0Isg0JTQoNCQ0JPQkNCdCivQotCe0KjQmNCLINCU0KDQkNCT0JDQnQor0KLQntCo0JjQiyDQlNCj0KjQkNCdCivQotCe0KjQmNCLINCU0KPQqNCQ0J0KK9Ci0J7QqNCY0Isg0JTQo9Co0JDQnQor0KLQntCo0JjQiyDQldCg0JbQldCR0JXQogor0KLQntCo0JjQiyDQldCS0JjQptCQCivQotCe0KjQmNCLINCT0J7QiNCa0J4KK9Ci0J7QqNCY0Isg0IjQldCb0JAKK9Ci0J7QqNCY0Isg0IjQntCS0JDQnQor0KLQntCo0JjQiyDQiNCe0JLQmNCm0JAKK9Ci0J7QqNCY0Isg0JrQoNCh0KLQkNCdCivQotCe0KjQmNCLINCa0KDQodCi0J7QnNCY0KAKK9Ci0J7QqNCY0Isg0InQo9CR0JjQptCQCivQotCe0KjQmNCLINCJ0KPQkdCY0J3QmtCeCivQotCe0KjQmNCLINCc0JjQpdCQ0IjQm9CeCivQotCe0KjQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QqNCY0Isg0JzQmNCb0JDQnQor0KLQntCo0JjQiyDQnNCY0JvQkNCdCivQotCe0KjQmNCLINCc0JjQm9CV0JLQkAor0KLQntCo0JjQiyDQnNCY0JvQlQor0KLQntCo0JjQiyDQnNCY0JvQntCoCivQotCe0KjQmNCLINCc0JjQm9Ce0KDQkNCUCivQotCe0KjQmNCLINCc0JjQm9Cj0KLQmNCdCivQotCe0KjQmNCLINCc0JjQntCU0KDQkNCTCivQotCe0KjQmNCLINCc0JjQoNCa0J4KK9Ci0J7QqNCY0Isg0JzQmNCi0JDQoAor0KLQntCo0JjQiyDQndCV0JTQldCJ0JrQngor0KLQntCo0JjQiyDQndCV0JLQldCd0JrQkAor0KLQntCo0JjQiyDQndCY0JrQntCb0JAKK9Ci0J7QqNCY0Isg0J3QmNCa0J4KK9Ci0J7QqNCY0Isg0J3QntCS0JDQmgor0KLQntCo0JjQiyDQntCR0KDQkNCUCivQotCe0KjQmNCLINCe0KHQotCe0IjQkAor0KLQntCo0JjQiyDQn9CV0KDQngor0KLQntCo0JjQiyDQn9CV0KLQkNCgCivQotCe0KjQmNCLINCg0JDQlNCVCivQotCe0KjQmNCLINCg0JDQlNCe0JzQmNCgCivQotCe0KjQmNCLINCg0JDQlNCe0JzQmNCgCivQotCe0KjQmNCLINCg0JDQotCa0J4KK9Ci0J7QqNCY0Isg0KHQkNCS0JAKK9Ci0J7QqNCY0Isg0KHQm9CQ0JLQmtCQCivQotCe0KjQmNCLINCh0J7QpNCY0IjQkAor0KLQntCo0JjQiyDQodCi0JDQndCY0JzQmNCgCivQotCe0KjQmNCLINCh0KLQldCS0JDQnQor0KLQntCo0JjQiyDQodCi0JXQktCQ0J0KK9Ci0J7QqNCY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQotCe0KjQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ci0J7QqNCY0Isg0JLQldCb0JjQkdCe0KAKK9Ci0J7QqNCY0Isg0JLQldCg0JAKK9Ci0J7QqNCY0Isg0JLQmNCUCivQotCe0KjQmNCLINCS0JvQkNCU0J4KK9Ci0J7QqNCY0Isg0JLQm9CQ0KHQotCY0JzQmNCgCivQotCe0KjQmNCLINCS0J7QiNCY0J0KK9Ci0J7QqNCY0J3QntCS0JjQiyDQm9Cj0JrQkAor0KLQntCo0JrQntCSINCl0KDQkNCd0JjQodCb0JDQkgor0KLQntCo0JrQntCSINCf0JXQoNCQCivQotCe0KjQmtCe0JLQmNCLINCS0KPQp9CV0KLQkAor0KLQntCo0JrQntCS0JjQiyDQktCj0KfQmNCLCivQotCe0KjQmtCe0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQotCe0KjQntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0KLQntCo0J7QktCY0Isg0JzQmNCb0J7QiNCVCivQotCe0ILQldCgINCa0J7QodCi0JAKK9Ci0J7QkdCP0JjQiy3QkdCg0JDQqNCQ0J3QkNCmINCc0JjQoNCe0KHQm9CQ0JLQkAor0KLQntCR0I/QmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Ci0J7QkdCP0JjQiyDQnNCY0JvQldCd0JrQngor0KLQntCR0I/QmNCLINCh0KLQldCS0JDQnQor0KLQntCR0Jgg0JzQkNCg0JjQiNCQCivQotCe0JHQmCDQnNCY0KDQntCh0JvQkNCSCivQotCe0JHQmNCQ0Kgg0JLQmNCb0JzQntCoCivQotCe0JHQntCb0JrQkCDQkNCd0JAKK9Ci0J7QkdCe0JvQmtCQINCU0JDQndCY0JXQmwor0KLQntCR0J7Qm9Ca0JAg0JXQoNCY0JrQkAor0KLQntCR0J7Qm9Ca0JAg0JjQqNCi0JLQkNCdCivQotCe0JHQntCb0JrQkCDQmNCb0J7QndCQCivQotCe0JTQmNCLINCR0J7Qk9CU0JDQnQor0KLQntCU0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQotCe0JTQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0J7QlNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCe0JTQmNCLINCU0JDQndCY0IjQldCb0JAKK9Ci0J7QlNCY0Isg0JPQntCI0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Ci0J7QlNCY0Isg0JzQkNCg0JjQiNCQ0J3QkAor0KLQntCU0JjQiyDQnNCY0JvQkNCd0JrQngor0KLQntCU0JjQiyDQnNCY0JvQkNCdCivQotCe0JTQmNCLINCc0JjQm9CVCivQotCe0JTQmNCLINCc0JjQm9Ce0Kgg0JTQmNCf0Jsg0JjQndCTCivQotCe0JTQmNCLINCc0JjQm9Ce0KgKK9Ci0J7QlNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQntCU0JjQiyDQndCV0ILQngor0KLQntCU0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KLQntCU0JjQiyDQoNCQ0IjQmtCeCivQotCe0JTQmNCLINCg0JDQotCe0JzQmNCgCivQotCe0JTQmNCLINCh0KLQkNCd0JjQodCQ0JLQkAor0KLQntCU0JjQiyDQodCi0JDQndCa0J4KK9Ci0J7QlNCY0Isg0KLQntCc0JjQodCb0JDQkgor0KLQntCU0JjQiyDQktCV0JvQmNCc0JjQoAor0KLQntCU0JjQiyDQktCb0JDQlNCeCivQotCe0JTQntCo0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ci0J7QlNCe0KjQmtCe0JLQmNCLINCd0JDQlNCQCivQotCe0JTQntCo0JrQntCS0JjQiyDQndCV0JzQkNCK0JAKK9Ci0J7QlNCe0KDQp9CV0JLQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ci0J7QlNCe0KDQp9CV0JLQmNCLINCe0KHQotCe0IjQkAor0KLQntCU0J7QoNCn0JXQktCY0Isg0J/QldCg0J4KK9Ci0J7QlNCe0KDQp9CV0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ci0J7QlNCe0KDQp9CV0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ci0J7QlNCe0KDQp9CV0JLQmNCLINCS0JDQodCeCivQotCe0JTQntCg0KfQldCS0JjQiyDQktCe0IjQmNCdCivQotCe0JTQntCg0JDQnSDQotCg0JDQiNCQ0J0KK9Ci0J7QlNCe0KDQmNCLINCn0JXQlNCe0JzQmNCgCivQotCe0JTQntCg0JjQiyDQkdCg0JDQndCa0J4KK9Ci0J7QlNCe0KDQmNCLINCU0KDQkNCT0JDQnQor0KLQntCU0J7QoNCY0Isg0JPQntCI0JrQngor0KLQntCU0J7QoNCY0Isg0JjQm9CY0IjQkAor0KLQntCU0J7QoNCY0Isg0IjQldCb0JXQndCQCivQotCe0JTQntCg0JjQiyDQiNCe0JLQkNCd0JrQkAor0KLQntCU0J7QoNCY0Isg0IjQntCS0JDQnQor0KLQntCU0J7QoNCY0Isg0InQo9CR0JAKK9Ci0J7QlNCe0KDQmNCLINCJ0KPQkdCY0JLQntCI0JUKK9Ci0J7QlNCe0KDQmNCLINCc0JDQoNCY0IjQkAor0KLQntCU0J7QoNCY0Isg0JzQmNCb0J7QqAor0KLQntCU0J7QoNCY0Isg0JzQmNCb0J7QqAor0KLQntCU0J7QoNCY0Isg0J3QldCU0JXQidCa0J4KK9Ci0J7QlNCe0KDQmNCLINCd0JjQmtCe0JvQkAor0KLQntCU0J7QoNCY0Isg0J3QmNCa0J4KK9Ci0J7QlNCe0KDQmNCLINCg0JDQlNCc0JjQm9CQCivQotCe0JTQntCg0JjQiyDQodCV0JvQmNCc0JjQoAor0KLQntCU0J7QoNCY0Isg0KLQoNCY0JLQo9Cd0JAKK9Ci0J7QlNCe0KDQntCSINCC0KPQoNCQCivQotCe0JTQntCg0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCU0J7QoNCe0JIg0JHQmNCh0JXQoNCa0JAKK9Ci0J7QlNCe0KDQntCSINCU0JXQodCQ0J3QmtCQCivQotCe0JTQntCg0J7QkiDQk9Cb0JjQqNCQCivQotCe0JTQntCg0J7QkiDQmNCS0JDQnQor0KLQntCU0J7QoNCe0JIt0IjQkNCo0JDQoNCV0JLQmNCLINCU0JDQndCY0KbQkAor0KLQntCU0J7QoNCe0JIg0JzQmNCb0JjQktCe0IgKK9Ci0J7QlNCe0KDQntCSINCc0JjQm9Ce0KgKK9Ci0J7QlNCe0KDQntCSINCd0JXQlNCV0InQmtCeCivQotCe0JTQntCg0J7QkiDQntCR0KDQldCd0JrQkAor0KLQntCU0J7QoNCe0JIg0KDQkNCU0J7QktCQ0J0KK9Ci0J7QlNCe0KDQntCSINCg0J7QkdCV0KDQogor0KLQntCU0J7QoNCe0JIg0KHQkNCS0JAKK9Ci0J7QlNCe0KDQntCSINCh0JvQntCR0J7QlNCQ0J0KK9Ci0J7QlNCe0KDQntCSINCh0J/QmNCg0J4g0JTQoAor0KLQntCU0J7QoNCe0JIg0KLQntCc0JjQodCb0JDQkgor0KLQntCU0J7QoNCe0JLQmNCLINCn0JXQlNCeCivQotCe0JTQntCg0J7QktCY0Isg0JbQkNCg0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCW0JDQoNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0KLQntCU0J7QoNCe0JLQmNCLINCW0JjQktCe0KLQkAor0KLQntCU0J7QoNCe0JLQmNCLINCW0JjQktCe0KLQkAor0KLQntCU0J7QoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQotCe0JTQntCg0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCU0J7QoNCe0JLQmNCLINCQ0J3QgtCV0JvQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JDQndCQCivQotCe0JTQntCg0J7QktCY0Isg0JDQndCa0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQkNCd0KLQo9CdCivQotCe0JTQntCg0J7QktCY0Isg0JHQntCo0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCR0J7QqNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0JHQntCg0JjQktCe0IjQlQor0KLQntCU0J7QoNCe0JLQmNCLINCR0J7QodCQCivQotCe0JTQntCg0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQotCe0JTQntCg0J7QktCY0Isg0KbQktCV0KLQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0KbQktCY0IjQldCi0JjQnQor0KLQntCU0J7QoNCe0JLQmNCLINCm0JLQmNCI0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCQ0J3QmNCb0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCe0JHQoNCe0KHQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0JTQntCR0KDQntCh0JDQkgor0KLQntCU0J7QoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQotCe0JTQntCg0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0KLQntCU0J7QoNCe0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JTQo9Co0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQlNCj0KjQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JTQo9Co0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCT0J7QiNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQk9Ce0IjQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0KLQntCU0J7QoNCe0JLQmNCLINCY0JvQlQor0KLQntCU0J7QoNCe0JLQmNCLINCI0JDQodCd0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQiNCV0JvQldCd0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQiNCe0JrQkAor0KLQntCU0J7QoNCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQotCe0JTQntCg0J7QktCY0Isg0IjQntCS0JjQptCQCivQotCe0JTQntCg0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0KLQntCU0J7QoNCe0JLQmNCLINCa0J7QktCY0J3QmtCQCivQotCe0JTQntCg0J7QktCY0Isg0JvQkNCX0JDQoAor0KLQntCU0J7QoNCe0JLQmNCLINCb0JXQndCa0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0KLQntCU0J7QoNCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQotCe0JTQntCg0J7QktCY0Isg0JzQkNCg0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCQ0KDQk9CY0KLQkAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JDQoNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCQ0KDQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JzQkNCg0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQqNCeCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCL0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0IvQngor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0JvQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9CVCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCb0JrQkAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9Ce0KgKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCg0JrQniDQlNCY0J/QmyDQmNCd0JMKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0KDQmtCeINCU0KAg0JvQldCa0JDQoAor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0KDQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0JzQmNCg0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCc0JjQoNCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0JzQm9CQ0JTQldCdINCU0KAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCb0JDQlNCe0JzQmNCgCivQotCe0JTQntCg0J7QktCY0Isg0JzQntCc0KfQmNCb0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQnNCe0JzQp9CY0JvQngor0KLQntCU0J7QoNCe0JLQmNCLINCc0J7QnNCY0KDQmtCQCivQotCe0JTQntCg0J7QktCY0Isg0J3QkNCU0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQndCQ0JTQkAor0KLQntCU0J7QoNCe0JLQmNCLINCd0JjQi9CY0KTQntCgCivQotCe0JTQntCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQotCe0JTQntCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQotCe0JTQntCg0J7QktCY0Isg0J7Qm9CT0JjQptCQCivQotCe0JTQntCg0J7QktCY0Isg0J7QodCi0J7QiNCQCivQotCe0JTQntCg0J7QktCY0Isg0J/QldCi0JDQoAor0KLQntCU0J7QoNCe0JLQmNCLINCf0JXQotCQ0KAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0KjQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0KDQkNCU0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0JTQmNCo0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiCDQkNCU0JLQntCa0JDQogor0KLQntCU0J7QoNCe0JLQmNCLINCg0JDQlNCY0JLQntCI0JUKK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KLQntCU0J7QoNCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQotCe0JTQntCg0J7QktCY0Isg0KDQkNCU0J7QiNCa0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0KDQkNCI0JrQngor0KLQntCU0J7QoNCe0JLQmNCLINCg0JDQndCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQoNCQ0KLQmtCeCivQotCe0JTQntCg0J7QktCY0Isg0KDQntCh0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCQ0KjQkAor0KLQntCU0J7QoNCe0JLQmNCLINCh0JDQktCQCivQotCe0JTQntCg0J7QktCY0Isg0KHQkNCS0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCQ0JLQngor0KLQntCU0J7QoNCe0JLQmNCLINCh0JDQktCeCivQotCe0JTQntCg0J7QktCY0Isg0KHQldCd0JrQkAor0KLQntCU0J7QoNCe0JLQmNCLINCh0JjQnNCQCivQotCe0JTQntCg0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQotCe0JTQntCg0J7QktCY0Isg0KHQm9CQ0JLQlQor0KLQntCU0J7QoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0KHQnNCY0InQmtCQCivQotCe0JTQntCg0J7QktCY0Isg0KHQndCV0JbQkNCd0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCe0KTQmNCI0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCg0JXQlNCe0IjQlQor0KLQntCU0J7QoNCe0JLQmNCLINCh0KDQldCi0JXQnQor0KLQntCU0J7QoNCe0JLQmNCLINCh0KLQkNCd0JjQnNCY0KAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCi0JDQndCa0J4KK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQodCi0JXQktCQCivQotCe0JTQntCg0J7QktCY0Isg0KLQntCU0JUKK9Ci0J7QlNCe0KDQntCS0JjQiyDQotCe0JTQlQor0KLQntCU0J7QoNCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9Ci0J7QlNCe0KDQntCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQotCe0JTQntCg0J7QktCY0Isg0JLQldCg0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQktCV0KDQkAor0KLQntCU0J7QoNCe0JLQmNCLINCS0JXQoNCQCivQotCe0JTQntCg0J7QktCY0Isg0JLQm9CQ0JTQldCi0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQotCe0JTQntCg0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQntCU0J7QoNCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0KLQntCU0J7QoNCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQotCe0JTQntCg0J7QktCY0Isg0JfQntCg0JDQnQor0KLQntCU0J7QoNCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ci0J7QlNCe0KDQntCS0JjQiyDQl9Ce0KDQkNCdCivQotCe0JTQntCg0J7QktCY0Isg0JfQntCg0JAKK9Ci0J7QlNCe0KDQntCS0JjQiyDQl9Ce0KDQmtCQCivQotCe0JTQntCg0J7QktCh0JrQmCDQnNCQ0J3QkNCh0JjQiNCVCivQotCe0JTQntCg0J7QktCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQotCe0JTQntCg0J7QktCh0JrQmCDQndCQ0JTQkAor0KLQntCU0J7QodCY0IjQldCS0JjQiyDQgtCe0KDQgtCVCivQotCe0JTQntCh0JjQiNCV0JLQmNCLINCU0KDQkNCT0J7QidCj0JEKK9Ci0J7QlNCe0KHQmNCI0JXQktCY0Isg0JzQmNCb0JDQnQor0KLQntCU0J7QodCY0IjQldCS0JjQiyDQl9Cb0JDQotCa0J4g0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Ci0J7QpNCY0Jsg0KHQntCk0JjQiNCQCivQotCe0KXQntCJINCI0J7QktCeCivQotCe0KXQntCJ0JXQktCY0Isg0JHQntCo0JrQngor0KLQntCl0J7QidCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQotCe0IjQkNCT0JAg0JzQmNCb0JDQnQor0KLQntCI0JDQk9CQINCc0JjQm9Ce0KgKK9Ci0J7QiNCQ0JPQkCDQodCS0JXQotCe0JfQkNCgCivQotCe0IjQkNCT0JjQiyDQgtCe0KDQgtCVCivQotCe0IjQkNCT0JjQiyDQkdCe0JbQmNCU0JDQoAor0KLQntCI0JDQk9CY0Isg0JTQkNCd0JUKK9Ci0J7QiNCQ0JPQmNCLINCU0JDQndCY0JvQngor0KLQntCI0JDQk9CY0Isg0JTQo9Co0JDQnQor0KLQntCI0JDQk9CY0Isg0IjQldCb0JAKK9Ci0J7QiNCQ0JPQmNCLINCb0KPQlNCc0JjQm9CQCivQotCe0IjQkNCT0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KLQntCI0JDQk9CY0Isg0J3QmNCa0J7Qm9CQCivQotCe0IjQkNCT0JjQiyDQndCY0JrQntCb0JAKK9Ci0J7QiNCQ0JPQmNCLINCg0JDQlNCe0JLQkNCdCivQotCe0IjQkNCT0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCe0IjQl9CQ0J0g0JjQm9Ce0J3QkAor0KLQntCa0JDQoCDQiNCj0JvQmNCI0JAKK9Ci0J7QmtCY0Isg0JrQntCh0JDQoNCQCivQotCe0JrQmNCLINCc0JjQpdCQ0IjQm9CeCivQotCe0JrQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QmtCY0Isg0KHQkNCS0JAKK9Ci0J7QmtCY0Isg0KHQkNCS0JAKK9Ci0J7QmtCY0Isg0KHQkNCS0JAKK9Ci0J7QmtCY0J0t0ILQldCg0JjQiyDQl9CQ0JPQntCg0JrQkAor0KLQntCa0JjQnSDQgtCe0KDQgtCVCivQotCe0JrQmNCdINCQ0JvQmNCh0JAKK9Ci0J7QmtCY0J0g0JHQntCg0JAKK9Ci0J7QmtCY0J0g0JTQkNCd0JjQptCQCivQotCe0JrQmNCdINCf0KDQntCa0J7QnyDQlNCgINCb0JXQmtCQ0KAKK9Ci0J7QmtCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0KLQntCa0JjQnSDQktCV0KDQkAor0KLQntCa0JjQnSDQktCb0JDQlNCQCivQotCe0JrQntCU0Jgg0IjQkNCd0J7QqAor0KLQntCa0J7QlNCYINCI0J7Qm9CQ0J3QmtCQCivQotCe0JrQntCU0Jgg0JzQkNCg0JPQmNCi0JAKK9Ci0J7QmtCe0JLQmNCLINCI0JXQm9CY0KbQkAor0KLQntCbINCQ0J3QlNCg0JDQqAor0KLQntCbINCI0J7QltCV0KQKK9Ci0J7Qm9CU0Jgg0JXQktCQCivQotCe0JvQlNCYINCS0JjQm9Cc0J7QqAor0KLQntCb0JjQiyDQnNCY0JvQntCoCivQotCe0JvQmNCLINCS0JXQodCd0JAKK9Ci0J7Qm9CY0KbQmtCYINCX0J7QoNCQCivQotCe0JvQmNCc0JjQoCDQo9Cg0J7QqAor0KLQntCJ0JDQk9CQINCS0KPQmtCe0KHQkNCS0JAKK9Ci0J7QidCV0JLQmNCLINCR0KDQkNCd0JrQngor0KLQntCJ0JXQktCY0Isg0JTQntCR0KDQmNCh0JvQkNCSCivQotCe0InQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0KLQntCJ0JjQiyDQoNCQ0IjQmtCeCivQotCe0JvQnNCQ0Kcg0JfQntCg0JDQnQor0KLQntCb0JzQkNCn0JXQkiDQltCY0JLQkAor0KLQntCb0JzQkNCn0JXQkiDQnNCY0KDQntCh0JvQkNCSCivQotCe0JvQndCQ0Jgg0J7QotCeCivQotCe0JvQndCQ0Jgg0KDQo9CW0JAKK9Ci0J7Qm9CiINCI0J7QltCV0KQKK9Ci0J7Qm9CiINCI0J7QodCY0J8KK9Ci0J7Qm9CS0JDQiCDQkNCT0J3QldCoCivQotCe0JvQktCQ0Igg0JXQm9CV0J7QndCe0KDQkAor0KLQntCb0JLQldCiINCe0KHQmtCQ0KAKK9Ci0J7QnNCn0JDQitCYINCY0JLQkNCdCivQotCe0JzQp9CQ0IrQmCDQnNCY0KDQntCh0JvQkNCS0JAKK9Ci0J7QnNCn0JDQitCYINCh0KLQkNCd0JjQodCb0JDQktCQCivQotCe0JzQp9CV0JLQkCDQndCV0JLQldCd0JrQkCDQlNCgCivQotCe0JzQp9CV0JLQodCa0Jgg0KbQktCV0KLQkNCdCivQotCe0JzQp9CY0Isg0KfQldCU0J7QnNCY0KAKK9Ci0J7QnNCn0J7QkiDQotCe0JzQp9CeCivQotCe0JzQp9Ce0JLQkCDQkNCd0JXQotCQINCU0KAKK9Ci0J7QnNCn0J7QktCQINCQ0J3QmNCi0JAg0JTQoAor0KLQntCc0KjQmNCLINCb0JDQlNCY0KHQm9CQ0JIKK9Ci0J7QnNCQINCo0JDQndCU0J7QoAor0KLQntCc0JAg0JDQndCU0KDQmNCI0JAKK9Ci0J7QnNCQINCI0JDQndCe0KgKK9Ci0J7QnNCQINCI0JDQndCe0KgKK9Ci0J7QnNCQINCI0JDQndCe0KgKK9Ci0J7QnNCQINCI0KPQm9CY0IjQkNCd0JAKK9Ci0J7QnNCQINCb0JDQlNCY0KHQm9CQ0JIKK9Ci0J7QnNCQINCc0JDQoNCY0IjQkAor0KLQntCc0JAg0JzQmNCl0JDQiNCb0J4KK9Ci0J7QnNCQINCe0JvQk9CQCivQotCe0JzQkCDQn9CQ0JsKK9Ci0J7QnNCQINCg0J7Ql9CQ0JvQmNCI0JAKK9Ci0J7QnNCQINCh0KLQldCS0JDQnQor0KLQntCc0JDQqCDQgtCj0KDQkAor0KLQntCc0JDQqCDQiNCQ0J3QmtCeCivQotCe0JzQkNCoINCI0J7QktCQ0J0KK9Ci0J7QnNCQ0Kgg0JzQmNCb0J7QoNCQ0JQKK9Ci0J7QnNCQ0Kgg0JzQmNCb0J7QktCQ0J0KK9Ci0J7QnNCQ0Kgg0KHQotCe0IjQkNCd0JrQkAor0KLQntCc0JDQqNCV0JIg0JHQntCW0JjQlNCQ0KAKK9Ci0J7QnNCQ0KjQldCSINCa0J7QktCY0J3QmtCQCivQotCe0JzQkNCo0JXQkiDQnNCQ0KLQmNCI0JAKK9Ci0J7QnNCQ0KjQldCSINCc0JDQotCY0IjQkAor0KLQntCc0JDQqNCV0JIg0J/QldCi0JDQoAor0KLQntCc0JDQqNCV0JIg0JLQldCg0JAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQkdCb0JDQk9Ce0KLQkAor0KLQntCc0JDQqNCV0JLQmNCLINCR0J7QltCY0JTQkNCgCivQotCe0JzQkNCo0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0KLQntCc0JDQqNCV0JLQmNCLINCU0KDQkNCT0JDQndCQCivQotCe0JzQkNCo0JXQktCY0Isg0JXQktCY0KbQkAor0KLQntCc0JDQqNCV0JLQmNCLINCY0JLQkNCdCivQotCe0JzQkNCo0JXQktCY0Isg0IjQldCb0JjQptCQCivQotCe0JzQkNCo0JXQktCY0Isg0IjQntCS0JDQnQor0KLQntCc0JDQqNCV0JLQmNCLINCa0J7QodCi0JAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQidCj0JHQmNCo0JAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQidCj0JHQmNCm0JAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQm9Cj0JrQkAor0KLQntCc0JDQqNCV0JLQmNCLINCc0JDQndCe0IjQm9CVCivQotCe0JzQkNCo0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9Ci0J7QnNCQ0KjQldCS0JjQiyDQnNCY0JvQmNCS0J7QiAor0KLQntCc0JDQqNCV0JLQmNCLINCc0JjQm9Ca0JAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQntCc0JDQqNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQotCe0JzQkNCo0JXQktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQndCQ0JTQkAor0KLQntCc0JDQqNCV0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQotCe0JzQkNCo0JXQktCY0Isg0KDQkNCU0JjQktCe0IgKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KLQntCc0JDQqNCV0JLQmNCLINCg0JDQlNCe0IjQmtCQCivQotCe0JzQkNCo0JXQktCY0Isg0KHQkNCS0J4KK9Ci0J7QnNCQ0KjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCe0JzQkNCo0JXQktCY0Isg0KHQktCV0KLQntCc0JjQoAor0KLQntCc0JDQqNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0J7QnNCQ0KjQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQotCe0JzQkNCo0JjQiyDQgtCj0KDQkAor0KLQntCc0JDQqNCY0Isg0JHQldCg0KLQkAor0KLQntCc0JDQqNCY0Isg0JzQkNCg0KLQmNCdCivQotCe0JzQkNCo0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KLQntCc0JDQqNCY0Isg0KLQmNCR0J7QoAor0KLQntCc0JDQpiDQmNCS0JDQnQor0KLQntCc0JDQpiDQnNCY0KDQntCh0JvQkNCSCivQotCe0JzQkNCmINCg0KPQltCY0KbQkAor0KLQntCc0JDQnSDQlNCY0J0KK9Ci0J7QnNCQ0J0g0KTQoNCQ0IrQkAor0KLQntCc0JDQnSDQiNCe0JbQldCkCivQotCe0JzQkNCdINCb0JDQodCb0J4KK9Ci0J7QnNCQ0J0g0JzQkNCT0JTQntCb0J3QkAor0KLQntCc0JDQndCY0Isg0JTQo9Co0JDQnQor0KLQntCc0JDQndCY0Ist0JvQkNCm0JrQntCS0JjQiyDQnNCY0JvQldCd0JAKK9Ci0J7QnNCQ0J3QmNCLINCc0JjQm9CV0J3QkAor0KLQntCc0JDQndCY0Isg0JfQlNCV0J3QmtCQCivQotCe0JzQkNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCe0JzQkNCd0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQotCe0JzQkNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9Ci0J7QnNCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQotCe0JzQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0KLQntCc0JDQoSDQkNCd0JTQoNCY0IjQkAor0KLQntCc0JDQoSDQiNCe0KHQmNCfCivQotCe0JzQkNChINCg0KPQlNCe0JvQpAor0KLQntCc0JDQoSDQl9CU0KDQkNCS0JrQkAor0KLQntCc0JXQpiDQktCb0JDQlNCY0KHQm9CQ0JIKK9Ci0J7QnNCY0KfQmNCLINCQ0J3QotCVCivQotCe0JzQmNCn0JjQiyDQptCS0JjQiNCeCivQotCe0JzQmNCn0JjQiyDQiNCe0JLQngor0KLQntCc0JjQp9CY0Isg0J/QldCi0JDQoAor0KLQntCc0JjQp9CY0Isg0KHQotCe0IjQkAor0KLQntCc0JjQp9CY0Isg0KLQntCc0JjQodCb0JDQkgor0KLQntCc0JjQp9CY0J0g0JzQkNCg0JjQiNCQCivQotCe0JzQmNCLINCn0JXQlNCe0JzQmNCgINCU0JjQn9CbINCY0J3Qkwor0KLQntCc0JjQiyDQp9CV0JTQntCc0JjQoAor0KLQntCc0JjQiyDQltCV0InQmtCeCivQotCe0JzQmNCLINCW0JjQktCa0J4KK9Ci0J7QnNCY0Isg0JbQmNCS0J7QiNCY0J0KK9Ci0J7QnNCY0Isg0ILQntCg0ILQlQor0KLQntCc0JjQiyDQgtCj0KDQgtCY0KbQkAor0KLQntCc0JjQiyDQgtCj0KDQgtCY0J3QmtCQCivQotCe0JzQmNCLINCC0KPQoNCY0KbQkAor0KLQntCc0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCc0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCc0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCc0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCc0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQntCc0JjQiyDQkNCb0JXQmtCh0JAKK9Ci0J7QnNCY0Isg0JDQndCQCivQotCe0JzQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9Ci0J7QnNCY0Isg0JDQndCa0JAKK9Ci0J7QnNCY0Isg0JDQndCa0JjQptCQCivQotCe0JzQmNCLINCQ0J3QmtCY0KbQkAor0KLQntCc0JjQiyDQkNCg0JjQiNCQ0JTQndCQCivQotCe0JzQmNCLINCR0JjQidCQ0J3QkAor0KLQntCc0JjQiyDQkdCe0KjQmtCeCivQotCe0JzQmNCLINCR0J7QqNCa0J4KK9Ci0J7QnNCY0Isg0JHQntCW0JjQlNCQ0KDQmtCQCivQotCe0JzQmNCLINCR0J7Qk9CU0JDQndCa0JAKK9Ci0J7QnNCY0Isg0JHQntCI0JrQkAor0KLQntCc0JjQiyDQkdCe0KDQmNCh0JvQkNCSINCU0KAg0JjQndCTCivQotCe0JzQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0J7QnNCY0Isg0JHQntCh0JjQidCa0JAKK9Ci0J7QnNCY0Isg0JHQoNCQ0J3QmtCeCivQotCe0JzQmNCLINCU0JDQndCY0KbQkAor0KLQntCc0JjQiyDQlNCQ0J3QmNCb0J4g0JzQoAor0KLQntCc0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KLQntCc0JjQiyDQlNCV0IjQkNCdCivQotCe0JzQmNCLINCU0JXQktCQCivQotCe0JzQmNCLINCU0KDQkNCT0JDQnQor0KLQntCc0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0J7QnNCY0Isg0JTQoNCQ0JPQkNCdCivQotCe0JzQmNCLINCU0KDQkNCT0JAKK9Ci0J7QnNCY0Isg0JTQoNCQ0JPQkAor0KLQntCc0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQotCe0JzQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ci0J7QnNCY0Isg0JTQo9Co0JDQnQor0KLQntCc0JjQiyDQlNCj0KjQkNCdCivQotCe0JzQmNCLINCU0KPQqNCY0KbQkAor0KLQntCc0JjQiyDQldCS0JAKK9Ci0J7QnNCY0Isg0JXQktCQCivQotCe0JzQmNCLINCT0J7QoNCU0JDQndCQCivQotCe0JzQmNCLINCT0KDQkNCU0JjQnNCY0KAKK9Ci0J7QnNCY0Isg0JjQm9CVCivQotCe0JzQmNCLINCY0JvQlQor0KLQntCc0JjQiyDQmNCb0JjQiNCQCivQotCe0JzQmNCLINCY0JvQmNCI0JAKK9Ci0J7QnNCY0Isg0JjQm9CY0IjQkAor0KLQntCc0JjQiyDQmNCS0JDQnQor0KLQntCc0JjQiy3QmNCS0JjQp9CY0Isg0JHQmNCJ0JDQndCQCivQotCe0JzQmNCLINCI0JXQm9CV0J3QkAor0KLQntCc0JjQiyDQiNCV0JvQmNCm0JAKK9Ci0J7QnNCY0Isg0IjQntCh0JjQpAor0KLQntCc0JjQiyDQiNCe0KHQmNCfCivQotCe0JzQmNCLINCI0J7QktCQ0J3QmtCQCivQotCe0JzQmNCLINCI0J7QktCQ0J0KK9Ci0J7QnNCY0Isg0IjQntCS0JDQnQor0KLQntCc0JjQiyDQiNCe0JLQkNCdCivQotCe0JzQmNCLINCI0KPQm9CY0JDQndCQCivQotCe0JzQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9Ci0J7QnNCY0Isg0JrQntCd0KHQotCQ0J3QotCY0J0KK9Ci0J7QnNCY0Isg0JrQntCg0J3QldCb0JjQkAor0KLQntCc0JjQiyDQmtCe0KHQkAor0KLQntCc0JjQiyDQmtCg0KHQotCQCivQotCe0JzQmNCLINCb0JDQl9CQ0KAKK9Ci0J7QnNCY0Isg0JvQkNCX0JDQoAor0KLQntCc0JjQiyDQm9CV0J/QntCh0JDQktCQCivQotCe0JzQmNCLINCJ0JjQidCQ0J3QkAor0KLQntCc0JjQiyDQidCY0InQkAor0KLQntCc0JjQiyDQidCj0JHQkAor0KLQntCc0JjQiyDQidCj0JHQmNCo0JAKK9Ci0J7QnNCY0Isg0InQo9CR0JjQqNCQCivQotCe0JzQmNCLINCJ0KPQkdCY0KjQkAor0KLQntCc0JjQiyDQidCj0JHQmNCd0JrQkAor0KLQntCc0JjQiyDQidCj0JHQntCc0JjQoAor0KLQntCc0JjQiyDQidCj0JHQntCc0JjQoAor0KLQntCc0JjQiyDQnNCQ0KDQk9CY0KIKK9Ci0J7QnNCY0Isg0JzQkNCg0JjQiNCQCivQotCe0JzQmNCLINCc0JDQoNCY0IjQkAor0KLQntCc0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0J7QnNCY0Isg0JzQkNCg0JjQiNCQCivQotCe0JzQmNCLINCc0JDQoNCa0J4KK9Ci0J7QnNCY0Isg0JzQmNCI0J7QlNCg0JDQkwor0KLQntCc0JjQiyDQnNCY0JvQkNCU0JjQnQor0KLQntCc0JjQiyDQnNCY0JvQkNCdCivQotCe0JzQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QnNCY0Isg0JzQmNCb0JDQnQor0KLQntCc0JjQiyDQnNCY0JvQkNCdCivQotCe0JzQmNCLINCc0JjQm9CV0J3QmtCeCivQotCe0JzQmNCLINCc0JjQm9CV0J3QmtCeCivQotCe0JzQmNCLINCc0JjQm9CVCivQotCe0JzQmNCLINCc0JjQm9CY0JLQntCICivQotCe0JzQmNCLINCc0JjQm9Ca0JAKK9Ci0J7QnNCY0Isg0JzQmNCb0J7QqAor0KLQntCc0JjQiyDQnNCY0JvQntCoCivQotCe0JzQmNCLINCc0JjQm9Ce0JzQmNCgCivQotCe0JzQmNCLINCc0JjQm9Ce0KDQkNCUCivQotCe0JzQmNCLINCc0JjQm9Ce0KDQkNCUCivQotCe0JzQmNCLINCc0JjQm9Ce0KHQkNCSCivQotCe0JzQmNCLINCc0JjQoNCI0JDQndCQCivQotCe0JzQmNCLINCc0JjQoNCI0JDQndCQCivQotCe0JzQmNCLINCc0JjQoNCI0JDQnQor0KLQntCc0JjQiyDQnNCY0KDQmtCeCivQotCe0JzQmNCLINCc0JjQoNCa0J4KK9Ci0J7QnNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQntCc0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCe0JzQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0J7QnNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQntCc0JjQiyDQnNCY0KLQkNCgCivQotCe0JzQmNCLINCc0JvQkNCU0JXQnQor0KLQntCc0JjQiyDQnNCe0JzQp9CY0JvQngor0KLQntCc0JjQiyDQnNCe0JzQp9CY0JvQngor0KLQntCc0JjQiyDQndCQ0KLQkNCo0JAKK9Ci0J7QnNCY0Isg0J3QkNCi0JDQm9CY0IjQkAor0KLQntCc0JjQiyDQndCV0JHQntCI0KjQkAor0KLQntCc0JjQiyDQndCV0JTQldCJ0JrQkAor0KLQntCc0JjQiy3QndCV0JTQldCJ0JrQntCS0JjQiyDQlNCe0JHQoNCY0JvQkAor0KLQntCc0JjQiyDQndCV0JTQldCJ0JrQngor0KLQntCc0JjQiyDQndCV0J3QkNCUCivQotCe0JzQmNCLINCd0JXQndCQ0JQKK9Ci0J7QnNCY0Isg0J3QldCd0JDQlAor0KLQntCc0JjQiyDQndCY0JrQntCb0JAKK9Ci0J7QnNCY0Isg0J3QmNCa0J7Qm9CQCivQotCe0JzQmNCLINCd0J7QktCY0KbQkAor0KLQntCc0JjQiyDQntCb0JPQmNCm0JAg0JzQoAor0KLQntCc0JjQiyDQntCb0JjQktCV0KDQkAor0KLQntCc0JjQiyDQn9CQ0JLQm9CVINCU0KAKK9Ci0J7QnNCY0Isg0J/QldCb0JrQkAor0KLQntCc0JjQiyDQn9CV0KLQkNCgCivQotCe0JzQmNCLINCf0JXQotCa0J4KK9Ci0J7QnNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0KLQntCc0JjQiyDQoNCQ0JTQntCS0JDQnQor0KLQntCc0JjQiyDQoNCQ0JTQntCS0JDQnQor0KLQntCc0JjQiyDQoNCQ0KLQntCc0JjQoAor0KLQntCc0JjQiyDQoNCe0JfQkNCb0JjQiNCQCivQotCe0JzQmNCLINCh0JDQqNCQCivQotCe0JzQmNCLINCh0JDQktCQCivQotCe0JzQmNCLINCh0JDQktCQCivQotCe0JzQmNCLINCh0JXQm9CY0JzQmNCgCivQotCe0JzQmNCLLdCh0JjQnNCY0J0g0JzQmNCb0JrQkAor0KLQntCc0JjQiyDQodCY0J3QmNCo0JAKK9Ci0J7QnNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ci0J7QnNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9Ci0J7QnNCY0Isg0KHQm9CQ0JLQmtCeCivQotCe0JzQmNCLINCh0JvQkNCS0JrQngor0KLQntCc0JjQiyDQodCb0JDQktCa0J4KK9Ci0J7QnNCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0KLQntCc0JjQiyDQodCb0J7QkdCe0JTQkNCd0JrQkAor0KLQntCc0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCe0JzQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0J7QnNCY0Isg0KHQndCV0JbQkNCd0JAKK9Ci0J7QnNCY0Isg0KHQntCk0JjQiNCQCivQotCe0JzQmNCLINCh0KLQkNCd0JrQngor0KLQntCc0JjQiyDQodCi0JXQktCQ0J0KK9Ci0J7QnNCY0Isg0KHQotCV0JLQkNCdCivQotCe0JzQmNCLINCh0KLQldCS0JDQnQor0KLQntCc0JjQiyDQodCi0JXQktCQ0J0KK9Ci0J7QnNCY0Isg0KHQotCY0J/QkAor0KLQntCc0JjQiyDQodCi0IjQldCf0JDQnQor0KLQntCc0JjQiyDQodCS0JXQotCe0JfQkNCgCivQotCe0JzQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ci0J7QnNCY0Isg0KLQkNCi0IjQkNCd0JAKK9Ci0J7QnNCY0Isg0KLQntCU0JUKK9Ci0J7QnNCY0Isg0KLQntCU0J7QoAor0KLQntCc0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQotCe0JzQmNCLINCS0JXQidCa0J4KK9Ci0J7QnNCY0Isg0JLQldCJ0JrQngor0KLQntCc0JjQiyDQktCV0KDQkAor0KLQntCc0JjQiyDQktCV0KDQmNCm0JAKK9Ci0J7QnNCY0Isg0JLQldCh0J3QkAor0KLQntCc0JjQiyDQktCV0KHQndCQCivQotCe0JzQmNCLINCS0JXQodCd0JAKK9Ci0J7QnNCY0Isg0JLQmNCUCivQotCe0JzQmNCLINCS0JjQndCa0J4KK9Ci0J7QnNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQntCc0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQotCe0JzQmNCLINCS0JvQkNCh0KLQmNCc0JjQoAor0KLQntCc0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9Ci0J7QnNCY0Isg0JLQntCI0JjQodCb0JDQktCQCivQotCe0JzQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Ci0J7QnNCY0Isg0JfQntCg0JDQnQor0KLQntCc0JjQiyDQl9Ce0KDQmNCm0JAKK9Ci0J7QnNCY0Isg0JfQntCg0JrQkAor0KLQntCc0JjQiyDQl9Ce0KDQmtCQCivQotCe0JzQmNCLINCX0J7QoNCa0JAKK9Ci0J7QnNCY0Jog0IjQntCS0JDQnQor0KLQntCc0JjQmiDQodCe0KTQmNCI0JAKK9Ci0J7QnNCY0Jog0KHQotCV0JLQkNCdCivQotCe0JzQmNCdINCW0JjQktCQ0J0KK9Ci0J7QnNCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0J7QnNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCe0JzQmNCdINCR0KDQkNCd0JjQodCb0JDQkgor0KLQntCc0JjQnSDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ci0J7QnNCY0J0g0JTQoNCQ0JPQkNCdCivQotCe0JzQmNCdINCU0KDQkNCT0JDQnQor0KLQntCc0JjQnSDQlNCg0JDQk9CY0IrQkAor0KLQntCc0JjQnSDQlNCj0KjQkNCdCivQotCe0JzQmNCdINCT0J7QoNCU0JDQndCQCivQotCe0JzQmNCdINCJ0KPQkdCY0KbQkAor0KLQntCc0JjQnSDQidCj0JHQmNCm0JAKK9Ci0J7QnNCY0J0g0JzQkNCg0JjQiNCQCivQotCe0JzQmNCdINCc0JjQm9CQ0J0KK9Ci0J7QnNCY0J0g0JzQmNCb0KPQotCY0J0KK9Ci0J7QnNCY0J0g0JzQmNCb0KPQotCY0J0KK9Ci0J7QnNCY0J0g0JzQmNCg0J7QodCb0JDQkgor0KLQntCc0JjQnSDQnNCY0KLQkNCgCivQotCe0JzQmNCdINCg0JDQlNCe0KHQm9CQ0JIKK9Ci0J7QnNCY0J0g0KHQotCV0JLQkNCdINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQotCe0JzQmNCdINCh0KLQldCS0JDQnQor0KLQntCc0JjQnSDQodCi0JXQktCQ0J0KK9Ci0J7QnNCY0J0g0KHQotCV0JLQkNCdCivQotCe0JzQmNCdINCh0KLQldCS0JDQnQor0KLQntCc0JjQnSDQodCS0JXQotCb0JDQndCQCivQotCe0JzQmNCdINCS0JDQodCQCivQotCe0JzQmNCdINCS0JjQlNCe0KHQkNCS0JAKK9Ci0J7QnNCY0J3Qp9CY0Isg0JzQmNCb0J7QktCQ0J0KK9Ci0J7QnNCY0J3QkNCmINCS0JjQndCa0J4KK9Ci0J7QnNCa0JAg0JDQm9Cf0JDQoAor0KLQntCc0JrQkCDQmtCQ0KDQm9CeCivQotCe0JzQidCQ0J3QntCS0JjQiyDQkdCe0JPQntCh0JvQkNCSCivQotCe0JzQidCQ0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ci0J7QnNCJ0JDQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KLQntCc0InQkNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCc0J4g0IjQntCh0JjQnwor0KLQntCc0J7QkiDQkdCe0JPQlNCQ0J0KK9Ci0J7QnNCe0JIg0JzQmNCg0KfQlQor0KLQntCc0J7QkiDQodCQ0JLQkAor0KLQntCc0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQotCe0JzQntCSINCi0J7QqNCQCivQotCe0JzQntCSINCi0J7QlNCe0KAKK9Ci0J7QnNCe0JIg0JLQldCb0JjQnQor0KLQntCc0J7QkiDQktCV0JvQmNCdCivQotCe0JzQntCS0JjQiyDQkNCd0ILQkAor0KLQntCc0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAKK9Ci0J7QnNCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9Ci0J7QnNCe0JLQmNCLINCU0KDQkNCT0JjQitCQCivQotCe0JzQntCS0JjQiyDQlNCj0KjQkNCdCivQotCe0JzQntCS0JjQiyDQnNCY0KLQkNCgCivQotCe0JzQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0KLQntCc0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KLQntCc0J7QktCY0Isg0KHQotCe0IjQkNCd0JrQkAor0KLQntCc0J7QktCY0Isg0KLQntCc0J4KK9Ci0J7QnNCe0JLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9Ci0J7QnNCe0JLQmNCLINCX0J7QoNCQ0J0KK9Ci0J7QnNCe0JLQmNCLINCX0J7QoNCY0KbQkAor0KLQntCd0KfQldCSINCY0JLQkNCdCivQotCe0J3QlNCe0JvQniDQodCc0JjQidCQCivQotCe0J3QmNCLINCW0JjQmtCY0KbQkAor0KLQntCd0JjQiyDQoNCj0JbQmNCm0JAKK9Ci0J7QndCY0Isg0KHQotCe0IjQmNCc0JXQnQor0KLQntCd0JrQntCS0JjQiyDQiNCe0KbQkAor0KLQntCd0JrQntCS0JjQiyDQiNCe0KHQmNCfCivQotCe0J3QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0J7QndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCd0KLQlSDQpNCg0JjQgtCV0KgKK9Ci0J7QndCi0JjQiyDQgtCe0KDQgtCVCivQotCe0J3QotCY0Isg0JTQo9Co0JDQnQor0KLQntCf0JDQm9Ce0JIg0JTQo9Co0JDQnQor0KLQntCf0JDQm9Ce0JIg0JPQkNCS0KDQkCDQlNCY0J/QmyDQmNCd0JMKK9Ci0J7Qn9CQ0JvQntCSINCI0JXQm9CY0KbQkAor0KLQntCf0JDQm9Ce0JIg0JzQldCb0JDQndCY0IjQkAor0KLQntCf0JDQm9Ce0JIg0JzQldCb0JDQndCY0IjQkAor0KLQntCf0JDQm9Ce0JIg0JzQmNCl0JDQiNCb0J4KK9Ci0J7Qn9CQ0JvQntCSINCc0JjQm9CV0J3QkAor0KLQntCf0JDQm9Ce0JIg0JzQmNCb0J7QqAor0KLQntCf0JDQm9Ce0JIg0JzQmNCb0J7QoNCQ0JQKK9Ci0J7Qn9CQ0JvQntCSINCd0JDQlNCQCivQotCe0J/QkNCb0J7QkiDQn9CV0KLQkNCgCivQotCe0J/QkNCb0J7QkiDQodCe0KTQmNCI0JAKK9Ci0J7Qn9CQ0JvQntCSINCh0J/QkNCh0J7QiNCVCivQotCe0J/QkNCb0J7QkiDQodCi0JDQndCY0KHQm9CQ0JLQkAor0KLQntCf0JDQm9Ce0JIg0KHQotCV0JLQkNCdCivQotCe0J/QkNCb0J7QkiDQodCi0JXQktCQ0J0KK9Ci0J7Qn9CQ0JvQntCSINCh0KLQldCS0JDQnQor0KLQntCf0JDQm9Ce0JIg0KHQktCV0KLQntCX0JDQoAor0KLQntCf0JDQm9Ce0JIg0JLQkNCh0JjQm9CY0IjQlQor0KLQntCf0JDQm9Ce0JIg0JLQldCg0JAKK9Ci0J7Qn9CQ0JvQntCS0JjQiyDQkdCe0JbQngor0KLQntCf0JDQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9Ci0J7Qn9CQ0JvQntCS0JjQiyDQlNCj0JrQkNCi0JjQndCa0JAKK9Ci0J7Qn9CQ0JvQntCS0JjQiyDQldCc0JjQm9CY0IjQkAor0KLQntCf0JDQm9Ce0JLQmNCLINCI0JXQm9CV0J3QkAor0KLQntCf0JDQm9Ce0JLQmNCLINCI0KPQm9CY0IjQlQor0KLQntCf0JDQm9Ce0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQotCe0J/QkNCb0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQntCf0JDQm9Ce0JLQmNCLINCc0JjQoNCa0J4KK9Ci0J7Qn9CQ0JvQntCS0JjQiyDQndCV0JLQldCd0JrQkAor0KLQntCf0JDQm9Ce0JLQmNCLINCg0JDQlNCe0IjQmNCm0JAKK9Ci0J7Qn9CQ0JvQntCS0JjQiyDQodCi0JDQndCY0IjQkAor0KLQntCf0JDQm9Ce0JLQmNCLINCS0JvQkNCI0JrQngor0KLQntCf0JDQm9Ch0JrQmCDQlNCQ0J3QmNCb0J4KK9Ci0J7Qn9CQ0JvQodCa0Jgg0JTQo9Co0JDQndCa0JAKK9Ci0J7Qn9CQ0JvQodCa0Jgt0KTQmNCo0KLQldCoINCd0JDQlNCQCivQotCe0J/QkNCb0KHQmtCYINCc0JjQm9CV0J3QkAor0KLQntCf0JDQm9Ch0JrQmCDQl9Ce0KDQkNCdCivQotCe0J/QkNCgINCc0JDQoNCY0IjQkAor0KLQntCf0JjQiyDQp9CV0JTQngor0KLQntCf0JjQiyDQgtCj0KDQngor0KLQntCf0JjQiyDQkNCd0KLQngor0KLQntCf0JjQiyDQptCS0JjQiNCQCivQotCe0J/QmNCLINCU0JDQndCY0KbQkAor0KLQntCf0JjQiyDQlNCQ0J3QmNCm0JAKK9Ci0J7Qn9CY0Isg0JTQoNCQ0JPQkNCdCivQotCe0J/QmNCLINCU0KDQkNCT0JDQnQor0KLQntCf0JjQiyDQmNCb0JjQiNCQCivQotCe0J/QmNCLINCI0J7QktCQ0J0KK9Ci0J7Qn9CY0Isg0IjQntCS0JDQnQor0KLQntCf0JjQiyDQm9CV0J7QnQor0KLQntCf0JjQiyDQidCj0JHQngor0KLQntCf0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0J7Qn9CY0Isg0JzQmNCb0JDQlNCY0J3QmtCQCivQotCe0J/QmNCLINCc0JjQm9CQ0J0KK9Ci0J7Qn9CY0Isg0JzQmNCb0JjQktCe0IjQlQor0KLQntCf0JjQiyDQnNCY0JvQmNCS0J7QiAor0KLQntCf0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQntCf0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQntCf0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQntCf0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQntCf0JjQiyDQnNCY0JvQntCS0JDQnQor0KLQntCf0JjQiyDQnNCY0KDQmtCeCivQotCe0J/QmNCLINCc0JjQotCQ0KAKK9Ci0J7Qn9CY0Isg0J3QkNCi0JDQm9CY0IjQkAor0KLQntCf0JjQiyDQndCV0ILQngor0KLQntCf0JjQiyDQndCY0JrQngor0KLQntCf0JjQiyDQn9CV0KLQkNCgCivQotCe0J/QmNCLINCg0JDQotCa0J4KK9Ci0J7Qn9CY0Isg0KHQoNCV0KLQldCdCivQotCe0J/QmNCLINCh0KLQldCS0JDQnQor0KLQntCf0JjQiyDQotCQ0KLQiNCQ0J3QkAor0KLQntCf0JjQiyDQktCe0IjQmNCdCivQotCe0J/QmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ci0J7Qn9Ca0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0J7Qn9Ca0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0J7Qn9Cb0JDQmiDQmNCc0KDQlQor0KLQntCf0JvQmNCm0JAg0JDQkdCV0JTQmNCdCivQotCe0J/Qm9CY0KbQkCDQk9CQ0J3QmAor0KLQntCf0JvQmNCm0JAg0J3QldCC0JzQldCU0JjQnQor0KLQntCf0JvQmNCm0JAg0KDQkNCc0JDQlNCQ0J0KK9Ci0J7Qn9Cb0JjQptCQINCX0JXQi9CY0KAKK9Ci0J7Qn9Cb0JjQptCQINCX0JXQndCY0IjQkAor0KLQntCf0J4g0JDQndCi0J7QndCY0IjQkAor0KLQntCf0J4g0InQo9CR0J7QnNCY0KAKK9Ci0J7Qn9CeINCd0JXQndCQ0JQKK9Ci0J7Qn9Ce0JvQp9CV0JLQmNCLINCI0J7QktCQ0J0KK9Ci0J7Qn9Ce0JvQkNCmINCg0JDQlNCY0JLQntCIINCU0KAg0JvQldCa0JDQoAor0KLQntCf0J7Qm9CY0Isg0ILQo9Cg0JAKK9Ci0J7Qn9Ce0JvQmNCLINCU0KPQqNCQ0J0KK9Ci0J7Qn9Ce0JvQmNCLINCf0JXQiNCQCivQotCe0J/QntCJ0JDQndCY0J0g0JLQm9CQ0JTQmNCh0JvQkNCS0JAKK9Ci0J7Qn9Ce0JvQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0J7Qn9Ce0JvQntCS0JDQp9Ca0Jgg0KDQkNCU0J7QktCQ0J0KK9Ci0J7Qn9Ce0JvQntCS0JDQp9Ca0Jgg0JLQo9Ca0J7QodCQ0JLQkAor0KLQntCf0KDQldCaINCh0JjQnNCeCivQotCe0KDQgtCQ0J3QodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0J7QoNCR0JDQoNCe0JIg0JTQo9Co0JDQnQor0KLQntCg0JHQmNCm0JAg0JDQm9CV0JrQodCQCivQotCe0KDQkdCY0KbQkCDQkdCe0KDQmNCh0JvQkNCSCivQotCe0KDQkdCY0KbQkCDQlNCj0KjQkNCdCivQotCe0KDQkdCY0KbQkCDQlNCj0KjQkNCdCivQotCe0KDQkdCY0KbQkCDQmNCb0JjQiNCQCivQotCe0KDQkdCY0KbQkCDQiNCV0JvQmtCQCivQotCe0KDQkdCY0KbQkCDQiNCj0JvQmtCQCivQotCe0KDQkdCY0KbQkCDQnNCQ0KDQmNCI0JAKK9Ci0J7QoNCR0JjQptCQINCc0JjQm9Ce0KgKK9Ci0J7QoNCR0JjQptCQINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0J7QoNCR0JjQptCQINCd0JDQlNCQCivQotCe0KDQkdCY0KbQkCDQoNCQ0JTQntCh0JvQkNCSCivQotCe0KDQkdCY0KbQkCDQktCV0KDQmNCm0JAKK9Ci0J7QoNCU0JAg0IjQkNCd0JrQngor0KLQntCg0JTQkNCYINCY0JvQntCd0JAKK9Ci0J7QoNCU0JDQmCDQnNCQ0KDQmNCI0JAKK9Ci0J7QoNCU0JDQmCDQodCS0JXQotCb0JDQndCQCivQotCe0KDQlNCQ0Igg0JzQmNCo0JrQngor0KLQntCg0JTQkNCI0Jgg0IjQkNCd0JrQngor0KLQntCg0JXQoCDQgtCj0KDQkAor0KLQntCg0JzQkCDQk9CV0JfQkAor0KLQntCg0JzQkCDQiNCe0KHQmNCfCivQotCe0KDQnNCQINCI0J7QktCQ0J0KK9Ci0J7QoNCc0JAg0JzQkNCg0JPQmNCi0JAKK9Ci0J7QoNCc0JAg0KHQotCV0JLQkNCdCivQotCe0KDQnNCQINCS0JjQm9CY0JwKK9Ci0J7QoNCc0JDQqNCYINCC0JXQoNCCCivQotCe0KDQnNCQ0KjQmCDQiNCQ0J3QntCoCivQotCe0KDQnNCQ0KjQmCDQodCc0JjQidCa0JAKK9Ci0J7QoNCc0JDQqNCYINCh0KLQldCS0JDQnQor0KLQntCg0JzQntCo0Jgg0IjQntCW0JXQpAor0KLQntCg0IrQkNCd0KHQmtCYINCW0JDQoNCa0J4KK9Ci0J7QoNCK0JDQndCh0JrQmCDQkdCe0KDQmNCh0JvQkNCSCivQotCe0KDQitCQ0J3QodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCe0KDQitCQ0J3QodCa0Jgg0IjQldCb0JrQkAor0KLQntCg0IrQkNCd0KHQmtCYINCh0JLQldCi0JjQodCb0JDQkgor0KLQntCg0J7QmiDQp9CQ0JHQkAor0KLQntCg0J7QnNCQ0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCe0KDQntCc0JDQnSDQndCV0ILQldCJ0JrQngor0KLQntCg0J7QnNCQ0J0g0KDQkNCU0JjQodCQ0JIKK9Ci0J7QoNCe0JzQkNCdINCg0JDQlNCc0JjQm9CQCivQotCe0KDQntCc0JDQnSDQoNCQ0JTQntCI0JjQptCQCivQotCe0KDQntCS0JjQiyDQotCg0JjQn9CeCivQotCe0KDQotCY0Isg0JDQndCU0KDQmNCI0JAKK9Ci0J7QoNCi0JjQiyDQiNCe0KHQmNCfCivQotCe0KDQotCY0Isg0JzQmNCl0JDQiNCb0J4KK9Ci0J7QoNCi0JjQiyDQodCi0JXQktCQ0J0KK9Ci0J7QoNCi0JjQiyDQktCV0KDQkAor0KLQntCh0JzQkNCdINCI0J7QodCY0J8KK9Ci0J7QodCj0J3QntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KLQntCh0KPQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0KLQntCh0KPQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0J7QoiDQqNCQ0J3QlNCe0KAKK9Ci0J7QoiDQqNCQ0J3QlNCe0KAKK9Ci0J7QoiDQqNCQ0J3QlNCe0KAKK9Ci0J7QoiDQkNCc0JDQm9CY0IjQkAor0KLQntCiINCQ0J3QkAor0KLQntCiINCQ0J3QkAor0KLQntCiINCQ0J3QlNCg0JDQqAor0KLQntCiINCQ0J3QlNCg0JjQiNCQCivQotCe0KIg0JDQndCU0KDQmNCI0JAKK9Ci0J7QoiDQkNCd0JjQptCQCivQotCe0KIg0JDQndCi0JDQmyDQlNCY0J/QmyDQmNCd0JMKK9Ci0J7QoiDQkNCd0KLQntCd0JjQiNCQCivQotCe0KIg0JDQoNCf0JDQlAor0KLQntCiLdCQ0KDQktCQ0Jgg0JDQndCi0JDQmwor0KLQntCiLdCQ0KDQktCQ0Jgg0IjQkNCd0J7QqAor0KLQntCiLdCQ0KDQktCQ0Jgg0IjQkNCd0J7QqAor0KLQntCiLdCR0JDQk9CYINCY0JzQoNCVCivQotCe0KIt0JHQkNCT0Jgg0IjQkNCd0J7QqAor0KLQntCiLdCR0JDQk9CYINCc0JDQoNCY0IjQkAor0KLQntCiINCR0JDQm9CY0J3Qogor0KLQntCiINCR0JXQoNCi0JAKK9Ci0J7Qoi3QkdCe0IjQndCY0Jog0JTQldCX0JjQlNCV0KAg0JTQmNCf0Jsg0JjQndCTCivQotCe0KIg0JHQntCg0JAKK9Ci0J7QoiDQlNCV0JbQlQor0KLQntCiINCU0KPQqNCQ0J3QmtCQCivQotCe0KIg0KTQldCg0JXQndCmCivQotCe0KIg0KTQldCg0JXQndCmCivQotCe0KIg0KTQldCg0JXQndCmCivQotCe0KIg0KTQldCg0JXQndCmCivQotCe0KIg0KTQldCg0JXQndCmCivQotCe0KIg0KTQoNCQ0IrQkAor0KLQntCiINCk0KDQkNCK0JAKK9Ci0J7QoiDQpNCg0JDQitCQCivQotCe0KIg0JPQkNCR0J7QoAor0KLQntCiINCT0JXQl9CQCivQotCe0KIt0KXQntCg0KLQmCDQqNCQ0J3QlNCe0KAKK9Ci0J7QoiDQmNCo0KLQktCQ0J0KK9Ci0J7QoiDQmNCo0KLQktCQ0J0KK9Ci0J7QoiDQmNCo0KLQktCQ0J0KK9Ci0J7QoiDQmNCR0J7QidCQINCU0KAKK9Ci0J7QoiDQmNCb0J7QndCQCivQotCe0KIg0JjQm9Ce0J3QkAor0KLQntCiINCY0JvQntCd0JAKK9Ci0J7QoiDQmNCc0KDQlQor0KLQntCiINCY0KDQldCd0JAKK9Ci0J7QoiDQmNCg0JXQndCQCivQotCe0KIg0JjQktCQ0J0KK9Ci0J7QoiDQiNCQ0J3QntCoCivQotCe0KIg0IjQkNCd0J7QqAor0KLQntCiINCI0JDQndCe0KgKK9Ci0J7QoiDQiNCV0JvQldCd0JAKK9Ci0J7QoiDQiNCe0JbQldCkCivQotCe0KIg0IjQntCW0JXQpAor0KLQntCiINCI0J7QltCV0KQKK9Ci0J7QoiDQiNCe0JbQldCkCivQotCe0KIg0IjQntCW0JXQpAor0KLQntCiINCI0J7QodCY0J8KK9Ci0J7QoiDQiNCe0JLQkNCd0JrQkAor0KLQntCiINCI0J7QktCQ0J0KK9Ci0J7QoiDQiNCj0JvQmNCI0JDQndCQCivQotCe0KIg0IjQo9Cb0JjQiNCQ0J3QkAor0KLQntCiINCI0KPQm9CY0IjQkAor0KLQntCiLdCa0JDQqNCQINCR0JvQkNCWCivQotCe0KIg0JrQkNCg0J7QiQor0KLQntCiINCa0JDQoNCe0IkKK9Ci0J7QoiDQmtCQ0KLQkNCg0JjQndCQCivQotCe0KIg0JrQkNCi0JjQptCQCivQotCe0KIg0JrQntCS0JjQidCa0JAKK9Ci0J7QoiDQm9CQ0IjQntCoCivQotCe0KIg0JvQkNCI0J7QqAor0KLQntCiINCb0JDQodCb0J4g0JTQoAor0KLQntCiINCb0JDQodCb0J4KK9Ci0J7QoiDQm9CQ0KHQm9CeCivQotCe0KIg0JvQkNCh0JvQngor0KLQntCiINCb0JjQktCY0IjQkAor0KLQntCiINCc0JDQk9CU0J7Qm9Cd0JAKK9Ci0J7QoiDQnNCQ0KDQk9CY0KLQkAor0KLQntCiINCc0JDQoNCT0JjQotCQCivQotCe0KIg0JzQkNCg0JjQiNCQCivQotCe0KIg0JzQkNCg0JjQiNCQCivQotCe0KIg0JzQkNCg0JjQiNCQCivQotCe0KIg0JzQkNCg0JjQiNCQCivQotCe0KIg0JzQmNCl0JDQiQor0KLQntCiINCc0JjQpdCQ0IkKK9Ci0J7QoiDQnNCY0JrQm9Ce0KgKK9Ci0J7QoiDQnNCY0JvQkNCd0JrQkAor0KLQntCiINCc0JjQm9Ca0JAKK9Ci0J7QoiDQnNCY0KDQntCh0JvQkNCSCivQotCe0KIg0J3QldCR0J7QiNCo0JAKK9Ci0J7QoiDQntCb0JPQkAor0KLQntCiINCf0JDQm9CY0JrQkAor0KLQntCiINCf0JDQmwor0KLQntCiINCf0JDQmwor0KLQntCiINCf0JDQmwor0KLQntCiINCf0JDQktCb0JUKK9Ci0J7QoiDQoNCe0JfQkNCb0JjQiNCQCivQotCe0KIg0KDQntCX0JDQm9CY0IjQkAor0KLQntCiINCh0JjQm9CS0JXQodCi0JXQoAor0KLQntCiINCh0KLQldCS0JDQnQor0KLQntCiINCh0KLQldCS0JDQnQor0KLQntCiINCh0KLQldCS0JDQnQor0KLQntCiINCh0KLQiNCV0J/QkNCdCivQotCe0KIg0KLQldCg0JXQl9CQCivQotCe0KIg0KLQldCg0JXQl9CQCivQotCe0KIg0KLQmNCR0J7QoAor0KLQntCiINCi0J7QnNCY0KHQm9CQ0JIKK9Ci0J7QoiDQktCQ0JvQldCg0JjQiNCQCivQotCe0KIg0JLQm9CQ0JTQmNCc0JjQoAor0KLQntCiINCS0JvQkNCU0JjQodCb0JDQkgor0KLQntCiINCX0JjQotCQCivQotCe0KIg0JfQm9CQ0KLQkAor0KLQntCiINCX0J7Qm9Ci0JDQnQor0KLQntCiINCX0J7QoNCQCivQotCe0KLQkNCg0JLQkNCYINCc0JDQoNCY0IjQkAor0KLQntCi0KUg0KHQmNCb0JLQldCh0KLQldCgCivQotCe0KLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9Ci0J7QotCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQotCe0KLQntCS0JjQiyDQnNCY0JvQkNCdCivQotCe0JLQkNCg0JvQntCW0JAg0JTQo9Co0JDQndCa0JAKK9Ci0J7QktCV0KDQndCY0Isg0JfQntCg0JAKK9Ci0J7QktCY0JvQntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQotCe0JLQmNCb0J7QktCY0Isg0JfQntCg0JDQnQor0KLQntCS0JjQotCe0JLQmNCLINCd0JjQmtCe0JvQkAor0KLQntCS0JjQotCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0J7QktCI0JDQndCY0J0g0JHQmNCJ0JDQndCQCivQotCe0JLQidCQ0J3QmNCLINCU0KPQqNCQ0J0KK9Ci0J7QktCJ0JDQndCY0Isg0KHQkNCS0JAKK9Ci0KDQkNCW0Jgg0J/QkNCbCivQotCg0JDQkdCQ0Jog0JrQkNCi0JDQoNCY0J3QkAor0KLQoNCQ0JjQm9Ce0JLQmNCLINCd0JDQlNCQCivQotCg0JDQmNCb0J7QktCY0Isg0KHQldCb0JjQnNCY0KAKK9Ci0KDQkNCY0JvQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQotCg0JDQiNCn0JXQktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KLQoNCQ0IjQp9CV0JLQodCa0JAg0JDQndCY0KLQkAor0KLQoNCQ0IjQkNCd0J7QktCh0JrQmCDQidCj0JHQmNCm0JAKK9Ci0KDQkNCI0JDQndCe0JLQodCa0Jgg0InQo9CR0J4KK9Ci0KDQkNCI0JDQndCe0JLQodCa0Jgg0JzQntCI0KHQngor0KLQoNCQ0IjQkNCd0J7QktCh0JrQmCDQotCg0JDQiNCQ0J0KK9Ci0KDQkNCI0JHQkNCgINCQ0JTQntCb0KQKK9Ci0KDQkNCI0JHQkNCgINCX0JLQntCd0JjQnNCY0KAKK9Ci0KDQkNCI0JXQoCDQm9CQ0JTQmNCh0JvQkNCSINCU0KAKK9Ci0KDQkNCI0JXQoCDQoNCe0JHQldCg0KIKK9Ci0KDQkNCI0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0KLQoNCQ0IjQmtCe0JLQmNCLINCR0KDQkNCd0JjQnNCY0KAKK9Ci0KDQkNCI0JrQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ci0KDQkNCI0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9Ci0KDQkNCI0JrQntCS0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ci0KDQkNCI0JrQntCS0JjQiyDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9Ci0KDQkNCI0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQotCg0JDQiNCa0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ci0KDQkNCI0JrQntCS0JjQiyDQndCQ0JTQkAor0KLQoNCQ0IjQmtCe0JLQmNCLINCd0JDQiNCU0JDQnQor0KLQoNCQ0IjQmtCe0JLQmNCLINCg0KPQltCY0KbQkAor0KLQoNCQ0IjQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0KDQkNCI0JrQntCS0JjQiyDQodCi0J7QiNCQ0JTQmNCdCivQotCg0JDQiNCa0J7QktCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9Ci0KDQkNCI0JrQntCS0KHQmtCYINCc0JXQotCe0JTQmNCI0JUKK9Ci0KDQkNCI0JrQntCS0KHQmtCYINCf0JDQndCi0JAKK9Ci0KDQkNCa0JjQm9Ce0JLQmNCLINCS0JvQkNCU0JAKK9Ci0KDQkNCJ0JjQiyDQmNCS0JDQnQor0KLQoNCQ0J3QlNCQ0KTQmNCgINCS0JDQodCY0JvQmNCI0JUKK9Ci0KDQkNCd0JrQntCb0J7QktCY0Isg0KbQktCV0KLQkAor0KLQoNCQ0J3QmtCj0JvQntCSINCI0J7QltCV0KQKK9Ci0KDQkNCj0Jwg0JDQoNCQ0J3QmtCQCivQotCg0JDQktCQ0Iog0IjQntCS0JDQndCa0JAKK9Ci0KDQkNCS0JDQoCDQgtCj0KDQngor0KLQoNCQ0JLQkNCgINCJ0KPQkdCY0KjQkAor0KLQoNCQ0JLQkNCgINCc0JjQm9Ce0KHQkNCSCivQotCg0JDQktCY0KbQkCDQnNCY0JvQkNCdCivQotCg0JDQktCY0KbQkCDQnNCY0JvQlQor0KLQoNCQ0JLQmNCm0JAg0J3QmNCa0J7Qm9CQCivQotCg0JDQktCY0KbQkCDQoNCQ0JTQlQor0KLQoNCR0JDQndCe0KEg0JbQmNCS0JAKK9Ci0KDQkdCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCg0JHQmNCLINCJ0KPQkdCY0KjQkAor0KLQoNCR0JjQiyDQnNCY0JvQkNCU0JjQnQor0KLQoNCR0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCg0JHQmNCLINCi0JDQnNCQ0KDQkAor0KLQoNCR0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQotCg0JHQntCI0JXQktCY0Isg0ILQntCg0ILQlQor0KLQoNCR0J7QiNCV0JLQmNCLINCC0KPQoNCQ0IIKK9Ci0KDQkdCe0IjQldCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0KLQoNCR0J7QiNCV0JLQmNCLINCR0KDQkNCd0JrQngor0KLQoNCR0J7QiNCV0JLQmNCLINCU0KDQkNCT0JjQptCQCivQotCg0JHQntCI0JXQktCY0Isg0JPQkNCS0KDQkAor0KLQoNCR0J7QiNCV0JLQmNCLINCY0JTQkAor0KLQoNCR0J7QiNCV0JLQmNCLINCY0JvQmNCI0JAKK9Ci0KDQkdCe0IjQldCS0JjQiyDQiNCe0JLQkNCdCivQotCg0JHQntCI0JXQktCY0Isg0JvQkNCX0JAKK9Ci0KDQkdCe0IjQldCS0JjQiyDQnNCQ0KDQmNCm0JAKK9Ci0KDQkdCe0IjQldCS0JjQiyDQnNCY0JvQlQor0KLQoNCR0J7QiNCV0JLQmNCLINCc0JjQm9CY0KbQkAor0KLQoNCR0J7QiNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0KLQoNCR0J7QiNCV0JLQmNCLINCd0JjQmtCe0JvQkAor0KLQoNCR0J7QiNCV0JLQmNCLINCh0KLQldCS0JDQnQor0KLQoNCR0J7QidCV0JLQkNCmINCU0KDQkNCT0J7QodCb0JDQkgor0KLQoNCR0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4g0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9Ci0KDQkdCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0KDQkdCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0KDQkdCe0JLQmNCLINCS0JXQodCd0JAKK9Ci0KDQldCo0IrQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQotCg0JXQqNCK0JjQiyDQiNCe0JLQkNCdCivQotCg0JXQqNCK0JjQiyDQodCi0JXQktCQ0J0KK9Ci0KDQldCL0JDQmtCe0JIg0KHQotCe0IjQkNCdCivQotCg0JXQkdCQ0KLQmNCm0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KLQoNCV0JHQkNCi0JjQptCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0KDQldCR0JDQotCY0KbQmtCYINCI0KPQodCi0JjQndCQCivQotCg0JXQkdCQ0KLQmNCm0JrQmCDQnNCQ0KDQmNCI0JAKK9Ci0KDQldCR0JjQp9Cd0JjQmi3QktCj0KfQmNCLINCe0JvQk9CQCivQotCg0JXQkdCe0JLQkNCmINCc0JjQm9CVCivQotCg0JXQndCn0JXQktCh0JrQmCDQndCQ0JTQldCW0JTQkAor0KLQoNCV0J/QkNCd0JjQiyDQnNCQ0KXQnNCj0KIKK9Ci0KDQldCh0JjQk9Cb0JDQktCY0Isg0JrQkNCi0JjQptCQCivQotCg0JXQodCY0JPQm9CQ0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0KDQldCh0JjQk9Cb0JDQktCY0Isg0KHQm9CQ0JLQmtCeCivQotCg0JXQodCY0JPQm9CQ0JLQmNCLINCh0KLQldCS0JDQnQor0KLQoNCV0KHQmNCT0JvQkNCS0JjQiyDQktCQ0KHQkAor0KLQoNCV0KHQmNCT0JvQkNCS0JjQiyDQktCQ0KHQkAor0KLQoNCV0KHQmtCY0Isg0JfQlNCg0JDQktCa0J4KK9Ci0KDQk9CQ0JvQkCDQgtCj0KDQkAor0KLQoNCT0J4g0J3QldCS0JXQndCa0JAKK9Ci0KDQmNCn0JrQntCS0JjQiyDQkNCd0JrQkAor0KLQoNCY0KfQmtCe0JLQmNCLINCI0KPQm9Ca0JAKK9Ci0KDQmNCn0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0KLQoNCY0KfQmtCe0JLQmNCLINCh0JjQndCY0KjQkAor0KLQoNCY0KfQmtCe0JLQmNCLINCS0JXQoNCY0KbQkAor0KLQoNCY0KjQmNCLINCl0KDQkNCd0JjQodCb0JDQkgor0KLQoNCY0KjQmNCLLdCY0JvQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ci0KDQmNCo0JjQiyDQnNCb0JDQlNCV0J0KK9Ci0KDQmNCk0JrQntCS0JjQiyDQiNCe0JLQmNCm0JAKK9Ci0KDQmNCk0JrQntCS0JjQiyDQmtCj0JfQnNCQ0J0KK9Ci0KDQmNCk0JrQntCS0JjQiyDQidCj0JHQmNCm0JAKK9Ci0KDQmNCk0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQotCg0JjQpNCa0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9Ci0KDQmNCk0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQotCg0JjQpNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0KLQoNCY0KTQmtCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQotCg0JjQpNCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQotCg0JjQpNCa0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9Ci0KDQmNCk0JrQntCS0JjQiyDQodCg0ILQkCDQlNCgCivQotCg0JjQpNCa0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQoNCY0KTQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ci0KDQmNCk0KMg0JTQntCg0KMKK9Ci0KDQmNCk0KPQndCn0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQotCg0JjQpNCj0J3Qp9CV0JLQmNCLINCc0JjQm9Ce0KgKK9Ci0KDQmNCk0KPQitCQ0JPQmNCLINCh0J/QkNCh0J7QiNCVCivQotCg0JjQpNCj0IrQkNCT0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9Ci0KDQmNCk0KPQndCe0JIg0JTQkNCd0JjQm9CeCivQotCg0JjQpNCj0J3QntCSINCI0J7QodCY0KQKK9Ci0KDQmNCk0KPQndCe0JIg0JzQmNCe0JTQoNCQ0JMKK9Ci0KDQmNCk0KPQndCe0JIg0KDQkNCU0JzQmNCb0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCW0JjQmtCY0KbQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JbQmNCS0JrQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JHQntCo0JrQngor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JTQkNCd0JrQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQotCg0JjQpNCj0J3QntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQotCg0JjQpNCj0J3QntCS0JjQiyDQmNCb0JjQndCa0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0IjQntCS0JDQnQor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0IjQntCS0JDQnQor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JzQkNCa0KHQmNCcCivQotCg0JjQpNCj0J3QntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQg0JTQmNCf0Jsg0JjQndCTCivQotCg0JjQpNCj0J3QntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JzQmNCg0JrQngor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0J3QkNCU0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQndCV0JPQntCS0JDQndCa0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCe0JvQk9CQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQotCg0JjQpNCj0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQotCg0JjQpNCj0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQotCg0JjQpNCj0J3QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCg0JDQlNCe0JzQmNCgINCU0JjQn9CbINCf0KDQkNCS0J3QmNCaCivQotCg0JjQpNCj0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdINCU0KAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCh0J7QpNCY0IjQkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0KHQotCQ0J3QkAor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0KHQktCV0KLQmNCh0JvQkNCSINCU0KAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCh0JLQldCi0J7QnNCY0KAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCi0KDQmNCk0KPQnQor0KLQoNCY0KTQo9Cd0J7QktCY0Isg0JLQkNCh0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCS0JXQoNCQCivQotCg0JjQpNCj0J3QntCS0JjQiyDQktCb0JDQlNCQ0J0KK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9Ci0KDQmNCk0KPQndCe0JLQmNCLINCS0KPQmtCe0KHQkNCSCivQotCg0JjQmtCY0Isg0JTQoNCQ0JPQmNCm0JAKK9Ci0KDQmNCa0JjQiyDQnNCY0KDQmtCeCivQotCg0JjQmtCY0Isg0KDQntCh0JAKK9Ci0KDQmNCa0JjQiyDQodCS0JXQotCe0JfQkNCgCivQotCg0JjQmtCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQoNCY0J/QmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9Ci0KDQmNCf0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQotCg0JjQn9Ce0JvQodCa0Jgg0JzQkNCg0JjQiNCQCivQotCg0JjQn9Cj0J3QntCS0JjQiyDQgtCe0KDQgtCY0IjQkAor0KLQoNCY0J/Qo9Cd0J7QktCY0Isg0JHQm9CQ0JbQngor0KLQoNCY0J/Qo9Cd0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0KLQoNCY0KEg0IjQkNCa0J7QkQor0KLQoNCY0JLQkNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQotCg0JjQktCQ0J3QntCS0JjQiyDQoNCQ0JTQlQor0KLQoNCY0JLQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQotCg0JjQktCQ0J3QntCS0JjQiyDQktCV0KDQkAor0KLQoNCY0JLQmNCLINCR0J7QoNCY0KEKK9Ci0KDQmNCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9Ci0KDQmNCS0JjQiyDQlNCe0JHQoNCY0JLQntCI0JUKK9Ci0KDQmNCS0JjQiyDQlNCj0KjQkNCdCivQotCg0JjQktCY0Isg0IjQntCS0JDQnQor0KLQoNCY0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9Ci0KDQmNCS0KPQndCn0JjQiyDQnNCY0KDQkAor0KLQoNCY0JLQo9Cd0I/QkCDQnNCY0JvQntCoCivQotCg0JjQktCj0J3Qj9CQINCd0JXQndCQ0JQKK9Ci0KDQmNCS0KPQndCY0Isg0JHQntCT0J7QidCj0JEKK9Ci0KDQmNCS0KPQndCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQoNCY0JLQo9Cd0JjQiyDQoNCQ0J3QmtCeCivQotCg0JjQktCj0J3QntCS0JjQiyDQnNCb0JDQlNCV0J3QmtCeCivQotCg0JjQktCj0J3QntCS0JjQiyDQodCY0JzQngor0KLQoNCY0JLQo9Cd0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9Ci0KDQmNCX0JvQmNCLINCh0JvQkNCS0JrQngor0KLQoNCa0InQkCDQk9Ce0IjQmtCeCivQotCg0JrQidCQINCc0JjQoNCa0J4KK9Ci0KDQmtCj0InQkCDQltCY0JLQntCg0JDQlAor0KLQoNCa0KPQidCQINCQ0J3QkAor0KLQoNCa0KPQidCQINCR0J7QqNCa0J4KK9Ci0KDQmtCj0InQkCDQkdCe0KDQmNCh0JvQkNCSCivQotCg0JrQo9CJ0JAg0JHQoNCQ0J3QmtCeCivQotCg0JrQo9CJ0JAg0JTQoNCQ0JPQkNCdCivQotCg0JrQo9CJ0JAg0JTQoNCQ0JPQkNCdCivQotCg0JrQo9CJ0JAg0JXQodCi0JXQoAor0KLQoNCa0KPQidCQINCT0J7QiNCa0J4KK9Ci0KDQmtCj0InQkCDQk9Cg0J7Ql9CU0JAKK9Ci0KDQmtCj0InQkCDQiNCe0JLQkNCdCivQotCg0JrQo9CJ0JAg0IjQo9Cb0JrQkAor0KLQoNCa0KPQidCQINCc0JDQoNCY0J3QmtCeCivQotCg0JrQo9CJ0JAg0JzQmNCb0JDQnQor0KLQoNCa0KPQidCQINCc0JjQm9Ce0KDQkNCUCivQotCg0JrQo9CJ0JAg0JzQmNCe0JTQoNCQ0JMKK9Ci0KDQmtCj0InQkCDQnNCY0J7QlNCg0JDQkwor0KLQoNCa0KPQidCQINCd0JXQlNCV0InQmtCeCivQotCg0JrQo9CJ0JAg0J3QmNCa0J7Qm9CQCivQotCg0JrQo9CJ0JAg0J3QntCS0JDQmgor0KLQoNCa0KPQidCQINCd0J7QktCQ0JoKK9Ci0KDQmtCj0InQkCDQn9CV0KLQkNCgCivQotCg0JrQo9CJ0JAg0KDQkNCd0JrQngor0KLQoNCa0KPQidCQINCh0JvQkNCS0JrQngor0KLQoNCa0KPQidCQINCh0J7QpNCY0IjQkAor0KLQoNCa0KPQidCQINCh0J7QitCQCivQotCg0JrQo9CJ0JAg0KHQotCV0JLQkNCdCivQotCg0JrQo9CJ0JAg0KHQotCe0IjQkNCd0JrQkAor0KLQoNCa0KPQidCQINCS0JvQkNCU0JjQodCb0JDQktCQCivQotCg0JzQp9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0KLQoNCd0KfQmNCLINCb0JDQl9CeCivQotCg0J3QkNCS0JDQpiDQnNCY0JvQkNCdCivQotCg0J3QmNCLINCg0JDQlNCc0JjQm9CQCivQotCg0J3QmNCLINCS0JXQoNCQCivQotCg0J3QmNCd0JjQiyDQltCY0JLQkNCdCivQotCg0J3QmNCd0JjQiyDQltCY0JLQntCI0JjQnQor0KLQoNCd0JjQndCY0Isg0ILQntCg0ILQlQor0KLQoNCd0JjQndCY0Isg0ILQo9Cg0JAKK9Ci0KDQndCY0J3QmNCLINCR0J7Qk9CU0JDQnQor0KLQoNCd0JjQndCY0Isg0JHQntCI0JAKK9Ci0KDQndCY0J3QmNCLINCR0J7QoNCY0JLQntCICivQotCg0J3QmNCd0JjQiyDQkdCe0KHQmNCJ0JrQkAor0KLQoNCd0JjQndCY0Isg0JTQntCR0KDQmNCS0J7QiAor0KLQoNCd0JjQndCY0Isg0JTQoNCQ0JPQkNCdCivQotCg0J3QmNCd0JjQiyDQlNCg0JDQk9CQ0J0KK9Ci0KDQndCY0J3QmNCLINCU0KPQqNCQ0J0KK9Ci0KDQndCY0J3QmNCLINCc0JDQoNCQCivQotCg0J3QmNCd0JjQiyDQnNCQ0KDQmNCI0JAKK9Ci0KDQndCY0J3QmNCLINCc0JjQoNCa0J4KK9Ci0KDQndCY0J3QmNCLINCc0JjQoNCa0J4KK9Ci0KDQndCY0J3QmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0KDQndCY0J3QmNCLINCc0J7QnNCn0JjQm9CeCivQotCg0J3QmNCd0JjQiyDQntCb0JjQktCV0KDQkAor0KLQoNCd0JjQndCY0Isg0KDQkNCU0JjQktCe0IgKK9Ci0KDQndCY0J3QmNCLINCg0JDQlNCe0IjQmtCQCivQotCg0J3QmNCd0JjQiyDQoNCQ0JTQntCS0JDQnQor0KLQoNCd0JjQndCY0Isg0KHQotCV0JLQkAor0KLQoNCd0JjQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0KLQoNCK0JDQmtCe0JIg0JTQo9Co0JDQnQor0KLQoNCd0J7QktCQ0KYg0J3QkNCU0JAKK9Ci0KDQntCn0JAg0JrQntCg0J3QldCbCivQotCg0J7QqNCV0InQkNCmINCc0JDQotCeCivQotCg0J7QqNCa0JjQnSDQodCQ0JLQldCi0JAKK9Ci0KDQntCo0JrQmNCdINCi0JDQnNCQ0KDQkAor0KLQoNCe0IjQkNCd0J7QkiDQldCU0JLQkNCg0JQKK9Ci0KDQntCI0JDQndCe0JIg0JzQkNCg0JjQiNCQCivQotCg0J7QiNCQ0J3QntCSINCg0J7QnNCQ0J0KK9Ci0KDQntCI0JrQntCS0JjQiyDQmNCb0J7QndCQCivQotCg0J7QnNCb0JXQoCDQm9CQ0KHQm9CeCivQotCg0J/Qp9CV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9Ci0KDQn9Cn0JXQktCh0JrQmCDQotCe0JzQp9CVCivQotCg0J/QmNCd0JDQpiDQiNCV0JvQldCd0JAKK9Ci0KDQn9Ca0JAg0J/QkNCS0JvQlQor0KLQoNCf0JrQkCDQn9CQ0JLQm9CVCivQotCg0J/QntCS0KHQmtCYINCS0JDQodCY0IkKK9Ci0KDQodCi0JXQitCQ0Jog0KTQoNCQ0IrQkAor0KLQoNCi0JjQiyDQodCb0JDQktCa0J4KK9Ci0KDQo9Co0J3QntCS0JXQpiDQmNCS0JDQnQor0KLQoNCj0JHQkNCg0JDQpiDQk9CQ0JHQoNCY0IjQldCb0JAKK9Ci0KDQo9CU0JAg0JDQm9CY0IjQkAor0KLQoNCj0JTQmNCLINCY0JLQkNCdCivQotCg0KPQiNCY0Isg0JTQo9Co0JjQptCQCivQotCg0KPQiNCY0Isg0JzQmNCb0J7QqCDQktCV0KLQldCg0JjQndCQ0KAKK9Ci0KDQo9Cc0JHQmNCLINCS0JXQlNCg0JDQnQor0KLQoNCj0JzQmNCLINCh0J7QpNCY0IjQkAor0KLQoNCj0JzQmNCLINCS0JXQoNCQCivQotCj0KfQldCSINCW0JjQktCQ0J3QmtCQCivQotCj0KjQldCSINCW0JjQktCa0J4KK9Ci0KPQqNCI0JDQmiDQiNCQ0J0KK9Ci0KPQqNCI0JDQmiDQiNCj0KDQkNCICivQotCj0KjQiNCQ0Jog0JzQmNCb0J7QqAor0KLQo9Co0J3QldCaINCe0KLQmNCb0JjQiNCQCivQotCj0KjQitCQ0Jog0JDQndCQCivQotCj0JHQmNCLINCW0JjQktCQ0J0KK9Ci0KPQkdCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9Ci0KPQkdCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQotCj0JHQmNCLINCU0KDQkNCT0KPQotCY0J0KK9Ci0KPQkdCY0Isg0JTQo9Co0JDQnQor0KLQo9CR0JjQiyDQlNCj0KjQkNCdCivQotCj0JHQmNCLINCI0KPQk9Ce0KHQm9CQ0JIKK9Ci0KPQkdCY0Isg0JvQldCf0J7QodCQ0JLQkAor0KLQo9CR0JjQiyDQnNCY0JvQkNCdCivQotCj0JHQmNCLINCc0JjQm9CV0J3QmtCeCivQotCj0JHQmNCLINCc0JjQm9CY0JLQntCICivQotCj0JHQmNCLINCc0JjQm9Ce0KgKK9Ci0KPQkdCY0Isg0JzQmNCb0J7QiNCa0J4KK9Ci0KPQkdCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Ci0KPQkdCY0Isg0J3QmNCa0J7Qm9CQCivQotCj0JHQmNCLINCd0J7QktCQ0JoKK9Ci0KPQkdCY0Isg0J7Qm9CT0JAKK9Ci0KPQkdCY0Isg0J/QldCi0JDQoAor0KLQo9CR0JjQiyDQoNCQ0JTQkAor0KLQo9CR0JjQiyDQoNCQ0JTQnNCY0JvQkAor0KLQo9CR0JjQiyDQoNCQ0JTQntCS0JDQnQor0KLQo9CR0JjQiyDQodCQ0JLQkAor0KLQo9CR0JjQiyDQodCi0JDQndCa0J4KK9Ci0KPQkdCY0Isg0KHQktCV0KLQntCX0JDQoCDQlNCgCivQotCj0JHQmNCLINCS0JXQoNCQCivQotCj0JHQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0KPQkdCY0Isg0JfQntCg0JDQnQor0KLQo9CR0JjQnSDQmtCQ0KLQkNCg0JjQndCQCivQotCj0JHQmNCdINCh0KLQntCI0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Ci0KPQkdCY0J0g0KHQotCe0IjQkAor0KLQo9CR0JjQnSDQotCe0JzQmNCh0JvQkNCSCivQotCj0JHQmNCdINCX0J7QoNCa0JAKK9Ci0KPQptCQ0JrQntCSINCC0J7QoNCC0JUKK9Ci0KPQptCQ0JrQntCSINCC0J7QoNCC0JUKK9Ci0KPQptCQ0JrQntCSINCR0J7QqNCa0J4KK9Ci0KPQptCQ0JrQntCSINCR0J7Qk9CU0JDQndCa0JAKK9Ci0KPQptCQ0JrQntCSINCR0J7QoNCQCivQotCj0KbQkNCa0J7QkiDQkdCg0JDQndCa0J4KK9Ci0KPQptCQ0JrQntCSINCU0JDQoNCY0J3QmtCQCivQotCj0KbQkNCa0J7QkiDQlNCg0JDQk9CQ0J0KK9Ci0KPQptCQ0JrQntCSINCa0JDQnNCV0J3QmtCeCivQotCj0KbQkNCa0J7QkiDQm9CQ0KLQmNCd0JrQkAor0KLQo9Cm0JDQmtCe0JIg0JzQkNCg0JjQiNCQCivQotCj0KbQkNCa0J7QkiDQnNCQ0KDQmtCeCivQotCj0KbQkNCa0J7QkiDQnNCY0JvQkNCdCivQotCj0KbQkNCa0J7QkiDQnNCY0JvQkNCdCivQotCj0KbQkNCa0J7QkiDQnNCY0JvQmNCm0JAKK9Ci0KPQptCQ0JrQntCSINCd0J7QktCQ0JoKK9Ci0KPQptCQ0JrQntCSINCg0JDQlNCY0JLQntCICivQotCj0KbQkNCa0J7QkiDQoNCQ0JTQntCI0JrQkAor0KLQo9Cm0JDQmtCe0JIg0KDQkNCU0J7QodCb0JDQkgor0KLQo9Cm0JDQmtCe0JIg0KDQkNCI0JrQngor0KLQo9Cm0JDQmtCe0JIg0KHQmNCd0JjQqNCQCivQotCj0KbQkNCa0J7QkiDQotCQ0J3QkNCh0JjQiNCVCivQotCj0KbQkNCa0J7QkiDQktCV0KDQkAor0KLQo9Cm0JDQmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0KLQo9Cm0JDQmtCe0JIg0JfQntCg0JDQndCQCivQotCj0KbQkNCa0J7QkiDQl9Ce0KDQkAor0KLQo9Cm0JDQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9Ci0KPQptCQ0JrQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9Ci0KPQptCQ0JrQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0KLQo9Cm0JDQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9Ci0KPQptCQ0JrQntCS0JjQiyDQnNCY0JvQntCoCivQotCj0KbQkNCa0J7QktCY0Isg0KDQkNCU0J7QodCb0JDQkgor0KLQo9Cm0JjQiyDQgtCe0KDQgtCVCivQotCj0KbQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KLQo9Cm0JjQiyDQm9CQ0JfQkNCgCivQotCj0KbQmNCLINCc0JjQm9CV0J3QmtCeCivQotCj0KbQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0KLQo9Cm0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQotCj0KbQmNCLINCS0KPQiNCY0KbQkAor0KLQo9Cm0J7QktCY0Isg0JfQntCg0JAKK9Ci0KPQpNCV0JPQj9CY0Isg0JzQmNCb0JXQnQor0KLQo9Ca0JDQpyDQnNCY0KXQkNCI0JvQngor0KLQo9Ca0JDQndCY0Isg0JXQndCU0KDQlQor0KLQo9Ca0JDQndCY0Isg0JjQoNCV0J3QkAor0KLQo9Ca0JDQoCDQpNCQ0JTQmNCbCivQotCj0JrQkNCgINCc0JjQoNCI0JDQndCQCivQotCj0JrQmNCLINCf0JXQotCQ0KAKK9Ci0KPQmtCY0Isg0KHQotCe0IjQkNCd0JrQkAor0KLQo9Cb0JDQiyDQiNCe0JLQmNCm0JAKK9Ci0KPQm9CV0J3Qp9CY0Isg0JrQkNCi0JjQptCQCivQotCj0JvQldCd0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JLQkAor0KLQo9Cb0JXQndCn0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQotCj0JvQmNCLINCR0J7QoNCa0J4KK9Ci0KPQm9CY0Isg0J3QldCS0JXQndCa0J4KK9Ci0KPQm9Cj0JHQldCmINCC0J7QoNCC0JUKK9Ci0KPQm9Cj0JHQldCmINCc0JjQm9Ca0JAKK9Ci0KPQm9Cj0JHQldCmINCS0JDQodCY0JvQmNCI0JUKK9Ci0KPQnNCQ0KDQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KLQo9Cc0JDQoNCY0Isg0KbQktCV0KLQmNCdCivQotCj0JzQkNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0KLQo9Cc0JHQkNChINCQ0JPQndCV0JfQkAor0KLQo9Cc0JHQkNChINCY0JLQkNCdCivQotCj0JzQkdCQ0KEg0InQo9CU0JXQktCY0KIKK9Ci0KPQnNCY0J0g0JTQo9Co0JDQndCa0JAKK9Ci0KPQndCT0KPQlyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0KLQo9Cd0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQotCj0J3QmNCLINCg0JDQiNCa0J4KK9Ci0KPQndCY0Isg0KHQn9CQ0KHQntCI0JUKK9Ci0KPQndCY0Isg0KHQotCV0JLQkNCdCivQotCj0J3QotCV0JIg0JzQkNCg0JjQiNCQCivQotCj0J/QkNCd0KfQldCS0KHQmtCYINCd0JjQmtCe0JvQkAor0KLQo9Cf0JXQpiDQl9CS0J7QndCY0JzQmNCgCivQotCj0J/QmNCLINCd0JXQktCV0J3QmtCQCivQotCj0KAg0JzQmNCl0JDQiNCb0J4KK9Ci0KPQoCDQodCj0JfQkNCd0JAKK9Ci0KPQoNCn0JDQnSDQiNCQ0J0KK9Ci0KPQoNCn0JDQnSDQiNCQ0J0KK9Ci0KPQoNCn0JDQnSDQiNCj0KDQkNCICivQotCj0KDQp9CQ0J0g0JLQm9CQ0JTQmNCc0JjQoCDQodCj0JTQmNCI0JAKK9Ci0KPQoNCn0JjQiyDQnNCY0KDQntCh0JvQkNCS0JAKK9Ci0KPQoNCo0JjQiyDQiNCV0JvQldCd0JAKK9Ci0KPQoNCo0JjQiNCQ0J0g0JLQkNCh0JAKK9Ci0KPQoNCQ0Jgg0JHQldCb0JAKK9Ci0KPQoNCQ0Jgg0JzQmNCl0JDQiNCb0J4KK9Ci0KPQoNCQ0Jgg0KLQldCg0JXQl9CQCivQotCj0KDQkNCI0JvQmNCLINCc0JjQm9CVCivQotCj0KDQkNCI0JvQmNCI0JAg0JHQntCW0JjQptCQCivQotCj0KDQkNCI0JvQmNCI0JAg0JzQmNCg0J7QodCb0JDQkgor0KLQo9Cg0JDQnSDQgtCj0KDQkAor0KLQo9Cg0JDQnSDQidCj0JHQmNCm0JAKK9Ci0KPQoNCQ0J3QodCa0Jgg0ILQntCg0ILQlQor0KLQo9Cg0JDQndCh0JrQmCDQpNCV0KDQldCd0KYKK9Ci0KPQoNCQ0J3QodCa0Jgg0JPQldCX0JAKK9Ci0KPQoNCQ0J3QodCa0Jgg0IjQkNCd0J7QqAor0KLQo9Cg0JDQndCh0JrQmCDQiNCe0KHQmNCfCivQotCj0KDQkNCd0KHQmtCYINCb0JDQodCb0J4KK9Ci0KPQoNCQ0J3QodCa0Jgg0JzQkNCg0JjQptCQCivQotCj0KDQkNCd0KHQmtCYINCc0JDQoNCY0IjQkAor0KLQo9Cg0JDQndCh0JrQmCDQnNCQ0KLQmNCI0JAKK9Ci0KPQoNCQ0J3QodCa0Jgg0J/QldCi0JDQoAor0KLQo9Cg0JDQndCh0JrQmCDQodCi0JXQktCQ0J0KK9Ci0KPQoNCYINCQ0KDQn9CQ0JQKK9Ci0KPQoNCYINCi0JjQkdCe0KAKK9Ci0KPQoNCY0Isg0JvQo9Ca0JAKK9Ci0KPQoNCY0Isg0JzQkNCg0JjQndCa0J4KK9Ci0KPQoNCY0JrQkCDQiNCe0KHQmNCcCivQotCj0KDQmNCd0KHQmtCYINCU0KPQqNCQ0J0KK9Ci0KPQoNCY0J3QodCa0Jgg0JXQlNCY0KLQkAor0KLQo9Cg0JjQndCh0JrQmCDQnNCY0JvQldCi0JAKK9Ci0KPQoNCY0J3QodCa0Jgg0JzQmNCe0JzQmNCgCivQotCj0KDQmiDQnNCY0KDQmtCeCivQotCj0KDQmiDQndCQ0JTQkAor0KLQo9Cg0JrQkNCJINCa0JDQotCQCivQotCj0KDQmtCe0JLQmNCLINCl0JDQmtCY0IjQkAor0KLQo9Cg0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQotCj0KDQmtCe0JLQmNCLINCc0JjQotCQ0KAKK9Ci0KPQoNCa0J7QktCY0Isg0J/QldCi0JDQoAor0KLQo9Cg0JrQntCS0JjQiyDQoNCQ0KTQmNCiCivQotCj0KDQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Ci0KPQoNCa0J7QktCY0Isg0JfQmNCd0JrQkAor0KLQo9Cg0JrQo9Cb0J7QkiDQltCQ0JrQm9CY0J3QkAor0KLQo9Cg0JrQo9Cb0J7QkiDQlNCj0KjQkNCdCivQotCj0KDQmtCj0JvQntCSINCI0J7QktCQ0J0KK9Ci0KPQoNCb0JDQmtCe0JIg0KbQktCV0KLQkNCdCivQotCj0KDQndCQ0Igg0KHQm9CQ0JLQntCJ0KPQkSDQlNCY0J/QmyDQmNCd0JMKK9Ci0KPQoNCeINCc0JjQpdCQ0IkKK9Ci0KPQoNCe0JzQkNCdINCc0JjQm9Ce0KDQkNCUCivQotCj0KDQntCf0J7QidCQ0KYg0JzQmNCL0J4KK9Ci0KPQoNCj0JTQmNCLINCc0JjQm9CQ0J0KK9Ci0KPQoNCj0JTQmNCLINCc0JjQntCU0KDQkNCTCivQotCj0KDQo9CU0JjQiNCQINCc0JjQm9Ce0KDQkNCUCivQotCj0KDQo9Ca0JDQm9CeINCc0JjQntCU0KDQkNCTCivQotCj0KDQo9Ca0JDQm9CeINCg0JDQlNCc0JjQm9CQCivQotCj0KDQo9Ca0JDQm9CeINCX0J7QoNCQCivQotCj0KDQl9CeINCI0JXQm9CY0KHQkNCS0JXQotCQCivQotCj0KDQl9CeINCa0JDQoNCb0J4KK9Ci0KPQotCY0Isg0JjQm9CY0IjQkAor0KLQo9Ci0J3QmNCb0J7QktCY0Isg0J3QkNCU0JAKK9Ci0KPQotCK0JXQktCY0Isg0JHQntCW0JXQndCa0JAKK9Ci0KPQotCK0JXQktCY0Isg0JHQntCT0JTQkNCdCivQotCj0KLQitCV0JLQmNCLINCI0J7QktCQ0J0KK9Ci0KPQotCK0JXQktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0KLQo9Ci0IrQldCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0KLQo9Ci0J7QoNCe0JIg0JTQldCh0JDQndCn0JjQiwor0KLQo9Ci0J7QoNCe0JIg0IjQo9Cb0JrQmNCm0JAKK9Ci0KPQotCe0KDQntCSINCh0KLQkNCd0JAKK9Ci0KPQotCe0KDQntCSINCh0KLQldCS0JDQnQor0KLQo9Ci0KPQm9Cj0JPQj9CY0IjQkCDQnNCQ0KDQkAor0KLQo9CS0JXQj9CY0Isg0JTQoNCQ0JPQkNCd0JAKK9Ci0KPQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0KLQktCg0KLQmtCe0JLQmNCLINCc0JDQoNCY0J0g0JTQoCDQm9CV0JrQkNCgCivQo9Co0IvQldCR0KDQmtCQINCb0JDQl9CQ0KAKK9Cj0KjQi9CV0JHQoNCa0JAg0JzQmNCb0JXQndCa0J4KK9Cj0KjQi9CV0JHQoNCa0JAg0JfQm9CQ0KLQngor0KPQqNCL0KPQnNCb0JjQiyDQnNCY0JvQldCd0JrQngor0KPQqNCL0KPQnNCb0JjQiyDQndCV0KjQmtCeCivQo9Co0IvQo9Cc0JvQmNCLINCS0KPQmtCY0KbQkAor0KPQqNCQ0J0g0IjQkNCd0JXQlwor0KPQqNCI0JDQmiDQiNCQ0J3QmtCeCivQo9Co0IjQkNCaINCI0JDQoNCc0JjQm9CQCivQo9Co0IjQkNCaINCS0JvQkNCh0KLQkAor0KPQqNCJ0JXQkdCg0JrQkCDQnNCY0JvQntCg0JDQlAor0KPQqNCi0JjQn9CQ0Jog0IjQldCb0JAKK9Cj0IvQo9Ca0JDQm9CeINCh0JjQnNCeCivQo9CW0JDQoCDQlNCV0KHQkNCd0JrQkAor0KPQltCQ0KAg0JrQkNCi0JjQptCQCivQo9CW0JjQp9CQ0J3QmNCdINCC0J7QoNCC0JUKK9Cj0JHQkNCS0KfQmNCLINCh0JDQktCQCivQo9CR0JDQktCY0Isg0JTQkNCg0JjQndCa0JAKK9Cj0JHQkNCS0JjQiyDQidCj0JHQmNCm0JAKK9Cj0JHQkNCS0JjQiyDQnNCe0JzQp9CY0JvQniDQlNCgCivQo9CR0JjQn9CQ0KDQmNCfINCn0JXQlNCeCivQo9CR0JjQn9CQ0KDQmNCfINCW0JjQktCa0J4KK9Cj0JHQmNCf0JDQoNCY0J8g0JPQntCI0JrQngor0KPQkdCY0J/QkNCg0JjQnyDQmNCb0JUKK9Cj0JHQmNCf0JDQoNCY0J8g0IjQkNCK0JAKK9Cj0JHQmNCf0JDQoNCY0J8g0IjQntCS0J4KK9Cj0JHQmNCf0JDQoNCY0J8g0JzQkNCg0JjQndCa0J4KK9Cj0JHQmNCf0JDQoNCY0J8g0JzQkNCg0JrQngor0KPQkdCY0J/QkNCg0JjQnyDQnNCY0JvQkNCdCivQo9CR0JjQn9CQ0KDQmNCfINCc0JjQoNCa0J4KK9Cj0JHQmNCf0JDQoNCY0J8g0JzQntCc0JjQoAor0KPQkdCY0J/QkNCg0JjQnyDQn9CQ0JLQm9CVCivQo9CR0JjQn9CQ0KDQmNCfINCh0JvQkNCS0JrQngor0KPQkdCY0J/QkNCg0JjQnyDQotCe0JTQlQor0KPQkdCY0J/QkNCg0JjQnyDQktCe0IjQmtCeCivQo9CR0JjQn9CQ0KDQmNCfINCX0JTQoNCQ0JLQmtCeCivQo9CR0JjQn9CQ0KDQmNCfINCX0J7QoNCQ0J0KK9Cj0JHQntCg0JrQkCDQqNCQ0J3QlNCe0KAKK9Cj0JHQntCg0JrQkCDQnNCQ0KDQotCe0J0KK9Cj0JHQntCg0JrQkCDQodCi0JXQktCa0JAKK9Cj0JHQntCg0IrQmCDQqNCQ0J3QlNCe0KAKK9Cj0JHQntCg0IrQmCDQkNCd0JTQoNCQ0KgKK9Cj0JHQntCS0JjQiyDQldCS0JAKK9Cj0JHQntCS0JjQiyDQiNCV0KTQotCQCivQo9CR0J7QktCY0Isg0IjQntCS0JjQptCQCivQo9CR0J7QktCY0Isg0JzQkNCg0JrQngor0KPQkdCe0JLQmNCLINCc0JjQm9Ce0KgKK9Cj0JHQntCS0JjQiyDQn9CV0KLQoNCQCivQo9CR0J7QktCY0Isg0KDQkNCI0JrQngor0KPQptCQ0Igg0JLQm9CQ0JTQmNCc0JjQoAor0KPQlNCY0KbQmtCYINCf0JDQiNCQCivQo9CU0JjQptCa0Jgg0KHQm9CQ0JLQmNCm0JAKK9Cj0JTQmNCm0JrQmCDQodCg0JXQlNCe0IjQlQor0KPQlNCe0JLQmNCn0JjQiyDQkdCe0JHQkNCdCivQo9CU0J7QktCY0KfQmNCLINCR0KDQkNCd0JrQngor0KPQlNCe0JLQmNCn0JjQiyDQmNCS0JDQnQor0KPQlNCe0JLQmNCn0JjQiyDQnNCe0JzQmNCgCivQo9CU0J7QktCY0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9Cj0JTQntCS0JjQp9CY0Isg0KHQotCV0JLQkNCdCivQo9CU0J7QktCY0KfQmtCYINCR0KDQkNCd0JrQniDQm9CV0JrQkNCgCivQo9CU0J7QktCY0KfQmtCYINCI0KPQm9Ca0JAKK9Cj0JTQntCS0JjQp9Ca0Jgg0J7Qm9CT0JjQptCQINCU0KAKK9Cj0JTQntCS0JjQp9Ca0Jgg0KHQm9Ce0JHQntCU0JDQnQor0KPQlNCe0JLQmNCn0JrQmCDQodCS0JXQotCe0JfQkNCgCivQo9CU0KDQmNCI0JAg0J/QldCi0JDQoAor0KPQlNCS0JDQoNCU0Jgg0JrQkNCg0JvQngor0KPQk9CQ0KDQp9CY0J3QkCDQkdCe0KDQmNCh0JvQkNCSCivQo9CT0JDQoNCn0JjQndCQINCU0KDQkNCT0JDQnQor0KPQk9CQ0KDQp9CY0J3QkCDQmNCb0JjQiNCQCivQo9CT0JDQoNCQ0Jog0ILQntCg0ILQlQor0KPQk9CQ0KDQkNCaINCR0J7QltCeCivQo9CT0JDQoNCQ0Jog0JTQoNCQ0JPQkNCdCivQo9CT0JDQoNCQ0Jog0JTQo9Co0JDQnQor0KPQk9CQ0KDQkNCaINCf0JXQotCQ0KAKK9Cj0JPQkNCg0JrQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0KPQk9CQ0KDQmtCe0JLQmNCLINCI0JXQm9CQCivQo9CT0JDQoNCa0J7QktCY0Isg0JrQkNCi0JjQptCQCivQo9CT0JDQoNCa0J7QktCY0Isg0KHQotCV0JLQkNCdCivQo9CT0InQldCo0JjQiyDQkdCe0KjQmtCeCivQo9CT0InQldCo0JjQiyDQpdCY0JvQlNCQCivQo9CT0KDQp9CY0Isg0JLQo9Ca0JjQptCQCivQo9CT0KDQldCo0JjQiyDQn9CV0KLQkNCgCivQo9CT0KDQldCcINCc0JDQoNCY0IjQkAor0KPQk9Cg0JXQnCDQoNCQ0JTQntCS0JDQnQor0KPQk9Cg0JXQnSDQnNCY0JvQntCg0JDQlAor0KPQk9Cg0JXQnSDQn9CV0KLQkNCgCivQo9CT0KDQldCd0JjQiyDQm9CQ0KHQm9CeCivQo9CT0KDQldCd0JjQiyDQnNCY0KXQkNCJCivQo9CT0KDQldCd0J7QktCY0Isg0JLQo9Cn0JjQiwor0KPQk9Cg0JXQndCe0JLQmNCLINCS0KPQiNCQ0JTQmNCdCivQo9CT0KDQmNCm0JAg0JTQoNCQ0JPQkNCdCivQo9CT0KDQmNCm0JAg0KHQoNCV0IvQmtCeCivQo9CT0KDQmNCdINCY0JvQmNCI0JAKK9Cj0JPQoNCY0J0g0JzQmNCb0J7QktCQ0J0KK9Cj0JPQoNCY0J3Qp9CY0Isg0JTQkNCd0JjQm9Ca0JAKK9Cj0JPQoNCY0J3Qp9CY0Isg0JTQntCR0KDQmNCb0JAKK9Cj0JPQoNCY0J3Qp9CY0Isg0JzQmNCb0JjQktCe0IgKK9Cj0JPQoNCY0J3Qp9CY0Isg0JzQmNCg0IjQkNCd0JAg0JTQoAor0KPQk9Cg0JjQndCn0JjQiyDQodCi0JXQktCQ0J0KK9Cj0JPQoNCY0J3Qp9CY0Isg0JLQm9CQ0JTQkCDQlNCY0J/QmyDQmNCd0JMKK9Cj0JPQoNCY0J3QntCSINCC0KPQoNCY0KbQkAor0KPQk9Cg0JjQndCe0JIg0JTQntCR0KDQmNCb0JAKK9Cj0JPQoNCY0J3QntCSINCc0JjQm9CY0KbQkAor0KPQk9Cg0JjQndCe0JIg0J3QkNCU0JAKK9Cj0JPQoNCd0J7QkiDQktCb0JDQlNCY0JzQmNCgCivQo9CT0KDQndCe0JIg0JfQntCg0JjQptCQCivQo9Cl0JXQoCDQktCV0KDQkAor0KPQpdCb0JDQoNCY0Jog0JXQm9CY0JfQkNCR0JXQotCQCivQo9Cl0JvQkNCg0JjQmiDQm9CQ0JTQmNCh0JvQkNCSCivQo9Cl0JvQkNCg0JjQmiDQodCi0JXQktCQ0J0KK9Cj0KXQntCgINCf0JXQotCQ0KAKK9Cj0Igg0JzQkNCg0KLQntCdCivQo9CI0KfQmNCLINCR0JvQkNCWCivQo9CI0KfQmNCLINCi0J7QnNCQCivQo9CI0JTQmNCb0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cj0IjQpNCQ0JvQo9CoINCS0JXQm9CY0JzQmNCgCivQo9CI0KTQkNCb0KPQqNCYINCC0KPQoNCQCivQo9CI0KTQkNCb0KPQqNCYINCI0JDQndCa0J4KK9Cj0IjQpNCQ0JvQo9Co0Jgg0IjQo9Cb0JjQiNCQ0J0KK9Cj0IjQpNCQ0JvQo9Co0Jgg0InQo9CR0J7QnNCY0KAKK9Cj0IjQpNCQ0JvQo9Co0Jgg0JzQmNCg0J7QodCb0JDQkgor0KPQiNCk0JDQm9Cj0KjQmCDQndCY0JrQntCb0JAKK9Cj0IjQpNCQ0JvQo9Co0Jgg0KHQmNCb0JLQldCh0KLQldCgCivQo9CI0KTQkNCb0KPQqNCYINCS0JvQkNCU0JjQnNCY0KAKK9Cj0IjQpNCV0InQkNCdINCc0JjQm9CQ0J0KK9Cj0IjQpdCQ0JfQmCDQkdCe0KDQmNCo0JrQkAor0KPQiNCl0JDQl9CYINCY0JLQkNCdCivQo9CI0KXQkNCX0Jgg0IjQldCb0JjQodCQ0JLQldCi0JAKK9Cj0IjQpdCQ0JfQmCDQm9CQ0JTQmNCh0JvQkNCSCivQo9CI0KXQkNCX0Jgg0JzQmNCg0JrQngor0KPQiNCl0JXQidCYINCI0J7QktCQ0J3QmtCQCivQo9CI0KXQldCJ0Jgg0JzQmNCl0JDQiQor0KPQiNCb0JDQmtCe0Kgg0JrQkNCg0JvQngor0KPQiNCS0JDQoNCYINCT0JDQkdCe0KAKK9Cj0IjQktCQ0KDQmCDQmtCQ0KLQkNCb0JjQnQor0KPQmtCQ0KfQldCaINCS0JXQoNCa0JAKK9Cj0JrQoNCe0J/QmNCd0JAg0KfQldCU0JAKK9Cj0JrQoNCe0J/QmNCd0JAg0JTQldCh0JDQndCa0JAKK9Cj0JrQoNCe0J/QmNCd0JAg0IjQldCb0JXQndCQCivQo9Ca0KDQntCf0JjQndCQINCI0J7QktCQ0J3QmtCQCivQo9Ca0KDQntCf0JjQndCQINCI0J7QktCQ0J0KK9Cj0JrQoNCe0J/QmNCd0JAg0JzQmNCb0J7QktCQ0J0KK9Cj0JrQoNCe0J/QmNCd0JAg0J3QldCR0J7QiNCo0JAKK9Cj0JrQoNCe0J/QmNCd0JAg0J/QkNCd0KLQngor0KPQmtCg0J7Qn9CY0J3QkCDQotCe0JzQmNCh0JvQkNCSCivQo9Cb0JXQnNCV0Jog0ILQo9Cg0J4KK9Cj0JvQmNCLINCW0JXQidCa0JAKK9Cj0JvQmNCLINCC0J7QoNCC0JUKK9Cj0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQo9Cb0JjQiyDQlNCe0JHQoNCe0KHQm9CQ0JIKK9Cj0JvQmNCLINCc0JjQm9CQ0J0KK9Cj0InQkNCg0JXQktCY0Isg0J/QldCg0J4KK9Cj0JzQldCaINCc0JDQoNCT0JjQotCQCivQo9Cc0JXQmiDQnNCY0JrQm9Ce0KgKK9Cj0JzQmNCn0JXQktCY0Isg0J/QldCg0JAKK9Cj0JzQmNCL0JXQktCY0Isg0JbQldCJ0JrQngor0KPQnNCY0IvQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0KPQnNCY0IvQldCS0JjQiyDQnNCY0KDQmtCeCivQo9Cc0JjQi9CV0JLQmNCLINCc0JvQkNCU0JXQnQor0KPQndCn0JDQndCY0J0g0JHQntCI0JDQnQor0KPQndCn0JDQndCY0J0g0JTQo9Co0JDQnQor0KPQndCT0JDQoCDQotCY0KXQntCc0JjQoAor0KPQndCT0KPQoNCe0JLQmNCLINCI0JXQm9CV0J3QkAor0KPQndCa0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9Cj0J3QmtCe0JLQmNCLINCc0JvQkNCU0JXQnQor0KPQoNCQ0Kcg0KjQkNCd0JTQntCgCivQo9Cg0JDQpyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KPQoNCQ0Kcg0JTQkNCd0JjQptCQCivQo9Cg0JDQpyDQk9CY0JfQldCb0JAKK9Cj0KDQkNCnINCY0KjQotCS0JDQnQor0KPQoNCQ0Kcg0KDQntCX0JDQm9CY0IjQkAor0KPQoNCR0JDQnSDQgtCV0KDQggor0KPQoNCR0JDQnSDQgtCe0KDQgtCVCivQo9Cg0JHQkNCdINCQ0J3QkAor0KPQoNCR0JDQnSDQpdCe0KDQktCQ0KIKK9Cj0KDQkdCQ0J0g0JjQqNCi0JLQkNCdCivQo9Cg0JHQkNCdINCI0JDQndCe0KgKK9Cj0KDQkdCQ0J0g0IjQkNCh0J3QkAor0KPQoNCR0JDQnSDQnNCY0KXQkNCJCivQo9Cg0JHQkNCdINCc0JjQpdCQ0IkKK9Cj0KDQkdCQ0J0g0J/QkNCS0JXQmwor0KPQoNCR0JDQnSDQodCi0JDQndCY0KHQm9CQ0JIKK9Cj0KDQkdCQ0J0g0KHQotCV0JLQkNCdCivQo9Cg0JHQkNCdINCS0JjQmtCi0J7QoNCY0IjQkAor0KPQoNCR0JDQnSDQktCb0JDQlNCY0KHQm9CQ0JIKK9Cj0KDQkdCQ0J3Qp9CY0Jog0J/QmNCg0J7QqNCa0JAKK9Cj0KDQkdCQ0J3Qp9CY0Jog0KHQmNCb0JLQmNCQCivQo9Cg0JHQkNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQo9Cg0JTQkNCg0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0KPQoNCV0JrQlSDQgtCe0KDQgtCVCivQo9Cg0Jgg0KfQkNCR0JAKK9Cj0KDQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0KPQoNCYINCV0JLQkAor0KPQoNCYINCT0JDQkdCe0KAKK9Cj0KDQmCDQmtCQ0KDQm9CeCivQo9Cg0Jgg0JvQkNCh0JvQngor0KPQoNCYINCf0JDQiNCQCivQo9Cg0Jgg0KHQotCV0JLQkNCdCivQo9Cg0Jgg0KHQotCV0JLQkNCdCivQo9Cg0JrQmNCdINCJ0KPQkdCY0KbQkAor0KPQoNCb0JjQpSDQnNCQ0KDQmNCI0JAKK9Cj0KDQntCo0JXQkiDQltCY0JLQkNCdCivQo9Cg0J7QqNCV0JIg0JHQntCI0JrQkAor0KPQoNCe0KjQldCSINCY0JvQmNCI0JAKK9Cj0KDQntCo0JXQkiDQiNCV0KDQmNCm0JAKK9Cj0KDQntCo0JXQkiDQnNCY0JvQldCd0JrQngor0KPQoNCe0KjQldCSINCc0JjQoNCI0JDQndCQCivQo9Cg0J7QqNCV0JIg0J/QkNCI0JAKK9Cj0KDQntCo0JXQkiDQodCe0KTQmNCI0JAKK9Cj0KDQntCo0JXQkiDQodCi0J7QiNCQ0J0KK9Cj0KDQntCo0JXQkiDQktCV0JvQmNCd0JrQkAor0KPQoNCe0KjQldCS0JjQiyDQltCY0JLQkNCdCivQo9Cg0J7QqNCV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQo9Cg0J7QqNCV0JLQmNCLINCR0J7Qk9CU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9Cj0KDQntCo0JXQktCY0Isg0JHQntCg0JjQktCe0IgKK9Cj0KDQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCQCivQo9Cg0J7QqNCV0JLQmNCLINCR0KDQkNCd0JrQngor0KPQoNCe0KjQldCS0JjQiyDQlNCg0JDQk9CY0KjQkAor0KPQoNCe0KjQldCS0JjQiyDQlNCj0KjQkNCdCivQo9Cg0J7QqNCV0JLQmNCLINCY0JLQkNCdCivQo9Cg0J7QqNCV0JLQmNCLINCb0JXQntCd0JAKK9Cj0KDQntCo0JXQktCY0Isg0InQmNCJ0JDQndCQCivQo9Cg0J7QqNCV0JLQmNCLINCJ0KPQkdCY0KbQkAor0KPQoNCe0KjQldCS0JjQiyDQnNCQ0KDQmtCQCivQo9Cg0J7QqNCV0JLQmNCLINCc0JjQm9Ce0KgKK9Cj0KDQntCo0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cj0KDQntCo0JXQktCY0Isg0J3QkNCU0JAKK9Cj0KDQntCo0JXQktCY0Isg0KDQo9CW0JjQptCQCivQo9Cg0J7QqNCV0JLQmNCLINCh0KDQgtCQCivQo9Cg0J7QqNCV0JLQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQo9Cg0J7QqNCV0JLQmNCLINCS0JjQlNCe0IjQmtCeCivQo9Cg0J7QqNCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cj0KDQntCo0JXQktCY0Isg0JfQntCg0JjQptCQCivQo9Cg0KHQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9Cj0KDQodCj0JvQldCh0JrQoyDQpNCb0J7QoNCY0J0KK9Cj0KDQodCj0JvQldCh0JrQoyDQiNCj0JvQmNCI0JDQnQor0KPQodCa0J7QmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0KPQodCa0J7QmtCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQo9Ch0JrQntCa0J7QktCY0Isg0JzQmNCb0J7QqAor0KPQodCi0JjQiyDQgtCj0KDQkAor0KPQodCi0JjQiyDQndCY0JrQntCb0JAKK9Cj0KHQotCY0Isg0KHQmNCc0JAKK9Cj0KHQotCY0Isg0JLQntCI0JrQngor0KPQotCQ0KjQmCDQp9CQ0JHQkAor0KPQotCI0JXQqNCQ0J3QntCS0JjQiyDQodCY0JzQngor0KPQotCI0JXQqNCY0J3QntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0KPQotCI0JXQqNCY0J3QntCS0JjQiyDQidCY0InQkNCd0JAKK9Cj0KLQiNCV0KjQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0KPQotCI0JXQqNCY0J3QntCS0JjQiyDQktCV0KDQkAor0KPQotCe0KDQndCY0Jog0JjQktCQ0J0KK9Cj0KLQntCg0J3QmNCaINCI0J7QktCQ0J0KK9Cj0KLQntCg0J3QmNCaINCa0JDQotCY0KbQkAor0KPQotCe0KDQndCY0Jog0InQo9CR0JjQptCQCivQo9Ci0J7QoNCd0JjQmiDQnNCY0JvQntCoCivQo9Ci0J7QoNCd0JjQmi3QoNCQ0JTQo9Cb0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQo9Ci0J7QoNCd0JjQmiDQodCi0JXQktCQ0J0KK9Cj0KLQntCg0J3QmNCaINCh0JLQldCi0J7Ql9CQ0KAKK9Cj0KLQoNCW0JDQnSDQkdCg0JDQndCa0J4KK9Cj0KLQktCY0Isg0JrQntCh0KLQkAor0KPQotCS0JjQiyDQn9CQ0JLQm9CVCivQo9Ci0JLQmNCLINCS0JDQodCQCivQo9Ci0JLQmNCLLdCS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JTQkNCg0JAKK9Cj0JLQkNCb0JjQiyDQkNCd0JPQldCb0JjQndCQCivQo9CS0JDQm9CY0Isg0JTQo9Co0JDQndCa0JAKK9Cj0JLQkNCb0JjQiyDQlNCj0KjQkNCdCivQo9CS0JDQm9CY0Isg0JTQo9Co0JrQngor0KPQktCQ0JvQmNCLINCb0JDQl9CQ0KAKK9Cj0JLQkNCb0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQo9CS0JDQm9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0KPQktCQ0JvQmNCLINCh0KLQkNCd0JjQodCb0JDQkgor0KPQktCQ0JvQmNCLINCS0JDQodCQCivQo9CS0JXQoNCY0Isg0ILQo9Cg0JAKK9Cj0JLQldCg0JjQiyDQkdCg0JDQndCa0JAKK9Cj0JLQldCg0JjQiyDQnNCY0JvQkNCdCivQo9CS0JXQoNCY0Isg0JzQmNCb0J7QqAor0KPQktCV0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQo9CS0JXQoNCY0Isg0JzQmNCg0IjQkNCd0JAKK9Cj0JLQldCg0JjQiyDQndCY0JrQntCb0JAKK9Cj0JfQkNCY0KAg0JDQm9CY0IjQkAor0KPQl9CV0JjQoNCYINCc0KPQkNCg0JXQnAor0KPQl9CV0JvQkNCmINCC0J7QoNCC0JUKK9Cj0JfQldCb0JDQpiDQgtCe0KDQgtCVCivQo9CX0JXQm9CQ0KYg0ILQntCg0ILQlQor0KPQl9CV0JvQkNCmINCC0J7QoNCC0JUKK9Cj0JfQldCb0JDQpiDQgtCj0KDQmNCm0JAKK9Cj0JfQldCb0JDQpiDQgtCj0KDQngor0KPQl9CV0JvQkNCmINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQo9CX0JXQm9CQ0KYg0JDQm9CV0JrQodCQCivQo9CX0JXQm9CQ0KYg0JHQmNCh0JXQoNCa0JAKK9Cj0JfQldCb0JDQpiDQkdCe0KjQmtCeCivQo9CX0JXQm9CQ0KYg0JHQntCT0JTQkNCdCivQo9CX0JXQm9CQ0KYg0JHQntCT0JTQkNCdCivQo9CX0JXQm9CQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQo9CX0JXQm9CQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQo9CX0JXQm9CQ0KYg0JHQoNCQ0J3QmNCh0JvQkNCSCivQo9CX0JXQm9CQ0KYg0JHQoNCQ0J3QmtCeCivQo9CX0JXQm9CQ0KYg0KbQktCV0KLQkAor0KPQl9CV0JvQkNCmINCU0JDQoNCY0J3QmtCQCivQo9CX0JXQm9CQ0KYg0JTQldCh0JDQndCa0JAKK9Cj0JfQldCb0JDQpiDQlNCg0JDQk9CQ0J0KK9Cj0JfQldCb0JDQpiDQlNCg0JDQk9CQ0J0KK9Cj0JfQldCb0JDQpiDQlNCg0JDQk9CQ0J0KK9Cj0JfQldCb0JDQpiDQlNCj0KjQkNCd0JrQkAor0KPQl9CV0JvQkNCmINCU0KPQqNCQ0J0KK9Cj0JfQldCb0JDQpiDQlNCj0KjQkNCdCivQo9CX0JXQm9CQ0KYg0JTQo9Co0JDQnQor0KPQl9CV0JvQkNCmINCU0KPQqNCQ0J0KK9Cj0JfQldCb0JDQpiDQldCS0JAKK9Cj0JfQldCb0JDQpiDQk9CQ0JvQmNCd0JAKK9Cj0JfQldCb0JDQpiDQk9Ce0KDQlNCQ0J3QkAor0KPQl9CV0JvQkNCmINCY0JvQmNCI0JAKK9Cj0JfQldCb0JDQpiDQmNCS0JDQnQor0KPQl9CV0JvQkNCmINCI0JXQm9CV0J3QkAor0KPQl9CV0JvQkNCmINCa0J7QodCi0JAKK9Cj0JfQldCb0JDQpiDQm9CQ0JfQkNCgCivQo9CX0JXQm9CQ0KYg0JzQkNCg0JjQiNCQCivQo9CX0JXQm9CQ0KYg0JzQkNCg0JjQiNCQCivQo9CX0JXQm9CQ0KYg0JzQkNCg0JjQiNCQCivQo9CX0JXQm9CQ0KYg0JzQkNCg0JjQiNCQCivQo9CX0JXQm9CQ0KYg0JzQmNCl0JDQiNCb0J4KK9Cj0JfQldCb0JDQpiDQnNCY0JvQkNCdCivQo9CX0JXQm9CQ0KYg0JzQmNCb0JDQnQor0KPQl9CV0JvQkNCmINCc0JjQm9CQ0J0KK9Cj0JfQldCb0JDQpiDQnNCY0JvQkNCdCivQo9CX0JXQm9CQ0KYg0JzQmNCb0JDQnQor0KPQl9CV0JvQkNCmINCc0JjQm9CQ0J0KK9Cj0JfQldCb0JDQpiDQnNCY0JvQkNCdCivQo9CX0JXQm9CQ0KYg0JzQmNCb0JUKK9Cj0JfQldCb0JDQpiDQnNCY0JvQmNCm0JAKK9Cj0JfQldCb0JDQpiDQnNCY0JvQntCoCivQo9CX0JXQm9CQ0KYg0JzQntCc0KfQmNCb0J4KK9Cj0JfQldCb0JDQpiDQndCY0JrQntCb0JAKK9Cj0JfQldCb0JDQpiDQndCY0JrQntCb0JAKK9Cj0JfQldCb0JDQpiDQntCb0JjQktCV0KDQkAor0KPQl9CV0JvQkNCmINCg0JDQlNCc0JjQm9CQCivQo9CX0JXQm9CQ0KYg0KDQkNCU0J7QiNCa0JAKK9Cj0JfQldCb0JDQpiDQoNCV0J3QkNCi0JAKK9Cj0JfQldCb0JDQpiDQodCb0JDQktCa0J4KK9Cj0JfQldCb0JDQpiDQodCb0J7QkdCe0JTQkNCdCivQo9CX0JXQm9CQ0KYg0KHQm9Ce0JHQntCU0JDQnQor0KPQl9CV0JvQkNCmINCh0J7QpNCY0IjQkAor0KPQl9CV0JvQkNCmINCh0KDQgtCQ0J0KK9Cj0JfQldCb0JDQpiDQodCg0ILQkNCdCivQo9CX0JXQm9CQ0KYg0KHQotCV0JLQkNCdCivQo9CX0JXQm9CQ0KYg0KHQotCV0JLQkNCdCivQo9CX0JXQm9CQ0KYg0KHQotCV0JLQkNCdCivQo9CX0JXQm9CQ0KYg0KHQotCV0JLQkNCdCivQo9CX0JXQm9CQ0KYg0KHQotCe0IjQkNCdCivQo9CX0JXQm9CQ0KYg0JLQldCg0JAKK9Cj0JfQldCb0JDQpiDQktCj0IjQngor0KPQl9CV0JvQkNCmINCX0JvQkNCi0JrQngor0KPQl9CV0JvQkNCmINCX0JvQkNCi0JrQngor0KPQl9CV0JvQkNCmINCX0JvQkNCi0JrQngor0KPQl9CV0JvQkNCmINCX0J7QoNCQ0J0KK9Cj0JfQldCb0JDQpiDQl9Ce0KDQkNCdCivQo9CX0JXQm9CQ0KYg0JfQntCg0JDQnQor0KPQl9CV0JvQkNCmINCX0J7QoNCQ0J0KK9Cj0JfQldCb0JDQpiDQl9Ce0KDQkNCdCivQo9CX0JXQm9CQ0KYg0JfQntCg0JDQnQor0KPQl9Ce0KDQntCm0JrQmCDQmNCo0KLQktCQ0J0KK9Cj0JfQo9Cd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQo9CX0KPQndCe0JLQmNCLINCb0JDQlNCY0KHQm9CQ0JIKK9Cj0JfQo9Cd0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9Cj0JfQo9Cd0J7QktCY0Isg0JzQmNCi0J4KK9Cj0JfQo9Cd0J7QktCY0Isg0J3QkNCh0KPQpAor0KPQl9Cj0J3QntCS0JjQiyDQoNCQ0IjQmtCeCivQo9CX0KPQoNCe0JIg0J7QkdCg0JXQndCY0IjQkAor0KPQl9Cj0KDQntCSINCg0JDQlNCc0JjQm9CQCivQktCQ0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCQ0KfQmNCLINCX0J7QoNCQ0J0KK9CS0JDQp9CY0Jog0IjQntCW0JXQpAor0JLQkNCoINCQ0KLQmNCb0JAKK9CS0JDQqCDQiNCe0KHQmNCfCivQktCQ0Kgg0J/QkNCS0JvQlQor0JLQkNCoINCS0JXQoNCQCivQktCQ0KjQp9CY0Isg0JHQntCW0JjQlNCQ0KAKK9CS0JDQqNCQ0Kgg0JzQmNCa0JvQntCoCivQktCQ0KjQkNCoINCe0JvQk9CQCivQktCQ0KjQkNCU0Jgg0KTQldCg0JXQndCmCivQktCQ0KjQkNCU0Jgg0IjQo9Cb0JjQiNCQ0J3QkAor0JLQkNCo0JDQlNCYINCS0JDQm9CV0KDQmNCI0JAKK9CS0JDQqNCQ0JvQmNCLINCQ0J3QmtCQCivQktCQ0KjQkNCb0JjQiyDQnNCY0JvQntCoCivQktCQ0KjQkNCb0JjQiyDQntCR0KDQkNCUCivQktCQ0KjQkNCb0JjQiyDQo9Cg0J7QqAor0JLQkNCo0KLQkNCTINCC0J7QoNCC0JUKK9CS0JDQqNCi0JDQkyDQkNCd0JTQoNCQ0KgKK9CS0JDQqNCi0JDQkyDQmNCo0KLQktCQ0J0KK9CS0JDQqNCi0JDQkyDQmNCo0KLQktCQ0J0KK9CS0JDQqNCi0JDQkyDQiNCQ0KHQnNCY0J3QmtCQCivQktCQ0KjQotCQ0JMg0JzQkNCg0JPQmNCi0JAKK9CS0JDQqNCi0JDQkyDQnNCQ0KDQmNCI0JAKK9CS0JDQqNCi0JDQkyDQnNCY0KXQkNCJCivQktCQ0KjQotCQ0JMg0J7Qm9CT0JAKK9CS0JDQqNCi0JDQkyDQoNCj0JbQkAor0JLQkNCo0KLQkNCTINCh0KLQntCI0JDQnQor0JLQkNCW0JjQiyDQlNCQ0J3QmNCm0JAKK9CS0JDQltCY0Isg0IjQntCS0JDQnQor0JLQkNCW0JjQiyDQiNCj0JvQmNCI0JAKK9CS0JDQltCY0Isg0JzQmNCg0JAKK9CS0JDQltCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CS0JDQltCY0Isg0JLQldCg0JjQptCQCivQktCQ0JbQmNCLINCS0JXQodCV0JvQmNCdCivQktCQ0JbQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0JDQltCe0IrQmCDQkNCd0KLQkNCbCivQktCQ0JbQntCK0Jgg0KDQntCX0JDQm9CY0IjQkAor0JLQkNCm0Jgg0KjQmNCc0J7QnQor0JLQkNCm0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JLQkNCm0JjQiyDQktCY0JTQldCdCivQktCQ0KbQm9CQ0JLQmNCaINCc0JDQoNCY0IjQkAor0JLQkNCU0JDQodCa0Jgg0KbQldCm0JjQm9CY0IjQkAor0JLQkNCU0JDQodCa0Jgg0InQo9CR0J7QnNCY0KAKK9CS0JDQlNCe0KYg0KTQoNCQ0IrQkAor0JLQkNCU0J7QpiDQmNCS0JjQptCQCivQktCQ0JTQntCmINCI0J7QodCY0J8KK9CS0JDQk9CY0Isg0ILQo9Cg0J4KK9CS0JDQk9Cd0JXQoCDQgtCj0KDQkAor0JLQkNCT0J3QldCgINCQ0J3QlNCg0JjQiNCQCivQktCQ0JPQndCV0KAg0IjQntCh0JjQnwor0JLQkNCT0J3QldCgINCa0JDQoNCb0J4KK9CS0JDQk9Cd0JXQoCDQm9CQ0KHQm9CeCivQktCQ0JPQndCV0KAg0JzQkNCg0JjQiNCQCivQktCQ0JPQndCV0KAg0J7QotCY0JvQmNCI0JAKK9CS0JDQk9CeINCY0KjQotCS0JDQnQor0JLQkNCT0J4g0KHQotCV0JLQkNCdCivQktCQ0JPQo9Cg0JjQiyDQl9CU0KDQkNCS0JrQngor0JLQkNCI0JDQk9CY0Isg0JDQndCC0JXQm9Ca0JAKK9CS0JDQiNCQ0JPQmNCLINCR0J7QqNCa0J4KK9CS0JDQiNCQ0JPQmNCLINCT0J7QoNCU0JDQndCQCivQktCQ0IjQkNCT0JjQiyDQnNCY0JvQkNCdCivQktCQ0IjQkNCT0JjQiyDQndCY0JrQntCb0JAg0JTQoAor0JLQkNCI0JDQk9CY0Isg0J3QmNCa0J7Qm9CQCivQktCQ0IjQkNCT0JjQiyDQodCQ0JLQngor0JLQkNCI0JDQk9CY0Isg0KHQmNCc0JAKK9CS0JDQiNCQ0JPQmNCLINCh0KLQntCI0JDQnQor0JLQkNCI0JDQk9CY0Isg0JfQntCg0JjQptCQCivQktCQ0IjQlNCQINCo0JDQndCU0J7QoAor0JLQkNCI0JTQkCDQqNCQ0J3QlNCe0KAKK9CS0JDQiNCU0JAg0JjQoNCc0JAKK9CS0JDQiNCU0JAg0JvQkNCI0J7QqAor0JLQkNCI0JTQkCDQm9CQ0IjQntCoCivQktCQ0IjQlNCQINCi0JjQkdCe0KAKK9CS0JDQiNCU0JAg0KLQntCc0JjQodCb0JDQkgor0JLQkNCI0JTQmNCLINCW0JjQktCa0J4KK9CS0JDQiNCU0JjQiyDQmNCS0JDQnQor0JLQkNCI0JTQmNCLINCI0J7QktCQ0J0g0JTQoAor0JLQkNCI0JTQmNCLINCI0J7QktCQ0J0g0JTQoAor0JLQkNCI0JTQmNCLINCc0JjQm9CY0KbQkAor0JLQkNCI0JTQmNCLINCc0JjQm9CY0KbQkAor0JLQkNCI0JTQmNCLINCd0JDQlNCQCivQktCQ0IjQlNCY0Isg0J/QldCi0JDQoAor0JLQkNCI0JTQmNCLINCi0JjQpdCe0JzQmNCgCivQktCQ0IjQlNCbINCI0J7QktCQ0J0KK9CS0JDQiNCU0Jsg0JzQmNCg0J7QodCb0JDQkgor0JLQkNCI0JTQm9CVINCI0J7Qm9CQ0J0KK9CS0JDQiNCb0JXQoCDQkNCd0JTQoNCY0IjQkAor0JLQkNCI0J3QqNCi0JDQiNCdINCf0JXQotCQ0KAKK9CS0JDQiNCd0JHQldCg0JPQldCgINCS0JvQkNCU0JjQnNCY0KAKK9CS0JDQiNCd0JHQldCg0JPQldCgINCX0JvQkNCi0JrQngor0JLQkNCI0J3QkdCV0KDQk9CV0KAg0JfQktCe0J3QmNCc0JjQoAor0JLQkNCI0J3Qk9CV0KDQotCd0JXQoCDQoNCQ0JTQntCI0JrQkCDQlNCY0J/QmyDQldCm0KYKK9CS0JDQiNCd0KXQldCf0Jsg0JzQkNCg0JjQkAor0JLQkNCI0J3QpdCV0J/QmyDQntCi0JzQkNCgINCU0JjQn9CbINCY0J3Qkwor0JLQkNCI0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JLQkNCI0KEg0KjQkNCd0JTQntCgCivQktCQ0IjQoSDQkdCg0JDQndCa0J4KK9CS0JDQiNChINCa0JDQoNCb0J4KK9CS0JDQiNChINCa0JDQoNCb0J4KK9CS0JDQiNChINCc0JDQk9CU0JAKK9CS0JDQiNChINCS0JXQoNCY0KbQkAor0JLQkNCI0KHQldCd0JHQldCg0JMg0IjQntCh0JjQnwor0JLQkNCI0KPQmtCY0Isg0J/QkNCd0KLQldCb0JjQiNCQCivQktCQ0JrQkNCK0JDQpiDQnNCY0JvQmNCm0JAKK9CS0JDQmyDQgtCe0KDQgtCVCivQktCQ0Jsg0JDQndCU0KDQmNCI0JAKK9CS0JDQmyDQldCS0JAKK9CS0JDQmyDQl9Ce0JvQotCQ0J0KK9CS0JDQm9CQ0KUg0IjQkNCd0JrQngor0JLQkNCb0JDQnSDQntCh0KLQntCI0JAKK9CS0JDQm9CQ0J0g0JfQntCg0JDQnQor0JLQkNCb0JTQnNCQINCQ0KDQkdCeCivQktCQ0JvQldCaINCV0JzQmNCb0JjQiNCQCivQktCQ0JvQldCaINCk0KDQkNCK0JAKK9CS0JDQm9CV0J3Qp9CY0Jog0J/QkNCS0JXQmwor0JLQkNCb0JXQndCn0JjQmiDQodCi0JXQktCQ0J0KK9CS0JDQm9CV0J3Qi9CY0Jog0JDQndCU0KDQmNCI0JAKK9CS0JDQm9CV0J3Qi9CY0Jog0IjQkNCdCivQktCQ0JvQldCd0IvQmNCaINCf0JDQktCb0JUKK9CS0JDQm9CV0J3Qi9CY0Jog0JLQm9CQ0JTQmNCc0JjQoAor0JLQkNCb0JXQndCiINCW0KPQltCQ0J3QkAor0JLQkNCb0JXQndCiINCI0JDQndCa0J4KK9CS0JDQm9CV0J3QoiDQiNCQ0J3QmtCeCivQktCQ0JvQldCd0KIg0JvQkNCh0JvQngor0JLQkNCb0JXQndCi0JAg0IjQkNCh0JzQmNCd0JrQkAor0JLQkNCb0JXQndCi0JXQitCYINCI0J7QodCY0J8KK9CS0JDQm9CV0J3QotCV0IrQmCDQiNCj0JvQmNCI0JDQndCQCivQktCQ0JvQldCd0KLQmNCLINCY0JLQkNCdCivQktCQ0JvQldCd0KLQmNCLINCS0JjQmtCi0J7QoAor0JLQkNCb0JXQndCi0JjQiyDQktCY0JrQotCe0KAKK9CS0JDQm9CV0J3QotCY0Jog0J3QmNCa0J7Qm9CQCivQktCQ0JvQldCd0KLQmNCdINCY0JzQoNCVCivQktCQ0JvQldCd0KLQmNCdINCI0KPQptCY0JrQkAor0JLQkNCb0JXQndCi0JjQnSDQodCi0JXQktCQ0J0KK9CS0JDQm9CV0J3QotCY0KDQntCSINCh0KLQldCS0JDQnQor0JLQkNCb0JXQndCi0JjQoNCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCQ0JvQldCd0KLQntCS0JjQiyDQiNCe0KHQmNCfCivQktCQ0JvQldCd0KLQntCS0JjQiyDQmtCQ0KDQm9CeCivQktCQ0JvQldCd0KLQntCS0JjQiyDQmtCQ0KDQm9CeCivQktCQ0JvQldCd0KLQntCS0JjQiyDQmtCQ0KDQm9CeCivQktCQ0JvQldCd0KLQntCS0JjQiyDQotCY0JHQntCgCivQktCQ0JvQmNCLINCT0J7QoNCQ0J0KK9CS0JDQm9CY0Isg0KHQm9CQ0JLQmtCeCivQktCQ0JvQmNCP0JjQiNCQINCd0JjQmtCe0JvQkCDQlNCY0J/QmyDQmNCd0JMKK9CS0JDQm9CY0KXQntCg0JAg0IjQntCX0JXQpAor0JLQkNCb0JjQpdCe0KDQkCDQmtCQ0KLQmNCm0JAKK9CS0JDQm9Ca0JDQmCDQiNCe0JbQldCkCivQktCQ0JvQmtCeINCT0JDQktCg0JAKK9CS0JDQm9CeINCT0J7QoNCU0JDQndCQCivQktCQ0JvQniDQiNCe0KHQmNCfCivQktCQ0JvQniDQiNCe0KHQmNCfCivQktCQ0JvQniDQnNCY0KDQmtCeCivQktCQ0JvQniDQodCi0JXQktCQ0J0KK9CS0JDQm9Ce0Jog0ILQntCg0ILQlQor0JLQkNCb0J7QmiDQgtCj0KDQkAor0JLQkNCb0J7QmiDQoNCQ0KLQntCc0JjQoAor0JLQkNCb0KLQldCgINCU0KDQkNCT0JjQitCQCivQktCQ0JvQotCV0KAg0InQmNCJ0JDQndCQCivQktCQ0JvQotCV0KAg0J3QntCg0JHQldCg0KIKK9CS0JDQm9Ci0J3QldCgINCf0JXQotCQ0KAKK9CS0JDQm9Cj0KjQldCaINCI0J7QktCQ0J0KK9CS0JDQm9Cj0KjQldCaINCa0JDQotCY0KbQkAor0JLQkNCb0KPQqNCV0Jog0J/QkNCS0JvQlQor0JLQkNCb0KPQpSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JDQm9Cj0KUg0IjQkNCd0JrQngor0JLQkNCb0KPQpSDQiNCQ0J3QmtCeCivQktCQ0JvQo9ClINCa0JDQoNCb0J4KK9CS0JDQm9Cj0KUg0JzQmNCl0JDQiNCb0J4KK9CS0JDQnNCR0JDQpSDQktCY0JrQotCe0KDQmNCI0JAKK9CS0JDQnNCe0KjQldCgINCc0JjQoNCI0JDQndCQCivQktCQ0JzQntCo0JXQoCDQn9CQ0JLQm9CVCivQktCQ0JzQn9Ce0JLQkNCmINCI0J7QodCY0J8KK9CS0JDQndCC0JXQmyDQnNCY0JvQkNCdCivQktCQ0J3QlNCV0KDQldCgINCf0JDQmwor0JLQkNCd0JTQntCg0Jgg0JzQkNCg0JjQiNCQCivQktCQ0J3QmNCLINCU0KDQkNCT0KPQotCY0J0KK9CS0JDQndCY0Isg0JrQkNCi0JjQptCQCivQktCQ0J3QmNCLINCJ0KPQkdCY0KbQkAor0JLQkNCK0KPQoCDQpNCg0JDQitCQCivQktCQ0IrQo9CgINCk0KDQkNCK0JAKK9CS0JDQitCj0KAg0JjQqNCi0JLQkNCdINCU0JjQn9CbINCY0J3Qkwor0JLQkNCK0KPQoCDQiNCe0JbQldCkCivQktCQ0IrQo9CgINCI0J7QodCY0J8KK9CS0JDQitCj0KAg0JrQkNCg0JvQngor0JLQkNCK0KPQoCDQmtCQ0KDQm9CeCivQktCQ0IrQo9CgINCc0JDQoNCY0IjQkAor0JLQkNCd0JrQniDQiNCQ0KDQntCh0JvQkNCSCivQktCQ0J3QntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JLQkNCf0JAg0IjQntCS0JDQndCa0JAKK9CS0JDQn9CQINCc0JjQm9CQ0J0g0JTQoAor0JLQkNCf0JAg0JLQldCg0JAKK9CS0JDQn9CQINCX0J7QoNCQ0J0KK9CS0JDQn9CV0J3QodCa0Jgg0JjQktCQ0J0KK9CS0JDQn9CV0J3QodCa0Jgg0JzQkNCg0JjQiNCQCivQktCQ0KDQqNCQ0IrQmCDQmNCg0JXQndCQCivQktCQ0KDQkNCC0JDQndCY0J0g0JzQmNCb0JDQnQor0JLQkNCg0JDQlNCYINCi0JjQkdCe0KAg0JTQoCDQn9Cg0J7QpAor0JLQkNCg0JDQk9CY0Isg0JHQntCT0JTQkNCdCivQktCQ0KDQkNCT0JjQiyDQidCj0JHQmNCm0JAKK9CS0JDQoNCQ0JPQmNCLINCc0JDQoNCY0IjQkAor0JLQkNCg0JDQk9CY0Isg0JzQldCb0JDQndCY0IjQkAor0JLQkNCg0JDQk9CY0Isg0JzQmNCb0JjQptCQCivQktCQ0KDQkNCT0JjQiyDQktCY0IvQldCd0KLQmNCI0JUKK9CS0JDQoNCQ0IjQmNCLINCT0J7QoNCQ0J0KK9CS0JDQoNCQ0IjQmNCLINCT0J7QoNCQ0J0KK9CS0JDQoNCQ0JLQkCDQldCc0JjQm9CY0IjQkNCdCivQktCQ0KDQkdCQ0Jgg0JvQkNCU0JjQodCb0JDQkgor0JLQkNCg0KbQkNCgINCU0JXQodCQ0J3QmtCQCivQktCQ0KDQlNCY0Isg0JPQkNCS0KDQmNCb0J4KK9CS0JDQoNCV0J3QmNCa0JAg0ILQntCa0JAKK9CS0JDQoNCV0J3QmNCa0JAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCQ0KDQldCd0JjQmtCQINCg0JDQlNCe0IjQmtCQCivQktCQ0KDQldCS0JDQpiDQlNCg0JDQk9CQ0J0KK9CS0JDQoNCT0JAg0KjQkNCd0JTQntCgCivQktCQ0KDQk9CQINCo0JDQndCU0J7QoAor0JLQkNCg0JPQkCDQqNCQ0J3QlNCe0KAKK9CS0JDQoNCT0JAg0KjQkNCd0JTQntCgCivQktCQ0KDQk9CQINCo0JDQndCU0J7QoAor0JLQkNCg0JPQkC3QqNCe0JzQntCC0Jgg0IjQkNCd0J7QqAor0JLQkNCg0JPQkCDQltCQ0KDQmtCeCivQktCQ0KDQk9CQINCC0JXQoNCCCivQktCQ0KDQk9CQINCC0J7QoNCC0JUKK9CS0JDQoNCT0JAg0ILQntCg0ILQlQor0JLQkNCg0JPQkCDQgtCj0JvQkAor0JLQkNCg0JPQkCDQgtCj0KDQkAor0JLQkNCg0JPQkCDQgtCj0KDQkAor0JLQkNCg0JPQkCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQkNCg0JPQkCDQkNCd0JAKK9CS0JDQoNCT0JAg0JDQndCU0KDQkNCoCivQktCQ0KDQk9CQINCQ0J3QlNCg0JjQiNCQCivQktCQ0KDQk9CQINCQ0J3QlNCg0JjQiNCQCivQktCQ0KDQk9CQINCQ0J3QotCe0J0KK9CS0JDQoNCT0JAg0JDQoNCQ0J3QmtCQCivQktCQ0KDQk9CQINCR0JXQm9CQCivQktCQ0KDQk9CQINCR0JXQm9CQCivQktCQ0KDQk9CQINCR0JjQidCQ0J3QkAor0JLQkNCg0JPQkC3QkdCj0KDQkNCYINCV0KDQltCV0JHQldCiCivQktCQ0KDQk9CQINCU0KDQkNCT0JjQptCQCivQktCQ0KDQk9CQINCU0KPQqNCQ0J3QmtCQCivQktCQ0KDQk9CQINCV0KDQltCY0JrQkAor0JLQkNCg0JPQkCDQpNCV0KDQldCd0KYKK9CS0JDQoNCT0JAg0KTQldCg0JXQndCmCivQktCQ0KDQk9CQINCk0JXQoNCV0J3Qpgor0JLQkNCg0JPQkCDQpNCg0JDQitCQCivQktCQ0KDQk9CQINCk0KDQkNCK0JAKK9CS0JDQoNCT0JAg0KTQoNCQ0IrQngor0JLQkNCg0JPQkCDQpNCg0JDQitCeCivQktCQ0KDQk9CQINCT0JDQkdCe0KAKK9CS0JDQoNCT0JAg0JPQmNCX0JXQm9CQCivQktCQ0KDQk9CQINCl0JXQm9CV0J3QkAor0JLQkNCg0JPQkCDQmNCo0KLQktCQ0J0KK9CS0JDQoNCT0JAg0JjQqNCi0JLQkNCdCivQktCQ0KDQk9CQINCY0KjQotCS0JDQnQor0JLQkNCg0JPQkCDQmNCo0KLQktCQ0J0KK9CS0JDQoNCT0JAg0JjQm9CV0KgKK9CS0JDQoNCT0JAg0JjQnNCg0JUKK9CS0JDQoNCT0JAt0JjQktCQ0J0g0JDQndCT0JXQm9CY0J3QkAor0JLQkNCg0JPQkCDQiNCQ0JrQmNCcCivQktCQ0KDQk9CQINCI0JDQnSDQlNCgCivQktCQ0KDQk9CQINCI0JDQndCe0KgKK9CS0JDQoNCT0JAg0IjQkNCd0J7QqAor0JLQkNCg0JPQkCDQiNCQ0KDQntCh0JvQkNCSCivQktCQ0KDQk9CQINCI0JXQm9CV0J3QkAor0JLQkNCg0JPQkCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JLQkNCg0JPQkCDQiNCe0JbQldCkCivQktCQ0KDQk9CQINCI0J7QltCV0KQKK9CS0JDQoNCT0JAg0IjQntCW0JXQpAor0JLQkNCg0JPQkCDQiNCe0KHQmNCf0JAKK9CS0JDQoNCT0JAg0IjQntCh0JjQnwor0JLQkNCg0JPQkCDQiNCe0KHQmNCfCivQktCQ0KDQk9CQINCI0J7QktCQ0J0KK9CS0JDQoNCT0JAg0IjQo9Cb0JjQiNCQCivQktCQ0KDQk9CQINCa0JDQoNCb0J4KK9CS0JDQoNCT0JAg0JrQkNCi0JDQoNCY0J3QkAor0JLQkNCg0JPQkCDQmtCQ0KLQkAor0JLQkNCg0JPQkC3QmtCb0JjQqNCQ0J3QmNCLINCJ0KPQkdCY0KbQkAor0JLQkNCg0JPQkCDQmtCe0KDQndCV0JvQmNCI0JAKK9CS0JDQoNCT0JAg0JrQntCg0J3QldCbCivQktCQ0KDQk9CQINCa0J7QodCQ0J3QkAor0JLQkNCg0JPQkCDQm9CQ0JTQmNCh0JvQkNCSCivQktCQ0KDQk9CQINCb0JDQiNCe0KgKK9CS0JDQoNCT0JAg0JvQkNCI0J7QqAor0JLQkNCg0JPQkCDQm9CQ0KHQm9CeCivQktCQ0KDQk9CQINCb0JDQodCb0J4KK9CS0JDQoNCT0JAg0JvQkNCh0JvQngor0JLQkNCg0JPQkCDQm9CQ0KHQm9CeCivQktCQ0KDQk9CQINCJ0KPQn9Ca0JAKK9CS0JDQoNCT0JAg0JzQkNCg0JPQmNCi0JAKK9CS0JDQoNCT0JAg0JzQkNCg0JjQiNCQCivQktCQ0KDQk9CQINCc0JDQoNCY0IjQkAor0JLQkNCg0JPQkCDQnNCQ0KDQmNCI0JAKK9CS0JDQoNCT0JAg0JzQmNCl0JDQiNCb0J4KK9CS0JDQoNCT0JAg0JzQmNCl0JDQiNCb0J4KK9CS0JDQoNCT0JAg0JzQmNCl0JDQiQor0JLQkNCg0JPQkCDQnNCY0KDQmtCeCivQktCQ0KDQk9CQINCc0JjQoNCe0J0KK9CS0JDQoNCT0JAg0JzQmNCg0J7QodCb0JDQkgor0JLQkNCg0JPQkCDQndCY0JrQntCb0JAKK9CS0JDQoNCT0JAg0J7Qm9CT0JAKK9CS0JDQoNCT0JAg0J/QkNCbCivQktCQ0KDQk9CQINCf0JDQmwor0JLQkNCg0JPQkCDQn9CV0KLQkNCgCivQktCQ0KDQk9CQINCf0JXQotCQ0KAKK9CS0JDQoNCT0JAg0J/QldCi0JXQoCDQlNCY0J/QmyDQmNCd0JMKK9CS0JDQoNCT0JAg0KDQkNCh0KLQmNCh0JvQkNCSCivQktCQ0KDQk9CQINCg0J7Ql9CQ0JvQmNCI0JAKK9CS0JDQoNCT0JAg0KDQntCX0JDQm9CY0IjQkAor0JLQkNCg0JPQkCDQodCb0JDQktCY0KbQkAor0JLQkNCg0JPQkCDQodCi0JXQktCQ0J0KK9CS0JDQoNCT0JAg0KHQotCV0JLQkNCdCivQktCQ0KDQk9CQINCh0KLQiNCV0J/QkNCdCivQktCQ0KDQk9CQINCi0JjQkdCe0KAKK9CS0JDQoNCT0JAg0KLQmNCR0J7QoAor0JLQkNCg0JPQkCDQktCV0KDQkAor0JLQkNCg0JPQkCDQktCV0KDQkAor0JLQkNCg0JPQkCDQktCV0KDQntCd0JjQmtCQCivQktCQ0KDQk9CQINCS0JvQkNCU0JjQodCb0JDQkgor0JLQkNCg0JPQkCDQktCb0JDQodCi0JAKK9CS0JDQoNCT0JAg0JfQntCb0KLQkNCdCivQktCQ0KDQk9CQINCX0J7Qm9Ci0JDQnQor0JLQkNCg0JPQldCmINCY0JLQkNCdCivQktCQ0KDQpdCe0JvQmNCaINCQ0JTQkNCcCivQktCQ0KDQmNCL0JDQmiDQkdCe0JbQngor0JLQkNCg0JjQi9CQ0Jog0JTQkNCg0JjQndCa0JAKK9CS0JDQoNCI0KMg0JvQkNCh0JvQngor0JLQkNCg0IjQoyDQnNCQ0KDQmNCI0JAKK9CS0JDQoNCI0KMg0KLQldCg0JXQl9CQCivQktCQ0KDQmtCQ0Kgg0JjQktCQ0J0KK9CS0JDQoNCc0JDQlyDQmNCh0JzQldCiCivQktCQ0KDQnNCV0ILQkCDQgtCe0KDQgtCVCivQktCQ0KDQnNCj0JbQkCDQnNCQ0IvQkNCoCivQktCQ0KDQndCY0KbQkCDQmNCS0JDQnQor0JLQkNCg0J3QmNCm0JAg0J/QldCi0JDQoAor0JLQkNCg0IrQoyDQkNCd0KPQqNCa0JAKK9CS0JDQoNCK0KMg0JPQmNCX0JXQm9CQCivQktCQ0KDQitCjINCY0JvQntCd0JAKK9CS0JDQoNCd0J7QoSDQnNCQ0KDQotCe0J0KK9CS0JDQoNCd0KPQoSDQiNCe0JbQldCkCivQktCQ0KDQntCo0KfQmNCLINCh0J/QkNCh0JXQndCY0IjQkAor0JLQkNCg0J7QqNCYINCT0JDQkdCg0JjQldCb0JAKK9CS0JDQoNCe0KjQmCDQiNCe0JLQkNCdCivQktCQ0KDQntCo0Jgg0KHQmNCb0JDQoNCUCivQktCQ0KHQldCb0JXQmiDQqNCi0JXQpNCQ0J0KK9CS0JDQodCV0JvQldCaINCh0KLQldCS0JDQnQor0JLQkNCh0JXQm9CV0Jog0KHQotCV0JLQkNCdCivQktCQ0KHQldCb0JXQmiDQktCQ0KHQmNCJCivQktCQ0KHQmNCLINCW0JXQidCa0J4KK9CS0JDQodCY0Isg0JbQmNCS0JrQkAor0JLQkNCh0JjQiyDQltCY0JLQmtCeCivQktCQ0KHQmNCLINCW0JjQktCa0J4KK9CS0JDQodCY0Isg0JbQmNCS0JrQngor0JLQkNCh0JjQiyDQgtCe0JrQkAor0JLQkNCh0JjQiyDQgtCe0KDQgtCVCivQktCQ0KHQmNCLINCC0J7QoNCC0JUKK9CS0JDQodCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JDQodCY0Isg0JDQndCY0KbQkAor0JLQkNCh0JjQiyDQkNCd0JrQmNCm0JAKK9CS0JDQodCY0Isg0JHQntCI0JDQndCQCivQktCQ0KHQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CS0JDQodCY0Isg0JHQntCg0JjQktCe0IgKK9CS0JDQodCY0Isg0JHQoNCQ0J3QmtCeCivQktCQ0KHQmNCLINCm0JLQldCi0JrQngor0JLQkNCh0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JLQkNCh0JjQiyDQlNCe0JHQoNCY0JLQntCICivQktCQ0KHQmNCLINCU0KDQkNCT0JDQndCQCivQktCQ0KHQmNCLINCU0KDQkNCT0JDQnQor0JLQkNCh0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQkNCh0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQkNCh0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQkNCh0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCQ0KHQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CS0JDQodCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JLQkNCh0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CS0JDQodCY0Isg0JTQo9Co0JDQnQor0JLQkNCh0JjQiyDQlNCj0KjQkNCdCivQktCQ0KHQmNCLINCU0KPQqNCQ0J0KK9CS0JDQodCY0Isg0JTQo9Co0JDQnQor0JLQkNCh0JjQiyDQlNCj0KjQkNCdCivQktCQ0KHQmNCLINCU0KPQqNCQ0J0KK9CS0JDQodCY0Isg0JTQo9Co0JDQnQor0JLQkNCh0JjQiyDQlNCj0KjQkNCdCivQktCQ0KHQmNCLINCU0KPQqNCY0KbQkAor0JLQkNCh0JjQiyDQlNCj0KjQmtCeINCd0J7QktCY0J3QkNCgCivQktCQ0KHQmNCLINCU0KPQkdCg0JDQktCa0JAKK9CS0JDQodCY0Isg0JXQm9CV0J3QkAor0JLQkNCh0JjQiyDQk9Ce0KDQkNCdCivQktCQ0KHQmNCLINCT0J7QoNCU0JDQndCQCivQktCQ0KHQmNCLINCT0J7QoNCU0JDQndCQCivQktCQ0KHQmNCLINCT0J7QoNCU0JjQptCQCivQktCQ0KHQmNCLINCI0JDQmtCe0JIKK9CS0JDQodCY0Isg0IjQkNCd0JAKK9CS0JDQodCY0Isg0IjQkNCd0JrQngor0JLQkNCh0JjQiyDQiNCV0JvQmNCm0JAKK9CS0JDQodCY0Isg0IjQntCS0J4KK9CS0JDQodCY0Isg0JrQkNCi0JjQptCQCivQktCQ0KHQmNCLINCa0J7QodCi0JAKK9CS0JDQodCY0Isg0JrQoNCY0KHQotCY0J3QkAor0JLQkNCh0JjQiyDQm9CQ0JfQkNCgCivQktCQ0KHQmNCLINCJ0JjQidCQ0J3QkCDQlNCgCivQktCQ0KHQmNCLINCJ0JjQidCQ0J3QkAor0JLQkNCh0JjQiyDQidCj0JHQntCc0JjQoAor0JLQkNCh0JjQiyDQm9Cj0JrQkAor0JLQkNCh0JjQiyDQnNCQ0JrQodCY0JwKK9CS0JDQodCY0Isg0JzQkNCg0JjQiNCQ0J3QkAor0JLQkNCh0JjQiyDQnNCQ0KDQmtCeCivQktCQ0KHQmNCLINCc0JjQi9CeCivQktCQ0KHQmNCLINCc0JjQpdCQ0JjQm9CeCivQktCQ0KHQmNCLINCc0JjQpdCQ0IjQm9CeCivQktCQ0KHQmNCLINCc0JjQmtCQCivQktCQ0KHQmNCLINCc0JjQm9CQ0J0KK9CS0JDQodCY0Isg0JzQmNCb0JDQnQor0JLQkNCh0JjQiyDQnNCY0JvQkNCdCivQktCQ0KHQmNCLINCc0JjQm9CQ0J0KK9CS0JDQodCY0Isg0JzQmNCb0JDQnQor0JLQkNCh0JjQiyDQnNCY0JvQldCd0JrQniDQlNCgINCf0KDQmNCc0JDQoNCY0KPQoQor0JLQkNCh0JjQiyDQnNCY0JvQldCd0JrQngor0JLQkNCh0JjQiyDQnNCY0JvQldCd0JrQngor0JLQkNCh0JjQiyDQnNCY0JvQmNCm0JAKK9CS0JDQodCY0Isg0JzQmNCb0JjQndCa0J4KK9CS0JDQodCY0Isg0JzQmNCb0J7QqAor0JLQkNCh0JjQiyDQnNCY0JvQntCoCivQktCQ0KHQmNCLINCc0JjQm9Ce0JLQkNCdCivQktCQ0KHQmNCLINCc0JjQm9Ce0JLQkNCdCivQktCQ0KHQmNCLINCc0JjQm9Cj0KLQmNCdCivQktCQ0KHQmNCLINCc0JjQntCU0KDQkNCTCivQktCQ0KHQmNCLINCc0JjQoNCI0JDQndCQCivQktCQ0KHQmNCLINCc0JjQoNCI0JDQndCQCivQktCQ0KHQmNCLINCc0JjQoNCI0JDQndCQCivQktCQ0KHQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JLQkNCh0JjQiyDQndCQ0JTQkAor0JLQkNCh0JjQiyDQndCQ0JTQkAor0JLQkNCh0JjQiyDQndCV0JTQldCJ0JrQngor0JLQkNCh0JjQiyDQndCV0JTQldCJ0JrQngor0JLQkNCh0JjQiyDQndCV0JTQldCJ0JrQngor0JLQkNCh0JjQiyDQndCY0JrQntCb0JAKK9CS0JDQodCY0Isg0J3QntCS0JDQmgor0JLQkNCh0JjQiyDQndCe0JLQkNCaCivQktCQ0KHQmNCLINCd0J7QktCQ0JoKK9CS0JDQodCY0Isg0J7Qm9CT0JAKK9CS0JDQodCY0Isg0J7Qm9CT0JjQptCQCivQktCQ0KHQmNCLINCe0KHQotCe0IjQkAor0JLQkNCh0JjQiyDQntCh0KLQntCI0JAKK9CS0JDQodCY0Isg0J/QkNCI0JAKK9CS0JDQodCY0Isg0J/QldCg0J4KK9CS0JDQodCY0Isg0J/QldCi0JDQoAor0JLQkNCh0JjQiyDQn9CV0KLQkNCgCivQktCQ0KHQmNCLLdCf0J7Qn9Ce0JLQmNCLINCJ0JjQidCQ0J3QkAor0JLQkNCh0JjQiyDQn9Cg0JLQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JLQkNCh0JjQiyDQoNCQ0JTQmNCm0JAKK9CS0JDQodCY0Isg0KDQkNCU0JjQktCe0IgKK9CS0JDQodCY0Isg0KDQkNCU0J7QiNCVCivQktCQ0KHQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CS0JDQodCY0Isg0KDQkNCU0J7QktCQ0J0KK9CS0JDQodCY0Isg0KDQkNCi0JrQngor0JLQkNCh0JjQiyDQoNCQ0JLQmNCm0JAKK9CS0JDQodCY0Isg0KHQkNCS0JAKK9CS0JDQodCY0Isg0KHQkNCS0JAKK9CS0JDQodCY0Isg0KHQkNCS0JAKK9CS0JDQodCY0Isg0KHQldCa0KPQm9CQCivQktCQ0KHQmNCLINCh0JvQkNCS0JjQptCQCivQktCQ0KHQmNCLINCh0JvQkNCS0JrQngor0JLQkNCh0JjQiyDQodCb0JDQktCa0J4KK9CS0JDQodCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQkNCh0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCQ0KHQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0JDQodCY0Isg0KHQndCV0JbQkNCd0JAKK9CS0JDQodCY0Isg0KHQntCk0JjQiNCQCivQktCQ0KHQmNCLINCh0KDQldCi0JrQngor0JLQkNCh0JjQiyDQodCi0JDQndCY0KjQkAor0JLQkNCh0JjQiyDQodCi0JXQktCQ0J0KK9CS0JDQodCY0Isg0KHQotCV0JLQkNCdCivQktCQ0KHQmNCLINCh0KLQldCS0JDQnQor0JLQkNCh0JjQiyDQodCi0JXQktCQ0J0KK9CS0JDQodCY0Isg0KHQktCV0KLQm9CQ0J3QkAor0JLQkNCh0JjQiyDQodCS0JXQotCe0JfQkNCgCivQktCQ0KHQmNCLINCi0JjQpdCe0JzQmNCgCivQktCQ0KHQmNCLINCi0JjQndCa0JAKK9CS0JDQodCY0Isg0KLQntCo0JAKK9CS0JDQodCY0Isg0KLQntCc0JjQodCb0JDQkgor0JLQkNCh0JjQiyDQktCV0JvQmNCc0JjQoAor0JLQkNCh0JjQiyDQktCV0JvQmNCc0JjQoAor0JLQkNCh0JjQiyDQktCV0KHQldCb0JjQnQor0JLQkNCh0JjQiyDQktCY0JTQkAor0JLQkNCh0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0KAg0JvQldCa0JDQoAor0JLQkNCh0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCQ0KHQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0JDQodCY0Isg0JfQlNCg0JDQktCa0J4KK9CS0JDQodCY0Isg0JfQntCg0JDQnQor0JLQkNCh0JjQiyDQl9Ce0KDQmNCm0JAKK9CS0JDQodCY0JvQp9CY0J0g0KHQm9Ce0JHQntCU0JDQnQor0JLQkNCh0JjQm9CV0KHQmtCYINCR0KDQkNCd0JrQngor0JLQkNCh0JjQm9CY0KjQmNCdINCQ0J3QotCe0J0KK9CS0JDQodCY0JvQmNCo0JjQnSDQnNCY0JvQkNCdCivQktCQ0KHQmNCb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JDQodCY0JvQmNCLINCU0JDQndCY0KbQkAor0JLQkNCh0JjQm9CY0Isg0JTQoNCQ0JPQkAor0JLQkNCh0JjQm9CY0Isg0JzQmNCb0JDQnQor0JLQkNCh0JjQm9CY0Isg0JzQmNCb0JXQndCa0J4KK9CS0JDQodCY0JvQmNCLINCc0JjQoNCQCivQktCQ0KHQmNCb0JjQiyDQndCY0JrQntCb0JAKK9CS0JDQodCY0JvQmNCLINCg0JDQiNCa0J4KK9CS0JDQodCY0JvQmNCLINCh0KLQldCS0JDQnQor0JLQkNCh0JjQm9CY0Isg0KLQntCU0JUKK9CS0JDQodCY0JvQmNCLINCS0JXQodCd0JAKK9CS0JDQodCY0JvQmNCLINCS0J7QiNCY0J0g0JTQmNCf0Jsg0JjQndCTCivQktCQ0KHQmNCJ0KfQmNCdINCW0JjQktCa0J4KK9CS0JDQodCY0InQldCSINCQ0J3QkAor0JLQkNCh0JjQidCV0JIg0JTQldCI0JDQnQor0JLQkNCh0JjQidCV0JIg0JTQoNCQ0JPQntCh0JvQkNCSCivQktCQ0KHQmNCJ0JXQkiDQiNCV0JvQmNCm0JAKK9CS0JDQodCY0InQldCSINCI0J7QktCQ0J0KK9CS0JDQodCY0InQldCSINCI0J7QktCQ0J0KK9CS0JDQodCY0InQldCSINCJ0KPQkdCY0KbQkAor0JLQkNCh0JjQidCV0JIg0JzQkNCg0JAKK9CS0JDQodCY0InQldCSINCc0JjQm9Ce0KDQkNCUCivQktCQ0KHQmNCJ0JXQkiDQnNCY0KDQntCJ0KPQkQor0JLQkNCh0JjQidCV0JIg0JzQmNCi0JAKK9CS0JDQodCY0InQldCSINCg0JDQlNCe0JLQkNCdCivQktCQ0KHQmNCJ0JXQkiDQodCf0JDQodCe0IjQlQor0JLQkNCh0JjQidCV0JIg0KHQotCQ0J3QntCI0JUKK9CS0JDQodCY0InQldCSINCi0JDQnNCQ0KDQkAor0JLQkNCh0JjQidCV0JIg0JfQlNCg0JDQktCa0J4KK9CS0JDQodCY0InQldCS0JjQiyDQqNCQ0KDQm9Ce0KLQkAor0JLQkNCh0JjQidCV0JLQmNCLINCW0JjQktCe0KLQkAor0JLQkNCh0JjQidCV0JLQmNCLINCC0J7QoNCC0JUKK9CS0JDQodCY0InQldCS0JjQiyDQgtCj0KDQkAor0JLQkNCh0JjQidCV0JLQmNCLLdCQ0IvQkNCd0KHQmtCYINCY0JLQkNCd0JAKK9CS0JDQodCY0InQldCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JLQkNCh0JjQidCV0JLQmNCLINCQ0J3QlNCg0JXQiNCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0KbQktCV0KLQmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0JTQkNCd0JjQptCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0JTQoNCQ0JPQmNCo0JAKK9CS0JDQodCY0JvQiNCV0JLQmNCLINCU0KPQqNCY0KbQkAor0JLQkNCh0JjQidCV0JLQmNCLINCT0JvQmNCT0J7QoAor0JLQkNCh0JjQidCV0JLQmNCLINCT0J7QiNCQ0J0KK9CS0JDQodCY0InQldCS0JjQiyDQk9Ce0IjQmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0JPQoNCe0JfQlNCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0IjQkNCS0J7QoNCa0JAKK9CS0JDQodCY0InQldCS0JjQiyDQiNCj0JvQmtCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0JvQldCf0JAKK9CS0JDQodCY0InQldCS0JjQiyDQidCj0JHQmNCd0JrQngor0JLQkNCh0JjQidCV0JLQmNCLINCc0JDQoNCa0J4KK9CS0JDQodCY0InQldCS0JjQiyDQnNCQ0KDQmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0JzQmNCb0JXQndCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0JDQodCY0InQldCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JLQkNCh0JjQidCV0JLQmNCLINCc0JjQidCa0J4KK9CS0JDQodCY0InQldCS0JjQiyDQnNCY0JvQntCoCivQktCQ0KHQmNCJ0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0JDQodCY0InQldCS0JjQiyDQnNCY0J7QlNCg0JDQkyDQlNCY0J/QmyDQmNCd0JMKK9CS0JDQodCY0InQldCS0JjQiyDQnNCY0KDQkAor0JLQkNCh0JjQidCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JDQodCY0InQldCS0JjQiyDQnNCe0JzQp9CY0JvQniDQlNCgCivQktCQ0KHQmNCJ0JXQktCY0Isg0J3QkNCU0JAKK9CS0JDQodCY0InQldCS0JjQiyDQndCV0JTQldCJ0JrQngor0JLQkNCh0JjQidCV0JLQmNCLINCd0JXQktCV0J3QmtCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQktCQ0KHQmNCJ0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQktCQ0KHQmNCJ0JXQktCY0Isg0J7Qm9CT0JAKK9CS0JDQodCY0InQldCS0JjQiyDQntCh0KLQntCI0JAKK9CS0JDQodCY0InQldCS0JjQiyDQn9CV0KLQkNCgCivQktCQ0KHQmNCJ0JXQktCY0Isg0J/QldCi0JDQoAor0JLQkNCh0JjQidCV0JLQmNCLINCg0JDQlNCQCivQktCQ0KHQmNCJ0JXQktCY0Isg0KDQkNCU0JXQndCa0JAKK9CS0JDQodCY0InQldCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0JLQkNCh0JjQidCV0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CS0JDQodCY0InQldCS0JjQiyDQoNCQ0JTQngor0JLQkNCh0JjQidCV0JLQmNCLINCg0JDQiNCQINCd0J7QktCY0J3QkNCgCivQktCQ0KHQmNCJ0JXQktCY0Isg0KDQkNCI0JrQngor0JLQkNCh0JjQidCV0JLQmNCLINCh0JjQnNCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JLQkNCh0JjQidCV0JLQmNCLINCi0JjQpdCe0JzQmNCgCivQktCQ0KHQmNCJ0JXQktCY0Isg0KLQntCo0JAKK9CS0JDQodCY0InQldCS0JjQiyDQo9Cc0JrQkAor0JLQkNCh0JjQidCV0JLQmNCLINCS0JXQoNCY0KbQkAor0JLQkNCh0JjQidCV0JLQmNCLINCS0KPQmtCY0KbQkAor0JLQkNCh0JjQidCV0JLQmNCLINCX0JTQoNCQ0JLQmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0JfQm9CQ0KLQmtCeCivQktCQ0KHQmNCJ0JXQktCY0Isg0JfQm9CQ0KLQntCI0JUKK9CS0JDQodCY0InQldCS0JjQiyDQl9Ce0KDQkNCdCivQktCQ0KHQmNCJ0JXQktCh0JrQmCDQktCQ0KHQmNCb0JjQiNCVCivQktCQ0KHQmNCdINCC0J7QoNCC0JUKK9CS0JDQodCY0J0g0ILQntCg0ILQlQor0JLQkNCh0JjQnSDQkNCd0ILQldCb0JrQkAor0JLQkNCh0JjQnSDQkNCg0JDQndCa0JAKK9CS0JDQodCY0J0g0JHQntCg0JjQktCe0IjQlQor0JLQkNCh0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JDQodCY0J0g0JTQoNCQ0JPQkNCd0JAKK9CS0JDQodCY0J0g0JTQoNCQ0JPQntCc0JjQoAor0JLQkNCh0JjQnSDQiNCQ0KHQnNCY0J3QkAor0JLQkNCh0JjQnSDQiNCV0JvQldCd0JAKK9CS0JDQodCY0J0g0IjQldCS0KDQntCh0JjQnNCQCivQktCQ0KHQmNCdINCI0KPQm9Ca0JAKK9CS0JDQodCY0J0g0JvQkNCX0JDQoAor0JLQkNCh0JjQnSDQidCj0JHQmNCd0JrQkAor0JLQkNCh0JjQnSDQnNCQ0KDQmNCm0JAKK9CS0JDQodCY0J0g0JzQmNCb0JXQndCa0J4KK9CS0JDQodCY0J0g0JzQmNCb0JXQndCa0J4KK9CS0JDQodCY0J0g0J3QldCU0JXQidCa0J4KK9CS0JDQodCY0J0g0J7Qm9CT0JjQptCQCivQktCQ0KHQmNCdINCf0JDQktCb0JUKK9CS0JDQodCY0J0g0J/QldCi0JDQoAor0JLQkNCh0JjQnSDQoNCQ0JTQmNCS0J7QiAor0JLQkNCh0JjQnSDQodCi0JXQktCQ0J0KK9CS0JDQodCY0J0g0KHQktCV0KLQmNCh0JvQkNCSCivQktCQ0KHQmNCdINCh0JLQldCi0J7Ql9CQ0KAKK9CS0JDQodCY0J0g0KLQntCU0J7QoAor0JLQkNCh0JjQnSDQl9Ce0KDQkAor0JLQkNCh0JrQniDQktCV0KDQkAor0JLQkNCh0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQkNCh0JrQoNCh0JjQiyDQodCQ0JLQldCi0JAKK9CS0JDQodCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCQ0KHQntCS0JjQiyDQnNCY0JvQldCd0JAKK9CS0JDQodCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQktCQ0KHQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JLQkNCh0J7QktCY0Isg0KHQm9CQ0JLQmNCc0JjQoNCa0JAKK9CS0JDQotCQ0IjQmCDQgtCj0JvQkAor0JLQkNCi0JjQiyDQnNCQ0KDQiNCQ0J0KK9CS0JDQotCY0Isg0JzQkNCg0JrQngor0JLQkNCi0JjQiyDQnNCY0KDQkNCoCivQktCQ0KLQmNCLINCd0JjQmtCe0JvQkAor0JLQkNCi0J7QktCY0Isg0KXQoNCQ0J3QmNCh0JvQkNCSCivQktCQ0KLQntCS0JjQiyDQiNCV0JvQldCd0JAKK9CS0JDQo9Cg0JjQp9CQ0Jog0JrQkNCi0JDQm9CY0J0KK9CS0JDQktCQ0J0g0JzQmNCb0J7QoNCQ0JQKK9CS0JDQktCQ0J0g0JzQmNCb0J7QoNCQ0JQKK9CS0JDQktCQ0J0g0JzQm9CQ0JTQldCd0JrQngor0JLQkNCS0JDQnSDQn9CQ0JLQm9CVCivQktCQ0JLQkNCdINCh0JvQkNCS0JrQngor0JLQkNCS0JjQiyDQiNCe0JLQkNCdCivQktCQ0JLQoNCQINCf0KDQldCU0KDQkNCTCivQktCQ0JLQoNCY0J0g0IjQntCh0JjQnwor0JLQkNCS0KDQmNCdINCf0JXQotCQ0KAKK9CS0JTQntCS0JjQkNCaINCR0JXQoNCd0JDQoNCUCivQktCV0KfQldCYINCI0J7QltCV0KQKK9CS0JXQp9CV0Jgg0IjQntCh0JjQnwor0JLQldCn0JXQmCDQidCY0InQkNCd0JAKK9CS0JXQp9CV0IjQmCDQiNCe0JLQkNCdCivQktCV0KfQldCg0JAg0JzQmNCl0JDQiNCb0J4KK9CS0JXQp9CV0KDQmCDQiNCj0JvQmNCj0KEKK9CS0JXQp9CYINCY0KjQotCS0JDQnQor0JLQldCn0JjQiyDQodCS0JXQotCb0JDQndCQCivQktCV0KjQm9CY0JPQkNCIINCh0KLQldCS0JDQnQor0JLQldCo0JvQmNCT0JDQiCDQktCV0KDQkAor0JLQldCo0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQktCV0KjQntCS0JjQiyDQm9CV0J7Qn9Ce0JvQlAor0JLQldCo0J7QktCY0Isg0J7Qm9CT0JAKK9CS0JXQqNCe0JLQmNCLINCh0JzQmNCJ0JDQndCQCivQktCV0KjQntCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9CS0JXQqNCe0JLQmNCLINCS0KPQmtCh0JDQnQor0JLQldCo0J7QktCY0Isg0JfQntCg0JrQkCDQnNCgCivQktCV0IvQmtCQ0JvQntCSINCC0J7QoNCC0JUKK9CS0JXQi9Ca0JDQm9Ce0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQi9Ca0JDQm9Ce0JIg0KHQntCk0JjQiNCQINCU0KAg0JvQldCa0JDQoAor0JLQldCR0JXQmyDQktCQ0JvQldCg0JjQiNCQCivQktCV0JHQldCgINCR0J7QltCQ0J3QkAor0JLQldCR0JXQoCDQk9CQ0JHQoNCY0JXQm9CQCivQktCV0JHQldCgINCT0JDQkdCg0JjQldCb0JAKK9CS0JXQkdCV0KAg0JzQmNCb0JjQptCQCivQktCV0JHQldCgINCe0JvQk9CQCivQktCV0JHQldCgINCi0JXQoNCV0JfQmNCI0JAKK9CS0JXQkyDQqNCQ0J3QlNCe0KAKK9CS0JXQkyDQldCd0JjQmtCVCivQktCV0JPQqNCVINCf0JDQktCb0JUKK9CS0JXQk9CV0Jsg0JvQkNCh0JvQngor0JLQldCT0JLQkNCg0Jgg0JTQldCW0JUKK9CS0JXQk9CS0JDQoNCYINCI0KPQm9CY0JDQndCQCivQktCV0JPQktCQ0KDQmCDQnNCY0JrQm9Ce0KgKK9CS0JXQpdCi0JXQoCDQmtCQ0KDQntCJCivQktCV0KXQotCV0KAg0JrQkNCg0J7QiQor0JLQldCl0KLQldCgINCX0J7Qm9Ci0JDQnQor0JLQldCY0J0g0IjQldCa0JAKK9CS0JXQmNCdINCX0J7QoNCa0JAKK9CS0JXQmNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQktCV0IjQmNCdINCC0J7QoNCC0JUKK9CS0JXQiNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CS0JXQiNCY0J0g0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCV0IjQmNCdINCU0KPQqNCQ0J3QmtCQCivQktCV0IjQmNCdINCa0KDQmNCh0KLQmNCd0JAKK9CS0JXQiNCd0J7QktCY0Isg0JTQkNCd0JUKK9CS0JXQiNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCV0IjQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JLQldCI0J3QntCS0JjQiyDQnNCY0KDQmtCeCivQktCV0IjQndCe0JLQmNCLINCc0JvQkNCU0JXQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0JXQiNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQktCV0IjQndCe0JLQmNCLINCe0JHQoNCQ0JQKK9CS0JXQiNCd0J7QktCY0Isg0KDQkNCI0JrQngor0JLQldCI0J3QntCS0JjQiyDQodCY0JzQldCe0J0KK9CS0JXQiNCd0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CS0JXQiNCd0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CS0JXQiNCd0J7QktCY0Isg0JLQkNCI0JrQngor0JLQldCI0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCV0IjQl9Ce0JLQodCa0Jgg0JLQldCI0JcKK9CS0JXQmtCQ0Kgg0JbQo9CW0JDQndCQCivQktCV0JrQkNCoINCQ0KLQmNCb0JAKK9CS0JXQmtCQ0Kgg0JXQktCQCivQktCV0JrQkNCoINCV0JLQkAor0JLQldCa0JDQqCDQiNCQ0J3QntCoCivQktCV0JrQkNCoINCI0KPQlNCY0KLQkAor0JLQldCa0JDQqCDQm9CQ0KHQm9CeCivQktCV0JrQmNCLINCQ0J3QkAor0JLQldCa0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0JXQmtCY0Isg0JXQm9CV0J3QkAor0JLQldCa0JjQiyDQiNCj0JvQmNCI0JDQndCQCivQktCV0JrQmNCLINCd0JjQmtCe0JvQkAor0JLQldCa0JjQiyDQn9CV0KLQkNCgCivQktCV0JrQmNCLINCg0JDQlNCY0JLQntCICivQktCV0JrQmNCLINCg0JDQlNCc0JjQm9CQCivQktCV0JrQmNCLINCi0JXQoNCV0JfQkAor0JLQldCa0JjQiyDQotCV0KDQldCX0JAKK9CS0JXQmtCY0Isg0JfQktCe0J3QmtCeCivQktCV0JrQntCKINCo0JDQndCU0J7QoAor0JLQldCa0J7QiiDQm9CQ0JTQmNCh0JvQkNCSCivQktCV0JrQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQldCb0KfQldCaINCY0KjQotCS0JDQnQor0JLQldCb0KfQldCaINCI0J7QodCY0J8KK9CS0JXQm9Cn0JXQmiDQktCb0JDQlNCY0JzQmNCgCivQktCV0JvQgtCYINCQ0J3QkAor0JLQldCb0ILQmCDQiNCe0JbQldCkCivQktCV0JvQgtCYINCb0JDQlNCY0KHQm9CQ0JIKK9CS0JXQm9CC0Jgg0JzQkNCg0JjQiNCQCivQktCV0JvQkNCT0JjQiyDQodCQ0IrQkAor0JLQldCb0JDQiNCQINCI0J7QktCeCivQktCV0JvQkdCQ0JHQntCS0JjQiyDQlNCV0KHQkNCd0JrQkAor0JLQldCb0JHQkNCR0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0JXQm9CR0JDQkdCe0JLQmNCLINCg0JDQlNCY0J3QmtCQCivQktCV0JvQldCn0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0JXQm9CV0KfQmtCe0JLQmNCLINCV0JLQkAor0JLQldCb0JXQnNCY0KAg0JDQndCY0KbQkAor0JLQldCb0JXQnNCY0KAg0JTQoNCQ0JPQntCJ0KPQkQor0JLQldCb0JXQnNCY0KAg0JjQm9CY0IjQkAor0JLQldCb0JXQnNCY0KAg0JzQmNCb0J7QnNCY0KAKK9CS0JXQm9CV0JzQmNCgINCg0JjQodCi0J4KK9CS0JXQm9CV0JzQmNCgINCg0JjQodCi0J4KK9CS0JXQm9CV0JzQmNCgINCh0JDQktCa0JAKK9CS0JXQm9CV0JzQmNCgINCh0JvQkNCS0JrQngor0JLQldCb0JXQnNCY0KAg0KHQktCV0KLQntCc0JjQoAor0JLQldCb0JXQnNCY0KAg0KLQntCU0J7QoAor0JLQldCb0JXQnNCY0KAg0JLQntCI0JAKK9CS0JXQm9CV0JzQmNCgINCS0J7QiNCa0J4KK9CS0JXQm9CV0JzQmNCg0J7QkiDQodCY0JzQkAor0JLQldCb0JXQndCU0JXQp9CY0Isg0JHQntCW0J4KK9CS0JXQm9CV0J3QlNCV0KfQmNCLINCc0JjQm9CQ0J0KK9CS0JXQm9CV0Jcg0JjQqNCi0JLQkNCdCivQktCV0JvQldCXINCY0KjQotCS0JDQnQor0JLQldCb0KXQldChINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JXQm9Cl0J3QldCgINCI0J7QodCY0J8g0JTQmNCf0Jsg0JjQndCTCivQktCV0JvQmNCn0JrQntCSINCW0JjQktCQ0J0KK9CS0JXQm9CY0KfQmtCe0JIg0JTQkNCd0JjQptCQCivQktCV0JvQmNCn0JrQntCSINCT0KDQntCX0JTQkAor0JLQldCb0JjQp9Ca0J7QkiDQmtCQ0KLQmNCm0JAKK9CS0JXQm9CY0KfQmtCe0JIg0InQmNCJ0JAKK9CS0JXQm9CY0KfQmtCe0JIg0J3QkNCi0JDQqNCQCivQktCV0JvQmNCn0JrQntCSINCg0JDQlNCY0JLQntCICivQktCV0JvQmNCn0JrQntCS0JjQiyDQltCY0JLQntCg0JDQlCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JLQldCb0JjQp9Ca0J7QktCY0Isg0JbQmNCS0J7QotCQCivQktCV0JvQmNCn0JrQntCS0JjQiyDQgtCe0KDQgtCVCivQktCV0JvQmNCn0JrQntCS0JjQiyDQkdCY0InQkNCd0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCV0JzQmNCb0JjQiNCQCivQktCV0JvQmNCn0JrQntCS0JjQiyDQmNCS0JDQndCa0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCa0KHQldCd0JjQiNCQCivQktCV0JvQmNCn0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCc0JjQm9CQ0J3QmtCQCivQktCV0JvQmNCn0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQktCV0JvQmNCn0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCV0JvQmNCn0JrQntCS0JjQiyDQndCV0J3QkNCUCivQktCV0JvQmNCn0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCf0JXQoNCh0JjQlNCQCivQktCV0JvQmNCn0JrQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JLQldCb0JjQp9Ca0J7QktCY0Isg0KHQm9CQ0JLQmNCo0JAKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCh0JvQkNCS0J7QidCj0JEKK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCh0J7QitCQCivQktCV0JvQmNCn0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0JXQm9CY0KfQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CS0JXQm9CY0KfQmtCe0JLQodCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQm9CY0KjQldCaINCT0JDQkdCg0JjQldCb0JAKK9CS0JXQm9CY0KjQldCaINCT0JXQl9CQCivQktCV0JvQmNCo0JXQmiDQmtCQ0KDQm9CeCivQktCV0JvQmNCLINCY0JvQmNCI0JAKK9CS0JXQm9CY0Isg0JfQntCg0JDQnQor0JLQldCb0JjQptCa0Jgg0ILQntCg0ILQlQor0JLQldCb0JjQptCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQm9CY0KbQmtCYINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCV0JvQmNCm0JrQmCDQiNCV0JvQmNCm0JAKK9CS0JXQm9CY0KbQmtCYINCI0J7QktCY0KbQkAor0JLQldCb0JjQptCa0Jgg0InQo9CR0J7QnNCY0KAKK9CS0JXQm9CY0KbQmtCYINCc0JjQm9CQ0J0KK9CS0JXQm9CY0KbQmtCYINCc0JjQm9CQ0J0KK9CS0JXQm9CY0KbQmtCYINCc0JjQm9CY0JLQntCICivQktCV0JvQmNCm0JrQmCDQnNCY0J7QlNCg0JDQkwor0JLQldCb0JjQptCa0Jgg0J3QntCS0JDQmgor0JLQldCb0JjQptCa0Jgg0KHQktCV0KLQntCX0JDQoAor0JLQldCb0JjQptCa0Jgg0KPQoNCe0KgKK9CS0JXQm9CY0KbQmtCYINCX0J7QoNCQ0J0KK9CS0JXQm9CY0KbQmtCYINCX0J7QoNCQCivQktCV0JvQmNCI0JAg0InQmNCJ0JDQndCQCivQktCV0JvQmNCI0JAg0KDQldCC0JXQnwor0JLQldCb0JjQmtCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQktCV0JvQmNCa0JjQiyDQkNCd0JAKK9CS0JXQm9CY0JrQmNCLINCU0JDQndCY0KbQkAor0JLQldCb0JjQmtCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0JXQm9CY0JrQmNCLINCh0JjQnNCQCivQktCV0JvQmNCa0JjQiyDQl9Ce0KDQkNCdCivQktCV0JvQmNCc0JjQoNCe0JIg0IjQldCb0JXQndCQCivQktCV0JvQmNCc0JjQoNCe0JIg0JzQmNCb0J7QqAor0JLQldCb0JjQnNCY0KDQntCSINCS0JvQkNCU0JjQnNCY0KAKK9CS0JXQm9CY0JzQmNCg0J7QktCY0Isg0JDQndCT0JXQm9CQCivQktCV0JvQmNCc0JjQoNCe0JLQmNCLINCR0J7QqNCa0J4KK9CS0JXQm9CY0JzQmNCg0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQktCV0JvQmNCc0JjQoNCe0JLQmNCLINCU0KDQkNCo0JrQngor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQktCV0JvQmNCc0JjQoNCe0JLQmNCLINCb0JDQl9CQ0KAKK9CS0JXQm9CY0JzQmNCg0J7QktCY0Isg0J3QntCS0JDQmgor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQodCY0JzQldCe0J0KK9CS0JXQm9CY0JzQmNCg0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CS0JXQm9CY0JzQmNCg0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQodCc0JjQidCQ0J3QkAor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JLQldCb0JjQnNCY0KDQntCS0JjQiyDQktCe0IjQmNCdCivQktCV0JvQmNCe0KHQmtCYINCh0JDQlNCV0JwKK9CS0JXQm9CY0J7QkiDQj9CV0JzQkNCI0JvQngor0JLQldCb0JjQodCQ0JLQidCV0JIg0JPQntCg0JTQkNCd0JAg0JTQoAor0JLQldCb0JjQodCQ0JLQidCV0JIg0JzQmNCb0J7QoNCQ0JQg0JTQoAor0JLQldCb0JjQodCQ0JLQidCV0JIg0KHQoNCV0JTQntCI0JUKK9CS0JXQm9CY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JLQldCJ0JAg0JbQmNCS0JAg0JTQmNCfINCe0JXQpgor0JLQldCJ0JAg0J/QldCi0JDQoAor0JLQldCJ0JDQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQldCJ0JDQndCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQktCV0InQkNCd0J7QktCY0Isg0KLQntCc0JjQodCb0JDQktCQCivQktCV0InQkNCd0J7QktCh0JrQmCDQmNCS0JDQnQor0JLQldCJ0JjQiyDQnNCY0JvQntCS0JDQnQor0JLQldCJ0JrQniDQkNCd0ILQldCb0JrQngor0JLQldCJ0JrQntCSINCU0JDQoNCY0J3QmtCQCivQktCV0InQmtCe0JIg0JPQldCe0KDQk9CY0IjQlQor0JLQldCJ0JrQntCSINCY0JTQkAor0JLQldCJ0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9CS0JXQidCa0J7QkiDQn9CQ0JLQm9CVCivQktCV0InQmtCe0JIt0J/QpNCQ0IjQpNCV0KAg0KHQntCk0JjQiNCQCivQktCV0InQmtCe0JIg0KHQotCV0JLQkNCdCivQktCV0InQmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JLQldCJ0JrQntCS0JjQiyDQltCQ0KDQmtCeCivQktCV0InQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgINCU0JjQn9CbINCY0J3Qkwor0JLQldCJ0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQldCJ0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQkAor0JLQldCJ0JrQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQldCJ0JrQntCS0JjQiyDQkdCe0IjQkNCdCivQktCV0InQmtCe0JLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9CS0JXQidCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCV0InQmtCe0JLQmNCLINCc0JjQm9Ce0JzQmNCgCivQktCV0InQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQktCV0InQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQktCV0InQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQktCV0InQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CS0JXQidCa0J7QktCY0Isg0J3QkNCU0JAKK9CS0JXQidCa0J7QktCY0Isg0J/QldCi0JDQoAor0JLQldCJ0JrQntCS0JjQiyDQoNCQ0JTQkAor0JLQldCJ0JrQntCS0JjQiyDQoNCQ0JTQmNCh0JDQkgor0JLQldCJ0JrQntCS0JjQiyDQoNCQ0JTQntCh0JDQkgor0JLQldCJ0JrQntCS0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQktCV0InQmtCe0JLQmNCLINCg0KPQltCY0KbQkAor0JLQldCJ0JrQntCS0JjQiyDQodCg0JXQotCV0J0KK9CS0JXQidCa0J7QktCY0Isg0KHQktCV0KLQkAor0JLQldCJ0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CS0JXQidCa0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CS0JXQidCa0J7QktCY0Isg0JLQmNCU0J7QiNCVCivQktCV0InQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0JXQidCa0J7QktCY0Isg0JLQo9Ca0JDQqNCY0J0KK9CS0JXQidCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0JXQidCe0JLQmNCLINCb0JXQn9Ce0KHQkNCS0JAKK9CS0JXQidCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JXQidCe0JLQmNCLINCc0JjQotCQ0KAKK9CS0JXQidCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQktCV0InQntCS0JjQiyDQn9CQ0JLQm9CVCivQktCV0InQntCS0JjQiyDQoNCj0JbQkAor0JLQldCJ0J7QktCY0Isg0KHQmNCc0J4KK9CS0JXQidCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQktCV0JvQmtCe0JLQodCa0Jgg0JjQoNCV0J3QkAor0JLQldCb0JrQntCS0KHQmtCYINCi0JXQntCk0JjQmwor0JLQldCc0JXQndCQ0KYg0J7QkdCg0JDQlAor0JLQldCc0JjQiyDQkdCe0KDQkAor0JLQldCc0JjQiyDQlNCg0JDQk9CY0IrQkAor0JLQldCc0JjQiyDQmNCb0JjQiNCQCivQktCV0JzQmNCLINCb0JDQl9CQ0KAKK9CS0JXQnNCY0Isg0JzQmNCb0JDQnQor0JLQldCc0JjQiyDQoNCQ0JTQmNCS0J7QiNCVINCU0KAKK9CS0JXQnNCY0Isg0KDQkNCU0JjQktCe0IjQlQor0JLQldCd0KfQldCb0J7QktCh0JrQmCDQidCj0JHQmNCm0JAKK9CS0JXQndCn0JXQm9Ce0JLQodCa0Jgg0JLQm9CQ0JTQkAor0JLQldCd0KfQldCb0J7QktCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQktCV0J3Qp9CV0JvQntCS0KHQmtCYINCS0JvQkNCh0KLQkAor0JLQldCd0KbQldCbINCT0JXQl9CQCivQktCV0J3QptCV0Jsg0JPQldCX0JAKK9CS0JXQndCm0Jsg0IjQntCh0JjQnwor0JLQldCd0KbQmyDQl9CS0J7QndCY0JzQmNCgCivQktCV0J3QlNCb0JXQndCV0KAg0JDQndCU0KDQmNCI0JDQndCQCivQktCV0J3QlNCb0JXQndCV0KAg0IjQldCb0JXQndCQCivQktCV0J3QlNCb0JXQndCV0KAg0JfQntCg0JDQnQor0JLQldCd0JUg0JPQntCg0JTQkNCd0JAKK9CS0JXQndCT0KDQmNCdINCQ0JPQndCV0KgKK9CS0JXQndCT0KDQmNCd0JMg0KTQldCg0JXQndCmCivQktCV0J3Qk9Cg0JjQndCTINCh0KLQldCS0JDQnQor0JLQldCg0JDQpiDQnNCY0J7QlNCg0JDQkwor0JLQldCg0JHQkCDQiNCe0JbQldCkCivQktCV0KDQkdCQ0J3QldCmINCY0KjQotCS0JDQnQor0JLQldCg0JHQkNCd0JXQpiDQmNCo0KLQktCQ0J0KK9CS0JXQoNCR0JDQodCYINCk0KDQkNCK0JAKK9CS0JXQoNCR0JDQodCYINCI0J7QktCQ0J3QmtCQCivQktCV0KDQldCoINCC0KPQm9CQCivQktCV0KDQldCoINCQ0J3QlNCg0JjQiNCQCivQktCV0KDQldCoINCU0KDQkNCT0KPQotCY0J0KK9CS0JXQoNCV0Kgg0KXQkNCI0J3QkNCb0JrQkAor0JLQldCg0JXQqCDQmNCS0JDQnQor0JLQldCg0JXQqCDQiNCV0JvQmNCh0JDQktCV0KLQkAor0JLQldCg0JXQqCDQiNCe0JbQldCkCivQktCV0KDQldCoINCI0J7QodCY0J8KK9CS0JXQoNCV0Kgg0IjQntCh0JjQnwor0JLQldCg0JXQqCDQm9CQ0JTQmNCh0JvQkNCSCivQktCV0KDQldCoINCc0JDQoNCY0IjQkAor0JLQldCg0JXQqNCR0JDQoNCQ0IrQmCDQmNCo0KLQktCQ0J0KK9CS0JXQoNCV0KjQkdCQ0KDQkNCK0Jgg0JzQkNCg0JjQiNCQCivQktCV0KDQldCo0JXQktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CS0JXQoNCV0JbQkNCdINCC0KPQoNCY0KbQkAor0JLQldCg0JXQltCQ0J0g0JfQntCg0JrQkAor0JLQldCg0JXQkSDQltCj0JbQkNCd0JAKK9CS0JXQoNCV0JHQldCoINCR0J7QoNCY0KHQm9CQ0JLQkAor0JLQldCg0JXQkdCV0Kgg0JXQoNCS0JjQnQor0JLQldCg0JXQptCa0JXQmCDQlNCj0KjQmNCm0JAKK9CS0JXQoNCV0KbQmtCV0Jgg0JPQldCX0JAKK9CS0JXQoNCV0KbQmtCV0Jgg0JzQkNCg0JPQmNCi0JAKK9CS0JXQoNCT0JDQqCDQkdCg0JDQndCa0J4KK9CS0JXQoNCY0Isg0KDQkNCi0JrQngor0JLQldCg0JrQmNCLINCi0J7QlNCe0KAKK9CS0JXQoNCa0JjQiyDQktCY0KLQntCc0JjQoAor0JLQldCg0JrQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0JXQoNCb0JjQiyDQnNCY0JvQkNCdCivQktCV0KDQnNCV0Kgg0JvQmNCb0JgKK9CS0JXQoNCc0JXQl9Ce0JLQmNCLINCC0J7QoNCC0JUKK9CS0JXQoNCd0JDQp9Ca0Jgg0JDQndCY0KLQkAor0JLQldCg0J3QkNCn0JrQmCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JXQoNCd0JDQp9Ca0Jgg0JPQkNCS0KDQkAor0JLQldCg0J3QkNCn0JrQmCDQk9CQ0JLQoNCY0JvQngor0JLQldCg0J3QkNCn0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQktCV0KDQndCV0KAg0JDQndCQCivQktCV0KDQndCV0KAg0JzQmNCl0JDQiNCb0J4KK9CS0JXQoNCd0JXQoCDQodCi0JXQktCQ0J0KK9CS0JXQoNCd0J7QoiDQkNCd0JAKK9CS0JXQoNCd0J7QoiDQlNCj0IrQkAor0JLQldCg0J3QntCiINCI0J7QodCY0J8KK9CS0JXQoNCd0J7QoiDQktCI0JXQmtCe0KHQm9CQ0JLQkAor0JLQldCg0J3QntCiINCX0JTQldCd0JrQngor0JLQldCg0J3QntCiINCX0JTQldCd0JrQngor0JLQldCg0JfQntCi0Jgg0JTQoNCQ0JPQmNCm0JAKK9CS0JXQoNCX0J7QotCYINCI0KPQm9CY0IjQkNCd0JAKK9CS0JXQoNCX0J7QotCYINCf0JXQotCQ0KAKK9CS0JXQoNCX0J7QotCYINCh0KLQkNCd0JrQkAor0JLQldCh0JXQm9CY0Isg0JHQntCg0JjQktCe0IgKK9CS0JXQodCV0JvQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CS0JXQodCV0JvQmNCLINCT0J7QodCf0JDQktCQCivQktCV0KHQldCb0JjQiyDQoNCQ0JTQntCI0JrQkAor0JLQldCh0JXQm9CY0Isg0KHQm9CQ0JLQmtCeCivQktCV0KHQldCb0JjQptCQINCc0JDQndCVCivQktCV0KHQldCb0JjQptCQINCc0JjQm9CQ0J0KK9CS0JXQodCV0JvQmNCm0JAg0KHQktCV0KLQntCX0JDQoAor0JLQldCh0JXQm9CY0J0g0J/QldCi0JDQoAor0JLQldCh0JXQm9CY0J3QntCSINCC0J7QoNCC0JUKK9CS0JXQodCV0JvQmNCd0J7QkiDQkdCe0KDQmNCh0JvQkNCS0JAKK9CS0JXQodCV0JvQmNCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JXQodCV0JvQmNCd0J7QkiDQm9CY0JHQo9Co0JAKK9CS0JXQodCV0JvQmNCd0J7QkiDQnNCY0JvQmNCm0JAKK9CS0JXQodCV0JvQmNCd0J7QkiDQoNCY0KHQotCQCivQktCV0KHQldCb0JjQndCe0JIg0KHQotCV0JLQkNCdINCU0KAKK9CS0JXQodCV0JvQmNCd0J7QkiDQodCi0JXQktCQ0J0KK9CS0JXQodCV0JvQmNCd0J7QkiDQodCS0JXQotCe0JfQkNCgCivQktCV0KHQldCb0JjQndCe0JIg0JLQldCg0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0ILQo9CI0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0ILQo9Cg0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0ILQo9Cg0J4KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JHQntCg0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JHQoNCQ0J3QlQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCU0JDQoNCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCU0JDQoNCa0J4KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JTQoNCQ0JPQntCg0JDQlAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCI0JXQm9CY0KHQkNCS0JrQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQiNCe0KDQlNCQ0J0KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0IjQntCh0JjQn9CQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCI0J7QktCQ0J3QmtCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCI0KPQm9CY0IjQkNCd0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JrQkNCi0JjQptCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCb0JDQndCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCb0JXQndCa0JjQptCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JDQoNCY0IjQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQnNCY0JrQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQnNCY0JvQkNCd0JrQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQmNCb0JXQndCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQm9CVCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQm9CY0KHQkNCSCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCc0JjQoNCa0J4KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQmNCi0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0J7Qm9CT0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0J/QkNCS0JvQlQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQn9CV0KDQodCY0JTQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQktCV0KHQldCb0JjQndCe0JLQmNCLLdCf0J7Qn9Ce0JLQmNCLINCR0KDQkNCd0JrQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQoNCQ0JTQnNCY0JsKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KDQkNCd0JrQngor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQoNCQ0J3QmtCeCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCg0KPQltCY0KbQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KDQo9CW0JjQptCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCh0JDQktCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCh0JXQktCV0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQodCf0JDQodCe0IjQlQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQotCe0JTQntCgCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCi0J7QlNCe0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0KPQoNCe0KgKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JLQkNCh0JjQidCa0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JLQldCb0JjQl9CQ0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JLQldCJ0JrQngor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCV0KDQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCV0KDQkAor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCV0KHQldCb0JjQnQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCV0KHQldCb0JjQnQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCY0J3QmtCQCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkiDQlNCgINCb0JXQmtCQ0KAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQktCj0JrQmNCm0JAKK9CS0JXQodCV0JvQmNCd0J7QktCY0Isg0JfQntCg0JDQnQor0JLQldCh0JXQm9CY0J3QntCS0JjQiyDQl9Ce0KDQkNCdCivQktCV0KHQldCb0JjQndCe0JLQmNCLINCX0JLQldCX0JTQkNCdCivQktCV0KHQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9CS0JXQodCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQktCV0KHQmNCLINCa0JDQotCY0KbQkAor0JLQldCh0JjQiyDQmtCg0KHQotCQCivQktCV0KHQmNCLINCc0JjQm9CQ0J0KK9CS0JXQodCY0Isg0JzQmNCb0JDQnQor0JLQldCh0JjQiyDQnNCY0JvQmNCm0JAKK9CS0JXQodCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0JXQodCY0Isg0JzQmNCi0JDQoAor0JLQldCh0JjQiyDQnNCb0JDQlNCV0J0KK9CS0JXQodCY0Isg0KDQo9CW0JjQptCQCivQktCV0KHQmNCLLdCS0JDQoNCT0JAg0JTQoNCQ0JPQmNCm0JAKK9CS0JXQodCY0Isg0JLQldCh0JXQm9CY0J3QmtCQCivQktCV0KHQmNCdINCR0KDQkNCd0JrQngor0JLQldCh0JjQnSDQnNCY0JvQkNCdCivQktCV0KHQmNCdINCd0JDQlNCQCivQktCV0KHQmNCdINCf0JXQotCQ0KAKK9CS0JXQodCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQldCh0JrQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCV0KHQmtCe0JIg0JjQktCQ0J0KK9CS0JXQodCa0J7QkiDQiNCV0JvQldCd0JAKK9CS0JXQodCa0J7QkiDQnNCY0JvQntCoCivQktCV0KHQmtCe0JLQmNCLINCQ0J3QmtCY0KbQkAor0JLQldCh0JrQntCS0JjQiyDQlNCg0JDQqNCa0J4KK9CS0JXQodCa0J7QktCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JLQldCh0JrQntCS0JjQiyDQnNCQ0KDQmNCm0JAKK9CS0JXQodCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQldCh0JrQntCS0JjQiyDQnNCe0JzQp9CY0JvQniDQlNCY0J/QmyDQmNCd0JMKK9CS0JXQodCa0J7QktCY0Isg0J/QldCi0JDQoAor0JLQldCh0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9CS0JXQodCa0J7QktCY0Isg0KHQotCQ0J3QntCI0JUKK9CS0JXQodCa0J7QktCY0Isg0JfQntCg0JAKK9CS0JXQodCb0JDQktCh0JrQmCDQotCY0J3QmtCQCivQktCV0KHQndCY0Isg0JzQmNCb0JXQndCQCivQktCV0KHQndCY0Ist0JLQkNCh0JjQidCV0JLQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9CS0JXQodCe0JLQmNCLINCQ0KbQngor0JLQldCh0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9CS0JXQotCg0JDQkSDQpNCg0JDQitCQCivQktCV0KLQoNCQ0JEg0JrQkNCi0JDQm9CY0J0KK9CS0JXQotCg0JDQkSDQnNCY0KXQkNCJCivQktCV0KLQoNCeINCf0JXQotCQ0KAKK9CS0JXQktCV0KDQmNCn0JXQmiDQnNCQ0KDQmNCI0JAKK9CS0JXQl9CV0KLQmCDQnNCY0KXQkNCV0JsKK9CS0JXQl9CV0KLQmCDQn9CV0KLQkNCgCivQktCV0JfQmNCb0JjQiyDQgtCe0KDQgtCVCivQktCV0JfQmNCb0JjQiyDQptCg0J3QntCT0J7QoNCa0JAKK9CS0JXQl9CY0JvQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCV0JfQmNCb0JjQiyDQlNCj0KjQmNCm0JAKK9CS0JXQl9CY0JvQmNCLINCI0JXQm9CY0KbQkAor0JLQldCX0JjQm9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0JLQldCX0JzQkNCgINCR0KDQkNCd0JrQngor0JLQldCX0JzQkNCgINCY0JvQmNCI0JAKK9CS0JXQl9Cc0JDQoCDQnNCQ0KDQk9CQ0KDQmNCi0JAKK9CS0JXQl9Cc0JDQoCDQnNCY0JvQkNCdCivQktCV0JfQnNCQ0KAg0JzQmNCb0J7QqAor0JLQldCX0JzQkNCgINCc0JjQm9Ce0KDQkNCUCivQktCV0JfQnNCQ0KAg0JzQntCc0KfQmNCb0J4KK9CS0JXQl9Cc0JDQoCDQndCY0JrQntCb0JAKK9CS0JXQl9Cc0JDQoCDQn9CV0KLQkNCgCivQktCV0JfQo9Cb0JjQiyDQgtCe0KDQgtCVCivQktCY0KfQldCaINCo0JDQndCU0J7QoAor0JLQmNCn0JXQmiDQmtCQ0KDQntCJCivQktCY0KfQldCS0JjQiyDQl9CS0J7QndCY0JzQmNCgCivQktCY0KfQmNCaINCY0JPQitCQ0KIKK9CS0JjQqNCV0JrQoNCj0J3QkCDQkdCe0KDQmNCS0J7QiAor0JLQmNCo0JXQmtCg0KPQndCQINCU0JDQndCa0J4KK9CS0JjQqNCV0JrQoNCj0J3QkCDQlNCj0KjQkNCdCivQktCY0KjQldCa0KDQo9Cd0JAg0JTQo9Co0JrQngor0JLQmNCo0JXQmtCg0KPQndCQINCI0J7QktCQ0J0KK9CS0JjQqNCV0JrQoNCj0J3QkCDQnNCY0JvQkNCdCivQktCY0KjQldCa0KDQo9Cd0JAg0KHQm9CQ0JLQmtCeCivQktCY0KjQldCa0KDQo9Cd0JAg0JLQntCI0JjQnQor0JLQmNCo0JjQiyDQnNCY0JvQlQor0JLQmNCo0JrQntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CS0JjQqNCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JLQmNCo0JrQntCS0JjQiyDQn9Cb0JDQndCY0J3QmtCQCivQktCY0KjQmtCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQktCY0KjQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAg0JTQoAor0JLQmNCo0J3QmNCLINCU0JDQndCY0KbQkAor0JLQmNCo0J3QmNCLINCU0KPQqNCQ0J0KK9CS0JjQqNCd0JjQiyDQl9Ce0KDQmtCQCivQktCY0KjQitCV0JLQp9CQ0J3QmNCdINCI0J7QktCQ0J0KK9CS0JjQqNCK0JXQktCn0JDQndCY0J0g0JvQldCf0JAKK9CS0JjQqNCK0JXQktCQ0KYg0JHQntCg0J4KK9CS0JjQqNCK0JXQktCQ0KYg0J7Qm9CY0JLQldCg0JAKK9CS0JjQqNCK0JXQktCh0JrQmCDQmtCQ0KLQmNCm0JAKK9CS0JjQqNCK0JjQp9CQ0J0g0JTQo9Co0JDQnQor0JLQmNCo0IrQmNCn0JDQnSDQk9CQ0JLQoNCY0JvQngor0JLQmNCo0IrQmNCn0JDQnSDQiNCe0JLQkNCd0JrQkAor0JLQmNCo0IrQmNCn0JDQnSDQnNCY0JvQmNCm0JAKK9CS0JjQqNCK0JjQp9CQ0J3QmNCdINCI0J7QktCQ0J3QmtCQCivQktCY0KjQitCY0KfQkNCgINCW0JDQoNCa0J4KK9CS0JjQqNCK0JjQp9CQ0KAg0ILQntCg0ILQlQor0JLQmNCo0IrQmNCn0JDQoCDQgtCe0KDQgtCVCivQktCY0KjQitCY0KfQkNCgINCU0KDQkNCT0J7QodCb0JDQkgor0JLQmNCo0IrQmNCn0JDQoCDQnNCQ0KDQmNCI0JAKK9CS0JjQqNCK0JjQp9CQ0KAg0JzQmNCa0JAKK9CS0JjQqNCK0JjQp9CQ0KAg0J3QldCU0JXQidCa0J4KK9CS0JjQqNCK0JjQp9Ca0Jgg0JPQntCg0JTQkNCd0JAKK9CS0JjQqNCK0JjQp9Ca0Jgg0JzQmNCb0J7QqAor0JLQmNCo0IrQmNCn0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQktCY0KjQitCY0KfQmtCYINCh0KDQldCi0JXQnQor0JLQmNCo0IrQmNCLINCn0JXQlNCe0JzQmNCb0JAKK9CS0JjQqNCK0JjQiyDQkdCg0JDQndCa0J4KK9CS0JjQqNCK0JjQiyDQkdCg0JDQndCh0JjQm9CQ0JLQkAor0JLQmNCo0IrQmNCLINCU0JDQm9CY0JHQntCgCivQktCY0KjQitCY0Isg0JTQo9Co0JDQnQor0JLQmNCo0IrQmNCLINCY0JvQmNCI0JAKK9CS0JjQqNCK0JjQiyDQiNCe0KHQmNCfCivQktCY0KjQitCY0Isg0JzQkNCg0JjQiNCQCivQktCY0KjQitCY0Isg0JzQmNCb0JDQnQor0JLQmNCo0IrQmNCLINCc0JjQm9CY0KbQkAor0JLQmNCo0IrQmNCLINCe0JvQmNCS0JXQoNCQCivQktCY0KjQitCY0Isg0J7Qm9CY0JLQldCgCivQktCY0KjQitCY0Isg0KHQn9CQ0KHQntCI0JUKK9CS0JjQqNCK0JjQiyDQotCY0KXQntCc0JjQoAor0JLQmNCo0IrQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CS0JjQqNCK0JjQiyDQktCV0KDQkAor0JLQmNCo0IrQmNCLINCS0JXQodCd0JAKK9CS0JjQqNCK0J7QktCh0JrQmCDQgtCj0KDQkAor0JLQmNCo0IrQntCS0KHQmtCYINCQ0KDQkNCd0JrQkAor0JLQmNCo0IrQntCS0KHQmtCYINCc0JDQoNCY0IjQkAor0JLQmNCo0IrQntCS0KHQmtCYINCc0JDQoNCI0JDQnQor0JLQmNCo0J7QqNCV0JLQmNCLINCg0KPQltCV0J3QkAor0JLQmNCo0J7QndCi0JDQmCDQiNCe0JbQldCkCivQktCY0KjQntCd0KLQkNCYINCI0J7QltCV0KQKK9CS0JjQi9CV0JLQmNCLINCg0JDQlNCY0KjQkAor0JLQmNCW0JDQmCDQqNCQ0J3QlNCe0KAKK9CS0JjQkNCi0J7QoNCY0KEg0IjQkNCd0J7QqAor0JLQmNCQ0KLQntCg0JjQoSDQiNCj0JvQmNCo0JrQkAor0JLQmNCQ0KLQntCg0JjQoSDQidCj0JHQmNCm0JAKK9CS0JjQkdCe0Jog0IjQntCW0JXQpAor0JLQmNCm0JXQmCDQiNCe0JbQldCkCivQktCY0KbQldCYINCd0JjQmtCe0JvQkAor0JLQmNCm0JjQkNCdINCa0JvQkNCg0JAKK9CS0JjQptCa0J4g0JDQoNCf0JDQlAor0JLQmNCm0JrQniDQpNCg0JDQitCQCivQktCY0KbQmtCeINCI0J7QodCY0J8KK9CS0JjQptCa0J7QqCDQiNCe0JbQldCkCivQktCY0KbQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JLQmNCm0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0JjQptCa0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CS0JjQptCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JLQmNCm0JrQntCS0JjQiyDQktCV0KHQndCQCivQktCY0KbQniDQkdCe0JPQlNCQ0J0KK9CS0JjQptCeINCg0JDQlNCY0JLQntCI0JUKK9CS0JjQptCeINCg0JDQlNCe0JzQmNCgCivQktCY0JQg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CS0JjQlNCQINCI0JXQm9CY0KHQkNCS0JXQotCQCivQktCY0JTQkCDQiNCe0JbQldCkCivQktCY0JTQkCDQiNCj0JvQmNCI0JAKK9CS0JjQlNCQINCh0JvQntCR0J7QlNCQ0J3QmtCQCivQktCY0JTQkCDQktCY0JvQmAor0JLQmNCU0JDQpyDQiNCQ0IrQkCDQm9Ce0JrQkNCbCivQktCY0JTQkNCnINCb0JDQodCb0J4KK9CS0JjQlNCQ0Kcg0KHQm9CQ0JLQmNCm0JAKK9CS0JjQlNCQ0IjQmNCLINCW0JjQktCa0J4KK9CS0JjQlNCQ0IjQmNCLINCI0JDQodCc0JjQndCQCivQktCY0JTQkNCI0JjQiyDQiNCe0KHQmNCfCivQktCY0JTQkNCI0JjQiyDQm9Cj0KfQmNCI0JDQndCeCivQktCY0JTQkNCI0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0JjQlNCQ0IjQmNCLINCS0JXQidCQCivQktCY0JTQkNCI0JjQiyDQktCb0JDQlNCQCivQktCY0JTQkNCa0J7QkiDQkNCd0JrQmNCm0JAKK9CS0JjQlNCQ0JrQntCSINCI0J7QktCQ0J0KK9CS0JjQlNCQ0JrQntCSINCX0J7QoNCY0KbQkAor0JLQmNCU0JDQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCY0JTQkNCa0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAg0JTQoAor0JLQmNCU0JDQmtCe0JLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQkdCg0JDQndCY0JzQmNCgCivQktCY0JTQkNCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQktCY0JTQkNCa0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQktCY0JTQkNCa0J7QktCY0Isg0JXQnNCY0JsKK9CS0JjQlNCQ0JrQntCS0JjQiyDQmNCS0JDQnQor0JLQmNCU0JDQmtCe0JLQmNCLINCY0JLQkNCdCivQktCY0JTQkNCa0J7QktCY0Isg0JjQktCQ0J0KK9CS0JjQlNCQ0JrQntCS0JjQiyDQiNCQ0JPQntCU0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQiNCe0KHQmNCfCivQktCY0JTQkNCa0J7QktCY0Isg0IjQntCh0JjQnwor0JLQmNCU0JDQmtCe0JLQmNCLINCa0J7QodCQCivQktCY0JTQkNCa0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CS0JjQlNCQ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQktCY0JTQkNCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQmNCU0JDQmtCe0JLQmNCLINCc0JjQidCQCivQktCY0JTQkNCa0J7QktCY0Isg0JzQmNCg0KfQldCi0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JLQmNCU0JDQmtCe0JLQmNCLINCc0JjQoNCa0J4KK9CS0JjQlNCQ0JrQntCS0JjQiyDQndCV0JTQldCJ0JrQngor0JLQmNCU0JDQmtCe0JLQmNCLINCe0JvQk9CQCivQktCY0JTQkNCa0J7QktCY0Isg0J7Qm9CT0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JLQmNCU0JDQmtCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQktCY0JTQkNCa0J7QktCY0Isg0KHQkNCS0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCb0JDQktCa0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCe0KTQmNCI0JAKK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCg0JXQi9Ca0J4KK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCg0JXQi9Ca0J4KK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CS0JjQlNCQ0JrQntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQktCY0JTQkNCa0J7QktCY0Isg0KLQldCg0JXQl9CQCivQktCY0JTQkNCa0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQmNCU0JDQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0JjQlNCQ0JrQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JLQmNCU0JDQndCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQktCY0JTQkNCd0J7QktCY0Ist0KHQmtCe0JrQniDQiNCV0JvQldCd0JAKK9CS0JjQlNCQ0KDQmNCLINCI0J7QktCeCivQktCY0JTQkNCg0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQmNCU0JDQoNCY0Isg0KDQkNCi0JrQngor0JLQmNCU0JDQoNCY0Isg0KHQotCV0JLQkNCdCivQktCY0JTQkNChINCi0JXQoNCV0JfQkAor0JLQmNCU0JXQpiDQiNCe0KHQmNCfCivQktCY0JTQldCmINCI0J7QodCY0J8KK9CS0JjQlNCV0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0JjQlNCV0J3QntCS0JjQiyDQmtCe0KHQntCS0JrQkAor0JLQmNCU0JXQndCe0JLQmNCLINCJ0JjQidCQ0J3QkCDQlNCgCivQktCY0JTQldCd0J7QktCY0Isg0JzQntCc0JjQoAor0JLQmNCU0JXQoCDQnNCY0KDQmtCeINCU0JjQn9CbINCY0J3Qkwor0JLQmNCU0JjQiyDQltCV0InQmtCeCivQktCY0JTQmNCLINCC0J7QoNCC0JUKK9CS0JjQlNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCY0JTQmNCLINCR0KDQkNCd0JrQkAor0JLQmNCU0JjQiyDQkdCg0JDQndCa0JAKK9CS0JjQlNCY0Isg0JHQoNCQ0J3QmtCeCivQktCY0JTQmNCLINCU0KDQkNCT0JDQndCQCivQktCY0JTQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCY0JTQmNCLINCV0JzQmNCb0JjQiNCQCivQktCY0JTQmNCLINCI0JXQm9CY0KbQkAor0JLQmNCU0JjQiyDQiNCe0KbQkAor0JLQmNCU0JjQiyDQidCY0InQkNCd0JAKK9CS0JjQlNCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0JjQlNCY0Isg0JzQkNCg0JjQiNCQCivQktCY0JTQmNCLINCc0JjQm9CQ0J0KK9CS0JjQlNCY0Isg0JzQmNCb0JDQnQor0JLQmNCU0JjQiyDQnNCY0JvQntCoCivQktCY0JTQmNCLINCc0JjQoNCe0KHQm9CQ0JLQkAor0JLQmNCU0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCY0JTQmNCLINCd0JDQlNCQCivQktCY0JTQmNCLINCf0JXQoNCeCivQktCY0JTQmNCLINCg0JDQlNCc0JjQm9CQCivQktCY0JTQmNCLINCg0JDQlNCc0JjQm9CQCivQktCY0JTQmNCLINCg0JDQiNCa0J4KK9CS0JjQlNCY0Isg0KHQntCk0JjQiNCQCivQktCY0JTQmNCLINCh0KLQkNCd0JjQodCb0JDQktCQCivQktCY0JTQmNCLINCh0KLQldCS0JDQnQor0JLQmNCU0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CS0JjQlNCY0Isg0JLQldCJ0JrQngor0JLQmNCU0JjQiyDQktCV0KDQkAor0JLQmNCU0JjQiyDQl9CU0KDQkNCS0JrQngor0JLQmNCU0JjQptCa0Jgg0JHQoNCQ0J3QmtCeCivQktCY0JTQmNCm0JrQmCDQmNCS0JDQnQor0JLQmNCU0JjQptCa0Jgg0JrQntCh0KLQkAor0JLQmNCU0JjQptCa0Jgg0InQo9CR0J7QnNCY0KAKK9CS0JjQlNCY0KbQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JjQlNCY0J3QldCgINCR0J7QltCY0JTQkNCgCivQktCY0JTQnNCQ0J3QmNCLINCT0JDQkdCg0JjQiNCV0JvQkAor0JLQmNCU0J7QiNCV0JLQmNCLINCW0JjQktCa0JAKK9CS0JjQlNCe0IjQldCS0JjQiyDQkdCb0JDQltCeCivQktCY0JTQntCI0JXQktCY0Isg0JHQntCW0JAKK9CS0JjQlNCe0IjQldCS0JjQiyDQiNCe0KHQmNCkCivQktCY0JTQntCI0JrQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JLQmNCU0J7QodCQ0JLQidCV0JLQmNCLINCU0J7QkdCg0J7QodCQ0JIKK9CS0JjQlNCe0KHQkNCS0InQldCS0JjQiyDQlNCj0KjQkNCdCivQktCY0JTQntCh0JDQktCJ0JXQktCY0Isg0IjQldCb0JjQptCQCivQktCY0JTQntCh0JDQktCJ0JXQktCY0Isg0JfQktCe0J3QmNCc0JjQoAor0JLQmNCU0J7QktCY0Isg0JbQmNCS0JrQngor0JLQmNCU0J7QktCY0Isg0JDQnNCY0KDQkAor0JLQmNCU0J7QktCY0Isg0JDQndCY0KbQkAor0JLQmNCU0J7QktCY0Isg0JHQldCQ0KLQoNCY0KEKK9CS0JjQlNCe0JLQmNCLINCR0JjQidCQ0J3QkAor0JLQmNCU0J7QktCY0Isg0JHQmNCh0JXQoNCa0JAKK9CS0JjQlNCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQktCY0JTQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCY0JTQntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCY0JTQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JjQlNCe0JLQmNCLINCU0KDQkNCT0J4KK9CS0JjQlNCe0JLQmNCLINCc0JDQoNCI0JDQnQor0JLQmNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQmNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQmNCU0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQmNCU0J7QktCY0Isg0JzQmNCb0JUKK9CS0JjQlNCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JLQmNCU0J7QktCY0Isg0JzQmNCb0J7QqAor0JLQmNCU0J7QktCY0Isg0JzQmNCg0JrQngor0JLQmNCU0J7QktCY0Isg0J3QkNCU0JAKK9CS0JjQlNCe0JLQmNCLINCf0JXQotCQ0KAKK9CS0JjQlNCe0JLQmNCLINCg0JDQlNCe0JzQmNCgCivQktCY0JTQntCS0JjQiyDQoNCQ0IjQmtCeCivQktCY0JTQntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CS0JjQlNCe0JLQmNCLINCh0JDQktCQCivQktCY0JTQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCY0JTQntCS0JjQiyDQktCY0JQKK9CS0JjQk9CYINCI0J7QodCY0J8KK9CS0JjQk9CK0JXQktCY0Isg0ILQntCg0ILQlQor0JLQmNCT0IrQldCS0JjQiyDQkNCd0JAKK9CS0JjQk9CK0JXQktCY0Isg0JHQoNCQ0J3QmtCQCivQktCY0JPQitCV0JLQmNCLINCR0KDQkNCd0JrQngor0JLQmNCT0IrQldCS0JjQiyDQlNCQ0JrQngor0JLQmNCT0IrQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0JjQk9CK0JXQktCY0Isg0JTQoNCQ0JPQkNCdCivQktCY0JPQitCV0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCY0JPQitCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQktCY0JPQitCV0JLQmNCLINCd0JXQktCV0J3QmtCQCivQktCY0JPQitCV0JLQmNCLINCg0JDQlNCVCivQktCY0JPQitCV0JLQmNCLINCh0KLQldCS0JDQndCY0IjQkAor0JLQmNCT0IrQldCS0JjQiyDQktCV0KHQndCQCivQktCY0JPQitCV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0JjQk9CK0JXQktCY0Isg0JfQntCg0JDQnQor0JLQmNCI0JDQotCe0JIg0KHQnNCY0InQkAor0JLQmNCI0JXQqNCi0JjQptCQINCK0JXQk9Ce0JzQmNCgCivQktCY0IjQo9CaINCJ0KPQkdCQ0J0KK9CS0JjQiNCj0Jog0KHQkNCS0JAKK9CS0JjQmtCe0KAg0J/QldCi0JDQoAor0JLQmNCa0J7QoCDQoNCj0JbQkAor0JLQmNCb0KfQldCaINCI0JDQitCQCivQktCY0JvQp9CV0Jog0J3QmNCa0J7Qm9CQCivQktCY0JvQkCDQnNCY0JvQntCS0JDQnQor0JLQmNCb0JDQk9Ce0Kgg0ILQldCg0ILQmAor0JLQmNCb0JXQotCYINCX0J7QoNCQCivQktCY0JvQmNCoINCC0KPQoNCQCivQktCY0JvQmNCoINCk0KDQkNCK0JAKK9CS0JjQm9CY0Isg0JzQkNCg0JrQngor0JLQmNCb0JjQiyDQoNCQ0JTQntCc0JjQoAor0JLQmNCb0JjQiyDQoNCQ0JTQntCh0JvQkNCS0JAKK9CS0JjQm9CY0Isg0KDQntCX0JDQm9CY0IjQkAor0JLQmNCb0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCY0JvQmNCT0J7QoNCh0JrQmCDQn9CQ0KPQm9CQCivQktCY0JvQntCi0JjQiyDQltCY0JLQmtCeCivQktCY0JvQntCi0JjQiyDQnNCY0JvQmNCh0JDQkgor0JLQmNCb0J7QotCY0IjQldCS0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQktCY0JvQntCi0JjQiNCV0JLQmNCLINCa0JjQi9Cj0J0KK9CS0JjQm9Ce0KLQmNCI0JXQktCY0Isg0JzQmNCg0J7QiNCVCivQktCY0JvQntCS0JDQp9Ca0Jgg0JrQkNCi0JjQptCQCivQktCY0JvQntCS0JDQp9Ca0Jgg0KHQm9CQ0JLQmtCeCivQktCY0JvQntCS0JDQpiDQiNCe0JLQkNCdCivQktCY0JvQntCS0JDQpiDQiNCe0JLQkNCdCivQktCY0JvQntCS0JDQpiDQnNCY0JvQkNCdCivQktCY0JvQntCS0KHQmtCYINCC0J7QoNCC0JUKK9CS0JjQm9Ce0JLQodCa0Jgg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCY0JvQntCS0KHQmtCYINCR0KDQkNCd0JrQngor0JLQmNCb0J7QktCh0JrQmCDQodCQ0JLQkAor0JLQmNCb0J7QktCh0JrQmCDQodCb0JDQktCe0JzQmNCgCivQktCY0JvQntCS0KHQmtCYINCh0JzQmNCJ0JDQndCQCivQktCY0JvQntCS0KHQmtCYINCS0JXQidCa0J4KK9CS0JjQm9Ce0JLQodCa0Jgg0JfQntCg0JAKK9CS0JjQm9Cj0KEg0JTQkNCd0JjQptCQCivQktCY0JzQldCgINCS0JXQoNCQCivQktCY0J0g0JjQktCQ0J0KK9CS0JjQnSDQiNCe0KHQmNCfCivQktCY0J0g0JvQkNCI0J7QqAor0JLQmNCdINCf0JDQktCb0JUKK9CS0JjQnSDQodCS0JXQotCb0JDQndCQCivQktCY0J3QqCDQlNCg0JDQk9Cj0KLQmNCdCivQktCY0J3QkNCIINCC0J7QoNCC0JUKK9CS0JjQndCQ0Igg0ILQntCg0ILQlQor0JLQmNCd0JDQiCDQiNCQ0J3QmtCeCivQktCY0J3QkNCIINCJ0KPQkdCY0KbQkAor0JLQmNCd0JDQiCDQnNCV0JvQkNCd0JjQiNCQCivQktCY0J3QkNCI0Jgg0ILQo9Cg0JAKK9CS0JjQndCQ0IjQmCDQnNCY0KLQkNCgCivQktCY0J3QkNCI0Jgg0JLQldCg0JjQptCQCivQktCY0J3QkNCg0JYg0JLQm9CQ0JTQmNCc0JjQoAor0JLQmNCd0KbQlSDQkNCd0JTQoNCY0IjQkAor0JLQmNCd0KbQlSDQldCg0JbQldCR0JXQogor0JLQmNCd0KbQlSDQmNCo0KLQktCQ0J0KK9CS0JjQndCm0JUg0JrQkNCg0JvQngor0JLQmNCd0KbQlSDQm9CQ0KbQmNCa0JAKK9CS0JjQndCm0JUg0JzQkNCg0JXQm9CQCivQktCY0J3QptCVINCc0JDQoNCT0JjQotCQCivQktCY0J3QptCVINCf0JDQktCb0JUKK9CS0JjQndCm0JXQotCY0J0g0JDQndCQCivQktCY0J3Qj9CQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQktCY0J3Qj9CQ0J3QntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQktCY0J3QlNCY0Kgg0JTQoNCQ0JPQo9Ci0JjQnQor0JLQmNCd0JTQmNCoINCh0KLQldCS0JDQnQor0JLQmNCd0JXQoCDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JjQndCV0KAg0JjQktCQ0J0KK9CS0JjQndCV0KAg0IjQldCg0J7QndCY0JwKK9CS0JjQndCV0KAg0JzQkNCg0JjQiNCQCivQktCY0J3QldCgINCX0JLQntCd0JjQnNCY0KAKK9CS0JjQndCa0JAg0JXQnNCQ0J3Qo9CV0JvQkAor0JLQmNCd0JrQmNCLINCY0JvQmNCI0JAKK9CS0JjQndCa0JvQldCgINCI0J7QltCV0KQKK9CS0JjQndCa0JvQldCg0J7QktCY0Isg0JLQldCg0JjQptCQCivQktCY0J3QmtCe0JLQmNCLINCQ0J3QkAor0JLQmNCd0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0JjQndCa0J7QktCY0Isg0InQo9CU0JXQktCY0KIKK9CS0JjQndCe0JrQmNCLINCR0J7Qk9CU0JDQnQor0JLQmNCd0J7QmtCY0Isg0JLQkNCh0JjQidCa0JAKK9CS0JjQoNCQ0JMg0JDQm9CR0JXQoNCiCivQktCY0KDQkNCTINCQ0J3QlNCg0JjQiNCQCivQktCY0KDQkNCTINCV0KDQmNCa0JAKK9CS0JjQoNCQ0JMg0IjQo9Cb0JjQiNCQ0J3QkAor0JLQmNCg0JDQkyDQidCj0JTQldCS0JjQogor0JLQmNCg0JDQkyDQnNCQ0KDQotCe0J0KK9CS0JjQoNCQ0JMg0JzQmNCl0JDQiNCb0J4KK9CS0JjQoNCQ0JMg0KDQntCR0JXQoNCiCivQktCY0KDQkNCTINCg0J7QkdCV0KDQogor0JLQmNCg0KYg0KTQldCg0JXQndCmCivQktCY0KDQpiDQiNCe0JbQldCkCivQktCY0KDQpiDQiNCe0JLQkNCdCivQktCY0KDQpiDQnNCQ0KDQotCY0J0KK9CS0JjQoNCmINCd0JDQlNCQCivQktCY0KDQpiDQoNCj0JbQmNCm0JAKK9CS0JjQoNCmINCh0KLQldCS0JDQnQor0JLQmNCg0JjQiyDQmNCS0JDQnQor0JLQmNCg0JjQiyDQmNCS0JDQnQor0JLQmNCg0JjQiNCV0JLQmNCLINCC0J7QoNCC0JUKK9CS0JjQoNCY0IjQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQmNCg0JjQiNCV0JLQmNCLINCR0KPQlNCY0JzQmNCgCivQktCY0KDQmNCI0JXQktCY0Isg0IjQntCS0JDQndCa0JAKK9CS0JjQoNCY0IjQldCS0JjQiyDQidCj0JHQmNCd0JrQngor0JLQmNCg0JjQiNCV0JLQmNCLINCf0JXQotCQ0KAKK9CS0JjQoNCY0IjQldCS0JjQiyDQktCe0IjQmNCdCivQktCY0KHQm9CQ0JLQodCa0Jgg0ILQo9Cg0JAKK9CS0JjQodCb0JDQktCh0JrQmCDQkdCe0JPQlNCQ0J0KK9CS0JjQodCb0JDQktCh0JrQmCDQiNCQ0JrQmNCcCivQktCY0KHQm9CQ0JLQodCa0Jgg0IjQkNCa0JjQnAor0JLQmNCh0JvQkNCS0KHQmtCYINCI0JDQndCe0KgKK9CS0JjQodCb0JDQktCh0JrQmCDQiNCQ0J3QntCoCivQktCY0KHQm9CQ0JLQodCa0Jgg0JvQldCe0J0KK9CS0JjQodCb0JDQktCh0JrQmCDQidCj0JHQntCc0JjQoAor0JLQmNCh0JvQkNCS0KHQmtCYINCc0JDQoNCY0IjQkAor0JLQmNCh0JvQkNCS0KHQmtCYINCc0JjQpdCQ0IjQm9CeCivQktCY0KHQm9CQ0JLQodCa0Jgg0JzQmNCg0J7QnQor0JLQmNCh0JvQkNCS0KHQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JjQodCb0JDQktCh0JrQmCDQnNCY0KDQntCh0JvQkNCSCivQktCY0KHQm9CQ0JLQodCa0Jgg0J3QkNCi0JDQqNCQCivQktCY0KHQm9CQ0JLQodCa0Jgg0JfQm9CQ0KLQmtCeCivQktCY0KHQoiDQpdCV0JvQk9CQ0JDQndCQCivQktCY0KLQkNChINCh0KLQldCS0JDQnQor0JLQmNCi0JDQoSDQodCi0JXQktCQ0J0KK9CS0JjQotCQ0KHQntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JLQmNCi0JDQodCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCY0KLQkNCh0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQmNCi0JDQodCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQktCY0KLQkNCXINCf0JXQotCQ0KAKK9CS0JjQotCV0Jcg0IjQkNCdCivQktCY0KLQldCXINCi0KPQk9Ce0JzQmNCgCivQktCY0KLQldCXINCX0JLQntCd0JrQngor0JLQmNCi0JjQiyDQgtCe0KDQgtCVCivQktCY0KLQmNCLINCC0J7QoNCC0JUKK9CS0JjQotCY0Isg0JHQntCo0JrQniDQlNCgINCb0JXQmtCQ0KAKK9CS0JjQotCI0KPQmiDQnNCY0KDQiNCQ0J3QkCDQlNCY0J/QmyDQmNCd0JMKK9CS0JjQotCI0KPQmiDQn9CV0KLQkNCgINCU0JjQn9CbINCY0J3Qkwor0JLQmNCi0JrQkNCYINCY0JvQntCd0JAKK9CS0JjQotCa0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQktCY0KLQmtCe0JLQmNCLINCU0KDQkNCT0J4KK9CS0JjQotCa0J7QktCY0Isg0IjQntCS0JDQnQor0JLQmNCi0J7QnNCY0KDQntCSINCW0JjQktCQ0J0KK9CS0JjQotCe0JzQmNCg0J7QktCY0Isg0JHQntCg0JjQoQor0JLQmNCi0J7QnNCY0KDQntCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQktCY0KLQntCg0JDQpiDQgtCj0KDQkAor0JLQmNCi0J7QoNCQ0KYg0ILQo9Cg0J4KK9CS0JjQotCe0KDQkNCmINCR0J7QoNCY0KHQm9CQ0JIKK9CS0JjQotCe0KDQkNCmINCY0JvQmNCI0JAKK9CS0JjQotCe0KDQkNCmINCd0JDQlNCQCivQktCY0KLQntCg0JDQpiDQoNCj0JbQldCd0JrQkAor0JLQmNCi0J7QoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JjQotCe0KDQntCS0JjQiyDQnNCY0JvQntCoCivQktCY0KLQntCg0J7QktCY0Isg0J7Qm9CT0JAKK9CS0JjQotCe0KDQntCS0JjQiyDQoNCQ0J3QmtCQCivQktCY0KLQntCg0J7QktCY0Isg0KHQntCk0JjQiNCQCivQktCY0KLQo9Co0JrQkCDQodCi0JXQktCQ0J0KK9CS0JjQktCe0JQg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CS0JjQktCe0JQg0JzQkNCT0JTQkNCb0JXQndCQCivQktCY0JfQmCDQqNCQ0J3QlNCe0KAKK9CS0JjQl9CYINCI0J7QodCY0J8KK9CS0JjQl9CYINCI0J7QktCQ0J0KK9CS0JjQl9CYINCa0JDQotCY0KbQkAor0JLQmNCX0Jgg0JzQkNCg0JjQiNCQCivQktCY0JfQmCDQnNCQ0KDQmNCI0JAKK9CS0JjQl9CYINCg0JDQlNCe0IjQmtCQCivQktCY0JfQmCDQodCe0IrQkAor0JLQmNCX0Jgg0KHQotCV0JLQkNCdCivQktCI0JXQqNCi0JjQptCQINCC0KPQoNCeCivQktCI0JXQqNCi0JjQptCQINCU0KPQqNCQ0J3QmtCQCivQktCI0JXQqNCi0JjQptCQINCI0J7QktCeCivQktCI0JXQqNCi0JjQptCQINCc0JjQm9CQ0J0KK9CS0IjQldCo0KLQmNCm0JAg0JzQmNCg0JrQngor0JLQiNCV0KjQotCY0KbQkCDQnNCY0KDQntCh0JvQkNCSCivQktCI0JXQqNCi0JjQptCQINCd0JDQlNCQCivQktCI0JXQqNCi0JjQptCQINCd0JXQkdCe0IjQqNCQCivQktCI0JXQqNCi0JjQptCQINCh0JvQkNCS0JrQngor0JLQiNCV0KDQkyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0IjQldCi0KDQntCSINCJ0KPQkdCY0KbQkAor0JLQm9CQINCU0KPQqNCQ0J0KK9CS0JvQkCDQlNCj0KjQkNCdCivQktCb0JAg0IjQntCS0JDQnQor0JLQm9CQINCc0JjQm9Ce0JLQkNCdCivQktCb0JAg0J/QldCi0JDQoAor0JLQm9CQINCg0JDQlNCe0KHQm9CQ0JIKK9CS0JvQkCDQodCb0JDQktCa0J4KK9CS0JvQkCDQodCg0JXQotCQCivQktCb0JDQp9CeINCU0KPQqNCQ0J3QmtCQCivQktCb0JDQqNCn0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQm9CQ0KjQmNCLINCc0JjQntCU0KDQkNCTCivQktCb0JDQqNCY0Isg0JLQkNCh0J4KK9CS0JvQkNCo0JrQkNCb0JjQiyDQgtCe0KDQgtCVCivQktCb0JDQqNCa0JDQm9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0JvQkNCo0JrQkNCb0JjQiyDQkNCd0JTQoNCY0IjQkAor0JLQm9CQ0KjQmtCQ0JvQmNCLINCR0J7QltCQ0J3QkAor0JLQm9CQ0KjQmtCQ0JvQmNCLLdCR0J7QiNCQ0J3QntCS0JjQiyDQoNCQ0IjQmtCQCivQktCb0JDQqNCa0JDQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCb0JDQqNCa0JDQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCb0JDQqNCa0JDQm9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCb0JDQqNCa0JDQm9CY0Isg0JTQntCd0JrQkAor0JLQm9CQ0KjQmtCQ0JvQmNCLINCk0JDQlNCY0JvQkAor0JLQm9CQ0KjQmtCQ0JvQmNCLINCY0JvQmNCI0JAKK9CS0JvQkNCo0JrQkNCb0JjQiyDQm9CQ0JfQkNCgCivQktCb0JDQqNCa0JDQm9CY0Isg0JvQkNCX0JDQoAor0JLQm9CQ0KjQmtCQ0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCb0JDQqNCa0JDQm9CY0Isg0J3QmNCa0J7Qm9CQCivQktCb0JDQqNCa0JDQm9CY0Isg0J7Qm9CT0JAKK9CS0JvQkNCo0JrQkNCb0JjQiyDQn9CQ0JLQm9CVCivQktCb0JDQqNCa0JDQm9CY0Isg0J/QkNCS0JvQlQor0JLQm9CQ0KjQmtCQ0JvQmNCLINCf0JDQktCb0JUKK9CS0JvQkNCo0JrQkNCb0JjQiyDQn9CV0KLQkNCgCivQktCb0JDQqNCa0JDQm9CY0Isg0J/QldCi0JDQoAor0JLQm9CQ0KjQmtCQ0JvQmNCLLdCf0J7Qn9Ce0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCb0JDQqNCa0JDQm9CY0Isg0KDQkNCU0J7QodCb0JDQkgor0JLQm9CQ0KjQmtCQ0JvQmNCLINCh0JDQktCQCivQktCb0JDQqNCa0JDQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQm9CQ0KjQmtCQ0JvQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0JvQkNCo0JrQkNCb0JjQiyDQodCi0JXQktCQ0J0KK9CS0JvQkNCo0JrQkNCb0JjQiyDQodCi0J7QiNCQ0J0KK9CS0JvQkNCo0JrQkNCb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCb0JDQqNCa0JDQm9CY0Isg0JfQntCg0JAKK9CS0JvQkNCo0JrQkNCb0JjQiNCQINCI0JXQm9CV0J3QkAor0JLQm9CQ0KjQmtCQ0JvQmNCI0JAg0JLQm9CQ0JTQkAor0JLQm9CQ0KjQmtCQ0JvQmNCdINCR0KDQkNCd0JrQngor0JLQm9CQ0KjQmtCYINCR0J7Qk9CU0JDQndCa0JAKK9CS0JvQkNCo0JrQmCDQm9CQ0JfQkNCgCivQktCb0JDQqNCa0Jgg0J/QoNCV0JTQoNCQ0JMKK9CS0JvQkNCU0JDQoNCh0JrQmCDQntCb0JPQkAor0JLQm9CQ0JTQkNCg0KHQmtCYINCe0JvQk9CQCivQktCb0JDQlNCV0KLQmNCLINCc0JjQm9CQ0J0KK9CS0JvQkNCU0JXQotCY0Isg0JzQmNCg0JrQngor0JLQm9CQ0JTQmNCLINCU0KDQkNCT0J4KK9CS0JvQkNCU0JjQiyDQnNCY0JvQkNCdCivQktCb0JDQlNCY0Isg0J/QldCi0JDQoAor0JLQm9CQ0JTQmNCc0JjQoCDQodCV0JvQldCd0JAKK9CS0JvQkNCU0JjQnNCY0KAg0JfQlNCg0JDQktCa0J4KK9CS0JvQkNCU0JjQnNCY0KDQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQm9CQ0JTQmNCc0JjQoNCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0JvQkNCU0JjQnNCY0KDQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCb0JDQlNCY0KHQkNCS0InQldCSINCW0JjQktCQ0J0KK9CS0JvQkNCU0JjQodCQ0JLQidCV0JIg0JzQmNCb0J7QoNCQ0JQKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JIg0J/QldCg0JAKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JIg0KLQntCc0JAKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCC0J7QoNCC0JUKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCC0KPQoNCQCivQktCb0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQlNCV0KHQmNCc0JjQoAor0JLQm9CQ0JTQmNCh0JDQktCJ0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCV0KDQltCV0JHQldCiCivQktCb0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQiNCV0JvQldCd0JAKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9Ce0KHQkNCS0JAKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCe0JHQoNCQ0JQKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLLdCf0JXQqNCa0JDQndCe0JIg0JzQmNCg0IjQkNCd0JAKK9CS0JvQkNCU0JjQodCQ0JLQidCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQktCb0JDQlNCY0KHQkNCS0InQldCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCb0JDQlNCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0JvQkNCU0J7QktCY0Isg0IjQntCS0JDQnQor0JLQm9CQ0JTQntCS0JjQiyDQoNCQ0JTQntCI0JrQkAor0JLQm9CQ0JTQo9Co0JAg0J3QmNCa0J7Qm9CQCivQktCb0JDQlNCj0KjQmNCLINCY0JLQkNCdCivQktCb0JDQlNCj0KjQmNCLINCc0JjQm9CQ0J0KK9CS0JvQkNCU0KPQm9Ce0JIg0JbQmNCS0J7QiNCY0J0KK9CS0JvQkNCU0KPQm9Ce0JLQmNCLLdCf0J7Qn9Ce0JIg0JzQkNCg0JjQiNCQINCU0KAg0JvQldCa0JDQoAor0JLQm9CQ0JTQo9Cb0J7QktCY0Isg0KLQmNCl0J7QnNCY0KAKK9CS0JvQkNClINCU0JDQndCY0KbQkAor0JLQm9CQ0KUg0JjQktCQ0J0KK9CS0JvQkNClINCf0JDQktCb0JUKK9CS0JvQkNClINCg0JDQlNCe0JLQkNCdCivQktCb0JDQpdCV0Jog0KHQotCQ0J3QmtCeCivQktCb0JDQpdCY0J3QmNCLINCc0JjQm9Ce0KgKK9CS0JvQkNCl0J4g0JrQoNCj0J3QntCh0JvQkNCSCivQktCb0JDQpdCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0JvQkNCl0J7QktCY0Isg0JHQntCI0JDQndCQCivQktCb0JDQpdCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQm9CQ0KXQntCS0JjQiyDQkdCg0JDQndCa0JAKK9CS0JvQkNCl0J7QktCY0Isg0JHQoNCQ0J3QmtCQCivQktCb0JDQpdCe0JLQmNCLINCU0JDQndCY0IjQldCb0JAKK9CS0JvQkNCl0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQm9CQ0KXQntCS0JjQiyDQlNCg0JDQk9CeCivQktCb0JDQpdCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0JvQkNCl0J7QktCY0Isg0IjQldCb0JjQptCQCivQktCb0JDQpdCe0JLQmNCLINCJ0KPQkdCY0KbQkAor0JLQm9CQ0KXQntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0JLQm9CQ0KXQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0JvQkNCl0J7QktCY0Isg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0JvQkNCl0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0JvQkNCl0J7QktCY0Isg0JzQmNCb0JjQptCQCivQktCb0JDQpdCe0JLQmNCLINCc0JjQoNCa0J4g0JTQoCDQmNCd0JMKK9CS0JvQkNCl0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQktCQCivQktCb0JDQpdCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQktCb0JDQpdCe0JLQmNCLINCf0JDQktCb0JUKK9CS0JvQkNCl0J7QktCY0Isg0KDQkNCU0J7QqAor0JLQm9CQ0KXQntCS0JjQiyDQoNCQ0JTQntCc0JjQoAor0JLQm9CQ0KXQntCS0JjQiyDQoNCQ0JTQntCK0JAKK9CS0JvQkNCl0J7QktCY0Isg0KHQkNCS0JAg0JTQoAor0JLQm9CQ0KXQntCS0JjQiyDQodCV0J3QmtCQCivQktCb0JDQpdCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0JvQkNCl0J7QktCY0Isg0KHQotCV0JLQkNCdCivQktCb0JDQpdCe0JLQmNCLINCh0KLQoNCQ0KXQmNCK0JAKK9CS0JvQkNCl0J7QktCY0Isg0KLQldCe0JTQntCg0JAKK9CS0JvQkNCl0J7QktCY0Isg0JLQmNCi0J7QnNCY0KDQmtCQCivQktCb0JDQpdCe0JLQmNCLINCS0JvQkNCU0JAKK9CS0JvQkNCl0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQm9CQ0KXQo9Co0JjQiyDQnNCY0KDQmtCeCivQktCb0JDQpdCj0KjQmNCLINCe0JvQk9CY0KbQkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCW0JjQktCa0J4KK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQgtCj0IjQngor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQlNCQ0J3QmNCb0J4KK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQlNCQ0KDQkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCU0JzQmNCi0JDQoAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCU0KPQqNCQ0J0KK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQnNCQ0JrQodCY0JwKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQkNCdCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0JDQnQor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCc0JjQm9CY0IjQkNCd0JAKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQnNCY0JvQntCoCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0JzQntCc0KfQmNCb0J4KK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCh0JDQktCeCivQktCb0JDQmNCh0JDQktCJ0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCh0J7QpNCY0IjQkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCh0KLQntCI0JAKK9CS0JvQkNCY0KHQkNCS0InQldCS0JjQiyDQotCg0JjQktCj0J3QkAor0JLQm9CQ0JjQodCQ0JLQidCV0JLQmNCLINCS0JDQodCeCivQktCb0JDQiNCQ0J3QmtCe0JIg0JvQkNCX0JDQoAor0JLQm9CQ0IjQkNCd0JrQntCSINCd0JDQotCQ0JvQmNCI0JAKK9CS0JvQkNCI0JDQndCa0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQktCb0JDQiNCQ0J3QmtCe0JIt0JLQo9Cb0JjQiyDQktCV0KDQkAor0JLQm9CQ0IjQmNCLINCU0KDQkNCT0JDQnQor0JLQm9CQ0IjQmNCLINCU0KDQkNCT0J7QodCb0JDQktCQCivQktCb0JDQiNCY0Isg0JTQo9Co0JDQndCa0JAKK9CS0JvQkNCI0JjQiyDQlNCj0KjQmNCm0JAKK9CS0JvQkNCI0JjQiyDQiNCe0JLQkNCdCivQktCb0JDQiNCY0Isg0JzQkNCg0JjQiNCQCivQktCb0JDQiNCY0Isg0JzQmNCb0J7QqAor0JLQm9CQ0IjQmNCLINCS0JDQm9CV0KDQmNCI0JAKK9CS0JvQkNCI0JrQntCSINCR0J7QodCY0InQmtCQCivQktCb0JDQiNCa0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0JvQkNCI0JrQntCSINCR0KDQkNCd0JrQngor0JLQm9CQ0IjQmtCe0JIt0JjQktCQ0J3QntCS0JjQiyDQodCd0JXQltCQ0J3QkAor0JLQm9CQ0IjQmtCe0JIg0JvQkNCX0JDQoAor0JLQm9CQ0IjQmtCe0JIg0JvQkNCX0JAKK9CS0JvQkNCI0JrQntCSINCc0JDQptCQCivQktCb0JDQiNCa0J7QkiDQnNCY0J7QlNCg0JDQkwor0JLQm9CQ0IjQmtCe0JIg0JzQmNCg0JrQngor0JLQm9CQ0IjQmtCe0JIg0JzQm9CQ0JTQldCdCivQktCb0JDQiNCa0J7QkiDQndCY0JrQntCb0JAKK9CS0JvQkNCI0JrQntCSINCf0JDQktCb0JUKK9CS0JvQkNCI0JrQntCSINCf0JXQotCQ0KAKK9CS0JvQkNCI0JrQntCSINCX0J7QoNCY0KbQkAor0JLQm9CQ0IjQmtCe0JLQmNCLINCQ0J3QotCe0J3QmNCI0JAKK9CS0JvQkNCI0JrQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CS0JvQkNCI0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JLQm9CQ0IjQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQktCb0JDQiNCa0J7QktCY0Isg0J3QldCc0JDQitCQCivQktCb0JDQiNCd0JjQiyDQp9CV0JTQntCc0JjQoAor0JLQm9CQ0IjQndCY0Isg0JPQntCg0JDQnQor0JLQm9CQ0IjQndCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0JvQkNCI0J3QmNCLINCX0J7QoNCQCivQktCb0JDQiNCe0JLQkNCd0J7QkiDQodCb0J7QkdCe0JTQkNCdCivQktCb0JDQm9Cj0JrQmNCdINCU0KDQkNCT0J7QodCb0JDQkgor0JLQm9CQ0JvQo9Ca0JjQnSDQmNCb0J7QndCQCivQktCb0JDQm9Cj0JrQmNCdINCY0JvQntCd0JrQkAor0JLQm9CQ0JvQo9Ca0JjQnSDQnNCY0JvQntCg0JDQlCDQlNCY0J/QmyDQmNCd0JMKK9CS0JvQkNCb0KPQmtCY0J0g0JzQmNCg0IjQkNCd0JAKK9CS0JvQkNCb0KPQmtCY0J0g0J3QkNCU0JAKK9CS0JvQkNCb0KPQmtCY0J0g0KHQkNCS0JAKK9CS0JvQkNCb0KPQmtCY0J0g0KHQm9CQ0JLQmtCeCivQktCb0JDQm9Cj0JrQmNCdINCX0J7QoNCQCivQktCb0JDQntCSLdCW0JDQoNCa0J7QkiDQntCb0JPQkAor0JLQm9CQ0J7QkiDQk9Ce0KDQlNCQ0J3QkAor0JLQm9CQ0J7QkiDQiNCQ0JLQntCg0JrQkAor0JLQm9CQ0J7QkiDQnNCY0JvQntCoCivQktCb0JDQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JvQkNCe0JIg0JLQldCb0JjQnNCY0KAKK9CS0JvQkNCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0JvQkNCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0JvQkNCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0JvQkNCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0JvQkNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCb0JDQntCS0JjQiyDQkNCd0JjQptCQCivQktCb0JDQntCS0JjQiyDQkdCe0KjQmtCeCivQktCb0JDQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JLQm9CQ0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQktCb0JDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0JvQkNCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQm9CQ0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQm9CQ0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQm9CQ0J7QktCY0Isg0JTQo9Co0JrQngor0JLQm9CQ0J7QktCY0Isg0JPQkNCS0KDQkAor0JLQm9CQ0J7QktCY0Isg0KXQkNCg0JgKK9CS0JvQkNCe0JLQmNCLINCY0JPQitCQ0KIKK9CS0JvQkNCe0JLQmNCLINCY0JLQkNCd0JrQkAor0JLQm9CQ0J7QktCY0Isg0IjQldCb0JAKK9CS0JvQkNCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0JvQkNCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0JvQkNCe0JLQmNCLINCa0JDQotCY0KbQkAor0JLQm9CQ0J7QktCY0Isg0JvQkNCX0JDQoAor0JLQm9CQ0J7QktCY0Isg0InQo9CR0JjQqNCQCivQktCb0JDQntCS0JjQiyDQidCj0JHQmNCm0JAKK9CS0JvQkNCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCb0JDQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JLQm9CQ0J7QktCY0Isg0JvQo9Ca0JAKK9CS0JvQkNCe0JLQmNCLINCc0JDQoNCQCivQktCb0JDQntCS0JjQiyDQnNCQ0KDQmtCeCivQktCb0JDQntCS0JjQiyDQnNCY0JvQntCoCivQktCb0JDQntCS0JjQiyDQnNCY0JvQntCoCivQktCb0JDQntCS0JjQiyDQnNCY0JvQntCh0JDQkgor0JLQm9CQ0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQm9CQ0J7QktCY0Isg0JzQm9CQ0JTQldCdCivQktCb0JDQntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JvQkNCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQm9CQ0J7QktCY0Isg0J7Qm9CY0JLQldCg0JAKK9CS0JvQkNCe0JLQmNCLINCf0JvQldCc0JXQndCa0JAKK9CS0JvQkNCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQktCb0JDQntCS0JjQiyDQoNCQ0IjQmtCeCivQktCb0JDQntCS0JjQiyDQodCQ0JLQkAor0JLQm9CQ0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQktCb0JDQntCS0JjQiyDQodCi0JDQndCe0IjQlQor0JLQm9CQ0J7QktCY0Isg0KHQotCV0JLQkNCdCivQktCb0JDQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0JvQkNCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CS0JvQkNCe0JLQmNCLINCi0J7QqNCQCivQktCb0JDQntCS0JjQiyDQotCe0JTQntCgCivQktCb0JDQntCS0JjQiyDQotCe0JzQkAor0JLQm9CQ0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JLQm9CQ0J7QktCY0Isg0JLQldCh0J3QkAor0JLQm9CQ0J7QktCY0Isg0JLQm9CQ0KHQotCY0KHQm9CQ0JLQkAor0JLQm9CQ0J7QktCY0Isg0JfQntCg0JDQnQor0JLQm9CQ0KHQkNCn0JXQktCY0Isg0KHQotCe0IjQmtCeCivQktCb0JDQodCQ0Jog0KDQldCd0JDQotCQCivQktCb0JDQodCe0JIg0JzQmNCl0JDQiNCb0J4KK9CS0JvQkNCh0KLQldCb0JjQiyDQoNCe0JrQodCQ0J3QlNCQCivQktCb0JDQotCa0J7QktCY0Isg0JbQldCJ0JrQngor0JLQm9CQ0KLQmtCe0JLQmNCLINCQ0J3Qk9CV0JvQngor0JLQm9CQ0KLQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0JvQkNCi0JrQntCS0JjQiyDQmtCg0JXQqNCY0JzQmNCgCivQktCb0JDQotCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQktCb0JDQotCa0J7QktCY0Isg0JzQkNCg0JjQiNCQCivQktCb0JDQotCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQm9CQ0KLQmtCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JLQm9CQ0KLQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0JvQkNCi0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CS0JvQkNCi0JrQntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0JvQkNCi0JrQntCS0JjQiyDQodCQ0JLQmtCQCivQktCb0JDQotCa0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JLQntCo0KLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCe0KjQotCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0J7QlNCQINCX0JTQldCd0JrQngor0JLQntCU0JDQm9Ce0JIg0JTQldCI0JDQnQor0JLQntCU0JDQm9Ce0JIg0JzQm9CQ0JTQldCdCivQktCe0JTQldCd0JjQp9CQ0KAg0J3QmNCa0J7Qm9CQCivQktCe0JTQntCT0JDQlyDQlNCg0JDQk9CQ0J0KK9CS0J7QlNCe0JPQkNCXINCb0JXQn9Ce0KHQkNCS0JAKK9CS0J7QlNCe0J/QmNCS0JXQpiDQltCV0InQmtCeCivQktCe0JTQntCf0JjQktCV0KYg0JTQoNCQ0JPQmNCm0JAKK9CS0J7QlNCe0J/QmNCS0JXQpiDQnNCY0KXQkNCV0JsKK9CS0J7Qk9CQ0IrQkNCmINCc0JjQm9CV0J3QmtCeCivQktCe0JPQm9CV0Kgg0JvQmNCU0JjQiNCQCivQktCe0JjQnSDQkNCb0JXQmtCh0JDQndCU0JDQoCDQlNCgINCb0JXQmtCQ0KAKK9CS0J7QiNCn0JXQktCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQntCI0KfQmNCLINCI0J7QktCQ0J0KK9CS0J7QiNCQ0KjQi9Cj0Jog0JzQkNCg0JAKK9CS0J7QiNCY0KfQmNCLINCI0JXQm9CV0J3QkAor0JLQntCI0JjQp9CY0Isg0KDQkNCI0JrQngor0JLQntCI0JjQp9CY0Isg0KHQkNCS0JAKK9CS0J7QiNCY0KfQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0J7QiNCY0JzQmNCg0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQktCe0IjQmNCdINCc0JjQm9Ca0JAKK9CS0J7QiNCY0J3QntCSINCC0J7QoNCC0JUKK9CS0J7QiNCY0J3QntCSINCc0JjQoNCQCivQktCe0IjQmNCd0J7QkiDQoNCQ0JTQntCh0JvQkNCSCivQktCe0IjQmNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CS0J7QiNCY0J3QntCS0JjQiyDQkdCe0JPQmNCLCivQktCe0IjQmNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCe0IjQmNCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQntCI0JjQndCe0JLQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JLQntCI0JjQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JLQntCI0JjQndCe0JLQmNCLINCI0J7QktCQ0J0g0JTQoAor0JLQntCI0JjQndCe0JLQmNCLINCJ0JjQidCQ0J3QkAor0JLQntCI0JjQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCe0IjQmNCd0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JLQntCI0JjQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCe0IjQmNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAg0JTQoAor0JLQntCI0JjQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0J7QiNCY0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCe0IjQmNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQntCI0JjQndCe0JLQmNCLINCd0JXQkdCe0IjQqNCQCivQktCe0IjQmNCd0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CS0J7QiNCY0J3QntCS0JjQiyDQktCj0IjQmNCm0JAKK9CS0J7QiNCY0J3QntCS0JjQiyDQktCj0JrQntCh0JDQktCQCivQktCe0IjQmNCd0J7QktCY0Isg0JfQntCg0JrQkAor0JLQntCI0JjQodCQ0JLQidCV0JLQmNCLINCX0JvQkNCi0JjQiNCQCivQktCe0IjQmtCY0Isg0JHQntCo0JrQngor0JLQntCI0JrQmNCLINCg0JDQlNCY0KHQm9CQ0JIKK9CS0J7QiNCd0JjQiyDQpNCg0JDQitCQCivQktCe0IjQndCY0Ist0KXQkNCI0JTQo9CaINCT0JjQl9CQCivQktCe0IjQndCY0Ist0KXQkNCI0JTQo9CaINCJ0JjQidCQ0J3QkAor0JLQntCI0J3QmNCLLdCl0JDQiNCU0KPQmiDQnNCY0KDQiNCQ0J3QkAor0JLQntCI0J3QmNCLINCI0J7QktCQ0J0KK9CS0J7QiNCd0JjQiy3QmtCe0KDQotCj0JjQqCDQodCi0JDQndCQCivQktCe0IjQndCY0Isg0KHQotCV0JLQkNCdCivQktCe0IjQndCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCe0IjQndCe0JIt0JjQm9CY0Isg0KDQntCX0JDQm9CY0IjQkAor0JLQntCI0J3QntCSINCh0KLQntCI0JDQnSDQlNCgINCb0JXQmtCQ0KAKK9CS0J7QiNCd0J7QktCY0Isg0JbQkNCg0JrQngor0JLQntCI0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQktCe0IjQndCe0JLQmNCLINCW0JDQoNCa0J4KK9CS0J7QiNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JLQntCI0J3QntCS0JjQiyDQgtCe0KDQgtCVCivQktCe0IjQndCe0JLQmNCLINCC0KPQoNCQCivQktCe0IjQndCe0JLQmNCLINCC0KPQoNCeCivQktCe0IjQndCe0JLQmNCLINCQ0KbQkAor0JLQntCI0J3QntCS0JjQiyDQkNCd0JDQodCi0JDQl9CY0IjQkAor0JLQntCI0J3QntCS0JjQiyDQkdCg0JDQptCQCivQktCe0IjQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JLQntCI0J3QntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0J7QiNCd0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQktCe0IjQndCe0JLQmNCLINCU0JDQndCY0KbQkAor0JLQntCI0J3QntCS0JjQiyDQlNCQ0JLQntCgCivQktCe0IjQndCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQktCe0IjQndCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQktCe0IjQndCe0JLQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JLQntCI0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCe0IjQndCe0JLQmNCLINCU0KDQkNCT0JjQptCQCivQktCe0IjQndCe0JLQmNCLINCU0KPQqNCQ0J0g0JTQmNCf0Jsg0JjQndCTCivQktCe0IjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQntCI0J3QntCS0JjQiyDQlNCj0KjQkNCdCivQktCe0IjQndCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0JPQmNCX0JXQm9CQCivQktCe0IjQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CS0J7QiNCd0J7QktCY0Isg0JjQm9CY0IjQkAor0JLQntCI0J3QntCS0JjQiyDQmNCb0JjQiNCQCivQktCe0IjQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CS0J7QiNCd0J7QktCY0Isg0JjQktCQ0J3QmtCQCivQktCe0IjQndCe0JLQmNCLINCY0JLQkNCdCivQktCe0IjQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0IjQntCS0JDQnQor0JLQntCI0J3QntCS0JjQiyDQmtCQ0KLQkNCg0JjQndCQCivQktCe0IjQndCe0JLQmNCLINCa0JDQotCY0KbQkAor0JLQntCI0J3QntCS0JjQiyDQmtCb0JDQoNCQCivQktCe0IjQndCe0JLQmNCLINCJ0KPQkdCY0KjQkAor0JLQntCI0J3QntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0JLQntCI0J3QntCS0JjQiyDQnNCQ0KDQkAor0JLQntCI0J3QntCS0JjQiyDQnNCQ0KDQmtCeCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQntCI0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQntCI0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9CY0KbQkAor0JLQntCI0J3QntCS0JjQiyDQnNCY0JvQmNCd0JAKK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCJ0JDQnQor0JLQntCI0J3QntCS0JjQiyDQnNCY0JvQmtCQCivQktCe0IjQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0J7QiNCd0J7QktCY0Isg0JzQmNCg0JrQngor0JLQntCI0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCe0IjQndCe0JLQmNCLINCc0JvQkNCU0JXQnSDQlNCY0J/QmyDQntCV0KYKK9CS0J7QiNCd0J7QktCY0Isg0J3QkNCU0JAKK9CS0J7QiNCd0J7QktCY0Isg0J3QkNCU0JAKK9CS0J7QiNCd0J7QktCY0Isg0J3QkNCU0JXQltCU0JAKK9CS0J7QiNCd0J7QktCY0Isg0J3QkNCi0JDQqNCQCivQktCe0IjQndCe0JLQmNCLINCd0JDQotCQ0KjQkAor0JLQntCI0J3QntCS0JjQiyDQndCY0JrQntCb0JAg0JTQoAor0JLQntCI0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0J7QiNCd0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQktCe0IjQndCe0JLQmNCLINCf0JXQotCQ0KAKK9CS0J7QiNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JLQntCI0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQktCe0IjQndCe0JLQmNCLINCg0JDQlNCQCivQktCe0IjQndCe0JLQmNCLINCg0JDQlNCVCivQktCe0IjQndCe0JLQmNCLINCg0JDQlNCVCivQktCe0IjQndCe0JLQmNCLINCg0JDQlNCVCivQktCe0IjQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQktCe0IjQndCe0JLQmNCLLdCg0JDQlNCj0IjQmtCe0JIg0J3QkNCU0JAKK9CS0J7QiNCd0J7QktCY0Isg0KDQkNCI0JrQngor0JLQntCI0J3QntCS0JjQiyDQoNCj0JbQmNCm0JAKK9CS0J7QiNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQktCe0IjQndCe0JLQmNCLINCh0JvQkNCS0JrQngor0JLQntCI0J3QntCS0JjQiyDQodCf0JDQodCV0J3QmNCI0JAKK9CS0J7QiNCd0J7QktCY0Isg0KHQotCQ0JzQldCd0JrQkAor0JLQntCI0J3QntCS0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9CS0J7QiNCd0J7QktCY0Isg0KHQotCV0JLQkNCdCivQktCe0IjQndCe0JLQmNCLINCh0KLQldCS0JDQnQor0JLQntCI0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0J7QiNCd0J7QktCY0Isg0KHQotCV0JLQkAor0JLQntCI0J3QntCS0JjQiyDQodCi0JXQktCeCivQktCe0IjQndCe0JLQmNCLINCh0KLQntCI0JrQkAor0JLQntCI0J3QntCS0JjQiyDQodCi0KDQkNCl0JjQitCQCivQktCe0IjQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CS0J7QiNCd0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CS0J7QiNCd0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CS0J7QiNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQntCI0J3QntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCe0IjQndCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0J7QiNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQntCI0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCe0IjQndCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0J7QiNCd0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CS0J7QiNCiINCJ0KPQkdCY0KbQkAor0JLQntCI0KIg0JzQmNCb0JDQndCQCivQktCe0IjQotCQ0KEg0KHQotCQ0J3QmNCh0JvQkNCSCivQktCe0IjQotCV0KXQntCS0KHQmtCYINCI0JDQoNCe0KHQm9CQ0JIKK9CS0J7QiNCi0JXQpdCe0JLQodCa0Jgg0J7QotCeCivQktCe0IjQotCV0KXQntCS0KHQmtCYINCe0KLQngor0JLQntCI0KLQldCl0J7QktCh0JrQmCDQl9CQ0JPQntCg0JrQkAor0JLQntCI0JLQntCU0JjQiyDQgtCj0KDQkAor0JLQntCI0JLQntCU0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQntCI0JLQntCU0JjQiyDQkNCd0JAKK9CS0J7QiNCS0J7QlNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCe0IjQktCe0JTQmNCLINCU0JDQndCY0KbQkAor0JLQntCI0JLQntCU0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCe0IjQktCe0JTQmNCLINCU0KPQqNCQ0J0KK9CS0J7QiNCS0J7QlNCY0Isg0JPQoNCQ0JTQmNCc0JjQoAor0JLQntCI0JLQntCU0JjQiyDQiNCe0JLQkNCdCivQktCe0IjQktCe0JTQmNCLINCc0JDQndCY0KjQkAor0JLQntCI0JLQntCU0JjQiyDQnNCY0JvQkNCdCivQktCe0IjQktCe0JTQmNCLINCc0JjQm9CVCivQktCe0IjQktCe0JTQmNCLINCc0JjQm9Ce0KgKK9CS0J7QiNCS0J7QlNCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0J7QiNCS0J7QlNCY0Isg0JzQmNCg0JrQngor0JLQntCI0JLQntCU0JjQiyDQndCQ0JTQkAor0JLQntCI0JLQntCU0JjQiyDQndCY0JrQntCb0JAKK9CS0J7QiNCS0J7QlNCY0Isg0KDQkNCU0J7QktCQ0J0KK9CS0J7QiNCS0J7QlNCY0Isg0KDQkNCi0JrQkAor0JLQntCI0JLQntCU0JjQiyDQodCb0JDQktCa0J4KK9CS0J7QiNCS0J7QlNCY0Isg0KHQotCV0JLQkNCdCivQktCe0IjQktCe0JTQmNCLINCh0KLQldCS0JDQnQor0JLQntCI0JLQntCU0JjQiy3QotCQ0KHQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0J7QiNCS0J7QlNCY0Isg0JLQkNCh0J4KK9CS0J7QiNCS0J7QlNCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQntCI0JLQntCU0JjQiyDQl9Ce0KDQkAor0JLQntCa0KjQmCDQgtCV0JLQkNCUCivQktCe0JrQkNCb0JjQiyDQpdCY0JvQlNCV0JPQkNCg0JQKK9CS0J7QmtCQ0JvQmNCLINCi0JXQntCR0JDQm9CUCivQktCe0JrQmNCLINCU0KDQkNCT0JDQnQor0JLQntCa0JjQiyDQlNCj0KjQmtCeCivQktCe0JrQmNCLINCI0J7QktCQ0J0KK9CS0J7QmtCY0Isg0J3QkNCU0JAKK9CS0J7Qm9Cn0JXQktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQntCb0KfQldCS0JjQiyDQldCS0JAKK9CS0J7Qm9Cn0JXQktCY0Isg0KLQntCU0J7QoAor0JLQntCb0KfQldCS0KHQmtCYINCV0JLQkNCd0KLQmNCI0JUKK9CS0J7Qm9Cn0JXQktCh0JrQmCDQndCY0JrQntCb0JAKK9CS0J7Qm9CQ0Kgg0JjQodCY0JTQntCgCivQktCe0JvQkNCoINCc0JjQm9CQ0J3QmtCeCivQktCe0JvQkNCoINCc0JjQm9CQ0J0KK9CS0J7Qm9CQ0KAg0JDQndCU0KDQkNCoCivQktCe0JvQkNCgINCa0JDQoNCb0J4KK9CS0J7Qm9CQ0KAg0J/QldCi0JDQoAor0JLQntCb0JDQoCDQodCi0IjQldCf0JDQnQor0JLQntCb0JDQoNCV0JIg0InQo9CR0J7QnNCY0KAKK9CS0J7Qm9CQ0KDQldCSINCd0JDQlNCQCivQktCe0JvQkNCg0JXQkiDQodCi0JXQktCQ0J0KK9CS0J7Qm9CQ0KDQldCS0JjQiyDQnNCQ0KDQmtCeCivQktCe0JvQkNCg0JXQktCY0Isg0JfQntCg0JDQnQor0JLQntCb0JDQoNCe0JIg0JzQmNCb0JDQnQor0JLQntCb0JDQoNCe0JIg0KDQkNCU0J7QktCQ0J0KK9CS0J7Qm9CV0J3QpiDQnNCQ0KDQmNCI0JAKK9CS0J7Qm9CkINCR0J7QoNCY0KEKK9CS0J7Qm9CkINCU0KDQkNCT0KPQotCY0J0KK9CS0J7Qm9CkINCY0KjQotCS0JDQnQor0JLQntCb0KQg0InQo9CR0JjQptCQCivQktCe0JvQpCDQidCj0JTQldCS0JjQogor0JLQntCb0KQg0JzQmNCg0JAKK9CS0J7Qm9CkINCc0JjQoNCQCivQktCe0JvQpCDQktCV0KDQkAor0JLQntCb0JjQpyDQktCb0JDQlNCY0JzQmNCgCivQktCe0JvQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCe0JvQmNCLINCR0J7QltCY0JTQkNCgCivQktCe0JvQmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JLQntCb0JjQiyDQk9Cg0KPQiNCQCivQktCe0JvQmNCLINCJ0JjQidCQ0J3QkAor0JLQntCb0JjQiyDQnNCQ0KDQmNCd0JrQkAor0JLQntCb0JjQiyDQn9CV0KLQkNCgCivQktCe0JvQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CS0J7Qm9CY0Isg0KHQm9CQ0JLQmtCeCivQktCe0JvQmNCLINCi0JjQpdCe0JzQmNCgCivQktCe0JvQmNCLINCS0JjQndCa0JAKK9CS0J7Qm9Ca0JDQoCDQldCc0JjQmwor0JLQntCb0JrQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9CS0J7Qm9Ce0KjQmtCY0J0g0JHQoNCQ0KLQmNCh0JvQkNCSCivQktCe0JvQntCo0JrQmNCdINCU0KDQkNCT0JjQptCQCivQktCe0J3QmNCLINCS0JvQkNCi0JrQngor0JLQntCg0JDQp9CV0Jog0JbQldCJ0JrQngor0JLQntCg0JDQp9CV0Jog0JvQkNCU0JjQodCb0JDQkgor0JLQntCg0JDQotCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQktCe0KDQk9CY0Isg0ILQntCg0ILQlQor0JLQntCg0JPQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCe0KDQk9CY0Isg0JDQndCC0JXQm9Ca0JAKK9CS0J7QoNCT0JjQiyDQkdCe0KDQmNCS0J7QiAor0JLQntCg0JPQmNCLINCU0KDQkNCT0JDQnQor0JLQntCg0JPQmNCLINCV0JzQmNCbCivQktCe0KDQk9CY0Isg0JPQkNCS0KDQkAor0JLQntCg0JPQmNCLINCI0J7QodCY0J8KK9CS0J7QoNCT0JjQiyDQm9CQ0JfQkNCgCivQktCe0KDQk9CY0Isg0JzQkNCg0JAKK9CS0J7QoNCT0JjQiyDQnNCY0JvQkNCU0JjQndCa0JAKK9CS0J7QoNCT0JjQiyDQndCY0JrQntCb0JAg0JTQoAor0JLQntCg0JPQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0J7QoNCT0JjQiyDQodCi0JXQktCQ0J0KK9CS0J7QoNCT0JjQiyDQodCi0JXQktCQ0J0KK9CS0J7QoNCT0JjQiyDQktCj0IjQmNCm0JAKK9CS0J7QoNCT0JjQiyDQl9CU0KDQkNCS0JrQngor0JLQntCg0JPQmNCLINCX0J7QoNCQCivQktCe0KDQk9CY0J3QpiDQptCS0JXQotCQCivQktCe0KDQk9Cj0KfQmNCLINCc0JjQm9Ce0KgKK9CS0J7QoNCT0KPQp9CY0Isg0KHQkNCo0JAKK9CS0J7QoNCT0KPQp9CY0J0g0JjQktCQ0J0KK9CS0J7QoNCa0JDQn9CQINCd0JjQmtCe0JvQkAor0JLQntCg0JrQkNCf0JjQiyDQlNCj0KjQkNCdCivQktCe0KDQmtCQ0J/QmNCLINCJ0KPQkdCY0KbQkAor0JLQntCg0JrQkNCf0JjQiyDQnNCY0JvQkNCdCivQktCe0KDQmtCQ0J/QmNCLINCd0JjQmtCe0JvQkAor0JLQntCg0JvQmNCn0JXQmiDQiNCQ0J3QntCoCivQktCe0KDQm9CY0KfQldCaINCI0JDQndCe0KgKK9CS0J7QoNCb0JjQp9CV0Jog0JzQkNCg0JjQptCQCivQktCe0KDQntCR0IjQldCSINCf0JXQotCQ0KAKK9CS0J7QoNCe0JHQiNCV0JIg0KHQkNCS0JAKK9CS0J7QoNCe0KLQntCS0JjQiyDQodCi0JDQndCQCivQktCe0KDQotCY0Isg0JHQntCh0JjQidCa0JAKK9CS0J7Ql9CQ0KAg0JDQndCQCivQktCe0JfQkNCgINCU0JDQndCY0KbQkAor0JLQntCX0JDQoCDQlNCg0JDQk9CQ0J0KK9CS0J7Ql9CQ0KAg0JzQmNCb0J7QqAor0JLQntCX0JDQoCDQn9CQ0JLQm9CVINCU0JjQn9CbINCY0J3Qkwor0JLQntCX0JDQoNCV0JLQmNCLINCC0J7QoNCC0JUKK9CS0J7Ql9CQ0KDQldCS0JjQiyDQldCb0JjQl9CQ0JHQldCi0JAKK9CS0J7Ql9CQ0KDQldCS0JjQiyDQiNCV0JvQmNCm0JAKK9CS0J7Ql9CQ0KDQldCS0JjQiyDQnNCY0KDQmtCeCivQktCe0JfQkNCg0J7QktCY0Isg0JLQmNCU0JAKK9CS0KDQp9CY0J3QkNCmINCf0JXQotCQ0KAKK9CS0KDQqNCa0JAg0ILQntCg0ILQlQor0JLQoNCo0JrQkCDQlNCQ0J3QmNCI0JXQmwor0JLQoNCo0JrQkCDQmtCQ0KLQkNCg0JjQndCQCivQktCg0JDQp9CQ0KAg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCg0JDQp9CQ0KAg0JTQkNCg0JjQndCa0JAKK9CS0KDQkNCn0JDQoCDQiNCe0JLQkNCdCivQktCg0JDQp9CQ0KAg0InQo9CR0J7QnNCY0KAKK9CS0KDQkNCn0JDQoCDQidCj0JHQngor0JLQoNCQ0KfQkNCgINCc0JjQm9CQ0J0KK9CS0KDQkNCn0JDQoCDQnNCY0J7QidCa0JAKK9CS0KDQkNCn0JDQoCDQndCV0JTQldCJ0JrQngor0JLQoNCQ0KfQkNCgINCh0JvQkNCS0JrQkAor0JLQoNCQ0KfQkNCgINCh0JvQntCR0J7QlNCQ0J0KK9CS0KDQkNCn0JDQoCDQktCV0KDQkAor0JLQoNCQ0KfQkNCgINCS0KPQmgor0JLQoNCQ0KfQkNCgINCX0JTQldCd0JrQkAor0JLQoNCQ0KfQkNCg0JjQp9CY0Isg0KDQkNCU0JUKK9CS0KDQkNCn0JDQoNCY0Isg0ILQntCg0ILQlQor0JLQoNCQ0KfQkNCg0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQoNCQ0KfQkNCg0JjQiyDQlNCY0JzQmNCi0KDQmNCI0JUKK9CS0KDQkNCn0JDQoNCY0Isg0IjQldCb0JjQptCQCivQktCg0JDQp9CQ0KDQmNCLINCJ0JjQidCQ0J3QkAor0JLQoNCQ0KfQkNCg0JjQiyDQidCj0JHQmNCo0JAKK9CS0KDQkNCn0JDQoNCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0KDQkNCn0JDQoNCY0Isg0JzQkNCg0JjQiNCQCivQktCg0JDQp9CQ0KDQmNCLINCc0JjQm9CV0J3QmtCeCivQktCg0JDQp9CQ0KDQmNCLINCc0JjQm9CY0KHQkNCSCivQktCg0JDQp9CQ0KDQmNCLINCc0JjQm9Ce0JzQmNCgCivQktCg0JDQp9CQ0KDQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0KDQkNCn0JXQktCY0Isg0KHQkNCS0JrQkAor0JLQoNCQ0KjQotCQ0J3QntCS0JjQiyDQidCj0JHQmNCd0JrQkAor0JLQoNCQ0JHQm9CY0Jog0IjQo9Cb0JjQiNCQ0J3QkAor0JLQoNCQ0JPQntCS0JjQiyDQiNCe0KbQkAor0JLQoNCQ0J3QkCDQndCQ0JTQkAor0JLQoNCQ0J3QkNCmINCa0KHQldCd0JjQiNCQCivQktCg0JDQndCQ0KYg0KHQldCQ0JQKK9CS0KDQkNCd0JDQpiDQktCQ0KXQmNCU0JAKK9CS0KDQkNCd0JDQpiDQl9CY0IjQkNCUCivQktCg0JDQndCV0Kgg0KfQldCU0J7QnNCY0KAKK9CS0KDQkNCd0JXQqCDQkdCe0JbQmNCU0JDQoAor0JLQoNCQ0J3QldCoINCU0JDQktCe0KDQmNCdCivQktCg0JDQndCV0Kgg0JXQnNCY0JvQmNCI0JAKK9CS0KDQkNCd0JXQqCDQiNCe0JLQkNCd0JrQkAor0JLQoNCQ0J3QldCoINCc0JDQoNCY0IjQkAor0JLQoNCQ0J3QldCoINCc0JjQm9CQ0J0KK9CS0KDQkNCd0JXQqCDQnNCY0JvQmtCQCivQktCg0JDQndCV0Kgg0JzQmNCb0KPQotCY0J0KK9CS0KDQkNCd0JXQqCDQndCQ0JTQkAor0JLQoNCQ0J3QldCoINCd0JjQmtCe0JvQkAor0JLQoNCQ0J3QldCoINCf0JXQotCQ0KAKK9CS0KDQkNCd0JXQqCDQodCc0JjQidCQCivQktCg0JDQndCV0Kgg0JLQldCg0JjQptCQCivQktCg0JDQndCV0KjQldCS0JjQiyDQkNCU0JDQnAor0JLQoNCQ0J3QldCo0JXQktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSINCU0KAKK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCU0JDQnNCI0JDQnQor0JLQoNCQ0J3QldCo0JXQktCY0Isg0JrQkNCi0JjQptCQCivQktCg0JDQndCV0KjQldCS0JjQiyDQnNCY0JvQkNCdCivQktCg0JDQndCV0KjQldCS0JjQiyDQnNCY0JvQkNCdCivQktCg0JDQndCV0KjQldCS0JjQiyDQnNCY0JvQntCoCivQktCg0JDQndCV0KjQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCg0JDQndCV0KjQldCS0JjQiyDQnNCb0JDQlNCV0J0KK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCd0JDQlNCQINCU0KAKK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCf0KDQldCU0KDQkNCTCivQktCg0JDQndCV0KjQldCS0JjQiyDQoNCQ0IjQmtCeCivQktCg0JDQndCV0KjQldCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0KDQkNCd0JXQqNCV0JLQmNCLINCh0KLQntCI0JDQnQor0JLQoNCQ0J3QmNCLINCn0JXQlNCe0JzQmNCgCivQktCg0JDQndCY0Isg0JHQoNCQ0J3QmtCeCivQktCg0JDQndCY0Isg0JTQntCR0KDQmNCd0JAKK9CS0KDQkNCd0JjQiyDQlNCg0JDQk9CY0IrQkAor0JLQoNCQ0J3QmNCLINCU0KDQkNCT0J7QodCb0JDQkgor0JLQoNCQ0J3QmNCLINCY0JvQmNCI0JAKK9CS0KDQkNCd0JjQiyDQiNCQ0JTQoNCQ0J3QmtCQCivQktCg0JDQndCY0Isg0JzQkNCg0JrQngor0JLQoNCQ0J3QmNCLINCc0JjQm9CQ0J0g0J/QoNCe0KTQldCh0J7QoAor0JLQoNCQ0J3QmNCLINCc0JjQm9Ce0KDQkNCUCivQktCg0JDQndCY0Isg0JzQmNCb0KPQotCY0J0KK9CS0KDQkNCd0JjQiyDQnNCY0KDQp9CV0KLQkAor0JLQoNCQ0J3QmNCLINCc0JjQoNCa0J4KK9CS0KDQkNCd0JjQiyDQnNCY0KLQoNCQCivQktCg0JDQndCY0Isg0J3QldCd0JDQlAor0JLQoNCQ0J3QmNCLINCd0JjQmtCe0JvQkAor0JLQoNCQ0J3QmNCLINCg0JDQlNCY0JLQntCI0JUKK9CS0KDQkNCd0JjQiyDQoNCQ0JTQntCI0JrQkAor0JLQoNCQ0J3QmNCLINCh0JvQkNCS0JrQngor0JLQoNCQ0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KDQkNCK0JXQqCDQk9Ce0IjQmtCeCivQktCg0JDQitCV0Kgg0IjQntCS0JDQndCa0JAKK9CS0KDQkNCK0JXQqCDQnNCY0JvQldCd0JrQngor0JLQoNCQ0IrQldCoINCc0JjQm9CV0J3QmtCeCivQktCg0JDQitCV0Kgg0JzQmNCb0JUKK9CS0KDQkNCK0JXQqCDQnNCY0JvQmtCQCivQktCg0JDQitCV0Kgg0J3QldCd0JDQlAor0JLQoNCQ0IrQldCoINCg0JDQlNCe0JzQmNCgCivQktCg0JDQitCV0Kgg0KHQntCk0JjQiNCQCivQktCg0JDQitCV0Kgg0KHQktCV0KLQmNCh0JvQkNCSCivQktCg0JDQitCV0Kgg0KHQktCV0KLQm9CQ0J3QkAor0JLQoNCQ0IrQldCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeCivQktCg0JDQitCV0KjQldCS0JjQiyDQlNCY0J3QmtCQCivQktCg0JDQitCV0KjQldCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KDQkNCK0JXQqNCV0JLQmNCLINCI0J7QktCY0KbQkAor0JLQoNCQ0IrQldCo0JXQktCY0Isg0JzQntCc0JjQoAor0JLQoNCQ0IrQldCo0JXQktCY0Isg0KDQkNCi0J7QnNCY0KAKK9CS0KDQkNCK0JXQqNCV0JLQmNCLINCS0JXQidCa0J4KK9CS0KDQkNCK0JXQktCQ0KYg0JTQoNCQ0JPQkNCdCivQktCg0JDQitCV0JLQkNCmINCc0JjQm9CY0JLQntCI0JUKK9CS0KDQkNCK0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQktCg0JDQitCa0J7QktCY0Isg0JzQmNCb0JUKK9CS0KDQkNCK0JrQntCS0JjQiyDQodCc0JjQidCa0JAKK9CS0KDQkNCK0JrQntCS0JjQiyDQodCg0JXQotCeCivQktCg0JDQitCeINCk0KDQkNCK0JAKK9CS0KDQkNCK0J4g0JfQntCb0KLQkNCdCivQktCg0JDQndCa0J7QktCY0Isg0IjQo9Cg0JDQiAor0JLQoNCQ0J3QmtCe0JLQmNCLINCb0KPQmtCQCivQktCg0JDQndCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQoNCQ0J/Qp9CV0JIg0JbQmNCS0JrQngor0JLQoNCQ0J/Qp9CV0JIg0JTQo9Co0JrQngor0JLQoNCQ0J/Qp9CV0JIg0JzQldCb0JDQndCY0IjQkAor0JLQoNCQ0KLQitCQ0J0g0JHQoNCQ0J3QmNCc0JjQoAor0JLQoNCQ0KLQntCK0JjQiyDQodCb0JDQktCe0InQo9CRCivQktCg0JHQkNCo0JrQmCDQltCQ0KDQmtCeCivQktCg0JHQkNCo0JrQmCDQltCQ0KDQmtCeCivQktCg0JHQkNCo0JrQmCDQgtCe0KDQgtCVCivQktCg0JHQkNCo0JrQmCDQgtCe0KDQgtCVCivQktCg0JHQkNCo0JrQmCDQgtCj0KDQkAor0JLQoNCR0JDQqNCa0Jgg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KDQkdCQ0KjQmtCYINCQ0J3QmNCm0JAKK9CS0KDQkdCQ0KjQmtCYINCR0KDQkNCd0JjQodCb0JDQktCQCivQktCg0JHQkNCo0JrQmCDQlNCQ0KDQmNCd0JrQkAor0JLQoNCR0JDQqNCa0Jgg0JTQoNCQ0JPQntCc0JjQoAor0JLQoNCR0JDQqNCa0Jgg0JTQoNCQ0JPQntCh0JvQkNCSCivQktCg0JHQkNCo0JrQmCDQlNCj0KjQkNCdCivQktCg0JHQkNCo0JrQmCDQlNCj0KjQkNCdCivQktCg0JHQkNCo0JrQmCDQlNCj0KjQkNCdCivQktCg0JHQkNCo0JrQmCDQlNCj0KjQmNCm0JAKK9CS0KDQkdCQ0KjQmtCYINCT0J7QoNCU0JDQndCQCivQktCg0JHQkNCo0JrQmCDQiNCV0JvQldCd0JAKK9CS0KDQkdCQ0KjQmtCYINCI0JXQm9CY0KHQkNCS0JXQotCQCivQktCg0JHQkNCo0JrQmCDQiNCe0JLQkNCdCivQktCg0JHQkNCo0JrQmCDQiNCj0JvQmNCI0JDQndCQCivQktCg0JHQkNCo0JrQmCDQmtCe0KHQotCQCivQktCg0JHQkNCo0JrQmCDQm9CQ0JfQkNCgCivQktCg0JHQkNCo0JrQmCDQidCY0InQkNCd0JAKK9CS0KDQkdCQ0KjQmtCYINCJ0KPQkdCY0KbQkCDQnNCgCivQktCg0JHQkNCo0JrQmCDQidCj0JHQntCc0JjQoAor0JLQoNCR0JDQqNCa0Jgg0JzQmNCb0JDQnQor0JLQoNCR0JDQqNCa0Jgg0JzQmNCb0JDQnQor0JLQoNCR0JDQqNCa0Jgg0JzQmNCb0JXQndCQCivQktCg0JHQkNCo0JrQmCDQnNCY0JvQldCd0JrQngor0JLQoNCR0JDQqNCa0Jgg0JzQmNCb0JjQptCQCivQktCg0JHQkNCo0JrQmCDQnNCY0JvQntCg0JDQlAor0JLQoNCR0JDQqNCa0Jgg0JzQmNCe0JTQoNCQ0JMKK9CS0KDQkdCQ0KjQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KDQkdCQ0KjQmtCYINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KDQkdCQ0KjQmtCYINCf0JDQktCb0JUKK9CS0KDQkdCQ0KjQmtCYINCf0JXQotCQ0KAg0JTQmNCf0Jsg0JjQndCTCivQktCg0JHQkNCo0JrQmCDQn9CV0KLQkNCgCivQktCg0JHQkNCo0JrQmCDQn9CV0KLQkNCgCivQktCg0JHQkNCo0JrQmCDQoNCQ0JTQkAor0JLQoNCR0JDQqNCa0Jgg0KDQkNCU0JXQndCa0J4KK9CS0KDQkdCQ0KjQmtCYINCh0JDQktCQCivQktCg0JHQkNCo0JrQmCDQodCb0J7QkdCe0JTQkNCdCivQktCg0JHQkNCo0JrQmCDQodCi0JXQktCQ0J0g0JTQoAor0JLQoNCR0JDQqNCa0Jgg0KHQktCV0KLQm9CQ0J3QkAor0JLQoNCR0JDQqNCa0Jgg0KLQkNCK0JAKK9CS0KDQkdCQ0KjQmtCYINCi0JjQnNCQCivQktCg0JHQkNCo0JrQmCDQotCe0JTQntCgCivQktCg0JHQkNCo0JrQmCDQktCb0JDQlNCY0KHQm9CQ0JIKK9CS0KDQkdCQ0IjQkNCmINCC0J7QoNCC0JUKK9CS0KDQkdCQ0IjQkNCmINCm0JLQldCL0JUKK9CS0KDQkdCQ0IjQkNCmINCI0J7QktCQ0J0KK9CS0KDQkdCQ0IjQkNCmINCS0JDQm9CV0KDQmNCI0JAKK9CS0KDQkdCQ0J3QkNCmINCb0JDQiNCe0KgKK9CS0KDQkdCY0KbQkCDQlNCg0JDQk9Ce0InQo9CRCivQktCg0JHQmNCm0JAg0JrQodCV0J3QmNCI0JAKK9CS0KDQkdCY0KbQkCDQn9CV0KLQkNCgCivQktCg0JHQidCQ0J3QkNCmINCQ0JvQldCdCivQktCg0KbQkNCdINCS0JDQm9CV0KDQmNCI0JAKK9CS0KDQptCV0Ikg0JbQmNCS0JrQngor0JLQoNCm0JXQiSDQkdCe0JbQmNCU0JDQoAor0JLQoNCm0JXQiSDQidCY0InQkNCd0JAKK9CS0KDQptCV0Ikg0JzQmNCl0JDQiNCb0J4KK9CS0KDQptCV0Ikg0JfQntCg0JDQnQor0JLQoNCU0J7QidCQ0Jog0JHQoNCQ0J3QmNCc0JjQoAor0JLQoNCU0J7QidCQ0Jog0KDQkNCU0J7QktCQ0J3QmtCQCivQktCg0JXQqNCL0JDQmiDQmNCo0KLQktCQ0J0KK9CS0KDQldCL0JAg0JHQoNCQ0J3QmtCeCivQktCg0JXQi9CeINCS0JXQm9CY0JzQmNCgCivQktCg0JXQkdCQ0KYg0JfQktCe0J3QmNCc0JjQoAor0JLQoNCV0JHQkNCb0J7QkiDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JLQoNCV0JHQkNCb0J7QkiDQodCi0JXQktCQ0J0KK9CS0KDQldCR0JDQm9Ce0JIg0KLQmNCl0J7QnNCY0KAKK9CS0KDQldCS0JXQl9Ce0KHQmtCYINCg0JjQodCi0J4KK9CS0KDQldCS0JjQp9CY0Isg0ILQntCg0ILQlQor0JLQoNCV0JLQmNCn0JjQiyDQodCY0JzQkAor0JLQoNCV0JLQmNCn0JjQiyDQotCg0JjQktCj0J0KK9CS0KDQk9Ce0JIg0JrQntCh0KLQkAor0JLQoNCT0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCg0JPQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0KDQk9Ce0JLQmNCLINCS0JXQoNCQCivQktCg0JPQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCg0KXQntCS0JDQpiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KDQpdCe0JLQkNCmINCU0JDQndCVCivQktCg0KXQntCS0JDQpiDQiNCQ0KHQnNCY0J3QkAor0JLQoNCl0J7QktCQ0KYg0J3QldCU0JXQidCa0J4KK9CS0KDQpdCe0JLQkNCmINCh0JvQkNCS0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CS0KDQpdCe0JLQkNCmINCi0J7QnNCY0KHQm9CQ0JIKK9CS0KDQmtCV0Kgg0JPQntCg0JDQnQor0JLQoNCc0JjQiyDQnNCb0JDQlNCV0J0KK9CS0KDQndCn0JjQiyDQgtCe0KDQgtCVCivQktCg0KHQkNCI0JrQntCSINCY0JvQmNCI0JAKK9CS0KDQodCQ0IjQmtCe0JIg0JjQodCY0JTQntCgCivQktCg0KHQkNCI0JrQntCSINCI0KPQm9Ca0JAKK9CS0KDQodCQ0IjQmtCe0JIg0InQo9CR0JjQptCQCivQktCg0KHQkNCI0JrQntCSINCc0JjQm9Ce0KgKK9CS0KDQodCQ0IjQmtCe0JIg0J3QldCS0JXQndCa0JAKK9CS0KDQodCV0InQkCDQktCY0J3QmtCeCivQktCg0KLQmNCa0JDQn9CQINCI0J7QktCQ0J3QmtCQCivQktCg0KLQmNCf0KDQkNCo0JrQmCDQn9CV0KLQkNCgCivQktCg0KLQmNCf0KDQkNCo0JrQmCDQoNCQ0JTQntCS0JDQnSDQlNCgCivQktCg0KLQmNCf0KDQkNCo0JrQmCDQoNCQ0JTQntCS0JDQnQor0JLQoNCi0JjQn9Cg0JDQqNCa0Jgg0JLQkNCh0JAKK9CS0KDQotCe0JLQqNCd0JjQmiDQnNCY0KXQkNCI0JvQngor0JLQoNCi0KPQm9CV0Jog0KHQnNCY0InQkAor0JLQoNCi0KPQndCY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQoNCi0KPQndCY0Isg0JzQkNCg0JrQngor0JLQoNCi0KPQndCY0Isg0J3QmNCa0J7Qm9CQCivQktCg0KLQo9Cd0KHQmtCYINCU0JDQndCY0KbQkAor0JLQoNCi0KPQndCh0JrQmCDQpdCV0JTQktCY0JPQkAor0JLQoNCi0KPQndCh0JrQmCDQiNCj0JvQmtCQCivQktCg0KLQo9Cd0KHQmtCYINCa0JDQotCQ0KDQmNCd0JAKK9CS0KDQotCj0J3QodCa0Jgg0JzQmNCb0JDQnQor0JLQoNCi0KPQndCh0JrQmCDQnNCY0JvQmNCm0JAKK9CS0KDQotCj0J3QodCa0Jgg0JzQmNCe0JTQoNCQ0JMKK9CS0KDQotCj0J3QodCa0Jgg0JzQm9CQ0JTQldCdCivQktCg0KLQo9Cd0KHQmtCYINCh0KDQgtCQ0J0KK9CS0KDQotCj0J3QodCa0Jgg0JLQm9CQ0JTQmNCc0JjQoAor0JLQoNCj0IvQmNCd0JjQiyDQoNCQ0JTQntCI0JjQptCQCivQktCg0KPQi9CY0J3QmNCLINCg0JDQiNCa0J4KK9CS0KDQl9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQoNCX0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQoNCX0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQoNCX0JjQiyDQndCQ0JTQldCW0JTQkAor0JLQoNCX0JjQiyDQodCi0JXQktCeCivQktCj0KfQkNCIINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0KfQkNCIINCk0KDQkNCdCivQktCj0KfQkNCIINCc0JjQntCc0JjQoNCQCivQktCj0KfQkNCIINCg0J7QkdCV0KDQogor0JLQo9Cn0JDQndCe0JLQmNCLINCf0KDQldCU0KDQkNCTCivQktCj0KfQldCb0JjQiyDQoNCQ0JTQntCc0JjQoAor0JLQo9Cn0JXQm9CY0Isg0KHQm9CQ0JLQmtCeCivQktCj0KfQldCb0JjQiyDQktCV0KDQkAor0JLQo9Cn0JXQm9CY0Isg0JLQm9CQ0IjQmtCeCivQktCj0KfQldCdINCc0JjQm9CQ0J3QkAor0JLQo9Cn0JXQndCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CS0KPQp9CV0J3QntCSINCC0KPQoNCY0KbQkAor0JLQo9Cn0JXQndCe0JIg0JrQkNCi0JDQm9CY0J0KK9CS0KPQp9CV0J3QntCSINCc0JjQoNCI0JDQndCQCivQktCj0KfQldCd0J7QkiDQodCi0JXQktCQ0J0KK9CS0KPQp9CV0J3QntCS0JjQiyDQltCY0JLQkNCdCivQktCj0KfQldCd0J7QktCY0Isg0JbQmNCS0JDQnQor0JLQo9Cn0JXQndCe0JLQmNCLINCR0KDQkNCd0JrQkAor0JLQo9Cn0JXQndCe0JLQmNCLINCU0JXQodCQ0J3QmtCQCivQktCj0KfQldCd0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQo9Cn0JXQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0KPQp9CV0J3QntCS0JjQiyDQm9Cj0JrQkAor0JLQo9Cn0JXQndCe0JLQmNCLINCc0JjQoNCa0J4KK9CS0KPQp9CV0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0KfQldCd0J7QktCY0Isg0KHQoNCV0KLQngor0JLQo9Cn0JXQndCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0KPQp9CV0KDQmNCLINCf0KDQktCe0KHQm9CQ0JIKK9CS0KPQp9CV0KLQmNCLINCW0JjQmtCQCivQktCj0KfQldCi0JjQiyDQltCY0JLQmtCeCivQktCj0KfQldCi0JjQiyDQkNCd0ILQldCb0JrQkAor0JLQo9Cn0JXQotCY0Isg0JHQntCW0JjQlNCQ0KAKK9CS0KPQp9CV0KLQmNCLINCR0J7QiNCQ0J3QkAor0JLQo9Cn0JXQotCY0Isg0JTQkNCg0JjQndCa0JAKK9CS0KPQp9CV0KLQmNCLINCU0JXQodCY0JzQmNCgCivQktCj0KfQldCi0JjQiyDQlNCV0JLQkAor0JLQo9Cn0JXQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQktCj0KfQldCi0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQp9CV0KLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQp9CV0KLQmNCLINCb0JDQl9CQ0KAKK9CS0KPQp9CV0KLQmNCLINCJ0JjQidCQ0J3QkAor0JLQo9Cn0JXQotCY0Isg0JzQmNCL0JAKK9CS0KPQp9CV0KLQmNCLINCc0JjQm9CV0J3QkAor0JLQo9Cn0JXQotCY0Isg0JzQmNCb0JXQndCQCivQktCj0KfQldCi0JjQiyDQnNCY0JvQldCdCivQktCj0KfQldCi0JjQiyDQnNCY0JvQntCh0JDQkgor0JLQo9Cn0JXQotCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0KfQldCi0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQp9CV0KLQmNCLINCd0JjQndCa0J4KK9CS0KPQp9CV0KLQmNCLINCf0JXQotCQ0KAKK9CS0KPQp9CV0KLQmNCLINCf0JXQotCQ0KAKK9CS0KPQp9CV0KLQmNCLINCg0JDQlNCVCivQktCj0KfQldCi0JjQiyDQoNCQ0JTQntCI0JrQkAor0JLQo9Cn0JXQotCY0Isg0KDQkNCU0J7QiNCa0J4KK9CS0KPQp9CV0KLQmNCLINCg0JDQiNCa0J4KK9CS0KPQp9CV0KLQmNCLINCh0JDQitCQCivQktCj0KfQldCi0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCj0KfQldCi0JjQiyDQodCc0JjQidCa0JAKK9CS0KPQp9CV0KLQmNCLINCh0J7QpNCY0IjQkAor0JLQo9Cn0JXQotCY0Isg0KHQotCQ0J3QmtCeCivQktCj0KfQldCi0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQp9CV0KLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0KPQp9CV0KLQmNCLINCS0JDQitCQCivQktCj0KfQldCi0JjQiyDQktCV0InQmtCeINCU0KAKK9CS0KPQp9CV0KLQmNCLINCS0JXQoNCQCivQktCj0KfQldCi0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CS0KPQp9CV0KLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQp9CV0KLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQp9CV0KLQmNCdINCW0JjQktCQ0J0KK9CS0KPQp9CV0KLQmNCdINCc0JjQm9Ce0KDQkNCUCivQktCj0KfQldCi0JjQnSDQn9CV0KLQkNCgCivQktCj0KfQldCi0JjQnSDQodCe0KTQmNCI0JAKK9CS0KPQp9CV0KLQmNCdINCi0J7QlNCe0KAKK9CS0KPQp9CV0JLQkNCmINCW0JXQm9CY0JzQmNCgCivQktCj0KfQldCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQo9Cn0JXQktCY0Isg0JHQntCW0JDQndCQCivQktCj0KfQldCS0JjQiyDQktCQ0JvQldCg0JjQiNCQCivQktCj0KfQmNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JLQo9Cn0JjQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Cn0JjQiyDQltCQ0KDQmtCeCivQktCj0KfQmNCLINCC0J7QoNCC0JUKK9CS0KPQp9CY0Isg0ILQo9Cg0ILQmNCd0JrQkAor0JLQo9Cn0JjQiyDQkdCe0JPQlNCQ0J0KK9CS0KPQp9CY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CS0KPQp9CY0Isg0JTQoNCQ0JPQkNCdCivQktCj0KfQmNCLINCU0KPQqNCQ0J0KK9CS0KPQp9CY0Isg0JTQo9Co0JDQnQor0JLQo9Cn0JjQiyDQiNCV0JvQldCd0JAKK9CS0KPQp9CY0Isg0IjQntCS0JDQndCa0JAKK9CS0KPQp9CY0Isg0IjQntCS0JDQnQor0JLQo9Cn0JjQiyDQmtCQ0KLQmNCm0JAKK9CS0KPQp9CY0Isg0JzQkNCg0JPQmNCi0JAKK9CS0KPQp9CY0Isg0JzQmNCb0JDQnQor0JLQo9Cn0JjQiyDQnNCY0JvQkNCdCivQktCj0KfQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQp9CY0Isg0J3QldCS0JXQndCa0JAKK9CS0KPQp9CY0Isg0J3QmNCa0J7Qm9CQCivQktCj0KfQmNCLINCg0JDQlNCc0JjQm9CQCivQktCj0KfQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQp9CY0Isg0KLQntCU0J7QoAor0JLQo9Cn0JjQiyDQktCV0KHQldCb0JjQnQor0JLQo9Cn0JjQi9CV0JLQmNCLINCC0J7QoNCC0JUKK9CS0KPQp9CY0IvQldCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQo9Cn0JjQi9CV0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQp9CY0IvQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JLQo9Cn0JjQi9CV0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQp9CY0IvQldCS0JjQiyDQnNCY0JvQkNCdCivQktCj0KfQmNCL0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0KPQp9CY0IvQldCS0JjQiyDQnNCY0JvQmNCm0JAKK9CS0KPQp9CY0IvQldCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9Cn0JjQi9CV0JLQmNCLINCd0JDQlNCV0JbQlNCQCivQktCj0KfQmNCL0JXQktCY0Isg0J/QldCi0JDQoAor0JLQo9Cn0JjQi9CV0JLQmNCLINCh0JXQm9CY0JzQmNCgCivQktCj0KfQmNCL0JXQktCY0Isg0JLQo9Ca0J7QodCQ0JIKK9CS0KPQp9CY0J3QmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9CS0KPQp9CY0J3QmNCLINCQ0J3QlNCg0JjQiNCQCivQktCj0KfQmNCd0JjQiyDQlNCj0KjQkNCdCivQktCj0KfQmNCd0JjQiyDQk9CQ0JLQoNCY0JvQngor0JLQo9Cn0JjQndCY0Isg0IjQkNCK0JAKK9CS0KPQp9CY0J3QmNCLINCI0JDQodCc0JjQndCa0JAKK9CS0KPQp9CY0J3QmNCLINCJ0JjQidCQ0J3QkCDQlNCgCivQktCj0KfQmNCd0JjQiyDQidCj0JHQntCc0JjQoAor0JLQo9Cn0JjQndCY0Isg0JzQkNCg0JjQiNCQCivQktCj0KfQmNCd0JjQiyDQnNCY0JvQkNCdCivQktCj0KfQmNCd0JjQiyDQnNCY0JvQkNCdCivQktCj0KfQmNCd0JjQiyDQnNCY0JvQmNCh0JDQkgor0JLQo9Cn0JjQndCY0Isg0JzQmNCb0KPQotCY0J0KK9CS0KPQp9CY0J3QmNCLINCc0JjQntCU0KDQkNCTCivQktCj0KfQmNCd0JjQiyDQnNCb0JDQlNCV0J0KK9CS0KPQp9CY0J3QmNCLINCc0JvQkNCU0JXQnQor0JLQo9Cn0JjQndCY0Isg0J/QldCi0JDQoAor0JLQo9Cn0JjQndCY0Isg0KDQkNCU0JzQmNCb0JAKK9CS0KPQp9CY0J3QmNCLINCg0JDQlNCc0JjQm9CQCivQktCj0KfQmNCd0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JLQo9Cn0JjQndCY0Isg0KDQkNCI0JrQngor0JLQo9Cn0JjQndCY0Isg0JLQldCh0J3QkAor0JLQo9Cn0JjQndCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9Cn0JjQndCY0Isg0JLQo9Ca0JzQkNCdCivQktCj0KfQmNCd0JjQiyDQl9Cb0JDQotCY0JHQntCgCivQktCj0KfQmNCd0J7QktCY0Isg0KDQkNCU0JzQmNCb0JAKK9CS0KPQp9Ca0J7QkiDQkdCe0IjQkNCd0JAKK9CS0KPQp9Ca0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQp9Ca0J7QkiDQnNCQ0KDQldCb0JAKK9CS0KPQp9Ca0J7QkiDQnNCY0JvQntCS0JDQnQor0JLQo9Cn0JrQntCS0JDQpiDQlNCg0JDQk9CQ0J0KK9CS0KPQp9Ca0J7QktCQ0KYg0KDQkNCU0JUKK9CS0KPQp9Ca0J7QktCQ0KYg0KLQntCc0JjQodCb0JDQkgor0JLQo9Cn0JrQntCS0JjQiyDQp9CQ0KHQm9CQ0JIKK9CS0KPQp9Ca0J7QktCY0Isg0JbQkNCg0JrQngor0JLQo9Cn0JrQntCS0JjQiyDQltCY0JLQmtCeCivQktCj0KfQmtCe0JLQmNCLINCC0J7QoNCC0JUKK9CS0KPQp9Ca0J7QktCY0Isg0ILQntCg0ILQlQor0JLQo9Cn0JrQntCS0JjQiyDQkNCd0ILQldCb0JrQngor0JLQo9Cn0JrQntCS0JjQiyDQkNCd0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JHQntCT0JTQkNCdCivQktCj0KfQmtCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Cn0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0KPQp9Ca0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0KfQmtCe0JLQmNCLINCU0J7QkdCg0JjQm9CQCivQktCj0KfQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQlNCg0JDQk9CeCivQktCj0KfQmtCe0JLQmNCLINCU0KPQqNCQ0J3QmtCQCivQktCj0KfQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQp9Ca0J7QktCY0Isg0JTQo9Co0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQktCj0KfQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQp9Ca0J7QktCY0Isg0JTQo9CR0KDQkNCS0JrQkAor0JLQo9Cn0JrQntCS0JjQiyDQldCc0JjQnQor0JLQo9Cn0JrQntCS0JjQiyDQldCS0JjQptCQCivQktCj0KfQmtCe0JLQmNCLINCT0JXQntCg0JPQmNCI0JUKK9CS0KPQp9Ca0J7QktCY0Isg0IjQkNCd0JrQngor0JLQo9Cn0JrQntCS0JjQiyDQiNCQ0J3QmtCeCivQktCj0KfQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0KPQp9Ca0J7QktCY0Isg0IjQntCS0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQktCj0KfQmtCe0JLQmNCLINCI0J7QktCQ0J0KK9CS0KPQp9Ca0J7QktCY0Isg0InQo9CR0JjQptCQCivQktCj0KfQmtCe0JLQmNCLINCb0KPQmtCQINCU0JjQn9CbINCe0JXQpgor0JLQo9Cn0JrQntCS0JjQiyDQnNCQ0KDQkAor0JLQo9Cn0JrQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JzQkNCg0JrQngor0JLQo9Cn0JrQntCS0JjQiyDQnNCQ0KDQmtCeCivQktCj0KfQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQktCj0KfQmtCe0JLQmNCLINCc0JjQpdCQ0IjQm9CeCivQktCj0KfQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQnNCY0JvQldCd0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCb0J7QqAor0JLQo9Cn0JrQntCS0JjQiyDQnNCY0JvQntCoCivQktCj0KfQmtCe0JLQmNCLINCc0JjQm9Ce0KgKK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCb0J7QiNCa0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0KPQp9Ca0J7QktCY0Isg0JzQmNCg0JrQngor0JLQo9Cn0JrQntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCj0KfQmtCe0JLQmNCLINCc0J7QnNCn0JjQm9CeCivQktCj0KfQmtCe0JLQmNCLINCd0JDQlNCQINCU0KAKK9CS0KPQp9Ca0J7QktCY0Isg0J3QkNCU0JAKK9CS0KPQp9Ca0J7QktCY0Isg0J3QldCU0JXQidCa0J4KK9CS0KPQp9Ca0J7QktCY0Isg0J3QmNCa0J7Qm9CQINCS0JXQotCV0KDQmNCd0JDQoAor0JLQo9Cn0JrQntCS0JjQiyDQndCe0JLQmNCm0JAKK9CS0KPQp9Ca0J7QktCY0Isg0J/QkNCj0JvQmNCd0JAKK9CS0KPQp9Ca0J7QktCY0Ist0J/QldCj0KDQkNCn0JAg0InQmNCJ0JDQndCQCivQktCj0KfQmtCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQktCj0KfQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQktCj0KfQmtCe0JLQmNCLINCh0JDQktCV0KLQkAor0JLQo9Cn0JrQntCS0JjQiy3QodCY0JzQmNCLINCS0JXQodCd0JAKK9CS0KPQp9Ca0J7QktCY0Isg0KHQmNCd0JjQqNCQCivQktCj0KfQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JLQo9Cn0JrQntCS0JjQiyDQodCi0J7QiNCQ0J0g0JTQoCDQm9CV0JrQkNCgCivQktCj0KfQmtCe0JLQmNCLINCh0KLQntCI0JDQnSDQlNCgCivQktCj0KfQmtCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0KPQp9Ca0J7QktCY0Isg0KLQkNCI0KHQmNCI0JAKK9CS0KPQp9Ca0J7QktCY0Isg0KLQntCc0J4KK9CS0KPQp9Ca0J7QktCY0Isg0JLQkNCh0JAKK9CS0KPQp9Ca0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSCivQktCj0KfQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0KPQp9Ca0J7QktCY0Isg0JLQo9Ca0JjQptCQCivQktCj0KfQmtCe0JLQmNCLINCS0KPQmtCe0KHQkNCS0JAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQp9CV0JTQngor0JLQo9Cn0KPQoNCV0JLQmNCLINCC0J7QoNCC0JUKK9CS0KPQp9Cj0KDQldCS0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQktCj0KfQo9Cg0JXQktCY0Isg0JHQmNCJ0JDQndCQCivQktCj0KfQo9Cg0JXQktCY0Isg0JHQm9CQ0JbQngor0JLQo9Cn0KPQoNCV0JLQmNCLINCR0J7QqNCa0J4KK9CS0KPQp9Cj0KDQldCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQp9Cj0KDQldCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JLQo9Cn0KPQoNCV0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQlNCj0KjQkNCdCivQktCj0KfQo9Cg0JXQktCY0Isg0JPQntCg0JTQkNCd0JAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQiNCV0JvQldCd0JAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQnNCQ0KjQkAor0JLQo9Cn0KPQoNCV0JLQmNCLINCc0JjQm9Ce0KgKK9CS0KPQp9Cj0KDQldCS0JjQiyDQnNCY0KDQmtCeCivQktCj0KfQo9Cg0JXQktCY0Isg0JzQm9CQ0JTQldCdCivQktCj0KfQo9Cg0JXQktCY0Isg0J3QkNCU0JAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQp9Cj0KDQldCS0JjQiyDQn9CV0KLQkNCgCivQktCj0KfQo9Cg0JXQktCY0Isg0KLQldCg0JXQl9CY0IjQkAor0JLQo9Cn0KPQoNCV0JLQmNCLINCj0KDQntCoCivQktCj0KfQo9Cg0JXQktCY0Isg0JLQldCh0J3QkAor0JLQo9Cn0KPQoNCV0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQktCQCivQktCj0KfQo9Cg0JXQktCY0Isg0JLQm9CQ0JTQngor0JLQo9Cn0KPQoNCV0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0KPQp9Cj0KDQldCS0JjQiyDQktCe0IjQngor0JLQo9Cn0KPQoNCe0JLQmNCLINCI0JDQodCd0JAKK9CS0KPQp9Cj0KDQntCS0JjQiyDQiNCe0JLQkNCdCivQktCj0KfQo9Cg0J7QktCY0Isg0JzQmNCg0JrQngor0JLQo9Cn0KPQoNCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQp9Cj0KDQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CS0KPQp9Cj0KDQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JLQo9Cn0KPQoNCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0g0JTQoAor0JLQo9Co0KLQkNCgINCR0J7Qk9CU0JDQnQor0JLQo9Cm0JXQm9CY0Isg0KHQm9Ce0JHQntCU0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0KPQptCV0InQkCDQlNCg0JDQk9CQ0J0KK9CS0KPQptCV0InQkCDQnNCY0JvQntCoCivQktCj0KbQldCJ0JAt0J/QldCi0KDQntCd0JjQiNCV0JLQmNCLINCS0JXQoNCQCivQktCj0KbQldCJ0JAg0KLQoNCY0JLQo9CdCivQktCj0KbQldCJ0JAg0JLQntCI0JjQnQor0JLQo9CU0KDQkNCTINCh0JDQktCeCivQktCj0JTQoNCQ0JMg0JfQntCg0JDQnQor0JLQo9CU0KDQkNCTINCX0J7QoNCQ0J0KK9CS0KPQlNCg0JDQmtCe0JLQmNCLINCg0JDQotCa0J4KK9CS0KPQk9CU0JXQm9CY0Isg0JTQntCR0KDQmNCS0J7QiAor0JLQo9CT0JTQldCb0JjQiyDQktCj0JoKK9CS0KPQk9Cb0JXQpiDQldCU0JjQotCQCivQktCj0JPQoNCV0J3QmNCn0JXQmiDQgtCj0KDQkAor0JLQo9CT0KDQldCd0JjQp9CV0Jog0JzQkNCT0JTQkAor0JLQo9CT0KDQmNCdINCh0KLQldCS0JDQnQor0JLQo9CT0KDQmNCd0KfQmNCLINCQ0J3QmtCQCivQktCj0JPQoNCY0J3Qp9CY0Isg0KTQoNCQ0IrQngor0JLQo9CT0KDQmNCd0KfQmNCLINCI0JDQoNCe0KHQm9CQ0JIKK9CS0KPQk9Cg0JjQndCV0KYg0KDQo9CU0J7Qm9CkCivQktCj0JjQiyDQiNCe0KHQmNCfCivQktCj0IjQp9CY0Isg0JTQoNCQ0JPQkNCdCivQktCj0IjQp9CY0Isg0JzQmNCb0JUKK9CS0KPQiNCn0JjQiyDQn9CV0KLQkNCgCivQktCj0IjQp9CY0Isg0J/QldCi0KDQmNCI0JAKK9CS0KPQiNCn0JjQnSDQiNCe0JLQkNCdCivQktCj0IjQp9CY0J0g0JzQmNCb0JDQnQor0JLQo9CI0KfQmNCdINCc0JjQotCQCivQktCj0IjQkNCn0JjQiyDQlNCg0JDQk9Cj0KLQmNCdCivQktCj0IjQkNCn0JjQiyDQlNCj0JHQoNCQ0JLQmtCQCivQktCj0IjQkNCn0JjQiyDQnNCY0JvQmNCh0JDQkgor0JLQo9CI0JDQp9CY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQiNCQ0KfQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0IjQkNCn0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQiNCQ0KfQmNCLINCg0JDQlNCe0KHQkNCSCivQktCj0IjQkNCn0JjQiyDQoNCQ0IjQmtCeCivQktCj0IjQkNCo0JrQntCS0JjQiyDQodCb0JDQktCa0J4KK9CS0KPQiNCQ0KjQmtCe0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0KPQiNCQ0KjQmtCe0JLQmNCLINCS0JvQkNCU0JjQodCb0JDQkgor0JLQo9CI0JDQqNCa0J7QktCY0Isg0JfQntCg0JAKK9CS0KPQiNCQ0KbQmtCe0JIg0ILQntCg0ILQlQor0JLQo9CI0JDQptCa0J7QkiDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQo9CI0JDQptCa0J7QkiDQiNCe0JLQkNCdCivQktCj0IjQkNCU0JjQndCe0JIg0JTQntCR0KDQmNCS0J7QiNCVINCU0JjQn9CbINCY0J3Qkwor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQkdCb0JDQk9Ce0IjQlQor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9CS0KPQiNCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCc0JjQm9CY0JLQntCICivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCg0JDQlNCe0KgKK9CS0KPQiNCQ0JTQmNCd0J7QktCY0Isg0KDQkNCI0JrQngor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQodCb0JDQktCY0KbQkAor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQodCS0JXQotCe0JfQkNCgCivQktCj0IjQkNCU0JjQndCe0JLQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CS0KPQiNCQ0JTQmNCd0J7QktCY0Isg0JLQldCg0JAKK9CS0KPQiNCQ0JTQmNCd0J7QktCY0Isg0JLQmNCo0IrQkAor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQktCY0KLQngor0JLQo9CI0JDQlNCY0J3QntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCj0IjQkNCa0JvQmNCI0JAg0JTQldCh0JAKK9CS0KPQiNCQ0JrQm9CY0IjQkCDQodCi0JDQndCa0J4KK9CS0KPQiNCQ0JrQntCS0JjQiyDQgtCj0KDQkNCCCivQktCj0IjQkNCa0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JLQo9CI0JDQmtCe0JLQmNCLINCa0KDQodCi0JDQnQor0JLQo9CI0JDQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQiNCQ0JrQntCS0JjQiyDQktCQ0KHQngor0JLQo9CI0JDQmtCe0JLQmNCLINCS0KPQiNCeCivQktCj0IjQkNCd0JjQiyDQltCY0JLQntCh0JDQkgor0JLQo9CI0JDQndCY0Isg0JbQmNCS0J7QodCb0JDQkgor0JLQo9CI0JDQndCY0Isg0JHQntCg0JjQktCe0IgKK9CS0KPQiNCQ0J3QmNCLINCR0KDQkNCd0JrQngor0JLQo9CI0JDQndCY0Isg0JPQntCg0JTQkNCd0JAKK9CS0KPQiNCQ0J3QmNCLINCI0J7QoNCU0JDQnQor0JLQo9CI0JDQndCY0Isg0JrQntCg0J3QldCb0JjQiNCQCivQktCj0IjQkNCd0JjQiyDQnNCY0JvQkNCdCivQktCj0IjQkNCd0JjQiyDQnNCY0JvQlQor0JLQo9CI0JDQndCY0Isg0JzQmNCb0J7QktCQ0J0KK9CS0KPQiNCQ0J3QmNCLINCd0JXQlNCV0InQmtCQCivQktCj0IjQkNCd0JjQiyDQn9CV0KLQkNCgCivQktCj0IjQkNCd0JjQiy3QktCQ0KDQk9CQINCU0JjQndCa0JAg0JTQoAor0JLQo9CI0JDQndCe0JIg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KPQiNCQ0J3QntCSINCc0JjQm9CQ0J3QmtCQCivQktCj0IjQkNCd0J7QkiDQndCY0JrQntCb0JAKK9CS0KPQiNCQ0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQktCj0IjQkNCd0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KPQiNCQ0J3QntCS0JjQiyDQkdCe0KjQmtCeCivQktCj0IjQkNCd0J7QktCY0Isg0JHQntCW0JjQlNCQ0KAg0JTQoAor0JLQo9CI0JDQndCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQktCj0IjQkNCd0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQo9CI0JDQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JLQo9CI0JDQndCe0JLQmNCLINCU0JXQodCY0JzQmNCgCivQktCj0IjQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQktCj0IjQkNCd0J7QktCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQktCj0IjQkNCd0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CS0KPQiNCQ0J3QntCS0JjQiyDQiNCe0JLQkNCd0JrQkAor0JLQo9CI0JDQndCe0JLQmNCLINCI0J7QktCeCivQktCj0IjQkNCd0J7QktCY0Isg0JzQmNCI0J4KK9CS0KPQiNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0IjQkNCd0J7QktCY0Isg0JzQmNCb0JUKK9CS0KPQiNCQ0J3QntCS0JjQiyDQnNCY0JvQmNCd0JrQkAor0JLQo9CI0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0IjQkNCd0J7QktCY0Isg0JzQmNCg0JrQngor0JLQo9CI0JDQndCe0JLQmNCLINCc0JvQkNCU0JXQnQor0JLQo9CI0JDQndCe0JLQmNCLINCh0JjQnNCeCivQktCj0IjQkNCd0J7QktCY0Isg0KHQm9CQ0JLQntCJ0KPQkQor0JLQo9CI0JDQndCe0JLQmNCLINCh0KLQkNCd0JAKK9CS0KPQiNCQ0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CS0KPQiNCQ0J3QntCS0JjQiyDQktCY0KLQntCc0JjQoAor0JLQo9CI0JDQodCY0J0g0KHQotCg0JDQmNCb0J4KK9CS0KPQiNCQ0KHQmNCd0J7QktCY0Isg0KfQldCU0J7QnNCY0KAKK9CS0KPQiNCQ0KHQmNCd0J7QktCY0Isg0IjQldCb0JjQptCQCivQktCj0IjQkNCh0JjQndCe0JLQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCj0IjQkNCh0JjQndCe0JLQmNCLINCc0JDQoNCa0J4KK9CS0KPQiNCQ0KHQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9CI0JDQodCY0J3QntCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCj0IjQkNCh0JjQndCe0JLQmNCLINCg0JDQlNCc0JjQm9CQCivQktCj0IjQkNCi0J7QktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0KPQiNCQ0KLQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JLQo9CI0JDQotCe0JLQmNCLINCi0JXQntCU0J7QoAor0JLQo9CI0JXQktCY0Isg0KDQo9CW0JAKK9CS0KPQiNCY0KfQmNCLINCC0J7QoNCC0JUKK9CS0KPQiNCY0KfQmNCLINCR0JjQodCV0KDQmtCQCivQktCj0IjQmNCn0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQo9CI0JjQp9CY0Isg0KbQktCV0KLQkAor0JLQo9CI0JjQp9CY0Isg0JTQkNCd0JjQm9CeINCU0KAKK9CS0KPQiNCY0KfQmNCLINCU0J7QkdCg0JjQm9CQCivQktCj0IjQmNCn0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQiNCY0KfQmNCLINCU0KPQqNCQ0J0KK9CS0KPQiNCY0KfQmNCLINCT0J7QiNCa0J4KK9CS0KPQiNCY0KfQmNCLINCY0JPQitCQ0KIKK9CS0KPQiNCY0KfQmNCLINCY0JvQmNCI0JAKK9CS0KPQiNCY0KfQmNCLINCY0JLQmNCm0JAg0JTQoCDQn9Cg0J7QpAor0JLQo9CI0JjQp9CY0Isg0JzQkNCg0JrQngor0JLQo9CI0JjQp9CY0Isg0JzQmNCl0JDQiNCb0J4KK9CS0KPQiNCY0KfQmNCLINCc0JjQm9CV0J3QmtCeCivQktCj0IjQmNCn0JjQiyDQnNCY0JvQntCoCivQktCj0IjQmNCn0JjQiyDQnNCY0JvQntCoCivQktCj0IjQmNCn0JjQiyDQn9CV0KLQkNCgCivQktCj0IjQmNCn0JjQiyDQn9CV0KLQoNCQCivQktCj0IjQmNCn0JjQiyDQoNCQ0JTQntCh0JvQkNCSCivQktCj0IjQmNCn0JjQiyDQoNCQ0J3QmtCeCivQktCj0IjQmNCn0JjQiyDQoNCQ0KLQmtCeCivQktCj0IjQmNCn0JjQiyDQoNCQ0KLQmtCeCivQktCj0IjQmNCn0JjQiyDQodCY0JzQngor0JLQo9CI0JjQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9CI0JjQp9CY0Isg0KHQoNCC0JDQnQor0JLQo9CI0JjQp9CY0Isg0KHQotCQ0J3QmtCeCivQktCj0IjQmNCn0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQiNCY0KfQmNCLINCh0KLQntCI0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0KPQiNCY0KfQmNCLINCh0JLQldCi0JrQngor0JLQo9CI0JjQp9CY0Isg0KLQntCc0JjQodCb0JDQkgor0JLQo9CI0JjQp9CY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JLQo9CI0JjQp9CY0Isg0JLQldCg0JAKK9CS0KPQiNCY0KfQmNCLINCS0JXQoNCY0KbQkAor0JLQo9CI0JjQp9CY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9CI0JjQp9CY0Isg0JLQntCI0JjQnQor0JLQo9CI0JjQp9CY0J0g0JbQkNCg0JrQngor0JLQo9CI0JjQp9CY0J0g0ILQntCg0ILQlQor0JLQo9CI0JjQp9CY0J0g0ILQo9Cg0ILQmNCm0JAKK9CS0KPQiNCY0KfQmNCdINCJ0KPQkdCY0KbQkAor0JLQo9CI0JjQp9CY0J0g0J/QldCi0JDQoAor0JLQo9CI0JjQiyDQltCQ0KDQmtCeCivQktCj0IjQmNCLINCW0JjQktCa0J4KK9CS0KPQiNCY0Isg0ILQntCg0ILQlQor0JLQo9CI0JjQiyDQgtCe0KDQgtCVCivQktCj0IjQmNCLINCC0KPQoNCC0JjQiNCQCivQktCj0IjQmNCLINCC0KPQoNCQCivQktCj0IjQmNCLINCC0KPQoNCQCivQktCj0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0IjQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0IjQmNCLINCQ0J3QgtCV0JvQmNCI0JAKK9CS0KPQiNCY0Isg0JDQndCi0JUKK9CS0KPQiNCY0Isg0JDQndCi0JUKK9CS0KPQiNCY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQo9CI0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQiNCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCj0IjQmNCLINCR0KDQkNCd0JrQkAor0JLQo9CI0JjQiyDQlNCg0JDQk9CQCivQktCj0IjQmNCLINCU0KDQkNCT0JAKK9CS0KPQiNCY0Isg0JTQoNCQ0JPQmNCK0JAKK9CS0KPQiNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCS0JAKK9CS0KPQiNCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQktCj0IjQmNCLINCU0KPQqNCQ0J0KK9CS0KPQiNCY0Isg0JjQktCQ0J0g0JTQoAor0JLQo9CI0JjQiyDQmNCS0JDQnSDQlNCgCivQktCj0IjQmNCLINCY0JLQkNCd0JrQkAor0JLQo9CI0JjQiyDQiNCQ0JrQntCRINCU0KAg0JvQldCa0JDQoAor0JLQo9CI0JjQiyDQiNCe0JLQkNCdCivQktCj0IjQmNCLINCI0J7QktCQ0J0KK9CS0KPQiNCY0Isg0IjQntCS0J4KK9CS0KPQiNCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JLQo9CI0JjQiy3QmtCe0KHQniDQktCV0KHQndCQCivQktCj0IjQmNCLINCb0JDQl9CQ0KAKK9CS0KPQiNCY0Isg0InQo9CR0JDQnQor0JLQo9CI0JjQiyDQidCj0JHQmNCm0JAKK9CS0KPQiNCY0Isg0JzQkNCg0JjQiNCQINCf0KDQntCk0JXQodCe0KAKK9CS0KPQiNCY0Isg0JzQmNCb0JDQnQor0JLQo9CI0JjQiyDQnNCY0JvQldCS0JAKK9CS0KPQiNCY0Isg0JzQmNCb0JXQktCQCivQktCj0IjQmNCLINCc0JjQm9CV0JLQmtCQCivQktCj0IjQmNCLINCc0JjQm9CY0KbQkAor0JLQo9CI0JjQiyDQnNCY0JvQntCoINCU0KAKK9CS0KPQiNCY0Isg0JzQmNCb0J7QqAor0JLQo9CI0JjQiyDQnNCY0JvQntCoCivQktCj0IjQmNCLINCc0JjQm9Ce0KgKK9CS0KPQiNCY0Isg0JzQmNCg0JAKK9CS0KPQiNCY0Isg0JzQmNCg0J7QodCb0JDQkiDQlNCY0J/QmyDQmNCd0JMKK9CS0KPQiNCY0Isg0JzQntCc0JjQoAor0JLQo9CI0JjQiyDQndCQ0JTQkAor0JLQo9CI0JjQiyDQndCQ0JTQkAor0JLQo9CI0JjQiyDQn9CQ0JLQm9CVINCU0KAKK9CS0KPQiNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CS0KPQiNCY0Isg0KDQkNCU0JjQktCe0IgKK9CS0KPQiNCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JLQo9CI0JjQiyDQoNCQ0KLQmtCQCivQktCj0IjQmNCLINCh0JDQktCeCivQktCj0IjQmNCLINCh0JDQktCeCivQktCj0IjQmNCLINCh0JvQkNCS0JrQkAor0JLQo9CI0JjQiyDQodCe0KTQmNCI0JAKK9CS0KPQiNCY0Isg0KHQotCQ0J3QmtCeCivQktCj0IjQmNCLINCh0KLQkNCd0JrQngor0JLQo9CI0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQiNCY0Isg0KHQotCV0JLQkNCdCivQktCj0IjQmNCLINCh0KLQldCS0JDQnQor0JLQo9CI0JjQiyDQktCV0KDQkAor0JLQo9CI0JjQiyDQktCV0KHQndCQCivQktCj0IjQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CS0KPQiNCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9CI0JjQiyDQktCe0IjQmNCh0JvQkNCS0JAKK9CS0KPQiNCY0Isg0JfQntCg0JDQnQor0JLQo9CI0JjQnSDQgtCe0JrQkAor0JLQo9CI0JjQnSDQgtCj0KDQmNCm0JAKK9CS0KPQiNCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CS0KPQiNCY0J0g0JTQkNCd0JjQptCQCivQktCj0IjQmNCdINCU0JDQktCY0JQKK9CS0KPQiNCY0J0g0IjQldCS0KDQldCcCivQktCj0IjQmNCdINCI0J7QktCQ0J3QmtCQCivQktCj0IjQmNCdINCb0JDQl9CQ0KAKK9CS0KPQiNCY0J0g0JzQkNCg0JAKK9CS0KPQiNCY0J0g0JzQldCb0JDQndCY0IjQkAor0JLQo9CI0JjQnSDQnNCY0KDQiNCQ0J3QkAor0JLQo9CI0JjQnSDQoNCQ0JTQmNCS0J7QiAor0JLQo9CI0JjQnSDQoNCQ0JTQntCS0JDQnQor0JLQo9CI0JjQnSDQodCb0JDQktCa0J4KK9CS0KPQiNCY0J0g0KHQm9Ce0JHQntCU0JDQnQor0JLQo9CI0JjQnSDQodCS0JXQotCe0JfQkNCgCivQktCj0IjQmNCdINCS0KPQiNCQ0JTQmNCdCivQktCj0IjQmNCd0J7QktCY0Isg0JbQmNCS0JrQkAor0JLQo9CI0JjQndCe0JLQmNCLINCC0KPQoNCQCivQktCj0IjQmNCd0J7QktCY0Isg0ILQo9Cg0J4KK9CS0KPQiNCY0J3QntCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCj0IjQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCc0JjQoAor0JLQo9CI0JjQndCe0JLQmNCLINCT0IrQkNCi0JjQiNCQCivQktCj0IjQmNCd0J7QktCY0Isg0IjQntCS0J4KK9CS0KPQiNCY0J3QntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JLQo9CI0JjQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CS0KPQiNCY0J3QntCS0JjQiyDQnNCb0JDQlNCY0J3QmtCeCivQktCj0IjQmNCd0J7QktCY0Isg0J3QkNCU0JAKK9CS0KPQiNCY0J3QntCS0JjQiyDQodCg0JXQotCV0J0KK9CS0KPQiNCY0J3QntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CS0KPQiNCY0J3QntCS0JjQiyDQotCV0J7QlNCe0KHQmNCI0JUKK9CS0KPQiNCY0J3QntCS0JjQiyDQktCV0KDQkAor0JLQo9CI0JjQndCe0JLQmNCLINCS0JjQlNCe0IjQlQor0JLQo9CI0JrQniDQodCQ0JLQkAor0JLQo9CI0JrQntCSINCn0JXQlNCe0JzQmNCgCivQktCj0IjQmtCe0JIg0ILQntCg0ILQlQor0JLQo9CI0JrQntCSINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0IjQmtCe0JIg0JDQndCi0JjQndCY0IjQkAor0JLQo9CI0JrQntCSINCR0J7QltCY0JTQkNCgCivQktCj0IjQmtCe0JIg0JHQntCW0JjQlNCQ0KAKK9CS0KPQiNCa0J7QkiDQlNCg0JDQk9CY0KbQkAor0JLQo9CI0JrQntCSINCU0KDQkNCT0JjQitCQCivQktCj0IjQmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JLQo9CI0JrQntCSINCU0KPQqNCQ0J0KK9CS0KPQiNCa0J7QkiDQlNCj0KjQkNCdCivQktCj0IjQmtCe0JIt0JjQodCQ0JrQntCSINCI0JDQk9CY0KbQkAor0JLQo9CI0JrQntCSINCI0JXQm9CV0J3QkAor0JLQo9CI0JrQntCSINCb0JDQl9CQ0KAKK9CS0KPQiNCa0J7QkiDQm9CQ0JfQkNCgCivQktCj0IjQmtCe0JIg0JzQmNCb0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0KPQiNCa0J7QkiDQnNCY0JvQkNCd0JAKK9CS0KPQiNCa0J7QkiDQnNCY0JvQkNCd0JAKK9CS0KPQiNCa0J7QkiDQnNCY0JvQkNCdCivQktCj0IjQmtCe0JIg0JzQmNCb0JDQnQor0JLQo9CI0JrQntCSINCc0JjQm9CV0J3QkAor0JLQo9CI0JrQntCSINCc0JjQm9CY0KbQkAor0JLQo9CI0JrQntCSINCc0JjQm9CY0KbQkAor0JLQo9CI0JrQntCSINCc0JjQm9CY0JLQntCICivQktCj0IjQmtCe0JIg0JzQmNCg0IjQkNCd0JAKK9CS0KPQiNCa0J7QkiDQnNCY0KDQntCh0JvQkNCSINCU0JjQn9CbINCY0J3Qkwor0JLQo9CI0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQiNCa0J7QkiDQndCQ0JTQkAor0JLQo9CI0JrQntCSINCd0JXQndCQ0JQKK9CS0KPQiNCa0J7QkiDQntCb0JPQkAor0JLQo9CI0JrQntCSINCf0JDQktCb0JUKK9CS0KPQiNCa0J7QkiDQn9CV0KDQkAor0JLQo9CI0JrQntCSINCf0JXQotCQ0KAg0JTQmNCf0Jsg0J/QoNCQ0JLQndCY0JoKK9CS0KPQiNCa0J7QkiDQoNCQ0JTQmNCS0J7QiAor0JLQo9CI0JrQntCSINCg0JDQlNCe0KHQm9CQ0JIKK9CS0KPQiNCa0J7QkiDQodCQ0JLQkAor0JLQo9CI0JrQntCSINCh0JDQktCQCivQktCj0IjQmtCe0JIg0KHQldCd0JrQkAor0JLQo9CI0JrQntCSINCh0JjQnNCQCivQktCj0IjQmtCe0JIg0KHQm9CQ0JLQmtCeCivQktCj0IjQmtCe0JIg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9CI0JrQntCSINCh0J3QldCW0JDQndCQCivQktCj0IjQmtCe0JIg0KHQndCV0JbQkNCd0JAKK9CS0KPQiNCa0J7QkiDQodCi0JXQktCQ0J0KK9CS0KPQiNCa0J7QkiDQodCS0JXQotCe0JfQkNCgCivQktCj0IjQmtCe0JIg0KLQkNCc0JDQoNCQCivQktCj0IjQmtCe0JIg0KLQntCc0JjQodCb0JDQkgor0JLQo9CI0JrQntCSINCS0JDQodCQINCU0KAKK9CS0KPQiNCa0J7QkiDQktCV0KHQldCb0JjQnSDQlNCgINCf0KDQntCkCivQktCj0IjQmtCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9CI0JrQntCSINCX0JTQoNCQ0JLQmtCeCivQktCj0IjQmtCe0JIg0JfQlNCg0JDQktCa0J4KK9CS0KPQiNCa0J7QktCY0Isg0ILQo9Cg0JAKK9CS0KPQiNCa0J7QktCY0Isg0JTQoNCQ0JPQkNCdCivQktCj0IjQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQktCj0IjQmtCe0JLQmNCLINCT0J7QodCf0JDQktCQCivQktCj0IjQmtCe0JLQmNCLINCc0JjQoNCQCivQktCj0IjQmtCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQo9CI0JrQntCS0JjQiyDQoNCj0JbQkAor0JLQo9CI0JrQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCj0IjQmtCe0JLQmNCLINCh0KLQldCS0JDQnQor0JLQo9CI0J3QntCS0JjQiyDQkNCd0JrQkAor0JLQo9CI0J3QntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JLQo9CI0J3QntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQiNCd0J7QktCY0Isg0JPQntCI0JrQngor0JLQo9CI0J3QntCS0JjQiyDQk9Ce0IjQmtCeCivQktCj0IjQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CS0KPQiNCd0J7QktCY0Ist0JzQmNCl0JDQiNCb0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9CS0KPQiNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9CI0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0IjQndCe0JLQmNCLINCS0JXQidCa0J4KK9CS0KPQiNCd0J7QktCY0Isg0JLQldCg0JAKK9CS0KPQiNCd0J7QktCY0Isg0JfQntCg0JAKK9CS0KPQiNCe0KjQldCS0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCj0IjQntCo0JXQktCY0Isg0JHQoNCQ0J3QmtCeINCU0JjQn9CbINCe0JXQpgor0JLQo9CI0J7QqNCV0JLQmNCLINCU0J7QkdCg0JjQodCb0JDQkgor0JLQo9CI0J7QqNCV0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQiNCe0KjQldCS0JjQiyDQmtCb0JDQoNCQCivQktCj0IjQntCo0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0KPQiNCe0KjQldCS0JjQiyDQnNCY0JvQkNCdCivQktCj0IjQntCo0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0IjQntCo0JXQktCY0Isg0KDQkNCi0JrQngor0JLQo9CI0J7QqNCV0JLQmNCLINCX0J7QoNCQCivQktCj0IjQntCS0JjQiyDQgtCe0KDQgtCVCivQktCj0IjQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQo9CI0J7QktCY0Isg0JHQm9CQ0JbQngor0JLQo9CI0J7QktCY0Isg0JHQm9CQ0JPQntCI0JUKK9CS0KPQiNCe0JLQmNCLINCR0J7QltCY0JTQkNCgCivQktCj0IjQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CS0KPQiNCe0JLQmNCLINCU0JDQoNCY0J3QmtCQCivQktCj0IjQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCj0IjQntCS0JjQiyDQlNCj0KjQkNCdCivQktCj0IjQntCS0JjQiyDQnNCQ0KDQotCQCivQktCj0IjQntCS0JjQiyDQnNCY0KXQkNCY0JvQngor0JLQo9CI0J7QktCY0Isg0JzQmNCb0J7QnNCY0KAKK9CS0KPQiNCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0IjQntCS0JjQiyDQnNCY0JvQntCg0JDQlAor0JLQo9CI0J7QktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQiNCe0JLQmNCLINCc0JjQm9Ce0JLQkNCdCivQktCj0IjQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9CI0J7QktCY0Isg0JzQmNCe0JzQmNCgCivQktCj0IjQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JLQo9CI0J7QktCY0Isg0J3QldCC0JXQidCa0J4KK9CS0KPQiNCe0JLQmNCLINCd0JXQgtCeCivQktCj0IjQntCS0JjQiyDQndCe0JLQmNCm0JAKK9CS0KPQiNCe0JLQmNCLINCe0JvQk9CQCivQktCj0IjQntCS0JjQiyDQn9CQ0JLQm9CVCivQktCj0IjQntCS0JjQiyDQn9CQ0JLQm9CVCivQktCj0IjQntCS0JjQiyDQn9CV0KLQmtCeCivQktCj0IjQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiNCVCivQktCj0IjQntCS0JjQiyDQoNCQ0JTQmNCS0J7QiAor0JLQo9CI0J7QktCY0Isg0KDQkNCU0J7QiNCVCivQktCj0IjQntCS0JjQiyDQoNCQ0KLQmtCeCivQktCj0IjQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCj0IjQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCj0IjQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQiNCe0JLQmNCLINCh0JLQldCi0JjQodCb0JDQkgor0JLQo9CI0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JLQo9CI0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JLQo9CI0J7QktCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JLQo9CI0J7QktCY0Isg0JLQldCJ0JrQngor0JLQo9CI0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CS0KPQiNCe0JLQmNCLINCS0JvQkNCU0J4KK9CS0KPQiNCe0JLQmNCLINCS0JvQkNCI0JrQngor0JLQo9CI0J7QktCY0Isg0JLQm9CQ0KLQmtCeCivQktCj0IjQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCj0IjQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCj0IjQntCS0JjQiyDQktCe0IjQmNCh0JvQkNCSCivQktCj0IjQntCS0JjQiyDQktCj0JrQmNCm0JAKK9CS0KPQiNCe0JLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCn0JXQktCY0Isg0JTQo9Co0JDQnQor0JLQo9Ca0KfQldCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JLQo9Ca0KfQldCS0JjQiyDQiNCe0JLQkNCdCivQktCj0JrQp9CV0JLQmNCLINCa0KDQodCi0J4KK9CS0KPQmtCn0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0KPQmtCn0JXQktCY0Isg0InQo9CR0J7QnNCY0KAKK9CS0KPQmtCn0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0KPQmtCn0JXQktCY0Isg0JzQmNCb0JXQndCa0J4KK9CS0KPQmtCn0JXQktCY0Isg0J/QldCi0JDQoAor0JLQo9Ca0KfQldCS0JjQiyDQodCQ0JLQngor0JLQo9Ca0KfQldCS0JjQiyDQodCe0KTQmNCI0JAKK9CS0KPQmtCn0JXQktCY0Isg0KHQotCV0JLQkNCdCivQktCj0JrQp9CV0JLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCo0JAg0KfQldCU0J4KK9CS0KPQmtCo0JAg0JbQldCJ0JrQngor0JLQo9Ca0KjQkCDQkdCe0KDQmNCS0J7QiNCVCivQktCj0JrQqNCQINCb0JDQl9CQ0KAKK9CS0KPQmtCo0JAg0JzQmNCb0JXQndCa0J4KK9CS0KPQmtCo0JAg0JzQmNCb0KPQotCY0J0KK9CS0KPQmtCo0JAg0J/QldCi0JDQoAor0JLQo9Ca0KjQkCDQktCI0JXQoNCQCivQktCj0JrQkNCo0JXQktCY0Isg0JzQmNCb0J4KK9CS0KPQmtCQ0KjQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCj0JrQkNCo0JjQnSDQiNCe0JLQkNCdCivQktCj0JrQkNCo0JjQndCe0JIg0JHQoNCQ0J3QmNCc0JjQoAor0JLQo9Ca0JDQqNCY0J3QntCSINCm0JLQldCi0JrQngor0JLQo9Ca0JDQqNCY0J3QntCSINCh0KLQldCS0JDQnQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQltCQ0KDQmtCeCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCW0JjQktCQ0J0KK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0ILQntCg0ILQlQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQkdCe0IjQkNCdCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQlNCg0JDQk9CY0IrQkAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCY0KDQldCd0JAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JjQoNCV0J3QkAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCb0JDQl9CQ0KAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQnNCY0JvQlQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQnNCY0JvQmNCm0JAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JzQmNCg0JAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQnNCe0JzQmNCgCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQn9CQ0JLQm9CVCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCg0JDQlNCe0IjQlQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQodCf0J7QnNCV0J3QmtCQCivQktCj0JrQkNCo0JjQndCe0JLQmNCLINCh0KLQntCI0JDQnQor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQktCV0KDQkAor0JLQo9Ca0JDQqNCY0J3QntCS0JjQiyDQktCV0KDQmNCm0JAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JLQldCh0JXQm9CY0J0KK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JLQmNCU0JAKK9CS0KPQmtCQ0KjQmNCd0J7QktCY0Isg0JfQlNCg0JDQktCa0J4KK9CS0KPQmtCQ0JTQmNCdINCU0J7QkdCg0JjQktCe0IjQlQor0JLQo9Ca0JDQlNCY0J0g0KLQntCc0JjQodCb0JDQkgor0JLQo9Ca0JDQlNCY0J3QntCSINCC0J7QoNCC0JUKK9CS0KPQmtCQ0JTQmNCd0J7QkiDQgtCj0KDQkAor0JLQo9Ca0JDQlNCY0J3QntCSINCR0J7QiNCa0JAKK9CS0KPQmtCQ0JTQmNCd0J7QkiDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQmtCQ0JTQmNCd0J7QkiDQmNCh0JjQlNCe0KAKK9CS0KPQmtCQ0JTQmNCd0J7QkiDQmNCS0JDQndCa0JAKK9CS0KPQmtCQ0JTQmNCd0J7QkiDQmNCS0JDQndCa0JAKK9CS0KPQmtCQ0JTQmNCd0J7QkiDQiNCe0JLQkNCdCivQktCj0JrQkNCU0JjQndCe0JIg0JrQkNCi0JjQptCQCivQktCj0JrQkNCU0JjQndCe0JIg0JzQmNCb0JXQndCa0J4KK9CS0KPQmtCQ0JTQmNCd0J7QkiDQnNCY0J7QlNCg0JDQkwor0JLQo9Ca0JDQlNCY0J3QntCSINCd0JXQndCQ0JQKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JDQndCC0JXQm9Ca0J4KK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JHQmNCJ0JDQndCQCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCR0J7QodCY0InQmtCQCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCR0KDQkNCd0JrQngor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQk9CQ0JHQoNCY0IjQldCb0JAg0J/QoNCe0KTQldCh0J7QoAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQiNCV0JvQmNCm0JAKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JvQldCf0J7QodCQ0JLQkAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQidCj0JHQngor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCc0JjQidCe0IjQmtCeCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCc0JjQm9Ce0KgKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0JzQmNCb0J7QiNCVCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQn9CQ0JLQm9CVINCU0KAKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0J/QldCi0JDQoAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCh0J7QpNCY0IjQkCDQm9Ce0JrQkNCbCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCh0J7QpNCY0IjQkAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQodCi0JDQndCQCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCh0KLQldCS0JDQnSDQlNCgCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CS0KPQmtCQ0JTQmNCd0J7QktCY0Isg0KHQktCV0KLQntCX0JDQoAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQotCQ0KLQiNCQ0J3QkAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQktCV0JvQmNCX0JDQoAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQktCb0JDQlNCY0KHQkNCSCivQktCj0JrQkNCU0JjQndCe0JLQmNCLINCX0J7Qm9CY0JrQkAor0JLQo9Ca0JDQlNCY0J3QntCS0JjQiyDQl9Ce0JvQmNCa0JAKK9CS0KPQmtCQ0IjQm9Ce0JIg0JHQo9CU0JjQnNCY0KAKK9CS0KPQmtCQ0IjQm9Ce0JIg0JzQmNCg0J7QodCb0JDQkgor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0JbQmNCS0JDQnSDQn9Cg0J7QpNCV0KHQntCgCivQktCj0JrQkNCI0JvQntCS0JjQiyDQgtCe0KDQgtCVCivQktCj0JrQkNCI0JvQntCS0JjQiyDQkNCd0JrQmNCm0JAKK9CS0KPQmtCQ0IjQm9Ce0JLQmNCLINCU0JDQndCY0JvQngor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0JTQkNCg0JjQndCa0JAKK9CS0KPQmtCQ0IjQm9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQmtCQ0IjQm9Ce0JLQmNCLINCV0JvQmNCX0JDQkdCV0KLQkAor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0JvQkNCX0JDQoAor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0JzQmNCb0JXQndCQCivQktCj0JrQkNCI0JvQntCS0JjQiyDQnNCY0KDQiNCQ0J3QkAor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0KHQoNCV0KLQngor0JLQo9Ca0JDQiNCb0J7QktCY0Isg0KHQotCV0JLQkNCdCivQktCj0JrQkNCb0JjQiyDQnNCj0JzQmNCdCivQktCj0JrQkNCJ0JXQktCY0Isg0JjQm9CY0IjQkAor0JLQo9Ca0JDQidCV0JLQmNCLINCh0JvQkNCS0JrQngor0JLQo9Ca0JDQm9Ce0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0KPQmtCQ0J3QmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0JrQkNCd0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQkNCd0JjQiyDQodCg0JXQotCV0J0KK9CS0KPQmtCQ0J3QmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCQ0J3QmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCQ0J3QntCS0JjQiyDQltCY0JLQmtCQCivQktCj0JrQkNCd0J7QktCY0Isg0JDQndCY0KbQkAor0JLQo9Ca0JDQndCe0JLQmNCLINCc0JDQoNCY0J3QkAor0JLQo9Ca0JDQndCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQmtCQ0J3QntCS0JjQiyDQndCV0JHQntCI0KjQkAor0JLQo9Ca0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQktCj0JrQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmNCc0JjQoAor0JLQo9Ca0JDQndCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQmtCQ0J3QntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQktCj0JrQkNChINCC0J7QoNCC0JUKK9CS0KPQmtCQ0KEg0ILQo9Cg0J4KK9CS0KPQmtCQ0KEg0JDQndCa0JjQptCQCivQktCj0JrQkNChINCR0KDQkNCd0JrQngor0JLQo9Ca0JDQoSDQntCc0JXQoNCa0JAKK9CS0KPQmtCQ0KHQntCS0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQmtCQ0KHQntCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0KPQmtCQ0KHQntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQkNCh0J7QktCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CS0KPQmtCQ0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQoNCQCivQktCj0JrQldCb0JjQiyDQkNCd0ILQldCb0JrQkAor0JLQo9Ca0JXQm9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQo9Ca0JXQm9CY0Isg0JHQoNCQ0J3QmtCeCivQktCj0JrQldCb0JjQiyDQkdCg0JDQndCa0J4KK9CS0KPQmtCV0JvQmNCLINCU0JDQoNCQCivQktCj0JrQldCb0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQmtCV0JvQmNCLINCI0J7QktCQ0J0KK9CS0KPQmtCV0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQktCj0JrQldCb0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQldCb0JjQiyDQnNCY0JvQlQor0JLQo9Ca0JXQm9CY0Isg0JzQmNCb0JjQptCQCivQktCj0JrQldCb0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9Ca0JXQm9CY0Isg0JzQntCc0JjQoAor0JLQo9Ca0JXQm9CY0Isg0J/QkNCS0JvQlQor0JLQo9Ca0JXQm9CY0Isg0J/QldCi0JDQoAor0JLQo9Ca0JXQm9CY0Isg0J/QldCi0JDQoAor0JLQo9Ca0JXQm9CY0Isg0KDQkNCU0JAKK9CS0KPQmtCV0JvQmNCLINCg0JDQlNCVCivQktCj0JrQldCb0JjQiyDQodCY0JvQktCY0IjQlQor0JLQo9Ca0JXQm9CY0Isg0KHQmNCc0J4KK9CS0KPQmtCV0JvQmNCLINCh0JvQkNCS0JrQngor0JLQo9Ca0JXQm9CY0Isg0KHQotCV0JLQkNCdCivQktCj0JrQldCb0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQmtCV0JvQmNCLINCi0J7QnNCY0KHQm9CQ0JIKK9CS0KPQmtCV0JvQmNCLINCS0JXQidCa0J4KK9CS0KPQmtCV0JvQmNCLINCS0JXQoNCY0KbQkAor0JLQo9Ca0JXQm9CY0Isg0JLQldCh0J3QkAor0JLQo9Ca0JXQm9CY0Isg0JLQo9Ca0JjQptCQCivQktCj0JrQldCb0JjQiyDQl9CU0KDQkNCS0JrQniDQlNCgCivQktCj0JrQldCb0JjQiyDQl9Ce0KDQmNCm0JAKK9CS0KPQmtCV0JvQmNCLINCX0JLQntCd0JjQnNCY0KAKK9CS0KPQmtCV0InQkCDQkdCg0JDQndCa0JAKK9CS0KPQmtCY0KfQldCS0JjQiyDQlNCg0JDQk9Ce0JzQmNCgCivQktCj0JrQmNCn0JXQktCY0Isg0InQmNCJ0JDQndCQCivQktCj0JrQmNCn0JXQktCY0Isg0JzQmNCb0JDQnQor0JLQo9Ca0JjQp9CV0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQmtCY0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQmNCn0JXQktCY0Isg0JzQmNCi0JDQoCDQlNCY0J/QmyDQn9Cg0JDQktCd0JjQmgor0JLQo9Ca0JjQp9CV0JLQmNCLINCg0JDQndCa0J4KK9CS0KPQmtCY0KfQldCS0JjQiyDQodCf0JDQodCe0IjQlQor0JLQo9Ca0JjQp9CV0JLQmNCLINCS0JXQodCd0JAKK9CS0KPQmtCY0Ist0IvQo9Cb0JDQpNCY0Isg0JHQoNCQ0J3QmtCQCivQktCj0JrQmNCLINCW0JjQktCa0J4KK9CS0KPQmtCY0Isg0JDQndCU0KDQldCICivQktCj0JrQmNCLINCR0J7QltCY0JTQkNCgCivQktCj0JrQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CS0KPQmtCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0JrQmNCLINCR0KDQkNCd0JrQngor0JLQo9Ca0JjQiyDQkdCj0JTQmNCc0JjQoAor0JLQo9Ca0JjQiyDQlNCV0IjQkNCdCivQktCj0JrQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JLQo9Ca0JjQiyDQlNCj0KjQkNCdCivQktCj0JrQmNCLINCY0JLQkNCd0JrQkAor0JLQo9Ca0JjQiyDQiNCe0JLQkNCdCivQktCj0JrQmNCLINCJ0KPQkdCY0KbQkAor0JLQo9Ca0JjQiyDQidCj0JHQntCc0JjQoAor0JLQo9Ca0JjQiyDQnNCQ0KDQmNCI0JAKK9CS0KPQmtCY0Isg0JzQmNCb0JDQnQor0JLQo9Ca0JjQiyDQnNCY0JvQmNCm0JAKK9CS0KPQmtCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0KPQmtCY0Isg0JzQmNCg0JrQngor0JLQo9Ca0JjQiyDQnNCe0JzQp9CY0JvQngor0JLQo9Ca0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQmtCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0JrQmNCLINCd0J7QktCQ0JoKK9CS0KPQmtCY0Isg0J/QldCi0JDQoAor0JLQo9Ca0JjQiyDQodCi0JDQndCa0J4KK9CS0KPQmtCY0Isg0KHQotCV0JLQkNCdCivQktCj0JrQmNCLINCS0JXQm9CY0JzQmNCgCivQktCj0JrQmNCLINCS0JvQkNCU0J4KK9CS0KPQmtCY0Isg0JLQo9Ca0JDQqNCY0J0KK9CS0KPQmtCY0IvQldCS0JjQiyDQgtCe0KDQgtCVCivQktCj0JrQmNCL0JXQktCY0Isg0ILQntCg0ILQlQor0JLQo9Ca0JjQi9CV0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0JrQmNCL0JXQktCY0Isg0JHQoNCQ0KLQmNCh0JvQkNCSCivQktCj0JrQmNCL0JXQktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CS0KPQmtCY0IvQldCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JLQo9Ca0JjQi9CV0JLQmNCLINCY0KHQmNCU0J7QoAor0JLQo9Ca0JjQi9CV0JLQmNCLINCY0KHQmNCU0J7QoAor0JLQo9Ca0JjQi9CV0JLQmNCLINCc0JjQntCc0JjQoAor0JLQo9Ca0JjQi9CV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQmtCY0IvQldCS0JjQiyDQnNCY0KDQntCh0JvQkNCSCivQktCj0JrQmNCL0JXQktCY0Isg0JzQntCc0KfQmNCb0J4g0JTQoAor0JLQo9Ca0JjQi9CV0JLQmNCLINCh0KLQkNCd0JjQqNCQCivQktCj0JrQmNCL0JXQktCY0Isg0KLQntCc0JAKK9CS0KPQmtCY0IvQldCS0JjQiyDQktCV0InQmtCeCivQktCj0JrQm9CY0Kgg0JTQoNCQ0JPQkNCdCivQktCj0JrQm9CY0Kgg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9Ca0JzQkNCd0J7QktCY0Isg0JTQkNCd0JjQm9CeCivQktCj0JrQnNCQ0J3QntCS0JjQiyDQidCj0JHQkAor0JLQo9Ca0JzQkNCd0J7QktCY0Isg0JzQmNCb0JDQndCQCivQktCj0JrQnNCQ0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQnNCQ0J3QntCS0JjQiyDQndCV0J3QkNCUCivQktCj0JrQnNCQ0J3QntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQnNCQ0J3QntCS0JjQiyDQodCY0JzQngor0JLQo9Ca0JzQkNCd0J7QktCY0Isg0JLQldCb0JjQnNCY0KAKK9CS0KPQmtCc0JDQndCe0JLQmNCLINCS0JXQoNCQCivQktCj0JrQnNCY0KDQntCS0JjQiyDQgtCe0KDQgtCVCivQktCj0JrQnNCY0KDQntCS0JjQiyDQgtCe0KDQgtCVCivQktCj0JrQnNCY0KDQntCS0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0JrQnNCY0KDQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCU0JDQndCVCivQktCj0JrQnNCY0KDQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCT0J7QiNCa0J4KK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCY0JvQmNCI0JAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCY0JvQmNCI0JAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCY0JvQmNCI0JAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCI0JDQitCQCivQktCj0JrQnNCY0KDQntCS0JjQiyDQidCj0JHQntCc0JjQoAor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JzQmNCb0JDQnQor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0JzQmNCb0JjQptCQCivQktCj0JrQnNCY0KDQntCS0JjQiyDQnNCY0JvQntCoCivQktCj0JrQnNCY0KDQntCS0JjQiyDQnNCY0JvQngor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0JrQnNCY0KDQntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQnNCY0KDQntCS0JjQiyDQoNCQ0J3QmtCeCivQktCj0JrQnNCY0KDQntCS0JjQiyDQoNCQ0J3QmtCeCivQktCj0JrQnNCY0KDQntCS0JjQiyDQoNCe0JTQntCJ0KPQkQor0JLQo9Ca0JzQmNCg0J7QktCY0Isg0KHQnNCY0InQmtCQCivQktCj0JrQnNCY0KDQntCS0JjQiyDQodCg0JXQi9Ca0J4KK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCS0JXQm9CY0J3QmtCQCivQktCj0JrQnNCY0KDQntCS0JjQiyDQktCj0JrQmNCm0JAKK9CS0KPQmtCc0JjQoNCe0JLQmNCLINCX0JTQoNCQ0JLQmtCQCivQktCj0JrQndCY0Isg0JzQkNCg0JjQiNCQ0J0KK9CS0KPQmtCe0JHQoNCQ0JQg0JTQoNCQ0JPQngor0JLQo9Ca0J7QkdCg0JDQlCDQidCj0JHQntCc0JjQoAor0JLQo9Ca0J7QkdCg0JDQlCDQnNCQ0KDQmtCeCivQktCj0JrQntCR0KDQkNCUINCc0JjQm9Ce0KgKK9CS0KPQmtCe0JHQoNCQ0KIg0JTQkNCd0JjQptCQCivQktCj0JrQntCR0KDQkNCiINCU0KDQkNCT0JDQnQor0JLQo9Ca0J7QkdCg0JDQoiDQiNCe0KjQngor0JLQo9Ca0J7QkdCg0JDQoiDQidCj0JHQntCc0JjQoAor0JLQo9Ca0J7QkdCg0JDQoiDQnNCY0JvQkNCdCivQktCj0JrQntCR0KDQkNCiINCd0JjQmtCe0JvQkAor0JLQo9Ca0J7QkdCg0JDQoiDQn9CV0KLQkNCgCivQktCj0JrQntCR0KDQkNCiINCi0JDQotCI0JDQndCQCivQktCj0JrQntCR0KDQkNCiINCX0JTQoNCQ0JLQmtCeCivQktCj0JrQntCR0KDQkNCi0J7QkiDQoNCQ0JTQntCS0JDQnSDQlNCY0J/QmyDQmNCd0JMKK9CS0KPQmtCe0JHQoNCQ0KLQntCSINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQmtCe0JHQoNCQ0KLQntCS0JjQiyDQkdCe0JPQlNCQ0J0KK9CS0KPQmtCe0JHQoNCQ0KLQntCS0JjQiyDQlNCQ0J3QmNCm0JAKK9CS0KPQmtCe0JHQoNCQ0KLQntCS0JjQiyDQiNCe0JLQkNCdCivQktCj0JrQntCR0KDQkNCi0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0KPQmtCe0JHQoNCQ0KLQntCS0JjQiyDQndCQ0JTQkAor0JLQo9Ca0J7QkdCg0JDQotCe0JLQmNCLINCh0JvQkNCS0JjQptCQCivQktCj0JrQntCI0KfQmNCLINCU0KPQqNCQ0J0KK9CS0KPQmtCe0IjQkCDQkNCd0KLQo9CdCivQktCj0JrQntCI0JUg0JTQo9Co0JDQnQor0JLQo9Ca0J7QiNCVINCT0JDQqNCeCivQktCj0JrQntCI0JUg0JjQm9CY0IjQkAor0JLQo9Ca0J7QiNCVINCI0J7QktCQ0J0KK9CS0KPQmtCe0IjQlSDQnNCY0JvQkNCd0JAKK9CS0KPQmtCe0IjQlSDQoNCQ0JTQmNCS0J7QiNCVCivQktCj0JrQntCI0JUg0KDQkNCU0JzQmNCb0JAKK9CS0KPQmtCe0IjQlSDQoNCQ0JTQntCS0JDQnQor0JLQo9Ca0J7QiNCVINCS0JDQitCQCivQktCj0JrQntCI0JUg0JLQntCI0J4KK9CS0KPQmtCe0IjQldCSINCR0J7Qk9CU0JDQnQor0JLQo9Ca0J7QiNCV0JIg0JTQo9Co0JDQnQor0JLQo9Ca0J7QiNCV0JIg0JTQo9Co0JDQnQor0JLQo9Ca0J7QiNCV0JIg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9Ca0J7QiNCV0JLQmNCLINCC0KPQoNCeCivQktCj0JrQntCI0JXQktCY0Isg0JzQkNCg0JAKK9CS0KPQmtCe0IjQldCS0JjQiyDQnNCY0IvQngor0JLQo9Ca0J7QiNCV0JLQmNCLINCc0JjQntCU0KDQkNCTCivQktCj0JrQntCI0JXQktCY0Isg0J3QmNCa0J4KK9CS0KPQmtCe0IjQldCS0JjQiyDQktCV0KDQmNCm0JAKK9CS0KPQmtCe0IjQldCS0JjQiyDQktCY0JTQntCh0JDQkgor0JLQo9Ca0J7QiNCV0JLQmNCLINCX0J7QoNCQ0J0KK9CS0KPQmtCe0IjQmNCn0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCj0JrQntCI0JjQp9CY0Isg0JTQoNCQ0JPQkNCdCivQktCj0JrQntCI0JjQp9CY0Isg0JzQmNCe0JTQoNCQ0JMKK9CS0KPQmtCe0IjQmNCn0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9Ca0J7QiNCY0KfQmNCLINCh0JvQkNCS0J7QidCj0JEKK9CS0KPQmtCe0JzQkNCdINCV0JzQmNCb0JjQiNCQCivQktCj0JrQntCc0JDQnSDQnNCY0JvQntCg0JDQlAor0JLQo9Ca0J7QnNCQ0J0g0KDQkNCU0JAKK9CS0KPQmtCe0JzQkNCdINCX0J7QoNCQ0J0KK9CS0KPQmtCe0JzQkNCdINCX0J7QoNCa0JAKK9CS0KPQmtCe0JzQkNCd0J7QkiDQiNCe0JLQkNCdCivQktCj0JrQntCc0JDQndCe0JLQmNCLINCQ0J3QlNCg0JjQiNCQCivQktCj0JrQntCc0JDQndCe0JLQmNCLINCa0JDQotCY0KbQkAor0JLQo9Ca0J7QnNCQ0J3QntCS0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQmtCe0JzQkNCd0J7QktCY0Isg0KDQkNCU0J7QnNCY0KAKK9CS0KPQmtCe0JzQkNCd0J7QktCY0Isg0KHQm9CQ0JLQmtCeCivQktCj0JrQntCh0JDQkiDQkdCe0KDQmNCS0J7QiNCVCivQktCj0JrQntCh0JDQkiDQkdCe0KDQmtCeINCU0KAKK9CS0KPQmtCe0KHQkNCSINCU0J7QkdCg0JjQm9CQCivQktCj0JrQntCh0JDQkiDQiNCe0JLQngor0JLQo9Ca0J7QodCQ0JIg0JzQmNCb0J7QktCQ0J0KK9CS0KPQmtCe0KHQkNCSINCg0JDQlNCVCivQktCj0JrQntCh0JDQkiDQodCV0J3QmtCQCivQktCj0JrQntCh0JDQkiDQktCb0JDQiNCa0J4KK9CS0KPQmtCe0KHQkNCS0InQldCSINCR0J7Qk9CU0JDQndCa0JAKK9CS0KPQmtCe0KHQkNCS0InQldCSINCU0JDQndCY0KbQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0JTQoNCQ0JPQmNCm0JAKK9CS0KPQmtCe0KHQkNCS0InQldCSINCI0JXQm9CV0J3QkAor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0JvQkNCX0JDQoAor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0JzQkNCa0KHQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0JzQmNCb0JDQnQor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0J/QldCi0JDQoAor0JLQo9Ca0J7QodCQ0JLQidCV0JIg0KHQkNCS0JAKK9CS0KPQmtCe0KHQkNCS0InQldCSINCh0JvQkNCS0JjQptCQCivQktCj0JrQntCh0JDQktCJ0JXQkiDQodCi0JXQktCQ0J0KK9CS0KPQmtCe0KHQkNCS0InQldCSINCS0J7QiNCY0J0g0JTQmNCf0Jsg0JjQndCTCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0JDQndCC0JXQm9Ca0JAKK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQkdCQ0KDQkdCQ0KDQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCm0JLQmNCI0JXQotCY0J0KK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQlNCg0JDQk9CY0KbQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCY0JLQkNCdCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0InQo9CR0JjQptCQCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0JvQo9Ca0JAKK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQnNCQ0KDQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQm9CV0J3QmtCeCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0JzQmNCb0J7QoNCQ0JQKK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQnNCY0KDQkAor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQmtCe0KHQkNCS0InQldCS0JjQiyDQn9CQ0JLQm9CVCivQktCj0JrQntCh0JDQktCJ0JXQktCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JLQo9Ca0J7QodCQ0JLQidCV0JLQmNCLINCh0KLQntCI0JDQnQor0JLQo9Ca0J7QodCb0JDQktCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQktCj0JrQntCh0JvQkNCS0KfQldCS0JjQiyDQl9CQ0KDQmNCI0JUKK9CS0KPQmtCe0KHQm9CQ0JLQntCS0JjQiyDQoNCQ0JTQntCK0JAKK9CS0KPQmtCe0KLQkCDQnNCQ0KDQmtCeCivQktCj0JrQntCi0JAg0JzQmNCb0JDQnQor0JLQo9Ca0J7QotCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0JrQntCi0JjQiyDQmNCS0JAKK9CS0KPQmtCe0KLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CS0KPQmtCe0KLQmNCLLdCa0J7QktCQ0KfQldCS0JjQiyDQkdCY0InQkNCd0JAKK9CS0KPQmtCe0KLQmNCLINCb0KPQmtCQCivQktCj0JrQntCi0JjQiyDQnNCQ0KDQkAor0JLQo9Ca0J7QotCY0Isg0JzQkNCg0JjQiNCQCivQktCj0JrQntCi0JjQiyDQnNCY0JvQkNCdCivQktCj0JrQntCi0JjQiyDQnNCY0JvQmNCm0JAKK9CS0KPQmtCe0KLQmNCLINCc0JjQntCU0KDQkNCTCivQktCj0JrQntCi0JjQiyDQndCV0J3QkNCUCivQktCj0JrQntCi0JjQiyDQndCY0JrQntCb0JAKK9CS0KPQmtCe0KLQmNCLINCe0JvQk9CQCivQktCj0JrQntCi0JjQiyDQn9CV0KDQmNCo0JAKK9CS0KPQmtCe0KLQmNCLINCg0JDQlNCe0IjQlQor0JLQo9Ca0J7QotCY0Isg0KDQkNCU0J7QktCQ0J0KK9CS0KPQmtCe0KLQmNCLINCh0J7QpNCY0IjQkAor0JLQo9Ca0J7QotCY0Isg0JfQntCg0JjQptCQCivQktCj0JrQntCSINCW0JjQktCa0J4KK9CS0KPQmtCe0JIg0ILQntCg0ILQlQor0JLQo9Ca0J7QkiDQgtCe0KDQgtCVCivQktCj0JrQntCSINCR0J7QqNCa0J4KK9CS0KPQmtCe0JIg0JHQntCo0JrQngor0JLQo9Ca0J7QkiDQkdCe0JbQkNCd0JAKK9CS0KPQmtCe0JIg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCj0JrQntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Ca0J7QkiDQlNCg0JDQk9CQ0J0KK9CS0KPQmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JLQo9Ca0J7QkiDQiNCe0JLQkNCdCivQktCj0JrQntCSINCI0J7QktCQ0J0KK9CS0KPQmtCe0JIg0JvQkNCX0JDQoAor0JLQo9Ca0J7QkiDQidCj0JHQntCc0JjQoAor0JLQo9Ca0J7QkiDQnNCQ0KDQmNCI0JAKK9CS0KPQmtCe0JIg0JzQkNCg0JrQngor0JLQo9Ca0J7QkiDQndCY0JrQntCb0JjQiNCQCivQktCj0JrQntCSINCe0JvQk9CQCivQktCj0JrQntCSINCh0KLQldCS0JjQptCQCivQktCj0JrQntCSINCS0KPQmtCQ0KjQmNCdCivQktCj0JrQntCS0JDQpiDQlNCg0JDQk9CQ0J0KK9CS0KPQmtCe0JLQkNCmINCf0JDQndCi0JAKK9CS0KPQmtCe0JLQmNCLINCo0KLQldCk0JjQptCQCivQktCj0JrQntCS0JjQiyDQltCY0JLQmtCeCivQktCj0JrQntCS0JjQiyDQltCY0JLQntCI0JjQnQor0JLQo9Ca0J7QktCY0Isg0ILQntCg0ILQlQor0JLQo9Ca0J7QktCY0Isg0ILQo9Ca0JAKK9CS0KPQmtCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JLQo9Ca0J7QktCY0Isg0JDQm9CV0JrQodCY0IjQkAor0JLQo9Ca0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9CS0KPQmtCe0JLQmNCLINCQ0J3QotCeCivQktCj0JrQntCS0JjQiyDQkdCY0InQkNCd0JAKK9CS0KPQmtCe0JLQmNCLINCR0JvQkNCW0J4KK9CS0KPQmtCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQktCj0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQktCj0JrQntCS0JjQiyDQkdCe0KjQmtCeCivQktCj0JrQntCS0JjQiyDQkdCe0JPQmNCLCivQktCj0JrQntCS0JjQiyDQkdCe0IjQkNCd0JAKK9CS0KPQmtCe0JLQmNCLINCR0J7QiNCQ0J3QkAor0JLQo9Ca0J7QktCY0Isg0JHQntCg0JjQqNCQCivQktCj0JrQntCS0JjQiyDQkdCe0KDQmNCo0JAKK9CS0KPQmtCe0JLQmNCLINCR0J7QoNCY0JLQntCICivQktCj0JrQntCS0JjQiyDQkdCe0KHQmNCJ0JrQkAor0JLQo9Ca0J7QktCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCSCivQktCj0JrQntCS0JjQiyDQkdCj0JTQmNCc0JjQoAor0JLQo9Ca0J7QktCY0Isg0KbQktCV0KLQmtCeCivQktCj0JrQntCS0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JLQo9Ca0J7QktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVCivQktCj0JrQntCS0JjQiyDQlNCg0JDQk9CQ0J0KK9CS0KPQmtCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JLQo9Ca0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQo9Ca0J7QktCY0Isg0JTQoNCQ0JPQntCh0JvQkNCSCivQktCj0JrQntCS0JjQiyDQlNCg0JDQk9CeCivQktCj0JrQntCS0JjQiyDQlNCj0KjQkNCdINCU0KAg0JvQldCa0JDQoAor0JLQo9Ca0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CS0KPQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQmtCe0JLQmNCLINCU0KPQqNCQ0J0KK9CS0KPQmtCe0JLQmNCLINCT0JXQl9CQINCd0J7QktCY0J3QkNCgCivQktCj0JrQntCS0JjQiyDQk9Ce0IjQmtCeCivQktCj0JrQntCS0JjQiyDQk9Ce0KDQkNCdCivQktCj0JrQntCS0JjQiyDQk9Ce0KDQlNCQ0J3QkAor0JLQo9Ca0J7QktCY0Isg0JjQm9CY0IjQkAor0JLQo9Ca0J7QktCY0Isg0JjQm9CY0IjQkAor0JLQo9Ca0J7QktCY0Isg0JjQktCQ0J0KK9CS0KPQmtCe0JLQmNCLINCY0JLQkNCdCivQktCj0JrQntCS0JjQiyDQmNCS0JjQptCQCivQktCj0JrQntCS0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JLQo9Ca0J7QktCY0Isg0IjQldCb0JjQptCQCivQktCj0JrQntCS0JjQiyDQiNCe0KHQmNCfCivQktCj0JrQntCS0JjQiyDQiNCe0JLQkAor0JLQo9Ca0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JLQo9Ca0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JLQo9Ca0J7QktCY0Isg0InQo9CR0JDQnQor0JLQo9Ca0J7QktCY0Isg0JzQkNCg0JPQkNCg0JXQotCQCivQktCj0JrQntCS0JjQiyDQnNCQ0KDQiNCV0J3QmtCQCivQktCj0JrQntCS0JjQiyDQnNCQ0KLQngor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9CS0KPQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CS0KPQmtCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JXQndCQCivQktCj0JrQntCS0JjQiyDQnNCY0JvQldCd0JrQngor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JjQktCe0IjQlQor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0JjQktCe0IgKK9CS0KPQmtCe0JLQmNCLINCc0JjQidCQ0J0KK9CS0KPQmtCe0JLQmNCLINCc0JjQm9Ca0JAKK9CS0KPQmtCe0JLQmNCLINCc0JjQm9Ca0JAKK9CS0KPQmtCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0JrQntCS0JjQiyDQnNCY0JvQo9Ci0JjQnQor0JLQo9Ca0J7QktCY0Isg0JzQmNCb0KPQotCY0J0KK9CS0KPQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQktCj0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9Ca0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CS0KPQmtCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQktCj0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQktCj0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQktCj0JrQntCS0JjQiyDQnNCY0KDQntCI0JUKK9CS0KPQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQmtCe0JLQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQmtCe0JLQmNCLINCc0JjQotCQ0KAKK9CS0KPQmtCe0JLQmNCLINCc0JjQotCQ0KAKK9CS0KPQmtCe0JLQmNCLINCc0JjQotCQCivQktCj0JrQntCS0JjQiyDQnNCb0JDQlNCV0J0KK9CS0KPQmtCe0JLQmNCLINCd0JDQlNCQCivQktCj0JrQntCS0JjQiyDQndCQ0JTQkAor0JLQo9Ca0J7QktCY0Isg0J3QldCU0JAKK9CS0KPQmtCe0JLQmNCLINCe0JHQoNCQ0JQKK9CS0KPQmtCe0JLQmNCLINCe0JHQoNCQ0JQKK9CS0KPQmtCe0JLQmNCLINCe0JvQk9CY0KbQkAor0JLQo9Ca0J7QktCY0Isg0J7Qm9CT0JjQptCQCivQktCj0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQntCS0JjQiyDQn9CV0KLQkNCgCivQktCj0JrQntCS0JjQiyDQoNCQ0JTQldCd0JrQngor0JLQo9Ca0J7QktCY0Isg0KDQkNCU0JUKK9CS0KPQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CS0KPQmtCe0JLQmNCLINCg0JDQlNCe0JLQkNCdCivQktCj0JrQntCS0JjQiyDQoNCQ0KLQmtCeCivQktCj0JrQntCS0JjQiyDQodCQ0JLQkAor0JLQo9Ca0J7QktCY0Isg0KHQldCd0JrQkAor0JLQo9Ca0J7QktCY0Isg0KHQmNCc0JAKK9CS0KPQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQmtCe0JLQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CS0KPQmtCe0JLQmNCLINCh0KDQldCL0JrQngor0JLQo9Ca0J7QktCY0Isg0KHQoNCV0JTQntCI0JUKK9CS0KPQmtCe0JLQmNCLINCh0KLQkNCd0JrQkAor0JLQo9Ca0J7QktCY0Isg0KHQotCQ0J3QmtCQCivQktCj0JrQntCS0JjQiyDQodCi0JjQn9CQCivQktCj0JrQntCS0JjQiyDQodCS0JXQotCY0KHQm9CQ0JIKK9CS0KPQmtCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0KPQmtCe0JLQmNCLINCh0JLQldCi0JvQkNCd0JAKK9CS0KPQmtCe0JLQmNCLLdCi0JDQktCn0JjQntCh0JrQkCDQkNCb0JXQmtCh0JDQndCU0KDQkAor0JLQo9Ca0J7QktCY0Isg0KLQntCU0J7QoAor0JLQo9Ca0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JLQo9Ca0J7QktCY0Isg0JLQldCh0J3QkAor0JLQo9Ca0J7QktCY0Isg0JLQmNCU0JDQmgor0JLQo9Ca0J7QktCY0Isg0JLQmNCd0JrQkAor0JLQo9Ca0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9Ca0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9Ca0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JLQo9Ca0J7QktCY0Isg0JLQm9CQ0JTQmNCh0JvQkNCSINCU0KAKK9CS0KPQmtCe0JLQmNCLINCS0JvQkNCi0JrQniDQlNCY0J/QmyDQmNCd0JMKK9CS0KPQmtCe0JLQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0KPQmtCe0JLQmNCLINCS0J7QiNCa0J4KK9CS0KPQmtCe0JLQmNCLINCS0KPQp9CY0IsKK9CS0KPQmtCe0JLQmNCLINCS0KPQmtCQ0KjQmNCdCivQktCj0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQktCj0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQktCj0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQktCj0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQktCj0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQktCj0JrQntCS0InQkNCaINCR0J7QodCY0InQmtCQCivQktCj0JrQntCS0InQkNCaINCV0JLQmNCm0JAKK9CS0KPQmtCe0JLQidCQ0Jog0JzQmNCg0JrQngor0JLQo9Ca0J7QktCJ0JDQmiDQktCe0IjQmNCdCivQktCj0JrQntCS0J7QiNCQ0KYg0J7Qm9CT0JAKK9CS0KPQmtCe0JLQntCI0JDQpiDQktCe0IjQmNCh0JvQkNCSCivQktCj0JrQodCQ0J0g0JzQmNCb0JDQnQor0JLQo9Ca0KHQkNCdINCc0JjQm9CY0JLQntCICivQktCj0JrQodCQ0J0g0JzQmNCe0JTQoNCQ0JMKK9CS0KPQmtCh0JDQnSDQndCY0JrQntCb0JAKK9CS0KPQmtCh0JDQnSDQoNCQ0JTQntCh0JvQkNCSINCf0KDQntCk0JXQodCe0KAKK9CS0KPQmtCh0JDQnSDQoNCj0JbQmNCm0JAKK9CS0KPQmtCh0JDQnSDQodCS0JXQotCe0JfQkNCgCivQktCj0JrQodCQ0J0g0JLQo9Ca0J7QodCQ0JLQkAor0JLQo9Ca0KHQkNCd0J7QkiDQidCj0JHQmNCm0JAKK9CS0KPQmtCh0JDQndCe0JIg0JLQntCI0JjQodCb0JDQkgor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0JbQmNCS0J7QoNCQ0JQKK9CS0KPQmtCh0JDQndCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQktCj0JrQodCQ0J3QntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0JTQkNCg0JrQngor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0JTQldCh0JDQndCa0JAKK9CS0KPQmtCh0JDQndCe0JLQmNCLINCT0J7QoNCQ0J0KK9CS0KPQmtCh0JDQndCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQktCj0JrQodCQ0J3QntCS0JjQiyDQiNCe0JLQkNCdCivQktCj0JrQodCQ0J3QntCS0JjQiyDQnNCY0JvQlQor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9CS0KPQmtCh0JDQndCe0JLQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0JrQodCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JLQo9Ca0KHQkNCd0J7QktCY0Isg0JzQmNCg0J4KK9CS0KPQmtCh0JDQndCe0JLQmNCLINCh0JDQktCeCivQktCj0JrQodCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J3QmtCQCivQktCj0JrQodCY0Isg0KHQotCV0JLQngor0JLQo9Ca0KHQmNCLINCS0JXQm9CY0JzQmNCgCivQktCj0JrQo9Co0JjQiyDQkNCd0KLQlQor0JLQo9Cb0JDQndCe0JLQmNCLINCg0JXQidCQCivQktCj0JvQkNCd0J7QktCY0Isg0JLQntCI0JjQodCb0JDQkgor0JLQo9Cb0JXQotCQINCR0J7QiNCQ0J0KK9CS0KPQm9CV0KLQkCDQn9Cg0JXQlNCg0JDQkwor0JLQo9Cb0JXQotCQINCg0JjQodCi0J4KK9CS0KPQm9CV0KLQmNCLINCW0JXQidCa0J4KK9CS0KPQm9CV0KLQmNCLINCC0J7QoNCC0JjQiNCVCivQktCj0JvQldCi0JjQiyDQkNCd0JTQoNCY0IjQkAor0JLQo9Cb0JXQotCY0Isg0JHQntCg0JjQodCb0JDQkgor0JLQo9Cb0JXQotCY0Isg0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CS0KPQm9CV0KLQmNCLINCR0KDQkNCd0JrQngor0JLQo9Cb0JXQotCY0Isg0JHQoNCQ0J3QmtCeCivQktCj0JvQldCi0JjQiyDQlNCQ0J3QmNCm0JAg0JTQoAor0JLQo9Cb0JXQotCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQktCj0JvQldCi0JjQiyDQiNCV0JvQldCd0JAKK9CS0KPQm9CV0KLQmNCLINCI0JXQm9CY0KbQkCDQn9Cg0J7QpNCV0KHQntCgCivQktCj0JvQldCi0JjQiyDQnNCY0JvQkNCU0JjQnQor0JLQo9Cb0JXQotCY0Isg0JzQmNCb0JDQnSDQktCV0KLQldCg0JjQndCQ0KAKK9CS0KPQm9CV0KLQmNCLINCc0JjQm9CVCivQktCj0JvQldCi0JjQiyDQnNCY0JvQmNCS0J7QiAor0JLQo9Cb0JXQotCY0Isg0JzQm9CQ0JTQldCdCivQktCj0JvQldCi0JjQiyDQndCQ0JTQldCW0JTQkAor0JLQo9Cb0JXQotCY0Isg0J3QldCU0JXQidCa0J4KK9CS0KPQm9CV0KLQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Cb0JXQotCY0Isg0J7QkdCg0JDQlAor0JLQo9Cb0JXQotCY0Isg0KDQkNCU0J7QktCQ0J0KK9CS0KPQm9CV0KLQmNCLINCh0KDQgtCQ0J0KK9CS0KPQm9CV0KLQmNCLINCS0JDQodCY0JvQmNCI0JUKK9CS0KPQm9CV0KLQmNCLINCS0JjQlNCe0KHQkNCS0JAKK9CS0KPQm9CV0KLQmNCLINCS0JjQotCe0JzQmNCgCivQktCj0JvQldCi0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCj0JvQldCi0JjQiyDQktCb0JDQodCi0JjQnNCY0KAKK9CS0KPQm9CV0KLQmNCLINCX0J7QoNCY0KbQkAor0JLQo9Cb0JXQotCY0J0g0JfQntCg0JAKK9CS0KPQm9CV0JLQmNCLINCn0JXQlNCe0JzQmNCgCivQktCj0JvQldCS0JjQiyDQp9CV0JTQntCc0JjQoAor0JLQo9Cb0JXQktCY0Isg0KfQldCU0J7QnNCY0KAKK9CS0KPQm9CV0JLQmNCLINCh0J/QkNCh0J7QiNCVCivQktCj0JvQmNCLINCW0JjQmtCQCivQktCj0JvQmNCLINCC0J7QoNCC0JUKK9CS0KPQm9CY0Isg0ILQntCg0ILQlQor0JLQo9Cb0JjQiyDQkdCe0JbQmNCU0JDQoAor0JLQo9Cb0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQktCj0JvQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JLQo9Cb0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQm9CY0Isg0JTQkNCg0JjQndCa0JAKK9CS0KPQm9CY0Isg0JTQldCh0JDQndCa0JAKK9CS0KPQm9CY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQo9Cb0JjQiyDQmNCb0JjQiNCQCivQktCj0JvQmNCLINCI0JDQktCe0KDQmtCQCivQktCj0JvQmNCLINCI0JXQm9CV0J3QkAor0JLQo9Cb0JjQiyDQiNCV0JvQldCd0JAKK9CS0KPQm9CY0Isg0IjQntCS0JDQnQor0JLQo9Cb0JjQiyDQiNCe0JLQkNCdCivQktCj0JvQmNCLINCI0J7QktCQ0J0KK9CS0KPQm9CY0Isg0JvQo9Ca0JAKK9CS0KPQm9CY0Isg0JvQo9Ca0JAKK9CS0KPQm9CY0Isg0JzQmNCb0JDQndCa0JAKK9CS0KPQm9CY0Isg0JzQmNCb0JDQnQor0JLQo9Cb0JjQiyDQnNCY0JvQmNCS0J7QiNCVCivQktCj0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0JvQmNCLINCc0JjQm9Ce0KDQkNCUCivQktCj0JvQmNCLINCc0JjQoNCe0KHQm9CQ0JIKK9CS0KPQm9CY0Isg0JzQm9CQ0JTQldCdCivQktCj0JvQmNCLINCc0J7QnNCn0JjQm9CeCivQktCj0JvQmNCLINCd0JjQmtCe0JvQkAor0JLQo9Cb0JjQiyDQn9CV0KLQmtCeCivQktCj0JvQmNCLINCh0JvQkNCS0JjQptCQCivQktCj0JvQmNCLINCh0JvQkNCS0JrQngor0JLQo9Cb0JjQiyDQodCi0JXQktCQ0J0KK9CS0KPQm9CY0Isg0JfQm9CQ0KLQkAor0JLQo9Cb0JjQiyDQl9Cb0JDQotCY0IjQkAor0JLQo9Cb0JjQmtCY0Isg0JvQo9Ca0JAKK9CS0KPQm9CY0JrQmNCLINCg0KPQltCY0KbQkAor0JLQo9Cb0JjQmtCY0Isg0JLQldCh0JXQm9CY0J0KK9CS0KPQm9CY0JrQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CS0KPQm9CY0J0g0JDQndCT0JXQm9CY0J3QkAor0JLQo9Cb0JjQnSDQkdCg0JDQndCY0KHQm9CQ0JIKK9CS0KPQm9CY0J0g0JPQntCI0JrQngor0JLQo9Cb0JjQnSDQiNCj0JvQmtCQCivQktCj0JvQmNCdINCc0JvQkNCU0JXQnQor0JLQo9Cb0JjQnSDQndCV0J3QkNCUCivQktCj0JvQmNCdINCd0JXQndCQ0JQKK9CS0KPQm9CY0J0g0J/QoNCV0JTQoNCQ0JMKK9CS0KPQm9CY0J0g0KDQkNCU0J7QnNCY0KAKK9CS0KPQm9CY0J0g0KHQotCV0JLQkNCdCivQktCj0JvQmNCdINCS0KPQmtCQ0KjQmNCdCivQktCj0InQkNCIINCS0JDQodCV0IkKK9CS0KPQidCV0JLQmNCLINCC0J7QmtCQCivQktCj0JvQmtCQ0J3QmCDQk9Ce0KDQlNCQ0J3QkAor0JLQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQmNCm0JAKK9CS0KPQm9Ce0JLQmNCLINCU0KDQkNCT0J7QqAor0JLQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JLQo9Cb0J7QktCY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JLQo9Cb0J7QktCY0Isg0JPQntCg0JDQnQor0JLQo9Cb0J7QktCY0Isg0J/QldCi0JDQoAor0JLQo9Cb0J7QktCY0Isg0KDQkNCI0JrQngor0JLQo9Cb0J7QktCY0Isg0KHQkNCS0J4KK9CS0KPQm9Ce0JLQmNCLINCh0JvQkNCS0JjQqNCQCivQktCj0JvQntCS0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQktCj0JvQntCS0JjQiyDQktCj0JrQmNCm0JAKK9CS0KPQm9Ch0JDQndCe0JLQmNCLINCY0JvQmtCQCivQktCj0J3QlNCV0KDQm9CY0KUg0IjQntCh0JjQnwor0JLQo9Cd0JTQo9CaINCc0JjQoNCe0KHQm9CQ0JLQkAor0JLQo9Cd0JjQiyDQnNCY0InQldCd0JrQngor0JLQo9Cd0JjQiyDQn9CV0KLQkNCgCivQktCj0J3QmNCLINCg0JDQlNCe0IjQmtCQCivQktCj0IrQkNCaINCC0J7QoNCC0JUKK9CS0KPQitCQ0Jog0JHQoNCQ0J3QmNCh0JvQkNCS0JAKK9CS0KPQitCQ0Jog0JTQo9Co0JDQnQor0JLQo9Cg0JTQldCJ0JAg0J3QldCc0JDQitCQINCU0KAg0J/QoNCe0KQKK9CS0KPQoNCU0JXQidCQINCh0J7QpNCY0IjQkAor0JLQo9Cg0JTQldCJ0JAg0JLQkNCh0JAKK9CS0KPQoNCh0KIg0IjQntCS0JDQndCa0JAKK9CS0KPQoNCj0J3QkCDQkdCg0JDQndCa0J4KK9CS0KPQoNCj0J3QkCDQnNCQ0KDQmNCI0JAKK9CS0KPQoNCj0J3QmNCLINCX0JTQoNCQ0JLQmtCeCivQl9CQ0JHQm9CV0IvQkNCd0KHQmtCYINCS0JvQkNCU0JAKK9CX0JDQkdCg0JTQkNCmINCc0JjQm9CQ0J0KK9CX0JDQkdCj0J3QntCSINCS0JvQkNCU0JjQnNCY0KAKK9CX0JDQlNCe0KAg0JDQndCU0KDQmNCI0JAg0JTQoCDQmNCj0KDQlQor0JfQkNCU0KDQkNCS0JXQpiDQiNCe0KHQmNCfCivQl9CQ0JTQoNCeINCd0JjQmtCe0JvQkAor0JfQkNCk0JjQoNCe0JLQmNCLINCR0KDQkNCd0JrQngor0JfQkNCT0JAg0JzQmNCb0JDQnQor0JfQkNCT0JDQiNCn0JDQnSDQmtCe0KHQotCQCivQl9CQ0JPQntCg0KfQmNCLINCW0JDQoNCa0J4KK9CX0JDQk9Ce0KDQp9CY0Isg0JbQmNCS0JrQngor0JfQkNCT0J7QoNCn0JjQiyDQltCY0JLQmtCeCivQl9CQ0JPQntCg0KfQmNCLINCC0J7QoNCC0JUKK9CX0JDQk9Ce0KDQp9CY0Isg0ILQntCg0ILQlQor0JfQkNCT0J7QoNCn0JjQiyDQgtCe0KDQgtCVCivQl9CQ0JPQntCg0KfQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQl9CQ0JPQntCg0KfQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JHQntCg0JjQodCb0JDQkgor0JfQkNCT0J7QoNCn0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQl9CQ0JPQntCg0KfQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CX0JDQk9Ce0KDQp9CY0Isg0JPQkNCS0KDQkAor0JfQkNCT0J7QoNCn0JjQiyDQk9Cb0JjQk9Ce0KDQmNCI0JUKK9CX0JDQk9Ce0KDQp9CY0Isg0JPQntCg0JDQnQor0JfQkNCT0J7QoNCn0JjQiyDQmNCb0JjQiNCQCivQl9CQ0JPQntCg0KfQmNCLINCY0JvQmNCI0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JjQoNCV0J3QkAor0JfQkNCT0J7QoNCn0JjQiyDQiNCQ0KHQnNCY0J3QkAor0JfQkNCT0J7QoNCn0JjQiyDQiNCV0JvQldCd0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0IjQntCS0JDQnQor0JfQkNCT0J7QoNCn0JjQiyDQiNCe0JLQkNCdCivQl9CQ0JPQntCg0KfQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JvQkNCX0JDQoAor0JfQkNCT0J7QoNCn0JjQiyDQm9CQ0JfQkNCgCivQl9CQ0JPQntCg0KfQmNCLINCb0JDQl9CQCivQl9CQ0JPQntCg0KfQmNCLINCc0JDQoNCY0IjQkAor0JfQkNCT0J7QoNCn0JjQiyDQnNCY0JvQkNCdCivQl9CQ0JPQntCg0KfQmNCLINCc0JjQm9CQ0J0KK9CX0JDQk9Ce0KDQp9CY0Isg0JzQmNCb0JjQptCQCivQl9CQ0JPQntCg0KfQmNCLINCc0JjQm9CY0JLQntCI0JUKK9CX0JDQk9Ce0KDQp9CY0Isg0JzQmNCb0JjQktCe0IgKK9CX0JDQk9Ce0KDQp9CY0Isg0JzQmNCb0JjQktCe0IgKK9CX0JDQk9Ce0KDQp9CY0Isg0JzQmNCb0J7QqAor0JfQkNCT0J7QoNCn0JjQiyDQnNCY0JvQntCh0JDQkgor0JfQkNCT0J7QoNCn0JjQiy3QntCg0KjQntCoINCU0KDQkNCT0JDQndCQCivQl9CQ0JPQntCg0KfQmNCLINCf0JDQndCi0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0J/QldCi0JDQoAor0JfQkNCT0J7QoNCn0JjQiyDQn9CV0KLQkNCgCivQl9CQ0JPQntCg0KfQmNCLINCf0KDQldCU0KDQkNCTCivQl9CQ0JPQntCg0KfQmNCLINCg0JDQlNCY0JLQntCICivQl9CQ0JPQntCg0KfQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CX0JDQk9Ce0KDQp9CY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JfQkNCT0J7QoNCn0JjQiyDQodCi0JXQktCQ0J0KK9CX0JDQk9Ce0KDQp9CY0Isg0KHQktCV0KLQmNCh0JvQkNCSCivQl9CQ0JPQntCg0KfQmNCLINCh0JLQldCi0J7Ql9CQ0KAKK9CX0JDQk9Ce0KDQp9CY0Isg0KPQoNCe0KgKK9CX0JDQk9Ce0KDQp9CY0Isg0JLQkNCh0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JLQkNCh0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JLQkNCh0JAKK9CX0JDQk9Ce0KDQp9CY0Isg0JLQo9Ca0J7QodCQ0JLQkAor0JfQkNCT0J7QoNCn0JjQiyDQl9CY0IjQkNClCivQl9CQ0JPQntCg0JDQpiDQkdCe0JbQmNCm0JAKK9CX0JDQk9Ce0KDQkNCmINCU0JjQnNCY0KLQoNCY0IjQlQor0JfQkNCT0J7QoNCQ0KYg0JTQo9Co0JDQnQor0JfQkNCT0J7QoNCQ0KYg0JjQktCQ0J0KK9CX0JDQk9Ce0KDQkNCmINCc0JDQoNCY0IjQkAor0JfQkNCT0J7QoNCQ0KYg0JzQmNCb0JXQndCQCivQl9CQ0JPQntCg0JDQpiDQnNCY0JvQmNCm0JAKK9CX0JDQk9Ce0KDQkNCmINCc0JjQm9CY0KbQkAor0JfQkNCT0J7QoNCQ0KYg0J3QldCU0JXQidCa0J4KK9CX0JDQk9Ce0KDQkNCmINCd0JjQmtCe0JvQkAor0JfQkNCT0J7QoNCQ0KYg0J3QmNCa0J7Qm9CQCivQl9CQ0JPQntCg0JDQpiDQntCh0KLQntCI0JAKK9CX0JDQk9Ce0KDQkNCmINCf0JXQotCQ0KAKK9CX0JDQk9Ce0KDQkNCmINCg0JDQiNCa0J4KK9CX0JDQk9Ce0KDQkNCmINCg0KPQltCY0KbQkAor0JfQkNCT0J7QoNCQ0KYg0KHQmNCc0J4KK9CX0JDQk9Ce0KDQkNCmINCS0JDQm9Ca0J4KK9CX0JDQk9Ce0KDQldCmINCI0J7QodCY0J8KK9CX0JDQk9Ce0KDQmNCm0JAg0J7Ql9Cg0JXQnQor0JfQkNCT0KDQkNCC0JAg0JHQkNCI0JjQoNCQ0JwKK9CX0JDQpdCQ0KDQmNCI0JXQktCY0Isg0JHQntCT0JTQkNCdCivQl9CQ0KXQntCg0JDQmCDQiNCe0JLQkNCdCivQl9CQ0KXQntCg0JXQpiDQl9Cj0JfQkNCd0JAKK9CX0JDQpdCe0KDQntCU0J3QmCDQkNCd0KLQntCdCivQl9CQ0KXQntCg0J7QlNCd0Jgg0JjQktCQ0J0KK9CX0JDQmNCc0J7QktCY0Isg0JzQo9Cl0JDQoNCV0JwKK9CX0JDQiNCX0J7QkiDQiNCV0JvQldCd0JAKK9CX0JDQmtCQ0Iog0JDQoNCf0JDQlAor0JfQkNCa0JDQiiDQm9CQ0IjQntCoCivQl9CQ0JrQkNCKINCc0JjQoNCa0J4KK9CX0JDQmtCQ0Iot0KLQntCR0J7Qm9Ca0JAg0JXQktCQCivQl9CQ0JrQmNCLINCC0J7QoNCC0JUKK9CX0JDQmtCY0Isg0JHQntCW0JjQlNCQ0KAKK9CX0JDQmtCY0Isg0JTQmNCc0JjQotCg0JjQiNCVCivQl9CQ0JrQmNCLINCU0J7QkdCg0JjQktCe0IgKK9CX0JDQmtCY0Isg0JTQntCR0KDQmNCS0J7QiAor0JfQkNCa0JjQiyDQmNCS0JDQnQor0JfQkNCa0JjQiyDQnNCY0JvQkNCdCivQl9CQ0JrQmNCLINCh0JDQktCQCivQl9CQ0JrQm9CQ0J0g0ILQo9Cg0JAKK9CX0JDQmtCb0JDQnSDQnNCY0JvQkNCdCivQl9CQ0JrQm9CQ0J0g0J3QldCT0JjQptCQCivQl9CQ0JrQm9CQ0J0g0KDQkNCd0JrQngor0JfQkNCa0JvQkNCdINCh0JvQntCR0J7QlNCQ0J0KK9CX0JDQmtCb0JDQnSDQodCi0JDQndCY0KjQkAor0JfQkNCa0JvQkNCdINCi0JjQpdCe0JzQmNCgCivQl9CQ0JrQm9CQ0J0g0KLQntCc0JjQodCb0JDQkgor0JfQkNCb0JjQoSDQk9CV0J7QoNCT0JjQiNCVCivQl9CQ0JvQmNChINCI0JDQndCY0KEKK9CX0JDQnNCQ0JrQm9CQ0KAg0JfQntCg0JDQnQor0JfQkNCc0J7Qm9CeINCV0JTQo9CQ0KDQlAor0JfQkNCc0KPQoNCe0JLQmNCLINCQ0JvQldCa0KHQkNCd0JTQkNCgCivQl9CQ0JzQo9Cg0J7QktCY0Isg0JHQntCI0JDQndCQCivQl9CQ0JzQo9Cg0J7QktCY0Isg0JrQntCh0KLQkAor0JfQkNCc0KPQoNCe0JLQmNCLINCc0JjQm9CV0J3QkAor0JfQkNCc0KPQoNCe0JLQmNCLINCe0JvQk9CQINCU0KAKK9CX0JDQnNCj0KDQntCS0JjQiyDQodCi0J7QiNCQ0J0KK9CX0JDQndCe0JLQiNCQ0Jog0J/QldCi0JXQoAor0JfQkNCf0KPQndCY0JTQmNChINCb0JXQntCd0JjQlNCQ0KEKK9CX0JDQoNCV0KbQmtCYINCg0J7Ql9CQ0JvQmNCI0JAKK9CX0JDQoNCY0KfQndCYINCS0JXQoNCY0KbQkAor0JfQkNCg0JjQp9Cd0Jgg0JLQldCg0J7QndCY0JrQkAor0JfQkNCg0JjQiyDQgtCe0KDQgtCVCivQl9CQ0KDQmNCLINCC0J7QoNCC0JUKK9CX0JDQoNCY0Isg0ILQntCg0ILQlQor0JfQkNCg0JjQiyDQkdCe0KjQmtCeCivQl9CQ0KDQmNCLINCR0J7Qk9CU0JDQnQor0JfQkNCg0JjQiyDQkdCe0KDQmNCh0JvQkNCSCivQl9CQ0KDQmNCLINCR0KDQkNCd0JjQodCb0JDQkgor0JfQkNCg0JjQiyDQkdCg0JDQotCY0KHQm9CQ0JIKK9CX0JDQoNCY0Isg0JTQoNCQ0JPQkAor0JfQkNCg0JjQiyDQlNCg0JDQk9Ce0KHQm9CQ0JIKK9CX0JDQoNCY0Isg0JTQo9Co0JDQnQor0JfQkNCg0JjQiyDQmNCS0JDQndCa0JAKK9CX0JDQoNCY0Isg0JjQktCQ0J0KK9CX0JDQoNCY0Isg0IjQldCb0JXQndCQCivQl9CQ0KDQmNCLINCI0J7QktCQ0J0KK9CX0JDQoNCY0Isg0IjQntCS0J4KK9CX0JDQoNCY0Isg0JrQkNCi0JjQptCQCivQl9CQ0KDQmNCLINCa0JDQotCY0KbQkAor0JfQkNCg0JjQiyDQm9CQ0JfQkNCgCivQl9CQ0KDQmNCLINCc0JDQoNCY0IjQkAor0JfQkNCg0JjQiyDQnNCQ0KDQmNCI0JAKK9CX0JDQoNCY0Isg0JzQmNCa0JAKK9CX0JDQoNCY0Isg0JzQmNCb0JDQlNCY0J0KK9CX0JDQoNCY0Isg0JzQmNCb0JDQnQor0JfQkNCg0JjQiyDQnNCY0JvQkNCdCivQl9CQ0KDQmNCLINCc0JjQm9CV0J3QkAor0JfQkNCg0JjQiyDQnNCY0JvQmNCm0JAKK9CX0JDQoNCY0Isg0JzQmNCb0JjQptCQCivQl9CQ0KDQmNCLINCc0JjQntCU0KDQkNCTCivQl9CQ0KDQmNCLINCc0JvQkNCU0JXQnQor0JfQkNCg0JjQiyDQnNCe0JzQp9CY0JvQngor0JfQkNCg0JjQiyDQndCY0JrQntCb0JAKK9CX0JDQoNCY0Isg0J3QmNCa0J7Qm9CQCivQl9CQ0KDQmNCLINCd0J7QktCQ0JoKK9CX0JDQoNCY0Isg0J/QldCi0JDQoAor0JfQkNCg0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JfQkNCg0JjQiyDQoNCQ0IjQngor0JfQkNCg0JjQiyDQodCQ0JLQkAor0JfQkNCg0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQl9CQ0KDQmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CX0JDQoNCY0Isg0KHQotCQ0J3QmNCc0JjQoAor0JfQkNCg0JjQiyDQodCi0JDQndCY0KHQm9CQ0JIKK9CX0JDQoNCY0Isg0KHQotCQ0J3QmtCQCivQl9CQ0KDQmNCLINCh0KLQldCS0JDQnQor0JfQkNCg0JjQiyDQktCV0KHQndCQCivQl9CQ0KDQmNCLINCX0JDQoNCY0IjQkAor0JfQkNCg0JjQiyDQl9CU0KDQkNCS0JrQngor0JfQkNCg0JjQiyDQl9Ce0KDQmtCQCivQl9CQ0KDQmNCdINCh0KLQldCS0JAKK9CX0JDQoNCY0J3Qk9CV0KAt0J/QmNCd0KLQldCgINCd0JjQmtCe0JvQkAor0JfQkNCg0JrQntCSINCa0J7QptCQCivQl9CQ0KDQm9CYINCa0JDQotCQ0KDQmNCd0JAKK9CX0JDQoNCd0J7QptCa0Jgg0J/QkNCS0JvQlQor0JfQkNCg0J7QmyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JfQkNCg0KPQkdCQ0KYg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CX0JDQoNCj0JHQkNCmINCR0J7QoNCa0JAKK9CX0JDQoNCj0JHQkNCmINCg0J7QnNCY0KbQkAor0JfQkNCg0KPQkdCY0KbQkCDQkdCe0JbQkNCd0JAKK9CX0JDQoNCj0JHQmNCm0JAg0KDQkNCU0KPQnQor0JfQkNCg0KPQn9Ch0JrQmCDQgtCe0KDQgtCVCivQl9CQ0KDQo9Cf0KHQmtCYINCR0KDQkNCd0JrQngor0JfQkNCg0KPQn9Ch0JrQmCDQnNCY0JvQntCS0JDQnQor0JfQkNCi0JXQmiDQnNCQ0KDQmNCI0JAKK9CX0JDQotCV0JfQkNCb0J4g0JTQo9Co0JDQnSDQn9Cg0J7QpAor0JfQkNCi0JXQl9CQ0JvQniDQnNCY0J7QlNCg0JDQkwor0JfQkNCi0JXQl9CQ0JvQniDQn9CV0KLQkNCgCivQl9CQ0KLQldCX0JDQm9CeINCf0KDQldCU0KDQkNCTCivQl9CQ0JLQkNCg0JPQniDQl9Ce0JvQotCQ0J0KK9CX0JDQktCQ0KDQmtCeINCo0JDQndCU0J7QoAor0JfQkNCS0JDQoNCa0J4g0KjQkNCd0JTQntCgCivQl9CQ0JLQkNCg0JrQniDQqNCQ0J3QlNCe0KAKK9CX0JDQktCQ0KDQmtCeINCQ0J3QotCQ0JsKK9CX0JDQktCQ0KDQmtCeINCV0KHQotCV0KDQkAor0JfQkNCS0JDQoNCa0J4g0JjQqNCi0JLQkNCdCivQl9CQ0JLQkNCg0JrQniDQiNCQ0J3QntCoCivQl9CQ0JLQkNCg0JrQniDQmtCQ0KDQm9CeCivQl9CQ0JLQkNCg0JrQniDQnNCQ0KDQmNCI0JAKK9CX0JDQktCQ0KDQmtCeINCS0JXQoNCQCivQl9CQ0JLQkNCg0J7QqCDQkNCd0JTQoNCY0IjQkAor0JfQkNCS0JjQqNCQINCf0JXQotCQ0KAKK9CX0JDQktCY0KjQkCDQoNCQ0J3QmtCeCivQl9CQ0JLQmNCo0JjQiyDQptCS0JjQiNCV0KLQkAor0JfQkNCS0JjQqNCY0Isg0JzQmNCb0JDQnQor0JfQkNCS0JjQqNCY0Isg0J/QoNCV0JTQoNCQ0JMKK9CX0JDQktCY0KjQmNCLINCS0JjQlNCQCivQl9CQ0JLQmNCo0JjQnSDQnNCQ0KDQmNCm0JAKK9CX0JDQktCY0KjQmNCdINCc0J7QnNCY0KAKK9CX0JDQktCY0KjQmNCdINCh0JDQktCQCivQl9CQ0JLQoNCi0JDQndCY0Jog0JjQktCQ0J0KK9CX0JDQktCg0KLQkNCd0JjQmiDQmNCS0JDQnQor0JfQkNCS0KDQotCQ0J3QmNCaINCc0JDQoNCI0JDQnQor0JfQkNCX0KPQidCQ0Jog0KHQm9CQ0JLQmtCeCivQl9CR0JDQp9Cd0JjQmiDQl9Ce0KTQmNCI0JAKK9CX0JHQmNCJ0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQl9CR0KPQi9Cd0J7QktCY0Isg0IjQntCS0JDQndCa0JAKK9CX0JHQo9CL0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQl9CR0KPQi9Cd0J7QktCY0Isg0JzQmNCb0J7QqAor0JfQkdCj0IvQndCe0JLQmNCLINCc0JjQotCQCivQl9CR0KPQi9Cd0J7QktCY0Isg0J/QkNCS0JvQlQor0JfQkdCj0IvQndCe0JLQmNCLINCh0JDQktCQCivQl9CU0JXQm9CQ0KAg0KHQm9Ce0JHQntCU0JDQnQor0JfQlNCV0IrQkNCaINCI0J7QodCY0J8KK9CX0JTQmNCl0JDQnSDQnNCQ0KDQmtCeCivQl9CU0IjQldCb0JDQoCDQlNCg0JDQk9CQ0J0KK9CX0JTQiNCV0JvQkNCgINCc0JjQoNCe0KHQm9CQ0JIKK9CX0JTQiNCV0JvQkNCgINCe0JvQk9CQCivQl9CU0IjQldCb0JDQoCDQktCY0KjQitCQCivQl9CU0IjQldCb0JDQoCDQl9CU0KDQkNCS0JrQngor0JfQlNCI0JXQm9CQ0KDQmNCLINCR0KDQkNCd0JrQngor0JfQlNCI0JXQm9CQ0KDQmNCLINCU0KDQkNCT0JDQnQor0JfQlNCg0JDQktCV0KHQmtCYINCU0KPQqNCQ0J3QmtCQCivQl9CU0KDQkNCS0JXQktCh0JrQmCDQmNCb0JjQiNCQCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQkNCd0ILQldCb0JjQiNCQCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JfQlNCg0JDQktCa0J7QktCY0Isg0JHQntCg0JjQodCb0JDQkgor0JfQlNCg0JDQktCa0J7QktCY0Isg0JTQldCI0JDQnQor0JfQlNCg0JDQktCa0J7QktCY0Isg0JTQoNCQ0JPQntCJ0KPQkQor0JfQlNCg0JDQktCa0J7QktCY0Isg0JTQo9Co0JDQndCa0JAKK9CX0JTQoNCQ0JLQmtCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JfQlNCg0JDQktCa0J7QktCY0Isg0IjQntCS0JDQnQor0JfQlNCg0JDQktCa0J7QktCY0Isg0JzQmNCl0JDQiNCb0J4KK9CX0JTQoNCQ0JLQmtCe0JLQmNCLINCc0JjQm9CQ0J0KK9CX0JTQoNCQ0JLQmtCe0JLQmNCLINCc0JjQntCU0KDQkNCTCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JfQlNCg0JDQktCa0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JfQlNCg0JDQktCa0J7QktCY0Isg0KDQkNCU0JUKK9CX0JTQoNCQ0JLQmtCe0JLQmNCLINCg0JDQlNCVCivQl9CU0KDQkNCS0JrQntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JfQlNCg0JDQktCa0J7QktCY0Isg0KLQntCc0JjQodCb0JDQkgor0JfQlNCg0JDQktCa0J7QktCY0Isg0JLQldCg0J7QidCj0JEKK9CX0JTQoNCQ0JLQmtCe0JLQmNCLINCS0JjQlNCe0IjQlQor0JfQlNCj0J/QodCa0Jgg0JHQntCW0JjQlNCQ0KAKK9CX0JXQp9CQ0Jog0JLQntCI0JAKK9CX0JXQp9CV0JLQmNCLINCC0J7QoNCC0J4KK9CX0JXQp9CV0JLQmNCLINCQ0J3Qk9CV0JvQmNCd0JAKK9CX0JXQp9CV0JLQmNCLINCm0JLQmNCI0JDQnQor0JfQldCn0JXQktCY0Isg0JTQntCR0KDQmNCS0J7QiNCVINCU0KAKK9CX0JXQp9CV0JLQmNCLINCU0KDQkNCT0JDQnSDQlNCgCivQl9CV0KfQldCS0JjQiyDQlNCj0KjQkNCdCivQl9CV0KfQldCS0JjQiyDQk9Ce0JvQo9CRCivQl9CV0KfQldCS0JjQiyDQk9CS0J7Ql9CU0JXQnQor0JfQldCn0JXQktCY0Isg0KXQmNCc0JfQngor0JfQldCn0JXQktCY0Isg0JrQoNCh0KLQngor0JfQldCn0JXQktCY0Isg0InQo9CR0JjQptCQCivQl9CV0KfQldCS0JjQiyDQidCj0JHQmNCd0JrQngor0JfQldCn0JXQktCY0Isg0JzQkNCg0JjQiNCQCivQl9CV0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQl9CV0KfQldCS0JjQiyDQnNCY0JvQkNCdCivQl9CV0KfQldCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JfQldCn0JXQktCY0Isg0JzQmNCb0J4KK9CX0JXQp9CV0JLQmNCLINCc0JjQntCc0JjQoAor0JfQldCn0JXQktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CX0JXQp9CV0JLQmNCLINCd0JjQmtCe0JvQkAor0JfQldCn0JXQktCY0Isg0J3QmNCa0J7Qm9CQCivQl9CV0KfQldCS0JjQiyDQndCe0JLQkNCaCivQl9CV0KfQldCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JfQldCn0JXQktCY0Isg0KDQkNCI0JrQngor0JfQldCn0JXQktCY0Isg0KDQmNCh0KLQmNCS0J7QiNCVCivQl9CV0KfQldCS0JjQiyDQodCQ0JLQngor0JfQldCn0JXQktCY0Isg0KHQm9CQ0JLQmtCeCivQl9CV0KfQldCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQl9CV0KfQldCS0JjQiyDQodCc0JjQidCQCivQl9CV0KfQldCS0JjQiyDQodCc0JjQidCQCivQl9CV0KfQldCS0JjQiyDQodCe0KTQmNCI0JAKK9CX0JXQp9CV0JLQmNCLINCS0JXQodCd0JAKK9CX0JXQp9CV0JLQmNCLINCS0JvQkNCU0JjQnNCY0KAKK9CX0JXQp9CV0JLQmNCLINCX0J7QoNCQ0J0KK9CX0JXQp9CY0KDQntCS0JjQiyDQmNCb0JzQmAor0JfQldCL0JjQoNCYINCY0KHQnNCQ0JjQmwor0JfQldCL0JjQoNCYINCX0JjQiNCQCivQl9CV0KYg0JbQldCJ0JrQngor0JfQldCmINCC0KPQoNCeCivQl9CV0KYg0JHQntCo0JrQngor0JfQldCmINCR0J7QltCY0JTQkNCgCivQl9CV0KYg0JTQkNCd0JjQiNCV0JsKK9CX0JXQpiDQlNCg0JDQk9CQ0J0KK9CX0JXQpiDQlNCg0JDQk9Cj0KLQmNCdCivQl9CV0KYg0JTQo9Co0JDQnQor0JfQldCmINCU0KPQqNCQ0J0KK9CX0JXQpiDQiNCe0JLQkNCdCivQl9CV0KYg0JzQkNCg0JjQiNCQCivQl9CV0KYg0JzQkNCg0JjQiNCQCivQl9CV0KYg0JzQkNCg0JjQndCa0J4KK9CX0JXQpiDQnNCQ0KLQkAor0JfQldCmINCc0JjQm9CQ0J0KK9CX0JXQpiDQnNCY0JvQkNCdCivQl9CV0KYg0JzQmNCb0JUg0JTQmNCf0Jsg0JjQndCTCivQl9CV0KYg0JzQmNCb0J7QqAor0JfQldCmINCc0JjQm9Ce0KgKK9CX0JXQpiDQnNCY0JvQntCg0JDQlAor0JfQldCmINCc0JjQm9Ce0JLQkNCdCivQl9CV0KYg0J3QmNCa0J7Qm9CQCivQl9CV0KYg0J3QmNCa0J7Qm9CQCivQl9CV0KYg0KDQkNCU0J7QktCQ0J0KK9CX0JXQpiDQoNCQ0IjQmtCeCivQl9CV0KYg0KDQkNCI0JrQngor0JfQldCmINCh0KLQldCS0JDQndCY0IjQkAor0JfQldCmINCX0J7QoNCY0KbQkAor0JfQldCU0Jgg0JzQmNCl0JDQiQor0JfQldCT0JAg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CX0JXQk9Cd0JDQmyDQoNCj0JTQntCb0KQKK9CX0JXQiNCQ0Jog0JjQktCQ0J0KK9CX0JXQiNCQ0Jog0JzQmNCb0JXQotCQCivQl9CV0IjQkNCaINCg0JDQlNCe0KgKK9CX0JXQmtCQINCT0JfQmNCcCivQl9CV0JrQkCDQpdCY0KDQl9CV0J0KK9CX0JXQmtCQINCY0KDQnNCQCivQl9CV0JrQkNCS0JjQptCQINCI0JXQm9CV0J3QkAor0JfQldCa0JDQktCY0KbQkCDQnNCY0KDQiNCQ0J3QkAor0JfQldCa0JDQktCY0KbQkCDQodCb0JDQktCY0KbQkAor0JfQldCa0JDQktCY0KbQkCDQodCg0ILQkNCdCivQl9CV0JrQmNCLINCc0JjQoNCQCivQl9CV0JrQntCK0JAg0JfQlNCg0JDQktCa0J4KK9CX0JXQmtCe0JLQmNCLINCR0J7QqNCa0J4KK9CX0JXQmtCe0JLQmNCLINCU0KDQkNCT0J7QnNCY0KAKK9CX0JXQmtCe0JLQmNCLINCT0J7QoNCU0JDQndCQCivQl9CV0JrQntCS0JjQiyDQpdCQ0J3QmtCY0IjQkAor0JfQldCa0J7QktCY0Isg0IjQo9Cb0JjQiNCQ0J3QkAor0JfQldCa0J7QktCY0Isg0JvQmNCb0JAKK9CX0JXQmtCe0JLQmNCLINCc0JjQm9CQ0JTQmNCdCivQl9CV0JrQntCS0JjQiyDQnNCY0JvQntCoCivQl9CV0JrQntCS0JjQiyDQn9CV0KLQkNCgINCU0JjQm9CfINCe0JXQpgor0JfQldCa0J7QktCY0Isg0J/QldCi0JDQoAor0JfQldCa0J7QktCY0Isg0KDQkNCU0JXQndCa0J4KK9CX0JXQmtCe0JLQmNCLINCg0JjQl9CQCivQl9CV0JrQntCS0JjQiyDQktCQ0KHQngor0JfQldCa0J7QktCh0JrQmCDQl9Ce0KDQmNCm0JAKK9CX0JXQm9CV0J3QkdCQ0JHQkCDQoNCQ0KLQmtCeCivQl9CV0JvQldCd0JHQkNCR0JAg0KHQotCV0JLQkNCdCivQl9CV0JvQldCd0KXQkNCh0JjQiyDQldCc0JjQoAor0JfQldCb0JXQitCQ0Jog0JDQndCU0KDQmNCI0JAKK9CX0JXQm9CV0IrQkNCaINCh0KLQiNCV0J/QkNCdCivQl9CV0JvQldCd0JrQkCDQpNCg0JDQitCQCivQl9CV0JvQldCd0JrQkCDQnNCQ0KDQmNCI0JAKK9CX0JXQm9CV0J3QmtCeINCV0JzQkAor0JfQldCb0JXQndCe0JLQmNCLINCR0J7QoNCY0KjQkAor0JfQldCb0JXQndCe0JLQmNCLINCU0KDQkNCT0JDQnQor0JfQldCb0JXQndCe0JLQmNCLINCI0JXQm9CV0J3QkAor0JfQldCb0JXQndCe0JLQmNCLINCI0J7QktCQ0J0KK9CX0JXQm9CV0J3QntCS0JjQiyDQidCj0JHQmNCm0JAKK9CX0JXQm9CV0J3QntCS0JjQiyDQidCj0JHQngor0JfQldCb0JXQndCe0JLQmNCLINCc0JDQoNCQCivQl9CV0JvQldCd0J7QktCY0Isg0JzQmNCb0JDQlNCY0J0KK9CX0JXQm9CV0J3QntCS0JjQiyDQnNCY0JvQkNCdCivQl9CV0JvQldCd0J7QktCY0Isg0JzQmNCb0JjQodCQ0JIKK9CX0JXQm9CV0J3QntCS0JjQiyDQnNCY0JvQmNCh0JDQkgor0JfQldCb0JXQndCe0JLQmNCLINCS0JXQoNCQCivQl9CV0JvQldCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JfQldCb0JXQndCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JfQldCb0JXQndCh0JrQmCDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JfQldCb0JXQndCh0JrQmCDQiNCV0JvQldCd0JAKK9CX0JXQm9CV0J3QodCa0Jgg0JzQmNCb0JjQptCQCivQl9CV0JvQmNCLINCC0J7QoNCC0JUKK9CX0JXQm9CY0Isg0JjQktCQ0J0KK9CX0JXQm9CY0Isg0IjQkNCd0J7QqAor0JfQldCb0JjQiyDQiNCe0JLQkNCdCivQl9CV0JvQmNCLINCb0JDQl9CQ0KAKK9CX0JXQm9CY0Isg0InQo9CR0JAKK9CX0JXQm9CY0Isg0InQo9CR0JjQptCQCivQl9CV0JvQmNCLINCJ0KPQkdCe0JzQmNCgCivQl9CV0JvQmNCLINCc0JDQoNCi0JAKK9CX0JXQm9CY0Isg0J/QkNCS0JvQlQor0JfQldCb0JjQiyDQn9CV0KDQodCY0JTQkAor0JfQldCb0JjQiyDQn9CV0KLQkNCgCivQl9CV0JvQmNCLINCg0KPQltCY0KbQkAor0JfQldCb0JjQiyDQktCb0JDQlNCY0JzQmNCgCivQl9CV0JvQmNCLINCX0J7Qm9Ci0JDQnQor0JfQldCJ0JDQiNCY0Isg0J3QmNCa0J7Qm9CQINCU0KAKK9CX0JXQidCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JfQldCJ0JrQniDQnNCQ0KDQmNCm0JAKK9CX0JXQidCa0J7QktCY0Isg0JbQldCJ0JrQngor0JfQldCJ0JrQntCS0JjQiyDQltCV0InQmtCeCivQl9CV0InQmtCe0JLQmNCLINCC0KPQoNCeCivQl9CV0InQmtCe0JLQmNCLINCR0J7QodCQCivQl9CV0InQmtCe0JLQmNCLINCR0KDQkNCd0JrQngor0JfQldCJ0JrQntCS0JjQiyDQkdCg0JDQndCa0J4KK9CX0JXQidCa0J7QktCY0Isg0JTQldCh0JjQnNCY0KAKK9CX0JXQidCa0J7QktCY0Isg0JTQoNCQ0JPQo9Ci0JjQnQor0JfQldCJ0JrQntCS0JjQiyDQlNCj0KjQmtCeCivQl9CV0InQmtCe0JLQmNCLINCY0JLQkNCd0JrQkAor0JfQldCJ0JrQntCS0JjQiyDQiNCe0JLQkNCdCivQl9CV0InQmtCe0JLQmNCLINCI0J7QktCeCivQl9CV0InQmtCe0JLQmNCLINCa0KDQmNCh0KLQmNCd0JAKK9CX0JXQidCa0J7QktCY0Isg0InQmNCJ0JDQndCQCivQl9CV0InQmtCe0JLQmNCLINCc0JDQoNCa0J4KK9CX0JXQidCa0J7QktCY0Isg0JzQmNCb0JDQnQor0JfQldCJ0JrQntCS0JjQiyDQnNCY0JvQkNCdCivQl9CV0InQmtCe0JLQmNCLINCc0JjQm9CY0IsKK9CX0JXQidCa0J7QktCY0Isg0JzQmNCJ0JAKK9CX0JXQidCa0J7QktCY0Isg0JzQmNCb0J7QqAor0JfQldCJ0JrQntCS0JjQiyDQnNCY0KDQmtCeCivQl9CV0InQmtCe0JLQmNCLINCe0KHQotCe0IjQkAor0JfQldCJ0JrQntCS0JjQiyDQoNCQ0JTQnNCY0JvQkAor0JfQldCJ0JrQntCS0JjQiyDQoNCQ0J3QmtCeCivQl9CV0InQmtCe0JLQmNCLINCg0JDQotCa0J4KK9CX0JXQidCa0J7QktCY0Isg0KHQmNCc0JAKK9CX0JXQidCa0J7QktCY0Isg0KHQotCV0JLQngor0JfQldCJ0JrQntCS0JjQiyDQodCi0J7QiNCQ0J3QmtCQCivQl9CV0InQmtCe0JLQmNCLINCi0J7QlNCVCivQl9CV0InQmtCe0JLQmNCLINCi0J7QnNCQCivQl9CV0InQmtCe0JLQmNCLINCS0JXQoNCQCivQl9CV0InQmtCe0JLQmNCLINCS0JvQkNCI0JrQngor0JfQldCJ0JrQntCS0JjQiyDQktCj0JrQkNCo0JjQnQor0JfQldCJ0JrQntCS0JjQiyDQl9Ce0KDQkNCdCivQl9CV0InQmtCe0JLQmNCLINCX0J7QoNCQ0J0KK9CX0JXQidCa0J7QktCY0Isg0JfQntCg0JDQnQor0JfQldCc0JHQldCg0Jgg0KTQldCg0JXQndCmCivQl9CV0JzQkdCV0KDQmCDQiNCe0KHQmNCfCivQl9CV0JzQkdCV0KDQmCDQoNCe0JHQldCg0KIKK9CX0JXQnNCa0J4g0KjQkNCd0JTQntCgCivQl9CV0JzQidCQ0Jog0JjQktCQ0J0KK9CX0JXQnNCJ0JDQndCQ0KYg0JzQmNCb0JDQndCa0JAKK9CX0JXQndCi0JDQmCDQoNCe0JHQldCg0KIg0JTQmNCf0Jsg0JjQndCTCivQl9CV0J3Qo9CdINCQ0JLQlNCeCivQl9CV0J3Ql9CV0KDQntCS0JjQiyDQn9CQ0JLQm9CVCivQl9CV0KDQlNCeINCR0J7QltCY0JTQkNCgCivQl9CV0KDQlNCeINCc0JjQm9Ce0KDQkNCUCivQl9CV0KDQlNCeINCg0JDQlNCe0KHQm9CQ0JIKK9CX0JXQoNCU0J4g0JfQm9CQ0KLQkAor0JfQldCg0JXQnNCh0JrQmCDQlNCQ0J3QmNCb0J4KK9CX0JXQoNCV0JzQodCa0Jgg0JTQoNCQ0JPQkNCdCivQl9CV0KDQldCc0KHQmtCYINCU0KPQqNCQ0J0KK9CX0JXQoNCV0JzQodCa0Jgg0JrQkNCc0JXQndCa0J4KK9CX0JXQoNCV0JzQodCa0Jgg0J3QkNCU0JAKK9CX0JXQoNCV0JzQodCa0Jgg0J3QntCS0JDQmgor0JfQldCg0JXQnNCh0JrQmCDQn9CV0KLQkNCgCivQl9CV0KDQldCc0KHQmtCYINCf0JXQotCQ0KAKK9CX0JXQoNCV0JzQodCa0Jgg0J/QmNCg0J7QqNCa0JAKK9CX0JXQoNCV0JzQodCa0Jgg0KDQkNCU0J7QiNCa0JAKK9CX0JXQoNCV0JzQodCa0Jgg0KDQkNCd0JrQngor0JfQldCg0JXQnNCh0JrQmCDQoNCQ0KLQntCc0JjQoAor0JfQldCg0JXQnNCh0JrQmCDQoNCj0JbQmNCm0JAKK9CX0JXQoNCV0JzQodCa0Jgg0KHQm9CQ0JLQmNCm0JAKK9CX0JXQoNCV0JzQodCa0Jgg0KHQotCV0JLQkNCdCivQl9CV0KDQldCc0KHQmtCYINCh0KLQldCS0JDQnQor0JfQldCg0JXQnNCh0JrQmCDQotCV0J7QpNCQ0J0KK9CX0JXQoNCV0JzQodCa0Jgg0KLQntCc0JjQodCb0JDQkgor0JfQldCg0JXQnNCh0JrQmCDQktCV0KDQkAor0JfQldCg0JXQnNCh0JrQmCDQktCb0JDQlNCY0JzQmNCgCivQl9CV0KDQldCc0KHQmtCYINCS0KPQiNCQ0JTQmNCdCivQl9CV0JfQlNCY0J0g0JDQm9CV0JrQodCQ0J3QlNCQ0KAg0JTQoAor0JfQk9Ce0JzQkdCQINCb0JDQl9CQ0KAKK9CX0JPQntCc0JHQkCDQktCb0JDQlNCY0JzQmNCgCivQl9CT0J7QitCQ0J3QmNCdINCc0JjQm9CQ0J0KK9CX0JPQntCK0JDQndCY0J0g0KDQkNCU0JUKK9CX0JPQntCK0JDQndCY0J0g0KDQo9CW0JAKK9CX0JjQlNCQ0KAg0JzQkNCg0JjQiNCQ0J0KK9CX0JjQmtCe0JIg0JDQndCU0KDQmNCI0JAKK9CX0JjQmtCe0JIg0JTQoNCQ0JPQntCJ0KPQkQor0JfQmNCc0JAg0KfQkNCR0JAKK9CX0JjQnNCQINCg0KPQlNCe0JvQpAor0JfQmNCc0JDQitCYINCI0J7QktCQ0J0KK9CX0JjQnNCe0IrQkCDQidCj0JHQntCc0JjQoAor0JfQmNCc0J7QitCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JfQmNCd0JDQmNCLINCm0JLQmNCI0JXQotCQCivQl9CY0J3QkNCY0Isg0KPQoNCe0KgKK9CX0JjQoNCQ0JzQntCSINCW0JDQoNCa0J4KK9CX0JjQoNCQ0JzQntCSINCI0JXQktCg0J7QodCY0JzQkAor0JfQmNCg0JDQnNCe0JIg0IjQldCS0KDQntCh0JjQnNCQCivQl9CY0KDQkNCc0J7QkiDQodCQ0JLQkAor0JfQmNCg0JDQnNCe0JIg0KHQotCV0JLQkNCdCivQl9CY0KDQlNCj0KUg0JzQkNCg0JjQiNCQ0J0KK9CX0JjQoNCe0IjQlSDQlNCg0JDQk9CQ0J0KK9CX0JjQoNCe0IjQldCS0JjQiyDQkNCd0ILQkAor0JfQmNCg0J7QiNCV0JLQmNCLINCT0J7QiNCa0J4KK9CX0JjQoNCe0IjQldCS0JjQiyDQnNCY0JvQldCd0JrQngor0JfQmNCg0J7QiNCV0JLQmNCLINCc0JvQkNCU0JXQnQor0JfQmNCg0J7QiNCV0JLQmNCLINCe0JHQoNCQ0JQKK9CX0JjQoNCe0IjQldCS0JjQiyDQotCe0JzQmNCh0JvQkNCSCivQl9CY0KHQmNCI0JDQlNCV0KEg0JzQmNCg0IjQkNCd0JAKK9CX0JjQktCb0JDQmiDQkdCg0JDQndCa0J4KK9CX0JjQktCb0JDQmiDQiNCV0JvQmtCQCivQl9CY0JLQm9CQ0Jog0IjQntCS0JDQnQor0JfQmNCS0JvQkNCaINCf0JXQoNCeCivQl9CY0JLQm9CQ0Jog0J/QldCg0J4KK9CX0JjQktCb0JDQmiDQktCb0JDQlNCY0JzQmNCgCivQl9CY0JLQm9CQ0JrQntCS0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQl9CI0JDQp9CY0Isg0ILQntCg0ILQlQor0JfQiNCQ0KfQmNCLINCC0J7QoNCC0JUKK9CX0IjQkNCn0JjQiyDQkdCg0JDQndCa0J4KK9CX0IjQkNCI0JjQiyDQmtCg0KHQotCQ0J0KK9CX0IjQkNCb0JjQiyDQlNCg0JDQk9Ce0JzQmNCgINCQ0JTQktCe0JrQkNCiCivQl9CI0JDQm9CY0Isg0JTQoNCQ0JPQntCc0JjQoAor0JfQiNCQ0JvQmNCLINCc0JDQoNCT0JjQotCQCivQl9CI0JXQktCQ0JvQniDQkNCd0JrQmNCm0JAKK9CX0JvQkNCi0JDQndCe0JLQmNCLINCR0JvQkNCT0J7QiNCVCivQl9Cb0JDQotCQ0J3QntCS0JjQiyDQptCS0JXQotCa0J4KK9CX0JvQkNCi0JDQndCe0JLQmNCLINCg0JDQlNCY0JLQntCICivQl9Cb0JDQotCQ0J3QntCS0JjQiyDQotCY0KXQntCc0JjQoAor0JfQm9CQ0KLQkNCd0J7QktCY0Isg0JLQm9CQ0JTQmNCc0JjQoAor0JfQm9CQ0KLQkNCd0J7QktCh0JrQmCDQlNCY0JzQmNCi0KDQmNCI0JUKK9CX0JvQkNCi0JDQndCe0JLQodCa0Jgg0KDQo9Ch0JUKK9CX0JvQkNCi0JDQoCDQnNCY0JvQldCd0JrQngor0JfQm9CQ0KLQkNCg0JXQkiDQlNCj0KjQkNCdCivQl9Cb0JDQotCQ0KDQldCSINCU0KPQqNCQ0J0KK9CX0JvQkNCi0JDQoNCV0JIg0JLQldCg0JjQptCQCivQl9Cb0JDQotCQ0KDQmNCLINCc0J7QnNCn0JjQm9CeCivQl9Cb0JDQotCQ0KDQmNCLINCS0J7QiNCY0KHQm9CQ0JIKK9CX0JvQkNCi0JDQoNCe0JIg0JzQmNCb0J7QktCQ0J0KK9CX0JvQkNCi0JXQmiDQm9CQ0JfQkNCgCivQl9Cb0JDQotCY0KfQkNCd0JjQnSDQotCe0KjQngor0JfQm9CQ0KLQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Cb0JDQotCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JfQm9CQ0KLQmNCLINCS0JXQodCV0JvQmNCdCivQl9Cb0JDQotCa0J7QktCY0Isg0JHQntCo0JrQngor0JfQm9CQ0KLQmtCe0JLQmNCLINCR0J7QoNCY0KHQm9CQ0JIKK9CX0JvQkNCi0JrQntCS0JjQiyDQiNCV0JvQmNCm0JAKK9CX0JvQkNCi0JrQntCS0JjQiy3QiNCe0JLQmNCLINCe0JvQk9CY0KbQkAor0JfQm9CQ0KLQmtCe0JLQmNCLINCa0JDQotCQ0KDQmNCd0JAKK9CX0JvQkNCi0JrQntCS0JjQiyDQnNCV0JvQkNCd0JjQiNCQCivQl9Cb0JDQotCa0J7QktCY0Isg0KDQo9Ch0J7QnNCY0KAKK9CX0JvQkNCi0JrQntCS0JjQiyDQodCb0JDQgtCQ0J3QkAor0JfQm9CQ0KLQmtCe0JLQmNCLINCh0JvQkNCS0JrQngor0JfQm9CQ0KLQntCd0JjQiyDQodCb0JDQktCa0J4KK9CX0JvQkNCi0J7QktCV0KDQpdCe0JLQndCY0JrQntCSINCC0J7QoNCC0JUKK9CX0JvQkNCi0J7QktCY0Isg0IjQldCb0JjQodCQ0JLQldCi0JAKK9CX0JvQkNCi0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQl9Cb0JjQp9CY0Isg0JDQm9CV0JrQodCQ0J3QlNCg0JAKK9CX0JvQmNCn0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JfQm9CY0KfQmNCLINCU0JjQnNCY0KLQoNCY0IjQlQor0JfQm9CY0KfQmNCLINCU0KPQqNCQ0J3QmtCQINCU0JjQn9CbINCY0J3Qkwor0JfQm9CY0KfQmNCLINCU0KPQqNCQ0J0KK9CX0JvQmNCn0JjQiyDQmNCS0JDQnQor0JfQm9CY0KfQmNCLINCa0JDQotCY0KbQkAor0JfQm9CY0KfQmNCLINCJ0KPQkdCY0KbQkAor0JfQm9CY0KfQmNCLINCc0JjQm9CQ0J0KK9CX0JvQmNCn0JjQiyDQnNCY0JvQntCg0JDQlAor0JfQm9CY0KfQmNCLINCg0JDQlNCe0JLQkNCdCivQl9Cb0JjQp9CY0Isg0JLQkNCh0JjQidCa0JAKK9CX0JvQntCI0KPQotCg0J4g0JzQmNCL0J4KK9CX0JvQntCI0KPQotCg0J4g0JzQmNCl0JDQiNCb0J4KK9CX0JvQntCI0KPQotCg0J4g0KHQotCV0JLQngor0JfQm9Ce0IjQo9Ci0KDQniDQktCQ0KHQkAor0JfQm9Ce0JrQntCb0JjQptCQINCW0JjQktCa0J4KK9CX0JvQntCa0J7Qm9CY0KbQkCDQgtCe0KDQgtCVCivQl9Cb0J7QmtCe0JvQmNCm0JAg0JHQntCo0JrQngor0JfQm9Ce0JrQntCb0JjQptCQINCI0J7QoNCT0J7QktCQ0J3QmtCQCivQl9Cb0J7QmtCe0JvQmNCm0JAg0IjQntCS0JDQnQor0JfQm9Ce0JrQntCb0JjQptCQINCI0J7QktCQ0J0KK9CX0JvQntCa0J7Qm9CY0KbQkCDQm9CQ0JfQkNCgCivQl9Cb0J7QmtCe0JvQmNCm0JAg0InQo9CR0JjQptCQCivQl9Cb0J7QmtCe0JvQmNCm0JAg0JzQkNCg0JrQngor0JfQm9Ce0JrQntCb0JjQptCQINCc0JjQm9Ce0KgKK9CX0JvQntCa0J7Qm9CY0KbQkCDQnNCY0J7QlNCg0JDQkwor0JfQm9Ce0JrQntCb0JjQptCQINCd0JjQmtCe0JvQkAor0JfQm9Ce0JrQntCb0JjQptCQINCd0J7QktCQ0JoKK9CX0JvQntCa0J7Qm9CY0KbQkCDQodCb0JDQktCa0J4KK9CX0JvQntCa0J7Qm9CY0KbQkCDQodCb0JDQktCd0JAKK9CX0JvQntCa0J7Qm9CY0KbQkCDQodCi0JXQktCQ0J0KK9CX0JvQntCa0J7Qm9CY0KbQkCDQodCi0JXQktCQ0J0KK9CX0JvQntCa0J7Qm9CY0KbQkCDQotCe0JTQntCgCivQl9Cb0J7QmtCe0JvQmNCm0JAg0JLQm9CQ0JTQkAor0JfQm9Ce0JrQntCb0JjQptCQINCX0JvQkNCi0JAKK9CX0JzQmNCI0JDQitCQ0KYg0JzQmNCb0JDQnQor0JfQnNCg0JfQm9CY0JrQkNCgINCc0JjQoNCI0JDQndCQCivQl9Ce0IvQldCS0JjQiyDQnNCQ0KDQmNCI0JAKK9CX0J7Qi9CV0JLQmNCLINCS0JjQotCe0KAKK9CX0J7QkdCV0J3QmNCm0JAg0JHQmNCJ0JDQndCQCivQl9Ce0JHQldCd0JjQptCQINCU0JDQndCY0KbQkAor0JfQntCR0JXQndCY0KbQkCDQnNCY0KDQiNCQ0J3QkAor0JfQntCT0J7QktCY0Isg0JLQo9CaCivQl9Ce0JrQmCDQodCi0JXQktCQ0J0KK9CX0J7QmtCY0Isg0KDQkNCU0J7QktCQ0J0KK9CX0J7Qm9Cd0JDQmCDQotCe0JzQkNCoCivQl9Ce0JvQitCQ0J0g0J/QkNCS0JXQmwor0JfQntCb0J7QotCY0Isg0JrQkNCi0JDQoNCY0J3QkAor0JfQntCb0J7QotCY0Isg0JLQldCb0JjQndCa0JAKK9CX0J7Qm9Ce0KLQmNCLINCS0KPQmtCe0KHQkNCSCivQl9Ce0JzQkdCe0KDQkNCmINCX0JLQntCd0JrQngor0JfQntCd0JAg0JTQmNCS0J3QkAor0JfQntCd0JDQmCDQn9CQ0JsKK9CX0J7QndCY0Isg0InQo9CR0JDQnQor0JfQntCd0JjQiyDQoNCY0JfQkNClCivQl9Ce0KDQkNCUINCc0JjQpdCQ0IkKK9CX0J7QoNCQ0JQg0KHQotCV0JLQkNCdCivQl9Ce0KDQkNCI0JAg0ILQo9Cg0JAKK9CX0J7QoNCQ0IjQkCDQlNCg0JDQk9CQ0J0KK9CX0J7QoNCQ0IjQkCDQmNCT0IrQkNCiCivQl9Ce0KDQkNCI0JAg0J/QldCi0JDQoAor0JfQntCg0JDQiNCQINCh0KLQldCS0JDQnQor0JfQntCg0JDQndCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CX0J7QoNCQ0J3QntCS0JjQiyDQlNCj0KjQkNCd0JrQkAor0JfQntCg0JDQndCe0JLQmNCLINCY0JvQmNCI0JAKK9CX0J7QoNCQ0J3QntCS0JjQiyDQm9CQ0JfQkNCgCivQl9Ce0KDQkNCd0J7QktCY0Isg0JvQkNCX0JDQoAor0JfQntCg0JDQndCe0JLQmNCLINCc0JjQm9CQ0J0KK9CX0J7QoNCQ0J3QntCS0JjQiyDQnNCY0J7QlNCg0JDQkwor0JfQntCg0JDQndCe0JLQmNCLINCh0J7QpNCY0IjQkAor0JfQntCg0JDQndCe0JLQmNCLINCh0J/QkNCh0JAKK9CX0J7QoNCQ0J3QntCS0JjQiyDQodCi0JXQktCQ0J0KK9CX0J7QoNCQ0J3QntCS0JjQiyDQodCS0JXQotCb0JDQndCQCivQl9Ce0KDQmNCn0JjQiyDQlNCg0JDQk9Ce0InQo9CRCivQl9Ce0KDQmNCLINCn0JXQlNCeCivQl9Ce0KDQmNCLINCC0J7QoNCC0JUKK9CX0J7QoNCY0Isg0ILQntCg0ILQlQor0JfQntCg0JjQiyDQgtCj0KDQgtCY0KbQkAor0JfQntCg0JjQiyDQgtCj0KDQmNCm0JAKK9CX0J7QoNCY0Isg0ILQo9Cg0J4KK9CX0J7QoNCY0Isg0ILQo9Cg0J4KK9CX0J7QoNCY0Isg0ILQo9Cg0J4KK9CX0J7QoNCY0Isg0JDQndCC0JXQm9Ca0JAKK9CX0J7QoNCY0Isg0JHQntCo0JrQngor0JfQntCg0JjQiyDQkdCe0JbQmNCU0JDQoAor0JfQntCg0JjQiyDQkdCe0JPQlNCQ0J0KK9CX0J7QoNCY0Isg0JHQntCT0J7QidCj0JEKK9CX0J7QoNCY0Isg0JHQntCg0JjQktCe0IgKK9CX0J7QoNCY0Isg0JHQntCg0J4KK9CX0J7QoNCY0Isg0JHQntCg0J4KK9CX0J7QoNCY0Isg0JHQoNCQ0J3QmtCQCivQl9Ce0KDQmNCLINCR0KDQkNCd0JrQngor0JfQntCg0JjQiyDQlNCQ0KDQmNCd0JrQkAor0JfQntCg0JjQiyDQlNCQ0KDQmtCeCivQl9Ce0KDQmNCLINCU0KDQkNCT0JDQnQor0JfQntCg0JjQiyDQlNCg0JDQk9CQ0J0KK9CX0J7QoNCY0Isg0JTQoNCQ0JPQkNCdCivQl9Ce0KDQmNCLINCU0KDQkNCT0J7QidCj0JEKK9CX0J7QoNCY0Isg0JTQo9Co0JDQndCa0JAKK9CX0J7QoNCY0Isg0JTQo9Co0JDQnQor0JfQntCg0JjQiyDQlNCj0KjQkNCdCivQl9Ce0KDQmNCLLdCT0JDQoNCU0JjQndCe0JLQkNCn0JrQmCDQnNCQ0KDQmNCI0JDQndCQCivQl9Ce0KDQmNCLINCT0JDQktCg0JjQm9CeCivQl9Ce0KDQmNCLINCT0J7QoNCU0JDQndCQCivQl9Ce0KDQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQl9Ce0KDQmNCLINCI0JXQm9CY0KHQkNCS0JXQotCQCivQl9Ce0KDQmNCLINCI0J7QktCQ0J0KK9CX0J7QoNCY0Isg0JrQkNCi0JAKK9CX0J7QoNCY0Isg0JrQm9CQ0KDQkAor0JfQntCg0JjQiyDQmtCe0KHQotCQ0JTQmNCdCivQl9Ce0KDQmNCLINCa0J7QktCY0InQmtCQCivQl9Ce0KDQmNCLINCb0JDQl9CQ0KAKK9CX0J7QoNCY0Isg0JvQo9Ca0JAKK9CX0J7QoNCY0Isg0JzQkNCg0JjQiNCQCivQl9Ce0KDQmNCLINCc0JDQoNCa0J4KK9CX0J7QoNCY0Isg0JzQmNCa0JAKK9CX0J7QoNCY0Isg0JzQmNCb0JDQnQor0JfQntCg0JjQiyDQnNCY0JvQkNCdCivQl9Ce0KDQmNCLINCc0JjQm9CQ0J0KK9CX0J7QoNCY0Isg0JzQmNCb0JDQnQor0JfQntCg0JjQiyDQnNCY0JvQkNCdCivQl9Ce0KDQmNCLINCc0JjQm9CV0JLQkAor0JfQntCg0JjQiyDQnNCY0JvQmNCm0JAKK9CX0J7QoNCY0Isg0JzQmNCb0JjQptCQCivQl9Ce0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Ce0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Ce0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Ce0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Ce0KDQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Ce0KDQmNCLINCc0JjQntCU0KDQkNCTCivQl9Ce0KDQmNCLINCc0JjQoNCa0J4g0JjQndCTCivQl9Ce0KDQmNCLINCc0JjQoNCa0J4KK9CX0J7QoNCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JfQntCg0JjQiyDQndCY0JrQntCb0JAKK9CX0J7QoNCY0Isg0J3QmNCa0J7Qm9CQCivQl9Ce0KDQmNCLINCd0JjQmtCe0JvQkAor0JfQntCg0JjQiyDQn9CQ0JLQm9CVCivQl9Ce0KDQmNCLINCf0JXQoNCQCivQl9Ce0KDQmNCLINCf0JXQotCQ0KAKK9CX0J7QoNCY0Isg0J/QldCi0JrQngor0JfQntCg0JjQiyDQoNCQ0JTQlQor0JfQntCg0JjQiyDQoNCQ0JTQlQor0JfQntCg0JjQiyDQodCQ0JLQkAor0JfQntCg0JjQiyDQodCY0JzQkAor0JfQntCg0JjQiyDQodCY0JzQldCe0J0KK9CX0J7QoNCY0Isg0KHQm9CQ0JLQmNCm0JAKK9CX0J7QoNCY0Isg0KHQm9Ce0JHQntCU0JDQnQor0JfQntCg0JjQiyDQodCd0JXQltCQ0J3QkAor0JfQntCg0JjQiyDQodCe0JrQkAor0JfQntCg0JjQiyDQodCf0JDQodCe0IjQlQor0JfQntCg0JjQiyDQodCi0JDQndCa0J4KK9CX0J7QoNCY0Isg0KHQotCe0IjQkNCdCivQl9Ce0KDQmNCLINCh0JLQldCi0JrQngor0JfQntCg0JjQiyDQodCS0JXQotCa0J4KK9CX0J7QoNCY0Isg0JLQkNCh0JjQm9CY0IjQlQor0JfQntCg0JjQiyDQktCV0JvQmNCc0JjQoAor0JfQntCg0JjQiyDQktCV0InQmtCeINCU0JjQn9CbINCY0J3Qkwor0JfQntCg0JjQiyDQktCb0JDQlNCY0KHQm9CQ0JIKK9CX0J7QoNCY0Isg0JLQm9CQ0JTQngor0JfQntCg0JjQiyDQktCe0IjQmNCdCivQl9Ce0KDQmNCLINCS0J7QiNCa0JAKK9CX0J7QoNCY0Isg0JfQlNCg0JDQktCa0JAKK9CX0J7QoNCY0Isg0JfQntCg0JjQptCQCivQl9Ce0KDQmNCLINCX0JLQntCd0JjQnNCY0KAKK9CX0J7QoNCY0KbQkCDQkNCm0J4KK9CX0J7QoNCY0KbQkCDQlNCj0KjQkNCdCivQl9Ce0KDQmNCm0JAg0JzQkNCg0JrQngor0JfQntCg0JjQiNCQ0J0g0JXQnNCY0JsKK9CX0J7QoNCI0JDQnSDQkdCg0JDQndCa0J4KK9CX0J7QoNCI0JDQnSDQiNCQ0J3QmtCeCivQl9Ce0KDQmtCY0Isg0JbQmNCS0JrQngor0JfQntCg0J3QmNCI0JAg0JHQoNCQ0J3QmtCeCivQl9Ce0KDQndCY0IjQkCDQktCb0JDQlNCY0KHQm9CQ0JIKK9CX0J7QoNCd0JjQmiDQkNCb0JTQkAor0JfQntCg0JfQmNCLINCc0JjQm9Ce0KDQkNCUCivQl9Ce0KLQmNCdINCC0J7QoNCC0JUKK9CX0J7QotCY0J0g0KHQkNCS0JAKK9CX0J7QotCY0J0g0KHQm9CQ0JLQntCJ0KPQkQor0JfQntCi0J7QktCY0Isg0JDQm9CV0JrQodCQ0J3QlNCQ0KAKK9CX0J7QotCe0JLQmNCLINCe0JHQoNCQ0JQKK9CX0J7QktCY0Isg0JDQndCQCivQl9Ce0JLQmNCLINCU0KPQqNCQ0J0KK9CX0J7QktCY0Isg0JzQmNCb0J7QktCQ0J0KK9CX0J7QktCY0Isg0JzQmNCg0J7QodCb0JDQkgor0JfQntCS0JrQniDQqNCY0JzQo9CdCivQl9Ce0JLQmtCeINCY0JvQmNCI0JAKK9CX0J7QktCa0J4g0IjQntCh0JjQnwor0JfQntCS0JrQniDQnNCQ0J3QlNCQCivQl9Ce0JLQmtCeINCc0JDQoNCI0JDQnQor0JfQntCX0KPQmiDQidCj0JHQntCc0JjQoAor0JfQoNCY0JvQmNCLINCd0JDQlNCQCivQl9Cg0JjQm9CY0Isg0JLQldCg0JAKK9CX0KDQmNCb0JjQiyDQktCb0JDQlNCY0JzQmNCgINCU0KAg0JvQldCa0JDQoAor0JfQoNCd0JjQiyDQqNCf0JjQoNCeCivQl9Cg0J3QmNCLINCC0J7QoNCC0JUKK9CX0KDQndCY0Isg0ILQo9Cg0J4KK9CX0KDQndCY0Isg0ILQo9Cg0J4KK9CX0KDQndCY0Isg0JHQoNCQ0J3QmtCeCivQl9Cg0J3QmNCLINCU0KPQqNCQ0J0KK9CX0KDQndCY0Isg0JPQntCI0JrQngor0JfQoNCd0JjQiyDQk9Ce0IjQmtCeCivQl9Cg0J3QmNCLINCI0J7QktCQ0J0KK9CX0KDQndCY0Isg0JvQkNCX0JDQoAor0JfQoNCd0JjQiyDQnNCQ0IjQkAor0JfQoNCd0JjQiyDQnNCQ0JvQmNCd0JAKK9CX0KDQndCY0Isg0JzQkNCd0JUg0JTQmNCf0Jsg0JjQndCTCivQl9Cg0J3QmNCLINCc0JDQndCVCivQl9Cg0J3QmNCLINCc0JDQoNCY0J3QmtCeCivQl9Cg0J3QmNCLINCc0JjQm9CQ0J0KK9CX0KDQndCY0Isg0JzQmNCb0JDQnQor0JfQoNCd0JjQiyDQnNCY0JvQntCoCivQl9Cg0J3QmNCLINCc0JjQoNCI0JDQndCQCivQl9Cg0J3QmNCLINCc0JjQoNCe0InQo9CRCivQl9Cg0J3QmNCLINCd0JXQndCQ0JQKK9CX0KDQndCY0Isg0J3QmNCa0J7Qm9CQCivQl9Cg0J3QmNCLINCf0JXQotCQ0KAKK9CX0KDQndCY0Isg0KHQmNCd0JjQqNCQCivQl9Cg0J3QmNCLINCh0JvQntCR0J7QlNCQ0J0KK9CX0KDQndCY0Isg0KHQoNCC0JDQnQor0JfQoNCd0JjQiyDQktCb0JDQlNCeCivQl9Cg0J3QmNCLINCX0J7QoNCQ0J0KK9CX0KDQndCY0Isg0JfQntCg0JDQnQor0JfQo9CR0JDQpiDQp9CV0JTQntCc0JjQoAor0JfQo9CR0JDQpiDQlNCY0JLQndCQCivQl9Cj0JHQkNCmINCc0JjQm9CQ0J0KK9CX0KPQkdCQ0KYg0J/QldCg0J4KK9CX0KPQkdCQ0Jog0KHQotCV0JLQkNCdCivQl9Cj0JHQkNCdINCf0JXQotCQ0KAKK9CX0KPQkdCQ0J3QntCSINCR0KDQkNCd0JjQodCb0JDQkgor0JfQo9CR0JDQndCe0JIg0JLQm9CQ0JTQmNCc0JjQoAor0JfQo9CR0JXQoCDQlNCj0KjQkNCdCivQl9Cj0JHQldCgINCc0JDQoNCa0J4KK9CX0KPQkdCV0KDQldCmINCI0J7QktCQ0J0KK9CX0KPQkdCY0Isg0JbQkNCg0JrQngor0JfQo9CR0JjQiyDQgtCj0KDQgtCQCivQl9Cj0JHQmNCLINCR0JjQidCQ0J3QkAor0JfQo9CR0JjQiyDQkdCe0JbQngor0JfQo9CR0JjQiyDQkdCg0JDQndCY0KHQm9CQ0JLQkAor0JfQo9CR0JjQiyDQlNCg0JDQk9CeCivQl9Cj0JHQmNCLINCI0J7QktCeCivQl9Cj0JHQmNCLINCb0JDQl9CeCivQl9Cj0JHQmNCLINCf0JXQotCQ0KAKK9CX0KPQkdCY0Isg0KDQkNCU0J7QodCb0JDQkgor0JfQo9CR0JjQiyDQoNCQ0KLQmtCeCivQl9Cj0JHQmNCLINCS0JXQoNCQCivQl9Cj0JHQmNCLINCS0JXQoNCa0JAKK9CX0KPQkdCe0JIg0JDQlNCV0JvQkAor0JfQo9CR0J7QktCY0Isg0JDQndCU0KDQmNCI0JAKK9CX0KPQkdCe0JLQmNCLINCc0JjQoNCI0JDQndCQCivQl9Cj0JHQntCS0JjQiyDQodCb0J7QkdCe0JTQkNCdCivQl9Cj0JHQntCS0JjQiyDQodCi0JXQktCQ0J0KK9CX0KPQptCQ0IjQmNCLINCI0JXQm9CV0J3QkAor0JfQo9Ca0JjQiyDQk9Ce0IjQmtCeCivQl9Cj0JrQntCS0JjQiyDQnNCY0JvQmNCd0JrQngor0JfQo9Cb0JjQiyDQkNCT0J3QldCoCivQl9Cj0JzQkdCj0JvQntCS0JjQiyDQn9Cg0JXQlNCg0JDQkwor0JfQo9Cf0JDQndCn0JjQiyDQpNCg0JDQndCmCivQl9Cj0J/QkNCd0KfQmNCLINCY0JLQkNCdCivQl9Cj0J/QkNCd0KYg0JTQkNCg0JrQngor0JfQo9Cf0JDQndCmINCg0JDQiNCa0J4KK9CX0KPQn9Ca0J7QkiDQgtCj0KDQkAor0JfQo9Cf0JrQntCSINCc0JjQoNCe0KHQm9CQ0JIKK9CX0KPQoNCa0J7QktCY0Isg0ILQntCg0ILQlQor0JfQo9Cg0JrQntCS0JjQiyDQkNCb0JXQmtCh0JDQndCU0JDQoAor0JfQo9Cg0JrQntCS0JjQiyDQkdCe0JPQntCJ0KPQkQor0JfQo9Cg0JrQntCS0JjQiyDQlNCj0KjQkNCdCivQl9Cj0KDQmtCe0JLQmNCLINCT0JDQktCg0JAKK9CX0KPQoNCa0J7QktCY0Isg0JzQmNCg0IjQkNCd0JAKK9CX0KPQoNCa0J7QktCY0Isg0J3QmNCa0J7Qm9CQCivQl9Cj0KDQmtCe0JLQmNCLINCg0JDQlNCe0KHQm9CQ0JIKK9CX0KPQoNCa0J7QktCY0Isg0KDQo9CW0JAKK9CX0KPQoNCa0J7QktCY0Isg0JLQldCg0JAKK9CX0KPQoNCe0JLQkNCmINCI0J7QktCeCivQl9Cj0KDQntCS0JDQpiDQktCV0InQmtCeCivQl9Cj0JLQmNCLINCe0JHQoNCQ0JQKK9CX0KPQl9CQ0JrQoyDQoNCV0I/QldCfCivQl9CS0JDQoNCQINCI0KPQm9CY0IjQkAor0JfQktCV0JrQkNCd0J7QktCY0Isg0IjQntCh0JjQnwor0JfQktCV0JrQmNCLINCU0KPQqNCQ0J3QmtCQCivQl9CS0JXQmtCY0Isg0IjQo9CT0J7QodCb0JDQkgor0JfQktCV0JrQmNCLINCc0JDQoNCY0IjQkAor0JfQktCV0JrQmNCLINCc0JjQm9CQ0J0KK9CX0JLQldCa0JjQiyDQndCQ0JTQkAor0JfQktCV0JrQmNCLINCf0JXQotCQ0KAKK9CX0JLQldCa0JjQiyDQodCY0J3QmNCo0JAKK9CX0JLQldCa0JjQiyDQktCV0JvQmNCc0JjQoAor0JfQktCV0KDQltCY0J3QkCDQiNCe0KHQmNCfCivQl9CS0JXQl9CU0JDQndCe0JLQmNCLINCR0J7QoNCQCivQl9CS0JXQl9CU0JDQndCe0JLQmNCLINCi0J7QnNCQCivQl9CS0JXQl9CU0JjQnSDQiNCe0JLQkNCd0JrQkAor0JfQktCY0IjQldCgINCc0JjQm9Ce0KDQkNCUCivQl9CS0JjQl9CU0JjQiyDQnNCV0KXQnNCV0JQKK9CX0JLQntCo0JXQpiDQmtCb0JDQoNCQCivQl9CS0J7QndCQ0KDQldCS0JjQiyDQmtCQ0KLQkApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NpbXBsaWZpZWRfQ2hpbmVzZS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfU2ltcGxpZmllZF9DaGluZXNlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDNkZWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvZGF0YS9jb2xsYXRpb24vVGVzdE5hbWVzX1NpbXBsaWZpZWRfQ2hpbmVzZS50eHQKQEAgLTAsMCArMSwxMDkwMiBAQAor77u/Iy8qKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKg0KKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyMgKi8NCisNCivombnlpoINCivkuIHkuIDotKQNCivkuIHlt53kvJ8NCivkuIHlv4PlspoNCivkuIHlvJjlhYkNCivkuIHku7vms5UNCivkuIHlv5flro8NCivkuIHlubjlp6wNCivkuIHkv4rlpKsNCivkuIHlu7rmlocNCivkuIHmmKDnuq8NCivkuIHnvr/mlocNCivkuIHlk7INCivkuIHkvJ/msJENCivkuIHlm73mooUNCivkuIHmt5HnjrINCivkuIHoi4/ljZcNCivkuIHmr5PlvaYNCivkuIHpm43lk7INCivkuIHnu67mhacNCivkuIHmhaflspoNCivkuIHnkp/mnqsNCivkuIHoqonnkLMNCivkuIHpi5DplZINCivljZzmraPkvKYNCivkuo7lvIvnv5QNCivkuo7np4Dnvo4NCivkuo7np4nlvJgNCivkuo7muIXljY4NCivkuo7mrr/lnKMNCivlsbHmnbANCivlsLnlr7jmrKMNCivlsLnlsYXmiY0NCivlsLnmjK/lqIENCivlsLnnkZ7kuLANCivlsLnmmZPmgakNCivku4flrrbnkKoNCivlrZTlrojkuK0NCivlrZTmmbrmnbANCivlrZTnuYHpnJYNCivlsKTlv4PnkZwNCivlsKTlkJ/mlocNCivlsKToia8NCivlsKTmmI7ku7INCivlsKTkv4rlk40NCivlsKTmmJ/nrZYNCivlsKTkvJ/ku5UNCivlsKTlh4DnvKgNCivlsKTpkqbkuZANCivlsKTnm5/otLUNCivlsKTlrr3lro8NCivlsKTpn7XnkIcNCivlsKTojrPokLENCivmloflv5flv6ANCivmlofnnJ/oirENCivmlofku6rlko8NCivmlrnlo6vpk60NCivmlrnlpKnkuK0NCivmlrnmlofplIsNCivmlrnmsLjmuIUNCivmlrnmsZ3ogrINCivmlrnlrZ3lkJsNCivmlrnlv5fmmI4NCivmlrnnp4DmlY8NCivmlrnkvbPkv4oNCivmlrnlubjlrpwNCivmlrnmgKHmtIENCivmlrnplb/miawNCivmlrnkv4rpm4QNCivmlrnlpZXmlowNCivmlrnlu7rmmboNCivmlrnlvabnqIsNCivmlrnmmKDoiqwNCivmlrnmn4/pkqYNCivmlrnnp4vplKYNCivmlrnoi6Xnj4oNCivmlrnph43lh68NCivmlrnmmYvlvrcNCivmlrnlgaXliJoNCivmlrnlvanlrpwNCivmlrnmt5HoiqwNCivmlrnmt5HlhJINCivmlrnlh6/njrINCivmlrnmma/lvJgNCivmlrnnrZbmsJENCivmlrnpm4XnkKoNCivmlrnniLHnj40NCivmlrnnkZ7ov5wNCivmlrnoo5XpkqYNCivmlrnlmInlhbQNCivmlrnnv6DpuL8NCivmlrnmhafnkLQNCivmlrnpnZnlrpwNCivmlrnnkLzku6oNCivmlrnkuL3pm4UNCivmlrnpkp/plIsNCivmlrnoj4DokI0NCivmr5vmlofli4cNCivmr5vkvanlqJ8NCivmr5vlvabkuZQNCivmr5vmt5HoiqwNCivmr5vmsYnmooUNCivmsLTnpaXoi5MNCivniZvotLXotKQNCivnjovkuIDnj40NCivnjovkuYPkv5ANCivnjovlipvlubMNCivnjovkuIrnu7QNCivnjovlo6vlv6ANCivnjovlo6vojaMNCivnjovlo6vosaoNCivnjovlpKfmmIwNCivnjovlrZDmiJANCivnjovlrZDoi7ENCivnjovlrZDnhpkNCivnjovlsI/oiqwNCivnjovkuK3lubMNCivnjovkuK3mhpMNCivnjovlsLnlnKMNCivnjovku4HlkJsNCivnjovku4HlrpcNCivnjovku4HoiJwNCivnjovlhYPliqkNCivnjovlhYPlhbQNCivnjovlj4vlv5cNCivnjovlpKnmlocNCivnjovlsJHmlocNCivnjovlv4Plv6ANCivnjovlv4PmgKENCivnjovlv4PmmboNCivnjovmloflubMNCivnjovmloflkJsNCivnjovmloflv5cNCivnjovmlofmnbANCivnjovmlofpg4ENCivnjovmlofnkKoNCivnjovmlofnkbYNCivnjovmlofpuL8NCivnjovmlrnmgKENCivnjovmnIjlqbcNCivnjovkuJblrocNCivnjovkuJbmmI4NCivnjovkuJbmnbANCivnjovkuJblub8NCivnjovkuJXpk6gNCivnjovlj6/mrKMNCivnjovlt6fojrkNCivnjovlvJjmr4UNCivnjovmraPlqIENCivnjovmraPovr4NCivnjovmsLjku4ENCivnjovmsLjljYcNCivnjovmsLjor5oNCivnjovnjonmlocNCivnjovnjonnj6ANCivnjovnjonkupENCivnjovnlJ/li4sNCivnjovnq4vmooUNCivnjovnq4vnjq4NCivnjovku7LnkKYNCivnjovlhYnpuoMNCivnjovlkInkvbMNCivnjovlpoLnjokNCivnjovlrofmuIUNCivnjovlronlh68NCivnjovml63lhagNCivnjovmnInmnYMNCivnjovoh6rlvLoNCivnjovkvZDovoUNCivnjovkvK/pgLgNCivnjovliKnnlJ8NCivnjovlkJvnkZ4NCivnjovlppnnuqINCivnjovlrZ3lkJsNCivnjovlro/ku4ENCivnjovlro/lk7INCivnjovlro/lmIkNCivnjovluo/nurYNCivnjovlv5fku4ENCivnjovlv5fmlocNCivnjovlv5flvJgNCivnjovlv5flkYgNCivnjovlv5flv6ANCivnjovlv5fls7ANCivnjovlv5fkvJ8NCivnjovlv5fmuIUNCivnjovlv5fpkqYNCivnjovlv5for5oNCivnjovlv5fosaoNCivnjovlv5fpk60NCivnjovmnY/lpoINCivnjovnp4DkupENCivnjovnp4DoiqwNCivnjovnp4Dnj6ANCivnjovnp4Dpm68NCivnjovnp4DmpL8NCivnjovogrLlvrcNCivnjovosLfnpZ4NCivnjovkuprlv5cNCivnjovkvp3pn7UNCivnjovkvbPnj40NCivnjovkvbPnkKoNCivnjovkvakNCivnjovkvanpn7MNCivnjovkvanor5cNCivnjovlnaTotKQNCivnjovlrZ/osKYNCivnjovlrpfmo4sNCivnjovlrpzlvaYNCivnjovlhojpmbUNCivnjovlv7XmhYgNCivnjovmgKHku4ENCivnjovmgKHmlocNCivnjovmgKHmlrkNCivnjovmgKHnj40NCivnjovmgKHmuIUNCivnjovmgKHlqbcNCivnjovmgKHmmbQNCivnjovmgKHpm4UNCivnjovmgKHoi7kNCivnjovmib/oiJwNCivnjovmmI7ku4ENCivnjovmmI7nj4oNCivnjovmmI7lr4wNCivnjovmmIDnj6kNCivnjovmrKPkuYsNCivnjovmrKPmhacNCivnjovms5Pnv5QNCivnjovmsrvpgqYNCivnjovnjqvmoaYNCivnjovoirPmhacNCivnjovpgrXpg4ENCivnjovph5HljY4NCivnjovpm6jmuZgNCivnjovkuq3pkqcNCivnjovkv6Hku4ENCivnjovkv6Hms7ANCivnjovkv6Hlr4wNCivnjovkv6Hoo5UNCivnjovkv4rku4ENCivnjovkv4rnq4sNCivnjovkv4rlvaYNCivnjovkv4rmuIUNCivnjovkv4rmnbANCivnjovkv4rlh68NCivnjovkv4rlh68NCivnjovkv4rlr4wNCivnjovkv4rpkqYNCivnjovkv4rotoUNCivnjovkv4rpgZMNCivnjovkv4rpvpkNCivnjovkv57mlocNCivnjovlhqDkvKYNCivnjovlhqDnhLYNCivnjovliJnog5wNCivnjovlirLlh4wNCivnjovlk4Hmt4cNCivnjovlpZXlkJsNCivnjovlpZXpkqcNCivnjovlp7/ku4oNCivnjovlp7/okI0NCivnjovlqIHog70NCivnjovlrqPljb8NCivnjovlu7rlsbENCivnjovlu7rmlocNCivnjovlu7rmlL8NCivnjovlu7rlh68NCivnjovlu7rpkqYNCivnjovlu7rpm4QNCivnjovlu7rmlowNCivnjovlvabog70NCivnjovlvabmmboNCivnjovlvovkuYsNCivnjovmgJ3mjbcNCivnjovmgJ3mtIENCivnjovmlL/msrsNCivnjovmlL/mnYMNCivnjovmmK3kuroNCivnjovmmK3mt5ENCivnjovmmK3mh78NCivnjovmmJ/nmpMNCivnjovmmLHlh68NCivnjovmmLHoi7kNCivnjovmn4/mrKMNCivnjovmn4/lsKcNCivnjovmn4/pkqcNCivnjovmtL7ovakNCivnjovkuLrokqgNCivnjovnjrLoi7ENCivnjovnm4jlv4MNCivnjovnm4jmnbANCivnjovnm4jpm4UNCivnjovnpYjpkqcNCivnjovnp4vmg6ANCivnjovnuqoNCivnjovnvo7njokNCivnjovnvo7njrINCivnjovnvo7mt5ENCivnjovnvo7mg6ANCivnjovnvo7pm68NCivnjovnvo7mh78NCivnjovoh7Tmo6ANCivnjovoi6XnrZENCivnjovoi7HmlocNCivnjovoi7Hok4kNCivnjovooY3mmJMNCivnjovotJ7mh78NCivnjovpg4HmrKMNCivnjovpg4HlqbcNCivnjovpg4Hoj4ENCivnjovpg4Hnj7oNCivnjovpn6bnv5QNCivnjovkv67lhbANCivnjovlk7LogaoNCivnjovlrrbkvJ8NCivnjovlrrbnkZwNCivnjovlsZXnjq4NCivnjovmgqblpoINCivnjovmjK/lrocNCivnjovmjK/mtakNCivnjovml7bolJoNCivnjovmoYLlspENCivnjovmtbflpKkNCivnjovmtankvKYNCivnjovkvankvKYNCivnjovkvannkocNCivnjovntKDljb8NCivnjovnuq/nvo4NCivnjovojLnppqgNCivnjovkvJ/msJENCivnjovkvJ/lt54NCivnjovkvJ/lhpsNCivnjovkvJ/lvrcNCivnjovlgaXmsJENCivnjovlgaXli4sNCivnjovlm70NCivnjovlm73lvaYNCivnjovlm73pmoYNCivnjovlm73pvpkNCivnjovmiafkv6ENCivnjovln7nmoaYNCivnjovlqYnnkZwNCivnjovltIfmmI4NCivnjovmmIbpvpkNCivnjovlvanpnJ4NCivnjovmg4fmhacNCivnjovlkK/lrpcNCivnjovlkK/mqLUNCivnjovmlY/otJ4NCivnjovmlY/pk6gNCivnjovmmajmmZQNCivnjovmooXlhbANCivnjovmt7PmhacNCivnjovmuIXpuL8NCivnjovmt5HmgKENCivnjovmt5HlhqANCivnjovmt5HnnIkNCivnjovmt5HlqJ8NCivnjovmt5HlqpsNCivnjovmt5Hpm68NCivnjovmt5HmhacNCivnjovmt5Hpn7UNCivnjovlh4DojrkNCivnjovnpaXlrocNCivnjovnpaXpnJYNCivnjovnu43nnJ8NCivnjovojonmsbYNCivnjovojonpm68NCivnjovpm6rlpoINCivnjovmnbDnq4sNCivnjovlh6/lvJgNCivnjovlh6/mgKENCivnjovlh6/okoINCivnjovog5zlvJgNCivnjovog5zpm4QNCivnjovljZrmlocNCivnjovljZrkv64NCivnjovlsKflvJgNCivnjovlqbfku6oNCivnjovlr4zmmIwNCivnjovlpI3ovokNCivnjovmg6DlkJsNCivnjovmg6DnjrINCivnjovmg6DmlY8NCivnjovmg6DmhacNCivnjovmlabmraMNCivnjovmmbTlp78NCivnjovmma/lhYMNCivnjovmma/ms4kNCivnjovmmbrlvJgNCivnjovmmbrnq4sNCivnjovmmbrnm4oNCivnjovmmbrpuKMNCivnjovmmbrpvpkNCivnjovmnJ3msLgNCivnjovmnJ3plK4NCivnjovpkqbluJ0NCivnjovmuZjkupENCivnjovnkKoNCivnjovnkKbmnpoNCivnjovnmpPmraMNCivnjovntKvpm68NCivnjovnv5TlroENCivnjovoiJLnkZwNCivnjovoiJznlJ8NCivnjovoj4HlhbANCivnjovlko/mhacNCivnjovotLXpvpkNCivnjovpgLjkv64NCivnjovov5vpuL8NCivnjovpl7Xpn6YNCivnjovpm4XkvLYNCivnjovpm4Xlp78NCivnjovpm4XotJ4NCivnjovpm4Xmg6ANCivnjovpm4Xpm68NCivnjovpm4Xku6oNCivnjovpm4XmhacNCivnjovpm68NCivnjovkupHnlJ8NCivnjovpobrpuL8NCivnjovli6TlloQNCivnjovmhI/mg6ANCivnjovmhYjluoYNCivnjovniLHlmIkNCivnjovmlaznv5QNCivnjovmlrDmhacNCivnjovmpoblr4wNCivnjovmr5Poj4ENCivnjovmr5PnhYcNCivnjovnhaflhbQNCivnjovnkZ7lkJ8NCivnjovnkZ7ng70NCivnjovnkZ7kupENCivnjovnkZ7popANCivnjovnkZ7oipcNCivnjovnm5/ku4ENCivnjovmo7HpkqcNCivnjovlnKMNCivnjovlnKPlsKQNCivnjovlnKPmt7MNCivnjovlnKPmo4sNCivnjovlnKPnu7QNCivnjovlnKPnjq4NCivnjovoo5XmraMNCivnjovoo5XmmboNCivnjovor5fpg4ENCivnjovor5flqbcNCivnjovor5fpm4UNCivnjovor5fppqgNCivnjovpgZPku4ENCivnjovpkpznv5QNCivnjovpnZbpm68NCivnjovpvI7lhYENCivnjovlmInlkJsNCivnjovlmInpg4ENCivnjovlmInnkKoNCivnjovlmInlhpwNCivnjovlmInmhacNCivnjovlmInlhbQNCivnjovlmInpvoQNCivnjovlvbDmh4sNCivnjovojaPlj5ENCivnjovmsYnnpaUNCivnjovnnb/lkJsNCivnjovnoZXluoYNCivnjovnpo/npaUNCivnjovnu7TlpoINCivnjovnu7Tpm68NCivnjovnu7Tngb8NCivnjovnv6DljY4NCivnjovoi43pvpkNCivnjovosarmnbANCivnjovpk63mooUNCivnjovpk63puL8NCivnjovlh6TlrpwNCivnjovku6rpopYNCivnjovlvrfnmpMNCivnjovluobloIINCivnjovmhaflkJsNCivnjovmhafoi7ENCivnjovmhaflh68NCivnjovmhafpm68NCivnjovmhafpnZkNCivnjovmoIfpkqYNCivnjovnkb7nkZwNCivnjovovonpk60NCivnjovlhJLpmoYNCivnjovlrqrnm58NCivnjovmmZPpn7MNCivnjovmmZPpm68NCivnjovmmZPnjq4NCivnjovnh5XlvLoNCivnjovlhbTpgqYNCivnjovolZnlrrkNCivnjovplKHnpoQNCivnjovplKbmhacNCivnjovpnZnmgKENCivnjovpnZnnkKoNCivnjovpnZnmhacNCivnjovniLXmmpANCivnjovoh4bpk4MNCivnjovoloflqpsNCivnjovosKbnu7QNCivnjovpuL/lv5cNCivnjovpuL/pkqcNCivnjovnpLzosKYNCivnjovlrqDmg6ANCivnjovngJrln7oNCivnjovnkLzkvakNCivnjovnkLznkbYNCivnjovnu5jlspoNCivnjovor4Hpm4QNCivnjovpn7Xmt5ENCivnjovpuY8NCivnjovpupLpkqcNCivnjovkuL3oiqwNCivnjovkuL3mt5ENCivnjovkuL3nkKYNCivnjovkuL3pm68NCivnjovpupPmlq8NCivnjovlrp3pvpkNCivnjovnu6flsKcNCivnjovogIDmmZYNCivnjovogIDluoYNCivnjovogIDpk44NCivnjovpkp/pk60NCivnjovppqjmlY8NCivnjovppqjoi7kNCivnjovpvoTmopMNCivnjovkv6rpopYNCivnjovmqLHlqJ8NCivnjovot4PpnJYNCivnjovmmL7ljYkNCivnjovoiorpm68NCivnjovlp7Xpm68NCivnjovmtZ/nvo4NCivnjovnkIflp78NCivnjovnv4rokKQNCivnjovmo6jlvrcNCivnjovnkK7njq4NCivnjovnkKHpm68NCivnjovlq4bmo7sNCivnjovnjq7pk4MNCivnjovnrbHlqbcNCivnjovnrbHokLENCivnjovpkrDmrKMNCivnjovpkrDmpI0NCivnjovok4Hku6oNCivnjovolo/pm68NCivnjovlrL/mt5ENCivkuJbmvZPpnZkNCivkuJjnnJ/nu64NCivlhonlhYbnj40NCivljIXlv5fmlocNCivljIXlrqvnu7QNCivlj6TkuIDnnJ8NCivlj6TmnIjlqKUNCivlj6Tnjonlh6QNCivlj6Tnp4Dpk4MNCivlj6TkvannjokNCivlj6Tmib/lvJgNCivlj6TmmI7mmZ8NCivlj6Tkv4rnurINCivlj6Toi7HlsbENCivlj6TmoYLoj4oNCivlj6Tmg5/pk60NCivlj6TojonpnJwNCivlj6TmmbrkvJ8NCivlj6TkupHku4ENCivlj6Tor5fku6oNCivlj6TlrabmtrUNCivlj6Tkv7bnu64NCivlj7jpobrlrokNCivlj7LlhYjpuL8NCivlj7LmmI7ljp8NCivlj7Llm73npo8NCivlj7LlnKPpuL8NCivlj7Lmm5zlvbANCivlt6blrpflhYMNCivlt6bok4wNCivnlJjmsLjoo5UNCivnlJjlrZ/pvpkNCivnlJjmlL/lvJgNCivnlJjmg6DljY4NCivnlJjpnIjpnJYNCivnlLDkuJbotKQNCivnlLDlhYbnkKoNCivnlLDmspDmgakNCivnlLDkvanngY8NCivnlLDmgKENCivnlLDoirPojLkNCivnlLDoi7Hlv5cNCivnlLDkvankv4MNCivnlLDmt5HlkJsNCivnlLDpkqbmlocNCivnlLDlmInnjrINCivnlLDmmZPpkqcNCivnlLDnkqfoj4ANCivnlLPlv5fmlowNCivnlLPlr4zpkasNCivnmb3lpKflsLkNCivnmb3lhajmiJANCivnmb3lspHmgKENCivnmb3kvbPmuJ0NCivnmb3lrpzpk64NCivnmb3mrKPmnb4NCivnmb3njrLmhYgNCivnmb3mjK/mupANCivnmb3ogL/ooYwNCivnmb3mt5HnkZwNCivnmb3llpzmlocNCivnmb3oiJzlhYMNCivnmb3nhYzpupINCivnmb3ojaPkv64NCivnmb3pnZnlpoINCivnmb3kuL3lqJwNCivnn7PkuYPlpoINCivnn7PkuJblkI0NCivnn7Pnjonlh6QNCivnn7Pml63nlJ8NCivnn7PogrLnjp8NCivnn7PkvbPok4kNCivnn7Plrpfku4ENCivnn7PmmI7lkagNCivnn7PoirPnj4oNCivnn7Pnvo7njrINCivnn7Pls7vlubMNCivnn7Pnuq/nu64NCivnn7PlvanmhacNCivnn7PmnbDlrocNCivnn7PmnJ3lrokNCivnn7Ppm4Xmg6ANCivnn7PluoblkowNCivnn7PplKboiKoNCivnn7PppqXnkYQNCivnn7Pnjq7pnZkNCivkvI3kuJbmiawNCivkvI3np4Dok4kNCivkvI3lu7rmlocNCivkvI3lrrbosIoNCivkvI3lgaXpuY8NCivkvI3noqfnjrINCivku7vmiY3kv4oNCivku7vlkJvmlY8NCivku7vkv4rlhJINCivku7vnuq/mhacNCivku7vmlrDlhbANCivku7vnrbHmuIUNCivljbHmmI7lurcNCivlkJHopb/pmLMNCivlkJHlvrflrrkNCivlronlv5fkvJ8NCivmiJDkuLnnjrINCivmm7LmmIzpmoYNCivmnLHkuZnnnJ8NCivmnLHlv4PmgKENCivmnLHmlofnoqcNCivmnLHkuJbpkqcNCivmnLHmraPmlocNCivmnLHnjonmsbYNCivmnLHkuqbkuLkNCivmnLHnmb7mmZ8NCivmnLHlpo3lpoINCivmnLHluIzmjK8NCivmnLHlv5fmtIsNCivmnLHmspvmgKENCivmnLHogrLkvZENCivmnLHogrLojrkNCivmnLHkvbPnkKoNCivmnLHlrpfolJoNCivmnLHlv7Xoi7ENCivmnLHmgKHoh7sNCivmnLHkuJzlupQNCivmnLHnp4nmhacNCivmnLHpgrHmmI4NCivmnLHkv4rnpaUNCivmnLHkv4rpvpkNCivmnLHlpY7lt54NCivmnLHlu7rms7ANCivmnLHlvablhJINCivmnLHmlL/lk7INCivmnLHmn4/oi40NCivmnLHnj43mhacNCivmnLHnp4vmhacNCivmnLHoi6XmooUNCivmnLHpg4Hluq0NCivmnLHljp/lro8NCivmnLHlrrbmraMNCivmnLHlrrbmrKMNCivmnLHlrrbmhacNCivmnLHlrrnnu4MNCivmnLHls7DosIoNCivmnLHml7blvaYNCivmnLHkuabotKQNCivmnLHmrrflu7cNCivmnLHkvanku6oNCivmnLHnpZDlkYgNCivmnLHnuq/ojrkNCivmnLHkvJ/mnbANCivmnLHlgaXor5oNCivmnLHln7nokLENCivmnLHlurfpk60NCivmnLHmlY/pgZMNCivmnLHmt5Hmg6ANCivmnLHpmYjlkK/mupANCivmnLHlr5PnkIYNCivmnLHmnJ3pup8NCivmnLHlko/ogZQNCivmnLHpm4Xpk4MNCivmnLHll6PoiqwNCivmnLHnkZ7li4cNCivmnLHovr7mmI4NCivmnLHojaPlro8NCivmnLHnpo/lsbENCivmnLHlh6TolocNCivmnLHmhafnnJ8NCivmnLHovonogIANCivmnLHmmZPmmbQNCivmnLHpnZnmlocNCivmnLHnkoflsLkNCivmnLHkuL3lqbcNCivmnLHoiq7lrpwNCivmnLHnkKzok4ENCivmrKHlhbDoi7ENCivmsZ/kuK3lgaUNCivmsZ/lpKnmjogNCivmsZ/mlofmnb4NCivmsZ/mlofnkLwNCivmsZ/kuJbljY4NCivmsZ/mraPmnbANCivmsZ/njonljYkNCivmsZ/nq4vls7ANCivmsZ/lkInnpaUNCivmsZ/miJDmlowNCivmsZ/lkYjpmLMNCivmsZ/lv5flro8NCivmsZ/lv5fpmoYNCivmsZ/np4DnjrINCivmsZ/ogrLpnIYNCivmsZ/kvbPoirMNCivmsZ/kvbPnuq8NCivmsZ/kvbPpnJYNCivmsZ/kvannjrINCivmsZ/kvanokKYNCivmsZ/ljY/li4cNCivmsZ/lrZ/oip0NCivmsZ/lrZ/ms70NCivmsZ/lrpflk7INCivmsZ/lrpzoirMNCivmsZ/lrpzmoaYNCivmsZ/lsqnovr4NCivmsZ/lv6Dov5wNCivmsZ/mgKHokLENCivmsZ/mgKHnppsNCivmsZ/mmIzpuL8NCivmsZ/mmI7mnb4NCivmsZ/mmI7kuaYNCivmsZ/mmI7nkosNCivmsZ/mmI7oiboNCivmsZ/kuJzmh4sNCivmsZ/mrKPlrrkNCivmsZ/njqnokKkNCivmsZ/oip3mlY8NCivmsZ/plb/lr78NCivmsZ/kv6HkuJwNCivmsZ/kv4rmmI4NCivmsZ/kv4rkur8NCivmsZ/kv4rlhbQNCivmsZ/lk4Hku6oNCivmsZ/lqIHlvrcNCivmsZ/lu7rpk60NCivmsZ/lvabovokNCivmsZ/mgawNCivmsZ/mlL/lhJINCivmsZ/mmK3otKQNCivmsZ/mn4/oi4cNCivmsZ/njrLmhacNCivmsZ/nuqrmmI4NCivmsZ/nvo7mhacNCivmsZ/oi7Hkv6ENCivmsZ/ooY3pvpkNCivmsZ/po47ov5wNCivmsZ/lrrbpk60NCivmsZ/mjK/lrocNCivmsZ/kuabojrkNCivmsZ/kvanlrpkNCivmsZ/nuq/njqsNCivmsZ/lgaXmiJANCivmsZ/lm73luoYNCivmsZ/lr4XnlKsNCivmsZ/lkK/ku7INCivmsZ/mnaHlnYcNCivmsZ/mt5HotJ4NCivmsZ/nm5vpvpkNCivmsZ/lh6/mtIENCivmsZ/mg6DljY4NCivmsZ/mmbrnu7QNCivmsZ/pgLjlrokNCivmsZ/pm4XmlocNCivmsZ/pm4Xmg6ANCivmsZ/kvKDmsZ8NCivmsZ/nkZ7npaUNCivmsZ/oo5Xlm70NCivmsZ/lmInkvKYNCivmsZ/mppXmqLENCivmsZ/nv6DoirMNCivmsZ/lrr3mhYgNCivmsZ/mhafoirMNCivmsZ/mhZXlsY8NCivmsZ/lv4bpm68NCivmsZ/popbmmI4NCivmsZ/plKbovokNCivmsZ/olb4NCivmsZ/kuLDoia8NCivmsZ/kuL3lqJ8NCivmsZ/liq3kvKYNCivmsZ/lqp4NCivmsZ/mn73nmocNCivmsaDms7Dlro8NCivniZ/mmJUNCivoib7pnZLok4kNCivkvZXlpKfmlrANCivkvZXku4HnlLANCivkvZXlpKnmgakNCivkvZXmlofmlocNCivkvZXmlofokLENCivkvZXkuJbpm4QNCivkvZXmsLjnkLMNCivkvZXnjonmtIENCivkvZXkupjlvawNCivkvZXlhYnmo4INCivkvZXml63lubMNCivkvZXlkJvokI0NCivkvZXlv5fmtakNCivkvZXmspvnhpkNCivkvZXogrLmnbANCivkvZXkuqvok4kNCivkvZXkvbPljZcNCivkvZXkvbPnnJ8NCivkvZXkvbPono0NCivkvZXkvanoip0NCivkvZXkvannuq8NCivkvZXlhbbms70NCivkvZXlp5fok4kNCivkvZXlrZ/otKQNCivkvZXlraPnp6YNCivkvZXlrpflvawNCivkvZXlrpfnhrkNCivkvZXlrpfnpqcNCivkvZXlrpzlgKkNCivkvZXlrpznkocNCivkvZXlsrPnj4gNCivkvZXmgKHlkJsNCivkvZXmib/ku7INCivkvZXmmJPlsZUNCivkvZXmmI7lrpcNCivkvZXmmI7kuaYNCivkvZXmmI7popYNCivkvZXljYflhJINCivkvZXmnb7nkbYNCivkvZXmrKPovakNCivkvZXnp4nmrKMNCivkvZXoirfnkYQNCivkvZXpm6jpm68NCivkvZXkv6HlrpcNCivkvZXkv4rlu7cNCivkvZXkv4rovr4NCivkvZXkv4rotKQNCivkvZXlhqDpnJYNCivkvZXlqIHlvrcNCivkvZXlu7rkuZANCivkvZXlvabpqbkNCivkvZXmgJ3popYNCivkvZXmlL/nv7ANCivkvZXmmK3otKQNCivkvZXngrPotKQNCivkvZXnp4vokLENCivkvZXnvo7njrINCivkvZXoi6XnkZwNCivkvZXpppnlj7YNCivkvZXlrrboj4ENCivkvZXls7vmnbANCivkvZXmjK/nu7QNCivkvZXmtZrpk60NCivkvZXntKDlkJsNCivkvZXlgaXnu7QNCivkvZXlm73mmZ8NCivkvZXltIfnu7QNCivkvZXmlY/oj4ENCivkvZXmuIXpvpkNCivkvZXmt5HlqbcNCivkvZXmtrUNCivkvZXog5zlkIgNCivkvZXmg6DlkJsNCivkvZXmg6DpkrANCivkvZXoiJLlspoNCivkvZXpgLjnhLYNCivkvZXpm4XnkKoNCivkvZXmhI/ojrkNCivkvZXnkZ7nvo4NCivkvZXokLHnkocNCivkvZXlmInlsZUNCivkvZXojaPmlocNCivkvZXnu7TogJUNCivkvZXpk63lro8NCivkvZXluoblhbQNCivkvZXmhafku6oNCivkvZXlrabljpoNCivkvZXmmZPnm4gNCivkvZXnh5XlsY8NCivkvZXplKbpopgNCivkvZXpnZnku6oNCivkvZXnu4cNCivkvZXkuL3lkJsNCivkvZXml7vpnJwNCivkvZXnv4rnu64NCivkvZnlrZDpk60NCivkvZnlv4PlhpwNCivkvZnmlofoo5UNCivkvZnlvJjkvJ8NCivkvZnlkInnpaUNCivkvZnkvLYNCivkvZnlv5fpvpkNCivkvZnov4UNCivkvZnkvbPpn7MNCivkvZnkvbPlhbQNCivkvZnkvanlqJ8NCivkvZnlnaroirMNCivkvZnlrZ/pnI8NCivkvZnlrpflhJINCivkvZnlrpvlhJINCivkvZnlv6Dnga8NCivkvZnmmIznv7ANCivkvZnmmI7lqJ8NCivkvZnmmI7ms70NCivkvZnkuJzmmZMNCivkvZnms5XmmIwNCivkvZnph5HlhbgNCivkvZnkv6HkvJ8NCivkvZnkv4rmuIoNCivkvZnkv4rlhJINCivkvZnlirLmr4UNCivkvZnluJ3luoYNCivkvZnlvabpnJYNCivkvZnmlL/pmoYNCivkvZnmmJ/mn5QNCivkvZnnm4jplIsNCivkvZnoi6XluIYNCivkvZnlh4zmmIwNCivkvZnlrrbojrkNCivkvZnms7DnlLcNCivkvZnntKDlhbANCivkvZnlm73lrokNCivkvZnlqYnokI0NCivkvZnmmajljY4NCivkvZnnm5vpkqYNCivkvZnmg6DmlocNCivkvZnmmbrmnbANCivkvZnpm4Xmt5ENCivkvZnmhYjlrrQNCivkvZnnkZ7okI0NCivkvZnlmInls7ANCivkvZnnpo/mtakNCivkvZnpvZDlqIENCivkvZnlrqrlrpcNCivkvZnosJANCivkvZnosKLovokNCivkvZnkuL3nkLQNCivkvZnnkKznkZwNCivliKnnp4DlhbANCivliKnlvrflvKYNCivlkLTkuYPlhYMNCivlkLTljYPmhacNCivlkLTlpKfnu7QNCivlkLTlrZDosaoNCivlkLTkuK3lro8NCivlkLTku4HkvZENCivlkLTku4HotLUNCivlkLTlhYPlubMNCivlkLTlhYPlq4gNCivlkLTlsJHpkqcNCivlkLTlv4Pmg6ANCivlkLTmlofnjokNCivlkLTmlofmgKENCivlkLTmlofnm4oNCivlkLTmlofmnbANCivlkLTmloflj5ENCivlkLTmlofpk4MNCivlkLTmlofmr4UNCivlkLTmlofmlowNCivlkLTngavlsbENCivlkLTkuJbkvJ8NCivlkLTkuJbovr4NCivlkLTku5XlvLoNCivlkLTku57kuIANCivlkLTlubPlkowNCivlkLTlv4Xog5wNCivlkLTmraPlpYcNCivlkLTmraPljY4NCivlkLTmsLjmmIwNCivlkLTmsLjoo5UNCivlkLTnjonlkJ8NCivlkLTnjonojLkNCivlkLTnjonmma8NCivlkLTnjonok4kNCivlkLTnq4vmsJENCivlkLTnq4vli6QNCivlkLTkvIroi7kNCivlkLTku7Lms4INCivlkLTlhYbmlocNCivlkLTlkInpvpkNCivlkLTlpoLmpaYNCivlkLTlronpgqYNCivlkLTml63ms7ANCivlkLToh7Pku4ENCivlkLTooYzkuK0NCivlkLTkvLbkuL0NCivlkLTlkJvogrINCivlkLTlppnkvKYNCivlkLTlro/ku4ENCivlkLTlro/ln7oNCivlkLTluIznpZYNCivlkLTlv5flro8NCivlkLTlv5fmgZINCivlkLTlv5fkvJ8NCivlkLTlv5fmsYkNCivlkLTlv5fpvpkNCivlkLTmnY/ml4sNCivlkLTmspvmmYMNCivlkLTmsbbmsbYNCivlkLTnp4DnjrINCivlkLTnp4DnurkNCivlkLTnp4DpuYMNCivlkLTogrLlrpcNCivlkLTogrLnoZUNCivlkLTogrLpnJYNCivlkLTkuprmrKMNCivlkLTkvp3lpq4NCivlkLTkvp3ok5MNCivlkLTkvbPlkowNCivlkLTkvbPoirMNCivlkLTkvbPljZcNCivlkLTkvbPnjrINCivlkLTkvbPnjrINCivlkLTkvbPlgKkNCivlkLTkvbPlrrkNCivlkLTkvbPnnJ8NCivlkLTkvbPmg6ANCivlkLTkvbPok4kNCivlkLTkvbPmhqwNCivlkLTkvbPmoaYNCivlkLTkvbPpopYNCivlkLTkvbPolZkNCivlkLTkvbPpnZkNCivlkLTkvbPpuL8NCivlkLTkvanlkJsNCivlkLTkvanoirMNCivlkLTkvanln44NCivlkLTkvannj4oNCivlkLTkvannjrINCivlkLTkvanlqKUNCivlkLTkvannuq8NCivlkLTkvanok4kNCivlkLTkvanlhJINCivlkLTkvanosJUNCivlkLTkvanok4ENCivlkLTkvpHluq0NCivlkLTlhbbpnJYNCivlkLTlh73ok4ENCivlkLTlj5TplYcNCivlkLTlnaTnpZANCivlkLTlnaTpuL8NCivlkLTlpYflk7INCivlkLTlpYfpvpkNCivlkLTlrZ/lrpcNCivlkLTlrZ/oiqwNCivlkLTlrZ/otJ4NCivlkLTlrZ/lqJ8NCivlkLTlrZ/ojLkNCivlkLTlrZ/ok4kNCivlkLTlrZ/lrqoNCivlkLTlrZ/plKENCivlkLTlrZ/ojZ4NCivlkLTlraPnkb4NCivlkLTlrpflsrENCivlkLTlrpfnpYgNCivlkLTlrpfmoZMNCivlkLTlrpfpmoYNCivlkLTlrpflhJINCivlkLTlrpflrqoNCivlkLTlrpfnv7ANCivlkLTlrpflhbQNCivlkLTlrpfpvpkNCivlkLTlrprnloYNCivlkLTlrpzoirMNCivlkLTlrpzotJ4NCivlkLTlrpznpZANCivlkLTlrpznqYYNCivlkLTlrpzlq5QNCivlkLTlrpvmgKENCivlkLTlrpvokKYNCivlkLTlsJrlgI0NCivlkLTlsJrlhJINCivlkLTlhojlhJINCivlkLTlsrHpnJYNCivlkLTlsrPmoZANCivlkLTlubjmnp0NCivlkLTlubjnnJ8NCivlkLTlu7bmmYMNCivlkLTlv6DmlL8NCivlkLTlv6DpnJYNCivlkLTmgKHlkJsNCivlkLTmgKHnj4oNCivlkLTmgKHokI0NCivlkLTmgKHluoYNCivlkLTmgKHojrkNCivlkLTmgKHlrqoNCivlkLTmgKHpnZkNCivlkLTmgKENCivlkLTmib/lk7INCivlkLTmib/nkosNCivlkLTmi5sNCivlkLTmmJPpgIoNCivlkLTmmIzluq0NCivlkLTmmIYNCivlkLTmmIbnkosNCivlkLTmmI4NCivlkLTmmI7lv6ANCivlkLTmmI7oirMNCivlkLTmmI7nj40NCivlkLTmmI7lk7INCivlkLTmmI7mga0NCivlkLTmmI7ovakNCivlkLTmmI7ovr4NCivlkLTmmI7nkosNCivlkLTmmI7li4sNCivlkLTmmI7mmZQNCivlkLTmmI7pvpkNCivlkLTmmI7popwNCivlkLTmmJXlp78NCivlkLTljYfmoaUNCivlkLTkuJzlkowNCivlkLTkuJzogL8NCivlkLTkuJzpnJYNCivlkLTmnb7mspsNCivlkLTmrKPkvakNCivlkLTmrKPmgKENCivlkLTmrKPkvKYNCivlkLTmrKPnoZUNCivlkLTmrKPlhJINCivlkLTmrKPpuL8NCivlkLTms5PnjrMNCivlkLTmsrvoi7ENCivlkLTnjqvlp5cNCivlkLTnm7TogJUNCivlkLTnp4nkvKYNCivlkLTnp4nli4sNCivlkLTnp4npqo8NCivlkLToirPpnZINCivlkLToirPnkZwNCivlkLToip3nuqwNCivlkLTph4foirMNCivlkLTph5HnjokNCivlkLTph5HljoYNCivlkLTplb/mn48NCivlkLTpm6jlk7INCivlkLTpnZLogrINCivlkLTpnZLls7ANCivlkLTpnZLnjq8NCivlkLTkuq3osIoNCivlkLTkv6HlubgNCivlkLTkv6Hlrr0NCivlkLTkv6HovokNCivlkLTkvq/nkosNCivlkLTkv4rlro8NCivlkLTkv4rlpYcNCivlkLTkv4rmnbANCivlkLTkv4rmnbANCivlkLTkv4rovr4NCivlkLTkv4rku6oNCivlkLTkv4rlvrcNCivlkLTkv4rmr4UNCivlkLTkv4rnuqwNCivlkLTkv4rotKQNCivlkLTkv4rplIsNCivlkLTkv4rosJoNCivlkLTkv4rnnb8NCivlkLTkv57ojrkNCivlkLTlhqDnvqQNCivlkLTlhqDotKQNCivlkLTlhqDnv5oNCivlkLTlirLpvpkNCivlkLTlk4Hok4kNCivlkLTlpZXmiJANCivlkLTlpZXnvrINCivlkLTlp7/ku6oNCivlkLTlp7/moaYNCivlkLTlqIHoirMNCivlkLTlrqPplIsNCivlkLTlu7rnlJ8NCivlkLTlu7rnlLcNCivlkLTlu7roip0NCivlkLTlu7rovr4NCivlkLTlu7rlvrcNCivlkLTlu7rotKQNCivlkLTlu7rli4sNCivlkLTlu7rml7sNCivlkLTlvabluoYNCivlkLTlvovpk60NCivlkLTmgJ3okLENCivlkLTmgJ3ojrkNCivlkLTmgJ3popYNCivlkLTmlL8NCivlkLTmlL/ml7oNCivlkLTmlL/ljp8NCivlkLTmlL/lvawNCivlkLTmlL/lvrcNCivlkLTmlL/li4sNCivlkLTmlL/popYNCivlkLTmlL/pnJYNCivlkLTmmKXnlJ8NCivlkLTmmKXnvJMNCivlkLTmmK3ok4kNCivlkLTmmK3mr4UNCivlkLTmmK3pvpkNCivlkLTmmLHlro8NCivlkLTmn4TlvrcNCivlkLTmn4/pnZINCivlkLTmn4/ku6oNCivlkLTmn4/mr4UNCivlkLTmn4/popYNCivlkLTngqvlrpcNCivlkLTngrPls6MNCivlkLTnjrLlqpsNCivlkLTnmofmrKMNCivlkLTnm4jmtIENCivlkLTnpYnpvpkNCivlkLTnp4vnvo4NCivlkLTnp4vmhacNCivlkLTnuqrlkJsNCivlkLTnvo7lpq4NCivlkLTnvo7njrINCivlkLTnvo7mg6ANCivlkLTnvo7npa8NCivlkLTnvo7mhacNCivlkLTnvo7okKQNCivlkLTnvr/llqcNCivlkLToh7Tpk60NCivlkLToi6XljY4NCivlkLToi7Hlro8NCivlkLToi7HpuL8NCivlkLTotJ7lrpwNCivlkLTotJ7ojrkNCivlkLTpg4HoirMNCivlkLTph43mr4UNCivlkLTpo57pvpkNCivlkLTlgKkNCivlkLTljp/lrocNCivlkLTlk7Lpm68NCivlkLTlk7LmnYMNCivlkLTlrrbmmI4NCivlkLTlrrbnkKoNCivlkLTlrrbojaMNCivlkLTlrrbosaoNCivlkLTlrrbmhacNCivlkLTlrrnojrkNCivlkLTluq3ni7ENCivlkLTmjK/miJANCivlkLTmjK/osaoNCivlkLTmjLrplIsNCivlkLTmmY/lubMNCivlkLTkuabojaMNCivlkLTmoYLnrpANCivlkLTms7DmmIwNCivlkLTmtbfoiqwNCivlkLTkvanlkJsNCivlkLTkvanmhYgNCivlkLTkvannpa8NCivlkLTnm4roirMNCivlkLTntKDoiqwNCivlkLTnuq/mrKMNCivlkLTovanovakNCivlkLTkvJ/kvKYNCivlkLTkvJ/or5oNCivlkLTlgaXmsJENCivlkLTlgaXpkasNCivlkLTlm73kvJ8NCivlkLTlm73ni64NCivlkLTlm73nhpkNCivlkLTlm73pk60NCivlkLTlnZrnjq4NCivlkLTln7notKQNCivlkLTlqYnlqbcNCivlkLTlqYnmrYYNCivlkLTltIfpk60NCivlkLTlvanpgpENCivlkLTmgqANCivlkLTlkK/miawNCivlkLTlkK/mlowNCivlkLTmlY/nnJ8NCivlkLTmlY/pkpwNCivlkLTmopPpgKINCivlkLTmt7vplIsNCivlkLTmt5HlpoINCivlkLTmt5HoiqwNCivlkLTmt5Hljb8NCivlkLTmt5HmlY8NCivlkLTmt5HljY4NCivlkLTmt5Hlh6QNCivlkLTmtrXlrpwNCivlkLTnpaXnu7QNCivlkLTnu43ljY4NCivlkLTojonlqbcNCivlkLTpm6rlpq4NCivlkLTnq5/oirMNCivlkLTlh6/pm68NCivlkLTog5znpboNCivlkLTkuZTmo64NCivlkLTlpI3lhbQNCivlkLTmg6DlkJsNCivlkLTmg6DlvakNCivlkLTmg6Dpm68NCivlkLTmlq/nho8NCivlkLTmmbrkuJwNCivlkLTmmbrosaoNCivlkLTmoIvpmoYNCivlkLTnioDngbUNCivlkLTlloTpk60NCivlkLToj4Hoj4ENCivlkLTlko/lrrgNCivlkLTpgLjmsJENCivlkLTpgLjnvqQNCivlkLTpkqflqbcNCivlkLTpm4XlnaQNCivlkLTpm4Xpg4ENCivlkLTpm4XlspoNCivlkLTpm4XokI0NCivlkLTpm4Xpm68NCivlkLTpm4Xnu64NCivlkLTkupHpqqUNCivlkLTlnIbmnJcNCivlkLTmlaznkKoNCivlkLTmr5PnnJ8NCivlkLTmupDnq6ANCivlkLTnkZ4NCivlkLTnkZ7lk7INCivlkLTnkZ7pkqYNCivlkLTnkZ7luoYNCivlkLTnqJrpnIYNCivlkLTlnKPlqIENCivlkLTor5flqbcNCivlkLTor5rmmIwNCivlkLTpvI7kvJ8NCivlkLTlmInkv6ENCivlkLTlmInlqJ8NCivlkLTlmInog5wNCivlkLTlmInojaMNCivlkLTlmInolZkNCivlkLTlroHnkYQNCivlkLTojaPms7ANCivlkLTmsYnpk60NCivlkLTnoqfkv5ANCivlkLTnpo/ph48NCivlkLTnu7TlgKkNCivlkLTnu7Too5UNCivlkLTogofohb4NCivlkLTov5zor5oNCivlkLTpk63mjK8NCivlkLTpk6jlj4sNCivlkLTlh6TlhbANCivlkLTlvrflhYMNCivlkLTluobmlocNCivlkLTmhaflkJsNCivlkLTmhafnjrINCivlkLTmhafotJ4NCivlkLTmhafmlY8NCivlkLTmhafpm68NCivlkLTmtIHnj4oNCivlkLTotZDlv6ANCivlkLTlrqrkuK0NCivlkLTlv4blsY8NCivlkLTmmZPpnZINCivlkLTmmZPnuq8NCivlkLTmmZPoj4ENCivlkLTmmZPolocNCivlkLTnh5XoiqwNCivlkLTpopbovakNCivlkLTolZnlpoINCivlkLTolZnnurkNCivlkLTpgbXlhYgNCivlkLTplKbkvbMNCivlkLTplKbplZINCivlkLTpnZnlrpwNCivlkLTpnZnmgKENCivlkLTpnZnoirMNCivlkLTpnZnojLkNCivlkLTpnZnpm68NCivlkLTpvpnlrp0NCivlkLTmgLvmiJANCivlkLTlo7DmupANCivlkLTov4gNCivlkLTpuL/mmIwNCivlkLTpuL/mo64NCivlkLTmm5zoh6MNCivlkLTkuLDlkIkNCivlkLTplYfliKkNCivlkLTnkLznjokNCivlkLTpn7XljYkNCivlkLTkuL3mmKUNCivlkLTkuL3lqbcNCivlkLTnjK7oia8NCivlkLTppqjmgKENCivlkLTmh7/lqbcNCivlkLTmmL7lrpcNCivlkLTkvbzkvbwNCivlkLTml7vlhJINCivlkLTnjqDok4kNCivlkLTmmLbokbMNCivlkLTmt6nlrokNCivlkLTnkK7mnbANCivlkLTnjq7nkLMNCivlkLTnrbHnj4gNCivlkLTnkoENCivlkLTpn6vlvrcNCivlkJXlrZDosaoNCivlkJXku4Hlm6INCivlkJXlj4vlqbcNCivlkJXmlofkuJMNCivlkJXmlofpk4MNCivlkJXkuJbosaoNCivlkJXmraPlrokNCivlkJXnjonnp4sNCivlkJXnq4vkvJ8NCivlkJXlpoLoi7ENCivlkJXoh6rovr4NCivlkJXlv5flro8NCivlkJXlv5fplIsNCivlkJXogrLoirMNCivlkJXogrLnjq4NCivlkJXkvbPlrpwNCivlkJXkvbPlrrkNCivlkJXkvbPmoaYNCivlkJXkvanlp5cNCivlkJXkvannuq8NCivlkJXlhbbpnJYNCivlkJXlp5flp5cNCivlkJXlraPoirMNCivlkJXlrpfpk60NCivlkJXlrpzoirMNCivlkJXlrpzmmY8NCivlkJXlrpzpnJYNCivlkJXlsYXli4sNCivlkJXlv6DogrINCivlkJXmgKHmhacNCivlkJXml7rpqpANCivlkJXmmI4NCivlkJXmmI7ms7ANCivlkJXmmI7pvpkNCivlkJXmnbDnuqwNCivlkJXmrKPpopYNCivlkJXoirPkv4oNCivlkJXph5HlvaYNCivlkJXplb/ppqgNCivlkJXkv53lsrgNCivlkJXkv4rku6oNCivlkJXkv5ANCivlkJXljZfnlb8NCivlkJXlqIHlvrcNCivlkJXlu7rlvaYNCivlkJXlu7rplIsNCivlkJXlvabono0NCivlkJXmlL/lvaYNCivlkJXmlL/osJUNCivlkJXmmK3ku6oNCivlkJXmn4/lro8NCivlkJXnmoflhbYNCivlkJXnp4vkupENCivlkJXnvo7mg6ANCivlkJXnvo7pvoQNCivlkJXoi7Hnjq4NCivlkJXpn6bnrrQNCivlkJXlk7LmmI4NCivlkJXluq3nu7QNCivlkJXmoLzosaoNCivlkJXnpZDlkIkNCivlkJXkvJ/pkqYNCivlkJXlm73ln7kNCivlkJXlqYnojLkNCivlkJXmooXpn7MNCivlkJXmt5Hljb8NCivlkJXmt5Hnpa8NCivlkJXnkIbpnJYNCivlkJXnu43ojaMNCivlkJXpm6rnkZwNCivlkJXmg6Doj4ENCivlkJXmmbrmnbANCivlkJXlko/nnJ8NCivlkJXpm4XnjrINCivlkJXpm4XnkKoNCivlkJXpm6/mrYYNCivlkJXmsqflsKcNCivlkJXlnKPnq6ANCivlkJXlmInlhYMNCivlkJXlmInkuLANCivlkJXnu7TnjrINCivlkJXpk63mmboNCivlkJXmhafmg6ANCivlkJXlrablkJsNCivlkJXlrabmmboNCivlkJXlrabnnb8NCivlkJXnh5XmnpcNCivlkJXplKbpoboNCivlkJXpnZnok4kNCivlkJXpuL/pup8NCivlkJXkuL3lqJ8NCivlkJXljoXkuKUNCivlkJXnv4rmsJENCivlrovlpKfovrANCivlrovkuYvmj4YNCivlrovlv4PmhacNCivlrovkuJbmlocNCivlrovnjonlqbcNCivlrovkvK/nkZwNCivlrovmspvli4cNCivlrovogrLnjq4NCivlrovkvannj4oNCivlrovlrZ/nkZsNCivlrovlubjnnJ8NCivlrovmmIzpnJYNCivlrovkuJzlqIENCivlrovnp4nokLENCivlrovkv4rmtIsNCivlrovlpZXlhJINCivlrovlu7rmrKMNCivlrovmlL/pmoYNCivlrovnprnojrkNCivlrovoh7Tov5wNCivlrovlrrbpnJYNCivlrovoiKvoh6MNCivlrovln7nlhYMNCivlrovmlY/ljY4NCivlrovkuZTnjokNCivlrovmnJ3mlowNCivlrovkupHmmI4NCivlrovlmInku4ENCivlrovnoqfnkLMNCivlrovmhafmtIENCivlrovnh5Xkv6oNCivlrovnqpwNCivlrovml7vnnJ8NCivlt6vlrZDmh78NCivlt6vmiI7mgKENCivlt6vkvannkocNCivlt6vlrpzlraYNCivlt6vmmI7nv7ANCivlt6voirfnjq4NCivlt6vlhqDosIoNCivlt6vmn4/mr4UNCivlt6vmjK/lmIkNCivlt6vmuIXmlocNCivlt6vlloTnpo8NCivlt6vlmInlhbQNCivlt6vmmZPoiqwNCivlt6vmmZ/pgLgNCivmnY7kuYPmlocNCivmnY7lo6vkuqsNCivmnY7lrZDlhYENCivmnY7lsI/oiqwNCivmnY7kuK3ku7sNCivmnY7kuK3mhacNCivmnY7ku4Hkv64NCivmnY7ku4Hlh68NCivmnY7ku4rpu5sNCivmnY7lhYPlnIMNCivmnY7lhYPoo5UNCivmnY7lj4vmt7MNCivmnY7lpKnmoaYNCivmnY7lv4Pku4ENCivmnY7lv4PlspoNCivmnY7mlocNCivmnY7mloflkIkNCivmnY7mloflv5cNCivmnY7mlofmlL8NCivmnY7mlofojokNCivmnY7mlofmg6ANCivmnY7mlofnkKYNCivmnY7mlofmhI8NCivmnY7mlofovr4NCivmnY7mlofotKQNCivmnY7mlofmlowNCivmnY7mnIjmmJ8NCivmnY7kuJblrokNCivmnY7kuJbkvJ8NCivmnY7kuJbliYANCivmnY7kuJblrr0NCivmnY7ku6XmlrANCivmnY7lj6/nq4sNCivmnY7lt6fnkLMNCivmnY7lvJjmmIoNCivmnY7mraPlhYMNCivmnY7mraPlvaYNCivmnY7mraPog5wNCivmnY7mraPosaoNCivmnY7msLjmmIwNCivmnY7msLjpkqYNCivmnY7msLjpuL8NCivmnY7njonkvakNCivmnY7njonljb8NCivmnY7njonnkLMNCivmnY7njonpk4MNCivmnY7nq4vku4ENCivmnY7nq4vlvLoNCivmnY7kuqbmmbQNCivmnY7ku7LnjoQNCivmnY7lhYkNCivmnY7lhYnnpaUNCivmnY7lhYnlgKINCivmnY7lhYbmlowNCivmnY7lkInmlY8NCivmnY7lkI3kvKYNCivmnY7lpoLnj40NCivmnY7lroflvJgNCivmnY7lrojnu7QNCivmnY7lronnkLMNCivmnY7miJDmsYkNCivmnY7mnInpkqYNCivmnY7nvr0NCivmnY7oh7Pnq6ANCivmnY7kvZDlroENCivmnY7kvK/mr4UNCivmnY7lkJvlvaYNCivmnY7lkKvku4ENCivmnY7lpo3ojrkNCivmnY7lro/mlocNCivmnY7lro/mtLINCivmnY7lu7fkvJ8NCivmnY7lv5fmiJANCivmnY7lv5fmmI4NCivmnY7lv5fls7ANCivmnY7lv5fkvJ8NCivmnY7lv5fnq6ANCivmnY7lv5fpk60NCivmnY7lv5fpuY8NCivmnY7mspvmnbANCivmnY7msarnm5sNCivmnY7np4DlubQNCivmnY7np4DnjrINCivmnY7np4Dljb8NCivmnY7np4DljY4NCivmnY7np4DomIUNCivmnY7ogrLmnp0NCivmnY7ogrLluq0NCivmnY7ogrLnvqQNCivmnY7ogrLojrkNCivmnY7ogrLono0NCivmnY7op4HmsbYNCivmnY7kuprkvKYNCivmnY7kuqzmoaYNCivmnY7kvp3nuq8NCivmnY7kvp3mgYINCivmnY7kvbPmsbYNCivmnY7kvbPmmI4NCivmnY7kvbPoirMNCivmnY7kvbPoiqwNCivmnY7kvbPnjrINCivmnY7kvbPnjrINCivmnY7kvbPnj40NCivmnY7kvbPlgKkNCivmnY7kvbPlrrYNCivmnY7kvbPmmYMNCivmnY7kvbPnnJ8NCivmnY7kvbPorq0NCivmnY7kvbPpm68NCivmnY7kvbPok4kNCivmnY7kvbPluoYNCivmnY7kvbPlhJINCivmnY7kvbPmoaYNCivmnY7kvbPpopYNCivmnY7kvbPoh7sNCivmnY7kvbPpnJYNCivmnY7kvbPpnI8NCivmnY7kvbPplK4NCivmnY7kvbPok4ENCivmnY7kvoPmtIsNCivmnY7kvankvakNCivmnY7kvanoip0NCivmnY7kvanlp78NCivmnY7kvannj4oNCivmnY7kvannjrINCivmnY7kvanlgKkNCivmnY7kvannnJ8NCivmnY7kvanpmbUNCivmnY7kvanku6oNCivmnY7kvanmmZQNCivmnY7kvanosJUNCivmnY7kvanlrKwNCivmnY7kvpHlrqwNCivmnY7lhbbmvqcNCivmnY7lh73oiqwNCivmnY7ljZPpgZMNCivmnY7lkozmmIwNCivmnY7lnaTmmI4NCivmnY7lnaTmupANCivmnY7lnaTpnJYNCivmnY7lpYflsZUNCivmnY7lpYfnv7ANCivmnY7lrZ/lnaQNCivmnY7lrZ/nj4oNCivmnY7lrZ/lk7INCivmnY7lrZ/ovakNCivmnY7lrZ/lhJINCivmnY7lrZ/popYNCivmnY7lrZ/ngb8NCivmnY7lrZ/nkoENCivmnY7lraPljY4NCivmnY7lrpflnaQNCivmnY7lrpfkvKYNCivmnY7lrpfmgakNCivmnY7lrpfkuYkNCivmnY7lrpfotKQNCivmnY7lrpflrqoNCivmnY7lrpfpopYNCivmnY7lrpfnv7ANCivmnY7lrpfpnJYNCivmnY7lrpfpuL8NCivmnY7lrprov5wNCivmnY7lrpzmmI4NCivmnY7lrpzoirMNCivmnY7lrpzmtLINCivmnY7lrpznjrINCivmnY7lrpzlk7INCivmnY7lrpzls7sNCivmnY7lrpznuq8NCivmnY7lrpzmtIENCivmnY7lrpzmoaYNCivmnY7lrpzpnJYNCivmnY7lrpzpn6kNCivmnY7lrpzlnJwNCivmnY7lrpvnjrINCivmnY7lrpvokI0NCivmnY7lrpvpnZkNCivmnY7lsJrotKQNCivmnY7lsqnmmZYNCivmnY7lsrHok4ENCivmnY7lsrPls7ANCivmnY7lsrPmoaYNCivmnY7lsrPpuL8NCivmnY7lubjlqJ8NCivmnY7lubjplK0NCivmnY7lv6DlkowNCivmnY7lv6DkuYkNCivmnY7lv6DpopYNCivmnY7lv7XokqgNCivmnY7mgKHmmIwNCivmnY7mgKHnjrINCivmnY7mgKHokLENCivmnY7mgKHlrr0NCivmnY7mgKHmhacNCivmnY7mgKHnkb4NCivmnY7mgKHpopYNCivmnY7mgKHml7sNCivmnY7mib/lrpcNCivmnY7mib/nkosNCivmnY7mib/pvpkNCivmnY7mmJPkv64NCivmnY7mmJPosJoNCivmnY7mmIzovr4NCivmnY7mmIblro8NCivmnY7mmIbovr4NCivmnY7mmIbpvpkNCivmnY7mmI7liKkNCivmnY7mmI7mgKENCivmnY7mmI7mnbANCivmnY7mmI7lvaYNCivmnY7mmI7kv64NCivmnY7mmI7lk7INCivmnY7mmI7kuaYNCivmnY7mmI7pkooNCivmnY7mmI7ovr4NCivmnY7mmI7mtIENCivmnY7mmI7li4sNCivmnY7mmI7moaYNCivmnY7mmI7osJUNCivmnY7mmI7pnJ4NCivmnY7mmI7lookNCivmnY7mmIDoh7sNCivmnY7mmIoNCivmnY7ljYfnv7ANCivmnY7kuJzlvaYNCivmnY7kuJzpmoYNCivmnY7kuJzpvpkNCivmnY7mnbDlpoINCivmnY7mnb7lrrYNCivmnY7mrKPmgKENCivmnY7mrKPmgKENCivmnY7mrKPlk7INCivmnY7mrKPovr4NCivmnY7mrKPlhJINCivmnY7mrKPpopYNCivmnY7mrKPpnJ4NCivmnY7ms5XmsYkNCivmnY7msrvlrokNCivmnY7njp/njp8NCivmnY7njqXojrkNCivmnY7np4nmnJQNCivmnY7np4nnv7ANCivmnY7oirPlnLsNCivmnY7oirPlqbcNCivmnY7oirPku6oNCivmnY7oip3nu6sNCivmnY7oirjlvaYNCivmnY7omY7ls7ANCivmnY7ph5Hms5MNCivmnY7ph5Hpk4MNCivmnY7ph5HmoaYNCivmnY7plb/mlocNCivmnY7plb/ojaMNCivmnY7plb/nuq4NCivmnY7pnZLmnb4NCivmnY7pnZLpmLMNCivmnY7pnZ7pnI8NCivmnY7kv6HmiJANCivmnY7kv6HmnbANCivmnY7kv6HlvrcNCivmnY7kv6HpopYNCivmnY7kv53ok4ENCivmnY7kv4rlro8NCivmnY7kv4rlpYcNCivmnY7kv4rmmIANCivmnY7kv4rlvaYNCivmnY7kv4rnpboNCivmnY7kv4rkur8NCivmnY7kv4rlvrcNCivmnY7kv4rmr4UNCivmnY7kv4rotKQNCivmnY7kv4rotKQNCivmnY7kv4rotKQNCivmnY7kv4rli4sNCivmnY7kv4rplJwNCivmnY7kv57mhacNCivmnY7lhqDmnIsNCivmnY7lhqDku6oNCivmnY7lhqDojrkNCivmnY7lhqDoh7sNCivmnY7li4flroENCivmnY7ljZflqIcNCivmnY7lk4HmhacNCivmnY7lpZXmnpoNCivmnY7lpY/plJANCivmnY7lp7/ku6oNCivmnY7lp7/ojrkNCivmnY7lqIHlro8NCivmnY7lqIHlvrcNCivmnY7lqIHpnJYNCivmnY7lrqPojrkNCivmnY7lu7rmsJENCivmnY7lu7rlro8NCivmnY7lu7rpgqYNCivmnY7lu7rmmI4NCivmnY7lu7rlqIENCivmnY7lu7roi4cNCivmnY7lu7rlrr0NCivmnY7lu7rotKQNCivmnY7lu7rplIsNCivmnY7lu7rmoaYNCivmnY7lu7rlhbQNCivmnY7lu7rnprINCivmnY7lvablro8NCivmnY7lvablrpwNCivmnY7lvabku6oNCivmnY7lvabojrkNCivmnY7lvablhJINCivmnY7lvabpnJYNCivmnY7lvovnjq4NCivmnY7mgJ3mgKENCivmnY7mgJ3okLENCivmnY7mgJ3ku6oNCivmnY7mgJ3ojrkNCivmnY7mgJ3osJUNCivmnY7mlL8NCivmnY7mlL/lv6ANCivmnY7mlL/lk7INCivmnY7mlL/ovr4NCivmnY7mlL/ovokNCivmnY7mlL/mmZQNCivmnY7mlL/pvpkNCivmnY7mmKXmnp0NCivmnY7mmKXnh5UNCivmnY7mmK3nvo4NCivmnY7mmK3nuqwNCivmnY7mmKDokLENCivmnY7mmLHmmKUNCivmnY7mmLHno7cNCivmnY7mn4/mnYkNCivmnY7mn4/ok4kNCivmnY7mn4/otKQNCivmnY7mn4/nkoENCivmnY7ngrPlnaQNCivmnY7nj4rnj4oNCivmnY7nlYzplIsNCivmnY7nm4jnm4gNCivmnY7nm4jmtIENCivmnY7nm4jpopYNCivmnY7np5Hms68NCivmnY7np4vmooUNCivmnY7np4vku6oNCivmnY7np4vpup8NCivmnY7nvo7njokNCivmnY7nvo7oirMNCivmnY7nvo7kvKYNCivmnY7nvo7nkZwNCivmnY7nvo7ku6oNCivmnY7nvo7ojrkNCivmnY7nvo7plJwNCivmnY7og6TnkbYNCivmnY7oh7TmhacNCivmnY7ojILlhagNCivmnY7oi7Hlv5cNCivmnY7oi7HnkZ4NCivmnY7oi7Hnjq4NCivmnY7ombnku6oNCivmnY7otJ7lrpwNCivmnY7otJ7mhacNCivmnY7ov7DnlLMNCivmnY7pg4HkvJ8NCivmnY7ph43otKQNCivmnY7pn7PmhacNCivmnY7lgKkNCivmnY7kv67pvZANCivmnY7lk7LlrokNCivmnY7lk7LnuqwNCivmnY7lrrblro8NCivmnY7lrrbnj40NCivmnY7lrrbokLENCivmnY7lrrbosaoNCivmnY7lrrbkvqwNCivmnY7lrrblhbQNCivmnY7lrrnlqbcNCivmnY7luIjlqroNCivmnY7mgqblmIkNCivmnY7mjK/mmIwNCivmnY7mjK/or5oNCivmnY7mjK/ku6oNCivmnY7mmYvosaoNCivmnY7kuabmtrUNCivmnY7moLnlmIkNCivmnY7moYPmo64NCivmnY7ms7DpnJYNCivmnY7mtanluq0NCivmnY7kvanlpoINCivmnY7kvannkLMNCivmnY7kvanlmIkNCivmnY7nm4rojaMNCivmnY7npZbnj40NCivmnY7ntKDmooUNCivmnY7nuq/mhacNCivmnY7og73ov5wNCivmnY7orq3kur8NCivmnY7lubLmmZYNCivmnY7kvJ/lkIkNCivmnY7kvJ/mgboNCivmnY7kvJ/lmIkNCivmnY7kvJ/popkNCivmnY7lgaXmupANCivmnY7lgaXpk60NCivmnY7lm73lhagNCivmnY7lm73lvLoNCivmnY7lm73ljY4NCivmnY7lm73nkZ4NCivmnY7lm73ojaMNCivmnY7lm73nu7QNCivmnY7lm73pk7YNCivmnY7lm73lhbQNCivmnY7ln7rlvJgNCivmnY7ln7nljY4NCivmnY7lqYnnnJ8NCivmnY7lqYnnkZ4NCivmnY7ltIfku4ENCivmnY7ltIfosaoNCivmnY7lurfmraMNCivmnY7lvanojrkNCivmnY7lkK/lvJgNCivmnY7lkK/msqcNCivmnY7mlY/lkIkNCivmnY7mlY/lmIkNCivmnY7mlY/pvpkNCivmnY7muIXlkJ8NCivmnY7mt5HlkJsNCivmnY7mt5HoiqwNCivmnY7mt5HotJ4NCivmnY7mt5HojLkNCivmnY7mt5Hmg6ANCivmnY7mt5HljY4NCivmnY7mt5Hok4kNCivmnY7mt5HpnZkNCivmnY7mtrXlr4wNCivmnY7npaXnkZ4NCivmnY7nu43nu64NCivmnY7nv47mr5MNCivmnY7ov57ls7ANCivmnY7pm6rokI0NCivmnY7mnbDlpoINCivmnY7lh6/moaINCivmnY7og5zpm4QNCivmnY7kuZTpk64NCivmnY7lsprnkKYNCivmnY7mg6DoiqwNCivmnY7mg6Dnj6ANCivmnY7mg6DnkLMNCivmnY7mg6Dpm68NCivmnY7mmbTpm68NCivmnY7mmbrmgKENCivmnY7mmbrlvLoNCivmnY7mmbrnu7QNCivmnY7mo64NCivmnY7muZjmoaYNCivmnY7nmpbnjrINCivmnY7lloTlkIwNCivmnY7oiJzljY4NCivmnY7lko/np4sNCivmnY7pgLjmiY0NCivmnY7pgLjnvqQNCivmnY7ov5vnpo8NCivmnY7pmobljY4NCivmnY7pm4XnjqsNCivmnY7pm4XnjrINCivmnY7pm4XmooUNCivmnY7pm4XlqbcNCivmnY7pm4Xmg6ANCivmnY7pm4Xmg6ANCivmnY7pm4XokI0NCivmnY7pm4Xpm68NCivmnY7pm4Xnh5UNCivmnY7pm6/nh5UNCivmnY7kvKDlkJsNCivmnY7mhI/pm68NCivmnY7mg7MNCivmnY7mlrDms70NCivmnY7mr5PnnJ8NCivmnY7mupANCivmnY7nkZ7mlocNCivmnY7nkZ7otJ4NCivmnY7nkZ7ljY4NCivmnY7nkZ7pqpANCivmnY7kuYnpm4QNCivmnY7lnKPnkLANCivmnY7or5fkvJ8NCivmnY7or5fmpbcNCivmnY7pgZPmnpcNCivmnY7lmIkNCivmnY7lmInmnpcNCivmnY7lmInlh4wNCivmnY7lmInovakNCivmnY7lmInljY4NCivmnY7lmInpk60NCivmnY7lmInpuL8NCivmnY7lroHoirMNCivmnY7ojaPojIINCivmnY7ojaPpqbANCivmnY7msYnnpboNCivmnY7noqflqbcNCivmnY7npo/ok4kNCivmnY7nu7Tku4ENCivmnY7nu7TkvKYNCivmnY7nu7TmoaINCivmnY7ogofmrKMNCivmnY7lv5fmmI4NCivmnY7pk63lkagNCivmnY7pk63mr5MNCivmnY7puKPlrocNCivmnY7pvZDoirMNCivmnY7lub/npYENCivmnY7lvrfmtbcNCivmnY7luoblro8NCivmnY7luobljY4NCivmnY7mhafoiqwNCivmnY7mhafnvo4NCivmnY7mhafnj6ANCivmnY7mhafku6oNCivmnY7mr4Xkv6ENCivmnY7ojrnmtIENCivmnY7otKTmt6YNCivmnY7lrabmmI4NCivmnY7lrqrmlowNCivmnY7mmZPlpq4NCivmnY7mmZPnjrINCivmnY7mmZPlspoNCivmnY7mmZPoj4ENCivmnY7mmZPmppUNCivmnY7ms73ogrINCivmnY7nh5XnjrINCivmnY7nkp/pg4ENCivmnY7nv7DpnZINCivmnY7lhbToiJwNCivmnY7olZnlpoINCivmnY7olZnoirgNCivmnY7osavlh6ENCivmnY7plKbljYcNCivmnY7plKbojrINCivmnY7pnZnlrpwNCivmnY7pnZnmgKENCivmnY7pnZnmgKENCivmnY7pnZnnvo4NCivmnY7pnZnok4kNCivmnY7pvpnnlJ8NCivmnY7pvpnpup8NCivmnY7niLXoh6MNCivmnY7ogarlsrMNCivmnY7oiIbpkasNCivmnY7puL/lv5cNCivmnY7puL/ovr4NCivmnY7mm5zlrZgNCivmnY7osKjluIYNCivmnY7nhpTpmKENCivmnY7ppqXlpoINCivmnY7nkLzoi7ENCivmnY7kuL3mnp0NCivmnY7kuL3nj6ANCivmnY7lrp3njokNCivmnY7ogIDmsJENCivmnY7ppqjmgKENCivmnY7mh7/lpoINCivmnY7mnYPlrrYNCivmnY7liq3lhpsNCivmnY7ml7vljYcNCivmnY7ml7vnjq4NCivmnY7mmLbmrKMNCivmnY7oi7nmhYgNCivmnY7mtrTmsZ0NCivmnY7loKgNCivmnY7ntZwNCivmnY7njq7nkKoNCivmnY7nrbHkupENCivmnY7pkrDpm68NCivmnY7pnZPlrrgNCivmnY7pk6Dku7sNCivmnY7lkJsNCivmnZzmlofmnbANCivmnZzmsJHmnbANCivmnZzlhajmnpcNCivmnZzlv5fotKQNCivmnZzkvbPosaoNCivmnZzlrZ/mlL8NCivmnZzlrpvosJUNCivmnZzmib/pkasNCivmnZzljYfnv7ANCivmnZzoirPmlL8NCivmnZzkv4rmr4UNCivmnZzlqIHlu7cNCivmnZzlvabpnJYNCivmnZzngrPpvpkNCivmnZznvo7mhacNCivmnZzlrrbmmIwNCivmnZzkvanor5cNCivmnZzlqYnpm68NCivmnZzmt5Hpk64NCivmnZzpmLPlnIYNCivmnZzlmInnjrINCivmnZznu7Tkv64NCivmnZznh5XljY4NCivmnZzogIDku4ENCivmspnmraPmgqYNCivmsojlo6vmnbANCivmsojku4HmnbANCivmsojmlofnpaUNCivmsojkuJbpl7UNCivmsojmraPlvrcNCivmsojnq4vku4ENCivmsojlpoLls7ANCivmsojkvZHnv7ANCivmsojlkJvnkpANCivmsojlv5flt50NCivmsojlv5fpvpkNCivmsojmsbbokI0NCivmsojogrLmmJ8NCivmsojkvp3popYNCivmsojkvbPmhacNCivmsojkvanpm68NCivmsojlnaTljYcNCivmsojlrpfluoYNCivmsojlrpzok4ENCivmsojmgKHkvLYNCivmsojmmIzmmI4NCivmsojmmI7okLENCivmsojmrKPlraYNCivmsojnp4nosIoNCivmsojoirjokKkNCivmsojkv6Hlop4NCivmsojkv4rnv5QNCivmsojlhqDlro8NCivmsojlp7/mhacNCivmsojlu7rmiJANCivmsojlu7rlvrcNCivmsojmgZLlhYkNCivmsojmmK3otKQNCivmsojmn4/lrr0NCivmsojnm4joj4ENCivmsojnvo7lqJ8NCivmsojpg4HlurcNCivmsojlk7LmoIcNCivmsojlrrbojaMNCivmsojmjK/lhbQNCivmsojnm4rmib8NCivmsojnuq/lpoINCivmsojlm73pk6gNCivmsojmmajpkp8NCivmsojmt5HljY4NCivmsojmg6Doj4ENCivmsojoiJLnkLMNCivmsojpm4Xmg6ANCivmsojmmZbluq0NCivmsojnkZ7pkqYNCivmsojlnKPmmIYNCivmsojpgZPorroNCivmsojlmInolZkNCivmsojnu7Tmr5MNCivmsojlvrfljpoNCivmsojlrabmiJANCivmsojolZnlkJsNCivmsojpuL/mtLINCivmsojlpo/nnJ8NCivmsojnrbHkupENCivmsarlpKfkvKYNCivmsarlt6fnjrINCivmsarnmb7ovakNCivmsarnp4Dnh5UNCivmsarlrZ/mtrUNCivmsarmgKHljY4NCivmsarpnZLok4kNCivmsarlhqDlro8NCivmsarnvo7njokNCivmsarlrrbojrkNCivmsarlkK/mlocNCivmsarpm4XokI0NCivmsarpnZblm70NCivmsarluobnj40NCivmsarkuL3lqJ8NCivni4TlrrbmuqcNCivosLfms5PpgZMNCivovabnm4rljY4NCivovpvlrpfmva0NCivovpvlpZXmiJANCivovpvoj4HlqKUNCivovpvml7vkv64NCivpgqLog73mlocNCivpmK7mlofnpaUNCivpmK7lkJXnnJ8NCivpmK7kv6HlrqoNCivpmK7mmLHlro8NCivpmK7po57pk60NCivpmK7mt5HojLkNCivpmK7mlpDnkZwNCivpmK7pm4XkvKYNCivpmK7nnb/npaUNCivpmK7puY/noZUNCivljZPlo6vli4sNCivljZPmsLjloIINCivljZPlv5flv6ANCivljZPkvbPluoYNCivljZPlrpvlkJsNCivljZPmmI7ku6oNCivljZPoirPlpoINCivljZPkv4rlro8NCivljZPlu7rpmoYNCivljZPoi7Hlk7INCivljZPlrrbmpaANCivljZPorq3oia8NCivljZPmt5HlqpsNCivljZPmnJ3pl7UNCivljZPnkZ7ltIcNCivljZPlv5fpmoYNCivljZPpnZnlpoINCivljZPnlJ8NCivlkajkuIrpkqYNCivlkajlo6vmnbANCivlkajlpKfpkqcNCivlkajlrZDmlawNCivlkajkuK3lhbQNCivlkajlv4PmgKENCivlkajmlofmlL8NCivlkajmlofpm4UNCivlkajmnIjpnJwNCivlkajkuJbkuLANCivlkajku6PlsIkNCivlkajlvJjmlY8NCivlkajmraPlm70NCivlkajmsLjpm4QNCivlkajnjonojrINCivlkajnq4vkvJ8NCivlkajku7Llh68NCivlkajlkInpvpkNCivlkajlubTnm5sNCivlkajoh7PoiqwNCivlkajkvZHnpa8NCivlkajkvK/pkasNCivlkajlkJvpuL8NCivlkajlrZ3oirMNCivlkajlro/nkZwNCivlkajlu7fpmoYNCivlkajlv5flv6ANCivlkajlv5fmuIUNCivlkajlv5fli4sNCivlkajmsbbnj4oNCivlkajnp4DmmY8NCivlkajogrLkvLYNCivlkajogrLmtqYNCivlkajkuprmrKMNCivlkajkvbPmgKENCivlkajkvbPok4kNCivlkajkvbPpnIcNCivlkajkvanlrpwNCivlkajkvanku6oNCivlkajljY/liKkNCivlkajlpYfok4kNCivlkajlrZ/osIoNCivlkajlrpflu7oNCivlkajlrpzoirMNCivlkajlrpvokLENCivlkajlubjok4kNCivlkajmgKHkvLYNCivlkajmgKHlkJsNCivlkajmgKHpgqYNCivlkajmgKHkv6oNCivlkajmmI7lvJgNCivlkajmmI7lvbsNCivlkajmmI7ovokNCivlkajmnbANCivlkajmrKPoirgNCivlkajmrKPojrkNCivlkajnjp/okLENCivlkajoirPlpoINCivlkajoip3mtrUNCivlkajph5Hnh5UNCivlkajpnZLok4kNCivlkajkv6HovokNCivlkajkv4rlro8NCivlkajkv4rosaoNCivlkajlhqDkvLYNCivlkajlk4Hlpo0NCivlkajlqIHlkYgNCivlkajlu7rlkYgNCivlkajlu7rpk60NCivlkajlvablspENCivlkajmgJ3lvq4NCivlkajmlL/nv7ANCivlkajmmJ/lkIwNCivlkajmn4/nlKsNCivlkajnjrINCivlkajnm4jmnYkNCivlkajnp4vokI0NCivlkajnvo7mmKUNCivlkajoh7TkuJ4NCivlkajpg4HmlocNCivlkajpn6bnv7ANCivlkajlh4zmgowNCivlkajlqJ/lpoINCivlkajlrrbmtakNCivlkajlrrbluoYNCivlkajls7DmraMNCivlkajmjK/lh68NCivlkajkuablqbcNCivlkajms7DlrokNCivlkajkvanlpoINCivlkajnpZDmhacNCivlkajogL/ooYwNCivlkajkvJ/ojLkNCivlkajlm73pnZYNCivlkajlqYnnkLMNCivlkajmlY/pkrANCivlkajmt5HlqJ8NCivlkajmt5Hnh5UNCivlkajlh6/mhacNCivlkajmg6DojrINCivlkajmmbrmlY8NCivlkajmuJ3nj4oNCivlkajlko/orq0NCivlkajpgLjlhbANCivlkajpm4XlqbcNCivlkajkupHmo6ANCivlkajmlazmmY8NCivlkajkuJrpkqYNCivlkajnhYzogL8NCivlkajnkZ7mpaANCivlkajkuYnls7ANCivlkajlnKPmhacNCivlkajoo5XkuLANCivlkajpgZPms5MNCivlkajlmInmnb4NCivlkajlmInluoYNCivlkajmsYnmupANCivlkajnpo/lh6QNCivlkajnv6DoiqwNCivlkajkur/kv6ENCivlkajmhaflp78NCivlkajkuZDlpKkNCivlkajotKTlvrcNCivlkajlrqrpgqYNCivlkajmmZPokI0NCivlkajnh5Xnm4gNCivlkajono3pqo8NCivlkajpnZnpm68NCivlkajogarlrocNCivlkajplYfpgqYNCivlkajkuL3njrINCivlkajlhbDoirMNCivlkajml7vpnZkNCivlkajml4bnkZwNCivlkajnjq4NCivlkajpkrDnv5QNCivlrZ/lpKnnpaUNCivlrZ/luoblrokNCivlraPogrLms70NCivlrpjlpKflvJgNCivlrpjogrLokLENCivlrpjoirPlpoINCivlrpjoi5HmnbANCivlrpjlhpzlk7INCivlsJrkuaYNCivlsYjpgZPliJoNCivlsrPnu7Tpk6QNCivmiL/lhYbpmoYNCivkuo7lrrbnj40NCivmmJPotrPnnJ8NCivmmJPmmbrlgaUNCivmmIzlrZ/nv7ANCivkuJzmhY7nkLMNCivmnpfkuIDngpwNCivmnpfkuIrlv5cNCivmnpfkuYXljIANCivmnpfkuo7mraMNCivmnpfkuo7lqbcNCivmnpfkuo7npa8NCivmnpfljYPlqpoNCivmnpfljYPmr5MNCivmnpflo6vlipsNCivmnpflo6vpg4ENCivmnpflo6vmuIoNCivmnpflo6vmnbANCivmnpflo6vmiawNCivmnpflo6votooNCivmnpflo6vlhpwNCivmnpflpKflhYMNCivmnpflpKfnpaUNCivmnpflpKfpkqcNCivmnpflpbPmu6ENCivmnpflrZDnjoQNCivmnpflrZDkvJ8NCivmnpflrZDmnbANCivmnpflrZDmg6ANCivmnpflrZDlko8NCivmnpflrZDli6QNCivmnpflrZDnu64NCivmnpflrZDnkYQNCivmnpflsI/nkKoNCivmnpflsbHkupENCivmnpfmiY3lhYMNCivmnpfkuK3lvLoNCivmnpfkuYvoj4ENCivmnpfku4HlvaYNCivmnpfku4HmnbANCivmnpfku4vkuIANCivmnpflhYPmgboNCivmnpfljYfmnYMNCivmnpflpKnmsJENCivmnpflv4PlpoINCivmnpflv4PlspoNCivmnpfmlofkuK0NCivmnpfmloflhagNCivmnpfmlofms7MNCivmnpfmlofnp5ENCivmnpfmloflsIYNCivmnpfmlofnpaUNCivmnpfmlofog5wNCivmnpfmlofmlq8NCivmnpfmlofnkKYNCivmnpfmlofpm68NCivmnpfmloflvrcNCivmnpfmlofogaoNCivmnpfmloflqoQNCivmnpfmnIjoi7ENCivmnpfmnKjlhbQNCivmnpfkuJblubMNCivmnpfkuJbmmIwNCivmnpfkuJboirMNCivmnpfkuJbls7ANCivmnpfkuJbkvJ8NCivmnpfkuJbmt4cNCivmnpfkuJbnv5QNCivmnpfkuJblr7ANCivmnpfkuLvmgakNCivmnpfku6XmmagNCivmnpfku5XkvJ8NCivmnpfliqDlhqANCivmnpflj6/pkqcNCivmnpflt6jmt5kNCivmnpflt6fmooUNCivmnpflubPoi5ENCivmnpflvJjljYcNCivmnpflvJjnpaUNCivmnpfmraPkuIANCivmnpfmraPlrpcNCivmnpfmraPlhpsNCivmnpfmraPkvJ8NCivmnpfmraPlh68NCivmnpfmraPnpo8NCivmnpfmsJHln7oNCivmnpfmsLjmmIwNCivmnpfmsLjkv6ENCivmnpfmsLjmuIUNCivmnpfmsLjnpaUNCivmnpfmsLjmo64NCivmnpfmsLjluoYNCivmnpfmsLjmmZ8NCivmnpfnjonlpoINCivmnpfnjonoirMNCivmnpfnjonnjrINCivmnpfnjonkvakNCivmnpfnjonmlY8NCivmnpfnjonlqbcNCivmnpfnjonoj4ENCivmnpfnjonkupENCivmnpfnjonpvpkNCivmnpfnn7PpmoYNCivmnpfnq4vku7sNCivmnpfnq4vkvKYNCivmnpfnq4vkvJ8NCivmnpfnq4vnvqQNCivmnpfnq4vpkasNCivmnpfku7LlqIENCivmnpfku7DmnJsNCivmnpflhYbnm4gNCivmnpflkInkvK8NCivmnpflkI7llK8NCivmnpflpoLmlY8NCivmnpflrofmmJ8NCivmnpflrojlvrcNCivmnpflronnvIcNCivmnpfmnInkv4oNCivmnpfnmb7miawNCivmnpfoh7Pmib8NCivmnpfooYzosKYNCivmnpfkvZHlrokNCivmnpfkvZHnj4oNCivmnpfkvZHlhJINCivmnpfkvZHplLoNCivmnpfkvK/lsrMNCivmnpfkvK/ls7sNCivmnpfkvK/li4sNCivmnpfkvLbotJ4NCivmnpflhYvlqIENCivmnpflhYvlr7ANCivmnpflkYjku7sNCivmnpflkJvlrpwNCivmnpflkJvnjrINCivmnpflkJvnkZwNCivmnpflkJvnv7ANCivmnpflkJ/lp78NCivmnpflnYfpg4ENCivmnpflppnlkJsNCivmnpflppnlqKUNCivmnpflpo3lpqQNCivmnpflrZ3lhagNCivmnpflrZ3lrqoNCivmnpflro/lnaQNCivmnpflro/kuq4NCivmnpflro/pn6YNCivmnpflro/lubINCivmnpflro/ovr4NCivmnpflro/lhJINCivmnpflro/plJwNCivmnpflspDnm4oNCivmnpflu7flkIkNCivmnpflu7fovokNCivmnpflv5fmsJENCivmnpflv5fmiJANCivmnpflv5foia8NCivmnpflv5flv6ANCivmnpflv5fmmI4NCivmnpflv5fmnbANCivmnpflv5foiqwNCivmnpflv5fli4cNCivmnpflv5fnmocNCivmnpflv5fls7ANCivmnpflv5fkvJ8NCivmnpflv5flnZoNCivmnpflv5fmiawNCivmnpflv5fmhY4NCivmnpflv5fosaoNCivmnpflv5fosaoNCivmnpflv5fpk60NCivmnpflv5flhJINCivmnpflv5fpopYNCivmnpflv5fosIsNCivmnpflv5fpvpkNCivmnpflv5fpuL8NCivmnpflv5fpuL8NCivmnpfmnY7pk60NCivmnpfmnZDkv4oNCivmnpfmspvlkJsNCivmnpfmspvok4ENCivmnpfngbzpvpkNCivmnpfnp4DlnaoNCivmnpfnp4DoirENCivmnpfnp4Dkv5ANCivmnpfnp4DnjrINCivmnpfnp4Dnvo4NCivmnpfnp4Dljb8NCivmnpfnp4DnnJ8NCivmnpfnp4Dpm68NCivmnpfnp4Dlh6QNCivmnpfnp4DpopYNCivmnpfnp4DppqgNCivmnpfogrLku5UNCivmnpfogrLmraMNCivmnpfogrLmsJENCivmnpfogrLnlJ8NCivmnpfogrLnq4sNCivmnpfogrLlkI0NCivmnpfogrLlpoINCivmnpfogrLmiJANCivmnpfogrLlro8NCivmnpfogrLmmIANCivmnpfogrLnj4oNCivmnpfogrLov5sNCivmnpfogrLnvqQNCivmnpfogrLokLENCivmnpfogrLok5MNCivmnpfogrLmhacNCivmnpfogrLotKQNCivmnpfogrLplIsNCivmnpfogrLpup8NCivmnpfoia/kv4oNCivmnpfop4HmmI4NCivmnpfosLfls7ANCivmnpfotJ3nj4oNCivmnpfph4znh5UNCivmnpfkuqvng6gNCivmnpfkvp3nm4gNCivmnpfkvp3mtIENCivmnpfkvp3nkocNCivmnpfkvbPnlJ8NCivmnpfkvbPlro8NCivmnpfkvbPoia8NCivmnpfkvbPmgKENCivmnpfkvbPmrKMNCivmnpfkvbPkuq0NCivmnpfkvbPnm4gNCivmnpfkvbPotJ4NCivmnpfkvbPpmbUNCivmnpfkvbPpmLMNCivmnpfkvbPnu64NCivmnpfkvbPok4kNCivmnpfkvbPkur8NCivmnpfkvbPluoYNCivmnpfkvbPmhacNCivmnpfkvbPmhacNCivmnpfkvbPmtIENCivmnpfkvbPojrkNCivmnpfkvbPotKQNCivmnpfkvbPmoaYNCivmnpfkvbPnh5UNCivmnpfkvbPoh7sNCivmnpfkvbPpnZkNCivmnpfkvbPpuL8NCivmnpfkvbPmvZMNCivmnpfkvanlkJsNCivmnpfkvanmgKENCivmnpfkvanoiqwNCivmnpfkvanotJ4NCivmnpfkvanpm68NCivmnpfkvanok4kNCivmnpfkvanok4kNCivmnpfkvanmhacNCivmnpfkvanmoaYNCivmnpfkvanplKYNCivmnpfkvannkocNCivmnpfkvpHpnZINCivmnpflhbbkvq8NCivmnpflhbbplIsNCivmnpfljY/mnZENCivmnpflkoznp4ANCivmnpflnaTnlJ8NCivmnpflnaTpn6YNCivmnpflnaTmooENCivmnpflnaTpnIINCivmnpflpYfmqKENCivmnpflrZ/ku5UNCivmnpflrZ/lkJsNCivmnpflrZ/kuq0NCivmnpflrZ/okLENCivmnpflrZ/lvrcNCivmnpflrZ/otKQNCivmnpflrZ/popYNCivmnpflrZ/okbMNCivmnpflraPoi5cNCivmnpflraPng6gNCivmnpflrpflu7cNCivmnpflrpfpoboNCivmnpflrpfkur8NCivmnpflrpfluoYNCivmnpflrpfotKQNCivmnpflrpfovokNCivmnpflrpfms70NCivmnpflrpfosJ8NCivmnpflrpjpgLgNCivmnpflrpzlkJsNCivmnpflrpznjqsNCivmnpflrpznj40NCivmnpflrpzlnKMNCivmnpflrpzok4kNCivmnpflrpzmhacNCivmnpflrpzotKQNCivmnpflrpzmoaYNCivmnpflrpzpk64NCivmnpflrpzpnZkNCivmnpflrpzok4ENCivmnpflrpwNCivmnpflrpvnkZwNCivmnpflrpvmoaYNCivmnpflsJroia8NCivmnpflsJrpopYNCivmnpflsrHok4kNCivmnpflsrHono0NCivmnpflsrPku6oNCivmnpflsrPltpkNCivmnpflubjok4kNCivmnpfluprnq4sNCivmnpflvoHljasNCivmnpflv6DlsrMNCivmnpflv6DluoYNCivmnpfmgKENCivmnpfmgKHmsZ0NCivmnpfmgKHkvLYNCivmnpfmgKHliKkNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlkJsNCivmnpfmgKHlnYcNCivmnpfmgKHnp4ANCivmnpfmgKHovrANCivmnpfmgKHoirMNCivmnpfmgKHpnZINCivmnpfmgKHojokNCivmnpfmgKHoj4ENCivmnpfmgKHokLENCivmnpfmgKHlrr0NCivmnpfmgKHlhJINCivmnpfmgKHnpL0NCivmnpfmib/lsrMNCivmnpfmib/mr4UNCivmnpfkuo7lpq4NCivmnpfmmJPnj4oNCivmnpfmmIzlvJgNCivmnpfmmIzotKQNCivmnpfmmIbnlLANCivmnpfmmIbmqKENCivmnpfmmIbnhYcNCivmnpfmmI7nlJ8NCivmnpfmmI7lv5cNCivmnpfmmI7lrpcNCivmnpfmmI7mnbANCivmnpfmmI7lvaYNCivmnpfmmI7ojokNCivmnpfmmI7mnqsNCivmnpfmmI7lv5cNCivmnpfmmI7lvrcNCivmnpfmmI7mr4UNCivmnpfmmI7nuqwNCivmnpfmmI7ovokNCivmnpfmmI7li4sNCivmnpfmmI7njq8NCivmnpfmmIDpvpkNCivmnpfljYfmsLgNCivmnpfljYfpvpkNCivmnpfkuJzojIINCivmnpfkuJzmr4UNCivmnpfmnbDmrKMNCivmnpfmnb7lsKcNCivmnpfmrKPnq4sNCivmnpfmrKPmgKENCivmnpfmrKPmgKENCivmnpfmrKPmgKENCivmnpfmrKPmlL8NCivmnpfmrKPmhYgNCivmnpfmrKPku6oNCivmnpfmrKPku6oNCivmnpfmrKPmr4UNCivmnpfmrKPosIoNCivmnpfmrKPpopYNCivmnpfmrKPkuL0NCivmnpfmrabosJoNCivmnpfms5PlkJsNCivmnpfms7Hnp4ANCivmnpfniaflj7ANCivmnpfnjp/lkJsNCivmnpfnjp/lpo8NCivmnpfnjqvlkJsNCivmnpfnjqvok4kNCivmnpfnp4nms5MNCivmnpfnp4nojrkNCivmnpfoirPkuIANCivmnpfoirPlpoINCivmnpfoirPlpoINCivmnpfoirPlt54NCivmnpfoirPoirMNCivmnpfoirPmlrANCivmnpfoirPku6oNCivmnpfoip3ljYkNCivmnpfoip3lroENCivmnpfoiqzoirMNCivmnpfoirjmmZYNCivmnpfoirfnraANCivmnpfph5Hku5UNCivmnpfph5HmmI4NCivmnpfph5HojrINCivmnpfph5HpvpkNCivmnpfplb/lv5cNCivmnpfplb/luoYNCivmnpfpm6jlhpwNCivmnpfpnZLlv5cNCivmnpfpnZLmhacNCivmnpfpnZLpnJ4NCivmnpfkuq7ku4ENCivmnpfkv6HlhagNCivmnpfkv6HkvZENCivmnpfkv6Hlro8NCivmnpfkv6Hlu7cNCivmnpfkv6Hlu7YNCivmnpfkv6HkuYkNCivmnpfkv53miJANCivmnpfkv4rku7INCivmnpfkv4rlrocNCivmnpfkv4rkvZENCivmnpfkv4rkvK8NCivmnpfkv4rlro8NCivmnpfkv4rlro8NCivmnpfkv4rlu7cNCivmnpfkv4rnlKsNCivmnpfkv4rnlLcNCivmnpfkv4roqIANCivmnpfkv4rmnbANCivmnpfkv4rmnbANCivmnpfkv4rpgLgNCivmnpfkv4rovr4NCivmnpfkv4rosaoNCivmnpfkv4rprYENCivmnpfkv4rotKQNCivmnpfkv4rpup8NCivmnpfkv5Dkuq0NCivmnpfkv57lop4NCivmnpflhqDlrocNCivmnpflhqDlkJ8NCivmnpflhqDlro8NCivmnpflhqDnp4ANCivmnpflhqDnkZsNCivmnpflhqDlhJINCivmnpfli4fmiJANCivmnpfljZflro8NCivmnpflk4HlrpwNCivmnpflpZXmiJANCivmnpflpZXkvLYNCivmnpflpZXnp4ANCivmnpflpZXlspoNCivmnpflpY7lkJsNCivmnpflp7/kvLYNCivmnpflp7/lkL4NCivmnpflp7/lppkNCivmnpflp7/lqbcNCivmnpflqIHlkI0NCivmnpflqIHliKkNCivmnpflqIHlu7cNCivmnpflqIHoia8NCivmnpflrqPku7sNCivmnpflrqPps4wNCivmnpflu7rkuIANCivmnpflu7rku7INCivmnpflu7rlrocNCivmnpflu7rmiJANCivmnpflu7rlkL4NCivmnpflu7rlro8NCivmnpflu7rlro8NCivmnpflu7rlu7cNCivmnpflu7rlv5cNCivmnpflu7rnlLcNCivmnpflu7roia8NCivmnpflu7rpgqYNCivmnpflu7rljYcNCivmnpflu7rljY4NCivmnpflu7rlvbANCivmnpflu7rojrkNCivmnpflu7rli4sNCivmnpflvabmlocNCivmnpflvablkI0NCivmnpflvabkuqgNCivmnpflvabkvLYNCivmnpflvablrZ0NCivmnpflvablro8NCivmnpflvabnlKsNCivmnpflvabkuqsNCivmnpflvablmIkNCivmnpflvablhbQNCivmnpfmgJ3lkJ8NCivmnpfmgJ3ljY4NCivmnpfmgJ3kurINCivmnpfmgZLnoZUNCivmnpfmgarnvqQNCivmnpfmlL/kvY0NCivmnpfmlL/oia8NCivmnpfmlL/mtakNCivmnpfmlL/oo5UNCivmnpfmlL/ku6oNCivmnpfmlL/nuqwNCivmnpfmlL/plIsNCivmnpfmlL/nv7ANCivmnpfmmKXlubQNCivmnpfmmKXnvo4NCivmnpfmmK3lrocNCivmnpfmmK3lv5cNCivmnpfmmK3pk60NCivmnpfmmKDmsZ0NCivmnpfmmJ/mmagNCivmnpfmmLHlkJsNCivmnpfmmLHkvJ8NCivmnpfmn5HmnY8NCivmnpfmn4/lt54NCivmnpfmn4/kvLgNCivmnpfmn4/lro8NCivmnpfmn4/mnZENCivmnpfmn4/ln44NCivmnpfmn4/ojaMNCivmnpfmn4/nv7ANCivmnpfms4nmtIsNCivmnpfmtKrpnIQNCivmnpfkuLrmlocNCivmnpfngrPnhYwNCivmnpfnj4rlpoINCivmnpfnjrLoh7MNCivmnpfnj43lpoINCivmnpfnmofliKkNCivmnpfnm4jmiJANCivmnpfnm4jlkJsNCivmnpfnm4jlv5cNCivmnpfnm4jokLENCivmnpfnpYjlnYcNCivmnpfnp5Hlro8NCivmnpfnp4voia8NCivmnpfnp4vmg6ANCivmnpfnp4voj4oNCivmnpfnp4vojrINCivmnpfnuqrlhYMNCivmnpfnvo7lpoINCivmnpfnvo7kvLYNCivmnpfnvo7lkJsNCivmnpfnvo7lkJ8NCivmnpfnvo7np4ANCivmnpfnvo7mgKENCivmnpfnvo7njrINCivmnpfnvo7nj6ANCivmnpfnvo7mmboNCivmnpfnvo7ljY4NCivmnpfnvo7mhacNCivmnpfnvo7pvoQNCivmnpfnvr/lpo8NCivmnpfoh7TlkJsNCivmnpfoh7TpopYNCivmnpfojILnm5sNCivmnpfoi7HnlLcNCivmnpfoi7HmnbANCivmnpfoi7Hpk60NCivmnpfombnlpoINCivmnpfombnlro8NCivmnpfotJ4NCivmnpfotJ7lu7YNCivmnpfpg4HmlocNCivmnpfpg4HmrKMNCivmnpfpg4HoiqwNCivmnpfpg4HmlY8NCivmnpfpg4Hmo64NCivmnpfpg4Hpm4QNCivmnpfpg4HlhbANCivmnpfpn6bkuJ4NCivmnpfpn6blu7cNCivmnpfpn6blmIkNCivmnpfpppnlkJsNCivmnpflgI3kvIoNCivmnpflgKnlpoINCivmnpflgKnmhacNCivmnpfkv67msJENCivmnpfkvKbml60NCivmnpfljp/lkIgNCivmnpflk7LmsJENCivmnpflk7Lku7sNCivmnpflk7Llro8NCivmnpflk7Loo5UNCivmnpflk7LovokNCivmnpflqJ/lpoINCivmnpflqInlrZwNCivmnpflrrblvJgNCivmnpflrrblvJgNCivmnpflrrbnlJ8NCivmnpflrrblpoINCivmnpflrrbkuqgNCivmnpflrrbli4cNCivmnpflrrbmg6ANCivmnpflrrbmmZYNCivmnpflrrblnKMNCivmnpflrrbnpa8NCivmnpflrrbpk60NCivmnpflrrbluoYNCivmnpflrrbotKQNCivmnpflrrbolZkNCivmnpflrrbmlowNCivmnpflrrnku54NCivmnpflrrnlnKMNCivmnpflsZXlnKMNCivmnpfls7vmmZYNCivmnpfls7DlubQNCivmnpfluIjnvqQNCivmnpfluq3njq4NCivmnpfmganlhYkNCivmnpfmganpnIgNCivmnpfmjK/mtakNCivmnpfmjK/ml7gNCivmnpfmjK/mu6gNCivmnpfml7bmlrANCivmnpfmmYvlhagNCivmnpfmmYvnlb8NCivmnpfmmY/lpoINCivmnpfmmY/nqJoNCivmnpfkuablvJgNCivmnpfkuabogb8NCivmnpfkuabmpbcNCivmnpfkuabmr4UNCivmnpfkuabms70NCivmnpfmoZPotYsNCivmnpfmoYLnj6ANCivmnpfmoLzlpoMNCivmnpfms7DlrokNCivmnpfms7Dnu7QNCivmnpfmtZrmnbANCivmnpfmtannvqQNCivmnpfkvanlpoINCivmnpfkvanoj4ENCivmnpfkvanlhJINCivmnpfnm4rlvJgNCivmnpfnm4rlpoINCivmnpfnm4rov5ANCivmnpfnnJ/nu64NCivmnpfnpZDnpr4NCivmnpfnpZDmpoYNCivmnpfnpZDnkYQNCivmnpfnqojmhI8NCivmnpfntKDlpoINCivmnpfntKDotJ4NCivmnpfntKDljY4NCivmnpfnuq/lpoINCivmnpfnuq/muZgNCivmnpfogJjlvrcNCivmnpfogL/lvJgNCivmnpfogL/nnJ8NCivmnpfojLUNCivmnpfotbfnv44NCivmnpfovanpookNCivmnpfpq5jmupANCivmnpfkvJ/msJENCivmnpfkvJ/lvawNCivmnpfkvJ/moaINCivmnpfkvJ/lvrcNCivmnpflgaXpnZINCivmnpfllK/lh68NCivmnpflm73mrKMNCivmnpflm73npaUNCivmnpflm73pmoYNCivmnpflm73li4sNCivmnpfln7nlsKcNCivmnpflqYnlkJsNCivmnpflqYnlqbcNCivmnpflqYnnkZwNCivmnpfltIflrocNCivmnpfltIfmr4UNCivmnpflurflroENCivmnpflkK/kuroNCivmnpflkK/oiKoNCivmnpflkK/kuLANCivmnpfmlY/oo5UNCivmnpfmooXpmYcNCivmnpfmuIXlkIkNCivmnpfmuIXkupENCivmnpfmt5HlkJsNCivmnpfmt5HoiqwNCivmnpfmt5HnjrINCivmnpfmt5HotJ4NCivmnpfmt5HlqJ8NCivmnpfmt5HlqKUNCivmnpfmt5HmooUNCivmnpfmt5HlqpsNCivmnpfmt5Hmg6ANCivmnpfmt5HokI0NCivmnpfmt5HljY4NCivmnpfmt5Hpm68NCivmnpfmt5Hku6oNCivmnpfmt5Hpk64NCivmnpfmtrXnkZwNCivmnpfnm5vmnbANCivmnpfojpjmgKENCivmnpfojbfoirMNCivmnpfpm6rokI0NCivmnpfmnbDlnKMNCivmnpfliJsNCivmnpfog5zmnbANCivmnpfljZrpmoYNCivmnpflqbcNCivmnpflr4znvo4NCivmnpfmg6DmlocNCivmnpfmg6DmgKENCivmnpfmg6Dnvo4NCivmnpfmg6DmlY8NCivmnpfmg6DokI0NCivmnpfmg6Dpm68NCivmnpfmg6DnkIcNCivmnpfmlabnhYwNCivmnpfmma/msJENCivmnpfmma/msJsNCivmnpfmmbrog70NCivmnpfmmbrmuIUNCivmnpfmmbrkuJoNCivmnpfmnJ8NCivmnpfmo67nlLANCivmnpfmuK/otLUNCivmnpfmuZjmg6ANCivmnpfmubLoiJINCivmnpfnkKblm70NCivmnpfnmbvlsbENCivmnpfntKvoj4ENCivmnpfoiJLmhacNCivmnpfljY7kuIANCivmnpfop4blsIoNCivmnpflko/nv5QNCivmnpfotoUNCivmnpfpgLjmmIANCivmnpfpgLjls7ANCivmnpfpgLjoj4ENCivmnpfpgLjlhJINCivmnpfov5vnm4oNCivmnpfpkqfpmbYNCivmnpfpm4HmlY8NCivmnpfpm4XlkJsNCivmnpfpm4XoiqwNCivmnpfpm4XnjrINCivmnpfpm4XkvKYNCivmnpfpm4Xmt7MNCivmnpfpm4XljZoNCivmnpfpm4Xmg6ANCivmnpfpm4XnkKoNCivmnpfpm4XokI0NCivmnpfpm4XljY4NCivmnpfpm4Xpm68NCivmnpfpm4XmhacNCivmnpfpm4XmhacNCivmnpfpm4XosKYNCivmnpfpm6/lrqMNCivmnpfkupHmraMNCivmnpfpobrlrokNCivmnpfpobrlhbQNCivmnpfli6Tmt5kNCivmnpfltanlsbENCivmnpfmhI/kvKYNCivmnpfmhI/ohb4NCivmnpfniLHmg6ANCivmnpfmlazmlocNCivmnpfmlazmuIoNCivmnpfmlaznv5QNCivmnpfmlrDlh6ENCivmnpfmlrDlj5ENCivmnpfmmZbnmpMNCivmnpfmpaDmo4sNCivmnpfmrr/kuIANCivmnpfmr5Pnj4oNCivmnpfmr5PotoUNCivmnpfmupDmsrMNCivmnpfnhafnlLcNCivmnpfnhZzluq0NCivmnpfnhYzovakNCivmnpfnhJXpkqYNCivmnpfnkZ7mmI4NCivmnpfnkZ7lrrYNCivmnpfnkZ7pm6oNCivmnpfnkZ7lvrcNCivmnpfnkZ7lhbANCivmnpfnkZzojokNCivmnpfnm5/mnbANCivmnpfnpbrli4sNCivmnpfnqJrmiawNCivmnpfnu4/nu7QNCivmnpfkuYnls7ANCivmnpfkuYnmnbANCivmnpfkuYnmmboNCivmnpfkuYnpm4QNCivmnpfnvqTls7ANCivmnpfnvqTogIANCivmnpflnKPmgKENCivmnpflnKPmgakNCivmnpflnKPmnbANCivmnpflnKPmmboNCivmnpflnKPpkqcNCivmnpflnKPogIANCivmnpfoi4fokI0NCivmnpfoo5XmmJUNCivmnpfoo5XlnZoNCivmnpfoo5Xog5wNCivmnpfoo5XoiJwNCivmnpfor5flh6ENCivmnpfor5flgKkNCivmnpfor5fmuIoNCivmnpfor5fpm68NCivmnpfor5foi7kNCivmnpfov5DmtakNCivmnpfpk4nmmboNCivmnpfpm43nv5QNCivmnpfpnZbkv64NCivmnpfpooLljZoNCivmnpfpvI7mpI0NCivmnpflmInnpr4NCivmnpflmInkv6ENCivmnpflmInnj40NCivmnpflmInkvJ8NCivmnpflmInnkKoNCivmnpflmInnvqQNCivmnpflmInmhacNCivmnpflmInpuL8NCivmnpfmjrTlvaYNCivmnpfojaPpkqYNCivmnpfmsYkNCivmnpfmsYnmlowNCivmnpfnnb/ml7gNCivmnpfnoqfmg6ANCivmnpfnoZXlhJINCivmnpfnsr7muZsNCivmnpfnu7Tnj4oNCivmnpfnu7TojokNCivmnpfnv6DokI0NCivmnpfok5PnvpoNCivmnpfosarlvaYNCivmnpfpk63mtLINCivmnpfpk63nhYwNCivmnpfpk63nhpsNCivmnpflh6Tnj40NCivmnpfpvZDolJoNCivmnpfku6rombkNCivmnpflop7lqIENCivmnpflub/kuYkNCivmnpflvrfmmYsNCivmnpfluobljYcNCivmnpfluobok4kNCivmnpfmhaflkJsNCivmnpfmhafmgKENCivmnpfmhafnj4oNCivmnpfmhafnvo4NCivmnpfmhafnj6ANCivmnpfmhafmt7MNCivmnpfmhafokI0NCivmnpfmhafljY4NCivmnpfmhafpm68NCivmnpfmhafkuL0NCivmnpfmhqzoia8NCivmnpfmvoTms70NCivmnpfojrnoirMNCivmnpfnkb7lhbANCivmnpfolJrnjrINCivmnpfljavlnKMNCivmnpfotKTlvpcNCivmnpfpgILkuYsNCivmnpflhJLmsJENCivmnpflrabpmoYNCivmnpflrqrmlL8NCivmnpflv4bmt7MNCivmnpfmmZPlkJsNCivmnpfmmZPoirMNCivmnpfmmZPnjrINCivmnpfmmZPlqbcNCivmnpfmmZPljY4NCivmnpfmmZPlmIkNCivmnpfmmZPlqLgNCivmnpfms73kuYkNCivmnpfnh5XmooUNCivmnpfnkp8NCivmnpfpopYNCivmnpfpopbojokNCivmnpfpopbogaoNCivmnpflhbTpkooNCivmnpfolZnmt4cNCivmnpfosavkuq0NCivmnpfplKbkvLYNCivmnpfplKbpmoYNCivmnpfplKbpuL8NCivmnpfpnZnlkJ8NCivmnpfpnZnlrpwNCivmnpfpnZnmgKENCivmnpfpnZnmgKENCivmnpfpnZnoiqwNCivmnpfpnZnpm68NCivmnpfpnZnku6oNCivmnpfpvpnnlJ8NCivmnpfmh4vlt54NCivmnpfogarku4ENCivmnpfosKblppkNCivmnpfpqo/pgLgNCivmnpfpuL/lkJsNCivmnpfpuL/lvawNCivmnpfpuL/ovr4NCivmnpfpuL/plJwNCivmnpfnpLzlvLoNCivmnpfkuLDoiJwNCivmnpfngJvmlocNCivmnpfnkLzoirMNCivmnpfpn7XlqJ8NCivmnpfkuL3lkJsNCivmnpfkuL3nvo4NCivmnpfkuL3nj6ANCivmnpfkuL3ljY4NCivmnpfkuL3ok4kNCivmnpflrp3np4ANCivmnpfnu6flubMNCivmnpfogIDljZcNCivmnpfolLzmlocNCivmnpflt43pvpkNCivmnpfmh7/lkJsNCivmnpfpup8NCivmnpflpIblrr4NCivmnpfoiorkuqgNCivmnpfml7vpgLgNCivmnpfngoXltZoNCivmnpflp53lnYcNCivmnpfmmLblrokNCivmnpfnj4jlpqQNCivmnpflgKzkuJYNCivmnpfnur7njq4NCivmnpfnkIfpm68NCivmnpfmo6jku7sNCivmnpfnkK7pl7UNCivmnpfnkKznkZwNCivmnpfmmpDluq0NCivmnpfngpzpuL8NCivmnpfnjq7nq6MNCivmnpfnrbHnjrINCivmnpfnrbHoj4ENCivmnpfokKnnh5UNCivmnpfpkrDluq0NCivmnpfpkrDlh68NCivmnpfpkrDmhacNCivmnpfnkofmgKENCivmnpfpnJnnnJ8NCivmnpfpqacNCivmraboia/mlocNCivmrabmlazlkowNCivnpYHkuYnlm70NCivoirHnvr3olocNCivoirHpm4XmlpANCivliJ3oi6Xlh6ENCivpgrXmlofms7ANCivpgrXlv5fkuLANCivpgrXlpZXpkqcNCivpgrXpg4Hmg6ANCivpgrXog5zmt7sNCivpgrXniLHnjp8NCivpgrXmgIDlvrcNCivpgrHkuIDnnJ8NCivpgrHkuo7lgKkNCivpgrHljYPnu64NCivpgrHlo6vmga0NCivpgrHlpKfliJoNCivpgrHlrZDmnqsNCivpgrHlsI/lq5oNCivpgrHku4HmnbANCivpgrHlpKnlro8NCivpgrHmlofnjokNCivpgrHmlofmn48NCivpgrHmlofpkqYNCivpgrHmlofpuL8NCivpgrHkuJbmsJENCivpgrHku5XmnbANCivpgrHlubzlqpoNCivpgrHmraPnpaUNCivpgrHmsLjlmIkNCivpgrHnjonnjrINCivpgrHnq4vlm70NCivpgrHku7Lpn7UNCivpgrHlkI3ku5UNCivpgrHlronlj7ANCivpgrHmnInosIUNCivpgrHlkJvmuIUNCivpgrHlv5flhYkNCivpgrHlv5flvLoNCivpgrHlv5fmlowNCivpgrHnp4Doi7ENCivpgrHnp4DpnZkNCivpgrHoia/mr4UNCivpgrHkvbPmnb4NCivpgrHkvbPpoo0NCivpgrHlrZ/mnIgNCivpgrHlrprpgqYNCivpgrHlu7bpvoQNCivpgrHmgKHkuZQNCivpgrHmgKHnpa8NCivpgrHmmIzoo5UNCivpgrHmmI7nkKoNCivpgrHmrKPmgKENCivpgrHms5PlvbANCivpgrHoirPlrpwNCivpgrHph5HnlJ8NCivpgrHkv6Hnm4oNCivpgrHkv6HovokNCivpgrHkv4rmmIwNCivpgrHkv4rmmboNCivpgrHkv4rojaMNCivpgrHkv4rpnJYNCivpgrHlhqDnkZwNCivpgrHlk4HljY4NCivpgrHlnoLnq6ANCivpgrHlpZXmmI4NCivpgrHlpZXnnb8NCivpgrHlp7/mg6ANCivpgrHlu7rkuK0NCivpgrHlu7ror5oNCivpgrHlu7rpi5ANCivpgrHlvabnkZsNCivpgrHmgJ3lmIkNCivpgrHmlL/mtowNCivpgrHmmK3pkqYNCivpgrHmmLHoh7sNCivpgrHmn4/nkZwNCivpgrHmn4/pnJYNCivpgrHnj4DnpaUNCivpgrHnm4jmo6ANCivpgrHnuqrljY4NCivpgrHnvo7mg6ANCivpgrHnvo7mhacNCivpgrHoh7TpopYNCivpgrHlhpvmtakNCivpgrHpg4Hmt5ENCivpgrHph43lrqoNCivpgrHlk7LnkLMNCivpgrHlrrbotKQNCivpgrHmjK/ls7ANCivpgrHmoYLpk4MNCivpgrHmtanlvbANCivpgrHkvannu64NCivpgrHnuq/njq4NCivpgrHkvJ/kvKYNCivpgrHlgaXpm4QNCivpgrHlm73mga0NCivpgrHlm73mtIENCivpgrHln7nnkZwNCivpgrHlqYnlrIUNCivpgrHlkK/nv5QNCivpgrHmlY/olZkNCivpgrHmuIXpvpkNCivpgrHmt5HlqJ8NCivpgrHmt5HnkLQNCivpgrHmt5HmhacNCivpgrHnu43muqINCivpgrHojonlqbcNCivpgrHlh68NCivpgrHliJvkv60NCivpgrHlr4zmupANCivpgrHmg6DlqKUNCivpgrHmg6Dor5cNCivpgrHmma/okI0NCivpgrHmmbrmnbANCivpgrHmuZjkupENCivpgrHnu5MNCivpgrHlko/mt7MNCivpgrHpgLjnvqQNCivpgrHpm4XoiqwNCivpgrHpm4XojokNCivpgrHpm4Xpm68NCivpgrHpm4XojJwNCivpgrHlnIbmg6ANCivpgrHmlazpm68NCivpgrHmr5PnjrINCivpgrHnhJXmlocNCivpgrHnkZ7mooUNCivpgrHnm5/nkIcNCivpgrHlnKPmlocNCivpgrHlnKPmlowNCivpgrHor5fmuIoNCivpgrHor5fnkIENCivpgrHpnZbpm68NCivpgrHlmInmnbANCivpgrHlmInmhacNCivpgrHnoqfmlr0NCivpgrHnu7TlqYkNCivpgrHpn7bojrkNCivpgrHlvrflh68NCivpgrHmhaflpoINCivpgrHmhaflqbcNCivpgrHnuqzlubMNCivpgrHmmZPnjrINCivpgrHmoJHlm70NCivpgrHpnZnlrpwNCivpgrHpnZnpm68NCivpgrHplLrku4ENCivpgrHkuLDnpaUNCivpgrHnkLzmg6ANCivpgrHnkLzmhacNCivpgrHpn7XlroENCivpgrHkuL3oi7ENCivpgrHlrp3okLENCivpgrHnu6fojrkNCivpgrHolbTpnZkNCivpgrHppqjku6oNCivpgrHpvoTpopANCivpgrHmmL7moZMNCivpgrHmmL7pnJYNCivpgrHlp7Xnu6sNCivpgrHnkKzmt5ENCivpgrHmpL/lh68NCivpgrHnrbHpm68NCivpgrHpkrDmlpANCivpgrHnno0NCivph5Hlo6vkuLoNCivph5HkuqzojaMNCivph5HmmI7ovokNCivph5HmlL/osJoNCivph5Hnj57nkLMNCivph5Hli6QNCivph5Hno4oNCivkvq/lipvnu7QNCivkvq/mloflk7INCivkvq/mraPpuL8NCivkvq/lpoLoiqwNCivkvq/lro/mmIwNCivkvq/np4DlpoINCivkvq/kvbPlhbgNCivkvq/lh73np4ANCivkvq/lsrPlro8NCivkvq/mmIbliqkNCivkvq/mrKPnv7ANCivkvq/kv6HlrocNCivkvq/lkrjku7ANCivkvq/lvabkvLgNCivkvq/mn4/pnZINCivkvq/oh7TkuK0NCivkvq/ntKDkupENCivkvq/muIrpk60NCivkvq/ljZrlhYMNCivkvq/mma/li4sNCivkvq/otLXpvoQNCivkvq/pm4Xpm68NCivkvq/lmInnj40NCivkvq/luobovrANCivkvq/pnZnmsZ0NCivkvq/kuL3mhacNCivkvq/pnIjpnZINCivkv57kvbPlh6ENCivkv57ms4rpnJYNCivkv57og73mlrkNCivkv57pm4XlqbcNCivkv57oiorojZ8NCivlp5zlhYPpkqcNCivlp5zlkI7mgKENCivlp5zlro/ojaMNCivlp5zkvankvLYNCivlp5zmmI7lro8NCivlp5zoip3mgKENCivlp5zlu7rpk60NCivlp5zloInpoo0NCivlp5zlh6/mnbANCivlp5zmmbrpkqcNCivlp5zpm4XlqbcNCivlp5zkuYnmgboNCivlp5zlop7ngqsNCivlp5zmoJHplKYNCivlp5znpLzosaoNCivlp5zml7vlp5cNCivlp5rlj4jmlocNCivlp5rmlrnmtIENCivlp5rnq4vkuIkNCivlp5rlhYvpkqcNCivlp5rlv5flrqoNCivlp5rkvbPmhacNCivlp5rlrpfmnLQNCivlp5rmgKHlhbANCivlp5rph5HmupANCivlp5rlqIHlrocNCivlp5rnm4jku7sNCivlp5rntKDlhbANCivlp5rlh6/mlocNCivlp5rnkJvlr4wNCivlp5rnkZ7otKQNCivlp5rlvrfpup8NCivlp5rkuL3kuroNCivlrqPlv5flh4wNCivlvovmjK/miawNCivmlr3lpKfnu7QNCivmlr3mlocNCivmlr3mlofosaoNCivmlr3lj6/pmoYNCivmlr3njonlk4ENCivmlr3lkI3njqUNCivmlr3lrofpqo8NCivmlr3nmb7moaYNCivmlr3kvK/lrpwNCivmlr3lrZ3lvrcNCivmlr3lro/ms70NCivmlr3lv5fosaoNCivmlr3np4DlrpsNCivmlr3ogrLnkZwNCivmlr3kvbPlkJsNCivmlr3kvanlkJsNCivmlr3kvanljY4NCivmlr3lrZ/lro8NCivmlr3lrpzlkYgNCivmlr3lrpvnm7QNCivmlr3mgKHlpoINCivmlr3mgKHpk4MNCivmlr3mmI7lpo0NCivmlr3mnbDmnb4NCivmlr3njqvlkJsNCivmlr3pm6jkvZANCivmlr3kv4rlkI0NCivmlr3kv4rotKQNCivmlr3lpZXmtrUNCivmlr3lu7rlrocNCivmlr3lvabnlKsNCivmlr3mlL/osaoNCivmlr3mn4/lpoINCivmlr3nmofml60NCivmlr3nvo7nkZsNCivmlr3pg4HolZkNCivmlr3mjK/lnaQNCivmlr3ntKDljb8NCivmlr3lgaXpuL8NCivmlr3mlY/nlLcNCivmlr3mt5Hmg6ANCivmlr3pm6rlp78NCivmlr3ljZrlhYMNCivmlr3lr4zmtakNCivmlr3mg6DnkKoNCivmlr3mmbrli4cNCivmlr3nqIvlh68NCivmlr3lko/nhLYNCivmlr3pkqfkvKYNCivmlr3pm4XlqJ8NCivmlr3pm6/nkKoNCivmlr3kuYnmsqcNCivmlr3lmInnkKoNCivmlr3msYnltZgNCivmlr3lv5fosaoNCivmlr3mhaflkJsNCivmlr3nkb7kvKYNCivmlr3mmZPpm68NCivmlr3pnZnmgKENCivmlr3nkLzlpoINCivmlr3ppqjotLUNCivmlr3ml7vlrpwNCivmlr3njq7nkZwNCivmn6/lipvosaoNCivmn6/lhYPlh68NCivmn6/mlofnpaUNCivmn6/kuJbotKQNCivmn6/msLjlv6ANCivmn6/lhajnm4oNCivmn6/kvK/lvaYNCivmn6/lro/lqIENCivmn6/lv5fmmI4NCivmn6/mspvlv5cNCivmn6/oia/olZkNCivmn6/kvbPnp4ANCivmn6/kvanlkJsNCivmn6/lnaTmmI4NCivmn6/lrpfkvK8NCivmn6/lrpvlkJsNCivmn6/mgKHnjp8NCivmn6/mmI7nv7ANCivmn6/mrKPku6oNCivmn6/ph5HmnY8NCivmn6/kv4rlkIkNCivmn6/kv4rpmoYNCivmn6/lrqPlrocNCivmn6/lvabml60NCivmn6/mmK3nlJ8NCivmn6/nm4jlpoINCivmn6/ombnlpoINCivmn6/ms7DlkI0NCivmn6/mlY/nm5sNCivmn6/mt5Hmg6ANCivmn6/ov57nlLANCivmn6/ljZrlhYMNCivmn6/lr4zorq4NCivmn6/mg6Doj7ENCivmn6/mmbrku4ENCivmn6/mo4vmo6MNCivmn6/pl7XmlocNCivmn6/pm4XljY4NCivmn6/mr5PokI0NCivmn6/lmInmsbYNCivmn6/noqfmmK0NCivmn6/lh6Tku6oNCivmn6/lrqroi40NCivmn6/plKbnlLcNCivmn6/nkLzok6UNCivmn6/ml7voia8NCivmn6XmhafnkLMNCivmn7PlpoLluq0NCivmn7PkvanlkJsNCivmn7Plu7roia8NCivmn7PojLnokI0NCivmn7Pmo4vlhYMNCivmn7PlmInovakNCivmn7PpuaTmnb4NCivmrrXmmI7lro8NCivmrrXpgLjovakNCivmtKrkuIDkuK0NCivmtKrlipvlo7kNCivmtKrkuo7pl7UNCivmtKrljYPmg6ANCivmtKrljYPnkKYNCivmtKrlo6vogrINCivmtKrlo6vmnbANCivmtKrlpKfkuLoNCivmtKrlrZDlqbcNCivmtKrlsI/mg6ANCivmtKrlhYPmlowNCivmtKrmlofmmI4NCivmtKrmloflh68NCivmtKrmlofotKQNCivmtKrkuJbljYcNCivmtKrkuJblmIkNCivmtKrliqDovr4NCivmtKrmraPlhYkNCivmtKrmsLjmmIwNCivmtKrnjonoirMNCivmtKrnjonlqbcNCivmtKrnjonokqgNCivmtKrkuqbmtIENCivmtKrlhYnkur8NCivmtKrlkI3ooaENCivmtKrlronkv5ANCivmtKrnmb7otKQNCivmtKrkvZHljYcNCivmtKrlkJvnpaUNCivmtKrlro/mlL8NCivmtKrlv5fnlJ8NCivmtKrlv5fmmI4NCivmtKrlv5fpm4QNCivmtKrlv5fpk60NCivmtKrmnZHpk60NCivmtKrnp4DoirMNCivmtKrnp4DojrkNCivmtKroia/mrKMNCivmtKrkvp3nkKoNCivmtKrkvbPnkLMNCivmtKrkvankvLYNCivmtKrlnaTplJwNCivmtKrlrZ/nkbYNCivmtKrlrpfmsYkNCivmtKrlrpzoia8NCivmtKrlsJrpk60NCivmtKrlv6DlnKMNCivmtKrmgKHnnJ8NCivmtKrmmI7ljJYNCivmtKrmmI7kvJ8NCivmtKrmmI7pvpkNCivmtKrmrKPljYcNCivmtKroirfmvKoNCivmtKrkv6HlmIkNCivmtKrkv4rpm4QNCivmtKrlrqPnq7kNCivmtKrmgJ3nkKoNCivmtKrmlL/pnIgNCivmtKrmn4/lroENCivmtKrnp4vljY4NCivmtKrnvo7okI0NCivmtKrojILpm4QNCivmtKroi7HmnbANCivmtKrpg4Hluq0NCivmtKrph43ljb8NCivmtKrlrrbnkKoNCivmtKrmgqbnjrINCivmtKrmjK/nm4oNCivmtKrmjK/pk60NCivmtKrmoLnljY4NCivmtKrkvanoirMNCivmtKrkvannu64NCivmtKrogL/mmboNCivmtKrkvJ/lk7INCivmtKrkvJ/mnbANCivmtKrkvJ/osJUNCivmtKrlgaXls7ANCivmtKrmm7znj4oNCivmtKrlm73lk7INCivmtKrlm73mg58NCivmtKrlm73nv5QNCivmtKrlm73ogIANCivmtKrln7nkvKYNCivmtKrlqYnnurkNCivmtKrltIfmgakNCivmtKrmmIblgaUNCivmtKrlvqHlvZcNCivmtKrlkK/kvJ8NCivmtKrmlY/oirMNCivmtKrmlY/pm4QNCivmtKrmuIXlgaUNCivmtKrmt5HotJ4NCivmtKrmt5Hmg6ANCivmtKrmt5Hmt6kNCivmtKrnu43mlocNCivmtKrnv47lrr4NCivmtKrpm6roirMNCivmtKrog5zlh68NCivmtKrmg6DmlocNCivmtKrmg6Dmo4sNCivmtKrmmbTmmbQNCivmtKrmmbrotKQNCivmtKrnkKbmg6ANCivmtKroj4HpmoYNCivmtKroj7HntKsNCivmtKrpmobmmboNCivmtKrpm4Xoi5MNCivmtKrpm4Xpm68NCivmtKrpobrnlLcNCivmtKrmhYjkvLYNCivmtKrmgbrlu7cNCivmtKrmoaLpgqYNCivmtKrmr5Plq5QNCivmtKrnhYzlh68NCivmtKrnkZ7loIINCivmtKrnkZ7ok4kNCivmtKrnkZ7puL8NCivmtKrkuIflvpcNCivmtKrlnKPmgakNCivmtKrokLHplIsNCivmtKroo5XnhJwNCivmtKror5fpm4UNCivmtKrpnZblh68NCivmtKrlmInlnLsNCivmtKrlmInnj4oNCivmtKrlmInnkLMNCivmtKrlmInojrINCivmtKrlmInpqo8NCivmtKrlroENCivmtKrojaPovokNCivmtKrnlIToi6ENCivmtKrnoZXkvJ8NCivmtKrnu64NCivmtKrnu7Toia8NCivmtKrnu7Tms70NCivmtKrogoflvaYNCivmtKrlv5flvLoNCivmtKrpk63kvZANCivmtKrpk63pmLMNCivmtKrpk63plLoNCivmtKrprYHnpqcNCivmtKrlrr3ms7ANCivmtKrluobpk60NCivmtKrmhafnjrINCivmtKrmhafokI0NCivmtKrojrnnj40NCivmtKrlhJLmmI4NCivmtKrmmZPlspoNCivmtKrolZnlv4MNCivmtKrpnZnmgKENCivmtKrlo7Dpk6gNCivmtKrnpLzlkJsNCivmtKroibroj4ENCivmtKrkuL3lp78NCivmtKrkuL3pkqcNCivmtKrnu6fotKQNCivmtKrkv6rlh6QNCivmtKrliq3lhYMNCivmtKrmmaLmg4cNCivmtKrmlozlh68NCivmtKrmrYbmgKENCivmtKrnrbHkvakNCivmtKrpkrDmqLENCivnm7jlrZ/osaoNCivnuqrkurrnjq4NCivnuqrmlofpkqYNCivnuqrlkInlpoINCivnuqrkvK/nkoENCivnuqrlv5fpnJYNCivnuqrkvbPlrpwNCivnuqrlrpfpnJYNCivnuqrmgKHlqbcNCivnuqrms5PlsKcNCivnuqrplb/lhbQNCivnuqrlqIHnvr0NCivnuqrnm4jlt54NCivnuqrnpZbosaoNCivnuqrmt5HoirMNCivnuqrljZrmlY8NCivnuqrmmbrku4ENCivnuqrpkqfpl7MNCivnuqrpobrlhbQNCivnuqrpk63lnaQNCivnuqrmmZPmgakNCivnuqrlhbDmtIENCivog6HkuIHlhYMNCivog6HlsI/okI0NCivog6Hlv4PmhacNCivog6HmlofnkZwNCivog6HkuJbono0NCivog6HmraPnv7ANCivog6HnjonmhacNCivog6HlkIzkuq4NCivog6HmiJDnq6ANCivog6Hlu7flqIENCivog6Hlv5fpk60NCivog6HogrLnu7QNCivog6HkvbPnpa8NCivog6HlrprlrocNCivog6HmgKHoirMNCivog6HkuJzljYcNCivog6HoirPmhYgNCivog6Hph5HngY8NCivog6HluJ0NCivog6HnjrLlqYkNCivog6Hoi6XnlLcNCivog6Hkv67nkYANCivog6HlrrbojaMNCivog6HlsZXpk60NCivog6HmjK/kuK0NCivog6Hkuabnu7UNCivog6Hnuq/oj4ENCivog6HlubLplIsNCivog6Hmjojmt7MNCivog6Hmt5HlkJsNCivog6Hmt5Hpm4UNCivog6Hlh6/mmboNCivog6HljZrnoJoNCivog6Hmg6DlqbcNCivog6Hmma/pm68NCivog6Hmmbrpk60NCivog6Hnq6PnoJoNCivog6HotLXmnIgNCivog6Hpm4Xlpo0NCivog6Hpm4XmmboNCivog6HpobrpmoYNCivog6Hmr5Plj5ENCivog6HnkZ7mtJkNCivog6Hor5foj4ENCivog6HlmInnnJ8NCivog6HnoqflqpwNCivog6Hotavlu7cNCivog6HmhaflpoINCivog6HlrqrpnJYNCivog6HpnZnoi5ENCivog6HnkLzmlocNCivog6HogIDku4ENCivog6Hmh7/lv4MNCivog6Hngpznj40NCivojIPkuK3lqIENCivojIPmlofmlL8NCivojIPkuJbnkosNCivojIPnjonokLENCivojIPlkInluoYNCivojIPlnYfmspsNCivojIPnlKvlrpcNCivojIPkvbPpm68NCivojIPmmI7kuK0NCivojIPlhqDkvJ8NCivojIPlp5zlvablpoINCivojIPlp5zmhafmgKENCivojIPnp4vpnJ4NCivojIPpg4HlpoINCivojIPlrrbor5oNCivojIPmjK/mlocNCivojIPmjK/pup8NCivojIPogJXprYENCivojIPlm73ln7oNCivojIPmt5HnjrINCivojIPojonoi5MNCivojIPljZrlvbANCivojIPmiazlrpwNCivojIPmiazohb4NCivojIPmmbrpkqYNCivojIPpkqfmnbANCivojIPmr5PotJ4NCivojIPnkZ7npaUNCivojIPor5fmvKoNCivojIPmsYnlkJsNCivojIPnurLotKQNCivojIPmhaflpoINCivojIPmmZPmgKENCivojIPngJrmlocNCivojIPogIDogaoNCivojIPnkIfnkocNCivoi5flkI7mnbANCivorqHnq7nlrocNCivpn6bkurrnkZwNCivpn6blv5fpuL8NCivpn6bmoYLku4ENCivlgJnmmLrovrANCivlgKrnjonpvpkNCivlgKrlv5fpuL8NCivlgKrlqIHov5wNCivlgKrkvJ/mmboNCivlgKrmt5HlqbcNCivlgKrnkZ7mnJ8NCivlgKrmhafnj4oNCivlh4zkuJboirMNCivlh4zmmI7lvrcNCivlh4zpm6rmg6ANCivlh4zmhafokI0NCivllJDljYPmg6ANCivllJDmlofotKQNCivllJDmsLjlhbQNCivllJDkvZzosaoNCivllJDpgqbms7ANCivllJDmmI7lv5cNCivllJDmgJ3nu7QNCivllJDoi7HlqJwNCivllJDkvannj4oNCivllJDlm73lv6ANCivllJDmt5HoiqwNCivllJDmnJ3nuqwNCivllJDpm4Xnh5UNCivllJDkuYnlsKcNCivllJDlmInnvpoNCivllJDpn7bpnJkNCivllJDmmZPlvq4NCivllJDoqonnjqsNCivlpI/mraPpgqYNCivlpI/oia/njokNCivlpI/mmKXpppkNCivlpI/mt5Hok4kNCivlpI/ovr7kvJ8NCivlpI/mhafpvoQNCivlpI/nv4rkvKYNCivlrZnkuIrpm68NCivlrZnlo6vng5gNCivlrZnlhYPkv4oNCivlrZnmlrnku6oNCivlrZnlj6/kuLoNCivlrZnmsLjkv6ENCivlrZnnq4vmsJENCivlrZnlpoLlvawNCivlrZnkvK/kuK0NCivlrZnlv5fli4cNCivlrZnogrLoip0NCivlrZnljY/oo5UNCivlrZnlv6Dlh68NCivlrZnmmI7pqo8NCivlrZnph4folocNCivlrZnlu7rltLQNCivlrZnnvo7oi7ENCivlrZnpg4HlqbcNCivlrZnmjK/lh4kNCivlrZnkvanoirMNCivlrZnkvJ/kvKYNCivlrZnlm73kuaYNCivlrZnltIflk7INCivlrZnmg5/mraMNCivlrZnmt5HoiqwNCivlrZnmnbANCivlrZnnkKYNCivlrZnpgLjnh5UNCivlrZnkvKDlh68NCivlrZnmuqLloIINCivlrZnnnabmnbANCivlrZnpgZPpmoYNCivlrZnlmInojasNCivlrZnnurINCivlrZnosarlv5cNCivlrZnpk63puL8NCivlrZnmhafmtKUNCivlrZnlrabku6oNCivlrZnpvpnnv5QNCivlrZnkuL3lqJ8NCivlrZnngpjlrpwNCivlrZnnkYANCivlrqvlp5flp5cNCivluIjlrpzpnZINCivlvpDkuZnlj68NCivlvpDljYPnpZANCivlvpDljYPpm4UNCivlvpDlo6vli4sNCivlvpDlrZDlubMNCivlvpDlrZDlvLoNCivlvpDlsI/okI0NCivlvpDku4HlubINCivlvpDlv4PlrpwNCivlvpDmloflkJsNCivlvpDmlofnm4oNCivlvpDmnIjlqKUNCivlvpDkuJbln7oNCivlvpDku5Xms5MNCivlvpDlt6flh4wNCivlvpDmraPmgKENCivlvpDmsLjlhYkNCivlvpDmsLjpuKMNCivlvpDnjonoiqwNCivlvpDnjonmhYgNCivlvpDnq4vovr4NCivlvpDlhYnlubMNCivlvpDljKHlubMNCivlvpDlpoLljYcNCivlvpDmnInluoYNCivlvpDoib7kvLYNCivlvpDlhYvpkqcNCivlvpDlro/lrocNCivlvpDlv5flrocNCivlvpDlv5fkvJ8NCivlvpDlv5fosaoNCivlvpDmnY7lhagNCivlvpDnp4DnjrINCivlvpDogrLmhYgNCivlvpDkvbPlpoINCivlvpDkvanlpoINCivlvpDkvanplKYNCivlvpDlrpfmupANCivlvpDlv6DkuYkNCivlvpDmmIbnvr8NCivlvpDmmI7ljY4NCivlvpDmmI7puL8NCivlvpDmnb7puL8NCivlvpDmrKPlpo8NCivlvpDnn6XmnKwNCivlvpDph4folocNCivlvpDkv6HkuK0NCivlvpDkv4rmnbANCivlvpDlpZXmmZYNCivlvpDmgJ3nu7QNCivlvpDmn4/pn6wNCivlvpDnvo7njokNCivlvpDnvo7ljY4NCivlvpDoi6XppqgNCivlvpDoi7HnoZUNCivlvpDpg4HmoaYNCivlvpDlrrbmpbcNCivlvpDmjK/mtLINCivlvpDkuabmlL8NCivlvpDmtZrmnbANCivlvpDkvannpa8NCivlvpDkvJ/lh6ENCivlvpDkvJ/ls7sNCivlvpDkvJ/poboNCivlvpDlgaXpoboNCivlvpDlm73kvKYNCivlvpDlm73mmboNCivlvpDlm73ogIANCivlvpDln7nmurYNCivlvpDlqYnku6oNCivlvpDmmIbku5ENCivlvpDku47or7ANCivlvpDmlY/oirMNCivlvpDmlY/ljY4NCivlvpDmooXlh4wNCivlvpDmt5HlqJ8NCivlvpDmt5Hlq5QNCivlvpDnpaXnhLYNCivlvpDojonnnJ8NCivlvpDpm6rnkLwNCivlvpDlr4zlurcNCivlvpDmg6Dnj40NCivlvpDmjoznkZsNCivlvpDmnJ3lurcNCivlvpDoiJLkupoNCivlvpDlko/lqpsNCivlvpDov5vlrp0NCivlvpDpm4Xmo4sNCivlvpDpobrlro8NCivlvpDniLHlqbcNCivlvpDmr5Poia8NCivlvpDnkZrplYENCivlvpDnkZ7mga0NCivlvpDnkZ7ogaoNCivlvpDnkZzmlY8NCivlvpDoo5XlvawNCivlvpDotYTor4ENCivlvpDpnZbmg6ANCivlvpDlmInlro8NCivlvpDlmInnkLMNCivlvpDlmInpqbkNCivlvpDmoqbpup8NCivlvpDojaPovrANCivlvpDnlITpuL8NCivlvpDnpo/npaUNCivlvpDnu7TmiawNCivlvpDnv6DpgaUNCivlvpDpk63kvZsNCivlvpDpk63osKYNCivlvpDlh6Tlv4YNCivlvpDlvrfotKQNCivlvpDmhaflv4MNCivlvpDmhaflqbcNCivlvpDmr4Xlro8NCivlvpDpnIfkuJwNCivlvpDmmZPnraANCivlvpDlhbTmt6YNCivlvpDpnZnku6oNCivlvpDpuL/ku4ENCivlvpDotZ7nmbsNCivlvpDkuL3nj40NCivlvpDnu6fmlL8NCivlvpDmqLHoirMNCivlvpDmt68NCivlvpDoj6HnpqcNCivlvpDnjq7oiqwNCivlvpDnrbHoirgNCivlvpDpkrDnu6sNCivlvpDpkavosaoNCivkuabnmb7lt50NCivmoZHmgKHnp4sNCivmn7TlraboiJwNCivmrrfoirfoi6UNCivmrrfnu43pl7UNCivmrrfogofpmLMNCivmtabmmZPlh6QNCivnlZnlubLnhJwNCivnpZbmmZPlh6QNCivnp6bkuIDlubMNCivnp6blronnq4sNCivnp6blu7rnjq4NCivnp6bmopPpk60NCivnp6blnKPmnbANCivnp6bkuL3pm4UNCivnv4Hkuo7nkKoNCivnv4Hlo6vovakNCivnv4HlrZDlqbcNCivnv4HmlofojLkNCivnv4Hku6Xlk7INCivnv4HnjonlqJ8NCivnv4Hku7LotKQNCivnv4Hlrofpqo8NCivnv4Hlro/pnJYNCivnv4Hlv5fosaoNCivnv4HogrLnqJQNCivnv4HkvbPpn7UNCivnv4Hlrpfoo5UNCivnv4HmmI7lrokNCivnv4Hmnpfpk6QNCivnv4Hkv6Hlj7ANCivnv4Hmn4/lnKMNCivnv4Hoi7HmlowNCivnv4HmjK/oirMNCivnv4HkvanmgKENCivnv4HkvJ/kvKYNCivnv4HlgaXnuqwNCivnv4Hln7rmuIUNCivnv4HltIfluq0NCivnv4HlkK/kv6ENCivnv4HmmajogIANCivnv4Hmt5HljY4NCivnv4Hlo7nlp78NCivnv4Hmu4vkvakNCivnv4HpgLjovakNCivnv4Hpm4Xmg6ANCivnv4Hmr5Pnv44NCivnv4HnkZ7nvpoNCivnv4HkuYnlrpcNCivnv4HpvI7mmIwNCivnv4HlmInnv44NCivnv4HmoqblkJsNCivnv4Hnoqflo5UNCivnv4Hnu7Toia8NCivnv4Hpk63pgIoNCivnv4Hlvrfljb8NCivnv4HmmZPoiqwNCivnv4HpnZnnkZwNCivnv4HpupLmmIwNCivnv4Hkv6rlgKkNCivnv4Hnjq7lqJ8NCivnv4HpnZPmmY8NCivojYbkvJ/mlL8NCivoooHlpKnoi7ENCivoooHlpoLlhogNCivoooHmgKHojLkNCivoooHmn4/kvJ8NCivoooHkvJ/kvKYNCivoooHlkK/pkasNCivoooHpm4Xmg6ANCivoooHojaPngb8NCivoooHpnZnljY4NCivorrDkvbPpm68NCivpg53mlL/puL8NCivpqazkuIDmlocNCivpqazkuK3pqoUNCivpqazljaDls7ANCivpqaznjonlqJ8NCivpqazlronlpq4NCivpqazlv5fmmI4NCivpqazkvbPkvLYNCivpqazlsrPlro8NCivpqazljZfmrKMNCivpqazoi7HmnbANCivpqazkvanlqbcNCivpqazlm73olb4NCivpqazmt5Hljb8NCivpqazmmbrlkJsNCivpqaznhYzlnaQNCivpqazlmInpmoYNCivpqaznu6rlt50NCivpqazlv4blqbcNCivpqazmqLHoj4ENCivpq5jkuIDpk60NCivpq5jljYPmg6ANCivpq5jlo6vmmI4NCivpq5jlrZDmt4cNCivpq5jlsI/mlocNCivpq5jlj4vmhacNCivpq5jmloflvawNCivpq5jkuJbmmIwNCivpq5jkuLvlvLoNCivpq5jlvJjlt54NCivpq5jmraPlm70NCivpq5jnjonlpoINCivpq5jnjonppqgNCivpq5jkvIrkv4oNCivpq5jlkIjliqkNCivpq5jml63luoYNCivpq5joh7Plrr0NCivpq5jlro/pk60NCivpq5jlv5fkvJ8NCivpq5jlv5fprYENCivpq5jnp4Dpk4MNCivpq5jkuprlhbANCivpq5jkvanlkJ8NCivpq5jlpq7njq4NCivpq5jlrpfngpwNCivpq5jlubjnkZwNCivpq5jmmI4NCivpq5jmmI7njq4NCivpq5jmrKPmtIENCivpq5jph5Hlv5cNCivpq5jlkrjlrp4NCivpq5jlvabli4sNCivpq5jmn4/osaoNCivpq5jnvo7oirMNCivpq5joi7Hlh68NCivpq5jpg4Hlh68NCivpq5jls7ANCivpq5jmoKkNCivpq5jkvannu64NCivpq5jkvJ/kvKYNCivpq5jlgaUNCivpq5jlm73lk7INCivpq5jlm73lroENCivpq5jln7nnnJ8NCivpq5jlvazljp8NCivpq5jlkK/npZANCivpq5jmlY/lqIkNCivpq5jmt5HoirMNCivpq5jmt5Hmg6ANCivpq5jnrJnovoUNCivpq5jpm6rljb8NCivpq5jlqbcNCivpq5jmma/mgKENCivpq5jnkKroiJINCivpq5jlko/lvaYNCivpq5jpm4XoirMNCivpq5jpm4XohbkNCivpq5jmhI/npa8NCivpq5jmr5PovrANCivpq5jnhafpl7UNCivpq5jnkZ7nkbYNCivpq5jkuYnlv6ANCivpq5jor5flqIkNCivpq5jpooLmuIUNCivpq5jlmInoia8NCivpq5jlmInlsb8NCivpq5jlvbDpmoYNCivpq5jnnb/lhbANCivpq5jnq6/njqsNCivpq5jnv6Dnv44NCivpq5jpk7bnqZcNCivpq5jpk63mnbANCivpq5jpk63nkIcNCivpq5jku6rpk60NCivpq5jluobmlowNCivpq5jmhafokI0NCivpq5jlv4blpoINCivpq5jpnZnmsJENCivpq5jolofolocNCivpq5josLHkvKYNCivpq5jkuL3olZkNCivpq5jpoqLlk7INCivpq5jmlozpkasNCivpq5jnrbHmhacNCivpq5jolo/mtrUNCivllYblvJjmmJMNCivllYblh6Toi7ENCivlr4fkuL3pm68NCivltJTkvZHnu7QNCivltJTlgKnoi5MNCivltJTnkKbmsJENCivluLjmrKPnjokNCivlurfkuYPmnIgNCivlurfku5XlrpcNCivlurflroflroENCivlurfmlLjljY4NCivlurflrZ/mhI8NCivlurfph5HplIsNCivlurfnvo7njrINCivlurflrrblvbANCivlurfluq3nkZ4NCivlurfphY3lrrkNCivlurfmnbDmsJENCivlurfmmbrljYcNCivlurfnmbvmnbANCivlurfpm4XlqbcNCivlurfnqJrml7gNCivlurflmInlhbANCivlurfmmZPolZkNCivlurfkuL3otJ4NCivlvKANCivlvKDkuIDpuL8NCivlvKDkuYPmlocNCivlvKDkuYPkvJ8NCivlvKDlipvku4ENCivlvKDlipvlpKsNCivlvKDlj4jljYMNCivlvKDlj4jniZkNCivlvKDljYPph4wNCivlvKDlo6votKQNCivlvKDlrZDmmIwNCivlvKDlsI/okI0NCivlvKDkuK3olocNCivlvKDlsLnppqgNCivlvKDku4HmnbANCivlvKDku4HmnbANCivlvKDku4HogaoNCivlvKDlhYMNCivlvKDlhYPpmoYNCivlvKDlhYPpuL8NCivlvKDlj4sNCivlvKDlpKnlh6QNCivlvKDlsKTlrZANCivlvKDlv4PmgKENCivlvKDlv4PnkZwNCivlvKDlv4PppqgNCivlvKDmlofogrINCivlvKDmlofmmI4NCivlvKDmloflvaYNCivlvKDmlofnjrINCivlvKDmlofovakNCivlvKDmlofpkqYNCivlvKDmlofpm68NCivlvKDmlofojaMNCivlvKDmlofosaoNCivlvKDmlofmqLUNCivlvKDmlofngokNCivlvKDmlofohb4NCivlvKDmnIjlrrkNCivlvKDkuJbkuK0NCivlvKDkuJblsrMNCivlvKDkuJbmmI4NCivlvKDkuJboiqwNCivlvKDkuJbpm68NCivlvKDkuJblhJINCivlvKDkuJblo44NCivlvKDku6XlhagNCivlvKDku5XogrINCivlvKDku5Xml7sNCivlvKDliqDljYcNCivlvKDlj6/mrKMNCivlvKDlpK7mmIwNCivlvKDlt6fnjrINCivlvKDlubznjq4NCivlvKDlvJjms7ANCivlvKDlv4XmmI4NCivlvKDmraPkvZkNCivlvKDmraPlv6ANCivlvKDmraPmnbANCivlvKDmraPpmoYNCivlvKDmraPljasNCivlvKDmraPnjpcNCivlvKDmsLjmnZANCivlvKDmsLjmmIYNCivlvKDmsLjkv4oNCivlvKDmsLjmo4sNCivlvKDmsLjli4sNCivlvKDnjoTpuL8NCivlvKDnjonmrKMNCivlvKDnjonnjrINCivlvKDnjonnkKoNCivlvKDnjonok4kNCivlvKDnjonml7sNCivlvKDnq4vmlocNCivlvKDnq4vmrKMNCivlvKDnq4vpkqcNCivlvKDnq4vnuqwNCivlvKDkuqblroENCivlvKDku7LlubMNCivlvKDku7Lpk6gNCivlvKDlhYnku4ENCivlvKDlhYnkvJ8NCivlvKDlhYbln58NCivlvKDljKHmnbANCivlvKDlkInkuLANCivlvKDlpb3npLwNCivlvKDlpoLojrkNCivlvKDlrofnq6MNCivlvKDlronlpq4NCivlvKDlvI/oia8NCivlvKDml63lrpcNCivlvKDms5vpqpANCivlvKDnvr3mtIENCivlvKDoh7Pnnb8NCivlvKDoib7pk4MNCivlvKDkvZHmsJENCivlvKDkvZHnvqQNCivlvKDkvZzmiJANCivlvKDkvK/pqo8NCivlvKDlhYvkvJ8NCivlvKDlkJvlpoINCivlvKDlkJvnkZwNCivlvKDlkJ/mhYgNCivlvKDlppnmhacNCivlvKDlrovokI0NCivlvKDlro/mmKUNCivlvKDlro/nkZ4NCivlvKDlro/pk60NCivlvKDluIzlnKMNCivlvKDlv5cNCivlvKDlv5fku7ANCivlvKDlv5flrocNCivlvKDlv5foiJ8NCivlvKDlv5fmmI4NCivlvKDlv5fkvJ8NCivlvKDlv5flnZoNCivlvKDlv5fnpaUNCivlvKDlv5fnkLMNCivlvKDlv5fmupANCivlvKDlv5fovr4NCivlvKDlv5fosaoNCivlvKDlv5fosaoNCivlvKDlv5fosaoNCivlvKDlv5fpk60NCivlvKDlv5fpuL8NCivlvKDlv5fnkYQNCivlvKDmsoXnjroNCivlvKDnp4DnjokNCivlvKDnp4Dnj40NCivlvKDnp4DnkKoNCivlvKDnp4Dok4kNCivlvKDogrLlubMNCivlvKDogrLltKcNCivlvKDogrLoj4ENCivlvKDogrLmhY4NCivlvKDogrLor5oNCivlvKDogrLlvbANCivlvKDogrLnurYNCivlvKDogrLpk6gNCivlvKDogrLnjq4NCivlvKDoia/mupANCivlvKDpgpHlpoINCivlvKDkuprooZQNCivlvKDkvbPmlocNCivlvKDkvbPpn7MNCivlvKDkvbPmg6ANCivlvKDkvbPpm68NCivlvKDkvbPok4kNCivlvKDkvanluIYNCivlvKDkvannkZsNCivlvKDlj5Tnvo4NCivlvKDlrZ/njokNCivlvKDlrZ/lqbcNCivlvKDlrpfku4ENCivlvKDlrpfotKQNCivlvKDlrpzmlrANCivlvKDlsJrpkqcNCivlvKDlu7bku7sNCivlvKDlv7XmhYgNCivlvKDmgKHmrKMNCivlvKDmgKHojokNCivlvKDmgKHmhacNCivlvKDmmIbnhYwNCivlvKDmmI7liKkNCivlvKDmmI7npaUNCivlvKDmmI7nhacNCivlvKDmmI7nkosNCivlvKDljYfpkqYNCivlvKDmnpfoiqwNCivlvKDmrKPmgKENCivlvKDmrKPolZkNCivlvKDmsrvlm70NCivlvKDnp4nnpboNCivlvKDoirPoj4ENCivlvKDoirPnu6sNCivlvKDoip3lj4sNCivlvKDoirjmhacNCivlvKDph5HlsbENCivlvKDph5Hlh6QNCivlvKDpm6jnrZENCivlvKDkv6Hlj5ENCivlvKDkv4rkvJ8NCivlvKDkv4rlsKcNCivlvKDkv4rotKQNCivlvKDlhqDljY4NCivlvKDlp7/lqpoNCivlvKDlu7rpgqYNCivlvKDlu7rnpaUNCivlvKDlu7rosaoNCivlvKDlvaboj4ENCivlvKDmgJ3ku6oNCivlvKDmgZLnjq4NCivlvKDmlL/mnbANCivlvKDmmK3lhYMNCivlvKDmn5TmmI4NCivlvKDmtLLmnJ8NCivlvKDkuLrmoIsNCivlvKDnjrLlqYkNCivlvKDnlYzogaoNCivlvKDnm4jpuL8NCivlvKDnp4vlqbcNCivlvKDnuqrlkJsNCivlvKDnvo7njrINCivlvKDnvo7nvpoNCivlvKDnvo7pm68NCivlvKDnvo7pnJ4NCivlvKDoh7TokqgNCivlvKDojILphpINCivlvKDoi7HnkKYNCivlvKDpg4HoiqwNCivlvKDpg4HlqbcNCivlvKDpppnnjroNCivlvKDlubjnoqcNCivlvKDkv67osaoNCivlvKDkvKbnjq4NCivlvKDliJrnu7QNCivlvKDljp/osIsNCivlvKDlk7LlgaUNCivlvKDlk7LnkZ4NCivlvKDlk7LmppUNCivlvKDlk7Lnu7QNCivlvKDlk7Lpk60NCivlvKDlqJ/ljY4NCivlvKDlrrbmmI4NCivlvKDlrrbmjK8NCivlvKDlrrbmt6YNCivlvKDlrrbmoIsNCivlvKDlrrboj7ENCivlvKDlrrbmupANCivlvKDlrrbnkZwNCivlvKDlrrbnvqQNCivlvKDlrrbmppUNCivlvKDlrrbojaMNCivlvKDlrrbnoZUNCivlvKDlrrbnu64NCivlvKDlrrbosaoNCivlvKDlrrbosaoNCivlvKDlrrbosaoNCivlvKDlrrbotasNCivlvKDlrrbpk60NCivlvKDlrrbpk60NCivlvKDlrrbmtqYNCivlvKDlrrbmgIANCivlvKDlrrbnjq4NCivlvKDlrrnoj7ENCivlvKDlrrjlrpcNCivlvKDls7vmnbANCivlvKDls7vlmIkNCivlvKDls7vkuKUNCivlvKDls7DojaMNCivlvKDluq3mupANCivlvKDluq3njq4NCivlvKDmgannkLwNCivlvKDmjK/mupANCivlvKDmjK/plZINCivlvKDmmYvpgJoNCivlvKDmmYvosaoNCivlvKDmmY/or5oNCivlvKDmmY/pvoQNCivlvKDkuaboiKoNCivlvKDkuabnu7QNCivlvKDkuabosaoNCivlvKDkuabpk60NCivlvKDkuabppqgNCivlvKDmoLnmupANCivlvKDmoYLljY4NCivlvKDmoYLlh6QNCivlvKDms7DpnZINCivlvKDmtanloIINCivlvKDkvanmgKENCivlvKDkvannkKoNCivlvKDnm4rlt54NCivlvKDnm4rljY4NCivlvKDnm4rnu7QNCivlvKDnpZDmhYgNCivlvKDnpZDnu7QNCivlvKDnp6boirgNCivlvKDntKDnp4sNCivlvKDntKDljY4NCivlvKDnuq/nm4oNCivlvKDnuq/njq4NCivlvKDogL8NCivlvKDogL/nu7QNCivlvKDogL/ltJoNCivlvKDorq3kuYkNCivlvKDovanosaoNCivlvKDpq5jnkZ4NCivlvKDkvJ/kvKYNCivlvKDkvJ/pkqcNCivlvKDlgaXoia8NCivlvKDlm73lv5cNCivlvKDlm73mtakNCivlvKDlm73lqpsNCivlvKDlm73njroNCivlvKDloILlh6ENCivlvKDlqYnlkJsNCivlvKDlqYnmmoQNCivlvKDltIfkvJ8NCivlvKDlurfomZQNCivlvKDmg5/mjbcNCivlvKDlkK/mmI4NCivlvKDmlY/oip0NCivlvKDmooXlkJsNCivlvKDmt7Pmg6ANCivlvKDmuIXmlocNCivlvKDmuIXlh68NCivlvKDmt5HlkJsNCivlvKDmt5HoirMNCivlvKDmt5HoiqwNCivlvKDmt5Hnj40NCivlvKDmt5HotJ4NCivlvKDmt5HlqJ8NCivlvKDmt5HojLkNCivlvKDmt5HlqbcNCivlvKDmt5HnkKYNCivlvKDmt5Hpm4UNCivlvKDmt5HlqLQNCivlvKDmt5HosKgNCivlvKDmuIrlr4wNCivlvKDmtrXovakNCivlvKDnm5vnurINCivlvKDnu43mmZYNCivlvKDojonojLkNCivlvKDpgKLml7YNCivlvKDpm6rkupENCivlvKDlh6/lrocNCivlvKDlh6/mt7MNCivlvKDlh6/lspoNCivlvKDlh6/nkLMNCivlvKDlh6/otoUNCivlvKDlh6/nu7QNCivlvKDog5zku4ENCivlvKDog5zmnbANCivlvKDog5zpm4QNCivlvKDljZrlkowNCivlvKDljZrli4sNCivlvKDljZrpkqcNCivlvKDllrsNCivlvKDkuZTnv5QNCivlvKDlo7nog70NCivlvKDlqbfpn7UNCivlvKDlr4zmt7MNCivlvKDlr4znpa8NCivlvKDmg6DlpoINCivlvKDmg6Dnj4oNCivlvKDmg6DlqJ8NCivlvKDmg6DlqbcNCivlvKDmg6DnkKoNCivlvKDmg6Doj4ENCivlvKDmg6Dpm68NCivlvKDmg6DlhbANCivlvKDmlabkuYkNCivlvKDmmbTmmbQNCivlvKDmma/kvKYNCivlvKDmma/mtZENCivlvKDmma/pl7MNCivlvKDmmbrlrokNCivlvKDmmbrliJoNCivlvKDmmbrmuIUNCivlvKDmmbrmnbANCivlvKDmmbrltLQNCivlvKDmmbrnv5QNCivlvKDmmbrpkqcNCivlvKDmmbrosaoNCivlvKDmmbrosKYNCivlvKDmnJ3lh68NCivlvKDmnJ3pvpkNCivlvKDmo4vpm68NCivlvKDmuZjmgKENCivlvKDnkKrljY4NCivlvKDnkKbnu40NCivlvKDnmbvnv5QNCivlvKDnmpPltLQNCivlvKDnqIvpoboNCivlvKDntKvpk4MNCivlvKDnv5TmmboNCivlvKDoiJLnkKYNCivlvKDoiJzljY4NCivlvKDoj4HojLkNCivlvKDljY7lgKkNCivlvKDlko/ojLUNCivlvKDor4HojYMNCivlvKDotLXnkLMNCivlvKDpgLjlh6ENCivlvKDpgLjnvqQNCivlvKDph4/nhLYNCivlvKDpkqflr4wNCivlvKDpkqfotLsNCivlvKDpl7Xlr4wNCivlvKDpm4HlqbcNCivlvKDpm4Xlp5cNCivlvKDpm4XoiqwNCivlvKDpm4XnjrINCivlvKDpm4Xljb8NCivlvKDpm4XmlY8NCivlvKDpm4XlqbcNCivlvKDpm4XlqbcNCivlvKDpm4XlqbcNCivlvKDpm4XlqbcNCivlvKDpm4XlspoNCivlvKDpm4Xmg6ANCivlvKDpm4Xmg6ANCivlvKDpm4XnkKoNCivlvKDpm4XnkLQNCivlvKDpm4XokI0NCivlvKDpm4Xpm68NCivlvKDpm4Xpm68NCivlvKDpm4Xpk4MNCivlvKDpm4XojrkNCivlvKDpm6/ojLUNCivlvKDpm6/ku6oNCivlvKDpobrlkIkNCivlvKDpobrnpo8NCivlvKDll6PmlocNCivlvKDmhI/or5oNCivlvKDmhYjmtJINCivlvKDmgbrmmY8NCivlvKDmlrDlro8NCivlvKDmr5MNCivlvKDmr5PoiqwNCivlvKDmr5PkvKYNCivlvKDmr5PmtIENCivlvKDmupDpkasNCivlvKDnkZrnj4oNCivlvKDnkZ7lkJsNCivlvKDnkZ7mnbANCivlvKDnkZ7oirgNCivlvKDnkZ7lqJ8NCivlvKDnkZ7mma8NCivlvKDnkZ7moaYNCivlvKDnkZ7msLYNCivlvKDnkZzlkJsNCivlvKDnkZzlqJ8NCivlvKDnpbrljYcNCivlvKDkuYnlv6ANCivlvKDnvqTmnIsNCivlvKDlnKPojokNCivlvKDoo5XmmIwNCivlvKDoo5Xpm68NCivlvKDor5fmgKENCivlvKDor5fpm68NCivlvKDotYTmmIoNCivlvKDpgZPmmboNCivlvKDpnZbmgKENCivlvKDpvI7pk4kNCivlvKDlmInlhYMNCivlvKDlmInmraMNCivlvKDlmInlro8NCivlvKDlmInmrKMNCivlvKDlmInoiqwNCivlvKDlmInnjrINCivlvKDlmInnjrINCivlvKDlmInlk7INCivlvKDlmInmmYsNCivlvKDlmInnnJ8NCivlvKDlmInorq0NCivlvKDlmInmg6ANCivlvKDlmInpm4QNCivlvKDlmInnu7QNCivlvKDlmInlo7ANCivlvKDlmInnj6MNCivlvKDlroHppqgNCivlvKDmppXlrrkNCivlvKDojaPnm4gNCivlvKDojaPlrqoNCivlvKDojafnj4oNCivlvKDnnb/popYNCivlvKDnoqflqJ8NCivlvKDnoZXlhYMNCivlvKDnoZXmoZMNCivlvKDnpo/mlL8NCivlvKDnurLpgpENCivlvKDlvanoirMNCivlvKDnu7TlhagNCivlvKDnu7Tnj4oNCivlvKDnu7Tlk7INCivlvKDnu7TnnJ8NCivlvKDnu7Tmt7MNCivlvKDnu7TmtIENCivlvKDnv6DmlocNCivlvKDnv6DnkKoNCivlvKDogofmooENCivlvKDok5PokLENCivlvKDosarmlocNCivlvKDpk7boirMNCivlvKDpk63lrpcNCivlvKDpk63ls7ANCivlvKDpk63nv7ANCivlvKDlh6TlubMNCivlvKDlh6Tku6oNCivlvKDlub/mtakNCivlvKDlvrfmpoYNCivlvKDluobmgKENCivlvKDluobkuLANCivlvKDmhafmgKENCivlvKDmhaflqJ8NCivlvKDmhafokI0NCivlvKDmhafnrrQNCivlvKDojrnnj4oNCivlvKDljavluIYNCivlvKDpgILmgZINCivlvKDlrabkvKYNCivlvKDlv4blkJsNCivlvKDmmZPmmIANCivlvKDmmZPlqbcNCivlvKDmmZPoj4ENCivlvKDmmZPlh6QNCivlvKDnh5Xlpq4NCivlvKDnv7DmlocNCivlvKDphpLkuJYNCivlvKDplKblqbcNCivlvKDpnZnlpoINCivlvKDpnZnmgKENCivlvKDpnZnojLkNCivlvKDpvpnku4ENCivlvKDnjq/kvIoNCivlvKDosKbovr4NCivlvKDpuL/lpoINCivlvKDpuL/mmboNCivlvKDmm5zpk6gNCivlvKDnroDmraPkvJ8NCivlvKDnroDmrKPljY4NCivlvKDnroDlmInkuroNCivlvKDok53lsLkNCivlvKDkuLDnkrgNCivlvKDmgIDmgakNCivlvKDnkLzkuYsNCivlvKDnkLzmlocNCivlvKDnkLzmlocNCivlvKDnkLzmlrkNCivlvKDnkLzmg6ANCivlvKDoibrppqgNCivlvKDkuL3lkJsNCivlvKDkuL3mt5ENCivlvKDlrp3kupENCivlvKDnjK7lo6wNCivlvKDnvKTmlocNCivlvKDnu6fmmIwNCivlvKDogIDkupENCivlvKDogIDlhYENCivlvKDogIDmraMNCivlvKDogIDlo7ANCivlvKDph4rmlocNCivlvKDppqjmlocNCivlvKDppqjmlocNCivlvKDohb7lhYMNCivlvKDkv6rolrANCivlvKDlt43ogIANCivlvKDoqonppqgNCivlvKDpuaTogIANCivlvKDpnIHmnIgNCivlvKDoioMNCivlvKDlgJsNCivlvKDojJzojLkNCivlvKDnkIfpl7UNCivlvKDlqpzlqpwNCivlvKDnkKzlrpwNCivlvKDnkKzoj4ENCivlvKDoj4DlgKkNCivlvKDngpzlroENCivlvKDnjq7oirgNCivlvKDnjq7kvKYNCivlvKDnjq7lqbcNCivlvKDnrbHlkJsNCivlvKDnrbHpm68NCivlvKDphJDmhpsNCivlvKDpkrDlvakNCivlvKDnppXkvKYNCivlvKDnkoHmlocNCivlvKDplavlsLkNCivlvKDmgZLkuK0NCivmiJrkuYXmmboNCivmlZbmsLjpvpkNCivmm7nlo6vmlY8NCivmm7nmloflvaYNCivmm7nkuJbmtakNCivmm7nnq4vooYwNCivmm7nogb/nlLcNCivmm7nlv5flvLoNCivmm7nkvbPlrokNCivmm7nmmIznlLcNCivmm7nmrKPoia8NCivmm7nmmKXmlocNCivmm7nlk7LlmIkNCivmm7nls7vmmIwNCivmm7nkvanmgKENCivmm7nkvJ/ojLkNCivmm7nmt5HlqpsNCivmm7nog5zkuLANCivmm7nmmbrmrKMNCivmm7nnmpPkupENCivmm7npm4Xmg6ANCivmm7nmlrDlvaYNCivmm7nlmInmlocNCivmm7nnu7TkvKYNCivmm7nmr4Xli4cNCivmm7nnjrrnqaANCivmm7nojqjotKQNCivmooHkuYPlgaUNCivmooHku4HljY4NCivmooHmloflrokNCivmooHmloflrr4NCivmooHkuJbosaoNCivmooHmraPlv6ANCivmooHnjonnjrINCivmooHku7vkuK0NCivmooHmsZ3oiJwNCivmooHlkJvpnJkNCivmooHlv5flvawNCivmooHlv5fpk60NCivmooHogrLljY4NCivmooHkvbPov5sNCivmooHmgKHoiqwNCivmooHkuJzmnpcNCivmooHkv6HlhYMNCivmooHkv5DnkKYNCivmooHlvabosaoNCivmooHngrPpk7gNCivmooHpg4Hok4ENCivmooHlrrbmmI4NCivmooHlrrbosaoNCivmooHls7vpk60NCivmooHmmYvprYENCivmooHkvankvakNCivmooHnp6blrpwNCivmooHlgaXlv6ANCivmooHlkK/njoQNCivmooHmt5HlqJ8NCivmooHojonlqJ8NCivmooHog5zpk60NCivmooHmg6DlqbcNCivmooHmma/lsKcNCivmooHmnJ3lh68NCivmooHoiJLmgKENCivmooHpgLjoiqwNCivmooHpm4XoiJINCivmooHmgbroirgNCivmooHnkZ7ovakNCivmooHlnKPmmIwNCivmooHlmInnj40NCivmooHnoqfmhacNCivmooHnv6Dnj4oNCivmooHmhafljY4NCivmooHmmZPnu7QNCivmooHpnZnlrpwNCivmooHnkLzkuLkNCivmooHnu6fku4ENCivmooHmh7/lvrcNCivmooHnjq7nnJ8NCivmooXlhYnlrocNCivmooXpm4XlqbcNCivmr5Xlv5fljY4NCivnm5vlv4MNCivnm5vnpaUNCivnrKbogofkuK0NCivojqvmmJ/lrocNCivluoTkuIDlh6ENCivluoTkuo7ojrkNCivluoTlo6vlm70NCivluoTlrZDlh68NCivluoTku4Hlro8NCivluoTlv4PokI0NCivluoTmlofmmK0NCivluoTmlofosaoNCivluoTkuJbmnbANCivluoTlvJjku7sNCivluoTmraPmiawNCivluoTmsLjnpo8NCivluoTnjonpup8NCivluoTlpoLovakNCivluoTlhYvkvJ8NCivluoTlv5fmmI4NCivluoTlv5fojaMNCivluoTnp4Dpk4MNCivluoTogrLmppUNCivluoTkvp3lqbcNCivluoTkvbPojaMNCivluoTkvanpm68NCivluoTlnaTlk7INCivluoTlrZ/njrINCivluoTlrZ/nur4NCivluoTlrpfli4sNCivluoTlrpjnkocNCivluoTlrpznkocNCivluoTlv6Dnm4oNCivluoTmgKHovakNCivluoTmmIzmmZQNCivluoTmmI7ovr4NCivluoTkuJzmmI4NCivluoTmrKPlk7INCivluoTnjqXlrJsNCivluoTph5HpnZkNCivluoTkv4rmnbANCivluoTlu7oNCivluoTmlL/lrqoNCivluoTnp4vlrZANCivluoTnvo7ppqgNCivluoToi7HnkLQNCivluoTku5PmnbANCivluoTlrrbljYcNCivluoTlrrbpk60NCivluoTls7vmppUNCivluoTmoZPlmIkNCivluoTkvanpk4MNCivluoTnuq/nuq8NCivluoTkvJ/ku4ENCivluoTlm73ovrANCivluoTln7npkasNCivluoTlkK/mlocNCivluoTmoqjpnZINCivluoTmuIXlr4wNCivluoTmt5HoiqwNCivluoTmt5HlqbcNCivluoTmt5Hpl7UNCivluoTmt5Hnj7oNCivluoTojonojokNCivluoTlh6/ojLUNCivluoTog5zliKkNCivluoTljZrmuIUNCivluoTlsKfku7sNCivluoTlr4zmnbANCivluoTlpI3otLUNCivluoTmg6DojLkNCivluoTmg6DokI0NCivluoTmg6Dok4kNCivluoTmmbTkupENCivluoTmma/nkIcNCivluoTmmbrmtrUNCivluoTmmbrpkqcNCivluoTmnJ3pkqcNCivluoTnmbvlj5ENCivluoTlloToirMNCivluoTotLrkuZQNCivluoTpl7Xml60NCivluoTpm4Xlv4MNCivluoTpm4XnjrINCivluoTpm4XlqbcNCivluoTpm4Xmg6ANCivluoTpm4XokI0NCivluoTpm4XkupENCivluoTpm6/pm68NCivluoTltannuqwNCivluoTnkZ7ljZcNCivluoToo5XmlocNCivluoTlmInnjrINCivluoTmsYnmuIUNCivluoTnu7Tpk60NCivluoTpk63mma8NCivluoTmhaflv4MNCivluoTojrnlp78NCivluoTmoJHlro8NCivluoTolZnokI0NCivluoTplKblubMNCivluoTpnZnmgKENCivluoTmu6jnu64NCivluoTmm5zml60NCivluoTonYnlpoMNCivluoTnhpTnkp4NCivluoTppqXnurINCivluoTkuL3otrMNCivluoTmh7/lvLoNCivluoTmjYPlqIkNCivluoTmlozmmboNCivluoTnrbHlqbcNCivorrjkuIDkuYsNCivorrjkuYPnp68NCivorrjlj4jku4ENCivorrjlpKflrrkNCivorrjku4HlhagNCivorrjlhYPpk60NCivorrjlo6zogIANCivorrjlv4Pnm4gNCivorrjmloflv6ANCivorrjmlofljpoNCivorrjmlofmoZANCivorrjmlofljY4NCivorrjmlofosaoNCivorrjmlofok50NCivorrjml6XmmKUNCivorrjkuJbmsJENCivorrjkuJbmmIwNCivorrjkuJbmgawNCivorrjkuJbotKQNCivorrjliqDlro8NCivorrjlubMNCivorrjlvJjmr4UNCivorrjmraPlv6ANCivorrjmraPosIoNCivorrjmsLjmmI4NCivorrjmsLjmr4UNCivorrjnjonoirMNCivorrjnjonlqJ8NCivorrjnjonlqbUNCivorrjnlLINCivorrjnq4vnvqQNCivorrjku7LotKQNCivorrjlkI3kuJYNCivorrjlrofmnbANCivorrjmiI7lspENCivorrjms5vpopYNCivorrjoh7PlhagNCivorrjkvZHpk6gNCivorrjlhYvku7INCivorrjlkJvosaoNCivorrjlpo3luIwNCivorrjlro/kvJ8NCivorrjlro/lvrcNCivorrjlv5flkIwNCivorrjlv5flro8NCivorrjlv5fltIcNCivorrjlv5fpm4QNCivorrjlv5fnu7QNCivorrjlv5fov5wNCivorrjlv5fpuY8NCivorrjmsbblt54NCivorrjnp4Dnj4oNCivorrjnp4Dok4kNCivorrjogrLoj4ENCivorrjogrLor5oNCivorrjoia8NCivorrjotJ3lpoINCivorrjkvbPmlL8NCivorrjkvbPpm68NCivorrjkvanojLkNCivorrjljZPlsJgNCivorrjlrZ/nv5QNCivorrjlrpfojaMNCivorrjlubjpm68NCivorrjmgKHkvakNCivorrjmib/orq0NCivorrjmmI7mnbANCivorrjmmI7lvrcNCivorrjmnb7nrYkNCivorrjms5PnkK4NCivorrjoirPmhYgNCivorrjoirPpk60NCivorrjoipnnjrENCivorrjph5Hlj5ENCivorrjkv6HojaMNCivorrjkv4rpm4QNCivorrjlp7/mgKENCivorrjlvabnhLYNCivorrjmgaznu6sNCivorrjmmK3lhYMNCivorrjmn4/moaYNCivorrjnj4rnkZwNCivorrjnp4vnjrINCivorrjnvo7oirMNCivorrjnvo7ljY4NCivorrjoh7Tnu7QNCivorrjoi7HmnbANCivorrjpg4HmlY8NCivorrjkv7jmmIwNCivorrjkv67pk60NCivorrjljp/pk60NCivorrjlk7LnkZ4NCivorrjlk7LlvbANCivorrjlk7LosaoNCivorrjlk7Lnjq4NCivorrjlrrblrqMNCivorrjlrrbmnbANCivorrjlrrbml7gNCivorrjlrrblvbANCivorrjlrrbojaMNCivorrjlrrbosaoNCivorrjlrrbosaoNCivorrjlrrbluoYNCivorrjlrrjosaoNCivorrjls7vlk7INCivorrjls7vnjq4NCivorrjls7Dpk60NCivorrjluq3njq4NCivorrjmjK/muZYNCivorrjml7blmIkNCivorrjmmYvojacNCivorrjkuaYNCivorrjkuabojaMNCivorrjkuabpk6gNCivorrjmoLnlrpwNCivorrjmoJPosaoNCivorrjmtannjq4NCivorrjkvanlmIkNCivorrjnm4rovakNCivorrjnpZDojrENCivorrjntKDoj4ENCivorrjnuq/nkZwNCivorrjogL/osaoNCivorrjotKLlvpcNCivorrjkvJ/lv6ANCivorrjlm73lrokNCivorrjlm73otKQNCivorrjlqYnojLkNCivorrjlvannnJ8NCivorrjlkK/miawNCivorrjmooXoj4ENCivorrjmt7PnkIcNCivorrjmuIXmnqsNCivorrjmt5HoiqwNCivorrjmt5HotJ4NCivorrjmt5HojLkNCivorrjmt5Hmg6ANCivorrjmt5HljY4NCivorrjmt5HojrINCivorrjnm5vmmIwNCivorrjojonojokNCivorrjlh6/mg4cNCivorrjlh6/lmIkNCivorrjog5zli4sNCivorrjljZrkuLoNCivorrjljZrmo64NCivorrjloKHlpoINCivorrjlr4zlv6ANCivorrjlr4zpm4QNCivorrjmg6DlpoINCivorrjmg6Dnj40NCivorrjmg6DojLkNCivorrjmg6DnkLMNCivorrjmg6Dpm68NCivorrjmg6Dmu6INCivorrjmmbTmlpANCivorrjmma/pkqcNCivorrjmmbrnjrINCivorrjmmbrmg58NCivorrjmmbrlh68NCivorrjmmbrnv5QNCivorrjmmbrpm4QNCivorrjmmbrlvrcNCivorrjmnJ3lr4wNCivorrjpkqbosaoNCivorrjnmbvmuIoNCivorrjnq6Pog70NCivorrjlloTlh68NCivorrjoiJLojJwNCivorrjljY7lgJoNCivorrjlko/og5wNCivorrjotLXlvbANCivorrjpgLjnq6ANCivorrjov5vlhbQNCivorrjpl7Xpm4QNCivorrjpm4XmrKMNCivorrjpm4XnjrINCivorrjpm4Xmt5ENCivorrjpm4XlqbcNCivorrjpm4Xmg6ANCivorrjpm4Xmg6ANCivorrjpm4XokI0NCivorrjpm4Xpm4ENCivorrjpm4Xpm68NCivorrjpm4XmhacNCivorrjpm6/nkLMNCivorrjpobrmuIUNCivorrjmhI/oi7kNCivorrjmgbrnv5QNCivorrjmoaLnpaUNCivorrjmr5PlqJ8NCivorrjmupDms4kNCivorrjnkZ4NCivorrjnkZ7oirgNCivorrjnkZ7mgakNCivorrjnkZ7ku6oNCivorrjnkZzoirMNCivorrjnpoDmm7wNCivorrjlnKPmnbANCivorrjoo5Xkur8NCivorrjor5fnraANCivorrjpk4Poi7ENCivorrjlmInlhYMNCivorrjlmInoirMNCivorrjlmInlgKkNCivorrjlmInkvakNCivorrjlmInmg6ANCivorrjlmInpopYNCivorrjmppUNCivorrjojaPpmoYNCivorrjnkbbppqgNCivorrjnoqfnj6ANCivorrjnoZXkv64NCivorrjnrpTmtrUNCivorrjnu7TogrINCivorrjnu7TnnJ8NCivorrjnv6Dnq68NCivorrjor7ENCivorrjpk63ku4ENCivorrjpk63lk7INCivorrjpk63otKINCivorrjpmIHmlocNCivorrjlh6Tpm4UNCivorrjluobmlocNCivorrjmhaflkJsNCivorrjmhafotJ4NCivorrjmhZXotJ4NCivorrjpgILmnqsNCivorrjlv4boirMNCivorrjmmZPoj4ENCivorrjnh5XokI0NCivorrjplKbmlocNCivorrjpnZnlrpwNCivorrjpnZnpm6oNCivorrjltZjku4ENCivorrjpuL/mlocNCivorrjolrDmlocNCivorrjmgIDmlocNCivorrjnkLzmlocNCivorrjnkLzmnIgNCivorrjpmYfnpboNCivorrjkuL3ljY4NCivorrjnvKTlpoINCivorrjogIDmlocNCivorrjppqjku4ENCivorrjohb7lhYMNCivorrjot4Porq4NCivorrjmmLbljY4NCivorrjnkIflqbcNCivorrjnkK7pgqYNCivorrjlq4jnjokNCivorrjnrbHokI0NCivorrjpkrDojLkNCivorrjpi5HpuL8NCivorrjmgZLovr4NCivov57ku4HlnKMNCivov57kuJblkowNCivov57kvZHku4ENCivov57np4Dku4ENCivov57kvanms6ANCivov57oirjlh7ANCivov57lu7rmmboNCivov57np4vml7oNCivov57lrrnnkKoNCivov57moYLlro8NCivov57kvJ/mnbANCivov57lqYnku6oNCivov57lkK/mmboNCivov57og5znpaUNCivov57pm4XotJ4NCivov57lmInnuq8NCivov57luobkuLANCivov57pnZnojLkNCivpg63kuIDmoaYNCivpg63kuYPojaMNCivpg63kurrosaoNCivpg63lipvnjq4NCivpg63kuo7npa8NCivpg63lo6vljY4NCivpg63lo6vlh6QNCivpg63lrZDnq4sNCivpg63lrZDojacNCivpg63lrZDnppUNCivpg63ku4Hlk7INCivpg63lpKnnq4sNCivpg63mloflkIwNCivpg63mloflvaYNCivpg63mlofmg6ANCivpg63mlofpk6gNCivpg63msLTlsbENCivpg63kuJblhbANCivpg63ljYnpm68NCivpg63mraPlrpcNCivpg63msLjmmI4NCivpg63njonnj40NCivpg63nq4sNCivpg63nq4vovr4NCivpg63ku7LmuIoNCivpg63lhYbpm68NCivpg63lpJnlkJ8NCivpg63lubTnnJ8NCivpg63mnInplYcNCivpg63oh7Plk7INCivpg63lkJvmgKENCivpg63lro/mlocNCivpg63lro/pqo8NCivpg63lv5flro8NCivpg63lv5fnpaUNCivpg63mnY8NCivpg63msoLmnZENCivpg63ogrLlhYgNCivpg63ogrLmmIwNCivpg63ogrLnu7QNCivpg63pgqblvaYNCivpg63kvbPmrKMNCivpg63kvbPpm68NCivpg63kvbPpkasNCivpg63kvannkKYNCivpg63lpYfmlocNCivpg63lrZ/ok4kNCivpg63lrpfluoYNCivpg63lsJrli4sNCivpg63lv6DlkowNCivpg63mgKHkvLYNCivpg63mgKHlkJsNCivpg63mgKHlkJsNCivpg63mgKHnp4ANCivpg63mgKHpk4MNCivpg63mib/ku6oNCivpg63mmI7lrpcNCivpg63mmI7ls7ANCivpg63mmI7pgZMNCivpg63mmI7njq4NCivpg63mnb7popYNCivpg63mrablrokNCivpg63njp/njp8NCivpg63njqXlpqYNCivpg63oirPlkJsNCivpg63oirPpm68NCivpg63oip3nnb8NCivpg63plb/moJENCivpg63kv6Hlro8NCivpg63kv53lkJsNCivpg63kv4rlro8NCivpg63kv4rnlLcNCivpg63kv4rkv6ENCivpg63kv4rkur8NCivpg63kv5DkuqgNCivpg63lhqDlu7cNCivpg63lk4Hnp4ANCivpg63lp7/kvLYNCivpg63lp7/mrKMNCivpg63lqIHlv5cNCivpg63lu7rlro8NCivpg63lu7rlu7cNCivpg63lu7roia8NCivpg63lu7rmupANCivpg63lvablkJsNCivpg63lvabnlKsNCivpg63mgJ3lrpwNCivpg63mlL/lv6ANCivpg63mlL/nkosNCivpg63mmK3lrokNCivpg63mmK3mmL4NCivpg63mmLHml7sNCivpg63mn4/np4ANCivpg63ngrPmiJANCivpg63njrLmhYgNCivpg63nm4jlkJsNCivpg63nnIHokLENCivpg63nvo7lkJsNCivpg63nvo7lp5cNCivpg63nvo7lloQNCivpg63nvo7lhbANCivpg63ojILomZQNCivpg63otJ7lrY0NCivpg63lgI3lrokNCivpg63lubjpk6gNCivpg63lh4zlv5cNCivpg63lk7LmiJANCivpg63lk7Lnjq4NCivpg63lrrblro8NCivpg63lrrbnpaUNCivpg63lrrbosaoNCivpg63lrrbmhacNCivpg63lrrjmmIANCivpg63ls7DljYcNCivpg63luq3ok4kNCivpg63mjK/msYkNCivpg63mmY/kvZENCivpg63kuabosaoNCivpg63moYLlh6QNCivpg63mtanlv5cNCivpg63nm4rlhYMNCivpg63npZbkvZENCivpg63ntKDnu6sNCivpg63ogL/ku7sNCivpg63ovakNCivpg63lm73mraMNCivpg63lqYnnjrINCivpg63lkK/mspANCivpg63mt7vmlrANCivpg63mt5Hoiq8NCivpg63mt5HmlY8NCivpg63mt5HmhacNCivpg63pgKLnpaUNCivpg63og5wNCivpg63kuZTlubQNCivpg63mg6DpnZINCivpg63mg6Dml7sNCivpg63mmbrmmI4NCivpg63mmbrnjq4NCivpg63nkKrlqLINCivpg63lko/kvakNCivpg63ov5vmmIwNCivpg63pm4XmsZ0NCivpg63pm4XlqbcNCivpg63pm4Xoj7ENCivpg63pm4XolocNCivpg63mhYjnm4gNCivpg63nhZzltIcNCivpg63nkZ7pkqYNCivpg63kuYnmo6ANCivpg63or5flsY8NCivpg63lmInkvJ8NCivpg63moqbnq7kNCivpg63ojaPluoYNCivpg63noqflqJ8NCivpg63nurbnm4oNCivpg63ogoflvLoNCivpg63pk63mnbANCivpg63luobnlJ8NCivpg63mhafnj40NCivpg63mhafoloQNCivpg63lhJLosKYNCivpg63mmZPljYkNCivpg63mmZPpm68NCivpg63nh5XnjrINCivpg63olZnokI0NCivpg63plJ/pnJYNCivpg63pnZnnvo4NCivpg63mtY7nu7QNCivpg63pqo8NCivpg63mm5zlvbANCivpg63plYflhYMNCivpg63nkLzlqpsNCivpg63kuL3np4sNCivpg63njK7mlocNCivpg63olbTlv7ENCivpg63ppqjplYENCivpg63nrLzluoYNCivpg63ml7vnkZwNCivpg63mmZ/lrocNCivpg63mmpANCivpg63pkrDoirMNCivpg63mgZLlppkNCivpmYjkuIDmiJANCivpmYjkuIDljY4NCivpmYjkuIDnjq4NCivpmYjkuYPpko8NCivpmYjkuYPojaMNCivpmYjkurrnlIQNCivpmYjlipvlh6ENCivpmYjlj4jmmJUNCivpmYjlj4jlnKMNCivpmYjkuIrkvKYNCivpmYjljYPplKYNCivpmYjlo6vmnbANCivpmYjlpKflkIwNCivpmYjlrZDku4ENCivpmYjlrZDlvaYNCivpmYjlrZDpkqcNCivpmYjlsI/okI0NCivpmYjlt7HljYcNCivpmYjkuK3pk60NCivpmYjkuYvosJUNCivpmYjku4HlrpcNCivpmYjku4HmnbANCivpmYjku4rlh6ENCivpmYjlhYPlrZ0NCivpmYjlhYPpnZYNCivpmYjlha4NCivpmYjlpKnku4ENCivpmYjlpKnotY8NCivpmYjlv4PmgKENCivpmYjlv4PmgKENCivpmYjlv4PmtIENCivpmYjmloflt50NCivpmYjmlofmiJANCivpmYjmloflv6ANCivpmYjmlofkuq4NCivpmYjmlofmmK0NCivpmYjmlofpg44NCivpmYjmlofmtpMNCivpmYjmloflvawNCivpmYjmlofnq6ANCivpmYjmlofpkqYNCivpmYjmlofljY4NCivpmYjmlofok4kNCivpmYjmloflvrcNCivpmYjmloflraYNCivpmYjmlofpuL8NCivpmYjmlofpkrANCivpmYjmnIjlpq4NCivpmYjmsLTms4kNCivpmYjkuJblrocNCivpmYjkuJblrpcNCivpmYjkuJbmmI4NCivpmYjkuJbmnbANCivpmYjkuJbmlL8NCivpmYjkuJbluq0NCivpmYjkuJbkvJ8NCivpmYjkuJbnq6ANCivpmYjkuJbmo7sNCivpmYjkuJbnm58NCivpmYjkuJbosaoNCivpmYjkuJbms70NCivpmYjkuJbpuL8NCivpmYjkuLvmrKMNCivpmYjku6XpnZkNCivpmYjku5XoirMNCivpmYjku5XmupANCivpmYjku5Xnnb8NCivpmYjliqDmmI4NCivpmYjlip/pnJYNCivpmYjlj6/mrKMNCivpmYjlj7PmsJENCivpmYjlj7PosJUNCivpmYjlt6jptqANCivpmYjlt6fnj4oNCivpmYjlt6fmg6ANCivpmYjlt6fpopANCivpmYjlubzmrKMNCivpmYjlvJjmlocNCivpmYjlvJjmrKMNCivpmYjlvJjorq0NCivpmYjlvJjmr4UNCivpmYjlvJjpk6ANCivpmYjmnK3ln7kNCivpmYjmraPlro8NCivpmYjmraPmmIwNCivpmYjmraPoirMNCivpmYjmraPls7ANCivpmYjmraPmnbANCivpmYjmraPpm4QNCivpmYjmraPosaoNCivpmYjmraPlhbQNCivpmYjmsJENCivpmYjmsLgNCivpmYjmsLjlrpcNCivpmYjmsLjmmIwNCivpmYjmsLjpnZINCivpmYjmsLjlh4wNCivpmYjmsLjlurcNCivpmYjmsLjlr4wNCivpmYjmsLjlv5cNCivpmYjmsLjnqYYNCivpmYjmsLjnj6kNCivpmYjnjonmlocNCivpmYjnjonlpYcNCivpmYjnjonoirMNCivpmYjnjonoiqwNCivpmYjnjonnj4oNCivpmYjnjonnj40NCivpmYjnjonlqJ8NCivpmYjnjonnj6ANCivpmYjnjonmooUNCivpmYjnjonnkLMNCivpmYjnjonoj4ENCivpmYjnjonkupENCivpmYjnjonlqIcNCivpmYjnjonnkpgNCivpmYjnjonppqgNCivpmYjnlJ/mnb4NCivpmYjnn7PogrINCivpmYjnq4vlh6ENCivpmYjnq4voqIANCivpmYjnq4vmrKMNCivpmYjnq4vkvKYNCivpmYjnq4vkvJ8NCivpmYjnq4vnv44NCivpmYjnq4vnu7QNCivpmYjnq4vnv7ANCivpmYjkuqblh6ENCivpmYjkvIrkvKYNCivpmYjku7Llv5cNCivpmYjku7LotKQNCivpmYjlhYnnlKsNCivpmYjlhYnljY4NCivpmYjlhYblpZUNCivpmYjlkInliKkNCivpmYjlkJHojaMNCivpmYjlnKjmmI4NCivpmYjlpoLoiqwNCivpmYjlpoLoi7kNCivpmYjlrofmnbANCivpmYjlrofotoUNCivpmYjlronkvZENCivpmYjlronmnLQNCivpmYjml6wNCivpmYjmnInlv5cNCivpmYjmsZ/nq4sNCivpmYjnmb7mnbANCivpmYjnvr3nj4oNCivpmYjoh7Plh68NCivpmYjkuqjmiJANCivpmYjkvZHku7sNCivpmYjkvZHluq0NCivpmYjkvLjnlLANCivpmYjkvK/mnbANCivpmYjkvK/oi40NCivpmYjlhYvlrocNCivpmYjlhYvpk60NCivpmYjlkJvlpoMNCivpmYjlkJvoiKoNCivpmYjlkJvojaMNCivpmYjlkJvlhJINCivpmYjlnYfnoZUNCivpmYjlppnmoaINCivpmYjlpo3kvLYNCivpmYjlpo3np4ANCivpmYjlpqTolZkNCivpmYjlrZ3pk6gNCivpmYjlro/ku4ENCivpmYjlro/lrokNCivpmYjlro/mmIwNCivpmYjlro/ms6INCivpmYjlro/nvo4NCivpmYjlro/lvawNCivpmYjlro/pmoYNCivpmYjlro/ovr4NCivpmYjlro/pk60NCivpmYjlro/otKQNCivpmYjlro/ngpwNCivpmYjlu7fkv4oNCivpmYjlv5flsbENCivpmYjlv5flubMNCivpmYjlv5fku7INCivpmYjlv5flrokNCivpmYjlv5flro8NCivpmYjlv5fmspsNCivpmYjlv5flsrMNCivpmYjlv5fmgKENCivpmYjlv5fmmI4NCivpmYjlv5fljYcNCivpmYjlv5fmrKMNCivpmYjlv5flvaYNCivpmYjlv5fmtakNCivpmYjlv5fkvJ8NCivpmYjlv5flvLoNCivpmYjlv5fnpaUNCivpmYjlv5fnv5QNCivpmYjlv5fpm4QNCivpmYjlv5fmupANCivpmYjlv5fovr4NCivpmYjlv5fojaMNCivpmYjlv5fnu7QNCivpmYjlv5fosaoNCivpmYjlv5fosaoNCivpmYjlv5fosaoNCivpmYjlv5fov5wNCivpmYjlv5fpk60NCivpmYjlv5flrr0NCivpmYjlv5fpopYNCivpmYjlv5fpuL8NCivpmYjlv5fmlowNCivpmYjmlLjlqbcNCivpmYjmnZHpvpkNCivpmYjmspvlkJ8NCivpmYjmsbbmtKUNCivpmYjnlLgNCivpmYjnp4DlkJsNCivpmYjnp4Doip0NCivpmYjnp4DnjrINCivpmYjnp4DlqJ8NCivpmYjnp4DmlY8NCivpmYjnp4Dmg6ANCivpmYjnp4Dpm4UNCivpmYjnp4Dpk4MNCivpmYjnp4DmhacNCivpmYjnp4DlhbANCivpmYjogrLmraMNCivpmYjogrLkvZANCivpmYjogrLlpYcNCivpmYjogrLnq6ANCivpmYjogrLlu4kNCivpmYjogrLor5cNCivpmYjogrLojrkNCivpmYjogrLmlowNCivpmYjoia/mlL8NCivpmYjop4Hnp4sNCivpmYjovrDmiawNCivpmYjphYnojLkNCivpmYjkuprpk4MNCivpmYjkvp3ovrANCivpmYjkvp3nv5QNCivpmYjkvbMNCivpmYjkvbPmsZ0NCivpmYjkvbPkvLYNCivpmYjkvbPlkJ8NCivpmYjkvbPlro8NCivpmYjkvbPlpq4NCivpmYjkvbPnjqUNCivpmYjkvbPnm4gNCivpmYjkvbPnnJ8NCivpmYjkvbPmg6ANCivpmYjkvbPnkKoNCivpmYjkvbPnkKYNCivpmYjkvbPpm68NCivpmYjkvbPnvqQNCivpmYjkvbPlh6QNCivpmYjkvbPmhacNCivpmYjkvbPnkpgNCivpmYjkvbPpqo8NCivpmYjkvbPmgJwNCivpmYjkvoPlqbcNCivpmYjkvanlkJsNCivpmYjkvanlkJsNCivpmYjkvankvakNCivpmYjkvanoirgNCivpmYjkvannnJ8NCivpmYjkvannkLMNCivpmYjkvannkZwNCivpmYjkvanojrkNCivpmYjkvpHlqKUNCivpmYjlhbbpkqcNCivpmYjljY/mmIwNCivpmYjlkozmiJANCivpmYjlnaTkvZANCivpmYjlnaTmnbANCivpmYjlnaTplLoNCivpmYjlp5Tmib8NCivpmYjlrZ/kvLYNCivpmYjlrZ/oia8NCivpmYjlrZ/lqIENCivpmYjlrZ/kvJ8NCivpmYjlrZ/nkKoNCivpmYjlrZ/pk4MNCivpmYjlrZ/ovokNCivpmYjlraPkvZENCivpmYjlrpfku4ENCivpmYjlrpflv5cNCivpmYjlrpfnm4gNCivpmYjlrpfpm4QNCivpmYjlrpfml5cNCivpmYjlrpfnuqwNCivpmYjlrpfpvpkNCivpmYjlrproh7MNCivpmYjlrpzlubMNCivpmYjlrpzlkJsNCivpmYjlrpznp4ANCivpmYjlrpzlp78NCivpmYjlrpzln7kNCivpmYjlrpznvqQNCivpmYjlrpznkosNCivpmYjlrpzml7sNCivpmYjlrpvlp5cNCivpmYjlsJrmlocNCivpmYjlsJrnkZwNCivpmYjlsYXku4ENCivpmYjlsrPlkJsNCivpmYjlubjotrMNCivpmYjlubjmu6ENCivpmYjlu7bpgZMNCivpmYjlv6Doia8NCivpmYjlv6DkuYkNCivpmYjmgKENCivpmYjmgKHmlocNCivpmYjmgKHljYkNCivpmYjmgKHlhrANCivpmYjmgKHlpoINCivpmYjmgKHlpoINCivpmYjmgKHlpoINCivpmYjmgKHlpoINCivpmYjmgKHlpoINCivpmYjmgKHlpoINCivpmYjmgKHlrokNCivpmYjmgKHnq7kNCivpmYjmgKHkvLYNCivpmYjmgKHkvLYNCivpmYjmgKHkvLYNCivpmYjmgKHliKkNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlkJsNCivpmYjmgKHlu7cNCivpmYjmgKHnp4ANCivpmYjmgKHmmIwNCivpmYjmgKHoirMNCivpmYjmgKHnj4oNCivpmYjmgKHpppkNCivpmYjmgKHnnJ8NCivpmYjmgKHlqbcNCivpmYjmgKHlqbcNCivpmYjmgKHnkLQNCivpmYjmgKHoj4ENCivpmYjmgKHpm68NCivpmYjmgKHor5oNCivpmYjmgKHnoZUNCivpmYjmgKHok4kNCivpmYjmgKHmtIENCivpmYjmgKHlhJINCivpmYjmgKHpopYNCivpmYjmgKHpnZkNCivpmYjmgKHpnZkNCivpmYjmgKHoi7kNCivpmYjmgKHok4ENCivpmYjmgKHnnb8NCivpmYjmi5vor5oNCivpmYjmmJPmnZENCivpmYjmmIzmlocNCivpmYjmmIzmuK8NCivpmYjmmIbmnbANCivpmYjmmILkvZENCivpmYjmmI7mraMNCivpmYjmmI7kvLgNCivpmYjmmI7lro8NCivpmYjmmI7mnZANCivpmYjmmI7mmIwNCivpmYjmmI7mlL8NCivpmYjmmI7nj6ANCivpmYjmmI7ojokNCivpmYjmmI7lqbcNCivpmYjmmI7mpbcNCivpmYjmmI7oo5UNCivpmYjmmI7lvrcNCivpmYjmmI7otKQNCivpmYjmmI7kuLANCivpmYjmmJXmlrkNCivpmYjljYfmr4UNCivpmYjkuJzljY4NCivpmYjmnbDnm5sNCivpmYjmnb7okI0NCivpmYjmrKPlpoINCivpmYjmrKPlro8NCivpmYjmrKPlrpwNCivpmYjmrKPmgKENCivpmYjmrKPmgKENCivpmYjmrKPms7ANCivpmYjmrKPnkZwNCivpmYjmrKPlhbANCivpmYjms7Pku7sNCivpmYjms5XlhYkNCivpmYjms5Pnv5QNCivpmYjms5PpnJYNCivpmYjmsrvlrocNCivpmYjms4rovrANCivpmYjnjp/lhYkNCivpmYjnjp/kvLYNCivpmYjnjp/nkZsNCivpmYjnjqvlpoINCivpmYjnjqvlkJsNCivpmYjnjqvoirMNCivpmYjnjqvoh7sNCivpmYjnjqXnh5UNCivpmYjnp4nmt7MNCivpmYjnp4nmlowNCivpmYjoirPnj40NCivpmYjoirPokLENCivpmYjoip3lgKkNCivpmYjoip3ojIMNCivpmYjoiq/mgKENCivpmYjpgrXpkasNCivpmYjph5Hoia8NCivpmYjph5HloKQNCivpmYjph5Hlo7ANCivpmYjplb/luoYNCivpmYjpm6jmlrANCivpmYjpnZLnkZwNCivpmYjkuq3lkJsNCivpmYjkuq7kuJ4NCivpmYjkuq7lkJsNCivpmYjkuq7popYNCivpmYjkv6HkvIoNCivpmYjkv6HlrocNCivpmYjkv6Hml60NCivpmYjkv6HlkJ8NCivpmYjkv6Hlro8NCivpmYjkv6Hlro8NCivpmYjkv6HnlKsNCivpmYjkv6Hlv6ANCivpmYjkv6HmmboNCivpmYjkv6Hoo5UNCivpmYjkv6HosaoNCivpmYjkv6HlraYNCivpmYjkv53lhYMNCivpmYjkv53lvbANCivpmYjkv4rku4ENCivpmYjkv4rmlocNCivpmYjkv4rku7ANCivpmYjkv4rlkIkNCivpmYjkv4rlpoINCivpmYjkv4rlrocNCivpmYjkv4rlrokNCivpmYjkv4rmiJANCivpmYjkv4rml60NCivpmYjkv4rkvZENCivpmYjkv4rlkYgNCivpmYjkv4rlro8NCivpmYjkv4rlro8NCivpmYjkv4rlro8NCivpmYjkv4rlro8NCivpmYjkv4rlu7cNCivpmYjkv4rnlLcNCivpmYjkv4rnlLcNCivpmYjkv4roia8NCivpmYjkv4rlkowNCivpmYjkv4rmnbANCivpmYjkv4rpg44NCivpmYjkv4rlvawNCivpmYjkv4rmnbANCivpmYjkv4rlh68NCivpmYjkv4rljY4NCivpmYjkv4rmupANCivpmYjkv4rovr4NCivpmYjkv4rmppUNCivpmYjkv4rnu7QNCivpmYjkv4rosaoNCivpmYjkv4rpk60NCivpmYjkv4rpk60NCivpmYjkv4rnkosNCivpmYjkv4rmoaYNCivpmYjkv4rosJoNCivpmYjkv4rpvpkNCivpmYjkv4rnjq4NCivpmYjkv5DlrokNCivpmYjkv5Dnp4ANCivpmYjkv5DmtIENCivpmYjkv57ku7INCivpmYjkv57lppkNCivpmYjkv57pnZkNCivpmYjlhqDlpKsNCivpmYjlhqDku7ANCivpmYjlhqDlpoINCivpmYjlhqDlrocNCivpmYjlhqDlt54NCivpmYjlhqDoiJ8NCivpmYjlhqDlkKsNCivpmYjlhqDlro8NCivpmYjlhqDlu7cNCivpmYjlhqDnlLcNCivpmYjlhqDmnbANCivpmYjlhqDlkZwNCivpmYjlhqDnu7QNCivpmYjlhqDpk60NCivpmYjlhqDmoaYNCivpmYjlhqDlpo8NCivpmYjliJnpkqYNCivpmYjli4flnKgNCivpmYjli4flv5cNCivpmYjli4fovr4NCivpmYjlirLlkL4NCivpmYjljZflsYUNCivpmYjljprpk60NCivpmYjlk4HlhYgNCivpmYjlk4Hnp4ANCivpmYjlk4HovokNCivpmYjlpZXkuK0NCivpmYjlpZXku7sNCivpmYjlpZXluIYNCivpmYjlpZXliKkNCivpmYjlpZXlu7cNCivpmYjlpZXnm4gNCivpmYjlpZXovr4NCivpmYjlpZXpopYNCivpmYjlpZXok4ENCivpmYjlpY7mr48NCivpmYjlp7/mlocNCivpmYjlp7/nmb4NCivpmYjlp7/liKkNCivpmYjlp7/lkJ8NCivpmYjlp7/lspANCivpmYjlp7/nj4oNCivpmYjlp7/ok4kNCivpmYjlp7/popYNCivpmYjlp7/nkocNCivpmYjlqIHkuJ4NCivpmYjlqIHlhagNCivpmYjlqIHlrocNCivpmYjlqIHmiJANCivpmYjlqIHliqkNCivpmYjlqIHlu7cNCivpmYjlqIHlv5cNCivpmYjlqIHlv5cNCivpmYjlqIHpgpENCivpmYjlqIHnv5QNCivpmYjlqIHosaoNCivpmYjlqIHlhJINCivpmYjlqIHpnJYNCivpmYjlrqPku7sNCivpmYjlrqPmr48NCivpmYjlrqXku7sNCivpmYjlrqXosJUNCivpmYjluIXlkI0NCivpmYjlu7rkuK0NCivpmYjlu7rlhYMNCivpmYjlu7rmlocNCivpmYjlu7rku7sNCivpmYjlu7rlkIwNCivpmYjlu7rlrocNCivpmYjlu7rlrokNCivpmYjlu7rlt54NCivpmYjlu7rmiJANCivpmYjlu7rml60NCivpmYjlu7rooYwNCivpmYjlu7rlkYgNCivpmYjlu7rlro8NCivpmYjlu7rlro8NCivpmYjlu7rlro8NCivpmYjlu7rlro8NCivpmYjlu7rlu7cNCivpmYjlu7rlv5cNCivpmYjlu7rlv5cNCivpmYjlu7rnlKsNCivpmYjlu7rnlLcNCivpmYjlu7roia8NCivpmYjlu7rpgqYNCivpmYjlu7rmmI4NCivpmYjlu7rlm70NCivpmYjlu7rmiawNCivpmYjlu7rljY4NCivpmYjlu7ror4QNCivpmYjlu7rmupANCivpmYjlu7rovr4NCivpmYjlu7rojaMNCivpmYjlu7rok4kNCivpmYjlu7rovoUNCivpmYjlu7rpk60NCivpmYjlu7rpk60NCivpmYjlu7rnkosNCivpmYjlu7rli4sNCivpmYjlu7rmoaYNCivpmYjlu7rpvpkNCivpmYjlu7rng5wNCivpmYjlvablpKsNCivpmYjlvabmlocNCivpmYjlvabku7sNCivpmYjlvablkIgNCivpmYjlvablrocNCivpmYjlvabluIYNCivpmYjlvabnq7kNCivpmYjlvabkvLgNCivpmYjlvablkJsNCivpmYjlvablo64NCivpmYjlvablro8NCivpmYjlvablro8NCivpmYjlvablu7cNCivpmYjlvabnlKsNCivpmYjlvaboia8NCivpmYjlvabmmIwNCivpmYjlvablh68NCivpmYjlvabmgboNCivpmYjlvabnurYNCivpmYjlvabosaoNCivpmYjlvabmhbANCivpmYjlvabli4sNCivpmYjlvabpnJYNCivpmYjlvovlhYMNCivpmYjmgJ3lhYgNCivpmYjmgJ3lubQNCivpmYjmgJ3lpqQNCivpmYjmgJ3kuq4NCivpmYjmgJ3mupANCivpmYjmgJ3ok4kNCivpmYjmgJ3mnLQNCivpmYjmgJ3popYNCivpmYjmgJ3nv7ANCivpmYjmgJ3nkocNCivpmYjmlL/mlocNCivpmYjmlL/lro8NCivpmYjmlL/mmJUNCivpmYjmlL/lsKcNCivpmYjmlL/oo5UNCivpmYjmlL/mr4UNCivpmYjmlL/osKYNCivpmYjmmKXlpoMNCivpmYjmmKXmmI4NCivpmYjmmKXnh5UNCivpmYjmmK3mlocNCivpmYjmmK3lrocNCivpmYjmmK3kvLYNCivpmYjmmK3lv5cNCivpmYjmmK3kvJ8NCivpmYjmmK3ojaMNCivpmYjmmK3pk60NCivpmYjmmK3njq4NCivpmYjmmKDml60NCivpmYjmmKDlv5cNCivpmYjmmKDlhJINCivpmYjmmJ/lrocNCivpmYjmmJ/nhrkNCivpmYjmmLHkuJ4NCivpmYjmmLHlhagNCivpmYjmmLHmsZ0NCivpmYjmmLHlro8NCivpmYjmmLHnlKsNCivpmYjmmLHovr4NCivpmYjmmLHmoaYNCivpmYjmn5TlrokNCivpmYjmn4TmlrkNCivpmYjmn4/lhYMNCivpmYjmn4/ku70NCivpmYjmn4/lrocNCivpmYjmn4/lt54NCivpmYjmn4/lubQNCivpmYjmn4/oiJ8NCivpmYjmn4/lkKsNCivpmYjmn4/lro8NCivpmYjmn4/lv5cNCivpmYjmn4/msoUNCivpmYjmn4/lsrMNCivpmYjmn4/ls7ANCivpmYjmn4/lh68NCivpmYjmn4/nkZ4NCivpmYjmn4/lroENCivpmYjmn4/ok4kNCivpmYjmn4/nkosNCivpmYjmn4/nv7ANCivpmYjmn4/ovpENCivpmYjmn4/njq4NCivpmYjmtLLmmJ8NCivpmYjngqvlkJsNCivpmYjngrPku7INCivpmYjngrPovrANCivpmYjngrPplJ8NCivpmYjngq/plKYNCivpmYjnj4rnj4oNCivpmYjnj43ojrkNCivpmYjnmoblhbQNCivpmYjnmofml60NCivpmYjnmofpvpkNCivpmYjnm4jlhagNCivpmYjnm4jlpoINCivpmYjnm4jlpoINCivpmYjnm4jlrokNCivpmYjnm4jnq7kNCivpmYjnm4jlkJsNCivpmYjnm4jlrZwNCivpmYjnm4jmnYkNCivpmYjnm4jotJ0NCivpmYjnm4jlqbcNCivpmYjnm4jnu64NCivpmYjnm4jnkosNCivpmYjnm4josJUNCivpmYjnm4jnkocNCivpmYjnm7jovr4NCivpmYjnpYjlrr4NCivpmYjnprnpvZANCivpmYjnp5HpoboNCivpmYjnp4vmlrkNCivpmYjnp4vluIYNCivpmYjnp4vnp4ANCivpmYjnp4vnuq8NCivpmYjnp4vokI0NCivpmYjnp4vpm68NCivpmYjnp4vnh5UNCivpmYjnuqLnjokNCivpmYjnuqrotrMNCivpmYjnvo7kupENCivpmYjnvo7njokNCivpmYjnvo7lpoINCivpmYjnvo7lubQNCivpmYjnvo7kvLYNCivpmYjnvo7lkJsNCivpmYjnvo7lkJ8NCivpmYjnvo7lu7cNCivpmYjnvo7np4ANCivpmYjnvo7oip0NCivpmYjnvo7njrINCivpmYjnvo7lqJ8NCivpmYjnvo7nuq8NCivpmYjnvo7kuZQNCivpmYjnvo7mg6ANCivpmYjnvo7nkLQNCivpmYjnvo7oj7ENCivpmYjnvo7pk4MNCivpmYjnvo7mhacNCivpmYjnvo7lhJINCivpmYjnvo7pnZkNCivpmYjnvo7pkrANCivpmYjnvr/osLcNCivpmYjoh7Tku7ANCivpmYjoh7Tlro8NCivpmYjoh7Tnpo8NCivpmYjoh7Tnnb8NCivpmYjoi6Xmm6YNCivpmYjojILpm4QNCivpmYjoi7HmnbANCivpmYjoi7HmjK8NCivpmYjoi7HmnbANCivpmYjoi7Hok5MNCivpmYjoi7HpuL8NCivpmYjoi5PlqJ8NCivpmYjombnmm7INCivpmYjombnlkJ8NCivpmYjombnmtIENCivpmYjooY3oh7MNCivpmYjooY3pnJYNCivpmYjotJ7ml60NCivpmYjotJ7lpqQNCivpmYjotJ7ok4kNCivpmYjotJ7njq4NCivpmYjpg4Hku4ENCivpmYjpg4HmlocNCivpmYjpg4HoiqwNCivpmYjpg4HmnbANCivpmYjpg4Hoj4ENCivpmYjpg4HmnqsNCivpmYjph43lhYkNCivpmYjph43lu7cNCivpmYjph43lhJINCivpmYjpn6blnKgNCivpmYjpn6bkvLYNCivpmYjpn6blu7cNCivpmYjpn6bmib8NCivpmYjpn6bosaoNCivpmYjpn7MNCivpmYjpo57oia8NCivpmYjpppnlpoINCivpmYjpppnlkJ8NCivpmYjpppnlqbcNCivpmYjlgI3nlIQNCivpmYjlubjnv6ANCivpmYjlh4znoJoNCivpmYjlk7LmsJENCivpmYjlk7LlvLoNCivpmYjlk7LotKQNCivpmYjlrrbmraMNCivpmYjlrrblpYcNCivpmYjlrrbnj40NCivpmYjlrrbnpaUNCivpmYjlrrbmuZYNCivpmYjlrrbpm68NCivpmYjlrrbmsYkNCivpmYjlrrbku6oNCivpmYjlrrbmhacNCivpmYjlrrblhbQNCivpmYjlrrbnkK4NCivpmYjlrrnokLENCivpmYjls7Dlt54NCivpmYjmgZUNCivpmYjmganojaMNCivpmYjmjK/kuJwNCivpmYjmjK/mtowNCivpmYjmjK/pk60NCivpmYjml7bnm58NCivpmYjkuablhYkNCivpmYjkuabmr5MNCivpmYjmoYLnjokNCivpmYjmoYLmhacNCivpmYjms7DlhagNCivpmYjms7DkvLYNCivpmYjms7Dls7ANCivpmYjms7Dpk60NCivpmYjmtZrpkqYNCivpmYjmtanojLkNCivpmYjkvankupENCivpmYjkvanmgKENCivpmYjkvankvakNCivpmYjkvannkZwNCivpmYjkvannjq4NCivpmYjnm4roo5UNCivpmYjnpZDmgowNCivpmYjnuroNCivpmYjntKDnj40NCivpmYjntKDlqKUNCivpmYjntKDnkZwNCivpmYjnuq/mgKENCivpmYjogJjlrr0NCivpmYjojYPosaoNCivpmYjpg6HmgKENCivpmYjlubLmt6YNCivpmYjkvJ/msJENCivpmYjkvJ/kv6ENCivpmYjkvJ/ojokNCivpmYjkvJ/oo5UNCivpmYjlgaXkuIoNCivpmYjlgaXlsIENCivpmYjlgaXpnJYNCivpmYjlm73lhYMNCivpmYjlm73mmI4NCivpmYjlm73ls7ANCivpmYjlm73mooENCivpmYjlm73mo4sNCivpmYjlm73ojaMNCivpmYjlm73plIsNCivpmYjlnZrmsJENCivpmYjln7nogrINCivpmYjln7nnq68NCivpmYjlqYnogrINCivpmYjlqYnljb8NCivpmYjlqYnoj4ENCivpmYjlqYnmtIENCivpmYjltIfljp8NCivpmYjmmIbpk60NCivpmYjlvannuq8NCivpmYjmjbcNCivpmYjlkK/lrZgNCivpmYjlkK/muIUNCivpmYjlkK/pk60NCivpmYjmlY/mmJ8NCivpmYjmlY/mlrANCivpmYjmopPnjq4NCivpmYjmooXppqgNCivpmYjmuIXlpYcNCivpmYjmuIXmupANCivpmYjmt5ENCivpmYjmt5HlkJsNCivpmYjmt5HmgKENCivpmYjmt5HoiqwNCivpmYjmt5HoiqwNCivpmYjmt5HnjrINCivpmYjmt5Hnp4sNCivpmYjmt5HotJ4NCivpmYjmt5HlqJ8NCivpmYjmt5HlqJ8NCivpmYjmt5HnnJ8NCivpmYjmt5HnvpoNCivpmYjmt5Hmg6ANCivpmYjmt5HokI0NCivpmYjmt5Hpm4UNCivpmYjmt5Hpk4MNCivpmYjmt5HmhacNCivpmYjmt5HpnZkNCivpmYjmuIrnp4sNCivpmYjnjJvlrpcNCivpmYjnpaXpkqcNCivpmYjnu43luq0NCivpmYjluoTkvJ8NCivpmYjojonlqbcNCivpmYjorrjmsJENCivpmYjpm6roiqwNCivpmYjpm6rljY4NCivpmYjmnbDoo5UNCivpmYjlh6/njrINCivpmYjlh6/pkr8NCivpmYjog5zlpoINCivpmYjog5zlmIkNCivpmYjljZrlurcNCivpmYjkuZTlrocNCivpmYjlqbfnjp8NCivpmYjlr4zmsJENCivpmYjlr4zojaMNCivpmYjmg6DmlocNCivpmYjmg6DlkJsNCivpmYjmg6DoiqwNCivpmYjmg6DnjrINCivpmYjmg6Dnvo4NCivpmYjmg6DlqJ8NCivpmYjmg6DlqbcNCivpmYjmg6DokI0NCivpmYjmg6Dpm68NCivpmYjmg6Dpm68NCivpmYjmg6DpvoQNCivpmYjmiazlk7INCivpmYjmmbbmmbYNCivpmYjmma/ms7ANCivpmYjmma/pkasNCivpmYjmmbrkuq4NCivpmYjmmbrkvJ8NCivpmYjmmbrpmLMNCivpmYjmmbrlrr0NCivpmYjmnJ3mlocNCivpmYjmnJ3nhpkNCivpmYjmo4vnj40NCivpmYjmuZjkuo4NCivpmYjmuZjnkLQNCivpmYjmuJ3mlocNCivpmYjnkKrpm68NCivpmYjnkKbnkLMNCivpmYjnmbvpmoYNCivpmYjnrZHnraANCivpmYjogoPmnYMNCivpmYjoiJLmhpsNCivpmYjoj4ENCivpmYjljY7kvJ8NCivpmYjlko/kuq4NCivpmYjotLrpkrANCivpmYjovpzkuq4NCivpmYjpgLjlubMNCivpmYjpgLjmmI4NCivpmYjpgLjnm4gNCivpmYjpgLjoj4ENCivpmYjpgLjnu7QNCivpmYjpgLjpuL8NCivpmYjov5vlv5cNCivpmYjov5vpmoYNCivpmYjpkqflsY8NCivpmYjpl7XpmoYNCivpmYjpmobmlowNCivpmYjpm4XlkJsNCivpmYjpm4XnjqsNCivpmYjpm4XoiqwNCivpmYjpm4XnjrINCivpmYjpm4XnjrINCivpmYjpm4Xoi5MNCivpmYjpm4XkvakNCivpmYjpm4Xpm6oNCivpmYjpm4XlqbcNCivpmYjpm4Xmg6ANCivpmYjpm4Xmg6ANCivpmYjpm4XnkKoNCivpmYjpm4XnkLQNCivpmYjpm4Xoj4ENCivpmYjpm4Xpm68NCivpmYjpm4Xpm68NCivpmYjpm4Xpk4MNCivpmYjpm4XmhacNCivpmYjpm4Xpn7UNCivpmYjpm68NCivpmYjpm6/mg6ANCivpmYjkupHmnLQNCivpmYjpobrlj5ENCivpmYjkvKDlhbQNCivpmYjmhI/mlocNCivpmYjmhI/pm68NCivpmYjmhYjpm4UNCivpmYjniLHnlIQNCivpmYjmlazmlocNCivpmYjmlazmnbANCivpmYjmlrDng4gNCivpmYjkuJrnu58NCivpmYjmpobmtrUNCivpmYjmr5Poia8NCivpmYjmr5PojLkNCivpmYjmr5PpkqcNCivpmYjmupDmraMNCivpmYjmuKnokI0NCivpmYjnhafmhYgNCivpmYjnhabmt5ENCivpmYjnhJXmo64NCivpmYjnkZ7liKkNCivpmYjnkZ7mmIwNCivpmYjnkZ7oiqwNCivpmYjnkZ7pko8NCivpmYjnkZ7nkZwNCivpmYjnkZ7pnJYNCivpmYjnkZ7pup8NCivpmYjnkZzor5cNCivpmYjnpbrlr4wNCivpmYjnu4/lm70NCivpmYjkuYnlv6ANCivpmYjkuYnnuqwNCivpmYjlnKPlsLkNCivpmYjlnKPlrpwNCivpmYjlnKPmnbANCivpmYjlnKPlrqoNCivpmYjokLHolJMNCivpmYjonILngY8NCivpmYjoo5XljYcNCivpmYjoo5Xlu7cNCivpmYjoo5XmmboNCivpmYjor5flubMNCivpmYjor5fms4kNCivpmYjor5flqbcNCivpmYjor5for5cNCivpmYjor5foi7kNCivpmYjov5DlvoENCivpmYjovr7oo5UNCivpmYjpm40NCivpmYjpnZbmgKENCivpmYjpvI7ku4ENCivpmYjlmInku4ENCivpmYjlmInkuqgNCivpmYjlmInlro8NCivpmYjlmInmgKENCivpmYjlmInnjrINCivpmYjlmInls7ANCivpmYjlmInojLUNCivpmYjlmInmt6YNCivpmYjlmInmg6ANCivpmYjlmInpm4ENCivpmYjlmInli6QNCivpmYjlmInlvrcNCivpmYjlmInojrkNCivpmYjlmInokKUNCivpmYjlmInnkK4NCivpmYjml5fmmIwNCivpmYjojaPmnbANCivpmYjojaPov5sNCivpmYjojaPogIANCivpmYjmsYnnj40NCivpmYjmsYnolJoNCivpmYjnkbbnnJ8NCivpmYjnoqfnuqINCivpmYjnoqfkupENCivpmYjnoZXkvJ8NCivpmYjnpo/mnpcNCivpmYjnu67ljY4NCivpmYjnu7TpgqYNCivpmYjnu7Tlk7INCivpmYjnu7Tku6oNCivpmYjnv6DlqbcNCivpmYjogofpuL8NCivpmYjok5PnjrINCivpmYjlv5fnnb8NCivpmYjpk60NCivpmYjpk63ms4kNCivpmYjpk63lvLoNCivpmYjpk63pm4QNCivpmYjpk63ogIANCivpmYjlh6TnjrINCivpmYjlh6TpuKMNCivpmYjku6oNCivpmYjku6rnj4oNCivpmYjku6rmtIENCivpmYjlrr3lpoINCivpmYjlub/pup8NCivpmYjlvrflkowNCivpmYjlvrfloIINCivpmYjlvrfov5wNCivpmYjlvoHlrpcNCivpmYjluobmmJ8NCivpmYjluobljY4NCivpmYjluobnu7QNCivpmYjluobnv7ANCivpmYjluobpuL8NCivpmYjmhafnjokNCivpmYjmhaflpoINCivpmYjmhaflkJsNCivpmYjmhafoip0NCivpmYjmhafnj4oNCivpmYjmhafnjrINCivpmYjmhafnvo4NCivpmYjmhafljb8NCivpmYjmhafnnJ8NCivpmYjmhafnuq8NCivpmYjmhafmlY8NCivpmYjmhafokI0NCivpmYjmhafpm68NCivpmYjmhafok4kNCivpmYjmhafmqLUNCivpmYjmhaflhbANCivpmYjmhZXlhJINCivpmYjmr4XmraMNCivpmYjmr4XpuL8NCivpmYjmtIHpn7MNCivpmYjojrnoirMNCivpmYjojrnok4kNCivpmYjojrnnkYQNCivpmYjnuqzmgakNCivpmYjolJrpnZINCivpmYjosIroirMNCivpmYjotKTlhbgNCivpmYjovonlkIkNCivpmYjpnIflrocNCivpmYjpu47moYINCivpmYjlrabmmI4NCivpmYjlrqrku4ENCivpmYjlrqrku6oNCivpmYjlv4bpm68NCivpmYjmmZPlp5cNCivpmYjmmZPpnZINCivpmYjmmZPpo44NCivpmYjmmZPlspoNCivpmYjmmZPoj4ENCivpmYjmmZPnraANCivpmYjmmZPmhacNCivpmYjmmZPkuL0NCivpmYjmoJHlubQNCivpmYjms73nj4oNCivpmYjnh5XkvLYNCivpmYjnh5Xoj4ENCivpmYjnh5XmgJwNCivpmYjpopblkJsNCivpmYjpopbnpaUNCivpmYjpopbmhacNCivpmYjnqYbok4kNCivpmYjnv7DnkosNCivpmYjolZnoirMNCivpmYjolZnoi7kNCivpmYjplKHljY4NCivpmYjplKbnp4ANCivpmYjplKbloIINCivpmYjplKbmhacNCivpmYjplKbpuL8NCivpmYjpnZnlpoINCivpmYjpnZnlrpwNCivpmYjpnZnmgKENCivpmYjpnZnmgKENCivpmYjpnZnmgKENCivpmYjpnZnoirMNCivpmYjpnZnmt5ENCivpmYjpnZnlroENCivpmYjpnZnku6oNCivpmYjpnZnmhacNCivpmYjpnZnotKQNCivpmYjpvpnnlJ8NCivpmYjpvpnlrr0NCivpmYjmm5nkuJwNCivpmYjogarku4ENCivpmYjoh4bku4ENCivpmYjolocNCivpmYjoloflpoINCivpmYjosKbmr4UNCivpmYjpqo/miawNCivpmYjpuL/mlocNCivpmYjpuL/lv5cNCivpmYjpuL/muIUNCivpmYjpuL/oo5UNCivpmYjpuL/pnJYNCivpmYjnkoflpoINCivpmYjkuLDmjK8NCivpmYjmgIDlk7INCivpmYjnjrrkuokNCivpmYjnkLzmt4cNCivpmYjnkLzmoaYNCivpmYjoibrlv4MNCivpmYjotZ7kuK0NCivpmYjpk7/ku7sNCivpmYjpn7XlpJkNCivpmYjpn7XlpoINCivpmYjpn7XlpoINCivpmYjpn7XlpoINCivpmYjpn7Xnq7kNCivpmYjpn7XlqbcNCivpmYjpn7XpnZkNCivpmYjpuY/npr4NCivpmYjpupLlhYMNCivpmYjpupLlhagNCivpmYjkuL3mlocNCivpmYjkuL3lpoINCivpmYjkuL3lrocNCivpmYjkuL3ogIwNCivpmYjkuL3oiqwNCivpmYjkuL3ljb8NCivpmYjkuL3nj6ANCivpmYjkuL3lqbcNCivpmYjkuL3okI0NCivpmYjkuL3pm68NCivpmYjkuL3ojrINCivpmYjlrp3njokNCivpmYjlrp3ojrINCivpmYjogIDku4ENCivpmYjogIDnrJkNCivpmYjppqjmgKENCivpmYjkv6rmlocNCivpmYjmqLHlrrkNCivpmYjoqonpvoQNCivpmYjpuaTkuK0NCivpmYjmh7/mmKANCivpmYjoibPpk4MNCivpmYjoiornp4ANCivpmYjmgJzlkJsNCivpmYjml7vmlL8NCivpmYjnjqDmupANCivpmYjlp67pnI8NCivpmYjlp7XlpoINCivpmYjlp7XlkJ8NCivpmYjlp7XnkbENCivpmYjmmLbmmLENCivpmYjnj4jnkKYNCivpmYjlvafppqgNCivpmYjnkIflpoINCivpmYjloJwNCivpmYjnkK7pl7UNCivpmYjnkKzlqbcNCivpmYjnkKzoj4ENCivpmYjmpLjmtpMNCivpmYjnjq4NCivpmYjnjq7lhbgNCivpmYjnjq7ogJgNCivpmYjnjq7mmLYNCivpmYjnrbHoirMNCivpmYjnrbHlqbcNCivpmYjnrbHnraANCivpmYjokKnoirgNCivpmYjpkrDnjqsNCivpmYjpkrDlqbcNCivpmYjpkrDnjroNCivpmYjpk6vojLkNCivpmYjpnIjlrocNCivpmYjolo/pm68NCivpmYjmu6LlpoINCivpmYjmu6Lmt5ENCivpmYjlrL/lm6ANCivpmYjlrL/kvLYNCivpmYjpoZfmlocNCivpmYjpkavpup8NCivpmYblsI/nh5UNCivpmYbmraPkuYkNCivpmYblraPlro8NCivpmYbkv6HpvpkNCivpmYbmtKXljY4NCivpmYbmooXlqbcNCivpmYbkupHms7ANCivpmYblh6TnjrINCivpmYbmt6/pk4MNCivpmbbogrLlnYcNCivpmbbmg5/okLENCivnq6Dmlofoip0NCivnq6DkvbPkupENCivnq6DmoLnmupANCivnq6Dnv5QNCivnq6DnkLzmlrkNCivpuqbkvanpm68NCivpuqbljaLlrp3lhagNCivlgoXkuIDpm4QNCivlgoXlrZANCivlgoXmlofov5sNCivlgoXmraPluIwNCivlgoXlhYnmmboNCivlgoXlro/mlowNCivlgoXkuprlh6ENCivlgoXmgKHoirMNCivlgoXph5Hlro8NCivlgoXlu7rlm70NCivlgoXmmKDlhYgNCivlgoXnvo7ok4kNCivlgoXkvanmt4cNCivlgoXlm73moIsNCivlgoXlkK/nmocNCivlgoXmt5Hpm68NCivlgoXmlq/lubMNCivlgoXpm4Xljb8NCivlgoXnhYzplKYNCivlgoXpk4XmlocNCivlgoXlvrfmlL8NCivlgoXplLnmt7wNCivlgoXnkK4NCivljZXkuqbkvqANCivllrvoh7PlloQNCivkuZTlrpflsKcNCivlr4zlurfnv5QNCivlva3kuIrlkIkNCivlva3lo6sNCivlva3ku4Hlv5cNCivlva3lj4rovrANCivlva3mloflro8NCivlva3mlofmhacNCivlva3ku6Xkv6ENCivlva3mraPoia8NCivlva3njonljY4NCivlva3kvIroiqwNCivlva3lpoLmlY8NCivlva3miJDmnbANCivlva3ml63liJ0NCivlva3lro/lkJsNCivlva3lv5fosaoNCivlva3kvbPkvJ8NCivlva3lrpfmhI8NCivlva3mgKHolZkNCivlva3mnIvpm40NCivlva3np4nmraMNCivlva3kv53mrKMNCivlva3kv4rnpo8NCivlva3lhqDnkZsNCivlva3lqIHnv5QNCivlva3lu7rojaMNCivlva3lvovlh6ENCivlva3mn4/lqIENCivlva3np4vokI0NCivlva3oi6XmhYgNCivlva3pg4Hku4ENCivlva3lk7Lku4ENCivlva3mtankvKYNCivlva3kvJ/lkJsNCivlva3lm73ls7ANCivlva3ltIfkv6ENCivlva3lkK/pkqcNCivlva3mt5Hnj40NCivlva3nm5sNCivlva3pm6rnkKYNCivlva3llpzmtakNCivlva3mmbblo7ANCivlva3mu4vokI0NCivlva3oiJLlvaYNCivlva3lvIDmmI4NCivlva3pm4Xnu6INCivlva3niLHoi7kNCivlva3nkZ7oi5MNCivlva3lnKPokI0NCivlva3lmInlkJsNCivlva3ojaPmoYINCivlva3pk63mt4cNCivlva3mhaflpoINCivlva3otKTkuIANCivlva3mmZPnkKoNCivlva3plKbngqsNCivlva3pqo/mtIENCivlva3kuL3mhacNCivlva3ppqjmhacNCivlva3njq7lvaYNCivlva3pooDoi7kNCivmma/pm6jnp4sNCivmm77lh6Hlk7INCivmm77kuo7mhYgNCivmm77ljYPosaoNCivmm77lo6vovakNCivmm77lo6sNCivmm77lrZDluq0NCivmm77lsI/njrINCivmm77ku4HkvZENCivmm77lhYPlv5cNCivmm77lrZTpkrANCivmm77mlocNCivmm77mloflv6ANCivmm77mloflvawNCivmm77mlofmhacNCivmm77mlofpoZcNCivmm77kuJbnhYwNCivmm77ku6TnkZwNCivmm77lubPor7ANCivmm77mraPogIANCivmm77njonlpoINCivmm77njonoj4ENCivmm77nq4vlvrcNCivmm77ku7Lnm58NCivmm77lkInlro8NCivmm77lpoLlkJsNCivmm77lronnkKoNCivmm77nvr3lsq0NCivmm77lkJvosaoNCivmm77lv5fnjoQNCivmm77lv5fmnbANCivmm77lv5fpup8NCivmm77np4DmooUNCivmm77ogrLoj4ENCivmm77kvbPnjrINCivmm77kvbPnkbENCivmm77lraPmrYYNCivmm77lsJrlv5cNCivmm77mgKHlqJ8NCivmm77mgKHlmIkNCivmm77mib/lv5cNCivmm77mmI7lvrcNCivmm77ms5PpnJYNCivmm77oip3lhbANCivmm77kv6HmnbANCivmm77kv4rlvaYNCivmm77kv4rmmboNCivmm77kv4rosaoNCivmm77kv4rnjq4NCivmm77lhqDmoaYNCivmm77lk4HlvbANCivmm77lp7/nu64NCivmm77lqIHosJUNCivmm77lu7rlkowNCivmm77lu7rljZoNCivmm77lu7rojaMNCivmm77lu7rpnJYNCivmm77lvabpl7UNCivmm77lvabnv7ANCivmm77mgJ3nu7QNCivmm77mlL/osaoNCivmm77mmK3nv5QNCivmm77mmKDpvoQNCivmm77mn4/mtrUNCivmm77mn4/lhbQNCivmm77nmofpvpkNCivmm77np4vmlY8NCivmm77nvo7mgKENCivmm77nvo7ljY4NCivmm77nvo7pvoQNCivmm77oi7Hls7ANCivmm77pg4HmlocNCivmm77pg4HpopYNCivmm77lrrbmjK8NCivmm77lsZXlhbYNCivmm77kuabmhacNCivmm77kvannkLMNCivmm77ntKDpk4MNCivmm77ovanlvawNCivmm77kvJ/nv5QNCivmm77lgaXpgKINCivmm77lm73lv5cNCivmm77lm73kuaYNCivmm77lm73oo5UNCivmm77lm73pi4YNCivmm77lqYnmg6ANCivmm77lurjlk7INCivmm77lkK/lvLoNCivmm77mooXnjokNCivmm77mt5HoirMNCivmm77mt5HmlY8NCivmm77mt5HokI0NCivmm77mtrXlia8NCivmm77npaXovr4NCivmm77otK/mmboNCivmm77lh6/mgowNCivmm77ljZrlvaYNCivmm77lr4zpkrANCivmm77mg6DnjrINCivmm77mg6Dpm68NCivmm77mlpDnuqINCivmm77mmbrlvJgNCivmm77mmbrnpboNCivmm77muZjkupENCivmm77oiJLlubMNCivmm77ljY7pvoQNCivmm77otLXnpa8NCivmm77pkqfpvI4NCivmm77pm4XpnZINCivmm77pm4Xmg6ANCivmm77pm4Xpk4kNCivmm77kupHmspANCivmm77mhI/mlocNCivmm77mhYjmg6ANCivmm77mmZbmtLgNCivmm77muqXlhYMNCivmm77nhJXmnbANCivmm77nkZ7mmYMNCivmm77nkZvnkLMNCivmm77nraDlh4oNCivmm77lnKPnhLYNCivmm77oo5Xlh68NCivmm77or5fnv7ANCivmm77pnZblqJ8NCivmm77pvI7lhYMNCivmm77lmInoi7ENCivmm77ojaMNCivmm77noqfojrINCivmm77nu7TnvqQNCivmm77pk63ooZQNCivmm77lvrfpvpkNCivmm77luobnkYQNCivmm77mhafnnJ8NCivmm77mvoTloIkNCivmm77lrqrlv6ANCivmm77mmZPnkKoNCivmm77olZnoj4ENCivmm77pnZnmgKENCivmm77nuYHpnZINCivmm77puL/lrrYNCivmm77mgIDotKQNCivmm77nkLzmhacNCivmm77pn7XnnJ8NCivmm77kuL3lqJ8NCivmm77lrp3no4ENCivmm77nu6flop4NCivmm77ogIDotKQNCivmm77ppqjku6oNCivmm77pvoTmhacNCivmm77pg4XntZwNCivmm77nkK7lvaYNCivmm77mmpDmuIUNCivmm77nrbHlqbcNCivmm77pkrDoiqwNCivmm77nno0NCivmuLjlipvooYwNCivmuLjlo6vmsYkNCivmuLjlpKfnuqwNCivmuLjkuYvlqLQNCivmuLjmloflv5cNCivmuLjmlofogaoNCivmuLjkuJbmlowNCivmuLjmnKzlqIENCivmuLjnjonlp78NCivmuLjlhYblkJsNCivmuLjlkJvoi7kNCivmuLjlv5fkvJ8NCivmuLjmnY7pm4QNCivmuLjkuprkv5ANCivmuLjkvbPmlY8NCivmuLjkvanli4sNCivmuLjlrpflrqoNCivmuLjlrpznvqQNCivmuLjmgKHnpaUNCivmuLjmmIznv7ANCivmuLjmmI7ku6oNCivmuLjmrKMNCivmuLjpnZLpnI8NCivmuLjlpZXpnJYNCivmuLjmlL/nkosNCivmuLjnp4vmgKENCivmuLjoi7HlpoINCivmuLjlqJ/lqJ8NCivmuLjlrrbosaoNCivmuLjmganmlL8NCivmuLjkvannraANCivmuLjpq5jmnbANCivmuLjlqYnpnZINCivmuLjlkK/ovokNCivmuLjmt5HlpoINCivmuLjmt5Hmg6ANCivmuLjnpaXmnbANCivmuLjlh6/lqpwNCivmuLjkuZTmmboNCivmuLjmg6DnjrINCivmuLjmma/nv5QNCivmuLjmmbrotoUNCivmuLjmnJ3oiJwNCivmuLjnq6Pnm5sNCivmuLjoiJzmnbANCivmuLjov5vlr4wNCivmuLjpm4XoirMNCivmuLjpm4XlqbcNCivmuLjpm4XnraANCivmuLjnkZ7ojrINCivmuLjoo5XlvrcNCivmuLjojaPljY4NCivmuLjluoboirMNCivmuLjovonnpaUNCivmuLjmmZPoirgNCivmuLjplKHlrpcNCivmuLjpqo/kvJ8NCivmuLjplYfpgqYNCivmuLjnjK7nvqQNCivmuLjml7vlrqoNCivmuLjnn57nmocNCivmsaTkuIDnj4oNCivmsaTku4rlhbANCivmsaTnjonnkLQNCivmsaTlv5flv6ANCivmsaTkvbPnv7ANCivmsaTlsrPosYoNCivmsaTmsrvpgqYNCivmsaTlrrbosaoNCivmsaTlgaXmlocNCivmsaTmuIrlr4wNCivmsaTlr4zmo4sNCivmsaTlko/nkZwNCivmsaTpm4XmnqsNCivmsaTluobpk64NCivmsaTpuL/otKQNCivnhKbkv6HnpaUNCivnqIvkuYvlroENCivnqIvmlofplLoNCivnqIvnq4vovokNCivnqIvlv5fmlocNCivnqIvlsJrliJkNCivnqIvnp4npkasNCivnqIvlpZXmrKMNCivnqIvlu7rnv7ANCivnqIvmn4/nq6ANCivnqIvnp4vlhbANCivnqIvkvJ/mlL8NCivnqIvlqYnmrKMNCivnqIvmt5HnjrINCivnqIvmlpDmlocNCivnqIvpm4Xmg6ANCivnqIvor5flqbcNCivnqIvmtIHoj6ENCivnqIvnkLzokLENCivnqIvolbTpnJ4NCivnq6Xlo6voiqwNCivnq6XlvJgNCivnq6XlronkuqgNCivnq6Xkv6HlkowNCivnq6Xnvo7mu6ENCivnq6Xmg5/mlrANCivnq6XmuZjoirgNCivnq6XlnKPmnbANCivnq6Xpn7XlpoINCivnq6Xmu6Lok4kNCivoiJLlqbflqbcNCivljY7lm73plIsNCivopoPmgJ3pvZANCivotLnpqpDokbMNCivotLrljprlubMNCivotLrnkZ7kuL0NCivkubDoj4HljY4NCivovpzkv6Hnpo8NCivovpzpg4Hku4ENCivovpzmg6DnvqQNCivovpzpnZnmgKENCivpl7Xku7vov5wNCivpmLPmraPlhYkNCivkupHmmbrli4cNCivpobvkuIroi5ENCivlhq/lhYHkuK0NCivlhq/mlofmlL8NCivlhq/msLjmu6INCivlhq/kvZHpm4QNCivlhq/kvbPnkKYNCivlhq/plb/pvpkNCivlhq/lu7rnrYwNCivlhq/nvo7nj4oNCivlhq/mmYvlmIkNCivlhq/lvanlqJ8NCivlhq/ljZrkvJ8NCivlhq/nv5TnkZwNCivlhq/nkZ7pmLMNCivlhq/lv5fpgbUNCivlhq/ngr3ngpwNCivlhq/ogIDmlocNCivpu4TkuIANCivpu4TkuIDkvKYNCivpu4TkuZnkuIoNCivpu4TlipvoqIANCivpu4TkuIroirMNCivpu4Tlh6Hnu7QNCivpu4Tkuo7oiqwNCivpu4Tkuo7nj4oNCivpu4Tkuo7lk7INCivpu4Tkuo7nnJ8NCivpu4Tkuo7npa8NCivpu4TljYPoirMNCivpu4TljYPlh4wNCivpu4TljYPljY4NCivpu4Tlo6sNCivpu4Tlo6vmrKMNCivpu4Tlo6vljp8NCivpu4Tlo6vls7ANCivpu4Tlo6vpkooNCivpu4Tlo6vlmIkNCivpu4Tlo6vosaoNCivpu4Tlo6votKQNCivpu4TlpKfkvKYNCivpu4TlrZDmiY0NCivpu4TlrZDlu7oNCivpu4TlrZDljb8NCivpu4TlrZDovakNCivpu4TlrZDnqYYNCivpu4TlsI/kvakNCivpu4TlsI/lqJ8NCivpu4TlsbHls7ANCivpu4TmiY3ml7oNCivpu4TkuK3kvJ8NCivpu4TkuYvkuq0NCivpu4Tku4HlvJgNCivpu4Tku4Hoia8NCivpu4Tku4Hmn48NCivpu4Tku4HnkosNCivpu4TlhYPlsbENCivpu4TlhYPpmoYNCivpu4TlhYPpqo8NCivpu4Tlj4vosKYNCivpu4TlpKnlgaUNCivpu4TlsJHpm6gNCivpu4Tlv4PmgKENCivpu4Tlv4PmgKENCivpu4Tlv4PmgKENCivpu4Tlv4Pku6oNCivpu4Tlv4Plp64NCivpu4TmlofmraMNCivpu4TmloflrZ0NCivpu4TmlofmnZENCivpu4TmlofmgKENCivpu4Tmlofkv6ENCivpu4TmloflvaYNCivpu4TmlofnjrINCivpu4Tmlofnm4oNCivpu4Tmlofog5wNCivpu4TmlofpmoYNCivpu4TmlofnpboNCivpu4TmlofojaMNCivpu4TmlofnkosNCivpu4TmlofpvpkNCivpu4TmlofpupINCivpu4Tml6XpnZINCivpu4TmnIjnkb4NCivpu4TkuJblrokNCivpu4TkuJblrpwNCivpu4TkuJbmnIsNCivpu4TkuJblnZoNCivpu4TkuJbmtowNCivpu4TkuJblmIkNCivpu4TkuJblop4NCivpu4TkuJbpopYNCivpu4Tku6XkuZQNCivpu4Tku5Xovr4NCivpu4TliqDmrKMNCivpu4Tlj6/nlIQNCivpu4Tlt6flqbcNCivpu4TlubPlrocNCivpu4TlvJjlkIkNCivpu4TlvJjmr4UNCivpu4TmraPkuIANCivpu4TmraPlrokNCivpu4TmraPkvakNCivpu4TmraPkvJ8NCivpu4TmraPpoboNCivpu4TmraPplJ8NCivpu4TmsLjku4ENCivpu4TmsLjljYcNCivpu4TmsLjmmboNCivpu4TmsLjmsYkNCivpu4TmsYDmu6ENCivpu4TnjonlkJsNCivpu4Tnjonpm6gNCivpu4TnjonlqJ8NCivpu4TnjonlqbcNCivpu4Tnjonoj4ENCivpu4TnjonojrkNCivpu4TnjonlhbANCivpu4Tnq4vmlocNCivpu4Tnq4voiqwNCivpu4Tnq4vovr4NCivpu4Tnq4vnuqwNCivpu4TkuqbokLENCivpu4Tku7LmraMNCivpu4Tku7LnhaYNCivpu4Tku7vlu7YNCivpu4TlhYnnjokNCivpu4TlhYnmu6ENCivpu4TlhYbmlY8NCivpu4Tlhajlr4wNCivpu4TlkInlu7cNCivpu4TlkI3msaANCivpu4TlpJnmhacNCivpu4TlpoLnnJ8NCivpu4TlpoLnv7ANCivpu4Tlroflu7cNCivpu4TlrojnlLANCivpu4TlronlvrcNCivpu4Tml63lvJgNCivpu4Tml63ovokNCivpu4TmsZ/nkZwNCivpu4Tnmb7ngb8NCivpu4Togb/lkJsNCivpu4Toh7PmnrANCivpu4Toh7PpuY8NCivpu4TkvK/lubQNCivpu4TlhYvku7sNCivpu4TlkJvmgKENCivpu4TlppnoiqwNCivpu4TlrZ3lvbANCivpu4Tlro/kuq4NCivpu4Tlro/ov5sNCivpu4Tlro/pqo8NCivpu4Tlv5fku4ENCivpu4Tlv5flubMNCivpu4Tlv5fmiJANCivpu4Tlv5fmmI4NCivpu4Tlv5fkvJ8NCivpu4Tlv5flvLoNCivpu4Tlv5fmiawNCivpu4Tlv5fpm4QNCivpu4Tlv5flmIkNCivpu4Tlv5fosaoNCivpu4Tlv5fpk60NCivpu4Tlv5fpvpkNCivpu4TmnY/lpoINCivpu4Tmspvlo7ANCivpu4Tnp4DnjrINCivpu4Tnp4DlrrkNCivpu4Tnp4DljY4NCivpu4Tnp4Dok4kNCivpu4TogrLkv6ENCivpu4Toia8NCivpu4TpgqblvaYNCivpu4Tkvp3mlocNCivpu4TkvbPlhYMNCivpu4TkvbPmmKUNCivpu4TkvbPlqpsNCivpu4TkvbPljY4NCivpu4TkvbPlqLQNCivpu4TkvbPolZkNCivpu4Tkvankv5ANCivpu4TkvanokLENCivpu4TljZPlkJsNCivpu4TlnaTlvrcNCivpu4TlrZ/kuJMNCivpu4TlrZ/mqLUNCivpu4Tlrpfln7oNCivpu4TlrpfotKQNCivpu4TlrpznjrINCivpu4TlrpvotJ4NCivpu4Tlubjku6oNCivpu4Tlv7XoirkNCivpu4TmgKHlkJsNCivpu4TmgKHnj4oNCivpu4TmgKHojLkNCivpu4TmgKHokI0NCivpu4TmgKHoj4ENCivpu4TmgKHpm68NCivpu4TmgKHlmIkNCivpu4TmgKHnu7QNCivpu4TmgKHpvoQNCivpu4Tmib/lvrcNCivpu4TmmIzpvI4NCivpu4TmmI7lv5cNCivpu4TmmI7lvaYNCivpu4TmmI7nkIYNCivpu4TmmI7nkZ4NCivpu4TmmI7mhacNCivpu4TmmJXlspoNCivpu4TkuJzmtbcNCivpu4Tmnb7nraANCivpu4TmrKPmgKENCivpu4TmrKPmhIkNCivpu4TmrKPolZkNCivpu4TmsrPpoboNCivpu4TmsrvlubMNCivpu4Tnjp/nkb4NCivpu4Tnp4npkqcNCivpu4Toip3ljY4NCivpu4ToirfkupENCivpu4Tph5HmsaQNCivpu4Tph5HmoJENCivpu4Tplb/ms70NCivpu4Tkuq3okI0NCivpu4Tkuq7lh68NCivpu4Tkv6HmlocNCivpu4Tkv6HmjbcNCivpu4Tkv6Hmo6ANCivpu4Tkv6HmgboNCivpu4Tkv6HlvbANCivpu4Tkv6Hpk60NCivpu4Tkv6HpopYNCivpu4Tkv6HmlowNCivpu4Tkv53nkoENCivpu4Tkv4rnlJ8NCivpu4Tkv4rlk7INCivpu4Tkv4rmt4cNCivpu4Tkv4rmnbANCivpu4Tkv4rmnbANCivpu4Tkv4rmnbANCivpu4Tkv4rlh68NCivpu4Tkv4rmo4sNCivpu4Tkv4roiJwNCivpu4Tkv4rpmoYNCivpu4Tkv4rnpboNCivpu4Tkv4rlmIkNCivpu4Tkv4rnu7QNCivpu4Tkv4rosaoNCivpu4Tkv4rotKQNCivpu4Tkv4rpopYNCivpu4Tkv4rpvpkNCivpu4Tkv4rng6gNCivpu4Tkv57mlpANCivpu4TlhqDmgKENCivpu4TlhqDnqIsNCivpu4TlhqDpm4UNCivpu4TlhqDlrr4NCivpu4TlhqDpvpkNCivpu4Tli4fmhacNCivpu4Tljprnm5sNCivpu4Tlk4HmnbANCivpu4Tlk4Hmr4UNCivpu4TlpZXmj4YNCivpu4TlpZXpnJYNCivpu4Tlp7/lqbcNCivpu4Tlp7/nu6sNCivpu4TlqIHlh68NCivpu4TlqIHpk60NCivpu4TlrqPlh68NCivpu4TlrqPnqYYNCivpu4Tlu7rkuK0NCivpu4Tlu7rmlocNCivpu4Tlu7rpnZINCivpu4Tlu7rlh68NCivpu4Tlu7rmmboNCivpu4Tlu7rnqIsNCivpu4Tlu7rpkqcNCivpu4Tlu7rmupANCivpu4Tlu7rlvbANCivpu4Tlu7rosaoNCivpu4Tlu7rpk60NCivpu4Tlu7rli4sNCivpu4Tlu7rpopYNCivpu4Tlu7rpvpkNCivpu4TlvablpKoNCivpu4TlvablvLoNCivpu4TlvabljZoNCivpu4TlvabnmpMNCivpu4TlvabnkZwNCivpu4Tlvablrr4NCivpu4TlvabmqLUNCivpu4TlvabmlowNCivpu4TmgJ3lh68NCivpu4TmgJ3lmIkNCivpu4TmgJ3otKQNCivpu4TmgJ3njq4NCivpu4TmlL/ljp8NCivpu4TmlL/miawNCivpu4TmlL/pvpkNCivpu4TmmKXloKQNCivpu4TmmK3ku4ENCivpu4TmmK3mmboNCivpu4TmmK3nu7QNCivpu4TmmKDnkYQNCivpu4TmmLHkuK0NCivpu4TmmLHmgboNCivpu4TmmLHpvpkNCivpu4Tmn4/lhYMNCivpu4Tmn4/lvLoNCivpu4Tmn4/kuZQNCivpu4Tmn4/nv5QNCivpu4Tmn4/nkZ4NCivpu4Tmn4/nu64NCivpu4Tmn4/nkosNCivpu4Tmn4/nv7ANCivpu4Tmn4/nprINCivpu4TkuLrmoIsNCivpu4TngrPlrqoNCivpu4Tnj4rokI0NCivpu4Tnj4Dpkp8NCivpu4Tnm4jmg6ANCivpu4Tnm4jlvbANCivpu4Tnm7jlv5cNCivpu4Tnp4voirMNCivpu4Tnp4vokI0NCivpu4Tnp4vnkZsNCivpu4Tnp4vpnJ4NCivpu4Tnvo7njokNCivpu4Tnvo7njrINCivpu4Tnvo7lqJ8NCivpu4Tnvo7nvpoNCivpu4Tnvo7nrZENCivpu4Tnvo7pm68NCivpu4Tnvo7ok4kNCivpu4Tnvo7nh5UNCivpu4Toh7TmgZINCivpu4Toh7Tov5wNCivpu4Toi6XolocNCivpu4TojILmupANCivpu4Toi7HlvaYNCivpu4Toi7HmnbANCivpu4Toi7Hpk60NCivpu4TooY3pkqYNCivpu4TotJ7popYNCivpu4Tpg4Hku4ENCivpu4Tpg4HnjqsNCivpu4Tpg4Hnj4oNCivpu4Tpg4HojJcNCivpu4Tpg4HlqbcNCivpu4Tpg4Hmo6ANCivpu4Tpg4Hpm68NCivpu4Tpg4HpnZkNCivpu4Tph43lh68NCivpu4Tpn6bnkKoNCivpu4Tpn6bli4sNCivpu4TpppnmppUNCivpu4Tku5PlvaYNCivpu4Tlk7LmnqsNCivpu4TlrZnlrocNCivpu4Tlrrbnj40NCivpu4TlrrbpmoYNCivpu4TlrrbnuqwNCivpu4Tls7vls6UNCivpu4Tluq3pkrANCivpu4TmjK/nlKsNCivpu4TmjK/luq0NCivpu4TmjK/or5oNCivpu4TmjK/njrENCivpu4Tkuablr4UNCivpu4TkuabpkrANCivpu4Tms7DmmIYNCivpu4Tms7DpnJYNCivpu4TmtanlpKkNCivpu4TmtanpkqcNCivpu4TkvanoirgNCivpu4TkvanlqJ8NCivpu4TkvanoiJINCivpu4TkvannkZwNCivpu4Tnm4rlu7oNCivpu4TnpZbotKQNCivpu4TntKDnnJ8NCivpu4Tnuq/nvo4NCivpu4Tog73kuLANCivpu4Tpkorkv4oNCivpu4TkvJ/lrpkNCivpu4TkvJ/kv64NCivpu4TkvJ/ls7ANCivpu4TkvJ/mnbANCivpu4TkvJ/or5oNCivpu4TkvJ/pk60NCivpu4TlgaXlpYcNCivpu4TlgaXmmY8NCivpu4TlgaXmuqINCivpu4Tlh7DmhYgNCivpu4Tlm73lhagNCivpu4Tlm73oirMNCivpu4Tlm73kvKYNCivpu4Tlm73lsZUNCivpu4Tlm73mmYsNCivpu4Tlm73ovakNCivpu4Tlm73moIsNCivpu4Tlm73pkqcNCivpu4Tlm73oo5UNCivpu4Tlm73ojaMNCivpu4Tlm73osaoNCivpu4Tlm73pkp8NCivpu4TloILovakNCivpu4Tln7nls7sNCivpu4Tln7npk60NCivpu4TlqYnotJ4NCivpu4TlqYnoj4ENCivpu4TlsInnv5QNCivpu4TltIforq0NCivpu4TltIfpk60NCivpu4TluLjmoJENCivpu4Tlvanpk60NCivpu4Tmg5/lnKMNCivpu4TlkK/lro8NCivpu4TlkK/kv64NCivpu4TlkK/kuaYNCivpu4TlkK/lvbANCivpu4TmlY8NCivpu4TmlY/kv64NCivpu4TmlY/ljY4NCivpu4TmlY/mhacNCivpu4TmooXnjrINCivpu4Tmt7vomY4NCivpu4TmuIXms7ANCivpu4TmuIXpup8NCivpu4Tmt5HlspENCivpu4Tmt5HoiqwNCivpu4Tmt5HnjrINCivpu4Tmt5HotJ4NCivpu4Tmt5Hljb8NCivpu4Tmt5HmoYMNCivpu4Tmt5HmooUNCivpu4Tmt5HlqpsNCivpu4Tmt5HnkKoNCivpu4Tmt5HljY4NCivpu4Tmt5Hpm68NCivpu4Tmt5HnlIQNCivpu4Tmt5HpnZkNCivpu4TmuIrotKQNCivpu4Tnmo4NCivpu4TnpaXmgakNCivpu4TnpaXmlowNCivpu4Tnu43okLENCivpu4TojokNCivpu4TojonlqJ8NCivpu4TojonnkKoNCivpu4TojonlmIkNCivpu4TpgJTlsqkNCivpu4Tpm6rlh6QNCivpu4TmnbDmlocNCivpu4Tlh6/lqIENCivpu4Tlh6/nkKoNCivpu4Tlh6/pup8NCivpu4Tog5zlv5cNCivpu4Tog5zoo5UNCivpu4TljZrms7ANCivpu4Tllpzpup8NCivpu4TlsKfkvJ8NCivpu4TlqbflqbcNCivpu4Tlr4wNCivpu4Tlr4zor6YNCivpu4TlpI3ogaoNCivpu4Tmg6DlkJsNCivpu4Tmg6DoiqwNCivpu4Tmg6Dnj40NCivpu4Tmg6DlqKUNCivpu4Tmg6DmlY8NCivpu4Tmg6DnkLQNCivpu4Tmg6Dli6QNCivpu4Tmg6Dor5cNCivpu4Tmg6DpnJ4NCivpu4TmiazlkI0NCivpu4Tmlq/pqo8NCivpu4Tmma/oo5UNCivpu4Tmmbrli4cNCivpu4TmmbrkvJ8NCivpu4TmmbrlurcNCivpu4TmmbrpmoYNCivpu4Tmmbrpk60NCivpu4Tmmbrnjq4NCivpu4TmnJ3nkLQNCivpu4TmnJ3mooENCivpu4TmpI3mh4sNCivpu4TmuZjlt6cNCivpu4TmuZjlqbcNCivpu4TmuJ3oirMNCivpu4TnkKrlqbcNCivpu4TnkLPpkqcNCivpu4TnkKbmo7sNCivpu4TnmbvplK4NCivpu4Tnq6PljZcNCivpu4TnrZHpkrANCivpu4TlloTmmZYNCivpu4ToiJLlvaYNCivpu4ToiJzlv6ANCivpu4Toj4HolocNCivpu4Toj4roi7ENCivpu4Tlko/nkZ4NCivpu4TotLXloIINCivpu4TpgLgNCivpu4TpgLjnuq8NCivpu4TpgLjnjq4NCivpu4TpkqfmsoENCivpu4Tpl7XlhpwNCivpu4Tpm4XlkJsNCivpu4Tpm4XoirMNCivpu4Tpm4XmtKUNCivpu4Tpm4XnjrINCivpu4Tpm4Xljb8NCivpu4Tpm4Xmt5ENCivpu4Tpm4Xpm6oNCivpu4Tpm4Xmg6ANCivpu4Tpm4XnkKoNCivpu4Tpm4XnkLQNCivpu4Tpm4XokI0NCivpu4Tpm4Xpm68NCivpu4Tpm4XokLENCivpu4Tpm4Xpk4MNCivpu4Tpm4XmhacNCivpu4Tpm4XpvoQNCivpu4Tpm6/njokNCivpu4Tpm6/nraANCivpu4TpobrlkIkNCivpu4TkvKDlm7QNCivpu4Tlu4nmmboNCivpu4TmhI/ojLkNCivpu4TmhI/otoUNCivpu4TmhYgNCivpu4TmlazlhYMNCivpu4TmlazmlowNCivpu4TmmZbmlocNCivpu4TmpbfnpboNCivpu4TmpoblqbcNCivpu4Tmr5Pnv44NCivpu4Tmr5PljY4NCivpu4TmupDnkosNCivpu4Tnhaflh68NCivpu4TnhabmsJsNCivpu4TnkZ/oirgNCivpu4TnkZ7kvLYNCivpu4TnkZ7lsY8NCivpu4TnkZ7npaUNCivpu4TnkZ7pmLMNCivpu4TnkZ7lhbQNCivpu4TnkZzmt5ENCivpu4Tnm5/lh68NCivpu4TnpbroiqwNCivpu4TnraDnnJ8NCivpu4TkuYnlkJsNCivpu4TkuYnpk60NCivpu4TnvqTpm4QNCivpu4TlnKPlnLMNCivpu4TlnKPlk7INCivpu4TlnKPmnbANCivpu4TlnKPmo7sNCivpu4TlnKPpuL8NCivpu4Too5XkuK0NCivpu4Too5XlrpwNCivpu4Too5Xnm5sNCivpu4Too5Xnv5QNCivpu4Too5XmmLYNCivpu4Tor5foirgNCivpu4Tor5fojLkNCivpu4Tor5fmtrUNCivpu4Tor5fmg6ANCivpu4Tor5fpm68NCivpu4Tor5foi7kNCivpu4TpgZPlhagNCivpu4Tpk4PnkKoNCivpu4Tpmr3nkKYNCivpu4TpnZboirgNCivpu4TpnZbmg6ANCivpu4TpnZbpm68NCivpu4TpvI7og70NCivpu4TlmInmsJENCivpu4TlmInli4cNCivpu4TlmInkvKYNCivpu4TlmInpm6oNCivpu4TlmInokLENCivpu4TlmInotKQNCivpu4TojaPlsbENCivpu4TojaPpoboNCivpu4TmsYnlhYkNCivpu4TmsYnovokNCivpu4Tnnb/kvLgNCivpu4TnoqfkupENCivpu4Tnpa/luoYNCivpu4Tnu7QNCivpu4Tnu7TmmboNCivpu4Togoflro8NCivpu4Tov5zlro8NCivpu4Tpk63kvJ8NCivpu4Tpk63ovokNCivpu4TprYHlvawNCivpu4Tku6rlkJsNCivpu4Tlvrfnp4ANCivpu4TlvrfngpwNCivpu4TluobljY4NCivpu4TmhafnjokNCivpu4TmhafoiqwNCivpu4TmhaflqJ8NCivpu4TmhafojLkNCivpu4Tmhafoj4ENCivpu4Tmhafnpa8NCivpu4TmvoTkvJ8NCivpu4TolJrku4ENCivpu4TotKTnq6ANCivpu4TpnIflrocNCivpu4TlrqrlvpcNCivpu4Tlv4boj4ENCivpu4TmmZPkvakNCivpu4TmmZPpn7MNCivpu4TmmZPoj7ENCivpu4TmmZPolocNCivpu4Tnh5XlqKUNCivpu4TlhbTlhYMNCivpu4TolZnokI0NCivpu4Tpk67mmZYNCivpu4TplKbnq6ANCivpu4TpnZnlrZANCivpu4TpnZnlrpwNCivpu4TpnZnmgKENCivpu4TpnZnojokNCivpu4TpvpnkuIANCivpu4TlupTnkocNCivpu4TogarnkKoNCivpu4TolofnkLwNCivpu4Tpqo/ovr4NCivpu4TpuL/mmboNCivpu4TnpLzkvLgNCivpu4TolrDojrkNCivpu4Tlj4znjokNCivpu4TmgIDluoYNCivpu4TngJrlvrcNCivpu4TnkLzlpoMNCivpu4TnkLzljY4NCivpu4TnkLzku6oNCivpu4TnkLzku6oNCivpu4TnkLzmhacNCivpu4TnkLzmhacNCivpu4TnkLzosIoNCivpu4TnkLwNCivpu4TplZznlJ8NCivpu4Tpn7XlpoINCivpu4Tpn7Xpn7UNCivpu4TpuY/lm74NCivpu4TkuL3lpoMNCivpu4TkuL3oiqwNCivpu4TkuL3pppkNCivpu4TkuL3lrrkNCivpu4TkuL3ok4kNCivpu4TkuL3pk64NCivpu4Tlrp3njokNCivpu4Tlrp3ku6oNCivpu4Tlrp3nqLkNCivpu4TnjK7osIYNCivpu4Tnu6flop4NCivpu4TogIDmlocNCivpu4TogIDkv4oNCivpu4TogIDlvrcNCivpu4TogIDojrkNCivpu4TogIDovokNCivpu4Torq7lvrcNCivpu4Tpkp/oi4cNCivpu4TppqjmgKENCivpu4Tppqjku6oNCivpu4TppqjmhacNCivpu4Tppqjmr4UNCivpu4TppqjpnIgNCivpu4TpvoTokLENCivpu4TlhbDnjokNCivpu4Tpk4HosaoNCivpu4TmmL7lqbcNCivpu4ToibPnjokNCivpu4TnjqDmmZ8NCivpu4Tlp7XnkYQNCivpu4TmmLbmlowNCivpu4Tli5bovakNCivpu4TnkIfoi5MNCivpu4Tnv4rlrrgNCivpu4TmnqjlkIkNCivpu4TnkK7lr4wNCivpu4TnkKzlkJsNCivpu4TnkKzlqbcNCivpu4TnkKzpm68NCivpu4TnkKznkYINCivpu4Toj4Dpk4MNCivpu4TmmpDnnb8NCivpu4Tnjq7mrKMNCivpu4Tnjq7lroENCivpu4TnrbHoirgNCivpu4TnrbHkuZQNCivpu4TnrbHpm4ENCivpu4TnrbHoi7kNCivpu4TpkrDlqJ8NCivpu4TpkrDlqbcNCivpu4TpkrDlqbcNCivpu4TpkrDmlpANCivpu4TpkrDpm68NCivpu4TpkrLpl7UNCivpu4Tnno0NCivpu4Tolo/mvoQNCivpu4TorLXor7QNCivpu4TpvoYNCivmtoLlt6flv4YNCivmtoLml7bpm6gNCivmtoLlqoTkupENCivmnagNCivmnajkurrpopYNCivmnajkuInotKQNCivmnajljYPph4wNCivmnajljYPmhacNCivmnajlo6vlvJgNCivmnajlo6vmnIsNCivmnajlo6vmr4UNCivmnajlo6votKQNCivmnajlpKfmr4UNCivmnajlrZDmgZINCivmnajlrZDmr4UNCivmnajlrZDnkaINCivmnajlsI/mhacNCivmnajkuK3lrZoNCivmnajkuYvmhacNCivmnajku4HljY4NCivmnajku4vmlocNCivmnajlhYHkuK0NCivmnajlv4PmgKENCivmnajlv4PlvrcNCivmnajmloflro8NCivmnajmlofmnbANCivmnajmloflqpsNCivmnajmlofnkZ4NCivmnajmlofku6oNCivmnajmlofnjq4NCivmnajkuJblubMNCivmnajkuJblh68NCivmnajkuJbpuY8NCivmnajku5XppqgNCivmnajlj6/mrYYNCivmnajlvJjlhYgNCivmnajmnKzlnKMNCivmnajmraPlvawNCivmnajmsLjmraMNCivmnajmsLjnkKYNCivmnajnjonlkJsNCivmnajnjonpvI4NCivmnajnmb3psrgNCivmnajnq4vnvqQNCivmnajku7LmsJENCivmnajlhYbpkqYNCivmnajlpoPlqbcNCivmnajlrojln44NCivmnajml6jnpaUNCivmnajoh6rpm4QNCivmnajkvLbmhacNCivmnajlppnmgakNCivmnajlro/npaUNCivmnajlv5flubMNCivmnajlv5fog70NCivmnajlv5fkvJ8NCivmnajlv5fnpaUNCivmnajlv5fpm40NCivmnajlv5flraYNCivmnajmspvojrMNCivmnajnp4Dnj6ANCivmnajnp4DmhacNCivmnajogrLnnJ8NCivmnajogrLlhJINCivmnajkuprnkKYNCivmnajkvbPmrKMNCivmnajkvbPlsZUNCivmnajkvbPoj4ENCivmnajkvbPmkrANCivmnajkvbPokKQNCivmnajkvannj4oNCivmnajkvanlhJINCivmnajlhbbngJoNCivmnajlnaToi7ENCivmnajlpYfmg6ANCivmnajlrZ/kv64NCivmnajlrZ/ok4kNCivmnajlrZ/nv7ANCivmnajlrpcNCivmnajlrpflgI0NCivmnajlrpflsKcNCivmnajlrpflhJINCivmnajlrpfpopYNCivmnajlrpfnv7ANCivmnajlrpfng5wNCivmnajlrpzmlocNCivmnajlrpznkosNCivmnajlrpzok4ENCivmnajlsJrorq0NCivmnajlsJrono0NCivmnajlsrHlhJINCivmnajlv6Dku4ENCivmnajlv6DlrqoNCivmnajmgKHoirMNCivmnajmgKHokI0NCivmnajmib8NCivmnajmib/nhrkNCivmnajmmJPkvKYNCivmnajmmIzlrr4NCivmnajmmIbpnJYNCivmnajmmI7mnbANCivmnajmmI7nuq8NCivmnajmmI7or5oNCivmnajmmI7lr7ANCivmnajmmI7npqcNCivmnajljYfmoaYNCivmnajkuJzmlY8NCivmnajmnb7pk60NCivmnajmrKPmgKENCivmnajmrKPkvakNCivmnajmrKPnh5UNCivmnajms5PopJgNCivmnajnp4npoboNCivmnajoirPpm4QNCivmnajoirgNCivmnajph5HnkosNCivmnajplb/mtIENCivmnajpnZLls7ANCivmnajkv4rlro8NCivmnajkv4rovokNCivmnajlpZXmmLYNCivmnajlu7rlvaYNCivmnajmgJ3pmr0NCivmnajmlL/lvawNCivmnajmlL/li4sNCivmnajmlL/pnJYNCivmnajmmK3ovokNCivmnajkuLroiJwNCivmnajnp4vnlLcNCivmnajnuqroirgNCivmnajnvo7njrINCivmnajnvo7mg6ANCivmnajnvo7oiboNCivmnajoi5HliKkNCivmnajlgKkNCivmnajlk7LlrokNCivmnajlk7Lpk60NCivmnajlrrbmmI4NCivmnajlrrbnpboNCivmnajlrrbpk60NCivmnajlrrbnjq4NCivmnajmga3mspsNCivmnajmjK/lrpcNCivmnajmjK/msYkNCivmnajmmY/oj4ENCivmnajkuabosaoNCivmnajmtpPmqLENCivmnajkvanlkJsNCivmnajkvannkKYNCivmnajnnJ/nj6ANCivmnajntKDljb8NCivmnajojZDnv5QNCivmnajomZTpm4UNCivmnajkvJ/mlocNCivmnajkvJ/nkKoNCivmnajlgaXlm70NCivmnajlm73mnb4NCivmnajlm73pvI4NCivmnajln7nmgakNCivmnajlqYnojokNCivmnajltIfpkasNCivmnajmg5/nmb0NCivmnajlkK/lro8NCivmnajmlY/oirMNCivmnajmorXlrZsNCivmnajmt7PnoJoNCivmnajmuIXmoYMNCivmnajmt5HlhYMNCivmnajmt5HkvbMNCivmnajmt5HoiqwNCivmnajmt5Hnvo4NCivmnajmt5HmlY8NCivmnajmt5Hmg6ANCivmnajmt5HokI0NCivmnajmt5Hpm4UNCivmnajmt5HmhacNCivmnajmuIrog5wNCivmnajlh4Doip0NCivmnajnm5vmlowNCivmnajojonoirMNCivmnajpm6rpm4UNCivmnajlh6/ku7INCivmnajlh6/mnbANCivmnajlh6/pkqcNCivmnajog5zlrocNCivmnajog5zmlpANCivmnajli4vlh68NCivmnajljZrlrocNCivmnajljZrpkqYNCivmnajllrvpl7UNCivmnajlo7noiJINCivmnajlqbfpkqcNCivmnajlr4zlrokNCivmnajlr4znkJsNCivmnajlvqrlqbcNCivmnajmg6DlrocNCivmnajmg6DnnJ8NCivmnajmg6DlqbcNCivmnajmg6DnkLMNCivmnajmg6Dpm68NCivmnajmlabmnbANCivmnajmlq/lh68NCivmnajmma/lhYMNCivmnajmma/lsKcNCivmnajmma/pm68NCivmnajmmbrlhYMNCivmnajmmbrlro8NCivmnajmmbrmnbANCivmnajmmbrlsKcNCivmnajmmbrlloQNCivmnajmmbrpkqcNCivmnajmmbrpvpkNCivmnajmnJ3mlY8NCivmnajmnJ3oiJwNCivmnajmo67lj5ENCivmnajmtozor4QNCivmnajnmbvlrokNCivmnajnmpPnjq4NCivmnajnrZboiKoNCivmnajlloTmg6ANCivmnajoiJLluIYNCivmnajoiJLlqpsNCivmnajoiJLpm68NCivmnajoiJzpkqYNCivmnajoj4HoiqwNCivmnajoj7Hpm4UNCivmnajlko/oj5gNCivmnajotLXlqpsNCivmnajpgLjojokNCivmnajpkqfnmb4NCivmnajpl7Xnv5QNCivmnajpm4XnjokNCivmnajpm4XoirMNCivmnajpm4XkvKYNCivmnajpm4Xmt5ENCivmnajpm4XlqbcNCivmnajpm4XlqbcNCivmnajpm4XlspoNCivmnajpm4Xmg6ANCivmnajpm4XmmbYNCivmnajpm4Xnv5QNCivmnajpm4XotoUNCivmnajpm4Xpm68NCivmnajpm4XkupENCivmnajpm4XojJwNCivmnajpm6/mg6ANCivmnajkupHnv5QNCivmnajpobrmo4sNCivmnajmhYjku6oNCivmnajmr5PnjrINCivmnajnhJXnq6ANCivmnajnkZ7mnbANCivmnajkuIfluIYNCivmnajoo5UNCivmnajor5fovakNCivmnajpgZPlv6ANCivmnajlmInnjrINCivmnajlmInnkZwNCivmnajlmInkuLANCivmnajojaPlkIkNCivmnajmp5DpqbkNCivmnajnoqfpm68NCivmnajnu7TljY4NCivmnajotbXpk60NCivmnajpk63pob4NCivmnajlvrflv5cNCivmnajluobpmoYNCivmnajmhafnjrINCivmnajmhafnkLwNCivmnajnkosNCivmnajpnIfkvJ8NCivmnajlrqrljYcNCivmnajmmZPpnZINCivmnajmmZPoj4ENCivmnajmoaXpnJYNCivmnajnh5XkupENCivmnajolZnoirMNCivmnajolZnlmIkNCivmnajplKHlrqoNCivmnajpnZnlpoINCivmnajpnZnmgKENCivmnajpnZnpm68NCivmnajmiLTlt54NCivmnajniLXpqo8NCivmnajpqo/msJENCivmnajmm5zlh4YNCivmnajnoYDov5wNCivmnajnu6Pnu6sNCivmnajkuLDlhagNCivmnajkuLDpk60NCivmnajplYfov5wNCivmnajppqXor5oNCivmnajnkLzljY4NCivmnajkuL3lhqANCivmnajkuL3nkLQNCivmnajmm6bnkLMNCivmnajpkp/pk4kNCivmnajngbXoi5MNCivmnajojJzljYkNCivmnajnkIflpoINCivmnajnkIflqpsNCivmnajnv4rkvakNCivmnajnkKzlqbcNCivmnajnjq7nkKYNCivmnajok4Hok4ENCivmnajpk6DkvIoNCivmuKnkuIjnuqwNCivmuKnlv4PlspoNCivmuKnmraPpvpkNCivmuKnoh7Pku7sNCivmuKnnp4DmgKENCivmuKnlrpcNCivmuKnmib/nv7ANCivmuKnph5HnkZ4NCivmuKnlu7rlo7ANCivmuKnoi6XlqbcNCivmuKnlsZXljY4NCivmuKnntKDmooUNCivmuKnln7npnZINCivmuKnmt5HmgKENCivmuKnlh68NCivmuKnmmbrov54NCivmuKnpm4XmuIUNCivmuKnlnKPlu7YNCivmuKnpk63lk7INCivmuKnmmZPljY4NCivmuKnppqXov5wNCivmuKnoj5jmuJ0NCivkuIfkvbPmmJUNCivkuIflu7rmmI4NCivkuIfmlY/lqYkNCivkuIfmmZPmmI4NCivlj7bkuIHmupANCivlj7bkuYPnpa8NCivlj7bkurrlrr4NCivlj7blj4jlmIkNCivlj7bljYPoj4oNCivlj7blo6vmlrANCivlj7blpKfoi4cNCivlj7blrZDosaoNCivlj7blsbHljY4NCivlj7blpKnlsIYNCivlj7bmlofkvJ8NCivlj7bmlofpvpkNCivlj7bkuJbmsJENCivlj7bku6PmnYMNCivlj7bmraPlnKMNCivlj7bnjonnjrINCivlj7bkuqbnm5sNCivlj7blhYnmhIkNCivlj7blkJHpmLMNCivlj7blpoLpm68NCivlj7bnq7nogrINCivlj7bkvZDpqo8NCivlj7blro/mnbANCivlj7blv5flvaYNCivlj7blv5fljZoNCivlj7bmraXml7sNCivlj7bnp4DmooUNCivlj7bogrLls7ANCivlj7bkvp3pnZINCivlj7bkvbPmrKMNCivlj7bkvbPoj4ENCivlj7bkvbPli4sNCivlj7bkvannnJ8NCivlj7blpYnmnbANCivlj7blrZ/lsKcNCivlj7blrpfmmboNCivlj7blrpfpkasNCivlj7blrpvovakNCivlj7blv6DmrKMNCivlj7bmgKHlkJsNCivlj7bmgKHoirMNCivlj7bmib/ms5MNCivlj7bmmIzkvKYNCivlj7bmmI7ljYcNCivlj7bmmI7ml4sNCivlj7bmmI7pkasNCivlj7bmnb7ngqsNCivlj7bmrKPmr5MNCivlj7bnjp/lkJsNCivlj7boirPkvLYNCivlj7boirPokI0NCivlj7boirflppgNCivlj7bplb/pnZINCivlj7bkuq3lv5cNCivlj7bkv6Hlu7cNCivlj7bkv4rlro8NCivlj7bkv4rnlKsNCivlj7bkv4rluoYNCivlj7bkv57mnYkNCivlj7blhqDmhacNCivlj7blpZXnu7QNCivlj7blp7/lpo8NCivlj7blu7rlkJsNCivlj7blu7rljYcNCivlj7blvablv5cNCivlj7bmgJ3ku6oNCivlj7bmlL/ovokNCivlj7bmmK3kvLYNCivlj7bmmLHlv5cNCivlj7bmn4/nurINCivlj7bnjrLlspENCivlj7bnp4vmnIgNCivlj7bnvo7lqJ8NCivlj7boh7Tlv6ANCivlj7booY3lrZwNCivlj7bpg4Hoj4ENCivlj7blgKkNCivlj7blk7LlhagNCivlj7blrrblrocNCivlj7blrrbpk4MNCivlj7blrrblhJINCivlj7bls7vlrr4NCivlj7bmjK/npo8NCivlj7bmmYvlmIkNCivlj7bkuabnjq4NCivlj7bmtpPmtpMNCivlj7bnm4rljYcNCivlj7bntKDnu6sNCivlj7bogL/pvZANCivlj7blgaXkvJ8NCivlj7blm73otKQNCivlj7blvKDlu7oNCivlj7bmrLINCivlj7bmt5Hnj40NCivlj7bmt5Hpk4MNCivlj7bnu43ku7sNCivlj7bog5znjoQNCivlj7bmg6DmlocNCivlj7bmg6Dnpa8NCivlj7bmmbrku4ENCivlj7bmo67muJ0NCivlj7blko/mmbQNCivlj7bpm4HnlIQNCivlj7bpm4XlqbcNCivlj7bpm4Xpm68NCivlj7bkupHpuY8NCivlj7bmr5Pls7ANCivlj7bkuYnmnb4NCivlj7bpk4Pnj4oNCivlj7blmInljY4NCivlj7bnnb/lk7INCivlj7bpk63mmIwNCivlj7bku6roirMNCivlj7bmhafmrKMNCivlj7bmtIHmgakNCivlj7bmmZPoiqwNCivlj7bmoJHlvIANCivlj7bolZnoirMNCivlj7bplKblh6QNCivlj7bmm5nluoYNCivlj7bpqo/pgLgNCivlj7bnpLznu7QNCivlj7bnkLzmlocNCivlj7blrp3lo6wNCivlj7bohb7ov5wNCivlj7bpqqUNCivlj7bnjrTosaoNCivlj7bnkKTmgKENCivlj7bmgL/ppqgNCivokZvkuJbokLENCivokZvlgKnlpoINCivokaPkurrlro8NCivokaPlrZDpnZINCivokaPlt6fnjrINCivokaPlkIjmgakNCivokaPlv5fku4ENCivokaPkvbPosaoNCivokaPmgKHlkJsNCivokaPoirPpk60NCivokaPlp7/liKkNCivokaPlvablro8NCivokaPnp4vnkb4NCivokaPkv67pk60NCivokaPmjK/pm4QNCivokaPog73nkZ4NCivokaPmg6DoirMNCivokaPlnKPnvJgNCivokaPmhafnvo4NCivokaPpuL/mpaANCivokaPls6Pms5MNCivoo5jlhYPmgboNCivop6Pnvo7pk4MNCivoqbnkuo7oirMNCivoqbnlrZDmsJENCivoqbnku4HlmIkNCivoqbnmlofnpaUNCivoqbnkuJbmnbANCivoqbnmsLjnpaUNCivoqbnnq4vmiJANCivoqbnlpoLpkqQNCivoqbnlro/lvawNCivoqbnlv5fpuL8NCivoqbnogrLpm68NCivoqbnkvbPmjK8NCivoqbnkvbPlhbQNCivoqbnkvanpopYNCivoqbnlrZ/mmYMNCivoqbnlrpflrqoNCivoqbnlrpznurkNCivoqbnlv6DojaMNCivoqbnmmIzlkIkNCivoqbnmmI7mtIENCivoqbnmrKPlrpwNCivoqbnpnZLoibMNCivoqbnliY3ms7ANCivoqbnmlL/ls7ANCivoqbnnvo7nj40NCivoqbnljb/oi7kNCivoqbnlrrbpk6gNCivoqbnmtZrljYcNCivoqbnnm4rkvJ8NCivoqbnnm4rpk60NCivoqbnojJfoirgNCivoqbnlqYnlkJsNCivoqbnlkK/nuqwNCivoqbnmt5HlpoMNCivoqbnmt5HokI0NCivoqbnmt5HoiqkNCivoqbnlh6/mjbcNCivoqbnog5zpkqYNCivoqbnlr4zmmboNCivoqbnmg6DlqpsNCivoqbnmma/lsKcNCivoqbnmmbrmnbANCivoqbnmo64NCivoqbnnv5Tku7sNCivoqbnor4Hlr4wNCivoqbnpkqfnu7QNCivoqbnpm4XlqbcNCivoqbnpm4Xpl7UNCivoqbnpm6/ojrkNCivoqbnnvqTmr4UNCivoqbnlmInnkocNCivoqbnlvrfppqgNCivoqbnli4vmmI4NCivoqbnpopbokI0NCivoqbnnkqjltZgNCivoqbnkuLDlrocNCivoqbnpuYPlubQNCivoqbnnjpPnjq4NCivoqbnnkKzmuJ0NCivotYTlkJvku6oNCivotL7msrvlm70NCivotL7niLHnjqsNCivotL7pq5DmhpsNCivpgrnkuIDku7INCivpgrnmlofpmoYNCivpgrnnq4vlvaYNCivpgrnmnY7mmIwNCivpgrnkvbPljY4NCivpgrnlrpfljY4NCivpgrnmmI7ljp8NCivpgrnph5HlvrcNCivpgrnlm73pvpkNCivpgrnmmbrku4ENCivpgrnmlrDlhagNCivpgrnnu7TliJoNCivpgrnpnZnkvakNCivpm43mlablhYMNCivpm7flrpzluq0NCivpm7fooY3lhbQNCivpm7fmg6DnkKYNCivpm7fpm4Xoj4ENCivpm7fpuY/nqIsNCivlu5bkuIHpgLgNCivlu5bkuo7mlocNCivlu5bljYPmhacNCivlu5blo6vlsKcNCivlu5blpKfmqJ8NCivlu5blsI/ljY4NCivlu5bku4Hnpr4NCivlu5blhYPliKkNCivlu5blhYHpnZYNCivlu5bmloflubMNCivlu5bmlofojLkNCivlu5bmlofor4QNCivlu5bmlofnlIQNCivlu5bmlofmtIENCivlu5bmnIjop4INCivlu5bku5Xnu64NCivlu5bmnKzlhYMNCivlu5bmraPkvJ8NCivlu5bnjokNCivlu5bnjonokI0NCivlu5bkuJ7mmZ4NCivlu5blhYnovokNCivlu5blrojmraMNCivlu5bkvK/nkosNCivlu5blkKvmtIENCivlu5blro/mhYgNCivlu5blv5fmsJENCivlu5blv5fkvJ8NCivlu5blv5fov5wNCivlu5bnp4Dljb8NCivlu5bogrLoia8NCivlu5boia/mt64NCivlu5bkvbPnjqUNCivlu5bkvanlpoINCivlu5bkvanlh6QNCivlu5blrpflsbENCivlu5blrpznvqQNCivlu5bmgKHnjrINCivlu5bmgKHmma8NCivlu5bmib/luoYNCivlu5bmmI7ku6oNCivlu5bmrKPku6oNCivlu5boirPnjrINCivlu5boip3lnZoNCivlu5bpnZLmnb4NCivlu5bkv6Hlrr0NCivlu5bkv4rmnbANCivlu5bkv4rpkqYNCivlu5blhqDnvo4NCivlu5blpZXku7sNCivlu5blp7/mr5MNCivlu5blu7rln44NCivlu5blu7rpkqcNCivlu5blvablh68NCivlu5bmgZLmr4UNCivlu5bmmKXoj4oNCivlu5bmmLHmoJENCivlu5bngrPnhJwNCivlu5bnm4jlpYcNCivlu5bnp4vmgKENCivlu5bnvo7njrINCivlu5bnvo7nkLMNCivlu5bojILoia8NCivlu5boi7HnlLcNCivlu5boi7HmnbANCivlu5boi5HlkJsNCivlu5bov7DojIINCivlu5bpg4HlqbcNCivlu5blgKnlrpwNCivlu5bljb/mg6ANCivlu5blk7LorroNCivlu5blrrbnjrINCivlu5blrrblroENCivlu5blrrbojrkNCivlu5blrrblqacNCivlu5bls7vmr4UNCivlu5bmganmhYgNCivlu5bmjK/oia8NCivlu5bmjLrltLQNCivlu5bkuabkvakNCivlu5bmoYLlkJsNCivlu5bmtZrlro8NCivlu5bkvanlkJsNCivlu5bkvannjqsNCivlu5bkvanniLENCivlu5bnm4rnvqQNCivlu5bntKDljb8NCivlu5bogJXovokNCivlu5blubLmiJANCivlu5bkvJ/miJANCivlu5bkvJ/ovrANCivlu5bkvJ/mlq8NCivlu5bkvJ/puL8NCivlu5blgaXmmI4NCivlu5blgaXpk60NCivlu5blm73lro8NCivlu5blm73li4sNCivlu5blm73ljY4NCivlu5bln7rlro8NCivlu5bln7nnkZwNCivlu5blqYnliKkNCivlu5blqYnmrKMNCivlu5blr4TokI0NCivlu5bltIfnoZUNCivlu5blurfpnJYNCivlu5bmg4fmsrsNCivlu5blkK/oia8NCivlu5bmlY/msZ0NCivlu5bmlY/njrINCivlu5bmopPojJwNCivlu5bmt5HlkJsNCivlu5bmt5HotJ4NCivlu5bmt5Hmg6ANCivlu5bmt5HkuL0NCivlu5bnpaXovr4NCivlu5botK/kvakNCivlu5bnq6Dmo4sNCivlu5blr4znlLANCivlu5bmg6DlqJ8NCivlu5bmmbrovokNCivlu5bnkKrnvo4NCivlu5boiJLku6oNCivlu5bov5vlubMNCivlu5bpm4XlgKkNCivlu5bpobrluIYNCivlu5bmpbfmlocNCivlu5bnraDmgKENCivlu5bokLHoirkNCivlu5bll74NCivlu5blmInpmLMNCivlu5bmsYnpvI4NCivlu5bnu7Tnj40NCivlu5bpk63ku4ENCivlu5bluobotLoNCivlu5bmhafpm68NCivlu5bojrnnkocNCivlu5blrqrloIINCivlu5bmmZPmhacNCivlu5bplKbnkZwNCivlu5bmk47luIYNCivlu5bmm5zojrkNCivlu5bpupLpl7UNCivlu5bogIDkuJwNCivlu5bmmL7luoYNCivlu5blgbLlpqQNCivlu5bmlozmnbANCivlu5bpkrDpk60NCivmsYnov7Dku4ENCivnhornq4vmlrANCivnhorkuJzlop4NCivnhorlh4zpnIYNCivnhorltIfnuqwNCivnhorli6TkupENCivnlITmhafmmI4NCivnrqHlubzku7INCivnrqHph5HnjrINCivnrqHnkKroirgNCivnv5/mlabmlY8NCivlj7DmlofnhacNCivokrLkv6HlhagNCivokrLpqo/mr4UNCivoo7TkvJ/nqIsNCivopJrlv4PmgKENCivopJrkv4rkvJ8NCivopJrlrrblvrcNCivlrr7mlazmlocNCivotbXlo6vpvZANCivotbXlrZDnu7QNCivotbXku4HkvZENCivotbXlhYPlro8NCivotbXlj4vltKcNCivotbXmloflv6ANCivotbXmlrnmgboNCivotbXkuJboo5UNCivotbXlv4XmmIwNCivotbXnjonojrINCivotbXlronnkKoNCivotbXlkJvmnbANCivotbXlro/pkqcNCivotbXlv5fosaoNCivotbXogrLnkLMNCivotbXkvanoiqwNCivotbXlrpzlkJsNCivotbXmgKHlqbcNCivotbXmmI7ovokNCivotbXoirfoj4ENCivotbXkv4rlh68NCivotbXlk4HlvaYNCivotbXlu7rog5wNCivotbXmgazku6oNCivotbXngqvli4sNCivotbXnp4vlh6QNCivotbXoi7HpvpkNCivotbXkv67pnJYNCivotbXlrrboia8NCivotbXlrrbotKQNCivotbXmjK/lro8NCivotbXmoYLpnZINCivotbXkvanmsZsNCivotbXnpZDnlIQNCivotbXkvJ/lu7cNCivotbXkvJ/nv5QNCivotbXlm73lv5cNCivotbXln7npnJYNCivotbXltIfpl7UNCivotbXmlY/lpoINCivotbXmt5HoirMNCivotbXnmo7lkJsNCivotbXlqbflrowNCivotbXmuZjlkJsNCivotbXpkqflv5cNCivotbXnkZ7mmIwNCivotbXlmInmlawNCivotbXlub/lhYMNCivotbXmhZXnvqQNCivotbXmoJHku6oNCivotbXpvpnln7oNCivotbXlj4zpqo8NCivotbXnjrnnvrINCivov5zol6TmsLjlurcNCivphJ7osarovokNCivpvZDpm6rmsZ0NCivliJjkuZnokLENCivliJjkuYPokLENCivliJjkurrosaoNCivliJjlh6DokI0NCivliJjlipvosaoNCivliJjlj4jmhYgNCivliJjkuIrml5cNCivliJjkuo7oj4ENCivliJjljYPnkZwNCivliJjlo6vljY4NCivliJjlo6vosaoNCivliJjlpKfojaMNCivliJjlrZDnlLENCivliJjlrZDlmIkNCivliJjlrZDpooANCivliJjlsbHosaoNCivliJjkuK3nkKoNCivliJjku4HmraMNCivliJjku4Hoo5UNCivliJjlhYPlh6QNCivliJjlsJHnu7QNCivliJjlv4Pku6oNCivliJjmlofnjokNCivliJjmlofnjrINCivliJjmlofog5wNCivliJjmlofotoUNCivliJjmlofnpo8NCivliJjml6XpoboNCivliJjkuJbmlocNCivliJjkuJbmuIUNCivliJjkuJbluoYNCivliJjku6XnraANCivliJjlj7ANCivliJjlvJjkvJ8NCivliJjmraPmsrMNCivliJjmraPpm4QNCivliJjmsLjlgaUNCivliJjnjonmlocNCivliJjnjonlrrYNCivliJjnjonokI0NCivliJjnjonnkIcNCivliJjnq4vkvJ8NCivliJjkuqbljYcNCivliJjkvIrkv64NCivliJjku7LmtrUNCivliJjlhYnmnbANCivliJjlhYblrrkNCivliJjlhajlvawNCivliJjlkI3lqJ8NCivliJjlpoLoirMNCivliJjlpoLolrANCivliJjlrofolocNCivliJjlronnpaUNCivliJjml63oiqwNCivliJjmsZ3lqJ8NCivliJjoh7PlrokNCivliJjkvK/lvaYNCivliJjlkJvnpboNCivliJjlrZ3kvKYNCivliJjlro/kvJ8NCivliJjlu7fmpbcNCivliJjlv5fli4cNCivliJjlv5fmtakNCivliJjlv5fmupANCivliJjlv5fnjq4NCivliJjmsoLmmIANCivliJjnp4Dpg4ENCivliJjnp4Dpm68NCivliJjogrLmiJANCivliJjogrLlv5cNCivliJjogrLlrpcNCivliJjogrLmtLgNCivliJjogrLor5oNCivliJjogrLpopYNCivliJjpgqblubMNCivliJjpgqbnm7gNCivliJjkuproirgNCivliJjkvp3mlocNCivliJjkvbPmspANCivliJjkvbPmgKENCivliJjkvbPoirMNCivliJjkvbPmtKcNCivliJjkvbPnkKoNCivliJjkvbPovr4NCivliJjkvbPpopYNCivliJjkvoPlpoINCivliJjkvanpnZINCivliJjkvannu6sNCivliJjlkozlvrcNCivliJjlnaTpopYNCivliJjlrZ/kvbMNCivliJjlrZ/lhqANCivliJjlrZ/nv7ANCivliJjlrpfmgKENCivliJjlrpfokYYNCivliJjlrprlrocNCivliJjlrpzmmIYNCivliJjlrpzlqbcNCivliJjlrpvlpoINCivliJjlhojpmbUNCivliJjlubjpm6oNCivliJjlv6Dli4sNCivliJjmgKHkvLYNCivliJjmgKHlkJsNCivliJjmgKHlkJsNCivliJjmgKHlkJsNCivliJjmgKHlkowNCivliJjmgKHoiqwNCivliJjmgKHmg6ANCivliJjmgKHpnZkNCivliJjmib/moaYNCivliJjmmIwNCivliJjmmIzor5oNCivliJjmmI7lkIgNCivliJjmmI7mnbANCivliJjmmI7lk7INCivliJjmmI7ovr4NCivliJjmmI7kuL0NCivliJjljYfpkasNCivliJjmnpznj40NCivliJjmrKPlnaQNCivliJjmrKPmgKENCivliJjmrKPojLkNCivliJjmrabmtZoNCivliJjnjp/miJANCivliJjnjqvlroENCivliJjnqbnmnpcNCivliJjoirPlkJ8NCivliJjoirPnjrINCivliJjoirPlhbANCivliJjoiqzoirMNCivliJjph4fnnJ8NCivliJjph5Hlh6QNCivliJjpnZLoi7kNCivliJjkv6Hlro8NCivliJjkv6Hoia8NCivliJjkv6HpuL8NCivliJjkv4rlro8NCivliJjkv4rlu7cNCivliJjkv4roia8NCivliJjkv4rmnbANCivliJjkv4rmr4UNCivliJjkv4rlsqkNCivliJjkv5DmooUNCivliJjlhqDlpo0NCivliJjlhqDoia8NCivliJjlhqDmmL4NCivliJjli4PlvaYNCivliJjlk4HlrpwNCivliJjlpZXlv5cNCivliJjlp78NCivliJjlp7/lkJ8NCivliJjlqIHmsZcNCivliJjlqIHmmIwNCivliJjlu7rmsJENCivliJjlu7rlro8NCivliJjlu7rlro8NCivliJjlu7rmnZENCivliJjlu7roia8NCivliJjlu7rmmI4NCivliJjlu7rlvrcNCivliJjlu7rnlLoNCivliJjlvablkJsNCivliJjlvablu7cNCivliJjlvaboia8NCivliJjlvabljZoNCivliJjlvovmmI4NCivliJjmgJ3mtIENCivliJjmgarkuroNCivliJjmlL/li4sNCivliJjmmK3lpoINCivliJjmmKDnp4ANCivliJjmmLHovrANCivliJjmn4/lro8NCivliJjmn4/pup8NCivliJjkuLrmmI4NCivliJjnj4rlpq4NCivliJjnj43kvZENCivliJjnm4jlpoINCivliJjnm4jnp4ANCivliJjnm4jlhbANCivliJjnp4vmiJANCivliJjnp4vnh5UNCivliJjnvo7lkJsNCivliJjnvo7ku5ENCivliJjnvo7njrINCivliJjnvo7ljY4NCivliJjnvr/msZ0NCivliJjoi6XosKgNCivliJjoi7HpvpkNCivliJjotJ7kvLYNCivliJjlhpvmr4UNCivliJjpn6bmiJANCivliJjlgI3lpoINCivliJjkv67mmI4NCivliJjlk7LlrocNCivliJjlk7Lpg44NCivliJjlk7Lnjq4NCivliJjlrrbmiJANCivliJjlrrblro8NCivliJjlrrbljYcNCivliJjlrrbnkLMNCivliJjlrrblg5YNCivliJjlrrbosaoNCivliJjlrrblh6QNCivliJjlrrbppqgNCivliJjlrrnmh78NCivliJjls7vkvLYNCivliJjls7Dpg6ENCivliJjmganlkIkNCivliJjmjK/kuK0NCivliJjmjK/osaoNCivliJjmmYvogrINCivliJjmmY/or5oNCivliJjkuablro8NCivliJjmoLnosaoNCivliJjmoZDnm5sNCivliJjmtZrpk60NCivliJjkvanmgKENCivliJjnm4rkvLgNCivliJjnm4rnpa8NCivliJjnpZblroENCivliJjntKDnjrINCivliJjnuq/mnY8NCivliJjogJXnu7QNCivliJjovanlrocNCivliJjkvJ/nq4sNCivliJjkvJ/or5oNCivliJjlm73lubMNCivliJjlm73moIsNCivliJjlm73pvpkNCivliJjlqYnnjrINCivliJjltIfnkIYNCivliJjlurfmpZ0NCivliJjlvpflhYkNCivliJjlkK/lubMNCivliJjmlY/nkKoNCivliJjmt7Ppm4UNCivliJjmt5HoiqwNCivliJjmt5HotJ4NCivliJjmt5HojokNCivliJjmt5HljY4NCivliJjmt5HmhacNCivliJjnpaXmsJENCivliJjojonnh5UNCivliJjlh6/ojLkNCivliJjljZrmlocNCivliJjlr4zmmI4NCivliJjmg6DmgKENCivliJjmg6DnurkNCivliJjmiazpk60NCivliJjmmbrku4ENCivliJjmmbrpkqcNCivliJjmnJ3ojrINCivliJjmuZjnkKoNCivliJjnmpPlroENCivliJjoiJLmhYgNCivliJjlko/olocNCivliJjpgLjnq7kNCivliJjpl7Xnu5MNCivliJjpm4XlkJsNCivliJjpm4XnjrINCivliJjpm4Xmg6ANCivliJjpm4XokI0NCivliJjpm4XmhacNCivliJjkupHpnJ4NCivliJjli6Tnu48NCivliJjmlazmsJENCivliJjmr5Pms6INCivliJjmupDkvKYNCivliJjnkZ7oirMNCivliJjnkZ7osaoNCivliJjnu4/nurYNCivliJjoo5Xlro8NCivliJjor5fpn7UNCivliJjpnZYNCivliJjlmInogrINCivliJjlmInmt7MNCivliJjlmInpm68NCivliJjlmInmoaYNCivliJjlvbANCivliJjojaPlvrcNCivliJjnhpnmhacNCivliJjnoZXnqLMNCivliJjnu7Tms7ANCivliJjogofpuY8NCivliJjpk63mnZENCivliJjpk63ovokNCivliJjlh6TlhbQNCivliJjlvrfmraMNCivliJjlvrfor5oNCivliJjluobplYcNCivliJjmhafnjrINCivliJjmhaflqbcNCivliJjmhafnj5ENCivliJjojrnlqJ8NCivliJjotKTojacNCivliJjpnIfpuL8NCivliJjlv4YNCivliJjmmZPoiqwNCivliJjmmZPnkKoNCivliJjmmZPmoaYNCivliJjmoJHolZkNCivliJjnh5XokI0NCivliJjnkp/plIsNCivliJjpopbokqgNCivliJjlhbTlrrYNCivliJjolZnnkYQNCivliJjplKbloIINCivliJjplKbpuL8NCivliJjpnZnoirMNCivliJjpnZnljY4NCivliJjpvpnlsbENCivliJjniLXnu7QNCivliJjplLrpnJYNCivliJjpuL/pnJYNCivliJjnkqfojrkNCivliJjplYflmIkNCivliJjngJrpmLMNCivliJjpn7XnkKYNCivliJjkuL3mg6ANCivliJjlrp3lqbcNCivliJjogIDljYcNCivliJjor5HogaoNCivliJjngYzovokNCivliJjmh7/mhacNCivliJjotZ7lmLsNCivliJjml7vnj4oNCivliJjlp7XlmIkNCivliJjmjJANCivliJjnv4rpgqENCivliJjnjq7njrINCivliJjnrbHmhacNCivliJjmu6LpqL8NCivljonmlozkuK0NCivmqIrkuYPlmIkNCivmqIrkv67pvpkNCivkuZDlrZDpqo8NCivmrKflo6vmupANCivmrKfkuJbmtIsNCivmrKflpoLnqIsNCivmrKflv5fnm4gNCivmrKfpgqbljY4NCivmrKflrpfljp8NCivmrKfmgKHnp4ANCivmrKfmmIDkv64NCivmrKfplb/mmY8NCivmrKfkv4rlvaYNCivmrKflu7rmsJENCivmrKfmlL/oibMNCivmrKfnvo7ojrkNCivmrKflqInlpqYNCivmrKfkuabosaoNCivmrKfmt5Hlp78NCivmrKfpgLjpnZINCivmrKfpmLPmnInmhacNCivmrKfpmLPnjqsNCivmrKfpmLPmg6DlpoINCivmrKfpmLPpk63mlocNCivmrKfpmLPlv7vlv4YNCivmrKfojaPmnbANCivmrKfpopblkJsNCivmrKfnvK7lmIkNCivmvZgNCivmvZjlhYHku4ENCivmvZjmlofljY4NCivmvZjmraPlhYMNCivmvZjnjonmg6ANCivmvZjkuqbolb4NCivmvZjmiJDlr4wNCivmvZjlro/lrpcNCivmvZjlv5fkvJ8NCivmvZjnp4Dnm4gNCivmvZjkvbPlpqQNCivmvZjkvanlkJsNCivmvZjlrpfoo5UNCivmvZjlu7bovokNCivmvZjmgKHlkJsNCivmvZjmgKHnkb4NCivmvZjmmI7mpbcNCivmvZjnjp/moaYNCivmvZjkuq7lpoINCivmvZjkv6Hnv7ANCivmvZjkv4roia8NCivmvZjlhqDlro8NCivmvZjlk4HmtIENCivmvZjlqIHljoYNCivmvZjlu7rmiJANCivmvZjlu7rlvbANCivmvZjlvabok4kNCivmvZjmlL/nuqwNCivmvZjmn5TogIMNCivmvZjnj43nkKoNCivmvZjnvo7njrINCivmvZjov7DkuJwNCivmvZjlrrbpk60NCivmvZjms7DlhagNCivmvZjog73lk7INCivmvZjlqYnokI0NCivmvZjmt5Hpm68NCivmvZjmg6DlqJ8NCivmvZjov5vnm4oNCivmvZjpm4XppqgNCivmvZjnkZ7pppkNCivmvZjoo5XmmboNCivmvZjnnb/lk7INCivmvZjku6rmgawNCivmvZjmhafmlY8NCivmvZjlhJLojrkNCivmvZjplKbmmIwNCivmvZjpuL/pk60NCivmvZjkuL3okI0NCivmvZjlp7XlpoINCivmvZjpkrDmn5QNCivmu5Xlv4bpm68NCivnu4Plu7rkvLgNCivokovkuK3ooY0NCivokovmraPnpo8NCivokovmsZ3lrokNCivokovmsobnpaUNCivokovkvbPnj4oNCivokovkvankvZkNCivokovlrZ/lhJINCivokovlrpzpnZkNCivokovmgKHmhacNCivokovmmI7lhJINCivokovplb/ml7sNCivokovmlL/popYNCivokovkvanms6ANCivokovmt5HmhacNCivokovokI0NCivokovoi4fnq4sNCivokovlvrfmiY0NCivokovmu6jlt54NCivokovogIDmr4UNCivolKHkuIHnu4/lk7INCivolKHlo6vml7oNCivolKHlrZDmgKENCivolKHkuK3pkqcNCivolKHku4HkvJ8NCivolKHlhYPmraMNCivolKHlhYPpm4QNCivolKHlpKnnpboNCivolKHmlofku4ENCivolKHmloflvaYNCivolKHmlofkvJ8NCivolKHmlofljZoNCivolKHmlofpkqYNCivolKHmloflmIkNCivolKHmlofpuL8NCivolKHmnIjnj6ANCivolKHkuJbmnbANCivolKHkuJbpuL8NCivolKHlt6flpoINCivolKHlvJjljp8NCivolKHmraPlrpcNCivolKHmraPmmZYNCivolKHmsLjlvawNCivolKHmsLjojrkNCivolKHnjonnp4sNCivolKHnjonoj4ENCivolKHnq4voiqwNCivolKHkuqbpm68NCivolKHku7LlroENCivolKHlhYbpqoUNCivolKHlkI3kuaYNCivolKHlpoLlqbcNCivolKHlrofkvKYNCivolKHlronkuZQNCivolKHml63mm5wNCivolKHnvr3lrrkNCivolKHooYznnJ8NCivolKHkvK/puL8NCivolKHlkJvmr4UNCivolKHlro/mlocNCivolKHlro/ln7kNCivolKHlu7fpopYNCivolKHlv5flro8NCivolKHlv5fmmI4NCivolKHlv5fmmYMNCivolKHlv5fmiawNCivolKHlv5fnu7QNCivolKHlv5fpuL8NCivolKHmsoHnjrINCivolKHmspvlqbcNCivolKHmsbbpuL8NCivolKHnp4DnjrINCivolKHnp4Dmg6ANCivolKHogrLmraMNCivolKHogrLlvaYNCivolKHogrLnnJ8NCivolKHogrLli4sNCivolKHotJ3nj4oNCivolKHkuqvnv7ANCivolKHkvp3nj4oNCivolKHkvp3lrrkNCivolKHkvp3pvoQNCivolKHkvbPkvLYNCivolKHkvbPlro8NCivolKHkvbPoia8NCivolKHkvbPmrKMNCivolKHkvbPoiqwNCivolKHkvbPnjrINCivolKHkvbPnj40NCivolKHkvbPlrrkNCivolKHkvbPnnJ8NCivolKHkvbPoiKoNCivolKHkvbPnkLMNCivolKHkvbPok4kNCivolKHkvbPmoaYNCivolKHkvbPpopYNCivolKHkvbPpnJYNCivolKHkvbPnpL0NCivolKHkvanlpoINCivolKHkvanlkJsNCivolKHkvanlpqQNCivolKHkvanoirMNCivolKHkvanoiqwNCivolKHkvannj4oNCivolKHkvannj4oNCivolKHkvannjrINCivolKHkvanlqKUNCivolKHkvannurkNCivolKHkvanok4kNCivolKHkvanpopYNCivolKHkvanpnZkNCivolKHkvpHlu7cNCivolKHlhbbkvakNCivolKHljY/nlKsNCivolKHlj5fli4sNCivolKHlnaTkvZENCivolKHlnaTpm4QNCivolKHlnaTplKYNCivolKHlpYflnYcNCivolKHlpYfpnJYNCivolKHlrZ/lkJsNCivolKHlrZ/ogrINCivolKHlrZ/oirMNCivolKHlrZ/np4sNCivolKHlrZ/lk7INCivolKHlrZ/nnJ8NCivolKHlrZ/pm4QNCivolKHlrZ/lhJINCivolKHlrZ/moaYNCivolKHlrZ/osJUNCivolKHlraPnjrINCivolKHlrpfkvZENCivolKHlrpflv5cNCivolKHlrpfnjqsNCivolKHlrpfnm4oNCivolKHlrpfovr4NCivolKHlrpflhJINCivolKHlrpflrqoNCivolKHlrpfpopYNCivolKHlrpfnv7ANCivolKHlrpfpnJYNCivolKHlrpzlkJsNCivolKHlrpzlu7cNCivolKHlrpzoirMNCivolKHlrpznj4oNCivolKHlrpzlgKkNCivolKHlrpznnJ8NCivolKHlrpzok4kNCivolKHlrpzpnJYNCivolKHlrpzok4ENCivolKHlrpvnjrINCivolKHlrpvosJUNCivolKHlsJrlsrMNCivolKHlsJrpopYNCivolKHlsrHli4sNCivolKHlsrPkuaYNCivolKHlubjlpoINCivolKHlubjmgZINCivolKHlubjmt7MNCivolKHlvKbosaoNCivolKHlv6Dkv6ENCivolKHlv6DpopYNCivolKHmgKHlkJsNCivolKHmgKHokI0NCivolKHmib/mmIoNCivolKHmib/nkosNCivolKHmib/nv7ANCivolKHmmJPkuqgNCivolKHmmJPljYcNCivolKHmmJPlrqoNCivolKHmmIzlrocNCivolKHmmIzlhJINCivolKHmmIbkvZENCivolKHmmI4NCivolKHmmI7ms5sNCivolKHmmI7lro8NCivolKHmmI7mnYkNCivolKHmmI7lrpcNCivolKHmmI7oirMNCivolKHmmI7kvKYNCivolKHmmI7lk7INCivolKHmmI7ls7ANCivolKHmmI7ojLUNCivolKHmmI7pkqYNCivolKHmmI7okrINCivolKHmmI7otZANCivolKHmmI7lrqoNCivolKHmmI7popYNCivolKHmmI7pvpkNCivolKHmmIDnlKsNCivolKHljYfkvK8NCivolKHljYfpopYNCivolKHkuJzmmI4NCivolKHkuJzpopYNCivolKHmnbDlv5cNCivolKHmnb7mn48NCivolKHmnb7pnJYNCivolKHmrKPmgKENCivolKHmrKPkvKYNCivolKHmrKPovr4NCivolKHmrKPpopYNCivolKHmrabosJoNCivolKHniafli4sNCivolKHnm7Tli4sNCivolKHnp4nmmIYNCivolKHnp4nnkosNCivolKHnp4nosJUNCivolKHoirPmtLUNCivolKHph4foirMNCivolKHph5Hls7ANCivolKHph5HpvpkNCivolKHplb/ojaMNCivolKHpm6jmtIENCivolKHpnZLls7ANCivolKHkv6Hoia8NCivolKHkv4rmmY8NCivolKHkv4rotKQNCivolKHlk4Hku6oNCivolKHlrqXlrpoNCivolKHlu7roo5UNCivolKHmgJ3mjbcNCivolKHmlL/lro8NCivolKHmlL/oqIANCivolKHmlL/lk7INCivolKHmlL/nvqQNCivolKHmlL/li4sNCivolKHmlL/nv7ANCivolKHmlL/pvpkNCivolKHmmK3pvpkNCivolKHmn4/mr4UNCivolKHnjrLmtKUNCivolKHnprnmrYYNCivolKHnuqrmupANCivolKHnvo7oip0NCivolKHnvo7ojokNCivolKHnvo7mhacNCivolKHoi7HlrpcNCivolKHpg4HlkJsNCivolKHpn6blv5cNCivolKHlh4zlh6QNCivolKHlqJ/lqJ8NCivolKHlrrbljY4NCivolKHlrrnnkZsNCivolKHmgqbnjp8NCivolKHmjK/orq4NCivolKHmoKnnu7QNCivolKHkvanmgKENCivolKHnnJ/nppUNCivolKHntKDnoqcNCivolKHojLnojLUNCivolKHkvJ/mnbANCivolKHlm73miYsNCivolKHlm73lnKMNCivolKHln7nor5ENCivolKHltIfmsJENCivolKHlkK/loIINCivolKHmt7vmlocNCivolKHmt5HlpoMNCivolKHmt5HmgKENCivolKHmt5HnjrINCivolKHmt5HnnJ8NCivolKHmt5Hmg6ANCivolKHmt5HnkZwNCivolKHmt5HolocNCivolKHnm5vli4sNCivolKHpm6rljb8NCivolKHog5zpm4QNCivolKHljZrlhagNCivolKHkuZTlrokNCivolKHlr4zotLUNCivolKHmg6DlpoINCivolKHmg6Dnvo4NCivolKHmg6DnkKoNCivolKHmg6Dnh5UNCivolKHmma/mt5ENCivolKHmmbrlro8NCivolKHmmbrmmpANCivolKHmuZjmgKENCivolKHnmpPmmI4NCivolKHoiJLlrocNCivolKHoj4Hoj4ENCivolKHlko/nv5QNCivolKHpgLjnj4oNCivolKHov5vmmIwNCivolKHpmobms7ANCivolKHpm4XlkJsNCivolKHpm4XoiqwNCivolKHpm4XojLkNCivolKHpm4Xmg6ANCivolKHpm4Xoj4ENCivolKHpm4XmhacNCivolKHpm6/mt4cNCivolKHkvKDlvrcNCivolKHmoaLnkZwNCivolKHmr5PpnJYNCivolKHnkZ7mlocNCivolKHnkZ7ls7ANCivolKHnkZ7pupINCivolKHkuYnnm4oNCivolKHoo5XlgaUNCivolKHor5folo8NCivolKHlmInku4ENCivolKHlmInmgZINCivolKHlmInnq6ANCivolKHlmInluoYNCivolKHojaPmmIwNCivolKHojaPotKQNCivolKHmsYnkuYkNCivolKHnoqflrrkNCivolKHnpo/mmY8NCivolKHnu7TnjrINCivolKHnu7Tok4ENCivolKHoo7TkvLYNCivolKHpk60NCivolKHpk63ls7ANCivolKHpk63otKQNCivolKHlh6Tku6oNCivolKHlvoHpnJYNCivolKHmhafmsJENCivolKHmhafotJ4NCivolKHmhafokLENCivolKHmr4XovakNCivolKHotKTnmocNCivolKHlrabmlocNCivolKHlv4bpk4MNCivolKHmmZPnhLYNCivolKHms73pk60NCivolKHpopbnrrQNCivolKHnv7DnhooNCivolKHolZnlqbcNCivolKHplKblnaENCivolKHpnZnlrpwNCivolKHpnZnmg6ANCivolKHpvpnku6oNCivolKHnv7zlpoINCivolKHpuL/msJENCivolKHpuL/mlowNCivolKHnkqflhYkNCivolKHkuLDmlocNCivolKHkuLDmnbANCivolKHplYflsrMNCivolKHpuYPlvKUNCivolKHnkLzku6oNCivolKHkuL3oirMNCivolKHkuL3mg6ANCivolKHnjK7mr4UNCivolKHogIDnvqQNCivolKHogIDpqbkNCivolKHppqjku6oNCivolKHkvbblhbQNCivolKHml7voirMNCivolKHml7vlrqoNCivolKHnkITnq7kNCivolKHmrYbmgKENCivolKHnjq7nq5ENCivolKHnvI8NCivolKHpkavlu7cNCivosIjmmK3lhbANCivpg5HkuIDlh6ENCivpg5HkuYPkvbMNCivpg5HkurrlhYMNCivpg5Hlipvku4ENCivpg5Hlj4jku4ENCivpg5Hlo6vpn6YNCivpg5HlrZDop4ENCivpg5HlsI/lspoNCivpg5HlsLnmlq8NCivpg5Hku4Hlr4wNCivpg5HlhYPlrZ0NCivpg5HlhYPnkZwNCivpg5Hlj4vor5oNCivpg5Hlv4PlpoINCivpg5HmlofmraMNCivpg5HmloflvawNCivpg5Hmloflr4wNCivpg5HmloflmIkNCivpg5HmnIjmnp0NCivpg5HkuJbmmIwNCivpg5HkuJbmuZgNCivpg5Hku5XpkasNCivpg5Hlt6fpnZINCivpg5HlvJjkvJ8NCivpg5HmraPor5oNCivpg5HmsLjmtKUNCivpg5HnjonkvLYNCivpg5Hnjonoi7ENCivpg5Hnjonoj4ENCivpg5Hnq4vkuqsNCivpg5HkupjlkJ8NCivpg5HkvIrnnJ8NCivpg5Hku7Llro8NCivpg5Hku7LotKQNCivpg5HlhYnkvZENCivpg5HlhYnmt7MNCivpg5HlhYblnYcNCivpg5HlhYjokIwNCivpg5HlkInkvZENCivpg5HlkI/lrZwNCivpg5HlkIjkv64NCivpg5HlpJnmtrUNCivpg5HlpoLmrKMNCivpg5HlpoLnuq8NCivpg5Hlroflro8NCivpg5Hlroflh4ANCivpg5HlrojkuJwNCivpg5HlronoirgNCivpg5Hlronnv5QNCivpg5HmiJDmo6ANCivpg5Hml63nm5sNCivpg5HmnInotKINCivpg5Hnmb7lqbcNCivpg5Hnvr3mmbQNCivpg5Hoh7PliJoNCivpg5HkvK/ljZcNCivpg5HlkJvovr4NCivpg5Hlro/mmI4NCivpg5Hlv5flip8NCivpg5Hlv5fkvJ8NCivpg5Hlv5fpvpkNCivpg5Hnp4DmgKENCivpg5Hnp4DlqJ8NCivpg5Hnp4DmhacNCivpg5HogrLljYcNCivpg5HotJ3lpoINCivpg5HkvbPlrpwNCivpg5HkvbPnpaUNCivpg5HkvbPku6oNCivpg5Hkvannj4oNCivpg5Hlhbbpm68NCivpg5HlrZ/njrINCivpg5HlrpfmnbANCivpg5HlrpzoirMNCivpg5HlubjlrpwNCivpg5HmgKHlkJsNCivpg5HmgKHlqbcNCivpg5HmmIzlsrMNCivpg5HmmI7lv6ANCivpg5HmmI7pk6gNCivpg5HmrKPlpoINCivpg5HmrKPojaMNCivpg5Hnp4nms5MNCivpg5HoirjoirgNCivpg5Hplb/lv5cNCivpg5Hkv4rlro8NCivpg5Hli4fnjJsNCivpg5Hlu7rkvbMNCivpg5Hlvabovr4NCivpg5HmmKXoj4oNCivpg5HnnIHmnZENCivpg5Hnvo7njokNCivpg5Hnvo7nkLQNCivpg5Hoi6XnkKQNCivpg5Hov6rlhYENCivpg5HlgKnlpoINCivpg5HlrrblhbgNCivpg5Hlrrbpk60NCivpg5HmjK/lrpwNCivpg5HkuabpkrANCivpg5HkvanlkJsNCivpg5HnpZDpmKENCivpg5HntKDlvawNCivpg5HojJfogaoNCivpg5HkvJ/nj4oNCivpg5Hlm73mraMNCivpg5Hlm73npaUNCivpg5Hln7nogaoNCivpg5HltIfkvZENCivpg5Hmg5/lv4MNCivpg5HlkK/ojaMNCivpg5HmooXlkJsNCivpg5HmuIXkv4oNCivpg5Hmt5HkupENCivpg5Hmt5HnsbMNCivpg5Hmt5HnjrINCivpg5Hmt5HlqbcNCivpg5Hmt5Hnh5UNCivpg5HmuIrol6QNCivpg5HnpaXlpoINCivpg5Hojonpm68NCivpg5HmnbDlhYMNCivpg5Hlh6/ku4ENCivpg5Hlh6/lhYMNCivpg5Hlh6/mlocNCivpg5Hlh6/ogrINCivpg5Hlh6/puL8NCivpg5Hog5zml60NCivpg5HljZrku4ENCivpg5HljZrmlocNCivpg5HkuZTpk60NCivpg5HlqbfmlocNCivpg5Hlr4zku4ENCivpg5HlsIrlrZ0NCivpg5Hmg6DmlocNCivpg5Hmg6DlkJsNCivpg5Hmg6DnurkNCivpg5Hmg6DpnJwNCivpg5Hmlq/lsLkNCivpg5Hmma/ku4ENCivpg5Hmma/mlocNCivpg5Hmma/pmoYNCivpg5Hmmbrku4ENCivpg5HmmbrlhYMNCivpg5HmmbrmmIwNCivpg5HmmbrosaoNCivpg5HmnJ3lhYMNCivpg5HmnJ3okKUNCivpg5HmpI3lr7ANCivpg5HmuZjmmIANCivpg5HnmpPkupENCivpg5HnqIvorq4NCivpg5HkuJ3pm68NCivpg5Hnv5TpvpkNCivpg5HoiJLolYoNCivpg5Hlko/ku4ENCivpg5Hor4/osKYNCivpg5HpgLjlqLQNCivpg5Hpl7XpuL8NCivpg5Hpm4XkupENCivpg5Hpm4Xlj4sNCivpg5Hpm4XmlocNCivpg5Hpm4XlpoMNCivpg5Hpm4XoiqwNCivpg5Hpm4XlqJ8NCivpg5Hpm4XnkKoNCivpg5Hpm4XnlIQNCivpg5Hpm4Xpu5sNCivpg5HkupHpuY8NCivpg5HmhI/kuK0NCivpg5HmlazmoaYNCivpg5Hmr5PpvoQNCivpg5HnkZ7nvo4NCivpg5HnkZznkLMNCivpg5HkuYnlrqoNCivpg5HlnKPotKQNCivpg5Hoo5XlubQNCivpg5Hor5fmhacNCivpg5HlmInku4ENCivpg5HlmInmiawNCivpg5HlmInml7sNCivpg5HojaPlqJ8NCivpg5Hnpo/lkowNCivpg5Hogoflv4MNCivpg5Hpk63ms7ANCivpg5Hlh6TpvoQNCivpg5Hluoblk7INCivpg5HmhafoirMNCivpg5HmhafplYENCivpg5HolJronYkNCivpg5HlrqrlrZgNCivpg5HmmZPmgKENCivpg5HmmZPolocNCivpg5Hpopbpk6gNCivpg5HolZnnkKYNCivpg5HpnJbpqo8NCivpg5HpnZnoirMNCivpg5Hmh4vmnbANCivpg5HosKLlhqANCivpg5HpuL/mupANCivpg5HkuLDlmIkNCivpg5HkuL3lkJsNCivpg5HnjK7mlocNCivpg5Hml7vovakNCivpg5HnkIfku4ENCivpg5Hln7UNCivpg5HntZzlv4MNCivpg5Hnjq7pmoYNCivpg5HpkrDpkp8NCivpg5HpnYsNCivpgpPljYfmlaYNCivpgpPmlofku6oNCivpgpPmsLjlv6ANCivpgpPkvIrlrrkNCivpgpPlkI7nkJsNCivpgpPml63mlaYNCivpgpPlv5fnhYwNCivpgpPkvbPnjrINCivpgpPlrpzmrKMNCivpgpPmmI7oirMNCivpgpPph5HpuL8NCivpgpPnp4vmg6ANCivpgpPmjK/oi7ENCivpgpPkvJ/otKQNCivpgpPmt5HnjrINCivpgpPljZrku4ENCivpgpPmg6DmlocNCivpgpPmma/pvpkNCivpgpPnv5Tku4ENCivpgpPpm4Xlv4MNCivpgpPpobrlsZUNCivpgpPoo5XppqgNCivpgpPnpo/pmoYNCivpgpPpnIflrocNCivpgpPpopbpqo8NCivpgpPliqblkYgNCivpsoHlv6DosaoNCivpsoHlrqrkupENCivpu47kuJblu4kNCivpu47lroflrrkNCivpu47mmI7kvKYNCivpu47kv5DlnYcNCivpu47lrrbkvLYNCivpu47lqYnku6oNCivpu47nhJXlhYMNCivpu47pk63ku4ENCivpu47npLzmmboNCivljaLkuInku4ENCivljaLku4HmnbANCivljaLmloflv6ANCivljaLmlofmmZ8NCivljaLlvJjmtbcNCivljaLmsLjljYcNCivljaLnlLPms7ANCivljaLlkInli4cNCivljaLlkYjoirMNCivljaLlv5flv6ANCivljaLlv5fono0NCivljaLogrLlnKMNCivljaLkvbPmg6ANCivljaLlj5TmrKMNCivljaLlrprlnYcNCivljaLlu7bljY4NCivljaLmgKHkvLYNCivljaLmgKHmtrUNCivljaLmib/kuJoNCivljaLmrKPlrpwNCivljaLnjqvlpo8NCivljaLpm6jmtrUNCivljaLkv53lhagNCivljaLkv4roqIANCivljaLkv4rlhJINCivljaLlhqDmmZQNCivljaLlpY7kvK8NCivljaLlqIHpnJYNCivljaLlu7rlro8NCivljaLlu7rpk60NCivljaLmgJ3mupANCivljaLmmJ/lhagNCivljaLmn4/oia8NCivljaLnm4jlro8NCivljaLnvo7lpoINCivljaLoi7Hku4ENCivljaLpn6bku4ENCivljaLlrrbpkrANCivljaLnpZbnv5QNCivljaLlqYnnkZwNCivljaLmt5HkuL0NCivljaLmg6DmnbANCivljaLotoXnvqQNCivljaLmgbrojokNCivljaLnvqTogrINCivljaLlmInmjK8NCivljaLlvrfoirMNCivljaLmhaflrpwNCivljaLovonlsZUNCivljaLpopblv5cNCivljaLpvpnnlJ8NCivljaLpn7XlspENCivljaLoqonlhYENCivljaLnrbHojrkNCivnqYbnvo7olZkNCivokKfkurrosaoNCivokKflo6vms7ANCivokKflsLnotJ4NCivokKflhYHms7ANCivokKfmlofmrKMNCivokKfmlofnrJQNCivokKfmlofprYENCivokKfkuJbmsJENCivokKfku6Xkuq4NCivokKfmraPlubMNCivokKfmsLjms5MNCivokKfnjonotJ4NCivokKfnq4vpn6YNCivokKfkuqbnu7QNCivokKfku7Llv5cNCivokKflhYbnkLMNCivokKflkI3msoINCivokKflnK3lppkNCivokKflpoLnj4oNCivokKflrofkvK8NCivokKflronlu7cNCivokKfmnInlro8NCivokKfogb/lro8NCivokKflkJvmgKENCivokKflro/oo5UNCivokKflv5fnvr0NCivokKflv5fosaoNCivokKfnp4Dmg6ANCivokKfogrLpmoYNCivokKfkvbPmgowNCivokKfkvannj4oNCivokKflraPolocNCivokKflsJrmlocNCivokKfmgKHoirMNCivokKfmmIblu7cNCivokKfmrKPmgKENCivokKfoirPnm4gNCivokKfpnZLokI0NCivokKfkv4rotKQNCivokKflvablvbANCivokKfmn4/ovakNCivokKfnvo7lqJ8NCivokKfov7Dku4ENCivokKflpI/mlY8NCivokKfmjK/lrokNCivokKfkvanlpoINCivokKforq3lm70NCivokKflm73mraMNCivokKflm73lrp0NCivokKfltIforroNCivokKfmlY/lvaYNCivokKfmuIXnh5UNCivokKfmt5Hnj40NCivokKfmt5HpopYNCivokKfpm6rlkJ8NCivokKflh6/mh4sNCivokKfljZrku4ENCivokKfljZrku7ANCivokKflr4zlhYMNCivokKfmg6DlhYMNCivokKfmg6DoirMNCivokKfmg6DkuaENCivokKfmlpDlpoINCivokKfmma/ogaoNCivokKfmmbrmooUNCivokKfmo4vlhYMNCivokKfnq6PpuL8NCivokKflko/mlrkNCivokKfpgLjlubMNCivokKfpm4XkuLkNCivokKfpm4XmlocNCivokKfpm4XojokNCivokKfpm6/lv4MNCivokKfniLHnjrINCivokKfnhJXnuqwNCivokKfnkZvml5cNCivokKflnKPmoaYNCivokKfor5fnkocNCivokKflmInnkKoNCivokKflroHlkJsNCivokKfnu7TlgKkNCivokKfovoXlvaYNCivokKfpk63mnYMNCivokKfmhafmgKENCivokKfojrnnnJ8NCivokKflv4blhbANCivokKfnv7Doi7ENCivokKfpnZnlrpwNCivokKfkuLDmmboNCivokKfkuL3lqJ8NCivokKfpuaTovakNCivokKfnkK7nv7ANCivokKfmn73lk5cNCivotZbkuYPpooINCivotZblo6votoUNCivotZbku4HnpZANCivotZblpKnpuL8NCivotZbmlofoi7ENCivotZbmlofljY4NCivotZbkuJbmmIwNCivotZbkuJbnu7QNCivotZblj6/mgakNCivotZblvJjnkpgNCivotZbmraPph44NCivotZbmsLjpk4MNCivotZbnjonllJANCivotZbnjonpnJwNCivotZbkuqbotJ4NCivotZblpoPlkJsNCivotZbml63lvaYNCivotZbkvK/lqIENCivotZblppnlrqMNCivotZblro/mmIwNCivotZblu7fnprkNCivotZblv5fmmIwNCivotZblv5fkvJ8NCivotZblv5fnurINCivotZbmnY/lhJINCivotZbnp4DmmKUNCivotZbogrLlu7cNCivotZbogrLpup8NCivotZbkvbPkvLYNCivotZbkvbPmrKMNCivotZbkvbPmhacNCivotZbkvanlkJsNCivotZblhbbkuq4NCivotZblrZ/ljY4NCivotZblrpfor5oNCivotZblrpzkvbMNCivotZblsYXmraMNCivotZbmgKHmlocNCivotZbmgKHkvLYNCivotZbmgKHlkJsNCivotZbmgKHmrKMNCivotZbmgKHmoaYNCivotZbmmIzlvaYNCivotZbmmI7lro8NCivotZbmmI7lvrcNCivotZbkuJzlu7YNCivotZbmrKPlrpwNCivotZbmrabmuqoNCivotZbnjqvlpoINCivotZboirPlu7YNCivotZbplb/kvZENCivotZbkv6HlhYkNCivotZbkv6Hor5oNCivotZbkv4rlhYYNCivotZbkv4rlro8NCivotZbkv4rmnbANCivotZbkv4rovr4NCivotZbkv5DljYkNCivotZblhqDlro8NCivotZbli4flv5cNCivotZblpZXluIYNCivotZblp7/lnYcNCivotZblqIHlnYcNCivotZblrqPlpqQNCivotZblu7rlkIgNCivotZblu7rkvZENCivotZblu7rlv5cNCivotZblu7rpm4QNCivotZblu7rono0NCivotZblvabkvZANCivotZblvaboia8NCivotZblvabmoaYNCivotZbmgJ3pnJYNCivotZbmlL/lrr0NCivotZbmmK3lhYkNCivotZbmmK3pvpkNCivotZbmmLHli4sNCivotZbmn4/kvLgNCivotZbmn4/pvpkNCivotZbnj4DotKQNCivotZbnm4jpnZINCivotZbnp5HljbANCivotZbnuqLpnJ4NCivotZbnvo7lhqANCivotZbnvo7pjLUNCivotZbojILlu7cNCivotZbombnkvLYNCivotZblhpvkuL4NCivotZbpg4Hpm68NCivotZbpn6bovr4NCivotZblrrblvJgNCivotZbmjK/nlJ8NCivotZbmtankuLANCivotZbnp6nlhYkNCivotZbpq5jlv5cNCivotZblm73mgakNCivotZbln7rmuIwNCivotZblkK/mupANCivotZbmt5HmgKENCivotZbmt5HotJ4NCivotZbmt5HokI0NCivotZbojonpm68NCivotZbmg6DlkJsNCivotZbmhInoirMNCivotZbpkqbor6ANCivotZbotLXkuYkNCivotZbpmoblubMNCivotZbpm4XnkLQNCivotZbpobrmjK8NCivotZbmupDmt7MNCivotZbkuYnkuK0NCivotZboi4fluIYNCivotZbpnZblrpwNCivotZblmInmhacNCivotZbojaPnkI8NCivotZbnu7Tlu7cNCivotZbpk63nm7gNCivotZblop7ogaoNCivotZbluobpk60NCivotZbmhaflqJ8NCivotZbmtIHoirMNCivotZbplIsNCivotZbmmZPmnqsNCivotZbpopbovokNCivotZbplKbkur8NCivotZbpnZnnkocNCivotZbpuL/pk60NCivotZbpn7XlpoINCivotZbkuL0NCivotZbkuL3pm68NCivotZboioPlkJsNCivotZbmn4rmo4sNCivotZbnjq7mmIANCivotZbpnIjlhJINCivov5/lsJrmnYMNCivpkrHku6XmgawNCivpkrHoia/olZkNCivpkrHmrKPlrpwNCivpkrHlqIHono0NCivpkrHpg4Hoi7kNCivpkrHpgLjpnJYNCivpkrHlvrfkv4oNCivplJzmg6Dpm68NCivpmI7mg6DnjrINCivpnI3ojpjnkZwNCivpqobmsLjlu7oNCivpqoblraPlubMNCivpqoboirPmoqcNCivpqoblu7rlkYgNCivpqobooY3pvpkNCivpqoblmInluoYNCivpso3ooYzku4ENCivpso3lm73ls7ANCivpvpnnp4DotJ4NCivpvpnmmJ/lhYYNCivlgqjkuo7otoUNCivlupTlv5flro8NCivmiLTkuZnoj4ENCivmiLTlpKfpkqcNCivmiLTlhYPliKkNCivmiLTmlofpm4QNCivmiLTmraPlubMNCivmiLTnq4vkuroNCivmiLTlhajliKkNCivmiLTlrojmraMNCivmiLTkvZHmtLINCivmiLTlkYjlrokNCivmiLTlro/kuJ4NCivmiLTlv5fljYcNCivmiLTmnY/oirMNCivmiLTkvbPlubMNCivmiLTlraPlhagNCivmiLTmgKHotJ4NCivmiLTmmI7nj6ANCivmiLTkv4rnuqwNCivmiLTnp4vpppkNCivmiLTpg4HoirMNCivmiLTmjK/ov5wNCivmiLTlm73oia8NCivmiLTmg5/mnIkNCivmiLTojokNCivmiLTmo67lnLANCivmiLTpm4XlpoINCivmiLTkvKDlrrYNCivmiLTnkZ7lkJsNCivmiLTnvqTls7ANCivmiLTlmInlro8NCivmiLTlmInlrqoNCivmiLTnu7TkvLgNCivmiLTlop7nkZwNCivmiLTotKTnpaUNCivmiLTpnZnku6oNCivmiLTlv57oh7sNCivmiLTolo/nj4oNCivnvKrkv6HlrocNCivolpvkuYPlhYENCivolpvkuLnmoYINCivolpvkuJbnhYwNCivolpvnjonplIsNCivolpvlhYnnqIsNCivolpvlpoLlkJsNCivolpvnmb7mg6ANCivolpvlv5flro8NCivolpvkvp3okqgNCivolpvlubjlmIkNCivolpvljYfml60NCivolpvlpZXpvpkNCivolpvnvo7oirMNCivolpvlsZXnq4sNCivolpvkvJ/kvK8NCivolpvmt5HpnZYNCivolpvlh6/mlocNCivolpvlm7TkuK0NCivolpvmma/mlocNCivolpvnq6PnurYNCivolpvpm4XokI0NCivolpvnkZ7nj40NCivolpvlmInpm4QNCivolpvok5PoirMNCivolpvlhJLpnJkNCivolpvpn7XlqbcNCivolpvpkrDnnJ8NCivosKLkuo7mqLENCivosKLlsI/mooUNCivosKLku4Hlk7INCivosKLlhYPotLUNCivosKLlv4Ppm4UNCivosKLmloflqJ8NCivosKLmloflsKcNCivosKLmlofnkZwNCivosKLmlofmlowNCivosKLku6XmrKMNCivosKLlvJjkuq4NCivosKLmraPnm4oNCivosKLmsLjkv6ENCivosKLnjonnj6ANCivosKLnq4vnvqQNCivosKLlhYnkuK0NCivosKLlkInkuLANCivosKLlpoLpuL8NCivosKLmiIzlmIkNCivosKLogb8NCivosKLkvZDlrpwNCivosKLlhYvlvLoNCivosKLlnYfmr4UNCivosKLlro/lv6ANCivosKLlro/nuqwNCivosKLlv5flro8NCivosKLlv5fmmI4NCivosKLlv5fkvJ8NCivosKLlv5fpgLgNCivosKLlv5flvrcNCivosKLmibbplKYNCivosKLnp4DpnZINCivosKLnp4DojrINCivosKLogrLlqJ8NCivosKLogrLpnJYNCivosKLkuprlspoNCivosKLkvp3kvKYNCivosKLkvbPmlocNCivosKLkvbPlro8NCivosKLkvbPoirMNCivosKLkvbPlgKkNCivosKLkvbPnuq8NCivosKLkvbPpm68NCivosKLkvbPpopYNCivosKLkvbPmqLENCivosKLkvanlkJsNCivosKLkvanoirMNCivosKLkvannj4oNCivosKLkvannj40NCivosKLkvannnJ8NCivosKLkvanok4kNCivosKLkvpHkuaYNCivosKLlhbbmlowNCivosKLlkajngr0NCivosKLlnaTlrqoNCivosKLlrZ/lkJsNCivosKLlrZ/oirgNCivosKLlrZ/nnJ8NCivosKLlrZ/moaYNCivosKLlrZ/oiqkNCivosKLlrpfkvZENCivosKLlrpflrrkNCivosKLlrpfotKQNCivosKLlrpflrqoNCivosKLlrpfnv7ANCivosKLlrpwNCivosKLlrpzoirMNCivosKLlrpzkvKYNCivosKLlrpzlqbcNCivosKLlrpzoh7sNCivosKLlrpvnjrINCivosKLlrpvosJgNCivosKLlsJrlhJINCivosKLlubjlrpwNCivosKLluprnv7ANCivosKLlv6Dli6QNCivosKLmgKHlqbcNCivosKLmib/ovr4NCivosKLkuo7nnb8NCivosKLmmJPpnJYNCivosKLmmIznkb4NCivosKLmmI4NCivosKLmmI7lro8NCivosKLmmI7mnZENCivosKLmmI7oirMNCivosKLmmI7kvKYNCivosKLmmI7kuaYNCivosKLmmI7mg6ANCivosKLmmI7mhqwNCivosKLmmI7lrqoNCivosKLmmI7nv7ANCivosKLmmI7oq7QNCivosKLljYflk7INCivosKLkuJzljYcNCivosKLkuJzmmZMNCivosKLmnb7lrqoNCivosKLmrKPlro8NCivosKLmrKPmgKENCivosKLmrKPpkooNCivosKLmrKPpnJYNCivosKLniafpmK4NCivosKLnp4nlrrkNCivosKLnp4nosJoNCivosKLoip3pnZINCivosKLph5HotJ4NCivosKLplb/ljp8NCivosKLpm6jpnZINCivosKLpnZLmoaYNCivosKLkv4rlro8NCivosKLkv57mnrANCivosKLlpZXlp50NCivosKLlvablkI8NCivosKLmlL/nlLcNCivosKLmlL/ovr4NCivosKLmlL/nv7ANCivosKLmn4/oiJ8NCivosKLnmofnv5QNCivosKLnp4vnh5UNCivosKLnvo7njrINCivosKLoh7TnvqQNCivosKLpg4HnkYQNCivosKLlrrboj7ENCivosKLluq3mgakNCivosKLmmYvotKQNCivosKLmtannhLYNCivosKLntKDoj7ENCivosKLlubLpqo8NCivosKLmm7znm4gNCivosKLlm73lvawNCivosKLlqYnnjrINCivosKLlkK/mlocNCivosKLmopPpup8NCivosKLmuIXmtLINCivosKLmt5HoiqwNCivosKLmt5HlqJ8NCivosKLmt5HpkqcNCivosKLnmo7nm4gNCivosKLnrKDlhYMNCivosKLlh6/kvJ8NCivosKLljZrnmpMNCivosKLlqpvnkKoNCivosKLlsprlsY8NCivosKLmg6DoiqwNCivosKLmg6DokI0NCivosKLmma/ku4ENCivosKLmmbrmtakNCivosKLmpI3lhogNCivosKLnmpPmmboNCivosKLoj4rolZkNCivosKLov5vlv6ANCivosKLpm4XlpoINCivosKLpm4Xpm6oNCivosKLpm4XokI0NCivosKLpm6/lh68NCivosKLpobrpmoYNCivosKLmr5PnjrINCivosKLnkZ7mooUNCivosKLkuIfpvpkNCivosKLor5fmhacNCivosKLlmInnj4oNCivosKLlmInpk60NCivosKLojaPlk7INCivosKLnoqfoj4ENCivosKLnu7Tku4ENCivosKLnv6Dnjq8NCivosKLpk63lv6ANCivosKLpk63mmboNCivosKLlh6TnjrINCivosKLlvrfpkqcNCivosKLmhafnj40NCivosKLmhafnkLwNCivosKLolJrlhJINCivosKLlrabnurINCivosKLmmZPlspoNCivosKLnh5XnjrINCivosKLolZkNCivosKLono3pvZANCivosKLpnZnlrpwNCivosKLpnZnku6oNCivosKLnkbflpoINCivosKLpuL/pqo8NCivosKLnpLzmiJANCivosKLplYflrocNCivosKLnkLzmlocNCivosKLpn7XlhJINCivosKLlrp3nkaINCivosKLogIDlhbsNCivosKLmmL7pk60NCivosKLml7vojokNCivosKLmmZ/pk60NCivosKLngpzpopENCivosKLogIDogaoNCivplLrkuZnmsJENCivplLrlhYPmjK8NCivplLrmloflrocNCivplLrmlofpkqYNCivplLrmnIjlnIYNCivplLrlubzlh4wNCivplLrmsLjpm4QNCivplLrnjonmg6ANCivplLrlhYbmsJENCivplLrmiJDlpYcNCivplLrkvK/lkJsNCivplLrlrZ3lhbYNCivplLrlv5flro8NCivplLrlv5fosaoNCivplLrnp4DoirMNCivplLrogrLosJoNCivplLrkvp3pnZkNCivplLrkvbPnnJ8NCivplLrkvbPpopYNCivplLrkvanoirgNCivplLrkvanlqbcNCivplLrljZPlhJINCivplLrlrZ/mhqwNCivplLrlrpzlhagNCivplLrlrpzlhbQNCivplLrlsJrlhJINCivplLrlu7bljY4NCivplLrmib/nkosNCivplLrmmJPovr4NCivplLrmmI7np4ANCivplLrmmI7mmY8NCivplLrmmI7lrqoNCivplLrljYfpopYNCivplLrmrKPnv7ANCivplLrnp4nosJoNCivplLrph5HnkosNCivplLrkv4rnlKsNCivplLrmlL/msJENCivplLrmlL/plKYNCivplLrnm4jmhacNCivplLrnvo7nkLMNCivplLrpg4Hnv44NCivplLrmjK/ms5MNCivplLrnurnmmJMNCivplLrllYbpqo8NCivplLrltIfmooUNCivplLrmt5HoiqwNCivplLrmt5HokI0NCivplLrlh6/kvp0NCivplLrmg6DlpoINCivplLrmmbrmnbANCivplLrnu5rlpoINCivplLrpgLjnn7MNCivplLrkupHlhYkNCivplLrmupDlvrcNCivplLroo5XmlocNCivplLrlmInlh6QNCivplLrnpa/lhYMNCivplLrpk63mmboNCivplLrlvrfpnJYNCivplLrkuZDlkJ8NCivplLrmmZPlspoNCivplLrplKbnkLMNCivplLrolrANCivplLrpuY/po54NCivplLrmh7/ljY4NCivplLrml7vlnJwNCivpnqDlsrHnkKYNCivpn6nmlofkuLANCivpn6nlhYvkv60NCivpn6nkvanliq0NCivpn6nlrpzmtIENCivpn6nmmI7kvKYNCivpn6nnm7jlrpwNCivpn6nmooUNCivpn6npm4XogIwNCivpn6nlmInpqo8NCivpn6nlrp3ojrkNCivkuJvmt5HljY4NCivnroDkuIrlk7INCivnroDlo6vnm4oNCivnroDlo6vmv6ANCivnroDlsI/olZkNCivnroDmlofkuqgNCivnroDmlofotLUNCivnroDkuJboo5UNCivnroDlt6flqbcNCivnroDmsJHpvpkNCivnroDnjonnj40NCivnroDnq4vkuroNCivnroDkvIrlqZUNCivnroDku7Dlo64NCivnroDlkInogaoNCivnroDlroflsY8NCivnroDnmb7lupQNCivnroDoh7PpnIYNCivnroDkvLblqJ8NCivnroDlkJvnjrINCivnroDlpqTnjrINCivnroDlro/kvKYNCivnroDlu7flrokNCivnroDlv5flrokNCivnroDlv5fls7ANCivnroDlv5fpm4QNCivnroDlv5fpopYNCivnroDnp4DmnY8NCivnroDnp4Dnuq8NCivnroDotJ3nj4oNCivnroDkvbPnkKoNCivnroDkvannkKoNCivnroDlrpflvrcNCivnroDmgKHlqbcNCivnroDmmI7pm4ENCivnroDnjqvnjokNCivnroDpm6jojasNCivnroDlu7rkuIANCivnroDmmK3okLgNCivnroDnvo7lqJ8NCivnroDombnnkKoNCivnroDlrrbmlrANCivnroDkvanpm4UNCivnroDlgaXkv4oNCivnroDlm73mlowNCivnroDlkK/mgZINCivnroDmt5HoiqwNCivnroDmt5HlqbcNCivnroDojonpnZkNCivnroDljZrlvawNCivnroDmg6DmuZgNCivnroDmo67kuZkNCivnroDljY7nnJ8NCivnroDpm4XlpoINCivnroDpobrnq4sNCivnroDmlazluq0NCivnroDmuqLlnYcNCivnroDnkZ7mo7sNCivnroDlnKPosaoNCivnroDor5fls7ANCivnroDlmInlro8NCivnroDlmInlvawNCivnroDlmInpvoQNCivnroDmsYnnkosNCivnroDnpa/kvZENCivnroDnu7TokLENCivnroDov5znnJ8NCivnroDpk63ovrANCivnroDlh6Tku6oNCivnroDmhaflqJ8NCivnroDlv4blpoINCivnroDplKHmuIoNCivnroDpqo/otLgNCivnroDoibrls7ANCivnroDpqormtIENCivnroDnjq7kvKYNCivnroDlnKMNCivogYLkuJzljZcNCivogYLmmpDls7sNCivok53lrZDmoZMNCivok53lhYPnmpMNCivok53mloflrZ0NCivok53lvJjkvJ8NCivok53ku7LkvJ8NCivok53lv5flj5ENCivok53mgKHlubMNCivok53mmJXnuqwNCivok53mmKXlj5ENCivok53ls7vlvawNCivok53kvJ/ku4ENCivok53lm73ljY4NCivok53mopPku5ENCivok53mg6DokI0NCivok53pm4XpvoQNCivok53lmInlk7INCivok53mhafnj4oNCivok53pu5vojrkNCivpmJnlsJHoirMNCivpmJnlkJ/lpJkNCivpmJnmmI7mhacNCivpmJnpgKLmr4UNCivpmJnmu6LoiqwNCivpopzlo6vlvawNCivpopzlpKfnpo8NCivpopzlsI/lh6ENCivpopzmnIgNCivpopzlvJjnpaUNCivpopzmsLjoirMNCivpopznjonnjq4NCivpopzlhYnnjpcNCivpopzlpoLnjokNCivpopzmnInnlLcNCivpopzkvK/lpYcNCivpopzlkYjml60NCivpopzlppnoirMNCivpopzlro/lk7INCivpopzlro/nnb8NCivpopzlv5fmiJANCivpopzlv5fmiawNCivpopzlv5fpup8NCivpopznp4DnnJ8NCivpopzoia/ms70NCivpopzkvbPmhacNCivpopzlrpflubMNCivpopzmib/kvJ8NCivpopznp4nlvrcNCivpopzlpZXku4ENCivpopznp4vnkLQNCivpopzoi6Xluq0NCivpopzlrrbnpboNCivpopzkvanlspoNCivpopzlm73kuaYNCivpopzlsInlh68NCivpopzmmajmmpANCivpopzmt5HkupENCivpopzlqbfnjrINCivpopzljY7miJANCivpopzpm4XljYkNCivpopzpm6/pn7UNCivpopznkZ7mlocNCivpopznkZzmhacNCivpopzlnKPpuL8NCivpopzlmInmiJANCivpopzlmInnkLMNCivpopzlroHkvZENCivpopznpo/poboNCivpopzpk7bmoZANCivpopzpuKPluoYNCivpopzojrnpuY8NCivpopzms73lrocNCivpopzpuL/pkqYNCivpopznjK7kvZENCivpopzpkrDoirgNCivprY/lo6vmnbANCivprY/lrZDmmbQNCivprY/ku4HlqIENCivprY/mlofnu64NCivprY/lt6fmmbQNCivprY/njonpm68NCivprY/ku7vlu7cNCivprY/lkI3ms5sNCivprY/lrofovr4NCivprY/nmb7nm5sNCivprY/kvLblqJ8NCivprY/lkJvmtIENCivprY/lrZ3lrr0NCivprY/lspHoiqwNCivprY/lv5fkvKYNCivprY/np4DmgawNCivprY/oia/kvZENCivprY/kvbPljb8NCivprY/lrpzlrr0NCivprY/mmI7nq6ANCivprY/kv4rml7oNCivprY/mmKXnlJ8NCivprY/oi7HplYcNCivprY/mmYvkuIANCivprY/kvJ8NCivprY/ltIfmoZMNCivprY/mt5HnjqsNCivprY/pgKLmr4UNCivprY/mnJ3kv6ENCivprY/pgLjnjrINCivprY/niLHmtKUNCivprY/mu4fkvZENCivprY/nraDmlocNCivprY/pk4Poip0NCivprY/lmInoia8NCivprY/lq6blpoYNCivprY/noZXpopYNCivprY/pk63msYkNCivprY/mhZXluIYNCivprY/otovlkIkNCivprY/pupLlrrkNCivprY/nkYTosIoNCivlup7msLjln7kNCivml7flqYnlkJsNCivnvZfljYPpm68NCivnvZflrZDovakNCivnvZflsLnkvLYNCivnvZfku4Hli4cNCivnvZflhYPnlKsNCivnvZflhYHkuK0NCivnvZflj4vlo7ANCivnvZflv4PlsY8NCivnvZfmloflrpwNCivnvZfmloflvawNCivnvZfmlofpvZANCivnvZfmnIjlh7ANCivnvZfkuJbpk60NCivnvZfku5Xmo4sNCivnvZflt6fojokNCivnvZfmraPpgqYNCivnvZfmsLjmmboNCivnvZfnjonokI0NCivnvZfkuqbml4sNCivnvZfku7DnnJ8NCivnvZflhYbnu7QNCivnvZflrofku7sNCivnvZfml63lkJsNCivnvZfoh7PlloQNCivnvZflro/kuIANCivnvZflv5fpm4QNCivnvZfnp4DnjrINCivnvZfkuprlroENCivnvZfkvbPnkKYNCivnvZflrpzlkJsNCivnvZfmgKHmg6ANCivnvZfmmI7nq6ANCivnvZfmrKPmhYgNCivnvZfoirfpnZINCivnvZfkv4rlvaYNCivnvZflvaYNCivnvZfnjrLnjrINCivnvZfnvo7ojrINCivnvZfoi5HmppUNCivnvZflrrbmrKMNCivnvZfmjK/lu7cNCivnvZfms7DkvKYNCivnvZfkvanlqJ8NCivnvZfntKDoirENCivnvZfkvJ/lk7INCivnvZflgaXlv5cNCivnvZfllK/nkYQNCivnvZflm73ljY4NCivnvZflm73mmpANCivnvZflqYnlqKUNCivnvZflvLoNCivnvZfmlY/mlocNCivnvZfmlY/ku6oNCivnvZfmt4fmlocNCivnvZfmt5Hok4kNCivnvZfnu43mlocNCivnvZfmnbANCivnvZflh6/popANCivnvZfljZrkv4oNCivnvZfmg6DmlrkNCivnvZfmg6DlhbANCivnvZfmmbrog70NCivnvZfntKvoj4ENCivnvZfljY7mtZMNCivnvZfpkqfogIANCivnvZfpm4XmlY8NCivnvZfpm6/nkLQNCivnvZfmr5PmnbANCivnvZfnkZ7ojaMNCivnvZflnKPnkLMNCivnvZfovr4NCivnvZflmInnjrINCivnvZfojaPovokNCivnvZfpmYXlt50NCivnvZfluobmnbANCivnvZfojrnmo7sNCivnvZfmmZPlqIENCivnvZflhbTlrokNCivnvZfpuL/ln7oNCivnvZfppqjlrpwNCivnvZfngpznqIsNCivosK3lj4jmsJENCivosK3lhYnljY4NCivosK3kvanlspoNCivosK3mgqbppqgNCivosK3mmbrku4ENCivosK3osJsNCivlhbPkuIDlv4MNCivlhbPlv5flrocNCivlhbPmt5HkupENCivkuKXlrZDnrZENCivkuKXlv4PlhYMNCivkuKXlj6/lkJsNCivkuKXlv5flk7INCivkuKXmmKXlh6QNCivkuKXmjK/lhbQNCivkuKXlqYnnjrINCivkuKXmt5Hoj4ENCivkuKXlko/lnKMNCivkuKXnu7TlvrcNCivkuKXppqUNCivnqqbnkZ7pnJ4NCivolLrlv4PmgKENCivoi4/ljYPku6MNCivoi4/lo6vosaoNCivoi4/lrZDnv5QNCivoi4/kuK3mgKENCivoi4/lhYPkuZkNCivoi4/mlocNCivoi4/mloflqJ8NCivoi4/mlofovokNCivoi4/kuJbluq0NCivoi4/lt6flroENCivoi4/mraPlrrYNCivoi4/msLjmnbANCivoi4/njonkv64NCivoi4/nq4vlh68NCivoi4/lpoLolZkNCivoi4/nq7nlrokNCivoi4/lkJvpnI8NCivoi4/lro/ms7ANCivoi4/lv5flrZ8NCivoi4/lv5flnZoNCivoi4/lv5fpuL8NCivoi4/np4DnjrINCivoi4/ogrLlvJgNCivoi4/ogrLkv54NCivoi4/ogrLnkbENCivoi4/kvbPotrMNCivoi4/kvannkZwNCivoi4/lrpfkuIANCivoi4/lsJrnkb4NCivoi4/mgKHlpoINCivoi4/mgKHlkJsNCivoi4/mgKHoj4ENCivoi4/mgKHppqgNCivoi4/mmI7kv4oNCivoi4/mmI7puL8NCivoi4/mrabpvpkNCivoi4/oirPmraMNCivoi4/oirPojrkNCivoi4/pnZLlppkNCivoi4/kv6HmupANCivoi4/kv4rlpKsNCivoi4/kv4rnpaUNCivoi4/kv4rpk60NCivoi4/kv57lpoINCivoi4/li4for5oNCivoi4/lpZXmnbANCivoi4/lqIHovr4NCivoi4/lu7rkuK0NCivoi4/lu7rlv5cNCivoi4/lu7rosaoNCivoi4/lvabojacNCivoi4/mgZLoh7MNCivoi4/mlL/osKYNCivoi4/mmK3lkJsNCivoi4/mmLHku7sNCivoi4/mn4/lt54NCivoi4/mn4/moaYNCivoi4/nj4rojrkNCivoi4/nmofljp8NCivoi4/nm4jnqZcNCivoi4/nuqrmlY8NCivoi4/nvo7njrINCivoi4/oh7Tku4ENCivoi4/oi7HnmpMNCivoi4/otJ7nh5UNCivoi4/pg4HkvKYNCivoi4/pg4Hpm4UNCivoi4/pppnnkKoNCivoi4/ku5PmsLgNCivoi4/lk7Lkur8NCivoi4/lrrYNCivoi4/lrrbkv6ENCivoi4/lrrbojrkNCivoi4/ls7vmsJENCivoi4/luq3nkbYNCivoi4/mjK/pk60NCivoi4/moZPluoYNCivoi4/mtankuLoNCivoi4/nm4rnpoQNCivoi4/nqojnkbENCivoi4/nuq/mhacNCivoi4/ovanmsJENCivoi4/kvJ/or5oNCivoi4/lm73lhbgNCivoi4/loILosaoNCivoi4/lqYnmg6ANCivoi4/mlY8NCivoi4/muIXlrokNCivoi4/mt5HlqbcNCivoi4/nmo7mhacNCivoi4/ojonmg6ANCivoi4/ljZrnjoQNCivoi4/mg6DotJ4NCivoi4/mmbbmlrANCivoi4/muZjmgKENCivoi4/oiJzljb8NCivoi4/pgLjnnJ8NCivoi4/pm4XlkJsNCivoi4/pm4Xmg6ANCivoi4/pm4XmhacNCivoi4/pobror5oNCivoi4/mhI/lspoNCivoi4/mlazoj7ENCivoi4/mr5PlvawNCivoi4/njLfnv5QNCivoi4/nnabku4ENCivoi4/nvqTmnbANCivoi4/lnKPmtrUNCivoi4/oo5XmlocNCivoi4/or5flqbcNCivoi4/pnZblspoNCivoi4/lmInlro8NCivoi4/lmInpuL8NCivoi4/noqfmmK0NCivoi4/pl7vosKgNCivoi4/kur/nj40NCivoi4/mhafmlocNCivoi4/mhaflqJ8NCivoi4/mr4UNCivoi4/mmZPlpoINCivoi4/mmZPoioMNCivoi4/plKbljYcNCivoi4/pnZnoirMNCivoi4/lo7DmjK8NCivoi4/puL/ku6oNCivoi4/puY/nv7ANCivoi4/kuL3ljY4NCivoi4/ml7vlkJsNCivoi4/ng5zmr4UNCivoi4/nkKHor4QNCivoi4/njq7nkLMNCivoi4/osYrmo4sNCivoi4/pkrDoj4ENCivpkp/lo6vpkqYNCivpkp/mlofnp4ANCivpkp/njonlpoINCivpkp/kvbPnu6INCivpkp/nm4jlh68NCivpkp/mjLrosaoNCivpkp/lm73pk60NCivpkp/mlY/mhKsNCivpkp/mg6DlrocNCivpkp/pobrnprkNCivpkp/noqflhbANCivpkp/ppqjosIoNCivppbblv5fosaoNCivppbbkuq4NCivppbbkvanpvoQNCivppbbmlazlm70NCivlhZrkuIDkuLoNCivpob7mlofnu5oNCivpob7nq4voi7kNCivpob7lrpfmspsNCivpob7lgKnlpoINCivpob7ltIflvrcNCivpob7nv6DljY4NCivpvprkuo7nj4oNCivpvprmlofpopYNCivpvprlhYbnpboNCivpvprkvanlkJsNCivpvprpnZLkupENCivpvprlvablkI0NCivpvprotJ7lpoINCivpvprkuablnKMNCivpvprmt5Hoi5cNCivpvprpm4XmrKMNCivpvprpnZbor5INCivpvprosavmhacNCivkupPpmobnpaUNCivkvZjlsJrpuL8NCivkvZjogZTmlowNCivpgr7kuqbljZcNCivmtoLkuJblkowNCivmtoLlkJvok4kNCivmtoLogrLojaMNCivmtoLmrKPlro8NCivmtoLmlL/nlLcNCivmtoLmjK/msJENCivmtoLlkK/ljp8NCivmtoLlr4zmmJ8NCivmtoLpm4Xnh5UNCivmtoLlmInljp8NCivmtoLmhafnj40NCivmtoLogIDljYcNCivnspjlvJjlkIkNCivnspjogrLnjq4NCivnspjnuq/lpoINCivnspjlnKPpkasNCivnspjogIDku4ENCivpgqzlv4PmgKENCivpnbPnq4vkvJ8NCivpgp3lhYnlroENCivmoL7lraPlvLoNCivugIDoirPnkKYNCivugIDlqYnlqbcNCivugIDpk63mupANCivuib7mlofli4sNCivuib7lh6TnkKoNCivui6fkv6HkuYkNCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfVGhhaS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9kYXRhL2NvbGxhdGlvbi9UZXN0TmFtZXNfVGhhaS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmIyNDNmNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL2RhdGEvY29sbGF0aW9uL1Rlc3ROYW1lc19UaGFpLnR4dApAQCAtMCwwICsxLDEwODQzIEBACivvu78jLyoqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqDQorIyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorIyAqLw0KKw0KK+C4geC5iuC4geC5gOC4ruC4hyDguYHguIvguYjguYHguJXguYkNCivguIHguIrguIHguKMg4Lio4Lij4Liy4LiX4LiY4LiX4Lix4LiVDQor4LiB4LiV4Li04LiB4LiyIOC4reC4seC4h+C4hOC4quC4uOC4oOC4kw0KK+C4geC4meC4gSDguJjguKPguKPguKHguJvguKPguLDguJfguLXguJsNCivguIHguJnguIEg4Lin4LiH4Lio4LmM4LiX4Lit4LiH4Lio4Lij4Li1DQor4LiB4LiZ4LiB4LiB4LijIOC4iuC5ieC4suC4h+C5gOC4ouC5h+C4meC4ieC5iOC4sw0KK+C4geC4meC4geC4ieC4seC4leC4o+C5jCDguJbguLLguKfguKPguJnguLHguJnguJfguYwNCivguIHguJnguIHguJnguKfguKUg4LmC4Lib4Lip4Lii4Liw4LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4LiB4LiZ4LiB4Lie4LijIOC4hOC4oeC4hOC4suC4og0KK+C4geC4meC4geC4nuC4oyDguJXguLXguKPguYDguKXguLTguKjguJ7guLLguJnguLTguIoNCivguIHguJnguIHguJ7guKMg4Lie4Lix4LiZ4LiX4LijDQor4LiB4LiZ4LiB4Lie4LijIOC4qOC4o+C4teC4muC4seC4k+C4keC4tOC4lQ0KK+C4geC4meC4geC4nuC4oyDguK3guJXguLTguKfguKPguKPguJPguLLguJ7guLHguJLguJnguYwNCivguIHguJnguIHguJ7guKPguKPguJMg4Lio4Lij4Li14Lin4LiZ4Liy4Lig4Li04Lij4Lih4Lii4LmMDQor4LiB4LiZ4LiB4Lij4Lix4LiV4LiZ4LmMIOC5gOC4geC4teC4ouC4o+C4leC4tOC4ouC4tOC5iOC4h+C4reC4seC4h+C4qOC4uOC4peC4tQ0KK+C4geC4meC4geC4o+C4seC4leC4meC5jCDguKrguLjguJjguKPguKPguKHguJ7guLTguJfguLHguIHguKnguYwNCivguIHguJnguIHguKfguKPguKPguJMg4LiE4LiH4LiE4Liy4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiB4LiZ4LiB4Lin4Lij4Lij4LiTIOC5geC4i+C5iOC5gOC4leC4teC4ouC4pw0KK+C4geC4meC4geC4p+C4o+C4o+C4kyDguJrguLjguI3guJvguKPguLDguYDguKrguKPguLTguJANCivguIHguJnguIHguKfguKPguKPguJMg4Lij4Lix4LiB4LiX4Lij4Lix4Lie4Lii4LmMDQor4LiB4LiZ4LiB4Lin4Lij4Lij4LiTIOC4quC4seC4iOC4iOC4nuC4h+C4qeC5jA0KK+C4geC4meC4geC4p+C4o+C4o+C4kyDguK3guLjguYnguKLguKfguIfguKjguYzguYTguJ7guKjguLLguKUNCivguIHguJnguIHguKjguLHguIHguJTguLTguYwg4Lii4Li04LmI4LiH4Lii4LiHDQor4LiB4LiZ4LiB4LmB4LiB4LmJ4LinIOC4geC4o+C4quC4oeC4tOC4lQ0KK+C4geC4meC4tOC4qeC4kOC4siDguJfguJnguLjguJbguJnguK3guKHguKPguLLguKnguI7guKPguYwNCivguIHguJnguLTguKnguJDguLIg4Lir4Lin4Lix4LiH4Lin4Li04Lia4Li54Lil4Lii4LmM4LiB4Li04LiIDQor4LiB4Lih4LilIOC4geC4suC4jeC4iOC4meC5guC4o+C4iOC4meC5jA0KK+C4geC4oeC4pSDguITguLHguKHguKDguLXguKPguYwNCivguIHguKHguKUg4LmA4LiI4LiV4LiZ4LmM4Lih4LiH4LiE4Lil4Lij4Lix4LiV4LiZ4LmMDQor4LiB4Lih4LilIOC4iuC4ueC4leC4o+C4sOC4geC4ueC4peC4mOC4o+C4o+C4oQ0KK+C4geC4oeC4pSDguJXguKPguLDguIHguLLguKPguJ7guLTguJnguLTguIgNCivguIHguKHguKUg4LiX4Lix4Lie4Lie4Liw4Lij4Lix4LiH4Liq4Li1DQor4LiB4Lih4LilIOC4muC4seC4lOC4leC4tOC4ouC4sg0KK+C4geC4oeC4pSDguJ7guIfguKnguYzguK3guJnguLHguJnguJXguYLguKLguJjguLTguJkNCivguIHguKHguKUg4LmC4Lie4LmC4Liq4Lig4LiyDQor4LiB4Lih4LilIOC4o+C4oeC5gOC4ouC4qA0KK+C4geC4oeC4pSDguYLguKXguKvguLDguYTguJ7guKjguLLguKUNCivguIHguKHguKUg4Lin4Li04Liq4Li44LiX4LiY4Li04LmM4LmA4Liq4Lij4Li14Lin4LiH4Lio4LmMDQor4LiB4Lih4LilIOC4quC4oeC4nuC4h+C4qeC5jA0KK+C4geC4oeC4pSDguKrguLjguKPguJ7guIfguKnguYzguJvguKPguLDguIrguLINCivguIHguKHguKUg4LmB4Lir4Lin4LiZ4LiX4Lix4Lia4LiX4Li04LihDQor4LiB4Lih4LilIOC5gOC4reC4teC5iOC4ouC4oeC4qOC4tOC4o+C4tA0KK+C4geC4oeC4peC4iuC4seC4oiDguKjguKPguLXguKrguLTguKPguLTguKPguLHguJXguJnguLLguIHguKMNCivguIHguKHguKXguJfguLTguJ7guKLguYwg4Lia4Lix4Lin4Lir4Li04Lij4Lix4LiNDQor4LiB4Lih4Lil4LiX4Li04Lie4Lii4LmMIOC4reC4oOC4tOC4meC4seC4meC4l+C5jOC4quC4tOC4o+C4tA0KK+C4geC4oeC4peC4nuC4oyDguKrguLLguYLguKPguKfguLLguJcNCivguIHguKHguKXguKHguLLguKgg4LiI4Li04Lin4Liw4LiY4LiZ4Liw4Lie4LijDQor4LiB4Lih4Lil4Lij4Lix4LiV4LiZ4LmMIOC5gOC4lOC4iuC4sOC4m+C4tOC4ouC4p+C4h+C4qOC5jA0KK+C4geC4oeC4peC4o+C4seC4leC4meC5jCDguYDguKXguLTguKjguYDguKXguLLguKvguYzguIHguLjguKUNCivguIHguKHguKXguKfguKPguKPguJMg4LiH4Liy4Lih4Lil4Liw4Lih4LmJ4Liy4LiiDQor4LiB4Lih4Lil4Lin4Lij4Lij4LiTIOC4muC4uOC4jeC5gOC4quC4o+C4tOC4oQ0KK+C4geC4oeC4peC4p+C4o+C4o+C4kyDguKrguKPguLLguJnguLjguIHguLnguKUNCivguIHguKHguKXguKjguLHguIHguJTguLTguYwg4LiH4Liy4Lih4Lia4Lij4Li04Lij4Lix4LiB4Lip4LmMDQor4LiB4Lih4Lil4LiyIOC4oeC5guC4meC4nuC4seC4kuC4meC4sA0KK+C4geC4oyDguIHguKPguLTguJnguKPguLHguIHguKnguYwNCivguIHguKPguIHguI4g4LiI4LiH4LmA4LiI4Lij4Li04LiNDQor4LiB4Lij4LiB4LiZ4LiBIOC4p+C4h+C4qOC5jOC4nuC4seC4meC4mOC4uOC5gOC4qOC4o+C4qeC4kOC5jA0KK+C4geC4o+C4geC4o+C4tOC4iiDguIHguLjguKrguLjguKHguLLguKHguLLguKXguKLguYwNCivguIHguKPguIrguLjguKXguLUg4LiB4Li04LiV4LiV4Li04LmA4Liq4Lij4Li14LiK4Lix4LiiDQor4LiB4Lij4LiX4Lit4LiHIOC4qOC4o+C4teC4quC4uOC5guC4gg0KK+C4geC4o+C4oeC5g+C4miDguKrguLjguKPguLTguYLguKINCivguIHguKPguKPguJPguLTguIHguLIg4LiB4LiZ4LiB4Lin4Lix4LiS4LiZ4Liy4Lin4Lij4Lij4LiTDQor4LiB4Lij4Lij4LiT4Li04LiB4LiyIOC4iOC4uOC4peC4reC4ouC4ueC5iA0KK+C4geC4o+C4o+C4k+C4tOC4geC4siDguYHguJXguYnguYDguIjguKPguLTguI0NCivguIHguKPguKPguJPguLTguIHguLIg4Lic4Liy4LiT4Li04LiV4Lie4LiH4Lio4LmMDQor4LiB4Lij4Lij4LiT4Li04LiB4LiyIOC4peC4tOC5ieC4oeC4quC4geC4uOC4pQ0KK+C4geC4o+C4o+C4k+C4tOC4geC4siDguKrguLLguKPguJ7guLLguJnguLTguIoNCivguIHguKPguKPguJPguLTguIHguLLguKPguYwg4LiB4LiZ4LiB4Lin4Lij4Lij4LiT4LiI4Liz4Lij4Lix4LiqDQor4LiB4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMIOC4iOC4suC4o+C4tOC4ouC4suC4meC4meC4l+C5jA0KK+C4geC4o+C4o+C4k+C4tOC4geC4suC4o+C5jCDguYHguIvguYjguYDguJXguLXguKLguKcNCivguIHguKPguKPguJPguLTguIHguLLguKPguYwg4LiZ4LiE4Lij4Lio4Lij4Li1DQor4LiB4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMIOC5hOC4nOC4l+C4ieC4seC4meC4l+C5jA0KK+C4geC4o+C4o+C4k+C4tOC4geC4suC4o+C5jCDguKHguLXguKrguLjguIINCivguIHguKPguKPguJPguLTguIHguLLguKPguYwg4Lin4Lix4LiK4Lij4Liw4LiE4Li44LmJ4Lih4LiE4Lij4Lit4LiHDQor4LiB4Lij4Lij4LiT4Li04LiB4Liy4Lij4LmMIOC4quC4suC4l+C4o+C4geC4tOC4iA0KK+C4geC4o+C4o+C4k+C4tOC4geC4suC4o+C5jCDguK3guLHguIfguKrguJbguLTguJXguKLguYzguK3guJnguLHguJnguJXguYwNCivguIHguKPguKPguKHguKrguLTguJfguJjguLTguYwg4LmA4LiX4Lie4Liq4Li44LiX4LiY4Li04LmMDQor4LiB4Lij4Lin4Li04LiB4LiyIOC4quC4t+C4muC4p+C4h+C4qOC5jOC4hOC4peC5ieC4suC4og0KK+C4geC4o+C4q+C4l+C4seC4oiDguIjguLTguJXguKTguJfguLHguKINCivguIHguKPguK3guIfguIHguLLguI3guIjguJnguYwg4Lit4Lix4LiI4LiJ4Lij4Li04Lii4Lin4LiH4Lio4LmMDQor4LiB4Lij4Lit4LiH4LiX4Lit4LiHIOC4meC4suC4luC4nuC4tOC4o+C4tOC4ouC4o+C4seC4leC4meC5jA0KK+C4geC4o+C4reC4h+C4l+C4tOC4nuC4ouC5jCDguJvguKPguLDguIjguLHguJnguJXguLDguYDguKrguJkNCivguIHguKPguK3guIfguYHguIHguYnguKcg4LmB4LiL4LmI4LmB4LiV4LmJDQor4LiB4Lij4Lit4LiH4LmB4LiB4LmJ4LinIOC4q+C4tOC4o+C4seC4jQ0KK+C4geC4o+C4sOC4iOC5iOC4suC4hyDguYDguKXguLTguKjguYDguIHguLXguKLguKPguJXguLTguJTguLPguKPguIfguITguYwNCivguIHguKPguLDguKrguLHguJkg4LmA4Liq4Lij4Li04Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4LiB4Lij4Liw4LmB4Liq4Lij4LmMIOC4l+C5ieC4p+C4oeC4iOC4seC5iOC4mQ0KK+C4geC4o+C4suC4meC4leC5jOC4m+C4o+C4sOC4oOC4siDguJvguKPguLDguKrguLTguJfguJjguLTguYzguKfguKPguLLguIHguLjguKUNCivguIHguKPguLTguIrguIjguLjguJHguLIg4Lio4Lij4Li14Liq4LiB4Li44LilDQor4LiB4Lij4Li04Liq4LiZ4LmMIOC4meC4p+C4oeC4l+C4reC4hw0KK+C4geC4o+C4teC4keC4suC4nuC4oyDguKfguIfguKjguYzguKPguK3guJQNCivguIHguKPguLjguJPguLIg4LiC4Lix4LiZ4LiX4Lit4LiHDQor4LiB4Lij4Li44LiT4LiyIOC4nuC4tOC5gOC4iuC4kOC4quC4seC4l+C4mOC4sg0KK+C4geC4o+C4ueC4lOC4teC4myDguIvguLTguIfguKvguYwNCivguIHguKTguIog4Lib4Li44LiT4LiT4LiB4Lix4LiZ4LiV4LmMDQor4LiB4Lik4LiK4Lib4LiT4LiVIOC4meC4tOC4mOC4tOC4meC5guC4o+C4lOC4oQ0KK+C4geC4pOC4lOC4siDguIHguLTguJXguLTguKfguLTguKDguLLguJUNCivguIHguKTguJXguJ7guKMg4LiB4Liy4LiN4LiI4LiZ4LiB4Liy4Lij4Li44LiT4Lin4LiH4Lio4LmMDQor4LiB4Lik4LiV4Lii4LiyIOC4nuC4uOC4kuC4tOC5gOC4meC4suC4p+C4o+C4seC4leC4meC5jA0KK+C4geC4pOC4leC4p+C4tOC4l+C4ouC5jCDguKrguLTguIfguKvguYzguKrguLjguIINCivguIHguKTguJXguLTguIHguLIg4Lio4Li44LiB4Lij4LiB4Liz4LmA4Lir4LiZ4Li04LiUDQor4LiB4Lik4LiV4Li04Lii4LiyIOC4mOC4meC4suC5gOC4qOC4o+C4qeC4kOC5jOC4geC4uOC4pQ0KK+C4geC4pOC4qSDguKrguLjguJnguJfguKPguLLguKPguIrguLjguJkNCivguIHguKTguKnguI7guLIg4LiI4Li04Lij4Liw4Lin4Li04LiK4LiK4LmA4Lil4Li04LioDQor4LiB4Lik4Lip4LiO4LiyIOC4muC4uOC4jeC4o+C4suC4ig0KK+C4geC4pOC4qeC4juC4siDguKfguKPguKPguJPguKrguLLguKPguYDguKHguJjguLINCivguIHguKTguKnguI7guLLguIfguITguYwg4LiW4LiZ4Lit4Lih4Lin4LiH4Lip4LmMDQor4LiB4Lik4Lip4LiP4LmMIOC5hOC4leC4o+C4geC4pOC4qeC4lOC4suC4nuC4ow0KK+C4geC4pOC4qeC4k+C4sCDguITguLjguJPguLLguIHguKMNCivguIHguKTguKnguJPguLAg4Lie4LiH4Lip4LmM4LiY4LiZ4LiwDQor4LiB4Lik4Lip4LiT4LiwIOC4reC4ouC4ueC5iOC4quC4uOC4gg0KK+C4geC4pOC4qeC4k+C4siDguITguKXguLLguYDguKfguIoNCivguIHguKTguKnguJPguLIg4LmA4LiL4LiZ4LiV4LmM4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4LiB4Lik4Lip4LiT4LiyIOC4mOC4o+C4o+C4oeC4p+C4uOC4kuC4tA0KK+C4geC4pOC4qeC4k+C4siDguJvguLTguKLguLDguJXguKPguLDguIHguLnguKXguKPguLHguJXguJnguYwNCivguIHguKTguKnguJPguLIg4Lih4LiT4LmA4LiR4Li14Lii4LijDQor4LiB4Lik4Lip4LiT4LiyIOC4qOC4o+C4teC4hOC4sw0KK+C4geC4pOC4qeC4k+C4siDguKrguLjguILguKfguLHguJLguIHguYwNCivguIHguKTguKnguJPguLIg4Lit4Li54LmI4Lir4Li04Lij4Lix4LiNDQor4LiB4Lik4Lip4LiT4LmA4LiU4LinIOC4l+C4o+C4teC4m+C4suC4leC4tQ0KK+C4geC4pOC4qeC4k+C5jCDguJfguK3guIfguYTguJfguKLguKrguLTguJkNCivguIHguKTguKnguJPguYwg4Lin4LiH4Lip4LmM4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LiB4Lik4Lip4LiU4LiyIOC4geC4pOC4qeC4k+C4suC4iuC4ueC4p+C4h+C4qOC5jA0KK+C4geC4pOC4qeC4lOC4siDguJfguK3guJnguKrguLnguIfguYDguJnguLTguJkNCivguIHguKTguKnguJTguLIg4LmA4Lil4Li04Lio4LmE4Lie4Lio4Liy4Lil4LiB4Li04LiIDQor4LiB4Lik4Lip4LiU4LiyIOC5gOC4reC4t+C5ieC4reC4m+C4tOC4ouC4sOC4iuC4suC4leC4tA0KK+C4geC4pOC4qeC4p+C4o+C4o+C4kyDguK3guLTguJnguJfguJ7guLLguJnguLTguIoNCivguIHguKXguKLguLjguJfguJjguYwg4Lin4Li44LmI4LiZ4Lia4Liz4Lij4Li44LiHDQor4LiB4Lil4Lit4Lii4LmD4LiIIOC4nuC4uOC5iOC4oeC4nuC4p+C4hw0KK+C4geC4peC5ieC4suC4k+C4o+C4h+C4hOC5jCDguYDguJzguLfguK3guIHguITguLjguYnguKHguIHguKTguKkNCivguIHguKXguLTguYjguJnguILguIjguKMg4Lij4Lix4LiB4Lin4LiH4Lip4LmMDQor4LiB4Lin4LiH4Lia4Li54LmJIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4geC4p+C4siDguYHguIvguYjguYDguJXguYvguIcNCivguIHguKfguLTguJnguJnguLLguJYg4LmA4Lil4Li04Lio4Liq4Li44LiU4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiB4Lin4Li1IOC4l+C4seC4h+C4quC4uOC4muC4uOC4leC4ow0KK+C4geC4p+C4tSDguYDguKXguLLguLDguJ/guK0NCivguIHguKfguLXguIrguLHguKIg4Lir4Lin4Lix4LiH4Lio4Li04Lil4Lib4LiE4Li44LiTDQor4LiB4LmJ4Lin4LiH4LmA4LiL4Li14LiiIOC5geC4i+C5iOC4ieC4seC5iOC4pw0KK+C4geC4qeC4oeC4siDguKfguIfguKjguYzguYTguJ7guJHguLnguKPguKLguYzguJvguLTguKLguLANCivguIHguKrguKHguLIg4LmC4Lij4LiI4LiZ4LmM4LmA4Lih4LiY4LiyDQor4LiB4Lit4LiHIOC4p+C5iOC4reC4h+C4nuC4h+C4qOC4suC4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C4geC4reC4h+C5gOC4q+C4p+C5iOC4hyDguYHguIvguYjguYDguIjguLXguKLguIcNCivguIHguK3guJrguIHguLLguI3guIjguJnguYwg4LiY4Lij4Lij4Lih4Lin4Liy4LiX4Li04LiZDQor4LiB4Lit4Lia4LiB4Li44LilIOC4iOC4seC4meC4l+C4o+C5jOC4geC4o+C4sOC4iOC5iOC4suC4hw0KK+C4geC4reC4muC4geC4uOC4pSDguJnguLjguIrguYHguJTguIcNCivguIHguK3guJrguIHguLjguKUg4Lin4Li04Lin4Lix4LiS4LiZ4Liw4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiB4Lit4Lia4LiB4Li54LilIOC4quC4tOC4h+C4hOC4sOC4leC4teC4o+C4sA0KK+C4geC4reC4muC4iuC4seC4oiDguYHguKvguKXguLDguYDguKvguKXguYjguLLguJvguKPguLLguIrguI3guYwNCivguIHguK3guJrguKjguLHguIHguJTguLTguYwg4LiV4Lib4LiZ4Li14Lii4LiX4Lij4Lix4Lie4Lii4LmMDQor4LiB4Lit4Lia4LmA4LiB4Li34LmJ4LitIOC4nuC4uOC4geC4geC4peC4tOC5iOC4mQ0KK+C4geC4reC4muC5geC4geC5ieC4pyDguKjguLTguKPguLTguKfguKPguKPguJMNCivguIHguK3guYDguIvguYfguKEg4LmA4Lih4LmI4LiZ4LiX4Lit4LiHDQor4LiB4LmI4Lit4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4guC4uOC4meC4l+C4reC4hw0KK+C4geC5iOC4reC5guC4iuC4hCDguIjguLHguJnguJfguKfguKPguLLguIfguIHguLnguKMNCivguIHguYnguK3guIfguYDguIHguLXguKLguKPguJXguLQg4LmA4Lif4Li34LmI4Lit4LiH4Lin4Li44LiS4Li04Lij4Liy4LiNDQor4LiB4LmJ4Lit4LiZ4LmB4LiB4LmJ4LinIOC4qOC4o+C4teC4meC4hOC4ow0KK+C4geC4seC4h+C4p+C4suC4pSDguYDguIHguLXguKLguKPguJXguLTguYzguKjguLHguIHguJTguLLguKfguIfguKjguYwNCivguIHguLHguIfguKrguJTguLLguKUg4Lir4Lit4Lih4LiB4Lil4Li04LmI4LiZ4Lij4Liy4LiV4Lij4Li1DQor4LiB4Lix4LiN4LiI4LiZ4Li1IOC4h+C4suC4oeC4nuC4quC4uOC4mOC4suC4lOC4pQ0KK+C4geC4seC4jeC4jeC4mOC4oyDguJ7guIfguKjguYzguJ7guIfguLHguJkNCivguIHguLHguI3guI3guLIg4LmA4LiB4Lip4Liq4Lix4LiH4LiC4LmMDQor4LiB4Lix4LiN4LiN4LiyIOC5g+C4iOC4oeC4seC5iOC4mQ0KK+C4geC4seC4jeC4jeC4siDguJTguLXguJfguLXguYjguKrguLjguJQNCivguIHguLHguI3guI3guLIg4LiZ4Lin4Lil4LmB4LiCDQor4LiB4Lix4LiN4LiN4LiyIOC4nOC4ueC5ieC4geC4pOC4leC4ouC4suC4hOC4suC4oeC4tQ0KK+C4geC4seC4jeC4jeC4siDguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguIHguLHguI3guI3guLIg4Lio4Lij4Li14Lin4Lix4LiS4LiZ4LiwDQor4LiB4Lix4LiN4LiN4LiyIOC4q+C4h+C4quC4geC4uOC4pQ0KK+C4geC4seC4jeC4jeC4suC4oOC4o+C4k+C5jCDguKXguLTguKXguLTguJXguIrguLLguI0NCivguIHguLHguI3guI3guLLguKPguLHguJXguJnguYwg4LmA4Lih4Li34Lit4LiH4LmB4LiB4LmJ4LinDQor4LiB4Lix4LiN4LiX4Li04Lih4LiyIOC4mOC4teC4o+C4oOC4suC4nuC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jA0KK+C4geC4seC4k+C4kOC4tOC4geC4siDguJMg4Liq4LiH4LiC4Lil4LiyDQor4LiB4Lix4LiT4LiX4Li04Lih4LiyIOC5gOC4iOC4o+C4tOC4jeC4o+C4seC4leC4meC4p+C4seC4kuC4meC5jA0KK+C4geC4seC4k+C4q+C4siDguKrguLjguKfguKPguKPguJPguIHguLLguYLguKMNCivguIHguLHguJnguJXguKLguLIg4LmA4Lie4Li04LmI4Lih4Lic4LilDQor4LiB4Lix4LiZ4LiX4Li04Lih4LiyIOC4o+C4reC4lOC4quC4s+C4reC4suC4h+C4hOC5jA0KK+C4geC4seC4meC4ouC4siDguIjguLXguJnguJ/guLjguYnguIcNCivguIHguLHguJnguKLguLIg4LmC4Lig4LiE4Liy4Liq4LiW4Li04LiV4Lii4LmMDQor4LiB4Lix4LiZ4Lii4LiyIOC5gOC4reC4teC5iOC4ouC4oeC4reC4meC4seC4meC4leC5jOC4p+C4seC4kuC4meC4sA0KK+C4geC4seC4meC4ouC4suC4peC4seC4geC4qeC4k+C5jCDguYDguJXguIrguLDguJ7guIfguKjguYzguKfguKPguIrguLHguKINCivguIHguLHguKHguJvguJnguLLguJcg4Lii4Lit4LmB4Liq4LiH4LiX4Lit4LiHDQor4LiB4Lix4Lih4Lie4LilIOC4leC4seC5ieC4h+C4iOC4tOC4leC4o+C4qOC4o+C4seC4l+C4mOC4sg0KK+C4geC4seC4oeC4nuC4pSDguKrguLTguILguKPguLXguKLguLANCivguIHguLHguKXguJnguLTguIHguLIg4LmA4Lii4Liy4Lin4Lij4Lix4LiB4Lip4LmMDQor4LiB4Lix4Lil4Lii4LiyIOC4geC4suC4o+C4seC4geC4qeC5jOC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4geC4seC4peC4ouC4siDguITguLjguJPguJvguKrguLjguJUNCivguIHguLHguKXguKLguLIg4LiJ4Liy4Lii4LiK4Li54Lie4LiH4Lio4LmMDQor4LiB4Lix4Lil4Lii4LiyIOC5geC4i+C5iOC4reC4tuC5iuC4hw0KK+C4geC4seC4peC4ouC4siDguYDguJbguKPguLDguJvguLHguI3guI3guLINCivguIHguLHguKXguKLguLIg4LiZ4Li44LiK4LiZ4Liy4LiO4LiZ4LiZ4LiX4LmMDQor4LiB4Lix4Lil4Lii4LiyIOC5gOC4nOC5iOC4suC5hOC4l+C4og0KK+C4geC4seC4peC4ouC4siDguYTguJ7guKPguKfguLHguJLguJnguLLguJnguLjguJ7guLHguJnguJjguYwNCivguIHguLHguKXguKLguLIg4Lii4Li04LmI4LiH4LiY4LmA4LiZ4LioDQor4LiB4Lix4Lil4Lii4LiyIOC4peC4tOC5ieC4oeC5guC4ouC4mOC4tOC4mQ0KK+C4geC4seC4peC4ouC4siDguKfguLTguKPguLTguKLguLDguYLguKPguIjguJnguLLguKfguLjguJLguLQNCivguIHguLHguKXguKLguLIg4Liq4Lij4Lij4Lie4LiB4Li04LiI4Lic4LilDQor4LiB4Lix4Lil4Lii4LiyIOC4quC4uOC4o+C4nuC4pOC4geC4qeC5jA0KK+C4geC4seC4peC4ouC4siDguK3guLTguJnguJfguKPguJfguLHguJUNCivguIHguLHguKXguKLguLLguJPguLUg4LiE4Li54Lib4Lij4Liw4Lie4Lix4LiX4LiY4LmM4Lie4LiH4Lio4LmMDQor4LiB4Lix4Lil4Lii4Liy4LiT4Li1IOC4luC4tOC4o+C4sOC4o+C4k+C4o+C4h+C4hOC5jA0KK+C4geC4seC4peC4ouC4suC4k+C4tSDguKPguLjguYjguIfguYDguKXguLTguKgNCivguIHguLHguKXguKLguLLguJPguLUg4Lir4Li04Lij4Lix4LiN4LmA4LiK4Lij4Lip4LiQ4LmMDQor4LiB4Lix4Lil4Lii4Liy4Lij4Lix4LiV4LiZ4LmMIOC4muC4seC4k+C4keC4tOC4leC4oOC4tOC4o+C4oeC4ouC5jA0KK+C4geC4suC4geC4reC4hyDguYHguIvguYjguKvguKLguLXguYgNCivguIHguLLguI3guIjguJnguLAg4LmE4Lih4LmJ4LmB4LiB4LmJ4LinDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4geC4suC4jeC4iOC4meC4sg0KK+C4geC4suC4jeC4iOC4meC4siDguYHguIHguYjguJnguJvguKPguLDguKLguLnguKMNCivguIHguLLguI3guIjguJnguLIg4LiE4Lij4Li44LiR4LmE4LiK4Lii4Lix4LiZ4LiV4LmMDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4iOC4seC4meC4l+C4meC4sOC5guC4quC4leC4luC4tOC5jA0KK+C4geC4suC4jeC4iOC4meC4siDguIjguLXguKPguLDguYHguJ7guJfguKLguYwNCivguIHguLLguI3guIjguJnguLIg4LmA4LiJ4Lil4Li04Lih4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC5gOC4iuC4tOC4h+C4iuC4suC4jeC4geC4tOC4iA0KK+C4geC4suC4jeC4iOC4meC4siDguYHguIvguYjguK3guLHguYrguIcNCivguIHguLLguI3guIjguJnguLIg4LmB4LiU4LiH4Lib4Lij4Liw4LmE4LieDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC5guC4leC5iuC4sOC4nuC4tOC4geC4uOC4pQ0KK+C4geC4suC4jeC4iOC4meC4siDguYDguJfguJ7guKPguKoNCivguIHguLLguI3guIjguJnguLIg4LiZ4Liy4LiE4Lin4Li04Liq4Lix4LiiDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4muC4uOC4jeC4iuC5iOC4p+C4og0KK+C4geC4suC4jeC4iOC4meC4siDguJvguK3guIfguYDguKrguIfguLXguYjguKLguKENCivguIHguLLguI3guIjguJnguLIg4Lie4LiZ4Lih4Lin4Lij4Lij4LiT4LmA4Lin4LiKDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4nuC4tOC4nuC4seC4kuC4meC4suC4meC4tOC4leC4ouC5jA0KK+C4geC4suC4jeC4iOC4meC4siDguKDguLLguITguITguLkNCivguIHguLLguI3guIjguJnguLIg4LmA4Lih4LiG4LiB4Li44Lil4Lin4Li04LmC4Lij4LiI4LiZ4LmMDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4o+C4suC4leC4o+C4tQ0KK+C4geC4suC4jeC4iOC4meC4siDguYDguKXguLTguKjguKjguLHguIHguJTguLTguYzguKfguLTguKHguLLguJkNCivguIHguLLguI3guIjguJnguLIg4Lin4Lix4LiS4LiZ4Liw4LiI4Lix4LiZ4LiX4Lij4LmMDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4qOC4o+C4teC4m+C4o+C4sOC4l+C4teC4m+C4muC4seC4k+C4keC4tOC4lQ0KK+C4geC4suC4jeC4iOC4meC4siDguYDguKjguKfguJXguLLguKHguKPguYwNCivguIHguLLguI3guIjguJnguLIg4Liq4Liy4Lih4Liy4Lij4LiW4LiB4Li04LiIDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4quC4uOC4l+C4mOC4tOC4meC4uOC5iOC4mQ0KK+C4geC4suC4jeC4iOC4meC4siDguYHguKrguIfguKrguLnguIcNCivguIHguLLguI3guIjguJnguLIg4Lit4Lig4Li04LiZ4Lix4LiZ4LiX4LmM4LiZ4Liy4LiWDQor4LiB4Liy4LiN4LiI4LiZ4LiyIOC4reC4tOC4meC4l+C4o+C4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4geC4suC4jeC4iOC4meC4suC4oOC4o+C4k+C5jCDguILguKHguLTguYnguJnguYDguITguKPguLfguK0NCivguIHguLLguI3guIjguJnguLUg4Lij4Lix4LiB4Lip4LmM4Liq4LiB4Li44LilDQor4LiB4Liy4LiN4LiI4LiZ4LmMIOC4ouC4ueC5iOC5guC4q+C4h+C4pw0KK+C4geC4suC4meC4lOC4siDguITguJPguLDguKrguLjguIINCivguIHguLLguJnguJTguLIg4LmA4LiU4LmI4LiZ4LmE4LiX4LiiDQor4LiB4Liy4LiZ4LiU4LiyIOC4m+C4suC4meC4iuC4tQ0KK+C4geC4suC4meC4lOC4siDguKPguLjguYjguIfguJvguKPguLDguIHguLLguKLguKPguLHguJXguJnguYwNCivguIHguLLguJnguJTguLIg4Lio4Lix4LiB4LiU4Li04LmM4Liq4Li04LiX4LiY4Li04LmMDQor4LiB4Liy4LiZ4LiU4LiyIOC4reC4seC4oeC4nuC4o+C4p+C4tOC5guC4o+C4iOC4meC5jOC4geC4tOC4iA0KK+C4geC4suC4meC4leC5jCDguYLguIHguKrguLTguJnguJfguKPguIHguLjguKUNCivguIHguLLguJrguJnguKDguLIg4LiZ4Liy4Lih4LmB4LiU4LiHDQor4LiB4Liy4Lij4Liw4LmA4LiB4LiUIOC4geC4uOC4q+C4peC4suC4muC5geC4geC5ieC4pw0KK+C4geC4suC4o+C4teC4oSDguJrguLjguI3guKHguLLguYDguKXguLTguKgNCivguIHguLLguKPguLjguJMg4LiK4Lix4Lii4Lin4LiH4Lio4LmM4LmC4Lij4LiI4LiZ4LmMDQor4LiB4Liy4Lij4Li44LiTIOC4qOC4o+C4teC4quC4lOC5g+C4qg0KK+C4geC4suC4o+C4uOC4k+C4ouC5jCDguYDguKrguKPguLTguKHguKrguIHguLjguKUNCivguIHguLLguKvguKXguIcg4LiU4LmI4Liy4LiZ4Lie4Liy4LiT4Li04LiK4Lii4LmM4LiB4Li44LilDQor4LiB4LmJ4Liy4LiZIOC4meC5iOC4p+C4oeC4quC4s+C4peC4tQ0KK+C4geC4s+C4iOC4oyDguIrguLnguJjguJnguLLguIHguKPguJPguYzguIHguLjguKUNCivguIHguLPguIjguKMg4Lit4LiZ4Lix4LiN4LiN4Liy4LmA4LiC4LiVDQor4LiB4Liz4LiI4Lix4LiUIOC4pOC4l+C4mOC4tOC5jOC4lOC4tQ0KK+C4geC4s+C4iuC4seC4oiDguKXguLLguKfguLHguJPguKLguKfguLjguJLguLQNCivguIHguLPguJjguKMg4LiI4Liy4Lij4Li44Liq4Li44Lin4Lij4Lij4LiT4Lig4Li54Lih4Li0DQor4LiB4Liz4LiY4LijIOC4leC4seC4meC4mOC4teC4o+C4sOC4mOC4o+C4o+C4oQ0KK+C4geC4s+C4mOC4oyDguJ7guKPguJfguKfguLXguYLguKDguITguJfguKPguLHguJ7guKLguYwNCivguIHguLPguJjguKMg4LmE4Lin4LiX4Lii4Liw4Lie4Liy4LiZ4Li04LiKDQor4LiB4Liz4LiY4LijIOC4reC4tOC4meC4l+C4o+C5hOC4nuC5guC4o+C4iOC4meC5jA0KK+C4geC4s+C4nuC4pSDguYDguILguYfguKHguJfguK3guIcNCivguIHguLPguJ7guKUg4LmC4LiK4LiE4Liq4Li44LiZ4LiX4Liq4Li44LiX4LiY4Li04LmMDQor4LiB4Liz4Lie4LilIOC4muC4ueC4o+C4nuC4suC4iuC4teC4ng0KK+C4geC4s+C4nuC4pSDguKPguLHguJXguJnguKfguLTguKPguLTguKLguLANCivguIHguLPguJ7guKUg4Lio4Lix4LiB4LiU4Li04LmM4Lie4Li04LiK4Lix4Lii4Liq4LiB4Li44LilDQor4LiB4Liz4Lie4LilIOC4reC4lOC4uOC4peC4p+C4tOC4l+C4ouC5jA0KK+C4geC4s+C5gOC4meC4tOC4lCDguYDguJfguLXguKLguJnguYDguJnguLXguKLguKENCivguIHguLPguYTguKMg4LiJ4Li04Lih4LiU4Lit4LiZ4LiX4Lit4LiHDQor4LiB4Li04LmI4LiHIOC4geC4quC4tOC4oOC4suC4o+C5jA0KK+C4geC4tOC5iOC4h+C4geC4suC4jeC4iOC4meC5jCDguJjguJnguITguLjguYnguKHguIrguLXguJ4NCivguIHguLTguYjguIfguIHguLLguI3guIjguYwg4Lin4LiH4Lio4LmM4LiB4Li04LiI4LiI4Liy4LmA4Lil4Li04LioDQor4LiB4Li04LmI4LiH4Lie4LijIOC4hOC4h+C5gOC4reC4teC5iOC4ouC4oeC4nuC4tOC4mOC4tQ0KK+C4geC4tOC5iOC4h+C5geC4geC5ieC4pyDguYPguIjguJXguYrguLDguKHguLINCivguIHguLTguYjguIfguYHguIHguYnguKcg4Lii4Lix4LiH4LmA4LiI4Lij4Li04LiNDQor4LiB4Li04LiIIOC4meC4suC4p+C4suC4nuC4meC4oQ0KK+C4geC4tOC4iOC4iOC4siDguYDguIjguKPguLTguI3guJzguKUNCivguIHguLTguIjguIjguLIg4Lie4Li54Lil4Lic4LilDQor4LiB4Li04LiI4LiI4LiyIOC4quC4uOC4guC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4geC4tOC4iOC4leC4tOC4nuC4h+C4qeC5jCDguIrguLnguYTguJfguKINCivguIHguLTguJXguJTguJnguLHguKIg4LiY4Lij4Lih4LiY4Lix4LiKDQor4LiB4Li04LiV4LiV4Li0IOC4geC4tOC4leC4leC4tOC4p+C4o+C4nuC4seC4meC4mOC5jA0KK+C4geC4tOC4leC4leC4tCDguITguIfguIrguLfguYjguJnguKrguLTguJkNCivguIHguLTguJXguJXguLQg4LiI4LmI4Liy4LiH4LiI4Lij4Li54LiN4LmC4Lij4LiI4LiZ4LmMDQor4LiB4Li04LiV4LiV4Li0IOC4iuC4seC4ouC4qOC4tOC4o+C4tOC4nuC4h+C4qOC5jA0KK+C4geC4tOC4leC4leC4tCDguYHguIvguYjguKvguKXguLTguYnguKENCivguIHguLTguJXguJXguLQg4LiV4LmC4Lih4Lir4Lij4LiT4Lin4LiH4Lio4LmMDQor4LiB4Li04LiV4LiV4Li0IOC4mOC4meC4suC4oOC4tOC4meC4seC4meC4l+C5jOC4iuC4seC4og0KK+C4geC4tOC4leC4leC4tCDguJrguLjguI3guKfguLHguJnguJXguYwNCivguIHguLTguJXguJXguLQg4Lie4LiH4Lio4LmM4Lie4Lil4Liy4LiN4LiK4Lix4LiiDQor4LiB4Li04LiV4LiV4Li0IOC5hOC4nuC4muC4ueC4peC4ouC5jOC4ouC4tOC5iOC4hw0KK+C4geC4tOC4leC4leC4tCDguKPguK3guIfguKPguLHguJXguJnguYwNCivguIHguLTguJXguJXguLQg4Lil4Li04LmJ4Lih4LiK4Lix4Lii4LiB4Li04LiIDQor4LiB4Li04LiV4LiV4Li0IOC4p+C4seC4iuC4o+C4sOC4hOC4uOC4m+C4leC5jA0KK+C4geC4tOC4leC4leC4tCDguKjguKPguLXguKrguLjguJfguJjguLTguKPguLHguIHguKnguYwNCivguIHguLTguJXguJXguLQg4Liq4Lix4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiB4Li04LiV4LiV4Li0IOC5gOC4quC4o+C4teC4muC4uOC4leC4ow0KK+C4geC4tOC4leC4leC4tCDguK3guKLguLnguYjguYLguJ7guJjguLTguYwNCivguIHguLTguJXguJXguLQg4LmA4Lit4Li34LmJ4Lit4LiK4Liy4LiN4LmA4Lin4LiKDQor4LiB4Li04LiV4LiV4Li04LiE4Li44LiTIOC5gOC4iOC4t+C4reC4geC4tOC4iOC4geC4s+C4iOC4ow0KK+C4geC4tOC4leC4leC4tOC4iuC4seC4oiDguIrguYjguK3guJfguK3guIfguJTguLUNCivguIHguLTguJXguJXguLTguIrguLHguKIg4Lie4Li04Lij4Li04Lii4Liw4LiB4Li44Lil4LiY4LijDQor4LiB4Li04LiV4LiV4Li04LiK4Lix4LiiIOC4reC4o+C4iuC4ow0KK+C4geC4tOC4leC4leC4tOC4meC4seC4meC4l+C5jCDguKvguKHguLLguKLguKHguLHguYjguJnguKjguKMNCivguIHguLTguJXguJXguLTguJ7guIfguKjguYwg4LiX4Lit4LiH4Liq4Li44LiC4LiyDQor4LiB4Li04LiV4LiV4Li04Lie4LiH4Lip4LmMIOC4geC4tOC4leC4leC4tOC4oOC4seC4quC4quC4ow0KK+C4geC4tOC4leC4leC4tOC4nuC4h+C4qeC5jCDguJfguKPguLHguJ7guKLguYzguKrguLjguIINCivguIHguLTguJXguJXguLTguJ7guIfguKnguYwg4LmA4Lih4Lip4Liw4Lih4Lix4LiVDQor4LiB4Li04LiV4LiV4Li04Lie4LiH4Lip4LmMIOC4q+C4suC4jeC5hOC4l+C4ouC4nOC4peC4lOC4tQ0KK+C4geC4tOC4leC4leC4tOC4nuC4pSDguIjguLHguJnguJfguKPguYzguKLguLTguYnguKENCivguIHguLTguJXguJXguLTguJ7guLHguJnguJjguLjguYwg4LmA4Lil4LmH4LiB4Lib4Lij4Liw4Liq4Lih4Lin4LiH4LiE4LmMDQor4LiB4Li04LiV4LiV4Li04Lih4LiyIOC5gOC4geC4teC4ouC4o+C4leC4tOC4geC4oeC4peC4oeC4suC4peC4ouC5jA0KK+C4geC4tOC4leC4leC4tOC4oeC4siDguYDguJ7guLTguYjguKHguKrguLjguIINCivguIHguLTguJXguJXguLTguKHguLIg4LmA4Lit4Li34LmJ4Lit4LiB4Li04LiI4LiY4Li04LmC4Lij4Lib4LiB4Lij4LiT4LmMDQor4LiB4Li04LiV4LiV4Li04Lii4LiyIOC4o+C4seC4leC4meC4qOC4o+C4teC4reC4s+C5hOC4nuC4nuC4h+C4qOC5jA0KK+C4geC4tOC4leC4leC4tOC4p+C4o+C4o+C4kyDguIHguLPguJjguKPguYDguIjguKPguLTguI0NCivguIHguLTguJXguJXguLTguKfguLjguJLguLQg4Lio4Lio4Li04Lie4LiH4Lio4LmM4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4LiB4Li04LiV4LiV4Li04Lio4Lix4LiB4LiU4Li04LmMIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4geC4tOC4leC4leC4tOC4qOC4seC4geC4lOC4tOC5jCDguJvguKPguLDguK3guLTguJnguJfguKPguYwNCivguIHguLTguJXguJXguLTguKjguLHguIHguJTguLTguYwg4Lin4Lij4LiB4Li04LiI4Lib4Lij4Liw4LiX4Li14LibDQor4LiB4Li04LiV4LiV4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4q+C4reC4oeC4iOC4s+C4m+C4sg0KK+C4geC4tOC4leC4leC4tOC5gOC4lOC4iiDguJjguJnguKPguKPguIbguLLguIHguKMNCivguIHguLTguJXguLQg4LiK4Lin4LiZ4Liw4Lil4Li04LiC4Li04LiB4LijDQor4LiB4Li04LiV4Li04LiB4LijIOC4nuC4meC4tOC4iuC4ouC5jOC4quC4geC4uOC4pQ0KK+C4geC4tOC4leC4tOC4iuC4seC4oiDguKrguLTguJfguJjguLTguYzguJjguKPguKPguKHguKfguLTguYTguKUNCivguIHguLTguJXguLTguJ7guIfguKnguYwg4LiV4Lix4LiZ4LiV4Li04Lin4LiT4Li04LiK4Lii4LmMDQor4LiB4Li04LiV4Li04Lie4Lix4LiS4LiZ4LmMIOC4m+C4p+C4teC4k+C4p+C4tOC4l+C4ouC5guC4iuC4leC4tA0KK+C4geC4tOC4leC4tOC4oeC4siDguJ7guLjguJLguIjguLHguJnguJfguKPguYwNCivguIHguLTguJXguLTguKLguLIg4LiZ4LiB4LiX4Lit4LiHDQor4LiB4Li04LiV4Li04Lio4Lix4LiB4LiU4Li04LmMIOC5geC4geC4peC5ieC4p+C4geC4quC4tOC4p+C4tOC4l+C4ouC5jA0KK+C4geC4tOC4leC4tOC4qOC4seC4geC4lOC4tOC5jCDguYDguKXguLTguKjguKfguIfguKjguYzguKfguLXguKPguIrguLHguKINCivguIHguLTguJnguKPguLUg4LiU4Liz4LiX4Lit4LiH4Liq4Li44LiCDQor4LiB4Li04Lih4LiB4Li1IOC5geC4i+C5iOC4q+C4o+C4t+C4rQ0KK+C4geC4tOC4oeC4iOC4seC5iuC4pyDguYHguIvguYjguYLguJvguYjguKcNCivguIHguLTguKHguIvguYnguIcg4LmB4LiL4LmI4Lil4Li14LmJDQor4LiB4Li04Lih4Lib4LmK4LitIOC5gOC4peC4tOC4qOC4geC4p+C4teC4p+C4h+C4qOC5jA0KK+C4geC4tOC4oeC4peC4seC5ieC4hyDguIHguLTguIjguYDguIjguKPguLTguI3guIrguLHguKINCivguIHguLTguKHguKXguLjguYnguKIg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4LiB4Li04Lih4Lir4Lii4Li44LiZIOC5geC4i+C5iOC4iOC4hw0KK+C4geC4tOC4oeC4ruC4p+C4lCDguYDguIjguKPguLTguI3guKPguLHguIfguKrguKPguKPguITguYwNCivguIHguLTguKHguK7guLHguYnguKcg4LmB4LiL4LmI4Lil4Li14LmJDQor4LiB4Li04Lih4LmA4LiK4LmH4LiHIOC5geC4i+C5iOC5hOC4q+C4pQ0KK+C4geC4tOC4oeC5gOC4leC4teC4ouC4hyDguYHguIvguYjguYDguK7guYnguIcNCivguIHguLTguKHguYDguKXguLXguYnguKLguIcg4Lia4Li44LiN4Lii4LiH4LiE4LmMDQor4LiB4Li04Lih4LmA4Lit4LmH4LiHIOC5geC4i+C5iOC4q+C4peC4tOC4oQ0KK+C4geC4tOC4oeC5gOC4ruC4teC4ouC4hyDguYHguIvguYjguYTguKvguKUNCivguIHguLTguKHguYTguIjguYog4LmB4LiL4LmI4Lit4Li24LmK4LiHDQor4LiB4Li04LmJ4Lih4LiB4Li44LmJ4LiHIOC5geC4i+C5iOC4m+C4tuC5ieC4hw0KK+C4geC4tOC4o+C4kyDguIjguLLguKPguLjguIjguLTguJnguJTguLINCivguIHguLUg4LiI4Li14LmJ4LmA4LiL4LmJ4LiHDQor4LiB4Li14Lij4LiT4LiyIOC4l+C4seC4meC4leC4sOC5gOC4p+C4ig0KK+C4geC4teC4o+C4muC4uOC4leC4oyDguIHguLTguJXguLTguKLguLLguJTguLTguKjguLHguKINCivguIHguLjguIcg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4LiB4Li44LiT4LiR4LilIOC4nuC4uOC4geC4geC4o+C4oeC4suC4meC4meC4l+C5jA0KK+C4geC4uOC4meC4l+C4tSDguYTguJ7guIjguLTguJXguKPguJvguKPguLDguKDguLLguKDguKPguJPguYwNCivguIHguLjguKLguYDguIHguLXguKLguIcg4LmB4LiL4LmI4LmA4Lit4Li14LmJ4LiiDQor4LiB4Li44LmI4Lii4LmA4Liu4Li14Lii4LiHIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4geC4uOC4o+C5jOC4iOC4o+C4seC4meC4iuC4tOC4h+C4q+C5jCDguYLguITguKPguLLguJnguLINCivguIHguLjguKXguIrguKMg4LmB4Lii4LmJ4Lih4Lic4Lit4LiaDQor4LiB4Li44Lil4LiN4LiyIOC4oeC4seC4jeC4iuC4uOC4p+C4suC4l+C4tOC4meC4tQ0KK+C4geC4uOC4peC4mOC4oyDguJnguLLguKPguLnguKXguLINCivguIHguLjguKXguJjguLTguJTguLIg4Lit4Li44LiV4LiV4LmC4LiZDQor4LiB4Li44Lil4Lib4Lij4Liy4LiT4Li1IOC4hOC4h+C4nuC4peC4seC4hw0KK+C4geC4uOC4peC4oeC4tOC4leC4geC4reC4o+C5jCDguIjguLLguKfguLLguKXguLINCivguIHguLjguKXguKPguLHguJXguJnguYwg4Liq4Li04LmI4LiH4Lii4Lix4LiHDQor4LiB4Li44Lil4Lin4LiU4Li1IOC4mOC4teC4o+C4quC4uOC4meC4l+C4o+C4p+C4seC4kuC4meC5jA0KK+C4geC4uOC4peC4p+C4peC4tSDguJXguKPguLDguIHguLnguKXguKrguLHguJnguJXguLTguIrguLHguKINCivguIHguLjguKXguYDguJfguJ4g4LiZ4Liy4LiE4Liw4Lit4Lig4Li0DQor4LiB4Li44Lio4LilIOC4muC4uOC4jeC5gOC4quC4oeC4rQ0KK+C4geC4uOC4qOC4peC4qOC4o+C4tSDguKjguLHguIHguJTguLTguYzguYDguKHguLfguK3guIcNCivguIHguLjguKrguLjguKHguLIg4LmA4LiX4Li14Lii4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiB4Li44Liq4Li44Lih4LiyIOC5gOC4quC4t+C4reC5gOC4meC4teC4ouC4oQ0KK+C4geC4uOC4q+C4peC4suC4miDguITguLjguJPguKrguLLguKHguLLguKPguJYNCivguIHguLjguKvguKXguLLguJog4LiX4Lij4Lix4Lie4Lii4LmM4LmA4LiB4Lip4LiV4LijDQor4LiB4Li44Lir4Lil4Liy4LiaIOC4nuC4uOC4geC4geC4sOC4k+C4sOC4quC4uOC4lQ0KK+C4geC4uOC4q+C4peC4suC4miDguKfguLTguKrguLjguJfguJjguLTguK3guLjguJfguLHguKLguIHguLjguKUNCivguIHguLjguKvguKXguLLguJog4Lit4Liy4Lij4Li14Lij4Lix4LiV4LiZ4LmMDQor4LiB4Li54LmJ4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4iuC4seC4ouC4geC4o+C5guC4geC4qOC4pQ0KK+C5gOC4geC4iuC4siDguYLguJXguYrguLDguKrguKHguLHguJkNCivguYDguIHguJXguLgg4Lik4LiX4LiY4Li04LmM4LiU4Li1DQor4LmA4LiB4LiZ4LiL4Li04LiH4Lir4LmMIOC5gOC4geC4meC4i+C4tOC4h+C4q+C5jA0KK+C5gOC4geC4o+C4tOC4gSDguYDguKHguJnguLHguIoNCivguYDguIHguKPguLTguIHguK3guLTguJfguJjguLTguYwg4LmA4LiB4Lip4Lih4Liq4Lix4LiZ4LiV4LmMDQor4LmA4LiB4Lij4Li14Lii4LiHIOC5gOC4ouC4suC4p+C4meC4p+C4tOC4oeC4pQ0KK+C5gOC4geC4o+C4teC4ouC4h+C4iuC4seC4oiDguKPguLHguJXguJnguYTguJ7guKfguIfguKjguYwNCivguYDguIHguKPguLXguKLguIfguKjguLHguIHguJTguLTguYwg4LiB4LmJ4Lit4LiH4LmE4LiV4Lij4Lig4LieDQor4LmA4LiB4Lij4Li14Lii4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC5guC4huC4qeC4tOC4leC4geC4uOC4peC4nuC4ow0KK+C5gOC4geC4o+C4teC4ouC4h+C4qOC4seC4geC4lOC4tOC5jCDguIrguKfguKXguLTguILguLTguJUNCivguYDguIHguKPguLXguKLguIfguKjguLHguIHguJTguLTguYwg4LiV4Lij4Li14LiX4Li04Lie4Lii4Lij4Lix4LiB4Lip4LmMDQor4LmA4LiB4Lij4Li14Lii4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4meC4o+C4lOC4tQ0KK+C5gOC4geC4o+C4teC4ouC4h+C4qOC4seC4geC4lOC4tOC5jCDguJ7guIfguKjguYzguYDguJ7guYfguIrguKMNCivguYDguIHguKPguLXguKLguIfguKjguLHguIHguJTguLTguYwg4LmA4Lif4Li34LmI4Lit4LiH4Lif4Li54Lie4LiH4Lio4LmMDQor4LmA4LiB4Lij4Li14Lii4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4pOC4geC4qeC5jOC4reC4s+C4meC4p+C4ouC5guC4iuC4hA0KK+C5gOC4geC4o+C4teC4ouC4h+C4qOC4seC4geC4lOC4tOC5jCDguKfguLTguIrguIrguLjguKfguLHguJLguJnguLLguIHguKMNCivguYDguIHguKPguLXguKLguIfguKjguLHguIHguJTguLTguYwg4Liq4Lih4LiB4Li04LiI4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMDQor4LmA4LiB4Lij4Li14Lii4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC5geC4quC4meC5g+C4q+C4oeC5iA0KK+C5gOC4geC4o+C4teC4ouC4h+C4qOC4seC4geC4lOC4tOC5jCDguK3guLjguJTguKHguKHguLTguJXguKPguKPguLHguIENCivguYDguIHguKPguLXguKLguIfguYTguIHguKMg4LiB4Li04LiV4LiV4Li04LiK4Lix4Lii4LmA4LiU4LiKDQor4LmA4LiB4Lij4Li14Lii4LiH4LmE4LiB4LijIOC4iOC4tOC4o+C4quC4tOC4o+C4tOC5guC4o+C4iOC4meC4suC4geC4ow0KK+C5gOC4geC4o+C4teC4ouC4h+C5hOC4geC4oyDguJTguYjguLLguJnguJjguJnguLDguIrguLHguKINCivguYDguIHguKPguLXguKLguIfguYTguIHguKMg4LiZ4Liy4LiE4LiX4Lit4LiHDQor4LmA4LiB4Lij4Li14Lii4LiH4LmE4LiB4LijIOC4nuC4tOC4k+C4l+C4reC4hw0KK+C5gOC4geC4o+C4teC4ouC4h+C5hOC4geC4oyDguKXguLLguKDguKrguLTguKPguLTguKrguKfguLHguKrguJTguLTguYwNCivguYDguIHguKPguLXguKLguIfguYTguIHguKMg4Lio4Li04Lij4Liy4Lih4Lie4Li44LiYDQor4LmA4LiB4Lij4Li14Lii4LiH4LmE4LiB4LijIOC4q+C4h+C4quC5hOC4geC4ow0KK+C5gOC4geC4peC4teC4ouC4p+C4lOC4tSDguJXguLHguJnguKrguLjguKfguKPguKPguJPguJTguLUNCivguYDguIHguKfguKXguLUg4Lie4Lil4LiK4Lix4LiiDQor4LmA4LiB4Lio4LiX4Li04Lie4Lii4LmMIOC4nuC4uOC4l+C4mOC4nuC4h+C4qeC5jA0KK+C5gOC4geC4qOC4o+C4siDguYHguIvguYjguYDguK7guYnguIcNCivguYDguIHguKjguKPguLLguKDguKPguJPguYwg4Lie4Lil4Li14LmA4LiB4LiV4Li4DQor4LmA4LiB4Lio4Lij4Li04LiZ4LiX4Lij4LmMIOC4q+C4peC4teC4l+C4seC4mg0KK+C5gOC4geC4qOC4quC4uOC4meC4teC4ouC5jCDguKfguLTguKfguLHguJLguJnguLLguKDguLTguKPguLHguIHguKnguYwNCivguYDguIHguKjguLTguJnguLUg4LiK4Lin4Lil4Li1DQor4LmA4LiB4Lio4Li04LiZ4Li1IOC4oeC4meC4l+C4tOC4o+C4suC4peC4seC4og0KK+C5gOC4geC4qOC4teC4k+C4tSDguKXguLfguK3guIHguLjguKXguKfguLHguJLguJnguIrguLHguKINCivguYDguIHguKnguJPguLUg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LmA4LiB4Lip4LiV4LijIOC4quC4uOC4p+C4o+C4o+C4k+C4mOC4o+C4o+C4oeC4sg0KK+C5gOC4geC4qeC4oSDguIHguLTguJXguJXguLTguYLguKrguKDguJPguIHguLTguIgNCivguYDguIHguKnguKEg4LiE4Liz4Lie4Lii4Lix4LiE4LiG4LmMDQor4LmA4LiB4Lip4LihIOC4iOC4s+C4meC4h+C4hOC5jOC5hOC4pw0KK+C5gOC4geC4qeC4oSDguIrguYjguKfguIfguYLguIrguJXguLQNCivguYDguIHguKnguKEg4LmB4LiL4LmI4LiL4Li34LmJ4LitDQor4LmA4LiB4Lip4LihIOC4leC4uOC5ieC4oeC4l+C4reC4hw0KK+C5gOC4geC4qeC4oSDguJjguLXguKPguJfguLXguIbguLLguJnguLjguKfguIfguKjguYwNCivguYDguIHguKnguKEg4Lia4Li44LiN4Lih4Liy4Lii4Liw4Lie4Lix4LiZ4LiY4Li44LmMDQor4LmA4LiB4Lip4LihIOC4m+C4tuC4h+C4iuC4p+C4peC4tOC4leC5guC4quC4oOC4tQ0KK+C5gOC4geC4qeC4oSDguJ7guLTguJ7guLHguJLguJnguYzguJvguKPguLDguJfguLLguJnguJ7guKMNCivguYDguIHguKnguKEg4Lih4Lix4LmI4LiZ4LiW4Liy4Lin4LijDQor4LmA4LiB4Lip4LihIOC4o+C4seC4leC4meC4suC4mOC4o+C4o+C4oeC4p+C4seC4kuC4meC5jA0KK+C5gOC4geC4qeC4oSDguYDguKXguLXguYjguKLguIfguKfguLTguIrguIrguLjguJ7guLHguJnguJjguYwNCivguYDguIHguKnguKEg4LmA4Lin4LiK4Lij4Lix4LiV4LiZ4LmM4Lie4Li04Lih4LilDQor4LmA4LiB4Lip4LihIOC4quC4oeC4tOC4l+C4mOC4tOC5gOC4meC4leC4ouC5jA0KK+C5gOC4geC4qeC4oSDguKrguLjguJTguKfguLTguKrguLHguKINCivguYDguIHguKnguKEg4Lir4Lin4Lix4LiH4LiI4Li04LiV4LiV4LmM4LmA4LiK4Li14Lii4LijDQor4LmA4LiB4Lip4LihIOC4reC4tOC4meC4l+C4o+C4quC4geC4uOC4pQ0KK+C5gOC4geC4qeC4oeC4qOC4o+C4tSDguIrguLXguKfguLDguYDguIHguJXguLgNCivguYDguIHguKnguKHguKjguLHguIHguJTguLTguYwg4Lib4Lix4LiN4LiN4Liy4Lik4LiX4LiY4Li04LmMDQor4LmA4LiB4Lip4Lih4Liq4Lix4LiZ4LiV4LmMIOC4quC4meC4mOC4tOC4quC4luC4suC4nuC4ow0KK+C5gOC4geC4qeC4oyDguIHguLjguKXguYDguKXguLTguKjguJvguKPguLDguYDguKrguKPguLTguJANCivguYDguIHguKnguKMg4LiK4Li14Lin4Lib4Lij4Li14LiK4LiyDQor4LmA4LiB4Lip4LijIOC4meC4s+C4nuC4seC4gQ0KK+C5gOC4geC4qeC4oyDguYDguJ7guLTguYjguKHguJfguKPguLHguJ7guKLguYwNCivguYDguIHguKnguKMg4Lin4Lix4LiS4LiZ4Liy4Lil4Lix4LiiDQor4LmA4LiB4Lip4LijIOC5guC4quC4o+C4seC4leC4meC5jA0KK+C5gOC4geC4qeC4o+C4siDguJ7guKfguIfguKrguKfguLHguKrguJTguLTguYwNCivguYDguIHguKnguKPguLTguJnguJfguKPguYwg4Liq4Lih4Lin4LiH4Lio4LmMDQor4LmA4LiB4Lip4Liq4Li44LiZ4Li14Lii4LmMIOC4oeC4suC4oeC4teC4iuC4seC4og0KK+C5gOC4geC4qeC5geC4geC5ieC4pyDguYDguIjguKPguLTguI3guKrguLjguIINCivguYDguIHguKrguKPguLUg4LmA4LiB4Li14Lii4Lij4LiV4Li04LiB4Liz4LiI4LijDQor4LmA4LiB4Liy4Lij4Lix4LiB4Lip4LmMIOC4quC4uOC4hOC4meC4mOC5jOC5gOC4peC4tOC4qOC4quC4oeC4ow0KK+C5gOC4geC4teC4ouC4hyDguYDguKXguLTguKjguJ7guKXguLLguIrguLHguKINCivguYDguIHguLXguKLguKPguJXguLQg4LiB4Lix4LiH4Lin4Liy4LiZ4LmA4Lin4LiK4LiB4Li44LilDQor4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4lOC4teC4guC4iOC4ow0KK+C5gOC4geC4teC4ouC4o+C4leC4tCDguKHguKvguYDguIHguLXguKLguKPguJXguLTguYTguJ7guKjguLLguKUNCivguYDguIHguLXguKLguKPguJXguLQg4Lir4LiH4Lip4LmM4Lin4Li04Lio4Li04Lip4LiQ4LiB4Li44LilDQor4LmA4LiB4Li14Lii4Lij4LiV4Li04LiE4Li44LiTIOC4l+C4seC4geC4qeC4tOC4k+C4meC4uOC4geC4uOC4peC4p+C4h+C4qOC5jA0KK+C5gOC4geC4teC4ouC4o+C4leC4tOC4iuC4seC4oiDguYLguJXguK3guKPguLjguKfguIfguKjguYwNCivguYDguIHguLXguKLguKPguJXguLTguIrguLHguKIg4LmA4Lin4Lio4LiZ4LmM4Lih4Lix4LiG4Lin4Liy4LiZDQor4LmA4LiB4Li14Lii4Lij4LiV4Li04LiT4Lij4LiH4LiE4LmMIOC4o+C4seC4leC4meC4m+C4o+C4teC4iuC4suC5gOC4p+C4ig0KK+C5gOC4geC4teC4ouC4o+C4leC4tOC4nuC4oyDguIjguLLguKPguLjguJjguKPguKPguKENCivguYDguIHguLXguKLguKPguJXguLTguKjguLHguIHguJTguLTguYwg4LiB4Li04LiI4LiB4LmJ4Lit4LiH4LiC4LiI4Lij4LiK4Lix4LiiDQor4LmA4LiB4Li14Lii4Lij4LiV4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4ieC4seC4leC4o+C4p+C4tOC4l+C4ouC4suC4l+C4o+C4seC4nuC4ouC5jA0KK+C5gOC4geC4teC4ouC4o+C4leC4tOC4qOC4seC4geC4lOC4tOC5jCDguJrguLjguI3guYDguKPguLfguK3guIcNCivguYDguIHguLXguKLguKPguJXguLTguKjguLHguIHguJTguLTguYwg4LmA4Lij4Li34Lit4LiZ4LiZ4Liy4LiEDQor4LmA4LiB4Li14Lii4Lij4LiV4Li04Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4quC4suC4quC4suC4og0KK+C5gOC4geC4teC4ouC4o+C4leC4tOC5jCDguIHguLHguJPguKfguYDguKjguKPguKnguJANCivguYDguIHguLXguKLguKcg4Lie4Lix4Lin4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LmA4LiB4Li14LmJ4Lii4LiH4LiL4Lin4LiHIOC5geC4i+C5iOC4h+C4uOC5iOC4og0KK+C5gOC4geC4t+C5ieC4reC4geC4ueC4pSDguIHguK3guIfguKfguLTguYDguKjguKkNCivguYDguIHguLfguYnguK3guIHguLnguKUg4Lin4LiH4Lio4LmM4LiX4Lio4Lie4LijDQor4LmA4LiB4LmH4LiBIOC5geC4i+C5iOC4reC4tOC4oQ0KK+C5gOC4geC5iOC4h+C4geC4suC4iCDguJvguLHguIHguIHguLLguYDguJUNCivguYDguIHguYsg4Liq4Li44Lin4Lij4Lij4LiT4Lin4Lix4LiS4LiZ4LmMDQor4LmB4LiB4LmI4LiZIOC4l+C4seC5iOC4h+C4quC4luC4tOC4leC4ouC5jA0KK+C5geC4geC5ieC4pyDguIjguLTguKPguJrguKfguKPguKfguLTguKrguLjguJfguJjguLTguYwNCivguYHguIHguYnguKcg4LiW4Liy4Lin4Lij4LiZ4Lix4LiZ4LiX4LmMDQor4LmB4LiB4LmJ4LinIOC4ouC4suC4meC5ieC4reC4og0KK+C5geC4geC5ieC4pyDguYTguKrguKLguIjguLTguJXguKPguYwNCivguYHguIHguYnguKfguIjguLTguJnguJTguLIg4LiX4Lit4LiH4LmB4LiB4LmJ4LinDQor4LmB4LiB4LmJ4Lin4LiV4LiyIOC4qOC4pOC4h+C4hOC4suC4o+C5gOC4iOC4qeC4juC4sg0KK+C5geC4geC5ieC4p+C4oeC4k+C4tSDguKjguKPguLXguKfguLDguKPguKHguKLguYwNCivguYHguIHguYnguKfguYPguIgg4LmE4Lin4Lio4Lii4Liy4LiH4LiB4Li54LijDQor4LmC4LiB4Lih4LilIOC5guC4geC4oeC4uOC4l+C4mOC4meC4iuC4suC4leC4tA0KK+C5guC4geC4oeC4pSDguJvguLHguJXguJXguLLguJnguLjguKrguKPguJPguYwNCivguYLguIHguKHguKUg4Lio4Li04Lij4Li04Lie4LijDQor4LmC4LiB4Lih4Li04LiZ4LiX4Lij4LmMIOC4keC4teC4huC4mOC4meC4suC4meC4meC4l+C5jA0KK+C5guC4geC4peC4tOC4leC4siDguKHguLXguKXguLLguKANCivguYLguIHguKfguLTguJcg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4LmC4LiB4Lin4Li04LiXIOC4nuC4seC4meC4mOC4uOC5jOC5geC4ouC5ieC4oeC4oeC4suC4peC4tQ0KK+C5guC4geC4p+C4tOC4lyDguKfguLLguJXguLANCivguYLguIHguKfguLTguJcg4Lit4Li44LiX4Lix4Lii4LiJ4Liy4LiiDQor4LmC4LiB4Lin4Li04LiX4Lii4LmMIOC4l+C4o+C4seC4nuC4ouC5jOC5gOC4iOC4o+C4tOC4jeC4qOC4o+C4tQ0KK+C5guC4geC4p+C4tOC4l+C4ouC5jCDguKfguIfguKjguYzguKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguYLguIHguKjguKUg4LiB4Lik4Lip4LiT4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMDQor4LmC4LiB4Lio4LilIOC5g+C4iOC4p+C4tOC4iOC4tOC4leC4ow0KK+C5guC4geC4qOC4pSDguJjguLXguKPguJ7guLTguJfguKLguLLguJjguKMNCivguYLguIHguKjguKUg4LmA4Lie4LmH4LiK4Lij4Liq4Li44Lin4Lij4Lij4LiT4LmMDQor4LmC4LiB4Lio4LilIOC4p+C4seC4kuC4meC4suC4oeC4suC4meC4meC4l+C5jA0KK+C5guC4geC4qOC4pSDguYDguKvguKXguYjguLLguKjguLTguKPguLTguKPguLHguJXguJnguYwNCivguYLguIHguKrguLTguJfguJjguLTguYwg4LiJ4Lix4LiZ4LiX4Liy4LiI4Liy4Lij4Li44Lin4LiH4Lio4LmMDQor4LmC4LiB4Liq4Li04LiZ4LiX4Lij4LmMIOC4p+C4seC4peC4peC4tOC5guC4oOC4lOC4oQ0KK+C5guC4geC4quC4uOC4oSDguYHguKHguJnguJzguJTguLjguIcNCivguYLguIHguKrguLjguKHguKDguYwg4Lit4Lig4Li04Lin4Lix4LiZ4LiX4LiZ4Lix4LiZ4LiX4LmMDQor4LmC4LiB4LmA4Lih4LioIOC5guC4geC4oeC4uOC4l+C5gOC4geC4t+C5ieC4reC4geC4ueC4pQ0KK+C5g+C4geC4peC5ieC4o+C4uOC5iOC4hyDguYHguJ7guJfguKLguYzguJvguKPguLDguYDguKrguKPguLTguJANCivguYTguIHguKPguJTguLIg4LiU4Lin4LiH4Lib4Lij4Liw4LiK4LiyDQor4LmE4LiB4Lij4Lik4LiB4Lip4LmMIOC4kyDguKXguLPguJvguLLguIcNCivguYTguIHguKPguKfguLHguKXguKLguYwg4Lin4Li04Lij4Li04Lii4Liw4Lin4Li04LiX4Lii4LmMDQor4LmE4LiB4Lij4Lio4LijIOC4m+C4o+C4suC4o+C4luC4meC4suC4lOC4tQ0KK+C5hOC4geC4o+C4qOC4seC4geC4lOC4tOC5jCDguKvguLjguYjguJnguKfguLTguIjguLTguJXguKMNCivguYTguIHguKPguKrguKMg4Lin4LiH4Lio4LmM4LiZ4Lig4Liy4LiB4Liy4LiN4LiI4LiZ4LmMDQor4LmE4LiB4Lij4Liq4Li14Lir4LmMIOC4hOC4peC5ieC4suC4ouC4oeC4k+C4tQ0KK+C5hOC4geC4p+C4seC4pSDguIjguLLguJXguJnguLTguKXguJ7guLHguJnguJjguLjguYwNCivguILguIjguKMg4LiK4LmJ4Lit4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiC4LiI4LijIOC4nuC4tOC4oeC4nuC4tOC4iuC4seC4og0KK+C4guC4iOC4oyDguKrguLjguJnguJfguYLguKPguJTguKENCivguILguIjguKPguJ7guKUg4LmB4Liq4LiZ4Liq4Li44LiU4Liq4Lin4Liy4LiXDQor4LiC4LiI4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4iOC5ieC4suC4geC4o+C4oeC4l+C4reC4hw0KK+C4guC4iOC4o+C4qOC4seC4geC4lOC4tOC5jCDguYLguJ7guJjguLTguJnguLLguKHguJfguK3guIcNCivguILguIjguKPguKjguLHguIHguJTguLTguYwg4LmA4Lir4Lil4LmI4Liy4Lie4LiH4Lip4LmM4Lio4LijDQor4LiC4LiI4Lij4LmA4LiU4LiKIOC4nuC4h+C4qeC5jOC4quC4meC4suC4oQ0KK+C4guC4iOC4tOC4leC4nuC4o+C4o+C4kyDguITguIrguJ7guLHguJnguJjguLjguYwNCivguILguIrguKUg4Lin4Lij4LiX4Li14Lib4Liy4LiZ4LiZ4LiX4LmMDQor4LiC4LiZ4Li04Lip4LiQ4LiyIOC4geC4suC4o+C4quC4oeC4nuC4tOC4qQ0KK+C4guC4meC4tOC4qeC4kOC4siDguIjguLPguYDguJnguLXguKLguKPguIHguLLguKUNCivguILguJnguLTguKnguJDguLIg4LiU4Lin4LiH4LmB4LiB4LmJ4LinDQor4LiC4LiZ4Li04Lip4LiQ4LiyIOC4meC4suC4geC4suC4reC4tA0KK+C4guC4meC4tOC4qeC4kOC4siDguJzguKXguIfguLLguKENCivguILguJnguLTguKnguJDguLIg4Lii4LiH4Lin4Liy4LiZ4Li04LiK4LiI4Li04LiVDQor4LiC4LiZ4Li04Lip4LiQ4LiyIOC4p+C4h+C4qOC5jOC5gOC4q+C4peC4t+C4reC4hw0KK+C4guC4meC4tOC4qeC4kOC4siDguKrguLHguIfguILguYzguKjguLTguKPguLQNCivguILguJnguLTguKnguJDguLIg4Lit4LiZ4Li44Liq4LiW4Li04LiV4Lii4LmMDQor4LiC4Lii4Lix4LiZIOC4qOC4suC4quC4leC4o+C4sOC4o+C4uOC4iOC4tA0KK+C4guC4p+C4seC4jSDguILguKfguLHguI3guYDguJfguLXguKLguJnguJfguK3guIcNCivguILguKfguLHguI3guIjguLTguJUg4Lii4Lit4LiU4Liq4Lit4LiZDQor4LiC4Lin4Lix4LiN4LiK4Lix4LiiIOC4geC4h+C4muC4uOC4o+C4suC4kw0KK+C4guC4p+C4seC4jeC4iuC4seC4oiDguYDguIrguLfguYnguK3guKrguLjguKfguKPguKPguJMNCivguILguKfguLHguI3guIrguLHguKIg4Lie4LiH4Lip4LmM4LmA4Lil4Liy4Lir4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiC4Lin4Lix4LiN4LiK4Lix4LiiIOC4p+C4h+C4qeC5jOC4k+C4o+C4seC4leC4meC5jA0KK+C4guC4p+C4seC4jeC4iuC4seC4oiDguK3guKHguKPguYDguKHguJgNCivguILguKfguLHguI3guJXguLIg4LiI4Lix4LiZ4LiX4Lij4LmM4LiJ4Liy4LiiDQor4LiC4Lin4Lix4LiN4LiV4LiyIOC4qOC4uOC4oOC5gOC4quC4suC4p+C4oOC4suC4hOC4ouC5jA0KK+C4guC4p+C4seC4jeC4ouC4t+C4mSDguJrguLjguI3guJ7guKPguKENCivguILguKfguLHguI3guKjguLTguKPguLQg4Lin4LiT4Li04LiK4LiB4Li44Lil4Lia4LiU4Li1DQor4LiC4Lin4Lix4LiN4LmA4Lih4Li34Lit4LiHIOC4hOC4h+C4luC4suC4p+C4ow0KK+C4guC4p+C4seC4jeC5gOC4o+C4t+C4reC4mSDguIfguLLguKHguYDguJzguLfguK3guIENCivguILguKfguLHguI3guYDguKPguLfguK3guJkg4Liq4Li14Lii4Lin4LiZDQor4LiC4Lin4Lix4LiN4LmD4LiIIOC5gOC4iOC4leC4meC5jOC4iOC4s+C4meC4h+C4hOC5jOC4quC4geC4uOC4pQ0KK+C4guC4p+C4seC4jeC5g+C4iCDguJnguKPguKHguLHguJXguJbguYwNCivguILguKfguLHguI3guYPguIgg4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4LiC4Lin4Lix4LiN4LmD4LiIIOC4quC4uOC4guC4reC4suC4muC5g+C4iA0KK+C4guC4seC4k+C4keC5jOC5hOC4iuC4oiDguKfguIfguKjguYzguIfguLLguKENCivguILguLHguJnguJXguLQg4LmA4LiU4LiK4Liw4LiE4Li44Lib4LiV4LmMDQor4LiC4Lix4LiZ4LiX4Lit4LiHIOC4qOC4o+C4teC4hOC4sw0KK+C4guC4suC4h+C4tOC5ieC4oSDguYHguIvguYjguKXguLTguYnguKENCivguILguLLguKcg4Liq4Li44Lia4Lij4Lij4LiT4Lij4Lix4LiV4LiZ4LmMDQor4LiC4Liz4LmA4Liq4Lih4LitIOC4hOC4h+C4qOC4tOC4o+C4tA0KK+C4guC4uOC4meC5geC4nOC4mSDguYHguIHguYnguKfguJnguYnguK3guKINCivguYDguILguKHguIrguLLguJXguLQg4Lit4Li04Lij4Lix4LiK4LiV4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4LiC4Lih4LiyIOC4p+C4tOC4quC4uOC4l+C4mOC4tOC4p+C4seC4kuC4meC4suC4geC4ow0KK+C5gOC4guC4teC4ouC4mSDguKDguLHguJfguKPguLUNCivguYDguILguYfguKEg4LiE4Lil4LmJ4Lit4Lii4LmB4Liq4LiHDQor4LmA4LiC4LmH4Lih4LiX4Lit4LiHIOC4qOC4tOC4o+C4tOC5geC4quC4h+C5gOC4peC4tOC4qA0KK+C5geC4guC4meC4oOC4siDguJTguLjguKnguI7guLXguJTguLPguYDguIHguLTguIcNCivguYTguILguKjguKPguLUg4Lij4Lix4LiH4Liq4Li04Lii4Liy4LiZ4LiZ4LiX4LmMDQor4LmE4LiC4LmI4Lih4Li44LiB4LiC4LmMIOC4hOC4h+C4hOC4sg0KK+C4hOC4h+C4geC4pOC4leC4ouC5jCDguJvguLLguJnguIjguLHguJnguJfguKPguYwNCivguITguIfguKTguJfguJjguLTguYwg4LmA4Lib4Li14LmI4Lii4Lih4LmA4LiI4Lij4Li04LiN4LiK4Lix4LiiDQor4LiE4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4leC4tOC4oeC4nuC4tOC4l+C4ouC4suC5gOC4p+C4ig0KK+C4hOC4h+C4qOC4seC4geC4lOC4tOC5jCDguKfguLLguJPguLTguIrguIHguKPguJ7guLTguJ7guLHguJLguJnguYwNCivguITguIfguYDguJTguIog4LmB4LiL4LmI4LmC4Lir4LiH4LmJ4LinDQor4LiE4LiR4Liy4LiX4Lit4LiHIOC4l+C4reC4h+C5g+C4q+C4jeC5iA0KK+C4hOC4k+C4suC4o+C4seC4iuC4leC5jCDguJfguLXguYDguKvguKXguYfguIENCivguITguJPguLTguJUg4LiL4Li04LmJ4Lih4LmA4LiI4Lij4Li04LiNDQor4LiE4LiT4Li04LiVIOC4qOC4suC4qOC4p+C4seC4leC4qOC4suC4meC4leC4tA0KK+C4hOC4k+C4tOC4mSDguIjguLjguJHguLLguKHguLLguKgNCivguITguJXguLQg4Lie4Lix4LiZ4LiY4Li44LmM4Liq4Lin4LmI4Liy4LiHDQor4LiE4LiZ4Lit4LiHIOC4meC4tOC4peC4nuC4seC4meC4mOC5jA0KK+C4hOC4meC4tuC4hyDguIrguLnguJvguKPguLDguIjguIcNCivguITguJnguLbguIcg4LmC4Liq4Lih4Liw4LmA4LiB4Lip4LiV4Lij4Li04LiZDQor4LiE4LiZ4Li24LiH4LiZ4Li04LiIIOC4l+C4p+C4teC5geC4geC5ieC4pw0KK+C4hOC4meC4tuC4h+C4meC4tOC4iCDguKrguLHguIfguILguYzguYDguIjguKPguLTguI0NCivguITguJnguLbguIfguJnguLTguJXguKLguYwg4Liq4Li44LiC4Liq4LiB4Li44LilDQor4LiE4Lih4LiB4Lij4Li04LiKIOC5gOC4ieC4peC4tOC4oeC4p+C4seC4kuC4meC5jA0KK+C4hOC4oeC4geC4pOC4iiDguJvguKPguLDguITguLjguJPguITguJTguLUNCivguITguKHguILguLMg4LiK4Lin4Lil4Li04LiVDQor4LiE4Lih4LiE4Liy4LiiIOC4leC4seC5ieC4h+C4leC4o+C4h+C4hOC4tOC4lA0KK+C4hOC4oeC4iOC4seC4geC4oyDguYDguIjguJnguIjguJoNCivguITguKHguKjguLHguIHguJTguLTguYwg4LiB4Lit4Liq4Li04LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiE4Lih4Liq4Lix4LiZIOC4hOC4uOC4k+C5gOC4iOC4o+C4tOC4jQ0KK+C4hOC4oeC4quC4seC4mSDguJrguLHguJPguJHguLTguJXguKfguIfguKnguYwNCivguITguKHguKrguLHguJkg4Lio4Lij4Li14LiX4Lit4LiH4Liq4Li44LiCDQor4LiE4Lih4Liq4Lix4LiZ4LiV4LmMIOC4geC4peC4tOC5iOC4meC4lOC4tQ0KK+C4hOC4oeC4quC4seC4meC4leC5jCDguKrguLjguJ7guKPguKPguJPguYLguKPguIjguJnguYwNCivguITguKPguKPguIrguLTguJUg4LiE4Lil4LmI4Lit4LiH4Lia4Li44LiN4LiI4Li04LiVDQor4LiE4Lij4Lij4LiK4Li04LiVIOC4nOC4peC4suC4muC4ueC4o+C4k+C4sA0KK+C4hOC4o+C4o+C4iuC4tOC4lSDguKrguLjguKfguKPguKPguJPguIrguLfguYjguJkNCivguITguKPguK3guIfguYDguIHguLXguKLguKPguJXguLQg4LmA4LiX4Lio4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4LiE4Lil4Lit4LmD4LiIIOC4m+C4seC4jeC4jeC4suC4qOC4ow0KK+C4hOC4peC4tuC4hyDguJfguKfguLXguKfguKPguKPguJPguYwNCivguITguK3guJXguLXguYDguKLguLLguLAg4Liq4Liy4Lih4Lix4LiNDQor4LiE4Liw4LmA4LiZ4LmH4LiVIOC4nOC4lOC4uOC4h+C4iuC4teC4p+C4tOC4lQ0KK+C4hOC4seC4l+C4o+C4teC4ouC4siDguKLguJnguJXguKPguYzguYDguJvguLXguYjguKLguKENCivguITguLHguKHguKDguLXguKPguJvguLHguI3guI3guLLguIHguKMg4Lie4Lij4Liw4LiE4Lij4Li5DQor4LiE4Liy4LiV4Li14LmLIOC5geC4i+C5iOC4hOC4hw0KK+C4hOC4suC5gOC4geC4teC4ouC4pyDguYHguIvguYjguYLguK3guYnguKcNCivguITguLMg4Lin4Lij4Lij4LiT4Liq4Li04LiX4LiY4Li0DQor4LiE4Liz4LiV4LiyIOC4muC4uOC4jeC4iuC4uQ0KK+C4hOC4s+C4meC4p+C4mSDguJrguLjguJPguKLguJzguKUNCivguITguLPguJnguLbguIcg4LmE4LiK4Lii4Lii4LiZ4LiV4LmMDQor4LiE4Liz4LiZ4Li24LiHIOC4qOC4tOC4o+C4tOC4iOC4seC4meC4l+C4o+C5jA0KK+C4hOC4s+C4m+C4seC4mSDguYHguKrguJnguKrguLjguIINCivguITguLPguJ7guKUg4LiE4LiH4LiC4Lin4Lix4LiN4LmA4Lih4Li34Lit4LiHDQor4LiE4Liz4Lie4Lix4LiZ4LiY4LmMIOC4qOC4uOC4oOC4quC4ow0KK+C4hOC4s+C4oeC4siDguKjguLTguKPguLTguK3guLLguIgNCivguITguLPguKPguJMg4LmB4LiL4LmI4LiB4Lix4LiHDQor4LiE4Liz4Lij4LiTIOC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jOC4nuC4suC4meC4tOC4iuC4ouC5jA0KK+C4hOC4s+C4o+C4mSDguIjguJXguLjguJfguK3guIcNCivguITguLPguKvguKHguYjguK3guJkg4Lib4Lij4Liw4Liq4Lih4Lic4LilDQor4LiE4Liz4LmB4Lic4LiZIOC4qOC4o+C4teC4guC4suC4pw0KK+C4hOC4tOC4k+C4q+C5jCDguKfguLHguJLguJnguJ7guLTguJfguLHguIHguKnguYzguIHguLjguKUNCivguITguLTguKHguYLguK3guYnguKcg4Lir4Lin4Lix4LiH4Liq4Li44LiC4LiZ4Li04Lij4Lix4LiZ4LiU4Lij4LmMDQor4LiE4Li14LihIOC5gOC4peC5iOC4suC4p+C4iOC4teC4qOC4suC4quC4leC4o+C5jA0KK+C4hOC4tuC4geC4pOC4l+C4mOC4tOC5jCDguK3guLLguKPguLXguJvguIHguKPguJPguYwNCivguITguLjguJPguJnguYnguK3guIcg4Lie4Lix4LiS4LiZ4Liy4LiZ4Liy4Lij4Lix4LiB4Lip4LmMDQor4LiE4Li44LiT4Liy4LiB4Lij4LiT4LmMIOC4p+C4tOC5gOC4qOC4qeC4qOC4tOC4o+C4tOC4peC4seC4geC4qeC4k+C5jA0KK+C4hOC4uOC4oSDguJrguLjguI3guYHguIjguIENCivguITguLnguJMg4LmC4Liq4Lig4LiT4Liy4LiZ4Li44LiB4Li54LilDQor4LiE4LmA4LiT4LioIOC4guC4suC4p+C4iOC4seC4meC4l+C4o+C5jA0KK+C5gOC4hOC4mSDguKrguLjguKfguKPguKPguJPguKjguKPguLUNCivguYDguITguKPguLfguK3guJrguLjguI0g4LmC4Lir4LiV4Li04LiY4Liw4LiZ4Lix4LiHDQor4LmA4LiE4Lij4Li34Lit4Lin4Lij4Lij4LiTIOC4qOC4tOC4o+C4ouC4suC4meC4meC4l+C5jOC4nuC4tOC4meC4tOC4iA0KK+C5gOC4hOC4o+C4t+C4reC4p+C4seC4peC4ouC5jCDguJTguLPguKPguIfguITguYzguKPguLHguIHguKnguYwNCivguYDguITguKPguLfguK3guKfguLHguKXguKLguYwg4Lie4Li44LmI4Lih4LiK4LiyDQor4LmA4LiE4Lij4Li34Lit4Lin4Lix4Lil4Lii4LmMIOC4quC4teC5gOC4peC4tOC4qA0KK+C5gOC4hOC4peC4tOC5ieC4oSDguKDguLnguYjguJfguK3guIcNCivguYDguITguLXguKLguIfguILguKfguLHguI0g4LiI4Lix4LmI4LiZ4LmA4Lit4Li14LmI4Lii4LihDQor4LmA4LiE4LmH4LiBIOC5geC4i+C5iOC5gOC4leC4teC4og0KK+C5geC4hOC4peC5ieC4pyDguYHguJTguIfguJTguLUNCivguYTguITguK3guLnguYsg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4LmC4LiG4Lip4Li04LiVIOC4nuC4seC4kuC4meC4nuC4h+C4qOC5jA0KK+C4h+C5iOC4p+C4h+C5gOC4i+C4teC5ieC4ouC4oSDguYHguIvguYjguYHguKsNCivguIfguYnguKfguJkg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4LiH4LmJ4LitIOC4quC4tOC4meC4mOC4teC4o+C4oOC4suC4ng0KK+C4h+C4suC4oeC4guC4syDguK7guLjguYjguJnguJXguKPguLDguIHguLnguKUNCivguIfguLLguKHguInguLTguJnguJnguYwg4Lii4Li04LmJ4Lih4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiH4Liy4Lih4LiV4LiyIOC4quC4suC4o+C4sOC5gOC4l+C4teC4ouC4mQ0KK+C4h+C4suC4oeC4nuC4o+C4o+C4kyDguYHguKLguYnguKHguKrguIHguLjguKUNCivguIfguLLguKHguKjguLHguIHguJTguLTguYwg4LmB4Lii4LmJ4Lih4LiK4Li34LmI4LiZDQor4LiH4Li04LmK4LihIOC5geC4i+C5iOC5gOC4ruC4hw0KK+C5gOC4h+C4tOC4mSDguYHguIHguYnguKfguIrguJnguLDguIrguLHguKINCivguYDguIfguLTguJnguKLguKfguIcg4LiZ4Li44LiZ4Lie4LiZ4Lix4Liq4Lio4Lix4LiB4LiU4Li04LmMDQor4LmA4LiH4LmH4LiBIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C5gOC4h+C5h+C4geC4i+C4tOC4oSDguJXguJnguLHguJnguJfguYzguKLguLjguJfguJjguKfguIfguKjguYwNCivguYDguIfguYfguIHguK7guKfguKIg4LmB4LiL4LmI4LiI4Li24LiHDQor4LmA4LiH4LmH4LiB4LmA4Lil4LmJ4LiHIOC5geC4i+C5iOC5gOC4iOC4teC4ouC4oQ0KK+C5guC4h+C5ieC4p+C5gOC4hOC4teC5ieC4ouC4hyDguYHguIvguYjguKvguKXguK0NCivguIjguIfguIHguKPguJPguYwg4Lit4Li04LmI4Lih4Liq4LiB4Li44LilDQor4LiI4LiH4LiB4LilIOC4l+C4reC4h+C5guC4reC4rOC4suC4ow0KK+C4iOC4h+C4geC4pSDguKXguLLguJnguYDguIjguKPguLTguI0NCivguIjguIfguIHguKUg4LmB4Lir4Lib4Lij4Liw4Liq4Lie4LmC4LiK4LiEDQor4LiI4LiH4LiB4Lil4LiT4Li1IOC5geC4oeC5ieC4meC4q+C4oeC4suC4og0KK+C4iOC4h+C4geC4peC4meC4tSDguJvguLTguYjguJnguYDguIjguKPguLTguI0NCivguIjguIfguIjguLTguJUg4LmB4LiL4LmI4Lit4Li24LmL4LiHDQor4LiI4LiH4LiI4Li04LiV4LiV4LmMIOC4muC4uOC4jeC4iuC4meC4suC4meC4meC4l+C5jA0KK+C4iOC4h+C4iOC4tOC4leC4oyDguIjguLHguJnguJfguKfguLUNCivguIjguIfguIjguLTguJnguJXguYwg4LmA4Liq4Lij4Li14Lij4Lix4LiB4Lip4LmMDQor4LiI4LiH4LiU4Li1IOC4muC4seC4p+C4muC4ueC4iuC4sg0KK+C4iOC4h+C4lOC4tSDguYHguKrguIfguYDguJ7guIrguKMNCivguIjguIfguKPguLHguIEg4LmA4LiV4LmH4LiH4Lit4Liz4LiZ4Lin4LiiDQor4LiI4LiH4Lij4Lix4LiB4Lip4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4hOC4h+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4iOC4h+C4o+C4seC4geC4qeC5jCDguJ7guLHguJnguJjguKHguLTguJXguKMNCivguIjguIfguKPguLHguIHguKnguYwg4Lir4Liy4LiN4Lin4Li44LiK4Liy4LiZ4Li44Lij4Lix4LiB4Lip4LmMDQor4LiI4LiH4Lio4Li04Lij4Li0IOC4peC5ieC4reC4geC4suC4jeC4iOC4meC4o+C4seC4leC4meC5jA0KK+C4iOC4h+C5gOC4ruC4hyDguYHguIvguYjguJnguLTguYnguKENCivguIjguJXguLjguJ7guKMg4LiB4Liy4LiN4LiI4LiZ4LiE4Lil4Lit4LiUDQor4LiI4LiV4Li44Lie4LijIOC4mOC4oeC4o+C4seC4leC4meC5jA0KK+C4iOC4leC4uOC4nuC4oyDguKfguLHguIrguKPguLLguJnguLLguIQNCivguIjguJXguLjguJ7guKUg4Lit4Li04LmI4Lih4LmA4LiH4Li04LiZDQor4LiI4LiV4Li44Lij4LiH4LiE4LmMIOC4nuC4peC4meC4tOC4pQ0KK+C4iOC4leC4uOC4o+C4nuC4oyDguKrguLjguKPguLTguKLguLLguKHguLLguKgNCivguIjguKPguIfguITguYwg4LiB4Lil4Li04LmI4LiZ4Lij4Li34LmI4LiZDQor4LiI4Lij4Lij4Lii4Lij4Lix4LiB4Lip4LmMIOC4hOC4uOC4k+C4uOC4m+C4geC4suC4ow0KK+C4iOC4o+C4o+C4ouC4siDguYDguIfguLTguJnguJTguLUNCivguIjguKPguKPguKLguLIg4LiK4Li54LiC4Lin4Lix4LiNDQor4LiI4Lij4Lij4Lii4LiyIOC4l+C4teC4m+C4suC4meC4meC4l+C5jA0KK+C4iOC4o+C4o+C4ouC4siDguJvguLHguYnguJnguYDguKvguJnguYjguIfguYDguJ7guIrguKMNCivguIjguKPguKPguKLguLIg4Lih4LiT4Li14LmC4LiK4LiV4Li0DQor4LiI4Lij4Lij4Lii4LiyIOC5gOC4peC4suC4q+C5gOC4peC4tOC4qOC4iuC4seC4og0KK+C4iOC4o+C4o+C4ouC4siDguYDguKjguKPguKnguJDguJrguLjguJXguKMNCivguIjguKPguKPguKLguLIg4Lir4LmI4Lin4LiH4Lio4Lij4Li1DQor4LiI4Lij4Lij4Lii4Liy4Lij4Lix4LiB4Lip4LmMIOC4l+C4o+C4seC4nuC4ouC5jOC5gOC4geC4o+C4teC4ouC4h+C5hOC4geC4ow0KK+C4iOC4o+C4p+C4oiDguJfguK3guIfguKHguLXguJvguLHguYjguJkNCivguIjguKPguKfguKLguJ7guKMg4LiB4Lit4LiH4LmA4Lie4LmH4LiHDQor4LiI4Lij4Lit4LiZIOC5guC4m+C4o+C4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4iOC4o+C4seC4jSDguIjguLHguJnguJfguKPguYzguJfguLTguKENCivguIjguKPguLHguI0g4LiU4Li44Lil4Lii4Liy4Lig4Li04LiZ4Lix4LiZ4LiX4LmMDQor4LiI4Lij4Lix4LiNIOC5gOC4meC4teC4ouC4oeC4q+C4reC4oQ0KK+C4iOC4o+C4seC4jSDguJ7guLTguKPguLTguKLguLDguJvguLHguI3guI3guLINCivguIjguKPguLHguI0g4Lij4LmJ4Lit4LiH4LiC4Lix4LiZ4LmB4LiB4LmJ4LinDQor4LiI4Lij4Lix4LiNIOC4qOC4seC4geC4lOC4tOC5jOC4quC4ouC4suC4oeC4geC4uOC4pQ0KK+C4iOC4o+C4seC4jSDguKvguIfguKfguJnguYDguKrguIfguLXguYjguKLguKENCivguIjguKPguLHguI3guI3guLIg4LiI4Lix4LiZ4LiX4Lij4Liy4Liq4Li44Lin4Lij4Lij4LiTDQor4LiI4Lij4Lix4LiN4LmA4LiU4LiKIOC4iOC4s+C4m+C4suC4p+C4seC4peC4ouC5jA0KK+C4iOC4o+C4seC4pSDguIjguLTguKPguKjguLLguJnguJXguYzguIrguLHguKINCivguIjguKPguLHguKUg4Lia4Li44LiZ4LiZ4Liy4LiEDQor4LiI4Lij4Lix4LilIOC4p+C4tOC5guC4o+C4iOC4meC5jOC4ouC4tOC5iOC4h+C4ouC4hw0KK+C4iOC4o+C4seC4peC4o+C4seC4leC4meC5jCDguYDguKPguLfguK3guIfguIrguLLguJXguLQNCivguIjguKPguLHguKog4LiK4Lix4Lii4Lih4Lir4Liy4Lin4Lix4LiZDQor4LiI4Lij4Lix4LiqIOC4m+C4tOC5iOC4meC5guC4quC4oOC4sg0KK+C4iOC4o+C4seC4qiDguKfguKPguIHguLjguKXguJTguLPguKPguIcNCivguIjguKPguLHguKog4Lit4Lix4Lia4LiU4Li44Lil4Lil4LiyDQor4LiI4Lij4Lix4Liq4Lie4LijIOC5geC4i+C5iOC5gOC4leC4teC4ouC4pw0KK+C4iOC4o+C4seC4quC4qOC4o+C4tSDguYDguIjguKPguLTguI3guIrguLjguYjguKENCivguIjguKPguLHguKrguKjguKPguLUg4Lie4Li24LmI4LiH4LiB4Lix4LiZDQor4LiI4Lij4Lix4Liq4Lio4Lij4Li1IOC4quC4uOC4geC4seC4meC4jeC4sg0KK+C4iOC4o+C4tOC4hyDguJ7guLjguYjguKHguYHguJ7guKMNCivguIjguKPguLTguJkg4Lig4Li54LmI4LiZ4LmJ4Lit4LiiDQor4LiI4Lij4Li04LiZ4LiX4Lij4LmMIOC4geC4peC4tOC5iOC4meC4oeC4sOC4peC4tA0KK+C4iOC4o+C4tOC4meC4l+C4o+C5jCDguIrguYnguLLguIfguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguIjguKPguLTguJnguJfguKPguYwg4LiZ4Liy4LiE4Lio4Lij4Li14Lit4Liy4Lig4Lij4LiT4LmMDQor4LiI4Lij4Li04LiZ4LiX4Lij4LmMIOC4nuC4uOC4l+C4mOC4tOC4quC4suC4p+C4h+C4qOC5jA0KK+C4iOC4o+C4tOC4meC4l+C4o+C5jCDguYDguKPguLfguK3guJnguYHguIHguYnguKcNCivguIjguKPguLTguJnguJfguKPguYwg4Liq4Lih4Li44Lir4LmM4Liq4LiZ4LiY4LmMDQor4LiI4Lij4Li04LiZ4LiX4Lij4LmMIOC4reC4tOC5iOC4oeC4iOC4seC4meC4l+C4o+C5jA0KK+C4iOC4o+C4tOC4ouC4siDguYDguIHguKPguLXguKLguIfguYTguIHguKPguKfguJPguLTguIoNCivguIjguKPguLTguKLguLIg4LmA4LiI4Lij4Li04LiN4Liq4Li04LiZDQor4LiI4Lij4Li04Lii4LiyIOC4lOC4tOC4peC4geC5guC4geC4oeC4pQ0KK+C4iOC4o+C4tOC4ouC4siDguJrguLjguI3guIjguK3guIcNCivguIjguKPguLTguKLguLIg4LmC4Lie4LiY4Li04Lin4Li04LiK4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4LiI4Lij4Li04Lii4LiyIOC4p+C4h+C4qOC5jOC4geC4tOC4iOC5gOC4iOC4o+C4tOC4jQ0KK+C4iOC4o+C4tOC4ouC4siDguKrguLHguIfguKfguLLguKXguKLguYwNCivguIjguKPguLTguKLguLIg4Lit4LiH4LiE4LmM4Lin4Liy4Liq4Li04LiO4LiQ4LmMDQor4LiI4Lij4Li1IOC4leC4o+C4teC4quC4reC4suC4lA0KK+C4iOC4o+C4teC4oOC4o+C4k+C5jCDguK3guLTguJnguJfguYHguJ7guJfguKLguYwNCivguIjguKPguLXguKPguLHguJXguJnguYwg4Lie4Li04LiB4Li44Lil4LmB4Lii4LmJ4LihDQor4LiI4Lij4Li44LiHIOC4nuC4o+C4q+C4oeC4oeC4suC4meC4meC4l+C5jA0KK+C4iOC4o+C4uOC4h+C4qOC4o+C4tSDguIjguKPguLjguIfguIHguKXguLTguYjguJkNCivguIjguKPguLnguI0g4LiB4Lix4LiZ4LiL4Lix4LiZDQor4LiI4Lij4Li54LiNIOC4hOC4h+C4oeC4sg0KK+C4iOC4o+C4ueC4jSDguIjguLXguKPguLDguKfguLHguJLguJnguLINCivguIjguKPguLnguI0g4LmC4LiK4LiE4LiI4Liy4Lij4Li44LmA4LiZ4LiV4LijDQor4LiI4Lij4Li54LiNIOC4l+C4o+C4seC4nuC4ouC5jOC5gOC4meC4t+C4reC4h+C4meC4reC4hw0KK+C4iOC4o+C4ueC4jSDguYHguJnguKHguYPguKoNCivguIjguKPguLnguI0g4LmB4Lib4LmJ4LiZ4LmA4Lil4LmH4LiBDQor4LiI4Lij4Li54LiNIOC5gOC4nuC5h+C4iuC4o+C5jOC4geC4peC4seC4mg0KK+C4iOC4o+C4ueC4jSDguKPguLHguIHguKnguLLguKPguLLguIoNCivguIjguKPguLnguI0g4Lin4Lij4Lij4LiY4LiZ4Liw4Liq4Li04LiZDQor4LiI4Lij4Li54LiNIOC4quC4o+C5ieC4reC4ouC4quC4p+C5iOC4suC4hw0KK+C4iOC4o+C4ueC4jSDguYHguKrguJnguKPguLLguIoNCivguIjguKPguLnguI0g4LmA4Lit4Li34LmJ4Lit4LmA4Lie4Li04LmI4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4LiI4Lij4Li54LiN4Lil4Lix4LiB4Lip4LiT4LmMIOC4reC4seC4h+C4hOC5jOC5hOC4nuC5guC4o+C4iOC4meC5jA0KK+C4iOC4o+C4ueC4jeC4qOC4o+C4tSDguKjguLjguILguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguIjguKPguLnguI3guYLguKPguIjguJnguYwg4LiJ4Li04Lih4Liq4Liz4Lij4Liy4LiNDQor4LiI4Lin4LiH4LiI4Lix4LiZ4LiX4Lij4LmMIOC5geC4geC5ieC4p+C4nuC4tuC5iOC4h+C4l+C4o+C4seC4nuC4ouC5jA0KK+C4iOC4p+C4mSDguJTguYnguKfguIfguYDguIfguLTguJkNCivguIjguKfguJnguJ/guLLguIcg4LiV4Lix4LmJ4LiH4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LiI4Lit4LiZIOC4p+C4tOC4o+C4tOC4ouC4sOC4reC4o+C4o+C4luC4p+C4uOC4kuC4tA0KK+C4iOC4reC4oeC4neC4suC4hyDguKrguLHguKHguJfguKPguLLguKINCivguIjguK3guKvguYzguJkg4LmB4Lit4Lil4LmB4Lil4LiZ4LmB4LijDQor4LiI4LmK4LiwIOC5geC4i+C5iOC4l+C5ieC4suC4pw0KK+C4iOC4seC4geC4o+C4geC4o+C4tOC4iiDguKPguLjguIjguK3guLjguKzguLLguKMNCivguIjguLHguIHguKPguIHguKTguKkg4LiK4Li44LiZ4LiB4Lit4LiH4Liu4LitDQor4LiI4Lix4LiB4Lij4LiB4Lik4Lip4LiT4LmMIOC4meC4uOC4quC4quC4leC4tA0KK+C4iOC4seC4geC4o+C4geC4pOC4qeC4k+C5jCDguKrguLTguJfguJjguLLguIjguLLguKPguKfguLHguJLguJnguYwNCivguIjguLHguIHguKPguIrguLHguKIg4LmA4Lie4LmH4LiK4Lij4LmA4Lih4LmH4LiU4LmD4Lir4LiN4LmIDQor4LiI4Lix4LiB4Lij4Lie4LiH4Lio4LmMIOC5gOC4peC4tOC4qOC4oeC4k+C4teC4nuC4seC4meC4mOC5jA0KK+C4iOC4seC4geC4o+C4nuC4h+C4qeC5jCDguKrguLjguKDguLLguJ4NCivguIjguLHguIHguKPguJ7guLHguJnguJjguYwg4LiB4LmJ4Lit4LiZ4Lic4Li54LiBDQor4LiI4Lix4LiB4Lij4Lie4Lix4LiZ4LiY4LmMIOC5gOC4peC4tOC4qOC4luC4p+C4tOC4peC4oOC4seC4geC4lOC4tQ0KK+C4iOC4seC4geC4o+C4p+C4suC4pSDguIHguLPguKXguLHguIfguKjguKMNCivguIjguLHguIHguKPguLLguKfguLjguJgg4LmB4LiI4LmJ4LiH4LmA4Lin4LiK4LiJ4Liy4LiiDQor4LiI4Lix4LiB4Lij4Li1IOC5gOC4guC4t+C5iOC4reC4meC4mOC4o+C4o+C4oQ0KK+C4iOC4seC4geC4pOC4qeC4k+C5jCDguKTguJfguJjguLTguYzguYDguKXguLTguKgNCivguIjguLHguYnguIcg4Lih4LiU4LiX4Lit4LiHDQor4LiI4Lix4LiZ4LiI4LiZ4LiyIOC4quC4oeC4quC4t+C4mg0KK+C4iOC4seC4meC4lOC4tSDguK3guLTguIfguKrguLINCivguIjguLHguJnguJfguJnguLIg4LiB4Lih4Lil4LiX4Li04Lie4Lii4LmM4LiV4Lij4Liw4LiB4Li54LilDQor4LiI4Lix4LiZ4LiX4LiZ4LiyIOC4h+C4suC4oeC5gOC4peC4tOC4qOC4p+C4h+C4qOC5jA0KK+C4iOC4seC4meC4l+C4meC4siDguIrguLTguJTguIrguK3guJoNCivguIjguLHguJnguJfguJnguLIg4LiV4Lix4LiZ4LiV4Li04Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiI4Lix4LiZ4LiX4LiZ4LiyIOC4meC4uOC5ieC4ouC5gOC4nOC4t+C4reC4gQ0KK+C4iOC4seC4meC4l+C4meC4siDguJ7guLHguJLguJnguIjguLTguJXguKfguLTguYTguKUNCivguIjguLHguJnguJfguJnguLIg4Lij4Lit4LiU4Lin4Li04LiI4Li04LiV4LijDQor4LiI4Lix4LiZ4LiX4LiZ4LiyIOC4p+C4seC4iuC4o+C4tOC4meC4l+C4o+C5jOC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4iOC4seC4meC4l+C4meC4siDguKrguLLguKLguIHguKPguLDguKrguLjguJkNCivguIjguLHguJnguJfguJnguLIg4LmC4Lir4Lih4Lin4Liy4LiZ4Li04LiKDQor4LiI4Lix4LiZ4LiX4LiZ4Li1IOC4iOC4seC4meC4l+C4o+C4suC4o+C4oeC4ouC5jA0KK+C4iOC4seC4meC4l+C4meC4tSDguKrguLTguIfguKvguYzguKrguLjguKfguKPguKPguJMNCivguIjguLHguJnguJfguKLguLIg4LiV4Lij4Lit4LiH4LiV4Lij4Liw4LiB4Liy4LijDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LiB4Liz4LmA4Lir4LiZ4Li04LiUIOC5gOC4iOC4o+C4tOC4jeC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4iOC4seC4meC4l+C4o+C5jOC4iOC4tOC4o+C4siDguYDguIrguLfguYnguK3guIjguLjguYnguKINCivguIjguLHguJnguJfguKPguYzguInguLLguKIg4LiB4Li44Lil4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LiJ4Liy4LiiIOC4nuC4h+C4qeC5jOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4iOC4seC4meC4l+C4o+C5jOC4lOC4tSDguIHguLjguI3guIjguKMNCivguIjguLHguJnguJfguKPguYzguJfguKPguLIg4Lia4Li54LmI4Liq4Liy4Lil4Li1DQor4LiI4Lix4LiZ4LiX4Lij4LmM4LiX4Li04Lie4Lii4LmMIOC4p+C4uOC4kuC4tOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4iOC4seC4meC4l+C4o+C5jOC4meC4tOC4oOC4siDguYDguIHguKPguYHguK7guKENCivguIjguLHguJnguJfguKPguYzguJ7guLTguKEg4LiE4Lil4LmJ4Liy4Lii4LiZ4Liy4LiEDQor4LiI4Lix4LiZ4LiX4Lij4LmM4Lij4Lix4LiV4LiZ4LmMIOC4luC4meC4reC4oeC4nuC4peC4hOC4peC4seC4hw0KK+C4iOC4seC4meC4l+C4o+C5jOC4qOC4o+C4tSDguKrguKfguKLguKPguLnguJsNCivguIjguLHguJnguJfguKPguYzguKrguLjguJTguLIg4Lil4Liy4Lig4Lin4Li44LiS4Li04Lij4Lix4LiV4LiZ4LmMDQor4LiI4Lix4LiZ4LiX4Lij4LiyIOC4geC4tOC4iOC4geC4seC4jeC4iOC4meC4suC4quC4meC5jA0KK+C4iOC4seC4meC4l+C4o+C4siDguYHguIvguYjguIHguLXguYkNCivguIjguLHguJnguJfguKPguLIg4Lia4Li44LiN4LiX4Li1DQor4LiI4Lix4LiZ4LiX4Lij4LiyIOC5guC4o+C4iOC4meC5jOC4nuC4peC4suC5gOC4quC4luC4teC4ouC4ow0KK+C4iOC4seC4meC4l+C4o+C4siDguKrguLjguILguKrguLTguIfguKvguYwNCivguIjguLHguJnguJfguKPguLLguKDguLIg4Lie4Lix4LiZ4LiY4Li44LmM4Liq4Lih4Lia4Li44LiNDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4Lie4LmH4LiNIOC4geC4peC4teC4muC4muC4seC4pw0KK+C4iOC4seC4meC4l+C4o+C5jOC5gOC4nuC5h+C4jSDguIjguLHguJnguKrguLPguYLguKPguIcNCivguIjguLHguJnguJfguKPguYzguYDguJ7guYfguI0g4LmB4LiL4LmI4Lii4Li04LiUDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4Lie4LmH4LiNIOC4mOC4meC4nuC4h+C4qOC5jOC4meC4uOC5guC4o+C4iOC4meC5jA0KK+C4iOC4seC4meC4l+C4o+C5jOC5gOC4nuC5h+C4jSDguJvguLLguJnguYDguJfguKgNCivguIjguLHguJnguJfguKPguYzguYDguJ7guYfguI0g4Lih4Liy4LiV4Lij4Liq4Li04LiH4Lir4LmMDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4Lie4LmH4LiNIOC4p+C4h+C4qOC5jOC4iuC4s+C4meC4suC4jQ0KK+C4iOC4seC4meC4l+C4o+C5jOC5gOC4nuC5h+C4jSDguKrguLHguI3guI3guLDguKfguLUNCivguIjguLHguJnguJfguKPguYzguYDguJ7guYfguI0g4Lit4Lih4Lij4Liq4Lih4Lia4Li54Lij4LiT4LmM4Lio4Lix4LiB4LiU4Li04LmMDQor4LiI4Lix4LiZ4LiX4Lij4LmM4LmB4LiU4LiHIOC4nOC4peC4iOC4seC4meC4l+C4o+C5jA0KK+C4iOC4seC4meC4l+C4o+C5jOC5guC4o+C4iOC4meC5jCDguKrguJbguLTguJXguKfguLTguKPguLTguKLguKfguIfguKjguYwNCivguIjguLHguJnguJfguKPguYwg4LmC4LiK4LiE4Liq4Li44Lij4Li04Lii4Liw4Liq4LiB4Li44LilDQor4LiI4Lix4LiZ4LiX4Lij4LmMIOC4nuC4tOC4peC4sg0KK+C4iOC4seC4meC4l+C4o+C5jCDguKrguIHguLjguJPguLINCivguIjguLHguJnguJfguLIg4LmA4LiB4Lil4Li14LmJ4Lii4LiH4Lie4Lij4LmJ4Lit4LihDQor4LiI4Lix4LiZ4LiX4Li04Lih4LiyIOC5geC4geC5ieC4p+C4m+C4o+C4sOC5guC4peC4oQ0KK+C4iOC4seC4meC4l+C4tOC4oeC4siDguJPguLDguKPguLTguJnguJfguKPguYzguJ/guLkNCivguIjguLHguJnguJfguLTguKHguLIg4Lie4Li04LiZ4LiX4Li44Lin4Lix4LiS4LiZ4LiwDQor4LiI4Lix4LiZ4LiX4Li04Lih4LiyIOC4qOC4o+C4teC5hOC4geC4o+C4p+C4seC4iuC4ow0KK+C4iOC4seC4meC4l+C4tOC4o+C4siDguIHguKPguLDguJrguKfguJnguKLguLjguJfguJgNCivguIjguLHguJnguJfguLTguKPguLIg4Liq4Li44LiC4Liq4LiB4Li44Lil4LiZ4Li1DQor4LiI4Lix4LiZ4Lin4Li04LmE4LilIOC4iuC4tOC4leC4meC4uOC4iuC4leC4o+C4suC4meC4meC4l+C5jA0KK+C4iOC4seC5iOC4p+C4hOC4uOC4kyDguYHguIvguYjguYDguIvguLXguKLguKcNCivguIjguLLguJXguLjguKPguIfguITguYwg4Liq4Li44Lij4Li04Lii4Liy4Lio4Lio4Li04LiZDQor4LiI4Liy4Lih4LiI4Li44Lij4Li1IOC4qOC4o+C4teC4q+C4tOC4o+C4seC4jeC4o+C4seC4qOC4oeC4tQ0KK+C4iOC4suC4oeC4o+C4tSDguYDguKvguKPguLXguKLguI3guK3guLHguKHguJ7guKMNCivguIjguLLguKPguLTguJPguLUg4Liq4Li44LiE4LiZ4LiY4LiK4Liy4LiV4Li0DQor4LiI4Liy4Lij4Li14Lii4LmM4Lie4LijIOC4nuC4uOC5iOC4oeC4meC5ieC4s+C5gOC4ouC5h+C4mQ0KK+C4iOC4suC4o+C4tuC4gSDguIrguLnguJnguLjguIoNCivguIjguLLguKPguLbguIEg4LmA4Lin4LiX4Lin4Lix4LiS4LiZ4Liy4Lie4Li04Lia4Li54LilDQor4LiI4Liy4Lij4Li4IOC4p+C4tOC4iuC4suC5hOC4l+C4og0KK+C4iOC4suC4o+C4uOC4k+C4tSDguIjguLDguYLguKPguITguKPguLHguKHguKLguYwNCivguIjguLLguKPguLjguJPguLUg4LiZ4Liy4LiE4LiZ4Liy4LihDQor4LiI4Liy4Lij4Li44LiT4Li1IOC4ouC4uOC4geC4leC4tOC4o+C4seC4leC4meC5jA0KK+C4iOC4suC4o+C4uOC4k+C4tSDguYDguKrguKfguJXguYTguK3guKLguLLguKPguLLguKENCivguIjguLLguKPguLjguJnguLHguJnguJfguYwg4Lia4Li44LiN4LiI4Lix4LiZ4LiX4Lij4LmMDQor4LiI4Liy4Lij4Li44Lie4LijIOC4qOC4tOC4o+C4tOC4l+C4seC4leC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4iOC4suC4o+C4uOC4oOC4siDguYHguKrguKHguILguLLguKcNCivguIjguLLguKPguLjguKXguLHguIHguKnguJPguYwg4LiY4Lij4Lij4Lih4LiY4Liy4LijDQor4LiI4Liy4Lij4Li44Lin4Lij4Lij4LiTIOC4iOC4h+C5gOC4peC4tOC4qOC4p+C4k+C4tOC4iuC4geC4uOC4pQ0KK+C4iOC4suC4o+C4uOC4p+C4o+C4o+C4kyDguYHguIvguYjguYLguK3guYrguKcNCivguIjguLLguKPguLjguKfguKPguKPguJMg4LiZ4Li04Lij4Lix4LiZ4LiU4Lij4Lie4Lik4LiB4Lip4LmMDQor4LiI4Liy4Lij4Li44Lin4Lij4Lij4LiTIOC4oOC4tOC4o+C4oeC4ouC5jOC5gOC4iOC4teC4ouC4pw0KK+C4iOC4suC4o+C4uOC4p+C4o+C4o+C4kyDguKfguLHguJLguJnguKrguLTguIfguKvguLANCivguIjguLLguKPguLjguKfguKPguKPguJMg4LmA4Liq4Lij4Li14LmA4LiI4Lij4Li04LiN4Liq4LiW4Li04LiV4Lii4LmMDQor4LiI4Liy4Lij4Li44Lin4Lix4LiS4LiZ4LmMIOC4iOC4suC4o+C4uOC4p+C4seC4kuC4meC4sA0KK+C4iOC4suC4o+C4uOC5gOC4geC4teC4ouC4o+C4leC4tCDguITguLLguJTguKrguJnguLTguJcNCivguIjguLPguJnguIcg4LmC4LiB4Lin4Li04LiX4Lit4Li04Liq4Lij4Li04Lii4LiwDQor4LiI4Liz4LiZ4LiHIOC4o+C4seC4h+C4quC4tOC4geC4uOC4pQ0KK+C4iOC4s+C4meC4h+C4hOC5jCDguIHguLTguJXguJXguLTguKPguLHguJXguJnguK3guLjguJTguKENCivguIjguLPguJnguIfguITguYwg4LiI4Lij4Lij4Lii4Liy4Lin4Lij4Lin4LiH4Lio4LmMDQor4LiI4Liz4LiZ4LiH4LiE4LmMIOC4iuC4tOC4leC4iOC5ieC4reC4og0KK+C4iOC4s+C4meC4h+C4hOC5jCDguJfguK3guIfguJvguKPguLDguYDguKrguKPguLTguJANCivguIjguLPguJnguIfguITguYwg4Lia4Lix4Lin4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LiI4Liz4LiZ4LiH4LiE4LmMIOC4nuC4p+C4h+C4peC4sOC4reC4reC4hw0KK+C4iOC4s+C4meC4h+C4hOC5jCDguKHguLHguIfguIHguKPguJvguKPguLDguJTguLTguKnguJDguYwNCivguIjguLPguJnguIfguITguYwg4LmA4Lil4LmH4LiB4LiU4Liy4Lij4LiyDQor4LiI4Liz4LiZ4LiH4LiE4LmMIOC4quC4o+C4sOC4l+C4reC4hw0KK+C4iOC4s+C4meC4h+C4hOC5jCDguKvguJnguLnguKDguLHguIHguJTguLUNCivguIjguLPguJnguIfguJnguLLguI8g4LiI4Li04LiV4LiV4LiB4Li04LiIDQor4LiI4Liz4LiZ4Lit4LiHIOC4nuC4p+C4h+C4nuC4uOC4kg0KK+C4iOC4s+C4m+C4siDguYLguIHguKnguLDguYLguKLguJjguLTguJkNCivguIjguLPguJvguLIg4Lie4Li44Lih4Lih4LiyDQor4LiI4Liz4Lib4Li1IOC4iOC4seC4meC4l+C4o+C5jOC4hOC4sw0KK+C4iOC4s+C4m+C4tSDguYDguJvguYvguLLguJfguK3guIcNCivguIjguLPguJvguLUg4Liq4Li04LiH4Lir4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiI4Liz4Lij4Lix4LiNIOC4reC4o+C4o+C4luC4quC4uOC4meC4l+C4ow0KK+C4iOC4s+C4o+C4seC4qiDguYDguIfguLTguJnguKjguLTguKPguLQNCivguIjguLPguKPguLHguKog4LmE4LiK4Lii4Lio4Li04Lij4Li04LiZ4LiX4Lij4LmMDQor4LiI4Liz4Lij4Lix4LiqIOC4l+C4seC4muC5gOC4iOC4o+C4tOC4jQ0KK+C4iOC4s+C4o+C4seC4qiDguJrguLjguI3guJvguKPguLDguKrguJ4NCivguIjguLPguKPguLHguKog4Lie4Lix4LiZ4LiY4Li44LmM4LmB4LiB4LmJ4LinDQor4LiI4Liz4Lij4Lix4LiqIOC4oeC4teC4hOC4seC4peC5geC4peC4sOC4q+C5jA0KK+C4iOC4s+C4o+C4seC4qiDguYDguKXguYnguLLguIrguLHguKLguKfguLHguJLguJnguYwNCivguIjguLPguKPguLHguKog4Liq4LiH4Lin4LiZ4Lie4LiH4Lip4LmMDQor4LiI4Liz4Lij4Lix4LiqIOC5geC4quC4h+C4o+C4ueC4iOC4tQ0KK+C4iOC4s+C4o+C4seC4qiDguK3guLTguJnguKjguKPguLUNCivguIjguLPguKPguLnguI0g4LiE4Li44LmJ4Lih4LiK4Li44LmI4LihDQor4LiI4Liz4Lij4Li54LiNIOC4m+C4tOC4leC4sOC5guC4q+C4leC4o+C4sA0KK+C4iOC4s+C4o+C4ueC4jSDguKrguIfguKfguJnguKjguLHguIHguJTguLTguYzguYLguKLguJjguLTguJkNCivguIjguLPguKXguK3guIcg4LiB4Lit4LiH4LmB4Liq4LiH4Lio4Lij4Li1DQor4LiI4Liz4Lil4Lit4LiHIOC5geC4guC5gOC4guC4teC4ouC4pw0KK+C4iOC4s+C4peC4reC4hyDguIjguLLguKPguLjguIrguLHguKLguJnguLTguKfguLHguJLguJnguYwNCivguIjguLPguKXguK3guIcg4LiK4Li34LmI4LiZ4Lia4Liz4Lij4Li44LiHDQor4LiI4Liz4Lil4Lit4LiHIOC4l+C5ieC4p+C4oeC5gOC4iOC4o+C4tOC4jQ0KK+C4iOC4s+C4peC4reC4hyDguJnguYnguK3guKLguK3guLTguJnguJfguKPguYwNCivguIjguLPguKXguK3guIcg4Lib4Lil4Li34LmJ4Lih4LmA4Lib4Lij4LihDQor4LiI4Liz4Lil4Lit4LiHIOC4nuC4uOC4kuC4q+C4ouC4p+C4gQ0KK+C4iOC4s+C4peC4reC4hyDguYDguKHguJjguLLguKfguLTguKPguLTguKLguLDguKjguLTguKXguJvguYwNCivguIjguLPguKXguK3guIcg4LmE4Lil4LmJ4Lij4Lix4LiB4Lip4LiyDQor4LiI4Liz4Lil4Lit4LiHIOC4qOC4tOC4peC4suC4nuC4seC4meC4mOC5jA0KK+C4iOC4s+C4peC4reC4hyDguKrguLjguILguKrguKfguLHguKrguJTguLTguYwNCivguIjguLPguKXguK3guIcg4Lit4LiZ4Lix4LiZ4LiV4Lic4LilDQor4LiI4Liz4Lil4Lit4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4quC4seC4jeC4jeC4sOC5gOC4lOC4iuC4suC4geC4uOC4pQ0KK+C4iOC4s+C5gOC4meC4teC4ouC4oyDguIHguK3guIfguJrguLjguJrguJzguLINCivguIjguLPguYDguJnguLXguKLguKMg4LiI4LiH4LmE4Lie4LiI4Li04LiV4LijDQor4LiI4Liz4LmA4LiZ4Li14Lii4LijIOC5geC4iuC5iOC4oeC4iuC5ieC4reC4og0KK+C4iOC4s+C5gOC4meC4teC4ouC4oyDguYDguJfguKjguYDguJ7guYfguI0NCivguIjguLPguYDguJnguLXguKLguKMg4Lib4Lij4Liw4Lig4Liy4Lij4Lix4LiV4LiZ4LmMDQor4LiI4Liz4LmA4LiZ4Li14Lii4LijIOC5gOC4nuC5h+C4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4iOC4s+C5gOC4meC4teC4ouC4oyDguKPguLHguJDguKfguLTguYDguKjguKkNCivguIjguLPguYDguJnguLXguKLguKMg4Lio4Lij4Li14Lin4LiH4Lip4LmMDQor4LiI4Liz4LmA4LiZ4Li14Lii4LijIOC4quC4uOC4lOC4qOC4tOC4o+C4tA0KK+C4iOC4s+C5gOC4meC4teC4ouC4oyDguK3guLXguJTguLUNCivguIjguLPguYDguKPguLTguI0g4LiE4Liz4Liq4Lit4LiZDQor4LiI4Liz4LmA4Lij4Li04LiNIOC4muC4uOC4jeC4l+C4reC4h+C4quC4uOC4gg0KK+C4iOC4s+C5gOC4o+C4tOC4jSDguYDguKXguLTguKjguYDguIjguKPguLTguI3guKLguIfguITguYwNCivguIjguLPguYDguKPguLTguI0g4Lit4Lix4LiZ4LiY4Li04Lij4LiqDQor4LiI4Liz4LmA4Lij4Li14Lii4LiHIOC4lOC4tOC4qeC4kOC4suC4meC4meC4l+C5jA0KK+C4iOC4s+C5gOC4o+C4teC4ouC4hyDguKrguLjguKfguKPguKPguJPguYLguJMNCivguIjguLTguIfguKXguYnguIcg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiI4Li04LiT4Lir4LiY4Liy4LiZ4LmMIOC4muC4uOC4jeC5hOC4geC4o+C4quC4tOC4l+C4mOC4tOC5jA0KK+C4iOC4tOC4leC4geC4o+C4reC4hyDguK3guLTguJnguJfguKPguK3guLjguJTguKENCivguIjguLTguJXguJXguYzguJrguKPguKPguKLguIcg4LiI4Li04LiV4LiV4LmM4Lia4Lij4Lij4Lii4LiHDQor4LiI4Li04LiV4LiV4Lij4LiyIOC4nuC4uOC4geC4geC4sOC4oeC4suC4mQ0KK+C4iOC4tOC4leC4leC5jOC4quC4oeC4oyDguK3guJXguLTguYDguKPguIHguLLguJnguJnguJfguYwNCivguIjguLTguJXguJXguLQg4LmC4LiK4LiV4Li04Lij4Lix4LiV4LiZ4Liw4Lio4Li04Lij4Li0DQor4LiI4Li04LiV4LiV4Li0IOC4p+C4tOC4iOC4tOC4leC4o+C4iuC4peC4geC4suC4meC4leC5jA0KK+C4iOC4tOC4leC4leC4tOC4meC4seC4meC4l+C5jCDguIjguLTguJnguJTguLLguKvguKPguLINCivguIjguLTguJXguJXguLTguKHguLIg4LmA4LiB4Lip4Lih4LmC4LiB4LmA4Lih4LioDQor4LiI4Li04LiV4LiV4Li04Lih4LiyIOC5gOC4l+C4p+C4teC4peC4suC4oOC4o+C4k+C5jA0KK+C4iOC4tOC4leC4leC4tOC4oeC4siDguYDguKXguLTguKjguJrguLjguI3guKLguJ7guLHguJnguJjguYwNCivguIjguLTguJXguJXguLTguKHguLIg4Lit4Li04Liq4Lij4Liw4LiB4Li54LilDQor4LiI4Li04LiV4LiV4LmMIOC4iuC4t+C5iOC4meC4oOC4seC4geC4lOC4tQ0KK+C4iOC4tOC4leC4leC5jCDguKvguKHguKfguJTguKrguIcNCivguIjguLTguJXguJvguKPguLDguYTguJ4g4LiB4LiZ4Li04Lip4LiQ4Liy4Lii4LiZDQor4LiI4Li04LiV4LijIOC4leC4seC4meC4leC4tOC4meC4tOC4geC4ow0KK+C4iOC4tOC4leC4o+C4geC4oyDguKjguKPguLXguKvguLTguKPguLHguI0NCivguIjguLTguJXguKPguKDguJMg4Lij4Lix4LiV4LiZ4Lih4LiH4LiE4Lil4LiB4Li44LilDQor4LiI4Li04LiV4Lij4Lil4LiU4LiyIOC5gOC4q+C4o+C4seC4jeC4k+C4uOC4geC4o+C4k+C5jA0KK+C4iOC4tOC4leC4o+C4siDguIHguKPguLDguYHguKrguIHguLjguKjguKUNCivguIjguLTguJXguKPguLIg4LiI4Li04LiV4LiV4LmM4Lir4Liy4LiNDQor4LiI4Li04LiV4Lij4LiyIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4iOC4tOC4leC4o+C4siDguJjguJnguLLguIHguLnguKPguYDguKHguJjguLINCivguIjguLTguJXguKPguLIg4Lie4Lik4LiS4Li04Lin4LiX4Lix4LiN4LiN4Li5DQor4LiI4Li04LiV4Lij4LiyIOC5gOC4ouC4teC5iOC4ouC4oeC4ieC4p+C4tQ0KK+C4iOC4tOC4leC4o+C4siDguKfguLHguJLguJnguYDguKPguLfguK3guIfguIrguLHguKINCivguIjguLTguJXguKPguLIg4Liq4Lix4LiZ4LiX4LiZ4Li14Lit4LiZ4Li44LiB4Li54LilDQor4LiI4Li04LiV4Lij4LiyIOC4reC4seC4hOC4o+C4nuC4seC4meC4mOC5jA0KK+C4iOC4tOC4leC4o+C4suC4oOC4o+C4k+C5jCDguJnguLLguKHguIjguLHguIHguKMNCivguIjguLTguJXguKPguLUg4Lin4LiH4Lio4LmM4Lij4Lix4LiV4LiZ4Liy4Lin4Li04LiZDQor4LiI4Li04LiV4Lin4LiU4Li1IOC4p+C4tOC4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jA0KK+C4iOC4tOC4leC4reC4suC4o+C4teC4ouC5jCDguYDguIHguLXguKLguKPguJXguLTguIHguYjguK3guKrguLjguIINCivguIjguLTguJkg4Lit4Lii4Li54LmI4Liq4Lia4Liy4LiiDQor4LiI4Li04LiZ4LiU4LiyIOC5geC4geC5ieC4p+C4quC4geC4peC4k+C4tQ0KK+C4iOC4tOC4meC4lOC4siDguIjguLHguJnguJfguKPguYzguKDguLnguKHguLQNCivguIjguLTguJnguJTguLIg4LiJ4LmI4Liz4LiI4Li04LiV4Lij4LiK4Li34LmI4LiZDQor4LiI4Li04LiZ4LiU4LiyIOC5geC4i+C5iOC4q+C4peC4tQ0KK+C4iOC4tOC4meC4lOC4siDguJfguKPguLHguJ7guKLguYzguIjguLTguJnguJTguLLguKfguIfguKjguYwNCivguIjguLTguJnguJTguLIg4LiZ4Liy4Lih4LiX4Lit4LiHDQor4LiI4Li04LiZ4LiU4LiyIOC4m+C4seC4jeC4jeC4suC4p+C4iuC4tOC4o+C4iuC4seC4og0KK+C4iOC4tOC4meC4lOC4siDguJ7guLHguJnguJnguLHguJfguJjguLUNCivguIjguLTguJnguJTguLIg4Lih4Liy4LiB4Lie4Li44LmI4LihDQor4LiI4Li04LiZ4LiU4LiyIOC4pOC4geC4qeC5jOC4m+C4tOC4ouC4sOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4iOC4tOC4meC4lOC4siDguKfguLTguKfguLHguJLguJnguYzguJ7guJnguIrguLLguJXguLQNCivguIjguLTguJnguJTguLIg4Liq4Lin4LiZ4LiX4Lin4Li1DQor4LiI4Li04LiZ4LiU4LiyIOC5gOC4quC4suC4o+C5jOC5gOC4geC4tOC4lA0KK+C4iOC4tOC4meC4lOC4siDguK3guLHguKjguKfguYDguKHguJjguLLguJ7guKMNCivguIjguLTguJnguJTguLLguJ7guKMg4Lio4Lij4Li14Liq4Li44LiC4Liq4Lix4LiZ4LiV4LmMDQor4LiI4Li04LiZ4LiU4Liy4Lij4Lix4LiV4LiZ4LmMIOC5gOC4lOC4iuC4sOC4o+C4seC4geC4qeC5jOC4nuC4h+C4qeC5jA0KK+C4iOC4tOC4meC4lOC4suC4o+C4seC4leC4meC5jCDguK3guKHguKPguJXguLLguJnguJnguJfguYwNCivguIjguLTguJnguJXguJnguLIg4LiB4Lil4Li04LmI4LiZ4Lir4Lit4LihDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC5gOC4geC4leC4uOC4quC4seC4oeC4nuC4seC4meC4mOC5jA0KK+C4iOC4tOC4meC4leC4meC4siDguYDguILguYfguKHguJnguLLguIQNCivguIjguLTguJnguJXguJnguLIg4LiI4Lij4Lij4Lii4Liy4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4iOC4teC4o+C4sOC4nuC4seC4kuC4meC5jA0KK+C4iOC4tOC4meC4leC4meC4siDguIrguKHguKHguLLguKXguLUNCivguIjguLTguJnguJXguJnguLIg4LmA4LiK4Li04LiN4Lio4Li04Lij4Li0DQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC5geC4i+C5iOC4reC5i+C4reC4hw0KK+C4iOC4tOC4meC4leC4meC4siDguYDguJTguYLguIrguJ7guKUNCivguIjguLTguJnguJXguJnguLIg4LiW4Liy4Lin4Lij4Lin4Li04Lin4Lix4LiS4LiZ4Lia4Li44LiV4LijDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC5gOC4l+C4tOC4lOC4l+C4ueC4peC4geC4uOC4pQ0KK+C4iOC4tOC4meC4leC4meC4siDguJnguLLguITguJvguJnguITguLMNCivguIjguLTguJnguJXguJnguLIg4Lia4Li44LiN4Lib4Lij4Liw4Liq4LiH4LiE4LmMDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4m+C4suC4meC4geC4peC4suC4hw0KK+C4iOC4tOC4meC4leC4meC4siDguJ7guKPguKvguKHguJ7guLTguIrguLTguJUNCivguIjguLTguJnguJXguJnguLIg4Lie4Li44LmI4Lih4Lio4Li04Lij4Li0DQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4oeC4pOC4hOC4quC4meC4mOC4tA0KK+C4iOC4tOC4meC4leC4meC4siDguYLguKLguJjguLLguKrguKHguLjguJfguKMNCivguIjguLTguJnguJXguJnguLIg4Lil4LiU4Liy4Lin4Lix4Lil4Lii4LmMDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4p+C4h+C4qOC5jOC4iuC4tOC4meC4qOC4o+C4tQ0KK+C4iOC4tOC4meC4leC4meC4siDguKfguLTguIjguLTguJXguKPguKjguKPguLXguKfguLHguJLguJnguYwNCivguIjguLTguJnguJXguJnguLIg4Lio4Lij4Li14Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4quC4luC4tOC4leC4o+C4suC4ouC4uOC4mA0KK+C4iOC4tOC4meC4leC4meC4siDguKrguLjguILguJfguKfguLUNCivguIjguLTguJnguJXguJnguLIg4LmA4Liq4LiZ4Liy4Lie4Lij4Lir4LihDQor4LiI4Li04LiZ4LiV4LiZ4LiyIOC4q+C4suC5gOC4o+C4t+C4reC4meC4iuC4teC4ng0KK+C4iOC4tOC4meC4leC4meC4siDguK3guLLguKDguLLguJnguLHguJnguJfguYwNCivguIjguLTguJnguJXguJnguLLguI8g4LiZ4Li04LiV4Li04Liq4Liy4Lij4Lio4Li04Lil4Lib4LmMDQor4LiI4Li04LiZ4LiV4LmMIOC4hOC4h+C4l+C4reC4hw0KK+C4iOC4tOC4meC4suC4p+C4o+C4o+C4kyDguYDguK7guK3guKPguYzguYHguKHguJkNCivguIjguLTguKHguK7guIcg4LmB4LiL4LmI4LmA4Liu4LmI4LiHDQor4LiI4Li04Lij4LiK4Lix4LiiIOC4q+C4p+C4seC4h+C4quC4sOC4lOC4p+C4gQ0KK+C4iOC4tOC4o+C4meC4seC4meC4l+C5jCDguKHguLXguKfguLLguKrguJnguLINCivguIjguLTguKPguJ7guIfguKnguYwg4Lie4Lix4LiZ4LiY4LmC4LiE4LiV4Lij4LmMDQor4LiI4Li04Lij4Lie4LijIOC5gOC4nOC4t+C5iOC4reC4meC4meC5ieC4reC4og0KK+C4iOC4tOC4o+C4nuC4o+C4o+C4kyDguJnguLTguKPguLHguJXguLTguKjguLHguKINCivguIjguLTguKPguJ7guLHguJLguJnguYwg4Lij4Lix4LiV4LiZ4Lib4Li04LiT4LiR4LiwDQor4LiI4Li04Lij4Lig4Lix4LiX4LijIOC5gOC4l+C4p+C4tOC4meC4l+C4o+C4oOC4seC4geC4leC4tA0KK+C4iOC4tOC4o+C4oOC4siDguKHguKvguLLguJ7guKUNCivguIjguLTguKPguKLguLjguJfguJgg4Lit4LiU4Li04LmA4LiX4Lie4LiZ4Lij4Liy4LiH4LiB4Li54LijDQor4LiI4Li04Lij4Lin4Lij4Lij4LiTIOC4meC4tOC4oeC4tOC4leC4qOC4tOC4o+C4tOC4p+C4seC4kuC4meC5jA0KK+C4iOC4tOC4o+C4p+C4seC4iOC4meC5jCDguYDguIjguKPguLTguI3guKjguLHguIHguJTguLTguYwNCivguIjguLTguKPguKfguLHguJLguJnguYwg4LiX4Li44Lih4Lih4Liy4LiZ4LiZ4LiX4LmMDQor4LiI4Li04Lij4Lin4Lix4LiS4LiZ4LmMIOC4quC4uOC4meC4l+C4p+C4seC4kuC5guC4o+C4lOC4oQ0KK+C4iOC4tOC4o+C4qOC4seC4geC4lOC4tOC5jCDguIHguJnguIHguIHguLHguJPguJHguJ7guIfguKnguYwNCivguIjguLTguKPguKjguLHguIHguJTguLTguYwg4Lib4Lij4Liw4LmE4Lie4LiB4Lij4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4LiI4Li04Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4seC4h+C4guC4mOC4meC4suC4meC4meC4l+C5jA0KK+C4iOC4tOC4o+C4sCDguIjguLXguKPguKDguLHguJfguKPguYwNCivguIjguLTguKPguLAg4Lio4Li04Lil4Lib4LiK4Liz4LiZ4Liy4LiNDQor4LiI4Li04Lij4Liw4LiZ4Lix4LiZ4LiV4LmMIOC5geC4lOC4h+C4nuC4seC4meC4mOC5jA0KK+C4iOC4tOC4o+C4sOC4nuC4oyDguIHguLjguKXguYDguJ7guIrguKPguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguIjguLTguKPguLDguJ7guLHguJnguJjguYwg4LiI4Li04LiZ4Lij4Lix4LiV4LiZ4LmMDQor4LiI4Li04Lij4Liw4Lig4LiyIOC4o+C4seC4leC4meC4suC4p+C4tOC4muC4ueC4peC4ouC5jA0KK+C4iOC4tOC4o+C4sOC4p+C4seC4kuC4meC5jCDguYHguIvguYjguYLguIfguYnguKcNCivguIjguLTguKPguLDguKjguLHguIHguJTguLTguYwg4LmA4LiU4LmI4LiZ4LiU4Lin4LiHDQor4LiI4Li04Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC4qOC4uOC4oOC4muC4seC4k+C4keC4tOC4leC4leC4sg0KK+C4iOC4tOC4o+C4seC4iuC4ouC4siDguYHguKLguYnguKHguKrguLjguKfguKPguKPguJMNCivguIjguLTguKPguLIg4LiB4Lih4Lil4Lin4Liy4LiX4Li04LiZDQor4LiI4Li04Lij4Liy4LiZ4LiZ4LiX4LmMIOC4qOC4o+C4teC4l+C4o+C4seC4nuC4ouC5jA0KK+C4iOC4tOC4o+C4suC4nuC4oyDguIrguLnguKrguIHguLjguKUNCivguIjguLTguKPguLLguJ7guKMg4Lib4Liy4LiZ4LmA4Lit4LiBDQor4LiI4Li04Lij4Liy4Lie4LijIOC5gOC4o+C5iOC4h+C4o+C4seC4lA0KK+C4iOC4tOC4o+C4suC4nuC4oyDguKrguLjguKfguLTguJnguJfguKfguIfguKjguYwNCivguIjguLTguKPguLLguJ7guLHguJnguJjguLjguYwg4Lin4Lix4LiS4LiZ4LiyDQor4LiI4Li04Lij4Liy4Lig4Lij4LiT4LmMIOC4iOC4seC4meC4l+C4o+C4o+C4seC4qOC4oeC4tQ0KK+C4iOC4tOC4o+C4suC4oOC4o+C4k+C5jCDguJMg4LmE4LiK4LmC4LiiDQor4LiI4Li04Lij4Liy4Lig4Lij4LiT4LmMIOC4muC4ueC4o+C4k+C4quC4tOC4h+C4hOC5jA0KK+C4iOC4tOC4o+C4suC4oOC4o+C4k+C5jCDguKLguLDguK3guJnguLHguJnguJXguYwNCivguIjguLTguKPguLLguKDguKPguJPguYwg4Lin4Li04LmC4Lij4LiI4LiZ4Lin4Lix4LiS4LiZ4LmMDQor4LiI4Li04Lij4Liy4Lig4Lij4LiT4LmMIOC4quC4uOC4lOC4ouC4reC4lA0KK+C4iOC4tOC4o+C4suC4oOC4o+C4k+C5jCDguK3guLjguJrguKXguIrguLLguJXguLQNCivguIjguLTguKPguLLguKDguLIg4Lie4LmI4Lin4LiH4Liq4Liz4LmA4LiZ4Li14Lii4LiHDQor4LiI4Li04Lij4Liy4Lii4Li4IOC4hOC4uOC5ieC4oeC4m+C4tOC4leC4tA0KK+C4iOC4tOC4o+C4suC4o+C4seC4iiDguITguIrguKDguLnguJjguKMNCivguIjguLTguKPguLLguKfguKPguKPguJMg4LiB4Lix4LiZ4LiX4Liy4LiL4Liy4LinDQor4LiI4Li04Lij4Liy4Lin4Lij4Lij4LiTIOC4quC4oeC4nuC4h+C4qeC5jA0KK+C4iOC4tOC4o+C4suC4qOC4seC4geC4lOC4tOC5jCDguKHguLHguJnguJfguKPguLLguJnguJnguJfguYwNCivguIjguLTguKXguLLguKfguLHguKXguKLguYwg4LmA4Lir4Li14Lii4LiH4LmB4LiB4LmJ4LinDQor4LiI4Li04LmC4Lij4LiI4LiZ4LmMIOC5hOC4nuC4keC4ueC4o+C4ouC5jA0KK+C4iOC4teC4o+C4iuC4seC4oiDguJXguLHguIfguITguKPguLHguIoNCivguIjguLXguKPguJ7guKMg4LiE4Li44LmJ4Lih4LiE4Lij4Lit4LiH4LiY4Lij4Lij4LihDQor4LiI4Li14Lij4Lie4Lix4LiZ4LiY4LmMIOC4reC4tOC4meC4l+C5gOC4qg0KK+C4iOC4teC4o+C4p+C4o+C4o+C4kyDguYHguIjguYjguKHguILguLMNCivguIjguLXguKPguKfguLHguJLguJnguYwg4LmE4LiK4Lii4Lin4Li04LiX4Lii4LmM4Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4LiI4Li14Lij4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4ieC4peC4tOC4oeC5gOC4peC4tOC4qOC4m+C4seC4jeC4jeC4sg0KK+C4iOC4teC4o+C4sCDguJMg4Lie4Lix4LiX4Lil4Li44LiHDQor4LiI4Li14Lij4Liw4Lie4LijIOC4peC4suC4oOC4suC4meC4uOC4p+C4seC4kuC4meC5jA0KK+C4iOC4teC4o+C4sOC4p+C4o+C4o+C4kyDguJ7guKPguKHguYDguJ7guYfguIcNCivguIjguLXguKPguLDguKjguLHguIHguJTguLTguYwg4Lih4Liy4Lil4Lix4Lii4Lin4LiH4Lio4LmMDQor4LiI4Li14Lij4Liy4Lie4LijIOC4peC4tOC5ieC4oeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4iOC4teC4o+C4suC4p+C4uOC4kuC4tCDguJfguKPguKfguIfguYHguKrguKfguIcNCivguIjguLXguYkg4Lir4LiHIOC5gOC4iOC4tOC5ieC4hw0KK+C4iOC4t+C4reC5gOC4l+C5ieC4hyDguYHguIvguYjguKXguLTguYnguKENCivguIjguLjguYjguIfguKvguKLguIcg4LmB4LiL4LmI4Lil4Li14LmJDQor4LiI4Li44LiR4LiyIOC5gOC4iuC4tOC4h+C4iuC4suC4jQ0KK+C4iOC4uOC4keC4suC4l+C4tOC4niDguKfguLjguJLguLTguJjguKPguKPguKHguKrguLjguIINCivguIjguLjguJHguLLguJfguLTguJ7guKLguYwg4Lie4Li44LiX4LiY4Lij4Lix4LiB4Lip4LiyDQor4LiI4Li44LiR4Liy4LiY4Li04LibIOC4ieC4tOC4oeC4geC4uOC4pQ0KK+C4iOC4uOC4keC4suC4oOC4o+C4k+C5jCDguJjguJnguKjguLHguIHguJTguLTguYzguYLguKrguKDguJMNCivguIjguLjguJHguLLguKHguLLguKgg4LmB4LiB4LmJ4Lin4Lih4LiH4LiE4LilDQor4LiI4Li44LiR4Liy4Lih4Liy4LioIOC4leC4meC4seC4meC4l+C5jOC4ouC4uOC4l+C4mOC4p+C4h+C4qOC5jA0KK+C4iOC4uOC4keC4suC4oeC4suC4qCDguJ7guIfguKnguYzguKjguLTguKPguLQNCivguIjguLjguJHguLLguKHguLLguKgg4Lin4Lix4LiK4Lij4LmA4Lih4LiG4Li04LiZ4LiX4Lij4LmMDQor4LiI4Li44LiR4Liy4Lih4Liy4LioIOC5gOC4q+C4peC4t+C4reC4reC4meC4seC4meC4leC5jA0KK+C4iOC4uOC4keC4suC4o+C4seC4leC4meC5jCDguIHguLTguJXguJXguLTguIHguLjguKXguKLguLjguJfguJjguYwNCivguIjguLjguJHguLLguKPguLHguJXguJnguYwg4LiQ4Li04LiV4Li04Lib4Li44LiN4LiN4LiyDQor4LiI4Li44LiR4Liy4Lij4Lix4LiV4LiZ4LmMIOC4nuC4peC4suC4pOC4l+C4mOC4tOC5jA0KK+C4iOC4uOC4keC4suC4o+C4seC4leC4meC5jCDguKfguLTguKXguLHguKLguIHguKPguKfguJQNCivguIjguLjguJHguLLguKXguLHguIHguKnguJPguYwg4LiW4Liy4Lin4Lij4LiI4Li04LiV4LijDQor4LiI4Li44LiV4Li04Lie4LilIOC5gOC4quC4leC4sOC4p+C4teC4o+C4sA0KK+C4iOC4uOC4meC4seC4meC4l+C5jCDguKfguIfguKjguYzguK3guLLguKPguLUNCivguIjguLjguKHguJ7guI8g4LiB4Liy4LiN4LiI4LiZ4LiB4Liz4LiY4LiZDQor4LiI4Li44Lih4Lie4LilIOC4iOC4seC4meC4l+C4o+C4qOC4o+C4teC5gOC4geC4qeC4ow0KK+C4iOC4uOC4oeC4nuC4pSDguYHguJnguKfguKrguIHguKUNCivguIjguLjguKHguJ7guKUg4Lil4Lix4Lih4Lie4Liy4Lig4Li04Lin4Lix4LiS4LiZ4LmMDQor4LiI4Li44Lih4Lie4LilIOC4q+C4peC5iOC4oeC4l+C4reC4hw0KK+C4iOC4uOC5ieC4ouC4o+C5ieC4suC4hyDguYHguIvguYjguInguLHguYjguKcNCivguIjguLjguKPguLTguJnguJfguLTguJ7guKLguYwg4Liq4Lih4Lie4Lix4LiZ4LiY4LmM4Liq4Liy4LiX4Li04LiV4Lii4LmMDQor4LiI4Li44Lij4Li1IOC4oeC4h+C4hOC4peC4peC4sA0KK+C4iOC4uOC4o+C4teC4nuC4oyDguIrguLHguYnguKfguIrguLHguYnguJkNCivguIjguLjguKPguLXguKLguYwg4LiI4Lix4LmI4LiZ4LiI4Li44LmJ4LiiDQor4LiI4Li44Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC5gOC4hOC4o+C4t+C4reC4quC4uOC4p+C4o+C4o+C4kw0KK+C4iOC4uOC4o+C4teC4o+C4seC4leC4meC5jCDguKfguIfguKjguYzguIjguLHguJnguJfguKPguLINCivguIjguLjguKUg4LiX4Li04Lie4Lin4Lij4LiZ4Li04LiBDQor4LiI4Li44Lil4Lie4LiH4Lip4LmMIOC4kyDguJnguYjguLLguJkNCivguIjguLjguKXguKjguLTguKPguLQg4Liq4Li44Lin4Lij4Lij4LiT4Lio4Li04Lij4Li0DQor4LiI4Li44Liq4Li04LiZIOC4quC4uOC4mOC4suC4iuC4seC4ouC4nuC4ow0KK+C4iOC4uOC4rOC4suC4nuC4oyDguILguKLguLHguJnguIHguLLguKPguJnguLLguKfguLUNCivguIjguLjguKzguLLguKPguLHguJXguJnguYwg4LmB4LiL4LmI4LmA4Lia4LmJDQor4LiI4Li44Lis4Liy4Lil4Lix4LiB4Lip4LiT4LmMIOC4meC4suC4h+C4quC4p+C4og0KK+C4iOC4uOC5hOC4oyDguIjguIfguJvguKPguLDguIrguLLguKfguLHguJLguJnguYwNCivguIjguLjguYTguKMg4Lie4Li04LmA4Lio4Lip4LiB4Li44LilDQor4LiI4Li44LmE4Lij4Lie4LijIOC4qOC4tOC4peC4m+C4nuC4h+C4qeC5jA0KK+C4iOC4uOC5hOC4o+C4o+C4seC4leC4meC5jCDguYDguJTguIrguYDguIjguKPguLTguI0NCivguIjguLjguYTguKPguKPguLHguJXguJnguYwg4Lih4Lir4Liy4Lit4Li04LiX4LiY4Li04LiU4LilDQor4LiI4Li44LmE4Lij4Lij4Lix4LiV4LiZ4LmMIOC4q+C4suC4jeC5hOC4iuC5guC4ouC4oOC4ueC4oeC4tA0KK+C4iOC4uOC5hOC4o+C4qOC4o+C4tSDguKHguLXguIHguLHguIfguKfguLLguKUNCivguIjguLkg4LmB4LiL4LmI4LmD4LiK4LmJDQor4LiI4Li54LmA4LiE4Li14LmJ4Lii4LiHIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4iOC5gOC4oyDguI3guLLguJPguLDguIrguLHguKINCivguIjguYDguKMg4Liq4Li04Lij4Li04Liq4Li44LiX4LiY4Li0DQor4LmA4LiI4LiU4LmH4LiIIOC4reC4o+C4o+C4luC4q+C4tOC4o+C4seC4jQ0KK+C5gOC4iOC4leC4meC4siDguKPguLHguIHguKnguYzguIHguLPguYDguJnguLTguJQNCivguYDguIjguJXguJnguYwg4Lie4Lij4Lir4Lih4LmA4LiI4Lij4Li04LiNDQor4LmA4LiI4LiZIOC4geC4suC4muC5geC4geC5ieC4pw0KK+C5gOC4iOC4mSDguK3guLTguJfguJjguLTguKDguLTguI3guYLguI0NCivguYDguIjguJnguIjguLTguKPguLIg4LiY4Lij4Lij4Lih4Lin4Lij4Lij4LiY4LiZ4LiwDQor4LmA4LiI4LiZ4LiZ4Li14LmIIOC4luC4suC4p+C4o+C4geC4uOC4pQ0KK+C5gOC4iOC4oeC4quC5jOC4reC4suC5gOC4mOC4reC4o+C5jCDguKLguK3guKPguYzguIoNCivguYDguIjguKPguLTguI0g4LmA4LiB4Lip4LiV4Lij4Liq4Li44Lin4Lij4Lij4LiTDQor4LmA4LiI4Lij4Li04LiNIOC4hOC4uOC4p+C4tOC4meC4l+C4o+C5jOC4nuC4seC4meC4mOC4uOC5jA0KK+C5gOC4iOC4o+C4tOC4jSDguIjguLTguKPguLDguKrguJbguLTguJXguKLguYwNCivguYDguIjguKPguLTguI0g4LiK4Lix4Lii4LiB4Li04LiV4LiV4Li0DQor4LmA4LiI4Lij4Li04LiNIOC5geC4i+C5iOC4geC4p+C4lA0KK+C5gOC4iOC4o+C4tOC4jSDguJXguLHguYnguIfguJrguLjguI3guKTguJfguJjguLTguYzguKTguJfguLHguKINCivguYDguIjguKPguLTguI0g4LiX4Lit4LiH4Lih4LiyDQor4LmA4LiI4Lij4Li04LiNIOC4meC4p+C4p+C4seC4kuC4meC4l+C4o+C4seC4nuC4ouC5jA0KK+C5gOC4iOC4o+C4tOC4jSDguJrguLjguKnguJrguKPguKPguJMNCivguYDguIjguKPguLTguI0g4Lic4Liy4LiZ4Li04LilDQor4LmA4LiI4Lij4Li04LiNIOC5gOC4nuC4teC4ouC4o+C5gOC4iOC4o+C4tOC4jQ0KK+C5gOC4iOC4o+C4tOC4jSDguYTguKHguJTguLTguJnguIvguLINCivguYDguIjguKPguLTguI0g4LmA4Lij4Li34Lit4LiH4Lio4Lix4LiB4LiU4Li04LmMDQor4LmA4LiI4Lij4Li04LiNIOC4p+C4quC4seC4meC4leC4ouC4suC4meC4seC4meC4l+C5jA0KK+C5gOC4iOC4o+C4tOC4jSDguKjguKPguLXguKfguIfguKjguYzguKnguLINCivguYDguIjguKPguLTguI0g4Liq4Lih4Lie4LijDQor4LmA4LiI4Lij4Li04LiNIOC4quC4uOC4guC4reC4suC4geC4suC4qA0KK+C5gOC4iOC4o+C4tOC4jSDguYLguKrguKrguLjguJQNCivguYDguIjguKPguLTguI0g4Lit4Li04LiZ4LiX4Lij4LmA4LiB4Lip4LiV4LijDQor4LmA4LiI4Lij4Li04LiN4LiK4Lix4LiiIOC4geC4suC4jeC4iOC4meC4nuC4tOC4muC4ueC4peC4ouC5jA0KK+C5gOC4iOC4o+C4tOC4jeC4iuC4seC4oiDguJ7guLTguKPguLTguKLguLDguJvguKPguLLguIHguLLguKMNCivguYDguIjguKPguLTguI3guJ7guIfguKjguYwg4Liq4Li44LiC4LiC4Li1DQor4LmA4LiI4Lij4Li04LiN4Lij4Lix4LiB4Lip4LmMIOC4m+C4peC4t+C5ieC4oeC4iOC4tOC4leC5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C5gOC4iOC4o+C4tOC4jeC4qOC4o+C4tSDguYLguIHguKHguKXguKTguJfguJjguLTguYwNCivguYDguIjguKPguLTguI3guKjguKPguLUg4Lig4Li54LmI4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LmA4LiI4Lij4Li04LiN4Lio4Lix4LiB4LiU4Li04LmMIOC4geC4seC4meC4leC4iuC4ueC5gOC4p+C4quC4qOC4tOC4o+C4tA0KK+C5gOC4iOC4o+C4tOC4jeC4quC4uOC4giDguIHguLTguIjguYDguIjguKPguLTguI0NCivguYDguIjguKPguLXguKLguIcg4Lie4Li44LiB4LiB4Liw4Lih4Liy4LiZDQor4LmA4LiI4Lip4LiO4LiyIOC4iuC4meC4tOC4meC4l+C4o+C4peC4teC4peC4sg0KK+C5gOC4iOC4qeC4juC4siDguJrguLjguI3guKfguLTguIjguLTguJXguKMNCivguYDguIjguKnguI7guLIg4LmA4Lij4Li34Lit4LiH4Lir4Li04Lij4Lix4LiNDQor4LmA4LiI4Lip4LiO4LiyIOC5geC4quC4h+C4quC4uOC4nuC4o+C4o+C4kw0KK+C5gOC4iOC4qeC4juC5jCDguK3guJnguKPguKPguIbguKHguIfguITguKUNCivguYDguIjguK3guKPguLXguYjguYDguKLguJkg4Lii4Li54LmA4LiK4LiZDQor4LmA4LiI4Li04LihIOC5gOC4lOC4iuC4lOC4s+C4o+C4h+C4hOC5jA0KK+C5gOC4iOC4tOC5ieC4hyDguYDguIjguLTguYnguIfguK3guLTguIcNCivguYDguIjguLXguKLguJkg4LiE4LiK4Liy4LiK4Lix4LiiDQor4LmA4LiI4Li14Lii4LihIOC5hOC4iuC4ouC4o+C4suC4ig0KK+C5gOC4iOC4teC4ouC4oeC4iOC4tOC4lSDguYHguIHguYnguKfguJnguYnguK3guKINCivguYDguIjguLXguKLguKHguIjguLTguJXguKMg4LmA4LiK4Lii4LiK4Li34LmI4LiZ4LiI4Li04LiV4LijDQor4LmA4LiI4Li14Lii4Lih4LmD4LiIIOC4l+C4sOC4peC4t+C4rQ0KK+C5gOC4iOC4teC4ouC4o+C4meC4seC4oiDguKfguIfguKnguLLguIHguLLguKgNCivguYDguIjguLXguKLguYDguITguLXguKLguIHguYDguKXguYnguIcg4LmB4LiL4LmI4LiB4Lix4LiHDQor4LmA4LiI4Li34LitIOC4l+C4seC4muC4qOC4o+C4tQ0KK+C5gOC4iOC4t+C4rSDguKrguLjguKfguKPguKPguJPguYDguIjguKPguLTguI0NCivguYDguIjguLfguK3guYDguIjguKPguLTguI0g4Liq4LiW4Liy4Lib4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4LiI4LmH4LiH4LmA4LiB4Li14LmK4Lii4LiBIOC5geC4i+C5iOC4peC4teC5iQ0KK+C5geC4iOC5iOC4oSDguYDguIHguJXguLjguKrguLTguIfguKvguYzguJnguYnguK3guKINCivguYHguIjguYjguKHguIjguLHguJnguJfguKPguYwg4Lib4Lij4Liy4LiK4LiN4Liy4Lin4Li04Lij4Li04Lii4LiwDQor4LmB4LiI4LmI4Lih4Lio4Lij4Li1IOC4reC4tOC4l+C4mOC4tOC4geC4uOC4pQ0KK+C5geC4iOC5i+C4pyDguIHguLXguKPguJXguLTguYTguIHguKPguJnguJnguJfguYwNCivguYPguIgg4LiI4Liy4LiV4Li44Lin4Li04LiX4Lii4LmMDQor4LmD4LiI4LiX4Li04Lie4Lii4LmMIOC4i+C4seC4hw0KK+C5g+C4iOC4reC4suC4o+C4tSDguKfguLTguKPguLTguKLguLLguJnguJnguJfguYwNCivguInguIHguLLguIgg4Lit4Liy4Lij4Li14LmA4Liq4Lin4LiVDQor4LiJ4Lil4Lin4LiiIOC4geC4seC4peC4ouC4suC4k+C4oeC4tOC4leC4ow0KK+C4ieC4peC4p+C4oiDguIjguLnguJHguLDguJ7guKUNCivguInguKXguKfguKIg4LiV4Lij4Li14LmA4Lie4LmH4LiK4Lij4LmMDQor4LiJ4Lil4Lin4LiiIOC4muC4uOC4jeC4oeC4sg0KK+C4ieC4peC4p+C4oiDguJ7guLHguJnguJjguYzguILguLDguKfguIfguKnguYwNCivguInguKXguKfguKIg4LmB4Lii4LmJ4Lih4LiB4Lil4Li14LiaDQor4LiJ4Lil4Lin4LiiIOC4qOC4o+C4teC4o+C4seC4leC4meC4sg0KK+C4ieC4peC4p+C4oiDguYHguKrguIfguK3guLjguJfguLHguKLguIjguLLguKHguKMNCivguInguKXguKfguKLguKXguLHguIHguKnguJPguYwg4LmA4Lij4Li34Lit4LiH4LiI4Li44LiV4Li04LmC4Lie4LiY4Li04LmM4Lie4Liy4LiZDQor4LiJ4Lil4Lit4LiHIOC4iOC4suC4o+C4uOC4nuC4seC4kuC4meC4geC4uOC4pQ0KK+C4ieC4peC4reC4hyDguJfguKPguLHguJ7guKLguYzguKrguLTguJkNCivguInguKXguK3guIcg4LmD4Lia4LmA4LiH4Li04LiZDQor4LiJ4Lil4Lit4LiHIOC4oeC4ueC4peC5gOC4iOC4o+C4tOC4jQ0KK+C4ieC4peC4reC4hyDguKjguLLguKrguJXguKPguKrguLjguIINCivguInguKXguK3guIcg4Lit4LiI4Lil4Lie4LiH4Lio4LmMDQor4LiJ4Lil4Lit4LiH4Lie4LijIOC4qOC4seC4geC4lOC4tOC5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4ieC4peC4reC4oSDguYHguKrguIfguJnguKPguLTguJnguJfguKPguYwNCivguInguKXguLLguJQg4Lib4Liy4LiZ4LmA4LiI4Lij4Li04LiNDQor4LiJ4Lil4Liy4LiUIOC4reC4meC4seC4meC4leC4sg0KK+C4ieC4p+C4tSDguIjguLHguJnguJfguKPguILguLMNCivguInguKfguLUg4LmA4LiZ4Li34LmJ4Lit4LiZ4Li04LmI4Lih4LiW4Liy4Lin4LijDQor4LiJ4Lin4Li1IOC4p+C4seC4kuC4meC4p+C4tOC4geC4ouC5jOC4geC4tOC4iA0KK+C4ieC4p+C4tSDguK3guLLguKPguKLguLLguIfguIHguLnguKMNCivguInguKfguLXguKfguKPguKPguJMg4LiC4LiI4Lij4Lib4Lij4Liw4Lio4Liy4Liq4LiZ4LmMDQor4LiJ4Lin4Li14Lin4Lij4Lij4LiTIOC5geC4iOC5ieC4h+C4oeC4k+C4tQ0KK+C4ieC4p+C4teC4p+C4o+C4o+C4kyDguJXguLHguJnguJXguLTguJ7guLTguKrguLTguJfguJjguLTguYwNCivguInguKfguLXguKfguKPguKPguJMg4LiZ4Lij4Liy4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4LiJ4Lin4Li14Lin4Lij4Lij4LiTIOC4m+C4suC4meC4lOC4sw0KK+C4ieC4p+C4teC4p+C4o+C4o+C4kyDguKDguLTguI3guI3guLLguJjguLTguJnguLHguJnguJfguYwNCivguInguKfguLXguKfguKPguKPguJMg4Lil4Liy4Lig4LmA4LiI4Li14Lii4LihDQor4LiJ4Lin4Li14Lin4Lij4Lij4LiTIOC4qOC4o+C4quC4seC4h+C4guC5jOC4l+C4reC4hw0KK+C4ieC4p+C4teC4p+C4o+C4o+C4kyDguKrguLTguJfguJjguLTguJ7guKPguJjguJnguIHguLjguKUNCivguInguKfguLXguKfguKPguKPguJMg4LmA4Lir4Lil4LmI4Liy4Lie4Li04LiX4Lii4LiyDQor4LiJ4Lin4Li14LmE4LilIOC4o+C4reC4lOC4nuC4peC4reC4og0KK+C4ieC4reC5ieC4reC4mSDguJnguK3guIHguIHguKPguLDguYLguJfguIENCivguInguK3guYnguLLguJkg4Lin4Li44LiR4LiS4Li04LiB4Lij4Lij4Lih4Lij4Lix4LiB4Lip4LiyDQor4LiJ4Lix4LiQ4Lie4LilIOC4iOC4o+C4seC4quC4oeC4h+C4hOC4peC5gOC4iOC4o+C4tOC4jQ0KK+C4ieC4seC4leC4oyDguKDguLLguITguLLguIHguLTguIgNCivguInguLHguJXguKPguIrguLHguKIg4LmB4LiB4LmJ4Lin4LmA4LiB4LiV4Li4DQor4LiJ4Lix4LiV4Lij4LiK4Lix4LiiIOC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C4ieC4seC4leC4o+C4iuC4seC4oiDguYDguJTguIrguLLguKjguLHguIHguJTguLTguYzguJ7guKPguKPguJMNCivguInguLHguJXguKPguIrguLHguKIg4LiY4Lij4Lij4Lih4Liq4Lin4Lii4LiU4Li1DQor4LiJ4Lix4LiV4Lij4LiK4Lix4LiiIOC4nuC4iOC4meC4suC4geC4s+C4mOC4ow0KK+C4ieC4seC4leC4o+C4iuC4seC4oiDguYHguKLguYnguKHguYHguKrguIfguJfguK3guIcNCivguInguLHguJXguKPguIrguLHguKIg4Lin4Lix4Lil4Lil4Li04Liq4Li44LiVDQor4LiJ4Lix4LiV4Lij4LiK4Lix4LiiIOC4quC4tOC4o+C4tOC4m+C4ueC4iuC4geC4sA0KK+C4ieC4seC4leC4o+C4iuC4seC4oiDguK3guLHguKjguKfguJvguJXguLTguJnguLLguITguLTguJnguJfguKPguYwNCivguInguLHguJXguKPguJfguLTguJ7guKLguYwg4Liq4Lin4Lix4Liq4LiU4Li04LmE4LiK4LiiDQor4LiJ4Lix4LiV4Lij4Lih4LiZ4LiyIOC4oeC4h+C4hOC4peC4geC4tOC4iOC4oOC4seC4geC4lOC4tQ0KK+C4ieC4seC4leC4o+C4siDguIrguLjguKHguKDguLnguJfguK3guIcNCivguInguLHguJXguKPguYTguIrguKIg4Lit4Liy4LiT4Liy4Lin4Lij4Lij4LiTDQor4LiJ4Lix4LiZ4LiX4LiZ4LiyIOC4iOC4seC4h+C4qOC4o+C4teC4ouC4p+C4h+C4qOC5jA0KK+C4ieC4seC4meC4l+C4meC4siDguJfguK3guIfguJjguLnguJsNCivguInguLHguJnguJfguJnguLIg4Lie4Li04Lih4Lil4Liq4Lih4Lia4Lix4LiV4Li0DQor4LiJ4Lix4LiZ4LiX4LiZ4LiyIOC4p+C4seC4iuC4o+C5gOC4quC4p+C4tQ0KK+C4ieC4seC4meC4l+C4meC4siDguKvguIfguKnguYzguYDguInguLTguJTguInguLHguJnguJfguYwNCivguInguLHguJnguJfguYzguKrguLTguJnguLUg4LiX4Li04Lie4Lio4LijDQor4LiJ4Lix4LmI4LiZ4LiB4Li04LmK4LihIOC5geC4i+C5iOC4ieC4seC5iOC4mQ0KK+C4ieC4suC4oiDguKrguLTguIfguKvguYzguYPguKvguI3guYgNCivguInguLTguJnguIHguLXguYnguJ/guK3guIcg4LmB4LiL4LmI4LiJ4Li04LiZDQor4LmA4LiJ4LiZ4Li14Lii4LiZIOC5gOC4quC4meC4p+C4h+C4qeC5jA0KK+C5gOC4ieC4peC4oiDguKrguKHguLTguJXguLDguKHguLLguJkNCivguYDguInguKXguLIg4LiI4Li04Lij4Liw4LiK4Li14Lin4Liw4LiZ4Lix4LiZ4LiX4LmMDQor4LmA4LiJ4Lil4LiyIOC5gOC4m+C4teC5iuC4ouC4sOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C5gOC4ieC4peC4siDguKfguLXguKPguLDguIHguLjguKUNCivguYDguInguKXguLLguKjguKPguLUg4LiX4Lij4Lij4Lie4Lin4Liy4LiX4Li04LiZDQor4LmA4LiJ4Lil4Li04LihIOC4guC4s+C4m+C4seC4jeC4jeC4sg0KK+C5gOC4ieC4peC4tOC4oSDguYHguIjguYjguKHguIjguLPguKPguLHguKoNCivguYDguInguKXguLTguKEg4LiU4Li14Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LmA4LiJ4Lil4Li04LihIOC4mOC4suC4lOC4suC4m+C4o+C4sOC4lOC4seC4muC4quC4geC4uOC4pQ0KK+C5gOC4ieC4peC4tOC4oSDguJvguLHguI3guI3guLINCivguYDguInguKXguLTguKEg4Lie4Li04Liq4Li04Lip4LiQ4LmM4Liq4Lix4LiH4LiG4LiB4Liy4LijDQor4LmA4LiJ4Lil4Li04LihIOC4ouC4h+C4hOC5jOC5gOC4iOC4o+C4tOC4jeC4iuC4seC4og0KK+C5gOC4ieC4peC4tOC4oSDguKXguLfguK3guKrguLHguKHguJ7guLHguJnguJjguYwNCivguYDguInguKXguLTguKEg4Lio4Li04Lij4Li04Lin4LiH4Lio4LmMDQor4LmA4LiJ4Lil4Li04LihIOC4quC4uOC4guC4uOC4oeC4nuC4suC4meC4tOC4ig0KK+C5gOC4ieC4peC4tOC4oSDguK3guIfguITguYzguKjguLjguKXguLUNCivguYDguInguKXguLTguKHguILguKfguLHguI0g4LiK4Li54LiE4LizDQor4LmA4LiJ4Lil4Li04Lih4LiK4Lix4LiiIOC4iOC4seC4meC4l+C4o+C4p+C4tOC4o+C4uOC4iA0KK+C5gOC4ieC4peC4tOC4oeC4iuC4seC4oiDguJfguKPguLHguJ7guKLguYzguKrguK3guJkNCivguYDguInguKXguLTguKHguIrguLHguKIg4LmC4Lie4LiY4Li04LmM4LiX4Lit4LiHDQor4LmA4LiJ4Lil4Li04Lih4LiK4Lix4LiiIOC4qOC4o+C4teC4reC4tOC4meC4l+C4meC4meC4l+C5jA0KK+C5gOC4ieC4peC4tOC4oeC4iuC4seC4oiDguK3guLjguJTguKHguKPguLHguJXguJnguYwNCivguYDguInguKXguLTguKHguJ7guIfguKnguYwg4Lih4Lir4Liy4Lin4Liy4LiT4Li04LiK4Lii4LmM4Lin4LiH4Lio4LmMDQor4LmA4LiJ4Lil4Li04Lih4Lie4LijIOC5gOC4p+C4iuC5gOC4ieC4peC4tOC4oeC4iOC4tOC4leC4ow0KK+C5gOC4ieC4peC4tOC4oeC4nuC4pSDguJDguLTguJXguLTguJnguLHguJnguJfguYzguJbguLLguKfguKMNCivguYDguInguKXguLTguKHguJ7guKUg4Lie4Liy4LiZ4Li04LiK4Lii4Liy4LiZ4Li44Lin4Lix4LiS4LiZ4LmMDQor4LmA4LiJ4Lil4Li04Lih4Lie4LilIOC4quC4o+C5ieC4suC4h+C4quC4oeC4quC4uOC4guC4quC4geC4uOC4pQ0KK+C5gOC4ieC4peC4tOC4oeC4oeC4suC4lSDguKXguLTguKHguJvguLTguIrguLHguKLguJ7guLLguJnguLTguIoNCivguYDguInguKXguLTguKHguKfguLjguJgg4LiL4Li34LmI4Lit4LiV4Lij4LiHDQor4LmA4LiJ4Lil4Li04Lih4Lio4Lij4Li1IOC5gOC4l+C4teC4ouC4oeC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C5gOC4ieC4peC4tOC4oeC4qOC4o+C4tSDguKfguLTguKfguLHguJLguJnguYzguKfguLLguJnguLTguIrguIHguLjguKUNCivguYDguInguKXguLTguKHguKjguLHguIHguJTguLTguYwg4LiE4LiH4LmA4Lij4Li34Lit4LiH4Lio4Lij4Li1DQor4LmA4LiJ4Lil4Li04Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4o+C4sOC4muC4tOC4peC4p+C4h+C4qOC5jA0KK+C5gOC4ieC4peC4tOC4oeC4reC4seC4keC4kuC5jCDguIHguYnguK3guJnguJfguK3guIcNCivguYDguInguKXguLTguKHguYDguIHguLXguKLguKPguJXguLQg4Liq4Lix4LiZ4LiV4Li04Lie4Lix4LiZ4LiY4Li44LmMDQor4LmA4LiJ4Lil4Li14Lii4LinIOC4geC4peC4tOC5iOC4meC4meC4tOC5iOC4oeC4meC4p+C4pQ0KK+C5gOC4ieC4peC4teC4ouC4pyDguIjguIfguJvguKPguLDguKrguKHguKrguLTguJkNCivguYDguInguKXguLXguKLguKcg4LmB4LiL4LmI4LmA4LiV4Li14LiiDQor4LmA4LiJ4Lil4Li14Lii4LinIOC5hOC4l+C4ouC5gOC4iOC4t+C4rQ0KK+C5gOC4ieC4peC4teC4ouC4pyDguJvguKPguLbguIHguKnguLINCivguYDguInguKXguLXguKLguKcg4LmA4Lie4LiK4Lij4LiC4LizDQor4LmA4LiJ4Lil4Li14Lii4LinIOC4o+C4reC4lOC5gOC4lOC4ig0KK+C5gOC4ieC4peC4teC4ouC4pyDguKjguKPguLXguKvguLLguKfguIfguKjguYwNCivguYDguInguKXguLXguKLguKcg4LmB4Liq4LiH4LiB4Li04LiV4LiV4Li04LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4LmA4LiJ4Lil4Li14Lii4LinIOC5gOC4reC4teC5iOC4ouC4oeC4ouC4reC4lOC4quC4tOC4mQ0KK+C5gOC4ieC4p+C4teC4ouC4mSDguITguLPguYDguJnguJXguKMNCivguYDguInguLTguJTguYLguInguKEg4Liq4Li44LiB4LiB4Liq4Lix4LiH4LiE4LmMDQor4LmB4LiJ4Lil4LmJ4LihIOC4geC4o+C4sOC4luC4tOC4meC4l+C4reC4hw0KK+C5geC4ieC4peC5ieC4oSDguYLguIrguJXguLTguIrguYjguKfguIcNCivguYHguInguKXguYnguKEg4Lic4Li54LiB4Lie4Lix4LiZ4LiY4LmMDQor4LmB4LiJ4Lil4LmJ4LihIOC4p+C4tOC4iuC4uOC4m+C4o+C4sOC4oOC4sg0KK+C5geC4ieC4peC5ieC4oSDguK3guLjguKjguLjguKDguKPguLHguJXguJnguYwNCivguYLguInguKHguKLguIfguITguYwg4LiZ4Liy4LiE4LiZ4Li24LiBDQor4LmC4LiJ4Lil4LiHIOC4geC4peC4seC5iOC4meC4l+C4o+C4seC4nuC4ouC5jA0KK+C5hOC4ieC4mSDguJ7guKXguLXguILguLHguJnguJjguYwNCivguYTguInguYTguKUg4LiB4Li44Lil4Lig4Lix4LiX4Lij4LmM4LmB4Liq4LiH4LiX4Lit4LiHDQor4LiKIOC4p+C4o+C4seC4leC4meC5jA0KK+C4iuC4jeC4suC4meC4tSDguJXguKPguLXguJfguLTguJ7guKLguLLguIfguIHguLnguKMNCivguIrguI7guLLguJ7guKMg4Lih4Lix4LiZ4Lii4Liy4LiB4Li44LilDQor4LiK4LiO4Liy4Lin4Lix4Lil4Lii4LmMIOC4o+C4t+C5iOC4meC4p+C4h+C4qeC4sg0KK+C4iuC4k+C4tOC4leC4siDguITguIfguKrguLLguKLguJfguK3guIfguITguLMNCivguIrguJTguIrguYnguK3guKIg4Lie4Lin4LiH4Lij4Lit4LiUDQor4LiK4LiZ4LiB4Lie4LijIOC5gOC4o+C4t+C4reC4h+C4geC4tOC4iOC4m+C4geC4o+C4k+C5jA0KK+C4iuC4meC4oeC5jOC4meC4tOC4oOC4siDguJnguLLguITguKLguYnguK3guKINCivguIrguJnguLAg4LiI4Lix4LiZ4LiX4Lij4LmM4LiB4Lij4Liw4LiI4LmI4Liy4LiHDQor4LiK4LiZ4LiwIOC5gOC4l+C4nuC4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jA0KK+C4iuC4meC4sCDguYDguKLguLXguYjguKLguIfguIHguKHguKXguKrguLTguIfguKvguYwNCivguIrguJnguLAg4Lir4LiZ4Li44LiZ4Lig4Lix4LiB4LiU4Li1DQor4LiK4LiZ4Liw4LiK4Lix4LiiIOC4oOC4ueC5iOC4oeC4teC5gOC4iOC4o+C4tOC4jQ0KK+C4iuC4meC4seC4iuC4k+C5jCDguIjguLHguJnguJfguKPguYDguIjguKPguLTguI0NCivguIrguJnguLHguJXguJbguYwg4LiB4Li04LiV4LiV4Li04Lin4Li04LmC4Lij4LiI4LiZ4LmMDQor4LiK4LiZ4Liy4LiN4Lin4Lix4LiVIOC4iOC4tOC4leC4o+C5jOC4oOC4tOC4o+C4oeC4ouC5jOC4qOC4o+C4tQ0KK+C4iuC4meC4suC4nuC4oyDguIrguLnguJfguLTguKENCivguIrguJnguLTguIHguLLguJnguJXguYwg4LiX4Liy4LiE4Liz4Lih4LiyDQor4LiK4LiZ4Li04LiU4LiyIOC4hOC4o+C4uOC4keC4l+C4reC4hw0KK+C4iuC4meC4tOC4lOC4siDguJXguLLguJPguLDguKrguLjguJUNCivguIrguJnguLTguJTguLIg4LmC4Lig4LmE4LiE4Lio4Lin4Lij4Lij4Lii4LmMDQor4LiK4LiZ4Li04LiU4LiyIOC4qOC4tOC4o+C4tOC4o+C4seC4leC4meC4geC4uOC4pQ0KK+C4iuC4meC4tOC4lSDguKfguLTguJfguKLguLLguIHguKPguYLguIHguKHguKUNCivguIrguJnguLTguJnguJfguKMg4Lio4Lij4Li14Lij4Lix4LiV4LiZ4LmM4Lig4Li04LiN4LmC4LiNDQor4LiK4LiZ4Li04LiZ4LiX4Lij4LmMIOC4iuC4teC4p+C5guC4iuC4hOC4iuC4seC4og0KK+C4iuC4meC4tOC4meC4l+C4o+C5jCDguJvguLTguKLguLDguKfguLLguJPguLTguIrguYDguKrguJbguLXguKLguKMNCivguIrguJnguLTguJnguJfguKPguYwg4Lin4Li04LmA4Lio4Lip4LiU4Lix4LmJ4LiZDQor4LiK4LiZ4Li04LiZ4LiX4Lij4LmMIOC4reC4seC4qOC4p+C4mOC5gOC4o+C4qA0KK+C4iuC4meC4uOC4p+C4o+C4o+C4kyDguJXguKPguLXguYDguIHguKnguKENCivguIrguKEg4LmB4LiL4LmI4LiV4Lix4LiZDQor4LiK4LihIOC4quC4teC5geC4iOC5iOC4oQ0KK+C4iuC4oeC4meC4suC4hCDguYDguIjguKPguLTguI3guIHguLjguKUNCivguIrguKHguJ7guKUg4Liq4Li04Lij4Li04Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmM4LmA4LiI4Lij4Li04LiNDQor4LiK4Lih4Lie4Li54LiZ4Li44LiXIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4iuC4oeC4oOC4uSDguIrguKHguKDguLnguJnguLjguIoNCivguIrguKHguKDguLnguYgg4Lie4Lij4Lih4Lie4Li54LiZ4Lie4Liw4LmA4LiZ4LiyDQor4LiK4Lih4Lix4Lii4Lie4LijIOC4hOC4s+C4q+C4reC4oeC4geC4uOC4pQ0KK+C4iuC4ouC4l+C4seC4lSDguKPguJXguLTguKPguKHguKLguYzguJ7guLHguJnguJjguYwNCivguIrguKLguLHguJnguJXguYwg4LmC4Lie4LiY4Li04LmM4LiX4Lit4LiHDQor4LiK4Lii4Liy4Lin4Li44LiYIOC4l+C4tOC4p+C5gOC4quC4luC4teC4ouC4ow0KK+C4iuC4o+C4seC4leC4meC5jCDguJXguYjguK3guK3guYjguK3guJkNCivguIrguKPguLTguJnguJfguKPguYwg4LiB4LiZ4LiB4Lie4Li04Lie4Lix4LiS4LiZ4LmM4Lin4LiH4Lio4LmMDQor4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC4muC4seC4p+C4reC5iOC4reC4mQ0KK+C4iuC4o+C4tOC4meC4l+C4o+C5jCDguKrguKfguJnguYDguIjguKPguLTguI0NCivguIrguKTguJfguJjguLTguYwg4Lih4Li14Liq4Li04LiX4LiY4Li04LmMDQor4LiK4Lil4LiU4LiyIOC4m+C4tOC4ouC4k+C4o+C4h+C4hOC5jOC5guC4o+C4iOC4meC5jA0KK+C4iuC4peC4mOC4meC4seC4meC4l+C5jCDguYDguK3guLfguYnguK3guJvguKPguLDguIHguLTguIjguKrguLTguKPguLQNCivguIrguKXguJjguLTguIrguLIg4LmC4LiK4LiV4Li04LiK4LmI4Lin4LiHDQor4LiK4Lil4LiY4Li04LiK4LiyIOC4oeC4q+C4suC4geC4tOC4iOC4qOC4tOC4o+C4tA0KK+C4iuC4peC4mOC4tOC4lOC4siDguJjguKPguKPguKHguKfguLHguJLguJnguYzguKfguLTguKHguKUNCivguIrguKXguJnguLTguIrguLIg4LmA4LiI4Lij4Li04LiN4Liq4Lih4Lia4Lix4LiV4Li0DQor4LiK4Lil4Lil4LiU4LiyIOC4iOC4h+C4m+C4leC4tOC4ouC4seC4leC4leC5jA0KK+C4iuC4peC4peC4lOC4siDguKjguLTguKPguLTguJ7guIfguKjguYzguKrguLHguKHguJ7guLHguJnguJjguYwNCivguIrguKXguK0g4LiB4Lij4Li14LiK4Lin4LiUDQor4LiK4Lil4LitIOC4h+C4suC4oeC4pOC4l+C4mOC4tOC5jA0KK+C4iuC4peC4rSDguYHguIvguYjguYDguKXguYnguLINCivguIrguKXguK0g4LiZ4Li04LmI4Lih4LiX4Lit4LiHDQor4LiK4Lil4LitIOC4nuC4h+C4qeC5jOC4oOC4oeC4ow0KK+C4iuC4peC4rSDguKHguKvguLLguK3guKHguKPguYDguKXguLTguKgNCivguIrguKXguK0g4Lin4Li04Lih4Li54Lil4LiK4Liy4LiV4Li0DQor4LiK4Lil4LitIOC4quC4uOC4iOC4tOC4leC4mOC4o+C4o+C4oeC4p+C4h+C4qOC5jA0KK+C4iuC4peC4rSDguK3guLjguJvguLDguYDguJTguLXguKINCivguIrguKXguLHguIog4LmA4LiX4Lie4Lih4LmC4LiZ4LiX4Lix4Lii4Liq4LiB4Li44LilDQor4LiK4Lil4Lix4Lih4Lie4LijIOC4mOC4o+C4o+C4oeC5gOC4meC4teC4ouC4oeC4iOC4seC4lA0KK+C4iuC4peC4suC4oOC4o+C4k+C5jCDguKrguJbguLLguJ7guKPguJjguJnguLLguKrguLTguJkNCivguIrguKXguLTguJTguLIg4LiE4LiH4Lij4Lix4LiV4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiK4Lil4Li04LiVIOC4guC4teC4leC4leC4sOC4quC4seC4h+C4hOC4sA0KK+C4iuC4peC4tOC4lSDguJfguK3guIfguKHguJPguLUNCivguIrguKXguLTguJUg4Lil4Li04LmJ4Lih4Lij4Liq4Liq4Li44LiE4LiZ4LiY4LmMDQor4LiK4Lil4Li04LiVIOC4reC4suC4iuC4suC5hOC4meC4ouC4geC4uOC4pQ0KK+C4iuC4peC4tOC4meC4l+C4oyDguK3guJnguLjguJXguKPguJ7guKMNCivguIrguKXguLXguJ7guKMg4Lij4Lix4LiB4Lie4Li34LiKDQor4LiK4Lin4LiK4Liy4LiV4Li0IOC5g+C4iOC5gOC4nuC5h+C4iuC4ow0KK+C4iuC4p+C4mSDguYLguIrguJXguLTguIjguLLguKPguLjguYTguIrguKLguLINCivguIrguKfguJkg4Lie4LiX4LiY4LmC4LiB4Liq4Lix4LiiDQor4LiK4Lin4LiZIOC4qOC4tOC4o+C4tOC4geC4tOC4iA0KK+C4iuC4p+C4meC4iuC4oSDguIjguLHguJnguJfguKPguLDguYDguJvguLLguKPguKLguLANCivguIrguKfguJnguIrguLfguYjguJkg4LiB4Lij4Liy4Lie4LiH4Lip4LmMDQor4LiK4Lin4LiZ4Lie4Li04LioIOC4h+C4suC4oeC4guC4sw0KK+C4iuC4p+C4meC4nuC4tOC4qCDguYDguJnguKHguLUNCivguIrguKfguJnguJ7guLTguKgg4Lin4Li04Lij4Lii4Lio4Li04Lij4Li0DQor4LiK4Lin4LiZ4Lix4LiK4Lii4LmMIOC4iOC4o+C4o+C4ouC4suC4qOC4seC4geC4lOC4tOC5jA0KK+C4iuC4p+C4o+C4seC4leC4meC5jCDguJrguKfguJrguJfguK3guIcNCivguIrguKfguKXguLTguJUg4LmA4LiB4LiV4Li44Lie4LilDQor4LiK4Lin4Lil4Li04LiVIOC4iOC4seC4meC4l+C4o+C4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4iuC4p+C4peC4tOC4lSDguIrguKfguKXguLTguJXguKrguLjguJnguJfguKMNCivguIrguKfguKXguLTguJUg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4LiK4Lin4Lil4Li04LiVIOC4l+C4o+C4h+C4qOC4o+C4iuC4seC4og0KK+C4iuC4p+C4peC4tOC4lSDguJnguLTguJjguLLguIHguKMNCivguIrguKfguKXguLTguJUg4Lib4Lix4LiN4LiN4Liy4Liq4LiH4LiE4LmMDQor4LiK4Lin4Lil4Li04LiVIOC4nuC4uOC4meC4l+C4tOC4geC4suC4nuC4seC4l+C4mOC5jA0KK+C4iuC4p+C4peC4tOC4lSDguKHguLXguYHguIHguYnguKfguJnguYnguK3guKINCivguIrguKfguKXguLTguJUg4Lil4Li04Lih4Lib4Li04Lic4Lil4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4LiK4Lin4Lil4Li04LiVIOC4p+C4tOC4o+C4tOC4ouC4sOC4reC4suC4oOC4o+C4k+C5jA0KK+C4iuC4p+C4peC4tOC4lSDguKrguYjguKfguJnguYDguKjguKPguKnguJDguLINCivguIrguKfguKXguLTguJUg4LmA4Liq4LiZ4Liy4LiC4Lix4LiZ4LiY4LmMDQor4LiK4Lin4Lil4Li04LiVIOC4reC5iOC4reC4meC5gOC4oeC4t+C4reC4hw0KK+C4iuC4p+C4peC4tSDguJvguLHguI3guIjguLLguIfguITguYzguYDguIjguKPguLTguI0NCivguIrguKfguLLguKUg4LmA4LiC4Lih4Liw4Lil4Li04Lil4Li04LiVDQor4LiK4Lin4Liy4Lil4LiyIOC4quC4uOC4p+C4o+C4o+C4k+C4iuC4teC4ng0KK+C4iuC5iOC4p+C4hyDguIHguLjguKXguKfguKPguKPguJPguKfguLTguIjguLTguJXguKMNCivguIrguYjguKfguIfguYLguIrguIQg4LiX4Lit4LiH4Lit4Lii4Li54LmIDQor4LiK4LmJ4Lin4LiZIOC4muC4seC4p+C4l+C4reC4hw0KK+C4iuC4reC4miDguITguLjguYnguKHguKrguJXguLQNCivguIrguK3guJog4Lie4Lij4Lir4Lih4LmA4LiU4LiKDQor4LiK4Lit4Lia4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4quC5h+C4h+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4iuC4reC4uOC5iOC4oSDguYTguKfguJfguKLguLLguITguKENCivguIrguYjguK0g4Lit4Lii4Li54LmI4Lia4Lix4LinDQor4LiK4LmI4Lit4LiX4Li04Lie4Lii4LmMIOC5gOC4l+C4qOC4m+C4o+C4sOC4quC4h+C4hOC5jA0KK+C4iuC5iOC4reC4l+C4tOC4nuC4ouC5jCDguKvguLTguKPguLHguI3guKfguIfguKnguYwNCivguIrguYjguK3guKXguLHguJTguJTguLIg4LiZ4LiZ4LiX4Lin4Lix4LiS4LiZ4LmMDQor4LiK4LmJ4Lit4LiH4Liu4Lin4LiiIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4h+C4o+C4seC4leC4meC4iuC4seC4og0KK+C4iuC5ieC4reC4ruC4seC5ieC4pyDguKrguKHguKjguLTguKPguLTguKfguLHguJLguJnguLINCivguIrguLDguKXguK0g4Lio4Lij4Li14LmA4LiH4Li04LiZ4Lii4Lin4LiHDQor4LiK4Liw4LmA4Lil4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4iuC4t+C5ieC4reC4reC4o+C4p+C4o+C4o+C4kw0KK+C4iuC4sOC5guC4reC4lCDguJfguKPguLHguJ7guKLguYzguIHguKXguYnguLINCivguIrguLHguYnguIfguIHguLTguKEg4LmB4LiL4LmI4LmC4LiBDQor4LiK4Lix4LiK4LiK4LiZ4LiBIOC4qOC4uOC4oOC4nOC4peC4luC4suC4p+C4ow0KK+C4iuC4seC4iuC4iuC4seC4oiDguJrguLjguI3guKLguLfguJnguKLguIfguKrguIHguLjguKUNCivguIrguLHguIrguIrguLLguKIg4Lin4LiH4Lio4LmM4Liq4LiH4Lin4LiZDQor4LiK4Lix4LiK4Lie4LiH4Lip4LmMIOC5guC4q+C4leC4sOC4o+C4sOC4oOC4p+C4suC4meC4meC4l+C5jA0KK+C4iuC4seC4iuC4p+C4o+C4o+C4kyDguKjguLTguKPguLTguJrguKPguKPguIjguIfguKjguLHguIHguJTguLTguYwNCivguIrguLHguIrguKfguLLguKUg4LiK4Li54LiK4Lix4Lii4Lie4Li04LmA4LiK4LiQDQor4LiK4Lix4LiK4Lin4Liy4LilIOC4m+C4tOC4ouC4sOC4m+C4o+C4sOC4nuC4seC4meC4mOC5jOC4nuC4h+C4qeC5jA0KK+C4iuC4seC4iuC4p+C4suC4pSDguKfguLTguKPguLTguKLguLDguYDguIjguKPguLTguI3guKHguIfguITguKUNCivguIrguLHguIrguKfguLLguKUg4LmA4Lit4Li14LmI4Lii4Lih4Lie4Li04Lig4Lix4LiB4LiU4Li04LmMDQor4LiK4Lix4LiK4Lin4Liy4Lil4Lii4LmMIOC5gOC4iOC4o+C4tOC4jeC4quC4p+C4o+C4o+C4ouC4sg0KK+C4iuC4seC4iuC4p+C4suC4peC4ouC5jCDguYDguJXguYfguKHguKTguJfguJjguLTguKfguIfguKjguYwNCivguIrguLHguIrguKfguLLguKXguKLguYwg4Lib4Liy4Lii4Liw4LiZ4Lix4LiZ4LiX4Lii4LmMDQor4LiK4Lix4LiK4Lin4Liy4Lil4Lii4LmMIOC5gOC4oeC4huC4ieC4suC4og0KK+C4iuC4seC4iuC4p+C4suC4peC4ouC5jCDguKfguLjguJLguLTguJvguKPguLDguYDguKrguKPguLTguJANCivguIrguLHguIrguKfguLLguKXguKLguYwg4Liq4Li44Lin4Li04Lij4Li04Lii4Liw4LmE4Lie4Lio4Liy4LilDQor4LiK4Lix4LiK4Liq4Lih4LijIOC4iuC4uOC4meC4q+C4iuC4seC4og0KK+C4iuC4seC4lOC4iuC4seC4oiDguJvguLLguJnguJnguLLguIQNCivguIrguLHguYnguJkg4LiI4Li54LiZ4LmJ4Lit4LiiDQor4LiK4Lix4LmJ4LiZIOC4pOC4l+C4mOC4tOC5jOC4q+C4tOC4o+C4seC4jQ0KK+C4iuC4seC4oiDguILguKHguLTguYnguJnguJzguIcNCivguIrguLHguKIg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4LiK4Lix4LiiIOC4oeC4meC4seC4quC4qOC4tOC4o+C4tOC5gOC4nuC5h+C4jQ0KK+C4iuC4seC4oiDguKrguLjguKPguKrguLTguJfguJjguLTguYwNCivguIrguLHguKLguIHguLTguIgg4Lit4Li44LiX4Lix4Lii4Lin4Lix4LiT4LiZ4LmMDQor4LiK4Lix4Lii4LiK4LiZ4LiwIOC4nuC4seC4meC4mOC4uOC5jOC4oOC4seC4geC4lOC4teC4lOC4tOC4quC4geC4uOC4pQ0KK+C4iuC4seC4ouC4iuC4suC4jSDguIjguLnguIfguYDguIjguKPguLTguI3guIjguLTguJXguJXguYwNCivguIrguLHguKLguIrguLLguI0g4Liq4Li04Lij4Li04Lih4LiH4LiE4Lil4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4LiK4Lix4Lii4LiT4Lij4LiH4LiE4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4quC4p+C5iOC4suC4hw0KK+C4iuC4seC4ouC4k+C4o+C4h+C4hOC5jCDguJjguJnguLLguKrguKHguJrguLnguKPguJPguYzguJzguKUNCivguIrguLHguKLguJPguKPguIfguITguYwg4LmA4Lih4LiY4Li14Lij4Liw4Lin4Lix4LiS4LiZ4LmMDQor4LiK4Lix4Lii4LiT4Lij4LiH4LiE4LmMIOC4quC4meC4mOC4tOC4m+C4seC4jeC4jeC4suC4geC4uOC4pQ0KK+C4iuC4seC4ouC4lOC4tOC4qeC4kOC5jCDguKLguIfguJrguKPguKPguYDguIjguLTguJQNCivguIrguLHguKLguJjguKfguLHguIog4LiZ4Liy4LiE4Liw4LiZ4LiE4LijDQor4LiK4Lix4Lii4LiZ4Lix4LiZ4LiX4LmMIOC4p+C4tOC4quC4ueC4leC4o+C5gOC4o+C4t+C4reC4h+C5gOC4lOC4ig0KK+C4iuC4seC4ouC4m+C4tOC4leC4tCDguKHguYjguKfguIfguIHguLnguKUNCivguIrguLHguKLguJ7guIjguJnguYwg4LiJ4Lix4LiV4Lij4Lio4Lij4Li14LiZ4Lie4LiE4Li44LiTDQor4LiK4Lix4Lii4Lie4LijIOC5hOC4iuC4ouC4p+C4uOC4kuC4tOC5gOC4quC4o+C4tQ0KK+C4iuC4seC4ouC4nuC4oyDguJvguKPguLDguYDguKrguKPguLTguJDguIHguLHguJnguKLguYwNCivguIrguLHguKLguJ7guKMg4Lij4Lix4LiV4LiZ4LmA4Lih4LiY4Liy4LiZ4LiZ4LiX4LmMDQor4LiK4Lix4Lii4Lie4LijIOC4quC4oeC5g+C4iOC4meC4tuC4gQ0KK+C4iuC4seC4ouC4nuC4pOC4geC4qeC5jCDguYHguIHguYnguKfguIHguKHguKUNCivguIrguLHguKLguJ7guLHguJnguJjguLjguYwg4Lib4Lij4Liw4Lii4Li54Lij4Lin4Lij4Lij4LiTDQor4LiK4Lix4Lii4Lih4LiH4LiE4LilIOC4ouC4tOC5iOC4h+C4ouC4oeC4quC4suC4ow0KK+C4iuC4seC4ouC4ouC4h+C4hOC5jCDguIHguLLguI3guIjguJnguIbguLLguKMNCivguIrguLHguKLguKLguIfguITguYwg4Lio4Lij4Li14Lit4Lij4Lix4LiN4LiN4Liy4LiB4Li44LilDQor4LiK4Lix4Lii4Lii4LioIOC4iuC4tOC4meC5guC4iuC4leC4tOC4geC4ow0KK+C4iuC4seC4ouC4ouC4qCDguJ7guIfguKjguYzguJ7guLnguKXguJfguK3guIcNCivguIrguLHguKLguKLguKgg4Liq4Li04LiZ4LiY4Li44Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4LiK4Lix4Lii4Lii4LiwIOC4oeC4teC4quC4geC4uOC4pQ0KK+C4iuC4seC4ouC4ouC4seC4meC4leC5jCDguJrguLHguKfguK3guLjguYTguKMNCivguIrguLHguKLguKLguLIg4Lig4Li04LiN4LmC4LiiDQor4LiK4Lix4Lii4Lii4Li44LiX4LiYIOC4iuC4seC4ouC4quC4uOC4o+C4tOC4meC4l+C4o+C5jA0KK+C4iuC4seC4ouC4ouC4uOC4l+C4mCDguJvguLTguJXguLTguJvguLLguKXguLANCivguIrguLHguKLguKLguLjguJfguJgg4Lin4Lix4LiZ4Liq4Lit4LiHDQor4LiK4Lix4Lii4Lii4Li44LiX4LiYIOC5gOC4reC4teC4ouC4lOC5geC4geC5ieC4pw0KK+C4iuC4seC4ouC4o+C4seC4leC4meC5jCDguIHguKHguKXguJnguKPguYDguJfguJ4NCivguIrguLHguKLguKPguLHguJXguJnguYwg4LiI4Li54Lib4Lij4Liw4LiI4Lix4LiB4Lip4LmMDQor4LiK4Lix4Lii4Lij4Lix4LiV4LiZ4LmMIOC5gOC4lOC4iuC4suC4meC4s+C4p+C4h+C4qOC5jA0KK+C4iuC4seC4ouC4o+C4seC4leC4meC5jCDguJrguLjguI3guJnguYnguK3guKINCivguIrguLHguKLguKPguLHguJXguJnguYwg4Lih4Liy4Lib4Lij4Liw4LiT4Li14LiVDQor4LiK4Lix4Lii4Lij4Lix4LiV4LiZ4LmMIOC4p+C4o+C4p+C4h+C4qOC5jOC5gOC4mOC4rQ0KK+C4iuC4seC4ouC4o+C4seC4leC4meC5jCDguKrguLjguKPguIrguLHguKLguJjguJnguKfguLHguJLguJnguYwNCivguIrguLHguKLguKTguIHguKnguYwg4LmA4Lie4Li04LmI4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li04Lio4Lix4LiB4LiU4Li04LmMDQor4LiK4Lix4Lii4Lik4LiX4LiY4Li04LmMIOC4quC4teC4q+C4tOC4quC4o+C4suC4oOC4tOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4iuC4seC4ouC4p+C4seC4kuC4meC5jCDguIHguLTguJXguJXguLTguJ7guKPguJnguLHguJnguJfguYwNCivguIrguLHguKLguKfguLHguJLguJnguYwg4LiI4Lij4Li04Lii4Liy4Lig4Lij4LiT4LmMDQor4LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LmMIOC4iuC4seC4ouC4o+C4seC4leC4meC4l+C4o+C4h+C4nuC4ow0KK+C4iuC4seC4ouC4p+C4seC4kuC4meC5jCDguJXguLHguJnguIHguLPguYHguKvguIfguYDguJTguIrguLINCivguIrguLHguKLguKfguLHguJLguJnguYwg4LiY4Li14Lij4Liq4Li44LiC4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LmMIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4iuC4seC4ouC4geC4tOC4iA0KK+C4iuC4seC4ouC4p+C4seC4kuC4meC5jCDguJ7guLLguJnguLTguIrguKLguLLguKDguKPguJPguYwNCivguIrguLHguKLguKfguLHguJLguJnguYwg4LmA4Lii4Liy4Lin4Lig4Liy4Lie4LiH4Lio4LmMDQor4LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LmMIOC4p+C4h+C4qOC5jOC4p+C4seC4kuC4meC4qOC4suC4meC4leC5jA0KK+C4iuC4seC4ouC4p+C4seC4kuC4meC5jCDguKjguKPguLXguYDguIjguKPguLTguI3guJjguKPguKPguKENCivguIrguLHguKLguKfguLHguJLguJnguYwg4Liq4Li44LiC4Lin4LiT4Li04LiK4LiZ4Lix4LiZ4LiX4LmMDQor4LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LmMIOC4reC4o+C4tOC4ouC4oeC4h+C4hOC4peC4quC4geC4uOC4pQ0KK+C4iuC4seC4ouC4p+C4seC4leC4o+C5jCDguYDguJXguIrguLDguKTguJTguLXguKfguKPguKPguJMNCivguIrguLHguKLguKfguLTguKfguLHguJLguJnguYwg4LmA4LiC4Li14Lii4Lin4LmC4Liq4Lig4LiTDQor4LiK4Lix4Lii4Lin4Li44LiS4Li0IOC4qOC4uOC4oOC4p+C4h+C4qOC5jOC4p+C4tOC4qOC4suC4pQ0KK+C4iuC4seC4ouC4qOC4seC4geC4lOC4tOC5jCDguIrguLHguYjguIfguYPguIgNCivguIrguLHguKLguKjguLTguKPguLQg4Lie4Lix4LiZ4LiY4Li44LmM4LmC4Lit4Lig4Liy4LiqDQor4LiK4Lix4Lii4Liq4Li04LiX4LiY4Li04LmMIOC4geC5iOC4reC5gOC4geC4teC4ouC4o+C4leC4tOC5gOC4iOC4o+C4tOC4jQ0KK+C4iuC4seC4ouC4quC4tOC4l+C4mOC4tOC5jCDguYHguJXguYnguKPguLHguJXguJnguIrguLHguKINCivguIrguLHguKLguKrguLTguJfguJjguLTguYwg4Lil4Li54LiB4Lij4Lix4LiB4Lip4LmMDQor4LiK4Lix4Lii4Liq4Li04LiX4LiY4Li04LmMIOC4reC4seC4jeC4iuC4meC4suC4meC4meC4l+C5jA0KK+C4iuC4seC4ouC5gOC4iOC4o+C4tOC4jSDguYDguIjguKPguLTguI3guKrguLTguJfguJjguLTguYwNCivguIrguLHguKLguYDguKXguLTguKgg4LmC4LiB4Lii4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LiK4Lix4Lii4LmC4Lij4LiI4LiZ4LmMIOC5gOC4geC4qeC4o+C4suC4h+C4geC4ueC4ow0KK+C4iuC4seC4ouC5guC4o+C4iOC4meC5jCDguKfguLHguJLguJnguKjguLTguKPguLTguKrguLjguIINCivguIrguLLguITguKMg4Lib4Lij4Liy4LiB4Liy4Lij4LiZ4Lie4LiE4Li44LiTDQor4LiK4Liy4LiE4Lij4Li04LiVIOC4quC4uOC4guC4nuC4o+C4p+C4tOC4l+C4p+C4seC4qg0KK+C4iuC4suC4jSDguYDguIHguLXguKLguKPguJXguLTguKrguLHguIfguKfguKPguJPguYwNCivguIrguLLguI0g4LmA4LiI4Lij4Li04LiN4Liq4Li04LiX4LiY4Li04Lie4Lix4LiZ4LiY4LmMDQor4LiK4Liy4LiNIOC5gOC4iuC4teC5iOC4ouC4p+C4mOC4teC4o+C4geC4uOC4pQ0KK+C4iuC4suC4jSDguYDguJXguKPguLXguKLguKHguKjguLTguKPguLTguKfguKPguIHguLjguKUNCivguIrguLLguI0g4Lia4Lix4Lin4LiX4Lit4LiHDQor4LiK4Liy4LiNIOC4nuC4seC4meC4mOC5jOC5geC4iuC5iOC4oQ0KK+C4iuC4suC4jSDguYDguKHguJjguLLguIfguIHguLnguKMNCivguIrguLLguI0g4Lin4LiH4Lio4LmM4Liq4Li44Lij4Lio4Li04Lil4Lib4LmMDQor4LiK4Liy4LiNIOC4quC4h+C5iOC4suC4h+C4suC4oQ0KK+C4iuC4suC4jSDguYDguKrguKPguLXguKPguLHguJDguYLguJ7guJjguLTguYzguJXguKPguLDguIHguLnguKUNCivguIrguLLguI0g4LmA4Lit4Li14LmI4Lii4Lih4Lit4Li44LmI4LiZDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4geC4tOC4leC4leC4tOC4p+C4h+C4qOC5jOC5hOC4geC4ow0KK+C4iuC4suC4jeC4iuC4seC4oiDguITguIfguYLguJUNCivguIrguLLguI3guIrguLHguKIg4LiI4Liy4Lij4Li44LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4iuC4p+C4peC4tOC4leC4geC4tOC4iOC5gOC4iOC4o+C4tOC4jQ0KK+C4iuC4suC4jeC4iuC4seC4oiDguYTguIrguKLguJnguLLguKHguKrguJbguLTguJXguKLguYwNCivguIrguLLguI3guIrguLHguKIg4LiTIOC4luC4peC4suC4hw0KK+C4iuC4suC4jeC4iuC4seC4oiDguYLguJXguJrguJTguLUNCivguIrguLLguI3guIrguLHguKIg4LiZ4LiX4Li14Lin4LiH4Lio4LmM4LiB4Li04LiIDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4m+C4o+C4sOC4lOC4seC4muC4iuC4meC4suC4meC4uOC4o+C4seC4leC4meC5jA0KK+C4iuC4suC4jeC4iuC4seC4oiDguJ7guKPguYnguK3guKHguKfguLjguJLguLQNCivguIrguLLguI3guIrguLHguKIg4Lig4Lix4LiX4Lij4Liq4Li04LiX4LiY4Li04LmA4Liq4Lij4Li1DQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4o+C4seC4leC4meC4suC4iuC4seC4ouC4nuC4h+C4qeC5jA0KK+C4iuC4suC4jeC4iuC4seC4oiDguYDguKXguLTguKjguJvguKPguLDguKrguJ7guYLguIrguIQNCivguIrguLLguI3guIrguLHguKIg4Lin4Li04LiX4Li54Lij4Lib4Lix4LiN4LiN4Liy4LiB4Li04LiIDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4qOC4tOC4o+C4tOC4p+C4h+C4qOC5jOC4p+C4o+C4suC4oOC4o+C4k+C5jA0KK+C4iuC4suC4jeC4iuC4seC4oiDguKrguLTguJfguJjguLTguIrguLHguKLguKfguLTguKPguLTguKLguLDguIHguLjguKUNCivguIrguLLguI3guIrguLHguKIg4LmB4Liq4LiH4LiI4Lix4LiZ4LiX4Lij4LmM4Lio4Li04Lin4LiU4LilDQor4LiK4Liy4LiN4LiK4Lix4LiiIOC4reC4oOC4tOC4o+C4oeC4ouC5jOC5gOC4quC4oeC4rQ0KK+C4iuC4suC4jeC4iuC4seC4oiDguYDguK3guKHguLDguKPguLjguIjguLQNCivguIrguLLguI3guJPguKPguIfguITguYwg4LiC4Lin4Lix4LiN4LmA4LiI4Lij4Li04LiNDQor4LiK4Liy4LiN4LiT4Lij4LiH4LiE4LmMIOC4l+C4reC4h+C4meC4p+C4pQ0KK+C4iuC4suC4jeC4k+C4o+C4h+C4hOC5jCDguKDguLnguJzguLINCivguIrguLLguI3guJPguKPguIfguITguYwg4Liq4Li04LiX4LiY4Li04Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LiK4Liy4LiN4Lia4Li54Lij4LiT4LmMIOC5gOC4nuC5h+C4jeC4leC4o+C4sOC4geC4ueC4pQ0KK+C4iuC4suC4jeC4ouC4uOC4l+C4mCDguJvguKPguLDguYDguKrguKPguLTguJDguYLguKrguKDguLINCivguIrguLLguI3guKLguLjguJfguJjguYwg4LiV4Lij4Li14Liq4Li44LiE4LiZ4LiY4LmMDQor4LiK4Liy4LiN4Lin4Li04LiX4Lii4LmMIOC4iuC5iOC4p+C4h+C4iuC4seC4og0KK+C4iuC4suC4jeC4p+C4tOC4l+C4ouC5jCDguJvguLTguKLguLDguKfguLLguJPguLTguIrguYDguKrguJbguLXguKLguKMNCivguIrguLLguI3guKfguLTguJfguKLguYwg4Liq4Li44LiC4Lit4Lij4LmI4Liy4LihDQor4LiK4Liy4LiN4Lin4Li44LiS4Li0IOC4nuC4o+C4geC4tOC4leC4leC4tOC4p+C4seC4kuC4meC4suC4geC4uOC4pQ0KK+C4iuC4suC4jeC4qOC4seC4geC4lOC4tOC5jCDguJfguLLguJnguJjguJnguLDguYDguIjguKPguLTguI0NCivguIrguLLguI3guKjguLHguIHguJTguLTguYwg4Lit4Li44LiU4Lih4LiW4Li04Lij4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiK4Liy4LiN4LmA4Lin4LiKIOC4qOC4o+C4seC4l+C4mOC4suC4nuC4uOC4l+C4mA0KK+C4iuC4suC4leC4o+C4tSDguYDguIHguKPguLXguKLguIfguKLguLDguIHguLjguKUNCivguIrguLLguJXguKPguLUg4LmA4LiI4Lij4Li04LiN4LiI4Lij4Lix4Liq4LiB4Li44LilDQor4LiK4Liy4LiV4Lij4Li1IOC4lOC4tOC5gOC4o+C4geC4p+C4seC4kuC4meC4iuC4seC4og0KK+C4iuC4suC4leC4o+C4tSDguJnguIHguKrguIHguLjguKUNCivguIrguLLguJXguKPguLUg4Lie4Lix4LiY4LiZ4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiK4Liy4LiV4Lij4Li1IOC4peC4tOC4oeC4m+C4tOC4iuC4seC4ouC5guC4quC4oOC4kw0KK+C4iuC4suC4leC4o+C4tSDguKjguKPguLXguKrguLjguITguJnguJjguYwNCivguIrguLLguJXguKPguLUg4Liq4Li44Lir4Lix4Liq4LmE4Lie4Lio4Liy4LilDQor4LiK4Liy4LiV4Lij4Li1IOC4reC4tOC4meC4hOC4uOC5ieC4oQ0KK+C4iuC4suC4leC4tCDguJfguLLguIfguJfguK3guIcNCivguIrguLLguJXguLTguIrguLHguKIg4LiI4Liy4LiV4Li44Lio4Lij4Li14Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4LiK4Liy4LiV4Li04LiK4Liy4LiiIOC4iOC4h+C4geC4pQ0KK+C4iuC4suC4leC4tOC4iuC4suC4oiDguYHguIvguYjguYHguJXguYkNCivguIrguLLguJXguLTguIrguLLguKIg4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04Liq4LiyDQor4LiK4Liy4LiV4Li04LiK4Liy4LiiIOC4ouC4uOC4p+C4meC4sOC5gOC4leC4oeC4teC4ouC5jA0KK+C4iuC4suC4leC4tOC4iuC4suC4oiDguKjguKPguLXguKrguLLguKPguLTguKrguJbguYwNCivguIrguLLguJXguLTguIrguLLguKIg4Lit4Lix4LiE4Lij4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4LiK4Liy4LiV4Li04LmA4LiJ4Lil4Li04LihIOC5gOC4peC4guC4p+C4k+C4tOC4iuC4mOC4o+C4o+C4oeC4p+C4tOC4l+C4seC4geC4qeC5jA0KK+C4iuC4suC4meC4meC4l+C5jCDguKrguLLguKLguIrguLjguKENCivguIrguLLguKIg4LiX4LmJ4Lin4Lih4LiB4Lil4Li04LmI4LiZDQor4LiK4Liy4LiiIOC4reC4uOC4oeC4sOC4p+C4tOC4iuC4meC4tQ0KK+C4iuC4suC4ouC5g+C4q+C4jeC5iCDguJrguLjguI3guYDguILguYfguKHguJfguK3guIcNCivguIrguLLguKXguLTguJnguLUg4LiI4Lix4LiZ4LiX4Lin4Liy4Lij4LiyDQor4LiK4Liy4Lil4Li1IOC4hOC4s+C4peC4suC4og0KK+C4iuC4suC4peC4tSDguJfguLTguJ7guKLguKfguLLguJkNCivguIrguLLguKXguLUg4LmA4Lie4Li14Lii4Lij4Lih4Liy4LiZ4LiwDQor4LiK4Liy4Lil4Li1IOC4p+C4seC4iuC4o+C5gOC4quC4luC4teC4ouC4ow0KK+C4iuC4suC4peC4tSDguK3guJnguLHguJnguJXguYzguKfguLTguKPguLTguKLguLDguIrguLHguKINCivguIrguLPguJnguLAg4LiX4Lix4LiV4LiV4Li04Lii4Lie4LiH4Lio4LmMDQor4LiK4Liz4LiZ4Liy4LiNIOC4ieC4p+C4teC4p+C4h+C4qeC5jA0KK+C4iuC4s+C4meC4suC4jSDguYHguJXguYnguKrguLjguIjguLQNCivguIrguLPguJnguLLguI0g4Lia4Li44LiN4Lin4Li04LiX4Lii4Liy4LiB4Li44LilDQor4LiK4Liz4LiZ4Liy4LiNIOC5guC4nuC4mOC4tOC5jOC4quC4uOC4gg0KK+C4iuC4s+C4meC4suC4jSDguYDguKXguLLguKvguJrguLjguJXguKMNCivguIrguLPguJnguLLguI0g4Liq4Liy4Lij4Liw4Lic4LilDQor4LiK4Liz4LiZ4Liy4LiNIOC4reC4tOC4meC4l+C4sOC4meC4sA0KK+C4iuC4s+C5gOC4iuC4teC5ieC4ouC4sCDguILguLHguJnguJfguK3guIcNCivguIrguLTguIfguIrguLHguKIg4Lie4Li04Lie4Lix4LiS4LiZ4LmM4LiI4Lij4Lix4Liq4Liq4LiB4Li44LilDQor4LiK4Li04LiUIOC4iOC4o+C4tOC4ouC4suC4p+C4tOC4peC4suC4qA0KK+C4iuC4tOC4lOC4iuC4meC4gSDguKjguKPguLXguKrguKHguKfguIfguKnguYwNCivguIrguLTguJTguJ7guIfguKnguYwg4Liq4Lii4Liy4Lih4LmA4LiZ4LiV4LijDQor4LiK4Li04LiVIOC4leC4seC4meC4qOC4tOC4o+C4tOC4peC5ieC4sw0KK+C4iuC4tOC4lSDguKLguLDguYLguKoNCivguIrguLTguJXguIrguKEg4LiI4Lix4LiV4LiV4Li44Lie4Lij4Lie4LiH4Lip4LmMDQor4LiK4Li04LiV4Liq4LiB4LiZ4LiY4LmMIOC4quC4seC4meC4l+C4seC4lA0KK+C4iuC4tOC4mSDguJXguLHguYnguIfguIHguLjguKjguKXguKXguKXguLTguJUNCivguIrguLTguJkg4LmC4Lij4LiI4LiZ4LmB4Liq4LiHDQor4LiK4Li04LiZ4LiT4LmA4Lij4LioIOC4lOC4tOC4qeC4kOC4nOC4pQ0KK+C4iuC4tOC4meC4pOC4l+C4mOC4tOC5jCDguJvguKPguLDguKLguLnguKPguJfguK3guIcNCivguIrguLTguJnguKfguLHguJXguKMg4LmD4LiI4LmA4LiX4Li14LmI4Lii4LiHDQor4LiK4Li04LiZ4LmA4Lir4Lij4Li14Lii4LiNIOC5gOC4quC4geC4mOC4teC4o+C4sA0KK+C4iuC4tOC4peC4seC4oiDguKrguLjguKfguKPguKPguJPguKrguLLguKMNCivguIrguLUg4LmA4LiEIOC5geC4peC4oQ0KK+C4iuC4teC4p+C4siDguIHguKXguLTguYjguJnguJTguLUNCivguIrguLfguYjguJkg4LmA4LiB4LiV4Li44Lib4Lih4LiyDQor4LiK4Li34LmI4LiZIOC5gOC4p+C4l+C4oeC4suC4q+C4sA0KK+C4iuC4t+C5iOC4meC4iOC4tOC4lSDguYHguKvguKXguKHguIjguKPguLTguIcNCivguIrguLfguYjguJnguIjguLTguJXguKMg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiK4Li34LmI4LiZ4Liq4Li44LiCIOC4geC4oeC4peC4l+C4geC4suC4oOC4seC4og0KK+C4iuC4t+C5ieC4mSDguJfguK3guIfguI3guKfguJkNCivguIrguLjguIfguYDguK3guIcg4LmB4LiL4LmI4LmA4LiI4Li14LiiDQor4LiK4Li44LiU4Liy4Lie4LijIOC5geC4quC4meC4o+C4suC4iuC4sg0KK+C4iuC4uOC4leC4tOC4meC4seC4meC4l+C5jCDguYDguJXguIrguLDguKrguKHguJrguLnguKPguJPguYwNCivguIrguLjguJXguLTguKHguJPguJHguJnguYwg4Lia4Li44LiN4LiK4Lix4LiK4Lin4Liy4LilDQor4LiK4Li44LiV4Li04Lih4LiyIOC4guC4seC4meC4lOC4tQ0KK+C4iuC4uOC4leC4tOC4oeC4siDguIrguLTguJnguYLguJkNCivguIrguLjguJXguLTguKHguLIg4LiX4Lij4Lix4Lie4Lii4LmM4Liq4Li04Lij4Li04LiZ4LiX4Lij4LmMDQor4LiK4Li44LiV4Li04Lih4LiyIOC4m+C4seC4p+C4p+C4o+C4suC4oOC4o+C4k+C5jA0KK+C4iuC4uOC4leC4tOC4oeC4siDguKHguKvguLHguITguITguIHguLjguKUNCivguIrguLjguJXguLTguKHguLIg4Lin4LiK4Li04Lij4LmA4Liq4Lij4Li14LiK4Lix4LiiDQor4LiK4Li44LiV4Li04Lih4LiyIOC4quC4tOC4meC4quC4suC4mOC4tOC4lQ0KK+C4iuC4uOC4leC4tOC4oeC4siDguK3guLHguI3guI3guJPguKPguIfguITguYzguIHguLjguKUNCivguIrguLjguJkg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4LiK4Li44LiZ4LmA4LiL4LmJ4LiHIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4iuC4uOC4miDguIjguLHguJnguJfguKPguYzguYHguIHguYnguKcNCivguIrguLjguJog4Lil4Liy4LmE4Lih4LmJDQor4LiK4Li44Lih4LiZ4Li44LihIOC4qOC4seC4leC4o+C4ueC4peC4teC5iQ0KK+C4iuC4uOC4oeC4nuC4oyDguJzguJTguLjguIfguIHguLTguIgNCivguIrguLjguKHguJ7guKUg4LiB4Liy4LiN4LiI4LiZ4LmC4LiB4Lio4LilDQor4LiK4Li44Lih4Lie4LilIOC4iuC4oeC4nuC4ueC4l+C4p+C4teC4mw0KK+C4iuC4uOC4oeC4nuC4pSDguJXguLXguKPguJPguKrguLLguKMNCivguIrguLjguKHguJ7guKUg4Lia4Li44LiN4Liq4Liy4LmD4LiIDQor4LiK4Li44Lih4Lie4LilIOC4oeC4o+C4o+C4hOC4nOC4pQ0KK+C4iuC4uOC4oeC4nuC4pSDguYDguKfguKrguKrguJrguLjguJXguKMNCivguIrguLjguKHguJ7guKUg4LmA4Liq4Lij4Li04Lih4LiK4Lix4LmJ4LiZDQor4LiK4Li44Lih4Lij4Lix4LiV4LiZ4LmMIOC4iOC4seC4geC4o+C4iOC4tOC4leC4o+C4oOC4sg0KK+C4iuC4uOC4oeC4quC4suC4oiDguKHguJPguLXguJnguYnguK3guKINCivguIrguLjguYjguKEg4LiZ4LmJ4Lit4Lii4Lib4Lij4Liw4LiK4LiyDQor4LiK4Li44Lij4Li14Lin4Lij4Lij4LiTIOC4iOC4tOC4meC4leC4geC4p+C4teC4p+C4seC4kuC4meC5jA0KK+C4iuC4uOC4peC4tSDguYDguKPguLfguK3guIfguKTguJfguJjguLTguYwNCivguIrguLjguKXguLXguIHguKMg4Lij4Lix4LiV4LiZ4LmM4Lin4Li04LiI4Li04LiV4LiV4LmM4LmA4Lin4LiKDQor4LiK4Li44Lil4Li14Lie4LijIOC4muC4uOC4jeC4reC4ouC4ueC5iA0KK+C4iuC4uOC4peC4teC4nuC4oyDguK3guLbguYnguIfguKfguLTguKjguLTguKnguI7guYzguKfguIfguKjguYwNCivguIrguLkg4LmC4LiI4LmB4Lit4LiZ4LiZ4LiyDQor4LiK4Li54LiI4Lix4LiZ4LiX4Lij4LmM4LiJ4Liy4LiiIOC4peC4suC5gOC4hOC4mQ0KK+C4iuC4ueC4iOC4tOC4leC4leC5jCDguJjguKPguKPguKHguJDguLTguJXguLQNCivguIrguLnguIjguLTguJXguKMg4Lih4Lix4LiB4Lie4Lix4LiZ4LiY4LmM4LmA4LiI4Lij4Li04LiN4LiB4Li04LiIDQor4LiK4Li54LiK4Lix4LiiIOC5gOC4geC4tOC4lOC4nOC4pQ0KK+C4iuC4ueC4iuC4seC4oiDguYDguJXguIrguLDguJjguKPguLLguKPguLHguIHguKnguYwNCivguIrguLnguIrguLHguKIg4LmA4Lij4Li14Lii4Lia4LmA4Lil4Li04Lio4Lir4Li04Lij4Lix4LiNDQor4LiK4Li54LiK4Lix4LiiIOC4reC4uOC4lOC4oeC5guC4oOC4iuC4meC5jA0KK+C4iuC4ueC4iuC4suC4leC4tCDguITguLPguYLguJUNCivguIrguLnguIrguLLguJXguLQg4LiL4Li24LmI4LiH4LiU4Liz4Lij4LiHDQor4LiK4Li54LiK4Liy4LiV4Li0IOC4meC4nuC4p+C4h+C4qeC5jA0KK+C4iuC4ueC4iuC4suC4leC4tCDguJ7guIfguKnguYzguKPguLHguJXguJnguYwNCivguIrguLnguIrguLLguJXguLQg4Lij4Lix4LiB4Lip4Liy4Liq4Lix4LiV4Lii4LmMDQor4LiK4Li54LiK4Liy4LiV4Li0IOC4qOC4o+C4teC4o+C4seC4leC4meC5jA0KK+C4iuC4ueC4iuC4suC4leC4tCDguKrguLjguKfguLHguIrguKPguKfguLTguKfguLHguJLguJnguYwNCivguIrguLnguIrguLLguJXguLQg4LmA4Lit4Li14LmI4Lii4Lih4Liq4Li44LiX4LiY4LiyDQor4LiK4Li54LiK4Li14LieIOC4m+C4seC4jeC4iOC4quC4seC4h+C4guC5jA0KK+C4iuC4ueC4iuC4teC4niDguKrguLHguIfguILguYzguJnguLTguKXguYHguIHguYnguKcNCivguIrguLnguJTguKfguIcg4LmB4Liq4LiH4LiK4Li54LmC4LiVDQor4LiK4Li54Lie4LiH4Lio4LmMIOC4q+C4p+C4seC4h+C4p+C4seC4kuC4meC4suC4meC4seC4meC4l+C5jA0KK+C4iuC4ueC4nuC4seC4meC4mOC5jCDguYLguIHguKHguKXguKrguLjguJUNCivguIrguLnguKPguLHguJXguJnguYwg4Lia4Li44LiN4LmA4LiZ4Liy4Lin4LmMDQor4LiK4Li54Lin4LiH4Lio4LmMIOC4meC4tOC4leC4tOC4m+C4seC4jeC4jeC4suC4p+C4h+C4qOC5jA0KK+C4iuC4ueC4qOC4o+C4tSDguIHguK3guIfguYHguIHguYnguKcNCivguIrguLnguKjguKPguLUg4LmA4LiI4Li14Lii4Lij4LiB4Li44Lil4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiK4Li54Lio4Lij4Li1IOC4l+C4reC4h+C4mOC4o+C4o+C4oeC4iuC4suC4leC4tA0KK+C4iuC4ueC4qOC4o+C4tSDguJvguLLguKXguLDguIHguLnguKUNCivguIrguLnguKjguKPguLUg4Lih4Liw4Lil4Li04Lit4LmI4Lit4LiHDQor4LiK4Li54Lio4Lij4Li1IOC4p+C4tOC4p+C4seC4kuC4meC5jOC4p+C4h+C4qOC5jOC4mOC4ow0KK+C4iuC4ueC4qOC4o+C4tSDguKrguLjguKPguLTguKfguIfguKnguYwNCivguIrguLnguKjguKPguLUg4LmA4Lit4Li14LmI4Lii4Lih4Liq4Lit4Liy4LiUDQor4LiK4Li54Lio4Lix4LiB4LiU4Li04LmMIOC4iOC4seC4meC4l+C4o+C4oeC4suC4meC4sA0KK+C4iuC4ueC4qOC4seC4geC4lOC4tOC5jCDguYLguIrguITguJrguKfguKMNCivguIrguLnguKjguLHguIHguJTguLTguYwg4LiX4Lit4LiH4LiB4Lil4LmI4LizDQor4LiK4Li54Lio4Lix4LiB4LiU4Li04LmMIOC4m+C4o+C4sOC4l+C4teC4m+C5gOC4l+C4teC4ouC4meC4l+C4reC4hw0KK+C4iuC4ueC4qOC4seC4geC4lOC4tOC5jCDguKHguYjguKfguIfguKLguLINCivguIrguLnguKjguLHguIHguJTguLTguYwg4Lil4Li34Lit4LiK4Liy4Lit4Li44LiU4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4LiK4Li54Lio4Lix4LiB4LiU4Li04LmMIOC4qOC4o+C4teC5gOC4iOC4o+C4tOC4jeC4peC5iOC4s+C4i+C4sw0KK+C4iuC4ueC4qOC4seC4geC4lOC4tOC5jCDguKrguLjguKfguKPguKPguJPguJrguLnguKXguKLguYwNCivguIrguLnguKjguLHguIHguJTguLTguYwg4Lit4Li44LmI4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Lio4Li04Lil4Lib4LmMDQor4LiK4Li54Liq4Liy4LijIOC4p+C4h+C4qOC5jOC4p+C4seC4iuC4o+C4sg0KK+C4iuC4ueC5gOC4geC4teC4ouC4o+C4leC4tCDguIHguLHguJPguJHguKjguLTguKXguJvguYwNCivguIrguLnguYDguIHguLXguKLguKPguJXguLQg4LiK4Li34LmI4LiZ4Lig4Liy4LiB4Lij4LiT4LmMDQor4LiK4Li54LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4meC4suC4hOC4o+C4meC4o+C4suC4mOC4ow0KK+C4iuC4ueC5gOC4geC4teC4ouC4o+C4leC4tCDguYDguKHguJjguLXguJvguKPguLDguKDguLINCivguIrguLnguYDguIHguLXguKLguKPguJXguLQg4Liq4Lin4LmI4Liy4LiH4LmA4LiZ4LiV4LijDQor4LiK4Li54LmA4LiE4Lin4LmJ4LiHIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4iuC4ueC5gOC4reC5h+C4hyDguJ7guKPguJfguKfguLXguJfguLHguKjguJnguYwNCivguIrguLnguYPguIgg4Liu4Li54LmA4LiL4LmH4LiZDQor4LiK4LmC4Lil4LiX4LijIOC4quC4uOC4p+C4o+C4o+C4k+C4quC4seC4jeC4jeC4sg0KK+C4iuC5hOC4oeC4nuC4oyDguIrguLjguKHguYDguKrguKfguLUNCivguIrguYTguKHguJ7guKMg4Lin4Li04LiX4Li04LiV4Lin4Lix4LiS4LiZDQor4LmA4LiK4LiH4LiE4Li04LmJ4LiHIOC5geC4i+C5iOC5geC4leC5iQ0KK+C5gOC4iuC4mSDguJvguLTguYjguJnguYDguJ7guIrguKMNCivguYDguIrguKUg4Lie4LiH4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMDQor4LmA4LiK4Lin4LiHIOC5gOC4nuC4iuC4o+C4quC4uOC4p+C4o+C4o+C4kw0KK+C5gOC4iuC4p+C4h+C4qOC4seC4geC4lOC4tOC5jCDguYDguKHguIbguLINCivguYDguIrguKnguJDguIrguLHguKIg4Lij4Lix4LiV4LiZ4Liy4LiZ4Li44Lin4LiH4Lio4LmM4LiK4Lix4LiiDQor4LmA4LiK4Lip4LiQ4LiyIOC4quC4uOC4meC4l+C4o+C4geC4tOC4leC4tA0KK+C5gOC4iuC4reC4o+C4teC5iOC4p+C4o+C4o+C4kyDguIjguLTguJPguJPguJjguKPguKPguKHguJ7guIfguKnguYwNCivguYDguIrguLLguKfguJnguLUg4Liq4Lih4Li04LiV4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4LiK4Liy4Lin4LiZ4LmMIOC4ouC4sOC4quC4uOC4nuC4seC4kuC4meC4suC4geC4uOC4pQ0KK+C5gOC4iuC4suC4p+C4o+C4seC4leC4meC5jCDguYDguJnguJXguKPguKHguJPguLXguJfguLTguJ7guKLguYzguKrguLTguKPguLQNCivguYDguIrguLLguKfguKXguLTguJUg4LiC4Liz4Lio4Li04Lij4Li0DQor4LmA4LiK4Liy4Lin4Lil4Li04LiVIOC5guC4m+C4o+C5iOC4h+C4geC4oeC4pQ0KK+C5gOC4iuC4suC4p+C4peC4tOC4lSDguKrguLjguILguKrguJrguLLguKINCivguYDguIrguLLguKfguYwg4LmB4LiB4LmJ4Lin4Lib4Lij4Liw4LiU4Li04Lip4LiQDQor4LmA4LiK4Liy4Lin4LmMIOC4l+C4reC4h+C4oeC4sg0KK+C5gOC4iuC4suC4p+C5jCDguKHguLTguYjguIfguYHguIHguYnguKcNCivguYDguIrguLLguKfguYwg4Lir4Lil4Lix4LiB4LmA4Lie4LmH4LiK4LijDQor4LmA4LiK4Li04LiH4LiK4Lix4LiiIOC4mOC4s+C4o+C4h+C4p+C4tOC4meC4tOC4iOC4ieC4seC4og0KK+C5gOC4iuC4tOC4jSDguJvguKPguLDguJfguLjguKHguJnguJnguJfguYwNCivguYDguIrguLTguJQg4Lia4Lix4Lin4LmA4Lib4Lij4LihDQor4LmA4LiK4Li04LiUIOC4reC4tOC4meC4l+C4o+C5jOC4oeC4h+C4hOC4pQ0KK+C5gOC4iuC4tOC4lOC4iuC4seC4oiDguJnguLHguJnguJfguLTguKfguLHguIrguKPguLTguJnguJfguKPguYwNCivguYDguIrguLTguJTguIrguLHguKIg4Lio4Lij4Li14LiE4Liz4Lij4Li44LiTDQor4LmA4LiK4Li04LiU4LiK4Liy4LiiIOC4oeC4suC4geC4muC4s+C4o+C4uOC4hw0KK+C5gOC4iuC4tOC4lOC4nuC4seC4meC4mOC4uOC5jCDguYDguIjguKPguLTguI3guYDguKfguIoNCivguYDguIrguLTguJTguKjguLHguIHguJTguLTguYwg4LiZ4Liz4LmA4LiI4Lij4Li04LiN4LiB4Li04LiI4LiB4Li44LilDQor4LmA4LiK4Li04LiU4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4uOC4hOC4meC4mOC4quC4tOC4h+C4q+C5jA0KK+C5gOC4iuC4teC4ouC4hyDguKrguLPguYDguKPguYfguIjguJzguKUNCivguYDguIrguLXguKLguLDguJXguIcg4LmA4Lit4LiB4Lit4Lij4Li44LiT4Lij4Li44LmI4LiH4Lik4LiX4LiY4Li04LmMDQor4LmA4LiK4Li14LmJ4Lii4LiZIOC4oeC4reC4jeC4geC4o+C4sOC5guC4l+C4gQ0KK+C5gOC4iuC4t+C5ieC4rSDguYDguIHguJXguLjguJnguKfguKENCivguYDguIrguLfguYnguK0g4LmA4Lij4Li34Lit4LiH4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMDQor4LmA4LiK4Li34LmJ4Lit4LmA4LiV4LmH4LiBIOC5geC4i+C5iOC4ieC4tOC5iOC4mQ0KK+C5gOC4iuC5h+C4h+C4quC4uOC4mSDguYHguIvguYjguYDguKXguLXguYjguKLguKcNCivguYDguIrguYnguLIg4LiY4Lij4Lij4Lih4LmC4LiK4LiV4Li0DQor4LmB4LiK4LmI4LihIOC5gOC4nOC4t+C4reC4geC4l+C4reC4hw0KK+C5guC4iuC4hCDguJ7guIfguKjguLLguJvguLLguJkNCivguYLguIrguITguIrguLHguKIg4LiI4Lix4LiZ4LiX4Lij4LmM4Lic4Liy4Liq4Li44LiCDQor4LmC4LiK4LiE4LiK4Lix4LiiIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C5guC4iuC4hOC4iuC4seC4oiDguJrguLjguI3guI3guLLguKPguLHguJXguJnguYzguKrguJbguLLguJ7guKMNCivguYLguIrguITguIrguLHguKIg4Lig4Liy4Lin4Liq4Li44LiX4LiY4Li04LiB4Liy4LijDQor4LmC4LiK4LiE4LiK4Lix4LiiIOC4p+C4seC4h+C4oeC4sOC4meC4suC4pw0KK+C5guC4iuC4hOC4iuC4seC4oiDguKrguLjguJfguJjguLTguYzguJvguKPguLDguYDguKrguKPguLTguJDguJ7guKMNCivguYLguIrguITguJTguLUg4LiB4Liz4Lie4Lil4LmA4LiK4LiV4Li4DQor4LmC4LiK4LiE4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4nuC4h+C4qeC5jOC4leC4tOC5geC4lA0KK+C5guC4iuC4leC4tCDguIjguLTguJPguJPguKfguLLguYLguKoNCivguYLguIrguJXguLQg4Lib4Lij4Liw4Lii4LiH4LiE4LmM4LiX4Lij4Lix4Lie4Lii4LmMDQor4LmC4LiK4LiV4Li0IOC4quC4meC4mOC4tOC4l+C4o+C4seC4nuC4ouC5jA0KK+C5guC4iuC4leC4tOC4geC4siDguKrguKfguLHguKrguJTguLTguYzguKrguLLguKPguLANCivguYLguIrguJXguLTguKHguLIg4LiB4Lih4Lil4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4LmC4LiK4LiV4Li04Lij4LiqIOC4hOC4ueC4nOC4suC4quC4uOC4gg0KK+C5guC4iuC4leC4tOC4p+C4uOC4kuC4tCDguJzguJTguLLguIjguLTguJXguKMNCivguYPguIrguYjguYDguK3guYfguIcg4LmB4LiL4LmI4Lir4Lil4Li04LmI4LinDQor4LmE4LiK4LiiIOC5geC4i+C5iOC5guC4i+C4pw0KK+C5hOC4iuC4ouC4k+C4o+C4h+C4hOC5jCDguKrguLjguJnguJfguYLguKPguJfguKLguLLguJkNCivguYTguIrguKLguJ7guKMg4Liq4Li44LiE4LiZ4LmC4LiY4Lir4LiBDQor4LmE4LiK4Lii4Lii4LiH4LiE4LmMIOC4o+C4tOC4meC4quC4luC4tOC4leC4meC4meC4l+C5jA0KK+C5hOC4iuC4ouC4ouC4qCDguJ7guLnguJnguJTguLUNCivguYTguIrguKLguKLguLHguJnguJXguYwg4LiI4Li04Lij4LiyDQor4LmE4LiK4Lii4Lii4LiyIOC4q+C4suC4jeC4p+C4tOC4p+C4seC4kuC4meC5jOC4p+C4h+C4qOC5jA0KK+C5hOC4iuC4ouC4o+C4seC4leC4meC5jCDguKPguLHguJXguJnguYHguIHguYnguKfguIHguLLguI3guIjguJnguYwNCivguYTguIrguKLguKfguLHguJLguJnguYwg4LiJ4Lil4Lit4LiH4Lie4Lix4LiZ4LiY4Lij4Lix4LiV4LiZ4LmMDQor4LmE4LiK4Lii4Lin4Lix4LiS4LiZ4LmMIOC4quC4suC4p+C4luC4ouC4suC4h+C4geC4ueC4ow0KK+C5hOC4iuC4ouC4quC4meC4mOC4tOC5jCDguJbguJnguLHguJTguYPguIrguYnguJvguLfguJkNCivguYTguIrguKLguLHguJnguJXguYwg4Lik4LiV4Lin4Li04Lij4Li44Lis4Lir4LmMDQor4LmE4LiK4Lii4LiyIOC4oeC4k+C4tQ0KK+C5hOC4iuC4ouC5gOC4l+C4niDguJ7guLTguKHguKXguJjguJnguKPguLHguIHguKnguYwNCivguYTguIrguYLguKIg4Liq4Li04LiX4LiY4Li04LiB4Lij4LmC4Liq4Lih4LiZ4Lix4LiqDQor4LiL4LiB4Liu4Li44LiiIOC4nuC4seC4meC4l+C4ow0KK+C4i+C4h+C4hOC5jCDguKPguJ7guLTguJfguKLguJ7guKPguKPguJMNCivguIvguYjguIfguYDguKHguYnguIcg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiL4LmJ4LiH4LmA4Liq4LmH4LiHIOC4quC4uOC4o+C4tOC4ouC4sOC4iOC4seC4meC4l+C4o+C5jOC4q+C4reC4oQ0KK+C4i+C4reC4ouC4oeC5iOC4p+C4oiDguYDguKvguKXguLfguK3guIfguJfguLPguYDguKvguKHguLfguK3guJkNCivguIvguYjguK3guKvguKLguLTguJkg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiL4Lix4LiH4LmA4Lit4LmH4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4i+C4seC5ieC4p+C4m+C4p+C4ouC5gOC4oeC5ieC4hyDguYHguIvguYjguIvguLHguKcNCivguIvguLLguKHguKfguKUg4Lif4Li04Lil4Lil4Li04Lie4Liq4LmM4Lih4Li04Lin4Liq4LmMDQor4LiL4Liy4Lin4Liy4Lij4Lix4LiZIOC4i+C4tOC4h+C4q+C5jA0KK+C4i+C4tOC4geC4i+C4p+C4hyDguYHguIvguYjguK3guLHguYnguIcNCivguIvguLTguKHguITguYnguKfguIcg4LmB4LiL4LmI4LmA4LiV4LiHDQor4LiL4Li04Lin4LiH4LmJ4LitIOC5geC4i+C5iOC4geC4seC4pw0KK+C4i+C4tOC4p+C4oeC5iOC4p+C4oiDguYHguIvguYjguK3guLbguYnguIcNCivguIvguLTguKfguYDguIjguYfguIcg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiL4Li04Lin4LmE4LiZ4LmJIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4i+C4tOC5ieC4p+C4iOC4uSDguYHguIvguYjguJXguLHguYnguIcNCivguIvguLTguYnguKfguYDguJXguLXguKLguIcg4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LiL4Li14Lij4Lit4Lii4Li44LiU4LiU4Li04LiZIOC4oeC4tOC4meC4quC4suC4hOC4ow0KK+C4i+C4t+C5iOC4reC5gOC4q+C4peC4teC4ouC4hyDguYHguIvguYjguJXguLHguYnguIcNCivguIvguLjguJnguJXguLTguYrguIEg4LmB4LiL4LmI4Liu4Li24LmJ4LiHDQor4LiL4Li44Lii4LiH4LmJ4LitIOC5geC4i+C5iOC5gOC4reC4teC5ieC4ouC4pw0KK+C4i+C4uOC5iOC4ouC4peC5ieC4hyDguYHguIvguYjguJXguLHguYnguIcNCivguIvguLjguYnguKLguKXguLTguYnguKEg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LiL4Li54Lia4LmK4Lin4LiiIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4i+C4ueC5iOC5gOC4geC4teC5iOC4ouC4pyDguYHguIvguYjguJXguLHguYnguIcNCivguYDguIvguJkg4LmC4Lir4Lih4LiU4LmA4Liq4LihDQor4LmA4LiL4Liy4Liw4Liu4Lin4LiHIOC5geC4i+C5iOC4q+C4peC4suC4og0KK+C5gOC4i+C4teC4ouC4h+C4geC4p+C4hyDguYHguIvguYjguIjguLbguIcNCivguYDguIvguLXguKLguKHguIjguLkg4LmA4LiY4Li14Lii4Lij4Lib4Lij4Li14LiK4LiyDQor4LmA4LiL4Li14Lii4Lih4LmA4LiH4LmH4LiBIOC5geC4i+C5iOC5gOC4reC4teC5ieC4og0KK+C5gOC4i+C4teC4ouC4p+C4leC4p+C4hyDguYHguIvguYjguYHguJXguYkNCivguYDguIvguLXguKLguLDguIjguLHguYnguKcg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LmA4LiL4Li14Lii4Liw4LmA4LiB4Li14Lii4LinIOC5geC4i+C5iOC4geC4teC5iQ0KK+C5gOC4i+C4teC5iOC4ouC4h+C4geC4hyDguYHguIvguYjguJXguLHguYnguIcNCivguYDguIvguLXguYjguKLguKHguIjguKfguJkg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4LmA4LiL4Li14LmI4Lii4Lih4Lil4Lix4LmJ4LiHIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C5gOC4i+C4teC5iOC4ouC4oeC5gOC4geC4teC4ouC4hyDguYHguIvguYjguJXguLHguYnguIcNCivguYDguIvguLXguYjguKLguKHguYDguKHguYnguIcg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4LmA4LiL4Li14LmI4Lii4Lin4LiI4Li04LinIOC5geC4i+C5iOC5gOC4reC5h+C4hw0KK+C5gOC4i+C4teC5ieC4ouC4oSDguYHguIvguYjguYDguK3guYfguIcNCivguYDguIvguLXguYnguKLguLDguKLguYnguIcg4LmB4LiL4LmI4LiE4Li5DQor4LmA4LiL4LmH4LiH4LmA4Liu4Li14Lii4LiHIOC5geC4i+C5iOC5gOC4leC4teC4ouC4pw0KK+C5gOC4i+C5iOC4h+C5gOC4leC4teC4ouC4hyDguYHguIvguYjguYLguIfguYnguKcNCivguYDguIvguYnguKLguYDguIjguLXguYjguKIg4LmB4LiL4LmI4LmA4Lia4LmKDQor4LmC4LiL4LmA4Lif4Li14LiiIOC4lOC4s+C4quC4s+C4o+C4suC4jQ0KK+C5hOC4i+C4iOC4uSDguYHguIvguYjguK3guLbguYnguIcNCivguYTguIvguYLguIHguK3guLHguIcg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4LmE4LiL4LmJ4LmA4Lit4LmH4LiHIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4jeC4suC4k+C4tOC4meC4tSDguJjguIrguLLguKXguLjguKDguLHguI8NCivguI3guLLguJPguLXguKLguYwg4Lit4Li44LmJ4Lii4Liq4LiB4Li44LilDQor4LiN4Liy4LiZ4Li1IOC4leC4seC4meC4leC4tOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4kOC4meC4tOC4lOC4siDguKrguIHguLjguKXguIrguLHguKLguKfguLLguJnguLTguIoNCivguJDguLLguIHguLnguKMg4LiX4Lij4LiH4Lib4Lij4Liw4LiI4Lix4LiB4Lip4LmM4LiB4Li44LilDQor4LiQ4Liy4LiZ4Lix4LiZ4LiU4Lij4LmMIOC4reC4seC4qOC4p+C5gOC4peC4tOC4qOC4quC4o+C4ow0KK+C4kOC4suC4meC4tOC4qOC4p+C4o+C5jCDguYDguIjguKPguLTguI3guJ7guIfguKjguYwNCivguJDguLLguJvguJnguLUg4Lio4Lij4Li14LiZ4Liy4LiEDQor4LiQ4Li04LiV4Lij4Liy4Lie4LijIOC4quC4s+C4o+C4suC4jeC4iOC4tOC4leC4leC5jA0KK+C4kOC4tOC4leC4tCDguYLguIrguITguYDguIjguKPguLTguI3guJ7guLHguJLguJnguIHguLTguIgNCivguJDguLTguJXguLTguIHguLIg4Lih4Li14LiY4Lij4LiT4Li1DQor4LiQ4Li04LiV4Li04LiZ4Lix4LiZ4LiX4LmMIOC4iOC4o+C4tOC4ouC4p+C4seC4kuC4meC4quC4geC4uOC4pQ0KK+C4kOC4tOC4leC4tOC4nuC4h+C4qOC5jCDguKjguLjguKDguJzguKUNCivguJDguLTguJXguLTguJ7guKMg4LmA4LiV4LiK4Liw4LmC4Liq4Lig4LiT4Lih4LiT4Li1DQor4LiQ4Li04LiV4Li04Lie4LijIOC4quC4t+C4muC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4kOC4tOC4leC4tOC4oeC4siDguITguIfguKrguKfguYjguLLguIcNCivguJDguLTguJXguLTguKHguLIg4LmA4Lie4Li14Lii4Lij4LiK4Lit4LiaDQor4LiQ4Li04LiV4Li04Lih4LiyIOC4reC4meC4uOC4quC4meC4mOC4tOC5jA0KK+C4kOC4tOC4leC4tOC4o+C4seC4leC4meC5jCDguJvguKPguLDguKDguLLguKLguKrguLLguJjguIENCivguJDguLTguJXguLTguKfguLHguJLguJnguYwg4Lil4LmJ4Lin4LiZ4Lin4Lix4LiS4LiZ4Liy4LiZ4Li44LiB4Li54LilDQor4LiQ4Li04Lij4Liy4Lit4LijIOC4oeC4tOC4meC4o+C4suC4iuC4seC4mQ0KK+C5gOC4keC4teC4ouC4oyDguIHguKPguKPguJPguKrguLnguJUNCivguJPguJDguKfguKPguKPguJMg4Lib4Lij4Liw4Lii4Li44LiB4LiV4LmM4Liq4LiB4Li44LilDQor4LiT4Lie4LilIOC4nuC4peC4tOC4meC4quC4uOC4lQ0KK+C4k+C4o+C4h+C4hOC5jOC4iuC4seC4oiDguIHguLTguJXguJXguLTguYLguIrguJXguLTguKPguLHguJXguJnguYwNCivguJPguKPguIfguITguYzguIrguLHguKIg4LiY4LiZ4Liw4Lib4Lix4LiB4Lip4Li04LiTDQor4LiT4Lij4LiH4LiE4LmM4LiK4Lix4LiiIOC4qOC4tOC4o+C4tOC4muC4uOC4jeC4peC4sOC4oeC5iOC4reC4oQ0KK+C4k+C4o+C4h+C4hOC5jOC4ouC4qCDguKrguLPguKPguLLguI0NCivguJPguKPguIfguITguYzguKTguJfguJjguLTguYwg4Lie4LiZ4Liy4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiT4Lij4LiH4LiE4LmM4Lin4Li04LiX4Lii4LmMIOC4p+C4tOC4l+C4quC4seC4l+C4mOC4suC4p+C4o+C4geC4uOC4pQ0KK+C4k+C4o+C4h+C4hOC5jOC4qOC4seC4geC4lOC4tOC5jCDguJTguLXguK3guLPguJ7guLHguJkNCivguJPguKPguIfguITguYzguKjguLHguIHguJTguLTguYwg4Lie4Lij4Lir4Lih4Liq4Liy4LiC4LiyIOC4kyDguKrguIHguKXguJnguITguKMNCivguJPguKPguIfguITguYzguKjguLHguIHguJTguLTguYwg4LmA4Lil4Li04Lio4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4LiT4Lij4LiH4LiE4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC5geC4quC4h+C4p+C4seC4iuC4ow0KK+C4k+C4o+C4h+C4hOC5jOC5gOC4lOC4iiDguJrguLjguI3guITguKPguK3guIcNCivguJPguKPguIfguITguYwg4LiB4Lit4LiH4LiX4Lij4Lix4Lie4Lii4LmM4LmC4LiVDQor4LiT4Lij4LiH4LiE4LmMIOC4geC4uOC4quC4quC4peC4suC4meC4uOC4oOC4suC4ng0KK+C4k+C4o+C4h+C4hOC5jCDguILguLHguJnguIjguK3guIENCivguJPguKPguIfguITguYwg4LiE4Liz4Lie4Liy4LiZ4Li04LiKDQor4LiT4Lij4LiH4LiE4LmMIOC4iOC4p+C4muC4pOC4geC4qeC5jOC5gOC4ouC5h+C4mQ0KK+C4k+C4o+C4h+C4hOC5jCDguIjguLPguKPguLnguI3guKfguLHguJLguJnguYwNCivguJPguKPguIfguITguYwg4LmA4LiI4Lij4Li04LiN4LmA4LiB4Li14Lii4Lij4LiV4Li04Lin4LiH4Lio4LmMDQor4LiT4Lij4LiH4LiE4LmMIOC4iuC4seC4ouC4mOC4teC4o+C4geC4tOC4iA0KK+C4k+C4o+C4h+C4hOC5jCDguYLguIrguITguIjguLLguKPguLjguKPguLHguJXguJnguYwNCivguJPguKPguIfguITguYwg4LiU4LmI4Liy4LiZ4Lit4LiZ4Lix4LiZ4LiV4LmM4Liq4Li44LiCDQor4LiT4Lij4LiH4LiE4LmMIOC4leC4seC5ieC4h+C4p+C4tOC4muC4ueC4peC4ouC5jOC4p+C4tOC4l+C4ouC5jA0KK+C4k+C4o+C4h+C4hOC5jCDguYLguJXguYrguLDguYDguIfguLTguJkNCivguJPguKPguIfguITguYwg4LiX4Lit4LiH4LmA4Lij4Li34Lit4LiHDQor4LiT4Lij4LiH4LiE4LmMIOC5hOC4l+C4ouC4quC4uOC4o+C4tOC4ouC4sA0KK+C4k+C4o+C4h+C4hOC5jCDguJnguYnguK3guKLguKfguIfguKjguYwNCivguJPguKPguIfguITguYwg4LiZ4Li44LiV4LiI4Lij4Lix4LiqDQor4LiT4Lij4LiH4LiE4LmMIOC4muC4uOC4jeC4quC4tOC4l+C4mOC4tOC5jA0KK+C4k+C4o+C4h+C4hOC5jCDguJvguKPguLXguI3guLLguJnguJnguJfguYwNCivguJPguKPguIfguITguYwg4Lic4Lil4Liy4Lih4Li04LiV4LijDQor4LiT4Lij4LiH4LiE4LmMIOC4nuC4o+C4suC4ouC4l+C4reC4hw0KK+C4k+C4o+C4h+C4hOC5jCDguJ7guLTguKPguLTguKLguJ7guKTguJnguJfguYzguKrguIHguLjguKUNCivguJPguKPguIfguITguYwg4LmC4Lie4LiY4Li04Lie4Li44LiB4LiB4Liw4LiZ4LiwDQor4LiT4Lij4LiH4LiE4LmMIOC4oeC4k+C4teC4p+C4h+C4qeC5jA0KK+C4k+C4o+C4h+C4hOC5jCDguYDguKHguJjguLXguKfguLTguKPguLTguKLguLLguKDguKPguJPguYwNCivguJPguKPguIfguITguYwg4Lij4Lit4LiU4Liq4Liy4LiiDQor4LiT4Lij4LiH4LiE4LmMIOC4o+C4uOC5iOC4h+C4p+C4tOC4iuC4suC4meC4tOC4p+C4seC4kuC4meC5jA0KK+C4k+C4o+C4h+C4hOC5jCDguKXguLTguKHguJvguLTguKjguLTguKXguJvguYwNCivguJPguKPguIfguITguYwg4Lin4LiH4Lip4LmM4Liq4Lin4LmI4Liy4LiHDQor4LiT4Lij4LiH4LiE4LmMIOC4p+C4tOC4muC4ueC4peC4ouC5jOC5gOC4iOC4o+C4tOC4jeC4geC4tOC4iA0KK+C4k+C4o+C4h+C4hOC5jCDguKjguKPguLXguJnguLLguKfguLLguKfguIfguKjguYwNCivguJPguKPguIfguITguYwg4Lio4Li04Lil4Lib4LiK4Liz4LiZ4Liy4LiNDQor4LiT4Lij4LiH4LiE4LmMIOC4quC4o+C4o+C4quC4uOC4meC4l+C4ow0KK+C4k+C4o+C4h+C4hOC5jCDguKrguLTguJfguJjguLTguKHguIfguITguKUNCivguJPguKPguIfguITguYwg4Liq4Li44LiX4LiY4Li04Lin4Lix4LilDQor4LiT4Lij4LiH4LiE4LmMIOC5gOC4quC4suC4p+C4peC4seC4geC4qeC4k+C5jA0KK+C4k+C4o+C4h+C4hOC5jCDguKvguKHguLfguYjguJnguKfguIfguKnguYwNCivguJPguKPguIfguITguYwg4Lit4LiU4Li44Lil4Lii4LmM4Lin4Li04LiI4Li04LiV4LijDQor4LiT4Lij4LiH4LiE4LmMIOC4reC4seC4h+C4hOC4sOC4iOC4seC4meC4l+C4o+C5jA0KK+C4k+C4o+C4h+C4hOC5jCDguK3guLjguYjguJnguK3guYjguK3guJkNCivguJPguKPguIfguKjguLHguIHguJTguLTguYwg4LiV4Lix4LmJ4LiH4LmA4LiI4Lij4Li04LiN4Liq4Li44LiC4LiI4Li14Lij4LiwDQor4LiT4Lij4Li04Liq4Liy4Lir4LmMIOC5gOC4q+C4peC4t+C4reC4h+C4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4k+C4seC4iuC4iuC4siDguIHguKrguLTguJ7guKPguYnguK3guIcNCivguJPguLHguI7guJDguJ7guKMg4Lie4Lij4Lir4Lih4LiI4Li04LiZ4LiU4LiyDQor4LiT4Lix4LiO4LiQ4Li04LiZ4Li1IOC4lOC4p+C4h+C4oOC4tOC4o+C4oeC4ouC5jA0KK+C4k+C4seC4j+C4kOC4nuC4h+C4qOC5jCDguILguIjguKPguYLguIHguKfguLTguJfguKLguYwNCivguJPguLHguI/guJDguLIg4LiZ4LmJ4Lit4Lii4LiZ4Li04Lin4Lij4LiT4LmMDQor4LiT4Lix4LiP4LiQ4LmE4LiK4LiiIOC4quC4suC4ouC4muC4seC4pw0KK+C4k+C4seC4kCDguJbguJnguK3guKHguJ7guLTguIrguLHguKINCivguJPguLHguJAg4Lit4Li04LiZ4LiY4LiB4Liy4LijDQor4LiT4Lix4LiQ4LiB4Liy4LiZ4LiV4LmMIOC4iOC4h+C4lOC4tQ0KK+C4k+C4seC4kOC4geC4suC4oyDguK3guLjguJTguKHguKvguKPguKPguKnguLLguIHguLjguKUNCivguJPguLHguJDguIrguJnguIEg4LmB4LiB4LmI4LiH4Lir4Li04LiZ4LmB4LiB4LmJ4LinDQor4LiT4Lix4LiQ4LiK4Lix4LiiIOC4m+C4tOC4ouC4sOC4p+C4h+C4qOC5jOC4p+C4seC4kuC4meC4sg0KK+C4k+C4seC4kOC4jeC4siDguKXguLXguYnguJ7guYnguJnguJ7guLLguKUNCivguJPguLHguJDguJPguLTguIrguLIg4LiY4LmA4LiZ4Lio4Lie4LiH4Lio4LmM4LiY4Lij4Lij4LihDQor4LiT4Lix4LiQ4LiY4LijIOC4hOC4ueC4lOC4s+C4o+C4h+C4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4k+C4seC4kOC4meC4seC4meC4l+C4meC5jCDguJfguK3guIfguKfguLTguYDguKjguKkNCivguJPguLHguJDguJvguIHguKPguJPguYwg4LmA4Lil4Liy4LmB4LiB4LmJ4Lin4Lir4LiZ4Li5DQor4LiT4Lix4LiQ4Lie4LiH4Lio4LmMIOC4quC4tOC4o+C4tOC4nuC4peC4seC4h+C4hOC4suC4meC4meC4l+C5jA0KK+C4k+C4seC4kOC4nuC4h+C4qeC5jCDguKrguLHguJnguJXguLTguKjguLLguJnguJXguYwNCivguJPguLHguJDguJ7guKMg4LiZ4Liy4Lih4Lia4Li44Lij4Li1DQor4LiT4Lix4LiQ4Lie4LijIOC4q+C4p+C4seC4h+C4qOC4o+C4teC4leC4o+C4seC4og0KK+C4k+C4seC4kOC4nuC4pSDguIrguYnguLLguIfguKrguLPguKXguLUNCivguJPguLHguJDguJ7guKUg4Lig4Lix4LiX4Lij4LmA4Lij4Li34Lit4LiH4Liq4LiB4Li44LilDQor4LiT4Lix4LiQ4Lie4LilIOC4q+C4p+C4seC4h+C4pOC4l+C4mOC4tOC5jOC5hOC4geC4o+C4geC4uOC4pQ0KK+C4k+C4seC4kOC4oOC4o+C4k+C5jCDguJ7guKPguIHguLTguJXguJXguLTguYLguIrguJXguLTguYDguIjguKPguLTguI0NCivguJPguLHguJDguKLguLIg4Lio4Li04Lij4Li04LiZ4Lix4LiZ4LiX4LmMDQor4LiT4Lix4LiQ4Lin4LijIOC4quC4tOC4h+C4q+C4l+C4seC4lQ0KK+C4k+C4seC4kOC4p+C4o+C4o+C4kyDguKPguLHguKjguKHguLXguJ7guKPguKvguKENCivguJPguLHguJDguKfguLHguJLguJnguYwg4Lia4Li44LiZ4LiZ4Liy4LiEDQor4LiT4Lix4LiQ4Lin4Li44LiS4Li0IOC4iOC4suC4o+C4uOC4p+C4o+C4o+C4k+C4suC4geC4ueC4ow0KK+C4k+C4seC4kOC4p+C4uOC4kuC4tCDguJvguLHguI3guJXguLDguYLguI0NCivguJPguLHguJDguKfguLjguJLguLQg4Liq4Li04Lih4Liw4Liq4Li44Lin4Lij4Lij4LiT4Lij4LiH4LiE4LmMDQor4LiT4Lix4LiQ4Liq4Lih4Lie4LilIOC4iOC4s+C4m+C4suC4l+C4tOC4nuC4ouC5jA0KK+C4k+C4seC4kOC4quC4uOC4o+C4suC4h+C4hOC5jCDguKvguKXguLTguKHguYDguIjguKPguLTguI0NCivguJPguLHguJDguLTguKLguLIg4Liq4Lix4LiZ4LiV4Li04LmC4Lii4LiY4Li04LiZDQor4LiT4Lix4Lio4Lig4LijIOC5gOC4reC4teC5iOC4ouC4oeC5guC4reC4oOC4suC4qg0KK+C4k+C4tOC4iuC4suC4oOC4seC4l+C4oyDguIrguKHguKfguLTguIrguLINCivguJPguLjguJXguLTguKjguLTguKnguI/guYwg4Lin4Li04Lia4Li54Lil4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4LiU4LiZ4Lix4LiiIOC4geC4peC5iOC4reC4oeC5gOC4reC4teC5ieC4ouC4hw0KK+C4lOC4meC4seC4oiDguInguLHguJ7guJ7guKPguKPguJPguKPguLHguIfguKnguLUNCivguJTguJnguLHguKIg4LiX4Li04Lin4Liy4LmA4Lin4LiKDQor4LiU4LiZ4Lix4LiiIOC4nuC4tOC4k+C4o+C4seC4leC4meC5jA0KK+C4lOC4meC4seC4oiDguKfguLHguJLguJnguKPguLHguIrguIHguLTguIgNCivguJTguJnguLHguKIg4Lir4Liw4Liq4Li04LiV4Liw4Lie4LiH4Lip4LmMDQor4LiU4LiZ4Li44LiI4LijIOC5gOC4iOC4tOC4oeC5gOC4iOC4tOC4lOC4nuC4pQ0KK+C4lOC4o+C4o+C4iuC4meC4tSDguYDguJfguKfguLLguJnguLjguKPguLHguIHguKnguYwNCivguJTguKPguLjguJPguJ7guKMg4LiB4Lih4Lil4Lig4Li44LiqDQor4LiU4Lij4Li44LiT4Li1IOC4iOC4seC4meC4lOC4suC5gOC4p+C4teC4ouC4hw0KK+C4lOC4o+C4uOC4k+C4tSDguJXguKPguLXguKjguLTguKPguLTguJ7guLTguKjguLLguKUNCivguJTguKPguLjguJPguLUg4Lia4Li44Lip4Lii4Liy4LiZ4Li44LmA4LiE4Lij4Liy4Liw4Lir4LmMDQor4LiU4Lij4Li44LiT4Li1IOC4o+C4seC4geC4quC4seC4leC4ouC5jA0KK+C4lOC4o+C4uOC4k+C4tSDguKjguKPguLXguIrguLHguKLguIHguLjguKUNCivguJTguKPguLjguJPguLUg4Lir4Liy4LiN4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LiU4Lil4LiT4Lix4LiP4LiQ4LiyIOC4qOC4o+C4teC5gOC4o+C4t+C4reC4h+C4iuC4teC4ng0KK+C4lOC4peC4pOC4lOC4tSDguKfguLTguJfguKLguLLguKjguLTguKPguLTguIHguLjguKUNCivguJTguKfguIcg4LmA4Liq4Lih4Liy4LiB4Li54LijDQor4LiU4Lin4LiH4LiB4Lih4LilIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4lOC4p+C4h+C4geC4oeC4pSDguJ7guLnguJ7guLHguJLguJnguLLguJnguLjguKPguLHguIHguKnguYwNCivguJTguKfguIfguIHguKHguKUg4Liq4Li04LiZ4LiY4Li44Lia4Li54Lij4LiT4LmMDQor4LiU4Lin4LiH4LiI4Lix4LiZ4LiX4Lij4LmMIOC4hOC4peC4seC4h+C4leC4o+C4sOC4geC4ueC4pQ0KK+C4lOC4p+C4h+C4iOC4seC4meC4l+C4o+C5jCDguYLguKLguJjguLLguKrguLTguIfguKvguYwNCivguJTguKfguIfguIjguLTguJXguJXguYwg4LiB4Liy4Lij4Li44LiT4Liq4LiW4Li04LiV4Lii4LmM4LiK4Lix4LiiDQor4LiU4Lin4LiH4LiU4Liy4LinIOC5geC4i+C5iOC4geC5iuC4p+C4og0KK+C4lOC4p+C4h+C4lOC4suC4pyDguYDguKvguKXguLfguK3guIfguK3guLLguKrguJnguLDguJfguLTguJ7guKLguYwNCivguJTguKfguIfguJXguLIg4LmB4LiV4LiH4Lit4LmI4Lit4LiZDQor4LiU4Lin4LiH4LiV4LiyIOC4quC4oeC4iOC4tOC4leC4o+C5jA0KK+C4lOC4p+C4h+C4l+C4tOC4nuC4ouC5jCDguKfguJnguLDguKDguLnguJXguLQNCivguJTguKfguIfguJnguKDguLIg4Liq4Lin4LiZ4LiY4LiZ4Liy4Lio4Li04Lij4Li0DQor4LiU4Lin4LiH4Lie4LijIOC4hOC4s+C4guC4seC4meC4mOC5jA0KK+C4lOC4p+C4h+C4nuC4oyDguIrguLjguKHguJ7guIfguKnguYzguJfguK3guIcNCivguJTguKfguIfguJ7guKMg4LmE4LiV4Lij4Liq4Li44LiY4Lij4Lij4Lih4Lie4LijDQor4LiU4Lin4LiH4Lie4LijIOC4m+C4tOC4ouC4sOC4iuC4suC4leC4tOC4meC4seC4meC4l+C5jA0KK+C4lOC4p+C4h+C4nuC4oyDguKLguIfguITguYzguKTguJvguKPguLDguJ7guLHguJnguJjguYwNCivguJTguKfguIfguJ7guKMg4Lin4Li04LmE4Lil4Lie4Lij4LmA4LiI4Lij4Li04LiNDQor4LiU4Lin4LiH4Lie4LijIOC4quC4uOC4hOC4meC4mOC5jA0KK+C4lOC4p+C4h+C4nuC4oyDguK3guLbguYnguIfguK3guLHguKHguJ7guKPguKfguLTguYTguKUNCivguJTguKfguIfguKHguJkg4Lin4LiH4Lip4LmM4LiI4Lix4LiZ4LiX4Lij4LmM4LmB4LiU4LiHDQor4LiU4Lin4LiH4Lij4Lix4LiV4LiZ4LmMIOC4lOC5iOC4suC4meC4p+C4seC4kuC4meC4qOC4tOC4o+C4tA0KK+C4lOC4p+C4h+C4o+C4seC4leC4meC5jCDguKjguKPguLXguJfguK3guIcNCivguJTguKfguIfguKTguJTguLUg4LiX4Lin4Li14Lie4LiI4LiZ4LmMDQor4LiU4Lin4LiH4Lik4Lih4LilIOC4o+C4seC4geC4qeC4suC4hOC4uOC4kw0KK+C4lOC4p+C4h+C4quC4oeC4oyDguKHguJPguLXguJzguYjguK3guIcNCivguJTguKfguIfguKrguLjguKHguJkg4Liq4Lih4Lin4Li04LiK4Lix4LiiDQor4LiU4Lin4LiH4LmA4LiU4Li34Lit4LiZIOC4hOC4peC5ieC4suC4ouC4nuC4h+C4qeC5jOC4nuC4seC4meC4mOC5jA0KK+C4lOC4p+C4h+C5gOC4lOC4t+C4reC4mSDguJrguLjguI3guIrguLHguKLguKTguJfguJjguLTguYwNCivguJTguKfguIfguYDguJTguLfguK3guJkg4Liq4Lix4Lii4LmA4LiB4LiV4Li4DQor4LiU4Lin4LiH4LmA4Lie4LiK4LijIOC4reC4o+C4seC4jeC4iuC4o+C4suC4mOC4ow0KK+C4lOC4p+C4h+C5geC4giDguYLguIHguKHguLjguJfguJ7guIfguKjguYwNCivguJTguKfguIfguYPguIgg4LiB4Li14Lij4Liw4Lin4Li04Lio4Liy4Liq4LiB4Li04LiIDQor4LiU4Lin4LiH4LmD4LiIIOC4iuC4suC4p+C4m+C4o+C4sOC4quC4sg0KK+C4lOC4p+C4h+C5g+C4iCDguJfguLHguJ7guJ7guLDguKPguLHguIfguKrguLUNCivguJTguKfguIfguYPguIgg4Lic4Li44LiU4Lib4Lij4Liw4Lig4Liy4LiB4Li44LilDQor4LiU4Lin4LiH4LmD4LiIIOC4o+C4seC4geC5gOC4meC4leC4o+C4quC4suC4hOC4ow0KK+C4lOC4p+C4h+C5g+C4iCDguKrguIfguKfguJnguYHguIHguYnguKcNCivguJTguKfguIfguYPguIgg4Lit4Li44Lib4LmA4Liq4LiZ4Liq4LiB4Li44Lil4Lin4LiH4Lip4LmMDQor4LiU4Lit4LiB4LmE4Lih4LmJIOC4iOC5ieC4reC4ouC4luC4meC4reC4oQ0KK+C4lOC4sOC4q+C5jCDguJTguLXguYDguIjguKPguLTguI0NCivguJTguLHguKrguIvguLHguJnguIvguLTguIfguKvguYwg4LiB4Li44Lil4Liy4LiV4Li1DQor4LiU4Liy4Lij4LmM4LiK4Lix4LmI4LiZIOC4i+C4tOC4h+C4q+C5jA0KK+C4lOC4suC4o+C4k+C4tSDguIjguLPguJvguLINCivguJTguLLguKPguJPguLUg4LiW4Li04Lij4LiY4LiZ4LiB4Li44LilDQor4LiU4Liy4Lij4LiT4Li1IOC5gOC4m+C4o+C4t+C5iOC4reC4h+C4p+C4tOC4l+C4ouC4suC4geC4uOC4pQ0KK+C4lOC4suC4o+C4k+C4tSDguYDguKHguIbguIHguKfguLUNCivguJTguLLguKPguJPguLUg4Lin4Li04LiK4LiN4LiE4Li44Lib4LiV4LmMDQor4LiU4Liy4Lij4LiT4Li1IOC5gOC4quC4o+C4tOC4oeC4quC4uOC4meC4l+C4o+C4qOC4tOC4peC4m+C5jA0KK+C4lOC4suC4o+C4sOC4geC4siDguKjguLTguKPguLTguKrguLHguJnguJXguLTguKrguLHguKHguKTguJfguJjguLTguYwNCivguJTguLLguKPguLIg4LiI4Lix4LiZ4LiX4Lij4LmM4LmB4Liq4LiH4Liq4Li44LiBDQor4LiU4Liy4Lij4LiyIOC5gOC4peC4teC5ieC4ouC4h+C4iuC4ueC4qOC4seC4geC4lOC4tOC5jA0KK+C4lOC4suC4o+C4suC4k+C4tSDguYDguKrguLLguKfguKHguKUNCivguJTguLLguKPguLLguKPguLHguJXguJnguYwg4LiI4Li04LiH4LmA4Liq4LiW4Li14Lii4Lij4LiX4Lij4Lix4Lie4Lii4LmMDQor4LiU4Liy4Lij4Liy4Lij4Lix4LiV4LiZ4LmMIOC4quC4luC4tOC4leC4mOC4o+C4o+C4oeC4meC4ueC4jQ0KK+C4lOC4suC4o+C4suC4p+C4o+C4o+C4kyDguKPguLHguJXguJnguKrguLjguKDguLINCivguJTguLLguKPguLTguJPguLUg4LmA4LiB4Lip4Lih4Liq4Lix4LiZ4LiV4LmMDQor4LiU4Liy4Lij4Li04LiZ4LiX4Lij4LmMIOC4quC4reC4meC5gOC4iOC4leC4meC5jA0KK+C4lOC4suC4o+C4uOC4k+C4tSDguKHguLHguYjguJnguITguIcNCivguJTguLLguKXguLHguJQg4Lin4Li04Lih4Li44LiB4LiV4Li04Lia4Li44LiV4LijDQor4LiU4Liy4Lin4LiT4Li1IOC4quC4uOC4guC4oeC4sg0KK+C4lOC4suC4p+C4o+C4uOC5iOC4hyDguJ7guKPguKvguKHguKjguKPguLXguJfguK3guIcNCivguJTguLLguKfguLjguJIg4Lit4Lix4LiK4LiM4Liy4Liq4Lix4LiiDQor4LiU4Liy4Lin4LmA4Lij4Li34Lit4LiHIOC4o+C4reC4lOC4oOC4seC4og0KK+C4lOC4suC5gOC4o+C4qCDguJ7guKPguKPguJPguILguLLguKENCivguJTguLPguKPguIcg4LmA4LiB4Lip4Liw4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LiU4Liz4Lij4LiHIOC4l+C4reC4h+C4oeC4suC4gQ0KK+C4lOC4s+C4o+C4hyDguKPguLHguIrguJXguKjguKPguLXguJvguKPguLDguYDguKrguKPguLTguJANCivguJTguLPguKPguIcg4Liq4Li44LiC4Lic4Lil4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4LiU4Liz4Lij4LiH4LiE4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4l+C4reC4h+C4ouC4t+C4mQ0KK+C4lOC4s+C4o+C4h+C4hOC5jCDguITguIfguYDguIjguKPguLTguI0NCivguJTguLPguKPguIfguITguYwg4LiK4Li54LiV4Li04LiB4Liy4LiN4LiI4LiZ4LmMDQor4LiU4Liz4Lij4LiH4LiE4LmMIOC4l+C4reC4h+C4nuC4peC4suC4og0KK+C4lOC4s+C4o+C4h+C4hOC5jCDguJvguKPguLXguJTguLLguKDguLHguJfguKPguJ7guIfguKnguYwNCivguJTguLPguKPguIfguITguYwg4Lig4Li54LiX4Lix4LiV4LmC4LiVDQor4LiU4Liz4Lij4LiH4LiE4LmMIOC4p+C4h+C4qeC5jOC4l+C4reC4hw0KK+C4lOC4s+C4o+C4h+C4hOC5jCDguKrguLTguKHguJ7guKXguLTguJ7guLHguJnguJjguLjguYwNCivguJTguLPguKPguIfguITguYwg4Lit4Liy4Lii4Li44LmA4LiI4Lij4Li04LiN4LiB4Li54LilDQor4LiU4Liz4Lij4LiH4Lik4LiX4LiY4Li04LmMIOC4quC4seC4meC4leC4tOC4m+C4suC4leC4tQ0KK+C4lOC4s+C4o+C4h+C4qOC4seC4geC4lOC4tOC5jCDguKHguLDguKXguLTguJfguK3guIcNCivguJTguLPguKPguIfguYDguIHguLXguKLguKPguJXguLQg4Lih4Li04LiV4Lij4Lig4Lix4LiB4LiU4Li1DQor4LiU4Liz4Lij4Li0IOC4nOC4suC4h+C4ouC4reC4ouC4i+C5ieC4suC4og0KK+C4lOC4s+C4o+C4tOC4q+C5jCDguJvguKPguLjguIfguYHguJXguYjguIfguIHguLTguIgNCivguJTguLPguYDguIHguLTguIcg4LiI4Lix4LiZ4LiX4Lij4Liy4Lib4Lij4Liw4Lig4Liy4LmA4Lin4LiKDQor4LiU4Liz4LmA4LiZ4Li04LiZIOC5gOC4nOC5iOC4suC4nuC4seC4meC4mOC4uOC5jA0KK+C4lOC4tOC4mSDguKPguLfguYjguJnguJ7guLTguJfguLHguIHguKnguYwNCivguJTguLTguKXguIEg4Lib4Lij4Liy4LiH4LiE4LmM4LiZ4Lin4Lij4Lix4LiV4LiZ4LmMDQor4LiU4Li04Lil4LiBIOC4quC4suC4oeC4peC5gOC4p+C4ig0KK+C4lOC4tOC4qeC4nuC4h+C4hOC5jCDguJ7guKTguJLguLTguJjguLLguJTguLINCivguJTguLTguYDguKPguIEg4LmA4LiB4LiV4Li44Lin4Lix4Liq4Lir4LmMDQor4LiU4Li04LmA4Lij4LiBIOC5guC4iuC4leC4tOC4p+C4tOC4iOC4tOC4leC4ow0KK+C4lOC4tOC5gOC4o+C4gSDguJrguLLguIfguYDguILguLXguKLguKcNCivguJTguLTguYDguKPguIEg4Lih4Li14Lit4LiZ4Lix4LiZ4LiV4LmMDQor4LiU4Li04LmA4Lij4LiBIOC4qOC4seC4geC4lOC4tQ0KK+C4lOC4tOC5gOC4o+C4gSDguYLguK7guKPguLINCivguJTguLXguKHguLHguYjguJkg4LiB4Lit4Lia4Lie4Li04Lih4Liy4LiiDQor4LiU4Li44LiI4LiU4Liy4LinIOC4quC4uOC4l+C4mOC4tOC4m+C4o+C4p+C4tOC4l+C4ouC4suC4geC4uOC4pQ0KK+C4lOC4uOC4peC4ouC4meC4tOC4leC4ouC5jCDguK3guLjguJTguKHguKfguIfguKjguYzguJfguKPguLHguJ7guKLguYwNCivguJTguLjguKnguI7guLUg4LmA4LiI4Lij4Li04LiN4LiI4Li04LiV4LiB4LijDQor4LiU4Li44Lip4LiO4Li1IOC4nuC4seC4geC4leC4o+C4nuC4seC4meC4mOC4suC4meC4meC4l+C5jA0KK+C4lOC4uOC4qeC4juC4tSDguKrguLTguJfguJjguLTguJfguK3guIcNCivguJTguLjguKnguI/guLUg4Lij4Lix4LiV4LiZ4Liy4Liq4Lix4LiH4LiB4Liy4LijDQor4LiU4Li44Lip4LiT4Li1IOC5gOC4peC4o+C4suC4oeC4seC4jQ0KK+C4lOC4uOC4qeC4lOC4tSDguK3guJnguLHguJnguJXguYzguKXguLHguIHguKnguJPguYzguIHguLLguKMNCivguJTguLjguKrguLTguJUg4LmB4LiI4LmI4Lih4Lio4Lij4Li1DQor4LiU4Li44Liq4Li04LiVIOC4muC4uOC4qeC4muC4sg0KK+C4lOC4uOC4quC4tOC4lSDguKfguLTguKPguKLguKjguLTguKPguLQNCivguJTguLjguKrguLTguJXguJjguKPguKPguKHguITguLjguJMg4Lie4Lij4Liw4LiE4Lij4Li5DQor4LmA4LiU4LiKIOC4luC4tOC4leC4ouC5jOC4quC4h+C4p+C4mQ0KK+C5gOC4lOC4iiDguKvguJnguLnguJnguYnguLMNCivguYDguJTguIrguJ7guKUg4LmA4Lir4Lij4Li14Lii4LiN4Lin4Li04LmC4Lij4LiI4LiZ4LmMDQor4LmA4LiU4LiK4LiyIOC4geC5ieC4reC4h+C5hOC4nuC4o+C4tOC4meC4l+C4o+C5jA0KK+C5gOC4lOC4iuC4siDguIjguLLguKPguLjguKHguJPguLXguYLguKPguIjguJnguYwNCivguYDguJTguIrguLIg4LmB4LiL4LmI4LmB4LiV4LmJDQor4LmA4LiU4LiK4LiyIOC5gOC4l+C4qOC4sOC4qOC4tOC4o+C4tA0KK+C5gOC4lOC4iuC4siDguYDguJvguLXguYjguKLguKHguKPguLLguKjguKPguLUNCivguYDguJTguIrguLIg4Lih4Li14Lij4Liw4LmA4Liq4LiZDQor4LmA4LiU4LiK4LiyIOC5hOC4p+C4p+C5iOC4reC4hw0KK+C5gOC4lOC4iuC4siDguKrguLjguJLguJnguIHguLTguIjguIHguLjguKUNCivguYDguJTguIrguLIg4Lit4Li04LiZ4LiX4LiZ4Li04LilDQor4LmA4LiU4Lin4Li04LiUIOC5gOC4lOC4meC4meC4teC5iA0KK+C5gOC4lOC4t+C4reC4mSDguJvguLTguKLguLDguKHguLLguKXguKLguYzguKHguLLguKgNCivguYDguJTguLfguK3guJnguJfguLTguJ7guKLguYwg4LiK4Lix4Lii4Lie4Lix4LiZ4LiY4LmMDQor4LmA4LiU4Li34Lit4LiZ4LmA4Lie4LmH4LiNIOC4kOC4suC4m+C4meC4suC4iuC4seC4og0KK+C5gOC4lOC4t+C4reC4meC5gOC4nuC5h+C4jSDguKfguKPguJvguKPguLDguYDguKrguKPguLTguJANCivguYDguJTguYLguIog4Lin4Li44LiS4Li04LiB4Liy4LiN4LiI4LiZ4Liy4Lin4LiH4Lio4LmMDQor4LmA4LiU4LmI4LiZIOC4qOC4tOC4o+C4tOC4muC4uOC4jQ0KK+C5gOC4lOC5iOC4meC4meC4oOC4siDguKjguLLguKXguLTguITguLjguJvguJUNCivguYHguJTguIcg4LiI4Lij4LiI4Lix4LiZ4LiX4Lij4LmMDQor4LmB4LiU4LiHIOC4lOC5iOC4suC4meC5geC4iOC5ieC4hw0KK+C5geC4lOC4hyDguKHguYjguKfguIfguIfguLLguKENCivguYHguJTguIcg4Lir4LiZ4Li54Lie4Lix4LiZ4LiY4LmMDQor4LmB4LiU4LiZ4LiK4Lix4LiiIOC4guC4suC4p+C4ieC4reC5ieC4reC4mQ0KK+C5hOC4lOC5ieC5gOC4reC5h+C4hyDguYHguIvguYjguJzguLnguYgNCivguJXguJXguLTguKLguLIg4LiI4Li04LiZ4Liy4Lin4LiH4Lio4LmMDQor4LiV4Lij4Lij4LiB4Lie4LiH4Lip4LmMIOC4q+C4suC4jeC4nuC4tOC4l+C4seC4geC4qeC5jOC4jeC4suC4leC4tA0KK+C4leC4o+C4sOC4geC4ueC4pSDguIjguLHguJnguYHguJXguIcNCivguJXguKPguLHguKLguJ7guIjguJnguYwg4LiV4Li04Liq4Lij4Liw4Lie4LiH4Lio4LmMDQor4LiV4Lij4Li14LiK4Lix4LiiIOC4quC4uOC4l+C4mOC4tOC5gOC4iuC4t+C5ieC4reC4meC4suC4hA0KK+C4leC4o+C4teC4o+C4sOC4meC4seC4meC4l+C5jCDguKHguLDguKXguLDguITguLMNCivguJXguKPguLXguYDguJfguJ4g4LmA4Lie4Li14Lii4Lij4Lig4Lix4LiB4LiU4Li1DQor4LiV4Lil4Lix4LiaIOC4oeC4teC4quC4seC4oeC4pOC4l+C4mOC4tOC5jA0KK+C4leC4p+C4h+C4nuC4oyDguJjguJnguLHguIfguITguYDguKfguIrguKfguLTguJrguLnguKXguKLguYwNCivguJXguKfguIfguKrguLTguJfguJjguLTguYwg4Lih4LiZ4Lix4Liq4LiU4Liz4Lij4LiHDQor4LiV4Lit4LiHIOC4geC5ieC4suC4meC4l+C4reC4hw0KK+C4leC5iOC4reC4muC4uOC4jSDguKrguLjguKfguKPguKPguJPguYDguKDguKrguLHguIoNCivguJXguYjguK3guKjguLHguIHguJTguLTguYwg4LiX4Lit4LiH4Liq4Liy4LiiDQor4LiV4LmI4Lit4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4ouC4ueC5iOC4p+C4seC4kuC4meC4sg0KK+C4leC5ieC4reC4oiDguJnguLTguYjguKHguKrguLjguKfguKPguKPguJMNCivguJXguLDguKfguLHguJkg4LiW4Liy4Lin4Lij4Lit4LiZ4Li44Lih4Liy4LioDQor4LiV4Lix4LiH4LiJ4LmI4Liy4LiiIOC5geC4geC5ieC4p+C5hOC4nuC4o+C4seC4ig0KK+C4leC4seC5ieC4h+C4ruC4seC5iOC4h+C5gOC4hOC4teC5ieC4ouC4hyDguYHguIvguYjguJXguLHguYnguIcNCivguJXguLHguYnguJkg4LiK4Lil4LiY4Liy4LijDQor4LiV4Liy4LiaIOC4geC4o+C4suC4meC4iOC4o+C4ueC4jQ0KK+C4leC5ieC4suC5gOC4geC4teC4ouC4hyDguYHguIvguYjguYHguJXguYkNCivguJXguLTguYnguIfguIrguLjguJkg4LmB4LiL4LmI4LmA4LiV4Li14Lii4LinDQor4LiV4Li04LmL4LihIOC4muC4uOC4jeC4quC4meC4mOC4tOC5jA0KK+C4leC4tOC5i+C4pyDguKrguLLguKLguK3guLjguJrguKUNCivguJXguLXguYnguYDguK7guLXguKLguIcg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4LiV4Li14LmLIOC5geC4i+C5iOC5gOC4muC5ig0KK+C4leC4uOC5iuC4geC4leC4siDguYHguIvguYjguYHguJXguYkNCivguJXguLjguYjguKEg4LmB4LiL4LmI4LmA4LiW4Li14Lii4LiZDQor4LiV4Li44Lil4Lii4LiyIOC4quC4teC4q+C4oeC4suC4geC4quC4uOC4gQ0KK+C4leC4uOC5iiDguYDguKrguKPguLTguKHguKTguJfguJjguLTguKPguIfguITguYwNCivguYDguJXguLLguLDguYDguITguLXguYnguKLguIcg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4LmA4LiV4Li04LihIOC4quC4suC4oeC4meC4m+C4suC4pQ0KK+C5gOC4leC4tOC4oeC4qOC4o+C4tSDguKrguLjguKPguJ7guLHguJnguJjguLjguYwNCivguYDguJXguLTguKHguKjguLHguIHguJTguLTguYwg4Lit4Li04Lie4Lig4Li54LiU4LihDQor4LmA4LiV4Li14Lii4LiHIOC5geC4i+C5iOC5gOC4ruC5ieC4hw0KK+C5gOC4leC4teC4ouC4h+C4l+C4hyDguYHguIvguYjguYLguIfguYnguKcNCivguYDguJXguLXguKLguKfguYDguIvguLXguKLguLAg4LmB4LiL4LmI4LiJ4Lix4LmI4LinDQor4LmA4LiV4Li14LmJ4Lii4LmC4Lit4LinIOC5geC4i+C5iOC5gOC4leC4teC4og0KK+C5gOC4leC4t+C4reC4meC4iOC4tOC4leC4leC5jCDguYDguIjguKPguLTguI3guKrguLjguIINCivguYDguJXguLfguK3guJnguJXguLIg4Lir4Liy4LiN4Lin4Li04Lij4Li04Lii4Liw4Lik4LiX4LiY4LiyDQor4LmA4LiV4Li34Lit4LiZ4LmD4LiIIOC4h+C4suC4oeC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C5gOC4leC4t+C4reC4meC5g+C4iCDguYHguIvguYjguYDguK7guYfguIcNCivguYDguJXguLfguK3guJnguYPguIgg4LmA4LiZ4LiV4Lij4LmM4LiX4Lit4LiHDQor4LmA4LiV4Li34Lit4LiZ4LmD4LiIIOC4nuC4ueC4meC4peC5ieC4s+C5gOC4peC4tOC4qA0KK+C5gOC4leC4t+C4reC4meC5g+C4iCDguKXguLTguYnguKHguKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguYDguJXguLfguK3guJnguYPguIgg4Liq4Lix4LiH4LiC4Lij4Lix4LiV4LiZ4LmMDQor4LmA4LiV4Li34Lit4LiZ4LmD4LiIIOC4reC4q+C4tOC4h+C4quC5guC4gQ0KK+C5gOC4leC5h+C4geC4ouC5ieC4hyDguYHguIvguYjguKXguLTguYnguKENCivguYDguJXguYfguIfguIfguYnguKfguJkg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4LmA4LiV4LmH4Lih4LiU4Lin4LiHIOC5gOC4geC5h+C4qeC4leC4o+C4sOC4l+C4seC4lQ0KK+C5gOC4leC5h+C4oeC5gOC4lOC4t+C4reC4mSDguKvguLTguKPguLHguJPguKLguLHguKnguJDguLXguJXguLQNCivguYHguJXguIfguJzguLbguYjguIfguJzguLLguKIg4Lie4Li04Lio4Lih4Lix4LiiDQor4LmB4LiV4LmJ4Liq4Li1IOC5geC4i+C5iOC5gOC4i+C4teC4ouC4pw0KK+C5guC4leC4sOC4reC4ueC5iiDguYHguIvguYjguYDguJXguLXguKINCivguYTguJXguKPguJ7guKMg4Lil4Lin4Liq4Li44LiVDQor4LmE4LiV4Lij4Lij4LiH4LiE4LmMIOC4oeC4q+C4suC4p+C4suC4k+C4tOC4iuC4ouC5jOC4p+C4h+C4qOC5jA0KK+C5hOC4leC4o+C4o+C4seC4leC4meC5jCDguKjguLTguKPguLTguJjguKPguKPguKENCivguYTguJXguYnguIjguLjguYnguKIg4LmB4LiL4LmI4Lib4Li24LiHDQor4LiW4LiZ4Lit4LihIOC5gOC4geC4peC4suC5gOC4geC4peC4teC5ieC4ouC4hw0KK+C4luC4meC4reC4oSDguIrguKXguK3guK3guKLguLnguYgNCivguJbguJnguK3guKEg4LiY4Li14Lij4Liy4LiZ4Li44LiV4Lij4LmMDQor4LiW4LiZ4Lit4LihIOC4m+C4tuC4h+C4m+C4o+C4sOC4ouC4ueC4ow0KK+C4luC4meC4reC4oSDguKHguLLguKXguLLguIHguKPguJPguYwNCivguJbguJnguK3guKEg4Lio4Lij4Li14Lil4Liy4Lib4Lix4LiHDQor4LiW4LiZ4Lit4LihIOC4q+C4o+C4tOC4meC4l+C4o+C4seC4leC4meC5jA0KK+C4luC4meC4reC4oeC4iOC4tOC4lSDguJ7guKPguKvguKHguJ7guLHguJLguJnguYwNCivguJbguJnguK3guKHguJ7guIfguKjguYwg4Liq4Li44Lin4Lix4LiS4LiZ4LiY4Lij4Lij4LihDQor4LiW4LiZ4Lit4Lih4Lio4Lij4Li1IOC5geC4i+C5iOC5gOC4iOC4teC5iOC4og0KK+C4luC4meC4reC4oeC4qOC4o+C4tSDguKfguLHguIfguYTguJ7guJrguLnguKXguKLguYwNCivguJbguJnguK3guKHguKjguLHguIHguJTguLTguYwg4LiX4Lit4LiH4LmD4Lia4LmD4Lir4LiN4LmIDQor4LiW4LiZ4Lix4LiUIOC4meC4suC4hOC5geC4geC4oeC4l+C4reC4hw0KK+C4luC4meC4tOC4oSDguKHguLLguJnguLDguIHguKfguLTguJkNCivguJbguKHguKLguLIg4Lin4LiH4Lip4LmM4Liq4LiH4LiG4LmMDQor4LiW4Lin4Lix4Lil4Lii4LmMIOC5geC4geC5ieC4p+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4luC4p+C4seC4peC4ouC5jCDguJfguLTguKHguKXguK3guKLguYHguIHguYnguKcNCivguJbguKfguLHguKXguKLguYwg4Lig4Lij4Li04LiZ4LiX4LiZ4Lix4LiZ4LiX4LmMDQor4LiW4Lin4Lix4Lil4Lii4LmMIOC4quC4tOC4h+C4q+C5jOC4h+C4suC4oQ0KK+C4luC4p+C4tOC4pSDguIHguLTguIjguKrguKHguYPguIgNCivguJbguKfguLTguKUg4LmA4LiI4Lij4Li04LiN4Lio4Li04Lij4Li04Liq4Li44LiX4LiY4Li04LiB4Li44LilDQor4LiW4Lin4Li04LilIOC5gOC4luC4suC4p+C5jOC4iOC4uQ0KK+C4luC4p+C4tOC4pSDguJrguLjguI3guIHguKXguYjguK3guKENCivguJbguKfguLTguKUg4Lie4Li24LiH4Lii4LiyDQor4LiW4Lin4Li04LilIOC4o+C4t+C5iOC4meC4ouC4qA0KK+C4luC4p+C4tOC4pSDguKjguKPguLXguYDguIjguLXguKLguKENCivguJbguKfguLTguKUg4Liq4Li44LmA4Lih4LiG4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LiW4Lin4Li04Lil4Lin4LiH4Lio4LmMIOC4iuC5iOC4p+C4h+C4iuC4tOC4hw0KK+C4luC4suC4p+C4oyDguIHguLTguIjguJfguK3guIfguJbguLLguKfguKMNCivguJbguLLguKfguKMg4LmA4LiH4Li04LiZ4LmA4Lie4LiK4Lij4LiX4Lit4LiH4LiE4LizDQor4LiW4Liy4Lin4LijIOC4iuC4peC4sOC5gOC4reC4oQ0KK+C4luC4suC4p+C4oyDguJXguLHguYnguIfguKrguKvguYTguKHguJXguKPguLUNCivguJbguLLguKfguKMg4LiZ4LmI4Lin4Lih4LmB4LiB4LmJ4LinDQor4LiW4Liy4Lin4LijIOC4m+C4suC4meC4o+C4uOC5iOC4hw0KK+C4luC4suC4p+C4oyDguKDguLnguKPguLXguYLguKPguIjguJnguYwNCivguJbguLLguKfguKMg4Lil4LmJ4Lin4LiZ4Lij4Lix4LiV4LiZ4LmMDQor4LiW4Liy4Lin4LijIOC4p+C4teC4o+C4sOC4nuC4h+C4qeC5jA0KK+C4luC4suC4p+C4oyDguKrguLjguILguJ7guLTguJfguLHguIHguKnguYwNCivguJbguLLguKfguKMg4Lit4Lij4Lix4LiN4Lig4Li54Lih4Li0DQor4LiW4LmJ4LizIOC5gOC4lOC4iuC4pOC4lOC4tQ0KK+C4luC4tOC4o+C4p+C4seC4kuC4meC5jCDguYDguKXguLTguKjguKHguKvguLLguJfguKPguLHguJ7guKLguYwNCivguJbguLjguIfguYDguIfguLTguJkg4Lie4Lix4LiZ4LiY4Li44LmM4LiE4Li54LiTDQor4LmA4LiW4Lil4Li04LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4muC4seC4k+C4keC4tOC4leC4nuC4tOC4quC4uOC4l+C4mOC4tOC5jA0KK+C5geC4luC4oSDguIjguLHguJnguJfguKPguJfguKgNCivguYHguJbguKcg4LmE4LiV4Lij4Lia4Lij4Lij4LiT4LmMDQor4LiX4LiZ4LiHIOC4iOC4o+C4ueC4jeC4iuC4suC4leC4tOC4o+C4seC4geC4qeC5jA0KK+C4l+C4meC4hyDguYHguJ7guITguIfguITguLINCivguJfguJnguIfguITguYwg4LiB4Li14Lij4Lin4Li04LiX4Lii4LmMDQor4LiX4LiZ4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4hOC4uOC4k+C4suC4quC4luC4tOC4leC4ouC5jOC4iuC4seC4og0KK+C4l+C4meC4h+C4qOC4seC4geC4lOC4tOC5jCDguJfguLHguKjguJnguKDguLHguIHguJTguLUNCivguJfguJnguIfguKjguLHguIHguJTguLTguYwg4Lig4Lix4LiX4Lij4LmE4LiK4Lii4LiZ4Lix4LiZ4LiX4LmMDQor4LiX4LiZ4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4o+C4suC4jeC4iuC4t+C5iOC4mQ0KK+C4l+C4meC4seC4meC4l+C5jOC4iuC4seC4oiDguJ7guIfguKjguYzguJ7guLTguJ7guLHguJLguJnguYzguYDguKfguIoNCivguJfguKEg4LmA4LiZ4Li14Lii4Lih4Lia4Li44Lia4Lic4LiyDQor4LiX4Lij4LiHIOC4nOC4lOC4uOC4h+C4geC4tOC4iOC5gOC4iOC4o+C4tOC4jQ0KK+C4l+C4o+C4h+C4hOC4uOC4kyDguYDguKXguLTguKjguKTguJfguJjguLTguYzguYDguJTguIrguLINCivguJfguKPguIfguIrguLHguKIg4LiX4Lit4LiH4LmA4Lil4LmH4LiBDQor4LiX4Lij4LiH4LiK4Lix4LiiIOC4qOC4tOC4o+C4tOC4quC4o+C5ieC4reC4og0KK+C4l+C4o+C4h+C4mOC4o+C4o+C4oSDguJvguYjguLLguJ7guIHguLjguKUNCivguJfguKPguIfguJ7guKMg4Lio4Lij4Li14Lin4Li04Lia4Li54Lil4Lii4LmMDQor4LiX4Lij4LiH4Lie4LilIOC4iuC4ueC5gOC4iuC4tOC4lA0KK+C4l+C4o+C4h+C4nuC4pSDguYHguJ7guJfguKLguYzguKPguLHguIHguKnguYwNCivguJfguKPguIfguJ7guKUg4Liq4Li44LiX4LiY4Li04LmA4Liq4Lij4Li04LihDQor4LiX4Lij4LiH4Lii4LioIOC5gOC4hOC4o+C4t+C4reC4oeC4seC4h+C4geC4ow0KK+C4l+C4o+C4h+C4ouC4qCDguKvguKPguLTguKPguLHguIHguKnguYzguKrguIHguLjguKUNCivguJfguKPguIfguKfguLLguJQg4LiC4LiZ4Lix4LiZ4LmE4LiX4LiiDQor4LiX4Lij4LiH4Lin4Li44LiS4Li0IOC5hOC4iuC4ouC4quC4uOC4o+C4tOC4p+C4tOC4o+C4seC4leC4meC5jA0KK+C4l+C4o+C4h+C4p+C4uOC4kuC4tCDguKLguLLguJfguYnguKfguKENCivguJfguKPguIfguKjguKPguLUg4LmA4LiJ4Lil4Li04Lih4LiN4Liy4LiV4Li0DQor4LiX4Lij4LiH4Lio4Lij4Li1IOC4reC4tOC4meC5hOC4iuC4ouC4sA0KK+C4l+C4o+C4h+C4qOC4seC4geC4lOC4tOC5jCDguInguLHguJXguKPguJTguLPguKPguIfguJjguKPguKPguKENCivguJfguKPguIfguKjguLHguIHguJTguLTguYwg4LiX4LiZ4Li44Lia4Liz4Lij4Li44LiH4Liq4Liy4Liq4LiZ4LmMDQor4LiX4Lij4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4seC4meC4mOC4uOC4oeC4suC4qA0KK+C4l+C4o+C4h+C4qOC4seC4geC4lOC4tOC5jCDguKfguIfguKnguYzguIvguLTguYnguKENCivguJfguKPguIfguKjguLHguIHguJTguLTguYwg4Liq4Li44LiC4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiB4Li44LilDQor4LiX4Lij4LiH4Lio4Li04Lil4Lib4LmMIOC5gOC4iOC4o+C4tOC4jeC4ouC4seC4hw0KK+C4l+C4o+C4h+C5gOC4geC4teC4ouC4o+C4leC4tCDguIjguLLguKPguLjguYDguIHguLXguKLguKPguJXguLTguILguIjguKMNCivguJfguKPguIfguYDguIHguLXguKLguKPguJXguLTguYwg4LiY4Lij4Lij4Lih4Liy4Lig4Li04Lin4Lix4LiZ4LiX4LmMDQor4LiX4Lij4Lij4Lio4LiZ4Lix4LiZ4LiX4LmMIOC5geC4ouC5ieC4oeC4geC4peC4teC4muC4muC4seC4pw0KK+C4l+C4o+C4o+C4qOC4p+C4o+C4o+C4kyDguJnguLHguJnguIrguJnguIENCivguJfguKPguLHguJ7guKLguYwg4LiX4Li04LiZ4Lin4LiH4LiE4LmMDQor4LiX4Lik4Lip4LiO4Li1IOC4reC4suC4qeC4suC4o+C4seC4kA0KK+C4l+C4p+C4meC4l+C4reC4hyDguYDguJvguKXguLXguYjguKLguJnguKDguLHguIHguJTguLUNCivguJfguKfguLTguIHguLIg4LmA4Lit4LiB4LiC4LiI4Lij4Lin4LiH4Lip4LmMDQor4LiX4Lin4Li04LiKIOC4p+C4uOC4kuC4tOC4o+C4seC4geC4qeC5jOC4iuC4seC4og0KK+C4l+C4p+C4tOC4nuC4oyDguJDguLTguJXguLTguJjguKPguKPguKHguKrguKfguLHguKrguJTguLTguYwNCivguJfguKfguLUg4LmA4LiB4LiV4Li44LiX4Lix4Lia4LiX4Li04LihDQor4LiX4Lin4Li1IOC4hOC4h+C4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4l+C4p+C4tSDguIjguLHguJnguJfguKPguLUNCivguJfguKfguLUg4LmA4LiJ4Lii4LiX4Li44LihDQor4LiX4Lin4Li1IOC5geC4i+C5iOC4iOC4tOC4pw0KK+C4l+C4p+C4tSDguJXguLLguJXguLDguKLguLLguJnguJnguJfguYwNCivguJfguKfguLUg4LiX4Lit4LiH4LmD4Lia4LmD4Lir4LiN4LmIDQor4LiX4Lin4Li1IOC4meC4p+C4peC5gOC4iOC4o+C4tOC4jQ0KK+C4l+C4p+C4tSDguJrguLjguI3guJbguJnguK3guKHguKfguIfguKjguYwNCivguJfguKfguLUg4LmA4Lib4Li14LmI4Lii4Lih4Lie4LiH4Lio4LmM4Liq4Li44LiCDQor4LiX4Lin4Li1IOC4nuC4seC4meC4mOC4uOC5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4l+C4p+C4tSDguKDguLnguYjguJXguKPguLDguIHguLnguKUNCivguJfguKfguLUg4Lij4Lit4LiU4LiI4Lij4Li54LiNDQor4LiX4Lin4Li1IOC4peC4teC4peC4suC4nuC4seC4meC4mOC4tOC4quC4tOC4l+C4mOC4tA0KK+C4l+C4p+C4tSDguKfguLLguKjguJvguKPguLDguYDguKrguKPguLTguJANCivguJfguKfguLUg4Lio4Li04Lij4Li0DQor4LiX4Lin4Li1IOC4quC4s+C4o+C4suC4jeC4p+C4h+C4qeC5jA0KK+C4l+C4p+C4tSDguKrguLjguYLguIHguKjguKUNCivguJfguKfguLUg4LmC4Lir4LmJ4LmE4LiX4LiiDQor4LiX4Lin4Li1IOC4reC4uOC4leC4quC4suC4q+C4leC4seC4mQ0KK+C4l+C4p+C4teC4iuC4seC4oiDguIjguLTguKPguYHguKrguIfguJfguK3guIcNCivguJfguKfguLXguIrguLHguKIg4LmA4Lia4LiN4LiI4Liy4LiH4LiE4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiX4Lin4Li14LiK4Lix4LiiIOC4p+C4tOC4o+C4tOC4ouC4sOC4p+C4h+C4qOC5jOC4quC4geC4uOC4pQ0KK+C4l+C4p+C4teC4l+C4o+C4seC4nuC4ouC5jCDguIrguYnguLLguIfguYHguIHguYnguKcNCivguJfguKfguLXguJsg4LmA4LiC4Li14Lii4Lin4Liq4LiZ4Lix4LmI4LiZDQor4LiX4Lin4Li14LibIOC5gOC4meC4leC4o+C4meC4tOC4ouC4oQ0KK+C4l+C4p+C4teC4myDguYTguKfguKLguJTguLUNCivguJfguKfguLXguJzguKUg4Lin4LiH4Lio4LmM4LmA4Lil4Li34LmI4Lit4Lii4Lik4LiX4LiY4Li04LmMDQor4LiX4Lin4Li14Lie4LijIOC4meC4tOC4oeC4tOC4leC4o+C4p+C4o+C4nuC4iOC4meC5jA0KK+C4l+C4p+C4teC4nuC4seC4kuC4meC5jCDguITguKXguYjguK3guIfguIHguLTguIjguYLguKPguIjguJnguYwNCivguJfguKfguLXguKXguLHguIHguKnguJPguYwg4LmA4LiX4Lie4Lir4Lix4Liq4LiU4Li04LiZIOC4kyDguK3guKLguLjguJjguKLguLINCivguJfguKfguLXguKfguKPguKPguJMg4Lie4Lij4Lir4Lih4Lih4Liy4LiZ4LiZ4LiX4LmMDQor4LiX4Lin4Li14Lin4Lix4LiS4LiZ4LmMIOC4oOC4ueC4oeC4tQ0KK+C4l+C4p+C4teC4qOC4o+C4tSDguK3guLHguJXguJXguLDguJnguLHguJnguJfguJnguYwNCivguJfguKfguLXguKjguLHguIHguJTguLTguYwg4LmA4LiC4LmH4Lih4LmA4Lie4LmH4LiK4Lij4LmMDQor4LiX4Lin4Li14Lio4Lix4LiB4LiU4Li04LmMIOC4iOC4tOC4o+C4muC4uOC4jeC4p+C4k+C4tOC4iuC4ouC5jA0KK+C4l+C4p+C4teC4qOC4seC4geC4lOC4tOC5jCDguIvguK3guYDguIvguKfguLUNCivguJfguKfguLXguKjguLHguIHguJTguLTguYwg4LiV4Lix4LiZ4LmB4Liq4LiZ4LiX4Lit4LiHDQor4LiX4Lin4Li14Lio4Lix4LiB4LiU4Li04LmMIOC4mOC4o+C4o+C4oeC4meC4tOC4oOC4sg0KK+C4l+C4p+C4teC4qOC4seC4geC4lOC4tOC5jCDguJrguLjguI3guYLguJ7guJjguLTguYwNCivguJfguKfguLXguKjguLHguIHguJTguLTguYwg4Lie4Lij4Liw4Liq4Lin4LmI4Liy4LiHDQor4LiX4Lin4Li14Lio4Lix4LiB4LiU4Li04LmMIOC4oeC4q+C4iuC4p+C5guC4o+C4iOC4meC5jA0KK+C4l+C4p+C4teC4qOC4seC4geC4lOC4tOC5jCDguKXguLTguILguLTguJXguIrguLHguIrguKfguLLguKXguIHguLjguKUNCivguJfguKfguLXguKjguLHguIHguJTguLTguYwg4Lin4Li04Lin4Lix4LiS4LiZ4LiC4LiI4Lij4Liq4Li44LiCDQor4LiX4Lin4Li14Lio4Lix4LiB4LiU4Li04LmMIOC4quC4geC4uOC4peC4nuC4pOC4geC4qeC5jA0KK+C4l+C4p+C4teC4qOC4seC4geC4lOC4tOC5jCDguKrguLjguKDguKrguLTguJfguJjguLTguYzguKHguIfguITguKUNCivguJfguKfguLXguKjguLHguIHguJTguLTguYwg4Lit4LiZ4Li44Liq4LiZ4LiY4Li04LmMDQor4LiX4Lin4Li14Lio4Li04Lil4LibIOC4l+C4tOC4nuC5guC4geC4oeC4uOC4lw0KK+C4l+C4p+C4teC4quC4tOC4mSDguIrguLTguJnguLDguJ7guLHguJLguJnguKfguIfguKjguYwNCivguJfguKfguLXguKrguLjguIIg4Lit4Lih4Lij4Liq4Li04LiZ4Lin4Lij4LiK4Lix4LiiDQor4LiX4Lin4Li14LmB4Liq4LiHIOC5hOC4q+C4peC4p+C4seC4kuC4meC4iuC4seC4og0KK+C4l+C4qOC4meC4suC4o+C4liDguKDguKfguKDguLnguJXguLLguJnguJnguJfguYwNCivguJfguKjguJ7guKMg4LiV4Li44Lil4Liy4LiY4Lij4Lij4Lih4LiB4Li04LiIDQor4LiX4Lio4Lie4LijIOC4oeC4q+C4suC4lOC5hOC4l+C4og0KK+C4l+C4qOC4nuC4oyDguYDguKvguKXguYjguLLguK3guLTguJnguJfguKPguYwNCivguJfguKjguJ7guKUg4LiX4LiZ4LiX4Liy4LiZDQor4LiX4Lio4Lie4LilIOC4quC4tOC4meC5geC4meC5iOC4meC4lOC4s+C4o+C4hw0KK+C4l+C4q+C4suC4oyDguILguLPguKvguLTguKPguLHguI0NCivguJfguK3guIcg4LiZ4Liy4LiE4LiZ4Liy4Lin4LiyDQor4LiX4Lit4LiHIOC5gOC4q+C4oeC4t+C4reC4meC5gOC4lOC4ig0KK+C4l+C4reC4h+C4guC4suC4pyDguIjguLTguJXguKPguYzguKDguLHguIHguJTguLUNCivguJfguK3guIfguITguLMg4LmB4LiB4LmJ4Lin4Lia4Lix4Lin4LiU4Li1DQor4LiX4Lit4LiH4LiE4LizIOC5guC4iuC4hOC4p+C4tOC4muC4ueC4peC4ouC5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4l+C4reC4h+C4hOC4syDguJjguKPguKPguKHguJvguLHguI3guI3guLINCivguJfguK3guIfguITguLMg4Lic4LmI4Lit4LiH4LmD4LiqDQor4LiX4Lit4LiH4LiE4LizIOC4ouC4reC4lOC5gOC4h+C4tOC4mQ0KK+C4l+C4reC4h+C4hOC4syDguKjguLTguKPguLTguYLguKoNCivguJfguK3guIfguITguLMg4Lit4Lij4Li44LiT4Lio4Li04Lij4Li0DQor4LiX4Lit4LiH4LiI4Lix4LiZ4LiX4Lij4LmMIOC4l+C4suC4p+C4h+C4qeC5jA0KK+C4l+C4reC4h+C4iuC4uOC4miDguJnguLTguKXguJ7guKXguLHguJoNCivguJfguK3guIfguJTguLUg4LiE4LiK4Liy4LmE4Lie4LijDQor4LiX4Lit4LiH4LiU4Li1IOC4lOC4meC4leC4o+C4teC5gOC4quC4meC4suC4sA0KK+C4l+C4reC4h+C4lOC4tSDguJrguLPguKPguLjguIfguKrguLTguJkNCivguJfguK3guIfguJTguLUg4LmC4Lie4LiY4Li04LmM4LmA4Lic4Li34Lit4LiBDQor4LiX4Lit4LiH4LiU4Li1IOC4p+C4tOC5gOC4qOC4qeC4pOC4l+C4mOC4tOC5jA0KK+C4l+C4reC4h+C4lOC4tSDguKvguKPguKPguKnguITguLjguJPguLLguKPguKHguJPguYwNCivguJfguK3guIfguJfguKfguLUg4Lie4Li04Lih4LmA4Liq4LiZDQor4LiX4Lit4LiH4LiY4Lix4LiKIOC4l+C4reC4h+C4m+C4o+C4sOC4quC4suC4meC4hOC4uOC4kw0KK+C4l+C4reC4h+C4m+C4peC4tOC4pyDguIHguLTguIjguYHguIjguYjguKHguYDguKXguLTguKgNCivguJfguK3guIfguJvguK3guJkg4LmB4Liq4LiZ4Lib4Liw4LiX4LiwDQor4LiX4Lit4LiH4Lie4Lix4LiZ4LiY4LmMIOC5g+C4iOC5geC4geC5ieC4pw0KK+C4l+C4reC4h+C4nuC4ueC4mSDguJfguKPguLHguJ7guKLguYzguKrguIfguKfguJkNCivguJfguK3guIfguJ7guLnguJkg4Liq4Li44LiX4Lix4Lio4LiZ4LmMDQor4LiX4Lit4LiH4Lih4LmJ4Lin4LiZIOC4geC4o+C4sOC4muC4tOC4peC4quC4tOC4h+C4q+C5jA0KK+C4l+C4reC4h+C4oeC4siDguIjguK3guKHguITguLPguKrguLTguIfguKvguYwNCivguJfguK3guIfguKLguKfguJkg4LmB4LiI4LmI4Lih4Lin4LiH4Lip4LmMDQor4LiX4Lit4LiH4Lii4LmJ4Lit4LiiIOC4m+C4suC4meC4ouC5ieC4reC4og0KK+C4l+C4reC4h+C4ouC4uOC5ieC4mSDguJvguKPguLDguYDguKrguKPguLTguJDguKjguLHguIHguJTguLTguYwNCivguJfguK3guIfguKXguYnguK3guKEg4LmA4Liq4LmH4LiH4Liq4Lih4Liy4LiZDQor4LiX4Lit4LiH4Lio4Li54LiZ4Lii4LmMIOC4nOC4suC4geC4sg0KK+C4l+C4reC4h+C4quC4tSDguKrguLHguIfguITguLXguKPguLUNCivguJfguK3guIfguKrguLjguIEg4Lio4Lij4Li14LiZ4Liy4LiEDQor4LiX4Lit4LiH4Liq4Li44LiCIOC4iOC4seC4meC4l+C4sOC4quC4reC4mQ0KK+C4l+C4reC4h+C4quC4uOC4giDguYHguJTguIfguIrguLLguJXguLQNCivguJfguK3guIfguKrguLjguIIg4Lia4Li44LiN4LiN4Liy4LmA4Liq4LiZ4Li14Lii4LmM4LiB4Li44LilDQor4LiX4Lit4LiH4Liq4Li44LiCIOC4nuC4tOC4qOC5gOC4nuC4teC4ouC4h+C4iOC4seC4meC4l+C4o+C5jA0KK+C4l+C4reC4h+C4quC4uOC4giDguKPguLHguJXguJnguYLguKDguITguLINCivguJfguK3guIfguKrguLjguIIg4Liq4Lix4LiH4LiC4LmM4Liq4Lin4LiZDQor4LiX4Lit4LiH4Liq4Li44LiCIOC4reC4ouC4ueC5iOC5g+C4iOC5gOC4ouC5h+C4mQ0KK+C4l+C4reC4h+C4q+C4ouC4reC4lCDguJzguLbguYjguIfguJzguJTguLjguIcNCivguJfguK3guIfguKvguKXguYjguK0g4LmE4LiB4Lij4LiX4Lit4LiHDQor4LiX4Lit4LiH4Lir4Lil4LmI4LitIOC5gOC4leC4iuC4sOC4p+C4tOC5gOC4qOC4qQ0KK+C4l+C4reC4h+C4q+C4peC5iOC4rSDguJ7guKXguLHguJrguK3guLTguJnguJfguKPguYwNCivguJfguK3guIfguKvguKXguYjguK0g4Lil4Li34Lit4Lir4Lih4Li54LmIDQor4LiX4Lit4LiH4Lir4Lil4LmI4LitIOC4reC4lOC4l+C4mQ0KK+C4l+C4reC4h+C4reC4ouC4ueC5iCDguYHguIHguYnguKfguJ7guLHguJnguJjguYzguJ7guIfguKnguYwNCivguJfguK3guIfguK3guKLguLnguYgg4LiY4LiZ4Lix4LiH4LmA4Lil4Li04Lio4Lih4Liy4Lil4Lix4LiiDQor4LiX4Lit4LiH4Lit4Lii4Li54LmIIOC4p+C4teC4o+C4sOC4p+C4seC4kuC4meC5guC4ouC4mOC4tOC4mQ0KK+C4l+C4reC4h+C4reC4p+C4miDguK3guLjguJXguKPguKfguLTguYDguIrguLXguKLguKMNCivguJfguK3guIfguK3guLTguJnguJfguKPguYwg4LiW4Liy4Lin4Lij4LmA4LiI4Lij4Li04LiNDQor4LiX4Lit4LiH4Liu4Lin4LiiIOC4mOC4o+C4o+C4oeC4quC5guC4ow0KK+C4l+C4reC4h+C5gOC4iOC4t+C4rSDguYDguJfguLXguKLguKHguK3guLjguJfguLHguKLguKrguIHguLjguKUNCivguJfguK3guIfguYDguIjguLfguK0g4LmB4Liq4Lin4LiH4LmA4LiH4Li04LiZDQor4LiX4Lit4LiH4LmA4LiV4Li04LihIOC4q+C4suC4jeC4oeC4k+C4tQ0KK+C4l+C4reC4h+C5gOC4m+C4peC4pyDguYTguJ7guJHguLnguKPguKLguYzguKPguLHguJXguJnguYwNCivguJfguK3guIfguYDguJ7guLXguKLguKMg4LiV4Lix4LiZ4LiK4LiwDQor4LiX4Lit4LiH4LmA4Lil4LmH4LiBIOC5hOC4oeC5ieC4leC4o+C4suC4p+C4seC4kuC4meC4sg0KK+C4l+C4reC4h+C5gOC4reC4tOC4miDguYDguJ7guYfguIfguYHguIjguYjguKHguKjguKPguLUNCivguJfguK3guIfguYHguJbguKEg4Lie4Lij4Lih4Lie4LiH4Lip4LmMDQor4LiX4Lit4LiH4LmD4LiaIOC4geC4peC4tOC5iOC4meC4quC4uOC4hOC4meC4mOC5jA0KK+C4l+C4reC4h+C5g+C4miDguIrguLHguKLguYDguIjguKPguLTguI0NCivguJfguK3guIfguYPguJog4LiY4Lij4Lij4Lih4Liq4Liy4LijDQor4LiX4Lit4LiH4LmD4LiaIOC4nuC4o+C4q+C4oeC4m+C4seC5ieC4mQ0KK+C4l+C4reC4h+C5g+C4miDguKPguK3guJTguJrguLjguI3guIrguLHguIcNCivguJfguK3guIfguYPguJog4Liq4Liy4Lir4Lij4LmI4Liy4Lii4LiX4Lit4LiH4LiE4LizDQor4LiX4Lit4LiH4LmD4LiqIOC4muC4seC4p+C4oeC4p+C4hw0KK+C4l+C4reC4quC4o+C4p+C4hyDguKrguKDguLLguJnguLjguIrguLLguJUNCivguJfguLHguIHguKnguJPguLUg4LiK4Li34LmI4LiZ4Liq4Liz4Lij4Liy4LiNDQor4LiX4Lix4LiB4Lip4Li04LiT4LiyIOC4quC4luC4tOC4leC4ouC5jOC4geC4uOC4pQ0KK+C4l+C4seC4lOC4l+C4oyDguJrguLjguI3guYDguJfguLINCivguJfguLHguJnguYPguIgg4LiV4Liy4Lil4Liy4Lin4LiZ4Li04LiKDQor4LiX4Lix4Lia4LiX4Li04LihIOC4muC4seC4peC4peC4seC4h+C4hOC5jOC5guC4nuC4mOC4tOC5jA0KK+C4l+C4seC4muC4l+C4tOC4oSDguK3guIfguITguYzguIHguLLguKMNCivguJfguLHguKjguJnguIrguLHguKIg4Lio4Li04Lij4Li04LmE4Lie4Lie4Lij4Lij4LiTDQor4LiX4Lix4Lio4LiZ4Lix4LiiIOC5gOC4guC4oeC5gOC4geC4qeC4oQ0KK+C4l+C4seC4qOC4meC4seC4oiDguKfguLHguIrguKPguYDguIHguLfguYnguK0NCivguJfguLHguKjguJnguLIg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4LiX4Lix4Lio4LiZ4LiyIOC4quC4tOC4h+C4hOC4sOC5gOC4meC4leC4tA0KK+C4l+C4seC4qOC4meC4tSDguInguLLguKLguKPguLHguIfguKnguLUNCivguJfguLHguKjguJnguLXguKLguLIg4LiX4Lij4Lij4Lio4LiZ4LiB4Li44Lil4Lie4Lix4LiZ4LiY4LmMDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4geC4tOC4leC4leC4tOC4qOC4tOC4peC4suC4geC4ow0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguITguLjguJPguLLguJ7guLTguKoNCivguJfguLHguKjguJnguLXguKLguYwg4LiI4Li04LiV4Lij4Liy4LiI4Li44Lil4LiZ4Lix4LiZ4LiX4LmMDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4iuC4seC4ouC4geC4uOC4pQ0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguYHguIvguYjguKXguLXguYkNCivguJfguLHguKjguJnguLXguKLguYwg4LiV4Lix4LiZ4LiV4Li04LiZ4Li14Lij4LiZ4Liy4LiXDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4l+C4seC4geC4mOC4tOC4geC4suC4ow0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguJnguLLguITguKfguLTguKXguLHguKINCivguJfguLHguKjguJnguLXguKLguYwg4Lib4Lij4Liw4Lih4Li54LilDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4nuC4o+C4q+C4oeC4iuC4uQ0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguYDguJ7guIrguKPguYHguIHguYnguKfguIHguLjguKUNCivguJfguLHguKjguJnguLXguKLguYwg4Lih4Liy4Liq4LiT4Li1DQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4o+C4seC4leC4meC4reC4uOC4lOC4oQ0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguYDguKXguYfguIHguITguIcNCivguJfguLHguKjguJnguLXguKLguYwg4Lin4Li04Lij4Li04Lii4Liw4LmA4Lin4Liq4Lih4LmM4LiB4Li44LilDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4qOC4tOC4o+C4tOC5guC4quC4oOC4suC4meC4meC4l+C5jA0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguKrguLTguKPguLTguKfguLTguYDguKjguKnguKfguKPguIHguLjguKUNCivguJfguLHguKjguJnguLXguKLguYwg4LmA4Liq4Lij4Li14Lie4LiB4LiB4Liw4LiT4LiwDQor4LiX4Lix4Lio4LiZ4Li14Lii4LmMIOC4reC4meC4uOC4leC4o+C4tOC4meC4l+C4o+C5jA0KK+C4l+C4seC4qOC4meC4teC4ouC5jCDguYDguK3guLXguYjguKLguKHguKrguIHguLjguKUNCivguJfguLHguKjguJ7guKMg4Lie4Lij4Liq4Li44LiY4Liy4Lij4Lix4LiB4Lip4LmMDQor4LiX4Lix4Lio4LmE4LiZ4LiiIOC4muC4seC4jeC4jeC4seC4leC4tOC4l+C4seC4qOC5hOC4meC4og0KK+C4l+C4suC4miDguJzguKXguYLguJ7guJjguLTguYwNCivguJfguLPguJnguLQg4Lin4Li04LmE4Lil4Lij4Lix4LiV4LiZ4LmMDQor4LiX4Li04LiG4Lix4Lih4Lie4LijIOC4iuC4tOC5ieC4meC4qOC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4l+C4tOC4iuC4suC4geC4oyDguIrguKHguYDguJTguIoNCivguJfguLTguJkg4Lie4Lix4LiU4LiK4LiyDQor4LiX4Li04LiZ4LiB4LijIOC4l+C4teC5gOC4geC5iOC4hw0KK+C4l+C4tOC4meC4geC4oyDguKXguLTguKHguJvguJnguKrguLjguJfguJjguLTguJ7guIfguKjguYwNCivguJfguLTguJnguIHguKPguJPguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4Lie4Lil4Lix4LiaDQor4LiX4Li04Lie4Lie4Lin4Lix4LilIOC5gOC4nuC5h+C4h+C4quC4reC4suC4lA0KK+C4l+C4tOC4nuC4ouC4jeC4suC4kyDguKfguLTguIrguKLguLLguJnguJnguJfguYwNCivguJfguLTguJ7guKLguYzguKDguLLguJ7guKMg4Lia4Li44LiN4LmA4LiI4Lij4Li04LiN4Lii4LioDQor4LiX4Li04Lie4Lii4LmM4Lij4Lix4LiV4LiZ4LmMIOC4nuC4h+C4qOC5jOC4hOC4sw0KK+C4l+C4tOC4nuC4ouC4p+C4o+C4o+C4kyDguJ/guLjguYnguIfguKXguLHguJTguJTguLINCivguJfguLTguJ7guKLguYzguKfguKPguKPguJMg4LiI4Li04Lij4LiK4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4LiX4Li04Lie4Lii4LmM4Lin4Lij4Lij4LiTIOC4nuC4o+C4q+C4oeC4p+C4o+C4suC4l+C4ow0KK+C4l+C4tOC4nuC4ouC5jOC4p+C4o+C4o+C4kyDguKrguLjguKfguKPguKPguJPguJ7guLTguKHguKUNCivguJfguLTguJ7guKLguYzguKfguLHguKXguKLguYwg4LiY4Li14Lij4LiY4Lin4Lix4LiK4LiB4Li44LilDQor4LiX4Li04Lie4Lii4LmM4Lin4Liy4Lij4Li1IOC4oeC4tOC5iOC4h+C4guC4p+C4seC4jeC4m+C4tOC4ouC4sOC4geC4uOC4pQ0KK+C4l+C4tOC4nuC4ouC5jOC4quC4uOC4lOC4siDguYPguJrguKHguKPguIHguJUNCivguJfguLTguJ7guKLguLIg4LiZ4Lin4LiE4Li44LiT4Lin4Li04LiI4Li04LiV4Lij4LmMDQor4LiX4Li04Lie4Lii4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4q+C4tOC4o+C4seC4jQ0KK+C4l+C4tOC4nuC4ouC5jCDguYHguKrguKfguIfguKXguLLguKANCivguJfguLTguJ7guKfguKPguKPguJMg4LiB4Lij4LiB4Lij4Lit4LiHDQor4LiX4Li04Lie4Lin4Lij4Lij4LiTIOC4iOC4teC4o+C4nuC4seC4meC4mOC5jA0KK+C4l+C4tOC4nuC4p+C4o+C4o+C4kyDguJfguK3guIfguJvguKPguLDguYDguKrguKPguLTguJANCivguJfguLTguJ7guKfguKPguKPguJMg4Lie4Lix4LiS4LiZ4Liw4Lia4LiU4Li1DQor4LiX4Li04Lie4Lin4Lij4Lij4LiTIOC4peC4tOC4oeC4m+C4meC4suC4meC4meC4l+C5jA0KK+C4l+C4tOC4nuC4p+C4o+C4o+C4kyDguKjguLTguKPguLTguKfguLTguYTguKXguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguJfguLTguJ7guKfguKPguKPguJMg4Lit4LiZ4Li04Lin4Lij4Lij4LiV4Lie4LiH4Lip4LmMDQor4LiX4Li04Lie4Lin4Lix4Lil4Lii4LmMIOC4hOC4teC4o+C4teC4p+C4h+C4qOC5jA0KK+C4l+C4tOC4nuC4p+C4seC4peC4ouC5jCDguKHguLLguKXguLHguKLguKHguLLguKXguKLguYwNCivguJfguLTguJ7guKfguLTguKHguKUg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4LiX4Li04Lie4Liy4LiB4LijIOC4qOC4o+C4teC4iuC4teC4ouC4mOC4s+C4o+C4hw0KK+C4l+C4tOC4nuC4suC4nuC4oyDguKjguKPguLXguK3guLLguIgNCivguJfguLTguJ7guLLguKPguLHguJXguJnguYwg4LiZ4Li04Lil4Liq4LiZ4LiY4Li0DQor4LiX4Li04LihIOC4oeC4teC4muC4uOC4leC4o+C4quC4oQ0KK+C4l+C4tOC4p+C4siDguIjguKfguJnguIjguKfguJrguJfguKPguIcNCivguJfguLTguKfguLIg4Lin4LiH4LmA4LiU4Li34Lit4LiZDQor4LiX4Li04Lin4Liy4Lie4LijIOC4ieC4seC4leC4o+C4o+C4seC4leC4meC4suC4p+C4suC4k+C4tOC4ig0KK+C4l+C4tOC4p+C4suC4p+C4o+C4o+C4kyDguKrguLTguIfguKvguJ7guLHguKgNCivguJfguLXguYDguJnguJXguKMg4Lit4Lii4Li54LmI4Liq4Li44LiY4LiyDQor4LiX4Li44LmA4Lij4Li14Lii4LiZIOC4iOC4tOC4leC4leC4geC4suC4meC4leC5jOC4nuC4tOC4iuC4seC4og0KK+C4l+C4uOC5gOC4o+C4teC4ouC4mSDguKrguLTguJfguJjguLTguKDguLINCivguYDguJfguJ4g4LiH4Liy4Lih4LiK4Lix4Lii4Lie4Li04Liq4Li04LiQDQor4LmA4LiX4LieIOC4peC4teC4meC4sOC4geC4meC4tOC4qeC4kOC5jA0KK+C5gOC4l+C4nuC4iuC4seC4oiDguYDguIjguKPguLTguI3guJ7guKMNCivguYDguJfguJ7guJnguLTguKPguLHguJnguJTguKPguYwg4Lio4Lij4Li14Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LmA4LiX4Lie4Lij4Lix4LiV4LiZ4LmMIOC4quC4suC4o+C4hOC4suC4oQ0KK+C5gOC4l+C4nuC4quC4uOC4o+C4tOC4ouC4siDguK3guKPguKPguJbguKfguLTguYDguKjguKkNCivguYDguJfguJ7guYTguJfguKIg4LmA4Liq4LiZ4Lie4LiH4Lio4LmMDQor4LmA4LiX4Lin4Lix4LiZIOC4reC4uOC4lOC4oeC5gOC4p+C4qOC4ouC5jA0KK+C5gOC4l+C4p+C4tOC4meC4l+C4o+C5jCDguKHguLjguYjguIfguJjguLHguI3guI3guLINCivguYDguJfguKfguLXguKPguLHguJXguJnguYwg4Lib4Liy4Lil4LiB4Liw4Lin4LiH4Lio4LmMIOC4kyDguK3guKLguLjguJjguKLguLINCivguYDguJfguK3guJTguJ7guIfguKnguYwg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4LmA4LiX4Lit4LiU4Lio4Lix4LiB4LiU4Li04LmMIOC4meC4tOC4l+C4seC4qOC4meC4suC4meC4seC4meC4l+C5jA0KK+C5gOC4l+C4reC4lOC4qOC4seC4geC4lOC4tOC5jCDguKrguLHguKHguKTguJfguJjguLTguIHguLLguKPguLjguJMNCivguYDguJfguLTguJTguIrguLHguKIg4LmA4LiV4LiK4Liw4LiY4Li04LiB4Liy4LijDQor4LmA4LiX4Li04LiU4LmE4LiX4LiiIOC4quC4uOC4guC4reC4suC4o+C4oeC4ouC5jA0KK+C5gOC4l+C4teC4ouC4mSDguJ7guLjguYjguKHguYDguIjguKPguLTguI0NCivguYDguJfguLXguKLguJnguIrguLHguKIg4LmA4LiI4Lij4Li04LiN4LiB4Li04LiI4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4LmA4LiX4Li14Lii4LiZ4LiK4Lix4LiiIOC4m+C4suC4meC4o+C4seC4geC4qeC4sg0KK+C5gOC4l+C4teC4ouC4meC4iuC4seC4oiDguKfguLHguJLguJnguYLguKPguIjguJnguIHguLTguIgNCivguYDguJfguLXguKLguJnguJfguLTguJ7guKLguYwg4LiI4LiH4LmA4LiI4LiV4LiZ4LmM4LiU4Li1DQor4LmA4LiX4Li14Lii4LiaIOC4quC4seC4oeC4iOC4suC4o+C4tOC4meC4l+C4o+C5jA0KK+C5gOC4l+C4teC4ouC4oSDguYDguJfguLXguKLguKHguK3guLLguKPguLHguIHguKnguYwNCivguYDguJfguLXguKLguKHguIjguLHguJnguJfguKPguYwg4LiI4Liy4Lij4Li44Lin4Lix4LiS4LiZ4Lie4Lix4LiZ4LiY4LmMDQor4LmA4LiX4Li14Lii4Lih4LiJ4Lix4LiV4LijIOC4o+C4tOC5ieC4p+C4geC4h+C5geC4iA0KK+C5gOC4l+C4teC4ouC4oeC5g+C4iCDguJrguLjguI3guJbguLLguKfguKPguKfguLHguJLguJkNCivguYDguJfguLXguYjguKLguIcg4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Liq4Li04Lij4Li04LmA4LiI4Lij4Li04LiNDQor4LmA4LiX4LmA4Lin4LioIOC5geC4i+C5iOC4i+C4t+C5ieC4rQ0KK+C5geC4l+C4mSDguYDguJfguKjguKfguLTguKXguLHguKINCivguYTguJfguKIg4LmA4LiI4Lij4Li04LiN4Lin4Lij4Lij4Lix4LiB4Lip4LmMDQor4LmE4LiX4Lij4LiH4Liy4LihIOC4iOC4s+C4meC4h+C4hOC5jOC4quC4ueC4jQ0KK+C4mOC4h+C4iuC4seC4oiDguIHguJnguIHguJ7guJnguLLguJfguLHguJUNCivguJjguIfguIrguLHguKIg4LmA4LiB4Li14Lii4Lij4LiV4Li04LmA4Lij4Li34Lit4LiH4LiB4Lih4Lil4LiyDQor4LiY4LiH4LiK4Lix4LiiIOC4h+C4suC4oeC4mOC4meC5guC4geC4qOC4pQ0KK+C4mOC4h+C4iuC4seC4oiDguIjguLTguKPguLHguJDguLTguJXguLTguJ7guLHguJnguJjguYwNCivguJjguIfguIrguLHguKIg4LiK4Lix4Lii4Lie4Lij4Lie4LiH4Lio4LmMDQor4LiY4LiH4LiK4Lix4LiiIOC5geC4i+C5iOC4i+C4tOC5ieC4oQ0KK+C4mOC4h+C4iuC4seC4oiDguJXguJnguKrguIHguLjguKXguYDguJTguIoNCivguJjguIfguIrguLHguKIg4LiW4Li44LiH4LmB4LiB4LmJ4Lin4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4LiY4LiH4LiK4Lix4LiiIOC4mOC4o+C4o+C4oeC4p+C4tOC5hOC4peC4p+C4seC4kuC4meC5jA0KK+C4mOC4h+C4iuC4seC4oiDguJrguLjguI3guJPguKPguIfguITguYwNCivguJjguIfguIrguLHguKIg4Lib4Li04LmI4LiZ4LmB4LiB4LmJ4Lin4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiY4LiH4LiK4Lix4LiiIOC4nuC4suC4meC4l+C4reC4hw0KK+C4mOC4h+C4iuC4seC4oiDguKDguLnguKnguJPguLDguJ7guIfguKnguYwNCivguJjguIfguIrguLHguKIg4Lij4Lit4LiU4LmB4LiB4LmJ4LinDQor4LiY4LiH4LiK4Lix4LiiIOC4peC4tOC4guC4tOC4leC4p+C4seC4kuC4meC4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C4mOC4h+C4iuC4seC4oiDguKfguLHguIrguKPguLDguK3guKLguLnguYgNCivguJjguIfguIrguLHguKIg4Lio4Lij4Li14LmE4LiX4Lii4Lij4Lix4LiB4Lip4LmMDQor4LiY4LiH4LiK4Lix4LiiIOC4quC4suC4hOC4o+C4quC4uOC4guC4qOC4o+C4teC4pOC4geC4qeC5jA0KK+C4mOC4h+C4iuC4seC4oiDguKrguLjguJ7guKXguJjguKfguJPguLTguIrguKLguYwNCivguJjguIfguIrguLHguKIg4Lir4Liy4LiN4Lih4LiH4LiE4LilDQor4LiY4LiH4LiK4Lix4LiiIOC4reC4suC4geC4suC4qOC4p+C4tOC4oOC4suC4lQ0KK+C4mOC4h+C4iuC4suC4leC4tCDguJ7guKfguIfguKrguLjguKfguKPguKPguJMNCivguJjguIfguYTguIrguKIg4Lie4Lil4Lin4Li04LiX4Lii4LmMDQor4LiY4LiZIOC4o+C4oeC4ouC4suC4meC4meC4l+C5jA0KK+C4mOC4meC4geC4oyDguKjguLjguKDguIHguKPguK3guLLguKDguKPguJPguYwNCivguJjguJnguIfguITguYwg4Lin4Li04LiI4Li04LiV4Lij4LmC4LiXDQor4LiY4LiZ4LiK4Lix4LiiIOC5gOC4q+C4peC4t+C4reC4h+C4leC4o+C4sOC4geC4ueC4peC4quC4tOC4o+C4tA0KK+C4mOC4meC4mSDguKjguKPguLXguJjguJnguLLguYLguKrguKzguKoNCivguJjguJnguJ7guIfguKjguYwg4Lin4Liq4Li44LmA4Liq4LiW4Li14Lii4LijDQor4LiY4LiZ4Lie4LijIOC5gOC4iuC4suC4p+C4meC4m+C4o+C4teC4iuC4sg0KK+C4mOC4meC4nuC4oyDguKjguKPguLXguIjguLHguJnguJfguKPguYwNCivguJjguJnguJ7guKUg4LiE4Li44LmJ4Lih4Lin4Lij4LiK4Lix4LiiDQor4LiY4LiZ4Lie4LilIOC4p+C4k+C4tOC4iuC4iuC4suC4meC4meC4l+C5jA0KK+C4mOC4meC4nuC4seC4meC4mOC5jCDguJ/guLnguJ7guLHguJnguJjguLjguYzguK3guJnguLHguJnguJXguYwNCivguJjguJnguKLguLIg4Lin4LiH4Lio4LmM4Liq4LiH4Lin4LiZDQor4LiY4LiZ4Lin4Lij4Lij4LiTIOC5geC4i+C5iOC5gOC4leC4teC4og0KK+C4mOC4meC4p+C4o+C4o+C4qeC5jCDguYDguKrguKPguLTguKHguJ7guLLguJPguLTguIrguKLguYwNCivguJjguJnguKfguLHguJLguJnguYwg4Lib4Lij4Liw4Liq4Liy4LiZ4LiY4Lij4Lij4Lih4LiE4Li44LiTDQor4LiY4LiZ4Lin4Lix4LiS4LiZ4LmMIOC4quC4suC4oeC4geC4qeC4seC4leC4o+C4tOC4ouC5jA0KK+C4mOC4meC4p+C4tOC4qOC4k+C5jCDguKDguLnguKHguLTguYTguIrguKINCivguJjguJnguKrguKPguJPguYwg4LmE4LiK4Lii4LiK4LiZ4LiwDQor4LiY4LiZ4LiwIOC4nuC4h+C4qeC5jOC4l+C4meC4suC4meC4meC4l+C5jOC4geC4uOC4pQ0KK+C4mOC4meC4sOC4iuC4seC4oiDguKfguIfguKjguYzguJfguK3guIfguKjguKPguLUNCivguJjguJnguLDguKfguKPguKPguJMg4Lir4Lih4Li34LmI4LiZ4Liq4LiyDQor4LiY4LiZ4Liw4LmA4Liq4Lij4Li04LiQIOC4ouC4peC4m+C4o+C4sOC4quC4suC4mQ0KK+C4mOC4meC4seC4jeC4iuC4seC4oiDguKPguLLguIrguKfguLHguKXguKDguLLguJnguLjguKrguLTguKnguJANCivguJjguJnguLHguJXguLQg4Lia4Li44Lij4Li04LiZ4LiX4Lij4LmM4LiB4Li44LilDQor4LiY4LiZ4Lix4LiZ4LiX4LmMIOC4o+C4seC4h+C4quC4teC4nuC4o+C4q+C4oQ0KK+C4mOC4meC4siDguIrguLXguKPguKfguLTguJnguLTguIgNCivguJjguJnguLIg4LmC4Lib4Lip4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4LiY4LiZ4LiyIOC4quC4p+C5iOC4suC4h+C4geC4tOC4iA0KK+C4mOC4meC4suC4geC4oyDguYDguJXguIrguLDguKrguKHguJrguLnguKPguJPguYzguJzguKUNCivguJjguJnguLLguIHguKMg4Liq4Lix4LiI4LiI4Lie4LiI4LiZ4LmM4LmC4Liq4Lig4LiTDQor4LiY4LiZ4Liy4LiI4Lix4LiB4Lij4LmMIOC4meC5iOC4p+C4oeC4reC4ouC4ueC5iA0KK+C4mOC4meC4suC4mOC4tOC4myDguKPguLHguJXguJnguLHguKINCivguJjguJnguLLguJ7guKMg4Lie4Li04LiK4Lix4Lii4Lin4Lix4LiS4LiZ4LmM4LmC4LiB4Lih4LilDQor4LiY4LiZ4Liy4Lig4Lij4LiT4LmMIOC4o+C4seC4leC4meC5gOC4quC4mQ0KK+C4mOC4meC4suC4o+C4seC4iiDguKrguLTguKPguLTguKDguLnguKHguLTguKPguLHguJXguJnguLLguJnguJnguJfguYwNCivguJjguJnguLLguKfguLHguJLguJnguYwg4Lie4Li04LiY4Li44Lin4Lij4Lij4LiTDQor4LiY4LiZ4Liy4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4seC4leC4o+C4suC5gOC4qOC4o+C4qeC4kOC5jA0KK+C4mOC4meC4tOC4lOC4siDguIjguLTguJnguJXguJnguKfguLTguKjguLTguKnguJDguYwNCivguJjguJnguLTguJUg4LmA4LiC4Li14Lii4Lin4LmA4LiH4Li04LiZDQor4LiY4LiZ4Li04LiVIOC5gOC4l+C4nuC4iOC4tOC4leC4ow0KK+C4mOC4meC4tOC4lSDguKHguLLguKjguKPguLXguJnguKfguKUNCivguJjguJnguLTguJUg4Liq4Li44LiB4Lix4LiZ4Lii4LiyDQor4LiY4LiZ4Li04LiV4LijIOC5gOC4meC4suC4p+C4qOC4seC4geC4lOC4tOC5jA0KK+C4mOC4meC4tOC4meC4l+C4o+C5jCDguJvguKPguLDguYDguKrguKPguLTguJDguIHguLLguI3guIjguJnguYwNCivguJjguJnguLTguKjguKPguYwg4Lit4Li04Lio4Lij4Liy4LiY4Li04LiB4Li54LilDQor4LiY4LiZ4Li14Lii4LiyIOC4q+C4o+C4ouC4suC4h+C4geC4ueC4ow0KK+C4mOC4meC4uSDguInguLjguKLguInguLLguKINCivguJjguJnguLkg4Lif4Lit4LiH4LiB4Li44LiZ4LiR4LilDQor4LiY4LiZ4Li5IOC4q+C4h+C4qeC5jOC4lOC4s+C5gOC4meC4tOC4mQ0KK+C4mOC4meC5gOC4lOC4iiDguKrguLjguILguKfguLHguJLguJnguLLguJ7guKMNCivguJjguKPguJPguLTguJnguJfguKPguYwg4LiB4Lit4LiH4Lij4Lix4LiB4Lip4LmA4Lin4LiKDQor4LiY4Lij4Lij4Lih4LiT4LieIOC5gOC4geC4leC4uOC4l+C4reC4hw0KK+C4mOC4o+C4o+C4oeC4meC4ueC4jSDguITguKXguYnguLLguKLguIHguKPguLnguI8NCivguJjguKPguKPguKHguJnguLnguI0g4LiX4Lix4Lio4LiZ4LmM4Lio4Lij4Li1DQor4LiY4Lij4Lij4Lih4LiZ4Li54LiNIOC4nuC4tOC4iuC4seC4ouC4qOC4o+C5geC4nOC4peC4hw0KK+C4mOC4o+C4o+C4oeC4meC4ueC4jSDguKjguKPguLXguIrguLDguI7guLINCivguJjguKPguKPguKHguJnguLnguI0g4Lit4Lix4LiH4Lio4Li44Liq4Li04LiH4Lir4LmMDQor4LiY4Lij4Lij4Lih4Lij4Lix4LiB4Lip4LmMIOC4l+C4tOC4meC4geC4oyDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4LiY4Lij4Lij4Lih4Lij4Lix4LiV4LiZ4LmMIOC4quC4seC4h+C4guC5jOC4qOC4o+C4teC5geC4geC5ieC4pw0KK+C4mOC4o+C4o+C4oeC4qOC4seC4geC4lOC4tOC5jCDguYHguKHguYnguJnguKHguLTguJnguJfguKPguYwNCivguJjguKPguKfguLTguKrguLTguJfguJjguLTguYwg4LmC4LiK4LiE4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmM4Lic4LilDQor4LiY4Lij4Liy4Lie4LiH4Lip4LmMIOC5gOC4hOC4peC4t+C4reC4h+C4suC4oQ0KK+C4mOC4p+C4seC4iiDguIHguLHguJnguJXguYzguKHguLTguJXguKPguLUNCivguJjguKfguLHguIog4LiI4Lit4Lih4Liq4LiH4LmI4LiyDQor4LiY4Lin4Lix4LiKIOC4iuC4seC5ieC4meC5gOC4quC4p+C4tOC4geC4uOC4pQ0KK+C4mOC4p+C4seC4iiDguJXguLHguJnguJXguLTguJvguLTguI/guIENCivguJjguKfguLHguIog4LiY4Li14Lij4Lig4Liy4LiZ4Li44Lih4Liy4Lio4LiB4Li44LilDQor4LiY4Lin4Lix4LiKIOC4muC4uOC4leC4o+C4ouC4teC5iA0KK+C4mOC4p+C4seC4iiDguYHguJ7guYPguKvguKHguYgNCivguJjguKfguLHguIog4Lij4Lix4LiQ4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LiY4Lin4Lix4LiKIOC4p+C4seC4iuC4o+C5gOC4lOC4iuC4quC4uOC4p+C4o+C4o+C4kw0KK+C4mOC4p+C4seC4iiDguKrguLHguI3guI3guLDguKfguLTguKPguLUNCivguJjguKfguLHguIog4LmB4Liq4LiZ4Lih4LiZ4LiV4Lij4Li14LiB4Li44LilDQor4LiY4Lin4Lix4LiKIOC4reC4tOC4meC5geC4leC4hw0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguIHguLTguKHguKLguIfguITguYwNCivguJjguKfguLHguIrguIrguLHguKIg4LiE4Liy4Lih4LiI4Li04LiZ4LiU4LiyDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4iOC4tOC4leC4m+C4o+C4sOC4oOC4suC4iOC4tOC4kw0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguIrguLHguYjguIfguJfguK3guIcNCivguJjguKfguLHguIrguIrguLHguKIg4LiL4Li44LmJ4LiZ4LiL4Li04LmI4LihDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4lOC4teC4o+C4sOC4nuC4seC4meC4mOC5jOC4geC4uOC4pQ0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguYLguJXguKrguLTguJXguKPguLDguIHguLnguKUNCivguJjguKfguLHguIrguIrguLHguKIg4LmE4LiX4Lii4Lin4Lix4LiS4LiZ4LiyDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4meC4suC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguJvguLHguI3guIjguKPguLHguIHguKnguYzguKrguIHguLjguKUNCivguJjguKfguLHguIrguIrguLHguKIg4Lie4Lin4LiH4LiI4Lix4LiZ4LiX4Lij4LiX4Li04Lie4Lii4LmMDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4n+C4uOC5ieC4h+C5gOC4iOC4o+C4tOC4jeC4geC4uOC4pQ0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguKPguJXguLTguKrguKPguLLguI3guIjguLTguJUNCivguJjguKfguLHguIrguIrguLHguKIg4Lil4Li14LmJ4Lig4Li54Lih4Li04Lin4LiZ4Li04LiK4Lii4LmMDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4p+C4seC4kuC4meC4sA0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguKjguKPguLXguKfguLTguJrguLnguKXguKLguYwNCivguJjguKfguLHguIrguIrguLHguKIg4Liq4Lij4Liy4LiN4LiT4Li04Lii4LiY4Lij4Lij4LihDQor4LiY4Lin4Lix4LiK4LiK4Lix4LiiIOC4quC4uOC4meC4l+C4o+C4geC4tOC4leC4tA0KK+C4mOC4p+C4seC4iuC4iuC4seC4oiDguYDguKvguKXguLfguK3guIfguKrguKHguK3guLjguYTguKMNCivguJjguKfguLHguIrguIrguLHguKIg4Lit4Li04Liq4Lij4Liw4LiZ4Li04Lih4Li04LiV4LijDQor4LiY4Lin4Lix4LiS4LiK4Lix4LiiIOC4nuC4tOC4nuC4seC4kuC4meC5jOC4qOC4tOC4o+C4tOC4guC4iOC4ow0KK+C4mOC4seC4iiDguKPguLHguJXguJnguJfguLjguKHguKHguLINCivguJjguLHguIrguJ7guKUg4Lie4Lin4LiH4LiB4LiZ4LiBDQor4LiY4Lix4LiN4LiN4Lij4Lix4LiB4Lip4LmMIOC4geC4uOC4kOC4tOC4meC4nuC4seC4kuC4meC5jA0KK+C4mOC4seC4jeC4jeC4sCDguYDguIjguKPguLTguI3guKrguLjguIINCivguJjguLHguI3guI3guLIg4LiZ4Liy4LiE4Liq4Li04LmA4LiZ4Lir4Lic4LilDQor4LiY4Lix4LiN4LiN4LiyIOC4reC5iOC4p+C4oeC5gOC4iOC4o+C4tOC4jQ0KK+C4mOC4seC4jeC4l+C4tOC4nuC4ouC5jCDguYDguKXguYnguLLguKfguLHguJLguJnguLINCivguJjguLHguI3guKLguJjguKPguJPguYwg4Lil4Lix4LiB4LiC4Li44LiZ4LiX4LiUDQor4LiY4Lix4LiN4Lil4Lix4LiB4Lip4LiT4LmMIOC4quC4uOC4p+C4o+C4o+C4k+C4m+C4seC4l+C4oQ0KK+C4mOC4seC4meC4ouC4mOC4oyDguIHguYnguK3guIfguKfguLTguKPguLTguKLguLDguYTguJ7guKjguLLguKUNCivguJjguLHguJnguKfguJTguLUg4LmA4LiE4Lij4Li34Lit4Lin4Lix4Lil4Lii4LmMDQor4LiY4Liy4LiU4LiyIOC5gOC4geC4qeC4oeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4mOC4suC4lOC4siDguYDguKXguLTguKjguKrguLTguJnguKrguYjguIfguYDguKrguKPguLTguKENCivguJjguLLguJXguKPguLUg4LiU4Liy4Lij4Liy4LmA4Lii4LmH4LiZDQor4LiY4Liy4LiZ4Lix4LiZ4LiX4LmMIOC4oeC4h+C4hOC4peC4p+C4o+C4suC4oOC4o+C4k+C5jA0KK+C4mOC4suC4meC4tOC4meC4l+C4o+C5jCDguYHguIvguYjguIjguLbguIcNCivguJjguLLguJnguLTguJnguJfguKPguYwg4Lie4Lij4Li04LmJ4LiH4Lih4LiH4LiE4LilDQor4LiY4Liy4LiZ4Li04LiZ4LiX4Lij4LmMIOC4qOC4o+C4teC4quC4uOC4gg0KK+C4mOC4suC4meC4tSDguIHguKXguLTguYjguJnguYDguIHguKnguKMNCivguJjguLLguJnguLUg4LmC4LiV4Lit4LiU4Li04LmA4LiX4Lie4Lii4LmMDQor4LiY4Liy4LiZ4Li1IOC5gOC4nuC4tOC5iOC4oeC4nuC4tuC5iOC4h+C4o+C4seC4leC4meC5jA0KK+C4mOC4suC4meC4tSDguKfguLLguIjguLLguIfguLLguKENCivguJjguLLguJnguLUg4LmA4Lir4Lil4LmH4LiH4LiC4Lii4Lix4LiZDQor4LiY4Liy4Lij4LiX4Li04Lie4Lii4LmMIOC4kyDguKrguIfguILguKXguLINCivguJjguLLguKPguKXguLHguIHguKnguJPguYwg4Lir4Lin4Lix4LiH4LiY4Li14Lij4Lie4LiH4Lio4LmMDQor4LiY4Liy4Lij4LiyIOC5guC4o+C4iOC4meC5jOC4peC4t+C4reC4iuC4seC4og0KK+C4mOC4suC4o+C4suC4o+C4seC4leC4meC5jCDguJ7guIfguKnguYzguYLguKrguKDguLINCivguJjguLLguKPguLTguJPguLUg4LmA4Liq4Li34Lit4Lio4Lij4Li14LmA4Liq4Lij4Li04LihDQor4LiY4Liy4Lij4Li1IOC4quC4seC4h+C5gOC4meC4leC4o+C5jA0KK+C4mOC4s+C4o+C4hyDguYDguIjguLXguKLguKHguJvguKPguLDguYDguKrguKPguLTguJDguJrguLjguI0NCivguJjguLPguKPguIcg4Lig4Li54Lin4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LiY4Liz4Lij4LiH4LiE4LmMIOC4geC4suC4jeC4iOC4meC4m+C4o+C4sOC4oOC4suC4qg0KK+C4mOC4s+C4o+C4h+C4hOC5jCDguKHguLnguKXguYDguIfguLTguJkNCivguJjguLPguKPguIfguKjguLHguIHguJTguLTguYwg4LiY4Liz4Lij4LiH4LmA4Lil4Li04Lio4Lik4LiX4LiY4Li04LmMDQor4LiY4Li04LiU4LiyIOC4hOC4uOC5ieC4oeC5gOC4guC4p+C5ieC4sg0KK+C4mOC4tOC4lOC4siDguJzguKXguITguLTguKHguKvguLHguJnguJXguYwNCivguJjguLTguJTguLIg4Liq4Li44LiK4Liy4LiV4Li0DQor4LiY4Li04LiU4Liy4Lij4Lix4LiV4LiZ4LmMIOC4geC4uOC4qOC4peC4iOC4tOC4leC4oOC4o+C4k+C5jA0KK+C4mOC4tOC4lOC4suC4o+C4seC4leC4meC5jCDguKrguKHguJ7guLHguJnguJjguYwNCivguJjguLTguJXguLQg4LiX4Liy4LiH4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4LiY4Li04LiV4Li04Lie4LiH4Lio4LmMIOC5gOC4qOC4o+C4qeC4kOC4teC4quC4oeC4muC4seC4leC4tA0KK+C4mOC4tOC4leC4tOC4oeC4siDguKXguLLguKDguKjguKPguLXguKHguIfguITguKUNCivguJjguLTguKDguLLguJ7guKMg4LiK4Li44LiT4Lir4LiI4Li04Lij4Lix4LiQ4LiV4Li04LiB4Liy4LilDQor4LiY4Li14LijIOC4qOC4o+C5geC4geC5ieC4pw0KK+C4mOC4teC4o+C4iuC4seC4oiDguYDguJTguYLguIrguJ7guKUNCivguJjguLXguKPguIrguLHguKIg4LmA4Lio4Lij4Lip4LiQ4LiK4Liy4LiV4LiZ4Lix4LiZ4LiX4LmMDQor4LiY4Li14Lij4LiU4LiyIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4mOC4teC4o+C4meC4suC4o+C4liDguJvguLLguKXguIHguLDguKfguIfguKjguYwg4LiTIOC4reC4ouC4uOC4mOC4ouC4sg0KK+C4mOC4teC4o+C4nuC4h+C4qOC5jCDguJTguKfguIfguYDguJnguJXguKMNCivguJjguLXguKPguJ7guIfguKnguYwg4LmC4LiE4LiI4Lij4Liy4LiZ4LiZ4LiX4LmMDQor4LiY4Li14Lij4Lie4LiH4Lip4LmMIOC4o+C4seC4leC4meC5gOC4quC4luC4teC4ouC4ow0KK+C4mOC4teC4o+C4nuC4oyDguITguLjguJPguLLguJfguKPguKfguLHguJLguJnguIHguLjguKUNCivguJjguLXguKPguJ7guKUg4LmA4LiV4Li14LmL4Lii4Lie4Lix4LiS4LiZ4LiB4Li04LiIDQor4LiY4Li14Lij4Lie4LilIOC4quC4seC4meC4leC4tOC4p+C4meC4suC4meC4meC4l+C5jA0KK+C4mOC4teC4o+C4nuC4seC4meC4mOC5jCDguJ7guLHguIrguKPguJvguKPguLDguKDguLLguIHguKMNCivguJjguLXguKPguKLguKgg4LiK4Lix4Lii4LmA4Liq4LiZ4Liw4Lia4Lix4LiT4LiR4Li04LiVDQor4LiY4Li14Lij4Lii4Li44LiX4LiYIOC4m+C4o+C4seC4iuC4jeC4suC4muC4s+C4o+C4uA0KK+C4mOC4teC4o+C4ouC4uOC4l+C4mCDguK3guLHguIjguIjguLTguKHguLLguKPguLHguIfguKnguLUNCivguJjguLXguKPguKfguKPguKPguJMg4Lin4Lix4LiK4Lij4Liq4Li04LiZ4LiY4Li44LmMDQor4LiY4Li14Lij4Lin4Lix4LiS4LiZ4LmMIOC5gOC4leC4iuC4sOC4quC4uOC4o+C4tOC4ouC4sOC4oeC4k+C4tQ0KK+C4mOC4teC4o+C4p+C4seC4kuC4meC5jCDguKjguKPguLXguKrguLjguIINCivguJjguLXguKPguKfguLTguJfguKLguYwg4Lia4Lin4Lij4Lia4Li44LiN4Liq4Li44LiCDQor4LiY4Li14Lij4Lin4Li44LiS4Li0IOC4nuC4h+C4qOC5jOC5gOC4qOC4o+C4qeC4kOC5hOC4nuC4qOC4suC4pQ0KK+C4mOC4teC4o+C4qOC4seC4geC4lOC4tOC5jCDguIjguLTguKPguKfguLTguKPguLTguKLguKfguIfguKjguYwNCivguJjguLXguKPguKjguLHguIHguJTguLTguYwg4Lig4Li04Liq4Lix4LiK4LmA4Lie4LmH4LiNDQor4LiY4Li14Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4suC4oOC4suC4quC4geC4uOC4peC5gOC4lOC4ig0KK+C4mOC4teC4o+C4sCDguITguLPguKrguLINCivguJjguLXguKPguLAg4LmE4LiK4Lii4Lij4Lix4LiV4LiZ4LmMDQor4LiY4Li14Lij4LiwIOC4l+C4o+C4seC4nuC4ouC4o+C4uOC5iOC4h+C4l+C4p+C4teC4nOC4pQ0KK+C4mOC4teC4o+C4sCDguJnguLTguKXguYHguIjguYnguIcNCivguJjguLXguKPguLAg4Lie4Li04LiB4Li44Lil4LiZ4LmJ4Lit4LiiDQor4LiY4Li14Lij4LiwIOC4o+C4tOC4oeC4nuC4meC4seC4qg0KK+C4mOC4teC4o+C4sCDguKfguLTguKDguLnguIrguJnguLTguJkNCivguJjguLXguKPguLAg4Liq4Li04LiH4Lir4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiY4Li14Lij4LiwIOC4reC4meC4seC4meC4leC5jOC4oeC4suC4meC4sA0KK+C4mOC4teC4o+C4sOC4iuC4seC4oiDguYDguIHguJXguLjguJXguKPguLXguIHguKPguJPguYwNCivguJjguLXguKPguLDguIrguLHguKIg4Lie4Lix4LiZ4LiY4Li44Lil4Liy4LigDQor4LiY4Li14Lij4Liw4LiK4Liy4LiV4Li0IOC5gOC4peC4tOC4qOC4muC4p+C4o+C4p+C4h+C4qOC5jA0KK+C4mOC4teC4o+C4sOC4nuC4h+C4qOC5jCDguKfguLHguJLguJnguJ7guLTguJfguKLguIHguLjguKUNCivguJjguLXguKPguLDguJ7guIfguKnguYwg4Lie4Lil4Lih4Lix4LmI4LiZDQor4LiY4Li14Lij4Liw4Lie4LijIOC4p+C4teC4o+C4sOC4luC4suC4p+C4ow0KK+C4mOC4teC4o+C4sOC4nuC4pSDguKPguK3guJrguLPguKPguLjguIcNCivguJjguLXguKPguLDguJ7guLHguJnguJjguLjguYwg4Lin4Lix4LiS4LiZ4Lie4Lix4LiZ4LiY4Li44LmMDQor4LiY4Li14Lij4Liw4Lii4Li44LiX4LiYIOC5geC4i+C5iOC5gOC4peC5ieC4sg0KK+C4mOC4teC4o+C4sOC4p+C4h+C4qOC5jCDguYHguIvguYjguK3guLbguYnguIcNCivguJjguLXguKPguLDguKfguLHguJLguJnguYwg4Lio4Lio4Li04LiY4LijDQor4LiY4Li14Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC4geC4suC4quC4suC4p+C4nuC4suC4meC4tOC4iuC4ouC5jA0KK+C4mOC4teC4o+C4sOC4qOC4seC4geC4lOC4tOC5jCDguJrguLjguI3guYDguInguKXguLXguKLguKcNCivguJjguLXguKPguLDguKjguLHguIHguJTguLTguYwg4Liq4Li04LiH4Lir4LmC4Lij4LiI4LiZ4Liy4LiB4Li44LilDQor4LiY4Li14Lij4Liw4LmA4LiU4LiKIOC4leC4o+C4teC4l+C4qOC4suC4ouC4uOC4mA0KK+C4mOC4teC4o+C4siDguKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguJjguLXguKPguLLguKXguLHguIHguKnguJPguYwg4Lii4Lih4Liw4Liq4Lih4Li04LiVDQor4LiY4Li14Lij4LmA4LiU4LiKIOC5gOC4peC4tOC4qOC4p+C4tOC5hOC4peC4geC4uOC4peC4meC4l+C4tQ0KK+C4mOC5gOC4meC4lSDguYDguJvguKXguLXguYjguKLguJnguJnguLjguIoNCivguJjguYDguJnguKgg4LiJ4Liy4Lii4Lij4Lix4LiH4Lip4Li1DQor4LiY4LmA4LiZ4LioIOC4mOC4suC4k+C4suC4mOC4sOC4o+C4sOC4meC4tOC4lQ0KK+C4mOC5gOC4meC4qCDguKHguLXguYDguJTguIoNCivguJjguYDguJnguKgg4Lio4Lix4LiB4LiU4Li04LmM4LiK4Lix4Lii4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LiY4LmA4LiZ4Lio4Lie4LilIOC4qOC4uOC4geC4peC4geC4suC4meC4leC5jA0KK+C5gOC4mOC4meC4leC4oyDguJ7guLTguKHguJ7guYzguIjguLHguJnguJfguKPguYwNCivguYDguJjguLXguKLguKPguIrguLHguKIg4Lid4Liy4LiB4Lil4Liy4LigDQor4LmA4LiY4Li14Lii4Lij4LmE4LiK4LiiIOC4qOC4seC4meC4quC4meC4sOC4geC4uOC4pQ0KK+C4meC4geC5gOC4peC5h+C4gSDguJfguLHguJrguJnguLLguYLguITguIENCivguJnguIHguYHguIHguYnguKcg4Lin4LiH4Lio4LmM4Liq4LmI4Liy4Lii4LiW4LiZ4Lit4LihDQor4LiZ4LiE4LijIOC4iuC4seC4ouC4quC4oeC4muC4ueC4o+C4k+C5jOC4nuC4seC4meC4mOC5jA0KK+C4meC4hOC4oyDguJrguLjguJXguKPguYLguJ7guJjguLTguYwNCivguJnguITguKMg4Lii4Li04LmJ4Lih4Lio4Li04Lij4Li04Lin4Lix4LiS4LiZ4LiwDQor4LiZ4LiE4LijIOC4quC4h+C4hOC4o+C4suC4oQ0KK+C4meC4hOC4oyDguK3guLTguJnguJfguKPguYzguKrguLjguIINCivguJnguITguYDguKPguKgg4LiX4LiZ4LiH4Lio4Lix4LiB4LiU4Li04LmM4Lih4LiZ4LiV4Lij4Li1DQor4LiZ4LiH4LiE4Lij4Liy4LiNIOC5gOC4guC4t+C5iOC4reC4meC5geC4geC5ieC4pw0KK+C4meC4h+C4hOC4o+C4suC4jSDguKfguLXguKPguLDguJ7guLLguJnguLTguIrguYDguIjguKPguLTguI0NCivguJnguIfguITguYzguYDguKLguLLguKfguYwg4LiY4Lij4Lij4Lih4LiZ4Li04LiY4LiyDQor4LiZ4LiH4LiZ4Liy4LiPIOC4meC4tOC4nuC4meC4mOC5jOC4qOC4seC4geC4lOC4tOC5jA0KK+C4meC4h+C4meC4uOC4iiDguIHguK3guKrguIHguLjguKUNCivguJnguIfguJnguLjguIog4LiI4Lix4LiZ4LiX4Lij4LmM4Lir4Lit4LihDQor4LiZ4LiH4LiZ4Li44LiKIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4meC4h+C4meC4uOC4iiDguJfguLHguJrguKjguKPguLUNCivguJnguIfguJnguLjguIog4Lib4Lij4Liw4LiB4Lit4Lia4LmA4Lie4LmH4LiK4LijDQor4LiZ4LiH4LiZ4Li44LiKIOC5hOC4nuC4keC4ueC4o+C4ouC5jOC4oeC4h+C4hOC4pQ0KK+C4meC4h+C4meC4uOC4iiDguKXguLLguKDguKjguKPguLXguKfguLTguKfguLHguJLguJnguYwNCivguJnguIfguJnguLjguIog4Lio4Lix4Lil4Lii4LmM4Lin4Li04LmA4Lio4LipDQor4LiZ4LiH4LiZ4Li44LiKIOC4quC4uOC4p+C4o+C4o+C4k+C4geC4meC4tOC4qeC4kA0KK+C4meC4h+C4meC4uOC4iiDguK3guLjguJPguKvguYzguYTguKfguJfguKLguLANCivguJnguIfguJ7guLjguJgg4LiK4Li34LmI4LiZ4LiK4LihDQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4geC4tOC4leC4leC4tOC4qOC4seC4geC4lOC4tOC5jOC5hOC4nuC4o+C4seC4ig0KK+C4meC4h+C4peC4seC4geC4qeC4k+C5jCDguIjguKPguLTguKLguJ7guKTguJfguJjguLTguJ7guIfguKjguYwNCivguJnguIfguKXguLHguIHguKnguJPguYwg4LiK4LmI4Lin4Lii4Lin4LiH4Lip4LmM4LiN4Liy4LiV4Li0DQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4kOC4tOC4leC4tOC4p+C4ow0KK+C4meC4h+C4peC4seC4geC4qeC4k+C5jCDguJfguK3guIfguK3guLHguKjguKfguLTguJkNCivguJnguIfguKXguLHguIHguKnguJPguYwg4Lia4Li44LiN4LiN4Lin4Lix4LiS4LiZ4LmMDQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4nuC4o+C4quC4t+C4muC4p+C4h+C4qOC5jA0KK+C4meC4h+C4peC4seC4geC4qeC4k+C5jCDguKDguLnguYjguKrguLjguJrguLTguJkNCivguJnguIfguKXguLHguIHguKnguJPguYwg4LmC4Lij4LiI4LiZ4LmM4LiB4Li44Lil4LiC4LiI4LijDQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4p+C4tOC4l+C4ouC4suC4p+C4tOC4qOC4p+C4quC4geC4uOC4pQ0KK+C4meC4h+C4peC4seC4geC4qeC4k+C5jCDguKrguKHguYHguIHguYnguKcNCivguJnguIfguKXguLHguIHguKnguJPguYwg4Liq4Li44Lil4Liy4Lin4Lij4Lij4LiTDQor4LiZ4LiH4Lil4Lix4LiB4Lip4LiT4LmMIOC4reC4o+C4iuC4ow0KK+C4meC4h+C5gOC4ouC4suC4p+C4lOC4tSDguYTguJ7guJfguLXguIHguLjguKUNCivguJnguIfguYDguKLguLLguKfguYwg4LiI4Lix4LiZ4LiX4Lih4Liy4LioDQor4LiZ4LiH4LmA4Lii4Liy4Lin4LmMIOC5geC4i+C5iOC5guC4i+C4pw0KK+C4meC4h+C5gOC4ouC4suC4p+C5jCDguJjguLTguJXguLTguYTguJ7guKjguLLguKUNCivguJnguIfguYDguKLguLLguKfguYwg4Lie4Lij4Lir4Lih4LmE4LiB4Lij4Lin4LijDQor4LiZ4LiH4LmA4Lii4Liy4Lin4LmMIOC5gOC4oeC4meC4sOC5gOC4qOC4p+C4lQ0KK+C4meC4h+C5gOC4ouC4suC4p+C5jCDguKfguLLguJnguLDguKPguLTguJnguJfguKPguYwNCivguJnguIfguYDguKLguLLguKfguYwg4Liq4Li44LiB4LmD4LiqDQor4LiZ4LiH4LmA4Lii4Liy4Lin4LmMIOC4reC4uOC4l+C4seC4og0KK+C4meC4l+C4tSDguIjguLbguIfguJvguKPguLDguKrguLTguJfguJjguLTguYzguJ7guKMNCivguJnguJfguLUg4LmA4Lih4LiG4LiB4Lix4Lil4LiI4Liy4LiiDQor4LiZ4LiX4Li14LiX4Li04Lie4Lii4LmMIOC4o+C4seC4leC4leC4tOC4mOC4o+C4o+C4oQ0KK+C4meC4meC4l+C4nuC4oyDguK3guLjguJTguKHguKHguLLguIENCivguJnguJnguJfguLTguKLguLIg4LiU4Li04LiW4Li14LmA4Lie4LmH4LiHDQor4LiZ4LieIOC5guC4iuC4leC4tOC4geC5gOC4quC4luC4teC4ouC4ow0KK+C4meC4nuC4geC4oyDguIjguLTguJXguYLguJXguKDguLLguKkNCivguJnguJ7guITguLjguJMg4Lin4LiH4Lip4LmM4Liq4Lin4Lij4Lij4LiE4LmMDQor4LiZ4Lie4LiT4Lij4LiH4LiE4LmMIOC5geC4geC5ieC4p+C4iOC4s+C4peC4reC4hw0KK+C4meC4nuC4lOC4pSDguYTguIHguKPguYHguKrguIcNCivguJnguJ7guJTguKUg4LiI4Li44LiR4Liy4LiY4Li04Lib4Lix4LiV4Lii4LmMDQor4LiZ4Lie4LiU4LilIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4meC4nuC4lOC4pSDguYLguJXguYDguIjguKPguLTguI3guJjguJnguLLguJzguKUNCivguJnguJ7guJTguKUg4LiZ4Li04Lil4LiB4Liy4LmA4LiU4LmH4LiUDQor4LiZ4Lie4LiU4LilIOC4m+C4seC4l+C4oeC4sA0KK+C4meC4nuC4lOC4pSDguJ7guLTguYDguJTguIoNCivguJnguJ7guJTguKUg4Lih4Li04LmI4LiH4Lil4LiU4Liy4Lie4LijDQor4LiZ4Lie4LiU4LilIOC4pOC4l+C4mOC4tOC5jOC5gOC4l+C4ng0KK+C4meC4nuC4lOC4pSDguYDguKfguIrguKfguLTguJDguLLguJkNCivguJnguJ7guJTguKUg4Liq4Lix4LiH4LiC4LmM4Lio4Li04Lij4Li04LiZ4LiX4Lij4LmMDQor4LiZ4Lie4LiU4LilIOC4q+C4peC4suC4p+C4l+C4reC4hw0KK+C4meC4nuC4lOC4pSDguK3guLjguIrguIrguLTguJkNCivguJnguJ7guJvguI7guKUg4LiI4LiH4Liq4LiB4Li44Lil4LiZ4Li04Lij4Lix4LiZ4LiU4Lij4LmMDQor4LiZ4Lie4Lie4LijIOC5gOC4hOC4o+C4t+C4reC5geC4geC5ieC4pw0KK+C4meC4nuC4nuC4oyDguJXguLjguIfguITguLDguKPguLHguIHguKnguYwNCivguJnguJ7guJ7guKMg4Lib4Lij4Liw4LmC4Lih4LiI4LiZ4Li14Lii4LmMDQor4LiZ4Lie4Lie4LijIOC4o+C4seC4leC4meC4p+C4tOC4qOC4tOC4qeC4juC5jOC4geC4uOC4pQ0KK+C4meC4nuC4nuC4oyDguKjguLLguKrguJXguKPguYzguILguLMNCivguJnguJ7guJ7guKMg4Lit4Li04LiZ4LiX4Lij4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiZ4Lie4Lie4LilIOC4q+C4oeC4p+C4lOC4iOC4seC4meC4l+C4o+C5jA0KK+C4meC4nuC4oeC4k+C4tSDguYHguIvguYjguYLguIfguYnguKcNCivguJnguJ7guKHguLLguKgg4LmE4Lin4Lii4Lij4Lix4LiK4Lie4Liy4LiZ4Li04LiKDQor4LiZ4Lie4Lij4Lix4LiV4LiZ4LmMIOC5gOC4guC4t+C5iOC4reC4meC4iuC4seC4og0KK+C4meC4nuC4o+C4seC4leC4meC5jCDguYTguIrguKLguKPguLHguJXguJnguYwNCivguJnguJ7guKPguLHguJXguJnguYwg4Lia4Li44LiN4Lie4Lij4Lie4Li04Lih4LilDQor4LiZ4Lie4Lij4Lix4LiV4LiZ4LmMIOC4ouC4teC5iOC4reC4s+C4nuC4seC4meC4mOC5jA0KK+C4meC4nuC4o+C4seC4leC4meC5jCDguKrguKHguJrguLHguJXguLTguJvguKPguLDguIrguLLguIHguKMNCivguJnguJ7guKPguLHguJXguJnguYwg4Lit4Liy4Lij4Lii4Liw4LiZ4Lij4Liy4LiB4Li54LilDQor4LiZ4Lie4Lin4Lij4Lij4LiTIOC4hOC4h+C4oeC4sOC4geC4peC5iOC4sw0KK+C4meC4nuC4p+C4o+C4o+C4kyDguJbguLLguKfguKPguKfguLTguKrguLTguJfguJjguLTguYwNCivguJnguJ7guKfguKPguKPguJMg4Lig4Lix4LiB4LiU4Li14LiU4Liz4Lij4LiH4Lik4LiX4LiY4Li04LmMDQor4LiZ4Lie4Lin4Lij4Lij4LiTIOC4quC4tOC4meC4leC4seC5ieC4h+C4p+C4h+C4qeC5jA0KK+C4meC4nuC4p+C4seC4peC4ouC5jCDguKrguLHguKHguJ7guLHguJnguJjguYzguKrguLjguILguKjguKPguLUNCivguJnguJ7guYDguIHguYnguLIg4Liq4Li44LiC4Liq4Li04LiZDQor4LiZ4Lig4LiU4LilIOC5hOC4l+C4ouC4mOC4seC4jeC4jeC4nuC4suC4meC4tOC4ig0KK+C4meC4oOC4lOC4pSDguKrguLjguKfguKPguKPguJPguKHguJPguLUNCivguJnguKDguLHguKog4Lij4Lix4LiV4LiZ4LmE4Lie4LiR4Li54Lij4Lii4LmMDQor4LiZ4Lig4LiyIOC4iOC4suC4oeC4teC4geC4o+C4geC4uOC4pQ0KK+C4meC4oOC4siDguYLguJXguYrguLDguKrguKHguLHguJkNCivguJnguKDguLIg4Lig4Liy4LiE4Liy4Lin4Lix4Lil4Lii4LmMDQor4LiZ4Lig4LiyIOC4qOC4o+C4teC4geC4seC4k+C4keC4tOC4oeC4suC4o+C4seC4geC4qeC5jA0KK+C4meC4oOC4siDguYDguK3guLXguYjguKLguKHguKXguLDguK3guK0NCivguJnguKDguLLguJ7guKMg4LmA4LiB4Li14Lii4Lij4LiV4Li04LiK4Lix4Lii4LiX4Lij4Lix4Lie4Lii4LmMDQor4LiZ4Lig4Liy4Lie4LijIOC4iuC4peC4muC4uOC4qeC4m+C4geC4uOC4pQ0KK+C4meC4oOC4suC4nuC4oyDguJTguKfguIfguKrguKPguYnguK3guKLguJfguK3guIcNCivguJnguKDguLLguJ7guKMg4LiZ4Lit4Lia4LiZ4LmJ4Lit4Lih4LiY4Lij4Lij4LihDQor4LiZ4Lig4Liy4Lie4LijIOC4nuC4iOC4meC4sOC4qOC4tOC4peC4mw0KK+C4meC4oOC4suC4nuC4oyDguYDguKHguJXguJXguJ7guLHguJnguJjguLjguYwNCivguJnguKDguLLguJ7guKMg4Lin4LiH4Lio4LmM4LiB4Li44LiU4Lix4LmI4LiZDQor4LiZ4Lig4Liy4Lie4LijIOC4quC4luC4tOC4o+C4suC4meC4uOC4p+C4seC4kuC4meC5jA0KK+C4meC4oOC4suC4nuC4oyDguKvguK3guKHguILguIjguKMNCivguJnguKDguLLguJ7guKPguKPguJMg4LmA4LiV4LiK4Liw4Lie4Li04Lij4Li04Lii4Liw4LiB4Li44LilDQor4LiZ4Lig4Liy4Lig4Lij4LiT4LmMIOC4l+C4tOC4nuC4o+C4seC4leC4meC5jA0KK+C4meC4oOC4suC4oOC4o+C4k+C5jCDguKvguLDguKrguLTguJXguLDguYDguKfguIoNCivguJnguKDguLLguKXguLHguKIg4Liq4Li44Lin4Lij4Lij4LiT4LiY4Liy4LiU4LiyDQor4LiZ4Lig4Liy4Lio4Li04Lij4Li0IOC4lOC4suC4lOC4suC4qQ0KK+C4meC4o+C4iuC4seC4oiDguKHguLLguJnguLTguJXguIHguLjguKUNCivguJnguKPguKPguLHguJXguJnguYwg4Lit4LiZ4Li44Lio4Li04Lij4Li0DQor4LiZ4Lij4LiyIOC5gOC4l+C4nuC5gOC4quC4meC4sg0KK+C4meC4o+C4suC4l+C4tOC4nuC4ouC5jCDguKfguIfguKjguYzguKfguLTguKPguLHguJXguJnguYwNCivguJnguKPguLLguKDguKPguJPguYwg4LiI4Li14Lij4Liw4Lib4Lij4Liw4Lig4Liy4LiB4Liy4LiN4LiI4LiZ4LmMDQor4LiZ4Lij4Liy4Lin4Lix4Lil4Lii4LmMIOC4iOC4uOC4peC5guC4oeC4geC4guC5jA0KK+C4meC4o+C4tOC4meC4l+C4o+C4seC4leC4meC5jCDguKrguKfguLHguKrguJTguLTguKfguIfguKjguYwNCivguJnguKPguLTguJnguJfguKPguYwg4LiJ4Lix4LiV4Lij4LmA4LiJ4Lil4Li04Lih4LiK4Lix4LiiDQor4LiZ4Lij4Li04LiZ4LiX4Lij4LmMIOC4meC4o+C4tOC4meC4l+C4o+C5jA0KK+C4meC4o+C4tOC4meC4l+C4o+C5jCDguJ7guKrguLjguJnguJjguKPguLLguJjguKPguKPguKENCivguJnguKPguLTguJnguJfguKPguYwg4Lil4Li04LmJ4Lih4Liq4Lij4LmJ4Lit4Lii4LmA4Lie4LmH4LiK4LijDQor4LiZ4Lij4Li04LiZ4LiX4Lij4LmMIOC4quC4uOC4iOC4tOC4leC5guC4lQ0KK+C4meC4o+C4tOC4meC4l+C4tOC4nuC4ouC5jCDguYLguIHguKHguLjguJfguIHguLjguKUNCivguJnguKPguLTguKgg4LiY4Li14Lij4Lie4Lij4Lie4LiH4Lio4LmMDQor4LiZ4Lij4Li04LioIOC4quC4meC5g+C4iA0KK+C4meC4o+C4tOC4qOC4o+C4siDguJXguKPguLXguKfguKPguKPguLHguJXguJnguIHguLjguKUNCivguJnguKPguLTguKjguKPguLIg4Lit4Li44Lip4Liy4LmE4Lie4Lij4Lie4Lij4Lij4LiTDQor4LiZ4Lij4Li04LiqIOC4reC4suC4o+C4teC4ouC5jA0KK+C4meC4o+C4teC4l+C4tOC4nuC4ouC5jCDguJfguLjguYjguIfguIHguLLguKfguLUNCivguJnguKPguYDguKjguKPguKnguJDguYwg4Lit4Li04Lio4Lij4Liy4LiH4LiB4Li54LijIOC4kyDguK3guKLguLjguJjguKLguLINCivguJnguKTguJTguLUg4Lir4Li04Lij4Lix4LiN4Lia4Li54Lij4LiT4LiwDQor4LiZ4Lik4LiZ4Liy4LiXIOC4peC4teC5gOC4peC4tOC4qOC4nuC4seC4meC4mOC5jA0KK+C4meC4pOC4nuC4oyDguK3guLHguITguKPguJ7guIfguKjguYzguYTguJ7guKjguLLguKUNCivguJnguKTguKHguKUg4LiB4Liy4LiN4LiI4LiZ4LiW4Lih4Lii4LiyDQor4LiZ4Lik4Lih4LilIOC4guC4seC4meC5geC4geC5ieC4pw0KK+C4meC4pOC4oeC4pSDguIjguLHguJnguJfguKPguKfguKPguYDguKHguJcNCivguJnguKTguKHguKUg4LiK4Lix4Lii4LiE4Li54LiT4Lic4LilDQor4LiZ4Lik4Lih4LilIOC5geC4i+C5iOC4reC4tuC5iOC4hw0KK+C4meC4pOC4oeC4pSDguJXguLTguJnguLINCivguJnguKTguKHguKUg4LiY4LiZ4Liw4LiW4LmJ4Lit4LiiDQor4LiZ4Lik4Lih4LilIOC4muC4uOC4jeC4geC4meC4gQ0KK+C4meC4pOC4oeC4pSDguYDguJvguKPguKHguKfguLjguJLguLQNCivguJnguKTguKHguKUg4Lie4Li44LiX4LiY4LiZ4Lin4Lij4Lix4LiV4LiZ4LmMDQor4LiZ4Lik4Lih4LilIOC4oeC4suC4meC4sOC4quC4geC4uOC4peC4geC4tOC4iA0KK+C4meC4pOC4oeC4pSDguKPguLjguIjguLTguKvguLLguI0NCivguJnguKTguKHguKUg4Lin4Lij4Lij4LiT4Liy4LmE4LiX4LijDQor4LiZ4Lik4Lih4LilIOC4qOC4tOC4o+C4tOC4nuC4h+C4qOC5jOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4meC4pOC4oeC4pSDguKrguLTguKPguLTguJvguKPguLXguJTguLLguJnguJnguJfguYwNCivguJnguKTguKHguKUg4LmB4Liq4LiZ4Liq4Lin4LiiDQor4LiZ4Lik4Lih4LilIOC4reC4o+C4uOC4k+C5gOC4iOC4o+C4tOC4jeC4geC4uOC4pQ0KK+C4meC4pOC4oeC4tOC4lSDguJzguKXguLLguIHguKPguIHguLjguKUNCivguJnguKXguJ7guKMg4Lig4Li04LiN4LmC4LiN4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMDQor4LiZ4Lil4Li04LiZ4LiX4Li04Lie4Lii4LmMIOC5geC4quC4meC4l+C4p+C4teC4quC4uOC4gg0KK+C4meC4peC4tOC4meC4tSDguJjguIfguJnguLPguJfguKPguLHguJ7guKLguYwNCivguJnguKXguLTguJnguLUg4Lit4Lij4LmI4Liy4Lih4LmA4Lij4Li34Lit4LiH4Liq4LiB4Li44LilDQor4LiZ4Lin4Lie4LijIOC4geC4uOC4peC4p+C4iuC4tOC4o+C4suC4p+C4o+C4o+C4k+C5jA0KK+C4meC4p+C4nuC4oyDguKfguIfguKjguYzguK3guLjguYTguKMNCivguJnguKfguKEg4Lie4Lil4Lix4Lia4LiI4Li44LmJ4LiiDQor4LiZ4Lin4Lij4Lix4LiV4LiZ4LmMIOC5gOC4iOC4o+C4tOC4jeC4mOC4meC4suC4p+C4seC4kuC4meC5jA0KK+C4meC4p+C4o+C4seC4leC4meC5jCDguJvguLjguIHguKvguLjguJUNCivguJnguKfguKPguLHguJXguJnguYwg4Liq4LiH4Lin4LiZ4LmA4Liq4Lij4Li14Lie4Liy4LiZ4Li04LiKDQor4LiZ4Lin4LilIOC4p+C4seC4ouC4oeC4uOC4gg0KK+C4meC4p+C4peC4iOC4seC4meC4l+C4o+C5jCDguIjguK3guKHguYHguKrguIcNCivguJnguKfguKXguIjguLHguJnguJfguKPguYwg4LiV4Lix4LiH4LiE4Lia4LiU4Li1DQor4LiZ4Lin4Lil4LiI4Lix4LiZ4LiX4Lij4LmMIOC4muC4uOC4jeC4nuC4iOC4meC4quC4uOC4meC4l+C4ow0KK+C4meC4p+C4peC4iOC4seC4meC4l+C4o+C5jCDguYLguKDguITguLINCivguJnguKfguKXguIjguLHguJnguJfguKPguYwg4Lio4Lij4Li14Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMDQor4LiZ4Lin4Lil4LiI4Lix4LiZ4LiX4Lij4LmMIOC4reC4suC4o+C4teC4qOC4o+C4teC4p+C4seC4kuC4meC4suC4p+C4h+C4qeC5jA0KK+C4meC4p+C4peC4ieC4p+C4tSDguJrguLHguKfguITguKPguLfguYnguJkNCivguJnguKfguKXguJXguLIg4Lie4Lix4LiS4LiZ4Liq4Li04LiH4Lir4LmMDQor4LiZ4Lin4Lil4LiZ4LmJ4Lit4LiiIOC4geC4meC4tOC4qeC4kOC4quC4uOC4lQ0KK+C4meC4p+C4peC4meC5ieC4reC4oiDguKrguLjguILguKfguLLguJnguLTguIrguKLguYzguYDguIjguKPguLTguI0NCivguJnguKfguKXguJvguKPguLLguIcg4LiK4Lix4Lii4LiX4LiZDQor4LiZ4Lin4Lil4Lie4LijIOC4oOC4suC4k+C4uOC4oeC4suC4oOC4o+C4k+C5jA0KK+C4meC4p+C4peC4nuC4o+C4o+C4kyDguKrguLPguKPguK3guIfguJfguKPguLHguJ7guKLguYwNCivguJnguKfguKXguKTguJTguLUg4LmA4LiV4LmH4Lih4Lik4LiX4LiY4Li04Lin4LiH4Lio4LmMDQor4LiZ4Lin4Lil4Lil4Liw4Lit4LitIOC5gOC4peC4hA0KK+C4meC4p+C4peC4qOC4o+C4tSDguInguKfguLXguJ7guLTguKjguLLguKUNCivguJnguKfguKXguKjguKPguLUg4Lij4Li04LiI4Li04Lij4Lin4LiZ4Li04LiKDQor4LiZ4Lin4Lil4Lio4Li04Lij4Li0IOC4iOC4h+C5gOC4iOC4o+C4tOC4jeC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jA0KK+C4meC4p+C4peC4reC4meC4h+C4hOC5jCDguYDguIjguKPguLTguI3guJzguKUNCivguJnguKfguKXguK3guJnguIfguKjguYwg4LiY4Lij4Lij4Lih4Liq4Li44LiI4Lij4Li04LiVDQor4LiZ4Lin4Lin4Lij4Lij4LiTIOC4geC4tOC4iOC5gOC4iOC4o+C4tOC4jeC4p+C4h+C4qOC5jA0KK+C4meC4reC4peC5gOC4lOC4p+C4i+C4tOC4h+C4q+C5jCDguIjguLLguKfguKXguLINCivguJnguYnguK3guKEg4LiX4Lij4Lix4Lie4Lii4Lix4LiiDQor4LiZ4LmJ4Lit4Lih4LiI4Li04LiV4LiV4LmMIOC4nuC4tuC5iOC4h+C4nuC4ow0KK+C4meC5ieC4reC4oiDguITguIfguKjguLTguKXguLINCivguJnguYnguK3guKIg4LiK4Li54LiU4Lin4LiHDQor4LiZ4LmJ4Lit4LiiIOC4leC4o+C4teC4nuC4o+C5hOC4nuC4o+C4seC4ig0KK+C4meC5ieC4reC4oiDguJnguLjguIrguIrguLHguKINCivguJnguYnguK3guKIg4Lie4Lix4LiS4Lie4Li04Lia4Li54Lil4Lii4LmMDQor4LiZ4LmJ4Lit4LiiIOC4ouC4o+C4o+C4ouC4h+C4nuC4suC4k+C4tOC4iuC4ouC5jA0KK+C4meC5ieC4reC4oiDguYLguKfguKvguLLguKMNCivguJnguYnguK3guKIg4Liq4Li44LiU4Lir4Lil4LmJ4LiyDQor4LiZ4LmJ4Lit4LiiIOC4ruC4suC4oeC4tOC4hA0KK+C4meC4seC4geC4o+C4miDguKvguKXguLTguYjguKHguKfguLTguKPguLHguJXguJnguYwNCivguJnguLHguI7guJTguLIg4Lio4Lij4Li14Lil4LmJ4Lit4Lih4Lil4Liy4LigDQor4LiZ4Lix4LiQ4LiB4Li04LiV4LiV4Li0IOC5geC4i+C5iOC5gOC4iOC4teC4ouC4oQ0KK+C4meC4seC4kOC4ouC4siDguK3guJnguLjguJTguLTguKnguJDguYwNCivguJnguLHguJTguJTguLIg4LmC4Lie4LiY4LiyDQor4LiZ4Lix4LiX4LiY4Lih4LiZIOC5geC4leC4h+C4nuC4uOC4gQ0KK+C4meC4seC4mSDguJ7guLHguJnguYDguJTguIoNCivguJnguLHguJnguJfguIHguLIg4Lie4Liy4Liq4Li44LiZ4Lix4LiZ4LiX4LmMDQor4LiZ4Lix4LiZ4LiX4LmM4LiK4LiZ4LiBIOC4iuC4suC4p+C5gOC4o+C4t+C4rQ0KK+C4meC4seC4meC4l+C4meC4siDguITguKPguK3guIfguJrguLjguI3guKjguKPguLUNCivguJnguLHguJnguJfguJnguLIg4LiL4Liy4Lit4Liw4LiU4Li1DQor4LiZ4Lix4LiZ4LiX4LiZ4LiyIOC4mOC4o+C4o+C4oeC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4meC4seC4meC4l+C4meC4siDguJ7guKPguJfguKPguLLguJnguJnguJfguYwNCivguJnguLHguJnguJfguJnguLIg4Lij4Liy4LiV4Lij4Li14LmC4LiK4LiV4Li0DQor4LiZ4Lix4LiZ4LiX4LiZ4LiyIOC4qOC4tOC4peC4suC4quC4seC4og0KK+C4meC4seC4meC4l+C4meC4siDguK3guJnguLHguJnguJXguYzguJjguYLguJnguJTguKENCivguJnguLHguJnguJfguJnguLUg4LmA4LiV4LiK4Liw4Lih4LmC4LiZ4Lij4Lih4Lii4LmMDQor4LiZ4Lix4LiZ4LiX4Lie4LijIOC4iuC4seC4ouC4p+C4o+C4l+C4ow0KK+C4meC4seC4meC4l+C4nuC4oyDguKPguLfguYjguJnguYTguKfguKINCivguJnguLHguJnguJfguJ7guKUg4LiX4Lit4LiH4LiE4LizDQor4LiZ4Lix4LiZ4LiX4Lii4LiyIOC5guC4m+C4o+C5iOC4h+C5geC4quC4h+C4mOC4o+C4o+C4oQ0KK+C4meC4seC4meC4l+C4o+C4siDguKTguJTguLXguILguIjguKMNCivguJnguLHguJnguJfguKfguKPguKPguJMg4Lia4Li54Lij4LiT4Lib4Lij4Liw4Lie4Lik4LiB4Lip4LmMDQor4LiZ4Lix4LiZ4LiX4Lin4Lix4LiS4LiZ4LmMIOC4hOC4meC4tOC4ouC4oeC5gOC4p+C4hOC4tOC4mQ0KK+C4meC4seC4meC4l+C4p+C4seC4mSDguYDguIjguLXguKLguKPguK3guLjguJTguKHguJfguKPguLHguJ7guKLguYwNCivguJnguLHguJnguJfguKfguLHguJkg4Lig4Li54Lij4Li04Lio4Lij4Li1DQor4LiZ4Lix4LiZ4LiX4Lin4Lix4LiZIOC4reC4tOC4quC4o+C4sOC4oeC4suC4peC4seC4og0KK+C4meC4seC4meC4l+C4quC4suC4oyDguIjguLHguJnguJfguKPguYzguYDguJ7guYfguI0NCivguJnguLHguJnguJfguLIg4LiK4Li04LiZ4LiY4Lij4Lij4Lih4Lih4Li04LiV4Lij4LmMDQor4LiZ4Lix4LiZ4LiX4LiyIOC4muC4uOC4jeC4l+C4p+C4teC4quC4geC4uOC4pQ0KK+C4meC4seC4meC4l+C4siDguKPguLHguJXguJnguYTguIrguKINCivguJnguLHguJnguJfguLIg4Liq4Li44LiC4LmA4LiI4Lij4Li04LiNDQor4LiZ4Lix4LiZ4LiX4Li04LiB4LiyIOC4p+C4tOC4o+C4tOC4ouC4sOC4quC4suC5guC4o+C4iOC4meC5jA0KK+C4meC4seC4meC4l+C4tOC4oOC4siDguKPguLHguJXguJnguYDguJ7guLXguKLguKPguIrguLHguKINCivguJnguLHguJnguJfguLTguKLguLIg4LiZ4Liz4LmA4LiB4Li14Lii4Lij4LiV4Li04Lin4LiH4Lip4LiyDQor4LiZ4Lix4LiZ4LiX4Li04Lii4LiyIOC4qOC4seC4geC4lOC4tOC5jOC4ieC4seC4meC4l+C4reC4s+C4nuC4mQ0KK+C4meC4seC4meC4l+C5jCDguYDguKPguLfguK3guIfguJXguKPguLDguIHguLnguKUNCivguJnguLHguKLguJnguYzguKPguLHguJXguJnguYwg4LmA4LiX4Li14Lii4Lih4LiX4Lix4Lio4LiZ4LmMDQor4LiZ4Lix4Lii4LiZ4LiyIOC5geC4i+C5iOC4hOC4uQ0KK+C4meC4seC4ouC4meC4siDguJvguK3guJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguJnguLHguKLguJnguLIg4Lil4Li14LiZ4Liw4LiY4Lij4Lij4LihDQor4LiZ4Lix4Lii4LiZ4LiyIOC4quC4uOC4p+C4o+C4o+C4k+C4l+C4reC4hw0KK+C4meC4seC4quC4leC4tOC4ouC4siDguJrguLjguI3guJ7guLTguJfguLHguIHguKnguYwNCivguJnguLLguITguLTguJkg4LmA4Lie4LiK4Lij4Lij4Lix4LiB4Lip4LmMDQor4LiZ4Liy4LiO4Lii4LiyIOC4reC4lOC4tOC5gOC4o+C4geC4pOC4l+C4mOC4tOC4o+C4kw0KK+C4meC4suC4j+C4ouC4siDguKTguJfguJjguLTguYzguYDguILguLXguKLguKcNCivguJnguLLguJXguKLguLIg4LiE4LiH4LmA4LiC4Liy4Lih4LmI4Lin4LiHDQor4LiZ4Liy4LiV4Lii4LiyIOC4meC4tOC4ouC4oQ0KK+C4meC4suC4leC4ouC4siDguKjguKPguLXguKrguLjguJrguLTguJkNCivguJnguLLguJXguK3guJnguIfguITguYwg4LiK4Li34LmI4LiZ4Lia4Liy4LiZDQor4LiZ4Liy4LiW4Lik4LiU4Li1IOC4quC4p+C4seC4quC4lOC4tOC5jOC4nuC4o+C5ieC4reC4oQ0KK+C4meC4suC4meC4siDguYHguIvguYjguJbguLHguKcNCivguJnguLLguKPguJYg4LiY4Liy4Lij4Liw4Lie4Li44LiX4LiYDQor4LiZ4Liy4Lij4LiyIOC5guC4quC4oeC4sOC4meC4seC4meC4l+C4meC5jA0KK+C4meC4suC4o+C4tSDguITguKPguK3guIfguKrguLHguJXguKLguYwNCivguJnguLLguKPguLUg4LmA4LiV4LiK4Liw4Liq4Li44Lig4Liy4LiB4Li54LijDQor4LiZ4Liy4Lij4Li1IOC4nuC4seC4meC4mOC5jOC4lOC4tQ0KK+C4meC4suC4o+C4tSDguKjguLHguIHguJTguLTguYzguYDguKrguKPguLXguIrguLHguKLguIHguLjguKUNCivguJnguLLguKPguLXguJnguLLguKPguJYg4LiJ4Li04Lih4Lig4Li54LmI4LiZ4Li44LmI4LihDQor4LiZ4Liy4Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC4mOC4meC4suC4quC4uOC4p+C4o+C4o+C4k+C4lOC4tOC4luC4tQ0KK+C4meC4suC4o+C4teC4o+C4seC4leC4meC5jCDguKrguLXguYDguKvguKXguYfguIENCivguJnguLLguKfguLTguJkg4LiB4Lij4Liw4LiV4LmI4Liy4Lii4LiI4Li14LiZDQor4LiZ4Liy4Lin4Li04LiZIOC4q+C4peC5iOC4reC4peC4seC4geC4qeC4k+C5jA0KK+C4meC4suC5gOC4p+C4qiDguKLguLHguIfguJnguYnguK3guKINCivguJnguLPguIrguLHguKIg4LiX4Li04Lie4LiK4Liy4LiV4Li04LmC4Lii4LiY4Li04LiZDQor4LiZ4Liz4LiK4Lix4LiiIOC4reC4t+C5ieC4reC5gOC4qOC4o+C4qeC4kOC4qOC4seC4geC4lOC4tOC5jA0KK+C4meC4s+C4peC4suC4oCDguYDguJrguYnguLLguKrguLjguKfguKPguKPguJMNCivguJnguYnguLMg4LiK4Lil4Liq4Liy4Lii4Lie4Lix4LiZ4LiY4LmMDQor4LiZ4LmJ4Liz4LiX4Li04Lie4Lii4LmMIOC4iOC4seC4meC4l+C4geC4meC4gQ0KK+C4meC5ieC4s+C4l+C4tOC4nuC4ouC5jCDguKDguLLguKPguLDguYDguKfguIoNCivguJnguYnguLPguJzguJkg4Lij4Liw4LmA4Lia4Li14Lii4LiaDQor4LiZ4LmJ4Liz4Lid4LiZIOC4p+C4tOC4muC4ueC4peC4iuC4suC4leC4tA0KK+C4meC5ieC4s+C5gOC4iuC4teC5iOC4ouC4pyDguIjguLTguJnguJTguLLguJ7guLHguJnguJjguYwNCivguJnguLTguIHguKMg4LiB4Lix4LiH4Lin4Liy4Lij4Liy4Lin4Li44LiS4Li0DQor4LiZ4Li04LiB4LijIOC4meC4p+C4m+C4o+C4teC4iuC4suC4geC4uOC4pQ0KK+C4meC4tOC4geC4oyDguYDguKXguLTguKjguIrguLLguKHguJ7guLnguJnguJcNCivguJnguLTguIHguKPguKEg4Lie4Li24LmI4LiH4LiC4LizDQor4LiZ4Li04LiE4LihIOC4hOC4s+C5gOC4nOC4t+C5iOC4reC4mQ0KK+C4meC4tOC4hOC4oSDguYDguJXguKfguLHguJLguJXguLLguJnguJnguJfguYwNCivguJnguLTguITguKEg4Lie4LiH4Lio4LmM4LmE4LiX4LiiDQor4LiZ4Li04LiE4LihIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4meC4tOC4hOC4oSDguKrguLjguILguKrguLjguKHguLTguJXguKMNCivguJnguLTguIgg4Lii4Li44LiK4Lih4Lig4Li5DQor4LiZ4Li04LiK4LiN4LiyIOC5guC4geC4p+C4tOC4l+C4hOC4k+C4tOC4lQ0KK+C4meC4tOC4lCDguYHguIvguYjguJXguLHguYnguIcNCivguJnguLTguJTguJTguLIg4Lin4Liq4Liw4Lig4Li04LiN4LmC4LiN4LiB4Li44LilDQor4LiZ4Li04LiU4LiyIOC4nOC5iOC4reC4h+C4reC4suC4o+C4oeC4k+C5jA0KK+C4meC4tOC4lOC4suC4p+C4o+C4o+C4kyDguJDguLTguJXguKPguLHguJXguJnguJ7guKUNCivguJnguLTguJXguKLguYzguJvguKPguLDguKDguLIg4Lit4LiU4Li44Lil4LmA4LiU4LiK4LiI4Lij4Lix4LilDQor4LiZ4Li04LiV4Lii4LiyIOC4geC4suC4o+C4quC4suC4oeC4suC4o+C4lg0KK+C4meC4tOC4leC4ouC4siDguILguKfguLHguI3guKTguIHguKnguYwNCivguJnguLTguJXguKLguLIg4LiH4Lix4LmI4LiZ4Lia4Li44LiN4Lio4Lij4Li1DQor4LiZ4Li04LiV4Lii4LiyIOC4iOC4tOC4o+C4m+C4o+C4sOC4oOC4suC4nuC4ow0KK+C4meC4tOC4leC4ouC4siDguIrguKPguLTguJnguJfguKPguLLguKfguLjguJLguLQNCivguJnguLTguJXguKLguLIg4LmE4LiK4Lii4Lih4LiH4LiE4LilDQor4LiZ4Li04LiV4Lii4LiyIOC5geC4i+C5iOC5gOC4m+C5ig0KK+C4meC4tOC4leC4ouC4siDguJXguLHguYnguIfguIjguLTguJXguJnguJoNCivguJnguLTguJXguKLguLIg4LiX4Lin4Li14LmC4LiVDQor4LiZ4Li04LiV4Lii4LiyIOC4mOC4s+C4o+C4h+C4p+C4tOC4l+C4p+C4seC4quC4nuC4h+C4qOC5jA0KK+C4meC4tOC4leC4ouC4siDguYDguJnguLXguKLguKHguITguIcNCivguJnguLTguJXguKLguLIg4Lib4Lij4Liw4LiE4Lit4LiHDQor4LiZ4Li04LiV4Lii4LiyIOC5geC4nOC5iOC4meC4l+C4reC4hw0KK+C4meC4tOC4leC4ouC4siDguJ7guLTguKXguLLguYHguJTguIcNCivguJnguLTguJXguKLguLIg4Lig4Li54LmI4Lii4Lit4LiU4Lii4Li04LmI4LiHDQor4LiZ4Li04LiV4Lii4LiyIOC5guC4oeC4ruC4s+C4oeC4seC4quC4reC4teC4quC4oeC4suC4reC4teC4pQ0KK+C4meC4tOC4leC4ouC4siDguYDguKPguLfguK3guIfguJTguLLguKPguIHguLLguJnguJnguJfguYwNCivguJnguLTguJXguKLguLIg4Lin4LiH4Lio4LmM4Lib4Lij4Li14LiU4Li1DQor4LiZ4Li04LiV4Lii4LiyIOC4p+C4tOC4oOC4suC4leC4sOC5guC4ouC4mOC4tOC4mQ0KK+C4meC4tOC4leC4ouC4siDguKjguLLguKXguKLguLLguIrguLXguKfguLTguJkNCivguJnguLTguJXguKLguLIg4Liq4Lix4LiH4LiC4LmM4LiX4Lit4LiHDQor4LiZ4Li04LiV4Lii4LiyIOC4quC4uOC4l+C4mOC4tOC4qOC4tOC4o+C4tA0KK+C4meC4tOC4leC4ouC4siDguYHguKrguIfguYHguJTguIcNCivguJnguLTguJXguKLguLIg4Lit4Lii4Li54LmI4LiZ4Li04LmI4LihDQor4LiZ4Li04LiV4Lii4LiyIOC4reC4uOC4lOC4oeC4o+C4seC4leC4meC4suC4meC4meC4l+C5jA0KK+C4meC4tOC4leC4ouC5jCDguYHguIHguYnguKfguInguLLguKINCivguJnguLTguJXguKLguYwg4LiW4Li14LmI4LiW4LmJ4Lin4LiZDQor4LiZ4Li04LiV4Lii4LmMIOC4oOC4ueC5iOC5g+C4iOC5gOC4l+C4teC5iOC4ouC4hw0KK+C4meC4tOC4leC4ouC5jCDguKrguLjguJnguJfguKPguK3guJnguLHguJnguJXguIHguLjguKUNCivguJnguLTguJXguLQg4LiJ4LmI4Liz4Lic4Li24LmJ4LiHDQor4LiZ4Li04LiV4Li04LiB4LijIOC4quC4luC4tOC4leC4pOC4l+C4mOC4suC4meC4seC4meC4l+C5jA0KK+C4meC4tOC4leC4tOC4nuC4oyDguJfguK3guIfguJnguLjguYjguKENCivguJnguLTguJfguJjguLTguKPguLIg4Lif4Lix4LiB4LmB4Lii4LmJ4LihDQor4LiZ4Li04LiX4Lix4Lio4LiZ4LmMIOC4geC4seC4h+C5geC4guC4gQ0KK+C4meC4tOC4l+C4seC4qOC4meC5jCDguJvguKPguLDguYDguKrguKPguLTguJDguYDguJnguJXguLTguIHguLjguKUNCivguJnguLTguJfguLHguKjguJnguYwg4Lit4Lig4Li04LiK4Liy4LiV4Li04Lia4Li44LiV4Lij4LmMDQor4LiZ4Li04LiY4Li04LiK4Lix4LiiIOC5hOC4iuC4ouC4mOC4p+C4seC4ig0KK+C4meC4tOC4mOC4tOC4oeC4siDguIrguLLguITguKPguLTguJXguJDguLLguIHguLnguKMNCivguJnguLTguJjguLUg4LmA4Lih4LiG4Liq4Li44LiX4Lix4Lio4LiZ4LmMDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4geC4o+C5gOC4geC4qeC4oQ0KK+C4meC4tOC4nuC4meC4mOC5jCDguYTguIHguKPguKXguLHguIHguKnguJPguYwNCivguJnguLTguJ7guJnguJjguYwg4LiI4Lix4LiZ4LiX4LijDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4iuC4suC4jeC4reC4seC4geC4qeC4ow0KK+C4meC4tOC4nuC4meC4mOC5jCDguJTguLLguKPguLLguKfguKPguKPguJPguYwNCivguJnguLTguJ7guJnguJjguYwg4LiX4Lio4Lij4LiH4LiE4LmMDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4meC4tOC5iOC4oeC5g+C4q+C4oeC5iA0KK+C4meC4tOC4nuC4meC4mOC5jCDguJvguKPguLDguKrguIfguITguYzguKrguLHguKHguKTguJfguJjguLTguYwNCivguJnguLTguJ7guJnguJjguYwg4Lie4Lik4LiS4Li04LiE4Liy4Lih4Lig4Li14Lij4LmMDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4oOC4p+C4quC4seC4meC4leC5jA0KK+C4meC4tOC4nuC4meC4mOC5jCDguYLguKLguKHguLINCivguJnguLTguJ7guJnguJjguYwg4Lil4Li14Lil4Liy4Lin4Li04Lil4Liy4LiqDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4p+C4tOC4peC4suC4peC4seC4og0KK+C4meC4tOC4nuC4meC4mOC5jCDguKrguIfguKfguJnguJnguLLguKENCivguJnguLTguJ7guJnguJjguYwg4Liq4Li44LiC4Liq4Lih4Liy4LiZDQor4LiZ4Li04Lie4LiZ4LiY4LmMIOC4q+C4h+C4quC5jOC4p+C4tOC4iOC4seC4geC4qeC4k+C5jA0KK+C4meC4tOC4nuC4meC4mOC5jCDguK3guLHguKjguKfguKrguIfguITguKPguLLguKENCivguJnguLTguJ7guKMg4Lin4Lij4LiJ4Lix4LiV4LijDQor4LiZ4Li04Lie4Lix4LiS4LiZ4LmMIOC4guC4meC4reC4meC5gOC4p+C4ig0KK+C4meC4tOC4nuC4seC4l+C4mOC5jCDguJfguK3guIfguYDguKXguYfguIENCivguJnguLTguJ7guLHguJnguJjguYwg4LmA4LiZ4Li14Lii4Lih4Lin4LiH4Lio4LmMDQor4LiZ4Li04Lie4Li04LiQIOC4reC4o+C4uOC4k+C4p+C4h+C4qeC5jCDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4LiZ4Li04Lig4LiyIOC5geC4geC5ieC4p+C4q+C4reC4oQ0KK+C4meC4tOC4oOC4siDguIjguLHguJnguJfguLTguKHguLINCivguJnguLTguKDguLIg4LiK4LmI4Liy4LiH4LiZ4Liy4LiEDQor4LiZ4Li04Lig4LiyIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4meC4tOC4oOC4siDguJbguIHguKXguKfguLTguYLguKPguIjguJnguYwNCivguJnguLTguKDguLIg4LiZ4LiZ4LiX4LiK4Li14Lin4LiyDQor4LiZ4Li04Lig4LiyIOC4m+C4o+C4teC4iuC4suC4leC4seC5ieC4h+C4geC4tOC4iA0KK+C4meC4tOC4oOC4siDguJ7guLHguJnguJjguKHguLTguJXguKMNCivguJnguLTguKDguLIg4LmC4Lig4LiE4Liy4Lij4Lix4LiB4Lip4LmMDQor4LiZ4Li04Lig4LiyIOC4o+C4uOC4iOC4tOC4o+C4sOC4geC4tOC4leC4tOC4p+C4geC4ueC4pQ0KK+C4meC4tOC4oOC4siDguKfguKPguYTguIHguKfguLHguKUNCivguJnguLTguKDguLIg4Lio4Lij4Li14Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiZ4Li04Lig4LiyIOC4quC4tOC4o+C4tOC4oeC4q+C4suC4quC4uOC4p+C4seC4kuC4meC5jA0KK+C4meC4tOC4oOC4siDguKvguLLguI3guYDguIHguLTguJTguKrguLTguKPguLQNCivguJnguLTguKDguLIg4Lit4Li04LiZ4Lie4Lix4LiV4Lij4LiyDQor4LiZ4Li04Lig4Liy4Lie4LijIOC4iOC4h+C4iOC4o+C4p+C4ouC4quC4geC4uOC4pQ0KK+C4meC4tOC4oOC4suC4nuC4oyDguJrguLHguKfguJfguK3guIcNCivguJnguLTguKDguLLguJ7guKMg4Lio4Lix4LiB4LiU4Li04LmM4LmB4Liq4LiZDQor4LiZ4Li04Lig4Liy4Lie4Lij4Lij4LiTIOC4nuC4h+C4qOC5jOC5hOC4nuC5guC4o+C4iOC4meC5jA0KK+C4meC4tOC4oOC4suC4oOC4o+C4k+C5jCDguYDguIrguLTguI3guKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguJnguLTguKDguLLguKDguKPguJPguYwg4Liq4Li44LiC4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4LiZ4Li04Lig4Liy4Lin4Lij4Lij4LiTIOC4l+C4o+C4h+C4qOC4tOC4peC4m+C5jA0KK+C4meC4tOC4oeC4mSDguJXguLjguYjguKHguKjguLTguKPguLQNCivguJnguLTguKHguLTguJUg4Liq4Li44Lij4Li04Lir4Liy4LijDQor4LiZ4Li04Lih4Li04LiV4LijIOC4meC5ieC4reC4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4meC4tOC4oeC4tOC4leC4oyDguYHguKrguIfguK3guLPguYTguJ4NCivguJnguLTguYjguKHguJnguKfguKUg4LmA4LiB4Lio4Lin4Lij4Liy4LiH4LiB4Li54LijDQor4LiZ4Li04LmI4Lih4LiZ4Lin4LilIOC4qOC4uOC4oOC4qeC4ow0KK+C4meC4tOC4ouC4lOC4siDguKDguLnguYjguK3guJnguLjguKrguLLguKrguJnguYwNCivguJnguLTguKLguKEg4LiI4LiZ4Li04Lip4LiQ4LmMDQor4LiZ4Li04Lii4LihIOC5geC4lOC4h+C5gOC4reC4teC5iOC4ouC4oeC5gOC4reC4gQ0KK+C4meC4tOC4ouC4oSDguJnguLTguKXguKrguLjguKfguKPguKPguJPguYwNCivguJnguLTguKLguKEg4Lie4Li04Lie4Lix4LiS4LiZ4LmM4Lio4Liy4LiZ4LiV4LmMDQor4LiZ4Li04Lii4LihIOC5gOC4peC4tOC4qOC4quC4s+C4o+C4suC4jeC5gOC4o+C4tOC4h+C4o+C4oeC4ouC5jA0KK+C4meC4tOC4ouC4oSDguKrguLjguKDguLLguJ4NCivguJnguLTguKLguKHguKjguKPguLUg4Liq4Liy4Lij4Liq4Li44LiCDQor4LiZ4Li04Lij4LiK4LiyIOC5guC4ouC4mOC4tOC4meC4reC4uOC4m+C5hOC4oeC4og0KK+C4meC4tOC4o+C4oeC4pSDguIjguIfguIrguLLguI3guKrguLTguJfguYLguJgNCivguJnguLTguKPguKHguKUg4LiV4Lix4LiZ4LiV4Li04Lie4Lix4LiZ4LiY4LmM4Lin4LiU4Li1DQor4LiZ4Li04Lij4Lih4LilIOC4nuC4seC4kuC4meC4quC4uOC4p+C4o+C4o+C4kw0KK+C4meC4tOC4o+C4oeC4pSDguKfguKLguLLguIHguKPguJPguYzguKfguLTguIjguLTguJXguKMNCivguJnguLTguKPguKHguKUg4Lir4Lil4LmI4Lit4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMDQor4LiZ4Li04Lij4Lix4LiB4Lip4LmMIOC4peC4tOC5ieC4oeC5geC4q+C4peC4oeC4l+C4reC4hw0KK+C4meC4tOC4o+C4seC4leC4meC5jCDguJ7guKPguKvguKPguKPguKnguLLguKfguLTguIjguLTguJUNCivguJnguLTguKPguLHguJnguJTguKMg4Lie4Lin4LiH4Lie4Li44LiUDQor4LiZ4Li04Lij4Lix4LiZ4LiU4Lij4LmMIOC4iOC4reC4meC5geC4iOC5ieC4hw0KK+C4meC4tOC4o+C4seC4meC4lOC4o+C5jCDguJfguK3guIfguJnguYnguK3guKINCivguJnguLTguKPguLHguJnguJTguKPguYwg4Lie4Lix4LiZ4LiX4Lij4LiB4Li04LiIDQor4LiZ4Li04Lij4Lix4LiZ4LiU4Lij4LmMIOC5guC4peC5ieC4quC4geC4uOC4pQ0KK+C4meC4tOC4o+C4seC4meC4lOC4o+C5jCDguKrguLjguILguKjguKPguLXguIjguLHguIHguKPguKfguLLguKwNCivguJnguLTguKPguLHguJnguJXguYwg4LmA4LiJ4Lii4Lij4Lit4LiUDQor4LiZ4Li04Lij4Li44LiS4LiZ4LmMIOC4leC4seC4meC4reC4meC4uOC4iuC4tOC4leC4leC4tOC4geC4uOC4pQ0KK+C4meC4tOC4o+C4uOC4mCDguYHguKLguYnguKHguYLguIrguJXguLQNCivguJnguLTguKXguJrguKUg4LiX4Li54Lij4Liy4LiZ4Li44Lig4Liy4LieDQor4LiZ4Li04Lil4Lin4Lij4Lij4LiTIOC4nuC4h+C4qeC5jOC5gOC4nOC4t+C4reC4gQ0KK+C4meC4tOC4peC4uOC4muC4pSDguYLguIHguYTguKjguKLguIHguLLguJnguJnguJfguYwNCivguJnguLTguKcg4LmB4LiL4LmI4LmA4LiI4Li14Lii4LiHDQor4LiZ4Li04Lin4Lix4LiS4LiZ4LmMIOC4hOC4h+C4iuC4t+C5iOC4mQ0KK+C4meC4tOC4p+C4seC4kuC4meC5jCDguJXguLHguJnguIjguLTguKPguKfguLHguJLguJnguLINCivguJnguLTguKfguLHguJLguJnguYwg4Lie4Lix4LiZ4LiY4LmM4Lie4Li44LmI4LihDQor4LiZ4Li04Lin4Lix4LiS4LiZ4LmMIOC4p+C4seC4kuC4meC4suC5gOC4iOC4o+C4tOC4jeC4qOC4tOC4peC4m+C5jA0KK+C4meC4tOC4p+C4seC4kuC4meC5jCDguK3guKPguLTguKLguJ7guKTguIHguKnguYwNCivguJnguLTguKfguLHguJXguJnguYwg4Lig4Li54LiV4Li04LiB4LiZ4Li04Lip4LiQ4LmMDQor4LiZ4Li04Lin4Lix4LiV4Lij4LmMIOC4meC4tOC4ouC4oeC5hOC4l+C4og0KK+C4meC4tOC4p+C4seC4leC4tCDguJzguKXguJjguLHguI3guI3guLINCivguJnguLTguKfguLHguJXguLQg4Lir4LmI4Liy4LiZ4LiV4Lij4Liw4LiB4Li54LilDQor4LiZ4Li04Lio4LiyIOC5gOC4iOC4teC4ouC4oeC4o+C4uOC4iOC4teC4geC4uOC4pQ0KK+C4meC4tOC4qOC4suC4geC4oyDguJvguLTguIjguYDguIjguKPguLTguI0NCivguJnguLTguKjguLLguJnguLLguJcg4LiY4Lij4Lij4Lih4LiU4Liz4LmA4LiB4Li04LiHDQor4LiZ4Li04Lip4LiQ4LiB4Liy4LiZ4LiV4LmMIOC5gOC4ouC5h+C4meC4nuC4o+C4sOC4nuC4suC4og0KK+C4meC4tOC4quC4seC4oiDguK3guKPguKPguJbguYTguIHguKfguLHguKXguKfguJfguLUNCivguJnguLTguKrguLIg4Lib4Li04Lii4Liw4Lie4Lix4LiZ4LiY4LmMDQor4LiZ4Li04Liq4Liy4LiB4LijIOC5gOC4geC4teC4ouC4o+C4leC4tOC4geC5ieC4reC4h+C4guC4iOC4ow0KK+C4meC4tOC4quC4suC4o+C4seC4leC4meC5jCDguYDguJXguIrguLLguKfguLHguJLguJnguKfguLTguKjguLLguKUNCivguJnguLTguKrguLTguJXguLIg4Lie4Lij4Lih4Lie4Li04Lil4LiyDQor4LiZ4Li04LmA4Lin4LioIOC5gOC4iOC4tOC5iOC4h+C4oeC5guC4meC4mOC4o+C4o+C4oQ0KK+C4meC4tOC5gOC4p+C4qOC4meC5jCDguJnguLLguITguKrguKHguJrguLnguKPguJPguYwNCivguJnguLTguYLguJkg4Lit4Li04LiZ4LmA4LiV4Lit4Lij4Lix4LiZ4LmA4LiVDQor4LiZ4Li04LmE4LiB4LilIOC5guC4ouC4m+C4seC4hw0KK+C4meC4teC4o+C4oeC4pSDguKrguLjguJnguJfguKPguJnguJnguJfguYwNCivguJnguLjguIHguKMg4Lin4Lij4Liy4LiB4Li54Lil4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTDQor4LiZ4Li44LiB4Li54LilIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4meC4uOC4geC4ueC4pSDguJ7guKTguIHguKnguKfguLHguJkNCivguJnguLjguIHguLnguKUg4Liq4Li44LiC4Liq4LihDQor4LiZ4Li44LiI4Lij4Li04LiZ4LiX4Lij4LmMIOC4quC4tOC4meC4p+C4meC4suC4l+C4o+C4seC4nuC4ouC5jA0KK+C4meC4uOC4iiDguITguKXguK3guIfguJnguYnguK3guKINCivguJnguLjguIrguIjguKPguLTguJnguJfguKPguYwg4LmA4LiI4Lin4Li04LiZ4LiZ4Li44LiB4Li44LilDQor4LiZ4Li44LiK4LiI4Lij4Li1IOC4l+C4reC4h+C4mOC4o+C4o+C4oeC4iuC4suC4leC4tA0KK+C4meC4uOC4iuC4iOC4suC4o+C4tSDguITguKXguYnguLLguKLguKrguLjguKfguKPguKPguJMNCivguJnguLjguIrguJnguLLguIgg4Lie4Lil4LiX4Lih4Li04LisDQor4LiZ4Li44LiK4LiZ4Liy4LiOIOC5guC4quC4oOC4sg0KK+C4meC4uOC4iuC4meC4suC4liDguYDguIHguLTguJTguYDguJ7guLTguYjguKENCivguJnguLjguIrguJnguLLguJYg4Lio4Li14Liq4Lix4LiH4LiC4LmMDQor4LiZ4Li44LiK4LiZ4Liy4Lij4LiWIOC4l+C4o+C4seC4nuC4ouC5jOC4quC4uOC4l+C4mOC4tA0KK+C4meC4uOC4iuC4meC4suC4o+C4liDguYPguKrguKrguLjguJfguJjguLTguYwNCivguJnguLjguIrguKPguLTguJnguJfguKPguYwg4LmB4Lin4LmI4LiZ4Lib4Lij4Liw4LiX4Li44LihDQor4LiZ4Li44LiK4Lij4Li14Lii4LmMIOC4quC4uOC4guC5gOC4geC4teC4ouC4o+C4leC4tOC4oOC4seC4og0KK+C4meC4uOC4iuC4tOC4lSDguYDguIjguKPguLTguI3guJ7guLLguJnguLTguIoNCivguJnguLjguKHguLLguJkg4Lii4Li04LmI4LiH4LiZ4Li04Lii4LihDQor4LiZ4Li44Lio4Lij4LiyIOC4nuC4o+C4geC4pOC4qeC4juC4suC4geC4uOC4pQ0KK+C4meC4uOC4quC4o+C4siDguIjguLHguJnguJfguKPguYzguYDguIjguLTguJTguKrguLjguKPguLTguKLguLANCivguJnguLjguKrguKPguLIg4LmA4Lie4LmH4LiK4Lij4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4Li44LmM4LiB4Li44LilDQor4LiZ4Li44Liq4Lij4LiyIOC4reC4seC4qOC4p+C4meC4seC4ouC4geC4tOC4iA0KK+C4meC5gOC4o+C4meC4l+C4o+C5jCDguJTguLTguKrguKPguLDguJ7guIfguKnguYwNCivguJnguYDguKPguKgg4LiX4Lit4LiH4LmB4LiB4LmJ4LinDQor4LiZ4LmA4Lij4LioIOC4qOC4o+C4nuC4o+C4q+C4oQ0KK+C4meC5gOC4o+C4qOC4o+C5jCDguJjguKPguKPguKHguKrguLLguKXguLUNCivguYDguJnguJXguKMg4Lio4Lij4Li14Liq4Li44Lin4Lij4Lij4LiTDQor4LmA4LiZ4LiV4Lij4LiX4Li04Lie4Lii4LmMIOC4iuC4tOC4meC4peC4suC4oOC4suC4geC4uOC4pQ0KK+C5gOC4meC4leC4o+C4meC4oOC4siDguKvguKfguLHguIfguKrguLTguJnguKrguLjguIjguKPguLTguJUNCivguYDguJnguJXguKPguLTguIHguLIg4LmA4LiB4LiV4Li44Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4LmA4LiZ4Lij4Lih4Li04LiVIOC4qOC4o+C4teC4iOC4s+C4meC4hw0KK+C5gOC4meC4suC4p+C4o+C4seC4leC4meC5jCDguIHguLPguKXguLHguIcNCivguYDguJnguLLguKfguKPguLHguJXguJnguYwg4LmA4LiL4LmH4LiZ4Liq4Liy4Liq4LmM4LiZDQor4LmA4LiZ4Liy4Lin4Lij4Lix4LiV4LiZ4LmMIOC4meC4nuC5gOC4quC4luC4teC4ouC4ow0KK+C5gOC4meC4suC4p+C4o+C4seC4leC4meC5jCDguJ7guLTguJ7guLTguJjguKfguKPguKPguJMNCivguYDguJnguLLguKfguKPguLHguJXguJnguYwg4Lin4Lix4LiS4LiZ4Liy4Lig4LiyDQor4LmA4LiZ4Liy4Lin4Lij4Lix4LiV4LiZ4LmMIOC5geC4quC4p+C4h+C4qOC4seC4geC4lOC4tOC5jA0KK+C5gOC4meC4suC4p+C5jCDguKrguLjguJTguYPguIjguJjguKPguKPguKENCivguYDguJnguLXguKLguKEg4Lia4Liz4Lij4Li44LiH4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4LmA4LiZ4Li14LmJ4Lii4LinIOC5geC4i+C5iOC5gOC4peC5ieC4sg0KK+C5gOC4meC4t+C5ieC4reC4l+C4tOC4nuC4ouC5jCDguIjguLHguJnguJfguKPguYzguYLguJvguKPguYwNCivguYHguJnguJog4LmC4Liq4LiV4LiW4Li04Lie4Lix4LiZ4LiY4Li44LmMDQor4LmB4LiZ4LmI4LiH4LiZ4LmJ4Lit4LiiIOC5gOC4i+C4teC5iOC4ouC4h+C4nOC4uOC4hw0KK+C5geC4meC5iOC4h+C4meC5ieC4reC4oiDguJvguLjguYjguJnguK3guLjguJTguKENCivguYHguJnguYjguIfguJnguYnguK3guKIg4LmA4Lin4LiX4Lii4Lie4LiH4Lip4LmMDQor4LmB4LiZ4LmI4LiH4LiZ4LmJ4Lit4LiiIOC4reC4tOC4meC4l+C4o+C4o+C4seC4geC4guC4sg0KK+C5guC4meC4o+C4tSDguYHguKrguIfguKjguKPguLUNCivguYTguJnguYkg4Lij4Lit4LiU4LiX4Lit4LiHDQor4Lia4LiH4LiB4LiKIOC4muC4uOC4jeC4iuC5iOC4p+C4og0KK+C4muC4h+C4geC4iiDguYDguKvguKXguYjguLLguKfguKPguKfguLTguJfguKLguYwNCivguJrguJTguLTguJnguJfguKPguYwg4LiU4Li04Lil4LiB4Lin4Lij4LmC4LiK4LiV4Li0DQor4Lia4Lie4Li04LiV4LijIOC4lOC4p+C4h+C5geC4geC5ieC4pw0KK+C4muC4o+C4o+C4iOC4hyDguIHguLjguKvguKXguLLguJrguKfguLTguKPguLHguJXguJnguYwNCivguJrguKPguKPguIjguIcg4LiI4Lix4LiZ4LiX4Lij4LmM4LiX4Lit4LiHDQor4Lia4Lij4Lij4LiI4LiHIOC4iuC4seC4ouC4p+C4tOC4o+C4tOC4ouC4sOC4p+C4h+C4qOC5jA0KK+C4muC4o+C4o+C4iOC4hyDguJXguLjguYjguJnguJfguLINCivguJrguKPguKPguIjguIcg4LiZ4Liy4Lih4Lih4Li14LmE4LiK4LiiDQor4Lia4Lij4Lij4LiI4LiHIOC4m+C5ieC4reC4h+C4oOC4seC4og0KK+C4muC4o+C4o+C4iOC4hyDguYDguJ7guLTguYjguKHguJzguKUNCivguJrguKPguKPguIjguIcg4Lij4LmI4Lih4LmC4Lie4LiY4Li04Lir4Lii4LiBDQor4Lia4Lij4Lij4LiI4LiHIOC4p+C4tOC4peC4suC4quC4o+C4seC4leC4meC5jA0KK+C4muC4o+C4o+C4iOC4hyDguKrguLLguKrguLDguIHguLjguKUNCivguJrguKPguKPguIjguIcg4Lir4Lij4Lix4LmI4LiH4LmA4Lit4LihDQor4Lia4Lij4Lij4LiI4LiH4LiB4Li04LiIIOC4m+C4tOC4ouC4sOC4quC4seC4meC4leC4tOC4quC4uOC4gg0KK+C4muC4o+C4o+C4iOC4miDguIrguLfguYjguJnguJ7guLHguJnguJjguLjguYwNCivguJrguKPguKPguIjguJog4Lig4Li54Lin4Lin4Li14Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Lia4Lij4Lij4LiI4LiwIOC5gOC4o+C4t+C4reC4meC5geC4geC5ieC4p+C4p+C4h+C4qOC5jA0KK+C4muC4o+C4o+C4k+C4siDguJnguJnguJfguKfguIfguKnguYwNCivguJrguKPguKPguJfguLbguIEg4Lil4LmJ4Lit4Lin4LiK4Li04Lij4Liw4Lin4Lix4LiO4LiO4LmMDQor4Lia4Lij4Lij4Lie4LiVIOC4lOC4teC4o+C4seC4geC4qeC4sg0KK+C4muC4o+C4o+C4nuC4lSDguKHguKvguLHguJfguJjguJnguLLguIHguLjguKUNCivguJrguKPguKPguJ7guJUg4LmB4Liq4LiH4LmB4LiB4LmI4LiZ4LmA4Lie4LmH4LiK4Lij4LmMDQor4Lia4Lij4Lij4Lii4LiHIOC4nuC4tOC4nuC4seC4kuC4meC5jOC5gOC4o+C4t+C4reC4h+C5hOC4ow0KK+C4muC4o+C4o+C4ouC4h+C4hOC5jCDguKLguKHguYHguJ7guJfguKLguYwNCivguJrguKPguKPguKXguLfguK0g4LmA4Lij4Li34Lit4LiH4LiV4Lij4Liw4LiB4Li54LilDQor4Lia4Lij4Lij4Lil4Li4IOC4oOC4ueC4oeC4tOC4nuC4seC4meC4mOC4uOC5jA0KK+C4muC4o+C4o+C4q+C4suC4oyDguKjguLTguKXguJvguK3guLLguIrguLINCivguJrguKPguKPguYDguIjguLTguJQg4LiK4Li34LmI4LiZ4LiB4Li44LilDQor4Lia4Lij4Lij4LmA4LiI4Li04LiUIOC4oOC4ueC5iOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4muC4o+C4o+C5gOC4iOC4tOC4lCDguYHguKrguIfguJfguK3guIcNCivguJrguKPguKPguYDguJfguLTguIcg4LiC4Liy4Lin4Lic4LmI4Lit4LiHDQor4Lia4Lij4Lij4LmA4LiX4Li04LiHIOC4p+C4h+C4qeC5jOC4nuC4ueC4pQ0KK+C4muC4o+C4o+C5gOC4peC4tOC4qCDguYHguIvguYjguYLguITguYnguKcNCivguJrguKPguLTguJrguLnguKPguJPguYwg4Lin4Liy4Lij4Liy4LiK4LiZ4LiZ4LiX4LmMDQor4Lia4Lij4Li04Lir4Liy4Lij4Lin4Lij4LiB4Li04LiIIOC4nuC4o+C4sOC4hOC4o+C4uQ0KK+C4muC4p+C4oyDguJvguKPguLDguYDguKrguKPguLTguJDguKrguKTguKnguJTguLTguYwNCivguJrguKfguKMg4LmA4Liq4LiW4Li14Lii4Lij4LmC4Liq4Lig4LiTDQor4Lia4Lin4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4meC4tOC5iOC4oeC4qOC4tOC4o+C4tOC5gOC4o+C4t+C4reC4h+C4nOC4pQ0KK+C4muC5iuC4p+C4oiDguJjguKPguKPguKHguKHguIfguITguKUNCivguJrguLHguIHguIjguLjguYnguKIg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4Lia4Lix4LiB4LmA4LiB4Li14Lii4LinIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4muC4seC4geC5guC4hOC4oiDguYHguIvguYjguKXguLTguYnguKENCivguJrguLHguIfguK3guKMg4LiB4Lij4Liw4LiW4Li04LiZ4LiX4Lit4LiHDQor4Lia4Lix4LiH4Lit4LijIOC4hOC4h+C4luC4suC4p+C4ow0KK+C4muC4seC4h+C4reC4oyDguIjguLTguJXguIjguKPguLHguKrguYHguKrguIcNCivguJrguLHguIfguK3guKMg4LiK4Li34LmI4LiZ4LmC4LiK4LiV4Li0DQor4Lia4Lix4LiH4Lit4LijIOC5gOC4lOC4iuC4nOC4pQ0KK+C4muC4seC4h+C4reC4oyDguJfguLTguKHguYLguJvguYjguIfguYHguIHguYnguKcNCivguJrguLHguIfguK3guKMg4Lia4Lix4Lin4Liq4Lij4LmJ4Lit4LiiDQor4Lia4Lix4LiH4Lit4LijIOC4m+C4tOC4ouC4quC4uOC4l+C4mOC4tOC4geC4uOC4pQ0KK+C4muC4seC4h+C4reC4oyDguJ7guLjguJfguJjguLTguJnguLHguJnguJfguJnguYwNCivguJrguLHguIfguK3guKMg4Lih4Liy4Liq4Lio4Lij4Li1DQor4Lia4Lix4LiH4Lit4LijIOC4peC4p+C5gOC4qOC4o+C4qeC4kOC4tQ0KK+C4muC4seC4h+C4reC4oyDguKfguLjguYnguJnguYDguKvguKXguLXguYjguKLguKENCivguJrguLHguIfguK3guKMg4Liq4Liw4Liq4Li04Liq4Lih4Li04LiVDQor4Lia4Lix4LiH4Lit4LijIOC4quC4uOC4p+C4o+C4o+C4k+C4suC4meC4meC4l+C5jA0KK+C4muC4seC4h+C4reC4oyDguK3guJXguLTguIrguLLguJXguLQNCivguJrguLHguIfguK3guKMg4LmA4Liu4LiH4Lig4Li54LmI4LmA4LiI4Lij4Li04LiNDQor4Lia4Lix4LiH4LmA4Lit4Li04LiNIOC5gOC4nuC5h+C4h+C4quC4uOC4gg0KK+C4muC4seC4jeC4iuC4oyDguKrguLjguILguK3guJnguLHguJnguJXguYzguIrguLHguKINCivguJrguLHguI3guIrguLIg4LiE4Lij4Li44LiY4LmA4Lin4LmC4LiKDQor4Lia4Lix4LiN4LiK4LiyIOC4iuC4seC4ouC4m+C4o+C4sOC4quC4ng0KK+C4muC4seC4jeC4iuC4siDguYHguJXguYnguKrguLjguKfguKPguKPguJMNCivguJrguLHguI3guIrguLIg4Lia4Li44LiZ4LiZ4Liy4LiE4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lia4Lix4LiN4LiK4LiyIOC5gOC4nuC4teC4ouC4o+C4m+C4o+C4sOC4quC4suC4mOC4meC5jOC4qOC4tOC4o+C4tA0KK+C4muC4seC4jeC4iuC4siDguKfguIfguKjguYzguKjguKPguLXguIHguLjguKUNCivguJrguLHguI3guIrguLIg4Liq4Liw4LiU4Lin4LiB4LiU4Li1DQor4Lia4Lix4LiN4LiK4LiyIOC4reC4seC4iOC4ieC4o+C4suC4oeC4h+C4hOC4pQ0KK+C4muC4seC4jeC4jeC4seC4leC4tCDguIjguLTguJnguJXguJnguLLguJvguKPguLLguYLguKHguJfguKLguYwNCivguJrguLHguI3guI3guLHguJXguLQg4Lia4Li44LiN4LiY4Lij4Lij4LihDQor4Lia4Lix4LiN4LiN4Lix4LiV4Li0IOC4p+C4h+C4qeC5jOC4m+C4o+C4sOC4ouC4ueC4ow0KK+C4muC4seC4jeC4keC4tOC4lSDguKjguKPguIHguKXguYnguLINCivguJrguLHguJPguJHguLTguJUg4LiE4Li54LmI4LiX4Lin4Li14LiY4Lij4Lij4LihDQor4Lia4Lix4LiT4LiR4Li04LiVIOC4leC4o+C4sOC4geC4suC4o+C4p+C4teC4o+C4sOC5gOC4lOC4ig0KK+C4muC4seC4k+C4keC4tOC4lSDguJrguLjguI3guI3guLLguKfguLHguJLguJnguYwNCivguJrguLHguJPguJHguLTguJUg4LmC4Lie4LiY4Li04LmM4LiZ4LmJ4Lit4LiiDQor4Lia4Lix4LiT4LiR4Li04LiVIOC4p+C4o+C4suC4meC4uOC4qOC4oOC4suC4geC4uOC4pQ0KK+C4muC4seC4k+C4keC4tOC4lSDguKrguLjguJfguJjguLTguKfguLjguJLguLTguJnguKTguYDguJrguKjguKPguYwNCivguJrguLHguJPguJHguLTguJUg4Lit4Li44Lil4Li04LioDQor4Lia4Lix4LiT4LiR4Li04LiV4Lii4LmMIOC4quC4meC4tOC4l+C4o+C4seC4geC4qeC4sg0KK+C4muC4seC4k+C4keC4ueC4o+C4ouC5jCDguJ7guLHguJnguJjguLjguKrguLjguIINCivguJrguLHguJnguKXguLfguK0g4LmC4Lii4LiY4Li1DQor4Lia4Lix4Lil4Lil4Lix4LiH4LiB4LmMIOC4meC4suC4hOC4nuC4seC4meC4mOC4uOC5jA0KK+C4muC4seC4pyDguJ7guLjguIHguYDguIjguKPguLTguI0NCivguJrguLHguKfguILguLLguKcg4Liq4Li44LiC4LiE4LizDQor4Lia4Lix4Lin4LiL4LmI4Lit4LiZIOC4l+C4tOC4nuC4ouC5jOC4iOC4seC4geC4ow0KK+C4muC4seC4p+C4meC5ieC4reC4oiDguIfguLHguJTguKrguLHguJnguYDguJfguLXguKLguLANCivguJrguLHguKfguJzguLTguJkg4LmA4Lib4Lij4Lih4LiB4Lih4LilDQor4Lia4Lix4Lin4Lil4Lit4LiiIOC4geC4oeC4guC4uOC4meC4l+C4lA0KK+C4muC4seC4p+C4p+C4o+C4o+C4kyDguK3guJnguLXguIjguLDguYTguJ7guJrguLnguKXguKLguYwNCivguJrguLHguKfguKvguKXguKfguIcg4Lie4Lij4Lir4Lih4Lij4Lix4LiB4Lip4LiyDQor4Lia4Lix4Lin4LmA4Lij4Li14Lii4LinIOC5gOC4geC4suC4j+C4teC4o+C4sA0KK+C4muC4seC4p+C5hOC4giDguYHguIjguYjguKHguK3guLjguKXguLTguJXguKPguLHguJXguJnguYwNCivguJrguLLguIvguLHguKHguKLguLLguJkg4Lih4Li54Lil4Liy4LiE4Liy4LiZDQor4Lia4Liy4LiZ4LmA4Lii4LmH4LiZIOC4quC4luC4suC4p+C4o+C4quC4oeC4tOC4lQ0KK+C4muC5ieC4suC4meC4geC4o+C4o+C4k+C4tOC4geC4suC4o+C5jCDguJrguYnguLLguJnguIHguKPguKPguJPguLTguIHguLLguKPguYwNCivguJrguYnguLLguJnguIrguLTguJTguJXguKfguLHguJkg4Lia4LmJ4Liy4LiZ4LiK4Li04LiU4LiV4Lin4Lix4LiZDQor4Lia4LmJ4Liy4LiZ4LiZ4Liy4LiH4LmA4Lil4Li04LmJ4LiHIDINCivguJrguYnguLLguJnguJvguLTguKLguLDguJPguLTguJTguLIg4Lia4LmJ4Liy4LiZ4Lib4Li04Lii4Liw4LiT4Li04LiU4LiyDQor4Lia4LmJ4Liy4LiZ4Lih4Lir4Li04LmC4LiE4LiVIOC4muC5ieC4suC4meC4oeC4q+C4tOC5guC4hOC4lQ0KK+C4muC5ieC4suC4meC4p+C4tOC4iOC4tOC4leC4o+C4qOC4o+C4teC4geC4oeC4pSDguJrguYnguLLguJnguKfguLTguIjguLTguJXguKPguKjguKPguLXguIHguKHguKUNCivguJrguYnguLLguJnguKrguLTguJnguLLguKXguLHguIHguKnguJPguYwg4Lia4LmJ4Liy4LiZ4Liq4Li04LiZ4Liy4Lil4Lix4LiB4Lip4LiT4LmMDQor4Lia4LmJ4Liy4LiZ4LmA4LiB4Liy4Liw4LiB4Lil4Liy4LiHIOC4muC5ieC4suC4meC5gOC4geC4suC4sOC4geC4peC4suC4hw0KK+C4muC5ieC4suC4meC5geC4geC5ieC4pyDguJrguYnguLLguJnguYHguIHguYnguKcNCivguJrguLPguKPguLjguIcg4LiE4LiH4LiC4Lin4Lix4LiN4Lii4LiH4LiE4LmMDQor4Lia4Liz4Lij4Li44LiHIOC5geC4i+C5iOC4geC5iuC4p+C4og0KK+C4muC4s+C4o+C4uOC4hyDguJvguKPguLDguKDguLLguKPguLHguIHguKnguYwNCivguJrguLPguKPguLjguIcg4LmB4Lii4LmJ4Lih4Lia4Lix4LiN4LiK4LijDQor4Lia4Liz4Lij4Li44LiHIOC4quC4uOC4guC4quC4luC4suC4mQ0KK+C4muC4s+C5gOC4nuC5h+C4jSDguIHguLjguKXguJTguLTguKXguIHguIrguLHguKINCivguJrguLPguYDguJ7guYfguI0g4Liq4Liw4Lil4Lit4Lii4Lij4Lix4Lih4Lii4LmMDQor4Lia4Li14LmJIOC5geC4i+C5iOC4peC5ieC4rQ0KK+C4muC4uOC4jSDguYDguInguKXguLTguKHguJfguKPguLLguJnguLjguKfguLHguJLguJnguYwNCivguJrguLjguI0g4Lio4Lij4Li14LiK4LmI4Lin4LiiDQor4Lia4Li44LiN4LiB4LmI4LitIOC5gOC4oeC4mOC4teC4geC4uOC4pQ0KK+C4muC4uOC4jeC4hOC4p+C4oyDguYDguKvguKHguJrguLjguJXguKMNCivguJrguLjguI3guIjguKPguLTguIcg4LiV4LiH4LiI4Li04LiV4Lij4Lix4LiV4LiZ4LmMDQor4Lia4Li44LiN4LiI4Lix4LiZ4LiX4Lij4LmMIOC4o+C4s+C4iOC4p+C4mQ0KK+C4muC4uOC4jeC4iOC4tOC4o+C4siDguJTguLPguKPguLTguKvguYzguIHguKXguYnguLINCivguJrguLjguI3guIrguKEg4LiE4Liz4Lit4Li04LmI4LiZDQor4Lia4Li44LiN4LiK4LmI4Lin4LiiIOC4geC4seC4meC4nuC4ueC4pQ0KK+C4muC4uOC4jeC4iuC5iOC4p+C4oiDguITguLLguKfguKrguLjguKfguKPguKPguJMNCivguJrguLjguI3guIrguYjguKfguKIg4LiJ4Li04Lih4LiJ4Lin4Li1DQor4Lia4Li44LiN4LiK4LmI4Lin4LiiIOC5geC4i+C5iOC5gOC4ruC5ieC4hw0KK+C4muC4uOC4jeC4iuC5iOC4p+C4oiDguJfguK3guIfguKrguLjguIINCivguJrguLjguI3guIrguYjguKfguKIg4LmA4LiZ4Liy4Lin4LmM4LmD4Lir4Lih4LmIDQor4Lia4Li44LiN4LiK4LmI4Lin4LiiIOC5geC4m+C5ieC4meC5gOC4q+C4oeC4t+C4reC4mQ0KK+C4muC4uOC4jeC4iuC5iOC4p+C4oiDguYDguJ7guLXguKLguKPguJTguLUNCivguJrguLjguI3guIrguYjguKfguKIg4Lii4Li54LiZ4LiK4Li44LmI4LihDQor4Lia4Li44LiN4LiK4LmI4Lin4LiiIOC4p+C4seC4kuC4meC4suC4p+C4h+C4qOC5jA0KK+C4muC4uOC4jeC4iuC5iOC4p+C4oiDguKrguLHguIfguILguYzguYHguJvguYnguJkNCivguJrguLjguI3guIrguYjguKfguKIg4LmB4Liq4LiH4LiX4Lit4LiH4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Lia4Li44LiN4LiK4LmI4Lin4LiiIOC4reC4uOC4lOC4oeC4leC4o+C4sOC4geC4ueC4peC4p+C4h+C4qOC5jA0KK+C4muC4uOC4jeC4iuC4reC4miDguJfguK3guIfguYHguIHguYnguKcNCivguJrguLjguI3guIrguK3guJog4Lit4Li44LiU4Lih4Lib4Lij4Liw4Lih4Lin4LilDQor4Lia4Li44LiN4LiK4Lix4LiiIOC4guC4seC4meC4leC4tOC4jeC4suC4meC4uOC4p+C4seC4kuC4meC5jA0KK+C4muC4uOC4jeC4iuC4seC4oiDguIjguLXguKPguLDguYTguJ7guYLguKPguIjguJnguYzguIHguLjguKUNCivguJrguLjguI3guIrguLHguKIg4LiK4Li44LiV4Li04Lit4LiZ4Li44Liq4Lij4LiT4LmM4LiK4Lix4LiiDQor4Lia4Li44LiN4LiK4Lix4LiiIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4muC4uOC4jeC4iuC4seC4oiDguYDguJXguLTguKHguJfguKPguLHguJ7guKLguYzguJbguLLguKfguKMNCivguJrguLjguI3guIrguLHguKIg4LiZ4Li04Lil4Lij4Lie4Li14LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Lia4Li44LiN4LiK4Lix4LiiIOC4m+C4o+C4teC4iuC4suC4nuC4seC4meC4mOC5jA0KK+C4muC4uOC4jeC4iuC4seC4oiDguYDguJ7guIrguKPguJ7guKXguK3guKLguIfguLLguKENCivguJrguLjguI3guIrguLHguKIg4LmA4Lij4Li14Lii4LiH4Lin4Li04LmE4Lil4LiB4Li44LilDQor4Lia4Li44LiN4LiK4Lix4LiiIOC4p+C4o+C4geC4tOC4iOC4nuC4o+C4quC4tOC4mQ0KK+C4muC4uOC4jeC4iuC4seC4oiDguKjguKPguLXguKrguLjguKDguKMNCivguJrguLjguI3guIrguLHguKIg4Liq4Li44LiC4Lig4Li04Lij4Lih4Lii4LmM4LmA4LiB4Lip4LihDQor4Lia4Li44LiN4LiK4Lix4LiiIOC5gOC4q+C4peC5iOC4suC4nuC4suC4geC5gOC4nuC4teC4ouC4ow0KK+C4muC4uOC4jeC4iuC4seC4oiDguK3guLjguJvguJbguLHguKHguIrguLLguJXguLQNCivguJrguLjguI3guIrguLTguJQg4Lia4Li44LiN4LmA4Lil4Li04LioDQor4Lia4Li44LiN4LiK4Li34LmI4LiZIOC4m+C4tOC4ouC4sOC4m+C4geC4o+C4k+C5jOC4iuC4seC4og0KK+C4muC4uOC4jeC4iuC4uSDguIHguKPguLDguJbguLTguJnguJfguK3guIcNCivguJrguLjguI3guIrguLkg4LiH4Li04LmJ4Lin4LiK4LiZDQor4Lia4Li44LiN4LiK4Li5IOC4iuC4seC4ouC4muC4uOC4jeC4jeC4peC4seC4geC4qeC4k+C5jA0KK+C4muC4uOC4jeC4iuC4uSDguJXguKPguLDguIHguLnguKXguYDguIjguKPguLTguI3guKrguLjguIINCivguJrguLjguI3guIrguLkg4LiY4Li04Lij4Liy4Lio4Lix4LiB4LiU4Li04LmMDQor4Lia4Li44LiN4LiK4Li5IOC4m+C4seC5ieC4meC5gOC4guC4teC4ouC4pw0KK+C4muC4uOC4jeC4iuC4uSDguYLguJ7guJjguLTguKrguLLguKMNCivguJrguLjguI3guIrguLkg4Lij4Lit4LiU4LmA4Lie4LmH4LiH4Liq4Lix4LiH4LiE4LmMDQor4Lia4Li44LiN4LiK4Li5IOC4p+C4seC4h+C4geC4suC4meC4meC4l+C5jA0KK+C4muC4uOC4jeC4iuC4uSDguKrguKHguJrguLnguKPguJPguYwNCivguJrguLjguI3guIrguLkg4Liq4Li44Lin4Lij4Lij4LiT4LiK4Liy4LiV4Li0DQor4Lia4Li44LiN4LiK4Li5IOC4reC4tuC5ieC4h+C4geC4uOC4pQ0KK+C4muC4uOC4jeC4jeC4pOC4l+C4mOC4tOC5jCDguKXguLTguILguLTguJXguYDguIjguKPguLTguI3guKfguLHguJLguJnguLANCivguJrguLjguI3guJHguKPguLTguIEg4LiI4Lix4LiZ4LiX4Lij4LiY4Liy4Lij4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lia4Li44LiN4LiU4Li1IOC4quC4h+C4p+C4meC4hOC4p+C4suC4oeC4lOC4tQ0KK+C4muC4uOC4jeC4leC4siDguYHguIvguYjguYDguKfguLXguKLguJkNCivguJrguLjguI3guJXguLIg4Lio4Lix4LiB4LiU4Li04LmM4Lih4Lix4LiH4LiB4LijDQor4Lia4Li44LiN4LiW4Li04LmI4LiZIOC4nuC4h+C4qeC5jOC4guC4suC4pw0KK+C4muC4uOC4jeC4l+C4o+C4hyDguYDguJnguLXguKLguKHguYLguKDguITguLANCivguJrguLjguI3guJfguKPguLHguJ7guKLguYwg4Liq4Lir4LmA4LiX4Lin4Liq4Li44LiE4LiZ4LiY4LmMDQor4Lia4Li44LiN4LiX4Lin4Li1IOC5hOC4p+C4ouC4quC4uOC4leC4o+C4sg0KK+C4muC4uOC4jeC4l+C4reC4oSDguYLguJbguJvguLHguYnguJkNCivguJrguLjguI3guJfguLHguKjguJnguYwg4LiI4Lij4LiT4Liw4Lir4Li44LiVDQor4Lia4Li44LiN4LiX4Li04Lie4Lii4LmMIOC4p+C4seC4kuC4meC4sOC4p+C4tOC4muC4ueC4peC4ouC5jA0KK+C4muC4uOC4jeC4mOC4o+C4o+C4oSDguIHguKXguLHguJTguK3guKLguLnguYgNCivguJrguLjguI3guJjguKPguKPguKEg4LiI4Lij4Li54LiN4Lio4Lij4Li1DQor4Lia4Li44LiN4LiY4Lij4Lij4LihIOC5geC4i+C5iOC5hOC4q+C4pQ0KK+C4muC4uOC4jeC4mOC4o+C4o+C4oSDguJnguJ7guITguLjguJMNCivguJrguLjguI3guJjguKPguKPguKEg4Lic4Li04Lin4LmA4LiB4Lil4Li14LmJ4Lii4LiHDQor4Lia4Li44LiN4LiY4Lij4Lij4LihIOC4oeC5iOC4p+C4h+C4qOC4o+C4tQ0KK+C4muC4uOC4jeC4mOC4o+C4o+C4oSDguKfguLHguIfguYDguKrguJnguLINCivguJrguLjguI3guJjguKPguKPguKEg4Liq4Li44Lin4Lij4Lij4LiT4Lin4Li04LiI4Li04LiV4LijDQor4Lia4Li44LiN4LiY4Liy4Lij4Li1IOC4iOC4seC4meC4l+C4o+C4l+C4teC4m+C4o+C4sA0KK+C4muC4uOC4jeC4meC4sCDguKjguKPguLXguIjguLTguJnguJTguLINCivguJrguLjguI3guJnguLLguIQg4LiN4Liy4LiT4LmC4LiB4Lih4Li44LiXDQor4Lia4Li44LiN4LiZ4Liy4LiEIOC4nuC5iOC4p+C4h+C4nuC4o+C5ieC4reC4oQ0KK+C4muC4uOC4jeC4meC4suC4hCDguKrguLPguYHguJTguIfguYDguJTguIoNCivguJrguLjguI3guJnguLMg4LiK4LmJ4Liy4LiH4Lih4LiT4Li1DQor4Lia4Li44LiN4LiZ4LizIOC4reC4ouC4ueC5iOC4lOC4tQ0KK+C4muC4uOC4jeC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguIHguJnguIHguKrguLTguIfguKvguYwNCivguJrguLjguI3guJvguKXguLnguIEg4LiC4Li44Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lia4Li44LiN4Lib4Lil4Li54LiBIOC4o+C4uOC4iOC4tOC4meC4suC4oQ0KK+C4muC4uOC4jeC4nOC5iOC4reC4hyDguKPguLjguJjguLHguJnguKfguYwNCivguJrguLjguI3guJ7guLHguJnguJjguYwg4LiX4Lix4Lio4LiZ4Lit4Lix4Lih4Lie4LijDQor4Lia4Li44LiN4Lie4LiyIOC4quC4suC4o+C4tOC4geC4sg0KK+C4muC4uOC4jeC4oeC4seC5iOC4mSDguILguKfguLHguI3guKLguLfguJkNCivguJrguLjguI3guKHguLIg4LmA4LiC4Li14Lii4Lin4LiK4Lit4Li44LmI4LihDQor4Lia4Li44LiN4Lih4LiyIOC5geC4i+C5iOC4ieC4seC5iOC4pw0KK+C4muC4uOC4jeC4oeC4siDguJnguKfguKXguKrguKfguLLguJcNCivguJrguLjguI3guKHguLIg4Lie4Li44LmI4Lih4LmA4Lij4Li34Lit4LiHDQor4Lia4Li44LiN4Lih4LiyIOC4p+C4o+C4o+C4k+C4quC4uOC4l+C4mOC4tOC4nuC4h+C4qOC5jA0KK+C4muC4uOC4jeC4oeC4siDguYDguKrguLfguK3guYHguIvguKHguYDguKrguKPguLTguKENCivguJrguLjguI3guKHguLLguIEg4LiK4Li54Lio4Lij4Li1DQor4Lia4Li44LiN4Lih4Li1IOC4geC4o+C4o+C4k+C4quC4ueC4lQ0KK+C4muC4uOC4jeC4oeC4tSDguIfguLLguKHguIjguLTguJXguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguJrguLjguI3guKHguLUg4LiK4Li14Lin4Liq4Liy4LiY4LiZ4LmMDQor4Lia4Li44LiN4Lih4Li1IOC4l+C4p+C4teC4leC4o+C4sOC4geC4ueC4pQ0KK+C4muC4uOC4jeC4oeC4tSDguJrguLjguI3guKXguYnguKfguJkNCivguJrguLjguI3guKHguLUg4Lie4Li04Lip4LiT4Li44Lin4LiH4Lio4LmMDQor4Lia4Li44LiN4Lih4Li1IOC5guC4ouC4mOC4suC4lOC4tuC4gQ0KK+C4muC4uOC4jeC4oeC4tSDguKjguKPguKHguKLguLjguKPguLINCivguJrguLjguI3guKHguLUg4Liq4Li44LiI4Li04LiV4Lij4Lin4Lix4LiS4LiZ4Liw4Liq4Li44LiCDQor4Lia4Li44LiN4Lih4Li1IOC5gOC4reC4teC5iOC4ouC4oeC4q+C4uOC5iOC4mQ0KK+C4muC4uOC4jeC4ouC4hyDguKPguLHguJXguJnguLLguJnguLHguJnguJfguYwNCivguJrguLjguI3guKLguIfguITguYwg4LiZ4Liy4Lih4LiU4Li1DQor4Lia4Li44LiN4Lii4LiH4LiE4LmMIOC5geC4quC4h+C4oeC4k+C4tQ0KK+C4muC4uOC4jeC4ouC4sOC4o+C4seC4leC4meC5jCDguITguKXguYnguLLguJnguKrguLTguJnguJjguLjguYwNCivguJrguLjguI3guKLguLHguIcg4LmA4Lib4Li14Lii4LiX4Lit4LiHDQor4Lia4Li44LiN4Lii4Li04LmI4LiHIOC4geC4pOC4qeC4k+C4sOC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4muC4uOC4jeC4ouC4tOC5iOC4hyDguKDguLLguJPguLjguKjguLLguJnguJXguYwNCivguJrguLjguI3guKLguLTguJkg4Liq4Li44LiC4Lih4LiT4Li1DQor4Lia4Li44LiN4Lii4Li34LiZIOC4l+C4reC4h+C5geC4iOC5ieC4hw0KK+C4muC4uOC4jeC4ouC4t+C4mSDguKPguLHguIHguKnguYzguKrguLjguKPguKfguIfguKjguLINCivguJrguLjguI3guKLguLnguKMg4Lit4LmI4Lit4LiZ4Lit4Liz4LmE4LieDQor4Lia4Li44LiN4Lij4LmI4Lin4LihIOC4quC4uOC4p+C4o+C4o+C4k+C4iuC4suC4leC4tOC4geC4uOC4pQ0KK+C4muC4uOC4jeC4o+C4reC4lCDguYTguIrguKLguIrguJnguLANCivguJrguLjguI3guKPguK3guJQg4LmA4LiZ4LiV4Lij4LiX4Li04Lie4Lii4LmMDQor4Lia4Li44LiN4Lij4Lit4LiUIOC4oeC4teC5gOC4lOC4iuC4sg0KK+C4muC4uOC4jeC4o+C4reC4lCDguKrguLjguILguKrguLLguKPguLHguI0NCivguJrguLjguI3guKPguLHguIHguKnguYwg4LmA4LiB4Li14Lii4Lij4LiV4Li04Lib4Lij4Liw4Lig4Liy4Lie4LiB4Li44LilDQor4Lia4Li44LiN4Lij4Lix4LiV4LiZ4LmMIOC5gOC4iOC4o+C4tOC4jeC4nuC4suC4meC4tOC4ig0KK+C4muC4uOC4jeC4o+C4seC4leC4meC5jCDguKfguKPguKPguJPguIHguLTguIgNCivguJrguLjguI3guKPguLjguYjguIcg4Lie4Liy4LiZ4Li04LiK4Lin4Lix4LiS4LiZ4LmMDQor4Lia4Li44LiN4Lik4LiX4LiY4Li04LmMIOC4meC4uOC5ieC4ouC4guC4suC4pw0KK+C4muC4uOC4jeC4pOC4l+C4mOC4tOC5jCDguYDguK3guIHguKrguKHguKrguLjguIINCivguJrguLjguI3guKXguYnguK3guKEg4LiK4Liy4Lin4LiB4LiH4LiI4Lix4LiB4LijDQor4Lia4Li44LiN4Lil4LmJ4Lit4LihIOC4p+C4suC4k+C4tOC4iuC4ouC5jOC4geC4ueC4pQ0KK+C4muC4uOC4jeC4peC4suC4oCDguILguLLguKfguKrguK3guLLguJQNCivguJrguLjguI3guKXguLfguK0g4LmB4LiC4LmI4LiH4LiC4Lix4LiZ4LiU4Li1DQor4Lia4Li44LiN4Lil4Li34LitIOC5hOC4l+C4o+C5gOC4oeC4t+C4reC4hw0KK+C4muC4uOC4jeC4peC4t+C4rSDguKHguLXguKHguLLguIENCivguJrguLjguI3guKXguLfguK0g4LmB4Liq4LiH4Lit4Li04LiZ4LiX4Lij4LmMDQor4Lia4Li44LiN4Lio4Lij4Li1IOC4geC4reC4muC4muC4uOC4jQ0KK+C4muC4uOC4jeC4qOC4o+C4tSDguYTguIrguKLguK7guKfguJTguKvguKXguYnguLMNCivguJrguLjguI3guKjguKPguLUg4Lia4Lix4LiT4LiR4Li44Lio4Li04Lil4Liy4Lit4Liy4Liq4LiZ4LmMDQor4Lia4Li44LiN4Lio4Lij4Li1IOC4oeC4suC4geC4o+C4reC4lA0KK+C4muC4uOC4jeC4qOC4o+C4tSDguKjguLjguILguIHguLLguKPguITguYnguLINCivguJrguLjguI3guKjguKPguLUg4Lir4Lil4Li14LiB4Lig4Lix4LiiDQor4Lia4Li44LiN4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4peC4tOC4qOC4p+C4seC4kuC4meC4iuC4seC4og0KK+C4muC4uOC4jeC4qOC4tOC4o+C4tCDguKLguLHguIfguYDguJ/guLfguYjguK3guIfguKHguJnguJXguYwNCivguJrguLjguI3guKrguYjguIcg4LiB4Lin4Lii4Lij4Lix4LiB4Lip4LiyDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4guC4uOC4meC4q+C4meC4seC4h+C4quC4t+C4rQ0KK+C4muC4uOC4jeC4quC5iOC4hyDguIjguLHguJnguJfguKPguYzguInguLLguKLguJfguK3guIcNCivguJrguLjguI3guKrguYjguIcg4LiJ4Lix4LiZ4LiX4LmB4Lie4LiX4Lii4LmMDQor4Lia4Li44LiN4Liq4LmI4LiHIOC5hOC4iuC4ouC4quC4suC4oQ0KK+C4muC4uOC4jeC4quC5iOC4hyDguJXguLHguYnguIfguIrguLHguKLguKTguIHguKnguYwNCivguJrguLjguI3guKrguYjguIcg4LiX4Lit4LiH4LiI4Lix4LiZ4LiX4Lij4LmM4Lih4Li54LilDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4meC4seC4ouC4o+C4tOC4ouC4quC4seC4iA0KK+C4muC4uOC4jeC4quC5iOC4hyDguJrguLjguI3guK3guKLguLnguYjguITguIcNCivguJrguLjguI3guKrguYjguIcg4LmA4Lib4Li14LmI4Lii4Lih4Lie4Lil4Liy4LiiDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4nuC4suC4meC4tOC4iuC4geC4suC4ow0KK+C4muC4uOC4jeC4quC5iOC4hyDguKDguLnguYjguJ7guIfguKjguYzguYDguJ7guYfguIrguKMNCivguJrguLjguI3guKrguYjguIcg4LmD4Lii4Lie4Li54LilDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4peC4uOC4iOC4meC4suC4meC4meC4l+C5jA0KK+C4muC4uOC4jeC4quC5iOC4hyDguKfguLTguKfguLHguJLguJnguLDguIrguLHguKLguYHguKrguIcNCivguJrguLjguI3guKrguYjguIcg4Lio4Li44Lig4Lin4Lix4LiK4Lij4LmA4Liq4Lij4Li14LiB4Li44LilDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4quC4suC4o+C4sOC4oOC4sg0KK+C4muC4uOC4jeC4quC5iOC4hyDguYDguKrguKHguJfguLHguJ7guJ7guKPguLANCivguJrguLjguI3guKrguYjguIcg4LmA4Lir4Lil4LmI4Liy4LiZ4Lie4LmA4LiB4LmJ4Liy4Liq4LiB4Li44LilDQor4Lia4Li44LiN4Liq4LmI4LiHIOC4reC4tOC4meC4l+C4o+C5jOC5gOC4q+C4ouC4teC5iOC4ouC4pw0KK+C4muC4uOC4jeC4quC4meC4tOC4lyDguKLguLLguKHguYTguKrguKINCivguJrguLjguI3guKrguKEg4LiE4Liz4LiZ4Lin4LiZ4Lin4Li44LiS4Li0DQor4Lia4Li44LiN4Liq4LihIOC4iuC4seC4ouC4quC4uOC4oOC4sg0KK+C4muC4uOC4jeC4quC4oSDguJfguK3guIfguJ7guLHguJnguJjguLjguYwNCivguJrguLjguI3guKrguKEg4Lia4Li44LiN4Lit4Li04LiZ4LiX4Lij4LmMDQor4Lia4Li44LiN4Liq4LihIOC5guC4nuC4mOC4tOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4muC4uOC4jeC4quC4oSDguKXguLLguKLguKvguKLguIENCivguJrguLjguI3guKrguKEg4Liq4Lin4LiZ4LiB4Li44Lir4Lil4Liy4LiaDQor4Lia4Li44LiN4Liq4LihIOC5geC4quC4h+C5gOC4o+C4t+C4reC4hw0KK+C4muC4uOC4jeC4quC4oSDguK7guLTguKHguKrguLjguYjguJkNCivguJrguLjguI3guKrguLHguJnguJXguLTguYwg4LiJ4Lix4LiZ4LiX4LiB4Li04LiI4LmC4LiB4Lio4LilDQor4Lia4Li44LiN4Liq4Li04LiZIOC4quC4muC4suC4ouC4leC4seC4pw0KK+C4muC4uOC4jeC4quC4t+C4miDguJfguK3guIfguJnguLLguIENCivguJrguLjguI3guKrguLfguJog4Lio4Liy4LiV4Lin4Lij4Lij4LiTDQor4Lia4Li44LiN4Liq4Li44Lig4LiyIOC4geC4peC4tOC5iOC4meC4oeC4suC4peC4seC4og0KK+C4muC4uOC4jeC4q+C4peC5iOC4rSDguKLguLTguYnguKHguKXguLDguKHguLHguKINCivguJrguLjguI3guK3guLPguYTguJ4g4LiB4Li44Lil4Liq4Li04Lij4Li04Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lia4Li44LiN4LmA4LiB4Li04LiUIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4muC4uOC4jeC5gOC4geC4tOC4lCDguKPguLHguJXguJnguJvguKPguLDguKDguLLguKDguLLguKgNCivguJrguLjguI3guYDguIHguLTguJQg4Lit4Li34Lit4LiZ4Lit4LiBDQor4Lia4Li44LiN4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4p+C4o+C4h+C4hOC5jOC5guC4reC4rOC4suC4ow0KK+C4muC4uOC4jeC5gOC4geC4t+C5ieC4rSDguJfguYjguLLguJnguLHguJfguJjguLUNCivguJrguLjguI3guYDguIjguKPguLTguI0g4LmE4LiB4Lij4LiB4Lih4LilDQor4Lia4Li44LiN4LmA4LiI4Li34LitIOC4o+C4seC4leC4meC4quC4oeC4muC4seC4leC4tA0KK+C4muC4uOC4jeC5gOC4iuC4tOC4lCDguITguLHguJnguJjguKPguLHguIHguKnguYwNCivguJrguLjguI3guYDguIrguLTguJQg4LmA4Lil4Li04Lio4LiZ4Li04Lih4Li04LiV4LijDQor4Lia4Li44LiN4LmA4LiV4LmH4LihIOC4iOC4seC4meC4l+C4o+C5gOC4geC4leC4uA0KK+C4muC4uOC4jeC5gOC4leC4t+C4reC4mSDguJzguYjguK3guIfguK3guLPguYTguJ4NCivguJrguLjguI3guYDguJfguLXguKLguJkg4LmB4Lie4Lij4LiZ4LiZ4LiX4LmMDQor4Lia4Li44LiN4LmA4LiX4Li14Lii4LihIOC4reC4suC5gOC4nuC4pQ0KK+C4muC4uOC4jeC5gOC4meC4t+C5iOC4reC4hyDguYLguKXguIjguLDguKLguLANCivguJrguLjguI3guYDguJ7guYfguI0g4Lie4Li44LiX4LiY4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lia4Li44LiN4LmA4Lii4LmH4LiZIOC4muC4uOC4jeC5gOC4o+C4t+C4reC4h+C4reC4meC4seC4meC4leC5jA0KK+C4muC4uOC4jeC5gOC4ouC4teC5iOC4ouC4oSDguK3guLTguJnguJfguKPguYTguJ7guJrguLnguKXguKLguYwNCivguJrguLjguI3guYDguKPguLXguKLguKEg4LiB4LmJ4Liy4LiZ4LiC4Liy4LinDQor4Lia4Li44LiN4LmA4Lij4Li34Lit4LiHIOC4lOC4p+C4meC4lOC5iOC4p+C4mQ0KK+C4muC4uOC4jeC5gOC4o+C4t+C4reC4hyDguKHguLTguIvguLLguIHguLANCivguJrguLjguI3guYDguKPguLfguK3guIcg4LmA4Lir4Lil4Li34Lit4LiH4Lit4Lij4Li44LiTDQor4Lia4Li44LiN4LmA4Lij4Li34Lit4LiZIOC4iOC4seC4meC4l+C4o+C5jOC4muC4s+C4o+C4uOC4hw0KK+C4muC4uOC4jeC5gOC4o+C4t+C4reC4mSDguJfguKfguLXguIHguLLguI3guIjguJnguYwNCivguJrguLjguI3guYDguKPguLfguK3guJkg4Lie4Lil4Lit4Lii4LiK4Li5DQor4Lia4Li44LiN4LmA4Lij4Li34Lit4LiZIOC4p+C4h+C4qeC4sg0KK+C4muC4uOC4jeC5gOC4o+C4t+C4reC4mSDguYDguKvguKHguLDguJvguLHguJfguKHguLANCivguJrguLjguI3guYDguKXguLTguKgg4LiB4Li04LmI4LiH4LiE4LizDQor4Lia4Li44LiN4LmA4Lil4Li04LioIOC4hOC4suC4o+C4p+C4sOC4geC4uOC4pQ0KK+C4muC4uOC4jeC5gOC4peC4tOC4qCDguYDguIjguKPguLTguI3guKrguLjguIINCivguJrguLjguI3guYDguKXguLTguKgg4LmA4LiT4Lij4LmB4LiB4LmJ4LinDQor4Lia4Li44LiN4LmA4Lil4Li04LioIOC4l+C4sOC4m+C4sOC4quC4ng0KK+C4muC4uOC4jeC5gOC4peC4tOC4qCDguJrguLHguJPguJHguLTguJXguKfguIfguKjguYzguKPguLHguJXguJnguYwNCivguJrguLjguI3guYDguKXguLTguKgg4LmA4Lib4Li14LmI4Lii4Lih4Lib4Li04LmI4LiZ4LmA4Lio4LipDQor4Lia4Li44LiN4LmA4Lil4Li04LioIOC5guC4nuC4mOC4tOC5jOC4reC5iOC4reC4hw0KK+C4muC4uOC4jeC5gOC4peC4tOC4qCDguYLguKLguJfguLINCivguJrguLjguI3guYDguKXguLTguKgg4LmA4Lil4Li04Lio4Liq4LiB4Li44Lil4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lia4Li44LiN4LmA4Lil4Li04LioIOC4qOC4o+C4teC4quC4uOC4p+C4o+C4o+C4kw0KK+C4muC4uOC4jeC5gOC4peC4tOC4qCDguKrguLjguILguJfguK3guIcNCivguJrguLjguI3guYDguKXguLTguKgg4LmA4Lir4Lih4LmH4LiH4LiV4Lij4Liw4LiB4Li54LilDQor4Lia4Li44LiN4LmA4Lil4Li04LioIOC5gOC4reC4geC4sOC4p+C4h+C4qeC5jA0KK+C4muC4uOC4jeC5gOC4peC4teC5ieC4ouC4hyDguYHguJvguYnguJnguK3guLTguJkNCivguJrguLjguI3guYDguKXguLfguYjguK3guJkg4Lio4Lij4Li14LiX4Lij4Lix4Lie4Lii4LmMDQor4Lia4Li44LiN4LmA4Liq4Lij4Li04LihIOC5guC4huC4qeC4sOC4mOC4o+C4o+C4oeC4geC4ueC4pQ0KK+C4muC4uOC4jeC5gOC4quC4o+C4tOC4oSDguYDguJnguJXguKPguYDguIHguYjguIcNCivguJrguLjguI3guYDguKrguKPguLTguKEg4Lil4LiU4Liy4Liq4Li44LiZ4LiX4LijDQor4Lia4Li44LiN4LmA4Liq4Lij4Li04LihIOC5geC4quC4h+C5geC4geC5ieC4pw0KK+C4muC4uOC4jeC5gOC4q+C4peC4t+C4rSDguJTguYnguKfguIfguJfguK3guIcNCivguJrguLjguI3guYDguKvguKXguLfguK0g4Liq4Li04LiZ4LmA4LiV4LmH4LihDQor4Lia4Li44LiN4LmA4Lit4Li34LmJ4LitIOC4leC4seC4meC4ouC4sOC4geC4uOC4pQ0KK+C4muC4uOC4jeC5geC4ouC5ieC4oSDguYDguIHguLTguJTguJnguYnguK3guKINCivguJrguLjguI3guYLguIrguJXguLQg4LiX4Li04Lie4Lii4LmM4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Liq4Li04LiZDQor4Lia4Li44LiN4LmC4Liu4LihIOC4ieC4suC4ouC4m+C4o+C4sOC4lOC4seC4mg0KK+C4muC4uOC4jeC5hOC4l+C4oiDguYHguIHguKHguKfguJPguLTguIrguIHguLjguKUNCivguJrguLjguJPguJjguKPguKPguKEg4Lie4Liy4LiZ4Lij4Lix4LiB4Lip4LmMDQor4Lia4Li44LiT4Lij4Lit4LiUIOC4qOC4o+C4teC5geC4nuC5iOC4hw0KK+C4muC4uOC4meC4meC4suC4hCDguJ7guLjguJfguJ7guIfguKnguYwNCivguJrguLjguYnguJnguKvguIfguLUg4LmB4LiL4LmI4LiU4LmI4Liy4LiZDQor4Lia4Li44Lia4Lic4LiyIOC4geC4uOC4peC5gOC4quC4p+C4lQ0KK+C4muC4uOC4muC4nOC4siDguYDguIvguLXguYnguKLguYDguIjguKPguLTguI0NCivguJrguLjguJrguJzguLIg4Lia4Li44LiN4LiZ4Li04LiY4Li04Lin4Lix4LiS4LiZ4LiyDQor4Lia4Li44Lia4Lic4LiyIOC5gOC4nuC5h+C4iuC4o+C4m+C4o+C4sOC5hOC4ng0KK+C4muC4uOC4muC4nOC4siDguKfguIfguKjguYzguYHguKrguJnguKrguLjguIINCivguJrguLjguJrguJzguLIg4LmB4Liq4LiH4Lie4Li44LmI4LihDQor4Lia4Li44Lib4Lic4LiyIOC4geC5ieC4suC4meC4guC4suC4pw0KK+C4muC4uOC4m+C4nOC4siDguJXguLLguKzguKfguLHguJLguJnguYwNCivguJrguLjguJvguJzguLIg4Lie4Liy4LiZ4Li04LiK4LiB4Li54LilDQor4Lia4Li44Lib4Lic4LiyIOC4qOC4o+C4teC4q+C4sOC4o+C4seC4jQ0KK+C4muC4uOC4nOC4siDguJ7guLHguJnguJjguYzguKjguKPguLUNCivguJrguLjguKPguLTguJnguJfguKPguYwg4LiZ4Lit4LiC4Li44LiZ4LiX4LiUDQor4Lia4Li44Lij4Li1IOC4iuC4seC4ouC4geC4tOC4iOC5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C4muC4uOC4peC5gOC4lOC4iiDguKfguLTguJrguLnguKXguJzguKUNCivguJrguLjguKjguKPguLIg4LiY4Liy4Lij4Liy4LiK4Li14Lin4Li04LiZDQor4Lia4Li44Lio4Lij4LiyIOC4reC4o+C4uOC4k+C4hOC4uOC4k+C4suC4o+C4seC4geC4qeC5jA0KK+C4muC4uOC4qOC4o+C4tOC4meC4l+C4o+C5jCDguYTguJXguKPguKfguKPguYDguJTguIrguLINCivguJrguLjguKnguIHguKMg4LiB4Lij4Lij4Lih4Liy4Lij4Liy4LiH4LiB4Li54LijDQor4Lia4Li44Lip4LiB4LijIOC4m+C4o+C4sOC4geC4suC4qOC5gOC4geC4leC4uOC4geC4suC4ow0KK+C4muC4uOC4qeC4geC4oyDguKrguLHguJnguJXguLTguKfguIfguITguYwNCivguJrguLjguKnguJrguIcg4LiI4Lix4LiZ4LiX4Lij4LiB4Li54LilDQor4Lia4Li44Lip4Lia4LiH4LiB4LmMIOC4lOC4tOC4qeC4kOC4iOC4s+C5gOC4meC4teC4ouC4ow0KK+C4muC4uOC4qeC4muC4siDguIrguLHguKLguIjguLTguJnguJTguLINCivguJrguLjguKnguJrguLIg4LmA4LiZ4Li34Lit4LiH4LiZ4Li44LiKDQor4Lia4Li44Lip4Lia4LiyIOC5gOC4oeC4iuC4tOC4o+C4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C4muC4uOC4qeC4muC4siDguKrguIfguKfguJnguKLguKgNCivguJrguLjguKnguJrguLLguJ7guKPguKPguJMg4Lit4Li44LiU4Lih4Lin4Lix4LiS4LiZ4LmM4LiX4Lin4Li1DQor4Lia4Li44Lip4Lii4LiyIOC4m+C4o+C4sOC4oOC4suC4ouC4meC4leC5jA0KK+C4muC4uOC4qeC4o+C4siDguIrguLnguYHguIHguYnguKcNCivguJrguLjguKnguKPguLLguKDguKPguJPguYwg4LiB4Li04LiI4Liq4Lih4Li44LiX4LijDQor4Lia4Li44Lir4LiH4Lix4LiZIOC5gOC4iOC4teC4ouC5gOC4nuC4tOC5iOC4oeC4nuC4ueC4pQ0KK+C4muC4uOC4q+C4h+C4siDguKXguLLguKLguJvguKPguLDguJTguLTguKnguJANCivguJrguLjguKvguKXguLHguJkg4Lin4Lij4Lij4Lix4LiV4LiZ4Lin4LiH4Lio4LmMDQor4Lia4Li54Lij4LiT4Liw4Lio4Li04Lil4Lib4LmMIOC4muC4uOC4jeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4muC4ueC5iCDguK3guLjguJTguKHguKjguKPguLXguKrguLPguKPguLLguI0NCivguYDguJrguI3guIjguJ7guKMg4LiU4Liy4Lin4Lit4Li44LiU4LihDQor4LmA4Lia4LiN4LiI4Lie4LijIOC4quC4uOC4guC4quC4seC4h+C4p+C4suC4peC4ouC5jA0KK+C5gOC4muC4jeC4iOC4oeC4siDguIHguYnguK3guJnguJfguK3guIcNCivguYDguJrguI3guIjguKHguLLguKgg4LiE4Li44LiT4Liy4LiK4Li14Lin4LiwDQor4LmA4Lia4LiN4LiI4Lih4Liy4LioIOC4l+C4reC4h+C4l+C4tOC4nuC4ouC5jA0KK+C5gOC4muC4jeC4iOC4oeC4suC4qCDguYDguJ7guKXguLTguJnguJvguKPguLDguKDguLLguJ7guKMNCivguYDguJrguI3guIjguKHguLLguKgg4Lio4Lij4Li14Lia4Li44LiN4LmA4Lij4Li34Lit4LiHDQor4LmA4Lia4LiN4LiI4Lih4Liy4LioIOC5gOC4reC4t+C5ieC4reC4geC4suC4jeC4iOC4meC4p+C4tOC5hOC4pQ0KK+C5gOC4muC4jeC4iOC4o+C4seC4leC4meC5jCDguKrguLTguIfguKvguYzguKrguKHguJrguLjguI0NCivguYDguJrguI3guIjguKfguKPguKPguJMg4LiE4Li44LiT4LiT4Liw4Lij4Lix4LiB4Lip4LmM4LmE4LiX4LiiDQor4LmA4Lia4LiN4LiI4Lin4Lij4Lij4LiTIOC5geC4i+C5iOC5gOC4ruC4hw0KK+C5gOC4muC4jeC4iOC4p+C4o+C4o+C4kyDguJrguLjguI3guKfguLHguJLguJnguYwNCivguYDguJrguI3guIjguKfguKPguKPguJMg4Lij4Lix4LiB4LiX4LmJ4Lin4LihDQor4LmA4Lia4LiN4LiI4Lin4Lij4Lij4LiTIOC5gOC4qOC4o+C4qeC4kOC4muC4uOC4leC4ow0KK+C5gOC4muC4jeC4iOC4p+C4o+C4o+C4kyDguK3guLLguKPguLUNCivguYDguJrguI3guIjguLIg4LmB4LiB4LmJ4Lin4Lil4LmJ4Lin4LiZDQor4LmA4Lia4LiN4LiI4LiyIOC4p+C4h+C4qOC5jOC4iuC4tOC4meC4iuC4seC4og0KK+C5gOC4muC4jeC4iOC4suC4o+C4seC4leC4meC5jCDguK3guLTguIfguITguYDguKfguJfguKLguYwNCivguYDguJrguLTguIHguJ/guYnguLIg4LmA4LiB4LiV4Li44LiZ4Li44LiV4Li0DQor4LmA4Lia4LmH4LiN4LiI4Lie4LijIOC4quC4meC4mOC4tOC4quC4oeC4muC4seC4leC4tA0KK+C5gOC4muC5h+C4jeC4iOC4oeC4suC4qCDguYDguKvguKHguKvguIfguKnguYzguJfguK3guIcNCivguYDguJrguYfguI3guIjguKfguKPguKPguJMg4Lia4Lix4Lin4LiX4Lit4LiHDQor4LmA4Lia4LmH4LiN4LiI4LiwIOC4muC4uOC4jeC4qOC4tOC4o+C4tOC4ouC4suC4meC4meC4l+C5jOC4iuC4seC4og0KK+C5gOC4muC5h+C4jeC4iOC4siDguKrguLTguIfguKvguYDguJnguJXguKMNCivguYHguJrguKPguJnguJTguYzguKXguLUg4LmA4Lit4LiKDQor4LmD4LiaIOC4hOC4h+C4guC4uOC4meC4l+C4lA0KK+C4m+C4geC4iOC4tOC4leC4leC5jCDguJvguKPguLDguKHguLLguI0NCivguJvguIHguKPguJPguYwg4LmA4LiI4Li14Lii4Lij4Liq4Li44LiVDQor4Lib4LiB4Lij4LiT4LmMIOC4muC4uOC4jeC4quC4tOC4meC4quC4uOC4gg0KK+C4m+C4geC4o+C4k+C5jCDguKfguIfguKjguYzguKfguLTguJfguKLguLLguKDguLTguKPguKHguKLguYwNCivguJvguIHguKPguJPguYwg4Lit4Li04LiZ4LiX4Lij4Liy4Lin4Li44LiYDQor4Lib4LiK4LiyIOC4leC4teC4o+C4sOC4o+C4seC4leC4meC5jA0KK+C4m+C4j+C4tOC4meC4uOC4iiDguKfguIfguKjguYzguJfguK3guIfguKjguKPguLUNCivguJvguI/guLTguKHguLIg4LiB4Liy4LiN4LiI4LiZ4Lih4Lix4LiiDQor4Lib4LiQ4LihIOC4hOC4peC5ieC4suC4ouC4quC4uOC4l+C4mOC4tA0KK+C4m+C4kOC4oSDguK3guLHguIHguKnguKPguKjguKPguLUNCivguJvguJDguKHguKPguLHguJXguJnguYwg4Lit4LiZ4Li44Lij4Lix4LiB4Lip4LmM4LmA4Lil4LiC4LiyDQor4Lib4LiT4Lix4Lip4LiQ4LmMIOC4lOC4p+C4h+C4reC4uOC4lOC4oQ0KK+C4m+C4k+C4tOC4mOC4suC4mSDguKPguKfguKHguKfguLTguI3guI3guLnguIrguLHguKINCivguJvguJfguLXguJsg4LmE4Lih4LmJ4LiH4Liy4LihDQor4Lib4LiX4Li44LihIOC5gOC4m+C4teC5ieC4ouC4p+C4meC4tOC5iOC4oQ0KK+C4m+C4l+C4uOC4oSDguKvguLLguI3guIHguLTguJXguJXguLTguKrguIHguLjguKUNCivguJvguJfguLjguKHguJ7guKMg4Lit4Lih4Lij4LiI4Li04Lij4Lie4LijDQor4Lib4LiX4Li44Lih4Lij4Lix4LiV4LiZ4LmMIOC4p+C4tOC4p+C4seC4kuC4meC5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4m+C4meC4seC4lOC4lOC4siDguYHguIHguYnguKfguKjguKPguLUNCivguJvguJnguLHguJTguJTguLIg4LiZ4Liy4Lih4LiT4Li1DQor4Lib4LiZ4Lix4LiU4LiU4LiyIOC4p+C4suC4o+C4tOC4mOC4ow0KK+C4m+C4meC4seC4quC4ouC4siDguJ7guK3guJnguYDguIjguKPguLTguI0NCivguJvguKDguLHguKrguKrguKMg4LmC4LiE4Lia4Liy4Lii4Liy4LiK4Li0DQor4Lib4Lij4LiHIOC5gOC4o+C4t+C4reC4h+C4iOC4uOC5ieC4og0KK+C4m+C4o+C4p+C4tOC4iuC4ouC5jCDguYLguK3guKDguLLguKoNCivguJvguKPguLDguIHguK3guJog4LiB4Lik4Lip4Liq4Li44Lin4Lij4Lij4LiTDQor4Lib4Lij4Liw4LiB4Lit4LiaIOC4iOC4seC4meC4l+C4o+C5jOC4leC4o+C4tQ0KK+C4m+C4o+C4sOC4geC4reC4miDguJTguK3guIHguYHguIHguYnguKcNCivguJvguKPguLDguIHguK3guJog4LiZ4Liy4Lih4Lin4LiH4Lio4LmMDQor4Lib4Lij4Liw4LiB4Lit4LiaIOC4nuC4p+C4h+C4l+C4reC4h+C4l+C4tOC4nuC4ouC5jA0KK+C4m+C4o+C4sOC4geC4reC4miDguKPguLHguJXguJnguKrguKfguLHguKrguJTguLTguYwNCivguJvguKPguLDguIHguK3guJog4Lio4Li04Lij4Li04LmC4LiK4LiV4LiwDQor4Lib4Lij4Liw4LiB4Lit4LiaIOC4reC4meC4seC4meC4leC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4geC4suC4oiDguIjguLjguKzguKfguJnguLTguIoNCivguJvguKPguLDguIHguLLguKLguKPguLHguJXguJnguYwg4LiV4Lix4LiZ4LiY4Li14Lij4Lin4LiH4Lio4LmMDQor4Lib4Lij4Liw4LiB4Liy4LijIOC4meC4uOC4iuC4muC4uOC4qeC4muC4sg0KK+C4m+C4o+C4sOC4geC4suC4qiDguIHguLHguJPguJDguLHguKjguYHguIHguYnguKcNCivguJvguKPguLDguIHguLTguIgg4LiV4Lij4Li14LiB4Li04LiV4LiV4Li04LiZ4Li44Lij4Lix4LiB4Lip4LmMDQor4Lib4Lij4Liw4LiB4Li04LiIIOC4ouC4reC4lOC4ouC4o+C4o+C4ouC4hw0KK+C4m+C4o+C4sOC4geC4tOC4iCDguK3guLTguIfguKDguLLguJnguLjguKfguIfguKjguYwNCivguJvguKPguLDguIHguLTguJUg4LiY4LiZ4Liy4LmA4LiI4Lij4Li04LiN4Lig4Li04Lij4Lih4Lii4LmMDQor4Lib4Lij4Liw4LiB4Li04LiVIOC4p+C4tOC4qOC4p+C4geC4o+C4p+C4tOC4qOC4tOC4qeC4j+C5jA0KK+C4m+C4o+C4sOC4hOC4o+C4reC4hyDguYLguIrguITguYLguKrguJQNCivguJvguKPguLDguITguK3guIcg4LmA4LiI4LmH4LiH4LiZ4LmJ4Lit4LiiDQor4Lib4Lij4Liw4LiE4Lit4LiHIOC4meC4tOC4peC4ieC4suC4og0KK+C4m+C4o+C4sOC4hOC4reC4hyDguJ7guLHguKfguJ7guIfguKnguYzguJfguK3guIcNCivguJvguKPguLDguITguK3guIcg4LmC4Lij4LiI4LiZ4LmM4Lij4Lix4LiB4Lip4LmMDQor4Lib4Lij4Liw4LiE4Lit4LiHIOC4quC4uOC4guC4nuC4uOC5iOC4oQ0KK+C4m+C4o+C4sOC4hOC4reC4h+C4qOC4o+C4tSDguYDguIjguKPguLTguI3guKXguLLguKANCivguJvguKPguLDguIjguIcg4Liq4Li04LiX4LiY4Li04Lin4LiT4Li04LiKDQor4Lib4Lij4Liw4LiI4LiaIOC4p+C4h+C4qeC5jOC4meC4tOC5iOC4oQ0KK+C4m+C4o+C4sOC4iOC4p+C4miDguYHguIHguYjguJnguIjguLHguJnguJfguJnguYwNCivguJvguKPguLDguIjguKfguJog4LiI4Lix4LiZ4LiX4Lij4LiyDQor4Lib4Lij4Liw4LiI4Lin4LiaIOC5geC4i+C5iOC4peC4teC5iQ0KK+C4m+C4o+C4sOC4iOC4p+C4miDguYDguJfguLXguYjguKLguIfguJrguLjguI0NCivguJvguKPguLDguIjguKfguJog4Lia4Li44LiN4LmA4Lit4Li14LmI4Lii4LihDQor4Lib4Lij4Liw4LiI4Lin4LiaIOC4nuC4seC4iuC4meC4teC4o+C4seC4leC4meC4geC4o+C4k+C5jA0KK+C4m+C4o+C4sOC4iOC4p+C4miDguKHguLXguKfguLHguJnguJTguLUNCivguJvguKPguLDguIjguKfguJog4LmA4Lil4Li14LmJ4Lii4LiH4LmA4LiB4Li04LiUDQor4Lib4Lij4Liw4LiI4Lin4LiaIOC4quC4oeC4iOC4tOC4leC4o+C5jA0KK+C4m+C4o+C4sOC4iOC4p+C4miDguYHguKrguIfguYDguKrguKfguJUNCivguJvguKPguLDguIjguKfguJog4Lit4Li44Lij4Li44LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Lij4Liw4LiI4Lix4LiB4Lij4LmMIOC4reC5iOC4s+C4quC4uOC4gg0KK+C4m+C4o+C4sOC4iOC4seC4geC4qeC5jCDguYDguIjguKPguLTguI3guJ7guLHguJLguJnguLLguJnguJnguJfguYwNCivguJvguKPguLDguIjguLHguIHguKnguYwg4LiY4Liy4Lij4Liy4LiJ4Lix4LiV4LijDQor4Lib4Lij4Liw4LiI4Lix4LiB4Lip4LmMIOC4nuC4seC4h+C4nuC4suC4meC4meC4suC4hA0KK+C4m+C4o+C4sOC4iOC4seC4geC4qeC5jCDguKfguLHguJLguJnguYDguJTguIrguLLguIrguLLguI0NCivguJvguKPguLDguIjguLHguIHguKnguYwg4LmC4Liq4LiY4Lij4Lio4Lix4LiB4LiU4Li04LmMDQor4Lib4Lij4Liw4LiI4LizIOC4p+C4tOC5gOC4qOC4qeC4quC4oeC4tOC4lQ0KK+C4m+C4o+C4sOC4iOC4tOC4leC4oyDguKvguLLguKHguJnguJXguKPguLUNCivguJvguKPguLDguIrguI0g4Lih4Li14LiK4Li54Lio4Lix4LiB4LiU4Li04LmMDQor4Lib4Lij4Liw4LiK4LiyIOC4geC4tOC4iOC4o+C4seC4leC4meC4geC4suC4jeC4iOC4meC5jA0KK+C4m+C4o+C4sOC4iuC4siDguIrguLfguYjguJnguYHguILguIENCivguJvguKPguLDguIrguLIg4LmA4LiX4Lio4LiX4Liz4LiZ4Li4DQor4Lib4Lij4Liw4LiK4LiyIOC4m+C5iOC4suC4h+C4qOC4o+C4tQ0KK+C4m+C4o+C4sOC4iuC4siDguKLguLTguYnguKHguJ7guKPguJ7guLTguJ7guLHguJLguJnguYzguJzguKUNCivguJvguKPguLDguIrguLIg4Lio4Lij4Li14Lio4Lio4Li04Lin4Li04Lih4LilDQor4Lib4Lij4Liw4LiK4LiyIOC4reC4h+C4qOC5jOC5gOC4iOC4o+C4tOC4jeC4p+C4uOC4kuC4tA0KK+C4m+C4o+C4sOC4iuC4suC4p+C4uOC4kuC4tCDguYLguKrguKfguKPguKfguLjguJLguLTguJnguLHguJnguJfguYwNCivguJvguKPguLDguIrguLTguJUg4LiY4Li14Lij4Lio4Liy4Liq4LiV4Lij4LmMDQor4Lib4Lij4Liw4LiK4Li14LieIOC4iuC4ueC4nuC4seC4meC4mOC5jA0KK+C4m+C4o+C4sOC4iuC4uOC4oSDguIrguKfguKXguLTguJUNCivguJvguKPguLDguIrguLjguKEg4Lia4Lix4Lin4LmA4LiC4Li14Lii4LinDQor4Lib4Lij4Liw4LiK4Li44LihIOC4oeC4uOC4geC4lOC4suC4geC4o+C4o+C4k+C5jA0KK+C4m+C4o+C4sOC4iuC4uOC4oSDguKrguKfguLHguKrguJTguLTguKfguIfguKjguYwNCivguJvguKPguLDguIrguLjguKEg4LmA4Lit4Li14LmI4Lii4Lih4Lil4Liw4Lit4LitDQor4Lib4Lij4Liw4LiT4LiVIOC4muC4uOC4meC4meC4suC4hA0KK+C4m+C4o+C4sOC4k+C4teC4lSDguIjguLTguJXguJXguLTguJnguLHguJnguJfguJnguYwNCivguJvguKPguLDguJTguLHguJog4LiI4Li04LiV4LiV4Li04Lih4Liy4Lie4LijDQor4Lib4Lij4Liw4LiU4Lix4LiaIOC4nuC4uOC5iOC4oeC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4m+C4o+C4sOC4lOC4seC4miDguYLguKrguKDguJPguIHguLTguJXguKLguLLguKDguKPguJPguYwNCivguJvguKPguLDguJTguLTguKnguJAg4LiI4Lix4LiZ4LiX4Lij4LiyDQor4Lib4Lij4Liw4LiU4Li04Lip4LiQIOC5gOC4peC4tOC4qOC4p+C4tOC4iuC4sg0KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jCDguIHguKXguLTguYjguJnguKvguK3guKHguKPguLfguYjguJkNCivguJvguKPguLDguJTguLTguKnguJDguYwg4LiI4LiH4Liq4Li34Lia4Lie4Lix4LiZ4LiY4LmMDQor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMIOC4iuC4ueC4nuC4tuC5iOC4h+C4reC4suC4leC4oeC5jA0KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jCDguJfguK3guIfguJ7guKrguLTguJDguKrguKHguJrguLHguJXguLQNCivguJvguKPguLDguJTguLTguKnguJDguYwg4Lia4Li44LiN4Lih4Liy4LiBDQor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMIOC4nuC4o+C4o+C4k+C4suC5guC4qg0KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jCDguKHguKvguJ7guLHguJnguJjguYwNCivguJvguKPguLDguJTguLTguKnguJDguYwg4Lil4Li04Lih4Lib4Li04Lij4Liy4Lip4LiO4Lij4LmMDQor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMIOC5gOC4p+C4quC4suC4o+C4seC4iuC4iuC4meC4meC4l+C5jA0KK+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jCDguKrguLHguIfguILguYzguKrguKfguYjguLLguIcNCivguJvguKPguLDguJTguLTguKnguJDguYwg4LmB4Liq4Lin4LiH4Lio4Lix4LiB4LiU4Li04LmMDQor4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMIOC5gOC4reC4geC4reC4uOC5iOC4mQ0KK+C4m+C4o+C4sOC4luC4oSDguK3guLTguYjguKHguKrguKfguYjguLLguIcNCivguJvguKPguLDguJfguKfguJkg4LiZ4Liy4LiE4Lie4Lil4Lix4LiHDQor4Lib4Lij4Liw4LiX4Lin4LiZIOC4reC4o+C4o+C4luC5guC4geC4p+C4tOC4lw0KK+C4m+C4o+C4sOC4l+C4suC4mSDguJnguLHguJnguJfguJvguKPguLDguYTguJ4NCivguJvguKPguLDguJfguLTguJkg4LiI4Liz4Lib4Liy4LmA4LiH4Li04LiZDQor4Lib4Lij4Liw4LiX4Li04LiZIOC5gOC4muC4jeC4iOC4nuC4pQ0KK+C4m+C4o+C4sOC4l+C4tOC4mSDguKjguIfguKrguJnguLHguJnguJfguJnguYwNCivguJvguKPguLDguJfguLTguJnguJfguLTguJ7guKLguYwg4Lia4Lix4Lin4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lib4Lij4Liw4LiX4Li14LibIOC5gOC4geC4tOC4lOC4nOC4pQ0KK+C4m+C4o+C4sOC4l+C4teC4myDguIjguIfguKHguLXguYDguKrguKPguYfguIgNCivguJvguKPguLDguJfguLXguJsg4LiK4Lix4Lii4LmA4LiJ4Lil4Li04Lih4Lio4Lix4LiB4LiU4Li04LmMDQor4Lib4Lij4Liw4LiX4Li14LibIOC5gOC4leC4iuC4sOC4m+C4o+C4sOC4oOC4suC4p+C4geC4uOC4pQ0KK+C4m+C4o+C4sOC4l+C4teC4myDguJnguKPguKHguLHguYjguIcNCivguJvguKPguLDguJfguLXguJsg4Lib4Lij4Liw4LmE4Lie4Lil4Lix4LiB4Lip4LiT4LmMDQor4Lib4Lij4Liw4LiX4Li14LibIOC4nuC4uOC4kuC4tOC4quC4geC4uOC4peC4p+C4h+C4qOC5jA0KK+C4m+C4o+C4sOC4l+C4teC4myDguKLguLTguYnguKHguKrguLLguKPguLANCivguJvguKPguLDguJfguLXguJsg4Lin4LiH4Lio4LmM4LmA4Lil4Li04LioDQor4Lib4Lij4Liw4LiX4Li14LibIOC4quC4meC5g+C4iOC4nuC4suC4k+C4tOC4iuC4ouC5jA0KK+C4m+C4o+C4sOC4l+C4teC4myDguYDguKrguLXguKLguIfguKvguKfguLLguJkNCivguJvguKPguLDguJfguLXguJsg4Lit4Li44LiU4Lih4Lic4LilDQor4Lib4Lij4Liw4LiX4Li44LihIOC4guC4p+C4seC4jeC4oeC4sg0KK+C4m+C4o+C4sOC4l+C4uOC4oSDguYDguIjguKPguLTguI3guIrguK3guJoNCivguJvguKPguLDguJfguLjguKEg4LiU4Li14LmC4Lij4LiI4LiZ4LmM4Lin4LiH4LiE4LmMDQor4Lib4Lij4Liw4LiX4Li44LihIOC4meC4uOC4iuC4meC4p+C4pQ0KK+C4m+C4o+C4sOC4l+C4uOC4oSDguJ7guKPguKvguKHguKrguJnguJjguLTguYwNCivguJvguKPguLDguJfguLjguKEg4Lii4Li44Lin4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Lij4Liw4LiX4Li44LihIOC5gOC4p+C4k+C4uOC4meC4seC4meC4l+C4meC5jA0KK+C4m+C4o+C4sOC4l+C4uOC4oSDguKrguLjguILguKHguLINCivguJvguKPguLDguJfguLjguKEg4Lit4Lin4Lii4Lio4Li04Lij4Li0DQor4Lib4Lij4Liw4LiX4Li44Lih4Lie4Li04LiZIOC4oeC4uOC4leC5gOC4h+C4tOC4mQ0KK+C4m+C4o+C4sOC4mOC4suC4mSDguIrguLjguJPguKvguLDguKrguLHguJnguJXguYwNCivguJvguKPguLDguJjguLLguJkg4LmA4Lin4LiK4LiK4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4Lib4Lij4Liw4LiZ4Lit4LihIOC4geC5ieC4reC4h+C4quC4oeC4uOC4l+C4ow0KK+C4m+C4o+C4sOC4meC4reC4oSDguYLguITguKjguLTguKXguLINCivguJvguKPguLDguJnguK3guKEg4LiK4LiZ4Liw4Lig4Lix4LiiDQor4Lib4Lij4Liw4LiZ4Lit4LihIOC4leC4o+C4teC4p+C4tOC4iOC4tOC4leC4o+C4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C4m+C4o+C4sOC4meC4reC4oSDguJjguIfguKrguKfguLHguKrguJTguLTguYwNCivguJvguKPguLDguJnguK3guKEg4Lia4Li44LiN4Lih4Liy4LmA4Lil4Li04LioDQor4Lib4Lij4Liw4LiZ4Lit4LihIOC4nuC4h+C4qeC5jOC4qOC4o+C4tQ0KK+C4m+C4o+C4sOC4meC4reC4oSDguYLguJ7guJjguLTguKLguLLguJnguJnguJfguYwNCivguJvguKPguLDguJnguK3guKEg4Lii4Li04LmJ4Lih4LiH4Liy4LihDQor4Lib4Lij4Liw4LiZ4Lit4LihIOC4p+C4h+C4qOC4suC4mOC4tOC4iuC4seC4ouC4quC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4meC4reC4oSDguKrguJbguLTguKPguKrguKHguJrguLHguJXguLQNCivguJvguKPguLDguJnguK3guKEg4Liq4Li44Lin4Lij4Lij4LiT4LmA4LiE4Lij4Li34LitDQor4Lib4Lij4Liw4LiZ4Lit4LihIOC4reC4seC4h+C4hOC5gOC4quC4luC4teC4ouC4ow0KK+C4m+C4o+C4sOC4nuC4h+C4qOC5jCDguKfguLHguJLguJnguKrguLjguIINCivguJvguKPguLDguJ7guIjguJnguYwg4Lih4Li14LiX4Lij4Lix4Lie4Lii4LmMDQor4Lib4Lij4Liw4Lie4LiZ4LiY4LmMIOC5gOC4geC4qeC4o+C4suC4h+C4geC4ueC4pQ0KK+C4m+C4o+C4sOC4nuC4meC4mOC5jCDguJnguJ7guKrguLTguJfguJjguLTguKjguLjguKDguJ7guIfguKnguYwNCivguJvguKPguLDguJ7guJnguJjguYwg4Lin4Lix4LiU4Lih4LiT4Li1DQor4Lib4Lij4Liw4Lie4LijIOC4ouC4seC4h+C4m+C4o+C4sOC4lOC4tOC4qeC4kA0KK+C4m+C4o+C4sOC4nuC4pOC4l+C4mOC4tOC5jCDguKjguLjguKDguJ7guLHguJLguJnguKfguKPguIHguLjguKUNCivguJvguKPguLDguJ7guLHguJLguJnguYzguJ7guIfguKnguYwg4Lia4Liz4LmA4Lie4LmH4LiN4Liq4Li04LiX4LiY4Li04LmMDQor4Lib4Lij4Liw4Lie4Lix4LiS4LiZ4LmMIOC4mOC4meC4sOC4mOC4meC4tOC4lQ0KK+C4m+C4o+C4sOC4nuC4seC4kuC4meC5jCDguKXguLTguKHguJvguYzguJjguLXguKPguLDguIHguLjguKUNCivguJvguKPguLDguJ7guLHguJLguJnguYwg4Lit4Li44LiU4Lih4LmC4Lig4LiK4LiZ4LmMDQor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4Li44LmMIOC4guC4seC4meC4mOC5guC4quC4oOC4sg0KK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jCDguITguKXguYnguLLguKLguKrguLjguJrguKPguKPguJMNCivguJvguKPguLDguJ7guLHguJnguJjguYwg4LiJ4Lix4LiV4Lij4LiY4LiZ4Liy4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMIOC5gOC4lOC5guC4iuC4mOC4o+C4o+C4oeC4quC4luC4tOC4lQ0KK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jCDguJjguLLguJnguLXguITguLMNCivguJvguKPguLDguJ7guLHguJnguJjguYwg4Lib4Lij4Liw4Lig4Liy4Lie4Li04LiX4Lii4Liy4LiB4LijDQor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMIOC4nuC4tOC4nuC4seC4kuC4meC5jOC4reC4meC4seC4meC4leC5jA0KK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jCDguKLguLjguIrguLHguKINCivguJvguKPguLDguJ7guLHguJnguJjguYwg4Lin4LiH4Lio4LmM4LmB4Liq4LiH4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMIOC4qOC4tOC4o+C4tOC5guC4iuC4leC4tOC4o+C4uOC5iOC4h+C4guC4iOC4ow0KK+C4m+C4o+C4sOC4nuC4seC4meC4mOC5jCDguKrguLjguKfguKPguKPguJPguYwNCivguJvguKPguLDguJ7guLHguJnguJjguYwg4Lit4Lix4LiN4LiN4Lih4LiT4Li1DQor4Lib4Lij4Liw4Lie4Liy4LioIOC4qOC4geC4uOC4meC4leC4meC4suC4hA0KK+C4m+C4o+C4sOC4nuC4suC4rCDguYHguKrguJnguKrguLjguIINCivguJvguKPguLDguJ7guLTguJfguKLguYwg4LmE4LiK4Lii4Lit4Li44LiX4Li04LiV4Lii4LmM4LiB4Li44LilDQor4Lib4Lij4Liw4Lie4Li04Lih4Lie4LmMIOC4nuC4uOC4l+C4mOC4tOC4o+C4seC4geC4qeC5jOC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4nuC4tOC4qCDguJrguLjguI3guKPguLjguYjguIcNCivguJvguKPguLDguJ7guLTguKgg4LmB4Liq4LiH4Lit4Liy4LiX4Li04LiV4Lii4LmMDQor4Lib4Lij4Liw4Lie4Li14Lij4LmMIOC4reC4tOC4j+C4kOC4geC4o+C4nuC4seC4meC4mOC5jA0KK+C4m+C4o+C4sOC4oOC4seC4qOC4oyDguYTguIrguKLguYDguKjguKPguKnguJANCivguJvguKPguLDguKDguLHguKrguKPguYwg4Lie4Li04Lio4Li04Lip4LiQ4LiB4Liy4LijDQor4Lib4Lij4Liw4Lig4Lix4Liq4Liq4LijIOC4l+C4reC4h+C4hOC4s+C4hOC4ueC4kw0KK+C4m+C4o+C4sOC4oOC4seC4quC4quC4oyDguKXguLjguJvguKPguLDguKrguIfguITguYwNCivguJvguKPguLDguKDguLHguKrguKrguKMg4LmA4Lit4Li14LmI4Lii4Lih4LmC4Lit4Lig4Liy4LiqDQor4Lib4Lij4Liw4Lig4LiyIOC4hOC4s+C5gOC4nuC4o+C4suC4sA0KK+C4m+C4o+C4sOC4oOC4siDguIrguLLguKPguLXguK3guLHguJkNCivguJvguKPguLDguKDguLIg4LiV4Lix4LmL4LiZ4LmA4LiI4Lij4Li04LiNDQor4Lib4Lij4Liw4Lig4LiyIOC4meC4suC4hOC4meC4tOC4pQ0KK+C4m+C4o+C4sOC4oOC4siDguJ7guIfguKnguYzguJ7guLTguJ7guLHguJLguJnguYwNCivguJvguKPguLDguKDguLIg4Lih4Li14LmB4Liq4LiHDQor4Lib4Lij4Liw4Lig4LiyIOC4p+C4tOC5gOC4iuC4teC4ouC4o+C4quC4tOC4h+C4q+C5jA0KK+C4m+C4o+C4sOC4oOC4siDguKrguLjguILguJ7guLHguJnguJjguLUNCivguJvguKPguLDguKDguLIg4Lit4Li04LiH4LiE4LiZ4Lix4LiZ4LiX4LmMDQor4Lib4Lij4Liw4Lig4Liy4LiX4Li04Lie4Lii4LmMIOC4iSDguYDguIjguKPguLTguI3guJzguKUNCivguJvguKPguLDguKDguLLguJ7guKMg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lib4Lij4Liw4Lig4Liy4Lie4LijIOC5geC4ouC5ieC4oeC4reC5iOC4p+C4oQ0KK+C4m+C4o+C4sOC4oOC4suC4nuC4oyDguK3guLjguJrguKXguKfguLTguKPguLHguJXguJnguLINCivguJvguKPguLDguKDguLLguJ7guKPguKPguJMg4Lia4Li44LiT4Lii4Liw4Lio4Lij4Li1DQor4Lib4Lij4Liw4Lig4Liy4Lie4Lij4Lij4LiTIOC4reC4tOC5iOC4oeC4nuC4ueC4peC4l+C4o+C4seC4nuC4ouC5jA0KK+C4m+C4o+C4sOC4oOC4suC4oOC4o+C4k+C5jCDguJzguLTguJnguYHguJUNCivguJvguKPguLDguKDguLLguKPguLHguJXguJnguYwg4Lia4Liy4LiH4Lig4Li04Lig4LieDQor4Lib4Lij4Liw4Lig4Liy4Lin4LiU4Li1IOC4reC4s+C4oeC4pOC4leC5guC4iuC4leC4tA0KK+C4m+C4o+C4sOC4oOC4suC4qOC4o+C4tSDguITguLLguKPguKfguLDguJXguKPguLXguYDguJTguIoNCivguJvguKPguLDguKDguLLguKjguKPguLUg4LmA4LiX4Li14LmI4Lii4LiH4LiC4LizDQor4Lib4Lij4Liw4Lig4Liy4Lio4Lij4Li1IOC5gOC4oeC4t+C4reC4h+C4nuC4o+C4q+C4oQ0KK+C4m+C4o+C4sOC4oOC4suC4qOC4o+C4tSDguKrguLjguJnguJfguYDguKPguIHguLLguJnguJnguJfguYwNCivguJvguKPguLDguKDguLLguKog4LmA4LiB4LiV4LiB4Liw4LmC4LiB4Lih4LilDQor4Lib4Lij4Liw4Lig4Liy4LiqIOC4l+C4seC4muC4l+C4tOC4oeC4l+C4reC4hw0KK+C4m+C4o+C4sOC4oOC4suC4qiDguJ7guLjguJfguJjguLTguJTguLTguKXguIENCivguJvguKPguLDguKDguLLguKog4Lio4Li04Lij4Li04Lit4Lix4LiH4LiE4LiT4LiyDQor4Lib4Lij4Liw4Lig4Liy4LiqIOC5guC4reC4oOC4suC4quC4nuC4seC4meC4mOC5jOC4p+C4h+C4qOC5jA0KK+C4m+C4o+C4sOC4oeC4p+C4jSDguJvguKPguLDguJTguLTguKnguJDguYLguKrguKDguJMNCivguJvguKPguLDguKHguKfguKUg4LiE4Liz4LmA4Lin4Li14Lii4LiH4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lib4Lij4Liw4Lih4Lin4LilIOC5gOC4leC4tOC4oeC4geC4uOC4qOC4peC4l+C4o+C4seC4nuC4ouC5jA0KK+C4m+C4o+C4sOC4oeC4p+C4pSDguJrguLjguI3guKrguLTguIfguKvguYzguKjguKMNCivguJvguKPguLDguKHguKfguKUg4Lig4Li54Lih4Li04LiK4Lix4LiiDQor4Lib4Lij4Liw4Lih4Lin4LilIOC4p+C4tOC4oeC4peC5guC4meC4mA0KK+C4m+C4o+C4sOC4oeC4p+C4pSDguKrguLjguKfguKPguKPguJPguIjguLTguJnguJTguLINCivguJvguKPguLDguKHguKfguKXguKjguKPguLUg4Liq4Li04LiZ4Lit4Liy4Lip4LiyDQor4Lib4Lij4Liw4Lih4Liy4LiZIOC4quC4uOC4h+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4m+C4o+C4sOC4oeC4uOC4giDguJ7guKPguKvguKHguKPguLHguJXguJnguYzguJ7guIfguKjguYwNCivguJvguKPguLDguKHguLnguKUg4LiK4Li54LmB4LiB4LmJ4LinDQor4Lib4Lij4Liw4Lii4LiH4LiE4LmMIOC4geC4tOC4leC4leC4tOC4geC4suC4o+C4uOC4k+C4iOC4tOC4lQ0KK+C4m+C4o+C4sOC4ouC4h+C4hOC5jCDguYPguIjguJTguLUNCivguJvguKPguLDguKLguIfguITguYwg4LiV4Lix4LiT4LiR4LmM4Liq4Li44LiX4LiY4Li04Lin4LiH4LiE4LmMDQor4Lib4Lij4Liw4Lii4LiH4LiE4LmMIOC4muC4seC4p+C4guC4iOC4ow0KK+C4m+C4o+C4sOC4ouC4h+C4hOC5jCDguJ7guYjguKfguIfguJfguKPguLHguJ7guKLguYwNCivguJvguKPguLDguKLguIfguITguYwg4Lij4Lit4LiU4LiZ4Liz4Lie4LiyDQor4Lib4Lij4Liw4Lii4LiH4LiE4LmMIOC4quC4h+C5iOC4suC4p+C4h+C4hOC5jA0KK+C4m+C4o+C4sOC4ouC4h+C4hOC5jCDguKvguIfguKnguYzguK3guYjguK3guJkNCivguJvguKPguLDguKLguKfguIog4LiZ4Li04Lil4Lie4Lix4LiZ4LiY4LmMDQor4Lib4Lij4Liw4Lii4Li44LiX4LiYIOC4guC4iOC4o+C4geC4p+C4tOC4meC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4ouC4uOC4l+C4mCDguYTguIrguKLguKHguLLguJXguKMNCivguJvguKPguLDguKLguLjguJfguJgg4LiZ4Li04Lih4Li04LiV4Lir4Lil4Li04Lin4Lie4Liy4LiZ4Li04LiK4Lii4LmMDQor4Lib4Lij4Liw4Lii4Li44LiX4LiYIOC4nuC4uOC5iOC4oeC4iuC4ueC4qOC4o+C4tQ0KK+C4m+C4o+C4sOC4ouC4uOC4l+C4mCDguKfguIfguKjguYzguJvguKPguLDguJfguLjguKENCivguJvguKPguLDguKLguLjguJfguJgg4Liq4Li44LiX4LiY4Li04Liq4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Lij4Liw4Lii4Li44LiX4LiY4LmMIOC5guC4geC4p+C4tOC4l+C4p+C4k+C4tOC4iuC4geC4suC4meC4meC4l+C5jA0KK+C4m+C4o+C4sOC4ouC4uOC4mCDguKLguLTguJnguJTguLXguJ7guLTguJgNCivguJvguKPguLDguKLguLnguKMg4LmB4LiB4LmJ4Lin4Lia4Lix4LiT4LiR4Li04LiVDQor4Lib4Lij4Liw4Lii4Li54LijIOC4iOC4h+C4oeC4teC4nuC4o+C4iuC4seC4og0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguYHguIjguYnguIfguIjguLTguJXguKMNCivguJvguKPguLDguKLguLnguKMg4LmE4LiK4LmC4LiiDQor4Lib4Lij4Liw4Lii4Li54LijIOC4l+C4reC4h+C4m+C4o+C4sOC4l+C4uOC4oQ0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguJnguLTguYjguKHguILguLLguKcNCivguJvguKPguLDguKLguLnguKMg4Lia4Li54Lij4LiT4Lio4Li04Lij4Li0DQor4Lib4Lij4Liw4Lii4Li54LijIOC4nuC4o+C4quC4seC4oeC4nuC4seC4meC4mOC5jOC4quC4uOC4gg0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguKDguLnguKHguLTguYLguKrguKENCivguJvguKPguLDguKLguLnguKMg4Lij4Lit4Lii4LiV4Lij4Liw4LiB4Li54LilDQor4Lib4Lij4Liw4Lii4Li54LijIOC5gOC4peC4tOC4qOC5hOC4iuC4ouC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguKjguKPguLXguKfguLTguYTguKUNCivguJvguKPguLDguKLguLnguKMg4Liq4Liz4LmA4LiZ4Li14Lii4LiH4LiH4Liy4LihDQor4Lib4Lij4Liw4Lii4Li54LijIOC4q+C4h+C4qeC5jOC5guC4lQ0KK+C4m+C4o+C4sOC4ouC4ueC4oyDguK3guLjguJPguKPguLjguJcNCivguJvguKPguLDguKXguK3guIcg4Liq4Li44LiX4LiY4Li04LiZ4Lix4LiZ4LiX4Liq4Li44LiCDQor4Lib4Lij4Liw4Lin4Lix4LiV4Li0IOC4iOC4tOC4o+C4sOC4quC4luC4tOC4leC4ouC5jA0KK+C4m+C4o+C4sOC4p+C4seC4leC4tCDguJnguJ7guKPguLHguJXguJnguKPguLLguKDguKPguJPguYwNCivguJvguKPguLDguKfguLHguJXguLQg4Lij4Lix4LiV4LiZ4Lin4Li04Lig4Liy4Lie4LiH4Lip4LmMDQor4Lib4Lij4Liw4Lin4Lix4LiV4Li0IOC4quC4uOC4l+C4mOC4tOC4quC4suC4o+C5gOC4qOC4o+C4qeC4kOC5jA0KK+C4m+C4o+C4sOC4p+C4tOC4hyDguJnguKfguKXguIHguLDguKrguLTguJkNCivguJvguKPguLDguKfguLTguIog4Lit4Lix4LiK4LiM4Liy4Liq4Li44LiX4LiY4Li04LiE4Li44LiTDQor4Lib4Lij4Liw4Lin4Li04LiV4LijIOC4p+C4h+C4qOC5jOC4iOC4tOC4leC4leC4suC5guC4oOC4hA0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguIHguLHguIfguIHguKUNCivguJvguKPguLDguKfguLTguJfguKLguYwg4LiI4LiH4LiI4Li04LiV4Liq4Liz4Lij4Liy4LiNDQor4Lib4Lij4Liw4Lin4Li04LiX4Lii4LmMIOC5gOC4iOC4suC4quC4uOC4o+C4tOC4ouC4leC4o+C4sOC4geC4ueC4pQ0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguYHguIvguYjguJvguLbguIcNCivguJvguKPguLDguKfguLTguJfguKLguYwg4LmA4LiV4LiK4Liw4Lia4Li54Lij4LiT4LmA4LiX4Lie4Liy4Lig4Lij4LiT4LmMDQor4Lib4Lij4Liw4Lin4Li04LiX4Lii4LmMIOC4meC4suC4meC4suC4iuC4tOC4mQ0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguJvguLLguKXguKjguKPguLUNCivguJvguKPguLDguKfguLTguJfguKLguYwg4Lie4Li54Lil4LmA4LiB4Lip4LijDQor4Lib4Lij4Liw4Lin4Li04LiX4Lii4LmMIOC4o+C4leC4tOC4quC4tOC4mQ0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguYDguKXguLTguKjguYDguJjguLXguKLguKPguJTguLPguKPguIcNCivguJvguKPguLDguKfguLTguJfguKLguYwg4Lin4Li44LiS4Li04LiZ4Lig4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lib4Lij4Liw4Lin4Li04LiX4Lii4LmMIOC4quC4suC4ouC4iOC4seC4meC4l+C4o+C5jOC4q+C4reC4oQ0KK+C4m+C4o+C4sOC4p+C4tOC4l+C4ouC5jCDguYHguKrguIfguYTguIrguKINCivguJvguKPguLDguKfguLTguJfguKLguYwg4Lit4Liy4Lij4Li14Liq4LiH4LmA4LiE4Lij4Liy4Liw4Lir4LmM4LiB4Li44LilDQor4Lib4Lij4Liw4Lin4Li14LiTIOC4iOC4seC4meC4l+C4o+C5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4m+C4o+C4sOC4p+C4uOC4kuC4tCDguKjguKPguLXguKHguLHguJnguJXguLANCivguJvguKPguLDguKjguLLguKrguJnguYwg4Lia4Li44Lij4Li04LiZ4LiX4Lij4LmM4Lin4Lix4LiS4LiZ4LiyDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC4geC4s+C5geC4q+C4h+C4pOC4l+C4mOC4tOC5jA0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguYHguITguKXguYnguKfguYLguKLguJjguLINCivguJvguKPguLDguKrguIfguITguYwg4LmA4LiI4Li04LiU4Liq4LiB4Li44Lil4Lia4Li44LiNDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC5geC4i+C5iOC4ouC4tOC5ieC4oQ0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguJXguLnguYnguIjguLTguJnguJTguLINCivguJvguKPguLDguKrguIfguITguYwg4LiY4Liz4Lij4LiH4Lin4Lix4LiS4LiZ4LmA4Lil4Li04LioDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC4m+C4l+C4uOC4oeC5gOC4lOC4iuC4sA0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguJ7guKPguIrguLHguKLguKfguKPguIHguLjguKUNCivguJvguKPguLDguKrguIfguITguYwg4LmB4Lie4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC4o+C4reC4lOC5gOC4iuC4t+C5ieC4rQ0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguKfguIfguKjguYzguIrguJnguLDguKDguLHguKINCivguJvguKPguLDguKrguIfguITguYwg4Lio4Lij4Li14LiK4Lix4Lii4Lio4Li04Lij4Li04LmA4Lin4LiKDQor4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC4quC4p+C4meC4quC4oeC4iOC4tOC4leC4ow0KK+C4m+C4o+C4sOC4quC4h+C4hOC5jCDguKrguLjguKfguKPguKPguJPguJvguKPguLDguYDguJfguKgNCivguJvguKPguLDguKrguIfguITguYwg4Lit4Lii4LmI4Liy4LiH4LiY4Liy4Lij4LiyDQor4Lib4Lij4Liw4Liq4LiaIOC5guC4leC5iuC4sOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4m+C4o+C4sOC4quC4niDguJnguKfguKXguYDguJbguKXguLTguIfguKjguLHguIHguJTguLTguYwNCivguJvguKPguLDguKrguJ4g4Lir4Lix4Liq4LiC4Lix4LiZ4LiY4Li04LmM4LmA4Lib4Li14LmI4Lii4Lih4Liq4Li44LiCDQor4Lib4Lij4Liw4Liq4Lie4Liq4Li04LiZIOC4qOC4uOC4guC5gOC4reC4teC5iOC4ouC4oQ0KK+C4m+C4o+C4sOC4quC4nuC5guC4iuC4hCDguKfguLjguJLguLTguKrguLLguKMNCivguJvguKPguLDguKrguKEg4Liq4Li14LiZ4LmJ4Liz4LmA4LiH4Li04LiZDQor4Lib4Lij4Liw4Liq4Liy4LiXIOC5gOC4geC4qeC4leC4o+C4sOC4iuC4meC4oeC5jA0KK+C4m+C4o+C4sOC4quC4suC4lyDguJXguLHguYnguJnguYDguKrguYfguIcNCivguJvguKPguLDguKrguLLguJcg4Lie4Li04LiX4Lix4LiB4Lip4LmM4Lie4LiH4Lio4LmM4Lio4Li04Lij4Li0DQor4Lib4Lij4Liw4Liq4Liy4LiXIOC4qOC4o+C4teC4meC4suC4hA0KK+C4m+C4o+C4sOC4quC4suC4lyDguK3guKPguYjguLLguKHguIHguLjguKUNCivguJvguKPguLDguKrguLLguJjguJnguYzguJ7guKUg4LiE4Lil4LmI4Lit4LiH4LiB4Liy4Lij4LmA4LiC4Li14Lii4LiZDQor4Lib4Lij4Liw4Liq4Liy4LiZIOC5gOC4geC4qeC4m+C4o+C4sOC4lOC4tOC4qeC4kOC4tOC5jA0KK+C4m+C4o+C4sOC4quC4suC4mSDguYDguInguKXguKLguKDguLLguJ4NCivguJvguKPguLDguKrguLLguJkg4LmA4LiV4LiK4Liw4Lib4Lij4Liw4Lig4Liy4Lin4LiB4Li44LilDQor4Lib4Lij4Liw4Liq4Liy4LiZIOC4muC4uOC4jeC4o+C4uOC4leC4meC5jA0KK+C4m+C4o+C4sOC4quC4suC4mSDguJ7guLbguYjguIfguJrguLjguI3guJ7guLLguJnguLTguIrguKLguYwNCivguJvguKPguLDguKrguLLguJkg4LmA4Lij4Li34Lit4LiH4LmB4LiI4LmI4LihDQor4Lib4Lij4Liw4Liq4Liy4LiZIOC4qOC4tOC4o+C4tOC4muC4uOC4jQ0KK+C4m+C4o+C4sOC4quC4suC4mSDguKrguLjguKPguLDguYDguKPguLfguK3guIfguIrguLHguKINCivguJvguKPguLDguKrguLLguJkg4Lit4Li04LiZ4LiX4Lio4Lix4LiB4LiU4Li04LmM4Lit4Li44Lia4LilDQor4Lib4Lij4Liw4Liq4Liy4LijIOC4guC4iOC4o+C4geC4peC4tOC5iOC4mQ0KK+C4m+C4o+C4sOC4quC4suC4oyDguJjguKPguKPguKHguIjguLPguKPguLHguKoNCivguJvguKPguLDguKrguLLguKMg4Lih4Li14Liq4Lih4Lih4LiZ4LiV4LmMDQor4Lib4Lij4Liw4Liq4Liy4LijIOC5geC4quC4h+C4qOC4o+C4tQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tCDguKrguLTguIfguKvguYzguYDguIjguKPguLTguI3guIHguLTguIgNCivguJvguKPguLDguKrguLTguJfguJjguLTguYzguJ7guKMg4Lin4Li04Lij4Li04Lii4Liw4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4geC4p+C4tOC4meC4m+C4k+C4tOC4mOC4suC4mQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguIHguLTguJXguLTguKjguLHguIHguJTguLTguYzguIHguLjguKUNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LmB4LiB4LmJ4Lin4Liq4Lih4LiZ4Li24LiBDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4hOC4meC4i+C4t+C5iOC4rQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguIjguIfguK3guLHguKjguI3guLLguIHguLjguKUNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LiI4Lix4LiZ4LmE4LiB4Lij4Lic4LilDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4iOC4uOC5ieC4ouC4meC4tOC5iOC4oQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguInguKXguK3guIfguJjguJnguLLguIHguLjguKUNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LiK4Liy4LiH4Lib4Lij4Liw4Lii4Li54LijDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC5gOC4iuC4t+C5ieC4reC4iuC4suC4p+C4meC4sg0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguYHguIvguYjguKvguLjguYjguJkNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LmA4LiU4LiK4Lin4LiZ4Li04LiK4Lii4LiZ4Li44Lih4Lix4LiV4Li0DQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4leC4seC4meC4quC4h+C4p+C4meC4p+C4h+C4qeC5jA0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguJfguKPguIfguITguLDguKHguLLguKXguLUNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4LmA4LiX4Lie4LmA4Lit4Li34LmJ4Lit4LiV4Lij4Liw4LiB4Li54LilDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4meC4p+C4peC4reC4meC4h+C4hOC5jA0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguJrguKPguKPguJfguLHguJTguYDguJfguLXguYjguKLguIcNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lia4Li44LiN4LmB4LiB4LmJ4LinDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC5gOC4peC4tOC4qA0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguJvguLjguKPguLDguKHguLLguJvguLHguJQNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lie4Lij4Lie4Li04Lie4Lix4LiS4LiZ4LmMDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4nuC4seC4meC5geC4quC4h+C4lOC4suC4pw0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguYDguJ7guIrguKPguKrguLjguILguKrguLHguJnguJXguLTguYwNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lig4Li54LmI4LiH4Liy4Lih4LiK4Li34LmI4LiZDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4oeC4suC4meC4sOC4nOC4pQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKLguLfguJnguKLguIcNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lij4Li44LmI4LiH4LiY4Li14Lij4LiB4Li44LilDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4peC4tOC4oeC4m+C5jOC4p+C4seC4kuC4meC4geC4uOC4pQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKfguIfguITguYzguKDguLnguYgNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lin4Lix4LiK4Lij4Liw4LmE4Lie4LmC4Lij4LiI4LiZ4LmMDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4p+C4teC4o+C4sOC4nuC4suC4meC4tOC4iuC5gOC4iOC4o+C4tOC4jQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKjguKPguLXguK3guLjguJfguLLguKPguKfguIfguKjguYwNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Liq4LiB4Li44Lil4LiZ4Liy4Lih4Lit4LmA4LiZ4LiBDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4quC4seC4meC4leC5guC4ouC4lOC4oQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKrguLXguKHguLLguJjguKPguKPguKHguKPguLHguJXguJnguYwNCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Liq4Li44LiX4LiY4Li04Lio4Li04Lij4Li04LiB4Li44LilDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC5geC4quC4h+C4oOC4seC4geC4lOC4tQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguKvguLLguI3guIHguKXguYnguLINCivguJvguKPguLDguKrguLTguJfguJjguLTguYwg4Lit4LmJ4LiZ4Lib4Lix4LiZ4Liq4LmMDQor4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMIOC4reC4suC4oeC4tOC4meC5gOC4i+C5h+C4mQ0KK+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jCDguYDguK3guLXguKLguJTguYHguIHguYnguKcNCivguJvguKPguLDguKrguLnguJUg4LiK4Liy4LiN4LiI4Liz4Lil4Lit4LiHDQor4Lib4Lij4Liw4Lir4Lii4Lix4LiUIOC4hOC4peC5ieC4reC4ouC4nuC4tuC5iOC4h+C4reC4suC4iA0KK+C4m+C4o+C4sOC4q+C4ouC4seC4lCDguYHguJTguIfguK3guLTguJnguJfguKfguLHguJLguJnguYwNCivguJvguKPguLDguKvguKLguLHguJQg4Lia4Li44LiN4Liq4LmI4LiHDQor4Lib4Lij4Liw4Lir4Lii4Lix4LiUIOC4oeC5iOC4p+C4h+C5gOC4peC4teC5ieC4ouC4hw0KK+C4m+C4o+C4sOC4q+C4ouC4seC4lCDguYDguKjguKPguKnguJDguKfguIfguKjguYwNCivguJvguKPguLDguKvguKXguLLguJcg4LiZ4Lin4Lij4Liy4LiKDQor4Lib4Lij4Liw4LmA4LiI4Lip4LiO4LmMIOC4guC4iOC4o+C4meC4seC4meC4l+C4meC5jA0KK+C4m+C4o+C4sOC5gOC4iuC4tOC4jSDguJvguLHguYnguJnguJfguK3guIcNCivguJvguKPguLDguYDguJTguLTguKEg4Lii4Li44Lin4LmA4LiX4Lie4Liy4LiB4LijDQor4Lib4Lij4Liw4LmA4LiX4Li34Lit4LiHIOC4geC4h+C4l+C4reC4hw0KK+C4m+C4o+C4sOC5gOC4l+C4t+C4reC4hyDguITguIfguKHguJnguJXguYwNCivguJvguKPguLDguYDguJfguLfguK3guIcg4LmA4LiI4Li14Lii4LmE4Lie4LmB4LiB4LmJ4LinDQor4Lib4Lij4Liw4LmA4LiX4Li34Lit4LiHIOC4leC4tOC4k+C4sOC4oeC4suC4qA0KK+C4m+C4o+C4sOC5gOC4l+C4t+C4reC4hyDguJnguLTguJXguKLguLANCivguJvguKPguLDguYDguJfguLfguK3guIcg4LmA4Lib4Liy4LiK4LihDQor4Lib4Lij4Liw4LmA4LiX4Li34Lit4LiHIOC4oeC4q+C4suC4o+C4seC4geC4guC4geC4sA0KK+C4m+C4o+C4sOC5gOC4l+C4t+C4reC4hyDguYDguKXguYfguIHguYPguIjguIHguKXguYnguLINCivguJvguKPguLDguYDguJfguLfguK3guIcg4Liq4Lix4LiH4LiC4Liq4Li54LiV4LijDQor4Lib4Lij4Liw4LmA4LiX4Li34Lit4LiHIOC4q+C4suC4nuC4iOC4meC5jA0KK+C4m+C4o+C4sOC5gOC4l+C4t+C4reC4h+C4l+C4tOC4nuC4ouC5jCDguKrguLjguILguJTguLUNCivguJvguKPguLDguYDguKHguLTguJkg4LiC4Lix4LiZ4LiY4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lib4Lij4Liw4LmA4Lin4LiKIOC4oOC4seC4geC4lOC4teC4m+C4o+C4sOC4nuC4seC4meC4mOC5jA0KK+C4m+C4o+C4sOC5gOC4p+C4qCDguIHguLjguKXguKfguLTguIjguLTguJXguKPguKPguLHguIfguKrguLUNCivguJvguKPguLDguYDguKfguKgg4Lig4Liy4Liq4Lin4Lij4LmA4Lin4LiKDQor4Lib4Lij4Liw4LmA4Lin4Lio4LiZ4LmMIOC4muC4uOC4jeC4p+C4tOC4oOC4suC4o+C4seC4leC4meC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguIHguKXguLHguYjguJnguJvguKPguLDguKrguKENCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiB4Li04LiI4LmA4LiI4Lij4Li04LiN4Lin4Li04Lio4Liy4LilDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5gOC4geC4tOC4lOC4oOC4ueC5iA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguILguKfguLHguI3guJfguLDguYDguKUNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiE4Lij4Lit4LiH4Lio4Lix4LiB4LiU4Li04LmM4Lio4Lij4Li1DQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5guC4hOC4leC4o+C4m+C4o+C4sOC4l+C4uOC4oQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguIjguLHguIfguKrguJbguLTguJXguKLguYzguIHguLjguKUNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiI4Li04LiV4LiV4LmM4LiI4Liy4Lij4Li24LiBDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5gOC4iOC4leC4meC5jOC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguInguLLguIHguIfguLLguKENCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiK4Liy4LiN4LiQ4Li04LiV4Li04LmA4Lin4LiKDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5gOC4iuC4tOC4lOC4iuC4ueC4hOC4p+C4suC4oeC4lOC4tQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguYHguIvguYjguKXguLTguYnguKENCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiU4Liy4Lij4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4leC4seC5ieC4h+C4iOC4o+C4o+C4ouC4suC4mOC4o+C4o+C4oQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguYDguJXguLTguKHguJvguKPguLDguKLguLnguKMNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiX4Lin4Li14LmC4LiK4LiV4Li04LiK4LmI4Lin4LiHDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4l+C4seC4qOC4meC4qOC4ow0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguJjguKPguKPguKHguKPguLHguJXguYLguJnguJfguLHguKINCivguJvguKPguLDguYDguKrguKPguLTguJAg4LiZ4Lix4LiZ4LiX4Liq4Lix4LiZ4LiV4Li0DQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5gOC4meC4teC4ouC4oeC4geC4uOC4peC4o+C4seC4geC4qeC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguJrguLjguI3guKPguLHguJXguJnguYwNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lib4Lij4Liw4Lih4LiH4LiB4Li04LiIDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4m+C4suC4meC4quC4uOC4gg0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguJzguLLguKrguLjguJbguLLguJkNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lie4Lik4LiB4Lip4Liy4LiH4LiB4Li54LijDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4nuC4teC4o+C4sOC5geC4nuC4l+C4ouC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguYLguJ7guJjguLTguYDguIjguKPguLTguI0NCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lig4Li54Lih4Li04LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4oeC4seC4geC4nuC4tOC4oeC4pQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKHguLnguK7guLPguKHguLHguJTguK3guLLguKPguLUNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lij4Lih4Lii4Lio4Li04Lij4Li04LmE4LiX4LiiDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4o+C4uOC4iOC4tOC4mOC4suC4o+C4k+C4o+C4h+C4hOC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKXguLLguKDguJTguLLguKPguLINCivguJvguKPguLDguYDguKrguKPguLTguJAg4LmA4Lil4Liy4Lir4LmA4Lil4Li04Lio4LiK4Lix4LiiDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4p+C4h+C4qOC5jOC4reC4seC4hOC4o+C4geC4uOC4pQ0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKfguLHguJLguJnguLDguIrguLHguKLguKjguKPguLXguKrguIHguLjguKUNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lin4Li44LiS4Lii4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4qOC4o+C4teC4quC4uOC4oOC4suC4h+C4hOC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKjguLbguIHguKfguLHguJLguJnguLINCivguJvguKPguLDguYDguKrguKPguLTguJAg4Liq4Lin4LiZ4Lib4Lij4Liy4LiH4LiE4LmMDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4quC4suC4ouC4p+C4seC4kuC4meC4suC4quC4uOC4gg0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKrguLjguILguJrguLLguIcNCivguJvguKPguLDguYDguKrguKPguLTguJAg4Liq4Li44Lia4Li04LiZ4Lih4Li04LiV4LijDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5gOC4quC5h+C4h+C4quC4uOC4gg0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguKvguKPguLnguKXguLHguIHguKnguJPguLLguJnguJnguJfguYwNCivguJvguKPguLDguYDguKrguKPguLTguJAg4LmA4Lir4Lil4Li34Lit4LiH4Lio4Li44Lig4LiK4Lix4Lii4LiB4Li44LilDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC4reC4ouC4ueC5iOC4nuC4uOC5iOC4oeC4nuC4pOC4geC4qeC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kCDguK3guLLguIjguYDguJnguLXguKLguKENCivguJvguKPguLDguYDguKrguKPguLTguJAg4Lit4Li44LiU4Lih4Lio4Li04Lij4Li04LmC4Lig4LiE4Lio4Lix4LiiDQor4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQIOC5guC4reC4p+C4sOC4geC4uOC4peC4p+C4h+C4qOC5jA0KK+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4qOC4o+C4tSDguKfguIfguKnguYzguKrguLjguKPguLTguJnguJfguKPguYwNCivguJvguKPguLDguYDguKrguKPguLTguJDguLTguYwg4LiC4Liy4Lin4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMDQor4Lib4Lij4Liw4LmC4Lih4LiX4Lii4LmMIOC5hOC4iuC4ouC4geC4tOC4iA0KK+C4m+C4o+C4sOC5guC4ouC4iuC4meC5jCDguYTguJfguKLguK3guLjguJTguKENCivguJvguKPguLDguYLguKLguIrguJnguYwg4Liq4LiZ4Li04LiX4Lin4LiH4Lio4LmMDQor4Lib4Lij4Liw4LmE4LiX4LiiIOC4m+C4o+C4sOC4geC4reC4muC4geC4peC4tOC5iOC4mQ0KK+C4m+C4o+C4sOC5hOC4niDguILguLLguKfguKrguLjguJfguJjguLQNCivguJvguKPguLDguYTguJ4g4LiI4Liz4LmA4Lij4Li14Lii4LiHDQor4Lib4Lij4Liw4LmE4LieIOC4iuC4ueC4m+C4o+C4sOC4ouC4ueC4ow0KK+C4m+C4o+C4sOC5hOC4niDguJXguKPguLXguJnguLTguJXguKLguYwNCivguJvguKPguLDguYTguJ4g4LmA4LiX4Li14Lii4LiZ4LmE4LiX4LiiDQor4Lib4Lij4Liw4LmE4LieIOC4muC4uOC4jeC4ouC4sOC4o+C4seC4leC4meC5jA0KK+C4m+C4o+C4sOC5hOC4niDguJ7guKPguKHguJPguLANCivguJvguKPguLDguYTguJ4g4LmC4Lie4LiY4Li04LmM4LmB4Lir4LiaDQor4Lib4Lij4Liw4LmE4LieIOC4o+C4seC4leC4meC4sOC4iuC4teC4p+C4sOC4geC4uOC4pQ0KK+C4m+C4o+C4sOC5hOC4niDguKfguLTguKrguLLguKXguKrguIHguKUNCivguJvguKPguLDguYTguJ4g4Liq4Lij4LmJ4Lit4Lii4Liq4LiZ4LiY4Li04LmMDQor4Lib4Lij4Liw4LmE4LieIOC5geC4quC4h+C5gOC4lOC4ig0KK+C4m+C4o+C4sOC5hOC4niDguK3guLTguJnguYDguK3guLXguYjguKLguKENCivguJvguKPguLDguYTguJ7guJ7guKPguKPguJMg4LmA4LiB4LmH4LiI4Lin4Lil4Li14Lin4Lij4LijDQor4Lib4Lij4Liw4LmE4Lie4Lie4Lij4Lij4LiT4LmMIOC4iuC4sOC5gOC4reC4oQ0KK+C4m+C4o+C4sOC5hOC4nuC4o+C4seC4leC4meC5jCDguIHguLLguI3guIjguJnguJ7guLTguJrguLnguKXguKLguYwNCivguJvguKPguLDguYTguJ7guKjguKPguLUg4LiU4Lin4LiH4LmB4LiB4LmJ4LinDQor4Lib4Lij4Liw4LmE4Lie4Lio4Lij4Li1IOC4qOC4o+C4teC4oOC4tOC4o+C4oeC4ouC5jA0KK+C4m+C4o+C4seC4iuC4jeC4siDguIjguKPguLnguI3guYLguKPguIjguJnguYwNCivguJvguKPguLHguIrguI3guLIg4Lin4Li04LiX4Lii4Liy4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lib4Lij4Lix4LiN4LiN4LiyIOC4iOC4seC4meC4l+C4o+C4suC4oOC4o+C4k+C5jA0KK+C4m+C4o+C4suC4geC4suC4oyDguJrguYnguLLguJnguYDguIHguLLguLANCivguJvguKPguLLguIfguITguYwg4LmB4LiB4LmJ4Lin4LiH4Liy4LihDQor4Lib4Lij4Liy4LiI4Li04LiTIOC4p+C4uOC4kuC4suC4meC4uOC4quC4ow0KK+C4m+C4o+C4suC4k+C4tSDguIHguKTguKnguJPguIHguKPguLUNCivguJvguKPguLLguJPguLUg4LiB4Li04LiV4LiV4Li04LiE4Li44LiTDQor4Lib4Lij4Liy4LiT4Li1IOC5geC4geC5ieC4p+C4hOC4sw0KK+C4m+C4o+C4suC4k+C4tSDguITguIfguJvguKPguLDguYLguKLguIrguJnguYwNCivguJvguKPguLLguJPguLUg4LiE4Li44LmJ4Lih4LiI4Lix4LmI4LiZDQor4Lib4Lij4Liy4LiT4Li1IOC4iOC4seC4meC4l+C4o+C5jOC4l+C4p+C4teC4peC4suC4oA0KK+C4m+C4o+C4suC4k+C4tSDguIjguLTguKfguLDguJ7guIfguKnguYwNCivguJvguKPguLLguJPguLUg4LiJ4Lix4LiV4Lij4LmE4Lie4Lio4Liy4Lil4Liq4Li44LiCDQor4Lib4Lij4Liy4LiT4Li1IOC4iuC4suC4jeC4iuC5iOC4suC4h+C4l+C4q+C4suC4ow0KK+C4m+C4o+C4suC4k+C4tSDguYLguIrguITguIrguLHguKLguYDguInguKXguLTguKHguKfguIfguKjguYwNCivguJvguKPguLLguJPguLUg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lib4Lij4Liy4LiT4Li1IOC5geC4i+C5iOC5gOC4ruC5ieC4hw0KK+C4m+C4o+C4suC4k+C4tSDguJXguKPguIfguYDguKfguYLguKPguIjguJnguYwNCivguJvguKPguLLguJPguLUg4LmA4LiV4Li14Lii4LmA4LiV4Li04Lih4Lio4Li44Lig4Lic4LilDQor4Lib4Lij4Liy4LiT4Li1IOC4l+C4reC4h+C4lOC4reC4meC4nuC4uOC5iOC4oQ0KK+C4m+C4o+C4suC4k+C4tSDguJfguLnguYnguYTguJ7guYDguKPguLLguLANCivguJvguKPguLLguJPguLUg4LiY4Li44Lij4LiB4Li04LiI4Lin4LiH4LiE4LmMDQor4Lib4Lij4Liy4LiT4Li1IOC4meC4tOC4ouC4oeC5gOC4quC4mQ0KK+C4m+C4o+C4suC4k+C4tSDguJrguLjguI3guIHguKXguYjguLMNCivguJvguKPguLLguJPguLUg4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmM4Liq4Li44LiU4Liq4Lin4Liy4LiXDQor4Lib4Lij4Liy4LiT4Li1IOC4m+C4suC4nuC4iOC4meC4suC4meC4meC4l+C5jA0KK+C4m+C4o+C4suC4k+C4tSDguYDguJzguLfguK3guIHguYDguIHguKnguKENCivguJvguKPguLLguJPguLUg4Lie4Lik4LiV4Li04Lio4Lij4Lix4LiT4Lii4LiZ4LiZ4LiX4LmMDQor4Lib4Lij4Liy4LiT4Li1IOC4nuC4tOC5gOC4meC4leC4o+C5gOC4quC4luC4teC4ouC4ow0KK+C4m+C4o+C4suC4k+C4tSDguYLguJ7guJjguLTguYzguKHguLUNCivguJvguKPguLLguJPguLUg4Lih4Lir4Lix4LiV4LmA4LiU4LiK4LiB4Li44LilDQor4Lib4Lij4Liy4LiT4Li1IOC5hOC4oeC5ieC4quC4seC4gQ0KK+C4m+C4o+C4suC4k+C4tSDguKPguLHguIfguKrguLTguKLguLLguJnguJnguJfguYwNCivguJvguKPguLLguJPguLUg4LmC4Lij4LiI4LiZ4LmM4Lie4LiI4LiZ4Liy4Lij4Lix4LiKDQor4Lib4Lij4Liy4LiT4Li1IOC5gOC4peC4suC4q+C4sOC4geC4uOC4peC4mOC4o+C4o+C4oQ0KK+C4m+C4o+C4suC4k+C4tSDguKfguKPguInguLHguJXguKPguLLguKfguJPguLTguIoNCivguJvguKPguLLguJPguLUg4Lin4Li04LiX4Li44Lij4Lin4LiH4Lio4LmMDQor4Lib4Lij4Liy4LiT4Li1IOC4qOC4o+C4teC4l+C4seC4og0KK+C4m+C4o+C4suC4k+C4tSDguKjguLTguKPguLTguJfguLHguKjguJnguIHguLjguKUNCivguJvguKPguLLguJPguLUg4Liq4Lih4Lia4Li54Lij4LiT4LmM4Lio4Lix4LiB4LiU4Li04LmMDQor4Lib4Lij4Liy4LiT4Li1IOC4quC4suC4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4m+C4o+C4suC4k+C4tSDguKrguLjguILguJjguLXguKfguLjguJLguLQNCivguJvguKPguLLguJPguLUg4Liq4Li44Lij4Li04Lii4Liw4LiJ4Liy4LiiDQor4Lib4Lij4Liy4LiT4Li1IOC5geC4quC4meC4quC4uOC4gg0KK+C4m+C4o+C4suC4k+C4tSDguKvguLTguJXguLDguKvguLjguYjguIcNCivguJvguKPguLLguJPguLUg4Lit4Lii4Li54LmI4LmA4Liq4LiZ4Liy4Liq4LiZ4LmMDQor4Lib4Lij4Liy4LiT4Li1IOC4reC4s+C5hOC4nuC4quC4uOC4p+C4o+C4o+C4kw0KK+C4m+C4o+C4suC4k+C4tSDguYDguK3guIHguKrguLTguKPguLTguKXguLHguI3guIjguIHguKMNCivguJvguKPguLLguJPguLXguJUg4LiK4Lin4Liy4Lil4LiB4Li44LilDQor4Lib4Lij4Liy4LiT4Li14LiVIOC4nuC4tuC5iOC4h+C4nuC4h+C4qOC5jA0KK+C4m+C4o+C4suC4k+C4teC4lSDguYDguKvguKHguLfguK3guJnguYPguIgNCivguJvguKPguLLguJnguK3guKEg4LiI4Li04LiV4Lij4Lia4Liz4Lij4Li44LiHDQor4Lib4Lij4Liy4LiZ4Lit4LihIOC4oeC4tOC4leC4o+C4mOC4o+C4o+C4oeC4qOC4tOC4o+C4tA0KK+C4m+C4o+C4suC4meC4tSDguYDguJTguIrguKHguJPguLUNCivguJvguKPguLLguKPguJbguJnguLIg4LiI4Lix4LiZ4LiX4Lij4LmM4LmB4LiB4Lih4LmB4LiB4LmJ4LinDQor4Lib4Lij4Liy4Lij4LiW4LiZ4LiyIOC4oeC4tOC4peC4tOC4meC4l+C4iOC4tOC4meC4lOC4sg0KK+C4m+C4o+C4suC4o+C4oCDguKPguLHguJXguJ7guLHguJnguJjguLjguYwNCivguJvguKPguLLguKjguKPguLHguKIg4Lit4Lix4LiI4LiJ4Lij4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lib4Lij4Liy4LmC4Lih4LiXIOC4ouC4tOC4meC4lOC4tQ0KK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jCDguITguIfguJjguJnguLANCivguJvguKPguLLguYLguKHguJfguKLguYwg4LiI4Liz4Lib4Liy4LiX4Lit4LiHDQor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMIOC4iuC4uOC4leC4tOC4oeC4sg0KK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jCDguJXguLPguKPguLLguYDguKPguLXguKLguIcNCivguJvguKPguLLguYLguKHguJfguKLguYwg4LiZ4Lig4Liy4LmB4LiI4LmJ4LiHDQor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMIOC4muC4uOC4k+C4ouC4o+C4seC4h+C4quC4pOC4qeC4juC5jA0KK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jCDguJ7guIfguKjguYzguIHguKXguYjguLMNCivguJvguKPguLLguYLguKHguJfguKLguYwg4Lih4LiB4Lij4Lie4Lik4LiB4Lip4LmMDQor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMIOC5guC4o+C4iOC4meC4p+C4tOC4oOC4suC4lQ0KK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jCDguKfguYLguKPguJTguKHguKfguJnguLTguIrguIHguLjguKUNCivguJvguKPguLLguYLguKHguJfguKLguYwg4Liq4Lij4Lij4LmA4Lie4LiK4Lij4Lio4Li04Lij4Li0DQor4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMIOC4quC4uOC4muC4o+C4o+C4k+C4nuC4h+C4qeC5jA0KK+C4m+C4o+C4suC5guC4oeC4l+C4ouC5jCDguYLguKvguYnguYPguKINCivguJvguKPguLTguIHguIHguLXguJvguLLguKUg4LiL4Li04LiH4Lir4LmMDQor4Lib4Lij4Li04LiN4LiN4LiyIOC4hOC4s+C4l+C4sOC5gOC4meC4leC4ow0KK+C4m+C4o+C4tOC4jeC4jeC4siDguJXguLTguKPguJPguLDguJvguKPguLDguIHguLTguIgNCivguJvguKPguLTguI3guI3guLIg4LmA4Lib4Lij4Lih4LiY4Li14Lij4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lib4Lij4Li04LiN4LiN4LiyIOC5geC4ouC5ieC4oeC4iuC4oeC4quC4p+C4mQ0KK+C4m+C4o+C4tOC4jeC4jeC4siDguKjguKPguLXguKrguLjguKPguLTguYLguKINCivguJvguKPguLTguI3guI3guLIg4LmA4Lir4Lih4Lih4Liy4LiK4Li54LmA4LiB4Li14Lii4Lij4LiV4Li04LiB4Li44LilDQor4Lib4Lij4Li04LiN4LiU4LiyIOC4meC4tOC4peC4iOC4o+C4seC4quC4p+C4k+C4tOC4ig0KK+C4m+C4o+C4tOC4l+C4m+C4suC4peC4i+C4tOC4h+C4q+C5jCDguIvguLLguJrguLLguJTguLINCivguJvguKPguLTguKEg4LiE4Li44LiT4Liw4LmA4LiB4Lip4LihDQor4Lib4Lij4Li04Lii4LiyIOC4m+C4seC4jeC4jeC4suC4nuC4pQ0KK+C4m+C4o+C4tOC4qOC4meC4siDguYHguIHguYnguKfguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguJvguKPguLTguKjguJnguLIg4Lib4Lij4Liw4Lir4Liy4Lij4LiC4LmJ4Liy4Lio4Li24LiBDQor4Lib4Lij4Li04Lio4LiZ4LiyIOC4reC4seC4qOC4p+C5gOC4o+C4t+C4reC4h+C4iuC4seC4og0KK+C4m+C4o+C4teC4iuC4siDguIHguKXguLLguIfguJrguLjguKPguLHguKHguKLguYwNCivguJvguKPguLXguIrguLIg4LiB4Li14Lij4LmA4Lio4Lij4Lip4LiQ4Lij4Li44LmI4LiH4LiX4Lin4Li1DQor4Lib4Lij4Li14LiK4LiyIOC5geC4geC5ieC4p+C5guC4geC4luC4oQ0KK+C4m+C4o+C4teC4iuC4siDguITguKXguYjguK3guIfguKrguLnguYnguKjguLbguIENCivguJvguKPguLXguIrguLIg4LmA4LiH4Li04LiZ4LiW4Liy4Lin4Lij4Lin4Lix4LiS4LiZ4LiyDQor4Lib4Lij4Li14LiK4LiyIOC4iOC4suC4o+C4uOC4qOC4tOC4o+C4tOC4meC4uOC4geC4uOC4pQ0KK+C4m+C4o+C4teC4iuC4siDguYDguIjguKPguLTguI3guIrguLHguKLguYDguJ7guIrguKMNCivguJvguKPguLXguIrguLIg4LmA4LiJ4Lil4Li04Lih4Lie4LilDQor4Lib4Lij4Li14LiK4LiyIOC4iuC4tOC4meC4sOC4meC4suC4p+C4tOC4mQ0KK+C4m+C4o+C4teC4iuC4siDguYTguIrguKLguKfguKrguLgNCivguJvguKPguLXguIrguLIg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4Lib4Lij4Li14LiK4LiyIOC4leC4o+C4seC4ouC4qOC4tOC4peC4suC4meC4seC4meC4l+C5jA0KK+C4m+C4o+C4teC4iuC4siDguYDguJXguIrguJfguLTguJ7guLLguIHguKMNCivguJvguKPguLXguIrguLIg4LiX4Lij4Lix4Lie4Lii4LmM4Liq4LiW4Li04LiV4Lii4LmMDQor4Lib4Lij4Li14LiK4LiyIOC4l+C4tOC4qOC4suC4oOC4suC4hOC4ouC5jA0KK+C4m+C4o+C4teC4iuC4siDguJjguLLguKPguLLguKrguJnguJjguLTguYwNCivguJvguKPguLXguIrguLIg4LiZ4Liy4Liq4LiUDQor4Lib4Lij4Li14LiK4LiyIOC4muC4uOC4jeC4geC4peC4seC5iOC4mQ0KK+C4m+C4o+C4teC4iuC4siDguYDguJrguI3guIjguJnguLLguIHguLLguKjguIHguLjguKUNCivguJvguKPguLXguIrguLIg4Lib4Lij4Li14LiK4Liy4Lin4Li04Lig4Liy4LipDQor4Lib4Lij4Li14LiK4LiyIOC4nOC4peC4oeC4suC4gQ0KK+C4m+C4o+C4teC4iuC4siDguJ7guKPguKvguKHguYDguIHguLTguJQNCivguJvguKPguLXguIrguLIg4Lie4Li04LiK4Lii4Lie4Li04Lie4Lix4LiS4LiZ4LmMDQor4Lib4Lij4Li14LiK4LiyIOC5gOC4nuC5h+C4iuC4o+C4meC5iOC4p+C4oQ0KK+C4m+C4o+C4teC4iuC4siDguKDguLnguYjguKrguLjguJTguYHguKrguKfguIcNCivguJvguKPguLXguIrguLIg4Lih4Li14Lia4Li44LiN4Lie4Li54Lil4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lib4Lij4Li14LiK4LiyIOC4o+C4p+C4ouC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4m+C4o+C4teC4iuC4siDguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguJvguKPguLXguIrguLIg4Lil4Li04Lib4Li04Lie4Lix4LiS4LiZ4LiB4Li44LilDQor4Lib4Lij4Li14LiK4LiyIOC4p+C4h+C4qOC5jOC4iOC4tOC4leC4leC4suC5guC4oOC4hA0KK+C4m+C4o+C4teC4iuC4siDguKfguLHguJLguJnguJTguLTguYDguKPguIENCivguJvguKPguLXguIrguLIg4Lin4Li04LmE4Lil4Lij4Lix4LiV4LiZ4LmMDQor4Lib4Lij4Li14LiK4LiyIOC4qOC4o+C4teC5gOC4o+C4t+C4reC4hw0KK+C4m+C4o+C4teC4iuC4siDguKrguIfguKfguJnguJvguLUNCivguJvguKPguLXguIrguLIg4Liq4Lin4LmI4Liy4LiH4LiI4Li04LiV4LiV4LmMDQor4Lib4Lij4Li14LiK4LiyIOC4quC4tOC4l+C4mOC4tOC4geC4tOC4iA0KK+C4m+C4o+C4teC4iuC4siDguKrguLjguJfguJjguLTguJnguLTguKDguLLguIrguLHguKINCivguJvguKPguLXguIrguLIg4LmA4Liq4Lij4Li14Lin4LiH4Lio4LmMDQor4Lib4Lij4Li14LiK4LiyIOC4q+C4reC4oeC4nuC4p+C4h+C4oOC4ueC5iA0KK+C4m+C4o+C4teC4iuC4siDguK3guJnguLjguKDguLLguJ7guJvguKPguLDguYDguKrguKPguLTguJANCivguJvguKPguLXguIrguLIg4Lit4Lix4Lii4Liq4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Lij4Li14LiK4LiyIOC4reC4uOC4lOC4oeC4ouC4tOC5iOC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4m+C4o+C4teC4iuC4suC4nuC4pSDguJzguLjguKrguKrguKPguLLguIfguITguYzguKHguLLguKXguLHguKINCivguJvguKPguLXguJTguLIg4LiE4LiH4Liq4Li44Lin4Lij4Lij4LiTDQor4Lib4Lij4Li14LiU4LiyIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4m+C4o+C4teC4lOC4siDguJrguKPguKPguJfguLHguJTguJ7guLHguJnguJjguLjguYwNCivguJvguKPguLXguJTguLIg4Lie4Li04Lia4Li54Lil4Lio4Lix4LiB4LiU4Li04LmMDQor4Lib4Lij4Li14LiU4LiyIOC5guC4o+C4iOC4meC5jOC4muC4seC4p+C4l+C4reC4hw0KK+C4m+C4o+C4teC4lOC4siDguKrguKvguJnguLHguJnguJfguKPguLLguKLguLjguJfguJgNCivguJvguKPguLXguJTguLIg4LmA4Lit4LiB4Lio4Li04Lij4Liq4Li44Lin4Lij4Lij4LiTDQor4Lib4Lij4Li14LiU4Li1IOC4guC4uOC4oeC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4m+C4o+C4teC4lOC4tSDguKrguLjguJfguJjguLTguYHguKLguYnguKENCivguJvguKPguLXguKLguJ7guKPguKPguJMg4LmE4LiX4Lii4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lib4Lij4Li14Lii4LiyIOC4iOC4tOC4o+C4o+C4seC4geC4qeC5jOC5guC4quC4oOC4suC4geC4uOC4pQ0KK+C4m+C4o+C4teC4ouC4siDguJ7guIfguKjguLLguJnguKPguLLguIHguLjguKUNCivguJvguKPguLXguKLguLIg4Liq4Lih4Li44LiX4Lij4LmD4Lir4LiN4LmIDQor4Lib4Lij4Li14Lii4Liy4LiZ4Li04LiIIOC4qOC4o+C4teC5geC4geC5iOC4meC4iOC4seC4meC4l+C4o+C5jA0KK+C4m+C4o+C4teC4ouC4suC4nuC4oyDguYHguIvguYjguK3guLbguYnguIcNCivguJvguKPguLXguKLguLLguKDguLIg4Lit4Lig4Li04Liq4Li44LiCDQor4Lib4Lij4Li44LiHIOC5gOC4lOC4iuC4oeC4suC4meC4meC4l+C5jA0KK+C4m+C4o+C4uOC4h+C4qOC4o+C4tSDguYDguJ7guIrguKPguJrguLnguKPguJPguYwNCivguJvguKPguYDguKHguKnguJDguYwg4Lie4Lij4LmA4Lil4Li04LioDQor4Lib4Lil4Lit4LiU4Lig4Lix4LiiIOC4nuC4teC4o+C4lOC4seC4oQ0KK+C4m+C4peC4tOC4pyDguJTguLTguKnguJDguJvguLHguI3guI3guLINCivguJvguKXguLfguYnguKHguIjguLTguJXguJXguYwg4LiI4Li44LiR4Lij4Lij4LieDQor4Lib4Lin4Lij4Li04LiZ4LiX4LijIOC4muC4uOC4jeC4ouC4uOC4muC4pQ0KK+C4m+C4p+C4tOC4leC4o+C5jCDguKrguLjguJjguLLguKfguLTguKLguLLguIfguIHguLnguKMNCivguJvguKfguLXguJPguLIg4LiV4Lix4LiZ4Liq4Li04LiZDQor4Lib4Lin4Li14LiT4LiyIOC4quC4meC4mOC4tOC4oOC4seC4geC4lOC4tQ0KK+C4m+C5iOC4p+C4ouC4peC5ieC4p+C4hyDguYHguIvguYjguIjguLbguIcNCivguJvguK3guIcg4Lit4Liy4Lig4Liy4Lio4Li04Lil4Lib4LmMDQor4Lib4Lit4LiI4Li5IOC4leC4seC4meC4leC4tOC4reC4meC4uOC4geC4uOC4peC4muC4uOC4leC4ow0KK+C4m+C5ieC4reC4oSDguJvguKPguLDguIjguLPguKHguLnguKUNCivguJvguLDguKfguLTguIcg4Lio4Li04Lij4Li04LiB4Li04LiIDQor4Lib4Lix4LiN4LiI4Lie4LiH4Lip4LmMIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4m+C4seC4jeC4iOC4o+C4seC4leC4meC5jCDguKLguLjguJfguJjguKfguIfguKjguYwNCivguJvguLHguI3guIjguLLguKDguKPguJPguYwg4Lie4Lij4Lir4Lih4Liy4Lii4LiZDQor4Lib4Lix4LiN4LiN4LiyIOC4geC4suC4q+C4peC4hw0KK+C4m+C4seC4jeC4jeC4siDguITguLjguJPguKfguLjguJLguLTguJTguLXguYDguKXguLTguKjguKLguLTguYjguIcNCivguJvguLHguI3guI3guLIg4LmB4LiI4LmJ4LiH4LiB4Liy4Lij4LiU4Li1DQor4Lib4Lix4LiN4LiN4LiyIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4m+C4seC4jeC4jeC4siDguJfguK3guIfguKjguKPguLUNCivguJvguLHguI3guI3guLIg4LiZ4Li04Lil4Liq4Li04LiZ4LiY4LieDQor4Lib4Lix4LiN4LiN4LiyIOC4m+C4tOC5iOC4meC4m+C4suC4mQ0KK+C4m+C4seC4jeC4jeC4siDguJ7guLjguYjguKHguKXguLPguYDguIjguLXguKLguIENCivguJvguLHguI3guI3guLIg4Lij4Lit4LiU4LmA4LiE4Lij4Li34Lit4Lih4Li04LiV4LijDQor4Lib4Lix4LiN4LiN4LiyIOC4p+C4o+C4o+C4k+C4geC4o+C4sOC4iOC5iOC4suC4hw0KK+C4m+C4seC4jeC4jeC4siDguKjguKPguLXguYPguKoNCivguJvguLHguI3guI3guLIg4Liq4Li44LiC4Lin4Lix4LiS4LiZ4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lib4Lix4LiN4LiN4LiyIOC4q+C5iOC4suC4meC4quC4tOC4h+C4q+C5jA0KK+C4m+C4seC4jeC4jeC4siDguYDguK3guYjguIfguInguYnguKfguJkNCivguJvguLHguJPguIrguLLguKPguLXguKLguYwg4LmA4Lil4Li14LmJ4Lii4LiH4Lia4Liz4Lij4Li44LiHDQor4Lib4Lix4LiX4Lih4LiyIOC4geC4uOC4peC4m+C4seC4jeC4jeC4suC5gOC4peC4tOC4qA0KK+C4m+C4seC4l+C4oeC4siDguIrguLLguI3guIrguLHguKLguKjguKPguLUNCivguJvguLHguJfguKHguLIg4LiV4Li44Lil4Liy4Lij4Lix4LiB4Lip4LiyDQor4Lib4Lix4LiX4Lih4LiyIOC5gOC4m+C4teC5iOC4ouC4oeC4quC4seC4oeC4pOC4l+C4mOC4tOC5jA0KK+C4m+C4seC4l+C4oeC4siDguYDguKHguLfguK3guIfguJfguK3guIfguYHguIHguYnguKcNCivguJvguLHguJfguKHguLIg4Lin4Li04Lib4Lix4Liq4Liq4LiZ4Liy4LiY4Lij4Lij4LihDQor4Lib4Lix4LiX4Lih4LiyIOC4quC4uOC4guC4geC5ieC4reC4mQ0KK+C4m+C4seC4l+C4oeC4siDguK3guLLguKPguLDguKLguLLguJnguLTguKHguLTguJXguKrguIHguLjguKUNCivguJvguLHguJfguKHguLLguKfguJTguLUg4Lia4Li44Lir4Lil4Lix4LiZDQor4Lib4Lix4LmJ4LiZIOC5guC4iuC4leC4tOC4geC4sOC4nuC4uOC4geC4geC4sOC4k+C4sA0KK+C4m+C4suC4mSDguYHguIHguYnguKfguIrguJnguLANCivguJvguLLguJnguITguLMg4Lil4Lix4Lin4Liw4LiV4Li34LmJ4LiZDQor4Lib4Liy4LiZ4LiK4Lix4LiiIOC5geC4geC5ieC4p+C4reC4seC4oeC4nuC4ow0KK+C4m+C4suC4meC4l+C4tOC4nuC4ouC5jCDguJnguLLguKHguYTguIrguKINCivguJvguLLguJnguKTguJfguLHguKIg4LiV4Lix4LmJ4LiH4LmD4LiIDQor4Lib4Liy4LiZ4LmA4Liq4LiBIOC4reC4suC4l+C4o+C4mOC4uOC4o+C4sOC4quC4uOC4gg0KK+C4m+C4suC4o+C4p+C4teC4o+C5jCDguJrguLjguI3guYLguJUNCivguJvguLLguKPguLTguIrguLLguJUg4LiB4LmJ4Lit4LiZ4LiZ4Liy4LiEDQor4Lib4Liy4Lij4Li04LiK4Liy4LiV4Li0IOC4geC4o+C4suC5gOC4i+C4teC4ouC4meC4teC5iA0KK+C4m+C4suC4o+C4tOC4iuC4suC4leC4tCDguJfguLHguJ7guKDguLDguKrguLjguJUNCivguJvguLLguKPguLTguIrguLLguJXguLQg4Lij4Liw4Lin4Lix4LiH4Liq4Liz4LmC4Lij4LiHDQor4Lib4Liy4Lij4Li04LiK4Liy4LiV4Li0IOC5gOC4quC4p+C4geC4nuC4seC4meC4mOC5jA0KK+C4m+C4suC4peC4tOC4lOC4siDguITguJPguLLguKPguKHguKLguYwNCivguJvguLTguIcg4Lie4Liy4LiZ4Li04LiK4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Li04LiV4Li0IOC4m+C4tOC5iOC4meC4quC4uOC4geC4suC4jeC4iOC4meC4sA0KK+C4m+C4tOC4leC4tOC4nuC4h+C4qOC5jCDguITguLjguJPguJ7guIfguKjguYzguYTguJ7guKjguLLguKUNCivguJvguLTguYjguJkg4LiB4Li04LiI4LmA4Lih4LiY4Li1DQor4Lib4Li04LmI4LiZIOC4oeC4k+C4teC4muC4uOC4leC4ow0KK+C4m+C4tOC5iOC4meC4l+C4reC4hyDguKjguLLguKXguKLguLLguIrguLXguKfguLTguJkNCivguJvguLTguYjguJnguK3guJnguIfguITguYwg4Lie4Lij4Lir4Lih4LiU4Lin4LiHDQor4Lib4Li04Lii4LiJ4Lix4LiV4LijIOC4reC4tOC4qOC4o+C5gOC4quC4meC4siDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Lib4Li04Lii4LiZ4Lix4LiZ4LiX4LmMIOC4l+C4o+C4h+C4quC4geC4uOC4pQ0KK+C4m+C4tOC4ouC4meC4uOC4iiDguITguLLguKPguKfguLDguJ7guLTguJfguKLguLLguIHguLjguKUNCivguJvguLTguKLguJ7guIfguKjguYwg4LiV4Li04LiT4Liq4Li54Lil4Liy4LiZ4LiZ4LiX4LmMDQor4Lib4Li04Lii4Lie4Lij4Lij4LiTIOC5geC4ouC5ieC4oeC4meC5ieC4reC4og0KK+C4m+C4tOC4ouC4o+C4seC4leC4meC5jCDguIjguLLguJXguLjguKPguLHguJnguJXguJrguLjguJXguKMNCivguJvguLTguKLguKfguKPguKPguJMg4LiE4Liz4Lie4Lii4LiyDQor4Lib4Li04Lii4Lin4Lij4Lij4LiTIOC4qOC4o+C4teC4hOC4lQ0KK+C4m+C4tOC4ouC4p+C4uOC4kuC4tCDguIfguLLguKHguJ7guKUNCivguJvguLTguKLguLAg4LiI4Liy4Lij4Li44Lio4Li44LiB4LijDQor4Lib4Li04Lii4LiwIOC5gOC4luC4t+C5iOC4reC4meC5gOC4oeC4t+C4reC4hw0KK+C4m+C4tOC4ouC4sCDguYDguJvguKrguJXguLHguJnguKLguLUNCivguJvguLTguKLguLAg4Lin4LiH4Lio4LmM4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lib4Li04Lii4LiwIOC4reC4seC4iuC4iuC5gOC4quC4p+C4tOC4mQ0KK+C4m+C4tOC4ouC4sOC4iuC4suC4leC4tCDguIjguLHguJnguJfguKPguLHguJXguJnguYwNCivguJvguLTguKLguLDguJTguLIg4Lil4LmJ4Lit4Lio4Li04Lij4Li04LiZ4Lix4LiZ4LiX4LmMDQor4Lib4Li04Lii4Liw4LiZ4Liy4LiWIOC4iuC4uOC5iOC4oeC4reC4o+C4sA0KK+C4m+C4tOC4ouC4sOC4meC4uOC4iiDguJrguLjguI3guKPguLHguJXguJnguYwNCivguJvguLTguKLguLDguJ7guIfguKjguYwg4Lib4Li04Lii4Liy4LiH4Liq4Li4DQor4Lib4Li04Lii4Liw4Lie4LijIOC4meC4tOC4peC4ieC4suC4og0KK+C4m+C4tOC4ouC4sOC4nuC4seC4meC4mOC5jCDguKrguLXguJTguK3guIHguJrguKfguJoNCivguJvguLTguKLguLDguKPguLHguJXguJnguYwg4LiU4Liz4Lij4LiH4LiE4LmM4LiB4Li44LilDQor4Lib4Li04Lii4Liw4Lin4LiU4Li1IOC4p+C4tOC4o+C4tOC4ouC4sOC4iuC4suC4leC4tA0KK+C4m+C4tOC4ouC4sOC4p+C4o+C4o+C4kyDguKrguLjguITguJnguJjguKrguLTguIfguKvguYwNCivguJvguLTguKLguLDguKjguLTguKPguLQg4LiH4Liy4Lih4LiW4Li04LmI4LiZDQor4Lib4Li04Lii4Liy4Lig4Lij4LiT4LmMIOC4iuC4tOC4meC4ueC4m+C4geC4suC4o+C4nuC4h+C4qOC5jA0KK+C4m+C4tOC4ouC5gOC4qOC4o+C4qeC4kOC5jCDguKfguKPguK3guLLguJXguKHguJ7guLTguJfguLHguIHguKnguYwNCivguJvguLXguKLguLLguKDguKPguJPguYwg4Lih4LmI4Lin4LiH4LiB4Li44LilDQor4Lib4Li44LiT4LiT4Lij4Lix4LiV4LiZ4LmMIOC5guC4nuC4mOC4tOC4geC4s+C4iOC4ow0KK+C4m+C4uOC5iOC4oSDguKHguLLguKXguLLguIHguLjguKUNCivguYDguJsg4Lia4Li44LiN4LiB4Lit4LiHDQor4LmA4Lib4Lij4LihIOC4iOC4seC4meC4l+C4o+C4sg0KK+C5gOC4m+C4o+C4oeC4geC4oeC4pSDguYDguIHguLTguJTguYDguJTguIoNCivguYDguJvguKPguKHguIjguLTguJXguJUg4LmB4Lie4LmI4LiH4Liq4LiW4LiyDQor4LmA4Lib4Lij4Lih4LiI4Li04LiV4LiV4LmMIOC4quC4suC4o+C4mOC4tOC4o+C4suC4ig0KK+C5gOC4m+C4o+C4oeC4iuC4seC4oiDguYDguJXguIrguLDguKHguIfguITguKXguLLguKDguLTguKfguLHguJLguJnguYwNCivguYDguJvguKPguKHguJ7guLHguJnguJjguYwg4LiK4Lih4Lig4Li54Lij4Lix4LiV4LiZ4LmMDQor4LmA4Lib4Lij4Lih4Lik4LiU4Li1IOC4p+C4h+C4qOC5jOC4l+C4reC4h+C4hOC4sw0KK+C5gOC4m+C4o+C4oeC4p+C4lOC4tSDguKPguLHguJXguJnguKjguLTguKPguLTguJnguJfguKPguKfguLjguJgNCivguYDguJvguKPguKHguKrguLTguJfguJjguLTguYwg4LmA4LiV4Li04Lih4LiI4Lij4Lix4LiqDQor4LmA4Lib4Lij4Li14Lii4LiaIOC4muC4uOC4jeC4peC4t+C4rQ0KK+C5gOC4m+C4peC4pyDguK3guKLguLnguYjguKrguK3guLLguJQNCivguYDguJvguKXguYjguIcg4LiZ4Li04LmI4Lih4LiE4LizDQor4LmA4Lib4Liy4Lil4Li04LiZIOC5gOC4geC4teC4ouC4o+C4leC4tOC4ouC4qOC4meC4uOC4quC4o+C4k+C5jA0KK+C5gOC4m+C4teC5iOC4ouC4oeC4qOC4o+C4tSDguYDguIjguKPguLTguI3guKrguLjguIINCivguYDguJvguLXguYrguKLguIEg4Lil4LmJ4Lin4LiZ4LmA4LiI4Lij4Li04LiNDQor4LmA4Lib4LmJ4LiHIOC5geC4i+C5iOC4reC4t+C5ieC4rQ0KK+C5gOC4m+C5ieC4siDguYLguJ7guJjguLTguYzguYDguJnguLfguK3guIfguJzguKUNCivguYDguJvguYvguIfguYTguIEg4LmB4LiL4LmI4LmA4LiI4Li14LmI4LiiDQor4LmB4Lib4LmJ4LiZIOC4o+C4sOC4lOC4oeC4h+C4suC4oQ0KK+C5guC4m+C4o+C4ouC4oeC4suC4qOC4ouC5jCDguKjguKPguLXguJfguK3guIfguIHguLjguKUNCivguYLguJvguYrguLDguIrguLHguKIg4LmB4LiL4LmI4LiI4Lix4LiHDQor4Lic4LiB4LiyIOC4meC4o+C4meC4tOC4leC4iuC4seC4ouC4geC4uOC4pQ0KK+C4nOC4geC4suC4geC4o+C4reC4hyDguJ7guLjguYjguKHguKfguIfguKjguYzguKrguLPguYDguJnguLXguKLguIcNCivguJzguIHguLLguJ7guKPguKPguJMg4Lib4Liw4LiV4Li04LmA4LiqDQor4Lic4LiB4Liy4Lih4Liy4LioIOC4leC4teC4o+C4k+C4mOC4suC4lOC4sg0KK+C4nOC4geC4suC4oeC4suC4qCDguKrguLTguJfguJjguLTguJ7guKUNCivguJzguIHguLLguKfguKPguKPguJMg4LmA4LiX4Li14Lii4Lih4LiX4Lit4LiH4LiE4LizDQor4Lic4LiB4Liy4LmB4LiB4LmJ4LinIOC4peC4teC4meC4sOC4muC4o+C4o+C4iOC4hw0KK+C4nOC4iOC4h+C4quC4uOC4giDguK3guLHguIfguJvguKPguLDguJfguLXguJsNCivguJzguIjguI0g4Lir4Li14Lia4LmB4LiB4LmJ4LinDQor4Lic4LiU4Li44LiHIOC4l+C4reC4h+C4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC5jA0KK+C4nOC4lOC4uOC4hyDguKrguLTguIfguKvguYDguKrguJnguLUNCivguJzguJTguLjguIfguKjguLHguIHguJTguLTguYwg4LiY4LiZ4Liy4LiB4Li04LiI4LmA4LiI4Lij4Li04LiN4Liq4Li44LiCDQor4Lic4LiU4Li44LiH4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC5gOC4reC4t+C5ieC4reC4reC4suC4o+C4ouC4sOC4oeC4meC4leC4o+C4tQ0KK+C4nOC4pSDguJvguK3guIfguKrguLjguIINCivguJzguKXguLHguJQg4LmA4Lit4Liy4Lis4Liy4LijDQor4Lic4Liq4Liy4LijIOC4quC4uOC4l+C4seC4qOC4meC5jCDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Lic4LmI4Lit4LiHIOC4ouC4uOC4l+C4mOC4suC4o+C4seC4geC4qeC5jA0KK+C4nOC5iOC4reC4h+C4nuC4o+C4o+C4kyDguIjguIfguYTguIrguYLguKINCivguJzguYjguK3guIfguJ7guKPguKPguJMg4Lig4Li04Lii4LmC4Lii4LiU4Li04Lil4LiB4LiK4Lix4LiiDQor4Lic4LmI4Lit4LiH4Lie4Li04LioIOC4qOC4tOC4o+C4tOC4nuC4suC4meC4tOC4ig0KK+C4nOC5iOC4reC4h+C4qOC4o+C4tSDguYDguIjguKLguYDguKrguJnguLLguJnguJnguJfguYwNCivguJzguYjguK3guIfguKjguKPguLUg4LiZ4LiB4LmB4LiB4LmJ4LinDQor4Lic4LmI4Lit4LiH4Lio4Lij4Li1IOC5gOC4nuC4qOC4ouC4meC4suC4p+C4tOC4mQ0KK+C4nOC5iOC4reC4h+C4qOC4o+C4tSDguKfguLTguYDguKjguKnguKrguLjguIINCivguJzguYjguK3guIfguKjguKPguLUg4Lit4Li04LiZ4LiX4Lij4Lil4Liy4Lin4Lix4LiT4Lii4LmMDQor4Lic4LmI4Lit4LiH4LmD4LiqIOC4nuC4suC4q+C4uOC4o+C4seC4leC4meC5jA0KK+C4nOC5iOC4reC4mSDguK3guYjguKfguKHguKfguIfguKnguYwNCivguJzguLHguJkg4Lia4Li44LiN4LiK4Li04LiVDQor4Lic4Liy4LiT4Li04LiVIOC4iOC4seC4meC4l+C4o+C5gOC4l+C4qA0KK+C4nOC4suC4lCDguIHguLPguYDguKvguJnguLTguJTguYHguIHguYnguKcNCivguJzguLLguJnguLTguJUg4LmA4LiI4Lij4Li04LiN4Lie4LiH4Lio4LmM4Lie4Lix4LiS4LiZ4LiwDQor4Lic4Liy4Liq4Li04LiVIOC4q+C4tOC4o+C4seC4jeC4jeC4iuC4suC4leC4tOC4mOC4suC4lOC4sg0KK+C4nOC4suC4quC4uOC4giDguJ7guKPguYnguK3guKHguYDguJ7guKPguLXguKLguIcNCivguJzguLTguJkg4LiB4LmJ4Lit4LiZ4LiX4Lit4LiH4LiU4Li1DQor4Lic4Li04LiZIOC4qOC4o+C4teC4reC4uOC5gOC4l+C4meC4iuC4seC4og0KK+C4nOC4tOC4p+C4nuC4o+C4o+C4kyDguYDguJvguLXguKLguYHguIHguYnguKcNCivguJzguLjguKrguJTguLUg4LmA4LiC4Li14Lii4Lin4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lic4Li44Liq4LiU4Li1IOC5gOC4muC5h+C4jeC4iOC4oeC4tOC4meC4l+C4o+C5jA0KK+C4nOC4uOC4quC4lOC4tSDguKjguKPguLXguKrguLPguKPguLLguI0NCivguJzguLnguIHguIjguLTguJUg4Lit4Li04LiZ4LiX4Lin4LiH4Lio4LmMDQor4LmA4Lic4LiK4Li04LiNIOC4ouC4reC4lOC4ouC4tOC5iOC4hw0KK+C5gOC4nOC4lOC4teC4ouC4hyDguIrguLHguKLguK3guLHguKjguKfguKPguLHguIHguKnguYwNCivguYDguJzguJTguYfguIgg4Lic4Li54LmJ4Lie4Lix4LiS4LiZ4LmMDQor4LmA4Lic4LiU4LmH4LiI4LiK4Lix4LiiIOC4qOC4o+C4teC4quC4uOC4p+C4o+C4o+C4kw0KK+C5gOC4nOC4t+C4reC4lCDguJfguK3guIfguJfguLTguJ7guKLguYwNCivguYDguJzguYjguLLguJ7guIfguKnguYwg4LmD4LiI4LmA4LiI4LiV4LiZ4LiB4Li44Lio4LilDQor4LmB4Lic4LmI4LinIOC5gOC4nuC5h+C4h+C4iuC4sOC4reC4uOC5iOC4oQ0KK+C5hOC4nOC5iOC5gOC4l+C4niDguIHguLTguKHguYDguK7guLXguKLguLANCivguJ3guYnguLLguKIg4Lio4Li04Lij4Li04Lie4Lix4LiZ4LiY4LmMDQor4Lie4LiH4Lie4LiI4LiZ4LmMIOC5gOC4peC4tOC4qOC5gOC4iOC4teC4ouC4oeC4o+C4seC4leC4meC5jA0KK+C4nuC4h+C4qOC4geC4oyDguYDguKrguYfguIfguKrguLPguKPguLLguI0NCivguJ7guIfguKjguYzguIrguLLguKIg4LmA4LiB4Li14Lii4Lij4LiV4Li04LiB4Li04LiV4LiV4Li04Lie4LiH4Lip4LmMDQor4Lie4LiH4Lio4LiY4LijIOC5gOC4peC4tOC4qOC4oOC4ueC4leC4o+C4suC4ig0KK+C4nuC4h+C4qOC5jOC4meC4o+C4tOC4meC4l+C4o+C5jCDguJ7guIfguKnguYzguKrguLTguJkNCivguJ7guIfguKjguYzguJ7guLHguJnguJjguLjguYwg4LmB4Lie4LiX4Lii4LmM4Lie4LiH4Lio4LmMDQor4Lie4LiH4Lio4LmM4Lij4Lix4LiV4LiZ4LmMIOC4o+C4seC4leC4meC4oOC4suC4geC4ow0KK+C4nuC4h+C4qOC5jOC4qOC4seC4geC4lOC4tOC5jCDguYHguIvguYjguYHguJXguYkNCivguJ7guIfguKjguYzguKjguLHguIHguJTguLTguYwg4Lin4Lix4LiS4LiZ4Liy4Lio4Lij4Lih4Lio4Li04Lij4Li0DQor4Lie4LiH4Lio4LmM4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4q+C4oeC4ueC5iOC4nuC4h+C4qOC5jOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4nuC4h+C4qOC4siDguYHguKrguJnguYPguIjguIfguLLguKENCivguJ7guIfguKjguYzguYDguJfguJ4g4Lit4Lix4LiZ4LiV4Liw4Lij4Li04LiB4Liy4LiZ4LiZ4LiX4LmMDQor4Lie4LiH4Lip4LiB4LijIOC4nuC4seC4iuC4o+C5hOC4nuC4qOC4suC4pQ0KK+C4nuC4h+C4qeC5jOC4iuC4seC4oiDguYDguInguKXguLTguKHguIHguKXguLTguYjguJkNCivguJ7guIfguKnguYzguIrguLLguJXguLQg4LiB4Lit4Lir4Liy4LiNDQor4Lie4LiH4Lip4LmM4LiY4LijIOC4quC4uOC4lOC4ouC4reC4lOC4muC4o+C4o+C4nuC4lQ0KK+C4nuC4h+C4qeC5jOC4nuC4seC4kuC4meC5jCDguJjguLXguKPguJvguKPguLDguYDguJfguLfguK3guIfguIHguLjguKUNCivguJ7guIfguKnguYzguJ7guLHguJnguJjguYwg4Lie4Lix4LiZ4LiY4Li44LmM4LmA4Liq4Li34LitDQor4Lie4LiH4Lip4LmM4Lii4Li44LiX4LiYIOC4kyDguJ7guLHguJfguKXguLjguIcNCivguJ7guIfguKnguYzguKjguKPguLUg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lie4LiH4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4hOC4suC4o+C4p+C4quC4tOC4o+C4tOC4mOC4o+C4o+C4oQ0KK+C4nuC4h+C4qeC5jOC4qOC4seC4geC4lOC4tOC5jCDguIrguKHguKDguLnguK3guLTguJnguJXguLINCivguJ7guIfguKnguYzguKjguLHguIHguJTguLTguYwg4LiU4Liz4Lij4LiH4LiK4Lix4Lii4LiZ4Li04Lih4Li04LiV4LijDQor4Lie4LiH4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4mOC4teC4o+C4oOC4suC4nuC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4nuC4h+C4qeC5jOC4qOC4seC4geC4lOC4tOC5jCDguJvguLHguI3guI3guIjguYDguKMNCivguJ7guIfguKnguYzguKjguLHguIHguJTguLTguYwg4LmA4Lie4Li04LmI4Lih4LiX4Lin4Li14Lic4LilDQor4Lie4LiH4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4o+C4reC4muC4o+C4ueC5iQ0KK+C4nuC4h+C4qeC5jOC4qOC4seC4geC4lOC4tOC5jCDguKfguIfguKjguYzguKrguLjguKPguLTguKLguLLguJnguJnguJfguYwNCivguJ7guIfguKnguYzguKjguLHguIHguJTguLTguYwg4Lio4Lij4Li14Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMDQor4Lie4LiH4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4tOC4meC4reC4p+C4og0KK+C4nuC4h+C4qeC5jOC4qOC4seC4geC4lOC4tOC5jCDguYDguKvguKXguYjguLLguYDguKXguLTguKjguIrguLHguKINCivguJ7guIfguKnguYzguKjguLLguJnguJXguYwg4LiE4LmJ4Liz4LiK4Li5DQor4Lie4LiH4Lip4LmM4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4mOC4h+C4qOC4o+C4tQ0KK+C4nuC4h+C4qeC5jOC4quC4tOC4l+C4mOC4tOC5jCDguYDguKfguIrguKrguLTguJfguJjguLTguYwNCivguJ7guIfguKnguYzguYDguIHguLXguKLguKPguJXguLQg4LiK4Lil4Lin4Li04LmE4LilDQor4Lie4LiH4Lip4LmM4LmA4LiX4LieIOC4l+C4seC4nuC4oOC4oeC4suC4mQ0KK+C4nuC4h+C4qeC5jOC5gOC4l+C4niDguKrguLTguJXguKfguLLguJfguLTguJkNCivguJ7guIfguKnguYwg4LiB4Li04LiV4LiV4Li04Lih4LmC4LiZ4Lij4LihDQor4Lie4LiH4Lip4LmMIOC4reC4seC4hOC4o+C4luC4meC4reC4oQ0KK+C4nuC4iOC4meC5jOC4k+C4o+C4h+C4hOC5jCDguKjguKPguLXguJfguLHguKjguJnguLXguKLguYwNCivguJ7guIjguJnguLIg4LmE4LiB4Lij4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LmC4LiK4LiEDQor4Lie4LiI4LiZ4LiyIOC4m+C4tOC4ouC4sOC4p+C4tOC4quC4uOC4l+C4mOC4tOC4geC4uOC4pQ0KK+C4nuC4iOC4meC4siDguKjguLTguKXguLINCivguJ7guIjguJnguLLguJYg4Lio4Li44Lig4LmA4Lio4Lij4Lip4LiQ4LmMDQor4Lie4LiI4LiZ4Liy4Lij4LiWIOC5gOC4reC4geC4jeC4suC4leC4tA0KK+C4nuC4iOC4meC4teC4ouC5jCDguITguLjguJPguJvguIHguKPguJPguYzguIrguLHguKINCivguJ7guIjguJnguLXguKLguYwg4Lib4Liy4LiZ4Lig4Lix4LiB4LiU4Li1DQor4Lie4LiI4LiZ4Li14Lii4LmMIOC4qOC4tOC4o+C4tOC4p+C4seC4kuC4meC5jA0KK+C4nuC4iOC4meC5jCDguYDguIHguLTguJTguJzguKUNCivguJ7guIjguJnguYwg4LiY4Li14Lij4LiE4Li44Lib4LiV4LmMDQor4Lie4LiI4LiZ4LmMIOC4oeC4seC5iOC4meC4geC4seC4meC4meC4suC4mQ0KK+C4nuC4iOC4meC5jCDguYHguKrguIfguJnguLTguKUNCivguJ7guIjguKHguLLguJkg4Lig4Li54LmI4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Lie4LiI4Li14Lij4Lix4LiV4LiZ4LmMIOC4o+C4reC4lOC4o+C4seC4leC4meC4suC4l+C4ueC4pQ0KK+C4nuC4lOC4siDguYDguIjguKPguLTguI3guKfguLHguJLguJnguLLguJnguJnguJfguYwNCivguJ7guJnguKEg4LiK4LmJ4Liy4LiH4Lih4LiT4Li1DQor4Lie4LiZ4LihIOC4m+C4suC4meC4oOC4seC4geC4lOC4tQ0KK+C4nuC4meC4oSDguYDguKPguLfguK3guIfguKjguLTguKXguJvguYwNCivguJ7guJnguKEg4Lir4Lin4Lix4LiH4LiU4Li1DQor4Lie4LiZ4Lih4Lie4LijIOC4meC4tOC5iOC4oeC4reC4h+C4hOC4sw0KK+C4nuC4meC4oeC4p+C4seC4peC4ouC5jCDguIHguLLguI3guIjguJnguJnguLHguKHguJ7guLANCivguJ7guJnguK0g4LiV4Lix4LiZ4LiY4Li04Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMDQor4Lie4LiZ4Lit4LiI4Lix4LiZ4LiX4Lij4LmMIOC4oeC4suC4peC4suC4geC4uOC4pSDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Lie4LiZ4Lix4LiqIOC4ieC4suC4ouC4quC4teC4qOC4tOC4o+C4tA0KK+C4nuC4meC4seC4qiDguKrguLXguKHguLHguJnguJXguKMNCivguJ7guJnguLLguJnguLjguKPguLHguIHguKnguLIg4Lie4LiZ4Liy4LiZ4Li44Lij4Lix4LiB4Lip4LiyDQor4Lie4LiZ4Liy4Lin4Lix4Lil4Lii4LmMIOC5geC4hOC4peC5ieC4p+C5gOC4hOC4o+C4t+C4rQ0KK+C4nuC4meC4tOC4lOC4siDguITguLLguJbguLINCivguJ7guJnguLTguJTguLIg4LmB4LiL4LmI4Lil4Li14LmJDQor4Lie4LiZ4Li04LiU4LiyIOC4meC4suC4hOC4reC5iOC4reC4mQ0KK+C4nuC4meC4tOC4lOC4siDguYDguJ7guITguKLguLLguIfguIHguLnguKMNCivguJ7guJnguLTguJTguLIg4Lin4LiH4Lio4LmM4Lie4Lij4LmJ4Lit4Lih4LmA4LiI4Lij4Li04LiNDQor4Lie4LiZ4Li04LiU4LiyIOC4quC4uOC4guC5guC4nuC4mOC4tOC5jOC5gOC4nuC5h+C4iuC4ow0KK+C4nuC4meC4tOC4lSDguJfguK3guIfguKfguLTguIjguLTguJXguKMNCivguJ7guJnguLTguJnguJjguLIg4LiI4LmJ4Lit4Lii4LiK4Li5DQor4Lie4Lii4LiH4LiE4LmMIOC4iOC4seC4meC4l+C4o+C4seC4h+C4qeC4tQ0KK+C4nuC4ouC4h+C4hOC5jCDguJrguLjguI3guKXguLfguK0NCivguJ7guKLguIfguITguYwg4Liq4Liy4Lij4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lie4Lii4LiZ4LiV4LmMIOC4hOC4uOC5ieC4oeC4o+C4s+C5hOC4ng0KK+C4nuC4ouC4meC4leC5jCDguJ7guLjguJXguKLguJrguLjguJXguKMNCivguJ7guKLguJnguJXguYwg4Lit4Li44LiX4Lii4Liy4LiZ4Liw4LiB4LiwDQor4Lie4Lii4Lit4LihIOC4iOC4seC5iOC4meC4reC4uOC5hOC4ow0KK+C4nuC4ouC4reC4oSDguJfguKfguLXguITguLnguJMNCivguJ7guKLguK3guKEg4Lib4Li54LmI4Lir4Li04LiZDQor4Lie4Lii4Lit4LihIOC4o+C4p+C4oeC4qOC4tOC4peC4m+C5jA0KK+C4nuC4ouC4reC4oSDguKrguJnguJjguLTguJjguKPguKPguKENCivguJ7guKLguK3guKEg4Lit4Li04LiZ4LiX4Lij4LmM4LiB4Li04LmI4LiHDQor4Lie4Lii4Lix4LieIOC4meC4suC4hOC4l+C4seC5iOC4hw0KK+C4nuC4ouC4uOC4hyDguIjguIfguJvguLTguKLguLDguYLguIrguJXguLQNCivguJ7guKLguLjguIcg4LiX4Lix4Lia4LiX4Lit4LiHDQor4Lie4Lii4Li44LiHIOC4n+C4seC4geC5gOC4nuC4iuC4ow0KK+C4nuC4ouC4uOC4hyDguKrguLLguKLguLHguJPguKvguKfguLTguIHguKrguLTguJUNCivguJ7guKLguLjguIfguKjguKPguLUg4LiI4Lix4LiZ4LiX4Lij4LmM4Lio4Lij4Li1DQor4Lie4Lii4Li44LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4uOC4guC4quC4luC4suC4mQ0KK+C4nuC4ouC4ueC4oyDguKPguLHguIHguILguLLguKcNCivguJ7guKMg4LmE4LiV4Lij4Lij4Lix4LiV4LiZ4Lin4LiH4Lio4LmMDQor4Lie4LijIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4nuC4oyDguK3guLHguKjguKfguJ7guLTguJfguKLguLINCivguJ7guKPguIjguLHguJnguJfguKPguYwg4LiK4Lix4Lii4LmA4LiY4Li14Lii4Lij4Liq4Li44LiX4LiY4Liy4LiZ4Lix4LiZDQor4Lie4Lij4LiI4Li04LiV4LiV4LmMIOC4nuC4o+C4q+C4oeC4muC4o+C4o+C4lOC4suC5guC4iuC4hA0KK+C4nuC4o+C4iuC4meC4gSDguKfguKPguLTguJnguJfguKPguYDguKfguIoNCivguJ7guKPguIrguLHguKIg4LiB4Li04LiI4Lin4Lij4Lil4Lix4LiB4Lip4LiT4LmMDQor4Lie4Lij4LiK4Lix4LiiIOC5gOC4guC4oeC5guC4iuC4hOC4meC4l+C4tQ0KK+C4nuC4o+C4iuC4seC4oiDguIjguLHguJnguJfguJrguLLguKUNCivguJ7guKPguIrguLHguKIg4LmA4LiI4Li14LmI4Lii4Liq4Lit4Liy4LiUDQor4Lie4Lij4LiK4Lix4LiiIOC5gOC4iuC4t+C5iOC4reC4h+C4q+C4peC4tOC4pw0KK+C4nuC4o+C4iuC4seC4oiDguYHguIvguYjguYDguIjguLXguYjguKINCivguJ7guKPguIrguLHguKIg4LmA4LiU4LiK4Liy4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMDQor4Lie4Lij4LiK4Lix4LiiIOC5gOC4leC4iuC4sOC4geC4meC4geC4quC4uOC4p+C4o+C4o+C4kw0KK+C4nuC4o+C4iuC4seC4oiDguJfguLjguJXguLTguKLguLLguKDguKPguJPguYwNCivguJ7guKPguIrguLHguKIg4LiZ4Lix4LiZ4LiX4Lin4Li04Lih4LilDQor4Lie4Lij4LiK4Lix4LiiIOC4m+C4o+C4sOC4oOC4suC4geC4o+C4p+C4o+C4geC4uOC4pQ0KK+C4nuC4o+C4iuC4seC4oiDguJ7guKPguJ7guLHguJLguJnguLLguIjguLTguKPguJ7guLHguJnguJjguLQNCivguJ7guKPguIrguLHguKIg4Lie4Li04Lij4Li04Lii4Lin4Li04LiX4LmC4Lii4Lig4Liy4LiqDQor4Lie4Lij4LiK4Lix4LiiIOC4oeC4h+C4hOC4peC4leC4o+C4teC4oeC4suC4qA0KK+C4nuC4o+C4iuC4seC4oiDguKPguLHguJXguJnguYLguIrguJXguLTguJ7guIfguKjguYwNCivguJ7guKPguIrguLHguKIg4Lil4Li14LmJ4LiW4Liy4Lin4LijDQor4Lie4Lij4LiK4Lix4LiiIOC4p+C4meC4suC5guC4o+C4iOC4meC5jA0KK+C4nuC4o+C4iuC4seC4oiDguKfguLXguKPguLDguIHguLTguJXguJXguLQNCivguJ7guKPguIrguLHguKIg4Lio4Li04Lil4Liy4LmC4Lig4LiK4LiZ4LmMDQor4Lie4Lij4LiK4Lix4LiiIOC4quC4tOC4h+C4q+C5jOC4geC4uOC4pQ0KK+C4nuC4o+C4iuC4seC4oiDguKrguLjguKPguLXguKLguYzguIHguKHguKXguIrguLHguKINCivguJ7guKPguIrguLHguKIg4LmA4Lir4Lil4Li34Lit4LiH4LiI4Li04LiV4Lin4Lix4LiS4LiZ4LiyDQor4Lie4Lij4LiK4Lix4LiiIOC4reC4seC4h+C4quC4uOC4o+C4seC4leC4meC5jOC5guC4geC4oeC4pQ0KK+C4nuC4o+C4iuC4seC4oiDguYDguK3guLXguYjguKLguKHguKrguLjguILguKHguIfguITguKUNCivguJ7guKPguJPguKPguIfguITguYwg4Lij4Liw4LiU4Lih4LiX4Lit4LiHDQor4Lie4Lij4LiX4Lin4Li1IOC4reC4mOC4tOC4qOC4tOC4p+C4geC4uOC4pQ0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguIHguLLguI3guIjguJnguKrguLjguJnguJfguKMNCivguJ7guKPguJfguLTguJ7guKLguYwg4LiC4Lix4LiZ4LiX4Lit4LiHDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4iOC4reC4meC5geC4iOC5ieC4hw0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguYDguIjguKPguLTguI3guIHguLTguIjguIrguLHguKLguIrguJnguLANCivguJ7guKPguJfguLTguJ7guKLguYwg4LiK4Li04LiZ4Lij4Lix4LiV4LiZ4LmMDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC5geC4i+C5iOC4peC4teC5iQ0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguYDguJTguIrguLDguJfguLHguKjguJnguYwNCivguJ7guKPguJfguLTguJ7guKLguYwg4LmA4LiV4Lih4Li14Lij4Lix4LiB4Lip4LmMDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4l+C4tOC4nuC4ouC5gOC4quC4oQ0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguJnguLLguITguJrguLjguJXguKMNCivguJ7guKPguJfguLTguJ7guKLguYwg4Lia4Li44LiT4LmC4Lii4LiX4Lii4Liy4LiZDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4nOC4peC4n+C4seC4geC5geC4n+C4hw0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguJ7guLTguJPguJ7guLTguJ7guLHguJPguJnguYwNCivguJ7guKPguJfguLTguJ7guKLguYwg4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4oeC4teC4l+C4o+C4seC4nuC4ouC5jOC4quC4luC4suC4nuC4ow0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguKPguLHguJXguJnguKfguLTguYDguIrguLXguKLguKMNCivguJ7guKPguJfguLTguJ7guKLguYwg4Lil4Li04LiC4Li04LiV4LiK4Li14Lin4LiwDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4p+C4iuC4tOC4o+C4suC4meC4uOC4geC4ueC4pQ0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguKfguLTguYDguKjguKnguJ7guIfguKnguYzguJ7guLHguJnguJjguYwNCivguJ7guKPguJfguLTguJ7guKLguYwg4Lio4Li04Lij4Li04LmA4Lit4Li14LmI4Lii4LihDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4quC4suC4o+C4geC4suC4ow0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguKrguLjguKPguIrguLHguKLguKrguJXguLTguIHguLjguKUNCivguJ7guKPguJfguLTguJ7guKLguYwg4Lir4Lit4Lih4Lil4Lit4LiUDQor4Lie4Lij4LiX4Li04Lie4Lii4LmMIOC4reC4seC4meC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4nuC4ow0KK+C4nuC4o+C4l+C4tOC4nuC4ouC5jCDguK7guKfguJrguJTguLUNCivguJ7guKPguJfguLTguJ7guLIg4Lie4LiT4Li04LiK4Lii4Liy4LiH4LiB4Li54LijDQor4Lie4Lij4LiX4Li04Lig4LiyIOC4l+C4reC4h+C5gOC4guC4teC4ouC4pw0KK+C4nuC4o+C4mOC4tOC4lOC4siDguITguIfguKjguLTguKXguJvguYwNCivguJ7guKPguJnguKDguLIg4Lib4Li04LmI4LiZ4Lij4Lix4LiV4LiZ4LmMDQor4Lie4Lij4LiZ4Li04LiU4LiyIOC4quC4tOC4l+C4mOC4tOC4nuC4o+C4o+C4seC4leC4meC4oeC4k+C4tQ0KK+C4nuC4o+C4meC4uOC4iiDguITguLfguJnguITguIfguJTguLUNCivguJ7guKPguJvguKPguLDguYDguKrguKPguLTguJAg4Liq4Li44Lin4Lij4Lij4LiY4LiZ4Liw4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Lie4Lij4Lie4LiI4LiZ4LmMIOC4m+C5iOC4suC4meC5geC4geC5ieC4pw0KK+C4nuC4o+C4nuC4ouC4hyDguITguLnguKvguYzguKrguLjguKfguKPguKPguJMNCivguJ7guKPguJ7guKPguKPguJMg4LiI4Li04LiK4LiK4Li44LiB4Lij4LiI4Li04Lij4Lig4Lix4LiEDQor4Lie4Lij4Lie4Lij4Lij4LiTIOC4kOC4suC4meC4sOC5gOC4iOC4o+C4tOC4jeC4geC4tOC4iA0KK+C4nuC4o+C4nuC4o+C4o+C4kyDguJjguLXguKPguLDguIrguLLguJXguLQNCivguJ7guKPguJ7guKPguKPguJMg4Lie4Lix4LiK4Lij4Lin4Lix4LiS4LiZ4Lie4LiH4Lio4LmMDQor4Lie4Lij4Lie4Lij4Lij4LiTIOC5gOC4ouC5h+C4meC4peC4s+C4ouC4reC4hw0KK+C4nuC4o+C4nuC4o+C4o+C4kyDguKfguLTguIrguI3guLLguYDguJTguIrguLANCivguJ7guKPguJ7guKPguKPguJMg4Liq4Li44LiZ4Liy4Lie4Lix4LiZ4LiY4LmMDQor4Lie4Lij4Lie4Lij4Lij4LiT4LmMIOC5hOC4l+C4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4o+C4nuC4seC4meC4mOC4uOC5jCDguJvguLTguYjguJnguYLguKHguKPguLINCivguJ7guKPguJ7guLTguJ7guLHguJLguJnguYwg4Liq4Lin4Lix4Liq4LiU4Li04LmM4LmA4Lin4LiX4Li04LiZDQor4Lie4Lij4Lie4Li04Lih4LilIOC4iOC4suC4lOC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4nuC4o+C4nuC4tOC4oeC4pSDguYHguIvguYjguYDguJrguYkNCivguJ7guKPguJ7guLTguKHguKUg4LiY4Li44Lij4Lie4Lix4LiZ4LiY4LmMDQor4Lie4Lij4Lie4Li04Lih4LilIOC4nuC4seC4kuC4meC4suC4ouC4uA0KK+C4nuC4o+C4nuC4tOC4oeC4pSDguKXguK3guK3guIfguKrguLjguJfguJjguLTguYwNCivguJ7guKPguJ7guLTguKHguKUg4Lio4Li04Lil4Lib4Liq4Li34Lia4LmA4LiK4Li34LmJ4LitDQor4Lie4Lij4Lie4Li04Lih4LilIOC5g+C4q+C4oeC5iOC4meC4p+C4pQ0KK+C4nuC4o+C4nuC4tOC4peC4suC4qCDguKjguLjguKDguJnguLLguJnguJnguJfguIrguLHguKINCivguJ7guKPguJ7guLTguKgg4Lit4Liy4Lig4Lij4LiT4LmM4Lio4Li04Lij4Li04Lie4LiH4Lip4LmMDQor4Lie4Lij4Lie4Li54LilIOC4q+C4peC4uOC4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4o+C4oeC4k+C4tSDguYTguIrguKLguJrguLjguJXguKMNCivguJ7guKPguKPguJPguIfguLLguKEg4LiB4Liy4Lie4Lii4LmM4LmB4LiB4LmJ4LinDQor4Lie4Lij4Lij4LiT4LiX4Li04Lie4Lii4LmMIOC4h+C4suC4oeC4peC4sOC5gOC4oeC4teC4ouC4lA0KK+C4nuC4o+C4o+C4k+C4l+C4tOC4nuC4ouC5jCDguYTguKfguJfguKLguLLguJnguJnguJfguYwNCivguJ7guKPguKPguJPguJfguLTguJ7guLIg4Lih4Lij4LiB4LiV4Liq4Li04LiZ4LiY4Li44LmMDQor4Lie4Lij4Lij4LiT4LiZ4Lij4LiyIOC4m+C4suC4meC4k+C4o+C4h+C4hOC5jA0KK+C4nuC4o+C4o+C4k+C4meC4tOC4oOC4siDguK3guLjguJTguKHguIjguKPguKPguKLguLINCivguJ7guKPguKPguJPguJ7guLTguKHguKUg4LmB4LiL4LmI4Liu4Lix4LmI4LiZDQor4Lie4Lij4Lij4LiT4Lii4Li44Lie4LiyIOC4ruC5iOC4reC4quC4geC4uOC4pQ0KK+C4nuC4o+C4o+C4k+C4o+C4s+C5hOC4niDguJTguKfguIfguJTguLUNCivguJ7guKPguKPguJPguKfguJTguLUg4Lit4Lix4Lih4Lie4Li44LiKDQor4Lie4Lij4Lij4LiT4Lit4LijIOC4ieC4seC4meC4l+C5guC4o+C4iOC4meC5jA0KK+C4nuC4o+C4o+C4k+C4tOC4geC4siDguIjguLHguJnguJfguKPguYzguYDguJvguYnguLINCivguJ7guKPguKPguJPguLTguKDguLIg4Liq4Li04LiH4Lir4LmM4LmC4LiV4LmA4Lie4LmH4LiK4LijDQor4Lie4Lij4Lij4LiT4Li1IOC5gOC4geC4tOC4lOC5gOC4m+C4teC5iOC4ouC4oQ0KK+C4nuC4o+C4o+C4k+C4tSDguYLguITguJXguKPguLHguIHguKnguLINCivguJ7guKPguKPguJPguLUg4LiI4Li04Lij4Lin4Lio4Li04LiZDQor4Lie4Lij4Lij4LiT4Li1IOC4iuC4t+C5iOC4meC4reC4uOC5hOC4l+C4og0KK+C4nuC4o+C4o+C4k+C4tSDguYHguIvguYjguYLguITguYnguKcNCivguJ7guKPguKPguJPguLUg4LiV4Liy4LiZ4Liw4Lib4Lij4Liw4LiX4Li14Lib4LiB4Li44LilDQor4Lie4Lij4Lij4LiT4Li1IOC4mOC4meC4oOC4suC4meC4meC4l+C5jA0KK+C4nuC4o+C4o+C4k+C4tSDguJrguLHguKfguIrguLjguYjguKENCivguJ7guKPguKPguJPguLUg4Lib4Li54Lij4LiT4Liy4Lih4Lij4LiwDQor4Lie4Lij4Lij4LiT4Li1IOC4nuC4tOC4oeC4peC5gOC4geC4teC4ouC4o+C4leC4tA0KK+C4nuC4o+C4o+C4k+C4tSDguKHguJPguLXguIrguLLguJXguLQNCivguJ7guKPguKPguJPguLUg4Lij4Lit4LiH4LmC4Liq4Lig4LiyDQor4Lie4Lij4Lij4LiT4Li1IOC4peC4tOC5ieC4oeC4quC4uOC4mOC4suC5guC4oOC4iuC4meC5jA0KK+C4nuC4o+C4o+C4k+C4tSDguKfguLHguJLguJnguLLguKLguLLguIHguKMNCivguJ7guKPguKPguJPguLUg4Lio4Lij4Li14Lit4LiZ4Li44LiK4Liy4LiVDQor4Lie4Lij4Lij4LiT4Li1IOC4quC4seC4meC4m+C5iOC4suC5geC4geC5ieC4pw0KK+C4nuC4o+C4o+C4k+C4tSDguYDguKrguKHguLLguJfguK3guIcNCivguJ7guKPguKPguJPguLUg4Lit4Lig4Li04LiK4Lix4Lii4LiX4Lin4Li14Liq4Li04LiZDQor4Lie4Lij4Lij4LiT4Li1IOC5gOC4reC4geC4quC4tOC4meC5gOC4quC4o+C4tOC4oQ0KK+C4nuC4o+C4o+C4k+C5g+C4iCDguIjguLHguJnguJfguKPguYzguKrguKfguLHguKrguJTguLTguYwNCivguJ7guKPguKPguKnguJ7guKUg4LiV4Lix4LmJ4LiH4Lii4Liw4Lik4LiX4LiY4Li04LmMDQor4Lie4Lij4Lij4Lix4LiK4LiZ4Li1IOC4iOC5ieC4reC4ouC4nuC4uOC4l+C4mA0KK+C4nuC4o+C4pOC4lOC4tSDguKfguIfguKjguYzguKPguLDguKXguLbguIENCivguJ7guKPguKfguLLguKPguLHguJXguJnguYwg4Liq4LiB4Li44Lil4LmC4LiK4LiV4Li04Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Lie4Lij4Lin4Li04LmE4LilIOC5gOC4iOC4o+C4tOC4jeC4iuC4seC4ouC5gOC4nuC4iuC4ow0KK+C4nuC4o+C4qOC4o+C4tSDguIrguKXguLLguKLguJnguJnguLLguKfguLTguJkNCivguJ7guKPguKjguKPguLUg4Lie4Li04Lih4Lie4LiB4Lij4LiT4LmMDQor4Lie4Lij4Lio4Lij4Li1IOC5geC4quC4h+C4ieC4p+C4tQ0KK+C4nuC4o+C4qOC4seC4geC4lOC4tOC5jCDguIjguLPguJvguLLguJfguK3guIcNCivguJ7guKPguKjguLHguIHguJTguLTguYwg4LiX4Lix4Lie4Liq4Li04LiX4LiY4Li04LmMDQor4Lie4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4tOC4l+C4seC4geC4qeC5jOC4meC4o+C4suC4mOC4o+C4o+C4oQ0KK+C4nuC4o+C4qOC4seC4geC4lOC4tOC5jCDguKfguLTguIjguLTguJXguKPguYLguKrguKDguJMNCivguJ7guKPguKjguLHguIHguJTguLTguYwg4LmA4Lir4Lil4LmI4Liy4LiV4Lij4LiH4LiI4Lij4Li04LiHDQor4Lie4Lij4Lio4Li04Lij4Li0IOC4nOC4suC4quC4uOC4guC4geC4suC4meC4meC4l+C5jA0KK+C4nuC4o+C4qOC4uOC4peC4tSDguIjguLHguJnguJfguKPguYzguKjguLTguKPguLTguKjguKPguLUNCivguJ7guKPguKrguKfguKPguKPguITguYwg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4Lie4Lij4Liq4Lin4Lij4Lij4LiE4LmMIOC4qOC4seC4geC4lOC4tOC5jOC4mOC4meC4p+C4seC4kuC4meC5jA0KK+C4nuC4o+C4quC4tOC4l+C4mOC4tOC5jCDguK3guLLguKjguLTguKPguJ7guIfguKjguYzguJ7guLTguKjguLTguKnguJDguYwNCivguJ7guKPguKrguLjguIIg4Lio4Li04Lij4Li04Lin4LiH4Lio4LmMDQor4Lie4Lij4Liq4Li44Lij4Li14Lii4LmMIOC5gOC4nuC4tOC4geC4iOC4ow0KK+C4nuC4o+C4q+C4oeC4nuC4tOC4qCDguJXguLHguYnguIfguYDguKXguLTguKjguKrguLHguKHguJ7guLHguJnguJjguYwNCivguJ7guKPguK3guLPguJ7guLHguJkg4LiK4Lin4Lil4Li04LiV4LiZ4Li04LiY4Li04LiB4Li44LilDQor4Lie4Lij4LmJ4Lit4LihIOC4reC4tOC4meC4l+C4o+C5jOC5guC4lQ0KK+C4nuC4o+C5ieC4reC4oeC4qOC4seC4geC4lOC4tOC5jCDguJMg4Liq4LiH4LiC4Lil4LiyDQor4Lie4Lij4Li04LmJ4LiHIOC5gOC4luC4suC4p+C5jOC5gOC4nuC5h+C4hw0KK+C4nuC4o+C4tOC5ieC4oeC5gOC4nuC4o+C4siDguYLguJnguYnguJXguKjguLTguKPguLQNCivguJ7guKPguYDguJfguJ4g4LiB4LmI4Lit4LmA4Lil4Li04Lio4Lij4Lix4Lio4Lih4Li1DQor4Lie4Lij4LmA4LiX4LieIOC4ieC4seC4leC4o+C4qOC4tOC4peC4m+C5jOC4iuC4seC4og0KK+C4nuC4o+C5gOC4l+C4niDguJXguLTguIfguJ7guLTguJfguLHguIHguKnguYzguKrguIHguLjguKUNCivguJ7guKPguYDguJfguJ4g4Lib4Lij4Liy4LiH4LiE4LmM4LiZ4Lin4Lij4Lix4LiV4LiZ4LmMDQor4Lie4Lij4LmA4LiX4LieIOC4oeC4q+C4seC4mOC4meC4quC4geC4uOC4pQ0KK+C4nuC4o+C5gOC4l+C4niDguKfguKPguIHguLjguKXguJ7guLTguJfguLHguIHguKnguYwNCivguJ7guKPguYDguJfguJ4g4Liq4Li44LiX4LiY4Li04Lie4Li04Lie4Lix4LiS4LiZ4LmM4Lie4LiH4Lio4LmMDQor4Lie4Lij4LmA4LiZ4LiV4LijIOC5geC4ouC5ieC4oeC4h+C4suC4oeC5gOC4q+C4peC4t+C4rQ0KK+C4nuC4o+C5gOC4nuC5h+C4jSDguIrguLPguJnguLLguI3guIHguLTguIjguKfguJnguLTguIoNCivguJ7guKPguYDguJ7guYfguI0g4LiX4Lix4Lia4LiZ4LmJ4Lit4LiiDQor4Lie4Lij4LmA4Lie4LmH4LiNIOC4oeC4q+C4suC4hOC4uOC4k+C5guC4iuC4leC4tA0KK+C4nuC4o+C5gOC4nuC5h+C4jSDguKjguLXguJXguLDguIjguLTguJXguJXguYwNCivguJ7guKPguYDguJ7guYfguI0g4Lit4Li04LiH4Lit4LiZ4Li44Lij4Lix4LiB4Lip4LmM4Liq4LiB4Li44LilDQor4Lie4Lij4LmA4Lil4Li04LioIOC4o+C4seC4geC4quC4tOC4kA0KK+C4nuC4o+C5g+C4iCDguK3guIfguKjguYzguKjguLTguKPguLTguIHguLjguKUNCivguJ7guKTguJLguLTguKfguKPguKPguJMg4Liq4Lih4Lia4Li44LiNDQor4Lie4LilIOC4geC4o+C4sOC4leC5iOC4suC4ouC5guC4nuC4mOC4tOC5jA0KK+C4nuC4pSDguJ7guKXguKPguLHguJXguJnguYwNCivguJ7guKUg4Lit4Liy4LiK4Li14Lin4LiwDQor4Lie4Lil4LiK4Lix4LiiIOC4quC5ieC4oeC5gOC4guC4teC4ouC4p+C4q+C4p+C4suC4mQ0KK+C4nuC4peC4oeC4tOC4leC4oyDguJ7guLnguKXguKrguKfguLHguKrguJTguLTguYwNCivguJ7guKXguKjguKPguLUg4LiZ4Li04Lij4Lix4LiZ4LiU4LijDQor4Lie4Lil4Liq4Li04LiZ4LiY4Li44LmMIOC4guC4peC4tOC4muC5hOC4q+C4oeC4l+C4reC4hw0KK+C4nuC4peC4reC4ouC5hOC4nuC4keC4ueC4o+C4ouC5jCDguIrguLLguJXguLTguJvguKPguLDguYDguKrguKPguLTguJANCivguJ7guKXguLLguIHguKMg4Lir4LmI4Lin4LiH4LiB4Lil4LiI4Lix4LiB4Lij4LmMDQor4Lie4Lil4LmA4LiU4LiKIOC4p+C4o+C4ieC4seC4leC4ow0KK+C4nuC4p+C4hyDguJvguLDguIHguKXguLLguIcNCivguJ7guKfguIfguIrguKHguJnguLLguJYg4LiI4Lij4Li04Lii4Liw4LiI4Li04LiZ4LiU4LiyDQor4Lie4Lin4LiH4LiX4Lit4LiHIOC4muC4uOC4jeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4p+C4h+C4l+C4reC4hyDguKrguKPguLDguKrguKENCivguJ7guKfguIfguJfguLTguJ7guKLguYwg4Lih4Li14Liq4Li44LiCDQor4Lie4Lin4LiH4Lic4LiB4LiyIOC4hOC4h+C4reC4uOC4l+C4seC4ouC4geC4uOC4pQ0KK+C4nuC4p+C4h+C4nuC4ouC4reC4oSDguIfguLLguKHguKXguLHguIHguKnguJPguYwNCivguJ7guKfguIfguJ7guLHguJnguJjguYwg4LiB4Lik4Lip4LiT4LiY4Lij4LiT4Li04LioDQor4Lie4Lin4LiH4Lij4Lix4LiV4LiZ4LmMIOC4luC4suC4p+C4o+C4o+C4seC4leC4meC5jA0KK+C4nuC4p+C4h+C4p+C4tOC5hOC4pSDguIjguLHguJnguJfguKfguIfguKjguYwNCivguJ7guKfguIfguYDguJ7guIrguKMg4LiK4Lix4Lii4LiB4Li44LilDQor4Lie4Lin4LiH4LmA4Lie4LiK4LijIOC4reC4tOC4meC4leC5iuC4sOC4p+C4h+C4hOC5jA0KK+C4nuC4p+C4h+C5gOC4nuC5h+C4jSDguIjguLHguYjguJnguYDguJ7guYfguIrguKMNCivguJ7guKfguIfguYDguJ7guYfguI0g4Lin4Li04Lia4Li54Lil4Lii4LmM4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lie4Lin4LiH4LmB4LiB4LmJ4LinIOC4nuC4tOC4oeC4nuC4quC4uOC4lQ0KK+C4nuC4quC4tOC4qeC4kOC5jCDguJXguLjguKPguIfguITguYzguKrguKHguJrguLnguKPguJPguYwNCivguJ7guK3guJTguLUg4LiK4Lix4Lii4LmA4Lin4Lis4Li4DQor4Lie4Lit4LilIOC4o+C4ueC4lOC4reC4peC5jOC4nw0KK+C4nuC4sOC4iOC4uOC4k+C4k+C5jCDguJXguLLguKHguJvguKPguLDguJfguLXguJsNCivguJ7guLDguYDguKLguLLguKfguYwg4LmC4LiJ4Lih4LiH4Liy4LihDQor4Lie4Liw4LmA4Lii4Liy4Lin4LmMIOC4oeC4suC4peC4suC5gOC4p+C4ig0KK+C4nuC4sOC5gOC4ouC4teC4oiDguYHguIjguYjguKHguIHguKPguLDguIjguYjguLLguIcNCivguJ7guLHguIHguJXguKPguYzguKjguLTguKPguLQg4LiK4Li54Lin4Liy4LiZ4LiZ4LiX4LmMDQor4Lie4Lix4LiK4LiT4Li1IOC4iuC4seC5ieC4meC4nuC4o+C4oOC4seC4geC4lOC4tQ0KK+C4nuC4seC4iuC4meC4tSDguITguLjguJPguYHguJ4NCivguJ7guLHguIrguJnguLUg4LiZ4Liy4LiW4Lib4Lij4Liw4LiK4LiyDQor4Lie4Lix4LiK4LiZ4Li1IOC4p+C4tOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4nuC4seC4iuC4meC4teC4ouC5jCDguJrguLjguI3guIHguKPguJPguYwNCivguJ7guLHguIrguKPguIrguLHguKIg4LiB4Li44Lil4Lir4Lit4Lih4LmA4LiZ4Li14Lii4LihDQor4Lie4Lix4LiK4Lij4Lix4LiV4LiZ4LmMIOC5geC4i+C5iOC5guC4q+C4peC5iA0KK+C4nuC4seC4iuC4o+C4siDguIjguLTguJXguJXguKDguLHguJfguKPguYLguKPguIjguJnguYwNCivguJ7guLHguIrguKPguLIg4LmB4LiV4LiH4LiZ4Liy4LiEDQor4Lie4Lix4LiK4Lij4LiyIOC4m+C4suC4meC5gOC4quC4oeC4qOC4o+C4tQ0KK+C4nuC4seC4iuC4o+C4siDguKHguLXguJfguKPguLHguJ7guKLguYwNCivguJ7guLHguIrguKPguLIg4Lio4Li04Lin4Li04Lil4Lix4LiiDQor4Lie4Lix4LiK4Lij4LiyIOC4reC4tOC4h+C4reC4o+C4p+C4tOC4iOC4tOC4leC4ow0KK+C4nuC4seC4iuC4o+C4suC4oOC4o+C4k+C5jCDguIrguYjguLLguIfguIrguLjguJoNCivguJ7guLHguIrguKPguLLguKDguKPguJPguYwg4Lin4LiH4Lio4LmM4Lih4Lix4LmI4LiZ4LiB4LiV4Lix4LiN4LiN4Li5DQor4Lie4Lix4LiK4Lij4Liy4Lin4LiU4Li1IOC5geC4nuC4o+C4seC4leC4geC4uOC4pQ0KK+C4nuC4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguIHguLLguKPguJrguKPguLTguKrguLjguJfguJjguLTguYwNCivguJ7guLHguIrguKPguLTguJnguJfguKPguYwg4LiI4Lix4LiZ4LiX4Lij4Li04LiBDQor4Lie4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC5geC4i+C5iOC4iOC4tOC4pw0KK+C4nuC4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguYLguJXguYrguLDguKfguJnguLTguIrguKPguLHguIHguKnguLINCivguJ7guLHguIrguKPguLTguJnguJfguKPguYwg4Lib4Lij4Li14LiU4Li14Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Lie4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC5guC4nuC4mOC4tOC5jOC4reC5iOC4reC4mQ0KK+C4nuC4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguKPguLLguKvguLjguKXguJvguLLguJkNCivguJ7guLHguIrguKPguLTguJnguJfguKPguYwg4Lio4Lij4Li14LiK4Liw4Lia4LiyDQor4Lie4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC4quC4uOC4lOC5g+C4iA0KK+C4nuC4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguK3guLHguKjguKfguJnguLTguIENCivguJ7guLHguIrguKPguLUg4LmA4LiB4LiV4Li44Lir4Lit4LihDQor4Lie4Lix4LiK4Lij4Li1IOC4iOC4seC4meC4l+C4o+C4lOC4suC4p+C4seC4peC4ouC5jA0KK+C4nuC4seC4iuC4o+C4tSDguIrguLnguIjguLTguKPguKfguIfguKjguYwNCivguJ7guLHguIrguKPguLUg4LiV4Lix4LmJ4LiH4LiV4Lij4Liw4LiB4Li54LilDQor4Lie4Lix4LiK4Lij4Li1IOC4meC4o+C4quC4tOC4h+C4q+C5jA0KK+C4nuC4seC4iuC4o+C4tSDguJvguKPguLTguJvguLjguKPguJPguLANCivguJ7guLHguIrguKPguLUg4Lie4Lix4LiZ4LiY4Li44Lih4LiI4Li04LiZ4LiU4LiyDQor4Lie4Lix4LiK4Lij4Li1IOC4oeC4suC4geC4geC4o+C4seC4lA0KK+C4nuC4seC4iuC4o+C4tSDguKXguLTguKHguJvguKDguLLguJ7guLHguJnguJjguLjguYwNCivguJ7guLHguIrguKPguLUg4Lio4Lij4Li14LiB4Lij4Liw4LiI4Liy4LiiDQor4Lie4Lix4LiK4Lij4Li1IOC4quC4p+C5iOC4suC4h+C4nuC4seC4meC4mOC4uOC5jA0KK+C4nuC4seC4iuC4o+C4tSDguKrguLjguKfguJ7guKPguKjguLTguKXguJvguYwNCivguJ7guLHguIrguKPguLUg4Lit4Lij4Lix4LiN4LiX4Lij4Lin4Liy4LiZ4Li04LiKDQor4Lie4Lix4LiK4Lij4Li14Lie4LijIOC4quC4uOC4guC5guC4quC4oeC4meC4seC4qg0KK+C4nuC4seC4iuC4o+C4teC4ouC5jCDguKrguKHguYDguIjguKPguLTguI0NCivguJ7guLHguJLguJPguLUg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lie4Lix4LiS4LiZ4Lie4LiH4Lio4LmMIOC4quC4uOC4guC5guC4geC4qeC4sg0KK+C4nuC4seC4kuC4meC4p+C4h+C4qeC5jCDguKfguLLguJnguLTguIoNCivguJ7guLHguJLguJnguLDguIrguLHguKIg4LmD4Liq4Liq4Lin4LmI4Liy4LiH4Lie4Lix4LiZ4LiY4LmMDQor4Lie4Lix4LiS4LiZ4LiyIOC4l+C4tOC4oeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4nuC4seC4kuC4meC4siDguKHguLXguKjguLjguIINCivguJ7guLHguJLguJnguLIg4Liq4Li44Lih4Liy4Lil4Li1DQor4Lie4Lix4LiS4LiZ4Li1IOC4muC4uOC4jeC4l+C4p+C4tQ0KK+C4nuC4seC4kuC4meC5jCDguJ7guKXguKDguLHguJfguKPguJ7guLTguIjguLLguKPguJPguYwNCivguJ7guLHguJQg4LmC4Lie4LiY4Li04LmM4Liq4Lij4Liw4LiE4Li5DQor4Lie4Lix4LiX4LiY4Lii4LiyIOC4meC4tOC4o+C4sOC4oeC4pQ0KK+C4nuC4seC4l+C4ouC4siDguJ7guLTguKHguJ7guYzguKrguLDguK3guLLguJQNCivguJ7guLHguJkg4Lic4Lil4LmA4LiI4Lij4Li04LiNDQor4Lie4Lix4LiZ4LiX4Li04Lie4LiyIOC4iOC4seC4meC4l+C4o+C4p+C4o+C4o+C4k+C4sA0KK+C4nuC4seC4meC4l+C4tOC4nuC4siDguKrguLjguILguJvguKPguLDguYTguJ7guJ7guLHguJLguJnguYwNCivguJ7guLHguJnguJjguYzguJfguLTguJ7guKLguYwg4LmA4LiZ4LiV4Lij4Lij4Lix4LiH4Lip4Li1DQor4Lie4Lix4LiZ4LiY4Lin4Li04LiX4LiY4Li04LmMIOC5g+C4iOC4i+C4t+C5iOC4reC4geC4uOC4pQ0KK+C4nuC4seC4meC4mOC5jOC4qOC4seC4geC4lOC4tOC5jCDguYDguKLguYfguJnguKrguIHguLjguKXguKrguLjguIINCivguJ7guLHguJnguJjguLTguKDguLIg4Lic4Lil4Lig4Liy4Lip4Li1DQor4Lie4Lix4LiZ4LiY4Li44LmM4LiX4Li04Lie4Lii4LmMIOC4quC4suC4ouC4quC4uOC4meC4l+C4ow0KK+C4nuC4seC4meC4mOC4uOC5jOC4qOC4seC4geC4lOC4tOC5jCDguKrguKPguYnguK3guKLguITguLMNCivguJ7guLHguJnguJjguYzguYDguJfguJ4g4Lih4Liy4LiZ4Liw4LmA4LiB4Li14Lii4Lij4LiV4Li04LiV4Lij4Liw4LiB4Li54LilDQor4Lie4Lix4LiZ4Lib4Li1IOC4o+C4seC4leC4meC4m+C4o+C4sOC4oOC4sg0KK+C4nuC4seC4meC5gOC4oOC4siDguKHguLTguJnguYLguJQNCivguJ7guLHguKXguKXguKAg4LiY4LiZ4Liw4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lie4Lix4Lil4Lil4LigIOC4quC4p+C4meC5hOC4nuC4o+C4tOC4meC4l+C4o+C5jA0KK+C4nuC4seC4pyDguJTguLXguJvguKPguLDguYDguKrguKPguLTguJANCivguJ7guLIg4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4LiX4Li14LmI4Lii4LiHDQor4Lie4Liy4LiT4Li04LiKIOC4oOC4seC4geC4leC4o+C5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4suC4k+C4tSDguJrguLPguYDguJ7guYfguI3guJrguLjguJPguKLguYwNCivguJ7guLLguJPguLUg4Liq4Li44LiC4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lie4Liy4LiZ4Li04LiKIOC4iOC4tOC4leC4o+C5geC4iOC5ieC4hw0KK+C4nuC4suC4meC4tOC4lSDguKjguKPguLXguKrguLjguIHguYPguKoNCivguJ7guLLguKLguLHguJ4g4LmA4LiK4Li34LmJ4Lit4Liq4Li44Lin4Lij4Lij4LiTDQor4Lie4Liy4Lij4LiyIOC5gOC4reC4teC5iOC4ouC4oeC4oeC4sOC5guC4meC4iuC4jeC5jA0KK+C4nuC4suC4quC4uOC4giDguJXguLHguYnguIfguJXguKPguLHguKrguJjguKPguKPguKENCivguJ7guLTguIHguLjguKUg4LmA4LiI4Lij4Li04LiN4Lin4Lix4LiiDQor4Lie4Li04LiB4Li44LilIOC4meC5ieC4reC4ouC4nOC4suC4hw0KK+C4nuC4tOC4geC4uOC4pSDguKHguYLguJnguKDguLTguI3guYLguI3guKDguLTguI3guI3guLANCivguJ7guLTguIHguLjguKUg4Liq4Liy4Lij4LiwDQor4Lie4Li04LiH4LiE4LmM4Lio4Li04Lij4Li0IOC4quC4uOC4meC4l+C4o+C4iuC4suC4leC4tA0KK+C4nuC4tOC4iOC4tOC4leC4oyDguYDguIjguKPguLTguI3guJfguKPguLHguJ7guKLguYwNCivguJ7guLTguIjguLTguJXguKPguLIg4LiK4LiH4Lix4LiUDQor4Lie4Li04LiK4LiN4LmM4LiZ4Lij4Li1IOC4quC4seC4meC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4nuC4tOC4iuC4jeC4suC4k+C4tSDguYDguKXguK3guYDguKXguLTguKjguIHguLjguKUNCivguJ7guLTguIrguLHguKIg4LiB4Lik4Lip4LiO4Liy4Lie4Li04Lie4Lix4LiS4LiZ4LmMDQor4Lie4Li04LiK4Lix4LiiIOC5gOC4guC4oeC4l+C5guC4o+C4meC4meC4l+C5jA0KK+C4nuC4tOC4iuC4seC4oiDguIjguLPguJvguLLguIfguLLguKENCivguJ7guLTguIrguLHguKIg4LiK4Lii4Liq4LiU4Lih4Lig4LmMDQor4Lie4Li04LiK4Lix4LiiIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4nuC4tOC4iuC4seC4oiDguJXguLHguJnguJXguLTguJnguKfguLDguIrguLHguKINCivguJ7guLTguIrguLHguKIg4LmB4LiX4LiZ4Lib4Lij4Liw4Lii4Li54LijDQor4Lie4Li04LiK4Lix4LiiIOC4muC4seC4p+C4oeC4suC4qA0KK+C4nuC4tOC4iuC4seC4oiDguYDguJvguKPguKHguJfguK3guIcNCivguJ7guLTguIrguLHguKIg4Lie4Li04Lij4Li04Lii4Liw4LmA4Liq4LiW4Li14Lii4Lij4LiB4Li44LilDQor4Lie4Li04LiK4Lix4LiiIOC4oeC4tOC5iOC4meC4quC4uOC4gg0KK+C4nuC4tOC4iuC4seC4oiDguKPguLjguYnguIfguJfguLLguJrguJnguKDguLINCivguJ7guLTguIrguLHguKIg4Lin4LiH4Lio4LmM4LiB4Li44Lio4Lil4Liq4Li04Lij4Li0DQor4Lie4Li04LiK4Lix4LiiIOC4p+C4uOC4kuC4tOC4iOC4s+C4meC4h+C4hOC5jA0KK+C4nuC4tOC4iuC4seC4oiDguKrguJbguLLguKfguKPguKHguJPguLUNCivguJ7guLTguIrguLHguKIg4Liq4Li44LiZ4LiX4Lij4Lit4Liz4Lie4LilDQor4Lie4Li04LiK4Lix4LiiIOC4q+C4suC4jeC4k+C4o+C4h+C4hOC5jOC4pOC4l+C4mOC4tOC5jA0KK+C4nuC4tOC4iuC4seC4oiDguK3guLTguJnguJfguKPguJ7guLTguJ7guLHguJLguJnguYwNCivguJ7guLTguIrguLIg4Lin4Lix4LiS4LiZ4Liw4LiY4Liy4Lij4Li1DQor4Lie4Li04LiK4Li04LiVIOC4geC4o+C4suC4meC5gOC4peC4tOC4qA0KK+C4nuC4tOC4iuC4tOC4lSDguIjguLjguKXguKTguIHguKnguYwNCivguJ7guLTguIrguLTguJUg4LiV4Lix4LmJ4LiH4Liq4Lir4LmE4Lih4LiV4Lij4Li1DQor4Lie4Li04LiK4Li04LiVIOC4muC4uOC4k+C4ouC5gOC4quC4meC4sg0KK+C4nuC4tOC4iuC4tOC4lSDguKDguLHguIHguJTguLTguYzguYHguIjguYjguKHguYPguKoNCivguJ7guLTguIrguLTguJUg4Lin4Lix4LiK4Lij4Liy4LiU4Li04Lil4LiB4LiB4Li44LilDQor4Lie4Li04LiK4Li04LiVIOC4quC4tOC4o+C4tOC4p+C4uOC4kuC4tOC4iOC4o+C4uOC4h+C4iOC4tOC4leC4leC4tOC5jA0KK+C4nuC4tOC4iuC4tOC4lSDguYDguK3guLXguYjguKLguKHguKXguLDguK3guK0NCivguJ7guLTguJHguLnguKPguKLguYwg4LiV4Lix4LiZ4LiV4Li04Lit4Lih4Lij4Lie4LiH4Lip4LmMDQor4Lie4Li04LiT4LiX4Li04Lie4Lii4LmMIOC4muC4o+C4tOC4muC4ueC4o+C4k+C5jOC4quC4uOC4gg0KK+C4nuC4tOC4k+C4quC4o+C4p+C4hyDguKfguIfguKjguYzguKfguLTguKXguLHguKINCivguJ7guLTguJfguKLguLIg4LiE4Li44LiT4Liy4Lin4Li04Lij4Li04Lii4Liw4Liq4Li04Lij4Li0DQor4Lie4Li04LiX4Lii4LiyIOC4meC4uOC4iuC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4tOC4l+C4ouC4siDguYHguKLguYnguKHguKjguKPguKfguKUNCivguJ7guLTguJfguKLguLIg4Liq4Li44LiC4LmD4LiI4LmA4LiI4Lij4Li04LiN4LmA4Lin4LiKDQor4Lie4Li04LiX4Lii4LmMIOC5gOC4qOC4o+C4qeC4kOC4nuC4tOC4l+C4ouC4suC4geC4uOC4pQ0KK+C4nuC4tOC4l+C4seC4geC4qeC5jCDguIjguLHguJnguJfguKPguYzguKvguK3guKENCivguJ7guLTguJfguLHguIHguKnguYwg4LiV4Lix4LmJ4LiH4LiK4Li54LiX4Lin4Li14LiX4Lij4Lix4Lie4Lii4LmMDQor4Lie4Li04LiX4Lix4LiB4Lip4LmMIOC4m+C4o+C4suC4lOC5gOC4m+C4o+C4t+C5iOC4reC4h+C5gOC4p+C4l+C4ouC5jA0KK+C4nuC4tOC4l+C4seC4geC4qeC5jCDguYDguKHguIbguKrguIHguLjguKXguKPguLHguJXguJnguYwNCivguJ7guLTguJfguLHguIHguKnguYwg4Lio4Lij4Li14LiV4Liw4Lin4Lix4LiZDQor4Lie4Li04LiX4Lix4LiB4Lip4LmMIOC4q+C4p+C4seC4h+C4qOC4tOC4o+C4tOC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4nuC4tOC4mOC4suC4mSDguITguLjguJPguJ7guKPguKjguKPguLXguKDguLTguKPguKHguKLguYwNCivguJ7guLTguJkg4Liq4Lih4Liy4LiY4Li0DQor4Lie4Li04LiZ4Lix4LiiIOC4iOC4h+C4qOC4tOC4o+C4tOC4o+C4seC4geC4qeC5jA0KK+C4nuC4tOC4meC4tOC4iCDguIHguLLguJnguJXguLTguIHguLjguKUNCivguJ7guLTguJnguLTguIgg4LmA4LiI4Lij4Li04LiN4Lin4Li04Lin4Lix4LiS4LiZ4LiB4Li44LilDQor4Lie4Li04LiZ4Li04LiIIOC4leC4o+C4tOC4geC4suC4o+C4iuC4reC4mg0KK+C4nuC4tOC4meC4tOC4iCDguJrguLjguI3guKfguLTguYDguKjguKkNCivguJ7guLTguJnguLTguIgg4Lig4LiE4Liq4LiB4Li44LilDQor4Lie4Li04LiZ4Li04LiIIOC4p+C5iOC4reC4h+C5gOC4oeC4l+C4tOC4meC4tQ0KK+C4nuC4tOC4meC4tOC4iCDguKrguLjguJnguLLguIHguKMNCivguJ7guLTguJnguLTguIjguYDguKrguJnguLLguIHguLLguKMg4Lie4LitIOC4nuC4o+C4sA0KK+C4nuC4tOC4meC4tOC4leC4qOC4seC4geC4lOC4tOC5jCDguK3guYjguK3guIfguIjguKPguLnguI0NCivguJ7guLTguJrguLnguKUg4Lit4Li04LiZ4LiX4Lij4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lie4Li04Lia4Li54Lil4Lii4LmMIOC5hOC4l+C4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4tOC4muC4ueC4peC4ouC5jCDguKfguLTguYDguIrguLXguKLguKPguKfguKPguKPguJMNCivguJ7guLTguJ7guLHguJLguJnguJ7guIfguKnguYwg4Lij4Lix4LiB4Lii4Li44LiV4Li04LiY4Lij4Lij4LihDQor4Lie4Li04Lie4Lix4LiS4LiZ4LmMIOC4iOC4h+C5gOC4iOC4o+C4tOC4jeC4geC4oeC4pQ0KK+C4nuC4tOC4nuC4seC4kuC4meC5jCDguYDguIrguLXguYjguKLguKfguKvguLHguJXguJbguYzguJ7guIfguKnguYwNCivguJ7guLTguJ7guLHguJLguJnguYwg4LiX4Lit4LiH4Lio4Lij4Li14LiZ4Liy4LiEDQor4Lie4Li04Lie4Lix4LiS4LiZ4LmMIOC4m+C4peC4t+C5ieC4oeC5gOC4iOC4o+C4tOC4jQ0KK+C4nuC4tOC4nuC4seC4kuC4meC5jCDguJ7guLTguIrguLTguJXguJnguKDguLLguIHguLjguKUNCivguJ7guLTguJ7guLHguJLguJnguYwg4Lij4Lin4Lii4LmB4LiX4LmJDQor4Lie4Li04Lie4Lix4LiS4LiZ4LmMIOC4p+C4h+C4qOC4suC5guC4o+C4iOC4meC5jA0KK+C4nuC4tOC4nuC4seC4kuC4meC5jCDguKjguLjguKDguKrguLTguIfguKvguYzguKjguLTguKPguLTguJvguKPguLXguIrguLINCivguJ7guLTguJ7guLHguJLguJnguYwg4Lir4LiX4Lix4Lii4Lin4Liq4Li14Lin4LiH4Lio4LmMDQor4Lie4Li04Lie4Lix4LiS4LiZ4LmMIOC5guC4reC4oeC4nuC4o+C4meC4uOC4p+C4seC4kuC4meC5jA0KK+C4nuC4tOC4oOC4niDguIjguLHguJnguJfguKPguYLguKrguKDguLLguITguKLguYwNCivguJ7guLTguKDguJ4g4LmA4Lil4Liy4LiE4LizDQor4Lie4Li04Lig4Liy4LiU4LiyIOC5gOC4iOC4o+C4tOC4jeC4iOC4seC4meC4l+C4o+C5jA0KK+C4nuC4tOC4oeC4nuC5jOC4geC4suC4jeC4iOC4meC5jCDguKvguKXguYjguK3guKjguLTguKPguLTguYTguJ7guJrguLnguKXguKLguYwNCivguJ7guLTguKHguJ7guYzguJvguKPguLDguYTguJ4g4Lia4Li44LiT4Lii4Liw4Lib4Lij4Liw4Lig4Li54LiV4Li0DQor4Lie4Li04Lih4Lie4LmM4Lie4LijIOC4oeC4k+C4teC4o+C4seC4leC4meC5jA0KK+C4nuC4tOC4oeC4nuC5jOC4nuC4siDguJfguLTguJ7guKfguLHguKXguKLguYwNCivguJ7guLTguKHguJ7guKMg4Lie4Li04Lih4LmA4Lig4Liy4Lin4LmMDQor4Lie4Li04Lih4Lie4Lij4Lij4LiTIOC5gOC4m+C4o+C4oeC4mOC4suC4lOC4sg0KK+C4nuC4tOC4oeC4nuC5jOC4p+C4seC4peC4ouC5jCDguKrguLjguKfguKPguKPguJPguJvguKPguLDguIHguKMNCivguJ7guLTguKHguJ7guLIg4LiH4Liy4Lih4LmA4LiH4Li04LiZDQor4Lie4Li04Lih4Lie4LiyIOC4nuC4h+C4qOC4geC4o+C4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jA0KK+C4nuC4tOC4oeC4nuC4siDguKvguJnguLnguYHguIHguYnguKcNCivguJ7guLTguKHguJ7guLTguKgg4Lin4Li44LiS4Li04LiY4Lij4Lij4Lih4Liy4Lig4Lij4LiT4LmMDQor4Lie4Li04Lih4Lie4LmM4LmD4LiIIOC4meC4s+C4quC4uOC4p+C4tOC4oeC4peC4geC4ueC4pQ0KK+C4nuC4tOC4oeC4nuC5jOC5g+C4iCDguKvguK3guKHguIjguLHguJnguJfguKPguYwNCivguJ7guLTguKHguJ7guYwg4Lin4LiH4Lip4LmM4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lie4Li04Lih4LilIOC5gOC4iOC4o+C4tOC4jeC4ouC4tOC5iOC4hw0KK+C4nuC4tOC4oeC4pSDguJvguLXguJXguLTguKLguLINCivguJ7guLTguKHguKUg4Lin4Li14Lij4Lin4Lix4LiS4LiZ4LmM4Lie4LiH4Lio4LmMDQor4Lie4Li04Lih4Lil4Lie4LijIOC4oeC4q+C4seC4mOC4meC4suC4geC4ow0KK+C4nuC4tOC4oeC4peC4nuC4o+C4o+C4kyDguYDguKvguKXguLXguYjguKLguKHguKHguLjguIHguJTguLINCivguJ7guLTguKHguKXguKPguLHguJXguJnguYwg4Lit4Lix4LiH4LiB4Li54Lij4Liq4Li04LiX4LiY4Li04LmMDQor4Lie4Li04Lih4Liy4LiZ4Lih4Liy4LioIOC4quC4luC4tOC4leC4ouC5jOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4nuC4tOC4o+C4ouC4uOC4l+C4mCDguYLguJfguKrguLnguIfguYDguJnguLTguJkNCivguJ7guLTguKPguLTguKLguLAg4LiB4Li04LmI4LiH4LiC4LiI4Li1DQor4Lie4Li04Lij4Li44LiTIOC5gOC4iOC4o+C4tOC4jeC4geC4uOC4pQ0KK+C4nuC4tOC4o+C4uOC4k+C4o+C4seC4leC4meC5jCDguKrguLjguIfguKrguLjguKfguKPguKPguJMNCivguJ7guLTguKfguLHguJLguJnguYwg4Lin4Li04Lig4Liy4Lin4Li14Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Lie4Li04Lio4LiT4Li4IOC5gOC4iOC4o+C4tOC4jeC4meC4uOC4geC4ueC4pQ0KK+C4nuC4tOC4qOC4oeC4oyDguJbguLTguKPguIjguLTguJXguJXguYzguKrguLTguKPguLQNCivguJ7guLTguKjguKHguLHguKIg4LmA4LiE4Li14Lii4LiH4Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMDQor4Lie4Li04Lio4Lih4Lix4LiiIOC5hOC4iuC4ouC4p+C4seC4kuC4meC5jA0KK+C4nuC4tOC4qOC4oeC4seC4oiDguJnguJ7guKPguLHguJXguJnguYzguJrguLHguI3guJHguLTguJUNCivguJ7guLTguKjguKHguLHguKIg4Lie4Lix4LiS4LiZ4LiyDQor4Lie4Li04Lio4Lih4Lix4LiiIOC5gOC4peC4suC4q+C5jOC4q+C4tOC4o+C4seC4jeC4jeC4suC4geC4uOC4pQ0KK+C4nuC4tOC4qOC4oeC4seC4oiDguKrguLTguKPguLTguIrguLnguJXguLTguKfguIfguKjguYwNCivguJ7guLTguKjguKHguLHguKIg4Lit4Li04LiZ4LiX4Lij4LmM4Lij4LiI4LiZ4LiyDQor4Lie4Li04Lio4Lin4LiHIOC4oeC4teC4quC4uOC4p+C4o+C4o+C4kw0KK+C4nuC4tOC4qOC4quC4oeC4seC4oiDguYDguK3guIHguK3guLjguYjguJkNCivguJ7guLTguKjguLLguKUg4LiJ4Liy4Lii4Liy4LiB4LilDQor4Lie4Li04Lio4Liy4LilIOC4oeC5guC4meC4peC4teC4q+C4geC4uOC4pQ0KK+C4nuC4tOC4qOC4suC4pSDguYLguK7guJXguKPguLDguIHguLnguKUNCivguJ7guLTguKjguLTguKnguJAg4Lit4Lix4LiB4Lip4Lij4Lie4Lix4LiZ4LiY4LmMDQor4Lie4Li04Lio4Li04Lip4LiQ4LmMIOC4l+C4reC4h+C4oeC4seC5iOC4meC4hOC4hw0KK+C4nuC4tOC4qOC4tOC4qeC4kOC5jCDguKPguIfguITguKfguLTguKXguLTguJUNCivguJ7guLTguKjguLTguKnguJDguYwg4LmA4Lit4LiB4Lib4Lix4LiN4LiN4Liy4LiB4Li44LilDQor4Lie4Li04Lio4LmA4Liq4LiZ4LmI4Lir4LmMIOC4meC4tOC5iOC4oeC4meC4p+C4pQ0KK+C4nuC4tOC4qeC4k+C4uCDguYTguJXguKPguJvguLTguYjguJnguYDguJ7guYfguIrguKMNCivguJ7guLTguKnguJPguLgg4Lih4Liy4Lil4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Lie4Li04Lip4LiT4Li4IOC5geC4quC4h+C4quC4suC4hOC4ow0KK+C4nuC4tOC4quC4meC4mOC4tOC5jCDguKjguKPguLXguKDguLHguJfguKPguYLguIrguJXguLQNCivguJ7guLTguKrguKHguLHguKIg4LiZ4Li44LiY4Li04Lij4LiH4LiE4LmMDQor4Lie4Li04Liq4Lih4Lix4LiiIOC4q+C4peC5ieC4suC4peC5ieC4sw0KK+C4nuC4tOC4quC4seC4meC4leC5jCDguYLguK3guKrguLjguKfguKPguKPguJMNCivguJ7guLTguKrguLTguI/guJAg4Lit4Lix4Lio4Lin4LmA4Lie4LiK4Lij4Lik4LiB4Lip4LmMDQor4Lie4Li04Liq4Li04LiQIOC4iOC4seC4meC4l+C4o+C5jOC4iOC4tOC4o+C4teC4ouC5jA0KK+C4nuC4tOC4quC4tOC4kCDguJ7guKPguKfguLHguJLguJnguKHguIfguITguKUNCivguJ7guLTguKrguLTguJAg4Liq4Lij4LmJ4Liy4LiH4LiU4Li1DQor4Lie4Li04Liq4Li04LiX4LiY4Li04LmMIOC4iuC4seC4ouC4oeC4h+C4hOC4pQ0KK+C4nuC4tOC4quC4tOC4l+C4mOC4tOC5jCDguKfguLjguJLguLTguKfguIfguKjguYzguKfguLHguJLguJnguLINCivguJ7guLTguKrguLTguKnguJDguYwg4LiB4Lih4Lil4Lin4Liy4Lij4Li04LiZ4LiX4Lij4LmMDQor4Lie4Li04Liq4Li04Lip4LiQ4LmMIOC4nuC4tOC4o+C4tOC4ouC4sOC5gOC4muC4jeC4iOC4p+C4seC4kuC4meC5jA0KK+C4nuC4tOC4quC4uOC4l+C4mOC4tOC5jCDguYHguIHguYnguKfguK3guLPguYTguJ4NCivguJ7guLTguKrguLjguJfguJjguLTguYwg4Lio4Li44Lig4Lie4LijDQor4Lie4Li04LmA4LiK4LiO4Lij4LmMIOC4muC4uOC4jeC4oeC4sg0KK+C4nuC4tOC5gOC4iuC4kCDguJXguLTguKLguLDguJ7guIfguKnguYzguJ7guLTguJfguLHguIHguKnguYwNCivguJ7guLTguYDguIrguJAg4Lin4Lix4LiS4LiZ4Liy4LmA4Lit4Li14LmK4Lii4Lia4Lie4Lix4LiZ4LiY4LmMDQor4Lie4Li04LmA4LiK4LiVIOC5gOC4o+C4t+C4reC4meC4l+C4tOC4nuC4ouC5jA0KK+C4nuC4tOC5gOC4iuC4qeC4kCDguYDguJXguIrguLDguJTguLUNCivguJ7guLTguYDguIrguKnguJAg4Lij4Lix4LiV4LiZ4Liy4Lij4Lih4Lii4LmMDQor4Lie4Li04LmA4LiK4Lip4LiQIOC4reC4uOC4ouC4ouC4suC4meC4uOC4geC4ueC4pQ0KK+C4nuC4tOC5gOC4iuC4qeC4kOC5jCDguYDguIjguKPguLTguI3guKfguKPguIHguLTguIjguIHguLLguKMNCivguJ7guLTguYDguIrguKnguJDguYwg4LiX4Li04Lie4Lii4LmM4LmC4LiB4Lip4Lix4LiiDQor4Lie4Li04LmA4LiK4Lip4LiQ4LmMIOC5gOC4nuC5h+C4jeC4qOC4o+C4tQ0KK+C4nuC4tOC5gOC4iuC4qeC4kOC5jCDguKfguLTguKHguKXguJjguKPguKPguKHguKfguLHguJLguJnguYwNCivguJ7guLTguYDguIrguKnguJDguYwg4Lit4Lix4LiE4Lij4Lie4Li04LiZ4LiX4LmMDQor4Lie4Li04LmA4Lio4LiBIOC4oeC4suC4quC4seC4h+C4guC5jA0KK+C4nuC4tOC5hOC4pSDguITguKPguLjguJHguKfguJPguLTguIrguJnguJnguJfguYwNCivguJ7guLTguYTguKXguKXguLHguIHguKnguJPguYwg4LmC4LiB4Liq4Li44Lih4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Lie4Li1IOC4m+C4tOC5guC4leC4o+C5gOC4peC4teC4ouC4oQ0KK+C4nuC4teC4o+C4meC4uOC4iiDguYDguJ7guYjguIfguJ7guLLguJnguLTguIoNCivguJ7guLXguKPguJ7guIfguKnguYwg4Lil4Li04Lih4Lib4LmM4Liq4Li44LiX4LiY4Li04Lij4Lix4LiK4LiV4LmMDQor4Lie4Li14Lij4Lie4LilIOC4oOC4ueC4oeC4tOC4p+C4seC4kuC4meC5jA0KK+C4nuC4teC4o+C4nuC4seC4meC4mOC5jCDguKjguKPguLXguKrguLjguKfguKPguKPguJPguJzguYTguJcNCivguJ7guLXguKPguKfguLHguJLguJnguYwg4LiK4Li44LiT4Lir4Liw4LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4Lie4Li14Lij4LiwIOC4geC4reC4quC4uOC4p+C4o+C4o+C4k+C4quC4geC4uOC4pQ0KK+C4nuC4teC4o+C4sCDguJfguLHguIHguKnguLDguKfguJPguLTguIrguIrguLINCivguJ7guLXguKPguLAg4Lih4Li14LmB4Liq4LiH4LiZ4Li04LilDQor4Lie4Li14Lij4LiwIOC4q+C4p+C4seC4h+C4p+C4tOC4p+C4seC4kuC4meC5jOC4quC4tOC4mQ0KK+C4nuC4teC4o+C4sOC4nuC4h+C4qOC5jCDguITguKXguK3guIfguIHguLTguIjguYLguKPguIjguJnguYwNCivguJ7guLXguKPguLDguJ7guIfguKnguYwg4Lie4Lij4Liw4LiE4Li44LiT4Lit4Liz4LiZ4Lin4LiiDQor4Lie4Li14Lij4Liw4Lie4LilIOC4iuC4suC4leC4nuC4uOC4l+C4mOC4tOC4mOC4o+C4geC4uOC4pQ0KK+C4nuC4teC4o+C4sOC4nuC4pSDguYHguKrguIfguIjguLHguJnguJfguKPguYwNCivguJ7guLXguKPguLDguKLguLjguJfguJgg4LmE4LiX4Lii4Lil4Li04LmI4Lih4LiX4Lit4LiHDQor4Lie4Li14Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC4m+C4tOC4ouC4oOC4suC4k+C4teC4geC4uOC4pQ0KK+C4nuC4teC4o+C4seC4leC4meC5jCDguK7guLLguKHguLXguJTguLUNCivguJ7guLbguIfguYPguIgg4LmA4LiB4Li14Lii4Lij4LiV4Li04Liq4Liy4LmC4Lij4LiI4LiZ4LmMDQor4Lie4Li44LiSIOC4lOC4reC4geC5hOC4oeC5ieC4iOC4teC4mQ0KK+C4nuC4uOC4kuC4mOC4tOC4nuC4h+C4qeC5jCDguYDguKrguJnguYjguKvguLINCivguJ7guLjguJTguIjguLXguJog4LmA4Lif4Li34LmI4Lit4LiH4LiK4Li34LmI4LiZDQor4Lie4Li44LiX4LiY4LiK4Liy4LiV4Li0IOC4p+C4h+C4qOC5jOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4nuC4uOC4l+C4mOC4qOC4seC4geC4lOC4tOC5jCDguYLguK3guJDguKLguLTguYnguKHguJ7guKPguLLguKINCivguJ7guLjguJgg4LmC4LiE4LiV4Lij4LmD4LiV4LmJDQor4Lie4Li5IOC4l+C4p+C4teC4iOC4tOC4leC4ow0KK+C4nuC4ueC4meC4iuC4seC4oiDguYDguK3guLfguYnguK3guIfguKrguLjguKDguLLguKDguKPguJPguYwNCivguJ7guLnguJnguJfguKPguLHguJ7guKLguYwg4Liq4Li04LiX4LiY4Li04Lie4Lij4Lir4LihDQor4Lie4Li54LiZ4Lii4LioIOC4muC4uOC4k+C4ouC4o+C4seC4geC4qeC5jA0KK+C4nuC4ueC4meC4qOC4o+C4tSDguJjguLXguKPguLDguJvguIHguKPguJPguYzguIHguLjguKUNCivguJ7guLnguJnguKjguKPguLUg4Liq4Li44Lia4LiH4LiB4LiKDQor4Lie4Li54LiZ4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4quC4uOC4meC4meC4l+C5jA0KK+C4nuC4ueC4meC4quC4oeC4muC4seC4leC4tCDguYHguIvguYjguK3guLfguYnguK0NCivguJ7guLnguJnguKrguLjguIIg4LiE4Lir4Liw4LmB4LiB4LmJ4LinDQor4Lie4Li54LiZ4Liq4Li44LiCIOC4quC4seC4meC4leC4tOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4nuC4ueC4peC4iuC4seC4oiDguIHguLLguI3guIjguJnguYLguKPguIjguJnguYwNCivguJ7guLnguKXguJfguKPguLHguJ7guKLguYwg4Lie4Lij4Liy4Lir4Lih4LiT4Li14Lii4LmMDQor4Lie4Li54Lil4Lie4Li04Lie4Lix4LiS4LiZ4LmMIOC4quC4h+C4p+C4meC4quC4seC4leC4ouC5jA0KK+C4nuC4ueC4peC4qOC4o+C4tSDguYHguIvguYjguKvguLHguYjguJkNCivguJ7guLnguKXguKjguKPguLUg4Liq4Li44LiC4Li44Lih4Lin4Liy4LiXDQor4Lie4Li54Lil4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4tuC5iOC4h+C4m+C4o+C4sOC4oOC4sg0KK+C4nuC4ueC4peC4qOC4tOC4o+C4tCDguK3guLTguIfguJXguKPguLDguIHguLnguKUNCivguJ7guLnguKXguKrguLTguJkg4LmA4Liq4LiZ4Li14Lii4LmMDQor4Lie4Li54Lil4Liq4Li44LiCIOC5gOC4oeC5iOC4meC5geC4oeC4mQ0KK+C4nuC5gOC4ouC4suC4p+C5jCDguIHguKPguLDguJTguLLguKkNCivguJ7guYDguKLguLLguKfguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4LiH4Liy4LihDQor4Lie4LmA4Lii4Liy4Lin4LmMIOC5geC4leC4h+C4reC5iOC4reC4mQ0KK+C4nuC5gOC4ouC4suC4p+C5jCDguJvguLHguYnguJnguJrguLjguI3guIrguLkNCivguJ7guYDguKLguLLguKfguYwg4Lig4Li54Lip4LiyDQor4Lie4LmA4Lii4Liy4Lin4LmMIOC4p+C4h+C4qeC5jOC4quC4suC4peC4tQ0KK+C4nuC5gOC4ouC4suC4p+C5jCDguKrguLTguJnguIrguYnguLLguIcNCivguJ7guYDguKLguLLguKfguYwg4LmA4Lit4Li14LmI4Lii4Lih4Lin4LiH4Lio4LmMDQor4LmA4Lie4LiK4LijIOC4o+C4reC4quC4ueC4h+C5gOC4meC4tOC4mQ0KK+C5gOC4nuC4iuC4o+C4meC5ieC4reC4oiDguYDguKfguJfguKLguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguYDguJ7guIrguKPguKPguLHguJXguJnguYwg4Lib4Lil4Li34LmJ4Lih4Lit4Liy4Lij4Lih4Lii4LmMDQor4LmA4Lie4LiK4Lij4Lij4Lix4LiV4LiZ4LmMIOC4reC4uOC4leC4sOC4m+C4sOC4peC4sA0KK+C5gOC4nuC4iuC4o+C4seC4leC4meC5jCDguJ7guKPguJrguKfguKPguYDguIHguLXguKLguKPguJXguLQNCivguYDguJ7guIrguKPguLIg4Lin4Li04LiI4Li04LiV4Lij4LmA4Lil4LiC4LiB4Liy4LijDQor4LmA4Lie4LiK4Lij4Li1IOC4oOC4ueC5iOC4quC4uOC4gg0KK+C5gOC4nuC4l+C4suC4oiDguJfguK3guIfguKjguKPguLUNCivguYDguJ7guJfguLLguKIg4Lir4Liy4LmA4Lij4Li34Lit4LiZ4LiK4Li14LieDQor4LmA4Lie4Lij4Li14Lii4LiaIOC4q+C4uOC4leC4suC4h+C4geC4ueC4ow0KK+C5gOC4nuC4peC4tOC4mSDguJzguLTguKfguYDguJPguKMNCivguYDguJ7guKXguLTguJnguIjguLTguJUg4Lin4Lix4LiK4Lij4LmC4LiK4LiV4Li0DQor4LmA4Lie4Lil4Li04LiZ4LiV4LiyIOC4reC4tOC5iOC4oeC4reC4geC5g+C4iA0KK+C5gOC4nuC4peC4tOC4meC4nuC4tOC4qCDguYHguJTguIfguYTguJ7guJrguLnguKXguKLguYwNCivguYDguJ7guKXguLTguJnguJ7guLTguKgg4Lih4Lir4Liy4Lin4LiZ4Li04LiKDQor4LmA4Lie4Lil4Li04LiZ4Lie4Li04LioIOC5hOC4q+C4peC4oeC4sg0KK+C5gOC4nuC4suC4nuC4sOC4h+C4siDguK3guLHguKrguKHguLTguKHguLLguJnguLANCivguYDguJ7guLTguYjguKEg4Lio4Lij4Li14Lib4Lij4Liw4Lie4Lix4LiZ4LiY4LmMDQor4LmA4Lie4Li04LmI4Lih4Lie4LijIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4h+C4iuC4seC4og0KK+C5gOC4nuC4tOC5iOC4oeC4qOC4o+C4tSDguKfguLHguJTguYHguIHguYnguKcNCivguYDguJ7guLTguYjguKHguKjguLHguIHguJTguLTguYwg4Lib4Li04LiV4Li04LiY4LiZ4Liq4Liy4Lij4Liq4Lih4Lia4Lix4LiV4Li0DQor4LmA4Lie4Li04LmI4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4ouC4ueC5iOC5gOC4m+C5h+C4meC4quC4uOC4gg0KK+C5gOC4nuC4teC4ouC4h+C4iOC4seC4meC4l+C4o+C5jCDguJ7guLHguJnguJjguLjguKPguLHguJXguJnguYwNCivguYDguJ7guLXguKLguIfguJ7guKMg4Lit4Lih4Lij4LmE4LiK4LiiDQor4LmA4Lie4Li14Lii4LiH4LmA4Lie4LmH4LiNIOC4iOC4tuC4h+C4quC4s+C4o+C4suC4jQ0KK+C5gOC4nuC4teC4ouC4h+C5g+C4iCDguIjguYjguLLguJ7guLHguJnguJjguYzguK3guLTguJnguJfguKPguYwNCivguYDguJ7guLXguKLguIfguYPguIgg4Lih4Lir4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Lie4Li14Lii4LiZIOC4muC4seC4h+C4hOC4o+C4seC4mQ0KK+C5gOC4nuC4teC4ouC4oyDguKjguLTguKPguLTguYLguIrguJXguLTguKPguLHguJXguJnguYwNCivguYDguJ7guLXguKLguKPguJ7guKMg4Lio4Lij4Li14LmA4Lie4Li14Lii4Lij4Lic4LilDQor4LmA4Lie4Li14Lii4LinIOC4reC4oOC4tOC4quC4tOC4l+C4mOC4tOC5jOC4oOC4tOC4jeC5guC4jQ0KK+C5gOC4nuC5h+C4geC4iOC4uSDguYHguIvguYjguYDguK3guLXguYnguKINCivguYDguJ7guYfguIHguYDguK7guLXguYnguKIg4LmB4LiL4LmI4LmA4LiV4Li14LiiDQor4LmA4Lie4LmH4LiK4LijIOC4qOC4o+C4teC4p+C4tOC4iuC4seC4og0KK+C5gOC4nuC5h+C4iuC4o+C4o+C4seC4leC4meC5jCDguK3guLLguKPguLXguKPguLHguIHguKnguYwNCivguYDguJ7guYfguIrguKPguLLguKDguKPguJPguYwg4Lin4Liq4Li44LiZ4LiY4Lij4Liy4Lih4Liy4LioDQor4LmA4Lie4LmH4LiNIOC5gOC4iuC4t+C5ieC4reC4muC4uOC4jQ0KK+C5gOC4nuC5h+C4jSDguYHguKrguIfguYLguIrguJXguLQNCivguYDguJ7guYfguI3guIjguLHguJnguJfguKPguYwg4LiI4Li04Lij4Liw4Liq4Li04LiZ4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4LmA4Lie4LmH4LiN4LiI4Lix4LiZ4LiX4Lij4LmMIOC4m+C4seC5ieC4meC4leC4o+C4sOC4geC4ueC4pQ0KK+C5gOC4nuC5h+C4jeC4iOC4seC4meC4l+C4o+C5jCDguKjguKPguLXguIjguLHguJnguJfguKPguYzguJTguLUNCivguYDguJ7guYfguI3guIjguLTguJUg4Lil4Li04LmI4Lin4Lio4Lij4Li14Liq4LiB4Li44LilDQor4LmA4Lie4LmH4LiN4LiT4Li14Lii4LmMIOC4m+C4tOC4h+C4ouC4reC4hw0KK+C5gOC4nuC5h+C4jeC4l+C4tOC4nuC4siDguJrguLjguI3guIrguLnguIHguLjguKjguKUNCivguYDguJ7guYfguI3guJnguKDguLIg4Lia4Liz4LmA4Lie4LmH4LiN4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4LmA4Lie4LmH4LiN4LiZ4Li04LiU4LiyIOC4leC4uOC4peC4p+C4o+C4o+C4mOC4meC4sA0KK+C5gOC4nuC5h+C4jeC4m+C4o+C4sOC4oOC4siDguJXguKPguLXguKPguLjguYjguIfguYDguKPguLfguK3guIfguIHguLjguKUNCivguYDguJ7guYfguI3guJvguKPguLDguKDguLIg4LmB4Liq4LiZ4LmA4Lih4Li34Lit4LiH4Lih4LiyDQor4LmA4Lie4LmH4LiN4Lie4LijIOC5gOC4leC4iuC4sOC4nuC4tOC4l+C4seC4geC4qeC5jOC5gOC4nOC5iOC4suC4nuC4seC4meC4mOC4uOC5jA0KK+C5gOC4nuC5h+C4jeC4nuC4o+C4o+C4kyDguIjguYnguK3guKLguKPguLjguYjguIcNCivguYDguJ7guYfguI3guJ7guKPguKPguJMg4LmA4Lij4Li14LmI4Lii4Lin4Lie4Liy4LiZ4Li04LiK4LiB4Li44LilDQor4LmA4Lie4LmH4LiN4Lie4Lix4LiB4LiV4Lij4LmMIOC4meC4seC4meC4mOC4tOC4o+C4suC4oOC4suC4geC4ow0KK+C5gOC4nuC5h+C4jeC4nuC4tOC4qCDguITguKPguLjguJjguKfguLXguKPguYwNCivguYDguJ7guYfguI3guKPguLHguJXguJnguYwg4Lia4Li44LiT4Lii4Lio4Li04Lij4Li04LiB4Li44LilDQor4LmA4Lie4LmH4LiN4Lik4LiU4Li1IOC4nuC4uOC4l+C4mOC4m+C4o+C4suC5guC4oeC4l+C4ouC5jA0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguIHguKXguLTguYjguJnguJvguKPguLDguJfguLjguKENCivguYDguJ7guYfguI3guKjguKPguLUg4LmE4LiC4LmI4LmB4LiB4LmJ4LinDQor4LmA4Lie4LmH4LiN4Lio4Lij4Li1IOC4iOC4tOC4leC4leC5jOC4iOC4hw0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguIrguLTguJTguJvguKPguLDguKrguIfguITguYwNCivguYDguJ7guYfguI3guKjguKPguLUg4LiTIOC4o+C4sOC4meC4reC4hw0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguYLguJXguK3guJnguLHguJnguJXguYwNCivguYDguJ7guYfguI3guKjguKPguLUg4LiZ4Lig4Liy4Lio4Lij4Li1DQor4LmA4Lie4LmH4LiN4Lio4Lij4Li1IOC4muC4ueC4o+C4jeC4sOC4muC4uOC4jeC4p+C4h+C4qOC5jA0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguJ7guKPguLDguIHguLPguIHguLHguJoNCivguYDguJ7guYfguI3guKjguKPguLUg4Lig4Lix4LiH4LiE4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Lie4LmH4LiN4Lio4Lij4Li1IOC4o+C4seC4leC4meC4o+C4uOC5iOC4h+C4iuC4seC4og0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguKfguIfguKnguYzguJvguLLguJkNCivguYDguJ7guYfguI3guKjguKPguLUg4Lio4Lij4Li14Liq4Liz4Lij4Liy4LiN4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4LmA4Lie4LmH4LiN4Lio4Lij4Li1IOC4quC4suC4o+C4sOC4geC4uOC4pQ0KK+C5gOC4nuC5h+C4jeC4qOC4o+C4tSDguYHguKrguIfguYDguIjguKPguLTguI0NCivguYDguJ7guYfguI3guKjguKPguLUg4Lit4Liz4LiZ4Lin4Lii4Lic4LilDQor4LmA4Lie4LmH4LiN4Lio4Li04Lij4Li0IOC4hOC4seC4oeC4oOC4tOC4o+C4suC4meC4meC4l+C5jA0KK+C5gOC4nuC5h+C4jeC4qOC4tOC4o+C4tCDguKPguLHguIHguKnguLLguKfguIfguKnguYzguKPguLHguJXguJnguYwNCivguYDguJ7guYfguI3guKrguLTguJnguLUg4LiV4LmJ4Lit4LiH4Liq4LiB4Li44Lil4LmC4Lij4LiI4LiZ4LmMDQor4LmA4Lie4LmH4LiN4LmB4LiCIOC4hOC4h+C4nuC4tOC4l+C4seC4geC4qeC5jOC4qOC4tOC4peC4m+C5jA0KK+C5gOC4nuC5h+C4jeC5geC4giDguKDguLHguJfguKPguJTguLTguKXguIENCivguYDguJ7guYfguI3guYHguKPguKEg4Lih4LiZ4Li54LiN4LiK4Lix4LiiDQor4LmA4Lie4LmJ4LiHIOC4peC5ieC4reC4oeC5gOC4nuC4iuC4o+C4nuC4peC4reC4og0KK+C5geC4nuC4o+C4pyDguYLguJXguYLguITguIHguILguLLguKENCivguYHguJ7guKPguKfguJ7guKPguKPguJMg4Lij4Lix4LiH4Lip4Li14LiB4Li04LiI4LmC4Lie4LiY4Li04LmMDQor4LmC4Lie4LiK4LiZ4LiwIOC4oeC4suC4qOC5gOC4guC4t+C5iOC4reC4meC4guC4seC4meC4mOC5jA0KK+C5guC4nuC4mOC4tOC5jOC4nuC4seC4meC4mOC4uOC5jCDguYPguIjguKHguLXguJjguKPguKPguKHguJTguLUNCivguYTguJ7guIjguLTguJUg4Lin4Lio4Li04LiZ4Lib4Lij4Li04LiN4LiN4LiyDQor4LmE4Lie4LiI4Li04LiV4LijIOC4iuC4seC4ouC4nuC4pOC4geC4qeC5jA0KK+C5hOC4nuC4iOC4tOC4leC4oyDguKHguLLguJTguLUNCivguYTguJ7guIjguLTguJXguKPguLIg4Lio4Li44LiC4Liq4Lih4Liy4LiZDQor4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC4geC4seC4meC4oOC4seC4og0KK+C5hOC4nuC4keC4ueC4o+C4ouC5jCDguITguIfguITguLLguKrguLjguKPguLTguKLguInguLLguKINCivguYTguJ7guJHguLnguKPguKLguYwg4LmA4LiI4LiZ4LiI4Liy4LiE4LiwDQor4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC5geC4i+C5iOC5gOC4leC4teC5ieC4ouC4pw0KK+C5hOC4nuC4keC4ueC4o+C4ouC5jCDguJfguK3guIfguIHguKPguLDguIjguYjguLLguIcNCivguYTguJ7guJHguLnguKPguKLguYwg4Lia4Lix4Lin4LiE4Lil4Li14LmIDQor4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC4nOC4peC4oOC4suC4qeC4tQ0KK+C5hOC4nuC4keC4ueC4o+C4ouC5jCDguJ7guLnguKXguKrguKfguLHguKrguJTguLTguYwNCivguYTguJ7guJHguLnguKPguKLguYwg4Lij4Lix4LiH4Lip4Li04Lii4Liy4Lig4LiyDQor4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC4p+C4o+C4quC4seC4oeC4m+C4uOC4o+C4k+C4sA0KK+C5hOC4nuC4keC4ueC4o+C4ouC5jCDguKjguLTguKfguLDguJ7guKPguIrguLHguKINCivguYTguJ7guJHguLnguKPguKLguYwg4Liq4Li44LiZ4LiX4Lij4Lin4Lix4LiS4LiZ4LmMDQor4LmE4Lie4LiR4Li54Lij4Lii4LmMIOC4reC5iOC4reC4meC4qOC4tOC4o+C4tA0KK+C5hOC4nuC4keC4ueC4peC4ouC5jCDguIjguKPguLnguI3guYDguKPguLfguK3guIcNCivguYTguJ7guJrguLnguKPguJPguYwg4LiE4Liz4Lia4Li44Lij4Li1DQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC4geC4tOC4iOC4l+C4p+C4teC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguILguLLguKfguJrguKPguLTguKrguLjguJfguJjguLTguYwNCivguYTguJ7guJrguLnguKXguKLguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4LiV4Lij4Li1DQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC5g+C4iOC4leC4suC4mg0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguYHguIvguYjguJXguLHguYnguIcNCivguYTguJ7guJrguLnguKXguKLguYwg4LiV4LmI4Liy4Lii4Liq4LiB4Li44Lil4LiX4Li04Lie4Lii4LmMDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC5gOC4l+C4nuC4iOC4tOC4meC4lOC4sg0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguJnguLTguKXguLLguKrguJnguYwNCivguYTguJ7guJrguLnguKXguKLguYwg4Lib4Lij4Liw4LmE4Lie4LiX4Lit4LiHDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC4nuC4pOC4l+C4mOC4tOC4nuC4seC4kuC4geC4uOC4pQ0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguJ7guLjguYjguKHguK3guLLguKjguLHguKINCivguYTguJ7guJrguLnguKXguKLguYwg4Lih4LiT4Li14LmC4Lij4LiI4LiZ4LmMDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC4o+C4seC4h+C4quC4teC4geC4uOC4peC4nuC4h+C4qOC5jA0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguKXguLXguKXguLLguKDguLLguJPguLjguKHguLLguKgNCivguYTguJ7guJrguLnguKXguKLguYwg4Lin4LmI4Lit4LiH4LmE4Lin4Lii4Li04LmI4LiH4LmA4LiI4Lij4Li04LiNDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC4qOC4o+C4teC4quC4seC4meC4leC4tOC4o+C4seC4leC4meC5jA0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguKrguKHguLHguITguKPguIHguLLguKMNCivguYTguJ7guJrguLnguKXguKLguYwg4Liq4Li44LiC4Liq4Lix4LiZ4LiV4LmMDQor4LmE4Lie4Lia4Li54Lil4Lii4LmMIOC5geC4quC4h+C5geC4geC5ieC4pw0KK+C5hOC4nuC4muC4ueC4peC4ouC5jCDguK3guKHguKPguK3guJnguLjguIHguLnguKUNCivguYTguJ7guJrguLnguKXguKLguYwg4LmA4Lit4Lih4Lie4Lix4LiZ4LiY4Li44LmMDQor4LmE4Lie4Lih4LiZ4LiyIOC5gOC4q+C4peC5iOC4suC4guC4seC4leC4tOC4ouC4sA0KK+C5hOC4nuC4o+C4o+C4tOC4meC4l+C4o+C5jCDguJjguLnguJvguKrguLjguKfguKPguKPguJPguYwNCivguYTguJ7guKPguKfguLHguKXguKLguYwg4LmA4Lie4Li14Lii4Lij4Lil4Li44Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4LmE4Lie4Lij4Lix4LiBIOC4oOC4ueC5iOC5guC4quC4oOC4sg0KK+C5hOC4nuC4o+C4seC4iiDguIjguLHguJnguJfguKPguYzguYDguJvguKXguYjguIcNCivguYTguJ7guKPguLHguIog4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4LmE4Lie4Lij4Lix4LiKIOC4mOC4o+C4o+C4oeC5geC4nuC4l+C4ouC5jA0KK+C5hOC4nuC4o+C4seC4iiDguJvguLLguJnguJfguLTguJ7guKLguYzguK3guLPguJ7guKMNCivguYTguJ7guKPguLHguIog4LmE4Lie4Lia4Li54Lil4Lii4LmM4Lih4Lix4LmI4LiZ4LiE4LiHDQor4LmE4Lie4Lij4Lix4LiKIOC4peC4teC5ieC5gOC4iOC4o+C4tOC4jQ0KK+C5hOC4nuC4o+C4seC4iiDguKjguLTguKPguLTguIrguLLguJXguLQNCivguYTguJ7guKPguLHguIog4LmA4Liq4Lin4LiB4Lie4Li04Lia4Li54Lil4Lii4LmMDQor4LmE4Lie4Lij4Lix4LiKIOC5guC4reC4quC4luC5gOC4iOC4o+C4tOC4jeC4nOC4pQ0KK+C5hOC4nuC4o+C4seC4leC4meC5jCDguIjguKPguKPguKLguKvguLLguI0NCivguYTguJ7guKPguLHguJXguJnguYwg4LiY4Lij4Lij4Lih4LiK4Liy4LiV4Li0DQor4LmE4Lie4Lij4Lix4LiV4LiZ4LmMIOC4o+C4seC4leC4meC5jOC4nuC4h+C4qeC5jOC5guC4quC4oOC4tOC4lQ0KK+C5hOC4nuC4o+C4seC4leC4meC5jCDguYHguKrguKfguIfguIHguLTguIgNCivguYTguJ7guKPguLTguJkg4Lic4Lil4Lir4Lin4LmJ4LiyDQor4LmE4Lie4Lij4Li04LiZ4LiX4Lij4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4oeC4k+C4tQ0KK+C5hOC4nuC4o+C4tOC4meC4l+C4o+C5jCDguJ7guYjguKfguIfguKrguLjguJnguJfguKMNCivguYTguJ7guKPguLTguJnguJfguKPguYwg4LmA4Liq4Li34Lit4LiZ4LmJ4Lit4LiiDQor4LmE4Lie4Lil4Li04LiZIOC4iOC4tOC4leC4o+C5gOC4iOC4o+C4tOC4jQ0KK+C5hOC4nuC4peC4tOC4mSDguJvguLLguKPguLDguJ7guIfguKjguYwNCivguYTguJ7guKXguLTguJkg4Lin4LmI4Lit4LiH4Lib4Lij4Liw4LiK4Liy4LiZ4Li44LiB4Li54LilDQor4LmE4Lie4Lil4Li04LiZIOC4reC4tOC4meC4l+C4o+C5jOC4quC4uOC4p+C4o+C4o+C4kw0KK+C5hOC4nuC4qOC4o+C4tSDguJjguLnguJvguYDguJfguLXguKLguJnguJfguK3guIcNCivguYTguJ7guKjguLLguKUg4LmA4LiB4Li14Lii4Lij4LiV4Li04LmA4LiB4Lip4Lih4Lio4Liy4LiZ4LiV4LmMDQor4LmE4Lie4Lio4Liy4LilIOC4iOC5i+C4p+C4h+C4nuC4suC4meC4tOC4ig0KK+C5hOC4nuC4qOC4suC4pSDguYDguIjguLTguJTguIjguLPguJnguIfguKfguLTguJfguKLguLLguIHguLjguKUNCivguYTguJ7guKjguLLguKUg4LmA4LiK4Li14Lii4LiH4Lih4LiyDQor4LmE4Lie4Lio4Liy4LilIOC4leC4seC5ieC4h+C4iOC4o+C4tOC4ouC4mOC4o+C4o+C4oQ0KK+C5hOC4nuC4qOC4suC4pSDguJfguLHguYnguKfguKrguLjguKDguLLguJ4NCivguYTguJ7guKjguLLguKUg4LiZ4Li04Lil4LiZ4LiX4Li1DQor4LmE4Lie4Lio4Liy4LilIOC4m+C4o+C4sOC4oOC4suC4reC4oOC4tOC4o+C4seC4leC4meC5jA0KK+C5hOC4nuC4qOC4suC4pSDguJ7guKPguKvguKHguKHguJPguLUNCivguYTguJ7guKjguLLguKUg4LmC4Lie4LiY4Li04LmM4LiZ4Li04LmI4Lih4LmB4LiU4LiHDQor4LmE4Lie4Lio4Liy4LilIOC4ouC4uOC5ieC4meC4nuC4seC4meC4mOC5jA0KK+C5hOC4nuC4qOC4suC4pSDguKXguLLguKfguLHguJPguKLguLLguIHguLjguKUNCivguYTguJ7guKjguLLguKUg4Lin4Lij4LmC4Lie4LiY4Li04LmMDQor4LmE4Lie4Lio4Liy4LilIOC4qOC4o+C4teC5gOC4geC4leC4uA0KK+C5hOC4nuC4qOC4suC4pSDguKrguLPguKPguLLguI3guIHguLTguIjguJTguLPguKPguIfguITguYwNCivguYTguJ7guKjguLLguKUg4LmA4Liq4Lij4Li14Lij4Lix4LiB4Lip4LmMDQor4LmE4Lie4Lio4Liy4LilIOC4reC4ouC4ueC5iOC5gOC4ouC5h+C4mQ0KK+C5hOC4nuC4qOC4suC4pSDguYLguK3guJnguYDguIfguLTguJkNCivguYTguJ7guKrguLTguJAg4LiI4Lij4Li04Lii4Liw4LmA4Lio4Lij4Lip4LiQ4LmMDQor4LmE4Lie4LmA4Lij4Liy4LiwIOC5gOC4geC4tOC4lOC4p+C4tOC4iuC4seC4og0KK+C5hOC4nuC5gOC4o+C4suC4sCDguJfguK3guIfguYPguJoNCivguYTguJ7guYDguKPguLLguLAg4Lij4Li14Lij4Lix4LiV4LiZ4LiK4Liy4LiV4Li0DQor4LmE4Lie4LmA4Lij4Liy4LiwIOC4reC4uOC5iOC4meC4meC4tOC5iOC4oQ0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguIHguLLguI3guIjguJnguJ7guLTguJrguLnguKXguKLguYwNCivguYTguJ7guYLguKPguIjguJnguYwg4LiC4LiI4Lij4Lin4Lix4LiK4Lij4LiyDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4iOC4o+C4uOC4h+C4oOC4seC4quC4quC4o+C5jOC4guC4iOC4ow0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguIjguLXguJnguILguIjguKMNCivguYTguJ7guYLguKPguIjguJnguYwg4LiK4Lix4Lii4Lie4LijDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4i+C4tuC5ieC4h+C5gOC4geC4qeC4oQ0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguJXguKXguK3guJTguIHguLLguKUNCivguYTguJ7guYLguKPguIjguJnguYwg4LiX4Lij4Lix4Lie4Lii4LmM4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4mOC4teC4o+C5gOC4geC4qeC4leC4o+C4iuC4seC4og0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguJrguKPguLTguJrguLnguKPguJPguYwNCivguYTguJ7guYLguKPguIjguJnguYwg4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmM4Lie4LijDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4nuC4h+C4qeC5jOC4iOC4tOC4meC4lOC4suC4p+C4suC4meC4tOC4ig0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguJ7guLTguKDguLHguIHguIHguLTguIgNCivguYTguJ7guYLguKPguIjguJnguYwg4Lig4Lix4LiX4Lij4Liq4Li44LiC4LmA4Liq4Lij4Li04LihDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC5gOC4oeC4huC4p+C4tOC4oOC4suC4lQ0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguKPguLjguYjguIfguJrguKPguKPguKXguLfguK3guKjguLHguIHguJTguLTguYwNCivguYTguJ7guYLguKPguIjguJnguYwg4Lil4Li04LmI4Lih4LiB4Liy4LiN4LiI4LiZ4LmC4LiK4LiV4Li0DQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4p+C4o+C4o+C4k+C4quC4luC4tOC4leC4ouC5jA0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguKjguKPguIjguLTguJXguJXguLQNCivguYTguJ7guYLguKPguIjguJnguYwg4LmC4Lio4LiI4Li04Lio4Li44Lig4LijDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4quC4tOC4h+C4q+C5jOC4reC4uOC4quC4suC4q+C4sA0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguKrguLjguKfguKPguKPguJPguKrguLjguJfguJjguLQNCivguYTguJ7guYLguKPguIjguJnguYwg4Lir4Liy4LiN4Lie4LiH4Lip4LmM4LiY4Lij4Lij4LihDQor4LmE4Lie4LmC4Lij4LiI4LiZ4LmMIOC4reC4seC4leC4leC4quC4seC4oeC4nuC4seC4meC4mOC5jA0KK+C5hOC4nuC5guC4o+C4iOC4meC5jCDguYLguK3guKfguLLguJfguIjguKPguLnguI3guIjguLTguJXguJXguYwNCivguJ/guK3guIfguITguLMg4Lij4Li44LiI4Li04LmB4Liq4LiH4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4Lif4Lit4LiH4LmB4LiB4LmJ4LinIOC4nuC4peC4meC4sOC5gOC4lOC4ig0KK+C4n+C4suC4leC4tOC4oeC4sCDguYDguIHguJXguLjguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguJ/guLLguKPguLXguJTguLIg4LmA4LiL4LmH4Lih4Liq4Lih4Lie4LijDQor4Lif4Li04Lil4Li04LibIOC4m+C4tOC5iOC4meC4quC4uOC4geC4suC4jeC4iOC4meC4sA0KK+C4n+C4t+C5ieC4mSDguKvguLTguKPguLHguI3guKrguLjguILguKrguLHguJnguJXguYwNCivguJ/guLkg4Lia4Li44LiN4LmA4Lie4LmH4LiHDQor4Lif4Li54LmA4LiK4Li14Lii4LiHIOC5geC4i+C5iOC4iOC5i+C4suC4pw0KK+C5gOC4n+C4t+C5iOC4reC4h+C4ieC4seC4leC4oyDguKrguLjguITguJnguJjguYzguILguIjguKMNCivguYDguJ/guLfguYjguK3guIfguKXguLHguJTguJTguLIg4LiB4Li04LiI4Liq4LiZ4Liy4LmC4Lii4LiY4Li04LiZDQor4Lig4LiE4Lie4LijIOC4oOC4seC4geC4qOC4o+C4teC4p+C4h+C4qeC5jA0KK+C4oOC4hOC4tOC4meC4tSDguKrguKPguJ7guIfguKjguYzguYTguJ7guKPguLHguIoNCivguKDguKHguKMg4LiJIOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4oOC4o+C4k+C5jOC4nuC4o+C4o+C4kyDguKPguLHguJXguKrguLTguKPguKLguLLguIHguKMNCivguKDguKPguJPguLUg4Lie4LiH4Lio4LmM4LmA4Lil4Li04Lio4LiZ4Lig4Liy4LiB4LijDQor4Lig4Lij4LiT4LmM4LmA4Lie4LmH4LiNIOC5geC4geC5ieC4p+C4iuC5iOC4p+C4og0KK+C4oOC4o+C4suC4lOC4oyDguKPguK3guJTguYDguKXguLXguYjguKLguKENCivguKDguKfguLHguI3guI3guLIg4Lil4LmJ4Lin4LiZ4LmD4LiI4Liq4LiZ4LiY4Li04LmMDQor4Lig4Lix4LiB4LiU4Li1IOC4iOC4seC4meC4l+C4nuC4seC4meC4mOC5jA0KK+C4oOC4seC4geC4lOC4tSDguJ7guYjguKfguIfguKDguLHguIHguJTguLUNCivguKDguLHguIHguJTguLUg4Liq4Li44Lie4Lij4Lie4Lix4LiS4LiZ4LiyDQor4Lig4Lix4LiE4Lie4LiH4Lip4LmMIOC4geC4uOC4peC4iuC4pQ0KK+C4oOC4seC4iuC4o+C4tSDguJvguLTguYjguJnguJvguKPguLDguYDguKrguKPguLTguJANCivguKDguLHguJfguJfguYLguIEg4LmC4LiK4LiV4Li04LiB4LmE4LiB4LijDQor4Lig4Lix4LiX4Lij4LmM4LiB4Lih4LilIOC5gOC4leC5h+C4oeC4quC4uOC4gg0KK+C4oOC4seC4l+C4o+C4nuC4oyDguIjguLLguKPguLjguJ7guLHguJLguJnguYwNCivguKDguLHguJfguKPguKDguKMg4LiY4LiZ4Liy4LmA4LiB4Lip4Lih4Lie4LilDQor4Lig4Lix4LiX4Lij4LmM4Lin4Lij4Lij4LiTIOC4hOC4h+C4reC4o+C4o+C4luC4geC4suC4ow0KK+C4oOC4seC4l+C4o+C4siDguYDguIrguLXguYjguKLguKfguKfguLjguJLguLTguKDguLLguIQNCivguKDguLHguJfguKPguLIg4Lie4Lij4Lie4LiH4Lio4LmM4LiX4Lin4Li14Lin4Lix4LiS4LiZ4LmMDQor4Lig4Lix4LiX4Lij4LiyIOC4p+C4seC4meC4lOC4tQ0KK+C4oOC4seC4l+C4o+C4suC4nuC4oyDguIvguLfguYjguK3guIHguLTguJXguJXguLTguKjguLHguIHguJTguLTguYwNCivguKDguLHguJfguKPguLLguKDguKPguJPguYwg4LmA4Lit4Li14Lii4Liq4LiB4Li44LilDQor4Lig4Lix4LiX4Lij4Liy4Lin4Li44LiYIOC4nuC4seC4meC4mOC4uOC5gOC4oeC4mOC4suC4p+C4h+C4qOC5jA0KK+C4oOC4seC4l+C4o+C4teC4ouC4siDguJrguLjguI3guKLguKHguYLguJnguJnguLjguIHguLjguKUNCivguKDguLHguKrguKPguLIg4Lie4LiH4Lip4LmM4Lit4Li44LiU4LiX4LiyDQor4Lig4Lix4Liq4Liq4Lij4LiyIOC5gOC4lOC4iuC4sOC4qOC4tOC4o+C4tA0KK+C4oOC4suC4hOC4oOC4ueC4oeC4tCDguIrguLLguI3guJ7guLTguIrguLHguKINCivguKDguLLguITguKLguYwg4LiB4Lij4LiU4LiZ4Li04Lii4Lih4LiK4Lix4LiiDQor4Lig4Liy4LiT4Li1IOC5gOC4iuC4tOC4lOC4iuC4t+C5iOC4mQ0KK+C4oOC4suC4k+C4tSDguKrguLTguKPguLTguYDguKfguIrguIHguLjguKUNCivguKDguLLguJPguLgg4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMDQor4Lig4Liy4LiT4Li44LiY4Lix4LiKIOC4nuC4o+C4q+C4oeC4m+C4seC4jeC4jeC4suC4geC4uOC4pQ0KK+C4oOC4suC4k+C4uOC4oeC4suC4qCDguIHguLjguKjguKXguKXguLLguJnguLjguIHguLnguKUNCivguKDguLLguJPguLjguKfguLHguJLguJnguYwg4LiI4Liz4LiI4LiUDQor4Lig4Liy4LiT4Li44Lio4Lix4LiB4LiU4Li04LmMIOC4reC4tOC4meC4l+C4o+C4o+C4seC4geC4qeC4sg0KK+C4oOC4suC4meC4uCDguJrguLjguJXguKPguKjguKPguLUNCivguKDguLLguJnguLjguKHguLLguKgg4Lie4Li54LiZ4Liq4Li44LiC4LmC4LiCDQor4Lig4Liy4LiZ4Li44Lin4Li44LiYIOC4meC4p+C4peC4quC4sg0KK+C4oOC4suC4o+C4k+C4tSDguK3guLHguJrguJTguLjguKXguKXguLINCivguKDguLLguKPguJTguLUg4LmC4Lij4LiI4LiZ4Lin4Lix4LiS4LiZ4Lin4Li44LiS4Li0DQor4Lig4Liy4Lin4LiT4Li1IOC4quC4oeC4seC4meC4leC5gOC4p+C4hOC4tOC4mQ0KK+C4oOC4suC4p+C4lOC4tSDguK3guKHguKPguJ7guLHguIrguKPguLANCivguKDguLLguKfguJnguLIg4LiZ4Lij4Liy4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lig4Liy4Lin4LiZ4LiyIOC4qOC4o+C4teC4reC4o+C4uOC4kw0KK+C4oOC4suC4p+C4tOC4k+C4tSDguIHguKXguLTguYjguJnguILguIjguKMNCivguKDguLLguKfguLTguJPguLUg4LiX4Lit4LiH4Lih4Liy4LiBDQor4Lig4Liy4Lin4Li04LiT4Li1IOC4p+C4iuC4tOC4o+C4m+C4seC4jeC4jeC4suC4meC4uOC4geC4ueC4pQ0KK+C4oOC4suC4p+C4tOC4lSDguYLguJXguJTguLTguKXguIENCivguKDguLLguKfguLUg4Lih4Li14Lin4Lix4LiV4LiW4LiyDQor4Lig4Liy4Liq4LiB4LijIOC4iOC4tOC4leC4leC4o+C4reC4hw0KK+C4oOC4suC4quC4geC4oyDguYDguKvguKHguIHguKPguJPguYwNCivguKDguLTguIrguI3guKPguLHguJXguJnguYwg4Lin4LiH4Lio4LmM4Lin4Liq4Li44Liq4Li04LiZDQor4Lig4Li04LiN4LmC4LiNIOC4guC4seC4meC4l+C4reC4hw0KK+C4oOC4tOC4jeC5guC4jSDguJjguLHguJnguKfguLLguKPguIrguKMNCivguKDguLTguI3guYLguI0g4Lij4Lie4Li14Lie4Li04Lio4Liy4LilDQor4Lig4Li04LiN4LmC4LiNIOC4q+C4tOC5guC4leC4m+C4geC4o+C4k+C5jA0KK+C4oOC4tOC4o+C4oeC4k+C5jCDguITguIfguK3guKLguLnguYgNCivguKDguLTguKPguKHguKLguYwg4LiJ4Liy4Lii4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lig4Li04Lij4Lih4Lii4LmMIOC4nuC4pOC4geC4qeC4iuC4suC4leC4tOC5gOC4iOC4o+C4tOC4jQ0KK+C4oOC4tOC4o+C4oeC4ouC5jCDguKrguIfguKfguJnguJnguLLguKENCivguKDguLTguYDguKjguIEg4LmD4LiI4Lit4LmI4Lit4LiZ4LiZ4LmJ4Lit4LihDQor4Lig4Li44LiK4LiH4LiE4LmMIOC4leC4seC4k+C4keC5jOC5hOC4nuC5guC4o+C4iOC4meC5jA0KK+C4oOC4uOC4iuC4iuC4h+C4hOC5jCDguIrguLLguI3guJjguJnguLLguIHguLTguIgNCivguKDguLkg4LmD4LiI4LiK4Liy4LiiDQor4Lig4Li54Lih4Li0IOC5guC4quC4oOC4suC4iOC4suC4o+C4teC4ouC5jA0KK+C4oOC4ueC4oeC4tOC4nuC4tOC4iuC4jeC5jCDguIjguKPguKPguKLguLLguKfguLTguIjguLHguIHguKnguJPguYwNCivguKDguLnguKPguLTguJTguLIg4LmC4LiX4LiY4LiB4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lig4Li54Lin4LiU4LilIOC5gOC4o+C4t+C4reC4h+C5guC4geC4quC4tOC4meC4l+C4o+C5jA0KK+C4oOC4ueC4p+C4meC4suC4o+C4liDguK3guLjguYDguJfguKjguJnguLHguJnguJfguJnguYwNCivguKDguLnguKnguLTguJUg4Lib4Lij4Liw4LiY4Liy4LiZ4Lie4Li04Lie4Lix4LiS4LiZ4LmMDQor4Lig4Li54LmA4LiB4LmH4LiIIOC5geC4quC4lOC4h+C4mOC4o+C4o+C4oQ0KK+C5gOC4oOC4suC4p+C4meC4siDguK3guLTguJnguJfguLDguYHguKrguIcNCivguKHguIfguITguKUg4LiB4Lip4Li04LiV4Li04Lib4Lij4Liw4LiU4Li04Lip4LiQDQor4Lih4LiH4LiE4LilIOC5gOC4guC4teC4ouC4p+C4nOC4tuC5ieC4hw0KK+C4oeC4h+C4hOC4pSDguIjguLHguJnguJfguKPguYzguYHguKrguIfguKPguLHguJXguJnguYwNCivguKHguIfguITguKUg4LiJ4Li04Lih4LmA4Lil4LmH4LiBDQor4Lih4LiH4LiE4LilIOC5geC4i+C5iOC4geC4uOC5iOC4og0KK+C4oeC4h+C4hOC4pSDguJXguLHguYnguIfguIjguLTguJXguJXguYzguKfguLHguJLguJnguLINCivguKHguIfguITguKUg4LiX4Lix4Lia4LiX4Li04Lih4LiK4Li54Liq4Li44Lin4Lij4Lij4LiTDQor4Lih4LiH4LiE4LilIOC4meC4suC4hOC4sOC4oeC4sg0KK+C4oeC4h+C4hOC4pSDguJvguLLguJPguLDguJrguKPguKPguIjguIcNCivguKHguIfguITguKUg4Lie4LmI4Lin4LiH4Lie4LiH4Lio4LmMDQor4Lih4LiH4LiE4LilIOC4oOC4suC4quC4geC4o+C4iOC4o+C4seC4qg0KK+C4oeC4h+C4hOC4pSDguKLguLfguJnguKLguIfguKvguLHguJXguJbguKDguKPguJPguYwNCivguKHguIfguITguKUg4Lil4Li04LmI4Lin4Lih4LmC4LiZ4Lih4LiZ4LiV4LmMDQor4Lih4LiH4LiE4LilIOC4p+C4tOC4meC4tOC4iOC5gOC4iOC4o+C4tOC4jeC4qOC4o+C4tQ0KK+C4oeC4h+C4hOC4pSDguKjguLTguKPguLTguYHguKrguIfguIrguLHguKLguIHguLjguKUNCivguKHguIfguITguKUg4Liq4Li14LiU4LiyDQor4Lih4LiH4LiE4LilIOC5geC4quC4h+C4p+C4h+C4qOC5jOC4p+C4suC4k+C4tOC4iuC4ouC5jA0KK+C4oeC4h+C4hOC4pSDguK3guKLguLnguYjguJnguLjguIoNCivguKHguIfguITguKUg4LmA4Liu4LiH4Lia4Li44LiN4Liq4Li44LiC4LiB4Li44LilDQor4Lih4LmI4LiH4LmA4LiL4Li14LmJ4LiiIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4oeC4k+C4keC4o+C4tOC4gSDguYDguJTguIrguKvguJnguLkNCivguKHguJPguJHguKUg4LmD4Lia4Lia4Lix4LinDQor4Lih4LiT4LiR4LilIOC4reC4seC4qOC4p+C4oOC4seC4l+C4o+C4suC4geC4ow0KK+C4oeC4k+C4keC4siDguIjguKPguLjguIfguIHguKXguLTguYjguJkNCivguKHguJPguJHguLIg4LmB4LiL4LmI4LmA4Liu4LmJ4LiHDQor4Lih4LiT4LiR4LiyIOC5gOC4meC4teC4ouC4oeC4qOC4tOC4o+C4tA0KK+C4oeC4k+C4keC4siDguJ7guLjguJLguJXguLLguKUNCivguKHguJPguJHguLIg4LmA4Lil4Li04Lio4LiX4LiZ4Li44Lie4LiH4Lio4LmMDQor4Lih4LiT4LiR4LiyIOC4quC4seC4meC4leC4tOC4mOC4seC4jeC4jeC4suC5guC4iuC4hA0KK+C4oeC4k+C4keC4siDguYDguKvguKXguLfguK3guIfguKXguLHguI3guIjguIHguKMNCivguKHguJPguJHguLLguJfguLTguJ7guKLguYwg4LmC4LiV4LmB4Lii4LmJ4LihDQor4Lih4LiT4LiR4Li04LiV4LiyIOC4reC4ueC5iOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4oeC4k+C4keC5jCDguKrguKHguJ7guLHguJnguJjguYwNCivguKHguJPguJ7guLTguKPguLIg4Lit4Liy4LiH4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Lih4LiT4Li1IOC5guC4geC4qOC4peC5gOC4oeC4mOC4suC4geC4uOC4pQ0KK+C4oeC4k+C4tSDguYDguIjguKPguLTguI3guKrguLjguIINCivguKHguJPguLUg4LmB4LiL4LmI4LmC4LiE4LmJ4LinDQor4Lih4LiT4Li1IOC4l+C4reC4h+C5gOC4geC4qeC4ow0KK+C4oeC4k+C4tSDguJrguLjguI3guJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguKHguJPguLUg4Lie4Lix4LiS4LiZ4Liw4LmA4Lit4LiZ4LiBDQor4Lih4LiT4Li1IOC4oeC4ueC4ruC4s+C4oeC4seC4lOC5guC4mQ0KK+C4oeC4k+C4tSDguKfguIfguKjguYzguIHguKPguLjguJQNCivguKHguJPguLUg4Lio4Li04Lij4Li04Lin4Lix4LiS4LiY4LiZ4Liw4LiV4Lij4Liw4LiB4Li54LilDQor4Lih4LiT4Li1IOC4quC4uOC4meC4l+C4o+C4peC4tOC4m+C4tOC4geC4ow0KK+C4oeC4k+C4tSDguK3guLHguKjguKfguIjguLTguJnguJTguLLguKfguLHguJLguJnguYwNCivguKHguJPguLXguJnguLLguI8g4Lie4LiH4Lio4LmM4Lig4LiE4Lin4Lix4LiV4LijDQor4Lih4LiT4Li14Lij4Lix4LiB4Lip4LmMIOC4iOC4tOC4meC4leC4meC4suC4muC4o+C4o+C5gOC4iOC4tOC4lA0KK+C4oeC4k+C4teC4o+C4seC4leC4meC5jCDguYHguIjguYnguIfguYHguIjguYjguKHguIjguLTguJXguJXguYwNCivguKHguJPguLXguKPguLHguJXguJnguYwg4LiW4Li04LiZ4Lib4Lin4Lix4LiV4Li0DQor4Lih4LiT4Li14Lij4Lix4LiV4LiZ4LmMIOC4nuC4o+C4geC4uOC4peC4p+C4seC4kuC4meC5jA0KK+C4oeC4k+C4teC4o+C4seC4leC4meC5jCDguYDguKXguLTguKjguKrguLjguITguJnguJjguYwNCivguKHguJPguLXguKPguLHguJXguJnguYwg4Liq4Li44Lin4Lij4Lij4LiT4Lig4Liy4Lig4Lij4LiT4LmMDQor4Lih4LiT4Li14Lin4Lij4Lij4LiTIOC4kyDguJnguITguKMNCivguKHguJPguLXguKfguLHguKXguKLguYwg4Lit4Lih4Lij4LiY4Li14Lij4Liw4LiB4Li44LilDQor4Lih4LiT4LmA4LiR4Li14Lii4LijIOC4iuC4seC4ouC4oeC4tOC4leC4o+C5gOC4iOC4o+C4tOC4jQ0KK+C4oeC4k+C5gOC4keC4teC4ouC4oyDguJ7guLnguKXguKjguLTguKPguLQNCivguKHguJPguYDguJHguLXguKLguKMg4Lit4Liy4LiI4Lia4Lij4Lij4LiI4LiHDQor4Lih4LiY4Li44Lij4LiqIOC4muC4uOC4leC4o+C4lOC4tQ0KK+C4oeC4meC4iuC4ouC4siDguYTguIHguKPguKTguIHguKnguYwNCivguKHguJnguJPguLHguIrguIrguLIg4LiK4Li54LiK4Liy4LiV4Li04LmE4LiX4LiiDQor4Lih4LiZ4LiV4LmM4LiK4Lix4LiiIOC5guC4iuC4leC4tOC4q+C4tOC4o+C4seC4k+C4o+C4seC4leC4meC5jA0KK+C4oeC4meC4leC5jOC4iuC4seC4oiDguYTguJzguJfguKPguLHguIHguKnguLLguJjguKPguKPguKENCivguKHguJnguJXguYzguIrguLHguKIg4Lin4Li04Liq4Li44LiX4LiY4Li04Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lih4LiZ4LiV4LmM4LiK4Lix4LiiIOC5gOC4reC4teC5iOC4ouC4oeC4o+C4seC4leC4meC4iuC4seC4og0KK+C4oeC4meC4leC4o+C5jOC4p+C4h+C4qOC5jCDguKDguLHguJfguKPguKfguLTguJfguKLguYwNCivguKHguJnguJXguKPguLUg4LmB4LiB4LmJ4Lin4LmA4Lil4LmH4LiBDQor4Lih4LiZ4LiV4Lij4Li1IOC4iOC4o+C4tOC4ouC4suC4geC4ueC4pQ0KK+C4oeC4meC4leC4o+C4tSDguYDguIjguKPguLTguI3guKPguLHguJXguJnguYwNCivguKHguJnguJXguKPguLUg4LiK4Li54LiZ4Liy4Lih4LiK4Lix4LiiDQor4Lih4LiZ4LiV4Lij4Li1IOC4lOC4suC4p+C5gOC4o+C4t+C4reC4hw0KK+C4oeC4meC4leC4o+C4tSDguYHguJXguIfguYDguIjguKPguLTguI0NCivguKHguJnguJXguKPguLUg4LiY4Lij4Lij4Lih4Lij4Lix4LiH4Lip4Li1DQor4Lih4LiZ4LiV4Lij4Li1IOC5gOC4meC4teC4ouC4oeC4iOC4teC4mQ0KK+C4oeC4meC4leC4o+C4tSDguJvguKPguLDguYDguKrguKPguLTguJDguKfguLTguJfguKLguLLguIHguLLguKMNCivguKHguJnguJXguKPguLUg4Lie4Lij4Lie4LiI4LiZ4LmM4LiY4LiZ4Lih4Liy4LioDQor4Lih4LiZ4LiV4Lij4Li1IOC5gOC4nuC4tOC5iOC4oeC4nOC4peC4iuC4seC4ouC4geC4uOC4pQ0KK+C4oeC4meC4leC4o+C4tSDguKHguLLguJnguLDguJfguLHguJUNCivguKHguJnguJXguKPguLUg4Lij4Lit4LiU4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lih4LiZ4LiV4Lij4Li1IOC4peC4teC4peC4suC5guC4quC4oOC4tOC4kw0KK+C4oeC4meC4leC4o+C4tSDguKfguLTguJ7guLHguJnguJjguYzguKfguKPguJ7guIfguKnguYwNCivguKHguJnguJXguKPguLUg4Lio4Li04Lij4Li04LiV4Lix4LiZ4LiV4Li04LiY4Lij4Lij4LihDQor4Lih4LiZ4LiV4Lij4Li1IOC4quC4seC4h+C4guC4p+C4uOC4kuC4tOC4iuC4seC4ouC4geC4uOC4pQ0KK+C4oeC4meC4leC4o+C4tSDguKrguLjguJrguKPguKPguJPguJ7guIfguKnguYwNCivguKHguJnguJXguKPguLUg4Lir4Lik4LmE4LiK4Lii4Liw4Lio4Lix4LiB4LiU4Li04LmMDQor4Lih4LiZ4LiV4Lij4Li1IOC4reC4seC4h+C4qOC4uOC4mOC4meC4quC4oeC4muC4seC4leC4tA0KK+C4oeC4meC4leC4o+C4tSDguYDguK3guLfguYnguK3guK3guKHguKMNCivguKHguJnguJXguYwg4LmA4LiK4LiV4Lih4Li1DQor4Lih4LiZ4LiX4Li04Lie4Lii4LmMIOC4p+C4tOC4iuC4seC4ouC4mOC4meC4nuC4seC4kuC4meC5jA0KK+C4oeC4meC4mOC4tOC4o+C4siDguYDguK3guIHguJrguLjguI3guKLguLfguJkNCivguKHguJnguKfguLTguKDguLIg4Lib4Lij4Liw4LiK4Lix4LiN4LiE4LiU4Li1DQor4Lih4LiZ4Lix4LiZ4Lii4LmMIOC4muC4uOC4jeC4ouC4sOC4iuC4seC4og0KK+C4oeC4meC4seC4qiDguILguLHguJnguJjguLTguYLguIrguJXguLQNCivguKHguJnguLHguKog4LiI4Lix4LiZ4LiX4Lin4Li04LiKDQor4Lih4LiZ4Lix4LiqIOC4iuC4seC4ouC4quC4uOC4oOC4sg0KK+C4oeC4meC4seC4qiDguJTguLXguIrguKHguIjguLHguJnguJfguKPguYwNCivguKHguJnguLHguKog4LiX4Lit4LiH4Liq4Liw4Lit4Liy4LiUDQor4Lih4LiZ4Lix4LiqIOC4meC4tOC5iOC4oeC4meC4p+C4pQ0KK+C4oeC4meC4seC4qiDguJvguKPguLDguIjguLHguIHguKnguYzguIjguLTguJXguKPguYwNCivguKHguJnguLHguKog4Lie4Lil4Lix4Lia4Lia4Li44Lij4Li1DQor4Lih4LiZ4Lix4LiqIOC4oOC4suC4hOC4teC4mOC4o+C4o+C4oQ0KK+C4oeC4meC4seC4qiDguKLguK3guYHguKrguIcNCivguKHguJnguLHguKog4LmA4Lil4Li04Lio4Lin4Lix4LiS4LiZ4Liy4LmA4Liq4Lij4Li1DQor4Lih4LiZ4Lix4LiqIOC4qOC4o+C4teC4mOC4meC4quC4suC4ow0KK+C4oeC4meC4seC4qiDguKrguK3guLTguYnguIfguJfguK3guIcNCivguKHguJnguLHguKog4Liq4Li44Lig4Liy4Lin4Li04LiV4LiyDQor4Lih4LiZ4Lix4LiqIOC4reC4h+C4hOC5jOC4quC4o+C4k+C4sOC4hOC4oQ0KK+C4oeC4meC4seC4qiDguYLguK3guKrguJbguIjguLHguJnguJfguKPguYwNCivguKHguJnguLHguKrguKfguLUg4Lie4Lii4Lix4LiE4LiG4LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4Lih4LiZ4Li44LiK4LiN4LmMIOC4p+C4seC4kuC4meC5guC4geC5gOC4oeC4ow0KK+C4oeC4meC4uSDguYLguIrguJXguLTguKPguLHguJUNCivguKHguJnguLkg4Lib4Li04LmI4LiZ4Lig4Li54LmIDQor4Lih4LiZ4Li5IOC4p+C4suC4p+C4tQ0KK+C4oeC4meC4uSDguK3guLHguKjguKfguYDguIHguKjguKHguJPguLUNCivguKHguJnguLnguI0g4LiK4Li54Lio4Li04Lij4Li04Lit4Li44LiX4Lix4LiiDQor4Lih4LiZ4Li54LiNIOC4meC4uOC4leC4p+C4h+C4qeC5jA0KK+C4oeC4meC4ueC4jSDguJ7guLnguKXguJfguKfguLUNCivguKHguJnguLnguI0g4Lin4Li04LiB4LiB4Lih4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lih4LiZ4Li54LiNIOC4q+C4tOC4meC4peC4reC4og0KK+C4oeC4meC4ueC4qOC4seC4geC4lOC4tOC5jCDguJrguLjguI3guKHguLLguYDguKXguLTguKgNCivguKHguKLguLjguKPguLIg4LiI4Li14Lij4LiI4Lij4Li04Lii4Liy4LmA4Lin4LiKDQor4Lih4Lii4Li44Lij4Li1IOC4geC4peC4tOC5iOC4meC4guC4iOC4ow0KK+C4oeC4ouC4uOC4o+C4tSDguIjguIfguK3guLjguJTguKHguJfguKPguLHguJ7guKLguYwNCivguKHguKLguLjguKPguLUg4LmA4LiJ4Lil4Li04Lih4LmA4LiC4LiV4LiV4LmMDQor4Lih4Lii4Li44Lij4Li1IOC5gOC4lOC4iuC4quC4oeC4pOC4l+C4mOC4tOC5jOC4pOC4l+C4seC4og0KK+C4oeC4ouC4uOC4o+C4tSDguJjguJnguLLguYDguIHguLXguKLguKPguJXguLTguKDguLTguI3guYLguI0NCivguKHguKLguLjguKPguLUg4Lib4Li04LmI4LiZ4LmB4LiB4LmJ4LinDQor4Lih4Lii4Li44Lij4Li1IOC5gOC4nuC5h+C4iuC4o+C5jOC4nuC4meC4oeC4nuC4ow0KK+C4oeC4ouC4uOC4o+C4tSDguYHguKLguYnguKHguYDguIHguKnguKMNCivguKHguKLguLjguKPguLUg4Lin4LiH4Lip4LmM4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lih4Lii4Li44Lij4Li1IOC4quC4luC4suC4nuC4o+C4p+C4uOC4kuC4tOC4hOC4uOC4kw0KK+C4oeC4ouC4uOC4o+C4tSDguYTguKrguKLguKrguKHguJrguLHguJXguLQNCivguKHguKLguLjguKPguLUg4LmA4Lit4Li14LmI4Lii4Lih4LmA4LiI4Lij4Li04LiNDQor4Lih4Lij4LiB4LiVIOC4iOC4seC4meC4l+C4o+C5jOC4l+C4reC4hw0KK+C4oeC4o+C4geC4lSDguKjguKLguLLguKHguKUNCivguKHguKPguLTguJnguLIg4LiU4LmI4Liy4LiZ4Lin4LiZ4Li04LiKDQor4Lih4Lil4LiR4LiyIOC4nuC4tOC4oeC4nuC5jOC5gOC4q+C4peC4teC5iOC4ouC4oQ0KK+C4oeC4peC4nOC4geC4siDguKrguKPguKPguYDguJ7guIrguJTguLLguI3guLLguJkNCivguKHguKXguKTguJTguLUg4Lib4Lij4Liw4Liq4LiH4LiE4LmM4Lic4LilDQor4Lih4Lil4Lin4Li04Lig4LiyIOC5g+C4iOC4q+C4peC4seC4gQ0KK+C4oeC4peC4tCDguKvguKXguLXguKrguLjguILguYDguKrguKPguLTguJANCivguKHguKXguLTguKfguLHguKXguKLguYwg4LmB4LiB4LmJ4Lin4Liq4Lie4Liy4LiZDQor4Lih4Lil4Li04Lin4Lix4Lil4Lii4LmMIOC4nuC4iOC4meC4quC4seC4iA0KK+C4oeC4peC4tOC4p+C4seC4peC4ouC5jCDguKrguLjguILguJvguKPguLDguKrguLLguJcNCivguKHguYjguKfguKIg4LmB4LiL4LmI4LiE4Li5DQor4Lih4LmI4Lin4LiiIOC4quC4luC4tOC4o+C4iuC4p+C4suC4pQ0KK+C4oeC5iOC4p+C4ouC5gOC4geC4teC5ieC4oiDguKXguLLguIjguLHguIfguKvguKPguLXguJQNCivguKHguYnguKfguKIg4LmA4Lir4Lil4LmI4Liy4Liq4Li04Lij4Li04Lig4Li54Lih4Li0DQor4Lih4Lit4LiL4LmMIOC4geC4suC4oeC4o+C4ueC4lOC4tOC4mQ0KK+C4oeC4sOC4meC4tOC4leC4ouC5jCDguYDguIrguLfguYnguK3guJnguLjguIoNCivguKHguLDguKXguLQg4LiB4Lil4Li04LmI4LiZ4Lih4Liy4Lil4LiyDQor4Lih4Liw4Lil4Li0IOC4iOC4tOC4p+C4sOC4quC4oeC4q+C4p+C4seC4hw0KK+C4oeC4sOC4peC4tCDguJTguYnguKfguIfguYDguIfguLTguJkNCivguKHguLDguKXguLQg4LiZ4Liy4Lih4Lih4LiZ4LiV4Lij4Li1DQor4Lih4Liw4Lil4Li0IOC4nuC4tOC4o+C4tOC4ouC4sOC4reC4meC4meC4l+C5jA0KK+C4oeC4sOC4peC4tCDguKPguLnguJvguJ7guKPguKvguKENCivguKHguLDguKXguLQg4Liq4Liy4LiY4Li4DQor4Lih4Liw4Lil4Li0IOC4reC4oeC4o+C4tOC4meC4l+C4o+C5jOC5gOC4l+C4p+C4sg0KK+C4oeC4sOC4peC4tOC4p+C4o+C4o+C4kyDguKPguLLguKLguJPguLDguKrguLjguIINCivguKHguLDguKXguLTguKfguLHguKXguKLguYwg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lih4Liw4Lil4Li04Lin4Lix4Lil4Lii4LmMIOC4p+C4seC4kuC4meC4geC4tOC4leC4leC4tOC4nuC4ow0KK+C4oeC4sOC4q+C4sOC4q+C4oeC4suC4lOC4o+C4suC4q+C4p+C4tSDguJnguLLguJvguLLguYDguKXguJkNCivguKHguLHguIfguIHguKMg4LiI4Li14Lij4Lig4Lix4LiX4Lij4LmMDQor4Lih4Lix4LiH4LiB4LijIOC4ouC4suC4meC5ieC4reC4og0KK+C4oeC4seC4iOC4ieC4o+C4tSDguYHguIvguYjguYDguJXguLXguYvguKLguKcNCivguKHguLHguJPguJHguJnguLIg4LiB4Li54LmJ4Liq4Li44Lin4Lij4Lij4LiT4Lin4Li04LiI4Li04LiV4LijDQor4Lih4Lix4LiT4LiR4LiZ4LiyIOC4mOC4suC4lOC4suC4quC4teC4q+C5jA0KK+C4oeC4seC4k+C4keC4meC4siDguKPguLHguJXguIrguLDguJbguLLguKfguKMNCivguKHguLHguJPguJHguJnguLIg4Lit4Lii4Li54LmI4Lii4LiH4LiE4LmMDQor4Lih4Lix4LiUIOC5gOC4lOC4iuC4sOC4iuC4teC4ng0KK+C4oeC4seC4l+C4meC4siDguYLguIrguITguKfguKPguKfguLHguJLguJnguIHguKMNCivguKHguLHguJfguJnguLIg4LmC4Lit4Liq4LiW4Lir4LiH4Lip4LmMDQor4Lih4Lix4LiY4Lii4LiyIOC4o+C4p+C4oeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4oeC4seC4meC4l+C4meC4siDguKjguKPguKrguLTguIfguKvguYwNCivguKHguLHguJnguYLguKHguK7guLHguJnguIvguLTguIfguKvguYwg4LiI4Liy4Lin4Lil4Liy4Lir4LmMDQor4Lih4Lix4LmJ4LiZ4Lif4LiyIOC5geC4i+C5iOC5gOC4leC4teC4ouC4pw0KK+C4oeC4seC4peC4peC4tOC4geC4siDguIrguLHguKLguKrguLTguKPguLTguYLguKPguIjguJnguYwNCivguKHguLHguKXguKXguLTguIHguLIg4Lie4LiH4Lio4LmM4LmA4LiV4LmH4Lih4Liq4Li44LiCDQor4Lih4Lix4Lil4Lil4Li04LiB4LiyIOC4qOC4o+C4teC4p+C4teC4o+C4sOC4p+C4suC4meC4tOC4iuC4geC4uOC4pQ0KK+C4oeC4seC4peC4peC4tSDguIjguIfguYDguIHguKnguKENCivguKHguLLguIEg4LmA4Lir4Lih4Li34Lit4LiZ4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lih4Liy4LiT4LieIOC4o+C4uOC4iOC4meC4tOC4quC4o+C4geC4uOC4pQ0KK+C4oeC4suC4k+C4tSDguJrguLjguI3guKvguKXguIcNCivguKHguLLguJTguLUg4LmB4LiL4LmI4LmC4LiE4LmJ4LinDQor4Lih4Liy4LiZ4LiZ4LiX4LmMIOC5guC4leC4p+C4h+C4qOC5jOC4qOC4o+C4teC5gOC4iOC4o+C4tOC4jQ0KK+C4oeC4suC4meC4niDguILguLPguIrguLfguYjguJkNCivguKHguLLguJnguJ4g4LiI4Li04LiV4LiV4LmA4LiB4Lip4LihDQor4Lih4Liy4LiZ4LieIOC4i+C4seC4muC4i+C5ieC4reC4mQ0KK+C4oeC4suC4meC4niDguJfguKPguIfguYDguKrguLXguYjguKLguIfguIrguLHguKINCivguKHguLLguJnguJ4g4LiZ4Li04LmI4Lih4LiZ4Lin4Lil4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4Lih4Liy4LiZ4LieIOC4m+C4tOC4ouC4sOC4quC4reC4mQ0KK+C4oeC4suC4meC4niDguJ7guLbguYjguIfguK3guLPguJnguKfguKINCivguKHguLLguJnguJ4g4Lih4Li54Liu4Liz4Lir4Lih4Lix4LiUDQor4Lih4Liy4LiZ4LieIOC4peC4teC4peC4suC4q+C4tOC4o+C4seC4jQ0KK+C4oeC4suC4meC4niDguKjguKPguLXguKrguIfguKfguJkNCivguKHguLLguJnguJ4g4Liq4Li44LiC4Lin4LiH4Lip4LmM4Lio4Li04Lil4Lib4LmMDQor4Lih4Liy4LiZ4LieIOC5gOC4q+C4peC5iOC4suC4guC4p+C4seC4jeC4quC4luC4tOC4leC4ouC5jA0KK+C4oeC4suC4meC4p+C4tOC4oOC4siDguKHguLLguKjguJ7guIfguKjguYwNCivguKHguLLguJnguLAg4LiH4Liy4Lih4Lin4Lix4LiK4Lij4Liq4LiB4Li44LilDQor4Lih4Liy4LiZ4LiwIOC5gOC4iuC4teC5iOC4ouC4p+C4quC4h+C4p+C4mQ0KK+C4oeC4suC4meC4sCDguJfguKPguLHguJ7guKLguYzguIfguLLguKHguKjguLTguKPguLQNCivguKHguLLguJnguLAg4Lia4Li44LiN4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lih4Liy4LiZ4LiwIOC4nuC4tOC4oeC4nuC5jOC4quC4oeC4uOC4l+C4ow0KK+C4oeC4suC4meC4sCDguKPguLHguJXguJnguIfguLLguKHguIHguLjguKUNCivguKHguLLguJnguLAg4Lin4Li04Liq4Li44LiX4LiY4Li04LmM4Liq4Lih4Li44LiX4LijDQor4Lih4Liy4LiZ4LiwIOC4quC4teC4nOC5iOC4reC4hw0KK+C4oeC4suC4meC4sCDguK3guLTguJnguJfguKPguJ7guLTguJnguJfguLjguKfguLHguJLguJnguYwNCivguKHguLLguJnguLHguJUg4Lii4Lit4LiU4Lih4LiZ4LiV4LmMDQor4Lih4Liy4LiZ4Lix4LiqIOC4o+C4uOC5iOC4h+C5gOC4l+C4teC4ouC4oQ0KK+C4oeC4suC4meC4tOC4iCDguJfguLTguKHguJ7guLHguJLguJnguJ7guIfguKjguYwNCivguKHguLLguJnguLTguJTguLIg4Lij4Lix4LiK4LiU4Liy4LiX4Li04LiV4Lii4LmMDQor4Lih4Liy4LiZ4Li04LiVIOC5gOC4iOC4teC4ouC4o+C4lOC4tOC4kA0KK+C4oeC4suC4meC4tOC4lSDguJnguLTguKXguYDguILguJXguKPguYwNCivguKHguLLguJnguLTguJUg4Lii4Lio4Lit4LiZ4Lix4LiZ4LiV4LiB4Li44LilDQor4Lih4Liy4LiZ4Li04LiVIOC4quC4uOC4iOC4o+C4tOC4leC4p+C4seC4kuC4meC4qOC4seC4geC4lOC4tOC5jA0KK+C4oeC4suC4meC4tOC4leC4ouC5jCDguIHguLLguKvguKXguIcNCivguKHguLLguJnguLTguJXguKLguYwg4LiI4Li44LiZ4LiX4LiB4Liy4LijDQor4Lih4Liy4LiZ4Li04LiV4Lii4LmMIOC4lOC4tOC4qeC4kOC4p+C4tOC4qOC4suC4pQ0KK+C4oeC4suC4meC4tOC4leC4ouC5jCDguJnguLLguITguYTguJfguKINCivguKHguLLguJnguLTguJXguKLguYwg4LmA4Lic4Li34Lit4LiB4Lin4Lix4LiS4LiZ4LiwDQor4Lih4Liy4LiZ4Li04LiV4Lii4LmMIOC4oeC4teC4iuC4meC4sA0KK+C4oeC4suC4meC4tOC4leC4ouC5jCDguKfguIfguKjguYzguIHguLTguJXguJXguLTguJ7guLHguJLguJnguLINCivguKHguLLguJnguLTguJXguKLguYwg4Liq4Lix4LiI4LiI4LmA4LiU4LiK4LiwDQor4Lih4Liy4LiZ4Li04LiV4Lii4LmMIOC4reC4meC4uOC4o+C4seC4leC4meC5jOC4nuC4suC4meC4tOC4ig0KK+C4oeC4suC4meC4tOC4quC4siDguYDguKHguIbguKjguLTguKPguLTguIHguLjguKUNCivguKHguLLguJnguLXguKPguLHguJXguJnguYwg4Lih4Lix4LiX4LiY4Lin4Lij4Lix4LiV4LiZ4LmMDQor4Lih4Liy4Lij4Lii4Liy4LiXIOC4iOC4seC4leC4uOC4o+C4h+C4hOC5jA0KK+C4oeC4suC4o+C4qOC4o+C4tSDguIjguLHguJnguJfguKPguYzguYDguKHguLfguK3guIcNCivguKHguLLguKPguKjguKPguLUg4Lii4Liw4Lit4Li44LmC4Lih4LiH4LiE4LmMDQor4Lih4Liy4Lij4Lio4Lij4Li1IOC4reC4seC4quC4p+C4sOC4p+C4tOC4quC4tOC4l+C4mOC4tOC5jOC4iuC4seC4og0KK+C4oeC4suC4o+C4tOC4qSDguJfguYjguLLguKPguLLguJoNCivguKHguLLguKPguLTguKrguLIg4LiB4Liy4LiN4LiI4LmC4LiZ4Lig4Liy4LiqDQor4Lih4Liy4Lij4Li04Liq4LiyIOC4quC4uOC4l+C4mOC4tOC4p+C4o+C4o+C4k+C4suC4o+C4seC4leC4meC5jA0KK+C4oeC4suC4o+C4uOC4iOC4siDguKrguLjguKPguJ7guLHguJnguJjguLjguYwNCivguKHguLLguKPguLjguJUg4Liq4Li44LiZ4LiX4Lij4Lio4Li04Lij4Li04Lia4Li44LiN4LiN4LiyDQor4Lih4Liy4Lil4Lix4LiiIOC4guC4s+C5gOC4iOC4o+C4tOC4jeC4nuC4ow0KK+C4oeC4suC4peC4seC4oiDguIrguKHguJ7guLnguJrguLjguJXguKMNCivguKHguLLguKXguLHguKIg4LiU4Lit4LiB4Lia4Lix4Lin4Lir4Lil4Lin4LiHDQor4Lih4Liy4Lil4Lix4LiiIOC4meC4suC5g+C4q+C5ieC4nOC4pQ0KK+C4oeC4suC4peC4seC4oiDguJ7guKPguKvguKHguKrguKfguLHguKrguJTguLTguYwNCivguKHguLLguKXguLHguKIg4Lii4Lix4LiH4Liq4Lin4LmI4Liy4LiHDQor4Lih4Liy4Lil4Lix4LiiIOC4qOC4o+C4teC4iuC5ieC4suC4h+C4reC4tOC5iOC4oQ0KK+C4oeC4suC4peC4seC4oiDguYHguKrguIfguIfguLTguYnguKcNCivguKHguLLguKXguLHguKLguIHguKPguK3guIcg4Lih4Li54Lil4Lio4Liy4Liq4LiV4Lij4LmMDQor4Lih4Liy4Lil4LiyIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4oeC4suC4peC4siDguKvguLTguKPguLHguI3guKTguJfguJjguLTguYwNCivguKHguLLguKXguLTguJkg4LiK4Lil4Liy4LiZ4Li44LmA4LiE4Lij4Liy4Liw4Lir4LmMDQor4Lih4Liy4Lil4Li04LiZ4Li1IOC4geC4s+C5gOC4meC4tOC4lOC4lOC4tOC4qeC4kOC5jA0KK+C4oeC4suC4peC4tOC4meC4tSDguIrguK3guLjguYjguKHguJ7guKTguIHguKnguYwNCivguKHguLLguKXguLTguJnguLUg4LiX4Lij4Lix4Lie4Lii4Lin4LiT4Li04LiKDQor4Lih4Liy4Lil4Li04LiZ4Li1IOC5geC4m+C5ieC4h+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4oeC4suC4peC4tOC4meC4tSDguKLguK3guJTguYLguJ7guJjguLTguYzguJfguK3guIcNCivguKHguLLguKXguLTguJnguLUg4Lio4Lij4Li14Liq4Li44Lin4Lix4LiI4Lij4Li14Lii4LmMDQor4Lih4Liy4Lil4Li04LiZ4Li1IOC4q+C4pOC4l+C4seC4ouC4quC4tOC4o+C4tOC4o+C4seC4leC4meC5jA0KK+C4oeC4suC4peC4tSDguIHguKXguLHguYjguJnguIjguLHguIfguKvguKPguLXguJQNCivguKHguLLguKXguLUg4LiB4Li44LiZ4Liw4Lin4LiH4Lip4LmMDQor4Lih4Liy4Lil4Li1IOC4guC4seC4meC4leC4tOC4p+C4h+C4p+C4suC4ow0KK+C4oeC4suC4peC4tSDguYDguITguKPguLfguK3guYDguInguKXguLTguKHguJ7guLHguJnguJjguYwNCivguKHguLLguKXguLUg4LiI4Lix4LiZ4LmD4LiI4LmA4LiU4LmH4LiUDQor4Lih4Liy4Lil4Li1IOC5gOC4iOC4o+C4tOC4jeC5gOC4geC4qeC4geC4tOC4iA0KK+C4oeC4suC4peC4tSDguIrguLHguKLguKfguJnguLTguIrguKLguLINCivguKHguLLguKXguLUg4LmA4LiK4Li34LmJ4Lit4Lio4Li04Lij4Li0DQor4Lih4Liy4Lil4Li1IOC5geC4i+C5iOC4leC4seC4mQ0KK+C4oeC4suC4peC4tSDguYHguIvguYjguYDguJXguYfguIcNCivguKHguLLguKXguLUg4LiU4Liz4Lij4LiH4LiB4Li04LiI4LiB4Li44Lil4LiK4Lix4LiiDQor4Lih4Liy4Lil4Li1IOC4leC4seC4meC4leC4tOC4m+C4tOC4j+C4gQ0KK+C4oeC4suC4peC4tSDguJfguKfguLXguKjguKPguLUNCivguKHguLLguKXguLUg4LiY4Lij4Lih4LiY4Lix4LiKDQor4Lih4Liy4Lil4Li1IOC4meC4tOC4oOC4suC4geC4o+C4nuC4seC4meC4mOC5jA0KK+C4oeC4suC4peC4tSDguJrguLjguI3guKPguK3guJQNCivguKHguLLguKXguLUg4Lib4Liy4LiZ4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lih4Liy4Lil4Li1IOC4nuC4h+C4qOC5jOC4quC4s+C4o+C4suC4jQ0KK+C4oeC4suC4peC4tSDguJ7guLHguJnguJzguLbguYnguIcNCivguKHguLLguKXguLUg4LmB4Lie4Lij4LmI4Lio4Lij4Li14LiV4Lij4Liw4LiB4Li54LilDQor4Lih4Liy4Lil4Li1IOC4oeC4meC4leC5jOC4p+C4tOC5gOC4qOC4qQ0KK+C4oeC4suC4peC4tSDguKLguKfguIfguYDguIfguLTguJkNCivguKHguLLguKXguLUg4Lij4Lix4LiV4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Lih4Liy4Lil4Li1IOC4peC4tOC4oeC4m+C4tOC4ouC4suC4geC4ow0KK+C4oeC4suC4peC4tSDguKfguIfguKjguYzguYHguKvguKXguKHguJfguK3guIcNCivguKHguLLguKXguLUg4Lin4Li04Lil4Lix4Lii4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMDQor4Lih4Liy4Lil4Li1IOC4qOC4tOC4o+C4tOC4hOC4h+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4oeC4suC4peC4tSDguKrguKPguYnguLLguIfguITguKfguLLguKHguITguLTguJQNCivguKHguLLguKXguLUg4Liq4Li04LiZ4Lie4Liy4LiZ4Li04LiKDQor4Lih4Liy4Lil4Li1IOC4quC4uOC4o+C4seC4leC4meC4iuC4seC4ouC4geC4suC4ow0KK+C4oeC4suC4peC4tSDguKvguJnguLbguYjguIfguJTguKfguIfguIHguKHguKUNCivguKHguLLguKXguLUg4Lit4LiV4Li04LmB4Lie4LiX4Lii4LmMDQor4Lih4Liy4Lil4Li1IOC4reC4suC4l+C4ow0KK+C4oeC4suC4peC4tSDguK3guLjguYnguKLguK3guLTguYjguKHguJfguKPguLHguJ7guKLguYwNCivguKHguLLguKXguLXguJ7guLHguJnguJjguYwg4Lij4Lix4LiQ4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lih4Liy4Lil4Li14Lij4Lix4LiV4LiZ4LmMIOC4qOC4uOC4oOC4l+C4meC4leC5jA0KK+C4oeC4suC4p+C4tOC4mSDguKjguKPguLXguKHguJPguLXguJ7guLHguJnguJjguYwNCivguKHguLLguYDguKPguLXguKIg4Lin4Lij4Lij4LiT4Liy4Lie4LiH4Lio4LmMDQor4Lih4Liy4LmA4Lij4Li14Lii4LihIOC4muC4ueC4o+C4k+C4sOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4h+C4geC4tOC4iA0KK+C4oeC4suC5gOC4o+C4teC4ouC4oSDguKrguLjguJfguJjguLTguKjguLXguKXguJjguKPguKPguKENCivguKHguLLguYLguJnguIog4LiB4Liz4LiI4Lix4LiU4Lig4Lix4LiiDQor4Lih4Liy4LmC4LiZ4LiKIOC4iuC4seC4ouC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4oeC4suC5guC4meC4iiDguJjguKPguKPguKHguKPguLHguIrguKrguLjguJnguJfguKMNCivguKHguLLguYLguJnguIog4LmA4Lib4Lij4Lih4LmB4LiB4LmJ4LinDQor4Lih4Liy4LmC4LiZ4LiKIOC4oeC4teC4qOC4o+C4tQ0KK+C4oeC4suC5guC4meC4iiDguKfguLTguIrguLTguJXguKfguLLguKrguLjguYDguJfguJ4NCivguKHguLLguYLguJnguIog4LmB4Liq4LiH4Liq4Li44LiCDQor4Lih4Liy4LmC4LiZ4LiK4LiN4LmMIOC4iuC4meC4sOC4oOC4seC4og0KK+C4oeC4suC5guC4meC4iuC4jeC5jCDguK3guKPguLjguJPguKPguLHguKjguKHguLUNCivguKHguYnguLLguYDguKrguLXguYjguKLguIcg4LmB4LiL4LmI4Lih4LmJ4LiyDQor4Lih4Li04LmI4LiH4LiC4Lin4Lix4LiNIOC5gOC4oeC4leC4leC4suC4geC4o+C4uOC4k+C4suC4geC4uOC4pQ0KK+C4oeC4tOC4leC4oyDguJnguLLguITguYDguKrguJkNCivguKHguLTguJXguKPguKDguLLguJ4g4Lia4Li44LiN4LiK4Li54LiK4LmI4Lin4LiiDQor4Lih4Li04LmI4LiZIOC5gOC4q+C4peC5iOC4suC4iuC4suC4jeC4geC4tOC4iOC4p+C4meC4tOC4ig0KK+C4oeC4tSDguJfguK3guIfguYDguKPguLfguK3guIcNCivguKHguLXguIrguLHguKIg4LiZ4Liw4Lij4LiyDQor4Lih4Li14LiK4Lix4LiiIOC4q+C4h+C4qeC5jOC4nuC4suC4meC4tOC4ig0KK+C4oeC4teC4meC4siDguYLguKPguIjguJnguYzguKfguLTguIrguIrguLINCivguKHguLXguKjguLTguKPguLQg4LiB4Li04LiI4LmE4Lie4Lio4Liy4Lil4LiU4Liz4Lij4LiHDQor4Lih4Li44LiBIOC4muC4uOC4jeC4ouC4t+C4mQ0KK+C4oeC4uOC4geC4lOC4siDguInguLHguJXguKPguYHguIHguYnguKcNCivguKHguLjguIHguJTguLIg4LmA4LiX4Lio4Lia4Lij4Lij4LmA4LiX4Li04LiHDQor4Lih4Li44LiB4LiU4LiyIOC4oeC4seC5iOC4meC4qOC4tOC4o+C4tA0KK+C4oeC4uOC4geC4lOC4siDguKjguLTguKXguLLguYLguKPguIjguJnguYwNCivguKHguLjguIHguJTguLIg4Lit4Li04LiX4LiY4Li04LiY4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lih4Li44LmI4LiH4Lih4Li44LmJ4LiiIOC5geC4i+C5iOC4q+C4ouC4tOC4mQ0KK+C4oeC4uOC4l+C4tOC4leC4siDguJbguJnguK3guKHguJfguKPguLHguJ7guKLguYwNCivguKHguLjguKLguYDguJXguLXguKLguIcg4Lio4Li04Lij4Li04Lit4Lix4LiE4Lij4LiB4Lij4LiB4Li44LilDQor4Lih4Li44LmI4Lii4LmA4LiE4LmH4LiHIOC5geC4i+C5iOC5gOC4ruC5ieC4hw0KK+C4oeC4uOC5ieC4ouC4h+C5ieC4rSDguYHguIvguYjguYLguIfguYnguKcNCivguKHguLjguKrguJXguLLguJ/guLIg4Lih4Liw4Lir4Liw4Lir4Lih4Lix4LiUDQor4Lih4Li54Lir4Liw4Lir4Lih4Lix4LiUIOC5gOC4quC4t+C4reC4quC4oeC4tOC4hw0KK+C4oeC5guC4mSDguIjguIfguJjguJnguLnguJjguKPguKPguKENCivguKHguYLguJnguKPguKog4Lii4Lit4LiU4Lii4Li04LmI4LiHDQor4LmA4Lih4LiV4LiV4LiyIOC5gOC4geC4tOC4lOC4meC4suC4hA0KK+C5gOC4oeC4leC4leC4siDguJvguLTguJXguKLguLLguJnguJnguJfguYwNCivguYDguKHguJXguJXguLIg4Liq4Li04LiX4LiY4Li04Liq4Li44Lin4Lij4Lij4LiTDQor4LmA4Lih4LiX4Li04LiZ4Li1IOC4lOC4suC4o+C4suC4nuC4seC4leC4ow0KK+C5gOC4oeC4mOC4siDguYHguIvguYjguYDguK7guYnguIcNCivguYDguKHguJjguLIg4Lin4LiH4Lio4LmM4Lin4Liy4LiZ4Li04LiKDQor4LmA4Lih4LiY4Liy4LiT4Li1IOC4h+C4suC4oeC4l+C4p+C4teC4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C5gOC4oeC4mOC4tOC4meC4tSDguJfguKPguLHguJ7guKLguYzguJvguKPguLDguYDguKrguKPguLTguJANCivguYDguKHguJjguLUg4LiI4Lij4Li54LiN4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmM4Lie4LijDQor4LmA4Lih4LiY4Li1IOC4muC4seC4p+C4qOC4o+C4tQ0KK+C5gOC4oeC4mOC4tSDguKPguLHguJXguJnguJXguLHguYnguIfguJXguKPguLDguIHguLnguKUNCivguYDguKHguJjguLUg4Lir4LiH4Lip4LmM4LiX4Lit4LiHDQor4LmA4Lih4Lip4LiQ4Lij4Lix4LiV4LiZ4LmMIOC4oeC4meC5gOC4l+C4teC4ouC4o+C4l+C4reC4hw0KK+C5gOC4oeC4teC5iOC4ouC4p+C4iOC4tOC4hyDguYHguIvguYjguK3guLfguYnguK0NCivguYDguKHguLXguYnguKLguKfguKvguKLguLTguYnguJkg4LmB4LiL4LmI4LiB4LitDQor4LmA4Lih4LmI4LiH4LiL4LiBIOC5geC4i+C5iOC4iOC4tOC4pw0KK+C5gOC4oeC5ieC4hyDguYHguIvguYjguInguLHguYjguKcNCivguYHguKHguJkg4LiJ4Liy4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4LmB4Lih4Lij4Li14LmIIOC5geC4p+C4meC4lOC4sg0KK+C5geC4oeC5ieC4meC4oeC4suC4leC4oyDguYHguK3guYnguJnguIrguLHguKLguKDguLnguKHguLQNCivguYLguKHguKzguLUg4LiE4LiH4LiB4Lil4Liy4LiHDQor4LmE4LihIOC4meC4p+C4peC5gOC4meC4leC4ow0KK+C5hOC4oeC4leC4o+C4tSDguIrguLnguKHguJPguLUNCivguYTguKHguJXguKPguLUg4Lia4Lix4Lin4LmA4LiZ4LiV4LijDQor4LmE4Lih4LiV4Lij4Li1IOC5gOC4peC4tOC4qOC5gOC4nuC4teC4ouC4o+C4nuC4tOC4l+C4ouC4geC4uOC4pQ0KK+C5hOC4oeC4leC4o+C4tSDguKvguLLguI3guJjguJnguKfguLjguJLguLTguIrguLHguKINCivguYTguKHguYkg4Lio4Lij4Li14Liq4LiH4LmI4LiyDQor4Lii4LiHIOC5gOC4leC4iuC4sOC4nuC4h+C4qOC4mOC4ow0KK+C4ouC4h+C4hOC5jOC4iuC4seC4oiDguJfguKjguJ7guKXguK3guKDguLTguJnguLHguJnguJfguYwNCivguKLguIfguIrguLHguKIg4LiE4Li44LiT4LiY4Lij4Lij4Lih4LiU4Li1DQor4Lii4LiH4Lii4LioIOC4m+C4o+C4tOC4nuC4pOC4leC4tOC4nuC4h+C4qOC5jA0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguIHguLTguIjguJ7guIfguKnguYzguJnguLTguIHguKMNCivguKLguIfguKLguLjguJfguJgg4LiG4Lix4LiH4LiZ4Li04Lih4Li04LiV4LijDQor4Lii4LiH4Lii4Li44LiX4LiYIOC5g+C4iOC5gOC4iOC4o+C4tOC4jeC4mOC4o+C4o+C4oeC4geC4uOC4pQ0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguYHguIvguYjguYDguJXguLfguYnguK3guIcNCivguKLguIfguKLguLjguJfguJgg4LiW4Li14Lij4Liw4Lin4LiH4Lio4LmMDQor4Lii4LiH4Lii4Li44LiX4LiYIOC4meC4suC4hOC4sOC4nuC4h+C4qOC5jA0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguJvguLHguI3guI3guLLguKrguIHguLjguKXguKfguIfguKjguYwNCivguKLguIfguKLguLjguJfguJgg4Lie4Li44LiX4LiY4Liq4Li44Lin4Lij4Lij4LiTDQor4Lii4LiH4Lii4Li44LiX4LiYIOC5gOC4oeC4leC4sOC4qOC4tOC4o+C4tA0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguKXguK3guKLguYDguKHguIYNCivguKLguIfguKLguLjguJfguJgg4Lin4Li04LmA4LiK4Li14Lii4Lij4Liq4Lij4Lij4LiE4LmMDQor4Lii4LiH4Lii4Li44LiX4LiYIOC4quC4oeC4tOC4l+C4mOC4tOC5gOC4lOC4iuC4geC4uOC4pQ0KK+C4ouC4h+C4ouC4uOC4l+C4mCDguKrguLjguKfguKPguKPguJPguYDguJ7guYfguIrguKMNCivguKLguIfguKLguLjguJfguJgg4Lit4LmI4Lit4LiH4Lia4Liy4LiH4LiZ4LmJ4Lit4LiiDQor4Lii4LiH4Lii4Li44LiX4LiY4Li04LmMIOC4p+C4o+C4p+C4uOC4kuC4tA0KK+C4ouC4h+C4p+C4seC4kuC4meC5jCDguJrguLnguKPguJPguLDguJvguI/guLTguKHguLLguIHguKMNCivguKLguIfguKrguLTguJkg4LmA4LiV4LiK4Liy4Lih4Lir4LiK4Lix4LiiDQor4Lii4LmI4LiH4Liu4Lin4LiUIOC5geC4i+C5iOC4peC4teC5iQ0KK+C4ouC5ieC4hyDguYHguIvguYjguKXguLXguYkNCivguKLguJnguJXguYwg4Lia4Li44LiN4LmA4Lir4Lil4Li34Lit4Lir4Lil4LmI4LitDQor4Lii4Lih4LmC4LiU4LiiIOC4iuC4peC4suC4ouC4meC4meC4suC4p+C4tOC4mQ0KK+C4ouC4o+C4o+C4ouC4hyDguJrguLjguI3guKrguKHguJ7guIfguKnguYwNCivguKLguKPguKPguKLguIcg4Lio4Li44Lig4Lin4Li04LiR4Li54Lij4Lii4LmMDQor4Lii4Lij4Lij4Lii4LiH4LiE4LmMIOC4nuC4peC4qOC4tOC4o+C4tA0KK+C4ouC4p+C4hyDguKXguK3guKLguKrguLINCivguKLguYnguKfguJkg4Lie4Lix4LiZ4LiZ4LiBDQor4Lii4LioIOC4quC4oeC4muC4ueC4o+C4k+C5jOC4iOC4seC4meC4l+C4o+C5jA0KK+C4ouC4qOC4o+C4suC4p+C4lOC4tSDguYDguJvguLXguYjguKLguKHguK3guKPguLjguJMNCivguKLguK3guJQg4LiB4Lil4Li04LmI4LiZ4LiB4Lil4Lix4LmI4LiZDQor4Lii4Lit4LiUIOC4quC4seC4meC4leC4tOC4meC4tOC5gOC4p+C4qOC4meC5jA0KK+C4ouC4reC4lOC4mOC4hyDguYDguIjguKPguLTguI3guIjguIfguKfguLTguJfguKLguLINCivguKLguK3guJTguKjguLHguIHguJTguLTguYwg4Lir4Lil4LmI4Lit4LiI4Li04LiV4LiV4LmM4LmA4Liq4Li14Lii4LiHDQor4Lii4LiwIOC5gOC4geC4tOC4lOC4reC4ouC4ueC5iA0KK+C4ouC4seC4geC5guC4oeC4ruC4seC4meC4i+C4tOC4h+C4q+C5jCDguKLguLHguIHguYLguKHguK7guLHguJnguIvguLTguIfguKvguYwNCivguKLguLHguKrguJrguLXguKPguIvguLTguIfguKvguYwg4Lii4Lix4Liq4Lia4Li14Lij4LiL4Li04LiH4Lir4LmMDQor4Lii4Liy4LiU4LiyIOC5gOC4qOC4p+C4leC4leC4suC4meC4uOC4quC4o+C4k+C5jA0KK+C4ouC4suC5g+C4iCDguYHguIvguYjguKXguLXguYkNCivguKLguYnguLIg4LmA4Lit4LiB4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lii4Li04LmI4LiH4Lii4LiHIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4ouC4tOC5iOC4h+C4ouC4qCDguJrguLjguJnguJnguLLguIQNCivguKLguLTguYjguIfguKjguLHguIHguJTguLTguYwg4Lib4Lix4LiI4LiK4Liy4Lih4Liy4LiV4Lii4LmMDQor4Lii4Li04LiZIOC5gOC4quC4oeC4reC5gOC4iuC4t+C5ieC4rQ0KK+C4ouC4tOC4meC4lOC4tSDguJ7guKPguKHguYDguIHguJXguLgNCivguKLguLTguJnguJTguLUg4Lit4Li04LiZ4LiX4Lij4Lih4LiH4LiE4LilDQor4Lii4Li04LmJ4LihIOC4meC4suC4quC4oeC4meC4tuC4gQ0KK+C4ouC4tOC5ieC4pyDguKvguKXguLTguKfguJvguKPguLDguYDguKrguKPguLTguJANCivguKLguLXguYjguKrguLjguYjguJkg4Lio4Li44LiB4Lij4Liw4Lin4LiT4Li04LiKDQor4Lii4Li34LiZ4Lii4LiHIOC4meC4uOC4oOC4suC4ng0KK+C4ouC4uOC4geC4ouC4tOC5ieC4mSDguYDguIrguLXguKLguIfguInguLTguJkNCivguKLguLjguITguKXguJjguKMg4LmC4Lit4Lit4LiU4Li04Lio4Lix4LiiDQor4Lii4Li44LiX4LiYIOC5gOC4iOC4o+C4tOC4jeC4hOC4leC4tOC4mOC4o+C4o+C4oQ0KK+C4ouC4uOC4l+C4mCDguKvguJnguLjguJnguKDguLHguIHguJTguLUNCivguKLguLjguJfguJjguIrguLHguKIg4LiZ4LmJ4Liz4LiX4Li04Lie4Lii4LmMDQor4Lii4Li44LiX4LiY4LiZ4Lix4LiZ4LiX4LmMIOC5gOC4geC4qeC4teC4ouC4o+C4mOC4suC4lOC4suC4meC4meC4l+C5jA0KK+C4ouC4uOC4l+C4mOC4meC4siDguIjguKPguLTguIfguYPguIjguIHguLjguKUNCivguKLguLjguJfguJjguJnguLIg4LiU4Li44LiI4LiV4Li04Lib4Li04Lii4LiwDQor4Lii4Li44LiX4LiY4LiZ4LiyIOC4muC4uOC4k+C4ouC4sOC4p+C4uOC4kuC4geC4uOC4pQ0KK+C4ouC4uOC4l+C4mOC4meC4siDguYLguKDguITguJvguKPguLDguYDguKrguKPguLTguJANCivguKLguLjguJfguJjguJnguLIg4Lin4Liy4LiZ4Li04LiK4Lit4Lix4LiH4LiB4Li54LijDQor4Lii4Li44LiX4LiY4LiZ4LiyIOC4quC4uOC4iOC4tOC4meC4leC4p+C4h+C4qeC5jA0KK+C4ouC4uOC4l+C4mOC4meC4siDguYDguK3guLXguYjguKLguKHguKrguLTguJnguJjguLjguYwNCivguKLguLjguJfguJjguJ7guIfguKnguYwg4LiJIOC5guC4o+C4iOC4meC5jOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4ouC4uOC4l+C4mOC4nuC4pSDguYTguIHguKPguK3guLLguJoNCivguKLguLjguJfguJjguKjguLHguIHguJTguLTguYwg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4Lii4Li44LiX4LiY4Lio4Li04Lil4Lib4LmMIOC5gOC4geC4qeC4o+C4qOC4uOC4geC4o+C5jA0KK+C4ouC4uOC4mOC4tOC4leC4siDguYHguIvguYjguYDguK7guYnguIcNCivguKLguLjguJ7guJTguLUg4LiB4Liy4LiN4LiI4LiZ4LiyDQor4Lii4Li44Lie4LiU4Li1IOC4iuC4teC4nuC4reC4suC4o+C4meC4seC4og0KK+C4ouC4uOC4nuC4lOC4tSDguJrguKPguLTguKrguLjguJfguJjguLTguYwNCivguKLguLjguJ7guJTguLUg4Lij4Lix4LiB4LiB4Liy4Lij4LiU4Li1DQor4Lii4Li44Lie4LiU4Li1IOC4quC4meC5g+C4iOC4ouC4uOC4l+C4mA0KK+C4ouC4uOC4nuC4lOC4tSDguYDguK3guLXguYjguKLguKHguKjguLjguKDguKrguKfguLHguKrguJTguLTguYwNCivguKLguLjguJ7guKLguIfguITguYwg4Lie4Li04Lij4Li04Lii4Liw4LiB4Li04LiIDQor4Lii4Li44Lie4LiyIOC4geC5i+C4h+C4meC5ieC4reC4og0KK+C4ouC4uOC4nuC4siDguILguLHguJnguJfguK3guIcNCivguKLguLjguJ7guLIg4LiI4Li04LiV4Lij4LmC4Liq4Lig4Liy4Lig4Lij4LiT4LmMDQor4Lii4Li44Lie4LiyIOC4iuC4uOC5iOC4oeC4iuC4suC4leC4tA0KK+C4ouC4uOC4nuC4siDguYHguIvguYjguYLguITguYnguKcNCivguKLguLjguJ7guLIg4LiX4Li04Lie4Lii4Lie4Lij4LmA4LiB4Lip4LihDQor4Lii4Li44Lie4LiyIOC4muC4seC4p+C4mOC4o+C4sg0KK+C4ouC4uOC4nuC4siDguYDguJvguLXguYrguKLguLDguILguLLguKLguITguKXguYjguK3guIcNCivguKLguLjguJ7guLIg4LmA4Lie4LmH4LiN4Liq4Liy4Lii4LmD4LiIDQor4Lii4Li44Lie4LiyIOC4ouC4tOC5iOC4h+C4lOC4s+C4meC4uOC5iOC4mQ0KK+C4ouC4uOC4nuC4siDguYDguKXguK3guKLguKjguYDguIHguKPguLXguKLguIfguYTguIHguKMNCivguKLguLjguJ7guLIg4LmE4Lin4LiX4Lii4Liw4Lin4Li04LiN4LiN4Li5DQor4Lii4Li44Lie4LiyIOC4quC4suC4oeC4uOC4leC4tOC4reC4uOC4lOC4oeC4o+C4seC4leC4meC5jA0KK+C4ouC4uOC4nuC4siDguYHguKrguIfguYDguKrguKPguLTguKENCivguKLguLjguJ7guLIg4Lit4Liy4LiZ4Li44Lig4Liy4Lie4Lih4LiH4LiE4LilDQor4Lii4Li44Lie4Liy4Lie4LijIOC4nuC4o+C4q+C4oeC5guC4iuC4leC4tA0KK+C4ouC4uOC4nuC4suC4oOC4o+C4k+C5jCDguIHguKXguLHguYjguJnguIHguKXguLXguJoNCivguKLguLjguJ7guLLguKfguJTguLUg4Lii4Li04LiZ4LiU4Li14Lii4Lix4LmI4LiH4Lii4Li34LiZDQor4Lii4Li44Lie4Li04LiZIOC4geC4s+C5gOC4q+C4meC4tOC4lOC4p+C4seC4mQ0KK+C4ouC4uOC4nuC4tOC4mSDguITguKXguYnguLLguKLguKrguLjguJrguKPguKPguJMNCivguKLguLjguJ7guLTguJkg4LiI4Li04LiZ4LiU4Liy4Liq4Lix4LiZ4LiV4LmMDQor4Lii4Li44Lie4Li04LiZIOC4iuC4t+C5iOC4meC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4ouC4uOC4nuC4tOC4mSDguJTguK3guJnguK3guLjguYTguJ7guKMNCivguKLguLjguJ7guLTguJkg4LiX4Lij4LiH4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiB4Li44LilDQor4Lii4Li44Lie4Li04LiZIOC5gOC4mOC4teC4ouC4o+C4nuC4suC4k+C4tOC4ig0KK+C4ouC4uOC4nuC4tOC4mSDguJrguLjguJXguKPguYDguJnguLXguKLguKENCivguKLguLjguJ7guLTguJkg4Lie4LiZ4Liy4LiK4Li34LmI4LiZ4Lin4LiH4Lio4LmM4Liq4LiB4Li44LilDQor4Lii4Li44Lie4Li04LiZIOC5hOC4nuC4o+C4tOC4meC4l+C4o+C4suC4oOC4sg0KK+C4ouC4uOC4nuC4tOC4mSDguYDguKHguLfguK3guIfguKfguLTguKXguLHguKINCivguKLguLjguJ7guLTguJkg4Lil4Li14Liq4Li44Lin4Li04LiK4Liy4LiB4LijDQor4Lii4Li44Lie4Li04LiZIOC4qOC4o+C4teC4iuC4seC4og0KK+C4ouC4uOC4nuC4tOC4mSDguKrguKTguKnguJTguLTguKfguLjguJLguLQNCivguKLguLjguJ7guLTguJkg4Liq4Li44LiX4LiY4Li04Liq4Li44LiZ4LiX4LijDQor4Lii4Li44Lie4Li04LiZIOC4q+C4suC4jeC4p+C4h+C4qOC5jA0KK+C4ouC4uOC4nuC4tOC4mSDguK3guLbguYrguIfguJTguLPguKPguIcNCivguKLguLjguJ7guYDguKLguLLguKfguYwg4Lio4Li04Lij4Li04LmA4Lit4Li14LmJ4Lii4Lin4Lie4Li04LiB4Li54LilDQor4Lii4Li44Lig4LiyIOC5gOC4iOC5iuC4sOC5gOC4peC4suC4sA0KK+C4ouC4uOC4oOC4siDguYHguKrguIfguYDguJTguIoNCivguKLguLjguKDguLUg4LmA4LiE4Lir4Liw4Lij4Lit4LiUDQor4Lii4Li44Lij4Li1IOC5geC4i+C5iOC5guC4reC5ieC4pw0KK+C4ouC4uOC4p+C4lOC4tSDguIHguKPguLDguIjguYjguLLguIfguYPguIgNCivguKLguLjguKfguJTguLUg4LmA4LiI4LiZ4Lij4Lix4LiB4Lih4Liy4LiV4Li44Lig4Li54Lih4Li0DQor4Lii4Li44Lin4LiU4Li1IOC5gOC4leC4iuC4sOC5gOC4iuC4p+C4h+C4geC4uOC4pQ0KK+C4ouC4uOC4p+C4lOC4tSDguJvguKPguKHguLLguIfguIHguLnguKMNCivguKLguLjguKfguJTguLUg4Lih4Li04LiV4Lij4Lig4Lix4LiB4LiU4Li1DQor4Lii4Li44Lin4LiU4Li1IOC4p+C4seC4kuC4meC4nuC4tOC4l+C4seC4geC4qeC5jOC4geC4uOC4pQ0KK+C4ouC4uOC4p+C4lOC4tSDguYHguKrguIfguJTguYnguKfguIcNCivguKLguLjguKfguJnguLIg4Lil4Lin4LmA4Lin4LiK4LiB4Li44LilDQor4Lii4Li44Lin4Lig4LiyIOC4muC4uOC4jeC5gOC4peC4tOC4qA0KK+C4ouC4uOC4p+C4peC4seC4geC4qeC4k+C5jCDguYDguIHguLXguKLguKPguJXguLTguJvguLHguI3guI3guLINCivguKLguLjguYDguJ7guYfguI0g4LiK4Li54Lio4Lix4LiB4LiU4Li04LmM4LmB4Liq4LiH4LiX4Lit4LiHDQor4Lii4Li54LiL4LiaIOC4reC4seC4muC4lOC4uOC4quC4peC4suC4oQ0KK+C4ouC4ueC4quC4miDguKvguKXguIfguIjguLQNCivguKLguLnguYjguYDguJXguLXguKLguIcg4LmB4LiL4LmI4LmA4LiL4Li14LiiDQor4LmA4Lii4LiyIOC5hOC4peC5hOC4pw0KK+C5gOC4ouC4suC4p+C4lOC4tSDguYHguKLguYnguKHguIjguLjguYTguKMNCivguYDguKLguLLguKfguJnguLTguIgg4LiZ4Li04LiV4Li04LiY4Lij4Lij4LihDQor4LmA4Lii4Liy4Lin4LiZ4Li44LiKIOC4nuC4uOC4l+C4mOC4tOC4nuC4tOC4o+C4geC4uOC4pQ0KK+C5gOC4ouC4suC4p+C4oOC4o+C4k+C5jCDguKrguLTguKPguLTguKfguYLguKPguJjguLLguIHguLjguKUNCivguYDguKLguLLguKfguKDguLIg4LiX4Lix4Lie4Lij4Lix4LiV4LiZ4LmMDQor4LmA4Lii4Liy4Lin4Lig4LiyIOC4p+C4tOC4peC4seC4ouC4m+C4suC4mQ0KK+C5gOC4ouC4suC4p+C4oeC4suC4peC4ouC5jCDguJfguK3guIfguJ7guKPguKvguKENCivguYDguKLguLLguKfguKPguLHguJXguJnguYwg4LiE4Lin4Liy4Lih4LiK4Lit4LiaDQor4LmA4Lii4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC4geC4o+C4seC4meC4leC4suC4meC4meC4l+C5jA0KK+C5gOC4ouC4suC4p+C4peC4seC4geC4qeC4k+C5jCDguYTguIrguKLguKTguJfguJjguLTguYwNCivguYDguKLguLLguKfguKXguLHguIHguKnguJPguYwg4Lia4Li44LiN4LiN4Liy4Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4LmA4Lii4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC4oeC4k+C4teC5guC4iuC4leC4tA0KK+C5gOC4ouC4suC4p+C4peC4seC4geC4qeC4k+C5jCDguKfguIfguKjguLLguYLguKPguIjguJnguYwNCivguYDguKLguLLguKfguKXguLHguIHguKnguJPguYwg4Liq4Li44Lin4Lij4Lij4LiT4Lil4Lig4Liy4Lie4LijDQor4LmA4Lii4Liy4Lin4LmA4Lij4LioIOC4geC4sOC4leC4suC4geC4ueC4pQ0KK+C5gOC4ouC4suC4p+C5gOC4o+C4qCDguKfguKPguKPguJPguKrguLjguIINCivguYDguKLguLXguKLguKEg4Lie4Li44LmI4Lih4Lie4Lik4LiB4Lip4LmMDQor4LmA4Lii4Li14LmI4Lii4LihIOC4reC4tOC4meC4l+C4o+C4geC4s+C5geC4q+C4hw0KK+C5gOC4ouC4t+C5ieC4reC4mSDguYDguIHguJXguLjguKXguK3guKINCivguYDguKLguYfguJkg4LiB4Lit4LiH4LmC4Liu4LihDQor4LmA4Lii4LmH4LiZ4LiI4Li04LiVIOC4iOC4tOC4o+C4suC4nuC4seC4kuC4meC4nuC4h+C4qOC5jA0KK+C5gOC4ouC5h+C4meC4iOC4tOC4leC4o+C5jCDguJvguKPguLDguJfguLXguJvguYHguKrguIfguKPguLHguJXguJnguYwNCivguYHguKLguYnguKEg4LmC4LiB4Lih4Li04LiZ4LiyDQor4LmC4Lii4LiY4Li04LiZIOC4hOC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C5guC4ouC4mOC4tOC4mSDguJ7guIfguKjguYzguJ7guLHguIrguKPguLLguJ7guLHguJnguJjguLjguYwNCivguYLguKLguJjguLTguJkg4Lio4Li04Lij4Li04LmC4Liq4Lig4LiTDQor4LmD4LiiIOC4m+C4seC4luC4p+C4tQ0KK+C4o+C4iOC4meC4siDguIjguLHguIHguKPguKTguJfguJjguLTguJ7guIfguKjguYwNCivguKPguIjguJnguLIg4Lie4Liy4LiU4Li1DQor4Lij4LiI4LiZ4LiyIOC5geC4quC4h+C5guC4quC4oOC4kw0KK+C4o+C4iOC4tOC4lSDguKPguLHguIHguKLguK3guJQNCivguKPguJMg4Liq4Liy4Liq4LiZ4Liq4Li04LiX4LiY4Li04LmMDQor4Lij4LiT4LiK4Lix4LiiIOC4meC4tOC4leC4tOC4iuC4suC4hOC4ow0KK+C4o+C4k+C4iuC4seC4oiDguYDguK3guJnguIHguK3guKHguKPguIrguLHguKINCivguKPguJPguKPguIfguITguYwg4LmC4LiJ4Lih4Lio4Li44Lig4Liy4LiH4LiE4LmMDQor4Lij4LiT4Liq4Li04LiX4LiY4Li04LmMIOC4o+C4seC4leC4meC5gOC4geC4qeC4leC4ow0KK+C4o+C4leC4tOC4nuC4o+C4o+C4kyDguKPguLHguJXguJnguLTguJUNCivguKPguJ7guLTguJnguJfguKPguYwg4Lin4Li04LiK4LiK4Li44LmE4LiV4Lij4Lig4LieDQor4Lij4Lie4Li14Lie4Lij4Lij4LiTIOC5gOC4ieC4peC4tOC4oeC4iuC4seC4ouC5guC4geC4qOC4pQ0KK+C4o+C4nuC4teC4p+C4o+C4o+C4kyDguKrguLHguKHguJvguIrguLHguI3guI3guLANCivguKPguKHguKLguYzguIrguKXguLUg4Lia4Li44LiV4Lij4LmE4LiK4LiiDQor4Lij4Lin4LiH4LiX4Lit4LiHIOC4quC5ieC4oeC5gOC4geC4peC4teC5ieC4ouC4hw0KK+C4o+C4p+C4oeC4nuC4oyDguKDguLLguJnguLHguJnguJfguJnguYwNCivguKPguKfguKLguKPguLTguJkg4Lin4LiI4Liw4LmC4LiZ4Lig4Liy4LiqDQor4Lij4Lin4Li04Lin4Lij4Lij4LiTIOC5hOC4iuC4ouC4p+C4quC4uA0KK+C4o+C4p+C4teC4meC4uOC4iiDguITguLjguJPguJjguKPguKPguKHguKrguJbguLTguJUNCivguKPguKfguLXguKfguKPguKPguJMg4Lie4LiH4Lip4LmM4LiU4LiZ4LiV4Lij4Li1DQor4Lij4Lin4Li14Lin4Lij4Lij4LiTIOC4reC4suC4o+C4teC4mOC4o+C4o+C4oeC4qOC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4o+C4quC4meC4siDguKfguLHguJLguJnguLLguKrguLjguJnguJfguKPguJ7guIfguKjguYwNCivguKPguKrguKPguLTguJnguJfguKPguYwg4LiB4LiZ4LiB4Lit4Li44LiU4LihDQor4Lij4Liq4Liq4Li44LiE4LiZ4LiY4LmMIOC4leC4suC4oeC4qOC4o+C4tQ0KK+C4o+C4quC4quC4uOC4hOC4meC4mOC5jCDguKjguKPguLXguJXguLTguKHguIfguITguKUNCivguKPguK3guIcg4Lih4Li54Lil4Lih4LiT4Li1DQor4Lij4Lit4Lif4Liw4Lir4LmMIOC5gOC4i+C5h+C4meC4q+C4peC4p+C4hw0KK+C4o+C4reC5gOC4muC4teC5iuC4ouC4sCDguKLguLTguYjguIfguJnguLTguKLguKENCivguKPguLDguJXguLIg4Lit4Li04LiZ4LiX4Lij4LmM4LmB4LiB4LmJ4LinDQor4Lij4Liw4Lia4Li04LilIOC5guC4quC4oOC4k+C4nuC4meC4tOC4ig0KK+C4o+C4sOC4nuC4tSDguJvguKPguLDguKrguJ7guIrguLHguKINCivguKPguLDguJ7guLXguJ7guKPguKPguJMg4LiC4Lit4Lia4LiK4Li04LiVDQor4Lij4Liw4Lie4Li14Lie4Lij4Lij4LiTIOC4peC4s+C4iOC4p+C4meC4iOC4tOC4leC4leC5jA0KK+C4o+C4sOC4nuC4teC4nuC4seC4meC4mOC5jCDguK3guLLguKPguLXguKLguYwNCivguKPguLDguKLguYnguLLguJfguLTguJ7guKLguYwg4Lit4Li04LiZ4LiX4Lij4LiX4Li54LiVDQor4Lij4Liw4Lin4Li0IOC4muC4uOC4jeC4nOC4lOC4uOC4hw0KK+C4o+C4sOC4p+C4tOC4p+C4o+C4o+C4kyDguJvguKPguLDguJfguLjguKHguJ7guKfguIcNCivguKPguLDguKfguLUg4LiZ4Lix4LiZ4LiX4Liq4Liz4LmA4Lij4Li04LiHDQor4Lij4Liw4Lin4Li14Lin4Lij4Lij4LiTIOC5gOC4iOC4meC4geC4suC4ow0KK+C4o+C4sOC4p+C4teC4p+C4o+C4o+C4kyDguKDguLHguJfguKPguJvguKPguLDguKDguLINCivguKPguLDguKfguLXguKfguKPguKPguJPguYwg4LiV4Liy4LiK4Li54LiK4Liy4LiV4Li0DQor4Lij4Liw4LmA4Lia4Li14Lii4LiaIOC4geC4tOC4iOC4geC4peC5ieC4sg0KK+C4o+C4sOC5gOC4muC4teC4ouC4miDguIjguLTguJXguKPguJrguLPguKPguLjguIcNCivguKPguLDguYDguJrguLXguKLguJog4LiX4Lix4Lia4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lij4Liw4LmA4Lia4Li14Lii4LiaIOC4m+C4tOC5iOC4meC5geC4geC5ieC4pw0KK+C4o+C4sOC5gOC4muC4teC4ouC4miDguKHguLLguJnguLTguIHguJ7guLHguJnguJjguLjguYwNCivguKPguLDguYDguJrguLXguKLguJog4Lin4Lij4Liq4Li44LiC4Liq4Lix4LiH4LiC4LmMDQor4Lij4Liw4LmA4Lia4Li14Lii4LiaIOC5gOC4quC4t+C4reC4quC4oeC4tOC4hw0KK+C4o+C4sOC5gOC4p+C4hyDguKXguLHguKLguKjguKPguLUNCivguKPguLHguIHguIrguJnguIEg4LmB4LiL4LmI4LmA4LiI4Li14LiiDQor4Lij4Lix4LiB4Lie4LiH4Lip4LmMIOC4p+C4h+C4qeC5jOC4iOC4s+C4meC4h+C4hOC5jA0KK+C4o+C4seC4geC4qeC5jCDguIHguLDguKPguLXguKPguLHguJUNCivguKPguLHguIHguKnguYwg4Lit4LmI4Lit4LiZ4LiZ4Liy4LiHDQor4Lij4Lix4LiH4LiX4Lit4LiHIOC4p+C4teC4o+C4sOC4nuC4seC4kuC4meC5jA0KK+C4o+C4seC4h+C4qeC4tSDguYDguJfguKjguJ7guLHguJnguJjguYwNCivguKPguLHguIfguKrguKPguKPguITguYwg4LiB4Lix4Lih4Liq4Li44Lin4Lij4Lij4LiTDQor4Lij4Lix4LiH4Liq4Lij4Lij4LiE4LmMIOC4iOC4uOC4rOC4suC4mOC4o+C4o+C4oeC4geC4uOC4pQ0KK+C4o+C4seC4h+C4quC4o+C4o+C4hOC5jCDguJXguLHguJnguJXguLTguYDguKfguIrguIHguLjguKUNCivguKPguLHguIfguKrguKPguKPguITguYwg4Lib4Lix4LiN4LiN4Liy4Lig4LiyDQor4Lij4Lix4LiH4Liq4Lij4Lij4LiE4LmMIOC4oeC4tOC4leC4o+C4nuC4seC4meC4mOC5jOC4nuC4suC4meC4tOC4iuC4ouC5jA0KK+C4o+C4seC4h+C4quC4o+C4o+C4hOC5jCDguKfguLTguJrguLnguKXguJ7guLHguJLguJnguLDguKfguIfguKjguYwNCivguKPguLHguIfguKrguKPguKPguITguYwg4Liq4Li44LiZ4LiX4Lij4LiZ4Lix4LiZ4LiX4LmMDQor4Lij4Lix4LiH4Liq4Lij4Lij4LiE4LmMIOC5gOC4reC4teC5iOC4ouC4oeC4iOC4s+C4o+C4seC4qg0KK+C4o+C4seC4h+C4quC4tOC4lSDguYDguJTguIrguLDguIHguLjguKUNCivguKPguLHguIfguKrguLTguKHguLHguJnguJXguYwg4Lik4LiB4Lip4LmM4Lit4Li04LiZ4LiX4Lij4Lit4Liy4Lij4Li14Lii4LmMDQor4Lij4Lix4LiH4Liq4Li04Lih4LiyIOC5geC4quC4h+C4q+C4tOC4o+C4seC4jeC4p+C4seC4kuC4meC4sg0KK+C4o+C4seC4iiDguKfguKPguKPguJPguKfguLHguJLguJnguLANCivguKPguLHguIrguI7guLIg4LiI4Li04LiV4LiV4Li04Lin4Lij4Lij4LiTDQor4Lij4Lix4LiK4LiO4LiyIOC4quC4tOC4o+C4tOC4p+C4seC4kuC4meC4p+C4h+C4qOC5jA0KK+C4o+C4seC4iuC4juC4suC4p+C4o+C4o+C4kyDguKLguLDguJXguLTguJnguLHguJnguJfguYwNCivguKPguLHguIrguJTguLIg4LmA4LiE4Lii4Lih4Li14LiX4Lij4Lix4Lie4Lii4LmMDQor4Lij4Lix4LiK4LiU4LiyIOC4o+C4uOC5iOC4h+C5gOC4qOC4p+C4leC4geC4uOC4pQ0KK+C4o+C4seC4iuC4lOC4suC4nuC4oyDguKrguLjguILguYDguIHguKnguKHguKPguLHguJXguJnguYwNCivguKPguLHguIrguJXguKTguJTguLUg4Lij4Li44LiI4Li04LiT4Lij4LiH4LiE4LmMDQor4Lij4Lix4LiK4LiZ4Li04LiB4LijIOC5geC4quC4h+C4geC4o+C4sOC4iOC5iOC4suC4hw0KK+C4o+C4seC4iuC4meC4tSDguIHguLTguJXguJXguLTguKPguLHguIfguKrguLUNCivguKPguLHguIrguJnguLUg4LiE4Liy4LiI4Li04LiI4Li0DQor4Lij4Lix4LiK4LiZ4Li1IOC4iOC4tOC4o+C4l+C4p+C4teC4p+C4h+C4qOC5jA0KK+C4o+C4seC4iuC4meC4tSDguIrguKfguJXguLLguJnguJnguJfguYwNCivguKPguLHguIrguJnguLUg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lij4Lix4LiK4LiZ4Li1IOC4leC4o+C4teC4muC4seC4jeC4iuC4suC4p+C4h+C4qOC5jA0KK+C4o+C4seC4iuC4meC4tSDguJfguLHguJrguKXguLDguITguKMNCivguKPguLHguIrguJnguLUg4LiZ4Liy4LiE4Liq4Li44LiCDQor4Lij4Lix4LiK4LiZ4Li1IOC4muC4uOC4leC4o+C4quC4tQ0KK+C4o+C4seC4iuC4meC4tSDguYHguJzguYjguJvguKPguLDguYDguKrguKPguLTguJANCivguKPguLHguIrguJnguLUg4Lie4Li54Lil4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lij4Lix4LiK4LiZ4Li1IOC4oeC4suC4rOC4oeC4h+C4hOC4pQ0KK+C4o+C4seC4iuC4meC4tSDguKPguLHguJXguJnguYLguIHguKfguLTguJcNCivguKPguLHguIrguJnguLUg4Lil4Li34Lit4Lin4Li04Lih4Lil4LiB4Lik4Lip4LiQDQor4Lij4Lix4LiK4LiZ4Li1IOC4p+C4tOC4o+C4seC4iuC4meC4teC4ouC5jA0KK+C4o+C4seC4iuC4meC4tSDguKrguIHguLjguKXguKrguLjguKPguKPguLHguJXguJnguYwNCivguKPguLHguIrguJnguLUg4Liq4Li44LiB4Lip4Lih4Lij4Lix4LiV4LiZ4LmMDQor4Lij4Lix4LiK4LiZ4Li1IOC5geC4quC4h+C4quC4teC4l+C4reC4hw0KK+C4o+C4seC4iuC4meC4tSDguK3guKDguLTguIrguLHguKLguIHguLjguKUNCivguKPguLHguIrguJnguLUg4LmA4Lit4LiB4LiZ4Lin4Liy4Lij4Liw4LiK4Liy4LiV4Li0DQor4Lij4Lix4LiK4LiZ4Li14LiB4LijIOC4oeC4seC5iOC4h+C4oeC4teC4nOC4pQ0KK+C4o+C4seC4iuC4meC4teC4muC4ueC4peC4ouC5jCDguKHguLLguYTguJ7guKjguLLguKXguKLguYwNCivguKPguLHguIrguJnguLXguKDguKPguJPguYwg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lij4Lix4LiK4LiZ4Li14Lin4Lij4Lij4LiTIOC4geC5i+C4reC4ouC4quC4uOC4p+C4o+C4o+C4kw0KK+C4o+C4seC4iuC4meC4teC4p+C4o+C4o+C4kyDguKXguLDguK3guK3guYDguK3guLXguYjguKLguKENCivguKPguLHguIrguJ7guIfguKnguYwg4Lio4Li04Lij4Li04Lih4Li1DQor4Lij4Lix4LiK4Lij4Li1IOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4o+C4seC4jeC4iOC4p+C4mSDguKfguIfguKnguYzguIHguKXguYnguLLguKvguLLguI0NCivguKPguLHguJDguIHguLLguKMg4LmA4LiB4Li04LiU4LiU4Li1DQor4Lij4Lix4LiQ4Lie4LilIOC4h+C4suC4oeC4quC4oeC4uOC4l+C4ow0KK+C4o+C4seC4kOC4suC4oOC4tOC4o+C4seC4geC4qeC5jCDguJXguLHguJPguJHguJvguKPguLDguKjguLLguKrguJnguYwNCivguKPguLHguJXguJXguLTguIHguKMg4LiV4Lix4LmJ4LiH4Lie4Liy4LiZ4LiX4Lit4LiHDQor4Lij4Lix4LiV4LiV4Li04Lie4LijIOC4geC4o+C4quC4uOC4l+C4mOC4tOC5guC4quC4oOC4kw0KK+C4o+C4seC4leC4leC4tOC4ouC4siDguJ7guLnguKXguK3guKPguYjguLLguKENCivguKPguLHguJXguJnguYzguIHguLjguKUg4LiTIOC4p+C4tOC4l+C4ouC4suC4meC4seC4meC4l+C5jA0KK+C4o+C4seC4leC4meC5jOC4iuC4juC4siDguJ7guLHguJnguJjguYzguJnguLTguIHguLjguKUNCivguKPguLHguJXguJnguKHguJPguLUg4LmB4Lie4LiX4Lii4LmM4Lie4Lix4LiZ4LiY4LmM4Lio4Lij4Li1DQor4Lij4Lix4LiV4LiZ4LiwIOC4hOC4uOC4k+C4suC4meC4nuC4o+C4seC4leC4meC5jA0KK+C4o+C4seC4leC4meC4siDguIHguKXguLHguYjguJnguYHguIHguYnguKcNCivguKPguLHguJXguJnguLIg4LiB4Li44Lio4LilDQor4Lij4Lix4LiV4LiZ4LiyIOC5gOC4guC4teC4ouC4meC4oOC4seC4geC4lOC4tQ0KK+C4o+C4seC4leC4meC4siDguIfguLLguKHguILguLMNCivguKPguLHguJXguJnguLIg4LiI4Li04LiV4LiV4LmM4LiI4Liy4Lij4Li24LiBDQor4Lij4Lix4LiV4LiZ4LiyIOC5g+C4iOC4m+C4suC4mQ0KK+C4o+C4seC4leC4meC4siDguIrguLTguJnguKfguLHguJLguJnguLINCivguKPguLHguJXguJnguLIg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lij4Lix4LiV4LiZ4LiyIOC4kyDguJXguLDguIHguLHguYjguKfguJfguLjguYjguIcNCivguKPguLHguJXguJnguLIg4LiV4Liy4Lij4Lie4LilDQor4Lij4Lix4LiV4LiZ4LiyIOC4l+C4reC4h+C4hOC4peC5ieC4suC4og0KK+C4o+C4seC4leC4meC4siDguJjguLXguKPguLDguKHguIfguITguKXguIHguLjguKUNCivguKPguLHguJXguJnguLIg4LmA4LiZ4Li14Lii4Lih4LiZ4Liz4Lic4LilDQor4Lij4Lix4LiV4LiZ4LiyIOC5gOC4muC5h+C4jeC4iOC5guC4oOC4hOC4tQ0KK+C4o+C4seC4leC4meC4siDguYDguJvguKXguLXguYjguKLguJnguKrguLUNCivguKPguLHguJXguJnguLIg4Lie4Lil4Lit4Lii4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lij4Lix4LiV4LiZ4LiyIOC4nuC4uOC4geC4muC4suC4h+C4iOC4suC4gQ0KK+C4o+C4seC4leC4meC4siDguKDguLLguKrguKfguKPguKfguLTguJfguKLguYwNCivguKPguLHguJXguJnguLIg4Lih4Li14Lil4Lix4LiB4Lip4LiT4LiwDQor4Lij4Lix4LiV4LiZ4LiyIOC4o+C4seC4geC4qeC5jOC4iuC4mQ0KK+C4o+C4seC4leC4meC4siDguYLguKPguIjguJnguYzguKHguKvguLLguKHguIfguITguKUNCivguKPguLHguJXguJnguLIg4LmA4Lil4Li14LmI4Lii4Lin4Lib4Lij4Li14LiK4LiyDQor4Lij4Lix4LiV4LiZ4LiyIOC4p+C4quC4uOC4p+C4suC4meC4tOC4ig0KK+C4o+C4seC4leC4meC4siDguYDguKfguLXguKLguIfguJjguLXguKPguKfguLHguJLguJnguYwNCivguKPguLHguJXguJnguLIg4Lio4Li04Lij4Li04LiZ4Lij4Liy4LiB4Lij4LiT4LmMDQor4Lij4Lix4LiV4LiZ4LiyIOC4quC4oeC4muC4ueC4o+C4k+C5jOC4meC4tOC4mOC4tOC4nOC4pQ0KK+C4o+C4seC4leC4meC4siDguKrguLXguKfguLTguKrguLjguJfguJjguLTguYwNCivguKPguLHguJXguJnguLIg4Liq4Li44Lin4Lix4LiK4Lij4Li14Lij4Lix4LiB4Lip4LmMDQor4Lij4Lix4LiV4LiZ4LiyIOC4q+C4suC4jeC4nuC4peC4suC4iuC4seC4og0KK+C4o+C4seC4leC4meC4siDguK3guYjguK3guIfguYDguJ7guYfguIrguKPguYwNCivguKPguLHguJXguJnguLIg4Lit4Li44LiK4Li44Lig4Liy4LieDQor4Lij4Lix4LiV4LiZ4Liy4Lie4LijIOC4hOC4uOC5ieC4oeC4nuC4h+C4qOC5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4o+C4seC4leC4meC4suC4oOC4o+C4k+C5jCDguIjguLbguIfguKrguIfguKfguJnguKrguLTguJfguJjguLTguYwNCivguKPguLHguJXguJnguLLguKDguKPguJPguYwg4Lib4Lij4Liw4Lii4Li54Lij4LmC4Lig4LiE4Lij4Liy4LiKDQor4Lij4Lix4LiV4LiZ4Liy4Lig4Lij4LiT4LmMIOC4qOC4o+C4teC4meC4suC4o+C4suC4hw0KK+C4o+C4seC4leC4meC4suC4p+C4lOC4tSDguJXguLHguJnguJXguLDguJvguLLguKUNCivguKPguLHguJXguJnguYwg4LmB4LiB4LmJ4Lin4LiB4Li54LijDQor4Lij4Lix4LiV4LiZ4LmMIOC4nuC4suC4meC4tOC4iuC4nuC4seC4meC4mOC5jA0KK+C4o+C4seC4leC4meC5jCDguYDguKvguKXguLfguK3guIfguKjguLjguKDguYLguIrguIQNCivguKPguLHguJnguJTguKMg4LmA4Lir4Lil4LmH4LiB4Lii4Lix4LiHDQor4Lij4Lix4Lih4Lig4LiyIOC4nuC4o+C4sOC4o+C4seC4geC4qeC4sg0KK+C4o+C4seC4qOC4oeC4tSDguITguLjguJPguJvguKPguLDguYDguKrguKPguLTguJDguIHguLjguKUNCivguKPguLHguKjguKHguLUg4LmA4LiX4Lie4LiU4Lil4LmE4LiK4LiiDQor4Lij4Lix4Lio4Lih4Li1IOC4ouC4tOC5iOC4h+C5gOC4iOC4o+C4tOC4jeC4geC4reC4muC4geC4tOC4iA0KK+C4o+C4seC4qOC4oeC4tSDguKrguLjguKfguKPguKPguJPguJzguYjguK3guIfguYPguKoNCivguKPguLHguKrguKHguLUg4LiE4Liz4LmB4Lir4LiH4Lie4LilDQor4Lij4Liy4LiK4Lib4Liy4Lil4LiL4Li04LiH4Lir4LmMIOC4meC4suC4o+C4seC4hw0KK+C4o+C4suC4iuC4seC4meC4ouC5jCDguYDguJ7guYfguIrguKPguKPguLHguJXguJnguYwNCivguKPguLLguIrguLTguJnguLUg4LiZ4Lin4LmA4LiI4Lij4Li04LiN4Lin4LiH4Lio4LmMDQor4Lij4Liy4LiT4Li1IOC4m+C4ueC4o+C4k+C5guC4iuC4leC4tA0KK+C4o+C4suC4leC4o+C4tSDguIHguKXguLTguYjguJnguKvguKfguKUNCivguKPguLLguJXguKPguLUg4LiI4LiV4Li44LmC4LiK4LiV4Li04LiK4Lin4Liy4Lil4Li44LilDQor4Lij4Liy4LiV4Lij4Li1IOC5geC4i+C5iOC5gOC4peC4teC5ieC4ouC4hw0KK+C4o+C4suC4leC4o+C4tSDguJnguLHguJnguKDguLHguIHguJTguLUNCivguKPguLLguJXguKPguLUg4Lie4LiH4Lio4LmM4Lie4Lix4LiZ4LiY4LmM4Lio4Lix4LiB4LiU4LiyDQor4Lij4Liy4LiV4Lij4Li1IOC4oeC4seC5iOC4meC4iOC4tOC4leC4leC5jA0KK+C4o+C4suC4leC4o+C4tSDguYTguKfguJfguKLguLTguJnguJfguKPguYwNCivguKPguLLguJXguKPguLUg4Liq4Li44LmI4Lih4Lih4Liy4LiV4Lii4LmMDQor4Lij4Liy4LiZ4Li1IOC5gOC4h+C4tOC4meC4luC4suC4p+C4ow0KK+C4o+C4suC4oeC4pOC4l+C4mOC4tOC5jCDguYDguJfguKfguIHguLjguKUNCivguKPguLLguKfguLTguJkg4Lit4LiZ4Lix4LiZ4LiV4LmM4LiX4Lij4LiH4Lin4Li04LiX4Lii4LmMDQor4Lij4Liy4Lio4Lij4Li1IOC4qOC4o+C4teC4o+C4seC4leC4meC4geC4ueC4pQ0KK+C4o+C4suC5gOC4iuC4meC4l+C4o+C5jCDguIrguLLguI3guJnguLTguJXguLQNCivguKPguLLguYDguKHguKgg4Lia4Li04LiZ4LmB4LitDQor4Lij4Liz4Lie4Lin4LiZIOC4m+C4o+C4suC4geC4j+C4p+C4h+C4qeC5jA0KK+C4o+C4s+C4nuC4tuC4hyDguJnguLTguKXguKrguLjguKfguKPguKPguJMNCivguKPguLPguJ7guLbguIcg4Liq4Li44LiC4LmA4LiI4Lij4Li04LiNDQor4Lij4Liz4LmA4Lie4LiiIOC4oOC4suC4quC4nuC4seC4meC4mOC5jA0KK+C4o+C4s+C5hOC4niDguYHguIvguYjguKXguLTguYnguKENCivguKPguLPguYTguJ4g4LmA4Lij4Li34Lit4LiZ4LiX4Li04Lie4Lii4LmMDQor4Lij4Liz4LmE4LieIOC4reC4uOC4rOC4suC4o+C4suC4h+C4geC4ueC4ow0KK+C4o+C4tOC4meC4iuC4seC4oiDguIrguLHguKLguKfguKPguJ7guKMNCivguKPguLTguKfguYLguIHguYrguLDguYDguITguLXguKLguKcg4LiW4Li04LiV4Liw4LiK4Lix4LiiDQor4Lij4Li34LmI4LiZIOC4quC4sOC5gOC4meC4suC4p+C5jA0KK+C4o+C4uOC5iOC4hyDguIrguKHguIrguLfguYjguJkNCivguKPguLjguYjguIfguIHguLLguJnguJXguYwg4Lie4Li34LiK4Liq4Li04LiH4Lir4LmMDQor4Lij4Li44LmI4LiH4LiV4Lin4Lix4LiZIOC4leC4seC4meC4o+C4seC4leC4meC4p+C4h+C4qOC5jA0KK+C4o+C4uOC5iOC4h+C4l+C4tOC4nuC4ouC5jCDguJXguLHguJnguJXguKPguLDguKDguLTguKPguKHguKLguYwNCivguKPguLjguYjguIfguJfguLTguJ7guKLguYwg4Lih4LiT4Li14Liq4Lix4LiH4LiC4LmMDQor4Lij4Li44LmI4LiH4LiX4Li04Lie4Lii4LmMIOC4quC4uOC5gOC4o+C4meC4l+C4o+C4suC4o+C4seC4geC4qeC5jA0KK+C4o+C4uOC5iOC4h+C4l+C4tOC4p+C4siDguIrguLLguI3guJ7guLTguJfguKLguLLguJnguLjguIHguLnguKXguIHguLTguIgNCivguKPguLjguYjguIfguJfguLTguKfguLIg4Lie4Li04Lig4Lie4LmE4LiK4Lii4Liy4Liq4Li04LiX4LiY4Li04LmMDQor4Lij4Li44LmI4LiH4LiX4Li04Lin4LiyIOC4quC4uOC4meC4sg0KK+C4o+C4uOC5iOC4h+C4meC4oOC4siDguITguIfguKrguKfguLHguKrguJTguLTguYwNCivguKPguLjguYjguIfguJnguKDguLIg4LmB4LiL4LmI4LmA4Lit4Li14LmJ4LiiDQor4Lij4Li44LmI4LiH4LiZ4Lig4LiyIOC4muC4uOC4jeC4iuC4t+C5iOC4mQ0KK+C4o+C4uOC5iOC4h+C4meC4oOC4siDguKHguJPguJHguLLguJfguK3guIcNCivguKPguLjguYjguIfguJnguKDguLIg4Lin4Liy4Liq4LiZ4Liy4LiU4Liz4Lij4LiH4LiU4Li1DQor4Lij4Li44LmI4LiH4LiZ4Lig4LiyIOC5geC4quC4p+C4h+C4nOC4pQ0KK+C4o+C4uOC5iOC4h+C4nuC4tOC4l+C4ouC4siDguKfguLHguKXguKLguYzguKjguKPguLUNCivguKPguLjguYjguIfguKPguKfguLUg4Lio4Lij4Li14Lin4Li04Lil4Lix4LiiDQor4Lij4Li44LmI4LiH4Lij4Lix4LiQIOC4geC4tOC4leC4leC4tOC4iuC4seC4ouC4k+C4o+C4h+C4hOC5jA0KK+C4o+C4uOC5iOC4h+C4o+C4seC4leC4meC5jCDguJ7guIjguJnguYzguJjguJnguKHguLLguKgNCivguKPguLjguYjguIfguKPguLHguJXguJnguYwg4Liq4Li44LiZ4LiX4Lij4Lin4Lij4LmA4LiK4Lip4LiQ4LmMDQor4Lij4Li44LmI4LiH4Lik4LiU4Li1IOC4muC4uOC4jeC5gOC4iOC4o+C4tOC4jeC4l+C4p+C4teC4quC4uOC4gg0KK+C4o+C4uOC5iOC4h+C4pOC4l+C4seC4oiDguKPguK3guJTguYLguJ7guJjguLTguYzguJfguK3guIcNCivguKPguLjguYjguIfguKjguLHguIHguJTguLTguYwg4LmB4Lib4LmJ4LiZ4LmD4Lir4LiN4LmIDQor4Lij4Li44LmI4LiH4Lit4Lij4Li44LiTIOC4geC4o+C4reC4h+C4geC4suC4o+C4uOC4k+C4ouC5jA0KK+C4o+C4uOC5iOC4h+C4reC4o+C4uOC4kyDguYLguJ7guJjguLTguYzguJnguLTguKHguLTguJXguKMNCivguKPguLjguYjguIfguYDguIHguLXguKLguKPguJXguLQg4Lib4Li04Lii4Lio4Li44Lig4LiB4Li04LiIDQor4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHIOC4ouC4t+C4meC4ouC4h+C4hOC5jA0KK+C4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jCDguIHguKPguKPguJPguKrguLnguJUNCivguKPguLjguYjguIfguYLguKPguIjguJnguYwg4LmC4LiK4LiV4Li04Lib4Lij4Liw4LiB4Liy4Lii4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMIOC4muC4uOC4jeC4i+C4t+C5iOC4rQ0KK+C4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jCDguYDguKPguLfguK3guIfguKTguJfguJjguLTguYwNCivguKPguLjguYjguIfguYLguKPguIjguJnguYwg4Liq4Li44Lie4Li44LiX4LiY4Li04LmE4LiB4LijDQor4Lij4Li44LmJ4LiH4LiX4Lit4LiHIOC4hOC4uOC4k+C4m+C4o+C4sOC4oOC4suC4geC4ow0KK+C4o+C4uOC5ieC4h+C4peC4lOC4siDguKvguLjguYjguJnguKrguKfguLHguKrguJTguLTguYwNCivguKPguLjguIjguIjguKPguLTguJnguJfguKPguYwg4Lij4Li04LiZ4LiX4Lij4LiwDQor4Lij4Li44LiI4LiyIOC4quC4uOC4guC4oeC4suC4peC4iOC4seC4meC4l+C4o+C5jA0KK+C4o+C4uOC4iOC4tOC4o+C4seC4leC4meC5jCDguJnguLTguJXguLTguKrguLjguJ7guKPguKPguLHguJXguJnguYwNCivguKPguLjguIjguLTguKPguLIg4LmA4LiX4Li14LmI4Lii4LiH4Lit4Lij4Li44LiTDQor4Lij4Li44LiI4Li04Lij4LiyIOC4qOC4o+C4iOC4tOC4leC4leC5jA0KK+C4o+C4uOC4iOC4tOC5gOC4o+C4gSDguJjguLHguJnguKfguLLguJnguJnguJfguYwNCivguKPguLjguIjguLUg4LmA4Lie4LmH4LiK4Lij4LiZ4Li04LilDQor4Lij4Li44LiZIOC4reC4h+C4reC4suC4iA0KK+C5gOC4o+C4k+C4uOC4oeC4suC4qCDguJ/guK3guIfguYDguJ7guYfguIrguKMNCivguYDguKPguJPguLkg4LiH4Liy4Lih4LiC4LizDQor4LmA4Lij4LiT4Li5IOC4i+C4t+C5iOC4reC4leC4o+C4hw0KK+C5gOC4o+C4k+C4uSDguJjguJnguKrguLTguJkNCivguYDguKPguJPguLkg4Lib4Li04LiV4Li04LiZ4Lix4LiZ4LiX4LmMDQor4LmA4Lij4LiT4Li5IOC4oeC4q+C4suC4iuC4suC4meC4tOC4geC4sA0KK+C5gOC4o+C4k+C4uSDguKXguLXguYnguJjguLXguKPguLDguIHguLjguKUNCivguYDguKPguJPguLkg4LmA4Lio4Lin4LiV4LmA4Lil4LiCDQor4LmA4Lij4LiT4Li5IOC4quC4uOC5hOC4peC4oeC4suC4mQ0KK+C5gOC4o+C4k+C4uSDguYDguK3guLfguYnguK3guYDguJ/guLfguYnguK0NCivguYDguKPguKfguJTguLUg4LmE4LiK4Lii4Liy4LiE4LizDQor4LmA4Lij4Lin4LiU4Li1IOC4muC4uOC4jeC5gOC4peC4tOC4qA0KK+C5gOC4o+C4p+C4lOC4tSDguYDguKXguLTguKjguIrguLHguKLguKfguKPguIHguLjguKUNCivguYDguKPguKfguJTguLUg4LmA4Lir4Lil4Li14LmI4Lii4Lih4LmE4LiX4LiiDQor4LmA4Lij4Lin4Lix4LiVIOC4h+C5ieC4suC4p+C4p+C4tOC5gOC4qOC4qQ0KK+C5gOC4o+C4p+C4seC4lSDguYDguJ7guYfguIrguKPguKPguLHguJXguJnguYwNCivguYDguKPguKfguLHguJXguJXguYwg4Lin4Lij4Lij4LiT4Liq4Li04LiZ4LiY4LmMDQor4LmA4Lij4Lin4Lix4LiV4LijIOC4quC4tOC4meC4mOC4uOC4quC4reC4suC4lA0KK+C5gOC4o+C4tOC4hyDguILguLPguKrguLjguIINCivguYDguKPguLTguIfguIrguLHguKIg4Lin4LiH4Lip4LmM4LiU4Li1DQor4LmA4Lij4Li04LiH4Lik4LiX4LiY4Li04LmMIOC4meC4seC4meC4l+C4meC4suC4iOC4suC4o+C4ouC5jOC4geC4uOC4pQ0KK+C5gOC4o+C4tOC4h+C4qOC4seC4geC4lOC4tOC5jCDguKrguKHguJ7guIfguKnguYwNCivguYDguKPguLTguYjguKHguKPguIjguLTguJUg4LiU4LmJ4Lin4LiH4Liq4Liz4Lij4Liy4LiNDQor4LmA4Lij4Li14Lii4LihIOC5gOC4geC4qeC4quC4suC4hOC4ow0KK+C5gOC4o+C4teC4ouC4oSDguKDguLnguJrguLLguKUNCivguYDguKPguLXguKLguKHguKPguLHguJXguJnguYwg4LmA4LiB4LiV4Li44LiB4Liy4LiN4LiI4LiZ4LmMDQor4LmA4Lij4Li34Lit4LiH4LiB4Li04LiIIOC5gOC4q+C4o+C4teC4ouC4jeC4geC4oeC4pQ0KK+C5gOC4o+C4t+C4reC4h+C4iuC4seC4oiDguKPguK3guJTguKPguLHguJXguJnguYwNCivguYDguKPguLfguK3guIfguKLguKgg4LiC4Liy4Lin4Liq4Lit4Liy4LiUDQor4LmA4Lij4Li34Lit4LiH4Lij4Lix4LiV4LiZ4LiyIOC4reC4uOC4meC4sOC4nuC4s+C4meC4seC4gQ0KK+C5gOC4o+C4t+C4reC4h+C4p+C4tOC4l+C4ouC5jCDguIjguLjguKXguIHguK3guIfguK7guYnguK0NCivguYDguKPguLfguK3guIfguKjguLHguIHguJTguLTguYwg4LiI4Liy4Lij4Li44LiB4Li04LiI4LmC4Liq4Lig4LiTDQor4LmA4Lij4Li34Lit4LiH4Lio4Lix4LiB4LiU4Li04LmMIOC4quC5iOC4h+C5hOC4nuC4qOC4suC4pQ0KK+C5gOC4o+C4t+C4reC4h+C5gOC4geC4teC4ouC4o+C4leC4tCDguYDguIrguLLguKfguKPguLHguJXguJnguYwNCivguYDguKPguLfguK3guIfguYTguKMg4Lie4Li54LiZ4Lie4Liy4LiZ4Li04LiKDQor4LmA4Lij4LmE4LijIOC4iOC4tOC4o+C4qOC4seC4geC4lOC4tOC5jOC4l+C4p+C4tQ0KK+C5geC4o+C4h+C4o+C4seC4kCDguIHguKfguLXguKLguLANCivguYLguKPguIjguJnguLUg4LmA4Lih4LiG4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Lin4Li04LiX4Lii4LmMDQor4LmC4Lij4LihIOC4hOC4h+C5gOC4iOC4suC4sA0KK+C5hOC4o+C4p+C4o+C4o+C4kyDguKrguLLguKLguKrguIHguLjguKUNCivguKTguJTguLUg4LiB4Lih4Lil4Lih4Liy4LioDQor4Lik4LiU4Li1IOC4peC4tOC5iOC4oeC4l+C4reC4h+C4meC5ieC4reC4og0KK+C4pOC4lOC4teC4o+C4seC4leC4meC5jCDguIrguLXguJ7guKrguLjguJfguJjguLINCivguKTguJfguJjguLTguIrguLHguKIg4LiZ4Li04Lii4Lih4LmC4LiK4LiEDQor4Lik4LiX4LiY4Li04Lij4LiH4LiE4LmMIOC4l+C4p+C4teC4mOC4meC4p+C4suC4k+C4tOC4iuC4ouC5jA0KK+C4pOC4l+C4mOC4tOC5jCDguYDguIrguLfguYnguK3guIrguLHguKINCivguKTguJfguLHguKIg4Lie4Lix4LiZ4LiY4Li44LmA4LiU4LiKDQor4Lik4Liy4LiK4Li44LiV4LiyIOC4reC4seC4oeC4nuC4uOC4ig0KK+C4peC4lOC4suC4nuC4o+C4o+C4kyDguJ7guLTguKjguKXguJ7guLnguKUNCivguKXguJTguLLguKfguLHguKXguKLguYwg4LiI4Li04LiZ4LiU4Liy4Lin4LiH4Lip4LmMDQor4Lil4LiU4Liy4Lin4Lix4Lil4Lii4LmMIOC5gOC4nOC4t+C5iOC4reC4meC4meC5ieC4reC4og0KK+C4peC4lOC4suC4p+C4seC4peC4ouC5jCDguKjguKPguLXguIHguLLguI3guIjguJnguLINCivguKXguJog4LiZ4Liy4LiU4Lit4LiZDQor4Lil4Lih4Lix4LiiIOC5geC4geC5ieC4p+C4nuC4seC4meC4leC4sg0KK+C4peC4oeC4seC4oiDguKHguJnguLLguJvguLUNCivguKXguKHguLLguJQg4Lie4Lil4LmA4Lij4Li34Lit4LiHDQor4Lil4Lih4Li54LilIOC4l+C4reC4h+C4iuC4t+C5iOC4mQ0KK+C4peC4peC4meC4siDguJTguLXguKrguKHguKrguLjguIINCivguKXguKXguLTguJXguJXguLIg4Liq4Liy4LiY4Li44LiB4Liy4LijDQor4Lil4Lil4Li04Liq4LiyIOC4meC4suC4oeC4quC4uOC4lOC5g+C4iA0KK+C4peC5ieC4p+C4mSDguJrguLjguKnguJrguLINCivguKXguYnguKfguJkg4Lir4Lih4Lin4LiU4Liq4Lix4LiZ4LmA4LiX4Li14Lii4LiwDQor4Lil4Lit4LiiIOC4q+C4suC4jeC4k+C4o+C4h+C4hOC5jA0KK+C4peC4reC4rSDguJrguLnguKPguJPguKjguLTguKPguLQNCivguKXguK3guK0g4Lir4Lit4Lii4Lio4Lij4Li14LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lil4Lit4Lit4Lio4Lij4Li1IOC4muC4o+C4o+C4iOC4h+C4qOC4tOC4peC4mw0KK+C4peC4sOC4lOC4siDguKrguJnguKXguK3guKINCivguKXguLDguKHguYjguK3guKEg4LmA4LiZ4LiV4LiV4Liw4Liq4Li54LiVDQor4Lil4Liw4Lih4LmI4Lit4LihIOC5geC4quC4h+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4peC4sOC4oeC4seC4oiDguJfguK3guIfguKLguLHguYjguIfguKLguLfguJkNCivguKXguLDguKHguLHguKIg4Lij4Lix4LiB4LiB4Liy4LijDQor4Lil4Liw4Lih4Lix4LiiIOC4reC4suC4o+C4oeC4ouC5jOC4lOC4tQ0KK+C4peC4sOC4oeC5ieC4suC4oiDguJ7guKTguIHguKnguYzguKrguLjguJnguLHguJnguJfguYwNCivguKXguLDguKHguLjguJkg4LmA4Lib4Lil4LmI4LiH4Lin4Lix4LiZDQor4Lil4Liw4Lih4Li54LilIOC4p+C4h+C4qOC5jOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4peC4sOC4reC4rSDguITguLnguJPguKrguLTguJnguJfguKfguLXguIHguLjguKUNCivguKXguLDguK3guK0g4LiY4LmA4LiZ4Lio4LiY4Liy4LiU4LiyDQor4Lil4Liw4Lit4LitIOC5gOC4nuC5h+C4jeC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4peC4sOC4reC4rSDguKfguLTguIjguLTguJXguKMNCivguKXguLDguK3guK0g4Lit4Lii4Li54LmI4Lii4Li34LiZ4Lii4LiHDQor4Lil4Liw4Lit4Lit4LiHIOC4iuC4sOC5gOC4meC4leC4tOC4ouC4seC4hw0KK+C4peC4sOC4reC4reC4hyDguJvguLLguJnguYDguKHguYjguJkNCivguKXguLDguK3guK3guIcg4Lin4LiH4Lip4LiyDQor4Lil4Liw4Lit4Lit4LiH4LiU4Liy4LinIOC5gOC4geC4t+C5ieC4reC4geC4ueC4pQ0KK+C4peC4sOC4reC4reC4qOC4o+C4tSDguKrguLLguYDguK3guLXguYjguKLguKENCivguKXguLDguYDguKHguLXguKLguJQg4LiX4Lix4Lia4LiX4Li04Lih4LiX4Lit4LiHDQor4Lil4Liw4LmA4Lih4Li14Lii4LiUIOC5gOC4peC4suC4q+C4nuC4seC4meC4mOC4uOC5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4peC4sOC5gOC4reC4teC4ouC4lCDguIHguKXguLTguYjguJnguKXguLPguJTguKfguJkNCivguKXguLDguYDguK3guLXguKLguJQg4LiI4Lix4LiZ4LiX4Liw4Lin4LiH4Lio4LmMDQor4Lil4Liw4LmA4Lit4Li14Lii4LiUIOC4lOC5ieC4p+C4h+C5guC4lQ0KK+C4peC4sOC5gOC4reC4teC4ouC4lCDguJnguLjguYnguKLguYDguKXguYfguIENCivguKXguLDguYDguK3guLXguKLguJQg4Lie4Li04Lil4Li24LiBDQor4Lil4Liw4LmA4Lit4Li14Lii4LiUIOC5gOC4o+C4t+C4reC4h+C4qOC4o+C4tQ0KK+C4peC4sOC5gOC4reC4teC4ouC4lCDguKrguLLguKPguIjguLHguJnguJfguKPguYwNCivguKXguLDguYDguK3guLXguKLguJQg4LmA4Lit4Li14LmI4Lii4Lih4Lin4Li04LiI4Liy4Lij4LiT4LmMDQor4Lil4Lix4LiB4LiC4LiT4LiyIOC4geC4o+C4o+C5guC4oeC4m+C4geC4o+C4k+C5jA0KK+C4peC4seC4geC4guC4k+C4siDguIrguYnguLLguIfguYHguIjguYnguIcNCivguKXguLHguIHguILguJPguLIg4LiZ4LmJ4Lit4Lii4Lib4Lij4Li14LiK4LiyDQor4Lil4Lix4LiB4LiC4LiT4LiyIOC5guC4nuC4mOC4tOC4geC4uOC4pQ0KK+C4peC4seC4geC4guC4k+C4siDguYDguKfguKzguLjguKrguLjguKfguKPguKPguJMNCivguKXguLHguIHguILguJPguLIg4Lit4Lig4Li04Lin4Lix4LiS4LiZ4Lie4LiH4Lio4LmMDQor4Lil4Lix4LiB4Lip4LmM4LiE4LiT4LiyIOC4mOC4meC4sOC4m+C4seC4geC4qeC5jA0KK+C4peC4seC4geC4qeC4k+C4siDguIjguLLguKPguLjguYHguKrguIfguYTguJ7guYTguKPguIjguJnguYwNCivguKXguLHguIHguKnguJPguLIg4Lib4Li04LmI4LiZ4Lib4Lil4Li34LmJ4Lih4LiI4Li04LiV4LiV4LmMDQor4Lil4Lix4LiB4Lip4LiT4LiyIOC4qOC4o+C4teC5gOC4iuC4suC4p+C4o+C4seC4leC4meC5jA0KK+C4peC4seC4geC4qeC4k+C4tSDguKjguKPguLXguKrguJbguLLguJ7guKMNCivguKXguLHguIHguKnguJPguYwg4Lit4Lig4Li04LiK4Liy4LiV4Li04LiY4Lij4Lij4LihDQor4Lil4Lix4LiB4Lip4Lih4Li1IOC5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C4peC4seC4hOC4meC4siDguIHguLHguJnguJXguKPguLDguKfguIfguKjguYwNCivguKXguLHguYnguIcg4LmB4LiL4LmI4LiE4Li5DQor4Lil4Lix4LmJ4LiH4LmA4Liu4Li14Lii4LiHIOC5geC4i+C5iOC5guC4gQ0KK+C4peC4seC4lOC4lOC4siDguIHguLLguI3guIjguJnguIHguLHguJnguJfguKPguYwNCivguKXguLHguJTguJTguLIg4LmB4LiB4LmJ4Lin4Lij4Lix4Lio4Lih4Li14Lin4LiH4Lio4LmMDQor4Lil4Lix4LiU4LiU4LiyIOC4hOC4uOC5ieC4oeC5gOC4geC4o+C4hw0KK+C4peC4seC4lOC4lOC4siDguIjguLTguJXguJXguYzguK3guYjguK3guJkNCivguKXguLHguJTguJTguLIg4LiK4Lil4LmE4Lie4Lij4Lie4Li04Lih4Lil4Lij4Lix4LiV4LiZ4LmMDQor4Lil4Lix4LiU4LiU4LiyIOC4i+C4reC4quC4uOC4guC5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C4peC4seC4lOC4lOC4siDguYHguIvguYjguK3guLbguYnguIcNCivguKXguLHguJTguJTguLIg4LiU4Li14Liq4Lix4LmJ4LiZDQor4Lil4Lix4LiU4LiU4LiyIOC5guC4leC5iuC4sOC4l+C4reC4hw0KK+C4peC4seC4lOC4lOC4siDguJjguKPguKPguKHguLLguKDguLTguKPguLLguJnguJnguJfguYwNCivguKXguLHguJTguJTguLIg4LiZ4Li44LiK4LmA4Lib4Lil4Li14LmI4Lii4LiZDQor4Lil4Lix4LiU4LiU4LiyIOC4m+C4j+C4tOC4muC4seC4leC4tA0KK+C4peC4seC4lOC4lOC4siDguYDguJzguYjguLLguJrguLjguI3guKHguLUNCivguKXguLHguJTguJTguLIg4Lie4Li24LmI4LiH4Lie4Lix4LiS4LiZ4LmMDQor4Lil4Lix4LiU4LiU4LiyIOC4oeC4h+C4hOC4peC4meC4seC4jg0KK+C4peC4seC4lOC4lOC4siDguKLguIfguYTguKrguKcNCivguKXguLHguJTguJTguLIg4Lij4Li44LmI4LiH4Lin4Li04LiV4Lij4Li1DQor4Lil4Lix4LiU4LiU4LiyIOC4p+C4h+C4qOC5jOC4peC4sOC4hOC4ow0KK+C4peC4seC4lOC4lOC4siDguKfguLTguKHguLjguIHguJXguLLguKLguJkNCivguKXguLHguJTguJTguLIg4Lio4Li04Lij4Li04LiH4LiwDQor4Lil4Lix4LiU4LiU4LiyIOC4quC4seC4oeC4pOC4l+C4mOC4tOC5gOC4p+C4ig0KK+C4peC4seC4lOC4lOC4siDguKrguLjguJnguJfguKPguLLguKfguIfguKjguYwNCivguKXguLHguJTguJTguLIg4Lir4Lin4Lix4LiH4Lih4Li1DQor4Lil4Lix4LiU4LiU4LiyIOC4reC4seC4muC4lOC4uOC4peC4peC4suC5g+C4mg0KK+C4peC4seC4lOC4lOC4siDguYDguK3guLTguJrguK3guLTguYjguKENCivguKXguLHguJTguJTguLLguKfguKPguKPguJMg4LiI4Li04LiV4Lij4LiU4LiyDQor4Lil4Lix4LiU4LiU4Liy4Lin4Lij4Lij4LiT4LmMIOC4nuC4uOC5iOC4oeC4p+C4tOC5gOC4qOC4qQ0KK+C4peC4seC4lOC4lOC4suC4p+C4seC4peC4ouC5jCDguIfguLLguKHguJvguKPguLDguKHguKfguI0NCivguKXguLHguJTguJTguLLguKfguLHguKXguKLguYwg4LmB4LiL4LmI4LiZ4Li04LmJ4LihDQor4Lil4Lix4LiU4LiU4Liy4Lin4Lix4Lil4Lii4LmMIOC4meC4meC4l+C4sOC4meC4suC4hOC4ow0KK+C4peC4seC4lOC4lOC4suC4p+C4seC4peC4ouC5jCDguJ7guKXguK3guKLguYDguJ7guYfguIrguKMNCivguKXguLHguJTguJTguLLguKfguLHguKXguKLguYwg4Lii4Li44LiX4LiY4LiZ4Liy4Liq4Li04Lij4Li04LiB4Li44LilDQor4Lil4Lix4LiU4LiU4Liy4Lin4Lix4Lil4Lii4LmMIOC4qOC4o+C4teC4o+C4seC4leC4meC5guC4iuC4leC4tOC4iuC5iOC4p+C4hw0KK+C4peC4seC4lOC4lOC4suC4p+C4seC4peC4ouC5jCDguKrguLjguYDguKHguJjguLLguKjguKMNCivguKXguLHguJTguJ7guKXguLUg4Liq4Li04LiZ4LiY4Li44LmC4Liq4Lig4LiTDQor4Lil4Lix4LmI4LiZ4LiX4LihIOC4peC4teC4nuC4seC4meC5geC4quC4hw0KK+C4peC4suC4mSDguKfguIfguKjguYzguIfguLLguKHguIHguJnguIENCivguKXguLLguKXguLXguKfguLHguJPguKLguYwg4Lia4Li44LiZ4LiZ4Liy4LiEDQor4Lil4Liy4Lin4Lix4LiT4Lii4LmMIOC5hOC4iuC4ouC4muC4ueC4o+C4k+C4sOC4nuC4seC4meC4mOC5jOC4geC4uOC4pQ0KK+C4peC4suC4p+C4seC4k+C4ouC5jCDguKTguJfguJjguLTguJnguJnguJfguYwNCivguKXguLLguKfguLHguKXguKLguYwg4LiB4Lix4LiZ4LiK4Liy4LiV4Li0DQor4Lil4Liy4Lin4Lix4Lil4Lii4LmMIOC5guC4iuC4leC4tOC4nuC4seC4meC4mOC5jA0KK+C4peC4suC4p+C4seC4peC4ouC5jCDguJrguLTguJnguKrguLjguKHguLHguJkNCivguKXguLLguKfguLHguKXguKLguYwg4LmB4Lii4LmJ4Lih4Lib4Lij4Liw4Lig4LiyDQor4Lil4Liy4Lin4Lix4Lil4Lii4LmMIOC4qOC4uOC4guC5gOC4l+C4p+C4sg0KK+C4peC4suC4p+C4seC4peC4ouC5jCDguK3guLTguJnguJfguKPguJTguLTguKnguJDguYwNCivguKXguLPguIjguKfguJkg4Lia4Li44LiN4LmA4LiC4LmH4LihDQor4Lil4Liz4LiU4Lin4LiZIOC4geC4o+C4uOC4lOC4nuC4seC4meC4mOC5jA0KK+C4peC4s+C4lOC4p+C4mSDguYDguJXguIrguLDguYDguKrguJkNCivguKXguLPguJTguKfguJkg4LmA4Lie4LmH4LiK4Lij4LiB4Lil4Lix4LiaDQor4Lil4Liz4LiU4Lin4LiZIOC4quC4tOC4oeC4sOC4guC4iOC4o+C4muC4uOC4jQ0KK+C4peC4s+C4nuC4oyDguITguLPguKHguLINCivguKXguLPguJ7guLHguIcg4Lit4Li44LiU4LihDQor4Lil4Liz4Lie4Li5IOC4quC4t+C4muC4quC4p+C5iOC4suC4h+C4geC4uOC4pQ0KK+C4peC4s+C4oOC4uSDguKjguKPguLXguKDguITguLLguIHguKMNCivguKXguLPguKLguK3guIcg4LiZ4Lig4LiZ4LiX4Li1DQor4Lil4Liz4Lij4LiwIOC4l+C4seC4muC5gOC4m+C4peC4teC5iOC4ouC4mQ0KK+C4peC4s+C5gOC4iOC4teC4ouC4gSDguKPguLHguJXguKPguKrguLLguKMNCivguKXguLPguYDguJ7guKIg4LmA4Lih4LiG4Lib4Lij4Liw4Liq4Liy4LiXDQor4Lil4Liz4LmD4LiiIOC4iOC4o+C4tOC4leC4iuC4teC4p+C4sA0KK+C4peC4s+C5g+C4oiDguJvguLLguJnguYDguKPguLfguK3guIcNCivguKXguLPguYPguKIg4Liq4Li44Lin4Lij4Lij4LiT4LmC4LiK4LiV4Li0DQor4Lil4LmJ4LizIOC5g+C4iOC5gOC4geC5iOC4h+C4geC4tOC4iA0KK+C4peC4tOC4guC4tOC4lSDguIrguKfguKjguLTguKPguLQNCivguKXguLTguILguLTguJUg4Lij4Lix4LiV4LiZ4Lie4LiH4Lio4LmMDQor4Lil4Li04LiU4LiyIOC4leC4seC4meC4leC4tOC4iOC4o+C4o+C4ouC4suC4meC4meC4l+C5jA0KK+C4peC4tOC4meC4lOC4siDguIjguLTguKPguJvguKPguLDguKDguLLguIHguKMNCivguKXguLTguJnguJTguLIg4Lin4Li14Lij4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lil4Li04LmJ4LiZ4LiI4Li14LmIIOC4guC4seC4meC4l+C4reC4h+C4lOC4tQ0KK+C4peC4tOC5ieC4meC4iOC4teC5iCDguKrguKHguLTguJXguLTguJnguLHguJnguJfguJnguYwNCivguKXguLTguYjguKHguIrguLTguKcg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lil4Li04LmJ4LihIOC4quC4uOC4guC4p+C4tOC4l+C4ouC4suC4geC4uOC4pQ0KK+C4peC4tOC4peC4teC5iCDguKvguIfguKrguYzguKrguLjguILguJ7guLHguJnguJjguLjguYwNCivguKXguLUg4Liq4Li44LiC4LmB4Liq4LiH4LmD4LiqDQor4Lil4Li14LiV4LmJ4LiyIOC4geC4tOC4iOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4peC4teC4peC4siDguKXguLTguJkNCivguKXguLXguK7guLHguYnguKcg4Lio4Li04Lij4Li04LiK4Liy4LiV4LiK4Lix4LiiDQor4Lil4Li14LmI4LmA4LiE4LmH4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4peC4teC5iCDguK3guKLguLnguYjguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguKXguLfguK3guIrguLHguKIg4LmE4Lie4LmC4Lij4LiI4LiZ4LmM4Lie4Li44LiX4LiY4Li04LiE4Li44LiTDQor4Lil4Li34Lit4Lie4LiH4Lip4LmMIOC5guC4nuC4mOC4tOC5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4peC4uOC5ieC4oiDguYLguJXguJXguKPguLbguIfguJfguKPguLHguJ7guKLguYwNCivguKXguLnguIHguIrguLTguYnguJkg4Lir4LiH4Lip4LmM4LiX4Lit4LiHDQor4LmA4Lil4LiC4LiyIOC5gOC4nuC4iuC4o+C5gOC4quC4meC4sg0KK+C5gOC4peC4reC4nuC4h+C4qeC5jCDguYDguKPguLfguK3guIfguKfguLLguJnguLTguIoNCivguYDguKXguK3guKjguLHguIHguJTguLTguYwg4Liq4LiW4Li04LiV4Lii4LmM4Lin4Li04Lih4LilDQor4LmA4Lil4Liy4Lir4LiZ4Li44Lin4Lix4LiV4Li0IOC5gOC4peC4suC4q+C4meC4uOC4p+C4seC4leC4tA0KK+C5gOC4peC4tOC4qCDguIrguLfguYjguJnguYTguKHguYjguKfguLLguKINCivguYDguKXguLTguKgg4Lij4Liw4Lir4LiyDQor4LmA4Lil4Li04Lio4LiK4Lix4LiiIOC4hOC4peC5iOC4reC4h+C4mOC4meC4geC4tOC4iA0KK+C5gOC4peC4tOC4qOC4iuC4suC4oiDguITguYnguLLguJzguKXguJTguLUNCivguYDguKXguLTguKjguKTguJfguJjguLTguYwg4LiV4Lix4LmJ4LiH4LiB4LmI4Lit4Liq4LiB4Li44LilDQor4LmA4Lil4Li04Lio4Lin4Li04LiX4Lii4LmMIOC5guC4o+C4iOC4meC5jOC4guC4iOC4o+C4meC4oOC4suC4peC4seC4og0KK+C5gOC4peC4tOC4qOC4qOC4tOC4peC4m+C5jCDguITguLXguKPguLUNCivguYDguKXguLXguKLguIfguIrguLHguKIg4Lit4Lij4Li44LiT4LiB4Li04LiI4LmA4LiI4Lij4Li04LiNDQor4LmA4Lil4Li14LmI4Lii4LiH4LiE4Li04LihIOC5geC4i+C5iOC4reC4seC5iuC4hw0KK+C5gOC4peC4teC5iOC4ouC4h+C5gOC4ruC5h+C4hyDguYHguIvguYjguJXguLHguYnguIcNCivguYDguKXguLXguYnguKLguIcg4LmB4LiL4LmI4LmA4LiV4Li14Lii4LinDQor4LmA4Lil4Li34LmI4Lit4LiZIOC4geC4pOC4qeC4k+C4geC4o+C4tQ0KK+C5gOC4peC4t+C5iOC4reC4mSDguKrguKHguJTguLUNCivguYDguKXguYfguIEg4LiB4Li44Lil4LiB4Li04LiI4LiB4Liz4LiI4LijDQor4LmA4Lil4LmH4LiBIOC4iOC4leC4uOC4nuC4o+C4q+C4oeC4p+C4h+C4qOC5jA0KK+C5gOC4peC5h+C4gSDguIrguYnguLLguIfguYDguJzguLfguK3guIENCivguYDguKXguYfguIEg4LmB4LiL4LmI4Lil4Li14LmJDQor4LmA4Lil4LmH4LiBIOC4lOC4reC4geC4quC4suC4ouC4q+C4ouC4uOC4lA0KK+C5gOC4peC5h+C4gSDguJfguKPguLHguJ7guKLguYzguYHguKrguJnguJTguLUNCivguYDguKXguYfguIEg4LiZ4Liy4Liq4Li44Lin4Lij4Lij4LiTDQor4LmA4Lil4LmH4LiBIOC4m+C5ieC4reC4oeC4iuC4ueC5geC4geC5ieC4pw0KK+C5gOC4peC5h+C4gSDguJ7guLXguKPguJ7guKXguLLguJnguLHguJnguJfguYwNCivguYDguKXguYfguIEg4LmA4Lih4LiY4Li14LiB4Li44LilDQor4LmA4Lil4LmH4LiBIOC4peC4tOC5ieC4oeC4m+C4tOC4geC4o+C4k+C5jA0KK+C5gOC4peC5h+C4gSDguKjguKPguLXguIHguKXguLTguYjguJnguKrguLjguKfguKPguKPguJMNCivguYDguKXguYfguIEg4Liq4Liy4LiV4Lij4LiZ4LiZ4LiX4Lij4Li14Lii4LmMDQor4LmA4Lil4LmH4LiBIOC5geC4quC4h+C5g+C4quC5geC4geC5ieC4pw0KK+C5gOC4peC5h+C4gSDguK3guLHguIHguKnguKPguLLguJnguLjguKfguLHguJXguKMNCivguYDguKXguYfguJog4Lin4LiH4Lip4LmM4LmA4LiI4Lij4Li04LiNDQor4LmA4Lil4LmJ4LiHIOC5geC4i+C5iOC5geC4leC5iQ0KK+C5geC4peC5ieC4oSDguKDguLTguKPguKHguKLguYzguKHguYjguKfguIcNCivguYTguKXguYjguK7guIEg4LmB4LiL4LmI4LmA4Lia4LmKDQor4Lin4LiH4LiI4Lix4LiZ4LiX4Lij4LmMIOC5hOC4l+C4o+C4h+C4suC4oQ0KK+C4p+C4h+C4qOC5jOC4iOC4seC4meC4l+C4o+C5jCDguKfguLTguYDguKjguKnguKjguKMNCivguKfguIfguKjguYzguKjguLTguKPguLQg4Lie4Lij4Lir4Lih4LiK4LiZ4LiwDQor4Lin4LiH4Lio4LmMIOC4iOC4s+C4meC4h+C4p+C4tOC4l+C4ouC5jA0KK+C4p+C4h+C4qeC5jOC5gOC4lOC4t+C4reC4mSDguIrguJnguJvguKPguLDguIrguLINCivguKfguIfguYDguJTguLfguK3guJkg4LiH4Liy4Lih4LmC4Lie4LiY4Li04LmM4LiX4Lit4LiHDQor4Lin4LiH4LmA4LiU4Li34Lit4LiZIOC4m+C4tOC5iOC4meC4geC4uOC4oeC4oOC4teC4o+C5jA0KK+C4p+C4h+C5gOC4lOC4t+C4reC4mSDguKrguLjguILguYDguJnguJXguKMNCivguKfguIrguLTguKMg4LiZ4Li04Lii4Lih4Lio4Li04Lil4LibDQor4Lin4LiK4Li04Lij4LiwIOC4mOC4o+C4o+C4oeC4q+C4l+C4seC4og0KK+C4p+C4iuC4tOC4o+C4siDguIHguLTguYjguIfguYHguIHguYnguKcNCivguKfguIrguLTguKPguLIg4Lir4Lil4Li14Lil4Liw4LmA4Lih4Li14Lii4LijDQor4Lin4LiK4Li04Lij4Liy4Lin4Lix4Lil4Lii4LmMIOC4p+C4tOC4l+C4ouC4nuC4suC4meC4tOC4ig0KK+C4p+C4k+C4tOC4iuC4siDguYLguK3guJfguIHguLLguJnguJnguJfguYwNCivguKfguJPguLUg4Lin4Li04LiI4Li04LiV4LijDQor4Lin4LiU4Li14LiB4Lij4LiT4LmMIOC4quC4uOC4guC4iOC4suC4o+C4uOC4p+C4o+C4o+C4kw0KK+C4p+C4meC4o+C4seC4iuC4leC5jCDguJXguLHguYnguIfguITguLLguKPguKfguLDguITguLjguJMNCivguKfguJnguLLguKXguLUg4LiI4Li04LiV4LiV4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4LiZ4Li04LiK4LiyIOC4o+C4seC4leC4meC4sOC4p+C4tOC4qA0KK+C4p+C4meC4tOC4lOC4siDguIHguLLguKvguKXguLTguJoNCivguKfguJnguLTguJTguLIg4LiC4Lix4LiZ4LiY4Liq4Li04LiX4LiY4Li04LmMDQor4Lin4LiZ4Li04LiU4LiyIOC4iOC4h+C4m+C4tOC4ouC4sOC5gOC4peC4tOC4qA0KK+C4p+C4meC4tOC4lOC4siDguIjguLjguKXguKrguLjguKfguKPguKPguJMNCivguKfguJnguLTguJTguLIg4LiK4Lix4Lii4LiK4Lix4LiK4Lin4Liy4LilDQor4Lin4LiZ4Li04LiU4LiyIOC4i+C4tuC4h+C4l+C4reC4hw0KK+C4p+C4meC4tOC4lOC4siDguJDguLLguJnguLDguKrguJbguLTguKPguIHguLjguKUNCivguKfguJnguLTguJTguLIg4LiV4Li04Lil4LiB4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lin4LiZ4Li04LiU4LiyIOC5gOC4l+C4nuC4nuC4tOC4l+C4seC4geC4qeC5jOC4nuC4h+C4qeC5jA0KK+C4p+C4meC4tOC4lOC4siDguJnguLTguKHguKHguLLguJnguYTguJ7guYLguKPguIjguJnguYwNCivguKfguJnguLTguJTguLIg4Lia4Li54Lij4LiT4Liq4Lix4LiI4LiI4LiwDQor4Lin4LiZ4Li04LiU4LiyIOC4nOC4peC4suC4nOC4pQ0KK+C4p+C4meC4tOC4lOC4siDguJ7guLLguJnguLTguIrguYDguIjguKPguLTguI0NCivguKfguJnguLTguJTguLIg4Lig4Li54LiX4Li04Lie4Lii4Lin4LiH4Lip4LiyDQor4Lin4LiZ4Li04LiU4LiyIOC5hOC4oeC5ieC4lOC4teC5gOC4peC4tOC4qA0KK+C4p+C4meC4tOC4lOC4siDguYDguKPguLfguK3guIfguJjguLXguKPguK3guLPguJnguKfguKINCivguKfguJnguLTguJTguLIg4LmA4Lil4Li14LmJ4Lii4LiH4LiW4LiZ4Lit4LihDQor4Lin4LiZ4Li04LiU4LiyIOC4p+C4tOC4jeC4jeC4ueC4p+C4tOC4quC4tOC4l+C4mOC4tOC4o+C4seC4geC4qeC5jA0KK+C4p+C4meC4tOC4lOC4siDguKjguLLguJnguJXguYzguJ7guLTguKPguLTguKLguLANCivguKfguJnguLTguJTguLIg4Liq4Lij4Liy4Lin4Li44LiY4Lin4Li04LiZ4Lix4LiiDQor4Lin4LiZ4Li04LiU4LiyIOC4quC4uOC4guC4quC4oeC4oOC4seC4geC4lOC4tOC5jA0KK+C4p+C4meC4tOC4lOC4siDguYHguKrguIfguJ7guIfguKjguYzguIrguKfguLLguKUNCivguKfguJnguLTguJTguLIg4Lit4Lih4Liy4LiV4Lii4LiB4Li44LilDQor4Lin4LiZ4Li04LiU4LiyIOC4reC4uOC4l+C4ouC4suC4h+C4geC4ueC4ow0KK+C4p+C4meC4tOC4oOC4siDguKfguYjguK3guIfguKfguLHguIjguJnguLANCivguKfguKPguIHguLLguJnguJXguYwg4Lig4LiE4Lin4Lix4LiV4Liq4Li44LiZ4LiX4LijDQor4Lin4Lij4LiB4Li04LiIIOC4quC4uOC4o+C4k+C4o+C4h+C4hOC5jOC4nuC4seC4meC4mOC5jA0KK+C4p+C4o+C4iOC4tOC4leC4o+C4siDguKfguKjguLTguJnguJ7guIfguKjguYzguKfguJPguLTguIoNCivguKfguKPguIrguLHguKIg4LiX4Lix4Lio4LmE4LiZ4Lii4LmA4LiY4Li14Lii4Lij4LiB4Li44LilDQor4Lin4Lij4LiK4Lix4LiiIOC4quC4tOC4meC4mOC4meC4meC4nuC4hOC4uOC4kw0KK+C4p+C4o+C4iuC4suC4leC4tCDguJ7guLHguJnguJjguLjguYzguKrguKfguLHguKrguJTguLTguYwNCivguKfguKPguJPguLUg4Lih4LiY4Li44Lij4Liq4LiV4Lij4Liw4LiB4Li54LilDQor4Lin4Lij4LiY4Lij4Lij4LihIOC5geC4iOC5iOC4oeC4iOC4seC4meC4l+C4o+C5jA0KK+C4p+C4o+C4meC4suC4liDguJvguLTguKLguKrguLjguKfguKPguKPguJPguLLguKDguKPguJPguYwNCivguKfguKPguJnguLjguIog4LiB4Li04LiI4Lit4Li44LiU4Lih4Liq4Li04LiZDQor4Lin4Lij4LiZ4Li44LiKIOC4leC4seC5ieC4h+C5gOC4iOC4o+C4tOC4jeC5gOC4quC4luC4teC4ouC4ow0KK+C4p+C4o+C4meC4uOC4iiDguJ7guLTguKnguJPguLjguKfguIfguKnguYwNCivguKfguKPguJnguLjguIog4Lio4Lij4Li14LiX4Lix4Lio4LiZ4Li14Lii4LmMDQor4Lin4Lij4LiZ4Li44LiKIOC5guC4reC4oOC4suC4quC5gOC4iOC4o+C4tOC4jeC4nuC4ow0KK+C4p+C4o+C4nuC4h+C4qOC5jCDguKjguLTguKPguLTguJ7guIfguKnguYzguKfguLTguKPguLHguIoNCivguKfguKPguJ7guIfguKnguYwg4LmC4Lie4LiY4Li04LmM4Liq4Lin4LmI4Liy4LiHDQor4Lin4Lij4Lie4LiI4LiZ4LmMIOC4geC4tOC4leC4leC4tOC4nuC4seC4kuC4meC4suC4nuC4h+C4qOC5jA0KK+C4p+C4o+C4nuC4iOC4meC5jCDguJXguKPguKPguIHguJ7guIfguKjguYwNCivguKfguKPguJ7guIjguJnguYwg4LmA4Lib4Lij4Lih4Liq4Liy4LiiDQor4Lin4Lij4Lie4LiI4LiZ4LmMIOC4p+C4h+C4qOC5jOC4quC4h+C5iOC4sg0KK+C4p+C4o+C4nuC4iOC4meC5jCDguKrguLjguKfguLHguJLguJnguYzguJjguJnguLLguIHguKMNCivguKfguKPguJ7guKMg4LiX4Lij4Lix4Lie4Lii4LmM4LiX4Lin4Li14Lie4LijDQor4Lin4Lij4Lie4Lij4Lij4LiTIOC4oeC4teC4l+C4reC4h+C4hOC4sw0KK+C4p+C4o+C4nuC4pSDguYDguJrguI3guIHguLLguJnguLUNCivguKfguKPguJ7guLHguJLguJnguYwg4Liq4Li44Lih4Liw4LmC4LiZDQor4Lin4Lij4Lie4Li04LiK4LiN4LiyIOC4muC4uOC4jeC4qOC4o+C4teC5guC4o+C4iOC4meC5jA0KK+C4p+C4o+C4oeC4mSDguITguIfguK3guYjguK3guJkNCivguKfguKPguKLguLjguJfguJjguYwg4Lib4Lij4Liw4LiY4Liy4LiZ4LiX4Li04Lie4Lii4LmMDQor4Lin4Lij4Lij4LiT4LiB4Liy4LiZ4LiV4LmMIOC4guC4suC4p+C4peC4suC4oA0KK+C4p+C4o+C4o+C4k+C4iuC4seC4oiDguJrguLjguI3guJrguLPguKPguLjguIcNCivguKfguKPguKPguJPguJTguLUg4LiI4Lix4LiZ4LiX4Lij4LmM4Lib4Lil4Lix4LmI4LiHDQor4Lin4Lij4Lij4LiT4LiU4Li1IOC4nuC4o+C4meC4seC4meC4l+C4suC4o+C4seC4leC4meC5jA0KK+C4p+C4o+C4o+C4k+C4lOC4tSDguKvguIfguKrguYzguJnguLTguKHguLTguJXguIrguLHguKINCivguKfguKPguKPguJPguJfguLTguJ7guKLguYwg4LmB4LiL4LmI4LmC4Lib4LmI4LinDQor4Lin4Lij4Lij4LiT4LiZ4Lig4LiyIOC5geC4i+C5iOC5gOC4leC4teC5i+C4ouC4pw0KK+C4p+C4o+C4o+C4k+C4meC4tOC4oOC4siDguJ7guLjguYjguKHguKrguLjguKfguKPguKPguJMNCivguKfguKPguKPguJPguJ7guKMg4LiB4Li04LiV4LiV4Li04LmC4Liq4Lig4LiTDQor4Lin4Lij4Lij4LiT4Lie4LijIOC5gOC4nuC4teC4ouC4o+C4quC4suC4o+C4sA0KK+C4p+C4o+C4o+C4k+C4nuC4tOC4muC4ueC4peC4ouC5jCDguJnguLjguIrguYPguKINCivguKfguKPguKPguJPguKDguLIg4LiK4Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lin4Lij4Lij4LiT4Lig4LiyIOC4m+C4tOC4ouC4sOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4p+C4o+C4o+C4k+C4oOC4siDguKjguKPguYTguJ7guKjguLLguKUNCivguKfguKPguKPguJPguKPguLHguIHguKnguYwg4Lin4Lix4LiS4LiZ4Lin4Li44LiS4Li04Lie4LiH4Lio4LmMDQor4Lin4Lij4Lij4LiT4Lij4Li1IOC4iuC4uOC4k+C4q+C4oOC4tOC4jeC5guC4jeC4geC4uOC4pQ0KK+C4p+C4o+C4o+C4k+C4p+C4lOC4tSDguYLguJXguKnguKLguLLguJnguJnguJfguYwNCivguKfguKPguKPguJPguKfguLTguKDguLIg4LiY4LmA4LiZ4Lio4Liq4Li44LiY4Lij4Lij4LihDQor4Lin4Lij4Lij4LiT4Lin4Li04Lih4LilIOC4kOC4suC4meC4suC4meC4uOC4qOC4seC4geC4lOC4tOC5jA0KK+C4p+C4o+C4o+C4k+C4p+C4tOC4oeC4pSDguKrguLjguILguJvguLLguJkNCivguKfguKPguKPguJPguKfguLTguYTguKUg4Lio4Li04Lij4Li04LiK4Lix4Lii4LmA4LiX4Lin4Li04LiZ4LiX4Lij4LmMDQor4Lin4Lij4Lij4LiT4Lio4Li04Lij4Li0IOC4leC4seC4meC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4o+C4o+C4k+C4sCDguITguJPguLLguI3guLLguJXguLQNCivguKfguKPguKPguJPguLAg4LmE4Liq4Lii4LmA4LiB4Li34LmJ4LitDQor4Lin4Lij4Lij4LiT4LiyIOC4geC4uOC4peC4nuC4meC4suC5gOC4p+C4qA0KK+C4p+C4o+C4o+C4k+C4siDguITguIfguYDguIjguKPguLTguI3guIjguLTguJXguJXguLTguIHguLjguKUNCivguKfguKPguKPguJPguLIg4LiI4Lix4LiZ4LiX4Lij4LiE4LiHDQor4Lin4Lij4Lij4LiT4LiyIOC5gOC4iOC4teC4ouC4h+C4p+C4h+C4qOC5jOC4luC4suC4p+C4ow0KK+C4p+C4o+C4o+C4k+C4siDguIrguLTguJnguKjguKPguLXguKrguLjguIINCivguKfguKPguKPguJPguLIg4LmB4LiL4LmI4Lil4Li04LmI4LinDQor4Lin4Lij4Lij4LiT4LiyIOC5geC4i+C5iOC5guC4peC5iA0KK+C4p+C4o+C4o+C4k+C4siDguJXguLHguJnguYDguIjguKPguLTguI0NCivguKfguKPguKPguJPguLIg4LiX4Lit4LiH4Liq4Li44LiCDQor4Lin4Lij4Lij4LiT4LiyIOC4mOC4teC4o+C4sOC4nuC4h+C4qeC5jA0KK+C4p+C4o+C4o+C4k+C4siDguJrguKfguKPguKfguLHguJLguJnguKfguLLguJnguLTguIoNCivguKfguKPguKPguJPguLIg4Lib4Lij4Liy4LiH4LiX4Lit4LiHDQor4Lin4Lij4Lij4LiT4LiyIOC4nuC4iOC4meC5jOC4qOC4tOC4o+C4tOC4qOC4tOC4peC4mw0KK+C4p+C4o+C4o+C4k+C4siDguJ7guLLguJnguLTguIrguKLguYzguYDguIjguKPguLTguI3guKLguLTguYjguIcNCivguKfguKPguKPguJPguLIg4Lig4Lix4LiX4Lij4Lia4Lix4LiT4LiR4Li04LiVDQor4Lin4Lij4Lij4LiT4LiyIOC5geC4oeC5ieC4meC4iOC4seC4meC4l+C4o+C5jA0KK+C4p+C4o+C4o+C4k+C4siDguYDguKPguLfguK3guIfguJvguKPguLDguYDguKDguJcNCivguKfguKPguKPguJPguLIg4Lin4LiH4Lio4LmM4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lin4Lij4Lij4LiT4LiyIOC4p+C4tOC4quC4uOC4l+C4mOC4p+C4tOC5gOC4qOC4qQ0KK+C4p+C4o+C4o+C4k+C4siDguKjguLTguJXguLDguYLguKLguJjguLTguJkNCivguKfguKPguKPguJPguLIg4Liq4Lir4LiY4Lij4Lij4Lih4Li04LiBDQor4Lin4Lij4Lij4LiT4LiyIOC4quC4uOC4iOC4o+C4tOC4lQ0KK+C4p+C4o+C4o+C4k+C4siDguYLguKrguKDguJPguJnguKPguLTguJnguJfguKPguYwNCivguKfguKPguKPguJPguLIg4Lit4LiZ4Li44Liq4Lij4LiT4LiK4Lix4LiiDQor4Lin4Lij4Lij4LiT4LiyIOC4reC4tOC4meC4l+C4o+C5jOC4nuC4o+C4sOC4ouC4sg0KK+C4p+C4o+C4o+C4k+C4suC4oOC4siDguYHguIvguYjguIvguLbguIcNCivguKfguKPguKPguJPguLTguKDguLIg4Liq4Li44LiC4Lie4Lil4Lit4LiiDQor4Lin4Lij4Lij4LiT4Li1IOC5gOC4geC4teC4ouC4o+C4leC4tOC4geC4seC4h+C4p+C4suC4meC4geC4uOC4pQ0KK+C4p+C4o+C4o+C4k+C4tSDguITguLjguYnguKHguK3guJnguLjguKfguIfguKjguYwNCivguKfguKPguKPguJPguLUg4LmA4LiI4Lij4Li04LiN4LmA4LiV4Li14Lii4Lin4LiH4Lio4LmMDQor4Lin4Lij4Lij4LiT4Li1IOC5guC4iuC4hOC4iuC4ueC4iuC4seC4og0KK+C4p+C4o+C4o+C4k+C4tSDguYHguIvguYjguYDguK3guLXguKLguLANCivguKfguKPguKPguJPguLUg4LiV4Lix4LmJ4LiH4LmA4Liq4Liy4Lin4Lig4Liy4LiE4Lii4LmMDQor4Lin4Lij4Lij4LiT4Li1IOC5hOC4l+C5gOC4oeC4t+C4reC4h+C4nuC4pQ0KK+C4p+C4o+C4o+C4k+C4tSDguJrguLjguI3guI3guLDguKTguJfguJjguLTguYwNCivguKfguKPguKPguJPguLUg4Lic4Li44Liq4LiU4Li04LiZDQor4Lin4Lij4Lij4LiT4Li1IOC4nuC4uOC5iOC4oeC4qOC4tOC4o+C4tA0KK+C4p+C4o+C4o+C4k+C4tSDguKHguLLguJnguLDguKDguLHguIHguJTguLTguYzguKjguLTguKPguLTguIHguLjguKUNCivguKfguKPguKPguJPguLUg4LmA4Lij4Li34Lit4LiH4Liq4Lih4Lir4Lih4Liy4LiiDQor4Lin4Lij4Lij4LiT4Li1IOC4p+C4h+C4qeC5jOC5gOC4l+C4teC4ouC4meC4iOC4seC4meC4l+C4o+C5jA0KK+C4p+C4o+C4o+C4k+C4tSDguKjguKPguLXguKfguLTguKHguKXguJfguLHguKjguJnguYwNCivguKfguKPguKPguJPguLUg4Liq4Lix4LiI4LiI4Liw4LmA4Lin4LiX4LiwDQor4Lin4Lij4Lij4LiT4Li1IOC4quC4uOC4p+C4o+C4o+C4k+C4pOC4geC4qeC5jA0KK+C4p+C4o+C4o+C4k+C4tSDguK3guKDguLTguKPguLHguJXguJnguIHguLjguKUNCivguKfguKPguKPguJPguLUg4LmA4Lit4Li14LmI4Lii4Lih4Liq4Lit4Liy4LiUDQor4Lin4Lij4Lij4LiT4LmA4Lie4LmH4LiNIOC4nuC4o+C4oeC4iOC4seC4meC4l+C4o+C5jA0KK+C4p+C4o+C4o+C4mCDguIHguLHguJnguJXguYzguYTguJ7guYDguKPguLLguLANCivguKfguKPguKPguKXguKDguKPguJPguYwg4LmA4Lil4Lit4Lin4Lix4LiS4LiZ4LiB4Li04LiI4LiW4Liy4Lin4LijDQor4Lin4Lij4Lij4Lix4LiV4LiZ4LmMIOC4meC4tOC4o+C4sOC4ieC4seC4leC4o+C4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4p+C4o+C4peC4seC4geC4qeC4k+C5jCDguIjguLHguJnguJfguKPguJTguLUNCivguKfguKPguKXguLHguIHguKnguJPguYwg4Liq4Li04LiZ4LmE4LiK4LiiDQor4Lin4Lij4Lin4Lij4Lij4LiTIOC4jeC4suC4k+C4tOC4quC4quC4ow0KK+C4p+C4o+C4p+C4o+C4o+C4kyDguYDguKXguLTguKjguITguIfguITguLLguJfguLTguJ7guKLguYwNCivguKfguKPguKfguKPguKPguJMg4LmA4Lit4Li14LmI4Lii4Lih4Liq4Lix4LiZ4LiV4Li04LmE4Lie4Lio4Liy4LilDQor4Lin4Lij4Lin4Lix4LiS4LiZ4LmMIOC4p+C4tOC4p+C4seC4kuC4meC5jOC4ouC4uOC4qOC4seC4meC4leC5jA0KK+C4p+C4o+C4p+C4tOC4l+C4ouC5jCDguIHguLjguKXguKfguIfguKnguYzguKfguLLguJPguLTguIrguKLguYwNCivguKfguKPguKfguLTguJfguKLguYwg4LiK4Liy4LiV4Li04LmA4Lin4Li14Lii4LiHDQor4Lin4Lij4Lin4Li04LiX4Lii4LmMIOC4l+C4seC4qOC4mOC4meC4sOC4quC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4p+C4o+C4p+C4tOC4l+C4ouC5jCDguJ7guLLguJPguLTguIrguJ7guLHguJLguJnguYwNCivguKfguKPguKfguLTguJfguKLguYwg4Lin4Lij4LiB4Li04LiV4LiV4Li04Lie4Lix4LiZ4LiY4LmMDQor4Lin4Lij4Lin4Li04LiX4Lii4LmMIOC4quC4tOC4meC4iuC4p+C4suC4peC4p+C4seC4kuC4meC5jA0KK+C4p+C4o+C4p+C4tOC4l+C4ouC5jCDguK3guLTguKjguKPguLLguIfguIHguLnguKMg4LiTIOC4reC4ouC4uOC4mOC4ouC4sg0KK+C4p+C4o+C4p+C4uOC4kuC4tCDguIjguLPguYDguKPguLTguI3guKPguLHguJXguJnguLLguIHguKMNCivguKfguKPguKfguLjguJLguLQg4LiV4Lix4LmJ4LiH4Liq4Lih4Lig4Liy4LiE4Lin4Lij4LiB4Li44LilDQor4Lin4Lij4Lin4Li44LiS4Li0IOC4nuC4o+C4p+C4o+C4meC4seC4meC4l+C5jA0KK+C4p+C4o+C4p+C4uOC4kuC4tCDguYDguKXguLTguKjguJvguKPguLXguIrguLLguJ7guIfguKnguYwNCivguKfguKPguKfguLjguJLguLQg4Liq4Li04LiX4LiY4Li04Lio4Liy4Liq4LiV4Lij4LmM4Liq4LiB4Li44LilDQor4Lin4Lij4Lin4Li44LiYIOC5gOC4meC4leC4o+C4l+C4seC4qOC4meC5jA0KK+C4p+C4o+C4qOC4seC4geC4lOC4tOC5jCDguYDguJTguYjguJnguYDguIHguKjguLTguJnguLXguKXguYnguLMNCivguKfguKPguKjguLHguIHguJTguLTguYwg4Liq4Li04LiH4Lir4LiY4Li04LiV4Li04LiB4Li44LilDQor4Lin4Lij4Liq4Li04LiX4LiY4Li04LmMIOC4m+C4peC4t+C5ieC4oeC4quC4seC4oeC4nuC4seC4meC4mOC5jA0KK+C4p+C4o+C4seC4iiDguK3guKPguLjguJPguIHguKHguKUNCivguKfguKPguLHguI3guI3guLIg4Lio4Li04Lil4Lib4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMDQor4Lin4Lij4Lix4Lih4Lie4LijIOC4quC4uOC4guC5hOC4lOC5ieC4nuC4tuC5iOC4hw0KK+C4p+C4o+C4suC4geC4oyDguJzguIjguIfguIjguLTguJXguJXguLTguIHguLjguKUNCivguKfguKPguLLguIfguITguJPguLIg4LiU4Li14Lih4Liy4LiBDQor4Lin4Lij4Liy4LiH4LiE4LiT4LiyIOC4reC4tOC4meC4iuC4ueC5guC4lQ0KK+C4p+C4o+C4suC4l+C4tOC4nuC4ouC5jCDguYTguK3guKLguKPguLLguIHguLLguI3guIjguJnguIHguLjguKUNCivguKfguKPguLLguJ7guKMg4LiH4Liy4Lih4Liq4Lih4LiV4Lij4Liw4LiB4Li54Lil4LiK4Liy4LiV4Li0DQor4Lin4Lij4Liy4Lie4LijIOC4nuC4seC4meC4mOC5jOC4k+C4o+C4h+C4hOC5jA0KK+C4p+C4o+C4suC4nuC4oyDguKrguLjguJfguLHguJnguJXguLTguIHguKMNCivguKfguKPguLLguKDguKPguJPguYwg4LiB4Lij4Liw4LiV4LmI4Liy4Lii4LmB4LiB4LmJ4LinDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC5guC4geC4qOC4peC4p+C4seC4kuC4meC4sA0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguIjguIfguJvguLHguYnguJkNCivguKfguKPguLLguKDguKPguJPguYwg4LmA4LiI4Li14Lii4Lij4Liq4Lih4LiI4Li04LiV4LijDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC5hOC4iuC4ouC4p+C4h+C4qOC5jA0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguJTguLLguKfguJvguKPguLDguIjguLHguIHguKnguYwNCivguKfguKPguLLguKDguKPguJPguYwg4LmC4LiV4LmB4LiI4LmJ4LiHDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC4mOC4meC4suC4oOC4o+C4k+C5jOC4nuC4tOC4muC4ueC4pQ0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguJrguLHguKfguITguKXguLXguYgNCivguKfguKPguLLguKDguKPguJPguYwg4Lib4Li04LmI4LiZ4LiX4Lit4LiHDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC4nuC4tOC4k+C5gOC4oeC4t+C4reC4h+C4h+C4suC4oQ0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguKHguKTguKjguYLguIrguJXguLQNCivguKfguKPguLLguKDguKPguJPguYwg4Lij4Lix4LiV4LiZ4LiwDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC5gOC4peC5iOC4h+C4p+C4tOC4o+C4tOC4ouC4sOC4geC4uOC4pQ0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguKfguLTguJ7guLHguJLguJnguYzguIHguLTguIjguKfguLTguYTguKUNCivguKfguKPguLLguKDguKPguJPguYwg4Lio4Li44LiZ4Liy4Lil4Lix4LiiDQor4Lin4Lij4Liy4Lig4Lij4LiT4LmMIOC4quC4uOC4guC4muC4uOC4jeC4quC5iOC4hw0KK+C4p+C4o+C4suC4oOC4o+C4k+C5jCDguKvguKHguLbguIHguKvguK3guKENCivguKfguKPguLLguKDguKPguJPguYwg4Lit4Lix4Lio4Lin4LiB4Liy4Lii4Lih4LiT4Li1DQor4Lin4Lij4Liy4Lih4Liy4LioIOC4i+C4tuC5iOC4h+C4iOC4tOC4leC5gOC4quC4luC4teC4ouC4ow0KK+C4p+C4o+C4suC4o+C4seC4leC4meC5jCDguIjguLTguKPguLDguILguIjguKPguKfguIfguKjguYwNCivguKfguKPguLLguKPguLHguJXguJnguYwg4Lit4Lit4Lij4Lix4LiV4LiZ4LiK4Lix4LiiDQor4Lin4Lij4Liy4Lil4Lix4LiB4Lip4LiT4LmMIOC4reC4tOC4l+C4mOC4tOC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C4p+C4o+C4suC4p+C4uOC4kuC4tCDguJjguKPguYDguKrguJbguLXguKLguKMNCivguKfguKPguLLguKfguLjguJgg4LmA4Lie4Li14Lii4Lij4LiB4Li04LiIDQor4Lin4Lij4Liy4Lir4LmMIOC5gOC4nOC5iOC4suC4leC4s+C4o+C4p+C4iA0KK+C4p+C4o+C4tOC4meC4l+C4o+C4teC4ouC5jCDguIrguLTguJnguKrguLLguKINCivguKfguKPguLTguJnguJfguKPguYwg4Lit4Li04LiZ4LiX4Lij4LmM4LiY4Li04Lij4Liy4LiKDQor4Lin4Lij4Li04Lio4Lij4LiyIOC5gOC4reC4t+C5ieC4reC4reC4suC4o+C4teC4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C4p+C4o+C4teC4oOC4o+C4k+C5jCDguKrguLHguIjguIjguKPguLTguJXguLLguJnguLHguJnguJfguYwNCivguKfguKPguLjguJMg4Lil4Li04LmJ4Lih4Lit4Li44LiU4Lih4Liq4Li44LiCDQor4Lin4Lij4Li44LiT4Li1IOC4leC4seC5ieC4h+C4quC4t+C4muC4geC4uOC4pQ0KK+C4p+C4o+C5gOC4iuC4lSDguKjguKPguLXguJvguKPguLDguKDguLLguKrguLjguILguKrguLHguJnguJXguLQNCivguKfguKPguYDguJTguIog4Lil4Li04LmJ4Lih4LiY4Lij4LmA4Lia4LiN4LiI4Lie4LilDQor4Lin4Lij4LmA4LiX4LieIOC5geC4l+C4meC4p+C4seC4meC4iuC4seC4og0KK+C4p+C4o+C5gOC4l+C4niDguKrguKfguLHguKrguJTguLTguKLguJnguLLguKfguLTguJkNCivguKfguKPguYLguIrguJXguLQg4LmA4LiK4Li14Lii4LiH4LiX4Lit4LiHDQor4Lin4Lil4Lix4LiiIOC5geC4m+C5ieC4meC4l+C4reC4hw0KK+C4p+C4peC4seC4ouC4nuC4oyDguYDguIHguLXguKLguKPguJXguLTguJfguLHguJrguJfguLTguKcNCivguKfguKXguLHguKLguJ7guKMg4Lig4Lix4LiX4Lij4Liy4Lie4LiH4Lio4LmMDQor4Lin4Lil4Lix4Lii4Lie4Lij4Lij4LiTIOC4lOC4p+C4h+C5geC4geC5ieC4pw0KK+C4p+C4peC4seC4ouC4o+C4seC4leC4meC5jCDguYHguIHguYnguKfguKrguKfguYjguLLguIcNCivguKfguKXguLHguKLguKXguLHguIHguKnguJPguYwg4Lik4LiX4LiY4Li04Lij4LiH4LiE4LmM4Lin4Lix4LiS4LiZ4LiyDQor4Lin4Lil4Li04Lii4LiyIOC4p+C4seC4kuC4meC4suC4nuC4ow0KK+C4p+C4peC4tSDguJ7guKXguLDguJrguLjguI3guKHguLUNCivguKfguKXguLXguJ7guKMg4Liq4Li44LiX4LiY4Li04LiZ4Lix4Lii4Lin4Lij4Liy4Lig4Lij4LiT4LmMDQor4Lin4Lil4Li14Lij4Lix4LiV4LiZ4LmMIOC4quC4uOC4p+C4o+C4o+C4k+C4reC4seC4geC4qeC4ow0KK+C4p+C4qOC4tOC4mSDguKfguJPguLTguIrguKLguYzguKfguKPguJnguLHguJnguJXguYwNCivguKfguKrguLHguJnguJXguLQg4LmC4Lit4Lig4Liy4Liq4Lin4Liy4LiZ4Li04LiKDQor4Lin4Liq4Lix4LiZ4LiV4LmMIOC4iOC4h+C4qOC4uOC4oOC4meC4tOC4oeC4tOC4lQ0KK+C4p+C4quC4seC4meC4leC5jCDguYDguIrguLfguYjguK3guKHguJfguK3guIcNCivguKfguKrguLHguJnguJXguYwg4LiX4Lit4LiH4LiE4LiHDQor4Lin4Liq4Lix4LiZ4LiV4LmMIOC4m+C4j+C4tOC5guC4oOC4hOC4quC4uOC4l+C4mOC4tOC5jA0KK+C4p+C4quC4seC4meC4leC5jCDguYLguJ7guJjguLTguYzguYTguJ7guKPguJfguK3guIcNCivguKfguKrguLHguJnguJXguYwg4Lin4LiH4Lio4LmM4LiB4Lix4LiX4Lil4Li14LiE4Liy4LihDQor4Lin4Liq4Lix4LiZ4LiV4LmMIOC4quC4geC4uOC4peC4n+C4reC4hw0KK+C4p+C4quC4seC4meC4leC5jCDguKvguJfguLHguKLguYDguIHguLXguKLguKPguJXguLTguIHguLjguKUNCivguKfguKrguLgg4Lia4Li54Lij4LiT4Liw4LmA4Lir4LiV4Li4DQor4Lin4Lit4LiZIOC4ieC5iOC4s+C4meC4tOC4leC4ouC5jA0KK+C4p+C4seC4hyDguKrguLjguILguKrguKHguJrguLjguI0NCivguKfguLHguIjguKfguLTguJcg4LiX4Lix4LiB4Lip4LiT4Li04Lin4Lij4Lij4LiV4LiB4Li44LilDQor4Lin4Lix4LiK4LijIOC4nuC4peC4p+C4o+C4o+C4k+C4suC4oOC4sg0KK+C4p+C4seC4iuC4o+C4nuC4h+C4qeC5jCDguIHguLTguIjguYLguIHguKjguKUNCivguKfguLHguIrguKPguJ7guLHguJnguJjguYwg4Lib4Lij4Liw4LiU4Li04Lip4LiQ4Lie4LiH4Lip4LmMDQor4Lin4Lix4LiK4Lij4LiwIOC5geC4iOC5iOC4oeC4iOC4s+C4o+C4seC4qg0KK+C4p+C4seC4iuC4o+C4sCDguJrguLjguI3guYDguK3guJnguIHguJfguKPguLHguJ7guKLguYwNCivguKfguLHguIrguKPguLAg4LmA4Lii4LmH4LiZ4Lin4Li04LiI4Li04LiV4Lij4LmC4Liq4Lig4LiyDQor4Lin4Lix4LiK4Lij4LiwIOC4quC4uOC4o+C4sOC5geC4quC4hw0KK+C4p+C4seC4iuC4o+C4siDguYDguIjguKPguLTguI3guKPguLHguJXguJnguJ7guKMNCivguKfguLHguIrguKPguLIg4Lil4Li04Lih4Liy4LiZ4LiZ4LiX4LmM4LiU4Liz4Lij4LiH4LiE4LmMDQor4Lin4Lix4LiK4Lij4Liy4Lie4LijIOC5gOC4quC4oeC4hOC4sw0KK+C4p+C4seC4iuC4o+C4suC4oOC4o+C4k+C5jCDguKLguLTguYjguIfguKLguIfguKLguKgNCivguKfguLHguIrguKPguLTguJkg4LiV4Lij4Li14Lin4Li04Lil4Liy4Lio4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC5gOC4iOC4o+C4tOC4jeC4o+C4seC4leC4meC5jA0KK+C4p+C4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguJfguK3guIfguKPguLHguIHguKnguYwNCivguKfguLHguIrguKPguLTguJnguJfguKPguYwg4Lie4Lil4Lix4Lia4LmB4LiB4LmJ4LinDQor4Lin4Lix4LiK4Lij4Li04LiZ4LiX4Lij4LmMIOC4p+C4iuC4tOC4o+C4nuC4suC4q+C4uA0KK+C4p+C4seC4iuC4o+C4tOC4meC4l+C4o+C5jCDguKrguLjguJrguKPguKPguJPguJ7guIfguKnguYwNCivguKfguLHguIrguKPguLUg4LiB4Liy4LiN4LiI4LmC4LiZ4Lig4Liy4LiqDQor4Lin4Lix4LiK4Lij4Li1IOC5gOC4iOC4o+C4tOC4jeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4p+C4seC4iuC4o+C4tSDguJXguKPguLXguJ7guLLguJnguLTguIoNCivguKfguLHguIrguKPguLUg4Lia4Li54Lij4LiT4LmM4Lin4Lij4Li44LiV4Lih4LmMDQor4Lin4Lix4LiK4Lij4Li1IOC4n+C4uOC4geC4leC4suC4meC4meC4l+C5jA0KK+C4p+C4seC4iuC4o+C4tSDguKfguIfguKjguYzguIHguKXguJjguLnguJUNCivguKfguLHguIrguKPguLUg4Liq4LiH4LmI4Liy4LmA4Lih4Li34Lit4LiHDQor4Lin4Lix4LiK4Lij4Li1IOC4q+C4tOC4o+C4seC4k+C4ouC4suC4leC4suC4nuC4h+C4qOC5jA0KK+C4p+C4seC4iuC4o+C4teC4ouC4siDguJjguJnguLDguKrguLjguJnguJfguKMNCivguKfguLHguIrguKPguYzguYHguKrguIcg4LmA4Lir4Lil4LmI4Liy4Lir4LiH4Lip4LmM4LmA4LiH4Li04LiZDQor4Lin4Lix4LiS4LiZ4LiK4Lix4LiiIOC4iOC4tOC4meC4lOC4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C4p+C4seC4kuC4meC4iuC4seC4oiDguKrguLLguJXguKPguJ7guLHguJnguJjguLjguYwNCivguKfguLHguJLguJnguKjguLHguIHguJTguLTguYwg4Lie4Lix4LiZ4LiY4Li44LmM4LiB4Liz4LmB4Lir4LiHDQor4Lin4Lix4LiS4LiZ4LiwIOC4m+C4o+C4tOC4qOC4meC4suC4p+C4suC4k+C4tOC4iuC4ouC5jA0KK+C4p+C4seC4kuC4meC4siDguIHguKPguK3guJrguYDguJ7guYfguIrguKPguYwNCivguKfguLHguJLguJnguLIg4LmA4LiC4Li14Lii4Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lin4Lix4LiS4LiZ4LiyIOC4iOC4tOC4leC4geC4suC4o+C4uOC4kw0KK+C4p+C4seC4kuC4meC4siDguIrguLLguI3guYTguIrguKINCivguKfguLHguJLguJnguLIg4LiV4Lij4Li14Lin4Li04LiX4Lii4Liy4LiB4Li44LilDQor4Lin4Lix4LiS4LiZ4LiyIOC5gOC4l+C4teC4ouC4meC5gOC4nuC5h+C4hw0KK+C4p+C4seC4kuC4meC4siDguJrguLPguKPguLjguIfguJ7guKTguIHguKnguYwNCivguKfguLHguJLguJnguLIg4Lib4Li04LmI4LiZ4LmA4Liq4LihDQor4Lin4Lix4LiS4LiZ4LiyIOC4nuC4tOC4oeC4nuC5jOC4m+C4o+C4sOC4lOC4seC4mg0KK+C4p+C4seC4kuC4meC4siDguKHguLLguKPguLDguKHguLTguYjguIcNCivguKfguLHguJLguJnguLIg4Lij4Lix4LiV4LiZ4Liw4Lih4LiH4LiE4Lil4LiB4Li44LilDQor4Lin4Lix4LiS4LiZ4LiyIOC4p+C4seC4iuC4o+C4sOC4nuC4tOC4oeC4peC4oeC4suC4qA0KK+C4p+C4seC4kuC4meC4siDguKjguKPguLXguYDguK3guJnguIHguKPguLLguJjguLINCivguKfguLHguJLguJnguLIg4Liq4Li44LiC4LiB4LiZ4Li04Lip4LiQ4LmMDQor4Lin4Lix4LiS4LiZ4LiyIOC5geC4quC4lOC4oeC4k+C4tQ0KK+C4p+C4seC4kuC4meC4siDguK3guLTguJnguJfguKPguLHguIHguKnguYwNCivguKfguLHguJLguJnguLLguKDguKPguJPguYwg4Lil4Li14LmJ4LiK4Liy4LiN4LiB4Li44LilDQor4Lin4Lix4LiS4LiZ4LmMIOC5gOC4iOC4o+C4tOC4jeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4geC4uOC4pQ0KK+C4p+C4seC4lOC4geC4o+C4sOC4iOC4seC4hyDguKfguLHguJTguIHguKPguLDguIjguLHguIcNCivguKfguLHguJTguIrguYjguK3guIfguJnguJnguJfguKPguLUg4Lin4Lix4LiU4LiK4LmI4Lit4LiH4LiZ4LiZ4LiX4Lij4Li1DQor4Lin4Lix4LiU4LiY4Liy4LiV4Li44LiX4Lit4LiHIOC4p+C4seC4lOC4mOC4suC4leC4uOC4l+C4reC4hw0KK+C4p+C4seC4lOC4muC4suC4h+C4nuC4peC4teC4meC5ieC4reC4oiDguKfguLHguJTguJrguLLguIfguJ7guKXguLXguJnguYnguK3guKINCivguKfguLHguJTguJvguYjguLLguYDguKPguYTguKMg4Lin4Lix4LiU4Lib4LmI4Liy4LmA4Lij4LmE4LijDQor4Lin4Lix4LiU4Lij4Liy4LiK4LiE4Lik4Lir4LmMIOC4p+C4seC4lOC4o+C4suC4iuC4hOC4pOC4q+C5jA0KK+C4p+C4seC4lOC4quC4p+C4meC5geC4geC5ieC4pyDguKfguLHguJTguKrguKfguJnguYHguIHguYnguKcNCivguKfguLHguJTguK3guKLguLnguYjguJTguLXguJrguLPguKPguLjguIfguJjguKPguKPguKEg4Lin4Lix4LiU4Lit4Lii4Li54LmI4LiU4Li14Lia4Liz4Lij4Li44LiH4LiY4Lij4Lij4LihDQor4Lin4Lix4LiU4LmA4Liq4LiU4LmH4LiIIOC4p+C4seC4lOC5gOC4quC4lOC5h+C4iA0KK+C4p+C4seC4lOC5g+C4q+C4oeC5iOC4peC4s+C4meC4geC5geC4guC4p+C4gSDguKfguLHguJTguYPguKvguKHguYjguKXguLPguJnguIHguYHguILguKfguIENCivguKfguLHguJjguJnguLIg4Lie4Lix4LiK4Lij4Liy4Lin4Lil4Lix4LiiDQor4Lin4Lix4LiZ4LiI4LiZ4Li14Lii4LmMIOC4lOC4s+C4o+C4seC4quC4geC4suC4ow0KK+C4p+C4seC4meC4iuC4seC4oiDguIHguLTguJXguJXguLTguIjguLLguKPguLjguIHguLPguIjguKMNCivguKfguLHguJnguIrguLHguKIg4LiC4LiZ4Lia4LiU4Li1DQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC5guC4hOC4leC4o+C4quC4oeC4muC4seC4leC4tA0KK+C4p+C4seC4meC4iuC4seC4oiDguIjguLPguJnguIfguITguYwNCivguKfguLHguJnguIrguLHguKIg4LmA4LiI4Li14Lii4Lij4Liw4LmE4LiZ4Lie4Lix4LiZ4LiY4LmMDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4iuC4suC4jeC4quC4h+C5iOC4suC5gOC4p+C4ig0KK+C4p+C4seC4meC4iuC4seC4oiDguIvguLfguYjguK3guYDguJjguLXguKLguKPguKrguIHguLjguKUNCivguKfguLHguJnguIrguLHguKIg4LmB4LiL4LmI4LmA4Lii4Li14LmJ4LiiDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4leC4o+C4teC4quC4tOC4meC4mOC5jA0KK+C4p+C4seC4meC4iuC4seC4oiDguYLguJXguITguKfguLLguKHguKPguLnguYkNCivguKfguLHguJnguIrguLHguKIg4LmA4LiX4Li04LiU4Lia4Lix4LiN4LiK4Lij4Liq4Li44LiCDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4meC4seC4meC4l+C4hOC4uOC4k+C4suC4geC4ow0KK+C4p+C4seC4meC4iuC4seC4oiDguJrguLjguI3guIrguYnguLLguIcNCivguKfguLHguJnguIrguLHguKIg4Lib4Lix4LmJ4LiZ4Lie4Li04LiZ4Li04LiIDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4nuC4o+C4oeC4p+C4h+C4qeC5jA0KK+C4p+C4seC4meC4iuC4seC4oiDguJ7guLnguJnguJfguKPguLHguJ7guKLguYwNCivguKfguLHguJnguIrguLHguKIg4Lih4LiH4LiE4Lil4Lin4LiH4Lio4LmM4Liq4LiB4Li44LilDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4ouC4seC4h+C4m+C4o+C4sOC4ouC4ueC4ow0KK+C4p+C4seC4meC4iuC4seC4oiDguKPguLjguYjguIfguKPguLHguJXguJnguYzguKHguJPguLXguKHguLLguKgNCivguKfguLHguJnguIrguLHguKIg4Lil4Li14Lil4Liy4LiK4Li54Lie4LiH4Lio4LmMDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4p+C4h+C4qeC5jOC4guC4suC4pw0KK+C4p+C4seC4meC4iuC4seC4oiDguKfguLTguJnguLHguKLguKfguKPguKrguIHguLjguKUNCivguKfguLHguJnguIrguLHguKIg4Lio4Lij4Li14Liq4Li44Lin4Lij4Lij4LiTDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC4quC4geC4uOC4peC4qOC4seC4geC4lOC4tOC5jOC4meC4tOC4oeC4tOC4leC4ow0KK+C4p+C4seC4meC4iuC4seC4oiDguKrguLLguKLguKrguKfguLHguKrguJTguLTguYwNCivguKfguLHguJnguIrguLHguKIg4Liq4Li44LiX4LiY4Li04Lit4Liy4Lij4Li14LiB4Li44LilDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC5guC4quC4leC4luC4teC4p+C4o+C4geC4uOC4pQ0KK+C4p+C4seC4meC4iuC4seC4oiDguK3guKDguLTguIHguKfguLTguJnguKfguIfguKjguYwNCivguKfguLHguJnguIrguLHguKIg4Lit4Liy4LiZ4Lix4LiZ4LiX4LiZ4Liq4LiB4Li44LilDQor4Lin4Lix4LiZ4LiK4Lix4LiiIOC5gOC4reC4teC5iOC4ouC4oeC4p+C4tOC4p+C4seC4kuC4meC4sOC4geC4uOC4pQ0KK+C4p+C4seC4meC4iuC4suC4leC4tCDguJvguLjguI3guKfguLHguJLguYLguJcNCivguKfguLHguJnguJPguLUg4LiU4Liy4Lin4LmB4Liq4LiHDQor4Lin4Lix4LiZ4LiU4Li1IOC5hOC4geC4o+C4o+C4oeC4k+C5jA0KK+C4p+C4seC4meC4lOC4tSDguIjguLjguKXguKrguLPguKXguLUNCivguKfguLHguJnguJTguLUg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lin4Lix4LiZ4LiU4Li1IOC5geC4lOC4h+C4q+C4meC4uQ0KK+C4p+C4seC4meC4lOC4tSDguYTguJfguKLguJvguKPguLDguJTguLTguKnguJDguYwNCivguKfguLHguJnguJTguLUg4Lia4Li44LiT4Lii4Liw4LiB4Liy4LiN4LiI4LiZDQor4Lin4Lix4LiZ4LiU4Li1IOC4nuC4peC4reC4ouC4oeC4sOC4geC4peC5ieC4sw0KK+C4p+C4seC4meC4lOC4tSDguKHguK7guLPguKvguKHguLHguJQNCivguKfguLHguJnguJTguLUg4Lil4Liw4Lih4Lix4LmI4LiHDQor4Lin4Lix4LiZ4LiU4Li1IOC5hOC4p+C4reC5iOC4reC4mQ0KK+C4p+C4seC4meC4lOC4tSDguKrguLTguIfguKvguLLguJ7guLHguJnguJjguLjguYwNCivguKfguLHguJnguJTguLUg4Lir4Li44LmC4Lil4Lib4Lij4Liw4LiB4Liy4Lij4LiB4Li44LilDQor4Lin4Lix4LiZ4LiX4LiT4Li1IOC5guC4iuC4leC4tOC5gOC4p+C4l+C4tQ0KK+C4p+C4seC4meC4l+C4meC4siDguIjguIfguYHguIjguYjguKENCivguKfguLHguJnguJfguJnguLIg4LmA4LiU4LiK4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4Lin4Lix4LiZ4LiX4LiZ4LiyIOC4muC4uOC4jeC4geC4o+C5iOC4suC4hw0KK+C4p+C4seC4meC4l+C4meC4siDguYDguJ7guLXguKLguKPguKfguJnguLTguIoNCivguKfguLHguJnguJfguJnguLIg4Lin4LiH4Lio4LmM4Lig4Lix4LiB4LiU4Li1DQor4Lin4Lix4LiZ4LiX4LiZ4LiyIOC4quC4uOC4p+C4o+C4o+C4k+C4nuC4h+C4qeC5jA0KK+C4p+C4seC4meC4l+C4meC4suC4nuC4oyDguKjguLTguKPguLTguJnguLHguJnguJfguKfguLTguJfguKLguLINCivguKfguLHguJnguJfguJnguLUg4Lik4LiX4LiY4Li04Liq4Li04LiH4Lir4LmMDQor4Lin4Lix4LiZ4LiX4LiZ4Li14Lii4LmMIOC4iuC4peC4tOC4leC4leC4suC4meC4meC4l+C5jA0KK+C4p+C4seC4meC4l+C4meC4teC4ouC5jCDguYDguJnguLXguKLguKHguYDguJfguKgNCivguKfguLHguJnguJfguJnguLXguKLguYwg4Lil4Lix4LiX4LiY4Liw4Lie4Liy4LiZ4Li04LiK4Lii4LmMDQor4Lin4Lix4LiZ4LiX4LiZ4Li14Lii4LmMIOC4q+C4p+C4seC4hw0KK+C4p+C4seC4meC4mOC4k+C4tSDguYHguJTguIfguJvguKPguLDguJTguLHguJoNCivguKfguLHguJnguJnguLIg4Lio4Lij4Li14Liq4Lin4Liy4LiXDQor4Lin4Lix4LiZ4Lih4Li54Lir4Liw4Lih4Lix4LiU4LiZ4Lit4Lij4LmMIOC4oeC4sOC4l+C4sg0KK+C4p+C4seC4meC4p+C4tOC4quC4siDguKrguLTguKPguLTguKjguKPguLHguJPguKLguYwNCivguKfguLHguJnguYDguIjguLTguJQg4LiV4Liy4Lih4LmA4Lie4Li04LmI4LihDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4geC4tOC5iOC4h+C5g+C4muC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguYDguILguLLguYHguIHguYnguKcNCivguKfguLHguJnguYDguJ7guYfguI0g4LiI4Lix4LiZ4LiX4Lij4Lin4Li04LmC4Lij4LiI4LiZ4LmMDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4iuC4meC4suC4geC4ow0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguYHguIvguYjguKXguLTguYnguKENCivguKfguLHguJnguYDguJ7guYfguI0g4LiV4Lij4Liw4LiB4Li54Lil4Liq4Li44LiC4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4l+C4o+C4seC4nuC4ouC5jOC4oeC4k+C4tQ0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguJnguLLguITguYHguKLguYnguKENCivguKfguLHguJnguYDguJ7guYfguI0g4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmM4Liq4Li44Lin4Lij4Lij4LiTDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4nuC4o+C4mOC4meC4suC4p+C4uOC4kuC4tA0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguYDguJ7guIrguKPguIHguLLguI3guIjguJnguLLguJ7guIfguKjguYwNCivguKfguLHguJnguYDguJ7guYfguI0g4Lih4Liy4LmC4LiZ4LiKDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguKfguKPguJ7guLHguJLguJnguLLguJnguLHguJnguJXguYwNCivguKfguLHguJnguYDguJ7guYfguI0g4Lio4Lij4Li14LmC4Lii4Lii4Lit4LiUDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC4quC4tOC4h+C4q+C5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4p+C4seC4meC5gOC4nuC5h+C4jSDguKrguLnguI3guKrguLTguYnguJnguKDguLHguKINCivguKfguLHguJnguYDguJ7guYfguI0g4Lit4LiZ4Li44LiV4Li04Lij4Lii4LiwDQor4Lin4Lix4LiZ4LmA4Lie4LmH4LiNIOC5gOC4reC4p+C4suC4quC4geC4uOC4pQ0KK+C4p+C4seC4ouC4p+C4seC4iOC4meC5jCDguJfguLLguKLguLLguJfguKrguLjguKfguKPguKPguJMNCivguKfguLHguKXguJnguKDguLIg4Lij4Liy4Lio4Lij4Li14Lib4Lil4Lix4LmI4LiHDQor4Lin4Lix4Lil4Lig4LiyIOC4lOC4uOC4peC4ouC4suC4meC4meC4l+C5jA0KK+C4p+C4seC4peC4oOC4siDguKLguKPguKPguKLguIfguJ7guLHguJLguJnguLANCivguKfguLHguKXguKDguLIg4Lir4Lij4Lix4LmI4LiH4Liq4Li04LmC4LiiDQor4Lin4Lix4Lil4Lii4LmM4Lil4Lix4LiU4LiU4LiyIOC4mOC4teC4o+C4sOC4qOC4seC4geC4lOC4tOC5jOC4geC4uOC4pQ0KK+C4p+C4seC4peC4ouC4siDguJnguKfguKXguKXguLDguK3guK3guIcNCivguKfguLHguKXguKLguLLguKDguKPguJPguYwg4Lij4Lix4LiK4Lin4Li04LiK4Lix4LiiDQor4Lin4Lix4Lil4Lil4LigIOC5geC4geC5ieC4p+C5gOC4m+C4teC4og0KK+C4p+C4seC4peC4peC4oCDguYHguIjguYjguKHguKfguLjguJLguLTguJvguKPguLXguIrguLINCivguKfguLHguKXguKXguKAg4LiX4Lit4LiH4LiB4LmJ4Liy4LiiDQor4Lin4Lix4Lil4Lil4LigIOC4muC4ueC4o+C4k+C4qOC4tOC4o+C4tA0KK+C4p+C4seC4peC4peC4oCDguKHguLDguIrguKPguLINCivguKfguLHguKXguKXguKAg4Lin4LiK4Li04Lij4Lie4Lij4Lie4LiH4Lio4LiyDQor4Lin4Lix4Lil4Lil4LigIOC4quC4seC4h+C4guC5jOC4quC4reC4mQ0KK+C4p+C4seC4peC4peC4oCDguK3guKPguLHguI3guI3guYDguIHguKnguKENCivguKfguLHguKXguKXguKDguLIg4LmA4LiJ4Lil4Li04Lih4LiZ4Lix4LiiDQor4Lin4Lix4Lil4Lil4Lig4LiyIOC4nuC4o+C4oeC5guC4iuC4leC4tA0KK+C4p+C4seC4peC4peC4oOC4siDguKfguLXguKPguLDguJvguLjguKXguKXguLUNCivguKfguLHguKXguKXguLIg4LmA4LiB4Liy4Liq4Li44Lij4Lix4LiV4LiZ4LmMDQor4Lin4Lix4Lil4Lil4Li1IOC4meC4seC4meC4leC4suC4peC4tOC4gQ0KK+C4p+C4seC4peC4peC4teC4ouC5jCDguJvguKPguLDguJfguLjguKHguIrguLLguJXguLQNCivguKfguLHguKXguKXguLXguKLguYwg4Liu4Lix4LmJ4Lin4Lir4LmJ4Lin4Lii4Lie4Lij4LiwDQor4Lin4Liy4LiT4Li04LiK4Lii4LmMIOC4p+C4lOC4teC4qOC4tOC4o+C4tOC4qOC4seC4geC4lOC4tOC5jA0KK+C4p+C4suC4k+C4tSDguJ7guLHguJnguJjguLjguKHguIjguLTguJnguJTguLINCivguKfguLLguJPguLUg4LmA4Lir4Lil4Li34Lit4LiH4Lia4Lij4Li04Liq4Li44LiX4LiY4Li04LmMDQor4Lin4Liy4LiX4Li04LiVIOC4nuC4tOC4iuC4ouC4meC4seC4meC4l+C5jA0KK+C4p+C4suC4l+C4tOC4meC4tSDguKfguIfguKjguYzguJrguLjguKnguKLguIHguLjguKUNCivguKfguLLguJnguLTguIog4LmA4Lih4LiY4Liy4LiY4Liz4Lij4LiH4LiE4LmM4Lio4Li04Lij4Li0DQor4Lin4Liy4Lij4LiT4Li1IOC5geC4lOC4h+C4quC4tQ0KK+C4p+C4suC4o+C4tOC4lyDguKvguKXguLLguKfguJfguK3guIcNCivguKfguLLguKPguLTguJnguJfguKPguYwg4LiB4Li04LiV4LiV4Li04LmC4LiK4LiV4Li04LiB4Li44LilDQor4Lin4Liy4Lij4Li04LiZ4LiX4Lij4LmMIOC4muC4uOC4jeC4iuC4ouC4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C4p+C4suC4o+C4tOC4meC4l+C4o+C5jCDguKfguLLguKPguKHguLINCivguKfguLLguKPguLTguJnguLUg4LmC4Lit4Lip4LiQ4Li04LmA4Lin4LiKDQor4Lin4Liy4Lij4Li1IOC4iOC4teC4meC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4p+C4suC4o+C4tSDguYTguJXguKPguJ7guLjguJfguJjguLLguIfguIHguLnguKMNCivguKfguLLguKPguLUg4Lie4Lil4Liq4Lij4Liw4LiZ4LmJ4Lit4LiiDQor4Lin4Liy4Lij4Li1IOC4p+C4h+C4qOC5jOC4reC4uOC5hOC4ow0KK+C4p+C4suC4o+C4tSDguKrguLjguJvguKPguLXguKLguLLguKfguKPguKPguJPguIrguLHguKINCivguKfguLLguKPguLXguJfguLTguJ7guKLguYwg4LmA4LiX4Lie4LiZ4Liz4LmC4Liq4Lih4LiZ4Lix4Liq4Liq4LmMDQor4Lin4Liy4Lij4Li44LiT4Lig4Lix4LiEIOC4ruC4seC5iOC4meC4leC4o+C4sOC4geC4ueC4pQ0KK+C4p+C4suC4o+C4uOC4k+C4tSDguIjguLTguJXguJXguYzguJjguKPguKPguKENCivguKfguLLguKPguLjguJPguLUg4LiU4Liy4Lia4LmA4LiI4Lij4Li04LiN4LiK4Lix4LiiDQor4Lin4Liy4Lij4Li44LiT4Li1IOC4meC4tOC4peC5gOC4nuC4iuC4o+C5jOC4nuC4peC4reC4og0KK+C4p+C4suC4o+C4uOC4k+C4tSDguJ7guLHguJnguJjguLjguYDguJ7guYfguIcNCivguKfguLLguKPguLjguJPguLUg4LmC4Lij4LiI4LiZ4LmM4Lie4Lil4Liy4LiB4LijDQor4Lin4Liy4Lij4Li44LiT4Li1IOC4qOC4o+C4teC4quC4geC4uOC4peC4lOC4tQ0KK+C4p+C4suC4o+C4uOC4k+C4tSDguKrguLjguKfguKPguKPguJPguKjguKPguLUNCivguKfguLLguKPguLjguJPguLXguKLguYwg4LiI4Liz4Lib4Liy4LiZ4Li04LilDQor4Lin4Liy4Liq4LiZ4LiyIOC4geC4o+C4sOC4nuC4seC4meC4nuC4h+C4qOC5jOC4quC4geC4uOC4pQ0KK+C4p+C4suC4quC4meC4siDguYHguIHguYnguKfguIrguLnguKjguLTguKXguJvguYwNCivguKfguLLguKrguJnguLIg4LiE4Liz4Lio4Li04Lij4Li04Lij4Lix4LiB4Lip4LmMDQor4Lin4Liy4Liq4LiZ4LiyIOC4iOC4tOC4meC4lOC4suC4qOC4seC4geC4lOC4tOC5jA0KK+C4p+C4suC4quC4meC4siDguIrguLLguJnguIENCivguKfguLLguKrguJnguLIg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4Lin4Liy4Liq4LiZ4LiyIOC5hOC4leC4o+C5gOC4p+C4l+C4ouC5jOC4p+C4o+C4geC4uOC4pQ0KK+C4p+C4suC4quC4meC4siDguYDguJfguLXguKLguKHguYHguKrguIfguK3guKPguLjguJMNCivguKfguLLguKrguJnguLIg4LiZ4Li04Lii4Lih4Lik4LiX4LiY4Li04LmMDQor4Lin4Liy4Liq4LiZ4LiyIOC4muC4ueC4o+C4qOC4tOC4o+C4tOC4o+C4seC4geC4qeC5jA0KK+C4p+C4suC4quC4meC4siDguYDguJzguYjguLLguJbguJnguK3guKENCivguKfguLLguKrguJnguLIg4Lie4Li54Lil4LiZ4Li04LiB4LijDQor4Lin4Liy4Liq4LiZ4LiyIOC4oeC4sOC5gOC4quC4o+C4tOC4kA0KK+C4p+C4suC4quC4meC4siDguKPguLDguKPguLfguYjguJnguIjguLTguJXguJXguYwNCivguKfguLLguKrguJnguLIg4LmB4Lil4Liw4LmA4Lii4LmK4Liy4Liw4Lir4LmMDQor4Lin4Liy4Liq4LiZ4LiyIOC4p+C4teC4o+C4sOC4o+C4seC4qOC4oeC4tQ0KK+C4p+C4suC4quC4meC4siDguKjguLjguKDguKfguLTguJfguKLguLLguYLguKDguITguLUNCivguKfguLLguKrguJnguLIg4Liq4Liz4LmA4Lig4Liy4LiX4Lit4LiHDQor4Lin4Liy4Liq4LiZ4LiyIOC5gOC4quC4luC4teC4ouC4o+C4mOC4o+C4o+C4oeC4p+C4tOC4l+C4ouC5jA0KK+C4p+C4suC4quC4meC4siDguYDguKvguKXguLfguK3guIfguKrguLDguK3guLLguJQNCivguKfguLLguKrguJnguLIg4Lit4Li04LiZ4LiX4Liq4Li44Lin4Liy4LiXDQor4Lin4Liy4Liq4Li04LiZIOC4quC4uOC4oOC4m+C4o+C4sOC4geC4ow0KK+C4p+C5ieC4siDguYHguIvguYjguYHguJXguYkNCivguKfguLTguIHguKPguKEg4Lin4Li04LiB4Lij4Lih4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4Lin4Li04LiB4Li04LiIIOC4quC4uOC4guC4quC4s+C4o+C4suC4jQ0KK+C4p+C4tOC4iOC4seC4meC4l+C4o+C4siDguJrguLjguJnguJnguLLguIQNCivguKfguLTguIjguLLguKPguJPguYwg4LiZ4Liy4LiE4Lin4Li04LmA4LiK4Li14Lii4LijDQor4Lin4Li04LiI4Li04LiVIOC5hOC4l+C4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4tOC4iOC4tOC4leC4oyDguYDguIHguJXguLjguJjguKPguKPguKHguKfguIfguKjguYwNCivguKfguLTguIjguLTguJXguKMg4LiI4Li44Lil4Lij4Lix4Lip4LmA4LiQ4Li14Lii4LijDQor4Lin4Li04LiI4Li04LiV4LijIOC4leC4o+C4suC4iuC4uQ0KK+C4p+C4tOC4iOC4tOC4leC4oyDguJrguLPguKPguLjguIfguIHguLTguIgNCivguKfguLTguIjguLTguJXguKMg4Lie4Liy4LiZ4Li04LiK4Lii4LmMDQor4Lin4Li04LiI4Li04LiV4LijIOC4o+C4seC4h+C4quC4tOC4ouC4suC4meC4meC4l+C5jA0KK+C4p+C4tOC4iOC4tOC4leC4oyDguKfguLjguJLguLTguK3guLPguJ7guKUNCivguKfguLTguIjguLTguJXguKMg4Liq4Li44LiC4Lin4Li04LiX4Lii4Liy4Lin4LiH4Lip4LmMDQor4Lin4Li04LiI4Li04LiV4LijIOC4reC4seC4iOC4ieC4o+C4tOC4ouC4reC4seC4h+C4geC4ueC4ow0KK+C4p+C4tOC4iOC4tOC4leC4o+C4siDguYHguIHguYnguKfguKrguLTguJfguJjguLTguKfguIfguKjguYwNCivguKfguLTguIjguLTguJXguKPguLIg4LiW4Li04Lij4Liq4Li44LiZ4LiX4Lij4Liy4LiB4Li44LilDQor4Lin4Li04LiI4Li04LiV4Lij4LiyIOC4oeC5iOC4p+C4h+C4ouC4tOC5iOC4h+C4quC4uOC4gg0KK+C4p+C4tOC4iOC4tOC4leC4o+C4siDguKrguLTguJfguJjguLTguYLguIrguITguK3guLjguJTguKENCivguKfguLTguIjguLTguJXguKPguYwg4Lil4LmJ4Lit4Lih4LiB4Li44Lil4LmE4Lie4Lio4Liy4LilDQor4Lin4Li04LiK4LiK4LiyIOC4reC4seC4qOC4p+C4p+C4o+C4pOC4l+C4mOC4tOC5jA0KK+C4p+C4tOC4iuC4iuC4uOC4lOC4siDguKXguLXguKXguLLguKrguLjguILguKrguLHguJnguJXguLTguIHguLjguKUNCivguKfguLTguIrguI3guLIg4Liq4Li44LiX4LiY4Li04Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lin4Li04LiK4Lin4LiZIOC4qOC4tOC4o+C4tOC4geC4suC4jeC4iOC4meC4p+C4suC4meC4tOC4ig0KK+C4p+C4tOC4iuC4seC4oiDguIHguLHguJnguJXguLHguIfguIHguLjguKUNCivguKfguLTguIrguLHguKIg4LiB4Li14Lij4LiV4Li04Lie4Liy4LiZ4Li04LiKDQor4Lin4Li04LiK4Lix4LiiIOC5gOC4geC4teC5i+C4ouC4p+C4nuC4sOC4oeC4tOC4leC4ow0KK+C4p+C4tOC4iuC4seC4oiDguYDguILguKHguLDguKfguKPguKPguJPguLINCivguKfguLTguIrguLHguKIg4LiE4Li44LiT4Liy4LiB4Lij4Liq4Li04Lij4Li04Lij4Lix4LiB4Lip4LmMDQor4Lin4Li04LiK4Lix4LiiIOC4iOC4leC4uOC4o+C4nuC4seC4geC4leC4o+C4suC4o+C4seC4geC4qeC5jA0KK+C4p+C4tOC4iuC4seC4oiDguIjguLHguYjguKfguYHguIjguYjguKHguYPguKoNCivguKfguLTguIrguLHguKIg4LiI4Li04Lij4Liw4LmE4LiK4Lii4LmA4LiC4Li34LmI4Lit4LiZ4LiC4Lix4LiZ4LiY4LmMDQor4Lin4Li04LiK4Lix4LiiIOC5gOC4iOC4o+C4tOC4jeC4p+C4uOC4kuC4tOC4p+C4h+C4qeC4sg0KK+C4p+C4tOC4iuC4seC4oiDguInguLLguKLguKfguLTguIrguLTguJUNCivguKfguLTguIrguLHguKIg4LiK4Lix4Lii4Lit4Liz4LiZ4Lin4LiiDQor4Lin4Li04LiK4Lix4LiiIOC4iuC4ueC4iuC4seC4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4tOC4iuC4seC4oiDguIvguLfguYnguK3guJ7guLHguJLguJnguLLguKPguLjguYjguIfguYLguKPguIjguJnguYwNCivguKfguLTguIrguLHguKIg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lin4Li04LiK4Lix4LiiIOC5geC4i+C5iOC5gOC4peC5ieC4sg0KK+C4p+C4tOC4iuC4seC4oiDguJTguLXguKrguLjguITguJnguJjguYwNCivguKfguLTguIrguLHguKIg4LiV4Lix4LmJ4LiH4LiI4Liy4Lij4Li4DQor4Lin4Li04LiK4Lix4LiiIOC4leC4suC4oeC5gOC4l+C4teC5iOC4ouC4h+C4leC4o+C4hw0KK+C4p+C4tOC4iuC4seC4oiDguYTguJXguKPguJfguLTguJ7guKLguYzguJ7guLTguJfguLHguIHguKnguYwNCivguKfguLTguIrguLHguKIg4LiX4Lit4LiH4LmB4LiX4LmJDQor4Lin4Li04LiK4Lix4LiiIOC4mOC4meC4sOC4o+C4seC4iuC4leC4tOC4geC4suC4o+C4meC4meC4l+C5jA0KK+C4p+C4tOC4iuC4seC4oiDguJnguIHguYHguKLguYnguKENCivguKfguLTguIrguLHguKIg4LiZ4Li04Lih4Li04LiV4LmE4LiV4Lij4LiX4Li04Lie4Lii4LmMDQor4Lin4Li04LiK4Lix4LiiIOC4muC4uOC4jeC4jeC4mOC4meC4seC4hw0KK+C4p+C4tOC4iuC4seC4oiDguJrguLjguKnguKLguLDguIjguLLguKPguLgNCivguKfguLTguIrguLHguKIg4Lib4Lij4Li14LiK4Liy4Lin4Li44LiS4Li0DQor4Lin4Li04LiK4Lix4LiiIOC5gOC4m+C4peC4teC5iOC4ouC4meC5geC4ng0KK+C4p+C4tOC4iuC4seC4oiDguJ7guKPguJjguKPguKPguKHguKrguLTguKPguLQNCivguKfguLTguIrguLHguKIg4Lie4Lix4LiZ4LiY4LmM4LiE4LizDQor4Lin4Li04LiK4Lix4LiiIOC4nuC4tuC5iOC4h+C4quC4seC4oeC4nuC4seC4meC4mOC5jA0KK+C4p+C4tOC4iuC4seC4oiDguYTguJ7guJrguLnguKXguKLguYzguKXguLXguKrguIHguLjguKUNCivguKfguLTguIrguLHguKIg4Lih4LiT4Li14LiJ4Liy4LiiDQor4Lin4Li04LiK4Lix4LiiIOC4oeC4teC4l+C4o+C4seC4nuC4ouC5jOC4p+C4seC4kuC4meC4sg0KK+C4p+C4tOC4iuC4seC4oiDguKLguLTguYnguKHguJnguYnguK3guKINCivguKfguLTguIrguLHguKIg4Lij4Lix4LiV4LiZ4LmA4LiI4Lij4Li04LiN4Liq4LiB4Li44LilDQor4Lin4Li04LiK4Lix4LiiIOC5guC4o+C4iOC4meC5jOC4p+C4tOC4iuC4suC4p+C4h+C4qOC5jA0KK+C4p+C4tOC4iuC4seC4oiDguKXguLTguYnguKHguJ7guKPguIHguLjguKUNCivguKfguLTguIrguLHguKIg4LmA4Lil4Li04Lio4Lie4Lil4Liy4LiB4LijDQor4Lin4Li04LiK4Lix4LiiIOC4p+C4h+C4qOC5jOC4quC4o+C4sOC4l+C4reC4hw0KK+C4p+C4tOC4iuC4seC4oiDguKfguYjguK3guIfguIHguLTguJXguJXguLTguKrguLTguJkNCivguKfguLTguIrguLHguKIg4Lin4Li04LiK4Lix4Lii4LiY4LiZ4Lie4Lix4LiS4LiZ4LmMDQor4Lin4Li04LiK4Lix4LiiIOC4p+C4tOC5gOC4iuC4teC4ouC4o+C4l+C4reC4h+C4hOC4sw0KK+C4p+C4tOC4iuC4seC4oiDguKjguKPguLXguJvguLHguI3guIjguJ7guIfguKnguYwNCivguKfguLTguIrguLHguKIg4Lio4Li04Lij4Li04LiE4Li44LihDQor4Lin4Li04LiK4Lix4LiiIOC4quC4geC4peC4nuC4h+C4qeC5jOC5hOC4nuC5guC4o+C4iOC4meC5jA0KK+C4p+C4tOC4iuC4seC4oiDguKrguLDguK3guLTguYrguJnguLANCivguKfguLTguIrguLHguKIg4Liq4Li04LiZ4LiX4Lix4LiV4LiV4LmC4Liq4Lig4LiTDQor4Lin4Li04LiK4Lix4LiiIOC4quC4uOC4guC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4tOC4iuC4seC4oiDguKrguLjguKPguLTguKLguLDguKHguIfguITguKUNCivguKfguLTguIrguLHguKIg4LmB4Liq4LiH4Liq4Lih4Lih4Liy4LiV4Lij4LmMDQor4Lin4Li04LiK4Lix4LiiIOC4q+C4seC4quC4lOC4suC4lOC4pQ0KK+C4p+C4tOC4iuC4seC4oiDguYTguKvguKXguYDguIjguKPguLTguI3guKfguIfguKjguYwNCivguKfguLTguIrguLHguKIg4Lit4Lij4Li44LiT4Lin4Lix4LiS4LiZ4LmMDQor4Lin4Li04LiK4Lix4LiiIOC4reC4suC4oOC4suC4nuC4h+C4qOC5jOC4qOC4seC4geC4lOC4tOC5jA0KK+C4p+C4tOC4iuC4seC4oiDguK3guLjguJfguLTguKgNCivguKfguLTguIrguLHguKIg4Liu4Lix4LmJ4Lin4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lin4Li04LiK4LiyIOC4iuC5iOC4p+C4h+C5guC4iuC4leC4tA0KK+C4p+C4tOC4iuC4siDguJvguLTguJXguLTguJ7guLHguJLguJnguJ7guLHguJnguJjguYwNCivguKfguLTguIrguLIg4Lin4Li04LiK4Liy4LiK4Liy4LiNDQor4Lin4Li04LiK4Liy4LiNIOC4geC4o+C4sOC5geC4quC4o+C5jOC4geC4uOC4pQ0KK+C4p+C4tOC4iuC4suC4jSDguIjguLTguJnguJXguYzguKrguLjguKDguLHguIQNCivguKfguLTguIrguLLguI0g4LiU4Li14Lib4Lij4Liw4Lir4Lil4Liy4LiUDQor4Lin4Li04LiK4Liy4LiNIOC4muC4uOC4jeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4ouC4tOC5iOC4hw0KK+C4p+C4tOC4iuC4suC4jSDguYDguJ7guYfguIfguKrguK3guLLguJQNCivguKfguLTguIrguLLguI0g4Lil4Li04LmJ4Lih4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lin4Li04LiK4Liy4LiNIOC4qOC4tOC4o+C4tOC5gOC4p+C4iuC4p+C4o+C4suC4p+C4uOC4mA0KK+C4p+C4tOC4iuC4suC4jSDguYDguKvguJnguLXguYjguKLguKfguK3guIfguK3guLLguIgNCivguKfguLTguIrguLLguJXguLQg4Lii4Li44LiX4LiY4LiZ4Liy4Lin4Lij4Liy4LiB4Li44LilDQor4Lin4Li04LiK4Li04LiVIOC5gOC4geC4tOC4lOC5geC4geC4hw0KK+C4p+C4tOC4iuC4tOC4lSDguIjguLTguJXguKPguLXguYDguIrguLfguYnguK0NCivguKfguLTguIrguLTguJUg4LmC4LiK4LiV4Li04LiK4Lix4LiK4Lin4Liy4LilDQor4Lin4Li04LiK4Li04LiVIOC5gOC4leC4iuC4sOC4iuC4uOC4k+C4q+C4geC4tOC4iA0KK+C4p+C4tOC4iuC4tOC4lSDguJrguLjguI3guJbguJnguK3guKENCivguKfguLTguIrguLTguJUg4Lie4Lix4LiZ4LiY4Li44LmM4Lie4Liy4LiZ4Li04LiKDQor4Lin4Li04LiK4Li04LiVIOC4o+C5iOC4p+C4oeC4quC4uOC4gg0KK+C4p+C4tOC4iuC4tOC4lSDguKfguIfguKnguYzguYPguKvguI3guYgNCivguKfguLTguIrguLTguJUg4Lio4Lij4Li14Lie4LiH4Lip4LmM4Lie4Lix4LiZ4LiY4Li44LmM4LiB4Li44LilDQor4Lin4Li04LiK4Li04LiVIOC4quC4uOC4guC4quC4tOC4meC4mOC4suC4o+C4suC4meC4meC4l+C5jA0KK+C4p+C4tOC4iuC4tOC4lSDguK3guJnguLjguJXguKPguLDguIHguLnguKUNCivguKfguLTguIrguLTguJUg4LmA4Lit4Li14LmI4Lii4Lih4LmA4Liq4Lih4Liy4Lij4Li44LmI4LiHDQor4Lin4Li04LiK4Li44LiU4LiyIOC5geC4i+C5iOC4peC4tOC5iOC4oQ0KK+C4p+C4tOC4iuC4uOC4nuC4oyDguK3guLTguJfguJjguLTguKPguLHguIfguKrguLTguKHguLINCivguKfguLTguI3guI3guLkg4LiX4Lit4LiH4Lie4Lij4Lij4LiTDQor4Lin4Li04LiR4Li04LiVIOC4meC4teC4o+C4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4p+C4tOC4keC4ueC4oyDguKXguLXguKfguIfguKjguYzguYDguIjguKPguLTguI0NCivguKfguLTguJHguLnguKPguKLguYwg4LiC4Lin4Lix4LiN4LmA4Lih4Li34Lit4LiHDQor4Lin4Li04LiR4Li54Lij4Lii4LmMIOC4iuC4uOC5iOC4oeC5gOC4peC5h+C4gQ0KK+C4p+C4tOC4keC4ueC4o+C4ouC5jCDguJnguLTguKfguLLguKrguKrguKfguLHguKrguJTguLTguIHguLjguKUNCivguKfguLTguJHguLnguKPguKLguYwg4LmC4Lie4LiY4Li04LmM4LiI4LiH4Lij4Lix4LiB4Lip4LmMDQor4Lin4Li04LiR4Li54Lij4Lii4LmMIOC4p+C4o+C4o+C4k+C4iOC4tOC4leC4iOC4o+C4ueC4jQ0KK+C4p+C4tOC4keC4ueC4o+C4ouC5jCDguYDguKrguYfguIfguJ7guLLguJnguLTguIoNCivguKfguLTguJPguLHguJDguJHguLTguJXguLIg4LmC4Liq4Lig4Li04LiV4LiB4Liy4LiZ4LiV4LmMDQor4Lin4Li04LiX4Lii4Lij4Lix4LiV4LiZ4LmMIOC4l+C4reC4h+C4meC4tOC5iOC4oQ0KK+C4p+C4tOC4l+C4ouC4siDguYHguIHguYnguKfguKfguLHguJLguJnguLANCivguKfguLTguJfguKLguLIg4LiI4Lix4LiZ4LiX4Lij4LmM4LiU4Liy4LmA4Lij4Li34Lit4LiHDQor4Lin4Li04LiX4Lii4LiyIOC4ieC4seC4leC4o+C4p+C4tOC4l+C4ouC4suC4ouC4uOC4l+C4mA0KK+C4p+C4tOC4l+C4ouC4siDguYHguIvguYjguJXguLkNCivguKfguLTguJfguKLguLIg4LiV4Lix4LiT4LiR4Liq4Li44LiX4LiY4Li04LmMDQor4Lin4Li04LiX4Lii4LiyIOC4mOC4meC4sOC4nuC4suC4meC4tOC4iuC4ouC5jA0KK+C4p+C4tOC4l+C4ouC4siDguJrguLjguI3guI3guJjguJnguLLguKDguLTguKfguLHguJLguJnguYwNCivguKfguLTguJfguKLguLIg4Lie4LiH4Lip4LmM4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMDQor4Lin4Li04LiX4Lii4LiyIOC4nuC4ueC4peC4nuC4o+C4o+C4kw0KK+C4p+C4tOC4l+C4ouC4siDguYDguKHguJXguJXguLLguKrguLHguJXguKLguYwNCivguKfguLTguJfguKLguLIg4Lik4LiX4LiY4Li04LmM4LmA4LiU4LiKDQor4Lin4Li04LiX4Lii4LiyIOC4p+C4o+C4iuC4suC4leC4tA0KK+C4p+C4tOC4l+C4ouC4siDguKjguKPguJnguKPguLTguJnguJfguKPguYwNCivguKfguLTguJfguKLguLIg4Liq4Lix4LiZ4LiV4LmC4Lii4Lig4Liy4LiqDQor4Lin4Li04LiX4Lii4LiyIOC5gOC4quC4o+C4tOC4oeC4iuC4teC4ng0KK+C4p+C4tOC4l+C4ouC4siDguK3guKPguYjguLLguKHguKjguKPguLUNCivguKfguLTguJfguKLguLLguIHguKMg4LmA4LiK4Li14Lii4LiH4LiB4Li54LilDQor4Lin4Li04LiX4Lii4LmMIOC5gOC4nuC4iuC4o+C4o+C4seC4qOC4oeC4teC4nuC4o+C4suC4pw0KK+C4p+C4tOC4l+C4p+C4seC4qiDguIHguLTguJXguJXguLTguITguLjguJPguLLguJnguLHguJnguJfguYwNCivguKfguLTguJfguKfguLHguKog4Lir4LiH4Liq4LmE4LiB4LijDQor4Lin4Li04LiX4Li04LiVIOC4qOC4tOC4o+C4tOC5guC4oOC4hOC4suC4geC4tOC4iA0KK+C4p+C4tOC4l+C4ueC4oyDguYDguJfguJ7guJ7guLTguJfguLHguIHguKnguYwNCivguKfguLTguJfguLnguKMg4LmB4Liq4LiH4Liq4Li04LiH4LmB4LiB4LmJ4LinDQor4Lin4Li04LiX4Li54LilIOC4quC4oeC4muC4seC4leC4tOC4l+C4p+C4tQ0KK+C4p+C4tOC4mSDguIHguKXguYjguLPguYHguKrguIcNCivguKfguLTguJnguJTguLIg4LiK4Li34LmI4LiZ4LmA4LiK4Li34LmI4Lit4LihDQor4Lin4Li04LiZ4Lix4LiiIOC4geC4peC4tOC5iOC4meC4nuC4uOC4kg0KK+C4p+C4tOC4meC4seC4oiDguYHguIHguYnguKfguYDguIHguKnguIHguLLguKPguJPguYwNCivguKfguLTguJnguLHguKIg4LiE4Li44LmJ4Lih4LiE4Lit4LiZDQor4Lin4Li04LiZ4Lix4LiiIOC4iOC4tOC4leC4leC5jOC5geC4iOC5iOC4oQ0KK+C4p+C4tOC4meC4seC4oiDguIrguJnguLDguITguIoNCivguKfguLTguJnguLHguKIg4LmB4LiK4LmI4Lih4Lib4Lij4Li14LiU4LiyDQor4Lin4Li04LiZ4Lix4LiiIOC5gOC4lOC4iuC4meC4l+C4tQ0KK+C4p+C4tOC4meC4seC4oiDguJbguLLguKfguKMNCivguKfguLTguJnguLHguKIg4LmA4LiX4Li14Lii4Lih4LiZ4LmJ4Lit4LiiDQor4Lin4Li04LiZ4Lix4LiiIOC4meC4tOC4mOC4tOC4iuC4seC4og0KK+C4p+C4tOC4meC4seC4oiDguJrguLjguI3guKfguLHguJLguJnguYLguKrguKDguJMNCivguKfguLTguJnguLHguKIg4Lib4Liy4LiH4LiB4Li04LiV4LiV4Li04Lie4LiH4Lio4LmMDQor4Lin4Li04LiZ4Lix4LiiIOC4nuC4o+C5ieC4reC4oeC4qOC4tOC4o+C4tOC4nuC4h+C4qeC5jA0KK+C4p+C4tOC4meC4seC4oiDguJ7guLjguYjguKHguYDguIjguKPguLTguI3guKfguLHguJLguJnguLINCivguKfguLTguJnguLHguKIg4Lih4Lij4Lij4LiE4LiZ4Lix4LiZ4LiX4LmMDQor4Lin4Li04LiZ4Lix4LiiIOC4ouC4uOC4lOC4lOC4ow0KK+C4p+C4tOC4meC4seC4oiDguYLguKPguIjguJnguYzguYDguIjguLXguKLguIcNCivguKfguLTguJnguLHguKIg4Lin4LiH4Lio4LmM4Lit4Liz4LiZ4Lin4Lii4LiB4Li44LilDQor4Lin4Li04LiZ4Lix4LiiIOC4p+C4tOC4peC4seC4ouC4geC4o+C4p+C4lA0KK+C4p+C4tOC4meC4seC4oiDguKjguLLguKrguJXguKPguYzguKrguLLguKPguLANCivguKfguLTguJnguLHguKIg4Liq4Liy4LiB4LilDQor4Lin4Li04LiZ4Lix4LiiIOC4quC4uOC4l+C4mOC4tOC4p+C4o+C4o+C4k+C4suC4o+C4seC4leC4meC5jA0KK+C4p+C4tOC4meC4seC4oiDguKvguKHguLnguYjguKHguLTguYjguIcNCivguKfguLTguJnguLHguKIg4Lit4Lij4Li44LiT4Lin4Lix4LiS4LiZ4LiB4Li54LilDQor4Lin4Li04LiZ4Lix4LiiIOC5gOC4ruC4h+C4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4p+C4tOC4meC4tOC4iCDguYDguIjguKPguLTguI3guKjguLTguKPguLQNCivguKfguLTguJnguLTguIgg4Lib4Lij4Li14LiK4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Li04LiZ4Li04LiIIOC4p+C4tOC4o+C4tOC4ouC4geC4o+C4reC4muC4iuC4seC4og0KK+C4p+C4tOC4meC4tOC4iiDguIrguLTguKPguKfguLLguJnguLTguIoNCivguKfguLTguJnguLTguJXguKLguYwg4Liq4Lix4LiH4LiC4LmM4Liq4Li14LmA4Lir4Lil4Li34Lit4LiaDQor4Lin4Li04Lia4Li54Lij4LiT4LmMIOC4m+C4ueC5iOC4hOC4h+C4nuC4o+C4sA0KK+C4p+C4tOC4muC4ueC4peC4ouC5jOC4ouC4qCDguK3guKHguLLguJXguKLguIHguLjguKUNCivguKfguLTguJrguLnguKXguKLguYwg4LiB4Li04LiV4LiV4Li04Lit4Lix4Lih4Lie4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4Li04Lia4Li54Lil4Lii4LmMIOC5gOC4iOC4teC4ouC4o+C4p+C4h+C4qOC5jA0KK+C4p+C4tOC4muC4ueC4peC4ouC5jCDguYHguJTguIfguJTguKfguIfguYHguIHguYnguKcNCivguKfguLTguJrguLnguKXguKLguYwg4LmB4LiX4LiZ4Lia4Li44LiN4LmE4Lie4Lij4Lix4LiKDQor4Lin4Li04Lia4Li54Lil4Lii4LmMIOC4m+C4reC5geC4geC5ieC4pw0KK+C4p+C4tOC4muC4ueC4peC4ouC5jCDguKDguLLguITguKfguJPguLTguIoNCivguKfguLTguJrguLnguKXguKLguYwg4Lik4LiX4Lix4Lii4Lio4Lij4Li14Lih4LiT4Li14Lie4Lix4LiZ4LiY4LmMDQor4Lin4Li04Lia4Li54Lil4Lii4LmMIOC4p+C4tOC4muC4ueC4peC4ouC5jOC4geC4tOC4iOC4p+C4o+C4geC4uOC4pQ0KK+C4p+C4tOC4muC4ueC4peC4ouC5jCDguKrguJbguLTguKPguKjguLTguKXguJvguLTguJkNCivguKfguLTguJrguLnguKXguKLguYwg4Lir4Lin4Lix4LiH4Lij4Lin4Lii4LiZ4Liy4LihDQor4Lin4Li04Lia4Li54Lil4Lil4Lix4LiB4Lip4LiT4LmMIOC4lOC4tOC4qeC4kOC4reC5iOC4p+C4oQ0KK+C4p+C4tOC4nuC4pSDguJvguLTguJXguLLguJnguLjguYDguITguKPguLLguLDguKvguYwNCivguKfguLTguJ7guLLguIHguKLguYwg4LmC4Lij4LiI4LiZ4LmB4Lie4LiX4Lii4LmMDQor4Lin4Li04Lig4LiyIOC4geC4suC4meC4leC5jOC5gOC4q+C4oeC4o+C4seC4leC4meC5jA0KK+C4p+C4tOC4oOC4siDguITguLnguJPguILguLjguJnguJfguJQNCivguKfguLTguKDguLIg4LmA4LiI4Li14Lii4Lih4LiX4Lin4Li14Lin4Li04Lia4Li54Lil4Lii4LmMDQor4Lin4Li04Lig4LiyIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4p+C4tOC4oOC4siDguJXguLHguJnguJXguKPguLTguKLguLLguJnguJnguJfguYwNCivguKfguLTguKDguLIg4LiY4Lij4Lij4Lih4Liy4LiI4Lix4LiB4Lij4LmM4LiB4Li44LilDQor4Lin4Li04Lig4LiyIOC4m+C4suC5geC4geC5ieC4pw0KK+C4p+C4tOC4oOC4siDguJ7guLTguJfguLHguIHguKnguYzguKrguLTguKPguLTguKjguLHguIHguJTguLTguYwNCivguKfguLTguKDguLIg4Lii4Lix4LiH4Lin4Li04LmA4Lio4LipDQor4Lin4Li04Lig4LiyIOC5gOC4peC4teC5ieC4ouC4h+C4qOC4tOC4o+C4tOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4p+C4tOC4oOC4siDguYDguKfguKjguLLguILguKfguKPguLTguJnguJjguYwNCivguKfguLTguKDguLIg4Liq4Liy4Lih4Liq4Li1DQor4Lin4Li04Lig4LiyIOC5geC4quC4h+C4quC4p+C5iOC4suC4hw0KK+C4p+C4tOC4oOC4siDguK3guLTguJDguIfguLLguKENCivguKfguLTguKDguLLguIjguKPguLUg4LiV4Lix4LmJ4LiH4Liq4Liz4LmA4Lij4Li04LiH4Lin4LiH4Lio4LmMDQor4Lin4Li04Lig4Liy4LiU4LiyIOC4meC4tOC4mOC4tOC4m+C4o+C4teC4iuC4suC4meC4meC4l+C5jA0KK+C4p+C4tOC4oOC4suC4lOC4siDguKvguLTguKPguLHguI3guJnguYnguK3guKINCivguKfguLTguKDguLLguJ7guKMg4LmB4LiL4LmI4LmC4Lil4LmJ4LinDQor4Lin4Li04Lig4Liy4Lie4LijIOC4pOC4lOC4teC4iuC4ueC4nuC4tOC4oeC4pQ0KK+C4p+C4tOC4oOC4suC4nuC4o+C4o+C4kyDguJ7guLjguYjguKHguKrguIfguKfguJkNCivguKfguLTguKDguLLguKDguKPguJPguYwg4LmB4LiL4LmI4LmE4Lir4LilDQor4Lin4Li04Lig4Liy4Lig4Lij4LiT4LmMIOC4reC4suC4iOC4reC4suC4quC4sg0KK+C4p+C4tOC4oOC4suC4o+C4seC4leC4meC5jCDguJ7guKPguKvguKHguKjguKPguLXguKrguKfguLHguKrguJTguLTguYwNCivguKfguLTguKDguLLguKfguJTguLUg4LmE4LiC4LmI4Lih4Li44LiBDQor4Lin4Li04Lig4Liy4Lin4Lij4Lij4LiTIOC4hOC4uOC4k+C4leC4tOC4quC4uOC4gg0KK+C4p+C4tOC4oOC4suC4p+C4o+C4o+C4kyDguKDguLnguYjguJXguKPguLDguIHguLnguKUNCivguKfguLTguKDguLLguKfguKXguLHguKIg4LmB4LiI4Lin4LiK4Liz4LiZ4Liy4LiN4LmA4LiK4Liy4Lin4LmMDQor4Lin4Li04Lig4Liy4Lin4Li1IOC4quC4oeC4tOC4l+C4mOC4tOC5gOC4qOC4o+C4qeC4kOC5jA0KK+C4p+C4tOC4oOC4suC4qiDguYDguK3guIHguJjguKPguKPguKHguKrguIHguLjguKUNCivguKfguLTguKHguKUg4LiB4Lil4Li04LmI4LiZ4LmA4LiB4Lip4LijDQor4Lin4Li04Lih4LilIOC4hOC4s+C5gOC4hOC4o+C4t+C5iOC4reC4hw0KK+C4p+C4tOC4oeC4pSDguInguLLguKLguJvguLHguI3guI3guLLguYDguKXguLTguKgNCivguKfguLTguKHguKUg4LmB4LiL4LmI4LmA4Liu4Li14LmJ4LiiDQor4Lin4Li04Lih4LilIOC4l+C4reC4h+C4lOC4reC4meC4meC5ieC4reC4og0KK+C4p+C4tOC4oeC4pSDguJrguLjguI3guKLguLHguIcNCivguKfguLTguKHguKUg4Lie4Lix4LiS4LiZ4Liy4LiU4Li04Liq4Lix4LiiDQor4Lin4Li04Lih4LilIOC4oeC4suC4peC4seC4ouC4l+C4reC4hw0KK+C4p+C4tOC4oeC4pSDguKXguLTguKHguJvguLTguKrguKfguLHguKrguJTguLTguYwNCivguKfguLTguKHguKUg4Lin4Li54Lin4LiZ4Li04LiKDQor4Lin4Li04Lih4LilIOC4quC4uOC4guC4quC4oeC5g+C4iA0KK+C4p+C4tOC4oeC4pSDguYHguKvguKLguKHguIfguLLguKENCivguKfguLTguKHguKXguJfguLTguJ7guKLguYwg4LmA4LiB4Lip4LmC4LiB4Lih4LilDQor4Lin4Li04Lih4Lil4Lih4Liy4Lil4Lii4LmMIOC4quC4oeC4hOC4sOC5gOC4mQ0KK+C4p+C4tOC4oeC4peC4o+C4seC4leC4meC5jCDguIfguLLguKHguJ7guKTguIHguKnguYzguKfguLLguJnguLTguIrguKLguYwNCivguKfguLTguKHguKXguKPguLHguJXguJnguYwg4LiZ4Li04Lij4Lix4LiV4Li04LiB4Li44Lil4LiK4Lix4LiiDQor4Lin4Li04Lih4Lil4Lij4Lix4LiV4LiZ4LmMIOC4peC4teC4peC4suC4m+C4o+C4sOC4iuC4suC4geC4uOC4pQ0KK+C4p+C4tOC4oeC4peC4o+C4seC4leC4meC5jCDguK3guKPguLjguJPguJnguLTguJjguLQNCivguKfguLTguKHguKXguKfguKPguKPguJMg4LmA4Lic4LmI4Liy4Lio4Lij4Li14LmA4LiI4Lij4Li04LiNDQor4Lin4Li04Lih4Lil4Lio4Lij4Li1IOC4m+C4o+C4sOC4lOC4seC4muC5geC4geC5ieC4pw0KK+C4p+C4tOC4oeC4suC4mSDguJjguLTguYLguKrguKDguLINCivguKfguLTguKLguJTguLIg4Lin4Li04Lio4Li04Lip4LiQ4LmM4Lij4Lix4Lio4Lih4Li14Lin4LiH4Lio4LmMDQor4Lin4Li04Lii4Liw4LiU4LiyIOC4l+C4suC4m+C4o+C4sOC4l+C4uOC4oQ0KK+C4p+C4tOC4ouC4sOC4lOC4siDguKjguLTguKPguLTguJfguK3guIfguITguLMNCivguKfguLTguKPguIfguKPguK3guIcg4Lit4LmJ4LiZ4Lit4Liy4Lij4Li1DQor4Lin4Li04Lij4LiwIOC4muC4s+C4o+C4uOC4h+C4qOC4o+C4tQ0KK+C4p+C4tOC4o+C4seC4iiDguIHguKXguLTguYjguJnguILguIjguKMNCivguKfguLTguKPguLHguIog4LiC4Li44Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lin4Li04Lij4Lix4LiKIOC4iOC4tOC4leC4nuC4seC4meC4mOC5jA0KK+C4p+C4tOC4o+C4seC4iiDguIrguLfguYjguJnguKHguLXguKjguKPguLUNCivguKfguLTguKPguLHguIog4LiU4Li04Lip4LiQ4Lia4Lij4Lij4LiI4LiHDQor4Lin4Li04Lij4Lix4LiKIOC5gOC4l+C4nuC4m+C4o+C4sOC4l+C4uOC4oQ0KK+C4p+C4tOC4o+C4seC4iiDguJrguKPguKPguYDguJfguLTguIcNCivguKfguLTguKPguLHguIog4LmA4Lib4Lij4Lih4Lio4Lij4Li1DQor4Lin4Li04Lij4Lix4LiKIOC4nuC4ueC4meC4l+C4o+C4seC4nuC4ouC5jA0KK+C4p+C4tOC4o+C4seC4iiDguKHguLLguJTguKfguIcNCivguKfguLTguKPguLHguIog4LmA4Lij4Li34Lit4LiZ4LmA4LiH4Li04LiZDQor4Lin4Li04Lij4Lix4LiKIOC4p+C4o+C4o+C4k+C4o+C4seC4leC4meC5jA0KK+C4p+C4tOC4o+C4seC4iiDguKjguKPguLXguJrguLjguI3guKfguIfguKnguYwNCivguKfguLTguKPguLHguIog4Liq4Lir4Liq4Lih4LmC4LiK4LiEDQor4Lin4Li04Lij4Lix4LiKIOC5geC4quC4h+C5gOC4h+C4tOC4mQ0KK+C4p+C4tOC4o+C4seC4iiDguK3guKHguKjguLTguKPguLQNCivguKfguLTguKPguLHguIrguIog4Liq4Li44Lig4Liy4LiZ4Li44Liq4LijDQor4Lin4Li04Lij4Lix4LiVIOC4ouC4tOC5ieC4oeC4o+C4sOC4q+C4h+C4qeC5jA0KK+C4p+C4tOC4o+C4seC4leC4meC5jCDguYHguIHguYnguKfguKPguLHguJXguJnguK3guLHguKHguJ7guKMNCivguKfguLTguKPguLHguJXguJnguYwg4LiI4Liy4Lij4Li44LmA4Lin4LisDQor4Lin4Li04Lij4Lix4LiV4LiZ4LmMIOC4iuC4ueC4ieC4seC4leC4o+C5jA0KK+C4p+C4tOC4o+C4seC4leC4meC5jCDguJXguLHguJnguJXguLTguK3guJjguLTguKHguIfguITguKUNCivguKfguLTguKPguLHguJXguJnguYwg4LiY4Li54Lib4LiX4Lit4LiHDQor4Lin4Li04Lij4Lix4LiV4LiZ4LmMIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4geC4uOC4pQ0KK+C4p+C4tOC4o+C4seC4leC4meC5jCDguJ7guLTguKXguLHguKINCivguKfguLTguKPguLHguJXguJnguYwg4Lii4Lix4LiZ4LiV4LmA4Lin4LiKDQor4Lin4Li04Lij4Lix4LiV4LiZ4LmMIOC4peC4teC4peC4suC4quC4oeC4suC4meC4iuC4seC4og0KK+C4p+C4tOC4o+C4seC4leC4meC5jCDguYHguKfguKfguJnguIHguKLguLnguIcNCivguKfguLTguKPguLHguJXguJnguYwg4Liq4Li04LiH4Lir4LmM4LiH4Liy4LihDQor4Lin4Li04Lij4Lix4LiV4LiZ4LmMIOC5gOC4q+C4oeC4meC4o+C4suC4geC4ow0KK+C4p+C4tOC4o+C4seC4leC4meC5jCDguYDguK3guLXguKLguJTguYDguKrguJkNCivguKfguLTguKPguLLguJPguLUg4Lin4Lij4LiK4Liy4LiE4Lij4Li14Lii4LiZ4Lix4LiZ4LiX4LmMDQor4Lin4Li04Lij4Li04LiZ4LiX4Lij4LmMIOC4leC4seC4meC4leC4tOC4nuC4peC4suC4p+C4meC4tOC4iuC4ouC5jA0KK+C4p+C4tOC4o+C4tOC4ouC4sCDguJnguLTguKXguKPguLHguIfguKnguLUNCivguKfguLTguKPguLTguKLguLIg4LiB4Li04LiV4LiV4Li04LiZ4Lix4LiZ4LiX4LmMDQor4Lin4Li04Lij4Li14Lii4LiyIOC4meC4suC4hOC4sg0KK+C4p+C4tOC4o+C4uOC4lSDguJXguKPguLXguKLguKfguIcNCivguKfguLTguKPguLjguKzguKvguYwg4LiE4Lij4Lit4LiH4Lia4Li44LiN4Lio4Lij4Li1DQor4Lin4Li04Lij4Li44Lis4Lir4LmMIOC4quC4uOC4meC4l+C4o+C4suC4oOC4seC4og0KK+C4p+C4tOC4peC4seC4oiDguYPguIjguJTguLUNCivguKfguLTguKXguLHguKIg4Lin4Li04Liq4Li44LiX4LiY4Li04LiK4Liy4LiV4Li0DQor4Lin4Li04Lil4Lix4Lii4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4uOC4geC4tOC4iOC4jeC4suC4kw0KK+C4p+C4tOC4peC4suC4p+C4o+C4o+C4kyDguJjguLLguKPguJjguJnguLLguKDguKPguJPguYwNCivguKfguLTguKXguLLguKfguLHguJPguKLguYwg4LmB4LiB4LmJ4Lin4LiB4LiZ4LiB4Lin4Li04LiI4Li04LiV4LijDQor4Lin4Li04Lil4Liy4Lin4Lix4LiT4Lii4LmMIOC4oOC4seC4l+C4o+C4p+C4meC4suC4geC4uOC4pQ0KK+C4p+C4tOC4peC4suC4p+C4seC4peC4ouC5jCDguIHguKPguLDguIjguYjguLLguIfguJfguLTguKgNCivguKfguLTguKXguLLguKfguLHguKXguKLguYwg4LiZ4Lij4Liq4Li04LiH4Lir4LmMDQor4Lin4Li04Lil4Liy4Lin4Lix4Lil4Lii4LmMIOC4qOC4o+C4teC4oeC4teC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4p+C4tOC4peC4suC4qCDguIjguLXguJnguLLguKPguLHguIHguKnguYwNCivguKfguLTguKXguLLguKgg4LmA4Lin4LiK4Lig4Li54LiV4Li0DQor4Lin4Li04Lil4Liy4Liq4Li04LiZ4Li1IOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4p+C4tOC4p+C4o+C4o+C4kyDguIHguKHguKXguKjguKPguLXguIjguLHguIHguKMNCivguKfguLTguKfguKPguKPguJjguJnguYwg4Lig4Li04Lij4Lih4Lii4LmM4Lib4Lij4Liw4LmA4Lih4LioDQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC4geC4seC4meC4keC4mOC4meC4geC4tOC4iA0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguITguLjguJPguJXguLTguKrguLjguIINCivguKfguLTguKfguLHguJLguJnguYwg4LiJ4Liy4Lii4Liy4Liq4LiB4Li44Lil4Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC5geC4i+C5iOC5guC4geC4og0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguYLguJXguYDguIjguKPguLTguI3guKfguLTguKfguLHguJLguJnguYwNCivguKfguLTguKfguLHguJLguJnguYwg4LiZ4Li04LiV4Li04Lig4Li54Lih4Li04LmA4Lin4LiK4Liq4LiB4Li44LilDQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC4m+C4tOC5iOC4meC4oOC4seC4geC4lOC4tQ0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguJ7guLXguKPguKjguLHguIHguJTguLTguYzguYLguKrguKDguJMNCivguKfguLTguKfguLHguJLguJnguYwg4Lii4Li04LmI4LiH4LiK4LiZ4Liw4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC5gOC4peC4suC4p+C5gOC4peC4tOC4qA0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguKfguLTguIHguKPguLLguJnguJXguYLguJnguKPguKoNCivguKfguLTguKfguLHguJLguJnguYwg4Lio4Li04Lil4LiB4Lij4Li44LiH4LiY4Li14Lij4Liw4Lig4Liy4LieDQor4Lin4Li04Lin4Lix4LiS4LiZ4LmMIOC4quC4uOC4guC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4tOC4p+C4seC4kuC4meC5jCDguK3guKDguLTguKfguLHguJLguJnguKXguLHguIfguIHguLLguKMNCivguKfguLTguKfguLHguJLguJnguYwg4LmA4Lit4Li34LmJ4Lit4Lij4Lix4LiV4LiZ4LmM4Lio4Lij4Li14LiX4Lit4LiHDQor4Lin4Li04Lio4LiT4Li1IOC4qOC4o+C4l+C4seC4leC4leC5jA0KK+C4p+C4tOC4qOC4peC4ouC5jCDguKrguLTguKPguLTguJfguLHguKjguJnguITguLjguJMNCivguKfguLTguKjguLLguKUg4LmA4LiJ4Lil4Li04Lih4LiB4Li04LiIDQor4Lin4Li04Lio4Liy4LilIOC4peC4t+C4reC4geC4o+C4sOC4iOC5iOC4suC4h+C4mOC4o+C4o+C4oQ0KK+C4p+C4tOC4qOC4tOC4qeC4juC5jCDguYHguIHguYnguKfguKXguYnguK3guKENCivguKfguLTguKjguLTguKnguI7guYwg4Lie4Lix4LiS4LiZ4LmA4Lih4LiG4Li04LiZDQor4Lin4Li04Lio4Li04Lip4LiO4LmMIOC4reC4oOC4tOC4meC4seC4meC4l+C5jA0KK+C4p+C4tOC4qOC4tOC4qeC4j+C5jCDguKDguLnguKPguLTguKfguLHguJLguJnguYwNCivguKfguLTguKjguLTguKnguI/guYwg4Lit4Li04Liq4LiT4Lie4LiH4Lio4LmMDQor4Lin4Li04Lio4Li04Lip4LiQ4LmMIOC4geC4tOC4leC4leC4tOC4meC4seC4meC4l+C4nuC4seC4meC4mOC4uOC5jA0KK+C4p+C4tOC4qOC4tOC4qeC4kOC5jCDguJXguLLguKPguLHguIrguIHguLjguKUNCivguKfguLTguKjguLTguKnguJDguYwg4Lih4Lix4LmI4LiH4LiE4Lix4LmI4LiHDQor4Lin4Li04Lio4Li04Lip4LiQ4LmMIOC4qOC4tOC4p+C4sOC4muC4p+C4ow0KK+C4p+C4tOC4qOC4tOC4qeC4ouC5jOC4qOC4seC4geC4lOC4tOC5jCDguKfguIfguKjguYzguKrguJbguLTguJXguKLguYzguJ7guKMNCivguKfguLTguKnguJPguLgg4LiX4Lin4Li14Lin4Li04LmC4Lij4LiI4LiZ4LmM4Liq4LiB4Li44LilDQor4Lin4Li04Lip4LiT4Li4IOC4p+C4h+C4qeC5jOC5gOC4h+C4tOC4mQ0KK+C4p+C4tOC4qeC4k+C4uOC4p+C4seC4lSDguKfguLHguIjguJnguLDguJ7guLjguIHguIHguLANCivguKfguLTguKrguLHguJnguJXguYwg4LiI4Lix4LiZ4LiX4Lij4LmM4Lio4Lij4Li14LmA4LiI4Lij4Li04LiNDQor4Lin4Li04Liq4Lix4LiiIOC4quC4oeC4muC4ueC4o+C4k+C5jOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4p+C4tOC4quC4suC4oyDguYDguJXguIrguLDguJjguLXguKPguLLguKfguLHguJLguJnguYwNCivguKfguLTguKrguLTguJAg4Lil4Li44Lic4Lil4LmB4LiX4LmJDQor4Lin4Li04Liq4Li04LiX4LiY4Li04LmMIOC4iOC4tOC4leC4o+C4nuC4suC4meC4tOC4iuC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4tOC4quC4tOC4l+C4mOC4tOC5jCDguJ7guIfguYLguKjguJjguKMNCivguKfguLTguKrguLTguJfguJjguLTguYwg4LmA4Lio4Lij4Lip4LiQ4Li14Lie4LmI4Lit4LiE4LmJ4LiyDQor4Lin4Li04Liq4Li04Lip4LiQIOC4pOC4l+C4mOC4tOC5jOC4quC4s+C5gOC4o+C5h+C4iA0KK+C4p+C4tOC4quC4uOC4l+C4mOC4tCDguJrguLjguI3guIHguLPguJ7guKPguYnguLINCivguKfguLTguKrguLjguJfguJjguLTguYwg4LiE4Li44LmJ4Lih4Lig4Liy4LiE4Liq4LiB4Li44LilDQor4Lin4Li04Liq4Li44LiX4LiY4Li04LmMIOC4lOC5iOC4suC4meC4mOC4meC4quC4suC4hOC4ow0KK+C4p+C4tOC4quC4uOC4l+C4mOC4tOC5jCDguJrguLjguI3guJTguLXguYDguIjguKPguLTguI3guKLguLTguYjguIcNCivguKfguLTguKrguLjguJfguJjguLTguYwg4Lig4Lix4LiX4Lij4LmA4LiB4Li14Lii4Lij4LiV4Li04LmA4LiI4Lij4Li04LiNDQor4Lin4Li04Liq4Li44LiX4LiY4Li04LmMIOC4p+C4tOC4quC4uOC4l+C4mOC4tOC4nuC4tOC5gOC4meC4leC4ow0KK+C4p+C4tOC4quC4uOC4l+C4mOC4tOC5jCDguKrguLjguJfguJjguLTguKfguLTguKPguLTguKLguLDguIHguLjguKUNCivguKfguLTguKrguLjguJfguJjguYwg4LmA4LiE4Lir4LmM4LiX4Li44LmI4LihDQor4Lin4Li04Liq4Li54LiV4LijIOC4ieC4geC4suC4iOC4pOC4l+C4mOC4tOC4nuC4h+C4qOC5jA0KK+C4p+C4tOC4quC4ueC4leC4oyDguJvguKPguLDguITguK3guIfguKrguLHguJnguJXguLTguIHguLjguKUNCivguKfguLTguKrguLnguJXguKMg4Lin4LiH4Lio4LmM4LmE4LiK4Lii4Lio4Lij4Li1DQor4Lin4Li04Liq4Li54LiV4LijIOC4quC4ueC5iOC4nuC4suC4meC4tOC4ig0KK+C4p+C4tOC5gOC4geC4t+C5ieC4rSDguKrguIHguLjguKXguIjguLHguJnguJfguKPguYwNCivguKfguLTguYDguIrguKnguJAg4Lib4Lij4Liy4LiK4LmA4Lib4Lij4Li34LmI4Lit4LiHDQor4Lin4Li04LmA4LiK4Lip4LiQ4LmMIOC4o+C4reC4lOC4meC4uOC4quC4meC4mOC4tOC5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguIHguLHguIfguKfguLLguKXguKLguYwNCivguKfguLTguYDguIrguLXguKLguKMg4LmA4LiB4Li04LiU4Lig4Li54LmIDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC5gOC4guC5h+C4oeC5gOC4h+C4tOC4mQ0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguYDguITguLLguKPguJ7guJ7guLLguJ7guIfguITguYwNCivguKfguLTguYDguIrguLXguKLguKMg4LiI4Lix4LiZ4LiX4LmC4LiK4LiV4Li04Lia4Li44LiV4LijDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC5gOC4iOC4o+C4tOC4jeC4nuC4h+C4qeC5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguIrguLHguKLguIrguLPguJnguLDguKDguLHguKINCivguKfguLTguYDguIrguLXguKLguKMg4LmC4LiK4LiV4Li04LiV4Lix4LiZ4LiV4Li04Lih4Liy4LiB4LijDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguJXguKPguLXguJ7guLjguJINCivguKfguLTguYDguIrguLXguKLguKMg4LmA4LiV4Li04Lih4Lin4Li44LiS4Li0DQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4l+C4seC4leC4leC4oeC4meC4seC4qg0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguJjguLLguKPguKHguJnguLnguKXguLLguKANCivguKfguLTguYDguIrguLXguKLguKMg4LmA4LiZ4LiV4Lij4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiB4Li44LilDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4muC4uOC4o+C4tOC4oeC4iOC4tOC4leC4leC5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguJvguLLguJnguK3guLjguJfguLHguKINCivguKfguLTguYDguIrguLXguKLguKMg4Lie4Lij4Liy4Lii4Lih4Li1DQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4nuC4tOC4o+C4tOC4ouC4sOC4nuC4h+C4qOC4mOC4ow0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguJ/guLjguYnguIfguKrguLjguIINCivguKfguLTguYDguIrguLXguKLguKMg4Lih4Liy4Lih4Li14LmA4LiB4LiV4Li4DQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC5g+C4ouC4m+C4o+C4sOC4ouC4ueC4ow0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguKPguLjguYjguIfguYLguKPguIjguJnguLLguKXguLHguIHguKnguJPguYwNCivguKfguLTguYDguIrguLXguKLguKMg4Lil4Li04LmJ4Lih4Lit4Liy4Lij4Li14LiY4Lij4Lij4LihDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4p+C4h+C4qOC5jOC4reC4meC4uOC4quC4o+C4k+C5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguKfguLHguJnguKXguLHguIHguKnguJPguYwNCivguKfguLTguYDguIrguLXguKLguKMg4LmE4Lin4Lie4LiI4LiZ4Liy4LiXDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4qOC4tOC4o+C4tOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguKrguKHguKjguLTguKPguLTguIHguLjguKUNCivguKfguLTguYDguIrguLXguKLguKMg4Liq4Liz4LmA4Lig4LiyDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4quC4uOC4hOC4meC4mOC4suC4oOC4tOC4o+C4oeC4ouC5jCDguJMg4Lie4Lix4LiX4Lil4Li44LiHDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC5gOC4quC4o+C5h+C4iOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguKvguK3guKHguITguIcNCivguKfguLTguYDguIrguLXguKLguKMg4Lit4Lii4Li54LmI4LmA4Lij4Li34Lit4LiHDQor4Lin4Li04LmA4LiK4Li14Lii4LijIOC4reC4tOC4meC4l+C4o+C5jOC4quC4s+C4reC4suC4h+C4hOC5jA0KK+C4p+C4tOC5gOC4iuC4teC4ouC4oyDguK7guKfguJTguJvguKPguLDguJTguLTguKnguJDguYwNCivguKfguLTguYDguKXguLTguKgg4Lit4Lij4LmI4Liy4Lih4LmA4Lil4Li04Lio4LiV4Lij4Liw4LiB4Li54LilDQor4Lin4Li04LmA4Lio4LipIOC4muC4uOC4jeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4p+C4tOC5guC4iuC4hCDguKfguLTguYDguKjguKnguJ7guLHguJnguJjguLjguYzguIrguLHguKINCivguKfguLTguYLguKPguIjguJnguYwg4LiB4Lix4Lib4Lib4Li04Lii4LiI4Lij4Lij4Lii4LiyDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC5guC4geC4ouC4reC4meC4o+C4o+C4huC4geC4uOC4pQ0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguIfguLLguKHguYDguK3guIHguK3guLjguJTguKHguJ7guIfguKjguYwNCivguKfguLTguYLguKPguIjguJnguYwg4LiI4Li04Lin4Liy4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4iuC4peC4o+C4seC4leC4meC4geC4uOC4pQ0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguYLguIrguJXguLTguKfguKPguKPguJPguIHguLjguKUNCivguKfguLTguYLguKPguIjguJnguYwg4LiU4Lit4LiZ4Lii4Liy4LiH4LmE4Lie4LijDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC5gOC4leC4iuC4sOC4iuC4meC4suC4peC4seC4og0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguJfguLHguKjguJnguJrguKPguLTguKrguLjguJfguJjguLTguYwNCivguKfguLTguYLguKPguIjguJnguYwg4LiZ4Liy4LiE4LiZ4LmJ4Lit4LiiDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC5gOC4muC4jeC4iOC4nuC4quC4geC4uOC4pQ0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguJzguKXguJXguLnguKENCivguKfguLTguYLguKPguIjguJnguYwg4Lie4Li04LiX4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4oOC4suC5g+C4iOC4mOC4o+C4o+C4oQ0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguKLguLHguYjguIfguKLguLfguJnguKDguKPguLLguJTguKMNCivguKfguLTguYLguKPguIjguJnguYwg4Lij4Li44LmC4LiI4Lib4LiB4Liy4LijDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4peC4tOC5iOC4p+C4peC4seC4geC4qeC4k+C5jA0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguKfguIfguKnguYzguKjguLTguKPguLQNCivguKfguLTguYLguKPguIjguJnguYwg4Lin4Li04Lij4Li04Lii4Liw4LiY4LiZ4Liy4LiB4LijDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4qOC4pOC4h+C4hOC4suC4ow0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguKrguLHguIfguKfguKPguYLguKLguJjguLTguJkNCivguKfguLTguYLguKPguIjguJnguYwg4Liq4Li44LiX4LiY4Li04Lij4Lix4LiB4Lip4LmMDQor4Lin4Li04LmC4Lij4LiI4LiZ4LmMIOC4q+C4peC4tOC4oeC5hOC4iuC4ouC4geC4uOC4pQ0KK+C4p+C4tOC5guC4o+C4iOC4meC5jCDguK3guKPguLjguJPguKPguLHguJXguJnguIHguLjguKUNCivguKfguLTguYLguKPguIjguJnguYwg4LmA4Lit4Li14LmI4Lii4Lih4Liq4LiB4Li44Lil4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Li04LmE4LilIOC4geC4tOC4o+C4sOC4p+C4h+C4qOC5jOC4quC4geC4uOC4pQ0KK+C4p+C4tOC5hOC4pSDguITguLHguITguJnguLHguKHguJ7guKPguYDguKXguLTguKgNCivguKfguLTguYTguKUg4LiI4Liy4Lij4Li44Lie4LiH4Lio4LmMDQor4Lin4Li04LmE4LilIOC4iuC4lOC4iuC5ieC4reC4og0KK+C4p+C4tOC5hOC4pSDguYHguIvguYjguIHguLTguKENCivguKfguLTguYTguKUg4LiU4Liy4Lin4Liq4Li44LiCDQor4Lin4Li04LmE4LilIOC5guC4leC4quC4uOC4p+C4o+C4o+C4kw0KK+C4p+C4tOC5hOC4pSDguJjguLLguKPguLXguYTguJfguKINCivguKfguLTguYTguKUg4Lia4Li44LiN4Lih4Li1DQor4Lin4Li04LmE4LilIOC4m+C4suC4lOC4qOC4o+C4tQ0KK+C4p+C4tOC5hOC4pSDguJ7guLTguJfguLHguIHguKnguYzguIrguLHguKLguKfguLHguJLguJnguLINCivguKfguLTguYTguKUg4Lih4LiT4Li14LmB4Liq4LiHDQor4Lin4Li04LmE4LilIOC4o+C4seC4leC4leC4geC4uOC4pQ0KK+C4p+C4tOC5hOC4pSDguKXguLTguYnguKHguYDguJvguKPguKHguKfguLHguJLguJnguLINCivguKfguLTguYTguKUg4Lin4Li04LiI4Li04LiV4Lij4LiZ4Li04Lij4Lix4LiZ4LiU4LijDQor4Lin4Li04LmE4LilIOC4qOC4o+C4teC4reC4o+C4uOC4k+C4geC4tOC4iOC4iOC4sg0KK+C4p+C4tOC5hOC4pSDguKrguKvguK3guLLguKPguLHguIHguILguLINCivguKfguLTguYTguKUg4Liq4Li44LiX4Lix4LiU4LiT4LmM4Lin4Liy4LiZ4Li04LiKDQor4Lin4Li04LmE4LilIOC4q+C4p+C4seC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4tOC5hOC4pSDguK3guLHguIrguJPguLLguIHguKPguKXguLHguIHguKnguJPguYwNCivguKfguLTguYTguKXguJ7guKMg4LiB4Li44Lil4Lia4Li44LiV4LijDQor4Lin4Li04LmE4Lil4Lie4LijIOC4l+C5iOC4suC5hOC4hOC4o+C5ieC4geC4peC4suC4hw0KK+C4p+C4tOC5hOC4peC4nuC4oyDguKfguLTguJfguKLguLLguILguIjguKPguYDguJTguIoNCivguKfguLTguYTguKXguJ7guKPguKPguJMg4Liq4Lih4Lia4Li54Lij4LiT4Liq4Li04LiZDQor4Lin4Li04LmE4Lil4Lij4Lix4LiV4LiZ4LmMIOC5guC4geC4qOC4peC4iOC4seC4meC4l+C4o+C4ouC4meC4leC5jA0KK+C4p+C4tOC5hOC4peC4o+C4seC4leC4meC5jCDguJvguLnguJnguKfguLTguKDguLLguIHguLjguKUNCivguKfguLTguYTguKXguKPguLHguJXguJnguYwg4Lir4Lin4Lix4LiH4Lio4Lij4Li14LiV4Lij4Lix4LiiDQor4Lin4Li04LmE4Lil4Lil4Lix4LiB4Lip4LiT4LmMIOC5gOC4iOC4meC4quC4oeC4suC4meC4iuC4seC4ouC4geC4uOC4pQ0KK+C4p+C4tOC5hOC4peC4peC4seC4geC4qeC4k+C5jCDguJnguKPguLTguJnguJfguKPguYwNCivguKfguLTguYTguKXguKXguLHguIHguKnguJPguYwg4Lij4Lix4LiV4LiZ4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lin4Li04LmE4Lil4Lil4Lix4LiB4Lip4LiT4LmMIOC5geC4quC4h+C4l+C4seC4geC4qeC4tOC4kw0KK+C4p+C4tOC5hOC4peC4p+C4o+C4o+C4kyDguITguIfguITguLTguJQNCivguKfguLTguYTguKXguKfguKPguKPguJMg4LiK4Li54LmB4LiU4LiHDQor4Lin4Li04LmE4Lil4Lin4Lij4Lij4LiTIOC5gOC4l+C4teC4ouC4meC4luC4suC4p+C4ow0KK+C4p+C4tOC5hOC4peC4p+C4o+C4o+C4kyDguYHguJvguYnguJnguKrguLjguKfguKPguKPguJMNCivguKfguLTguYTguKXguKfguKPguKPguJMg4Lii4Li04LiZ4LiU4Li14Lik4LiB4Lip4LmMDQor4Lin4Li04LmE4Lil4Lin4Lij4Lij4LiTIOC4p+C4suC4qOC4p+C4tOC4lw0KK+C4p+C4tOC5hOC4peC4p+C4o+C4o+C4kyDguKrguLjguYDguJ7guLXguKLguKMNCivguKfguLTguYTguKXguKfguKPguKPguJPguYwg4LmA4Lir4Lil4Li34Lit4LiH4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lin4Li14LiT4LiyIOC4geC4seC4quC4leC4seC4mQ0KK+C4p+C4teC4k+C4siDguYDguIjguJnguIHguLTguIjguYDguIjguKPguLTguI3guIrguLHguKINCivguKfguLXguJPguLIg4LiV4Lix4LiZ4LmA4LiB4Lip4LihDQor4Lin4Li14LiT4LiyIOC4muC4uOC4jeC4guC4p+C4seC4jQ0KK+C4p+C4teC4k+C4siDguKDguLHguIHguJTguLXguKfguLHguJLguJnguLDguIHguLjguKUNCivguKfguLXguJPguLIg4Lin4LiH4Lip4LmM4LiB4Lih4Lil4LiK4Li44LiT4Lir4LmMDQor4Lin4Li14LiT4LiyIOC4quC4suC4ouC4q+C4ouC4uOC4lA0KK+C4p+C4teC4k+C4siDguYDguK3guLXguYjguKLguKHguJvguKPguLDguIjguIcNCivguKfguLXguJnguLHguKog4Lib4Li04LmI4LiZ4Lih4Lix4LiH4LiB4LijDQor4Lin4Li14LiZ4Lix4LiqIOC5gOC4reC4teC5iOC4ouC4oeC4p+C4seC4kuC4meC4sA0KK+C4p+C4teC4o+C4geC4tOC4leC4leC5jCDguYTguJ7guJrguLnguKXguKLguYzguIHguLTguIjguYLguIHguKjguKUNCivguKfguLXguKPguIrguLHguKIg4LmB4LiL4LmI4LmA4LiL4Li14Lii4LinDQor4Lin4Li14Lij4LiK4Lix4LiiIOC4peC4suC4oOC5gOC4iOC4o+C4tOC4jeC4nuC4ow0KK+C4p+C4teC4o+C4iuC4seC4oiDguK3guLLguJnguLHguJnguJfguKjguLTguKPguLTguYDguIHguLXguKLguKPguJXguLQNCivguKfguLXguKPguJnguLLguJYg4LmB4LiU4LiH4Lia4Li44LiNDQor4Lin4Li14Lij4Lie4LiH4Lio4LmMIOC5gOC4peC4tOC4qOC4p+C4h+C4qOC5jOC4oOC4seC4geC4lOC4tQ0KK+C4p+C4teC4o+C4nuC4iOC4meC5jCDguYDguIrguLTguJTguYTguIrguKLguKfguIfguKnguYwNCivguKfguLXguKPguJ7guKUg4LiY4LiZ4Liy4Lig4Lij4LiT4LmM4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Lin4Li14Lij4Lie4Lix4LiS4LiZ4LmMIOC4geC4tOC4leC4leC4tOC4oOC4suC4k+C4uOC4geC4uOC4pQ0KK+C4p+C4teC4o+C4ouC4qCDguKTguJfguJjguLTguYzguYTguJfguKINCivguKfguLXguKPguKLguLjguJfguJgg4Lia4Lix4LiT4LiR4Li04LiV4Lig4Li54Lin4LiZ4LiZ4LiX4LmMDQor4Lin4Li14Lij4Lii4Li44LiX4LiY4LmMIOC4m+C4teC4geC4suC4meC4meC4l+C5jA0KK+C4p+C4teC4o+C4p+C4o+C4o+C4kyDguYHguJXguIfguYHguIHguYnguKcNCivguKfguLXguKPguKfguKPguKPguJMg4LmA4Lin4Liq4Liy4Lij4Lix4LiK4LmA4Lio4Lij4Lip4LiQ4LmMDQor4Lin4Li14Lij4Lin4Lix4LiS4LiZ4LmMIOC4hOC4uOC4k+C4nuC4tOC4l+C4seC4geC4qeC5jOC4p+C4seC4kuC4meC4sg0KK+C4p+C4teC4o+C4p+C4seC4kuC4meC5jCDguJ7guLbguYjguIfguYLguJ7guJjguLTguYzguKrguKANCivguKfguLXguKPguKfguLHguJUg4LiE4Li44LiT4Liy4LiZ4Li44LiB4Li54LilDQor4Lin4Li14Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4guC4iOC4o+C5gOC4geC4teC4ouC4o+C4leC4tA0KK+C4p+C4teC4o+C4qOC4seC4geC4lOC4tOC5jCDguJrguKPguKPguIjguIfguKHguJPguLUNCivguKfguLXguKPguKjguLHguIHguJTguLTguYwg4Lin4Li04LiK4LiK4Liy4LiK4Li5DQor4Lin4Li14Lij4Liq4Li04LiX4LiY4Li04LmMIOC4ieC4seC4leC4o+C4quC4uOC4oOC4suC4h+C4hOC5jA0KK+C4p+C4teC4o+C4sCDguYHguIHguYnguKfguJnguLjguYjguKENCivguKfguLXguKPguLAg4LiI4Liw4Lia4Lix4LiHDQor4Lin4Li14Lij4LiwIOC4ieC4tOC4meC4l+C4geC4suC4meC4meC4l+C5jA0KK+C4p+C4teC4o+C4sCDguYLguIrguITguKLguLLguJnguLjguKfguLHguJLguJnguYzguKjguLTguKPguLQNCivguKfguLXguKPguLAg4LmC4LiU4LmB4Lin4LiZ4LmA4LinDQor4Lin4Li14Lij4LiwIOC4l+C4reC4h+C4peC4tOC5ieC4meC4iOC4teC5iA0KK+C4p+C4teC4o+C4sCDguJnguLPguIrguLLguI3guIrguLHguKLguKfguLjguJLguLQNCivguKfguLXguKPguLAg4Lib4Lij4Liw4LiU4Li04Lip4LiQ4Lic4Lil4Lie4Liy4LiZ4Li04LiKDQor4Lin4Li14Lij4LiwIOC4nuC4peC4qOC4seC4geC4lOC4tOC5jA0KK+C4p+C4teC4o+C4sCDguKHguJnguJXguYDguKrguKPguLXguKfguIfguKjguYwNCivguKfguLXguKPguLAg4Lij4Lix4LiK4LiV4Liy4Lih4Li44LiC4Lii4LiZ4Lix4LiZ4LiV4LmMDQor4Lin4Li14Lij4LiwIOC4peC4t+C4reC4p+C4tOC4iuC4meC4sA0KK+C4p+C4teC4o+C4sCDguKfguLHguJLguJnguLLguKLguLTguYjguIfguKrguIHguLjguKUNCivguKfguLXguKPguLAg4Lio4Lij4Li14Lih4Liy4Lil4LiyDQor4Lin4Li14Lij4LiwIOC4quC4p+C4o+C4o+C4ouC4suC4o+C4seC4leC4meC5jA0KK+C4p+C4teC4o+C4sCDguKrguLjguKPguLTguKLguJvguKPguLDguKDguLLguJTguLTguKXguIENCivguKfguLXguKPguLAg4LmA4Lir4Lil4Li34Lit4LiH4Lia4Lij4Li04Lia4Li54Lij4LiT4LiwDQor4Lin4Li14Lij4LiwIOC4reC4uOC4meC4hOC4suC4meC4meC4l+C5jA0KK+C4p+C4teC4o+C4sOC4iuC4seC4oiDguIHguLnguJTguYLguJ7guJnguIfguLLguKENCivguKfguLXguKPguLDguIrguLHguKIg4LiK4Li04LmJ4LiZ4Lio4Li04Lij4Li0DQor4Lin4Li14Lij4Liw4LiK4Lix4LiiIOC4l+C4reC4h+C4p+C4h+C4qeC5jA0KK+C4p+C4teC4o+C4sOC4iuC4seC4oiDguJ7guKPguKvguKHguKHguLLguKgNCivguKfguLXguKPguLDguIrguLHguKIg4LmC4Lil4LmJ4Lie4Li04Lij4Li44LiTDQor4Lin4Li14Lij4Liw4LiK4Lix4LiiIOC4quC4uOC4meC4l+C4o+C5gOC4iOC4o+C4tOC4jeC4meC4meC4l+C5jA0KK+C4p+C4teC4o+C4sOC4iuC4suC4lSDguJ7guIfguKjguYzguKrguKfguLHguKrguJTguLTguYwNCivguKfguLXguKPguLDguIrguLLguJXguLQg4Lit4Li04LiH4Liq4Lix4LiZ4LmA4LiX4Li14Lii4LiwDQor4Lin4Li14Lij4Liw4Lie4LiH4Lio4LmMIOC4muC4uOC4jeC4geC4tOC4leC4leC4tOC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4teC4o+C4sOC4nuC4h+C4qeC5jCDguYDguJfguLXguKLguJnguYDguKrguKPguLTguKHguJfguKPguLHguJ7guKLguYwNCivguKfguLXguKPguLDguJ7guIfguKnguYwg4Liq4Li04Lij4Li04Lin4Lix4LiS4LiZ4LmA4Liq4LiW4Li14Lii4LijDQor4Lin4Li14Lij4Liw4Lie4LilIOC4iOC4tOC4o+C4seC4h+C4meC4tOC4oeC4tOC4leC4quC4geC4uOC4pQ0KK+C4p+C4teC4o+C4sOC4nuC4pSDguKHguLXguKXguLLguKANCivguKfguLXguKPguLDguJ7guKUg4LmC4Lit4Liq4Lig4Liy4Lij4Lii4LiB4Li44LilDQor4Lin4Li14Lij4Liw4Lie4Lix4LiZ4LiY4LmMIOC5gOC4nuC4iuC4o+C4o+C4seC4leC4meC5jA0KK+C4p+C4teC4o+C4sOC4ouC4uOC4l+C4mCDguYLguIHguKPguLHguJXguJnguLANCivguKfguLXguKPguLDguKLguLjguJfguJgg4Lio4Li44Lig4LiZ4Liy4Lij4LiyDQor4Lin4Li14Lij4Liw4Lin4Lij4Lij4LiTIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4p+C4teC4o+C4sOC4p+C4seC4kuC4meC5jCDguJXguLjguIfguITguKfguLTguIjguLTguJXguKPguKfguLHguJLguJnguYwNCivguKfguLXguKPguLDguKfguLHguJLguJnguYwg4Liq4Li44Lin4Lij4Lij4LiT4LmA4Lia4LiN4LiI4LiB4Li44LilDQor4Lin4Li14Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC4geC4reC4h+C5geC4geC5ieC4pw0KK+C4p+C4teC4o+C4sOC4qOC4seC4geC4lOC4tOC5jCDguIrguLLguI3guKfguLTguKPguKfguIfguKjguYwNCivguKfguLXguKPguLDguKjguLHguIHguJTguLTguYwg4LiX4Lit4LiH4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Lin4Li14Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC5guC4m+C4mOC4tOC4oeC4sg0KK+C4p+C4teC4o+C4sOC4qOC4seC4geC4lOC4tOC5jCDguKTguIHguKnguYzguKrguKHguJrguLnguKPguJPguYzguKjguLTguKPguLQNCivguKfguLXguKPguLDguKjguLHguIHguJTguLTguYwg4Lio4Lij4Li14Liq4Li04LiZ4LiX4LijDQor4Lin4Li14Lij4Liw4Lio4Lix4LiB4LiU4Li04LmMIOC4q+C4reC4oeC4iuC4t+C5iOC4mQ0KK+C4p+C4teC4o+C4sOC5gOC4geC4teC4ouC4o+C4leC4tCDguJXguLHguYnguIfguK3guKHguKPguKPguLHguJXguJnguYwNCivguKfguLXguKPguLDguYDguJfguJ4g4LmA4LiV4LmH4Lih4Liq4Li04LiZ4Lic4LiU4Li44LiHDQor4Lin4Li14Lij4Liy4Lii4LiyIOC4reC5iOC4p+C4oeC4quC4sOC4reC4suC4lA0KK+C4p+C4teC4o+C5gOC4lOC4iiDguKXguLTguKHguJvguYzguKPguLHguIrguJXguLLguKHguKMNCivguKfguLjguJLguJHguLTguJnguLHguJnguJfguYwg4Lio4Lij4Li14LmC4LiJ4Lih4LiH4Liy4LihDQor4Lin4Li44LiS4Li0IOC5guC4iuC4quC4tOC4p+C4quC4geC4uOC4pQ0KK+C4p+C4uOC4kuC4tCDguKHguLXguKrguLjguIINCivguKfguLjguJLguLQg4LmA4Lir4Lil4LmI4Liy4Liq4Li44LiZ4LiX4LijDQor4Lin4Li44LiS4Li04LiK4Lix4LiiIOC5gOC4geC4qOC4m+C4suC4meC4meC4l+C5jA0KK+C4p+C4uOC4kuC4tOC4iuC4seC4oiDguYHguIvguYjguKXguLTguYnguKENCivguKfguLjguJLguLTguIrguLHguKIg4Lib4Lij4Liw4Lin4Li04LiH4Lij4Lix4LiV4LiZ4LmMDQor4Lin4Li44LiS4Li04LiK4Lix4LiiIOC4o+C4reC4lOC5gOC4iOC4o+C4tOC4jQ0KK+C4p+C4uOC4kuC4tOC4iuC4seC4oiDguKjguKTguIfguITguLLguKPguKDguLLguKnguLTguJUNCivguKfguLjguJLguLTguIrguLHguKIg4LmB4Liq4LiZ4Lih4Liy4LmC4LiZ4LiKDQor4Lin4Li44LiS4Li04LiZ4Lix4LiZ4LiX4LmMIOC4leC4uOC4peC4ouC4peC4seC4geC4qeC4k+C5jA0KK+C4p+C4uOC4kuC4tOC4nuC4h+C4qOC5jCDguKvguKfguLHguIfguJjguJnguIHguLTguIgNCivguKfguLjguJLguLTguJ7guIfguKnguYwg4Lio4Lij4Li14Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Lin4Li44LiS4Li04Lin4Lix4LiS4LiZ4LmMIOC4reC4o+C4uOC4k+C4l+C4reC4hw0KK+C4p+C4uOC4kuC4tOC4quC4siDguJrguLjguKnguKHguIfguITguKUNCivguKfguLjguJLguLTguYTguIHguKMg4Lit4Li44LiX4Lix4Lii4Lin4Lix4LiS4LiZ4Lib4Lij4Li14LiK4LiyDQor4Lin4LmC4Lij4LiK4LiyIOC4leC4uOC4h+C4hOC4sOC5gOC4qOC4o+C4k+C4tQ0KK+C4p+C5hOC4peC4nuC4oyDguJTguLXguJbguLLguKfguKMNCivguKfguYTguKXguKXguLHguIHguKnguJPguYwg4LmA4LiI4Lij4Li04LiN4Lit4Lix4LiE4Lin4Liq4Li44LiCDQor4LmA4Lin4LiKIOC4l+C4reC4h+C5gOC4o+C4t+C4reC4hw0KK+C5gOC4p+C4k+C4tOC4gSDguIjguIfguYDguIjguKPguLTguI0NCivguYDguKfguKrguJfguYzguYHguKXguJnguJTguYwg4LiU4Li1DQor4LmA4Lin4Li14Lii4LiH4Lif4LmJ4LiyIOC4hOC4uOC5ieC4oeC5hOC4nuC4l+C4ueC4peC4ouC5jA0KK+C5gOC4p+C5ieC4h+C4ruC4hyDguYHguIvguYjguIHguLHguIcNCivguYHguKfguKcg4Lit4LmI4Lit4LiZ4Lil4Liw4Lih4Li54LilDQor4LmB4Lin4Lin4LiV4LiyIOC4o+C4reC4lOC4hOC4peC4reC4h+C4leC4seC4mQ0KK+C5geC4p+C4p+C5g+C4iCDguYHguIvguYjguJrguYnguLLguIcNCivguYTguKfguJHguLnguKPguKLguYwg4Lib4Lij4Lix4LiK4LiN4Liy4Lie4LiH4Lio4LmM4Lie4Lix4LiZ4LiY4LmMDQor4LmE4Lin4LiiIOC5gOC4m+C5ieC4suC4l+C4reC4hw0KK+C5hOC4p+C4p+C4tOC4l+C4ouC5jCDguYDguKvguKXguYjguLLguKfguKPguKfguLTguJfguKLguYwNCivguKjguIHguLjguJnguJXguKXguLIg4Lij4Lix4LiB4Lip4Liy4Liq4Lix4LiV4Lii4LmMDQor4Lio4LiI4Li14Lie4LijIOC4reC4tOC4quC4o+C4tOC4ouC4sOC5gOC4quC4o+C4teC4geC4uOC4pQ0KK+C4qOC4meC4tOC4qeC4siDguJnguLHguKLguJjguJnguLTguIoNCivguKjguKPguIrguLHguKIg4LmA4LiB4Li14Lii4Lij4LiV4Li04LiK4Lix4Lii4Lin4Li44LiS4Li0DQor4Lio4Lij4LiK4Lix4LiiIOC4o+C4seC4qOC4oeC4tOC4l+C4seC4lQ0KK+C4qOC4o+C4oyDguJjguKPguKPguKHguJbguLjguJXguLQNCivguKjguKPguKjguLTguKXguJvguYwg4Lie4Lil4LmA4LiV4LiK4LiyDQor4Lio4Lij4Lix4LiN4LiN4LiyIOC5guC4nuC4mOC4tOC5jOC5geC4geC5ieC4pw0KK+C4qOC4o+C4seC4k+C4jeC4siDguIjguIfguJnguKPguLHguIfguKrguLTguJkNCivguKjguKPguLHguJPguKLguLIg4Lin4LiH4Lio4LmM4Lia4LiyDQor4Lio4Lij4Lix4LiT4Lii4LmMIOC5gOC4mOC4teC4ouC4o+C4qOC4tOC4peC4suC4geC4uOC4pQ0KK+C4qOC4o+C4seC4l+C4mOC4siDguJfguK3guIfguKfguLjguJLguLTguJ7guLHguJnguJjguYwNCivguKjguKPguLLguKDguKPguJPguYwg4Lib4Lij4Li14LiK4LiyDQor4Lio4Lij4Liy4Lii4Li44LiX4LiYIOC4quC4suC4quC4meC4tOC4lw0KK+C4qOC4o+C4suC4p+C4uOC4kuC4tCDguIjguLTguJnguLLguJXguLjguJkNCivguKjguKPguLLguKfguLjguJgg4LiU4LmI4Liy4LiZ4LmA4Lie4LmH4LiK4Lij4LiU4Liz4Lij4LiHDQor4Lio4Lij4Liy4Lin4Li44LiYIOC4quC4oeC4seC4ouC5gOC4l+C4reC4lOC4qOC4seC4geC4lOC4tOC5jA0KK+C4qOC4o+C4tOC4meC4lOC4siDguJvguLHguKrguJnguLDguIjguLDguYLguJkNCivguKjguKPguLTguJnguJfguLTguJ7guKLguYwg4LiW4LmJ4Liz4LiX4Li04Lih4LiX4Lit4LiHDQor4Lio4Lij4Li04LiZ4Lii4LiyIOC4quC4q+C4quC4tOC4l+C4mOC4tOC4p+C4seC4kuC4meC5jA0KK+C4qOC4o+C4tSDguYDguJzguYjguLLguJfguK3guIfguIjguLXguJkNCivguKjguKPguLXguIHguLHguJnguKLguLIg4LmC4Lia4Lin4LmM4Liq4Li44Lin4Lij4Lij4LiTDQor4Lio4Lij4Li14LiI4Lix4LiZ4LiX4LiZ4LmMIOC4p+C5iOC4reC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4qOC4o+C4teC4iOC4seC4meC4l+C4o+C5jCDguKLguLTguJnguJTguLXguK3guLHguJkNCivguKjguKPguLXguIjguLTguJXguJXguYwg4Liq4Li44LiK4Liy4LiV4Li04Liq4Li44LiY4Liy4LiY4Lij4Lij4LihDQor4Lio4Lij4Li14LiK4Liy4LiV4Li0IOC4quC4uOC4oOC4suC4qeC4tOC4lQ0KK+C4qOC4o+C4teC4l+C4reC4hyDguJ7guLnguKXguJfguKPguLHguJ7guKLguYwNCivguKjguKPguLXguJjguLTguIrguLIg4LiX4Lit4LiH4Lit4Li04LiZ4LiX4Lij4LmMDQor4Lio4Lij4Li14LiZ4Lin4LilIOC4iOC4seC4meC4l+C4o+C5jOC4quC4uOC4gg0KK+C4qOC4o+C4teC4meC4p+C4pSDguJfguLjguKHguYDguJfguLXguYjguKLguIcNCivguKjguKPguLXguJnguKfguKUg4LmA4Lih4LiG4Lir4LmI4Lin4LiHDQor4Lio4Lij4Li14LiZ4Lin4LilIOC4quC4uOC4guC4quC4reC4suC4lA0KK+C4qOC4o+C4teC4meC4suC4o+C4tSDguYHguIvguYjguYDguK7guIcNCivguKjguKPguLXguJvguKPguLDguKDguLIg4LiB4Lil4Li04LmI4LiZ4Liq4Lix4LiH4LiC4LmMDQor4Lio4Lij4Li14Lib4Lij4Liw4Lig4LiyIOC5geC4quC4h+C5gOC4meC4leC4ow0KK+C4qOC4o+C4teC4m+C4o+C4suC4iuC4jeC5jCDguKrguLjguJfguLHguKjguJnguKjguLbguIHguKnguLINCivguKjguKPguLXguJ7guKMg4Lih4Liy4Lil4Liw4Lin4Li04LiK4Lix4LiiDQor4Lio4Lij4Li14Lie4Lix4LiK4Lij4LiyIOC4qOC4uOC4oOC4o+C4p+C4o+C4o+C4kw0KK+C4qOC4o+C4teC4oeC4suC4peC4siDguIHguKXguLXguJrguIHguKHguKUNCivguKjguKPguLXguKPguLHguJXguJnguLIg4Lij4Lit4LiU4LiU4Li1DQor4Lio4Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC4muC4o+C4o+C4ouC4h+C4geC4sOC5gOC4quC4meC4siDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Lio4Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC4quC4seC4h+C4guC5jOC4nuC4seC4meC4mOC5jA0KK+C4qOC4o+C4teC4peC4seC4lOC4lOC4siDguYLguJvguYrguLDguJrguLjguI3guIrguLfguYjguJkNCivguKjguKPguLXguKfguKPguKPguJMg4LiK4Li54LiT4Lij4LiH4LiE4LmMDQor4Lio4Lij4Li14Lin4Lij4Lij4LiTIOC4o+C4seC4leC4meC5gOC4qOC4o+C4qeC4kA0KK+C4qOC4o+C4teC4p+C4o+C4o+C4kyDguK3guLTguJnguJfguKPguLHguJXguJnguYwNCivguKjguKPguLXguKfguKXguLUg4Lil4Li04LmI4Lih4Lih4Lij4LiB4LiVDQor4Lio4Lij4Li14Lin4Li04LiK4Lix4LiiIOC4meC4geC4ouC4tOC5ieC4oQ0KK+C4qOC4o+C4teC4p+C4tOC4peC4seC4oiDguKrguIfguKfguJnguKrguLHguJXguKLguYwNCivguKjguKPguLXguKfguLTguYTguKUg4Liq4Li44LiC4Li44Lih4LiB4Liy4LiN4LiI4LiZ4LiwDQor4Lio4Lij4Li14Lio4Lix4LiB4LiU4Li04LmMIOC4quC4uOC4p+C4o+C4o+C4k+C4qOC4seC4geC4lOC4tOC5jOC4qOC4o+C4tQ0KK+C4qOC4o+C4teC4quC4geC4uOC4pSDguKjguKPguLXguJXguLDguJvguLHguJnguKLguYwNCivguKjguKPguLXguKrguKHguJrguLnguKPguJPguYwg4LmA4Lie4LiK4Lij4Lih4LmI4Lin4LiHDQor4Lio4Lij4Li14Liq4Lih4LijIOC4nuC4h+C4qOC4suC4p+C4peC4teC4o+C4seC4leC4meC5jA0KK+C4qOC4o+C4teC4quC4oeC4seC4oiDguKfguLTguJrguLnguKXguKLguLLguJnguJnguJfguYwNCivguKjguKPguLXguKrguKfguLHguKrguJTguLTguYwg4LiY4LiZ4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lio4Lij4Li14Liq4Lin4Liy4Liq4LiU4Li04LmMIOC4meC5ieC4reC4ouC4nuC4seC4meC4mOC4uOC5jA0KK+C4qOC4o+C4teC4quC4reC4suC4lCDguYHguIvguYjguK7guLHguYnguIcNCivguKjguKPguLXguKrguLjguIIg4LiB4Lil4Li04LmI4LiZ4Lia4Lix4LinDQor4Lio4Lij4Li14Liq4Li44LiK4Liy4LiV4Li0IOC4l+C4reC4h+C5hOC4peC5iQ0KK+C4qOC4o+C4teC4quC4uOC4lOC4siDguYHguJTguIfguJTguLXguYDguKXguLTguKgNCivguKjguKPguLXguKrguLjguJTguLIg4Lih4Lix4LmI4LiZ4LiE4LiH4Liq4LiB4Li44LilDQor4Lio4Lij4Li14Liq4Li44LiU4LiyIOC4quC4uOC4p+C4o+C4o+C4k+C4geC4tOC4iOC4p+C4seC4kuC4meC5jA0KK+C4qOC4o+C4teC4quC4uOC4meC4tSDguK3guLHguKjguKfguJ7guLTguKDguJ4NCivguKjguKPguLXguKrguLjguKHguLLguKXguKLguYwg4LiH4Liy4Lih4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiB4Li04LiIDQor4Lio4Lij4Li14Liq4Li44Lin4Lij4Lij4LiTIOC4o+C4uOC4k+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4qOC4o+C4teC4reC4reC4mSDguJfguK3guIfguITguLMNCivguKjguKPguLXguK3guLjguJTguKEg4LmA4LiU4LiK4Liw4Lio4Li04Lij4Li0DQor4Lio4Lij4Li14LmA4LiI4Lij4Li04LiNIOC4o+C4reC4muC4hOC4reC4mg0KK+C4qOC4o+C4teC5gOC4nuC5h+C4jSDguJfguKPguLHguJ7guKLguYzguKHguJnguIrguLHguKINCivguKjguKPguLXguYDguKPguLfguK3guJkg4Lib4Lij4Liw4Lii4Li54Lij4Lie4Lij4Lir4LihDQor4Lio4Lij4Li14LmB4LiEIOC4l+C4o+C4seC4nuC4ouC5jOC4lOC4tQ0KK+C4qOC4o+C4teC5hOC4l+C4oiDguKjguKPguLXguYDguKfguJfguKLguYzguJrguJTguLUNCivguKjguKPguLjguJUg4LiE4Lij4Lia4LiY4Li14Lij4Lin4LiH4Lio4LmMDQor4Lio4Lil4Li04Lip4LiyIOC4p+C4o+C4o+C4k+C4geC4tOC4iA0KK+C4qOC4qOC4p+C4o+C4o+C4kyDguKTguIHguKnguYzguKrguLjguKPguLTguKLguJ7guLHguJnguJjguYwNCivguKjguKjguLTguIrguKUg4LiI4Lij4Li54LiN4LmA4Lil4Li04Lio4Liq4Li04LiX4LiY4Li04Lic4LilDQor4Lio4Lio4Li04LiY4LijIOC4hOC4s+C4quC4seC4k+C4q+C5jA0KK+C4qOC4qOC4tOC4mOC4oyDguYTguIrguKLguKPguLTguJvguLkNCivguKjguKjguLTguJjguKMg4LiY4Lij4Lij4Lih4Lie4Lix4LiB4LiV4Lij4LiB4Li44LilDQor4Lio4Lio4Li04LiY4LijIOC4nuC4o+C4suC4q+C4oeC4k+C4sOC4meC4seC4meC4l+C4meC5jA0KK+C4qOC4qOC4tOC4mOC4oyDguKPguLjguIjguLLguJnguLjguKPguLHguIHguKnguYwNCivguKjguKjguLTguJjguKMg4Lio4Lij4Li14Lit4LiZ4Li44Lie4Lix4LiZ4LiY4Li44LmMDQor4Lio4Lio4Li04LiY4LijIOC4quC4uOC4o+C4tOC4ouC4suC4nuC4ow0KK+C4qOC4qOC4tOC4mOC4oyDguYHguK3guJnguK3guLbguYnguIcNCivguKjguKjguLTguJ7guKMg4LiY4LiZ4LmC4LiB4Lin4Li04LiXDQor4Lio4Lio4Li04Lig4Liy4Liq4LmMIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4quC4uOC4gg0KK+C4qOC4qOC4tOC4peC4seC4geC4qeC4k+C5jCDguYDguIrguLLguKfguYzguJ7guLLguJnguJnguJfguYwNCivguKjguKjguLTguKfguLTguKHguKUg4LmC4LiB4Liq4Li04Lii4LiB4Li44LilDQor4Lio4Lio4Li04LmA4Lie4LmH4LiNIOC4p+C4o+C4o+C4k+C4p+C4tOC4iOC4tOC4leC4ow0KK+C4qOC4seC4geC4lOC4siDguITguKXguYnguLLguKLguKrguLLguITguKMNCivguKjguLHguIHguJTguLIg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lio4Lix4LiB4LiU4LiyIOC4mOC4o+C4o+C4oeC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4qOC4seC4geC4lOC4siDguJ7guIfguKnguYzguJzguKUNCivguKjguLHguIHguJTguLIg4LmB4Lih4LmJ4LiZ4Liq4Li44Lin4Lij4Lij4LiTDQor4Lio4Lix4LiB4LiU4LiyIOC4p+C4tOC4quC4uOC4l+C4mOC4tOC4p+C4h+C4qOC5jA0KK+C4qOC4seC4geC4lOC4siDguKrguLjguKPguLTguKLguLDguJ7guKPguIrguLHguKLguIHguLjguKUNCivguKjguLHguIHguJTguLIg4LmA4Lit4Li14LmI4Lii4Lih4Lit4Lij4LmI4Liy4Lih4Lio4Lij4Li1DQor4Lio4Lix4LiB4LiU4Li04LmM4LiK4Lix4LiiIOC4hOC4oeC4geC4pOC4qg0KK+C4qOC4seC4geC4lOC4tOC5jOC4iuC4seC4oiDguIrguYjguK3guIrguLHguKLguJ7guKTguIHguKnguYwNCivguKjguLHguIHguJTguLTguYzguIrguLHguKIg4LiU4Liz4Lij4Li04Lir4LmM4LiH4Liy4LihDQor4Lio4Lix4LiB4LiU4Li04LmM4LiK4Lix4LiiIOC4l+C4seC4geC4guC4tOC4jeC5gOC4quC4luC4teC4ouC4ow0KK+C4qOC4seC4geC4lOC4tOC5jOC4iuC4seC4oiDguJvguLHguI3guI3guLLguKHguLXguYDguKrguKHguK0NCivguKjguLHguIHguJTguLTguYzguIrguLHguKIg4LmC4Lie4LiY4Li04LmM4Lib4Lij4Li04Liq4Li44LiX4LiY4Li04LmMDQor4Lio4Lix4LiB4LiU4Li04LmM4LiK4Lix4LiiIOC4pOC4geC4qeC5jOC5gOC4geC4qeC4oQ0KK+C4qOC4seC4geC4lOC4tOC5jOC4iuC4seC4oiDguKfguLTguKPguLTguKLguLDguKrguLjguILguKrguLTguJnguJjguLjguYwNCivguKjguLHguIHguJTguLTguYzguIrguLHguKIg4Liq4Li04Lij4Li04Lib4Lij4Liw4Lig4Liy4Lie4Lij4Lij4LiTDQor4Lio4Lix4LiB4LiU4Li04LmM4LiK4Lix4LiiIOC5gOC4q+C4peC4teC4ouC4h+C4geC4reC4muC4geC4tOC4iA0KK+C4qOC4seC4geC4lOC4tOC5jOC4iuC4seC4oiDguYDguK3guLfguYnguK3guKrguLjguJnguJfguKPguJ7guLLguJnguLTguIoNCivguKjguLHguIHguJTguLTguYzguIrguLLguKIg4Lil4Li04LiC4Li04LiV4LiV4Lij4Liw4LiB4Li44LilDQor4Lio4Lix4LiB4LiU4Li04LmM4LiU4LiyIOC5hOC4iuC4ouC4suC4meC4uOC4p+C4h+C4qOC5jA0KK+C4qOC4seC4geC4lOC4tOC5jOC4lOC4siDguK3guLTguIfguITguKfguLDguKPguLANCivguKjguLHguIHguJTguLTguYzguKLguLHguJnguJXguYwg4LiK4Li54LmD4LiIDQor4Lio4Lix4LiB4LiU4Li04LmM4Lio4Li04Lij4Li04Lih4LiyIOC4guC4s+C5gOC4reC4teC5iOC4ouC4oQ0KK+C4qOC4seC4geC4lOC4tOC5jOC4quC4tOC4l+C4mOC4tOC5jCDguYDguJbguLLguJfguK3guIcNCivguKjguLHguIHguJTguLTguYzguKrguLTguJfguJjguLTguYwg4LmA4Lir4Lih4LiB4Li04LiV4LiV4Li04LmA4LiB4Li14Lii4Lij4LiV4Li04LmMDQor4Lio4Lix4LiB4LiU4Li04LmM4LmE4Liq4LinIOC4l+C4reC4h+C4o+C4seC4leC4meC5jA0KK+C4qOC4seC4geC4lOC4tOC5jCDguJ7guLbguYjguIfguYDguIjguKPguLTguI0NCivguKjguLHguIHguJTguLUg4LmA4LiJ4Li14Lii4Lia4LmB4Lir4Lil4LihDQor4Lio4Lix4LiH4LiB4LijIOC4oOC4ueC4p+C5gOC4iOC4o+C4tOC4jQ0KK+C4qOC4seC4meC4quC4meC4teC4ouC5jCDguJXguLDguYLguJ7guJnguJfguK3guIcNCivguKjguLHguJnguKrguJnguLXguKLguYwg4Lin4Li04LiK4Lix4Lii4LiU4Li04Lip4LiQDQor4Lio4Lix4Lil4Lii4Lin4Li04LiX4Lii4LmMIOC4qOC4tOC4o+C4tOC4oeC4k+C4keC4pQ0KK+C4qOC4suC4meC4leC4tCDguK3guLHguIjguIjguLTguKHguLLguIHguKMNCivguKjguLLguKfguLTguJXguKPguLUg4Lig4Lin4Liy4LiV4Li04LmA4Lio4Lij4Lip4LiQ4LmMDQor4Lio4Li04LiZ4Li04LiV4Lii4LmMIOC4reC4k+C4tOC4quC4seC4meC4keC5jA0KK+C4qOC4tOC4o+C4nuC4oyDguKjguLTguKPguLTguJrguLjguI3guKPguLHguIHguKnguLINCivguKjguLTguKPguLAg4Liq4LmC4LiV4LiZDQor4Lio4Li04Lij4Liy4LiZ4Li44LiKIOC4quC4uOC4p+C4o+C4o+C4k+C5guC4iuC4leC4tA0KK+C4qOC4tOC4o+C4tCDguYTguIHguKPguKrguKHguIjguLTguJXguKMNCivguKjguLTguKPguLQg4LiK4Lix4Lii4Liq4Lix4LiZ4LiY4LiZ4LiwDQor4Lio4Li04Lij4Li0IOC4mOC4o+C4o+C4oeC4quC4uOC4o+C4tOC5gOC4iuC4qeC4kOC5jA0KK+C4qOC4tOC4o+C4tCDguJzguKXguLTguJnguIHguLnguKUNCivguKjguLTguKPguLQg4Lih4Lix4LiY4Lii4Lih4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lio4Li04Lij4Li0IOC4p+C4h+C4qOC5jOC4ieC4tOC5iOC4h+C4ouC4t+C4meC4ouC4hw0KK+C4qOC4tOC4o+C4tCDguYDguKjguKfguJXguKPguLHguIHguJUNCivguKjguLTguKPguLQg4Lir4Lin4Liy4LiZ4Liq4LiZ4Li04LiXDQor4Lio4Li04Lij4Li04LiB4Lix4LiN4LiN4LiyIOC5geC4o+C4oeC4p+C4seC4peC4ouC5jA0KK+C4qOC4tOC4o+C4tOC4geC4uOC4pSDguIjguLTguJnguJXguJnguLLguIfguIHguLnguKMNCivguKjguLTguKPguLTguIHguLjguKUg4Lij4Lix4LiB4LmA4LiB4Li14Lii4Lij4LiV4Li04Lii4LioDQor4Lio4Li04Lij4Li04LiC4Lin4Lix4LiNIOC5geC4i+C5iOC5gOC4ruC4sg0KK+C4qOC4tOC4o+C4tOC4ieC4suC4oiDguJ7guIfguKjguYzguKrguLjguJvguKPguLDguJTguLTguKnguJDguYwNCivguKjguLTguKPguLTguIrguLHguKIg4LiE4Li54Lit4LiZ4Lix4LiZ4LiV4LmM4LiB4Li44LilDQor4Lio4Li04Lij4Li04LiK4Lix4LiiIOC5geC4i+C5iOC5gOC4iOC4teC4ouC4hw0KK+C4qOC4tOC4o+C4tOC4iuC4seC4oiDguJnguKDguLLguJrguKPguLTguKPguLHguIHguKnguYwNCivguKjguLTguKPguLTguIrguLHguKIg4Lie4Li04LiZ4Li04LiI4Lin4Lij4LiB4Li44LilDQor4Lio4Li04Lij4Li04LiK4Lix4LiiIOC4peC4tOC5ieC4oeC5gOC4peC4tOC4qOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4qOC4tOC4o+C4tOC4iuC4seC4oiDguKjguLjguKDguKPguLHguIrguJXguIHguLLguKMNCivguKjguLTguKPguLTguIrguLHguKIg4Lir4LiH4Lip4LmM4Lin4Li04LiX4Lii4Liy4LiB4LijDQor4Lio4Li04Lij4Li04LiT4Lix4LiQIOC5g+C4iOC4reC4suC4o+C4tQ0KK+C4qOC4tOC4o+C4tOC4l+C4tOC4nuC4ouC5jCDguJ7guKPguKvguKHguKrguIHguLjguKXguIrguLHguKINCivguKjguLTguKPguLTguJnguJfguKMg4LiI4LiH4LmA4Liq4LiW4Li14Lii4LijDQor4Lio4Li04Lij4Li04LiZ4LiX4Lij4LmMIOC4meC4tOC4oeC4oeC4suC4meC5gOC4q+C4oeC4tOC4meC4l+C4o+C5jA0KK+C4qOC4tOC4o+C4tOC4meC4mOC4oyDguJfguK3guIfguKrguLjguIINCivguKjguLTguKPguLTguJnguLHguJnguJfguYwg4LmB4LiL4LmI4Lit4Li24LmI4LiHDQor4Lio4Li04Lij4Li04LiZ4Lix4LiZ4LiX4LmMIOC5gOC4reC4quC4uOC4iOC4tOC4meC4leC5jA0KK+C4qOC4tOC4o+C4tOC4meC4suC4o+C4liDguJXguLTguKnguKLguLLguIfguIHguLnguKMNCivguKjguLTguKPguLTguJrguLnguKPguJPguYwg4LmA4Lil4LmH4LiB4Lic4Lil4Li04Lic4LilDQor4Lio4Li04Lij4Li04Lie4LiH4Lio4LmMIOC4reC4tOC4meC4l+C4o+C5jOC4muC4s+C4o+C4uOC4hw0KK+C4qOC4tOC4o+C4tOC4nuC4h+C4qeC5jCDguJfguLHguJrguJfguLTguKENCivguKjguLTguKPguLTguJ7guIfguKnguYwg4Lin4LiH4Lio4LmM4Lie4Li04Lih4Lie4LmMDQor4Lio4Li04Lij4Li04Lie4LiH4Lip4LmMIOC4reC4uOC4l+C4seC4ouC4mOC4meC4suC4o+C4seC4geC4qeC5jA0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguIHguLLguKjguKrguLjguKfguKPguKPguJMNCivguKjguLTguKPguLTguJ7guKMg4LiC4Li44LiZ4LmC4Lit4Lip4LiQDQor4Lio4Li04Lij4Li04Lie4LijIOC4iOC4seC4meC4geC4peC4seC4lA0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguYDguIjguKPguLTguI3guIHguLTguIjguJ7guLTguKHguKUNCivguKjguLTguKPguLTguJ7guKMg4LiK4Liy4LiV4Li04Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Lio4Li04Lij4Li04Lie4LijIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguJTguLPguKPguIfguKfguIfguKjguYzguKjguLTguKPguLQNCivguKjguLTguKPguLTguJ7guKMg4LmA4LiV4LmH4Lih4Liq4Li44LiZ4LiX4LijDQor4Lio4Li04Lij4Li04Lie4LijIOC5gOC4l+C4teC4ouC4meC4mOC4o+C4o+C4oeC4iuC4suC4leC4tA0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguJnguLTguKXguJ7guKPguLLguKcNCivguKjguLTguKPguLTguJ7guKMg4Lib4Lij4Liw4Lii4Li44LiB4LiV4LmM4Lin4LiH4Lio4LmMDQor4Lio4Li04Lij4Li04Lie4LijIOC4nuC4h+C4qeC5jOC4iuC4seC4ouC4m+C4o+C4sOC4l+C4teC4mw0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguJ7guLLguJnguLTguIrguKXguYnguK3guYDguIjguKPguLTguI0NCivguKjguLTguKPguLTguJ7guKMg4Lig4Li54Lih4Li04Lit4Lih4LijDQor4Lio4Li04Lij4Li04Lie4LijIOC4ouC4seC4meC4leC5jOC4leC4o+C4sOC4geC4ueC4pQ0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguYDguKPguLfguK3guIfguJjguKfguLHguIrguKjguLTguKXguJsNCivguKjguLTguKPguLTguJ7guKMg4LmA4Lil4Li04Lio4LiY4LiZ4Liy4Lic4LilDQor4Lio4Li04Lij4Li04Lie4LijIOC4p+C4seC4peC4peC4oOC4qOC4tOC4o+C4tA0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguKjguKPguLXguKrguLTguIfguKvguYzguIrguLHguKINCivguKjguLTguKPguLTguJ7guKMg4Liq4Lil4Lix4LiaDQor4Lio4Li04Lij4Li04Lie4LijIOC4quC4uOC4guC5gOC4iOC4o+C4tOC4jeC4meC4uOC4geC4ueC4pQ0KK+C4qOC4tOC4o+C4tOC4nuC4oyDguYHguKrguIfguYDguJ7guYfguIrguKPguYwNCivguKjguLTguKPguLTguJ7guKMg4LmD4Lir4LmJ4Lit4Li44LiU4Lih4LiB4Liy4LiN4LiI4LiZ4Lil4Liy4LigDQor4Lio4Li04Lij4Li04Lie4LijIOC4reC4suC4o+C4oeC4ouC5jOC4quC4uOC4gg0KK+C4qOC4tOC4o+C4tOC4nuC4o+C4o+C4kyDguIHguKXguLTguYjguJnguKrguKfguLHguKrguJTguLTguYwNCivguKjguLTguKPguLTguJ7guKPguKPguJMg4LiY4Lij4Lij4Lih4LiE4Li44Lis4Lir4LmMDQor4Lio4Li04Lij4Li04Lie4Lij4Lij4LiTIOC4quC4uOC4guC4q+C4tOC4o+C4seC4jeC4geC4tOC4iA0KK+C4qOC4tOC4o+C4tOC4nuC4seC4kuC4meC4siDguKfguLTguYDguKjguKnguYHguJ7guJfguKLguLINCivguKjguLTguKPguLTguJ7guLHguJnguJjguYwg4Lil4Lix4LiB4LiC4LiT4Liy4LiZ4Li44LiB4Li44LilDQor4Lio4Li04Lij4Li04Lig4Lij4LiT4LmMIOC5gOC4q+C4peC4teC5iOC4ouC4oeC4qOC4tOC4o+C4tOC4p+C4seC4kuC4meC4sg0KK+C4qOC4tOC4o+C4tOC4oeC4siDguITguLjguYnguKHguYLguJUNCivguKjguLTguKPguLTguKHguLIg4LmA4Lif4Li34LmI4Lit4LiH4LiC4LiI4LijDQor4Lio4Li04Lij4Li04Lih4LiyIOC4reC4tOC4meC4mOC4s+C4o+C4h+C4hOC5jA0KK+C4qOC4tOC4o+C4tOC4o+C4seC4geC4qeC5jCDguJrguLjguI3guIrguYjguKfguKLguYDguKHguJXguJXguLINCivguKjguLTguKPguLTguKPguLHguJXguJnguYwg4LmA4LiC4LmH4Lih4LiZ4Liy4LiEDQor4Lio4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMIOC5geC4i+C5iOC4geC4tOC4oQ0KK+C4qOC4tOC4o+C4tOC4o+C4seC4leC4meC5jCDguYDguJfguJ7guJnguLTguKHguLTguJXguKMNCivguKjguLTguKPguLTguKPguLHguJXguJnguYwg4Lie4Lij4Lie4LiH4Lio4LmM4Lit4LiY4Li04LiE4LihDQor4Lio4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMIOC4o+C4seC4geC4mOC4o+C4o+C4oQ0KK+C4qOC4tOC4o+C4tOC4o+C4seC4leC4meC5jCDguKjguKPguLXguJnguLLguITguITguLMNCivguKjguLTguKPguLTguKPguLHguJXguJnguYwg4LmB4Liq4LiH4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lio4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMIOC5gOC4reC4teC5iOC4ouC4oeC5gOC4p+C4ig0KK+C4qOC4tOC4o+C4tOC4peC4seC4geC4qeC4k+C5jCDguIjguJXguLjguYDguKrguJkNCivguKjguLTguKPguLTguKXguLHguIHguKnguJPguYwg4LiV4Lix4LmJ4LiH4LmA4LiJ4Lil4Li04Lih4LiB4Li44LilDQor4Lio4Li04Lij4Li04Lil4Lix4LiB4Lip4LiT4LmMIOC4m+C4seC5ieC4meC4muC4s+C4o+C4uOC4h+C4geC4tOC4iA0KK+C4qOC4tOC4o+C4tOC4peC4seC4geC4qeC4k+C5jCDguKPguLjguIjguLTguYLguIHguYTguKjguKINCivguKjguLTguKPguLTguKXguLHguIHguKnguJPguYwg4Liq4Liy4LiE4Lij4Lij4Lix4LiV4LiZ4LiB4Li44LilDQor4Lio4Li04Lij4Li04Lil4Lix4LiB4Lip4LiT4LmMIOC5gOC4reC4geC4p+C4h+C4hOC5jA0KK+C4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguYDguIHguLTguJTguKfguLHguJLguJnguLINCivguKjguLTguKPguLTguKfguKPguKPguJMg4LiI4Liy4Lij4Li44LiI4Lij4LiTDQor4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTIOC4iuC4uOC4leC4tOC4iOC4suC4leC4uOC4o+C4meC4leC5jA0KK+C4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguJTguLLguKfguK3guLjguJTguKENCivguKjguLTguKPguLTguKfguKPguKPguJMg4LiX4Lit4LiH4Lie4Li54LilDQor4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTIOC4muC4seC4p+C4qOC4o+C4tQ0KK+C4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguJ7guKPguLDguYDguJfguJ4NCivguKjguLTguKPguLTguKfguKPguKPguJMg4Lih4Lir4Liy4Lio4Lix4LiB4LiU4Li04LmM4Lio4Li04Lij4Li0DQor4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTIOC5gOC4peC4tOC4qOC4quC4tOC4meC4reC4uOC4lOC4oQ0KK+C4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguKjguKPguLXguJrguLHguKfguYDguJzguLfguYjguK3guJkNCivguKjguLTguKPguLTguKfguKPguKPguJMg4Liq4Lix4LiZ4LiV4Li04LmA4Lin4LiK4LiK4LiB4Li44LilDQor4Lio4Li04Lij4Li04Lin4Lij4Lij4LiTIOC5geC4quC4h+C4quC4uOC4o+C4teC4ouC5jA0KK+C4qOC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguK3guLTguJnguJfguJjguLTguYzguKrguLHguJPguKvguYwNCivguKjguLTguKPguLTguKfguLHguJLguJnguYwg4LmB4LiL4LmI4LmC4Lil4LmJ4LinDQor4Lio4Li04Lij4Li04Lin4Lix4Lil4Lig4LmMIOC4lOC4suC4o+C4suC4geC4oyDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Lio4Li04Lij4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4iOC4h+C4leC4o+C4sOC4geC4ueC4pQ0KK+C4qOC4tOC4o+C4tOC4qOC4seC4geC4lOC4tOC5jCDguYLguKPguIjguJnguYzguKTguJfguJjguLLguIHguKMNCivguKjguLTguKPguLTguKrguLjguIIg4LmA4Lij4Li14LmI4Lii4Lin4LmA4Lij4Li34Lit4LiH4Liq4Li44LiCDQor4Lio4Li04Lij4Li04Lit4LijIOC5gOC4reC4teC4ouC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4qOC4tOC4o+C4tOC5gOC4nuC5h+C4jSDguYLguIHguYDguKHguJnguYDguK3guIENCivguKjguLTguKPguLTguYDguJ7guYfguI0g4Lia4Li44LiN4LiB4Lix4LiH4Lin4Liy4LiZDQor4Lio4Li04Lij4Li04LmA4Lie4LmH4LiNIOC4quC4tOC4meC4mOC4uOC4mOC4suC4mQ0KK+C4qOC4tOC4o+C4tOC5guC4o+C4iOC4meC5jCDguKrguYLguKXguKDguLLguJ4NCivguKjguLTguKXguJvguIrguLHguKIg4LmE4LiX4Lii4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lio4Li04Lil4Lib4LmM4LiK4Lix4LiiIOC5gOC4iOC4o+C4tOC4jeC5g+C4iA0KK+C4qOC4tOC4peC4m+C4p+C4seC4mOC4meC5jCDguIrguLHguKLguJ7guLHguJLguJnguLLguKfguKPguKPguJMNCivguKjguLTguKXguLIg4Lij4Liy4LiK4Lit4Lig4Lix4LiiDQor4Lio4Li04Lin4Lie4LijIOC5gOC4geC4peC4teC4ouC4p+C4reC4o+C4o+C4hOC5gOC4lOC4ig0KK+C4qOC4tOC4p+C4nuC4oyDguKLguLTguJnguJTguLUNCivguKjguLTguKfguKXguLUg4LiI4Lix4LiZ4LiX4Lih4Liy4LioDQor4Lio4Li04Lin4Liw4Lie4LilIOC4h+C4suC4oeC4mOC4meC4p+C5guC4o+C4l+C4seC4og0KK+C4qOC4tOC4p+C4suC4nuC4oyDguYHguKLguIfguITguLMNCivguKjguLTguKfguLTguIHguLLguJnguJXguLTguYwg4LmE4Lin4LiI4Lij4Lij4Lii4LiyDQor4Lio4Li04Lip4LiO4LmMIOC4ieC4seC4meC4l+C4suC4o+C4tOC4ouC4sA0KK+C4qOC4teC4peC4p+C4seC4lSDguK3guJnguLDguJjguKPguKPguKHguKrguKHguJrguLHguJXguLQNCivguKjguLjguILguJjguLLguJ7guLHguJLguJnguYwg4LiB4Lix4LiT4LiR4LmM4LiK4Li54Liq4Li04LiZDQor4Lio4Li44Lie4Li04Lij4Lix4LiV4LiZ4LmMIOC4quC4s+C4o+C4suC4jeC4quC4uOC4guC4o+C4seC4leC4meC5jA0KK+C4qOC4uOC4oOC4geC4suC4jeC4iOC4meC5jCDguYHguKrguKfguIfguKjguLHguIHguJTguLTguYwNCivguKjguLjguKDguIHguLTguIgg4Lie4Lix4LiZ4LiY4LmM4Lia4Li44LiN4LmA4LiB4Li04LiUDQor4Lio4Li44Lig4LiB4Li04LiIIOC4reC4tOC4h+C4reC4meC4uOC4o+C4seC4geC4qeC5jOC4quC4geC4uOC4pQ0KK+C4qOC4uOC4oOC4iuC4seC4oiDguYHguIHguYnguKfguKHguLXguIrguLHguKINCivguKjguLjguKDguIrguLHguKIg4LiI4Li04LiV4Lin4Li04Liq4Li44LiX4LiY4Li04LmM4Lie4LiH4Lio4LmMDQor4Lio4Li44Lig4LiK4Lix4LiiIOC5geC4i+C5iOC4iOC4tuC4hw0KK+C4qOC4uOC4oOC4iuC4seC4oiDguJXguLjguKXguKfguKPguKPguJjguJnguLANCivguKjguLjguKDguIrguLHguKIg4LiZ4Li04LmI4Lih4LiZ4Lin4LilDQor4Lio4Li44Lig4LiK4Lix4LiiIOC4nuC4h+C4qOC5jOC4iuC4seC4ouC4quC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4qOC4uOC4oOC4iuC4seC4oiDguKHguLHguYjguIfguYDguIHguLXguKLguKPguJXguLTguKrguIHguLjguKUNCivguKjguLjguKDguIrguLHguKIg4Lik4LiX4LiY4Li04LmM4Lil4Liy4Lii4LiyDQor4Lio4Li44Lig4LiK4Lix4LiiIOC4p+C4tOC4p+C4seC4kuC4meC4oeC4h+C4hOC4peC4geC4uOC4pQ0KK+C4qOC4uOC4oOC4iuC4seC4oiDguKrguJnguK3guIfguITguLjguJMNCivguKjguLjguKDguIrguLHguKIg4LmB4Liq4LiH4Lif4LmJ4Liy4Liq4LiB4Li44Lil4LmE4LiXDQor4Lio4Li44Lig4LiK4Lix4LiiIOC4reC4tuC5ieC4h+C4quC4geC4uOC4pQ0KK+C4qOC4uOC4oOC4k+C4seC4kCDguJ7guKPguKvguKHguJ7guLTguKPguLTguKLguLLguKDguKPguJPguYwNCivguKjguLjguKDguJnguLTguJXguKLguYwg4LmC4LiK4LiE4Lij4Lix4LiV4LiZ4LiK4Lix4LiiDQor4Lio4Li44Lig4Lie4LijIOC4oeC4seC4h+C4geC4o+C4geC4suC4jeC4iOC4meC5jA0KK+C4qOC4uOC4oOC4oeC4suC4qiDguJTguYjguLLguJnguJ7guLLguJnguLTguIoNCivguKjguLjguKDguKHguLTguJXguKMg4Liq4Li44LiC4Lio4Lij4Li1DQor4Lio4Li44Lig4Lij4LiH4LiE4LmMIOC4peC4sOC5guC4p+C5ieC4iuC4seC4og0KK+C4qOC4uOC4oOC4o+C4seC4leC4meC5jCDguKLguLTguYjguIfguIHguKfguLXguKHguLLguJnguJ4NCivguKjguLjguKDguKPguLLguKDguKPguJPguYwg4Lie4Li44LiX4LiY4Lij4Lix4LiV4LiZ4LmMDQor4Lio4Li44Lig4Lik4LiB4Lip4LmMIOC4q+C4peC5iOC4reC4nuC4tOC4o+C4tOC4ouC4sOC4p+C4h+C4qOC5jA0KK+C4qOC4uOC4oOC4peC4seC4geC4qeC4k+C5jCDguYHguIvguYjguYHguJXguYkNCivguKjguLjguKDguKXguLHguIHguKnguJPguYwg4LmA4Lil4Li04Lio4Lij4Lix4LiV4LiZ4LmM4LmA4LiU4LiK4Liy4LiB4Li44LilDQor4Lio4Li44Lig4Lil4Lix4LiE4LiT4LmMIOC4oeC4teC4oeC4suC4gQ0KK+C4qOC4uOC4oOC4p+C4o+C4o+C4kyDguYDguJnguJXguLTguJjguLLguJTguLINCivguKjguLjguKDguKfguKPguKPguJMg4Liq4Li44Lin4Lij4Lij4LiT4LmA4Lil4Li04LioDQor4Lio4Li44Lig4Lin4Lix4LiS4LiZ4LmMIOC4quC4p+C4seC4quC4lOC4tOC5jOC4p+C4h+C4qOC5jA0KK+C4qOC4uOC4oOC4p+C4tOC4qCDguKrguLTguKPguLTguYDguIHguKnguKHguKrguLjguIINCivguKjguLjguKDguKnguKMg4Lie4Lij4LiI4Li04LiV4LmC4LiB4Lin4Li04LiXDQor4Lio4Li44Lig4Lit4Lij4Lij4LiWIOC4meC4seC4iOC4iOC4sOC4meC4seC4meC4l+C4meC5jA0KK+C4qOC4uOC4oOC4suC4quC4tOC4meC4tSDguIHguLHguIfguKfguLLguKXguYDguJnguLLguKfguKPguLHguJXguJnguYwNCivguKjguLjguKDguYLguIrguIQg4LiY4LiZ4Lib4Lix4LiN4LiI4Liy4Lig4Lij4LiT4LmMDQor4Lio4Li44Lij4Lie4LiH4Lip4LmMIOC4hOC4iuC4suC4iuC4teC4p+C4sA0KK+C4qOC4uOC4peC4teC4nuC4oyDguKrguLHguJnguJnguLDguIHguLTguIgNCivguYDguKjguIHguKrguKPguKMg4LiX4Lit4LiH4Lio4Lij4Li14LiE4LizDQor4LmA4Lio4Lij4Lip4LiQ4LiK4Lix4LiiIOC4qOC4seC4geC4lOC4tOC5jOC5guC4huC4qeC4tOC4lQ0KK+C5gOC4qOC4o+C4qeC4kOC4siDguIjguIfguJ7guKPguJvguKPguLDguYDguKrguKPguLTguJANCivguYDguKjguKfguJUg4Lio4Lij4Li14Lib4Lix4LiN4LiN4LiyDQor4LmC4Lio4Lig4Li04LiU4LiyIOC5gOC4leC4iuC4sOC4qOC4o+C4tOC4meC4l+C4o+C5jA0KK+C5guC4qOC4o+C4ouC4siDguKjguLjguKDguIHguKPguYHguKrguIfguJfguK3guIcNCivguKrguIHguJkg4Lih4Li14LiB4Lix4LiH4Lin4Liy4LilDQor4Liq4LiB4LiZ4LiY4LmMIOC4reC4o+C4tOC4ouC4oeC4h+C4hOC4peC4quC4geC4uOC4pQ0KK+C4quC4geC4pSDguIrguLnguYDguIHguKkNCivguKrguIHguKUg4LmA4Lib4Li14LmI4Lii4Lih4Lin4Li04Lih4LilDQor4Liq4LiB4LilIOC4peC4teC4peC4suC4guC4iOC4o+C4iOC4tOC4lQ0KK+C4quC4geC4pSDguKrguLjguKPguITguLjguJvguJXguYwNCivguKrguIHguKXguKfguKPguKPguJMg4Lin4Liy4Liq4Li04LiZ4LiZ4LiX4LmMDQor4Liq4LiB4Liy4Lin4Lij4Lix4LiV4LiZ4LmMIOC4reC4seC4hOC4hOC4teC5gOC4lOC4ig0KK+C4quC4geC4uOC4k+C4siDguKPguLjguIjguLTguYDguIHguLXguKLguKPguJXguLTguIHguLPguIjguKMNCivguKrguIHguLjguKUg4LiZ4LiE4Lij4LiK4Lix4LiiDQor4Liq4LiB4Li44LilIOC5gOC4q+C4peC4t+C4reC4h+C4reC4o+C5iOC4suC4oQ0KK+C4quC4geC4uOC4peC4o+C4seC4leC4meC5jCDguKXguLHguJfguJjguYzguKrguLHguKHguKTguJfguJjguLTguYwNCivguKrguIfguIHguKPguLLguJnguJXguYwg4LiI4Li44LiT4LiT4LiX4Lix4Lio4LiZ4LmMDQor4Liq4LiH4LiB4Lij4Liy4LiZ4LiV4LmMIOC4qOC4tOC4o+C4tOC4nuC4suC4meC4tOC4ig0KK+C4quC4h+C4hOC4o+C4suC4oSDguInguLTguKHguJ7guKrguLjguJfguJgNCivguKrguIfguITguKPguLLguKEg4Lio4Lij4Li14Liq4Li44LiCDQor4Liq4LiH4LiaIOC4h+C4suC4oeC4nOC5iOC4reC4hw0KK+C4quC4h+C4miDguJnguLHguJnguJfguILguKfguYnguLLguIcNCivguKrguIfguJog4LmA4Lii4LmH4LiZ4Lik4LiU4Li1DQor4Liq4LiH4LiaIOC4reC5ieC4meC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4quC4h+C4p+C4mSDguYHguIHguKXguYnguKfguIHguKXguYnguLINCivguKrguIfguKfguJkg4LiI4Lix4LiZ4LiX4Lij4Lit4Lix4LiB4Lip4LijDQor4Liq4LiH4Lin4LiZIOC4iuC4ueC4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4h+C4p+C4mSDguJXguLHguJnguKrguLjguILguLLguJnguLHguJnguJfguYwNCivguKrguIfguKfguJkg4LiZ4Li44LiK4Lij4Li14Lin4Lij4Lij4LiTDQor4Liq4LiH4Lin4LiZIOC4nuC4h+C4qeC5jOC4q+C4h+C4qeC5jA0KK+C4quC4h+C4p+C4mSDguKDguLLguKPguLDguYLguIINCivguKrguIfguKfguJkg4Lij4Li44LiT4Lig4Lix4LiiDQor4Liq4LiH4Lin4LiZIOC4p+C4tOC4oeC4peC4quC4uOC4l+C4mOC4tOC4geC4uOC4pQ0KK+C4quC4h+C4p+C4mSDguKrguIfguKfguJnguYDguJXguIrguLDguJXguKPguLDguIHguLnguKUNCivguKrguIfguKfguJkg4Liq4Li44Lin4Li04LiX4Lii4Liy4Lig4Lij4LiT4LmMDQor4Liq4LiH4Lin4LiZIOC4reC4seC4h+C4geC4uOC4p+C4o+C4geC4uOC4pQ0KK+C4quC4h+C4p+C4meC4o+C4seC4geC4qeC5jCDguYTguJXguKPguJnguLLguIjguLINCivguKrguIfguKfguJnguKjguKPguLUg4Lig4Li54LmI4LiH4Liy4LihDQor4Liq4LiH4Lin4LiZ4Lio4Lix4LiB4LiU4Li04LmMIOC4peC4tOC4guC4meC4suC4meC4meC4l+C4p+C4h+C4qOC5jA0KK+C4quC4h+C4seC4lCDguIjguLHguJnguJfguKPguYzguYHguJXguYkNCivguKrguIfguLHguJQg4Lib4Lij4Li04LiB4LmA4Lie4LiK4Lij4LmMDQor4Liq4LiH4Lix4LiUIOC4p+C4seC4meC4k+C4uOC4m+C4luC4seC4oeC4oOC5jA0KK+C4quC4h+C4seC4lCDguYDguK3guLXguYjguKLguKHguKrguLPguK3guLLguIfguITguYwNCivguKrguIfguYjguLIg4LiE4LiH4Liq4Liz4Lij4Liy4LiNDQor4Liq4LiH4LmI4LiyIOC4ieC4p+C4teC4m+C4peC4seC5iOC4hw0KK+C4quC4h+C5iOC4siDguYHguJTguIfguJTguLXguYDguKXguLTguKgNCivguKrguIfguYjguLIg4LiY4Lij4Lij4Lih4Lii4Li04LmI4LiH4Lii4LiHDQor4Liq4LiH4LmI4LiyIOC4m+C4suC4meC4sOC4meC4tOC4pQ0KK+C4quC4h+C5iOC4siDguKDguLLguKnguLTguJUNCivguKrguIfguYjguLIg4Lij4Li34LmI4LiZ4LmE4LiX4LiiDQor4Liq4LiH4LmI4LiyIOC4p+C4uOC4kuC4tOC4oeC4h+C4hOC4peC4iuC4seC4og0KK+C4quC4h+C5iOC4siDguKrguLLguKvguKPguYjguLLguKINCivguKrguIfguYjguLIg4Lir4Lit4Lih4Liq4Lih4Lia4Lix4LiV4Li0DQor4Liq4LiH4Li44LmI4LiZIOC4i+C4t+C5iOC4reC4oeC4suC4gQ0KK+C4quC5iOC4h+C4qOC4o+C4tSDguYHguIHguYnguKfguIjguLHguJnguJfguKPguYwNCivguKrguYjguIfguKjguLHguIHguJTguLTguYwg4LiB4Lij4LiT4Lib4LiB4Lij4LiT4LmMDQor4Liq4LiI4LmK4Lin4LiVIOC4iuC4suC4o+C5jOC4pQ0KK+C4quC4lCDguJ7guLjguYjguKHguJnguLTguITguKENCivguKrguJTguKjguKPguLUg4Lie4Li44LmI4Lih4LmA4LiI4Lij4Li04LiNDQor4Liq4LiU4Liy4Lin4Lij4Lij4LiTIOC4muC4uOC4jeC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4lOC5g+C4qiDguKLguLjguJfguJjguJnguLLguKrguLTguKPguLTguIHguLjguKUNCivguKrguJXguLXguYDguJ/guJkg4Liu4Liy4LinDQor4Liq4LiW4Liy4Lie4LijIOC4hOC4seC4oeC4oOC4tOC4o+C4suC4meC4meC4l+C5jA0KK+C4quC4luC4suC4nuC4oyDguIrguLnguKfguIfguKjguYzguYDguJXguLTguKENCivguKrguJbguLLguJ7guKMg4LiZ4Li14Lij4LiZ4Liy4LiW4Lin4LiH4Lio4LmMDQor4Liq4LiW4Liy4Lie4LijIOC4nuC4tuC5iOC4h+C4nuC4o+C4sOC5gOC4geC4teC4ouC4o+C4leC4tA0KK+C4quC4luC4suC4nuC4oyDguYDguKXguYnguLLguJvguKPguLDguYDguKrguKPguLTguJDguKjguKPguLUNCivguKrguJbguLLguJ7guKMg4Liq4Li04LiZ4LiY4Li44LiZ4Liy4Lin4LiyDQor4Liq4LiW4Liy4Lie4LijIOC4reC4uOC4geC4geC4uOC4j+C4suC4meC4meC4l+C5jA0KK+C4quC4luC4tOC4leC4nuC4h+C4qOC5jCDguKHguJnguLLguJvguKPguLLguJPguLUNCivguKrguJbguLTguJXguKLguYwg4LmD4LiI4Liq4Li44LiX4LiY4Li04LmMDQor4Liq4LiW4Li04LiV4Lii4LmMIOC4meC4suC4p+C4uOC4kuC4tA0KK+C4quC4luC4tOC4leC4ouC5jCDguYTguKHguYnguIfguLTguYnguKcNCivguKrguJbguLTguJXguKLguYwg4Liq4Li04LiH4Lir4LmM4LmC4LiVDQor4Liq4LiW4Li04Lij4Lie4Lix4LiZ4LiY4Li44LmMIOC5gOC4geC4ouC4suC4meC4meC4l+C5jA0KK+C4quC4meC4iuC4seC4oiDguJ7guLTguKPguLjguJPguKrguLLguKMNCivguKrguJnguJfguLTguKgg4Liq4LiB4Li44Lil4LiB4LiZ4LiBDQor4Liq4LiZ4LiY4Lii4LiyIOC5gOC4lOC5iOC4meC4p+C4o+C4geC4uOC4pQ0KK+C4quC4meC4mOC4ouC4siDguYLguJ7guJjguLTguYzguJnguYnguK3guKINCivguKrguJnguJjguKLguLIg4LmA4Liq4Li14Lii4LiH4Lin4Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4LiZ4LiY4Li0IOC5gOC4peC4t+C5iOC4reC4meC4ieC4p+C4tQ0KK+C4quC4meC4mOC4tOC4ouC4siDguYDguIHguLXguKLguKPguJXguLTguKfguKPguLLguIfguIHguLnguKMNCivguKrguJnguKEg4LmC4LiV4Lij4Lix4LiB4Lip4Liy4Liq4LiB4Li44LilDQor4Liq4LiZ4Lin4LiZIOC4ieC4tOC4oeC4meC4suC4hOC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4meC4reC4hyDguIjguLHguJnguJfguKPguKjguLHguJ7guJfguYwNCivguKrguJnguK3guIcg4LiV4Lix4Lih4Lie4Lix4LiZ4LiY4Li44Liq4LiB4Li44LilDQor4Liq4LiZ4Lit4LiHIOC4muC4uOC4jeC4oeC4teC4pOC4l+C4mOC4tOC5jA0KK+C4quC4meC4reC4hyDguYLguJ7guJjguLQNCivguKrguJnguK3guIcg4Lil4Li14LiZ4Liw4Lin4Lix4LiVDQor4Liq4LiZ4Lit4LiHIOC4quC4tOC4meC5gOC4muC4jeC4iOC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4meC4reC4hyDguK3guLjguYjguJnguJfguKPguLHguJ7guKLguYwNCivguKrguJnguLHguYjguJkg4LiB4Lik4Lip4LiU4Liy4LiY4Li04LiB4Liy4LijDQor4Liq4LiZ4Lix4LmI4LiZIOC5guC4hOC4geC4guC4sw0KK+C4quC4meC4seC5iOC4mSDguIrguLfguYjguJnguYDguJzguLfguK3guIENCivguKrguJnguLHguYjguJkg4LiX4Lit4LiH4Liq4Lih4Lia4Lix4LiV4Li0DQor4Liq4LiZ4Lix4LmI4LiZIOC4muC4uOC4jeC4oeC4suC4gQ0KK+C4quC4meC4seC5iOC4mSDguJ7guLTguIHguLjguKXguYHguKLguYnguKENCivguKrguJnguLHguYjguJkg4Lij4Lix4LiB4Liq4Lih4Lii4LiyDQor4Liq4LiZ4Lix4LmI4LiZIOC4qOC4o+C4teC4peC4sOC4oeC5ieC4suC4og0KK+C4quC4meC4seC5iOC4mSDguKrguLjguILguIrguYjguKfguKINCivguKrguJnguLHguYjguJkg4Lit4Lia4LmA4LiK4LiiDQor4Liq4LiZ4Liy4LiZIOC4iOC4seC4meC4l+C4o+C5gOC4peC4tOC4qA0KK+C4quC4meC4suC4oSDguJ7guKXguK3guKLguKjguLTguKPguLQNCivguKrguJnguLTguJcg4LmB4LiB4LmJ4Lin4Lie4LilDQor4Liq4LiZ4Li04LiXIOC4iOC4seC5iOC4meC4m+C4o+C4sOC4lOC4seC4mg0KK+C4quC4meC4tOC4lyDguJTguLjguKnguI/guLXguYLguKvguJnguJQNCivguKrguJnguLTguJcg4LmB4LiX4LmI4LiH4LiX4Lit4LiHDQor4Liq4LiZ4Li04LiXIOC4muC4uOC4jeC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4quC4meC4tOC4lyDguJ7guYjguKfguIfguJ7guIfguKnguYwNCivguKrguJnguLTguJcg4Lih4Liy4Lib4Lij4Liw4LiI4Lin4LiaDQor4Liq4LiZ4Li04LiXIOC4peC4ueC4geC4iOC4seC4meC4l+C4o+C5jA0KK+C4quC4meC4tOC4lyDguKrguJXguKHguKvguLLguIrguKXguLLguKrguLTguJnguJjguLjguYwNCivguKrguJnguLTguJcg4LmB4Liq4LiH4LiX4Lit4LiHDQor4Liq4LiZ4Li04LiXIOC4reC4uOC4lOC4oeC4mOC4teC4o+C4geC4uOC4pQ0KK+C4quC4meC4uOC5iOC4mSDguYDguIrguLfguYnguK3guJnguLjguYjguJkNCivguKrguJvguLHguJkg4Lie4Lix4LiK4Lij4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lig4Liy4Lit4LiH4LiE4LmM4LiB4Liy4Lij4Lil4Li54LiB4LiI4LmJ4Liy4LiH4LmB4Lij4LiH4LiH4Liy4LiZ4LmB4Lir4LmI4LiH4Lib4LijIOC4quC4oOC4suC4reC4h+C4hOC5jOC4geC4suC4o+C4peC4ueC4geC4iOC5ieC4suC4h+C5geC4o+C4h+C4h+C4suC4meC5geC4q+C5iOC4h+C4m+C4ow0KK+C4quC4oSDguJnguYnguK3guKLguJvguKPguLXguIrguLINCivguKrguKEg4Lin4Lij4Lij4LiT4Lib4Lij4Liw4Lig4LiyDQor4Liq4Lih4LiB4Lih4LilIOC4oeC4sOC5guC4meC4geC4tOC4iA0KK+C4quC4oeC4hOC4pSDguYDguIrguLfguYnguK3guYDguKHguLfguK3guIfguJfguLLguJkNCivguKrguKHguITguKfguKMg4LiI4Lix4LiZ4LiX4Lij4LmM4LiZ4Li44LmJ4LiiDQor4Liq4Lih4LiE4Lin4LijIOC5geC4i+C5iOC5geC4leC5iQ0KK+C4quC4oeC4hOC4p+C4oyDguJnguLHguKLguKjguLTguKPguLQNCivguKrguKHguITguKfguKMg4Lie4Lix4LiS4LiZ4Lie4LiH4Lip4LmM4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Liq4Lih4LiE4Lin4LijIOC4o+C4seC4geC4geC4peC4seC4lA0KK+C4quC4oeC4hOC4p+C4oyDguKjguKPguLXguK3guLTguJnguJfguKPguYwNCivguKrguKHguITguKfguKMg4LmE4Liq4Lii4Liq4Lih4Lia4Lix4LiV4Li0DQor4Liq4Lih4LiE4Li04LiEIOC4p+C4seC4kuC4meC5gOC4quC4o+C4teC4p+C4h+C4qOC5jA0KK+C4quC4oeC4hOC4tOC4lCDguYHguIHguYnguKfguIrguLTguIfguJTguKfguIcNCivguKrguKHguITguLTguJQg4LiI4Lit4LiZ4Liq4Lih4LiI4Li04LiV4LiV4LmMDQor4Liq4Lih4LiE4Li04LiUIOC5g+C4iOC4reC4tOC5iOC4oQ0KK+C4quC4oeC4hOC4tOC4lCDguYHguIvguYjguIjguLTguKcNCivguKrguKHguITguLTguJQg4LiV4Lix4LmJ4LiH4Lio4Li04Lij4Li04LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Lih4LiE4Li04LiUIOC4l+C4sOC4o+C4seC4h+C4qOC4o+C4tQ0KK+C4quC4oeC4hOC4tOC4lCDguJnguLTguITguKHguYDguILguJXguJXguYwNCivguKrguKHguITguLTguJQg4LmD4Lia4Lih4LiH4LiE4LilDQor4Liq4Lih4LiE4Li04LiUIOC4nuC4o+C5ieC4reC4oeC4oeC4ueC4pQ0KK+C4quC4oeC4hOC4tOC4lCDguYDguJ7guYfguIfguJ7guLLguJQNCivguKrguKHguITguLTguJQg4Lih4Li54Lil4LiX4Lit4LiH4LiK4Li44LiZDQor4Liq4Lih4LiE4Li04LiUIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4h+C4qOC4o+C4tQ0KK+C4quC4oeC4hOC4tOC4lCDguKfguLHguJnguKfguLDguJnguLINCivguKrguKHguITguLTguJQg4Lio4Li04Lij4Li04Lij4Lix4LiV4LiZ4Lin4Li44LiS4Li0DQor4Liq4Lih4LiE4Li04LiUIOC4quC4tOC4h+C4q+C5jOC4quC4s+C4o+C4suC4jQ0KK+C4quC4oeC4hOC4tOC4lCDguYHguKrguIfguJnguJnguJfguYzguJXguKPguLDguIHguLnguKUNCivguKrguKHguITguLTguJQg4Lit4LmJ4LiZ4LmA4Lib4Lij4LihDQor4Liq4Lih4LiE4Li04LiUIOC4reC4uOC4meC4l+C4o+C4tOC4iOC4seC4meC4l+C4o+C5jA0KK+C4quC4oeC4iOC4seC4meC4l+C4o+C5jCDguYDguKvguKPguLXguKLguI3guJvguLHguI3guI3guLLguIHguLjguKUNCivguKrguKHguIjguLTguJUg4LiI4Lix4LiZ4LiX4Li44Lih4Liy4LiB4LijDQor4Liq4Lih4LiI4Li04LiVIOC4leC4seC4k+C4keC4quC4uOC4l+C4mOC4tOC5jA0KK+C4quC4oeC4iOC4tOC4lSDguJrguLjguI3guJfguKfguLUNCivguKrguKHguIjguLTguJUg4LmA4Lie4LmH4LiH4Liq4Lin4LiZDQor4Liq4Lih4LiI4Li04LiVIOC4p+C4o+C4o+C4k+C4o+C4seC4geC4qeC5jA0KK+C4quC4oeC4iOC4tOC4lSDguKrguLjguJfguJjguLTguKHguLLguKXguKLguYwNCivguKrguKHguIjguLTguJXguJXguYwg4LiB4LiZ4LiB4LiK4Lix4Lii4Lib4Lij4Liy4LmC4Lih4LiX4Lii4LmMDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC5geC4geC5ieC4p+C5gOC4geC4t+C5ieC4reC4geC4ueC4pQ0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguIjguLTguJXguJXguYzguKrguLjguJfguLHguKjguJnguYwNCivguKrguKHguIjguLTguJXguJXguYwg4LiK4Li04LiZ4Lij4Liy4LiKDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC5geC4i+C5iOC5gOC4reC4teC5ieC4og0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguJbguLTguYjguJnguJbguJnguK3guKENCivguKrguKHguIjguLTguJXguJXguYwg4LiY4Lix4Lih4Lih4Lij4Lix4LiE4LiE4Li04LiVDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC5gOC4muC4meC4geC4uOC5guC4o+C5guC4oQ0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguJ7guKXguLLguKHguLTguJXguKMNCivguKrguKHguIjguLTguJXguJXguYwg4Lig4Li54Lih4Li04LiI4Li04LiV4Lit4Lih4LijDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC4o+C4suC4oeC4qOC4ow0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguKfguIrguLTguKPguKfguJPguLTguIrguIHguLTguIgNCivguKrguKHguIjguLTguJXguJXguYwg4Lio4Liy4Liq4LiV4Lij4LmM4Liq4Li44LiCDQor4Liq4Lih4LiI4Li04LiV4LiV4LmMIOC4quC4tOC4h+C4q+C4sg0KK+C4quC4oeC4iOC4tOC4leC4leC5jCDguKvguKHguLnguYjguJzguLbguYnguIcNCivguKrguKHguIjguLTguJXguJXguYwg4Lit4Li04LiH4LiE4Liw4Lin4Lix4LiVDQor4Liq4Lih4LiI4Li04LiV4LijIOC5gOC4geC4leC4uOC4leC4tOC4oeC4sA0KK+C4quC4oeC4iOC4tOC4leC4oyDguIjguKPguKPguKLguLINCivguKrguKHguIjguLTguJXguKMg4LmD4LiI4Lin4Lix4LiH4LmC4Lil4LiBDQor4Liq4Lih4LiI4Li04LiV4LijIOC5geC4i+C5iOC5gOC4muC5ig0KK+C4quC4oeC4iOC4tOC4leC4oyDguJfguK3guIfguKrguLjguKDguKMNCivguKrguKHguIjguLTguJXguKMg4LmA4LiZ4Li14Lii4Lih4Lio4Li04Lij4Li0DQor4Liq4Lih4LiI4Li04LiV4LijIOC4m+C4tOC5iOC4meC4oeC4k+C4tQ0KK+C4quC4oeC4iOC4tOC4leC4oyDguJ7guLjguYjguKHguJvguKPguLDguJTguLHguJoNCivguKrguKHguIjguLTguJXguKMg4LmA4Lih4Li14LmI4Lii4LiH4Lia4Lix4LinDQor4Liq4Lih4LiI4Li04LiV4LijIOC5gOC4peC4tOC4qOC4luC4p+C4tOC4peC4iOC4tOC4ow0KK+C4quC4oeC4iOC4tOC4leC4oyDguKjguKPguLXguKrguLjguKfguJPguLTguIrguIHguLjguKUNCivguKrguKHguIjguLTguJXguKMg4Liq4Li04LiZ4LmA4Lie4LmH4LiHDQor4Liq4Lih4LiI4Li04LiV4LijIOC4q+C4oeC4seC4lOC5guC4meC5iuC4lQ0KK+C4quC4oeC4iOC4tOC4leC4o+C4siDguIjguLHguJnguYLguKDguITguLINCivguKrguKHguIjguLTguJXguKPguYwg4LiJ4Lix4LiV4Lij4LmM4LiX4Lit4LiHDQor4Liq4Lih4LiI4Li04LiV4Lij4LmMIOC4l+C4tOC4nuC4ouC5jOC4m+C4o+C4sOC4oOC4suC5geC4ouC5ieC4oQ0KK+C4quC4oeC4iOC4tOC4leC4o+C5jCDguJ7guLbguYjguIfguKLguJnguJXguYwNCivguKrguKHguIjguLTguJXguKPguYwg4Lin4Lix4LiS4LiZ4LmA4LiI4Lij4Li04LiN4Lie4LijDQor4Liq4Lih4LiI4Li04LiV4Lij4LmMIOC4q+C4p+C4seC4h+C4lOC4tOC4peC4gQ0KK+C4quC4oeC4iOC4tOC4meC4leC4meC4siDguKfguLHguIfguJfguK3guIcNCivguKrguKHguInguKfguLUg4LmA4Lir4Lih4Liw4Lin4Li04Lij4Li04Lii4Liy4Lie4Lij4Lin4Lix4LiS4LiZ4LiyDQor4Liq4Lih4LiK4Lix4LiiIOC4geC4tOC4iOC5gOC4peC4tOC4qOC5hOC4nuC5guC4o+C4iOC4meC5jA0KK+C4quC4oeC4iuC4seC4oiDguITguKXguYjguK3guIfguJjguJnguIHguLTguIgNCivguKrguKHguIrguLHguKIg4LiI4Li04Lij4LiK4Lii4Liy4LiH4LiB4Li54LijDQor4Liq4Lih4LiK4Lix4LiiIOC4iuC4seC4ouC4iOC4o+C4ueC4jeC4nuC4ow0KK+C4quC4oeC4iuC4seC4oiDguYTguIrguKLguKjguKPguLXguJjguKPguKPguKHguITguLjguJMNCivguKrguKHguIrguLHguKIg4LmB4LiL4LmI4LmA4Lil4Li14LmI4Lii4LiHDQor4Liq4Lih4LiK4Lix4LiiIOC4leC4seC5ieC4h+C4meC4tOC4o+C4seC4meC4lOC4ow0KK+C4quC4oeC4iuC4seC4oiDguJfguKPguIfguK7guIcNCivguKrguKHguIrguLHguKIg4LiZ4Lij4LmA4Lio4Lij4Lip4LiQ4LmM4LmC4Lio4Lig4LiTDQor4Liq4Lih4LiK4Lix4LiiIOC5guC4muC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4quC4oeC4iuC4seC4oiDguJ7guKPguKHguIfguITguKXguKrguLjguIINCivguKrguKHguIrguLHguKIg4Lif4Li44LmJ4LiH4Liq4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lih4LiK4Lix4LiiIOC4ouC4uOC4l+C4mOC4meC4suC4oOC4tOC4meC4seC4meC4l+C5jA0KK+C4quC4oeC4iuC4seC4oiDguKXguYnguKfguJnguYPguIjguKrguJnguJjguLTguYwNCivguKrguKHguIrguLHguKIg4Lin4LiH4Lio4LmM4Lie4Lix4LiZ4LiY4LmM4LiH4Liy4LihDQor4Liq4Lih4LiK4Lix4LiiIOC4p+C4tOC4qOC4p+C4quC4oeC4oOC4ng0KK+C4quC4oeC4iuC4seC4oiDguKjguLTguKXguJvguKrguLLguJjguLTguJUNCivguKrguKHguIrguLHguKIg4Liq4Liy4Lii4LiU4LmJ4Lin4LiHDQor4Liq4Lih4LiK4Lix4LiiIOC4quC4uOC5guC4iuC4leC4tOC4geC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4oeC4iuC4seC4oiDguYLguKvguJXguKPguIjguLTguJXguKMNCivguKrguKHguIrguLHguKIg4Lit4Liy4Lig4Liy4Lin4Lix4LiK4LiZ4LmMDQor4Liq4Lih4LiK4Liy4LiNIOC4peC4teC4oeC4suC4quC4p+C4seC4quC4lOC4tOC5jOC4geC4uOC4pQ0KK+C4quC4oeC4iuC4suC4leC4tCDguIjguLTguJXguJXguKfguLTguKrguLjguJfguJjguLTguKfguIfguKjguYwNCivguKrguKHguIrguLLguJXguLQg4LiU4Lil4Lii4Liy4LiZ4Li44LmA4LiE4Lij4Liy4Liw4Lir4LmMDQor4Liq4Lih4LiK4Liy4LiV4Li0IOC4meC4tOC4o+C4seC4meC4lOC4o+C5jOC4p+C4h+C4qOC5jOC4p+C4suC4mQ0KK+C4quC4oeC4iuC4suC4leC4tCDguYDguJ7guYfguI3guYDguKrguIfguLXguYjguKLguKENCivguKrguKHguIrguLLguJXguLQg4LmA4Lil4Li04Lio4LiY4Lij4Lij4Lih4LiZ4Liy4LiWDQor4Liq4Lih4LiK4Liy4LiV4Li0IOC4quC4seC4meC4leC4tOC4meC4o+C4qOC4seC4geC4lOC4tOC5jA0KK+C4quC4oeC4iuC4suC4leC4tCDguK3guYjguKfguKHguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguKHguIrguLLguKIg4LiB4Lil4Lie4Li04Liq4Li44LiX4LiY4Li04LmMDQor4Liq4Lih4LiK4Liy4LiiIOC4geC4suC4jeC4iOC4meC4geC4seC4meC4leC4tOC4geC4suC4ow0KK+C4quC4oeC4iuC4suC4oiDguIHguLTguJXguJXguLTguYDguKXguLTguKjguYTguJ7guKjguLLguKUNCivguKrguKHguIrguLLguKIg4LmA4LiB4Li04LiU4LmA4Lij4Li34Lit4LiHDQor4Liq4Lih4LiK4Liy4LiiIOC5geC4geC5ieC4p+C4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4quC4oeC4iuC4suC4oiDguILguLjguJnguKfguLTguYDguKjguKoNCivguKrguKHguIrguLLguKIg4LiE4LmJ4Liy4LiX4Lix4LiZ4LmA4LiI4Lij4Li04LiNDQor4Liq4Lih4LiK4Liy4LiiIOC5guC4huC4qeC4tOC4leC4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C4quC4oeC4iuC4suC4oiDguIjguIfguYDguJfguLTguJTguJfguLnguJnguKrguIHguLjguKUNCivguKrguKHguIrguLLguKIg4LiI4Lix4LiZ4LiX4Lij4Lib4Lij4Liw4LiX4Li04LiZDQor4Liq4Lih4LiK4Liy4LiiIOC4iOC4tOC4leC4leC4o+C4suC4meC4meC4l+C5jA0KK+C4quC4oeC4iuC4suC4oiDguIjguLjguJnguYDguIjguLfguK3guJfguKPguLHguJ7guKLguYwNCivguKrguKHguIrguLLguKIg4LmA4LiI4Lip4LiO4Liy4LiZ4Lig4Liy4Lin4LiH4Lio4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC4ieC4seC4leC4o+C4oeC4h+C4hOC4peC5gOC4geC4qeC4oQ0KK+C4quC4oeC4iuC4suC4oiDguIrguKXguJ7guLTguYTguKXguJ7guIfguKjguYwNCivguKrguKHguIrguLLguKIg4LiK4Liy4LiN4Liq4Lih4Lit4LiZDQor4Liq4Lih4LiK4Liy4LiiIOC4iuC4uOC5iOC4oeC5hOC4iuC4ouC4nuC4pOC4geC4qeC5jA0KK+C4quC4oeC4iuC4suC4oiDguYLguIrguITguKrguLTguKPguLTguKrguKfguLHguKrguJTguLTguYwNCivguKrguKHguIrguLLguKIg4LmB4LiL4LmI4LiE4Li5DQor4Liq4Lih4LiK4Liy4LiiIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4quC4oeC4iuC4suC4oiDguYHguIvguYjguKXguLXguYkNCivguKrguKHguIrguLLguKIg4LmB4LiL4LmI4Liu4LmJ4LitDQor4Liq4Lih4LiK4Liy4LiiIOC5geC4i+C5iOC5gOC4ruC4hw0KK+C4quC4oeC4iuC4suC4oiDguYHguIvguYjguYLguKXguYnguKcNCivguKrguKHguIrguLLguKIg4LiU4Li14Lih4LiH4LiE4Lil4Liq4Li44LiCDQor4Liq4Lih4LiK4Liy4LiiIOC4leC4o+C4sOC4geC4ueC4peC4meC4tOC5iOC4oeC4meC4p+C4pQ0KK+C4quC4oeC4iuC4suC4oiDguJXguLHguYnguIfguJvguJnguLTguJjguLLguJnguJTguLUNCivguKrguKHguIrguLLguKIg4LiV4Lix4LiZ4LmA4LiI4Lij4Li04LiNDQor4Liq4Lih4LiK4Liy4LiiIOC5gOC4leC4teC5ieC4ouC4muC4seC4p+C5geC4geC5ieC4pw0KK+C4quC4oeC4iuC4suC4oiDguJbguLTguKPguYLguKrguJXguJbguLTguJnguLLguJnguJnguJfguYwNCivguKrguKHguIrguLLguKIg4LiX4Lit4LiH4Lir4Lil4LmI4LitDQor4Liq4Lih4LiK4Liy4LiiIOC5gOC4l+C4reC4lOC4p+C4h+C4qOC5jOC4p+C4o+C4geC4uOC4pQ0KK+C4quC4oeC4iuC4suC4oiDguJjguKPguKPguKHguIHguLTguIjguYTguJ7guYLguKPguIjguJnguYwNCivguKrguKHguIrguLLguKIg4LiY4LmA4LiZ4Lio4LiZ4Li04LiV4Lii4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC4meC4suC4hOC4nuC4peC4seC5ieC4hw0KK+C4quC4oeC4iuC4suC4oiDguJnguLTguKXguKfguJPguLTguIrguKLguYwNCivguKrguKHguIrguLLguKIg4Lia4Liz4Lij4Li44LiH4Lin4LiH4Lio4LmMDQor4Liq4Lih4LiK4Liy4LiiIOC4muC4uOC4jeC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4quC4oeC4iuC4suC4oiDguJvguKPguLDguIHguLLguKLguYLguIHguKfguLTguJcNCivguKrguKHguIrguLLguKIg4Lib4Lil4Li34LmJ4Lih4LiI4Li04LiVDQor4Liq4Lih4LiK4Liy4LiiIOC4m+C4uOC4k+C4k+C4o+C4uOC4iOC4suC4p+C4h+C4qeC5jA0KK+C4quC4oeC4iuC4suC4oiDguYDguJzguLfguYjguK3guJnguIjguLLguIcNCivguKrguKHguIrguLLguKIg4Lie4Lij4LiW4Li04Lij4Liw4Lih4LiH4LiE4LilDQor4Liq4Lih4LiK4Liy4LiiIOC4nuC4p+C4h+C4l+C4reC4hw0KK+C4quC4oeC4iuC4suC4oiDguJ7guLTguJfguLHguIHguKnguYzguIHguLTguIjguJbguLLguKfguKMNCivguKrguKHguIrguLLguKIg4Lie4Li44LmI4Lih4Liq4Li44LiCDQor4Liq4Lih4LiK4Liy4LiiIOC5guC4nuC4mOC4tOC5jOC4h+C4suC4oQ0KK+C4quC4oeC4iuC4suC4oiDguKDguLHguJfguKPguLLguIfguIHguLnguKMNCivguKrguKHguIrguLLguKIg4Lih4LiT4Li14LmA4LiC4Li14Lii4LinDQor4Liq4Lih4LiK4Liy4LiiIOC4oeC4suC4o+C4teC4geC4seC4mQ0KK+C4quC4oeC4iuC4suC4oiDguYDguKHguIbguYDguJnguKINCivguKrguKHguIrguLLguKIg4LmA4Lii4LmH4LiZ4LmD4LiI4LmA4LiJ4Li34LmI4Lit4LiiDQor4Liq4Lih4LiK4Liy4LiiIOC4o+C4seC4leC4meC4iuC4suC4leC4tOC4geC4uOC4pQ0KK+C4quC4oeC4iuC4suC4oiDguKPguLjguYjguIfguKjguKPguLXguKjguKjguLTguJjguKMNCivguKrguKHguIrguLLguKIg4LmC4Lij4LiI4LiZ4Lin4Lij4LmC4Liq4Lig4LiTDQor4Liq4Lih4LiK4Liy4LiiIOC4peC4suC4oOC4reC4uOC4lOC4oeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4oeC4iuC4suC4oiDguKXguLXguYnguKXguLHguJfguJjguYDguIHguLXguKLguKPguJXguLQNCivguKrguKHguIrguLLguKIg4LmA4Lil4Li04Lio4Lin4Li04Lia4Li54Lil4Lii4LmM4LiB4Li04LiIDQor4Liq4Lih4LiK4Liy4LiiIOC4p+C4h+C4qOC5jOC4leC4o+C4sOC4geC4ueC4peC4iOC4hw0KK+C4quC4oeC4iuC4suC4oiDguKfguIfguKnguYzguKvguLTguKPguLHguI3guKfguLLguJnguLTguIoNCivguKrguKHguIrguLLguKIg4Lin4LmI4Lit4LiH4Lin4LiH4Lio4LmM4Lio4Lij4Li1DQor4Liq4Lih4LiK4Liy4LiiIOC4p+C4suC4meC4tOC4iuC4p+C4seC4kuC4meC5jA0KK+C4quC4oeC4iuC4suC4oiDguKfguLTguKnguJPguLjguKfguIfguKjguYwNCivguKrguKHguIrguLLguKIg4Lio4Lij4Lia4Lij4Lij4LiI4LiHDQor4Liq4Lih4LiK4Liy4LiiIOC4qOC4o+C4teC4p+C4tOC5hOC4pQ0KK+C4quC4oeC4iuC4suC4oiDguKjguLTguKPguLTguJjguLXguKPguLLguYDguIjguKnguI7guYwNCivguKrguKHguIrguLLguKIg4Lio4Li44Lig4Lil4Lix4LiB4Lip4LiT4LmM4Lin4Lix4LiI4LiZ4LiwDQor4Liq4Lih4LiK4Liy4LiiIOC4quC4meC4quC4h+C5iOC4sg0KK+C4quC4oeC4iuC4suC4oiDguKrguKfguYjguLLguIfguJnguYnguK3guKHguIjguLTguJXguJXguYwNCivguKrguKHguIrguLLguKIg4Liq4Lix4Lii4Lil4Liw4Lih4Lix4LiiDQor4Liq4Lih4LiK4Liy4LiiIOC4quC4tOC4meC4mOC4uOC4m+C4o+C4sOC4oOC4sg0KK+C4quC4oeC4iuC4suC4oiDguKrguLjguILguJnguLHguJnguJfguKjguLHguIHguJTguLTguYwNCivguKrguKHguIrguLLguKIg4Liq4Li44LiX4LiY4Li04LiC4Liy4LinDQor4Liq4Lih4LiK4Liy4LiiIOC4quC4uOC4o+C5gOC4lOC4iuC4suC4meC4seC4meC4l+C5jA0KK+C4quC4oeC4iuC4suC4oiDguYDguKrguLLguKvguIcNCivguKrguKHguIrguLLguKIg4Lir4LiH4Lip4LmM4Lij4Lix4LiV4LiZ4Lin4Li04LiI4Li04LiV4LijDQor4Liq4Lih4LiK4Liy4LiiIOC4q+C4reC4oeC4geC4o+C4sOC4q+C4peC4mg0KK+C4quC4oeC4iuC4suC4oiDguYDguKvguKXguLfguK3guIfguKjguLTguKPguLTguKPguLHguIfguKnguLUNCivguKrguKHguIrguLLguKIg4Lit4LiZ4Lix4LiZ4LiV4LmM4Liq4Li44LiC4Lia4Lij4Lij4LiTDQor4Liq4Lih4LiK4Liy4LiiIOC4reC4ouC4ueC5iOC5gOC4geC4tOC4lA0KK+C4quC4oeC4iuC4suC4oiDguK3guLHguIfguIHguLnguKPguLLguKPguLHguIHguKnguYwNCivguKrguKHguIrguLLguKIg4Lit4Liy4LiI4Lir4Liy4LiNDQor4Liq4Lih4LiK4Liy4LiiIOC4reC4tOC5iOC4oeC4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4quC4oeC4iuC4suC4oiDguYDguK3guIHguJvguLHguI3guI3guLLguIHguLjguKUNCivguKrguKHguIrguLLguKIg4LmA4Lit4Li34LmJ4Lit4LmA4LiB4Lip4Lih4Liq4Li04LiZDQor4Liq4Lih4LiN4LiyIOC4iuC4suC4jeC4geC4o+C4sOC4muC4teC5iA0KK+C4quC4oeC4lOC4tSDguKfguYjguK3guIfguYTguKfguKfguJPguLTguIrguIHguLjguKUNCivguKrguKHguJbguKfguLTguKUg4LiI4Lix4LiZ4LiX4Lij4LmM4Liq4Li04Lij4Li04Lie4LiI4LiZ4LmMDQor4Liq4Lih4LiW4Lin4Li04LilIOC4l+C4reC4h+C5gOC4q+C4h+C5ieC4sg0KK+C4quC4oeC4luC4p+C4tOC4pSDguJ7guKPguKvguKHguJ7guIfguKnguYwNCivguKrguKHguJbguKfguLTguKUg4LmA4Lil4Li14LmJ4Lii4Lin4Lie4Lij4Lib4Lij4Liw4Liq4Liy4LiXDQor4Liq4Lih4LiW4Lin4Li04LilIOC5geC4quC4h+C4meC4tOC4peC4qOC4tOC4o+C4tA0KK+C4quC4oeC4l+C4miDguKDguLnguYjguKHguIfguIHguLjguI7guIrguLHguKINCivguKrguKHguJfguKPguIcg4LiC4Lit4Lie4Lia4Liq4Li44LiCDQor4Liq4Lih4LiX4Lij4LiHIOC5gOC4iOC4o+C4tOC4jeC4ouC4tOC5iOC4hw0KK+C4quC4oeC4l+C4o+C4hyDguJXguLHguJnguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguKHguJfguKPguIcg4LmA4LiZ4Li34LmI4Lit4LiH4LiI4Liy4LiB4LiZ4Liy4LiEDQor4Liq4Lih4LiX4Lij4LiHIOC4nuC4suC4meC4tOC4iuC4ouC4sOC4oeC4meC4leC4o+C4tQ0KK+C4quC4oeC4l+C4o+C4hyDguKPguLjguYjguIfguYDguKPguLfguK3guIfguKjguLTguKXguJvguYwNCivguKrguKHguJfguKPguIcg4LmA4Lio4Lin4LiV4LmA4Lin4LiKDQor4Liq4Lih4LiX4Lij4LiHIOC5geC4quC4h+C4quC4p+C5iOC4suC4hw0KK+C4quC4oeC4l+C4o+C4seC4nuC4ouC5jCDguJ7guKPguKjguLTguKPguLTguKXguLHguITguJPguLINCivguKrguKHguJnguLHguKog4LiC4Lij4Lij4LiE4LmM4LiK4Lix4LiiDQor4Liq4Lih4LiZ4Li24LiBIOC4geC4pOC4qeC4k+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4oeC4meC4tuC4gSDguYDguIHguLTguJTguYDguJvguLXguYjguKLguKENCivguKrguKHguJnguLbguIEg4LiE4LiH4Lii4Li04LmI4LiHDQor4Liq4Lih4LiZ4Li24LiBIOC4iOC4o+C4ueC4jeC4qOC4seC4geC4lOC4tOC5jA0KK+C4quC4oeC4meC4tuC4gSDguIjguLbguIfguIjguJXguLjguKPguJ7guLTguJgNCivguKrguKHguJnguLbguIEg4LmA4LiJ4Lil4Li04Lih4Lio4Lij4Li1DQor4Liq4Lih4LiZ4Li24LiBIOC4iuC4ueC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4oeC4meC4tuC4gSDguYHguIvguYjguK3guLfguYnguK0NCivguKrguKHguJnguLbguIEg4LiV4Lix4LmJ4LiH4Lin4Lix4LiK4Lij4Lie4LiH4Lio4LmMDQor4Liq4Lih4LiZ4Li24LiBIOC4l+C5ieC4p+C4oeC5geC4quC4hw0KK+C4quC4oeC4meC4tuC4gSDguJjguLHguKHguJ7guLTguJ7guLTguJgNCivguKrguKHguJnguLbguIEg4LmA4LiZ4Li14Lii4Lih4LiX4Lix4Lia4LiX4Li04LihDQor4Liq4Lih4LiZ4Li24LiBIOC4muC4ueC4o+C4k+C4sOC4quC4oeC4qeC4seC4leC4tA0KK+C4quC4oeC4meC4tuC4gSDguYDguJvguKPguKHguKPguLHguJXguJnguLINCivguKrguKHguJnguLbguIEg4Lie4Lil4Liy4Lii4LiH4Liy4LihDQor4Liq4Lih4LiZ4Li24LiBIOC4nuC4ueC4peC5guC4reC4qeC4kOC5jA0KK+C4quC4oeC4meC4tuC4gSDguKHguIfguITguKXguIjguKPguLHguKrguYHguKrguIcNCivguKrguKHguJnguLbguIEg4Lii4Lit4LiU4Lia4Lij4Li04Lia4Li54Lij4LiT4LmMDQor4Liq4Lih4LiZ4Li24LiBIOC4o+C4uOC5ieC4h+C4geC4oeC4peC4nuC4seC4meC4mOC5jA0KK+C4quC4oeC4meC4tuC4gSDguYDguKXguLTguKjguKrguLTguKPguLTguKrguLjguIINCivguKrguKHguJnguLbguIEg4Lin4Lix4LiK4Lij4Lia4Li54Lij4LiT4Lie4LiH4Lip4LmMDQor4Liq4Lih4LiZ4Li24LiBIOC4qOC4o+C4teC4m+C4o+C4sOC4lOC4seC4muC4o+C4seC4leC4meC5jA0KK+C4quC4oeC4meC4tuC4gSDguKrguJnguJjguLTguYLguKvguKHguJQNCivguKrguKHguJnguLbguIEg4Liq4Li04LiH4Lir4Liy4LiE4Li44LiTDQor4Liq4Lih4LiZ4Li24LiBIOC4quC4uOC4l+C4mOC4tOC4p+C4h+C4qOC5jA0KK+C4quC4oeC4meC4tuC4gSDguKvguIfguLjguYjguKLguIHguKPguLDguYLguJfguIENCivguKrguKHguJnguLbguIEg4Lit4Lih4Lij4Liq4Li04Lij4Li04Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Liq4Lih4LiZ4Li24LiBIOC4reC4tOC4quC4o+C4seC5iOC4mQ0KK+C4quC4oeC4muC4seC4leC4o+C5jCDguJfguKPguLHguJ7guKLguYzguYHguKLguYnguKENCivguKrguKHguJrguLHguJXguLQg4LiB4Li44Lil4Lin4Li44LiS4Li0DQor4Liq4Lih4Lia4Lix4LiV4Li0IOC5gOC4guC4teC4ouC4p+C5guC4quC4oOC4sg0KK+C4quC4oeC4muC4seC4leC4tCDguYDguITguKPguLfguK3guK3guLLguKnguLINCivguKrguKHguJrguLHguJXguLQg4LiI4Liy4Lij4Li44Lia4Lij4Lij4Lii4LiH4LiE4LmMDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4ieC4seC4leC4o+C4p+C4o+C4uOC4k+C4o+C4seC4leC4meC5jA0KK+C4quC4oeC4muC4seC4leC4tCDguYTguIrguKLguJfguKPguLHguJ7guKLguYwNCivguKrguKHguJrguLHguJXguLQg4LiU4LmJ4Lin4LiH4Lin4LiH4Lio4LmM4Lio4Lij4Li1DQor4Liq4Lih4Lia4Lix4LiV4Li0IOC5gOC4leC4iuC4reC4seC4hOC4o+C5gOC4quC4luC4teC4ouC4ow0KK+C4quC4oeC4muC4seC4leC4tCDguJfguK3guIfguKLguYnguK3guKINCivguKrguKHguJrguLHguJXguLQg4LmA4LiY4Li14Lii4Lij4Lie4LiI4LiZ4LmMDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4muC4seC4p+C4o+C4uOC5iOC4hw0KK+C4quC4oeC4muC4seC4leC4tCDguJvguKPguLDguYDguKrguKPguLTguJDguJnguJ7guITguLjguJMNCivguKrguKHguJrguLHguJXguLQg4Lic4Li54LiB4LmA4LiB4Lip4LijDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4nuC4suC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C4quC4oeC4muC4seC4leC4tCDguYLguJ7guJjguLTguJrguLjguI0NCivguKrguKHguJrguLHguJXguLQg4Lih4Liw4Lir4Liw4Lir4Lih4Lix4LiUDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4ouC4tOC5iOC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4quC4oeC4muC4seC4leC4tCDguYDguKPguLfguYnguK3guIENCivguKrguKHguJrguLHguJXguLQg4Lin4LiH4Lio4LmM4LiB4Liz4LiK4Lix4LiiDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4p+C4tOC4oOC4ueC4qOC4tOC4o+C4tA0KK+C4quC4oeC4muC4seC4leC4tCDguKjguKPguYDguKXguLTguKgNCivguKrguKHguJrguLHguJXguLQg4Liq4Lih4Lio4Lij4Li14Lit4Lix4LiB4Lip4Lij4LmB4Liq4LiHDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4quC4tOC4h+C4q+C5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4quC4oeC4muC4seC4leC4tCDguKrguLjguJnguJfguKPguYDguKrguJPguLUNCivguKrguKHguJrguLHguJXguLQg4Lir4Lih4LmI4Lit4Lih4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Lih4Lia4Lix4LiV4Li0IOC4reC4ouC4ueC5iOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4oeC4muC4seC4leC4tCDguK3guLjguJXguKHguLDguKfguLTguKPguLTguKLguLLguIfguIHguLnguKMNCivguKrguKHguJrguLjguI0g4LmA4LiB4LiV4Lih4LiT4Li1DQor4Liq4Lih4Lia4Li44LiNIOC4iOC4suC4o+C4uOC4o+C4seC4leC4meC5gOC4geC4t+C5ieC4rQ0KK+C4quC4oeC4muC4uOC4jSDguYHguIvguYjguKvguKLguLTguJoNCivguKrguKHguJrguLjguI0g4LiX4Lit4LiH4Lie4LiH4Lip4LmM4LmA4LiZ4Li14Lii4LihDQor4Liq4Lih4Lia4Li44LiNIOC4muC4uOC4jeC4p+C4seC4kuC4meC4sg0KK+C4quC4oeC4muC4uOC4jSDguJ7guLnguJnguKrguLTguKPguKrguLTguJkNCivguKrguKHguJrguLjguI0g4Lij4Lix4LiB4Lip4LmM4Liq4Li44Lij4Lin4LiH4Lio4LiyDQor4Liq4Lih4Lia4Li44LiNIOC4p+C4suC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4oeC4muC4uOC4jSDguKrguLXguJnguYnguLPguYDguIfguLTguJkNCivguKrguKHguJrguLjguI0g4Lit4Lig4Li04Lin4Lij4Lij4LiT4Lio4Lij4Li1DQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4geC4meC4geC4meC4oOC4suC4geC4uOC4pQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguIHguLTguIjguKPguLHguIfguKnguLXguKfguLTguJrguLnguKXguKLguYwNCivguKrguKHguJrguLnguKPguJPguYwg4LmB4LiB4LmJ4Lin4LiB4Liy4LijDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4hOC4h+C4oeC4seC5iOC4mQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguIfguLLguKHguJjguKPguKPguKHguKjguLTguKPguLQNCivguKrguKHguJrguLnguKPguJPguYwg4LiI4Lix4LiZ4LmC4LiX4Lin4Liy4LiXDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4iOC4uOC4peC4nuC4pQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguInguLLguKLguLDguYLguK3guKDguLLguKoNCivguKrguKHguJrguLnguKPguJPguYwg4LiK4Li44LiT4Lir4Liw4Lin4Lix4LiTDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC5geC4i+C5iOC4n+C4uOC5ieC4hw0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguJPguLHguI7guJDguKrguKHguJrguLnguKPguJPguYwNCivguKrguKHguJrguLnguKPguJPguYwg4LiV4Lix4LmJ4LiH4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC5gOC4leC5iOC4suC4l+C4reC4hw0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguJfguK3guIfguK3guKPguYjguLLguKENCivguKrguKHguJrguLnguKPguJPguYwg4LiY4LiZ4Liy4Liq4Li44Lin4Lij4Lij4LiT4LiU4Li04LiW4Li1DQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4meC4tOC4oeC4sA0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguJrguLjguI3guKXguYnguJnguYDguKvguKXguLfguK0NCivguKrguKHguJrguLnguKPguJPguYwg4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Liq4Li44LiC4LmB4Liq4LiZDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4nOC5iOC4reC4h+C5hOC4quC4pw0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguJ7guKPguYDguJTguIrguYDguJTguIrguLANCivguKrguKHguJrguLnguKPguJPguYwg4Lie4Li04LmA4Lio4Lip4Lie4Lix4LiS4LiZ4LiB4Li44LilDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4n+C4ueC5gOC4n+C4t+C5iOC4reC4h+C4quC4oeC4muC4seC4leC4tA0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguKHguLHguYjguIfguKHguLUNCivguKrguKHguJrguLnguKPguJPguYwg4Lii4Lix4LiZ4LiZ4Liy4LiU4Li1DQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4o+C4t+C5iOC4meC4o+C4suC4leC4o+C4tQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguKXguLXguYjguJfguK3guIfguK3guLTguJkNCivguKrguKHguJrguLnguKPguJPguYwg4Lin4LiH4Lio4LmM4Liq4Li44Lin4Lij4Lij4LiT4LiZ4Li04LiY4Li0DQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4p+C4seC4ouC4p+C4tOC4o+C4seC4leC4meC5jA0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguKjguKPguLTguKHguYLguJnguJnguLjguIHguLjguKUNCivguKrguKHguJrguLnguKPguJPguYwg4Lio4Li04Lij4Li04Lia4Lij4Lij4LiI4LiHDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4quC4oeC4reC4uOC4lOC4ow0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguKrguLLguKrguLDguYDguJTguLLguLDguKvguYwNCivguKrguKHguJrguLnguKPguJPguYwg4Liq4Li44LiX4LiY4Li04LiK4Lix4LiHDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC5geC4quC4h+C4lOC4tQ0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguKvguLLguI3guJ7guLHguJLguJnguIrguLHguKLguIHguLnguKMNCivguKrguKHguJrguLnguKPguJPguYwg4Lit4Lij4Lij4LiE4Lio4Li04Lij4Li04LiZ4LiZ4LiX4LmMDQor4Liq4Lih4Lia4Li54Lij4LiT4LmMIOC4reC4tOC4meC4iOC4s+C4m+C4sg0KK+C4quC4oeC4muC4ueC4o+C4k+C5jCDguYLguK3guKDguLLguKrguYDguIjguKPguLTguI3guKfguLTguJfguKLguYwNCivguKrguKHguJvguKPguLDguKrguIfguITguYwg4Lia4Li44LiN4Lii4Liw4LiK4Lix4LiiDQor4Liq4Lih4Lib4Lij4Liw4Liq4LiH4LiE4LmMIOC4reC4uOC5iOC4meC4peC4sOC4oeC5ieC4suC4og0KK+C4quC4oeC4m+C4reC4hyDguYDguIHguKnguKPguYzguKHguJPguLUNCivguKrguKHguJvguK3guIcg4LiI4Li04Lin4LmE4Lie4LmC4Lij4LiI4LiZ4LmM4LiB4Li04LiIDQor4Liq4Lih4Lib4Lit4LiHIOC4lOC4p+C4h+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4oeC4m+C4reC4hyDguYDguJfguJ7guYDguJfguJ7guLINCivguKrguKHguJvguK3guIcg4Lia4Li54Lij4LiT4Liw4Lin4Li44LiS4Li0DQor4Liq4Lih4Lib4Lit4LiHIOC4nuC4uOC4lOC4leC4suC4pQ0KK+C4quC4oeC4m+C4reC4hyDguKLguIfguKfguJPguLTguIrguKLguYwNCivguKrguKHguJvguK3guIcg4LmB4Lin4Lin4Lin4Lix4LiK4Lij4LiwDQor4Liq4Lih4Lib4Lit4LiHIOC4quC4tOC4h+C4q+C5gOC4quC4meC4tQ0KK+C4quC4oeC4m+C4reC4hyDguYDguKvguKXguYjguLLguYDguJ7guYfguIrguKPguKPguLHguJXguJnguYwNCivguKrguKHguJ7guIQg4Lio4Li14Lil4Lie4Li04Lie4Lix4LiS4LiZ4LmMDQor4Liq4Lih4Lie4LiH4Lio4LmMIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4quC4oeC4nuC4h+C4qOC5jCDguKPguLHguJXguJnguJrguLjguKPguLUNCivguKrguKHguJ7guIfguKnguYwg4LiB4Lij4Lij4LiT4Liq4Li54LiVDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4geC4tOC4leC4leC4tOC4o+C4seC4leC4meC4suC4oOC4tOC4meC4seC4meC4l+C5jA0KK+C4quC4oeC4nuC4h+C4qeC5jCDguYLguIHguKjguKXguKPguK3guJQNCivguKrguKHguJ7guIfguKnguYwg4LiE4Lil4LmJ4Liy4Lii4Lih4Li1DQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4iOC4s+C4o+C4seC4qg0KK+C4quC4oeC4nuC4h+C4qeC5jCDguIjguLXguJnguYDguKfguIrguKjguLLguKrguJXguKPguYwNCivguKrguKHguJ7guIfguKnguYwg4LiJ4Liy4Lii4LmB4LiB4LmJ4LinDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4iuC4teC4p+C4sOC5gOC4iOC4o+C4tOC4jeC5hOC4l+C4og0KK+C4quC4oeC4nuC4h+C4qeC5jCDguYHguIvguYjguJXguLHguYnguIcNCivguKrguKHguJ7guIfguKnguYwg4LiT4Lij4LiH4LiE4LmM4LmA4Lib4Lil4Li14LmI4Lii4LiZDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4leC4seC4meC4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4oeC4nuC4h+C4qeC5jCDguJfguKPguIfguJfguKPguLHguJ7guKLguYzguIHguLjguKUNCivguKrguKHguJ7guIfguKnguYwg4LmA4LiX4Lie4LmE4LiB4Lij4Lil4Liy4LioDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4meC4seC4meC4l+C4nuC4o+C4nuC4tOC4nuC4seC4kuC4meC5jA0KK+C4quC4oeC4nuC4h+C4qeC5jCDguJrguLjguI3guITguLjguJMNCivguKrguKHguJ7guIfguKnguYwg4Lib4Lij4Liw4Lig4Liy4Lio4Li04Lij4Li0DQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4m+C4uOC4ouC4ouC4sOC4o+C4uOC4mQ0KK+C4quC4oeC4nuC4h+C4qeC5jCDguJ7guIfguKnguYzguYDguKDguJXguKPguLINCivguKrguKHguJ7guIfguKnguYwg4Lie4Li04LiZ4Li04LiI4LiB4Liy4Lij4LiT4LmMDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC5hOC4nuC4iOC4tOC4leC4ow0KK+C4quC4oeC4nuC4h+C4qeC5jCDguKHguLHguIfguIHguKPguJ7guLLguJnguLTguIoNCivguKrguKHguJ7guIfguKnguYwg4Lii4Li54Liu4Lix4LiZ4LmA4LiH4Liy4LiwDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4o+C4uOC4iOC4tOC4guC4iOC4ow0KK+C4quC4oeC4nuC4h+C4qeC5jCDguKXguLfguK3guIrguLLguJXguLTguYDguKHguJjguLTguIHguLjguKUNCivguKrguKHguJ7guIfguKnguYwg4Lin4LiH4Liq4Lit4Liy4LiUDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4p+C4tOC4o+C4tOC4ouC4sOC4oeC4meC4leC4o+C4tQ0KK+C4quC4oeC4nuC4h+C4qeC5jCDguKjguKPguLXguKrguLLguIHguKUNCivguKrguKHguJ7guIfguKnguYwg4Liq4LiB4Li44Lil4Liq4Li44Lig4Liy4Lii4LiZ4LiyDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4quC4sOC4quC4oeC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4oeC4nuC4h+C4qeC5jCDguKrguLTguJnguKrguJTguKfguIENCivguKrguKHguJ7guIfguKnguYwg4Liq4Li44LiZ4LiX4Lij4LiY4Lij4Lij4LihDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC5geC4quC4h+C4quC4tOC4meC4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4oeC4nuC4h+C4qeC5jCDguKvguLLguI3guJ7guLLguJPguLTguIrguKLguYzguJ7guLHguJnguJjguLjguYwNCivguKrguKHguJ7guIfguKnguYwg4Lit4Lih4Lij4LiY4Lix4LiN4Liq4Li04Lij4Li04LiB4Li44LilDQor4Liq4Lih4Lie4LiH4Lip4LmMIOC4reC4suC4q+C4oeC4seC4lA0KK+C4quC4oeC4nuC4iOC4meC5jCDguIHguKLguLLguKfguLHguJLguJnguIHguLTguIgNCivguKrguKHguJ7guIjguJnguYwg4Lir4Lit4Lih4LiZ4Li04Lii4LihDQor4Liq4Lih4Lie4LijIOC4geC4tOC4iOC4geC4seC4h+C4p+C4suC4pQ0KK+C4quC4oeC4nuC4oyDguYHguIHguYnguKfguJnguLTguKUNCivguKrguKHguJ7guKMg4LiE4LiH4Liq4Li04LiX4LiY4Li04LmMDQor4Liq4Lih4Lie4LijIOC4h+C4reC4meC4q+C4reC4oQ0KK+C4quC4oeC4nuC4oyDguIjguLHguJnguJfguLDguKPguLHguIfguKjguKPguLUNCivguKrguKHguJ7guKMg4LmB4LiI4Lin4LmA4LiI4Lij4Li04LiNDQor4Liq4Lih4Lie4LijIOC4iuC4seC4ouC4meC4tOC4hOC4oQ0KK+C4quC4oeC4nuC4oyDguYDguIrguLfguYnguK3guYDguIHguJXguLgNCivguKrguKHguJ7guKMg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4Liq4Lih4Lie4LijIOC4lOC4teC5hOC4nuC4qOC4suC4pQ0KK+C4quC4oeC4nuC4oyDguJXguLjguYjguKHguKHguLANCivguKrguKHguJ7guKMg4LiX4Lit4LiH4Lib4Lij4Liw4LiU4Li04Lip4LiQDQor4Liq4Lih4Lie4LijIOC5gOC4l+C4teC4ouC4meC4l+C4seC4lA0KK+C4quC4oeC4nuC4oyDguJnguYnguK3guKLguYDguILguYfguKHguYDguIfguLTguJkNCivguKrguKHguJ7guKMg4Lia4Lix4Lin4Lit4Li44LmE4LijDQor4Liq4Lih4Lie4LijIOC4muC4uOC4leC4o+C4guC4seC4meC4l+C4reC4hw0KK+C4quC4oeC4nuC4oyDguJvguLLguJnguYPguKLguKrguKHguJrguLnguKPguJPguYwNCivguKrguKHguJ7guKMg4Lie4LiH4Lip4LmM4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Lih4Lie4LijIOC4nuC4suC4iuC4teC4o+C4seC4leC4meC5jA0KK+C4quC4oeC4nuC4oyDguYDguJ7guIrguKPguJTguLUNCivguKrguKHguJ7guKMg4Lig4Li54LmI4Lie4Lin4LiHDQor4Liq4Lih4Lie4LijIOC4oeC4tOC4o+C4reC4i+C4sg0KK+C4quC4oeC4nuC4oyDguKPguK3guJTguKPguLHguKjguKHguLUNCivguKrguKHguJ7guKMg4LmA4Lij4Li34Lit4LiH4Lik4LiX4LiY4Li04LmMDQor4Liq4Lih4Lie4LijIOC5gOC4peC4suC4q+C4o+C4seC4leC4meC4suC4q+C4tOC4o+C4seC4jQ0KK+C4quC4oeC4nuC4oyDguKfguKPguKPguJPguIrguJnguLANCivguKrguKHguJ7guKMg4Lin4Li04Lil4Lix4Lii4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lih4Lie4LijIOC4qOC4o+C4teC5gOC4nuC4iuC4ow0KK+C4quC4oeC4nuC4oyDguKrguJnguJfguK3guIcNCivguKrguKHguJ7guKMg4Liq4Liy4LiY4Li04LiV4Lie4Li04LiQ4LiB4Li44LilDQor4Liq4Lih4Lie4LijIOC4quC4uOC4guC5geC4geC5ieC4pw0KK+C4quC4oeC4nuC4oyDguYHguKrguIfguJnguJnguJfguYwNCivguKrguKHguJ7guKMg4Lir4Liy4LiN4Lie4LiH4Lip4LmM4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Lih4Lie4LijIOC4reC5iOC4reC4h+C4peC4sOC4reC4rQ0KK+C4quC4oeC4nuC4oyDguK3guLTguKjguKPguLLguJnguLjguKPguLHguIHguKnguYwNCivguKrguKHguJ7guKTguKnguYwg4Lie4Lij4Lir4Lih4Lih4Li0DQor4Liq4Lih4Lie4LilIOC4ieC4suC4ouC4suC4ouC4mQ0KK+C4quC4oeC4nuC4pSDguJjguLLguJTguLLguIHguKMNCivguKrguKHguJ7guKUg4Lie4Li24LiH4Lih4LiH4LiE4Lil4LiK4Lix4Lii4LiB4Li04LiIDQor4Liq4Lih4Lie4LilIOC4p+C4h+C4qOC5jOC4mOC4tOC4muC4lOC4teC5gOC4lOC4ig0KK+C4quC4oeC4nuC4pSDguKrguLjguJ7guYLguKUNCivguKrguKHguJ7guLHguIHguJXguKPguYwg4Lih4Lir4Liy4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Liq4Lih4Lie4Lix4LiZ4LiY4LmMIOC4muC4uOC4jeC4geC4seC4h+C4p+C4suC4pQ0KK+C4quC4oeC4nuC4tOC4qCDguIHguKPguLDguYHguKrguKPguYzguITguLjguJvguJXguYwNCivguKrguKHguJ7guLTguKgg4LiE4Lin4Lij4LmB4LiW4Lil4LiHDQor4Liq4Lih4Lie4Li04LioIOC4iuC4uOC5iOC4oeC4iuC4p+C4og0KK+C4quC4oeC4nuC4tOC4qCDguYLguJXguKHguLDguYLguJkNCivguKrguKHguJ7guLTguKgg4LmA4LiZ4Li04LiZ4LiB4Lij4LmI4Liy4LiHDQor4Liq4Lih4Lie4Li04LioIOC4nuC4seC4kuC4meC4suC4pOC4lOC4tQ0KK+C4quC4oeC4nuC4tOC4qCDguKLguK3guJTguKrguKfguLHguKrguJTguLTguYwNCivguKrguKHguJ7guLTguKgg4Lin4Li04LiK4Lix4Lii4LiB4Li44LilDQor4Liq4Lih4Lie4Li04LioIOC4quC4tOC4peC4uOC4iOC4iOC4ouC4suC4meC4meC4l+C5jA0KK+C4quC4oeC4nuC4tOC4qCDguK3guYjguKfguKHguJjguKPguKPguKENCivguKrguKHguKDguJ4g4LiB4Li04LiI4LmE4LiK4Lii4LiyDQor4Liq4Lih4Lig4LieIOC4iOC4tOC4o+C4iOC4o+C4seC4pQ0KK+C4quC4oeC4oOC4niDguJXguLTguKPguIrguLjguKXguLUNCivguKrguKHguKDguJ4g4Lib4Lij4Liw4LiB4Lit4Lia4LiZ4Lie4LmA4LiB4LmJ4LiyDQor4Liq4Lih4Lig4LieIOC4nuC4ueC4meC4nOC4peC5gOC4iOC4o+C4tOC4jeC4qOC4o+C4tQ0KK+C4quC4oeC4oOC4niDguKXguKHguKXguK3guKINCivguKrguKHguKDguJ4g4Lio4Lij4Li44LiV4Lin4Lij4Liq4LiB4Li44LilDQor4Liq4Lih4Lig4LieIOC4quC4uOC4o+C4seC4geC4guC4geC4sA0KK+C4quC4oeC4oOC4niDguK3guLHguKHguJ7guLjguJvguKPguLDguKDguLINCivguKrguKHguKDguLLguJ4g4Lij4Lix4LiV4LiZ4LiU4Liy4LiB4Li44LilDQor4Liq4Lih4Lih4Liy4LiVIOC4quC4seC4h+C4guC4nuC4seC4meC4mOC5jA0KK+C4quC4oeC4oeC4suC4leC4oyDguJ7guKPguKvguKHguLLguJnguLjguIHguLnguKUNCivguKrguKHguKHguLLguJXguKPguYwg4LiK4LmJ4Liy4LiH4LmA4Lic4Li34Lit4LiBDQor4Liq4Lih4Lih4Liy4LioIOC4geC4p+C4ouC4oeC4h+C4hOC4pQ0KK+C4quC4oeC4oeC4tOC4leC4oyDguIjguLHguJnguJfguKPguYzguKDguLHguIHguJTguLUNCivguKrguKHguKHguLjguJXguLQg4Lij4Lix4LiK4LiV4Liw4Lin4Lij4Lij4LiTDQor4Liq4Lih4Lii4LioIOC5gOC4geC4tOC4lOC4reC4meC4seC4meC4leC5jA0KK+C4quC4oeC4ouC4qCDguIjguLHguYjguJnguYDguJ7guYfguIrguKMNCivguKrguKHguKLguKgg4LmA4LiK4Li14LmI4Lii4Lin4LiK4Liy4LiN4LmB4LiV4LmI4LiHDQor4Liq4Lih4Lii4LioIOC5hOC4leC4o+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4nuC4h+C4qOC5jA0KK+C4quC4oeC4ouC4qCDguJrguLjguI3guIrguLHguKLguKjguKPguLUNCivguKrguKHguKLguKgg4Lie4Lij4LmA4LiI4Lij4Li04LiN4Lin4Lix4LiS4LiZ4LiyDQor4Liq4Lih4Lii4LioIOC4oeC4q+C4seC4l+C4mOC4meC4sOC4oeC4h+C4hOC4pQ0KK+C4quC4oeC4ouC4qCDguKPguLjguIjguLTguYLguKHguKPguLANCivguKrguKHguKLguKgg4Lin4Li04Lia4Li54Lil4Lii4LmM4Lib4Li04LmI4LiZDQor4Liq4Lih4Lii4LioIOC4quC4seC4h+C4guC5jOC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4quC4oeC4ouC4qCDguKvguKXguLXguILguLLguKcNCivguKrguKHguKLguLIg4Lij4Lit4LiU4Lir4Lij4LmI4Liy4LiiDQor4Liq4Lih4LijIOC4iOC4seC4meC4l+C4o+C5jOC5gOC4peC4tOC4qA0KK+C4quC4oeC4oyDguYTguJXguKPguKfguLTguIrguLINCivguKrguKHguKMg4Lib4Liy4LiZ4Lii4LmJ4Lit4LiiDQor4Liq4Lih4LijIOC4oeC4teC5geC4geC5ieC4pw0KK+C4quC4oeC4oyDguKjguLTguJjguKPguIHguLjguKUNCivguKrguKHguKMg4Lit4Lij4Lij4LiW4Lie4Li04LiX4Lii4LmMDQor4Liq4Lih4Lij4Lij4Lix4LiV4LiZ4LmMIOC4lOC4tOC4qeC4kOC4reC4uOC4lOC4oeC5guC4nuC4mOC4tOC5jA0KK+C4quC4oeC4o+C4qiDguKHguIfguITguKUNCivguKrguKHguKPguLHguIEg4LmE4Lie4Lia4Li54Lil4Lii4LmM4Lin4Li14Lij4Liw4Liq4LiB4Li44LilDQor4Liq4Lih4Lij4Lix4LiB4Lip4LmMIOC4leC5iOC4reC4p+C4h+C4qOC5jOC5hOC4nuC4iuC4ouC4meC4leC5jA0KK+C4quC4oeC4o+C4seC4leC4meC5jCDguJvguKPguLXguYDguIjguKPguLTguI0NCivguKrguKHguKTguIHguKnguYwg4Lir4Li04Lij4Lix4LiN4Lio4Li44Lig4LmC4LiK4LiV4Li0DQor4Liq4Lih4Lik4LiU4Li1IOC4muC4uOC4jeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4oeC4pOC4lOC4tSDguYDguKrguJnguLDguKfguLXguJPguLTguJkNCivguKrguKHguKTguJfguLHguKIg4LiB4Lil4LmI4Lit4Lih4LiZ4LmJ4Lit4LiiDQor4Liq4Lih4Lil4Lix4LiB4Lip4LiT4LmMIOC4geC4tOC4leC4tOC4nuC4h+C4qeC5jA0KK+C4quC4oeC4peC4seC4geC4qeC4k+C5jCDguIvguYjguK3guKHguJvguKPguLDguJTguLTguKnguJDguYwNCivguKrguKHguKXguLHguIHguKnguJPguYwg4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmA4Lih4LiB4Li44LilDQor4Liq4Lih4Lil4Lix4LiB4Lip4LiT4LmMIOC4peC4tOC4meC4iOC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4quC4oeC4peC4seC4geC4qeC4k+C5jCDguKrguLjguKfguKPguKPguJPguYHguKrguIcNCivguKrguKHguKfguIfguKjguYwg4LiE4Lij4LmJ4Liy4Lih4LiB4Liz4LiI4LijDQor4Liq4Lih4Lin4LiH4Lip4LmMIOC4iuC4s+C4meC4suC4jeC4geC4tOC4iOC4iOC4sg0KK+C4quC4oeC4p+C4tOC4l+C4ouC5jCDguJ7guIfguKjguYzguJrguKPguLTguJ7guLHguJXguKMNCivguKrguKHguKjguKPguLUg4LiB4Li04LiI4Lij4Lix4LiB4Lip4LiyDQor4Liq4Lih4Lio4Lij4Li1IOC4guC4suC4p+C4l+C4reC4hw0KK+C4quC4oeC4qOC4o+C4tSDguIfguYjguKfguJnguIjguKMNCivguKrguKHguKjguKPguLUg4LiI4Li04LiV4LiI4Lij4Lix4Liq4LmB4Liq4LiHDQor4Liq4Lih4Lio4Lij4Li1IOC4ieC4tOC4oeC4hOC4peC5ieC4suC4og0KK+C4quC4oeC4qOC4o+C4tSDguIrguLnguKjguKPguLXguJnguKfguKUNCivguKrguKHguKjguKPguLUg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Liq4Lih4Lio4Lij4Li1IOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4quC4oeC4qOC4o+C4tSDguJXguLHguYnguIfguYDguIjguKPguLTguI0NCivguKrguKHguKjguKPguLUg4LmA4LiW4LmI4LiHDQor4Liq4Lih4Lio4Lij4Li1IOC5gOC4l+C4qOC4mOC4o+C4o+C4oQ0KK+C4quC4oeC4qOC4o+C4tSDguJnguLLguKrguKHguJ3guLHguJkNCivguKrguKHguKjguKPguLUg4Lia4Li44LiN4Lio4Lix4LiB4LiU4Li04LmMDQor4Liq4Lih4Lio4Lij4Li1IOC4m+C4seC4l+C4oeC4nuC4h+C4qOC5jOC4m+C4o+C4sOC4ouC4ueC4ow0KK+C4quC4oeC4qOC4o+C4tSDguJ7guKPguJvguKPguLHguIrguI3guLLguJ7guIfguKjguYwNCivguKrguKHguKjguKPguLUg4Lie4Li54Lil4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Lih4Lio4Lij4Li1IOC4oOC4ueC4q+C4suC4meC4suC4oQ0KK+C4quC4oeC4qOC4o+C4tSDguKLguKjguIrguLkNCivguKrguKHguKjguKPguLUg4Lij4Lix4LiV4LiZ4Lib4Lij4Liw4Lig4Liy4LiVDQor4Liq4Lih4Lio4Lij4Li1IOC4peC4tOC4guC4tOC4leC4quC4geC4uOC4peC4iuC4seC4og0KK+C4quC4oeC4qOC4o+C4tSDguKfguIfguKnguYzguKvguKfguLHguIfguIjguLHguJnguJfguKPguYwNCivguKrguKHguKjguKPguLUg4Lin4Li04Lij4Li04Lii4Liw4Lia4Li44Lio4Lii4LmMDQor4Liq4Lih4Lio4Lij4Li1IOC4qOC4seC4geC4lOC4tOC5jOC5gOC4quC4oeC4reC4nuC4o+C4q+C4oQ0KK+C4quC4oeC4qOC4o+C4tSDguKrguKXguLHguJTguKLguLDguJnguLHguJnguJfguYwNCivguKrguKHguKjguKPguLUg4Liq4Li14Lin4Lix4LiZ4LiZ4LiyDQor4Liq4Lih4Lio4Lij4Li1IOC5gOC4quC5h+C4h+C4lOC4reC4meC5hOC4nuC4ow0KK+C4quC4oeC4qOC4o+C4tSDguKvguLLguKHguJnguJXguKPguLUNCivguKrguKHguKjguKPguLUg4Lit4Lix4LiH4LiE4LiZ4Liy4Lin4Lij4Liy4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Lih4Lio4Lij4Li1IOC4reC4uOC5iOC4meC4p+C4seC4kuC4meC4meC4uOC4geC4ueC4pQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguIHguKPguLjguIfguJfguK3guIfguIjguLHguJnguJfguKPguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiB4Liy4LiN4LiI4LiZ4Lib4Lij4Liw4Lie4Li04LiTDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4geC4tOC4leC4leC4tOC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguIHguKPguLXguKLguIfguYTguIrguKLguIHguLTguIjguIHguLjguKUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmB4LiB4LmJ4Lin4Lia4Lin4LijDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4guC4seC4leC4leC4uOC4nuC4h+C4qOC5jOC4p+C4k+C4tOC4ig0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguITguIfguYTguJ7guKjguLLguKXguJbguLLguKfguKMNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiE4Li44LmJ4Lih4Lig4Lix4Lii4Lie4Liy4LilDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4iOC4h+C4p+C4meC4tOC4iuC4ouC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguIjguLHguJnguJfguKPguIHguLjguKUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiI4Liy4Lij4Li44LiI4Li44LiR4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4iOC4tOC4meC4suC4o+C4seC4geC4qeC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguIjguJnguIjguKPguLHguKrguKrguIHguLjguKUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmA4LiI4Li34Lit4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4ieC4peC4ouC4quC4seC4h+C4guC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguIrguLLguI3guKrguKHguKMNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiK4Li54Lin4LiH4Lio4LmM4Lin4Liy4Lil4Lii4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5g+C4iuC5iOC5geC4meC5iA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYHguIvguYjguJXguLHguYnguIcNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5geC4i+C5iOC5guC4leC4pw0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJTguLXguJnguIENCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiV4Lij4Liw4LiB4Li54Lil4LmC4Lit4Liq4LiWDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4leC4seC5ieC4h+C5gOC4iOC4o+C4tOC4jeC4mOC4o+C4o+C4oQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJXguLTguKXguIHguYDguKXguLTguKgNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmC4LiV4Lij4Lix4LiB4Lip4LiyDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4l+C4o+C4seC4nuC4ouC5jOC4p+C4tOC5hOC4pQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJfguLHguYjguIfguJfguK3guIcNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmA4LiX4Li14LmI4Lii4LiH4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4mOC4o+C4pOC4l+C4mOC4tOC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJnguKfguKXguK3guLjguYTguKMNCivguKrguKHguKjguLHguIHguJTguLTguYwg4LiZ4Li04LiZ4LiZ4Liy4LiXDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4muC4p+C4o+C4reC4meC4seC4meC4leC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJrguLjguI3guKHguLLguYDguKXguLTguKgNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lia4Li54Lij4LiT4Liw4Lio4Li04Lil4Lib4LiB4Li04LiIDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4m+C4o+C4sOC4qOC4suC4quC4meC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJvguLLguKXguKjguKPguLUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lic4LiI4LiH4Lie4Lik4LiX4LiY4Li04LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4lOC4lOC5ieC4p+C4hw0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguJ7guKTguIHguKnguLDguKfguLHguJkNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lie4Lix4LiZ4LiY4Li44LmM4Liq4LiZDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4t+C4iuC4quC4sOC4geC4sA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguJ7guLXguKLguKPguKPguLHguIfguKrguKPguKPguITguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lig4LiE4Liq4Li04Lij4Li04LiB4Li44LilDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4oeC4h+C4hOC4peC4oeC4q+C4suC4iuC4seC4og0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKHguLLguJTguLUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lih4LmC4LiZ4LiX4Lij4Lix4Lie4Lii4LmM4Lia4Liz4Lij4Li44LiHDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4ouC4tOC5iOC4h+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKPguLDguKfguLTguYLguKPguIjguJnguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lij4Liy4LiK4LmB4Lie4LiX4Lii4Liy4LiE4LihDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4o+C4t+C4reC4h+C5guC4o+C4iOC4meC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKXguLTguILguLTguJXguKfguLTguJfguKLguKjguLHguIHguJTguLTguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lil4Li34Lit4Lie4Lix4LiS4LiZ4Liq4Li44LiCDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5guC4peC5iOC4q+C5jOC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKfguIfguKnguYzguJ7guLTguJ7guLHguJLguJnguYzguJ7guIfguKnguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lin4LmI4Lit4LiH4Lit4LiZ4Lix4LiZ4LiV4LmM4Lin4Li04LiX4Lii4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4suC4meC4tOC4iuC4ouC4suC4h+C4geC4ueC4ow0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKfguLTguKfguLHguJLguJnguKjguLTguKPguLTguKjguLHguIHguJTguLTguYwNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lio4Lij4Lio4Lij4Li14LiX4Lit4LiHDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4qOC4o+C4teC4quC4geC4suC4p+C4geC4uOC4pQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKjguLHguIHguJTguLTguYzguYLguKjguKDguJPguIHguLjguKUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lio4Li04Lij4Li04LmE4Lie4Lij4Lin4Lix4LiZDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4lOC5g+C4qg0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKrguKPguYTguIrguKLguYDguKHguJjguLINCivguKrguKHguKjguLHguIHguJTguLTguYwg4Liq4Lix4LiZ4LiX4Lix4LiV4LmA4Lin4LiKDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4tOC4meC4iuC4seC4ouC4lOC4tQ0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguKrguLjguILguJzguJTguLjguIcNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Liq4Li44LiX4LiY4Li04Lic4Lil4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4quC4uOC4p+C4o+C4o+C4k+C4nuC4tOC4muC4ueC4peC4ouC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguKrguLfguK3guYLguJXguIfguLLguKENCivguKrguKHguKjguLHguIHguJTguLTguYwg4LmC4Liq4LiV4LiW4Li04LmA4Liq4Liy4Lin4Lig4Liy4LiE4Lii4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4q+C4p+C4seC4h+C5guC4i+C5iuC4sA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguKvguKXguLfguK3guIfguYDguIjguKPguLTguI3guKfguLHguJLguJnguLINCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lit4Lig4Li04LiI4Liy4Lij4Li1DQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4o+C4uOC4k+C4o+C4seC4leC4meC5jA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguK3guLHguKjguKfguKLguLjguJfguJjguJ7guKUNCivguKrguKHguKjguLHguIHguJTguLTguYwg4Lit4Li04LiH4LiE4LiZ4Lix4LiZ4LiX4LmMDQor4Liq4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4uOC4leC4oeC4sA0KK+C4quC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguK3guLfguYnguK3guKPguLLguKjguLXguIHguLjguKUNCivguKrguKHguKjguLTguKPguLQg4Lie4Lix4LiS4LiZ4Lib4Lij4Liw4Lig4Liy4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Lih4Lip4LijIOC4l+C4reC4h+C4p+C4tOC4p+C4seC4kuC4meC5jA0KK+C4quC4oeC4quC4meC4tOC4lyDguJXguLLguKHguJ7guKMNCivguKrguKHguKrguKHguLHguKIg4LiY4Liw4LmA4Lio4Lij4Lip4LiQDQor4Liq4Lih4Liq4Lij4Li1IOC4nuC4h+C4qOC5jOC5geC4nuC4l+C4ouC5jOC4nuC4tOC4meC4tOC4iA0KK+C4quC4oeC4quC5iOC4p+C4mSDguInguLLguKLguLLguKXguLHguIHguKnguJPguYwNCivguKrguKHguKrguLTguJfguJjguLTguYwg4Lin4Li04LmA4LiK4Lip4LiZ4Lil4Li04LiZ4Lin4LiH4Lip4LmMDQor4Liq4Lih4Liq4Li44LiCIOC4guC4seC4meC4leC4tOC4reC4uOC4lOC4oQ0KK+C4quC4oeC4quC4uOC4giDguJ7guKPguLLguKHguYDguIjguKPguLTguI0NCivguKrguKHguKrguLjguIIg4Liq4Li04LiB4LiC4Lib4Lix4LiN4LiN4LiyDQor4Liq4Lih4Lir4LiN4Li04LiHIOC4l+C4teC4m+C4sOC4quC4oeC4muC4seC4leC4tA0KK+C4quC4oeC4q+C4oeC4suC4oiDguIHguKXguLTguYjguJnguYHguIjguYjguKENCivguKrguKHguKvguKHguLLguKIg4LmA4LiC4LiV4Lij4LiE4LiHDQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4iOC4tOC4leC4leC4tOC4p+C4seC4kuC4meC4geC4uOC4pQ0KK+C4quC4oeC4q+C4oeC4suC4oiDguIrguLTguJnguKfguLTguIrguLINCivguKrguKHguKvguKHguLLguKIg4LiU4Liy4Lia4LiX4Lit4LiH4LiU4Li1DQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4l+C4p+C4teC4quC4uOC4l+C4mOC4tOC5jA0KK+C4quC4oeC4q+C4oeC4suC4oiDguJnguLLguITguKrguKHguJrguLnguKPguJPguYwNCivguKrguKHguKvguKHguLLguKIg4Lib4Lij4Liw4Lig4Liy4LiB4LijDQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4nuC4peC4suC4ouC5gOC4oeC4t+C4reC4hw0KK+C4quC4oeC4q+C4oeC4suC4oiDguKDguKPguLLguKPguLHguJXguJnguKfguLHguJLguJnguYwNCivguKrguKHguKvguKHguLLguKIg4LmE4Lih4LmJ4LmA4LiB4LiV4Li4DQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4peC4sOC4reC4reC4h+C4qOC4o+C4tQ0KK+C4quC4oeC4q+C4oeC4suC4oiDguKfguYLguKPguJTguKHguKfguLTguJfguKLguLINCivguKrguKHguKvguKHguLLguKIg4Liq4Lit4LiZ4Lin4Li04LiX4Lii4LmMDQor4Liq4Lih4Lir4Lih4Liy4LiiIOC4quC4uOC4lOC4guC4suC4pw0KK+C4quC4oeC4q+C4oeC4suC4oiDguKvguKfguLHguIfguJfguK3guIcNCivguKrguKHguKvguKHguLLguKIg4Lit4Li04LiX4LiY4Li04Lih4LiT4Li14Lij4Lix4LiV4LiZ4LmMDQor4Liq4Lih4Lir4Lin4Lix4LiHIOC5gOC4geC4qeC4oeC5guC4geC4quC4tOC4meC4l+C4o+C5jA0KK+C4quC4oeC4q+C4p+C4seC4hyDguIrguLjguJnguYDguIjguKPguLTguI0NCivguKrguKHguKvguKfguLHguIcg4LiZ4Lix4LiZ4LiV4LmM4LiI4Liy4Lij4Li44Lin4LiH4Lio4LmMDQor4Liq4Lih4Lir4Lin4Lix4LiHIOC5gOC4nuC4iuC4o+C4nuC4tOC4meC4tOC4iOC4p+C4h+C4qOC5jA0KK+C4quC4oeC4q+C4p+C4seC4hyDguKXguK3guKHguLLguYDguKXguLANCivguKrguKHguKvguKfguLHguIcg4Liq4Liy4LiY4Li04LiV4Lit4LmA4LiZ4LiB4LiK4Lix4LiiDQor4Liq4Lih4Lir4Lin4Lix4LiHIOC4reC4o+C4uOC4k+C4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4quC4oeC4reC4suC4iCDguK3guKLguLnguYjguIHguLTguIjguJXguLTguIrguLHguKINCivguKrguKHguLHguITguKMg4LiV4Lix4LmJ4LiH4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Liq4LihDQor4Liq4Lih4Lix4LiE4LijIOC4oeC4uOC5iOC4h+C4q+C4oeC4suC4og0KK+C4quC4oeC4seC4hOC4oyDguK3guLTguJnguJfguKPguKjguLTguKXguJvguYwNCivguKrguKHguLHguKIg4LmA4LiC4Li14Lii4Lin4Liq4Liw4Lit4Liy4LiUDQor4Liq4Lih4Lix4LiiIOC5geC4i+C5iOC4iOC4seC4hw0KK+C4quC4oeC4seC4oiDguJnguLTguKXguYLguJUNCivguKrguKHguLHguKIg4LmA4Lie4Li04LmI4Lih4Lie4Li54Lil4Lin4Li04LiX4Lii4LiyDQor4Liq4Lih4Lix4LiiIOC5gOC4peC4tOC4qOC4geC4peC4suC4hw0KK+C4quC4oeC4seC4oiDguKrguLXguJfguLUNCivguKrguKHguLHguKIg4Lit4Li44LiT4Lir4Lie4Lix4LiZ4LiYDQor4Liq4Lih4Liy4LiZIOC4geC4tOC5iOC4h+C4nuC4o+C5hOC4nuC4meC4tOC4nuC4seC4kuC4meC5jA0KK+C4quC4oeC4suC4mSDguITguYnguLLguITguKXguYjguK3guIcNCivguKrguKHguLLguJkg4LmA4LiI4LiZ4LiZ4Lig4LiyDQor4Liq4Lih4Liy4LiZIOC5gOC4i+C5h+C4meC5gOC4iuC4suC4p+C4meC4tOC4ig0KK+C4quC4oeC4suC4mSDguYLguJXguIHguKPguLDguIjguYjguLLguIcNCivguKrguKHguLLguJkg4LiY4Li54Lib4LmA4LiX4Li14Lii4LiZDQor4Liq4Lih4Liy4LiZIOC4muC4uOC4qeC4ouC4l+C4o+C4tOC4geC4suC4geC4o+C4k+C5jA0KK+C4quC4oeC4suC4mSDguJ7guKXguLXguJrguLHguJXguKMNCivguKrguKHguLLguJkg4Lih4LmI4Lin4LiH4Liq4Li14LiV4Lit4LiHDQor4Liq4Lih4Liy4LiZIOC5geC4ouC5ieC4oeC5gOC4geC4qeC4ow0KK+C4quC4oeC4suC4mSDguYDguKXguLXguYnguKLguIfguJvguKPguLDguKLguLnguKMNCivguKrguKHguLLguJkg4Lio4Li04Lij4Li04LmE4Lie4Lie4Lij4Lij4LiTDQor4Liq4Lih4Liy4LiZIOC4quC4teC4l+C4sg0KK+C4quC4oeC4suC4mSDguYLguKrguJTguYnguKfguIcNCivguKrguKHguLLguJkg4Lit4Lix4Lia4LiU4Li44Lil4LmA4Lil4Liy4Liw4Lir4LmMDQor4Liq4Lih4Liy4LiZ4Lie4LilIOC4reC4ouC4ueC5iOC4reC5iOC4reC4mQ0KK+C4quC4oeC4suC4o+C4uOC4lSDguKHguLDguKPguLjguKXguLUNCivguKrguKHguLTguJUg4Lin4Lij4Lih4LiH4LiE4LilDQor4Liq4Lih4Li04LiX4LiY4Li04LmMIOC4quC4q+C4meC4suC4p+C4tOC4mQ0KK+C4quC4oeC4uOC4l+C4oyDguYHguJ7guKPguKHguJPguLUNCivguKrguKHguYDguIHguKXguLXguKLguKcg4Lia4Li44LiN4LiE4LiHDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4geC4tOC4leC4leC4tOC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguILguKfguLHguI3guJTguLUNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4LiH4Liy4Lih4LmA4Liq4LiH4Li14LmI4Lii4LihDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4iOC4tOC4o+C4o+C4seC4leC4meC4iuC4suC4jQ0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguIrguKfguKXguLTguJXguIjguLTguKPguLLguJ7guLHguJnguJjguLjguYwNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4LmE4LiK4Lii4Liq4Li04LiH4Lir4LmMDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC5geC4i+C5iOC5gOC4muC5ig0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguJXguLHguYnguIfguJXguKPguIfguIjguLTguJXguKPguYwNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4LmE4LiV4Lij4Lij4Lix4LiV4LiZ4LmM4LiX4Lin4Li14Liq4Li44LiCDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC5geC4l+C5iOC4meC4l+C4reC4hw0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguJnguLTguKPguLHguJnguJTguKPguYzguKfguIfguKjguYzguKfguLLguJkNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4Lib4Lij4Liw4LiB4Lit4Lia4Liq4Li44Lie4Lij4Lij4LiTDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4nOC4peC4p+C4tOC5gOC4qOC4qeC4iuC4seC4ouC4geC4uOC4pQ0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguJ7guLHguJnguJjguLjguYzguKjguLTguKPguLQNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4Lif4Li54LiB4Lij4Liw4LmA4LiU4Li34LmI4Lit4LiHDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC5gOC4oeC4t+C4reC4h+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguKPguLjguIjguLTguKPguKfguLHguJLguJnguYwNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4LmA4Lil4Li04Lio4Lil4Lia4LiY4Liy4LiV4Lij4Li1DQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4p+C4seC4kuC4meC4mOC4o+C4o+C4oQ0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguKjguKPguJfguKPguIcNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4Lio4Li44Lig4LmC4LiB4Lin4Li04LiXDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4quC4tOC4h+C4q+C5jOC5geC4geC5ieC4pw0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguKrguLjguKPguYDguIrguKnguJDguYzguIHguLTguIgNCivguKrguKHguYDguIHguLXguKLguKPguJXguLQg4Lir4Liy4LiN4Lig4Lix4LiX4Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Lih4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4reC4o+C4uOC5guC4k+C4l+C4seC4ouC4iOC4tOC4leC4ow0KK+C4quC4oeC5gOC4geC4teC4ouC4o+C4leC4tCDguYDguK3guJnguJfguLDguKHguLTguJkNCivguKrguKHguYDguIjguJUg4LmA4LiB4LiV4Li44LmB4LiB4LmJ4LinDQor4Liq4Lih4LmA4LiI4LiV4LiZ4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4geC4o+C4sOC4iOC5iOC4suC4hw0KK+C4quC4oeC5gOC4iOC4leC4meC5jCDguJjguLPguKPguIfguKPguLLguIrguJnguLTguJXguLQNCivguKrguKHguYDguIjguJXguJnguYwg4LmA4Lil4Li04Lio4Lie4Lil4Liy4Lie4LiH4Lio4LmMDQor4Liq4Lih4LmA4LiI4LiV4LiZ4LmMIOC5gOC4reC4teC5iOC4ouC4oeC4reC4mOC4tOC4pOC4l+C4mOC4tOC5jA0KK+C4quC4oeC5gOC4lOC5h+C4iCDguKrguLfguJrguYDguKvguKXguYjguLLguKPguJoNCivguKrguKHguYDguJTguIog4LiU4Li44Lil4Lii4Lit4LiZ4Li44LiB4Li04LiIDQor4Liq4Lih4LmA4LiU4LiKIOC4oeC4k+C4teC5hOC4oeC4leC4o+C4teC4iOC4tOC4lQ0KK+C4quC4oeC5gOC4lOC4iiDguKrguLjguKfguKPguKPguJPguJnguLLguIQNCivguKrguKHguYDguJ7guYfguIrguKMg4LiY4Lij4Lij4Lih4LiW4Liy4Lin4Lij4Lin4LiT4Li04LiKDQor4Liq4Lih4LmA4Lir4Lih4Li34Lit4LiZIOC4m+C4o+C4sOC5hOC4nuC4ouC5jA0KK+C4quC4oeC5guC4iuC4hCDguKXguLTguYnguKHguYDguIjguKPguLTguI0NCivguKrguKHguYLguJ7guJjguLQg4Liq4Lij4Lix4LiE4LiE4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Lih4LmC4Lig4LiKIOC5gOC4m+C4peC4teC5iOC4ouC4meC4muC4suC4h+C4ouC4suC4hw0KK+C4quC4oeC5guC4oOC4iuC4meC5jCDguYHguIHguYjguJnguJfguK3guIfguYHguJTguIcNCivguKrguKHguYLguKDguIrguJnguYwg4LmB4LiV4LiH4Lia4Li44LiV4LijDQor4Liq4Lih4LmC4Lig4LiK4LiZ4LmMIOC4nuC4uOC4kuC4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4oeC5guC4oOC4iuC4meC5jCDguKjguKPguLXguJjguJnguKrguLjguIHguLLguI3guIjguJnguYwNCivguKrguKHguYLguKDguIrguJnguYwg4Lit4Lix4Lio4Lin4Lio4Li04Lij4Li04LmC4Lij4LiI4LiZ4LmMDQor4Liq4Lih4LmD4LiIIOC4geC4suC4jeC4iOC4meC4sOC4p+C4suC4qA0KK+C4quC4oeC5g+C4iCDguILguLPguKvguLLguI0NCivguKrguKHguYPguIgg4LiI4Lix4LiZ4LiX4Lij4LmM4Lib4Lij4Liw4Liq4Li04LiX4LiY4Li04LmMDQor4Liq4Lih4LmD4LiIIOC5gOC4iOC4teC4ouC4oeC4qOC4uOC4oOC4geC4tOC4leC4leC5jA0KK+C4quC4oeC5g+C4iCDguIrguLfguYjguJnguK3guLLguKPguKHguKLguYwNCivguKrguKHguYPguIgg4LmB4LiL4LmI4Lii4LmI4Lit4LiHDQor4Liq4Lih4LmD4LiIIOC4kOC4tOC4p+C4o+C4tOC4meC4l+C4o+C5jA0KK+C4quC4oeC5g+C4iCDguJXguLHguJnguIrguLLguKXguLUNCivguKrguKHguYPguIgg4LiX4Lit4LiH4Lij4Lit4LiUDQor4Liq4Lih4LmD4LiIIOC4meC4seC4meC4l+C4qOC4tOC4peC4m+C4iuC4seC4og0KK+C4quC4oeC5g+C4iCDguJrguLjguI3guKPguLHguJXguJnguYDguJnguJXguKMNCivguKrguKHguYPguIgg4Lib4Li04Lii4Liw4Lij4Lix4LiH4Lip4Li1DQor4Liq4Lih4LmD4LiIIOC4nuC4p+C4h+C4l+C4reC4hw0KK+C4quC4oeC5g+C4iCDguJ/guK3guIfguIjguLHguJnguJfguKPguYwNCivguKrguKHguYPguIgg4Lih4Li14Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Liq4Lih4LmD4LiIIOC4o+C4t+C5iOC4meC5gOC4o+C4tOC4hw0KK+C4quC4oeC5g+C4iCDguYDguKXguLXguKLguIfguKfguLHguJLguJnguITguKUNCivguKrguKHguYPguIgg4Lin4Li04Lin4Lix4LiS4LiZ4LmM4Lin4Liy4LiZ4Li04LiKDQor4Liq4Lih4LmD4LiIIOC4qOC4tOC4o+C4tOC4geC4oeC4peC4oeC4suC4qA0KK+C4quC4oeC5g+C4iCDguKrguKfguYjguLLguIfguYHguKrguJnguKrguLjguIINCivguKrguKHguYPguIgg4Liq4Li44LiC4LmA4Liq4Lij4Li04Lih4Liq4LiB4Li44LilDQor4Liq4Lih4LmD4LiIIOC4q+C4h+C4qeC4suC4hOC4o+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4oeC5g+C4iCDguK3guKHguLLguJXguKLguIHguLjguKUNCivguKrguKHguYPguIgg4LmA4Lit4Li14Lii4LiB4Liy4Lij4LiZ4LiyDQor4Liq4LmJ4Lih4LiI4Li14LiZIOC4meC4tOC5iOC4oeC4p+C4tOC4muC4ueC4peC4ouC5jOC4quC4oQ0KK+C4quC5ieC4oeC5gOC4geC4peC4teC5ieC4ouC4hyDguKrguKPguYnguLLguIfguKrguLjguILguJTguLUNCivguKrguKLguLLguKEg4LiC4Liz4LmB4Lib4LmJ4LiHDQor4Liq4Lii4Liy4LihIOC4quC4suC4hOC4ow0KK+C4quC4ouC4uOC4oeC4nuC4oyDguKPguLHguKjguKHguLXguJjguLLguKPguLINCivguKrguKPguIrguLHguKIg4LmC4Lie4LiY4Li04LmM4LiK4Lix4LiiDQor4Liq4Lij4LiZ4LieIOC4iuC4p+C4meC4muC4uOC4jQ0KK+C4quC4o+C4oOC4seC4oiDguYHguIvguYjguYDguKvguKXguLXguYjguKLguKcNCivguKrguKPguKPguITguYzguIrguLHguKIg4LmA4LiE4LmJ4Liy4LiJ4Li04LihDQor4Liq4Lij4Lij4LiK4Lix4LiiIOC4l+C4reC4h+C5g+C4iA0KK+C4quC4o+C4o+C4nuC4iuC4seC4oiDguJ7guLTguJfguLHguIHguKnguLLguIHguKMNCivguKrguKPguKPguLHguIHguKnguYwg4Lic4LmI4Lit4LiH4LmD4LiqDQor4Liq4Lij4Lij4LmA4Liq4Lij4Li04LiNIOC4iuC4p+C4meC4m+C4o+C4sOC4nuC4seC4meC4mOC5jA0KK+C4quC4o+C4o+C5gOC4quC4o+C4tOC4jSDguYHguKrguIfguJTguLLguKcNCivguKrguKPguKfguIfguKrguLjguJTguLIg4LiE4LmJ4Liz4LiI4Li44LiZDQor4Liq4Lij4Lin4Li44LiS4Li0IOC4mOC4meC5gOC4guC4oeC4oOC4seC4l+C4ow0KK+C4quC4o+C4qOC4seC4geC4lOC4tOC5jCDguYHguIvguYjguYDguJrguYoNCivguKrguKPguKjguLHguIHguJTguLTguYwg4Lil4Liy4Lig4Lij4Lix4LiV4LiZ4LmE4LiV4LijDQor4Liq4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4reC4teC5iOC4ouC4oeC5guC4quC4oOC4k+C4sg0KK+C4quC4o+C5ieC4reC4oiDguJXguLHguJnguYDguIjguKPguLTguI0NCivguKrguKPguYnguK3guKLguJfguLTguJ7guKLguYwg4LiE4LiH4LiW4Liy4Lin4Lij4Liq4LiB4Li44LilDQor4Liq4Lij4LmJ4Lit4Lii4Liq4LitIOC4quC4uOC4p+C4o+C4o+C4k+C4meC5ieC4reC4og0KK+C4quC4o+C4seC4jeC4jeC4sOC4p+C4h+C4qeC5jCDguYDguIHguJXguLjguInguLHguJXguKPguLLguKPguLTguKLguLDguIHguLjguKUNCivguKrguKPguLHguI3guJjguKMg4Liq4Lih4Lib4Lij4Liw4LiB4Lit4LiaDQor4Liq4Lij4Liy4LiN4LiX4Li04Lie4Lii4LmMIOC4iOC4suC4o+C4uOC4muC4o+C4tOC4quC4uOC4l+C4mOC4tOC4hOC4uOC4kw0KK+C4quC4o+C4suC4ouC4uOC4l+C4mCDguKrguLHguIfguILguYzguKfguLTguYDguKjguKkNCivguKrguKPguLLguKfguLjguJLguLQg4LmA4LiB4Lip4LiT4Li14Lii4Lia4Li44LiV4LijDQor4Liq4Lij4Liy4Lin4Li44LiYIOC5hOC4iuC4ouC4quC4p+C5iOC4suC4h+C4qOC4tOC4peC4m+C5jA0KK+C4quC4o+C4suC4p+C4uOC4mCDguKHguJPguLXguYDguKrguLLguKfguJnguJ4NCivguKrguKPguLLguKfguLjguJgg4LmA4Lit4Li14LmI4Lii4Lih4Liq4LiH4LiE4Lij4Liy4LihDQor4Liq4Lij4Li04LiZ4LiX4Li04Lie4Lii4LmMIOC4q+C4uOC5iOC4meC4qOC4suC4quC4leC4o+C5jA0KK+C4quC4o+C4teC4ouC4siDguJfguK3guIfguIHguKPguLDguIjguYjguLLguIfguYDguJnguJXguKMNCivguKrguKTguKnguI/guJ7guKMg4LiZ4Li04LiE4Lih4Lib4Lij4Liw4Lio4Liy4Liq4LiZ4LmMDQor4Liq4Lil4Lin4LiiIOC4hOC4iuC4o+C4seC4leC4meC5jA0KK+C4quC4peC4sCDguJTguLDguYDguIfguLLguLANCivguKrguKXguLAg4Lij4Lit4LiU4Lib4Lij4Liy4LiT4Li1DQor4Liq4Lil4Lix4LiB4LiI4Li04LiVIOC4mOC4o+C4o+C4oeC5gOC4geC4qeC4ow0KK+C4quC4peC4suC4oSDguYDguIjguYrguLDguYDguIvguYfguJkNCivguKrguKXguLTguKXguYLguKPguIjguJnguYwg4Lij4Li44LmI4LiH4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Liq4Lin4LiHIOC5guC4iuC4hOC4oeC4seC5iOC4h+C4oeC4tQ0KK+C4quC4p+C4hyDguJ7guKfguIfguJ7guLTguKHguLLguKINCivguKrguKfguIcg4Liq4Lix4LiN4LiB4Lij4LiT4LmMDQor4Liq4Lin4LiH4LiE4LmMIOC4m+C4o+C4suC4muC4nuC4uOC4l+C4mOC4iOC4sg0KK+C4quC4p+C4lOC4tSDguKHguLLguJnguLDguJnguLTguJXguKLguYwNCivguKrguKfguJnguLXguKLguYwg4Lin4LiH4Lip4LmM4LmA4Lin4LiX4Lii4LmMDQor4Liq4Lin4Lij4Lij4LiE4LmMIOC4hOC4oeC4quC4seC4mQ0KK+C4quC4p+C4o+C4o+C4ouC4siDguJnguLHguJnguJfguYTguJXguKPguYDguJTguIoNCivguKrguKfguKXguLUg4Lit4Li04Lio4Lij4Liy4LiH4LiB4Li54LijIOC4kyDguK3guKLguLjguJjguKLguLINCivguKrguKfguLHguKrguJTguLTguYzguYDguIHguLXguKLguKPguJXguLQg4Liq4Lin4LmI4Liy4LiH4Lio4Lij4Li1DQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4guC4leC4tOC4ouC4sOC4quC4uOC4meC4l+C4ow0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguIjguYjguLLguIfguYDguIjguKPguLTguI0NCivguKrguKfguLHguKrguJTguLTguYwg4LiK4LmI4Liy4LiH4Lir4Lil4LmI4LitDQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4leC5ieC4meC4o+C4seC4qOC4oeC4tQ0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguJjguJnguLLguKjguKPguLXguKrguKfguLHguKrguJTguLTguYwNCivguKrguKfguLHguKrguJTguLTguYwg4Lia4Li44LiN4Lii4Lij4Lix4LiV4Lib4Lij4Liw4Lig4LiyDQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4nOC4uOC4h+C5gOC4nuC4tOC5iOC4oeC4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguYDguJ7guIrguKPguJXguKPguLDguIHguLnguKUNCivguKrguKfguLHguKrguJTguLTguYwg4Lih4Liy4Lil4Li14Lin4Li04Lil4Liy4LioDQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4pOC4l+C4mOC4tOC5jOC4l+C4reC4h+C4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguKfguLTguYTguKXguKPguLLguIfguIHguLnguKMNCivguKrguKfguLHguKrguJTguLTguYwg4Liq4Lih4Lia4Li54Lij4LiT4LmM4LiK4Lix4Lii4Lin4LiH4Lio4LmMDQor4Liq4Lin4Lix4Liq4LiU4Li04LmMIOC4quC4uOC4guC4l+C4seC5iOC4p+C4jeC4suC4leC4tA0KK+C4quC4p+C4seC4quC4lOC4tOC5jCDguKvguJnguLnguYTguIrguKLguLINCivguKrguKfguLHguKrguJTguLTguYwg4Lit4Li04LiZ4LiX4Lib4Li44Lij4LiwDQor4Liq4Lin4Liy4LiXIOC5gOC4geC4leC4uOC4m+C4suC4o+C4sA0KK+C4quC4p+C4suC4lyDguJfguKPguLHguJ7guKLguYzguKHguLLguIENCivguKrguKfguLLguJcg4Lih4LiH4LiE4Lil4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Liq4Lin4Liy4LiXIOC4q+C4h+C4qeC5jOC5gOC4geC4teC4ouC4o+C5jA0KK+C4quC4p+C4suC4quC4lOC4tOC5jCDguKPguKHguJPguLXguKLguJjguKPguKPguKENCivguKrguKfguYjguLLguIcg4LiI4Lix4LiZ4LiX4Lij4LiyDQor4Liq4Lin4LmI4Liy4LiHIOC4leC5iOC4reC4quC4q+C4sOC4geC4uOC4pQ0KK+C4quC4p+C5iOC4suC4hyDguJvguLbguIHguILguLLguKcNCivguKrguKfguYjguLLguIcg4Lij4Lix4Lio4Lih4Li14LiJ4Liy4LiiDQor4Liq4Lin4LmI4Liy4LiHIOC4quC4suC4oeC5guC4geC5gOC4qOC4qA0KK+C4quC4p+C5iOC4suC4h+C4geC4tOC4iCDguK3guKHguKPguLLguIrguLXguKfguLANCivguKrguKfguYjguLLguIfguIjguLTguJXguKMg4Liq4Lin4LiZ4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Liq4Lin4Li04LiHIOC5gOC4geC4leC4uOC5guC4geC4oeC4uOC4lw0KK+C4quC4p+C4tOC4hyDguYDguKXguLXguYnguKLguIfguJrguLPguKPguLjguIcNCivguKrguKfguLTguJkg4LiX4Li04Lih4Lih4LiT4Li14LiJ4Liy4LiiDQor4Liq4Liq4Li04LiY4LijIOC4meC4suC4geC4quC4uOC4gQ0KK+C4quC4q+C4o+C4seC4kCDguYTguIrguKLguYDguJzguLfguK3guIENCivguKrguKvguLHguKog4LmA4LiK4Li34LmJ4Lit4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Lir4Lix4Liq4LiK4Lix4LiiIOC4o+C4seC4iuC4leC5guC4nuC4mOC4tOC5jA0KK+C4quC4reC4lOC4qOC4o+C4tSDguIjguLHguJnguJfguKPguYzguIHguKPguLDguIjguYjguLLguIcNCivguKrguK3guJkg4Lio4Lij4Li14LmA4LiZ4LiV4LijDQor4Liq4Lit4Liy4LiH4LiE4LmMIOC4hOC4iuC5gOC4quC4meC4tQ0KK+C4quC4reC4suC4lCDguIHguLLguI3guIjguJnguK3guLjguJTguKENCivguKrguK3guLLguJQg4LiI4Li14LiZ4Liw4Lin4Liy4LiZ4Li04LiKDQor4Liq4Lit4Liy4LiUIOC5gOC4l+C4qOC4reC4tOC4meC4l+C4o+C5jA0KK+C4quC4reC4suC4lCDguJ7guKPguJ7guIfguKnguYwNCivguKrguK3guLLguJQg4Lii4Lix4LmI4LiH4Lii4Li34LiZDQor4Liq4Lit4Liy4LiUIOC4quC4geC4uOC4oeC4sg0KK+C4quC4reC4suC4lCDguYDguKvguKXguLXguKLguKfguK3guLTguJnguJfguKPguYwNCivguKrguK3guLTguYnguIcg4LiB4Lit4LiH4Lir4Li04Lij4Lix4LiNDQor4Liq4Lit4Li04LmJ4LiHIOC4muC4uOC4jeC4mOC4o+C4o+C4oQ0KK+C4quC4reC4tOC5ieC4hyDguKjguKPguLXguJ7guJnguKENCivguKrguYjguK3guIfguKjguKPguLUg4LiH4Liy4Lih4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Liq4Liw4LiV4Liy4Lil4Li14Lij4Liy4Lir4LmMIOC4muC4ueC4i+C4seC4pQ0KK+C4quC4sOC4q+C4oeC4seC4lCDguYDguKXguLLguLDguKjguLTguKPguLQNCivguKrguLDguK3guLLguJQg4LiW4LiZ4Lit4Lih4Lin4LiH4Lio4LmMDQor4Liq4Liw4Lit4Liy4LiUIOC4p+C4h+C5gOC4p+C4teC4ouC4mQ0KK+C4quC4sOC4reC4suC4o+C4tSDguYHguKfguKHguLnguJTguK0NCivguKrguLDguYPguJog4Lih4Liw4Lil4Li04LmD4LiIDQor4Liq4Lix4LiE4LiE4LmMIOC4o+C4seC4leC4meC4mOC4o+C4suC4mOC4ow0KK+C4quC4seC4h+C4guC5jCDguYDguJzguYjguLLguJ7guLTguKHguJ7guLINCivguKrguLHguIfguITguKEg4Lij4Liy4Lio4Lij4Li1DQor4Liq4Lix4LiH4Lin4LijIOC5gOC4nuC4iuC4o+C4m+C4o+C4sOC4quC4oQ0KK+C4quC4seC4h+C4p+C4o+C4k+C5jCDguKfguLDguYDguIHguLTguJTguYDguJvguYnguIcNCivguKrguLHguIfguKfguLLguKXguKLguYwg4LiB4Lil4Li04LmI4LiZ4Lih4Liy4Lil4Lix4LiiDQor4Liq4Lix4LiH4Lin4Liy4Lil4Lii4LmMIOC4iOC4teC5iOC5gOC4nuC4iuC4ow0KK+C4quC4seC4h+C4p+C4suC4peC4ouC5jCDguJnguLHguKLguKjguLTguKPguLQNCivguKrguLHguIfguKfguLLguKXguKLguYwg4LmA4Lie4LmH4LiK4Lij4LiZ4Li44LiKDQor4Liq4Lix4LiH4Lin4Liy4Lil4Lii4LmMIOC4qOC4o+C4teC4muC4uOC4leC4ow0KK+C4quC4seC4h+C4p+C4suC4peC4ouC5jCDguK3guKDguLHguKLguKDguLHguIHguJTguLTguYwNCivguKrguLHguIfguYDguKfguLXguKLguJkg4LiB4LmJ4Lit4LiH4LmA4Lin4Lir4Liy4Liq4Li04LiH4Lir4LilDQor4Liq4Lix4LiH4LmA4Lin4Li14Lii4LiZIOC5gOC4iuC4suC4p+C4peC4tOC4lQ0KK+C4quC4seC4h+C5gOC4p+C4teC4ouC4mSDguJrguLjguI3guYDguKrguIfguLXguYjguKLguKENCivguKrguLHguIfguYDguKfguLXguKLguJkg4Lil4Liy4Lig4Lie4Li04LmA4Lio4LipDQor4Liq4Lix4LiH4LmA4Lin4Li14Lii4LiZIOC5geC4q+C4peC5iOC4h+C4q+C4peC5ieC4sg0KK+C4quC4seC4iOC4iOC4sCDguKTguJfguJjguLTguIHguLjguKXguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguLHguIjguIjguLIg4Liq4LiW4Li04Lij4Liy4Lin4Li44LiYDQor4Liq4Lix4LiN4LiK4Lix4LiiIOC4hOC4peC5ieC4suC4ouC4iuC4uOC4oeC5geC4quC4hw0KK+C4quC4seC4jeC4iuC4seC4oiDguYDguJjguLXguKLguKPguKrguKfguLHguKrguJTguLTguYzguIHguLTguIgNCivguKrguLHguI3guIrguLHguKIg4Lil4Li04LiC4Li04LiV4Lil4Lix4LiN4LiJ4LiB4LijDQor4Liq4Lix4LiN4LiK4Lix4LiiIOC5gOC4q+C4oeC4m+C4o+C4sOC4iuC4tOC4leC4iuC4seC4og0KK+C4quC4seC4jeC4jeC4siDguITguKXguYnguLLguKLguIjguLTguJnguJTguLINCivguKrguLHguI3guI3guLIg4LiZ4Li44LmI4Lih4LmB4Liq4LiHDQor4Liq4Lix4LiN4LiN4LiyIOC4o+C4seC4qOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4seC4jeC4jeC4siDguKrguLjguILguJ7guJPguLTguIrguJnguLHguJnguJfguYwNCivguKrguLHguJPguIrguLLguKIg4Lin4Li04Liq4Li44LiX4LiY4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Lix4LiT4Lir4LmMIOC4meC4tOC4p+C4suC4quC4sOC4p+C4seC4lQ0KK+C4quC4seC4leC4ouC4siDguKjguKPguLXguK3guYjguK3guJkNCivguKrguLHguJnguJDguLHguJfguJLguYwg4LiX4Lit4LiH4Lih4LiyDQor4Liq4Lix4LiZ4LiV4Li0IOC4geC4seC4k+C4meC4geC4tOC4iA0KK+C4quC4seC4meC4leC4tCDguITguLjguJXguJXguLDguKrguLTguIfguITguLUNCivguKrguLHguJnguJXguLQg4LiI4Li04LiZ4LiU4Liy4LiE4Lih4LiZ4LmMDQor4Liq4Lix4LiZ4LiV4Li0IOC4iuC4uOC5iOC4oeC4p+C4o+C4o+C4k+C5jA0KK+C4quC4seC4meC4leC4tCDguJXguJXguLTguKLguJXguKTguKnguJPguLINCivguKrguLHguJnguJXguLQg4LiX4Lij4LiH4Lio4Li04Lij4Li0DQor4Liq4Lix4LiZ4LiV4Li0IOC4meC4tOC4oeC4oeC4suC4meC4meC4tOC4leC4ouC5jA0KK+C4quC4seC4meC4leC4tCDguJzguKXguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguLHguJnguJXguLQg4LmC4Lie4LiY4Li04LmM4LiX4Lit4LiHDQor4Liq4Lix4LiZ4LiV4Li0IOC5gOC4ouC5h+C4meC4quC4luC4tOC4leC4ouC5jA0KK+C4quC4seC4meC4leC4tCDguYDguKXguLTguKjguKrguIHguLjguKXguJ7guLHguJnguJjguYwNCivguKrguLHguJnguJXguLQg4Lin4Li04LmE4Lil4LiZ4Liz4LmC4LiK4LiE4LiK4Lix4LiiDQor4Liq4Lix4LiZ4LiV4Li0IOC4quC4leC4suC5gOC4guC4lQ0KK+C4quC4seC4meC4leC4tCDguKrguLjguILguKHguLLguIENCivguKrguLHguJnguJXguLQg4Lir4Lin4Lix4LiH4Liq4Li44LiZ4LiX4LijDQor4Liq4Lix4LiZ4LiV4Li0IOC4reC4suC4oOC4suC4quC4geC4uOC4peC5gOC4lOC4ig0KK+C4quC4seC4meC4leC4tOC4iuC4seC4oiDguJfguK3guIfguILguLLguKcNCivguKrguLHguJnguJXguLTguJ7guIfguKnguYwg4LiZ4Li04Lih4Li04LiV4Lij4LiU4Li1DQor4Liq4Lix4LiZ4LiV4Li04Lil4Lix4LiB4Lip4LiT4LmMIOC4mOC4seC4jeC4jeC4suC4q+C4suC4ow0KK+C4quC4seC4meC4leC4tOC5jCDguK3guLTguJnguJfguKPguYDguIHguKnguKENCivguKrguLHguJnguJXguYwg4LiY4LiZ4Lij4Lix4LiV4LiZ4LmM4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4Liq4Lix4LiZ4LiV4LmMIOC5gOC4peC4tOC4qOC4m+C4tOC4ouC4sOC4muC4uOC4jQ0KK+C4quC4seC4meC4leC5jCDguK3guLHguIjguIjguLTguKHguLLguJjguKMNCivguKrguLHguJnguJfguJnguLIg4Lin4Li44LmI4LiZ4LiI4Li54LmK4LiUDQor4Liq4Lix4LiZ4LiX4Lix4LiUIOC4iOC4tOC4leC4leC4uOC4o+C4h+C4hOC5jOC4reC4suC4oOC4o+C4k+C5jA0KK+C4quC4seC4meC4l+C4seC4lCDguKrguLPguJnguLHguIHguJ7guIfguKnguYwNCivguKrguLHguJnguJjguLLguJkg4LiE4Liz4Lih4Li04LmI4LiHDQor4Liq4Lix4Lih4Lic4Lix4LiqIOC4hOC4iuC4p+C4h+C4qOC5jA0KK+C4quC4seC4oeC4nuC4seC4meC4mOC5jCDguITguLPguJPguJ7guLHguJLguJnguYwNCivguKrguLHguKHguJ7guLHguJnguJjguYwg4LiL4Li44LmI4Lih4LmA4Liq4LiZ4LiyDQor4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMIOC4meC4meC4l+C4qOC4uOC4gg0KK+C4quC4seC4oeC4nuC4seC4meC4mOC5jCDguJ7guLHguJnguJjguLjguYzguKHguJPguLUNCivguKrguLHguKHguJ7guLHguJnguJjguYwg4Lij4Li54LmJ4Lib4Lij4Liw4Lih4Liy4LiTDQor4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4LmMIOC4quC4p+C5iOC4suC4h+C5geC4nOC5ieC4pw0KK+C4quC4seC4oeC4nuC4seC4meC4mOC5jCDguKvguLTguKPguLHguI3guKPguLHguIHguKnguLINCivguKrguLHguKHguKHguLLguKPguLTguJnguJfguKPguYwg4LiV4Lix4LiZ4Lio4Lij4Li1DQor4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMIOC4hOC4uOC4k+C5gOC4iOC4leC5gOC4iOC4o+C4tOC4jeC4quC4uOC4gg0KK+C4quC4seC4oeC4pOC4l+C4mOC4tOC5jCDguJTguKfguIfguKrguLDguK3guLLguJQNCivguKrguLHguKHguKTguJfguJjguLTguYwg4LiZ4Li04LmI4Lih4Lit4LiZ4LiH4LiE4LmMDQor4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMIOC4nuC4uOC4geC4nuC4seC4gQ0KK+C4quC4seC4oeC4pOC4l+C4mOC4tOC5jCDguYDguKXguLXguYjguKLguKHguYDguJ7guYfguIrguKPguKPguLHguJXguJnguYwNCivguKrguLHguKHguKTguJfguJjguLTguYwg4Liq4Li44LiC4LmD4LiqDQor4Liq4Lix4Lih4Lik4LiX4LiY4Li04LmMIOC4reC4uOC4o+C4uOC4meC4suC4meC4meC4l+C5jA0KK+C4quC4suC4geC4pSDguKrguKPguKrguLjguJnguJfguKMNCivguKrguLLguITguKMg4LiE4LiH4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Liq4Liy4LiE4LijIOC5geC4lOC4h+C4quC4tQ0KK+C4quC4suC4hOC4oyDguJrguLHguKfguYDguJ7guIrguKMNCivguKrguLLguITguKMg4Lie4Li54LiZ4Lie4LiI4LiZ4LmM4Lih4Liy4LioDQor4Liq4Liy4LiE4LijIOC4peC4suC4oOC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4suC4hOC4oyDguKrguLLguKPguIrguLLguJXguLQNCivguKrguLLguITguKMg4Lit4Li44LmI4LiZ4LiI4Li04LiV4LijDQor4Liq4Liy4LiX4Li04LiVIOC4qOC4o+C4teC4quC4p+C4seC4quC4lOC4tOC5jA0KK+C4quC4suC4mOC4oyDguJvguLLguKXguLDguIHguLDguKfguIfguKnguYwNCivguKrguLLguJjguLTguJUg4LiI4Lix4LiZ4LiX4Lij4LiI4Li04LmC4Lij4LiI4LiZ4LmM4LiB4Li44LilDQor4Liq4Liy4LiY4Li04LiVIOC5gOC4leC5h+C4oeC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4suC4mOC4tOC4lSDguJ7guIfguKjguYzguKfguKPguLTguJnguJfguKPguYwNCivguKrguLLguJjguLTguJUg4Lil4Li14Lil4Liy4LiI4Liy4Lij4Li44Lin4Lij4Lij4LiTDQor4Liq4Liy4LiY4Li04LiVIOC4quC4uOC4l+C4mOC4tOC4p+C4uOC4kuC4tOC4meC4pOC5gOC4muC4qOC4o+C5jA0KK+C4quC4suC4mOC4tOC4meC4tSDguKfguLTguKXguLLguKfguKPguKPguJMNCivguKrguLLguJnguLTguJUg4LiZ4LmI4Lin4Lih4LiX4Lix4LiVDQor4Liq4Liy4LiZ4Li04LiV4Lii4LmMIOC4m+C4seC5ieC4meC4l+C4reC4hw0KK+C4quC4suC4oeC4iuC4seC4oiDguJ7guKfguIfguKrguLPguKXguLUNCivguKrguLLguKHguLLguKPguJYg4LiE4LiH4LiE4Liz4Liq4Li1DQor4Liq4Liy4Lih4Liy4Lij4LiWIOC4iuC4t+C5iOC4meC4oOC4seC4geC4lOC4tQ0KK+C4quC4suC4oeC4suC4o+C4liDguJnguKfguKXguKXguLDguK3guK3guIcNCivguKrguLLguKHguLLguKPguJYg4Lie4Lil4Liy4Lii4LmA4LiW4Li34LmI4Lit4LiZDQor4Liq4Liy4Lih4Liy4Lij4LiWIOC4o+C4seC4qOC4oeC4teC5guC4o+C4iOC4meC5jOC4p+C4h+C4qOC5jA0KK+C4quC4suC4oeC4suC4o+C4liDguKrguKfguYjguLLguIfguYHguKrguIcNCivguKrguLLguKHguLLguKPguJYg4Lit4Li04LiZ4LiX4Lij4LmA4LiX4LieDQor4Liq4Liy4LiiIOC4nuC4o+C4suC4q+C4oeC4k+C4sOC4meC4seC4meC4l+C4meC5jA0KK+C4quC4suC4ouC4iOC4tOC4lSDguIrguLHguKLguKHguIfguITguKUNCivguKrguLLguKLguIrguKUg4LiJ4Lix4LiV4Lij4LmB4LiB4LmJ4Lin4Lia4Lij4Li04Lia4Li54Lij4LiT4LmMDQor4Liq4Liy4Lii4LiK4LilIOC4nuC4uOC4geC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4suC4ouC4iuC4pSDguKrguLjguILguKjguLLguJnguJXguLTguKrguIHguLjguKUNCivguKrguLLguKLguJfguK3guIcg4LiK4Lix4Lii4LiK4LiZ4LiwDQor4Liq4Liy4Lii4LiX4Lit4LiHIOC4oeC4tOC4reC4o+C4seC4jQ0KK+C4quC4suC4ouC4l+C4tOC4nuC4ouC5jCDguYDguIjguKPguLTguI3guIrguLHguKLguKjguKPguLUNCivguKrguLLguKLguJjguLLguKMg4Lio4Li44LiC4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Liy4Lii4Lia4Lix4LinIOC4nuC4peC4reC4ouC4h+C4suC4oQ0KK+C4quC4suC4ouC4neC4mSDguJXguLLguKXguLjguITguYDguJTguK3guKPguYwNCivguKrguLLguKLguJ3guJkg4Lin4Li04LmA4Lio4Lip4Lio4Li04Lij4Li0DQor4Liq4Liy4Lii4Lie4Li04LiTIOC4hOC4o+C4uOC4quC4suC4leC4sA0KK+C4quC4suC4ouC4nuC4tOC4kyDguYDguJbguLLguKrguLjguKfguKPguKPguJMNCivguKrguLLguKLguJ7guLTguJMg4Lie4Li44LmI4Lih4LmA4LiB4Lil4Li14LmJ4Lii4LiHDQor4Liq4Liy4Lii4Lie4Li04LiTIOC4qOC4o+C4teC5guC4o+C4iOC4meC5jA0KK+C4quC4suC4ouC4nuC4tOC4mSDguIrguKfguLLguKXguKrguLHguJnguJXguJXguLQNCivguKrguLLguKLguJ7guLTguJkg4Lit4Li04LiZ4LiX4Lij4Lir4LiwDQor4Liq4Liy4Lii4Lij4Li44LmI4LiHIOC4o+C4suC4oeC4p+C4tOC4meC4tOC4iA0KK+C4quC4suC4ouC4peC4oSDguJfguKPguLHguJ7guKLguYzguJnguLLguIQNCivguKrguLLguKLguKrguJnguKEg4Lin4Liy4LiI4LiZ4Liw4Lin4Li04LiZ4Li04LiIDQor4Liq4Liy4Lii4Liq4Lih4LijIOC5guC4leC5iuC4sOC4reC4suC4iA0KK+C4quC4suC4ouC4quC4oeC4oyDguKrguKHguJrguLnguKPguJPguYzguKLguLTguYjguIfguKrguLjguIINCivguKrguLLguKLguKrguKfguLLguJcg4Lia4Lix4Lin4LiB4Lil4LmI4LizDQor4Liq4Liy4Lii4Liq4Li44LiT4Li1IOC4guC4uOC4meC4l+C4reC4hw0KK+C4quC4suC4ouC4quC4uOC4lOC5g+C4iCDguJvguLTguYjguJnguIHguKXguYjguK3guKENCivguKrguLLguKLguKrguLjguJnguLXguKLguYwg4LiI4Li44LiV4Li04Lie4Li04LiX4Lix4LiB4Lip4LmM4Lin4LiH4Lio4LmMDQor4Liq4Liy4Lii4Liq4Li44LiZ4Li14Lii4LmMIOC4oOC4seC4geC4lOC4tOC5jOC4quC4uOC4guC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4suC4ouC4quC4uOC4meC4teC4ouC5jCDguK3guLHguKjguKfguYzguYTguIrguKLguJXguKPguLDguIHguLnguKUNCivguKrguLLguKLguKvguKLguLjguJQg4LiI4Lix4LiZ4LiX4LijDQor4Liq4Liy4Lii4Lir4Lii4Li44LiUIOC4mOC4tOC4meC4meC4l+C5jA0KK+C4quC4suC4ouC4q+C4ouC4uOC4lCDguYDguJ7guLTguYjguKHguKrguKHguJrguLHguJXguLQNCivguKrguLLguKLguKvguKLguLjguJQg4Liq4LiH4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Liy4Lii4Lir4Lii4Li44LiUIOC5guC4reC4rOC4suC4o+C4quC4uOC4guC4quC4geC4uOC4pQ0KK+C4quC4suC4ouC4seC4k+C4q+C5jCDguIHguLHguKXguKLguLLguJPguKHguLTguJXguKMNCivguKrguLLguKLguLHguJPguKvguYwg4LiV4Lij4LiH4Lio4Li04Lij4Li04Lin4Li04Lia4Li54Lil4Lii4LmMDQor4Liq4Liy4Lii4Lix4LiT4Lir4LmMIOC4nuC4seC4meC4mOC4uOC5jOC4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4quC4suC4ouC4seC4k+C4q+C5jCDguKfguIrguLTguKPguYDguJTguIrguYDguKrguJbguLXguKLguKMNCivguKrguLLguKLguLHguJPguKvguYwg4Lir4LiZ4Li54Lij4Liy4LiKDQor4Liq4Liy4Lii4Lix4LiZ4LiV4LmMIOC4hOC4h+C4hOC4uOC4kw0KK+C4quC4suC4ouC4seC4meC4leC5jCDguJ7guLjguJfguJjguKHguLINCivguKrguLLguKLguLHguJnguKvguYwg4Lil4Li14Lil4Liy4LiB4Li44Lio4Lil4Lin4LiH4Lio4LmMDQor4Liq4Liy4Lii4LmD4LiIIOC4hOC5ieC4s+C4iOC4uOC4mQ0KK+C4quC4suC4ouC5g+C4iCDguJfguK3guIfguJnguLLguIQNCivguKrguLLguKLguYPguIgg4LmA4Lie4Li14Lii4Lij4LmA4Liq4Lij4Li04Lih4LiB4Li04LiIDQor4Liq4Liy4Lii4LmD4LiIIOC4p+C4uOC4kuC4tOC4nuC4h+C4qOC5jA0KK+C4quC4suC4ouC5g+C4iCDguK3guKPguLjguJPguIrguLHguKINCivguKrguLLguKPguKDguLUg4LiE4LiH4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Liy4Lij4Lig4Li1IOC5hOC4p+C4l+C4ouC5jOC4geC4uOC4pQ0KK+C4quC4suC4o+C4seC4iuC4leC5jCDguYDguJzguLfguYjguK3guJnguJvguJDguKENCivguKrguLLguKPguLTguJPguLUg4Lit4Lix4Lio4Lin4Li04LiZ4LiZ4Li04Lih4Li04LiV4LijDQor4Liq4Liy4Lil4Li04LiB4LiyIOC4mOC4meC4sOC4p+C4tOC4muC4ueC4peC4ouC5jOC4iuC4seC4og0KK+C4quC4suC4peC4tOC4meC4tSDguKrguLTguJXguLDguKLguLHguIcNCivguKrguLLguKXguLUg4Liq4Liy4LmC4Lij4Lin4Liy4LiXDQor4Liq4Liy4Lil4Li14LmIIOC5geC4i+C5iOC4ruC4seC5ieC4mQ0KK+C4quC4suC4peC4teC5iCDguYLguJ7guJjguLTguYDguKfguIrguIHguLjguKUNCivguKrguLLguKXguLXguYgg4LmB4Liq4LiH4LiJ4Liy4LiiDQor4Liq4Liy4Lin4Li04LiV4Lij4Li1IOC4geC4peC5iOC4reC4oeC5gOC4reC4teC5ieC4ouC4hw0KK+C4quC4suC4p+C4tOC4leC4o+C4tSDguJzguLTguKfguJzguYjguK3guIcNCivguKrguLLguKfguLTguJXguKPguLUg4Liq4Li04LiH4Lir4Lij4LiyIOC4kyDguK3guKLguLjguJjguKLguLINCivguKrguLLguKvguKPguYjguLLguKIg4LmE4LiK4Lii4Lih4Liy4LiV4LijDQor4Liq4Liy4LmC4Lij4LiI4LiZ4LmMIOC5guC4geC4oeC4peC4q+C4l+C4seC4og0KK+C4quC4suC5guC4o+C4iOC4meC5jCDguJfguK3guIfguKrguKfguKPguKPguITguYwNCivguKrguLLguYLguKPguIjguJnguYwg4Lie4Li24LmI4LiH4Liq4Li44LiCDQor4Liq4Liy4LmC4Lij4LiI4LiZ4LmMIOC4qOC4tOC4o+C4tOC5gOC4reC4teC5ieC4ouC4p+C4nuC4tOC4geC4ueC4pQ0KK+C4quC4suC5guC4o+C4iiDguYDguIjguKPguLTguI3guKjguKPguLUNCivguKrguLLguYLguKPguIog4LmA4Lil4Liy4Lin4LiB4Li44LilDQor4Liq4Liz4LiZ4Lin4LiZIOC4nOC4geC4suC5geC4geC5ieC4pw0KK+C4quC4s+C4o+C4p+C4iCDguJnguLTguKLguKHguYDguJTguIoNCivguKrguLPguKPguKfguKEg4Lia4Li44Lij4Li44Lip4Lij4Lix4LiV4LiZ4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Liz4Lij4Lin4LihIOC4reC5iOC4reC4meC4oeC4tOC5iOC4hw0KK+C4quC4s+C4o+C4p+C4oiDguILguLPguKDguLHguIHguJTguLUNCivguKrguLPguKPguKfguKIg4LiI4Lix4LiZ4LiX4Lij4LmM4Liq4Lih4Lia4Li44LiNDQor4Liq4Liz4Lij4Lin4LiiIOC4iuC4uOC5iOC4oeC4p+C4tOC5gOC4iuC4teC4ouC4ow0KK+C4quC4s+C4o+C4p+C4oiDguJbguLbguIfguYPguIgNCivguKrguLPguKPguKfguKIg4LiZ4Liy4LiZ4LmJ4Lit4LiiDQor4Liq4Liz4Lij4Lin4LiiIOC4m+C4o+C4sOC4l+C4seC4h+C4hOC4sw0KK+C4quC4s+C4o+C4p+C4oiDguJ7guYjguKfguIfguYDguKDguJXguKPguLINCivguKrguLPguKPguKfguKIg4Lig4Li54LmI4LiX4Lit4LiHDQor4Liq4Liz4Lij4Lin4LiiIOC4o+C4reC4lOC4geC4s+C5gOC4q+C4meC4tOC4lA0KK+C4quC4s+C4o+C4p+C4oiDguKfguKPguJnguLjguIoNCivguKrguLPguKPguKfguKIg4Liq4Lih4Li04LiX4LiY4Li04LiY4Lij4Lij4Lih4LiY4Liy4LiU4LiyDQor4Liq4Liz4Lij4Lin4LiiIOC4quC4uOC4o+C4teC4ouC5jOC4qOC4o+C4teC4quC4geC4suC4pw0KK+C4quC4s+C4o+C4p+C4oiDguK3guYjguK3guJnguJnguLTguYjguKENCivguKrguLPguKPguKfguKUg4Lie4Li44LiB4LiB4Liw4LiT4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Liz4Lij4Lit4LiHIOC4pOC4geC4qeC5jOC4quC4uOC4l+C4mOC4tOC4qOC4tOC4o+C4tOC5gOC4lOC4ig0KK+C4quC4s+C4o+C4suC4jSDguIHguLHguKXguKLguLLguJPguKjguLTguKPguLTguJnguJfguKPguYwNCivguKrguLPguKPguLLguI0g4LmA4LiC4Li14Lii4Lin4LiK4Liw4Lit4Li44LmI4LihDQor4Liq4Liz4Lij4Liy4LiNIOC4iOC4seC4meC4l+C4o+C5jOC5gOC4reC4teC5iOC4ouC4oQ0KK+C4quC4s+C4o+C4suC4jSDguIrguYnguLLguIfguYDguKLguLLguKfguYwNCivguKrguLPguKPguLLguI0g4LiU4Li14Liq4Li44LiUDQor4Liq4Liz4Lij4Liy4LiNIOC4l+C4tOC4nuC4p+C4seC4kuC4meC5jA0KK+C4quC4s+C4o+C4suC4jSDguJnguLjguIrguYHguJfguJkNCivguKrguLPguKPguLLguI0g4Lib4LiB4Liq4Lin4LmI4Liy4LiH4LmA4LiI4Lij4Li04LiNDQor4Liq4Liz4Lij4Liy4LiNIOC4nuC4ouC4uOC4h+C5geC4geC5ieC4pw0KK+C4quC4s+C4o+C4suC4jSDguYDguJ7guYfguIrguKPguK3guLjguYTguKMNCivguKrguLPguKPguLLguI0g4Lih4Liy4Lil4Li14LmA4LiX4LioDQor4Liq4Liz4Lij4Liy4LiNIOC4o+C4seC4leC4leC4suC4geC4ow0KK+C4quC4s+C4o+C4suC4jSDguKfguKPguKPguJPguJXguKPguIcNCivguKrguLPguKPguLLguI0g4Lio4Lix4Lil4Lii4LmM4Lin4Li04LmA4Lio4LipDQor4Liq4Liz4Lij4Liy4LiNIOC4quC4suC4hOC4ow0KK+C4quC4s+C4o+C4suC4jSDguYDguKrguIfguLXguYjguKLguKHguYDguInguKINCivguKrguLPguKPguLLguI0g4Lit4Lij4Lij4LiW4Lit4Li04LiZ4LiX4Lij4Li14Lii4LmMDQor4Liq4Liz4Lij4Liy4LiNIOC4ruC4suC5gOC4i+C5iuC4sA0KK+C4quC4s+C4pOC4l+C4mOC4tOC5jCDguKrguK3guJnguIHguKPguLDguJXguYjguLLguKINCivguKrguLPguKXguLUg4LmB4LiL4LmI4Lig4Li54LmIDQor4Liq4Liz4Lil4Li1IOC4nuC4tOC4huC5gOC4meC4qOC4p+C4ow0KK+C4quC4s+C4peC4tSDguKrguLLguKLguILguLjguJnguJfguJQNCivguKrguLPguK3guK3guKIg4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4Liq4Liz4Lit4Liy4LiHIOC4reC4tOC5iOC4oeC4iOC4tOC4leC4ow0KK+C4quC4s+C4reC4suC4h+C4hOC5jCDguIrguJnguLDguKrguLjguKPguLTguKLguLDguYDguIHguLXguKLguKPguJXguLQNCivguKrguLPguK3guLLguIfguITguYwg4LiZ4Lix4LiZ4LiX4Lij4Lix4LiV4LiZ4LiK4Lix4LiiDQor4Liq4Liz4Lit4Liy4LiH4LiE4LmMIOC5gOC4nuC4peC4tOC4meC4q+C4seC4lA0KK+C4quC4s+C4reC4suC4h+C4hOC5jCDguKfguIfguKnguYzguKrguLLguKLguKrguLTguJkNCivguKrguLPguK3guLLguIfguITguYwg4LmE4Lir4Lin4Liq4Lin4LmI4Liy4LiHDQor4Liq4Liz4LmA4LiZ4LiyIOC4mOC4tOC4hOC4uOC4meC4seC4meC4l+C5jA0KK+C4quC4s+C5gOC4meC4siDguKrguLjguKfguKPguKPguJPguK3guYjguK3guJkNCivguKrguLPguYDguJnguLXguKLguIcg4LiB4Lij4LiB4Lih4LilDQor4Liq4Liz4LmA4LiZ4Li14Lii4LiHIOC4iOC4teC4lOC4peC4s+C4lOC4p+C4mQ0KK+C4quC4s+C5gOC4meC4teC4ouC4hyDguJfguKjguKfguIfguKnguYwNCivguKrguLPguYDguJnguLXguKLguIcg4Lib4Liw4Lil4Liw4LiK4Liy4LiV4Li0DQor4Liq4Liz4LmA4LiZ4Li14Lii4LiHIOC4oOC4ueC5iOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4quC4s+C5gOC4meC4teC4ouC4hyDguKjguKPguLXguKfguKPguKPguJPguYwNCivguKrguLPguYDguJnguLXguKLguIcg4Lir4Lit4Lih4LiK4Li34LmI4LiZDQor4Liq4Liz4LmA4Lig4LiyIOC5gOC4iOC4teC4ouC4o+C4quC4uOC4oeC4seC4og0KK+C4quC4s+C5gOC4oOC4siDguJrguLjguI3guK3guYjguK3guJkNCivguKrguLPguYDguKDguLIg4Lin4LiH4Lio4LmM4Liq4Li14LiU4LiyDQor4Liq4Liz4LmA4Lij4LmH4LiIIOC4iOC4o+C4seC4jeC4jeC4suC4reC5iOC4reC4mQ0KK+C4quC4s+C5gOC4o+C4tOC4hyDguIHguK3guIfguYHguKrguIfguKjguKPguLUNCivguKrguLPguYDguKPguLTguIcg4LiI4Lix4LiZ4LiX4Lij4Lih4LiT4Li1DQor4Liq4Liz4LmA4Lij4Li04LiHIOC4lOC4p+C4h+C4oOC4uOC4oeC5gOC4oeC4qA0KK+C4quC4s+C5gOC4o+C4tOC4hyDguJnguLTguKXguJ7guKTguIHguKnguYwNCivguKrguLPguYDguKPguLTguIcg4Lie4Lil4Lit4Lii4LiH4Liy4LihDQor4Liq4Liz4LmA4Lij4Li04LiHIOC4oeC4tOC5iOC4h+C4guC4p+C4seC4jQ0KK+C4quC4s+C5gOC4o+C4tOC4hyDguKfguLHguJLguJnguLDguYLguIrguJXguLQNCivguKrguLPguYDguKPguLTguIcg4Liq4Li14Liq4Li44LiBDQor4Liq4Liz4LmA4Lij4Li04LiHIOC4reC4seC4oeC4peC4teC4ouC5jA0KK+C4quC4tOC4h+C4guC4oyDguJjguLXguKPguLLguJfguKPguIcNCivguKrguLTguIfguKvguYzguJfguKfguJkg4LmA4LiV4LiI4LmK4LiwDQor4Liq4Li04LiH4Lir4LiwIOC4quC4suC4ouC4l+C4reC4hw0KK+C4quC4tOC4h+C4q+C5jCDguITguIrguYDguKrguJnguLUNCivguKrguLTguIfguKvguYwg4LmA4Lil4Li04Lio4LiZ4Liy4Lih4Lin4LiH4Lio4LmM4Lin4Liy4LiZDQor4Liq4Li04LiV4LiY4Li04LmMIOC4iOC4seC4h+C4nuC4suC4meC4tOC4ig0KK+C4quC4tOC4l+C4mOC4tCDguJXguLHguJPguJHguYLguK3guKDguLLguKoNCivguKrguLTguJfguJjguLTguIHguKMg4Lio4Li04Lij4Li04LmA4Lih4Li34Lit4LiH4Lih4Li54LilDQor4Liq4Li04LiX4LiY4Li04LiK4Lix4LiiIOC5gOC4guC5iOC4h+C4l+C4reC4hw0KK+C4quC4tOC4l+C4mOC4tOC4iuC4seC4oiDguYPguIjguIrguLfguYnguJkNCivguKrguLTguJfguJjguLTguIrguLHguKIg4LiU4Lij4Li44LiT4Lin4Lix4LiV4Li0DQor4Liq4Li04LiX4LiY4Li04LiK4Lix4LiiIOC5gOC4l+C4p+C4q+C4quC4geC4uOC4peC4l+C4reC4hw0KK+C4quC4tOC4l+C4mOC4tOC4iuC4seC4oiDguJvguKXguLXguIHguK3guLPguYTguJ4NCivguKrguLTguJfguJjguLTguIrguLHguKIg4LmA4Lie4Li14Lii4Lij4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiB4Li44LilDQor4Liq4Li04LiX4LiY4Li04LiK4Lix4LiiIOC4pOC4geC4qeC5jOC4quC4p+C4seC4quC4lOC4tOC5jOC4geC4uOC4pQ0KK+C4quC4tOC4l+C4mOC4tOC4iuC4seC4oiDguKfguLTguKrguLjguJfguJjguLTguYzguK3guLPguJ7guLHguJkNCivguKrguLTguJfguJjguLTguIrguLHguKIg4Liq4Li04LiX4LiY4Li04Lin4Li04Lia4Li54Lil4Lii4LmM4Lin4Lix4LiS4LiZ4LmMDQor4Liq4Li04LiX4LiY4Li04LiK4Lix4LiiIOC5gOC4q+C4peC4t+C4reC4h+C4quC4uOC4guC4quC4suC4hOC4ow0KK+C4quC4tOC4l+C4mOC4tOC4meC4seC4mSDguIrguJnguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguLTguJfguJjguLTguJ7guIfguKnguYwg4LiB4LmI4Lit4LmA4Lio4Lij4Lip4LiQ4Lij4Lix4LiK4LiV4LmMDQor4Liq4Li04LiX4LiY4Li04Lie4Lii4Liy4LiB4Lij4LiT4LmMICjguKfguLXguKPguLLguJnguLjguKfguLHguJXguJXguYwpDQor4Liq4Li04LiX4LiY4Li04Lie4LijIOC4muC4s+C5gOC4q+C4meC5h+C4iOC4nuC4seC4meC4mOC5jA0KK+C4quC4tOC4l+C4mOC4tOC4nuC4oyDguKrguKHguJrguLjguI0NCivguKrguLTguJfguJjguLTguJ7guKUg4Lin4Lix4LiS4LiZ4LiE4LiU4Li1DQor4Liq4Li04LiX4LiY4Li04Lij4Lix4LiV4LiZ4LmMIOC4nuC4tOC4iuC4jeC5jOC4nuC4tOC4l+C4ouC4suC4meC4meC4l+C5jA0KK+C4quC4tOC4l+C4mOC4tOC4qOC4seC4geC4lOC4tOC5jCDguYHguIvguYjguYHguIjguYnguIcNCivguKrguLTguJfguJjguLTguKjguLHguIHguJTguLTguYwg4Lil4Li04LmJ4Lih4Lij4Liq4LiY4Lij4Lij4LihDQor4Liq4Li04LiX4LiY4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4reC4uOC4muC4peC4o+C4seC4leC4meC4sA0KK+C4quC4tOC4l+C4mOC4tOC5gOC4l+C4qCDguIHguLTguJXguJXguLTguIHguLjguKXguKrguLjguKfguKPguKPguJMNCivguKrguLTguJfguJjguLTguYLguIrguIQg4Lio4Lij4Li14Liq4Li44LiE4LiZ4LiY4LmMDQor4Liq4Li04LiX4LiY4Li04LmMIOC4m+C4o+C4uOC4qOC4lOC4s+C5gOC4geC4tOC4hw0KK+C4quC4tOC4mSDguIjguLTguJnguJTguLLguKPguLHguJXguJnguKfguKPguIHguLjguKUNCivguKrguLTguJkg4Lin4LiH4Lio4LmM4LiE4Li44LmJ4Lih4Lie4LiH4Lio4LmMDQor4Liq4Li04LiZ4LiK4Lix4LiiIOC4iOC4reC4oeC5geC4quC4hw0KK+C4quC4tOC4meC4iuC4seC4oiDguJ7guKPguKvguKHguYDguKrguJnguLXguKLguYwNCivguKrguLTguJnguIrguLHguKIg4Liq4Li44LiX4LiY4Li04Lin4LiH4Lip4LmMDQor4Liq4Li04LiZ4LiY4Liy4LijIOC4p+C5iOC4reC4h+C4leC4suC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4quC4tOC4meC4mOC4uOC5jCDguKXguLTguYnguKHguJvguLTguJXguLQNCivguKrguLTguJnguKvguKXguLHguYjguIcg4LmA4Lit4Li34LmJ4Lit4Liq4Lih4Liq4LiB4Li44LilDQor4Liq4Li04LiZ4Li1IOC4oeC4k+C4teC4geC4uOC4pQ0KK+C4quC4tOC4meC4teC4meC4suC4jyDguJfguK3guIfguYLguJrguKPguLLguJMNCivguKrguLTguJnguLXguJ7guKPguKPguJMg4Lia4Li44LiN4LmA4Lil4Li14LmJ4Lii4LiHDQor4Liq4Li04Lij4LiB4Li44LilIOC4leC4sOC5gOC4hOC4teC4ouC4meC4meC4uOC4ig0KK+C4quC4tOC4o+C4tCDguJvguKPguLDguKfguLLguKvguLDguJnguLLguKfguLTguJkNCivguKrguLTguKPguLTguIHguLLguI3guIjguJnguYwg4LiU4Lin4LiH4LiH4Liy4LihDQor4Liq4Li04Lij4Li04LiB4Li44LilIOC5gOC4p+C4teC4ouC4h+C4iuC4meC4gQ0KK+C4quC4tOC4o+C4tOC4iuC4seC4oiDguJXguLHguJnguJXguLTguYDguKXguLTguKjguYDguIjguKPguLTguI0NCivguKrguLTguKPguLTguI3guI3guLIg4LmC4Liq4Lig4LiT4Liq4LiB4Li44Lil4Lio4Lix4LiB4LiU4Li04LmMDQor4Liq4Li04Lij4Li04LiZ4LiX4Lij4LmM4LiX4Li04Lie4Lii4LmMIOC4guC4s+C4l+C4tOC4nuC4ouC5jA0KK+C4quC4tOC4o+C4tOC4meC4o+C4suC4oOC4o+C4k+C5jCDguJnguLTguKXguJrguLjguJXguKMNCivguKrguLTguKPguLTguJnguLLguJcg4LmA4Lir4Lil4Li34Lit4LiH4Lit4Lij4LmI4Liy4Lih4Lin4Li04LmE4LilDQor4Liq4Li04Lij4Li04Lie4LiH4Lip4LmMIOC4nuC4uOC4l+C4mOC4mOC4meC4quC4uOC4meC4l+C4ow0KK+C4quC4tOC4o+C4tOC4nuC4oyDguYDguIjguJnguIHguIrguIHguKMNCivguKrguLTguKPguLTguJ7guKMg4LmA4LiV4LiK4LiZ4Liw4Lio4Lix4LiB4LiU4Li04LmMDQor4Liq4Li04Lij4Li04Lie4LijIOC4nuC4tOC4nuC4seC4kuC4nuC4peC4geC4suC4og0KK+C4quC4tOC4o+C4tOC4nuC4oyDguKjguKPguLXguYDguJ7guLXguKLguKMNCivguKrguLTguKPguLTguJ7guKMg4Lit4Lix4Lio4Lin4Lij4Lix4LiZ4LiV4LmMDQor4Liq4Li04Lij4Li04Lie4Lix4LiS4LiZ4LmMIOC4geC4oeC4peC4o+C4seC4leC4meC5jA0KK+C4quC4tOC4o+C4tOC4oeC4meC4leC5jCDguJrguLjguI3guKvguKXguYnguLINCivguKrguLTguKPguLTguKHguLIg4LmE4Lic4LmI4Lie4Lil4Li5DQor4Liq4Li04Lij4Li04Lih4Liy4LiV4LiyIOC5gOC4o+C5iOC4h+C4quC4oeC4muC4ueC4o+C4k+C5jOC4quC4uOC4gg0KK+C4quC4tOC4o+C4tOC4o+C4seC4leC4meC5jCDguYHguIjguYjguKHguJTguKfguIcNCivguKrguLTguKPguLTguKPguLHguJXguJnguYwg4Lie4Lij4Lin4Li04Lil4Liy4Lio4Liq4Li04Lij4Li0DQor4Liq4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMIOC5geC4quC4h+C4nuC4ouC4seC4ng0KK+C4quC4tOC4o+C4tOC4peC4seC4geC4qeC4k+C5jCDguJrguLjguI3guYPguKvguI3guYgNCivguKrguLTguKPguLTguKXguLHguIHguKnguJPguYwg4Lit4LmL4Lit4LiH4Liq4LiB4Li44LilDQor4Liq4Li04Lij4Li04Lin4Lij4Lij4LiTIOC4meC4suC4hOC4reC5iOC4reC4mQ0KK+C4quC4tOC4o+C4tOC4p+C4o+C4o+C4kyDguKrguLTguJfguJjguLLguIfguIHguLnguKMNCivguKrguLTguKPguLTguKfguLTguKDguLIg4Lit4LiZ4Lix4LiZ4LiV4LiK4Liy4LiV4Li0DQor4Liq4Li04Lij4Li04Lit4Lij4Lij4LiT4LieIOC4mOC4meC4o+C4seC4geC4qeC5jA0KK+C4quC4tOC4o+C4tSDguILguLHguJnguJfguK3guIcNCivguKrguLTguKfguK3guYjguK3guJkg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Liq4Li04LmC4Lij4LiV4Lih4LmMIOC4p+C4seC4mOC4meC4mOC4suC4lOC4sg0KK+C4quC4teC4lOC4siDguKfguLHguIrguKPguJ7guLTguKHguKXguJ7guKPguKPguJMNCivguKrguLXguJnguKfguKUg4LiI4Lix4LiZ4LiX4Lij4LmM4Lij4Li04LmJ4LinDQor4Liq4Li14LiZ4Li14Lie4Lij4Lij4LiTIOC5gOC4geC4teC4ouC4o+C4leC4tOC4nuC4h+C4qeC5jOC4quC4suC4ow0KK+C4quC4teC4q+C4meC4suC4lyDguJvguKPguLDguKLguLnguKPguKPguLHguJXguJnguYwNCivguKrguLfguJog4LiE4Liz4LiZ4Li04LilDQor4Liq4Li34Lia4Lie4LiH4Lip4LmMIOC4kOC4tOC4leC4tOC5guC4iuC4leC4tOC4o+C4seC4leC4meC4sg0KK+C4quC4t+C4muC4qOC4seC4geC4lOC4tOC5jCDguJvguKPguLTguI3guI3guLLguIHguLjguKUNCivguKrguLfguJrguKrguKfguLHguKrguJTguLTguYwg4Lin4Lix4LiS4LiZ4LiQ4Liy4LiZ4LiwDQor4Liq4Li44LiB4LijIOC4iuC4peC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4quC4uOC4gg0KK+C4quC4uOC4geC4o+C4tSDguKfguLHguIrguKPguJ7guKPguKPguJMNCivguKrguLjguIHguKUg4Lii4Li34LiZ4LiV4Lij4Liw4LiB4Li54Lil4LiK4Lix4LiiDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4geC4uOC4peC5gOC4o+C4t+C4reC4h+C4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguITguLPguKHguYjguKfguIcNCivguKrguLjguIHguLHguI3guI3guLIg4LiI4Li04LiV4Lij4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4iuC4seC4ouC4qOC4o+C4teC4p+C4tOC4muC4ueC4peC4ouC5jA0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguYHguIvguYjguK3guLbguYnguIcNCivguKrguLjguIHguLHguI3guI3guLIg4LiV4Lix4LmJ4LiH4LmA4LiV4Li04Lih4LiX4Lit4LiHDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4l+C4suC4muC4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguJnguLTguKLguKHguYPguJnguJjguKPguKPguKENCivguKrguLjguIHguLHguI3guI3guLIg4Lib4Lij4Liw4Liq4LiH4LiE4LmMDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4nuC4o+C4p+C4quC4seC4meC4leC5jA0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguYHguJ7guKDguLTguKPguKHguKLguYzguKPguLHguJXguJnguYwNCivguKrguLjguIHguLHguI3guI3guLIg4LmA4Lih4LiG4Lit4Lij4Li04Lii4LiwDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4pOC4l+C4seC4ouC4mOC4o+C4o+C4oQ0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguKfguLHguJLguJHguIHguYLguIHguKjguKUNCivguKrguLjguIHguLHguI3guI3guLIg4Lio4Li04Lij4Li04Lib4Lij4Liw4Lig4Liy4LiB4Li04LiIDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC4quC4tOC4h+C4q+C5jOC4l+C4reC4hw0KK+C4quC4uOC4geC4seC4jeC4jeC4siDguKrguLjguYLguKPguIjguJnguLLguJnguJnguJfguYwNCivguKrguLjguIHguLHguI3guI3guLIg4Lit4LiZ4Li44Lih4Liy4LiZ4Lio4Li04Lij4Li04LiB4Li44LilDQor4Liq4Li44LiB4Lix4LiN4LiN4LiyIOC5gOC4reC4oeC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4geC4seC4meC4ouC4siDguKDguLnguYHguIINCivguKrguLjguIHguLHguKXguKLguLIg4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4Liq4Lix4LiH4LiC4LmMDQor4Liq4Li44LiB4Liy4LiN4LiI4LiZ4LmMIOC4pOC4geC4qeC5jOC4quC4tOC4meC4quC4suC5guC4o+C4iOC4meC5jA0KK+C4quC4uOC4geC4suC4meC4lOC4siDguJjguLLguJXguLjguJTguLUNCivguKrguLjguIHguLLguJnguJTguLIg4Liq4Li44LiB4Li04LiV4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Liq4Li44LiB4Li04LiIIOC4geC4ueC4peC4oeC4meC4ueC4jQ0KK+C4quC4uOC4geC4tOC4iCDguYDguIrguLfguYnguK3guK3guLTguJnguJfguKPguYwNCivguKrguLjguIHguLTguIgg4LiZ4Li04LmI4Lih4Lie4Lij4LmJ4Liy4LinDQor4Liq4Li44LiB4Li04LiIIOC4oOC4uOC4oeC4oeC4tQ0KK+C4quC4uOC4geC4tOC4iCDguKfguLTguIrguLHguKLguYLguIrguJXguLQNCivguKrguLjguIHguLTguIgg4LmB4Liq4LiH4Lie4Lil4Liq4Li44LiCDQor4Liq4Li44LiB4Li04LiVIOC4p+C4tOC4p+C4seC4kuC4meC4l+C4teC4m+C4sA0KK+C4quC4uOC4giDguYHguIjguYnguIfguIHguKPguLDguIjguYjguLLguIcNCivguKrguLjguIIg4Liq4Li44Lij4Liw4Lie4Li04LiZ4Li04LiIDQor4Liq4Li44LiC4LiI4Li04LiV4LiVIOC4h+C4suC4oeC4muC4o+C4o+C4iOC4hw0KK+C4quC4uOC4guC4iuC4seC4oiDguK3guLjguJvguKrguLHguJnguJXguYwNCivguKrguLjguILguJvguKPguLDguYDguKrguKPguLTguJAg4Lij4LmI4Lih4LmC4Lie4LiY4Li04LmMDQor4Liq4Li44LiC4Lin4Liq4LiyIOC5geC4quC4h+C4lOC4tQ0KK+C4quC4uOC4guC4qOC4o+C4tSDguKfguIfguKnguYzguJbguKENCivguKrguLjguILguKrguKHguJrguLHguJXguLQg4LmA4LiX4Lio4Liw4LiZ4Lix4LiZ4LiX4LiZ4LmMDQor4Liq4Li44LiC4Liq4Lit4Liy4LiUIOC4iOC4o+C4teC4qOC4o+C4tQ0KK+C4quC4uOC4guC4quC4seC4meC4leC5jCDguJ7guKPguKrguKfguKPguKPguITguYzguKfguLHguJLguJnguLINCivguKrguLjguILguKvguKPguKPguKnguLIg4LiH4Liy4Lih4Lin4Lix4LiS4LiZ4Liy4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44LiC4Li44LihIOC5gOC4iOC4teC4ouC4oeC4quC4geC4uOC4pQ0KK+C4quC4uOC4guC4uOC4oSDguJ7guKvguLnguKrguLnguJXguKMNCivguKrguLjguILguLjguKEg4Lio4Lij4Li14Lin4Li04LmE4Lil4Lik4LiX4LiY4Li04LmMDQor4Liq4Li44LiC4Li44LihIOC5gOC4reC4teC5iOC4ouC4oeC4quC4reC4suC4lA0KK+C4quC4uOC4guC4uOC4oeC4suC4peC4ouC5jCDguJvguKPguLDguYDguKrguKPguLTguJDguKjguKPguLUNCivguKrguLjguILguYDguIHguKnguKEg4LmA4Lil4Li34LmI4Lit4Lih4Lit4Lij4Li44LiTDQor4Liq4Li44LiC4LmC4LiCIOC4quC4uOC4oeC4suC4meC4meC4l+C5jA0KK+C4quC4uOC4guC5g+C4iCDguKfguIfguKjguYzguKrguLjguKPguJ7guLTguYDguIrguKnguJDguYwNCivguKrguLjguITguJnguJjguYzguJfguLTguJ7guKLguYwg4LiX4Liz4LmA4Lil4LiX4Lit4LiHDQor4Liq4Li44LiE4LiZ4LiY4LiyIOC4quC4uOC4o+C4sOC4oeC4suC4meC4sA0KK+C4quC4uOC4hOC4meC4mOC5jCDguYDguInguKXguLTguKHguJ7guLTguJ7guLHguJLguJnguYwNCivguKrguLjguITguJnguJjguYwg4LmA4LiZ4Li34LmI4Lit4LiH4LiB4Lix4LiZ4LiX4LiyDQor4Liq4Li44LiE4LiZ4LiY4LmMIOC4o+C4seC4leC4meC4quC4sOC4reC4suC4lA0KK+C4quC4uOC4hOC4meC4mOC5jCDguKrguLjguIjguKPguLTguJUNCivguKrguLjguITguLTguJkg4LmA4LiU4LmI4LiZ4LmA4Lih4LiG4LiyDQor4Liq4Li44LiI4Lij4Li04LiVIOC4oeC4k+C4teC4p+C4h+C4hOC5jA0KK+C4quC4uOC4iOC4suC4o+C4teC4lSDguIHguKPguKPguJPguKXguYnguKfguJkNCivguKrguLjguIjguLTguJUg4Liq4LiW4Li04LiV4Lii4LmM4Lih4Liy4Lil4Lix4Lii4Lin4LiH4Lio4LmMDQor4Liq4Li44LiI4Li04LiV4LiV4LmMIOC4leC4seC5ieC4h+C4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4uOC4iOC4tOC4leC4oyDguIrguLHguKLguITguLnguJPguJzguKUNCivguKrguLjguIjguLTguJXguKPguLIg4LiB4Lil4LmI4Liz4LmB4Liq4LiHDQor4Liq4Li44LiI4Li04LiV4Lij4LiyIOC4iOC4seC4meC4l+C4o+C4lOC4tOC4peC4geC4geC4uOC4pQ0KK+C4quC4uOC4iOC4tOC4leC4o+C4siDguYHguIvguYjguIjguLTguKcNCivguKrguLjguIjguLTguJXguKPguLIg4LiX4Lin4Li14Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44LiI4Li04LiV4Lij4LiyIOC4muC4uOC4jeC4quC4ueC4hw0KK+C4quC4uOC4iOC4tOC4leC4o+C4siDguJ7guLHguJnguJjguLjguYzguKDguLHguJfguKPguYwNCivguKrguLjguIjguLTguJXguKPguLIg4Lii4Li04LmJ4Lih4LmB4Lii4LmJ4LihDQor4Liq4Li44LiI4Li04LiV4Lij4LiyIOC4p+C4o+C4ouC4qOC5guC4geC4p+C4tOC4lw0KK+C4quC4uOC4iOC4tOC4leC4o+C4siDguKrguJbguLLguJ7guKPguIrguLHguKLguKrguLTguJfguJjguLTguYwNCivguKrguLjguIjguLTguJXguKPguLIg4Liq4Li44Lij4Lij4Lix4LiV4LiZ4LmM4LmA4LiU4LiK4LiyDQor4Liq4Li44LiI4Li04LiV4Lij4LiyIOC4reC4uOC4leC4leC4oeC4sOC4qOC4tOC4pQ0KK+C4quC4uOC4iOC4tOC4mSDguKHguLjguIHguJnguYnguK3guKINCivguKrguLjguIjguLTguJnguJTguLIg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4Liq4Li44LiI4Li04LiZ4LiU4LiyIOC4oOC4seC4hOC4oOC4tOC4jeC5guC4jQ0KK+C4quC4uOC4iOC4tOC4meC4lOC4siDguKrguLTguJfguJjguLTguKjguKPguLHguJPguKLguYzguIHguLjguKUNCivguKrguLjguIjguLTguJnguJXguJnguLIg4LmA4Liq4Li34Lit4LmB4LiB4LmJ4LinDQor4Liq4Li44LiI4Li04LiZ4LiV4LmMIOC4iOC4tOC4o+C4sOC4iuC4seC4og0KK+C4quC4uOC4iOC4tOC4meC4leC5jCDguJXguLHguJPguJHguYzguKfguKPguIHguLjguKUNCivguKrguLjguIjguLTguJnguJXguYwg4LmA4Lia4LmJ4Liy4LiB4Li44LilDQor4Liq4Li44LiI4Li04LiZ4LiV4LmMIOC4n+C4uOC5ieC4h+C4mOC4o+C4o+C4oeC4quC4suC4ow0KK+C4quC4uOC4iOC4tOC4meC4leC5jCDguKfguIfguKjguYzguJ7guLHguJnguJjguLjguYwNCivguKrguLjguIjguLTguJnguJXguYwg4Liq4Lix4LiB4LiB4Liw4Lin4LiZ4Li04LiKDQor4Liq4Li44LiI4Li04LiZ4LiV4LmMIOC4reC4uOC4lOC4oeC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4uOC4iOC4tOC4o+C4siDguKDguLnguYjguILguLMNCivguKrguLjguIrguI/guLTguKUg4Lin4Lix4LiS4Lii4Liy4LiB4LijDQor4Liq4Li44LiK4LilIOC4m+C4suC4meC4geC4peC4suC4hw0KK+C4quC4uOC4iuC4seC4oiDguIjguLPguKPguLHguKrguKfguLTguKHguKXguKPguLHguJXguJnguYwNCivguKrguLjguIrguLHguKIg4LiZ4Lij4LmA4Lio4Lij4Lip4LiQ4Lie4LiH4Lio4LmMDQor4Liq4Li44LiK4Lix4LiiIOC5gOC4peC4tOC4qOC4mOC4teC4o+C4sOC4iuC4suC4jeC4iuC4seC4og0KK+C4quC4uOC4iuC4seC4oiDguKvguKfguLHguIfguIHguLTguIjguIjguLTguJnguJTguLINCivguKrguLjguIrguLLguI0g4LiY4LiZ4Liw4LmE4Lie4Lij4Lij4Lix4LiB4Lip4LmMDQor4Liq4Li44LiK4Liy4LiU4LiyIOC5gOC4geC4teC4ouC4o+C4leC4tOC5gOC4o+C4t+C4reC4h+C4quC4uOC4gg0KK+C4quC4uOC4iuC4suC4lOC4siDguIjguK3guJnguLjguKfguLHguJLguJnguIHguLjguKUNCivguKrguLjguIrguLLguJTguLIg4LiJ4Liy4Lii4Liw4LmA4LiB4Lip4LiV4Lij4Li04LiZDQor4Liq4Li44LiK4Liy4LiU4LiyIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4quC4uOC4iuC4suC4lOC4siDguYDguJXguLXguYrguKLguIHguITguLMNCivguKrguLjguIrguLLguJTguLIg4LiZ4LiX4Li14LiV4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44LiK4Liy4LiU4LiyIOC4m+C4o+C4sOC4luC4oeC4m+C4seC4l+C4oeC4sA0KK+C4quC4uOC4iuC4suC4lOC4siDguJ7guLHguJnguJjguLjguYzguKHguJPguLUNCivguKrguLjguIrguLLguJTguLIg4Lih4Liy4Lij4Lii4Liy4LiXDQor4Liq4Li44LiK4Liy4LiU4LiyIOC5guC4o+C4iOC4meC4pOC4l+C4mOC4tOC5jOC4nuC4tOC5gOC4iuC4qeC4kOC5jA0KK+C4quC4uOC4iuC4suC4lOC4siDguKfguLTguJfguKLguLLguKDguKPguJPguYwNCivguKrguLjguIrguLLguJTguLIg4Liq4LiV4Lix4LiH4LiU4Li1DQor4Liq4Li44LiK4Liy4LiU4LiyIOC4quC4uOC4l+C4mOC4tOC4qOC4seC4meC4quC4meC4teC4ouC5jA0KK+C4quC4uOC4iuC4suC4lOC4siDguKvguLTguKPguLHguI3guJ7guLHguJLguJnguIHguLjguKUNCivguKrguLjguIrguLLguJTguLIg4Lit4Li24LmK4LiH4Liq4Lih4Li44LiX4LijDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4geC4peC4tOC5iOC4meC4reC4uOC4lOC4oeC4quC4uOC4gg0KK+C4quC4uOC4iuC4suC4leC4tCDguYDguIHguKPguLXguKLguIfguYLguIHguKHguKUNCivguKrguLjguIrguLLguJXguLQg4LmB4LiC4Lij4Lix4LiV4LiZ4LiwDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4h+C4suC4oeC5geC4quC4hw0KK+C4quC4uOC4iuC4suC4leC4tCDguIjguLTguJXguJ7guLHguJLguJnguIHguLjguKUNCivguKrguLjguIrguLLguJXguLQg4LmA4LiI4Lip4Lik4Liy4LmA4LiI4Li04LihDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4iuC4seC4ouC4meC4sOC5gOC4peC4tOC4qOC4p+C4h+C4qOC5jA0KK+C4quC4uOC4iuC4suC4leC4tCDguYDguIrguLLguKfguYzguYTguKcNCivguKrguLjguIrguLLguJXguLQg4LmB4LiL4LmI4Lir4Lil4Li04LinDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4lOC4s+C4o+C4h+C4hOC5jOC4reC4meC4uOC4geC4ueC4pQ0KK+C4quC4uOC4iuC4suC4leC4tCDguJXguLHguYnguIfguJ7guLnguKXguJ7guLHguJnguJjguLjguYwNCivguKrguLjguIrguLLguJXguLQg4LiW4Liy4Lin4Lij4Lin4LiH4Lip4LmMDQor4Liq4Li44LiK4Liy4LiV4Li0IOC5gOC4l+C4teC4ouC4oeC4quC4oeC4seC4og0KK+C4quC4uOC4iuC4suC4leC4tCDguJnguKPguLLguIHguLjguKXguKPguLHguKjguKHguLUNCivguKrguLjguIrguLLguJXguLQg4Lia4Liz4Lij4Li44LiH4Lie4Liy4LiZ4Li04LiKDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4m+C4o+C4sOC4quC4suC4meC4mOC4o+C4o+C4oeC4hOC4uOC4kw0KK+C4quC4uOC4iuC4suC4leC4tCDguJzguKXguKDguLTguKPguKENCivguKrguLjguIrguLLguJXguLQg4Lie4Liw4LiZ4Lit4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Liq4Li44LiK4Liy4LiV4Li0IOC5gOC4nuC4teC4ouC4o+C4mOC4uOC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4iuC4suC4leC4tCDguKHguKXguJfguK3guIfguJTguLUNCivguKrguLjguIrguLLguJXguLQg4Lii4Li04LmJ4Lih4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4o+C4uOC4iOC4tOC5guC4oeC4o+C4sA0KK+C4quC4uOC4iuC4suC4leC4tCDguKXguLXguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguKrguLjguIrguLLguJXguLQg4Lin4LiH4Lio4LmM4Liq4Lih4Lia4Li44LiNDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4p+C4suC4meC4tOC4iuC4ouC5jOC4q+C4suC4meC4meC4l+C5jA0KK+C4quC4uOC4iuC4suC4leC4tCDguKjguKPguLXguJ/guYnguLLguKXguLLguKfguLHguJPguKLguYwNCivguKrguLjguIrguLLguJXguLQg4Lio4Li44LiB4Lij4Lin4Lij4Lij4LiTDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4quC4p+C5iOC4suC4h+C4geC4suC4ow0KK+C4quC4uOC4iuC4suC4leC4tCDguKrguLTguJnguJvguKPguLDguKrguIfguITguYwNCivguKrguLjguIrguLLguJXguLQg4Liq4Li44LiX4LiY4Li04Lie4Lij4Liq4LiB4Li44LilDQor4Liq4Li44LiK4Liy4LiV4Li0IOC5gOC4quC4o+C4teC4quC4uOC4p+C4o+C4o+C4k+C4geC4tOC4iA0KK+C4quC4uOC4iuC4suC4leC4tCDguYDguKvguIfguLXguYjguKLguKHguIfguLLguKHguKjguKPguLUNCivguKrguLjguIrguLLguJXguLQg4Lit4LmI4Lit4LiZ4Liq4Li44LiCDQor4Liq4Li44LiK4Liy4LiV4Li0IOC4reC4uOC4lOC4oeC4oOC4seC4geC4lOC4teC4p+C4h+C4qOC5jA0KK+C4quC4uOC4iuC4suC4oiDguIrguKfguLLguKXguJTguLTguJANCivguKrguLjguIrguLLguKIg4Liq4Li44LiZ4Lix4LiZ4LiX4Liy4Lij4Lit4LiUDQor4Liq4Li44LiK4Li04LiVIOC4peC5iOC4s+C4i+C4sw0KK+C4quC4uOC4iuC4tOC4mSDguIjguLPguJvguLLguJnguYnguK3guKINCivguKrguLjguIrguLTguJkg4LiV4LmI4Liy4LiH4LmD4LiIDQor4Liq4Li44LiK4Li04LiZIOC4m+C4o+C4sOC5hOC4nuC4qOC4tOC4peC4m+C5jA0KK+C4quC4uOC4iuC4tOC4mSDguYDguKHguIbguLDguKrguLjguKfguKPguKPguJPguYLguKPguIjguJnguYwNCivguKrguLjguIrguLTguJkg4Lio4Lij4Li14Lie4Lix4LiS4LiZ4Lin4Lij4Liy4LiH4LiB4Li54LilDQor4Liq4Li44LiK4Li04LiZIOC5geC4quC4h+C4reC4tOC4meC4l+C4o+C5jA0KK+C4quC4uOC4iuC4teC4niDguIHguLjguKXguIHguLLguI3guIjguJnguLLguIrguLXguKfguLTguJkNCivguKrguLjguIrguLXguJ4g4Liq4Li04LiH4Lir4LmM4LiY4Li14Lij4LmMDQor4Liq4Li44LiK4Li14Lil4LiyIOC5geC4i+C5iOC4q+C5iOC4suC4mQ0KK+C4quC4uOC4keC4suC4l+C4tOC4nuC4ouC5jCDguJ/guLHguIHguYDguKLguYfguJkNCivguKrguLjguJPguLTguKrguLIg4LmA4Lii4LmH4LiZ4LiJ4LmI4LizDQor4Liq4Li44LiT4Li1IOC4iOC4tOC4o+C4seC4meC4lOC4ow0KK+C4quC4uOC4k+C4tSDguYDguJTguIrguKrguLjguKfguKPguKPguJPguYwNCivguKrguLjguJPguLUg4Lib4Liy4LiZ4LiU4Li1DQor4Liq4Li44LiT4Li1IOC4peC4tOC4oeC4m+C5jOC4nuC4meC4suC4p+C4h+C4qOC5jA0KK+C4quC4uOC4k+C4tSDguKrguLTguJfguJjguLTguYDguKfguIrguKfguLTguIjguLTguJXguKMNCivguKrguLjguJPguLXguJnguLjguIog4LmC4LiV4LmK4Liw4Lir4Lin4Lix4LiHDQor4Liq4Li44LiT4Li14Lii4LmMIOC5gOC4l+C4nuC4quC4suC4og0KK+C4quC4uOC4k+C4teC4ouC5jCDguKfguLTguJfguKLguLLguJfguKPguIfguJXguKPguLDguIHguLnguKUNCivguKrguLjguJQg4LiB4Lij4Liw4LmB4Liq4LmA4LiX4LieDQor4Liq4Li44LiU4LiI4Li04LiVIOC5gOC4iOC4o+C4tOC4jeC4meC4tOC4nuC4meC4mOC5jOC4p+C4suC4meC4tOC4ig0KK+C4quC4uOC4lOC4iOC4tOC4leC4leC5jCDguKjguKPguLXguJXguKPguLXguKPguLHguJXguJnguYwNCivguKrguLjguJTguIrguLLguKIg4Lia4Li44LiN4LmC4LiVDQor4Liq4Li44LiU4LiY4Li04LiU4LiyIOC4oeC4q+C4tOC5guC4hOC4lQ0KK+C4quC4uOC4lOC4quC4h+C4p+C4mSDguIjguLHguJnguJfguKPguYzguKjguKPguLUNCivguKrguLjguJTguKrguKfguLLguJcg4LmA4LiJ4Li14Lii4Lia4LmB4Lir4Lil4LihDQor4Liq4Li44LiU4Liq4Liy4Lii4LmD4LiIIOC4q+C4suC5gOC4o+C4t+C4reC4meC5guC4oOC4hA0KK+C4quC4uOC4lOC4siDguIjguIfguKfguLHguJLguJnguLINCivguKrguLjguJTguLIg4LmA4LiK4Li14Lii4LiH4LmA4LiK4Liy4Lin4LmM4LmE4LinDQor4Liq4Li44LiU4LiyIOC4leC4uOC4peC4suC4p+C4k+C4tOC4ig0KK+C4quC4uOC4lOC4siDguJrguLPguKPguLjguIfguKvguKHguLnguYgNCivguKrguLjguJTguLIg4Lie4Li24LmI4LiH4LmC4Lie4LiY4Li04Lib4Lix4LiB4LiC4Li04Lii4LiwDQor4Liq4Li44LiU4LiyIOC4o+C4uOC5iOC4h+C5geC4quC4hw0KK+C4quC4uOC4lOC4siDguKjguKPguLXguIHguKPguIHguLLguKMNCivguKrguLjguJTguLIg4Liq4Li44LiC4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4Liq4Li44LiU4LiyIOC4reC4seC4qOC4p+C5guC4oOC4hOC4tOC4mQ0KK+C4quC4uOC4lOC4suC4l+C4tOC4nuC4ouC5jCDguYDguK3guLXguYjguKLguKHguK3guLTguJfguJjguLTguKTguJfguJjguLTguYwNCivguKrguLjguJTguLLguJ7guKMg4Lih4LiT4Li14Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44LiU4Liy4Lie4Lix4LiZ4LiY4LmMIOC4reC4tOC4qOC4o+C4suC4h+C4geC4ueC4oyDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Liq4Li44LiU4Liy4Lij4Lix4LiV4LiZ4LmMIOC5geC4geC5ieC4p+C4iuC4tOC4h+C4lOC4p+C4hw0KK+C4quC4uOC4lOC4suC4o+C4seC4leC4meC5jCDguIrguLTguJnguLDguJvguKPguLDguKDguLINCivguKrguLjguJTguLLguKPguLHguJXguJnguYwg4LiY4Lix4LiN4Liq4Li04Lij4Li04LmC4Lij4LiI4LiZ4LmMDQor4Liq4Li44LiU4Liy4Lij4Lix4LiV4LiZ4LmMIOC4nuC4tOC4oeC4nuC4tOC4oeC4pQ0KK+C4quC4uOC4lOC4suC4o+C4seC4leC4meC5jCDguYDguKXguLTguKjguKfguLTguJfguKLguLLguJ7guJnguJjguYwNCivguKrguLjguJTguLLguKPguLHguJXguJnguYwg4Liq4Liy4Lij4LiV4Liy4Lii4LiZDQor4Liq4Li44LiU4Liy4Lij4Lix4LiV4LiZ4LmMIOC4reC4tOC4meC5guC4l+C4reC4mOC4tOC4nuC4ow0KK+C4quC4uOC4lOC4suC4p+C4lOC4tSDguYHguKrguIfguIrguKHguKDguLkNCivguKrguLjguJTguLLguKfguKPguKPguJMg4Lio4Lij4Li14Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Liq4Li44LiU4Liy4Lit4LijIOC4quC4seC4iOC4iOC4suC4mOC4o+C4o+C4oQ0KK+C4quC4uOC4lOC5geC4quC4p+C4hyDguYHguKrguIfguJnguJ7guKPguLHguJXguJnguYwNCivguKrguLjguJTguYPguIgg4LiI4LiH4Lih4LmC4LiZ4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Li44LiU4LmD4LiIIOC4iuC4seC4ouC5gOC4m+C4o+C4oQ0KK+C4quC4uOC4lOC5g+C4iCDguYHguJXguIfguK3guYjguK3guJkNCivguKrguLjguJTguYPguIgg4Lia4Li44LiN4Lih4Liy4LiBDQor4Liq4Li44LiU4LmD4LiIIOC4nuC4suC4meC4tOC4iuC4geC4uOC4pQ0KK+C4quC4uOC4lOC5g+C4iCDguYHguKLguYnguKHguYDguKvguKHguLfguK3guJkNCivguKrguLjguJTguYPguIgg4Lio4Lij4Li14Lih4LmI4Lin4LiHDQor4Liq4Li44LiU4LmD4LiIIOC4quC4tOC4meC4quC4oeC4uOC4l+C4o+C5jA0KK+C4quC4uOC4lOC5g+C4iCDguK3guYjguK3guJnguKjguKPguLUNCivguKrguLjguJbguLLguKfguKPguJPguYwg4LmA4LiB4Li14Lii4Lij4LiV4Li04Lio4Li04Lil4Lib4LiZ4Lix4LiZ4LiV4LmMDQor4Liq4Li44LiX4LiY4Liy4LiX4Li04Lie4Lii4LmMIOC4m+C4o+C4sOC4quC4nuC4quC4uOC4guC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4l+C4mOC4tCDguIrguLLguJXguLTguKLguLLguJnguJnguJfguYwNCivguKrguLjguJfguJjguLQg4LmA4Lie4LmH4LiH4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44LiX4LiY4Li0IOC4quC4uOC4l+C4mOC4tOC4mOC4o+C4o+C4oeC4geC4uOC4pQ0KK+C4quC4uOC4l+C4mOC4tOC4iuC4seC4oiDguYTguIHguKPguITguLjguJPguLLguKjguLHguKINCivguKrguLjguJfguJjguLTguIrguLHguKIg4LiV4Lix4LiZ4LiY4LiZ4Liy4Lio4Li04Lij4Li04LiB4Li44LilDQor4Liq4Li44LiX4LiY4Li04LiK4Lix4LiiIOC4oeC4q+C4p+C4peC4teC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4l+C4mOC4tOC4iuC4seC4oiDguKrguLjguJfguJjguLTguJ7guLTguJrguLnguKXguKLguYwNCivguKrguLjguJfguJjguLTguJPguLUg4LiI4Li04LiV4LiV4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44LiX4LiY4Li04LiZ4Lix4LiZ4LiX4LmMIOC5guC4nuC4mOC4tOC4meC4suC4hA0KK+C4quC4uOC4l+C4mOC4tOC4meC4tSDguKrguLLguKPguLDguKLguLINCivguKrguLjguJfguJjguLTguJ7guIfguKjguYwg4Lin4LiI4Li14Lib4Li04Lii4LiZ4Lix4LiZ4LiX4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44LiX4LiY4Li04Lie4LiH4Lip4LmMIOC5hOC4leC4o+C4o+C4seC4leC4meC4l+C4o+C4h+C4nuC4pQ0KK+C4quC4uOC4l+C4mOC4tOC4nuC4h+C4qeC5jCDguKjguKPguLXguYDguJnguLXguKLguKENCivguKrguLjguJfguJjguLTguJ7guKMg4LiV4Lix4LiZ4Lih4LiH4LiE4LilDQor4Liq4Li44LiX4LiY4Li04Lie4LilIOC5geC4quC4h+C4o+C4uOC5ieC4h+C4kOC4tOC4leC4tOC4o+C4seC4geC4qeC5jA0KK+C4quC4uOC4l+C4mOC4tOC4oeC4siDguIjguLTguJXguJXguKPguIcNCivguKrguLjguJfguJjguLTguKPguLHguJXguJnguYwg4LiH4Liy4Lih4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Li44LiX4LiY4Li04Lil4Lix4LiB4Lip4LiT4LmMIOC4nOC5iOC4reC4h+C4qOC4tOC4o+C4tA0KK+C4quC4uOC4l+C4mOC4tOC4p+C4tOC4l+C4ouC5jCDguILguLPguKXguLPguKDguLkNCivguKrguLjguJfguJjguLTguKjguLHguIHguJTguLTguYwg4Lij4Liw4LiI4Li04LiV4LiU4Liz4Lij4LiH4LiE4LmMDQor4Liq4Li44LiX4LiY4Li04Liq4Lix4LiZ4LiV4LmMIOC4leC4seC5ieC4h+C4qOC4o+C4teC4p+C4h+C4qeC5jA0KK+C4quC4uOC4l+C4mOC4tSDguIHguLTguIjguKrguLjguKDguLUNCivguKrguLjguJfguKPguKPguKgg4Lin4Lix4LiR4LiS4LiB4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44LiX4Lix4LiZIOC4quC4p+C4seC4quC4lOC4tOC5jOC4n+C4seC4gQ0KK+C4quC4uOC4l+C4seC4qOC4meC5jCDguIHguKXguLTguYjguJnguYLguIvguJTguLINCivguKrguLjguJfguLHguKjguJnguYwg4LiI4Liz4Lij4Lix4Liq4LiI4Li44Lis4Liy4LmA4LiZ4LiV4LijDQor4Liq4Li44LiX4Lix4Lio4LiZ4LmMIOC4lOC5iOC4suC4meC4reC4uOC4lOC4oeC4iuC4suC4jQ0KK+C4quC4uOC4l+C4seC4qOC4meC5jCDguJjguLXguKPguJjguJnguLLguIHguKMNCivguKrguLjguJfguLHguKjguJnguYwg4Lie4LiZ4Lix4Liq4LmA4Lil4Li04LioDQor4Liq4Li44LiX4Lix4Lio4LiZ4LmMIOC4o+C4reC4ouC4geC4uOC4peC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4l+C4seC4qOC4meC5jCDguKfguLjguJLguLTguIHguKPguKfguJPguLTguIrguKLguYwNCivguKrguLjguJfguLHguKjguJnguYwg4Liq4Li04LiX4LiY4Li04Lin4LiH4Lio4LmMDQor4Liq4Li44LiX4Lix4Lio4LiZ4LmMIOC4reC5iOC4reC4meC4iuC4uOC4peC4tQ0KK+C4quC4uOC4l+C4tOC4lSDguIHguJnguIHguYDguKXguLTguKjguKfguIfguKjguYwNCivguKrguLjguJfguLTguJkg4LiE4Li54LiZ4LmJ4Liz4LiX4Li04Lie4Lii4LmMDQor4Liq4Li44LiX4Li04LiZIOC5guC4iuC4leC4tOC4iOC4uOC4rOC4suC4h+C4geC4ueC4ow0KK+C4quC4uOC4l+C4tOC4mSDguJfguLHguJXguJXguLLguJnguJnguJfguYwNCivguKrguLjguJfguLTguJkg4Lia4Li54Lij4LiT4Liq4Li04LiZDQor4Liq4Li44LiX4Li04LiZIOC4oOC4suC4hOC4ouC4sOC4p+C4seC4mOC4meC5jA0KK+C4quC4uOC4l+C4tOC4mSDguKTguJfguKPguLLguITguKMNCivguKrguLjguJfguLTguJkg4Liq4LiZ4LiX4Lit4LiHDQor4Liq4Li44LiX4Li04LiZIOC5geC4quC4p+C4h+C4mOC4teC4o+C4sA0KK+C4quC4uOC4l+C4tOC4meC4tSDguYLguIHguKHguKXguKrguLTguIfguKvguYwNCivguKrguLjguJfguLTguKjguLIg4Lit4Li44LiU4Lih4LiI4Liy4Lij4Li44Lih4LiT4Li1DQor4Liq4Li44LiY4LiZIOC4iuC4ueC4iuC4seC4og0KK+C4quC4uOC4mOC4mSDguKXguLTguKHguJvguKHguJnguJXguYwNCivguKrguLjguJjguKMg4LiI4Li04LiV4LiB4Lij4Li14Liq4LijDQor4Liq4Li44LiY4Lij4Lij4LihIOC4iuC4seC4ouC4qOC4o+C4teC4p+C4tOC4muC4ueC4peC4ouC5jA0KK+C4quC4uOC4mOC4o+C4o+C4oSDguJrguLjguI3guYDguK3guIHguJrguLjguKjguKLguYwNCivguKrguLjguJjguKPguKPguKEg4LmA4Lil4Li04Lio4Lie4LiH4Lip4LmM4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Li44LiY4Lij4Lij4LihIOC4q+C4sOC4quC4tOC4leC4sOC5gOC4p+C4ig0KK+C4quC4uOC4mOC4seC4jeC4jeC4siDguYLguJ7guJjguLTguKPguLHguIrguJXguLLguIfguIHguLnguKMNCivguKrguLjguJjguLIg4Lir4LiH4Lip4LmM4Lij4Lix4LiV4LiZ4Lit4Li44LiX4Lix4LiiDQor4Liq4Li44LiY4Liy4LiX4Li04Lie4Lii4LmMIOC4iuC4ouC4suC4h+C4qOC4uA0KK+C4quC4uOC4mOC4suC4l+C4tOC4nuC4ouC5jCDguKjguKPguLXguKHguLjguIHguILguYwNCivguKrguLjguJjguLLguKDguKPguJPguYwg4Liq4Li44LiX4LiY4Li04LiZ4LiyDQor4Liq4Li44LiY4Liy4Lij4Lix4LiV4LiZ4LmMIOC4quC4uOC4guC4quC4s+C4reC4suC4h+C4hOC5jA0KK+C4quC4uOC4mOC4suC4quC4tOC4meC4tSDguKfguLTguIjguLTguJXguKPguLLguJnguJnguJfguYwNCivguKrguLjguJjguLTguJTguLIg4LiK4Li34LmI4LiZ4LmB4Liq4LiH4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Liq4Li44LiY4Li04LiU4LiyIOC4qOC4tOC4o+C4sOC4p+C4seC4kuC4meC4iuC4seC4og0KK+C4quC4uOC4mOC4tOC4nuC4oyDguKrguK3guJnguKHguLHguIcNCivguKrguLjguJjguLUg4LiB4Lij4Lit4Li44LmE4LijDQor4Liq4Li44LiY4Li1IOC4ieC4seC4leC4o+C4reC4oOC4tOC4p+C4seC4meC4l+C5jA0KK+C4quC4uOC4mOC4tSDguYDguJXguYjguLLguJfguK3guIcNCivguKrguLjguJjguLUg4Lia4Li44LiT4Lii4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Liq4Li44LiY4Li1IOC4oeC4suC4peC4teC4qOC4o+C4tQ0KK+C4quC4uOC4mOC4tSDguKfguLTguYDguKjguKnguKrguLjguJnguJfguKPguKrguIHguLjguKUNCivguKrguLjguJjguLUg4Liq4Li44LiY4Lij4Lij4Lih4LiQ4Li04LiV4Li0DQor4Liq4Li44LiY4Li14LiU4LiyIOC4geC4oeC4peC4o+C4seC4leC4meC4sg0KK+C4quC4uOC4mOC4teC4o+C4siDguITguLjguJPguJnguLTguKPguLHguJnguJTguKMNCivguKrguLjguJjguLXguKPguLIg4Lie4Lil4Liq4LiZ4LiwDQor4Liq4Li44LiY4Li14Lij4LiyIOC4reC4oeC4o+C4meC4pOC4meC4suC4lg0KK+C4quC4uOC4mOC4teC4o+C5jCDguJvguKPguLXguIrguLLguJnguLjguKfguLHguJLguJnguYwNCivguKrguLjguJjguLXguKXguLIg4LiY4LiZ4Liw4Lik4LiX4LiY4Li04LmM4LmC4Lij4LiI4LiZ4LmMDQor4Liq4Li44LiZ4LiX4LijIOC4geC4tOC4iOC4iOC4uOC4peC4peC4iOC4suC4o+C4tOC4lQ0KK+C4quC4uOC4meC4l+C4oyDguILguLHguJnguJfguLDguKPguLLguKENCivguKrguLjguJnguJfguKMg4LmC4LiE4LmJ4Lin4LiZ4Lik4Lih4Li04LiV4LijDQor4Liq4Li44LiZ4LiX4LijIOC4iOC4tOC4o+C4suC4ouC4uOC4p+C4seC4kuC4meC4sg0KK+C4quC4uOC4meC4l+C4oyDguIrguLLguI0NCivguKrguLjguJnguJfguKMg4LmB4LiL4LmI4Lif4Lit4LiHDQor4Liq4Li44LiZ4LiX4LijIOC4leC4o+C4sOC4geC4ueC4peC4pOC4l+C4mOC4tOC5gOC4lOC4ig0KK+C4quC4uOC4meC4l+C4oyDguJfguKPguLHguJ7guKLguYzguYDguIjguKPguLTguI0NCivguKrguLjguJnguJfguKMg4LiY4Li04LiK4Liy4LiB4Lij4LiT4LmMDQor4Liq4Li44LiZ4LiX4LijIOC4muC4seC4p+C4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4quC4uOC4meC4l+C4oyDguJvguKPguLDguKDguLLguYLguKPguIjguJnguYwNCivguKrguLjguJnguJfguKMg4Lie4LiI4LiZ4LmM4LiY4LiZ4Lih4Liy4LioDQor4Liq4Li44LiZ4LiX4LijIOC4nuC4uOC4kuC4tOC4geC4o+C4geC4uOC4pQ0KK+C4quC4uOC4meC4l+C4oyDguKDguLnguKHguLTguK3guYjguK3guJkNCivguKrguLjguJnguJfguKMg4Lii4Lio4LmB4LiB4LmJ4LinDQor4Liq4Li44LiZ4LiX4LijIOC4o+C4uOC5iOC4h+C5geC4iOC5ieC4hw0KK+C4quC4uOC4meC4l+C4oyDguYDguKXguYnguLLguKfguLTguIrguLHguKINCivguKrguLjguJnguJfguKMg4Lin4Li04LiK4Liy4LiK4Liy4LiNDQor4Liq4Li44LiZ4LiX4LijIOC4qOC4o+C4teC5geC4quC4h+C4n+C5ieC4sg0KK+C4quC4uOC4meC4l+C4oyDguKrguK3guJnguKrguLUNCivguKrguLjguJnguJfguKMg4Liq4Li44LiC4Lih4Lix4LiiDQor4Liq4Li44LiZ4LiX4LijIOC5gOC4quC4t+C4reC5g+C4q+C4jeC5iA0KK+C4quC4uOC4meC4l+C4oyDguK3guJnguLjguYDguJTguIoNCivguKrguLjguJnguJfguKMg4Lit4Li04LmI4Lih4LmA4Lit4Li04Lia4Liq4Li44LiCDQor4Liq4Li44LiZ4LiX4Lij4LiyIOC4meC4p+C4peC4p+C4tOC4iOC4tOC4leC4ow0KK+C4quC4uOC4meC4l+C4o+C4tSDguIHguK3guKrguLTguIfguKvguKfguLHguJLguJnguLINCivguKrguLjguJnguJfguKPguLUg4LiI4Lix4LiZ4LiX4Lin4Li44LiS4Li0DQor4Liq4Li44LiZ4LiX4Lij4Li1IOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4quC4uOC4meC4l+C4o+C4tSDguJfguLLguKPguKHguKLguYwNCivguKrguLjguJnguJfguKPguLUg4Lib4Lix4LiN4LiN4Liy4LiY4Lix4LiN4LiN4LiwDQor4Liq4Li44LiZ4LiX4Lij4Li1IOC5hOC4nuC4qOC4suC4peC4p+C4tOC4iOC4tOC4leC4o+C4meC4uOC4ig0KK+C4quC4uOC4meC4l+C4o+C4tSDguKXguLPguYTguKLguJfguK3guIcNCivguKrguLjguJnguJfguKPguLUg4Lio4Li04Lil4Lib4Liq4Liy4LiE4LijDQor4Liq4Li44LiZ4LiX4Lij4Li1IOC5geC4quC4h+C5gOC4h+C4tOC4mQ0KK+C4quC4uOC4meC4l+C4o+C4tSDguYDguK3guLXguYjguKLguKHguKTguIHguKnguYzguKjguLTguKPguLQNCivguKrguLjguJnguJnguJfguYwg4Liq4Li44Lin4LiH4Lio4LmMDQor4Liq4Li44LiZ4Lix4LiZIOC4m+C4o+C4sOC4geC4suC4ouC4qOC4tOC4peC4m+C5jA0KK+C4quC4uOC4meC4seC4meC4l+C4o+C4siDguITguLPguJrguKPguKPguKXguLfguK0NCivguKrguLjguJnguLHguJnguJfguLIg4LiE4LiK4LiZ4Liy4LiEDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LiyIOC4ieC4seC4meC4l+C4qOC4suC4quC4leC4o+C5jOC4o+C4seC4qOC4oeC4tQ0KK+C4quC4uOC4meC4seC4meC4l+C4siDguYHguIvguYjguYDguJXguLXguKINCivguKrguLjguJnguLHguJnguJfguLIg4LmC4LiV4Lih4Liy4LiZ4LiwDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LiyIOC4meC4tOC4peC4qOC4o+C4tQ0KK+C4quC4uOC4meC4seC4meC4l+C4siDguYLguJvguKnguKLguLLguJnguJnguJfguYwNCivguKrguLjguJnguLHguJnguJfguLIg4LmC4Lie4LiY4Li04LmM4LiX4Lit4LiHDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LiyIOC4o+C4seC4h+C4qeC4teC4mOC4o+C4o+C4oQ0KK+C4quC4uOC4meC4seC4meC4l+C4siDguKfguKPguIHguLTguIjguK3guLLguJfguKMNCivguKrguLjguJnguLHguJnguJfguLIg4Lio4Li44Lig4Lih4Liy4LiV4Lij4LiyDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LiyIOC4quC4uOC4o+C4oOC4seC4geC4lOC4tQ0KK+C4quC4uOC4meC4seC4meC4l+C4siDguK3guLHguKjguKfguJnguLHguKLguIHguLTguIgNCivguKrguLjguJnguLHguJnguJfguYwg4LiB4Li04Lii4Liw4LmB4Lie4LiX4Lii4LmMDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC4h+C4suC4oeC4reC4seC4hOC4o+C4geC4uOC4pQ0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguInguLHguJXguKPguYHguIHguYnguKcNCivguKrguLjguJnguLHguJnguJfguYwg4LmB4LiL4LmI4Lir4Lin4LmI4Lit4LiHDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC4leC4suC4m+C4quC4meC4seC4meC4l+C4meC5jA0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguJjguKPguKPguKHguKfguIfguKjguYzguKfguLHguJLguJnguYwNCivguKrguLjguJnguLHguJnguJfguYwg4Lia4Li54Lij4LiT4LmM4Lil4Lit4LihDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC4nuC4p+C4h+C4meC4tOC4pQ0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguKHguIfguITguKUNCivguKrguLjguJnguLHguJnguJfguYwg4Lij4Lix4LiH4Liq4Li04LiV4LmA4Liq4LiW4Li14Lii4LijDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC4p+C4h+C4qOC5jOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguKjguLTguKPguLTguIHguLLguKPguJPguYwNCivguKrguLjguJnguLHguJnguJfguYwg4Liq4Li04LiZ4LiY4Li44LmM4Lib4Lij4Liw4Liq4Lie4LiK4Lix4LiiDQor4Liq4Li44LiZ4Lix4LiZ4LiX4LmMIOC4q+C4reC4oeC4nuC4uOC4kg0KK+C4quC4uOC4meC4seC4meC4l+C5jCDguYDguK3guIHguKfguLHguJLguJnguYwNCivguKrguLjguJnguLHguKIg4Lih4Lii4Li44Lij4LiZ4Liy4LiE4Li04LiZDQor4Liq4Li44LiZ4Liy4LiEIOC4q+C4reC4oeC4q+C4p+C4pQ0KK+C4quC4uOC4meC4suC4o+C4tSDguKrguIfguYDguITguKPguLLguLDguKvguYwNCivguKrguLjguJnguLTguJTguLIg4LiV4Lix4LiZ4LiB4Lix4LiZ4Lig4Lix4LiiDQor4Liq4Li44LiZ4Li04LiV4Lii4LiyIOC5geC4geC5ieC4p+C5gOC4reC4teC5iOC4ouC4oQ0KK+C4quC4uOC4meC4tOC4leC4ouC5jCDguKrguLjguJnguJfguKMNCivguKrguLjguJnguLTguKDguLIg4Lij4Li44LmI4LiH4LmA4Lih4LiG4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44LiZ4Li04Lip4LiyIOC4iOC4seC4meC5gOC4geC4tOC4lA0KK+C4quC4uOC4meC4tOC4quC4siDguIjguLHguJnguJfguJrguLnguKXguKLguYwNCivguKrguLjguJnguLTguKrguLIg4LiV4Lix4LiZ4LiV4Li04LiB4Li44Lil4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Liq4Li44LiZ4Li04Liq4LiyIOC4nuC4tOC4l+C4ouC4suC4mOC4meC4suC4quC4geC4uOC4pQ0KK+C4quC4uOC4meC4tOC4quC4siDguKfguLHguIrguKPguJ7guIfguKjguYwNCivguKrguLjguJnguLTguKrguLIg4LmA4Lir4Lil4Li34Lit4LiH4Lij4Liw4LiG4Lix4LiHDQor4Liq4Li44LiZ4Li1IOC4hOC4h+C4quC4tOC4meC4l+C4p+C4teC4quC4uOC4gg0KK+C4quC4uOC4meC4tSDguYHguIvguYjguYDguIjguLXguKINCivguKrguLjguJnguLUg4LiZ4Li04LmI4Lih4LiZ4LmJ4Lit4LiiDQor4Liq4Li44LiZ4Li1IOC4oeC4tOC5iOC4h+C4oeC4k+C4teC4meC4suC4hOC4tOC4mQ0KK+C4quC4uOC4meC4tSDguKjguKPguLXguKrguLjguKPguLXguKLguYzguYTguJ7guKjguLLguKUNCivguKrguLjguJnguLUg4Lit4Lix4Lio4Lin4LmA4LiI4Lij4Li04LiN4Lil4Liy4LigDQor4Liq4Li44LiZ4Li14Lii4LmM4Lij4Lix4LiV4LiZ4LmMIOC4qOC4tOC4o+C4tOC5gOC4peC4tOC4qOC5gOC4o+C4t+C4reC4h+C4iuC4seC4og0KK+C4quC4uOC4meC4teC4ouC5jCDguIHguLjguKXguKTguIrguLLguIHguKMNCivguKrguLjguJnguLXguKLguYwg4LiE4LiZ4Lih4Lix4LmI4LiZDQor4Liq4Li44LiZ4Li14Lii4LmMIOC4iOC4suC4leC4uOC4p+C4seC4kuC4meC5jA0KK+C4quC4uOC4meC4teC4ouC5jCDguInguLHguJnguJfguKrguKHguJrguLHguJXguLQNCivguKrguLjguJnguLXguKLguYwg4LmC4LiK4LiV4Li04Lih4LiyDQor4Liq4Li44LiZ4Li14Lii4LmMIOC5geC4i+C5iOC4peC5ieC4rQ0KK+C4quC4uOC4meC4teC4ouC5jCDguJTguLLguKPguLTguIHguLLguKPguYzguJnguJnguJfguYwNCivguKrguLjguJnguLXguKLguYwg4LmB4LiV4LmJ4Lih4LmA4LiV4Li04LihDQor4Liq4Li44LiZ4Li14Lii4LmMIOC4mOC4meC4suC4meC4meC4l+C5jA0KK+C4quC4uOC4meC4teC4ouC5jCDguJnguLTguKPguLjguJXguJXguLTguJnguLLguJnguJnguJfguYwNCivguKrguLjguJnguLXguKLguYwg4Lib4Lij4Li14LiK4Liy4LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Li44LiZ4Li14Lii4LmMIOC4nuC4o+C4q+C4oeC4quC4uOC4p+C4tOC4iuC4seC4og0KK+C4quC4uOC4meC4teC4ouC5jCDguYHguJ7guKPguKrguLjguKfguLHguJLguJnguYzguKjguLTguKXguJvguYwNCivguKrguLjguJnguLXguKLguYwg4Lih4Liy4LiX4Lit4LiHDQor4Liq4Li44LiZ4Li14Lii4LmMIOC4o+C4seC4leC4meC4oOC4ueC4oeC4tOC4oOC4tOC4jeC5guC4jQ0KK+C4quC4uOC4meC4teC4ouC5jCDguKXguLTguYnguKHguJ7guKPguKPguLHguJXguJnguYwNCivguKrguLjguJnguLXguKLguYwg4Lin4Lij4Lin4Li44LiS4Li0DQor4Liq4Li44LiZ4Li14Lii4LmMIOC4qOC4o+C4teC4nuC4seC4iuC4o+C4nuC4seC4meC4mOC5jA0KK+C4quC4uOC4meC4teC4ouC5jCDguKrguKPguYnguK3guKLguJfguK3guIcNCivguKrguLjguJnguLXguKLguYwg4Liq4Li44LiC4Li44Lih4Lin4Lij4Lie4LiI4LiZ4LmMDQor4Liq4Li44LiZ4Li14Lii4LmMIOC5geC4quC4h+C5g+C4ouC4oeC4k+C4tQ0KK+C4quC4uOC4meC4teC4ouC5jCDguK3guJnguLjguJ7guIfguKjguYzguK3guKDguLHguKINCivguKrguLjguJnguLXguKLguYwg4Lit4Li04LiH4Liq4LiB4Li44Lil4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4Liq4Li44LiZ4Li14Lij4Lix4LiV4LiZ4LmMIOC4iOC4h+C4m+C4o+C4teC4iuC4sg0KK+C4quC4uOC5iOC4mSDguYDguIHguLTguJTguKXguLLguKANCivguKrguLjguJrguKPguKPguJPguYwg4LmB4LiB4LmI4LiZ4Liq4Liy4LijDQor4Liq4Li44Lia4Li04LiZIOC4leC4o+C4teC4m+C4seC4iOC4ouC4suC4geC4ow0KK+C4quC4uOC4muC4tOC4mSDguYLguJ7guJjguLTguYzguK3guLHguKHguJ7guKMNCivguKrguLjguJrguLTguJkg4Lit4Liy4LiC4Li44Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44Lib4Lij4Liy4LiT4Li1IOC4geC4meC4geC4p+C4uOC4kuC4tA0KK+C4quC4uOC4m+C4o+C4suC4k+C4tSDguIjguLHguJnguJfguKPguYzguKrguLTguJkNCivguKrguLjguJvguKPguLLguJPguLUg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Liq4Li44Lib4Lij4Liy4LiT4Li1IOC4mOC4teC4o+C4reC4meC4uOC4o+C4seC4geC4qeC5jOC4geC4uOC4pQ0KK+C4quC4uOC4m+C4o+C4suC4k+C4tSDguJ7guLHguIrguKPguJ7guIjguJnguLLguIHguKPguJPguYwNCivguKrguLjguJvguKPguLLguJPguLUg4Lij4Lix4LiV4LiZ4LiE4Liy4LihDQor4Liq4Li44Lib4Lij4Liy4LiT4Li1IOC4qOC4o+C4teC4l+C4suC5guC4ruC4oQ0KK+C4quC4uOC4m+C4o+C4suC4k+C4tSDguYTguKrguKLguKrguKHguJrguLHguJXguLQNCivguKrguLjguJvguKPguLLguJnguLUg4LiV4Lix4LiZ4Liq4Li04LiX4LiY4Li0DQor4Liq4Li44Lib4Lij4Li14LiU4LiyIOC5gOC4oeC4huC4reC4meC4seC4meC4leC5guC4geC4qOC4pQ0KK+C4quC4uOC4m+C4o+C4teC4ouC4siDguKjguLTguKXguLLguYDguIHguKkNCivguKrguLjguJvguLHguJkg4Lie4Lil4LmA4Liq4LiZ4LiyDQor4Liq4Li44Lie4LiH4Lio4LmMIOC4meC4sOC4oeC4suC4leC4o+C5jA0KK+C4quC4uOC4nuC4h+C4qeC5jCDguYDguK3guLXguYjguKLguKHguKTguIHguKnguYzguIrguLHguKINCivguKrguLjguJ7guIjguJnguYwg4LiB4Li04LiV4LiV4Li04LmC4Lig4LiE4Li04Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4hOC4h+C4nuC5iOC4p+C4hw0KK+C4quC4uOC4nuC4iOC4meC5jCDguIjguLHguJnguJfguKPguYzguKfguLTguYDguKHguKXguLfguK3guIcNCivguKrguLjguJ7guIjguJnguYwg4LmA4LiI4Lij4Li04LiN4Lie4Lij4Lir4Lih4Lih4Liy4LiV4Lij4LmMDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4iuC5ieC4suC4h+C4p+C4h+C4qOC5jOC4l+C4reC4hw0KK+C4quC4uOC4nuC4iOC4meC5jCDguYHguIvguYjguYLguIfguYnguKcNCivguKrguLjguJ7guIjguJnguYwg4LiV4Lix4LiZ4LiV4Lij4Liw4LiB4Li54LilDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC5gOC4l+C4teC4ouC4oeC4l+C4seC4mg0KK+C4quC4uOC4nuC4iOC4meC5jCDguJnguLTguKPguLHguJnguJXguKrguLjguILguKPguLHguJXguJnguYwNCivguKrguLjguJ7guIjguJnguYwg4Lib4Lij4Liw4Lig4Liy4Lit4Lig4Li04Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4nuC4iOC4meC4suC4p+C4o+C4suC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4uOC4nuC4iOC4meC5jCDguJ7guLbguYjguIfguJ7guLHguJLguJnguLINCivguKrguLjguJ7guIjguJnguYwg4Lih4LiH4LiE4Lil4LiB4Li04LiI4LiK4Lix4Lii4LiB4Liy4LijDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC5gOC4ouC4teC5iOC4ouC4oeC4p+C4tOC4jeC4jeC4sA0KK+C4quC4uOC4nuC4iOC4meC5jCDguKTguIHguKnguYzguYLguKjguKDguLTguKnguJDguYwNCivguKrguLjguJ7guIjguJnguYwg4Lin4LiH4Lio4LmM4Lin4Lij4LmA4Lio4Lij4Lip4LiQ4LmMDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4p+C4tOC4quC4suC4o+C4l+C4suC4meC4meC4l+C5jA0KK+C4quC4uOC4nuC4iOC4meC5jCDguKjguLTguKPguLTguKfguKPguKPguJPguIrguLHguKINCivguKrguLjguJ7guIjguJnguYwg4Liq4Lix4Lih4Lie4Lix4LiZ4LiY4Liy4Lij4Lix4LiB4Lip4LmMDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4quC4uOC4meC4l+C4o+C4p+C4tOC5gOC4meC4leC4o+C5jA0KK+C4quC4uOC4nuC4iOC4meC5jCDguKvguJnguLnguYHguKLguYnguKENCivguKrguLjguJ7guIjguJnguYwg4Lit4Lii4Li54LmI4Lii4Lix4LmI4LiH4Lii4Li34LiZDQor4Liq4Li44Lie4LiI4LiZ4LmMIOC4reC4uOC4l+C4seC4ouC5guC4iuC4leC4tOC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4nuC4nuC4leC4siDguJ7guKPguKfguIrguLTguKPguLLguKDguLINCivguKrguLjguJ7guKMg4LiI4Lij4Lij4Lii4Liy4LiH4Liy4LihDQor4Liq4Li44Lie4LijIOC5geC4i+C5iOC4oeC4sg0KK+C4quC4uOC4nuC4oyDguJjguKPguKPguKHguLLguJ7guLTguJfguLHguIHguKnguYzguJ7guKMNCivguKrguLjguJ7guKMg4Lie4Lil4Liw4Lie4Lil4Li14Lin4Lix4Lil4Lii4LmMDQor4Liq4Li44Lie4LijIOC4o+C4uOC4iOC4suC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4uOC4nuC4oyDguKjguLjguKDguKXguLHguIHguKnguJPguYzguJnguLLguKPguLUNCivguKrguLjguJ7guKMg4LmA4Lir4Lil4Li14LmI4Lii4Lih4Lih4LiB4Lij4Liy4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44Lie4Lij4LiK4Lix4LiiIOC4p+C4o+C4o+C4k+C4l+C4tOC4oQ0KK+C4quC4uOC4nuC4o+C4o+C4kyDguIjguLHguJnguJ7guLTguKjguLLguKUNCivguKrguLjguJ7guKPguKPguJMg4Lie4LiH4Lio4LmM4LiI4Li14Lij4LiB4Liz4LiI4LijDQor4Liq4Li44Lie4Lij4Lij4LiTIOC4quC4uOC4guC4reC4o+C4uOC4kw0KK+C4quC4uOC4nuC4o+C4o+C4k+C4siDguYDguILguLXguKLguKfguIrguK3guLjguYnguKENCivguKrguLjguJ7guKPguKPguJPguLUg4LiE4Lij4Li54LiL4LitDQor4Liq4Li44Lie4Lij4Lij4LiT4Li1IOC5geC4i+C5iOC4geC4teC5iQ0KK+C4quC4uOC4nuC4o+C4o+C4k+C4tSDguJjguKPguKPguKHguITguLXguKPguLUNCivguKrguLjguJ7guKPguKPguJPguLUg4Lie4Lij4Lie4Lix4LiS4LiZ4LiZ4Liy4LiH4LiB4Li54LijDQor4Liq4Li44Lie4Lij4Lij4LiT4Li1IOC4o+C4uOC4iOC4tOC4oOC4seC4geC4lOC4tOC5jA0KK+C4quC4uOC4nuC4o+C4o+C4k+C4tSDguKrguKHguJrguLjguI3guI3guLLguJnguJnguJfguYwNCivguKrguLjguJ7guKPguKPguJPguLUg4Lit4Lix4Lia4LiU4Li44Lil4Lil4Liy4Liq4LmMDQor4Liq4Li44Lie4Lij4Lij4Lix4LiV4LiZ4LmMIOC5gOC4q+C4peC4t+C4reC4h+C4iuC4p+C4nuC4h+C4qOC5jA0KK+C4quC4uOC4nuC4pSDguYDguInguKXguLTguKHguYDguIHguLXguKLguKPguJXguLTguIHguLjguKUNCivguKrguLjguJ7guKUg4LiZ4LmJ4Liz4LmA4Lie4LiK4LijDQor4Liq4Li44Lie4LilIOC4oeC4h+C4hOC4pQ0KK+C4quC4uOC4nuC4pSDguKrguKHguJ7guIfguKnguYwNCivguKrguLjguJ7guKUg4LmA4Lit4Li34LmJ4Lit4Lit4LiZ4Lix4LiZ4LiV4LmMDQor4Liq4Li44Lie4Lix4LiS4LiM4LiyIOC5geC4iOC4h+C4suC4oQ0KK+C4quC4uOC4nuC4seC4kuC4meC5jCDguIHguLTguIjguJrguLLguKPguKHguLUNCivguKrguLjguJ7guLHguJLguJnguYwg4LiV4Lix4LmJ4LiH4Lio4Lij4Li14Lib4Lij4Liw4LiK4Li04LiVDQor4Liq4Li44Lie4Lix4LiS4LiZ4LmMIOC4m+C4suC4p+C4sOC4nuC4tOC4nuC4seC4kuC4meC5jA0KK+C4quC4uOC4nuC4seC4kuC4meC5jCDguKPguLHguJXguJnguJ7guJnguLHguIcNCivguKrguLjguJ7guLHguJLguJnguYwg4Lio4Liy4Liq4LiV4Lij4LmM4Liq4Li04Lij4Li04Liq4Lih4Lia4Lix4LiV4Li0DQor4Liq4Li44Lie4Lix4LiS4LiZ4LmMIOC4reC4tOC4l+C4mOC4tOC5gOC4lOC4iuC4o+C4seC4leC4meC5jA0KK+C4quC4uOC4nuC4seC4leC4o+C4siDguIHguLHguJnguK3guKPguLQNCivguKrguLjguJ7guLHguJXguKPguLIg4LiH4Liy4Lih4Lil4Li04LiC4Li04LiV4Lin4Lix4LiS4LiZ4LiB4Li44LilDQor4Liq4Li44Lie4Lix4LiV4Lij4LiyIOC4iuC4tOC4meC4p+C4teC4o+C4sOC4nuC4seC4meC4mOC4uOC5jA0KK+C4quC4uOC4nuC4seC4leC4o+C4siDguJXguLHguIfguIHguKPguLHguJXguJnguYwNCivguKrguLjguJ7guLHguJXguKPguLIg4LiZ4Lix4LiZ4LiX4Lij4Lix4LiV4LiZ4Liy4LiB4Li54LilDQor4Liq4Li44Lie4Lix4LiV4Lij4LiyIOC5hOC4nOC5iOC5geC4geC5ieC4pw0KK+C4quC4uOC4nuC4seC4leC4o+C4siDguKHguLHguYjguIfguKrguLjguKfguKPguKPguJMNCivguKrguLjguJ7guLHguJXguKPguLIg4LmA4Lil4Li04Lio4Lit4Lig4Li04Liq4Li04LiX4LiY4Li04LmMDQor4Liq4Li44Lie4Lix4LiV4Lij4LiyIOC4qOC4uOC4guC4sOC4p+C4suC4l+C4tQ0KK+C4quC4uOC4nuC4seC4leC4o+C4siDguKrguLjguJXguKPguLXguYDguIrguLLguKfguJnguIHguLjguKUNCivguKrguLjguJ7guLHguJXguKPguLIg4LmC4Lir4Lij4Liy4LiZ4Li04LiE4LihDQor4Liq4Li44Lie4Lix4LiV4Lio4LijIOC4o+C4seC4geC4qeC5jOC4iuC4mQ0KK+C4quC4uOC4nuC4siDguIjguLHguJnguJfguKPguYzguJfguLTguJ7guKLguYwNCivguKrguLjguJ7guLTguIrguI3guLIg4Lie4Li04Lia4Li54Lil4Lig4Liy4LiZ4Li44Lin4Lix4LiY4LiZDQor4Liq4Li44Lie4Li04LiV4LijIOC4q+C4suC4jeC4k+C4o+C4h+C4hOC5jA0KK+C4quC4uOC4nuC4tOC4mSDguYHguIvguYjguK3guLbguYnguIcNCivguKrguLjguJ7guLTguJkg4Lin4Lij4Liy4Lie4Lik4LiB4Lip4LmMDQor4Liq4Li44Lie4Li04LiZ4LiU4LiyIOC4p+C4uOC4kuC4tOC4iuC4seC4og0KK+C4quC4uOC4nuC4tOC4qCDguIjguLHguJnguYHguIjguYjguKHguIjguLTguJXguJXguYwNCivguKrguLjguJ7guLTguKgg4Lin4LiH4Lio4LmM4Lig4Li54Lih4Li04LiZ4LiX4Lij4LmMDQor4Liq4Li44Lie4Li14Lij4LmM4Lie4Lix4LiS4LiZ4LmMIOC4iOC4reC4h+C4nuC4suC4meC4tOC4ig0KK+C4quC4uOC4oOC4iOC4tOC4o+C4siDguJTguYnguKfguIfguJTguLUNCivguKrguLjguKDguJPguLHguJAg4LiZ4Li04Lil4Lij4Lix4LiV4LiZ4LmMDQor4Liq4Li44Lig4LijIOC5guC4guC4p+C4tOC4keC4ueC4o+C4geC4tOC4iA0KK+C4quC4uOC4oOC4o+C4k+C5jCDguIfguLLguKHguYDguIfguLTguJnguKfguKPguKPguJPguYwNCivguKrguLjguKDguKPguJPguYwg4Lie4Lij4LiH4Liy4LihDQor4Liq4Li44Lig4Lij4LiT4LmMIOC5gOC4quC4t+C4reC4iOC4uOC5ieC4og0KK+C4quC4uOC4oOC4peC4seC4hOC4k+C5jCDguJnguLLguITguLDguKrguLHguJnguJXguYwNCivguKrguLjguKDguLHguIIg4Liq4Lig4Liy4LiE4LiB4Li44LilDQor4Liq4Li44Lig4Lix4LiEIOC4q+C4h+C4qeC5jOC4ieC4peC4suC4lA0KK+C4quC4uOC4oOC4seC4lyDguJnguIHguKjguLTguKPguLQNCivguKrguLjguKDguLHguJfguKMg4Lie4Li04LiZ4Li04LiI4LmA4Lin4LiK4LiB4Liy4LijDQor4Liq4Li44Lig4Lix4LiX4Lij4LiyIOC4iOC4h+C5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4oOC4seC4l+C4o+C4siDguJrguLjguI3guIrguLHguKLguKLguLjguJfguJjguKjguLHguIHguJTguLTguYwNCivguKrguLjguKDguLHguJfguKPguLIg4Lin4Lix4LiS4LiZ4LmA4LiB4Li14Lii4Lij4LiV4Li04Liq4Lij4LijDQor4Liq4Li44Lig4Lix4LiX4Lij4LmMIOC4iOC4seC4meC4l+C4o+C5jOC4quC4uOC4gg0KK+C4quC4uOC4oOC4siDguYDguIHguKnguKPguKrguKHguJrguLHguJXguLQNCivguKrguLjguKDguLIg4LiJ4Lil4Liy4LiU4Liq4Li44LiZ4LiX4Lij4Lin4Liy4LiX4Li1DQor4Liq4Li44Lig4LiyIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4quC4uOC4oOC4siDguJfguKPguLHguJ7guKLguYzguK3guKfguKLguKrguLjguIINCivguKrguLjguKDguLIg4LmA4Lib4Li14Lii4Lij4Lit4LiUDQor4Liq4Li44Lig4LiyIOC4oeC4uOC4meC4tOC4meC4l+C4o+C5jOC4meC4tOC4oeC4tOC4leC4leC5jA0KK+C4quC4uOC4oOC4siDguYDguKXguLTguKjguYHguKrguKfguIfguIHguLTguIgNCivguKrguLjguKDguLIg4Lio4Li04Lij4Li04Liq4Li04LiX4LiY4Li04LmMDQor4Liq4Li44Lig4LiyIOC4quC4uOC4meC4l+C4o+C5gOC4geC4qA0KK+C4quC4uOC4oOC4siDguK3guLHguIfguITguJPguLLguKfguLTguKjguLHguKXguKLguYwNCivguKrguLjguKDguLLguIfguITguYwg4LmA4LiX4Lit4LiU4LmA4LiB4Li14Lii4Lij4LiV4Li04LiB4Li44LilDQor4Liq4Li44Lig4Liy4LiT4Li1IOC4iOC5ieC4reC4ouC4p+C4tOC4peC4seC4og0KK+C4quC4uOC4oOC4suC4k+C4tSDguJnguLLguK7guLTguKENCivguKrguLjguKDguLLguJPguLUg4Lin4LiH4Lio4LmM4Lin4Li04LiX4Li54LmE4LiXDQor4Liq4Li44Lig4Liy4LiT4Li1IOC5gOC4reC4teC5ieC4ouC4p+C4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4uOC4oOC4suC4niDguIHguJXguLHguI3guI3guLkNCivguKrguLjguKDguLLguJ4g4LiE4Liz4LmB4Lic4LiHDQor4Liq4Li44Lig4Liy4LieIOC4iuC4uOC4meC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4oOC4suC4niDguYLguJXguKnguIjguKPguLANCivguKrguLjguKDguLLguJ4g4Lia4Li44LiN4LiX4Lij4Li04LiB4LiK4Liy4LiV4Li0DQor4Liq4Li44Lig4Liy4LieIOC4nuC4p+C4h+C4q+C4tOC4oeC4p+C4seC4meC4leC5jA0KK+C4quC4uOC4oOC4suC4niDguKLguKjguLDguKrguLTguJnguJjguLjguYwNCivguKrguLjguKDguLLguJ4g4Lin4Lix4LiZ4Lin4Li04LmA4Lin4LiBDQor4Liq4Li44Lig4Liy4LieIOC4quC4suC4ouC4geC4oeC4pQ0KK+C4quC4uOC4oOC4suC4niDguK3guKDguLTguYLguIoNCivguKrguLjguKDguLLguJ7guKMg4LiB4Liz4Lir4LiZ4LiU4LmB4LiZ4LmIDQor4Liq4Li44Lig4Liy4Lie4LijIOC4iOC4h+C4quC4uOC4guC4geC4tOC4iOC4nuC4suC4meC4tOC4ig0KK+C4quC4uOC4oOC4suC4nuC4oyDguYHguIjguYnguIfguKrguJnguLTguJcNCivguKrguLjguKDguLLguJ7guKMg4LmB4LiL4LmI4LiZ4LizDQor4Liq4Li44Lig4Liy4Lie4LijIOC4leC4seC5ieC4h+C4muC4o+C4o+C5gOC4iOC4tOC4lOC4p+C4meC4tOC4ig0KK+C4quC4uOC4oOC4suC4nuC4oyDguYDguJfguLXguKLguJnguJvguKPguLDguKLguLnguKMNCivguKrguLjguKDguLLguJ7guKMg4Lia4Li44LiN4LmA4LiK4Li04LiU4LiK4Lix4Lii4Lii4Lix4LiZ4LiV4LmMDQor4Liq4Li44Lig4Liy4Lie4LijIOC4nuC4seC4kuC4meC4m+C4o+C4sOC4l+C4teC4mw0KK+C4quC4uOC4oOC4suC4nuC4oyDguKDguLnguYjguYLguKrguKDguLINCivguKrguLjguKDguLLguJ7guKMg4LmA4Lij4Li34Lit4LiH4Lio4Lij4Li1DQor4Liq4Li44Lig4Liy4Lie4LijIOC4p+C4o+C4o+C4k+C4geC5ieC4reC4mQ0KK+C4quC4uOC4oOC4suC4nuC4oyDguKjguLTguKPguLTguKXguLHguIHguKnguJPguKHguLLguJnguJnguJfguYwNCivguKrguLjguKDguLLguJ7guKMg4Liq4Li44LiX4Lin4Li14LiX4Lij4Lix4Lie4Lii4LmMDQor4Liq4Li44Lig4Liy4Lie4LijIOC5gOC4q+C4peC4teC5iOC4ouC4oeC4oeC4h+C4hOC4pQ0KK+C4quC4uOC4oOC4suC4nuC4oyDguK3guLTguJnguJfguJnguLLguJnguLjguIoNCivguKrguLjguKDguLLguJ7guKPguKPguJMg4LiK4Li44LmI4Lih4Liq4Li44Lin4Lij4Lij4LiTDQor4Liq4Li44Lig4Liy4Lie4Lij4Lij4LiTIOC4quC4seC4meC4leC4tOC4quC4uOC4gg0KK+C4quC4uOC4oOC4suC4oOC4o+C4k+C5jCDguIHguKXguYnguLLguKvguLLguI0NCivguKrguLjguKDguLLguKDguKPguJPguYwg4LmC4LiE4LiV4Liw4Lie4Lix4LiZ4LiY4LmMDQor4Liq4Li44Lig4Liy4Lig4Lij4LiT4LmMIOC4ieC4suC4ouC4p+C4tOC5gOC4iuC4teC4ouC4ow0KK+C4quC4uOC4oOC4suC4oOC4o+C4k+C5jCDguYHguIvguYjguK3guLHguYnguIcNCivguKrguLjguKDguLLguKDguKPguJPguYwg4LmE4LiV4Lij4LiB4Li44LilDQor4Liq4Li44Lig4Liy4Lig4Lij4LiT4LmMIOC4meC4tOC4qOC4suC4oOC4suC4geC4ow0KK+C4quC4uOC4oOC4suC4oOC4o+C4k+C5jCDguJ7guLHguJLguJnguLLguKfguJPguLTguIrguKLguYwNCivguKrguLjguKDguLLguKDguKPguJPguYwg4LmA4Lii4LmH4LiZ4LiJ4LmI4LizDQor4Liq4Li44Lig4Liy4Lig4Lij4LiT4LmMIOC4p+C4iuC4tOC5guC4o+C4oOC4suC4quC4geC4o+C4k+C5jA0KK+C4quC4uOC4oOC4suC4oOC4o+C4k+C5jCDguKjguLTguKPguLTguYLguKrguKDguJPguLINCivguKrguLjguKDguLLguKDguKPguJPguYwg4Liq4Li44LiY4Li14Lij4Liy4LiY4Li04LiB4Li44LilDQor4Liq4Li44Lig4Liy4Lig4Lij4LiT4LmMIOC4reC4suC4oOC4suC4iuC4meC4suC4p+C4seC4kuC4meC5jA0KK+C4quC4uOC4oOC4suC4o+C4seC4leC4meC5jCDguIjguLHguIHguKPguJ7guLHguJnguJjguLjguYwNCivguKrguLjguKDguLLguKPguLHguJXguJnguYwg4Lio4Lij4Li14Lin4Li44LiS4Li04LiK4Liy4LiNDQor4Liq4Li44Lig4Liy4Lin4LiU4Li1IOC4guC4s+C4meC5ieC4reC4og0KK+C4quC4uOC4oOC4suC4p+C4lOC4tSDguYHguIvguYjguYDguK7guYnguLINCivguKrguLjguKDguLLguKfguJTguLUg4Lib4Li44Lij4Liy4LiY4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lig4Liy4Lin4LiU4Li1IOC4o+C4seC4h+C4quC4tOC5gOC4quC4meC4siDguJMg4Lit4Lii4Li44LiY4Lii4LiyDQor4Liq4Li44Lig4Liy4Lin4LiU4Li1IOC4quC4tOC4h+C4q+C4sOC5gOC4meC4leC4tA0KK+C4quC4uOC4oOC4suC4p+C4lOC4tSDguK3guLjguJvguIrguLXguKfguLANCivguKrguLjguKDguLLguKfguLTguJPguLUg4Lie4Li04Lih4LmC4Liq4LihDQor4Liq4Li44Lig4Liy4LmA4Lie4LmH4LiNIOC4q+C4peC4seC4geC4q+C4suC4jQ0KK+C4quC4uOC4oOC4tOC4lOC4siDguYLguK3guKrguJbguLLguJnguLjguYDguITguKPguLLguLDguKvguYwNCivguKrguLjguKDguLXguJ7guKPguKPguJMg4LiU4Liy4Lij4Liy4LiB4LijIOC4kyDguK3guKLguLjguJjguKLguLINCivguKrguLjguKHguJPguJHguLIg4LiI4Liz4Lib4LiyDQor4Liq4Li44Lih4LiT4LiR4LiyIOC5guC4o+C4iOC4meC4suC5gOC4m+C4o+C4oeC4quC4uOC4gg0KK+C4quC4uOC4oeC4mSDguIHguLPguJvguIfguIvguLHguJkNCivguKrguLjguKHguJkg4Lih4LiY4Li44Lin4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lih4LiZIOC4reC4seC4hOC4o+C4p+C4o+C4o+C4seC4geC4qeC5jA0KK+C4quC4uOC4oeC4meC4l+C4siDguJ7guIfguKnguYzguJ7guLTguJrguLnguKXguKLguYwNCivguKrguLjguKHguJnguLIg4LmE4LiB4Lij4LiB4Liy4LiN4LiI4LiZ4LmMDQor4Liq4Li44Lih4LiZ4LiyIOC4m+C4l+C4teC4m+C4sOC4m+C4suC4k+C4tQ0KK+C4quC4uOC4oeC4meC4siDguKrguIHguLjguKXguKHguIfguITguKXguJnguLLguKENCivguKrguLjguKHguKUg4LmC4LiE4Lin4Liy4LiZ4Li04Liq4Lix4Lii4Liq4Li44LiC4LiB4Li44LilDQor4Liq4Li44Lih4LilIOC4l+C4reC4h+C4nuC4seC4meC4iuC4seC5iOC4hw0KK+C4quC4uOC4oeC4pSDguKPguLjguYjguIfguK3guLjguJTguKHguIHguLTguIgNCivguKrguLjguKHguKUg4Lit4Lii4Li54LmI4LiX4Lit4LiHDQor4Liq4Li44Lih4Lil4Lij4Lix4LiV4LiZ4LmMIOC5geC4leC5ieC4o+C4seC4leC4meC4oeC4h+C4hOC4pQ0KK+C4quC4uOC4oeC4suC4k+C4tSDguIHguLTguIjguJrguLjguI3guIrguLHguKINCivguKrguLjguKHguLLguKDguKPguJPguYwg4Lit4Li44LiU4Lih4LmC4LiK4LiEDQor4Liq4Li44Lih4Liy4Lil4Lii4LmMIOC4ouC4tOC5ieC4oeC5gOC4m+C5h+C4meC4quC4uOC4gg0KK+C4quC4uOC4oeC4suC4peC4siDguJjguLnguJvguYDguJfguLXguKLguJnguKvguK3guKENCivguKrguLjguKHguLLguKXguLUg4LiB4Li04Lih4LiK4Li54Lin4Liy4LiT4Li04LiKDQor4Liq4Li44Lih4Liy4Lil4Li1IOC4hOC4h+C4reC4suC4qeC4sg0KK+C4quC4uOC4oeC4suC4peC4tSDguIjguLHguJnguJfguKPguYzguKfguLTguJfguKLguLLguJnguLjguIrguLTguJUNCivguKrguLjguKHguLLguKXguLUg4LmB4LiI4LmI4Lih4Lih4Li1DQor4Liq4Li44Lih4Liy4Lil4Li1IOC4iuC4ueC4quC4seC4h+C4guC5jA0KK+C4quC4uOC4oeC4suC4peC4tSDguYHguIvguYjguYHguKvguYjguKcNCivguKrguLjguKHguLLguKXguLUg4LiV4Li44Lil4Liy4LiU4Li04Lil4LiBDQor4Liq4Li44Lih4Liy4Lil4Li1IOC5gOC4l+C4qOC4meC4sOC5guC4ouC4mOC4tOC4mQ0KK+C4quC4uOC4oeC4suC4peC4tSDguJnguLLguITguYDguKjguKPguJPguLUNCivguKrguLjguKHguLLguKXguLUg4Lia4Li44LiN4Lin4Lij4LmA4Lio4Lij4Lip4LiQ4LmMDQor4Liq4Li44Lih4Liy4Lil4Li1IOC5guC4m+C4quC4suC4oOC4tOC4p+C4seC4kuC4meC5jA0KK+C4quC4uOC4oeC4suC4peC4tSDguJ7guLTguJfguLHguIHguKnguYzguJ7guLTguJnguLTguIjguJnguLHguJnguJfguYwNCivguKrguLjguKHguLLguKXguLUg4Lig4Li54Lih4Li04Lib4Lij4Li14LiK4LiyDQor4Liq4Li44Lih4Liy4Lil4Li1IOC5hOC4oeC5ieC4q+C4reC4oQ0KK+C4quC4uOC4oeC4suC4peC4tSDguYDguKPguLfguK3guIfguKjguKPguLUNCivguKrguLjguKHguLLguKXguLUg4Lin4LiH4Lio4LmM4LiC4LmJ4Liy4Lir4Lil4Lin4LiHDQor4Liq4Li44Lih4Liy4Lil4Li1IOC4p+C4tOC5hOC4peC5geC4geC5ieC4pw0KK+C4quC4uOC4oeC4suC4peC4tSDguKjguLTguKPguLTguJrguLLguKUNCivguKrguLjguKHguLLguKXguLUg4Liq4Li04LiH4Lir4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Li44Lih4Liy4Lil4Li1IOC4quC4ueC5ieC4iuC4tOC4h+C4iuC4seC4og0KK+C4quC4uOC4oeC4suC4peC4tSDguYDguKvguKXguLfguK3guIfguJvguJDguKHguIrguLHguKINCivguKrguLjguKHguLLguKXguLUg4Lit4Liy4Lij4Li14Lin4LiH4LiE4LmMDQor4Liq4Li44Lih4Liy4LioIOC5gOC4geC4tOC4lOC5geC4geC5iOC4meC5geC4geC5ieC4pw0KK+C4quC4uOC4oeC4tOC4leC4oyDguInguLHguJXguKPguIrguLHguKLguKfguLTguKfguLHguJLguJnguLINCivguKrguLjguKHguLTguJXguKMg4Lib4Li44LiN4LiN4Liy4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Liq4Li44Lih4Li04LiV4LijIOC4qOC4tOC4o+C4tOC4i+C4uOC5ieC4oeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4uOC4oeC4tOC4leC4o+C4siDguYDguIHguLXguKLguKPguJXguLTguYDguK3guLXguYjguKLguKENCivguKrguLjguKHguLTguJXguKPguLIg4LiV4Li14Lij4Lie4Lix4LiS4LiZ4Lie4Lix4LiZ4LiY4LmMDQor4Liq4Li44Lih4Li04LiV4Lij4LiyIOC4oOC4ueC4p+C5gOC4qOC4o+C4qeC4kOC5jA0KK+C4quC4uOC4oeC4tOC4leC4o+C4siDguKrguLTguIfguKvguJfguLHguJUNCivguKrguLjguKHguLTguJnguJfguKPguYwg4Liq4Li44LiZ4LiX4Lij4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Liq4Li44Lij4LiB4Liy4LiZ4LiV4LmMIOC4m+C4seC4jeC4jeC4suC4h+C4suC4oQ0KK+C4quC4uOC4o+C4geC4tOC4iCDguYLguKXguKvguJjguLTguJXguJ7guLTguJfguLHguIHguKnguYwNCivguKrguLjguKPguIjguLTguJUg4LmA4LiV4LiK4Liw4Lia4Li54Lij4LiT4LmA4LiX4Lie4Liy4LiB4Lij4LiT4LmMDQor4Liq4Li44Lij4LiI4Li04LiV4LijIOC4meC4meC4l+C5jOC4mOC4meC4m+C4o+C4sOC4geC4tOC4iA0KK+C4quC4uOC4o+C4iuC4seC4oiDguIHguLHguIfguYDguKrguJbguLXguKLguKMNCivguKrguLjguKPguIrguLHguKIg4LiC4LiI4Lij4LmA4LiB4Li14Lii4Lij4LiV4Li04Liq4Li44LiCDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4iOC4o+C4tOC4ouC4suC4meC4seC4meC4l+C5gOC4meC4leC4ow0KK+C4quC4uOC4o+C4iuC4seC4oiDguYDguIjguJnguJvguLTguKLguJ7guIfguKjguYwNCivguKrguLjguKPguIrguLHguKIg4LiK4Lix4Lii4LmA4Liq4LiW4Li14Lii4Lij4LiB4Li04LiIDQor4Liq4Li44Lij4LiK4Lix4LiiIOC5geC4i+C5iOC4hOC4uQ0KK+C4quC4uOC4o+C4iuC4seC4oiDguJMg4LmA4LiK4Li14Lii4LiH4LmD4Lir4Lih4LmIDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4leC4seC5ieC4h+C5gOC4iOC4o+C4tOC4jeC5hOC4nuC4muC4ueC4peC4ouC5jA0KK+C4quC4uOC4o+C4iuC4seC4oiDguJfguKfguLXguKXguLLguKANCivguKrguLjguKPguIrguLHguKIg4LiY4Li14Lij4Liy4LmA4Lin4LiX4Lii4LmM4LiZ4Li44Lie4LiH4Lio4LmMDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4muC4uOC4jeC4nuC4peC4seC4mg0KK+C4quC4uOC4o+C4iuC4seC4oiDguJvguLTguKLguLDguKPguLHguJXguJnguYLguKLguJjguLTguJkNCivguKrguLjguKPguIrguLHguKIg4Lie4Li04Lie4Lix4LiS4Lie4LiH4Lio4LiyDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4oeC4h+C4hOC4peC4muC4ueC4o+C4k+C4sOC4qOC4tOC4o+C4tA0KK+C4quC4uOC4o+C4iuC4seC4oiDguYLguKLguJjguLLguJvguKPguLDguYDguKrguKPguLTguJANCivguKrguLjguKPguIrguLHguKIg4Lik4LiX4Lix4Lii4Lij4Li44LmJ4LiHDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4p+C4h+C4qOC5jOC4iOC4suC4o+C4teC4geC4tOC4leC4leC4tA0KK+C4quC4uOC4o+C4iuC4seC4oiDguKfguLTguIjguLLguKPguJPguYzguIHguLHguKLguIHguLTguIgNCivguKrguLjguKPguIrguLHguKIg4Lio4Lij4Li14LmA4LiI4Lij4Li04LiN4Liq4Li44LiC4Lii4Li04LmI4LiHDQor4Liq4Li44Lij4LiK4Lix4LiiIOC4quC4p+C4seC4quC4lOC4tOC5jOC4quC4o+C4o+C4nuC5jA0KK+C4quC4uOC4o+C4iuC4seC4oiDguKrguLjguIjguLTguJnguJTguLLguKHguJPguLUNCivguKrguLjguKPguIrguLHguKIg4LmB4Liq4LiH4Lit4Lij4Li44LiT4Lio4Li04Lij4Li0DQor4Liq4Li44Lij4LiK4Lix4LiiIOC4reC4lOC4uOC4peC4ouC4mOC4o+C4o+C4oQ0KK+C4quC4uOC4o+C4iuC4seC4oiDguK3guLLguIjguKvguLLguI3guKjguLTguKPguLQNCivguKrguLjguKPguIrguLIg4LiX4Lit4LiH4Lie4Li04Lil4LiyDQor4Liq4Li44Lij4LiK4Liy4LiV4Li0IOC4leC4s+C4o+C4suC5gOC4o+C4teC4ouC4hw0KK+C4quC4uOC4o+C4iuC4suC4leC4tCDguKjguKjguLTguJjguJnguLLguJnguLjguKPguLHguIHguKnguYwNCivguKrguLjguKPguJPguLUg4LiV4Lix4LiZ4LiV4Li04Lin4LiT4Li04LiK4LiK4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lij4LiX4Li04LiZIOC4reC4tOC5ieC4h+C4iOC4sOC4meC4tOC4pQ0KK+C4quC4uOC4o+C4m+C4o+C4teC4iuC5jCDguYLguITguJXguKPguYLguKrguKDguLINCivguKrguLjguKPguJ7guIfguKjguYwg4Lie4Lix4LiZ4LiY4LmM4Lin4Li04Lio4Lin4Liy4LiqDQor4Liq4Li44Lij4Lie4LiH4Lio4LmMIOC5gOC4reC4t+C5ieC4reC4p+C4seC4kuC4meC4suC4oeC4h+C4hOC4pQ0KK+C4quC4uOC4o+C4nuC4h+C4qeC5jCDguIjguLjguKXguKHguJnguJXguYwNCivguKrguLjguKPguJ7guIfguKnguYwg4LiV4Lix4LmJ4LiH4LmD4LiI4LiB4Liy4Lij4Li44LiT4Lii4LmMDQor4Liq4Li44Lij4Lie4LiH4Lip4LmMIOC4m+C4geC4suC4quC4tOC4l+C4mOC4tOC5jA0KK+C4quC4uOC4o+C4nuC4h+C4qeC5jCDguKDguLnguJvguKPguLDguYTguJ4NCivguKrguLjguKPguJ7guIfguKnguYwg4Lin4Lix4LiH4LmA4Lit4LiBDQor4Liq4Li44Lij4Lie4LiH4Lip4LmMIOC4quC4uOC4nuC4seC4kuC4meC5jOC4qOC4tOC4peC4m+C5jA0KK+C4quC4uOC4o+C4nuC4h+C4qeC5jCDguK3guLbguYnguIfguK3guLHguKHguJ7guKPguKfguLTguYTguKUNCivguKrguLjguKPguJ7guKMg4Lih4LiT4Li14Liq4Li04LiZ4LiY4Li44LmMDQor4Liq4Li44Lij4Lie4LilIOC4geC4tOC4leC4leC4tOC4lOC4s+C4o+C4hw0KK+C4quC4uOC4o+C4nuC4pSDguITguIfguKrguIHguLjguKUNCivguKrguLjguKPguJ7guKUg4LiI4Lix4LiZ4LmA4Lie4LmH4LiHDQor4Liq4Li44Lij4Lie4LilIOC5gOC4ieC4peC4tOC4oeC4iuC4seC4ouC4meC4uOC4geC4uOC4pQ0KK+C4quC4uOC4o+C4nuC4pSDguYHguIvguYjguJzguLHguYjguIcNCivguKrguLjguKPguJ7guKUg4LiV4Liy4Lib4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lij4Lie4LilIOC5gOC4l+C4qOC4guC4iOC4ow0KK+C4quC4uOC4o+C4nuC4pSDguJnguLTguYLguITguKPguJ7guLTguJfguLHguIHguKnguYwNCivguKrguLjguKPguJ7guKUg4Lib4Lij4Lix4Lio4Lin4LmM4LmA4Lih4LiY4Li14LiB4Li44LilDQor4Liq4Li44Lij4Lie4LilIOC4nuC4o+C4q+C4oeC4meC4tOC4oeC4tOC4leC4ow0KK+C4quC4uOC4o+C4nuC4pSDguJ7guLnguKXguJfguKfguLUNCivguKrguLjguKPguJ7guKUg4Lih4Liy4Lie4Li54LiZ4Liq4Lin4Lix4Liq4LiU4Li04LmM4Lin4Lix4LiS4LiZ4LiyDQor4Liq4Li44Lij4Lie4LilIOC4o+C4seC4leC4meC5jOC4nuC4h+C4qeC5jOC4nuC4ow0KK+C4quC4uOC4o+C4nuC4pSDguYDguKXguYfguIHguJvguKPguLDguKrguLLguKMNCivguKrguLjguKPguJ7guKUg4Lin4Li04Lii4Liw4LiU4Liy4Lih4LiH4LiE4LilDQor4Liq4Li44Lij4Lie4LilIOC4qOC4tOC4o+C4tOC4iuC4seC4ouC4p+C4seC4kuC4meC4sg0KK+C4quC4uOC4o+C4nuC4pSDguKrguLHguIfguILguYzguKrguLTguIfguKvguYwNCivguKrguLjguKPguJ7guKUg4Liq4Li44Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Liq4Li44Lij4Lie4LilIOC4q+C4seC4quC4lOC4tOC4mQ0KK+C4quC4uOC4o+C4nuC4pSDguK3guLTguJnguJfguKPguKXguLHguIHguKnguJPguYwNCivguKrguLjguKPguJ7guLHguJXguKMg4Liq4Li44LiX4LiY4Li04LiY4LiZ4Liy4LiB4LijDQor4Liq4Li44Lij4Lie4Lix4LiZ4LiY4LmMIOC5gOC4leC4iuC4meC4sOC4o+C4uOC5iOC4h+C5guC4o+C4iOC4meC5jA0KK+C4quC4uOC4o+C4nuC4seC4meC4mOC5jCDguKfguKPguIHguLTguJXguJXguLTguKfguJPguLTguIoNCivguKrguLjguKPguJ7guLUg4LmB4LiL4LmI4Lit4Li24LmJ4LiHDQor4Liq4Li44Lij4Lig4Li1IOC4l+C4tOC4oeC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4quC4uOC4o+C4oeC4ouC5jCDguYHguIvguYjguYDguJXguLXguKINCivguKrguLjguKPguKfguIfguKjguYwg4LiX4Lin4Li14Liq4Lix4LiV4Lii4LmMDQor4Liq4Li44Lij4Lin4Li04LiX4Lii4LmMIOC4qOC4suC4peC4suC4quC4uOC4gg0KK+C4quC4uOC4o+C4p+C4uOC4kuC4tCDguYDguKjguKPguKnguJDguJrguLjguJXguKMNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4LiB4Li04LmI4LiH4LmE4LiX4LijDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4hOC4h+C4geC4tOC4leC4leC4tOC4geC4ow0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguIjguLHguJnguJfguKPguLLguJfguLTguJ7guKLguYwNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4LmB4LiI4Lin4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4iuC4suC4p+C5jOC4p+C4tOC4qOC4tOC4qeC4kOC5jA0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguYHguIvguYjguYDguKXguYnguLINCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4LiV4Lix4LmJ4LiH4Lio4Lij4Li14Lij4Lix4LiV4LiZ4LiB4Li44LilDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4l+C4reC4h+C4quC4oeC4muC4ueC4o+C4k+C5jA0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguJnguLHguJnguJfguKfguLTguYLguKPguIjguJnguYwNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4Lib4Lij4Liw4LiX4Liy4LiZ4Lin4Lij4Lib4Lix4LiN4LiN4LiyDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4peC4seC4muC4nuC4peC4tQ0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguKDguLnguYjguKfguLjguJLguLTguIHguLjguKUNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4Lij4Lix4LiK4LiV4Liw4Lin4Lij4Lij4LiTDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4peC4t+C4reC4p+C4tOC4qOC4p+C4geC4uOC4pQ0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguKfguKPguKrguLjguKfguKPguKPguJPguLLguJfguKMNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4Lin4Li14Lij4LiK4Liy4Lii4Lil4Lix4LiB4Lip4LiT4LmMDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4qOC4tOC4o+C4tOC5guC4iuC4leC4tA0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguKrguLHguIfguILguYzguJfguK3guIcNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4Liq4Li44Lie4Lix4LiS4LiZ4Liy4Lig4Lij4LiT4LmMDQor4Liq4Li44Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4q+C4sOC4o+C4seC4h+C4qeC4tQ0KK+C4quC4uOC4o+C4qOC4seC4geC4lOC4tOC5jCDguK3guLHguIfguIHguLLguJrguKjguKPguLUNCivguKrguLjguKPguKjguLHguIHguJTguLTguYwg4LmC4Lit4Lis4Liy4Lij4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiHDQor4Liq4Li44Lij4Liq4Li04LiX4LiY4Li04LmMIOC4iOC4seC4meC4l+C4o+C5jOC5guC4quC4oOC4k+C4nuC4h+C4qOC5jA0KK+C4quC4uOC4o+C4quC4tOC4l+C4mOC4tOC5jCDguJvguKPguLLguJrguJPguKPguIfguITguYwNCivguKrguLjguKPguKrguLTguJfguJjguLTguYwg4Lio4Lij4Li14Lit4Lij4LiX4Lix4Lii4LiB4Li44LilDQor4Liq4Li44Lij4Liq4Li04LiX4LiY4Li04LmMIOC5gOC4reC4teC5iOC4ouC4oeC4mOC4meC4suC4geC4uOC4pQ0KK+C4quC4uOC4o+C4sCDguJ7guYjguKfguIfguKXguLLguKDguKvguKXguLLguKINCivguKrguLjguKPguLDguIrguLHguKIg4Lih4Liy4Lil4Li14LmB4Lii4LmJ4LihDQor4Liq4Li44Lij4Liw4Lie4LilIOC4reC5iOC4reC4meC4pOC4l+C4mOC4tOC5jA0KK+C4quC4uOC4o+C4seC4iiDguIHguK3guIfguJnguLTguKHguLTguJXguKMNCivguKrguLjguKPguLHguIrguJTguLIg4Lig4Li54Lin4LiU4Lil4Lie4Li04LiX4Lix4LiB4Lip4LmMDQor4Liq4Li44Lij4Lix4LiK4Lin4LiU4Li1IOC4q+C4reC4oeC4ouC4gQ0KK+C4quC4uOC4o+C4seC4leC4meC5jOC4nuC4oyDguYDguJfguLXguKLguKHguYDguKHguIYNCivguKrguLjguKPguLHguJXguJnguYwg4LiB4Lix4LiZ4LiV4Liw4Lio4Lij4Li1DQor4Liq4Li44Lij4Lix4LiV4LiZ4LmMIOC4iOC4seC4meC4l+C4o+C5jOC5guC4iuC4hOC4nuC4h+C4qeC5jA0KK+C4quC4uOC4o+C4seC4leC4meC5jCDguYDguIrguLTguJTguIrguLnguKHguLLguKXguLHguKLguIHguLTguIgNCivguKrguLjguKPguLHguJXguJnguYwg4LiX4Lit4LiH4LmA4Liq4Lih4LmH4LiUDQor4Liq4Li44Lij4Lix4LiV4LiZ4LmMIOC4muC4uOC4jeC4o+C4seC4geC4qeC5jA0KK+C4quC4uOC4o+C4seC4leC4meC5jCDguJ7guLjguYjguKHguJzguKUNCivguKrguLjguKPguLHguJXguJnguYwg4Lij4Li44LmI4LiH4LmB4Liq4LiHDQor4Liq4Li44Lij4Lix4LiV4LiZ4LmMIOC4qOC4o+C4teC4peC4suC4oA0KK+C4quC4uOC4o+C4seC4leC4meC5jCDguKrguLjguILguJ7guLTguKjguLLguKUNCivguKrguLjguKPguLHguJXguJnguYwg4Lit4Lix4LiE4Lij4Lig4Liy4LiZ4Li44Lih4Liy4LioDQor4Liq4Li44Lij4Lix4LiV4Li0IOC5gOC4qOC4o+C4qeC4kOC4reC4oOC4tOC4mOC4suC4mQ0KK+C4quC4uOC4o+C4seC4quC4p+C4lOC4tSDguKrguLXguJrguLjguI3guYDguKPguLfguK3guIcNCivguKrguLjguKPguLLguIfguITguYzguKPguLHguJXguJnguYwg4Lih4Li44Liq4Li04LiB4LmE4LiK4LiiDQor4Liq4Li44Lij4Liy4LiH4LiE4LmMIOC4iOC4o+C4o+C4ouC4suC4reC4seC4h+C4geC4ueC4ow0KK+C4quC4uOC4o+C4suC4h+C4hOC5jCDguJTguLjguKXguKLguYzguJ7guIjguJnguYzguYDguJfguKfguLINCivguKrguLjguKPguLLguIfguITguYwg4LmC4Lib4Lip4Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lij4Liy4LiH4LiE4LmMIOC4o+C4seC4geC4qeC4suC4o+C4suC4iuC4p+C4tOC4leC4ow0KK+C4quC4uOC4o+C4suC4h+C4hOC5jCDguKrguIfguKfguJnguKfguIfguKjguYwNCivguKrguLjguKPguLLguIfguITguYwg4LmC4Lir4Lih4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Liq4Li44Lij4Liy4Lip4LiO4Lij4LmMIOC5gOC4geC4qeC4leC4o+C4sOC4iuC4meC4oeC5jA0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jOC4l+C4tOC4nuC4ouC5jCDguK3guLTguKrguKrguKPguLDguIrguLHguKINCivguKrguLjguKPguLTguJnguJfguKPguYwg4LmA4LiB4Li04LiU4Liq4Li44Lin4Lij4Lij4LiT4LmMDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4hOC4s+C5guC4luC4oeC4pOC4l+C4mOC4tOC5jA0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguIjguLTguJnguLHguJnguJfguKLguLINCivguKrguLjguKPguLTguJnguJfguKPguYwg4LiK4Lix4Lii4LiK4Liw4LiZ4Liw4Lih4LiH4LiE4LilDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4jeC4suC4k+C5gOC4geC4teC4ouC4o+C4leC4tOC4nuC4h+C4qOC5jA0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguYDguJXguLTguKHguKrguLLguKLguJfguK3guIcNCivguKrguLjguKPguLTguJnguJfguKPguYwg4LiY4LiZ4LiB4Li04LiI4LiI4Liz4Lij4Li54LiNDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4muC4uOC4jeC4peC4ng0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguYLguJvguKPguYDguJfguLXguKLguKPguJPguYwNCivguKrguLjguKPguLTguJnguJfguKPguYwg4Lie4Li04LiK4Lix4Lii4Lio4Lij4LiX4Lix4LiVDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4oOC4ueC5iOC4m+C4o+C4sOC4oOC4suC4lOC4tOC4peC4gQ0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguKLguLTguYnguKHguYDguJ7guYfguIcNCivguKrguLjguKPguLTguJnguJfguKPguYwg4Lil4Lix4LiB4Lip4Lih4Li14Lin4Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4p+C4o+C4nuC4seC4meC4mOC5jOC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguKjguKPguLXguKfguLLguKPguLXguKPguLHguJXguJnguYwNCivguKrguLjguKPguLTguJnguJfguKPguYwg4Liq4Lih4Lix4LiE4Lij4LiK4LmI4Lin4LiiDQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4quC4uOC4guC4oeC4suC4gQ0KK+C4quC4uOC4o+C4tOC4meC4l+C4o+C5jCDguYHguKrguIfguKPguLHguJXguJnguYwNCivguKrguLjguKPguLTguJnguJfguKPguYwg4Lit4LiZ4Lix4LiH4Lij4Lix4Liq4LiU4Li1DQor4Liq4Li44Lij4Li04LiZ4LiX4Lij4LmMIOC4reC4tOC5iOC4oeC4quC4uOC4gg0KK+C4quC4uOC4o+C4tOC4oeC4suC4qCDguYHguJ7guJfguKLguLLguJnguJnguJfguYwNCivguKrguLjguKPguLTguKLguJnguJXguYwg4LmA4LiB4Lip4Lij4Lie4Lij4Lir4LihDQor4Liq4Li44Lij4Li04Lii4LiwIOC4lOC4p+C4h+C5geC4geC5ieC4pw0KK+C4quC4uOC4o+C4tOC4ouC4sCDguYLguKXguKvguLDguYDguKfguIoNCivguKrguLjguKPguLTguKLguLHguI0g4LiZ4Li04Lil4LiX4LiI4Lix4LiZ4LiX4Lij4LmMDQor4Liq4Li44Lij4Li04Lii4Lix4LiZ4LiV4LmMIOC4iuC4ueC4leC4sOC4p+C4h+C4qeC5jA0KK+C4quC4uOC4o+C4tOC4ouC4siDguYDguITguKXguYnguLLguIjguLHguJnguJfguKPguYzguJ7guIfguKnguYwNCivguKrguLjguKPguLTguKLguLIg4LiX4Lit4LiH4LmA4LiV4LmH4LihDQor4Liq4Li44Lij4Li04Lii4LiyIOC5gOC4nuC5h+C4iuC4o+C4m+C4tOC5iOC4meC5geC4geC5ieC4pw0KK+C4quC4uOC4o+C4tOC4ouC4siDguKrguKXguLDguIHguLjguKUNCivguKrguLjguKPguLTguKLguYwg4LiE4Li54LiT4Lic4LilDQor4Liq4Li44Lij4Li1IOC4leC4seC4meC4mOC4meC5jOC4qOC4uOC4oOC4geC4suC4jeC4iOC4mQ0KK+C4quC4uOC4o+C4teC4nuC4oyDguITguJnguYDguIjguJkNCivguKrguLjguKPguLXguJ7guKMg4LmC4Lie4LiY4Li04LmM4Lio4Li04Lij4Li04LiZ4Lix4LiZ4LiX4LiK4Lix4LiiDQor4Liq4Li44Lij4Li14Lie4LijIOC5gOC4reC4teC5ieC4ouC4p+C4luC4suC4p+C4ow0KK+C4quC4uOC4o+C4teC4ouC5jOC4nuC4oyDguYDguIfguLTguJnguIfguLLguKHguYDguKXguLTguKgNCivguKrguLjguKPguLXguKLguYzguJ7guKMg4Lib4Lij4Li14Lii4Liw4Lie4Liy4LiZ4Li04LiKDQor4Liq4Li44Lij4Li14Lii4LmM4Lie4LijIOC4qOC4o+C4teC4quC4t+C4mg0KK+C4quC4uOC4o+C4teC4ouC5jOC4o+C4seC4leC4meC5jCDguITguIfguJ7guLTguJfguKLguLLguJ7guLHguJnguJjguLjguYwNCivguKrguLjguKPguLXguKLguYzguKPguLHguJXguJnguYwg4Lit4LiZ4Lix4LiZ4LiV4LiB4Liy4Lil4LiV4LmMDQor4Liq4Li44Lij4Li14Lii4LmMIOC4geC4tOC4leC4leC4tOC4p+C4o+C4p+C4h+C4qOC5jA0KK+C4quC4uOC4o+C4teC4ouC5jCDguIjguLHguJnguJfguKPguYzguJfguKPguLHguJ7guKLguYwNCivguKrguLjguKPguLXguKLguYwg4LiK4Li34LmI4LiZ4Liq4Lih4LiW4LmJ4Lin4LiiDQor4Liq4Li44Lij4Li14Lii4LmMIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4quC4uOC4o+C4teC4ouC5jCDguJfguKPguIfguYDguIrguLfguYnguK0NCivguKrguLjguKPguLXguKLguYwg4LiZ4Li04Lih4Li04LiV4Lij4LiB4Li44LilDQor4Liq4Li44Lij4Li14Lii4LmMIOC5gOC4m+C4o+C4oeC4m+C4o+C4suC5guC4oeC4iuC4ouC5jA0KK+C4quC4uOC4o+C4teC4ouC5jCDguJ7guLjguYjguKHguKjguLTguKPguLQNCivguKrguLjguKPguLXguKLguYwg4LmE4Lih4LmJ4Liq4LiW4Li04LiV4Lii4LmMDQor4Liq4Li44Lij4Li14Lii4LmMIOC4peC4tOC5ieC4oeC4quC4uOC4p+C4o+C4o+C4kw0KK+C4quC4uOC4o+C4teC4ouC5jCDguKfguLTguYDguIrguLXguKLguKPguIHguLjguKUNCivguKrguLjguKPguLXguKLguYwg4Liq4Lij4Liq4Li44LiE4LiZ4LiY4LmMDQor4Liq4Li44Lij4Li14Lii4LmMIOC4quC4uOC4p+C4o+C4o+C4k+C4m+C4o+C4sOC4l+C4teC4mw0KK+C4quC4uOC4o+C4teC4ouC5jCDguK3guKHguKPguJjguLXguKPguLDguIHguLjguKUNCivguKrguLjguKPguLXguKPguLHguJXguJnguYwg4LiE4LiT4Liw4LmA4LiI4Lij4Li04LiNDQor4Liq4Li44Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC4leC4seC4meC4mOC4uOC4p+C4meC4tOC4leC4ouC5jA0KK+C4quC4uOC4o+C4teC4o+C4seC4leC4meC5jCDguKLguLHguIfguKrguKfguYjguLLguIcNCivguKrguLjguKPguLXguKPguLHguJXguJnguYwg4Lir4Liy4LiN4LiI4LiH4LiB4LilDQor4Liq4Li44Lij4LmA4LiB4Li14Lii4Lij4LiV4Li0IOC4p+C4tOC5gOC4qOC4qeC4quC4tOC4l+C4mOC4uOC5jA0KK+C4quC4uOC4o+C5gOC4iuC4qeC4kCDguJnguYnguLLguJnguLLguITguLTguJnguJfguKPguYwNCivguKrguLjguKPguYDguIrguKnguJDguYwg4LmA4LiI4Lij4Li04LiN4LiK4Lix4Lii4LiW4Liy4Lin4Lij4LiI4Li04LiVDQor4Liq4Li44Lij4LmA4LiK4Lip4LiQ4LmMIOC4ouC4seC4h+C4quC4uOC4gg0KK+C4quC4uOC4o+C5gOC4lOC4iiDguIHguLHguIfguKrguJTguLLguKUNCivguKrguLjguKPguYDguJTguIog4LiU4Liy4Lij4LmM4LiL4Li04LiH4Lir4LmMDQor4Liq4Li44Lij4LmA4LiU4LiKIOC4m+C4o+C4sOC4quC4suC4meC5gOC4geC4teC4ouC4o+C4leC4tOC4o+C4suC4ig0KK+C4quC4uOC4o+C5gOC4lOC4iiDguYTguKPguYnguIHguLHguIfguKfguKUNCivguKrguLjguKPguYDguJTguIog4Liq4Li04LiX4LiY4Li04LmA4LiI4Lij4Li04LiNDQor4Liq4Li44Lij4LmA4LiX4LieIOC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4iOC4tOC4leC4quC4o+C4ow0KK+C4quC4uOC4o+C5hOC4geC4oyDguIHguLXguKPguJXguLTguJvguLLguKUNCivguKrguLjguKXguLHguJTguJTguLIg4LiK4LmJ4Lit4LiZ4LiX4Lit4LiHDQor4Liq4Li44Lil4Li1IOC4hOC4t+C4meC4leC4seC4gQ0KK+C4quC4uOC4p+C4hOC4meC4mOC5jCDguKHguYjguKfguIfguJfguK3guIcNCivguKrguLjguKfguJPguLUg4LiI4Li04LiV4LiV4LmM4Lij4Lix4LiV4LiZ4LiY4Lij4Lij4LihDQor4Liq4Li44Lin4LiT4Li14Lii4LmMIOC5gOC4iuC4teC5iOC4ouC4p+C4p+C4seC4kuC4meC4sg0KK+C4quC4uOC4p+C4lOC4tSDguYDguJfguJ7guKPguLHguIHguKnguYwNCivguKrguLjguKfguJTguLUg4Lit4Liy4Lij4Li14Liq4LiB4Li44Lil4Liq4Li44LiCDQor4Liq4Li44Lin4LiZ4Li04LiV4Lii4LmMIOC5gOC4quC4j+C4kOC4quC4uOC4p+C4iOC4sA0KK+C4quC4uOC4p+C4nuC4oyDguYDguIvguYfguKHguYDguK7guIcNCivguKrguLjguKfguJ7guLTguKgg4Lii4LiH4Lio4Li04Lil4Lib4LiK4Lix4LiiDQor4Liq4Li44Lin4Lig4LiyIOC5gOC4peC4teC5iOC4ouC4oeC4nuC4uOC4mOC4l+C4reC4hw0KK+C4quC4uOC4p+C4o+C4o+C4kyDguIHguKXguLTguYjguJnguIjguLHguJnguJfguKPguYzguKvguK3guKENCivguKrguLjguKfguKPguKPguJMg4LiC4Lin4Lix4LiN4Lii4Li34LiZDQor4Liq4Li44Lin4Lij4Lij4LiTIOC4iOC4seC4meC4l+C4o+C5jOC4quC4uOC4o+C4tOC4meC4l+C4o+C5jA0KK+C4quC4uOC4p+C4o+C4o+C4kyDguIrguYnguLLguIfguIrguLHguKINCivguKrguLjguKfguKPguKPguJMg4LiU4Liz4LmA4LiZ4Li04LiZ4LiX4Lit4LiHDQor4Liq4Li44Lin4Lij4Lij4LiTIOC4l+C4seC4oeC4nuC4ow0KK+C4quC4uOC4p+C4o+C4o+C4kyDguJrguKPguKPguJTguLLguKjguLHguIHguJTguLTguYwNCivguKrguLjguKfguKPguKPguJMg4Lib4Li04Lii4Liw4Lig4Liy4LiT4Li1DQor4Liq4Li44Lin4Lij4Lij4LiTIOC4nuC4uOC5iOC4oeC4m+C4o+C4sOC4lOC4seC4mg0KK+C4quC4uOC4p+C4o+C4o+C4kyDguKHguLXguKvguKXguLHguIHguIrguLHguKINCivguKrguLjguKfguKPguKPguJMg4LmC4Lij4LiI4LiZ4Lin4Li04Lig4Liy4LiVDQor4Liq4Li44Lin4Lij4Lij4LiTIOC4p+C4suC4quC4meC4geC4oeC4pQ0KK+C4quC4uOC4p+C4o+C4o+C4kyDguKjguLTguKPguLTguKfguLTguIHguLjguKUNCivguKrguLjguKfguKPguKPguJMg4Liq4Li44LiC4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Li44Lin4Lij4Lij4LiTIOC4q+C4reC4oeC4iOC4seC4meC4l+C4o+C5jA0KK+C4quC4uOC4p+C4o+C4o+C4kyDguYDguK3guLXguYjguKLguKHguKPguLHguKjguKHguLXguYLguIrguJXguLQNCivguKrguLjguKfguKPguKPguJPguJfguLTguJ7guKLguYwg4LmB4LiL4LmI4LmA4Liu4LiHDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4geC4meC4tOC4qeC4kOC4quC4uOC4lQ0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguYDguIHguKnguKHguKrguLjguIINCivguKrguLjguKfguKPguKPguJPguLIg4LiE4Li44Lib4LiV4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4iOC4tOC4meC4lOC4suC4mOC5gOC4meC4qA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguIrguKLguLDguK3guKXguIfguIHguKPguJPguYwNCivguKrguLjguKfguKPguKPguJPguLIg4LiL4Li24LmJ4LiH4Lin4Li04Lij4Li04Lii4Liw4LiB4Li44LilDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC5geC4i+C5iOC5gOC4peC5ieC4sg0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguJXguLHguYnguIfguITguLjguKPguLjguKrguKPguJPguYwNCivguKrguLjguKfguKPguKPguJPguLIg4LiX4Lit4LiH4LiX4LiyDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4meC4meC4l+C4quC4uOC4lQ0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguJrguLPguKPguLjguIfguIHguLTguIjguYDguIjguKPguLTguI0NCivguKrguLjguKfguKPguKPguJPguLIg4Lib4Lix4LiN4LiN4Liy4LiK4Li14Lin4Li04LiZDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4nuC4seC4kuC4meC4nuC4h+C4qOC4geC4ow0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguYTguJ7guYLguKPguIjguJnguYzguIHguLTguIjguIjguLINCivguKrguLjguKfguKPguKPguJPguLIg4Lih4Li54Lih4Liw4Lir4Liw4Lir4Lih4Lix4LiU4LiL4Lit4LmB4Lil4LiwDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4o+C4t+C5iOC4meC5gOC4o+C4tOC4h+C5g+C4iA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguYDguKXguLTguKjguKfguIfguKjguYzguIrguLHguIrguKfguLLguKUNCivguKrguLjguKfguKPguKPguJPguLIg4Lin4Li04LiI4Li04LiV4Lij4Lib4Lij4Liw4Lig4Liy4Lie4LiH4Lip4LmMDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC4qOC4o+C4teC4qOC4uOC4oOC4p+C4o+C4o+C4kw0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguKrguKfguYjguLLguIfguJ7guLLguJPguLTguIrguKLguYwNCivguKrguLjguKfguKPguKPguJPguLIg4Liq4Li44LiC4Lih4Lix4LmI4LiZ4LiE4LiH4LmA4Liq4Lih4LitDQor4Liq4Li44Lin4Lij4Lij4LiT4LiyIOC5geC4quC4h+C4mOC4meC4suC4nuC4pOC4geC4qeC5jA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4siDguK3guJnguLHguJnguJXguKrguLTguJfguJjguLTguYzguKrguIHguLjguKUNCivguKrguLjguKfguKPguKPguJPguLIg4Lit4Li04LiZ4LiX4Lij4LmM4Lit4Li44LiU4LihDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC4geC4suC4o+C5hOC4l+C4og0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguITguLPguKrguLjguIINCivguKrguLjguKfguKPguKPguJPguLUg4LiI4Li04Lin4Lij4Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC4iuC4uOC4leC4tOC4nuC4o+C4p+C4k+C4tOC4ig0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguYHguIvguYjguK7guLHguYnguIcNCivguKrguLjguKfguKPguKPguJPguLUg4LiV4Lix4LmJ4LiH4Lin4LiH4Lio4LmM4Lio4Liy4LiZ4LiV4LmMDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC5gOC4l+C4nuC4quC4tOC4meC4mOC4meC4quC4geC4uOC4pQ0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguJrguLHguKfguIjguLXguJkNCivguKrguLjguKfguKPguKPguJPguLUg4LmA4Lic4Li04LiHDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC5gOC4nuC5iOC4h+C4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4h+C4p+C4h+C4qeC5jA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguKPguLHguIHguKnguLLguJ7guIjguJnguLLguIHguLTguIgNCivguKrguLjguKfguKPguKPguJPguLUg4LmA4Lil4Li04Lio4Lin4Li04Lij4Li04Lii4Liw4LmE4Lie4Lio4Liy4LilDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC4p+C4tOC4oOC4suC4geC4uOC4peC4nuC4tOC4l+C4seC4geC4qeC5jA0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguKrguKHguLjguJfguKPguKPguLHguIfguKrguLUNCivguKrguLjguKfguKPguKPguJPguLUg4Liq4Li44Lih4Liy4Lih4Liy4Lil4Lii4LmMDQor4Liq4Li44Lin4Lij4Lij4LiT4Li1IOC4reC5ieC4meC4o+C4uOC5iOC4hw0KK+C4quC4uOC4p+C4o+C4o+C4k+C4tSDguYDguK3guLfguYnguK3guKrguKHguKrguIHguLjguKUNCivguKrguLjguKfguKPguKPguJPguYwg4LiZ4Liy4LiE4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmMDQor4Liq4Li44Lin4Lij4Lix4LiV4LiZ4LmMIOC4muC4uOC4jeC4ouC4quC4tOC4l+C4mOC4tOC5jOC4nuC4tOC4iuC4seC4og0KK+C4quC4uOC4p+C4o+C4teC4ouC5jCDguYDguKXguLTguKjguK3guKPguLTguKLguLLguJnguLHguJnguJfguYwNCivguKrguLjguKfguKXguLHguIHguKnguJPguYwg4Lit4LiZ4Lix4LiZ4LiV4LiK4Lix4LiiDQor4Liq4Li44Lin4Lil4Li1IOC5gOC4reC4teC5iOC4ouC4oeC4quC4reC4suC4lA0KK+C4quC4uOC4p+C4seC4iOC4meC5jCDguKrguIfguKfguJnguKfguIfguKjguYwNCivguKrguLjguKfguLHguIrguKPguYwg4Lio4Li44Lig4LiB4Liy4LiN4LiI4LiZ4LmM4LmA4LiU4LiK4Liy4LiB4Li44LilDQor4Liq4Li44Lin4Lix4LiS4LiZ4LiwIOC4n+C4uOC5ieC4h+C4peC4seC4lOC4lOC4sg0KK+C4quC4uOC4p+C4seC4kuC4meC4siDguYDguJ7guYjguIfguJ7guLTguJnguLTguIgNCivguKrguLjguKfguLHguJLguJnguYwg4LiB4Lin4Li14Lin4Li44LiS4Li04Lio4Li04Lil4Lib4LmMDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC4hOC4h+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jOC4quC4tOC4h+C4q+C5jA0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguIjguLbguIfguJvguKPguLDguKDguLINCivguKrguLjguKfguLHguJLguJnguYwg4LmC4LiK4LiE4Lit4Lin4Lii4Lie4Lij4LiK4Lix4LiiDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC4leC4seC4meC5gOC4quC4luC4teC4ouC4ow0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguJnguLDguYLguKLguKrguLTguJkNCivguKrguLjguKfguLHguJLguJnguYwg4LmC4Lib4Lip4Lii4Liw4Lie4Li04Liq4Li04Lip4LiQ4LmMDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC5guC4nuC4mOC4tOC5geC4quC4hw0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguKPguLHguKjguKHguLUNCivguKrguLjguKfguLHguJLguJnguYwg4LmA4Lil4LmH4LiB4Liq4Li44Lin4Lij4Lij4LiT4LiB4Li44LilDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC4p+C4tOC4oOC4seC4iuC4meC4meC4l+C5jOC4geC4tOC4iA0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguKjguLjguKDguJjguJnguKrguLTguJnguYDguILguKnguKENCivguKrguLjguKfguLHguJLguJnguYwg4Liq4Li44LiC4Liq4Lix4LiZ4LiV4Li04LmMDQor4Liq4Li44Lin4Lix4LiS4LiZ4LmMIOC4q+C4p+C4seC4h+C4p+C4tOC4iuC4sg0KK+C4quC4uOC4p+C4seC4kuC4meC5jCDguK3guLLguKfguKPguJPguYwNCivguKrguLjguKfguLHguJXguKMg4Lio4Lij4Li14LiK4LiN4LiyDQor4Liq4Li44Lin4Lix4LiZ4LiZ4Li1IOC5guC4geC4hOC4ueC4kw0KK+C4quC4uOC4p+C4suC4meC4teC4ouC5jCDguIjguLTguJnguJXguKLguLHguIfguITguLjguJMNCivguKrguLjguKfguLLguKPguLUg4Lij4Li44LmI4LiH4Liq4Li04Lij4Li04LiI4Lij4Lix4Liq4LiX4Lit4LiHDQor4Liq4Li44Lin4Li04LiKIOC4iuC4ueC4leC4o+C4sOC4geC4ueC4pQ0KK+C4quC4uOC4p+C4tOC4iiDguKjguLTguKPguLTguKfguLHguJLguJnguYLguKLguJjguLTguJkNCivguKrguLjguKfguLTguIrguI3guLIg4LmA4LiB4Li04LiU4LiE4LiHDQor4Liq4Li44Lin4Li04LiK4LiyIOC5gOC4geC4leC4uOC5geC4geC5ieC4pw0KK+C4quC4uOC4p+C4tOC4iuC4suC4meC5jCDguIHguLPguKXguLHguIfguYDguKrguLfguK0NCivguKrguLjguKfguLTguJfguKLguYwg4LiB4Lit4LiH4LiB4Lix4LiZ4Lig4Lix4LiiDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC5hOC4geC4p+C4seC4peC5guC4geC4qOC4pQ0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguIjguLHguJnguJfguKPguIfguLLguKENCivguKrguLjguKfguLTguJfguKLguYwg4LiI4Li44LiV4Li04Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC4iuC4suC4jeC4l+C4p+C4teC4hOC4uOC4kw0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguYHguIvguYjguYDguK7guIcNCivguKrguLjguKfguLTguJfguKLguYwg4LiV4Lix4LiZ4Lib4Lij4Liw4Lin4Lix4LiV4Li0DQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC4l+C4reC4h+C4nOC4suC4quC4uOC4gg0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguJnguKTguYDguJrguKjguKPguYzguYTguIHguKPguKrguLXguKvguYwNCivguKrguLjguKfguLTguJfguKLguYwg4Lia4Li44LiN4Lij4Lix4LiB4Lip4LiyDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC5guC4m+C4qeC4ouC4sOC4nuC4tOC4quC4tOC4qeC4kOC5jA0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguJ7guLTguJfguLHguIHguKnguYzguYDguKXguLTguKjguIHguLjguKUNCivguKrguLjguKfguLTguJfguKLguYwg4Lig4Li54LmI4LmE4Lie4LiI4Li04LiV4Lij4LiB4Li44LilDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC4o+C4seC4leC4meC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguYDguKXguLLguKvguLDguIHguLjguKXguJjguKPguKPguKENCivguKrguLjguKfguLTguJfguKLguYwg4Lin4Lix4LiK4Lij4LmA4Liq4LiW4Li14Lii4LijDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC5gOC4p+C4l+C4ouC5jOC4p+C4o+C4suC4p+C4uOC4mA0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguYDguKjguKPguKnguJDguLXguIrguLHguKLguIrguJnguLANCivguKrguLjguKfguLTguJfguKLguYwg4Liq4Li04Lih4Liw4Liq4LiB4Li44LilDQor4Liq4Li44Lin4Li04LiX4Lii4LmMIOC5gOC4quC4o+C4teC5guC4o+C4iOC4meC4sg0KK+C4quC4uOC4p+C4tOC4l+C4ouC5jCDguK3guKHguKTguJXguIHguLjguKUNCivguKrguLjguKfguLTguJfguKLguYwg4LmA4Lit4LiB4Lin4Lix4LiS4LiZ4LmMDQor4Liq4Li44Lin4Li04LiZIOC5gOC4peC4suC4q+C4m+C4o+C4sOC4quC4tOC4l+C4mOC4tOC5jA0KK+C4quC4uOC4p+C4tOC4oOC4o+C4k+C5jCDguYHguKLguYnguKHguJfguLHguJoNCivguKrguLjguKfguLTguKHguKUg4LiB4LmJ4Lit4LiH4LiB4Lix4LiH4Lin4Liy4Lis4LmC4LiK4LiEDQor4Liq4Li44Lin4Li04Lih4LilIOC4iOC4seC4meC4l+C4o+C5jOC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC4p+C4tOC4oeC4pSDguIrguLTguJnguLDguKfguKPguJ7guIfguKjguYwNCivguKrguLjguKfguLTguKHguKUg4LiU4Li04Lil4LiB4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lin4Li04Lih4LilIOC4mOC4o+C4o+C4oeC4oeC5guC4meC4p+C4suC4meC4tOC4ig0KK+C4quC4uOC4p+C4tOC4oeC4pSDguJvguLTguJXguLTguYDguIjguKPguLTguI3guYLguIrguITguKXguLLguKANCivguKrguLjguKfguLTguKHguKUg4Lig4Lin4Lin4Lij4Lie4Lix4LiZ4LiY4Li44LmMDQor4Liq4Li44Lin4Li04Lih4LilIOC4pOC4l+C4mOC4tOC5guC4meC4oeC4seC4og0KK+C4quC4uOC4p+C4tOC4oeC4pSDguKfguLTguJrguLnguKXguKLguYzguYDguKXguLTguKjguKfguLHguJLguJnguLANCivguKrguLjguKfguLTguKHguKUg4Liq4Lix4LiZ4LiV4Li04LiX4Liy4LiZ4LiZ4LiX4LmMDQor4Liq4Li44Lin4Li04Lih4LilIOC4reC4lOC4uOC4peC4ouC5jOC4kOC4suC4meC4suC4meC4uOC4qOC4seC4geC4lOC4tOC5jA0KK+C4quC4uOC4p+C4tOC4o+C4seC4leC4meC5jCDguYDguIjguJnguKfguKrguLgNCivguKrguLjguKfguLTguYTguKUg4LmA4LiV4LmH4Lih4LiY4Liy4Lij4LiX4Li04Lie4Lii4LmMDQor4Liq4Li44Lin4LmC4Lij4LiKIOC4nuC4sOC4peC4seC4hw0KK+C4quC4uOC4q+C4suC4jSDguKrguLjguJnguJfguKPguJ7guLLguJPguLTguIrguKLguYwNCivguKrguLjguYDguIjguJXguJnguYwg4Lit4Lig4Lix4Lii4Lin4LiH4Lio4LmMDQor4Liq4Li44LmA4LiK4Lip4LiQ4LmMIOC4meC4tOC4peC4quC4uOC4p+C4o+C4o+C4k+C4suC4geC4uOC4pQ0KK+C4quC4uOC5gOC4l+C4niDguIHguKXguLTguYjguJnguJbguLfguK3guKjguLXguKUNCivguKrguLjguYDguJfguJ4g4LmB4LiB4LmJ4Lin4LiZ4Li04Lih4Li04LiV4LiK4Lix4LiiDQor4Liq4Li44LmA4LiX4LieIOC5guC4hOC5ieC4p+C5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC5gOC4l+C4niDguIjguLXguJnguYDguIjguJnguJ7guIjguJnguYwNCivguKrguLjguYDguJfguJ4g4LiK4Lix4Lii4Liq4LiB4Li44LilDQor4Liq4Li44LmA4LiX4LieIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4quC4uOC5gOC4l+C4niDguJXguLHguJnguKfguLTguJnguLTguIgNCivguKrguLjguYDguJfguJ4g4LiX4Lix4Lia4LiX4Li04Lih4LmB4Liq4LiHDQor4Liq4Li44LmA4LiX4LieIOC4mOC4uOC4p+C4sOC5gOC4qOC4o+C4qeC4kOC4geC4uOC4pQ0KK+C4quC4uOC5gOC4l+C4niDguJrguLjguI3guJfguKPguLHguJ7guKLguYwNCivguKrguLjguYDguJfguJ4g4Lib4Lix4LmJ4LiZ4LiZ4Li04LmI4LihDQor4Liq4Li44LmA4LiX4LieIOC4nuC4o+C4reC4s+C4meC4p+C4og0KK+C4quC4uOC5gOC4l+C4niDguJ7guLjguYjguKHguJfguYnguKfguKENCivguKrguLjguYDguJfguJ4g4Lih4LiT4Li14LmA4Liq4Liy4Lin4Lig4Liy4LiE4Lii4LmMDQor4Liq4Li44LmA4LiX4LieIOC4o+C4p+C4ouC4lOC4tQ0KK+C4quC4uOC5gOC4l+C4niDguKXguLTguYnguKHguJXguKPguLDguIHguLnguKUNCivguKrguLjguYDguJfguJ4g4Lin4Lij4Lii4LioDQor4Liq4Li44LmA4LiX4LieIOC4qOC4o+C4teC4meC4tOC4ouC4oQ0KK+C4quC4uOC5gOC4l+C4niDguKrguKHguLLguJnguKHguLTguJXguKMNCivguKrguLjguYDguJfguJ4g4Liq4Li44LiC4Lia4Liz4Lij4Li44LiHDQor4Liq4Li44LmA4LiX4LieIOC4quC4uOC4p+C4tOC4iuC4suC4iuC4meC4seC4meC4l+C4o+C5jA0KK+C4quC4uOC5gOC4l+C4niDguYDguKvguKHguLfguK3guJnguJTguKfguIcNCivguKrguLjguYDguJfguJ4g4Lit4LmI4Liz4Liq4Li44LiCDQor4Liq4Li44LmA4LiY4Li14Lii4LijIOC4meC4tOC4o+C4seC4meC4lOC4o+C5gOC4geC4teC4ouC4o+C4leC4tA0KK+C4quC4uOC5gOC4meC4leC4o+C4siDguIjguLTguJXguYDguJrguI3guIjguIHguLnguKUNCivguKrguLjguYDguJ7guYfguI0g4LiI4Lij4Lij4Lii4Liy4LiZ4Li44Lig4Liy4LieDQor4Liq4Li44LmA4Lie4Li14Lii4LijIOC4p+C4h+C4hOC5jOC4m+C4seC4meC4h+C5ieC4suC4pw0KK+C4quC4uOC5gOC4oeC4mCDguIHguLLguIfguYTguJjguKrguIcNCivguKrguLjguYDguKHguJgg4LiI4Lix4LiZ4LiX4Lin4LiH4Lio4LmMDQor4Liq4Li44LmA4Lih4LiYIOC5hOC4iuC4ouC5geC4geC5ieC4pw0KK+C4quC4uOC5gOC4oeC4mCDguJfguKfguLXguJfguKPguLHguJ7guKLguYwNCivguKrguLjguYDguKHguJgg4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LiB4Lil4Li04LmI4LiZDQor4Liq4Li44LmA4Lih4LiYIOC4oeC5guC4q+C4quC4lg0KK+C4quC4uOC5gOC4oeC4mCDguKfguIfguKjguYzguKrguLjguILguKvguKTguJfguLHguKINCivguKrguLjguYDguKHguJgg4Lio4Li44Lig4Lie4Liy4LiT4Li04LiK4Lin4LiH4Lio4LmMDQor4Liq4Li44LmA4Lih4LiYIOC5geC4quC4h+C4l+C4o+C4seC4nuC4ouC5jA0KK+C4quC4uOC5gOC4oeC4mCDguK3guLTguKrguKPguLTguKLguK3guLPguYTguJ4NCivguKrguLjguYDguKHguKjguKPguYwg4Liq4Li44LiC4Li44Lih4Lig4Liy4LiT4Li44LmA4Lih4Lio4Lij4LmMDQor4Liq4Li44LmA4Lin4LiX4Lii4LmMIOC4h+C4ueC4nuC4tOC4oeC4suC4og0KK+C4quC4uOC5guC4giDguJvguLHguI3guIjguKfguLXguJPguLTguJkNCivguKrguLjguYLguKDguIrguJnguYwg4LiV4Lix4LiZ4LiV4Li04Lin4LiH4Lio4LmMDQor4Liq4Li44LmD4Lia4LiU4LmK4LiwIOC4quC4uOC4guC5gOC4iOC4o+C4tOC4jQ0KK+C4quC4uOC5hOC4peC4oeC4suC4mSDguJnguLDguKHguLQNCivguKrguYDguIHguYfguJTguJTguLLguKcg4LiL4Li34LmI4Lit4Lin4Lix4LiS4LiZ4LiwDQor4Liq4LmE4Lia4LiX4Li04Lie4Lii4LmMIOC4qOC4tOC4o+C4tOC4p+C4h+C4qOC5jA0KK+C5gOC4quC4geC4quC4o+C4oyDguJnguLTguYjguKHguJ7guLTguIjguLLguKPguJPguYwNCivguYDguKrguIHguKrguKPguKMg4Lit4Li44LiX4Li04Lio4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Liq4LiB4Liq4Lij4Lij4LiE4LmMIOC4m+C5ieC4reC4h+C4geC4seC4meC4oOC4seC4og0KK+C5gOC4quC4geC4quC4o+C4o+C4hOC5jCDguK3guKLguLnguYjguYDguJvguYfguJnguKrguLjguIINCivguYDguKrguIfguLXguYjguKLguKEg4LmA4LiB4LmI4LiH4LiK4LiZDQor4LmA4Liq4LiH4Li14LmI4Lii4LihIOC5geC4i+C5iOC4iuC4tOC4hw0KK+C5gOC4quC4h+C4teC5iOC4ouC4oSDguJrguLjguJXguKPguIrguLDguKHguYnguK3guKINCivguYDguKrguIfguLXguYjguKLguKEg4Lih4Li14Liq4Lix4LiZ4LiQ4Liy4LiZDQor4LmA4Liq4LiH4Li14LmI4Lii4LihIOC4quC4oeC4muC4seC4leC4tOC4luC4suC4p+C4o+C4p+C4h+C4qOC5jA0KK+C5gOC4quC4h+C4teC5iOC4ouC4oSDguYDguK3guIHguInguLHguJXguKMNCivguYDguKrguJbguLXguKLguKMg4LiE4Liy4Lih4Li14Lio4Lix4LiB4LiU4Li04LmMDQor4LmA4Liq4LiW4Li14Lii4LijIOC4lOC4peC4muC4seC4meC4lOC4suC4peC5guC4iuC4hA0KK+C5gOC4quC4luC4teC4ouC4oyDguJrguLHguKfguITguKXguLXguYgNCivguYDguKrguJbguLXguKLguKMg4Lig4Liy4Liq4Liw4Lie4Lix4LiZ4LiY4LmMDQor4LmA4Liq4LiW4Li14Lii4LijIOC4p+C4h+C4qOC5jOC5gOC4iOC4o+C4tOC4jeC5gOC4geC4teC4ouC4o+C4leC4tA0KK+C5gOC4quC4luC4teC4ouC4oyDguKrguYjguK3guKrguLjguKvguLHguJcNCivguYDguKrguJbguLXguKLguKMg4LmA4Lir4Lil4Li34Lit4LiH4Lit4Lij4LmI4Liy4LihDQor4LmA4Liq4LiZ4LitIOC5geC4iOC5ieC4h+C4iuC4seC4lOC5g+C4iA0KK+C5gOC4quC4meC4rSDguKHguLnguKXguKjguLLguKrguJXguKPguYwNCivguYDguKrguJnguLLguLAg4LiB4Lix4LiZ4LmC4Lij4LiE4LiyDQor4LmA4Liq4LiZ4Liy4LiwIOC4leC4uOC5iOC4meC5hOC4p+C4ouC5jA0KK+C5gOC4quC4meC4suC4sCDguJvguKPguLDguJTguLHguJrguKXguLLguKINCivguYDguKrguJnguLLguLAg4Lii4Li04LmJ4Lih4LmA4LiI4Lij4Li04LiNDQor4LmA4Liq4LiZ4Liy4LiwIOC4quC4seC4h+C4guC5jOC4l+C4reC4h+C4lOC4tQ0KK+C5gOC4quC4meC4suC4sCDguYDguK3guKHguKfguLDguJTguLUNCivguYDguKrguJnguLXguKLguYwg4LiY4Lij4Lij4Lih4Liy4LiI4Lix4LiB4Lij4LmM4LiB4Li44LilDQor4LmA4Liq4LiZ4Li14Lii4LmMIOC4reC4meC4uOC4quC4o+C4qOC4seC4geC4lOC4tOC5jA0KK+C5gOC4quC4meC5iOC4q+C5jCDguITguKfguLLguKHguJTguLUNCivguYDguKrguJnguYjguKvguYwg4LmA4LiK4Li14LmI4Lii4Lin4LiY4LiZ4Lin4Lix4LiS4LiZ4LmMDQor4LmA4Liq4LiZ4LmI4Lir4LmMIOC4meC4suC4q+C5ieC4p+C4ouC4l+C4o+C4suC4og0KK+C5gOC4quC4meC5iOC4q+C5jCDguJ7guLHguJnguJjguYzguIjguLXguJkNCivguYDguKrguJnguYjguKvguYwg4LmA4Lih4LiG4LmA4LiJ4Lil4Li04LihDQor4LmA4Liq4LiZ4LmI4Lir4LmMIOC4qOC4o+C4teC4p+C4seC4kuC4meC5jA0KK+C5gOC4quC4meC5iOC4q+C5jCDguYLguKrguKPguLTguJnguJfguKPguYwNCivguYDguKrguKHguK0g4LmA4LiB4Li14Lii4Lij4LiV4Li04LmE4LiB4LijDQor4LmA4Liq4Lih4LitIOC4oeC4tOC4leC4o+C4p+C4tOC4iOC4suC4o+C4k+C5jA0KK+C5gOC4quC4oeC4reC4nuC4oyDguIrguLjguJPguKvguIrguLHguIrguKfguLLguKUNCivguYDguKrguKHguLIg4LiY4Li04Lij4Liy4Lih4LiZ4LiV4Lij4LmMDQor4LmA4Liq4Lih4Li34Lit4LiZIOC5gOC4iuC4t+C5ieC4reC4oeC4reC4jQ0KK+C5gOC4quC4o+C4tOC4oSDguYDguIHguKnguJfguK3guIcNCivguYDguKrguKPguLTguKEg4LmA4LiZ4Li14Lii4Lih4LiZ4Lie4LmA4LiZ4LiV4LijDQor4LmA4Liq4Lij4Li04LihIOC4oeC4ueC4peC4l+C4reC4h+C4ouC5ieC4reC4og0KK+C5gOC4quC4o+C4tOC4oSDguKvguKPguLnguKrguIHguLjguKUNCivguYDguKrguKPguLTguKHguJfguKPguLHguJ7guKLguYwg4Lia4Li44LiN4LiK4Li5DQor4LmA4Liq4Lij4Li04Lih4Lio4Lij4Li1IOC4geC4suC4jeC4iOC4meC4suC4oOC4o+C4k+C5jOC4geC4uOC4pQ0KK+C5gOC4quC4o+C4tOC4oeC4qOC4o+C4tSDguKjguKPguLXguYHguIHguYnguKcNCivguYDguKrguKPguLTguKHguKjguLHguIHguJTguLTguYwg4LmA4LiU4LiK4Lia4Li44LiNDQor4LmA4Liq4Lij4Li04Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4peC4seC4hOC4meC4suC4iOC4seC4meC4l+C5guC4iuC4leC4tA0KK+C5gOC4quC4o+C4tOC4oeC4qOC4seC4geC4lOC4tOC5jCDguYDguK3guIHguKfguLHguJLguJnguYwNCivguYDguKrguKPguLTguKHguKrguLjguIIg4LmC4LiK4LiV4Li04LiK4LmI4Lin4LiH4LiJ4Lix4LiV4Lij4LiK4Lix4LiiDQor4LmA4Liq4Lij4Li04Lih4Liq4Li44LiCIOC4reC4ouC4ueC5iOC4ouC4h+C4quC4tOC4mQ0KK+C5gOC4quC4o+C4tSDguYDguIHguLXguKLguKPguJXguLTguJrguKPguKPguKXguLfguK0NCivguYDguKrguKPguLUg4LmA4LiI4Li14Lii4Lij4LmB4Liq4LiH4LiX4Lit4LiHDQor4LmA4Liq4Lij4Li1IOC5gOC4lOC4iuC4geC4peC5ieC4sg0KK+C5gOC4quC4o+C4tSDguJjguLLguJnguLUNCivguYDguKrguKPguLUg4Lib4LiP4Li04Lib4LiX4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Liq4Lij4Li1IOC4nuC4seC4p+C4qOC4tOC4o+C4tA0KK+C5gOC4quC4o+C4tSDguKLguLjguKfguKPguLUNCivguYDguKrguKPguLUg4Lin4LiH4Lio4LmM4Lig4Lix4LiX4Lij4LiK4LiZDQor4LmA4Liq4Lij4Li1IOC4qOC4tOC4o+C4tOC4mOC4ow0KK+C5gOC4quC4o+C4tSDguKrguLjguJjguLLguIrguLUNCivguYDguKrguKPguLUg4Lit4Lij4Li04Lii4LmC4Liq4Lig4Liy4Lij4Lix4LiB4Lip4LmMDQor4LmA4Liq4Lin4LiBIOC4guC4sOC4oeC4seC4meC4iOC4sg0KK+C5gOC4quC4p+C4gSDguJ7guLHguJnguJjguYzguKvguJnguK3guKINCivguYDguKrguKfguIEg4LmB4Liq4LiH4LmA4LiC4Li14Lii4LinDQor4LmA4Liq4Lin4LiiIOC5gOC4o+C4t+C4reC4h+C5guC4iuC4leC4tA0KK+C5gOC4quC4p+C4teC4ouC4hyDguK3guLTguKjguKPguLLguIfguIHguLnguKMg4LiTIOC4reC4ouC4uOC4mOC4ouC4sg0KK+C5gOC4quC4suC4o+C5jOC5geC4geC5ieC4pyDguYPguIjguIHguKfguYnguLLguIcNCivguYDguKrguLLguKfguITguJnguJjguYwg4Lin4Li04Liq4Li04Lit4LiV4Li0DQor4LmA4Liq4Liy4Lin4LiT4Li1IOC4hOC4o+C4reC4muC4hOC4o+C4reC4hw0KK+C5gOC4quC4suC4p+C4k+C4tSDguKDguLHguIHguJTguLUNCivguYDguKrguLLguKfguJPguLUg4LmA4Lit4Li14LmI4Lii4Lih4Lin4LiH4Lio4LmM4LiZ4Li44LiB4Li54LilDQor4LmA4Liq4Liy4Lin4LiT4Li14Lii4LmMIOC4iuC4ueC5gOC4iuC4tOC4lA0KK+C5gOC4quC4suC4p+C4k+C4teC4ouC5jCDguJzguKXguLTguJXguIHguLjguKjguKXguJjguLHguIoNCivguYDguKrguLLguKfguJPguLXguKLguYwg4Lin4Li04LiI4Li04LiV4Lij4LiV4Lij4Liw4LiB4Liy4Lij4Lij4Li44LmI4LiHDQor4LmA4Liq4Liy4Lin4LiT4Li14Lii4LmMIOC4reC4o+C4uOC4k+C5geC4ieC5iOC4hw0KK+C5gOC4quC4suC4p+C4meC4tOC4lSDguYTguK3guJnguYnguLPguJfguLTguJ7guKLguYwNCivguYDguKrguLLguKfguJnguLUg4Lio4Lij4Li14LmA4Lie4LmH4LiK4Lij4LiU4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Liq4Liy4Lin4LiZ4Li14Lii4LmMIOC4iuC4seC5ieC4meC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C5gOC4quC4suC4p+C4meC4teC4ouC5jCDguJrguLjguKPguLTguJnguJfguKPguLLguKHguLLguJXguKLguYwNCivguYDguKrguLLguKfguJnguLXguKLguYwg4Lil4Li14Lii4Liy4LiB4Liy4LioDQor4LmA4Liq4Liy4Lin4LiZ4Li14Lii4LmMIOC5geC4quC4h+C5geC4geC5ieC4pw0KK+C5gOC4quC4suC4p+C4oOC4siDguIrguYjguKfguKLguIrguLnguKfguIfguKjguYwNCivguYDguKrguLLguKfguKDguLIg4Lio4Lij4Li14Lij4Lix4LiV4LiZ4LmC4Lie4LiY4Li04LmMDQor4LmA4Liq4Liy4Lin4Lig4Liy4LiE4Lii4LmMIOC4reC4meC4seC4meC4leC5jOC4iuC4t+C5iOC4meC4quC4uOC4gg0KK+C5gOC4quC4suC4p+C4o+C4qiDguKjguKPguLXguJ7guJnguKENCivguYDguKrguLLguKfguKPguLXguKLguYwg4LiV4Liw4LmC4Lie4LiZ4LiX4Lit4LiHDQor4LmA4Liq4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC4iOC4tOC4o+C4nuC4h+C4qOC4suC4meC4suC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C5gOC4quC4suC4p+C4peC4seC4geC4qeC4k+C5jCDguJDguLLguJnguLDguK3guLjguJTguKHguKHguIfguITguKUNCivguYDguKrguLLguKfguKXguLHguIHguKnguJPguYwg4LiZ4Liy4Lij4LiW4Lia4Li44LiNDQor4LmA4Liq4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC4nuC4tOC4iuC4tOC4leC4peC4s+C5gOC4hOC5h+C4jQ0KK+C5gOC4quC4suC4p+C4peC4seC4geC4qeC4k+C5jCDguKXguLTguILguLTguJXguKfguLHguJLguJnguJ7guKMNCivguYDguKrguLLguKfguKXguLHguIHguKnguJPguYwg4Liq4LiB4Li44Lil4Lij4Lix4LiV4LiZ4LmMDQor4LmA4Liq4Liy4Lin4Lil4Lix4LiB4Lip4LiT4LmMIOC4q+C4peC4tOC5iOC4oeC4quC4suC5guC4o+C4ig0KK+C5gOC4quC4suC4p+C4peC4tSDguJXguLTguIHguILguJvguLHguI3guI3guIHguLjguKUNCivguYDguKrguLXguKLguJTguJ/guYnguLIg4LiK4Lin4LiZ4LiI4Li04LiV4LiV4LmMDQor4LmA4Liq4LmH4LiHIOC4iuC4t+C5iOC4meC4quC4uOC4gg0KK+C5gOC4quC5iOC4oiDguKPguLHguJXguJnguKfguLHguJLguJnguLLguJjguKMNCivguYHguKrguIcg4Lib4Lij4Liw4Lii4Li54Lij4Lir4LiH4Lip4LmMDQor4LmB4Liq4LiHIOC4quC4uOC4o+C4sOC5gOC4o+C4t+C4reC4h+C4iuC4seC4og0KK+C5geC4quC4h+C4iOC4seC4meC4l+C4o+C5jCDguYDguIjguKPguLTguI3guKrguLjguIINCivguYHguKrguIfguIjguLHguJnguJfguKPguYwg4Lic4LiB4Liy4Lih4Liy4LioDQor4LmB4Liq4LiH4LiI4Lix4LiZ4LiX4Lij4LmMIOC4quC4seC4iuC4iuC4sOC5gOC4lOC4ig0KK+C5geC4quC4h+C4iuC4seC4oiDguInguLHguJXguKPguIrguLHguKLguKrguLjguIrguLINCivguYHguKrguIfguIrguLHguKIg4LiZ4Lin4Lij4Lix4LiV4LiZ4LmM4LiU4Li44Liq4Li04LiVDQor4LmB4Liq4LiH4LiK4Lix4LiiIOC4qOC4o+C4teC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4h+C4oOC4o+C4k+C5jA0KK+C5geC4quC4h+C4lOC4suC4pyDguJfguK3guIfguYHguJ4NCivguYHguKrguIfguJfguK3guIcg4LiX4Li04LiZ4LiZ4Li04LiB4LijDQor4LmB4Liq4LiH4LiY4Lij4Lij4LihIOC4n+C4uOC5ieC4h+C5hOC4nuC4qOC4suC4peC4nuC4h+C4qOC5jA0KK+C5geC4quC4h+C4oeC4siDguYDguJTguIrguKHguJnguJXguYwNCivguYHguKrguIfguKPguLHguJXguJnguYwg4Lit4Li44LiU4Lih4LiK4Lix4Lii4Lia4Lij4Lij4LmA4LiI4Li04LiUDQor4LmB4Liq4LiH4Liq4Li44Lij4Li14Lii4LmMIOC4p+C4h+C4qOC5jOC4quC4uOC4p+C4o+C4o+C4k+C4meC4tOC4mOC4tA0KK+C5geC4quC4h+C4reC4o+C4uOC4kyDguJrguLjguI3guIrguLkNCivguYHguKrguIfguK3guYjguK3guJkg4LiE4Liz4Lil4Li34LitDQor4LmB4Liq4LiH4LmA4LiU4Li34Lit4LiZIOC4l+C4tOC4nuC4oeC4meC4leC5jA0KK+C5geC4quC4h+C5gOC4lOC4t+C4reC4mSDguKrguLjguKfguKfguKPguKPguJjguJnguYwNCivguYHguKrguIfguYDguJ7guYfguI0g4Lil4Li14LiY4LiZ4Lio4Lix4LiB4LiU4Li04LmM4Liq4LiB4Li44LilDQor4LmB4Liq4LiU4LiHIOC4leC4seC4meC4leC4ouC4suC4geC4ow0KK+C5geC4quC4meC4nuC4pSDguKPguLHguKjguKHguLUNCivguYHguKrguKfguIcg4LiB4Lix4LiZ4Lij4Lix4Lih4Lii4LmMDQor4LmB4Liq4Lin4LiHIOC4iOC4seC4meC4l+C4o+C5jOC4reC4uOC4lOC4oQ0KK+C5geC4quC4p+C4hyDguJTguLPguKPguLHguKrguKHguIfguITguKXguKrguLTguKPguLQNCivguYHguKrguKfguIcg4Lia4Li44LiN4LiH4Lit4LiBDQor4LmB4Liq4Lin4LiHIOC4nuC4peC4suC4k+C4tOC4iuC4ouC5jA0KK+C5geC4quC4p+C4hyDguYDguKLguYfguJnguYPguIjguJvguKPguLDguYDguKrguKPguLTguJANCivguYHguKrguKfguIcg4Lio4Li04Lij4Li04Lib4Lij4Liw4Lig4Liy4Lip4Lih4LiH4LiE4LilDQor4LmB4Liq4Lin4LiHIOC4q+C4oeC4seC4lOC4meC4uOC4o+C4seC4geC4qeC5jA0KK+C5guC4quC4lOC4siDguKPguLHguI3guJTguKMNCivguYLguKrguJ7guKUg4Liq4Li44LiC4LmA4LiI4Lij4Li04LiNDQor4LmC4Liq4Lie4Li04LioIOC4oOC4ueC4quC4meC4suC4hOC4oQ0KK+C5guC4quC4oOC4kyDguIHguLnguYvguYDguIjguKPguLTguI0NCivguYLguKrguKDguJMg4LiI4Lix4LiZ4LiX4Lij4LmM4LiB4Lil4Li04LmI4LiZDQor4LmC4Liq4Lig4LiTIOC4iuC4suC4peC4teC4nuC4o+C4q+C4oQ0KK+C5guC4quC4oOC4kyDguYDguJTguIrguYDguJfguKfguJ7guKMNCivguYLguKrguKDguJMg4LiX4Lix4Lia4Lia4Lij4Lij4LiI4LiHDQor4LmC4Liq4Lig4LiTIOC4muC4uOC4jeC4iuC5iOC4p+C4og0KK+C5guC4quC4oOC4kyDguJ7guIfguKnguYzguYDguKDguJXguKPguLLguKPguLHguJXguJnguYwNCivguYLguKrguKDguJMg4Lig4Li44Lih4Lij4Liy4Lie4Lix4LiZ4LiY4Li44LmMDQor4LmC4Liq4Lig4LiTIOC4o+C4seC4leC4meC5gOC4peC4tOC4qA0KK+C5guC4quC4oOC4kyDguKfguYjguK3guIfguKfguIfguKjguYzguKjguKPguLUNCivguYLguKrguKDguJMg4Lio4Li04Lin4Li04Lil4Lix4LiiDQor4LmC4Liq4Lig4LiTIOC4quC4uOC4jeC4suC4k+C5gOC4qOC4o+C4qeC4kOC4geC4ow0KK+C5guC4quC4oOC4kyDguYDguKvguKHguLfguK3guJnguKrguKHguLHguKINCivguYLguKrguKDguJPguJ7guLHguJLguJnguLLguKDguKPguJPguYwg4Lie4Lij4Liw4LiE4Lij4Li5DQor4LmC4Liq4Lig4LiyIOC5gOC4geC4teC4ouC4o+C4leC4tOC4quC4seC4h+C4p+C4o+C4k+C5jA0KK+C5guC4quC4oOC4siDguYDguIjguKPguLTguI3guKrguLjguILguIjguLTguKPguLANCivguYLguKrguKDguLIg4LmA4LiV4Li14Lii4Lin4Lie4Li04Lie4Lix4LiS4LiZ4LmMDQor4LmC4Liq4Lig4LiyIOC4muC4uOC4jeC5gOC4o+C4t+C4reC4hw0KK+C5guC4quC4oOC4siDguYDguJ7guYfguIrguKPguITguLnguYDguKfguLXguKLguIcNCivguYLguKrguKDguLIg4Lil4Li04Lih4Liy4LiZ4LiZ4LiX4LmM4Lin4Lij4Liy4LmE4LiK4LiiDQor4LmC4Liq4Lig4LiyIOC4quC4p+C4seC4quC4lOC4tOC5jOC4l+C4seC4leC4tA0KK+C5guC4quC4oOC4siDguYLguKvguJXguKPguLDguIHguLTguJXguKLguYwNCivguYLguKrguKDguLLguJ7guKMg4Lit4Liy4Lir4Li04LiZ4Lix4LiZ4LmC4LiXDQor4LmC4Liq4Lig4Liy4LioIOC5guC4quC4p+C4seC4kuC4meC4suC4h+C4geC4ueC4ow0KK+C5guC4quC4oOC4tOC4lOC4siDguYHguJfguYnguYDguJfguLXguYjguKLguIfguJjguKPguKPguKENCivguYLguKrguKDguLTguJUg4Lil4Li04LmJ4Lih4Lit4Liz4LiZ4Lin4LiiDQor4LmC4Liq4Lig4Li04Lip4LiQIOC4nOC4peC4hOC4s+C4quC4uOC4gg0KK+C5guC4quC4oOC4tSDguK3guJnguLjguIjguLLguKPguLXguKPguLHguJXguJnguYwNCivguYLguKrguKHguJ7guLTguIrguIzguLIg4Lin4Lij4Lij4LiT4LiB4Li54LilDQor4LmC4Liq4Lij4Lii4LiyIOC4muC4uOC4jeC4ouC4p+C4tOC4leC4o+C5jA0KK+C5guC4quC4o+C4seC4leC4meC5jCDguIjguK3guIcNCivguYLguKrguKzguKog4Lih4LmI4Lin4LiH4LiZ4Li44LmI4LihDQor4LmE4LiqIOC4ouC4tOC5ieC4oeC5gOC4meC4teC4ouC4oQ0KK+C5hOC4quC4pyDguYHguILguJTguKfguIcNCivguYTguKrguKcg4LmA4LiJ4LmI4LiH4LiX4Lit4LiHDQor4LmE4Liq4LinIOC5guC4leC4p+C4h+C4qeC5jA0KK+C5hOC4quC4pyDguJrguLjguI3guJfguLTguKENCivguYTguKrguKcg4Lie4Li24LmI4LiH4LmB4LiB4LmJ4LinDQor4LmE4Liq4LinIOC4o+C4suC4iuC4p+C4h+C4qOC5jA0KK+C5hOC4quC4pyDguKjguKPguLXguYHguKrguIcNCivguYTguKrguKcg4Liq4Li44LiU4Lib4Liy4LiZDQor4LmE4Liq4LinIOC4reC4s+C5hOC4nuC4nuC4ow0KK+C4q+C4hyDguK3guLTguKrguKPguLDguKfguKPguKfguLLguJPguLTguIoNCivguKvguIfguKnguYwg4LmC4LiB4Lin4Li04LiZ4LiY4LiZ4Liy4Lie4Lix4LiS4LiZ4LmMDQor4Lir4LiH4Lip4LmMIOC5gOC4nOC5iOC4suC5guC4oOC4hOC4quC4luC4tOC4leC4ouC5jA0KK+C4q+C4h+C4tOC5iOC4h+C4peC5ieC4p+C4hyDguYHguIvguYjguYDguIvguLXguKLguKcNCivguKvguJfguLHguKIg4LmA4Lic4Li34Lit4LiB4Lil4Liy4LiU4Lie4Lij4LmJ4Liy4LinDQor4Lir4LiX4Lix4Lii4LiK4LiZ4LiBIOC5geC4quC4h+C4nuC4o+C4oeC4l+C4tOC4nuC4ouC5jA0KK+C4q+C4l+C4seC4ouC4o+C4seC4leC4meC5jCDguITguLjguYjguKLguJXguYjguKfguJkNCivguKvguJfguLHguKLguKPguLHguJXguJnguYwg4Lie4Lix4LiS4LiZ4LmM4LiE4Li44LmJ4LihDQor4Lir4LiX4Lix4Lii4Lij4Li44LmI4LiHIOC4leC4seC5ieC4h+C4iOC4tOC4leC4nuC4tOC4l+C4seC4geC4qeC5jOC4geC4uOC4pQ0KK+C4q+C4meC4syDguJvguLTguKLguLHguKrguKrguJ7guLHguJnguJjguLjguYwNCivguKvguJnguLbguYjguIfguKvguJfguLHguKIg4LmA4LiZ4LiV4Li04Lil4Lix4LiB4Lip4LiT4Lin4Li04LiI4Liy4Lij4LiT4LmMDQor4Lir4LiZ4Li5IOC4o+C4uOC5iOC4h+C5gOC4iOC4o+C4tOC4jeC4o+C4reC4lA0KK+C4q+C4meC4ueC4meC5ieC4reC4oiDguK7guK3guIHguLTguYnguJnguKrguYwNCivguKvguJnguLnguKfguKPguKPguJPguYwg4Lin4Lij4Lij4Lix4LiV4LiZ4LmMDQor4Lir4LiZ4Li54LmA4Lil4LmH4LiBIOC5geC4quC4h+C4l+C4reC4hw0KK+C4q+C4oeC5iOC4p+C4oiDguJjguKPguKPguKHguJrguLjguJXguKMNCivguKvguKHguLHguJQg4Lir4Lih4Lix4LiU4Liu4Liy4Lij4Li44LiTDQor4Lir4Lih4Li44LiUIOC4quC4uOC4guC4oOC4tOC4jeC5guC4jQ0KK+C4q+C4oeC4uOC4ouC5gOC4leC4teC4ouC4hyDguYHguIvguYjguYLguK3guYrguKcNCivguKvguKLguIHguKjguLTguKPguLQg4Lib4Lij4Liw4LiK4Li44Lih4LmC4LiK4LiV4Li0DQor4Lir4Lii4Lin4LiBIOC4peC5ieC4s+C5gOC4peC4tOC4qA0KK+C4q+C4ouC4suC4lOC4lOC4p+C4hyDguYDguKfguJPguLjguIjguLHguJnguJfguKPguYwNCivguKvguKLguLXguYgg4LmA4Lit4Li14LmI4Lii4Lih4LiB4Lil4Li04LmI4LiZDQor4Lir4Lij4Lij4Lip4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4seC4meC4mOC5jOC4h+C4suC4oQ0KK+C4q+C4o+C4o+C4qeC4siDguKHguLDguYLguKPguKvguLDguJrguLjguJXguKPguYwNCivguKvguKPguLHguYjguIcg4Liq4Li44LiX4LiY4Li04Liq4Li44Lin4Lij4Lij4LiTDQor4Lir4Lik4LiX4Lix4LiiIOC5gOC4iOC4teC4ouC4oeC5g+C4iOC4quC4p+C5iOC4suC4h+C4pOC4geC4qeC5jA0KK+C4q+C4peC4hyDguKrguLTguIfguKvguYzguKPguLjguYjguIfguYDguKPguLfguK3guIcNCivguKvguKXguYjguK3guIfguIfguYnguK0g4LmB4LiL4LmI4LmA4LiL4Li14Lii4LinDQor4Lir4Lil4Liy4LiUIOC4meC4tOC4peC4qOC4tOC4o+C4tA0KK+C4q+C4peC4tOC4mSDguKjguKPguLXguKfguIfguIjguLHguJnguJfguKPguYwNCivguKvguKXguLUg4Lib4Lil4Lit4LiU4Lig4Lix4LiiDQor4Lir4Lil4Li14LmA4Lit4LiHIOC5geC4i+C5iOC4ieC4seC5iOC4pw0KK+C4q+C4p+C4pSDguYDguJfguLXguKLguKHguK3guLHguKHguJ7guKMNCivguKvguKfguLHguIcg4Lik4LiB4Lip4LmM4Lij4Lix4LiK4LiZ4Li14LiB4LijDQor4Lir4Lin4Lix4LmI4LiZIOC4iOC4uOC4peC4oeC4uOC4mQ0KK+C4q+C4p+C4suC4meC5g+C4iCDguITguKXguYnguLLguKLguKjguKPguLUNCivguKvguK3guKEg4LmA4LiX4Li14Lii4Lih4LmA4LiI4Lij4Li04LiNDQor4Lir4Lit4Lih4Lir4Lin4LilIOC4m+C4seC4leC4meC4tQ0KK+C4q+C4seC4lCDguYLguITguJXguLDguKHguLANCivguKvguLHguJfguKLguLIg4Lie4Liy4LiZ4Li04LiK4LiB4Li44LilDQor4Lir4Lix4Liq4LiV4LiK4Lix4LiiIOC5geC4quC4h+C5gOC4quC4o+C4tOC4kOC5gOC4qOC4o+C4qeC4kOC5jA0KK+C4q+C4suC4jSDguIvguLfguYjguK3guJXguKPguIcNCivguKvguLLguI0g4Lit4Lix4LmL4LiZ4Lin4LiH4Lio4LmMDQor4Lir4LmI4Liy4LiH4LiE4Li44LiHIOC5geC4i+C5iOC4peC4tOC5ieC4oQ0KK+C4q+C4tOC4o+C4seC4jSDguJrguLjguJnguJnguLLguIQNCivguKvguLTguKPguLHguI3guI3guLTguIHguLLguKPguYwg4Lit4Lij4Lix4LiN4LiN4Li04LiBDQor4Lir4Li44LmJ4Lii4LmE4LiZ4LmJIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C5gOC4q+C4oeC4nuC4o+C4o+C4kyDguIjguLLguJnguKjguLTguKXguLINCivguYDguKvguKHguLfguK3guJkg4Liq4Li14LmA4Lir4Lil4LmH4LiBDQor4LmA4Lir4Lij4Li14Lii4LiNIOC4iuC4teC4p+C4suC4meC4seC4meC4l+C5jA0KK+C5gOC4q+C4o+C4teC4ouC4jSDguKrguIfguYjguLLguYDguJnguJXguKMNCivguYDguKvguKPguLXguKLguI3guYDguIfguLTguJkg4LiX4Lix4Lio4LiZ4Lin4Li04Lij4Li44Lis4Lir4LmMDQor4LmA4Lir4Lil4Li14LmI4Lii4LihIOC4meC4suC4meC4reC4gQ0KK+C5gOC4q+C4peC5h+C4geC4ruC4ueC5iSDguYHguIvguYjguYDguKXguYfguIENCivguYDguKvguYfguKEg4Lil4Liz4LmA4Lir4Lil4Li34LitDQor4LmB4Lir4Lil4Lih4LiX4Lit4LiHIOC4reC4oOC4tOC4oeC4q+C4suC4muC4uOC4k+C4ouC5jA0KK+C5guC4q+C4peC5iOC5gOC4q+C4oeC4oiDguYHguIvguYjguYDguInguLTguJkNCivguYPguKvguKHguYgg4LmB4LiL4LmI4LiL4Li04LmJ4LihDQor4LmE4Lir4Lil4LmI4Liu4LiBIOC5geC4i+C5iOC4iOC4tuC4hw0KK+C4reC4h+C4hOC5jOC4reC4oyDguYDguKXguK3guKXguKANCivguK3guIfguK3guLLguIgg4LiI4Li24LiH4Lib4Lij4Liw4Lig4LiyDQor4Lit4LiH4Lit4Liy4LiIIOC5guC4leC4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4reC4h+C4reC4suC4iCDguJ7guIjguJnguYzguJfguKfguLXguYDguIHguLXguKLguKPguJXguLQNCivguK3guIfguK3guLLguIgg4LmC4Lij4LiI4LiZ4LmM4LiV4Lij4LiH4LiI4Li04LiV4LiV4LmMDQor4Lit4LiH4Lit4Liy4LiIIOC4quC4uOC4iOC4tOC4o+C4iuC4suC5guC4lQ0KK+C4reC4h+C4uOC5iOC4mSDguYLguIHguI/guLTguJXguKPguLDguIHguLnguKUNCivguK3guIfguLjguYjguJkg4Lie4Lij4Lir4Lih4Lih4Liy4Lii4LiZDQor4Lit4LiH4Li44LmI4LiZIOC5guC4q+C4h+C4p+C5gOC4iOC4o+C4tOC4jQ0KK+C4reC4k+C4tOC4p+C4seC4kuC4meC5jCDguYDguKvguKXguLfguK3guIfguKHguLXguIrguLHguKINCivguK3guJTguLTguJnguLHguJnguJfguYwg4Lih4LiH4LiE4Lil4Lij4Lix4LiV4LiZ4LmM4LiZ4Liy4LiB4LijDQor4Lit4LiU4Li04Lio4LijIOC4iuC4suC4leC4tOC4geC4s+C5geC4q+C4hw0KK+C4reC4lOC4tOC4qOC4oyDguYDguJ7guYfguIrguKPguJbguJnguK3guKENCivguK3guJTguLTguKjguKMg4Liq4Li44Lij4Li04Lii4Lin4Lij4Lin4LiH4Lio4LmMDQor4Lit4LiU4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4geC4uOC4peC4qOC4tOC4o+C4tOC4p+C4uOC4kuC4tOC4iuC4seC4og0KK+C4reC4lOC4tOC4qOC4seC4geC4lOC4tOC5jCDguYLguInguKHguYHguIHguYnguKcNCivguK3guJTguLTguKjguLHguIHguJTguLTguYwg4LiX4Lit4LiH4LmB4LiX4LmI4LiHDQor4Lit4LiU4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4p+C4h+C5gOC4nuC5h+C4iuC4o+C5jA0KK+C4reC4lOC4tOC4qOC4seC4geC4lOC4tOC5jCDguYLguKPguKvguLTguJXguLDguKjguLjguJkNCivguK3guJTguLTguKjguLHguIHguJTguLTguYwg4Lio4Lix4LiB4LiU4Li04LmM4LiZ4Liz4Liq4LmI4LiHDQor4Lit4LiU4Li04Lio4Lix4LiB4LiU4Li04LmMIOC4q+C4peC4sOC4l+C4tOC5ieC4hw0KK+C4reC4lOC4tOC4qOC4seC4oiDguJjguJnguKfguLTguJrguLnguKXguKLguYwNCivguK3guJTguLTguKrguLHguKIg4Lin4Li04Lih4Lil4Liq4Lix4LiI4LiI4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lit4LiU4Li04LmA4Lij4LiBIOC4muC4uOC4jeC5gOC4reC4teC5iOC4ouC4oQ0KK+C4reC4lOC4uOC4pSDguIjguLHguJnguJfguKPguKrguLjguKPguLTguKLguKjguLHguIHguJTguLTguYwNCivguK3guJTguLjguKXguKLguYzguKjguLHguIHguJTguLTguYwg4LiV4Li14Lij4Liw4LiI4Li04LiZ4LiU4LiyDQor4Lit4LiU4Li44Lil4Lii4LmMIOC4iOC4suC4o+C4uOC4o+C4seC4leC4meC5jA0KK+C4reC4lOC4uOC4peC4ouC5jCDguYDguJXguLXguKLguKrguIHguLjguKUNCivguK3guJTguLjguKXguKLguYwg4Lic4Liy4LiV4Li04Lir4Lix4LiV4LiW4LiB4LijDQor4Lit4LiU4Li44Lil4Lii4LmMIOC4o+C4seC4leC4meC4l+C4seC4qOC4meC4teC4ouC5jA0KK+C4reC4lOC4uOC4peC4ouC5jCDguKrguIHguLjguKXguJ7guLLguJPguLTguIrguKLguYwNCivguK3guJTguLjguKXguKLguYwg4Lit4Li04LiZ4LmA4Liq4LiZ4Li1DQor4Lit4LiV4Li04LiZ4Li44LiKIOC4o+C4seC4h+C4quC4tOC4ouC4suC4meC4meC4l+C5jA0KK+C4reC4leC4tOC5gOC4o+C4gSDguJMg4LiW4Lil4Liy4LiHDQor4Lit4LiY4Li04LiE4LihIOC4qOC4uOC4oOC4lOC4tOC4peC4geC4iuC4seC4og0KK+C4reC4mOC4tOC4m+C4seC4leC4ouC5jCDguITguKXguLXguYjguKrguLjguJnguJfguKMNCivguK3guJjguLTguKfguLHguJLguJnguYwg4Lit4Lij4Lij4LiW4Lib4Lin4Lix4LiV4LiZ4LmMDQor4Lit4LiZ4LiH4LiE4LmM4LiZ4Liy4LiOIOC5gOC4leC4iuC4sOC4p+C4quC4seC4jeC4jeC4uQ0KK+C4reC4meC4h+C4hOC5jOC4meC4uOC4iiDguIHguK3guIfguIjguLTguJnguJTguLINCivguK3guJnguIfguITguYzguKXguLHguIHguKnguJPguYwg4Lih4Liy4Lil4Liy4LiB4Lit4LiHDQor4Lit4LiZ4LiH4LiE4LmMIOC5geC4geC5ieC4p+C4geC4tOC4leC4leC4tOC4hOC4uOC4kw0KK+C4reC4meC4h+C4hOC5jCDguIjguLHguJnguJfguKPguKjguLjguKDguYHguKrguIcNCivguK3guJnguIfguITguYwg4LiK4Liy4LiV4Lia4Li44LiV4LijDQor4Lit4LiZ4LiH4LiE4LmMIOC5geC4i+C5iOC5gOC4muC5ig0KK+C4reC4meC4h+C4hOC5jCDguJfguKfguLXguKrguLjguIINCivguK3guJnguIfguITguYwg4LiZ4Liy4Lih4Lio4Lij4Li14LiE4Li44LiTDQor4Lit4LiZ4LiH4LiE4LmMIOC4m+C4o+C4sOC4nuC4seC4leC4o+C5jOC4geC4uOC4pQ0KK+C4reC4meC4h+C4hOC5jCDguJ7guLHguKXguKXguKDguKPguLHguIHguKnguLINCivguK3guJnguIfguITguYwg4Lig4Li54LmI4LmA4LiI4Lij4Li04LiNDQor4Lit4LiZ4LiH4LiE4LmMIOC4o+C4uOC5iOC4h+C5gOC4o+C4t+C4reC4hw0KK+C4reC4meC4h+C4hOC5jCDguKfguLTguYDguKfguYLguIENCivguK3guJnguIfguITguYwg4Liq4Lih4Liy4LiZ4Liq4Li04LiZDQor4Lit4LiZ4LiH4LiE4LmMIOC4quC4uOC4oOC4suC4nuC4nuC4o+C5ieC4reC4oQ0KK+C4reC4meC4h+C4hOC5jCDguK3guYjguKfguKHguKrguLjguIINCivguK3guJnguIfguKXguLHguIHguKnguJPguYwg4LmC4Lij4LiI4LiZ4Lia4Li44Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Lit4LiZ4Lin4Lix4LiKIOC4kOC4tOC4leC4tOC4oOC4suC4geC4ow0KK+C4reC4meC4seC4jeC4jeC4siDguKfguLXguKPguLDguJDguLLguJnguLANCivguK3guJnguLHguJnguJXguYzguIrguLHguKIg4LiC4Lix4LiZ4LmC4LiXDQor4Lit4LiZ4Lix4LiZ4LiV4LmM4Lio4Lix4LiB4LiU4Li04LmMIOC5gOC4nuC4teC4ouC4o+C4iOC4tOC4leC5gOC4peC4tOC4qOC4guC4iOC4ow0KK+C4reC4meC4seC4meC4leC5jCDguIHguLPguJvguLHguYjguJnguJfguK3guIcNCivguK3guJnguLHguJnguJXguYwg4LiC4Lii4Lix4LiZDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4h+C4suC4oeC4ouC4tOC5iOC4h+C4quC4h+C5iOC4sg0KK+C4reC4meC4seC4meC4leC5jCDguIjguLTguJXguJXguYzguKPguLHguIHguYTguJfguKINCivguK3guJnguLHguJnguJXguYwg4LmB4LiI4LmJ4LiH4LiB4Lil4Li14LiaDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4iuC4uOC5iOC4oeC4geC4o+C4suC4meC4leC5jA0KK+C4reC4meC4seC4meC4leC5jCDguYHguIvguYjguYDguKvguLXguKINCivguK3guJnguLHguJnguJXguYwg4LiV4Lij4Li14Lie4LiI4LiZ4Li14Lii4LmMDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC5hOC4leC4o+C4quC4suC4o+C4qOC4o+C4tQ0KK+C4reC4meC4seC4meC4leC5jCDguJjguJnguLDguKjguLTguKPguLTguJnguLLguKfguLTguJkNCivguK3guJnguLHguJnguJXguYwg4LiZ4Li04LiV4Li04LmA4LiI4Lij4Li04LiN4Lie4LiH4Lio4LmMDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4muC4uOC4jeC4qOC4o+C4teC4quC4uOC4gg0KK+C4reC4meC4seC4meC4leC5jCDguJvguKXguLfguYnguKHguKHguJPguLUNCivguK3guJnguLHguJnguJXguYwg4Lie4LiH4Lip4LmM4Liq4Lih4Lia4Lix4LiV4Li0DQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4nuC4tuC5iOC4h+C4l+C4o+C4seC4nuC4ouC5jA0KK+C4reC4meC4seC4meC4leC5jCDguKDguLnguYjguKjguKPguLXguKfguKPguLLguKfguIfguKjguYzguIHguLnguKUNCivguK3guJnguLHguJnguJXguYwg4LmA4Lih4LiG4Lil4Lit4LiiDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4o+C4seC4iuC5gOC4p+C4l+C4ouC5jA0KK+C4reC4meC4seC4meC4leC5jCDguKXguLTguYnguJnguIjguLXguYgNCivguK3guJnguLHguJnguJXguYwg4Lin4LiH4Lio4LmM4Liq4LiB4Li44LilDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4p+C4tOC4o+C4tOC4o+C4seC4leC4meC5jA0KK+C4reC4meC4seC4meC4leC5jCDguKjguKPguLXguYDguJ7guLXguKLguKMNCivguK3guJnguLHguJnguJXguYwg4Liq4Lin4Lix4Liq4LiU4Li04LmM4Lie4Liy4LiT4Li04LiK4Lii4LmMDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4quC4uOC4guC4meC5ieC4reC4og0KK+C4reC4meC4seC4meC4leC5jCDguKrguLnguIjguLTguIbguKPguLANCivguK3guJnguLHguJnguJXguYwg4LmA4Lir4Lih4Li34Lit4LiZ4LmB4Lih4LmJ4LiZDQor4Lit4LiZ4Lix4LiZ4LiV4LmMIOC4reC4seC4qOC4p+C4geC4uOC4pQ0KK+C4reC4meC4seC4meC4leC5jCDguYDguK3guIHguJnguLTguKLguKENCivguK3guJnguLHguKog4Lio4Li04Lil4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lit4LiZ4Li04Lij4Li44LiX4LiY4LmMIOC4hOC4h+C5gOC4m+C4o+C4oQ0KK+C4reC4meC4tOC4qeC4juC4siDguKjguKPguLXguKrguLHguJnguJXguLTguYHguKrguIcNCivguK3guJnguLgg4Lin4Lix4LiS4LiY4Lix4LiN4LiN4LiB4Lij4Lij4LihDQor4Lit4LiZ4Li44LiB4Li54LilIOC4iuC4suC4leC4tOC4reC4uOC4lOC4oeC5gOC4lOC4ig0KK+C4reC4meC4uOC4geC4ueC4pSDguKjguLTguKPguLTguKjguLHguIHguJTguLTguYzguYTguJ7guJrguLnguKXguKLguYwNCivguK3guJnguLjguIrguKPguLHguIHguKnguYwg4Lih4Lir4Liy4Lit4Lix4Lih4Lie4Lij4Lie4Lik4LiB4Lip4LmMDQor4Lit4LiZ4Li44LiK4LiyIOC4iOC4suC4o+C4uOC4q+C4tOC4o+C4seC4jeC4quC4geC4uOC4pQ0KK+C4reC4meC4uOC4iuC4siDguJjguLPguKPguIfguKPguLHguJXguJnguYwNCivguK3guJnguLjguIrguLIg4Lih4Li44LiB4LiU4Liy4Liq4LiZ4Li04LiXDQor4Lit4LiZ4Li44LiK4LiyIOC4quC4tOC4o+C4tOC4quC4tOC4meC4p+C4tOC4muC4ueC4peC4ouC5jA0KK+C4reC4meC4uOC4iuC4suC4leC4tCDguITguIrguKjguLTguKXguLINCivguK3guJnguLjguIrguLTguJUg4LiB4Liy4Lij4LiZ4Lit4LiBDQor4Lit4LiZ4Li44LiK4Li04LiVIOC4l+C4reC4h+C4reC4seC5ieC4mQ0KK+C4reC4meC4uOC4iuC4tOC4lSDguYDguKPguYjguIfguJ7guLjguJLguLTguJ7guIfguKnguYwNCivguK3guJnguLjguIrguLTguJUg4Lit4Li04LiZ4LiY4Li04Lij4Lix4LiB4Lip4LmMDQor4Lit4LiZ4Li44LiY4Li04LiU4LiyIOC5geC4nuC4peC4h+C4geC4o+C4sOC5guC4l+C4gQ0KK+C4reC4meC4uOC4nuC4h+C4qeC5jCDguIjguLHguIfguJnguKDguLLguJ7guKMNCivguK3guJnguLjguJ7guJnguJjguYwg4Lii4Lio4Lig4Lij4LiT4LmMDQor4Lit4LiZ4Li44Lie4Lix4LiZ4LiY4LmMIOC4quC4uOC4p+C4o+C4o+C4k+C5jA0KK+C4reC4meC4uOC4o+C4seC4geC4qeC5jCDguITguLHguJnguJjguKPguLHguIHguKnguYwNCivguK3guJnguLjguKPguLHguIHguKnguYwg4LiZ4Liy4LiU4Liq4Liy4LijDQor4Lit4LiZ4Li44Lij4Lix4LiB4Lip4LmMIOC4peC4teC4peC4suC4m+C4tOC4ouC4oeC4tOC4leC4ow0KK+C4reC4meC4uOC4o+C4seC4geC4qeC5jCDguYDguK3guLfguYnguK3guIfguK3guLjguJTguKENCivguK3guJnguLjguKPguLHguJXguJnguYwg4Lir4Lih4Lix4LiU4Liq4Liw4LmB4Lil4LiwDQor4Lit4LiZ4Li44Lin4Lij4Lij4LiV4LiZ4LmMIOC4geC4peC5gOC4i+C5h+C4oeC4oeC4ueC4i+C4rQ0KK+C4reC4meC4uOC4p+C4seC4kuC4meC5jCDguJnguLLguITguKjguKPguLXguKrguLjguIINCivguK3guJnguLjguKfguLHguJLguJnguYwg4Liq4LiW4Li04Lij4Lin4Li04LiB4Lij4Liy4LiZ4LiV4LmMDQor4Lit4LiZ4Li44Lin4Lix4LiV4LiZ4LmMIOC4reC4seC4h+C4qOC4uOC4oOC4suC4geC4ow0KK+C4reC4meC4uOC4p+C4seC4leC4oyDguK3guLLguIjguKfguLLguJfguLTguJkNCivguK3guJnguLjguKjguLHguIHguJTguLTguYwg4LiI4LiH4LiI4Liy4Lih4Lij4Li14Liq4Li14LiX4Lit4LiHDQor4Lit4LiZ4Li44Lio4Lix4LiB4LiU4Li04LmMIOC4oeC4teC4quC4oeC4p+C4tOC4l+C4ouC5jA0KK+C4reC4meC4uOC4qOC4tOC4qeC4juC5jCDguYDguJfguJ7guKrguLTguJnguJjguJ7guKrguIHguLjguKUNCivguK3guJnguLjguKrguKPguJPguYwg4LiE4Li04Lin4LmA4LiB4Lip4Lih4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lit4LiZ4Li44Liq4Lij4LiT4LmMIOC4luC5ieC4s+C4quC4uOC4p+C4o+C4o+C4kw0KK+C4reC4meC4uOC4quC4o+C4k+C5jCDguJ7guIfguKnguYzguYLguIrguJXguLQNCivguK3guJnguLjguKrguKPguJPguYwg4Lil4Li04Lih4Lib4Li04Lin4Lix4LiS4LiZ4LmMDQor4Lit4LiZ4Li44Liq4Lij4LiT4LmMIOC4quC4uOC4meC4l+C4o+C4sg0KK+C4reC4meC4uOC4quC4o+C4siDguKrguLjguILguIrguLLguJXguLQNCivguK3guJnguLjguYDguJfguJ4g4Lia4Li44LiN4LmA4Lib4Li14LmI4Lii4Lih4Lio4Lix4LiB4LiU4Li04LmMDQor4Lit4Lia4Lih4Liy4Lil4Li1IOC4oOC4tOC4jeC5guC4jeC4p+C4suC4meC4tOC4iuC4geC4sA0KK+C4reC4oOC4seC4oiDguJjguKPguKTguJfguJjguLTguYwNCivguK3guKDguLTguIrguI3guLIg4LiZ4Lie4Lih4Liy4LioDQor4Lit4Lig4Li04LiK4Lix4LiiIOC4iOC4tOC4o+C4seC4kOC4leC4tOC4ouC4suC4h+C4geC4ueC4ow0KK+C4reC4oOC4tOC4iuC4seC4oiDguJfguKPguIfguKjguLTguKXguJvguYwNCivguK3guKDguLTguIrguLHguKIg4Lih4Lir4Liy4Lij4Li44LmI4LiH4LmA4Lij4Li34Lit4LiH4Lij4Lix4LiV4LiZ4LmMDQor4Lit4Lig4Li04LiK4Lix4LiiIOC4qOC4o+C4teC5hOC4iuC4ouC4ouC4seC4meC4leC5jA0KK+C4reC4oOC4tOC4iuC4seC4oiDguK3guLHguKjguKfguYLguKPguIjguJnguYzguJ7guLLguJnguLTguIoNCivguK3guKDguLTguIrguLLguJUg4LmB4Lie4Lij4Liq4Li14LmA4LiI4Lij4Li04LiNDQor4Lit4Lig4Li04LiK4Liy4LiV4Li0IOC4geC4teC4o+C4leC4tOC4reC4suC4oOC4suC4geC4uOC4pQ0KK+C4reC4oOC4tOC4iuC4suC4leC4tCDguIjguLHguJnguJfguYLguKPguJrguKUNCivguK3guKDguLTguIrguLLguJXguLQg4LmA4LiK4Li04LiU4LiK4Lix4Lii4Lig4Li54Lih4Li0DQor4Lit4Lig4Li04LiK4Liy4LiV4Li0IOC4leC4seC5ieC4h+C4hOC4suC4o+C4p+C4hOC4uOC4kw0KK+C4reC4oOC4tOC4iuC4suC4leC4tCDguJjguLXguKPguKrguLjguJnguJfguKPguKfguLHguJLguJnguYwNCivguK3guKDguLTguIrguLLguJXguLQg4LmC4Lib4Lij4LiT4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lit4Lig4Li04LiK4Liy4LiV4Li0IOC4oeC4k+C4teC5guC4o+C4iOC4meC5jOC4ieC4suC4og0KK+C4reC4oOC4tOC4iuC4suC4leC4tCDguYDguKXguLTguKjguJvguLTguKLguLDguJnguLHguJnguJfguIHguLnguKMNCivguK3guKDguLTguIrguLLguJXguLQg4Lio4Li04Lij4Li04Lih4Liy4LiV4Lii4LmMDQor4Lit4Lig4Li04LiK4Liy4LiV4Li0IOC4quC4uOC4p+C4o+C4o+C4k+C4geC4uOC4pQ0KK+C4reC4oOC4tOC4iuC4suC4leC4tCDguK3guLHguKjguKfguJ7guLTguIrguI3guYzguYLguIrguJXguLQNCivguK3guKDguLTguIrguLTguJUg4Lik4LiX4LiY4Li04Lia4Li54Lij4LiT4LmMDQor4Lit4Lig4Li04LiN4LiN4LiyIOC4ieC4seC4leC4o+C5guC4reC4rOC4suC4o+C4geC4uOC4pQ0KK+C4reC4oOC4tOC4jeC4jeC4siDguJrguLjguI3guIjguLPguKPguLHguKoNCivguK3guKDguLTguI3guI3guLIg4LmA4Lil4Li04Lio4Lin4Lix4LiS4LiZ4LiZ4LiZ4LiX4LmMDQor4Lit4Lig4Li04LiN4LiN4LiyIOC4reC4ouC4ueC5iOC4hOC4sw0KK+C4reC4oOC4tOC4meC4niDguYDguIHguLTguJTguJ7guLTguJrguLnguKXguKLguYwNCivguK3guKDguLTguJnguLHguJnguJfguYwg4LiTIOC4meC4hOC4ow0KK+C4reC4oOC4tOC4meC4seC4meC4l+C5jCDguKPguLHguIHguJXguJvguKPguLDguIjguLTguJUNCivguK3guKDguLTguJrguLLguKUg4Lin4Lij4Lij4Lix4LiH4Liq4Lik4Lip4LiP4Li04LmMDQor4Lit4Lig4Li04Lii4Li44LiV4LiV4LmMIOC4qOC4tOC4o+C4tOC4geC4uOC4pQ0KK+C4reC4oOC4tOC4o+C4lOC4tSDguYLguJ7guJjguLTguKLguLHguJnguJXguYwNCivguK3guKDguLTguKPguKHguKLguYwg4LiU4Li04Lip4LiQ4Li1DQor4Lit4Lig4Li04Lij4Lix4LiB4Lip4LmMIOC4iuC4teC4p+C5gOC4quC4luC4teC4ouC4o+C4nuC4ow0KK+C4reC4oOC4tOC4o+C4seC4geC4qeC5jCDguKjguLTguKPguLTguJfguKPguLHguJ7guKLguLLguIHguKMNCivguK3guKDguLTguKPguLHguJAg4Lit4Li04LiX4LiY4Li04Lin4Li04LiB4Li44LilDQor4Lit4Lig4Li04Lij4Lix4LiV4LiZ4LmMIOC4quC4uOC4guC4qOC4o+C4tQ0KK+C4reC4oOC4tOC4p+C4o+C4o+C4kyDguKrguKfguLHguKrguJTguLUNCivguK3guKDguLTguKfguLHguJLguJnguYwg4Lia4Li44Lij4Li14Liq4Li04Lij4Li04Lij4Lix4LiV4LiZ4LmMDQor4Lit4Lig4Li04Lin4Lix4LiV4LiZ4LmMIOC4nuC4tOC4k+C4l+C4reC4hw0KK+C4reC4oOC4tOC4qOC4seC4geC4lOC4tOC5jCDguIvguLTguYnguKHguJvguKPguLDguYDguKrguKPguLTguJANCivguK3guKDguLTguKjguLHguIHguJTguLTguYwg4Liq4Lij4Lin4Li04Liq4Li54LiV4LijDQor4Lit4Lig4Li04Liq4Li04LiX4LiY4Li04LmMIOC4iOC4seC4meC4l+C4o+C4p+C4h+C4qOC5jA0KK+C4reC4oOC4tOC4quC4tOC4l+C4mOC4tOC5jCDguJ7guKPguYDguIjguKPguLTguI0NCivguK3guKDguLTguKrguLTguJfguJjguLTguYwg4Liq4Liy4Lii4Liw4Lin4Li04Lia4Li54Lil4Lii4LmMDQor4Lit4Lig4Li04LmA4LiK4Lip4LiQ4LmMIOC4iuC5iOC4reC4h+C4lOC4suC4o+C4suC4geC4uOC4pQ0KK+C4reC4oOC4tOC5guC4o+C4iOC4meC5jCDguJvguLTguYjguJnguYDguKrguJbguLXguKLguKPguYDguIHguKoNCivguK3guKHguKMg4LiI4Liw4LmA4LiK4Li34Lit4LiZ4Lij4Lix4Lih4Lii4LmMDQor4Lit4Lih4LijIOC4lOC4tOC5gOC4o+C4geC4muC4uOC4qeC4o+C4suC4hOC4seC4oQ0KK+C4reC4oeC4oyDguJrguLLguIfguYDguIjguKPguLTguI3guJ7guKPguJ7guIfguKjguYwNCivguK3guKHguKMg4Lie4Li04Liq4Li44LiX4LiY4Li04Lij4Lix4LiV4LiZ4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lit4Lih4LijIOC5gOC4o+C4t+C4reC4h+C4oeC4suC4meC4sOC4oeC4h+C4hOC4pQ0KK+C4reC4oeC4oyDguKjguLTguKPguLTguK3guLLguIrguLLguKfguLHguJLguJnguLINCivguK3guKHguKMg4Lir4Lih4Lix4LiU4LiC4Liy4LinDQor4Lit4Lih4LijIOC5gOC4reC4teC5iOC4ouC4oeC4quC4s+C4reC4suC4h+C4hOC5jA0KK+C4reC4oeC4o+C4nuC4o+C4o+C4kyDguJrguLjguKPguLXguKrguLTguKPguLTguKPguLHguJXguJnguYwNCivguK3guKHguKPguKPguLHguJXguJnguYwg4LiB4Liy4LiN4LiI4LiZ4Lin4Li04LiI4Li04LiV4Lij4LmA4Lil4Li04LioDQor4Lit4Lih4Lij4Lij4Lix4LiV4LiZ4LmMIOC4iOC4uOC4keC4suC4oeC4suC4iuC4suC4leC4tA0KK+C4reC4oeC4o+C4o+C4seC4leC4meC5jCDguJTguLjguKrguLTguJUNCivguK3guKHguKPguKPguLHguJXguJnguYwg4LiZ4Li04Lii4Lih4Lij4Liy4Lip4LiO4Lij4LmMDQor4Lit4Lih4Lij4Lij4Lix4LiV4LiZ4LmMIOC4nuC4ueC4meC4leC4o+C4sOC4geC4ueC4peC5gOC4geC4teC4ouC4o+C4leC4tA0KK+C4reC4oeC4o+C4o+C4seC4leC4meC5jCDguKPguLjguYjguIfguYLguKPguIjguJnguYzguKrguIHguLjguKUNCivguK3guKHguKPguKPguLHguJXguJnguYwg4Lin4Li04LiZ4Li04LiI4LiJ4Liy4Lii4Liw4LiI4Li04LiZ4LiU4LiyDQor4Lit4Lih4Lij4Lij4Lix4LiV4LiZ4LmMIOC4quC4teC5gOC4h+C5ieC4rQ0KK+C4reC4oeC4o+C4o+C4seC4leC4meC5jCDguK3guLHguIfguKrguLjguJfguJjguLQNCivguK3guKHguKPguKfguLTguJfguKLguYwg4LmA4Lit4LiB4LmB4Liq4LiH4Lio4Lij4Li1DQor4Lit4Lih4Lij4Lio4Lix4LiB4LiU4Li04LmMIOC4p+C4h+C4qOC5jOC4nuC4seC4kuC4meC4suC4quC4tOC4mQ0KK+C4reC4oeC4o+C4siDguITguLjguYnguKHguYHguIHguYnguKcNCivguK3guKHguKPguLIg4LiZ4Li04LmI4Lih4Lij4Liy4Lio4Lij4Li1DQor4Lit4Lih4Lij4LiyIOC4o+C4seC4leC4leC4suC4geC4ow0KK+C4reC4oeC4o+C4siDguKvguIfguKnguYzguJ7guKPguYnguK3guKHguI3guLLguJXguLQNCivguK3guKHguKPguLLguKfguJTguLUg4Lit4Lix4LiH4LiE4Liq4Li44Lin4Lij4Lij4LiTDQor4Lit4Lih4Lij4LmA4LiX4LieIOC4nuC5iOC4p+C4h+C5guC4geC4qOC4pQ0KK+C4reC4oeC4seC4meC4ouC4tOC4lSDguIvguLTguIfguKvguYwNCivguK3guKLguLjguJgg4LiZ4Lix4LiZ4LiX4Liy4Lig4Li04Lin4Lix4LiY4LiZ4LmMDQor4Lit4LijIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4reC4o+C4ieC4seC4kCDguIrguYjguLLguIfguJfguLMNCivguK3guKPguIrguKMg4LmC4Lie4LiY4Li04Liq4Li44LiCDQor4Lit4Lij4LiK4Li44LiU4LiyIOC4nuC4o+C4oeC4muC4uOC4leC4ow0KK+C4reC4o+C4k+C4tSDguIHguLTguJXguLTguK3guLLguKDguLINCivguK3guKPguJPguLUg4Lir4Lil4Lit4LiU4LmA4LiH4Li04LiZDQor4Lit4Lij4LiX4Lix4LiiIOC4geC4pOC4qeC4k+C4ouC4o+C4o+C4ouC4hw0KK+C4reC4o+C4l+C4seC4oiDguIjguLXguKPguKfguKPguKPguJPguKfguIfguKjguYwNCivguK3guKPguJfguLHguKIg4LiU4Li44Lip4LiP4Li14LiX4Lin4Li14Lie4Lix4LiZ4LiY4Li44LmMDQor4Lit4Lij4LiX4Lix4LiiIOC4muC4uOC4jeC4ieC4tOC4oQ0KK+C4reC4o+C4l+C4seC4oiDguKDguLHguIHguJTguLXguKfguLTguIjguLTguJXguKMNCivguK3guKPguJfguLHguKIg4LmA4Lil4Li04Lio4Lib4Lij4Liw4Liq4Lie4Liq4Li44LiCDQor4Lit4Lij4LiX4Lix4LiiIOC4quC4ouC4uOC4oeC4nuC4ow0KK+C4reC4o+C4l+C4seC4oiDguK3guJnguLjguJ7guLHguJnguJjguYzguKfguLXguKPguLDguJ7guIfguKnguYwNCivguK3guKPguJjguLTguJTguLIg4Lia4Li44LiN4Liq4LihDQor4Lit4Lij4LiZ4Li44LiKIOC4geC5ieC4reC4h+C4quC4tOC4meC4mOC4uA0KK+C4reC4o+C4meC4uOC4iiDguIrguJnguLDguJ7guLHguJnguJjguYwNCivguK3guKPguJnguLjguIog4LiW4LiZ4Lix4LiU4LiB4Li04LiIDQor4Lit4Lij4LiZ4Li44LiKIOC4nuC4suC4k+C4tOC4iuC4ouC5jOC4iOC4tOC4meC4lOC4sg0KK+C4reC4o+C4meC4uOC4iiDguKfguKPguKPguJPguKfguLTguIjguLTguJXguKMNCivguK3guKPguJnguLjguIog4Lir4Lix4LiH4Liq4Liw4LmE4Lin4Lio4Lii4LiwDQor4Lit4Lij4Lie4LijIOC4muC4seC4p+C4m+C4o+C4sOC4lOC4tOC4qeC4kOC5jA0KK+C4reC4o+C4nuC4o+C4o+C4kyDguInguLHguJnguKfguLTguYTguKXguIHguLTguIgNCivguK3guKPguJ7guKPguKPguJMg4Lib4LiP4Li04Lie4Lix4LiX4LiY4LmM4Lib4Lix4LiN4LiN4Liy4LiB4Li44LilDQor4Lit4Lij4Lie4Lij4Lij4LiTIOC4p+C4tOC5gOC4qOC4qeC4oeC4h+C4hOC4peC4iuC4seC4og0KK+C4reC4o+C4nuC4o+C4o+C4kyDguK3guLTguJnguJfguKPguKrguLjguKPguLTguKLguYDguJTguIoNCivguK3guKPguJ7guLTguJMg4LmA4LiB4LiV4Li44Lib4Lix4LiN4LiN4LiyDQor4Lit4Lij4Lie4Li04LiZIOC4iOC4seC4meC4l+C4o+C4quC4uOC4gg0KK+C4reC4o+C4nuC4tOC4mSDguJXguLHguJnguJXguLTguKfguLTguKPguLjguKzguKvguYwNCivguK3guKPguJ7guLTguJkg4Lie4Lij4Lib4Lij4Liw4LiB4Liy4Liq4Li04LiVDQor4Lit4Lij4Lie4Li04LiZIOC4p+C5iOC4reC4h+C4p+C4tOC4iuC4iuC4uOC5gOC4p+C4l+C4ouC5jA0KK+C4reC4o+C4nuC4tOC4mSDguK3guJnguLHguJnguJXguKPguIHguLTguJXguJXguLQNCivguK3guKPguJ7guLTguJnguJfguKPguYwg4Lit4Lig4Li04LiZ4Lix4LiZ4LiX4LmM4LiI4Liy4Lij4Li44Lie4LiH4Lio4LmMDQor4Lit4Lij4Lie4Li04LiZ4LiX4LmMIOC5geC4i+C5iOC5gOC4iOC4teC5iOC4og0KK+C4reC4o+C4nuC4tOC4meC4l+C5jCDguJ7guIfguKjguYzguKfguKPguLLguKHguLTguJXguKPguIrguLHguKINCivguK3guKPguJ7guLTguJnguJfguYwg4Lin4LiH4Lio4LmM4Lin4Li04Liq4Li44LiX4LiY4Li04Lij4Lix4LiV4LiZ4LmMDQor4Lit4Lij4Lie4Li04LiZ4LiX4LmMIOC4reC4meC4seC4meC4leC4muC4uOC4leC4ow0KK+C4reC4o+C4nuC4tOC4meC4mOC5jCDguJjguLTguJTguLLguKPguLHguJXguJnguYzguKrguIHguLjguKUNCivguK3guKPguKHguJPguLUg4Lig4Liy4LiT4Li44Lie4Lix4LiZ4LiY4LmMDQor4Lit4Lij4Lij4LiE4LmA4LiU4LiKIOC5gOC4peC4t+C5iOC4reC4oeC5geC4quC4hw0KK+C4reC4o+C4o+C4k+C4niDguYDguITguLXguKLguIfguKjguLTguKPguLQNCivguK3guKPguKPguJPguJ4g4Lia4Li44LiN4Lie4Li04Lij4Li44LiT4Lij4Lix4LiB4Lip4LiyDQor4Lit4Lij4Lij4LiT4LieIOC4p+C4tOC4iOC4tOC4leC4o+C4leC4o+C4sOC4geC4suC4o+C4geC4uOC4pQ0KK+C4reC4o+C4o+C4k+C4niDguK3guLbguYnguIfguKfguLTguJHguLnguKPguKrguJbguLTguJXguKLguYwNCivguK3guKPguKPguJbguIHguKHguKXguKLguJrguLjguJXguKLguLLguJnguKfguLHguJXguKMg4Lir4Lil4Lin4LiHDQor4Lit4Lij4Lij4LiW4LiK4Lix4LiiIOC4pOC4geC4qeC4muC4uOC4leC4ow0KK+C4reC4o+C4o+C4luC4nuC4oyDguYLguIrguITguIrguLHguKLguYDguIjguKPguLTguI3guKjguKPguLUNCivguK3guKPguKPguJbguJ7guKUg4LiB4Lik4Lip4LiU4Liy4LiY4Li04LiB4Liy4LijDQor4Lit4Lij4Lij4LiW4Lie4LilIOC4ouC4tOC4meC4muC4seC4pw0KK+C4reC4o+C4o+C4luC4nuC4pSDguYDguK7guIfguJrguLjguJPguKLguJ7guLHguJnguJjguYwNCivguK3guKPguKPguJbguKfguLjguJLguLQg4Lij4Lix4LiV4LiZ4Liy4LiZ4Lix4LiZ4LiX4LmMDQor4Lit4Lij4Lij4LiW4Lit4Li44LiU4LihIOC4nuC4peC4suC4qOC4o+C4seC4og0KK+C4reC4o+C4peC4seC4geC4qeC4k+C5jCDguJvguLTguYjguJnguJnguLTguIHguKMNCivguK3guKPguKfguKPguKPguJMg4LmB4LiB4LmI4LiZ4LiX4Lit4LiHDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC4iOC4seC4meC4l+C4o+C5jOC5gOC4l+C4teC5iOC4ouC4hw0KK+C4reC4o+C4p+C4o+C4o+C4kyDguIrguI7guLLguIrguLHguKLguKfguLTguKfguLHguJLguJnguYwNCivguK3guKPguKfguKPguKPguJMg4LmB4LiL4LmI4LmA4LiI4LmI4LiyDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC5gOC4leC5h+C4oeC4quC4uOC4p+C4o+C4o+C4k+C4nuC4suC4meC4tOC4ig0KK+C4reC4o+C4p+C4o+C4o+C4kyDguJjguLXguKPguLDguKfguLTguJfguKLguYDguKXguLTguKgNCivguK3guKPguKfguKPguKPguJMg4Lib4LiQ4Lih4Lin4Liy4LiT4Li04LiK4Lii4LmMDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC4nuC4h+C4qeC5jOC4p+C4ow0KK+C4reC4o+C4p+C4o+C4o+C4kyDguKDguKfguJ7guIfguKjguYzguKrguLjguKDguLHguJfguKMNCivguK3guKPguKfguKPguKPguJMg4Lij4Lit4LiU4Lie4Lix4LiZ4LiY4LmMDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC5gOC4peC4tOC4qOC4quC4suC4mOC4tOC4lQ0KK+C4reC4o+C4p+C4o+C4o+C4kyDguKfguLTguJfguKLguLLguYDguKfguIoNCivguK3guKPguKfguKPguKPguJMg4Lio4Li04Lij4Li04Liq4Li44LiC4Liq4Lih4Lia4Li54Lij4LiT4LmMDQor4Lit4Lij4Lin4Lij4Lij4LiTIOC4quC4tOC4meC4peC4reC4ouC4oeC4sg0KK+C4reC4o+C4p+C4o+C4o+C4kyDguYHguKrguIfguKPguLHguJXguJnguIrguLHguKLguIHguLjguKUNCivguK3guKPguKfguKPguKPguJMg4Lit4Lij4Li44LiT4Lij4Li44LmI4LiH4LmC4Lij4LiI4LiZ4LmMDQor4Lit4Lij4Lin4Lij4Lij4LiT4LmMIOC4oeC4uOC5iOC4h+C4q+C4meC5ieC4suC4l+C4teC5iA0KK+C4reC4o+C4qOC4o+C4tSDguJnguLTguKLguKHguKfguLHguJkNCivguK3guKPguKnguLIg4LiX4Lij4LiH4Liq4Lih4Lij4Lij4LiW4Lig4Liy4LieDQor4Lit4Lij4Liq4LiyIOC4guC4seC4leC4leC4tOC4ouC4nuC4o+C4nuC4h+C4qOC5jA0KK+C4reC4o+C4quC4siDguJXguLHguJnguYTguJ7guIjguLTguJXguKMNCivguK3guKPguKrguLIg4Lie4Lil4Lit4Lii4Lie4Liy4LiZ4Li04LiK4LmA4LiI4Lij4Li04LiNDQor4Lit4Lij4Liq4LiyIOC4p+C4meC4o+C4seC4geC4qeC5jA0KK+C4reC4o+C4quC4siDguKvguIfguKnguYzguJfguK3guIcNCivguK3guKPguK3guJPguLUg4LmA4Lin4LiK4Lie4LiH4Lio4LiyDQor4Lit4Lij4Lit4LiZ4LiH4LiE4LmMIOC4leC4seC5ieC4h+C4quC4p+C4seC4quC4lOC4tOC4o+C4seC4leC4meC5jA0KK+C4reC4o+C4reC4meC4h+C4hOC5jCDguYDguJ7guKPguLTguJTguJ7guKPguLTguYnguIcNCivguK3guKPguK3guJnguIfguITguYwg4Lio4Lij4Li14Lih4Li54LilDQor4Lit4Lij4Lit4LiZ4LiH4LiE4LmMIOC5gOC4reC4teC5iOC4ouC4oeC4pOC4geC4qeC5jOC4iuC4seC4og0KK+C4reC4o+C4reC4uOC4oeC4siDguJnguLHguJnguJfguLjguKPguLHguJXguJnguYwNCivguK3guKPguK3guLjguKnguLIg4Lit4Liy4Lip4Liy4LiZ4Lit4LiBDQor4Lit4Lij4Lix4LiNIOC5gOC4nOC4t+C4reC4geC4l+C4reC4hw0KK+C4reC4o+C4seC4jSDguKrguLjguJnguLTguJ7guKUNCivguK3guKPguLHguI3guI3guLIg4LiI4Lix4LiZ4LiX4Lij4LmM4Liq4Li44Lij4Li04Lin4LiH4Lio4LmMDQor4Lit4Lij4Lix4LiN4LiN4LiyIOC4mOC4meC4suC4meC4seC4meC4l+C5jA0KK+C4reC4o+C4seC4jeC4jeC4siDguKHguLLguJnguLDguYHguIHguYnguKcNCivguK3guKPguLHguI3guI3guLIg4Liq4Liy4LiY4Li4DQor4Lit4Lij4Lix4LiTIOC4qOC4o+C4teC4reC4p+C4ouC4iuC4seC4og0KK+C4reC4o+C5iOC4suC4oSDguYDguJfguJ7guLLguJnguJnguJfguYwNCivguK3guKPguYjguLLguKEg4Lin4LiH4Lio4LmM4LiW4Li04Lij4Lin4Lij4Lij4LiY4LiZ4LmMDQor4Lit4Lij4LmI4Liy4Lih4Lio4Lij4Li1IOC4oeC4h+C4hOC4peC4qOC4tOC4o+C4tA0KK+C4reC4o+C4tOC4meC4siDguKjguLTguKPguLTguKfguIfguKjguYwNCivguK3guKPguLTguKLguLIg4Lin4Li04LiX4Lii4Lio4Lij4Li14LmA4LiI4Lij4Li04LiNDQor4Lit4Lij4Li04Liq4LiyIOC5gOC4geC4qeC4oeC4geC4tOC4iOC4quC4uOC4p+C4o+C4o+C4kw0KK+C4reC4o+C4uOC4kyDguYDguIHguLXguKLguKPguJXguLTguJvguLHguI3guI3guLINCivguK3guKPguLjguJMg4LiI4Lix4LiH4LiX4Lit4LiH4Lio4Li04Lij4Li0DQor4Lit4Lij4Li44LiTIOC4iuC4oeC5gOC4iuC4ouC4p+C4h+C4qOC5jA0KK+C4reC4o+C4uOC4kyDguJTguLPguKPguIfguJzguKUNCivguK3guKPguLjguJMg4LiX4Lit4LiH4LiZ4Lit4LiBDQor4Lit4Lij4Li44LiTIOC4meC4tOC4oeC4oeC4suC4meC4meC4l+C5jA0KK+C4reC4o+C4uOC4kyDguJvguKPguLXguJTguLINCivguK3guKPguLjguJMg4Lie4Li44LiB4Lie4Lix4LiBDQor4Lit4Lij4Li44LiTIOC4oeC4suC4ruC4suC4muC4ueC4mg0KK+C4reC4o+C4uOC4kyDguYDguKPguLfguK3guIfguKLguLjguJfguJjguJvguIHguKPguJPguYwNCivguK3guKPguLjguJMg4Lin4Lix4LiZ4Lij4Lix4LiB4Lip4LmMDQor4Lit4Lij4Li44LiTIOC4qOC4tuC4geC4qeC4suC4nuC4o+C4lQ0KK+C4reC4o+C4uOC4kyDguKrguLjguILguKrguJrguLLguKINCivguK3guKPguLjguJMg4Lir4Liy4LiN4LiK4LiZ4LiwDQor4Lit4Lij4Li44LiTIOC4reC4uOC4lOC4oeC4quC4uOC4gg0KK+C4reC4o+C4uOC4k+C4m+C4o+C4sOC4qOC4suC4quC4leC4o+C5jCDguYDguJvguKXguYjguIfguYHguKrguIfguKjguKPguLUNCivguK3guKPguLjguJPguKPguLHguJXguJnguYwg4LiX4Lix4Lia4LmA4LilDQor4Lit4Lij4Li44LiT4Lij4Lix4LiV4LiZ4LmMIOC5gOC4reC4teC5iOC4ouC4oeC5gOC4iOC4o+C4tOC4jeC4ouC4tOC5iOC4hw0KK+C4reC4o+C4uOC4k+C4p+C4o+C4o+C4kyDguIHguLXguKPguJXguLTguJ7guKXguIHguLjguKUNCivguK3guKPguLjguJPguKjguKPguLUg4LmA4LiB4Lip4Lih4Lie4LiH4Lip4LmMDQor4Lit4Lij4Li44LiT4Lio4Lij4Li1IOC4meC4uOC5iOC4oeC4q+C4reC4oQ0KK+C4reC4o+C4uOC4k+C4qOC4o+C4tSDguKjguLTguKPguLTguJ7guKPguYDguJfguJ4NCivguK3guKPguLjguJPguLIg4Lia4Liy4LiB4LmJ4LiyDQor4Lit4Lij4Li44LiT4Li1IOC4hOC4h+C5gOC4o+C4t+C4reC4h+C4pOC4l+C4mOC4tOC5jA0KK+C4reC4o+C4uOC4k+C4tSDguYDguIjguKPguLTguI3guJzguKUNCivguK3guKPguLjguJPguLUg4LmE4LiK4Lii4LiB4LilDQor4Lit4Lij4Li44LiT4Li1IOC5geC4leC4h+C4ieC5iOC4sw0KK+C4reC4o+C4uOC4k+C4tSDguJnguLLguITguJvguKPguLDguKrguLTguJfguJjguLTguYwNCivguK3guKPguLjguJPguLUg4Lib4Li04LmI4LiZ4Lia4Lix4LiT4LiR4Li04LiVDQor4Lit4Lij4Li44LiT4Li1IOC4nuC4teC4o+C4suC4geC4o+C5gOC4lOC4ig0KK+C4reC4o+C4uOC4k+C4tSDguKPguLHguIHguKnguLLguJnguLLguYDguKfguKgNCivguK3guKPguLjguJPguLUg4LmC4Lil4Lir4Liy4LiK4Li14Lin4LiwDQor4Lit4Lij4Li44LiT4Li1IOC4qOC4o+C4teC4oOC4sg0KK+C4reC4o+C4uOC4k+C4tSDguKrguLTguIfguKvguYzguITguLMNCivguK3guKPguLjguJPguLUg4Lir4Lih4Li54LmI4LiC4LiI4Lij4Lie4Lix4LiZ4LiY4LmMDQor4Lit4Lij4Li44LiT4Li1IOC4reC4uOC4lOC4oeC4m+C4o+C4suC4peC4sA0KK+C4reC4o+C4uOC4quC4o+C4siDguIrguLLguI3guKrguKfguYjguLLguIcNCivguK3guKPguYTguJcg4Lin4Li44LiS4Li04LmA4LiU4LiK4LmA4LiB4Lij4Li14Lii4LiH4LmE4LiB4LijDQor4Lit4Lil4LiH4LiB4Lij4LiT4LmMIOC5gOC4lOC4iuC4hOC4hw0KK+C4reC4peC4tOC4leC4siDguJTguLTguKjguKPguKDguLHguIHguJTguLUNCivguK3guKXguLTguKrguLIg4LiX4Li14LmC4LiqDQor4Lit4Lin4LiaIOC4m+C4o+C4sOC5guC4oeC4iOC4meC4teC4ouC5jA0KK+C4reC4p+C4ouC4iuC4seC4oiDguJvguLTguKLguLDguITguLjguJMNCivguK3guKfguKLguJ7guKMg4LmB4LiB4LmJ4Lin4Lih4LiT4Li1DQor4Lit4Lin4Lii4Lie4LijIOC4oeC4h+C4hOC4peC4geC4peC5ieC4sg0KK+C4reC4p+C4pSDguJnguLTguJXguKLguKrguLjguJfguJjguLTguYwNCivguK3guKrguLjguJnguLXguKLguYwg4LiX4Lij4Lix4Lie4Lii4LmM4Lio4Lij4Li14Lio4Li44Lig4LiK4Lix4LiiDQor4Lit4Lit4Lih4Liq4Li04LiZIOC4quC4tOC4h+C4q+C5jOC5gOC4l+C4teC4ouC4mQ0KK+C4reC5iOC4reC4meC4leC4siDguKrguLHguJfguJjguLLguKPguLHguIfguKrguLUNCivguK3guYnguK0g4LmC4Lie4LiY4LiyDQor4Lit4LmJ4Lit4Lih4LmD4LiIIOC5gOC4nuC4tOC5iOC4oeC4nuC4tOC4geC4uOC4pQ0KK+C4reC5ieC4reC4ouC4l+C4tOC4nuC4ouC5jCDguYHguIvguYjguK3guLHguYnguIcNCivguK3guYnguK3guKLguYPguIgg4Lia4Li44LiN4Lii4Lix4LiHDQor4Lit4Lix4LiBIOC4iuC4uOC5iOC4oeC4iuC4t+C5iOC4mQ0KK+C4reC4seC4geC4qeC4o+C4seC4geC4quC5jCDguYLguJXguIHguKTguKnguJPguLANCivguK3guLHguITguKPguJnguLLguI8g4LiB4Li04LiV4LiV4Li04LmB4Liq4LiH4LiY4Lij4Lij4LihDQor4Lit4Lix4LiE4Lij4Lie4Lix4LiS4LiZ4LmMIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4reC4seC4hOC4o+C5gOC4iuC4qeC4kOC5jCDguITguIfguYDguIjguKPguLTguI0NCivguK3guLHguITguKPguYDguJTguIog4Lit4Liy4Lij4Li14Lii4LmM4Liq4LiB4Li44LilDQor4Lit4Lix4LiH4LiB4Li54LijIOC4m+C4suC4peC4teC4p+C4h+C4qOC5jA0KK+C4reC4seC4h+C4hOC4k+C4siDguITguLPguKrguLjguJnguJfguKMNCivguK3guLHguIfguITguJPguLIg4LmC4LiK4LiV4Li04LiC4LiI4Lij4LmA4LiB4Li14Lii4Lij4LiV4Li0DQor4Lit4Lix4LiH4LiE4LiT4LiyIOC4l+C4reC4h+C4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4reC4seC4h+C4hOC4k+C4siDguYDguJvguLXguYjguKLguKHguKrguLjguILguKfguLHguJLguJnguYwNCivguK3guLHguIfguITguJPguLIg4LmA4Lih4LiY4Lii4Liy4Lig4LiyDQor4Lit4Lix4LiH4LiE4LiT4LiyIOC4p+C4suC4k+C4tOC4iuC4p+C4tOC5gOC4qOC4qeC4geC4uOC4pQ0KK+C4reC4seC4h+C4hOC4k+C4siDguKrguLjguILguKrguLTguJfguJjguLTguYwNCivguK3guLHguIfguITguJPguLIg4Lit4Li04LiZ4LiX4Lij4LmC4LiB4LmA4Lio4LioDQor4Lit4Lix4LiH4LiE4Liy4LijIOC4p+C4seC4iuC4o+C4muC4ueC4o+C4nuC4suC4iuC4seC4og0KK+C4reC4seC4h+C4quC4meC4siDguITguIrguKPguLHguIHguKnguYwNCivguK3guLHguIfguKrguJnguLIg4LmA4Lil4Li04Lio4Lic4LiB4Liy4LiB4Li44LilDQor4Lit4Lix4LiH4LmA4LiU4LijIOC4iOC4ueC5gOC4meC4teC4ouC4o+C5jA0KK+C4reC4seC4iOC4iOC4k+C4siDguJTguLTguJbguLXguKrguKfguLHguKrguJTguLTguYwNCivguK3guLHguIjguInguKPguLIg4LiB4Lil4Li04LmI4LiZ4Lir4Lit4LihDQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC5gOC4guC4oeC4quC4tOC4o+C4tOC5guC4iuC4hA0KK+C4reC4seC4iOC4ieC4o+C4siDguIjguLTguJXguKPguJnguLjguKfguLHguJLguJnguYzguIHguLjguKUNCivguK3guLHguIjguInguKPguLIg4LiK4Li34LmI4LiZ4Liq4Li44Lin4Lij4Lij4LiTDQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC4lOC4tOC4qeC4kOC4reC4tOC4meC4l+C4o+C5jA0KK+C4reC4seC4iOC4ieC4o+C4siDguJfguK3guIfguKHguLUNCivguK3guLHguIjguInguKPguLIg4LiZ4Li04Lil4Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC4m+C4peC4t+C5ieC4oeC4reC4uOC4l+C4ow0KK+C4reC4seC4iOC4ieC4o+C4siDguJ7guLTguIrguI3guYzguYDguKXguLTguKjguIrguLLguI0NCivguK3guLHguIjguInguKPguLIg4Lih4Liy4Lio4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC4peC4p+C4iuC4peC4suC4hOC4oQ0KK+C4reC4seC4iOC4ieC4o+C4siDguKfguLHguIrguKPguIHguLjguKUNCivguK3guLHguIjguInguKPguLIg4Lio4Lij4Li14LmA4Lil4LmH4LiB4LiU4Li1DQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC4quC4suC4o+C4nuC4tOC4oeC4nuC4sg0KK+C4reC4seC4iOC4ieC4o+C4siDguKrguLjguKfguLTguJfguKLguLLguJ7guKPguKrguIHguLjguKUNCivguK3guLHguIjguInguKPguLIg4Lit4LiU4Li04Lio4Lix4LiB4LiU4Li04LmM4LiB4Li04LiV4LiV4Li0DQor4Lit4Lix4LiI4LiJ4Lij4LiyIOC5gOC4reC4geC4iOC4s+C4meC4h+C4hOC5jA0KK+C4reC4seC4iOC4ieC4o+C4suC4nuC4seC4meC4mOC5jCDguITguLHguJ7guJfguLDguJnguLLguKfguLTguJkNCivguK3guLHguIjguInguKPguLLguKfguKPguKPguJMg4LmA4Lig4LiV4Lij4Liy4Lij4Lix4LiV4LiZ4LmMDQor4Lit4Lix4LiI4LiJ4Lij4Li04Lii4LiyIOC5gOC4quC4o+C4tOC4oeC4l+C4reC4hw0KK+C4reC4seC4iOC4ieC4o+C4teC4ouC5jCDguK3guKHguKPguYDguKXguLTguKjguKfguLTguKHguLLguJkNCivguK3guLHguIrguIzguLIg4LiV4Lix4LmJ4LiH4LiV4Li04Lib4LiB4Lij4LiT4LmMDQor4Lit4Lix4LiK4LiZ4LiyIOC4peC4suC4oOC4q+C4peC4suC4og0KK+C4reC4seC4iuC4o+C4suC4oOC4o+C4k+C5jCDguKrguLjguILguYDguIHguKnguKENCivguK3guLHguI3guIrguI7guLIg4LmA4Lit4Li14LmI4Lii4Lih4Lib4Lij4Liw4LiU4Li04Lip4LiQ4LmM4Lig4Lix4LiTDQor4Lit4Lix4LiN4LiK4LiZ4LiyIOC5gOC4m+C4peC5iOC4h+C4iOC4tOC4meC4lOC4suC5gOC4o+C4t+C4reC4hw0KK+C4reC4seC4jeC4iuC4meC4tSDguJ7guIfguKjguYzguJjguLXguKPguKDguLLguJ4NCivguK3guLHguI3guIrguKXguLUg4LiB4Liy4LiZ4LiU4LiyDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4hOC4h+C4geC4seC4peC4m+C5jA0KK+C4reC4seC4jeC4iuC4peC4tSDguIjguLHguYjguKfguYHguIjguYjguKHguYPguKoNCivguK3guLHguI3guIrguKXguLUg4LiK4Lih4Lij4LiqDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4reC4seC4jeC4iuC4peC4tSDguJXguLHguJnguJXguLTguKHguLTguJXguKMNCivguK3guLHguI3guIrguKXguLUg4LiY4LiZ4Liw4Lib4Lij4LiwDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4muC4seC4p+C4l+C4reC4hw0KK+C4reC4seC4jeC4iuC4peC4tSDguJvguLTguKLguLDguKrguLLguJjguLjguIHguLTguIgNCivguK3guLHguI3guIrguKXguLUg4Lie4Li04LiZ4LiX4Li44Lie4Li14Lij4LmC4LiB4Lin4Li04LiXDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4oeC4h+C4hOC4peC5gOC4iOC4o+C4tOC4jQ0KK+C4reC4seC4jeC4iuC4peC4tSDguKPguLjguYjguIfguKPguLHguJXguJnguLLguK3guLjguJrguKUNCivguK3guLHguI3guIrguKXguLUg4Lin4LiH4Lio4LmM4LiX4Li04LihDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4p+C4tOC5guC4o+C4iOC4meC5jOC4mOC4meC4sOC4iuC4seC4og0KK+C4reC4seC4jeC4iuC4peC4tSDguKjguLjguKDguKfguKPguKPguJMNCivguK3guLHguI3guIrguKXguLUg4Liq4Li44LiC4Li44Lih4Lin4Liy4LiZ4Li04LiK4LiB4Li44LilDQor4Lit4Lix4LiN4LiK4Lil4Li1IOC4q+C4peC5iOC4reC4meC4nuC5gOC4geC5ieC4sg0KK+C4reC4seC4jeC4iuC4peC4tSDguK3guLTguJnguJfguKPguYzguJfguK3guIcNCivguK3guLHguI3guIrguLHguI0g4LiE4Liz4LiV4LiyDQor4Lit4Lix4LiN4LiK4Lix4LiZIOC4p+C4uOC4kuC4tOC4nuC4pOC4geC4qeC5jA0KK+C4reC4seC4jeC4iuC4uOC4peC4tSDguKrguLjguYLguKDguJfguLHguKINCivguK3guLHguI3guI3guLLguJXguYwg4LmE4Lie4LiI4Li04LiV4Lij4Liy4LiZ4LiZ4LiX4LmMDQor4Lit4Lix4LiN4LmA4LiK4Li04LiNIOC4iOC4seC4meC4l+C4o+C4uOC5gOC4muC4geC4qeC4sg0KK+C4reC4seC4kOC4nuC4pSDguYTguIrguKLguKPguLHguIHguKnguYwNCivguK3guLHguJXguJbguJ7guKMg4Lil4Lix4Lia4LmE4Lie4Lij4Li1DQor4Lit4Lix4LiY4Lii4LiyIOC4muC4uOC4jeC4jeC4sOC4lOC4tOC4qeC4kOC5jA0KK+C4reC4seC5iOC4mSDguYHguIvguYjguIjguLTguKcNCivguK3guLHguJrguJTguLjguKXguYDguKXguLLguLAg4Liq4Li44LiC4LiW4Liy4Lin4LijDQor4Lit4Lix4Lib4Liq4LijIOC4meC4tOC4l+C4seC4qOC4meC4iOC4suC4o+C4uOC4geC4uOC4pQ0KK+C4reC4seC4oeC4nuC4oyDguIHguKHguKXguJrguKPguLTguKrguLjguJfguJjguLTguYwNCivguK3guLHguKHguJ7guKMg4LmB4LiB4LmI4LiZ4LiB4Lij4Liw4LiI4LmI4Liy4LiHDQor4Lit4Lix4Lih4Lie4LijIOC4iOC4leC4uOC4o+C4p+C4seC4kuC4meC4sg0KK+C4reC4seC4oeC4nuC4oyDguYDguIjguJnguK3guJnguLHguJnguJXguYzguJ7guKMNCivguK3guLHguKHguJ7guKMg4LiK4Li34LmI4LiZ4LmD4LiIDQor4Lit4Lix4Lih4Lie4LijIOC5geC4i+C5iOC5guC4hOC5ieC4pw0KK+C4reC4seC4oeC4nuC4oyDguJXguLjguJPguKrguLjguKfguKPguKPguJMNCivguK3guLHguKHguJ7guKMg4LiY4LiZ4Liq4Li44Lin4Lij4Lij4LiT4LmA4LiB4Lip4LihDQor4Lit4Lix4Lih4Lie4LijIOC4muC4o+C4o+C4lOC4suC4qOC4seC4geC4lOC4tOC5jA0KK+C4reC4seC4oeC4nuC4oyDguJvguKPguLLguIfguITguYzguKPguLHguJXguJnguYwNCivguK3guLHguKHguJ7guKMg4Lie4Lij4Lih4LiV4Lix4LiZDQor4Lit4Lix4Lih4Lie4LijIOC4nuC4uOC4peC5gOC4peC5h+C4gQ0KK+C4reC4seC4oeC4nuC4oyDguKHguLLguJrguIjguLDguJrguIENCivguK3guLHguKHguJ7guKMg4Lij4Li44LmI4LiH4LmA4Liq4Lij4Li14Lij4Lix4LiV4LiZ4LmMDQor4Lit4Lix4Lih4Lie4LijIOC4p+C4h+C4qOC5jOC5gOC4peC4tOC4qOC4n+C5ieC4sg0KK+C4reC4seC4oeC4nuC4oyDguKfguLTguYLguJnguJfguLHguKINCivguK3guLHguKHguJ7guKMg4Lio4Li04Lij4Li04LmA4Lin4LiK4Lie4Lix4LiZ4LiY4Li44LmMDQor4Lit4Lix4Lih4Lie4LijIOC4quC4suC4o+C4sOC4nuC4h+C4qeC5jA0KK+C4reC4seC4oeC4nuC4oyDguKrguLnguIfguKrguKfguYjguLLguIcNCivguK3guLHguKHguJ7guKMg4Lit4Lih4Lij4LiB4Li44Lil4Liy4LiI4Liy4Lij4Lii4LmMDQor4Lit4Lix4Lih4Lie4LijIOC4reC4uOC5iOC4meC5gOC4quC4teC4ouC4oQ0KK+C4reC4seC4oeC4nuC4o+C4tOC4qCDguYDguKrguLfguK3guKfguKPguKPguJPguKjguKPguLUNCivguK3guLHguKHguJ7guKfguLHguJkg4Lie4Lil4Lit4Lii4LmA4Lie4LiK4Lij4Lih4LiT4Li1DQor4Lit4Lix4Lih4Lie4LiyIOC5hOC4guC5iOC4oeC4uOC4gQ0KK+C4reC4seC4oeC4nuC4tOC4geC4siDguYHguIvguYjguK3guLbguYnguIcNCivguK3guLHguKHguKDguLIg4LiI4Li04Lij4LmA4LiI4Li04LiU4LiZ4Lig4LiyDQor4Lit4Lix4Lih4Lij4LiyIOC4hOC4uOC4k+C5gOC4iuC4teC4ouC4ow0KK+C4reC4seC4oeC4o+C4tOC4meC4l+C4o+C5jCDguJnguLLguKPguLLguIoNCivguK3guLHguKXguJTguLjguKXguYDguKXguLLguLAg4LmB4LiU4LiH4LmC4LiB4LmA4Lih4LiZDQor4Lit4Lix4Lio4LiZ4Li14Lii4LmMIOC4muC4uOC4jeC4qOC4tOC4o+C4tOC4hOC4s+C4iuC4seC4og0KK+C4reC4seC4qOC4p+C4tOC4mSDguYHguIjguYnguIfguIHguKPguLDguIjguYjguLLguIcNCivguK3guLHguKjguKfguLTguJkg4Lio4Lij4Li14Liq4Lin4Lix4Liq4LiU4Li04LmMDQor4Lit4Lix4Lip4LiO4Liy4LiH4LiE4LmMIOC4kOC4suC4meC4sOC4p+C4ow0KK+C4reC4seC4quC4lOC4suC4h+C4hOC5jCDguJvguLTguYjguJnguKrguLjguKfguKPguKPguJPguYwNCivguK3guLHguKrguK3guLLguKPguLUg4LiB4Lix4Liq4LiV4Liy4Lin4Li1DQor4Lit4Liy4LiE4LihIOC4hOC4o+C5ieC4suC4oeC4qOC4o+C4tQ0KK+C4reC4suC4hOC4oSDguJnguLTguJXguKLguLLguIHguKPguJPguYwNCivguK3guLLguITguKEg4LmA4Lif4Li34LmI4Lit4LiH4Lif4Li44LmJ4LiHDQor4Lit4Liy4LiE4LihIOC4qOC4suC4meC4leC4tOC4quC4o+C4ow0KK+C4reC4suC4hOC4oSDguK3guLHguJXguJbguLDguKrguLHguKHguJrguLjguJPguJPguLANCivguK3guLLguIgg4Lin4Liq4Li44LiC4Lix4LiZ4LiY4LmMDQor4Lit4Liy4LiI4Liy4Lij4Li1IOC4q+C4reC4oeC5gOC4qOC4o+C4qeC4kOC4tQ0KK+C4reC4suC4iOC4tOC4meC4leC5jCDguYDguKrguLXguYjguKLguIfguYLguIrguITguK3guKLguLnguYgNCivguK3guLLguIrguLXguKfguLAg4Lih4LiH4LiE4Lil4Liq4LiB4Li44Lil4Lik4LiX4LiY4Li04LmMDQor4Lit4Liy4LiT4Lix4LiV4Li0IOC4nuC4seC4meC4mOC4uOC4p+C4lOC4tQ0KK+C4reC4suC4lOC4ueC4peC4ouC5jCDguKLguLHguJnguJXguKPguJ7guLTguJnguLTguIgNCivguK3guLLguJfguKMg4LmB4LiK4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQDQor4Lit4Liy4LiX4LijIOC4o+C4suC4oeC5guC4geC4oeC4uOC4lw0KK+C4reC4suC4l+C4o+C4l+C4tOC4nuC4ouC5jCDguJ7guKfguIfguKHguJPguLUNCivguK3guLLguJfguLTguJXguKLguYwg4LmD4LiI4Lia4Li44LiNDQor4Lit4Liy4LiX4Li04LiV4Lii4LmMIOC4oeC4suC4meC4quC4seC4iOC4iOC4mOC4o+C4o+C4oQ0KK+C4reC4suC4l+C4tOC4leC4ouC5jCDguK3guKfguKjguLTguKPguLTguJ7guIfguKnguYwNCivguK3guLLguJnguJnguJfguYwg4LiI4Li14Lij4LiU4Li04Lip4LiQ4LmMDQor4Lit4Liy4LiZ4LiZ4LiX4LmMIOC5gOC4nuC5h+C4iuC4o+C4meC5ieC4reC4og0KK+C4reC4suC4meC4meC4l+C5jCDguKrguKPguLDguJfguK3guIfguYHguJ4NCivguK3guLLguJnguLHguJnguJXguYwg4Lit4Li04LiQ4Liq4Li44Lin4Lij4Lij4LiTDQor4Lit4Liy4LiZ4Li14LiV4LiyIOC4iOC4suC4p+C4suC4peC4sg0KK+C4reC4suC4meC4uOC4oOC4suC4niDguKrguLjguJnguK3guJnguLHguJnguJXguYwNCivguK3guLLguJ7guKMg4LmB4LiL4LmI4Lil4Li14LmJDQor4Lit4Liy4Lig4Lij4LiT4LmMIOC4geC4uOC4peC4p+C4seC4kuC5guC4lw0KK+C4reC4suC4oOC4o+C4k+C5jCDguYPguIjguJfguLHguKjguJnguYzguIHguLjguKUNCivguK3guLLguKDguKPguJPguYwg4LiV4Lix4LmJ4LiH4Lio4Li04Lij4Li04LmA4Liq4LiW4Li14Lii4LijDQor4Lit4Liy4Lig4Lij4LiT4LmMIOC4meC4tOC5guC4o+C4iOC4meC5jA0KK+C4reC4suC4oOC4o+C4k+C5jCDguJ7guLLguJnguJfguK3guIcNCivguK3guLLguKDguKPguJPguYwg4Lij4Lix4LiV4LiZ4Liw4LiE4Li44Lib4LiV4LmMDQor4Lit4Liy4Lig4Lij4LiT4LmMIOC4qOC4tOC4peC4reC4uOC4lOC4oQ0KK+C4reC4suC4oOC4o+C4k+C5jCDguKrguYLguKPguIrguKfguLTguIHguKrguLTguJUNCivguK3guLLguKDguLHguJfguKPguLIg4LiY4Lij4Lij4Lih4LmA4LiI4Lij4Li04LiNDQor4Lit4Liy4Lig4LiyIOC5guC4ieC4oeC4qOC4o+C4tQ0KK+C4reC4suC4oOC4siDguKjguKPguLXguIfguLLguKHguJzguYjguK3guIcNCivguK3guLLguKDguLLguIHguKMg4Lie4Li04Lie4Lix4LiS4LiZ4LmM4LiI4Lij4Li04Lii4LiyDQor4Lit4Liy4Lig4Liy4Lie4Lij4Lij4LiTIOC4leC4o+C4sOC4geC4suC4o+C4quC4tOC4h+C4q+C4meC4suC4lw0KK+C4reC4suC4oOC4suC4oOC4o+C4k+C5jCDguKrguLjguILguKrguLHguKINCivguK3guLLguKHguYjguKfguKIg4LmB4LiL4LmI4LmC4LiV4LmL4LinDQor4Lit4Liy4Lih4Li44LmI4LiiIOC5geC4i+C5iOC4leC4seC4mQ0KK+C4reC4suC4o+C4lOC4siDguIHguKPguLjguJPguLLguKLguLTguYjguIfguJ7guLHguJnguJjguYwNCivguK3guLLguKPguKHguJPguYwg4LmB4LiI4LmI4Lih4LiU4Liy4LinDQor4Lit4Liy4Lij4Lih4LiT4LmMIOC4nOC4peC5gOC4iOC4o+C4tOC4jQ0KK+C4reC4suC4o+C4oeC4k+C5jCDguKrguIfguKfguJnguJfguKPguLHguJ7guKLguYwNCivguK3guLLguKPguKHguKLguYwg4LiI4Lix4LmI4LiZ4Liu4Lin4LiaDQor4Lit4Liy4Lij4Lih4Lii4LmMIOC4oeC4ueC5gOC4l+C4teC4og0KK+C4reC4suC4o+C4ouC4sCDguJXguKPguLXguKjguLjguIHguKPguYwNCivguK3guLLguKPguKLguLIg4LiH4Liy4Lih4Lin4LiH4Lio4LmM4LmA4Lin4LiK4LiB4Li44LilDQor4Lit4Liy4Lij4Lii4LiyIOC4l+C4tOC4oeC4geC4uOC4pQ0KK+C4reC4suC4o+C4ouC4siDguJ7guLTguJ7guLHguJfguJjguIHguLjguKjguKXguIHguLjguKUNCivguK3guLLguKPguKLguLIg4Lio4LiV4Lix4Lip4LmA4LiQ4Li14Lii4LijDQor4Lit4Liy4Lij4Lii4LiyIOC4reC4tOC4meC4l+C4o+C5jOC4iOC4seC4meC4l+C4tuC4gQ0KK+C4reC4suC4o+C4seC4geC4qeC5jCDguJvguLjguYnguKLguJXguKPguLDguIHguLnguKUNCivguK3guLLguKPguLTguIrguKLguYwg4LiE4Li44LiT4Lib4Lij4Liw4Liq4LieDQor4Lit4Liy4Lij4Li1IOC4geC4reC4h+C5gOC4m+C5h+C4hw0KK+C4reC4suC4o+C4tSDguYHguIjguYnguIfguKrguKfguYjguLLguIcNCivguK3guLLguKPguLUg4LiU4Li04Lip4Liy4Lig4Li04Lij4Lih4Lii4LmMDQor4Lit4Liy4Lij4Li1IOC4meC4suC4hOC4sOC4quC4tOC4h+C4q+C5jA0KK+C4reC4suC4o+C4tSDguJ7guKPguKvguKHguYLguJPguKHguLHguKINCivguK3guLLguKPguLUg4Lii4Li04LmJ4Lih4Lit4LmI4LizDQor4Lit4Liy4Lij4Li1IOC4p+C4tOC5hOC4peC4p+C4o+C4o+C4kw0KK+C4reC4suC4o+C4tSDguKrguLXguJXguLDguKrguLTguJfguJjguLTguYwNCivguK3guLLguKPguLUg4Lit4Lix4Lio4Lij4Lix4Liq4LiB4LijDQor4Lit4Liy4Lij4Li14Lie4LijIOC4p+C4h+C4qeC5jOC4oeC4k+C4teC5gOC4l+C4qA0KK+C4reC4suC4o+C4teC4ouC5jOC4p+C4o+C4o+C4kyDguJrguLHguKfguYDguJzguLfguYjguK3guJkNCivguK3guLLguKPguLXguKLguLIg4Lil4Li04Lii4Liw4LiB4Li44Lil4Lie4LiH4Lio4LmMDQor4Lit4Liy4Lij4Li14Lii4LmMIOC4geC4tOC4leC4tOC4quC4suC4o+C4qOC4seC4geC4lOC4tOC5jA0KK+C4reC4suC4o+C4teC4ouC5jCDguITguLjguYnguKHguKjguLTguKPguLQNCivguK3guLLguKPguLXguKLguYwg4LmA4LiI4Li14Lii4LmE4Lie4Lia4Li54Lil4Lii4LmMDQor4Lit4Liy4Lij4Li14Lii4LmMIOC4i+C4t+C5iOC4reC4iuC4seC4ouC5gOC4iOC4o+C4tOC4jQ0KK+C4reC4suC4o+C4teC4ouC5jCDguYDguJTguYjguJnguKjguLTguKPguLTguJ7guIfguKnguYwNCivguK3guLLguKPguLXguKLguYwg4LiX4Li04Lie4Lii4LmM4LiN4Liy4LiZ4Lin4LiH4Lio4LmMDQor4Lit4Liy4Lij4Li14Lii4LmMIOC4muC4tOC4meC4q+C4oeC4seC4lA0KK+C4reC4suC4o+C4teC4ouC5jCDguJ7guIfguKjguYzguJ7guLHguJLguJnguLLguJnguLjguKPguLHguIHguKnguYwNCivguK3guLLguKPguLXguKLguYwg4LmC4Lie4LiY4Li04Liq4Li44Lin4Lij4Lij4LiTDQor4Lit4Liy4Lij4Li14Lii4LmMIOC5gOC4oeC4t+C4reC4h+C4quC4h+C4p+C4mQ0KK+C4reC4suC4o+C4teC4ouC5jCDguKXguLTguYjguKHguKfguIfguKjguYwNCivguK3guLLguKPguLXguKLguYwg4Lio4Lij4Lib4Lij4Liw4LmA4Liq4Lij4Li04LiQ4LiB4Li44LilDQor4Lit4Liy4Lij4Li14Lii4LmMIOC4quC4p+C5iOC4suC4h+C4qOC4o+C4tQ0KK+C4reC4suC4o+C4teC4ouC5jCDguKrguLjguJnguJ7guIfguKnguYzguKjguKPguLUNCivguK3guLLguKPguLXguKLguYwg4Lir4Li44LiV4Liw4Lih4Liy4LiZDQor4Lit4Liy4Lij4Li14Lii4LmMIOC4reC4uOC4lOC4oeC4hOC4k+C4suC4o+C4seC4leC4meC5jA0KK+C4reC4suC4o+C4teC4o+C4seC4leC4meC5jCDguYDguIjguJXguJXguYzguKrguKPguKPguKfguLTguKrguKPguJPguYwNCivguK3guLLguKPguLXguKPguLHguJXguJnguYwg4Lia4Li44LiN4LiX4Lin4Li1DQor4Lit4Liy4Lij4Li14Lij4Lix4LiV4LiZ4LmMIOC4peC4tOC5ieC4oeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4quC4geC4uOC4pQ0KK+C4reC4suC4o+C4teC4o+C4seC4leC4meC5jCDguYHguKvguJjguLHguI3guKfguLTguKrguLTguJANCivguK3guLLguKPguLXguKfguKPguKPguJMg4LiY4Liy4Lij4Liy4LiY4Li14Lij4LmA4Lio4Lij4Lip4LiQ4LmMDQor4Lit4Liy4Lij4Li14LmA4Lif4LiZIOC4ruC4sOC4i+C4suC4meC4tQ0KK+C4reC4suC4peC4seC4oiDguKrguLjguKPguLDguYDguKPguLfguK3guIfguIrguLHguKINCivguK3guLLguKfguLjguJLguLQg4Liq4LiH4Lin4LiZ4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lit4Liy4Lin4Li44LiYIOC4qOC4o+C4teC4iOC4seC4meC4l+C4o+C5jA0KK+C4reC4suC4quC4siDguILguKLguLHguJnguYDguILguLXguKLguJkNCivguK3guLLguK3guLXguIvguYrguLAg4LmA4Lir4Lih4Liq4Lih4Lix4LiZDQor4Lit4Liy4LmA4Lii4LiB4Li44Lih4Liy4LijIOC4m+C4suC4p+C4sg0KK+C4reC5iOC4suC4hyDguYHguIvguYjguYDguJXguLXguKINCivguK3guYvguLIg4Lio4Lij4Li14Lit4Liz4LmE4LieDQor4Lit4Liz4LiZ4Lin4LiiIOC5gOC4geC4qeC4muC4s+C4o+C4uOC4hw0KK+C4reC4s+C4meC4p+C4oiDguITguKPguLjguJHguJnguLINCivguK3guLPguJnguKfguKIg4LiI4Lix4LiZ4LiX4LiwDQor4Lit4Liz4LiZ4Lin4LiiIOC4ieC4seC4leC4o+C4iuC4suC4jeC4oeC4h+C4hOC4pQ0KK+C4reC4s+C4meC4p+C4oiDguYTguIrguKLguYLguKPguIjguJnguYwNCivguK3guLPguJnguKfguKIg4LmA4LiV4LiK4Liw4Lio4Lij4Li1DQor4Lit4Liz4LiZ4Lin4LiiIOC4l+C4seC4qOC4meC5gOC4oeC4mOC4tOC4mQ0KK+C4reC4s+C4meC4p+C4oiDguJnguLLguITguJnguLLguKfguLINCivguK3guLPguJnguKfguKIg4Lia4Li44LiN4LiX4Lij4Lix4LiB4Lip4LiyDQor4Lit4Liz4LiZ4Lin4LiiIOC4m+C4seC5ieC4meC4h+C4suC4oQ0KK+C4reC4s+C4meC4p+C4oiDguJ7guKPguYDguKXguLTguKjguJvguLTguJXguLQNCivguK3guLPguJnguKfguKIg4LmA4Lie4LiK4Lij4LmB4Liq4LiHDQor4Lit4Liz4LiZ4Lin4LiiIOC4oeC4suC4quC4sg0KK+C4reC4s+C4meC4p+C4oiDguKPguLHguJXguJnguKfguLTguYTguKXguIHguLjguKUNCivguK3guLPguJnguKfguKIg4Lin4LiH4Lio4LmM4Lin4LiT4Li04LiKDQor4Lit4Liz4LiZ4Lin4LiiIOC5gOC4p+C4iuC4quC4uOC4geC4o+C4o+C4oQ0KK+C4reC4s+C4meC4p+C4oiDguKrguJnguKvguKXguLUNCivguK3guLPguJnguKfguKIg4Liq4Li14LiZ4Lin4LiZDQor4Lit4Liz4LiZ4Lin4LiiIOC4quC4uOC4p+C4o+C4o+C4k+C4m+C4suC4pQ0KK+C4reC4s+C4meC4p+C4oiDguKvguK3guKLguKrguLHguIfguILguYwNCivguK3guLPguJnguKfguKIg4Lit4Lix4Lio4Lin4Lio4Lij4Li14Liq4Li44Lin4Lij4Lij4LiTDQor4Lit4Liz4LiZ4Lin4LiiIOC4ruC4suC4i+C4seC4meC4muC4tOC4mQ0KK+C4reC4s+C4meC4p+C4ouC4nuC4oyDguKjguLTguKPguLTguJ7guIfguKnguYzguYTguJ7guJrguLnguKXguKLguYwNCivguK3guLPguJnguLLguIgg4LiB4Liy4Lij4Li44LiT4Lih4Lij4Lij4LiE4Lic4LilDQor4Lit4Liz4LiZ4Liy4LiIIOC4iOC4h+C4reC4lOC4tOC5gOC4o+C4geC4peC4suC4oA0KK+C4reC4s+C4meC4suC4iCDguIrguKLguKrguKHguLLguJnguJnguJfguYwNCivguK3guLPguJnguLLguIgg4LiV4Lij4Li14Lii4Liy4LiZ4LiZ4LiX4LmMDQor4Lit4Liz4LiZ4Liy4LiIIOC4mOC4teC4o+C4sOC4m+C4o+C4sOC4lOC4tOC4qeC4kOC4nOC4pQ0KK+C4reC4s+C4meC4suC4iCDguJrguLjguI3guYDguJXguYfguKENCivguK3guLPguJnguLLguIgg4Lie4Lij4Lir4Lih4LiZ4Li04LiV4Lii4LmMDQor4Lit4Liz4LiZ4Liy4LiIIOC4oeC4h+C4hOC4peC4nuC4seC4meC4mOC5jA0KK+C4reC4s+C4meC4suC4iCDguYDguKPguLfguK3guJnguJfguLTguJ7guKLguYwNCivguK3guLPguJnguLLguIgg4LmE4Lin4LiI4LiH4LmA4LiI4Lij4Li04LiNDQor4Lit4Liz4LiZ4Liy4LiIIOC4quC4suC4ouC4lOC4p+C4hw0KK+C4reC4s+C4meC4suC4iCDguYHguKrguIfguKjguLTguKPguLQNCivguK3guLPguJnguLLguIgg4Lit4Liz4LiZ4Liy4LiI4Liq4Li04LiX4LiY4Li04LiK4Lix4LiiDQor4Lit4Liz4Lie4LiZIOC4ouC4tOC5ieC4oeC4quC4oeC4muC4seC4leC4tA0KK+C4reC4s+C4nuC4oyDguITguLnguJPguKrguKfguLHguKrguJTguLTguYwNCivguK3guLPguJ7guKMg4LiU4Lit4LiZ4LmE4Lie4Lij4LmA4Lie4LiK4LijDQor4Lit4Liz4Lie4LijIOC4muC4seC4p+C4iuC4seC4hw0KK+C4reC4s+C4nuC4oyDguKDguLnguYjguYDguIHguKXguLXguYnguKLguIcNCivguK3guLPguJ7guKMg4LmE4Lin4LmJ4LiX4LmA4Lia4Lij4LiK4LiX4LmMDQor4Lit4Liz4Lie4LijIOC5geC4quC4h+C5gOC4nuC4iuC4ow0KK+C4reC4s+C4nuC4o+C4o+C4kyDguJfguKfguLXguKHguLLguKPguJYNCivguK3guLPguJ7guKUg4LmA4LiB4Liy4Liw4LiB4Liy4LiB4Lil4Liy4LiHDQor4Lit4Liz4Lie4LilIOC4iuC4s+C4meC4suC4jeC4geC4tOC4iA0KK+C4reC4s+C4nuC4pSDguJnguLLguKHguKrguJnguJjguLQNCivguK3guLPguJ7guKUg4LmC4Lie4LiY4Li04LmM4Lie4Li44LmI4Lih4LmA4Lii4LmH4LiZDQor4Lit4Liz4Lie4LilIOC4p+C4teC4o+C4sOC4leC4sOC4meC4meC4l+C5jA0KK+C4reC4s+C4nuC4pSDguKvguLDguKPguLTguJnguKrguLjguJUNCivguK3guLPguJ7guLHguJkg4LiE4Lil4LmJ4Liy4Lii4LiK4Lix4LiHDQor4Lit4Liz4Lie4Lix4LiZIOC4nOC4peC4q+C5ieC4sg0KK+C4reC4s+C4nuC4seC4mSDguKrguLjguILguIjguK3guJQNCivguK3guLPguJ7guLHguJnguJjguYwg4LiK4Lin4LiB4Li44LilDQor4Lit4Liz4Lie4Lix4LiZ4Lie4LiH4Lip4LmMIOC5guC4lOC5gOC4o+C4teC5iOC4ouC4mQ0KK+C4reC4s+C4oOC4siDguIjguLHguJnguJfguKPguITguLjguJPguLLguKDguLLguKoNCivguK3guLPguKDguLIg4Lib4Liy4LiZ4Lij4Lix4LiB4Lip4LiyDQor4Lit4Liz4Lig4LiyIOC4quC4uOC4guC4reC4suC4o+C4oeC4ouC5jA0KK+C4reC4s+C4o+C4uOC4hyDguKrguKPguKPguJ7guKrguLTguJfguJjguLTguYzguKfguIfguKjguYwNCivguK3guLPguYTguJ4g4LmB4LiB4LmJ4Lin4LmB4LiI4LmI4LihDQor4Lit4Liz4LmE4LieIOC4iOC4tOC4leC4o+C4oeC4tOC4leC4ow0KK+C4reC4s+C5hOC4niDguYTguIrguKLguJ7guLjguJfguJgNCivguK3guLPguYTguJ4g4LiW4Li44LiH4LiX4Lij4Lix4Lie4Lii4LmMDQor4Lit4Liz4LmE4LieIOC4muC4seC4k+C4keC4tOC4lQ0KK+C4reC4s+C5hOC4niDguJzguKXguJTguLUNCivguK3guLPguYTguJ4g4Lig4Lih4Lij4Liq4Li44Lin4Lij4Lij4LiTDQor4Lit4Liz4LmE4LieIOC4o+C4seC4leC4meC4o+C4seC4leC4meC5jA0KK+C4reC4s+C5hOC4niDguKfguLTguIrguLLguJfguLLguJnguKrguIHguLjguKUNCivguK3guLPguYTguJ4g4Liq4Lih4Lix4LiE4Lij4LmE4LiX4LiiDQor4Lit4Liz4LmE4LieIOC4quC4uOC4o+C4h+C4hOC5jOC5gOC4peC4tOC4qA0KK+C4reC4s+C5hOC4niDguK3guKLguLnguYjguKjguKPguLXguYDguIjguKPguLTguI0NCivguK3guLPguYTguJ7guJ7guKPguKPguJMg4Lin4Li44LiS4Li04LiY4Lij4Lij4Lih4LiI4Liy4Lij4Li1DQor4Lit4Li04LmK4LiB4LiV4Li14LmLIOC5geC4i+C5iOC5gOC4muC5ig0KK+C4reC4tOC4h+C4reC4oyDguKfguLTguYDguIrguLXguKLguKPguKrguKPguKPguITguYwNCivguK3guLTguYrguJTguIvguYnguIcg4LmB4LiL4LmI4Liu4LmJ4LitDQor4Lit4Li04LiX4LiY4Li04LiK4Lix4LiiIOC4quC4uOC4q+C4seC4leC4luC4suC4nuC4ow0KK+C4reC4tOC4l+C4mOC4tOC4nuC4pSDguYPguIjguJXguLHguYnguIcNCivguK3guLTguJfguJjguLTguJ7guKUg4Lij4Lix4LiK4LmD4LiZ4Lin4Lij4Lij4LiTDQor4Lit4Li04LiX4LiY4Li04Lii4LiyIOC5geC4iOC5iOC4oeC4oeC4tOC4mQ0KK+C4reC4tOC4l+C4mOC4tOC5guC4o+C4iOC4meC5jCDguJ7guIfguKnguYzguJ7guLTguJfguLHguIHguKnguYwNCivguK3guLTguJnguJfguKPguKjguLHguIHguJTguLTguYwg4LiX4Lit4LiH4LiU4Li1DQor4Lit4Li04LiZ4LiX4LmM4Lit4LijIOC4nuC4seC4meC4mOC4p+C4suC4o+C4tQ0KK+C4reC4tOC4meC4l+C4tOC4o+C4siDguJXguLHguJnguJvguIHguLTguIjguKfguIfguKjguYwNCivguK3guLTguJnguJfguLTguKPguLIg4LmA4Lin4LiK4LiY4Lij4Lij4LihDQor4Lit4Li04LiZ4LiY4Li04LiU4LiyIOC5geC4i+C5iOC4peC4teC5iQ0KK+C4reC4tOC4oSDguYHguIvguYjguYDguIjguYfguIcNCivguK3guLTguYjguKHguIjguLTguJXguJXguYwg4Lit4Li44LiU4Lih4LiY4LiZ4Lig4Lix4LiX4LijDQor4Lit4Li04LmJ4Lin4LiX4LmJ4LiHIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4reC4tOC4qOC4o+C4siDguKLguIfguKLguLfguJkNCivguK3guLTguKjguYDguKPguKgg4LiJ4Lix4LiV4Lij4LmB4LiB4LmJ4Lin4LiZ4Lie4LiU4LilDQor4Lit4Li04Liq4Lij4LiwIOC4iOC4tOC4leC4oeC4teC4quC4uOC4gg0KK+C4reC4tOC4quC4o+C4siDguKrguIfguKfguJnguJ7guIfguKjguYwNCivguK3guLTguKrguKrguKPguLAg4Lic4Lil4Liy4LmA4LiB4LiV4Li4DQor4Lit4Li14LiL4LiyIOC4nuC4peC4reC4ouC4lOC4tQ0KK+C4reC4teC5i+C5gOC4leC5h+C4gSDguYHguIvguYjguYDguJXguLXguKLguKcNCivguK3guLjguIHguKTguKkg4LiK4Liy4LiN4LmA4Lil4LiC4LiyDQor4Lit4Li44LiB4Lik4Lip4LiP4LmMIOC4quC4seC4h+C4guC5jOC5geC4geC5ieC4pw0KK+C4reC4uOC4k+C4suC4meC4seC4meC4l+C4meC5jCDguKfguIfguKnguYzguKrguLHguIjguIjguLLguJnguLHguJnguJfguYwNCivguK3guLjguJTguKEg4LiB4Li24LiB4LiB4LmJ4Lit4LiHDQor4Lit4Li44LiU4LihIOC5guC4geC4quC4seC4ouC4quC4uOC4gQ0KK+C4reC4uOC4lOC4oSDguITguLPguKDguLTguKPguLDguKLguKgNCivguK3guLjguJTguKEg4LiI4Lix4LiZ4LiX4Lij4LmM4LmA4LiX4Li14LmI4Lii4LiHDQor4Lit4Li44LiU4LihIOC5gOC4iOC4o+C4tOC4jeC4qOC4o+C4tQ0KK+C4reC4uOC4lOC4oSDguIrguLLguKPguLXguJjguKPguKPguKENCivguK3guLjguJTguKEg4LmB4LiL4LmI4LiV4Lix4LmJ4LiHDQor4Lit4Li44LiU4LihIOC5geC4lOC4h+C4o+C4seC4qOC4oeC4teC5guC4quC4oOC4kw0KK+C4reC4uOC4lOC4oSDguJfguKPguIfguKHguLUNCivguK3guLjguJTguKEg4LiY4Lij4Lij4Lih4Lig4Li54Lip4Li04LiVDQor4Lit4Li44LiU4LihIOC4muC4seC4p+C4o+C4uOC5iOC4hw0KK+C4reC4uOC4lOC4oSDguJvguLLguJnguYDguJbguLfguYjguK3guJkNCivguK3guLjguJTguKEg4Lie4Lij4Lir4Lih4LmA4LiB4LiV4Li44LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lit4Li44LiU4LihIOC4nuC4uOC5iOC4oeC4nuC4p+C4hw0KK+C4reC4uOC4lOC4oSDguKDguLTguI3guYLguI3guIrguLXguJ4NCivguK3guLjguJTguKEg4Lih4Li44LiV4Lij4LiZ4Li04Lie4Lix4LiZ4LiY4Li44LmMDQor4Lit4Li44LiU4LihIOC4o+C4seC4qOC4oeC4teC4o+C4seC4h+C4qeC4teC5gOC4q+C4peC4t+C4reC4hw0KK+C4reC4uOC4lOC4oSDguKXguLXguJfguK3guIcNCivguK3guLjguJTguKEg4Lin4Liq4Li44Lin4Li04Lin4Lix4LiS4LiZ4LmMDQor4Lit4Li44LiU4LihIOC4qOC4o+C4teC4meC4nuC4hOC4uOC4kw0KK+C4reC4uOC4lOC4oSDguKjguLjguKDguKrguLTguJnguJjguLjguYwNCivguK3guLjguJTguKEg4Liq4Lix4LiZ4LiY4Li5DQor4Lit4Li44LiU4LihIOC4quC4uOC4lOC5hOC4mOC4quC4hw0KK+C4reC4uOC4lOC4oSDguYHguKrguJnguIjguLPguKvguJnguYjguLLguKINCivguK3guLjguJTguKEg4Lit4LiZ4Lix4LiZ4LiV4LmA4Liq4LiWDQor4Lit4Li44LiU4LihIOC4reC4tuC5ieC4h+C4quC4uOC4p+C4o+C4o+C4k+C4nuC4suC4meC4tOC4ig0KK+C4reC4uOC4lOC4oeC4iuC4seC4oiDguJXguLHguYnguIfguK3guKHguKPguKjguLTguKPguLQNCivguK3guLjguJTguKHguJ7guKMg4LiV4Lix4LiZ4LiK4Lix4Lii4Lih4LiH4LiE4LilDQor4Lit4Li44LiU4Lih4Lie4Lix4LiZ4LiY4Li44LmMIOC4l+C4tOC4nuC4l+C4seC4qg0KK+C4reC4uOC4lOC4oeC4peC4seC4geC4qeC4k+C5jCDguJnguJnguJfguLTguKfguKPguKPguJjguIENCivguK3guLjguJTguKHguKjguKPguLUg4LiB4Li04LiI4LiE4LmJ4LiyDQor4Lit4Li44LiU4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC5guC4geC4oeC4peC4suC4o+C4iuC4uOC4mQ0KK+C4reC4uOC4lOC4oeC4qOC4seC4geC4lOC4tOC5jCDguJjguLnguJvguKrguLjguKfguKPguKPguJMNCivguK3guLjguJTguKHguKjguLHguIHguJTguLTguYwg4Lin4LiH4Lio4LmM4Lie4Li04Lio4Liy4LilDQor4Lit4Li44LiU4Lih4Lio4Lix4LiB4LiU4Li04LmMIOC4reC4p+C4tOC4o+C4uOC4l+C4mOC4sg0KK+C4reC4uOC4lOC4oeC5gOC4lOC4iiDguIrguLLguI3guIrguKLguKjguLbguIENCivguK3guLjguJTguKMg4LmD4LiI4Lib4Lix4LiZ4LiY4Li0DQor4Lit4Li44LiU4LijIOC4nuC4tuC5iOC4h+C4l+C4reC4hw0KK+C4reC4uOC4lOC4oyDguYDguKrguJbguLXguKLguKPguKDguLLguJ7guIfguKnguYwNCivguK3guLjguJfguKMg4LmA4LiC4Lih4Liw4Lia4Li44Lil4LiB4Li44LilDQor4Lit4Li44LiX4Lix4LiiIOC5geC4geC5iOC4meC5geC4geC5ieC4pw0KK+C4reC4uOC4l+C4seC4oiDguITguLnguYHguIHguYnguKcNCivguK3guLjguJfguLHguKIg4LmD4LiI4Lib4Lij4Liw4Liq4Liy4LiXDQor4Lit4Li44LiX4Lix4LiiIOC5geC4i+C5iOC4reC4tuC5ieC4hw0KK+C4reC4uOC4l+C4seC4oiDguYDguJXguIrguLDguKPguIfguITguYwNCivguK3guLjguJfguLHguKIg4LiY4Lij4Lij4Lih4Lit4Li04LiZ4LiX4Lij4LmMDQor4Lit4Li44LiX4Lix4LiiIOC4muC4ueC4o+C4k+C4p+C4tOC4iuC4seC4ouC4qOC4tOC4peC4m+C5jA0KK+C4reC4uOC4l+C4seC4oiDguJ7guLHguJnguJjguYzguJ7guKPguLbguIHguKrguYwNCivguK3guLjguJfguLHguKIg4Lih4Li44Liq4Li04LiB4Liw4LiK4Lix4LiiDQor4Lit4Li44LiX4Lix4LiiIOC4peC4tOC5ieC4oeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C4reC4uOC4l+C4seC4oiDguYDguKfguIrguKLguLINCivguK3guLjguJfguLHguKIg4Liq4Lin4Lix4Liq4LiU4Li04LiI4Lix4LiZ4LiX4Lij4LmMDQor4Lit4Li44LiX4Lix4LiiIOC4quC4uOC4p+C4o+C4o+C4k+C4sA0KK+C4reC4uOC4l+C4seC4oiDguK3guYjguK3guJnguKPguLHguYjguKcNCivguK3guLjguJfguLHguKLguJ7guKMg4LiI4Liy4Lij4Li44LiB4Li04LiI4LmC4Liq4Lig4LiyDQor4Lit4Li44LiX4Lix4Lii4Lin4Lij4Lij4LiTIOC4iOC4seC4meC4l+C4o+C5jOC4p+C4seC4kuC4meC4suC4h+C4geC4ueC4ow0KK+C4reC4uOC4l+C4seC4ouC4p+C4o+C4o+C4kyDguJrguLHguKfguYHguIHguYnguKcNCivguK3guLjguJfguLHguKLguKfguKPguKPguJMg4Lij4Lix4Lih4Lii4Liw4Lij4Lix4LiH4Liq4Li0DQor4Lit4Li44LiX4Lix4Lii4Lin4Lij4Lij4LiTIOC4quC4uOC4meC4l+C4o+C4p+C4seC4kuC4meC5jA0KK+C4reC4uOC4l+C4suC4oyDguYDguJ/guLfguYjguK3guIfguJ/guLnguKrguLTguJkNCivguK3guLjguJfguLTguKgg4LiU4Li44Lil4Lii4LiB4Liy4LiN4LiI4LiZ4LmMDQor4Lit4Li44LiX4Li04LioIOC4peC5ieC4p+C4meC5gOC4iOC4o+C4tOC4jQ0KK+C4reC4uOC4l+C4tOC4qCDguYLguK3guKDguLLguKrguJnguLPguJ7guLLguKfguIfguKjguYwNCivguK3guLjguJfguLjguKHguJ7guKMg4Lie4Lil4Liy4Lin4LiH4Lio4LmMDQor4Lit4Li44LiZ4Li04LiV4Lii4LmMIOC4p+C4o+C4o+C4k+C4quC4tOC4meC4mOC5jA0KK+C4reC4uOC5iOC4meC5gOC4o+C4t+C4reC4mSDguIjguLTguKLguLDguKfguKPguJnguLHguJnguJfguYwNCivguK3guLjguYjguJnguYPguIgg4Lia4Li44LiN4LmA4Liq4Lij4Li04Lih4LmB4LiX4LmJDQor4Lit4Li44Lia4LilIOC5geC4geC5ieC4p+C4meC4tOC4oeC4tOC4leC4ow0KK+C4reC4uOC4muC4pSDguIjguLHguJnguJfguKPguYzguIrguLXguKfguLANCivguK3guLjguJrguKUg4LiK4Li34LmI4LiZ4LiI4Li04LiV4LijDQor4Lit4Li44Lia4LilIOC5guC4leC4oeC4reC4jQ0KK+C4reC4uOC4muC4pSDguJnguLTguKXguYDguILguLXguKLguKcNCivguK3guLjguJrguKUg4Lic4LmI4Liy4LiZ4LiI4Lix4LiH4Lir4Liy4LijDQor4Lit4Li44Lia4LilIOC4oOC4ueC4nuC4teC4o+C4sOC4quC4uOC4nuC4h+C4qeC5jA0KK+C4reC4uOC4muC4pSDguYDguKPguLTguIfguIHguKHguKUNCivguK3guLjguJrguKUg4Lio4Lij4Li14LiB4Li04LiV4LiV4Li04Lio4Lix4LiB4LiU4Li04LmMDQor4Lit4Li44Lia4LilIOC4quC4tOC4o+C4tOC4iOC4seC4meC4l+C4o+C4lOC4tOC4peC4gQ0KK+C4reC4uOC4muC4pSDguKvguKHguLfguYjguJnguKDguLHguIHguJTguLUNCivguK3guLjguJrguKUg4Lit4Li44Lib4LmA4Liq4Lin4Li1DQor4Lit4Li44Lia4Lil4Lij4Lix4LiV4LiZ4LmMIOC4iOC4tOC4leC4leC4sOC5gOC4quC4meC4teC4ouC5jA0KK+C4reC4uOC4muC4peC4o+C4seC4leC4meC5jCDguYHguJ7guYjguIfguJnguITguKMNCivguK3guLjguJrguKXguKPguLHguJXguJnguYwg4LmA4Liq4Lij4Li14LmA4LiI4Li14Lii4Lia4Lib4Lij4Li14LiK4LiyDQor4Lit4Li44Lia4Lil4Lin4Lij4Lij4LiTIOC5gOC4m+C4o+C4oeC4iOC4tOC4leC4leC5jOC4iuC4t+C5iOC4mQ0KK+C4reC4uOC4muC4peC4qOC4o+C4tSDguJXguYjguLLguKLguYHguJXguYnguKHguJfguK3guIcNCivguK3guLjguJvguJnguLHguJnguJfguYwg4LmA4LiZ4LiV4Lij4Liq4Lin4LmI4Liy4LiHDQor4Lit4Li44Lih4LiyIOC4reC4seC4hOC4o+C4peC4tOC4guC4tOC4lQ0KK+C4reC4uOC4oeC4suC4nuC4oyDguJ7guLHguJLguJnguYDguKrguKPguLUNCivguK3guLjguKHguLLguKDguKPguJPguYwg4LiV4Li04LiB4Lin4Lix4LiS4LiZ4Liy4LiZ4LiZ4LiX4LmMDQor4Lit4Li44Lii4Liu4Lin4LiHIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C4reC4uOC4o+C4lOC4tSDguKrguLLguJPguLDguYDguKrguJkNCivguK3guLjguKPguLIg4LmB4LiB4LmJ4Lin4LiB4Lil4LihDQor4Lit4Li44Lij4Li04LiZIOC4quC4tOC4meC4qOC4tuC4geC4quC4h+C4mg0KK+C4reC4uOC4peC4tOC4lSDguJvguLHguJfguKHguLLguKXguLHguKINCivguK3guLjguKnguJPguLIg4Lio4Lij4Li14Liq4Liz4LmA4Lij4Li04LiHDQor4Lit4Li44Lip4LiT4Li1IOC4quC4uOC4meC4suC5guC4nuC4mOC4tOC5jA0KK+C4reC4uOC4qeC4k+C4teC4ouC5jCDguIrguLTguJnguJ7guLHguJLguJnguLLguIHguLLguKMNCivguK3guLjguKnguJPguLXguKLguYwg4Lia4Li44LiN4LmA4Liq4LiZ4LmI4Lir4LmMDQor4Lit4Li44Lip4LiT4Li14Lii4LmMIOC4p+C4h+C4qOC5jOC4m+C4o+C4suC4k+C4teC4geC4uOC4pQ0KK+C4reC4uOC4qeC4k+C4teC4ouC5jCDguK3guLLguIjguK3guKPguLjguJMNCivguK3guLjguKnguLIg4LmA4LiB4Li14Lii4Lij4LiV4Li04Lij4Liw4Lia4Li04LilDQor4Lit4Li44Lip4LiyIOC4iOC4tOC4leC4leC5jOC4iOC4o+C4o+C4ouC4suC4geC4uOC4pQ0KK+C4reC4uOC4qeC4siDguYLguIrguITguYDguIjguKPguLTguI0NCivguK3guLjguKnguLIg4LiX4Lin4Li14Liq4Li44LiX4LiY4Li04LmMDQor4Lit4Li44Lip4LiyIOC4muC4seC4p+C4qOC4tOC4o+C4tA0KK+C4reC4uOC4qeC4siDguJ7guIfguKnguYzguJ7guKTguIHguKnguLINCivguK3guLjguKnguLIg4Lih4LmI4Lin4LiH4LiI4Liz4LiB4Lix4LiUDQor4Lit4Li44Lip4LiyIOC5gOC4peC5h+C4geC4ouC4tOC5ieC4oQ0KK+C4reC4uOC4qeC4siDguKjguKPguLXguYPguKoNCivguK3guLjguKnguLIg4Liq4Li44LiC4Liq4LiZ4Lit4LiHDQor4Lit4Li44Lip4LiyIOC4reC4ouC4ueC5iOC5geC4ng0KK+C4reC4uOC4qeC4suC4p+C4lOC4tSDguYHguIvguYjguYLguIfguYnguKcNCivguK3guLjguKrguKPguLIg4Lib4Lij4Liw4LiX4Li14LibIOC4kyDguJbguKXguLLguIcNCivguK3guLjguKrguLLguKvguYwg4Lio4Li04Lil4Lib4Li1DQor4Lit4Li44LmA4LiX4LiZIOC5gOC4ieC4peC4tOC4oeC4nuC4o+C4o+C4seC4leC4meC4sg0KK+C4reC4uOC5gOC4l+C4mSDguYDguKrguKPguLXguYDguJTguYjguJnguIrguLHguKINCivguK3guLjguYTguKMg4LiB4Li44Lio4Lil4Liq4Lij4LmJ4Liy4LiHDQor4Lit4Li44LmE4LijIOC4hOC4seC4h+C4hOC4sOC5gOC4geC4leC4uA0KK+C4reC4uOC5hOC4oyDguYDguIjguLXguKLguJvguKPguLDguYDguKrguKPguLTguJANCivguK3guLjguYTguKMg4LmB4LiL4LmI4Lin4LmI4Lit4LiHDQor4Lit4Li44LmE4LijIOC5gOC4leC4teC4ouC4sOC5gOC4nuC5h+C4iuC4ow0KK+C4reC4uOC5hOC4oyDguJnguKfguKHguYHguKvguKXguKENCivguK3guLjguYTguKMg4Lia4Li44LiZ4Liy4Lij4Lix4LiB4Lip4LmMDQor4Lit4Li44LmE4LijIOC4nuC4h+C4qeC5jOC4quC4p+C5iOC4suC4hw0KK+C4reC4uOC5hOC4oyDguYLguJ7guJjguLTguYzguJDguLTguJXguLTguKPguLHguJXguJnguYwNCivguK3guLjguYTguKMg4LmA4Lih4LiG4LmE4Lie4Lia4Li54Lil4Lii4LmM4Lin4Lix4LiS4LiZ4LiyDQor4Lit4Li44LmE4LijIOC4peC4tOC5ieC4meC5geC4geC5ieC4pw0KK+C4reC4uOC5hOC4oyDguKjguKPguKTguJfguJjguLTguYzguIrguLTguIfguIrguLHguKINCivguK3guLjguYTguKMg4Liq4Lin4Lix4Liq4LiU4Li04LmM4LmA4LiJ4LiiDQor4Lit4Li44LmE4LijIOC4quC4uOC4p+C4tOC4p+C4seC4kuC4meC4iuC4seC4ouC4geC4uOC4pQ0KK+C4reC4uOC5hOC4oyDguK3guKPguKPguITguYDguKrguKXguLINCivguK3guLjguYTguKPguJ7guKMg4LmB4LiL4LmI4Lil4Li04LmJ4LihDQor4Lit4Li44LmE4Lij4Lij4Lix4LiV4LiZ4LmMIOC4ieC4suC4ouC4iuC4ueC4p+C4h+C4qeC5jA0KK+C4reC4uOC5hOC4o+C4o+C4seC4leC4meC5jCDguKrguKvguKfguLHguJjguJnguLANCivguK3guLjguYTguKPguKfguKPguKPguJMg4LiB4Liz4Lib4Lix4LmI4LiZ4LiX4Lit4LiHDQor4Lit4Li44LmE4Lij4Lin4Lij4Lij4LiTIOC4iOC4o+C4ueC4jeC4quC4oeC4tOC4l+C4mOC4tOC5jA0KK+C4reC4uOC5hOC4o+C4p+C4o+C4o+C4kyDguYDguIrguLLguKfguIHguLTguJXguJXguLTguYLguKPguIjguJnguYwNCivguK3guLjguYTguKPguKfguKPguKPguJMg4LmA4LiX4Lie4Lib4Lij4Liw4LiX4Liy4LiZ4LiB4Li04LiIDQor4Lit4Li44LmE4Lij4Lin4Lij4Lij4LiTIOC4m+C4o+C4teC4m+C4o+C4sOC4l+C4uOC4oQ0KK+C4reC4uOC5hOC4o+C4p+C4o+C4o+C4kyDguJ7guLbguYjguIfguYPguKvguI3guYgNCivguK3guLjguYTguKPguKfguKPguKPguJMg4LmB4Lii4LmJ4Lih4LiZ4Li04Lii4LihDQor4Lit4Li44LmE4Lij4Lin4Lij4Lij4LiTIOC4p+C4tOC4iOC4tOC4leC4o+C4muC4seC4k+C4keC4tOC4leC4geC4uOC4pQ0KK+C4reC4uOC5hOC4o+C4p+C4o+C4o+C4kyDguKrguLLguITguKPguKrguLTguJnguJjguLjguYwNCivguK3guLjguYTguKPguKfguKPguKPguJMg4Lir4Lin4Lix4LmI4LiZ4Lin4Liw4LiU4Li1DQor4Lit4Li44LmE4Lij4Lin4Lij4Lij4LiTIOC5gOC4reC4teC5iOC4ouC4oeC4m+C4o+C4suC4k+C4teC4lQ0KK+C4reC4ueC5iuC4lCDguJTguLPguYDguIHguLTguIfguJXguKPguLDguIHguLnguKUNCivguK3guLnguYsg4Lih4Liy4Lil4Liy4LmA4Lil4LmH4LiBDQor4Lit4LmC4LiT4LiX4Lix4LiiIOC5gOC4iOC4leC4meC5gOC4quC4mQ0KK+C4reC5guC4k+C4l+C4seC4oiDguKfguIfguKjguYzguYDguKHguJjguLXguKrguLjguYDguKHguJgNCivguK3guYLguJnguIrguLIg4Liq4Li44Lin4Lij4Lij4LiT4Lij4Lix4LiV4LiZDQor4Lit4LmC4LiZ4LiX4Lix4LiiIOC4reC4seC4qOC4p+C4m+C4o+C4sOC4oOC4sg0KK+C5gOC4reC4gSDguIrguLHguI/guK3guJnguLHguJnguJXguYwNCivguYDguK3guIEg4Liq4Lii4Liy4Lih4Lin4Liy4Lil4LiyDQor4LmA4Lit4LiB4LiK4Lix4LiiIOC4geC4reC4h+C5geC4geC5ieC4pw0KK+C5gOC4reC4geC4iuC4seC4oiDguInguKXguK3guIfguJvguLTguKLguKPguLHguJXguJnguYwNCivguYDguK3guIHguIrguLHguKIg4LmA4LiU4LiK4Lio4Li04Lij4Li04Lie4Lix4LiZ4LiY4LmMDQor4LmA4Lit4LiB4LiK4Lix4LiiIOC4muC4uOC4qeC4ouC4muC4o+C4tOC4muC4ueC4o+C4k+C5jOC5guC4iuC4leC4tA0KK+C5gOC4reC4geC4iuC4seC4oiDguKDguLHguJfguKPguJnguLjguJjguLLguJ7guKMNCivguYDguK3guIHguIrguLHguKIg4Lin4LmI4Lit4LiH4Lia4Lij4Lij4LiI4LiH4Lir4Liy4LijDQor4LmA4Lit4LiB4LiK4Lix4LiiIOC4quC4tOC4o+C4tOC4iuC4ueC4quC4tOC4meC4p+C4h+C4qOC5jA0KK+C5gOC4reC4geC4iuC4seC4oiDguK3guLHguKjguKfguYLguIHguKfguLTguJcNCivguYDguK3guIHguJzguKUg4Lit4Lig4Li04LiK4Liy4LiV4Li04Lie4Lix4LiZ4LiY4Li44LmM4LiB4Lin4Li1DQor4LmA4Lit4LiB4Lie4LijIOC4geC4seC4h+C4p+C4suC4rOC5hOC4geC4o+C5hOC4nuC4qOC4suC4pQ0KK+C5gOC4reC4geC4nuC4seC4meC4mOC5jCDguIrguYjguLLguIfguYDguK3guIHguKfguIfguKjguYwNCivguYDguK3guIHguKLguIcg4LmB4LiL4LmI4LmA4LiL4Li14Lii4LinDQor4LmA4Lit4LiB4Lij4Lix4Lio4Lih4Li1IOC4reC4p+C4ouC4quC4tOC4meC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kA0KK+C5gOC4reC4geC4o+C4tOC4meC4l+C4o+C5jCDguYDguJrguLXguYnguKLguKfguYTguKENCivguYDguK3guIHguKfguLHguJLguJnguYwg4LiK4Lix4Lii4Lin4Lix4LiV4LijDQor4LmA4Lit4LiB4Lio4Lix4LiB4LiU4Li04LmMIOC4nuC4tOC4quC4uOC4l+C4mOC4tOC4iuC4suC4meC4meC4l+C5jA0KK+C5gOC4reC4geC4quC4tOC4l+C4mOC4tOC5jCDguYPguIjguJrguLjguI0NCivguYDguK3guIHguKrguLTguJfguJjguLTguYwg4Lio4Li04Lin4Liy4Lin4Li44LiYDQor4LmA4Lit4LiB4LmA4LiK4Liy4Lin4LiZ4LmMIOC5gOC4nuC4tOC5iOC4oeC4m+C4o+C4sOC5gOC4quC4o+C4tOC4kOC4quC4uOC4gg0KK+C5gOC4reC4meC4gSDguIHguLTguIjguYTguJ7guKjguLLguKUNCivguYDguK3guJnguIEg4LiI4Lix4LiZ4Lij4Lit4LiUDQor4LmA4Lit4LiZ4LiBIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C5gOC4reC4meC4gSDguYDguJfguLXguKLguJnguYDguIHguKnguKENCivguYDguK3guJnguIEg4Lib4Lin4Li04LiU4Liy4Lig4LiyDQor4LmA4Lit4LiZ4LiBIOC5guC4nuC4mOC4tOC5jOC4meC4tOC5iOC4oQ0KK+C5gOC4reC4meC4gSDguKXguLTguILguLTguJXguJXguKPguLDguIHguLnguKXguYDguKXguLTguKgNCivguYDguK3guJnguIEg4Lio4Lij4Li14LmB4Liq4LiHDQor4LmA4Lit4LiZ4LiBIOC5geC4quC4h+C4ieC4suC4og0KK+C5gOC4reC4meC4gSDguK3guLnguYjguJrguLHguIfguKrguLTguJkNCivguYDguK3guKHguK3guKMg4LiB4Lil4Li04LmI4LiZ4Lih4Liy4Lil4LiyDQor4LmA4Lit4Lih4Lit4LijIOC5gOC4ieC4peC4tOC4oeC4meC4meC4l+C5jA0KK+C5gOC4reC4oeC4reC4oyDguJnguLLguITguKDguLnguKHguLQNCivguYDguK3guKHguK3guKMg4LmA4Lif4Li34LmI4Lit4LiH4Lin4Li04LiX4Lii4Liy4LiB4Liy4LijDQor4LmA4Lit4Lih4Lit4LijIOC4qOC4o+C4teC4hOC4h+C4qOC4o+C4tQ0KK+C5gOC4reC4oeC4reC4oyDguK3guKPguLjguJPguKLguIfguIjguLTguJUNCivguYDguK3guKog4LmA4Lit4LmH4LihDQor4LmA4Lit4Li04Lia4Lil4Liy4LigIOC5gOC4peC4tOC4qOC4p+C4tOC4mOC4tQ0KK+C5gOC4reC4teC4ouC4sOC5gOC4iOC5h+C4hyDguYHguIvguYjguJXguLHguYnguIcNCivguYDguK3guLXguYjguKLguKEg4Lia4Li44LiN4LiE4LiHDQor4LmA4Lit4Li14LmI4Lii4LihIOC4reC4seC4qOC4p+C4pOC4l+C4mOC4tOC5jOC4geC4uOC4pQ0KK+C5gOC4reC4teC5iOC4ouC4oeC4i+C5ieC4hyDguYHguIvguYjguJXguLHguJkNCivguYDguK3guLXguYjguKLguKHguYDguIjguLXguKLguIcg4LmB4LiL4LmI4LmC4LiV4LmL4LinDQor4LmA4Lit4Li14LmJ4Lii4LiHIOC5geC4i+C5iOC5guC4leC5iuC4sA0KK+C5gOC4reC4teC5ieC4ouC4oeC5gOC4i+C4teC5ieC4oiDguYHguIvguYjguJnguLTguYjguKENCivguYDguK3guLXguYnguKLguKvguYjguLLguIfguIHguKfguIcg4LmB4LiL4LmI4LmA4Lit4Li14LmJ4LiiDQor4LmA4Lit4Li34LmJ4LitIOC4p+C4h+C4qeC5jOC4quC4suC4geC5ieC4rQ0KK+C5gOC4reC4t+C5ieC4reC4iOC4tOC4leC4leC5jCDguJzguKXguK3guLTguJnguJfguKPguYwNCivguYDguK3guLfguYnguK3guJnguJ7guKMg4LiI4Li04Lij4Liy4LiZ4LiZ4LiX4LmMDQor4LmA4Lit4Li34LmJ4Lit4Lih4Lie4LijIOC4geC4seC4peC4m+C5jOC5gOC4quC4suC4p+C4oOC4suC4hOC4ouC5jOC4geC4uOC4pQ0KK+C5gOC4reC4t+C5ieC4reC4oeC4nuC4oyDguJzguLjguJTguJzguLLguJQNCivguYDguK3guLfguYnguK3guKHguJ7guKMg4LmE4Lir4Lih4Lie4Li04Lih4Lie4LmMDQor4LmA4Lit4Li34LmJ4Lit4Lit4Liy4Lij4Li1IOC4p+C4h+C4qOC5jOC4p+C4tOC4keC4ueC4o+C4ouC4suC4nuC4ow0KK+C5gOC4reC5h+C4hyDguYHguIvguYjguKXguLTguYnguKENCivguYDguK3guYfguIfguKLguLTguYnguKcg4LmB4LiL4LmI4LmA4Lii4Li14LmI4Lii4LiHDQor4LmA4Lit4LmH4LiZ4LiU4Li5IOC4qOC4o+C4teC4muC4uOC4jeC5gOC4o+C4t+C4reC4hw0KK+C5geC4reC4mSDguYHguKrguIfguKjguKPguLUNCivguYHguK3guJnguYLguJfguJnguLXguYgg4LmA4LiV4Li14Lii4LiHDQor4LmB4Lit4LmL4LinIOC4geC4s+C4oeC4sOC4q+C4ouC4teC5iA0KK+C5guC4reC4oOC4siDguKDguLHguJfguKPguJjguKPguKPguKHguJrguLLguKUNCivguYLguK3guKDguLLguKog4LmA4LiH4Li04LiZ4LmA4LiV4LmH4Lih4LmA4Lib4Li14LmI4Lii4LihDQor4LmC4Lit4Lig4Liy4LiqIOC4l+C4o+C4seC4nuC4ouC5jOC4reC4suC4oOC4suC4geC4ow0KK+C5guC4reC4oOC4suC4qiDguJ7guKPguKvguKHguKPguLHguJXguJnguJ7guIfguKjguYwNCivguYLguK3guKDguLLguKog4Lil4Li04Lil4Li04LiV4LiB4Lix4LiZ4Lii4Liy4LiB4Li44LilDQor4LmC4Lit4Lig4Liy4LiqIOC4quC4uOC4nuC4o+C4o+C4k+C5guC4reC4iuC4suC4geC4uOC4pQ0KK+C5guC4reC4o+C4qiDguKfguIfguKnguYzguKrguLTguJfguJjguLTguYwNCivguYLguK3guKrguJYg4LmC4LiB4Lio4Li04LiZDQor4LmC4Lit4Lis4Liy4LijIOC4nuC4tuC5iOC4h+C4quC4meC4tOC4lw0KK+C5guC4reC5ieC4p+C5gOC4i+C5h+C4hyDguYHguIvguYjguK3guLHguYrguIcNCivguYTguK3guYDguIvguJnguYLguK7guYDguJ/guK3guKPguYwg4LmE4LitIOC4reC4tQ0KK+C4ruC4geC5gOC4ruC4hyDguYHguIvguYjguKXguLXguYkNCivguK7guYjguIfguK7guKfguJQg4LmB4LiL4LmI4LmC4LiH4LmJ4LinDQor4Liu4Lin4LiH4LmA4LiI4LmH4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4ruC4p+C4oiDguYHguIvguYjguKvguKXguLLguKINCivguK7guYjguK3guK3guLbguYnguIcg4LmB4LiL4LmI4LmA4LiV4Li14Lii4LinDQor4Liu4Lix4LiH4LiV4Li14LmLIOC4leC4seC5ieC4h+C4oeC4uOC4iOC4peC4tOC4meC4l+C5jA0KK+C4ruC4seC5iOC4h+C5gOC4iOC4teC4oiDguYHguIvguYjguJXguLHguYnguIcNCivguK7guLHguYnguIfguYDguIHguLXguKLguIcg4LmB4LiL4LmI4LmA4Lit4Li14LmJ4Lii4LinDQor4Liu4Lix4LmJ4LiZ4LiH4LmJ4Lin4LiZIOC5geC4i+C5iOC4ieC4seC5iOC4pw0KK+C4ruC4seC5iOC4p+C4m+C4tOC4lCDguYHguIvguYjguK3guLbguYnguIcNCivguK7guLHguYnguKfguYPguIrguYkg4LmB4LiL4LmI4LmA4Lil4LmJ4LiyDQor4Liu4Liy4Lii4Li54Lij4LiL4Li04LiH4Lir4LmMIOC4geC4seC4oeC4muC4teC4o+C5jA0KK+C4ruC4suC4o+C4teC5iOC4m+C4suC4i+C4suC4mSDguIvguLLguK7guLUNCivguK7guLTguKEg4LmB4LiL4LmI4Lir4Lil4LmI4LitDQor4Liu4Li44LiBIOC4nuC4o+C4q+C4oeC4pOC4l+C4mOC4tOC5gOC4lOC4iuC4sg0KK+C4ruC4uOC4ouC4geC4uOC4hyDguYHguIvguYjguIvguLQNCivguK7guLjguKLguYDguIfguYfguIEg4LmB4LiL4LmI4LmA4Lit4LmH4LiHDQor4Liu4Li44LmI4Lii4Liu4Lin4LiHIOC5geC4i+C5iOC4leC4seC5ieC4hw0KK+C4ruC4uOC5ieC4ouC4peC4seC5ieC4hyDguJvguKPguLDguKrguLTguJfguJjguLTguKXguLHguIHguKnguJPguLANCivguYDguK7guIcg4Lio4Li04Lij4Li04Lih4LiH4LiE4Lil4Lij4Lix4LiV4LiZ4LmMDQor4LmA4Liu4LihIOC4o+C4uOC5iOC4h+C4quC4geC4uOC4pQ0KK+C5gOC4ruC4teC4ouC4hyDguYHguIvguYjguK3guYnguLLguKcNCivguYDguK7guLXguKLguIfguIHguLXguYgg4LmB4LiL4LmI4LmA4Lir4Li14LmI4LiiDQor4LmA4Liu4Li14LmJ4Lii4LiH4LiL4Li04LihIOC5geC4i+C5iOC5guC4h+C5ieC4pw0KK+C5guC4ruC4hyDguYDguK3guIHguJjguJnguLLguJnguLHguJnguJfguYwNCivguYTguK7guYkg4LmA4Lil4Li04Lio4Lil4Li04LiC4Li04LiV4LiY4LiZ4Li04LiV4LiB4Li44LilDQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvbm9ybXBlcmYucGwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi9ub3JtcGVyZi5wbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iM2JiYWYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvbm9ybXBlcmYucGwKQEAgLTAsMCArMSw1MzggQEAKKyMhL3Vzci9sb2NhbC9iaW4vcGVybAorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKK3VzZSBzdHJpY3Q7CisKKyMgQXNzdW1lIHdlIGFyZSBydW5uaW5nIHdpdGhpbiB0aGUgaWN1NGogcm9vdCBkaXJlY3RvcnkKK3VzZSBsaWIgJ3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmJzsKKwordXNlIERhdGFzZXQ7CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdCBjbGFzcworbXkgJFRFU1RDTEFTUyA9ICdjb20uaWJtLmljdS5kZXYudGVzdC5wZXJmLk5vcm1hbGl6ZXJQZXJmb3JtYW5jZVRlc3QnOyAKKworIyBNZXRob2RzIHRvIGJlIHRlc3RlZC4gIEVhY2ggcGFpciByZXByZXNlbnRzIGEgdGVzdCBtZXRob2QgYW5kCisjIGEgYmFzZWxpbmUgbWV0aG9kIHdoaWNoIGlzIHVzZWQgZm9yIGNvbXBhcmlzb24uCitteSBATUVUSE9EUyAgPSAoCisgIAkJWydUZXN0SUNVX05GRF9ORkNfVGV4dCcsICAnVGVzdEpES19ORkRfTkZDX1RleHQnXSwKKwkJWydUZXN0SUNVX05GQ19ORkNfVGV4dCcsICAnVGVzdEpES19ORkNfTkZDX1RleHQnXSwKKyAgICAgICAgICAgICAgICBbJ1Rlc3RJQ1VfTkZDX05GRF9UZXh0JywgICdUZXN0SkRLX05GQ19ORkRfVGV4dCddLAorICAgICAgICAgICAgICAgIFsnVGVzdElDVV9ORkNfT3JpZ19UZXh0JywgJ1Rlc3RKS0RfTkZDX09yaWdfVGV4dCddLAorCQlbJ1Rlc3RJQ1VfTkZEX05GQ19UZXh0JywgICdUZXN0SkRLX05GRF9ORkNfVGV4dCddLAorICAgICAgICAgICAgICAgIFsnVGVzdElDVV9ORkRfTkZEX1RleHQnLCAgJ1Rlc3RKREtfTkZEX05GRF9UZXh0J10sCisgICAgICAgICAgICAgICAgWydUZXN0SUNVX05GRF9PcmlnX1RleHQnLCAnVGVzdEpES19ORkRfT3JpZ19UZXh0J10sIAorICAgICAgICAgICAgICAgKTsKKworIyBQYXR0ZXJucyB3aGljaCBkZWZpbmUgdGhlIHNldCBvZiBjaGFyYWN0ZXJzIHVzZWQgZm9yIHRlc3RpbmcuCisKK215ICRTT1VSQ0VESVIgPSJDOlxcd29ya1xcaWN1NGpcXHNyY1xcY29tXFxpYm1cXGljdVxcZGV2XFx0ZXN0XFxwZXJmXFxkYXRhXFxjb2xsYXRpb25cXCI7CisKK215IEBPUFRJT05TID0gKAorIyAgICAgICAgICAgICAgICAgICAgICBzcmMgdGV4dCAgICAgICAgICAJICBzcmMgZW5jb2RpbmcgIG1vZGUgIAorCQkgICAgWyAiVGVzdE5hbWVzX1NlcmJpYW5TSC50eHQiLCAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJhcmFiaWMudHh0IiwgICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgImZyZW5jaC50eHQiLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAiZ3JlZWsudHh0IiwgICAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJoZWJyZXcudHh0IiwgICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgImhpbmRpLnR4dCIgLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAiamFwYW5lc2UudHh0IiwgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJrb3JlYW4udHh0IiwgICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgInMtY2hpbmVzZS50eHQiLCAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAiZnJlbmNoLnR4dCIsICAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJncmVlay50eHQiLCAgICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgImhlYnJldy50eHQiLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAiaGluZGkudHh0IiAsICAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJqYXBhbmVzZS50eHQiLCAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisgICAgICAgICAgICAgICAgICAgIFsgImtvcmVhbi50eHQiLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKyAgICAgICAgICAgICAgICAgICAgWyAicy1jaGluZXNlLnR4dCIsICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorICAgICAgICAgICAgICAgICAgICBbICJhcmFiaWMuaHRtbCIsICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImN6ZWNoLmh0bWwiLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiZGFuaXNoLmh0bWwiLCAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJlbmdsaXNoLmh0bWwiLCAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImVzcGVyYW50by5odG1sIiwgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiZnJlbmNoLmh0bWwiLCAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJnZW9yZ2lhbi5odG1sIiwgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImdlcm1hbi5odG1sIiwgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiZ3JlZWsuaHRtbCIsICAgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJoZWJyZXcuaHRtbCIsICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImhpbmRpLmh0bWwiLCAgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiaWNlbGFuZGljLmh0bWwiLCAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJpbnRlcmxpbmd1YS5odG1sIiwgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgIml0YWxpYW4uaHRtbCIsICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAiamFwYW5lc2UuaHRtbCIsICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJrb3JlYW4uaHRtbCIsICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgImxpdGh1YW5pYW4uaHRtbCIsICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAibWFsdGVzZS5odG1sIiwgICAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJwZXJzaWFuLmh0bWwiLCAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgInBvbGlzaC5odG1sIiwgICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAicG9ydHVndWVzZS5odG1sIiwgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJyb21hbmlhbi5odG1sIiwgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgInJ1c3NpYW4uaHRtbCIsICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAicy1jaGluZXNlLmh0bWwiLCAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJzcGFuaXNoLmh0bWwiLCAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgInN3ZWRpc2guaHRtbCIsICAgICAgICAgICAgICAgIlVURi04IiwgImIiXSwKKwkJCQkJWyAidC1jaGluZXNlLmh0bWwiLCAgICAgICAgICAgICAiVVRGLTgiLCAiYiJdLAorCQkJCQlbICJ3ZWxzaC5odG1sIiwgICAgICAgICAgICAgICAgICJVVEYtOCIsICJiIl0sCisJCQkJCVsgIlRlc3ROYW1lc19Bc2lhbi50eHQiLCAgICAgICAgIlVURi04IiwgImwiXSwKKwkJCQkJWyAiVGVzdE5hbWVzX0NoaW5lc2UudHh0IiwgICAgICAiVVRGLTgiLCAibCJdLAorCQkJCQlbICJUZXN0TmFtZXNfSmFwYW5lc2UudHh0IiwgICAgICJVVEYtOCIsICJsIl0sCisJCQkJCVsgIlRlc3ROYW1lc19KYXBhbmVzZV9oLnR4dCIsICAgIlVURi04IiwgImwiXSwKKwkJCQkJWyAiVGVzdE5hbWVzX0phcGFuZXNlX2sudHh0IiwgICAiVVRGLTgiLCAibCJdLAorCQkJCQlbICJUZXN0TmFtZXNfS29yZWFuLnR4dCIsICAgICAgICJVVEYtOCIsICJsIl0sCisJCQkJCVsgIlRlc3ROYW1lc19MYXRpbi50eHQiLCAgICAgICAgIlVURi04IiwgImwiXSwKKwkJCQkJWyAiVGVzdE5hbWVzX1NlcmJpYW5TSC50eHQiLCAgICAiVVRGLTgiLCAibCJdLAorCQkJCQlbICJUZXN0TmFtZXNfU2VyYmlhblNSLnR4dCIsICAgICJVVEYtOCIsICJsIl0sCisJCQkJCVsgIlRlc3ROYW1lc19UaGFpLnR4dCIsICAgICAgICAgIlVURi04IiwgImwiXSwKKwkJCQkJWyAiVGVzdG5hbWVzX1J1c3NpYW4udHh0IiwgICAgICAiVVRGLTgiLCAibCJdLCAKKyAgICAgICAgICAgICAgKTsKKworbXkgJENBTElCUkFURSA9IDI7ICMgZHVyYXRpb24gaW4gc2Vjb25kcyBmb3IgaW5pdGlhbCBjYWxpYnJhdGlvbgorbXkgJERVUkFUSU9OID0gMTA7ICMgZHVyYXRpb24gaW4gc2Vjb25kcyBmb3IgZWFjaCBwYXNzCitteSAkTlVNUEFTU0VTID0gNDsgIyBudW1iZXIgb2YgcGFzc2VzLiAgSWYgPiAxIHRoZW4gdGhlIGZpcnN0IHBhc3MKKyAgICAgICAgICAgICAgICAgICAjIGlzIGRpc2NhcmRlZCBhcyBhIEpJVCB3YXJtLXVwIHBhc3MuCisKK215ICRUQUJMRUFUVFIgPSAnQk9SREVSPSIxIiBDRUxMUEFERElORz0iNCIgQ0VMTFNQQUNJTkc9IjAiJzsKKworbXkgJFBMVVNfTUlOVVMgPSAiJnBsdXNtbjsiOworCitpZiAoJE5VTVBBU1NFUyA8IDMpIHsKKyAgICBkaWUgIk5lZWQgYXQgbGVhc3QgMyBwYXNzZXMuICBPbmUgaXMgZGlzY2FyZGVkIChKSVQgd2FybXVwKSBhbmQgbmVlZCB0d28gdG8gaGF2ZSAxIGRlZ3JlZSBvZiBmcmVlZG9tICh0IGRpc3RyaWJ1dGlvbikuIjsKK30KKworbXkgJE9VVDsgIyBzZWUgb3V0KCkKKworbWFpbigpOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIC4uLgorc3ViIG1haW4geworICAgIG15ICRkYXRlID0gbG9jYWx0aW1lOworICAgIG15ICR0aXRsZSA9ICJJQ1U0Sk5JIFBlcmZvcm1hbmNlIFRlc3QgJGRhdGUiOworCisgICAgbXkgJGh0bWwgPSAkZGF0ZTsKKyAgICAkaHRtbCA9fiBzLzovL2c7ICMgJzonIGlsbGVnYWwKKyAgICAkaHRtbCA9fiBzL1xzKlxkKyQvLzsgIyBkZWxldGUgeWVhcgorICAgICRodG1sID1+IHMvXlx3K1xzKi8vOyAjIGRlbGV0ZSBkb3cKKyAgICAkaHRtbCA9ICJwZXJmICRodG1sLmh0bWwiOworCisgICAgb3BlbihIVE1MLCI+JGh0bWwiKSBvciBkaWUgIkNhbid0IHdyaXRlIHRvICRodG1sOiAkISI7CisKKyAgICBwcmludCBIVE1MIDw8RU9GOworPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgorPEhUTUw+CisgICA8SEVBRD4KKyAgICAgIDxUSVRMRT4kdGl0bGU8L1RJVExFPgorICAgPC9IRUFEPgorICAgPEJPRFk+CitFT0YKKyAgICBwcmludCBIVE1MICI8SDE+JHRpdGxlPC9IMT5cbiI7CisKKyAgICBwcmludCBIVE1MICI8SDI+JFRFU1RDTEFTUzwvSDI+XG4iOworCisgICAgbXkgJHJhdyA9ICIiOworCisgICAgZm9yIG15ICRtZXRob2RQYWlyIChATUVUSE9EUykgeworCisgICAgICAgIG15ICR0ZXN0TWV0aG9kID0gJG1ldGhvZFBhaXItPlswXTsKKyAgICAgICAgbXkgJGJhc2VsaW5lTWV0aG9kID0gJG1ldGhvZFBhaXItPlsxXTsKKworICAgICAgICBwcmludCBIVE1MICI8UD48VEFCTEUgJFRBQkxFQVRUUj48VFI+PFREPlxuIjsKKyAgICAgICAgcHJpbnQgSFRNTCAiPFA+PEI+JHRlc3RNZXRob2QgdnMuICRiYXNlbGluZU1ldGhvZDwvQj48L1A+XG4iOworICAgICAgICAKKyAgICAgICAgcHJpbnQgSFRNTCAiPFA+PFRBQkxFICRUQUJMRUFUVFIgQkdDT0xPUj1cIiNDQ0ZGRkZcIj5cbiI7CisgICAgICAgIHByaW50IEhUTUwgIjxUUj48VEQ+T3B0aW9uczwvVEQ+PFREPiR0ZXN0TWV0aG9kPC9URD4iOworICAgICAgICBwcmludCBIVE1MICI8VEQ+JGJhc2VsaW5lTWV0aG9kPC9URD48VEQ+UmF0aW88L1REPjwvVFI+XG4iOworCisgICAgICAgICRPVVQgPSAnJzsKKworICAgICAgICBmb3IgbXkgJHBhdCAoQE9QVElPTlMpIHsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxUUj48VEQ+QCRwYXRbMF0sIEAkcGF0WzJdPC9URD5cbiI7CisKKyAgICAgICAgICAgIG91dCgiPFA+PFRBQkxFICRUQUJMRUFUVFIgV0lEVEg9XCIxMDAlXCI+Iik7CisKKyAgICAgICAgICAgICMgbWVhc3VyZSB0aGUgdGVzdCBtZXRob2QKKyAgICAgICAgICAgIG91dCgiPFRSPjxURD4iKTsKKyAgICAgICAgICAgIHByaW50ICJcbiR0ZXN0TWV0aG9kIFtAJHBhdF1cbiI7CisgICAgICAgICAgICBteSAkdCA9IG1lYXN1cmUyKCR0ZXN0TWV0aG9kLCAkcGF0LCAtJERVUkFUSU9OKTsKKyAgICAgICAgICAgIG91dCgiPC9URD48L1RSPiIpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPFREPiIsIGZvcm1hdFNlY29uZHMoNCwgJHQtPmdldE1lYW4oKSwgJHQtPmdldEVycm9yKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIi9ldmVudDwvVEQ+XG4iOworCisgICAgICAgICAgICAjIG1lYXN1cmUgYmFzZWxpbmUgbWV0aG9kCisgICAgICAgICAgICBvdXQoIjxUUj48VEQ+Iik7CisgICAgICAgICAgICBwcmludCAiXG5CZWdpbiAkYmFzZWxpbmVNZXRob2QgW0AkcGF0XVxuIjsKKyAgICAgICAgICAgIG15ICRiID0gbWVhc3VyZTIoJGJhc2VsaW5lTWV0aG9kLCAkcGF0LCAtJERVUkFUSU9OKTsKKyAgICAgICAgICAgIG91dCgiPC9URD48L1RSPiIpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPFREPiIsIGZvcm1hdFNlY29uZHMoNCwgJGItPmdldE1lYW4oKSwgJHQtPmdldEVycm9yKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIi9ldmVudDwvVEQ+XG4iOworCisgICAgICAgICAgICBvdXQoIjwvVEFCTEU+PC9QPiIpOworCisgICAgICAgICAgICAjIG91dHB1dCByYXRpbworICAgICAgICAgICAgbXkgJHIgPSAkdC0+ZGl2aWRlKCRiKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxURD48Qj4iLCBmb3JtYXRQZXJjZW50KDMsICRyLT5nZXRNZWFuKCksICRyLT5nZXRFcnJvcik7CisgICAgICAgICAgICBwcmludCBIVE1MICI8L0I+PC9URD48L1RSPlxuIjsKKyAgICAgICAgfQorCisgICAgICAgIHByaW50IEhUTUwgIjwvVEFCTEU+PC9QPlxuIjsKKworICAgICAgICBwcmludCBIVE1MICI8UD5SYXcgZGF0YTo8L1A+XG4iOworICAgICAgICBwcmludCBIVE1MICRPVVQ7CisgICAgICAgIHByaW50IEhUTUwgIjwvVEFCTEU+PC9QPlxuIjsKKyAgICB9CisKKyAgICBwcmludCBIVE1MIDw8RU9GOworICAgPC9CT0RZPgorPC9IVE1MPgorRU9GCisgICAgY2xvc2UoSFRNTCkgb3IgZGllICJDYW4ndCBjbG9zZSAkaHRtbDogJCEiOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEFwcGVuZCB0ZXh0IHRvIHRoZSBnbG9iYWwgdmFyaWFibGUgJE9VVAorc3ViIG91dCB7CisgICAgJE9VVCAuPSBqb2luKCcnLCBAXyk7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQXBwZW5kIHRleHQgdG8gdGhlIGdsb2JhbCB2YXJpYWJsZSAkT1VUCitzdWIgb3V0bG4geworICAgICRPVVQgLj0gam9pbignJywgQF8pIC4gIlxuIjsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBNZWFzdXJlIGEgZ2l2ZW4gdGVzdCBtZXRob2Qgd2l0aCBhIGdpdmUgdGVzdCBwYXR0ZXJuIHVzaW5nIHRoZQorIyBnbG9iYWwgcnVuIHBhcmFtZXRlcnMuCisjCisjIEBwYXJhbSB0aGUgbWV0aG9kIHRvIHJ1bgorIyBAcGFyYW0gdGhlIHBhdHRlcm4gZGVmaW5pbmcgY2hhcmFjdGVycyB0byB0ZXN0CisjIEBwYXJhbSBpZiA+MCB0aGVuIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBwZXIgcGFzcy4gIElmIDwwIHRoZW4KKyMgICAgICAgIChuZWdhdGl2ZSBvZikgdGhlIG51bWJlciBvZiBzZWNvbmRzIHBlciBwYXNzLgorIworIyBAcmV0dXJuIGEgRGF0YXNldCBvYmplY3QsIHNjYWxlZCBieSBpdGVyYXRpb25zIHBlciBwYXNzIGFuZAorIyAgICAgICAgIGV2ZW50cyBwZXIgaXRlcmF0aW9uLCB0byBnaXZlIHRpbWUgcGVyIGV2ZW50CisjCitzdWIgbWVhc3VyZTIgeworICAgIG15IEBkYXRhID0gbWVhc3VyZTEoQF8pOworICAgIG15ICRpdGVyUGVyUGFzcyA9IHNoaWZ0KEBkYXRhKTsKKyAgICBteSAkZXZlbnRQZXJJdGVyID0gc2hpZnQoQGRhdGEpOworCisgICAgc2hpZnQoQGRhdGEpIGlmIChAZGF0YSA+IDEpOyAjIGRpc2NhcmQgZmlyc3QgcnVuCisKKyAgICBteSAkZHMgPSBEYXRhc2V0LT5uZXcoQGRhdGEpOworICAgICRkcy0+c2V0U2NhbGUoMS4wZS0zIC8gKCRpdGVyUGVyUGFzcyAqICRldmVudFBlckl0ZXIpKTsKKyAgICAkZHM7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgTWVhc3VyZSBhIGdpdmVuIHRlc3QgbWV0aG9kIHdpdGggYSBnaXZlIHRlc3QgcGF0dGVybiB1c2luZyB0aGUKKyMgZ2xvYmFsIHJ1biBwYXJhbWV0ZXJzLgorIworIyBAcGFyYW0gdGhlIG1ldGhvZCB0byBydW4KKyMgQHBhcmFtIHRoZSBwYXR0ZXJuIGRlZmluaW5nIGNoYXJhY3RlcnMgdG8gdGVzdAorIyBAcGFyYW0gaWYgPjAgdGhlbiB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgcGVyIHBhc3MuICBJZiA8MCB0aGVuCisjICAgICAgICAobmVnYXRpdmUgb2YpIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBwZXIgcGFzcy4KKyMKKyMgQHJldHVybiBhcnJheSBvZjoKKyMgICAgICAgICBbMF0gaXRlcmF0aW9ucyBwZXIgcGFzcworIyAgICAgICAgIFsxXSBldmVudHMgcGVyIGl0ZXJhdGlvbgorIyAgICAgICAgIFsyLi5dIG1zIHJlcG9ydGVkIGZvciBlYWNoIHBhc3MsIGluIG9yZGVyCisjCitzdWIgbWVhc3VyZTEgeworICAgIG15ICRtZXRob2QgPSBzaGlmdDsKKyAgICBteSAkcGF0ID0gc2hpZnQ7CisgICAgbXkgJGl0ZXJDb3VudCA9IHNoaWZ0OyAjIGFjdHVhbGx5IG1pZ2h0IGJlIC1zZWNvbmRzL3Bhc3MKKworICAgIG91dCgiPFA+TWVhc3VyaW5nICRtZXRob2QgZm9yIGlucHV0IGZpbGUgQCRwYXRbMF0gaW4gQCRwYXRbMl0gLCAiKTsKKyAgICBpZiAoJGl0ZXJDb3VudCA+IDApIHsKKyAgICAgICAgb3V0KCIkaXRlckNvdW50IGl0ZXJhdGlvbnMvcGFzcywgJE5VTVBBU1NFUyBwYXNzZXM8L1A+XG4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBvdXQoLSRpdGVyQ291bnQsICIgc2Vjb25kcy9wYXNzLCAkTlVNUEFTU0VTIHBhc3NlczwvUD5cbiIpOworICAgIH0KKworICAgICMgaXMgJGl0ZXJDb3VudCBhY3R1YWxseSAtc2Vjb25kcz8KKyAgICBpZiAoJGl0ZXJDb3VudCA8IDApIHsKKworICAgICAgICAjIGNhbGlicmF0ZTogZXN0aW1hdGUgbXMvaXRlcmF0aW9uCisgICAgICAgIHByaW50ICJDYWxpYnJhdGluZy4uLiI7CisgICAgICAgIG15IEB0ID0gY2FsbEphdmEoJG1ldGhvZCwgJHBhdCwgJENBTElCUkFURSApOworICAgICAgICBwcmludCAiZG9uZS5cbiI7CisKKyAgICAgICAgbXkgQGRhdGEgPSBzcGxpdCgvXHMrLywgJHRbMF0tPlsyXSk7CisgICAgICAgIG15ICR0aW1lUGVySXRlciA9IDEuMGUtMyAqICRkYXRhWzBdIC8gJGRhdGFbMl07CisgICAgCisgICAgICAgICMgZGV0ZXJtaW5lIGl0ZXJhdGlvbnMvcGFzcworICAgICAgICAkaXRlckNvdW50ID0gaW50KC0kaXRlckNvdW50IC8gJHRpbWVQZXJJdGVyICsgMC41KTsKKworICAgICAgICBvdXQoIjxQPkNhbGlicmF0aW9uIHBhc3MgKCRDQUxJQlJBVEUgc2VjKTogIik7CisgICAgICAgIG91dCgiJGRhdGFbMF0gbXMsICIpOworICAgICAgICBvdXQoIiRkYXRhWzJdIGl0ZXJhdGlvbnMgPSAiKTsKKyAgICAgICAgb3V0KGZvcm1hdFNlY29uZHMoNCwgJHRpbWVQZXJJdGVyKSwgIi9pdGVyYXRpb248QlI+XG4iKTsKKyAgICB9CisgICAgCisgICAgIyBydW4gcGFzc2VzCisgICAgcHJpbnQgIk1lYXN1cmluZyAkaXRlckNvdW50IGl0ZXJhdGlvbnMgeCAkTlVNUEFTU0VTIHBhc3Nlcy4uLiI7CisgICAgbXkgQHQgPSBjYWxsSmF2YSgkbWV0aG9kLCAkcGF0LCAiJGl0ZXJDb3VudCAiIHggJE5VTVBBU1NFUyk7CisgICAgcHJpbnQgImRvbmUuXG4iOworICAgIG15IEBtcyA9ICgpOworICAgIG15IEBiOyAjIHNjcmF0Y2gKKyAgICBmb3IgbXkgJGEgKEB0KSB7CisgICAgICAgICMgJGEtPlswXTogbWV0aG9kIG5hbWUsIGNvcnJlc3BvbmRzIHRvICRtZXRob2QKKyAgICAgICAgIyAkYS0+WzFdOiAnYmVnaW4nIGRhdGEsID09ICRpdGVyQ291bnQKKyAgICAgICAgIyAkYS0+WzJdOiAnZW5kJyBkYXRhLCBvZiB0aGUgZm9ybSA8bXM+IDxldmVudHNQZXJJdGVyPgorICAgICAgICAjICRhLT5bMy4uLl06IGdjIG1lc3NhZ2VzIGZyb20gSlZNIGR1cmluZyBwYXNzCisgICAgICAgIEBiID0gc3BsaXQoL1xzKy8sICRhLT5bMl0pOworICAgICAgICBwdXNoKEBtcywgJGJbMF0pOworICAgIH0KKyAgICBteSAkZXZlbnRzUGVySXRlciA9ICRiWzFdOworCisgICAgb3V0KCJJdGVyYXRpb25zIHBlciBwYXNzOiAkaXRlckNvdW50PEJSPlxuIik7CisgICAgb3V0KCJFdmVudHMgcGVyIGl0ZXJhdGlvbjogJGV2ZW50c1Blckl0ZXI8QlI+XG4iKTsKKworICAgIG15IEBtc19zdHIgPSBAbXM7CisgICAgJG1zX3N0clswXSAuPSAiIChkaXNjYXJkZWQpIiBpZiAoQG1zX3N0ciA+IDEpOworICAgIG91dCgiUmF3IHRpbWVzIChtcy9wYXNzKTogIiwgam9pbigiLCAiLCBAbXNfc3RyKSwgIjxCUj5cbiIpOworCisgICAgKCRpdGVyQ291bnQsICRldmVudHNQZXJJdGVyLCBAbXMpOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEludm9rZSBqYXZhIHRvIHJ1biAkVEVTVENMQVNTLCBwYXNzaW5nIGl0IHRoZSBnaXZlbiBwYXJhbWV0ZXJzLgorIworIyBAcGFyYW0gdGhlIG1ldGhvZCB0byBydW4KKyMgQHBhcmFtIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucywgb3IgaWYgbmVnYXRpdmUsIHRoZSBkdXJhdGlvbgorIyAgICAgICAgaW4gc2Vjb25kcy4gIElmIG1vcmUgdGhhbiBvbiBwYXNzIGlzIGRlc2lyZWQsIHBhc3MgaW4KKyMgICAgICAgIGEgc3RyaW5nLCBlLmcuLCAiMTAwIDEwMCAxMDAiLgorIyBAcGFyYW0gdGhlIHBhdHRlcm4gZGVmaW5pbmcgY2hhcmFjdGVycyB0byB0ZXN0CisjCisjIEByZXR1cm4gYW4gYXJyYXkgb2YgcmVzdWx0cy4gIEVhY2ggcmVzdWx0IGlzIGFuIGFycmF5IFJFRgorIyAgICAgICAgIGRlc2NyaWJpbmcgb25lIHBhc3MuICBUaGUgYXJyYXkgUkVGIGNvbnRhaW5zOgorIyAgICAgICAgIC0+WzBdOiBUaGUgbWV0aG9kIG5hbWUgYXMgcmVwb3J0ZWQKKyMgICAgICAgICAtPlsxXTogVGhlIHBhcmFtcyBvbiB0aGUgJz0gPG1ldGg+IGJlZ2luIC4uLicgbGluZQorIyAgICAgICAgIC0+WzJdOiBUaGUgcGFyYW1zIG9uIHRoZSAnPSA8bWV0aD4gZW5kIC4uLicgbGluZQorIyAgICAgICAgIC0+WzMuLl06IEdDIG1lc3NhZ2VzIGZyb20gdGhlIEpWTSwgaWYgYW55CisjCitzdWIgY2FsbEphdmEgeworICAgIG15ICRtZXRob2QgPSBzaGlmdDsKKyAgICBteSAkcGF0ID0gc2hpZnQ7CisgICAgbXkgJG4gPSBzaGlmdDsKKyAgICBteSAkZmlsZU5hbWUgPSAkU09VUkNFRElSIC4gQCRwYXRbMF0gOyAKKyAgICBteSAkY21kID0gImM6XFxqZGsxLjQuMl8wNFxcYmluXFxqYXZhIC1jbGFzc3BhdGggO2NsYXNzZXM7ICRURVNUQ0xBU1MgJG1ldGhvZCAtdCAkbiAtZiAkZmlsZU5hbWUgLWUgQCRwYXRbMV0gLUAkcGF0WzJdIjsKKyAgICBwcmludCAiWyRjbWRdXG4iOyAjIGZvciBkZWJ1Z2dpbmcKKyAgICBvcGVuKFBJUEUsICIkY21kfCIpIG9yIGRpZSAiQ2FuJ3QgcnVuIFwiJGNtZFwiIjsKKyAgICBteSBAb3V0OworICAgIHdoaWxlICg8UElQRT4pIHsKKyAgICAgICAgcHVzaChAb3V0LCAkXyk7CisgICAgfQorICAgIGNsb3NlKFBJUEUpIG9yIGRpZSAiSmF2YSBmYWlsZWQ6IFwiJGNtZFwiIjsKKworICAgIEBvdXQgPSBncmVwKCEvXlwjLywgQG91dCk7ICAjIGZpbHRlciBvdXQgY29tbWVudHMKKworICAgICNwcmludCAiWyIsIGpvaW4oIlxuIiwgQG91dCksICJdXG4iOworCisgICAgbXkgQHJlc3VsdHM7CisgICAgbXkgJG1ldGhvZCA9ICcnOworICAgIG15ICRkYXRhID0gW107CisgICAgZm9yZWFjaCAoQG91dCkgeworICAgICAgICBuZXh0IHVubGVzcyAoL1xTLyk7CisKKyAgICAgICAgaWYgKC9ePVxzKihcdyspXHMqKFx3KylccyooLiopLykgeworICAgICAgICAgICAgbXkgKCRtLCAkc3RhdGUsICRkKSA9ICgkMSwgJDIsICQzKTsKKyAgICAgICAgICAgICNwcmludCAiJF8gPT4gW1skbSAkc3RhdGUgJGRhdGFdXVxuIjsKKyAgICAgICAgICAgIGlmICgkc3RhdGUgZXEgJ2JlZ2luJykgeworICAgICAgICAgICAgICAgIGRpZSAiJG1ldGhvZCB3YXMgYmVndW4gYnV0IG5vdCBmaW5pc2hlZCIgaWYgKCRtZXRob2QpOworICAgICAgICAgICAgICAgICRtZXRob2QgPSAkbTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkZGF0YSwgJGQpOworICAgICAgICAgICAgICAgIHB1c2goQCRkYXRhLCAnJyk7ICMgcGxhY2Vob2xkZXIgZm9yIGVuZCBkYXRhCisgICAgICAgICAgICB9IGVsc2lmICgkc3RhdGUgZXEgJ2VuZCcpIHsKKyAgICAgICAgICAgICAgICBpZiAoJG0gbmUgJG1ldGhvZCkgeworICAgICAgICAgICAgICAgICAgICBkaWUgIiRtZXRob2QgZW5kIGRvZXMgbm90IG1hdGNoOiAkXyI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICRkYXRhLT5bMV0gPSAkZDsgIyBpbnNlcnQgZW5kIGRhdGEgYXQgWzFdCisgICAgICAgICAgICAgICAgI3ByaW50ICIjJG1ldGhvZDoiLCBqb2luKCI7IixAJGRhdGEpLCAiXG4iOworICAgICAgICAgICAgICAgIHVuc2hpZnQoQCRkYXRhLCAkbWV0aG9kKTsgIyBhZGQgbWV0aG9kIHRvIHN0YXJ0CisgICAgICAgICAgICAgICAgcHVzaChAcmVzdWx0cywgJGRhdGEpOworICAgICAgICAgICAgICAgICRtZXRob2QgPSAnJzsKKyAgICAgICAgICAgICAgICAkZGF0YSA9IFtdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkaWUgIkNhbid0IHBhcnNlOiAkXyI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBlbHNpZiAoL15cWy8pIHsKKyAgICAgICAgICAgIGlmICgkbWV0aG9kKSB7CisgICAgICAgICAgICAgICAgcHVzaChAJGRhdGEsICRfKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgIyBpZ25vcmUgZXh0cmFuZW91cyBHQyBub3RpY2VzCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2U6ICRfIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGRpZSAiJG1ldGhvZCB3YXMgYmVndW4gYnV0IG5vdCBmaW5pc2hlZCIgaWYgKCRtZXRob2QpOworCisgICAgQHJlc3VsdHM7Cit9CisKKyN8Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI3wjIEZvcm1hdCBhIGNvbmZpZGVuY2UgaW50ZXJ2YWwsIGFzIGdpdmVuIGJ5IGEgRGF0YXNldC4gIE91dHB1dCBpcyBhcworI3wjIGFzIGZvbGxvd3M6CisjfCMgICAyNDEuMjMgLSAyNDEuOTggPT4gMjQxLjUgKy8tIDAuMworI3wjICAgMjQxLjIgLSAyNDMuOCA9PiAyNDIgKy8tIDEKKyN8IyAgIDIxMS4wIC0gMjQxLjAgPT4gMjI2ICsvLSAxNSBvcj8gMjMwICsvLSAyMAorI3wjICAgMjIwLjMgLSAyMzQuMyA9PiAyMjcgKy8tIDcKKyN8IyAgIDIyMC4zIC0gMzAwLjMgPT4gMjYwICsvLSA0MAorI3wjICAgMjIwLjMgLSAxMDAwID0+IDYxMCArLy0gMzkwIG9yPyA2MDAgKy8tIDQwMAorI3wjICAgMC4wMjIgLSAwLjAyNCA9PiAwLjAyMyArLy0gMC4wMDEKKyN8IyAgIDAuMDIyIC0gMC4wMzIgPT4gMC4wMjcgKy8tIDAuMDA1CisjfCMgICAwLjAyMiAtIDEuMDAwID0+IDAuNSArLy0gMC41CisjfCMgSW4gb3RoZXIgd29yZHMsIHRha2Ugb25lIHNpZ25pZmljYW50IGRpZ2l0IG9mIHRoZSBlcnJvciB2YWx1ZSBhbmQKKyN8IyBkaXNwbGF5IHRoZSBtZWFuIHRvIHRoZSBzYW1lIHByZWNpc2lvbi4KKyN8c3ViIGZvcm1hdERhdGFzZXQgeworI3wgICAgbXkgJGRzID0gc2hpZnQ7CisjfCAgICBteSAkbG93ZXIgPSAkZHMtPmdldE1lYW4oKSAtICRkcy0+Z2V0RXJyb3IoKTsKKyN8ICAgIG15ICR1cHBlciA9ICRkcy0+Z2V0TWVhbigpICsgJGRzLT5nZXRFcnJvcigpOworI3wgICAgbXkgJHNjYWxlID0gMDsKKyN8ICAgICMgRmluZCBob3cgbWFueSBpbml0aWFsIGRpZ2l0cyBhcmUgdGhlIHNhbWUKKyN8ICAgIHdoaWxlICgkbG93ZXIgPCAxIHx8CisjfCAgICAgICAgICAgaW50KCRsb3dlcikgPT0gaW50KCR1cHBlcikpIHsKKyN8ICAgICAgICAkbG93ZXIgKj0gMTA7CisjfCAgICAgICAgJHVwcGVyICo9IDEwOworI3wgICAgICAgICRzY2FsZSsrOworI3wgICAgfQorI3wgICAgd2hpbGUgKCRsb3dlciA+PSAxMCAmJgorI3wgICAgICAgICAgIGludCgkbG93ZXIpID09IGludCgkdXBwZXIpKSB7CisjfCAgICAgICAgJGxvd2VyIC89IDEwOworI3wgICAgICAgICR1cHBlciAvPSAxMDsKKyN8ICAgICAgICAkc2NhbGUtLTsKKyN8ICAgIH0KKyN8fQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIG51bWJlciwgb3B0aW9uYWxseSB3aXRoIGEgKy8tIGRlbHRhLCB0byBuIHNpZ25pZmljYW50CisjIGRpZ2l0cy4KKyMKKyMgQHBhcmFtIHNpZ25pZmljYW50IGRpZ2l0LCBhIHZhbHVlID49IDEKKyMgQHBhcmFtIG11bHRpcGxpZXIKKyMgQHBhcmFtIHRpbWUgaW4gc2Vjb25kcyB0byBiZSBmb3JtYXR0ZWQKKyMgQG9wdGlvbmFsIGRlbHRhIGluIHNlY29uZHMKKyMKKyMgQHJldHVybiBzdHJpbmcgb2YgdGhlIGZvcm0gIjIzIiBvciAiMjMgKy8tIDEwIi4KKyMKK3N1YiBmb3JtYXROdW1iZXIgeworICAgIG15ICRzaWdkaWcgPSBzaGlmdDsKKyAgICBteSAkbXVsdCA9IHNoaWZ0OworICAgIG15ICRhID0gc2hpZnQ7CisgICAgbXkgJGRlbHRhID0gc2hpZnQ7ICMgbWF5IGJlIHVuZGVmCisgICAgCisgICAgbXkgJHJlc3VsdCA9IGZvcm1hdFNpZ0RpZygkc2lnZGlnLCAkYSokbXVsdCk7CisgICAgaWYgKGRlZmluZWQoJGRlbHRhKSkgeworICAgICAgICBteSAkZCA9IGZvcm1hdFNpZ0RpZygkc2lnZGlnLCAkZGVsdGEqJG11bHQpOworICAgICAgICAjIHJlc3RyaWN0IFBSRUNJU0lPTiBvZiBkZWx0YSB0byB0aGF0IG9mIG1haW4gbnVtYmVyCisgICAgICAgIGlmICgkcmVzdWx0ID1+IC9cLihcZCspLykgeworICAgICAgICAgICAgIyBUT0RPIG1ha2UgdGhpcyB3b3JrIGZvciB2YWx1ZXMgd2l0aCBhbGwgc2lnbmlmaWNhbnQKKyAgICAgICAgICAgICMgZGlnaXRzIHRvIHRoZSBsZWZ0IG9mIHRoZSBkZWNpbWFsLCBlLmcuLCAxMjM0MDAwLgorCisgICAgICAgICAgICAjIFRPRE8gdGhlIG90aGVyIHRoaW5nIHdyb25nIHdpdGggdGhpcyBpcyB0aGF0IGl0CisgICAgICAgICAgICAjIGlzbid0IHJvdW5kaW5nIHRoZSAkZGVsdGEgcHJvcGVybHkuICBIYXZlIHRvIHB1dAorICAgICAgICAgICAgIyB0aGlzIGxvZ2ljIGludG8gZm9ybWF0U2lnRGlnKCkuCisgICAgICAgICAgICBteSAkeCA9IGxlbmd0aCgkMSk7CisgICAgICAgICAgICAkZCA9fiBzL1wuKFxkeyR4fSlcZCsvLiQxLzsKKyAgICAgICAgfQorICAgICAgICAkcmVzdWx0IC49ICIgJFBMVVNfTUlOVVMgIiAuICRkOworICAgIH0KKyAgICAkcmVzdWx0OworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIHRpbWUsIG9wdGlvbmFsbHkgd2l0aCBhICsvLSBkZWx0YSwgdG8gbiBzaWduaWZpY2FudAorIyBkaWdpdHMuCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSB0aW1lIGluIHNlY29uZHMgdG8gYmUgZm9ybWF0dGVkCisjIEBvcHRpb25hbCBkZWx0YSBpbiBzZWNvbmRzCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIyMyBtcyIgb3IgIjIzICsvLSAxMCBtcyIuCisjCitzdWIgZm9ybWF0U2Vjb25kcyB7CisgICAgbXkgJHNpZ2RpZyA9IHNoaWZ0OworICAgIG15ICRhID0gc2hpZnQ7CisgICAgbXkgJGRlbHRhID0gc2hpZnQ7ICMgbWF5IGJlIHVuZGVmCisKKyAgICBteSBATVVMVCA9ICgxICAgLCAxZTMsICAxZTYsICAxZTkpOworICAgIG15IEBTVUZGID0gKCdzJyAsICdtcycsICd1cycsICducycpOworCisgICAgIyBEZXRlcm1pbmUgb3VyIHNjYWxlCisgICAgbXkgJGkgPSAwOworICAgICsrJGkgd2hpbGUgKCRhKiRNVUxUWyRpXSA8IDEgJiYgJGkgPCBATVVMVCk7CisgICAgCisgICAgZm9ybWF0TnVtYmVyKCRzaWdkaWcsICRNVUxUWyRpXSwgJGEsICRkZWx0YSkgLiAnICcgLiAkU1VGRlskaV07Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgcGVyY2VudGFnZSwgb3B0aW9uYWxseSB3aXRoIGEgKy8tIGRlbHRhLCB0byBuIHNpZ25pZmljYW50CisjIGRpZ2l0cy4KKyMKKyMgQHBhcmFtIHNpZ25pZmljYW50IGRpZ2l0LCBhIHZhbHVlID49IDEKKyMgQHBhcmFtIHZhbHVlIHRvIGJlIGZvcm1hdHRlZCwgYXMgYSBmcmFjdGlvbiwgZS5nLiAwLjUgZm9yIDUwJQorIyBAb3B0aW9uYWwgZGVsdGEsIGFzIGEgZnJhY3Rpb24KKyMKKyMgQHJldHVybiBzdHJpbmcgb2YgdGhlIGZvcm0gIjIzICUiIG9yICIyMyArLy0gMTAgJSIuCisjCitzdWIgZm9ybWF0UGVyY2VudCB7CisgICAgbXkgJHNpZ2RpZyA9IHNoaWZ0OworICAgIG15ICRhID0gc2hpZnQ7CisgICAgbXkgJGRlbHRhID0gc2hpZnQ7ICMgbWF5IGJlIHVuZGVmCisgICAgCisgICAgZm9ybWF0TnVtYmVyKCRzaWdkaWcsIDEwMCwgJGEsICRkZWx0YSkgLiAnICUnOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEZvcm1hdCBhIG51bWJlciB0byBuIHNpZ25pZmljYW50IGRpZ2l0cyB3aXRob3V0IHVzaW5nIGV4cG9uZW50aWFsCisjIG5vdGF0aW9uLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gbnVtYmVyIHRvIGJlIGZvcm1hdHRlZAorIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMTIzNCIgIjEyLjM0IiBvciAiMC4wMDEyMzQiLiAgSWYKKyMgICAgICAgICBudW1iZXIgd2FzIG5lZ2F0aXZlLCBwcmVmaXhlZCBieSAnLScuCisjCitzdWIgZm9ybWF0U2lnRGlnIHsKKyAgICBteSAkbiA9IHNoaWZ0KCkgLSAxOworICAgIG15ICRhID0gc2hpZnQ7CisKKyAgICBsb2NhbCAkXyA9IHNwcmludGYoIiUuJHtufWUiLCAkYSk7CisgICAgbXkgJHNpZ24gPSAocy9eLS8vKSA/ICctJyA6ICcnOworCisgICAgbXkgJGFfZTsKKyAgICBteSAkcmVzdWx0OworICAgIGlmICgvXihcZClcLihcZCspZShbLStdXGQrKSQvKSB7CisgICAgICAgIG15ICgkZCwgJGRuLCAkZSkgPSAoJDEsICQyLCAkMyk7CisgICAgICAgICRhX2UgPSAkZTsKKyAgICAgICAgJGQgLj0gJGRuOworICAgICAgICAkZSsrOworICAgICAgICAkZCAuPSAnMCcgd2hpbGUgKCRlID4gbGVuZ3RoKCRkKSk7CisgICAgICAgIHdoaWxlICgkZSA8IDEpIHsKKyAgICAgICAgICAgICRlKys7CisgICAgICAgICAgICAkZCA9ICcwJyAuICRkOworICAgICAgICB9CisgICAgICAgIGlmICgkZSA9PSBsZW5ndGgoJGQpKSB7CisgICAgICAgICAgICAkcmVzdWx0ID0gJHNpZ24gLiAkZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRyZXN1bHQgPSAkc2lnbiAuIHN1YnN0cigkZCwgMCwgJGUpIC4gJy4nIC4gc3Vic3RyKCRkLCAkZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBkaWUgIkNhbid0IHBhcnNlICRfIjsKKyAgICB9CisgICAgJHJlc3VsdDsKK30KKworI2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYvcGVyZi5wbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3BlcmYucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWRlMjY4MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3BlcmYucGwKQEAgLTAsMCArMSw0NzUgQEAKKyMvKioKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqLworCisjIS91c3IvbG9jYWwvYmluL3BlcmwKKwordXNlIHN0cmljdDsKKworIyBBc3N1bWUgd2UgYXJlIHJ1bm5pbmcgd2l0aGluIHRoZSBpY3U0aiByb290IGRpcmVjdG9yeQordXNlIGxpYiAnc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3BlcmYnOworCit1c2UgRGF0YXNldDsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBUZXN0IGNsYXNzCitteSAkVEVTVENMQVNTID0gJ2NvbS5pYm0uaWN1LmRldi50ZXN0LnBlcmYuVW5pY29kZVNldFBlcmYnOworCisjIE1ldGhvZHMgdG8gYmUgdGVzdGVkLiAgRWFjaCBwYWlyIHJlcHJlc2VudHMgYSB0ZXN0IG1ldGhvZCBhbmQKKyMgYSBiYXNlbGluZSBtZXRob2Qgd2hpY2ggaXMgdXNlZCBmb3IgY29tcGFyaXNvbi4KK215IEBNRVRIT0RTICA9IChbJ1VuaWNvZGVTZXRBZGQnLCAnSGFzaFNldEFkZCddLAorICAgICAgICAgICAgICAgIFsnVW5pY29kZVNldENvbnRhaW5zJywgJ0hhc2hTZXRDb250YWlucyddLAorICAgICAgICAgICAgICAgIFsnVW5pY29kZVNldEl0ZXJhdGUnLCAnSGFzaFNldEl0ZXJhdGUnXSk7CisKKyMgUGF0dGVybnMgd2hpY2ggZGVmaW5lIHRoZSBzZXQgb2YgY2hhcmFjdGVycyB1c2VkIGZvciB0ZXN0aW5nLgorbXkgQFBBVFRFUk5TID0gKCdbOkx0Ol0nLCAnWzpDbjpdJyk7CisKK215ICRDQUxJQlJBVEUgPSAyOyAjIGR1cmF0aW9uIGluIHNlY29uZHMgZm9yIGluaXRpYWwgY2FsaWJyYXRpb24KK215ICREVVJBVElPTiA9IDEwOyAjIGR1cmF0aW9uIGluIHNlY29uZHMgZm9yIGVhY2ggcGFzcworbXkgJE5VTVBBU1NFUyA9IDQ7ICMgbnVtYmVyIG9mIHBhc3Nlcy4gIElmID4gMSB0aGVuIHRoZSBmaXJzdCBwYXNzCisgICAgICAgICAgICAgICAgICAgIyBpcyBkaXNjYXJkZWQgYXMgYSBKSVQgd2FybS11cCBwYXNzLgorCitteSAkVEFCTEVBVFRSID0gJ0JPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjQiIENFTExTUEFDSU5HPSIwIic7CisKK215ICRQTFVTX01JTlVTID0gIiZwbHVzbW47IjsKKworaWYgKCROVU1QQVNTRVMgPCAzKSB7CisgICAgZGllICJOZWVkIGF0IGxlYXN0IDMgcGFzc2VzLiAgT25lIGlzIGRpc2NhcmRlZCAoSklUIHdhcm11cCkgYW5kIG5lZWQgdHdvIHRvIGhhdmUgMSBkZWdyZWUgb2YgZnJlZWRvbSAodCBkaXN0cmlidXRpb24pLiI7Cit9CisKK215ICRPVVQ7ICMgc2VlIG91dCgpCisKK21haW4oKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAuLi4KK3N1YiBtYWluIHsKKyAgICBteSAkZGF0ZSA9IGxvY2FsdGltZTsKKyAgICBteSAkdGl0bGUgPSAiSUNVNEogUGVyZm9ybWFuY2UgVGVzdCAkZGF0ZSI7CisKKyAgICBteSAkaHRtbCA9ICRkYXRlOworICAgICRodG1sID1+IHMvOi8vZzsgIyAnOicgaWxsZWdhbAorICAgICRodG1sID1+IHMvXHMqXGQrJC8vOyAjIGRlbGV0ZSB5ZWFyCisgICAgJGh0bWwgPX4gcy9eXHcrXHMqLy87ICMgZGVsZXRlIGRvdworICAgICRodG1sID0gInBlcmYgJGh0bWwuaHRtbCI7CisKKyAgICBvcGVuKEhUTUwsIj4kaHRtbCIpIG9yIGRpZSAiQ2FuJ3Qgd3JpdGUgdG8gJGh0bWw6ICQhIjsKKworICAgIHByaW50IEhUTUwgPDxFT0Y7Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iCisgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+Cis8SFRNTD4KKyAgIDxIRUFEPgorICAgICAgPFRJVExFPiR0aXRsZTwvVElUTEU+CisgICA8L0hFQUQ+CisgICA8Qk9EWT4KK0VPRgorICAgIHByaW50IEhUTUwgIjxIMT4kdGl0bGU8L0gxPlxuIjsKKworICAgIHByaW50IEhUTUwgIjxIMj4kVEVTVENMQVNTPC9IMj5cbiI7CisKKyAgICBteSAkcmF3ID0gIiI7CisKKyAgICBmb3IgbXkgJG1ldGhvZFBhaXIgKEBNRVRIT0RTKSB7CisKKyAgICAgICAgbXkgJHRlc3RNZXRob2QgPSAkbWV0aG9kUGFpci0+WzBdOworICAgICAgICBteSAkYmFzZWxpbmVNZXRob2QgPSAkbWV0aG9kUGFpci0+WzFdOworCisgICAgICAgIHByaW50IEhUTUwgIjxQPjxUQUJMRSAkVEFCTEVBVFRSPjxUUj48VEQ+XG4iOworICAgICAgICBwcmludCBIVE1MICI8UD48Qj4kdGVzdE1ldGhvZCB2cy4gJGJhc2VsaW5lTWV0aG9kPC9CPjwvUD5cbiI7CisgICAgICAgIAorICAgICAgICBwcmludCBIVE1MICI8UD48VEFCTEUgJFRBQkxFQVRUUiBCR0NPTE9SPVwiI0NDRkZGRlwiPlxuIjsKKyAgICAgICAgcHJpbnQgSFRNTCAiPFRSPjxURD5QYXR0ZXJuPC9URD48VEQ+JHRlc3RNZXRob2Q8L1REPiI7CisgICAgICAgIHByaW50IEhUTUwgIjxURD4kYmFzZWxpbmVNZXRob2Q8L1REPjxURD5SYXRpbzwvVEQ+PC9UUj5cbiI7CisKKyAgICAgICAgJE9VVCA9ICcnOworCisgICAgICAgIGZvciBteSAkcGF0IChAUEFUVEVSTlMpIHsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxUUj48VEQ+JHBhdDwvVEQ+XG4iOworCisgICAgICAgICAgICBvdXQoIjxQPjxUQUJMRSAkVEFCTEVBVFRSIFdJRFRIPVwiMTAwJVwiPiIpOworCisgICAgICAgICAgICAjIG1lYXN1cmUgdGhlIHRlc3QgbWV0aG9kCisgICAgICAgICAgICBvdXQoIjxUUj48VEQ+Iik7CisgICAgICAgICAgICBwcmludCAiXG4kdGVzdE1ldGhvZCAkcGF0XG4iOworICAgICAgICAgICAgbXkgJHQgPSBtZWFzdXJlMigkdGVzdE1ldGhvZCwgJHBhdCwgLSREVVJBVElPTik7CisgICAgICAgICAgICBvdXQoIjwvVEQ+PC9UUj4iKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxURD4iLCBmb3JtYXRTZWNvbmRzKDQsICR0LT5nZXRNZWFuKCksICR0LT5nZXRFcnJvcik7CisgICAgICAgICAgICBwcmludCBIVE1MICIvZXZlbnQ8L1REPlxuIjsKKworICAgICAgICAgICAgIyBtZWFzdXJlIGJhc2VsaW5lIG1ldGhvZAorICAgICAgICAgICAgb3V0KCI8VFI+PFREPiIpOworICAgICAgICAgICAgcHJpbnQgIlxuQmVnaW4gJGJhc2VsaW5lTWV0aG9kICRwYXRcbiI7CisgICAgICAgICAgICBteSAkYiA9IG1lYXN1cmUyKCRiYXNlbGluZU1ldGhvZCwgJHBhdCwgLSREVVJBVElPTik7CisgICAgICAgICAgICBvdXQoIjwvVEQ+PC9UUj4iKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxURD4iLCBmb3JtYXRTZWNvbmRzKDQsICRiLT5nZXRNZWFuKCksICR0LT5nZXRFcnJvcik7CisgICAgICAgICAgICBwcmludCBIVE1MICIvZXZlbnQ8L1REPlxuIjsKKworICAgICAgICAgICAgb3V0KCI8L1RBQkxFPjwvUD4iKTsKKworICAgICAgICAgICAgIyBvdXRwdXQgcmF0aW8KKyAgICAgICAgICAgIG15ICRyID0gJHQtPmRpdmlkZSgkYik7CisgICAgICAgICAgICBwcmludCBIVE1MICI8VEQ+PEI+IiwgZm9ybWF0UGVyY2VudCgzLCAkci0+Z2V0TWVhbigpLCAkci0+Z2V0RXJyb3IpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPC9CPjwvVEQ+PC9UUj5cbiI7CisgICAgICAgIH0KKworICAgICAgICBwcmludCBIVE1MICI8L1RBQkxFPjwvUD5cbiI7CisKKyAgICAgICAgcHJpbnQgSFRNTCAiPFA+UmF3IGRhdGE6PC9QPlxuIjsKKyAgICAgICAgcHJpbnQgSFRNTCAkT1VUOworICAgICAgICBwcmludCBIVE1MICI8L1RBQkxFPjwvUD5cbiI7CisgICAgfQorCisgICAgcHJpbnQgSFRNTCA8PEVPRjsKKyAgIDwvQk9EWT4KKzwvSFRNTD4KK0VPRgorICAgIGNsb3NlKEhUTUwpIG9yIGRpZSAiQ2FuJ3QgY2xvc2UgJGh0bWw6ICQhIjsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBBcHBlbmQgdGV4dCB0byB0aGUgZ2xvYmFsIHZhcmlhYmxlICRPVVQKK3N1YiBvdXQgeworICAgICRPVVQgLj0gam9pbignJywgQF8pOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEFwcGVuZCB0ZXh0IHRvIHRoZSBnbG9iYWwgdmFyaWFibGUgJE9VVAorc3ViIG91dGxuIHsKKyAgICAkT1VUIC49IGpvaW4oJycsIEBfKSAuICJcbiI7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgTWVhc3VyZSBhIGdpdmVuIHRlc3QgbWV0aG9kIHdpdGggYSBnaXZlIHRlc3QgcGF0dGVybiB1c2luZyB0aGUKKyMgZ2xvYmFsIHJ1biBwYXJhbWV0ZXJzLgorIworIyBAcGFyYW0gdGhlIG1ldGhvZCB0byBydW4KKyMgQHBhcmFtIHRoZSBwYXR0ZXJuIGRlZmluaW5nIGNoYXJhY3RlcnMgdG8gdGVzdAorIyBAcGFyYW0gaWYgPjAgdGhlbiB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgcGVyIHBhc3MuICBJZiA8MCB0aGVuCisjICAgICAgICAobmVnYXRpdmUgb2YpIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBwZXIgcGFzcy4KKyMKKyMgQHJldHVybiBhIERhdGFzZXQgb2JqZWN0LCBzY2FsZWQgYnkgaXRlcmF0aW9ucyBwZXIgcGFzcyBhbmQKKyMgICAgICAgICBldmVudHMgcGVyIGl0ZXJhdGlvbiwgdG8gZ2l2ZSB0aW1lIHBlciBldmVudAorIworc3ViIG1lYXN1cmUyIHsKKyAgICBteSBAZGF0YSA9IG1lYXN1cmUxKEBfKTsKKyAgICBteSAkaXRlclBlclBhc3MgPSBzaGlmdChAZGF0YSk7CisgICAgbXkgJGV2ZW50UGVySXRlciA9IHNoaWZ0KEBkYXRhKTsKKworICAgIHNoaWZ0KEBkYXRhKSBpZiAoQGRhdGEgPiAxKTsgIyBkaXNjYXJkIGZpcnN0IHJ1bgorCisgICAgbXkgJGRzID0gRGF0YXNldC0+bmV3KEBkYXRhKTsKKyAgICAkZHMtPnNldFNjYWxlKDEuMGUtMyAvICgkaXRlclBlclBhc3MgKiAkZXZlbnRQZXJJdGVyKSk7CisgICAgJGRzOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIE1lYXN1cmUgYSBnaXZlbiB0ZXN0IG1ldGhvZCB3aXRoIGEgZ2l2ZSB0ZXN0IHBhdHRlcm4gdXNpbmcgdGhlCisjIGdsb2JhbCBydW4gcGFyYW1ldGVycy4KKyMKKyMgQHBhcmFtIHRoZSBtZXRob2QgdG8gcnVuCisjIEBwYXJhbSB0aGUgcGF0dGVybiBkZWZpbmluZyBjaGFyYWN0ZXJzIHRvIHRlc3QKKyMgQHBhcmFtIGlmID4wIHRoZW4gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIHBlciBwYXNzLiAgSWYgPDAgdGhlbgorIyAgICAgICAgKG5lZ2F0aXZlIG9mKSB0aGUgbnVtYmVyIG9mIHNlY29uZHMgcGVyIHBhc3MuCisjCisjIEByZXR1cm4gYXJyYXkgb2Y6CisjICAgICAgICAgWzBdIGl0ZXJhdGlvbnMgcGVyIHBhc3MKKyMgICAgICAgICBbMV0gZXZlbnRzIHBlciBpdGVyYXRpb24KKyMgICAgICAgICBbMi4uXSBtcyByZXBvcnRlZCBmb3IgZWFjaCBwYXNzLCBpbiBvcmRlcgorIworc3ViIG1lYXN1cmUxIHsKKyAgICBteSAkbWV0aG9kID0gc2hpZnQ7CisgICAgbXkgJHBhdCA9IHNoaWZ0OworICAgIG15ICRpdGVyQ291bnQgPSBzaGlmdDsgIyBhY3R1YWxseSBtaWdodCBiZSAtc2Vjb25kcy9wYXNzCisKKyAgICBvdXQoIjxQPk1lYXN1cmluZyAkbWV0aG9kIHVzaW5nICRwYXQsICIpOworICAgIGlmICgkaXRlckNvdW50ID4gMCkgeworICAgICAgICBvdXQoIiRpdGVyQ291bnQgaXRlcmF0aW9ucy9wYXNzLCAkTlVNUEFTU0VTIHBhc3NlczwvUD5cbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIG91dCgtJGl0ZXJDb3VudCwgIiBzZWNvbmRzL3Bhc3MsICROVU1QQVNTRVMgcGFzc2VzPC9QPlxuIik7CisgICAgfQorCisgICAgIyBpcyAkaXRlckNvdW50IGFjdHVhbGx5IC1zZWNvbmRzPworICAgIGlmICgkaXRlckNvdW50IDwgMCkgeworCisgICAgICAgICMgY2FsaWJyYXRlOiBlc3RpbWF0ZSBtcy9pdGVyYXRpb24KKyAgICAgICAgcHJpbnQgIkNhbGlicmF0aW5nLi4uIjsKKyAgICAgICAgbXkgQHQgPSBjYWxsSmF2YSgkbWV0aG9kLCAkcGF0LCAtJENBTElCUkFURSk7CisgICAgICAgIHByaW50ICJkb25lLlxuIjsKKworICAgICAgICBteSBAZGF0YSA9IHNwbGl0KC9ccysvLCAkdFswXS0+WzJdKTsKKyAgICAgICAgbXkgJHRpbWVQZXJJdGVyID0gMS4wZS0zICogJGRhdGFbMF0gLyAkZGF0YVsyXTsKKyAgICAKKyAgICAgICAgIyBkZXRlcm1pbmUgaXRlcmF0aW9ucy9wYXNzCisgICAgICAgICRpdGVyQ291bnQgPSBpbnQoLSRpdGVyQ291bnQgLyAkdGltZVBlckl0ZXIgKyAwLjUpOworCisgICAgICAgIG91dCgiPFA+Q2FsaWJyYXRpb24gcGFzcyAoJENBTElCUkFURSBzZWMpOiAiKTsKKyAgICAgICAgb3V0KCIkZGF0YVswXSBtcywgIik7CisgICAgICAgIG91dCgiJGRhdGFbMl0gaXRlcmF0aW9ucyA9ICIpOworICAgICAgICBvdXQoZm9ybWF0U2Vjb25kcyg0LCAkdGltZVBlckl0ZXIpLCAiL2l0ZXJhdGlvbjxCUj5cbiIpOworICAgIH0KKyAgICAKKyAgICAjIHJ1biBwYXNzZXMKKyAgICBwcmludCAiTWVhc3VyaW5nICRpdGVyQ291bnQgaXRlcmF0aW9ucyB4ICROVU1QQVNTRVMgcGFzc2VzLi4uIjsKKyAgICBteSBAdCA9IGNhbGxKYXZhKCRtZXRob2QsICRwYXQsICIkaXRlckNvdW50ICIgeCAkTlVNUEFTU0VTKTsKKyAgICBwcmludCAiZG9uZS5cbiI7CisgICAgbXkgQG1zID0gKCk7CisgICAgbXkgQGI7ICMgc2NyYXRjaAorICAgIGZvciBteSAkYSAoQHQpIHsKKyAgICAgICAgIyAkYS0+WzBdOiBtZXRob2QgbmFtZSwgY29ycmVzcG9uZHMgdG8gJG1ldGhvZAorICAgICAgICAjICRhLT5bMV06ICdiZWdpbicgZGF0YSwgPT0gJGl0ZXJDb3VudAorICAgICAgICAjICRhLT5bMl06ICdlbmQnIGRhdGEsIG9mIHRoZSBmb3JtIDxtcz4gPGV2ZW50c1Blckl0ZXI+CisgICAgICAgICMgJGEtPlszLi4uXTogZ2MgbWVzc2FnZXMgZnJvbSBKVk0gZHVyaW5nIHBhc3MKKyAgICAgICAgQGIgPSBzcGxpdCgvXHMrLywgJGEtPlsyXSk7CisgICAgICAgIHB1c2goQG1zLCAkYlswXSk7CisgICAgfQorICAgIG15ICRldmVudHNQZXJJdGVyID0gJGJbMV07CisKKyAgICBvdXQoIkl0ZXJhdGlvbnMgcGVyIHBhc3M6ICRpdGVyQ291bnQ8QlI+XG4iKTsKKyAgICBvdXQoIkV2ZW50cyBwZXIgaXRlcmF0aW9uOiAkZXZlbnRzUGVySXRlcjxCUj5cbiIpOworCisgICAgbXkgQG1zX3N0ciA9IEBtczsKKyAgICAkbXNfc3RyWzBdIC49ICIgKGRpc2NhcmRlZCkiIGlmIChAbXNfc3RyID4gMSk7CisgICAgb3V0KCJSYXcgdGltZXMgKG1zL3Bhc3MpOiAiLCBqb2luKCIsICIsIEBtc19zdHIpLCAiPEJSPlxuIik7CisKKyAgICAoJGl0ZXJDb3VudCwgJGV2ZW50c1Blckl0ZXIsIEBtcyk7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgSW52b2tlIGphdmEgdG8gcnVuICRURVNUQ0xBU1MsIHBhc3NpbmcgaXQgdGhlIGdpdmVuIHBhcmFtZXRlcnMuCisjCisjIEBwYXJhbSB0aGUgbWV0aG9kIHRvIHJ1bgorIyBAcGFyYW0gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zLCBvciBpZiBuZWdhdGl2ZSwgdGhlIGR1cmF0aW9uCisjICAgICAgICBpbiBzZWNvbmRzLiAgSWYgbW9yZSB0aGFuIG9uIHBhc3MgaXMgZGVzaXJlZCwgcGFzcyBpbgorIyAgICAgICAgYSBzdHJpbmcsIGUuZy4sICIxMDAgMTAwIDEwMCIuCisjIEBwYXJhbSB0aGUgcGF0dGVybiBkZWZpbmluZyBjaGFyYWN0ZXJzIHRvIHRlc3QKKyMKKyMgQHJldHVybiBhbiBhcnJheSBvZiByZXN1bHRzLiAgRWFjaCByZXN1bHQgaXMgYW4gYXJyYXkgUkVGCisjICAgICAgICAgZGVzY3JpYmluZyBvbmUgcGFzcy4gIFRoZSBhcnJheSBSRUYgY29udGFpbnM6CisjICAgICAgICAgLT5bMF06IFRoZSBtZXRob2QgbmFtZSBhcyByZXBvcnRlZAorIyAgICAgICAgIC0+WzFdOiBUaGUgcGFyYW1zIG9uIHRoZSAnPSA8bWV0aD4gYmVnaW4gLi4uJyBsaW5lCisjICAgICAgICAgLT5bMl06IFRoZSBwYXJhbXMgb24gdGhlICc9IDxtZXRoPiBlbmQgLi4uJyBsaW5lCisjICAgICAgICAgLT5bMy4uXTogR0MgbWVzc2FnZXMgZnJvbSB0aGUgSlZNLCBpZiBhbnkKKyMKK3N1YiBjYWxsSmF2YSB7CisgICAgbXkgJG1ldGhvZCA9IHNoaWZ0OworICAgIG15ICRwYXQgPSBzaGlmdDsKKyAgICBteSAkbiA9IHNoaWZ0OworCisgICAgbXkgJGNtZCA9ICJqYXZhIC1jcCBjbGFzc2VzICRURVNUQ0xBU1MgJG1ldGhvZCAkbiAkcGF0IjsKKyAgICAjIHByaW50ICJbJGNtZF1cbiI7ICMgZm9yIGRlYnVnZ2luZworICAgIG9wZW4oUElQRSwgIiRjbWR8Iikgb3IgZGllICJDYW4ndCBydW4gXCIkY21kXCIiOworICAgIG15IEBvdXQ7CisgICAgd2hpbGUgKDxQSVBFPikgeworICAgICAgICBwdXNoKEBvdXQsICRfKTsKKyAgICB9CisgICAgY2xvc2UoUElQRSkgb3IgZGllICJKYXZhIGZhaWxlZDogXCIkY21kXCIiOworCisgICAgQG91dCA9IGdyZXAoIS9eXCMvLCBAb3V0KTsgICMgZmlsdGVyIG91dCBjb21tZW50cworCisgICAgI3ByaW50ICJbIiwgam9pbigiXG4iLCBAb3V0KSwgIl1cbiI7CisKKyAgICBteSBAcmVzdWx0czsKKyAgICBteSAkbWV0aG9kID0gJyc7CisgICAgbXkgJGRhdGEgPSBbXTsKKyAgICBmb3JlYWNoIChAb3V0KSB7CisgICAgICAgIG5leHQgdW5sZXNzICgvXFMvKTsKKworICAgICAgICBpZiAoL149XHMqKFx3KylccyooXHcrKVxzKiguKikvKSB7CisgICAgICAgICAgICBteSAoJG0sICRzdGF0ZSwgJGQpID0gKCQxLCAkMiwgJDMpOworICAgICAgICAgICAgI3ByaW50ICIkXyA9PiBbWyRtICRzdGF0ZSAkZGF0YV1dXG4iOworICAgICAgICAgICAgaWYgKCRzdGF0ZSBlcSAnYmVnaW4nKSB7CisgICAgICAgICAgICAgICAgZGllICIkbWV0aG9kIHdhcyBiZWd1biBidXQgbm90IGZpbmlzaGVkIiBpZiAoJG1ldGhvZCk7CisgICAgICAgICAgICAgICAgJG1ldGhvZCA9ICRtOworICAgICAgICAgICAgICAgIHB1c2goQCRkYXRhLCAkZCk7CisgICAgICAgICAgICAgICAgcHVzaChAJGRhdGEsICcnKTsgIyBwbGFjZWhvbGRlciBmb3IgZW5kIGRhdGEKKyAgICAgICAgICAgIH0gZWxzaWYgKCRzdGF0ZSBlcSAnZW5kJykgeworICAgICAgICAgICAgICAgIGlmICgkbSBuZSAkbWV0aG9kKSB7CisgICAgICAgICAgICAgICAgICAgIGRpZSAiJG1ldGhvZCBlbmQgZG9lcyBub3QgbWF0Y2g6ICRfIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJGRhdGEtPlsxXSA9ICRkOyAjIGluc2VydCBlbmQgZGF0YSBhdCBbMV0KKyAgICAgICAgICAgICAgICAjcHJpbnQgIiMkbWV0aG9kOiIsIGpvaW4oIjsiLEAkZGF0YSksICJcbiI7CisgICAgICAgICAgICAgICAgdW5zaGlmdChAJGRhdGEsICRtZXRob2QpOyAjIGFkZCBtZXRob2QgdG8gc3RhcnQKKyAgICAgICAgICAgICAgICBwdXNoKEByZXN1bHRzLCAkZGF0YSk7CisgICAgICAgICAgICAgICAgJG1ldGhvZCA9ICcnOworICAgICAgICAgICAgICAgICRkYXRhID0gW107CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2U6ICRfIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGVsc2lmICgvXlxbLykgeworICAgICAgICAgICAgaWYgKCRtZXRob2QpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEAkZGF0YSwgJF8pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAjIGlnbm9yZSBleHRyYW5lb3VzIEdDIG5vdGljZXMKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZGllICJDYW4ndCBwYXJzZTogJF8iOworICAgICAgICB9CisgICAgfQorCisgICAgZGllICIkbWV0aG9kIHdhcyBiZWd1biBidXQgbm90IGZpbmlzaGVkIiBpZiAoJG1ldGhvZCk7CisKKyAgICBAcmVzdWx0czsKK30KKworI3wjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjfCMgRm9ybWF0IGEgY29uZmlkZW5jZSBpbnRlcnZhbCwgYXMgZ2l2ZW4gYnkgYSBEYXRhc2V0LiAgT3V0cHV0IGlzIGFzCisjfCMgYXMgZm9sbG93czoKKyN8IyAgIDI0MS4yMyAtIDI0MS45OCA9PiAyNDEuNSArLy0gMC4zCisjfCMgICAyNDEuMiAtIDI0My44ID0+IDI0MiArLy0gMQorI3wjICAgMjExLjAgLSAyNDEuMCA9PiAyMjYgKy8tIDE1IG9yPyAyMzAgKy8tIDIwCisjfCMgICAyMjAuMyAtIDIzNC4zID0+IDIyNyArLy0gNworI3wjICAgMjIwLjMgLSAzMDAuMyA9PiAyNjAgKy8tIDQwCisjfCMgICAyMjAuMyAtIDEwMDAgPT4gNjEwICsvLSAzOTAgb3I/IDYwMCArLy0gNDAwCisjfCMgICAwLjAyMiAtIDAuMDI0ID0+IDAuMDIzICsvLSAwLjAwMQorI3wjICAgMC4wMjIgLSAwLjAzMiA9PiAwLjAyNyArLy0gMC4wMDUKKyN8IyAgIDAuMDIyIC0gMS4wMDAgPT4gMC41ICsvLSAwLjUKKyN8IyBJbiBvdGhlciB3b3JkcywgdGFrZSBvbmUgc2lnbmlmaWNhbnQgZGlnaXQgb2YgdGhlIGVycm9yIHZhbHVlIGFuZAorI3wjIGRpc3BsYXkgdGhlIG1lYW4gdG8gdGhlIHNhbWUgcHJlY2lzaW9uLgorI3xzdWIgZm9ybWF0RGF0YXNldCB7CisjfCAgICBteSAkZHMgPSBzaGlmdDsKKyN8ICAgIG15ICRsb3dlciA9ICRkcy0+Z2V0TWVhbigpIC0gJGRzLT5nZXRFcnJvcigpOworI3wgICAgbXkgJHVwcGVyID0gJGRzLT5nZXRNZWFuKCkgKyAkZHMtPmdldEVycm9yKCk7CisjfCAgICBteSAkc2NhbGUgPSAwOworI3wgICAgIyBGaW5kIGhvdyBtYW55IGluaXRpYWwgZGlnaXRzIGFyZSB0aGUgc2FtZQorI3wgICAgd2hpbGUgKCRsb3dlciA8IDEgfHwKKyN8ICAgICAgICAgICBpbnQoJGxvd2VyKSA9PSBpbnQoJHVwcGVyKSkgeworI3wgICAgICAgICRsb3dlciAqPSAxMDsKKyN8ICAgICAgICAkdXBwZXIgKj0gMTA7CisjfCAgICAgICAgJHNjYWxlKys7CisjfCAgICB9CisjfCAgICB3aGlsZSAoJGxvd2VyID49IDEwICYmCisjfCAgICAgICAgICAgaW50KCRsb3dlcikgPT0gaW50KCR1cHBlcikpIHsKKyN8ICAgICAgICAkbG93ZXIgLz0gMTA7CisjfCAgICAgICAgJHVwcGVyIC89IDEwOworI3wgICAgICAgICRzY2FsZS0tOworI3wgICAgfQorI3x9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgbnVtYmVyLCBvcHRpb25hbGx5IHdpdGggYSArLy0gZGVsdGEsIHRvIG4gc2lnbmlmaWNhbnQKKyMgZGlnaXRzLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gbXVsdGlwbGllcgorIyBAcGFyYW0gdGltZSBpbiBzZWNvbmRzIHRvIGJlIGZvcm1hdHRlZAorIyBAb3B0aW9uYWwgZGVsdGEgaW4gc2Vjb25kcworIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMjMiIG9yICIyMyArLy0gMTAiLgorIworc3ViIGZvcm1hdE51bWJlciB7CisgICAgbXkgJHNpZ2RpZyA9IHNoaWZ0OworICAgIG15ICRtdWx0ID0gc2hpZnQ7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkZGVsdGEgPSBzaGlmdDsgIyBtYXkgYmUgdW5kZWYKKyAgICAKKyAgICBteSAkcmVzdWx0ID0gZm9ybWF0U2lnRGlnKCRzaWdkaWcsICRhKiRtdWx0KTsKKyAgICBpZiAoZGVmaW5lZCgkZGVsdGEpKSB7CisgICAgICAgIG15ICRkID0gZm9ybWF0U2lnRGlnKCRzaWdkaWcsICRkZWx0YSokbXVsdCk7CisgICAgICAgICMgcmVzdHJpY3QgUFJFQ0lTSU9OIG9mIGRlbHRhIHRvIHRoYXQgb2YgbWFpbiBudW1iZXIKKyAgICAgICAgaWYgKCRyZXN1bHQgPX4gL1wuKFxkKykvKSB7CisgICAgICAgICAgICAjIFRPRE8gbWFrZSB0aGlzIHdvcmsgZm9yIHZhbHVlcyB3aXRoIGFsbCBzaWduaWZpY2FudAorICAgICAgICAgICAgIyBkaWdpdHMgdG8gdGhlIGxlZnQgb2YgdGhlIGRlY2ltYWwsIGUuZy4sIDEyMzQwMDAuCisKKyAgICAgICAgICAgICMgVE9ETyB0aGUgb3RoZXIgdGhpbmcgd3Jvbmcgd2l0aCB0aGlzIGlzIHRoYXQgaXQKKyAgICAgICAgICAgICMgaXNuJ3Qgcm91bmRpbmcgdGhlICRkZWx0YSBwcm9wZXJseS4gIEhhdmUgdG8gcHV0CisgICAgICAgICAgICAjIHRoaXMgbG9naWMgaW50byBmb3JtYXRTaWdEaWcoKS4KKyAgICAgICAgICAgIG15ICR4ID0gbGVuZ3RoKCQxKTsKKyAgICAgICAgICAgICRkID1+IHMvXC4oXGR7JHh9KVxkKy8uJDEvOworICAgICAgICB9CisgICAgICAgICRyZXN1bHQgLj0gIiAkUExVU19NSU5VUyAiIC4gJGQ7CisgICAgfQorICAgICRyZXN1bHQ7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgdGltZSwgb3B0aW9uYWxseSB3aXRoIGEgKy8tIGRlbHRhLCB0byBuIHNpZ25pZmljYW50CisjIGRpZ2l0cy4KKyMKKyMgQHBhcmFtIHNpZ25pZmljYW50IGRpZ2l0LCBhIHZhbHVlID49IDEKKyMgQHBhcmFtIHRpbWUgaW4gc2Vjb25kcyB0byBiZSBmb3JtYXR0ZWQKKyMgQG9wdGlvbmFsIGRlbHRhIGluIHNlY29uZHMKKyMKKyMgQHJldHVybiBzdHJpbmcgb2YgdGhlIGZvcm0gIjIzIG1zIiBvciAiMjMgKy8tIDEwIG1zIi4KKyMKK3N1YiBmb3JtYXRTZWNvbmRzIHsKKyAgICBteSAkc2lnZGlnID0gc2hpZnQ7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkZGVsdGEgPSBzaGlmdDsgIyBtYXkgYmUgdW5kZWYKKworICAgIG15IEBNVUxUID0gKDEgICAsIDFlMywgIDFlNiwgIDFlOSk7CisgICAgbXkgQFNVRkYgPSAoJ3MnICwgJ21zJywgJ3VzJywgJ25zJyk7CisKKyAgICAjIERldGVybWluZSBvdXIgc2NhbGUKKyAgICBteSAkaSA9IDA7CisgICAgKyskaSB3aGlsZSAoJGEqJE1VTFRbJGldIDwgMSAmJiAkaSA8IEBNVUxUKTsKKyAgICAKKyAgICBmb3JtYXROdW1iZXIoJHNpZ2RpZywgJE1VTFRbJGldLCAkYSwgJGRlbHRhKSAuICcgJyAuICRTVUZGWyRpXTsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGb3JtYXQgYSBwZXJjZW50YWdlLCBvcHRpb25hbGx5IHdpdGggYSArLy0gZGVsdGEsIHRvIG4gc2lnbmlmaWNhbnQKKyMgZGlnaXRzLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gdmFsdWUgdG8gYmUgZm9ybWF0dGVkLCBhcyBhIGZyYWN0aW9uLCBlLmcuIDAuNSBmb3IgNTAlCisjIEBvcHRpb25hbCBkZWx0YSwgYXMgYSBmcmFjdGlvbgorIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMjMgJSIgb3IgIjIzICsvLSAxMCAlIi4KKyMKK3N1YiBmb3JtYXRQZXJjZW50IHsKKyAgICBteSAkc2lnZGlnID0gc2hpZnQ7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkZGVsdGEgPSBzaGlmdDsgIyBtYXkgYmUgdW5kZWYKKyAgICAKKyAgICBmb3JtYXROdW1iZXIoJHNpZ2RpZywgMTAwLCAkYSwgJGRlbHRhKSAuICcgJSc7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgbnVtYmVyIHRvIG4gc2lnbmlmaWNhbnQgZGlnaXRzIHdpdGhvdXQgdXNpbmcgZXhwb25lbnRpYWwKKyMgbm90YXRpb24uCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSBudW1iZXIgdG8gYmUgZm9ybWF0dGVkCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIxMjM0IiAiMTIuMzQiIG9yICIwLjAwMTIzNCIuICBJZgorIyAgICAgICAgIG51bWJlciB3YXMgbmVnYXRpdmUsIHByZWZpeGVkIGJ5ICctJy4KKyMKK3N1YiBmb3JtYXRTaWdEaWcgeworICAgIG15ICRuID0gc2hpZnQoKSAtIDE7CisgICAgbXkgJGEgPSBzaGlmdDsKKworICAgIGxvY2FsICRfID0gc3ByaW50ZigiJS4ke259ZSIsICRhKTsKKyAgICBteSAkc2lnbiA9IChzL14tLy8pID8gJy0nIDogJyc7CisKKyAgICBteSAkYV9lOworICAgIG15ICRyZXN1bHQ7CisgICAgaWYgKC9eKFxkKVwuKFxkKyllKFstK11cZCspJC8pIHsKKyAgICAgICAgbXkgKCRkLCAkZG4sICRlKSA9ICgkMSwgJDIsICQzKTsKKyAgICAgICAgJGFfZSA9ICRlOworICAgICAgICAkZCAuPSAkZG47CisgICAgICAgICRlKys7CisgICAgICAgICRkIC49ICcwJyB3aGlsZSAoJGUgPiBsZW5ndGgoJGQpKTsKKyAgICAgICAgd2hpbGUgKCRlIDwgMSkgeworICAgICAgICAgICAgJGUrKzsKKyAgICAgICAgICAgICRkID0gJzAnIC4gJGQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCRlID09IGxlbmd0aCgkZCkpIHsKKyAgICAgICAgICAgICRyZXN1bHQgPSAkc2lnbiAuICRkOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHJlc3VsdCA9ICRzaWduIC4gc3Vic3RyKCRkLCAwLCAkZSkgLiAnLicgLiBzdWJzdHIoJGQsICRlKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2UgJF8iOworICAgIH0KKyAgICAkcmVzdWx0OworfQorCisjZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi91Y2hhcmFjdGVycGVyZi5wbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9wZXJmL3VjaGFyYWN0ZXJwZXJmLnBsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRiNTYyNzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZi91Y2hhcmFjdGVycGVyZi5wbApAQCAtMCwwICsxLDQ4OSBAQAorIy8qKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICovCisKKyMhL3Vzci9sb2NhbC9iaW4vcGVybAorCit1c2Ugc3RyaWN0OworCisjIEFzc3VtZSB3ZSBhcmUgcnVubmluZyB3aXRoaW4gdGhlIGljdTRqIHJvb3QgZGlyZWN0b3J5Cit1c2UgbGliICdzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcGVyZic7CisKK3VzZSBEYXRhc2V0OworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgY2xhc3MKK215ICRURVNUQ0xBU1MgPSAnY29tLmlibS5pY3UuZGV2LnRlc3QucGVyZi5VQ2hhcmFjdGVyUGVyZic7CisKKyMgTWV0aG9kcyB0byBiZSB0ZXN0ZWQuICBFYWNoIHBhaXIgcmVwcmVzZW50cyBhIHRlc3QgbWV0aG9kIGFuZAorIyBhIGJhc2VsaW5lIG1ldGhvZCB3aGljaCBpcyB1c2VkIGZvciBjb21wYXJpc29uLgorbXkgQE1FVEhPRFMgID0gKFsnRGlnaXQnLCAnSkRLRGlnaXQnXSwKKyAgICAgICAgICAgICAgICBbJ0dldE51bWVyaWNWYWx1ZScsICdKREtHZXROdW1lcmljVmFsdWUnXSwKKyAgICAgICAgICAgICAgICBbJ0dldFR5cGUnLCAnSkRLR2V0VHlwZSddLAorICAgICAgICAgICAgICAgIFsnSXNEZWZpbmVkJywgJ0pES0lzRGVmaW5lZCddLAorICAgICAgICAgICAgICAgIFsnSXNEaWdpdCcsICdKREtJc0RpZ2l0J10sCisgICAgICAgICAgICAgICAgWydJc0lkZW50aWZpZXJJZ25vcmFibGUnLCAnSkRLSXNJZGVudGlmaWVySWdub3JhYmxlJ10sCisgICAgICAgICAgICAgICAgWydJc0lTT0NvbnRyb2wnLCAnSkRLSXNJU09Db250cm9sJ10sCisgICAgICAgICAgICAgICAgWydJc0xldHRlcicsICdKREtJc0xldHRlciddLAorICAgICAgICAgICAgICAgIFsnSXNMZXR0ZXJPckRpZ2l0JywgJ0pES0lzTGV0dGVyT3JEaWdpdCddLAorICAgICAgICAgICAgICAgIFsnSXNMb3dlckNhc2UnLCAnSkRLSXNMb3dlckNhc2UnXSwKKyAgICAgICAgICAgICAgICBbJ0lzU3BhY2VDaGFyJywgJ0pES0lzU3BhY2VDaGFyJ10sCisgICAgICAgICAgICAgICAgWydJc1RpdGxlQ2FzZScsICdKREtJc1RpdGxlQ2FzZSddLAorICAgICAgICAgICAgICAgIFsnSXNVbmljb2RlSWRlbnRpZmllclBhcnQnLCAnSkRLSXNVbmljb2RlSWRlbnRpZmllclBhcnQnXSwKKyAgICAgICAgICAgICAgICBbJ0lzVW5pY29kZUlkZW50aWZpZXJTdGFydCcsICdKREtJc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQnXSwKKyAgICAgICAgICAgICAgICBbJ0lzVXBwZXJDYXNlJywgJ0pES0lzVXBwZXJDYXNlJ10sCisgICAgICAgICAgICAgICAgWydJc1doaXRlU3BhY2UnLCAnSkRLSXNXaGl0ZVNwYWNlJ10sCisgICAgICAgICAgICAgICApOworCisjIFBhdHRlcm5zIHdoaWNoIGRlZmluZSB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgdXNlZCBmb3IgdGVzdGluZy4KK215IEBQQVRURVJOUyA9ICgnMCBmZmZmJyk7CisKK215ICRDQUxJQlJBVEUgPSAyOyAjIGR1cmF0aW9uIGluIHNlY29uZHMgZm9yIGluaXRpYWwgY2FsaWJyYXRpb24KK215ICREVVJBVElPTiA9IDEwOyAjIGR1cmF0aW9uIGluIHNlY29uZHMgZm9yIGVhY2ggcGFzcworbXkgJE5VTVBBU1NFUyA9IDQ7ICMgbnVtYmVyIG9mIHBhc3Nlcy4gIElmID4gMSB0aGVuIHRoZSBmaXJzdCBwYXNzCisgICAgICAgICAgICAgICAgICAgIyBpcyBkaXNjYXJkZWQgYXMgYSBKSVQgd2FybS11cCBwYXNzLgorCitteSAkVEFCTEVBVFRSID0gJ0JPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjQiIENFTExTUEFDSU5HPSIwIic7CisKK215ICRQTFVTX01JTlVTID0gIiZwbHVzbW47IjsKKworaWYgKCROVU1QQVNTRVMgPCAzKSB7CisgICAgZGllICJOZWVkIGF0IGxlYXN0IDMgcGFzc2VzLiAgT25lIGlzIGRpc2NhcmRlZCAoSklUIHdhcm11cCkgYW5kIG5lZWQgdHdvIHRvIGhhdmUgMSBkZWdyZWUgb2YgZnJlZWRvbSAodCBkaXN0cmlidXRpb24pLiI7Cit9CisKK215ICRPVVQ7ICMgc2VlIG91dCgpCisKK21haW4oKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAuLi4KK3N1YiBtYWluIHsKKyAgICBteSAkZGF0ZSA9IGxvY2FsdGltZTsKKyAgICBteSAkdGl0bGUgPSAiSUNVNEogUGVyZm9ybWFuY2UgVGVzdCAkZGF0ZSI7CisKKyAgICBteSAkaHRtbCA9ICRkYXRlOworICAgICRodG1sID1+IHMvOi8vZzsgIyAnOicgaWxsZWdhbAorICAgICRodG1sID1+IHMvXHMqXGQrJC8vOyAjIGRlbGV0ZSB5ZWFyCisgICAgJGh0bWwgPX4gcy9eXHcrXHMqLy87ICMgZGVsZXRlIGRvdworICAgICRodG1sID0gInBlcmYgJGh0bWwuaHRtbCI7CisKKyAgICBvcGVuKEhUTUwsIj4kaHRtbCIpIG9yIGRpZSAiQ2FuJ3Qgd3JpdGUgdG8gJGh0bWw6ICQhIjsKKworICAgIHByaW50IEhUTUwgPDxFT0Y7Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iCisgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+Cis8SFRNTD4KKyAgIDxIRUFEPgorICAgICAgPFRJVExFPiR0aXRsZTwvVElUTEU+CisgICA8L0hFQUQ+CisgICA8Qk9EWT4KK0VPRgorICAgIHByaW50IEhUTUwgIjxIMT4kdGl0bGU8L0gxPlxuIjsKKworICAgIHByaW50IEhUTUwgIjxIMj4kVEVTVENMQVNTPC9IMj5cbiI7CisKKyAgICBteSAkcmF3ID0gIiI7CisKKyAgICBmb3IgbXkgJG1ldGhvZFBhaXIgKEBNRVRIT0RTKSB7CisKKyAgICAgICAgbXkgJHRlc3RNZXRob2QgPSAkbWV0aG9kUGFpci0+WzBdOworICAgICAgICBteSAkYmFzZWxpbmVNZXRob2QgPSAkbWV0aG9kUGFpci0+WzFdOworCisgICAgICAgIHByaW50IEhUTUwgIjxQPjxUQUJMRSAkVEFCTEVBVFRSPjxUUj48VEQ+XG4iOworICAgICAgICBwcmludCBIVE1MICI8UD48Qj4kdGVzdE1ldGhvZCB2cy4gJGJhc2VsaW5lTWV0aG9kPC9CPjwvUD5cbiI7CisgICAgICAgIAorICAgICAgICBwcmludCBIVE1MICI8UD48VEFCTEUgJFRBQkxFQVRUUiBCR0NPTE9SPVwiI0NDRkZGRlwiPlxuIjsKKyAgICAgICAgcHJpbnQgSFRNTCAiPFRSPjxURD5QYXR0ZXJuPC9URD48VEQ+JHRlc3RNZXRob2Q8L1REPiI7CisgICAgICAgIHByaW50IEhUTUwgIjxURD4kYmFzZWxpbmVNZXRob2Q8L1REPjxURD5SYXRpbzwvVEQ+PC9UUj5cbiI7CisKKyAgICAgICAgJE9VVCA9ICcnOworCisgICAgICAgIGZvciBteSAkcGF0IChAUEFUVEVSTlMpIHsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxUUj48VEQ+JHBhdDwvVEQ+XG4iOworCisgICAgICAgICAgICBvdXQoIjxQPjxUQUJMRSAkVEFCTEVBVFRSIFdJRFRIPVwiMTAwJVwiPiIpOworCisgICAgICAgICAgICAjIG1lYXN1cmUgdGhlIHRlc3QgbWV0aG9kCisgICAgICAgICAgICBvdXQoIjxUUj48VEQ+Iik7CisgICAgICAgICAgICBwcmludCAiXG4kdGVzdE1ldGhvZCAkcGF0XG4iOworICAgICAgICAgICAgbXkgJHQgPSBtZWFzdXJlMigkdGVzdE1ldGhvZCwgJHBhdCwgLSREVVJBVElPTik7CisgICAgICAgICAgICBvdXQoIjwvVEQ+PC9UUj4iKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxURD4iLCBmb3JtYXRTZWNvbmRzKDQsICR0LT5nZXRNZWFuKCksICR0LT5nZXRFcnJvcik7CisgICAgICAgICAgICBwcmludCBIVE1MICIvZXZlbnQ8L1REPlxuIjsKKworICAgICAgICAgICAgIyBtZWFzdXJlIGJhc2VsaW5lIG1ldGhvZAorICAgICAgICAgICAgb3V0KCI8VFI+PFREPiIpOworICAgICAgICAgICAgcHJpbnQgIlxuQmVnaW4gJGJhc2VsaW5lTWV0aG9kICRwYXRcbiI7CisgICAgICAgICAgICBteSAkYiA9IG1lYXN1cmUyKCRiYXNlbGluZU1ldGhvZCwgJHBhdCwgLSREVVJBVElPTik7CisgICAgICAgICAgICBvdXQoIjwvVEQ+PC9UUj4iKTsKKyAgICAgICAgICAgIHByaW50IEhUTUwgIjxURD4iLCBmb3JtYXRTZWNvbmRzKDQsICRiLT5nZXRNZWFuKCksICR0LT5nZXRFcnJvcik7CisgICAgICAgICAgICBwcmludCBIVE1MICIvZXZlbnQ8L1REPlxuIjsKKworICAgICAgICAgICAgb3V0KCI8L1RBQkxFPjwvUD4iKTsKKworICAgICAgICAgICAgIyBvdXRwdXQgcmF0aW8KKyAgICAgICAgICAgIG15ICRyID0gJHQtPmRpdmlkZSgkYik7CisgICAgICAgICAgICBwcmludCBIVE1MICI8VEQ+PEI+IiwgZm9ybWF0UGVyY2VudCgzLCAkci0+Z2V0TWVhbigpLCAkci0+Z2V0RXJyb3IpOworICAgICAgICAgICAgcHJpbnQgSFRNTCAiPC9CPjwvVEQ+PC9UUj5cbiI7CisgICAgICAgIH0KKworICAgICAgICBwcmludCBIVE1MICI8L1RBQkxFPjwvUD5cbiI7CisKKyAgICAgICAgcHJpbnQgSFRNTCAiPFA+UmF3IGRhdGE6PC9QPlxuIjsKKyAgICAgICAgcHJpbnQgSFRNTCAkT1VUOworICAgICAgICBwcmludCBIVE1MICI8L1RBQkxFPjwvUD5cbiI7CisgICAgfQorCisgICAgcHJpbnQgSFRNTCA8PEVPRjsKKyAgIDwvQk9EWT4KKzwvSFRNTD4KK0VPRgorICAgIGNsb3NlKEhUTUwpIG9yIGRpZSAiQ2FuJ3QgY2xvc2UgJGh0bWw6ICQhIjsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBBcHBlbmQgdGV4dCB0byB0aGUgZ2xvYmFsIHZhcmlhYmxlICRPVVQKK3N1YiBvdXQgeworICAgICRPVVQgLj0gam9pbignJywgQF8pOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEFwcGVuZCB0ZXh0IHRvIHRoZSBnbG9iYWwgdmFyaWFibGUgJE9VVAorc3ViIG91dGxuIHsKKyAgICAkT1VUIC49IGpvaW4oJycsIEBfKSAuICJcbiI7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgTWVhc3VyZSBhIGdpdmVuIHRlc3QgbWV0aG9kIHdpdGggYSBnaXZlIHRlc3QgcGF0dGVybiB1c2luZyB0aGUKKyMgZ2xvYmFsIHJ1biBwYXJhbWV0ZXJzLgorIworIyBAcGFyYW0gdGhlIG1ldGhvZCB0byBydW4KKyMgQHBhcmFtIHRoZSBwYXR0ZXJuIGRlZmluaW5nIGNoYXJhY3RlcnMgdG8gdGVzdAorIyBAcGFyYW0gaWYgPjAgdGhlbiB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgcGVyIHBhc3MuICBJZiA8MCB0aGVuCisjICAgICAgICAobmVnYXRpdmUgb2YpIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBwZXIgcGFzcy4KKyMKKyMgQHJldHVybiBhIERhdGFzZXQgb2JqZWN0LCBzY2FsZWQgYnkgaXRlcmF0aW9ucyBwZXIgcGFzcyBhbmQKKyMgICAgICAgICBldmVudHMgcGVyIGl0ZXJhdGlvbiwgdG8gZ2l2ZSB0aW1lIHBlciBldmVudAorIworc3ViIG1lYXN1cmUyIHsKKyAgICBteSBAZGF0YSA9IG1lYXN1cmUxKEBfKTsKKyAgICBteSAkaXRlclBlclBhc3MgPSBzaGlmdChAZGF0YSk7CisgICAgbXkgJGV2ZW50UGVySXRlciA9IHNoaWZ0KEBkYXRhKTsKKworICAgIHNoaWZ0KEBkYXRhKSBpZiAoQGRhdGEgPiAxKTsgIyBkaXNjYXJkIGZpcnN0IHJ1bgorCisgICAgbXkgJGRzID0gRGF0YXNldC0+bmV3KEBkYXRhKTsKKyAgICAkZHMtPnNldFNjYWxlKDEuMGUtMyAvICgkaXRlclBlclBhc3MgKiAkZXZlbnRQZXJJdGVyKSk7CisgICAgJGRzOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIE1lYXN1cmUgYSBnaXZlbiB0ZXN0IG1ldGhvZCB3aXRoIGEgZ2l2ZSB0ZXN0IHBhdHRlcm4gdXNpbmcgdGhlCisjIGdsb2JhbCBydW4gcGFyYW1ldGVycy4KKyMKKyMgQHBhcmFtIHRoZSBtZXRob2QgdG8gcnVuCisjIEBwYXJhbSB0aGUgcGF0dGVybiBkZWZpbmluZyBjaGFyYWN0ZXJzIHRvIHRlc3QKKyMgQHBhcmFtIGlmID4wIHRoZW4gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIHBlciBwYXNzLiAgSWYgPDAgdGhlbgorIyAgICAgICAgKG5lZ2F0aXZlIG9mKSB0aGUgbnVtYmVyIG9mIHNlY29uZHMgcGVyIHBhc3MuCisjCisjIEByZXR1cm4gYXJyYXkgb2Y6CisjICAgICAgICAgWzBdIGl0ZXJhdGlvbnMgcGVyIHBhc3MKKyMgICAgICAgICBbMV0gZXZlbnRzIHBlciBpdGVyYXRpb24KKyMgICAgICAgICBbMi4uXSBtcyByZXBvcnRlZCBmb3IgZWFjaCBwYXNzLCBpbiBvcmRlcgorIworc3ViIG1lYXN1cmUxIHsKKyAgICBteSAkbWV0aG9kID0gc2hpZnQ7CisgICAgbXkgJHBhdCA9IHNoaWZ0OworICAgIG15ICRpdGVyQ291bnQgPSBzaGlmdDsgIyBhY3R1YWxseSBtaWdodCBiZSAtc2Vjb25kcy9wYXNzCisKKyAgICBvdXQoIjxQPk1lYXN1cmluZyAkbWV0aG9kIHVzaW5nICRwYXQsICIpOworICAgIGlmICgkaXRlckNvdW50ID4gMCkgeworICAgICAgICBvdXQoIiRpdGVyQ291bnQgaXRlcmF0aW9ucy9wYXNzLCAkTlVNUEFTU0VTIHBhc3NlczwvUD5cbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIG91dCgtJGl0ZXJDb3VudCwgIiBzZWNvbmRzL3Bhc3MsICROVU1QQVNTRVMgcGFzc2VzPC9QPlxuIik7CisgICAgfQorCisgICAgIyBpcyAkaXRlckNvdW50IGFjdHVhbGx5IC1zZWNvbmRzPworICAgIGlmICgkaXRlckNvdW50IDwgMCkgeworCisgICAgICAgICMgY2FsaWJyYXRlOiBlc3RpbWF0ZSBtcy9pdGVyYXRpb24KKyAgICAgICAgcHJpbnQgIkNhbGlicmF0aW5nLi4uIjsKKyAgICAgICAgbXkgQHQgPSBjYWxsSmF2YSgkbWV0aG9kLCAkcGF0LCAtJENBTElCUkFURSk7CisgICAgICAgIHByaW50ICJkb25lLlxuIjsKKworICAgICAgICBteSBAZGF0YSA9IHNwbGl0KC9ccysvLCAkdFswXS0+WzJdKTsKKyAgICAgICAgbXkgJHRpbWVQZXJJdGVyID0gMS4wZS0zICogJGRhdGFbMF0gLyAkZGF0YVsyXTsKKyAgICAKKyAgICAgICAgIyBkZXRlcm1pbmUgaXRlcmF0aW9ucy9wYXNzCisgICAgICAgICRpdGVyQ291bnQgPSBpbnQoLSRpdGVyQ291bnQgLyAkdGltZVBlckl0ZXIgKyAwLjUpOworCisgICAgICAgIG91dCgiPFA+Q2FsaWJyYXRpb24gcGFzcyAoJENBTElCUkFURSBzZWMpOiAiKTsKKyAgICAgICAgb3V0KCIkZGF0YVswXSBtcywgIik7CisgICAgICAgIG91dCgiJGRhdGFbMl0gaXRlcmF0aW9ucyA9ICIpOworICAgICAgICBvdXQoZm9ybWF0U2Vjb25kcyg0LCAkdGltZVBlckl0ZXIpLCAiL2l0ZXJhdGlvbjxCUj5cbiIpOworICAgIH0KKyAgICAKKyAgICAjIHJ1biBwYXNzZXMKKyAgICBwcmludCAiTWVhc3VyaW5nICRpdGVyQ291bnQgaXRlcmF0aW9ucyB4ICROVU1QQVNTRVMgcGFzc2VzLi4uIjsKKyAgICBteSBAdCA9IGNhbGxKYXZhKCRtZXRob2QsICRwYXQsICIkaXRlckNvdW50ICIgeCAkTlVNUEFTU0VTKTsKKyAgICBwcmludCAiZG9uZS5cbiI7CisgICAgbXkgQG1zID0gKCk7CisgICAgbXkgQGI7ICMgc2NyYXRjaAorICAgIGZvciBteSAkYSAoQHQpIHsKKyAgICAgICAgIyAkYS0+WzBdOiBtZXRob2QgbmFtZSwgY29ycmVzcG9uZHMgdG8gJG1ldGhvZAorICAgICAgICAjICRhLT5bMV06ICdiZWdpbicgZGF0YSwgPT0gJGl0ZXJDb3VudAorICAgICAgICAjICRhLT5bMl06ICdlbmQnIGRhdGEsIG9mIHRoZSBmb3JtIDxtcz4gPGV2ZW50c1Blckl0ZXI+CisgICAgICAgICMgJGEtPlszLi4uXTogZ2MgbWVzc2FnZXMgZnJvbSBKVk0gZHVyaW5nIHBhc3MKKyAgICAgICAgQGIgPSBzcGxpdCgvXHMrLywgJGEtPlsyXSk7CisgICAgICAgIHB1c2goQG1zLCAkYlswXSk7CisgICAgfQorICAgIG15ICRldmVudHNQZXJJdGVyID0gJGJbMV07CisKKyAgICBvdXQoIkl0ZXJhdGlvbnMgcGVyIHBhc3M6ICRpdGVyQ291bnQ8QlI+XG4iKTsKKyAgICBvdXQoIkV2ZW50cyBwZXIgaXRlcmF0aW9uOiAkZXZlbnRzUGVySXRlcjxCUj5cbiIpOworCisgICAgbXkgQG1zX3N0ciA9IEBtczsKKyAgICAkbXNfc3RyWzBdIC49ICIgKGRpc2NhcmRlZCkiIGlmIChAbXNfc3RyID4gMSk7CisgICAgb3V0KCJSYXcgdGltZXMgKG1zL3Bhc3MpOiAiLCBqb2luKCIsICIsIEBtc19zdHIpLCAiPEJSPlxuIik7CisKKyAgICAoJGl0ZXJDb3VudCwgJGV2ZW50c1Blckl0ZXIsIEBtcyk7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgSW52b2tlIGphdmEgdG8gcnVuICRURVNUQ0xBU1MsIHBhc3NpbmcgaXQgdGhlIGdpdmVuIHBhcmFtZXRlcnMuCisjCisjIEBwYXJhbSB0aGUgbWV0aG9kIHRvIHJ1bgorIyBAcGFyYW0gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zLCBvciBpZiBuZWdhdGl2ZSwgdGhlIGR1cmF0aW9uCisjICAgICAgICBpbiBzZWNvbmRzLiAgSWYgbW9yZSB0aGFuIG9uIHBhc3MgaXMgZGVzaXJlZCwgcGFzcyBpbgorIyAgICAgICAgYSBzdHJpbmcsIGUuZy4sICIxMDAgMTAwIDEwMCIuCisjIEBwYXJhbSB0aGUgcGF0dGVybiBkZWZpbmluZyBjaGFyYWN0ZXJzIHRvIHRlc3QsIHZhbHVlcyBpbiBoZXggZGlnaXRzIHdpdGhvdXQgMHgKKyMKKyMgQHJldHVybiBhbiBhcnJheSBvZiByZXN1bHRzLiAgRWFjaCByZXN1bHQgaXMgYW4gYXJyYXkgUkVGCisjICAgICAgICAgZGVzY3JpYmluZyBvbmUgcGFzcy4gIFRoZSBhcnJheSBSRUYgY29udGFpbnM6CisjICAgICAgICAgLT5bMF06IFRoZSBtZXRob2QgbmFtZSBhcyByZXBvcnRlZAorIyAgICAgICAgIC0+WzFdOiBUaGUgcGFyYW1zIG9uIHRoZSAnPSA8bWV0aD4gYmVnaW4gLi4uJyBsaW5lCisjICAgICAgICAgLT5bMl06IFRoZSBwYXJhbXMgb24gdGhlICc9IDxtZXRoPiBlbmQgLi4uJyBsaW5lCisjICAgICAgICAgLT5bMy4uXTogR0MgbWVzc2FnZXMgZnJvbSB0aGUgSlZNLCBpZiBhbnkKKyMKK3N1YiBjYWxsSmF2YSB7CisgICAgbXkgJG1ldGhvZCA9IHNoaWZ0OworICAgIG15ICRwYXQgPSBzaGlmdDsKKyAgICBteSAkbiA9IHNoaWZ0OworCisgICAgbXkgJGNtZCA9ICJqYXZhIC1jcCBjbGFzc2VzICRURVNUQ0xBU1MgJG1ldGhvZCAkbiAtICRwYXQiOworICAgIHByaW50ICJbJGNtZF1cbiI7ICMgZm9yIGRlYnVnZ2luZworICAgIG9wZW4oUElQRSwgIiRjbWR8Iikgb3IgZGllICJDYW4ndCBydW4gXCIkY21kXCIiOworICAgIG15IEBvdXQ7CisgICAgd2hpbGUgKDxQSVBFPikgeworICAgICAgICBwdXNoKEBvdXQsICRfKTsKKyAgICB9CisgICAgY2xvc2UoUElQRSkgb3IgZGllICJKYXZhIGZhaWxlZDogXCIkY21kXCIiOworCisgICAgQG91dCA9IGdyZXAoIS9eXCMvLCBAb3V0KTsgICMgZmlsdGVyIG91dCBjb21tZW50cworCisgICAgI3ByaW50ICJbIiwgam9pbigiXG4iLCBAb3V0KSwgIl1cbiI7CisKKyAgICBteSBAcmVzdWx0czsKKyAgICBteSAkbWV0aG9kID0gJyc7CisgICAgbXkgJGRhdGEgPSBbXTsKKyAgICBmb3JlYWNoIChAb3V0KSB7CisgICAgICAgIG5leHQgdW5sZXNzICgvXFMvKTsKKworICAgICAgICBpZiAoL149XHMqKFx3KylccyooXHcrKVxzKiguKikvKSB7CisgICAgICAgICAgICBteSAoJG0sICRzdGF0ZSwgJGQpID0gKCQxLCAkMiwgJDMpOworICAgICAgICAgICAgI3ByaW50ICIkXyA9PiBbWyRtICRzdGF0ZSAkZGF0YV1dXG4iOworICAgICAgICAgICAgaWYgKCRzdGF0ZSBlcSAnYmVnaW4nKSB7CisgICAgICAgICAgICAgICAgZGllICIkbWV0aG9kIHdhcyBiZWd1biBidXQgbm90IGZpbmlzaGVkIiBpZiAoJG1ldGhvZCk7CisgICAgICAgICAgICAgICAgJG1ldGhvZCA9ICRtOworICAgICAgICAgICAgICAgIHB1c2goQCRkYXRhLCAkZCk7CisgICAgICAgICAgICAgICAgcHVzaChAJGRhdGEsICcnKTsgIyBwbGFjZWhvbGRlciBmb3IgZW5kIGRhdGEKKyAgICAgICAgICAgIH0gZWxzaWYgKCRzdGF0ZSBlcSAnZW5kJykgeworICAgICAgICAgICAgICAgIGlmICgkbSBuZSAkbWV0aG9kKSB7CisgICAgICAgICAgICAgICAgICAgIGRpZSAiJG1ldGhvZCBlbmQgZG9lcyBub3QgbWF0Y2g6ICRfIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJGRhdGEtPlsxXSA9ICRkOyAjIGluc2VydCBlbmQgZGF0YSBhdCBbMV0KKyAgICAgICAgICAgICAgICAjcHJpbnQgIiMkbWV0aG9kOiIsIGpvaW4oIjsiLEAkZGF0YSksICJcbiI7CisgICAgICAgICAgICAgICAgdW5zaGlmdChAJGRhdGEsICRtZXRob2QpOyAjIGFkZCBtZXRob2QgdG8gc3RhcnQKKyAgICAgICAgICAgICAgICBwdXNoKEByZXN1bHRzLCAkZGF0YSk7CisgICAgICAgICAgICAgICAgJG1ldGhvZCA9ICcnOworICAgICAgICAgICAgICAgICRkYXRhID0gW107CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2U6ICRfIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGVsc2lmICgvXlxbLykgeworICAgICAgICAgICAgaWYgKCRtZXRob2QpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEAkZGF0YSwgJF8pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAjIGlnbm9yZSBleHRyYW5lb3VzIEdDIG5vdGljZXMKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZGllICJDYW4ndCBwYXJzZTogJF8iOworICAgICAgICB9CisgICAgfQorCisgICAgZGllICIkbWV0aG9kIHdhcyBiZWd1biBidXQgbm90IGZpbmlzaGVkIiBpZiAoJG1ldGhvZCk7CisKKyAgICBAcmVzdWx0czsKK30KKworI3wjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjfCMgRm9ybWF0IGEgY29uZmlkZW5jZSBpbnRlcnZhbCwgYXMgZ2l2ZW4gYnkgYSBEYXRhc2V0LiAgT3V0cHV0IGlzIGFzCisjfCMgYXMgZm9sbG93czoKKyN8IyAgIDI0MS4yMyAtIDI0MS45OCA9PiAyNDEuNSArLy0gMC4zCisjfCMgICAyNDEuMiAtIDI0My44ID0+IDI0MiArLy0gMQorI3wjICAgMjExLjAgLSAyNDEuMCA9PiAyMjYgKy8tIDE1IG9yPyAyMzAgKy8tIDIwCisjfCMgICAyMjAuMyAtIDIzNC4zID0+IDIyNyArLy0gNworI3wjICAgMjIwLjMgLSAzMDAuMyA9PiAyNjAgKy8tIDQwCisjfCMgICAyMjAuMyAtIDEwMDAgPT4gNjEwICsvLSAzOTAgb3I/IDYwMCArLy0gNDAwCisjfCMgICAwLjAyMiAtIDAuMDI0ID0+IDAuMDIzICsvLSAwLjAwMQorI3wjICAgMC4wMjIgLSAwLjAzMiA9PiAwLjAyNyArLy0gMC4wMDUKKyN8IyAgIDAuMDIyIC0gMS4wMDAgPT4gMC41ICsvLSAwLjUKKyN8IyBJbiBvdGhlciB3b3JkcywgdGFrZSBvbmUgc2lnbmlmaWNhbnQgZGlnaXQgb2YgdGhlIGVycm9yIHZhbHVlIGFuZAorI3wjIGRpc3BsYXkgdGhlIG1lYW4gdG8gdGhlIHNhbWUgcHJlY2lzaW9uLgorI3xzdWIgZm9ybWF0RGF0YXNldCB7CisjfCAgICBteSAkZHMgPSBzaGlmdDsKKyN8ICAgIG15ICRsb3dlciA9ICRkcy0+Z2V0TWVhbigpIC0gJGRzLT5nZXRFcnJvcigpOworI3wgICAgbXkgJHVwcGVyID0gJGRzLT5nZXRNZWFuKCkgKyAkZHMtPmdldEVycm9yKCk7CisjfCAgICBteSAkc2NhbGUgPSAwOworI3wgICAgIyBGaW5kIGhvdyBtYW55IGluaXRpYWwgZGlnaXRzIGFyZSB0aGUgc2FtZQorI3wgICAgd2hpbGUgKCRsb3dlciA8IDEgfHwKKyN8ICAgICAgICAgICBpbnQoJGxvd2VyKSA9PSBpbnQoJHVwcGVyKSkgeworI3wgICAgICAgICRsb3dlciAqPSAxMDsKKyN8ICAgICAgICAkdXBwZXIgKj0gMTA7CisjfCAgICAgICAgJHNjYWxlKys7CisjfCAgICB9CisjfCAgICB3aGlsZSAoJGxvd2VyID49IDEwICYmCisjfCAgICAgICAgICAgaW50KCRsb3dlcikgPT0gaW50KCR1cHBlcikpIHsKKyN8ICAgICAgICAkbG93ZXIgLz0gMTA7CisjfCAgICAgICAgJHVwcGVyIC89IDEwOworI3wgICAgICAgICRzY2FsZS0tOworI3wgICAgfQorI3x9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgbnVtYmVyLCBvcHRpb25hbGx5IHdpdGggYSArLy0gZGVsdGEsIHRvIG4gc2lnbmlmaWNhbnQKKyMgZGlnaXRzLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gbXVsdGlwbGllcgorIyBAcGFyYW0gdGltZSBpbiBzZWNvbmRzIHRvIGJlIGZvcm1hdHRlZAorIyBAb3B0aW9uYWwgZGVsdGEgaW4gc2Vjb25kcworIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMjMiIG9yICIyMyArLy0gMTAiLgorIworc3ViIGZvcm1hdE51bWJlciB7CisgICAgbXkgJHNpZ2RpZyA9IHNoaWZ0OworICAgIG15ICRtdWx0ID0gc2hpZnQ7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkZGVsdGEgPSBzaGlmdDsgIyBtYXkgYmUgdW5kZWYKKyAgICAKKyAgICBteSAkcmVzdWx0ID0gZm9ybWF0U2lnRGlnKCRzaWdkaWcsICRhKiRtdWx0KTsKKyAgICBpZiAoZGVmaW5lZCgkZGVsdGEpKSB7CisgICAgICAgIG15ICRkID0gZm9ybWF0U2lnRGlnKCRzaWdkaWcsICRkZWx0YSokbXVsdCk7CisgICAgICAgICMgcmVzdHJpY3QgUFJFQ0lTSU9OIG9mIGRlbHRhIHRvIHRoYXQgb2YgbWFpbiBudW1iZXIKKyAgICAgICAgaWYgKCRyZXN1bHQgPX4gL1wuKFxkKykvKSB7CisgICAgICAgICAgICAjIFRPRE8gbWFrZSB0aGlzIHdvcmsgZm9yIHZhbHVlcyB3aXRoIGFsbCBzaWduaWZpY2FudAorICAgICAgICAgICAgIyBkaWdpdHMgdG8gdGhlIGxlZnQgb2YgdGhlIGRlY2ltYWwsIGUuZy4sIDEyMzQwMDAuCisKKyAgICAgICAgICAgICMgVE9ETyB0aGUgb3RoZXIgdGhpbmcgd3Jvbmcgd2l0aCB0aGlzIGlzIHRoYXQgaXQKKyAgICAgICAgICAgICMgaXNuJ3Qgcm91bmRpbmcgdGhlICRkZWx0YSBwcm9wZXJseS4gIEhhdmUgdG8gcHV0CisgICAgICAgICAgICAjIHRoaXMgbG9naWMgaW50byBmb3JtYXRTaWdEaWcoKS4KKyAgICAgICAgICAgIG15ICR4ID0gbGVuZ3RoKCQxKTsKKyAgICAgICAgICAgICRkID1+IHMvXC4oXGR7JHh9KVxkKy8uJDEvOworICAgICAgICB9CisgICAgICAgICRyZXN1bHQgLj0gIiAkUExVU19NSU5VUyAiIC4gJGQ7CisgICAgfQorICAgICRyZXN1bHQ7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgdGltZSwgb3B0aW9uYWxseSB3aXRoIGEgKy8tIGRlbHRhLCB0byBuIHNpZ25pZmljYW50CisjIGRpZ2l0cy4KKyMKKyMgQHBhcmFtIHNpZ25pZmljYW50IGRpZ2l0LCBhIHZhbHVlID49IDEKKyMgQHBhcmFtIHRpbWUgaW4gc2Vjb25kcyB0byBiZSBmb3JtYXR0ZWQKKyMgQG9wdGlvbmFsIGRlbHRhIGluIHNlY29uZHMKKyMKKyMgQHJldHVybiBzdHJpbmcgb2YgdGhlIGZvcm0gIjIzIG1zIiBvciAiMjMgKy8tIDEwIG1zIi4KKyMKK3N1YiBmb3JtYXRTZWNvbmRzIHsKKyAgICBteSAkc2lnZGlnID0gc2hpZnQ7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkZGVsdGEgPSBzaGlmdDsgIyBtYXkgYmUgdW5kZWYKKworICAgIG15IEBNVUxUID0gKDEgICAsIDFlMywgIDFlNiwgIDFlOSk7CisgICAgbXkgQFNVRkYgPSAoJ3MnICwgJ21zJywgJ3VzJywgJ25zJyk7CisKKyAgICAjIERldGVybWluZSBvdXIgc2NhbGUKKyAgICBteSAkaSA9IDA7CisgICAgKyskaSB3aGlsZSAoJGEqJE1VTFRbJGldIDwgMSAmJiAkaSA8IEBNVUxUKTsKKyAgICAKKyAgICBmb3JtYXROdW1iZXIoJHNpZ2RpZywgJE1VTFRbJGldLCAkYSwgJGRlbHRhKSAuICcgJyAuICRTVUZGWyRpXTsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGb3JtYXQgYSBwZXJjZW50YWdlLCBvcHRpb25hbGx5IHdpdGggYSArLy0gZGVsdGEsIHRvIG4gc2lnbmlmaWNhbnQKKyMgZGlnaXRzLgorIworIyBAcGFyYW0gc2lnbmlmaWNhbnQgZGlnaXQsIGEgdmFsdWUgPj0gMQorIyBAcGFyYW0gdmFsdWUgdG8gYmUgZm9ybWF0dGVkLCBhcyBhIGZyYWN0aW9uLCBlLmcuIDAuNSBmb3IgNTAlCisjIEBvcHRpb25hbCBkZWx0YSwgYXMgYSBmcmFjdGlvbgorIworIyBAcmV0dXJuIHN0cmluZyBvZiB0aGUgZm9ybSAiMjMgJSIgb3IgIjIzICsvLSAxMCAlIi4KKyMKK3N1YiBmb3JtYXRQZXJjZW50IHsKKyAgICBteSAkc2lnZGlnID0gc2hpZnQ7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkZGVsdGEgPSBzaGlmdDsgIyBtYXkgYmUgdW5kZWYKKyAgICAKKyAgICBmb3JtYXROdW1iZXIoJHNpZ2RpZywgMTAwLCAkYSwgJGRlbHRhKSAuICcgJSc7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRm9ybWF0IGEgbnVtYmVyIHRvIG4gc2lnbmlmaWNhbnQgZGlnaXRzIHdpdGhvdXQgdXNpbmcgZXhwb25lbnRpYWwKKyMgbm90YXRpb24uCisjCisjIEBwYXJhbSBzaWduaWZpY2FudCBkaWdpdCwgYSB2YWx1ZSA+PSAxCisjIEBwYXJhbSBudW1iZXIgdG8gYmUgZm9ybWF0dGVkCisjCisjIEByZXR1cm4gc3RyaW5nIG9mIHRoZSBmb3JtICIxMjM0IiAiMTIuMzQiIG9yICIwLjAwMTIzNCIuICBJZgorIyAgICAgICAgIG51bWJlciB3YXMgbmVnYXRpdmUsIHByZWZpeGVkIGJ5ICctJy4KKyMKK3N1YiBmb3JtYXRTaWdEaWcgeworICAgIG15ICRuID0gc2hpZnQoKSAtIDE7CisgICAgbXkgJGEgPSBzaGlmdDsKKworICAgIGxvY2FsICRfID0gc3ByaW50ZigiJS4ke259ZSIsICRhKTsKKyAgICBteSAkc2lnbiA9IChzL14tLy8pID8gJy0nIDogJyc7CisKKyAgICBteSAkYV9lOworICAgIG15ICRyZXN1bHQ7CisgICAgaWYgKC9eKFxkKVwuKFxkKyllKFstK11cZCspJC8pIHsKKyAgICAgICAgbXkgKCRkLCAkZG4sICRlKSA9ICgkMSwgJDIsICQzKTsKKyAgICAgICAgJGFfZSA9ICRlOworICAgICAgICAkZCAuPSAkZG47CisgICAgICAgICRlKys7CisgICAgICAgICRkIC49ICcwJyB3aGlsZSAoJGUgPiBsZW5ndGgoJGQpKTsKKyAgICAgICAgd2hpbGUgKCRlIDwgMSkgeworICAgICAgICAgICAgJGUrKzsKKyAgICAgICAgICAgICRkID0gJzAnIC4gJGQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCRlID09IGxlbmd0aCgkZCkpIHsKKyAgICAgICAgICAgICRyZXN1bHQgPSAkc2lnbiAuICRkOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHJlc3VsdCA9ICRzaWduIC4gc3Vic3RyKCRkLCAwLCAkZSkgLiAnLicgLiBzdWJzdHIoJGQsICRlKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2UgJF8iOworICAgIH0KKyAgICAkcmVzdWx0OworfQorCisjZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9CcmVha0l0ZXJhdG9yUmVnVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvQnJlYWtJdGVyYXRvclJlZ1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2VjOTZjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvQnJlYWtJdGVyYXRvclJlZ1Rlc3QuamF2YQpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucmJiaTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgQnJlYWtJdGVyYXRvclJlZ1Rlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgQnJlYWtJdGVyYXRvclJlZ1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlZ1VucmVnKCkgeworICAgIExvY2FsZSB0aGFpbGFuZF9sb2NhbGUgPSBuZXcgTG9jYWxlKCJ0aCIsICJUSCIsICIiKTsKKyAgICBMb2NhbGUgZm9vX2xvY2FsZSA9IG5ldyBMb2NhbGUoImZ1IiwgIkZVIiwgIkZPTyIpOworICAgIEJyZWFrSXRlcmF0b3IgandiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5KQVBBTik7CisgICAgQnJlYWtJdGVyYXRvciB1d2JpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICBCcmVha0l0ZXJhdG9yIHVzYmkgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICBCcmVha0l0ZXJhdG9yIHR3YmkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSh0aGFpbGFuZF9sb2NhbGUpOworICAgIEJyZWFrSXRlcmF0b3IgcndiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKG5ldyBMb2NhbGUoIiIsICIiLCAiIikpOworCisgICAgQnJlYWtJdGVyYXRvciBzYmkgPSAoQnJlYWtJdGVyYXRvcil1c2JpLmNsb25lKCk7CisgICAgLy8gdG9kbzogdGhpcyB3aWxsIGNhdXNlIHRoZSB0ZXN0IHRvIGZhaWwsIG5vIHdheSB0byBzZXQgYSBicmVha2l0ZXJhdG9yIHRvIG51bGwgdGV4dCBzbyBjYW4ndCBmaXggeWV0LgorICAgIC8vIFN0cmluZyB0ZXh0ID0gIlRoaXMgaXMgc29tZSB0ZXN0LCBieSBnb2xseS4gQm95LCB0aGV5IGRvbid0IG1ha2UgdGVzdHMgbGlrZSB0aGV5IHVzZWQgdG8sIGRvIHRoZXk/ICBUaGlzIGhlcmUgdGVzdCBhaW4ndCB3b3J0aCAkMi41MC4gIE5vcGUuIjsKKyAgICAvLyBzYmkuc2V0VGV4dCh0ZXh0KTsKKworICAgIGFzc2VydFRydWUoIUJyZWFrSXRlcmF0b3IudW5yZWdpc3RlcigiIiksICJ1bnJlZ2lzdGVyIGJlZm9yZSByZWdpc3RlciIpOyAvLyBjb3ZlcmFnZQorCisgICAgT2JqZWN0IGtleTAgPSBCcmVha0l0ZXJhdG9yLnJlZ2lzdGVySW5zdGFuY2UoKEJyZWFrSXRlcmF0b3IpdHdiaS5jbG9uZSgpLCBmb29fbG9jYWxlLCBCcmVha0l0ZXJhdG9yLktJTkRfV09SRCk7CisgICAgT2JqZWN0IGtleTEgPSBCcmVha0l0ZXJhdG9yLnJlZ2lzdGVySW5zdGFuY2Uoc2JpLCBMb2NhbGUuVVMsIEJyZWFrSXRlcmF0b3IuS0lORF9XT1JEKTsKKyAgICBPYmplY3Qga2V5MiA9IEJyZWFrSXRlcmF0b3IucmVnaXN0ZXJJbnN0YW5jZSgoQnJlYWtJdGVyYXRvcil0d2JpLmNsb25lKCksIExvY2FsZS5VUywgQnJlYWtJdGVyYXRvci5LSU5EX1dPUkQpOworICAgIAorICAgIHsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB0ZXN0MCA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5KQVBBTik7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgdGVzdDEgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBCcmVha0l0ZXJhdG9yIHRlc3QyID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgdGVzdDMgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSh0aGFpbGFuZF9sb2NhbGUpOworICAgICAgICBCcmVha0l0ZXJhdG9yIHRlc3Q0ID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoZm9vX2xvY2FsZSk7CisKKyAgICAgICAgYXNzZXJ0RXF1YWwodGVzdDAsIGp3YmksICJqYXBhbiB3b3JkID09IGphcGFuIHdvcmQiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWwodGVzdDEsIHR3YmksICJ1cyB3b3JkID09IHRoYWkgd29yZCIpOworICAgICAgICBhc3NlcnRFcXVhbCh0ZXN0MiwgdXNiaSwgInVzIHNlbnRlbmNlID09IHVzIHNlbnRlbmNlIik7CisgICAgICAgIGFzc2VydEVxdWFsKHRlc3QzLCB0d2JpLCAidGhhaSB3b3JkID09IHRoYWkgd29yZCIpOworICAgICAgICBhc3NlcnRFcXVhbCh0ZXN0NCwgdHdiaSwgImZvbyB3b3JkID09IHRoYWkgd29yZCIpOworICAgIH0KKworICAgIExvY2FsZVtdIGxvY2FsZXMgPSBCcmVha0l0ZXJhdG9yLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAKKyAgICBhc3NlcnRUcnVlKEJyZWFrSXRlcmF0b3IudW5yZWdpc3RlcihrZXkyKSwgInVucmVnaXN0ZXIgdXMgd29yZCAodGhhaSB3b3JkKSIpOworICAgIGFzc2VydFRydWUoIUJyZWFrSXRlcmF0b3IudW5yZWdpc3RlcihrZXkyKSwgInVucmVnaXN0ZXIgc2Vjb25kIHRpbWUiKTsKKyAgICBib29sZWFuIGVycm9yID0gZmFsc2U7CisgICAgdHJ5IHsKKyAgICAgICAgQnJlYWtJdGVyYXRvci51bnJlZ2lzdGVyKG51bGwpOworICAgIH0KKyAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgZXJyb3IgPSB0cnVlOworICAgIH0KKworICAgIGFzc2VydFRydWUoZXJyb3IsICJ1bnJlZ2lzdGVyIG51bGwiKTsKKworICAgIHsKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3Igc2NpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLlVTKS5nZXRUZXh0KCk7CisgICAgICAgIGludCBsZW4gPSBzY2kuZ2V0RW5kSW5kZXgoKSAtIHNjaS5nZXRCZWdpbkluZGV4KCk7CisgICAgICAgIGFzc2VydEVxdWFsKGxlbiwgMCwgInVzIHdvcmQgdGV4dDogIiArIGdldFN0cmluZyhzY2kpKTsKKyAgICB9CisKKyAgICBhc3NlcnRUcnVlKEFycmF5cy5hc0xpc3QoQnJlYWtJdGVyYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCkpLmNvbnRhaW5zKGZvb19sb2NhbGUpLCAiZm9vX2xvY2FsZSIpOworICAgIGFzc2VydFRydWUoQnJlYWtJdGVyYXRvci51bnJlZ2lzdGVyKGtleTApLCAidW5yZWdpc3RlciBmb28gd29yZCAodGhhaSB3b3JkKSIpOworICAgIGFzc2VydFRydWUoIUFycmF5cy5hc0xpc3QoQnJlYWtJdGVyYXRvci5nZXRBdmFpbGFibGVMb2NhbGVzKCkpLmNvbnRhaW5zKGZvb19sb2NhbGUpLCAibm8gZm9vX2xvY2FsZSIpOworICAgIGFzc2VydEVxdWFsKEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5VUyksIHVzYmksICJ1cyB3b3JkID09IHVzIHNlbnRlbmNlIik7CisgICAgCisgICAgYXNzZXJ0VHJ1ZShCcmVha0l0ZXJhdG9yLnVucmVnaXN0ZXIoa2V5MSksICJ1bnJlZ2lzdGVyIHVzIHdvcmQgKHVzIHNlbnRlbmNlKSIpOworICAgIHsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB0ZXN0MCA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5KQVBBTik7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgdGVzdDEgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBCcmVha0l0ZXJhdG9yIHRlc3QyID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgdGVzdDMgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSh0aGFpbGFuZF9sb2NhbGUpOworICAgICAgICBCcmVha0l0ZXJhdG9yIHRlc3Q0ID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoZm9vX2xvY2FsZSk7CisKKyAgICAgICAgYXNzZXJ0RXF1YWwodGVzdDAsIGp3YmksICJqYXBhbmVzZSB3b3JkIGJyZWFrIik7CisgICAgICAgIGFzc2VydEVxdWFsKHRlc3QxLCB1d2JpLCAidXMgc2VudGVuY2Utd29yZCBicmVhayIpOworICAgICAgICBhc3NlcnRFcXVhbCh0ZXN0MiwgdXNiaSwgInVzIHNlbnRlbmNlIGJyZWFrIik7CisgICAgICAgIGFzc2VydEVxdWFsKHRlc3QzLCB0d2JpLCAidGhhaSB3b3JkIGJyZWFrIik7CisgICAgICAgIGFzc2VydEVxdWFsKHRlc3Q0LCByd2JpLCAicm9vdCB3b3JkIGJyZWFrIik7CisKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3Igc2NpID0gdGVzdDEuZ2V0VGV4dCgpOworICAgICAgICBpbnQgbGVuID0gc2NpLmdldEVuZEluZGV4KCkgLSBzY2kuZ2V0QmVnaW5JbmRleCgpOworICAgICAgICBhc3NlcnRFcXVhbChsZW4sIDAsICJ1cyBzZW50ZW5jZS13b3JkIGJyZWFrIHRleHQ6ICIgKyBnZXRTdHJpbmcoc2NpKSk7CisgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBhc3NlcnRFcXVhbChPYmplY3QgbGhzLCBPYmplY3QgcmhzLCBTdHJpbmcgbXNnKSB7CisgICAgbXNnKG1zZywgbGhzLmVxdWFscyhyaHMpID8gTE9HIDogRVJSLCB0cnVlLCB0cnVlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYXNzZXJ0RXF1YWwoaW50IGxocywgaW50IHJocywgU3RyaW5nIG1zZykgeworICAgIG1zZyhtc2csIGxocyA9PSByaHMgPyBMT0cgOiBFUlIsIHRydWUsIHRydWUpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBhc3NlcnRUcnVlKGJvb2xlYW4gYXJnLCBTdHJpbmcgbXNnKSB7CisgICAgbXNnKG1zZywgYXJnID8gTE9HIDogRVJSLCB0cnVlLCB0cnVlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0U3RyaW5nKENoYXJhY3Rlckl0ZXJhdG9yIGNpKSB7CisgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoY2kuZ2V0RW5kSW5kZXgoKSAtIGNpLmdldEJlZ2luSW5kZXgoKSArIDIpOworICAgIGJ1Zi5hcHBlbmQoIiciKTsKKyAgICBmb3IgKGNoYXIgYyA9IGNpLmZpcnN0KCk7IGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgYyA9IGNpLm5leHQoKSkgeworICAgICAgICBidWYuYXBwZW5kKGMpOworICAgIH0KKyAgICBidWYuYXBwZW5kKCInIik7CisgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL0JyZWFrSXRlcmF0b3JSdWxlc19lbl9VU19URVNULmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9CcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfVEVTVC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJkMzUzYTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9CcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfVEVTVC5qYXZhCkBAIC0wLDAgKzEsMjE5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBUaGlzIHJlc291cmNlIGJ1bmRsZSBpcyBpbmNsdWRlZCBmb3IgdGVzdGluZyBhbmQgZGVtb25zdHJhdGlvbiBwdXJwb3NlcyBvbmx5LgorICogSXQgYXBwbGllcyB0aGUgZGljdGlvbmFyeS1iYXNlZCBhbGdvcml0aG0gdG8gRW5nbGlzaCB0ZXh0IHRoYXQgaGFzIGhhZCBhbGwgdGhlCisgKiBzcGFjZXMgcmVtb3ZlZC4gIE9uY2Ugd2UgaGF2ZSBnb29kIHRlc3QgY2FzZXMgZm9yIFRoYWksIHdlIHdpbGwgcmVwbGFjZSB0aGlzCisgKiB3aXRoIGdvb2QgcmVzb3VyY2UgZGF0YSAoYW5kIGEgZ29vZCBkaWN0aW9uYXJ5IGZpbGUpIGZvciBUaGFpCisgKi8KK3B1YmxpYyBjbGFzcyBCcmVha0l0ZXJhdG9yUnVsZXNfZW5fVVNfVEVTVCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfTkFNRSA9ICIvY29tL2libS9pY3UvZGV2L2RhdGEvcmJiaS9lbmdsaXNoLmRpY3QiOworCisgICAgLy8gY2FsbGluZyBjb2RlIHdpbGwgaGFuZGxlIGNhc2Ugd2hlcmUgZGljdGlvbmFyeSBkb2VzIG5vdCBleGlzdAorCisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICAvLyBuYW1lcyBvZiBjbGFzc2VzIHRvIGluc3RhbnRpYXRlIGZvciB0aGUgZGlmZmVyZW50IGtpbmRzIG9mIGJyZWFrCisgICAgICAgICAgICAvLyBpdGVyYXRvci4gIE5vdGljZSB3ZSdyZSBub3cgdXNpbmcgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAgICAgICAgLy8gZm9yIHdvcmQgYW5kIGxpbmUgYnJlYWtpbmcuCisgICAgICAgICAgICB7ICAgIkJyZWFrSXRlcmF0b3JDbGFzc2VzIiwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICAgICAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciIsCisgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICAgICAgICAgICAgICAiRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciIsCisgICAgICAgICAgICAgICAgICAgIC8vIHdvcmQtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgIkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAvLyBsaW5lLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIiB9IC8vIHNlbnRlbmNlLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAvLyBUaGVzZSBhcmUgdGhlIHNhbWUgd29yZC1icmVha2luZyBydWxlcyBhcyBhcmUgc3BlY2lmaWVkIGluIHRoZSBkZWZhdWx0CisgICAgICAgICAgICAvLyByZXNvdXJjZSwgZXhjZXB0IHRoYXQgdGhlIExhdGluIGxldHRlcnMsIGFwb3N0cm9waGUsIGFuZCBoeXBoZW4gYXJlCisgICAgICAgICAgICAvLyBzcGVjaWZpZWQgYXMgZGljdGlvbmFyeSBjaGFyYWN0ZXJzCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIldvcmRCcmVha1J1bGVzIiwKKyAgICAgICAgICAgICAgICAvLyBpZ25vcmUgbm9uLXNwYWNpbmcgbWFya3MsIGVuY2xvc2luZyBtYXJrcywgYW5kIGZvcm1hdCBjaGFyYWN0ZXJzLAorICAgICAgICAgICAgICAgIC8vIGFsbCBvZiB3aGljaCBzaG91bGQgbm90IGluZmx1ZW5jZSB0aGUgYWxnb3JpdGhtCisgICAgICAgICAgICAgICAgIiRfaWdub3JlXz1bWzpNbjpdWzpNZTpdWzpDZjpdXTsiCisKKyAgICAgICAgICAgICAgICAvLyBsb3dlciBhbmQgdXBwZXIgY2FzZSBSb21hbiBsZXR0ZXJzLCBhcG9zdHJvcGh5IGFuZCBkYXNoIGFyZQorICAgICAgICAgICAgICAgIC8vIGluIHRoZSBFbmdsaXNoIGRpY3Rpb25hcnkKKyAgICAgICAgICAgICAgICArIiRfZGljdGlvbmFyeV89W2EtekEtWlxcJ1xcLV07IgorCisgICAgICAgICAgICAgICAgLy8gSGluZGkgcGhyYXNlIHNlcGFyYXRvciwga2FuamksIGthdGFrYW5hLCBoaXJhZ2FuYSwgQ0pLIGRpYWNyaXRpY2FscywKKyAgICAgICAgICAgICAgICAvLyBvdGhlciBsZXR0ZXJzLCBhbmQgZGlnaXRzCisgICAgICAgICAgICAgICAgKyIkZGFuZGE9W1x1MDk2NFx1MDk2NV07IgorICAgICAgICAgICAgICAgICAgICArICIka2Fuamk9W1x1MzAwNVx1NGUwMC1cdTlmYTVcdWY5MDAtXHVmYTJkXTsiCisgICAgICAgICAgICAgICAgICAgICsgIiRrYXRhPVtcdTMwOTktXHUzMDljXHUzMGExLVx1MzBmZV07IgorICAgICAgICAgICAgICAgICAgICArICIkaGlyYT1bXHUzMDQxLVx1MzA5ZVx1MzBmY107IgorICAgICAgICAgICAgICAgICAgICArICIkbGV0PVtbWzpMOl1bOk1jOl1dLVska2Fuamkka2F0YSRoaXJhXV07IgorICAgICAgICAgICAgICAgICAgICArICIkZGd0PVs6TjpdOyIKKworICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGluIHRoZSBtaWRkbGUgb2YgYSB3b3JkOiBjdXJyZW50bHkKKyAgICAgICAgICAgICAgICAvLyBkYXNoZXMsIGFwb3N0cm9waGVzLCBhbmQgcXVvdGF0aW9uIG1hcmtzCisgICAgICAgICAgICAgICAgKyIkbWlkX3dvcmQ9W1s6UGQ6XVx1MDBhZFx1MjAyN1xcXCJcXFwnXTsiCisKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBpbiB0aGUgbWlkZGxlIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgICAgICAvLyBhcG9zdHJvcGhlcywgcW91dGF0aW9uIG1hcmtzLCBwZXJpb2RzLCBjb21tYXMsIGFuZCB0aGUgQXJhYmljCisgICAgICAgICAgICAgICAgLy8gZGVjaW1hbCBwb2ludAorICAgICAgICAgICAgICAgICsiJG1pZF9udW09W1xcXCJcXFwnXFwsXHUwNjZiXFwuXTsiCisKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgICAgICAvLyB0aGUgcGVyaW9kLCB0aGUgbnVtYmVyIHNpZ24sIGFuZCBhbGwgY3VycmVuY3kgc3ltYm9scyBleGNlcHQgdGhlIGNlbnRzIHNpZ24KKyAgICAgICAgICAgICAgICArIiRwcmVfbnVtPVtbWzpTYzpdLVtcdTAwYTJdXVxcI1xcLl07IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgYXQgdGhlIGVuZCBvZiBhIG51bWJlcjogY3VycmVudGx5CisgICAgICAgICAgICAgICAgLy8gdGhlIHBlcmNlbnQsIHBlci10aG91c2FuZCwgcGVyLXRlbi10aG91c2FuZCwgYW5kIEFyYWJpYyBwZXJjZW50CisgICAgICAgICAgICAgICAgLy8gc2lnbnMsIHRoZSBjZW50cyBzaWduLCBhbmQgdGhlIGFtcGVyc2FuZAorICAgICAgICAgICAgICAgICsiJHBvc3RfbnVtPVtcXCVcXCZcdTAwYTJcdTA2NmFcdTIwMzBcdTIwMzFdOyIKKworICAgICAgICAgICAgICAgIC8vIGxpbmUgc2VwYXJhdG9yczogY3VycmVudGx5IExGLCBGRiwgUFMsIGFuZCBMUworICAgICAgICAgICAgICAgICsiJGxzPVtcblx1MDAwY1x1MjAyOFx1MjAyOV07IgorCisgICAgICAgICAgICAgICAgLy8gd2hpdGVzcGFjZTogYWxsIHNwYWNlIHNlcGFyYXRvcnMgYW5kIHRoZSB0YWIgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgKyIkd3M9W1s6WnM6XVx0XTsiCisKKyAgICAgICAgICAgICAgICAvLyBhIHdvcmQgaXMgYSBzZXF1ZW5jZSBvZiBsZXR0ZXJzIHRoYXQgbWF5IGNvbnRhaW4gaW50ZXJuYWwKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiwgYXMgbG9uZyBhcyBpdCBiZWdpbnMgYW5kIGVuZHMgd2l0aCBhIGxldHRlciBhbmQKKyAgICAgICAgICAgICAgICAvLyBuZXZlciBjb250YWlucyB0d28gcHVuY3R1YXRpb24gbWFya3MgaW4gYSByb3cKKyAgICAgICAgICAgICAgICArIiR3b3JkPSgkbGV0KygkbWlkX3dvcmQkbGV0KykqJGRhbmRhPyk7IgorCisgICAgICAgICAgICAgICAgLy8gYSBudW1iZXIgaXMgYSBzZXF1ZW5jZSBvZiBkaWdpdHMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAorICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uLCBhcyBsb25nIGFzIGl0IGJlZ2lucyBhbmQgZW5kcyB3aXRoIGEgZGlnaXQgYW5kCisgICAgICAgICAgICAgICAgLy8gbmV2ZXIgY29udGFpbnMgdHdvIHB1bmN0dWF0aW9uIG1hcmtzIGluIGEgcm93LgorICAgICAgICAgICAgICAgICsiJG51bWJlcj0oJGRndCsoJG1pZF9udW0kZGd0KykqKTsiCisKKyAgICAgICAgICAgICAgICAvLyBicmVhayBhZnRlciBldmVyeSBjaGFyYWN0ZXIsIHdpdGggdGhlIGZvbGxvd2luZyBleGNlcHRpb25zCisgICAgICAgICAgICAgICAgLy8gKHRoaXMgd2lsbCBjYXVzZSBwdW5jdHVhdGlvbiBtYXJrcyB0aGF0IGFyZW4ndCBjb25zaWRlcmVkCisgICAgICAgICAgICAgICAgLy8gcGFydCBvZiB3b3JkcyBvciBudW1iZXJzIHRvIGJlIHRyZWF0ZWQgYXMgd29yZHMgdW50byB0aGVtc2VsdmVzKQorICAgICAgICAgICAgICAgICsiLjsiCisKKyAgICAgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIGFueSBzZXF1ZW5jZSBvZiBjb250aWd1b3VzIHdvcmRzIGFuZCBudW1iZXJzCisgICAgICAgICAgICAgICAgLy8gKGluY2x1ZGluZyBqdXN0IG9uZSBvZiBlaXRoZXIpLCBwbHVzIGFuIG9wdGlvbmFsIHRyYWlsaW5nCisgICAgICAgICAgICAgICAgLy8gbnVtYmVyLXN1ZmZpeCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICArIiR3b3JkPygkbnVtYmVyJHdvcmQpKigkbnVtYmVyJHBvc3RfbnVtPyk/OyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgYW5kIHNlcXVlbmNlIG9mIGNvbnRpZ3VvdXMgd29yZHMgYW5kIG51bWJlcnMKKyAgICAgICAgICAgICAgICAvLyB0aGF0IHN0YXJ0cyB3aXRoIGEgbnVtYmVyLXByZWZpeCBjaGFyYWN0ZXIgYW5kIGEgbnVtYmVyLAorICAgICAgICAgICAgICAgIC8vIGFuZCBtYXkgZW5kIHdpdGggYSBudW1iZXItc3VmZml4IGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICsiJHByZV9udW0oJG51bWJlciR3b3JkKSooJG51bWJlciRwb3N0X251bT8pPzsiCisKKyAgICAgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2Ygd2hpdGVzcGFjZSAob3B0aW9uYWxseSB3aXRoIGEgc2luZ2xlIHRyYWlsaW5nCisgICAgICAgICAgICAgICAgLy8gbGluZSBzZXBhcmF0b3Igb3IgQ1JMRiBzZXF1ZW5jZSkKKyAgICAgICAgICAgICAgICArIiR3cypccj8kbHM/OyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBLYXRha2FuYQorICAgICAgICAgICAgICAgICsiJGthdGEqOyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBIaXJhZ2FuYQorICAgICAgICAgICAgICAgICsiJGhpcmEqOyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBLYW5qaQorICAgICAgICAgICAgICAgICsiJGthbmppKjsiIH0sCisKKyAgICAgICAgICAgIC8vIFRoZXNlIGFyZSB0aGUgc2FtZSBsaW5lLWJyZWFraW5nIHJ1bGVzIGFzIGFyZSBzcGVjaWZpZWQgaW4gdGhlIGRlZmF1bHQKKyAgICAgICAgICAgIC8vIHJlc291cmNlLCBleGNlcHQgdGhhdCB0aGUgTGF0aW4gbGV0dGVycywgYXBvc3Ryb3BoZSwgYW5kIGh5cGhlbiBhcmUKKyAgICAgICAgICAgIC8vIHNwZWNpZmllZCBhcyBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgICAgIHsgICAiTGluZUJyZWFrUnVsZXMiLAorICAgICAgICAgICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICAiJF9pZ25vcmVfPVtbOk1uOl1bOk1lOl1bOkNmOl1dOyIKKworICAgICAgICAgICAgICAgIC8vIGxvd2VyIGFuZCB1cHBlciBjYXNlIFJvbWFuIGxldHRlcnMsIGFwb3N0cm9waHkgYW5kIGRhc2gKKyAgICAgICAgICAgICAgICAvLyBhcmUgaW4gdGhlIEVuZ2xpc2ggZGljdGlvbmFyeQorICAgICAgICAgICAgICAgICsiJF9kaWN0aW9uYXJ5Xz1bYS16QS1aXFwnXFwtXTsiCisKKyAgICAgICAgICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9ycworICAgICAgICAgICAgICAgICsiJGRhbmRhPVtcdTA5NjRcdTA5NjVdOyIKKworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBhbHdheXMgY2F1c2UgYSBicmVhazogRVRYLCB0YWIsIExGLCBGRiwgTFMsIGFuZCBQUworICAgICAgICAgICAgICAgICsiJGJyZWFrPVtcdTAwMDNcdFxuXGZcdTIwMjhcdTIwMjldOyIKKworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBhbHdheXMgcHJldmVudCBhIGJyZWFrOiB0aGUgbm9uLWJyZWFraW5nIHNwYWNlCisgICAgICAgICAgICAgICAgLy8gYW5kIHNpbWlsYXIgY2hhcmFjdGVycworICAgICAgICAgICAgICAgICsiJG5ic3A9W1x1MDBhMFx1MjAwN1x1MjAxMVx1ZmVmZl07IgorCisgICAgICAgICAgICAgICAgLy8gd2hpdGVzcGFjZTogc3BhY2Ugc2VwYXJhdG9ycyBhbmQgY29udHJvbCBjaGFyYWN0ZXJzLCBleGNlcHQgZm9yCisgICAgICAgICAgICAgICAgLy8gQ1IgYW5kIHRoZSBvdGhlciBjaGFyYWN0ZXJzIG1lbnRpb25lZCBhYm92ZQorICAgICAgICAgICAgICAgICsiJHNwYWNlPVtbWzpaczpdWzpDYzpdXS1bJG5ic3AkYnJlYWtccl1dOyIKKworICAgICAgICAgICAgICAgIC8vIGRhc2hlczogZGFzaCBwdW5jdHVhdGlvbiBhbmQgdGhlIGRpc2NyZXRpb25hcnkgaHlwaGVuLCBleGNlcHQgZm9yCisgICAgICAgICAgICAgICAgLy8gbm9uLWJyZWFraW5nIGh5cGhlbnMKKyAgICAgICAgICAgICAgICArIiRkYXNoPVtbWzpQZDpdXHUwMGFkXS1bJG5ic3BdXTsiCisKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgc3RpY2sgdG8gYSB3b3JkIGlmIHRoZXkgcHJlY2VkZSBpdDogY3VycmVuY3kgc3ltYm9scworICAgICAgICAgICAgICAgIC8vIChleGNlcHQgdGhlIGNlbnRzIHNpZ24pIGFuZCBzdGFydGluZyBwdW5jdHVhdGlvbgorICAgICAgICAgICAgICAgICsiJHByZV93b3JkPVtbWzpTYzpdLVtcdTAwYTJdXVs6UHM6XVxcXCJcXFwnXTsiCisKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgc3RpY2sgdG8gYSB3b3JkIGlmIHRoZXkgZm9sbG93IGl0OiBlbmRpbmcgcHVuY3R1YXRpb24sCisgICAgICAgICAgICAgICAgLy8gb3RoZXIgcHVuY3R1YXRpb24gdGhhdCB1c3VhbGx5IG9jY3VycyBhdCB0aGUgZW5kIG9mIGEgc2VudGVuY2UsCisgICAgICAgICAgICAgICAgLy8gc21hbGwgS2FuYSBjaGFyYWN0ZXJzLCBzb21lIENKSyBkaWFjcml0aWNzLCBldGMuCisgICAgICAgICAgICAgICAgKyIkcG9zdF93b3JkPVtbOlBlOl1cXCFcXFwiXFxcJ1xcJVxcLlxcLFxcOlxcO1xcP1x1MDBhMlx1MDBiMFx1MDY2YVx1MjAzMC1cdTIwMzQiCisgICAgICAgICAgICAgICAgICAgICsgIlx1MjEwM1x1MjEwNVx1MjEwOVx1MzAwMVx1MzAwMlx1MzAwNVx1MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2MyIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhlXHUzMDk5LVx1MzA5ZVx1MzBhMVx1MzBhM1x1MzBhNVx1MzBhN1x1MzBhOSIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHUzMGMzXHUzMGUzXHUzMGU1XHUzMGU3XHUzMGVlXHUzMGY1XHUzMGY2XHUzMGZjLVx1MzBmZVx1ZmYwMVx1ZmYwYyIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHVmZjBlXHVmZjFmXTsiCisKKyAgICAgICAgICAgICAgICAvLyBLYW5qaTogYWN0dWFsbHkgaW5jbHVkZXMgYm90aCBLYW5qaSBhbmQgS2FuYSwgZXhjZXB0IGZvciBzbWFsbCBLYW5hIGFuZAorICAgICAgICAgICAgICAgIC8vIENKSyBkaWFjcml0aWNzCisgICAgICAgICAgICAgICAgKyIka2Fuamk9W1tcdTRlMDAtXHU5ZmE1XHVmOTAwLVx1ZmEyZFx1MzA0MS1cdTMwOTRcdTMwYTEtXHUzMGZhXS1bJHBvc3Rfd29yZCRfaWdub3JlX11dOyIKKworICAgICAgICAgICAgICAgIC8vIGRpZ2l0cworICAgICAgICAgICAgICAgICsiJGRpZ2l0PVtbOk5kOl1bOk5vOl1dOyIKKworICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGluIHRoZSBtaWRkbGUgb2YgYSBudW1iZXI6IHBlcmlvZHMgYW5kIGNvbW1hcworICAgICAgICAgICAgICAgICsiJG1pZF9udW09W1xcLlxcLF07IgorCisgICAgICAgICAgICAgICAgLy8gZXZlcnl0aGluZyBub3QgbWVudGlvbmVkIGFib3ZlLCBwbHVzIHRoZSBxdW90ZSBtYXJrcyAod2hpY2ggYXJlIGJvdGgKKyAgICAgICAgICAgICAgICAvLyA8cHJlLXdvcmQ+LCA8cG9zdC13b3JkPiwgYW5kIDxjaGFyPikKKyAgICAgICAgICAgICAgICArIiRjaGFyPVteJGJyZWFrJHNwYWNlJGRhc2gka2FuamkkbmJzcCRfaWdub3JlXyRwcmVfd29yZCRwb3N0X3dvcmQkbWlkX251bSRkYW5kYVxyXFxcIlxcXCddOyIKKworICAgICAgICAgICAgICAgIC8vIGEgIm51bWJlciIgaXMgYSBydW4gb2YgcHJlZml4IGNoYXJhY3RlcnMgYW5kIGRhc2hlcywgZm9sbG93ZWQgYnkgb25lIG9yCisgICAgICAgICAgICAgICAgLy8gbW9yZSBkaWdpdHMgd2l0aCBpc29sYXRlZCBudW1iZXItcHVuY3R1YXRpb24gY2hhcmFjdGVycyBpbnRlcnNwZXJzZWQKKyAgICAgICAgICAgICAgICArIiRudW1iZXI9KFskcHJlX3dvcmQkZGFzaF0qJGRpZ2l0KygkbWlkX251bSRkaWdpdCspKik7IgorCisgICAgICAgICAgICAgICAgLy8gdGhlIGJhc2ljIGNvcmUgb2YgYSB3b3JkIGNhbiBiZSBlaXRoZXIgYSAibnVtYmVyIiBhcyBkZWZpbmVkIGFib3ZlLCBhIHNpbmdsZQorICAgICAgICAgICAgICAgIC8vICJLYW5qaSIgY2hhcmFjdGVyLCBvciBhIHJ1biBvZiBhbnkgbnVtYmVyIG9mIG5vdC1leHBsaWNpdGx5LW1lbnRpb25lZAorICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgKHRoaXMgaW5jbHVkZXMgTGF0aW4gbGV0dGVycykKKyAgICAgICAgICAgICAgICArIiR3b3JkX2NvcmU9KFskcHJlX3dvcmQkY2hhcl0qfCRrYW5qaXwkbnVtYmVyKTsiCisKKyAgICAgICAgICAgICAgICAvLyBhIHdvcmQgbWF5IGVuZCB3aXRoIGFuIG9wdGlvbmFsIHN1ZmZpeCB0aGF0IGJlIGVpdGhlciBhIHJ1biBvZiBvbmUgb3IKKyAgICAgICAgICAgICAgICAvLyBtb3JlIGRhc2hlcyBvciBhIHJ1biBvZiB3b3JkLXN1ZmZpeCBjaGFyYWN0ZXJzLCBmb2xsb3dlZCBieSBhbiBvcHRpb25hbAorICAgICAgICAgICAgICAgIC8vIHJ1biBvZiB3aGl0ZXNwYWNlCisgICAgICAgICAgICAgICAgKyIkd29yZF9zdWZmaXg9KCgkZGFzaCt8JHBvc3Rfd29yZCopJHNwYWNlKik7IgorCisgICAgICAgICAgICAgICAgLy8gYSB3b3JkLCB0aHVzLCBpcyBhbiBvcHRpb25hbCBydW4gb2Ygd29yZC1wcmVmaXggY2hhcmFjdGVycywgZm9sbG93ZWQgYnkKKyAgICAgICAgICAgICAgICAvLyBhIHdvcmQgY29yZSBhbmQgYSB3b3JkIHN1ZmZpeCAodGhlIHN5bnRheCBvZiA8d29yZC1jb3JlPiBhbmQgPHdvcmQtc3VmZml4PgorICAgICAgICAgICAgICAgIC8vIGFjdHVhbGx5IGFsbG93cyBlaXRoZXIgb2YgdGhlbSB0byBtYXRjaCB0aGUgZW1wdHkgc3RyaW5nLCBwdXR0aW5nIGEgYnJlYWsKKyAgICAgICAgICAgICAgICAvLyBiZXR3ZWVuIHRoaW5ncyBsaWtlICIpKCIgb3IgImFhYShhYWEiCisgICAgICAgICAgICAgICAgKyIkd29yZD0oJHByZV93b3JkKiR3b3JkX2NvcmUkd29yZF9zdWZmaXgpOyIKKworICAgICAgICAgICAgICAgIC8vIGZpbmFsbHksIHRoZSBydWxlIHRoYXQgZG9lcyB0aGUgd29yazogS2VlcCB0b2dldGhlciBhbnkgcnVuIG9mIHdvcmRzIHRoYXQKKyAgICAgICAgICAgICAgICAvLyBhcmUgam9pbmVkIGJ5IHJ1bnMgb2Ygb25lIG9mIG1vcmUgbm9uLXNwYWNpbmcgbWFyay4gIEFsc28ga2VlcCBhIHRyYWlsaW5nCisgICAgICAgICAgICAgICAgLy8gbGluZS1icmVhayBjaGFyYWN0ZXIgb3IgQ1JMRiBjb21iaW5hdGlvbiB3aXRoIHRoZSB3b3JkLiAgKGxpbmUgc2VwYXJhdG9ycworICAgICAgICAgICAgICAgIC8vICJ3aW4iIG92ZXIgbmJzcCdzKQorICAgICAgICAgICAgICAgICsiJHdvcmQoJG5ic3ArJHdvcmQpKlxyPyRicmVhaz87IiB9LAorCisgICAgICAgICAgICAvLyB0aGVzZSB0d28gcmVzb3VyY2VzIHNwZWNpZnkgdGhlIHBhdGhuYW1lcyBvZiB0aGUgZGljdGlvbmFyeSBmaWxlcyB0bworICAgICAgICAgICAgLy8gdXNlIGZvciB3b3JkIGJyZWFraW5nIGFuZCBsaW5lIGJyZWFraW5nLiAgQm90aCBjdXJyZW50bHkgcmVmZXIgdG8KKyAgICAgICAgICAgIC8vIGEgZmlsZSBjYWxsZWQgZW5nbGlzaC5kaWN0IHBsYWNlZCBpbiBjb20uaWJtLmljdS5pbXBsLmRhdGEKKyAgICAgICAgICAgIC8vIHNvbWV3aGVyZSBpbiB0aGUgY2xhc3MgcGF0aC4gIEl0J3MgaW1wb3J0YW50IHRvIG5vdGUgdGhhdAorICAgICAgICAgICAgLy8gZW5nbGlzaC5kaWN0IHdhcyBjcmVhdGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHksIGFuZCBkb2Vzbid0CisgICAgICAgICAgICAvLyBjb21lIGFueXdoZXJlIGNsb3NlIHRvIGJlaW5nIGFuIGV4aGF1c3RpdmUgZGljdGlvbmFyeSBvZiBFbmdsaXNoCisgICAgICAgICAgICAvLyB3b3JkcyAoYmFzaWNhbGx5LCBpdCBjb250YWlucyBhbGwgdGhlIHdvcmRzIGluIHRoZSBEZWNsYXJhdGlvbiBvZgorICAgICAgICAgICAgLy8gSW5kZXBlbmRlbmNlLCBhbmQgdGhlIFJldmlzZWQgU3RhbmRhcmQgVmVyc2lvbiBvZiB0aGUgYm9vayBvZiBHZW5lc2lzLAorICAgICAgICAgICAgLy8gcGx1cyBhIGZldyBvdGhlciB3b3JkcyB0aHJvd24gaW4gdG8gc2hvdyBtb3JlIGludGVyZXN0aW5nIGNhc2VzKS4KKyAgICAgICAgICAgIC8vIHsgIldvcmRCcmVha0RpY3Rpb25hcnkiLCAiY29tXFxpYm1cXHRleHRcXHJlc291cmNlc1xcZW5nbGlzaC5kaWN0IiB9LAorICAgICAgICAgICAgLy8geyAiTGluZUJyZWFrRGljdGlvbmFyeSIsICJjb21cXGlibVxcdGV4dFxccmVzb3VyY2VzXFxlbmdsaXNoLmRpY3QiIH0KKyAgICAgICAgICAgIHsgICAiV29yZEJyZWFrRGljdGlvbmFyeSIsIERBVEFfTkFNRSB9LCAKKyAgICAgICAgICAgIHsgICAiTGluZUJyZWFrRGljdGlvbmFyeSIsIERBVEFfTkFNRSB9CisgICAgICAgIH07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvQnJlYWtJdGVyYXRvclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL0JyZWFrSXRlcmF0b3JUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2Q4ZmE5YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL0JyZWFrSXRlcmF0b3JUZXN0LmphdmEKQEAgLTAsMCArMSwxNjYwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZDsKK2ltcG9ydCBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitwdWJsaWMgY2xhc3MgQnJlYWtJdGVyYXRvclRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciBjaGFyYWN0ZXJCcmVhazsKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3Igd29yZEJyZWFrOworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciBsaW5lQnJlYWs7CisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIHNlbnRlbmNlQnJlYWs7CisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIHRpdGxlQnJlYWs7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IEJyZWFrSXRlcmF0b3JUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBCcmVha0l0ZXJhdG9yVGVzdCgpCisgICAgeworCisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXsKKyAgICAgICAgY2hhcmFjdGVyQnJlYWsgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCk7CisgICAgICAgIHdvcmRCcmVhayA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgIGxpbmVCcmVhayA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgIC8vbG9nbG4oIkNyZWF0aW5nIHNlbnRlbmNlIGl0ZXJhdG9yLi4uIik7CisgICAgICAgIHNlbnRlbmNlQnJlYWsgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoKTsKKyAgICAgICAgLy9sb2dsbigiRmluaXNoZWQgY3JlYXRpbmcgc2VudGVuY2UgaXRlcmF0b3IuLi4iKTsKKyAgICAgICAgdGl0bGVCcmVhayA9IEJyZWFrSXRlcmF0b3IuZ2V0VGl0bGVJbnN0YW5jZSgpOworICAgIH0KKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBnZW5lcmFsIHRlc3Qgc3Vicm91dGluZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIHByaXZhdGUgdm9pZCBnZW5lcmFsSXRlcmF0b3JUZXN0KEJyZWFrSXRlcmF0b3IgYmksIFZlY3RvciBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmcgdGV4dDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBleHBlY3RlZFJlc3VsdC5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgdGV4dCA9IChTdHJpbmcpZXhwZWN0ZWRSZXN1bHQuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICB0ZXh0ID0gYnVmZmVyLnRvU3RyaW5nKCk7CisKKyAgICAgICAgYmkuc2V0VGV4dCh0ZXh0KTsKKworICAgICAgICBWZWN0b3IgbmV4dFJlc3VsdHMgPSBfdGVzdEZpcnN0QW5kTmV4dChiaSwgdGV4dCk7CisgICAgICAgIFZlY3RvciBwcmV2aW91c1Jlc3VsdHMgPSBfdGVzdExhc3RBbmRQcmV2aW91cyhiaSwgdGV4dCk7CisKKyAgICAgICAgbG9nbG4oImNvbXBhcmluZyBmb3J3YXJkIGFuZCBiYWNrd2FyZC4uLiIpOworICAgICAgICBpbnQgZXJycyA9IGdldEVycm9yQ291bnQoKTsKKyAgICAgICAgY29tcGFyZUZyYWdtZW50TGlzdHMoImZvcndhcmQgaXRlcmF0aW9uIiwgImJhY2t3YXJkIGl0ZXJhdGlvbiIsIG5leHRSZXN1bHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNSZXN1bHRzKTsKKyAgICAgICAgaWYgKGdldEVycm9yQ291bnQoKSA9PSBlcnJzKSB7CisgICAgICAgICAgICBsb2dsbigiY29tcGFyaW5nIGV4cGVjdGVkIGFuZCBhY3R1YWwuLi4iKTsKKyAgICAgICAgICAgIGNvbXBhcmVGcmFnbWVudExpc3RzKCJleHBlY3RlZCByZXN1bHQiLCAiYWN0dWFsIHJlc3VsdCIsIGV4cGVjdGVkUmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRSZXN1bHRzKTsKKyAgICAgICAgfQorCisgICAgICAgIGludFtdIGJvdW5kYXJpZXMgPSBuZXcgaW50W2V4cGVjdGVkUmVzdWx0LnNpemUoKSArIDNdOworICAgICAgICBib3VuZGFyaWVzWzBdID0gQnJlYWtJdGVyYXRvci5ET05FOworICAgICAgICBib3VuZGFyaWVzWzFdID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBleHBlY3RlZFJlc3VsdC5zaXplKCk7IGkrKykKKyAgICAgICAgICAgIGJvdW5kYXJpZXNbaSArIDJdID0gYm91bmRhcmllc1tpICsgMV0gKyAoKFN0cmluZylleHBlY3RlZFJlc3VsdC5lbGVtZW50QXQoaSkpLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCgpOworICAgICAgICBib3VuZGFyaWVzW2JvdW5kYXJpZXMubGVuZ3RoIC0gMV0gPSBCcmVha0l0ZXJhdG9yLkRPTkU7CisKKyAgICAgICAgX3Rlc3RGb2xsb3dpbmcoYmksIHRleHQsIGJvdW5kYXJpZXMpOworICAgICAgICBfdGVzdFByZWNlZGluZyhiaSwgdGV4dCwgYm91bmRhcmllcyk7CisgICAgICAgIF90ZXN0SXNCb3VuZGFyeShiaSwgdGV4dCwgYm91bmRhcmllcyk7CisKKyAgICAgICAgZG9NdWx0aXBsZVNlbGVjdGlvblRlc3QoYmksIHRleHQpOworICAgIH0KKworICAgIHByaXZhdGUgVmVjdG9yIF90ZXN0Rmlyc3RBbmROZXh0KEJyZWFrSXRlcmF0b3IgYmksIFN0cmluZyB0ZXh0KSB7CisgICAgICAgIGludCBwID0gYmkuZmlyc3QoKTsKKyAgICAgICAgaW50IGxhc3RQID0gcDsKKyAgICAgICAgVmVjdG9yIHJlc3VsdCA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBpZiAocCAhPSAwKQorICAgICAgICAgICAgZXJybG4oImZpcnN0KCkgcmV0dXJuZWQgIiArIHAgKyAiIGluc3RlYWQgb2YgMCIpOworICAgICAgICB3aGlsZSAocCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHAgPSBiaS5uZXh0KCk7CisgICAgICAgICAgICBpZiAocCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBpZiAocCA8PSBsYXN0UCkKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIm5leHQoKSBmYWlsZWQgdG8gbW92ZSBmb3J3YXJkOiBuZXh0KCkgb24gcG9zaXRpb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsYXN0UCArICIgeWllbGRlZCAiICsgcCk7CisKKyAgICAgICAgICAgICAgICByZXN1bHQuYWRkRWxlbWVudCh0ZXh0LnN1YnN0cmluZyhsYXN0UCwgcCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RQICE9IHRleHQubGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJuZXh0KCkgcmV0dXJuZWQgRE9ORSBwcmVtYXR1cmVseTogb2Zmc2V0IHdhcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxhc3RQICsgIiBpbnN0ZWFkIG9mICIgKyB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3RQID0gcDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHByaXZhdGUgVmVjdG9yIF90ZXN0TGFzdEFuZFByZXZpb3VzKEJyZWFrSXRlcmF0b3IgYmksIFN0cmluZyB0ZXh0KSB7CisgICAgICAgIGludCBwID0gYmkubGFzdCgpOworICAgICAgICBpbnQgbGFzdFAgPSBwOworICAgICAgICBWZWN0b3IgcmVzdWx0ID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIGlmIChwICE9IHRleHQubGVuZ3RoKCkpCisgICAgICAgICAgICBlcnJsbigibGFzdCgpIHJldHVybmVkICIgKyBwICsgIiBpbnN0ZWFkIG9mICIgKyB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgd2hpbGUgKHAgIT0gQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBwID0gYmkucHJldmlvdXMoKTsKKyAgICAgICAgICAgIGlmIChwICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIGlmIChwID49IGxhc3RQKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigicHJldmlvdXMoKSBmYWlsZWQgdG8gbW92ZSBiYWNrd2FyZDogcHJldmlvdXMoKSBvbiBwb3NpdGlvbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxhc3RQICsgIiB5aWVsZGVkICIgKyBwKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdC5pbnNlcnRFbGVtZW50QXQodGV4dC5zdWJzdHJpbmcocCwgbGFzdFApLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChsYXN0UCAhPSAwKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigicHJldmlvdXMoKSByZXR1cm5lZCBET05FIHByZW1hdHVyZWx5OiBvZmZzZXQgd2FzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGFzdFAgKyAiIGluc3RlYWQgb2YgMCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdFAgPSBwOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNvbXBhcmVGcmFnbWVudExpc3RzKFN0cmluZyBmMU5hbWUsIFN0cmluZyBmMk5hbWUsIFZlY3RvciBmMSwgVmVjdG9yIGYyKSB7CisgICAgICAgIGludCBwMSA9IDA7CisgICAgICAgIGludCBwMiA9IDA7CisgICAgICAgIFN0cmluZyBzMTsKKyAgICAgICAgU3RyaW5nIHMyOworICAgICAgICBpbnQgdDEgPSAwOworICAgICAgICBpbnQgdDIgPSAwOworCisgICAgICAgIHdoaWxlIChwMSA8IGYxLnNpemUoKSAmJiBwMiA8IGYyLnNpemUoKSkgeworICAgICAgICAgICAgczEgPSAoU3RyaW5nKWYxLmVsZW1lbnRBdChwMSk7CisgICAgICAgICAgICBzMiA9IChTdHJpbmcpZjIuZWxlbWVudEF0KHAyKTsKKyAgICAgICAgICAgIHQxICs9IHMxLmxlbmd0aCgpOworICAgICAgICAgICAgdDIgKz0gczIubGVuZ3RoKCk7CisKKyAgICAgICAgICAgIGlmIChzMS5lcXVhbHMoczIpKSB7CisgICAgICAgICAgICAgICAgZGVidWdMb2dsbigiICAgPiIgKyBzMSArICI8Iik7CisgICAgICAgICAgICAgICAgKytwMTsKKyAgICAgICAgICAgICAgICArK3AyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IHRlbXBUMSA9IHQxOworICAgICAgICAgICAgICAgIGludCB0ZW1wVDIgPSB0MjsKKyAgICAgICAgICAgICAgICBpbnQgdGVtcFAxID0gcDE7CisgICAgICAgICAgICAgICAgaW50IHRlbXBQMiA9IHAyOworCisgICAgICAgICAgICAgICAgd2hpbGUgKHRlbXBUMSAhPSB0ZW1wVDIgJiYgdGVtcFAxIDwgZjEuc2l6ZSgpICYmIHRlbXBQMiA8IGYyLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGVtcFQxIDwgdGVtcFQyICYmIHRlbXBQMSA8IGYxLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFQxICs9ICgoU3RyaW5nKWYxLmVsZW1lbnRBdCh0ZW1wUDEpKS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrdGVtcFAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0ZW1wVDIgPCB0ZW1wVDEgJiYgdGVtcFAyIDwgZjIuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wVDIgKz0gKChTdHJpbmcpZjIuZWxlbWVudEF0KHRlbXBQMikpLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgKyt0ZW1wUDI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbG9nbG4oIioqKiAiICsgZjFOYW1lICsgIiBoYXM6Iik7CisgICAgICAgICAgICAgICAgd2hpbGUgKHAxIDw9IHRlbXBQMSAmJiBwMSA8IGYxLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICBzMSA9IChTdHJpbmcpZjEuZWxlbWVudEF0KHAxKTsKKyAgICAgICAgICAgICAgICAgICAgdDEgKz0gczEubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIGRlYnVnTG9nbG4oIiAqKiogPiIgKyBzMSArICI8Iik7CisgICAgICAgICAgICAgICAgICAgICsrcDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxvZ2xuKCIqKioqKiAiICsgZjJOYW1lICsgIiBoYXM6Iik7CisgICAgICAgICAgICAgICAgd2hpbGUgKHAyIDw9IHRlbXBQMiAmJiBwMiA8IGYyLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICBzMiA9IChTdHJpbmcpZjIuZWxlbWVudEF0KHAyKTsKKyAgICAgICAgICAgICAgICAgICAgdDIgKz0gczIubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIGRlYnVnTG9nbG4oIiAqKioqKiA+IiArIHMyICsgIjwiKTsKKyAgICAgICAgICAgICAgICAgICAgKytwMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZXJybG4oIkRpc2NyZXBhbmN5IGJldHdlZW4gIiArIGYxTmFtZSArICIgYW5kICIgKyBmMk5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIF90ZXN0Rm9sbG93aW5nKEJyZWFrSXRlcmF0b3IgYmksIFN0cmluZyB0ZXh0LCBpbnRbXSBib3VuZGFyaWVzKSB7CisgICAgICAgIGxvZ2xuKCJ0ZXN0Rm9sbG93aW5nKCk6Iik7CisgICAgICAgIGludCBwID0gMjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gdGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaSA9PSBib3VuZGFyaWVzW3BdKQorICAgICAgICAgICAgICAgICsrcDsKKworICAgICAgICAgICAgaW50IGIgPSBiaS5mb2xsb3dpbmcoaSk7CisgICAgICAgICAgICBsb2dsbigiYmkuZm9sbG93aW5nKCIgKyBpICsgIikgLT4gIiArIGIpOworICAgICAgICAgICAgaWYgKGIgIT0gYm91bmRhcmllc1twXSkKKyAgICAgICAgICAgICAgICBlcnJsbigiV3JvbmcgcmVzdWx0IGZyb20gZm9sbG93aW5nKCkgZm9yICIgKyBpICsgIjogZXhwZWN0ZWQgIiArIGJvdW5kYXJpZXNbcF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiLCBnb3QgIiArIGIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIF90ZXN0UHJlY2VkaW5nKEJyZWFrSXRlcmF0b3IgYmksIFN0cmluZyB0ZXh0LCBpbnRbXSBib3VuZGFyaWVzKSB7CisgICAgICAgIGxvZ2xuKCJ0ZXN0UHJlY2VkaW5nKCk6Iik7CisgICAgICAgIGludCBwID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gdGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBpbnQgYiA9IGJpLnByZWNlZGluZyhpKTsKKyAgICAgICAgICAgIGxvZ2xuKCJiaS5wcmVjZWRpbmcoIiArIGkgKyAiKSAtPiAiICsgYik7CisgICAgICAgICAgICBpZiAoYiAhPSBib3VuZGFyaWVzW3BdKQorICAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBwcmVjZWRpbmcoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCAiICsgYm91bmRhcmllc1twXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIGdvdCAiICsgYik7CisKKyAgICAgICAgICAgIGlmIChpID09IGJvdW5kYXJpZXNbcCArIDFdKQorICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBfdGVzdElzQm91bmRhcnkoQnJlYWtJdGVyYXRvciBiaSwgU3RyaW5nIHRleHQsIGludFtdIGJvdW5kYXJpZXMpIHsKKyAgICAgICAgbG9nbG4oInRlc3RJc0JvdW5kYXJ5KCk6Iik7CisgICAgICAgIGludCBwID0gMTsKKyAgICAgICAgYm9vbGVhbiBpc0I7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IHRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaXNCID0gYmkuaXNCb3VuZGFyeShpKTsKKyAgICAgICAgICAgIGxvZ2xuKCJiaS5pc0JvdW5kYXJ5KCIgKyBpICsgIikgLT4gIiArIGlzQik7CisKKyAgICAgICAgICAgIGlmIChpID09IGJvdW5kYXJpZXNbcF0pIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzQikKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIGlzQm91bmRhcnkoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCB0cnVlLCBnb3QgZmFsc2UiKTsKKyAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNCKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiV3JvbmcgcmVzdWx0IGZyb20gaXNCb3VuZGFyeSgpIGZvciAiICsgaSArICI6IGV4cGVjdGVkIGZhbHNlLCBnb3QgdHJ1ZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvTXVsdGlwbGVTZWxlY3Rpb25UZXN0KEJyZWFrSXRlcmF0b3IgaXRlcmF0b3IsIFN0cmluZyB0ZXN0VGV4dCkKKyAgICB7CisgICAgICAgIGxvZ2xuKCJNdWx0aXBsZSBzZWxlY3Rpb24gdGVzdC4uLiIpOworICAgICAgICBCcmVha0l0ZXJhdG9yIHRlc3RJdGVyYXRvciA9IChCcmVha0l0ZXJhdG9yKWl0ZXJhdG9yLmNsb25lKCk7CisgICAgICAgIGludCBvZmZzZXQgPSBpdGVyYXRvci5maXJzdCgpOworICAgICAgICBpbnQgdGVzdE9mZnNldDsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKworICAgICAgICBkbyB7CisgICAgICAgICAgICB0ZXN0T2Zmc2V0ID0gdGVzdEl0ZXJhdG9yLmZpcnN0KCk7CisgICAgICAgICAgICB0ZXN0T2Zmc2V0ID0gdGVzdEl0ZXJhdG9yLm5leHQoY291bnQpOworICAgICAgICAgICAgbG9nbG4oIm5leHQoIiArIGNvdW50ICsgIikgLT4gIiArIHRlc3RPZmZzZXQpOworICAgICAgICAgICAgaWYgKG9mZnNldCAhPSB0ZXN0T2Zmc2V0KQorICAgICAgICAgICAgICAgIGVycmxuKCJuZXh0KG4pIGFuZCBuZXh0KCkgbm90IHJldHVybmluZyBjb25zaXN0ZW50IHJlc3VsdHM6IGZvciBzdGVwICIgKyBjb3VudCArICIsIG5leHQobikgcmV0dXJuZWQgIiArIHRlc3RPZmZzZXQgKyAiIGFuZCBuZXh0KCkgaGFkICIgKyBvZmZzZXQpOworCisgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gaXRlcmF0b3IubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlIChvZmZzZXQgIT0gQnJlYWtJdGVyYXRvci5ET05FKTsKKworICAgICAgICAvLyBub3cgZG8gaXQgYmFja3dhcmRzLi4uCisgICAgICAgIG9mZnNldCA9IGl0ZXJhdG9yLmxhc3QoKTsKKyAgICAgICAgY291bnQgPSAwOworCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIHRlc3RPZmZzZXQgPSB0ZXN0SXRlcmF0b3IubGFzdCgpOworICAgICAgICAgICAgdGVzdE9mZnNldCA9IHRlc3RJdGVyYXRvci5uZXh0KGNvdW50KTsKKyAgICAgICAgICAgIGxvZ2xuKCJuZXh0KCIgKyBjb3VudCArICIpIC0+ICIgKyB0ZXN0T2Zmc2V0KTsKKyAgICAgICAgICAgIGlmIChvZmZzZXQgIT0gdGVzdE9mZnNldCkKKyAgICAgICAgICAgICAgICBlcnJsbigibmV4dChuKSBhbmQgbmV4dCgpIG5vdCByZXR1cm5pbmcgY29uc2lzdGVudCByZXN1bHRzOiBmb3Igc3RlcCAiICsgY291bnQgKyAiLCBuZXh0KG4pIHJldHVybmVkICIgKyB0ZXN0T2Zmc2V0ICsgIiBhbmQgbmV4dCgpIGhhZCAiICsgb2Zmc2V0KTsKKworICAgICAgICAgICAgaWYgKG9mZnNldCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBjb3VudC0tOworICAgICAgICAgICAgICAgIG9mZnNldCA9IGl0ZXJhdG9yLnByZXZpb3VzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKG9mZnNldCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0JyZWFrSW52YXJpYW50VGVzdChCcmVha0l0ZXJhdG9yIHRiLCBTdHJpbmcgdGVzdENoYXJzKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHdvcmsgPSBuZXcgU3RyaW5nQnVmZmVyKCJhYWEiKTsKKy8vICAgICAgICBpbnQgZXJyb3JDb3VudCA9IDA7CisKKyAgICAgICAgLy8gYSBicmVhayBzaG91bGQgYWx3YXlzIG9jY3VyIGFmdGVyIENSICh1bmxlc3MgZm9sbG93ZWQgYnkgTEYpLCBMRiwgUFMsIGFuZCBMUywKKyAgICAgICAgLy8gdW5sZXNzIHRoZXkncmUgZm9sbG93ZWQgYnkgYSBub24tc3BhY2luZyBtYXJrIG9yIGEgZm9ybWF0IGNoYXJhY3RlcgorICAgICAgICBTdHJpbmcgYnJlYWtzID0gIlxyXG5cdTIwMjlcdTIwMjgiOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYnJlYWtzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIHdvcmsuc2V0Q2hhckF0KDEsIGJyZWFrcy5jaGFyQXQoaSkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0Q2hhcnMubGVuZ3RoKCk7IGorKykgeworICAgICAgICAgICAgICAgIHdvcmsuc2V0Q2hhckF0KDAsIHRlc3RDaGFycy5jaGFyQXQoaikpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgdGVzdENoYXJzLmxlbmd0aCgpOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhciBjID0gdGVzdENoYXJzLmNoYXJBdChrKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBpZiBhIGNyIGlzIGZvbGxvd2VkIGJ5IGxmLCBwcywgbHMgb3IgZXR4LCBkb24ndCBkbyB0aGUgY2hlY2sgKHRoYXQncworICAgICAgICAgICAgICAgICAgICAvLyBub3Qgc3VwcG9zZWQgdG8gd29yaykKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmsuY2hhckF0KDEpID09ICdccicgJiYgKGMgPT0gJ1xuJyB8fCBjID09ICdcdTIwMjknCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgYyA9PSAnXHUyMDI4JyB8fCBjID09ICdcdTAwMDMnKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgICAgIHdvcmsuc2V0Q2hhckF0KDIsIGMpOworICAgICAgICAgICAgICAgICAgICB0Yi5zZXRUZXh0KHdvcmsudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc2VlbjIgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgbCA9IHRiLmZpcnN0KCk7IGwgIT0gQnJlYWtJdGVyYXRvci5ET05FOyBsID0gdGIubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobCA9PSAyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZW4yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXNlZW4yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiTm8gYnJlYWsgYmV0d2VlbiBVKyIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKChpbnQpKHdvcmsuY2hhckF0KDEpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhbmQgVSsiICsgSW50ZWdlci50b0hleFN0cmluZygoaW50KSh3b3JrLmNoYXJBdCgyKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb090aGVySW52YXJpYW50VGVzdChCcmVha0l0ZXJhdG9yIHRiLCBTdHJpbmcgdGVzdENoYXJzKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHdvcmsgPSBuZXcgU3RyaW5nQnVmZmVyKCJhXHJcbmEiKTsKKyAgICAgICAgaW50IGVycm9yQ291bnQgPSAwOworCisgICAgICAgIC8vIGEgYnJlYWsgc2hvdWxkIG5ldmVyIG9jY3VyIGJldHdlZW4gQ1IgYW5kIExGCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdENoYXJzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIHdvcmsuc2V0Q2hhckF0KDAsIHRlc3RDaGFycy5jaGFyQXQoaSkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0Q2hhcnMubGVuZ3RoKCk7IGorKykgeworICAgICAgICAgICAgICAgIHdvcmsuc2V0Q2hhckF0KDMsIHRlc3RDaGFycy5jaGFyQXQoaikpOworICAgICAgICAgICAgICAgIHRiLnNldFRleHQod29yay50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gdGIuZmlyc3QoKTsgayAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IGsgPSB0Yi5uZXh0KCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChrID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJCcmVhayBiZXR3ZWVuIENSIGFuZCBMRiBpbiBzdHJpbmcgVSsiICsgSW50ZWdlci50b0hleFN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkod29yay5jaGFyQXQoMCkpKSArICIsIFUrZCBVK2EgVSsiICsgSW50ZWdlci50b0hleFN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkod29yay5jaGFyQXQoMykpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JDb3VudCA+PSA3NSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGEgYnJlYWsgc2hvdWxkIG5ldmVyIG9jY3VyIGJlZm9yZSBhIG5vbi1zcGFjaW5nIG1hcmssIHVubGVzcyBpdCdzIHByZWNlZGVkCisgICAgICAgIC8vIGJ5IGEgbGluZSB0ZXJtaW5hdG9yCisgICAgICAgIHdvcmsuc2V0TGVuZ3RoKDApOworICAgICAgICB3b3JrLmFwcGVuZCgiYWFhYSIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RDaGFycy5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBjaGFyIGMgPSB0ZXN0Q2hhcnMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPT0gJ1xuJyB8fCBjID09ICdccicgfHwgYyA9PSAnXHUyMDI5JyB8fCBjID09ICdcdTIwMjgnIHx8IGMgPT0gJ1x1MDAwMycpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB3b3JrLnNldENoYXJBdCgxLCBjKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdENoYXJzLmxlbmd0aCgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICBjID0gdGVzdENoYXJzLmNoYXJBdChqKTsKKyAgICAgICAgICAgICAgICBpZiAoQ2hhcmFjdGVyLmdldFR5cGUoYykgIT0gQ2hhcmFjdGVyLk5PTl9TUEFDSU5HX01BUksgJiYgQ2hhcmFjdGVyLmdldFR5cGUoYykKKyAgICAgICAgICAgICAgICAgICAgICAgICE9IENoYXJhY3Rlci5FTkNMT1NJTkdfTUFSSykKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgd29yay5zZXRDaGFyQXQoMiwgYyk7CisgICAgICAgICAgICAgICAgdGIuc2V0VGV4dCh3b3JrLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSB0Yi5maXJzdCgpOyBrICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgayA9IHRiLm5leHQoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGsgPT0gMikgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkJyZWFrIGJldHdlZW4gVSsiICsgSW50ZWdlci50b0hleFN0cmluZygoaW50KSh3b3JrLmNoYXJBdCgxKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhbmQgVSsiICsgSW50ZWdlci50b0hleFN0cmluZygoaW50KSh3b3JrLmNoYXJBdCgyKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvckNvdW50ID49IDc1KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZGVidWdMb2dsbihTdHJpbmcgcykgeworICAgICAgICBmaW5hbCBTdHJpbmcgemVyb3MgPSAiMDAwMCI7CisgICAgICAgIFN0cmluZyB0ZW1wOworICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAnICcgJiYgYyA8ICdcdTAwN2YnKQorICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoYyk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICB0ZW1wID0gSW50ZWdlci50b0hleFN0cmluZygoaW50KWMpOworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoemVyb3Muc3Vic3RyaW5nKDAsIDQgLSB0ZW1wLmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCh0ZW1wKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbihvdXQudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gdGVzdHMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RXb3JkQnJlYWsoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCBvbGIgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQpd29yZEJyZWFrOworICAgICAgICAgICAgVmVjdG9yIHdvcmRTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIxMiwzNCIpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTAwQTIiKTsgLy9jZW50IHNpZ24KKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MDBBMyIpOyAvL3BvdW5kIHNpZ24KKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MDBBNCIpOyAvL2N1cnJlbmN5IHNpZ24KKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MDBBNSIpOyAvL3llbiBzaWduCisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJhbHBoYS1iZXRhLWdhbW1hIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIuIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJCYWRnZXMiKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIj8iKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkJBREdFUyIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiISIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiPyIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiISIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiV2UiKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImRvbid0Iik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJuZWVkIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJubyIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiU1RJTktJTkciKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkJBREdFUyIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiISIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiISIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiISIpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIwMTIuNTY2LDUiKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIjEyMy4zNDM0LDkwMCIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiMTAwMCwyMzMsNDU2LjAwMCIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiMSwyMy4zMjIlIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIxMjMuMTIyMiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTAwMjQxMjMsMDAwLjIwIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIjE3OS4wMVx1MDAyNSIpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJIZWxsbyIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiLCIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiaG93Iik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJhcmUiKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInlvdSIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiWCIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJOb3ciKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlxyIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJpcyIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXG4iKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInRoZSIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHJcbiIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgidGltZSIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXG4iKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlxyIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJmb3IiKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlxyIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcciIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiYWxsIik7CisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qod29yZEJyZWFrLCB3b3JkU2VsZWN0aW9uRGF0YSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiTmV3IEJyZWFrIEl0ZXJhdG9yLCBza2lwcGluZyBvbGQgdGVzdCIpOworICAgICAgICB9ICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDk3Nzc5CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQwOTc3NzkoKSB7CisgICAgICAgIFZlY3RvciB3b3JkU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJhYVx1MDMwMGEiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qod29yZEJyZWFrLCB3b3JkU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGJ1ZyA0MDk4NDY3CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQwOTg0NjdXb3JkcygpIHsKKyAgICAgICAgVmVjdG9yIHdvcmRTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIFdoYXQgZm9sbG93cyBpcyBhIHN0cmluZyBvZiBLb3JlYW4gY2hhcmFjdGVycyAoSSBmb3VuZCBpdCBpbiB0aGUgWWVsbG93IFBhZ2VzCisgICAgICAgIC8vIGFkIGZvciB0aGUgS29yZWFuIFByZXNieXRlcmlhbiBDaHVyY2ggb2YgU2FuIEZyYW5jaXNjbywgYW5kIEkgaG9wZSBJIHRyYW5zY3JpYmVkCisgICAgICAgIC8vIGl0IGNvcnJlY3RseSksIGZpcnN0IGFzIHByZWNvbXBvc2VkIHN5bGxhYmxlcywgYW5kIHRoZW4gYXMgY29uam9pbmluZyBqYW1vLgorICAgICAgICAvLyBCb3RoIHNlcXVlbmNlcyBzaG91bGQgYmUgc2VtYW50aWNhbGx5IGlkZW50aWNhbCBhbmQgYnJlYWsgdGhlIHNhbWUgd2F5LgorICAgICAgICAvLyBwcmVjb21wb3NlZCBzeWxsYWJsZXMuLi4KKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjMGMxXHVkNTZkIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVkNTVjXHVjNzc4Iik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjNWYwXHVkNTY5Iik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjN2E1XHViODVjXHVhZDUwXHVkNjhjIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgLy8gY29uam9pbmluZyBqYW1vLi4uCisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwOVx1MTE2MVx1MTFiY1x1MTExMlx1MTE2MVx1MTFiYyIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFhYlx1MTEwYlx1MTE3NVx1MTFhYiIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwYlx1MTE2N1x1MTFhYlx1MTExMlx1MTE2MVx1MTFiOCIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwY1x1MTE2MVx1MTFiY1x1MTEwNVx1MTE2OVx1MTEwMFx1MTE2ZFx1MTExMlx1MTE2YyIpOworICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdCh3b3JkQnJlYWssIHdvcmRTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMTc1NTQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDExNzU1NFdvcmRzKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgb2xiID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkKXdvcmRCcmVhazsKKyAgICAgICAgICAgIFZlY3RvciB3b3JkU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gdGhpcyBpcyBhIHRlc3QgZm9yIGJ1ZyAjNDExNzU1NDogdGhlIGlkZW9ncmFwaGljIGl0ZXJhdGlvbiBtYXJrIChVKzMwMDUpIHNob3VsZAorICAgICAgICAgICAgLy8gY291bnQgYXMgYSBLYW5qaSBjaGFyYWN0ZXIgZm9yIHRoZSBwdXJwb3NlcyBvZiB3b3JkIGJyZWFraW5nCisgICAgICAgICAgICB3b3JkU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJhYmMiKTsKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NGUwMVx1NGUwMlx1MzAwNVx1NGUwM1x1NGUwMyIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiYWJjIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qod29yZEJyZWFrLCB3b3JkU2VsZWN0aW9uRGF0YSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiTmV3IEJyZWFrIEl0ZXJhdG9yLCBza2lwcGluZyBvbGQgdGVzdCIpOworICAgICAgICB9ICAgCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFNlbnRlbmNlQnJlYWsoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCBvbGIgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQpc2VudGVuY2VCcmVhazsKKyAgICAgICAgICAgIFZlY3RvciBzZW50ZW5jZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJUaGlzIGlzIGEgc2ltcGxlIHNhbXBsZSBzZW50ZW5jZS4gIik7CisgICAgICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiKFRoaXMgaXMgaXQuKSAiKTsKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJUaGlzIGlzIGEgc2ltcGxlIHNhbXBsZSBzZW50ZW5jZS4gIik7CisgICAgICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXCJUaGlzIGlzblwndCBpdC5cIiAiKTsKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJIaSEgIik7CisgICAgICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiVGhpcyBpcyBhIHNpbXBsZSBzYW1wbGUgc2VudGVuY2UuICIpOworICAgICAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkl0IGRvZXMgbm90IGhhdmUgdG8gbWFrZSBhbnkgc2Vuc2UgYXMgeW91IGNhbiBzZWUuICIpOworICAgICAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIk5lbCBtZXp6byBkZWwgY2FtbWluIGRpIG5vc3RyYSB2aXRhLCBtaSByaXRyb3ZhaSBpbiB1bmEgc2VsdmEgb3NjdXJhLiAiKTsKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJDaGUgbGEgZHJpdHRhIHZpYSBhdmVvIHNtYXJyaXRhLiAiKTsKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJIZSBzYWlkLCB0aGF0IEkgc2FpZCwgdGhhdCB5b3Ugc2FpZCEhICIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiRG9uJ3Qgcm9jayB0aGUgYm9hdC5cdTIwMjkiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkJlY2F1c2UgSSBhbSB0aGUgZGFkZHksIHRoYXQgaXMgd2h5LiAiKTsKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJOb3Qgb24gbXkgdGltZSAoZWwgdGltby4pISAiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlNvIHdoYXQhIVx1MjAyOSIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXCJCdXQgbm93LFwiIGhlIHNhaWQsIFwiSSBrbm93IVwiICIpOworICAgICAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkhhcnJpcyB0aHVtYmVkIGRvd24gc2V2ZXJhbCwgaW5jbHVkaW5nIFwiQXdheSBXZSBHb1wiICh3aGljaCBiZWNhbWUgdGhlIGh1Z2Ugc3VjY2VzcyBPa2xhaG9tYSEpLiAiKTsKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJPbmUgc3BlY2llcywgQi4gYW50aHJhY2lzLCBpcyBoaWdobHkgdmlydWxlbnQuXG4iKTsKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJXb2xmIHNhaWQgYWJvdXQgU291bmRlcjpcIkJlYXV0aWZ1bGx5IHRob3VnaHQtb3V0IGFuZCBkaXJlY3RlZC5cIiAiKTsKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJIYXZlIHlvdSBldmVyIHNhaWQsIFwiVGhpcyBpcyB3aGVyZSBcdEkgc2hhbGwgbGl2ZVwiPyAiKTsKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJIZSBhbnN3ZXJlZCwgXCJZb3UgbWF5IG5vdCFcIiAiKTsKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJBbm90aGVyIHBvcHVsYXIgc2F5aW5nIGlzOiBcIkhvdyBkbyB5b3UgZG8/XCIuICIpOworICAgICAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIllldCBhbm90aGVyIHBvcHVsYXIgc2F5aW5nIGlzOiBcJ0lcJ20gZmluZSB0aGFua3MuXCcgIik7CisgICAgICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiV2hhdCBpcyB0aGUgcHJvcGVyIHVzZSBvZiB0aGUgYWJicmV2aWF0aW9uIHBwLj8gIik7CisgICAgICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiWWVzLCBJIGFtIGRlZmluYXRlbGx5IDEyXCIgdGFsbCEhIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qoc2VudGVuY2VCcmVhaywgc2VudGVuY2VTZWxlY3Rpb25EYXRhKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJOZXcgQnJlYWsgSXRlcmF0b3IsIHNraXBwaW5nIG9sZCB0ZXN0Iik7CisgICAgICAgIH0gICAKK30KKworICAgIC8qKgorICAgICAqIEBidWcgNDExMzgzNQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MTEzODM1KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgb2xiID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkKXNlbnRlbmNlQnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFZlY3RvciBzZW50ZW5jZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHRlc3QgZm9yIGJ1ZyAjNDExMzgzNTogXG4gYW5kIFxyIGNvdW50IGFzIHNwYWNlcywgbm90IGFzIHBhcmFncmFwaCBicmVha3MKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJOb3dccmlzXG50aGVcclxudGltZVxuXHJmb3JcclxyYWxsXHUyMDI5Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qoc2VudGVuY2VCcmVhaywgc2VudGVuY2VTZWxlY3Rpb25EYXRhKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJOZXcgQnJlYWsgSXRlcmF0b3IsIHNraXBwaW5nIG9sZCB0ZXN0Iik7CisgICAgICAgIH0gICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMTEzMzgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDExMTMzOCgpIHsKKyAgICAgICAgVmVjdG9yIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyB0ZXN0IGZvciBidWcgIzQxMTEzMzg6IERvbid0IGJyZWFrIHNlbnRlbmNlcyBhdCB0aGUgYm91bmRhcnkgYmV0d2VlbiBDSksKKyAgICAgICAgLy8gYW5kIG90aGVyIGxldHRlcnMKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NTpcIkpBVkFcdTgyMWMiCisgICAgICAgICAgICAgICAgKyAiXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkLFx1MjQ5NFx1NTZkOFx1NGVjMFx1NjBiMVx1ODU2MFx1NTFiYSIKKyAgICAgICAgICAgICAgICArICJcdTYxMWRcdTU3YjZcdTI1MTBcdTVkNDZcIi5cdTIwMjkiKTsKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NVx1OWRlOCIKKyAgICAgICAgICAgICAgICArICJcdTk3ZTRKQVZBXHU4MjFjXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkXHVlMzBiXHUyNDk0XHU1NmQ4XHU0ZWMwIgorICAgICAgICAgICAgICAgICsgIlx1NjBiMVx1ODU2MFx1NTFiYVx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0Nlx1OTdlNVx1Nzc1MVx1MjAyOSIpOworICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU1NDg3XHU2N2ZmXHVlNTkxXHU1MDE3XHU2MWIzXHU2MGExXHU5NTEwXHU4MTY1XHU5ZGU4XHU5N2U0IgorICAgICAgICAgICAgICAgICsgIlx1NjQ3MFx1ODc5MEpBVkFcdTgyMWNcdTgxNjVcdTdmYzhcdTUxY2VcdTMwNmRcdWUzMGJcdTI0OTRcdTU2ZDgiCisgICAgICAgICAgICAgICAgKyAiXHU0ZWMwXHU2MGIxXHU4NTYwXHU1MWJhXHU2MTFkXHU1N2I2XHUyNTEwXHU1ZDQ2XHU5N2U1XHU3NzUxXHUyMDI5Iik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJIZSBzYWlkLCBcIkkgY2FuIGdvIHRoZXJlLlwiXHUyMDI5Iik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChzZW50ZW5jZUJyZWFrLCBzZW50ZW5jZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDExNzU1NAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MTE3NTU0U2VudGVuY2VzKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgb2xiID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkKXNlbnRlbmNlQnJlYWs7CisgICAgICAgICAgICBWZWN0b3Igc2VudGVuY2VTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBUcmVhdCBmdWxsd2lkdGggdmFyaWFudHMgb2YgLiE/IHRoZSBzYW1lIGFzIHRoZWlyCisgICAgICAgICAgICAvLyBub3JtYWwgY291bnRlcnBhcnRzCisgICAgICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiSSBrbm93IEknbSByaWdodFx1ZmYwZSAiKTsKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJSaWdodFx1ZmYxZiAiKTsKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJSaWdodFx1ZmYwMSAiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gRG9uJ3QgYnJlYWsgc2VudGVuY2VzIGF0IGJvdW5kYXJ5IGJldHdlZW4gQ0pLIGFuZCBkaWdpdHMKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTU0ODdcdTY3ZmZcdWU1OTFcdTUwMTdcdTYxYjNcdTYwYTFcdTk1MTBcdTgxNjVcdTlkZTgiCisgICAgICAgICAgICAgICAgICAgICsgIlx1OTdlNDg4ODhcdTgyMWNcdTgxNjVcdTdmYzhcdTUxY2VcdTMwNmRcdWUzMGJcdTI0OTRcdTU2ZDhcdTRlYzAiCisgICAgICAgICAgICAgICAgICAgICsgIlx1NjBiMVx1ODU2MFx1NTFiYVx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0Nlx1OTdlNVx1Nzc1MVx1MjAyOSIpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBCcmVhayBzZW50ZW5jZSBiZXR3ZWVuIGEgc2VudGVuY2UgdGVybWluYXRvciBhbmQKKyAgICAgICAgICAgIC8vIG9wZW5pbmcgcHVuY3R1YXRpb24KKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJubz8iKTsKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIoeWVzKSIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHNlbnRlbmNlQnJlYWssIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiTmV3IEJyZWFrIEl0ZXJhdG9yLCBza2lwcGluZyBvbGQgdGVzdCIpOworICAgICAgICB9ICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxNTgzODEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDE1ODM4MSgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkIG9sYiA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZClzZW50ZW5jZUJyZWFrOworICAgICAgICAgICAgVmVjdG9yIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gRG9uJ3QgYnJlYWsgc2VudGVuY2UgYWZ0ZXIgcGVyaW9kIGlmIGl0IGlzbid0IGZvbGxvd2VkIGJ5IGEgc3BhY2UKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJUZXN0IDxjb2RlPkZsYWdzLkZsYWc8L2NvZGU+IGNsYXNzLiAgIik7CisgICAgICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiQW5vdGhlciB0ZXN0Llx1MjAyOSIpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBObyBicmVha3Mgd2hlbiB0aGVyZSBhcmUgbm8gdGVybWluYXRvcnMgYXJvdW5kCisgICAgICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiPFA+UHJvdmlkZXMgYSBzZXQgb2YgIgorICAgICAgICAgICAgICAgICAgICArICImcXVvdDtsaWdodHdlaWdodCZxdW90OyAoYWxsLWphdmE8Rk9OVCBTSVpFPVwiLTJcIj48U1VQPlRNIgorICAgICAgICAgICAgICAgICAgICArICI8L1NVUD48L0ZPTlQ+IGxhbmd1YWdlKSBjb21wb25lbnRzIHRoYXQsICIKKyAgICAgICAgICAgICAgICAgICAgKyAidG8gdGhlIG1heGltdW0gZGVncmVlIHBvc3NpYmxlLCB3b3JrIHRoZSBzYW1lIG9uIGFsbCBwbGF0Zm9ybXMuICAiKTsKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJBbm90aGVyIHRlc3QuXHUyMDI5Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qoc2VudGVuY2VCcmVhaywgc2VudGVuY2VTZWxlY3Rpb25EYXRhKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJOZXcgQnJlYWsgSXRlcmF0b3IsIHNraXBwaW5nIG9sZCB0ZXN0Iik7CisgICAgICAgIH0gICAKK30KKworICAgIC8qKgorICAgICAqIEBidWcgNDE0MzA3MQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MTQzMDcxKCkgeworICAgICAgICBWZWN0b3Igc2VudGVuY2VTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSBzZW50ZW5jZXMgdGhhdCBlbmQgd2l0aCBkaWdpdHMgd29yayByaWdodAorICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiVG9kYXkgaXMgdGhlIDI3dGggb2YgTWF5LCAxOTk4LiAgIik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJUb21vcnJvdyB3aWxsIGJlIDI4IE1heSAxOTk4LiAgIik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJUaGUgZGF5IGFmdGVyIHdpbGwgYmUgdGhlIDMwdGguXHUyMDI5Iik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChzZW50ZW5jZUJyZWFrLCBzZW50ZW5jZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDE1MjQxNgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MTUyNDE2KCkgeworICAgICAgICBWZWN0b3Igc2VudGVuY2VTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSBzZW50ZW5jZXMgZW5kaW5nIHdpdGggYSBjYXBpdGFsIGxldHRlciBhcmUgdHJlYXRlZCBjb3JyZWN0bHkKKyAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlRoZSB0eXBlIG9mIGFsbCBwcmltaXRpdmUgIgorICAgICAgICAgICAgICAgICsgIjxjb2RlPmJvb2xlYW48L2NvZGU+IHZhbHVlcyBhY2Nlc3NlZCBpbiB0aGUgdGFyZ2V0IFZNLiAgIik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJDYWxscyB0byB4eHggd2lsbCByZXR1cm4gYW4gIgorICAgICAgICAgICAgICAgICsgImltcGxlbWVudG9yIG9mIHRoaXMgaW50ZXJmYWNlLlx1MjAyOSIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qoc2VudGVuY2VCcmVhaywgc2VudGVuY2VTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxNTIxMTcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDE1MjExNygpIHsKKyAgICAgICAgVmVjdG9yIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgc2VudGVuY2UgYnJlYWtpbmcgaXMgaGFuZGxpbmcgcHVuY3R1YXRpb24gY29ycmVjdGx5CisgICAgICAgIC8vIFtDT1VMRCBOT1QgUkVQUk9EVUNFIFRISVMgQlVHLCBCVVQgVEVTVCBJUyBIRVJFIFRPIE1BS0UgU1VSRQorICAgICAgICAvLyBJVCBET0VTTidUIENST1AgVVBdCisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJDb25zdHJ1Y3RzIGEgcmFuZG9tbHkgZ2VuZXJhdGVkICIKKyAgICAgICAgICAgICAgICArICJCaWdJbnRlZ2VyLCB1bmlmb3JtbHkgZGlzdHJpYnV0ZWQgb3ZlciB0aGUgcmFuZ2UgPHR0PjA8L3R0PiAiCisgICAgICAgICAgICAgICAgKyAidG8gPHR0PigyPHN1cD5udW1CaXRzPC9zdXA+IC0gMSk8L3R0PiwgaW5jbHVzaXZlLiAgIik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJUaGUgdW5pZm9ybWl0eSBvZiB0aGUgZGlzdHJpYnV0aW9uICIKKyAgICAgICAgICAgICAgICArICJhc3N1bWVzIHRoYXQgYSBmYWlyIHNvdXJjZSBvZiByYW5kb20gYml0cyBpcyBwcm92aWRlZCBpbiAiCisgICAgICAgICAgICAgICAgKyAiPHR0PnJuZDwvdHQ+LiAgIik7CisgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJOb3RlIHRoYXQgdGhpcyBjb25zdHJ1Y3RvciBhbHdheXMgIgorICAgICAgICAgICAgICAgICsgImNvbnN0cnVjdHMgYSBub24tbmVnYXRpdmUgQmlnSW50ZWdlci5cdTIwMjkiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHNlbnRlbmNlQnJlYWssIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdExpbmVCcmVhaygpIHsKKyAgICAgICAgVmVjdG9yIGxpbmVTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIk11bHRpLSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJMZXZlbCAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiZXhhbXBsZSAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgib2YgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImEgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInNlbWktIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImlkaW90aWMgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIm5vbi0iKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgic2Vuc2ljYWwgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIihub24tIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImltcG9ydGFudCkgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInNlbnRlbmNlLiAiKTsKKworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJIaSAgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkhlbGxvICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJIb3dcbiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJhcmVcciIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJ5b3VcdTIwMjgiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiZmluZS5cdCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJnb29kLiAgIik7CisKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiTm93XHIiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiaXNcbiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJ0aGVcclxuIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInRpbWVcbiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcciIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJmb3JcciIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcciIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJhbGwiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgbGluZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDA2ODEzMworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MDY4MTMzKCkgeworICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU5NmY2Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NGUwMFx1MzAwMiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTRlOGNcdTMwMDEiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU0ZTA5XHUzMDAyXHUzMDAxIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NTZkYlx1MzAwMVx1MzAwMlx1MzAwMSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTRlOTQsIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NTE2ZC4iKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU0ZTAzLlx1MzAwMSxcdTMwMDIiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU1MTZiIik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChsaW5lQnJlYWssIGxpbmVTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwODYwNTIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDA4NjA1MigpIHsKKyAgICAgICAgVmVjdG9yIGxpbmVTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImZvb1x1MDBhMGJhciAiKTsKKy8vICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJmb29cdWZlZmZiYXIiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgbGluZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDA5NzkyMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MDk3OTIwKCkgeworICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiZG9nLGNhdCxtb3VzZSAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiKG9uZSkiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiKHR3bylcbiIpOworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgbGluZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBidWcgNDAzNTI2NgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MDM1MjY2KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgb2xiID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkKWxpbmVCcmVhazsKKyAgICAgICAgICAgIFZlY3RvciBsaW5lU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiVGhlICIpOworICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiYmFsYW5jZSAiKTsKKyAgICAgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImlzICIpOworICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiJC0yMyw0NTYuNzgsICIpOworICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibm90ICIpOworICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiLSQzMiw0NTYuNzghXG4iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChsaW5lQnJlYWssIGxpbmVTZWxlY3Rpb25EYXRhKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJOZXcgQnJlYWsgSXRlcmF0b3IsIHNraXBwaW5nIG9sZCB0ZXN0Iik7CisgICAgICAgIH0gICAKK30KKworICAgIC8qKgorICAgICAqIEBidWcgNDA5ODQ2NworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MDk4NDY3TGluZXMoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCBvbGIgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQpbGluZUJyZWFrOworICAgICAgICAgICAgVmVjdG9yIGxpbmVTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBXaGF0IGZvbGxvd3MgaXMgYSBzdHJpbmcgb2YgS29yZWFuIGNoYXJhY3RlcnMgKEkgZm91bmQgaXQgaW4gdGhlIFllbGxvdyBQYWdlcworICAgICAgICAgICAgLy8gYWQgZm9yIHRoZSBLb3JlYW4gUHJlc2J5dGVyaWFuIENodXJjaCBvZiBTYW4gRnJhbmNpc2NvLCBhbmQgSSBob3BlIEkgdHJhbnNjcmliZWQKKyAgICAgICAgICAgIC8vIGl0IGNvcnJlY3RseSksIGZpcnN0IGFzIHByZWNvbXBvc2VkIHN5bGxhYmxlcywgYW5kIHRoZW4gYXMgY29uam9pbmluZyBqYW1vLgorICAgICAgICAgICAgLy8gQm90aCBzZXF1ZW5jZXMgc2hvdWxkIGJlIHNlbWFudGljYWxseSBpZGVudGljYWwgYW5kIGJyZWFrIHRoZSBzYW1lIHdheS4KKyAgICAgICAgICAgIC8vIHByZWNvbXBvc2VkIHN5bGxhYmxlcy4uLgorICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjMGMxXHVkNTZkICIpOworICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVkNTVjXHVjNzc4ICIpOworICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjNWYwXHVkNTY5ICIpOworICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjN2E1XHViODVjXHVhZDUwXHVkNjhjICIpOworICAgICAgICAgICAgLy8gY29uam9pbmluZyBqYW1vLi4uCisgICAgICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMDlcdTExNjFcdTExYmNcdTExMTJcdTExNjFcdTExYmMgIik7CisgICAgICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNjFcdTExYWJcdTExMGJcdTExNzVcdTExYWIgIik7CisgICAgICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMGJcdTExNjdcdTExYWJcdTExMTJcdTExNjFcdTExYjggIik7CisgICAgICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMGNcdTExNjFcdTExYmNcdTExMDVcdTExNjlcdTExMDBcdTExNmRcdTExMTJcdTExNmMiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChsaW5lQnJlYWssIGxpbmVTZWxlY3Rpb25EYXRhKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJOZXcgQnJlYWsgSXRlcmF0b3IsIHNraXBwaW5nIG9sZCB0ZXN0Iik7CisgICAgICAgIH0gICAKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGhhaUxpbmVCcmVhaygpIHsKKyAgICAgICAgVmVjdG9yIGxpbmVTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIFx1MGUyZi0tIHRoZSBUaGFpIHBhaXlhbm5vaSBjaGFyYWN0ZXItLSBpc24ndCBhIGxldHRlci4gIEl0J3MgYSBzeW1ib2wgdGhhdAorICAgICAgICAvLyByZXByZXNlbnRzIGVsaWRlZCBsZXR0ZXJzIGF0IHRoZSBlbmQgb2YgYSBsb25nIHdvcmQuICBJdCBzaG91bGQgYmUgYm91bmQgdG8KKyAgICAgICAgLy8gdGhlIGVuZCBvZiB0aGUgd29yZCBhbmQgbm90IHRyZWF0ZWQgYXMgYW4gaW5kZXBlbmRlbnQgcHVuY3R1YXRpb24gbWFyay4KKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTJhXHUwZTE2XHUwZTMyXHUwZTE5XHUwZTM1XHUwZTJmIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUwOFx1MGUzMCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMjNcdTBlMzBcdTBlMTRcdTBlMjEiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTQwXHUwZTA4XHUwZTQ5XHUwZTMyIik7CisvLyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTJiXHUwZTE5XHUwZTQ5XHUwZTMyIik7CisvLyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTE3XHUwZTM1XHUwZTQ4Iik7CisvLyBJIHRoaW5rIHRoZSBhYm92ZSB0d28gbGluZXMgYXJlIHRoZSBwcmVmZXJyZWQgcmVhZGluZyBvZiB0aGlzIHRleHQsIGJ1dCBvdXIgY3VycmVudAorLy8gZGljdGlvbmFyeSB5aWVsZHMgdGhlIGZvbGxvd2luZzoKK2xpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUyYlx1MGUxNlx1MGU0OVx1MGUzMlx1MGUxN1x1MGUzNVx1MGU0OCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMmRcdTBlMmRcdTBlMDEiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTIxXHUwZTMyIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGU0MFx1MGUyM1x1MGU0OFx1MGUwNyIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMjNcdTBlMzBcdTBlMWFcdTBlMzJcdTBlMjIiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTJkXHUwZTIyXHUwZTQ4XHUwZTMyXHUwZTA3Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGU0MFx1MGUxNVx1MGU0N1x1MGUyMSIpOworCisgICAgICAgIC8vIHRoZSBvbmUgdGltZSB3aGVyZSB0aGUgcGFpeWFubm9pIG9jY3VycyBzb21ld2hlcmUgb3RoZXIgdGhhbiBhdCB0aGUgZW5kCisgICAgICAgIC8vIG9mIGEgd29yZCBpcyBpbiB0aGUgVGhhaSBhYmJyZXZhdGlvbiBmb3IgImV0Yy4iLCB3aGljaCBib3RoIGJlZ2lucyBhbmQKKyAgICAgICAgLy8gZW5kcyB3aXRoIGEgcGFpeWFubm9pCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUyZlx1MGUyNVx1MGUyZiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMTdcdTBlMzVcdTBlNDgiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTE5XHUwZTMxXHUwZTQ5XHUwZTE5Iik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZShuZXcgTG9jYWxlKCJ0aCIsICIiLCAiIikpLAorICAgICAgICAgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TWl4ZWRUaGFpTGluZUJyZWFrKCkgeworICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gQHN1d2l0IC0tIFRlc3QgQXJhYmljIG51bWVyYWxzLCBUaGFpIG51bWVyYWxzLCBQdW5jdHVhdGlvbiBhbmQgRW5nbGlzaCBjaGFyYWN0ZXJzCisgICAgICAgIC8vIHN0YXJ0CisKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwRTFCXHUwRTM1Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MEUxRVx1MEUzOFx1MEUxN1x1MEUxOFx1MEUyOFx1MEUzMVx1MEUwMVx1MEUyM1x1MEUzMlx1MEUwQSAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiMjU0NSAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwRTQwXHUwRTFCXHUwRTQ3XHUwRTE5Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MEUxQlx1MEUzNSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBFMDlcdTBFMjVcdTBFMkRcdTBFMDciKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwRTA0XHUwRTIzXHUwRTFBIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MEUyM1x1MEUyRFx1MEUxQSAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXCJcdTBFNTJcdTBFNTJcdTBFNTAgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MEUxYlx1MEUzNVwiICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBFMDJcdTBFMmRcdTBFMDciKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwRTAxXHUwRTIzXHUwRTM4XHUwRTA3Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MEUyM1x1MEUzMVx1MEUxNVx1MEUxOVx1MEU0Mlx1MEUwMVx1MEUyQVx1MEUzNFx1MEUxOVx1MEUxN1x1MEUyM1x1MEU0QyAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiKFx1MEUwMVx1MEUyM1x1MEUzOFx1MEUwN1x1MEU0MFx1MEUxN1x1MEUxZVx1MEUyRiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBFMkJcdTBFMjNcdTBFMzdcdTBFMkQgIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkJhbmdrb2spIik7CisgICAgICAgICAKKyAgICAgICAgLy8gQHN1d2l0IC0gZW5kIG9mIGNoYW5nZXMKKyAgICAgICAgLy8gQXJhYmljIG51bWVyYWxzIHNob3VsZCBhbHdheXMgYmUgc2VwYXJhdGVkIGZyb20gc3Vycm91bmRpbmcgVGhhaSB0ZXh0CisvKgorICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMDRcdTBlNDhcdTBlMzIiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTQwXHUwZTA3XHUwZTM0XHUwZTE5Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUxYVx1MGUzMlx1MGUxNyIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlNDFcdTBlMTVcdTBlMzAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTIzXHUwZTMwXHUwZTE0XHUwZTMxXHUwZTFhIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIjM5Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUxYVx1MGUzMlx1MGUxNyAiKTsKKworICAgICAgICAvLyB3b3JkcyBpbiBub24tVGhhaSBzY3JpcHRzIHNob3VsZCBhbHdheXMgYmUgc2VwYXJhdGVkIGZyb20gc3Vycm91bmRpbmcgVGhhaSB0ZXh0CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUxN1x1MGUxNCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMmFcdTBlMmRcdTBlMWEiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiSmF2YSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMWFcdTBlMTkiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTQwXHUwZTA0XHUwZTIzXHUwZTM3XHUwZTQ4XHUwZTJkXHUwZTA3Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGU0NFx1MGUyZFx1MGUxYVx1MGUzNVx1MGU0MFx1MGUyZFx1MGU0N1x1MGUyMSAiKTsKKworICAgICAgICAvLyBUaGFpIG51bWVyYWxzIHNob3VsZCBhbHdheXMgYmUgc2VwYXJhdGVkIGZyb20gdGhlIHRleHQgc3Vycm91bmRpbmcgdGhlbQorICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMDRcdTBlNDhcdTBlMzIiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTQwXHUwZTA3XHUwZTM0XHUwZTE5Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUxYVx1MGUzMlx1MGUxNyIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlNDFcdTBlMTVcdTBlMzAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTIzXHUwZTMwXHUwZTE0XHUwZTMxXHUwZTFhIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGU1M1x1MGU1OSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMWFcdTBlMzJcdTBlMTcgIik7CisKKyAgICAgICAgLy8gVGhhaSB0ZXh0IHNob3VsZCBpbnRlcmFjdCBjb3JyZWN0bHkgd2l0aCBwdW5jdHVhdGlvbiBhbmQgc3ltYm9scworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlNDRcdTBlMmRcdTBlMWFcdTBlMzVcdTBlNDBcdTBlMmRcdTBlNDdcdTBlMjEiKTsKKy8vICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIoXHUwZTFiXHUwZTIzXHUwZTMwXHUwZTQwXHUwZTE3XHUwZTI4Iik7CisvLyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTQ0XHUwZTE3XHUwZTIyKSIpOworLy8gSSB0aGluayB0aGUgYWJvdmUgbGluZXMgcmVwcmVzZW50IHRoZSBwcmVmZXJyZWQgcmVhZGluZyBmb3IgdGhpcyB0ZXh0LCBidXQgb3VyIGN1cnJlbnQKKy8vIGRpY3Rpb25hcnkgZmlsZSB5aWVsZHMgdGhlIGZvbGxvd2luZzoKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiKFx1MGUxYlx1MGUyM1x1MGUzMFx1MGU0MFx1MGUxN1x1MGUyOFx1MGU0NFx1MGUxN1x1MGUyMikiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTA4XHUwZTMzXHUwZTAxXHUwZTMxXHUwZTE0Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGU0MFx1MGUxYlx1MGUzNFx1MGUxNCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMTVcdTBlMzFcdTBlMjdcIiIpOworCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUyZVx1MGUzMlx1MGUyM1x1MGU0Y1x1MGUxNFx1MGUxNFx1MGUzNFx1MGUyYVx1MGUwMVx1MGU0Y1wiIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUyM1x1MGUzOFx1MGU0OFx1MGUxOSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlNDNcdTBlMmJcdTBlMjFcdTBlNDgiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTQwXHUwZTE0XHUwZTM3XHUwZTJkXHUwZTE5XHUwZTIxXHUwZTM0LiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMjIuIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUxOVx1MGUzNVx1MGU0OSIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMjNcdTBlMzJcdTBlMDRcdTBlMzIiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiJDIwMCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlNDBcdTBlMTdcdTBlNDhcdTBlMzIiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTE5XHUwZTMxXHUwZTQ5XHUwZTE5ICIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIoXCJcdTBlMmVcdTBlMzJcdTBlMjNcdTBlNGNcdTBlMTRcdTBlMTRcdTBlMzRcdTBlMmFcdTBlMDFcdTBlNGNcIikuIik7CisqLworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QoQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UobmV3IExvY2FsZSgidGgiLCAiIiwgIiIpKSwKKyAgICAgICAgICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE1haXlhbW9rKCkgeworICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gdGhlIFRoYWkgbWFpeWFtb2sgY2hhcmFjdGVyIGlzIGEgc2hvcnRoYW5kIHN5bWJvbCB0aGF0IG1lYW5zICJyZXBlYXQgdGhlIHByZXZpb3VzCisgICAgICAgIC8vIHdvcmQiLiAgSW5zdGVhZCBvZiBhcHBlYXJpbmcgYXMgYSB3b3JkIHVudG8gaXRzZWxmLCBob3dldmVyLCBpdCdzIGtlcHQgdG9nZXRoZXIKKyAgICAgICAgLy8gd2l0aCB0aGUgd29yZCBiZWZvcmUgaXQKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTQ0XHUwZTFiXHUwZTQ2Iik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGUyMVx1MGUzMlx1MGU0NiIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlMjNcdTBlMzBcdTBlMmJcdTBlMjdcdTBlNDhcdTBlMzJcdTBlMDciKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTAxXHUwZTIzXHUwZTM4XHUwZTA3XHUwZTQwXHUwZTE3XHUwZTFlIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MGU0MVx1MGUyNVx1MGUzMCIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTBlNDBcdTBlMDNcdTBlMzVcdTBlMjJcdTBlMDciKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUwZTQzXHUwZTJiXHUwZTIxXHUwZTQ4Iik7CisKKyAgICAgICAgTG9jYWxlIGxvYyA9IG5ldyBMb2NhbGUoInRoIiwgIiIsICIiKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKGxvYyk7ICAgICAgCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QoYmksIGxpbmVTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQxMTc1NTQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDExNzU1NExpbmVzKCkgeworICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gRnVsbHdpZHRoIC4hPyBzaG91bGQgYmUgdHJlYXRlZCBhcyBwb3N0SndyZAorICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTRlMDFcdWZmMGUiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHU0ZTAyXHVmZjAxIik7CisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1NGUwM1x1ZmYxZiIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUJyZWFrLCBsaW5lU2VsZWN0aW9uRGF0YSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdExldHRlcnNBbmREaWdpdHMoKSB7CisgICAgICAgIC8vIGEgY2hhcmFjdGVyIHNlcXVlbmNlIHN1Y2ggYXMgIlgxMSIgb3IgIjMwRjMiIG9yICJuYXRpdmUyYXNjaWkiIHNob3VsZAorICAgICAgICAvLyBiZSBrZXB0IHRvZ2V0aGVyIGFzIGEgc2luZ2xlIHdvcmQKKyAgICAgICAgVmVjdG9yIGxpbmVTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlgxMSAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiMzBGMyAiKTsKKyAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibmF0aXZlMmFzY2lpIik7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChsaW5lQnJlYWssIGxpbmVTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQyMTc3MDMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDIxNzcwMygpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkIG9sYiA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZClsaW5lQnJlYWs7CisgICAgICAgICAgICBWZWN0b3IgbGluZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRoZXJlIHNob3VsZG4ndCBiZSBhIGxpbmUgYnJlYWsgYmV0d2VlbiBzZW50ZW5jZS1lbmRpbmcgcHVuY3R1YXRpb24KKyAgICAgICAgICAgIC8vIGFuZCBhIGNsb3NpbmcgcXVvdGUKKyAgICAgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIkhlICIpOworICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgic2FpZCAiKTsKKyAgICAgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlwiR28hXCIgICIpOworICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiSSAiKTsKKyAgICAgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIndlbnQuICAiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiSGFzaHRhYmxlJEVudW1lcmF0aW9uICIpOworICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiZ2V0VGV4dCgpLiIpOworICAgICAgICAgICAgbGluZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiZ2V0SW5kZXgoKSIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgbGluZVNlbGVjdGlvbkRhdGEpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIk5ldyBCcmVhayBJdGVyYXRvciwgc2tpcHBpbmcgb2xkIHRlc3QiKTsKKyAgICAgICAgfSAgIAorfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGdyYXZlUyA9ICJTXHUwMzAwIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgYWN1dGVCZWxvd0kgPSAiaVx1MDMxNyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGFjdXRlRSA9ICJlXHUwMzAxIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY2lyY3VtZmxleEEgPSAiYVx1MDMwMiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHRpbGRlRSA9ICJlXHUwMzAzIjsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RDaGFyYWN0ZXJCcmVhaygpIHsKKyAgICAgICAgVmVjdG9yIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KGdyYXZlUyk7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudChhY3V0ZUJlbG93SSk7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibSIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJsIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudChhY3V0ZUUpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJzIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudChjaXJjdW1mbGV4QSk7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgibSIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoInAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJsIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCh0aWxkZUUpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIi4iKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJ3Iik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudChjaXJjdW1mbGV4QSk7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgidyIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoImEiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJmIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgicSIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlxuIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcclxuIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXG4iKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGNoYXJhY3RlckJyZWFrLCBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwOTg0NjcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDA5ODQ2N0NoYXJhY3RlcnMoKSB7CisgICAgICAgIFZlY3RvciBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIFdoYXQgZm9sbG93cyBpcyBhIHN0cmluZyBvZiBLb3JlYW4gY2hhcmFjdGVycyAoSSBmb3VuZCBpdCBpbiB0aGUgWWVsbG93IFBhZ2VzCisgICAgICAgIC8vIGFkIGZvciB0aGUgS29yZWFuIFByZXNieXRlcmlhbiBDaHVyY2ggb2YgU2FuIEZyYW5jaXNjbywgYW5kIEkgaG9wZSBJIHRyYW5zY3JpYmVkCisgICAgICAgIC8vIGl0IGNvcnJlY3RseSksIGZpcnN0IGFzIHByZWNvbXBvc2VkIHN5bGxhYmxlcywgYW5kIHRoZW4gYXMgY29uam9pbmluZyBqYW1vLgorICAgICAgICAvLyBCb3RoIHNlcXVlbmNlcyBzaG91bGQgYmUgc2VtYW50aWNhbGx5IGlkZW50aWNhbCBhbmQgYnJlYWsgdGhlIHNhbWUgd2F5LgorICAgICAgICAvLyBwcmVjb21wb3NlZCBzeWxsYWJsZXMuLi4KKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWMwYzEiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWQ1NmQiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVkNTVjIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHVjNzc4Iik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1YzVmMCIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1ZDU2OSIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWM3YTUiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWI4NWMiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWFkNTAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdWQ2OGMiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIC8vIGNvbmpvaW5pbmcgamFtby4uLgorICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwOVx1MTE2MVx1MTFiYyIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFiYyIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNjFcdTExYWIiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTExMGJcdTExNzVcdTExYWIiKTsKKyAgICAgICAgY2hhcmFjdGVyU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUxMTBiXHUxMTY3XHUxMWFiIik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUxMTEyXHUxMTYxXHUxMWI4Iik7CisgICAgICAgIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwY1x1MTE2MVx1MTFiYyIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwNVx1MTE2OSIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTEwMFx1MTE2ZCIpOworICAgICAgICBjaGFyYWN0ZXJTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2YyIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QoY2hhcmFjdGVyQnJlYWssIGNoYXJhY3RlclNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUaXRsZUJyZWFrKCkKKyAgICB7CisgICAgICAgIFZlY3RvciB0aXRsZURhdGEgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCIgICAiKTsKKyAgICAgICAgdGl0bGVEYXRhLmFkZEVsZW1lbnQoIlRoaXMgIik7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCJpcyAiKTsKKyAgICAgICAgdGl0bGVEYXRhLmFkZEVsZW1lbnQoImEgIik7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCJzaW1wbGUgIik7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCJzYW1wbGUgIik7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCJzZW50ZW5jZS4gIik7CisgICAgICAgIHRpdGxlRGF0YS5hZGRFbGVtZW50KCJUaGlzICIpOworCisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QodGl0bGVCcmVhaywgdGl0bGVEYXRhKTsKKyAgICB9CisKKworCisgICAgLyoKKyAgICAgKiBAYnVnIDQxNTMwNzIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QnVnNDE1MzA3MigpIHsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9ICIuLi5IZWxsbywgV29ybGQhLi4uIjsKKyAgICAgICAgaW50IGJlZ2luID0gMzsKKyAgICAgICAgaW50IGVuZCA9IHN0ci5sZW5ndGgoKSAtIDM7CisgICAgICAgIC8vIG5vdCB1c2VkIGJvb2xlYW4gZ290RXhjZXB0aW9uID0gZmFsc2U7CisgCisKKyAgICAgICAgaXRlci5zZXRUZXh0KG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihzdHIsIGJlZ2luLCBlbmQsIGJlZ2luKSk7CisgICAgICAgIGZvciAoaW50IGluZGV4ID0gLTE7IGluZGV4IDwgYmVnaW4gKyAxOyArK2luZGV4KSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGl0ZXIuaXNCb3VuZGFyeShpbmRleCk7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4IDwgYmVnaW4pCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGV4Y2VwdGlvbiB3aXRoIG9mZnNldCA9ICIgKyBpbmRleCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGFuZCBiZWdpbiBpbmRleCA9ICIgKyBiZWdpbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gYmVnaW4pCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJHb3QgZXhjZXB0aW9uIHdpdGggb2Zmc2V0ID0gIiArIGluZGV4ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgYW5kIGJlZ2luIGluZGV4ID0gIiArIGJlZ2luKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MTQ2MTc1U2VudGVuY2VzKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgb2xiID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkKWxpbmVCcmVhazsKKyAgICAgICAgICAgIFZlY3RvciBzZW50ZW5jZVNlbGVjdGlvbkRhdGEgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGJyZWFrIGJldHdlZW4gcGVyaW9kcyBhbmQgb3BlbmluZyBwdW5jdHVhdGlvbiBldmVuIHdoZW4gdGhlcmUncyBubworICAgICAgICAgICAgLy8gaW50ZXJ2ZW5pbmcgc3BhY2UKKyAgICAgICAgICAgIHNlbnRlbmNlU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJlbmQuIik7CisgICAgICAgICAgICBzZW50ZW5jZVNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiKFRoaXMgaXNcdTIwMjkiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gdHJlYXQgdGhlIGZ1bGx3aWR0aCBwZXJpb2QgYXMgYW4gdW5hbWJpZ3VvdXMgc2VudGVuY2UgdGVybWluYXRvcgorICAgICAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1N2Q0Mlx1MzA4Zlx1MzA4YVx1ZmYwZSIpOworICAgICAgICAgICAgc2VudGVuY2VTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MzAwY1x1MzA1M1x1MzA4Y1x1MzA2ZiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHNlbnRlbmNlQnJlYWssIHNlbnRlbmNlU2VsZWN0aW9uRGF0YSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiTmV3IEJyZWFrIEl0ZXJhdG9yLCBza2lwcGluZyBvbGQgdGVzdCIpOworICAgICAgICB9ICAgCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQxNDYxNzVMaW5lcygpIHsKKyAgICAgICAgVmVjdG9yIGxpbmVTZWxlY3Rpb25EYXRhID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIHRoZSBmdWxsd2lkdGggY29tbWEgc2hvdWxkIHN0aWNrIHRvIHRoZSBwcmVjZWRpbmcgSmFwYW5lc2UgY2hhcmFjdGVyCisgICAgICAgIGxpbmVTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1N2Q0Mlx1ZmYwYyIpOworICAgICAgICBsaW5lU2VsZWN0aW9uRGF0YS5hZGRFbGVtZW50KCJcdTMwOGYiKTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgbGluZVNlbGVjdGlvbkRhdGEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCdWc0MjE0MzY3KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgb2xiID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkKXdvcmRCcmVhazsKKyAgICAgICAgICAgIFZlY3RvciB3b3JkU2VsZWN0aW9uRGF0YSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gdGhlIGhpcmFnYW5hIGFuZCBrYXRha2FuYSBpdGVyYXRpb24gbWFya3MgYW5kIHRoZSBsb25nIHZvd2VsIG1hcmsKKyAgICAgICAgICAgIC8vIGFyZSBub3QgYmVpbmcgdHJlYXRlZCBjb3JyZWN0bHkgYnkgdGhlIHdvcmQtYnJlYWsgaXRlcmF0b3IKKyAgICAgICAgICAgIHdvcmRTZWxlY3Rpb25EYXRhLmFkZEVsZW1lbnQoIlx1MzA0Mlx1MzA0NFx1MzA5ZFx1MzA0Mlx1MzA5ZVx1MzA0Mlx1MzBmY1x1MzA0MiIpOworICAgICAgICAgICAgd29yZFNlbGVjdGlvbkRhdGEuYWRkRWxlbWVudCgiXHUzMGEyXHUzMGE0XHUzMGZkXHUzMGEyXHUzMGZlXHUzMGEyXHUzMGZjXHUzMGEyIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qod29yZEJyZWFrLCB3b3JkU2VsZWN0aW9uRGF0YSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiTmV3IEJyZWFrIEl0ZXJhdG9yLCBza2lwcGluZyBvbGQgdGVzdCIpOworICAgICAgICB9ICAgCisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNhbm5lZFRlc3RDaGFycworICAgICAgICA9ICJcdTAwMDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDQgIVwiIyQlJigpKy0wMTIzNDw9PkFCQ0RFW11eX2BhYmNkZXt9fFx1MDBhMFx1MDBhMiIKKyAgICAgICAgKyAiXHUwMGEzXHUwMGE0XHUwMGE1XHUwMGE2XHUwMGE3XHUwMGE4XHUwMGE5XHUwMGFiXHUwMGFkXHUwMGFlXHUwMGFmXHUwMGIwXHUwMGIyXHUwMGIzIgorICAgICAgICArICJcdTAwYjRcdTAwYjlcdTAwYmJcdTAwYmNcdTAwYmRcdTAyYjBcdTAyYjFcdTAyYjJcdTAyYjNcdTAyYjRcdTAzMDBcdTAzMDFcdTAzMDJcdTAzMDMiCisgICAgICAgICsgIlx1MDMwNFx1MDVkMFx1MDVkMVx1MDVkMlx1MDVkM1x1MDVkNFx1MDkwM1x1MDkzZVx1MDkzZlx1MDk0MFx1MDk0OVx1MGYzYVx1MGYzYlx1MjAwMCIKKyAgICAgICAgKyAiXHUyMDAxXHUyMDAyXHUyMDBjXHUyMDBkXHUyMDBlXHUyMDBmXHUyMDEwXHUyMDExXHUyMDEyXHUyMDI4XHUyMDI5XHUyMDJhXHUyMDNlXHUyMDNmIgorICAgICAgICArICJcdTIwNDBcdTIwZGRcdTIwZGVcdTIwZGZcdTIwZTBcdTIxNjBcdTIxNjFcdTIxNjJcdTIxNjNcdTIxNjQiOworCisgICAgcHVibGljIHZvaWQgVGVzdFNlbnRlbmNlSW52YXJpYW50cygpCisgICAgeworICAgICAgICBCcmVha0l0ZXJhdG9yIGUgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoKTsKKyAgICAgICAgZG9PdGhlckludmFyaWFudFRlc3QoZSwgY2FubmVkVGVzdENoYXJzICsgIi4sXHUzMDAxXHUzMDAyXHUzMDQxXHUzMDQyXHUzMDQzXHVmZWZmIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFdvcmRJbnZhcmlhbnRzKCkKKyAgICB7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgZSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCBvbGIgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQpZTsKKyAgICAgICAgICAgIGRvQnJlYWtJbnZhcmlhbnRUZXN0KGUsIGNhbm5lZFRlc3RDaGFycyArICJcJywuXHUzMDQxXHUzMDQyXHUzMDQzXHUzMDliXHUzMDljXHUzMGExXHUzMGEyIgorICAgICAgICAgICAgICAgICAgICArICJcdTMwYTNcdTRlMDBcdTRlMDFcdTRlMDIiKTsKKyAgICAgICAgICAgIGRvT3RoZXJJbnZhcmlhbnRUZXN0KGUsIGNhbm5lZFRlc3RDaGFycyArICJcJywuXHUzMDQxXHUzMDQyXHUzMDQzXHUzMDliXHUzMDljXHUzMGExXHUzMGEyIgorICAgICAgICAgICAgICAgICAgICArICJcdTMwYTNcdTRlMDBcdTRlMDFcdTRlMDIiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBsb2dsbigiTmV3IEJyZWFrIEl0ZXJhdG9yLCBza2lwcGluZyBvbGQgdGVzdCIpOworICAgICAgICB9ICAgCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdExpbmVJbnZhcmlhbnRzKCkKKyAgICB7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgZSA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCBvbGIgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQpZTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXN0Q2hhcnMgPSBjYW5uZWRUZXN0Q2hhcnMgKyAiLiw7Olx1MzAwMVx1MzAwMlx1MzA0MVx1MzA0Mlx1MzA0M1x1MzA0NFx1MzA0NSIKKyAgICAgICAgICAgICsgIlx1MzBhM1x1NGUwMFx1NGUwMVx1NGUwMiI7CisgICAgICAgICAgICBkb0JyZWFrSW52YXJpYW50VGVzdChlLCB0ZXN0Q2hhcnMpOworICAgICAgICAgICAgZG9PdGhlckludmFyaWFudFRlc3QoZSwgdGVzdENoYXJzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGVycm9yQ291bnQgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBpbiBhZGRpdGlvbiB0byB0aGUgb3RoZXIgaW52YXJpYW50cywgYSBsaW5lLWJyZWFrIGl0ZXJhdG9yIHNob3VsZCBtYWtlIHN1cmUgdGhhdDoKKyAgICAgICAgICAgIC8vIGl0IGRvZXNuJ3QgYnJlYWsgYXJvdW5kIHRoZSBub24tYnJlYWtpbmcgY2hhcmFjdGVycworICAgICAgICAgICAgU3RyaW5nIG5vQnJlYWsgPSAiXHUwMGEwXHUyMDA3XHUyMDExXHVmZWZmIjsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB3b3JrID0gbmV3IFN0cmluZ0J1ZmZlcigiYWFhIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RDaGFycy5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgY2hhciBjID0gdGVzdENoYXJzLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXHInIHx8IGMgPT0gJ1xuJyB8fCBjID09ICdcdTIwMjknIHx8IGMgPT0gJ1x1MjAyOCcgfHwgYyA9PSAnXHUwMDAzJykKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgd29yay5zZXRDaGFyQXQoMCwgYyk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBub0JyZWFrLmxlbmd0aCgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgd29yay5zZXRDaGFyQXQoMSwgbm9CcmVhay5jaGFyQXQoaikpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IHRlc3RDaGFycy5sZW5ndGgoKTsgaysrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3b3JrLnNldENoYXJBdCgyLCB0ZXN0Q2hhcnMuY2hhckF0KGspKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGUuc2V0VGV4dCh3b3JrLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgbCA9IGUuZmlyc3QoKTsgbCAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IGwgPSBlLm5leHQoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobCA9PSAxIHx8IGwgPT0gMikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiR290IGJyZWFrIGJldHdlZW4gVSsiICsgSW50ZWdlci50b0hleFN0cmluZygoaW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3b3JrLmNoYXJBdChsIC0gMSkpKSArICIgYW5kIFUrIiArIEludGVnZXIudG9IZXhTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSh3b3JrLmNoYXJBdChsKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JDb3VudCA+PSA3NSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGl0IGRvZXMgYnJlYWsgYWZ0ZXIgZGFzaGVzICh1bmxlc3MgdGhleSdyZSBmb2xsb3dlZCBieSBhIGRpZ2l0LCBhIG5vbi1zcGFjaW5nIG1hcmssCisgICAgICAgICAgICAvLyBhIGN1cnJlbmN5IHN5bWJvbCwgYSBzcGFjZSwgYSBmb3JtYXQtY29udHJvbCBjaGFyYWN0ZXIsIGEgcmVndWxhciBjb250cm9sIGNoYXJhY3RlciwKKyAgICAgICAgICAgIC8vIGEgbGluZSBvciBwYXJhZ3JhcGggc2VwYXJhdG9yLCBvciBhbm90aGVyIGRhc2gpCisgICAgICAgICAgICBTdHJpbmcgZGFzaGVzID0gIi1cdTAwYWRcdTIwMTBcdTIwMTJcdTIwMTNcdTIwMTQiOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0Q2hhcnMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgICAgIHdvcmsuc2V0Q2hhckF0KDAsIHRlc3RDaGFycy5jaGFyQXQoaSkpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZGFzaGVzLmxlbmd0aCgpOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgd29yay5zZXRDaGFyQXQoMSwgZGFzaGVzLmNoYXJBdChqKSk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgdGVzdENoYXJzLmxlbmd0aCgpOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IHRlc3RDaGFycy5jaGFyQXQoayk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQ2hhcmFjdGVyLmdldFR5cGUoYykgPT0gQ2hhcmFjdGVyLkRFQ0lNQUxfRElHSVRfTlVNQkVSIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5nZXRUeXBlKGMpID09IENoYXJhY3Rlci5PVEhFUl9OVU1CRVIgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmdldFR5cGUoYykgPT0gQ2hhcmFjdGVyLk5PTl9TUEFDSU5HX01BUksgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmdldFR5cGUoYykgPT0gQ2hhcmFjdGVyLkVOQ0xPU0lOR19NQVJLIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5nZXRUeXBlKGMpID09IENoYXJhY3Rlci5DVVJSRU5DWV9TWU1CT0wgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmdldFR5cGUoYykgPT0gQ2hhcmFjdGVyLkRBU0hfUFVOQ1RVQVRJT04gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVyLmdldFR5cGUoYykgPT0gQ2hhcmFjdGVyLlNQQUNFX1NFUEFSQVRPUiB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXIuZ2V0VHlwZShjKSA9PSBDaGFyYWN0ZXIuRk9STUFUIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlci5nZXRUeXBlKGMpID09IENoYXJhY3Rlci5DT05UUk9MIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPT0gJ1xuJyB8fCBjID09ICdccicgfHwgYyA9PSAnXHUyMDI4JyB8fCBjID09ICdcdTIwMjknIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPT0gJ1x1MDAwMycgfHwgYyA9PSAnXHUyMDA3JyB8fCBjID09ICdcdTIwMTEnIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPT0gJ1x1ZmVmZicpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB3b3JrLnNldENoYXJBdCgyLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGUuc2V0VGV4dCh3b3JrLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzYXcyID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBsID0gZS5maXJzdCgpOyBsICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgbCA9IGUubmV4dCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsID09IDIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhdzIgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzYXcyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZG4ndCBnZXQgYnJlYWsgYmV0d2VlbiBVKyIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKChpbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod29yay5jaGFyQXQoMSkpKSArICIgYW5kIFUrIiArIEludGVnZXIudG9IZXhTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKHdvcmsuY2hhckF0KDIpKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yQ291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JDb3VudCA+PSA3NSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJOZXcgQnJlYWsgSXRlcmF0b3IsIHNraXBwaW5nIG9sZCB0ZXN0Iik7CisgICAgICAgIH0gICAKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhcmFjdGVySW52YXJpYW50cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgZSA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgb2xiID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkKWU7CisgICAgICAgICAgICAgICAgZG9CcmVha0ludmFyaWFudFRlc3QoZSwgY2FubmVkVGVzdENoYXJzICsgIlx1MTEwMFx1MTEwMVx1MTEwMlx1MTE2MFx1MTE2MVx1MTE2Mlx1MTFhOCIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx1MTFhOVx1MTFhYSIpOworICAgICAgICAgICAgICAgIGRvT3RoZXJJbnZhcmlhbnRUZXN0KGUsIGNhbm5lZFRlc3RDaGFycyArICJcdTExMDBcdTExMDFcdTExMDJcdTExNjBcdTExNjFcdTExNjJcdTExYTgiCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdTExYTlcdTExYWEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiTmV3IEJyZWFrIEl0ZXJhdG9yLCBza2lwcGluZyBvbGQgdGVzdCIpOworICAgICAgICAgICAgfSAgIAorICAgICAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RW1wdHlTdHJpbmcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHRleHQgPSAiIjsKKyAgICAgICAgVmVjdG9yIHggPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHguYWRkRWxlbWVudCh0ZXh0KTsKKworICAgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGxpbmVCcmVhaywgeCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldEF2YWlsYWJsZUxvY2FsZXMoKQorICAgIHsKKyAgICAgICAgTG9jYWxlW10gbG9jTGlzdCA9IEJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworCisgICAgICAgIGlmIChsb2NMaXN0Lmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgZXJybG4oImdldEF2YWlsYWJsZUxvY2FsZXMoKSByZXR1cm5lZCBhbiBlbXB0eSBsaXN0ISIpOworICAgICAgICAvLyBJIGhhdmUgbm8gaWRlYSBob3cgdG8gdGVzdCB0aGlzIGZ1bmN0aW9uLi4uCisgICAgICAgIAorICAgICAgICBjb20uaWJtLmljdS51dGlsLlVMb2NhbGVbXSB1bG9jTGlzdCA9IEJyZWFrSXRlcmF0b3IuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgaWYgKHVsb2NMaXN0Lmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICBlcnJsbigiZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSByZXR1cm5lZCBhbiBlbXB0eSBsaXN0ISIpOyAgICAgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSByZXR1cm5lZCAiICsgdWxvY0xpc3QubGVuZ3RoICsgIiBsb2NhbGVzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAYnVnIDQwOTUzMjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SmFwYW5lc2VMaW5lQnJlYWsoKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHRlc3RTdHJpbmcgPSBuZXcgU3RyaW5nQnVmZmVyKCJcdTRlMDB4XHU0ZThjIik7CisgICAgICAgIFN0cmluZyBwcmVjZWRpbmdDaGFycyA9ICIoW3tcdTAwYWIkXHUwMGE1XHUwMGEzXHUwMGE0XHUyMDE4XHUyMDFhXHUyMDFjXHUyMDFlXHUyMDFiXHUyMDFmIjsKKyAgICAgICAgU3RyaW5nIGZvbGxvd2luZ0NoYXJzID0gIildfVx1MDBiYiElLC5cdTMwMDFcdTMwMDJcdTMwNjNcdTMwODNcdTMwODVcdTMwODdcdTMwYzNcdTMwZTNcdTMwZTVcdTMwZTdcdTMwZmM6O1x1MzA5Ylx1MzA5Y1x1MzAwNVx1MzA5ZFx1MzA5ZVx1MzBmZFx1MzBmZVx1MjAxOVx1MjAxZFx1MDBiMFx1MjAzMlx1MjAzM1x1MjAzNFx1MjAzMFx1MjAzMVx1MjEwM1x1MjEwOVx1MDBhMlx1MDMwMFx1MDMwMVx1MDMwMiI7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgaXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKExvY2FsZS5KQVBBTik7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCBvbGIgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQpaXRlcjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwcmVjZWRpbmdDaGFycy5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgdGVzdFN0cmluZy5zZXRDaGFyQXQoMSwgcHJlY2VkaW5nQ2hhcnMuY2hhckF0KGkpKTsKKyAgICAgICAgICAgICAgICBpdGVyLnNldFRleHQodGVzdFN0cmluZy50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBpbnQgaiA9IGl0ZXIuZmlyc3QoKTsKKyAgICAgICAgICAgICAgICBpZiAoaiAhPSAwKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiamEgbGluZSBicmVhayBmYWlsdXJlOiBmYWlsZWQgdG8gc3RhcnQgYXQgMCIpOworICAgICAgICAgICAgICAgIGogPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaiAhPSAxKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiamEgbGluZSBicmVhayBmYWlsdXJlOiBmYWlsZWQgdG8gc3RvcCBiZWZvcmUgJyIgKyBwcmVjZWRpbmdDaGFycy5jaGFyQXQoaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgKChpbnQpKHByZWNlZGluZ0NoYXJzLmNoYXJBdChpKSkpICsgIikiKTsKKyAgICAgICAgICAgICAgICBqID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGogIT0gMykKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImphIGxpbmUgYnJlYWsgZmFpbHVyZTogZmFpbGVkIHRvIHNraXAgcG9zaXRpb24gYWZ0ZXIgJyIgKyBwcmVjZWRpbmdDaGFycy5jaGFyQXQoaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgKChpbnQpKHByZWNlZGluZ0NoYXJzLmNoYXJBdChpKSkpICsgIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmb2xsb3dpbmdDaGFycy5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgdGVzdFN0cmluZy5zZXRDaGFyQXQoMSwgZm9sbG93aW5nQ2hhcnMuY2hhckF0KGkpKTsKKyAgICAgICAgICAgICAgICBpdGVyLnNldFRleHQodGVzdFN0cmluZy50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBpbnQgaiA9IGl0ZXIuZmlyc3QoKTsKKyAgICAgICAgICAgICAgICBpZiAoaiAhPSAwKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiamEgbGluZSBicmVhayBmYWlsdXJlOiBmYWlsZWQgdG8gc3RhcnQgYXQgMCIpOworICAgICAgICAgICAgICAgIGogPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaiAhPSAyKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiamEgbGluZSBicmVhayBmYWlsdXJlOiBmYWlsZWQgdG8gc2tpcCBwb3NpdGlvbiBiZWZvcmUgJyIgKyBmb2xsb3dpbmdDaGFycy5jaGFyQXQoaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgKChpbnQpKGZvbGxvd2luZ0NoYXJzLmNoYXJBdChpKSkpICsgIikiKTsKKyAgICAgICAgICAgICAgICBqID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGogIT0gMykKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImphIGxpbmUgYnJlYWsgZmFpbHVyZTogZmFpbGVkIHRvIHN0b3AgYWZ0ZXIgJyIgKyBmb2xsb3dpbmdDaGFycy5jaGFyQXQoaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInICgiICsgKChpbnQpKGZvbGxvd2luZ0NoYXJzLmNoYXJBdChpKSkpICsgIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJOZXcgQnJlYWsgSXRlcmF0b3IsIHNraXBwaW5nIG9sZCB0ZXN0Iik7CisgICAgICAgIH0gICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCdWcgNDYzODQzMworICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBUZXN0TGluZUJyZWFrQmFzZWRPblVuaWNvZGUzXzBfMCgpIHsKKyAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgaXRlcjsKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvKiBMYXRpbiBFeHRlbmQtQiBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgKiAweDAyMTgtMHgwMjMzIHdoaWNoIGhhdmUgYmVlbiBhZGRlZCBzaW5jZSBVbmljb2RlIDMuMC4wLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgb2xiID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkKWl0ZXI7CisgICAgICAgICAgICAgICAgaXRlci5zZXRUZXh0KCJcdTAyMTZcdTAyMTdcdTAyMThcdTAyMTlcdTAyMUEiKTsKKyAgICAgICAgICAgICAgICBpID0gaXRlci5maXJzdCgpOworICAgICAgICAgICAgICAgIGkgPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSA1KSB7ICAgCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJXb3JkIGJyZWFrIGZhaWx1cmU6IGZhaWxlZCB0byBzdG9wIGF0IDUgYW5kIGJvdW5kZWQgYXQgIiArIGkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpdGVyID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvKiA8VGhyZWUoTmQpPjxUd28oTmQpPjxMb3cgRG91YmxlIFByaW1lIFF1b3RhdGlvbiBNYXJrKFBlKT48T25lKE5kKT4KKyAgICAgICAgICAgICAgICAgKiBcdTMwMWYgaGFzIGNoYW5nZWQgaXRzIGNhdGVnb3J5IGZyb20gUHMgdG8gUGUgc2luY2UgVW5pY29kZSAyLjEuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaXRlci5zZXRUZXh0KCIzMlx1MzAxZjEiKTsKKyAgICAgICAgICAgICAgICBpID0gaXRlci5maXJzdCgpOworICAgICAgICAgICAgICAgIGkgPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAzKSB7ICAgCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJMaW5lIGJyZWFrIGZhaWx1cmU6IGZhaWxlZCB0byBza2lwIGJlZm9yZSBcXHUzMDFGKFBlKSBhdCAzIGFuZCBib3VuZGVkIGF0ICIgKyBpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLyogTW9uZ29saWFuIDxMZXR0ZXIgQShMbyk+PFRvZG8gU29mdCBIeXBoZW4oUGQpPjxMZXR0ZXIgRShMbyk+CisgICAgICAgICAgICAgICAgICogd2hpY2ggaGF2ZSBiZWVuIGFkZGVkIHNpbmNlIFVuaWNvZGUgMy4wLjAuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaXRlci5zZXRUZXh0KCJcdTE4MjBcdTE4MDZcdTE4MjEiKTsKKyAgICAgICAgICAgICAgICBpID0gaXRlci5maXJzdCgpOworICAgICAgICAgICAgICAgIGkgPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAyKSB7ICAgCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJNb25nb2xpYW4gbGluZSBicmVhayBmYWlsdXJlOiBmYWlsZWQgdG8gc2tpcCBwb3NpdGlvbiBiZWZvcmUgXFx1MTgwNihQZCkgYXQgMiBhbmQgYm91bmRlZCBhdCAiICsgaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIEtobWVyIDxaRVJPKE5kKT48Q3VycmVuY3kgU3ltYm9sKFNjKT48T05FKE5kKT4gd2hpY2ggaGF2ZQorICAgICAgICAgICAgICAgICAqIGJlZW4gYWRkZWQgc2luY2UgVW5pY29kZSAzLjAuMC4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIFJpY2hhcmQ6IGZhaWwgdG8gcGFzcywgcmVmZXIgdG8gIzM1NTAKKyAgICAgICAgICAgICAgICAgaXRlci5zZXRUZXh0KCJcdTE3RTBcdTE3REJcdTE3RTEiKTsKKyAgICAgICAgICAgICAgICAgaSA9IGl0ZXIuZmlyc3QoKTsKKyAgICAgICAgICAgICAgICAgaSA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgICBpZiAoaSAhPSAxKSB7ICAgCisgICAgICAgICAgICAgICAgIGVycmxuKCJLaG1lciBsaW5lIGJyZWFrIGZhaWx1cmU6IGZhaWxlZCB0byBzdG9wIGJlZm9yZSBcXHUxN0RCKFNjKSBhdCAxIGFuZCBib3VuZGVkIGF0ICIgKyBpKTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBpID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgIGlmIChpICE9IDMpIHsgICAKKyAgICAgICAgICAgICAgICAgZXJybG4oIktobWVyIGxpbmUgYnJlYWsgZmFpbHVyZTogZmFpbGVkIHRvIHNraXAgcG9zaXRpb24gYWZ0ZXIgXFx1MTdEQihTYykgYXQgMyBhbmQgYm91bmRlZCBhdCAiICsgaSk7CisgICAgICAgICAgICAgICAgIH0qLworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIE9naGFtIDxMZXR0ZXIgVVIoTG8pPjxTcGFjZSBNYXJrKFpzKT48TGV0dGVyIE9SKExvKT4gd2hpY2ggaGF2ZQorICAgICAgICAgICAgICAgICAqIGJlZW4gYWRkZWQgc2luY2UgVW5pY29kZSAzLjAuMC4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpdGVyLnNldFRleHQoIlx1MTY5Mlx1MTY4MFx1MTY5NiIpOworICAgICAgICAgICAgICAgIGkgPSBpdGVyLmZpcnN0KCk7CisgICAgICAgICAgICAgICAgaSA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChpICE9IDIpIHsgICAKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIk9naGFtIGxpbmUgYnJlYWsgZmFpbHVyZTogZmFpbGVkIHRvIHNraXAgcG9zdGlvbiBiZWZvcmUgXFx1MTY4MChacykgYXQgMiBhbmQgYm91bmRlZCBhdCAiICsgaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIENvbmZpcm0gY2hhbmdlcyBpbiBCcmVha0l0ZXJhdG9yUnVsZXNfdGguamF2YSBoYXZlIGJlZW4gcmVmbGVjdGVkLgorICAgICAgICAgICAgICAgIGl0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZShuZXcgTG9jYWxlKCJ0aCIsICIiKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLyogVGhhaSA8U2V2ZW4oTmQpPgorICAgICAgICAgICAgICAgICAqICAgICAgPExlZnQgRG91YmxlIFF1b3RhdGlvbiBNYXJrKFBpKT4KKyAgICAgICAgICAgICAgICAgKiAgICAgIDxGaXZlKE5kKT4KKyAgICAgICAgICAgICAgICAgKiAgICAgIDxSaWdodCBEb3VibGUgUXVvdGF0aW9uIE1hcmsoUGYpPgorICAgICAgICAgICAgICAgICAqICAgICAgPFRocmVlKE5kKT4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpdGVyLnNldFRleHQoIlx1MEU1N1x1MjAxQ1x1MEU1NVx1MjAxRFx1MEU1MyIpOworICAgICAgICAgICAgICAgIGkgPSBpdGVyLmZpcnN0KCk7CisgICAgICAgICAgICAgICAgaSA9IGl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChpICE9IDEpIHsgICAKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRoYWkgbGluZSBicmVhayBmYWlsdXJlOiBmYWlsZWQgdG8gc3RvcCBiZWZvcmUgXFx1MjAxQyhQaSkgYXQgMSBhbmQgYm91bmRlZCBhdCAiICsgaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGkgPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSA0KSB7ICAgCisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJUaGFpIGxpbmUgYnJlYWsgZmFpbHVyZTogZmFpbGVkIHRvIHN0b3AgYWZ0ZXIgXFx1MjAxRChQZikgYXQgNCBhbmQgYm91bmRlZCBhdCAiICsgaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk5ldyBCcmVhayBJdGVyYXRvciwgc2tpcHBpbmcgb2xkIHRlc3QiKTsKKyAgICAgICAgICAgIH0gICAKKyAgICAgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBidWcgNDA2ODEzNworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RFbmRCZWhhdmlvcigpCisgICAgeworICAgICAgICBTdHJpbmcgdGVzdFN0cmluZyA9ICJib28uIjsKKyAgICAgICAgQnJlYWtJdGVyYXRvciB3YiA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgIHdiLnNldFRleHQodGVzdFN0cmluZyk7CisKKyAgICAgICAgaWYgKHdiLmZpcnN0KCkgIT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGJyZWFrIGF0IGJlZ2lubmluZyBvZiBzdHJpbmcuIik7CisgICAgICAgIGlmICh3Yi5uZXh0KCkgIT0gMykKKyAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGJyZWFrIGJlZm9yZSBwZXJpb2QgaW4gXCJib28uXCIiKTsKKyAgICAgICAgaWYgKHdiLmN1cnJlbnQoKSAhPSA0ICYmIHdiLm5leHQoKSAhPSA0KQorICAgICAgICAgICAgZXJybG4oIkRpZG4ndCBnZXQgYnJlYWsgYXQgZW5kIG9mIHN0cmluZy4iKTsKKyAgICB9CisKKyAgICAvLyBUaGUgRm9sbG93aW5nIHR3byB0ZXN0cyBhcmUgcG9ydGVkIGZyb20gSUNVNEMgMS44LjEgW1JpY2hhcmQvR0NMXQorICAgIC8qKgorICAgICAqIFBvcnQgRnJvbTogICBJQ1U0QyB2MS44LjEgOiB0ZXh0Ym91bmRzIDogSW50bFRlc3RUZXh0Qm91bmRhcnkKKyAgICAgKiBTb3VyY2UgRmlsZTogJElDVTRDUm9vdC9zb3VyY2UvdGVzdC9pbnRsdGVzdC9pdHR4dGJkLmNwcAorICAgICAqKi8KKyAgICAvKioKKyAgICAgKiB0ZXN0IG1ldGhvZHMgcHJlY2VkaW5nLCBmb2xsb3dpbmcgYW5kIGlzQm91bmRhcnkKKyAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdFByZWNlZGluZygpIHsKKyAgICAgICAgU3RyaW5nIHdvcmRzMyA9ICJhYWEgYmJiIGNjYyI7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgZSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBlLnNldFRleHQoIHdvcmRzMyApOworICAgICAgICBlLmZpcnN0KCk7CisgICAgICAgIGludCBwMSA9IGUubmV4dCgpOworICAgICAgICBpbnQgcDIgPSBlLm5leHQoKTsKKyAgICAgICAgaW50IHAzID0gZS5uZXh0KCk7CisgICAgICAgIGludCBwNCA9IGUubmV4dCgpOworCisgICAgICAgIGludCBmID0gZS5mb2xsb3dpbmcocDIrMSk7CisgICAgICAgIGludCBwID0gZS5wcmVjZWRpbmcocDIrMSk7CisgICAgICAgIGlmIChmIT1wMykKKyAgICAgICAgICAgIGVycmxuKCJJbnRsVGVzdFRleHRCb3VuZGFyeTo6VGVzdFByZWNlZGluZzogZiE9cDMiKTsKKyAgICAgICAgaWYgKHAhPXAyKQorICAgICAgICAgICAgZXJybG4oIkludGxUZXN0VGV4dEJvdW5kYXJ5OjpUZXN0UHJlY2VkaW5nOiBwIT1wMiIpOworCisgICAgICAgIGlmIChwMSsxIT1wMikKKyAgICAgICAgICAgIGVycmxuKCJJbnRsVGVzdFRleHRCb3VuZGFyeTo6VGVzdFByZWNlZGluZzogcDErMSE9cDIiKTsKKworICAgICAgICBpZiAocDMrMSE9cDQpCisgICAgICAgICAgICBlcnJsbigiSW50bFRlc3RUZXh0Qm91bmRhcnk6OlRlc3RQcmVjZWRpbmc6IHAzKzEhPXA0Iik7CisKKyAgICAgICAgaWYgKCFlLmlzQm91bmRhcnkocDIpIHx8IGUuaXNCb3VuZGFyeShwMisxKSB8fCAhZS5pc0JvdW5kYXJ5KHAzKSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkludGxUZXN0VGV4dEJvdW5kYXJ5OjpUZXN0UHJlY2VkaW5nOiBpc0JvdW5kYXJ5IGVyciIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBUaGFpIHdvcmQgYnJlYWsgdXNpbmcgZ2VuZXJhbEl0ZXJhdG9yVGVzdCgpCisgICAgICoqLworICAgIHB1YmxpYyB2b2lkIFRlc3RUaGFpV29yZEJyZWFrKCkgeworICAgICAgICBWZWN0b3IgdGhhaVdvcmRTZWxlY3Rpb24gPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gQHN1d2l0IC0tIFRoYWkgc2FtcGxlIGRhdGEgZnJvbSBHVlQgR3VpZGVsaW5lCisgICAgICAgIC8vIHN0YXJ0CisgICAgICAgIHRoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEUyQlx1MEUxOVx1MEUzNlx1MEU0OFx1MEUwNyIpOyAvLzUKKyAgICAgICAgdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTA0XHUwRTMzIik7IC8vNworICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFNDRcdTBFMTdcdTBFMjIiKTsgLy8xMAorICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFMkFcdTBFMzJcdTBFMjFcdTBFMzJcdTBFMjNcdTBFMTYiKTsgLy8xNgorICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFMUJcdTBFMjNcdTBFMzBcdTBFMDFcdTBFMkRcdTBFMUEiKTsgLy8yMgorICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFMTRcdTBFNDlcdTBFMjdcdTBFMjIiKTsgIC8vMjYKKyAgICAgICAgdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwZTJiXHUwZTI1XHUwZTMyXHUwZTIyIik7ICAvLzMwCisgICAgICAgIHRoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MGUxZVx1MGUyMlx1MGUzMlx1MGUwN1x1MGUwNFx1MGU0YyIpOyAgLy8zNgorCisgICAgICAgIC8vIEBzdXdpdCAtIGVuZCBvZiBjaGFuZ2VzCisKKyAgICAgICAgLyogIHJlbW92ZSB0aGUgb2xkIGRhdGEgc2FtcGxlIGJlY2F1c2UgVGhhaSB0cmFuc2xhdGlvbiBvZiB0aGUgV2l6YXJkIG9mIE96IGlzIG5vdCBnb29kIHRlc3RjYXNlIGZvciB3b3JkYnJlYWsgQVBJLgorICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFMUFcdTBFMTciKTsgLy8yCisgICAgICAgIHRoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEUxN1x1MEUzNVx1MEU0OCIpOyAvLzUKKyAgICAgICAgdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTUxIik7IC8vNgorICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFMUVcdTBFMzJcdTBFMjJcdTBFMzgiKTsgLy8xMAorICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFNDRcdTBFMEJcdTBFNDJcdTBFMDRcdTBFMjVcdTBFMTkiKTsgLy8xNgorICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcclxuIik7IC8vMTgKKworICAgICAgICAvLyBUaGlzIGlzIHRoZSBjb3JyZWN0IHJlc3VsdAorICAgICAgICAvL3RoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoKCJcdTBFNDJcdTBFMTRcdTBFNDJcdTBFMjNcdTBFMThcdTBFMzUiKSk7IC8vMjQKKyAgICAgICAgLy90aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCgiXHUwRTJEXHUwRTMyXHUwRTI4XHUwRTMxXHUwRTIyIikpOyAvLzI5CisKKyAgICAgICAgLy8gYW5kIHRoaXMgaXMgd2hhdCB0aGUgZGljdGlvbmFyeSBkb2VzLi4uCisgICAgICAgIHRoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEU0Mlx1MEUxNCIpOyAvLyAyMAorICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFNDJcdTBFMjNcdTBFMThcdTBFMzVcdTBFMkRcdTBFMzJcdTBFMjhcdTBFMzFcdTBFMjIiKTsgLy8yOQorCisgICAgICAgIHRoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEUyRFx1MEUyMlx1MEUzOVx1MEU0OCIpOyAvLzMzCisKKyAgICAgICAgLy8gVGhpcyBpcyB0aGUgY29ycmVjdCByZXN1bHQKKyAgICAgICAgLy90aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFMTdcdTBFNDhcdTBFMzJcdTBFMjEiKTsgLy8zNworICAgICAgICAvL3RoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEUwMVx1MEUyNVx1MEUzMlx1MEUwNyIpOyAvLzQxCisKKyAgICAgICAgLy8gYW5kIHRoaXMgaXMgd2hhdCB0aGUgZGljdGlvbmFyeSBkb2VzCisgICAgICAgIHRoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEUxN1x1MEU0OFx1MEUzMlx1MEUyMVx1MEUwMVx1MEUyNVx1MEUzMlx1MEUwNyIpOyAvLzQxCisKKyAgICAgICAgdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTE3XHUwRTM4XHUwRTQ4XHUwRTA3Iik7IC8vNDUKKyAgICAgICAgdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTQzXHUwRTJCXHUwRTBEXHUwRTQ4Iik7IC8vNDkKKyAgICAgICAgdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTQzXHUwRTE5Iik7IC8vNTEKKworICAgICAgICAvLyBUaGlzIGlzIHRoZSBjb3JyZWN0IHJlc3VsdAorICAgICAgICAvL3RoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEU0MVx1MEUwNFx1MEUxOVx1MEUwQlx1MEUzMVx1MEUyQSIpOyAvLzU3CisgICAgICAgIC8vdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTAxXHUwRTMxXHUwRTFBIik7IC8vNjAKKworICAgICAgICAvLyBhbmQgdGhpcyBpcyB3aGF0IHRoZSBkaWN0aW9uYXJ5IGRvZXMKKyAgICAgICAgdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTQxXHUwRTA0XHUwRTE5Iik7IC8vIDU0CisgICAgICAgIHRoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEUwQlx1MEUzMVx1MEUyQVx1MEUwMVx1MEUzMVx1MEUxQSIpOyAvLzYwCisKKyAgICAgICAgdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTI1XHUwRTM4XHUwRTA3Iik7IC8vNjMKKworICAgICAgICAvLyBUaGlzIGlzIHRoZSBjb3JyZWN0IHJlc3VsdAorICAgICAgICAvL3RoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEU0MFx1MEUyRVx1MEUxOVx1MEUyM1x1MEUzNSIpOyAvLzY4CisgICAgICAgIC8vdGhhaVdvcmRTZWxlY3Rpb24uYWRkRWxlbWVudCgiXHUwRTBBXHUwRTMyXHUwRTI3Iik7IC8vNzEKKyAgICAgICAgLy90aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFNDRcdTBFMjNcdTBFNDgiKTsgLy83NAorICAgICAgICAvL3RoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEU0MVx1MEUyNVx1MEUzMCIpOyAvLzc3CisKKyAgICAgICAgLy8gYW5kIHRoaXMgaXMgd2hhdCB0aGUgZGljdGlvbmFyeSBkb2VzCisgICAgICAgIHRoYWlXb3JkU2VsZWN0aW9uLmFkZEVsZW1lbnQoIlx1MEU0MFx1MEUyRSIpOyAvLyA2NQorICAgICAgICB0aGFpV29yZFNlbGVjdGlvbi5hZGRFbGVtZW50KCJcdTBFMTlcdTBFMjNcdTBFMzVcdTBFMEFcdTBFMzJcdTBFMjdcdTBFNDRcdTBFMjNcdTBFNDhcdTBFNDFcdTBFMjVcdTBFMzAiKTsgLy83NworICAgICAgICAqLworICAgICAgICAKKyAgICAgICAgQnJlYWtJdGVyYXRvciBlID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UobmV3IExvY2FsZSgidGgiLCIiLCIiKSk7CisKKyAgICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChlLCB0aGFpV29yZFNlbGVjdGlvbik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEJ1ZyA0NDUwODA0CisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExpbmVCcmVha0NvbnRyYWN0aW9ucygpIHsKKyAgICAgICAgVmVjdG9yIGV4cGVjdGVkID0gbmV3IFZlY3RvcigpOworICAgICAgICBleHBlY3RlZC5hZGQoIlRoZXNlICIpOworICAgICAgICBleHBlY3RlZC5hZGQoImFyZSAiKTsKKyAgICAgICAgZXhwZWN0ZWQuYWRkKCInZm9vYmxlcycuICIpOworICAgICAgICBleHBlY3RlZC5hZGQoIkRvbid0ICIpOworICAgICAgICBleHBlY3RlZC5hZGQoInlvdSAiKTsKKyAgICAgICAgZXhwZWN0ZWQuYWRkKCJsaWtlICIpOworICAgICAgICBleHBlY3RlZC5hZGQoInRoZW0/Iik7CisgICAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUJyZWFrLCBleHBlY3RlZCk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJQVBJVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSUFQSVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40OWM1NDFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSUFQSVRlc3QuamF2YQpAQCAtMCwwICsxLDQ1MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqIAorICogUG9ydCBGcm9tOiAgIElDVTRDIHYxLjguMSA6IHJiYmkgOiBSQkJJQVBJVGVzdAorICogU291cmNlIEZpbGU6ICRJQ1U0Q1Jvb3Qvc291cmNlL3Rlc3QvaW50bHRlc3QvcmJiaWFwdHMuY3BwCisgKiovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QucmJiaTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKgorICogQVBJIFRlc3QgdGhlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgY2xhc3MKKyAqLworcHVibGljIGNsYXNzIFJCQklBUElUZXN0IGV4dGVuZHMgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgUkJCSUFQSVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RzIGNsb25lKCkgYW5kIGVxdWFscygpIG1ldGhvZHMgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAgICAgICAgIAorICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2xvbmVFcXVhbHMoKSB7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpZXF1YWwgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsgCisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkzID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMiA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuZ2V0RGVmYXVsdCgpKTsgCisKKyAgICAgICAgU3RyaW5nIHRlc3RTdHJpbmcgPSAiVGVzdGluZyB3b3JkIGJyZWFrIGl0ZXJhdG9ycydzIGNsb25lKCkgYW5kIGVxdWFscygpIjsKKyAgICAgICAgYmkxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIGJpMi5zZXRUZXh0KHRlc3RTdHJpbmcpOworICAgICAgICBiaWVxdWFsLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIAorICAgICAgICBiaTMuc2V0VGV4dCgiaGVsbG8iKTsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgZXF1YWxzKCkiKTsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgPT0gYW5kICE9Iik7CisgICAgICAgIGlmICghYmkxLmVxdWFscyhiaWVxdWFsKSB8fCBiaTEuZXF1YWxzKGJpMikgfHwgYmkxLmVxdWFscyhiaTMpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOjEgUkJCSSdzID09IGFuZCAhLSBvcGVyYXRvciBmYWlsZWQuIik7CisgICAgICAgIGlmIChiaTIuZXF1YWxzKGJpZXF1YWwpIHx8IGJpMi5lcXVhbHMoYmkxKSB8fCBiaWVxdWFsLmVxdWFscyhiaTMpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOjIgUkJCSSdzID09IGFuZCAhPSBvcGVyYXRvciAgZmFpbGVkLiIpOworICAgICAgICBsb2dsbigiVGVzdGluZyBjbG9uZSgpIik7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkxY2xvbmUgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgYmkxLmNsb25lKCk7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkyY2xvbmUgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgYmkyLmNsb25lKCk7CisgICAgICAgIGlmICghYmkxY2xvbmUuZXF1YWxzKGJpMSkKKyAgICAgICAgICAgIHx8ICFiaTFjbG9uZS5lcXVhbHMoYmllcXVhbCkKKyAgICAgICAgICAgIHx8IGJpMWNsb25lLmVxdWFscyhiaTMpCisgICAgICAgICAgICB8fCBiaTFjbG9uZS5lcXVhbHMoYmkyKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjoxIFJCQkkncyBjbG9uZSgpIG1ldGhvZCBmYWlsZWQiKTsKKworICAgICAgICBpZiAoYmkyY2xvbmUuZXF1YWxzKGJpMSkKKyAgICAgICAgICAgIHx8IGJpMmNsb25lLmVxdWFscyhiaWVxdWFsKQorICAgICAgICAgICAgfHwgYmkyY2xvbmUuZXF1YWxzKGJpMykKKyAgICAgICAgICAgIHx8ICFiaTJjbG9uZS5lcXVhbHMoYmkyKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjoyIFJCQkkncyBjbG9uZSgpIG1ldGhvZCBmYWlsZWQiKTsKKworICAgICAgICBpZiAoIWJpMS5nZXRUZXh0KCkuZXF1YWxzKGJpMWNsb25lLmdldFRleHQoKSkKKyAgICAgICAgICAgIHx8ICFiaTJjbG9uZS5nZXRUZXh0KCkuZXF1YWxzKGJpMi5nZXRUZXh0KCkpCisgICAgICAgICAgICB8fCBiaTJjbG9uZS5lcXVhbHMoYmkxY2xvbmUpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBSQkJJJ3MgY2xvbmUoKSBtZXRob2QgZmFpbGVkIik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3RzIHRvU3RyaW5nKCkgbWV0aG9kIG9mIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdFRvU3RyaW5nKCkgeworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTIgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHRvU3RyaW5nKCkiKTsKKyAgICAgICAgYmkxLnNldFRleHQoIkhlbGxvIHRoZXJlIik7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkzID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIGJpMS5jbG9uZSgpOworICAgICAgICBTdHJpbmcgdGVtcCA9IGJpMS50b1N0cmluZygpOworICAgICAgICBTdHJpbmcgdGVtcDIgPSBiaTIudG9TdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIHRlbXAzID0gYmkzLnRvU3RyaW5nKCk7CisgICAgICAgIGlmICh0ZW1wMi5lcXVhbHModGVtcDMpIHx8IHRlbXAuZXF1YWxzKHRlbXAyKSB8fCAhdGVtcC5lcXVhbHModGVtcDMpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBlcnJvciBpbiB0b1N0cmluZygpIG1ldGhvZCIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0cyB0aGUgbWV0aG9kIGhhc2hDb2RlKCkgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFzaENvZGUoKSB7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgYmkxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpMyA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTIgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGhhc2hDb2RlKCkiKTsKKyAgICAgICAgYmkxLnNldFRleHQoIkhhc2ggY29kZSIpOworICAgICAgICBiaTIuc2V0VGV4dCgiSGFzaCBjb2RlIik7CisgICAgICAgIGJpMy5zZXRUZXh0KCJIYXNoIGNvZGUiKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTFjbG9uZSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBiaTEuY2xvbmUoKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBiaTJjbG9uZSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBiaTIuY2xvbmUoKTsKKyAgICAgICAgaWYgKGJpMS5oYXNoQ29kZSgpICE9IGJpMWNsb25lLmhhc2hDb2RlKCkKKyAgICAgICAgICAgIHx8IGJpMS5oYXNoQ29kZSgpICE9IGJpMy5oYXNoQ29kZSgpCisgICAgICAgICAgICB8fCBiaTFjbG9uZS5oYXNoQ29kZSgpICE9IGJpMy5oYXNoQ29kZSgpCisgICAgICAgICAgICB8fCBiaTIuaGFzaENvZGUoKSAhPSBiaTJjbG9uZS5oYXNoQ29kZSgpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBpZGVudGljYWwgb2JqZWN0cyBoYXZlIGRpZmZlcmVudCBoYXNoY29kZXMiKTsKKyAgICAgICAgCisgICAgICAgIGlmIChiaTEuaGFzaENvZGUoKSA9PSBiaTIuaGFzaENvZGUoKQorICAgICAgICAgICAgfHwgYmkyLmhhc2hDb2RlKCkgPT0gYmkzLmhhc2hDb2RlKCkKKyAgICAgICAgICAgIHx8IGJpMWNsb25lLmhhc2hDb2RlKCkgPT0gYmkyY2xvbmUuaGFzaENvZGUoKQorICAgICAgICAgICAgfHwgYmkxY2xvbmUuaGFzaENvZGUoKSA9PSBiaTIuaGFzaENvZGUoKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZGlmZmVyZW50IG9iamVjdHMgaGF2ZSBzYW1lIGhhc2hjb2RlcyIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgICogVGVzdHMgdGhlIG1ldGhvZHMgZ2V0VGV4dCgpIGFuZCBzZXRUZXh0KCkgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdEdldFNldFRleHQoKSB7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGdldFRleHQgc2V0VGV4dCAiKTsKKyAgICAgICAgU3RyaW5nIHN0cjEgPSAiZmlyc3Qgc3RyaW5nLiI7CisgICAgICAgIFN0cmluZyBzdHIyID0gIlNlY29uZCBzdHJpbmcuIjsKKyAgICAgICAgLy9SdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGNoYXJJdGVyMSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3b3JkSXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0MSA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihzdHIxKTsKKyAgICAgICAgLy9DaGFyYWN0ZXJJdGVyYXRvciB0ZXh0MUNsb25lID0gKENoYXJhY3Rlckl0ZXJhdG9yKSB0ZXh0MS5jbG9uZSgpOworICAgICAgICAvL0NoYXJhY3Rlckl0ZXJhdG9yIHRleHQyID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHN0cjIpOworICAgICAgICB3b3JkSXRlcjEuc2V0VGV4dChzdHIxKTsKKyAgICAgICAgaWYgKCF3b3JkSXRlcjEuZ2V0VGV4dCgpLmVxdWFscyh0ZXh0MSkpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6MSBlcnJvciBpbiBzZXRUZXh0IG9yIGdldFRleHQgIik7CisgICAgICAgIGlmICh3b3JkSXRlcjEuY3VycmVudCgpICE9IDApCisgICAgICAgICAgICBlcnJsbigiRVJST1I6MSBzZXRUZXh0IGRpZCBub3Qgc2V0IHRoZSBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgaXQgaXMiCisgICAgICAgICAgICAgICAgICAgKyB3b3JkSXRlcjEuY3VycmVudCgpICsgIlxuIik7IAorICAgICAgICB3b3JkSXRlcjEubmV4dCgyKTsKKyAgICAgICAgd29yZEl0ZXIxLnNldFRleHQoc3RyMik7CisgICAgICAgIGlmICh3b3JkSXRlcjEuY3VycmVudCgpICE9IDApCisgICAgICAgICAgICBlcnJsbigiRVJST1I6MiBzZXRUZXh0IGRpZCBub3QgcmVzZXQgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCBpdCBpcyIKKyAgICAgICAgICAgICAgICAgICAgKyB3b3JkSXRlcjEuY3VycmVudCgpICsgIlxuIik7IAorICAgICAgICAvL0lDVTRKIGhhcyByZW1vdmUgdGhlIG1ldGhvZCBhZG9wdFRleHQKKyAgICAgICAgLyoKKyAgICAgICAgY2hhckl0ZXIxLmFkb3B0VGV4dCh0ZXh0MUNsb25lKTsKKyAgICAgICAgaWYgKHdvcmRJdGVyMS5nZXRUZXh0KCkgPT0gY2hhckl0ZXIxLmdldFRleHQoKQorICAgICAgICAgICAgfHwgd29yZEl0ZXIxLmdldFRleHQoKSAhPSB0ZXh0MgorICAgICAgICAgICAgfHwgY2hhckl0ZXIxLmdldFRleHQoKSAhPSB0ZXh0MSkKKyAgICAgICAgICAgIGVycmxuKChVbmljb2RlU3RyaW5nKSAiRVJST1I6MiBlcnJvciBpcyBnZXRUZXh0IG9yIHNldFRleHQoKSIpOworICAgICAgICAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYiA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSB3b3JkSXRlcjEuY2xvbmUoKTsKKyAgICAgICAgcmIuYWRvcHRUZXh0KHRleHQxKTsKKyAgICAgICAgaWYgKHJiLmdldFRleHQoKSAhPSB0ZXh0MSkKKyAgICAgICAgICAgIGVycmxuKChVbmljb2RlU3RyaW5nKSAiRVJST1I6MSBlcnJvciBpbiBhZG9wdFRleHQgIik7CisgICAgICAgIHJiLmFkb3B0VGV4dCh0ZXh0Mik7CisgICAgICAgIGlmIChyYi5nZXRUZXh0KCkgIT0gdGV4dDIpCisgICAgICAgICAgICBlcnJsbigoVW5pY29kZVN0cmluZykgIkVSUk9SOjIgZXJyb3IgaW4gYWRvcHRUZXh0ICIpOworICAgICAgICAqLworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgICogVGVzdGluZyB0aGUgbWV0aG9kcyBmaXJzdCgpLCBuZXh0KCksIG5leHQoaW50KSBhbmQgZm9sbG93aW5nKCkgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAgKiovCisgICAgcHVibGljIHZvaWQgVGVzdEZpcnN0TmV4dEZvbGxvd2luZygpIHsKKyAgICAgICAgaW50IHAsIHE7CisgICAgICAgIFN0cmluZyB0ZXN0U3RyaW5nID0gIlRoaXMgaXMgYSB3b3JkIGJyZWFrLiBJc24ndCBpdD8gMi4yNSI7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGZpcnN0KCkgYW5kIG5leHQoKSwgZm9sbG93aW5nKCkgd2l0aCBjdXN0b20gcnVsZXMiKTsKKyAgICAgICAgbG9nbG4oInRlc3Rpbmcgd29yZCBpdGVyYXRvciAtIHN0cmluZyA6LSBcIiIgKyB0ZXN0U3RyaW5nICsgIlwiXG4iKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3b3JkSXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHdvcmRJdGVyMS5zZXRUZXh0KHRlc3RTdHJpbmcpOworICAgICAgICBwID0gd29yZEl0ZXIxLmZpcnN0KCk7CisgICAgICAgIGlmIChwICE9IDApCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZpcnN0KCkgcmV0dXJuZWQiICsgcCArICJpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5uZXh0KDkpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMjAsICJUaGlzIGlzIGEgd29yZCBicmVhayIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5uZXh0KCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAyMSwgIi4iKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSB3b3JkSXRlcjEubmV4dCgzKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDI4LCAiIElzbid0ICIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5uZXh0KDIpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMzEsICJpdD8iKTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5mb2xsb3dpbmcoMik7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyLCBxLCA0LCAiaXMiKTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5mb2xsb3dpbmcoMjIpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMjIsIHEsIDI3LCAiSXNuJ3QiKTsKKyAgICAgICAgd29yZEl0ZXIxLmxhc3QoKTsKKyAgICAgICAgcCA9IHdvcmRJdGVyMS5uZXh0KCk7CisgICAgICAgIHEgPSB3b3JkSXRlcjEuZm9sbG93aW5nKHdvcmRJdGVyMS5sYXN0KCkpOworICAgICAgICBpZiAocCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUgfHwgcSAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IG5leHQoKS9mb2xsb3dpbmcoKSBhdCBsYXN0IHBvc2l0aW9uIHJldHVybmVkICMiCisgICAgICAgICAgICAgICAgICAgICsgcCArICIgYW5kICIgKyBxICsgIiBpbnN0ZWFkIG9mIiArIHRlc3RTdHJpbmcubGVuZ3RoKCkgKyAiXG4iKTsgCisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgY2hhckl0ZXIxID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICB0ZXN0U3RyaW5nID0gIldyaXRlIGhpbmRpIGhlcmUuIFx1MDkyZFx1MDkzZVx1MDkzMFx1MDMwMSBcdTA5MzhcdTA5NDFcdTA5MDJcdTA5MjZcdTA5MzAgXHUwOTM5XHUwOTRjXHUwOTY0IjsgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIGNoYXIgaXRlciAtIHN0cmluZzotIFwiIiArIHRlc3RTdHJpbmcgKyAiXCIiKTsKKyAgICAgICAgY2hhckl0ZXIxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIHAgPSBjaGFySXRlcjEuZmlyc3QoKTsKKyAgICAgICAgaWYgKHAgIT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZmlyc3QoKSByZXR1cm5lZCIgKyBwICsgImluc3RlYWQgb2YgMCIpOworICAgICAgICBxID0gY2hhckl0ZXIxLm5leHQoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDEsICJXIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gY2hhckl0ZXIxLm5leHQoNCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCA1LCAicml0ZSIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5uZXh0KDEyKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDE3LCAiIGhpbmRpIGhlcmUuIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gY2hhckl0ZXIxLm5leHQoLTYpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMTEsICIgaGVyZS4iKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBjaGFySXRlcjEubmV4dCg2KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDE3LCAiIGhlcmUuIik7CisgICAgICAgIC8vIGhpbmRpIHN0YXJ0cyBoZXJlCisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gY2hhckl0ZXIxLm5leHQoNCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAyMiwgIiBcdTA5MmRcdTA5M2VcdTA5MzBcdTAzMDEiKTsgICAvLyBOb25zZW5zZSwgYnV0IGNvbXBhdGlibGUgYmV0d2VlbiBvbGQgYW5kIG5ldyBydWxlcy4KKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBjaGFySXRlcjEubmV4dCgyKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDI2LCAiIFx1MDkzOFx1MDk0MVx1MDkwMiIpOworCisgICAgICAgIHEgPSBjaGFySXRlcjEuZm9sbG93aW5nKDI0KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDI0LCBxLCAyNiwgIlx1MDk0MVx1MDkwMiIpOworICAgICAgICBxID0gY2hhckl0ZXIxLmZvbGxvd2luZygyMCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyMCwgcSwgMjIsICJcdTA5MzBcdTAzMDEiKTsKKyAgICAgICAgcCA9IGNoYXJJdGVyMS5mb2xsb3dpbmcoY2hhckl0ZXIxLmxhc3QoKSk7CisgICAgICAgIHEgPSBjaGFySXRlcjEubmV4dChjaGFySXRlcjEubGFzdCgpKTsKKyAgICAgICAgaWYgKHAgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FIHx8IHEgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBmb2xsb3dpbmcoKS9uZXh0KCkgYXQgbGFzdCBwb3NpdGlvbiByZXR1cm5lZCAjIgorICAgICAgICAgICAgICAgICAgICArIHAgKyAiIGFuZCAiICsgcSArICIgaW5zdGVhZCBvZiIgKyB0ZXN0U3RyaW5nLmxlbmd0aCgpKTsgCisgICAgICAgIHRlc3RTdHJpbmcgPSAiSGVsbG8hIGhvdyBhcmUgeW91PyBJJ2FtIGZpbmUuIFRoYW5reW91LiBIb3cgYXJlIHlvdSBkb2luZz8gVGhpcyAgY29zdHMgJDIwLDAwLDAwMC4iOyAKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBzZW50SXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgbG9nbG4oInRlc3Rpbmcgc2VudGVuY2UgaXRlciAtIFN0cmluZzotIFwiIiArIHRlc3RTdHJpbmcgKyAiXCIiKTsKKyAgICAgICAgc2VudEl0ZXIxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIHAgPSBzZW50SXRlcjEuZmlyc3QoKTsKKyAgICAgICAgaWYgKHAgIT0gMCkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZmlyc3QoKSByZXR1cm5lZCIgKyBwICsgImluc3RlYWQgb2YgMCIpOworICAgICAgICBxID0gc2VudEl0ZXIxLm5leHQoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDcsICJIZWxsbyEgIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gc2VudEl0ZXIxLm5leHQoMik7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAzMSwgImhvdyBhcmUgeW91PyBJJ2FtIGZpbmUuICIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5uZXh0KC0yKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDcsICJob3cgYXJlIHlvdT8gSSdhbSBmaW5lLiAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBzZW50SXRlcjEubmV4dCg0KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDYwLCAiaG93IGFyZSB5b3U/IEknYW0gZmluZS4gVGhhbmt5b3UuIEhvdyBhcmUgeW91IGRvaW5nPyAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBzZW50SXRlcjEubmV4dCgpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgODMsICJUaGlzICBjb3N0cyAkMjAsMDAsMDAwLiIpOworICAgICAgICBxID0gc2VudEl0ZXIxLmZvbGxvd2luZygxKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDEsIHEsIDcsICJlbGxvISAiKTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5mb2xsb3dpbmcoMTApOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMTAsIHEsIDIwLCAiIGFyZSB5b3U/ICIpOworICAgICAgICBxID0gc2VudEl0ZXIxLmZvbGxvd2luZygyMCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyMCwgcSwgMzEsICJJJ2FtIGZpbmUuICIpOworICAgICAgICBwID0gc2VudEl0ZXIxLmZvbGxvd2luZyhzZW50SXRlcjEubGFzdCgpKTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5uZXh0KHNlbnRJdGVyMS5sYXN0KCkpOworICAgICAgICBpZiAocCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUgfHwgcSAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZvbGxvd2luZygpL25leHQoKSBhdCBsYXN0IHBvc2l0aW9uIHJldHVybmVkICMiCisgICAgICAgICAgICAgICAgICAgICsgcCArICIgYW5kICIgKyBxICsgIiBpbnN0ZWFkIG9mIiArIHRlc3RTdHJpbmcubGVuZ3RoKCkpOyAKKyAgICAgICAgdGVzdFN0cmluZyA9ICJIZWxsbyEgaG93XHJcbiAoYXJlKVxyIHlvdT8gSSdhbSBmaW5lLSBUaGFua3lvdS4gZm9vXHUwMGEwYmFyIEhvdywgYXJlLCB5b3U/IFRoaXMsIGNvc3RzICQyMCwwMCwwMDAuIjsgCisgICAgICAgIGxvZ2xuKCIoVW5pY29kZVN0cmluZyl0ZXN0aW5nIGxpbmUgaXRlciAtIFN0cmluZzotIFwiIiArIHRlc3RTdHJpbmcgKyAiXCIiKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBsaW5lSXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICBsaW5lSXRlcjEuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgcCA9IGxpbmVJdGVyMS5maXJzdCgpOworICAgICAgICBpZiAocCAhPSAwKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBmaXJzdCgpIHJldHVybmVkIiArIHAgKyAiaW5zdGVhZCBvZiAwIik7CisgICAgICAgIHEgPSBsaW5lSXRlcjEubmV4dCgpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgNywgIkhlbGxvISAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gbGluZUl0ZXIxLm5leHQoNCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAyMCwgImhvd1xyXG4gKGFyZSlcciAiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBsaW5lSXRlcjEubmV4dCgtNCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCA3LCAiaG93XHJcbiAoYXJlKVxyICIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5uZXh0KDYpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMzAsICJob3dcclxuIChhcmUpXHIgeW91PyBJJ2FtICIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5uZXh0KCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAzNiwgImZpbmUtICIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGxpbmVJdGVyMS5uZXh0KDIpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgNTQsICJUaGFua3lvdS4gZm9vXHUwMGEwYmFyICIpOworICAgICAgICBxID0gbGluZUl0ZXIxLmZvbGxvd2luZyg2MCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCA2MCwgcSwgNjQsICJyZSwgIik7CisgICAgICAgIHEgPSBsaW5lSXRlcjEuZm9sbG93aW5nKDEpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMSwgcSwgNywgImVsbG8hICIpOworICAgICAgICBxID0gbGluZUl0ZXIxLmZvbGxvd2luZygxMCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAxMCwgcSwgMTIsICJcclxuIik7CisgICAgICAgIHEgPSBsaW5lSXRlcjEuZm9sbG93aW5nKDIwKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDIwLCBxLCAyNSwgInlvdT8gIik7CisgICAgICAgIHAgPSBsaW5lSXRlcjEuZm9sbG93aW5nKGxpbmVJdGVyMS5sYXN0KCkpOworICAgICAgICBxID0gbGluZUl0ZXIxLm5leHQobGluZUl0ZXIxLmxhc3QoKSk7CisgICAgICAgIGlmIChwICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBxICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZm9sbG93aW5nKCkvbmV4dCgpIGF0IGxhc3QgcG9zaXRpb24gcmV0dXJuZWQgIyIKKyAgICAgICAgICAgICAgICAgICAgKyBwICsgIiBhbmQgIiArIHEgKyAiIGluc3RlYWQgb2YiICsgdGVzdFN0cmluZy5sZW5ndGgoKSk7IAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIHRoZSBtZXRob2RzIGxhc3R0KCksIHByZXZpb3VzKCksIGFuZCBwcmVjZWRpbmcoKSBvZiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICoqLworICAgIHB1YmxpYyB2b2lkIFRlc3RMYXN0UHJldmlvdXNQcmVjZWRpbmcoKSB7CisgICAgICAgIGludCBwLCBxOworICAgICAgICBTdHJpbmcgdGVzdFN0cmluZyA9ICJUaGlzIGlzIGEgd29yZCBicmVhay4gSXNuJ3QgaXQ/IDIuMjUgZG9sbGFycyI7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIGxhc3QoKSxwcmV2aW91cygpLCBwcmVjZWRpbmcoKSB3aXRoIGN1c3RvbSBydWxlcyIpOworICAgICAgICBsb2dsbigidGVzdGluZyB3b3JkIGl0ZXJhdGlvbiBmb3Igc3RyaW5nIFwiIiArIHRlc3RTdHJpbmcgKyAiXCIiKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3b3JkSXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7IAorICAgICAgICB3b3JkSXRlcjEuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgcCA9IHdvcmRJdGVyMS5sYXN0KCk7CisgICAgICAgIGlmIChwICE9IHRlc3RTdHJpbmcubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogZmlyc3QoKSByZXR1cm5lZCIgKyBwICsgImluc3RlYWQgb2YiICsgdGVzdFN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIH0KKyAgICAgICAgcSA9IHdvcmRJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMzcsICJkb2xsYXJzIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gd29yZEl0ZXIxLnByZXZpb3VzKCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAzNiwgIiAiKTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5wcmVjZWRpbmcoMjUpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMjUsIHEsIDIyLCAiSXNuIik7CisgICAgICAgIHAgPSBxOworICAgICAgICBxID0gd29yZEl0ZXIxLnByZXZpb3VzKCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAyMSwgIiAiKTsKKyAgICAgICAgcSA9IHdvcmRJdGVyMS5wcmVjZWRpbmcoMjApOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMjAsIHEsIDE1LCAiYnJlYWsiKTsKKyAgICAgICAgcCA9IHdvcmRJdGVyMS5wcmVjZWRpbmcod29yZEl0ZXIxLmZpcnN0KCkpOworICAgICAgICBpZiAocCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IHByZWNlZGluZygpICBhdCBzdGFydGluZyBwb3NpdGlvbiByZXR1cm5lZCAjIiArIHAgKyAiIGluc3RlYWQgb2YgMCIpOworICAgICAgICB0ZXN0U3RyaW5nID0gIldyaXRlIGhpbmRpIGhlcmUuIFx1MDkyZFx1MDkzZVx1MDkzMFx1MDkyNCBcdTA5MzhcdTA5NDFcdTA5MDJcdTA5MjZcdTA5MzAgXHUwOTM5XHUwMzAxXHUwOTY0IjsgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIGNoYXJhY3RlciBpdGVyYXRpb24gZm9yIHN0cmluZyBcIiAiICsgdGVzdFN0cmluZyArICJcIiBcbiIpOworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGNoYXJJdGVyMSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBjaGFySXRlcjEuc2V0VGV4dCh0ZXN0U3RyaW5nKTsKKyAgICAgICAgcCA9IGNoYXJJdGVyMS5sYXN0KCk7CisgICAgICAgIGlmIChwICE9IHRlc3RTdHJpbmcubGVuZ3RoKCkpCisgICAgICAgICAgICBlcnJsbigiRVJST1I6IGZpcnN0KCkgcmV0dXJuZWQiICsgcCArICJpbnN0ZWFkIG9mIiArIHRlc3RTdHJpbmcubGVuZ3RoKCkpOworICAgICAgICBxID0gY2hhckl0ZXIxLnByZXZpb3VzKCk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCBwLCBxLCAzMSwgIlx1MDk2NCIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgMjksICJcdTA5MzlcdTAzMDEiKTsKKyAgICAgICAgcSA9IGNoYXJJdGVyMS5wcmVjZWRpbmcoMjYpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgMjYsIHEsIDIzLCAiXHUwOTM4XHUwOTQxXHUwOTAyIik7CisgICAgICAgIHEgPSBjaGFySXRlcjEucHJlY2VkaW5nKDE2KTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDE2LCBxLCAxNSwgImUiKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBjaGFySXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDE0LCAiciIpOworICAgICAgICBjaGFySXRlcjEuZmlyc3QoKTsKKyAgICAgICAgcCA9IGNoYXJJdGVyMS5wcmV2aW91cygpOworICAgICAgICBxID0gY2hhckl0ZXIxLnByZWNlZGluZyhjaGFySXRlcjEuZmlyc3QoKSk7CisgICAgICAgIGlmIChwICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBxICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcHJldmlvdXMoKS9wcmVjZWRpbmcoKSBhdCBzdGFydGluZyBwb3NpdGlvbiByZXR1cm5lZCAjIgorICAgICAgICAgICAgICAgICAgICArIHAgKyAiIGFuZCAiICsgcSArICIgaW5zdGVhZCBvZiAwXG4iKTsgCisgICAgICAgIHRlc3RTdHJpbmcgPSAiSGVsbG8hIGhvdyBhcmUgeW91PyBJJ2FtIGZpbmUuIFRoYW5reW91LiBIb3cgYXJlIHlvdSBkb2luZz8gVGhpcyAgY29zdHMgJDIwLDAwLDAwMC4iOyAKKyAgICAgICAgbG9nbG4oInRlc3Rpbmcgc2VudGVuY2UgaXRlciAtIFN0cmluZzotIFwiIiArIHRlc3RTdHJpbmcgKyAiXCIiKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBzZW50SXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOyAKKyAgICAgICAgc2VudEl0ZXIxLnNldFRleHQodGVzdFN0cmluZyk7CisgICAgICAgIHAgPSBzZW50SXRlcjEubGFzdCgpOworICAgICAgICBpZiAocCAhPSB0ZXN0U3RyaW5nLmxlbmd0aCgpKQorICAgICAgICAgICAgZXJybG4oIkVSUk9SOiBsYXN0KCkgcmV0dXJuZWQiICsgcCArICJpbnN0ZWFkIG9mICIgKyB0ZXN0U3RyaW5nLmxlbmd0aCgpKTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgNjAsICJUaGlzICBjb3N0cyAkMjAsMDAsMDAwLiIpOworICAgICAgICBwID0gcTsKKyAgICAgICAgcSA9IHNlbnRJdGVyMS5wcmV2aW91cygpOworICAgICAgICBkb1Rlc3QodGVzdFN0cmluZywgcCwgcSwgNDEsICJIb3cgYXJlIHlvdSBkb2luZz8gIik7CisgICAgICAgIHEgPSBzZW50SXRlcjEucHJlY2VkaW5nKDQwKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDQwLCBxLCAzMSwgIlRoYW5reW91LiIpOworICAgICAgICBxID0gc2VudEl0ZXIxLnByZWNlZGluZygyNSk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyNSwgcSwgMjAsICJJJ2FtICIpOworICAgICAgICBzZW50SXRlcjEuZmlyc3QoKTsKKyAgICAgICAgcCA9IHNlbnRJdGVyMS5wcmV2aW91cygpOworICAgICAgICBxID0gc2VudEl0ZXIxLnByZWNlZGluZyhzZW50SXRlcjEuZmlyc3QoKSk7CisgICAgICAgIGlmIChwICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBxICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcHJldmlvdXMoKS9wcmVjZWRpbmcoKSBhdCBzdGFydGluZyBwb3NpdGlvbiByZXR1cm5lZCAjIgorICAgICAgICAgICAgICAgICAgICArIHAgKyAiIGFuZCAiICsgcSArICIgaW5zdGVhZCBvZiAwXG4iKTsgCisgICAgICAgIHRlc3RTdHJpbmcgPSAiSGVsbG8hIGhvdyBhcmUgeW91PyBJJ2FtIGZpbmUuIFRoYW5reW91LiBIb3cgYXJlIHlvdSBkb2luZz8gVGhpc1xuIGNvc3RzICQyMCwwMCwwMDAuIjsgCisgICAgICAgIGxvZ2xuKCJ0ZXN0aW5nIGxpbmUgaXRlciAtIFN0cmluZzotIFwiIiArIHRlc3RTdHJpbmcgKyAiXCIiKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBsaW5lSXRlcjEgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIGxpbmVJdGVyMS5zZXRUZXh0KHRlc3RTdHJpbmcpOworICAgICAgICBwID0gbGluZUl0ZXIxLmxhc3QoKTsKKyAgICAgICAgaWYgKHAgIT0gdGVzdFN0cmluZy5sZW5ndGgoKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogbGFzdCgpIHJldHVybmVkIiArIHAgKyAiaW5zdGVhZCBvZiAiICsgdGVzdFN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIHEgPSBsaW5lSXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDcyLCAiJDIwLDAwLDAwMC4iKTsKKyAgICAgICAgcCA9IHE7CisgICAgICAgIHEgPSBsaW5lSXRlcjEucHJldmlvdXMoKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIHAsIHEsIDY2LCAiY29zdHMgIik7CisgICAgICAgIHEgPSBsaW5lSXRlcjEucHJlY2VkaW5nKDQwKTsKKyAgICAgICAgZG9UZXN0KHRlc3RTdHJpbmcsIDQwLCBxLCAzMSwgIlRoYW5reW91LiIpOworICAgICAgICBxID0gbGluZUl0ZXIxLnByZWNlZGluZygyNSk7CisgICAgICAgIGRvVGVzdCh0ZXN0U3RyaW5nLCAyNSwgcSwgMjAsICJJJ2FtICIpOworICAgICAgICBsaW5lSXRlcjEuZmlyc3QoKTsKKyAgICAgICAgcCA9IGxpbmVJdGVyMS5wcmV2aW91cygpOworICAgICAgICBxID0gbGluZUl0ZXIxLnByZWNlZGluZyhzZW50SXRlcjEuZmlyc3QoKSk7CisgICAgICAgIGlmIChwICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBxICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjogcHJldmlvdXMoKS9wcmVjZWRpbmcoKSBhdCBzdGFydGluZyBwb3NpdGlvbiByZXR1cm5lZCAjIgorICAgICAgICAgICAgICAgICAgICArIHAgKyAiIGFuZCAiICsgcSArICIgaW5zdGVhZCBvZiAwXG4iKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdHMgdGhlIG1ldGhvZCBJc0JvdW5kYXJ5KCkgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAqKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SXNCb3VuZGFyeSgpIHsKKyAgICAgICAgU3RyaW5nIHRlc3RTdHJpbmcxID0gIldyaXRlIGhlcmUuIFx1MDkyZFx1MDMwMVx1MDkzMFx1MDkyNCBcdTA5MzhcdTA5NDFcdTA5MDJcdTA5MjZcdTA5MzAgYVx1MDMwMXUiOworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGNoYXJJdGVyMSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBjaGFySXRlcjEuc2V0VGV4dCh0ZXN0U3RyaW5nMSk7CisgICAgICAgIGludCBib3VuZHMxW10gPSB7MCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTQsIDE1LCAxNiwgMTcsIDIwLCAyMSwgMjIsIDIzLCAyNSwgMjZ9OworICAgICAgICBkb0JvdW5kYXJ5VGVzdChjaGFySXRlcjEsIHRlc3RTdHJpbmcxLCBib3VuZHMxKTsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3b3JkSXRlcjIgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcikgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHdvcmRJdGVyMi5zZXRUZXh0KHRlc3RTdHJpbmcxKTsKKyAgICAgICAgaW50IGJvdW5kczJbXSA9IHswLCA1LCA2LCAxMCwgMTEsIDEyLCAxNiwgMTcsIDIyLCAyMywgMjZ9OworICAgICAgICBkb0JvdW5kYXJ5VGVzdCh3b3JkSXRlcjIsIHRlc3RTdHJpbmcxLCBib3VuZHMyKTsKKyAgICB9CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvL0ludGVybmFsIHN1YnJvdXRpbmVzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKiBJbnRlcm5hbCBzdWJyb3V0aW5lIHVzZWQgYnkgVGVzdElzQm91bmRhcnkoKSAqLyAKKyAgICBwdWJsaWMgdm9pZCBkb0JvdW5kYXJ5VGVzdChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJpLCBTdHJpbmcgdGV4dCwgaW50W10gYm91bmRhcmllcykgeworICAgICAgICBsb2dsbigidGVzdElzQm91bmRhcnkoKToiKTsKKyAgICAgICAgaW50IHAgPSAwOworICAgICAgICBib29sZWFuIGlzQjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlzQiA9IGJpLmlzQm91bmRhcnkoaSk7CisgICAgICAgICAgICBsb2dsbigiYmkuaXNCb3VuZGFyeSgiICsgaSArICIpIC0+ICIgKyBpc0IpOworICAgICAgICAgICAgaWYgKGkgPT0gYm91bmRhcmllc1twXSkgeworICAgICAgICAgICAgICAgIGlmICghaXNCKQorICAgICAgICAgICAgICAgICAgICBlcnJsbigiV3JvbmcgcmVzdWx0IGZyb20gaXNCb3VuZGFyeSgpIGZvciAiICsgaSArICI6IGV4cGVjdGVkIHRydWUsIGdvdCBmYWxzZSIpOworICAgICAgICAgICAgICAgIHArKzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGlzQikKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIGlzQm91bmRhcnkoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCBmYWxzZSwgZ290IHRydWUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKkludGVybmFsIHN1YnJvdXRpbmUgdXNlZCBmb3IgY29tcGFyaXNpb24gb2YgZXhwZWN0ZWQgYW5kIGFjcXVpcmVkIHJlc3VsdHMgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1Rlc3QoU3RyaW5nIHRlc3RTdHJpbmcsIGludCBzdGFydCwgaW50IGdvdG9mZnNldCwgaW50IGV4cGVjdGVkT2Zmc2V0LCBTdHJpbmcgZXhwZWN0ZWRTdHJpbmcpIHsKKyAgICAgICAgU3RyaW5nIHNlbGVjdGVkOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSBleHBlY3RlZFN0cmluZzsKKyAgICAgICAgaWYgKGdvdG9mZnNldCAhPSBleHBlY3RlZE9mZnNldCkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjoqKioqcmV0dXJuZWQgIyIgKyBnb3RvZmZzZXQgKyAiIGluc3RlYWQgb2YgIyIgKyBleHBlY3RlZE9mZnNldCk7CisgICAgICAgIGlmIChzdGFydCA8PSBnb3RvZmZzZXQpIHsKKyAgICAgICAgICAgIHNlbGVjdGVkID0gdGVzdFN0cmluZy5zdWJzdHJpbmcoc3RhcnQsIGdvdG9mZnNldCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzZWxlY3RlZCA9IHRlc3RTdHJpbmcuc3Vic3RyaW5nKGdvdG9mZnNldCwgc3RhcnQpOworICAgICAgICB9CisgICAgICAgIGlmICghc2VsZWN0ZWQuZXF1YWxzKGV4cGVjdGVkKSkKKyAgICAgICAgICAgIGVycmxuKCJFUlJPUjoqKioqc2VsZWN0ZWQgXCIiICsgc2VsZWN0ZWQgKyAiXCIgaW5zdGVhZCBvZiBcIiIgKyBleHBlY3RlZCArICJcIiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2dsbigiKioqKnNlbGVjdGVkIFwiIiArIHNlbGVjdGVkICsgIlwiIik7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1JCQklUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIzYjNlNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJVGVzdC5qYXZhCkBAIC0wLDAgKzEsOTk3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpOworIAorLy9SZWdyZXNzaW9uIHRlc3Rpbmcgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgoraW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQ7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworcHVibGljIGNsYXNzIFJCQklUZXN0IGV4dGVuZHMgVGVzdEZtd2sgCit7ICAKKyAgcHJpdmF0ZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGNoYXJhY3RlckJyZWFrOworICBwcml2YXRlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd29yZEJyZWFrOworICBwcml2YXRlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgbGluZUJyZWFrOworICBwcml2YXRlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igc2VudGVuY2VCcmVhazsKKyAgICAKKyAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgbmV3IFJCQklUZXN0KCkucnVuKGFyZ3MpOworICB9CisKKyAgcHVibGljIFJCQklUZXN0KCkgeyAKKyAgfQorICAKKyAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBoYWxmTkEgPSAiXHUwOTI4XHUwOTRkXHUyMDBkIjsgIC8qaGFsZmZvcm0gTkEgPSBkZXZhbmlnaXJpIE5BICsgdmlyYW1hKHN1cHJlc3NlcyBpbmhlcmVudCB2b3dlbCkrIHplcm8gd2lkdGggam9pbmVyICovICAKKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGhhbGZTQSAgPSAiXHUwOTM4XHUwOTRkXHUyMDBkIjsgCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBoYWxmQ0hBID0gIlx1MDkxYVx1MDk0ZFx1MjAwZCI7IAorICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgaGFsZktBICA9ICJcdTA5MTVcdTA5NGRcdTIwMGQiOyAKKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGRlYWRUQSAgPSAiXHUwOTI0XHUwOTRkIjsKKworICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZGVhZFJBICAgPSAiXHUwOTMwXHUwOTRkIjsgIC8qZGVhZGZvcm0gUkEgPSBkZXZhbmFnYXJpIFJBICsgdmlyYW1hKi8KKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGRlYWRQSEEgID0gIlx1MDkyYlx1MDk0ZCI7ICAvKmRlYWRmb3JtIFBIQSA9IGRldmFuYWdhcmkgUEhBICsgdmlyYW1hKi8KKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGRlYWRUVEhBID0gIlx1MDkyMFx1MDk0ZCI7IAorICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZGVhZFBBICAgPSAiXHUwOTJhXHUwOTRkIjsgCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBkZWFkU0EgICA9ICJcdTA5MzhcdTA5NGQiOyAgIC8qZGV2YW5hZ2FyaSB2aXNhcmdhIGxvb2tzIGxpa2UgYSBlbmdsaXNoIGNvbG9uKi8KKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHZpc2FyZ2EgID0gIlx1MDkwMyI7CisKKworICAvL3Rlc3RzIGRlZmF1bHQgcnVsZXMgYmFzZWQgY2hhcmFjdGVyIGl0ZXJhdGlvbgorICBwdWJsaWMgdm9pZCBUZXN0RGVmYXVsdFJ1bGVCYXNlZENoYXJhY3Rlckl0ZXJhdGlvbigpeworICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpPShSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKVJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKTsKKyAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBSQkJJIGZvciBjaGFyYWN0ZXIgaXRlcmF0aW9uIGJ5IHVzaW5nIGRlZmF1bHQgcnVsZXMiKTsKKyAgICAgIHRyeSB7CisgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgb2JpID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkKXJiYmk7CisgICAgICB9CisgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAvLyBCYWlsIG91dCBpZiB1c2luZyBuZXcgUkJCSSBpbXBsZW1lbnRhdGlvbgorICAgICAgICAgIGxvZ2xuKCJUZXN0IFNraXBwZWQuIik7CisgICAgICAgICAgcmV0dXJuOworICAgICAgfQorCisgICAgICAvL2ZldGNoIHRoZSBydWxlcyB1c2VkIHRvIGNyZWF0ZSB0aGUgYWJvdmUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAgU3RyaW5nIGRlZmF1bHRSdWxlcz1yYmJpLnRvU3RyaW5nKCk7CisgICAgICAKKyAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgY2hhckl0ZXJEZWZhdWx0PW51bGw7CisgICAgICB0cnl7CisgICAgICBjaGFySXRlckRlZmF1bHQgICA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGRlZmF1bHRSdWxlcyk7IAorICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpeworICAgICAgICAgIGVycmxuKCJFUlJPUjogZmFpbGVkIGNvbnN0cnVjdGlvbiBpbiBUZXN0RGVmYXVsdFJ1bGVCYXNlZENoYXJhY3Rlckl0ZXJhdGlvbigpIisgaWFlLnRvU3RyaW5nKCkpOworICAgICAgfQorCisgICAgICBWZWN0b3IgY2hhcmRhdGEgPSBuZXcgVmVjdG9yKCk7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJIIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJlIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJsIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJsIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJvIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJlXHUwMzAxIik7ICAgICAgICAgICAgICAgICAgIC8vYWN1dGVFCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCImIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJlXHUwMzAzIik7ICAgICAgICAgICAgICAgICAgIC8vdGlsZGFFCisgICAgICAvL2RldmFuYWdpcmkgY2hhcmFjdGVycyBmb3IgSGluZGkgc3VwcG9ydAorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTA2Iik7ICAgICAgICAgICAgICAgICAgICAvL2RldmFuYWdpcmkgQUEKKyAgICAgIC8vY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTNlXHUwOTAxIik7ICAgICAgICAgICAgICAvL2RldmFuYWdpcmkgdm93ZWxzaWduIEFBKyBjaGFuZHJhYmluZGh1CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MTZcdTA5NDciKTsgICAgICAgICAgICAgIC8vZGV2YW5hZ2lyaSBLSEErdm93ZWxzaWduIEUKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkzOFx1MDk0MVx1MDkwMiIpOyAgICAgICAgLy9kZXZhbmFnaXJpIFNBK3Zvd2Vsc2lnbiBVICsgYW51c3ZhcmEoYmluZHUpCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MjYiKTsgICAgICAgICAgICAgICAgICAgIC8vZGV2YW5hZ2lyaSBjb25zb25hbnQgREEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkzMCIpOyAgICAgICAgICAgICAgICAgICAgLy9kZXZhbmFnaXJpIGNvbnNvbmFudCBSQQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTM5XHUwOTRjIik7ICAgICAgICAgICAgICAvL2RldmFuYWdpcmkgSEErdm93ZWwgc2lnbiBBSQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTY0Iik7ICAgICAgICAgICAgICAgICAgICAvL2RldmFuYWdpcmkgZGFuZGEKKyAgICAgIC8vZW5kIGhpbmRpIGNoYXJhY3RlcnMgICAgICAKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIkFcdTAzMDIiKTsgICAgICAgICAgICAgICAgICAgLy8gY2lyY3VtZmxleEEgCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJpXHUwMzAxIik7ICAgICAgICAgICAgICAgICAgIC8vIGFjdXRlQmVsb3dJICAgCisgICAgICAvLyBjb25qb2luaW5nIGphbW8uLi4gCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMDlcdTExNjFcdTExYmMiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFiYyIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXG4iKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlxyXG4iKTsgICAgICAgICAgICAgICAgICAgICAgLy8ga2VlcCBDUkxGIHNlcXVlbmNlcyB0b2dldGhlciAgCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJTXHUwMzAwIik7ICAgICAgICAgICAgICAgICAgIC8vZ3JhdmVTCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJpXHUwMzAxIik7ICAgICAgICAgICAgICAgICAgIC8vIGFjdXRlQmVsb3dJCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCIhIik7CisKKyAgICAgICAvLyBXaGF0IGZvbGxvd3MgaXMgYSBzdHJpbmcgb2YgS29yZWFuIGNoYXJhY3RlcnMgKEkgZm91bmQgaXQgaW4gdGhlIFllbGxvdyBQYWdlcworICAgICAgLy8gYWQgZm9yIHRoZSBLb3JlYW4gUHJlc2J5dGVyaWFuIENodXJjaCBvZiBTYW4gRnJhbmNpc2NvLCBhbmQgSSBob3BlIEkgdHJhbnNjcmliZWQKKyAgICAgIC8vIGl0IGNvcnJlY3RseSksIGZpcnN0IGFzIHByZWNvbXBvc2VkIHN5bGxhYmxlcywgYW5kIHRoZW4gYXMgY29uam9pbmluZyBqYW1vLgorICAgICAgLy8gQm90aCBzZXF1ZW5jZXMgc2hvdWxkIGJlIHNlbWFudGljYWxseSBpZGVudGljYWwgYW5kIGJyZWFrIHRoZSBzYW1lIHdheS4KKyAgICAgIC8vIHByZWNvbXBvc2VkIHN5bGxhYmxlcy4uLgorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHVjMGMxIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdWQ1NmQiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1ZDU1YyIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHVjNzc4Iik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdWM1ZjAiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1ZDU2OSIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHVjN2E1Iik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdWI4NWMiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1YWQ1MCIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHVkNjhjIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAgLy8gY29uam9pbmluZyBqYW1vLi4uCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMDlcdTExNjFcdTExYmMiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTExMlx1MTE2MVx1MTFiYyIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTEyXHUxMTYxXHUxMWFiIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMGJcdTExNzVcdTExYWIiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTEwYlx1MTE2N1x1MTFhYiIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTEyXHUxMTYxXHUxMWI4Iik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMGNcdTExNjFcdTExYmMiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTEwNVx1MTE2OSIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTAwXHUxMTZkIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNmMiKTsKKworICAgICAgLy9UZXN0aW5nIHRoZSBCcmVha0l0ZXJhdG9yIGZvciBkZXZhbmFnYXJpIHNjcmlwdAorICAgICAgLy9kZXZhbmFnYXJpIGNoYXJhY3RlcnMgZm9yIEhpbmRpIHN1cHBvcnQKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkwNiIpOyAgICAgICAgICAgICAgICAgICAgLy9kZXZhbmFnYXJpIEFBCisgICAgICAvL2hpbmRpIGNoYXJhY3RlciBicmVhayBzaG91bGQgbWFrZSBzdXJlIHRoYXQgaXQgCisgICAgICAvLyBkb2Vzbid0IGJyZWFrIGluLWJldHdlZW4gYSB2b3dlbHNpZ24gYW5kIGEgY2hhbmRyYWJpbmR1CisgICAgLy8gIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkzZVx1MDkwMSIpOyAgICAgICAgICAgICAgLy9kZXZhbmFnYXJpIHZvd2Vsc2lnbiBBQSsgY2hhbmRyYWJpbmR1CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MTZcdTA5NDciKTsgICAgICAgICAgICAgIC8vZGV2YW5hZ2FyaSBLSEErdm93ZWxzaWduIEUKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkzOFx1MDk0MVx1MDkwMiIpOyAgICAgICAgLy9kZXZhbmFnYXJpIFNBK3Zvd2Vsc2lnbiBVICsgYW51c3ZhcmEoYmluZHUpCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MjYiKTsgICAgICAgICAgICAgICAgICAgIC8vZGV2YW5hZ2FyaSBjb25zb25hbnQgREEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkzMCIpOyAgICAgICAgICAgICAgICAgICAgLy9kZXZhbmFnYXJpIGNvbnNvbmFudCBSQQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTM5XHUwOTRjIik7ICAgICAgICAgICAgICAvL2RldmFuYWdhcmkgY29uc29uYW50IEhBK2RlcGVuZGVudCB2b3dlbCBzaWduIEFJCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5NjQiKTsgICAgICAgICAgICAgICAgICAgIC8vZGV2YW5hZ2FyaSBkYW5kYQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTUwIik7ICAgICAgICAgICAgICAgICAgICAvL2RldmFuYWdhcmkgT00gCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MTVcdTA5NDMiKTsgICAgICAgICAgICAgIC8vZGV2YW5hZ2FyaSBLQStkZXBlbmRlbnQgdm93ZWwgUkktPktSSQorCisgICAgICAvL2RlcGVuZGVudCBoYWxmLWZvcm1zCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KGhhbGZTQSsgIlx1MDkyNCIpOyAgICAgICAgICAgICAvL2hhbGZTQStiYXNlIGNvbnNvbmFudCBUQS0+U1RBCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KGhhbGZTQSsgIlx1MDkyNSIpOyAgICAgICAgICAgICAvL2hhbGZTQStiYXNlIGNvbnNvbmFudCBUSEEtPlNUSEEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoaGFsZlNBKyAiXHUwOTJlIik7ICAgICAgICAgICAgIC8vaGFsZlNBK2Jhc2UgY29uc29uYW50IE1BLT5TTUEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoaGFsZkNIQSsgIlx1MDkxYiIpOyAgICAgICAgICAgIC8vaGFsZkNIQStiYXNlIGNvbnNvbmFudCBDSEhBLT5DSEhIQQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudChoYWxmTkErICJcdTA5MTciKTsgICAgICAgICAgICAgLy9oYWxmTkErYmFzZSBjb25zb25hbnQgR0EtPk5HQQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTJhXHUwOTRkXHUyMDBkXHUwOTJmIik7ICAgLy9oYWxmUEEoUEErdmlyYW1hK3plcm93aWR0aGpvaW5lcitiYXNlIGNvbnNvbmFudCBZQS0+UFlBCisKKworICAgICAgLy9jb25zb25hbnQgUkEgcnVsZXMgLS0tLS0tLS0tLQorICAgICAgLy9pZiB0aGUgZGVhZCBjb25zb25hbnQgUkEgcHJlY2VkZXMgZWl0aGVyIGEgY29uc29uYW50IG9yIGFuIGluZGVwZW5kZW50IHZvd2VsLAorICAgICAgLy90aGVuIGl0IGlzIHJlcGxhY2VkIGJ5IGl0cyBzdXBlcnNjcmlwdCBub24tc3BhY2luZyBtYXJrCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KGRlYWRSQSsgIlx1MDkxNSIpOyAgICAgICAgICAgICAvL2RlYWRSQStkZXZhbmFnYXJpIGNvbnNvbmFudCBLQS0+S0Erc3VwZXJSQSAKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoZGVhZFJBKyAiXHUwOTIzIik7ICAgICAgICAgICAgIC8vZGVhZFJBK2RldmFuYWdhcmkgY29uc29uYW50IE5OQS0+Tk5BK3N1cGVyUkEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoZGVhZFJBKyAiXHUwOTE3Iik7ICAgICAgICAgICAgIC8vZGVhZFJBK2RldmFuYWdhcmkgY29uc29uYW50IEdBLT5HQStzdXBlclJBCisgICAvLyAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoZGVhZFJBKyAiXHUwOTYwIik7ICAgICAgICAgICAvL2RlYWRSQStkZXZhbmFnYXJpIGNvc29uYW50IFJSSS0+UlJJK3N1cGVyUkEKKyAgICAgIAorICAgICAgLy9pZiBhbnkgZGVhZCBjb25zb25hbnQob3RoZXIgdGhhbiBkZWFkIFJBKXByZWNlZGVzIHRoZSBjb25zb25hbnQgUkEsIHRoZW4KKyAgICAgIC8vaXQgaXMgcmVwbGFjZWQgd2l0aCBpdHMgbm9taW5hbCBmb3JtYSBuZCBSQSBpcyByZXBsYWNlZCBieSB0aGUgc3Vic2NyaXB0IG5vbi1zcGFjaW5nIG1hcmsuCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KGRlYWRQSEErICJcdTA5MzAiKTsgICAgICAgICAgICAvL2RlYWRQSEErZGV2YW5hZ2FyaSBjb25zb25hbnQgUkEtPlBIQStzdWJSQQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudChkZWFkUEErICJcdTA5MzAiKTsgICAgICAgICAgICAgLy9kZWFkUEErZGV2YW5hZ2FyaSBjb25zb25hbnQgUkEtPlBBK3N1YlJBCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KGRlYWRUVEhBKyAiXHUwOTMwIik7ICAgICAgICAgICAvL2RlYWRUVEhBK2RldmFuYWdhcmkgY29uc29uYW50IFJBLT5UVEhBK3N1YlJBCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KGRlYWRUQSsgIlx1MDkzMCIpOyAgICAgICAgICAgICAvL2RlYWRUQStSQS0+VFJBIAorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTM2XHUwOTRkXHUwOTMwIik7ICAgICAgICAgLy9kZWFkU0hBKFNIQSt2aXJhbWEpK1JBLT5TSFJBIAorCisgICAgICAvL2Nvbmp1Y3QgbGlnYXR1cmVzCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MTVcdTA5NGRcdTA5MzciKTsgICAgICAgICAvL2RlYWRLQShLQSt2aXJhbWEpIGZvbGxvd2VkIGJ5IFNTSEEgd3JhcHMgdXAgaW50byBhIHNpbmdsZSBjaGFyYWN0ZXIgS1NTSEEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoZGVhZFRBKyAiXHUwOTI0Iik7ICAgICAgICAgICAgICAvL2RlYWRUQStUQSB3cmFwcyB1cCBpbnRvIGdseXBoIFRUSEEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkyNlx1MDk0ZFx1MDkzNSIpOyAgICAgICAgIC8vZGVhZERBKERBK3ZpcmFtYSkrVkEgd3JhcHMgdXAgaW50byBEVkEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkxY1x1MDk0ZFx1MDkxZSIpOyAgICAgICAgIC8vZGVhZEpBKEpBK3ZpcmFtYSkrTllBIHdyYXBzIHVwIGludG8gSk5ZQQorICAgICAKKworCisgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KGNoYXJJdGVyRGVmYXVsdCwgY2hhcmRhdGEpOworCisgIH0KKworICBwdWJsaWMgdm9pZCBUZXN0RGVmYXVsdFJ1bGVCYXNlZFdvcmRJdGVyYXRpb24oKXsKKyAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBSQkJJIGZvciB3b3JkIGl0ZXJhdGlvbiB1c2luZyBkZWZhdWx0IHJ1bGVzIik7CisgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmk9KFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IpUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgIHRyeSB7CisgICAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgb2JpID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkKXJiYmk7CisgICAgICB9CisgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAvLyBCYWlsIG91dCBpZiB1c2luZyBuZXcgUkJCSSBpbXBsZW1lbnRhdGlvbgorICAgICAgICAgIGxvZ2xuKCJUZXN0IFNraXBwZWQuIik7CisgICAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgICAgLy9mZXRjaCB0aGUgcnVsZXMgdXNlZCB0byBjcmVhdGUgdGhlIGFib3ZlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgIFN0cmluZyBkZWZhdWx0UnVsZXM9cmJiaS50b1N0cmluZygpOworICAgICAgCisgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHdvcmRJdGVyRGVmYXVsdD1udWxsOworICAgICAgdHJ5eworICAgICAgd29yZEl0ZXJEZWZhdWx0ICAgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihkZWZhdWx0UnVsZXMpOyAKKyAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgICBlcnJsbigiRVJST1I6IGZhaWxlZCBjb25zdHJ1Y3Rpb24gaW4gVGVzdERlZmF1bHRSdWxlQmFzZWRXb3JkSXRlcmF0aW9uKCkgLS0gY3VzdG9tIHJ1bGVzIisgaWFlLnRvU3RyaW5nKCkpOworICAgICAgfQorCisgICAgICBWZWN0b3Igd29yZGRhdGEgPSBuZXcgVmVjdG9yKCk7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50ICgiV3JpdGUiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQgKCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50ICgid29yZHJ1bGVzIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50ICgiLiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiYWxwaGEtYmV0YS1nYW1tYSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOyAgICAgIAorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTJmXHUwOTM5Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MzlcdTA5M2YiICsgaGFsZk5BICsgIlx1MDkyNlx1MDk0MCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTM5XHUwOTQ4Iik7CisgICAgICAvLyAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTY0Iik7ICAgLy9kYW5kYSBmb2xsb3dlZCBieSBhIHNwYWNlCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MDVcdTA5M2VcdTA5MmEiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkzOFx1MDkzZlx1MDkxNlx1MDk0Ylx1MDkxN1x1MDk0NyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiPyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTY4XHUwOTY2Llx1MDk2OVx1MDk2ZiIpOyAgICAgICAgICAgIC8vaGluZGkgbnVtYmVycworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTY3XHUwOTY2XHUwOTY2Llx1MDk2Nlx1MDk2NiUiKTsgICAgIC8vcG9zdG51bWVyaWMKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MjBhOFx1MDk2NyxcdTA5NjdcdTA5NjZcdTA5NjYuXHUwOTY2XHUwOTY2Iik7IC8vcHJlLW51bWJlciBJbmRpYSBjdXJyZW5jeSBzeW1ib2wgUnMuXHUyMGFECisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MDVcdTA5MmVcdTA5MWMiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlxuIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KGhhbGZTQSsiXHUwOTM1XHUwOTI0XHUwOTAyIitkZWFkVEErIlx1MDkzMCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIkl0J3MiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiQzMC4xMCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOyAgCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTAwQTIiKTsgLy9jZW50IHNpZ24KKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDBBMyIpOyAvL3BvdW5kIHNpZ24KKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDBBNCIpOyAvL2N1cnJlbmN5IHNpZ24KKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDBBNSIpOyAvL3llbiBzaWduCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJhbHBoYS1iZXRhLWdhbW1hIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJCYWRnZXMiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIj8iKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIkJBREdFUyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiISIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiMTAwMCwyMzMsNDU2LjAwMCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiMSwyMy4zMjIlIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIxMjMuMTIyMiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwMDI0MTIzLDAwMC4yMCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiMTc5LjAxXHUwMDI1Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJYIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJOb3ciKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlxyIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJpcyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXG4iKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoInRoZSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHJcbiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgidGltZSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHVjNWYwXHVkNTY5Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdWM3YTVcdWI4NWNcdWFkNTBcdWQ2OGMiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIC8vIGNvbmpvaW5pbmcgamFtby4uLgorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUxMTA5XHUxMTYxXHUxMWJjXHUxMTEyXHUxMTYxXHUxMWJjIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTExMTJcdTExNjFcdTExYWJcdTExMGJcdTExNzVcdTExYWIiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIkhlbGxvIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIsIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJob3ciKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoImFyZSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgieW91Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisKKyAgICAgIC8vVGVzdGluZyB0aGUgQnJlYWtJdGVyYXRvciBmb3IgZGV2YW5hZ2FyaSBzY3JpcHQKKyAgICAgIC8vaGluZGkKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkxN1x1MDkyYS1cdTA5MzZcdTA5MmEiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiEiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkyZlx1MDkzOSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTM5XHUwOTNmIiArIGhhbGZOQSArICJcdTA5MjZcdTA5NDAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkzOVx1MDk0OCIpOworICAgICAgLy9kYW5kYSBpcyBzaW1pbGFyIHRvIGZ1bGwgc3RvcC4gZGFuZGEgaXMgYSBoaW5kaSBwaHJhc2Ugc2VwZXJhdG9yCisgICAgICAvL01ha2Ugc3VyZSBpdCBicmVha3MgYmVmb3JlIGRhbmRhIGFuZCBhZnRlciBkYW5kYSB3aGVuIGl0IGlzIGZvbGxvd2VkIGJ5IGEgc3BhY2UKKyAgICAgIC8vd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTY0Iik7ICAgLy9mYWlscyBoZXJlIGRvZXNuJ3QgYnJlYWsgYXQgZGFuZGEKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkwNVx1MDkzZVx1MDkyYSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTM4XHUwOTNmXHUwOTE2XHUwOTRiXHUwOTE3XHUwOTQ3Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCI/Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcbiIpOyAKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIjoiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoZGVhZFBBKyJcdTA5MzBcdTA5M2VcdTA5MmYiK3Zpc2FyZ2EpOyAgICAvL25vIGJyZWFrIGJlZm9yZSB2aXNhcmdhCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkzNSIgKyBkZWFkUkErICJcdTA5MzdcdTA5M2UiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlxyXG4iKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoZGVhZFBBKyAiXHUwOTMwXHUwOTE1XHUwOTNlXHUwOTM2Iik7ICAgICAvL2RlYWRQQStSQStLQSt2b3dlbCBBQStTSEEgLT4gcHJha2FzaAorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiLCIpOyAKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkyNFx1MDk0MVx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0YiIpOyAKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkyZVx1MDkzZiIrIGRlYWRUQSsgIlx1MDkzMCIpOyAgICAgICAvL01BK3Zvd2VsIEkrIGRlYWRUQSArIFJBIAorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTE1XHUwOTNlIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MmEiKyBkZWFkVEEgKyAiXHUwOTMwIik7ICAgICAgICAgICAgLy9QQSArIGRlYWRUQSArIFJBCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MmFcdTA5NWRcdTA5NGIiKTsKKyAgICAgIC8vIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDk2NCIpOyAvL2ZhaWxzIGhlcmUgZG9lc24ndCBicmVhayBhdCBkYW5kYQorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudChkZWFkU0EgKyBkZWFkVEEgKyAiXHUwOTMwXHUwOTNmIik7ICAgICAgIC8vZGVhZFNBK2RlYWRUQStSQSt2b3dlbCBJLT5zdGhyaQorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiLiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTY4XHUwOTY2Llx1MDk2OVx1MDk2ZiIpOyAgICAgICAgICAgIC8vaGluZGkgbnVtYmVycworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTY3XHUwOTY2XHUwOTY2Llx1MDk2Nlx1MDk2NiUiKTsgICAgIC8vcG9zdG51bWVyaWMKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MjBhOFx1MDk2NyxcdTA5NjdcdTA5NjZcdTA5NjYuXHUwOTY2XHUwOTY2Iik7IC8vcHJlLW51bWJlciBJbmRpYSBjdXJyZW5jeSBzeW1ib2wgUnMuXHUyMGFECisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MDVcdTA5MmVcdTA5MWMiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlxuIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KGhhbGZTQSArICJcdTA5MzVcdTA5MjRcdTA5MDIiICtkZWFkVEErICJcdTA5MzAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlxyIik7CisKKyAgICAgIGdlbmVyYWxJdGVyYXRvclRlc3Qod29yZEl0ZXJEZWZhdWx0LCB3b3JkZGF0YSk7CisgIH0KKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGtQYXJhZ3JhcGhTZXBhcmF0b3IgPSAiXHUyMDI5IjsKKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGtMaW5lU2VwYXJhdG9yICAgICAgPSAiXHUyMDI4IjsKKworICBwdWJsaWMgdm9pZCBUZXN0RGVmYXVsdFJ1bGVCYXNlZFNlbnRlbmNlSXRlcmF0aW9uKCl7CisgICAgICBsb2dsbigiVGVzdGluZyB0aGUgUkJCSSBmb3Igc2VudGVuY2UgaXRlcmF0aW9uIHVzaW5nIGRlZmF1bHQgcnVsZXMiKTsKKyAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcmJiaT0oUnVsZUJhc2VkQnJlYWtJdGVyYXRvcilSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoKTsKKyAgICAgIC8vZmV0Y2ggdGhlIHJ1bGVzIHVzZWQgdG8gY3JlYXRlIHRoZSBhYm92ZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICB0cnkgeworICAgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkIG9iaSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZClyYmJpOworICAgICAgfQorICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgLy8gQmFpbCBvdXQgaWYgdXNpbmcgbmV3IFJCQkkgaW1wbGVtZW50YXRpb24KKyAgICAgICAgICBsb2dsbigiVGVzdCBTa2lwcGVkLiIpOworICAgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIFN0cmluZyBkZWZhdWx0UnVsZXM9cmJiaS50b1N0cmluZygpOworICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBzZW50SXRlckRlZmF1bHQ9bnVsbDsKKyAgICAgIHRyeXsKKyAgICAgIHNlbnRJdGVyRGVmYXVsdCAgID0gbmV3IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoZGVmYXVsdFJ1bGVzKTsgCisgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSl7CisgICAgICAgICAgZXJybG4oIkVSUk9SOiBmYWlsZWQgY29uc3RydWN0aW9uIGluIFRlc3REZWZhdWx0UnVsZUJhc2VkU2VudGVuY2VJdGVyYXRpb24oKSIgKyBpYWUudG9TdHJpbmcoKSk7CisgICAgICB9CisKKyAgICAgIFZlY3RvciBzZW50ZGF0YSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIihUaGlzIGlzIGl0LikgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJUZXN0aW5nIHRoZSBzZW50ZW5jZSBpdGVyYXRvci4gIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJcIlRoaXMgaXNuXCd0IGl0LlwiICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiSGkhICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiVGhpcyBpcyBhIHNpbXBsZSBzYW1wbGUgc2VudGVuY2UuICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiKFRoaXMgaXMgaXQuKSAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlRoaXMgaXMgYSBzaW1wbGUgc2FtcGxlIHNlbnRlbmNlLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlwiVGhpcyBpc25cJ3QgaXQuXCIgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJIaSEgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJUaGlzIGlzIGEgc2ltcGxlIHNhbXBsZSBzZW50ZW5jZS4gIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJJdCBkb2VzIG5vdCBoYXZlIHRvIG1ha2UgYW55IHNlbnNlIGFzIHlvdSBjYW4gc2VlLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIk5lbCBtZXp6byBkZWwgY2FtbWluIGRpIG5vc3RyYSB2aXRhLCBtaSByaXRyb3ZhaSBpbiB1bmEgc2VsdmEgb3NjdXJhLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIkNoZSBsYSBkcml0dGEgdmlhIGF2ZW8gc21hcnJpdGEuICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiSGUgc2FpZCwgdGhhdCBJIHNhaWQsIHRoYXQgeW91IHNhaWQhISAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIkRvbid0IHJvY2sgdGhlIGJvYXQuIiArIGtQYXJhZ3JhcGhTZXBhcmF0b3IpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiQmVjYXVzZSBJIGFtIHRoZSBkYWRkeSwgdGhhdCBpcyB3aHkuICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiTm90IG9uIG15IHRpbWUgKGVsIHRpbW8uKSEgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJTbyB3aGF0ISEiICsga1BhcmFncmFwaFNlcGFyYXRvcik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJcIkJ1dCBub3csXCIgaGUgc2FpZCwgXCJJIGtub3chXCIgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJIYXJyaXMgdGh1bWJlZCBkb3duIHNldmVyYWwsIGluY2x1ZGluZyBcIkF3YXkgV2UgR29cIiAod2hpY2ggYmVjYW1lIHRoZSBodWdlIHN1Y2Nlc3MgT2tsYWhvbWEhKS4gIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJPbmUgc3BlY2llcywgQi4gYW50aHJhY2lzLCBpcyBoaWdobHkgdmlydWxlbnQuXG4iKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIldvbGYgc2FpZCBhYm91dCBTb3VuZGVyOlwiQmVhdXRpZnVsbHkgdGhvdWdodC1vdXQgYW5kIGRpcmVjdGVkLlwiICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiSGF2ZSB5b3UgZXZlciBzYWlkLCBcIlRoaXMgaXMgd2hlcmVcdEkgc2hhbGwgbGl2ZVwiPyAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIkhlIGFuc3dlcmVkLCBcIllvdSBtYXkgbm90IVwiICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiQW5vdGhlciBwb3B1bGFyIHNheWluZyBpczogXCJIb3cgZG8geW91IGRvP1wiLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIllldCBhbm90aGVyIHBvcHVsYXIgc2F5aW5nIGlzOiBcJ0lcJ20gZmluZSB0aGFua3MuXCcgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJXaGF0IGlzIHRoZSBwcm9wZXIgdXNlIG9mIHRoZSBhYmJyZXZpYXRpb24gcHAuPyAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlllcywgSSBhbSBkZWZpbmF0ZWxseSAxMlwiIHRhbGwhISIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiTm93XHJpc1xudGhlXHJcbnRpbWVcblxyZm9yXHJccmFsbFx1MjAyOSIpOworICAgICAgLy8gRG9uJ3QgYnJlYWsgc2VudGVuY2VzIGF0IHRoZSBib3VuZGFyeSBiZXR3ZWVuIENKSworICAgICAgLy8gYW5kIG90aGVyIGxldHRlcnMKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NTpcIkpBVkFcdTgyMWMiCisgICAgICAgICAgICAgICAgKyAiXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkLFx1MjQ5NFx1NTZkOFx1NGVjMFx1NjBiMVx1ODU2MFx1NTFiYSIKKyAgICAgICAgICAgICAgICArICJcdTYxMWRcdTU3YjZcdTI1MTBcdTVkNDZcIi5cdTIwMjkiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NVx1OWRlOCIKKyAgICAgICAgICAgICAgICArICJcdTk3ZTRKQVZBXHU4MjFjXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkXHVlMzBiXHUyNDk0XHU1NmQ4XHU0ZWMwIgorICAgICAgICAgICAgICAgICsgIlx1NjBiMVx1ODU2MFx1NTFiYVx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0Nlx1OTdlNVx1Nzc1MVx1MjAyOSIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiXHU1NDg3XHU2N2ZmXHVlNTkxXHU1MDE3XHU2MWIzXHU2MGExXHU5NTEwXHU4MTY1XHU5ZGU4XHU5N2U0IgorICAgICAgICAgICAgICAgICsgIlx1NjQ3MFx1ODc5MEpBVkFcdTgyMWNcdTgxNjVcdTdmYzhcdTUxY2VcdTMwNmRcdWUzMGJcdTI0OTRcdTU2ZDgiCisgICAgICAgICAgICAgICAgKyAiXHU0ZWMwXHU2MGIxXHU4NTYwXHU1MWJhXHU2MTFkXHU1N2I2XHUyNTEwXHU1ZDQ2XHU5N2U1XHU3NzUxXHUyMDI5Iik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJIZSBzYWlkLCBcIkkgY2FuIGdvIHRoZXJlLlwiXHUyMDI5Iik7CisgICAgICAvLyBUcmVhdCBmdWxsd2lkdGggdmFyaWFudHMgb2YgLiE/IHRoZSBzYW1lIGFzIHRoZWlyCisgICAgICAvLyBub3JtYWwgY291bnRlcnBhcnRzCisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJJIGtub3cgSSdtIHJpZ2h0XHVmZjBlICIpOworICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiUmlnaHRcdWZmMWYgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJSaWdodFx1ZmYwMSAiKTsKKworICAgICAgLy8gRG9uJ3QgYnJlYWsgc2VudGVuY2VzIGF0IGJvdW5kYXJ5IGJldHdlZW4gQ0pLIGFuZCBkaWdpdHMKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NVx1OWRlOCIKKyAgICAgICAgICAgICAgICArICJcdTk3ZTQ4ODg4XHU4MjFjXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkXHVlMzBiXHUyNDk0XHU1NmQ4XHU0ZWMwIgorICAgICAgICAgICAgICAgICsgIlx1NjBiMVx1ODU2MFx1NTFiYVx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0Nlx1OTdlNVx1Nzc1MVx1MjAyOSIpOworCisgICAgICAvLyBCcmVhayBzZW50ZW5jZSBiZXR3ZWVuIGEgc2VudGVuY2UgdGVybWluYXRvciBhbmQKKyAgICAgIC8vIG9wZW5pbmcgcHVuY3R1YXRpb24KKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIkhvdyBkbyB5b3UgZG8/Iik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCIoZmluZSkuIik7CisgICAgICAvL3NlbnRlbmNlIGJyZWFrcyBmb3IgaGluZGkKKyAgICAgIC8vbWFrZSBzdXJlIHRoZXJlIGlzIHNlbnRlbmNlIGJyZWFrIGFmdGVyID8sZGFuZGEoaGluZGkgcGhyYXNlIHNlcGFyYXRvciksZnVsbHN0b3AgZm9sbG93ZWQgYnkgc3BhY2UgYW5kIG5vIGJyZWFrIGFmdGVyIFxuIFxyIAorICAgICAgc2VudGRhdGEuYWRkRWxlbWVudCgiXHUwOTI4XHUwOTJlIitoYWxmU0ErIlx1MDkyNFx1MDk0NyAiICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHUwOTMwXHUwOTJlXHUwOTQ3XHUwOTM2LCAiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcdTA5MDVcdTA5M2VcdTA5MmEiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlx1MDkxNVx1MDk0OFx1MDkzOFx1MDk0NyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlx1MDkzOVx1MDk0OD8iKTsgICAKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlx1MDkyZVx1MDk0OCBcdTA5MDUiCisgICAgICAgICAgICAgICAgICAgICAgICArIGhhbGZDSEEKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx1MDkxYlx1MDkzZSBcdTA5MzlcdTA5NDJcdTA5MDFcdTA5NjQgIik7ICAgCisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJcdTA5MDVcdTA5M2VcdTA5MmFcclxuIFx1MDkxNVx1MDk0OFx1MDkzOFx1MDk0NyBcdTA5MzlcdTA5NDg/Iik7ICAgCisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJcdTA5MzVcdTA5MzkgIgorICAgICAgICAgICAgICAgICAgICAgICArIGhhbGZLQQorICAgICAgICAgICAgICAgICAgICAgICArICJcdTA5MmZcdTA5M2VcbiBcdTA5MzlcdTA5NDg/Iik7ICAgCisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJcdTA5MmZcdTA5MzkgXHUwOTA1XHUwOTNlXHUwOTJlIFx1MDkzOVx1MDk0OC4gIik7ICAgCisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJcdTA5MmZcdTA5MzkgbWVhbnMgXCJ0aGlzXCIuICIpOyAKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlwiXHUwOTJhXHUwOTVkXHUwOTNlXHUwOTA4XCIgbWVhbmluZyBcImVkdWNhdGlvblwiIG9yIFwic3R1ZGllc1wiLiAiKTsKKyAgICAgIHNlbnRkYXRhLmFkZEVsZW1lbnQoIlx1MDkwNVx1MDkzZVx1MDkxYyIgCisgICAgICAgICAgICAgICAgICAgICAgICArICIoIitoYWxmU0ErIlx1MDkzNVx1MDkyNFx1MDkwMiIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgZGVhZFRBCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdTA5MzAgIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHUwOTI2XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTM4KSAiCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdTA5MzlcdTA5NDhcdTA5NjQgIik7CisgICAgICBzZW50ZGF0YS5hZGRFbGVtZW50KCJMZXQncyBlbmQgaGVyZS4gIik7CisgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHNlbnRJdGVyRGVmYXVsdCwgc2VudGRhdGEpOworICB9CisgICAKKyAgcHVibGljIHZvaWQgVGVzdERlZmF1bHRSdWxlQmFzZWRMaW5lSXRlcmF0aW9uKCl7CisgICAgICBsb2dsbigiVGVzdGluZyB0aGUgUkJCSSBmb3IgbGluZSBpdGVyYXRpb24gdXNpbmcgZGVmYXVsdCBydWxlcyIpOworICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpPShSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKVJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAvL2ZldGNoIHRoZSBydWxlcyB1c2VkIHRvIGNyZWF0ZSB0aGUgYWJvdmUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAgdHJ5IHsKKyAgICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCBvYmkgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQpcmJiaTsKKyAgICAgIH0KKyAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgIC8vIEJhaWwgb3V0IGlmIHVzaW5nIG5ldyBSQkJJIGltcGxlbWVudGF0aW9uCisgICAgICAgICAgbG9nbG4oIlRlc3QgU2tpcHBlZC4iKTsKKyAgICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICBTdHJpbmcgZGVmYXVsdFJ1bGVzPXJiYmkudG9TdHJpbmcoKTsKKyAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgbGluZUl0ZXJEZWZhdWx0PW51bGw7CisgICAgICB0cnl7CisgICAgICAgICAgbGluZUl0ZXJEZWZhdWx0ICAgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihkZWZhdWx0UnVsZXMpOyAKKyAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgICBlcnJsbigiRVJST1I6IGZhaWxlZCBjb25zdHJ1Y3Rpb24gaW4gVGVzdERlZmF1bHRSdWxlQmFzZWRMaW5lSXRlcmF0aW9uKCkiICsgaWFlLnRvU3RyaW5nKCkpOworICAgICAgfQorCisgICAgIFZlY3RvciBsaW5lZGF0YSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiTXVsdGktIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIkxldmVsICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJleGFtcGxlICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJvZiAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiYSAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgic2VtaS0iKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiaWRpb3RpYyAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgibm9uLSIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJzZW5zaWNhbCAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiKG5vbi0iKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiaW1wb3J0YW50KSAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgic2VudGVuY2UuICIpOworCisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIkhpICAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiSGVsbG8gIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIkhvd1xuIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoImFyZVxyIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoInlvdSIgKyBrTGluZVNlcGFyYXRvcik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoImZpbmUuXHQiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiZ29vZC4gICIpOworCisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIk5vd1xyIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoImlzXG4iKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgidGhlXHJcbiIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJ0aW1lXG4iKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiZm9yXHIiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHIiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiYWxsIik7CisKKyAgICAvLyB0byB0ZXN0IGZvciBidWcgIzQwNjgxMzMKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHU5NmY2Iik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIlx1NGUwMFx1MzAwMiIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcdTRlOGNcdTMwMDEiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHU0ZTA5XHUzMDAyXHUzMDAxIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIlx1NTZkYlx1MzAwMVx1MzAwMlx1MzAwMSIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcdTRlOTQsIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIlx1NTE2ZC4iKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHU0ZTAzLlx1MzAwMSxcdTMwMDIiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHU1MTZiIik7CisKKyAgICAvLyB0byB0ZXN0IGZvciBidWcgIzQwODYwNTIKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiZm9vXHUwMGEwYmFyICIpOworICAgIC8vIGxpbmVkYXRhLmFkZEVsZW1lbnQoImZvb1x1ZmVmZmJhciIpOworCisgICAgLy8gdG8gdGVzdCBmb3IgYnVnICM0MDk3OTIwCisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoImRvZyxjYXQsbW91c2UgIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIihvbmUpIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIih0d28pXG4iKTsKKworICAgIC8vIHRvIHRlc3QgZm9yIGJ1ZyAjNDAzNTI2NgorICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJUaGUgIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoImJhbGFuY2UgIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoImlzICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCIkLTIzLDQ1Ni43OCwgIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIm5vdCAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiLSQzMiw0NTYuNzghXG4iKTsKKworICAgIC8vIHRvIHRlc3QgZm9yIGJ1ZyAjNDA5ODQ2NworICAgIC8vIFdoYXQgZm9sbG93cyBpcyBhIHN0cmluZyBvZiBLb3JlYW4gY2hhcmFjdGVycyAoSSBmb3VuZCBpdCBpbiB0aGUgWWVsbG93IFBhZ2VzCisgICAgLy8gYWQgZm9yIHRoZSBLb3JlYW4gUHJlc2J5dGVyaWFuIENodXJjaCBvZiBTYW4gRnJhbmNpc2NvLCBhbmQgSSBob3BlIEkgdHJhbnNjcmliZWQKKyAgICAvLyBpdCBjb3JyZWN0bHkpLCBmaXJzdCBhcyBwcmVjb21wb3NlZCBzeWxsYWJsZXMsIGFuZCB0aGVuIGFzIGNvbmpvaW5pbmcgamFtby4KKyAgICAvLyBCb3RoIHNlcXVlbmNlcyBzaG91bGQgYmUgc2VtYW50aWNhbGx5IGlkZW50aWNhbCBhbmQgYnJlYWsgdGhlIHNhbWUgd2F5LgorICAgIC8vIHByZWNvbXBvc2VkIHN5bGxhYmxlcy4uLgorICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcdWMwYzFcdWQ1NmQgIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIlx1ZDU1Y1x1Yzc3OCAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHVjNWYwXHVkNTY5ICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcdWM3YTVcdWI4NWNcdWFkNTBcdWQ2OGMgIik7CisgICAgLy8gY29uam9pbmluZyBqYW1vLi4uCisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIlx1MTEwOVx1MTE2MVx1MTFiY1x1MTExMlx1MTE2MVx1MTFiYyAiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHUxMTEyXHUxMTYxXHUxMWFiXHUxMTBiXHUxMTc1XHUxMWFiICIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcdTExMGJcdTExNjdcdTExYWJcdTExMTJcdTExNjFcdTExYjggIik7CisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIlx1MTEwY1x1MTE2MVx1MTFiY1x1MTEwNVx1MTE2OVx1MTEwMFx1MTE2ZFx1MTExMlx1MTE2YyIpOworCisgICAgLy8gdG8gdGVzdCBmb3IgYnVnICM0MTE3NTU0OiBGdWxsd2lkdGggLiE/IHNob3VsZCBiZSB0cmVhdGVkIGFzIHBvc3RKd3JkCisgICAgIGxpbmVkYXRhLmFkZEVsZW1lbnQoIlx1NGUwMVx1ZmYwZSIpOworICAgICBsaW5lZGF0YS5hZGRFbGVtZW50KCJcdTRlMDJcdWZmMDEiKTsKKyAgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiXHU0ZTAzXHVmZjFmIik7CisgICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUl0ZXJEZWZhdWx0LCBsaW5lZGF0YSk7CisKKworICB9CisgIHB1YmxpYyB2b2lkIFRlc3RDdXN0b21SdWxlQmFzZWRMaW5lSXRlcmF0b3IoKXsKKworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcmJiaT0oUnVsZUJhc2VkQnJlYWtJdGVyYXRvcilSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgIC8vZmV0Y2ggdGhlIHJ1bGVzIHVzZWQgdG8gY3JlYXRlIHRoZSBhYm92ZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgU3RyaW5nIHJ1bGVzPS8vIiRfaWdub3JlXz1bZV07IiAgKyAvLyBbbGl1XSBOb3Qgc3VyZSB3aGF0IHRoZSBpbnRlbnRpb24gd2FzIGhlcmUuCisgICAgICAgIC8vIEl0J3MgaWxsZWdhbCB0byByZWRlZmluZSB2YXJpYWJsZXMsIGFsc28sIHdoeSBwcmVwZW5kIHRoZSBpZ25vcmUgZGVmaW5pdGlvbiAtLQorICAgICAgICAvLyBldmVuIGlmIGl0J3MgbGVnYWwgdG8gcmVkZWZpbmUgdmFyaWFibGVzLCB0aGUgcHJlcGVuZGVkIGRlZmluaXRpb24gd2lsbCBqdXN0CisgICAgICAgIC8vIGdldCBvdmVycmlkZGVuLgorICAgICAgICAgICAgICAgICByYmJpLnRvU3RyaW5nKCk7CisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBsaW5lSXRlcj1udWxsOworICAgIHRyeSB7CisgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkIG9iaSA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZClyYmJpOworICAgIH0KKyAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgLy8gQmFpbCBvdXQgaWYgdXNpbmcgbmV3IFJCQkkgaW1wbGVtZW50YXRpb24KKyAgICAgICAgbG9nbG4oIlRlc3QgU2tpcHBlZC4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRyeXsKKyAgICAgbGluZUl0ZXIgICA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKHJ1bGVzKTsgCisgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpeworICAgICAgICAgZXJybG4oIkVSUk9SOiBmYWlsZWQgY29uc3RydWN0aW9uIGluIFRlc3RDdXN0b21SdWxlQmFzZWRMaW5lSXRlcmF0b3IoKSAtLSBjdXN0b20gcnVsZXNcbiIgKyBpYWUudG9TdHJpbmcoKSk7CisgICAgICAgfQorICAgIFZlY3RvciBsaW5lZGF0YT1uZXcgVmVjdG9yKCk7CisgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiU0xoZWxsbyEgIik7CisgICAgbGluZWRhdGEuYWRkRWxlbWVudCgiSG93ICIpOworICAgIGdlbmVyYWxJdGVyYXRvclRlc3QobGluZUl0ZXIsIGxpbmVkYXRhKTsKKyAgfQorICAKKyAgLy90ZXN0cyB0aGUgYmVoYXZpb3VyIG9mIGNoYXJhY3RlciBpdGVyYXRpb24gb2YgUkJCSSB3aXRoIGN1c3RvbSBydWxlcworICBwdWJsaWMgdm9pZCBUZXN0Q3VzdG9tUnVsZUJhc2VkQ2hhcmFjdGVySXRlcmF0aW9uKCl7CisgICAgICBsb2dsbigiVGVzdGluZyB0aGUgUkJCSSBieSB1c2luZyBjdXN0b20gcnVsZXMgZm9yIGNoYXJhY3RlciBpdGVyYXRpb24iKTsKKworICAgICAgU3RyaW5nIGNydWxlczI9IiRfaWdub3JlXz1bZV07IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgLy9pZ25vcmUgdGhlIGNoYXJhY3RlciAiZSIKKyAgICAgICAgICAgICAgICAgICAgICIuOyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgCisgICAgICAgICAgICAgICAgICAgICAiJGRldlZvd2VsU2lnbj1bXHUwOTNlLVx1MDk0Y1x1MDk2Mlx1MDk2M107IiAgICsgIC8vZGV2YW5hZ2lyaSB2b3dlbCA9IFx1MDkzZSB0cCBcdTA5NGMgYW5kIFx1MDk2Mi5cdTA5NjMKKyAgICAgICAgICAgICAgICAgICAgICIkZGV2Q29uc29uYW50PVtcdTA5MTUtXHUwOTM5XTsiICAgICAgICAgICAgICAgKyAgLy9kZXZhbmFnaXJpIGNvbnNvbmFudCA9IFx1MDkxNSB0byBcdTA5MzkKKyAgICAgICAgICAgICAgICAgICAgICIkZGV2Q29uc29uYW50JGRldlZvd2VsU2lnbjsiIDsgICAgICAgICAgICAgICAgLy9icmVhayBhdCBhbGwgcGxhY2VzIGV4Y2VwdCB0aGUgIGZvbGxvd2luZyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2RldmFuYWdpcmkgY29uc29uYW50cysgZGV2YW5hZ2lyaSB2b3dlbHNpZ24KKyAgICAgIAorICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBjaGFySXRlclJ1bGVzPW51bGw7CisgICAgICB0cnl7CisgICAgICBjaGFySXRlclJ1bGVzICAgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjcnVsZXMyKTsgCisgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSl7CisgICAgICAgICAgZXJybG4oIkVSUk9SOiBmYWlsZWQgY29uc3RydWN0aW9uIGluIFRlc3RDdXN0b21CYXNlZENoYXJhY3Rlckl0ZXJhdGlvbigpLS0gY3VzdG9tIHJ1bGVzIiArIGlhZS50b1N0cmluZygpKTsKKyAgICAgIH0KKworICAgICAgVmVjdG9yIGNoYXJkYXRhID0gbmV3IFZlY3RvcigpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiSGUiKTsgICAgICAgICAgICAgIC8vaWdub3JlcyAnZScKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoImwiKTsgICAgICAgICAgICAgICAgCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJsIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJvZSIpOyAgICAgICAgICAgICAgLy9pZ25vcmVzICdlJyBoZW5jZSB3cmFwcyBpdCBpbnRvICdvJyBpbnN0ZWFkIG9mIHdyYXBwaW5nIHdpdGgKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDMwMSIpOyAgICAgICAgICAvLydcdTAzMDEnIHRvIGZvcm0gJ2FjdXRlRSAnCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCImZSIpOyAgICAgICAgICAgICAgLy9pZ25vcmVzICdlJyBoZW5jZSB3cmFwcyBpdCBpbnRvICcmJyBpbnN0ZWFkIG9mIHdyYXBwaW5nIHdpdGgKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDMwMyIpOyAgICAgICAgICAvLydcdTAzMDMgdG8gZm9ybSAndGlsZGFFJworICAgICAgLy9kZXZhbmFnaXJpIGNoYXJhY3RlcnMgCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MDYiKTsgICAgICAgICAgLy9kZXZhbmFnaXJpIEFBCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5M2UiKTsgICAgICAgICAgLy9kZXZhbmFnaXJpIHZvd2Vsc2lnbiBBQTotLWJyZWFrcyBhdCBcdTA5MDEgd2hpY2ggaXMgZGV2YW5hZ2lyaSAKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkwMSIpOyAgICAgICAgICAvL2NoYW5kcmEgYmluZGh1IHNpbmNlIGl0IGlzIG5vdCBtZW50aW9uZWQgaW4gdGhlIHJ1bGVzCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MTZcdTA5NDciKTsgICAgLy9kZXZhbmFnaXJpIEtIQSt2b3dlbHNpZ24gRQorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTM4XHUwOTQxIik7ICAgIC8vZGV2YW5hZ2lyaSBTQSt2b3dlbHNpZ24gVSA6IC0gYnJlYWtzIGF0CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MDIiKTsgICAgICAgICAgLy9cdTA5MDIgZGV2YW5hZ2lyaSBhbnVzdmFyYSBzaW5jZSBpdCBpcyBub3QgbWVudGlvbmVkIGluIHRoZSBydWxlcworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUwOTI2Iik7ICAgICAgICAgIC8vZGV2YW5hZ2lyaSBjb25zb25hbnQgREEKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDkzMCIpOyAgICAgICAgICAvL2RldmFuYWdpcmkgY29uc29uYW50IFJBCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTA5MzlcdTA5NGMiKTsgICAgLy9kZXZhbmFnaXJpIEhBK3Zvd2VsIHNpZ24gQUkKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDk2NCIpOyAgICAgICAgICAvL2RldmFuYWdpcmkgZGFuZGEKKyAgICAgIC8vIGRldmFuYWdpcmkgY2hyYWN0ZXJzIGVuZAorICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiQSIpOyAgICAgICAgICAgICAgIC8vYnJlYWtzIGluIGJldHdlZW4gc2luY2UgaXQgaXMgbm90IG1lbnRpb25lZCBpbiB0aGUgcnVsZXMKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDMwMiIpOyAgICAgICAgICAvKiBjaXJjdW1mbGV4QSAqLyAgICAKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoImkiKTsgICAgICAgICAgICAgICAvL2JyZWFrcyBpbiBiZXR3ZWVuIHNpbmNlIG5vdCBtZW50aW9uZWQgaW4gdGhlIHJ1bGVzCisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTAzMDEiKTsgICAgICAgICAgLyogYWN1dGVCZWxvd0kgKi8gIAorICAgICAgLy9SdWxlcyBkb24ndCBzdXBwb3J0IGNvbmpvaW5pbmcgamFtby4uLi4KKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTEwOSIpOyAgICAgICAgICAvL2JyZWFrIGF0IGV2ZXJ5IGNoYXJhY3RlciBzaW5jZSBydWxlcworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTYxIik7ICAgICAgICAgIC8vZG9uJ3Qgc3VwcG9ydCBjb25qb2luaW5nIGphbW8KKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTFiYyIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXHUxMTEyIik7CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcdTExNjEiKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MTFiYyIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiXG4iKTsKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlxyIik7ICAgICAgICAgICAgIC8vZG9lc24ndCBrZWVwIENSTEdGIHRvZ2V0aGVyIHNpbmNlIHJ1bGVzIGRvIG5vdCBtZW50aW9uIGl0CisgICAgICBjaGFyZGF0YS5hZGRFbGVtZW50KCJcbiIpOworICAgICAgY2hhcmRhdGEuYWRkRWxlbWVudCgiUyIpOyAgICAgICAgICAgICAgLy9ncmF2ZVMKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDMwMCIpOyAgICAgICAgIC8vYnJlYWtzIGluIGJldHdlZW4gc2luY2UgaXQgaXMgbm90IG1lbnRpb25lZCBpbiB0aGUgcnVsZXMKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoImkiKTsgICAgICAgICAgICAgIC8vYWN1dGVCZWxvd0kKKyAgICAgIGNoYXJkYXRhLmFkZEVsZW1lbnQoIlx1MDMwMSIpOyAgICAgICAgIC8vYnJlYWtzIGluIGJldHdlZW4gc2luY2UgaXQgaXMgbm90IG1lbnRpb25lZCBpbiB0aGUgcnVsZXMKKworICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdChjaGFySXRlclJ1bGVzLCBjaGFyZGF0YSk7CisKKyAgfSAgICAKKyAgLy90ZXN0cyBjdXN0b20gcnVsZXMgYmFzZWQgd29yZCBpdGVyYXRpb24KKyAgcHVibGljIHZvaWQgVGVzdEN1c3RvbVJ1bGVCYXNlZFdvcmRJdGVyYXRpb24oKXsKKyAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBSQkJJIGJ5IHVzaW5nIGN1c3RvbSBydWxlcyBmb3Igd29yZCBpdGVyYXRpb24iKTsKKyAgICAgIFN0cmluZyB3cnVsZXMxPSIkX2lnbm9yZV89W1s6TW46XVs6TWU6XVs6Q2Y6XV07IiAgICAgICAgICsgLy8gaWdub3JlIG5vbi1zcGFjaW5nIG1hcmtzLCBlbmNsb3NpbmcgbWFya3MsIGFuZCBmb3JtYXQgY2hhcmFjdGVycywKKyAgICAgICAgICAgICAgICAgICAgICAiJGRhbmRhPVtcdTA5NjRcdTA5NjVdOyIgICAgICAgICAgICAgICAgKyAvLyBIaW5kaSBQaHJhc2Ugc2VwZXJhdG9yCisgICAgICAgICAgICAgICAgICAgICAgIiRsZXQ9W1s6TDpdWzpNYzpdXTsiICAgICAgICAgICAgICAgICAgICsgLy8gdXBwZXJjYXNlKEx1KSwgbG93ZXJjYXNlKExsKSwgdGl0bGVjYXNlKEx0KSwgbW9kaWZpZXIoTG0pIGxldHRlcnMsIE1jLWNvbWJpbmluZyBzcGFjZSBtYXJrCisgICAgICAgICAgICAgICAgICAgICAgIiRtaWRfd29yZD1bWzpQZDpdXFxcIlxcXCdcXC5dOyIgICAgICAgICsgLy8gZGFzaGVzLCBxdW90YXRpb24sIGFwb3N0cmFwaGVzLCBwZXJpb2QKKyAgICAgICAgICAgICAgICAgICAgICAiJGxzPVtcblx1MDAwY1x1MjAyOFx1MjAyOV07IiAgICAgICAgICAgKyAvLyBsaW5lIHNlcGFyYXRvcnM6ICBMRiwgRkYsIFBTLCBhbmQgTFMKKyAgICAgICAgICAgICAgICAgICAgICAiJHdzPVtbOlpzOl1cdF07IiAgICAgICAgICAgICAgICAgICAgICAgKyAvLyBhbGwgc3BhY2Ugc2VwYXJhdG9ycyBhbmQgdGhlIHRhYiBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAiJHdvcmQ9KCgkbGV0KygkbWlkX3dvcmQkbGV0KykqKSk7IiAgKyAgCisgICAgICAgICAgICAgICAgICAgICAgIi47IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAvLyBicmVhayBhZnRlciBldmVyeSBjaGFyYWN0ZXIsIHdpdGggdGhlIGZvbGxvd2luZyBleGNlcHRpb25zCisgICAgICAgICAgICAgICAgICAgICAgIiR3b3JkOyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIAorICAgICAgICAgICAgICAgICAgICAgICIkd3MqXHIkbHMkZGFuZGE/OyIgOworCisgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHdvcmRJdGVyUnVsZXM9bnVsbDsKKyAgICAgIHRyeXsKKyAgICAgIHdvcmRJdGVyUnVsZXMgICA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKHdydWxlczEpOyAKKyAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgICBlcnJsbigiRVJST1I6IGZhaWxlZCBjb25zdHJ1Y3Rpb24gaW4gVGVzdEN1c3RvbVJ1bGVCYXNlZFdvcmRJdGVyYXRpb24oKSAtLSBjdXN0b20gcnVsZXMiICsgaWFlLnRvU3RyaW5nKCkpOworICAgICAgfQorCisgICAgICBWZWN0b3Igd29yZGRhdGEgPSBuZXcgVmVjdG9yKCk7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJXcml0ZSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgid29yZHJ1bGVzIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIuIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICAvL3BsYXkgd2l0aCBoaW5kaQorICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTJmXHUwOTM5Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MzlcdTA5M2YiICsgaGFsZk5BICsgIlx1MDkyNlx1MDk0MCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHUwOTM5XHUwOTQ4Iik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5NjQiKTsgICAvL0RhbmRhIGlzIHNpbWlsYXIgdG8gZnVsbCBzdG9wLiBEYW5kYSBmb2xsb3dlZCBieSBhIHNwYWNlCisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCIgIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdTA5MDVcdTA5M2VcdTA5MmEiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlx1MDkzOFx1MDkzZlx1MDkxNlx1MDk0Ylx1MDkxN1x1MDk0NyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiPyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiSXQncyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiJCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiMyIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiMCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiLiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiMSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiMCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgLy8gd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgZ2VuZXJhbEl0ZXJhdG9yVGVzdCh3b3JkSXRlclJ1bGVzLCB3b3JkZGF0YSk7IAorICB9IAorICAvL2FkZHMgZXh0cmEgcnVsZXMgdG8gZGVhbCB3aXRoIGFiYnJldmF0aW9ucyhsaW1pdGVkKSBhbmQgdGVzdCB0aGUgd29yZCBJdGVyYXRpb24KKyAgcHVibGljIHZvaWQgVGVzdEFiYnJSdWxlQmFzZWRXb3JkSXRlcmF0aW9uKCl7CisgICAgICBsb2dsbigiVGVzdGluZyB0aGUgUkJCSSBmb3Igd29yZCBpdGVyYXRpb24gYnkgYWRkaW5nIHJ1bGVzIHRvIHN1cHBvcnQgYWJicmV2aWF0aW9uIik7CisgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiID0oUnVsZUJhc2VkQnJlYWtJdGVyYXRvcilSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICAgICAgdHJ5IHsKKyAgICAgICAgLy8gVGhpcyB0ZXN0IHdvbid0IHdvcmsgd2l0aCB0aGUgbmV3IGJyZWFrIGl0ZXJhdG9ycy4gIENhc3Qgd2lsbCBmYWlsIGluIHRoaXMgY2FzZS4KKyAgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkICBvYmkgPSAgKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkKSByYjsKKyAgICAgIH0KKyAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgIGxvZ2xuKCJUZXN0IHNraXBwZWQuIik7CisgICAgICAgICAgcmV0dXJuOworICAgICAgfQorICAgICAgIAorICAgICAgU3RyaW5nIHdydWxlczI9IiRhYmJyPSgoTXIuKXwoTXJzLil8KE1zLil8KERyLil8KFUuUy4pKTsiICsgLy8gYWJicmV2aWF0aW9ucy4gCisgICAgICAgICAgICAgICAgICAgICByYi50b1N0cmluZygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgICAgICAgICAiKCRhYmJyJHdzKSokd29yZDsiOworICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3b3JkSXRlcj1udWxsOworICAgICAgdHJ5eworICAgICAgd29yZEl0ZXIgICA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKHdydWxlczIpOyAKKyAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgICBlcnJsbigiRVJST1I6IGZhaWxlZCBjb25zdHJ1Y3Rpb24gaW4gVGVzdEFiYnJSdWxlQmFzZWRXb3JkSXRlcmF0aW9uKCkgLS1jdXN0b20gcnVsZXMiICsgaWFlLnRvU3RyaW5nKCkpOworICAgICAgfQorICAgICAgVmVjdG9yIHdvcmRkYXRhID0gbmV3IFZlY3RvcigpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiTXIuIEdlb3JnZSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiaXMiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoImZyb20iKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIlUuUy4gTmF2eSIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiLiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiSGlzIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcbiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiZnJpZW5kIik7CisgICAgICB3b3JkZGF0YS5hZGRFbGVtZW50KCJcdCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiRHIuIFN0ZXZlbiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgibWFycmllZCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiTXMuIEJlbm5ldGgiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiEiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIiAiKTsKKyAgICAgIHdvcmRkYXRhLmFkZEVsZW1lbnQoIk1ycy4gSm9obnNvbiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiXHJcbiIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgicGFpZCIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiICIpOworICAgICAgd29yZGRhdGEuYWRkRWxlbWVudCgiJDIsNDAwLjAwIik7CisgICAgICBnZW5lcmFsSXRlcmF0b3JUZXN0KHdvcmRJdGVyLCB3b3JkZGF0YSk7IAorICB9IAorICAgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgIC8vIGdlbmVyYWwgdGVzdCBzdWJyb3V0aW5lcworICAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgICBwcml2YXRlIHZvaWQgZ2VuZXJhbEl0ZXJhdG9yVGVzdChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmksIFZlY3RvciBleHBlY3RlZFJlc3VsdCl7CisgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgU3RyaW5nIHRleHQ7CisgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGV4cGVjdGVkUmVzdWx0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgdGV4dCA9IChTdHJpbmcpZXhwZWN0ZWRSZXN1bHQuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQodGV4dCk7CisgICAgICAgICB9CisgICAgICAgICB0ZXh0ID0gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgICBpZiAocmJiaSA9PSBudWxsKSB7CisgICAgICAgICAgICAgZXJybG4oIm51bGwgaXRlcmF0b3IsIHRlc3Qgc2tpcHBlZC4iKTsKKyAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICB9CisKKyAgICAgICAgIHJiYmkuc2V0VGV4dCh0ZXh0KTsKKworICAgICAgICAgVmVjdG9yIG5leHRSZXN1bHRzID0gX3Rlc3RGaXJzdEFuZE5leHQocmJiaSwgdGV4dCk7CisgICAgICAgICBWZWN0b3IgcHJldmlvdXNSZXN1bHRzID0gX3Rlc3RMYXN0QW5kUHJldmlvdXMocmJiaSwgdGV4dCk7CisKKyAgICAgICAgIGxvZ2xuKCJjb21wYXJpbmcgZm9yd2FyZCBhbmQgYmFja3dhcmQuLi4iKTsKKyAgICAgICAgIGludCBlcnJzID0gZ2V0RXJyb3JDb3VudCgpOworICAgICAgICAgY29tcGFyZUZyYWdtZW50TGlzdHMoImZvcndhcmQgaXRlcmF0aW9uIiwgImJhY2t3YXJkIGl0ZXJhdGlvbiIsIG5leHRSZXN1bHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzUmVzdWx0cyk7CisgICAgICAgICBpZiAoZ2V0RXJyb3JDb3VudCgpID09IGVycnMpIHsKKyAgICAgICAgICAgICBsb2dsbigiY29tcGFyaW5nIGV4cGVjdGVkIGFuZCBhY3R1YWwuLi4iKTsKKyAgICAgICAgICAgICBjb21wYXJlRnJhZ21lbnRMaXN0cygiZXhwZWN0ZWQgcmVzdWx0IiwgImFjdHVhbCByZXN1bHQiLCBleHBlY3RlZFJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFJlc3VsdHMpOworICAgICAgICAgfQorCisgICAgICAgIGludFtdIGJvdW5kYXJpZXMgPSBuZXcgaW50W2V4cGVjdGVkUmVzdWx0LnNpemUoKSArIDNdOworICAgICAgICBib3VuZGFyaWVzWzBdID0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FOworICAgICAgICBib3VuZGFyaWVzWzFdID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBleHBlY3RlZFJlc3VsdC5zaXplKCk7IGkrKykKKyAgICAgICAgIGJvdW5kYXJpZXNbaSArIDJdID0gYm91bmRhcmllc1tpICsgMV0gKyAoKFN0cmluZylleHBlY3RlZFJlc3VsdC5lbGVtZW50QXQoaSkpLmxlbmd0aCgpOworICAgICAgCisgICAgICAgIGJvdW5kYXJpZXNbYm91bmRhcmllcy5sZW5ndGggLSAxXSA9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAgICAgIAorICAgICAgICBfdGVzdEZvbGxvd2luZyhyYmJpLCB0ZXh0LCBib3VuZGFyaWVzKTsKKyAgICAgICAgX3Rlc3RQcmVjZWRpbmcocmJiaSwgdGV4dCwgYm91bmRhcmllcyk7CisgICAgICAgIF90ZXN0SXNCb3VuZGFyeShyYmJpLCB0ZXh0LCBib3VuZGFyaWVzKTsKKworICAgICAgICBkb011bHRpcGxlU2VsZWN0aW9uVGVzdChyYmJpLCB0ZXh0KTsKKyAgICAgfQorCisgICAgIHByaXZhdGUgVmVjdG9yIF90ZXN0Rmlyc3RBbmROZXh0KFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcmJiaSwgU3RyaW5nIHRleHQpIHsKKyAgICAgICAgIGludCBwID0gcmJiaS5maXJzdCgpOworICAgICAgICAgaW50IGxhc3RQID0gcDsKKyAgICAgICAgIFZlY3RvciByZXN1bHQgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgIGlmIChwICE9IDApCisgICAgICAgICAgICAgZXJybG4oImZpcnN0KCkgcmV0dXJuZWQgIiArIHAgKyAiIGluc3RlYWQgb2YgMCIpOworICAgICAgICAgd2hpbGUgKHAgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgcCA9IHJiYmkubmV4dCgpOworICAgICAgICAgICAgIGlmIChwICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICBpZiAocCA8PSBsYXN0UCkKKyAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJuZXh0KCkgZmFpbGVkIHRvIG1vdmUgZm9yd2FyZDogbmV4dCgpIG9uIHBvc2l0aW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxhc3RQICsgIiB5aWVsZGVkICIgKyBwKTsKKworICAgICAgICAgICAgICAgICByZXN1bHQuYWRkRWxlbWVudCh0ZXh0LnN1YnN0cmluZyhsYXN0UCwgcCkpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgaWYgKGxhc3RQICE9IHRleHQubGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgICAgICBlcnJsbigibmV4dCgpIHJldHVybmVkIERPTkUgcHJlbWF0dXJlbHk6IG9mZnNldCB3YXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGFzdFAgKyAiIGluc3RlYWQgb2YgIiArIHRleHQubGVuZ3RoKCkpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBsYXN0UCA9IHA7CisgICAgICAgICB9CisgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICB9CisKKyAgICAgcHJpdmF0ZSBWZWN0b3IgX3Rlc3RMYXN0QW5kUHJldmlvdXMoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpLCBTdHJpbmcgdGV4dCkgeworICAgICAgICAgaW50IHAgPSByYmJpLmxhc3QoKTsKKyAgICAgICAgIGludCBsYXN0UCA9IHA7CisgICAgICAgICBWZWN0b3IgcmVzdWx0ID0gbmV3IFZlY3RvcigpOworCisgICAgICAgICBpZiAocCAhPSB0ZXh0Lmxlbmd0aCgpKQorICAgICAgICAgICAgIGVycmxuKCJsYXN0KCkgcmV0dXJuZWQgIiArIHAgKyAiIGluc3RlYWQgb2YgIiArIHRleHQubGVuZ3RoKCkpOworICAgICAgICAgd2hpbGUgKHAgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgcCA9IHJiYmkucHJldmlvdXMoKTsKKyAgICAgICAgICAgICBpZiAocCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICAgaWYgKHAgPj0gbGFzdFApCisgICAgICAgICAgICAgICAgICAgICBlcnJsbigicHJldmlvdXMoKSBmYWlsZWQgdG8gbW92ZSBiYWNrd2FyZDogcHJldmlvdXMoKSBvbiBwb3NpdGlvbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBsYXN0UCArICIgeWllbGRlZCAiICsgcCk7CisKKyAgICAgICAgICAgICAgICAgcmVzdWx0Lmluc2VydEVsZW1lbnRBdCh0ZXh0LnN1YnN0cmluZyhwLCBsYXN0UCksIDApOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgaWYgKGxhc3RQICE9IDApCisgICAgICAgICAgICAgICAgICAgICBlcnJsbigicHJldmlvdXMoKSByZXR1cm5lZCBET05FIHByZW1hdHVyZWx5OiBvZmZzZXQgd2FzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxhc3RQICsgIiBpbnN0ZWFkIG9mIDAiKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgbGFzdFAgPSBwOworICAgICAgICAgfQorICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgfQorCisgICAgIHByaXZhdGUgdm9pZCBjb21wYXJlRnJhZ21lbnRMaXN0cyhTdHJpbmcgZjFOYW1lLCBTdHJpbmcgZjJOYW1lLCBWZWN0b3IgZjEsIFZlY3RvciBmMikgeworICAgICAgICAgaW50IHAxID0gMDsKKyAgICAgICAgIGludCBwMiA9IDA7CisgICAgICAgICBTdHJpbmcgczE7CisgICAgICAgICBTdHJpbmcgczI7CisgICAgICAgICBpbnQgdDEgPSAwOworICAgICAgICAgaW50IHQyID0gMDsKKworICAgICAgICAgd2hpbGUgKHAxIDwgZjEuc2l6ZSgpICYmIHAyIDwgZjIuc2l6ZSgpKSB7CisgICAgICAgICAgICAgczEgPSAoU3RyaW5nKWYxLmVsZW1lbnRBdChwMSk7CisgICAgICAgICAgICAgczIgPSAoU3RyaW5nKWYyLmVsZW1lbnRBdChwMik7CisgICAgICAgICAgICAgdDEgKz0gczEubGVuZ3RoKCk7CisgICAgICAgICAgICAgdDIgKz0gczIubGVuZ3RoKCk7CisKKyAgICAgICAgICAgICBpZiAoczEuZXF1YWxzKHMyKSkgeworICAgICAgICAgICAgICAgICBkZWJ1Z0xvZ2xuKCIgICA+IiArIHMxICsgIjwiKTsKKyAgICAgICAgICAgICAgICAgKytwMTsKKyAgICAgICAgICAgICAgICAgKytwMjsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgIGludCB0ZW1wVDEgPSB0MTsKKyAgICAgICAgICAgICAgICAgaW50IHRlbXBUMiA9IHQyOworICAgICAgICAgICAgICAgICBpbnQgdGVtcFAxID0gcDE7CisgICAgICAgICAgICAgICAgIGludCB0ZW1wUDIgPSBwMjsKKworICAgICAgICAgICAgICAgICB3aGlsZSAodGVtcFQxICE9IHRlbXBUMiAmJiB0ZW1wUDEgPCBmMS5zaXplKCkgJiYgdGVtcFAyIDwgZjIuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGVtcFQxIDwgdGVtcFQyICYmIHRlbXBQMSA8IGYxLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBUMSArPSAoKFN0cmluZylmMS5lbGVtZW50QXQodGVtcFAxKSkubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgKyt0ZW1wUDE7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGVtcFQyIDwgdGVtcFQxICYmIHRlbXBQMiA8IGYyLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBUMiArPSAoKFN0cmluZylmMi5lbGVtZW50QXQodGVtcFAyKSkubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgKyt0ZW1wUDI7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgbG9nbG4oIioqKiAiICsgZjFOYW1lICsgIiBoYXM6Iik7CisgICAgICAgICAgICAgICAgIHdoaWxlIChwMSA8PSB0ZW1wUDEgJiYgcDEgPCBmMS5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgIHMxID0gKFN0cmluZylmMS5lbGVtZW50QXQocDEpOworICAgICAgICAgICAgICAgICAgICAgdDEgKz0gczEubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICBkZWJ1Z0xvZ2xuKCIgKioqID4iICsgczEgKyAiPCIpOworICAgICAgICAgICAgICAgICAgICAgKytwMTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBsb2dsbigiKioqKiogIiArIGYyTmFtZSArICIgaGFzOiIpOworICAgICAgICAgICAgICAgICB3aGlsZSAocDIgPD0gdGVtcFAyICYmIHAyIDwgZjIuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICBzMiA9IChTdHJpbmcpZjIuZWxlbWVudEF0KHAyKTsKKyAgICAgICAgICAgICAgICAgICAgIHQyICs9IHMyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgZGVidWdMb2dsbigiICoqKioqID4iICsgczIgKyAiPCIpOworICAgICAgICAgICAgICAgICAgICAgKytwMjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBlcnJsbigiRGlzY3JlcGFuY3kgYmV0d2VlbiAiICsgZjFOYW1lICsgIiBhbmQgIiArIGYyTmFtZSk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RGb2xsb3dpbmcoUnVsZUJhc2VkQnJlYWtJdGVyYXRvciByYmJpLCBTdHJpbmcgdGV4dCwgaW50W10gYm91bmRhcmllcykgeworICAgICAgIGxvZ2xuKCJ0ZXN0Rm9sbG93aW5nKCk6Iik7CisgICAgICAgaW50IHAgPSAyOworICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPD0gdGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgIGlmIChpID09IGJvdW5kYXJpZXNbcF0pCisgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgIGludCBiID0gcmJiaS5mb2xsb3dpbmcoaSk7CisgICAgICAgICAgIGxvZ2xuKCJyYmJpLmZvbGxvd2luZygiICsgaSArICIpIC0+ICIgKyBiKTsKKyAgICAgICAgICAgaWYgKGIgIT0gYm91bmRhcmllc1twXSkKKyAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBmb2xsb3dpbmcoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCAiICsgYm91bmRhcmllc1twXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiwgZ290ICIgKyBiKTsKKyAgICAgICB9CisgICB9CisKKyAgIHByaXZhdGUgdm9pZCBfdGVzdFByZWNlZGluZyhSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmksIFN0cmluZyB0ZXh0LCBpbnRbXSBib3VuZGFyaWVzKSB7CisgICAgICAgbG9nbG4oInRlc3RQcmVjZWRpbmcoKToiKTsKKyAgICAgICBpbnQgcCA9IDA7CisgICAgICAgZm9yKGludCBpID0gMDsgaSA8PSB0ZXh0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgaW50IGIgPSByYmJpLnByZWNlZGluZyhpKTsKKyAgICAgICAgICAgbG9nbG4oInJiYmkucHJlY2VkaW5nKCIgKyBpICsgIikgLT4gIiArIGIpOworICAgICAgICAgICBpZiAoYiAhPSBib3VuZGFyaWVzW3BdKQorICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIHByZWNlZGluZygpIGZvciAiICsgaSArICI6IGV4cGVjdGVkICIgKyBib3VuZGFyaWVzW3BdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIsIGdvdCAiICsgYik7CisgICAgICAgICAgIGlmIChpID09IGJvdW5kYXJpZXNbcCArIDFdKQorICAgICAgICAgICAgICAgKytwOworICAgICAgIH0KKyAgIH0KKworICAgcHJpdmF0ZSB2b2lkIF90ZXN0SXNCb3VuZGFyeShSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJiYmksIFN0cmluZyB0ZXh0LCBpbnRbXSBib3VuZGFyaWVzKSB7CisgICAgICAgbG9nbG4oInRlc3RJc0JvdW5kYXJ5KCk6Iik7CisgICAgICAgaW50IHAgPSAxOworICAgICAgIGJvb2xlYW4gaXNCOworICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPD0gdGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgIGlzQiA9IHJiYmkuaXNCb3VuZGFyeShpKTsKKyAgICAgICAgICAgbG9nbG4oInJiYmkuaXNCb3VuZGFyeSgiICsgaSArICIpIC0+ICIgKyBpc0IpOworICAgICAgICAgICBpZihpID09IGJvdW5kYXJpZXNbcF0pIHsKKyAgICAgICAgICAgICAgIGlmICghaXNCKQorICAgICAgICAgICAgICAgICAgIGVycmxuKCJXcm9uZyByZXN1bHQgZnJvbSBpc0JvdW5kYXJ5KCkgZm9yICIgKyBpICsgIjogZXhwZWN0ZWQgdHJ1ZSwgZ290IGZhbHNlIik7CisgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICBpZihpc0IpCisgICAgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIHJlc3VsdCBmcm9tIGlzQm91bmRhcnkoKSBmb3IgIiArIGkgKyAiOiBleHBlY3RlZCBmYWxzZSwgZ290IHRydWUiKTsKKyAgICAgICAgICAgfQorICAgICAgIH0KKyAgIH0KKyAgIHByaXZhdGUgdm9pZCBkb011bHRpcGxlU2VsZWN0aW9uVGVzdChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGl0ZXJhdG9yLCBTdHJpbmcgdGVzdFRleHQpCisgICB7CisgICAgICAgbG9nbG4oIk11bHRpcGxlIHNlbGVjdGlvbiB0ZXN0Li4uIik7CisgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB0ZXN0SXRlcmF0b3IgPSAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcilpdGVyYXRvci5jbG9uZSgpOworICAgICAgIGludCBvZmZzZXQgPSBpdGVyYXRvci5maXJzdCgpOworICAgICAgIGludCB0ZXN0T2Zmc2V0OworICAgICAgIGludCBjb3VudCA9IDA7CisKKyAgICAgICBkbyB7CisgICAgICAgICAgIHRlc3RPZmZzZXQgPSB0ZXN0SXRlcmF0b3IuZmlyc3QoKTsKKyAgICAgICAgICAgdGVzdE9mZnNldCA9IHRlc3RJdGVyYXRvci5uZXh0KGNvdW50KTsKKyAgICAgICAgICAgbG9nbG4oIm5leHQoIiArIGNvdW50ICsgIikgLT4gIiArIHRlc3RPZmZzZXQpOworICAgICAgICAgICBpZiAob2Zmc2V0ICE9IHRlc3RPZmZzZXQpCisgICAgICAgICAgICAgICBlcnJsbigibmV4dChuKSBhbmQgbmV4dCgpIG5vdCByZXR1cm5pbmcgY29uc2lzdGVudCByZXN1bHRzOiBmb3Igc3RlcCAiICsgY291bnQgKyAiLCBuZXh0KG4pIHJldHVybmVkICIgKyB0ZXN0T2Zmc2V0ICsgIiBhbmQgbmV4dCgpIGhhZCAiICsgb2Zmc2V0KTsKKworICAgICAgICAgICBpZiAob2Zmc2V0ICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgIG9mZnNldCA9IGl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgICAgfQorICAgICAgIH0gd2hpbGUgKG9mZnNldCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpOworCisgICAgICAgLy8gbm93IGRvIGl0IGJhY2t3YXJkcy4uLgorICAgICAgIG9mZnNldCA9IGl0ZXJhdG9yLmxhc3QoKTsKKyAgICAgICBjb3VudCA9IDA7CisKKyAgICAgICBkbyB7CisgICAgICAgICAgIHRlc3RPZmZzZXQgPSB0ZXN0SXRlcmF0b3IubGFzdCgpOworICAgICAgICAgICB0ZXN0T2Zmc2V0ID0gdGVzdEl0ZXJhdG9yLm5leHQoY291bnQpOworICAgICAgICAgICBsb2dsbigibmV4dCgiICsgY291bnQgKyAiKSAtPiAiICsgdGVzdE9mZnNldCk7CisgICAgICAgICAgIGlmIChvZmZzZXQgIT0gdGVzdE9mZnNldCkKKyAgICAgICAgICAgICAgIGVycmxuKCJuZXh0KG4pIGFuZCBuZXh0KCkgbm90IHJldHVybmluZyBjb25zaXN0ZW50IHJlc3VsdHM6IGZvciBzdGVwICIgKyBjb3VudCArICIsIG5leHQobikgcmV0dXJuZWQgIiArIHRlc3RPZmZzZXQgKyAiIGFuZCBuZXh0KCkgaGFkICIgKyBvZmZzZXQpOworCisgICAgICAgICAgIGlmIChvZmZzZXQgIT0gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICBjb3VudC0tOworICAgICAgICAgICAgICAgb2Zmc2V0ID0gaXRlcmF0b3IucHJldmlvdXMoKTsKKyAgICAgICAgICAgfQorICAgICAgIH0gd2hpbGUgKG9mZnNldCAhPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkRPTkUpOworICAgfQorCisgICBwcml2YXRlIHZvaWQgZGVidWdMb2dsbihTdHJpbmcgcykgeworICAgICAgICBmaW5hbCBTdHJpbmcgemVyb3MgPSAiMDAwMCI7CisgICAgICAgIFN0cmluZyB0ZW1wOworICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAnICcgJiYgYyA8ICdcdTAwN2YnKQorICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoYyk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICB0ZW1wID0gSW50ZWdlci50b0hleFN0cmluZygoaW50KWMpOworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoemVyb3Muc3Vic3RyaW5nKDAsIDQgLSB0ZW1wLmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCh0ZW1wKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgbG9nbG4ob3V0LnRvU3RyaW5nKCkpOworICAgIH0KKyAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJVGVzdEV4dGVuZGVkLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJVGVzdEV4dGVuZGVkLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI1ZDFjMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1JCQklUZXN0RXh0ZW5kZWQuamF2YQpAQCAtMCwwICsxLDQ3NiBAQAorLyoKKyAqIENyZWF0ZWQgb24gTWF5IDUsIDIwMDQKKyAqIAorICogQ29weXJpZ2h0IChDKSAyMDA0IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCBmaWxlIGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIEdlbmVyYXRpb24gLSBDb2RlIGFuZCBDb21tZW50cworICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnJiYmk7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisKKy8qKgorICogQGF1dGhvciBhbmR5CisgKgorICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdyAtIFByZWZlcmVuY2VzIC0gSmF2YSAtIENvZGUgR2VuZXJhdGlvbiAtIENvZGUgYW5kIENvbW1lbnRzCisgKi8KK3B1YmxpYyBjbGFzcyBSQkJJVGVzdEV4dGVuZGVkIGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBSQkJJVGVzdEV4dGVuZGVkKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIAorICAgIAorICAgIHB1YmxpYyBSQkJJVGVzdEV4dGVuZGVkKCkgeyAKKyAgICB9CisKKworCitzdGF0aWMgY2xhc3MgVGVzdFBhcmFtcyB7CisgICAgQnJlYWtJdGVyYXRvciAgIGJpOworICAgIFN0cmluZ0J1ZmZlciAgICBkYXRhVG9CcmVhayAgICA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICBpbnRbXSAgICAgICAgICAgZXhwZWN0ZWRCcmVha3MgPSBuZXcgaW50WzEwMDBdOworICAgIGludFtdICAgICAgICAgICBzcmNMaW5lICAgICAgICA9IG5ldyBpbnRbMTAwMF07CisgICAgaW50W10gICAgICAgICAgIHNyY0NvbCAgICAgICAgID0gbmV3IGludFsxMDAwXTsKK307CisKKworcHVibGljIHZvaWQgVGVzdEV4dGVuZGVkKCkgeworCisgICAgU3RyaW5nICAgICAgICAgICAgIHJ1bGVzOworICAgIFRlc3RQYXJhbXMgICAgIHRwID0gbmV3IFRlc3RQYXJhbXMoKTsKKworCisgICAgLy8KKyAgICAvLyAgT3BlbiBhbmQgcmVhZCB0aGUgdGVzdCBkYXRhIGZpbGUuCisgICAgLy8KKyAgICBJbnB1dFN0cmVhbVJlYWRlciBpc3IgPSBudWxsOworICAgIFN0cmluZ0J1ZmZlciAgdGVzdEZpbGVCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgdHJ5IHsKKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBSQkJJVGVzdEV4dGVuZGVkLmNsYXNzLmdldFJlc291cmNlQXNTdHJlYW0oInJiYml0c3QudHh0Iik7CisgICAgICAgIGlmIChpcyA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IG9wZW4gdGVzdCBkYXRhIGZpbGUgcmJiaXRzdC50eHQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpc3IgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMsICJVVEYtOCIpOyAgICAgICAgICAgCisgICAgICAgIGludCBjOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBjID0gaXNyLnJlYWQoKTsKKyAgICAgICAgICAgIGlmIChjIDwgMCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIGlmIChjPT0weEZFRkYgJiYgY291bnQ9PTEpIHsKKyAgICAgICAgICAgICAgIC8vIEJPTSBpbiB0aGUgdGVzdCBkYXRhIGZpbGUuICBEaXNjYXJkIGl0LgorICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgIAorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHRlc3RGaWxlQnVmLCBjKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgIGVycmxuKGUudG9TdHJpbmcoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgU3RyaW5nIHRlc3RTdHJpbmcgPSB0ZXN0RmlsZUJ1Zi50b1N0cmluZygpOworICAgIAorCisgICAgZmluYWwgaW50ICBQQVJTRV9DT01NRU5UID0gMTsKKyAgICBmaW5hbCBpbnQgIFBBUlNFX1RBRyAgICAgPSAyOworICAgIGZpbmFsIGludCAgUEFSU0VfREFUQSAgICA9IDM7CisgICAgZmluYWwgaW50ICBQQVJTRV9OVU0gICAgID0gNDsKKworICAgIGludCBwYXJzZVN0YXRlID0gUEFSU0VfVEFHOworCisgICAgaW50IHNhdmVkU3RhdGUgPSBQQVJTRV9UQUc7CisKKyAgICBmaW5hbCBjaGFyIENIX0xGICAgICAgICA9IDB4MGE7CisgICAgZmluYWwgY2hhciBDSF9DUiAgICAgICAgPSAweDBkOworICAgIGZpbmFsIGNoYXIgQ0hfSEFTSCAgICAgID0gMHgyMzsKKyAgICAvKnN0YXRpYyBjb25zdCBVQ2hhciBDSF9QRVJJT0QgICAgPSAweDJlOyovCisgICAgZmluYWwgY2hhciBDSF9MVCAgICAgICAgPSAweDNjOworICAgIGZpbmFsIGNoYXIgQ0hfR1QgICAgICAgID0gMHgzZTsKKyAgICBmaW5hbCBjaGFyIENIX0JBQ0tTTEFTSCA9IDB4NWM7CisgICAgZmluYWwgY2hhciBDSF9CVUxMRVQgICAgPSAweDIwMjI7CisKKyAgICBpbnQgICAgbGluZU51bSAgPSAxOworICAgIGludCAgICBjb2xTdGFydCA9IDA7CisgICAgaW50ICAgIGNvbHVtbiAgID0gMDsKKyAgICBpbnQgICAgY2hhcklkeCAgPSAwOworICAgIGludCAgICBpOworCisgICAgaW50ICAgIHRhZ1ZhbHVlID0gMDsgICAgICAgLy8gVGhlIG51bWVyaWMgdmFsdWUgb2YgYSA8bm5uPiB0YWcuCisgICAgaW50ICAgIGxlbiA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisKKyAgICBmb3IgKGNoYXJJZHggPSAwOyBjaGFySWR4IDwgbGVuOyApIHsKKyAgICAgICAgaW50ICBjID0gVVRGMTYuY2hhckF0KHRlc3RTdHJpbmcsIGNoYXJJZHgpOworICAgICAgICBjaGFySWR4Kys7CisgICAgICAgIGlmIChjID09IENIX0NSICYmIGNoYXJJZHg8bGVuICYmIHRlc3RTdHJpbmcuY2hhckF0KGNoYXJJZHgpID09IENIX0xGKSB7CisgICAgICAgICAgICAvLyB0cmVhdCBDUkxGIGFzIGEgdW5pdAorICAgICAgICAgICAgYyA9IENIX0xGOworICAgICAgICAgICAgY2hhcklkeCsrOworICAgICAgICB9CisgICAgICAgIGlmIChjID09IENIX0xGIHx8IGMgPT0gQ0hfQ1IpIHsKKyAgICAgICAgICAgIGxpbmVOdW0rKzsKKyAgICAgICAgICAgIGNvbFN0YXJ0ID0gY2hhcklkeDsKKyAgICAgICAgfQorICAgICAgICBjb2x1bW4gPSBjaGFySWR4IC0gY29sU3RhcnQgKyAxOworCisgICAgICAgIHN3aXRjaCAocGFyc2VTdGF0ZSkgeworICAgICAgICBjYXNlIFBBUlNFX0NPTU1FTlQ6CisgICAgICAgICAgICBpZiAoYyA9PSAweDBhIHx8IGMgPT0gMHgwZCkgeworICAgICAgICAgICAgICAgIHBhcnNlU3RhdGUgPSBzYXZlZFN0YXRlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBQQVJTRV9UQUc6CisgICAgICAgICAgICB7CisgICAgICAgICAgICBpZiAoYyA9PSBDSF9IQVNIKSB7CisgICAgICAgICAgICAgICAgcGFyc2VTdGF0ZSA9IFBBUlNFX0NPTU1FTlQ7CisgICAgICAgICAgICAgICAgc2F2ZWRTdGF0ZSA9IFBBUlNFX1RBRzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShjKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICBpZiAodGVzdFN0cmluZy5zdGFydHNXaXRoKCI8d29yZD4iLCBjaGFySWR4LTEpKSB7CisgICAgICAgICAgICAgICAgdHAuYmkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICAgICAgICAgIGNoYXJJZHggKz0gNTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLnN0YXJ0c1dpdGgoIjxjaGFyPiIsIGNoYXJJZHgtMSkpIHsKKyAgICAgICAgICAgICAgICB0cC5iaSA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgICAgICAgICBjaGFySWR4ICs9IDU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGVzdFN0cmluZy5zdGFydHNXaXRoKCI8bGluZT4iLCBjaGFySWR4LTEpKSB7CisgICAgICAgICAgICAgICAgdHAuYmkgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICAgICAgICAgIGNoYXJJZHggKz0gNTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLnN0YXJ0c1dpdGgoIjxzZW50PiIsIGNoYXJJZHgtMSkpIHsKKyAgICAgICAgICAgICAgICB0cC5iaSA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICAgICAgICAgIGNoYXJJZHggKz0gNTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLnN0YXJ0c1dpdGgoIjx0aXRsZT4iLCBjaGFySWR4LTEpKSB7CisgICAgICAgICAgICAgICAgdHAuYmkgPSBCcmVha0l0ZXJhdG9yLmdldFRpdGxlSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgICAgICAgICBjaGFySWR4ICs9IDY7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGVzdFN0cmluZy5zdGFydHNXaXRoKCI8ZGF0YT4iLCBjaGFySWR4LTEpKSB7CisgICAgICAgICAgICAgICAgcGFyc2VTdGF0ZSA9IFBBUlNFX0RBVEE7CisgICAgICAgICAgICAgICAgY2hhcklkeCArPSA1OworICAgICAgICAgICAgICAgIHRwLmRhdGFUb0JyZWFrLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBBcnJheXMuZmlsbCh0cC5leHBlY3RlZEJyZWFrcywgMCk7CisgICAgICAgICAgICAgICAgQXJyYXlzLmZpbGwodHAuc3JjQ29sLCAwKTsKKyAgICAgICAgICAgICAgICBBcnJheXMuZmlsbCh0cC5zcmNMaW5lLCAwKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZXJybG4oImxpbmUiICsgbGluZU51bSArICI6IFRhZyBleHBlY3RlZCBpbiB0ZXN0IGZpbGUuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAvL3BhcnNlU3RhdGUgPSBQQVJTRV9DT01NRU5UOworICAgICAgICAgICAgLy9zYXZlZFN0YXRlID0gUEFSU0VfREFUQTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGJyZWFrOyAgIC8vIFRPRE86IGRvbid0IHN0b3Agb24gZXJyb3JzCisKKyAgICAgICAgY2FzZSBQQVJTRV9EQVRBOgorICAgICAgICAgICAgaWYgKGMgPT0gQ0hfQlVMTEVUKSB7CisgICAgICAgICAgICAgICAgaW50ICBicmVha0lkeCA9IHRwLmRhdGFUb0JyZWFrLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIHRwLmV4cGVjdGVkQnJlYWtzW2JyZWFrSWR4XSA9IC0xOworICAgICAgICAgICAgICAgIHRwLnNyY0xpbmVbYnJlYWtJZHhdICAgICAgICA9IGxpbmVOdW07CisgICAgICAgICAgICAgICAgdHAuc3JjQ29sW2JyZWFrSWR4XSAgICAgICAgID0gY29sdW1uOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGVzdFN0cmluZy5zdGFydHNXaXRoKCI8L2RhdGE+IiwgY2hhcklkeC0xKSkgIHsKKyAgICAgICAgICAgICAgICAvLyBBZGQgZmluYWwgZW50cnkgdG8gbWFwcGluZ3MgZnJvbSBicmVhayBsb2NhdGlvbiB0byBzb3VyY2UgZmlsZSBwb3NpdGlvbi4KKyAgICAgICAgICAgICAgICAvLyAgTmVlZCBvbmUgZXh0cmEgYmVjYXVzZSBsYXN0IGJyZWFrIHBvc2l0aW9uIHJldHVybmVkIGlzIGFmdGVyIHRoZQorICAgICAgICAgICAgICAgIC8vICAgIGxhc3QgY2hhciBpbiB0aGUgZGF0YSwgbm90IGF0IHRoZSBsYXN0IGNoYXIuCisgICAgICAgICAgICAgICAgaW50IGlkeCA9IHRwLmRhdGFUb0JyZWFrLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIHRwLnNyY0xpbmVbaWR4XSA9IGxpbmVOdW07CisgICAgICAgICAgICAgICAgdHAuc3JjQ29sW2lkeF0gID0gY29sdW1uOworCisgICAgICAgICAgICAgICAgcGFyc2VTdGF0ZSA9IFBBUlNFX1RBRzsKKyAgICAgICAgICAgICAgICBjaGFySWR4ICs9IDc7CisKKyAgICAgICAgICAgICAgICAvLyBSVU4gVEhFIFRFU1QhCisgICAgICAgICAgICAgICAgZXhlY3V0ZVRlc3QodHApOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLnN0YXJ0c1dpdGgoIlxcTnsiLCBjaGFySWR4LTEpKSB7CisgICAgICAgICAgICAgICBpbnQgbmFtZUVuZElkeCA9IHRlc3RTdHJpbmcuaW5kZXhPZignfScsIGNoYXJJZHgpOworICAgICAgICAgICAgICAgaWYgKG5hbWVFbmRJZHggPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICBlcnJsbigiZm9vIik7ICAvLyBUT0RPOgorICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIE5hbWVkIGNoYXJhY3RlciwgZS5nLiBcTntDT01CSU5JTkcgR1JBVkUgQUNDRU5UfQorICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgY29kZSBwb2ludCBmcm9tIHRoZSBuYW1lIGFuZCBpbnNlcnQgaXQgaW50byB0aGUgdGVzdCBkYXRhLgorICAgICAgICAgICAgICAgIFN0cmluZyBjaGFyTmFtZSA9IHRlc3RTdHJpbmcuc3Vic3RyaW5nKGNoYXJJZHgrMiwgbmFtZUVuZElkeCk7CisgICAgICAgICAgICAgICAgYyA9IFVDaGFyYWN0ZXIuZ2V0Q2hhckZyb21OYW1lKGNoYXJOYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgaW4gbmFtZWQgY2hhcmFjdGVyIGluIHRlc3QgZmlsZSBhdCBsaW5lICIgKyBsaW5lTnVtICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBjb2wgIiArIGNvbHVtbik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gTmFtZWQgY29kZSBwb2ludCB3YXMgcmVjb2duaXplZC4gIEluc2VydCBpdAorICAgICAgICAgICAgICAgICAgICAvLyAgIGludG8gdGhlIHRlc3QgZGF0YS4KKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHRwLmRhdGFUb0JyZWFrLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gdHAuZGF0YVRvQnJlYWsubGVuZ3RoKCktMTsgaT49MCAmJiB0cC5zcmNMaW5lW2ldPT0wOyBpLS0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRwLnNyY0xpbmVbaV0gPSBsaW5lTnVtOworICAgICAgICAgICAgICAgICAgICAgICAgdHAuc3JjQ29sW2ldICA9IGNvbHVtbjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChuYW1lRW5kSWR4ID4gY2hhcklkeCkgeworICAgICAgICAgICAgICAgICAgICBjaGFySWR4ID0gbmFtZUVuZElkeCsxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRlc3RTdHJpbmcuc3RhcnRzV2l0aCgiPD4iLCBjaGFySWR4LTEpKSB7CisgICAgICAgICAgICAgICAgY2hhcklkeCsrOworICAgICAgICAgICAgICAgIGludCAgYnJlYWtJZHggPSB0cC5kYXRhVG9CcmVhay5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB0cC5leHBlY3RlZEJyZWFrc1ticmVha0lkeF0gPSAtMTsKKyAgICAgICAgICAgICAgICB0cC5zcmNMaW5lW2JyZWFrSWR4XSAgICAgICAgPSBsaW5lTnVtOworICAgICAgICAgICAgICAgIHRwLnNyY0NvbFticmVha0lkeF0gICAgICAgICA9IGNvbHVtbjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGMgPT0gQ0hfTFQpIHsKKyAgICAgICAgICAgICAgICB0YWdWYWx1ZSAgID0gMDsKKyAgICAgICAgICAgICAgICBwYXJzZVN0YXRlID0gUEFSU0VfTlVNOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoYyA9PSBDSF9IQVNIICYmIGNvbHVtbj09MykgeyAgIC8vIFRPRE86ICB3aHkgaXMgY29sdW1uIG9mZiBzbyBmYXI/CisgICAgICAgICAgICAgICAgcGFyc2VTdGF0ZSA9IFBBUlNFX0NPTU1FTlQ7CisgICAgICAgICAgICAgICAgc2F2ZWRTdGF0ZSA9IFBBUlNFX0RBVEE7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjID09IENIX0JBQ0tTTEFTSCkgeworICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvciBcIGF0IGVuZCBvZiBsaW5lLCBhIGxpbmUgY29udGludWF0aW9uLgorICAgICAgICAgICAgICAgIC8vICAgICBBZHZhbmNlIG92ZXIgKGRpc2NhcmQpIHRoZSBuZXdsaW5lCisgICAgICAgICAgICAgICAgaW50IGNwID0gVVRGMTYuY2hhckF0KHRlc3RTdHJpbmcsIGNoYXJJZHgpOyAKKyAgICAgICAgICAgICAgICBpZiAoY3AgPT0gQ0hfQ1IgJiYgY2hhcklkeDxsZW4gJiYgVVRGMTYuY2hhckF0KHRlc3RTdHJpbmcsIGNoYXJJZHgrMSkgPT0gQ0hfTEYpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBhIENSIExGCisgICAgICAgICAgICAgICAgICAgIC8vICBOZWVkIGFuIGV4dHJhIGluY3JlbWVudCBvZiB0aGUgaW5wdXQgcHRyIHRvIG1vdmUgb3ZlciBib3RoIG9mIHRoZW0KKyAgICAgICAgICAgICAgICAgICAgY2hhcklkeCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY3AgPT0gQ0hfTEYgfHwgY3AgPT0gQ0hfQ1IpIHsKKyAgICAgICAgICAgICAgICAgICAgbGluZU51bSsrOworICAgICAgICAgICAgICAgICAgICBjb2xTdGFydCA9IGNoYXJJZHg7CisgICAgICAgICAgICAgICAgICAgIGNoYXJJZHgrKzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gTGV0IHVuZXNjYXBlIGhhbmRsZSB0aGUgYmFjayBzbGFzaC4KKyAgICAgICAgICAgICAgICBpbnQgIGNoYXJJZHhBcltdID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgICAgICBjaGFySWR4QXJbMF0gPSBjaGFySWR4OworICAgICAgICAgICAgICAgIGNwID0gVXRpbGl0eS51bmVzY2FwZUF0KHRlc3RTdHJpbmcsIGNoYXJJZHhBcik7CisgICAgICAgICAgICAgICAgaWYgKGNwICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEVzY2FwZSBzZXF1ZW5jZSB3YXMgcmVjb2duaXplZC4gIEluc2VydCB0aGUgY2hhcgorICAgICAgICAgICAgICAgICAgICAvLyAgIGludG8gdGhlIHRlc3QgZGF0YS4KKyAgICAgICAgICAgICAgICAgICAgY2hhcklkeCA9IGNoYXJJZHhBclswXTsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHRwLmRhdGFUb0JyZWFrLCBjcCk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaT10cC5kYXRhVG9CcmVhay5sZW5ndGgoKS0xOyBpPj0wICYmIHRwLnNyY0xpbmVbaV09PTA7IGktLSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdHAuc3JjTGluZVtpXSA9IGxpbmVOdW07CisgICAgICAgICAgICAgICAgICAgICAgICB0cC5zcmNDb2xbaV0gID0gY29sdW1uOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKworICAgICAgICAgICAgICAgIC8vIE5vdCBhIHJlY29nbml6ZWQgYmFja3NsYXNoIGVzY2FwZSBzZXF1ZW5jZS4KKyAgICAgICAgICAgICAgICAvLyBUYWtlIHRoZSBuZXh0IGNoYXIgYXMgYSBsaXRlcmFsLgorICAgICAgICAgICAgICAgIC8vICBUT0RPOiAgU2hvdWxkIHRoaXMgYmUgYW4gZXJyb3I/CisgICAgICAgICAgICAgICAgYyA9IFVURjE2LmNoYXJBdCh0ZXN0U3RyaW5nLGNoYXJJZHgpOworICAgICAgICAgICAgICAgIGNoYXJJZHggPSBVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KHRlc3RTdHJpbmcsIGNoYXJJZHgsIDEpOworICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gTm9ybWFsLCBub24tZXNjYXBlZCBkYXRhIGNoYXIuCisgICAgICAgICAgICBVVEYxNi5hcHBlbmQodHAuZGF0YVRvQnJlYWssIGMpOworIAorICAgICAgICAgICAgLy8gU2F2ZSB0aGUgbWFwcGluZyBmcm9tIG9mZnNldCBpbiB0aGUgZGF0YSB0byBsaW5lL2NvbHVtbiBudW1iZXJzIGluCisgICAgICAgICAgICAvLyAgIHRoZSBvcmlnaW5hbCBpbnB1dCBmaWxlLiAgV2lsbCBiZSB1c2VkIGZvciBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgb25seS4KKyAgICAgICAgICAgIC8vICAgSWYgdGhlcmUncyBhbiBleHBlY3RlZCBicmVhayBiZWZvcmUgdGhpcyBjaGFyLCB0aGUgc2xvdCBpbiB0aGUgbWFwcGluZworICAgICAgICAgICAgLy8gICAgIHZlY3RvciB3aWxsIGFscmVhZHkgYmUgc2V0IGZvciB0aGlzIGNoYXI7IGRvbid0IG92ZXJ3cml0ZSBpdC4KKyAgICAgICAgICAgIGZvciAoaT10cC5kYXRhVG9CcmVhay5sZW5ndGgoKS0xOyBpPj0wICYmIHRwLnNyY0xpbmVbaV09PTA7IGktLSkgeworICAgICAgICAgICAgICAgIHRwLnNyY0xpbmVbaV0gPSBsaW5lTnVtOworICAgICAgICAgICAgICAgIHRwLnNyY0NvbFtpXSAgPSBjb2x1bW47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworCisgICAgICAgIGNhc2UgUEFSU0VfTlVNOgorICAgICAgICAgICAgLy8gV2UgYXJlIHBhcnNpbmcgYW4gZXhwZWN0ZWQgbnVtZXJpYyB0YWcgdmFsdWUsIGxpa2UgPDEyMzQ+LAorICAgICAgICAgICAgLy8gICB3aXRoaW4gYSBjaHVuayBvZiBkYXRhLgorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjID09IENIX0dUKSB7CisgICAgICAgICAgICAgICAgLy8gRmluaXNoZWQgdGhlIG51bWJlci4gIEFkZCB0aGUgaW5mbyB0byB0aGUgZXhwZWN0ZWQgYnJlYWsgZGF0YSwKKyAgICAgICAgICAgICAgICAvLyAgIGFuZCBzd2l0Y2ggcGFyc2Ugc3RhdGUgYmFjayB0byBkb2luZyBwbGFpbiBkYXRhLgorICAgICAgICAgICAgICAgIHBhcnNlU3RhdGUgPSBQQVJTRV9EQVRBOworICAgICAgICAgICAgICAgIGlmICh0YWdWYWx1ZSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRhZ1ZhbHVlID0gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCAgYnJlYWtJZHggPSB0cC5kYXRhVG9CcmVhay5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB0cC5leHBlY3RlZEJyZWFrc1ticmVha0lkeF0gPSB0YWdWYWx1ZTsKKyAgICAgICAgICAgICAgICB0cC5zcmNMaW5lW2JyZWFrSWR4XSAgICAgICAgPSBsaW5lTnVtOworICAgICAgICAgICAgICAgIHRwLnNyY0NvbFticmVha0lkeF0gICAgICAgICA9IGNvbHVtbjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNEaWdpdChjKSkgeworICAgICAgICAgICAgICAgIHRhZ1ZhbHVlID0gdGFnVmFsdWUqMTAgKyBVQ2hhcmFjdGVyLmRpZ2l0KGMpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlcnJsbigiU3ludGF4IEVycm9yIGluIHRlc3QgZmlsZSBhdCBsaW5lICIrIGxpbmVOdW0gKyIsIGNvbCAlZCIgKyBjb2x1bW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBwYXJzZVN0YXRlID0gUEFSU0VfQ09NTUVOVDsgICAvLyBUT0RPOiB1bnJlYWNoYWJsZS4gIERvbid0IHN0b3Agb24gZXJyb3JzLgorICAgICAgICAgICAgLy8gYnJlYWs7CisgICAgICAgIH0KKworCisgCisgICAgfQorfQorCit2b2lkIGV4ZWN1dGVUZXN0KFRlc3RQYXJhbXMgdCkgeworICAgIGludCAgICBicDsKKyAgICBpbnQgICAgcHJldkJQOworICAgIGludCAgICBpOworCisgICAgdC5iaS5zZXRUZXh0KHQuZGF0YVRvQnJlYWsudG9TdHJpbmcoKSk7CisgICAgLy8KKyAgICAvLyAgUnVuIHRoZSBpdGVyYXRvciBmb3J3YXJkCisgICAgLy8KKyAgICBwcmV2QlAgPSAtMTsKKyAgICBmb3IgKGJwID0gdC5iaS5maXJzdCgpOyBicCAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IGJwID0gdC5iaS5uZXh0KCkpIHsKKyAgICAgICAgaWYgKHByZXZCUCA9PSAgYnApIHsKKyAgICAgICAgICAgIC8vIEZhaWwgZm9yIGxhY2sgb2YgZm9yd2FyZCBwcm9ncmVzcy4KKyAgICAgICAgICAgIGVycmxuKCJGb3J3YXJkIEl0ZXJhdGlvbiwgbm8gZm9yd2FyZCBwcm9ncmVzcy4gIEJyZWFrIFBvcz0iICsgYnAgKworICAgICAgICAgICAgICAgICAgICAiICBGaWxlIGxpbmUsY29sPSIgKyB0LnNyY0xpbmVbYnBdICsgIiwgIiArIHQuc3JjQ29sW2JwXSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlcmUgd2VyZSB3ZSBkaWRuJ3QgbWlzcyBhbiBleHBlY3RlZCBicmVhayBiZXR3ZWVuIHRoZSBsYXN0IG9uZQorICAgICAgICAvLyAgYW5kIHRoaXMgb25lLgorICAgICAgICBmb3IgKGk9cHJldkJQKzE7IGk8YnA7IGkrKykgeworICAgICAgICAgICAgaWYgKHQuZXhwZWN0ZWRCcmVha3NbaV0gIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGb3J3YXJkIEl0ZXJhdGlvbiwgYnJlYWsgZXhwZWN0ZWQsIGJ1dCBub3QgZm91bmQuICBQb3M9IiArIGkgKyAKKyAgICAgICAgICAgICAgICAgICAgIiAgRmlsZSBsaW5lLGNvbD0gIiArIHQuc3JjTGluZVtpXSArICIsICIgKyB0LnNyY0NvbFtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBicmVhayB3ZSBkaWQgZmluZCB3YXMgZXhwZWN0ZWQKKyAgICAgICAgaWYgKHQuZXhwZWN0ZWRCcmVha3NbYnBdID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGb3J3YXJkIEl0ZXJhdGlvbiwgYnJlYWsgZm91bmQsIGJ1dCBub3QgZXhwZWN0ZWQuICBQb3M9IiArIGJwICsgCisgICAgICAgICAgICAgICAgICAgICIgIEZpbGUgbGluZSxjb2w9ICIgKyB0LnNyY0xpbmVbYnBdICsgIiwgIiArIHQuc3JjQ29sW2JwXSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUaGUgYnJlYWsgd2FzIGV4cGVjdGVkLgorICAgICAgICAgICAgLy8gICBDaGVjayB0aGF0IHRoZSB7bm5ufSB0YWcgdmFsdWUgaXMgY29ycmVjdC4KKyAgICAgICAgICAgIGludCBleHBlY3RlZFRhZ1ZhbCA9IHQuZXhwZWN0ZWRCcmVha3NbYnBdOworICAgICAgICAgICAgaWYgKGV4cGVjdGVkVGFnVmFsID09IC0xKSB7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRUYWdWYWwgPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHJzID0gKChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKXQuYmkpLmdldFJ1bGVTdGF0dXMoKTsKKyAgICAgICAgICAgIGlmIChycyAhPSBleHBlY3RlZFRhZ1ZhbCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3Qgc3RhdHVzIGZvciBmb3J3YXJkIGJyZWFrLiAgUG9zPSAgIiArIGJwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICJGaWxlIGxpbmUsY29sPSAiICsgdC5zcmNMaW5lW2JwXSArICIsICIgKyB0LnNyY0NvbFticF0gKyAiXG4iICsKKyAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgIEFjdHVhbCwgRXhwZWN0ZWQgc3RhdHVzID0gIiArIHJzICsgIiwgIiArIGV4cGVjdGVkVGFnVmFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisKKyAgICAgICAgcHJldkJQID0gYnA7CisgICAgfQorCisgICAgLy8gVmVyaWZ5IHRoYXQgdGhlcmUgd2VyZSBubyBtaXNzZWQgZXhwZWN0ZWQgYnJlYWtzIGFmdGVyIHRoZSBsYXN0IG9uZSBmb3VuZAorICAgIGZvciAoaT1wcmV2QlArMTsgaTx0LmRhdGFUb0JyZWFrLmxlbmd0aCgpKzE7IGkrKykgeworICAgICAgICBpZiAodC5leHBlY3RlZEJyZWFrc1tpXSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiRm9yd2FyZCBJdGVyYXRpb24sIGJyZWFrIGV4cGVjdGVkLCBidXQgbm90IGZvdW5kLiAgUG9zPSIgKyBpICsgCisgICAgICAgICAgICAgICAgICAgICIgIEZpbGUgbGluZSxjb2w9ICIgKyB0LnNyY0xpbmVbaV0gKyAiLCAiICsgdC5zcmNDb2xbaV0pOworICAgICAgIH0KKyAgICB9CisKKyAgICAvLworICAgIC8vICBSdW4gdGhlIGl0ZXJhdG9yIGJhY2t3YXJkcywgdmVyaWZ5IHRoYXQgdGhlIHNhbWUgYnJlYWtzIGFyZSBmb3VuZC4KKyAgICAvLworICAgIHByZXZCUCA9IHQuZGF0YVRvQnJlYWsubGVuZ3RoKCkrMjsgIC8vIHN0YXJ0IHdpdGggYSBwaG9ueSB2YWx1ZSBmb3IgdGhlIGxhc3QgYnJlYWsgcG9zIHNlZW4uCisgICAgZm9yIChicCA9IHQuYmkubGFzdCgpOyBicCAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IGJwID0gdC5iaS5wcmV2aW91cygpKSB7CisgICAgICAgIGlmIChwcmV2QlAgPT0gIGJwKSB7CisgICAgICAgICAgICAvLyBGYWlsIGZvciBsYWNrIG9mIHByb2dyZXNzLgorICAgICAgICAgICAgZXJybG4oIlJldmVyc2UgSXRlcmF0aW9uLCBubyBwcm9ncmVzcy4gIEJyZWFrIFBvcz0iICsgYnAgKworICAgICAgICAgICAgICAgICAgICAiRmlsZSBsaW5lLGNvbD0iICsgdC5zcmNMaW5lW2JwXSArICIgIiArICB0LnNyY0NvbFticF0pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayB0aGF0IHRoZXJlIHdlcmUgd2UgZGlkbid0IG1pc3MgYW4gZXhwZWN0ZWQgYnJlYWsgYmV0d2VlbiB0aGUgbGFzdCBvbmUKKyAgICAgICAgLy8gIGFuZCB0aGlzIG9uZS4gIChVVmVjdG9yIHJldHVybnMgemVyb3MgZm9yIGluZGV4IG91dCBvZiBib3VuZHMuKQorICAgICAgICBmb3IgKGk9cHJldkJQLTE7IGk+YnA7IGktLSkgeworICAgICAgICAgICAgaWYgKHQuZXhwZWN0ZWRCcmVha3NbaV0gIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSZXZlcnNlIEl0ZXJ0aW9uLCBicmVhayBleHBlY3RlZCwgYnV0IG5vdCBmb3VuZC4gIFBvcz0iICsgaSArIAorICAgICAgICAgICAgICAgICAgICAiICBGaWxlIGxpbmUsY29sPSAiICsgdC5zcmNMaW5lW2ldICsgIiwgIiArIHQuc3JjQ29sW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGJyZWFrIHdlIGRpZCBmaW5kIHdhcyBleHBlY3RlZAorICAgICAgICBpZiAodC5leHBlY3RlZEJyZWFrc1ticF0gPT0gMCkgeworICAgICAgICAgICAgZXJybG4oIlJldmVyc2UgSXRlcnRpb24sIGJyZWFrIGZvdW5kLCBidXQgbm90IGV4cGVjdGVkLiAgUG9zPSIgKyBicCArIAorICAgICAgICAgICAgICAgICAgICAiICBGaWxlIGxpbmUsY29sPSAiICsgdC5zcmNMaW5lW2JwXSArICIsICIgKyB0LnNyY0NvbFticF0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVGhlIGJyZWFrIHdhcyBleHBlY3RlZC4KKyAgICAgICAgICAgIC8vICAgQ2hlY2sgdGhhdCB0aGUge25ubn0gdGFnIHZhbHVlIGlzIGNvcnJlY3QuCisgICAgICAgICAgICBpbnQgZXhwZWN0ZWRUYWdWYWwgPSB0LmV4cGVjdGVkQnJlYWtzW2JwXTsKKyAgICAgICAgICAgIGlmIChleHBlY3RlZFRhZ1ZhbCA9PSAtMSkgeworICAgICAgICAgICAgICAgIGV4cGVjdGVkVGFnVmFsID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBycyA9ICgoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcil0LmJpKS5nZXRSdWxlU3RhdHVzKCk7CisgICAgICAgICAgICBpZiAocnMgIT0gZXhwZWN0ZWRUYWdWYWwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiSW5jb3JyZWN0IHN0YXR1cyBmb3IgcmV2ZXJzZSBicmVhay4gIFBvcz0gICIgKyBicCArCisgICAgICAgICAgICAgICAgICAgICAgICAiRmlsZSBsaW5lLGNvbD0gIiArIHQuc3JjTGluZVticF0gKyAiLCAiICsgdC5zcmNDb2xbYnBdICsgIlxuIiArCisgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICBBY3R1YWwsIEV4cGVjdGVkIHN0YXR1cyA9ICIgKyBycyArICIsICIgKyBleHBlY3RlZFRhZ1ZhbCk7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcmV2QlAgPSBicDsKKyAgICB9CisKKyAgICAvLyBWZXJpZnkgdGhhdCB0aGVyZSB3ZXJlIG5vIG1pc3NlZCBicmVha3MgcHJpb3IgdG8gdGhlIGxhc3Qgb25lIGZvdW5kCisgICAgZm9yIChpPXByZXZCUC0xOyBpPj0wOyBpLS0pIHsKKyAgICAgICAgaWYgKHQuZXhwZWN0ZWRCcmVha3NbaV0gIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkZvcndhcmQgSXRlcnRpb24sIGJyZWFrIGV4cGVjdGVkLCBidXQgbm90IGZvdW5kLiAgUG9zPSIgKyBpICsKKyAgICAgICAgICAgICAgICAgICAgIiAgRmlsZSBsaW5lLGNvbD0gIiArIHQuc3JjTGluZVtpXSArICIsICIgKyB0LnNyY0NvbFtpXSk7CisgICAgICAgICB9CisgICAgfQorfQorCisKKworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9SQkJJVGVzdE1vbmtleS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSVRlc3RNb25rZXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTI2YTVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvUkJCSVRlc3RNb25rZXkuamF2YQpAQCAtMCwwICsxLDE1MjIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDUgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpOworCisKKy8vIE1vbmtleSB0ZXN0aW5nIG9mIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHk7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKworLyoqCisgKiBNb25rZXkgdGVzdHMgZm9yIFJCQkkuICBUaGVzZSB0ZXN0cyBoYXZlIGluZGVwZW5kZW50IGltcGxlbWVudGF0aW9ucyBvZgorICogdGhlIFVuaWNvZGUgVFIgYm91bmRhcnkgcnVsZXMsIGFuZCBjb21wYXJlIHJlc3VsdHMgYmV0d2VlbiB0aGVzZSBhbmQgSUNVJ3MKKyAqIGltcGxlbWVudGF0aW9uLCB1c2luZyByYW5kb20gZGF0YS4KKyAqIAorICogVGVzdHMgY292ZXIgR3JhcGhlbWUgQ2x1c3RlciAoY2hhciksIFdvcmQgYW5kIExpbmUgYnJlYWtzCisgKiAKKyAqIFBvcnRlZCBmcm9tIElDVTRDLCBvcmlnaW5hbCBjb2RlIGluIGZpbGUgc291cmNlL3Rlc3QvaW50bHRlc3QvcmJiaXRzdC5jcHAKKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBSQkJJVGVzdE1vbmtleSBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIG5ldyBSQkJJVGVzdE1vbmtleSgpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisvLworLy8gICAgIGNsYXNzcyBSQkJJTW9ua2V5S2luZAorLy8KKy8vICAgICAgICBNb25rZXkgVGVzdCBmb3IgQnJlYWsgSXRlcmF0aW9uCisvLyAgICAgICAgQWJzdHJhY3QgaW50ZXJmYWNlIGNsYXNzLiAgIENvbmNyZXRlIGRlcml2ZWQgY2xhc3NlcyBpbmRlcGVuZGVudGx5CisvLyAgICAgICAgaW1wbGVtZW50IHRoZSBicmVhayBydWxlcyBmb3IgZGlmZmVyZW50IGl0ZXJhdG9yIHR5cGVzLgorLy8KKy8vICAgICAgICBUaGUgTW9ua2V5IFRlc3QgaXRzZWxmIHVzZXMgZG9lc24ndCBrbm93IHdoaWNoIHR5cGUgb2YgYnJlYWsgaXRlcmF0b3IgaXQgaXMKKy8vICAgICAgICB0ZXN0aW5nLCBidXQgd29ya3MgcHVyZWx5IGluIHRlcm1zIG9mIHRoZSBpbnRlcmZhY2UgZGVmaW5lZCBoZXJlLgorLy8KKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgUkJCSU1vbmtleUtpbmQgeworICAgIAorICAgICAgICAvLyBSZXR1cm4gYSBMaXN0IG9mIFVuaWNvZGVTZXRzLCByZXByZXNlbnRpbmcgdGhlIGNoYXJhY3RlciBjbGFzc2VzIHVzZWQKKyAgICAgICAgLy8gICBmb3IgdGhpcyB0eXBlIG9mIGl0ZXJhdG9yLgorICAgICAgICBhYnN0cmFjdCAgTGlzdCAgY2hhckNsYXNzZXMoKTsKKworICAgICAgICAvLyBTZXQgdGhlIHRlc3QgdGV4dCBvbiB3aGljaCBzdWJzZXF1ZW50IGNhbGxzIHRvIG5leHQoKSB3aWxsIG9wZXJhdGUKKyAgICAgICAgYWJzdHJhY3QgIHZvaWQgICBzZXRUZXh0KFN0cmluZ0J1ZmZlciB0ZXh0KTsKKworICAgICAgICAvLyBGaW5kIHRoZSBuZXh0IGJyZWFrIHBvc3Rpb24sIHN0YXJ0aW5nIGZyb20gdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgICAgLy8gUmV0dXJuIC0xIGFmdGVyIHJlYWNoaW5nIGVuZCBvZiBzdHJpbmcuCisgICAgICAgIGFic3RyYWN0ICAgaW50ICAgbmV4dChpbnQgaSk7CisgICAgfQorCisgCisgICAgLyoqCisgICAgICogTW9ua2V5IHRlc3Qgc3ViY2xhc3MgZm9yIHRlc3RpbmcgQ2hhcmFjdGVyIChHcmFwaGVtZSBDbHVzdGVyKSBib3VuZGFyaWVzLgorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBSQkJJQ2hhck1vbmtleSBleHRlbmRzIFJCQklNb25rZXlLaW5kIHsKKyAgICAgICAgTGlzdCAgICAgICAgICAgICAgICAgICAgICBmU2V0czsKKworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICAgICAgIGZDUkxGU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICAgICAgIGZDb250cm9sU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICAgICAgIGZFeHRlbmRTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgICAgICAgZkhhbmd1bFNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgICAgICBmQW55U2V0OworCisgICAgICAgIFN0cmluZ0J1ZmZlciAgICAgICAgICAgICAgZlRleHQ7CisKKworICAgIFJCQklDaGFyTW9ua2V5KCkgeworICAgICAgICBmVGV4dCAgICAgICA9IG51bGw7CisgICAgICAgIGZDUkxGU2V0ICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHJcXG5dIik7CisgICAgICAgIGZDb250cm9sU2V0ID0gbmV3IFVuaWNvZGVTZXQoIltbXFxwe1psfVxccHtacH1cXHB7Q2N9XFxwe0NmfV0tW1xcbl0tW1xccl1dIik7CisgICAgICAgIGZFeHRlbmRTZXQgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7R3JhcGhlbWVfRXh0ZW5kfV0iKTsKKyAgICAgICAgZkhhbmd1bFNldCAgPSBuZXcgVW5pY29kZVNldCgKKyAgICAgICAgICAgICJbXFxwe0hhbmd1bF9TeWxsYWJsZV9UeXBlPUx9XFxwe0hhbmd1bF9TeWxsYWJsZV9UeXBlPUx9XFxwe0hhbmd1bF9TeWxsYWJsZV9UeXBlPVR9IiArCisgICAgICAgICAgICAgIlxccHtIYW5ndWxfU3lsbGFibGVfVHlwZT1MVn1cXHB7SGFuZ3VsX1N5bGxhYmxlX1R5cGU9TFZUfV0iKTsKKyAgICAgICAgZkFueVNldCAgICAgPSBuZXcgVW5pY29kZVNldCgiW1xcdTAwMDAtXFxVMDAxMGZmZmZdIik7CisKKyAgICAgICAgZlNldHMgICAgICAgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIGZTZXRzLmFkZChmQ1JMRlNldCk7CisgICAgICAgIGZTZXRzLmFkZChmQ29udHJvbFNldCk7CisgICAgICAgIGZTZXRzLmFkZChmRXh0ZW5kU2V0KTsKKyAgICAgICAgZlNldHMuYWRkKGZIYW5ndWxTZXQpOworICAgICAgICBmU2V0cy5hZGQoZkFueVNldCk7CisgICAgIH07CisKKworICAgIHZvaWQgc2V0VGV4dChTdHJpbmdCdWZmZXIgcykgeworICAgICAgICBmVGV4dCA9IHM7ICAgICAgICAKKyAgICB9CisgICAgCisgICAgTGlzdCBjaGFyQ2xhc3NlcygpIHsKKyAgICAgICAgcmV0dXJuIGZTZXRzOworICAgIH0KKyAgICAKKyAgICBpbnQgbmV4dChpbnQgaSkgeworICAgICAgICByZXR1cm4gbmV4dEdDKGZUZXh0LCBpKTsKKyAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKiBXb3JkIE1vbmtleSBUZXN0IENsYXNzCisgICAgICoKKyAgICAgKiAKKyAgICAgKiAKKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgUkJCSVdvcmRNb25rZXkgZXh0ZW5kcyBSQkJJTW9ua2V5S2luZCB7CisgICAgICAgIExpc3QgICAgICAgICAgICAgICAgICAgICAgZlNldHM7CisgICAgICAgIFN0cmluZ0J1ZmZlciAgICAgICAgICAgICAgZlRleHQ7CisKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgICAgICBmS2F0YWthbmFTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgICAgICAgZkFMZXR0ZXJTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgICAgICAgZk1pZExldHRlclNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgICAgICBmTWlkTnVtU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICAgICAgIGZOdW1lcmljU2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICAgICAgIGZGb3JtYXRTZXQ7CisgICAgICAgIFVuaWNvZGVTZXQgICAgICAgICAgICAgICAgZkV4dGVuZFNldDsKKyAgICAgICAgVW5pY29kZVNldCAgICAgICAgICAgICAgICBmRXh0ZW5kTnVtTGV0U2V0OworICAgICAgICBVbmljb2RlU2V0ICAgICAgICAgICAgICAgIGZPdGhlclNldDsKKworICAgICAgICAKKyAgICAgICAgUkJCSVdvcmRNb25rZXkoKSB7CisgICAgICAgICAgICBmU2V0cyAgICAgICAgICA9IG5ldyBBcnJheUxpc3QoKTsKKworICAgICAgICAgICAgZkFMZXR0ZXJTZXQgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1dvcmRfQnJlYWsgPSBBTGV0dGVyfV0iKTsKKyAgICAgICAgICAgIGZLYXRha2FuYVNldCAgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtXb3JkX0JyZWFrID0gS2F0YWthbmF9XSIpOworICAgICAgICAgICAgZk1pZExldHRlclNldCAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1dvcmRfQnJlYWsgPSBNaWRMZXR0ZXJ9XSIpOworICAgICAgICAgICAgZk1pZE51bVNldCAgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1dvcmRfQnJlYWsgPSBNaWROdW19XSIpOworICAgICAgICAgICAgZk51bWVyaWNTZXQgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe1dvcmRfQnJlYWsgPSBOdW1lcmljfV0iKTsKKyAgICAgICAgICAgIGZGb3JtYXRTZXQgICAgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtXb3JkX0JyZWFrID0gRm9ybWF0fV0iKTsKKyAgICAgICAgICAgIGZFeHRlbmRTZXQgICAgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfV0iKTsKKyAgICAgICAgICAgIGZFeHRlbmROdW1MZXRTZXQgPSBuZXcgVW5pY29kZVNldCgiW1xccHtHZW5lcmFsX0NhdGVnb3J5ID0gQ29ubmVjdG9yX1B1bmN0dWF0aW9ufV0iKTsKKyAgICAgICAgICAgIGZPdGhlclNldCAgICAgICAgPSBuZXcgVW5pY29kZVNldCgpOworCisgICAgICAgICAgICBmT3RoZXJTZXQuY29tcGxlbWVudCgpOworICAgICAgICAgICAgZk90aGVyU2V0LnJlbW92ZUFsbChmQUxldHRlclNldCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZLYXRha2FuYVNldCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZNaWRMZXR0ZXJTZXQpOworICAgICAgICAgICAgZk90aGVyU2V0LnJlbW92ZUFsbChmTWlkTnVtU2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZk51bWVyaWNTZXQpOworICAgICAgICAgICAgZk90aGVyU2V0LnJlbW92ZUFsbChmRm9ybWF0U2V0KTsKKyAgICAgICAgICAgIGZPdGhlclNldC5yZW1vdmVBbGwoZkV4dGVuZFNldCk7CisgICAgICAgICAgICBmT3RoZXJTZXQucmVtb3ZlQWxsKGZFeHRlbmROdW1MZXRTZXQpOworCisgICAgICAgICAgICBmU2V0cy5hZGQoZkFMZXR0ZXJTZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZLYXRha2FuYVNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZk1pZExldHRlclNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZk1pZE51bVNldCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZk51bWVyaWNTZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZGb3JtYXRTZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZFeHRlbmRTZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZFeHRlbmROdW1MZXRTZXQpOworICAgICAgICAgICAgZlNldHMuYWRkKGZPdGhlclNldCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBMaXN0ICBjaGFyQ2xhc3NlcygpIHsKKyAgICAgICAgIHJldHVybiBmU2V0czsgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2b2lkICAgc2V0VGV4dChTdHJpbmdCdWZmZXIgcykgeyAKKyAgICAgICAgICAgIGZUZXh0ID0gczsgICAgICAgIAorICAgICAgICB9ICAgCisKKyAgICAgICAgaW50ICAgbmV4dChpbnQgcHJldlBvcykgeyAgCisgICAgICAgICAgICBpbnQgICAgcDAsIHAxLCBwMiwgcDM7ICAgICAgLy8gSW5kaWNlcyBvZiB0aGUgc2lnbmlmaWNhbnQgY29kZSBwb2ludHMgYXJvdW5kIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGJyZWFrIHBvc2l0aW9uIGJlaW5nIHRlc3RlZC4gIFRoZSBjYW5kaWRhdGUgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGxvY2F0aW9uIGlzIGJlZm9yZSBwMi4KKyAgICAgICAgICAgIGludCAgICAgYnJlYWtQb3MgPSAtMTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGMwLCBjMSwgYzIsIGMzOyAgIC8vIFRoZSBjb2RlIHBvaW50cyBhdCBwMCwgcDEsIHAyICYgcDMuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFByZXYgYnJlYWsgYXQgZW5kIG9mIHN0cmluZy4gIHJldHVybiBET05FLgorICAgICAgICAgICAgaWYgKHByZXZQb3MgPj0gZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwMCA9IHAxID0gcDIgPSBwMyA9IHByZXZQb3M7CisgICAgICAgICAgICBjMyA9IFVURjE2LmNoYXJBdChmVGV4dCwgcHJldlBvcyk7CisgICAgICAgICAgICBjMCA9IGMxID0gYzIgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEZvcm1hdCBjaGFyIGFmdGVyIHByZXYgYnJlYWs/ICBTcGVjaWFsIGNhc2UsIHNlZSBsYXN0IE5vdGUgZm9yIFdvcmQgQm91bmRhcmllcyBUUi4KKyAgICAgICAgICAgIC8vIGJyZWFrIGltbWRpYXRlbHkgYWZ0ZXIgdGhlIGZvcm1hdCBjaGFyLgorICAgICAgICAgICAgaWYgKGJyZWFrUG9zID49IDAgJiYgZkZvcm1hdFNldC5jb250YWlucyhjMykgJiYgYnJlYWtQb3MgPCAoZlRleHQubGVuZ3RoKCkgLTEpKSB7CisgICAgICAgICAgICAgICAgYnJlYWtQb3MgPSBVVEYxNi5tb3ZlQ29kZVBvaW50T2Zmc2V0KGZUZXh0LCBicmVha1BvcywgMSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJyZWFrUG9zOworfQorCisKKyAgICAgICAgICAgIC8vIExvb3AgcnVucyBvbmNlIHBlciAic2lnbmlmaWNhbnQiIGNoYXJhY3RlciBwb3NpdGlvbiBpbiB0aGUgaW5wdXQgdGV4dC4KKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAvLyBNb3ZlIGFsbCBvZiB0aGUgcG9zaXRpb25zIGZvcndhcmQgaW4gdGhlIGlucHV0IHN0cmluZy4KKyAgICAgICAgICAgICAgICBwMCA9IHAxOyAgYzAgPSBjMTsKKyAgICAgICAgICAgICAgICBwMSA9IHAyOyAgYzEgPSBjMjsKKyAgICAgICAgICAgICAgICBwMiA9IHAzOyAgYzIgPSBjMzsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBBZHZhbmNkIHAzIGJ5ICAgIChHQyBGb3JtYXQqKSAgIFJ1bGVzIDMsIDQKKyAgICAgICAgICAgICAgICBwMyA9IG5leHRHQyhmVGV4dCwgcDMpOworICAgICAgICAgICAgICAgIGlmIChwMyA9PSAtMSB8fCBwMyA+PSBmVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBwMyA9IGZUZXh0Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBjMyA9IDA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYzMgPSBVVEYxNi5jaGFyQXQoZlRleHQsIHAzKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGZGb3JtYXRTZXQuY29udGFpbnMoYzMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwMyA9IG1vdmVJbmRleDMyKGZUZXh0LCBwMywgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjMyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocDMgPCBmVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMzID0gVVRGMTYuY2hhckF0KGZUZXh0LCBwMyk7ICAgCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAocDEgPT0gcDIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3RpbGwgd2FybWluZyB1cCB0aGUgbG9vcC4gICh3b24ndCB3b3JrIHdpdGggemVybyBsZW5ndGggc3RyaW5ncywgYnV0IHdlIGRvbid0IGNhcmUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocDIgPT0gZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gUmVhY2hlZCBlbmQgb2Ygc3RyaW5nLiAgQWx3YXlzIGEgYnJlYWsgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDUpLiAgIEFMZXR0ZXIgeCBBTGV0dGVyCisgICAgICAgICAgICAgICAgaWYgKGZBTGV0dGVyU2V0LmNvbnRhaW5zKGMxKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZkFMZXR0ZXJTZXQuY29udGFpbnMoYzIpKSAgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUnVsZSAoNikgIEFMZXR0ZXIgIHggIE1pZExldHRlciAgQUxldHRlcgorICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgaWYgKCBmQUxldHRlclNldC5jb250YWlucyhjMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGZNaWRMZXR0ZXJTZXQuY29udGFpbnMoYzIpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBmQUxldHRlclNldC5jb250YWlucyhjMykpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDcpICBBTGV0dGVyIE1pZExldHRlciAgIHggIEFMZXR0ZXIKKyAgICAgICAgICAgICAgICBpZiAoZkFMZXR0ZXJTZXQuY29udGFpbnMoYzApICYmCisgICAgICAgICAgICAgICAgICAgICAgICBmTWlkTGV0dGVyU2V0LmNvbnRhaW5zKGMxKSAgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGZBTGV0dGVyU2V0LmNvbnRhaW5zKGMyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gIFJ1bGUgKDgpICAgIE51bWVyaWMgeCBOdW1lcmljCisgICAgICAgICAgICAgICAgaWYgKGZOdW1lcmljU2V0LmNvbnRhaW5zKGMxKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZk51bWVyaWNTZXQuY29udGFpbnMoYzIpKSAgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUnVsZSAoOSkgICAgQUxldHRlciB4IE51bWVyaWMKKyAgICAgICAgICAgICAgICBpZiAoZkFMZXR0ZXJTZXQuY29udGFpbnMoYzEpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBmTnVtZXJpY1NldC5jb250YWlucyhjMikpICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDEwKSAgICBOdW1lcmljIHggQUxldHRlcgorICAgICAgICAgICAgICAgIGlmIChmTnVtZXJpY1NldC5jb250YWlucyhjMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGZBTGV0dGVyU2V0LmNvbnRhaW5zKGMyKSkgIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFJ1bGUgKDExKSAgIE51bWVyaWMgKE1pZE51bSB8IE1pZE51bUxldCkgIHggIE51bWVyaWMKKyAgICAgICAgICAgICAgICBpZiAoIGZOdW1lcmljU2V0LmNvbnRhaW5zKGMwKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZk1pZE51bVNldC5jb250YWlucyhjMSkgICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgZk51bWVyaWNTZXQuY29udGFpbnMoYzIpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBSdWxlICgxMikgIE51bWVyaWMgeCAoTWlkTnVtIHwgTWlkTnVtTGV0KSBOdW1lcmljCisgICAgICAgICAgICAgICAgaWYgKGZOdW1lcmljU2V0LmNvbnRhaW5zKGMxKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZk1pZE51bVNldC5jb250YWlucyhjMikgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGZOdW1lcmljU2V0LmNvbnRhaW5zKGMzKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUnVsZSAoMTMpICBLYXRha2FuYSB4IEthdGFrYW5hCisgICAgICAgICAgICAgICAgaWYgKGZLYXRha2FuYVNldC5jb250YWlucyhjMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGZLYXRha2FuYVNldC5jb250YWlucyhjMikpICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBSdWxlIDEzYSAgKEFMZXR0ZXIgfCBOdW1lcmljIHwgS2F0YWthbmEgfCBFeHRlbmROdW1MZXQpIHggRXh0ZW5kTnVtTGV0CisgICAgICAgICAgICAgICAgaWYgKChmQUxldHRlclNldC5jb250YWlucyhjMSkgfHwgZk51bWVyaWNTZXQuY29udGFpbnMoYzEpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmS2F0YWthbmFTZXQuY29udGFpbnMoYzEpIHx8IGZFeHRlbmROdW1MZXRTZXQuY29udGFpbnMoYzEpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgZkV4dGVuZE51bUxldFNldC5jb250YWlucyhjMikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIFJ1bGUgMTNiICAgRXh0ZW5kTnVtTGV0IHggKEFMZXR0ZXIgfCBOdW1lcmljIHwgS2F0YWthbmEgfCBFeHRlbmROdW1MZXQpCisgICAgICAgICAgICAgICAgaWYgKGZFeHRlbmROdW1MZXRTZXQuY29udGFpbnMoYzEpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAoZkFMZXR0ZXJTZXQuY29udGFpbnMoYzIpIHx8IGZOdW1lcmljU2V0LmNvbnRhaW5zKGMyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgZkthdGFrYW5hU2V0LmNvbnRhaW5zKGMyKSB8fCBmRXh0ZW5kTnVtTGV0U2V0LmNvbnRhaW5zKGMyKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUnVsZSAxNC4gIEJyZWFrIGZvdW5kIGhlcmUuCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gIFJ1bGUgNCBmaXh1cCwgIGJhY2sgdXAgYmVmb3JlIGFueSB0cmFpbGluZworICAgICAgICAgICAgLy8gICAgICAgICBmb3JtYXQgY2hhcmFjdGVycyBhdCB0aGUgZW5kIG9mIHRoZSB3b3JkLgorICAgICAgICAgICAgYnJlYWtQb3MgPSBwMjsKKyAgICAgICAgICAgIGludCAgdCA9IG5leHRHQyhmVGV4dCwgcDEpOworICAgICAgICAgICAgaWYgKHQgPiBwMSkgeworICAgICAgICAgICAgICAgIGJyZWFrUG9zID0gdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBicmVha1BvczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisKKyAKKyAgICBzdGF0aWMgY2xhc3MgUkJCSUxpbmVNb25rZXkgZXh0ZW5kcyBSQkJJTW9ua2V5S2luZCB7CisgICAgICAgIAorICAgICAgICBMaXN0ICAgICAgICBmU2V0czsKKyAgICAgICAgCisgICAgICAgIFVuaWNvZGVTZXQgIGZCSzsKKyAgICAgICAgVW5pY29kZVNldCAgZkNSOworICAgICAgICBVbmljb2RlU2V0ICBmTEY7CisgICAgICAgIFVuaWNvZGVTZXQgIGZDTTsKKyAgICAgICAgVW5pY29kZVNldCAgZk5MOworICAgICAgICBVbmljb2RlU2V0ICBmU0c7CisgICAgICAgIFVuaWNvZGVTZXQgIGZXSjsKKyAgICAgICAgVW5pY29kZVNldCAgZlpXOworICAgICAgICBVbmljb2RlU2V0ICBmR0w7CisgICAgICAgIFVuaWNvZGVTZXQgIGZDQjsKKyAgICAgICAgVW5pY29kZVNldCAgZlNQOworICAgICAgICBVbmljb2RlU2V0ICBmQjI7CisgICAgICAgIFVuaWNvZGVTZXQgIGZCQTsKKyAgICAgICAgVW5pY29kZVNldCAgZkJCOworICAgICAgICBVbmljb2RlU2V0ICBmSFk7CisgICAgICAgIFVuaWNvZGVTZXQgIGZDTDsKKyAgICAgICAgVW5pY29kZVNldCAgZkVYOworICAgICAgICBVbmljb2RlU2V0ICBmSU47CisgICAgICAgIFVuaWNvZGVTZXQgIGZOUzsKKyAgICAgICAgVW5pY29kZVNldCAgZk9QOworICAgICAgICBVbmljb2RlU2V0ICBmUVU7CisgICAgICAgIFVuaWNvZGVTZXQgIGZJUzsKKyAgICAgICAgVW5pY29kZVNldCAgZk5VOworICAgICAgICBVbmljb2RlU2V0ICBmUE87CisgICAgICAgIFVuaWNvZGVTZXQgIGZQUjsKKyAgICAgICAgVW5pY29kZVNldCAgZlNZOworICAgICAgICBVbmljb2RlU2V0ICBmQUk7CisgICAgICAgIFVuaWNvZGVTZXQgIGZBTDsKKyAgICAgICAgVW5pY29kZVNldCAgZklEOworICAgICAgICBVbmljb2RlU2V0ICBmU0E7CisgICAgICAgIFVuaWNvZGVTZXQgIGZKTDsKKyAgICAgICAgVW5pY29kZVNldCAgZkpWOworICAgICAgICBVbmljb2RlU2V0ICBmSlQ7CisgICAgICAgIFVuaWNvZGVTZXQgIGZIMjsKKyAgICAgICAgVW5pY29kZVNldCAgZkgzOworICAgICAgICBVbmljb2RlU2V0ICBmWFg7CisgICAgICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgIGZUZXh0OworICAgICAgICBpbnQgICAgICAgICAgIGZPcmlnUG9zaXRpb25zOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBSQkJJTGluZU1vbmtleSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZTZXRzICAgICAgICAgID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmQksgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX0JyZWFrPUJLfV0iKTsKKyAgICAgICAgICAgIGZDUiAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9Q1J9XSIpOworICAgICAgICAgICAgZkxGICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1MRn1dIik7CisgICAgICAgICAgICBmQ00gICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUNNfV0iKTsKKyAgICAgICAgICAgIGZOTCAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9Tkx9XSIpOworICAgICAgICAgICAgZldKICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1XSn1dIik7CisgICAgICAgICAgICBmWlcgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPVpXfV0iKTsKKyAgICAgICAgICAgIGZHTCAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9R0x9XSIpOworICAgICAgICAgICAgZkNCICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1DQn1dIik7CisgICAgICAgICAgICBmU1AgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPVNQfV0iKTsKKyAgICAgICAgICAgIGZCMiAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9QjJ9XSIpOworICAgICAgICAgICAgZkJBICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1CQX1dIik7CisgICAgICAgICAgICBmQkIgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUJCfV0iKTsKKyAgICAgICAgICAgIGZIWSAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9SFl9XSIpOworICAgICAgICAgICAgZkNMICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1DTH1dIik7CisgICAgICAgICAgICBmRVggICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUVYfV0iKTsKKyAgICAgICAgICAgIGZJTiAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9SU59XSIpOworICAgICAgICAgICAgZk5TICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1OU31dIik7CisgICAgICAgICAgICBmT1AgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPU9QfV0iKTsKKyAgICAgICAgICAgIGZRVSAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9UVV9XSIpOworICAgICAgICAgICAgZklTICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1JU31dIik7CisgICAgICAgICAgICBmTlUgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPU5VfV0iKTsKKyAgICAgICAgICAgIGZQTyAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9UE99XSIpOworICAgICAgICAgICAgZlBSICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1QUn1dIik7CisgICAgICAgICAgICBmU1kgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPVNZfV0iKTsKKyAgICAgICAgICAgIGZBSSAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9QUl9XSIpOworICAgICAgICAgICAgZkFMICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1BTH1dIik7CisgICAgICAgICAgICBmSUQgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUlEfV0iKTsKKyAgICAgICAgICAgIGZTQSAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9U0F9XSIpOworICAgICAgICAgICAgZkpMICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1KTH1dIik7CisgICAgICAgICAgICBmSlYgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUpWfV0iKTsKKyAgICAgICAgICAgIGZKVCAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9SlR9XSIpOworICAgICAgICAgICAgZkgyICAgID0gbmV3IFVuaWNvZGVTZXQoIltcXHB7TGluZV9icmVhaz1IMn1dIik7CisgICAgICAgICAgICBmSDMgICAgPSBuZXcgVW5pY29kZVNldCgiW1xccHtMaW5lX2JyZWFrPUgzfV0iKTsKKyAgICAgICAgICAgIGZYWCAgICA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0xpbmVfYnJlYWs9WFh9XSIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmQUwuYWRkQWxsKGZYWCk7ICAgICAvLyBEZWZhdWx0IGJlaGF2aW9yIGZvciBYWCBpcyBpZGVudGljYWwgdG8gQUwKKyAgICAgICAgICAgIGZBTC5hZGRBbGwoZkFJKTsgICAgIC8vIERlZmF1bHQgYmVoYXZpb3IgZm9yIEFJIGlzIGlkZW50aWNhbCB0byBBTAorICAgICAgICAgICAgZkFMLmFkZEFsbChmU0EpOyAgICAgLy8gRGVmYXVsdCBiZWhhdmlvciBmb3IgU0EgaXMgWFgsIHdoaWNoIGRlZmF1bHRzIHRvIEFMCisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICBmU2V0cy5hZGQoZkJLKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmQ1IpOworICAgICAgICAgICAgZlNldHMuYWRkKGZMRik7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkNNKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmTkwpOworICAgICAgICAgICAgZlNldHMuYWRkKGZXSik7CisgICAgICAgICAgICBmU2V0cy5hZGQoZlpXKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmR0wpOworICAgICAgICAgICAgZlNldHMuYWRkKGZDQik7CisgICAgICAgICAgICBmU2V0cy5hZGQoZlNQKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmQjIpOworICAgICAgICAgICAgZlNldHMuYWRkKGZCQSk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkJCKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmSFkpOworICAgICAgICAgICAgZlNldHMuYWRkKGZDTCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZkVYKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmSU4pOworICAgICAgICAgICAgZlNldHMuYWRkKGZOUyk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZk9QKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmUVUpOworICAgICAgICAgICAgZlNldHMuYWRkKGZJUyk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZk5VKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmUE8pOworICAgICAgICAgICAgZlNldHMuYWRkKGZQUik7CisgICAgICAgICAgICBmU2V0cy5hZGQoZlNZKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmQUkpOworICAgICAgICAgICAgZlNldHMuYWRkKGZBTCk7CisgICAgICAgICAgICBmU2V0cy5hZGQoZklEKTsKKyAgICAgICAgICAgIGZTZXRzLmFkZChmV0opOworICAgICAgICAgICAgZlNldHMuYWRkKGZTQSk7CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBzZXRUZXh0KFN0cmluZ0J1ZmZlciBzKSB7CisgICAgICAgICAgICBmVGV4dCAgICAgICA9IHM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAKKworICAgICAgICBpbnQgbmV4dChpbnQgc3RhcnRQb3MpIHsKKyAgICAgICAgICAgIGludCAgICBwb3M7ICAgICAgIC8vICBJbmRleCBvZiB0aGUgY2hhciBmb2xsb3dpbmcgYSBwb3RlbnRpYWwgYnJlYWsgcG9zaXRpb24KKyAgICAgICAgICAgIGludCAgICB0aGlzQ2hhcjsgIC8vICBDaGFyYWN0ZXIgYXQgYWJvdmUgcG9zaXRpb24gInBvcyIKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50ICAgIHByZXZQb3M7ICAgLy8gIEluZGV4IG9mIHRoZSBjaGFyIHByZWNlZGluZyBhIHBvdGVudGlhbCBicmVhayBwb3NpdGlvbgorICAgICAgICAgICAgaW50ICAgIHByZXZDaGFyOyAgLy8gIENoYXJhY3RlciBhdCBhYm92ZSBwb3NpdGlvbi4gIE5vdGUgdGhhdCBwcmV2Q2hhcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBhbmQgdGhpc0NoYXIgbWF5IG5vdCBiZSBhZGphY2VudCBiZWNhdXNlIGNvbWJpbmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBjaGFyYWN0ZXJzIGJldHdlZW4gdGhlbSB3aWxsIGJlIGlnbm9yZWQuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCAgICBuZXh0UG9zOyAgIC8vICBJbmRleCBvZiB0aGUgbmV4dCBjaGFyYWN0ZXIgZm9sbG93aW5nIHBvcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBVc3VhbGx5IHNraXBzIG92ZXIgY29tYmluaW5nIG1hcmtzLgorICAgICAgICAgICAgaW50ICAgIHRQb3M7ICAgICAgLy8gIHRlbXAgdmFsdWUuCisgICAgICAgICAgICBpbnQgICAgYzsKKyAgICAgICAgICAgIGludCAgICBtYXRjaFZhbHNbXSAgPSBudWxsOyAgICAgICAvLyBOdW1iZXIgIEV4cHJlc3Npb24gTWF0Y2ggUmVzdWx0cworIAorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc3RhcnRQb3MgPj0gZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gSW5pdGlhbCB2YWx1ZXMgZm9yIGxvb3AuICBMb29wIHdpbGwgcnVuIHRoZSBmaXJzdCB0aW1lIHdpdGhvdXQgZmluZGluZyBicmVha3MsCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRoZSBpbnZhbGlkIHZhbHVlcyBzaGlmdCBvdXQgYW5kIHRoZSAidGhpcyIgYW5kCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmV2IiBwb3NpdGlvbnMgYXJlIGZpbGxlZCBpbiB3aXRoIGdvb2QgdmFsdWVzLgorICAgICAgICAgICAgcG9zICAgICAgPSBwcmV2UG9zICAgPSAtMTsgICAgLy8gSW52YWxpZCB2YWx1ZSwgc2VydmVzIGFzIGZsYWcgZm9yIGluaXRpYWwgbG9vcCBpdGVyYXRpb24uCisgICAgICAgICAgICB0aGlzQ2hhciA9IHByZXZDaGFyICA9IDA7CisgICAgICAgICAgICBuZXh0UG9zICA9IHN0YXJ0UG9zOworICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIExvb3AgcnVucyBvbmNlIHBlciBwb3NpdGlvbiBpbiB0aGUgdGVzdCB0ZXh0LCB1bnRpbCBhIGJyZWFrIHBvc2l0aW9uCisgICAgICAgICAgICAvLyAgaXMgZm91bmQuICBJbiBlYWNoIGl0ZXJhdGlvbiwgd2UgYXJlIHRlc3RpbmcgZm9yIGEgcG9zc2libGUgYnJlYWsKKyAgICAgICAgICAgIC8vICBqdXN0IHByZWNlZGluZyB0aGUgY2hhcmFjdGVyIGF0IGluZGV4ICJwb3MiLiAgVGhlIGNoYXJhY3RlciBwcmVjZWRpbmcKKyAgICAgICAgICAgIC8vICB0aGlzIGNoYXIgaXMgYXQgcG9zdGlvbiAicHJldlBvcyI7IGJlY2F1c2Ugb2YgY29tYmluaW5nIHNlcXVlbmNlcywKKyAgICAgICAgICAgIC8vICAicHJldlBvcyIgY2FuIGJlIGFyYml0cmFyaWx5IGZhciBiZWZvcmUgInBvcyIuCisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgLy8gQWR2YW5jZSB0byB0aGUgbmV4dCBwb3NpdGlvbiB0byBiZSB0ZXN0ZWQuCisgICAgICAgICAgICAgICAgcHJldlBvcyAgID0gcG9zOworICAgICAgICAgICAgICAgIHByZXZDaGFyICA9IHRoaXNDaGFyOworICAgICAgICAgICAgICAgIHBvcyAgICAgICA9IG5leHRQb3M7CisgICAgICAgICAgICAgICAgbmV4dFBvcyAgID0gbW92ZUluZGV4MzIoZlRleHQsIHBvcywgMSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gUnVsZSBMQjIgLSBCcmVhayBhdCBlbmQgb2YgdGV4dC4KKyAgICAgICAgICAgICAgICBpZiAocG9zID49IGZUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBSdWxlIExCIDcgLSBhZGp1c3QgZm9yIGNvbWJpbmluZyBzZXF1ZW5jZXMuCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgV2UgZG8gdGhpcyBydWxlIG91dC1vZi1vcmRlciBiZWNhdXNlIHRoZSBhZGp1c3RtZW50IGRvZXMKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBub3QgZWZmZWN0IHRoZSB3YXkgdGhhdCBydWxlcyBMQiAzIHRocm91Z2ggTEIgNiBtYXRjaCwKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBhbmQgZG9pbmcgaXQgaGVyZSByYXRoZXIgdGhhbiBhZnRlciBMQiA2IGlzIHN1YnN0YW50aWFsbHkKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBzaW1wbGVyIHdoZW4gY29tYmluaW5nIHNlcXVlbmNlcyBkbyBvY2N1ci4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiA3YiAgICAgICAgS2VlcCBjb21iaW5pbmcgc2VxdWVuY2VzIHRvZ2V0aGVyLgorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICBhZHZhbmNlIG92ZXIgYW55IENNIGNsYXNzIGNoYXJzIGF0ICJwb3MiLCAKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgcmVzdWx0IGlzICJuZXh0UG9zIiBmb3IgdGhlIGZvbGxvd2luZyBsb29wIGl0ZXJhdGlvbi4KKyAgICAgICAgICAgICAgICB0aGlzQ2hhciAgPSBVVEYxNi5jaGFyQXQoZlRleHQsIHBvcyk7CisgICAgICAgICAgICAgICAgaWYgKCEoZlNQLmNvbnRhaW5zKHRoaXNDaGFyKSB8fCBmQksuY29udGFpbnModGhpc0NoYXIpIHx8IHRoaXNDaGFyPT0weDBkIHx8CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzQ2hhcj09MHgwYSB8fCBmTkwuY29udGFpbnModGhpc0NoYXIpIHx8IGZaVy5jb250YWlucyh0aGlzQ2hhcikgKSkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV4dFBvcyA9PSBmVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5leHRDaGFyID0gVVRGMTYuY2hhckF0KGZUZXh0LCBuZXh0UG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZkNNLmNvbnRhaW5zKG5leHRDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFBvcyA9IG1vdmVJbmRleDMyKGZUZXh0LCBuZXh0UG9zLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiA3YyAgICAgVHJlYXQgdW5hdHRhY2hlZCBjb21iaW5pbmcgY2hhcnMgYXMgQUwKKyAgICAgICAgICAgICAgICBpZiAoZkNNLmNvbnRhaW5zKHRoaXNDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICB0aGlzQ2hhciA9ICdBJzsgICAKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgbG9vcCBpcyBzdGlsbCB3YXJtaW5nIHVwIC0gaWYgd2UgaGF2ZW4ndCBzaGlmdGVkIHRoZSBpbml0aWFsCisgICAgICAgICAgICAgICAgLy8gICAtMSBwb3NpdGlvbnMgb3V0IG9mIHByZXZQb3MgeWV0IC0gbG9vcCBiYWNrIHRvIGFkdmFuY2UgdGhlCisgICAgICAgICAgICAgICAgLy8gICAgcG9zaXRpb24gaW4gdGhlIGlucHV0IHdpdGhvdXQgYW55IGZ1cnRoZXIgbG9va2luZyBmb3IgYnJlYWtzLgorICAgICAgICAgICAgICAgIGlmIChwcmV2UG9zID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAzYSAgQWx3YXlzIGJyZWFrIGFmdGVyIGhhcmQgbGluZSBicmVha3MsCisgICAgICAgICAgICAgICAgaWYgKGZCSy5jb250YWlucyhwcmV2Q2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDNiICBCcmVhayBhZnRlciBDUiwgTEYsIE5MLCBidXQgbm90IGluc2lkZSBDUiBMRgorICAgICAgICAgICAgICAgIGlmIChmQ1IuY29udGFpbnMocHJldkNoYXIpICYmIGZMRi5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICAoZkNSLmNvbnRhaW5zKHByZXZDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgZkxGLmNvbnRhaW5zKHByZXZDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgZk5MLmNvbnRhaW5zKHByZXZDaGFyKSkgIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDNjICBEb24ndCBicmVhayBiZWZvcmUgaGFyZCBsaW5lIGJyZWFrcworICAgICAgICAgICAgICAgIGlmIChmQksuY29udGFpbnModGhpc0NoYXIpIHx8IGZDUi5jb250YWlucyh0aGlzQ2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZMRi5jb250YWlucyh0aGlzQ2hhcikgfHwgZk5MLmNvbnRhaW5zKHRoaXNDaGFyKSApIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDQgIERvbid0IGJyZWFrIGJlZm9yZSBzcGFjZXMgb3IgemVyby13aWR0aCBzcGFjZS4KKyAgICAgICAgICAgICAgICBpZiAoZlNQLmNvbnRhaW5zKHRoaXNDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGZaVy5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDUgIEJyZWFrIGFmdGVyIHplcm8gd2lkdGggc3BhY2UKKyAgICAgICAgICAgICAgICBpZiAoZlpXLmNvbnRhaW5zKHByZXZDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gIExCIDcgIEFscmVhZHkgZG9uZSwgYXQgdG9wIG9mIGxvb3AuCisgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiA4ICBEb24ndCBicmVhayBiZWZvcmUgY2xvc2luZ3MuCisgICAgICAgICAgICAgICAgLy8gICAgICAgTlUgeCBDTCAgYW5kIE5VIHggSVMgYXJlIG5vdCBtYXRjaGVkIGhlcmUgc28gdGhhdCB0aGV5IHdpbGwKKyAgICAgICAgICAgICAgICAvLyAgICAgICBmYWxsIGludG8gTEIgMTcgYW5kIHRoZSBtb3JlIGdlbmVyYWwgbnVtYmVyIHJlZ3VsYXIgZXhwcmVzc2lvbi4KKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIGlmICghZk5VLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmQ0wuY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmRVguY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAhZk5VLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmSVMuY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAhZk5VLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmU1kuY29udGFpbnModGhpc0NoYXIpKSAgICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiA5ICBEb24ndCBicmVhayBhZnRlciBPUCBTUCoKKyAgICAgICAgICAgICAgICAvLyAgICAgICBTY2FuIGJhY2t3YXJkcywgY2hlY2tpbmcgZm9yIHRoaXMgc2VxdWVuY2UuCisgICAgICAgICAgICAgICAgLy8gICAgICAgVGhlIE9QIGNoYXIgY291bGQgaW5jbHVkZSBjb21iaW5pbmcgbWFya3MsIHNvIHdlIGFjdWFsbHkgY2hlY2sgZm9yCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgIE9QIENNKiBTUCogeAorICAgICAgICAgICAgICAgIHRQb3MgPSBwcmV2UG9zOworICAgICAgICAgICAgICAgIHdoaWxlICh0UG9zID4gMCAmJiBmU1AuY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdFBvcz1tb3ZlSW5kZXgzMihmVGV4dCwgdFBvcywgLTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSAodFBvcyA+IDAgJiYgZkNNLmNvbnRhaW5zKFVURjE2LmNoYXJBdChmVGV4dCwgdFBvcykpKSB7CisgICAgICAgICAgICAgICAgICAgIHRQb3M9bW92ZUluZGV4MzIoZlRleHQsIHRQb3MsIC0xKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGZPUC5jb250YWlucyhVVEYxNi5jaGFyQXQoZlRleHQsIHRQb3MpKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMTAgRG8gbm90IGJyZWFrIHdpdGhpbmcgIlsgCisgICAgICAgICAgICAgICAgLy8gICAgICAgUVUgQ00qIFNQKiB4IE9QCisgICAgICAgICAgICAgICAgaWYgKGZPUC5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgdFBvcyA9IHByZXZQb3M7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0UG9zID4gMCAmJiBmU1AuY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRQb3MgPSBtb3ZlSW5kZXgzMihmVGV4dCwgdFBvcywgLTEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0UG9zID4gMCAmJiBmQ00uY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRQb3MgPSBtb3ZlSW5kZXgzMihmVGV4dCwgdFBvcywgLTEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChmUVUuY29udGFpbnMoVVRGMTYuY2hhckF0KGZUZXh0LCB0UG9zKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDExICAgQ0wgU1AqIHggTlMKKyAgICAgICAgICAgICAgICBpZiAoZk5TLmNvbnRhaW5zKHRoaXNDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICB0UG9zID0gcHJldlBvczsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRQb3MgPiAwICYmIGZTUC5jb250YWlucyhVVEYxNi5jaGFyQXQoZlRleHQsIHRQb3MpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdFBvcyA9IG1vdmVJbmRleDMyKGZUZXh0LCB0UG9zLCAtMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRQb3MgPiAwICYmIGZDTS5jb250YWlucyhVVEYxNi5jaGFyQXQoZlRleHQsIHRQb3MpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdFBvcyA9IG1vdmVJbmRleDMyKGZUZXh0LCB0UG9zLCAtMSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGZDTC5jb250YWlucyhVVEYxNi5jaGFyQXQoZlRleHQsIHRQb3MpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMTFhICAgICAgICBCMiBTUCogeCBCMgorICAgICAgICAgICAgICAgIGlmIChmQjIuY29udGFpbnModGhpc0NoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRQb3MgPSBwcmV2UG9zOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAodFBvcyA+IDAgJiYgZlNQLmNvbnRhaW5zKFVURjE2LmNoYXJBdChmVGV4dCwgdFBvcykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0UG9zID0gbW92ZUluZGV4MzIoZlRleHQsIHRQb3MsIC0xKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB3aGlsZSAodFBvcyA+IDAgJiYgZkNNLmNvbnRhaW5zKFVURjE2LmNoYXJBdChmVGV4dCwgdFBvcykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0UG9zID0gbW92ZUluZGV4MzIoZlRleHQsIHRQb3MsIC0xKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoZkIyLmNvbnRhaW5zKFVURjE2LmNoYXJBdChmVGV4dCwgdFBvcykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAxMWIKKyAgICAgICAgICAgICAgICAvLyAgICB4ICBXSgorICAgICAgICAgICAgICAgIC8vICAgIFdKICB4CisgICAgICAgICAgICAgICAgaWYgKGZXSi5jb250YWlucyh0aGlzQ2hhcikgfHwgZldKLmNvbnRhaW5zKHByZXZDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMTIgICAgYnJlYWsgYWZ0ZXIgc3BhY2UKKyAgICAgICAgICAgICAgICBpZiAoZlNQLmNvbnRhaW5zKHByZXZDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMTMKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgeCBHTAorICAgICAgICAgICAgICAgIC8vICAgICAgICBHTCB4CisgICAgICAgICAgICAgICAgaWYgKGZHTC5jb250YWlucyh0aGlzQ2hhcikgfHwgZkdMLmNvbnRhaW5zKHByZXZDaGFyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gTEIgMTQKKyAgICAgICAgICAgICAgICAvLyAgICB4ICAgUVUKKyAgICAgICAgICAgICAgICAvLyAgICBRVSAgeAorICAgICAgICAgICAgICAgIGlmIChmUVUuY29udGFpbnModGhpc0NoYXIpIHx8IGZRVS5jb250YWlucyhwcmV2Q2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDE0YSAgQnJlYWsgYXJvdW5kIGEgQ0IKKyAgICAgICAgICAgICAgICBpZiAoZkNCLmNvbnRhaW5zKHRoaXNDaGFyKSB8fCBmQ0IuY29udGFpbnMocHJldkNoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAxNQorICAgICAgICAgICAgICAgIGlmIChmQkEuY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmSFkuY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmTlMuY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmQkIuY29udGFpbnMocHJldkNoYXIpICkgICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAxNgorICAgICAgICAgICAgICAgIGlmIChmQUwuY29udGFpbnMocHJldkNoYXIpICYmIGZJTi5jb250YWlucyh0aGlzQ2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZJRC5jb250YWlucyhwcmV2Q2hhcikgJiYgZklOLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgZklOLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmSU4uY29udGFpbnModGhpc0NoYXIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBmTlUuY29udGFpbnMocHJldkNoYXIpICYmIGZJTi5jb250YWlucyh0aGlzQ2hhcikgKSAgIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDE3ICAgIElEIHggUE8gICAgKE5vdGU6ICBMZWFkaW5nIENNIGJlaGF2ZXMgbGlrZSBJRCkKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICBBTCB4IE5VCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgTlUgeCBBTAorICAgICAgICAgICAgICAgIGlmIChmSUQuY29udGFpbnMocHJldkNoYXIpICYmIGZQTy5jb250YWlucyh0aGlzQ2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZBTC5jb250YWlucyhwcmV2Q2hhcikgJiYgZk5VLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgZk5VLmNvbnRhaW5zKHByZXZDaGFyKSAmJiBmQUwuY29udGFpbnModGhpc0NoYXIpICkgICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAxOCAgICBOdW1iZXJzCisgICAgICAgICAgICAgICAgbWF0Y2hWYWxzID0gTEJOdW1iZXJDaGVjayhmVGV4dCwgcHJldlBvcywgbWF0Y2hWYWxzKTsKKyAgICAgICAgICAgICAgICBpZiAobWF0Y2hWYWxzWzBdICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIE1hdGNoZWQgYSBudW1iZXIuICBCdXQgY291bGQgaGF2ZSBiZWVuIGp1c3QgYSBzaW5nbGUgZGlnaXQsIHdoaWNoIHdvdWxkCisgICAgICAgICAgICAgICAgICAgIC8vICAgIG5vdCByZXByZXNlbnQgYSAibm8gYnJlYWsgaGVyZSIgYmV0d2VlbiBwcmV2Q2hhciBhbmQgdGhpc0NoYXIKKyAgICAgICAgICAgICAgICAgICAgaW50IG51bUVuZElkeCA9IG1hdGNoVmFsc1sxXTsgIC8vIGlkeCBvZiBmaXJzdCBjaGFyIGZvbGxvd2luZyBudW0KKyAgICAgICAgICAgICAgICAgICAgaWYgKG51bUVuZElkeCA+IHBvcykgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTnVtYmVyIG1hdGNoIGluY2x1ZGVzIGF0IGxlYXN0IHRoZSB0d28gY2hhcnMgYmVpbmcgY2hlY2tlZAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bUVuZElkeCA+IG5leHRQb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOdW1iZXIgbWF0Y2ggaW5jbHVkZXMgYWRkaXRpb25hbCBjaGFycy4gIFVwZGF0ZSBwb3MgYW5kIG5leHRQb3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIHNvIHRoYXQgbmV4dCBsb29wIGl0ZXJhdGlvbiB3aWxsIGNvbnRpbnVlIGF0IHRoZSBlbmQgb2YgdGhlIG51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGNoZWNraW5nIGZvciBicmVha3MgYmV0d2VlbiBsYXN0IGNoYXIgaW4gbnVtYmVyICYgd2hhdGV2ZXIgZm9sbG93cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0UG9zID0gbnVtRW5kSWR4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyAgICAgPSBudW1FbmRJZHg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBtb3ZlSW5kZXgzMihmVGV4dCwgcG9zLCAtMSk7ICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc0NoYXIgPSBVVEYxNi5jaGFyQXQoZlRleHQsIHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChmQ00uY29udGFpbnModGhpc0NoYXIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChmUFIuY29udGFpbnMocHJldkNoYXIpICYmIGZBTC5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7ICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChmUFIuY29udGFpbnMocHJldkNoYXIpICYmIGZJRC5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDE4YiAgRG8gbm90IGJyZWFrIEtvcmVhbiBTeWxsYWJsZXMKKyAgICAgICAgICAgICAgICBpZiAoZkpMLmNvbnRhaW5zKHByZXZDaGFyKSAmJiAoZkpMLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkpWLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkgyLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkgzLmNvbnRhaW5zKHRoaXNDaGFyKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICgoZkpWLmNvbnRhaW5zKHByZXZDaGFyKSB8fCBmSDIuY29udGFpbnMocHJldkNoYXIpKSAgJiYKKyAgICAgICAgICAgICAgICAgICAgKGZKVi5jb250YWlucyh0aGlzQ2hhcikgfHwgZkpULmNvbnRhaW5zKHRoaXNDaGFyKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICgoZkpULmNvbnRhaW5zKHByZXZDaGFyKSB8fCBmSDMuY29udGFpbnMocHJldkNoYXIpKSAmJgorICAgICAgICAgICAgICAgICAgICBmSlQuY29udGFpbnModGhpc0NoYXIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBMQiAxOGMgIG1vcmUgS29yZWFuCisgICAgICAgICAgICAgICAgaWYgKChmSkwuY29udGFpbnMocHJldkNoYXIpIHx8IGZKVi5jb250YWlucyhwcmV2Q2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgZkpULmNvbnRhaW5zKHByZXZDaGFyKSB8fCBmSDIuY29udGFpbnMocHJldkNoYXIpIHx8IGZIMy5jb250YWlucyhwcmV2Q2hhcikpICYmCisgICAgICAgICAgICAgICAgICAgIGZJTi5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKChmSkwuY29udGFpbnMocHJldkNoYXIpIHx8IGZKVi5jb250YWlucyhwcmV2Q2hhcikgfHwKKyAgICAgICAgICAgICAgICAgICAgZkpULmNvbnRhaW5zKHByZXZDaGFyKSB8fCBmSDIuY29udGFpbnMocHJldkNoYXIpIHx8IGZIMy5jb250YWlucyhwcmV2Q2hhcikpICYmCisgICAgICAgICAgICAgICAgICAgIGZQTy5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGZQUi5jb250YWlucyhwcmV2Q2hhcikgJiYgKGZKTC5jb250YWlucyh0aGlzQ2hhcikgfHwgZkpWLmNvbnRhaW5zKHRoaXNDaGFyKSB8fAorICAgICAgICAgICAgICAgICAgICBmSlQuY29udGFpbnModGhpc0NoYXIpIHx8IGZIMi5jb250YWlucyh0aGlzQ2hhcikgfHwgZkgzLmNvbnRhaW5zKHRoaXNDaGFyKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBMQiAxOQorICAgICAgICAgICAgICAgIGlmIChmQUwuY29udGFpbnMocHJldkNoYXIpICYmIGZBTC5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDE5YgorICAgICAgICAgICAgICAgIGlmIChmSVMuY29udGFpbnMocHJldkNoYXIpICYmIGZBTC5jb250YWlucyh0aGlzQ2hhcikpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIExCIDIwICAgIEJyZWFrIGV2ZXJ5d2hlcmUgZWxzZQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gcG9zOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIC8vIE1hdGNoIHRoZSBmb2xsb3dpbmcgcmVndWxhciBleHByZXNzaW9uIGluIHRoZSBpbnB1dCB0ZXh0LgorICAgICAgICAvLyAgICAgKFBSIENNKik/ICgoT1AgfCBIWSkgQ00qKT8gTlUgQ00qICgoTlUgfCBJUyB8IFNZKSBDTSopICogKENMIENNKik/ICAoUE8gQ00qKT8KKyAgICAgICAgLy8gICAgICAwICAxICAgICAgIDMgICAgMyAgICAzICAgICAgICA3ICAgICA3ICAgIDcgICAgNyAgICA3ICAgICAgOSAgIDkgICAgIDExIDExICAgIChtYXRjaCBzdGF0ZXMpCisgICAgICAgIC8vICByZXRWYWxzIGFycmF5ICBbMF0gIGluZGV4IG9mIHRoZSBzdGFydCBvZiB0aGUgbWF0Y2gsIG9yIC0xIGlmIG5vIG1hdGNoCisgICAgICAgIC8vICAgICAgICAgICAgICAgICBbMV0gIGluZGV4IG9mIGZpcnN0IGNoYXIgZm9sbG93aW5nIHRoZSBtYXRjaC4KKyAgICAgICAgLy8gIENhbiBub3QgdXNlIEphdmEgcmVnZXggYmVjYXVzZSBuZWVkIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIHN1cHBvcnQsCisgICAgICAgIC8vICAgICBhbmQgYmVjYXVzZSBVbmljb2RlIGNoYXIgcHJvcGVydGllcyB2ZXJzaW9uIG11c3QgYmUgdGhlIHNhbWUgYXMgaW4KKyAgICAgICAgLy8gICAgIHRoZSB2ZXJzaW9uIG9mIElDVSBiZWluZyB0ZXN0ZWQuCisgICAgICAgIHByaXZhdGUgaW50W10gTEJOdW1iZXJDaGVjayhTdHJpbmdCdWZmZXIgcywgaW50IHN0YXJ0SWR4LCBpbnRbXSByZXRWYWxzKSB7CisgICAgICAgICAgICBpZiAocmV0VmFscyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0VmFscyA9IG5ldyBpbnRbMl07CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0VmFsc1swXSAgICAgPSAtMTsgIC8vIEluZGljYXRlcyBubyBtYXRjaC4KKyAgICAgICAgICAgIGludCBtYXRjaFN0YXRlID0gMDsKKyAgICAgICAgICAgIGludCBpZHggICAgICAgID0gc3RhcnRJZHg7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1hdGNoTG9vcDogZm9yIChpZHggPSBzdGFydElkeDsgaWR4PHMubGVuZ3RoKCk7IGlkeCA9IG1vdmVJbmRleDMyKHMsIGlkeCwgMSkpeworICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KHMsIGlkeCk7CisgICAgICAgICAgICAgICAgaW50IGNMQlR5cGUgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYywgVVByb3BlcnR5LkxJTkVfQlJFQUspOworICAgICAgICAgICAgICAgIHN3aXRjaCAobWF0Y2hTdGF0ZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6ICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5QUkVGSVhfTlVNRVJJQykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSAxOyAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5PUEVOX1BVTkNUVUFUSU9OKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5IWVBIRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gNDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLk5VTUVSSUMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gNzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIG1hdGNoTG9vcDsgICAvKiBObyBNYXRjaCAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5DT01CSU5JTkdfTUFSSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuT1BFTl9QVU5DVFVBVElPTikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuSFlQSEVOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5OVU1FUklDKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBtYXRjaExvb3A7ICAgLyogTm8gTWF0Y2ggICovCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5DT01CSU5JTkdfTUFSSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuTlVNRVJJQykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA3OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWF0Y2hMb29wOyAgIC8qIE5vIE1hdGNoICAqLworICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIChQUiBDTSopPyAoKE9QIHwgSFkpIENNKik/IE5VIENNKiAoKE5VIHwgSVMgfCBTWSkgQ00qKSAqIChDTCBDTSopPyAgKFBPIENNKik/CisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgIDAgIDEgICAgICAgMyAgICAzICAgIDQgICAgNyAgIDcgICAgIDcgICAgNyAgICA3ICAgIDcgICAgICA5ICAgOSAgICAgMTEgMTEgICAgKG1hdGNoIHN0YXRlcykKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5DT01CSU5JTkdfTUFSSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA3OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuTlVNRVJJQykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA3OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuSU5GSVhfTlVNRVJJQykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA3OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuQlJFQUtfU1lNQk9MUykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA3OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLkNMT1NFX1BVTkNUVUFUSU9OKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5QT1NURklYX05VTUVSSUMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFN0YXRlID0gMTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBtYXRjaExvb3A7ICAgIC8vIE1hdGNoIENvbXBsZXRlLgorICAgICAgICAgICAgICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY0xCVHlwZSA9PSBVQ2hhcmFjdGVyLkxpbmVCcmVhay5DT01CSU5JTkdfTUFSSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoU3RhdGUgPSA5OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNMQlR5cGUgPT0gVUNoYXJhY3Rlci5MaW5lQnJlYWsuUE9TVEZJWF9OVU1FUklDKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDExOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWF0Y2hMb29wOyAgICAvLyBNYXRjaCBDb21wbGV0ZS4KKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjTEJUeXBlID09IFVDaGFyYWN0ZXIuTGluZUJyZWFrLkNPTUJJTklOR19NQVJLKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hTdGF0ZSA9IDExOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWF0Y2hMb29wOyAgICAvLyBNYXRjaCBDb21wbGV0ZS4KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobWF0Y2hTdGF0ZSA+IDQpIHsKKyAgICAgICAgICAgICAgICByZXRWYWxzWzBdID0gc3RhcnRJZHg7ICAgCisgICAgICAgICAgICAgICAgIHJldFZhbHNbMV0gPSBpZHg7ICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmV0VmFsczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIExpc3QgIGNoYXJDbGFzc2VzKCkgeworICAgICAgICAgICAgcmV0dXJuIGZTZXRzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAKKyAgICAKKyAgICB9CisKKyAgICAgCisgICAgLyoqCisgICAgICogTW92ZSBhbiBpbmRleCBpbnRvIGEgc3RyaW5nIGJ5IG4gY29kZSBwb2ludHMuCisgICAgICogICBTaW1pbGFyIHRvIFVURjE2Lm1vdmVDb2RlUG9pbnRPZmZzZXQsIGJ1dCB3aXRob3V0IHRoZSBleGNlcHRpb25zLCB3aGljaCB3ZXJlCisgICAgICogICBjb21wbGljYXRpbmcgdXNhZ2UuCisgICAgICogQHBhcmFtIHMgICBhIFRleHQgc3RyaW5nCisgICAgICogQHBhcmFtIGkgICBUaGUgc3RhcnRpbmcgY29kZSB1bml0IGluZGV4IGludG8gdGhlIHRleHQgc3RyaW5nCisgICAgICogQHBhcmFtIGFtdCAgVGhlIGFtb3VudCB0byBhZGp1c3QgdGhlIHN0cmluZyBieS4KKyAgICAgKiBAcmV0dXJuICAgIFRoZSBhZGp1c3RlZCBjb2RlIHVuaXQgaW5kZXgsIHBpbm5lZCB0byB0aGUgc3RyaW5nJ3MgbGVuZ3RoLCBvcgorICAgICAqICAgICAgICAgICAgdW5jaGFuZ2VkIGlmIGlucHV0IGluZGV4IHdhcyBvdXRzaWRlIG9mIHRoZSBzdHJpbmcuCisgICAgICovCisgICAgc3RhdGljIGludCBtb3ZlSW5kZXgzMihTdHJpbmdCdWZmZXIgcywgaW50IHBvcywgaW50IGFtdCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgY2hhciAgYzsKKyAgICAgICAgaWYgKGFtdD4wKSB7CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxhbXQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChwb3MgPj0gcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcy5sZW5ndGgoKTsgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGMgPSBzLmNoYXJBdChwb3MpOworICAgICAgICAgICAgICAgIHBvcysrOworICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykgJiYgcG9zIDwgcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBjID0gcy5jaGFyQXQocG9zKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcysrOyAgIAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZm9yIChpPTA7IGk+YW10OyBpLS0pIHsKKyAgICAgICAgICAgICAgICBpZiAocG9zIDw9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7ICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBvcy0tOworICAgICAgICAgICAgICAgIGMgPSBzLmNoYXJBdChwb3MpOworICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMpICYmIHBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGMgPSBzLmNoYXJBdChwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MtLTsgICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcG9zOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGlucHV0IHRleHQuCisgICAgICogQHBhcmFtIGkgdGhlIHByZWNlZGluZyBpbmRleAorICAgICAqIEByZXR1cm4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgaW50ICBuZXh0Q1AoU3RyaW5nQnVmZmVyIHMsIGludCBpKSB7CisgICAgICAgIGlmIChpID09IC0xKSB7CisgICAgICAgICAgICAvLyBFbmQgb2YgSW5wdXQgaW5kaWNhdGlvbi4gIENvbnRpbnVlIHRvIHJldHVybiBlbmQgdmFsdWUuCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgaW50ICByZXRWYWwgPSBpICsgMTsKKyAgICAgICAgaWYgKHJldFZhbCA+IHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBpbnQgIGMgPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgIGlmIChjID49IFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICByZXRWYWwrKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmV0VmFsOworICAgIH0KKworCisgICAgLy8KKyAgICAvLyAgVGhlIGZvbGxvd2luZyBVbmljb2RlU2V0cyBhcmUgdXNlZCBpbiBtYXRjaGluZyBhIEdyYXBoZW1lIENsdXN0ZXIKKyAgICAvLworICAgIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgR0NfQ29udHJvbDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IEdDX0V4dGVuZCA7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBHQ19MIDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IEdDX1YgOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgR0NfVCA7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBHQ19MVjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IEdDX0xWVCA7CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0KCl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBHQ19Db250cm9sID0gbmV3IFVuaWNvZGVTZXQoIltbOlpsOl1bOlpwOl1bOkNjOl1bOkNmOl0tW1xcdTAwMGRcXHUwMDBhXS1bOkdyYXBoZW1lX0V4dGVuZDpdXSIpOworICAgICAgIAorICAgICAgICBHQ19FeHRlbmQgPSBuZXcgVW5pY29kZVNldCgiW1s6R3JhcGhlbWVfRXh0ZW5kOl1dIik7CisgICAgICAgCisgICAgICAgIEdDX0wgPSBuZXcgVW5pY29kZVNldCgiW1s6SGFuZ3VsX1N5bGxhYmxlX1R5cGU9TDpdXSIpOworICAgICAgIAorICAgICAgICBHQ19WID0gbmV3IFVuaWNvZGVTZXQoIltbOkhhbmd1bF9TeWxsYWJsZV9UeXBlPVY6XV0iKTsKKyAgICAgICAKKyAgICAgICAgR0NfVCA9IG5ldyBVbmljb2RlU2V0KCJbWzpIYW5ndWxfU3lsbGFibGVfVHlwZT1UOl1dIik7CisgICAgICAgCisgICAgICAgIEdDX0xWID0gbmV3IFVuaWNvZGVTZXQoIltbOkhhbmd1bF9TeWxsYWJsZV9UeXBlPUxWOl1dIik7CisgICAgICAgCisgICAgICAgIEdDX0xWVCA9IG5ldyBVbmljb2RlU2V0KCJbWzpIYW5ndWxfU3lsbGFibGVfVHlwZT1MVlQ6XV0iKTsKKyAgICB9CisgICAgLyoqCisgICAgICogRmluZCB0aGUgZW5kIG9mIHRoZSBleHRlbnQgb2YgYSBncmFwaGVtZSBjbHVzdGVyLgorICAgICAqIFRoaXMgaXMgdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiB1c2VkIGJ5IHRoZSBtb25rZXkgdGVzdCBmb3IgY29tcGFyaXNvbgorICAgICAqIHdpdGggdGhlIFJCQkkgcmVzdWx0cy4KKyAgICAgKiBAcGFyYW0gcyAgVGhlIHN0cmluZyBjb250YWluaW5nIHRoZSB0ZXh0IHRvIGJlIGFuYWx5emVkICAKKyAgICAgKiBAcGFyYW0gaSAgVGhlIGluZGV4IG9mIHRoZSBzdGFydCBvZiB0aGUgZ3JhcGhlbWUgY2x1c3Rlci4KKyAgICAgKiBAcmV0dXJuICAgVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjb2RlIHBvaW50IGZvbGxvd2luZyB0aGUgZ3JhcGhlbWUgY2x1c3RlcgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBuZXh0R0MoU3RyaW5nQnVmZmVyIHMsIGludCBpKSB7CisgICAgICAgIGlmIChpID49IHMubGVuZ3RoKCkgfHwgaSA9PSAtMSApIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIGludCAgYyA9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgaW50ICBwb3MgPSBpOworICAgICAgICAKKyAgICAgICAgaWYgKGMgPT0gMHgwZCkgeworICAgICAgICAgICAgcG9zID0gbmV4dENQKHMsIGkpOworICAgICAgICAgICAgaWYgKHBvcyA+PSBzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBvczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQocywgcG9zKTsKKyAgICAgICAgICAgIGlmIChjID09IDB4MGEpIHsKKyAgICAgICAgICAgICAgICBwb3MgPSBuZXh0Q1AocywgcG9zKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChHQ19Db250cm9sLmNvbnRhaW5zKGMpIHx8IGMgPT0gMHgwYSkgeworICAgICAgICAgICAgcG9zID0gbmV4dENQKHMsIHBvcyk7CisgICAgICAgICAgICByZXR1cm4gcG9zOyAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBMaXR0bGUgc3RhdGUgbWFjaGluZSB0byBjb25zdW1lIEhhbmd1bCBTeWxsYWJsZXMKKyAgICAgICAgaW50ICBoYW5ndWxTdGF0ZSA9IDE7CisgICAgICAgIHN0YXRlX2xvb3A6IGZvciAoOzspIHsKKyAgICAgICAgICAgIHN3aXRjaCAoaGFuZ3VsU3RhdGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIGlmIChHQ19MLmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYW5ndWxTdGF0ZSA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoR0NfVi5jb250YWlucyhjKSB8fCBHQ19MVi5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZ3VsU3RhdGUgPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX1QuY29udGFpbnMoYykgfHwgR0NfTFZULmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYW5ndWxTdGF0ZSA9IDQ7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhayBzdGF0ZV9sb29wOworICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX0wuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIGluIHN0YXRlIDIuCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoR0NfVi5jb250YWlucyhjKSB8fCBHQ19MVi5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZ3VsU3RhdGUgPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX0xWVC5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZ3VsU3RhdGUgPSA0OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX0V4dGVuZC5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZ3VsU3RhdGUgPSA1OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgc3RhdGVfbG9vcDsKKyAgICAgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgICAgIGlmIChHQ19WLmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250aW51ZSBpbiBzdGF0ZSAzOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX1QuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmd1bFN0YXRlID0gNDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChHQ19FeHRlbmQuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmd1bFN0YXRlID0gNTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrIHN0YXRlX2xvb3A7CisgICAgICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgICAgICBpZiAoR0NfVC5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGludWUgaW4gc3RhdGUgNAorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKEdDX0V4dGVuZC5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZ3VsU3RhdGUgPSA1OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgc3RhdGVfbG9vcDsKKyAgICAgICAgICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICAgICAgICAgIGlmIChHQ19FeHRlbmQuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmd1bFN0YXRlID0gNTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhayBzdGF0ZV9sb29wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gV2UgaGF2ZSBleGl0ZWQgdGhlIHN3aXRjaCBzdGF0ZW1lbnQsIGJ1dCBhcmUgc3RpbGwgaW4gdGhlIGxvb3AuCisgICAgICAgICAgICAvLyBTdGlsbCBpbiBhIEhhbmd1bCBTeWxsYWJsZSwgYWR2YW5jZSB0byB0aGUgbmV4dCBjb2RlIHBvaW50LgorICAgICAgICAgICAgcG9zID0gbmV4dENQKHMsIHBvcyk7IAorICAgICAgICAgICAgaWYgKHBvcyA+PSBzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjID0gVVRGMTYuY2hhckF0KHMsIHBvcyk7ICAgIAorICAgICAgICB9ICAvLyBlbmQgb2YgbG9vcAorICAgICAgICAKKyAgICAgICAgaWYgKGhhbmd1bFN0YXRlICE9IDEpIHsKKyAgICAgICAgICAgIC8vIFdlIGZvdW5kIGEgSGFuZ3VsLiAgV2UncmUgZG9uZS4KKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE9yZGluYXJ5IGNoYXJhY3RlcnMuICBDb25zdW1lIG9uZSBjb2RlcG9pbnQgdW5jb25kaXRpb25hbGx5LCB0aGVuIGFueSBmb2xsb3dpbmcgRXh0ZW5kcy4KKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgcG9zID0gbmV4dENQKHMsIHBvcyk7IAorICAgICAgICAgICAgaWYgKHBvcyA+PSBzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjID0gVVRGMTYuY2hhckF0KHMsIHBvcyk7ICAgIAorICAgICAgICAgICAgaWYgKEdDX0V4dGVuZC5jb250YWlucyhjKSA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcG9zOyAgIAorICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiByYW5kb20gbnVtYmVyIGdlbmVyYXRvci4gIE5vdCB1c2luZyBKYXZhJ3MgYnVpbHQtaW4gUmFuZG9tcyBmb3IgdHdvIHJlYXNvbnM6CisgICAgICogICAgMS4gIFVzaW5nIHRoaXMgY29kZSBhbGxvd3Mgb2J0YWluaW5nIHRoZSBzYW1lIHNlcXVlbmNlcyBhcyB0aG9zZSBmcm9tIHRoZSBJQ1U0QyBtb25rZXkgdGVzdC4KKyAgICAgKiAgICAyLiAgV2UgbmVlZCB0byBnZXQgYW5kIHJlc3RvcmUgdGhlIHNlZWQgZnJvbSB2YWx1ZXMgb2NjdXJpbmcgaW4gdGhlIG1pZGRsZQorICAgICAqICAgICAgICBvZiBhIGxvbmcgc2VxdWVuY2UsIHRvIG1vcmUgZWFzaWx5IHJlcHJvZHVjZSBmYWlsaW5nIGNhc2VzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBtX3NlZWQgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGludCAgbV9yYW5kKCkKKyAgICB7CisgICAgICAgIG1fc2VlZCA9IG1fc2VlZCAqIDExMDM1MTUyNDUgKyAxMjM0NTsKKyAgICAgICAgcmV0dXJuIChpbnQpKG1fc2VlZCA+Pj4gMTYpICUgMzI3Njg7CisgICAgfQorCisgICAgCisvKioKKyAqICBSdW4gYSBSQkJJIG1vbmtleSB0ZXN0LiAgQ29tbW9uIHJvdXRpbmUsIGZvciBhbGwgYnJlYWsgaXRlcmF0b3IgdHlwZXMuCisgKiAgICBQYXJhbWV0ZXJzOgorICogICAgICAgYmkgICAgICAtIHRoZSBicmVhayBpdGVyYXRvciB0byB1c2UKKyAqICAgICAgIG1rICAgICAgLSBNb25rZXlLaW5kLCBhYnN0cmFjdGlvbiBmb3Igb2J0YWluaW5nIGV4cGVjdGVkIHJlc3VsdHMKKyAqICAgICAgIG5hbWUgICAgLSBOYW1lIG9mIHRlc3QgKGNoYXIsIHdvcmQsIGV0Yy4pIGZvciB1c2UgaW4gZXJyb3IgbWVzc2FnZXMKKyAqICAgICAgIHNlZWQgICAgLSBTZWVkIGZvciBzdGFydGluZyByYW5kb20gbnVtYmVyIGdlbmVyYXRvciAocGFyYW1ldGVyIGZyb20gdXNlcikKKyAqICAgICAgIG51bUl0ZXJhdGlvbnMKKyAqLwordm9pZCBSdW5Nb25rZXkoQnJlYWtJdGVyYXRvciAgYmksIFJCQklNb25rZXlLaW5kIG1rLCBTdHJpbmcgbmFtZSwgaW50ICBzZWVkLCBpbnQgbnVtSXRlcmF0aW9ucykgeworICAgIGludCAgICAgICAgICAgICAgVEVTVFNUUklOR0xFTiA9IDUwMDsKKyAgICBTdHJpbmdCdWZmZXIgICAgIHRlc3RUZXh0ICAgICAgICAgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgaW50ICAgICAgICAgICAgICBudW1DaGFyQ2xhc3NlczsKKyAgICBMaXN0ICAgICAgICAgICAgIGNoQ2xhc3NlczsKKyAgICBpbnRbXSAgICAgICAgICAgIGV4cGVjdGVkICAgICAgICAgPSBuZXcgaW50W1RFU1RTVFJJTkdMRU4qMiArIDFdOworICAgIGludCAgICAgICAgICAgICAgZXhwZWN0ZWRDb3VudCAgICA9IDA7CisgICAgYm9vbGVhbltdICAgICAgICBleHBlY3RlZEJyZWFrcyAgID0gbmV3IGJvb2xlYW5bVEVTVFNUUklOR0xFTioyICsgMV07CisgICAgYm9vbGVhbltdICAgICAgICBmb3J3YXJkQnJlYWtzICAgID0gbmV3IGJvb2xlYW5bVEVTVFNUUklOR0xFTioyICsgMV07CisgICAgYm9vbGVhbltdICAgICAgICByZXZlcnNlQnJlYWtzICAgID0gbmV3IGJvb2xlYW5bVEVTVFNUUklOR0xFTioyICsgMV07CisgICAgYm9vbGVhbltdICAgICAgICBpc0JvdW5kYXJ5QnJlYWtzID0gbmV3IGJvb2xlYW5bVEVTVFNUUklOR0xFTioyICsgMV07CisgICAgYm9vbGVhbltdICAgICAgICBmb2xsb3dpbmdCcmVha3MgID0gbmV3IGJvb2xlYW5bVEVTVFNUUklOR0xFTioyICsgMV07CisgICAgYm9vbGVhbltdICAgICAgICBwcmVjZWRpbmdCcmVha3MgID0gbmV3IGJvb2xlYW5bVEVTVFNUUklOR0xFTioyICsgMV07CisgICAgaW50ICAgICAgICAgICAgICBpOworICAgIGludCAgICAgICAgICAgICAgbG9vcENvdW50ICAgICAgICA9IDA7CisgICAgYm9vbGVhbiAgICAgICAgICBwcmludFRlc3REYXRhICAgID0gZmFsc2U7CisgICAgYm9vbGVhbiAgICAgICAgICBwcmludEJyZWFrc0Zyb21CSSA9IGZhbHNlOworCisgICAgbV9zZWVkID0gc2VlZDsKKworICAgIG51bUNoYXJDbGFzc2VzID0gbWsuY2hhckNsYXNzZXMoKS5zaXplKCk7CisgICAgY2hDbGFzc2VzICAgICAgPSBtay5jaGFyQ2xhc3NlcygpOworCisgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGNoYXJhY3RlciBjbGFzc2VzIGFsbCBoYXZlIGF0IGxlYXN0IG9uZSBtZW1iZXIuCisgICAgZm9yIChpPTA7IGk8bnVtQ2hhckNsYXNzZXM7IGkrKykgeworICAgICAgICBVbmljb2RlU2V0IHMgPSAoVW5pY29kZVNldCljaENsYXNzZXMuZ2V0KGkpOworICAgICAgICBpZiAocyA9PSBudWxsIHx8IHMuc2l6ZSgpID09IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXIgQ2xhc3MgIiArIGkgKyAiIGlzIG51bGwgb3Igb2YgemVybyBzaXplLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vCisgICAgLy8gIERlYnVnZ2luZyBzZXR0aW5ncy4gIENvbW1lbnQgb3V0IGV2ZXJ5dGhpbmcgaW4gdGhlIGZvbGxvd2luZyBibG9jayBmb3Igbm9ybWFsIG9wZXJhdGlvbgorICAgIC8vCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIG51bUl0ZXJhdGlvbnMgPSAtMTsgIAorICAgIC8vIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfTmV3LmZUcmFjZSA9IHRydWU7CisgICAgLy8gbV9zZWVkID0gNjY4Njg2NDQxOworICAgIC8vIFRFU1RTVFJJTkdMRU4gPSA1MDsKKyAgICAvLyBwcmludFRlc3REYXRhID0gdHJ1ZTsKKyAgICAvLyBwcmludEJyZWFrc0Zyb21CSSA9IHRydWU7CisgICAgLy8gKChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX05ldyliaSkuZHVtcCgpOworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLworICAgIC8vICBFbmQgb2YgRGVidWdnaW5nIHNldHRpbmdzLiAgCisgICAgLy8KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgaW50ICBkb3RzT25MaW5lID0gMDsKKyAgICB3aGlsZSAobG9vcENvdW50IDwgbnVtSXRlcmF0aW9ucyB8fCBudW1JdGVyYXRpb25zID09IC0xKSB7CisgICAgICAgIGlmIChudW1JdGVyYXRpb25zID09IC0xICYmIGxvb3BDb3VudCAlIDEwID09IDApIHsKKyAgICAgICAgICAgIC8vIElmIHRlc3QgaXMgcnVubmluZyBpbiBhbiBpbmZpbml0ZSBsb29wLCBkaXNwbGF5IGEgcGVyaW9kaWMgdGljIHNvCisgICAgICAgICAgICAvLyAgIHdlIGNhbiB0ZWxsIHRoYXQgaXQgaXMgbWFraW5nIHByb2dyZXNzLgorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiLiIpOworICAgICAgICAgICAgaWYgKGRvdHNPbkxpbmUrKyA+PSA4MCl7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgZG90c09uTGluZSA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gU2F2ZSBjdXJyZW50IHJhbmRvbSBudW1iZXIgc2VlZCwgc28gdGhhdCB3ZSBjYW4gcmVjcmVhdGUgdGhlIHJhbmRvbSBudW1iZXJzCisgICAgICAgIC8vICAgZm9yIHRoaXMgbG9vcCBpdGVyYXRpb24gaW4gZXZlbnQgb2YgYW4gZXJyb3IuCisgICAgICAgIHNlZWQgPSBtX3NlZWQ7CisKKyAgICAgICAgdGVzdFRleHQuc2V0TGVuZ3RoKDApOworICAgICAgICAvLyBQb3B1bGF0ZSBhIHRlc3Qgc3RyaW5nIHdpdGggZGF0YS4KKyAgICAgICAgaWYgKHByaW50VGVzdERhdGEpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdCBEYXRhIHN0cmluZyAuLi4iKTsgCisgICAgICAgIH0KKyAgICAgICAgZm9yIChpPTA7IGk8VEVTVFNUUklOR0xFTjsgaSsrKSB7CisgICAgICAgICAgICBpbnQgICAgICAgIGFDbGFzc051bSA9IG1fcmFuZCgpICUgbnVtQ2hhckNsYXNzZXM7CisgICAgICAgICAgICBVbmljb2RlU2V0IGNsYXNzU2V0ICA9IChVbmljb2RlU2V0KWNoQ2xhc3Nlcy5nZXQoYUNsYXNzTnVtKTsKKyAgICAgICAgICAgIGludCAgICAgICAgY2hhcklkeCAgID0gbV9yYW5kKCkgJSBjbGFzc1NldC5zaXplKCk7CisgICAgICAgICAgICBpbnQgICAgICAgIGMgICAgICAgICA9IGNsYXNzU2V0LmNoYXJBdChjaGFySWR4KTsKKyAgICAgICAgICAgIGlmIChjIDwgMCkgeyAgIC8vIFRPRE86ICBkZWFsIHdpdGggc2V0cyBjb250YWluaW5nIHN0cmluZ3MuCisgICAgICAgICAgICAgICAgZXJybG4oImMgPCAwIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVVEYxNi5hcHBlbmRDb2RlUG9pbnQodGVzdFRleHQsIGMpOworICAgICAgICAgICAgaWYgKHByaW50VGVzdERhdGEpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KEludGVnZXIudG9IZXhTdHJpbmcoYykgKyAiICIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChwcmludFRlc3REYXRhKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsgCisgICAgICAgIH0KKworICAgICAgICBBcnJheXMuZmlsbChleHBlY3RlZCwgMCk7CisgICAgICAgIEFycmF5cy5maWxsKGV4cGVjdGVkQnJlYWtzLCBmYWxzZSk7CisgICAgICAgIEFycmF5cy5maWxsKGZvcndhcmRCcmVha3MsIGZhbHNlKTsKKyAgICAgICAgQXJyYXlzLmZpbGwocmV2ZXJzZUJyZWFrcywgZmFsc2UpOworICAgICAgICBBcnJheXMuZmlsbChpc0JvdW5kYXJ5QnJlYWtzLCBmYWxzZSk7CisgICAgICAgIEFycmF5cy5maWxsKGZvbGxvd2luZ0JyZWFrcywgZmFsc2UpOworICAgICAgICBBcnJheXMuZmlsbChwcmVjZWRpbmdCcmVha3MsIGZhbHNlKTsKKyAKKyAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBleHBlY3RlZCByZXN1bHRzIGZvciB0aGlzIHRlc3Qgc3RyaW5nLgorICAgICAgICBtay5zZXRUZXh0KHRlc3RUZXh0KTsKKyAgICAgICAgZXhwZWN0ZWRDb3VudCA9IDA7CisgICAgICAgIGV4cGVjdGVkQnJlYWtzWzBdID0gdHJ1ZTsKKyAgICAgICAgZXhwZWN0ZWRbZXhwZWN0ZWRDb3VudCArK10gPSAwOworICAgICAgICBpbnQgYnJlYWtQb3MgPSAwOworICAgICAgICBpbnQgbGFzdEJyZWFrUG9zID0gLTE7CisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIGxhc3RCcmVha1BvcyA9IGJyZWFrUG9zOworICAgICAgICAgICAgYnJlYWtQb3MgPSBtay5uZXh0KGJyZWFrUG9zKTsKKyAgICAgICAgICAgIGlmIChicmVha1BvcyA9PSAtMSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJyZWFrUG9zID4gdGVzdFRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiYnJlYWtQb3MgPiB0ZXN0VGV4dC5sZW5ndGgoKSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxhc3RCcmVha1BvcyA+PSBicmVha1BvcykgeworICAgICAgICAgICAgICAgIGVycmxuKCJOZXh0KCkgbm90IGluY3JlYXNpbmcuIik7CisgICAgICAgICAgICAgICAgLy8gYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBleHBlY3RlZEJyZWFrc1ticmVha1Bvc10gPSB0cnVlOworICAgICAgICAgICAgZXhwZWN0ZWRbZXhwZWN0ZWRDb3VudCArK10gPSBicmVha1BvczsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpbmQgdGhlIGJyZWFrIHBvc2l0aW9ucyB1c2luZyBmb3J3YXJkIGl0ZXJhdGlvbgorICAgICAgICBpZiAocHJpbnRCcmVha3NGcm9tQkkpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQnJlYWtzIGZyb20gQkkuLi4iKTsgIAorICAgICAgICB9CisgICAgICAgIGJpLnNldFRleHQodGVzdFRleHQudG9TdHJpbmcoKSk7CisgICAgICAgIGZvciAoaT1iaS5maXJzdCgpOyBpICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgaT1iaS5uZXh0KCkpIHsKKyAgICAgICAgICAgIGlmIChpIDwgMCB8fCBpID4gdGVzdFRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbihuYW1lICsgIiBicmVhayBtb25rZXkgdGVzdDogT3V0IG9mIHJhbmdlIHZhbHVlIHJldHVybmVkIGJ5IGJyZWFrSXRlcmF0b3I6Om5leHQoKSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHByaW50QnJlYWtzRnJvbUJJKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpICsgIiAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvcndhcmRCcmVha3NbaV0gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChwcmludEJyZWFrc0Zyb21CSSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBGaW5kIHRoZSBicmVhayBwb3NpdGlvbnMgdXNpbmcgcmV2ZXJzZSBpdGVyYXRpb24KKyAgICAgICAgZm9yIChpPWJpLmxhc3QoKTsgaSAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7IGk9YmkucHJldmlvdXMoKSkgeworICAgICAgICAgICAgaWYgKGkgPCAwIHx8IGkgPiB0ZXN0VGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKG5hbWUgKyAiIGJyZWFrIG1vbmtleSB0ZXN0OiBPdXQgb2YgcmFuZ2UgdmFsdWUgcmV0dXJuZWQgYnkgYnJlYWtJdGVyYXRvci5uZXh0KCkiICsgbmFtZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXZlcnNlQnJlYWtzW2ldID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpbmQgdGhlIGJyZWFrIHBvc2l0aW9ucyB1c2luZyBpc0JvdW5kYXJ5KCkgdGVzdHMuCisgICAgICAgIGZvciAoaT0wOyBpPD10ZXN0VGV4dC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBpc0JvdW5kYXJ5QnJlYWtzW2ldID0gYmkuaXNCb3VuZGFyeShpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpbmQgdGhlIGJyZWFrIHBvc2l0aW9ucyB1c2luZyB0aGUgZm9sbG93aW5nKCkgZnVuY3Rpb24uCisgICAgICAgIGxhc3RCcmVha1BvcyA9IDA7CisgICAgICAgIGZvbGxvd2luZ0JyZWFrc1swXSA9IHRydWU7CisgICAgICAgIGZvciAoaT0wOyBpPHRlc3RUZXh0Lmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGJyZWFrUG9zID0gYmkuZm9sbG93aW5nKGkpOworICAgICAgICAgICAgaWYgKGJyZWFrUG9zIDw9IGkgfHwKKyAgICAgICAgICAgICAgICBicmVha1BvcyA8IGxhc3RCcmVha1BvcyB8fAorICAgICAgICAgICAgICAgIGJyZWFrUG9zID4gdGVzdFRleHQubGVuZ3RoKCkgfHwKKyAgICAgICAgICAgICAgICBicmVha1BvcyA+IGxhc3RCcmVha1BvcyAmJiBsYXN0QnJlYWtQb3MgPiBpICkgeworICAgICAgICAgICAgICAgIGVycmxuKG5hbWUgKyAiIGJyZWFrIG1vbmtleSB0ZXN0OiAiICsKKyAgICAgICAgICAgICAgICAgICAgIk91dCBvZiByYW5nZSB2YWx1ZSByZXR1cm5lZCBieSBCcmVha0l0ZXJhdG9yOjpmb2xsb3dpbmcoKS5cbiIgKworICAgICAgICAgICAgICAgICAgICAiaW5kZXg9IiArIGkgKyAiZm9sbG93aW5nIHJldHVybmVkPSIgKyBicmVha1BvcyArCisgICAgICAgICAgICAgICAgICAgICJsYXN0QnJlYWs9IiArIGxhc3RCcmVha1Bvcyk7CisgICAgICAgICAgICAgICAgcHJlY2VkaW5nQnJlYWtzW2ldID0gIWV4cGVjdGVkQnJlYWtzW2ldOyAgIC8vIEZvcmNlcyBhbiBlcnJvci4KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZm9sbG93aW5nQnJlYWtzW2JyZWFrUG9zXSA9IHRydWU7CisgICAgICAgICAgICAgICAgbGFzdEJyZWFrUG9zID0gYnJlYWtQb3M7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEZpbmQgdGhlIGJyZWFrIHBvc2l0aW9ucyB1c2luZyB0aGUgcHJlY2VkaW5nKCkgZnVuY3Rpb24uCisgICAgICAgIGxhc3RCcmVha1BvcyA9IHRlc3RUZXh0Lmxlbmd0aCgpOworICAgICAgICBwcmVjZWRpbmdCcmVha3NbdGVzdFRleHQubGVuZ3RoKCldID0gdHJ1ZTsKKyAgICAgICAgZm9yIChpPXRlc3RUZXh0Lmxlbmd0aCgpOyBpPjA7IGktLSkgeworICAgICAgICAgICAgYnJlYWtQb3MgPSBiaS5wcmVjZWRpbmcoaSk7CisgICAgICAgICAgICBpZiAoYnJlYWtQb3MgPj0gaSB8fAorICAgICAgICAgICAgICAgIGJyZWFrUG9zID4gbGFzdEJyZWFrUG9zIHx8CisgICAgICAgICAgICAgICAgYnJlYWtQb3MgPCAwIHx8CisgICAgICAgICAgICAgICAgYnJlYWtQb3MgPCBsYXN0QnJlYWtQb3MgJiYgbGFzdEJyZWFrUG9zIDwgaSApIHsKKyAgICAgICAgICAgICAgICBlcnJsbihuYW1lICsgIiBicmVhayBtb25rZXkgdGVzdDogIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiT3V0IG9mIHJhbmdlIHZhbHVlIHJldHVybmVkIGJ5IEJyZWFrSXRlcmF0b3I6OnByZWNlZGluZygpLlxuIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiaW5kZXg9IiArIGkgKyAicHJlY2VkaW5nIHJldHVybmVkPSIgKyBicmVha1BvcyArCisgICAgICAgICAgICAgICAgICAgICAgICAibGFzdEJyZWFrPSIgKyBsYXN0QnJlYWtQb3MpOworICAgICAgICAgICAgICAgIHByZWNlZGluZ0JyZWFrc1tpXSA9ICFleHBlY3RlZEJyZWFrc1tpXTsgICAvLyBGb3JjZXMgYW4gZXJyb3IuCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHByZWNlZGluZ0JyZWFrc1ticmVha1Bvc10gPSB0cnVlOworICAgICAgICAgICAgICAgIGxhc3RCcmVha1BvcyA9IGJyZWFrUG9zOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgCisKKyAgICAgICAgLy8gQ29tcGFyZSB0aGUgZXhwZWN0ZWQgYW5kIGFjdHVhbCByZXN1bHRzLgorICAgICAgICBmb3IgKGk9MDsgaTw9dGVzdFRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIGVycm9yVHlwZSA9IG51bGw7CisgICAgICAgICAgICBpZiAgKGZvcndhcmRCcmVha3NbaV0gIT0gZXhwZWN0ZWRCcmVha3NbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJvclR5cGUgPSAibmV4dCgpIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocmV2ZXJzZUJyZWFrc1tpXSAhPSBmb3J3YXJkQnJlYWtzW2ldKSB7CisgICAgICAgICAgICAgICAgZXJyb3JUeXBlID0gInByZXZpb3VzKCkiOworICAgICAgICAgICAgfSBlbHNlIGlmIChpc0JvdW5kYXJ5QnJlYWtzW2ldICE9IGV4cGVjdGVkQnJlYWtzW2ldKSB7CisgICAgICAgICAgICAgICAgZXJyb3JUeXBlID0gImlzQm91bmRhcnkoKSI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGZvbGxvd2luZ0JyZWFrc1tpXSAhPSBleHBlY3RlZEJyZWFrc1tpXSkgeworICAgICAgICAgICAgICAgIGVycm9yVHlwZSA9ICJmb2xsb3dpbmcoKSI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHByZWNlZGluZ0JyZWFrc1tpXSAhPSBleHBlY3RlZEJyZWFrc1tpXSkgeworICAgICAgICAgICAgICAgIGVycm9yVHlwZSA9ICJwcmVjZWRpbmcoKSI7CisgICAgICAgICAgICB9CisKKworICAgICAgICAgICAgaWYgKGVycm9yVHlwZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gRm9ybWF0IGEgcmFuZ2Ugb2YgdGhlIHRlc3QgdGV4dCB0aGF0IGluY2x1ZGVzIHRoZSBmYWlsdXJlIGFzCisgICAgICAgICAgICAgICAgLy8gIGEgZGF0YSBpdGVtIHRoYXQgY2FuIGJlIGluY2x1ZGVkIGluIHRoZSByYmJpIHRlc3QgZGF0YSBmaWxlLgorCisgICAgICAgICAgICAgICAgLy8gU3RhcnQgb2YgdGhlIHJhbmdlIGlzIHRoZSBsYXN0IHBvaW50IHdoZXJlIGV4cGVjdGVkIGFuZCBhY3R1YWwgcmVzdWx0cworICAgICAgICAgICAgICAgIC8vICAgYm90aCBhZ3JlZWQgdGhhdCB0aGVyZSB3YXMgYSBicmVhayBwb3NpdGlvbi4KKyAgICAgICAgICAgICAgICBpbnQgc3RhcnRDb250ZXh0ID0gaTsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0Q29udGV4dD09MCkgeyBicmVhazsgfQorICAgICAgICAgICAgICAgICAgICBzdGFydENvbnRleHQgLS07CisgICAgICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZEJyZWFrc1tzdGFydENvbnRleHRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMikgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEVuZCBvZiByYW5nZSBpcyB0d28gZXhwZWN0ZWQgYnJlYWtzIHBhc3QgdGhlIHN0YXJ0IHBvc2l0aW9uLgorICAgICAgICAgICAgICAgIGludCBlbmRDb250ZXh0ID0gaSArIDE7CisgICAgICAgICAgICAgICAgaW50IGNpOworICAgICAgICAgICAgICAgIGZvciAoY2k9MDsgY2k8MjsgY2krKykgeyAgLy8gTnVtYmVyIG9mIGl0ZW1zIHRvIGluY2x1ZGUgaW4gZXJyb3IgdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuZENvbnRleHQgPj0gdGVzdFRleHQubGVuZ3RoKCkpIHticmVhazt9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhwZWN0ZWRCcmVha3NbZW5kQ29udGV4dC0xXSkgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMCkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLS07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbmRDb250ZXh0ICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gRm9ybWF0IGxvb2tzIGxpa2UgICAiPGRhdGE+PD5cdWFiY2RcdWFiY2Q8PlxVMDAwMWFiY2QuLi48L2RhdGE+IgorICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBlcnJvclRleHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgZXJyb3JUZXh0LmFwcGVuZCgiPGRhdGE+Iik7CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGV4Q2hhcnMgPSAiMDEyMzQ1Njc4OWFiY2RlZiI7CisgICAgICAgICAgICAgICAgaW50ICAgICAgYzsgICAgLy8gQ2hhciBmcm9tIHRlc3QgZGF0YQorICAgICAgICAgICAgICAgIGludCAgICAgIGJuOworICAgICAgICAgICAgICAgIGZvciAoY2kgPSBzdGFydENvbnRleHQ7ICBjaSA8PSBlbmRDb250ZXh0ICYmIGNpICE9IC0xOyAgY2kgPSBuZXh0Q1AodGVzdFRleHQsIGNpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2kgPT0gaSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgbG9jYXRpb24gb2YgdGhlIGVycm9yLgorICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JUZXh0LmFwcGVuZCgiPD8+Iik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXhwZWN0ZWRCcmVha3NbY2ldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGEgbm9uLWVycm9yIGV4cGVjdGVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JUZXh0LmFwcGVuZCgiPD4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoY2kgPCB0ZXN0VGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IFVURjE2LmNoYXJBdCh0ZXN0VGV4dCwgY2kpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPCAweDEwMDAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JUZXh0LmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChibj0xMjsgYm4+PTA7IGJuLT00KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yVGV4dC5hcHBlbmQoaGV4Q2hhcnMuY2hhckF0KCgoKGludCljKT4+Ym4pJjB4ZikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JUZXh0LmFwcGVuZCgiXFxVIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChibj0yODsgYm4+PTA7IGJuLT00KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yVGV4dC5hcHBlbmQoaGV4Q2hhcnMuY2hhckF0KCgoKGludCljKT4+Ym4pJjB4ZikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2kgPT0gdGVzdFRleHQubGVuZ3RoKCkgJiYgY2kgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JUZXh0LmFwcGVuZCgiPD4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZXJyb3JUZXh0LmFwcGVuZCgiPC9kYXRhPlxuIik7CisKKyAgICAgICAgICAgICAgICAvLyBPdXRwdXQgdGhlIGVycm9yCisgICAgICAgICAgICAgICAgZXJybG4obmFtZSArICIgYnJlYWsgbW9ua2V5IHRlc3QgZXJyb3IuICAiICsgCisgICAgICAgICAgICAgICAgICAgICAoZXhwZWN0ZWRCcmVha3NbaV0/ICJCcmVhayBleHBlY3RlZCBidXQgbm90IGZvdW5kLiIgOiAiQnJlYWsgZm91bmQgYnV0IG5vdCBleHBlY3RlZC4iKSArCisgICAgICAgICAgICAgICAgICAgICAgIlxuT3BlcmF0aW9uID0gIiArIGVycm9yVHlwZSArICI7IHJhbmRvbSBzZWVkID0gIiArIHNlZWQgKyAiOyAgYnVmIElkeCA9ICIgKyBpICsgIlxuIiArCisgICAgICAgICAgICAgICAgICAgICAgZXJyb3JUZXh0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvb3BDb3VudCsrOworICAgIH0KK30KKworcHVibGljIHZvaWQgVGVzdENoYXJNb25rZXkoKSB7CisgICAgCisgICAgaW50ICAgICAgICBsb29wQ291bnQgPSA1MDA7CisgICAgaW50ICAgICAgICBzZWVkICAgICAgPSAxOworICAgIAorICAgIGlmIChwYXJhbXMuaW5jbHVzaW9uID49IDkpIHsKKyAgICAgICAgbG9vcENvdW50ID0gMTAwMDA7CisgICAgfQorICAgIAorICAgIFJCQklDaGFyTW9ua2V5ICBtID0gbmV3IFJCQklDaGFyTW9ua2V5KCk7CisgICAgQnJlYWtJdGVyYXRvciAgIGJpID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZShMb2NhbGUuVVMpOworICAgIFJ1bk1vbmtleShiaSwgbSwgImNoYXIiLCBzZWVkLCBsb29wQ291bnQpOworfQorCitwdWJsaWMgdm9pZCBUZXN0V29yZE1vbmtleSgpIHsKKyAgICAKKyAgICBpbnQgICAgICAgIGxvb3BDb3VudCA9IDUwMDsKKyAgICBpbnQgICAgICAgIHNlZWQgICAgICA9IDE7CisgICAgCisgICAgaWYgKHBhcmFtcy5pbmNsdXNpb24gPj0gOSkgeworICAgICAgICBsb29wQ291bnQgPSAxMDAwMDsKKyAgICB9CisgICAgCisgICAgbG9nbG4oIldvcmQgQnJlYWsgTW9ua2V5IFRlc3QiKTsKKyAgICBSQkJJV29yZE1vbmtleSAgbSA9IG5ldyBSQkJJV29yZE1vbmtleSgpOworICAgIEJyZWFrSXRlcmF0b3IgICBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgUnVuTW9ua2V5KGJpLCBtLCAid29yZCIsIHNlZWQsIGxvb3BDb3VudCk7Cit9CisKK3B1YmxpYyB2b2lkIFRlc3RMaW5lTW9ua2V5KCkgeworICAgIAorICAgIGludCAgICAgICAgbG9vcENvdW50ID0gNTAwOworICAgIGludCAgICAgICAgc2VlZCAgICAgID0gMTsKKyAgICAKKyAgICBpZiAocGFyYW1zLmluY2x1c2lvbiA+PSA5KSB7CisgICAgICAgIGxvb3BDb3VudCA9IDEwMDAwOworICAgIH0KKyAgICAKKyAgICBsb2dsbigiTGluZSBCcmVhayBNb25rZXkgVGVzdCIpOworICAgIFJCQklMaW5lTW9ua2V5ICBtID0gbmV3IFJCQklMaW5lTW9ua2V5KCk7CisgICAgQnJlYWtJdGVyYXRvciAgIGJpID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICBpZiAocGFyYW1zID09IG51bGwpIHsKKyAgICAgICAgbG9vcENvdW50ID0gNTA7CisgICAgfQorICAgIFJ1bk1vbmtleShiaSwgbSwgImxpbmUiLCBzZWVkLCBsb29wQ291bnQpOworfQorCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1NpbXBsZUJJVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvU2ltcGxlQklUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTY5ZGI3ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1NpbXBsZUJJVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjY2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5yYmJpOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yOworCisvLyBUT0RPOiB7ZGxmfSB0aGlzIHRlc3QgY3VycmVudGx5IGRvZXNuJ3QgdGVzdCBhbnl0aGluZyEKKy8vIFlvdSdsbCBub3RpY2UgdGhhdCB0aGUgcmVzb3VyY2UgdGhhdCB1c2VzIHRoZSBkaWN0aW9uYXJ5IGlzbid0IGV2ZW4gb24gdGhlIHJlc291cmNlIHBhdGgsCisvLyBzbyB0aGUgZGljdGlvbmFyeSBuZXZlciBnZXRzIHVzZWQuICBHb29kIHRoaW5nLCB0b28sIGJlY2F1c2UgaXQgd291bGQgdGhyb3cgYSBzZWN1cml0eQorLy8gZXhjZXB0aW9uIGlmIHJ1biB3aXRoIGEgc2VjdXJpdHkgbWFuYWdlci4gIE5vdCB0aGF0IGl0IHdvdWxkIG1hdHRlciwgdGhlIGRpY3Rpb25hcnkgCisvLyByZXNvdXJjZSBpc24ndCBldmVuIGluIHRoZSBpY3Ugc291cmNlIHRyZWUhCisvLyBJbiBvcmRlciB0byBmaXggdGhpczoKKy8vIDEpIG1ha2Ugc3VyZSBlbmdsaXNoLmRpY3QgbWF0Y2hlcyB0aGUgY3VycmVudCBkaWN0aW9uYXJ5IGZvcm1hdCByZXF1aXJlZCBieSBkYmJpCisvLyAyKSBtYWtlIHN1cmUgZW5nbGlzaC5kaWN0IGdldHMgaW5jbHVkZWQgaW4gaWN1NGp0ZXN0cy5qYXIKKy8vIDMpIGhhdmUgdGhpcyB0ZXN0IHVzZSBnZXRSZXNvdXJjZUFzU3RyZWFtIHRvIGdldCBhIHN0cmVhbSBvbiB0aGUgZGljdGlvbmFyeSwgYW5kCisvLyAgICBkaXJlY3RseSBpbnN0YW50aWF0ZSBhIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IuICBJdCBjYW4gdXNlIHRoZSBydWxlcyBmcm9tCisvLyAgICB0aGUgYXBwcm9wcmlhdGUgc2VjdGlvbiBvZiBSZXNvdXJjZUJ1bmRsZV9lbl9VU19URVNULiAgSSdkIHN1Z2dlc3QganVzdCBjb3B5aW5nCisvLyAgICB0aGUgcnVsZXMgaW50byB0aGlzIGZpbGUuCisvLyA0KSBjaGFuZ2UgdGhlIHRlc3QgdGV4dCBieSBpbnNlcnRpbmcgJ3wnIGF0IHdvcmQgYnJlYWtzLCBhbmQgJ3x8JyBhdCBsaW5lIGJyZWFrcy4gIAorLy8gNSkgcHJvY2VzcyB0aGlzIHRleHQgdG8gYSkgY3JlYXRlIHRhYmxlcyBvZiBicmVhayBpbmRpY2VzLCBhbmQgYikgY2xlYW4gdXAgdGhlIHRlc3QKKy8vICAgIGZvciB0aGUgYnJlYWsgaXRlcmF0b3IgdG8gd29yayBvbgorLy8gCisvLyBUaGlzIHdvdWxkIE5PVCB0ZXN0IHRoZSBhYmlsaXR5IHRvIGxvYWQgZGljdGlvbmFyeS1iYXNlZCBicmVhayBpdGVyYXRvcnMgdGhyb3VnaCBvdXIKKy8vIG5vcm1hbCByZXNvdXJjZSBtZWNoYW5pc20uICBPbmUgY291bGQgaW5zdGFsbCBzdWNoIGEgYnJlYWsgaXRlcmF0b3IgYW5kIGl0cworLy8gcmVzb3VyY2VzIGludG8gdGhlIGljdTRqIGphciwgYW5kIGl0IHdvdWxkIHdvcmssIGJ1dCB0aGVyZSdzIG5vIHdheSB0byByZWdpc3RlciBlbnRpcmUKKy8vIHJlc291cmNlcyBmcm9tIG91dHNpZGUgeWV0LiAgRXZlbiBpZiB0aGVyZSB3ZXJlLCB0aGUgYWNjZXNzIHJlc3RyaWN0aW9ucyBhcmUgYSBiaXQKKy8vIGRpZmZpY3VsdCB0byBtYW5hZ2UsIGlmIG9uZSB3YW50ZWQgdG8gcmVnaXN0ZXIgYSBicmVhayBpdGVyYXRvciB3aG9zZSBjb2RlIGFuZCBkYXRhCisvLyByZXNpZGVzIG91dHNpZGUgdGhlIGljdTRqIGphci4gIFNpbmNlIHRoZSBjb2RlIHRvIGluc3RhbnRpYXRlIHdvdWxkIGJlIGdvaW5nIHRocm91Z2ggCisvLyB0d28gcHJvdGVjdGlvbiBkb21haW5zLCBlYWNoIGRvbWFpbiB3b3VsZCBoYXZlIHRvIGFsbG93IGFjY2VzcyB0byB0aGUgZGF0YS0tIGJ1dCAKKy8vIGljdTRqJ3MgZG9tYWluIHdvdWxkbid0IGtub3cgYWJvdXQgb3Vycy4gIFNvIHdlIGNvdWxkIGluc3RhbnRpYXRlIGJlZm9yZSByZWdpc3RlcmluZworLy8gdGhlIGJyZWFrIGl0ZXJhdG9yLCBidXQgdGhpcyB3b3VsZCBtZWFuIHdlJ2QgaGF2ZSB0byBmdWxseSBpbml0aWFsaXplIHRoZSBkaWN0aW9uYXJ5KHMpCisvLyBhdCBpbnN0YW50aWF0aW9uIHRpbWUsIHJhdGhlciB0aGFuIGxldCB0aGlzIGJlIGRlZmVycmVkIHVudGlsIHRoZXkgYXJlIGFjdHVhbGx5IG5lZWRlZC4KKy8vCisvLyBJJ3ZlIGRvbmUgaXRlbXMgMiBhbmQgMyBhYm92ZS4gIFVuZm9ydHVuYXRlbHksIHNpbmNlIEkgaGF2ZW4ndCBkb25lIGl0ZW0gMSwgdGhlCisvLyBkaWN0aW9uYXJ5IGJ1aWxkZXIgY3Jhc2hlcy4gIFNvIGZvciBub3cgSSdtIGRpc2FibGluZyB0aGlzIHRlc3QuICBUaGlzIGlzIG5vdAorLy8gdGhhdCBpbXBvcnRhbnQsIHNpbmNlIHdlIGhhdmUgYSB0aGFpIGRpY3Rpb25hcnkgdGhhdCB3ZSBkbyB0ZXN0IHRob3JvdWdobHkuCisvLworCitwdWJsaWMgY2xhc3MgU2ltcGxlQklUZXN0IGV4dGVuZHMgVGVzdEZtd2t7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgdGVzdFRleHQgPQorLy8gICAgICAgICJUaGUgcmFpbiBpbiBTcGFpbiBzdGF5cyBtYWlubHkgb24gdGhlIHBsYWluLiAgVGhlIHBsYWlucyBpbiBTcGFpbiBhcmUgbWFpbmx5IHBhaW5lZCB3aXRoIHJhaW4uIjsKKy8vIm9uZS10d28gbm93LS0gIEhhaCEgIFlvdSBvd2UgbWUgZXhhY3RseSAkMSwzNDUuNjcuLi4gIFBheSB1cCwgaHVoPyAgQnkgdGhlIHdheSwgd2h5IGRvbid0IEkgc2VuZCB5b3UgbXkgcmVcdTAzMDFzdW1lXHUwMzAxPyAgVGhpcyBpcyBhIGxpbmVcclxuYnJlYWsuIjsKKy8vIm5vd2lzdGhldGltZWZvcmFsbGdvb2RtZW4uLi4gIHRvY29tZXRvdGhlaGVscG9mdGhlaXJjb3VudHJ5IjsKKyJXaGVuLCBpbiB0aGUgY291cnNlIG9mIGh1bWFuIGV2ZW50cywgaXQgYmVjb21lcyBuZWNlc3NhcnkgZm9yIG9uZSBwZW9wbGUgdG8gZGlzc29sdmUgdGhlIHBvbGl0aWNhbCBib25kcyB3aGljaCBoYXZlICIKKy8vIldoZW4saW50aGVjb3Vyc2VvZmh1bWFuZXZlbnRzLGl0YmVjb21lc25lY2Vzc2FyeWZvcm9uZXBlb3BsZXRvZGlzc29sdmV0aGVwb2xpdGljYWxib25kc3doaWNoaGF2ZSIKKysgImNvbm5lY3RlZHRoZW13aXRoYW5vdGhlcixhbmR0b2Fzc3VtZWFtb25ndGhlcG93ZXJzb2Z0aGVlYXJ0aCx0aGVzZXBhcmF0ZWFuZGVxdWFsc3RhdGlvbnRvd2hpY2h0aGVsYXdzIgorKyAib2ZuYXR1cmVhbmRvZm5hdHVyZSdzR29kZW50aXRsZXRoZW0sYWRlY2VudHJlc3BlY3R0b3RoZW9waW5pb25zb2ZtYW5raW5kcmVxdWlyZXN0aGF0dGhleXNob3VsZGRlY2xhcmV0aGUiCisrICJjYXVzZXN3aGljaGltcGVsdGhlbXRvdGhlc2VwYXJhdGlvblxuIgorKyAiV2Vob2xkdGhlc2V0cnV0aHN0b2Jlc2VsZi1ldmlkZW50LHRoYXRhbGxtZW5hcmVjcmVhdGVkZXF1YWwsdGhhdHRoZXlhcmVlbmRvd2VkYnl0aGVpckNyZWF0b3J3aXRoY2VydGFpbiIKKysgInVuYWxpZW5hYmxlcmlnaHRzLHRoYXRhbW9uZ3RoZXNlYXJlbGlmZSxsaWJlcnR5YW5kdGhlcHVyc3VpdG9maGFwcGluZXNzLlRoYXR0b3NlY3VyZXRoZXNlcmlnaHRzLGdvdmVybm1lbnRzYXJlIgorKyAiaW5zdGl0dXRlZGFtb25nbWVuLGRlcml2aW5ndGhlaXJqdXN0cG93ZXJzZnJvbXRoZWNvbnNlbnRvZnRoZWdvdmVybmVkLlRoYXR3aGVuZXZlcmFueWZvcm1vZmdvdmVybm1lbnQiCisrICJiZWNvbWVzZGVzdHJ1Y3RpdmV0b3RoZXNlZW5kcyxpdGlzdGhlcmlnaHRvZnRoZXBlb3BsZXRvYWx0ZXJvcnRvYWJvbGlzaGl0LGFuZHRvaW5zdGl0dXRlbmV3Z292ZXJubWVudCxsYXlpbmciCisrICJpdHNmb3VuZGF0aW9ub25zdWNocHJpbmNpcGxlc2FuZG9yZ2FuaXppbmdpdHNwb3dlcnNpbnN1Y2hmb3JtLGFzdG90aGVtc2hhbGxzZWVtbW9zdGxpa2VseXRvZWZmZWN0dGhlaXJzYWZldHkiCisrICJhbmRoYXBwaW5lc3MuUHJ1ZGVuY2UsaW5kZWVkLHdpbGxkaWN0YXRldGhhdGdvdmVybm1lbnRzbG9uZ2VzdGFibGlzaGVkc2hvdWxkbm90YmVjaGFuZ2VkZm9ybGlnaHRhbmR0cmFuc2llbnQiCisrICJjYXVzZXM7YW5kYWNjb3JkaW5nbHlhbGxleHBlcmllbmNlaGF0aHNob3dudGhhdG1hbmtpbmRhcmVtb3JlZGlzcG9zZWR0b3N1ZmZlcix3aGlsZWV2aWxzYXJlc3VmZmVyYWJsZSx0aGFuIgorKyAidG9yaWdodHRoZW1zZWx2ZXNieWFib2xpc2hpbmd0aGVmb3Jtc3Rvd2hpY2h0aGV5YXJlYWNjdXN0b21lZC5CdXR3aGVuYWxvbmd0cmFpbm9mYWJ1c2VzYW5kdXN1cnBhdGlvbnMsIgorKyAicHVyc3VpbmdpbnZhcmlhYmx5dGhlc2FtZW9iamVjdGV2aW5jZXNhZGVzaWdudG9yZWR1Y2V0aGVtdW5kZXJhYnNvbHV0ZWRlc3BvdGlzbSxpdGlzdGhlaXJyaWdodCxpdGlzdGhlaXJkdXR5LCIKKysgInRvdGhyb3dvZmZzdWNoZ292ZXJubWVudCxhbmR0b3Byb3ZpZGVuZXdndWFyZHNmb3J0aGVpcmZ1dHVyZXNlY3VyaXR5Li0tU3VjaGhhc2JlZW50aGVwYXRpZW50c3VmZmVyYW5jZW9mIgorKyAidGhlc2Vjb2xvbmllczthbmRzdWNoaXNub3d0aGVuZWNlc3NpdHl3aGljaGNvbnN0cmFpbnN0aGVtdG9hbHRlcnRoZWlyZm9ybWVyc3lzdGVtc29mZ292ZXJubWVudC5UaGVoaXN0b3J5IgorKyAib2Z0aGVwcmVzZW50S2luZ29mR3JlYXRCcml0YWluaXNhaGlzdG9yeW9mcmVwZWF0ZWRpbmp1cmllc2FuZHVzdXJwYXRpb25zLGFsbGhhdmluZ2luZGlyZWN0b2JqZWN0dGhlIgorKyAiZXN0YWJsaXNobWVudG9mYW5hYnNvbHV0ZXR5cmFubnlvdmVydGhlc2VzdGF0ZXMuVG9wcm92ZXRoaXMsbGV0ZmFjdHNiZXN1Ym1pdHRlZHRvYWNhbmRpZHdvcmxkLlxuIgorKyAiSGVoYXNyZWZ1c2VkaGlzYXNzZW50dG9sYXdzLHRoZW1vc3R3aG9sZXNvbWVhbmRuZWNlc3Nhcnlmb3J0aGVwdWJsaWNnb29kLlxuIgorKyAiSGVoYXNmb3JiaWRkZW5oaXNnb3Zlcm5vcnN0b3Bhc3NsYXdzb2ZpbW1lZGlhdGVhbmRwcmVzc2luZ2ltcG9ydGFuY2UsdW5sZXNzc3VzcGVuZGVkaW50aGVpcm9wZXJhdGlvbnRpbGwiCisrICJoaXNhc3NlbnRzaG91bGRiZW9idGFpbmVkO2FuZHdoZW5zb3N1c3BlbmRlZCxoZWhhc3V0dGVybHluZWdsZWN0ZWR0b2F0dGVuZHRvdGhlbS5cbiIKKysgIkhlaGFzcmVmdXNlZHRvcGFzc290aGVybGF3c2ZvcnRoZWFjY29tbW9kYXRpb25vZmxhcmdlZGlzdHJpY3Rzb2ZwZW9wbGUsdW5sZXNzdGhvc2VwZW9wbGV3b3VsZHJlbGlucXVpc2giCisrICJ0aGVyaWdodG9mcmVwcmVzZW50YXRpb25pbnRoZWxlZ2lzbGF0dXJlLGFyaWdodGluZXN0aW1hYmxldG90aGVtYW5kZm9ybWlkYWJsZXRvdHlyYW50c29ubHkuXG4iCisrICJIZWhhc2NhbGxlZHRvZ2V0aGVybGVnaXNsYXRpdmVib2RpZXNhdHBsYWNlc3VudXN1YWwsdW5jb21mb3J0YWJsZSxhbmRkaXN0YW50ZnJvbXRoZWRlcG9zaXRvcnlvZnRoZWlycHVibGljIgorKyAicmVjb3Jkcyxmb3J0aGVzb2xlcHVycG9zZW9mZmF0aWd1aW5ndGhlbWludG9jb21wbGlhbmNld2l0aGhpc21lYXN1cmVzLlxuIgorKyAiSGVoYXNkaXNzb2x2ZWRyZXByZXNlbnRhdGl2ZWhvdXNlc3JlcGVhdGVkbHksZm9yb3Bwb3Npbmd3aXRobWFubHlmaXJtbmVzc2hpc2ludmFzaW9uc29udGhlcmlnaHRzb2Z0aGVwZW9wbGUuXG4iCisrICJIZWhhc3JlZnVzZWRmb3JhbG9uZ3RpbWUsYWZ0ZXJzdWNoZGlzc29sdXRpb25zLHRvY2F1c2VvdGhlcnN0b2JlZWxlY3RlZDt3aGVyZWJ5dGhlbGVnaXNsYXRpdmVwb3dlcnMsIgorKyAiaW5jYXBhYmxlb2Zhbm5paGlsYXRpb24saGF2ZXJldHVybmVkdG90aGVwZW9wbGVhdGxhcmdlZm9ydGhlaXJleGVyY2lzZTt0aGVzdGF0ZXJlbWFpbmluZ2ludGhlbWVhbnRpbWVleHBvc2VkIgorKyAidG9hbGx0aGVkYW5nZXJzb2ZpbnZhc2lvbmZyb213aXRob3V0LGFuZGNvbnZ1bHNpb25zd2l0aGluLlxuIgorKyAiSGVoYXNlbmRlYXZvcmVkdG9wcmV2ZW50dGhlcG9wdWxhdGlvbm9mdGhlc2VzdGF0ZXM7Zm9ydGhhdHB1cnBvc2VvYnN0cnVjdGluZ3RoZWxhd3Nmb3JuYXR1cmFsaXphdGlvbm9mIgorKyAiZm9yZWlnbmVycztyZWZ1c2luZ3RvcGFzc290aGVyc3RvZW5jb3VyYWdldGhlaXJtaWdyYXRpb25oaXRoZXIsYW5kcmFpc2luZ3RoZWNvbmRpdGlvbnNvZm5ld2FwcHJvcHJpYXRpb25zb2YiCisrICJsYW5kcy5cbiIKKysgIkhlaGFzb2JzdHJ1Y3RlZHRoZWFkbWluaXN0cmF0aW9ub2ZqdXN0aWNlLGJ5cmVmdXNpbmdoaXNhc3NlbnR0b2xhd3Nmb3Jlc3RhYmxpc2hpbmdqdWRpY2lhcnlwb3dlcnMuXG4iCisrICJIZWhhc21hZGVqdWRnZXNkZXBlbmRlbnRvbmhpc3dpbGxhbG9uZSxmb3J0aGV0ZW51cmVvZnRoZWlyb2ZmaWNlcyxhbmR0aGVhbW91bnRhbmRwYXltZW50b2Z0aGVpcnNhbGFyaWVzLlxuIgorKyAiSGVoYXNlcmVjdGVkYW11bHRpdHVkZW9mbmV3b2ZmaWNlcyxhbmRzZW50aGl0aGVyc3dhcm1zb2ZvZmZpY2Vyc3RvaGFyYXNzb3VycGVvcGxlLGFuZGVhdG91dHRoZWlyIgorKyAic3Vic3RhbmNlLlxuIgorKyAiSGVoYXNrZXB0YW1vbmd1cyxpbnRpbWVzb2ZwZWFjZSxzdGFuZGluZ2FybWllc3dpdGhvdXR0aGVjb25zZW50b2ZvdXJsZWdpc2xhdHVyZS5cbiIKKysgIkhlaGFzYWZmZWN0ZWR0b3JlbmRlcnRoZW1pbGl0YXJ5aW5kZXBlbmRlbnRvZmFuZHN1cGVyaW9ydG9jaXZpbHBvd2VyLlxuIgorKyAiSGVoYXNjb21iaW5lZHdpdGhvdGhlcnN0b3N1YmplY3R1c3RvYWp1cmlzZGljdGlvbmZvcmVpZ250b291cmNvbnN0aXR1dGlvbixhbmR1bmFja25vd2xlZGdlZGJ5b3VybGF3czsiCisrICJnaXZpbmdoaXNhc3NlbnR0b3RoZWlyYWN0c29mcHJldGVuZGVkbGVnaXNsYXRpb246XG4iCisrICJGb3JxdWFydGVyaW5nbGFyZ2Vib2RpZXNvZmFybWVkdHJvb3BzYW1vbmd1czpcbiIKKysgIkZvcnByb3RlY3Rpbmd0aGVtLGJ5bW9ja3RyaWFsLGZyb21wdW5pc2htZW50Zm9yYW55bXVyZGVyc3doaWNodGhleXNob3VsZGNvbW1pdG9udGhlaW5oYWJpdGFudHNvZnRoZXNlIgorKyAic3RhdGVzOlxuIgorKyAiRm9yY3V0dGluZ29mZm91cnRyYWRld2l0aGFsbHBhcnRzb2Z0aGV3b3JsZDpcbiIKKysgIkZvcmltcG9zaW5ndGF4ZXNvbnVzd2l0aG91dG91cmNvbnNlbnQ6XG4iCisrICJGb3JkZXByaXZpbmd1c2lubWFueWNhc2VzLG9mdGhlYmVuZWZpdHNvZnRyaWFsYnlqdXJ5OlxuIgorKyAiRm9ydHJhbnNwb3J0aW5ndXNiZXlvbmRzZWFzdG9iZXRyaWVkZm9ycHJldGVuZGVkb2ZmZW5zZXM6XG4iCisrICJGb3JhYm9saXNoaW5ndGhlZnJlZXN5c3RlbW9mRW5nbGlzaGxhd3NpbmFuZWlnaGJvcmluZ3Byb3ZpbmNlLGVzdGFibGlzaGluZ3RoZXJlaW5hbmFyYml0cmFyeWdvdmVybm1lbnQsYW5kIgorKyAiZW5sYXJnaW5naXRzYm91bmRhcmllc3NvYXN0b3JlbmRlcml0YXRvbmNlYW5leGFtcGxlYW5kZml0aW5zdHJ1bWVudGZvcmludHJvZHVjaW5ndGhlc2FtZWFic29sdXRlcnVsZWludGhlc2UiCisrICJjb2xvbmllczpcbiIKKysgIkZvcnRha2luZ2F3YXlvdXJjaGFydGVycyxhYm9saXNoaW5nb3VybW9zdHZhbHVhYmxlbGF3cyxhbmRhbHRlcmluZ2Z1bmRhbWVudGFsbHl0aGVmb3Jtc29mb3VyZ292ZXJubWVudHM6XG4iCisrICJGb3JzdXNwZW5kaW5nb3Vyb3dubGVnaXNsYXR1cmVzLGFuZGRlY2xhcmluZ3RoZW1zZWx2ZXNpbnZlc3RlZHdpdGhwb3dlcnRvbGVnaXNsYXRlZm9ydXNpbmFsbGNhc2Vzd2hhdHNvZXZlci5cbiIKKysgIkhlaGFzYWJkaWNhdGVkZ292ZXJubWVudGhlcmUsYnlkZWNsYXJpbmd1c291dG9maGlzcHJvdGVjdGlvbmFuZHdhZ2luZ3dhcmFnYWluc3R1cy5cbiIKKysgIkhlaGFzcGx1bmRlcmVkb3Vyc2VhcyxyYXZhZ2Vkb3VyY29hc3RzLGJ1cm5lZG91cnRvd25zLGFuZGRlc3Ryb3llZHRoZWxpdmVzb2ZvdXJwZW9wbGUuXG4iCisrICJIZWlzYXR0aGlzdGltZXRyYW5zcG9ydGluZ2xhcmdlYXJtaWVzb2Zmb3JlaWdubWVyY2VuYXJpZXN0b2NvbXBsZXRldGhld29ya3NvZmRlYXRoLGRlc29sYXRpb25hbmR0eXJhbm55LCIKKysgImFscmVhZHliZWd1bndpdGhjaXJjdW1zdGFuY2Vzb2ZjcnVlbHR5YW5kcGVyZmlkeXNjYXJjZWx5cGFyYWxsZWxlZGludGhlbW9zdGJhcmJhcm91c2FnZXMsYW5kdG90YWx5dW53b3J0aCIKKysgInRoZWhlYWRvZmFjaXZpbGl6ZWRuYXRpb24uXG4iCisrICJIZWhhc2NvbnN0cmFpbmVkb3VyZmVsbG93Y2l0aXplbnN0YWtlbmNhcHRpdmVvbnRoZWhpZ2hzZWFzdG9iZWFyYXJtc2FnYWluc3R0aGVpcmNvdW50cnksdG9iZWNvbWV0aGUiCisrICJleGVjdXRpb25lcnNvZnRoZWlyZnJpZW5kc2FuZGJyZXRocmVuLG9ydG9mYWxsdGhlbXNlbHZlc2J5dGhlaXJoYW5kcy5cbiIKKysgIkhlaGFzZXhjaXRlZGRvbWVzdGljaW5zdXJyZWN0aW9uc2Ftb25nc3R1cyxhbmRoYXNlbmRlYXZvcmVkdG9icmluZ29udGhlaW5oYWJpdGFudHNvZm91cmZyb250aWVycyx0aGUiCisrICJtZXJjaWxlc3NJbmRpYW5zYXZhZ2VzLHdob3Nla25vd25ydWxlb2Z3YXJmYXJlLGlzdW5kaXN0aW5ndWlzaGVkZGVzdHJ1Y3Rpb25vZmFsbGFnZXMsc2V4ZXNhbmRjb25kaXRpb25zLlxuIgorKyAiSW5ldmVyeXN0YWdlb2Z0aGVzZW9wcHJlc3Npb25zd2VoYXZlcGV0aXRpb25lZGZvcnJlZHJlc3NpbnRoZW1vc3RodW1ibGV0ZXJtczpvdXJyZXBlYXRlZHBldGl0aW9uc2hhdmUiCisrICJiZWVuYW5zd2VyZWRvbmx5YnlyZXBlYXRlZGluanVyeS5BcHJpbmNlLHdob3NlY2hhcmFjdGVyaXN0aHVzbWFya2VkYnlldmVyeWFjdHdoaWNobWF5ZGVmaW5lYXR5cmFudCxpcyIKKysgInVuZml0dG9iZXRoZXJ1bGVyb2ZhZnJlZXBlb3BsZS5cbiIKKysgIk5vcmhhdmV3ZWJlZW53YW50aW5naW5hdHRlbnRpb250b291ckJyaXRpc2hicmV0aHJlbi5XZWhhdmV3YXJuZWR0aGVtZnJvbXRpbWV0b3RpbWVvZmF0dGVtcHRzYnl0aGVpciIKKysgImxlZ2lzbGF0dXJldG9leHRlbmRhbnVud2FycmFudGFibGVqdXJpc2RpY3Rpb25vdmVydXMuV2VoYXZlcmVtaW5kZWR0aGVtb2Z0aGVjaXJjdW1zdGFuY2Vzb2ZvdXJlbWlncmF0aW9uIgorKyAiYW5kc2V0dGxlbWVudGhlcmUuV2VoYXZlYXBwZWFsZWR0b3RoZWlybmF0aXZlanVzdGljZWFuZG1hZ25hbmltaXR5LGFuZHdlaGF2ZWNvbmp1cmVkdGhlbWJ5dGhldGllc29mb3VyIgorKyAiY29tbW9ua2luZHJlZHRvZGlzYXZvd3RoZXNldXN1cnBhdGlvbnMsd2hpY2gsd291bGRpbmV2aXRhYmx5aW50ZXJydXB0b3VyY29ubmVjdGlvbnNhbmRjb3JyZXNwb25kZW5jZS5XZSIKKysgIm11c3QsdGhlcmVmb3JlLGFjcXVpZXNjZWludGhlbmVjZXNzaXR5LHdoaWNoZGVub3VuY2Vzb3Vyc2VwYXJhdGlvbixhbmRob2xkdGhlbSxhc3dlaG9sZHRoZXJlc3RvZm1hbmtpbmQsIgorKyAiZW5lbWllc2lud2FyLGlucGVhY2VmcmllbmRzLlxuIgorKyAiV2UsdGhlcmVmb3JlLHRoZXJlcHJlc2VudGF0aXZlc29mdGhlVW5pdGVkU3RhdGVzb2ZBbWVyaWNhLGluR2VuZXJhbENvbmdyZXNzLGFzc2VtYmxlZCxhcHBlYWxpbmd0b3RoZSIKKysgIlN1cHJlbWVKdWRnZW9mdGhld29ybGRmb3J0aGVyZWN0aXR1ZGVvZm91cmludGVudGlvbnMsZG8saW50aGVuYW1lLGFuZGJ5dGhlYXV0aG9yaXR5b2Z0aGVnb29kcGVvcGxlb2YiCisrICJ0aGVzZWNvbG9uaWVzLHNvbGVtbmx5cHVibGlzaGFuZGRlY2xhcmUsdGhhdHRoZXNldW5pdGVkY29sb25pZXNhcmUsYW5kb2ZyaWdodG91Z2h0dG9iZWZyZWVhbmRpbmRlcGVuZGVudCIKKysgInN0YXRlczt0aGF0dGhleWFyZWFic29sdmVkZnJvbWFsbGFsbGVnaWFuY2V0b3RoZUJyaXRpc2hDcm93bixhbmR0aGF0YWxscG9saXRpY2FsY29ubmVjdGlvbmJldHdlZW50aGVtYW5kdGhlIgorKyAic3RhdGVvZkdyZWF0QnJpdGFpbixpc2FuZG91Z2h0dG9iZXRvdGFsbHlkaXNzb2x2ZWQ7YW5kdGhhdGFzZnJlZWFuZGluZGVwZW5kZW50c3RhdGVzLHRoZXloYXZlZnVsbHBvd2VydG8iCisrICJsZXZleXdhcixjb25jbHVkZXBlYWNlLGNvbnRyYWN0YWxsaWFuY2VzLGVzdGFibGlzaGNvbW1lcmNlLGFuZHRvZG9hbGxvdGhlcmFjdHNhbmR0aGluZ3N3aGljaGluZGVwZW5kZW50IgorKyAic3RhdGVzbWF5b2ZyaWdodGRvLkFuZGZvcnRoZXN1cHBvcnRvZnRoaXNkZWNsYXJhdGlvbix3aXRoYWZpcm1yZWxpYW5jZW9udGhlcHJvdGVjdGlvbm9mRGl2aW5lUHJvdmlkZW5jZSx3ZSIKKysgIm11dHVhbGx5cGxlZGdldG9lYWNob3RoZXJvdXJsaXZlcyxvdXJmb3J0dW5lc2FuZG91cnNhY3JlZGhvbm9yLlxuIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgU2ltcGxlQklUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiB2YWxpZGF0ZSgpIHsKKyAgICAgICAgLy8gVE9ETzogcmVtb3ZlIHdoZW4gZW5nbGlzaC5kaWN0IGdldHMgZml4ZWQKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciBjcmVhdGVUZXN0SXRlcmF0b3IoaW50IGtpbmQpIHsKKyAgICAgICAgZmluYWwgU3RyaW5nIGJuYW1lID0gImNvbS5pYm0uaWN1LmRldi50ZXN0LnJiYmkuQnJlYWtJdGVyYXRvclJ1bGVzX2VuX1VTX1RFU1QiOworCisgICAgICAgIEJyZWFrSXRlcmF0b3IgaXRlciA9IG51bGw7CisKKyAgICAgICAgTGlzdFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDbGFzcyBjbHMgPSBDbGFzcy5mb3JOYW1lKGJuYW1lKTsKKyAgICAgICAgICAgIGJ1bmRsZSA9IChMaXN0UmVzb3VyY2VCdW5kbGUpY2xzLm5ld0luc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSBidW5kbGU6ICIgKyBibmFtZSArICJleGNlcHRpb246ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmaW5hbCBTdHJpbmdbXSBraW5kTmFtZXMgPSB7CisgICAgICAgICAgICAiQ2hhcmFjdGVyIiwgIldvcmQiLCAiTGluZSIsICJTZW50ZW5jZSIKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nIHJ1bGVzTmFtZSA9IGtpbmROYW1lc1traW5kXSArICJCcmVha1J1bGVzIjsKKyAgICAgICAgU3RyaW5nIGRpY3Rpb25hcnlOYW1lID0ga2luZE5hbWVzW2tpbmRdICsgIkJyZWFrRGljdGlvbmFyeSI7CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSBjbGFzc05hbWVzID0gYnVuZGxlLmdldFN0cmluZ0FycmF5KCJCcmVha0l0ZXJhdG9yQ2xhc3NlcyIpOworICAgICAgICBTdHJpbmcgcnVsZXMgPSBidW5kbGUuZ2V0U3RyaW5nKHJ1bGVzTmFtZSk7CisgICAgICAgIGlmIChjbGFzc05hbWVzW2tpbmRdLmVxdWFscygiUnVsZUJhc2VkQnJlYWtJdGVyYXRvciIpKSB7CisgICAgICAgICAgICBpdGVyID0gbmV3IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IocnVsZXMpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGNsYXNzTmFtZXNba2luZF0uZXF1YWxzKCJEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIikpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRpY3Rpb25hcnlQYXRoID0gYnVuZGxlLmdldFN0cmluZyhkaWN0aW9uYXJ5TmFtZSk7CisgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gZGljdGlvbmFyeSA9IGJ1bmRsZS5nZXRDbGFzcygpLmdldFJlc291cmNlQXNTdHJlYW0oZGljdGlvbmFyeVBhdGgpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibG9va2luZyBmb3IgIiArIGRpY3Rpb25hcnlQYXRoICsgIiBmcm9tICIgKyBidW5kbGUuZ2V0Q2xhc3MoKSArICIgcmV0dXJuZWQgIiArIGRpY3Rpb25hcnkpOworICAgICAgICAgICAgICAgIGl0ZXIgPSBuZXcgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcihydWxlcywgZGljdGlvbmFyeSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOyAvLyBkZWJ1ZworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOyAvLyBkZWJ1ZworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpdGVyID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgY3JlYXRlIGl0ZXJhdG9yIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBpdGVyOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB0ZXN0V29yZEJyZWFrKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIEJyZWFrSXRlcmF0b3Igd29yZEJyZWFrID0gY3JlYXRlVGVzdEl0ZXJhdG9yKEJyZWFrSXRlcmF0b3IuS0lORF9XT1JEKTsKKyAgICAgICAgaW50IGJyZWFrcyA9IGRvVGVzdCh3b3JkQnJlYWspOworICAgICAgICBsb2dsbihTdHJpbmcudmFsdWVPZihicmVha3MpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0TGluZUJyZWFrKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgbGluZUJyZWFrID0gY3JlYXRlVGVzdEl0ZXJhdG9yKEJyZWFrSXRlcmF0b3IuS0lORF9MSU5FKTsKKyAgICAgICAgaW50IGJyZWFrcyA9IGRvVGVzdChsaW5lQnJlYWspOworICAgICAgICBsb2dsbihTdHJpbmcudmFsdWVPZihicmVha3MpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2VudGVuY2VCcmVhaygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBCcmVha0l0ZXJhdG9yIHNlbnRlbmNlQnJlYWsgPSBjcmVhdGVUZXN0SXRlcmF0b3IoQnJlYWtJdGVyYXRvci5LSU5EX1NFTlRFTkNFKTsKKyAgICAgICAgaW50IGJyZWFrcyA9IGRvVGVzdChzZW50ZW5jZUJyZWFrKTsKKyAgICAgICAgbG9nbG4oU3RyaW5nLnZhbHVlT2YoYnJlYWtzKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgZG9UZXN0KEJyZWFrSXRlcmF0b3IgYmkpIHsKKyAgICAgICAgLy8gZm9yd2FyZAorICAgICAgICBiaS5zZXRUZXh0KHRlc3RUZXh0KTsKKyAgICAgICAgaW50IHAgPSBiaS5maXJzdCgpOworICAgICAgICBpbnQgbGFzdFAgPSBwOworICAgICAgICBTdHJpbmcgZnJhZ21lbnQ7CisgICAgICAgIGludCBicmVha3MgPSAwOworICAgICAgICBsb2dsbigiRm9yd2FyZC4uLiIpOworICAgICAgICB3aGlsZSAocCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHAgPSBiaS5uZXh0KCk7CisgICAgICAgICAgICBpZiAocCAhPSBCcmVha0l0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBmcmFnbWVudCA9IHRlc3RUZXh0LnN1YnN0cmluZyhsYXN0UCwgcCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZyYWdtZW50ID0gdGVzdFRleHQuc3Vic3RyaW5nKGxhc3RQKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlYnVnUHJpbnRsbigiOiA+IiArIGZyYWdtZW50ICsgIjwiKTsKKyAgICAgICAgICAgICsrYnJlYWtzOworICAgICAgICAgICAgbGFzdFAgPSBwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBicmVha3M7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRlYnVnUHJpbnRsbihTdHJpbmcgcykgeworICAgICAgICBmaW5hbCBTdHJpbmcgemVyb3MgPSAiMDAwMCI7CisgICAgICAgIFN0cmluZyB0ZW1wOworICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAnICcgJiYgYyA8ICdcdTAwN2YnKQorICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoYyk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICB0ZW1wID0gSW50ZWdlci50b0hleFN0cmluZygoaW50KWMpOworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoemVyb3Muc3Vic3RyaW5nKDAsIDQgLSB0ZW1wLmxlbmd0aCgpKSk7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCh0ZW1wKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbihvdXQudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRlYnVnUHJpbnRsbjIoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPj0gJ1x1MDEwMCcpCisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCgiPCIgKyAoKGludCljIC0gMHgxMDApICsgIj4iKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIGxvZ2xuKG91dC50b1N0cmluZygpKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1Rlc3RBbGwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzY3NTUwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvVGVzdEFsbC5qYXZhCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnJiYmk7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gYWxsIG90aGVyIHRlc3RzIGFzIGEgYmF0Y2guCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0QWxsIGV4dGVuZHMgVGVzdEdyb3VwIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKAorICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICAgLy8gRGlzYWJsZWQgZm9yIG5vdzsgc2VlIGNvbW1lbnQgaW4gU2ltcGxlQklUZXN0IGZvciBkZXRhaWxzCisgICAgICAgICAgICAgICAgICAvLyAiU2ltcGxlQklUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJCcmVha0l0ZXJhdG9yVGVzdCIsCisgICAgICAgICAgICAgICAgICAiUkJCSVRlc3QiLAorICAgICAgICAgICAgICAgICAgIlJCQklBUElUZXN0IiwKKyAgICAgICAgICAgICAgICAgICJCcmVha0l0ZXJhdG9yUmVnVGVzdCIsCisgICAgICAgICAgICAgICAgICAiUkJCSVRlc3RFeHRlbmRlZCIsCisgICAgICAgICAgICAgICAgICAiUkJCSVRlc3RNb25rZXkiCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICIgQnJlYWtJdGVyYXRvciBhbmQgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBUZXN0cyIpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FID0gIlJCQkkiOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYyNDY4YWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvcmJiaS9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorVGVzdHMgZm9yIHRoZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL3JiYml0c3QudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3JiYmkvcmJiaXRzdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZmODNiOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9yYmJpL3JiYml0c3QudHh0CkBAIC0wLDAgKzEsNTAwIEBACivvu78jIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMNCisjIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQorIw0KKyMgUkJCSSBUZXN0IERhdGENCisjDQorIyAgIEZpbGU6ICByYmJpdHN0LnR4dA0KKyMNCisjICAgICBUaGUgZm9ybWF0IG9mIHRoaXMgZmlsZSBsb29rcyB2YWd1ZWx5IGxpa2Ugc29tZSBraW5kIG9mIHhtbC1pc2ggbWFya3VwLA0KKyMgICAgIGJ1dCBpdCBpcyBOT1QuICBUaGUgc3ludGF4IGlzIHRoaXMuLg0KKyMNCisjICAgPHdvcmQ+ICAgIGFueSBmb2xsb3dpbmcgZGF0YSBpcyBmb3Igd29yZCBicmVhayB0ZXN0aW5nDQorIyAgIDxzZW50PiAgICBhbnkgZm9sbG93aW5nIGRhdGEgaXMgZm9yIHNlbnRlbmNlIGJyZWFrIHRlc3RpbmcNCisjICAgPGxpbmU+ICAgIGFueSBmb2xsb3dpbmcgZGF0YSBpcyBmb3IgbGluZSBicmVhayB0ZXN0aW5nDQorIyAgIDxjaGFyPiAgICBhbnkgZm9sbG93aW5nIGRhdGEgaXMgZm9yIGNoYXIgYnJlYWsgdGVzdGluZw0KKyMgICA8ZGF0YT4gLi4uIDwvZGF0YT4gICB0ZXN0IGRhdGEuICBNYXkgc3BhbiBtdWx0aXBsZSBsaW5lcy4NCisjICAgICAgPD4gICAgICAgIEJyZWFrIHBvc2l0aW9uLCBzdGF0dXMgPT0gMA0KKyMgICAgICDigKIgICAgICAgICBCcmVhayBwb3NpdGlvbiwgc3RhdHVzID09IDAgICAoQnVsbGV0LCBcdTIwMjIpIA0KKyMgICAgICA8bm5uPiAgICAgQnJlYWsgcG9zaXRpb24sIHN0YXR1cyA9PSBubm4NCisjICAgICAgXCAgICAgICAgIEVzY2FwZS4gIE5vcm1hbCBJQ1UgdW5lc2NhcGUgYXBwbGllZC4gIA0KKyMgICAgICBcIGF0IGVuZCBvZiBsaW5lICAtPiAgTGluZSBDb250aW51YXRpb24uICBSZW1vdmUgYm90aCB0aGUgYmFja3NsYXNoIGFuZCB0aGUgbmV3IGxpbmUNCisjICAgDQorIw0KKw0KKw0KKyMgICBUZW1wIGRlYnVnZ2luZyB0ZXN0cw0KKzxsaW5lPg0KKzxkYXRhPjw+XFUwMDAxZDdmOVx1MDAzYlx1MjAzNDw+PC9kYXRhPg0KKw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisjDQorIw0KKyMgICAgICAgRyByIGEgcCBoIGUgbSBlICAgIEMgbCB1IHMgdCBlIHIgICAgIFQgZSBzIHQgcw0KKyMNCisjDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorPGNoYXI+DQorDQorPGRhdGE+4oCiYeKAomLigKJj4oCiIOKAoizigKJcdTA2NjbigKI8L2RhdGE+ICAgICAgICAgICAgICAgICAjIFF1aWNrIFRlc3QNCis8ZGF0YT7igKJccuKAolxy4oCiXHJcbuKAolxyXG7igKJcbuKAolxy4oCiPC9kYXRhPiAgICAgICAgICAgICMgZG9uJ3QgYnJlYWsgQ1IvTEYNCisNCisjIEFsd2F5cyBicmVhayBhZnRlciBjb250cm9scy4gIENvbWJpbmluZyBjaGFycyBkb24ndCBjb21iaW5lIHdpdGggdGhlbS4NCis8ZGF0YT7igKJcdTAwMDPigKJcTntDT01CSU5JTkcgR1JBVkUgQUNDRU5UfeKAolxy4oCiXE57Q09NQklOSU5HIEdSQVZFIEFDQ0VOVH3igKI8L2RhdGE+DQorPGRhdGE+4oCiXHUwMDg14oCiXE57Q09NQklOSU5HIE1BQ1JPTn3igKJBXE57Q09NQklOSU5HIE1BQ1JPTn3igKI8L2RhdGE+DQorDQorIyBTdXJyb2dhdGVzDQorPGRhdGE+4oCiXFUwMDAxMTAwMOKAolxVMDAwMTAwMjDigKJcVTAwMDEwMDAwXE57Q09NQklOSU5HIE1BQ1JPTn3igKI8L2RhdGE+DQorPGRhdGE+4oCiXHVkODAwXHVkYzAw4oCiXHVkYmZmXHVkZmZm4oCiYeKAojwvZGF0YT4NCisNCisjIEV4dGVuZCAoQ29tYmluaW5nIGNoYXJzKSBjb21iaW5lLg0KKzxkYXRhPuKAokFcTntDT01CSU5JTkcgR1JBVkUgQUNDRU5UfeKAokLigKI8L2RhdGE+DQorPGRhdGE+4oCiXE57R1JFRUsgU01BTEwgTEVUVEVSIE1VfVxOe0NPTUJJTklORyBMT1cgTElORX1cTntDT01CSU5JTkcgSE9STn3igKI8L2RhdGE+DQorPGRhdGE+4oCiYVx1MDMwMeKAomJcdTAzMDLigKJjXHUwMzAz4oCiZFx1MDMwNOKAomVcdTAzMDXigKJmXHUwMzA24oCiZ1x1MDMwN+KAomhcdTAzMDjigKJpXHUwMzA54oCiPC9kYXRhPg0KKw0KKzxkYXRhPuKAomFcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDRcdTAzMDFcdTAzMDJcdTAzMDNcdTAzMDTigKI8L2RhdGE+DQorDQorIyBEb24ndCBicmVhayBIYW5ndWwgU3lsbGFibGVzDQorIyAgIEwgOiBcdTExMDANCisjICAgViA6IFx1MTE2MQ0KKyMgICBUIDogXHUxMUE4DQorIyAgTFYgOiBcdUFDMDANCisjIExWVCA6IFx1QUMwMQ0KKw0KKzxkYXRhPuKAolx1MTEwMFx1MTE2MVx1MTFhOOKAolx1MTEwMFx1MTE2MVx1MTFhOOKAojwvZGF0YT4gICNMVlQNCis8ZGF0YT7igKJcdTExMDBcdTExNjHigKJcdTExMDBcdTExNjHigKI8L2RhdGE+IA0KKzxkYXRhPuKAolx1MTEwMFx1MTE2MVx1MTFhOOKAolx1MTE2MeKAolx1MTEwMOKAolx1MTFhOOKAolx1MTE2MVx1MTE2MVx1MTE2MVx1MTFhOOKAojwvZGF0YT4NCis8ZGF0YT7igKJcdTExMDBcdTExMDBcdWFjMDHigKJcdTExMDBcdWFjMDHigKJcdTExMDBcdWFjMDFcdTAzMDHigKJcdWFjMDHigKI8L2RhdGE+DQorPGRhdGE+4oCiXHUxMTAwXHUwMzAx4oCiXHUxMTYxXHUxMWE4XHUwMzAx4oCiXHUxMWE44oCiPC9kYXRhPg0KKw0KKw0KKw0KKyMgSGluZGkgY29tYmluaW5nIGNoYXJzLiAgKEFuIG9sZCB0ZXN0KQ0KKzxkYXRhPuKAouCkreKAouKAouCkvuKAolx1MDkzMOKAolx1MDkyNOKAoiDigKJcdTA5MzhcdTA5NDFcdTA5MDLigKJcdTA5MjbigKJcdTA5MzDigKINCivigKJcdTA5MznigKJcdTA5NGPigKJcdTA5NjTigKI8L2RhdGE+DQorPGRhdGE+4oCiXHUwOTE2XHUwOTQ34oCiXHUwOTM4XHUwOTQxXHUwOTAy4oCiXHUwOTI24oCiXHUwOTMw4oCiXHUwOTM54oCiXHUwOTRj4oCiXHUwOTY04oCiPC9kYXRhPg0KKw0KKw0KKyMgIEJ1ZyAxNTg3LiAgVGFtaWwuICBcdTBiYWFcdTBiYzEgc2hvdWxkIGJlIHR3byBzZXBhcmF0ZSBjaGFyYWN0ZXJzLCBldmVuIHRob3VnaA0KKyMgICAgICAgICAgICAgICAgICAgICBIeWFuZ21pIHdvdWxkIHBlcmZlciB0aGF0IGl0IGJlIG9uZS4NCis8ZGF0YT7igKJcdTBiYWHigKJcdTBiYzHigKJcdTBiYWHigKJcdTBiYzHigKI8L2RhdGE+DQorDQorIyAgIFJlZ3Jlc3Npb24gdGVzdCBmb3IgYnVnIDE4ODkNCis8ZGF0YT7igKJcdTBmNDBcdTBmN2TigKJcdTAwMDDigKJcdTBmN2XigKI8L2RhdGE+DQorDQorDQorIyAgICAgMHhmZmZmIGlzIGEgbGVnYWwgY2hhcmFjdGVyLCBhbmQgc2hvdWxkIG5vdCBzdG9wIHRoZSBicmVhayBpdGVyYXRvciBlYXJseS4NCisjICAgICAoUmVxdWlyZXMgc3BlY2lhbCBjYXNpbmcgaW4gaW1wbGVtZW50YXRpb24sIHdoaWNoIGlzIHdoeSBpdCBnZXRzIGEgdGVzdC4pDQorPGRhdGE+4oCiXHVmZmZm4oCiXHVmZmZm4oCiIOKAomHigKI8L2RhdGE+DQorDQorDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMNCisjDQorIyAgICAgICBXIG8gciBkICAgIEIgbyB1IG4gZCBhIHIgeSAgICAgIFQgZSBzIHQgcw0KKyMNCisjDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorPHdvcmQ+DQorIw0KKyMgUXVpY2sgc2FuaXR5IHRlc3QNCisjDQorPGRhdGE+4oCiaGVsbG88MjAwPiDigKJ0aGVyZTwyMDA+IOKAomdvb2RieWU8MjAwPjwvZGF0YT4NCis8ZGF0YT7igKJoZWxsbzwyMDA+IOKAojEyMzQ1PDEwMD4g4oCiLOKAojwvZGF0YT4NCisNCisNCisjDQorIyBUZXN0IGRhdGEgb3JpZ2luYWxseSBpbiBSQkJJQVBJVGVzdDo6VGVzdEZpcnN0TmV4dEZvbGxvd2luZygpIGFuZCBUZXN0TGFzdFByZXZpb3VzUHJlY2VkaW5nKCkNCisjDQorDQorPHdvcmQ+DQorPGRhdGE+4oCiVGhpczwyMDA+IOKAomlzPDIwMD4g4oCiYTwyMDA+IOKAondvcmQ8MjAwPiDigKJicmVhazwyMDA+LuKAoiDigKIg4oCiSXNuJ3Q8MjAwPiDigKJpdDwyMDA+P+KAoiDigKIyLjI1PDEwMD48L2RhdGE+DQorDQorDQorDQorIw0KKyMgRGF0YSBvcmlnaW5hbGx5IGZyb20gVGVzdERlZmF1bHRSdWxlQmFzZWRXb3JkSXRlcmF0aW9uKCkNCisjDQorPGRhdGE+4oCiV3JpdGU8MjAwPiDigKJ3b3JkcnVsZXM8MjAwPi7igKIg4oCiMTIzLjQ1NjwxMDA+IOKAomFscGhhXHUwMGFkYmV0YVx1MDBhZGdhbW1hPDIwMD4g4oCiXHUwOTJmXHUwOTM5PDIwMD4g4oCiPC9kYXRhPg0KKzxkYXRhPuKAoiDigKJcdTA5MzlcdTA5M2ZcdTA5MjhcdTA5NGRcdTIwMGRcdTA5MjZcdTA5NDA8MjAwPiDigKJcdTA5MzlcdTA5NDg8MjAwPiDigKJcdTA5MDVcdTA5M2VcdTA5MmE8MjAwPiDigKJcdTA5MzhcdTA5M2ZcdTA5MTZcdTA5NGJcdTA5MTdcdTA5NDc8MjAwPj/igKI8L2RhdGE+DQorDQorI0hpbmRpIE51bWJlcnMNCis8ZGF0YT7igKIg4oCiXHUwOTY4XHUwOTY2Llx1MDk2OVx1MDk2ZjwxMDA+IOKAolx1MDk2N1x1MDk2Nlx1MDk2Ni5cdTA5NjZcdTA5NjY8MTAwPiDigKJcTntSVVBFRSBTSUdOfeKAolx1MDk2NyxcdTA5NjdcdTA5NjZcdTA5NjYuXHUwOTY2XHUwOTY2PDEwMD4g4oCiIOKAolx1MDkwNVx1MDkyZVx1MDkxYzwyMDA+XG7igKI8L2RhdGE+DQorDQorPGRhdGE+4oCiXHUwOTM4XHUwOTRkXHUyMDBkXHUwOTM1XHUwOTI0XHUwOTAyZGVhZFRBXHUwOTMwPDIwMD5ccuKAokl0J3M8MjAwPiDigKIk4oCiMzAuMTA8MTAwPiDigKIxMiwzNDwxMDA+wqLigKLCo+KAosKk4oCiwqXigKJhbHBoYVx1MDVmM2JldGFcdTA1ZjRnYW1tYTwyMDA+IOKAojwvZGF0YT4NCisNCis8ZGF0YT7igKJCYWRnZXM8MjAwPj/igKIg4oCiQkFER0VTPDIwMD4h4oCiP+KAoiHigKIg4oCiV2U8MjAwPiDigKJkb24ndDwyMDA+IOKAom5lZWQ8MjAwPiDigKJubzwyMDA+IOKAolNUSU5LSU5HPDIwMD4g4oCiQkFER0VTPDIwMD4h4oCiIeKAojEwMDAsMjMzLDQ1Ni4wMDA8MTAwPiDigKIxLDIzLjMyMjwxMDA+JeKAojEyMy4xMjIyPDEwMD4k4oCiMTIzLDAwMC4yMDwxMDA+IOKAojE3OS4wMTwxMDA+JeKAolg8MjAwPiDigKJOb3c8MjAwPlxy4oCiaXM8MjAwPlxu4oCidGhlPDIwMD5cclxu4oCidGltZTwyMDA+IOKAojwvZGF0YT4NCisNCisjSGFuZ3VsDQorPGRhdGE+4oCiXHVjNWYwXHVkNTY5PDIwMD4g4oCiXHVjN2E1XHViODVjXHVhZDUwXHVkNjhjPDIwMD4g4oCiXHUxMTA5XHUxMTYxXHUxMWJjXHUxMTEyXHUxMTYxXHUxMWJjPDIwMD4g4oCiXHUxMTEyXHUxMTYxXHUxMWFiXHUxMTBiXHUxMTc1XHUxMWFiPDIwMD4g4oCiSGVsbG88MjAwPizigKIg4oCiaG93PDIwMD4g4oCiYXJlPDIwMD4g4oCieW91PDIwMD4g4oCiPC9kYXRhPg0KKw0KKw0KKyMgV29yZHMgY29udGFpbmluZyBub24tQk1QIGxldHRlcnMNCis8ZGF0YT7igKJhYmNcVTAwMDEwMzAwPDIwMD4g4oCiYWJjXE57REVTRVJFVCBTTUFMTCBMRVRURVIgRU5HfTwyMDA+IOKAomFiY1xOe01BVEhFTUFUSUNBTCBCT0xEIFNNQUxMIFp9PDIwMD4g4oCiYWJjXE57TUFUSEVNQVRJQ0FMIFNBTlMtU0VSSUYgQk9MRCBJVEFMSUMgUEkgU1lNQk9MfTwyMDA+IOKAojwvZGF0YT4NCisNCisjIFVuYXNzaWduZWQgY29kZSBwb2ludHMNCis8ZGF0YT7igKJhYmM8MjAwPlxVMDAwMUQ4MDDigKJkZWY8MjAwPlxVMDAwMUQzRkbigKIg4oCiPC9kYXRhPg0KKw0KKyMgSGlyYWdhbmEgJiBLYXRha2FuYSBzdGF5IHRvZ2V0aGVyLCBidXQgc2VwYXJhdGVzIGZyb20gZWFjaCBvdGhlciBhbmQgTGF0aW4uDQorPGRhdGE+4oCiYWJjPDIwMD5cTntISVJBR0FOQSBMRVRURVIgU01BTEwgQX08MzAwPlxOe0hJUkFHQU5BIExFVFRFUiBWVX1cTntDT01CSU5JTkcgQUNVVEUgQUNDRU5UfTwzMDA+XE57SElSQUdBTkEgSVRFUkFUSU9OIE1BUkt9PDMwMD5cTntLQVRBS0FOQSBMRVRURVIgU01BTEwgQX1cTntLQVRBS0FOQSBJVEVSQVRJT04gTUFSS31cTntIQUxGV0lEVEggS0FUQUtBTkEgTEVUVEVSIFdPfVxOe0hBTEZXSURUSCBLQVRBS0FOQSBMRVRURVIgTn08MzAwPmRlZjwyMDA+I+KAojwvZGF0YT4NCisNCisjIFdvcmRzIHdpdGggaW50ZXJpb3IgZm9ybWF0dGluZyBjaGFyYWN0ZXJzDQorPGRhdGE+4oCiZGVmXE57Q09NQklOSU5HIEFDVVRFIEFDQ0VOVH1cTntTWVJJQUMgQUJCUkVWSUFUSU9OIE1BUkt9Z2hpPDIwMD4g4oCiPC9kYXRhPg0KKyAgICANCisjIHRvIHRlc3QgZm9yIGJ1ZyAjNDA5Nzc3OQ0KKzxkYXRhPuKAomFhXE57Q09NQklOSU5HIEdSQVZFIEFDQ0VOVH1hPDIwMD4g4oCiPC9kYXRhPg0KKw0KKw0KKyMgICAgICB0byB0ZXN0IGZvciBidWcgIzQwOTg0NjcNCisjICAgICAgV2hhdCBmb2xsb3dzIGlzIGEgc3RyaW5nIG9mIEtvcmVhbiBjaGFyYWN0ZXJzIChJIGZvdW5kIGl0IGluIHRoZSBZZWxsb3cgUGFnZXMNCisjICAgICAgYWQgZm9yIHRoZSBLb3JlYW4gUHJlc2J5dGVyaWFuIENodXJjaCBvZiBTYW4gRnJhbmNpc2NvLCBhbmQgSSBob3BlIEkgdHJhbnNjcmliZWQNCisjICAgICAgaXQgY29ycmVjdGx5KSwgZmlyc3QgYXMgcHJlY29tcG9zZWQgc3lsbGFibGVzLCBhbmQgdGhlbiBhcyBjb25qb2luaW5nIGphbW8uDQorIyAgICAgIEJvdGggc2VxdWVuY2VzIHNob3VsZCBiZSBzZW1hbnRpY2FsbHkgaWRlbnRpY2FsIGFuZCBicmVhayB0aGUgc2FtZSB3YXkuDQorIyAgICAgIHByZWNvbXBvc2VkIHN5bGxhYmxlcy4uLg0KKzxkYXRhPuKAolx1YzBjMVx1ZDU2ZDwyMDA+IOKAolx1ZDU1Y1x1Yzc3ODwyMDA+IOKAolx1YzVmMFx1ZDU2OTwyMDA+IOKAolx1YzdhNVx1Yjg1Y1x1YWQ1MFx1ZDY4YzwyMDA+IOKAolx1MTEwOVx1MTE2MVx1MTFiY1x1MTExMlx1MTE2MVx1MTFiYzwyMDA+IOKAolx1MTExMlx1MTE2MVx1MTFhYlx1MTEwYlx1MTE3NVx1MTFhYjwyMDA+IOKAolx1MTEwYlx1MTE2N1x1MTFhYlx1MTExMlx1MTE2MVx1MTFiODwyMDA+IOKAolx1MTEwY1x1MTE2MVx1MTFiY1x1MTEwNVx1MTE2OVx1MTEwMFx1MTE2ZFx1MTExMlx1MTE2YzwyMDA+IOKAojwvZGF0YT4NCisNCis8ZGF0YT7igKJhYmM8MjAwPlx1NGUwMTw0MDA+XHU0ZTAyPDQwMD5cdTMwMDU8MjAwPlx1NGUwMzw0MDA+XHU0ZTAzPDQwMD5hYmM8MjAwPiDigKI8L2RhdGE+DQorDQorPGRhdGE+4oCiXHUwNmM5XHVjNzk5PDIwMD5cdWZmZmHigKI8L2RhdGE+DQorDQorIyAgICAgIA0KKyMgICAgICBUcnkgc29tZSB3b3JkcyBmcm9tIG90aGVyIHNjcmlwdHMuDQorIyAgICAgDQorDQorIyAgICAgICBUcnkgc29tZSB3b3JkcyBmcm9tIG90aGVyIHNjcmlwdHMuDQorIyAgICAgICAgICBHcmVlaywgQ3lyaWxsaWMsIEhlYnJldywgQXJhYmljLCBBcmFiaWMsIEdlb3JnaWFuLCBMYXRpbg0KKyMgICAgICANCis8ZGF0YT7igKLOkc6SzpM8MjAwPiDigKLQkdCS0JM8MjAwPiDigKLXkNeR15LWkzwyMDA+IOKAotin2KjYqjwyMDA+IOKAotmh2aLZozwxMDA+IOKAolx1MTBBMFx1MTBBMVx1MTBBMjwyMDA+IOKAokFCQzwyMDA+IOKAojwvZGF0YT4NCisNCis8ZGF0YT7igKJcdTAzMDHigKJBPDIwMD48L2RhdGE+DQorDQorDQorIw0KKyMgIEhpbmRpIHdvcmQgYnJlYWsgdGVzdHMsIGltcG9ydGVkIGZyb20gdGhlIG9sZCBSQkJJIHRlc3RzLg0KKyMgICAgQW4gaGlzdG9yaWNhbCBub3RlOiAgYSBtdWNoIGVhcmxpZXIgdmVyc2lvbiBvZiBJQ1UgYnJlYWsgaXRlcmF0b3JzIGhhZCBhIG51bWJlcg0KKyMgICAgb2Ygc3BlY2lhbCBjYXNlIHJ1bGVzIGZvciBIaW5kaSwgd2hpY2ggd2VyZSB0ZXN0ZWQgYnkgYW4gZWFybGllciB2ZXJzaW9uIG9mDQorIyAgICB0aGlzIHRlc3QgZGF0YS4gIFRoZSBjdXJyZW50IFJCQkkgcnVsZXMgZG8gbm90IHNwZWNpYWwgY2FzZSBIaW5kaSBpbiANCisjICAgIGFueSB3YXksIG1ha2luZyB0aGlzIHRlc3QgZGF0YSBtdWNoIGxlc3Mgc2lnbmZpZmljYW50Lg0KKyMNCis8ZGF0YT7igKJcdTA5MTdcdTA5MmFcdTAwYWRcdTA5MzZcdTA5MmE8MjAwPiHigKJcdTA5MmZcdTA5Mzk8MjAwPiDigKJcdTA5MzlcdTA5M2ZcdTA5MjhcdTA5NGRcdTIwMGRcdTA5MjZcdTA5NDA8MjAwPiDigKJcdTA5MzlcdTA5NDg8MjAwPiDigKJcdTA5MDVcdTA5M2VcdTA5MmE8MjAwPiDigKJcdTA5MzhcdTA5M2ZcdTA5MTZcdTA5NGJcdTA5MTdcdTA5NDc8MjAwPj/igKJcbuKAojrigKJcdTA5MmFcdTA5NGRcdTA5MzBcdTA5M2VcdTA5MmZcdTA5MDM8MjAwPg0KK+KAolx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzN1x1MDkzZTwyMDA+XHJcbuKAolx1MDkyYVx1MDk0ZFx1MDkzMFx1MDkxNVx1MDkzZVx1MDkzNjwyMDA+LOKAolx1MDkyNFx1MDk0MVx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0YjwyMDA+IOKAolx1MDkyZVx1MDkzZlx1MDkyNFx1MDk0ZFx1MDkzMDwyMDA+IOKAolx1MDkxNVx1MDkzZTwyMDA+IOKAolx1MDkyYVx1MDkyNFx1MDk0ZFx1MDkzMDwyMDA+IOKAolx1MDkyYVx1MDk1ZFx1MDk0YjwyMDA+IOKAolx1MDkzOFx1MDk0ZFx1MDkyNFx1MDk0ZFx1MDkzMFx1MDkzZjwyMDA+LuKAoiDigKJcdTA5NjhcdTA5NjYuXHUwOTY5XHUwOTZmPDEwMD4g4oCiXHUwOTY3XHUwOTY2XHUwOTY2Llx1MDk2Nlx1MDk2NjwxMDA+XHUyMGE44oCiXHUwOTY3LFx1MDk2N1x1MDk2Nlx1MDk2Ni5cdTA5NjZcdTA5NjY8MTAwPiDigKJcdTA5MDVcdTA5MmVcdTA5MWM8MjAwPlxu4oCiXHUwOTM4XHUwOTRkXHUyMDBkXHUwOTM1XHUwOTI0XHUwOTAyXHUwOTI0XHUwOTRkXHUwOTMwPDIwMD5ccuKAojwvZGF0YT4NCisNCisjDQorIyAgRmFpbHVyZXMgZnJvbSBtb25rZXkgdGVzdHMNCisjDQorPGRhdGE+4oCiXHU4NTI3PDQwMD5cdTAyYmE8MjAwPlx1MDAyN1x1MGQ0MuKAolx1MDBiN+KAolx1MDllYTwxMDA+PC9kYXRhPg0KKw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisjDQorIw0KKyMgICAgICAgUyBlIG4gdCBlIG4gYyBlICAgICBCIG8gdSBuIGQgYSByIHkgICAgICBUIGUgcyB0IHMNCisjDQorIw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KKw0KKyMNCisjIFRlc3QgZGF0YSBvcmlnaW5hbGx5IGZyb20gUkJCSSBSQkJJVGVzdDo6VGVzdERlZmF1bHRSdWxlQmFzZWRTZW50ZW5jZUl0ZXJhdGlvbigpDQorIw0KKzxzZW50Pg0KKw0KKw0KKzxzZW50Pg0KKzxkYXRhPuKAolRoaXNcbjwxMDA+PC9kYXRhPg0KKzxkYXRhPuKAokhlbGxvISDigKJob3cgYXJlIHlvdT8g4oCiSSdhbSBmaW5lLiDigKJUaGFua3lvdS4g4oCiSG93IGFyZSB5b3UgXA0KK2RvaW5nPyDigKJUaGlzXG48MTAwPiBjb3N0cyAkMjAsMDAsMDAwLiDigKI8L2RhdGE+DQorDQorDQorIyBTZW50ZW5jZSBlbmRpbmcgaW4gYSBxdW90ZS4NCis8ZGF0YT7igKIiU2VudGVuY2UgZW5kaW5nIHdpdGggYSBxdW90ZS4iIOKAokJ5ZS7igKI8L2RhdGE+DQorDQorIyBTZW50ZW5jZSwgYW5kIHRlc3QgZGF0YSwgZW5kaW5nIHdpdGhvdXQgYSBwZXJpb2Qgb3Igb3RoZXIgdGVybWluYXRvci4NCis8ZGF0YT7igKJIZXJlIGlzIGEgcmFuZG9tIHNlbnRlbmNlLCBubyBlbmRpbmcgcGVyaW9kPDEwMD48L2RhdGE+DQorDQorDQorPGRhdGE+4oCiICAoVGhpcyBpcyBpdCkuICDigKJUZXN0aW5nIHRoZSBzZW50ZW5jZSBpdGVyYXRvci4g4oCiXA0KKyJUaGlzIGlzbid0IGl0LiIg4oCiSGkhIFwNCivigKJUaGlzIGlzIGEgc2ltcGxlIHNhbXBsZSBzZW50ZW5jZS4g4oCiKFRoaXMgaXMgaXQuKSDigKJUaGlzIGlzIGEgc2ltcGxlIHNhbXBsZSBzZW50ZW5jZS4g4oCiXA0KKyJUaGlzIGlzbid0IGl0LiIg4oCiXA0KK0hpISDigKJUaGlzIGlzIGEgc2ltcGxlIHNhbXBsZSBzZW50ZW5jZS4g4oCiSXQgZG9lcyBub3QgaGF2ZSB0byBtYWtlIGFueSBzZW5zZSBhcyB5b3UgY2FuIHNlZS4g4oCiTmVsIG1lenpvIGRlbCBjYW1taW4gZGkgbm9zdHJhIHZpdGEsIG1pIHJpdHJvdmFpIGluIHVuYSBzZWx2YSBvc2N1cmEuIOKAokNoZSBsYSBkcml0dGEgdmlhIGF2ZW8gc21hcnJpdGEuIOKAokhlIHNhaWQsIHRoYXQgSSBzYWlkLCB0aGF0IHlvdSBzYWlkIeKAoiEg4oCiRG9uJ3Qgcm9jayB0aGUgYm9hdC5cdTIwMjnigKJCZWNhdXNlIEkgYW0gdGhlIGRhZGR5LCB0aGF0IGlzIHdoeS4gDQor4oCiTm90IG9uIG15IHRpbWUgKGVsIHRpbW8uKeKAoiEg4oCiPC9kYXRhPg0KKw0KKzxkYXRhPuKAokhlbGxvLiAg4oCiU28gd2hhdCHigKIhXHUyMDI54oCiIkJ1dCBub3csIiBoZSBzYWlkLCBcDQorIkkga25vdyEiIOKAolwNCitIYXJyaXMgdGh1bWJlZCBkb3duIHNldmVyYWwsIGluY2x1ZGluZyAiQXdheSBXZSBHbyIgKHdoaWNoIGJlY2FtZSB0aGUgaHVnZSBzdWNjZXNzIE9rbGFob21hISnigKIuIOKAok9uZSBzcGVjaWVzLCBCLiBhbnRocmFjaXMsIGlzIGhpZ2hseSB2aXJ1bGVudC4NCivigKJXb2xmIHNhaWQgYWJvdXQgU291bmRlcjpcDQorIkJlYXV0aWZ1bGx5IHRob3VnaHQtb3V0IGFuZCBkaXJlY3RlZC4iIOKAolwNCitIYXZlIHlvdSBldmVyIHNhaWQsICJUaGlzIGlzIHdoZXJlXHRJIHNoYWxsIGxpdmUiPyDigKJIZSBhbnN3ZXJlZCwgXA0KKyJZb3UgbWF5IG5vdCEiIOKAokFub3RoZXIgcG9wdWxhciBzYXlpbmcgaXM6ICJIb3cgZG8geW91IGRvPyLigKIuIFxu4oCiXA0KK1lldCBhbm90aGVyIHBvcHVsYXIgc2F5aW5nIGlzOiBcDQorJ0knbSBmaW5lIHRoYW5rcy4nIOKAolwNCitXaGF0IGlzIHRoZSBwcm9wZXIgdXNlIG9mIHRoZSBhYmJyZXZpYXRpb24gcHAu4oCiPyDigKJZZXMsIEkgYW0gZGVmaW5hdGVsbHkgMTIiIHRhbGwh4oCiIVwNCivigKJOb3dccjwxMDA+aXNcbjwxMDA+dGhlXHJcbjwxMDA+dGltZVxuPDEwMD5ccjwxMDA+Zm9yXHI8MTAwPlxyPDEwMD48L2RhdGE+DQorDQorPGRhdGE+4oCiTm8gYnJlYWtzIHdoZW4gLiBpcyBzdXJyb3VuZGVkIGJ5IFVQUEVSLkNhc2UgbGV0dGVycy4gIOKAojwvZGF0YT4NCis8ZGF0YT7igKJObyBicmVha3Mgd2hlbiAuIGlzIGZvbGxvd2VkIGJ5IE51bWVyaWMgLjQgYS40IEMuNCAzLjEgLuKAojwvZGF0YT4NCis8ZGF0YT7igKJObyBicmVha3Mgd2hlbiAuIGlzIGZvbGxvd2VkIGJ5IGEgbG93ZXIsIHdpdGggcG9zc2libGUgaW50ZXJ2ZW5pbmcgcHVuY3QgLixhIC4kYSAuKWEuIOKAojwvZGF0YT4NCisNCisjDQorIyAgU2VudGVuY2UgQnJlYWtzOiBubyBicmVhayBhdCB0aGUgYm91bmRhcnkgYmV0d2VlbiBDSksgYW5kIG90aGVyIGxldHRlcnMNCisjDQorPGRhdGE+4oCiXHU1NDg3XHU2N2ZmXHVlNTkxXHU1MDE3XHU2MWIzXHU2MGExXHU5NTEwXHU4MTY1OiJKQVZBXHU4MjFjXHU4MTY1XHU3ZmM4XHU1MWNlXHUzMDZkLFx1MjQ5NFx1NTZkOFx1NGVjMFx1NjBiMVx1ODU2MFx1NTFiYVx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0NiIuXHUyMDI54oCiXHU1NDg3XHU2N2ZmXHVlNTkxXHU1MDE3XHU2MWIzXHU2MGExXHU5NTEwXHU4MTY1XHU5ZGU4XHU5N2U0SkFWQVx1ODIxY1x1ODE2NVx1N2ZjOFx1NTFjZVx1MzA2ZFx1ZTMwYlx1MjQ5NFx1NTZkOFx1NGVjMFx1NjBiMVx1ODU2MFx1NTFiYVx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0Nlx1OTdlNVx1Nzc1MVx1MzAwMuKAolx1NTQ4N1x1NjdmZlx1ZTU5MVx1NTAxN1x1NjFiM1x1NjBhMVx1OTUxMFx1ODE2NVx1OWRlOFx1OTdlNFx1NjQ3MFx1ODc5MEpBVkFcdTgyMWNcdTgxNjVcdTdmYzhcdTUxY2VcdTMwNmRcdWUzMGJcdTI0OTRcdTU2ZDhcdTRlYzBcdTYwYjFcdTg1NjBcdTUxYmFcdTYxMWRcdTU3YjZcdTI1MTBcdTVkNDZcdTk3ZTVcdTc3NTFcdTIwNDjigKJIZSBzYWlkLCAiSSBjYW4gZ28gdGhlcmUuIlx1MjAyOeKAokJ5ZSwgbm93LuKAojwvZGF0YT4NCisNCisjDQorIyAgICAgIFRyZWF0IGZ1bGx3aWR0aCB2YXJpYW50cyBvZiAuIT8gdGhlIHNhbWUgYXMgdGhlaXINCisjICAgICAgbm9ybWFsIGNvdW50ZXJwYXJ0cw0KKyMNCis8ZGF0YT7igKJJIGtub3cgSSdtIHJpZ2h0XHVmZjBlIOKAolJpZ2h0XHVmZjFmIOKAolJpZ2h0XHVmZjAxIOKAojwvZGF0YT4iDQorDQorDQorIw0KKyMgICAgICAgRG9uJ3QgYnJlYWsgc2VudGVuY2VzIGF0IGJvdW5kYXJ5IGJldHdlZW4gQ0pLIGFuZCBkaWdpdHMNCisjDQorPGRhdGE+4oCiXHU1NDg3XHU2N2ZmXHVlNTkxXHU1MDE3XHU2MWIzXHU2MGExXHU5NTEwXHU4MTY1XHU5ZGU4XHU5N2U0ODg4OFx1ODIxY1x1ODE2NVx1N2ZjOFx1NTFjZVx1MzA2ZFx1ZTMwYlx1MjQ5NFx1NTZkOFx1NGVjMFx1NjBiMVx1ODU2MFx1NTFiYVx1NjExZFx1NTdiNlx1MjUxMFx1NWQ0Nlx1OTdlNVx1Nzc1MVx1MzAwMuKAokJ5ZSwgbm93PDEwMD48L2RhdGE+Ig0KKw0KKyMNCisjICAgICAgQnJlYWtzIGFyb3VuZCAnKCcgZm9sbG93aW5nIGEgc2VudGVuY2UgVEVSTS4gIChSdWxlIDkpDQorIw0KKzxkYXRhPuKAokhvdyBkbyB5b3UgZG8/KOKAokZpbmUpLiDigKI8L2RhdGE+DQorPGRhdGE+4oCiSG93IGRvIHlvdSBkbz8g4oCiKEZpbmUpLiDigKI8L2RhdGE+DQorPGRhdGE+4oCiSG93IGRvIHlvdSBkbz8o4oCiZmluZSkuIOKAojwvZGF0YT4NCis8ZGF0YT7igKJIb3cgZG8geW91IGRvPyDigKIoZmluZSkuIOKAojwvZGF0YT4NCisNCisjDQorPGRhdGE+4oCiSGVsbG8uMTIzPDEwMD48L2RhdGE+ICAgICMgUnVsZSA2ICAgIA0KKzxkYXRhPuKAokhlbGxvP+KAojEyMzwxMDA+PC9kYXRhPiAgDQorICANCis8ZGF0YT7igKJIRUxMTy5CeWU8MTAwPjwvZGF0YT4gICAgIyBSdWxlIDcgICAgDQorPGRhdGE+4oCiSEVMTE8/4oCiQnllPDEwMD48L2RhdGE+ICAgIA0KKw0KKzxkYXRhPuKAokhlbGxvLmdvb2RieWU8MTAwPjwvZGF0YT4gICNSdWxlIDgNCis8ZGF0YT7igKJIZWxsby4g4oCiR29vZGJ5ZTwxMDA+PC9kYXRhPg0KKzxkYXRhPuKAokhlbGxvLiBnb29kYnllPDEwMD48L2RhdGE+DQorDQorDQorDQorIw0KKyMgICAgICAgIHRlc3QgZm9yIGJ1ZyAjNDE1ODM4MTogTm8gYnJlYWtzIHdoZW4gdGhlcmUgYXJlIG5vIHRlcm1pbmF0b3JzIGFyb3VuZA0KKyMNCis8ZGF0YT7igKJcPFA+UHJvdmlkZXMgYSBzZXQgb2YgJnF1b3Q7bGlnaHR3ZWlnaHQmcXVvdDsgKGFsbC1qYXZhXDxGT05UIFNJWkU9Ii0yIj5cPFNVUD5UTVw8L1NVUD5cPC9GT05UPiBsYW5ndWFnZSkgY29tcG9uZW50cyB0aGF0LCB0byB0aGUgbWF4aW11bSBkZWdyZWUgcG9zc2libGUsIHdvcmsgdGhlIHNhbWUgb24gYWxsIHBsYXRmb3Jtcy4gIOKAojwvZGF0YT4NCis8ZGF0YT7igKJBbm90aGVyIHRlc3QuXHUyMDI54oCiPC9kYXRhPg0KKyAgICAgIA0KKyMgICAgICAgIHRlc3QgZm9yIGJ1ZyAjNDE0MzA3MTogTWFrZSBzdXJlIHNlbnRlbmNlcyB0aGF0IGVuZCB3aXRoIGRpZ2l0cw0KKyMgICAgICAgIHdvcmsgcmlnaHQNCisjDQorPGRhdGE+4oCiVG9kYXkgaXMgdGhlIDI3dGggb2YgTWF5LCAxOTk4LiAg4oCiPC9kYXRhPg0KKzxkYXRhPuKAolRvbW9ycm93IHdpdGggYmUgMjggTWF5IDE5OTguICDigKI8L2RhdGE+DQorPGRhdGE+4oCiVGhlIGRheSBhZnRlciB3aWxsIGJlIHRoZSAzMHRoLlx1MjAyOeKAojwvZGF0YT4NCisgICAgICANCisjICAgICAgICB0ZXN0IGZvciBidWcgIzQxNTI0MTY6IE1ha2Ugc3VyZSBzZW50ZW5jZXMgZW5kaW5nIHdpdGggYSBjYXBpdGFsDQorIyAgICAgICAgbGV0dGVyIGFyZSB0cmVhdGVkIGNvcnJlY3RseQ0KKyMNCis8ZGF0YT7igKJUaGUgdHlwZSBvZiBhbGwgcHJpbWl0aXZlIFw8Y29kZT5ib29sZWFuXDwvY29kZT4gdmFsdWVzIGFjY2Vzc2VkIGluIHRoZSB0YXJnZXQgVk0uICDigKJDYWxscyB0byB4eHggd2lsbCByZXR1cm4gYW4gaW1wbGVtZW50b3Igb2YgdGhpcyBpbnRlcmZhY2UuICBcdTIwMjnigKI8L2RhdGE+DQorICAgICAgDQorIyAgICAgICAgdGVzdCBmb3IgYnVnICM0MTUyMTE3OiBNYWtlIHN1cmUgc2VudGVuY2UgYnJlYWtpbmcgaXMgaGFuZGxpbmcNCisjICAgICAgICBwdW5jdHVhdGlvbiBjb3JyZWN0bHkgW0NPVUxEIE5PVCBSRVBST0RVQ0UgVEhJUyBCVUcsIEJVVCBURVNUIElTDQorIyAgICAgICAgSEVSRSBUTyBNQUtFIFNVUkUgSVQgRE9FU04nVCBDUk9QIFVQXQ0KKyMNCis8ZGF0YT7igKJDb25zdHJ1Y3RzIGEgcmFuZG9tbHkgZ2VuZXJhdGVkIEJpZ0ludGVnZXIsIHVuaWZvcm1seSBkaXN0cmlidXRlZCBvdmVyIHRoZSByYW5nZSBcPHR0PjBcPC90dD4gdG8gXDx0dD4oMlw8c3VwPm51bUJpdHNcPC9zdXA+IC0gMVwpXDwvdHQ+LCBpbmNsdXNpdmUuICDigKJUaGUgdW5pZm9ybWl0eSBvZiB0aGUgZGlzdHJpYnV0aW9uIGFzc3VtZXMgdGhhdCBhIGZhaXIgc291cmNlIG9mIHJhbmRvbSBiaXRzIGlzIHByb3ZpZGVkIGluIFw8dHQ+cm5kXDwvdHQ+LiAg4oCiTm90ZSB0aGF0IHRoaXMgY29uc3RydWN0b3IgYWx3YXlzIGNvbnN0cnVjdHMgYSBub24tbmVnYXRpdmUgYmlnaW50ZWdlci4gIFxu4oCiQWhoIGFiYy4gIA0KK+KAojwvZGF0YT4NCisNCisjICAgICAgICBzZW50ZW5jZSBicmVha3MgZm9yIGhpbmRpIHdoaWNoIHVzZWQgRGV2YW5hZ2FyaSBzY3JpcHQNCisjICAgICAgICBtYWtlIHN1cmUgdGhlcmUgaXMgc2VudGVuY2UgYnJlYWsgYWZ0ZXIgPyxkYW5kYShoaW5kaSBwaHJhc2Ugc2VwYXJhdG9yKSwNCisjICAgICAgICBmdWxsc3RvcCBmb2xsb3dlZCBieSBzcGFjZS4gIChWRVJZIG9sZCB0ZXN0KQ0KKyMgICAgICAgDQorPGRhdGE+4oCiXHUwOTI4XHUwOTJlXHUwOTM4XHUwOTRkXHUyMDBkXHUwOTI0XHUwOTQ3IFx1MDkzMFx1MDkyZVx1MDk0N1x1MDkzNlx1MDkwNVx1MDkzZVx1MDkyYVx1MDkxNVx1MDk0OFx1MDkzOFx1MDk0NyBcdTA5MzlcdTA5NDg/4oCiXHUwOTJlXHUwOTQ4IFx1MDkwNVx1MDkxYVx1MDk0ZFx1MjAwZCBcdTA5MWJcdTA5M2UgXHUwOTM5XHUwOTQyXHUwOTAxXHUwOTY0IOKAolx1MDkwNVx1MDkzZVx1MDkyYVxyXG48MTAwPlwNCitcdTA5MTVcdTA5NDhcdTA5MzhcdTA5NDcgXHUwOTM5XHUwOTQ4P+KAolx1MDkzNVx1MDkzOSBcdTA5MTVcdTA5NGRcdTIwMGRcdTA5MmZcdTA5M2VcblwNCis8MTAwPlx1MDkzOVx1MDk0OD/igKJcdTA5MmZcdTA5MzkgXHUwOTA1XHUwOTNlXHUwOTJlIFx1MDkzOVx1MDk0OC4g4oCiXHUwOTJmXHUwOTM5IG1lYW5zICJ0aGlzIi4g4oCiIlx1MDkyYVx1MDk1ZFx1MDkzZVx1MDkwOCIgbWVhbmluZyAiZWR1Y2F0aW9uIiBvciAic3R1ZGllcyIuIOKAolx1MDkwNVx1MDkzZVx1MDkxYyhcdTA5MzhcdTA5NGRcdTIwMGRcdTA5MzVcdTA5MjRcdTA5MDJcdTA5MjRcdTA5NGRcdTA5MzAgXHUwOTI2XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTM4KSBcdTA5MzlcdTA5NDhcdTA5NjQg4oCiTGV0J3MgZW5kIGhlcmUuIOKAojwvZGF0YT4NCisNCisjICAgICAgICAgUmVncmVzc2lvbiB0ZXN0IGZvciBidWcgIzE5ODQsIFNlbnRlbmNlIGJyZWFrIGluIEFyYWJpYyB0ZXh0Lg0KKyAgDQorPGRhdGE+XA0KK+KAolx1MDYyM1x1MDYzM1x1MDYyN1x1MDYzM1x1MDY0Ylx1MDYyN1x1MDYwY1x1MDAyMFx1MDYyYVx1MDYyYVx1MDYzOVx1MDYyNyJcdTA2NDVcdTA2NDRcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MmRcdTA2NDhcdTA2MjdcdTA2MzNcdTA2NGFcdTA2MjhcdTAwMjAiXHUwNjQxXHUwNjQyXHUwNjM3XHUwMDIwXHUwNjQ1XHUwNjM5XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjQyXHUwNjI3XHUwNjQ1XHUwNjBjXHUwNjQ4XHUwNjJhXHUwNjQyXHUwNjQ4XHUwNjQ1XHUwMDIwXHUwNjI4XHUwNjJhXHUwNjJlXHUwNjMyXHUwNjRhXHUwNjQ2XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJkXHUwNjMxXHUwNjQxXHUwMDIwXHUwNjQ4XHUwNjI3XHUwNjQ0XHUwNjQ1XHUwNjJkXHUwNjI3XHUwNjMxXHUwNjQxXHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJlXHUwNjMxXHUwNjQ5XHUwMDIwXHUwNjI4XHUwNjM5XHUwNjJmXHUwMDIwXHUwNjIzXHUwNjQ2XHUwNjJhXHUwNjRmXHUwNjM5XHUwNjM3XHUwNjRhXHUwMDIwXHUwNjMxXHUwNjQyXHUwNjQ1XHUwNjI3XHUwMDIwXHUwNjQ1XHUwNjM5XHUwNjRhXHUwNjQ2XHUwNjI3XHUwMDIwXHUwNjQ0XHUwNjQzXHUwNjQ0XHUwMDIwXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmXHUwMDIwXHUwNjQ1XHUwNjQ2XHUwNjQ3XHUwNjI3XHUwMDJlXHUwMDIw4oCiXHUwNjQ4XHUwNjQyXHUwNjI4XHUwNjQ0XHUwMDIwXHUwNjI3XHUwNjJlXHUwNjJhXHUwNjMxXHUwNjI3XHUwNjM5XHUwMDIyXHUwNjRhXHUwNjQ4XHUwNjQ2XHUwNjUwXHUwNjQzXHUwNjQ4XHUwNjJmXHUwMDIyXHUwNjBjXHUwMDIwXHUwNjQzXHUwNjI3XHUwNjQ2XHUwMDIwXHUwNjQ3XHUwNjQ2XHUwNjI3XHUwNjQzXHUwMDIwXHUwNjQ1XHUwNjI2XHUwNjI3XHUwNjJhXHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjQ2XHUwNjM4XHUwNjQ1XHUwNjI5XHUwMDIwXHUwNjQ0XHUwNjQ0XHUwNjJhXHUwNjM0XHUwNjQxXHUwNjRhXHUwNjMxXHUwNjQ4XHUwNjJhXHUwNjJlXHUwNjM1XHUwNjRhXHUwNjM1XHUwMDIwXHUwNjQ3XHUwNjMwXHUwNjQ3XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjQyXHUwNjI3XHUwNjQ1XHUwMDIwXHUwNjQ0XHUwNjQ0XHUwNjQ1XHUwNjJkXHUwNjI3XHUwNjMxXHUwNjQxXHUwNjBjXHUwMDIwXHUwNjQ4XHUwNjQ0XHUwNjQ1XHUwMDIwXHUwNjRhXHUwNjQ4XHUwNjJjXHUwNjJmXHUwMDIwXHUwNjQ2XHUwNjM4XHUwNjI3XHUwNjQ1XHUwNjJhXHUwNjM0XHUwNjQxXHUwNjRhXHUwMDIwXHUwNjM5XHUwNjQ0XHUwNjQ5XHUwMDIwXHUwNjJjXHUwNjQ1XHUwNjRhXHUwNjM5XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjQ1XHUwNjJkXHUwNjI3XHUwNjMxXHUwNjQxXHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjM2XHUwNjMxXHUwNjQ4XHUwNjMxXHUwNjRhXHUwNjI5LiAg4oCiPC9kYXRhPiINCisNCisjICAgICAgICAgVHJ5IGEgZmV3IG1vcmUgb2YgdGhlIGxlc3MgY29tbW9uIHNlbnRlbmNlIGVuZGluZ3MuDQorPGRhdGE+4oCiSGVsbG8sIHdvcmxkXHUzMDAyIOKAokhlbGxvLCB3b3JsZFx1MTgwMyDigKJIZWxsbywgd29ybGRcdTIwNDgg4oCiSGVsbG8sIHdvcmxkXHUyMDNjIOKAokxldCdzIGVuZCBoZXJlLiDigKI8L2RhdGE+DQorDQorDQorDQorDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMNCisjDQorIyAgICAgICAgTCBJIE4gRSAgICAgQiBSIEUgQSBLDQorIw0KKyMNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorPGxpbmU+DQorIw0KKyMgVGVzdCBDaGFyYWN0ZXIgZm9yIGVhY2ggb2YgdGhlIGxpbmUgYnJlYWsgY2xhc3Nlcy4NCisjDQorIyAwMEExO0FJICMgSU5WRVJURUQgRVhDTEFNQVRJT04gTUFSSyAgwqENCisjIDAwNDE7QUwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBBDQorIyAwMDA5O0JBICMgPGNvbnRyb2w+DQorIyAwMEI0O0JCICMgQUNVVEUgQUNDRU5UDQorIyAwMDBDO0JLICMgPGNvbnRyb2w+DQorIyAyMDE0O0IyICMgRU0gREFTSA0KKyMgRkZGQztDQiAjIE9CSkVDVCBSRVBMQUNFTUVOVCBDSEFSQUNURVINCisjIDAwMjk7Q0wgIyBSSUdIVCBQQVJFTlRIRVNJUw0KKyMgMDMwMTtDTSAjIENPTUJJTklORyBBQ1VURSBBQ0NFTlQNCisjIDAwMjE7RVggIyBFWENMQU1BVElPTiBNQVJLDQorIyAwMEEwO0dMICMgTk8tQlJFQUsgU1BBQ0UNCisjIDAwMkQ7SFkgIyBIWVBIRU4tTUlOVVMNCisjIDRFMDA7SUQgIyA8Q0pLIElkZW9ncmFwaCwgRmlyc3Q+DQorIyAyMDI0O0lOICMgT05FIERPVCBMRUFERVINCisjIDAwMkM7SVMgIyBDT01NQQ0KKyMgMDAwQTtMRiAjIDxjb250cm9sPg0KKyMgMEU1QTtOUyAjIFRIQUkgQ0hBUkFDVEVSIEFOR0tIQU5LSFUNCisjIDAwMzI7TlUgIyBESUdJVCBUV08NCisjIDAwMjg7T1AgIyBMRUZUIFBBUkVOVEhFU0lTDQorIyAwMDI1O1BPICMgUEVSQ0VOVCBTSUdODQorIyAwMDI0O1BSICMgRE9MTEFSIFNJR04NCisjIDAwMjI7UVUgIyBRVU9UQVRJT04gTUFSSw0KKyMgMEUwMTtTQSAjIFRIQUkgQ0hBUkFDVEVSIEtPIEtBSQ0KKyMgREI3RjtTRyAjIFN1cnJvZ2F0ZQ0KKyMgMDAyMDtTUCAjIFNQQUNFDQorIyAwMDJGO1NZICMgU09MSURVUyAvDQorIyBGOEZGO1hYICMgUHJpdmF0ZSBVc2UNCisjIDIwMEI7WlcgIyBaRVJPIFdJRFRIIFNQQUNFDQorDQorDQorIyAyYiAgQWx3YXlzIGJyZWFrIGF0IGVuZCBvZiB0ZXh0DQorDQorPGRhdGE+4oCiICDigKJcdTAwQTHigKI8L2RhdGE+DQorPGRhdGE+4oCiICDigKJcdTAwNDHigKI8L2RhdGE+DQorPGRhdGE+4oCiICDigKJcdTAwMDnigKI8L2RhdGE+DQorPGRhdGE+4oCiICDigKJcdTAwQjTigKI8L2RhdGE+DQorPGRhdGE+4oCiICAgIFx1MDAwQzwxMDA+PC9kYXRhPiAgICAjIExCM0MgIMOXIEJLDQorPGRhdGE+4oCiICDigKJcdTIwMTTigKI8L2RhdGE+DQorPGRhdGE+4oCiICDigKJcdUZGRkPigKI8L2RhdGE+DQorPGRhdGE+4oCiICAgXHUwMDI54oCiPC9kYXRhPiAgICAjIExCIDggICDDlyBDTA0KKyMgPGRhdGE+4oCiIOKAoiBcdTAzMDHigKI8L2RhdGE+ICAgICMgTEIgN2EgICBUcmVhdCBTUCBDTSogYXMgaWYgaXQgd2VyZSBJRCAgI1RPRE86ICBTUCBDTQ0KKzxkYXRhPuKAoiAgIFx1MDAyMeKAojwvZGF0YT4gICAgIyBMQiA4ICAgw5cgRVgNCisjPGRhdGE+4oCiICAgXHUwMEEw4oCiPC9kYXRhPiAgICAjIExCIDExYiAgIMOXIEdMICAgVE9ETzogIGZpeC4NCis8ZGF0YT7igKIgIOKAolx1MDAyROKAojwvZGF0YT4NCis8ZGF0YT7igKIgIOKAolx1NEUwMOKAojwvZGF0YT4NCis8ZGF0YT7igKIgIOKAolx1MjAyNOKAojwvZGF0YT4NCis8ZGF0YT7igKIgICBcdTAwMkPigKI8L2RhdGE+ICAgICMgTEIgOCAgIMOXIElTDQorPGRhdGE+4oCiICAgXHUwMDBBPDEwMD48L2RhdGE+ICAgICMgTEIzQyAgIMOXICggQksgfCBDUiB8IExGIHwgTkwgKQ0KKzxkYXRhPuKAoiAg4oCiXHUwRTVB4oCiPC9kYXRhPg0KKzxkYXRhPuKAoiAg4oCiXHUwMDMy4oCiPC9kYXRhPg0KKzxkYXRhPuKAoiAg4oCiXHUwMDI44oCiPC9kYXRhPg0KKzxkYXRhPuKAoiAg4oCiXHUwMDI14oCiPC9kYXRhPg0KKzxkYXRhPuKAoiAg4oCiXHUwMDI04oCiPC9kYXRhPg0KKzxkYXRhPuKAoiAg4oCiXHUwMDIy4oCiPC9kYXRhPg0KKzxkYXRhPuKAoiAg4oCiXHUwRTAx4oCiPC9kYXRhPg0KKzxkYXRhPuKAoiAg4oCiXHVEQjdG4oCiPC9kYXRhPg0KKzxkYXRhPuKAoiAgIFx1MDAyMOKAojwvZGF0YT4gICAgICMgTEI0IC0gZG9uJ3QgYnJlYWsgYmVmb3JlIHNwYWNlLg0KKzxkYXRhPuKAoiAgIFx1MDAyRuKAojwvZGF0YT4gICAgICMgTEIgOCAgw5cgU1kNCis8ZGF0YT7igKIgIOKAolx1RjhGRuKAojwvZGF0YT4NCis8ZGF0YT7igKIgICBcdTIwMELigKI8L2RhdGE+ICAgICAjIExCNCAtIGRvbid0IGJyZWFrIGJlZm9yZSBaQQ0KKw0KKw0KKyMgM2EgIEFsd2F5cyBicmVhayBhZnRlciBoYXJkIGxpbmUgYnJlYWtzLg0KKyMgM2MgIE5ldmVyIGJyZWFrIGJlZm9yZSBoYXJkIGxpbmUgYnJlYWtzLg0KKw0KKzxkYXRhPuKAoiAg4oCiXHUwMEExXHUyMDI4PDEwMD5cdTAwQTHigKI8L2RhdGE+DQorPGRhdGE+4oCiICDigKJcdTAwNDFcdTIwMjg8MTAwPlx1MDA0MeKAojwvZGF0YT4NCis8ZGF0YT7igKIgIOKAolx1MDAwOVx1MjAyODwxMDA+XHUwMDA54oCiPC9kYXRhPg0KKzxkYXRhPuKAoiAg4oCiXHUwMEI0XHUyMDI4PDEwMD5cdTAwQjTigKI8L2RhdGE+DQorPGRhdGE+4oCiICAgXHUwMDBDPDEwMD5cdTIwMjg8MTAwPlx1MDAwQzwxMDA+PC9kYXRhPg0KKzxkYXRhPuKAoiAg4oCiXHUyMDE0XHUyMDI4PDEwMD5cdTIwMTTigKI8L2RhdGE+DQorPGRhdGE+4oCiICDigKJcdUZGRkNcdTIwMjg8MTAwPlx1RkZGQ+KAojwvZGF0YT4NCis8ZGF0YT7igKIgICBcdTAwMjlcdTIwMjg8MTAwPlx1MDAyOeKAojwvZGF0YT4NCisjPGRhdGE+4oCiICAgXHUwMzAxXHUyMDI4PDEwMD5cdTAzMDHigKI8L2RhdGE+ICAgICMgVE9ETzogIGZpeC4NCis8ZGF0YT7igKIgICBcdTAwMjFcdTIwMjg8MTAwPlx1MDAyMeKAojwvZGF0YT4NCisjPGRhdGE+4oCiICAgXHUwMEEwXHUyMDI4PDEwMD5cdTAwQTDigKI8L2RhdGE+ICAgICMgVE9ETzogIGZpeA0KKzxkYXRhPuKAoiAg4oCiXHUwMDJEXHUyMDI4PDEwMD5cdTAwMkTigKI8L2RhdGE+DQorPGRhdGE+4oCiICDigKJcdTRFMDBcdTIwMjg8MTAwPlx1NEUwMOKAojwvZGF0YT4NCis8ZGF0YT7igKIgIOKAolx1MjAyNFx1MjAyODwxMDA+XHUyMDI04oCiPC9kYXRhPg0KKzxkYXRhPuKAoiAgIFx1MDAyQ1x1MjAyODwxMDA+XHUwMDJD4oCiPC9kYXRhPg0KKzxkYXRhPuKAoiAgIFx1MDAwQTwxMDA+XHUyMDI4PDEwMD5cdTAwMEE8MTAwPjwvZGF0YT4NCis8ZGF0YT7igKIgIOKAolx1MEU1QVx1MjAyODwxMDA+XHUwRTVB4oCiPC9kYXRhPg0KKzxkYXRhPuKAoiAg4oCiXHUwMDMyXHUyMDI4PDEwMD5cdTAwMzLigKI8L2RhdGE+DQorPGRhdGE+4oCiICDigKJcdTAwMjhcdTIwMjg8MTAwPlx1MDAyOOKAojwvZGF0YT4NCis8ZGF0YT7igKIgIOKAolx1MDAyNVx1MjAyODwxMDA+XHUwMDI14oCiPC9kYXRhPg0KKzxkYXRhPuKAoiAg4oCiXHUwMDI0XHUyMDI4PDEwMD5cdTAwMjTigKI8L2RhdGE+DQorPGRhdGE+4oCiICDigKJcdTAwMjJcdTIwMjg8MTAwPlx1MDAyMuKAojwvZGF0YT4NCis8ZGF0YT7igKIgIOKAolx1MEUwMVx1MjAyODwxMDA+XHUwRTAx4oCiPC9kYXRhPg0KKzxkYXRhPuKAoiAg4oCiXHVEQjdGXHUyMDI4PDEwMD5cdURCN0bigKI8L2RhdGE+DQorPGRhdGE+4oCiICAgXHUwMDIwXHUyMDI4PDEwMD5cdTAwMjDigKI8L2RhdGE+DQorPGRhdGE+4oCiICAgXHUwMDJGXHUyMDI4PDEwMD5cdTAwMkbigKI8L2RhdGE+DQorPGRhdGE+4oCiICDigKJcdUY4RkZcdTIwMjg8MTAwPlx1RjhGRuKAojwvZGF0YT4NCis8ZGF0YT7igKIgICBcdTIwMEJcdTIwMjg8MTAwPlx1MjAwQuKAojwvZGF0YT4NCisNCisNCisjDQorIyAgT2xkIExpbmUgQnJlYWsgVGVzdCBkYXRhLiAgT3JnaW5hbGx5IGxvY2F0ZWQgaW4gUkJCSVRlc3Q6OlRlc3REZWZhdWx0UnVsZUJhc2VkTGluZUl0ZXJhdGlvbigpDQorIw0KKw0KKzxsaW5lPg0KKw0KKzxkYXRhPuKAok11bHRpLeKAokxldmVsIOKAomV4YW1wbGUg4oCib2Yg4oCiYSDigKJzZW1pLeKAomlkaW90aWMg4oCibm9uLeKAonNlbnNpY2FsIOKAoihub24t4oCiaW1wb3J0YW50KSDigKJzZW50ZW5jZS4gDQorPDEwMD5IaSAg4oCiSGVsbG8g4oCiSG93XG48MTAwPmFyZVxyPDEwMD55b3VcdTIwMjg8MTAwPmZpbmUuXHTigKJnb29kLiAg4oCiTm93XHI8MTAwPmlzXG48MTAwPnRoZVxyXG48MTAwPnRpbWVcbjwxMDA+XHI8MTAwPmZvclxyPDEwMD5ccjwxMDA+YWxs4oCiPC9kYXRhPg0KKw0KKzxsaW5lPg0KKzxkYXRhPuKAokhlbGxvISDigKJob3dcclxuPDEwMD4g4oCiKGFyZSlccjwxMDA+IOKAonlvdT8g4oCiSSdhbSDigKJmaW5lLSDigKJUaGFua3lvdS4g4oCiZm9vXHUwMGEwYmFyIA0KKzwxMDA+SG93LCDigKJhcmUsIOKAonlvdT8g4oCiVGhpcywg4oCiY29zdHMg4oCiJDIwLDAwLDAwMC7igKI8L2RhdGE+DQorDQorIyAgICAgdGVzdCBmb3IgYnVnICM0MDY4MTMzDQorIw0KKzxkYXRhPuKAolx1OTZmNuKAolx1NGUwMFx1MzAwMuKAolx1NGU4Y1x1MzAwMeKAolx1NGUwOVx1MzAwMlx1MzAwMeKAolx1NTZkYlx1MzAwMVx1MzAwMlx1MzAwMeKAolx1NGU5NCzigKJcdTUxNmQu4oCiXHU0ZTAzLlx1MzAwMSxcdTMwMDLigKJcdTUxNmLigKI8L2RhdGE+DQorDQorIyAgICAgdG8gdGVzdCBmb3IgYnVnICM0MDg2MDUyDQorPGRhdGE+4oCiZm9vXHUwMGEwYmFy4oCiPC9kYXRhPg0KKw0KKyMgICAgIHRvIHRlc3QgZm9yIGJ1ZyAjNDA5NzkyMA0KKzxkYXRhPuKAomRvZyxjYXQsbW91c2Ug4oCiKG9uZSnigKIodHdvKVxuPDEwMD48L2RhdGE+DQorDQorIyAgICAgdG8gdGVzdCBmb3IgYnVnICM0MDM1MjY2DQorPGRhdGE+4oCiVGhlIOKAomJhbGFuY2Ug4oCiaXMg4oCiJC0yMyw0NTYuNzgsIOKAom5vdCDigKIt4oCiJDMyLDQ1Ni43OCFcbjwxMDA+PC9kYXRhPg0KKw0KKw0KKyMgICAgICB0byB0ZXN0IGZvciBidWcgIzQwOTg0NjcNCisjICAgICAgV2hhdCBmb2xsb3dzIGlzIGEgc3RyaW5nIG9mIEtvcmVhbiBjaGFyYWN0ZXJzIChJIGZvdW5kIGl0IGluIHRoZSBZZWxsb3cgUGFnZXMNCisjICAgICAgYWQgZm9yIHRoZSBLb3JlYW4gUHJlc2J5dGVyaWFuIENodXJjaCBvZiBTYW4gRnJhbmNpc2NvLCBhbmQgSSBob3BlIEkgdHJhbnNjcmliZWQNCisjICAgICAgaXQgY29ycmVjdGx5KSwgZmlyc3QgYXMgcHJlY29tcG9zZWQgc3lsbGFibGVzLCBhbmQgdGhlbiBhcyBjb25qb2luaW5nIGphbW8uDQorIyAgICAgIEJvdGggc2VxdWVuY2VzIHNob3VsZCBiZSBzZW1hbnRpY2FsbHkgaWRlbnRpY2FsIGFuZCBicmVhayB0aGUgc2FtZSB3YXkuDQorIyAgICAgIHByZWNvbXBvc2VkIHN5bGxhYmxlcy4uLiAgKEkgPT0gUmljaCBHaWxsYW0/KQ0KKyMNCis8ZGF0YT7igKJcdWMwYzHigKJcdWQ1NmQg4oCiXHVkNTVj4oCiXHVjNzc4IOKAolx1YzVmMOKAolx1ZDU2OSDigKJcdWM3YTXigKJcdWI4NWPigKJcdWFkNTDigKJcdWQ2OGPigKI8L2RhdGE+DQorDQorIyAgICAgIGNvbmpvaW5pbmcgamFtby4uLg0KKyMgICAgICBUT0RPOiAgcnVsZXMgdXBkYXRlIG5lZWRlZA0KKyM8ZGF0YT7igKJcdTExMDlcdTExNjFcdTExYmPigKJcdTExMTJcdTExNjFcdTExYmMg4oCiXHUxMTEyXHUxMTYxXHUxMWFi4oCiXHUxMTBiXHUxMTc1XHUxMWFiICPigKJcdTExMGJcdTExNjdcdTExYWLigKJcdTExMTJcdTExNjFcdTExYjgg4oCiXHUxMTBjXHUxMTYxXHUxMWJj4oCiXHUxMTA1XHUxMTY54oCiXHUxMTAwXHUxMTZk4oCiXHUxMTEyXHUxMTZj4oCiPC9kYXRhPg0KKw0KKyMgICAgICB0byB0ZXN0IGZvciBidWcgIzQxMTc1NTQ6IEZ1bGx3aWR0aCAuIT8gc2hvdWxkIGJlIHRyZWF0ZWQgYXMgcG9zdEp3cmQNCis8ZGF0YT7igKJcdTRlMDFcdWZmMGXigKJcdTRlMDJcdWZmMDHigKJcdTRlMDNcdWZmMWbigKI8L2RhdGE+DQorDQorIyAgICAgIFN1cnJvZ2F0ZSBsaW5lIGJyZWFrIHRlc3RzLg0KKyMNCis8ZGF0YT7igKJcdTRlMDHigKJcdWQ4NDBcdWRjMDHigKJcdTRlMDLigKJhYmMg4oCiXHVlMDAwIOKAolx1ZGI4MFx1ZGMwMeKAojwvZGF0YT4NCisNCisjICAgICAgUmVncmVzc2lvbiBmb3IgYnVnIDgzNg0KKzxkYXRhPuKAokFBQeKAoihBQUEg4oCiPC9kYXRhPiANCisNCisjICAgICAgIFRyeSBzb21lIHdvcmRzIGZyb20gb3RoZXIgc2NyaXB0cy4NCisjICAgICAgICAgIEdyZWVrLCBDeXJpbGxpYywgSGVicmV3LCBBcmFiaWMsIEFyYWJpYywgR2VvcmdpYW4sIExhdGluDQorIyAgICAgIA0KKzxkYXRhPuKAos6RzpLOkyDigKLQkdCS0JMg4oCi15DXkdeS1pMg4oCi2KfYqNiqIOKAotmh2aLZoyDigKJcdTEwQTBcdTEwQTFcdTEwQTIg4oCiQUJDIOKAojwvZGF0YT4NCisNCisNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorIw0KKyMNCisjICAgICAgIFQgaSB0IGwgZSAgIEIgbyB1IG4gZCBhIHIgeSAgICAgIFQgZSBzIHQgcw0KKyMNCisjDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorPHRpdGxlPg0KKzxkYXRhPuKAokhlcmUg4oCiaXMg4oCiYSDigKJzaG9ydCDigKJzYW1wbGUg4oCic2VudGVuY2UuICDigKJBbmQg4oCiYW5vdGhlci7igKI8L2RhdGE+DQorPGRhdGE+4oCiSEVSRSDigKJJUyDigKJBIOKAolNIT1JUIOKAolNBTVBMRSDigKJTRU5URU5DRS4gIOKAokFORCDigKJBTk9USEVSLuKAojwvZGF0YT4NCis8ZGF0YT7igKIgIOKAolN0YXJ0IOKAomFuZCDigKJlbmQg4oCid2l0aCDigKJzcGFjZXMgICDigKI8L2RhdGE+DQorPGRhdGE+4oCiSW5jbHVkZSAxMjMgNDU2IF4mICDigKJzb21lIDU0MzMyIOKAom51bWJlcnMgNDQ0NeKAomFiYzEyM+KAomFiYyDigKJlbmRpbmcgMTIyMyDigKI8L2RhdGE+DQorDQorPGRhdGE+4oCiQ29tYmluaW5nXHUwMzAxIFx1MDMwMeKAom1hXHUwMzA2cmtzICDigKJieWUgIOKAojwvZGF0YT4NCis8ZGF0YT7igKIxMjMgIOKAolN0YXJ0IOKAondpdGgg4oCiYSDigKJudW1iZXIu4oCiPC9kYXRhPg0KKw0KKzxkYXRhPuKAoifigKJzdGFydCDigKJ3aXRoIOKAomEg4oCiY2FzZS3igKJpZ25vcmFibGUg4oCiY2hhJ3InYSdjdGVy4oCiPC9kYXRhPg0KKw0KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zYW1wbGUvTW9kdWxlVGVzdFNhbXBsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NhbXBsZS9Nb2R1bGVUZXN0U2FtcGxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBjZDQ3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zYW1wbGUvTW9kdWxlVGVzdFNhbXBsZS5qYXZhCkBAIC0wLDAgKzEsMTU5IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc2FtcGxlOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuTW9kdWxlVGVzdDsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0RGF0YU1vZHVsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0RGF0YU1vZHVsZS5EYXRhTWFwOworCitwdWJsaWMgY2xhc3MgTW9kdWxlVGVzdFNhbXBsZSBleHRlbmRzIE1vZHVsZVRlc3QgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgIG5ldyBNb2R1bGVUZXN0U2FtcGxlKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8vIHN0YW5kYXJkIGxvb3AsIHNldHRpbmdzIGFuZCBjYXNlcworICAgIHB1YmxpYyB2b2lkIFRlc3QwMSgpIHsKKyAgICB3aGlsZSAobmV4dFNldHRpbmdzKCkpIHsKKyAgICAgICAgbG9nbG4oIi0tLS0tLS0tIik7CisgICAgICAgIGxvZ2xuKCJTdHJpbmc6ICIgKyBzZXR0aW5ncy5nZXRTdHJpbmcoImFTdHJpbmciKSk7CisgICAgICAgIGlmIChzZXR0aW5ncy5pc0RlZmluZWQoImFuSW50IikpIHsKKyAgICAgICAgbG9nbG4oIkludDogIiArIHNldHRpbmdzLmdldEludCgiYW5JbnQiKSk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIkJvb2xlYW46ICIgKyBzZXR0aW5ncy5nZXRCb29sZWFuKCJhQm9vbGVhbiIpKTsKKworICAgICAgICB3aGlsZSAobmV4dENhc2UoKSkgeworICAgICAgICBsb2dsbigiICAtLS0tIik7CisgICAgICAgIGxvZ2xuKCIgIFN0cmluZ0FycmF5OiAiICsgcHJpbnRBcnJheSh0ZXN0Y2FzZS5nZXRTdHJpbmdBcnJheSgiYVN0cmluZ0FycmF5IikpKTsKKyAgICAgICAgbG9nbG4oIiAgSW50QXJyYXk6ICIgKyBwcmludEFycmF5KHRlc3RjYXNlLmdldEludEFycmF5KCJhbkludEFycmF5IikpKTsKKyAgICAgICAgbG9nbG4oIiAgQm9vbGVhbkFycmF5OiAiICsgcHJpbnRBcnJheSh0ZXN0Y2FzZS5nZXRCb29sZWFuQXJyYXkoImFCb29sZWFuQXJyYXkiKSkpOworICAgICAgICB9CisgICAgfQorICAgIH0KKworICAgIC8vIGxvb3Agd2l0aCBqdXN0IGNhc2VzCisgICAgcHVibGljIHZvaWQgVGVzdDAyKCkgeworICAgIHdoaWxlIChuZXh0Q2FzZSgpKSB7CisgICAgICAgIGxvZ2xuKCItLS0tIik7CisgICAgICAgIGxvZ2xuKCJTdHJpbmc6ICIgKyB0ZXN0Y2FzZS5nZXRTdHJpbmcoImFTdHJpbmciKSk7CisgICAgICAgIGxvZ2xuKCJJbnQ6ICIgKyB0ZXN0Y2FzZS5nZXRJbnQoImFuSW50IikpOworICAgICAgICBsb2dsbigiQm9vbGVhbjogIiArIHRlc3RjYXNlLmdldEJvb2xlYW4oImFCb29sZWFuIikpOworICAgIH0KKyAgICB9CisKKyAgICAvLyBubyBjYXNlcywganVzdCB1c2VzIGluZm8gZm9yIHRlc3QKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDMoKSB7CisgICAgRGF0YU1hcCBpbmZvID0gdGVzdEluZm8oKTsKKyAgICBpZiAoaW5mbyAhPSBudWxsKSB7CisgICAgICAgIGxvZ2xuKGluZm8uZ2V0U3RyaW5nKFRlc3REYXRhTW9kdWxlLkRFU0NSSVBUSU9OKSk7IC8vIHN0YW5kYXJkCisgICAgICAgIGxvZ2xuKGluZm8uZ2V0U3RyaW5nKCJFeHRyYSIpKTsgLy8gdGVzdC1zcGVjaWZpYworICAgIH0KKyAgICB9CisKKyAgICAvLyBubyBkYXRhLCBNb2R1bGVUZXN0IHNob3VsZCBub3QgYWxsb3cgdGhpcyB0byBleGVjdXRlIGJ5IGRlZmF1bHQKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDQoKSB7CisgICAgZXJybG4oIlRlc3QwNCBzaG91bGQgbm90IGV4ZWN1dGUhIik7CisgICAgfQorCisgICAgLy8gc3BlY2lhbCBvdmVycmlkZSBvZiB2YWxpZGF0ZU1ldGhvZCBhbGxvd3MgVGVzdDA1IAorICAgIC8vIHRvIGV4ZWN1dGUgZXZlbiB0aG91Z2ggaXQgaGFzIG5vIGRhdGEgaW4gdGhlIG1vZHVsZQorICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlTWV0aG9kKFN0cmluZyBtZXRob2ROYW1lKSB7CisgICAgcmV0dXJuIG1ldGhvZE5hbWUuZXF1YWxzKCJUZXN0MDUiKSA/IHRydWUgOiBzdXBlci52YWxpZGF0ZU1ldGhvZChtZXRob2ROYW1lKTsKKyAgICB9CisKKyAgICAvLyBubyBkYXRhLCBidXQgb3ZlcnJpZGUgb2YgdmFsaWRhdGVNZXRob2QgYWxsb3dzIGl0IHRvIGV4ZWN1dGUKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDUoKSB7CisgICAgbG9nbG4oIlRlc3QwNSBleGVjdXRlZC4iKTsKKyAgICB9CisKKyAgICAvLyBUaGUgdGVzdCBkYXRhIGNvbnRhaW5zIGFuIGVycm9yIGluIHRoZSB0aGlyZCBjYXNlLiAgV2hlbiBnZXRJbnQoIkRhdGEiKSBpcworICAgIC8vIGV4ZWN1dGVkIHRoZSBlcnJvciBpcyBsb2dnZWQgYW5kIGl0ZXJhdGlvbiBzdG9wcy4KKyAgICBwdWJsaWMgdm9pZCBUZXN0MDYoKSB7CisgICAgd2hpbGUgKG5leHRDYXNlKCkpIHsKKyAgICAgICAgbG9nbG4oIi0tLS0iKTsKKyAgICAgICAgbG9nbG4oImlzR29vZDogIiArIHRlc3RjYXNlLmdldFN0cmluZygiSXNHb29kIikpOworICAgICAgICBsb2dsbigiICBEYXRhOiAiICsgdGVzdGNhc2UuZ2V0SW50KCJEYXRhIikpOworICAgIH0KKyAgICB9CisKKyAgICAvLyBUaGUgdGVzdCB1c2luZyB0aGUgZGF0YSByZXBvcnRzIGFuIGVycm9yLCB3aGljaCBhbHNvIGF1dG9tYXRpY2FsbHkgc3RvcHMgaXRlcmF0aW9uLgorICAgIHB1YmxpYyB2b2lkIFRlc3QwNygpIHsKKyAgICB3aGlsZSAobmV4dFNldHRpbmdzKCkpIHsKKyAgICAgICAgaW50IHZhbHVlID0gc2V0dGluZ3MuZ2V0SW50KCJWYWx1ZSIpOworICAgICAgICB3aGlsZSAobmV4dENhc2UoKSkgeworICAgICAgICBpbnQgZmFjdG9yID0gdGVzdGNhc2UuZ2V0SW50KCJGYWN0b3IiKTsKKyAgICAgICAgZmxvYXQgcmVzdWx0ID0gKGZsb2F0KXZhbHVlIC8gZmFjdG9yOworICAgICAgICBpZiAocmVzdWx0ICE9IChpbnQpcmVzdWx0KSB7CisgICAgICAgICAgICBlcnJsbigidGhlIG51bWJlciAnIiArIGZhY3RvciArICInIGlzIG5vdCBhIGZhY3RvciBvZiB0aGUgbnVtYmVyICciICsgdmFsdWUgKyAiJyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIiciICsgZmFjdG9yICsgIicgaXMgYSBmYWN0b3Igb2YgJyIgKyB2YWx1ZSArICInIik7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICB9CisKKyAgICAvLyBUaGUgbnVtYmVyIG9mIGRhdGEgZWxlbWVudHMgaXMgaW5jb3JyZWN0CisgICAgcHVibGljIHZvaWQgVGVzdDA4KCkgeworICAgIHdoaWxlIChuZXh0Q2FzZSgpKSB7CisgICAgICAgIGludCBvbmUgPSB0ZXN0Y2FzZS5nZXRJbnQoIk9uZSIpOworICAgICAgICBpbnQgdHdvID0gdGVzdGNhc2UuZ2V0SW50KCJUd28iKTsKKyAgICAgICAgaW50IHRocmVlID0gdGVzdGNhc2UuZ2V0SW50KCJUaHJlZSIpOworICAgICAgICBsb2dsbigiZ290OiAiICsgb25lICsgIiwgIiArIHR3byArICIsICIgKyB0aHJlZSk7CisgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3QwOSgpIHsKKyAgICAgICAgd2hpbGUgKG5leHRDYXNlKCkpIHsKKyAgICAgICAgICAgIGludCByYWRpeCA9IHRlc3RjYXNlLmdldEludCgiUmFkaXgiKTsKKyAgICAgICAgICAgIGludFtdIHBvdyA9IHRlc3RjYXNlLmdldEludEFycmF5KCJQb3dlciIpOworICAgICAgICAgICAgaW50W10gdmFsID0gdGVzdGNhc2UuZ2V0SW50QXJyYXkoIlZhbHVlIik7CisgICAgICAgICAgICBsb2dsbigicmFkaXg6ICIgKyByYWRpeCArICIgcG93OiAiICsgcHJpbnRBcnJheShwb3cpICsgIiB2YWw6ICIgKyBwcmludEFycmF5KHZhbCkpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwb3cubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsW2ldICE9IChpbnQpTWF0aC5wb3cocmFkaXgsIHBvd1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInJhZGl4OiAiICsgcmFkaXggKyAiIHRvIHBvd2VyICIgKyBwb3dbaV0gKyAiICE9ICIgKyB2YWxbaV0pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgICAgICAgICAgICAgCisgICAgLy8gdXRpbGl0eSBwcmludCBmdW5jdGlvbnMgdG8gZGlzcGxheSB0aGUgZGF0YSBmcm9tIHRoZSByZXNvdXJjZQorICAgIFN0cmluZyBwcmludEFycmF5KFN0cmluZ1tdIGEpIHsKKyAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiU3RyaW5nW10geyIpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgIGJ1Zi5hcHBlbmQoIiwiKTsKKyAgICAgICAgfQorICAgICAgICBidWYuYXBwZW5kKCIgIiArIGFbaV0pOworICAgIH0KKyAgICBidWYuYXBwZW5kKCIgfSIpOworICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBTdHJpbmcgcHJpbnRBcnJheShpbnRbXSBhKSB7CisgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoImludFtdIHsiKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKGkgIT0gMCkgeworICAgICAgICBidWYuYXBwZW5kKCIsIik7CisgICAgICAgIH0KKyAgICAgICAgYnVmLmFwcGVuZCgiICIgKyBhW2ldKTsKKyAgICB9CisgICAgYnVmLmFwcGVuZCgiIH0iKTsKKyAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgU3RyaW5nIHByaW50QXJyYXkoYm9vbGVhbltdIGEpIHsKKyAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiYm9vbGVhbltdIHsiKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKGkgIT0gMCkgeworICAgICAgICBidWYuYXBwZW5kKCIsIik7CisgICAgICAgIH0KKyAgICAgICAgYnVmLmFwcGVuZCgiICIgKyBhW2ldKTsKKyAgICB9CisgICAgYnVmLmFwcGVuZCgiIH0iKTsKKyAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NhbXBsZS9Nb2R1bGVUZXN0U2FtcGxlRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NhbXBsZS9Nb2R1bGVUZXN0U2FtcGxlRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlZDhhZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2FtcGxlL01vZHVsZVRlc3RTYW1wbGVEYXRhLmphdmEKQEAgLTAsMCArMSwxNzAgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zYW1wbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvKioKKyAqIFRoaXMgaXMgc2FtcGxlIGRhdGEgZm9yIE1vZHVsZVRlc3RTYW1wbGUsIHdoaWNoIGlzIGFuIGlsbHVzdHJhdGlvbgorICogb2YgYSBzdWJjbGFzcyBvZiBNb2R1bGVUZXN0LiAgVGhpcyBkYXRhIGlzIGluIGEgZm9ybWF0IHdoaWNoCisgKiBpcyB1bmRlcnN0b29kIGJ5IFJlc291cmNlTW9kdWxlLCB3aGljaCBmb3Igc2ltcGxpY2l0eSBleHBlY3RzCisgKiBhbGwgZGF0YSwgaW5jbHVkaW5nIG51bWVyaWMgYW5kIGJvb2xlYW4gZGF0YSwgdG8gYmUgcmVwcmVzZW50ZWQKKyAqIGJ5IFN0cmluZ3MuCisgKi8KK3B1YmxpYyBjbGFzcyBNb2R1bGVUZXN0U2FtcGxlRGF0YSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgcmV0dXJuIGNvbnRlbnRzOworICAgIH0KKworICAgIE9iamVjdFtdW10gY29udGVudHMgPSB7CisgICAgeyAiSW5mbyIsIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgeyAiRGVzY3JpcHRpb24iLCAiVGhpcyBpcyBhIHNhbXBsZSB0ZXN0IG1vZHVsZSB0aGF0IGlsbHVzdHJhdGVzIE1vZHVsZVRlc3QgIiArCisgICAgICAgICAgImFuZCB1c2VzIGRhdGEgZm9ybWF0dGVkIGZvciBSZXNvdXJjZU1vZHVsZS4iIH0sCisgICAgICAgIHsgIkhlYWRlcnMiLCBuZXcgU3RyaW5nW10geworICAgICAgICAiYVN0cmluZ0FycmF5IiwgImFuSW50QXJyYXkiLCAiYUJvb2xlYW5BcnJheSIKKyAgICAgICAgfX0sCisgICAgfX0sCisgICAgCisKKyAgICB7ICJUZXN0RGF0YSIsIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgeyAiVGVzdDAxIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICB7ICJJbmZvIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgeyAiRGVzY3JpcHRpb24iLCAiQSB0eXBpY2FsIHRlc3QgdXNpbmcgYm90aCBzZXR0aW5ncyBhbmQgY2FzZXMuIiB9LAorICAgICAgICAgICAgeyAiTG9uZ19EZXNjcmlwdGlvbiIsICJJdCBkb2VzIG5vdCBkZWZpbmVkIGl0cyBvd24gaGVhZGVycywgYnV0IGluc3RlYWQgIiArCisgICAgICAgICAgICAgICJ1c2VzIHRoZSBkZWZhdWx0IGhlYWRlcnMgZGVmaW5lZCBmb3IgdGhlIG1vZHVsZS4gICIgKworICAgICAgICAgICAgICAiVGhlcmUgYXJlIHR3byBzZXRzIG9mIHNldHRpbmdzIGFuZCB0aHJlZSBjYXNlcy4iIH0sCisgICAgICAgIH19LAorICAgICAgICB7ICJTZXR0aW5ncyIsIG5ldyBPYmplY3RbXSB7CisgICAgICAgICAgICBuZXcgT2JqZWN0W11bXQorICAgICAgICAgICAge3sgImFTdHJpbmciLCAidGhpcyBpcyBhIHN0cmluZyIgfSwKKyAgICAgICAgICAgICB7ICJhbkludCIsICI0MyIgfSwKKyAgICAgICAgICAgICB7ICJhQm9vbGVhbiIsICJmYWxzZSIgfX0sCisgICAgICAgICAgICBuZXcgT2JqZWN0W11bXSAKKyAgICAgICAgICAgIHt7ICJhU3RyaW5nIiwgInRoaXMgaXMgYW5vdGhlciBzdHJpbmciIH0sCisgICAgICAgICAgICAgeyAiYUJvb2xlYW4iLCAidHJ1ZSIgfX0KKyAgICAgICAgfX0sCisgICAgICAgIHsgIkNhc2VzIiwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7CisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgIm9uZSIsICJ0d28iLCAidGhyZWUiIH0sCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgIjI0IiwgIjQ4IiwgIjcyIiB9LAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ICJ0cnVlIiwgImZhbHNlIiwgInRydWUiIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiZm91ciIsICJmaXZlIiwgInNpeCIgfSwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiLTEiLCAiLTUiLCAiLTEwIiB9LAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ICJ0cnVlIiwgImZhbHNlIiwgImZhbHNlIiB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgImJhZ2VsIiwgInBlYW51dHMiLCAiY2Fycm90IiB9LAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ICIwIiwgIjAwMDAxIiwgIjEwMTAxIiB9LAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ICJmYWxzZSIsICJmYWxzZSIsICJGYWxzZSIgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgfX0KKyAgICAgICAgfX0sCisKKyAgICAgICAgeyAiVGVzdDAyIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICB7ICJJbmZvIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgeyAiRGVzY3JpcHRpb24iLCAiQSB0eXBpY2FsIHRlc3QgdGhhdCB1c2VzIGNhc2VzIGJ1dCBub3Qgc2V0dGluZ3MuIiB9LAorICAgICAgICAgICAgeyAiTG9uZ19EZXNjcmlwdGlvbiIsICJJdCBkZWZpbmVzIGl0cyBvd24gaGVhZGVycy4iIH0sCisgICAgICAgICAgICB7ICJIZWFkZXJzIiwgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJhU3RyaW5nIiwgImFuSW50IiwgImFCb29sZWFuIgorICAgICAgICAgICAgfX0sCisgICAgICAgIH19LAorICAgICAgICB7ICJDYXNlcyIsIG5ldyBPYmplY3RbXSB7CisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAiU3VwZXJzdHJpbmciLCAiNDIiLCAidHJ1ZSIgfSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICJVbmRlcmRvZyIsICIxMiIsICJmYWxzZSIgfSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICJTY29vYnlEb28iLCAiNyIsICJUclVlIiB9CisgICAgICAgIH19CisgICAgICAgIH19LAorCisgICAgICAgIHsgIlRlc3QwMyIsIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgeyAiSW5mbyIsIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIHsgIkRlc2NyaXB0aW9uIiwgIkEgdHlwaWNhbCB0ZXN0IHRoYXQgdXNlcyBqdXN0IHRoZSBpbmZvLCBubyBjYXNlcyBvciBzZXR0aW5ncy4iIH0sCisgICAgICAgICAgICB7ICJFeHRyYSIsICJUaGlzIGlzIHNvbWUgZXh0cmEgaW5mb3JtYXRpb24uIiB9CisgICAgICAgIH19LAorICAgICAgICB9fSwKKworICAgICAgICAvLyBubyBUZXN0MDQgZGF0YQorICAgICAgICAvLyBUZXN0MDQgc2hvdWxkIGNhdXNlIGFuIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24gc2luY2UgTW9kdWxlVGVzdFNhbXBsZSBkb2VzIG5vdAorICAgICAgICAvLyBzcGVjaWZ5IHRoYXQgaXQgaXMgb2sgZm9yIGl0IHRvIGhhdmUgbm8gZGF0YS4KKworICAgICAgICAvLyBubyBUZXN0MDUgZGF0YQorICAgICAgICAvLyBUZXN0MDUgc2hvdWxkIGp1c3QgbG9nIHRoaXMgZmFjdCwgc2luY2UgTW9kdWxlVGVzdFNhbXBsZSBpbmRpY2F0ZXMgdGhhdCBpdCBpcworICAgICAgICAvLyBvayBmb3IgVGVzdDA1IHRvIGhhdmUgbm8gZGF0YSBpbiBpdHMgb3ZlcnJpZGUgb2YgdmFsaWRhdGVNZXRob2QuCisKKyAgICAgICAgeyAiVGVzdDA2IiwgbmV3IE9iamVjdFtdW10geworICAgICAgICB7ICJJbmZvIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgeyAiRGVzY3JpcHRpb24iLCAiQSB0ZXN0IHRoYXQgaGFzIGJhZCBkYXRhLiIgfSwKKyAgICAgICAgICAgIHsgIkxvbmdfRGVzY3JpcHRpb24iLCAiVGhpcyBpbGx1c3RyYXRlcyBob3cgYSBkYXRhIGVycm9yIHdpbGwgYXV0b21hdGljYWxseSAiICsKKyAgICAgICAgICAgICAgInRlcm1pbmF0ZSB0aGUgc2V0dGluZ3MgYW5kIGNhc2VzIGxvb3AuIiB9LAorICAgICAgICAgICAgeyAiSGVhZGVycyIsIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiSXNHb29kIiwgIkRhdGEiLAorICAgICAgICAgICAgfX0sCisgICAgICAgIH19LAorICAgICAgICB7ICJDYXNlcyIsIG5ldyBPYmplY3RbXSB7CisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAiR29vZCIsICIyMyIgfSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICJHb29kIiwgIi0xMjMiIH0sCisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAiQmFkIiwgIldob29wcyIgfSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICJOb3QgRXhlY3V0ZWQiLCAiMzUiIH0sCisgICAgICAgIH19LAorICAgICAgICB9fSwKKworICAgICAgICB7ICJUZXN0MDciLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgIHsgIkluZm8iLCBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJEZXNjcmlwdGlvbiIsICJBIHRlc3QgdGhhdCBmYWlscyB3aXRoIGEgY2VydGFpbiBjb21iaW5hdGlvbiBvZiBzZXR0aW5ncyBhbmQgY2FzZS4iIH0sCisgICAgICAgICAgICB7ICJMb25nX0Rlc2NyaXB0aW9uIiwgIlRoaXMgaWxsdXN0cmF0ZXMgaG93IGEgdGVzdCBlcnJvciB3aWxsIGF1dG9tYXRpY2FsbHkgIiArCisgICAgICAgICAgICAgICJ0ZXJtaW5hdGUgdGhlIHNldHRpbmdzIGFuZCBjYXNlcyBsb29wLiAgU2V0dGluZ3MgZGF0YSBpcyB2YWx1ZXMsIHRoZSBjYXNlICIgKworICAgICAgICAgICAgICAiZGF0YSBpcyBmYWN0b3JzLiAgVGhlIHRoaXJkIGZhY3RvciBpcyBub3QgYSBmYWN0b3Igb2YgdGhlIHNlY29uZCB2YWx1ZS4gICIgKworICAgICAgICAgICAgICAiVGhlIHRlc3Qgd2lsbCBsb2cgYW4gZXJyb3IsIHdoaWNoIHdpbGwgYXV0b21hdGljYWxseSBzdG9wIHRoZSBsb29wLiIgfSwKKyAgICAgICAgICAgIHsgIkhlYWRlcnMiLCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIkZhY3RvciIsCisgICAgICAgICAgICB9fSwKKyAgICAgICAgfX0sCisgICAgICAgIHsgIlNldHRpbmdzIiAsIG5ldyBPYmplY3RbXSB7CisgICAgICAgICAgICBuZXcgT2JqZWN0W11bXSB7eyAiVmFsdWUiLCAiMjEwIiB9fSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdIHt7ICJWYWx1ZSIsICI0MjAiIH19LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdW10ge3sgIlZhbHVlIiwgIjQyIiB9fSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXVtdIHt7ICJWYWx1ZSIsICJOb3QgcmVhY2hlZC4iIH19CisgICAgICAgIH19LAorICAgICAgICB7ICJDYXNlcyIsIG5ldyBPYmplY3RbXSB7CisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAiMiIgfSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICIzIiB9LAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIjUiIH0sCisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAiNyIgfSwKKyAgICAgICAgfX0sCisgICAgICAgIH19LAorCisgICAgICAgIHsgIlRlc3QwOCIsIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgeyAiSW5mbyIsIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIHsgIkRlc2NyaXB0aW9uIiwgIkEgdGVzdCB3aXRoIGRhdGEgbWlzc2luZyBmcm9tIGEgdGVzdCBjYXNlLiIgfSwKKyAgICAgICAgICAgIHsgIkhlYWRlcnMiLCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIk9uZSIsICJUd28iLCAiVGhyZWUiCisgICAgICAgICAgICB9fSwKKyAgICAgICAgfX0sCisgICAgICAgIHsgIkNhc2VzIiwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICIxIiwgIjIiLCAiMyIgfSwKKyAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7ICI0IiwgIjUiIH0sIC8vIHRvbyBzaG9ydAorICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIjYiLCAiNyIsICI4IiB9LAorICAgICAgICB9fSwKKyAgICAgICAgfX0sCisKKyAgICAgICAgeyAiVGVzdDA5IiwgbmV3IE9iamVjdFtdW10geworICAgICAgICB7ICJJbmZvIiwgbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgeyAiRGVzY3JpcHRpb24iLCAiQSB0ZXN0IHdpdGggZGF0YSBzdG9yZWQgYXMgaW50IGFycmF5cyBpbnN0ZWFkIG9mIHN0cmluZ3MiIH0sCisgICAgICAgICAgICB7ICJIZWFkZXJzIiwgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJSYWRpeCIsICJQb3dlciIsICJWYWx1ZSIKKyAgICAgICAgICAgIH19LAorICAgICAgICB9fSwKKyAgICAgICAgeyAiQ2FzZXMiLCBuZXcgT2JqZWN0W10geworICAgICAgICAgICAgbmV3IE9iamVjdFtdIHsgIjIiLCBuZXcgaW50W10geyAxLCAyLCAzIH0sIG5ldyBpbnRbXSB7IDIsIDQsIDggfX0sCisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAiMyIsIG5ldyBpbnRbXSB7IDMsIDQsIDUgfSwgbmV3IGludFtdIHsgMjcsIDgxLCAyNDMgfX0sCisgICAgICAgICAgICBuZXcgT2JqZWN0W10geyAiMiIsIG5ldyBpbnRbXSB7IDAsIDgsIDE2LCAyNCB9LCBuZXcgaW50W10geyAxLCAyNTYsIDY1NTM2LCA2NTUzNiAqIDI1NiB9fSwKKyAgICAgICAgfX0sCisgICAgICAgIH19LAorICAgIH19LAorICAgIH07Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VhcmNoL1NlYXJjaFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWFyY2gvU2VhcmNoVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUxZjMyZmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VhcmNoL1NlYXJjaFRlc3QuamF2YQpAQCAtMCwwICsxLDE5NzcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKgorICogUG9ydCBGcm9tOiAgIElDVTRDIHYyLjEgOiBjb2xsYXRlL1N0cmluZ1NlYXJjaFRlc3QKKyAqIFNvdXJjZSBGaWxlOiAkSUNVNENSb290L3NvdXJjZS90ZXN0L2ludGx0ZXN0L3NyY2h0ZXN0LmNwcAorICoqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNlYXJjaDsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCitwdWJsaWMgY2xhc3MgU2VhcmNoVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIC8vaW5uZXIgY2xhc3MKKyAgICBzdGF0aWMgY2xhc3MgU2VhcmNoRGF0YSB7CisgICAgICAgIFNlYXJjaERhdGEoU3RyaW5nIHRleHQsIFN0cmluZyBwYXR0ZXJuLCBTdHJpbmcgY29sbCwgaW50IHN0cmVuZ3RoLCBTdHJpbmcgYnJlYWtlciwKKyAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQsIGludFtdIHNpemUpIHsKKyAgICAgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisgICAgICAgICAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuOworICAgICAgICAgICAgdGhpcy5jb2xsYXRvciA9IGNvbGw7CisgICAgICAgICAgICB0aGlzLnN0cmVuZ3RoID0gc3RyZW5ndGg7CisgICAgICAgICAgICB0aGlzLmJyZWFrZXIgPSBicmVha2VyOworICAgICAgICAgICAgdGhpcy5vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICAgICB0aGlzLnNpemUgPSBzaXplOworICAgICAgICB9CisgICAgICAgIFN0cmluZyAgICAgICAgICAgICAgdGV4dDsKKyAgICAgICAgU3RyaW5nICAgICAgICAgICAgICBwYXR0ZXJuOworICAgICAgICBTdHJpbmcgICAgICAgICAgICAgIGNvbGxhdG9yOworICAgICAgICBpbnQgICAgICAgICAgICAgICAgIHN0cmVuZ3RoOworICAgICAgICBTdHJpbmcgICAgICAgICAgICAgIGJyZWFrZXI7CisgICAgICAgIGludFtdICAgICAgICAgICAgICAgb2Zmc2V0OworICAgICAgICBpbnRbXSAgICAgICAgICAgICAgIHNpemU7CisgICAgfQorCisgICAgUnVsZUJhc2VkQ29sbGF0b3IgbV9lbl91c187CisgICAgUnVsZUJhc2VkQ29sbGF0b3IgbV9mcl9mcl87CisgICAgUnVsZUJhc2VkQ29sbGF0b3IgbV9kZV87CisgICAgUnVsZUJhc2VkQ29sbGF0b3IgbV9lc187CisgICAgQnJlYWtJdGVyYXRvciAgICAgbV9lbl93b3JkYnJlYWtlcl87CisgICAgQnJlYWtJdGVyYXRvciAgICAgbV9lbl9jaGFyYWN0ZXJicmVha2VyXzsKKworICAgIHN0YXRpYyBTZWFyY2hEYXRhW10gQkFTSUMgPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ4eHh4eHh4eHh4eHh4eHh4eHh4eCIsICAgICAgICAgICJmaXNoZXIiLCAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sICAgICAgICAgICAgbmV3IGludFtdezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInNpbGx5IHNwcmluZyBzdHJpbmciLCAgICAgICAgICAgInN0cmluZyIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117MTMsIC0xfSwgICAgICAgICBuZXcgaW50W117Nn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgic2lsbHkgc3ByaW5nIHN0cmluZyBzdHJpbmciLCAgICAic3RyaW5nIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXsxMywgMjAsIC0xfSwgICAgIG5ldyBpbnRbXXs2LCA2fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJzaWxseSBzdHJpbmcgc3ByaW5nIHN0cmluZyIsICAgICJzdHJpbmciLCAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdezYsIDIwLCAtMX0sICAgICAgbmV3IGludFtdezYsIDZ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInN0cmluZyBzcHJpbmcgc3RyaW5nIiwgICAgICAgICAgInN0cmluZyIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117MCwgMTQsIC0xfSwgICAgICBuZXcgaW50W117NiwgNn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiU2NvdHQgR2FueW8iLCAgICAgICAgICAgICAgICAgICAiYyIsICAgICAgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXsxLCAtMX0sICAgICAgICAgIG5ldyBpbnRbXXsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJTY290dCBHYW55byIsICAgICAgICAgICAgICAgICAgICIgIiwgICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdezUsIC0xfSwgICAgICAgICAgbmV3IGludFtdezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDMwMFx1MDMyNSIsICAgICAgICAgICAgICAgICAgIlx1MDMwMCIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117LTF9LCAgICAgICAgICAgICBuZXcgaW50W117MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNSIsICAgICAgICAgICAgICAgICAiXHUwMzAwIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXXstMX0sICAgICAgICAgICAgIG5ldyBpbnRbXXswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgICAgICAgICAgICAgICAgICJcdTAzMDBcdTAzMjUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdezEsIC0xfSwgICAgICAgICAgbmV3IGludFtdezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBiIiwgICAgICAgICAgICAgICAgICAgICAgIlx1MDMwMCIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117MSwgLTF9LCAgICAgICAgICBuZXcgaW50W117MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMGM5IiwgICAgICAgICAgICAgICAgICAgICAgICAiZSIsICAgICAgICAgICAgbnVsbCwgQ29sbGF0b3IuUFJJTUFSWSwgIG51bGwsIG5ldyBpbnRbXXswLCAtMX0sICAgICAgICAgIG5ldyBpbnRbXXsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsICAgICAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdey0xfSwgICAgICAgICAgICAgbmV3IGludFtdezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIEJSRUFLSVRFUkFUT1JFWEFDVFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94eSBmb3giLCAiZm94IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdIHswLCA1LCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94eSBmb3giLCAiZm94IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksICJ3b3JkYnJlYWtlciIsIG5ldyBpbnRbXSB7NSwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoaXMgaXMgYSB0b2UgVFx1MDBGNm5lIiwgInRvZSIsICJkZSIsIENvbGxhdG9yLlBSSU1BUlksICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdIHsxMCwgMTQsIC0xfSwgbmV3IGludFtdIHszLCAyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGlzIGlzIGEgdG9lIFRcdTAwRjZuZSIsICJ0b2UiLCAiZGUiLCBDb2xsYXRvci5QUklNQVJZLCAid29yZGJyZWFrZXIiLCBuZXcgaW50W10gezEwLCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQ2hhbm5lbCwgYW5vdGhlciBjaGFubmVsLCBtb3JlIGNoYW5uZWxzLCBhbmQgb25lIGxhc3QgQ2hhbm5lbCIsICJDaGFubmVsIiwgImVzIiwgQ29sbGF0b3IuVEVSVElBUlksCisgICAgICAgICAgICAgIndvcmRicmVha2VyIiwgbmV3IGludFtdIHswLCA1NCwgLTF9LCBuZXcgaW50W10gezcsIDd9KSwKKyAgICAgICAgLyogaml0dGVyYnVnIDE3NDUgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInRlc3RpbmcgdGhhdCBcdTAwZTkgZG9lcyBub3QgbWF0Y2ggZSIsICJlIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksCisgICAgICAgICAgICAiY2hhcmFjdGVyYnJlYWtlciIsIG5ldyBpbnRbXSB7MSwgMTcsIDMwLCAtMX0sIG5ldyBpbnRbXSB7MSwgMSwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgidGVzdGluZyB0aGF0IHN0cmluZyBhYlx1MDBlOWNkIGRvZXMgbm90IG1hdGNoIGUiLCAiZSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLAorICAgICAgICAgICAgImNoYXJhY3RlcmJyZWFrZXIiLCBuZXcgaW50W10gezEsIDI4LCA0MSwgLTF9LCBuZXcgaW50W10gezEsIDEsIDF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBjOSIsICJlIiwgImZyIiwgQ29sbGF0b3IuUFJJTUFSWSwgICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdezAsIC0xfSwgbmV3IGludFtdezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIEJSRUFLSVRFUkFUT1JDQU5PTklDQUxbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImZveHkgZm94IiwgImZveCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCAiY2hhcmFjdGVyYnJlYWtlciIsIG5ldyBpbnRbXSB7MCwgNSwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImZveHkgZm94IiwgImZveCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCAid29yZGJyZWFrZXIiLCBuZXcgaW50W10gezUsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGlzIGlzIGEgdG9lIFRcdTAwRjZuZSIsICJ0b2UiLCAiZGUiLCBDb2xsYXRvci5QUklNQVJZLCAiY2hhcmFjdGVyYnJlYWtlciIsIG5ldyBpbnRbXSB7MTAsIDE0LCAtMX0sIG5ldyBpbnRbXSB7MywgMn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhpcyBpcyBhIHRvZSBUXHUwMEY2bmUiLCAidG9lIiwgImRlIiwgQ29sbGF0b3IuUFJJTUFSWSwgIndvcmRicmVha2VyIiwgbmV3IGludFtdIHsxMCwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkNoYW5uZWwsIGFub3RoZXIgY2hhbm5lbCwgbW9yZSBjaGFubmVscywgYW5kIG9uZSBsYXN0IENoYW5uZWwiLCAiQ2hhbm5lbCIsICJlcyIsIENvbGxhdG9yLlRFUlRJQVJZLCAid29yZGJyZWFrZXIiLAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezAsIDU0LCAtMX0sIG5ldyBpbnRbXSB7NywgN30pLAorICAgICAgICAvKiBqaXR0ZXJidWcgMTc0NSAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgidGVzdGluZyB0aGF0IFx1MDBlOSBkb2VzIG5vdCBtYXRjaCBlIiwgImUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwKKyAgICAgICAgICAgICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdIHsxLCAxNywgMzAsIC0xfSwgbmV3IGludFtdIHsxLCAxLCAxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ0ZXN0aW5nIHRoYXQgc3RyaW5nIGFiXHUwMGU5Y2QgZG9lcyBub3QgbWF0Y2ggZSIsICJlIiwgbnVsbCwKKyAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSwgImNoYXJhY3RlcmJyZWFrZXIiLCBuZXcgaW50W10gezEsIDI4LCA0MSwgLTF9LCBuZXcgaW50W10gezEsIDEsIDF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBjOSIsICJlIiwgImZyIiwgQ29sbGF0b3IuUFJJTUFSWSwgICJjaGFyYWN0ZXJicmVha2VyIiwgbmV3IGludFtdezAsIC0xfSwgbmV3IGludFtdezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIEJBU0lDQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ4eHh4eHh4eHh4eHh4eHh4eHh4eCIsICJmaXNoZXIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnQgW10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInNpbGx5IHNwcmluZyBzdHJpbmciLCAic3RyaW5nIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MTMsIC0xfSwgbmV3IGludFtdIHs2fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJzaWxseSBzcHJpbmcgc3RyaW5nIHN0cmluZyIsICJzdHJpbmciLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxMywgMjAsIC0xfSwgbmV3IGludFtdIHs2LCA2fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJzaWxseSBzdHJpbmcgc3ByaW5nIHN0cmluZyIsICJzdHJpbmciLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHs2LCAyMCwgLTF9LCBuZXcgaW50W10gezYsIDZ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInN0cmluZyBzcHJpbmcgc3RyaW5nIiwgInN0cmluZyIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDE0LCAtMX0sIG5ldyBpbnRbXSB7NiwgNn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiU2NvdHQgR2FueW8iLCAiYyIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJTY290dCBHYW55byIsICIgIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7NSwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDMwMFx1MDMyNSIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludCBbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjUiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnQgW10gezEsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgIlx1MDMwMFx1MDMyNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBiIiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W117MSwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjViIiwgIlx1MDMwMGIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzI1XHUwMzAwQVx1MDMyNVx1MDMwMCIsICJcdTAzMDBBXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezV9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDMyNVx1MDMwMEFcdTAzMjVcdTAzMDAiLCAiXHUwMzI1QVx1MDMyNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHs1fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1Ylx1MDMwMFx1MDMyNWMgXHUwMzI1Ylx1MDMwMCBcdTAzMDBiXHUwMzI1IiwgIlx1MDMwMGJcdTAzMjUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7MSwgMTIsIC0xfSwgbmV3IGludFtdIHs1LCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwYzRcdTAzMjMiLCAiQVx1MDMyM1x1MDMwOCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAzMDhcdTAzMjMiLCAiXHUwMzIzXHUwMzA4IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIENPTExBVE9SW10gPSB7CisgICAgICAgIC8qIGVuZ2xpc2ggKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImZveCBmcHgiLCAiZm94IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgLyogdGFpbG9yZWQgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImZveCBmcHgiLCAiZm94IiwgbnVsbCwgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCA0LCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFN0cmluZyBURVNUQ09MTEFUT1JSVUxFID0gIiYgbyxPIDsgcCxQIjsKKyAgICBTdHJpbmcgRVhUUkFDT0xMQVRJT05SVUxFID0gIiAmIGFlIDsgXHUwMGU0ICYgQUUgOyBcdTAwYzQgJiBvZSA7IFx1MDBmNiAmIE9FIDsgXHUwMGQ2ICYgdWUgOyBcdTAwZmMgJiBVRSA7IFx1MDBkYyI7CisKKworICAgIFNlYXJjaERhdGEgQ09MTEFUT1JDQU5PTklDQUxbXSA9IHsKKyAgICAgICAgLyogZW5nbGlzaCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94IGZweCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICAvKiB0YWlsb3JlZCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiZm94IGZweCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDQsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBDT01QT1NJVEVCT1VOREFSSUVTW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwQzAiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMEMwQyIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSAgezAsIDEsIC0xfSwgbmV3IGludFtdICB7MSwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMEMwQSIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgMSwgLTF9LCBuZXcgaW50W10gezEsIDF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkJcdTAwQzAiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwQzBCIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMEMwIiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAzMDBcdTAwQzAiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgMSwgLTF9LCBuZXcgaW50W10gezEsIDF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMFx1MDMwMCIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICAvKiBBICsgMDMwQSArIDAzMDEgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAxRkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDMwQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEiLCAiQVx1MDMwQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEiLCAiXHUwMzBBQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEiLCAiXHUwMzAxIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJBXHUwMzAxIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMDFBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMEFcdTAzMDEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQVx1MDFGQSIsICJBXHUwMzBBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQUEiLCAiXHUwMzAxQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTBGNzMiLCAiXHUwRjczIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3MyIsICJcdTBGNzEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwRjczIiwgIlx1MEY3MiIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTBGNzMiLCAiXHUwRjcxXHUwRjcyIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFcdTBGNzMiLCAiQVx1MEY3MSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTBGNzNBIiwgIlx1MEY3MkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgQ09NUE9TSVRFQk9VTkRBUklFU0NBTk9OSUNBTFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMEMwIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQVx1MDBDMEMiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDEsIC0xfSwgbmV3IGludFtdIHsxLCAxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwQzBBIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAxLCAtMX0sIG5ldyBpbnRbXSB7MSwgMX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQlx1MDBDMCIsICJBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMEIiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAwQzAiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDMwMFx1MDBDMCIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAxLCAtMX0sIG5ldyBpbnRbXSB7MSwgMX0pLAorICAgICAgICAvKiBcdTAzMDAgYmxvY2tlZCBieSBcdTAzMDAgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDBDMFx1MDMwMCIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICAvKiBBICsgMDMwQSArIDAzMDEgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAxRkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIiwgIlx1MDMwQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEiLCAiQVx1MDMwQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEiLCAiXHUwMzBBQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTAxRkEiLCAiXHUwMzAxIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgLyogYmxvY2tlZCBhY2NlbnQgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJBXHUwMzAxIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMDFBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQSIsICJcdTAzMEFcdTAzMDEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQVx1MDFGQSIsICJBXHUwMzBBIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDFGQUEiLCAiXHUwMzAxQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTBGNzMiLCAiXHUwRjczIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MEY3MyIsICJcdTBGNzEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwRjczIiwgIlx1MEY3MiIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTBGNzMiLCAiXHUwRjcxXHUwRjcyIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFcdTBGNzMiLCAiQVx1MEY3MSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJcdTBGNzNBIiwgIlx1MEY3MkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMUZBIEFcdTAzMDFcdTAzMEEgQVx1MDMwQVx1MDMwMSBBXHUwMzBBIFx1MDFGQSIsICJBXHUwMzBBIiwKKyAgICAgICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDYsIDEwLCAxMywgLTF9LCBuZXcgaW50W10gezEsIDMsIDIsIDF9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIFNVUFBMRU1FTlRBUllbXSA9IHsKKyAgICAgICAgLyogMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYmMgXHVEODAwXHVEQzAwIFx1RDgwMFx1REMwMSBcdUQ4MDFcdURDMDAgXHVEODAwXHVEQzAwYWJjIGFiY1x1RDgwMFx1REMwMCBcdUQ4MDBcdUQ4MDBcdURDMDAgXHVEODAwXHVEQzAwXHVEQzAwIiwKKyAgICAgICAgICAgICJcdUQ4MDBcdURDMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgCisgICAgICAgICAgICBuZXcgaW50W10gezQsIDEzLCAyMiwgMjYsIDI5LCAtMX0sIG5ldyBpbnRbXSB7MiwgMiwgMiwgMiwgMn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYW5kXHVEODM0XHVEREI5dGhpcyBzZW50ZW5jZSIsICJcdUQ4MzRcdUREQjkiLCBudWxsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MywgLTF9LCAKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhbmQgXHVEODM0XHVEREI5IHRoaXMgc2VudGVuY2UiLCAiIFx1RDgzNFx1RERCOSAiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MywgLTF9LCAKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHs0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhbmQtXHVEODM0XHVEREI5LXRoaXMgc2VudGVuY2UiLCAiLVx1RDgzNFx1RERCOS0iLCAKKyAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MywgLTF9LCAKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHs0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhbmQsXHVEODM0XHVEREI5LHRoaXMgc2VudGVuY2UiLCAiLFx1RDgzNFx1RERCOSwiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MywgLTF9LCAKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHs0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhbmQ/XHVEODM0XHVEREI5P3RoaXMgc2VudGVuY2UiLCAiP1x1RDgzNFx1RERCOT8iLCAKKyAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MywgLTF9LCAKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHs0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU3RyaW5nIENPTlRSQUNUSU9OUlVMRSA9ICImeiA9IGFiL2MgPCBBQiA8IFhcdTAzMDAgPCBBQkMgPCBYXHUwMzAwXHUwMzE1IjsKKworICAgIFNlYXJjaERhdGEgQ09OVFJBQ1RJT05bXSA9IHsKKyAgICAgICAgLyogY29tbW9uIGRpc2NvbnRpZ3VvdXMgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFcdTAzMDBcdTAzMTUiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFcdTAzMDBcdTAzMTUiLCAiXHUwMzAwXHUwMzE1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgLyogY29udHJhY3Rpb24gcHJlZml4ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBQlx1MDMxNUMiLCAiQSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBQlx1MDMxNUMiLCAiQUIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQUJcdTAzMTVDIiwgIlx1MDMxNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezIsIC0xfSwgbmV3IGludFtdIHsxfSksCisgICAgICAgIC8qIGRpc2NvbnRpZ3VvdXMgcHJvYmxlbSBoZXJlIGZvciBiYWNrd2FyZHMgaXRlcmF0aW9uLgorICAgICAgICBhY2NlbnRzIG5vdCBmb3VuZCBiZWNhdXNlIGRpc2NvbnRpZ3VvdXMgc3RvcmVzIGFsbCBpbmZvcm1hdGlvbiAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiWFx1MDMwMFx1MDMxOVx1MDMxNSIsICJcdTAzMTkiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICAgLyogZW5kcyBub3Qgd2l0aCBhIGNvbnRyYWN0aW9uIGNoYXJhY3RlciAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiWFx1MDMxNVx1MDMwMEQiLCAiXHUwMzAwXHUwMzE1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlhcdTAzMTVcdTAzMDBEIiwgIlhcdTAzMDBcdTAzMTUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiWFx1MDMwMFx1MDMxQVx1MDMxNUQiLCAiWFx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIC8qIGJsb2NrZWQgZGlzY29udGlndW91cyAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiWFx1MDMwMFx1MDMxQVx1MDMxNUQiLCAiXHUwMzFBXHUwMzE1RCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYiIsICJ6IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIENPTlRSQUNUSU9OQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIC8qIGNvbW1vbiBkaXNjb250aWd1b3VzICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMzAwXHUwMzE1IiwgIlx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBXHUwMzAwXHUwMzE1IiwgIlx1MDMwMFx1MDMxNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIC8qIGNvbnRyYWN0aW9uIHByZWZpeCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQUJcdTAzMTVDIiwgIkEiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiQUJcdTAzMTVDIiwgIkFCIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkFCXHUwMzE1QyIsICJcdTAzMTUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsyLCAtMX0sIG5ldyBpbnRbXSB7MX0pLAorICAgICAgICAvKiBkaXNjb250aWd1b3VzIHByb2JsZW0gaGVyZSBmb3IgYmFja3dhcmRzIGl0ZXJhdGlvbi4KKyAgICAgICAgZm9yd2FyZHMgZ2l2ZXMgMCwgNCBidXQgYmFja3dhcmRzIGdpdmUgMSwgMyAqLworICAgICAgICAvKiB7IlhcdTAzMDBcdTAzMTlcdTAzMTUiLCAiXHUwMzE5IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIHswLCAtMX0sCisgICAgICAgIHs0fX0sICovCisKKyAgICAgICAgIC8qIGVuZHMgbm90IHdpdGggYSBjb250cmFjdGlvbiBjaGFyYWN0ZXIgKi8KKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlhcdTAzMTVcdTAzMDBEIiwgIlx1MDMwMFx1MDMxNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzE1XHUwMzAwRCIsICJYXHUwMzAwXHUwMzE1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsCisgICAgICAgICAgICBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJYXHUwMzAwXHUwMzFBXHUwMzE1RCIsICJYXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsCisgICAgICAgICAgICBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHs0fSksCisgICAgICAgIC8qIGJsb2NrZWQgZGlzY29udGlndW91cyAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiWFx1MDMwMFx1MDMxQVx1MDMxNUQiLCAiXHUwMzFBXHUwMzE1RCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLAorICAgICAgICAgICAgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7NH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYWIiLCAieiIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBNQVRDSFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYSBidXN5IGJlZSBpcyBhIHZlcnkgYnVzeSBiZWVlZSIsICJiZWUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwKKyAgICAgICAgbmV3IGludFtdIHs3LCAyNiwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgLyogMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhIGJ1c3kgYmVlIGlzIGEgdmVyeSBidXN5IGJlZWVlIHdpdGggbm8gYmVlIGxpZmUiLCAiYmVlIiwgbnVsbCwKKyAgICAgICAgICAgIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezcsIDI2LCA0MCwgLTF9LCBuZXcgaW50W10gezMsIDMsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTdHJpbmcgSUdOT1JBQkxFUlVMRSA9ICImYSA9IFx1MDMwMCI7CisKKyAgICBTZWFyY2hEYXRhIElHTk9SQUJMRVtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzE1XHUwMzAwIFx1MDMxNVx1MDMwMFx1MDMxNSAiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7MCwgMywgLTF9LCBuZXcgaW50W10gezIsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIE5PUk1DQU5PTklDQUxbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlx1MDMwMFx1MDMyNSIsICJcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiXHUwMzAwXHUwMzI1IiwgIlx1MDMyNSIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIC0xfSwgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgIlx1MDMyNVx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezEsIC0xfSwKKyAgICAgICAgICAgIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNSIsICJcdTAzMDBcdTAzMjUiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sCisgICAgICAgICAgICBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjUiLCAiXHUwMzI1IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFcdTAzMDBcdTAzMjUiLCAiXHUwMzAwIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MSwgLTF9LCBuZXcgaW50W10gezJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIE5PUk1FWEFDVFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYVx1MDMwMFx1MDMyNSIsICJcdTAzMjVcdTAzMDAiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxLCAtMX0sIG5ldyBpbnRbXSB7Mn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgTk9OTk9STUVYQUNUW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhXHUwMzAwXHUwMzI1IiwgIlx1MDMyNVx1MDMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBPVkVSTEFQW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYmFiYWJhYiIsICJhYmFiIiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MCwgMiwgNCwgLTF9LCBuZXcgaW50W10gezQsIDQsIDR9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIE5PTk9WRVJMQVBbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImFiYWJhYmFiIiwgImFiYWIiLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCA0LCAtMX0sIG5ldyBpbnRbXSB7NCwgNH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgT1ZFUkxBUENBTk9OSUNBTFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYWJhYmFiYWIiLCAiYWJhYiIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDIsIDQsIC0xfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7NCwgNCwgNH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgTk9OT1ZFUkxBUENBTk9OSUNBTFtdID0geworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYWJhYmFiYWIiLCAiYWJhYiIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDQsIC0xfSwgbmV3IGludFtdIHs0LCA0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBQQVRURVJOQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZm94ZXMiLCAidGhlIiwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdIHswLCAzMSwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBmb3hlcyIsICJmb3giLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezE2LCA0MCwgLTF9LCBuZXcgaW50W10gezMsIDN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIFBBVFRFUk5bXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBmb3hlcyIsICJ0aGUiLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezAsIDMxLCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGZveGVzIiwgImZveCIsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXSB7MTYsIDQwLCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIFNlYXJjaERhdGEgU1RSRU5HVEhbXSA9IHsKKyAgICAgICAgLyowMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGZveGVzIiwgImZveCIsICJlbiIsCisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXSB7MTYsIDQwLCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGZveGVzIiwgImZveCIsICJlbiIsCisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlksICJ3b3JkYnJlYWtlciIsIG5ldyBpbnRbXSB7MTYsIC0xfSwgbmV3IGludFtdIHszfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJibGFja2JpcmRzIFBhdCBwXHUwMEU5Y2hcdTAwRTkgcFx1MDBFQWNoZSBwXHUwMEU5Y2hlciBwXHUwMEVBY2hlciBUb2QgVFx1MDBGNm5lIGJsYWNrIFRvZnUgYmxhY2tiaXJkcyBUb24gUEFUIHRvZWhvbGQgYmxhY2tiaXJkIGJsYWNrLWJpcmQgcGF0IHRvZSBiaWcgVG9lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgInBlY2hlIiwgImZyIiwgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdIHsxNSwgMjEsIDI3LCAzNCwgLTF9LCBuZXcgaW50W10gezUsIDUsIDUsIDV9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIlRoaXMgaXMgYSB0b2UgVFx1MDBGNm5lIiwgInRvZSIsICJkZSIsIENvbGxhdG9yLlBSSU1BUlksIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezEwLCAxNCwgLTF9LCBuZXcgaW50W10gezMsIDJ9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoIkEgY2hhbm5lbCwgYW5vdGhlciBDSEFOTkVMLCBtb3JlIENoYW5uZWxzLCBhbmQgb25lIGxhc3QgY2hhbm5lbC4uLiIsICJjaGFubmVsIiwgImVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXSB7MiwgMTksIDMzLCA1NiwgLTF9LCBuZXcgaW50W10gezcsIDcsIDcsIDd9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7LTF9LCBuZXcgaW50W10gezB9KQorICAgIH07CisKKyAgICBTZWFyY2hEYXRhIFNUUkVOR1RIQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIC8qMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZm94ZXMiLCAiZm94IiwgImVuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwgbmV3IGludFtdIHsxNiwgNDAsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZm94ZXMiLCAiZm94IiwgImVuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSwgIndvcmRicmVha2VyIiwgbmV3IGludFtdIHsxNiwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoImJsYWNrYmlyZHMgUGF0IHBcdTAwRTljaFx1MDBFOSBwXHUwMEVBY2hlIHBcdTAwRTljaGVyIHBcdTAwRUFjaGVyIFRvZCBUXHUwMEY2bmUgYmxhY2sgVG9mdSBibGFja2JpcmRzIFRvbiBQQVQgdG9laG9sZCBibGFja2JpcmQgYmxhY2stYmlyZCBwYXQgdG9lIGJpZyBUb2UiLAorICAgICAgICAgICAgICAgICAgICAgICAicGVjaGUiLCAiZnIiLCBDb2xsYXRvci5QUklNQVJZLCBudWxsLCBuZXcgaW50W10gezE1LCAyMSwgMjcsIDM0LCAtMX0sIG5ldyBpbnRbXSB7NSwgNSwgNSwgNX0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiVGhpcyBpcyBhIHRvZSBUXHUwMEY2bmUiLCAidG9lIiwgImRlIiwgQ29sbGF0b3IuUFJJTUFSWSwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHsxMCwgMTQsIC0xfSwgbmV3IGludFtdIHszLCAyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJBIGNoYW5uZWwsIGFub3RoZXIgQ0hBTk5FTCwgbW9yZSBDaGFubmVscywgYW5kIG9uZSBsYXN0IGNoYW5uZWwuLi4iLCAiY2hhbm5lbCIsICJlcyIsCisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlksIG51bGwsIG5ldyBpbnRbXXsyLCAxOSwgMzMsIDU2LCAtMX0sIG5ldyBpbnRbXSB7NywgNywgNywgN30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXXswfSkKKyAgICB9OworCisgICAgU2VhcmNoRGF0YSBTVVBQTEVNRU5UQVJZQ0FOT05JQ0FMW10gPSB7CisgICAgICAgIC8qMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYmMgXHVEODAwXHVEQzAwIFx1RDgwMFx1REMwMSBcdUQ4MDFcdURDMDAgXHVEODAwXHVEQzAwYWJjIGFiY1x1RDgwMFx1REMwMCBcdUQ4MDBcdUQ4MDBcdURDMDAgXHVEODAwXHVEQzAwXHVEQzAwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgwMFx1REMwMCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gezQsIDEzLCAyMiwgMjYsIDI5LCAtMX0sCisgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7MiwgMiwgMiwgMiwgMn0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYW5kXHVEODM0XHVEREI5dGhpcyBzZW50ZW5jZSIsICJcdUQ4MzRcdUREQjkiLCBudWxsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MywgLTF9LCAKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHsyfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhbmQgXHVEODM0XHVEREI5IHRoaXMgc2VudGVuY2UiLCAiIFx1RDgzNFx1RERCOSAiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MywgLTF9LCAKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHs0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhbmQtXHVEODM0XHVEREI5LXRoaXMgc2VudGVuY2UiLCAiLVx1RDgzNFx1RERCOS0iLCAKKyAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MywgLTF9LCAKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHs0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhbmQsXHVEODM0XHVEREI5LHRoaXMgc2VudGVuY2UiLCAiLFx1RDgzNFx1RERCOSwiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MywgLTF9LCAKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHs0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhbmQ/XHVEODM0XHVEREI5P3RoaXMgc2VudGVuY2UiLCAiP1x1RDgzNFx1RERCOT8iLCAKKyAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7MywgLTF9LCAKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHs0fSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdIHswfSkKKyAgICB9OworCisgICAgc3RhdGljIFNlYXJjaERhdGEgVkFSSUFCTEVbXSA9IHsKKyAgICAgICAgLyowMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiYmxhY2tiaXJkcyBibGFjayBibGFja2JpcmRzIGJsYWNrYmlyZCBibGFjay1iaXJkIiwgImJsYWNrYmlyZCIsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCAgIG51bGwsCisgICAgICAgIG5ldyBpbnRbXSB7MCwgMTcsIDI4LCAzOCwgLTF9LCBuZXcgaW50W10gezksIDksIDksIDEwfSksCisKKyAgICAgICAgLyogdG8gc2VlIHRoYXQgaXQgZG9lc24ndCBnbyBpbnRvIGFuIGluZmluaXRlIGxvb3AgaWYgdGhlIHN0YXJ0IG9mIHRleHQKKyAgICAgICAgaXMgYSBpZ25vcmFibGUgY2hhcmFjdGVyICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCIgb24iLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ28iLCAgICAgICAgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksICAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXXswfSksCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsICAgICAgICAgICAgICAgICAgICAgICAiICAgIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuUFJJTUFSWSwgICAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXXswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgLTF9LAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfSksCisKKyAgICAgICAgLyogdGVzdGluZyB0aWdodGVzdCBtYXRjaCAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiIGFiYyAgYSBiYyAgIGFiIGMgICAgYSAgYmMgICAgIGFiICBjIiwgICAgICAgICAgICAgImFiYyIsICAgICAgIG51bGwsIENvbGxhdG9yLlFVQVRFUk5BUlksIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXXsxLCAtMX0sIG5ldyBpbnRbXSB7M30pLAorICAgICAgICAvKjAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OSAqLworICAgICAgICBuZXcgU2VhcmNoRGF0YSgiIGFiYyAgYSBiYyAgIGFiIGMgICAgYSAgYmMgICAgIGFiICBjIiwgICAgICAgICAgICAgImFiYyIsICAgICAgIG51bGwsIENvbGxhdG9yLlNFQ09OREFSWSwgIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7MSwgNiwgMTMsIDIxLCAzMSwgLTF9LCBuZXcgaW50W10gezMsIDQsIDQsIDUsIDV9KSwKKworICAgICAgICAvKiB0b3RhbGx5IGlnbm9yYWJsZSB0ZXh0ICovCisgICAgICAgIG5ldyBTZWFyY2hEYXRhKCIgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLSIsICAgICAgICAgICAgICAgICAgICAgICAiYWJjIiwgICAgICAgbnVsbCwgQ29sbGF0b3IuU0VDT05EQVJZLCAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YShudWxsLCBudWxsLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIHN0YXRpYyBTZWFyY2hEYXRhIFRFWFRDQU5PTklDQUxbXSA9IHsKKyAgICAgICAgbmV3IFNlYXJjaERhdGEoInRoZSBmb3h5IGJyb3duIGZveCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3giLCAgICAgICBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgaW50W10gezQsIDE1LCAtMX0sIG5ldyBpbnRbXSB7MywgM30pLAorICAgICAgICBuZXcgU2VhcmNoRGF0YSgidGhlIHF1aWNrIGJyb3duIGZveCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZveCIsICAgICAgIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCAgIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgIG5ldyBpbnRbXSB7MTYsIC0xfSwgbmV3IGludFtdezN9KSwKKyAgICAgICAgbmV3IFNlYXJjaERhdGEobnVsbCwgbnVsbCwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksbnVsbCwgbmV3IGludFtdIHstMX0sIG5ldyBpbnRbXSB7MH0pCisgICAgfTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yCisgICAgICovCisgICAgcHVibGljIFNlYXJjaFRlc3QoKQorICAgIHsKKworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIGluaXQoKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIG1fZW5fdXNfID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIG1fZnJfZnJfID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5GUkFOQ0UpOworICAgICAgICBtX2RlXyA9IChSdWxlQmFzZWRDb2xsYXRvcilDb2xsYXRvci5nZXRJbnN0YW5jZShuZXcgTG9jYWxlKCJkZSIsICJERSIpKTsKKyAgICAgICAgbV9lc18gPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZXMiLCAiRVMiKSk7CisgICAgICAgIG1fZW5fd29yZGJyZWFrZXJfID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgbV9lbl9jaGFyYWN0ZXJicmVha2VyXyA9IEJyZWFrSXRlcmF0b3IuZ2V0Q2hhcmFjdGVySW5zdGFuY2UoKTsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gbV9kZV8uZ2V0UnVsZXMoKSArIEVYVFJBQ09MTEFUSU9OUlVMRTsKKyAgICAgICAgbV9kZV8gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IocnVsZXMpOworICAgICAgICBydWxlcyA9IG1fZXNfLmdldFJ1bGVzKCkgKyBFWFRSQUNPTExBVElPTlJVTEU7CisgICAgICAgIG1fZXNfID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFNlYXJjaFRlc3QoKS5ydW4oYXJncyk7CisgICAgICAgIC8vIG5ldyBTZWFyY2hUZXN0KCkuVGVzdENvbnRyYWN0aW9uKCk7CisgICAgfQorCisgICAgUnVsZUJhc2VkQ29sbGF0b3IgZ2V0Q29sbGF0b3IoU3RyaW5nIGNvbGxhdG9yKSB7CisgICAgICAgIGlmIChjb2xsYXRvciA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbV9lbl91c187CisgICAgICAgIH0gaWYgKGNvbGxhdG9yLmVxdWFscygiZnIiKSkgeworICAgICAgICAgICAgcmV0dXJuIG1fZnJfZnJfOworICAgICAgICB9IGVsc2UgaWYgKGNvbGxhdG9yLmVxdWFscygiZGUiKSkgeworICAgICAgICAgICAgcmV0dXJuIG1fZGVfOworICAgICAgICB9IGVsc2UgaWYgKGNvbGxhdG9yLmVxdWFscygiZXMiKSkgeworICAgICAgICAgICAgcmV0dXJuIG1fZXNfOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG1fZW5fdXNfOworICAgICAgICB9CisgICAgfQorCisgICAgQnJlYWtJdGVyYXRvciBnZXRCcmVha0l0ZXJhdG9yKFN0cmluZyBicmVha2VyKSB7CisgICAgICAgIGlmIChicmVha2VyID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9IGlmIChicmVha2VyLmVxdWFscygid29yZGJyZWFrZXIiKSkgeworICAgICAgICAgICAgcmV0dXJuIG1fZW5fd29yZGJyZWFrZXJfOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG1fZW5fY2hhcmFjdGVyYnJlYWtlcl87CisgICAgICAgIH0KKyAgICB9CisKKyAgICBib29sZWFuIGFzc2VydENhbm9uaWNhbEVxdWFsKFNlYXJjaERhdGEgc2VhcmNoKSB7CisgICAgICAgIENvbGxhdG9yICAgICAgY29sbGF0b3IgPSBnZXRDb2xsYXRvcihzZWFyY2guY29sbGF0b3IpOworICAgICAgICBCcmVha0l0ZXJhdG9yIGJyZWFrZXIgID0gZ2V0QnJlYWtJdGVyYXRvcihzZWFyY2guYnJlYWtlcik7CisgICAgICAgIFN0cmluZ1NlYXJjaCAgc3Ryc3JjaDsKKworICAgICAgICBTdHJpbmcgdGV4dCA9IHNlYXJjaC50ZXh0OworICAgICAgICBTdHJpbmcgIHBhdHRlcm4gPSBzZWFyY2gucGF0dGVybjsKKworICAgICAgICBpZiAoYnJlYWtlciAhPSBudWxsKSB7CisgICAgICAgICAgICBicmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoc2VhcmNoLnN0cmVuZ3RoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGxhdG9yLCBicmVha2VyKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc3RyaW5nIHNlYXJjaCIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sZWFuIGFzc2VydEVxdWFsKFNlYXJjaERhdGEgc2VhcmNoKSB7CisgICAgICAgIENvbGxhdG9yICAgICAgY29sbGF0b3IgPSBnZXRDb2xsYXRvcihzZWFyY2guY29sbGF0b3IpOworICAgICAgICBCcmVha0l0ZXJhdG9yIGJyZWFrZXIgID0gZ2V0QnJlYWtJdGVyYXRvcihzZWFyY2guYnJlYWtlcik7CisgICAgICAgIFN0cmluZ1NlYXJjaCAgc3Ryc3JjaDsKKworICAgICAgICBTdHJpbmcgdGV4dCA9IHNlYXJjaC50ZXh0OworICAgICAgICBTdHJpbmcgIHBhdHRlcm4gPSBzZWFyY2gucGF0dGVybjsKKworICAgICAgICBpZiAoYnJlYWtlciAhPSBudWxsKSB7CisgICAgICAgICAgICBicmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoc2VhcmNoLnN0cmVuZ3RoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGxhdG9yLCBicmVha2VyKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHN0cmluZyBzZWFyY2ggIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIHNlYXJjaCkpIHsKKyAgICAgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2xlYW4gYXNzZXJ0RXF1YWxXaXRoQXR0cmlidXRlKFNlYXJjaERhdGEgc2VhcmNoLCBib29sZWFuIGNhbm9uaWNhbCwgYm9vbGVhbiBvdmVybGFwKSB7CisgICAgICAgIENvbGxhdG9yICAgICAgY29sbGF0b3IgPSBnZXRDb2xsYXRvcihzZWFyY2guY29sbGF0b3IpOworICAgICAgICBCcmVha0l0ZXJhdG9yIGJyZWFrZXIgID0gZ2V0QnJlYWtJdGVyYXRvcihzZWFyY2guYnJlYWtlcik7CisgICAgICAgIFN0cmluZ1NlYXJjaCAgc3Ryc3JjaDsKKworICAgICAgICBTdHJpbmcgdGV4dCA9IHNlYXJjaC50ZXh0OworICAgICAgICBTdHJpbmcgIHBhdHRlcm4gPSBzZWFyY2gucGF0dGVybjsKKworICAgICAgICBpZiAoYnJlYWtlciAhPSBudWxsKSB7CisgICAgICAgICAgICBicmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoc2VhcmNoLnN0cmVuZ3RoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgKFJ1bGVCYXNlZENvbGxhdG9yKWNvbGxhdG9yLCBicmVha2VyKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKGNhbm9uaWNhbCk7CisgICAgICAgICAgICBzdHJzcmNoLnNldE92ZXJsYXBwaW5nKG92ZXJsYXApOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc3RyaW5nIHNlYXJjaCAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbGVhbiBhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goU3RyaW5nU2VhcmNoIHN0cnNyY2gsIFNlYXJjaERhdGEgc2VhcmNoKSB7CisgICAgICAgIGludCAgICAgICAgICAgY291bnQgICAgICAgPSAwOworICAgICAgICBpbnQgICBtYXRjaGluZGV4ICA9IHNlYXJjaC5vZmZzZXRbY291bnRdOworICAgICAgICBTdHJpbmcgbWF0Y2h0ZXh0OworCisgICAgICAgIGlmIChzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSAhPSBTZWFyY2hJdGVyYXRvci5ET05FIHx8CisgICAgICAgICAgICBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHdpdGggdGhlIGluaXRpYWxpemF0aW9uIG9mIG1hdGNoIHN0YXJ0IGFuZCBsZW5ndGgiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdGFydCBvZiBmb2xsb3dpbmcgbWF0Y2hlcworICAgICAgICB3aGlsZSAobWF0Y2hpbmRleCA+PSAwKSB7CisgICAgICAgICAgICBpbnQgbWF0Y2hsZW5ndGggPSBzZWFyY2guc2l6ZVtjb3VudF07CisgICAgICAgICAgICBzdHJzcmNoLm5leHQoKTsKKyAgICAgICAgICAgIC8vaW50IHggPSBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKTsKKyAgICAgICAgICAgIGlmIChtYXRjaGluZGV4ICE9IHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpIHx8CisgICAgICAgICAgICAgICAgbWF0Y2hsZW5ndGggIT0gc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRleHQ6ICIgKyBzZWFyY2gudGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICIgKyBzdHJzcmNoLmdldFBhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGZvbGxvd2luZyBtYXRjaCBmb3VuZCBhdCAiICsgc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgKyAiLCAiICsgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKworICAgICAgICAgICAgbWF0Y2h0ZXh0ID0gc3Ryc3JjaC5nZXRNYXRjaGVkVGV4dCgpOworICAgICAgICAgICAgU3RyaW5nIHRhcmdldFRleHQgPSBzZWFyY2gudGV4dDsKKyAgICAgICAgICAgIGlmIChtYXRjaGxlbmd0aCA+IDAgJiYKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnN1YnN0cmluZyhtYXRjaGluZGV4LCBtYXRjaGluZGV4ICsgbWF0Y2hsZW5ndGgpLmNvbXBhcmVUbyhtYXRjaHRleHQpICE9IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBmb2xsb3dpbmcgbWF0Y2hlZCB0ZXh0Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1hdGNoaW5kZXggPSBzZWFyY2gub2Zmc2V0W2NvdW50XTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLm5leHQoKTsKKyAgICAgICAgaWYgKHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkUgfHwKKyAgICAgICAgICAgIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRleHQ6ICIgKyBzZWFyY2gudGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICIgKyBzdHJzcmNoLmdldFBhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGZvbGxvd2luZyBtYXRjaCBmb3VuZCBhdCAiICsgc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgKyAiLCAiICsgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3RhcnQgb2YgcHJlY2VkaW5nIG1hdGNoZXMKKyAgICAgICAgY291bnQgPSBjb3VudCA9PSAwID8gMCA6IGNvdW50IC0gMTsKKyAgICAgICAgbWF0Y2hpbmRleCA9IHNlYXJjaC5vZmZzZXRbY291bnRdOworICAgICAgICB3aGlsZSAobWF0Y2hpbmRleCA+PSAwKSB7CisgICAgICAgICAgICBpbnQgbWF0Y2hsZW5ndGggPSBzZWFyY2guc2l6ZVtjb3VudF07CisgICAgICAgICAgICBzdHJzcmNoLnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAobWF0Y2hpbmRleCAhPSBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSB8fAorICAgICAgICAgICAgICAgIG1hdGNobGVuZ3RoICE9IHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUZXh0OiAiICsgc2VhcmNoLnRleHQpOworICAgICAgICAgICAgICAgIGVycmxuKCJQYXR0ZXJuOiAiICsgc3Ryc3JjaC5nZXRQYXR0ZXJuKCkpOworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBmb2xsb3dpbmcgbWF0Y2ggZm91bmQgYXQgIiArIHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICsgIiwgIiArIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtYXRjaHRleHQgPSBzdHJzcmNoLmdldE1hdGNoZWRUZXh0KCk7CisgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0VGV4dCA9IHNlYXJjaC50ZXh0OworICAgICAgICAgICAgaWYgKG1hdGNobGVuZ3RoID4gMCAmJgorICAgICAgICAgICAgICAgIHRhcmdldFRleHQuc3Vic3RyaW5nKG1hdGNoaW5kZXgsIG1hdGNoaW5kZXggKyBtYXRjaGxlbmd0aCkuY29tcGFyZVRvKG1hdGNodGV4dCkgIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIGZvbGxvd2luZyBtYXRjaGVkIHRleHQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWF0Y2hpbmRleCA9IGNvdW50ID4gMCA/IHNlYXJjaC5vZmZzZXRbY291bnQgLSAxXSA6IC0xOworICAgICAgICAgICAgY291bnQgLS07CisgICAgICAgIH0KKyAgICAgICAgc3Ryc3JjaC5wcmV2aW91cygpOworICAgICAgICBpZiAoc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORSB8fAorICAgICAgICAgICAgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGV4dDogIiArIHNlYXJjaC50ZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGF0dGVybjogIiArIHN0cnNyY2guZ2V0UGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZm9sbG93aW5nIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSAicGF0dGVybiI7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gInRleHQiOworICAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0aXRlciA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KTsKKyAgICAgICAgQ29sbGF0b3IgZGVmYXVsdGNvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgQnJlYWtJdGVyYXRvciBicmVha2VyID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgICBicmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgIFN0cmluZ1NlYXJjaCBzZWFyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIHRleHQpOworICAgICAgICBpZiAoIXNlYXJjaC5nZXRQYXR0ZXJuKCkuZXF1YWxzKHBhdHRlcm4pCisgICAgICAgICAgICB8fCAhc2VhcmNoLmdldFRhcmdldCgpLmVxdWFscyh0ZXh0aXRlcikKKyAgICAgICAgICAgIHx8ICFzZWFyY2guZ2V0Q29sbGF0b3IoKS5lcXVhbHMoZGVmYXVsdGNvbGxhdG9yKQorICAgICAgICAgICAgfHwgIXNlYXJjaC5nZXRCcmVha0l0ZXJhdG9yKCkuZXF1YWxzKGJyZWFrZXIpKSB7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nU2VhcmNoKFN0cmluZywgU3RyaW5nKSBlcnJvciIpOworICAgICAgICB9CisgICAgICAgIHNlYXJjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgdGV4dGl0ZXIsIG1fZnJfZnJfKTsKKyAgICAgICAgaWYgKCFzZWFyY2guZ2V0UGF0dGVybigpLmVxdWFscyhwYXR0ZXJuKQorICAgICAgICAgICAgfHwgIXNlYXJjaC5nZXRUYXJnZXQoKS5lcXVhbHModGV4dGl0ZXIpCisgICAgICAgICAgICB8fCAhc2VhcmNoLmdldENvbGxhdG9yKCkuZXF1YWxzKG1fZnJfZnJfKQorICAgICAgICAgICAgfHwgIXNlYXJjaC5nZXRCcmVha0l0ZXJhdG9yKCkuZXF1YWxzKGJyZWFrZXIpKSB7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nU2VhcmNoKFN0cmluZywgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IsICIKKyAgICAgICAgICAgICAgICAgICsgIlJ1bGVCYXNlZENvbGxhdG9yKSBlcnJvciIpOworICAgICAgICB9CisgICAgICAgIExvY2FsZSBkZSA9IG5ldyBMb2NhbGUoImRlIiwgIkRFIik7CisgICAgICAgIGJyZWFrZXIgPSBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKGRlKTsKKyAgICAgICAgYnJlYWtlci5zZXRUZXh0KHRleHQpOworICAgICAgICBzZWFyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIHRleHRpdGVyLCBkZSk7CisgICAgICAgIGlmICghc2VhcmNoLmdldFBhdHRlcm4oKS5lcXVhbHMocGF0dGVybikKKyAgICAgICAgICAgIHx8ICFzZWFyY2guZ2V0VGFyZ2V0KCkuZXF1YWxzKHRleHRpdGVyKQorICAgICAgICAgICAgfHwgIXNlYXJjaC5nZXRDb2xsYXRvcigpLmVxdWFscyhDb2xsYXRvci5nZXRJbnN0YW5jZShkZSkpCisgICAgICAgICAgICB8fCAhc2VhcmNoLmdldEJyZWFrSXRlcmF0b3IoKS5lcXVhbHMoYnJlYWtlcikpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmdTZWFyY2goU3RyaW5nLCBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciwgTG9jYWxlKSAiCisgICAgICAgICAgICAgICAgICArICJlcnJvciIpOworICAgICAgICB9CisKKyAgICAgICAgc2VhcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCB0ZXh0aXRlciwgbV9mcl9mcl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9lbl93b3JkYnJlYWtlcl8pOworICAgICAgICBpZiAoIXNlYXJjaC5nZXRQYXR0ZXJuKCkuZXF1YWxzKHBhdHRlcm4pCisgICAgICAgICAgICB8fCAhc2VhcmNoLmdldFRhcmdldCgpLmVxdWFscyh0ZXh0aXRlcikKKyAgICAgICAgICAgIHx8ICFzZWFyY2guZ2V0Q29sbGF0b3IoKS5lcXVhbHMobV9mcl9mcl8pCisgICAgICAgICAgICB8fCAhc2VhcmNoLmdldEJyZWFrSXRlcmF0b3IoKS5lcXVhbHMobV9lbl93b3JkYnJlYWtlcl8pKSB7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nU2VhcmNoKFN0cmluZywgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IsIExvY2FsZSkgIgorICAgICAgICAgICAgICAgICAgKyAiZXJyb3IiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNpYygpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKEJBU0lDW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWwoQkFTSUNbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QnJlYWtJdGVyYXRvcigpIHsKKworICAgICAgICBTdHJpbmcgdGV4dCA9IEJSRUFLSVRFUkFUT1JFWEFDVFswXS50ZXh0OworICAgICAgICBTdHJpbmcgcGF0dGVybiA9IEJSRUFLSVRFUkFUT1JFWEFDVFswXS5wYXR0ZXJuOworICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHN0cmluZyBzZWFyY2giKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0QnJlYWtJdGVyYXRvcihudWxsKTsKKyAgICAgICAgaWYgKHN0cnNyY2guZ2V0QnJlYWtJdGVyYXRvcigpICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciB1c2VhcmNoX2dldEJyZWFrSXRlcmF0b3IgcmV0dXJuZWQgd3Jvbmcgb2JqZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICBzdHJzcmNoLnNldEJyZWFrSXRlcmF0b3IobV9lbl9jaGFyYWN0ZXJicmVha2VyXyk7CisgICAgICAgIGlmICghc3Ryc3JjaC5nZXRCcmVha0l0ZXJhdG9yKCkuZXF1YWxzKG1fZW5fY2hhcmFjdGVyYnJlYWtlcl8pKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgdXNlYXJjaF9nZXRCcmVha0l0ZXJhdG9yIHJldHVybmVkIHdyb25nIG9iamVjdCIpOworICAgICAgICB9CisKKyAgICAgICAgc3Ryc3JjaC5zZXRCcmVha0l0ZXJhdG9yKG1fZW5fd29yZGJyZWFrZXJfKTsKKyAgICAgICAgaWYgKCFzdHJzcmNoLmdldEJyZWFrSXRlcmF0b3IoKS5lcXVhbHMobV9lbl93b3JkYnJlYWtlcl8pKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgdXNlYXJjaF9nZXRCcmVha0l0ZXJhdG9yIHJldHVybmVkIHdyb25nIG9iamVjdCIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgNCkgeworICAgICAgICAgICAgLy8gc3BlY2lhbCBwdXJwb3NlcyBmb3IgdGVzdHMgbnVtYmVycyAwLTMKKyAgICAgICAgICAgIFNlYXJjaERhdGEgICAgICAgIHNlYXJjaCAgID0gQlJFQUtJVEVSQVRPUkVYQUNUW2NvdW50XTsKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gZ2V0Q29sbGF0b3Ioc2VhcmNoLmNvbGxhdG9yKTsKKyAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgICAgIGJyZWFrZXIgID0gZ2V0QnJlYWtJdGVyYXRvcihzZWFyY2guYnJlYWtlcik7CisgICAgICAgICAgICAgICAgICAvL1N0cmluZ1NlYXJjaCAgICAgIHN0cnNyY2g7CisKKyAgICAgICAgICAgIHRleHQgPSBzZWFyY2gudGV4dDsKKyAgICAgICAgICAgIHBhdHRlcm4gPSBzZWFyY2gucGF0dGVybjsKKyAgICAgICAgICAgIGlmIChicmVha2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVha2VyLnNldFRleHQodGV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChzZWFyY2guc3RyZW5ndGgpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBjb2xsYXRvciwgYnJlYWtlcik7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5nZXRCcmVha0l0ZXJhdG9yKCkgIT0gYnJlYWtlcikgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGJyZWFrIGl0ZXJhdG9yIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2VhcmNoICAgPSBCUkVBS0lURVJBVE9SRVhBQ1RbY291bnQgKyAxXTsKKyAgICAgICAgICAgIGJyZWFrZXIgID0gZ2V0QnJlYWtJdGVyYXRvcihzZWFyY2guYnJlYWtlcik7CisgICAgICAgICAgICBpZiAoYnJlYWtlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnJlYWtlci5zZXRUZXh0KHRleHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3Ryc3JjaC5zZXRCcmVha0l0ZXJhdG9yKGJyZWFrZXIpOworICAgICAgICAgICAgaWYgKHN0cnNyY2guZ2V0QnJlYWtJdGVyYXRvcigpICE9IGJyZWFrZXIpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBicmVhayBpdGVyYXRvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICs9IDI7CisgICAgICAgIH0KKyAgICAgICAgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoQlJFQUtJVEVSQVRPUkVYQUNUW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWwoQlJFQUtJVEVSQVRPUkVYQUNUW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJyZWFrSXRlcmF0b3JDYW5vbmljYWwoKSB7CisgICAgICAgIGludCAgICAgICAgY291bnQgID0gMDsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgNCkgeworICAgICAgICAgICAgLy8gc3BlY2lhbCBwdXJwb3NlcyBmb3IgdGVzdHMgbnVtYmVycyAwLTMKKyAgICAgICAgICAgIFNlYXJjaERhdGEgICAgIHNlYXJjaCAgID0gQlJFQUtJVEVSQVRPUkNBTk9OSUNBTFtjb3VudF07CisKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSBnZXRDb2xsYXRvcihzZWFyY2guY29sbGF0b3IpOworICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoc2VhcmNoLnN0cmVuZ3RoKTsKKworICAgICAgICAgICAgQnJlYWtJdGVyYXRvciBicmVha2VyID0gZ2V0QnJlYWtJdGVyYXRvcihzZWFyY2guYnJlYWtlcik7CisgICAgICAgICAgICBTdHJpbmdTZWFyY2ggIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIGNvbGxhdG9yLCBicmVha2VyKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGNyZWF0aW5nIHN0cmluZyBzZWFyY2ggZGF0YSIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworICAgICAgICAgICAgaWYgKCFzdHJzcmNoLmdldEJyZWFrSXRlcmF0b3IoKS5lcXVhbHMoYnJlYWtlcikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBicmVhayBpdGVyYXRvciIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIHNlYXJjaCkpIHsKKyAgICAgICAgICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2VhcmNoICA9IEJSRUFLSVRFUkFUT1JFWEFDVFtjb3VudCArIDFdOworICAgICAgICAgICAgYnJlYWtlciA9IGdldEJyZWFrSXRlcmF0b3Ioc2VhcmNoLmJyZWFrZXIpOworICAgICAgICAgICAgYnJlYWtlci5zZXRUZXh0KHN0cnNyY2guZ2V0VGFyZ2V0KCkpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRCcmVha0l0ZXJhdG9yKGJyZWFrZXIpOworICAgICAgICAgICAgaWYgKCFzdHJzcmNoLmdldEJyZWFrSXRlcmF0b3IoKS5lcXVhbHMoYnJlYWtlcikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBicmVhayBpdGVyYXRvciIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKz0gMjsKKyAgICAgICAgfQorICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChCUkVBS0lURVJBVE9SQ0FOT05JQ0FMW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsKEJSRUFLSVRFUkFUT1JDQU5PTklDQUxbY291bnRdKSkgeworICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENhbm9uaWNhbCgpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKEJBU0lDQ0FOT05JQ0FMW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0Q2Fub25pY2FsRXF1YWwoQkFTSUNDQU5PTklDQUxbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29sbGF0b3IoKSB7CisgICAgICAgIC8vIHRlc3QgY29sbGF0b3IgdGhhdCB0aGlua3MgIm8iIGFuZCAicCIgYXJlIHRoZSBzYW1lIHRoaW5nCisgICAgICAgIFN0cmluZyB0ZXh0ID0gQ09MTEFUT1JbMF0udGV4dDsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gID0gQ09MTEFUT1JbMF0ucGF0dGVybjsKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoICIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIENPTExBVE9SWzBdKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBydWxlcyA9IFRFU1RDT0xMQVRPUlJVTEU7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHRhaWxvcmVkID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRhaWxvcmVkID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgICAgIHRhaWxvcmVkLnNldFN0cmVuZ3RoKENPTExBVE9SWzFdLnN0cmVuZ3RoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHJ1bGUgYmFzZWQgY29sbGF0b3IgIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBzdHJzcmNoLnNldENvbGxhdG9yKHRhaWxvcmVkKTsKKyAgICAgICAgaWYgKCFzdHJzcmNoLmdldENvbGxhdG9yKCkuZXF1YWxzKHRhaWxvcmVkKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgcnVsZSBiYXNlZCBjb2xsYXRvciIpOworICAgICAgICB9CisgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgQ09MTEFUT1JbMV0pKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc3Ryc3JjaC5zZXRDb2xsYXRvcihtX2VuX3VzXyk7CisgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgaWYgKCFzdHJzcmNoLmdldENvbGxhdG9yKCkuZXF1YWxzKG1fZW5fdXNfKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgcnVsZSBiYXNlZCBjb2xsYXRvciIpOworICAgICAgICB9CisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIENPTExBVE9SWzBdKSkgeworICAgICAgICAgICBlcnJsbigiRXJyb3Igc2VhcmNoaW5nIGNvbGxhdG9yIHRlc3QiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb2xsYXRvckNhbm9uaWNhbCgpIHsKKyAgICAgICAgLyogdGVzdCBjb2xsYXRvciB0aGF0IHRoaW5rcyAibyIgYW5kICJwIiBhcmUgdGhlIHNhbWUgdGhpbmcgKi8KKyAgICAgICAgU3RyaW5nIHRleHQgPSBDT0xMQVRPUkNBTk9OSUNBTFswXS50ZXh0OworICAgICAgICBTdHJpbmcgcGF0dGVybiA9IENPTExBVE9SQ0FOT05JQ0FMWzBdLnBhdHRlcm47CisKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbCh0cnVlKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIHN0cmluZyBzZWFyY2ggIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBDT0xMQVRPUkNBTk9OSUNBTFswXSkpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBydWxlcyA9IFRFU1RDT0xMQVRPUlJVTEU7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHRhaWxvcmVkID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRhaWxvcmVkID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgICAgIHRhaWxvcmVkLnNldFN0cmVuZ3RoKENPTExBVE9SQ0FOT05JQ0FMWzFdLnN0cmVuZ3RoKTsKKyAgICAgICAgICAgIHRhaWxvcmVkLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgcnVsZSBiYXNlZCBjb2xsYXRvciAiKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0Q29sbGF0b3IodGFpbG9yZWQpOworICAgICAgICBpZiAoIXN0cnNyY2guZ2V0Q29sbGF0b3IoKS5lcXVhbHModGFpbG9yZWQpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBydWxlIGJhc2VkIGNvbGxhdG9yIik7CisgICAgICAgIH0KKyAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbCh0cnVlKTsKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgQ09MTEFUT1JDQU5PTklDQUxbMV0pKSB7CisgICAgICAgIAlsb2dsbigiQ09MTEFUT1JDQU5PTklDQUxbMV0gZmFpbGVkIik7ICAvLyBFcnJvciBzaG91bGQgYWxyZWFkeSBiZSByZXBvcnRlZC4KKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnNldENvbGxhdG9yKG1fZW5fdXNfKTsKKyAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICBpZiAoIXN0cnNyY2guZ2V0Q29sbGF0b3IoKS5lcXVhbHMobV9lbl91c18pKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBydWxlIGJhc2VkIGNvbGxhdG9yIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgQ09MTEFUT1JDQU5PTklDQUxbMF0pKSB7CisgICAgICAgIAlsb2dsbigiQ09MTEFUT1JDQU5PTklDQUxbMF0gZmFpbGVkIik7ICAvLyBFcnJvciBzaG91bGQgYWxyZWFkeSBiZSByZXBvcnRlZC4KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3NpdGVCb3VuZGFyaWVzKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoQ09NUE9TSVRFQk9VTkRBUklFU1tjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBsb2dsbigiY29tcG9zaXRlICIgKyBjb3VudCk7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsKENPTVBPU0lURUJPVU5EQVJJRVNbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3NpdGVCb3VuZGFyaWVzQ2Fub25pY2FsKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoQ09NUE9TSVRFQk9VTkRBUklFU0NBTk9OSUNBTFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBsb2dsbigiY29tcG9zaXRlICIgKyBjb3VudCk7CisgICAgICAgICAgICBpZiAoIWFzc2VydENhbm9uaWNhbEVxdWFsKENPTVBPU0lURUJPVU5EQVJJRVNDQU5PTklDQUxbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb250cmFjdGlvbigpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gQ09OVFJBQ1RJT05SVUxFOworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjb2xsYXRvciA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcihydWxlcyk7CisgICAgICAgICAgICBjb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBvcGVuaW5nIGNvbGxhdG9yICIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyB0ZXh0ID0gInRleHQiOworICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICJwYXR0ZXJuIjsKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBjb2xsYXRvciwgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoICIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKENPTlRSQUNUSU9OW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRleHQgPSBDT05UUkFDVElPTltjb3VudF0udGV4dDsKKyAgICAgICAgICAgIHBhdHRlcm4gPSBDT05UUkFDVElPTltjb3VudF0ucGF0dGVybjsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0VGFyZ2V0KG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSk7CisgICAgICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4ocGF0dGVybik7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBDT05UUkFDVElPTltjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbnRyYWN0aW9uQ2Fub25pY2FsKCkgeworICAgICAgICBTdHJpbmcgcnVsZXMgPSBDT05UUkFDVElPTlJVTEU7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGxhdG9yID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIGNvbGxhdG9yLnNldERlY29tcG9zaXRpb24oQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgY29sbGF0b3IgIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHRleHQgPSAidGV4dCI7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gInBhdHRlcm4iOworICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIGNvbGxhdG9yLCBudWxsKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc3RyaW5nIHNlYXJjaCIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKENPTlRSQUNUSU9OQ0FOT05JQ0FMW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRleHQgPSBDT05UUkFDVElPTkNBTk9OSUNBTFtjb3VudF0udGV4dDsKKyAgICAgICAgICAgIHBhdHRlcm4gPSBDT05UUkFDVElPTkNBTk9OSUNBTFtjb3VudF0ucGF0dGVybjsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0VGFyZ2V0KG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSk7CisgICAgICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4ocGF0dGVybik7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBDT05UUkFDVElPTkNBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldE1hdGNoKCkgeworICAgICAgICBTZWFyY2hEYXRhIHNlYXJjaCA9IE1BVENIWzBdOworICAgICAgICBTdHJpbmcgdGV4dCA9IHNlYXJjaC50ZXh0OworICAgICAgICBTdHJpbmcgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworCisgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIG51bGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc3RyaW5nIHNlYXJjaCAiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGludCAgICAgICAgICAgY291bnQgICAgICA9IDA7CisgICAgICAgIGludCAgIG1hdGNoaW5kZXggPSBzZWFyY2gub2Zmc2V0W2NvdW50XTsKKyAgICAgICAgU3RyaW5nIG1hdGNodGV4dDsKKyAgICAgICAgd2hpbGUgKG1hdGNoaW5kZXggPj0gMCkgeworICAgICAgICAgICAgaW50IG1hdGNobGVuZ3RoID0gc2VhcmNoLnNpemVbY291bnRdOworICAgICAgICAgICAgc3Ryc3JjaC5uZXh0KCk7CisgICAgICAgICAgICBpZiAobWF0Y2hpbmRleCAhPSBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSB8fAorICAgICAgICAgICAgICAgIG1hdGNobGVuZ3RoICE9IHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUZXh0OiAiICsgc2VhcmNoLnRleHQpOworICAgICAgICAgICAgICAgIGVycmxuKCJQYXR0ZXJuOiAiICsgc3Ryc3JjaC5nZXRQYXR0ZXJuKCkpOworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBtYXRjaCBmb3VuZCBhdCAiICsgc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgKyAiLCAiICsgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworCisgICAgICAgICAgICBtYXRjaHRleHQgPSBzdHJzcmNoLmdldE1hdGNoZWRUZXh0KCk7CisgICAgICAgICAgICBpZiAobWF0Y2h0ZXh0Lmxlbmd0aCgpICE9IG1hdGNobGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBtYXRjaCB0ZXh0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtYXRjaGluZGV4ID0gc2VhcmNoLm9mZnNldFtjb3VudF07CisgICAgICAgIH0KKyAgICAgICAgc3Ryc3JjaC5uZXh0KCk7CisgICAgICAgIGlmIChzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSAgIT0gU3RyaW5nU2VhcmNoLkRPTkUgfHwKKyAgICAgICAgICAgIHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZW5kIG9mIG1hdGNoIG5vdCBmb3VuZCIpOworICAgICAgICB9CisgICAgICAgIG1hdGNodGV4dCA9IHN0cnNyY2guZ2V0TWF0Y2hlZFRleHQoKTsKKyAgICAgICAgaWYgKG1hdGNodGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBudWxsIG1hdGNoZXMiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRTZXRBdHRyaWJ1dGUoKSB7CisgICAgICAgIFN0cmluZyAgcGF0dGVybiA9ICJwYXR0ZXJuIjsKKyAgICAgICAgU3RyaW5nICB0ZXh0ID0gInRleHQiOworICAgICAgICBTdHJpbmdTZWFyY2ggIHN0cnNyY2ggPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzZWFyY2giKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdHJzcmNoLmlzT3ZlcmxhcHBpbmcoKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIGRlZmF1bHQgb3ZlcmxhcGluZyBzaG91bGQgYmUgZmFsc2UiKTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnNldE92ZXJsYXBwaW5nKHRydWUpOworICAgICAgICBpZiAoIXN0cnNyY2guaXNPdmVybGFwcGluZygpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBvdmVybGFwIHRydWUiKTsKKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLnNldE92ZXJsYXBwaW5nKGZhbHNlKTsKKyAgICAgICAgaWYgKHN0cnNyY2guaXNPdmVybGFwcGluZygpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBvdmVybGFwIGZhbHNlIik7CisgICAgICAgIH0KKworICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbCh0cnVlKTsKKyAgICAgICAgaWYgKCFzdHJzcmNoLmlzQ2Fub25pY2FsKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIGNhbm9uaWNhbCBtYXRjaCB0cnVlIik7CisgICAgICAgIH0KKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwoZmFsc2UpOworICAgICAgICBpZiAoc3Ryc3JjaC5pc0Nhbm9uaWNhbCgpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBjYW5vbmljYWwgbWF0Y2ggZmFsc2UiKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldFNldE9mZnNldCgpIHsKKyAgICAgICAgU3RyaW5nICBwYXR0ZXJuID0gIjEyMzQ1Njc4OTAxMjM0NTYiOworICAgICAgICBTdHJpbmcgIHRleHQgID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICAgICAgU3RyaW5nU2VhcmNoICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIG51bGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc2VhcmNoIik7CisKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIHRlc3Rpbmcgb3V0IG9mIGJvdW5kcyBlcnJvciAqLworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaC5zZXRJbmRleCgtMSk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZXhwZWN0aW5nIHNldCBvZmZzZXQgZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc3Ryc3JjaC5zZXRJbmRleCgtMSkgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgCX0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgc3Ryc3JjaC5zZXRJbmRleCgxMjgpOworICAgICAgICAgICAgZXJybG4oIkVycm9yIGV4cGVjdGluZyBzZXQgb2Zmc2V0IGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IHN0cnNyY2guc2V0SW5kZXgoMTI4KSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAJfQorCisgICAgICAgIGludCBpbmRleCAgID0gMDsKKyAgICAgICAgd2hpbGUgKEJBU0lDW2luZGV4XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFNlYXJjaERhdGEgIHNlYXJjaCAgICAgID0gQkFTSUNbaW5kZXggKytdOworCisgICAgICAgICAgICB0ZXh0ID1zZWFyY2gudGV4dDsKKyAgICAgICAgICAgIHBhdHRlcm4gPSBzZWFyY2gucGF0dGVybjsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0VGFyZ2V0KG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSk7CisgICAgICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4ocGF0dGVybik7CisgICAgICAgICAgICBzdHJzcmNoLmdldENvbGxhdG9yKCkuc2V0U3RyZW5ndGgoc2VhcmNoLnN0cmVuZ3RoKTsKKyAgICAgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIGludCBtYXRjaGluZGV4ICA9IHNlYXJjaC5vZmZzZXRbY291bnRdOworCisgICAgICAgICAgICB3aGlsZSAobWF0Y2hpbmRleCA+PSAwKSB7CisgICAgICAgICAgICAgICAgaW50IG1hdGNobGVuZ3RoID0gc2VhcmNoLnNpemVbY291bnRdOworICAgICAgICAgICAgICAgIHN0cnNyY2gubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChtYXRjaGluZGV4ICE9IHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpIHx8CisgICAgICAgICAgICAgICAgICAgIG1hdGNobGVuZ3RoICE9IHN0cnNyY2guZ2V0TWF0Y2hMZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVGV4dDogIiArIHRleHQpOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUGF0dGVybjogIiArIHN0cnNyY2guZ2V0UGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1hdGNoaW5kZXggPSBzZWFyY2gub2Zmc2V0W2NvdW50ICsgMV0gPT0gLTEgPyAtMSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaC5vZmZzZXRbY291bnQgKyAyXTsKKyAgICAgICAgICAgICAgICBpZiAoc2VhcmNoLm9mZnNldFtjb3VudCArIDFdICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHN0cnNyY2guc2V0SW5kZXgoc2VhcmNoLm9mZnNldFtjb3VudCArIDFdICsgMSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJzcmNoLmdldEluZGV4KCkgIT0gc2VhcmNoLm9mZnNldFtjb3VudCArIDFdICsgMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgb2Zmc2V0XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNvdW50ICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHJzcmNoLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSAhPSBTdHJpbmdTZWFyY2guRE9ORSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUZXh0OiAiICsgdGV4dCk7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICIgKyBzdHJzcmNoLmdldFBhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIG1hdGNoIGZvdW5kIGF0ICIgKyBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSArICIsICIgKyBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzdHJzcmNoLmdldENvbGxhdG9yKCkuc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRTZXRPZmZzZXRDYW5vbmljYWwoKSB7CisKKyAgICAgICAgU3RyaW5nICB0ZXh0ID0gInRleHQiOworICAgICAgICBTdHJpbmcgIHBhdHRlcm4gPSAicGF0dGVybiI7CisgICAgICAgIFN0cmluZ1NlYXJjaCAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsIHRvIG9wZW4gU3RyaW5nU2VhcmNoISIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworICAgICAgICAvKiB0ZXN0aW5nIG91dCBvZiBib3VuZHMgZXJyb3IgKi8KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0SW5kZXgoLTEpOworICAgICAgICAgICAgZXJybG4oIkVycm9yIGV4cGVjdGluZyBzZXQgb2Zmc2V0IGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IHN0cnNyY2guc2V0SW5kZXgoLTEpIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgIAl9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdHJzcmNoLnNldEluZGV4KDEyOCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgZXhwZWN0aW5nIHNldCBvZmZzZXQgZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogc3Ryc3JjaC5zZXRJbmRleCgxMjgpIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgIAl9CisKKyAgICAgICAgaW50ICAgaW5kZXggICA9IDA7CisgICAgICAgIHdoaWxlIChCQVNJQ0NBTk9OSUNBTFtpbmRleF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBTZWFyY2hEYXRhICBzZWFyY2ggICAgICA9IEJBU0lDQ0FOT05JQ0FMW2luZGV4ICsrXTsKKyAgICAgICAgICAgIGlmIChCQVNJQ0NBTk9OSUNBTFtpbmRleF0udGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gc2tpcCB0aGUgbGFzdCBvbmUKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGV4dCA9IHNlYXJjaC50ZXh0OworICAgICAgICAgICAgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRUYXJnZXQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpKTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgICAgIGludCAgICAgICAgIGNvdW50ICAgICAgID0gMDsKKyAgICAgICAgICAgIGludCBtYXRjaGluZGV4ICA9IHNlYXJjaC5vZmZzZXRbY291bnRdOworICAgICAgICAgICAgd2hpbGUgKG1hdGNoaW5kZXggPj0gMCkgeworICAgICAgICAgICAgICAgIGludCBtYXRjaGxlbmd0aCA9IHNlYXJjaC5zaXplW2NvdW50XTsKKyAgICAgICAgICAgICAgICBzdHJzcmNoLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAobWF0Y2hpbmRleCAhPSBzdHJzcmNoLmdldE1hdGNoU3RhcnQoKSB8fAorICAgICAgICAgICAgICAgICAgICBtYXRjaGxlbmd0aCAhPSBzdHJzcmNoLmdldE1hdGNoTGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRleHQ6ICIgKyB0ZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlBhdHRlcm46ICIgKyBzdHJzcmNoLmdldFBhdHRlcm4oKSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBtYXRjaCBmb3VuZCBhdCAiICsgc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgKyAiLCAiICsgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtYXRjaGluZGV4ID0gc2VhcmNoLm9mZnNldFtjb3VudCArIDFdID09IC0xID8gLTEgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2gub2Zmc2V0W2NvdW50ICsgMl07CisgICAgICAgICAgICAgICAgaWYgKHNlYXJjaC5vZmZzZXRbY291bnQgKyAxXSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBzdHJzcmNoLnNldEluZGV4KHNlYXJjaC5vZmZzZXRbY291bnQgKyAxXSArIDEpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3Ryc3JjaC5nZXRJbmRleCgpICE9IHNlYXJjaC5vZmZzZXRbY291bnQgKyAxXSArIDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIG9mZnNldCIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY291bnQgKz0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cnNyY2gubmV4dCgpOworICAgICAgICAgICAgaWYgKHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICE9IFN0cmluZ1NlYXJjaC5ET05FKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRleHQ6ICIgKyB0ZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGF0dGVybjogJXMiICsgc3Ryc3JjaC5nZXRQYXR0ZXJuKCkpOworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBtYXRjaCBmb3VuZCBhdCAiICsgc3Ryc3JjaC5nZXRNYXRjaFN0YXJ0KCkgKyAiLCAiICsgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc3Ryc3JjaC5nZXRDb2xsYXRvcigpLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SWdub3JhYmxlKCkgeworICAgICAgICBTdHJpbmcgcnVsZXMgPSBJR05PUkFCTEVSVUxFOworICAgICAgICBpbnQgICAgICAgIGNvdW50ICA9IDA7CisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbGxhdG9yID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKElHTk9SQUJMRVtjb3VudF0uc3RyZW5ndGgpOworICAgICAgICAgICAgY29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBjb2xsYXRvciAiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICJwYXR0ZXJuIjsKKyAgICAgICAgU3RyaW5nIHRleHQgPSAidGV4dCI7CisgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgY29sbGF0b3IsIG51bGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc3RyaW5nIHNlYXJjaCAiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlIChJR05PUkFCTEVbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgdGV4dCA9IElHTk9SQUJMRVtjb3VudF0udGV4dDsKKyAgICAgICAgICAgIHBhdHRlcm4gPSBJR05PUkFCTEVbY291bnRdLnBhdHRlcm47CisgICAgICAgICAgICBzdHJzcmNoLnNldFRhcmdldChuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCkpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgSUdOT1JBQkxFW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5pdGlhbGl6YXRpb24oKSB7CisgICAgICAgIFN0cmluZyAgcGF0dGVybjsKKyAgICAgICAgU3RyaW5nICB0ZXh0OworICAgICAgICBTdHJpbmcgIHRlbXAgPSAiYSI7CisgICAgICAgIFN0cmluZ1NlYXJjaCAgcmVzdWx0OworCisgICAgICAgIC8qIHNpbXBsZSB0ZXN0IG9uIHRoZSBwYXR0ZXJuIGNlIGNvbnN0cnVjdGlvbiAqLworICAgICAgICBwYXR0ZXJuID0gdGVtcCArIHRlbXA7CisgICAgICAgIHRleHQgPSB0ZW1wICsgdGVtcCArIHRlbXA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIG51bGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIG9wZW5pbmcgc2VhcmNoICIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLyogdGVzdGluZyBpZiBhbiBleHRyZW1lbHkgbGFyZ2UgcGF0dGVybiB3aWxsIGZhaWwgdGhlIGluaXRpYWxpemF0aW9uICovCisgICAgICAgIHBhdHRlcm4gPSAiIjsKKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IDUxMjsgY291bnQgKyspIHsKKyAgICAgICAgICAgIHBhdHRlcm4gKz0gdGVtcDsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiIgKyByZXN1bHQuZ2V0UGF0dGVybigpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBhbiBleHRyZW1lbHkgbGFyZ2UgcGF0dGVybiB3aWxsIGZhaWwgdGhlIGluaXRpYWxpemF0aW9uIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCAhPSByZXN1bHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogc3RyaW5nIHNlYXJjaCBvYmplY3QgZXhwZWN0ZWQgdG8gbWF0Y2ggaXRzZWxmIik7CisgICAgICAgIH0KKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3ROb3JtQ2Fub25pY2FsKCkgeworICAgICAgICBtX2VuX3VzXy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKE5PUk1DQU5PTklDQUxbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRDYW5vbmljYWxFcXVhbChOT1JNQ0FOT05JQ0FMW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKyAgICAgICAgbV9lbl91c18uc2V0RGVjb21wb3NpdGlvbihDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Tm9ybUV4YWN0KCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBtX2VuX3VzXy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgd2hpbGUgKEJBU0lDW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWwoQkFTSUNbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChOT1JNRVhBQ1RbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChOT1JNRVhBQ1RbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgICAgICBtX2VuX3VzXy5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChOT05OT1JNRVhBQ1RbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChOT05OT1JNRVhBQ1RbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RPcGVuQ2xvc2UoKSB7CisgICAgICAgIFN0cmluZ1NlYXJjaCAgICAgICAgICAgIHJlc3VsdDsKKyAgICAgICAgQnJlYWtJdGVyYXRvciAgICAgICAgICAgYnJlYWtpdGVyID0gbV9lbl93b3JkYnJlYWtlcl87CisgICAgICAgIFN0cmluZyAgICAgICAgICAgcGF0dGVybiA9ICIiOworICAgICAgICBTdHJpbmcgICAgICAgICAgIHRleHQgPSAiIjsKKyAgICAgICAgU3RyaW5nICAgICAgICAgICB0ZW1wICA9ICJhIjsKKyAgICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgIGNoYXJpdGVyPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCk7CisKKyAgICAgICAgLyogdGVzdGluZyBudWxsIGFyZ3VtZW50cyAqLworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG51bGwsIG51bGwpOworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBudWxsIGFyZ3VtZW50cyBzaG91bGQgcHJvZHVjZSBhbiBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IG51bGwgYXJndW1lbnRzIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgIAl9CisKKyAgICAgICAgY2hhcml0ZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgY2hhcml0ZXIsIG51bGwsIG51bGwpOworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBudWxsIGFyZ3VtZW50cyBzaG91bGQgcHJvZHVjZSBhbiBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IG51bGwgYXJndW1lbnRzIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgIAl9CisKKyAgICAgICAgdGV4dCAgPSBTdHJpbmcudmFsdWVPZigweDEpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIG51bGwsIG51bGwpOworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBFbXB0eSBwYXR0ZXJuIHNob3VsZCBwcm9kdWNlIGFuIGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogRW1wdHkgcGF0dGVybiBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXJpdGVyLnNldFRleHQodGV4dCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIGNoYXJpdGVyLCBudWxsLCBudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogRW1wdHkgcGF0dGVybiBzaG91bGQgcHJvZHVjZSBhbiBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IEVtcHR5IHBhdHRlcm4gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKworICAgICAgICB0ZXh0ID0gIiI7CisgICAgICAgIHBhdHRlcm4gPXRlbXA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IEVtcHR5IHRleHQgc2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBFbXB0eSB0ZXh0IGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhcml0ZXIuc2V0VGV4dCh0ZXh0KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgY2hhcml0ZXIsIG51bGwsIG51bGwpOworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBFbXB0eSB0ZXh0IHNob3VsZCBwcm9kdWNlIGFuIGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogRW1wdHkgdGV4dCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAJfQorCisgICAgICAgIHRleHQgKz0gdGVtcDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHRleHQpLCBudWxsLCBudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogbnVsbCBhcmd1bWVudHMgc2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBudWxsIGFyZ3VtZW50cyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAJfQorCisgICAgICAgIGNoYXJpdGVyLnNldFRleHQodGV4dCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIGNoYXJpdGVyLCBudWxsLCBudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogbnVsbCBhcmd1bWVudHMgc2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBudWxsIGFyZ3VtZW50cyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAJfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIG51bGwpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBudWxsIGJyZWFrIGl0ZXJhdG9yIGlzIHZhbGlkIGZvciBvcGVuaW5nIHNlYXJjaCIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgY2hhcml0ZXIsIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogbnVsbCBicmVhayBpdGVyYXRvciBpcyB2YWxpZCBmb3Igb3BlbmluZyBzZWFyY2giKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBudWxsIGJyZWFrIGl0ZXJhdG9yIGlzIHZhbGlkIGZvciBvcGVuaW5nIHNlYXJjaCIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgY2hhcml0ZXIsIExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogbnVsbCBicmVhayBpdGVyYXRvciBpcyB2YWxpZCBmb3Igb3BlbmluZyBzZWFyY2giKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcih0ZXh0KSwgbV9lbl91c18sIGJyZWFraXRlcik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3I6IEJyZWFrIGl0ZXJhdG9yIGlzIHZhbGlkIGZvciBvcGVuaW5nIHNlYXJjaCIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdTZWFyY2gocGF0dGVybiwgY2hhcml0ZXIsIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgICAgIGxvZ2xuKCJwYXR0ZXJuOiIgKyByZXN1bHQuZ2V0UGF0dGVybigpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvcjogQnJlYWsgaXRlcmF0b3IgaXMgdmFsaWQgZm9yIG9wZW5pbmcgc2VhcmNoIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0T3ZlcmxhcCgpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKE9WRVJMQVBbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhBdHRyaWJ1dGUoT1ZFUkxBUFtjb3VudF0sIGZhbHNlLCB0cnVlKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCBvdmVybGFwIHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKE5PTk9WRVJMQVBbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChOT05PVkVSTEFQW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgbm9uIG92ZXJsYXAgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0KKworICAgICAgICBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChjb3VudCA8IDEpIHsKKyAgICAgICAgICAgIFNlYXJjaERhdGEgc2VhcmNoID0gKE9WRVJMQVBbY291bnRdKTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gc2VhcmNoLnRleHQ7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiA9IHNlYXJjaC5wYXR0ZXJuOworCisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IGdldENvbGxhdG9yKHNlYXJjaC5jb2xsYXRvcik7CisgICAgICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHN0cnNyY2ggID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGV4dCksIGNvbGxhdG9yLCBudWxsKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImVycm9yIG9wZW4gU3RyaW5nU2VhcmNoIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdHJzcmNoLnNldE92ZXJsYXBwaW5nKHRydWUpOworICAgICAgICAgICAgaWYgKCFzdHJzcmNoLmlzT3ZlcmxhcHBpbmcoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIG92ZXJsYXAgb3B0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBzZWFyY2gpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzZWFyY2ggPSBOT05PVkVSTEFQW2NvdW50XTsKKyAgICAgICAgICAgIHN0cnNyY2guc2V0T3ZlcmxhcHBpbmcoZmFsc2UpOworICAgICAgICAgICAgaWYgKHN0cnNyY2guaXNPdmVybGFwcGluZygpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgb3ZlcmxhcCBvcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIHNlYXJjaCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RPdmVybGFwQ2Fub25pY2FsKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoT1ZFUkxBUENBTk9OSUNBTFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aEF0dHJpYnV0ZShPVkVSTEFQQ0FOT05JQ0FMW2NvdW50XSwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IG92ZXJsYXAgdGVzdCBudW1iZXIgJWQiICsgY291bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgIH0KKyAgICAgICAgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoTk9OT1ZFUkxBUFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydENhbm9uaWNhbEVxdWFsKE5PTk9WRVJMQVBDQU5PTklDQUxbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCBub24gb3ZlcmxhcCB0ZXN0IG51bWJlciAlZCIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorCisgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgMSkgeworICAgICAgICAgICAgICAgICAvKiBVQ2hhciAgICAgICB0ZW1wWzEyOF07CisgICAgICAgICAgICBjb25zdCBTZWFyY2hEYXRhICpzZWFyY2ggPSAmKE9WRVJMQVBDQU5PTklDQUxbY291bnRdKTsKKyAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsqLworICAgICAgICAgICAgU2VhcmNoRGF0YSBzZWFyY2ggPSBPVkVSTEFQQ0FOT05JQ0FMW2NvdW50XTsKKworICAgICAgICAgICAgLyp1X3VuZXNjYXBlKHNlYXJjaC50ZXh0LCB0ZW1wLCAxMjgpOworICAgICAgICAgICAgVW5pY29kZVN0cmluZyB0ZXh0OworICAgICAgICAgICAgdGV4dC5zZXRUbyh0ZW1wLCB1X3N0cmxlbih0ZW1wKSk7CisgICAgICAgICAgICB1X3VuZXNjYXBlKHNlYXJjaC5wYXR0ZXJuLCB0ZW1wLCAxMjgpOworICAgICAgICAgICAgVW5pY29kZVN0cmluZyBwYXR0ZXJuOworICAgICAgICAgICAgcGF0dGVybi5zZXRUbyh0ZW1wLCB1X3N0cmxlbih0ZW1wKSk7Ki8KKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yID0gZ2V0Q29sbGF0b3Ioc2VhcmNoLmNvbGxhdG9yKTsKKyAgICAgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChzZWFyY2gucGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKHNlYXJjaC50ZXh0KSwgY29sbGF0b3IsIG51bGwpOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgICAgICBzdHJzcmNoLnNldE92ZXJsYXBwaW5nKHRydWUpOworICAgICAgICAgICAgaWYgKHN0cnNyY2guaXNPdmVybGFwcGluZygpICE9IHRydWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBvdmVybGFwIG9wdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNlYXJjaCA9IE5PTk9WRVJMQVBDQU5PTklDQUxbY291bnRdOworICAgICAgICAgICAgc3Ryc3JjaC5zZXRPdmVybGFwcGluZyhmYWxzZSk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5pc092ZXJsYXBwaW5nKCkgIT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBvdmVybGFwIG9wdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgc2VhcmNoKSkgeworICAgICAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciAlZCIgKyBjb3VudCk7CisgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm4oKSB7CisgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKFBBVFRFUk5bMF0uc3RyZW5ndGgpOworICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2goUEFUVEVSTlswXS5wYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoUEFUVEVSTlswXS50ZXh0KSwgbV9lbl91c18sIG51bGwpOworCisgICAgICAgIC8qaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igb3BlbmluZyBzdHJpbmcgc2VhcmNoICVzIiwgdV9lcnJvck5hbWUoc3RhdHVzKSk7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChnZXRFQ29sbGF0aW9uU3RyZW5ndGgoVUNPTF9URVJUSUFSWSkpOworICAgICAgICAgICAgaWYgKHN0cnNyY2ggIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGRlbGV0ZSBzdHJzcmNoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Ki8KKworICAgICAgICBpZiAoc3Ryc3JjaC5nZXRQYXR0ZXJuKCkgIT0gUEFUVEVSTlswXS5wYXR0ZXJuKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBwYXR0ZXJuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgUEFUVEVSTlswXSkpIHsKKyAgICAgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2guc2V0UGF0dGVybihQQVRURVJOWzFdLnBhdHRlcm4pOworICAgICAgICBpZiAoUEFUVEVSTlsxXS5wYXR0ZXJuICE9IHN0cnNyY2guZ2V0UGF0dGVybigpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyBwYXR0ZXJuIik7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworCisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFBBVFRFUk5bMV0pKSB7CisgICAgICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBpZiAoc3Ryc3JjaCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4oUEFUVEVSTlswXS5wYXR0ZXJuKTsKKyAgICAgICAgaWYgKFBBVFRFUk5bMF0ucGF0dGVybiAhPSBzdHJzcmNoLmdldFBhdHRlcm4oKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgcGF0dGVybiIpOworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgaWYgKHN0cnNyY2ggIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgUEFUVEVSTlswXSkpIHsKKyAgICAgICAgICAgIG1fZW5fdXNfLnNldFN0cmVuZ3RoKENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgICAgIGlmIChzdHJzcmNoICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvKiBlbm9ybW91cyBwYXR0ZXJuIHNpemUgdG8gc2VlIGlmIHRoaXMgY3Jhc2hlcyAqLworICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICIiOworICAgICAgICBmb3IgKGludCB0ZW1wbGVuZ3RoID0gMDsgdGVtcGxlbmd0aCAhPSA1MTI7IHRlbXBsZW5ndGggKyspIHsKKyAgICAgICAgICAgIHBhdHRlcm4gKz0gMHg2MTsKKyAgICAgICAgfQorICAgICAgICB0cnl7CisgICAgICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgcGF0dGVybiB3aXRoIHNpemUgNTEyIik7CisgICAgICAgIH0KKworICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIGlmIChzdHJzcmNoICE9IG51bGwpIHsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm5DYW5vbmljYWwoKSB7CisgICAgICAgIC8vU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihQQVRURVJOQ0FOT05JQ0FMWzBdLnRleHQpOworICAgICAgICBtX2VuX3VzXy5zZXRTdHJlbmd0aChQQVRURVJOQ0FOT05JQ0FMWzBdLnN0cmVuZ3RoKTsKKyAgICAgICAgU3RyaW5nU2VhcmNoIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKFBBVFRFUk5DQU5PTklDQUxbMF0ucGF0dGVybiwgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFBBVFRFUk5DQU5PTklDQUxbMF0udGV4dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworCisgICAgICAgIGlmIChQQVRURVJOQ0FOT05JQ0FMWzBdLnBhdHRlcm4gIT0gc3Ryc3JjaC5nZXRQYXR0ZXJuKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHBhdHRlcm4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBQQVRURVJOQ0FOT05JQ0FMWzBdKSkgeworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4oUEFUVEVSTkNBTk9OSUNBTFsxXS5wYXR0ZXJuKTsKKyAgICAgICAgaWYgKFBBVFRFUk5DQU5PTklDQUxbMV0ucGF0dGVybiAhPSBzdHJzcmNoLmdldFBhdHRlcm4oKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgcGF0dGVybiIpOworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc3Ryc3JjaC5yZXNldCgpOworICAgICAgICBzdHJzcmNoLnNldENhbm9uaWNhbCh0cnVlKTsKKworICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBQQVRURVJOQ0FOT05JQ0FMWzFdKSkgeworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBzdHJzcmNoLnNldFBhdHRlcm4oUEFUVEVSTkNBTk9OSUNBTFswXS5wYXR0ZXJuKTsKKyAgICAgICAgaWYgKFBBVFRFUk5DQU5PTklDQUxbMF0ucGF0dGVybiAhPSBzdHJzcmNoLmdldFBhdHRlcm4oKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHNldHRpbmcgcGF0dGVybiIpOworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBzdHJzcmNoLnJlc2V0KCk7CisgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBQQVRURVJOQ0FOT05JQ0FMWzBdKSkgeworICAgICAgICAgICAgbV9lbl91c18uc2V0U3RyZW5ndGgoQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVzZXQoKSB7CisgICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoImZpc2ggZmlzaCIpOworICAgICAgICBTdHJpbmcgcGF0dGVybiA9ICJzIjsKKworICAgICAgICBTdHJpbmdTZWFyY2ggIHN0cnNyY2ggPSBuZXcgU3RyaW5nU2VhcmNoKHBhdHRlcm4sIHRleHQsIG1fZW5fdXNfLCBudWxsKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRPdmVybGFwcGluZyh0cnVlKTsKKyAgICAgICAgc3Ryc3JjaC5zZXRDYW5vbmljYWwodHJ1ZSk7CisgICAgICAgIHN0cnNyY2guc2V0SW5kZXgoOSk7CisgICAgICAgIHN0cnNyY2gucmVzZXQoKTsKKyAgICAgICAgaWYgKHN0cnNyY2guaXNDYW5vbmljYWwoKSB8fCBzdHJzcmNoLmlzT3ZlcmxhcHBpbmcoKSB8fAorICAgICAgICAgICAgc3Ryc3JjaC5nZXRJbmRleCgpICE9IDAgfHwgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpICE9IDAgfHwKKyAgICAgICAgICAgIHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgcmVzZXR0aW5nIHN0cmluZyBzZWFyY2giKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnNyY2gucHJldmlvdXMoKTsKKyAgICAgICAgaWYgKHN0cnNyY2guZ2V0TWF0Y2hTdGFydCgpICE9IDcgfHwgc3Ryc3JjaC5nZXRNYXRjaExlbmd0aCgpICE9IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciByZXNldHRpbmcgc3RyaW5nIHNlYXJjaFxuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2V0TWF0Y2goKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChNQVRDSFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBTZWFyY2hEYXRhICAgICBzZWFyY2ggPSBNQVRDSFtjb3VudF07CisgICAgICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2goc2VhcmNoLnBhdHRlcm4sIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihzZWFyY2gudGV4dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9lbl91c18sIG51bGwpOworCisgICAgICAgICAgICBpbnQgc2l6ZSA9IDA7CisgICAgICAgICAgICB3aGlsZSAoc2VhcmNoLm9mZnNldFtzaXplXSAhPSAtMSkgeworICAgICAgICAgICAgICAgIHNpemUgKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdHJzcmNoLmZpcnN0KCkgIT0gc2VhcmNoLm9mZnNldFswXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIGZpcnN0IG1hdGNoIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3Ryc3JjaC5sYXN0KCkgIT0gc2VhcmNoLm9mZnNldFtzaXplIC0xXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIGxhc3QgbWF0Y2giKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChpbmRleCA8IHNpemUpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggKyAyIDwgc2l6ZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3Ryc3JjaC5mb2xsb3dpbmcoc2VhcmNoLm9mZnNldFtpbmRleCArIDJdIC0gMSkgIT0gc2VhcmNoLm9mZnNldFtpbmRleCArIDJdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBmb2xsb3dpbmcgbWF0Y2ggYXQgaW5kZXggIiArIChzZWFyY2gub2Zmc2V0W2luZGV4ICsgMl0tMSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpbmRleCArIDEgPCBzaXplKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdHJzcmNoLnByZWNlZGluZyhzZWFyY2gub2Zmc2V0W2luZGV4ICsgMV0gKyBzZWFyY2guc2l6ZVtpbmRleCArIDFdICsgMSkgIT0gc2VhcmNoLm9mZnNldFtpbmRleCArIDFdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBwcmVjZWVkaW5nIG1hdGNoIGF0IGluZGV4ICIgKyAoc2VhcmNoLm9mZnNldFtpbmRleCArIDFdICsgMSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGluZGV4ICs9IDI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdHJzcmNoLmZvbGxvd2luZyhzZWFyY2gudGV4dC5sZW5ndGgoKSkgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBleHBlY3Rpbmcgb3V0IG9mIGJvdW5kcyBtYXRjaCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0cnNyY2gucHJlY2VkaW5nKDApICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZXhwZWN0aW5nIG91dCBvZiBib3VuZHMgbWF0Y2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U3RyZW5ndGgoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChTVFJFTkdUSFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoY291bnQgPT0gMykgY291bnQgKys7CisgICAgICAgICAgICBpZiAoIWFzc2VydEVxdWFsKFNUUkVOR1RIW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFN0cmVuZ3RoQ2Fub25pY2FsKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoU1RSRU5HVEhDQU5PTklDQUxbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKGNvdW50ID09IDMpIGNvdW50ICsrOworICAgICAgICAgICAgaWYgKCFhc3NlcnRDYW5vbmljYWxFcXVhbChTVFJFTkdUSENBTk9OSUNBTFtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFN1cHBsZW1lbnRhcnkoKSB7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChTVVBQTEVNRU5UQVJZW2NvdW50XS50ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghYXNzZXJ0RXF1YWwoU1VQUExFTUVOVEFSWVtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTdXBwbGVtZW50YXJ5Q2Fub25pY2FsKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoU1VQUExFTUVOVEFSWUNBTk9OSUNBTFtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoIWFzc2VydENhbm9uaWNhbEVxdWFsKFNVUFBMRU1FTlRBUllDQU5PTklDQUxbY291bnRdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCB0ZXN0IG51bWJlciIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RUZXh0KCkgeworICAgICAgICBTZWFyY2hEYXRhIFRFWFRbXSA9IHsKKyAgICAgICAgICAgIG5ldyBTZWFyY2hEYXRhKCJ0aGUgZm94eSBicm93biBmb3giLCAiZm94IiwgbnVsbCwgQ29sbGF0b3IuVEVSVElBUlksIG51bGwsIG5ldyBpbnRbXSB7NCwgMTUsIC0xfSwgbmV3IGludFtdIHszLCAzfSksCisgICAgICAgICAgICBuZXcgU2VhcmNoRGF0YSgidGhlIHF1aWNrIGJyb3duIGZveCIsICJmb3giLCBudWxsLCBDb2xsYXRvci5URVJUSUFSWSwgbnVsbCwgbmV3IGludFtdIHsxNiwgLTF9LCBuZXcgaW50W10gezN9KSwKKyAgICAgICAgICAgIG5ldyBTZWFyY2hEYXRhKG51bGwsIG51bGwsIG51bGwsIENvbGxhdG9yLlRFUlRJQVJZLCBudWxsLCBuZXcgaW50W10gey0xfSwgbmV3IGludFtdezB9KQorICAgICAgICB9OworICAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0ID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFRFWFRbMF0udGV4dCk7CisgICAgICAgIFN0cmluZ1NlYXJjaCBzdHJzcmNoID0gbmV3IFN0cmluZ1NlYXJjaChURVhUWzBdLnBhdHRlcm4sIHQsIG1fZW5fdXNfLCBudWxsKTsKKworICAgICAgICBpZiAoIXQuZXF1YWxzKHN0cnNyY2guZ2V0VGFyZ2V0KCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyB0ZXh0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgVEVYVFswXSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCBhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2giKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHQgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoVEVYVFsxXS50ZXh0KTsKKyAgICAgICAgc3Ryc3JjaC5zZXRUYXJnZXQodCk7CisgICAgICAgIGlmICghdC5lcXVhbHMoc3Ryc3JjaC5nZXRUYXJnZXQoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHRleHQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFRFWFRbMV0pKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGV4dENhbm9uaWNhbCgpIHsKKyAgICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgdCA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihURVhUQ0FOT05JQ0FMWzBdLnRleHQpOworICAgICAgICBTdHJpbmdTZWFyY2ggc3Ryc3JjaCA9IG5ldyBTdHJpbmdTZWFyY2goVEVYVENBTk9OSUNBTFswXS5wYXR0ZXJuLCB0LCBtX2VuX3VzXywgbnVsbCk7CisgICAgICAgIHN0cnNyY2guc2V0Q2Fub25pY2FsKHRydWUpOworCisgICAgICAgIGlmICghdC5lcXVhbHMoc3Ryc3JjaC5nZXRUYXJnZXQoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHRleHQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWFzc2VydEVxdWFsV2l0aFN0cmluZ1NlYXJjaChzdHJzcmNoLCBURVhUQ0FOT05JQ0FMWzBdKSkgeworICAgICAgICAgICAgc3Ryc3JjaCA9IG51bGw7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0ID0gbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFRFWFRDQU5PTklDQUxbMV0udGV4dCk7CisgICAgICAgIHN0cnNyY2guc2V0VGFyZ2V0KHQpOworICAgICAgICBpZiAoIXQuZXF1YWxzKHN0cnNyY2guZ2V0VGFyZ2V0KCkpKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3Igc2V0dGluZyB0ZXh0Iik7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghYXNzZXJ0RXF1YWxXaXRoU3RyaW5nU2VhcmNoKHN0cnNyY2gsIFRFWFRDQU5PTklDQUxbMV0pKSB7CisgICAgICAgICAgICBzdHJzcmNoID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHQgPSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoVEVYVENBTk9OSUNBTFswXS50ZXh0KTsKKyAgICAgICAgc3Ryc3JjaC5zZXRUYXJnZXQodCk7CisgICAgICAgIGlmICghdC5lcXVhbHMoc3Ryc3JjaC5nZXRUYXJnZXQoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzZXR0aW5nIHRleHQiKTsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2goc3Ryc3JjaCwgVEVYVENBTk9OSUNBTFswXSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBhdCBhc3NlcnRFcXVhbFdpdGhTdHJpbmdTZWFyY2giKTsKKyAgICAgICAgICAgIHN0cnNyY2ggPSBudWxsOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFZhcmlhYmxlKCkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBtX2VuX3VzXy5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQodHJ1ZSk7CisgICAgICAgIHdoaWxlIChWQVJJQUJMRVtjb3VudF0udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBsb2dsbigidmFyaWFibGUiICsgY291bnQpOworICAgICAgICAgICAgaWYgKCFhc3NlcnRFcXVhbChWQVJJQUJMRVtjb3VudF0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGF0IHRlc3QgbnVtYmVyICIgKyBjb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgfQorICAgICAgICBtX2VuX3VzXy5zZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoZmFsc2UpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RWYXJpYWJsZUNhbm9uaWNhbCgpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgbV9lbl91c18uc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKHRydWUpOworICAgICAgICB3aGlsZSAoVkFSSUFCTEVbY291bnRdLnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gbG9nbG4oInZhcmlhYmxlICIgKyBjb3VudCk7CisgICAgICAgICAgICBpZiAoIWFzc2VydENhbm9uaWNhbEVxdWFsKFZBUklBQkxFW2NvdW50XSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgYXQgdGVzdCBudW1iZXIgIiArIGNvdW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICB9CisgICAgICAgIG1fZW5fdXNfLnNldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZChmYWxzZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFN1YkNsYXNzKCkKKyAgICB7CisgICAgICAgIGNsYXNzIFRlc3RTZWFyY2ggZXh0ZW5kcyBTZWFyY2hJdGVyYXRvcgorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgcGF0dGVybjsKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0OworCisgICAgICAgICAgICBUZXN0U2VhcmNoKFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHRhcmdldCwgQnJlYWtJdGVyYXRvciBicmVha2VyLAorICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcGF0dGVybikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdXBlcih0YXJnZXQsIGJyZWFrZXIpOworICAgICAgICAgICAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodGFyZ2V0VGV4dC5nZXRJbmRleCgpICE9IHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSkgeworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHRhcmdldFRleHQuY3VycmVudCgpKTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5uZXh0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRleHQgPSBidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHRhcmdldFRleHQuZ2V0QmVnaW5JbmRleCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlTmV4dChpbnQgc3RhcnQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IG1hdGNoID0gdGV4dC5pbmRleE9mKHBhdHRlcm4sIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICBpZiAobWF0Y2ggPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldFRleHQubGFzdCgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChtYXRjaCk7CisgICAgICAgICAgICAgICAgc2V0TWF0Y2hMZW5ndGgocGF0dGVybi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIGludCBoYW5kbGVQcmV2aW91cyhpbnQgc3RhcnQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IG1hdGNoID0gdGV4dC5sYXN0SW5kZXhPZihwYXR0ZXJuLCBzdGFydCAtIDEpOworICAgICAgICAgICAgICAgIGlmIChtYXRjaCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgobWF0Y2gpOworICAgICAgICAgICAgICAgIHNldE1hdGNoTGVuZ3RoKHBhdHRlcm4ubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGludCBnZXRJbmRleCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IHRhcmdldFRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0IDwgMCB8fCByZXN1bHQgPj0gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFRlc3RTZWFyY2ggc2VhcmNoID0gbmV3IFRlc3RTZWFyY2goCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKCJhYmMgYWJjZCBhYmMiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCAiYWJjIik7CisgICAgICAgIGludCBleHBlY3RlZFtdID0gezAsIDQsIDl9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKHNlYXJjaC5uZXh0KCkgIT0gZXhwZWN0ZWRbaV0pIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBuZXh0IG1hdGNoIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc2VhcmNoLmdldE1hdGNoTGVuZ3RoKCkgIT0gc2VhcmNoLnBhdHRlcm4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgZ2V0dGluZyBuZXh0IG1hdGNoIGxlbmd0aCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChzZWFyY2gubmV4dCgpICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzaG91bGQgaGF2ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiIpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSBleHBlY3RlZC5sZW5ndGggLSAxOyBpID49IDA7IGkgLS0pIHsKKyAgICAgICAgICAgIGlmIChzZWFyY2gucHJldmlvdXMoKSAhPSBleHBlY3RlZFtpXSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIG5leHQgbWF0Y2giKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzZWFyY2guZ2V0TWF0Y2hMZW5ndGgoKSAhPSBzZWFyY2gucGF0dGVybi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBnZXR0aW5nIG5leHQgbWF0Y2ggbGVuZ3RoIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlYXJjaC5wcmV2aW91cygpICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBzaG91bGQgaGF2ZSByZWFjaGVkIHRoZSBzdGFydCBvZiB0aGUgaXRlcmF0aW9uIik7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlYXJjaC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VhcmNoL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MjIzOTdhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlYXJjaC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorVGVzdHMgZm9yIHRoZSBpbnRlcm5hdGlvbmFsIHNlYXJjaCBjbGFzc2VzLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZWN1cml0eS5wb2xpY3kgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VjdXJpdHkucG9saWN5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2NDk4M2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VjdXJpdHkucG9saWN5CkBAIC0wLDAgKzEsMzQgQEAKKy8vIHBvbGljaWVzIG5lZWRlZCB0byBydW4gdGVzdHMKK2dyYW50IC8vIGNvZGViYXNlICJmaWxlOiR7dXNlci5kaXJ9L2ljdTRqdGVzdHMuamFyIgoreworCS8vIHRlbXBvcmFyeSBmb3IgZGVidWdnaW5nCisgICAgICAgIC8vIHBlcm1pc3Npb24gamF2YS5sYW5nLlJ1bnRpbWVQZXJtaXNzaW9uICJnZXRQcm90ZWN0aW9uRG9tYWluIjsKKworCS8vIGlibSAxNDEgb24gaWJtIHhwIGNhbid0IHVzZSByZWZsZWN0aW9uCisJcGVybWlzc2lvbiBqYXZhLmxhbmcuUnVudGltZVBlcm1pc3Npb24gImFjY2Vzc0RlY2xhcmVkTWVtYmVycyI7CisKKwkvLyBuZWVkZWQgZm9yIExvY2FsZS5zZXREZWZhdWx0LCBvbmx5IHVzZWQgaW4gdGVzdHMgYW5kIGRlbW9zCisJcGVybWlzc2lvbiBqYXZhLnV0aWwuUHJvcGVydHlQZXJtaXNzaW9uICJ1c2VyLmxhbmd1YWdlIiwgIndyaXRlIjsKKworCS8vIG5lZWRlZCBmb3IgVGVzdFV0aWxzCisJcGVybWlzc2lvbiBqYXZhLnV0aWwuUHJvcGVydHlQZXJtaXNzaW9uICJJQ1VEYXRhUGF0aCIsICJyZWFkIjsKKwlwZXJtaXNzaW9uIGphdmEudXRpbC5Qcm9wZXJ0eVBlcm1pc3Npb24gInVzZXIuZGlyIiwgInJlYWQiOworCisJLy8gdGltZSB6b25lIHRlc3RzCisJcGVybWlzc2lvbiBqYXZhLnV0aWwuUHJvcGVydHlQZXJtaXNzaW9uICJ1c2VyLnRpbWV6b25lIiwgInJlYWQiOworfTsKKworLy8gdGhlcmUgbXVzdCBiZSBhIHdheSBmb3IgY29kZSBpbiBvbmUgamFyIGZpbGUgdG8gY2FsbCBjb2RlIGluIGFub3RoZXIgamFyCisvLyBmaWxlIGFuZCBnaXZlIHRoZSBjYWxsZWQgY29kZSBwZXJtaXNzaW9uIHRvIHJlYWQgdGhlIGNhbGxpbmcgY29kZSdzCisvLyBqYXIuICB0aGV5J3JlIGluIGRpZmZlcmVudCBwcm90ZWN0aW9uIGRvbWFpbnMgZGVzcGl0ZSBiZWluZyBvbiB0aGUKKy8vIHNhbWUgY2xhc3NwYXRoIGFuZCBiZWluZyBsb2FkZWQgYnkgdGhlIHNhbWUgY2xhc3MgbG9hZGVyLCBzbyB0aGUgY2xhc3MKKy8vIGxvYWRlciBkb2Vzbid0IGRpc2FtYmlndWF0ZSB3aGljaCBwcm90ZWN0aW9uIGRvbWFpbiB3ZSdyZSB1c2luZy4gaXQncworLy8gbm90IGVhc3kgdG8gZmlndXJlIG91dCB0aGUgc2VjdXJpdHkgZG9jcywgc2lnaC4KKy8vCisvLyB0aGlzIGlzIHNvIElDVURhdGEgKGluIGljdTRqLmphciksIGNhbGxlZCBmcm9tIHRlc3QgY29kZSAoaW4gaWN1NGp0ZXN0cy5qYXIpCisvLyBjYW4gcmVhZCB0ZXN0IHJlc291cmNlIGZpbGVzIChpbiBpY3U0anRlc3RzLmphciIKKy8vCitncmFudCBjb2RlYmFzZSAiZmlsZToke3VzZXIuZGlyfS9pY3U0ai5qYXIiCit7CisJcGVybWlzc2lvbiBqYXZhLmlvLkZpbGVQZXJtaXNzaW9uICIkey99JHt1c2VyLmRpcn0key99aWN1NGp0ZXN0cy5qYXIiLCAicmVhZCI7Cit9OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvQ2FsZW5kYXJUZXN0cy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9DYWxlbmRhclRlc3RzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjAyZWZiNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvQ2FsZW5kYXJUZXN0cy5qYXZhCkBAIC0wLDAgKzEsMTk3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGU7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQnVkZGhpc3RDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29wdGljQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5FdGhpb3BpY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLklzbGFtaWNDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIENhbGVuZGFyVGVzdHMKK3sKKyAgICBzdGF0aWMgY2xhc3MgQ2FsZW5kYXJIYW5kbGVyIGltcGxlbWVudHMgU2VyaWFsaXphYmxlVGVzdC5IYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBUaW1lWm9uZSBwc3QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9Mb3NfQW5nZWxlcyIpOworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsZW5kYXJzW10gPSBuZXcgQ2FsZW5kYXJbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0gPSBDYWxlbmRhci5nZXRJbnN0YW5jZShwc3QsIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY2FsZW5kYXJzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBDYWxlbmRhciBjYWxfYSA9IChDYWxlbmRhcikgYTsKKyAgICAgICAgICAgIENhbGVuZGFyIGNhbF9iID0gKENhbGVuZGFyKSBiOworICAgICAgICAgICAgbG9uZyBub3cgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FsX2Euc2V0VGltZUluTWlsbGlzKG5vdyk7CisgICAgICAgICAgICBjYWxfYS5yb2xsKENhbGVuZGFyLk1PTlRILCAxKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FsX2Iuc2V0VGltZUluTWlsbGlzKG5vdyk7CisgICAgICAgICAgICBjYWxfYi5yb2xsKENhbGVuZGFyLk1PTlRILCAxKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNhbF9hLmdldFRpbWUoKS5lcXVhbHMoY2FsX2EuZ2V0VGltZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBCdWRkaGlzdENhbGVuZGFySGFuZGxlciBleHRlbmRzIENhbGVuZGFySGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgVGltZVpvbmUgdHN0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFzaWEvQmFuZ2tvayIpOworICAgICAgICAgICAgQnVkZGhpc3RDYWxlbmRhciBjYWxlbmRhcnNbXSA9IG5ldyBCdWRkaGlzdENhbGVuZGFyW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gbmV3IEJ1ZGRoaXN0Q2FsZW5kYXIodHN0LCBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hpbmVzZUNhbGVuZGFySGFuZGxlciBleHRlbmRzIENhbGVuZGFySGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgVGltZVpvbmUgY3N0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFzaWEvU2hhbmdoYWkiKTsKKyAgICAgICAgICAgIENoaW5lc2VDYWxlbmRhciBjYWxlbmRhcnNbXSA9IG5ldyBDaGluZXNlQ2FsZW5kYXJbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0gPSBuZXcgQ2hpbmVzZUNhbGVuZGFyKGNzdCwgbG9jYWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjYWxlbmRhcnM7IAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBDb3B0aWNDYWxlbmRhckhhbmRsZXIgZXh0ZW5kcyBDYWxlbmRhckhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIFRpbWVab25lIGFzdCA9IFRpbWVab25lLmdldFRpbWVab25lKCJFdXJvcGUvQXRoZW5zIik7CisgICAgICAgICAgICBDb3B0aWNDYWxlbmRhciBjYWxlbmRhcnNbXSA9IG5ldyBDb3B0aWNDYWxlbmRhcltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tpXSA9IG5ldyBDb3B0aWNDYWxlbmRhcihhc3QsIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY2FsZW5kYXJzOyAKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBFdGhpb3BpY0NhbGVuZGFySGFuZGxlciBleHRlbmRzIENhbGVuZGFySGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgVGltZVpvbmUgYXN0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFmcmljYS9BZGRpc19BYmFiYSIpOworICAgICAgICAgICAgRXRoaW9waWNDYWxlbmRhciBjYWxlbmRhcnNbXSA9IG5ldyBFdGhpb3BpY0NhbGVuZGFyW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gbmV3IEV0aGlvcGljQ2FsZW5kYXIoYXN0LCBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyczsgCisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgR3JlZ29yaWFuQ2FsZW5kYXJIYW5kbGVyIGV4dGVuZHMgQ2FsZW5kYXJIYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBUaW1lWm9uZSBwc3QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9Mb3NfQW5nZWxlcyIpOworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsZW5kYXJzW10gPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXJbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBjYWxlbmRhcnNbaV0gPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIocHN0LCBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyczsgCisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgSGVicmV3Q2FsZW5kYXJIYW5kbGVyIGV4dGVuZHMgQ2FsZW5kYXJIYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBUaW1lWm9uZSBqc3QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQXNpYS9KZXJ1c2FsZW0iKTsKKyAgICAgICAgICAgIEhlYnJld0NhbGVuZGFyIGNhbGVuZGFyc1tdID0gbmV3IEhlYnJld0NhbGVuZGFyW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gbmV3IEhlYnJld0NhbGVuZGFyKGpzdCwgbG9jYWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjYWxlbmRhcnM7IAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBJc2xhbWljQ2FsZW5kYXJIYW5kbGVyIGV4dGVuZHMgQ2FsZW5kYXJIYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKSB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBUaW1lWm9uZSBjc3QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQWZyaWNhL0NhaXJvIik7CisgICAgICAgICAgICBJc2xhbWljQ2FsZW5kYXIgY2FsZW5kYXJzW10gPSBuZXcgSXNsYW1pY0NhbGVuZGFyW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgY2FsZW5kYXJzW2ldID0gbmV3IElzbGFtaWNDYWxlbmRhcihjc3QsIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY2FsZW5kYXJzOyAKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBKYXBhbmVzZUNhbGVuZGFySGFuZGxlciBleHRlbmRzIENhbGVuZGFySGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgVGltZVpvbmUganN0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFzaWEvVG9reW8iKTsKKyAgICAgICAgICAgIEphcGFuZXNlQ2FsZW5kYXIgY2FsZW5kYXJzW10gPSBuZXcgSmFwYW5lc2VDYWxlbmRhcltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyc1tpXSA9IG5ldyBKYXBhbmVzZUNhbGVuZGFyKGpzdCwgbG9jYWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjYWxlbmRhcnM7IAorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIC8vbm90aGluZyBuZWVkZWQgeWV0Li4uCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9Db21wYXRpYmlsaXR5VGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9Db21wYXRpYmlsaXR5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4YmZhZmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL0NvbXBhdGliaWxpdHlUZXN0LmphdmEKQEAgLTAsMCArMSwyNDggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNlcmlhbGl6YWJsZTsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5uZXQuSmFyVVJMQ29ubmVjdGlvbjsKK2ltcG9ydCBqYXZhLm5ldC5VUkw7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLmphci5KYXJFbnRyeTsKK2ltcG9ydCBqYXZhLnV0aWwuamFyLkphckZpbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UYXJnZXQ7CisvL2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGUuU2VyaWFsaXphYmxlVGVzdDsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIENvbXBhdGliaWxpdHlUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAgICBwdWJsaWMgY2xhc3MgRm9sZGVyVGFyZ2V0IGV4dGVuZHMgVGFyZ2V0CisgICAgeworICAgICAgICBwcml2YXRlIFRhcmdldCBoZWFkID0gbmV3IFRhcmdldChudWxsKTsKKyAgICAgICAgcHJpdmF0ZSBUYXJnZXQgdGFpbCA9IGhlYWQ7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgRm9sZGVyVGFyZ2V0KFN0cmluZyBuYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlcihuYW1lKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgYWRkKFN0cmluZyBjbGFzc05hbWUsIElucHV0U3RyZWFtIGlzKQorICAgICAgICB7CisgICAgICAgICAgICBIYW5kbGVyVGFyZ2V0IG5ld1RhcmdldCA9IG5ldyBIYW5kbGVyVGFyZ2V0KGNsYXNzTmFtZSwgaXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0YWlsLnNldE5leHQobmV3VGFyZ2V0KTsKKyAgICAgICAgICAgIHRhaWwgPSBuZXdUYXJnZXQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgICAgIHBhcmFtcy5pbmRlbnRMZXZlbCArPSAxOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKFRhcmdldCB0YXJnZXQgPSBoZWFkLmdldE5leHQoKTsgdGFyZ2V0ICE9IG51bGw7IHRhcmdldCA9IHRhcmdldC5nZXROZXh0KCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGFyZ2V0LnJ1bigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwYXJhbXMuaW5kZW50TGV2ZWwgLT0gMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBjbGFzcyBIYW5kbGVyVGFyZ2V0IGV4dGVuZHMgVGFyZ2V0CisgICAgeworICAgICAgICBwcm90ZWN0ZWQgU2VyaWFsaXphYmxlVGVzdC5IYW5kbGVyIGhhbmRsZXIgPSBudWxsOworICAgICAgICBwcm90ZWN0ZWQgSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0gPSBudWxsOworICAgICAgICAKKyAgICAgICAgcHVibGljIEhhbmRsZXJUYXJnZXQoU3RyaW5nIG5hbWUsIElucHV0U3RyZWFtIGlzKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlcihuYW1lKTsKKyAgICAgICAgICAgIGlucHV0U3RyZWFtID0gaXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRlKCkKKyAgICAgICAgeworICAgICAgICAgICAgaGFuZGxlciA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0SGFuZGxlcihuYW1lKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGhhbmRsZXIgIT0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24KKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHBhcmFtcy5pbkRvY01vZGUoKSkgeworICAgICAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZXhlY3V0ZQorICAgICAgICAgICAgfSBlbHNlIGlmICghcGFyYW1zLnN0YWNrLmluY2x1ZGVkKSB7CisgICAgICAgICAgICAgICAgKytwYXJhbXMuaW52YWxpZENvdW50OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwYXJhbXMudGVzdENvdW50ICs9IDE7CisgICAgCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gaW4gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICAgICAgICAgICAgICBPYmplY3QgaW5wdXRPYmplY3RzW10gPSAoT2JqZWN0W10pIGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHRlc3RPYmplY3RzW10gPSBoYW5kbGVyLmdldFRlc3RPYmplY3RzKCk7CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gcGFzc2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGluLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgIGlucHV0U3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBhZGQgZXF1YWxpdHkgdGVzdC4uLgorICAgICAgICAgICAgICAgICAgICAvLyBUaGUgY29tbWVudGVkIG91dCBjb2RlIGJlbG93IGRvZXMgdGhhdCwKKyAgICAgICAgICAgICAgICAgICAgLy8gYnV0IHNvbWUgdGVzdCBvYmplY3RzIGRvbid0IGRlZmluZSBhbiBlcXVhbHMoKSBtZXRob2QsCisgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUgZGVmYXVsdCBtZXRob2QgaXMgdGhlIHNhbWUgYXMgdGhlICI9PSIgb3BlcmF0b3IuLi4KKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0T2JqZWN0cy5sZW5ndGg7IGkgKz0gMSkgeworICAgIC8vICAgICAgICAgICAgICAgICAgICBpZiAoISBpbnB1dE9iamVjdHNbaV0uZXF1YWxzKHRlc3RPYmplY3RzW2ldKSkgeworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIklucHV0IG9iamVjdCAiICsgaSArICIgZmFpbGVkIGVxdWFsaXR5IHRlc3QuIik7CisgICAgLy8gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEgaGFuZGxlci5oYXNTYW1lQmVoYXZpb3IoaW5wdXRPYmplY3RzW2ldLCB0ZXN0T2JqZWN0c1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJubG4oIklucHV0IG9iamVjdCAiICsgaSArICIgZmFpbGVkIGJlaGF2aW9yIHRlc3QuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Y2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCB0aGUgZGF0YS4gIitlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBUYXJnZXQgZ2V0RmlsZVRhcmdldHMoVVJMIGZpbGVVUkwpCisgICAgeworICAgICAgICBGaWxlIHRvcERpciA9IG5ldyBGaWxlKGZpbGVVUkwuZ2V0UGF0aCgpKTsKKyAgICAgICAgRmlsZSBkYXRhRGlyc1tdID0gdG9wRGlyLmxpc3RGaWxlcygpOworICAgICAgICBGb2xkZXJUYXJnZXQgdGFyZ2V0ID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGQgPSAwOyBkIDwgZGF0YURpcnMubGVuZ3RoOyBkICs9IDEpIHsKKyAgICAgICAgICAgIEZpbGUgZGF0YURpciA9IGRhdGFEaXJzW2RdOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZGF0YURpci5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgRm9sZGVyVGFyZ2V0IG5ld1RhcmdldCA9IG5ldyBGb2xkZXJUYXJnZXQoZGF0YURpci5nZXROYW1lKCkpOworICAgICAgICAgICAgICAgIEZpbGUgZmlsZXNbXSA9IGRhdGFEaXIubGlzdEZpbGVzKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbmV3VGFyZ2V0LnNldE5leHQodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICB0YXJnZXQgPSBuZXdUYXJnZXQ7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICBGaWxlIGZpbGUgPSBmaWxlc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gZmlsZS5nZXROYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGludCBpeCA9IGZpbGVuYW1lLmluZGV4T2YoIi5kYXQiKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChpeCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjbGFzc05hbWUgPSBmaWxlbmFtZS5zdWJzdHJpbmcoMCwgaXgpOworICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXM7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGZpbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5hZGQoY2xhc3NOYW1lLCBpcyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChGaWxlTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFeGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFRhcmdldCBnZXRKYXJUYXJnZXRzKFVSTCBqYXJVUkwpCisgICAgeworICAgICAgICBTdHJpbmcgcHJlZml4ID0gamFyVVJMLmdldFBhdGgoKTsKKyAgICAgICAgU3RyaW5nIGN1cnJlbnREaXIgPSBudWxsOworICAgICAgICBpbnQgaXggPSBwcmVmaXguaW5kZXhPZigiIS8iKTsKKyAgICAgICAgSmFyRmlsZSBqYXJGaWxlOworICAgICAgICBGb2xkZXJUYXJnZXQgdGFyZ2V0ID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGlmIChpeCA+PSAwKSB7CisgICAgICAgICAgICBwcmVmaXggPSBwcmVmaXguc3Vic3RyaW5nKGl4ICsgMik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBKYXJVUkxDb25uZWN0aW9uIGNvbm4gPSAoSmFyVVJMQ29ubmVjdGlvbikgamFyVVJMLm9wZW5Db25uZWN0aW9uKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGphckZpbGUgPSBjb25uLmdldEphckZpbGUoKTsKKworICAgICAgICAgICAgRW51bWVyYXRpb24gZW50cmllcyA9IGphckZpbGUuZW50cmllcygpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoZW50cmllcy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIEphckVudHJ5IGVudHJ5ID0gKEphckVudHJ5KWVudHJpZXMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGVudHJ5LmdldE5hbWUoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKHByZWZpeCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoISBlbnRyeS5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHggPSBuYW1lLmxhc3RJbmRleE9mKCIvIik7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGlyTmFtZSAgPSBuYW1lLnN1YnN0cmluZygxLCBkeCk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBuYW1lLnN1YnN0cmluZyhkeCArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISBkaXJOYW1lLmVxdWFscyhjdXJyZW50RGlyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnREaXIgPSBkaXJOYW1lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbGRlclRhcmdldCBuZXdUYXJnZXQgPSBuZXcgRm9sZGVyVGFyZ2V0KGN1cnJlbnREaXIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1RhcmdldC5zZXROZXh0KHRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gbmV3VGFyZ2V0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeHggPSBmaWxlbmFtZS5pbmRleE9mKCIuZGF0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4eCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY2xhc3NOYW1lID0gZmlsZW5hbWUuc3Vic3RyaW5nKDAsIHh4KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5hZGQoY2xhc3NOYW1lLCBqYXJGaWxlLmdldElucHV0U3RyZWFtKGVudHJ5KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiamFyIGVycm9yOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgVGFyZ2V0IGdldFRhcmdldHMoU3RyaW5nIHRhcmdldE5hbWUpCisgICAgeworICAgICAgICBVUkwgZGF0YVVSTCA9IGdldENsYXNzKCkuZ2V0UmVzb3VyY2UoImRhdGEiKTsKKyAgICAgICAgU3RyaW5nIHByb3RvY29sID0gZGF0YVVSTC5nZXRQcm90b2NvbCgpOworICAgICAgICAKKyAgICAgICAgaWYgKHByb3RvY29sLmVxdWFscygiamFyIikpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRKYXJUYXJnZXRzKGRhdGFVUkwpOworICAgICAgICB9IGVsc2UgaWYgKHByb3RvY29sLmVxdWFscygiZmlsZSIpKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0RmlsZVRhcmdldHMoZGF0YVVSTCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRG9uJ3Qga25vdyBob3cgdG8gdGVzdCAiICsgZGF0YVVSTC5nZXRQYXRoKCkpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgQ29tcGF0aWJpbGl0eVRlc3QgdGVzdCA9IG5ldyBDb21wYXRpYmlsaXR5VGVzdCgpOworICAgICAgICAKKyAgICAgICAgdGVzdC5ydW4oYXJncyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9Db3ZlcmFnZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvQ292ZXJhZ2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRlZTNlYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvQ292ZXJhZ2VUZXN0LmphdmEKQEAgLTAsMCArMSwyMTIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNlcmlhbGl6YWJsZTsKKworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5GaWVsZDsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5Nb2RpZmllcjsKK2ltcG9ydCBqYXZhLm5ldC5VUkw7CitpbXBvcnQgamF2YS5zZWN1cml0eS5Qb2xpY3k7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UYXJnZXQ7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3Quc2VyaWFsaXphYmxlLkNvbXBhdGliaWxpdHlUZXN0LkhhbmRsZXJUYXJnZXQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VUkxIYW5kbGVyOworCisvKioKKyAqIEBhdXRob3IgZW1hZGVyCisgKgorICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdyAtIFByZWZlcmVuY2VzIC0gSmF2YSAtIENvZGUgU3R5bGUgLSBDb2RlIFRlbXBsYXRlcworICovCitwdWJsaWMgY2xhc3MgQ292ZXJhZ2VUZXN0IGV4dGVuZHMgQ29tcGF0aWJpbGl0eVRlc3QgaW1wbGVtZW50cyBVUkxIYW5kbGVyLlVSTFZpc2l0b3IKK3sKKworICAgIHByaXZhdGUgc3RhdGljIENsYXNzIHNlcmlhbGl6YWJsZTsKKworICAgIHB1YmxpYyB2b2lkIGluaXQoKSB7CisgICAgICAgIHRyeSB7ICAgIAorICAgICAgICAgICAgc2VyaWFsaXphYmxlID0gQ2xhc3MuZm9yTmFtZSgiamF2YS5pby5TZXJpYWxpemFibGUiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIHdlJ3JlIGluIGRlZXAgdHJvdWJsZS4uLgorICAgICAgICAgICAgd2FybmxuKCJXb29wcyEgQ2FuJ3QgZ2V0IGNsYXNzIGluZm8gZm9yIFNlcmlhbGl6YWJsZS4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgVGFyZ2V0IGhlYWQgPSBuZXcgVGFyZ2V0KG51bGwpOworICAgIHByaXZhdGUgVGFyZ2V0IHRhaWwgPSBoZWFkOworICAgIAorICAgIHByaXZhdGUgU3RyaW5nIHBhdGg7CisgICAgCisgICAgcHVibGljIENvdmVyYWdlVGVzdCgpCisgICAgeworICAgICAgICB0aGlzKG51bGwpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ292ZXJhZ2VUZXN0KFN0cmluZyBwYXRoKQorICAgIHsKKyAgICAgICAgdGhpcy5wYXRoID0gcGF0aDsKKyAgICAgICAgCisgICAgICAgIGlmIChwYXRoICE9IG51bGwpIHsKKyAgICAgICAgICAgIEZpbGUgZGlyID0gbmV3IEZpbGUocGF0aCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghZGlyLmV4aXN0cygpKSB7CisgICAgICAgICAgICAgICAgZGlyLm1rZGlycygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCB3cml0ZUZpbGUoU3RyaW5nIGNsYXNzTmFtZSwgYnl0ZSBieXRlc1tdKQorICAgIHsKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUocGF0aCArIEZpbGUuc2VwYXJhdG9yICsgY2xhc3NOYW1lICsgIi5kYXQiKTsKKyAgICAgICAgRmlsZU91dHB1dFN0cmVhbSBzdHJlYW07CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc3RyZWFtID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN0cmVhbS53cml0ZShieXRlcyk7CisgICAgICAgICAgICBzdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAtIGNhbid0IHdyaXRlIGZpbGUhIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGFkZChTdHJpbmcgY2xhc3NOYW1lLCBpbnQgY2xhc3NNb2RpZmllcnMsIGJ5dGUgYnl0ZXNbXSkKKyAgICB7CisgICAgICAgIENvdmVyYWdlVGFyZ2V0IG5ld1RhcmdldCA9IG5ldyBDb3ZlcmFnZVRhcmdldChjbGFzc05hbWUsIGNsYXNzTW9kaWZpZXJzLCBieXRlcyk7CisgICAgICAgIAorICAgICAgICB0YWlsLnNldE5leHQobmV3VGFyZ2V0KTsKKyAgICAgICAgdGFpbCA9IG5ld1RhcmdldDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGNsYXNzIENvdmVyYWdlVGFyZ2V0IGV4dGVuZHMgSGFuZGxlclRhcmdldAorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBieXRlIGJ5dGVzW107CisgICAgICAgIHByaXZhdGUgaW50IG1vZGlmaWVyczsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBDb3ZlcmFnZVRhcmdldChTdHJpbmcgY2xhc3NOYW1lLCBpbnQgY2xhc3NNb2RpZmllcnMsIGJ5dGUgYnl0ZXNbXSkKKyAgICAgICAgeworICAgICAgICAgICAgc3VwZXIoY2xhc3NOYW1lLCBieXRlcyA9PSBudWxsPyBudWxsIDogbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVzKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRoaXMuYnl0ZXMgPSBieXRlczsKKyAgICAgICAgICAgIG1vZGlmaWVycyA9IGNsYXNzTW9kaWZpZXJzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiB2YWxpZGF0ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci52YWxpZGF0ZSgpIHx8IE1vZGlmaWVyLmlzQWJzdHJhY3QobW9kaWZpZXJzKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24KKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGlucHV0U3RyZWFtID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBwYXJhbXMudGVzdENvdW50ICs9IDE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIENsYXNzIGMgPSBDbGFzcy5mb3JOYW1lKG5hbWUpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIEZpZWxkIHVpZCA9IGMuZ2V0RGVjbGFyZWRGaWVsZCgic2VyaWFsVmVyc2lvblVJRCIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJObyBzZXJpYWxWZXJzaW9uVUlEIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChwYXRoICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKG5hbWUsIGJ5dGVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc3VwZXIuZXhlY3V0ZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHZpc2l0KFN0cmluZyBzdHIpCisgICAgeworICAgICAgICBpZihzZXJpYWxpemFibGU9PW51bGwpeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGludCBpeCA9IHN0ci5sYXN0SW5kZXhPZigiLmNsYXNzIik7CisgICAgICAgIAorICAgICAgICBpZiAoaXggPj0gMCkgeworICAgICAgICAgICAgU3RyaW5nIGNsYXNzTmFtZSA9ICJjb20uaWJtLmljdSIgKyBzdHIuc3Vic3RyaW5nKDAsIGl4KS5yZXBsYWNlKCcvJywgJy4nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gU2tpcCB0aGluZ3MgaW4gY29tLmlibS5pY3UuZGV2OyB0aGV5J3JlIG5vdCByZWxldmFudC4KKyAgICAgICAgICAgIGlmIChjbGFzc05hbWUuc3RhcnRzV2l0aCgiY29tLmlibS5pY3UuZGV2LiIpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENsYXNzIGMgPSBDbGFzcy5mb3JOYW1lKGNsYXNzTmFtZSk7CisgICAgICAgICAgICAgICAgaW50ICAgbSA9IGMuZ2V0TW9kaWZpZXJzKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHNlcmlhbGl6YWJsZS5pc0Fzc2lnbmFibGVGcm9tKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChNb2RpZmllci5pc1B1YmxpYyhtKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU2VyaWFsaXphYmxlVGVzdC5IYW5kbGVyIGhhbmRsZXIgPSBTZXJpYWxpemFibGVUZXN0LmdldEhhbmRsZXIoY2xhc3NOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhbmRsZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBvYmplY3RzT3V0W10gPSBoYW5kbGVyLmdldFRlc3RPYmplY3RzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IG9iamVjdHNJbltdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gcGFzc2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYnl0ZU91dCA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb3V0ID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShieXRlT3V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQud3JpdGVPYmplY3Qob2JqZWN0c091dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlT3V0LmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJubG4oIkVycm9yIHdyaXRpbmcgdGVzdCBvYmplY3RzOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGQoY2xhc3NOYW1lLCBtLCBieXRlT3V0LnRvQnl0ZUFycmF5KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGQoY2xhc3NOYW1lLCBtLCBudWxsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgd2FybmxuKCJjb3ZlcmFnZSBvZiAiICsgY2xhc3NOYW1lICsgIjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgZSkgeworICAgICAgICAgICAgICAgIHdhcm5sbigiY292ZXJhZ2Ugb2YgIiArIGNsYXNzTmFtZSArICI6ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBUYXJnZXQgZ2V0VGFyZ2V0cyhTdHJpbmcgdGFyZ2V0TmFtZSkKKyAgICB7CisgICAgICAgIAorICAgICAgICBpZiAoU3lzdGVtLmdldFNlY3VyaXR5TWFuYWdlcigpICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgdGVzdCB3b24ndCBydW4gdW5kZXIgYSBzZWN1cml0eSBtYW5hZ2VyCisgICAgICAgICAgICByZXR1cm4gbmV3IENvdmVyYWdlVGFyZ2V0KCJTa2lwcGVkIER1ZSBUbyBTZWN1cml0eSBNYW5hZ2VyIiwgTW9kaWZpZXIuQUJTVFJBQ1QsIG51bGwpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZihzZXJpYWxpemFibGU9PW51bGwpeworICAgICAgICAgICAgaW5pdCgpOworICAgICAgICB9CisgICAgICAgIFVSTCB1cmwgPSBnZXRDbGFzcygpLmdldFJlc291cmNlKCIvY29tL2libS9pY3UiKTsKKyAgICAgICAgVVJMSGFuZGxlciBoYW5kbGVyICA9IFVSTEhhbmRsZXIuZ2V0KHVybCk7CisgICAgICAgIAorICAgICAgICBoYW5kbGVyLmd1aWRlKHRoaXMsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBoZWFkLmdldE5leHQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIENvdmVyYWdlVGVzdCB0ZXN0ID0gbmV3IENvdmVyYWdlVGVzdCgpOworICAgICAgICAKKyAgICAgICAgdGVzdC5ydW4oYXJncyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9FeGNlcHRpb25UZXN0cy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9FeGNlcHRpb25UZXN0cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNTk2OTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL0V4Y2VwdGlvblRlc3RzLmphdmEKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc2VyaWFsaXphYmxlOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQXJhYmljU2hhcGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbjsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIEV4Y2VwdGlvblRlc3RzCit7CisgICAgc3RhdGljIGFic3RyYWN0IGNsYXNzIEV4Y2VwdGlvbkhhbmRsZXIgaW1wbGVtZW50cyBTZXJpYWxpemFibGVUZXN0LkhhbmRsZXIKKyAgICB7CisgICAgICAgIGFic3RyYWN0IHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpOworICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgRXhjZXB0aW9uIGVhID0gKEV4Y2VwdGlvbikgYTsKKyAgICAgICAgICAgIEV4Y2VwdGlvbiBlYiA9IChFeGNlcHRpb24pIGI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBlYS50b1N0cmluZygpLmVxdWFscyhlYi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbkhhbmRsZXIgZXh0ZW5kcyBFeGNlcHRpb25IYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIGV4Y2VwdGlvbnNbXSA9IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uc1tpXSA9IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKGxvY2FsZXNbaV0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBleGNlcHRpb25zOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb25IYW5kbGVyIGV4dGVuZHMgRXhjZXB0aW9uSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgU3RyaW5nIHJ1bGVzID0gIlRoaXMgaXMgYSB2ZXJ5IG9kZCBsaXR0bGUgc2V0IG9mIHJ1bGVzLCBqdXN0IGZvciB0ZXN0aW5nLCB5b3Uga25vdy4uLiI7CisgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXhjZXB0aW9uc1tdID0gbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbltsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbnNbaV0gPSBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKGxvY2FsZXNbaV0udG9TdHJpbmcoKSwgaSwgcnVsZXMsIGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uSGFuZGxlciBleHRlbmRzIEV4Y2VwdGlvbkhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiBleGNlcHRpb25zW10gPSBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uc1tpXSA9IG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24obG9jYWxlc1tpXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbnM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL0Zvcm1hdFRlc3RzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL0Zvcm1hdFRlc3RzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg3ZmIyNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvRm9ybWF0VGVzdHMuamF2YQpAQCAtMCwwICsxLDMwOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc2VyaWFsaXphYmxlOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5DaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIEZvcm1hdFRlc3RzCit7CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE51bWJlckZvcm1hdEhhbmRsZXIgaW1wbGVtZW50cyBTZXJpYWxpemFibGVUZXN0LkhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXRzW10gPSB7CisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUyksCisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UoTG9jYWxlLlVTKSwKKyAgICAgICAgICAgICAgICBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKExvY2FsZS5VUyksCisgICAgICAgICAgICAgICAgTnVtYmVyRm9ybWF0LmdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUuVVMpCisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXRzOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgTnVtYmVyRm9ybWF0IGZvcm1hdF9hID0gKE51bWJlckZvcm1hdCkgYTsKKyAgICAgICAgICAgIE51bWJlckZvcm1hdCBmb3JtYXRfYiA9IChOdW1iZXJGb3JtYXQpIGI7CisgICAgICAgICAgICBkb3VibGUgbnVtYmVyID0gMTIzNC41NjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGZvcm1hdF9hLmZvcm1hdChudW1iZXIpLmVxdWFscyhmb3JtYXRfYi5mb3JtYXQobnVtYmVyKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBEZWNpbWFsRm9ybWF0SGFuZGxlciBleHRlbmRzIE51bWJlckZvcm1hdEhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm9ybWF0c1tdID0gbmV3IERlY2ltYWxGb3JtYXRbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBmb3JtYXRzW2ldID0gbmV3IERlY2ltYWxGb3JtYXQoIiMsIyMwLiMjIyIsIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyhsb2NhbGVzW2ldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXRzOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgUnVsZUJhc2VkTnVtYmVyRm9ybWF0SGFuZGxlciBleHRlbmRzIE51bWJlckZvcm1hdEhhbmRsZXIKKyAgICB7CisgICAgICAgIGludCB0eXBlc1tdID0ge1J1bGVCYXNlZE51bWJlckZvcm1hdC5TUEVMTE9VVCwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0Lk9SRElOQUwsIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5EVVJBVElPTn07CisgICAgICAgIAorICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlc1tdID0gU2VyaWFsaXphYmxlVGVzdC5nZXRMb2NhbGVzKCk7CisgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0c1tdID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdFt0eXBlcy5sZW5ndGggKiBsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IHQgPSAwOyB0IDwgdHlwZXMubGVuZ3RoOyB0ICs9IDEpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBsID0gMDsgbCA8IGxvY2FsZXMubGVuZ3RoOyBsICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0c1tpKytdID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChsb2NhbGVzW2xdLCB0eXBlc1t0XSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZm9ybWF0czsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIERlY2ltYWxGb3JtYXRTeW1ib2xzSGFuZGxlciBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZVRlc3QuSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBjaGFyW10gZ2V0Q2hhclN5bWJvbHMoRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzKQorICAgICAgICB7CisgICAgICAgICAgICBjaGFyIHN5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICAgICBkZnMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpLAorICAgICAgICAgICAgICAgIGRmcy5nZXREaWdpdCgpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRHcm91cGluZ1NlcGFyYXRvcigpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRNaW51c1NpZ24oKSwKKyAgICAgICAgICAgICAgICBkZnMuZ2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yKCksCisgICAgICAgICAgICAgICAgZGZzLmdldFBhZEVzY2FwZSgpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRQYXR0ZXJuU2VwYXJhdG9yKCksCisgICAgICAgICAgICAgICAgZGZzLmdldFBlcmNlbnQoKSwKKyAgICAgICAgICAgICAgICBkZnMuZ2V0UGVyTWlsbCgpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRQbHVzU2lnbigpLAorICAgICAgICAgICAgICAgIGRmcy5nZXRTaWduaWZpY2FudERpZ2l0KCksCisgICAgICAgICAgICAgICAgZGZzLmdldFplcm9EaWdpdCgpCisgICAgICAgICAgICB9OworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gc3ltYm9sczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmdbXSBnZXRTdHJpbmdTeW1ib2xzKERlY2ltYWxGb3JtYXRTeW1ib2xzIGRmcykKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIHN5bWJvbHNbXSA9IHsKKyAgICAgICAgICAgICAgICBkZnMuZ2V0Q3VycmVuY3lTeW1ib2woKSwKKyAgICAgICAgICAgICAgICBkZnMuZ2V0RXhwb25lbnRTZXBhcmF0b3IoKSwKKyAgICAgICAgICAgICAgICBkZnMuZ2V0SW5maW5pdHkoKSwKKyAgICAgICAgICAgICAgICBkZnMuZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCksCisgICAgICAgICAgICAgICAgZGZzLmdldE5hTigpCisgICAgICAgICAgICB9OworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gc3ltYm9sczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzW10gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHNbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBkZnNbaV0gPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMobG9jYWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBkZnM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIGRmc19hID0gKERlY2ltYWxGb3JtYXRTeW1ib2xzKSBhOworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGZzX2IgPSAoRGVjaW1hbEZvcm1hdFN5bWJvbHMpIGI7CisgICAgICAgICAgICBTdHJpbmcgc3RyaW5nc19hW10gPSBnZXRTdHJpbmdTeW1ib2xzKGRmc19hKTsKKyAgICAgICAgICAgIFN0cmluZyBzdHJpbmdzX2JbXSA9IGdldFN0cmluZ1N5bWJvbHMoZGZzX2IpOworICAgICAgICAgICAgY2hhciBjaGFyc19hW10gPSBnZXRDaGFyU3ltYm9scyhkZnNfYSk7CisgICAgICAgICAgICBjaGFyIGNoYXJzX2JbXSA9IGdldENoYXJTeW1ib2xzKGRmc19iKTsKKworICAgICAgICByZXR1cm4gU2VyaWFsaXphYmxlVGVzdC5jb21wYXJlU3RyaW5ncyhzdHJpbmdzX2EsIHN0cmluZ3NfYikgJiYgU2VyaWFsaXphYmxlVGVzdC5jb21wYXJlQ2hhcnMoY2hhcnNfYSwgY2hhcnNfYik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBNZXNzYWdlRm9ybWF0SGFuZGxlciBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZVRlc3QuSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtYXRzW10gPSB7bmV3IE1lc3NhZ2VGb3JtYXQoInBhdHRlcm57MH0iKX07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXRzOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBtZmEgPSAoTWVzc2FnZUZvcm1hdCkgYTsKKyAgICAgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWZiID0gKE1lc3NhZ2VGb3JtYXQpIGI7CisgICAgICAgICAgICBPYmplY3QgYXJndW1lbnRzW10gPSB7bmV3IEludGVnZXIoMTIzNDU2KX07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBtZmEuZm9ybWF0KGFyZ3VtZW50cykgIT0gbWZiLmZvcm1hdChhcmd1bWVudHMpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRGF0ZUZvcm1hdEhhbmRsZXIgaW1wbGVtZW50cyBTZXJpYWxpemFibGVUZXN0LkhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZm9ybWF0c1tdID0gbmV3IERhdGVGb3JtYXRbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBmb3JtYXRzW2ldID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgRGF0ZUZvcm1hdC5GVUxMLCBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGZvcm1hdHM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIERhdGVGb3JtYXQgZGZhID0gKERhdGVGb3JtYXQpIGE7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmYiA9IChEYXRlRm9ybWF0KSBiOworICAgICAgICAgICAgRGF0ZSBkYXRlID0gbmV3IERhdGUoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgIHJldHVybiBkZmEuZm9ybWF0KGRhdGUpLmVxdWFscyhkZmIuZm9ybWF0KGRhdGUpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBEYXRlRm9ybWF0U3ltYm9sc0hhbmRsZXIgaW1wbGVtZW50cyBTZXJpYWxpemFibGVUZXN0LkhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGRmc1tdID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzW2xvY2FsZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgZGZzW2ldID0gbmV3IERhdGVGb3JtYXRTeW1ib2xzKEdyZWdvcmlhbkNhbGVuZGFyLmNsYXNzLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGVzW2ldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBkZnM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIGRmc19hID0gKERhdGVGb3JtYXRTeW1ib2xzKSBhOworICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgZGZzX2IgPSAoRGF0ZUZvcm1hdFN5bWJvbHMpIGI7CisgICAgICAgICAgICBTdHJpbmcgbW9udGhzX2FbXSA9IGRmc19hLmdldE1vbnRocygpOworICAgICAgICAgICAgU3RyaW5nIG1vbnRoc19iW10gPSBkZnNfYi5nZXRNb250aHMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIFNlcmlhbGl6YWJsZVRlc3QuY29tcGFyZVN0cmluZ3MobW9udGhzX2EsIG1vbnRoc19iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFNpbXBsZURhdGVGb3JtYXRIYW5kbGVyIGV4dGVuZHMgRGF0ZUZvcm1hdEhhbmRsZXIKKyAgICB7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuc1tdID0geworICAgICAgICAgICAgIkVFRUUsIHl5eXkgTU1NTSBkZCIsCisgICAgICAgICAgICAieXl5eSBNTU1NIGQiLAorICAgICAgICAgICAgInl5eXkgTU1NIGQiLAorICAgICAgICAgICAgInl5L01NL2RkIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkYXRlRm9ybWF0c1tdID0gbmV3IFNpbXBsZURhdGVGb3JtYXRbcGF0dGVybnMubGVuZ3RoICogbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBwID0gMDsgcCA8IHBhdHRlcm5zLmxlbmd0aDsgcCArPSAxKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgbCA9IDA7IGwgPCBsb2NhbGVzLmxlbmd0aDsgbCArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXRzW2krK10gPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChwYXR0ZXJuc1twXSwgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlc1tsXSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXRzOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgQ2hpbmVzZURhdGVGb3JtYXRIYW5kbGVyIGV4dGVuZHMgRGF0ZUZvcm1hdEhhbmRsZXIKKyAgICB7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuc1tdID0geworICAgICAgICAgICAgIkVFRUUgeSd4J0ctTWwtZCIsCisgICAgICAgICAgICAieSd4J0ctTWwtZCIsCisgICAgICAgICAgICAieSd4J0ctTWwtZCIsCisgICAgICAgICAgICAieSd4J0ctTWwtZCIKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExvY2FsZSBsb2NhbGVzW10gPSBTZXJpYWxpemFibGVUZXN0LmdldExvY2FsZXMoKTsKKyAgICAgICAgICAgIENoaW5lc2VEYXRlRm9ybWF0IGRhdGVGb3JtYXRzW10gPSBuZXcgQ2hpbmVzZURhdGVGb3JtYXRbcGF0dGVybnMubGVuZ3RoICogbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBwID0gMDsgcCA8IHBhdHRlcm5zLmxlbmd0aDsgcCArPSAxKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgbCA9IDA7IGwgPCBsb2NhbGVzLmxlbmd0aDsgbCArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gbmV3IFVMb2NhbGUobG9jYWxlc1tsXS50b1N0cmluZygpICsgIkBjYWxlbmRhcj1jaGluZXNlIik7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0c1tpKytdID0gbmV3IENoaW5lc2VEYXRlRm9ybWF0KHBhdHRlcm5zW3BdLCBsb2NhbGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXRzOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzSGFuZGxlciBleHRlbmRzIERhdGVGb3JtYXRTeW1ib2xzSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTG9jYWxlIGxvY2FsZXNbXSA9IFNlcmlhbGl6YWJsZVRlc3QuZ2V0TG9jYWxlcygpOworICAgICAgICAgICAgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzIGNkZnNbXSA9IG5ldyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHNbbG9jYWxlcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBjZGZzW2ldID0gbmV3IENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyhsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNkZnM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghIHN1cGVyLmhhc1NhbWVCZWhhdmlvcihhLCBiKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzIGNkZnNfYSA9IChDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMpIGE7CisgICAgICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMgY2Rmc19iID0gKENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scykgYjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNkZnNfYS5nZXRMZWFwTW9udGgoMCkuZXF1YWxzKGNkZnNfYi5nZXRMZWFwTW9udGgoMCkpICYmCisgICAgICAgICAgICAgICAgICAgY2Rmc19hLmdldExlYXBNb250aCgxKS5lcXVhbHMoY2Rmc19iLmdldExlYXBNb250aCgxKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIC8vIG5vdGhpbmcgbmVlZGVkLi4uCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9TZXJpYWxpemFibGVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL1NlcmlhbGl6YWJsZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDg4Y2I2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9TZXJpYWxpemFibGVUZXN0LmphdmEKQEAgLTAsMCArMSw0NzIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNlcmlhbGl6YWJsZTsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkpES1RpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTGlua2VkSGFzaE1hcDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxSVU1hcDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk9sc29uVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UaW1lWm9uZUFkYXB0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsOworaW1wb3J0IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIEBhdXRob3IgZW1hZGVyCisgKgorICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdyAtIFByZWZlcmVuY2VzIC0gSmF2YSAtIENvZGUgU3R5bGUgLSBDb2RlIFRlbXBsYXRlcworICovCitwdWJsaWMgY2xhc3MgU2VyaWFsaXphYmxlVGVzdCBleHRlbmRzIFRlc3RGbXdrLlRlc3RHcm91cAoreworICAgIHB1YmxpYyBpbnRlcmZhY2UgSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCk7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBIYW5kbGVyIGdldEhhbmRsZXIoU3RyaW5nIGNsYXNzTmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiAoSGFuZGxlcikgbWFwLmdldChjbGFzc05hbWUpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBUaW1lWm9uZUhhbmRsZXIgaW1wbGVtZW50cyBIYW5kbGVyCisgICAgeworICAgICAgICBTdHJpbmdbXSBaT05FUyA9IHsgIkdNVCIsICJNRVQiLCAiSVNUIiB9OworCisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIFRpbWVab25lIHpvbmVzW10gPSBuZXcgVGltZVpvbmVbWk9ORVMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yKGludCB6ID0gMDsgeiA8IFpPTkVTLmxlbmd0aDsgeiArPSAxKSB7CisgICAgICAgICAgICAgICAgem9uZXNbel0gPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShaT05FU1t6XSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB6b25lczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgVGltZVpvbmUgem9uZV9hID0gKFRpbWVab25lKSBhOworICAgICAgICAgICAgVGltZVpvbmUgem9uZV9iID0gKFRpbWVab25lKSBiOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gem9uZV9hLmdldERpc3BsYXlOYW1lKCkuZXF1YWxzKHpvbmVfYi5nZXREaXNwbGF5TmFtZSgpKSAmJiB6b25lX2EuaGFzU2FtZVJ1bGVzKHpvbmVfYik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgTG9jYWxlIGxvY2FsZXNbXSA9IHsKKyAgICAgICAgTG9jYWxlLkNBTkFEQSwgTG9jYWxlLkNBTkFEQV9GUkVOQ0gsIExvY2FsZS5DSElOQSwgCisgICAgICAgIExvY2FsZS5DSElORVNFLCBMb2NhbGUuRU5HTElTSCwgTG9jYWxlLkZSQU5DRSwgTG9jYWxlLkZSRU5DSCwgCisgICAgICAgIExvY2FsZS5HRVJNQU4sIExvY2FsZS5HRVJNQU5ZLCBMb2NhbGUuSVRBTElBTiwgTG9jYWxlLklUQUxZLCAKKyAgICAgICAgTG9jYWxlLkpBUEFOLCBMb2NhbGUuSkFQQU5FU0UsIExvY2FsZS5LT1JFQSwgTG9jYWxlLktPUkVBTiwgCisgICAgICAgIExvY2FsZS5QUkMsIExvY2FsZS5TSU1QTElGSUVEX0NISU5FU0UsIExvY2FsZS5UQUlXQU4sIAorICAgICAgICBMb2NhbGUuVFJBRElUSU9OQUxfQ0hJTkVTRSwgTG9jYWxlLlVLLCBMb2NhbGUuVVMKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIExvY2FsZSBwbGFjZXNbXSA9IHsKKyAgICAgICAgTG9jYWxlLkNBTkFEQSwgTG9jYWxlLkNBTkFEQV9GUkVOQ0gsIExvY2FsZS5DSElOQSwgCisgICAgICAgIExvY2FsZS5GUkFOQ0UsIExvY2FsZS5HRVJNQU5ZLCBMb2NhbGUuSVRBTFksIAorICAgICAgICBMb2NhbGUuSkFQQU4sIExvY2FsZS5LT1JFQSwgTG9jYWxlLlBSQywgTG9jYWxlLlRBSVdBTiwgCisgICAgICAgIExvY2FsZS5VSywgTG9jYWxlLlVTCisgICAgfTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIExvY2FsZVtdIGdldExvY2FsZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZXM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBjb21wYXJlU3RyaW5ncyhTdHJpbmcgYVtdLCBTdHJpbmcgYltdKQorICAgIHsKKyAgICAgICAgaWYgKGEubGVuZ3RoICE9IGIubGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgaWYgKCEgYVtpXS5lcXVhbHMoYltpXSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gY29tcGFyZUNoYXJzKGNoYXIgYVtdLCBjaGFyIGJbXSkKKyAgICB7CisgICAgICAgIGlmIChhLmxlbmd0aCAhPSBiLmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgIGlmIChhW2ldICE9IGJbaV0pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFNpbXBsZVRpbWVab25lSGFuZGxlciBleHRlbmRzIFRpbWVab25lSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgU2ltcGxlVGltZVpvbmUgc2ltcGxlVGltZVpvbmVzW10gPSBuZXcgU2ltcGxlVGltZVpvbmVbNl07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNpbXBsZVRpbWVab25lc1swXSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgzMjQwMDAwMCwgIk15VGltZVpvbmUiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2ltcGxlVGltZVpvbmVzWzFdID0gbmV3IFNpbXBsZVRpbWVab25lKDMyNDAwMDAwLCAiQXNpYS9Ub2t5byIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbMl0gPSBuZXcgU2ltcGxlVGltZVpvbmUoMzI0MDAwMDAsICJBc2lhL1Rva3lvIik7CisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbMl0uc2V0UmF3T2Zmc2V0KDApOworICAgICAgICAgICAgCisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbM10gPSBuZXcgU2ltcGxlVGltZVpvbmUoMzI0MDAwMDAsICJBc2lhL1Rva3lvIik7CisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbM10uc2V0U3RhcnRZZWFyKDEwMCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNpbXBsZVRpbWVab25lc1s0XSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgzMjQwMDAwMCwgIkFzaWEvVG9reW8iKTsKKyAgICAgICAgICAgIHNpbXBsZVRpbWVab25lc1s0XS5zZXRTdGFydFllYXIoMTAwMCk7CisgICAgICAgICAgICBzaW1wbGVUaW1lWm9uZXNbNF0uc2V0RFNUU2F2aW5ncygxODAwMDAwKTsKKyAgICAgICAgICAgIHNpbXBsZVRpbWVab25lc1s0XS5zZXRTdGFydFJ1bGUoMywgNCwgMTgwMDAwKTsKKyAgICAgICAgICAgIHNpbXBsZVRpbWVab25lc1s0XS5zZXRFbmRSdWxlKDYsIDMsIDQsIDM2MDAwMCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNpbXBsZVRpbWVab25lc1s1XSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgzMjQwMDAwMCwgIkFzaWEvVG9reW8iKTsKKyAgICAgICAgICAgIHNpbXBsZVRpbWVab25lc1s1XS5zZXRTdGFydFJ1bGUoMiwgMywgNCwgMzYwMDAwKTsKKyAgICAgICAgICAgIHNpbXBsZVRpbWVab25lc1s1XS5zZXRFbmRSdWxlKDYsIDMsIDQsIDM2MDAwMCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBzaW1wbGVUaW1lWm9uZXM7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVUxvY2FsZUhhbmRsZXIgaW1wbGVtZW50cyBIYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBVTG9jYWxlIHVMb2NhbGVzW10gPSBuZXcgVUxvY2FsZVtsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIHVMb2NhbGVzW2ldID0gVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB1TG9jYWxlczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgVUxvY2FsZSB1bG9jX2EgPSAoVUxvY2FsZSkgYTsKKyAgICAgICAgICAgIFVMb2NhbGUgdWxvY19iID0gKFVMb2NhbGUpIGI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB1bG9jX2EuZ2V0TmFtZSgpLmVxdWFscyh1bG9jX2IuZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBDdXJyZW5jeUhhbmRsZXIgaW1wbGVtZW50cyBIYW5kbGVyCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBDdXJyZW5jeSBjdXJyZW5jaWVzW10gPSBuZXcgQ3VycmVuY3lbcGxhY2VzLmxlbmd0aF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGxhY2VzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgY3VycmVuY2llc1tpXSA9IEN1cnJlbmN5LmdldEluc3RhbmNlKHBsYWNlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW5jaWVzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBDdXJyZW5jeSBjdXJyX2EgPSAoQ3VycmVuY3kpIGE7CisgICAgICAgICAgICBDdXJyZW5jeSBjdXJyX2IgPSAoQ3VycmVuY3kpIGI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBjdXJyX2EuZ2V0Q3VycmVuY3lDb2RlKCkuZXF1YWxzKGN1cnJfYi5nZXRDdXJyZW5jeUNvZGUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBPbHNvblRpbWVab25lSGFuZGxlciBpbXBsZW1lbnRzIEhhbmRsZXIKKyAgICB7CisgICAgICAgIFN0cmluZyB6b25lSURzW10gPSB7CisgICAgICAgICAgICAiUGFjaWZpYy9Ib25vbHVsdSIsICJBbWVyaWNhL0FuY2hvcmFnZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIkFtZXJpY2EvRGVudmVyIiwKKyAgICAgICAgICAgICJBbWVyaWNhL0NoaWNhZ28iLCAiQW1lcmljYS9OZXdfWW9yayIsICJBZnJpY2EvQ2Fpcm8iLCAiQWZyaWNhL0FkZGlzX0FiYWJhIiwgIkFmcmljYS9EYXJfZXNfU2FsYWFtIiwKKyAgICAgICAgICAgICJBZnJpY2EvRnJlZXRvd24iLCAiQWZyaWNhL0pvaGFubmVzYnVyZyIsICJBZnJpY2EvTmFpcm9iaSIsICJBc2lhL0Jhbmdrb2siLCAiQXNpYS9CYWdoZGFkIiwKKyAgICAgICAgICAgICJBc2lhL0NhbGN1dHRhIiwgIkFzaWEvSG9uZ19Lb25nIiwgIkFzaWEvSmFrYXJ0YSIsICJBc2lhL0plcnVzYWxlbSIsICJBc2lhL01hbmlsYSIsICJBc2lhL1Rva3lvIiwKKyAgICAgICAgICAgICJFdXJvcGUvQW1zdGVyZGFtIiwgIkV1cm9wZS9BdGhlbnMiLCAiRXVyb3BlL0JlcmxpbiIsICJFdXJvcGUvTG9uZG9uIiwgIkV1cm9wZS9NYWx0YSIsICJFdXJvcGUvTW9zY293IiwKKyAgICAgICAgICAgICJFdXJvcGUvUGFyaXMiLCAiRXVyb3BlL1JvbWUiCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBPbHNvblRpbWVab25lIHRpbWVab25lc1tdID0gbmV3IE9sc29uVGltZVpvbmVbem9uZUlEcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHpvbmVJRHMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICB0aW1lWm9uZXNbaV0gPSBuZXcgT2xzb25UaW1lWm9uZSh6b25lSURzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHRpbWVab25lczsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgT2xzb25UaW1lWm9uZSBvdHpfYSA9IChPbHNvblRpbWVab25lKSBhOworICAgICAgICAgICAgT2xzb25UaW1lWm9uZSBvdHpfYiA9IChPbHNvblRpbWVab25lKSBiOworICAgICAgICAgICAgbG9uZyBub3cgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgIGludCBhX29mZnNldHNbXSA9IHswLCAwfTsKKyAgICAgICAgICAgIGludCBiX29mZnNldHNbXSA9IHswLCAwfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3R6X2EuZ2V0T2Zmc2V0KG5vdywgZmFsc2UsIGFfb2Zmc2V0cyk7CisgICAgICAgICAgICBvdHpfYi5nZXRPZmZzZXQobm93LCBmYWxzZSwgYl9vZmZzZXRzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGFfb2Zmc2V0c1swXSA9PSBiX29mZnNldHNbMF0gJiYgYV9vZmZzZXRzWzFdID09IGJfb2Zmc2V0c1sxXTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBKREtUaW1lWm9uZUhhbmRsZXIgaW1wbGVtZW50cyBIYW5kbGVyCisgICAgeworICAgICAgICBTdHJpbmcgem9uZUlEc1tdID0geworICAgICAgICAgICAgIlBhY2lmaWMvSG9ub2x1bHUiLCAiQW1lcmljYS9BbmNob3JhZ2UiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsICJBbWVyaWNhL0RlbnZlciIsCisgICAgICAgICAgICAiQW1lcmljYS9DaGljYWdvIiwgIkFtZXJpY2EvTmV3X1lvcmsiLCAiQWZyaWNhL0NhaXJvIiwgIkFmcmljYS9BZGRpc19BYmFiYSIsICJBZnJpY2EvRGFyX2VzX1NhbGFhbSIsCisgICAgICAgICAgICAiQWZyaWNhL0ZyZWV0b3duIiwgIkFmcmljYS9Kb2hhbm5lc2J1cmciLCAiQWZyaWNhL05haXJvYmkiLCAiQXNpYS9CYW5na29rIiwgIkFzaWEvQmFnaGRhZCIsCisgICAgICAgICAgICAiQXNpYS9DYWxjdXR0YSIsICJBc2lhL0hvbmdfS29uZyIsICJBc2lhL0pha2FydGEiLCAiQXNpYS9KZXJ1c2FsZW0iLCAiQXNpYS9NYW5pbGEiLCAiQXNpYS9Ub2t5byIsCisgICAgICAgICAgICAiRXVyb3BlL0Ftc3RlcmRhbSIsICJFdXJvcGUvQXRoZW5zIiwgIkV1cm9wZS9CZXJsaW4iLCAiRXVyb3BlL0xvbmRvbiIsICJFdXJvcGUvTWFsdGEiLCAiRXVyb3BlL01vc2NvdyIsCisgICAgICAgICAgICAiRXVyb3BlL1BhcmlzIiwgIkV1cm9wZS9Sb21lIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgSkRLVGltZVpvbmUgdGltZVpvbmVzW10gPSBuZXcgSkRLVGltZVpvbmVbem9uZUlEcy5sZW5ndGhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHpvbmVJRHMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICB0aW1lWm9uZXNbaV0gPSBuZXcgSkRLVGltZVpvbmUoamF2YS51dGlsLlRpbWVab25lLmdldFRpbWVab25lKHpvbmVJRHNbaV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHRpbWVab25lczsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZUJlaGF2aW9yKE9iamVjdCBhLCBPYmplY3QgYikKKyAgICAgICAgeworICAgICAgICAgICAgSkRLVGltZVpvbmUganR6X2EgPSAoSkRLVGltZVpvbmUpIGE7CisgICAgICAgICAgICBKREtUaW1lWm9uZSBqdHpfYiA9IChKREtUaW1lWm9uZSkgYjsKKyAgICAgICAgICAgIGxvbmcgbm93ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgICAgICBpbnQgYV9vZmZzZXRzW10gPSB7MCwgMH07CisgICAgICAgICAgICBpbnQgYl9vZmZzZXRzW10gPSB7MCwgMH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGp0el9hLmdldE9mZnNldChub3csIGZhbHNlLCBhX29mZnNldHMpOworICAgICAgICAgICAganR6X2IuZ2V0T2Zmc2V0KG5vdywgZmFsc2UsIGJfb2Zmc2V0cyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBhX29mZnNldHNbMF0gPT0gYl9vZmZzZXRzWzBdICYmIGFfb2Zmc2V0c1sxXSA9PSBiX29mZnNldHNbMV07CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVGltZVpvbmVBZGFwdGVySGFuZGxlciBpbXBsZW1lbnRzIEhhbmRsZXIKKyAgICB7CisgICAgICAgIFN0cmluZyB6b25lSURzW10gPSB7CisgICAgICAgICAgICAiUGFjaWZpYy9Ib25vbHVsdSIsICJBbWVyaWNhL0FuY2hvcmFnZSIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwgIkFtZXJpY2EvRGVudmVyIiwKKyAgICAgICAgICAgICJBbWVyaWNhL0NoaWNhZ28iLCAiQW1lcmljYS9OZXdfWW9yayIsICJBZnJpY2EvQ2Fpcm8iLCAiQWZyaWNhL0FkZGlzX0FiYWJhIiwgIkFmcmljYS9EYXJfZXNfU2FsYWFtIiwKKyAgICAgICAgICAgICJBZnJpY2EvRnJlZXRvd24iLCAiQWZyaWNhL0pvaGFubmVzYnVyZyIsICJBZnJpY2EvTmFpcm9iaSIsICJBc2lhL0Jhbmdrb2siLCAiQXNpYS9CYWdoZGFkIiwKKyAgICAgICAgICAgICJBc2lhL0NhbGN1dHRhIiwgIkFzaWEvSG9uZ19Lb25nIiwgIkFzaWEvSmFrYXJ0YSIsICJBc2lhL0plcnVzYWxlbSIsICJBc2lhL01hbmlsYSIsICJBc2lhL1Rva3lvIiwKKyAgICAgICAgICAgICJFdXJvcGUvQW1zdGVyZGFtIiwgIkV1cm9wZS9BdGhlbnMiLCAiRXVyb3BlL0JlcmxpbiIsICJFdXJvcGUvTG9uZG9uIiwgIkV1cm9wZS9NYWx0YSIsICJFdXJvcGUvTW9zY293IiwKKyAgICAgICAgICAgICJFdXJvcGUvUGFyaXMiLCAiRXVyb3BlL1JvbWUiCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBwdWJsaWMgT2JqZWN0W10gZ2V0VGVzdE9iamVjdHMoKQorICAgICAgICB7CisgICAgICAgICAgICBUaW1lWm9uZUFkYXB0ZXIgdGltZVpvbmVzW10gPSBuZXcgVGltZVpvbmVBZGFwdGVyW3pvbmVJRHMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB6b25lSURzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgdGltZVpvbmVzW2ldID0gbmV3IFRpbWVab25lQWRhcHRlcihUaW1lWm9uZS5nZXRUaW1lWm9uZSh6b25lSURzW2ldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB0aW1lWm9uZXM7CisgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIFRpbWVab25lQWRhcHRlciB0emFfYSA9IChUaW1lWm9uZUFkYXB0ZXIpIGE7CisgICAgICAgICAgICBUaW1lWm9uZUFkYXB0ZXIgdHphX2IgPSAoVGltZVpvbmVBZGFwdGVyKSBiOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHphX2EuaGFzU2FtZVJ1bGVzKHR6YV9iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBCaWdEZWNpbWFsSGFuZGxlciBpbXBsZW1lbnRzIEhhbmRsZXIKKyAgICB7CisgICAgICAgIFN0cmluZyB2YWx1ZXNbXSA9IHsKKyAgICAgICAgICAgICIxMjM0NTY3ODkwLiIsCisgICAgICAgICAgICAiMTIzNDU2Nzg5LjAiLAorICAgICAgICAgICAgIjEyMzQ1Njc4LjkwIiwKKyAgICAgICAgICAgICIxMjM0NTY3Ljg5MCIsCisgICAgICAgICAgICAiMTIzNDU2Ljc4OTAiLAorICAgICAgICAgICAgIjEyMzQ1LjY3ODkwIiwKKyAgICAgICAgICAgICIxMjM0LjU2Nzg5MCIsCisgICAgICAgICAgICAiMTIzLjQ1Njc4OTAiLAorICAgICAgICAgICAgIjEyLjM0NTY3ODkwIiwKKyAgICAgICAgICAgICIxLjIzNDU2Nzg5MCIsCisgICAgICAgICAgICAiLjEyMzQ1Njc4OTAifTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJpZ0RlY2ltYWwgYmRzW10gPSBuZXcgQmlnRGVjaW1hbFt2YWx1ZXMubGVuZ3RoXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBiZHNbaV0gPSBuZXcgQmlnRGVjaW1hbCh2YWx1ZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gYmRzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgICAgICBCaWdEZWNpbWFsIGJkYSA9IChCaWdEZWNpbWFsKSBhOworICAgICAgICAgICAgQmlnRGVjaW1hbCBiZGIgPSAoQmlnRGVjaW1hbCkgYjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGJkYS50b1N0cmluZygpLmVxdWFscyhiZGIudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgTWF0aENvbnRleHRIYW5kbGVyIGltcGxlbWVudHMgSGFuZGxlcgorICAgIHsKKyAgICAgICAgaW50IGZvcm1zW10gPSB7TWF0aENvbnRleHQuUExBSU4sIE1hdGhDb250ZXh0LkVOR0lORUVSSU5HLCBNYXRoQ29udGV4dC5TQ0lFTlRJRklDfTsKKyAgICAgICAgaW50IHJvdW5kc1tdID0geworICAgICAgICAgICAgTWF0aENvbnRleHQuUk9VTkRfQ0VJTElORywgTWF0aENvbnRleHQuUk9VTkRfRE9XTiwgTWF0aENvbnRleHQuUk9VTkRfRkxPT1IsCisgICAgICAgICAgICBNYXRoQ29udGV4dC5ST1VORF9IQUxGX0RPV04sIE1hdGhDb250ZXh0LlJPVU5EX0hBTEZfRVZFTiwgTWF0aENvbnRleHQuUk9VTkRfSEFMRl9VUCwKKyAgICAgICAgICAgIE1hdGhDb250ZXh0LlJPVU5EX1VOTkVDRVNTQVJZLCBNYXRoQ29udGV4dC5ST1VORF9VUH07CisKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IG9iamVjdENvdW50ID0gZm9ybXMubGVuZ3RoICogcm91bmRzLmxlbmd0aDsKKyAgICAgICAgICAgIE1hdGhDb250ZXh0IGNvbnRleHRzW10gPSBuZXcgTWF0aENvbnRleHRbb2JqZWN0Q291bnRdOworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBmID0gMDsgZiA8IGZvcm1zLmxlbmd0aDsgZiArPSAxKSB7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgciA9IDA7IHIgPCByb3VuZHMubGVuZ3RoOyByICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGRpZ2l0cyA9IGYgKiByOworICAgICAgICAgICAgICAgICAgICBib29sZWFuIGxvc3REaWdpdHMgPSAociAmIDEpICE9IDA7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjb250ZXh0c1tpKytdID0gbmV3IE1hdGhDb250ZXh0KGRpZ2l0cywgZm9ybXNbZl0sIGxvc3REaWdpdHMsIHJvdW5kc1tyXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gY29udGV4dHM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIE1hdGhDb250ZXh0IG1jYSA9IChNYXRoQ29udGV4dCkgYTsKKyAgICAgICAgICAgIE1hdGhDb250ZXh0IG1jYiA9IChNYXRoQ29udGV4dCkgYjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIG1jYS50b1N0cmluZygpLmVxdWFscyhtY2IudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgTFJVTWFwSGFuZGxlciBpbXBsZW1lbnRzIEhhbmRsZXIKKyAgICB7CisgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRUZXN0T2JqZWN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIExSVU1hcFtdIG1hcHMgPSBuZXcgTFJVTWFwWzFdOworICAgICAgICAgICAgbWFwc1swXSA9IG5ldyBMUlVNYXAoKTsKKyAgICAgICAgICAgIG1hcHNbMF0ucHV0KCIxIiwgImEiKTsKKyAgICAgICAgICAgIG1hcHNbMF0ucHV0KCIyIiwgImIiKTsKKyAgICAgICAgICAgIHJldHVybiBtYXBzOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIExSVU1hcCBtYXBBID0gKExSVU1hcCkgYTsKKyAgICAgICAgICAgIExSVU1hcCBtYXBCID0gKExSVU1hcCkgYjsKKyAgICAgICAgICAgIHJldHVybiBtYXBBLmVxdWFscyhtYXBCKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIExpbmtlZEhhc2hNYXBIYW5kbGVyIGltcGxlbWVudHMgSGFuZGxlcgorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdFtdIGdldFRlc3RPYmplY3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTGlua2VkSGFzaE1hcFtdIG1hcHMgPSBuZXcgTGlua2VkSGFzaE1hcFsyXTsKKyAgICAgICAgICAgIG1hcHNbMF0gPSBuZXcgTGlua2VkSGFzaE1hcCgpOworICAgICAgICAgICAgbWFwc1sxXSA9IG5ldyBMaW5rZWRIYXNoTWFwKDE2LCAwLjc1RiwgdHJ1ZSk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICAgICAgICAgIG1hcHNbaV0ucHV0KCIxIiwgImEiKTsKKyAgICAgICAgICAgICAgICBtYXBzW2ldLnB1dCgiMiIsICJiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbWFwczsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBMaW5rZWRIYXNoTWFwIG1hcEEgPSAoTGlua2VkSGFzaE1hcCkgYTsKKyAgICAgICAgICAgIExpbmtlZEhhc2hNYXAgbWFwQiA9IChMaW5rZWRIYXNoTWFwKSBiOworICAgICAgICAgICAgcmV0dXJuIG1hcEEuZXF1YWxzKG1hcEIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgSGFzaE1hcCBtYXAgPSBuZXcgSGFzaE1hcCgpOworICAgIAorICAgIHN0YXRpYyB7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUiLCBuZXcgVGltZVpvbmVIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lIiwgbmV3IFNpbXBsZVRpbWVab25lSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudXRpbC5VTG9jYWxlIiwgbmV3IFVMb2NhbGVIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5IiwgbmV3IEN1cnJlbmN5SGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UuaW1wbC5KREtUaW1lWm9uZSIsIG5ldyBKREtUaW1lWm9uZUhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LmltcGwuTGlua2VkSGFzaE1hcCIsIG5ldyBMaW5rZWRIYXNoTWFwSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UuaW1wbC5MUlVNYXAiLCBuZXcgTFJVTWFwSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UuaW1wbC5PbHNvblRpbWVab25lIiwgbmV3IE9sc29uVGltZVpvbmVIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS5pbXBsLlRpbWVab25lQWRhcHRlciIsIG5ldyBUaW1lWm9uZUFkYXB0ZXJIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwiLCBuZXcgQmlnRGVjaW1hbEhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQiLCBuZXcgTWF0aENvbnRleHRIYW5kbGVyKCkpOworICAgICAgICAKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQiLCBuZXcgRm9ybWF0VGVzdHMuTnVtYmVyRm9ybWF0SGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0IiwgbmV3IEZvcm1hdFRlc3RzLkRlY2ltYWxGb3JtYXRIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdCIsIG5ldyBGb3JtYXRUZXN0cy5SdWxlQmFzZWROdW1iZXJGb3JtYXRIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzIiwgbmV3IEZvcm1hdFRlc3RzLkRlY2ltYWxGb3JtYXRTeW1ib2xzSGFuZGxlcigpKTsKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0IiwgbmV3IEZvcm1hdFRlc3RzLk1lc3NhZ2VGb3JtYXRIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQiLCBuZXcgRm9ybWF0VGVzdHMuRGF0ZUZvcm1hdEhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMiLCBuZXcgRm9ybWF0VGVzdHMuRGF0ZUZvcm1hdFN5bWJvbHNIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQiLCBuZXcgRm9ybWF0VGVzdHMuU2ltcGxlRGF0ZUZvcm1hdEhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXQiLCBuZXcgRm9ybWF0VGVzdHMuQ2hpbmVzZURhdGVGb3JtYXRIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS50ZXh0LkNoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyIsIG5ldyBGb3JtYXRUZXN0cy5DaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHNIYW5kbGVyKCkpOworCisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIiLCBuZXcgQ2FsZW5kYXJUZXN0cy5DYWxlbmRhckhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnV0aWwuQnVkZGhpc3RDYWxlbmRhciIsIG5ldyBDYWxlbmRhclRlc3RzLkJ1ZGRoaXN0Q2FsZW5kYXJIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLkNoaW5lc2VDYWxlbmRhciIsIG5ldyBDYWxlbmRhclRlc3RzLkNoaW5lc2VDYWxlbmRhckhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnV0aWwuQ29wdGljQ2FsZW5kYXIiLCBuZXcgQ2FsZW5kYXJUZXN0cy5Db3B0aWNDYWxlbmRhckhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnV0aWwuRXRoaW9waWNDYWxlbmRhciIsIG5ldyBDYWxlbmRhclRlc3RzLkV0aGlvcGljQ2FsZW5kYXJIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyIiwgbmV3IENhbGVuZGFyVGVzdHMuR3JlZ29yaWFuQ2FsZW5kYXJIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyIiwgbmV3IENhbGVuZGFyVGVzdHMuSGVicmV3Q2FsZW5kYXJIYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLklzbGFtaWNDYWxlbmRhciIsIG5ldyBDYWxlbmRhclRlc3RzLklzbGFtaWNDYWxlbmRhckhhbmRsZXIoKSk7CisgICAgICAgIG1hcC5wdXQoImNvbS5pYm0uaWN1LnV0aWwuSmFwYW5lc2VDYWxlbmRhciIsIG5ldyBDYWxlbmRhclRlc3RzLkphcGFuZXNlQ2FsZW5kYXJIYW5kbGVyKCkpOworICAgICAgICAKKyAgICAgICAgbWFwLnB1dCgiY29tLmlibS5pY3UudGV4dC5BcmFiaWNTaGFwaW5nRXhjZXB0aW9uIiwgbmV3IEV4Y2VwdGlvblRlc3RzLkFyYWJpY1NoYXBpbmdFeGNlcHRpb25IYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiIsIG5ldyBFeGNlcHRpb25UZXN0cy5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb25IYW5kbGVyKCkpOworICAgICAgICBtYXAucHV0KCJjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiIsIG5ldyBFeGNlcHRpb25UZXN0cy5VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb25IYW5kbGVyKCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU2VyaWFsaXphYmxlVGVzdCgpCisgICAgeworICAgICAgICBzdXBlcigKKyAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgImNvbS5pYm0uaWN1LmRldi50ZXN0LnNlcmlhbGl6YWJsZS5Db3ZlcmFnZVRlc3QiLAorICAgICAgICAgICAgICAgICJjb20uaWJtLmljdS5kZXYudGVzdC5zZXJpYWxpemFibGUuQ29tcGF0aWJpbGl0eVRlc3QifSwKKyAgICAgICAgICAgICAgICAiQWxsIFNlcmlhbGl6YWJsZSBUZXN0cyIKKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSAgPSAiU2VyaWFsaXphYmxlIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBTZXJpYWxpemFibGVUZXN0IHRlc3QgPSBuZXcgU2VyaWFsaXphYmxlVGVzdCgpOworICAgICAgICAKKyAgICAgICAgdGVzdC5ydW4oYXJncyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9TZXJpYWxpemFibGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvU2VyaWFsaXphYmxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk2MDJlZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvU2VyaWFsaXphYmxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc2VyaWFsaXphYmxlOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworaW1wb3J0IGphdmEubmV0LlVSTDsKKworLyoqCisgKiBUaGlzIGNsYXNzIHdyaXRlcyB0aGUgdGVzdCBvYmplY3RzIGZvciBlYWNoIGNsYXNzIHRvIGEgZmlsZS4gVGhlIHdvcmsgaXMKKyAqIGFjdHVhbGx5IGRvbmUgYnkgdGhlIHN1cGVyY2xhc3MsIENvdmVyYWdlVGVzdC4gVGhpcyBjbGFzcyBqdXN0IGNvbnN0cnVjdHMKKyAqIGEgQ292ZXJhZ2VUZXN0IHcvIGEgbm9uLW51bGwgcGF0aCwgd2hpY2ggdGVsbHMgaXQgdG8gd3JpdGUgdGhlIGRhdGEuCisgKiAKKyAqLworcHVibGljIGNsYXNzIFNlcmlhbGl6YWJsZVdyaXRlciBleHRlbmRzIENvdmVyYWdlVGVzdAoreworICAgIHB1YmxpYyBTZXJpYWxpemFibGVXcml0ZXIoU3RyaW5nIHBhdGgpCisgICAgeworICAgICAgICBzdXBlcihwYXRoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGZvbGRlck5hbWUoKQorICAgIHsKKyAgICAgICAgaW50IG1ham9yID0gVmVyc2lvbkluZm8uSUNVX1ZFUlNJT04uZ2V0TWFqb3IoKTsKKyAgICAgICAgaW50IG1pbm9yID0gVmVyc2lvbkluZm8uSUNVX1ZFUlNJT04uZ2V0TWlub3IoKTsKKyAgICAgICAgaW50IG1pbGxpID0gVmVyc2lvbkluZm8uSUNVX1ZFUlNJT04uZ2V0TWlsbGkoKTsKKyAgICAgICAgaW50IG1pY3JvID0gVmVyc2lvbkluZm8uSUNVX1ZFUlNJT04uZ2V0TWljcm8oKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoIklDVV8iKTsKKyAgICAgICAgCisgICAgICAgIHJlc3VsdC5hcHBlbmQobWFqb3IpOworICAgICAgICByZXN1bHQuYXBwZW5kKCIuIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQobWlub3IpOworICAgICAgICAKKyAgICAgICAgaWYgKG1pbGxpICE9IDAgfHwgbWljcm8gIT0gMCkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLiIpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChtaWxsaSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChtaWNybyAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLiIpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQobWljcm8pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIFVSTCBkYXRhVVJMID0gU2VyaWFsaXphYmxlV3JpdGVyLmNsYXNzLmdldFJlc291cmNlKCJkYXRhIik7CisgICAgICAgIENvdmVyYWdlVGVzdCB0ZXN0ID0gbmV3IFNlcmlhbGl6YWJsZVdyaXRlcihkYXRhVVJMLmdldFBhdGgoKSArICIvIiArIGZvbGRlck5hbWUoKSk7CisgICAgICAgIAorICAgICAgICB0ZXN0LnJ1bihhcmdzKTsKKyAgICAgICAgCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5KREtUaW1lWm9uZS5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5pbXBsLkpES1RpbWVab25lLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGQ0YTU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5KREtUaW1lWm9uZS5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6NjU1YmQ5YWUxOWM5M2RmNGMxZmM1NWJlOTAxY2JlNjIzNWY5YzIwM2M5NzUzYWU1OGYxY2UwODY4MWIwMmU4YQorc2l6ZSAxMTE3CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5pbXBsLk9sc29uVGltZVpvbmUuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5PbHNvblRpbWVab25lLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjFiZTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UuaW1wbC5PbHNvblRpbWVab25lLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjoxYjVkZTM5N2VlZmQwNWNkYjVlY2ZlN2U3YzkxMDhkOWNkODUwYTk2ZWEyNzQwY2YwMTc4YjQ4YzRhNmMwNjM4CitzaXplIDEyMjU2CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5pbXBsLlRpbWVab25lQWRhcHRlci5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5pbXBsLlRpbWVab25lQWRhcHRlci5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjhkNzM5YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LmltcGwuVGltZVpvbmVBZGFwdGVyLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjpjMmJjNzA1OTBkMjJlMDA0Y2VhNTU4ZTViYzcxZTQzZjViOTI1Mjg4YTJlMmU3NDBlNDg0MjdiYWU5YTM0MGM1CitzaXplIDEyNjg5CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2ZkZDU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjpmOTgwNzZhNWM1YTYwNmMyMGUyYTA0OWJkY2YwYWIyZTYxNWM1NGVlOGU1NGQ1NzU3ZmI1YzA5OGI5MGQxMjczCitzaXplIDUyMApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmRmM2RlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6NTdhMDc2OWQ1MmFlYjU2MTExM2Q4Nzc1OTJlMDNhNDIxMDZlYTJhODBlYzdiNTllYmI4MTJkZWI3Nzg4YzE3MAorc2l6ZSA1OTUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuQXJhYmljU2hhcGluZ0V4Y2VwdGlvbi5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkFyYWJpY1NoYXBpbmdFeGNlcHRpb24uZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyOGU0ODUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkFyYWJpY1NoYXBpbmdFeGNlcHRpb24uZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2Ojg1MDgwOTg3Yjc2YmJlOTUwNTkyZDczNTEyNWQxNTI2ZGQ2OGQyYjUzODQ2NmJkY2YwNmQ4MjdiYTBmY2YzMWQKK3NpemUgNjczMwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5DaGluZXNlRGF0ZUZvcm1hdC5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkNoaW5lc2VEYXRlRm9ybWF0LmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTEyMTM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5DaGluZXNlRGF0ZUZvcm1hdC5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6ODZlYjU3MzdiYzNiYzU1NWY4NTM3OWQ0YWE0ZTVmYmY5MDMzNTFkYjBlZmJmZjllZTA5ZDg2NTA5MTFmOTFmYgorc2l6ZSAxODIyODAKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDE3Y2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5DaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjAyNmNlYmFkMzkzN2RhY2IwZjU1ZjZlZmQyNGEzZDdkYjdjZmE0MTI5MDBhMjE1MzBiMmUwOWMzMTA0ZmU5ODcKK3NpemUgMjYxMDMKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdC5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0NzA1ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjNiZGVmOThhZDk5MjM2ODJmY2FkNTA1ZjE3MDI1OGRkOGIxNDcxZDJmOWNiNGI1NzEzMWU2YWMwOWQyYTI0NTYKK3NpemUgNDg1MzIKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EYXRlRm9ybWF0U3ltYm9scy5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzdmNWRlYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdFN5bWJvbHMuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2Ojc3OWUyMDIwNGY1ZjZhM2IzNzk0NjVlMzM1YTc1ZDBjZmY2YWRlMGQ3N2YwZmJlZTFmMTJiNDM0ODhjOGMyNWEKK3NpemUgMjU2NjQKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuRGVjaW1hbEZvcm1hdC5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjMzlkMjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjIxMjIxMjRkZTgyZGRjNjNiNjYyYWJiY2QwYjNiOGMxOGMwNGI3NzU1NTA1NzhhNTc0ZmU2OTZkMGU5NzhiN2MKK3NpemUgNjY2NApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXRTeW1ib2xzLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjU1OThmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9scy5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6MjZhZWY1YzVlZGExZTA3Yjk2N2YwOGQwMDA2MGYwMGIwN2EzNGI2YTQ4MjkwMTRlZDBmMzNhZTc2NjNkMWMyMQorc2l6ZSAzMTczCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjI5Nzg2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0LmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo3ZmIwYjQ0ZGI1ZWQzZmVlNjRkZjQyNTBmYmU1NTAxMTVkMjRjMjQ0OTRlOTA1NTA0Nzg4Y2IxOTc5ZTQ4ZGQ0CitzaXplIDY0MQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlY2Q0MGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdC5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6Yzc5MjBkODI5ZGZjZDY2MGNmNWQzZThkM2JlM2Y5Zjk2ZDY0NmNkMDM0OGIxM2FiZDgwYzRmMTMzOTg5YTYzYQorc2l6ZSAyODIyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdC5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdC5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc3NDkzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkTnVtYmVyRm9ybWF0LmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjphMTU2MDNkYjM4ZmJkZTk4NDRmZTFkNTFlYjc1NjAwODNhMDZmZmEyZDRlYjA0MGU5ZWFlMDViM2Q5MmM3YTg0CitzaXplIDUzOTcxCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOWNjMDZlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0LmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo5ZjMzNjI1MGE1OGQ2ZTExYmFkNTcxZGZkYWZkZWI4NWI5NDg0ZWNkYWM0NzQ0YzBiZDkzNzYyOWFiOTk2ZTBjCitzaXplIDE3NzU4NgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5NmQ0OTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6MTFjZTJmZDBmZWU2N2Q1MTBiYzA0ZjA4MTEzM2QzNGQwNTZlODIyYWQ1MzUwOGYyZWQ3YmE2YjJkNjgxNjU1MQorc2l6ZSAxMTIyNgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5CdWRkaGlzdENhbGVuZGFyLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQnVkZGhpc3RDYWxlbmRhci5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM4NWVkYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQnVkZGhpc3RDYWxlbmRhci5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6MzA3MWU1ZWM2YTk0MDJiMWVlMGNmYmEwZTc2NTY5ZTQ4MzdmNmJjYWQ3YmYwZjA2OTkwYmZiMzFhMjU5ZWIyZQorc2l6ZSAyMzQ0CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxYzEwYTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNhbGVuZGFyLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjowYmE2M2VjNDNjNGM2NDVkNTU1MTVkNjJmZDViNjlkYjE2MWFlNDgzNTkyMDc5NzI0ODQ2ZjQwNzZmZWUxMTc5CitzaXplIDMxNDYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjRlMThkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5DaGluZXNlQ2FsZW5kYXIuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OmNlZjA3YTRhYmMzZWU0N2Q2ZGExZTMwYzJlYjU0Y2JhZDNlM2YwODRiODU1YWQ2YTFhYjJjY2JjZWE4NzM4ZmQKK3NpemUgMjE5NQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5Db3B0aWNDYWxlbmRhci5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNvcHRpY0NhbGVuZGFyLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzQ5ZjBlZjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkNvcHRpY0NhbGVuZGFyLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjpjNzhkMDVjNGMxMzY4Y2RiMTU5YmFhMDJjZTFmZDVjOGMyOTUzNzY4MzYwNzljMGIzM2Q3NzVjYzZjZjdmZmYxCitzaXplIDI5NjQKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3kuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeS5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNmYTk3NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3kuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2Ojk4NzI2ZDQxZmNiZTI0OTU3ZDJiNjlhNjZmMjA4ODdhZDc1NzgyMWQ2OTFkNDhlOTcxODUxZDljNjRhYTc5NzIKK3NpemUgMzUxCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkV0aGlvcGljQ2FsZW5kYXIuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5FdGhpb3BpY0NhbGVuZGFyLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjUwNTY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5FdGhpb3BpY0NhbGVuZGFyLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjpjMGI1ZDk4MTVkZmUzM2QxZmY1NzUwZTNkNmE2MzZjMmNkODQ3MGFiMjgwNDBiMTNmMmY1Nzk0ZjMzZDMwNjQzCitzaXplIDIyNTYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIuZGF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhci5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNhOWNiMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjhkNmQwOGE5YzczOTk5NDNmNDA3MWI1NmM5YThlNmExZmUyOGJmZTZhMWM4OWUxMzIxZDlhZWExMDY0ZWE4MTgKK3NpemUgMzE1NQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhci5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzdlMDM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhci5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6NzliNjQ5N2M1NmFjOWEzNzhiZTZjODBkODU5NDhkMDNlZjU1NmFlMWM2NzY4Y2NjZjZkNzEzZmQ0ZjFlNDJmNworc2l6ZSAyODI3CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLklzbGFtaWNDYWxlbmRhci5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLklzbGFtaWNDYWxlbmRhci5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg4ZTIyMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuSXNsYW1pY0NhbGVuZGFyLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo5NjFlODU0MTYxODFkM2JkN2VjOGE2NDJmNzkzNmU4MDU4ZmZkOTJmOTlmNjQ4ZDk3MDJmYmQ1MTk3MTI5NmZmCitzaXplIDMwMTEKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuSmFwYW5lc2VDYWxlbmRhci5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXIuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmYzRjZmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLkphcGFuZXNlQ2FsZW5kYXIuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OmRhMmI0YjJjNzYwNzE5ZTcwNzU2YThiZDA0MTVjMWJiOGM3ZjhlNzcxOTM1MGU3N2ZiMzJjMDMxMTg3MjJlNDEKK3NpemUgMjM0MgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZS5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWQyNmI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NlcmlhbGl6YWJsZS9kYXRhL0lDVV8zLjYvY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZS5kYXQKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6YjgzYTljMTY3YjVlMTgxM2ZjZTdlZTcwNGFhOWNlMjljZGU2MTdhMjk5NjBkODU3ZDAzYjIwYTU0N2FkNGMxZgorc2l6ZSAxMjY1CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlRpbWVab25lLmRhdCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmNDRiZTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlRpbWVab25lLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo5NmI5YTIxMGY5ZDA2YzA2NjIyYzU3OTgwMTVkNDI2NzQ5MDNhMDc0MTFiMDAyZDdiMmYxYTM5ZjY2ZjJmYzkzCitzaXplIDEyODgKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZS5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlVMb2NhbGUuZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExOTIzZTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlVMb2NhbGUuZGF0CkBAIC0wLDAgKzEsMyBAQAordmVyc2lvbiBodHRwczovL2dpdC1sZnMuZ2l0aHViLmNvbS9zcGVjL3YxCitvaWQgc2hhMjU2OjJkOTUzMDRmYjQxMzE1M2QyZDYyYTgxMWFkN2U0ZDExYTk1MDE3YTUwZTYyN2ZjZTdjNjAzMzZlY2JjMGJhMjYKK3NpemUgMzkyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbi5kYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2VyaWFsaXphYmxlL2RhdGEvSUNVXzMuNi9jb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbi5kYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjJhYWY3ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zZXJpYWxpemFibGUvZGF0YS9JQ1VfMy42L2NvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLmRhdApAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjpiM2M5MGU4ZjAzN2ExMmViYzUyODExN2Q5ODM3MGZiYzk3YTM0MjMzNWZjNzFjODYxZDc5YzFkNTY5YzFjMmQwCitzaXplIDY3OTgKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zaGFwaW5nL0FyYWJpY1NoYXBpbmdSZWdUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2hhcGluZy9BcmFiaWNTaGFwaW5nUmVnVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc3NWM5MjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc2hhcGluZy9BcmFiaWNTaGFwaW5nUmVnVGVzdC5qYXZhCkBAIC0wLDAgKzEsNTA1IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNoYXBpbmc7CisKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5BcmFiaWNTaGFwaW5nOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQXJhYmljU2hhcGluZ0V4Y2VwdGlvbjsKKworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKKy8qKgorICogUmVncmVzc2lvbiB0ZXN0IGZvciBBcmFiaWMgc2hhcGluZy4KKyAqLworcHVibGljIGNsYXNzIEFyYWJpY1NoYXBpbmdSZWdUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgLyogY29uc3RhbnRzIGNvcGllZCBmcm9tIEFyYWJpY1NoYXBpbmcgZm9yIGNvbnZlbmllbmNlICovCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRU5HVEhfR1JPV19TSFJJTksgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiA9IDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQgPSAyOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HID0gMzsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFWFRfRElSRUNUSU9OX0xPR0lDQUwgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgPSA0OworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVUVEVSU19OT09QID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX1NIQVBFID0gODsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEID0gMHgxODsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX1VOU0hBUEUgPSAweDEwOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX05PT1AgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19FTjJBTiA9IDB4MjA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX0FOMkVOID0gMHg0MDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUdJVFNfRU4yQU5fSU5JVF9MUiA9IDB4NjA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX0VOMkFOX0lOSVRfQUwgPSAweDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBESUdJVFNfUkVTRVJWRUQgPSAweGEwOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRfVFlQRV9BTiA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRfVFlQRV9BTl9FWFRFTkRFRCA9IDB4MTAwOworCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBUZXN0RGF0YSB7CisgICAgICAgIHB1YmxpYyBpbnQgdHlwZTsKKyAgICAgICAgcHVibGljIFN0cmluZyBzb3VyY2U7CisgICAgICAgIHB1YmxpYyBpbnQgZmxhZ3M7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgcmVzdWx0OworICAgICAgICBwdWJsaWMgaW50IGxlbmd0aDsKKyAgICAgICAgcHVibGljIENsYXNzIGVycm9yOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUQU5EQVJEID0gMDsKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUFJFRkxJR0hUID0gMTsKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVJST1IgPSAyOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgVGVzdERhdGEgc3RhbmRhcmQoU3RyaW5nIHNvdXJjZSwgaW50IGZsYWdzLCBTdHJpbmcgcmVzdWx0KSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFRlc3REYXRhKFNUQU5EQVJELCBzb3VyY2UsIGZsYWdzLCByZXN1bHQsIDAsIG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBUZXN0RGF0YSBwcmVmbGlnaHQoU3RyaW5nIHNvdXJjZSwgaW50IGZsYWdzLCBpbnQgbGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFRlc3REYXRhKFBSRUZMSUdIVCwgc291cmNlLCBmbGFncywgbnVsbCwgbGVuZ3RoLCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdGF0aWMgVGVzdERhdGEgZXJyb3IoU3RyaW5nIHNvdXJjZSwgaW50IGZsYWdzLCBDbGFzcyBlcnJvcikgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBUZXN0RGF0YShFUlJPUiwgc291cmNlLCBmbGFncywgbnVsbCwgMCwgZXJyb3IpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBUZXN0RGF0YShpbnQgdHlwZSwgU3RyaW5nIHNvdXJjZSwgaW50IGZsYWdzLCBTdHJpbmcgcmVzdWx0LCBpbnQgbGVuZ3RoLCBDbGFzcyBlcnJvcikgeworICAgICAgICAgICAgdGhpcy50eXBlID0gdHlwZTsKKyAgICAgICAgICAgIHRoaXMuc291cmNlID0gc291cmNlOworICAgICAgICAgICAgdGhpcy5mbGFncyA9IGZsYWdzOworICAgICAgICAgICAgdGhpcy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICB0aGlzLmxlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHR5cGVuYW1lcyA9IHsgInN0YW5kYXJkIiwgInByZWZsaWdodCIsICJlcnJvciIgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCJbXG4iKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQodHlwZW5hbWVzW3R5cGVdKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIixcbiIpOworICAgICAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgibnVsbCIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCciJyk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChlc2NhcGVkU3RyaW5nKHNvdXJjZSkpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyInKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIixcbiIpOworICAgICAgICAgICAgYnVmLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGZsYWdzKSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIsXG4iKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIm51bGwiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnIicpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZXNjYXBlZFN0cmluZyhyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCciJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKCIsXG4iKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQobGVuZ3RoKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIixcbiIpOworICAgICAgICAgICAgYnVmLmFwcGVuZChlcnJvcik7CisgICAgICAgICAgICBidWYuYXBwZW5kKCddJyk7CisgICAgICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgbGFtQWxlZlNwZWNpYWxWTFRSID0KKyAgICAgICAgIlx1MDAyMFx1MDY0Nlx1MDYyMlx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyM1x1MDY0RVx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyN1x1MDY3MFx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyMlx1MDY1M1x1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyNVx1MDY1NVx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1MDY0Nlx1MDYyMlx1MDY1NFx1MDY0NFx1MDYyN1x1MDAyMCIgKworICAgICAgICAgIlx1RkVGQ1x1MDYzOSI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgdGFzaGtlZWxTcGVjaWFsVkxUUiA9CisgICAgICAgICJcdTA2NEFcdTA2MjhcdTA2MzFcdTA2MzlcdTAwMjAiICsKKyAgICAgICAgIlx1MDY0QVx1MDYyOFx1MDY1MVx1MDYzMVx1MDY0RVx1MDYzOVx1MDAyMCIgKworICAgICAgICAiXHUwNjRDXHUwNjRBXHUwNjI4XHUwNjMxXHUwNjRGXHUwNjM5XHUwMDIwIiArCisgICAgICAgICJcdTA2MjhcdTA2NzBcdTA2MzFcdTA2NzBcdTA2MzlcdTAwMjAiICsKKyAgICAgICAgIlx1MDYyOFx1MDY1M1x1MDYzMVx1MDY1M1x1MDYzOVx1MDAyMCIgKworICAgICAgICAiXHUwNjI4XHUwNjU0XHUwNjMxXHUwNjU0XHUwNjM5XHUwMDIwIiArCisgICAgICAgICJcdTA2MjhcdTA2NTVcdTA2MzFcdTA2NTVcdTA2MzlcdTAwMjAiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGxvZ2ljYWxVbnNoYXBlID0KKyAgICAgICAgIlx1MDAyMFx1MDAyMFx1MDAyMFx1RkU4RFx1RkVGNVx1MDAyMFx1RkVFNVx1MDAyMFx1RkU4RFx1RkVGN1x1MDAyMCIgKworICAgICAgICAiXHVGRUQ3XHVGRUZDXHUwMDIwXHVGRUUxXHUwMDIwXHVGRThEXHVGRURGXHVGRUNDXHVGRUFFXHVGRTkxXHVGRUY0IiArCisgICAgICAgICJcdUZFOTRcdTAwMjBcdUZFOERcdUZFREZcdUZFQTRcdUZFQUVcdUZFOTNcdTAwMjBcdTAwMjBcdTAwMjBcdTAwMjAiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIG51bVNvdXJjZSA9CisgICAgICAgICJcdTAwMzEiICsgIC8qIGVuOjEgKi8KKyAgICAgICAgIlx1MDYyNyIgKyAgLyogYXJhYmljOmFsZWYgKi8KKyAgICAgICAgIlx1MDAzMiIgKyAgLyogZW46MiAqLworICAgICAgICAiXHUwNmYzIiArICAvKiBhbjozICovCisgICAgICAgICJcdTAwNjEiICsgIC8qIGxhdGluOmEgKi8KKyAgICAgICAgIlx1MDAzNCI7ICAgLyogZW46NCAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGVzdERhdGFbXSBzdGFuZGFyZFRlc3RzID0geworICAgICAgICAvKiBsYW0gYWxlZiBzcGVjaWFsIHZpc3VhbCBsdHIgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobGFtQWxlZlNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDAyMFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHVmZTc2XHVmZWY3XHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZTVcdTAwMjBcdTA2NzBcdWZlZmJcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVlNVx1MDAyMFx1MDY1M1x1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHUwNjU1XHVmZWY5XHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZTVcdTAwMjBcdTA2NTRcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmY1x1ZmVjYiIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChsYW1BbGVmU3BlY2lhbFZMVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfU0hBUEUgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdTAwMjAiKSwKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobGFtQWxlZlNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxhbUFsZWZTcGVjaWFsVkxUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRSB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgfCBMRU5HVEhfR1JPV19TSFJJTkssCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiIiksCisKKyAgICAgICAgLyogVEFTSEtFRUwgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobGFtQWxlZlNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDAyMFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHVmZTc2XHVmZWY3XHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZTVcdTAwMjBcdTA2NzBcdWZlZmJcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVlNVx1MDAyMFx1MDY1M1x1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWU1XHUwMDIwXHUwNjU1XHVmZWY5XHVmZThkXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZTVcdTAwMjBcdTA2NTRcdWZlZjVcdWZlOGRcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmY1x1ZmVjYiIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChsYW1BbGVmU3BlY2lhbFZMVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfU0hBUEVfVEFTSEtFRUxfSVNPTEFURUQgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdTAwMjAiKSwKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobGFtQWxlZlNwZWNpYWxWTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxhbUFsZWZTcGVjaWFsVkxUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRCB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgfCBMRU5HVEhfR1JPV19TSFJJTkssCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdWZlZTVcdWZlZjVcdWZlOGRcdTAwMjBcdWZlZTUiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Nlx1ZmVmN1x1ZmU4ZFx1MDAyMFx1ZmVlNVx1MDY3MCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZiXHVmZThkXHUwMDIwXHVmZWU1XHUwNjUzXHVmZWY1IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGRcdTAwMjBcdWZlZTVcdTA2NTVcdWZlZjlcdWZlOGQiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAyMFx1ZmVlNVx1MDY1NFx1ZmVmNVx1ZmU4ZFx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWZjXHVmZWNiIiksCisKKyAgICAgICAgLyogdGFzaGtlZWwgc3BlY2lhbCB2aXN1YWwgbHRyICovCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKHRhc2hrZWVsU3BlY2lhbFZMVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfU0hBUEUgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZWYyXHVmZTkxXHVmZWFlXHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZjJcdWZlOTFcdWZlN2NcdWZlYWVcdWZlNzdcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU3Mlx1ZmVmMlx1ZmU5MVx1ZmVhZVx1ZmU3OVx1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThmXHUwNjcwXHVmZWFlXHUwNjcwXHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGZcdTA2NTNcdWZlYWVcdTA2NTNcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU4Zlx1MDY1NFx1ZmVhZVx1MDY1NFx1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThmXHUwNjU1XHVmZWFlXHUwNjU1XHVmZWNiXHUwMDIwIiksCisKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQodGFzaGtlZWxTcGVjaWFsVkxUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRCB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIgfCBMRU5HVEhfRklYRURfU1BBQ0VTX05FQVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlZjJcdWZlOTFcdWZlYWVcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmVmMlx1ZmU5MVx1ZmU3Y1x1ZmVhZVx1ZmU3Nlx1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZTcyXHVmZWYyXHVmZTkxXHVmZWFlXHVmZTc4XHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGZcdTA2NzBcdWZlYWVcdTA2NzBcdWZlY2JcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1ZmU4Zlx1MDY1M1x1ZmVhZVx1MDY1M1x1ZmVjYlx1MDAyMCIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHVmZThmXHUwNjU0XHVmZWFlXHUwNjU0XHVmZWNiXHUwMDIwIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdWZlOGZcdTA2NTVcdWZlYWVcdTA2NTVcdWZlY2JcdTAwMjAiKSwKKworICAgICAgICAvKiBsb2dpY2FsIHVuc2hhcGUgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobG9naWNhbFVuc2hhcGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfVU5TSEFQRSB8IFRFWFRfRElSRUNUSU9OX0xPR0lDQUwgfCBMRU5HVEhfRklYRURfU1BBQ0VTX05FQVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdTAwMjBcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjJcdTA2NDZcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjNcdTA2NDJcdTA2NDRcdTA2MjciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDY0NVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYzOVx1MDYzMVx1MDYyOFx1MDY0YVx1MDYyOVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYyZFx1MDYzMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjI5XHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxvZ2ljYWxVbnNoYXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBURVhUX0RJUkVDVElPTl9MT0dJQ0FMIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTAwMjBcdTAwMjBcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjJcdTAwMjBcdTA2NDZcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjNcdTAwMjBcdTA2NDIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDY0NFx1MDYyN1x1MDAyMFx1MDY0NVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYzOVx1MDYzMVx1MDYyOFx1MDY0YVx1MDYyOVx1MDAyMFx1MDYyNyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjQ0XHUwNjJkXHUwNjMxXHUwNjI5XHUwMDIwIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxvZ2ljYWxVbnNoYXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBURVhUX0RJUkVDVElPTl9MT0dJQ0FMIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2MjdcdTA2NDRcdTA2MjJcdTAwMjBcdTA2NDZcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MjNcdTAwMjBcdTA2NDJcdTA2NDRcdTA2MjdcdTAwMjAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDY0NVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYzOVx1MDYzMVx1MDYyOFx1MDY0YVx1MDYyOVx1MDAyMFx1MDYyN1x1MDY0NFx1MDYyZFx1MDYzMSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjI5XHUwMDIwXHUwMDIwXHUwMDIwXHUwMDIwIiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKGxvZ2ljYWxVbnNoYXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBURVhUX0RJUkVDVElPTl9MT0dJQ0FMIHwgTEVOR1RIX0dST1dfU0hSSU5LLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwMDIwXHUwMDIwXHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIyXHUwMDIwXHUwNjQ2XHUwMDIwXHUwNjI3XHUwNjQ0XHUwNjIzXHUwMDIwXHUwNjQyIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NDRcdTA2MjdcdTAwMjBcdTA2NDVcdTAwMjBcdTA2MjdcdTA2NDRcdTA2MzlcdTA2MzFcdTA2MjhcdTA2NGFcdTA2MjlcdTAwMjBcdTA2MjciICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDY0NFx1MDYyZFx1MDYzMVx1MDYyOVx1MDAyMFx1MDAyMFx1MDAyMFx1MDAyMCIpLAorCisgICAgICAgIC8qIG51bWJlcnMgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobnVtU291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBESUdJVFNfRU4yQU4gfCBESUdJVF9UWVBFX0FOLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNjYxXHUwNjI3XHUwNjYyXHUwNmYzXHUwMDYxXHUwNjY0IiksCisgICAgICAgIFRlc3REYXRhLnN0YW5kYXJkKG51bVNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRElHSVRTX0FOMkVOIHwgRElHSVRfVFlQRV9BTl9FWFRFTkRFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAzMVx1MDYyN1x1MDAzMlx1MDAzM1x1MDA2MVx1MDAzNCIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChudW1Tb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTl9JTklUX0xSIHwgRElHSVRfVFlQRV9BTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDAzMVx1MDYyN1x1MDY2Mlx1MDZmM1x1MDA2MVx1MDAzNCIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChudW1Tb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTl9JTklUX0FMIHwgRElHSVRfVFlQRV9BTl9FWFRFTkRFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDZmMVx1MDYyN1x1MDZmMlx1MDZmM1x1MDA2MVx1MDAzNCIpLAorICAgICAgICBUZXN0RGF0YS5zdGFuZGFyZChudW1Tb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTl9JTklUX0xSIHwgRElHSVRfVFlQRV9BTiB8IFRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA2NjFcdTA2MjdcdTAwMzJcdTA2ZjNcdTAwNjFcdTAwMzQiKSwKKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobnVtU291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBESUdJVFNfRU4yQU5fSU5JVF9BTCB8IERJR0lUX1RZUEVfQU5fRVhURU5ERUQgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUwNmYxXHUwNjI3XHUwMDMyXHUwNmYzXHUwMDYxXHUwNmY0IiksCisKKyAgICAgICAgLyogbm8tb3AgKi8KKyAgICAgICAgVGVzdERhdGEuc3RhbmRhcmQobnVtU291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICBudW1Tb3VyY2UpLAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBUZXN0RGF0YVtdIHByZWZsaWdodFRlc3RzID0geworICAgICAgICAvKiBwcmVmbGlnaHQgKi8KKyAgICAgICAgVGVzdERhdGEucHJlZmxpZ2h0KCJcdTA2NDRcdTA2MjciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19TSEFQRSB8IExFTkdUSF9HUk9XX1NIUklOSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDEpLAorCisgICAgICAgIFRlc3REYXRhLnByZWZsaWdodCgiXHUwNjQ0XHUwNjI3XHUwMDMxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIERJR0lUU19FTjJBTiB8IERJR0lUX1RZUEVfQU5fRVhURU5ERUQgfCBMRU5HVEhfR1JPV19TSFJJTkssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAzKSwKKworICAgICAgICBUZXN0RGF0YS5wcmVmbGlnaHQoIlx1MDY0NFx1MDY0NCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1NIQVBFIHwgTEVOR1RIX0dST1dfU0hSSU5LLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMiksCisKKyAgICAgICAgVGVzdERhdGEucHJlZmxpZ2h0KCJcdWZlZjciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19VTlNIQVBFIHwgTEVOR1RIX0dST1dfU0hSSU5LLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMiksCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFRlc3REYXRhW10gZXJyb3JUZXN0cyA9IHsKKyAgICAgICAgLyogYmFkIGRhdGEgKi8KKyAgICAgICAgVGVzdERhdGEuZXJyb3IoIlx1MDAyMFx1ZmVmN1x1MDY0NFx1MDAyMCIsCisgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfVU5TSEFQRSB8IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbi5jbGFzcyksCisKKyAgICAgICAgVGVzdERhdGEuZXJyb3IoIlx1MDAyMFx1ZmVmNyIsCisgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfVU5TSEFQRSB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uLmNsYXNzKSwKKworICAgICAgICBUZXN0RGF0YS5lcnJvcigiXHVmZWY3XHUwMDIwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgTEVUVEVSU19VTlNIQVBFIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkcsCisgICAgICAgICAgICAgICAgICAgICAgIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24uY2xhc3MpLAorCisgICAgICAgIC8qIGJhZCBvcHRpb25zICovCisgICAgICAgIFRlc3REYXRhLmVycm9yKCJcdWZlZjciLAorICAgICAgICAgICAgICAgICAgICAgICAweGZmZmZmZmZmLAorICAgICAgICAgICAgICAgICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uY2xhc3MpLAorCisgICAgICAgIFRlc3REYXRhLmVycm9yKCJcdWZlZjciLAorICAgICAgICAgICAgICAgICAgICAgICBMRVRURVJTX1VOU0hBUEUgfCBMRU5HVEhfR1JPV19TSFJJTkssCisgICAgICAgICAgICAgICAgICAgICAgIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24uY2xhc3MpLAorCisgICAgICAgIFRlc3REYXRhLmVycm9yKG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgIExFVFRFUlNfVU5TSEFQRSB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5ELAorICAgICAgICAgICAgICAgICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uY2xhc3MpLAorICAgIH07CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0U3RhbmRhcmQoKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RhbmRhcmRUZXN0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVGVzdERhdGEgdGVzdCA9IHN0YW5kYXJkVGVzdHNbaV07CisKKyAgICAgICAgICAgIEV4Y2VwdGlvbiBleCA9IG51bGw7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgICAgIEFyYWJpY1NoYXBpbmcgc2hhcGVyID0gbnVsbDsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzaGFwZXIgPSBuZXcgQXJhYmljU2hhcGluZyh0ZXN0LmZsYWdzKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzaGFwZXIuc2hhcGUodGVzdC5zb3VyY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSWxsZWdhbFN0YXRlRXhjZXB0aW9uIGllKXsKKyAgICAgICAgICAgICAgICB3YXJubG4oIklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjogIitpZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBleCA9IGU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghdGVzdC5yZXN1bHQuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRUZXN0RmFpbHVyZShpLCB0ZXN0LCBzaGFwZXIsIHJlc3VsdCwgZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFByZWZsaWdodCgpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwcmVmbGlnaHRUZXN0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVGVzdERhdGEgdGVzdCA9IHByZWZsaWdodFRlc3RzW2ldOworCisgICAgICAgICAgICBFeGNlcHRpb24gZXggPSBudWxsOworICAgICAgICAgICAgY2hhciBzcmNbXSA9IG51bGw7CisgICAgICAgICAgICBpbnQgbGVuID0gMDsKKyAgICAgICAgICAgIEFyYWJpY1NoYXBpbmcgc2hhcGVyID0gbnVsbDsKKworICAgICAgICAgICAgaWYgKHRlc3Quc291cmNlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzcmMgPSB0ZXN0LnNvdXJjZS50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHNoYXBlciA9IG5ldyBBcmFiaWNTaGFwaW5nKHRlc3QuZmxhZ3MpOworICAgICAgICAgICAgICAgIGxlbiA9IHNoYXBlci5zaGFwZShzcmMsIDAsIHNyYy5sZW5ndGgsIG51bGwsIDAsIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXggPSBlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGVzdC5sZW5ndGggIT0gbGVuKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0VGVzdEZhaWx1cmUoaSwgdGVzdCwgc2hhcGVyLCB0ZXN0LnNvdXJjZSwgZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEVycm9yKCkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGVycm9yVGVzdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFRlc3REYXRhIHRlc3QgPSBlcnJvclRlc3RzW2ldOworCisgICAgICAgICAgICBFeGNlcHRpb24gZXggPSBudWxsOworICAgICAgICAgICAgY2hhciBzcmNbXSA9IG51bGw7CisgICAgICAgICAgICBpbnQgbGVuID0gMDsKKyAgICAgICAgICAgIEFyYWJpY1NoYXBpbmcgc2hhcGVyID0gbnVsbDsKKworICAgICAgICAgICAgaWYgKHRlc3Quc291cmNlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzcmMgPSB0ZXN0LnNvdXJjZS50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgICAgIGxlbiA9IHNyYy5sZW5ndGg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2hhcGVyID0gbmV3IEFyYWJpY1NoYXBpbmcodGVzdC5mbGFncyk7CisgICAgICAgICAgICAgICAgc2hhcGVyLnNoYXBlKHNyYywgMCwgbGVuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGV4ID0gZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCF0ZXN0LmVycm9yLmlzSW5zdGFuY2UoZXgpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0VGVzdEZhaWx1cmUoaSwgdGVzdCwgc2hhcGVyLCB0ZXN0LnNvdXJjZSwgZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEVxdWFscygpCisgICAgeworICAgICAgICBBcmFiaWNTaGFwaW5nIGFzMSA9IG5ldyBBcmFiaWNTaGFwaW5nKExFVFRFUlNfU0hBUEUgfCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSIHwgTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSKTsKKyAgICAgICAgQXJhYmljU2hhcGluZyBhczIgPSBuZXcgQXJhYmljU2hhcGluZyhMRVRURVJTX1NIQVBFIHwgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUiB8IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUik7CisgICAgICAgIEFyYWJpY1NoYXBpbmcgYXMzID0gbmV3IEFyYWJpY1NoYXBpbmcoTEVUVEVSU19VTlNIQVBFIHwgVEVYVF9ESVJFQ1RJT05fTE9HSUNBTCB8IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HKTsKKworICAgICAgICBpZiAoISBhczEuZXF1YWxzKGFzMSkpIHsKKyAgICAgICAgICAgIGVycigiYXMxOiAiICsgYXMxICsgIiBkb2VzIG5vdCBlcXVhbCBpdHNlbGYhXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghIGFzMS5lcXVhbHMoYXMyKSkgeworICAgICAgICAgICAgZXJyKCJhczE6ICIgKyBhczEgKyAiLCBhczI6ICIgKyBhczIgKyAiIGFyZSBub3QgZXF1YWwsIGJ1dCBzaG91bGQgYmUuXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhczEuZXF1YWxzKGFzMykpIHsKKyAgICAgICAgICAgIGVycigiYXMxOiAiICsgYXMxICsgIiwgYXMzOiAiICsgYXMzICsgIiBhcmUgZXF1YWwgYnV0IHNob3VsZCBub3QgYmUuXG4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlcG9ydFRlc3RGYWlsdXJlKGludCBpbmRleCwgVGVzdERhdGEgdGVzdCwgQXJhYmljU2hhcGluZyBzaGFwZXIsIFN0cmluZyByZXN1bHQsIEV4Y2VwdGlvbiBlcnJvcikgeworICAgICAgICBpZiAobm9EYXRhKCkgJiYgZXJyb3IgIT0gbnVsbCAmJiBlcnJvciBpbnN0YW5jZW9mIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiApIHsKKyAgICAgICAgICAgIHdhcm5sbihlcnJvci5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYnVmLmFwcGVuZCgiKioqIHRlc3QgZmFpbHVyZSAqKipcbiIpOworICAgICAgICBidWYuYXBwZW5kKCJpbmRleDogIiArIGluZGV4ICsgIlxuIik7CisgICAgICAgIGJ1Zi5hcHBlbmQoInRlc3Q6ICIgKyB0ZXN0ICsgIlxuIik7CisgICAgICAgIGJ1Zi5hcHBlbmQoInNoYXBlcjogIiArIHNoYXBlciArICJcbiIpOworICAgICAgICBidWYuYXBwZW5kKCJyZXN1bHQ6ICIgKyBlc2NhcGVkU3RyaW5nKHJlc3VsdCkgKyAiXG4iKTsKKyAgICAgICAgYnVmLmFwcGVuZCgiZXJyb3I6ICIgKyBlcnJvciArICJcbiIpOworCisgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCAmJiB0ZXN0LnJlc3VsdCAhPSBudWxsICYmICF0ZXN0LnJlc3VsdC5lcXVhbHMocmVzdWx0KSkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNYXRoLm1heCh0ZXN0LnJlc3VsdC5sZW5ndGgoKSwgcmVzdWx0Lmxlbmd0aCgpKTsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBJbnRlZ2VyLnRvU3RyaW5nKGkpOworICAgICAgICAgICAgICAgIGlmICh0ZW1wLmxlbmd0aCgpIDwgMikgeworICAgICAgICAgICAgICAgICAgICB0ZW1wID0gIiAiLmNvbmNhdCh0ZW1wKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2hhciB0cmcgPSBpIDwgdGVzdC5yZXN1bHQubGVuZ3RoKCkgPyB0ZXN0LnJlc3VsdC5jaGFyQXQoaSkgOiAnXHVmZmZmJzsKKyAgICAgICAgICAgICAgICBjaGFyIHJlcyA9IGkgPCByZXN1bHQubGVuZ3RoKCkgPyByZXN1bHQuY2hhckF0KGkpIDogJ1x1ZmZmZic7CisKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJbIiArIHRlbXAgKyAiXSAiKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGVzY2FwZWRTdHJpbmcoIiIgKyB0cmcpICsgIiAiKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGVzY2FwZWRTdHJpbmcoIiIgKyByZXMpICsgIiAiKTsKKyAgICAgICAgICAgICAgICBpZiAodHJnICE9IHJlcykgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIqKioiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlcnIoYnVmLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBlc2NhcGVkU3RyaW5nKFN0cmluZyBzdHIpIHsKKyAgICAgICAgaWYgKHN0ciA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHN0ci5sZW5ndGgoKSAqIDYpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0ci5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gc3RyLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxcdSIpOworICAgICAgICAgICAgaWYgKGNoIDwgMHgxMDAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNoIDwgMHgwMTAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNoIDwgMHgwMDEwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG5ldyBBcmFiaWNTaGFwaW5nUmVnVGVzdCgpLnJ1bihhcmdzKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3NoYXBpbmcvQXJhYmljU2hhcGluZ1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zaGFwaW5nL0FyYWJpY1NoYXBpbmdUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDI3MzM1YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zaGFwaW5nL0FyYWJpY1NoYXBpbmdUZXN0LmphdmEKQEAgLTAsMCArMSwyODYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDAxLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnNoYXBpbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkFyYWJpY1NoYXBpbmc7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5BcmFiaWNTaGFwaW5nRXhjZXB0aW9uOworCisvKioKKyAqIEludGVyYWN0aXZlIHRlc3QgZm9yIEFyYWJpYyBzaGFwaW5nLgorICogSW52b2tlIGZyb20gYSBjb21tYW5kIGxpbmUgcGFzc2luZyBhcmdzIGFuZCBzdHJpbmdzLiAgVXNlICctaGVscCcgdG8gc2VlIGRlc2NyaXB0aW9uIG9mIGFyZ3VtZW50cy4KKyAqLworcHVibGljIGNsYXNzIEFyYWJpY1NoYXBpbmdUZXN0IHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09QWSA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOUExBQ0UgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVFJJTkcgPSAyOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBpbnQgdGVzdHR5cGUgPSBDT1BZOworICAgICAgICBpbnQgb3B0aW9ucyA9IDA7CisgICAgICAgIGludCBzcyA9IDA7CisgICAgICAgIGludCBzbCA9IC0xOworICAgICAgICBpbnQgZHMgPSAwOworICAgICAgICBpbnQgZGwgPSAtMTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSAiJDIyLjQgdGVzdCAxMjMgXHVmZWY2XHUwNjQ0XHUwNjIyIDQ1NiBcdTA2NjRcdTA2NjVcdTA2NjYhIjsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBhcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgaWYgKGFyZy5jaGFyQXQoMCkgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG9wdCA9IGFyZy5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbCA9IG9wdDsKKyAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSBhcmcuaW5kZXhPZignOicpOworICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBvcHQgPSBvcHQuc3Vic3RyaW5nKDAsIE1hdGgubWluKGluZGV4LCAzKSk7CisgICAgICAgICAgICAgICAgICAgIHZhbCA9IGFyZy5zdWJzdHJpbmcoaW5kZXggKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJsZW4iKSkgeworICAgICAgICAgICAgICAgICAgICBvcHRpb25zICY9IH5BcmFiaWNTaGFwaW5nLkxFTkdUSF9NQVNLOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImdzIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRU5HVEhfR1JPV19TSFJJTks7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoInNuIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRU5HVEhfRklYRURfU1BBQ0VTX05FQVI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoInNlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRU5HVEhfRklYRURfU1BBQ0VTX0FUX0VORDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgic2IiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLkxFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dWYWxFcnJvcihvcHQsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJkaXIiKSkgeworICAgICAgICAgICAgICAgICAgICBvcHRpb25zICY9IH5BcmFiaWNTaGFwaW5nLlRFWFRfRElSRUNUSU9OX01BU0s7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgibG9nIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5URVhUX0RJUkVDVElPTl9MT0dJQ0FMOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJ2aXMiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLlRFWFRfRElSRUNUSU9OX1ZJU1VBTF9MVFI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoImxldCIpKSB7CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgJj0gfkFyYWJpY1NoYXBpbmcuTEVUVEVSU19NQVNLOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoIm5vIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRVRURVJTX05PT1A7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoInNoIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5MRVRURVJTX1NIQVBFOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJ1biIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuTEVUVEVSU19VTlNIQVBFOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJ0YSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VmFsRXJyb3Iob3B0LCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzSWdub3JlQ2FzZSgiZGlnIikpIHsKKyAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyAmPSB+QXJhYmljU2hhcGluZy5ESUdJVFNfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJubyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuRElHSVRTX05PT1A7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImVhIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5ESUdJVFNfRU4yQU47CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImFlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5ESUdJVFNfQU4yRU47CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImxyIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgfD0gQXJhYmljU2hhcGluZy5ESUdJVFNfRU4yQU5fSU5JVF9MUjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgiYWwiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLkRJR0lUU19FTjJBTl9JTklUX0FMOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dWYWxFcnJvcihvcHQsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJ0eXAiKSkgeworICAgICAgICAgICAgICAgICAgICBvcHRpb25zICY9IH5BcmFiaWNTaGFwaW5nLkRJR0lUX1RZUEVfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJhbiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zIHw9IEFyYWJpY1NoYXBpbmcuRElHSVRfVFlQRV9BTjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgiZXgiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyB8PSBBcmFiaWNTaGFwaW5nLkRJR0lUX1RZUEVfQU5fRVhURU5ERUQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoImRzdCIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkcyA9IEludGVnZXIucGFyc2VJbnQodmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VmFsRXJyb3Iob3B0LCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzSWdub3JlQ2FzZSgiZGxuIikpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRsID0gSW50ZWdlci5wYXJzZUludCh2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dWYWxFcnJvcihvcHQsIHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHNJZ25vcmVDYXNlKCJzc3QiKSkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3MgPSBJbnRlZ2VyLnBhcnNlSW50KHZhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoInNsbiIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzbCA9IEludGVnZXIucGFyc2VJbnQodmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VmFsRXJyb3Iob3B0LCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzSWdub3JlQ2FzZSgidGVzIikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKCJjcCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0dHlwZSA9IENPUFk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsLmVxdWFsc0lnbm9yZUNhc2UoImlwIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3R0eXBlID0gSU5QTEFDRTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwuZXF1YWxzSWdub3JlQ2FzZSgic3QiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHR5cGUgPSBTVFJJTkc7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1ZhbEVycm9yKG9wdCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFsc0lnbm9yZUNhc2UoImhlbHAiKSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odXNhZ2UpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93T3B0RXJyb3Iob3B0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGFzc3VtZSB0ZXh0CisgICAgICAgICAgICAgICAgdGV4dCA9IHBhcnNlVGV4dChhcmcpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHNsIDwgMCkgeworICAgICAgICAgICAgc2wgPSB0ZXh0Lmxlbmd0aCgpIC0gc3M7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInNsIGRlZmF1bHRpbmcgdG8gIiArIHNsKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGwgPCAwKSB7CisgICAgICAgICAgICBkbCA9IDIgKiBzbDsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGwgZGVmYXVsdGluZyB0byAiICsgZGwpOworICAgICAgICB9CisKKyAgICAgICAgQXJhYmljU2hhcGluZyBzaGFwZXIgPSBuZXcgQXJhYmljU2hhcGluZyhvcHRpb25zKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJzaGFwZXI6ICIgKyBzaGFwZXIpOworCisgICAgICAgIGNoYXJbXSBzcmMgPSB0ZXh0LnRvQ2hhckFycmF5KCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIGlucHV0OiAnIiArIGVzY2FwZWRUZXh0KHNyYywgc3MsIHNsKSArICInIik7CisgICAgICAgIGlmICh0ZXN0dHlwZSAhPSBTVFJJTkcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigic3RhcnQ6ICIgKyBzcyArICIgbGVuZ3RoOiAiICsgc2wgKyAiIHRvdGFsIGxlbmd0aDogIiArIHNyYy5sZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCA9IC0xOworICAgICAgICBjaGFyW10gZGVzdCA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN3aXRjaCAodGVzdHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgQ09QWToKKyAgICAgICAgICAgICAgICBkZXN0ID0gbmV3IGNoYXJbZHMgKyBkbF07CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2hhcGVyLnNoYXBlKHNyYywgc3MsIHNsLCBkZXN0LCBkcywgZGwpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIElOUExBQ0U6CisgICAgICAgICAgICAgICAgc2hhcGVyLnNoYXBlKHNyYywgc3MsIHNsKTsKKyAgICAgICAgICAgICAgICBkcyA9IHNzOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNsOworICAgICAgICAgICAgICAgIGRlc3QgPSBzcmM7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgU1RSSU5HOgorICAgICAgICAgICAgICAgIGRlc3QgPSBzaGFwZXIuc2hhcGUodGV4dCkudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgICAgICBkcyA9IDA7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZGVzdC5sZW5ndGg7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigib3V0cHV0OiAnIiArIGVzY2FwZWRUZXh0KGRlc3QsIGRzLCByZXN1bHQpICsgIiciKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibGVuZ3RoOiAiICsgcmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChkcyAhPSAwIHx8IHJlc3VsdCAhPSBkZXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZnVsbCBvdXRwdXQ6ICciICsgZXNjYXBlZFRleHQoZGVzdCwgMCwgZGVzdC5sZW5ndGgpICsgIiciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNhdWdodCBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNhdWdodCBFeGNlcHRpb24iKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdGhyb3dPcHRFcnJvcihTdHJpbmcgb3B0KSB7CisgICAgICAgIHRocm93VXNhZ2VFcnJvcigidW5rbm93biBvcHRpb246ICIgKyBvcHQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdGhyb3dWYWxFcnJvcihTdHJpbmcgb3B0LCBTdHJpbmcgdmFsKSB7CisgICAgICAgIHRocm93VXNhZ2VFcnJvcigidW5rbm93biB2YWx1ZTogIiArIHZhbCArICIgZm9yIG9wdGlvbjogIiArIG9wdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB0aHJvd1VzYWdlRXJyb3IoU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoIioqKiB1c2FnZSBlcnJvciAqKipcbiIpOworICAgICAgICBidWYuYXBwZW5kKG1lc3NhZ2UpOworICAgICAgICBidWYuYXBwZW5kKCJcbiIpOworICAgICAgICBidWYuYXBwZW5kKHVzYWdlKTsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGJ1Zi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgdXNhZ2UgPSAKKyAgICAgICAgIlVzYWdlOiBbb3B0aW9uXSogW3RleHRdXG4iICsKKyAgICAgICAgIiAgd2hlcmUgb3B0aW9uIGlzIGluIHRoZSBmb3JtYXQgJy1vcHRbOnZhbF0nXG4iICsKKyAgICAgICAgIiAgb3B0aW9ucyBhcmU6XG4iICsKKyAgICAgICAgIiAgICAtbGVuOltnc3xzbnxzZXxzYl0gICAgKGxlbmd0aDogZ3Jvdy9zaHJpbmssIHNwYWNlcyBuZWFyLCBzcGFjZXMgZW5kLCBzcGFjZXMgYmVnaW5uaW5nKVxuIiArCisgICAgICAgICIgICAgLWRpcjpbbG9nfHZpc10gICAgICAgIChkaXJlY3Rpb246IGxvZ2ljYWwsIHZpc3VhbClcbiIgKworICAgICAgICAiICAgIC1sZXQ6W25vfHNofHVufHRhXSAgICAobGV0dGVyczogbm9vcCwgc2hhcGUsIHVuc2hhcGUsIHRhc2hrZWVsKVxuIiArCisgICAgICAgIC8vICIgICAgLWxldDpbbm98c2h8dW5dICAgICAgIChsZXR0ZXJzOiBub29wLCBzaGFwZSwgdW5zaGFwZSlcbiIgKworICAgICAgICAiICAgIC1kaWc6W25vfGVhfGFlfGxyfGFsXSAoZGlnaXRzOiBub29wLCBlbjJhbiwgYW4yZW4sIGVuMmFuX2xyLCBlbjJhbl9hbClcbiIgKworICAgICAgICAiICAgIC10eXA6W2FufGV4XSAgICAgICAgICAoZGlnaXQgdHlwZTogYXJhYmljLCBhcmFiaWMgZXh0ZW5kZWQpXG4iICsKKyAgICAgICAgIiAgICAtZHN0OiMgICAgICAgICAgICAgICAgKGRlc3Qgc3RhcnQ6IFtpbnRlZ2VyXSlcbiIgKworICAgICAgICAiICAgIC1kbG46IyAgICAgICAgICAgICAgICAoZGVzdCBsZW5ndGggKG1heCBzaXplKTogW2ludGVnZXJdKVxuIiArCisgICAgICAgICIgICAgLXNzdDojICAgICAgICAgICAgICAgIChzb3VyY2Ugc3RhcnQ6IFtpbnRlZ2VyXSlcbiIgKworICAgICAgICAiICAgIC1zbG46IyAgICAgICAgICAgICAgICAoc291cmNlIGxlbmd0aDogW2ludGVnZXJdKVxuIiArCisgICAgICAgICIgICAgLXRlczpbY3B8aXB8c3RdICAgICAgICh0ZXN0IHR5cGU6IGNvcHksIGluIHBsYWNlLCBzdHJpbmcpXG4iICsKKyAgICAgICAgIiAgICAtaGVscCAgICAgICAgICAgICAgICAgKHByaW50IHRoaXMgaGVscCBtZXNzYWdlKVxuIiArCisgICAgICAgICIgIHRleHQgY2FuIGNvbnRhaW4gdW5pY29kZSBlc2NhcGUgdmFsdWVzIGluIHRoZSBmb3JtYXQgJ1xcdVhYWFgnIG9ubHlcbiI7CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBlc2NhcGVkVGV4dChjaGFyW10gdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydCwgZSA9IHN0YXJ0ICsgbGVuZ3RoOyBpIDwgZTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gdGV4dFtpXTsKKyAgICAgICAgICAgIGlmIChjaCA8IDB4MjAgfHwgY2ggPiAweDdlKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiXFx1Iik7CisgICAgICAgICAgICAgICAgaWYgKGNoIDwgMHgxMDAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNoIDwgMHgxMDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2ggPCAweDEwKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJzAnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgcGFyc2VUZXh0KFN0cmluZyB0ZXh0KSB7CisgICAgICAgIC8vIHByb2Nlc3MgdW5pY29kZSBlc2NhcGVzIChvbmx5KQorICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBjaGFyW10gY2hhcnMgPSB0ZXh0LnRvQ2hhckFycmF5KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBjaGFyc1tpXTsKKyAgICAgICAgICAgIGlmIChjaCA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgaWYgKChpIDwgY2hhcnMubGVuZ3RoIC0gMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgKGNoYXJzW2krMV0gPT0gJ3UnKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgdmFsID0gSW50ZWdlci5wYXJzZUludCh0ZXh0LnN1YnN0cmluZyhpKzIsIGkrNiksIDE2KTsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgoY2hhcil2YWwpOworICAgICAgICAgICAgICAgICAgICBpICs9IDU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9JRE5BQ29uZm9ybWFuY2VUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9JRE5BQ29uZm9ybWFuY2VUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTVjMDNmOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL0lETkFDb25mb3JtYW5jZVRlc3QuamF2YQpAQCAtMCwwICsxLDMxMSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc3RyaW5ncHJlcDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5pby5VbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdFV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5JRE5BOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKy8qKgorICogQGF1dGhvciBsaW1hb3l1CisgKiAKKyAqLworcHVibGljIGNsYXNzIElETkFDb25mb3JtYW5jZVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IElETkFDb25mb3JtYW5jZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbmZvcm1hbmNlKCkgeworCisgICAgICAgIFRyZWVNYXAgaW5wdXREYXRhID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnB1dERhdGEgPSBSZWFkSW5wdXQuZ2V0SW5wdXREYXRhKCk7CisgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFNldCBrZXlNYXAgPSBpbnB1dERhdGEua2V5U2V0KCk7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXRlciA9IGtleU1hcC5pdGVyYXRvcigpOyBpdGVyLmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIExvbmcgZWxlbWVudCA9IChMb25nKSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIEhhc2hNYXAgdGVtcEhhc2ggPSAoSGFzaE1hcCkgaW5wdXREYXRhLmdldChlbGVtZW50KTsKKworICAgICAgICAgICAgLy9nZXQgYWxsIGF0dHJpYnV0ZXMgZnJvbSBpbnB1dCBkYXRhCisgICAgICAgICAgICBTdHJpbmcgcGFzc2ZhaWwgPSAoU3RyaW5nKSB0ZW1wSGFzaC5nZXQoInBhc3NmYWlsIik7CisgICAgICAgICAgICBTdHJpbmcgZGVzYyA9IChTdHJpbmcpIHRlbXBIYXNoLmdldCgiZGVzYyIpOworICAgICAgICAgICAgU3RyaW5nIHR5cGUgPSAoU3RyaW5nKSB0ZW1wSGFzaC5nZXQoInR5cGUiKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lYmFzZSA9IChTdHJpbmcpIHRlbXBIYXNoLmdldCgibmFtZWJhc2UiKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1ldXRmOCA9IChTdHJpbmcpIHRlbXBIYXNoLmdldCgibmFtZXV0ZjgiKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lem9uZSA9IChTdHJpbmcpIHRlbXBIYXNoLmdldCgibmFtZXpvbmUiKTsKKyAgICAgICAgICAgIFN0cmluZyBmYWlsem9uZTEgPSAoU3RyaW5nKSB0ZW1wSGFzaC5nZXQoImZhaWx6b25lMSIpOworICAgICAgICAgICAgU3RyaW5nIGZhaWx6b25lMiA9IChTdHJpbmcpIHRlbXBIYXNoLmdldCgiZmFpbHpvbmUyIik7CisKKyAgICAgICAgICAgIC8vdGhleSBtYXliZSBpbmNsdWRlcyA8Kj4gc3R5bGUgdW5pY29kZQorICAgICAgICAgICAgbmFtZWJhc2UgPSBzdHJpbmdSZXBsYWNlKG5hbWViYXNlKTsKKyAgICAgICAgICAgIG5hbWV6b25lID0gc3RyaW5nUmVwbGFjZShuYW1lem9uZSk7CisKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBudWxsOworICAgICAgICAgICAgYm9vbGVhbiBmYWlsZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKCJ0b2FzY2lpIi5lcXVhbHModGVtcEhhc2guZ2V0KCJ0eXBlIikpKSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy9nZXQgdGhlIHJlc3VsdAorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIC8vYnkgZGVmYXVsdCBTVEQzIHJ1bGVzIGFyZSBub3QgdXNlZCwgYnV0IGlmIHRoZSBkZXNjcmlwdGlvbgorICAgICAgICAgICAgICAgICAgICAvL2luY2x1ZGVzIFVzZVNURDNBU0NJSVJ1bGVzLCB3ZSB3aWxsIHNldCBpdC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGRlc2MudG9Mb3dlckNhc2UoKS5pbmRleE9mKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVc2VTVEQzQVNDSUlSdWxlcyIudG9Mb3dlckNhc2UoKSkgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IElETkEuY29udmVydElETlRvQVNDSUkobmFtZWJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElETkEuQUxMT1dfVU5BU1NJR05FRCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IElETkEuY29udmVydElETlRvQVNDSUkobmFtZWJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElETkEuVVNFX1NURDNfUlVMRVMpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGNhdGNoIChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZTIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9lcnJsbihlMi5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoInBhc3MiLmVxdWFscyhwYXNzZmFpbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFuYW1lem9uZS5lcXVhbHMocmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRJbmZvKGRlc2MsIG5hbWViYXNlLCBuYW1ldXRmOCwgbmFtZXpvbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWx6b25lMSwgZmFpbHpvbmUyLCByZXN1bHQsIHR5cGUsIHBhc3NmYWlsKTsgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJcdCBwYXNzIGZhaWwgc3RhbmRhcmQgaXMgcGFzcywgYnV0IGZhaWxlZCIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRJbmZvKGRlc2MsIG5hbWViYXNlLCBuYW1ldXRmOCwgbmFtZXpvbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWx6b25lMSwgZmFpbHpvbmUyLCByZXN1bHQsIHR5cGUsIHBhc3NmYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJcdHBhc3NlZCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCJmYWlsIi5lcXVhbHMocGFzc2ZhaWwpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChmYWlsZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50SW5mbyhkZXNjLCBuYW1lYmFzZSwgbmFtZXV0ZjgsIG5hbWV6b25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsem9uZTEsIGZhaWx6b25lMiwgcmVzdWx0LCB0eXBlLCBwYXNzZmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigicGFzc2VkIik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludEluZm8oZGVzYywgbmFtZWJhc2UsIG5hbWV1dGY4LCBuYW1lem9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHpvbmUxLCBmYWlsem9uZTIsIHJlc3VsdCwgdHlwZSwgcGFzc2ZhaWwpOyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlx0IHBhc3MgZmFpbCBzdGFuZGFyZCBpcyBmYWlsLCBidXQgbm8gZXhjZXB0aW9uIHRocm93biBvdXQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoInRvdW5pY29kZSIuZXF1YWxzKHRlbXBIYXNoLmdldCgidHlwZSIpKSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIC8vYnkgZGVmYXVsdCBTVEQzIHJ1bGVzIGFyZSBub3QgdXNlZCwgYnV0IGlmIHRoZSBkZXNjcmlwdGlvbgorICAgICAgICAgICAgICAgICAgICAvL2luY2x1ZGVzIFVzZVNURDNBU0NJSVJ1bGVzLCB3ZSB3aWxsIHNldCBpdC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGRlc2MudG9Mb3dlckNhc2UoKS5pbmRleE9mKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVc2VTVEQzQVNDSUlSdWxlcyIudG9Mb3dlckNhc2UoKSkgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IElETkEuY29udmVydElETlRvVW5pY29kZShuYW1lYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUROQS5BTExPV19VTkFTU0lHTkVEKS50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gSUROQS5jb252ZXJ0SUROVG9Vbmljb2RlKG5hbWViYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRE5BLlVTRV9TVEQzX1JVTEVTKS50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vZXJybG4oZTIuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCJwYXNzIi5lcXVhbHMocGFzc2ZhaWwpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghbmFtZXpvbmUuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50SW5mbyhkZXNjLCBuYW1lYmFzZSwgbmFtZXV0ZjgsIG5hbWV6b25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsem9uZTEsIGZhaWx6b25lMiwgcmVzdWx0LCB0eXBlLCBwYXNzZmFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJcdCBEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0LiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KG5hbWV6b25lKSArICIgR290OiAiICsgcHJldHRpZnkocmVzdWx0KSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludEluZm8oZGVzYywgbmFtZWJhc2UsIG5hbWV1dGY4LCBuYW1lem9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHpvbmUxLCBmYWlsem9uZTIsIHJlc3VsdCwgdHlwZSwgcGFzc2ZhaWwpOyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlx0cGFzc2VkIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoImZhaWwiLmVxdWFscyhwYXNzZmFpbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZhaWxlZCB8fCBuYW1lYmFzZS5lcXVhbHMocmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRJbmZvKGRlc2MsIG5hbWViYXNlLCBuYW1ldXRmOCwgbmFtZXpvbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWx6b25lMSwgZmFpbHpvbmUyLCByZXN1bHQsIHR5cGUsIHBhc3NmYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlx0cGFzc2VkIik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludEluZm8oZGVzYywgbmFtZWJhc2UsIG5hbWV1dGY4LCBuYW1lem9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHpvbmUxLCBmYWlsem9uZTIsIHJlc3VsdCwgdHlwZSwgcGFzc2ZhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiXHQgcGFzcyBmYWlsIHN0YW5kYXJkIGlzIGZhaWwsIGJ1dCBubyBleGNlcHRpb24gdGhyb3duIG91dCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFByaW50IGxvZyBtZXNzYWdlLgorICAgICAqIEBwYXJhbSBkZXNjCisgICAgICogQHBhcmFtIG5hbWViYXNlCisgICAgICogQHBhcmFtIG5hbWV1dGY4CisgICAgICogQHBhcmFtIG5hbWV6b25lCisgICAgICogQHBhcmFtIGZhaWx6b25lMQorICAgICAqIEBwYXJhbSBmYWlsem9uZTIKKyAgICAgKiBAcGFyYW0gcmVzdWx0CisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHByaW50SW5mbyhTdHJpbmcgZGVzYywgU3RyaW5nIG5hbWViYXNlLAorICAgICAgICAgICAgU3RyaW5nIG5hbWV1dGY4LCBTdHJpbmcgbmFtZXpvbmUsIFN0cmluZyBmYWlsem9uZTEsCisgICAgICAgICAgICBTdHJpbmcgZmFpbHpvbmUyLCBTdHJpbmcgcmVzdWx0LCBTdHJpbmcgdHlwZSwgU3RyaW5nIHBhc3NmYWlsKSB7CisgICAgICAgIGxvZ2xuKCJkZXNjOlx0IiArIGRlc2MpOworICAgICAgICBsb2coIlx0Iik7CisgICAgICAgIGxvZ2xuKCJ0eXBlOlx0IiArIHR5cGUpOworICAgICAgICBsb2coIlx0Iik7CisgICAgICAgIGxvZ2xuKCJwYXNzIGZhaWwgc3RhbmRhcmQ6XHQiICsgcGFzc2ZhaWwpOworICAgICAgICBsb2coIlx0Iik7CisgICAgICAgIGxvZ2xuKCJuYW1lYmFzZTpcdCIgKyBuYW1lYmFzZSk7CisgICAgICAgIGxvZygiXHQiKTsKKyAgICAgICAgbG9nbG4oIm5hbWV1dGY4Olx0IiArIG5hbWV1dGY4KTsKKyAgICAgICAgbG9nKCJcdCIpOworICAgICAgICBsb2dsbigibmFtZXpvbmU6XHQiICsgbmFtZXpvbmUpOworICAgICAgICBsb2coIlx0Iik7CisgICAgICAgIGxvZ2xuKCJmYWlsem9uZTE6XHQiICsgZmFpbHpvbmUxKTsKKyAgICAgICAgbG9nKCJcdCIpOworICAgICAgICBsb2dsbigiZmFpbHpvbmUyOlx0IiArIGZhaWx6b25lMik7CisgICAgICAgIGxvZygiXHQiKTsKKyAgICAgICAgbG9nbG4oInJlc3VsdDpcdCIgKyByZXN1bHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoYW5nZSB1bmljb2RlIHN0cmluZyBmcm9tIDwwMEFEPiB0byBcdTAwQUQsIGZvciB0aGUgbGF0ZXIgaXMgYWNjZXB0ZWQKKyAgICAgKiBieSBKYXZhCisgICAgICogQHBhcmFtIHN0ciBTdHJpbmcgaW5jbHVkaW5nIDwqPiBzdHlsZSB1bmljb2RlCisgICAgICogQHJldHVybiBcXHUgU3RyaW5nCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHN0cmluZ1JlcGxhY2UoU3RyaW5nIHN0cikgeworCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGNoYXJbXSBjaGFycyA9IHN0ci50b0NoYXJBcnJheSgpOworICAgICAgICBTdHJpbmdCdWZmZXIgc2JUZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoJzwnID09IGNoYXJzW2ldKSB7CisgICAgICAgICAgICAgICAgc2JUZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgIHdoaWxlICgnPicgIT0gY2hhcnNbaSArIDFdKSB7CisgICAgICAgICAgICAgICAgICAgIHNiVGVtcC5hcHBlbmQoY2hhcnNbKytpXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogVGhlIHVuaWNvZGUgc29tZXRpbWVzIGlzIGxhcmdlciB0aGVuIFx1RkZGRiwgc28gaGF2ZSB0byB1c2UKKyAgICAgICAgICAgICAgICAgKiBVVEYxNi4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpbnQgdG9CZUluc2VydGVkID0gSW50ZWdlci5wYXJzZUludChzYlRlbXAudG9TdHJpbmcoKSwgMTYpOworICAgICAgICAgICAgICAgIGlmICgodG9CZUluc2VydGVkID4+IDE2KSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpIHRvQmVJbnNlcnRlZCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHV0ZjE2U3RyaW5nID0gVVRGMTYudmFsdWVPZih0b0JlSW5zZXJ0ZWQpOworICAgICAgICAgICAgICAgICAgICBjaGFyW10gY2hhcnNUZW1wID0gdXRmMTZTdHJpbmcudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBjaGFyc1RlbXAubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpIGNoYXJzVGVtcFtqXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKCc+JyA9PSBjaGFyc1tpXSkgey8vZW5kIHdoZW4gbWV0IHdpdGggJz4nCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hhcnNbaV0pOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgY2xhc3MgaXMgdXNlZCB0byByZWFkIHRlc3QgZGF0YSBmcm9tIFRlc3RJbnB1dCBmaWxlLgorICAgICAqIAorICAgICAqIEBhdXRob3IgbGltYW95dQorICAgICAqICAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFJlYWRJbnB1dCB7CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBUcmVlTWFwIGdldElucHV0RGF0YSgpIHRocm93cyBJT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIHsKKworICAgICAgICAgICAgVHJlZU1hcCByZXN1bHQgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBpbiA9IFRlc3RVdGlsLmdldERhdGFSZWFkZXIoIklETkFUZXN0SW5wdXQudHh0IiwgInV0Zi04Iik7CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGVtcFN0ciA9IG51bGw7CisgICAgICAgICAgICAgICAgaW50IHJlY29yZHMgPSAwOworICAgICAgICAgICAgICAgIGJvb2xlYW4gZmlyc3RMaW5lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBIYXNoTWFwIGhhc2hJdGVtID0gbmV3IEhhc2hNYXAoKTsKKworICAgICAgICAgICAgICAgIHdoaWxlICgodGVtcFN0ciA9IGluLnJlYWRMaW5lKCkpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9pZ25vcmUgdGhlIGZpcnN0IGxpbmUgaWYgaXQncyAiPT09PT0iCisgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdExpbmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgiPT09PT0iLmVxdWFscyh0ZW1wU3RyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0TGluZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy9JZ25vcmUgZW1wdHkgbGluZQorICAgICAgICAgICAgICAgICAgICBpZiAoIiIuZXF1YWxzKHRlbXBTdHIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhdHRyID0gIiI7Ly9hdHRyaWJ1dGUKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGJvZHkgPSAiIjsvL3ZhbHVlCisKKyAgICAgICAgICAgICAgICAgICAgLy9nZXQgYXR0ciBhbmQgYm9keSBmcm9tIGxpbmUgaW5wdXQsIGFuZCB0aGVuIHNldCB0aGVtIGludG8gZWFjaCBoYXNoIGl0ZW0uICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaW50IHBvc3Rpb24gPSB0ZW1wU3RyLmluZGV4T2YoIjoiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBvc3Rpb24gPiAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYXR0ciA9IHRlbXBTdHIuc3Vic3RyaW5nKDAsIHBvc3Rpb24pLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgPSB0ZW1wU3RyLnN1YnN0cmluZyhwb3N0aW9uICsgMSkudHJpbSgpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvL2RlYWwgd2l0aCBjb21iaW5hdGlvbiBsaW5lcyB3aGVuIGVuZCB3aXRoICdcJworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG51bGwgIT0gYm9keSAmJiBib2R5Lmxlbmd0aCgpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAnXFwnID09IGJvZHkuY2hhckF0KGJvZHkubGVuZ3RoKCkgLSAxKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgPSBib2R5LnN1YnN0cmluZygwLCBib2R5Lmxlbmd0aCgpIC0gMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keSArPSAiXG4iOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBTdHIgPSBpbi5yZWFkTGluZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgKz0gdGVtcFN0cjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvL3B1c2ggdGhlbSB0byBoYXNoIGl0ZW0KKyAgICAgICAgICAgICAgICAgICAgaGFzaEl0ZW0ucHV0KGF0dHIsIGJvZHkpOworCisgICAgICAgICAgICAgICAgICAgIC8vaWYgbWV0ICI9PT09PSIsIGl0IG1lYW5zIHRoaXMgaXRlbSBpcyBmaW5pc2hlZAorICAgICAgICAgICAgICAgICAgICBpZiAoIj09PT09Ii5lcXVhbHModGVtcFN0cikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vc2V0IHRoZW0gaW50byByZXN1bHQsIHVzaW5nIHJlY29yZHMgbnVtYmVyIGFzIGtleQorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1dChuZXcgTG9uZyhyZWNvcmRzKSwgaGFzaEl0ZW0pOworICAgICAgICAgICAgICAgICAgICAgICAgLy9jcmVhdGUgYW5vdGhlciBoYXNoIGl0ZW0gYW5kIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgICAgICBoYXNoSXRlbSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRzKys7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9IGNhdGNoIChGaWxlTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvSUROQVJlZmVyZW5jZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvSUROQVJlZmVyZW5jZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0ZjNhZWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9JRE5BUmVmZXJlbmNlLmphdmEKQEAgLTAsMCArMSw0MjkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc3RyaW5ncHJlcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3Rlckl0ZXJhdG9yOworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICogVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5Db2RlIEdlbmVyYXRpb24+Q29kZSBhbmQgQ29tbWVudHMKKyAqLworcHVibGljIGNsYXNzIElETkFSZWZlcmVuY2UgeworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBBQ0VfUFJFRklYID0gbmV3IGNoYXJbXXsgMHgwMDc4LDB4MDA2RSwweDAwMmQsMHgwMDJkIH0gOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBQ0VfUFJFRklYX0xFTkdUSCAgPSA0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9MQUJFTF9MRU5HVEggICA9IDYzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIWVBIRU4gICAgICAgICAgICAgPSAweDAwMkQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENBUElUQUxfQSAgICAgICAgICA9IDB4MDA0MTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0FQSVRBTF9aICAgICAgICAgID0gMHgwMDVBOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMT1dFUl9DQVNFX0RFTFRBICAgPSAweDAwMjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZVTExfU1RPUCAgICAgICAgICA9IDB4MDAyRTsKKworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVCAgICAgICAgICAgICA9IDB4MDAwMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTExPV19VTkFTU0lHTkVEICAgID0gMHgwMDAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVTRV9TVEQzX1JVTEVTICAgICAgPSAweDAwMDI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBOYW1lUHJlcFRyYW5zZm9ybSB0cmFuc2Zvcm0gPSBOYW1lUHJlcFRyYW5zZm9ybS5nZXRJbnN0YW5jZSgpOworICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIHN0YXJ0c1dpdGhQcmVmaXgoU3RyaW5nQnVmZmVyIHNyYyl7CisgICAgICAgIGJvb2xlYW4gc3RhcnRzV2l0aFByZWZpeCA9IHRydWU7CisKKyAgICAgICAgaWYoc3JjLmxlbmd0aCgpIDwgQUNFX1BSRUZJWF9MRU5HVEgpeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGZvcihpbnQgaT0wOyBpPEFDRV9QUkVGSVhfTEVOR1RIO2krKyl7CisgICAgICAgICAgICBpZih0b0FTQ0lJTG93ZXIoc3JjLmNoYXJBdChpKSkgIT0gQUNFX1BSRUZJWFtpXSl7CisgICAgICAgICAgICAgICAgc3RhcnRzV2l0aFByZWZpeCA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGFydHNXaXRoUHJlZml4OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNoYXIgdG9BU0NJSUxvd2VyKGNoYXIgY2gpeworICAgICAgICBpZihDQVBJVEFMX0EgPD0gY2ggJiYgY2ggPD0gQ0FQSVRBTF9aKXsKKyAgICAgICAgICAgIHJldHVybiAoY2hhcikoY2ggKyBMT1dFUl9DQVNFX0RFTFRBKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2g7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nQnVmZmVyIHRvQVNDSUlMb3dlcihTdHJpbmdCdWZmZXIgc3JjKXsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGRlc3QgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPHNyYy5sZW5ndGgoKTtpKyspeworICAgICAgICAgICAgZGVzdC5hcHBlbmQodG9BU0NJSUxvd2VyKHNyYy5jaGFyQXQoaSkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGVzdDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgY29tcGFyZUNhc2VJbnNlbnNpdGl2ZUFTQ0lJKFN0cmluZ0J1ZmZlciBzMSwgU3RyaW5nQnVmZmVyIHMyKXsKKyAgICAgICAgY2hhciBjMSxjMjsKKyAgICAgICAgaW50IHJjOworICAgICAgICBmb3IoaW50IGkgPTA7Lyogbm8gY29uZGl0aW9uICovO2krKykgeworICAgICAgICAgICAgLyogSWYgd2UgcmVhY2ggdGhlIGVuZHMgb2YgYm90aCBzdHJpbmdzIHRoZW4gdGhleSBtYXRjaCAqLworICAgICAgICAgICAgaWYoaSA9PSBzMS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjMSA9IHMxLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGMyID0gczIuY2hhckF0KGkpOworICAgICAgICAKKyAgICAgICAgICAgIC8qIENhc2UtaW5zZW5zaXRpdmUgY29tcGFyaXNvbiAqLworICAgICAgICAgICAgaWYoYzEhPWMyKSB7CisgICAgICAgICAgICAgICAgcmM9dG9BU0NJSUxvd2VyKGMxKS10b0FTQ0lJTG93ZXIoYzIpOworICAgICAgICAgICAgICAgIGlmKHJjIT0wKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldFNlcGFyYXRvckluZGV4KGNoYXJbXSBzcmMsaW50IHN0YXJ0LCBpbnQgbGltaXQpeworICAgICAgICBmb3IoOyBzdGFydDxsaW1pdDtzdGFydCsrKXsKKyAgICAgICAgICAgIGlmKE5hbWVQcmVwVHJhbnNmb3JtLmlzTGFiZWxTZXBhcmF0b3Ioc3JjW3N0YXJ0XSkpeworICAgICAgICAgICAgICAgIHJldHVybiBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyB3ZSBoYXZlIG5vdCBmb3VuZCB0aGUgc2VwYXJhdG9yIGp1c3QgcmV0dXJuIGxlbmd0aAorICAgICAgICByZXR1cm4gc3RhcnQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNMREhDaGFyKGludCBjaCl7CisgICAgICAgIC8vIGhpZ2ggcnVubmVyIGNhc2UKKyAgICAgICAgaWYoY2g+MHgwMDdBKXsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAvL1tcXHUwMDJEIFxcdTAwMzAtXFx1MDAzOSBcXHUwMDQxLVxcdTAwNUEgXFx1MDA2MS1cXHUwMDdBXQorICAgICAgICBpZiggKGNoPT0weDAwMkQpIHx8IAorICAgICAgICAgICAgKDB4MDAzMCA8PSBjaCAmJiBjaCA8PSAweDAwMzkpIHx8CisgICAgICAgICAgICAoMHgwMDQxIDw9IGNoICYmIGNoIDw9IDB4MDA1QSkgfHwKKyAgICAgICAgICAgICgweDAwNjEgPD0gY2ggJiYgY2ggPD0gMHgwMDdBKQorICAgICAgICAgICl7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0VG9BU0NJSShTdHJpbmcgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc3JjKTsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0FTQ0lJKGl0ZXIsb3B0aW9ucyk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb0FTQ0lJKFN0cmluZ0J1ZmZlciBzcmMsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICByZXR1cm4gY29udmVydFRvQVNDSUkoaXRlcixvcHRpb25zKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydFRvQVNDSUkoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyY0l0ZXIsIGludCBvcHRpb25zKQorICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgCisgICAgICAgIGNoYXJbXSBjYXNlRmxhZ3MgPSBudWxsOworICAgIAorICAgICAgICAvLyB0aGUgc291cmNlIGNvbnRhaW5zIGFsbCBhc2NpaSBjb2RlcG9pbnRzCisgICAgICAgIGJvb2xlYW4gc3JjSXNBU0NJSSAgPSB0cnVlOworICAgICAgICAvLyBhc3N1bWUgdGhlIHNvdXJjZSBjb250YWlucyBhbGwgTERIIGNvZGVwb2ludHMKKyAgICAgICAgYm9vbGVhbiBzcmNJc0xESCA9IHRydWU7IAorCisgICAgICAgIC8vZ2V0IHRoZSBvcHRpb25zCisgICAgICAgIGJvb2xlYW4gdXNlU1REM0FTQ0lJUnVsZXMgPSAoKG9wdGlvbnMgJiBVU0VfU1REM19SVUxFUykgIT0gMCk7CisKKyAgICAgICAgaW50IGNoOworICAgICAgICAvLyBzdGVwIDEKKyAgICAgICAgd2hpbGUoKGNoID0gc3JjSXRlci5uZXh0KCkpIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpeworICAgICAgICAgICAgaWYoY2g+IDB4N2YpeworICAgICAgICAgICAgICAgIHNyY0lzQVNDSUkgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnQgZmFpbFBvcyA9IC0xOworICAgICAgICBzcmNJdGVyLnNldFRvU3RhcnQoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHByb2Nlc3NPdXQgPSBudWxsOworICAgICAgICAvLyBzdGVwIDIgaXMgcGVyZm9ybWVkIG9ubHkgaWYgdGhlIHNvdXJjZSBjb250YWlucyBub24gQVNDSUkKKyAgICAgICAgaWYoIXNyY0lzQVNDSUkpeworICAgICAgICAgICAgLy8gc3RlcCAyCisgICAgICAgICAgICBwcm9jZXNzT3V0ID0gIHRyYW5zZm9ybS5wcmVwYXJlKHNyY0l0ZXIsb3B0aW9ucyk7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgcHJvY2Vzc091dCA9IG5ldyBTdHJpbmdCdWZmZXIoc3JjSXRlci5nZXRUZXh0KCkpOworICAgICAgICB9CisgICAgICAgIGludCBwb0xlbiA9IHByb2Nlc3NPdXQubGVuZ3RoKCk7CisgICAgICAgIGlmKHBvTGVuPT0wKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIkZvdW5kIHplcm8gbGVuZ3RoIGxhYmxlIGFmdGVyIE5hbWVQcmVwLiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlpFUk9fTEVOR1RIX0xBQkVMKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgZGVzdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgCisgICAgICAgIC8vIHJlc2V0IHRoZSB2YXJpYWJsZSB0byB2ZXJpZnkgaWYgb3V0cHV0IG9mIHByZXBhcmUgaXMgQVNDSUkgb3Igbm90CisgICAgICAgIHNyY0lzQVNDSUkgPSB0cnVlOworICAgICAgICAKKyAgICAgICAgLy8gc3RlcCAzICYgNAorICAgICAgICBmb3IoaW50IGo9MDtqPHBvTGVuO2orKyApeworICAgICAgICAgICAgY2g9cHJvY2Vzc091dC5jaGFyQXQoaik7CisgICAgICAgICAgICBpZihjaCA+IDB4N0YpeworICAgICAgICAgICAgICAgIHNyY0lzQVNDSUkgPSBmYWxzZTsKKyAgICAgICAgICAgIH1lbHNlIGlmKGlzTERIQ2hhcihjaCk9PWZhbHNlKXsKKyAgICAgICAgICAgICAgICAvLyBoZXJlIHdlIGRvIG5vdCBhc3NlbWJsZSBzdXJyb2dhdGVzCisgICAgICAgICAgICAgICAgLy8gc2luY2Ugd2Uga25vdyB0aGF0IExESCBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgIC8vIGFyZSBpbiB0aGUgQVNDSUkgcmFuZ2Ugb25seQorICAgICAgICAgICAgICAgIHNyY0lzTERIID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZmFpbFBvcyA9IGo7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYodXNlU1REM0FTQ0lJUnVsZXMgPT0gdHJ1ZSl7CisgICAgICAgICAgICAvLyB2ZXJpZnkgM2EgYW5kIDNiCisgICAgICAgICAgICBpZiggc3JjSXNMREggPT0gZmFsc2UgLyogc291cmNlIGNvbnRhaW5zIHNvbWUgbm9uLUxESCBjaGFyYWN0ZXJzICovCisgICAgICAgICAgICAgICAgfHwgcHJvY2Vzc091dC5jaGFyQXQoMCkgPT0gIEhZUEhFTiAKKyAgICAgICAgICAgICAgICB8fCBwcm9jZXNzT3V0LmNoYXJBdChwcm9jZXNzT3V0Lmxlbmd0aCgpLTEpID09IEhZUEhFTil7CisKKyAgICAgICAgICAgICAgICAvKiBwb3B1bGF0ZSB0aGUgcGFyc2VFcnJvciBzdHJ1Y3QgKi8KKyAgICAgICAgICAgICAgICBpZihzcmNJc0xESD09ZmFsc2UpeworICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiggIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBTVEQgMyBBU0NJSSBydWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dC50b1N0cmluZygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZhaWxQb3M+MCkgPyAoZmFpbFBvcy0xKSA6IGZhaWxQb3MpOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKHByb2Nlc3NPdXQuY2hhckF0KDApID09IEhZUEhFTil7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBTVEQgMyBBU0NJSSBydWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IscHJvY2Vzc091dC50b1N0cmluZygpLDApOworICAgICAKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBTVEQgMyBBU0NJSSBydWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dC50b1N0cmluZygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb0xlbj4wKSA/IHBvTGVuLTEgOiBwb0xlbik7CisKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYoc3JjSXNBU0NJSSl7CisgICAgICAgICAgICBkZXN0ID0gIHByb2Nlc3NPdXQ7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgLy8gc3RlcCA1IDogdmVyaWZ5IHRoZSBzZXF1ZW5jZSBkb2VzIG5vdCBiZWdpbiB3aXRoIEFDRSBwcmVmaXgKKyAgICAgICAgICAgIGlmKCFzdGFydHNXaXRoUHJlZml4KHByb2Nlc3NPdXQpKXsKKworICAgICAgICAgICAgICAgIC8vc3RlcCA2OiBlbmNvZGUgdGhlIHNlcXVlbmNlIHdpdGggcHVueWNvZGUKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcHVueW91dCA9IFB1bnljb2RlUmVmZXJlbmNlLmVuY29kZShwcm9jZXNzT3V0LGNhc2VGbGFncyk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gY29udmVydCBhbGwgY29kZXBvaW50cyB0byBsb3dlciBjYXNlIEFTQ0lJCisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGxvd2VyT3V0ID0gdG9BU0NJSUxvd2VyKHB1bnlvdXQpOworCisgICAgICAgICAgICAgICAgLy9TdGVwIDc6IHByZXBlbmQgdGhlIEFDRSBwcmVmaXgKKyAgICAgICAgICAgICAgICBkZXN0LmFwcGVuZChBQ0VfUFJFRklYLDAsQUNFX1BSRUZJWF9MRU5HVEgpOworICAgICAgICAgICAgICAgIC8vU3RlcCA2OiBjb3B5IHRoZSBjb250ZW50cyBpbiBiMiBpbnRvIGRlc3QKKyAgICAgICAgICAgICAgICBkZXN0LmFwcGVuZChsb3dlck91dCk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3Qgc3RhcnQgd2l0aCB0aGUgQUNFIFByZWZpeC4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQUNFX1BSRUZJWF9FUlJPUixwcm9jZXNzT3V0LnRvU3RyaW5nKCksMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYoZGVzdC5sZW5ndGgoKSA+IE1BWF9MQUJFTF9MRU5HVEgpeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIGxhYmVscyBpbiB0aGUgaW5wdXQgYXJlIHRvbyBsb25nLiBMZW5ndGggPiA2NC4iLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5MQUJFTF9UT09fTE9OR19FUlJPUixkZXN0LnRvU3RyaW5nKCksMCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRlc3Q7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRJRE50b0FTQ0lJKFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyLGludCBvcHRpb25zKQorICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgICAgIHJldHVybiBjb252ZXJ0SUROVG9BU0NJSShpdGVyLmdldFRleHQoKSwgb3B0aW9ucyk7ICAgICAgICAgIAorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0SUROdG9BU0NJSShTdHJpbmdCdWZmZXIgc3RyLGludCBvcHRpb25zKQorICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgICAgIHJldHVybiBjb252ZXJ0SUROVG9BU0NJSShzdHIudG9TdHJpbmcoKSwgb3B0aW9ucyk7ICAgICAgICAgIAorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0SUROVG9BU0NJSShTdHJpbmcgc3JjLGludCBvcHRpb25zKQorICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgY2hhcltdIHNyY0FyciA9IHNyYy50b0NoYXJBcnJheSgpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgc2VwSW5kZXg9MDsKKyAgICAgICAgaW50IG9sZFNlcEluZGV4ID0gMDsKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgIHNlcEluZGV4ID0gZ2V0U2VwYXJhdG9ySW5kZXgoc3JjQXJyLHNlcEluZGV4LHNyY0Fyci5sZW5ndGgpOworICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gbmV3IFN0cmluZyhzcmNBcnIsb2xkU2VwSW5kZXgsc2VwSW5kZXgtb2xkU2VwSW5kZXgpOworICAgICAgICAgICAgLy9tYWtlIHN1cmUgdGhpcyBpcyBub3QgYSByb290IGxhYmVsIHNlcGFyYXRvci4KKyAgICAgICAgICAgIGlmKCEobGFiZWwubGVuZ3RoKCk9PTAgJiYgc2VwSW5kZXg9PXNyY0Fyci5sZW5ndGgpKXsKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShsYWJlbCk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjb252ZXJ0VG9BU0NJSShpdGVyLG9wdGlvbnMpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKHNlcEluZGV4PT1zcmNBcnIubGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGluY3JlbWVudCB0aGUgc2VwSW5kZXggdG8gc2tpcCBwYXN0IHRoZSBzZXBhcmF0b3IKKyAgICAgICAgICAgIHNlcEluZGV4Kys7CisgICAgICAgICAgICBvbGRTZXBJbmRleCA9IHNlcEluZGV4OworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhcilGVUxMX1NUT1ApOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydFRvVW5pY29kZShTdHJpbmcgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc3JjKTsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRUb1VuaWNvZGUoaXRlcixvcHRpb25zKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydFRvVW5pY29kZShTdHJpbmdCdWZmZXIgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc3JjKTsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRUb1VuaWNvZGUoaXRlcixvcHRpb25zKTsKKyAgICB9ICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydFRvVW5pY29kZShVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciwgaW50IG9wdGlvbnMpCisgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisKKyAgICAgICAgY2hhcltdIGNhc2VGbGFncyA9IG51bGw7CisgICAgICAgIAorICAgICAgICAvL2dldCB0aGUgb3B0aW9ucworICAgICAgICBib29sZWFuIHVzZVNURDNBU0NJSVJ1bGVzID0gKChvcHRpb25zICYgVVNFX1NURDNfUlVMRVMpICE9IDApOworCisgICAgICAgIC8vIHRoZSBzb3VyY2UgY29udGFpbnMgYWxsIGFzY2lpIGNvZGVwb2ludHMKKyAgICAgICAgYm9vbGVhbiBzcmNJc0FTQ0lJICA9IHRydWU7CisgICAgICAgIC8vIGFzc3VtZSB0aGUgc291cmNlIGNvbnRhaW5zIGFsbCBMREggY29kZXBvaW50cworICAgICAgICBib29sZWFuIHNyY0lzTERIID0gdHJ1ZTsgCisgICAgICAgICAgICAgICAKKyAgICAgICAgaW50IGZhaWxQb3MgPSAtMTsKKyAgICAgICAgaW50IGNoOworICAgICAgICBpbnQgc2F2ZUluZGV4ID0gaXRlci5nZXRJbmRleCgpOworICAgICAgICAvLyBzdGVwIDE6IGZpbmQgb3V0IGlmIGFsbCB0aGUgY29kZXBvaW50cyBpbiBzcmMgYXJlIEFTQ0lJICAKKyAgICAgICAgd2hpbGUoKGNoPWl0ZXIubmV4dCgpKSE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsKKyAgICAgICAgICAgIGlmKGNoPjB4N0YpeworICAgICAgICAgICAgICAgIHNyY0lzQVNDSUkgPSBmYWxzZTsKKyAgICAgICAgICAgIH1lbHNlIGlmKGlzTERIQ2hhcihjaCk9PWZhbHNlKXsKKyAgICAgICAgICAgICAgICBmYWlsUG9zID0gaXRlci5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIHNyY0lzTERIID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQnVmZmVyIHByb2Nlc3NPdXQ7CisgICAgICAgIAorICAgICAgICBpZihzcmNJc0FTQ0lJID09IGZhbHNlKXsKKyAgICAgICAgICAgIC8vIHN0ZXAgMjogcHJvY2VzcyB0aGUgc3RyaW5nCisgICAgICAgICAgICBpdGVyLnNldEluZGV4KHNhdmVJbmRleCk7CisgICAgICAgICAgICBwcm9jZXNzT3V0ID0gdHJhbnNmb3JtLnByZXBhcmUoaXRlcixvcHRpb25zKTsKKworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIC8vanVzdCBwb2ludCB0byBzb3VyY2UKKyAgICAgICAgICAgIHByb2Nlc3NPdXQgPSBuZXcgU3RyaW5nQnVmZmVyKGl0ZXIuZ2V0VGV4dCgpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUT0RPOgorICAgICAgICAvLyBUaGUgUkZDIHN0YXRlcyB0aGF0IAorICAgICAgICAvLyA8cXVvdGU+CisgICAgICAgIC8vIFRvVW5pY29kZSBuZXZlciBmYWlscy4gSWYgYW55IHN0ZXAgZmFpbHMsIHRoZW4gdGhlIG9yaWdpbmFsIGlucHV0CisgICAgICAgIC8vIGlzIHJldHVybmVkIGltbWVkaWF0ZWx5IGluIHRoYXQgc3RlcC4KKyAgICAgICAgLy8gPC9xdW90ZT4KKyAgICAgICAgCisgICAgICAgIC8vc3RlcCAzOiB2ZXJpZnkgQUNFIFByZWZpeAorICAgICAgICBpZihzdGFydHNXaXRoUHJlZml4KHByb2Nlc3NPdXQpKXsKKworICAgICAgICAgICAvL3N0ZXAgNDogUmVtb3ZlIHRoZSBBQ0UgUHJlZml4CisgICAgICAgICAgIFN0cmluZyB0ZW1wID0gcHJvY2Vzc091dC5zdWJzdHJpbmcoQUNFX1BSRUZJWF9MRU5HVEgscHJvY2Vzc091dC5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgLy9zdGVwIDU6IERlY29kZSB1c2luZyBwdW55Y29kZQorICAgICAgICAgICBTdHJpbmdCdWZmZXIgZGVjb2RlT3V0ID0gUHVueWNvZGVSZWZlcmVuY2UuZGVjb2RlKG5ldyBTdHJpbmdCdWZmZXIodGVtcCksY2FzZUZsYWdzKTsKKyAgICAgICAgCisgICAgICAgICAgICAvL3N0ZXAgNjpBcHBseSB0b0FTQ0lJCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdG9BU0NJSU91dCA9IGNvbnZlcnRUb0FTQ0lJKGRlY29kZU91dCwgb3B0aW9ucyk7CisKKyAgICAgICAgICAgIC8vc3RlcCA3OiB2ZXJpZnkKKyAgICAgICAgICAgIGlmKGNvbXBhcmVDYXNlSW5zZW5zaXRpdmVBU0NJSShwcm9jZXNzT3V0LCB0b0FTQ0lJT3V0KSAhPTApeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSB2ZXJpZmljYXRpb24gc3RlcCBwcmVzY3JpYmVkIGJ5IHRoZSBSRkMgMzQ5MSBmYWlsZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlZFUklGSUNBVElPTl9FUlJPUik7IAorICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy9zdGVwIDg6IHJldHVybiBvdXRwdXQgb2Ygc3RlcCA1CisgICAgICAgICAgICByZXR1cm4gZGVjb2RlT3V0OworICAgICAgICAgICAgCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgLy8gdmVyaWZ5IHRoYXQgU1REMyBBU0NJSSBydWxlcyBhcmUgc2F0aXNmaWVkCisgICAgICAgICAgICBpZih1c2VTVEQzQVNDSUlSdWxlcyA9PSB0cnVlKXsKKyAgICAgICAgICAgICAgICBpZiggc3JjSXNMREggPT0gZmFsc2UgLyogc291cmNlIGNvbnRhaW5zIHNvbWUgbm9uLUxESCBjaGFyYWN0ZXJzICovCisgICAgICAgICAgICAgICAgICAgIHx8IHByb2Nlc3NPdXQuY2hhckF0KDApID09ICBIWVBIRU4gCisgICAgICAgICAgICAgICAgICAgIHx8IHByb2Nlc3NPdXQuY2hhckF0KHByb2Nlc3NPdXQubGVuZ3RoKCktMSkgPT0gSFlQSEVOKXsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNyY0lzTERIPT1mYWxzZSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIGlucHV0IGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlIFNURCAzIEFTQ0lJIHJ1bGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IscHJvY2Vzc091dC50b1N0cmluZygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmFpbFBvcz4wKSA/IChmYWlsUG9zLTEpIDogZmFpbFBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZihwcm9jZXNzT3V0LmNoYXJBdCgwKSA9PSBIWVBIRU4peworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBTVEQgMyBBU0NJSSBydWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0LnRvU3RyaW5nKCksMCk7CisgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBTVEQgMyBBU0NJSSBydWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0LnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NPdXQubGVuZ3RoKCkpOworICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8ganVzdCByZXR1cm4gdGhlIHNvdXJjZQorICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdCdWZmZXIoaXRlci5nZXRUZXh0KCkpOworICAgICAgICB9ICAKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydElETlRvVW5pY29kZShVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciwgaW50IG9wdGlvbnMpCisgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIHJldHVybiBjb252ZXJ0SUROVG9Vbmljb2RlKGl0ZXIuZ2V0VGV4dCgpLCBvcHRpb25zKTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydElETlRvVW5pY29kZShTdHJpbmdCdWZmZXIgc3RyLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRJRE5Ub1VuaWNvZGUoc3RyLnRvU3RyaW5nKCksIG9wdGlvbnMpOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0SUROVG9Vbmljb2RlKFN0cmluZyBzcmMsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICAgICAgCisgICAgICAgIGNoYXJbXSBzcmNBcnIgPSBzcmMudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHNlcEluZGV4PTA7CisgICAgICAgIGludCBvbGRTZXBJbmRleD0wOworICAgICAgICBmb3IoOzspeworICAgICAgICAgICAgc2VwSW5kZXggPSBnZXRTZXBhcmF0b3JJbmRleChzcmNBcnIsc2VwSW5kZXgsc3JjQXJyLmxlbmd0aCk7CisgICAgICAgICAgICBTdHJpbmcgbGFiZWwgPSBuZXcgU3RyaW5nKHNyY0FycixvbGRTZXBJbmRleCxzZXBJbmRleC1vbGRTZXBJbmRleCk7CisgICAgICAgICAgICBpZihsYWJlbC5sZW5ndGgoKT09MCAmJiBzZXBJbmRleCE9c3JjQXJyLmxlbmd0aCApeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIkZvdW5kIHplcm8gbGVuZ3RoIGxhYmxlIGFmdGVyIE5hbWVQcmVwLiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlpFUk9fTEVOR1RIX0xBQkVMKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKGxhYmVsKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY29udmVydFRvVW5pY29kZShpdGVyLG9wdGlvbnMpKTsKKyAgICAgICAgICAgIGlmKHNlcEluZGV4PT1zcmNBcnIubGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGluY3JlbWVudCB0aGUgc2VwSW5kZXggdG8gc2tpcCBwYXN0IHRoZSBzZXBhcmF0b3IKKyAgICAgICAgICAgIHNlcEluZGV4Kys7CisgICAgICAgICAgICBvbGRTZXBJbmRleCA9IHNlcEluZGV4OworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhcilGVUxMX1NUT1ApOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIC8vICBUT0RPOiBvcHRpbWl6ZQorICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmUoU3RyaW5nQnVmZmVyIHMxLCBTdHJpbmdCdWZmZXIgczIsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICBpZihzMT09bnVsbCB8fCBzMiA9PSBudWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk9uZSBvZiB0aGUgc291cmNlIGJ1ZmZlcnMgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMU91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKHMxLnRvU3RyaW5nKCksIG9wdGlvbnMpOworICAgICAgICBTdHJpbmdCdWZmZXIgczJPdXQgPSBjb252ZXJ0SUROVG9BU0NJSShzMi50b1N0cmluZygpLCBvcHRpb25zKTsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVDYXNlSW5zZW5zaXRpdmVBU0NJSShzMU91dCxzMk91dCk7CisgICAgfQorICAgIC8vICBUT0RPOiBvcHRpbWl6ZQorICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmUoU3RyaW5nIHMxLCBTdHJpbmcgczIsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICBpZihzMT09bnVsbCB8fCBzMiA9PSBudWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk9uZSBvZiB0aGUgc291cmNlIGJ1ZmZlcnMgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMU91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKHMxLCBvcHRpb25zKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHMyT3V0ID0gY29udmVydElETlRvQVNDSUkoczIsIG9wdGlvbnMpOworICAgICAgICByZXR1cm4gY29tcGFyZUNhc2VJbnNlbnNpdGl2ZUFTQ0lJKHMxT3V0LHMyT3V0KTsKKyAgICB9CisgICAgLy8gIFRPRE86IG9wdGltaXplCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShVQ2hhcmFjdGVySXRlcmF0b3IgaTEsIFVDaGFyYWN0ZXJJdGVyYXRvciBpMiwgaW50IG9wdGlvbnMpCisgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIGlmKGkxPT1udWxsIHx8IGkyID09IG51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiT25lIG9mIHRoZSBzb3VyY2UgYnVmZmVycyBpcyBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQnVmZmVyIHMxT3V0ID0gY29udmVydElETlRvQVNDSUkoaTEuZ2V0VGV4dCgpLCBvcHRpb25zKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHMyT3V0ID0gY29udmVydElETlRvQVNDSUkoaTIuZ2V0VGV4dCgpLCBvcHRpb25zKTsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVDYXNlSW5zZW5zaXRpdmVBU0NJSShzMU91dCxzMk91dCk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9JRE5BX3J1bGVzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9JRE5BX3J1bGVzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE2YzY5ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL0lETkFfcnVsZXMuamF2YQpAQCAtMCwwICsxLDE1MzIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc3RyaW5ncHJlcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSUROQV9ydWxlcyBleHRlbmRzIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBwdWJsaWMgSUROQV9ydWxlcyAgKCkgeworICAgICAgICAgIHN1cGVyLmNvbnRlbnRzID0gZGF0YTsKKyAgICB9CisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gZGF0YSA9IG5ldyBPYmplY3RbXVtdIHsgCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiTGFiZWxTZXBhcmF0b3JTZXQiLAorICAgICAgICAgICAgICAgICAgICAiWyAuXHUzMDAyXHVGRjBFXHVGRjYxIF0iLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiQ2FzZU1hcCIsCisgICAgICAgICAgICAgICAgICAgICJBID4gYTsiKworICAgICAgICAgICAgICAgICAgICAiQiA+IGI7IisKKyAgICAgICAgICAgICAgICAgICAgIkMgPiBjOyIrCisgICAgICAgICAgICAgICAgICAgICJEID4gZDsiKworICAgICAgICAgICAgICAgICAgICAiRSA+IGU7IisKKyAgICAgICAgICAgICAgICAgICAgIkYgPiBmOyIrCisgICAgICAgICAgICAgICAgICAgICJHID4gZzsiKworICAgICAgICAgICAgICAgICAgICAiSCA+IGg7IisKKyAgICAgICAgICAgICAgICAgICAgIkkgPiBpOyIrCisgICAgICAgICAgICAgICAgICAgICJKID4gajsiKworICAgICAgICAgICAgICAgICAgICAiSyA+IGs7IisKKyAgICAgICAgICAgICAgICAgICAgIkwgPiBsOyIrCisgICAgICAgICAgICAgICAgICAgICJNID4gbTsiKworICAgICAgICAgICAgICAgICAgICAiTiA+IG47IisKKyAgICAgICAgICAgICAgICAgICAgIk8gPiBvOyIrCisgICAgICAgICAgICAgICAgICAgICJQID4gcDsiKworICAgICAgICAgICAgICAgICAgICAiUSA+IHE7IisKKyAgICAgICAgICAgICAgICAgICAgIlIgPiByOyIrCisgICAgICAgICAgICAgICAgICAgICJTID4gczsiKworICAgICAgICAgICAgICAgICAgICAiVCA+IHQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlUgPiB1OyIrCisgICAgICAgICAgICAgICAgICAgICJWID4gdjsiKworICAgICAgICAgICAgICAgICAgICAiVyA+IHc7IisKKyAgICAgICAgICAgICAgICAgICAgIlggPiB4OyIrCisgICAgICAgICAgICAgICAgICAgICJZID4geTsiKworICAgICAgICAgICAgICAgICAgICAiWiA+IHo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwQjUgPiBcXHUwM0JDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMEMwID4gXFx1MDBFMDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBDMSA+IFxcdTAwRTE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwQzIgPiBcXHUwMEUyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMEMzID4gXFx1MDBFMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBDNCA+IFxcdTAwRTQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwQzUgPiBcXHUwMEU1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMEM2ID4gXFx1MDBFNjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBDNyA+IFxcdTAwRTc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwQzggPiBcXHUwMEU4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMEM5ID4gXFx1MDBFOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBDQSA+IFxcdTAwRUE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwQ0IgPiBcXHUwMEVCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMENDID4gXFx1MDBFQzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBDRCA+IFxcdTAwRUQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwQ0UgPiBcXHUwMEVFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMENGID4gXFx1MDBFRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBEMCA+IFxcdTAwRjA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwRDEgPiBcXHUwMEYxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMEQyID4gXFx1MDBGMjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBEMyA+IFxcdTAwRjM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwRDQgPiBcXHUwMEY0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMEQ1ID4gXFx1MDBGNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBENiA+IFxcdTAwRjY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwRDggPiBcXHUwMEY4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMEQ5ID4gXFx1MDBGOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBEQSA+IFxcdTAwRkE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwREIgPiBcXHUwMEZCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMERDID4gXFx1MDBGQzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDBERCA+IFxcdTAwRkQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAwREUgPiBcXHUwMEZFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMERGID4gc3M7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMDAgPiBcXHUwMTAxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTAyID4gXFx1MDEwMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEwNCA+IFxcdTAxMDU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMDYgPiBcXHUwMTA3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTA4ID4gXFx1MDEwOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEwQSA+IFxcdTAxMEI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMEMgPiBcXHUwMTBEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTBFID4gXFx1MDEwRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDExMCA+IFxcdTAxMTE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMTIgPiBcXHUwMTEzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTE0ID4gXFx1MDExNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDExNiA+IFxcdTAxMTc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMTggPiBcXHUwMTE5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTFBID4gXFx1MDExQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDExQyA+IFxcdTAxMUQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMUUgPiBcXHUwMTFGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTIwID4gXFx1MDEyMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEyMiA+IFxcdTAxMjM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMjQgPiBcXHUwMTI1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTI2ID4gXFx1MDEyNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEyOCA+IFxcdTAxMjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMkEgPiBcXHUwMTJCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTJDID4gXFx1MDEyRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEyRSA+IFxcdTAxMkY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMzAgPiBpXFx1MDMwNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEzMiA+IFxcdTAxMzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxMzQgPiBcXHUwMTM1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTM2ID4gXFx1MDEzNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEzOSA+IFxcdTAxM0E7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxM0IgPiBcXHUwMTNDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTNEID4gXFx1MDEzRTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDEzRiA+IFxcdTAxNDA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNDEgPiBcXHUwMTQyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTQzID4gXFx1MDE0NDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE0NSA+IFxcdTAxNDY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNDcgPiBcXHUwMTQ4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTQ5ID4gXFx1MDJCQ247IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNEEgPiBcXHUwMTRCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTRDID4gXFx1MDE0RDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE0RSA+IFxcdTAxNEY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNTAgPiBcXHUwMTUxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTUyID4gXFx1MDE1MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE1NCA+IFxcdTAxNTU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNTYgPiBcXHUwMTU3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTU4ID4gXFx1MDE1OTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE1QSA+IFxcdTAxNUI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNUMgPiBcXHUwMTVEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTVFID4gXFx1MDE1RjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE2MCA+IFxcdTAxNjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNjIgPiBcXHUwMTYzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTY0ID4gXFx1MDE2NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE2NiA+IFxcdTAxNjc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNjggPiBcXHUwMTY5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTZBID4gXFx1MDE2QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE2QyA+IFxcdTAxNkQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNkUgPiBcXHUwMTZGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTcwID4gXFx1MDE3MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE3MiA+IFxcdTAxNzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNzQgPiBcXHUwMTc1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTc2ID4gXFx1MDE3NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE3OCA+IFxcdTAwRkY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxNzkgPiBcXHUwMTdBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTdCID4gXFx1MDE3QzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE3RCA+IFxcdTAxN0U7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxN0YgPiBzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTgxID4gXFx1MDI1MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE4MiA+IFxcdTAxODM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxODQgPiBcXHUwMTg1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTg2ID4gXFx1MDI1NDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE4NyA+IFxcdTAxODg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxODkgPiBcXHUwMjU2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMThBID4gXFx1MDI1NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE4QiA+IFxcdTAxOEM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxOEUgPiBcXHUwMUREOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMThGID4gXFx1MDI1OTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE5MCA+IFxcdTAyNUI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxOTEgPiBcXHUwMTkyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTkzID4gXFx1MDI2MDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE5NCA+IFxcdTAyNjM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxOTYgPiBcXHUwMjY5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTk3ID4gXFx1MDI2ODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE5OCA+IFxcdTAxOTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxOUMgPiBcXHUwMjZGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMTlEID4gXFx1MDI3MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDE5RiA+IFxcdTAyNzU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQTAgPiBcXHUwMUExOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUEyID4gXFx1MDFBMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFBNCA+IFxcdTAxQTU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQTYgPiBcXHUwMjgwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUE3ID4gXFx1MDFBODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFBOSA+IFxcdTAyODM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQUMgPiBcXHUwMUFEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUFFID4gXFx1MDI4ODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFBRiA+IFxcdTAxQjA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQjEgPiBcXHUwMjhBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUIyID4gXFx1MDI4QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFCMyA+IFxcdTAxQjQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQjUgPiBcXHUwMUI2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUI3ID4gXFx1MDI5MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFCOCA+IFxcdTAxQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQkMgPiBcXHUwMUJEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUM0ID4gXFx1MDFDNjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFDNSA+IFxcdTAxQzY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQzcgPiBcXHUwMUM5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUM4ID4gXFx1MDFDOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFDQSA+IFxcdTAxQ0M7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxQ0IgPiBcXHUwMUNDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUNEID4gXFx1MDFDRTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFDRiA+IFxcdTAxRDA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRDEgPiBcXHUwMUQyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUQzID4gXFx1MDFENDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFENSA+IFxcdTAxRDY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRDcgPiBcXHUwMUQ4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUQ5ID4gXFx1MDFEQTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFEQiA+IFxcdTAxREM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxREUgPiBcXHUwMURGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUUwID4gXFx1MDFFMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFFMiA+IFxcdTAxRTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRTQgPiBcXHUwMUU1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUU2ID4gXFx1MDFFNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFFOCA+IFxcdTAxRTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRUEgPiBcXHUwMUVCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUVDID4gXFx1MDFFRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFFRSA+IFxcdTAxRUY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRjAgPiBqXFx1MDMwQzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFGMSA+IFxcdTAxRjM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRjIgPiBcXHUwMUYzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUY0ID4gXFx1MDFGNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFGNiA+IFxcdTAxOTU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRjcgPiBcXHUwMUJGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUY4ID4gXFx1MDFGOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDFGQSA+IFxcdTAxRkI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAxRkMgPiBcXHUwMUZEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMUZFID4gXFx1MDFGRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIwMCA+IFxcdTAyMDE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMDIgPiBcXHUwMjAzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjA0ID4gXFx1MDIwNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIwNiA+IFxcdTAyMDc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMDggPiBcXHUwMjA5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjBBID4gXFx1MDIwQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIwQyA+IFxcdTAyMEQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMEUgPiBcXHUwMjBGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjEwID4gXFx1MDIxMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIxMiA+IFxcdTAyMTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMTQgPiBcXHUwMjE1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjE2ID4gXFx1MDIxNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIxOCA+IFxcdTAyMTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMUEgPiBcXHUwMjFCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjFDID4gXFx1MDIxRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIxRSA+IFxcdTAyMUY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMjAgPiBcXHUwMTlFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjIyID4gXFx1MDIyMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIyNCA+IFxcdTAyMjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMjYgPiBcXHUwMjI3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjI4ID4gXFx1MDIyOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIyQSA+IFxcdTAyMkI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMkMgPiBcXHUwMjJEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMjJFID4gXFx1MDIyRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDIzMCA+IFxcdTAyMzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAyMzIgPiBcXHUwMjMzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzQ1ID4gXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM3QSA+IFxcdTAwMjBcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzg2ID4gXFx1MDNBQzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM4OCA+IFxcdTAzQUQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzODkgPiBcXHUwM0FFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzhBID4gXFx1MDNBRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM4QyA+IFxcdTAzQ0M7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzOEUgPiBcXHUwM0NEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzhGID4gXFx1MDNDRTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM5MCA+IFxcdTAzQjlcXHUwMzA4XFx1MDMwMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM5MSA+IFxcdTAzQjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzOTIgPiBcXHUwM0IyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzkzID4gXFx1MDNCMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM5NCA+IFxcdTAzQjQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzOTUgPiBcXHUwM0I1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzk2ID4gXFx1MDNCNjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM5NyA+IFxcdTAzQjc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzOTggPiBcXHUwM0I4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzk5ID4gXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM5QSA+IFxcdTAzQkE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzOUIgPiBcXHUwM0JCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzlDID4gXFx1MDNCQzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM5RCA+IFxcdTAzQkQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzOUUgPiBcXHUwM0JFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwMzlGID4gXFx1MDNCRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNBMCA+IFxcdTAzQzA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzQTEgPiBcXHUwM0MxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0EzID4gXFx1MDNDMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNBNCA+IFxcdTAzQzQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzQTUgPiBcXHUwM0M1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0E2ID4gXFx1MDNDNjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNBNyA+IFxcdTAzQzc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzQTggPiBcXHUwM0M4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0E5ID4gXFx1MDNDOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNBQSA+IFxcdTAzQ0E7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzQUIgPiBcXHUwM0NCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0IwID4gXFx1MDNDNVxcdTAzMDhcXHUwMzAxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0MyID4gXFx1MDNDMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNEMCA+IFxcdTAzQjI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzRDEgPiBcXHUwM0I4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0QyID4gXFx1MDNDNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNEMyA+IFxcdTAzQ0Q7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzRDQgPiBcXHUwM0NCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0Q1ID4gXFx1MDNDNjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNENiA+IFxcdTAzQzA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzRDggPiBcXHUwM0Q5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0RBID4gXFx1MDNEQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNEQyA+IFxcdTAzREQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzREUgPiBcXHUwM0RGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0UwID4gXFx1MDNFMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNFMiA+IFxcdTAzRTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzRTQgPiBcXHUwM0U1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0U2ID4gXFx1MDNFNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNFOCA+IFxcdTAzRTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzRUEgPiBcXHUwM0VCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0VDID4gXFx1MDNFRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNFRSA+IFxcdTAzRUY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzRjAgPiBcXHUwM0JBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0YxID4gXFx1MDNDMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDNGMiA+IFxcdTAzQzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTAzRjQgPiBcXHUwM0I4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwM0Y1ID4gXFx1MDNCNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQwMCA+IFxcdTA0NTA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MDEgPiBcXHUwNDUxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDAyID4gXFx1MDQ1MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQwMyA+IFxcdTA0NTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MDQgPiBcXHUwNDU0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDA1ID4gXFx1MDQ1NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQwNiA+IFxcdTA0NTY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MDcgPiBcXHUwNDU3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDA4ID4gXFx1MDQ1ODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQwOSA+IFxcdTA0NTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MEEgPiBcXHUwNDVBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDBCID4gXFx1MDQ1QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQwQyA+IFxcdTA0NUM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MEQgPiBcXHUwNDVEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDBFID4gXFx1MDQ1RTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQwRiA+IFxcdTA0NUY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MTAgPiBcXHUwNDMwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDExID4gXFx1MDQzMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQxMiA+IFxcdTA0MzI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MTMgPiBcXHUwNDMzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDE0ID4gXFx1MDQzNDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQxNSA+IFxcdTA0MzU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MTYgPiBcXHUwNDM2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDE3ID4gXFx1MDQzNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQxOCA+IFxcdTA0Mzg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MTkgPiBcXHUwNDM5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDFBID4gXFx1MDQzQTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQxQiA+IFxcdTA0M0I7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MUMgPiBcXHUwNDNDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDFEID4gXFx1MDQzRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQxRSA+IFxcdTA0M0U7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MUYgPiBcXHUwNDNGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDIwID4gXFx1MDQ0MDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQyMSA+IFxcdTA0NDE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MjIgPiBcXHUwNDQyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDIzID4gXFx1MDQ0MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQyNCA+IFxcdTA0NDQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MjUgPiBcXHUwNDQ1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDI2ID4gXFx1MDQ0NjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQyNyA+IFxcdTA0NDc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MjggPiBcXHUwNDQ4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDI5ID4gXFx1MDQ0OTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQyQSA+IFxcdTA0NEE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MkIgPiBcXHUwNDRCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDJDID4gXFx1MDQ0QzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQyRCA+IFxcdTA0NEQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0MkUgPiBcXHUwNDRFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDJGID4gXFx1MDQ0RjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ2MCA+IFxcdTA0NjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0NjIgPiBcXHUwNDYzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDY0ID4gXFx1MDQ2NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ2NiA+IFxcdTA0Njc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0NjggPiBcXHUwNDY5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDZBID4gXFx1MDQ2QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ2QyA+IFxcdTA0NkQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0NkUgPiBcXHUwNDZGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDcwID4gXFx1MDQ3MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ3MiA+IFxcdTA0NzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0NzQgPiBcXHUwNDc1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDc2ID4gXFx1MDQ3NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ3OCA+IFxcdTA0Nzk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0N0EgPiBcXHUwNDdCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDdDID4gXFx1MDQ3RDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ3RSA+IFxcdTA0N0Y7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0ODAgPiBcXHUwNDgxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDhBID4gXFx1MDQ4QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ4QyA+IFxcdTA0OEQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0OEUgPiBcXHUwNDhGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDkwID4gXFx1MDQ5MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ5MiA+IFxcdTA0OTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0OTQgPiBcXHUwNDk1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDk2ID4gXFx1MDQ5NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ5OCA+IFxcdTA0OTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0OUEgPiBcXHUwNDlCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNDlDID4gXFx1MDQ5RDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDQ5RSA+IFxcdTA0OUY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0QTAgPiBcXHUwNEExOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEEyID4gXFx1MDRBMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRBNCA+IFxcdTA0QTU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0QTYgPiBcXHUwNEE3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEE4ID4gXFx1MDRBOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRBQSA+IFxcdTA0QUI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0QUMgPiBcXHUwNEFEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEFFID4gXFx1MDRBRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRCMCA+IFxcdTA0QjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0QjIgPiBcXHUwNEIzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEI0ID4gXFx1MDRCNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRCNiA+IFxcdTA0Qjc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0QjggPiBcXHUwNEI5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEJBID4gXFx1MDRCQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRCQyA+IFxcdTA0QkQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0QkUgPiBcXHUwNEJGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEMxID4gXFx1MDRDMjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRDMyA+IFxcdTA0QzQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0QzUgPiBcXHUwNEM2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEM3ID4gXFx1MDRDODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRDOSA+IFxcdTA0Q0E7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0Q0IgPiBcXHUwNENDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNENEID4gXFx1MDRDRTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDREMCA+IFxcdTA0RDE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0RDIgPiBcXHUwNEQzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEQ0ID4gXFx1MDRENTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRENiA+IFxcdTA0RDc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0RDggPiBcXHUwNEQ5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNERBID4gXFx1MDREQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDREQyA+IFxcdTA0REQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0REUgPiBcXHUwNERGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEUwID4gXFx1MDRFMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRFMiA+IFxcdTA0RTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0RTQgPiBcXHUwNEU1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEU2ID4gXFx1MDRFNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRFOCA+IFxcdTA0RTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0RUEgPiBcXHUwNEVCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEVDID4gXFx1MDRFRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRFRSA+IFxcdTA0RUY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0RjAgPiBcXHUwNEYxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNEYyID4gXFx1MDRGMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDRGNCA+IFxcdTA0RjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA0RjggPiBcXHUwNEY5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTAwID4gXFx1MDUwMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUwMiA+IFxcdTA1MDM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1MDQgPiBcXHUwNTA1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTA2ID4gXFx1MDUwNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUwOCA+IFxcdTA1MDk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1MEEgPiBcXHUwNTBCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTBDID4gXFx1MDUwRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUwRSA+IFxcdTA1MEY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1MzEgPiBcXHUwNTYxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTMyID4gXFx1MDU2MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUzMyA+IFxcdTA1NjM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1MzQgPiBcXHUwNTY0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTM1ID4gXFx1MDU2NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUzNiA+IFxcdTA1NjY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1MzcgPiBcXHUwNTY3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTM4ID4gXFx1MDU2ODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUzOSA+IFxcdTA1Njk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1M0EgPiBcXHUwNTZBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTNCID4gXFx1MDU2QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUzQyA+IFxcdTA1NkM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1M0QgPiBcXHUwNTZEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTNFID4gXFx1MDU2RTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDUzRiA+IFxcdTA1NkY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NDAgPiBcXHUwNTcwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTQxID4gXFx1MDU3MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU0MiA+IFxcdTA1NzI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NDMgPiBcXHUwNTczOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTQ0ID4gXFx1MDU3NDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU0NSA+IFxcdTA1NzU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NDYgPiBcXHUwNTc2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTQ3ID4gXFx1MDU3NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU0OCA+IFxcdTA1Nzg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NDkgPiBcXHUwNTc5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTRBID4gXFx1MDU3QTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU0QiA+IFxcdTA1N0I7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NEMgPiBcXHUwNTdDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTREID4gXFx1MDU3RDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU0RSA+IFxcdTA1N0U7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NEYgPiBcXHUwNTdGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTUwID4gXFx1MDU4MDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU1MSA+IFxcdTA1ODE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NTIgPiBcXHUwNTgyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTUzID4gXFx1MDU4MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU1NCA+IFxcdTA1ODQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTA1NTUgPiBcXHUwNTg1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUwNTU2ID4gXFx1MDU4NjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDU4NyA+IFxcdTA1NjVcXHUwNTgyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTAwID4gXFx1MUUwMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUwMiA+IFxcdTFFMDM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMDQgPiBcXHUxRTA1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTA2ID4gXFx1MUUwNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUwOCA+IFxcdTFFMDk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMEEgPiBcXHUxRTBCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTBDID4gXFx1MUUwRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUwRSA+IFxcdTFFMEY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMTAgPiBcXHUxRTExOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTEyID4gXFx1MUUxMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUxNCA+IFxcdTFFMTU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMTYgPiBcXHUxRTE3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTE4ID4gXFx1MUUxOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUxQSA+IFxcdTFFMUI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMUMgPiBcXHUxRTFEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTFFID4gXFx1MUUxRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUyMCA+IFxcdTFFMjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMjIgPiBcXHUxRTIzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTI0ID4gXFx1MUUyNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUyNiA+IFxcdTFFMjc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMjggPiBcXHUxRTI5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTJBID4gXFx1MUUyQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUyQyA+IFxcdTFFMkQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMkUgPiBcXHUxRTJGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTMwID4gXFx1MUUzMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUzMiA+IFxcdTFFMzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFMzQgPiBcXHUxRTM1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTM2ID4gXFx1MUUzNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUzOCA+IFxcdTFFMzk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFM0EgPiBcXHUxRTNCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTNDID4gXFx1MUUzRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUUzRSA+IFxcdTFFM0Y7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNDAgPiBcXHUxRTQxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTQyID4gXFx1MUU0MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU0NCA+IFxcdTFFNDU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNDYgPiBcXHUxRTQ3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTQ4ID4gXFx1MUU0OTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU0QSA+IFxcdTFFNEI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNEMgPiBcXHUxRTREOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTRFID4gXFx1MUU0RjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU1MCA+IFxcdTFFNTE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNTIgPiBcXHUxRTUzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTU0ID4gXFx1MUU1NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU1NiA+IFxcdTFFNTc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNTggPiBcXHUxRTU5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTVBID4gXFx1MUU1QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU1QyA+IFxcdTFFNUQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNUUgPiBcXHUxRTVGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTYwID4gXFx1MUU2MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU2MiA+IFxcdTFFNjM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNjQgPiBcXHUxRTY1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTY2ID4gXFx1MUU2NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU2OCA+IFxcdTFFNjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNkEgPiBcXHUxRTZCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTZDID4gXFx1MUU2RDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU2RSA+IFxcdTFFNkY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNzAgPiBcXHUxRTcxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTcyID4gXFx1MUU3MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU3NCA+IFxcdTFFNzU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFNzYgPiBcXHUxRTc3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTc4ID4gXFx1MUU3OTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU3QSA+IFxcdTFFN0I7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFN0MgPiBcXHUxRTdEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTdFID4gXFx1MUU3RjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU4MCA+IFxcdTFFODE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFODIgPiBcXHUxRTgzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTg0ID4gXFx1MUU4NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU4NiA+IFxcdTFFODc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFODggPiBcXHUxRTg5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRThBID4gXFx1MUU4QjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU4QyA+IFxcdTFFOEQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFOEUgPiBcXHUxRThGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTkwID4gXFx1MUU5MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU5MiA+IFxcdTFFOTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFOTQgPiBcXHUxRTk1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTk2ID4gaFxcdTAzMzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFOTcgPiB0XFx1MDMwODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU5OCA+IHdcXHUwMzBBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRTk5ID4geVxcdTAzMEE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFOUEgPiBhXFx1MDJCRTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUU5QiA+IFxcdTFFNjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQTAgPiBcXHUxRUExOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUEyID4gXFx1MUVBMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVBNCA+IFxcdTFFQTU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQTYgPiBcXHUxRUE3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUE4ID4gXFx1MUVBOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVBQSA+IFxcdTFFQUI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQUMgPiBcXHUxRUFEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUFFID4gXFx1MUVBRjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVCMCA+IFxcdTFFQjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQjIgPiBcXHUxRUIzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUI0ID4gXFx1MUVCNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVCNiA+IFxcdTFFQjc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQjggPiBcXHUxRUI5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUJBID4gXFx1MUVCQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVCQyA+IFxcdTFFQkQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQkUgPiBcXHUxRUJGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUMwID4gXFx1MUVDMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVDMiA+IFxcdTFFQzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQzQgPiBcXHUxRUM1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUM2ID4gXFx1MUVDNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVDOCA+IFxcdTFFQzk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFQ0EgPiBcXHUxRUNCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUNDID4gXFx1MUVDRDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVDRSA+IFxcdTFFQ0Y7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFRDAgPiBcXHUxRUQxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUQyID4gXFx1MUVEMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVENCA+IFxcdTFFRDU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFRDYgPiBcXHUxRUQ3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUQ4ID4gXFx1MUVEOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVEQSA+IFxcdTFFREI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFREMgPiBcXHUxRUREOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRURFID4gXFx1MUVERjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVFMCA+IFxcdTFFRTE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFRTIgPiBcXHUxRUUzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUU0ID4gXFx1MUVFNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVFNiA+IFxcdTFFRTc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFRTggPiBcXHUxRUU5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUVBID4gXFx1MUVFQjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVFQyA+IFxcdTFFRUQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFRUUgPiBcXHUxRUVGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUYwID4gXFx1MUVGMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVGMiA+IFxcdTFFRjM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFFRjQgPiBcXHUxRUY1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRUY2ID4gXFx1MUVGNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUVGOCA+IFxcdTFFRjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMDggPiBcXHUxRjAwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjA5ID4gXFx1MUYwMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYwQSA+IFxcdTFGMDI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMEIgPiBcXHUxRjAzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjBDID4gXFx1MUYwNDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYwRCA+IFxcdTFGMDU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMEUgPiBcXHUxRjA2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjBGID4gXFx1MUYwNzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYxOCA+IFxcdTFGMTA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMTkgPiBcXHUxRjExOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjFBID4gXFx1MUYxMjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYxQiA+IFxcdTFGMTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMUMgPiBcXHUxRjE0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjFEID4gXFx1MUYxNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYyOCA+IFxcdTFGMjA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMjkgPiBcXHUxRjIxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjJBID4gXFx1MUYyMjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYyQiA+IFxcdTFGMjM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMkMgPiBcXHUxRjI0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjJEID4gXFx1MUYyNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYyRSA+IFxcdTFGMjY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGMkYgPiBcXHUxRjI3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjM4ID4gXFx1MUYzMDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYzOSA+IFxcdTFGMzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGM0EgPiBcXHUxRjMyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjNCID4gXFx1MUYzMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYzQyA+IFxcdTFGMzQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGM0QgPiBcXHUxRjM1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjNFID4gXFx1MUYzNjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUYzRiA+IFxcdTFGMzc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNDggPiBcXHUxRjQwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjQ5ID4gXFx1MUY0MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY0QSA+IFxcdTFGNDI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNEIgPiBcXHUxRjQzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjRDID4gXFx1MUY0NDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY0RCA+IFxcdTFGNDU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNTAgPiBcXHUwM0M1XFx1MDMxMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY1MiA+IFxcdTAzQzVcXHUwMzEzXFx1MDMwMDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY1NCA+IFxcdTAzQzVcXHUwMzEzXFx1MDMwMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY1NiA+IFxcdTAzQzVcXHUwMzEzXFx1MDM0MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY1OSA+IFxcdTFGNTE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNUIgPiBcXHUxRjUzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjVEID4gXFx1MUY1NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY1RiA+IFxcdTFGNTc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNjggPiBcXHUxRjYwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjY5ID4gXFx1MUY2MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY2QSA+IFxcdTFGNjI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNkIgPiBcXHUxRjYzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjZDID4gXFx1MUY2NDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY2RCA+IFxcdTFGNjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGNkUgPiBcXHUxRjY2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjZGID4gXFx1MUY2NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY4MCA+IFxcdTFGMDBcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjgxID4gXFx1MUYwMVxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGODIgPiBcXHUxRjAyXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY4MyA+IFxcdTFGMDNcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjg0ID4gXFx1MUYwNFxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGODUgPiBcXHUxRjA1XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY4NiA+IFxcdTFGMDZcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjg3ID4gXFx1MUYwN1xcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGODggPiBcXHUxRjAwXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY4OSA+IFxcdTFGMDFcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjhBID4gXFx1MUYwMlxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGOEIgPiBcXHUxRjAzXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY4QyA+IFxcdTFGMDRcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjhEID4gXFx1MUYwNVxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGOEUgPiBcXHUxRjA2XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY4RiA+IFxcdTFGMDdcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjkwID4gXFx1MUYyMFxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGOTEgPiBcXHUxRjIxXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY5MiA+IFxcdTFGMjJcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjkzID4gXFx1MUYyM1xcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGOTQgPiBcXHUxRjI0XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY5NSA+IFxcdTFGMjVcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjk2ID4gXFx1MUYyNlxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGOTcgPiBcXHUxRjI3XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY5OCA+IFxcdTFGMjBcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjk5ID4gXFx1MUYyMVxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGOUEgPiBcXHUxRjIyXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY5QiA+IFxcdTFGMjNcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjlDID4gXFx1MUYyNFxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGOUQgPiBcXHUxRjI1XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUY5RSA+IFxcdTFGMjZcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRjlGID4gXFx1MUYyN1xcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQTAgPiBcXHUxRjYwXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZBMSA+IFxcdTFGNjFcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkEyID4gXFx1MUY2MlxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQTMgPiBcXHUxRjYzXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZBNCA+IFxcdTFGNjRcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkE1ID4gXFx1MUY2NVxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQTYgPiBcXHUxRjY2XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZBNyA+IFxcdTFGNjdcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkE4ID4gXFx1MUY2MFxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQTkgPiBcXHUxRjYxXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZBQSA+IFxcdTFGNjJcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkFCID4gXFx1MUY2M1xcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQUMgPiBcXHUxRjY0XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZBRCA+IFxcdTFGNjVcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkFFID4gXFx1MUY2NlxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQUYgPiBcXHUxRjY3XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZCMiA+IFxcdTFGNzBcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkIzID4gXFx1MDNCMVxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQjQgPiBcXHUwM0FDXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZCNiA+IFxcdTAzQjFcXHUwMzQyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkI3ID4gXFx1MDNCMVxcdTAzNDJcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkI4ID4gXFx1MUZCMDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZCOSA+IFxcdTFGQjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQkEgPiBcXHUxRjcwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkJCID4gXFx1MUY3MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZCQyA+IFxcdTAzQjFcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkJFID4gXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZDMiA+IFxcdTFGNzRcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkMzID4gXFx1MDNCN1xcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQzQgPiBcXHUwM0FFXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZDNiA+IFxcdTAzQjdcXHUwMzQyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkM3ID4gXFx1MDNCN1xcdTAzNDJcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkM4ID4gXFx1MUY3MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZDOSA+IFxcdTFGNzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGQ0EgPiBcXHUxRjc0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkNCID4gXFx1MUY3NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZDQyA+IFxcdTAzQjdcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkQyID4gXFx1MDNCOVxcdTAzMDhcXHUwMzAwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkQzID4gXFx1MDNCOVxcdTAzMDhcXHUwMzAxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkQ2ID4gXFx1MDNCOVxcdTAzNDI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGRDcgPiBcXHUwM0I5XFx1MDMwOFxcdTAzNDI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGRDggPiBcXHUxRkQwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkQ5ID4gXFx1MUZEMTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZEQSA+IFxcdTFGNzY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGREIgPiBcXHUxRjc3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkUyID4gXFx1MDNDNVxcdTAzMDhcXHUwMzAwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkUzID4gXFx1MDNDNVxcdTAzMDhcXHUwMzAxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkU0ID4gXFx1MDNDMVxcdTAzMTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGRTYgPiBcXHUwM0M1XFx1MDM0MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZFNyA+IFxcdTAzQzVcXHUwMzA4XFx1MDM0MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZFOCA+IFxcdTFGRTA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGRTkgPiBcXHUxRkUxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkVBID4gXFx1MUY3QTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZFQiA+IFxcdTFGN0I7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGRUMgPiBcXHUxRkU1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkYyID4gXFx1MUY3Q1xcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGRjMgPiBcXHUwM0M5XFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZGNCA+IFxcdTAzQ0VcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkY2ID4gXFx1MDNDOVxcdTAzNDI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGRjcgPiBcXHUwM0M5XFx1MDM0MlxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGRjggPiBcXHUxRjc4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkY5ID4gXFx1MUY3OTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MUZGQSA+IFxcdTFGN0M7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTFGRkIgPiBcXHUxRjdEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUxRkZDID4gXFx1MDNDOVxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIwQTggPiByczsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjEwMiA+IGM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMDMgPiBcXHUwMEIwYzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjEwNyA+IFxcdTAyNUI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMDkgPiBcXHUwMEIwZjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjEwQiA+IGg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMEMgPiBoOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTBEID4gaDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjExMCA+IGk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMTEgPiBpOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTEyID4gbDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjExNSA+IG47IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMTYgPiBubzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjExOSA+IHA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMUEgPiBxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTFCID4gcjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjExQyA+IHI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMUQgPiByOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTIwID4gc207IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMjEgPiB0ZWw7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMjIgPiB0bTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjEyNCA+IHo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMjYgPiBcXHUwM0M5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTI4ID4gejsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjEyQSA+IGs7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMkIgPiBcXHUwMEU1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTJDID4gYjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjEyRCA+IGM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxMzAgPiBlOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTMxID4gZjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjEzMyA+IG07IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxM0UgPiBcXHUwM0IzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTNGID4gXFx1MDNDMDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjE0NSA+IGQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxNjAgPiBcXHUyMTcwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTYxID4gXFx1MjE3MTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjE2MiA+IFxcdTIxNzI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxNjMgPiBcXHUyMTczOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTY0ID4gXFx1MjE3NDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjE2NSA+IFxcdTIxNzU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxNjYgPiBcXHUyMTc2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTY3ID4gXFx1MjE3NzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjE2OCA+IFxcdTIxNzg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxNjkgPiBcXHUyMTc5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTZBID4gXFx1MjE3QTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjE2QiA+IFxcdTIxN0I7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxNkMgPiBcXHUyMTdDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyMTZEID4gXFx1MjE3RDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjE2RSA+IFxcdTIxN0U7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTIxNkYgPiBcXHUyMTdGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNEI2ID4gXFx1MjREMDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRCNyA+IFxcdTI0RDE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0QjggPiBcXHUyNEQyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNEI5ID4gXFx1MjREMzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRCQSA+IFxcdTI0RDQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0QkIgPiBcXHUyNEQ1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNEJDID4gXFx1MjRENjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRCRCA+IFxcdTI0RDc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0QkUgPiBcXHUyNEQ4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNEJGID4gXFx1MjREOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRDMCA+IFxcdTI0REE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0QzEgPiBcXHUyNERCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNEMyID4gXFx1MjREQzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRDMyA+IFxcdTI0REQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0QzQgPiBcXHUyNERFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNEM1ID4gXFx1MjRERjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRDNiA+IFxcdTI0RTA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0QzcgPiBcXHUyNEUxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNEM4ID4gXFx1MjRFMjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRDOSA+IFxcdTI0RTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0Q0EgPiBcXHUyNEU0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNENCID4gXFx1MjRFNTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRDQyA+IFxcdTI0RTY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTI0Q0QgPiBcXHUyNEU3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUyNENFID4gXFx1MjRFODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjRDRiA+IFxcdTI0RTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzNzEgPiBocGE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzNzMgPiBhdTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzM3NSA+IG92OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzMzgwID4gcGE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzODEgPiBuYTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzM4MiA+IFxcdTAzQkNhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzMzgzID4gbWE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzODQgPiBrYTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzM4NSA+IGtiOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzMzg2ID4gbWI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzODcgPiBnYjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzM4QSA+IHBmOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzMzhCID4gbmY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzOEMgPiBcXHUwM0JDZjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzM5MCA+IGh6OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzMzkxID4ga2h6OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzMzkyID4gbWh6OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzMzkzID4gZ2h6OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzMzk0ID4gdGh6OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0E5ID4gcGE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQUEgPiBrcGE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQUIgPiBtcGE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQUMgPiBncGE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQjQgPiBwdjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNCNSA+IG52OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0I2ID4gXFx1MDNCQ3Y7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQjcgPiBtdjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNCOCA+IGt2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0I5ID4gbXY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQkEgPiBwdzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNCQiA+IG53OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0JDID4gXFx1MDNCQ3c7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQkQgPiBtdzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNCRSA+IGt3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0JGID4gbXc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQzAgPiBrXFx1MDNDOTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNDMSA+IG1cXHUwM0M5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0MzID4gYnE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQzYgPiBjXFx1MjIxNWtnOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0M3ID4gY29cXC47IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQzggPiBkYjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNDOSA+IGd5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0NCID4gaHA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzQ0QgPiBrazsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNDRSA+IGttOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0Q3ID4gcGg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzRDkgPiBwcG07IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdTMzREEgPiBwcjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MzNEQyA+IHN2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHUzM0REID4gd2I7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZCMDAgPiBmZjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkIwMSA+IGZpOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGQjAyID4gZmw7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZCMDMgPiBmZmk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZCMDQgPiBmZmw7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZCMDUgPiBzdDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkIwNiA+IHN0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGQjEzID4gXFx1MDU3NFxcdTA1NzY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZCMTQgPiBcXHUwNTc0XFx1MDU2NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkIxNSA+IFxcdTA1NzRcXHUwNTZCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGQjE2ID4gXFx1MDU3RVxcdTA1NzY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZCMTcgPiBcXHUwNTc0XFx1MDU2RDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYyMSA+IFxcdUZGNDE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMjIgPiBcXHVGRjQyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjIzID4gXFx1RkY0MzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYyNCA+IFxcdUZGNDQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMjUgPiBcXHVGRjQ1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjI2ID4gXFx1RkY0NjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYyNyA+IFxcdUZGNDc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMjggPiBcXHVGRjQ4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjI5ID4gXFx1RkY0OTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYyQSA+IFxcdUZGNEE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMkIgPiBcXHVGRjRCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjJDID4gXFx1RkY0QzsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYyRCA+IFxcdUZGNEQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMkUgPiBcXHVGRjRFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjJGID4gXFx1RkY0RjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYzMCA+IFxcdUZGNTA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMzEgPiBcXHVGRjUxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjMyID4gXFx1RkY1MjsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYzMyA+IFxcdUZGNTM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMzQgPiBcXHVGRjU0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjM1ID4gXFx1RkY1NTsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYzNiA+IFxcdUZGNTY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGMzcgPiBcXHVGRjU3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXHVGRjM4ID4gXFx1RkY1ODsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkYzOSA+IFxcdUZGNTk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcdUZGM0EgPiBcXHVGRjVBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwMCA+IFxcVTAwMDEwNDI4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwMSA+IFxcVTAwMDEwNDI5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwMiA+IFxcVTAwMDEwNDJBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwMyA+IFxcVTAwMDEwNDJCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwNCA+IFxcVTAwMDEwNDJDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwNSA+IFxcVTAwMDEwNDJEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwNiA+IFxcVTAwMDEwNDJFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwNyA+IFxcVTAwMDEwNDJGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwOCA+IFxcVTAwMDEwNDMwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwOSA+IFxcVTAwMDEwNDMxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwQSA+IFxcVTAwMDEwNDMyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwQiA+IFxcVTAwMDEwNDMzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwQyA+IFxcVTAwMDEwNDM0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwRCA+IFxcVTAwMDEwNDM1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwRSA+IFxcVTAwMDEwNDM2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQwRiA+IFxcVTAwMDEwNDM3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxMCA+IFxcVTAwMDEwNDM4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxMSA+IFxcVTAwMDEwNDM5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxMiA+IFxcVTAwMDEwNDNBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxMyA+IFxcVTAwMDEwNDNCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxNCA+IFxcVTAwMDEwNDNDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxNSA+IFxcVTAwMDEwNDNEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxNiA+IFxcVTAwMDEwNDNFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxNyA+IFxcVTAwMDEwNDNGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxOCA+IFxcVTAwMDEwNDQwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxOSA+IFxcVTAwMDEwNDQxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxQSA+IFxcVTAwMDEwNDQyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxQiA+IFxcVTAwMDEwNDQzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxQyA+IFxcVTAwMDEwNDQ0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxRCA+IFxcVTAwMDEwNDQ1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxRSA+IFxcVTAwMDEwNDQ2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQxRiA+IFxcVTAwMDEwNDQ3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQyMCA+IFxcVTAwMDEwNDQ4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQyMSA+IFxcVTAwMDEwNDQ5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQyMiA+IFxcVTAwMDEwNDRBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQyMyA+IFxcVTAwMDEwNDRCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQyNCA+IFxcVTAwMDEwNDRDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxMDQyNSA+IFxcVTAwMDEwNDREOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQwMCA+IGE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDAxID4gYjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MDIgPiBjOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQwMyA+IGQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDA0ID4gZTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MDUgPiBmOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQwNiA+IGc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDA3ID4gaDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MDggPiBpOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQwOSA+IGo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDBBID4gazsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MEIgPiBsOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQwQyA+IG07IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDBEID4gbjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MEUgPiBvOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQwRiA+IHA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDEwID4gcTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MTEgPiByOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQxMiA+IHM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDEzID4gdDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MTQgPiB1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQxNSA+IHY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDE2ID4gdzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MTcgPiB4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQxOCA+IHk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDE5ID4gejsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MzQgPiBhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQzNSA+IGI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDM2ID4gYzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0MzcgPiBkOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQzOCA+IGU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDM5ID4gZjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0M0EgPiBnOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQzQiA+IGg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDNDID4gaTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0M0QgPiBqOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQzRSA+IGs7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDNGID4gbDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NDAgPiBtOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ0MSA+IG47IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDQyID4gbzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NDMgPiBwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ0NCA+IHE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDQ1ID4gcjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NDYgPiBzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ0NyA+IHQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDQ4ID4gdTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NDkgPiB2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ0QSA+IHc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDRCID4geDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NEMgPiB5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ0RCA+IHo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDY4ID4gYTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NjkgPiBiOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ2QSA+IGM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDZCID4gZDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NkMgPiBlOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ2RCA+IGY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDZFID4gZzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NkYgPiBoOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ3MCA+IGk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDcxID4gajsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NzIgPiBrOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ3MyA+IGw7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDc0ID4gbTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NzUgPiBuOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ3NiA+IG87IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDc3ID4gcDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0NzggPiBxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ3OSA+IHI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDdBID4gczsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0N0IgPiB0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ3QyA+IHU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDdEID4gdjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0N0UgPiB3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ3RiA+IHg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDgwID4geTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0ODEgPiB6OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDQ5QyA+IGE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENDlFID4gYzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0OUYgPiBkOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRBMiA+IGc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEE1ID4gajsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0QTYgPiBrOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRBOSA+IG47IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEFBID4gbzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0QUIgPiBwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRBQyA+IHE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEFFID4gczsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0QUYgPiB0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRCMCA+IHU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEIxID4gdjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0QjIgPiB3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRCMyA+IHg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEI0ID4geTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0QjUgPiB6OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDREMCA+IGE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEQxID4gYjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0RDIgPiBjOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDREMyA+IGQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEQ0ID4gZTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0RDUgPiBmOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRENiA+IGc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEQ3ID4gaDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0RDggPiBpOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDREOSA+IGo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENERBID4gazsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0REIgPiBsOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDREQyA+IG07IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEREID4gbjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0REUgPiBvOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRERiA+IHA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEUwID4gcTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0RTEgPiByOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRFMiA+IHM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEUzID4gdDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0RTQgPiB1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRFNSA+IHY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEU2ID4gdzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ0RTcgPiB4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDRFOCA+IHk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENEU5ID4gejsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MDQgPiBhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUwNSA+IGI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTA3ID4gZDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MDggPiBlOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUwOSA+IGY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTBBID4gZzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MEQgPiBqOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUwRSA+IGs7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTBGID4gbDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MTAgPiBtOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUxMSA+IG47IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTEyID4gbzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MTMgPiBwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUxNCA+IHE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTE2ID4gczsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MTcgPiB0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUxOCA+IHU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTE5ID4gdjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MUEgPiB3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUxQiA+IHg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTFDID4geTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1MzggPiBhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUzOSA+IGI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTNCID4gZDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1M0MgPiBlOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDUzRCA+IGY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTNFID4gZzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NDAgPiBpOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU0MSA+IGo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTQyID4gazsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NDMgPiBsOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU0NCA+IG07IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTQ2ID4gbzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NEEgPiBzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU0QiA+IHQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTRDID4gdTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NEQgPiB2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU0RSA+IHc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTRGID4geDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NTAgPiB5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU2QyA+IGE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTZEID4gYjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NkUgPiBjOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU2RiA+IGQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTcwID4gZTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NzEgPiBmOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU3MiA+IGc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTczID4gaDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NzQgPiBpOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU3NSA+IGo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTc2ID4gazsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1NzcgPiBsOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU3OCA+IG07IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTc5ID4gbjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1N0EgPiBvOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU3QiA+IHA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTdDID4gcTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1N0QgPiByOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU3RSA+IHM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTdGID4gdDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1ODAgPiB1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU4MSA+IHY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTgyID4gdzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1ODMgPiB4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDU4NCA+IHk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENTg1ID4gejsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QTAgPiBhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVBMSA+IGI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUEyID4gYzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QTMgPiBkOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVBNCA+IGU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUE1ID4gZjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QTYgPiBnOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVBNyA+IGg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUE4ID4gaTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QTkgPiBqOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVBQSA+IGs7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUFCID4gbDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QUMgPiBtOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVBRCA+IG47IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUFFID4gbzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QUYgPiBwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVCMCA+IHE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUIxID4gcjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QjIgPiBzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVCMyA+IHQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUI0ID4gdTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QjUgPiB2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVCNiA+IHc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUI3ID4geDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1QjggPiB5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVCOSA+IHo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUQ0ID4gYTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1RDUgPiBiOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVENiA+IGM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUQ3ID4gZDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1RDggPiBlOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVEOSA+IGY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENURBID4gZzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1REIgPiBoOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVEQyA+IGk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUREID4gajsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1REUgPiBrOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVERiA+IGw7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUUwID4gbTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1RTEgPiBuOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVFMiA+IG87IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUUzID4gcDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1RTQgPiBxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVFNSA+IHI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUU2ID4gczsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1RTcgPiB0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVFOCA+IHU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUU5ID4gdjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1RUEgPiB3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDVFQiA+IHg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENUVDID4geTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ1RUQgPiB6OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYwOCA+IGE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjA5ID4gYjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MEEgPiBjOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYwQiA+IGQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjBDID4gZTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MEQgPiBmOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYwRSA+IGc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjBGID4gaDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MTAgPiBpOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYxMSA+IGo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjEyID4gazsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MTMgPiBsOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYxNCA+IG07IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjE1ID4gbjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MTYgPiBvOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYxNyA+IHA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjE4ID4gcTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MTkgPiByOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYxQSA+IHM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjFCID4gdDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MUMgPiB1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYxRCA+IHY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjFFID4gdzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2MUYgPiB4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYyMCA+IHk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjIxID4gejsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2M0MgPiBhOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDYzRCA+IGI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjNFID4gYzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2M0YgPiBkOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY0MCA+IGU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjQxID4gZjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NDIgPiBnOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY0MyA+IGg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjQ0ID4gaTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NDUgPiBqOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY0NiA+IGs7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjQ3ID4gbDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NDggPiBtOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY0OSA+IG47IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjRBID4gbzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NEIgPiBwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY0QyA+IHE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjREID4gcjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NEUgPiBzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY0RiA+IHQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjUwID4gdTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NTEgPiB2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY1MiA+IHc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjUzID4geDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NTQgPiB5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY1NSA+IHo7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjcwID4gYTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NzEgPiBiOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY3MiA+IGM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjczID4gZDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NzQgPiBlOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY3NSA+IGY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjc2ID4gZzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2NzcgPiBoOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY3OCA+IGk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjc5ID4gajsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2N0EgPiBrOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY3QiA+IGw7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjdDID4gbTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2N0QgPiBuOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY3RSA+IG87IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjdGID4gcDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2ODAgPiBxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY4MSA+IHI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjgyID4gczsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2ODMgPiB0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY4NCA+IHU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjg1ID4gdjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2ODYgPiB3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDY4NyA+IHg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENjg4ID4geTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2ODkgPiB6OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZBOCA+IFxcdTAzQjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkE5ID4gXFx1MDNCMjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QUEgPiBcXHUwM0IzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZBQiA+IFxcdTAzQjQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkFDID4gXFx1MDNCNTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QUQgPiBcXHUwM0I2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZBRSA+IFxcdTAzQjc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkFGID4gXFx1MDNCODsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QjAgPiBcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZCMSA+IFxcdTAzQkE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkIyID4gXFx1MDNCQjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QjMgPiBcXHUwM0JDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZCNCA+IFxcdTAzQkQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkI1ID4gXFx1MDNCRTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QjYgPiBcXHUwM0JGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZCNyA+IFxcdTAzQzA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkI4ID4gXFx1MDNDMTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QjkgPiBcXHUwM0I4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZCQSA+IFxcdTAzQzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkJCID4gXFx1MDNDNDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QkMgPiBcXHUwM0M1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZCRCA+IFxcdTAzQzY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkJFID4gXFx1MDNDNzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2QkYgPiBcXHUwM0M4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZDMCA+IFxcdTAzQzk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkQzID4gXFx1MDNDMzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RTIgPiBcXHUwM0IxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZFMyA+IFxcdTAzQjI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkU0ID4gXFx1MDNCMzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RTUgPiBcXHUwM0I0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZFNiA+IFxcdTAzQjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkU3ID4gXFx1MDNCNjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RTggPiBcXHUwM0I3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZFOSA+IFxcdTAzQjg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkVBID4gXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RUIgPiBcXHUwM0JBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZFQyA+IFxcdTAzQkI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkVEID4gXFx1MDNCQzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RUUgPiBcXHUwM0JEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZFRiA+IFxcdTAzQkU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkYwID4gXFx1MDNCRjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RjEgPiBcXHUwM0MwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZGMiA+IFxcdTAzQzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkYzID4gXFx1MDNCODsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RjQgPiBcXHUwM0MzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZGNSA+IFxcdTAzQzQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkY2ID4gXFx1MDNDNTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RjcgPiBcXHUwM0M2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDZGOCA+IFxcdTAzQzc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENkY5ID4gXFx1MDNDODsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ2RkEgPiBcXHUwM0M5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDcwRCA+IFxcdTAzQzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzFDID4gXFx1MDNCMTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MUQgPiBcXHUwM0IyOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDcxRSA+IFxcdTAzQjM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzFGID4gXFx1MDNCNDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MjAgPiBcXHUwM0I1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDcyMSA+IFxcdTAzQjY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzIyID4gXFx1MDNCNzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MjMgPiBcXHUwM0I4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDcyNCA+IFxcdTAzQjk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzI1ID4gXFx1MDNCQTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MjYgPiBcXHUwM0JCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDcyNyA+IFxcdTAzQkM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzI4ID4gXFx1MDNCRDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MjkgPiBcXHUwM0JFOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDcyQSA+IFxcdTAzQkY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzJCID4gXFx1MDNDMDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MkMgPiBcXHUwM0MxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDcyRCA+IFxcdTAzQjg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzJFID4gXFx1MDNDMzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MkYgPiBcXHUwM0M0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDczMCA+IFxcdTAzQzU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzMxID4gXFx1MDNDNjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3MzIgPiBcXHUwM0M3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDczMyA+IFxcdTAzQzg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzM0ID4gXFx1MDNDOTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NDcgPiBcXHUwM0MzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc1NiA+IFxcdTAzQjE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzU3ID4gXFx1MDNCMjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NTggPiBcXHUwM0IzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc1OSA+IFxcdTAzQjQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzVBID4gXFx1MDNCNTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NUIgPiBcXHUwM0I2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc1QyA+IFxcdTAzQjc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzVEID4gXFx1MDNCODsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NUUgPiBcXHUwM0I5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc1RiA+IFxcdTAzQkE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzYwID4gXFx1MDNCQjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NjEgPiBcXHUwM0JDOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc2MiA+IFxcdTAzQkQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzYzID4gXFx1MDNCRTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NjQgPiBcXHUwM0JGOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc2NSA+IFxcdTAzQzA7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzY2ID4gXFx1MDNDMTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NjcgPiBcXHUwM0I4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc2OCA+IFxcdTAzQzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzY5ID4gXFx1MDNDNDsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NkEgPiBcXHUwM0M1OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc2QiA+IFxcdTAzQzY7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzZDID4gXFx1MDNDNzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3NkQgPiBcXHUwM0M4OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc2RSA+IFxcdTAzQzk7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzgxID4gXFx1MDNDMzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3OTAgPiBcXHUwM0IxOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc5MSA+IFxcdTAzQjI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzkyID4gXFx1MDNCMzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3OTMgPiBcXHUwM0I0OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc5NCA+IFxcdTAzQjU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzk1ID4gXFx1MDNCNjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3OTYgPiBcXHUwM0I3OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc5NyA+IFxcdTAzQjg7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzk4ID4gXFx1MDNCOTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3OTkgPiBcXHUwM0JBOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc5QSA+IFxcdTAzQkI7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzlCID4gXFx1MDNCQzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3OUMgPiBcXHUwM0JEOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDc5RCA+IFxcdTAzQkU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFENzlFID4gXFx1MDNCRjsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3OUYgPiBcXHUwM0MwOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDdBMCA+IFxcdTAzQzE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFEN0ExID4gXFx1MDNCODsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3QTIgPiBcXHUwM0MzOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDdBMyA+IFxcdTAzQzQ7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFEN0E0ID4gXFx1MDNDNTsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3QTUgPiBcXHUwM0M2OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDdBNiA+IFxcdTAzQzc7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFEN0E3ID4gXFx1MDNDODsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMUQ3QTggPiBcXHUwM0M5OyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAxRDdCQiA+IFxcdTAzQzM7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDJGODY4ID4gXFxVMDAwMjEzNkE7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDJGODc0ID4gXFx1NUYzMzsiKworICAgICAgICAgICAgICAgICAgICAiXFxVMDAwMkY5MUYgPiBcXHU0M0FCOyIrCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDAyRjk1RiA+IFxcdTdBQUU7IisKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDJGOUJGID4gXFx1NEQ1NzsiKworICAgICAgICAgICAgICAgICAgICAvLyBnZW5lcmF0ZSB0aGUgY2hhcmFjdGVycyB0aGF0IGFyZSB1bmFmZmVjdGVkCisgICAgICAgICAgICAgICAgICAgICI6Ols6QUdFPTMuMjpdTkZLQzsiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJNYXAiLAorICAgICAgICAgICAgICAgICAgICAiXFx1MDBBRCA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MDM0RiA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MTgwNiA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MTgwQiA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MTgwQyA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MTgwRCA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjAwQiA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjAwQyA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjAwRCA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1MjA2MCA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwMCA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwMSA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwMiA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwMyA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwNCA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwNSA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwNiA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwNyA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwOCA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwOSA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwQSA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwQiA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwQyA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwRCA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwRSA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkUwRiA+IDsiKworICAgICAgICAgICAgICAgICAgICAiXFx1RkVGRiA+IDsiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJQcm9oaWJpdGVkU2V0IiwKKyAgICAgICAgICAgICAgICAgICAgIltcXHUwMEEwIFxcdTE2ODAgXFx1MjAwMCBcXHUyMDAxIFxcdTIwMDIgXFx1MjAwMyBcXHUyMDA0IFxcdTIwMDUiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUyMDA2IFxcdTIwMDcgXFx1MjAwOCBcXHUyMDA5IFxcdTIwMEEgXFx1MjAwQiBcXHUyMDJGIFxcdTIwNUYgXFx1MzAwMCIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTAwODAtXFx1MDA5RiBcXHUwNkREIFxcdTA3MEYgXFx1MTgwRSBcXHUyMDBDIFxcdTIwMEQgXFx1MjAyOCBcXHUyMDI5IiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MjA2MCBcXHUyMDYxIFxcdTIwNjIgXFx1MjA2MyBcXHUyMDZBLVxcdTIwNkYgXFx1RkVGRiBcXHVGRkY5LVxcdUZGRkMiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXFUwMDAxRDE3My1cXFUwMDAxRDE3QSBcXHVFMDAwLVxcdUY4RkYgXFxVMDAwRjAwMDAtXFxVMDAwRkZGRkQgIiArCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDEwMDAwMC1cXFUwMDEwRkZGRCBcXHVGREQwLVxcdUZERUYgXFx1RkZGRS1cXHVGRkZGIFxcVTAwMDFGRkYiICsKKyAgICAgICAgICAgICAgICAgICAgIkUtXFxVMDAwMUZGRkYgXFxVMDAwMkZGRkUtXFxVMDAwMkZGRkYgXFxVMDAwM0ZGRkUtXFxVMDAwM0ZGRkYgXFxVIiArCisgICAgICAgICAgICAgICAgICAgICIwMDA0RkZGRS1cXFUwMDA0RkZGRiBcXFUwMDA1RkZGRS1cXFUwMDA1RkZGRiBcXFUwMDA2RkZGRS1cXFUwMDA2IiArCisgICAgICAgICAgICAgICAgICAgICJGRkZGIFxcVTAwMDdGRkZFLVxcVTAwMDdGRkZGIFxcVTAwMDhGRkZFLVxcVTAwMDhGRkZGIFxcVTAwMDlGRkZFIiArCisgICAgICAgICAgICAgICAgICAgICItXFxVMDAwOUZGRkYgXFxVMDAwQUZGRkUtXFxVMDAwQUZGRkYgXFxVMDAwQkZGRkUtXFxVMDAwQkZGRkYgXFxVMCIgKworICAgICAgICAgICAgICAgICAgICAiMDBDRkZGRS1cXFUwMDBDRkZGRiBcXFUwMDBERkZGRS1cXFUwMDBERkZGRiBcXFUwMDBFRkZGRS1cXFUwMDBFRiIgKworICAgICAgICAgICAgICAgICAgICAiRkZGIFxcVTAwMEZGRkZFLVxcVTAwMEZGRkZGIFxcVTAwMTBGRkZFLVxcVTAwMTBGRkZGIFxcdUQ4MDAtXFx1REZGRiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdUZGRjkgXFx1RkZGQSBcXHVGRkZCIFxcdUZGRkMgXFx1RkZGRCBcXHUyRkYwLVxcdTJGRkIgXFx1MDM0MCBcXHUwMzQxIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MjAwRSBcXHUyMDBGIFxcdTIwMkEgXFx1MjAyQiBcXHUyMDJDIFxcdTIwMkQgXFx1MjAyRSBcXHUyMDZBIFxcdTIwNkIiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUyMDZDIFxcdTIwNkQgXFx1MjA2RSBcXHUyMDZGIFxcVTAwMEUwMDAxIFxcVTAwMEUwMDIwLVxcVTAwMEUwMCIgKworICAgICAgICAgICAgICAgICAgICAiN0YgXSIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJVbmFzc2lnbmVkU2V0IiwKKyAgICAgICAgICAgICAgICAgICAgIlsgXFx1MDIyMSBcXHUwMjM0LVxcdTAyNEYgXFx1MDJBRS1cXHUwMkFGIFxcdTAyRUYtXFx1MDJGRiBcXHUwMzUwLVxcdTAzNUYiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUwMzcwLVxcdTAzNzMgXFx1MDM3Ni1cXHUwMzc5IFxcdTAzN0ItXFx1MDM3RCBcXHUwMzdGLVxcdTAzODMgXFx1MDM4QiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTAzOEQgXFx1MDNBMiBcXHUwM0NGIFxcdTAzRjctXFx1MDNGRiBcXHUwNDg3IFxcdTA0Q0YgXFx1MDRGNi1cXHUwNEY3IiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MDRGQS1cXHUwNEZGIFxcdTA1MTAtXFx1MDUzMCBcXHUwNTU3LVxcdTA1NTggXFx1MDU2MCBcXHUwNTg4IFxcdTA1OEIiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHUwNTkwIFxcdTA1QTIgXFx1MDVCQSBcXHUwNUM1LVxcdTA1Q0YgXFx1MDVFQi1cXHUwNUVGIFxcdTA1RjUtXFx1MDYwQiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTA2MEQtXFx1MDYxQSBcXHUwNjFDLVxcdTA2MUUgXFx1MDYyMCBcXHUwNjNCLVxcdTA2M0YgXFx1MDY1Ni1cXHUwNjVGIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MDZFRS1cXHUwNkVGIFxcdTA2RkYgXFx1MDcwRSBcXHUwNzJELVxcdTA3MkYgXFx1MDc0Qi1cXHUwNzdGIFxcdTA3QjIiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHUwOTAwIFxcdTA5MDQgXFx1MDkzQS1cXHUwOTNCIFxcdTA5NEUtXFx1MDk0RiBcXHUwOTU1LVxcdTA5NTcgXFx1MDk3MSIgKworICAgICAgICAgICAgICAgICAgICAiLVxcdTA5ODAgXFx1MDk4NCBcXHUwOThELVxcdTA5OEUgXFx1MDk5MS1cXHUwOTkyIFxcdTA5QTkgXFx1MDlCMSBcXHUwOUIzIiArCisgICAgICAgICAgICAgICAgICAgICItXFx1MDlCNSBcXHUwOUJBLVxcdTA5QkIgXFx1MDlCRCBcXHUwOUM1LVxcdTA5QzYgXFx1MDlDOS1cXHUwOUNBIFxcdTA5Q0UiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHUwOUQ2IFxcdTA5RDgtXFx1MDlEQiBcXHUwOURFIFxcdTA5RTQtXFx1MDlFNSBcXHUwOUZCLVxcdTBBMDEgXFx1MEEwMyIgKworICAgICAgICAgICAgICAgICAgICAiLVxcdTBBMDQgXFx1MEEwQi1cXHUwQTBFIFxcdTBBMTEtXFx1MEExMiBcXHUwQTI5IFxcdTBBMzEgXFx1MEEzNCBcXHUwQTM3IiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MEEzQS1cXHUwQTNCIFxcdTBBM0QgXFx1MEE0My1cXHUwQTQ2IFxcdTBBNDktXFx1MEE0QSBcXHUwQTRFLVxcdTBBNTgiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUwQTVEIFxcdTBBNUYtXFx1MEE2NSBcXHUwQTc1LVxcdTBBODAgXFx1MEE4NCBcXHUwQThDIFxcdTBBOEUgXFx1MEE5MiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTBBQTkgXFx1MEFCMSBcXHUwQUI0IFxcdTBBQkEtXFx1MEFCQiBcXHUwQUM2IFxcdTBBQ0EgXFx1MEFDRS1cXHUwQUNGIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MEFEMS1cXHUwQURGIFxcdTBBRTEtXFx1MEFFNSBcXHUwQUYwLVxcdTBCMDAgXFx1MEIwNCBcXHUwQjBELVxcdTBCMEUiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUwQjExLVxcdTBCMTIgXFx1MEIyOSBcXHUwQjMxIFxcdTBCMzQtXFx1MEIzNSBcXHUwQjNBLVxcdTBCM0IgXFx1MEI0NCIgKworICAgICAgICAgICAgICAgICAgICAiLVxcdTBCNDYgXFx1MEI0OS1cXHUwQjRBIFxcdTBCNEUtXFx1MEI1NSBcXHUwQjU4LVxcdTBCNUIgXFx1MEI1RSBcXHUwQjYyIiArCisgICAgICAgICAgICAgICAgICAgICItXFx1MEI2NSBcXHUwQjcxLVxcdTBCODEgXFx1MEI4NCBcXHUwQjhCLVxcdTBCOEQgXFx1MEI5MSBcXHUwQjk2LVxcdTBCOTgiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUwQjlCIFxcdTBCOUQgXFx1MEJBMC1cXHUwQkEyIFxcdTBCQTUtXFx1MEJBNyBcXHUwQkFCLVxcdTBCQUQgXFx1MEJCNiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTBCQkEtXFx1MEJCRCBcXHUwQkMzLVxcdTBCQzUgXFx1MEJDOSBcXHUwQkNFLVxcdTBCRDYgXFx1MEJEOC1cXHUwQkU2IiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MEJGMy1cXHUwQzAwIFxcdTBDMDQgXFx1MEMwRCBcXHUwQzExIFxcdTBDMjkgXFx1MEMzNCBcXHUwQzNBLVxcdTBDM0QiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUwQzQ1IFxcdTBDNDkgXFx1MEM0RS1cXHUwQzU0IFxcdTBDNTctXFx1MEM1RiBcXHUwQzYyLVxcdTBDNjUgXFx1MEM3MCIgKworICAgICAgICAgICAgICAgICAgICAiLVxcdTBDODEgXFx1MEM4NCBcXHUwQzhEIFxcdTBDOTEgXFx1MENBOSBcXHUwQ0I0IFxcdTBDQkEtXFx1MENCRCBcXHUwQ0M1IiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MENDOSBcXHUwQ0NFLVxcdTBDRDQgXFx1MENENy1cXHUwQ0REIFxcdTBDREYgXFx1MENFMi1cXHUwQ0U1IFxcdTBDRjAiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHUwRDAxIFxcdTBEMDQgXFx1MEQwRCBcXHUwRDExIFxcdTBEMjkgXFx1MEQzQS1cXHUwRDNEIFxcdTBENDQtXFx1MEQ0NSIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTBENDkgXFx1MEQ0RS1cXHUwRDU2IFxcdTBENTgtXFx1MEQ1RiBcXHUwRDYyLVxcdTBENjUgXFx1MEQ3MC1cXHUwRDgxIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MEQ4NCBcXHUwRDk3LVxcdTBEOTkgXFx1MERCMiBcXHUwREJDIFxcdTBEQkUtXFx1MERCRiBcXHUwREM3LVxcdTBEQzkiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUwRENCLVxcdTBEQ0UgXFx1MERENSBcXHUwREQ3IFxcdTBERTAtXFx1MERGMSBcXHUwREY1LVxcdTBFMDAgXFx1MEUzQiIgKworICAgICAgICAgICAgICAgICAgICAiLVxcdTBFM0UgXFx1MEU1Qy1cXHUwRTgwIFxcdTBFODMgXFx1MEU4NS1cXHUwRTg2IFxcdTBFODkgXFx1MEU4Qi1cXHUwRThDIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MEU4RS1cXHUwRTkzIFxcdTBFOTggXFx1MEVBMCBcXHUwRUE0IFxcdTBFQTYgXFx1MEVBOC1cXHUwRUE5IFxcdTBFQUMiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUwRUJBIFxcdTBFQkUtXFx1MEVCRiBcXHUwRUM1IFxcdTBFQzcgXFx1MEVDRS1cXHUwRUNGIFxcdTBFREEtXFx1MEVEQiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTBFREUtXFx1MEVGRiBcXHUwRjQ4IFxcdTBGNkItXFx1MEY3MCBcXHUwRjhDLVxcdTBGOEYgXFx1MEY5OCBcXHUwRkJEIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MEZDRC1cXHUwRkNFIFxcdTBGRDAtXFx1MEZGRiBcXHUxMDIyIFxcdTEwMjggXFx1MTAyQiBcXHUxMDMzLVxcdTEwMzUiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUxMDNBLVxcdTEwM0YgXFx1MTA1QS1cXHUxMDlGIFxcdTEwQzYtXFx1MTBDRiBcXHUxMEY5LVxcdTEwRkEgXFx1MTBGQyIgKworICAgICAgICAgICAgICAgICAgICAiLVxcdTEwRkYgXFx1MTE1QS1cXHUxMTVFIFxcdTExQTMtXFx1MTFBNyBcXHUxMUZBLVxcdTExRkYgXFx1MTIwNyBcXHUxMjQ3IiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MTI0OSBcXHUxMjRFLVxcdTEyNEYgXFx1MTI1NyBcXHUxMjU5IFxcdTEyNUUtXFx1MTI1RiBcXHUxMjg3IFxcdTEyODkiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUxMjhFLVxcdTEyOEYgXFx1MTJBRiBcXHUxMkIxIFxcdTEyQjYtXFx1MTJCNyBcXHUxMkJGIFxcdTEyQzEgXFx1MTJDNiIgKworICAgICAgICAgICAgICAgICAgICAiLVxcdTEyQzcgXFx1MTJDRiBcXHUxMkQ3IFxcdTEyRUYgXFx1MTMwRiBcXHUxMzExIFxcdTEzMTYtXFx1MTMxNyBcXHUxMzFGIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MTM0NyBcXHUxMzVCLVxcdTEzNjAgXFx1MTM3RC1cXHUxMzlGIFxcdTEzRjUtXFx1MTQwMCBcXHUxNjc3LVxcdTE2N0YiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUxNjlELVxcdTE2OUYgXFx1MTZGMS1cXHUxNkZGIFxcdTE3MEQgXFx1MTcxNS1cXHUxNzFGIFxcdTE3MzctXFx1MTczRiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTE3NTQtXFx1MTc1RiBcXHUxNzZEIFxcdTE3NzEgXFx1MTc3NC1cXHUxNzdGIFxcdTE3REQtXFx1MTdERiBcXHUxN0VBIiArCisgICAgICAgICAgICAgICAgICAgICItXFx1MTdGRiBcXHUxODBGIFxcdTE4MUEtXFx1MTgxRiBcXHUxODc4LVxcdTE4N0YgXFx1MThBQS1cXHUxREZGIFxcdTFFOUMiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHUxRTlGIFxcdTFFRkEtXFx1MUVGRiBcXHUxRjE2LVxcdTFGMTcgXFx1MUYxRS1cXHUxRjFGIFxcdTFGNDYtXFx1MUY0NyIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTFGNEUtXFx1MUY0RiBcXHUxRjU4IFxcdTFGNUEgXFx1MUY1QyBcXHUxRjVFIFxcdTFGN0UtXFx1MUY3RiBcXHUxRkI1IiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MUZDNSBcXHUxRkQ0LVxcdTFGRDUgXFx1MUZEQyBcXHUxRkYwLVxcdTFGRjEgXFx1MUZGNSBcXHUxRkZGIFxcdTIwNTMiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHUyMDU2IFxcdTIwNTgtXFx1MjA1RSBcXHUyMDY0LVxcdTIwNjkgXFx1MjA3Mi1cXHUyMDczIFxcdTIwOEYtXFx1MjA5RiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTIwQjItXFx1MjBDRiBcXHUyMEVCLVxcdTIwRkYgXFx1MjEzQi1cXHUyMTNDIFxcdTIxNEMtXFx1MjE1MiBcXHUyMTg0IiArCisgICAgICAgICAgICAgICAgICAgICItXFx1MjE4RiBcXHUyM0NGLVxcdTIzRkYgXFx1MjQyNy1cXHUyNDNGIFxcdTI0NEItXFx1MjQ1RiBcXHUyNEZGIFxcdTI2MTQiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHUyNjE1IFxcdTI2MTggXFx1MjY3RS1cXHUyNjdGIFxcdTI2OEEtXFx1MjcwMCBcXHUyNzA1IFxcdTI3MEEtXFx1MjcwQiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTI3MjggXFx1Mjc0QyBcXHUyNzRFIFxcdTI3NTMtXFx1Mjc1NSBcXHUyNzU3IFxcdTI3NUYtXFx1Mjc2MCBcXHUyNzk1IiArCisgICAgICAgICAgICAgICAgICAgICItXFx1Mjc5NyBcXHUyN0IwIFxcdTI3QkYtXFx1MjdDRiBcXHUyN0VDLVxcdTI3RUYgXFx1MkIwMC1cXHUyRTdGIFxcdTJFOUEiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUyRUY0LVxcdTJFRkYgXFx1MkZENi1cXHUyRkVGIFxcdTJGRkMtXFx1MkZGRiBcXHUzMDQwIFxcdTMwOTctXFx1MzA5OCIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdTMxMDAtXFx1MzEwNCBcXHUzMTJELVxcdTMxMzAgXFx1MzE4RiBcXHUzMUI4LVxcdTMxRUYgXFx1MzIxRC1cXHUzMjFGIiArCisgICAgICAgICAgICAgICAgICAgICIgXFx1MzI0NC1cXHUzMjUwIFxcdTMyN0MtXFx1MzI3RSBcXHUzMkNDLVxcdTMyQ0YgXFx1MzJGRiBcXHUzMzc3LVxcdTMzN0EiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHUzM0RFLVxcdTMzREYgXFx1MzNGRiBcXHU0REI2LVxcdTRERkYgXFx1OUZBNi1cXHU5RkZGIFxcdUE0OEQtXFx1QTQ4RiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdUE0QzctXFx1QUJGRiBcXHVEN0E0LVxcdUQ3RkYgXFx1RkEyRS1cXHVGQTJGIFxcdUZBNkItXFx1RkFGRiBcXHVGQjA3IiArCisgICAgICAgICAgICAgICAgICAgICItXFx1RkIxMiBcXHVGQjE4LVxcdUZCMUMgXFx1RkIzNyBcXHVGQjNEIFxcdUZCM0YgXFx1RkI0MiBcXHVGQjQ1IFxcdUZCQjIiICsKKyAgICAgICAgICAgICAgICAgICAgIi1cXHVGQkQyIFxcdUZENDAtXFx1RkQ0RiBcXHVGRDkwLVxcdUZEOTEgXFx1RkRDOC1cXHVGRENGIFxcdUZERkQtXFx1RkRGRiIgKworICAgICAgICAgICAgICAgICAgICAiIFxcdUZFMTAtXFx1RkUxRiBcXHVGRTI0LVxcdUZFMkYgXFx1RkU0Ny1cXHVGRTQ4IFxcdUZFNTMgXFx1RkU2NyBcXHVGRTZDIiArCisgICAgICAgICAgICAgICAgICAgICItXFx1RkU2RiBcXHVGRTc1IFxcdUZFRkQtXFx1RkVGRSBcXHVGRjAwIFxcdUZGQkYtXFx1RkZDMSBcXHVGRkM4LVxcdUZGQzkiICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXHVGRkQwLVxcdUZGRDEgXFx1RkZEOC1cXHVGRkQ5IFxcdUZGREQtXFx1RkZERiBcXHVGRkU3IFxcdUZGRUYtXFx1RkZGOCIgKworICAgICAgICAgICAgICAgICAgICAiIFxcVTAwMDEwMDAwLVxcVTAwMDEwMkZGIFxcVTAwMDEwMzFGIFxcVTAwMDEwMzI0LVxcVTAwMDEwMzJGIFxcVTAiICsKKyAgICAgICAgICAgICAgICAgICAgIjAwMTAzNEItXFxVMDAwMTAzRkYgXFxVMDAwMTA0MjYtXFxVMDAwMTA0MjcgXFxVMDAwMTA0NEUtXFxVMDAwMUMiICsKKyAgICAgICAgICAgICAgICAgICAgIkZGRiBcXFUwMDAxRDBGNi1cXFUwMDAxRDBGRiBcXFUwMDAxRDEyNy1cXFUwMDAxRDEyOSBcXFUwMDAxRDFERS0iICsKKyAgICAgICAgICAgICAgICAgICAgIlxcVTAwMDFEM0ZGIFxcVTAwMDFENDU1IFxcVTAwMDFENDlEIFxcVTAwMDFENEEwLVxcVTAwMDFENEExIFxcVTAwIiArCisgICAgICAgICAgICAgICAgICAgICIwMUQ0QTMtXFxVMDAwMUQ0QTQgXFxVMDAwMUQ0QTctXFxVMDAwMUQ0QTggXFxVMDAwMUQ0QUQgXFxVMDAwMUQ0IiArCisgICAgICAgICAgICAgICAgICAgICJCQSBcXFUwMDAxRDRCQyBcXFUwMDAxRDRDMSBcXFUwMDAxRDRDNCBcXFUwMDAxRDUwNiBcXFUwMDAxRDUwQi1cXFUiICsKKyAgICAgICAgICAgICAgICAgICAgIjAwMDFENTBDIFxcVTAwMDFENTE1IFxcVTAwMDFENTFEIFxcVTAwMDFENTNBIFxcVTAwMDFENTNGIFxcVTAwMDEiICsKKyAgICAgICAgICAgICAgICAgICAgIkQ1NDUgXFxVMDAwMUQ1NDctXFxVMDAwMUQ1NDkgXFxVMDAwMUQ1NTEgXFxVMDAwMUQ2QTQtXFxVMDAwMUQ2QTciICsKKyAgICAgICAgICAgICAgICAgICAgIiBcXFUwMDAxRDdDQS1cXFUwMDAxRDdDRCBcXFUwMDAxRDgwMC1cXFUwMDAxRkZGRCBcXFUwMDAyQTZENy1cXFUwIiArCisgICAgICAgICAgICAgICAgICAgICIwMDJGN0ZGIFxcVTAwMDJGQTFFLVxcVTAwMDJGRkZEIFxcVTAwMDMwMDAwLVxcVTAwMDNGRkZEIFxcVTAwMDQwIiArCisgICAgICAgICAgICAgICAgICAgICIwMDAtXFxVMDAwNEZGRkQgXFxVMDAwNTAwMDAtXFxVMDAwNUZGRkQgXFxVMDAwNjAwMDAtXFxVMDAwNkZGRkQgIiArCisgICAgICAgICAgICAgICAgICAgICJcXFUwMDA3MDAwMC1cXFUwMDA3RkZGRCBcXFUwMDA4MDAwMC1cXFUwMDA4RkZGRCBcXFUwMDA5MDAwMC1cXFUwMCIgKworICAgICAgICAgICAgICAgICAgICAiMDlGRkZEIFxcVTAwMEEwMDAwLVxcVTAwMEFGRkZEIFxcVTAwMEIwMDAwLVxcVTAwMEJGRkZEIFxcVTAwMEMwMCIgKworICAgICAgICAgICAgICAgICAgICAiMDAtXFxVMDAwQ0ZGRkQgXFxVMDAwRDAwMDAtXFxVMDAwREZGRkQgXFxVMDAwRTAwMDAgXFxVMDAwRTAwMDItXFxVIiArCisgICAgICAgICAgICAgICAgICAgICIwMDBFMDAxRiBcXFUwMDBFMDA4MC1cXFUwMDBFRkZGRCBdIiwKKyAgICAgICAgICAgICAgICB9LAorICAgIH07Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9ORlM0U3RyaW5nUHJlcC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvTkZTNFN0cmluZ1ByZXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNmMwOTIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvTkZTNFN0cmluZ1ByZXAuamF2YQpAQCAtMCwwICsxLDE1MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zdHJpbmdwcmVwOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3RyaW5nUHJlcDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVDaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiBAYXV0aG9yIHJhbQorICoKKyAqIFRoaXMgaXMgYSBkdW1iIGltcGxlbWVudGF0aW9uIG9mIE5GUzQgcHJvZmlsZXMuIEl0IGlzIGEgZGlyZWN0IHBvcnQgb2YKKyAqIEMgY29kZSwgZG9lcyBub3QgdXNlIE9iamVjdCBPcmllbnRlZCBwcmluY2lwbGVzLiBRdWljayBhbmQgRGlydHkgaW1wbGVtZW50YXRpb24KKyAqIGZvciB0ZXN0aW5nLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgTkZTNFN0cmluZ1ByZXAgeworCisgICAgcHJpdmF0ZSBTdHJpbmdQcmVwIG5mc2NzcyA9IG51bGw7CisgICAgcHJpdmF0ZSBTdHJpbmdQcmVwIG5mc2NzaSA9IG51bGw7CisgICAgcHJpdmF0ZSBTdHJpbmdQcmVwIG5mc2NpcyA9IG51bGw7CisgICAgcHJpdmF0ZSBTdHJpbmdQcmVwIG5mc214cCA9IG51bGw7CisgICAgcHJpdmF0ZSBTdHJpbmdQcmVwIG5mc214cyA9IG51bGw7CisgICAgLy9zaW5nbGV0b24gaW5zdGFuY2UKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBORlM0U3RyaW5nUHJlcCBwcmVwID0gbmV3IE5GUzRTdHJpbmdQcmVwKCk7CisgICAgCisKKyAgICBwcml2YXRlICBORlM0U3RyaW5nUHJlcCAoKXsKKyAgICAgICAgQ2xhc3NMb2FkZXIgbG9hZGVyID0gTkZTNFN0cmluZ1ByZXAuY2xhc3MuZ2V0Q2xhc3NMb2FkZXIoKTsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgSW5wdXRTdHJlYW0gIG5mc2NzaUZpbGUgPSBsb2FkZXIuZ2V0UmVzb3VyY2VBc1N0cmVhbSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEvbmZzY3NpLnNwcCIpOworICAgICAgICAgICAgbmZzY3NpID0gbmV3IFN0cmluZ1ByZXAobmZzY3NpRmlsZSk7CisgICAgICAgICAgICBuZnNjc2lGaWxlLmNsb3NlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIElucHV0U3RyZWFtICBuZnNjc3NGaWxlID0gbG9hZGVyLmdldFJlc291cmNlQXNTdHJlYW0oImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhL25mc2Nzcy5zcHAiKTsKKyAgICAgICAgICAgIG5mc2NzcyA9IG5ldyBTdHJpbmdQcmVwKG5mc2Nzc0ZpbGUpOworICAgICAgICAgICAgbmZzY3NzRmlsZS5jbG9zZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBJbnB1dFN0cmVhbSAgbmZzY2lzRmlsZSA9IGxvYWRlci5nZXRSZXNvdXJjZUFzU3RyZWFtKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YS9uZnNjaXMuc3BwIik7CisgICAgICAgICAgICBuZnNjaXMgPSBuZXcgU3RyaW5nUHJlcChuZnNjaXNGaWxlKTsKKyAgICAgICAgICAgIG5mc2Npc0ZpbGUuY2xvc2UoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgSW5wdXRTdHJlYW0gIG5mc214cEZpbGUgPSBsb2FkZXIuZ2V0UmVzb3VyY2VBc1N0cmVhbSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEvbmZzbXhwLnNwcCIpOworICAgICAgICAgICAgbmZzbXhwID0gbmV3IFN0cmluZ1ByZXAobmZzbXhwRmlsZSk7CisgICAgICAgICAgICBuZnNteHBGaWxlLmNsb3NlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIElucHV0U3RyZWFtICBuZnNteHNGaWxlID0gbG9hZGVyLmdldFJlc291cmNlQXNTdHJlYW0oImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhL25mc214cy5zcHAiKTsKKyAgICAgICAgICAgIG5mc214cyA9IG5ldyBTdHJpbmdQcmVwKG5mc214c0ZpbGUpOworICAgICAgICAgICAgbmZzbXhzRmlsZS5jbG9zZSgpOworICAgICAgICB9Y2F0Y2goSU9FeGNlcHRpb24gZSl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKGUudG9TdHJpbmcoKSwiIiwiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZVtdIHByZXBhcmUoYnl0ZVtdIHNyYywgU3RyaW5nUHJlcCBwcmVwKQorICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24sIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb257CisgICAgICAgIFN0cmluZyBzID0gbmV3IFN0cmluZyhzcmMsICJVVEYtOCIpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9ICBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uocyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBwcmVwLnByZXBhcmUoaXRlcixTdHJpbmdQcmVwLkRFRkFVTFQpOworICAgICAgICByZXR1cm4gb3V0LnRvU3RyaW5nKCkuZ2V0Qnl0ZXMoIlVURi04Iik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYnl0ZVtdIGNzX3ByZXBhcmUoYnl0ZVtdIHNyYywgYm9vbGVhbiBpc0Nhc2VTZW5zaXRpdmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiwgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbnsKKyAgICAgICAgaWYoaXNDYXNlU2Vuc2l0aXZlID09IHRydWUgKXsKKyAgICAgICAgICAgIHJldHVybiBwcmVwYXJlKHNyYywgcHJlcC5uZnNjc3MpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHJldHVybiBwcmVwYXJlKHNyYywgcHJlcC5uZnNjc2kpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYnl0ZVtdIGNpc19wcmVwYXJlKGJ5dGVbXSBzcmMpCisgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uLCBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24sIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb257CisgICAgICAgIHJldHVybiBwcmVwYXJlKHNyYywgcHJlcC5uZnNjaXMpOworICAgIH0gIAorICAgIAorICAgIC8qIHNvcnRlZCBhcnJheSBmb3IgYmluYXJ5IHNlYXJjaCovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gc3BlY2lhbF9wcmVmaXhlcz17CisgICAgICAgICJBTk9OWU1PVVMiLCAgICAKKyAgICAgICAgIkFVVEhFTlRJQ0FURUQiLAorICAgICAgICAiQkFUQ0giLCAKKyAgICAgICAgIkRJQUxVUCIsIAorICAgICAgICAiRVZFUllPTkUiLCAKKyAgICAgICAgIkdST1VQIiwKKyAgICAgICAgIklOVEVSQUNUSVZFIiwgIAorICAgICAgICAiTkVUV09SSyIsIAorICAgICAgICAiT1dORVIiLAorICAgIH07CisKKworICAgIC8qIGJpbmFyeSBzZWFyY2ggdGhlIHNvcnRlZCBhcnJheSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBmaW5kU3RyaW5nSW5kZXgoU3RyaW5nW10gc29ydGVkQXJyLFN0cmluZyB0YXJnZXQpeworCisgICAgICAgIGludCBsZWZ0LCBtaWRkbGUsIHJpZ2h0LHJjOworCisgICAgICAgIGxlZnQgPTA7CisgICAgICAgIHJpZ2h0PSBzb3J0ZWRBcnIubGVuZ3RoLTE7CisKKyAgICAgICAgd2hpbGUobGVmdCA8PSByaWdodCl7CisgICAgICAgICAgICBtaWRkbGUgPSAobGVmdCtyaWdodCkvMjsKKyAgICAgICAgICAgIHJjPSBzb3J0ZWRBcnJbbWlkZGxlXS5jb21wYXJlVG8odGFyZ2V0KTsKKyAgICAgICAgCisgICAgICAgICAgICBpZihyYzwwKXsKKyAgICAgICAgICAgICAgICBsZWZ0ID0gbWlkZGxlKzE7CisgICAgICAgICAgICB9ZWxzZSBpZihyYyA+MCl7CisgICAgICAgICAgICAgICAgcmlnaHQgPSBtaWRkbGUgLTE7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWlkZGxlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBBVF9TSUdOID0gJ0AnOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYnl0ZVtdIG1peGVkX3ByZXBhcmUoYnl0ZVtdIHNyYykKKyAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiwgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nIHMgPSBuZXcgU3RyaW5nKHNyYywgIlVURi04Iik7CisgICAgICAgIGludCBpbmRleCA9IHMuaW5kZXhPZihBVF9TSUdOKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBpZihpbmRleCA+IC0xKXsKKyAgICAgICAgICAgIC8qIHNwZWNpYWwgcHJlZml4ZXMgbXVzdCBub3QgYmUgZm9sbG93ZWQgYnkgc3VmZml4ZXMhICovCisgICAgICAgICAgICBTdHJpbmcgcHJlZml4U3RyaW5nID0gcy5zdWJzdHJpbmcoMCxpbmRleCk7CisgICAgICAgICAgICBpbnQgaT0gZmluZFN0cmluZ0luZGV4KHNwZWNpYWxfcHJlZml4ZXMsIHByZWZpeFN0cmluZyk7CisgICAgICAgICAgICBTdHJpbmcgc3VmZml4U3RyaW5nID0gcy5zdWJzdHJpbmcoaW5kZXgrMSwgcy5sZW5ndGgoKSk7CisgICAgICAgICAgICBpZihpPi0xICYmICFzdWZmaXhTdHJpbmcuZXF1YWxzKCIiKSl7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiU3VmZml4IGZvbGxvd2luZyBhIHNwZWNpYWwgaW5kZXgiLCBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uSU5WQUxJRF9DSEFSX0ZPVU5EKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBwcmVmaXggPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UocHJlZml4U3RyaW5nKTsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBzdWZmaXggPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc3VmZml4U3RyaW5nKTsKKyAgICAgICAgICAgIG91dC5hcHBlbmQocHJlcC5uZnNteHAucHJlcGFyZShwcmVmaXgsU3RyaW5nUHJlcC5ERUZBVUxUKSk7CisgICAgICAgICAgICBvdXQuYXBwZW5kKEFUX1NJR04pOyAvLyBhZGQgdGhlIGRlbGltaXRlcgorICAgICAgICAgICAgb3V0LmFwcGVuZChwcmVwLm5mc214cy5wcmVwYXJlKHN1ZmZpeCwgU3RyaW5nUHJlcC5ERUZBVUxUKSk7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uocyk7CisgICAgICAgICAgICBvdXQuYXBwZW5kKHByZXAubmZzbXhwLnByZXBhcmUoaXRlcixTdHJpbmdQcmVwLkRFRkFVTFQpKTsKKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgcmV0dXJuIG91dC50b1N0cmluZygpLmdldEJ5dGVzKCJVVEYtOCIpOworICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL05hbWVQcmVwVHJhbnNmb3JtLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9OYW1lUHJlcFRyYW5zZm9ybS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzNmM3M2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9OYW1lUHJlcFRyYW5zZm9ybS5qYXZhCkBAIC0wLDAgKzEsMTY3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA7CisKKworLy9pbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckRpcmVjdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcjsKKworLyoqCisgKiBAYXV0aG9yIHJhbQorICoKKyAqIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uPkNvZGUgYW5kIENvbW1lbnRzCisgKi8KK3B1YmxpYyBjbGFzcyBOYW1lUHJlcFRyYW5zZm9ybSB7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTmFtZVByZXBUcmFuc2Zvcm0gdHJhbnNmb3JtID0gbmV3IE5hbWVQcmVwVHJhbnNmb3JtKCk7CisgICAgCisgICAgcHJpdmF0ZSBVbmljb2RlU2V0IGxhYmVsU2VwYXJhdG9yU2V0OworICAgIHByaXZhdGUgVW5pY29kZVNldCBwcm9oaWJpdGVkU2V0OworICAgIHByaXZhdGUgVW5pY29kZVNldCB1bmFzc2lnbmVkU2V0OworICAgIHByaXZhdGUgVHJhbnNsaXRlcmF0b3IgbWFwVHJhbnNmb3JtOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PTkUgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFMTE9XX1VOQVNTSUdORUQgPSAxOworICAgIAorICAgIHByaXZhdGUgTmFtZVByZXBUcmFuc2Zvcm0oKXsKKyAgICAgICAgLy8gbG9hZCB0aGUgcmVzb3VyY2UgYnVuZGxlCisgICAgICAgIC8vICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwiaWRuYV9ydWxlcyIsIHRydWUpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpSUNVUmVzb3VyY2VCdW5kbGUuY3JlYXRlQnVuZGxlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsImlkbmFfcnVsZXMiLCBOYW1lUHJlcFRyYW5zZm9ybS5jbGFzcy5nZXRDbGFzc0xvYWRlcigpKTsKKyAgICAgICAgU3RyaW5nICBtYXBSdWxlcyAgICAgID0gYnVuZGxlLmdldFN0cmluZygiTWFwTm9Ob3JtYWxpemF0aW9uIik7CisgICAgICAgIG1hcFJ1bGVzICAgICAgICAgICAgICs9IGJ1bmRsZS5nZXRTdHJpbmcoIk1hcE5GS0MiKTsKKyAgICAgICAgbWFwVHJhbnNmb3JtICAgICAgICAgID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJDYXNlTWFwIixtYXBSdWxlcyxUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgbGFiZWxTZXBhcmF0b3JTZXQgICAgID0gbmV3IFVuaWNvZGVTZXQoYnVuZGxlLmdldFN0cmluZygiTGFiZWxTZXBhcmF0b3JTZXQiKSk7CisgICAgICAgIHByb2hpYml0ZWRTZXQgICAgICAgICA9IG5ldyBVbmljb2RlU2V0KGJ1bmRsZS5nZXRTdHJpbmcoIlByb2hpYml0ZWRTZXQiKSk7CisgICAgICAgIHVuYXNzaWduZWRTZXQgICAgICAgICA9IG5ldyBVbmljb2RlU2V0KGJ1bmRsZS5nZXRTdHJpbmcoIlVuYXNzaWduZWRTZXQiKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTmFtZVByZXBUcmFuc2Zvcm0gZ2V0SW5zdGFuY2UoKXsKKyAgICAgICAgcmV0dXJuIHRyYW5zZm9ybTsKKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTGFiZWxTZXBhcmF0b3IoaW50IGNoKXsKKyAgICAgICAgcmV0dXJuIHRyYW5zZm9ybS5sYWJlbFNlcGFyYXRvclNldC5jb250YWlucyhjaCk7CisgICAgfQorCisgICAgIC8qCisgICAgICAgMSkgTWFwIC0tIEZvciBlYWNoIGNoYXJhY3RlciBpbiB0aGUgaW5wdXQsIGNoZWNrIGlmIGl0IGhhcyBhIG1hcHBpbmcKKyAgICAgICAgICBhbmQsIGlmIHNvLCByZXBsYWNlIGl0IHdpdGggaXRzIG1hcHBpbmcuICAKKworICAgICAgIDIpIE5vcm1hbGl6ZSAtLSBQb3NzaWJseSBub3JtYWxpemUgdGhlIHJlc3VsdCBvZiBzdGVwIDEgdXNpbmcgVW5pY29kZQorICAgICAgICAgIG5vcm1hbGl6YXRpb24uIAorCisgICAgICAgMykgUHJvaGliaXQgLS0gQ2hlY2sgZm9yIGFueSBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBhbGxvd2VkIGluIHRoZQorICAgICAgICAgIG91dHB1dC4gIElmIGFueSBhcmUgZm91bmQsIHJldHVybiBhbiBlcnJvci4gIAorCisgICAgICAgNCkgQ2hlY2sgYmlkaSAtLSBQb3NzaWJseSBjaGVjayBmb3IgcmlnaHQtdG8tbGVmdCBjaGFyYWN0ZXJzLCBhbmQgaWYKKyAgICAgICAgICBhbnkgYXJlIGZvdW5kLCBtYWtlIHN1cmUgdGhhdCB0aGUgd2hvbGUgc3RyaW5nIHNhdGlzZmllcyB0aGUKKyAgICAgICAgICByZXF1aXJlbWVudHMgZm9yIGJpZGlyZWN0aW9uYWwgc3RyaW5ncy4gIElmIHRoZSBzdHJpbmcgZG9lcyBub3QKKyAgICAgICAgICBzYXRpc2Z5IHRoZSByZXF1aXJlbWVudHMgZm9yIGJpZGlyZWN0aW9uYWwgc3RyaW5ncywgcmV0dXJuIGFuCisgICAgICAgICAgZXJyb3IuICAKKyAgICAgICAgICBbVW5pY29kZTMuMl0gZGVmaW5lcyBzZXZlcmFsIGJpZGlyZWN0aW9uYWwgY2F0ZWdvcmllczsgZWFjaCBjaGFyYWN0ZXIKKyAgICAgICAgICAgaGFzIG9uZSBiaWRpcmVjdGlvbmFsIGNhdGVnb3J5IGFzc2lnbmVkIHRvIGl0LiAgRm9yIHRoZSBwdXJwb3NlcyBvZgorICAgICAgICAgICB0aGUgcmVxdWlyZW1lbnRzIGJlbG93LCBhbiAiUmFuZEFMQ2F0IGNoYXJhY3RlciIgaXMgYSBjaGFyYWN0ZXIgdGhhdAorICAgICAgICAgICBoYXMgVW5pY29kZSBiaWRpcmVjdGlvbmFsIGNhdGVnb3JpZXMgIlIiIG9yICJBTCI7IGFuICJMQ2F0IGNoYXJhY3RlciIKKyAgICAgICAgICAgaXMgYSBjaGFyYWN0ZXIgdGhhdCBoYXMgVW5pY29kZSBiaWRpcmVjdGlvbmFsIGNhdGVnb3J5ICJMIi4gIE5vdGUKKworCisgICAgICAgICAgIHRoYXQgdGhlcmUgYXJlIG1hbnkgY2hhcmFjdGVycyB3aGljaCBmYWxsIGluIG5laXRoZXIgb2YgdGhlIGFib3ZlCisgICAgICAgICAgIGRlZmluaXRpb25zOyBMYXRpbiBkaWdpdHMgKDxVKzAwMzA+IHRocm91Z2ggPFUrMDAzOT4pIGFyZSBleGFtcGxlcyBvZgorICAgICAgICAgICB0aGlzIGJlY2F1c2UgdGhleSBoYXZlIGJpZGlyZWN0aW9uYWwgY2F0ZWdvcnkgIkVOIi4KKworICAgICAgICAgICBJbiBhbnkgcHJvZmlsZSB0aGF0IHNwZWNpZmllcyBiaWRpcmVjdGlvbmFsIGNoYXJhY3RlciBoYW5kbGluZywgYWxsCisgICAgICAgICAgIHRocmVlIG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzIE1VU1QgYmUgbWV0OgorCisgICAgICAgICAgIDEpIFRoZSBjaGFyYWN0ZXJzIGluIHNlY3Rpb24gNS44IE1VU1QgYmUgcHJvaGliaXRlZC4KKworICAgICAgICAgICAyKSBJZiBhIHN0cmluZyBjb250YWlucyBhbnkgUmFuZEFMQ2F0IGNoYXJhY3RlciwgdGhlIHN0cmluZyBNVVNUIE5PVAorICAgICAgICAgICAgICBjb250YWluIGFueSBMQ2F0IGNoYXJhY3Rlci4KKworICAgICAgICAgICAzKSBJZiBhIHN0cmluZyBjb250YWlucyBhbnkgUmFuZEFMQ2F0IGNoYXJhY3RlciwgYSBSYW5kQUxDYXQKKyAgICAgICAgICAgICAgY2hhcmFjdGVyIE1VU1QgYmUgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgc3RyaW5nLCBhbmQgYQorICAgICAgICAgICAgICBSYW5kQUxDYXQgY2hhcmFjdGVyIE1VU1QgYmUgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBzdHJpbmcuCisgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIHByZXBhcmUoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgICAgICByZXR1cm4gcHJlcGFyZShzcmMuZ2V0VGV4dCgpLG9wdGlvbnMpOworICAgIH0KKyAgICBwcml2YXRlIFN0cmluZyBtYXAgKCBTdHJpbmcgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgLy8gbWFwIAorICAgICAgICBib29sZWFuIGFsbG93VW5hc3NpZ25lZCA9ICAoKG9wdGlvbnMgJiBBTExPV19VTkFTU0lHTkVEKT4wKTsKKyAgICAgICAgU3RyaW5nIGNhc2VNYXBPdXQgPSB0cmFuc2Zvcm0ubWFwVHJhbnNmb3JtLnRyYW5zbGl0ZXJhdGUoc3JjKTsgICAgCisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKGNhc2VNYXBPdXQpOworICAgICAgICBpbnQgY2g7CisgICAgICAgIHdoaWxlKChjaD1pdGVyLm5leHRDb2RlUG9pbnQoKSkhPVVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYodHJhbnNmb3JtLnVuYXNzaWduZWRTZXQuY29udGFpbnMoY2gpPT10cnVlICYmIGFsbG93VW5hc3NpZ25lZCA9PWZhbHNlKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJBbiB1bmFzc2lnbmVkIGNvZGUgcG9pbnQgd2FzIGZvdW5kIGluIHRoZSBpbnB1dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5VTkFTU0lHTkVEX0VSUk9SKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2FzZU1hcE91dDsKKyAgICB9CisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBwcmVwYXJlKFN0cmluZyBzcmMsaW50IG9wdGlvbnMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgCisgICAgICAgIGludCBjaDsKKyAgICAgICAgU3RyaW5nIG1hcE91dCA9IG1hcChzcmMsb3B0aW9ucyk7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKG1hcE91dCk7CisKKyAgICAgICAgaW50IGRpcmVjdGlvbj1VQ2hhcmFjdGVyRGlyZWN0aW9uLkNIQVJfRElSRUNUSU9OX0NPVU5ULAorICAgICAgICAgICAgZmlyc3RDaGFyRGlyPVVDaGFyYWN0ZXJEaXJlY3Rpb24uQ0hBUl9ESVJFQ1RJT05fQ09VTlQ7ICAgIAorICAgICAgICBpbnQgcnRsUG9zPS0xLCBsdHJQb3M9LTE7CisgICAgICAgIGJvb2xlYW4gcmlnaHRUb0xlZnQ9ZmFsc2UsIGxlZnRUb1JpZ2h0PWZhbHNlOworICAgICAgICAgICAKKyAgICAgICAgd2hpbGUoKGNoPWl0ZXIubmV4dENvZGVQb2ludCgpKSE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsKKworCisgICAgICAgICAgICBpZih0cmFuc2Zvcm0ucHJvaGliaXRlZFNldC5jb250YWlucyhjaCk9PXRydWUgJiYgY2ghPTB4MDAyMCl7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiQSBwcm9oaWJpdGVkIGNvZGUgcG9pbnQgd2FzIGZvdW5kIGluIHRoZSBpbnB1dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVyLmdldFRleHQoKSxpdGVyLmdldEluZGV4KCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkaXJlY3Rpb24gPSBVQ2hhcmFjdGVyLmdldERpcmVjdGlvbihjaCk7CisgICAgICAgICAgICBpZihmaXJzdENoYXJEaXIgPT0gVUNoYXJhY3RlckRpcmVjdGlvbi5DSEFSX0RJUkVDVElPTl9DT1VOVCl7CisgICAgICAgICAgICAgICAgZmlyc3RDaGFyRGlyID0gZGlyZWN0aW9uOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZGlyZWN0aW9uID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uTEVGVF9UT19SSUdIVCl7CisgICAgICAgICAgICAgICAgbGVmdFRvUmlnaHQgPSB0cnVlOworICAgICAgICAgICAgICAgIGx0clBvcyA9IGl0ZXIuZ2V0SW5kZXgoKS0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZGlyZWN0aW9uID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB8fCBkaXJlY3Rpb24gPT0gVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyl7CisgICAgICAgICAgICAgICAgcmlnaHRUb0xlZnQgPSB0cnVlOworICAgICAgICAgICAgICAgIHJ0bFBvcyA9IGl0ZXIuZ2V0SW5kZXgoKS0xOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgICAgICAKKworICAgICAgICAvLyBzYXRpc2Z5IDIKKyAgICAgICAgaWYoIGxlZnRUb1JpZ2h0ID09IHRydWUgJiYgcmlnaHRUb0xlZnQgPT0gdHJ1ZSl7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgcnVsZXMgZm9yIEJpRGkgY29kZSBwb2ludHMuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQ0hFQ0tfQklESV9FUlJPUixpdGVyLmdldFRleHQoKSwocnRsUG9zPmx0clBvcykgPyBydGxQb3MgOiBsdHJQb3MpOworICAgICAgICB9CisKKyAgICAgICAgLy9zYXRpc2Z5IDMKKyAgICAgICAgaWYoIHJpZ2h0VG9MZWZ0ID09IHRydWUgJiYgCisgICAgICAgICAgICAhKChmaXJzdENoYXJEaXIgPT0gVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUIHx8IGZpcnN0Q2hhckRpciA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlRfQVJBQklDKSAmJgorICAgICAgICAgICAgKGRpcmVjdGlvbiA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfHwgZGlyZWN0aW9uID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMpKQorICAgICAgICAgICApeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIGlucHV0IGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlIHJ1bGVzIGZvciBCaURpIGNvZGUgcG9pbnRzLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5DSEVDS19CSURJX0VSUk9SLGl0ZXIuZ2V0VGV4dCgpLChydGxQb3M+bHRyUG9zKSA/IHJ0bFBvcyA6IGx0clBvcyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nQnVmZmVyKG1hcE91dCk7CisKKyAgICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1B1bnljb2RlUmVmZXJlbmNlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9QdW55Y29kZVJlZmVyZW5jZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlYmE4YjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9QdW55Y29kZVJlZmVyZW5jZS5qYXZhCkBAIC0wLDAgKzEsMzgyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKy8qCisgKiAKK0Rpc2NsYWltZXIgYW5kIGxpY2Vuc2UKKworICAgIFJlZ2FyZGluZyB0aGlzIGVudGlyZSBkb2N1bWVudCBvciBhbnkgcG9ydGlvbiBvZiBpdCAoaW5jbHVkaW5nCisgICAgdGhlIHBzZXVkb2NvZGUgYW5kIEMgY29kZSksIHRoZSBhdXRob3IgbWFrZXMgbm8gZ3VhcmFudGVlcyBhbmQKKyAgICBpcyBub3QgcmVzcG9uc2libGUgZm9yIGFueSBkYW1hZ2UgcmVzdWx0aW5nIGZyb20gaXRzIHVzZS4gIFRoZQorICAgIGF1dGhvciBncmFudHMgaXJyZXZvY2FibGUgcGVybWlzc2lvbiB0byBhbnlvbmUgdG8gdXNlLCBtb2RpZnksCisgICAgYW5kIGRpc3RyaWJ1dGUgaXQgaW4gYW55IHdheSB0aGF0IGRvZXMgbm90IGRpbWluaXNoIHRoZSByaWdodHMKKyAgICBvZiBhbnlvbmUgZWxzZSB0byB1c2UsIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgaXQsIHByb3ZpZGVkIHRoYXQKKyAgICByZWRpc3RyaWJ1dGVkIGRlcml2YXRpdmUgd29ya3MgZG8gbm90IGNvbnRhaW4gbWlzbGVhZGluZyBhdXRob3Igb3IKKyAgICB2ZXJzaW9uIGluZm9ybWF0aW9uLiAgRGVyaXZhdGl2ZSB3b3JrcyBuZWVkIG5vdCBiZSBsaWNlbnNlZCB1bmRlcgorICAgIHNpbWlsYXIgdGVybXMuCisKK3B1bnljb2RlLmMgMC40LjAgKDIwMDEtTm92LTE3LVNhdCkKK2h0dHA6Ly93d3cuY3MuYmVya2VsZXkuZWR1L35hbWMvaWRuLworQWRhbSBNLiBDb3N0ZWxsbworaHR0cDovL3d3dy5uaWNlbWljZS5uZXQvYW1jLworKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zdHJpbmdwcmVwOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKy8qKgorICogVGhlIGltcGxlbWVudGF0aW9uIGlzIGRpcmVjdCBwb3J0IG9mIEMgY29kZSBpbiB0aGUgUkZDCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFB1bnljb2RlUmVmZXJlbmNlIHsKKyAgICAvKioqIHB1bnljb2RlIHN0YXR1cyBjb2RlcyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IHB1bnljb2RlX3N1Y2Nlc3M9MDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBwdW55Y29kZV9iYWRfaW5wdXQ9MTsgICAvKiBJbnB1dCBpcyBpbnZhbGlkLiAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBwdW55Y29kZV9iaWdfb3V0cHV0PTI7ICAvKiBPdXRwdXQgd291bGQgZXhjZWVkIHRoZSBzcGFjZSBwcm92aWRlZC4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBwdW55Y29kZV9vdmVyZmxvdyA9MzsgICAgLyogSW5wdXQgbmVlZHMgd2lkZXIgaW50ZWdlcnMgdG8gcHJvY2Vzcy4gICovCisgICAgCisgICAgLyoqKiBCb290c3RyaW5nIHBhcmFtZXRlcnMgZm9yIFB1bnljb2RlICoqKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgYmFzZSA9IDM2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCB0bWluID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgdG1heCA9IDI2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBza2V3ID0gMzg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGRhbXAgPSA3MDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGluaXRpYWxfYmlhcyA9IDcyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBpbml0aWFsX24gPSAweDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBkZWxpbWl0ZXIgPSAweDJEOworICAgIAorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgVU5TSUdORURfSU5UX01BU0sgPSAweGZmZmZmZmZmTDsKKyAgICAKKyAgICAvKiBiYXNpYyhjcCkgdGVzdHMgd2hldGhlciBjcCBpcyBhIGJhc2ljIGNvZGUgcG9pbnQ6ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBiYXNpYyhpbnQgY3ApeworICAgICAgICByZXR1cm4gKGNoYXIpKGNwKSA8IDB4ODA7CisgICAgfQorCisgICAgLyogZGVsaW0oY3ApIHRlc3RzIHdoZXRoZXIgY3AgaXMgYSBkZWxpbWl0ZXI6ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBkZWxpbShpbnQgY3ApeworICAgICAgICByZXR1cm4gKChjcCkgPT0gZGVsaW1pdGVyKTsKKyAgICB9CisKKyAgICAvKiBkZWNvZGVfZGlnaXQoY3ApIHJldHVybnMgdGhlIG51bWVyaWMgdmFsdWUgb2YgYSBiYXNpYyBjb2RlICovCisgICAgLyogcG9pbnQgKGZvciB1c2UgaW4gcmVwcmVzZW50aW5nIGludGVnZXJzKSBpbiB0aGUgcmFuZ2UgMCB0byAqLworICAgIC8qIGJhc2UtMSwgb3IgYmFzZSBpZiBjcCBpcyBkb2VzIG5vdCByZXByZXNlbnQgYSB2YWx1ZS4gICAgICAgKi8KKworICAgIHByaXZhdGUgc3RhdGljIGludCBkZWNvZGVfZGlnaXQoaW50IGNwKQorICAgIHsKKyAgICAgIHJldHVybiAgY3AgLSA0OCA8IDEwID8gY3AgLSAyMiA6ICBjcCAtIDY1IDwgMjYgPyBjcCAtIDY1IDoKKyAgICAgICAgICAgICAgY3AgLSA5NyA8IDI2ID8gY3AgLSA5NyA6ICBiYXNlOworICAgIH0KKworICAgIC8qIGVuY29kZV9kaWdpdChkLGZsYWcpIHJldHVybnMgdGhlIGJhc2ljIGNvZGUgcG9pbnQgd2hvc2UgdmFsdWUgICAgICAqLworICAgIC8qICh3aGVuIHVzZWQgZm9yIHJlcHJlc2VudGluZyBpbnRlZ2VycykgaXMgZCwgd2hpY2ggbmVlZHMgdG8gYmUgaW4gICAqLworICAgIC8qIHRoZSByYW5nZSAwIHRvIGJhc2UtMS4gIFRoZSBsb3dlcmNhc2UgZm9ybSBpcyB1c2VkIHVubGVzcyBmbGFnIGlzICAqLworICAgIC8qIG5vbnplcm8sIGluIHdoaWNoIGNhc2UgdGhlIHVwcGVyY2FzZSBmb3JtIGlzIHVzZWQuICBUaGUgYmVoYXZpb3IgICAqLworICAgIC8qIGlzIHVuZGVmaW5lZCBpZiBmbGFnIGlzIG5vbnplcm8gYW5kIGRpZ2l0IGQgaGFzIG5vIHVwcGVyY2FzZSBmb3JtLiAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhciBlbmNvZGVfZGlnaXQoaW50IGQsIGludCBmbGFnKQorICAgIHsKKyAgICAgIHJldHVybiAoY2hhcikgKGQgKyAyMiArICg3NSAqICgoZCA8IDI2KSA/IDEgOiAwKSAtICgoKGZsYWcgIT0gMCkgPyAxIDowKSA8PCA1KSkpOworICAgICAgLyogIDAuLjI1IG1hcCB0byBBU0NJSSBhLi56IG9yIEEuLlogKi8KKyAgICAgIC8qIDI2Li4zNSBtYXAgdG8gQVNDSUkgMC4uOSAgICAgICAgICovCisgICAgfQorCisgICAgLyogZmxhZ2dlZChiY3ApIHRlc3RzIHdoZXRoZXIgYSBiYXNpYyBjb2RlIHBvaW50IGlzIGZsYWdnZWQgKi8KKyAgICAvKiAodXBwZXJjYXNlKS4gIFRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQgaWYgYmNwIGlzIG5vdCBhICAqLworICAgIC8qIGJhc2ljIGNvZGUgcG9pbnQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGZsYWdnZWQoaW50IGJjcCl7CisgICAgICAgICByZXR1cm4gKChiY3ApIC0gNjUgPCAyNik7CisgICAgfQorCisgICAgLyogZW5jb2RlX2Jhc2ljKGJjcCxmbGFnKSBmb3JjZXMgYSBiYXNpYyBjb2RlIHBvaW50IHRvIGxvd2VyY2FzZSAqLworICAgIC8qIGlmIGZsYWcgaXMgemVybywgdXBwZXJjYXNlIGlmIGZsYWcgaXMgbm9uemVybywgYW5kIHJldHVybnMgICAgKi8KKyAgICAvKiB0aGUgcmVzdWx0aW5nIGNvZGUgcG9pbnQuICBUaGUgY29kZSBwb2ludCBpcyB1bmNoYW5nZWQgaWYgaXQgICovCisgICAgLyogaXMgY2FzZWxlc3MuICBUaGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkIGlmIGJjcCBpcyBub3QgYSBiYXNpYyAqLworICAgIC8qIGNvZGUgcG9pbnQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKworICAgIHByaXZhdGUgc3RhdGljIGNoYXIgZW5jb2RlX2Jhc2ljKGludCBiY3AsIGludCBmbGFnKQorICAgIHsKKyAgICAgIGJjcCAtPSAoKChiY3AgLSA5NykgPCAyNikgPyAxIDowICkgPDwgNTsKKyAgICAgIGJvb2xlYW4gbXliY3AgPSAoYmNwIC0gNjUgPCAyNik7CisgICAgICByZXR1cm4gKGNoYXIpIChiY3AgKyAoKChmbGFnPT0wKSAmJiBteWJjcCApID8gMSA6IDAgKSA8PCA1KTsKKyAgICB9CisKKyAgICAvKioqIFBsYXRmb3JtLXNwZWNpZmljIGNvbnN0YW50cyAqKiovCisKKyAgICAvKiBtYXhpbnQgaXMgdGhlIG1heGltdW0gdmFsdWUgb2YgYSBwdW55Y29kZV91aW50IHZhcmlhYmxlOiAqLworICAgIHByaXZhdGUgc3RhdGljIGxvbmcgbWF4aW50ID0gMHhGRkZGRkZGRkw7CisgICAgLyogQmVjYXVzZSBtYXhpbnQgaXMgdW5zaWduZWQsIC0xIGJlY29tZXMgdGhlIG1heGltdW0gdmFsdWUuICovCisKKyAgICAvKioqIEJpYXMgYWRhcHRhdGlvbiBmdW5jdGlvbiAqKiovCisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgYWRhcHQoaW50IGRlbHRhLCBpbnQgbnVtcG9pbnRzLCBib29sZWFuIGZpcnN0dGltZSApeworICAgICAgaW50IGs7CisKKyAgICAgIGRlbHRhID0gKGZpcnN0dGltZT09dHJ1ZSkgPyBkZWx0YSAvIGRhbXAgOiBkZWx0YSA+PiAxOworICAgICAgLyogZGVsdGEgPj4gMSBpcyBhIGZhc3RlciB3YXkgb2YgZG9pbmcgZGVsdGEgLyAyICovCisgICAgICBkZWx0YSArPSBkZWx0YSAvIG51bXBvaW50czsKKworICAgICAgZm9yIChrID0gMDsgIGRlbHRhID4gKChiYXNlIC0gdG1pbikgKiB0bWF4KSAvIDI7ICBrICs9IGJhc2UpIHsKKyAgICAgICAgZGVsdGEgLz0gYmFzZSAtIHRtaW47CisgICAgICB9CisKKyAgICAgIHJldHVybiBrICsgKGJhc2UgLSB0bWluICsgMSkgKiBkZWx0YSAvIChkZWx0YSArIHNrZXcpOworICAgIH0KKworICAgIC8qKiogTWFpbiBlbmNvZGUgZnVuY3Rpb24gKioqLworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgZW5jb2RlKCAgIGludCBpbnB1dF9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbnB1dFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gY2FzZV9mbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gb3V0cHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBvdXRwdXRbXSApeworICAgICAgaW50IGRlbHRhLCBoLCBiLCBvdXQsIG1heF9vdXQsIGJpYXMsIGosIHEsIGssIHQ7CisgICAgICBsb25nIG0sbjsKKyAgICAgIC8qIEluaXRpYWxpemUgdGhlIHN0YXRlOiAqLworCisgICAgICBuID0gaW5pdGlhbF9uOworICAgICAgZGVsdGEgPSBvdXQgPSAwOworICAgICAgbWF4X291dCA9IG91dHB1dF9sZW5ndGhbMF07CisgICAgICBiaWFzID0gaW5pdGlhbF9iaWFzOworCisgICAgICAvKiBIYW5kbGUgdGhlIGJhc2ljIGNvZGUgcG9pbnRzOiAqLworCisgICAgICBmb3IgKGogPSAwOyAgaiA8IGlucHV0X2xlbmd0aDsgICsraikgeworICAgICAgICBpZiAoYmFzaWMoaW5wdXRbal0pKSB7CisgICAgICAgICAgaWYgKG1heF9vdXQgLSBvdXQgPCAyKSByZXR1cm4gcHVueWNvZGVfYmlnX291dHB1dDsKKyAgICAgICAgICBvdXRwdXRbb3V0KytdID0gKGNoYXIpCisgICAgICAgICAgICAoY2FzZV9mbGFncyE9bnVsbCA/ICBlbmNvZGVfYmFzaWMoaW5wdXRbal0sIGNhc2VfZmxhZ3Nbal0pIDogaW5wdXRbal0pOworICAgICAgICB9CisgICAgICAgIC8qIGVsc2UgaWYgKGlucHV0W2pdIDwgbikgcmV0dXJuIHB1bnljb2RlX2JhZF9pbnB1dDsgKi8KKyAgICAgICAgLyogKG5vdCBuZWVkZWQgZm9yIFB1bnljb2RlIHdpdGggdW5zaWduZWQgY29kZSBwb2ludHMpICovCisgICAgICB9CisKKyAgICAgIGggPSBiID0gb3V0OworCisgICAgICAvKiBoIGlzIHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgdGhhdCBoYXZlIGJlZW4gaGFuZGxlZCwgYiBpcyB0aGUgICovCisgICAgICAvKiBudW1iZXIgb2YgYmFzaWMgY29kZSBwb2ludHMsIGFuZCBvdXQgaXMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzICovCisgICAgICAvKiB0aGF0IGhhdmUgYmVlbiBvdXRwdXQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisKKyAgICAgIGlmIChiID4gMCkgb3V0cHV0W291dCsrXSA9IGRlbGltaXRlcjsKKworICAgICAgLyogTWFpbiBlbmNvZGluZyBsb29wOiAqLworCisgICAgICB3aGlsZSAoaCA8IGlucHV0X2xlbmd0aCkgeworICAgICAgICAvKiBBbGwgbm9uLWJhc2ljIGNvZGUgcG9pbnRzIDwgbiBoYXZlIGJlZW4gICAgICovCisgICAgICAgIC8qIGhhbmRsZWQgYWxyZWFkeS4gIEZpbmQgdGhlIG5leHQgbGFyZ2VyIG9uZTogKi8KKworICAgICAgICBmb3IgKG0gPSBtYXhpbnQsIGogPSAwOyAgaiA8IGlucHV0X2xlbmd0aDsgICsraikgeworICAgICAgICAgIC8qIGlmIChiYXNpYyhpbnB1dFtqXSkpIGNvbnRpbnVlOyAqLworICAgICAgICAgIC8qIChub3QgbmVlZGVkIGZvciBQdW55Y29kZSkgKi8KKyAgICAgICAgICBpZiAoaW5wdXRbal0gPj0gbiAmJiBpbnB1dFtqXSA8IG0pIG0gPSBpbnB1dFtqXTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIEluY3JlYXNlIGRlbHRhIGVub3VnaCB0byBhZHZhbmNlIHRoZSBkZWNvZGVyJ3MgICAgKi8KKyAgICAgICAgLyogPG4saT4gc3RhdGUgdG8gPG0sMD4sIGJ1dCBndWFyZCBhZ2FpbnN0IG92ZXJmbG93OiAqLworCisgICAgICAgIGlmIChtIC0gbiA+IChtYXhpbnQgLSBkZWx0YSkgLyAoaCArIDEpKSByZXR1cm4gcHVueWNvZGVfb3ZlcmZsb3c7CisgICAgICAgIGRlbHRhICs9IChtIC0gbikgKiAoaCArIDEpOworICAgICAgICBuID0gbTsKKworICAgICAgICBmb3IgKGogPSAwOyAgaiA8IGlucHV0X2xlbmd0aDsgICsraikgeworICAgICAgICAgIC8qIFB1bnljb2RlIGRvZXMgbm90IG5lZWQgdG8gY2hlY2sgd2hldGhlciBpbnB1dFtqXSBpcyBiYXNpYzogKi8KKyAgICAgICAgICBpZiAoaW5wdXRbal0gPCBuIC8qIHx8IGJhc2ljKGlucHV0W2pdKSAqLyApIHsKKyAgICAgICAgICAgIGlmICgrK2RlbHRhID09IDApIHJldHVybiBwdW55Y29kZV9vdmVyZmxvdzsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoaW5wdXRbal0gPT0gbikgeworICAgICAgICAgICAgLyogUmVwcmVzZW50IGRlbHRhIGFzIGEgZ2VuZXJhbGl6ZWQgdmFyaWFibGUtbGVuZ3RoIGludGVnZXI6ICovCisKKyAgICAgICAgICAgIGZvciAocSA9IGRlbHRhLCBrID0gYmFzZTsgIDsgIGsgKz0gYmFzZSkgeworICAgICAgICAgICAgICBpZiAob3V0ID49IG1heF9vdXQpIHJldHVybiBwdW55Y29kZV9iaWdfb3V0cHV0OworICAgICAgICAgICAgICB0ID0gayA8PSBiaWFzIC8qICsgdG1pbiAqLyA/IHRtaW4gOiAgICAgLyogK3RtaW4gbm90IG5lZWRlZCAqLworICAgICAgICAgICAgICAgICAgayA+PSBiaWFzICsgdG1heCA/IHRtYXggOiBrIC0gYmlhczsKKyAgICAgICAgICAgICAgaWYgKHEgPCB0KSBicmVhazsKKyAgICAgICAgICAgICAgb3V0cHV0W291dCsrXSA9IGVuY29kZV9kaWdpdCh0ICsgKHEgLSB0KSAlIChiYXNlIC0gdCksIDApOworICAgICAgICAgICAgICBxID0gKHEgLSB0KSAvIChiYXNlIC0gdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG91dHB1dFtvdXQrK10gPSBlbmNvZGVfZGlnaXQocSwgKGNhc2VfZmxhZ3MgIT1udWxsKSA/IGNhc2VfZmxhZ3Nbal0gOiAwKTsKKyAgICAgICAgICAgIGJpYXMgPSBhZGFwdChkZWx0YSwgaCArIDEsIChoID09IGIpKTsKKyAgICAgICAgICAgIGRlbHRhID0gMDsKKyAgICAgICAgICAgICsraDsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICArK2RlbHRhOworICAgICAgICArK247CisgICAgICB9CisKKyAgICAgIG91dHB1dF9sZW5ndGhbMF0gPSBvdXQ7CisgICAgICByZXR1cm4gcHVueWNvZGVfc3VjY2VzczsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmdCdWZmZXIgZW5jb2RlKFN0cmluZ0J1ZmZlciBpbnB1dCxjaGFyW10gY2FzZV9mbGFncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICBpbnRbXSBpbiA9IG5ldyBpbnRbaW5wdXQubGVuZ3RoKCldOworICAgICAgICBpbnQgaW5MZW4gPSAwOworICAgICAgICBpbnQgY2g7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKGlucHV0KTsKKyAgICAgICAgd2hpbGUoKGNoPWl0ZXIubmV4dENvZGVQb2ludCgpKSE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsKKyAgICAgICAgICAgIGluW2luTGVuKytdPWNoOworICAgICAgICB9CisKKyAgICAgICAgaW50W10gb3V0TGVuID0gIG5ldyBpbnRbMV07CisgICAgICAgIG91dExlblswXSA9IGlucHV0Lmxlbmd0aCgpKjQ7CisgICAgICAgIGNoYXJbXSBvdXRwdXQgPSBuZXcgY2hhcltvdXRMZW5bMF1dOworICAgICAgICBpbnQgcmMgPSBwdW55Y29kZV9zdWNjZXNzOworICAgICAgICBmb3IoOzspeworICAgICAgICAgICAgcmMgPSBlbmNvZGUoaW5MZW4saW4sY2FzZV9mbGFncywgb3V0TGVuLCBvdXRwdXQpOworICAgICAgICAgICAgaWYocmM9PXB1bnljb2RlX2JpZ19vdXRwdXQpeworICAgICAgICAgICAgICAgIG91dExlblswXSA9IG91dExlblswXSo0OworICAgICAgICAgICAgICAgIG91dHB1dCA9IG5ldyBjaGFyW291dExlblswXV07CisgICAgICAgICAgICAgICAgLy8gY29udGludWUgdG8gY29udmVydAorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYocmM9PXB1bnljb2RlX3N1Y2Nlc3MpeworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQob3V0cHV0LDAsb3V0TGVuWzBdKTsKKyAgICAgICAgfQorICAgICAgICBnZXRFeGNlcHRpb24ocmMpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZ2V0RXhjZXB0aW9uKGludCByYykgCisgICAgICAgICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgIHN3aXRjaChyYyl7CisgICAgICAgICAgICAgY2FzZSBwdW55Y29kZV9iaWdfb3V0cHV0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBvdXRwdXQgY2FwYWNpdHkgd2FzIG5vdCBzdWZmaWNpZW50LiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLkJVRkZFUl9PVkVSRkxPV19FUlJPUik7CisgICAgICAgICAgICAgY2FzZSBwdW55Y29kZV9iYWRfaW5wdXQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyIGZvdW5kIGluIHRoZSBpbnB1dCIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklMTEVHQUxfQ0hBUl9GT1VORCk7CisgICAgICAgICAgICAgY2FzZSBwdW55Y29kZV9vdmVyZmxvdzoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJJbnZhbGlkIGNoYXIgZm91bmQgaW4gdGhlIGlucHV0IixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uSU5WQUxJRF9DSEFSX0ZPVU5EKTsgICAKKyAgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfQlVGRkVSX1NJWkUgPSAxMDA7CisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmdCdWZmZXIgZGVjb2RlKFN0cmluZ0J1ZmZlciBpbnB1dCxjaGFyW10gY2FzZV9mbGFncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICBjaGFyW10gaW4gPSBpbnB1dC50b1N0cmluZygpLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGludFtdIG91dExlbiA9IG5ldyBpbnRbMV07CisgICAgICAgIG91dExlblswXSA9IE1BWF9CVUZGRVJfU0laRTsKKyAgICAgICAgaW50W10gb3V0cHV0ID0gbmV3IGludFtvdXRMZW5bMF1dOworICAgICAgICBpbnQgcmMgPSBwdW55Y29kZV9zdWNjZXNzOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IoOzspeworICAgICAgICAgICAgcmMgPSBkZWNvZGUoaW5wdXQubGVuZ3RoKCksaW4sIG91dExlbiwgb3V0cHV0LGNhc2VfZmxhZ3MpOworICAgICAgICAgICAgaWYocmM9PXB1bnljb2RlX2JpZ19vdXRwdXQpeworICAgICAgICAgICAgICAgIG91dExlblswXSA9IG91dHB1dC5sZW5ndGggKiA0OworICAgICAgICAgICAgICAgIG91dHB1dCA9IG5ldyBpbnRbb3V0TGVuWzBdXTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmKHJjPT1wdW55Y29kZV9zdWNjZXNzKXsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpIDwgb3V0TGVuWzBdOyBpKysgKXsKKyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQocmVzdWx0LG91dHB1dFtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZ2V0RXhjZXB0aW9uKHJjKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioqIE1haW4gZGVjb2RlIGZ1bmN0aW9uICoqKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBkZWNvZGUoaW50IGlucHV0X2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvdXRwdXRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBjYXNlX2ZsYWdzICl7CisgICAgICBpbnQgbiwgb3V0LCBpLCBtYXhfb3V0LCBiaWFzLAorICAgICAgICAgICAgICAgICAgICAgYiwgaiwgaW4sIG9sZGksIHcsIGssIGRpZ2l0LCB0OworCisgICAgICAvKiBJbml0aWFsaXplIHRoZSBzdGF0ZTogKi8KKworICAgICAgbiA9IGluaXRpYWxfbjsKKyAgICAgIG91dCA9IGkgPSAwOworICAgICAgbWF4X291dCA9IG91dHB1dF9sZW5ndGhbMF07CisgICAgICBiaWFzID0gaW5pdGlhbF9iaWFzOworCisgICAgICAvKiBIYW5kbGUgdGhlIGJhc2ljIGNvZGUgcG9pbnRzOiAgTGV0IGIgYmUgdGhlIG51bWJlciBvZiBpbnB1dCBjb2RlICovCisgICAgICAvKiBwb2ludHMgYmVmb3JlIHRoZSBsYXN0IGRlbGltaXRlciwgb3IgMCBpZiB0aGVyZSBpcyBub25lLCB0aGVuICAgICovCisgICAgICAvKiBjb3B5IHRoZSBmaXJzdCBiIGNvZGUgcG9pbnRzIHRvIHRoZSBvdXRwdXQuICAgICAgICAgICAgICAgICAgICAgICovCisKKyAgICAgIGZvciAoYiA9IGogPSAwOyAgaiA8IGlucHV0X2xlbmd0aDsgICsrail7CisgICAgICAgICAgIGlmIChkZWxpbShpbnB1dFtqXSk9PXRydWUpeworICAgICAgICAgICAgICAgIGIgPSBqOworICAgICAgICAgICB9CisgICAgICB9CisgICAgICBpZiAoYiA+IG1heF9vdXQpIHJldHVybiBwdW55Y29kZV9iaWdfb3V0cHV0OworCisgICAgICBmb3IgKGogPSAwOyAgaiA8IGI7ICArK2opIHsKKyAgICAgICAgaWYgKGNhc2VfZmxhZ3MgIT0gbnVsbCkgY2FzZV9mbGFnc1tvdXRdID0gKGNoYXIpKGZsYWdnZWQoaW5wdXRbal0pID8gMSA6IDApOworICAgICAgICBpZiAoIWJhc2ljKGlucHV0W2pdKSkgcmV0dXJuIHB1bnljb2RlX2JhZF9pbnB1dDsKKyAgICAgICAgb3V0cHV0W291dCsrXSA9IGlucHV0W2pdOworICAgICAgfQorCisgICAgICAvKiBNYWluIGRlY29kaW5nIGxvb3A6ICBTdGFydCBqdXN0IGFmdGVyIHRoZSBsYXN0IGRlbGltaXRlciBpZiBhbnkgICovCisgICAgICAvKiBiYXNpYyBjb2RlIHBvaW50cyB3ZXJlIGNvcGllZDsgc3RhcnQgYXQgdGhlIGJlZ2lubmluZyBvdGhlcndpc2UuICovCisKKyAgICAgIGZvciAoaW4gPSBiID4gMCA/IGIgKyAxIDogMDsgIGluIDwgaW5wdXRfbGVuZ3RoOyAgKytvdXQpIHsKKworICAgICAgICAvKiBpbiBpcyB0aGUgaW5kZXggb2YgdGhlIG5leHQgY2hhcmFjdGVyIHRvIGJlIGNvbnN1bWVkLCBhbmQgKi8KKyAgICAgICAgLyogb3V0IGlzIHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgaW4gdGhlIG91dHB1dCBhcnJheS4gICAgICovCisKKyAgICAgICAgLyogRGVjb2RlIGEgZ2VuZXJhbGl6ZWQgdmFyaWFibGUtbGVuZ3RoIGludGVnZXIgaW50byBkZWx0YSwgICovCisgICAgICAgIC8qIHdoaWNoIGdldHMgYWRkZWQgdG8gaS4gIFRoZSBvdmVyZmxvdyBjaGVja2luZyBpcyBlYXNpZXIgICAqLworICAgICAgICAvKiBpZiB3ZSBpbmNyZWFzZSBpIGFzIHdlIGdvLCB0aGVuIHN1YnRyYWN0IG9mZiBpdHMgc3RhcnRpbmcgKi8KKyAgICAgICAgLyogdmFsdWUgYXQgdGhlIGVuZCB0byBvYnRhaW4gZGVsdGEuICAgICAgICAgICAgICAgICAgICAgICAgICovCisKKyAgICAgICAgZm9yIChvbGRpID0gaSwgdyA9IDEsIGsgPSBiYXNlOyAgOyAgayArPSBiYXNlKSB7CisgICAgICAgICAgaWYgKGluID49IGlucHV0X2xlbmd0aCkgcmV0dXJuIHB1bnljb2RlX2JhZF9pbnB1dDsKKyAgICAgICAgICBkaWdpdCA9IGRlY29kZV9kaWdpdChpbnB1dFtpbisrXSk7CisgICAgICAgICAgaWYgKGRpZ2l0ID49IGJhc2UpIHJldHVybiBwdW55Y29kZV9iYWRfaW5wdXQ7CisgICAgICAgICAgaWYgKGRpZ2l0ID4gKG1heGludCAtIGkpIC8gdykgcmV0dXJuIHB1bnljb2RlX292ZXJmbG93OworICAgICAgICAgIGkgKz0gZGlnaXQgKiB3OworICAgICAgICAgIHQgPSAoayA8PSBiaWFzKSAvKiArIHRtaW4gKi8gPyB0bWluIDogICAgIC8qICt0bWluIG5vdCBuZWVkZWQgKi8KKyAgICAgICAgICAgICAgKGsgPj0gKGJpYXMgKyB0bWF4KSkgPyB0bWF4IDogayAtIGJpYXM7CisgICAgICAgICAgaWYgKGRpZ2l0IDwgdCkgYnJlYWs7CisgICAgICAgICAgaWYgKHcgPiBtYXhpbnQgLyAoYmFzZSAtIHQpKSByZXR1cm4gcHVueWNvZGVfb3ZlcmZsb3c7CisgICAgICAgICAgdyAqPSAoYmFzZSAtIHQpOworICAgICAgICB9CisKKyAgICAgICAgYmlhcyA9IGFkYXB0KGkgLSBvbGRpLCBvdXQgKyAxLCAob2xkaSA9PSAwKSk7CisKKyAgICAgICAgLyogaSB3YXMgc3VwcG9zZWQgdG8gd3JhcCBhcm91bmQgZnJvbSBvdXQrMSB0byAwLCAgICovCisgICAgICAgIC8qIGluY3JlbWVudGluZyBuIGVhY2ggdGltZSwgc28gd2UnbGwgZml4IHRoYXQgbm93OiAqLworCisgICAgICAgIGlmIChpIC8gKG91dCArIDEpID4gbWF4aW50IC0gbikgcmV0dXJuIHB1bnljb2RlX292ZXJmbG93OworICAgICAgICBuICs9IGkgLyAob3V0ICsgMSk7CisgICAgICAgIGkgJT0gKG91dCArIDEpOworCisgICAgICAgIC8qIEluc2VydCBuIGF0IHBvc2l0aW9uIGkgb2YgdGhlIG91dHB1dDogKi8KKworICAgICAgICAvKiBub3QgbmVlZGVkIGZvciBQdW55Y29kZTogKi8KKyAgICAgICAgLyogaWYgKGRlY29kZV9kaWdpdChuKSA8PSBiYXNlKSByZXR1cm4gcHVueWNvZGVfaW52YWxpZF9pbnB1dDsgKi8KKyAgICAgICAgaWYgKG91dCA+PSBtYXhfb3V0KSByZXR1cm4gcHVueWNvZGVfYmlnX291dHB1dDsKKworICAgICAgICBpZiAoY2FzZV9mbGFncyAhPSBudWxsKSB7CisgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShjYXNlX2ZsYWdzLCBpLCBjYXNlX2ZsYWdzLCAgaSArIDEsIG91dCAtIGkpOworICAgICAgICAgIC8qIENhc2Ugb2YgbGFzdCBjaGFyYWN0ZXIgZGV0ZXJtaW5lcyB1cHBlcmNhc2UgZmxhZzogKi8KKyAgICAgICAgICBjYXNlX2ZsYWdzW2ldID0gKGNoYXIpKGZsYWdnZWQoaW5wdXRbaW4gLSAxXSkgPyAwIDoxKTsKKyAgICAgICAgfQorCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkob3V0cHV0LCBpLCBvdXRwdXQsIGkgKyAxLCAgKG91dCAtIGkpKTsKKyAgICAgICAgb3V0cHV0W2krK10gPSBuOworICAgICAgfQorCisgICAgICBvdXRwdXRfbGVuZ3RoWzBdID0gb3V0OworICAgICAgcmV0dXJuIHB1bnljb2RlX3N1Y2Nlc3M7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2M3Y2QyMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDM4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogQGF1dGhvciByYW0KKyAqCisgKiBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPkNvZGUgR2VuZXJhdGlvbj5Db2RlIGFuZCBDb21tZW50cworICovCitwdWJsaWMgY2xhc3MgVGVzdEFsbCBleHRlbmRzIFRlc3RHcm91cCB7CisgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RBbGwoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBbGwoKSB7CisgICAgICAgIHN1cGVyKAorICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICAgIlRlc3RJRE5BIiwgCisgICAgICAgICAgICAgICAgICAgICAgIlRlc3RTdHJpbmdQcmVwIiwKKyAgICAgICAgICAgICAgICAgICAgICAiVGVzdElETkFSZWYiLAorICAgICAgICAgICAgICAgICAgICAgICJJRE5BQ29uZm9ybWFuY2VUZXN0IiwKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAiU3RyaW5nUHJlcCBhbmQgSUROQSB0ZXN0IgorICAgICAgICAgICAgICApOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENMQVNTX1RBUkdFVF9OQU1FID0gIlN0cmluZ1ByZXAiOworICAgCisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3REYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0RGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyZDFlZjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0RGF0YS5qYXZhCkBAIC0wLDAgKzEsNjMzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LklETkE7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb247CisKKy8qKgorICogQGF1dGhvciByYW0KKyAqCisgKiBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPkNvZGUgR2VuZXJhdGlvbj5Db2RlIGFuZCBDb21tZW50cworICovCitwdWJsaWMgY2xhc3MgVGVzdERhdGEgeworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhcltdW10gdW5pY29kZUluID17CisgICAgICAgIHsgCisgICAgICAgICAgICAweDA2NDQsIDB4MDY0QSwgMHgwNjQ3LCAweDA2NDUsIDB4MDYyNywgMHgwNjI4LCAweDA2MkEsIDB4MDY0MywgMHgwNjQ0LAorICAgICAgICAgICAgMHgwNjQ1LCAweDA2NDgsIDB4MDYzNCwgMHgwNjM5LCAweDA2MzEsIDB4MDYyOCwgMHgwNjRBLCAweDA2MUYKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgMHg0RUQ2LCAweDRFRUMsIDB4NEUzQSwgMHg0RUMwLCAweDRFNDgsIDB4NEUwRCwgMHg4QkY0LCAweDRFMkQsIDB4NjU4NywgCisgICAgICAgICAgIAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDAwNTAsIDB4MDA3MiwgMHgwMDZGLCAweDAxMEQsIDB4MDA3MCwgMHgwMDcyLCAweDAwNkYsIDB4MDA3MywgMHgwMDc0LAorICAgICAgICAgICAgMHgwMTFCLCAweDAwNkUsIDB4MDA2NSwgMHgwMDZELCAweDAwNkMsIDB4MDA3NSwgMHgwMDc2LCAweDAwRUQsIDB4MDEwRCwKKyAgICAgICAgICAgIDB4MDA2NSwgMHgwMDczLCAweDAwNkIsIDB4MDA3OSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgMHgwNURDLCAweDA1REUsIDB4MDVENCwgMHgwNUQ0LCAweDA1REQsIDB4MDVFNCwgMHgwNUU5LCAweDA1RDUsIDB4MDVEOCwKKyAgICAgICAgICAgIDB4MDVEQywgMHgwNUQwLCAweDA1REUsIDB4MDVEMywgMHgwNUQxLCAweDA1RTgsIDB4MDVEOSwgMHgwNURELCAweDA1RTIsCisgICAgICAgICAgICAweDA1RDEsIDB4MDVFOCwgMHgwNUQ5LCAweDA1RUEsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MDkyRiwgMHgwOTM5LCAweDA5MzIsIDB4MDk0QiwgMHgwOTE3LCAweDA5MzksIDB4MDkzRiwgMHgwOTI4LCAweDA5NEQsCisgICAgICAgICAgICAweDA5MjYsIDB4MDk0MCwgMHgwOTE1LCAweDA5NEQsIDB4MDkyRiwgMHgwOTRCLCAweDA5MDIsIDB4MDkyOCwgMHgwOTM5LAorICAgICAgICAgICAgMHgwOTQwLCAweDA5MDIsIDB4MDkyQywgMHgwOTRCLCAweDA5MzIsIDB4MDkzOCwgMHgwOTE1LCAweDA5MjQsIDB4MDk0NywKKyAgICAgICAgICAgIDB4MDkzOSwgMHgwOTQ4LCAweDA5MDIsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MzA2QSwgMHgzMDVDLCAweDMwN0YsIDB4MzA5MywgMHgzMDZBLCAweDY1RTUsIDB4NjcyQywgMHg4QTlFLCAweDMwOTIsCisgICAgICAgICAgICAweDhBNzEsIDB4MzA1NywgMHgzMDY2LCAweDMwNEYsIDB4MzA4QywgMHgzMDZBLCAweDMwNDQsIDB4MzA2RSwgMHgzMDRCLAorICAgICAgICAgICAKKyAgICAgICAgfSwKKyAgICAvKiAgCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4QzEzOCwgMHhBQ0M0LCAweEM3NTgsIDB4QkFBOCwgMHhCNEUwLCAweEMwQUMsIDB4Qjc4QywgMHhCNEU0LCAweEM3NzQsCisgICAgICAgICAgICAweEQ1NUMsIDB4QUQ2RCwgMHhDNUI0LCAweEI5N0MsIDB4Qzc3NCwgMHhENTc0LCAweEQ1NUMsIDB4QjJFNCwgMHhCQTc0LAorICAgICAgICAgICAgMHhDNUJDLCAweEI5QzgsIDB4QjA5OCwgMHhDODhCLCAweEM3NDQsIDB4QUU0QywKKyAgICAgICAgfSwKKyAgICAqLworICAgICAgICB7ICAgCisgICAgICAgICAgICAweDA0M0YsIDB4MDQzRSwgMHgwNDQ3LCAweDA0MzUsIDB4MDQzQywgMHgwNDQzLCAweDA0MzYsIDB4MDQzNSwgMHgwNDNFLAorICAgICAgICAgICAgMHgwNDNELCAweDA0MzgsIDB4MDQzRCwgMHgwNDM1LCAweDA0MzMsIDB4MDQzRSwgMHgwNDMyLCAweDA0M0UsIDB4MDQ0MCwKKyAgICAgICAgICAgIDB4MDQ0RiwgMHgwNDQyLCAweDA0M0YsIDB4MDQzRSwgMHgwNDQwLCAweDA0NDMsIDB4MDQ0MSwgMHgwNDQxLCAweDA0M0EsCisgICAgICAgICAgICAweDA0MzgsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MDA1MCwgMHgwMDZGLCAweDAwNzIsIDB4MDA3MSwgMHgwMDc1LCAweDAwRTksIDB4MDA2RSwgMHgwMDZGLCAweDAwNzAsCisgICAgICAgICAgICAweDAwNzUsIDB4MDA2NSwgMHgwMDY0LCAweDAwNjUsIDB4MDA2RSwgMHgwMDczLCAweDAwNjksIDB4MDA2RCwgMHgwMDcwLAorICAgICAgICAgICAgMHgwMDZDLCAweDAwNjUsIDB4MDA2RCwgMHgwMDY1LCAweDAwNkUsIDB4MDA3NCwgMHgwMDY1LCAweDAwNjgsIDB4MDA2MSwKKyAgICAgICAgICAgIDB4MDA2MiwgMHgwMDZDLCAweDAwNjEsIDB4MDA3MiwgMHgwMDY1LCAweDAwNkUsIDB4MDA0NSwgMHgwMDczLCAweDAwNzAsCisgICAgICAgICAgICAweDAwNjEsIDB4MDBGMSwgMHgwMDZGLCAweDAwNkMsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4NEVENiwgMHg1MDExLCAweDcyMzIsIDB4NEVDMCwgMHg5RUJELCAweDRFMEQsIDB4OEFBQSwgMHg0RTJELCAweDY1ODcsCisgICAgICAgICAgIAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDAwNTQsIDB4MUVBMSwgMHgwMDY5LCAweDAwNzMsIDB4MDA2MSwgMHgwMDZGLCAweDAwNjgsIDB4MUVDRCwgMHgwMDZCLAorICAgICAgICAgICAgMHgwMDY4LCAweDAwRjQsIDB4MDA2RSwgMHgwMDY3LCAweDAwNzQsIDB4MDA2OCwgMHgxRUMzLCAweDAwNjMsIDB4MDA2OCwKKyAgICAgICAgICAgIDB4MUVDOSwgMHgwMDZFLCAweDAwRjMsIDB4MDA2OSwgMHgwMDc0LCAweDAwNjksIDB4MUVCRiwgMHgwMDZFLCAweDAwNjcsCisgICAgICAgICAgICAweDAwNTYsIDB4MDA2OSwgMHgxRUM3LCAweDAwNzQsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MDAzMywgMHg1RTc0LCAweDAwNDIsIDB4N0Q0NCwgMHg5MUQxLCAweDUxNkIsIDB4NTE0OCwgMHg3NTFGLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDVCODksIDB4NUJBNCwgMHg1OTQ4LCAweDdGOEUsIDB4NjA3NSwgMHgwMDJELCAweDAwNzcsIDB4MDA2OSwgMHgwMDc0LAorICAgICAgICAgICAgMHgwMDY4LCAweDAwMkQsIDB4MDA1MywgMHgwMDU1LCAweDAwNTAsIDB4MDA0NSwgMHgwMDUyLCAweDAwMkQsIDB4MDA0RCwKKyAgICAgICAgICAgIDB4MDA0RiwgMHgwMDRFLCAweDAwNEIsIDB4MDA0NSwgMHgwMDU5LCAweDAwNTMsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MDA0OCwgMHgwMDY1LCAweDAwNkMsIDB4MDA2QywgMHgwMDZGLCAweDAwMkQsIDB4MDA0MSwgMHgwMDZFLCAweDAwNkYsCisgICAgICAgICAgICAweDAwNzQsIDB4MDA2OCwgMHgwMDY1LCAweDAwNzIsIDB4MDAyRCwgMHgwMDU3LCAweDAwNjEsIDB4MDA3OSwgMHgwMDJELAorICAgICAgICAgICAgMHgzMDVELCAweDMwOEMsIDB4MzA1RSwgMHgzMDhDLCAweDMwNkUsIDB4NTgzNCwgMHg2MjQwLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweDMwNzIsIDB4MzA2OCwgMHgzMDY0LCAweDVDNEIsIDB4NjgzOSwgMHgzMDZFLCAweDRFMEIsIDB4MDAzMiwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgMHgwMDRELCAweDAwNjEsIDB4MDA2QSwgMHgwMDY5LCAweDMwNjcsIDB4MDA0QiwgMHgwMDZGLCAweDAwNjksIDB4MzA1OSwKKyAgICAgICAgICAgIDB4MzA4QiwgMHgwMDM1LCAweDc5RDIsIDB4NTI0RCwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgMHgzMEQxLCAweDMwRDUsIDB4MzBBMywgMHgzMEZDLCAweDAwNjQsIDB4MDA2NSwgMHgzMEVCLCAweDMwRjMsIDB4MzBEMCwKKyAgICAgICAgICAgCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MzA1RCwgMHgzMDZFLCAweDMwQjksIDB4MzBENCwgMHgzMEZDLCAweDMwQzksIDB4MzA2NywKKyAgICAgICAgfSwKKyAgICAgICAgLy8gdGVzdCBub24tQk1QIGNvZGUgcG9pbnRzCisgICAgICAgIHsgICAgCisgICAgICAgICAgICAweEQ4MDAsIDB4REYwMCwgMHhEODAwLCAweERGMDEsIDB4RDgwMCwgMHhERjAyLCAweEQ4MDAsIDB4REYwMywgMHhEODAwLCAweERGMDUsCisgICAgICAgICAgICAweEQ4MDAsIDB4REYwNiwgMHhEODAwLCAweERGMDcsIDB4RDgwMCwgMHhERjA5LCAweEQ4MDAsIDB4REYwQSwgMHhEODAwLCAweERGMEIsCisgICAgICAgICAgIAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAweEQ4MDAsIDB4REYwRCwgMHhEODAwLCAweERGMEMsIDB4RDgwMCwgMHhERjFFLCAweEQ4MDAsIDB4REYwRiwgMHhEODAwLCAweERGMTYsCisgICAgICAgICAgICAweEQ4MDAsIDB4REYxNSwgMHhEODAwLCAweERGMTQsIDB4RDgwMCwgMHhERjEyLCAweEQ4MDAsIDB4REYxMCwgMHhEODAwLCAweERGMjAsCisgICAgICAgICAgICAweEQ4MDAsIDB4REYyMSwKKyAgICAgICAgICAgCisgICAgICAgIH0sCisgICAgICAgIC8vIEdyZWVrCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MDNiNSwgMHgwM2JiLCAweDAzYmIsIDB4MDNiNywgMHgwM2JkLCAweDAzYjksIDB4MDNiYSwgMHgwM2FjCisgICAgICAgIH0sCisgICAgICAgIC8vIE1hbHRlc2UKKyAgICAgICAgeworICAgICAgICAgICAgMHgwMDYyLCAweDAwNmYsIDB4MDA2ZSwgMHgwMTIxLCAweDAwNzUsIDB4MDA3MywgMHgwMDYxLCAweDAxMjcsCisgICAgICAgICAgICAweDAxMjcsIDB4MDA2MQorICAgICAgICB9LAorICAgICAgICAvLyBSdXNzaWFuCisgICAgICAgIHsKKyAgICAgICAgICAgIDB4MDQzZiwgMHgwNDNlLCAweDA0NDcsIDB4MDQzNSwgMHgwNDNjLCAweDA0NDMsIDB4MDQzNiwgMHgwNDM1LAorICAgICAgICAgICAgMHgwNDNlLCAweDA0M2QsIDB4MDQzOCwgMHgwNDNkLCAweDA0MzUsIDB4MDQzMywgMHgwNDNlLCAweDA0MzIsCisgICAgICAgICAgICAweDA0M2UsIDB4MDQ0MCwgMHgwNDRmLCAweDA0NDIsIDB4MDQzZiwgMHgwNDNlLCAweDA0NDAsIDB4MDQ0MywKKyAgICAgICAgICAgIDB4MDQ0MSwgMHgwNDQxLCAweDA0M2EsIDB4MDQzOAorICAgICAgICB9LAorICAgCisgICAgfTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gYXNjaWlJbiA9IHsKKyAgICAgICAgInhuLS1lZ2JwZGFqNmJ1NGJ4ZmdlaGZ2d3huIiwKKyAgICAgICAgInhuLS1paHF3Y3JiNGN2OGE4ZHFnMDU2cHFqeWUiLAorICAgICAgICAieG4tLVByb3Byb3N0bmVtbHV2ZXNreS11eWIyNGRtYTQxYSIsCisgICAgICAgICJ4bi0tNGRiY2FnZGFoeW1ieGVraGVoNmUwYTdmZWkwYiIsCisgICAgICAgICJ4bi0taTFiYWE3ZWNpOWdscmQ5YjJhZTFiajBoZmNnZzZpeWFmOG8wYTFkaWcwY2QiLAorICAgICAgICAieG4tLW44am9rNWF5NWR6YWJkNWJ5bTlmMGNtNTY4NXJyamV0cjZwZHhhIiwKKyAgICAvKiAgInhuLS05ODlhb21zdmk1ZTgzZGIxZDJhMzU1Y3YxZTB2YWsxZHdydjkzZDV4YmgxNWEwZHQzMGE1anBzZDg3OWNjbTZmZWE5OGMiLCovCisgICAgICAgICJ4bi0tYjFhYmZhYWVwZHJubmJnZWZiYURvdGN3YXRtcTJnNGwiLAorICAgICAgICAieG4tLVBvcnF1bm9wdWVkZW5zaW1wbGVtZW50ZWhhYmxhcmVuRXNwYW9sLWZtZDU2YSIsCisgICAgICAgICJ4bi0taWhxd2N0dnpjOTFmNjU5ZHJzczN4OGJvMHliIiwKKyAgICAgICAgInhuLS1UaXNhb2hraG5ndGhjaG5pdGluZ1ZpdC1ramNyODI2OHF5eGFmZDJmMWI5ZyIsCisgICAgICAgICJ4bi0tM0Itd3c0YzVlMTgwZTU3NWE2NWxzeTJiIiwKKyAgICAgICAgInhuLS0td2l0aC1TVVBFUi1NT05LRVlTLXBjNThhZzgwYThxYWkwMGc3bjluIiwKKyAgICAgICAgInhuLS1IZWxsby1Bbm90aGVyLVdheS0tZmM0cXVhMDVhdXdiMzY3NHZmcjBiIiwKKyAgICAgICAgInhuLS0yLXU5dGx6cjk3NTZidDN1YzB2IiwKKyAgICAgICAgInhuLS1NYWppS29pNS03ODNndWU2cXowNzVhem01ZSIsCisgICAgICAgICJ4bi0tZGUtamc0YXZoYnkxbm9jMGQiLAorICAgICAgICAieG4tLWQ5anVhdTQxYXdjemN6cCIsCisgICAgICAgICJYTi0tMDk3Q0NERUtHSFFKSyIsCisgICAgICAgICJYTi0tZGI4Q0JIRUpMR0g0RTBBTCIsCisgICAgICAgICJ4bi0taHhhcmdpZmRhciIsICAgICAgICAgICAgICAgICAgICAgICAvLyBHcmVlaworICAgICAgICAieG4tLWJvbnVzYWEtNWJiMWRhIiwgICAgICAgICAgICAgICAgICAgLy8gTWFsdGVzZQorICAgICAgICAieG4tLWIxYWJmYWFlcGRybm5iZ2VmYmFkb3Rjd2F0bXEyZzRsIiwgLy8gUnVzc2lhbiAoQ3lyaWxsaWMpCisgICAgICAgfTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gZG9tYWluTmFtZXMgPSB7CisgICAgICAgICJzbGlwMTI5LTM3LTExOC0xNDYubmMudXMuaWJtLm5ldCIsCisgICAgICAgICJzYXJhdG9nYS5wZS51dGV4YXMuZWR1IiwKKyAgICAgICAgImRpYWwtMTIwLTQ1Lm90cy51dGV4YXMuZWR1IiwKKyAgICAgICAgIndvby0wODUuZG9ybXMud2FsbGVyLm5ldCIsCisgICAgICAgICJoZDMwLTA0OS5oaWwuY29tcHVzZXJ2ZS5jb20iLAorICAgICAgICAicGVtMjAzLTMxLnBlLnR0dS5lZHUiLAorICAgICAgICAiNTZLLTIyNy5NYXhUTlQzLnBkcS5uZXQiLAorICAgICAgICAiZGlhbC0zNi0yLm90cy51dGV4YXMuZWR1IiwKKyAgICAgICAgInNsaXAxMjktMzctMjMtMTUyLmdhLnVzLmlibS5uZXQiLAorICAgICAgICAidHM0NWlwMTE5LmNhZHZpc2lvbi5jb20iLAorICAgICAgICAic2RuLXRzLTAwNHR4YXVzdFAwNS5kaWFsc3ByaW50Lm5ldCIsCisgICAgICAgICJiYXItdG50MXM2Ni5lcm9scy5jb20iLAorICAgICAgICAiMTAxLnN0LWxvdWlzLTE1Lm1vLmRpYWwtYWNjZXNzLmF0dC5uZXQiLAorICAgICAgICAiaDkyLTI0NS5BcmNvLkNPTSIsCisgICAgICAgICJkaWFsLTEzLTIub3RzLnV0ZXhhcy5lZHUiLAorICAgICAgICAibmV0LXJlZHluZXQyOS5kYXRhbWFya2V0cy5jb20uYXIiLAorICAgICAgICAiY2NzLXNoaXZhMjgucmVhY2NpdW4ubmV0LnZlIiwKKyAgICAgICAgIjcuaG91c3Rvbi0xMS50eC5kaWFsLWFjY2Vzcy5hdHQubmV0IiwKKyAgICAgICAgImluZ3cxMjktMzctMTIwLTI2Lm1vLnVzLmlibS5uZXQiLAorICAgICAgICAiZGlhbHVwNi5hdXN0aW50eC5jb20iLAorICAgICAgICAiZG5zMi50cGFvLmdvdi50ciIsCisgICAgICAgICJzbGlwMTI5LTM3LTExOS0xOTQubmMudXMuaWJtLm5ldCIsCisgICAgICAgICJjczcuZGlsbG9ucy5jby51ay4yMDMuMTE5LjE5My5pbi1hZGRyLmFycGEiLAorICAgICAgICAic3dwcmQxLmlubm92cGxhY2Uuc2Fza2F0b29uLnNrLmNhIiwKKyAgICAgICAgImJpa2luaS5ib2xvZ25hLm1hcmF1dC5pdCIsCisgICAgICAgICJub2RlOTEuc3VibmV0MTU5LTE5OC03OS5iYXh0ZXIuY29tIiwKKyAgICAgICAgImN1c3QxOS5tYXg1Lm5ldy15b3JrLm55Lm1zLnV1Lm5ldCIsCisgICAgICAgICJiYWxleGFuZGVyLnNsaXAuYW5kcmV3LmNtdS5lZHUiLAorICAgICAgICAicG9vbDAyOS5tYXgyLmRlbnZlci5jby5keW5pcC5hbHRlci5uZXQiLAorICAgICAgICAiY3VzdDQ5Lm1heDkubmV3LXlvcmsubnkubXMudXUubmV0IiwKKyAgICAgICAgInM2MS5hYnEtZGlhbGluMi5ob2xseWJlcnJ5LmNvbSIsCisKKyAgICB9OworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gZG9tYWluTmFtZXMxVW5pID0geworICAgICAgICAiXHUwOTE3XHUwOTI4XHUwOTQ3XHUwOTM2LnNhbmpvc2UuaWJtLmNvbSIsCisgICAgICAgICJ3d3cuXHUwMTIxLmNvbSIsCisgICAgICAgIC8vInd3dy5cdTAwRTBcdTAwQjNcdTAwQUYuY29tIiwKKyAgICAgICAgInd3dy5cdTAwQzJcdTAwQTQuY29tIiwKKyAgICAgICAgInd3dy5cdTAwQzJcdTAwQTMuY29tIiwKKyAgICAgICAgLy8gIlxcdTAwMjUiLCAvLyclJyAoMHgwMDI1KSBwcm9kdWNlcyBVX0lETkFfU1REM19BU0NJSV9SVUxFU19FUlJPUgorICAgICAgICAvLyAiXFx1MDA1Q1xcdTAwNUMiLCAvLydcJyAoMHgwMDVDKSBwcm9kdWNlcyBVX0lETkFfU1REM19BU0NJSV9SVUxFU19FUlJPUgorICAgICAgICAvLyJAIiwKKyAgICAgICAgLy8iXFx1MDAyRiIsCisgICAgICAgIC8vInd3dy5cXHUwMDIxLmNvbSIsCisgICAgICAgIC8vInd3dy5cXHUwMDI0LmNvbSIsCisgICAgICAgIC8vIlxcdTAwM2YiLAorICAgICAgICAvLyBUaGVzZSB5ZWlsZCBVX0lETkFfUFJPSElCSVRFRF9FUlJPUgorICAgICAgICAvLyJcXHUwMENGXFx1MDA4Mi5jb20iLAorICAgICAgICAvLyJcXHUwMENFXFx1MDBCMlxcdTAwQzNcXHUwMDlGc3MuY29tIiwKKyAgICAgICAgLy8iXFx1MDBFMlxcdTAwOThcXHUwMEJBLmNvbSIsCisgICAgICAgICJcdTAwQzNcdTAwQkMuY29tIgorICAgIH07CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBkb21haW5OYW1lc1RvQVNDSUlPdXQgPSB7CisgICAgICAgICJ4bi0tMzFiOGEyYndkLnNhbmpvc2UuaWJtLmNvbSIsCisgICAgICAgICJ3d3cueG4tLXZlYS5jb20iLAorICAgICAgICAvLyJ3d3cueG4tLTMgLWlpYTgwdC5jb20iLAorICAgICAgICAid3d3LnhuLS1iYmE3ai5jb20iLAorICAgICAgICAid3d3LnhuLS05YTlqLmNvbSIsCisgICAgICAgLy8gIlx1MDAyNSIsCisgICAgICAgLy8gIlx1MDA1Q1x1MDA1QyIsCisgICAgICAgLy8gIkAiLAorICAgICAgIC8vICJcdTAwMkYiLAorICAgICAgIC8vICJ3d3cuXHUwMDIxLmNvbSIsCisgICAgICAgLy8gInd3dy5cdTAwMjQuY29tIiwKKyAgICAgICAvLyAiXHUwMDNmIiwKKyAgICAgICAgInhuLS0xNC1yaWE3NDIzYS5jb20iCisgICAgICAgIAorICAgIH07CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGRvbWFpbk5hbWVzVG9Vbmljb2RlT3V0ID0geworICAgICAgICAiXHUwOTE3XHUwOTI4XHUwOTQ3XHUwOTM2LnNhbmpvc2UuaWJtLmNvbSIsCisgICAgICAgICJ3d3cuXHUwMTIxLmNvbSIsCisgICAgICAgIC8vInd3dy5cdTAwRTBcdTAwMzNcdTAwMjBcdTAzMDQuY29tIiwKKyAgICAgICAgInd3dy5cdTAwRTJcdTAwQTQuY29tIiwKKyAgICAgICAgInd3dy5cdTAwRTJcdTAwQTMuY29tIiwKKyAgICAgICAvLyAiXHUwMDI1IiwKKyAgICAgICAvLyAiXHUwMDVDXHUwMDVDIiwKKyAgICAgICAvLyAiQCIsCisgICAgICAgLy8gIlx1MDAyRiIsCisgICAgICAgLy8gInd3dy5cdTAwMjEuY29tIiwKKyAgICAgICAvLyAid3d3Llx1MDAyNC5jb20iLAorICAgICAgIC8vICJcdTAwM2YiLAorICAgICAgICAiXHUwMEUzXHUwMDMxXHUyMDQ0XHUwMDM0LmNvbSIKKyAgICAgICAgCisgICAgfTsKKworCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBFcnJvckNhc2V7CisKKyAgICAgICAgcHVibGljIGNoYXJbXSB1bmljb2RlOworICAgICAgICBwdWJsaWMgU3RyaW5nIGFzY2lpOworICAgICAgICBwdWJsaWMgRXhjZXB0aW9uIGV4cGVjdGVkOworICAgICAgICBwdWJsaWMgYm9vbGVhbiB1c2VTVEQzQVNDSUlSdWxlczsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gdGVzdFRvVW5pY29kZTsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gdGVzdExhYmVsOworICAgICAgICBFcnJvckNhc2UoY2hhcltdIHVuaUluLCBTdHJpbmcgYXNjaWlJbiwgRXhjZXB0aW9uIGV4LAorICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3RkMywgYm9vbGVhbiB0ZXN0VG9VbmksIGJvb2xlYW4gdGVzdGxhYmVsKXsKKyAgICAgICAgICAgIHVuaWNvZGUgPSB1bmlJbjsKKyAgICAgICAgICAgIGFzY2lpID0gYXNjaWlJbjsKKyAgICAgICAgICAgIGV4cGVjdGVkID0gZXg7CisgICAgICAgICAgICB1c2VTVEQzQVNDSUlSdWxlcyA9IHN0ZDM7CisgICAgICAgICAgICB0ZXN0VG9Vbmljb2RlID0gdGVzdFRvVW5pOworICAgICAgICAgICAgdGVzdExhYmVsID0gdGVzdGxhYmVsOyAKKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEVycm9yQ2FzZVtdIGVycm9yQ2FzZXMgPSB7CisgICAgICAgICAgCisgICAgICAgIAorICAgICAgICBuZXcgRXJyb3JDYXNlKCBuZXcgY2hhcltdeyAKKyAgICAgICAgICAgIDB4MDA3NywgMHgwMDc3LCAweDAwNzcsIDB4MDAyZSwgLyogd3d3LiAqLworICAgICAgICAgICAgMHhDMTM4LCAweEFDQzQsIDB4Qzc1OCwgMHhCQUE4LCAweEI0RTAsIDB4QzBBQywgMHhCNzhDLCAweEI0RTQsIDB4Qzc3NCwKKyAgICAgICAgICAgIDB4MDcwRiwvKnByb2hpYml0ZWQqLworICAgICAgICAgICAgMHhENTVDLCAweEFENkQsIDB4QzVCNCwgMHhCOTdDLCAweEM3NzQsIDB4RDU3NCwgMHhENTVDLCAweEIyRTQsIDB4QkE3NCwKKyAgICAgICAgICAgIDB4MDAyZSwgMHgwMDYzLCAweDAwNmYsIDB4MDA2ZCwgLyogY29tLiAqLworICAgICAgICAgICAKKyAgICAgICAgfSwKKyAgICAgICAgInd3dy54bi0tOG1iNTU5NWZzb2EyOG9ydWN5YTM3OGJxcmUydGN3b3AwNmM1cWJ3ODJhMXJmZm1hZTAzNjFkZWE5NmIuY29tIiwKKyAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUiksCisgICAgICAgIGZhbHNlLCB0cnVlLCB0cnVlKSwKKworICAgICAgICBuZXcgRXJyb3JDYXNlKCBuZXcgY2hhcltdeyAKKyAgICAgICAgICAgICAgICAweDAwNzcsIDB4MDA3NywgMHgwMDc3LCAweDAwMmUsIC8qIHd3dy4gKi8KKyAgICAgICAgICAgICAgICAweEMxMzgsIDB4QUNDNCwgMHhDNzU4LCAweEJBQTgsIDB4QjRFMCwgMHhDMEFDLCAweEI3OEMsIDB4QjRFNCwgMHhDNzc0LAorICAgICAgICAgICAgICAgIDB4MDIyMSwgMHgwMjM0LypVbmFzc2lnbmVkIGNvZGUgcG9pbnRzKi8sCisgICAgICAgICAgICAgICAgMHgwMDJlLCAweDAwNjMsIDB4MDA2ZiwgMHgwMDZkLCAvKiBjb20uICovCisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAid3d3LnhuLS02bGEyYno1NDhmajFndWEzOTFiZjFnYjFuNTlhYjI5YTdpYS5jb20iLAorCisgICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5VTkFTU0lHTkVEX0VSUk9SKSwKKyAgICAgICAgICAgIGZhbHNlLCB0cnVlLCB0cnVlCisgICAgICAgICksCisgICAgICAgbmV3IEVycm9yQ2FzZSggbmV3IGNoYXJbXXsgCisgICAgICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvKiB3d3cuICovCisgICAgICAgICAgICAgICAgMHhDMTM4LCAweEFDQzQsIDB4Qzc1OCwgMHhCQUE4LCAweEI0RTAsIDB4QzBBQywgMHhCNzhDLCAweEI0RTQsIDB4Qzc3NCwKKyAgICAgICAgICAgICAgICAweDA2NDQsIDB4MDY0QSwgMHgwNjQ3LC8qQXJhYmljIGNvZGUgcG9pbnRzLiBDYW5ub3QgbWl4IFJUTCB3aXRoIExUUiovCisgICAgICAgICAgICAgICAgMHhENTVDLCAweEFENkQsIDB4QzVCNCwgMHhCOTdDLCAweEM3NzQsIDB4RDU3NCwgMHhENTVDLCAweEIyRTQsIDB4QkE3NCwKKyAgICAgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8qIGNvbS4gKi8KKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJ3d3cueG4tLWdoQkdJNDg1MU9peUEzM1ZxckQ2QXo4NkM0cUY4M0N0UnY5M0Q1eEJrMTVBemZHMG5BZ0EwNTc4RGVBNzFDLmNvbSIsCisgICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5DSEVDS19CSURJX0VSUk9SKSwKKyAgICAgICAgICAgIGZhbHNlLCB0cnVlLCB0cnVlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117IAorICAgICAgICAgICAgICAgIDB4MDA3NywgMHgwMDc3LCAweDAwNzcsIDB4MDAyZSwgLyogd3d3LiAqLworICAgICAgICAgICAgICAgIC8qIGxhYmVscyBjYW5ub3QgYmVnaW4gd2l0aCBhbiBIWVBIRU4gKi8KKyAgICAgICAgICAgICAgICAweDAwMkQsIDB4QUNDNCwgMHhDNzU4LCAweEJBQTgsIDB4QjRFMCwgMHhDMEFDLCAweEI3OEMsIDB4QjRFNCwgMHhDNzc0LAorICAgICAgICAgICAgICAgIDB4MDAyRSwgCisgICAgICAgICAgICAgICAgMHhENTVDLCAweEFENkQsIDB4QzVCNCwgMHhCOTdDLCAweEM3NzQsIDB4RDU3NCwgMHhENTVDLCAweEIyRTQsIDB4QkE3NCwKKyAgICAgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8qIGNvbS4gKi8KKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgInd3dy54bi0tLS1iOTVFdzhTcUEzMTVBbzVGYnVNbG5ObWhBLmNvbSIsCisgICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SKSwKKyAgICAgICAgICAgIHRydWUsIHRydWUsIGZhbHNlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117IAorICAgICAgICAgICAgICAgIC8qIGNvcnJlY3QgQUNFLXByZWZpeCBmb2xsb3dlZCBieSB1bmljb2RlICovCisgICAgICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvKiB3d3cuICovCisgICAgICAgICAgICAgICAgMHgwMDc4LCAweDAwNmUsIDB4MDAyZCwweDAwMmQsICAvKiBBQ0UgUHJlZml4ICovCisgICAgICAgICAgICAgICAgMHgwMDJELCAweEFDQzQsIDB4Qzc1OCwgMHhCQUE4LCAweEI0RTAsIDB4QzBBQywgMHhCNzhDLCAweEI0RTQsIDB4Qzc3NCwKKyAgICAgICAgICAgICAgICAweDAwMkQsIAorICAgICAgICAgICAgICAgIDB4RDU1QywgMHhBRDZELCAweEM1QjQsIDB4Qjk3QywgMHhDNzc0LCAweEQ1NzQsIDB4RDU1QywgMHhCMkU0LCAweEJBNzQsCisgICAgICAgICAgICAgICAgMHgwMDJlLCAweDAwNjMsIDB4MDA2ZiwgMHgwMDZkLCAvKiBjb20uICovCisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIC8qIHdyb25nIEFDRS1wcmVmaXggZm9sbG93ZWQgYnkgdmFsaWQgQUNFLWVuY29kZWQgQVNDSUkgKi8gCisgICAgICAgICAgICAid3d3LlhZLS0tLS1iOTFJMFY2NVM5NkMyQTM1NUN3MUU1eUNlUXIxOUNzblAxbUZmbUFFMDM2MURlQTk2Qi5jb20iLAorICAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQUNFX1BSRUZJWF9FUlJPUiksCisgICAgICAgICAgICBmYWxzZSwgZmFsc2UsIGZhbHNlCisgICAgICAgICksCisgICAgICAgIC8qIGNhbm5vdCB2ZXJpZnkgVV9JRE5BX1ZFUklGSUNBVElPTl9FUlJPUiAqLworCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117CisgICAgICAgICAgICAweDAwNzcsIDB4MDA3NywgMHgwMDc3LCAweDAwMmUsIC8qIHd3dy4gKi8KKyAgICAgICAgICAgIDB4QzEzOCwgMHhBQ0M0LCAweEM3NTgsIDB4QkFBOCwgMHhCNEUwLCAweEMwQUMsIDB4Qjc4QywgMHhCNEU0LCAweEM3NzQsCisgICAgICAgICAgICAweEQ1NUMsIDB4QUQ2RCwgMHhDNUI0LCAweEI5N0MsIDB4Qzc3NCwgMHhENTc0LCAweEQ1NUMsIDB4QjJFNCwgMHhCQTc0LAorICAgICAgICAgICAgMHhDNUJDLCAweEI5QzgsIDB4QjA5OCwgMHhDODhCLCAweEM3NDQsIDB4QUU0QywgCisgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8qIGNvbS4gKi8KKyAgICAgICAgICAgCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3LnhuLS05ODlBb01zVmk1RTgzRGIxRDJBMzU1Q3YxRTB2QWsxRHdSdjkzRDV4QmgxNUEwRHQzMEE1SnBTRDg3OUNjbTZGZUE5OEMuY29tIiwKKyAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5MQUJFTF9UT09fTE9OR19FUlJPUiksCisgICAgICAgICAgZmFsc2UsIHRydWUsIHRydWUKKyAgICAgICAgKSwgIAorICAgICAgICBuZXcgRXJyb3JDYXNlKCBuZXcgY2hhcltdeworICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvKiB3d3cuICovCisgICAgICAgICAgICAweDAwMzAsIDB4MDY0NCwgMHgwNjRBLCAweDA2NDcsIDB4MDAzMSwgLyogQXJhYmljIGNvZGUgcG9pbnRzIHNxdWFzaGVkIGJldHdlZW4gRU4gY29kZXBvaW50cyAqLworICAgICAgICAgICAgMHgwMDJlLCAweDAwNjMsIDB4MDA2ZiwgMHgwMDZkLCAvKiBjb20uICovCisgICAgICAgICAgIAorICAgICAgICAgIH0sCisgICAgICAgICAgInd3dy54bi0tMDEtdHZkbW8uY29tIiwKKyAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5DSEVDS19CSURJX0VSUk9SKSwKKyAgICAgICAgICBmYWxzZSwgdHJ1ZSwgdHJ1ZQorICAgICAgICApLCAgCisgICAgCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117CisgICAgICAgICAgICAweDAwNzcsIDB4MDA3NywgMHgwMDc3LCAweDAwMmUsIC8vIHd3dy4gCisgICAgICAgICAgICAweDIwNkMsIDB4MDY0NCwgMHgwNjRBLCAweDA2NDcsIDB4MjA2RCwgLy8gQXJhYmljIGNvZGUgcG9pbnRzIHNxdWFzaGVkIGJldHdlZW4gQk4gY29kZXBvaW50cyAKKyAgICAgICAgICAgIDB4MDAyZSwgMHgwMDYzLCAweDAwNmYsIDB4MDA2ZCwgLy8gY29tLiAKKyAgICAgICAgICAgCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3LlhOLS1naGJnaTI3OHhpYS5jb20iLAorICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlBST0hJQklURURfRVJST1IpLAorICAgICAgICAgIGZhbHNlLCB0cnVlLCB0cnVlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW10geworICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvLyB3d3cuIAorICAgICAgICAgICAgMHgwMDJELCAweDAwNDEsIDB4MDA0MiwgMHgwMDQzLCAweDAwNDQsIDB4MDA0NSwgLy8gSFlQSEVOIGF0IHRoZSBzdGFydCBvZiBsYWJlbCAKKyAgICAgICAgICAgIDB4MDAyZSwgMHgwMDYzLCAweDAwNmYsIDB4MDA2ZCwgLy8gY29tLiAKKyAgICAgICAgICAgCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3Li1hYmNkZS5jb20iLAorICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IpLAorICAgICAgICAgIHRydWUsIHRydWUsIGZhbHNlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW10geworICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvLyB3d3cuIAorICAgICAgICAgICAgMHgwMDQxLCAweDAwNDIsIDB4MDA0MywgMHgwMDQ0LCAweDAwNDUsMHgwMDJELCAvLyBIWVBIRU4gYXQgdGhlIGVuZCBvZiB0aGUgbGFiZWwKKyAgICAgICAgICAgIDB4MDAyZSwgMHgwMDYzLCAweDAwNmYsIDB4MDA2ZCwgLy8gY29tLiAKKyAgICAgICAgICAgCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3LmFiY2RlLS5jb20iLAorICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IpLAorICAgICAgICAgIHRydWUsIHRydWUsIGZhbHNlCisgICAgICAgICksCisgICAgICAgIG5ldyBFcnJvckNhc2UoIG5ldyBjaGFyW117CisgICAgICAgICAgICAweDAwNzcsIDB4MDA3NywgMHgwMDc3LCAweDAwMmUsIC8vIHd3dy4gCisgICAgICAgICAgICAweDAwNDEsIDB4MDA0MiwgMHgwMDQzLCAweDAwNDQsIDB4MDA0NSwweDAwNDAsIC8vIENvbnRhaW5pbmcgbm9uIExESCBjb2RlIHBvaW50CisgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8vIGNvbS4gCisgICAgICAgICAgIAorICAgICAgICAgIH0sCisgICAgICAgICAgInd3dy5hYmNkZUAuY29tIiwKKyAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5TVEQzX0FTQ0lJX1JVTEVTX0VSUk9SKSwKKyAgICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZQorICAgICAgICApLAorICAgICAgICBuZXcgRXJyb3JDYXNlKCBuZXcgY2hhcltdeworICAgICAgICAgICAgMHgwMDc3LCAweDAwNzcsIDB4MDA3NywgMHgwMDJlLCAvLyB3d3cuIAorICAgICAgICAgICAgIC8vIHplcm8gbGVuZ3RoIGxhYmVsCisgICAgICAgICAgICAweDAwMmUsIDB4MDA2MywgMHgwMDZmLCAweDAwNmQsIC8vIGNvbS4gCisgICAgICAgICAgfSwKKyAgICAgICAgICAid3d3Li5jb20iLAorICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlpFUk9fTEVOR1RIX0xBQkVMKSwKKyAgICAgICAgICB0cnVlLCB0cnVlLCBmYWxzZQorICAgICAgICApLAorICAgIH07CisKKworICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIENvbmZvcm1hbmNlVGVzdENhc2V7CisgICAgICAgICBTdHJpbmcgY29tbWVudDsKKyAgICAgICAgIFN0cmluZyBpbnB1dDsKKyAgICAgICAgIFN0cmluZyBvdXRwdXQ7CisgICAgICAgICBTdHJpbmcgcHJvZmlsZTsKKyAgICAgICAgIGludCBmbGFnczsKKyAgICAgICAgIEV4Y2VwdGlvbiBleHBlY3RlZDsKKyAgICAgICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSBnZXRCeXRlcyhTdHJpbmcgaW4peworICAgICAgICAgICAgIGlmKGluPT1udWxsKXsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGJ5dGVbXSBieXRlcyA9IG5ldyBieXRlW2luLmxlbmd0aCgpXTsKKyAgICAgICAgICAgICBmb3IoaW50IGk9MDsgaSA8IGluLmxlbmd0aCgpO2krKyl7CisgICAgICAgICAgICAgICAgIGJ5dGVzW2ldID0gKGJ5dGUpaW4uY2hhckF0KGkpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICByZXR1cm4gYnl0ZXM7CisgICAgICAgICB9CisgICAgICAgICBDb25mb3JtYW5jZVRlc3RDYXNlKFN0cmluZyBjb210LCBTdHJpbmcgaW4sIFN0cmluZyBvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcHJvZiwgaW50IGZsZywgRXhjZXB0aW9uIGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgY29tbWVudCA9IGNvbXQ7CisgICAgICAgICAgICAgICAgIGJ5dGVbXSBieXRlcyA9IGdldEJ5dGVzKGluKTsKKyAgICAgICAgICAgICAgICAgaW5wdXQgPSBuZXcgU3RyaW5nKGJ5dGVzLCJVVEYtOCIpOworICAgICAgICAgICAgICAgICBieXRlcyA9IGdldEJ5dGVzKG91dCk7CisgICAgICAgICAgICAgICAgIG91dHB1dCA9IChieXRlcz09bnVsbCk/IG51bGwgOiBuZXcgU3RyaW5nKGJ5dGVzLCJVVEYtOCIpOworICAgICAgICAgICAgICAgICBwcm9maWxlID0gcHJvZjsKKyAgICAgICAgICAgICAgICAgZmxhZ3MgPSBmbGc7CisgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gZXg7CisgICAgICAgICAgICAgfWNhdGNoIChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgIH0KKyAgICAgICAKKyAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbmZvcm1hbmNlVGVzdENhc2VbXSBjb25mb3JtYW5jZVRlc3RDYXNlcyA9CisgICAgICAgeworICAKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiQ2FzZSBmb2xkaW5nIEFTQ0lJIFUrMDA0MyBVKzAwNDEgVSswMDQ2IFUrMDA0NSIsCisgICAgICAgICAgICJcdTAwNDNcdTAwNDFcdTAwNDZcdTAwNDUiLCAiXHUwMDYzXHUwMDYxXHUwMDY2XHUwMDY1IiwKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULCAKKyAgICAgICAgICAgbnVsbAorCisgICAgICAgICApLAorICAgICAgICAgbmV3IENvbmZvcm1hbmNlVGVzdENhc2UoCisgICAgICAgICAgICJDYXNlIGZvbGRpbmcgOGJpdCBVKzAwREYgKGdlcm1hbiBzaGFycCBzKSIsCisgICAgICAgICAgICJcdTAwQzNcdTAwOUYiLCAiXHUwMDczXHUwMDczIiwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwgCisgICAgICAgICAgIG51bGwKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIk5vbi1BU0NJSSBtdWx0aWJ5dGUgc3BhY2UgY2hhcmFjdGVyIFUrMTY4MCIsCisgICAgICAgICAgICJcdTAwRTFcdTAwOUFcdTAwODAiLCBudWxsLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiTm9uLUFTQ0lJIDhiaXQgY29udHJvbCBjaGFyYWN0ZXIgVSswMDg1IiwKKyAgICAgICAgICAgIlx1MDBDMlx1MDA4NSIsIG51bGwsIAorICAgICAgICAgICAiTmFtZXByZXAiLCBJRE5BLkRFRkFVTFQsCisgICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlBST0hJQklURURfRVJST1IpCisgICAgICAgICApLAorICAgICAgICAgbmV3IENvbmZvcm1hbmNlVGVzdENhc2UoCisgICAgICAgICAgICJOb24tQVNDSUkgbXVsdGlieXRlIGNvbnRyb2wgY2hhcmFjdGVyIFUrMTgwRSIsCisgICAgICAgICAgICJcdTAwRTFcdTAwQTBcdTAwOEUiLCBudWxsLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiTm9uLUFTQ0lJIGNvbnRyb2wgY2hhcmFjdGVyIFUrMUQxNzUiLAorICAgICAgICAgICAiXHUwMEYwXHUwMDlEXHUwMDg1XHUwMEI1IiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIlBsYW5lIDAgcHJpdmF0ZSB1c2UgY2hhcmFjdGVyIFUrRjEyMyIsCisgICAgICAgICAgICJcdTAwRUZcdTAwODRcdTAwQTMiLCBudWxsLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiUGxhbmUgMTUgcHJpdmF0ZSB1c2UgY2hhcmFjdGVyIFUrRjEyMzQiLAorICAgICAgICAgICAiXHUwMEYzXHUwMEIxXHUwMDg4XHUwMEI0IiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIlBsYW5lIDE2IHByaXZhdGUgdXNlIGNoYXJhY3RlciBVKzEwRjIzNCIsCisgICAgICAgICAgICJcdTAwRjRcdTAwOEZcdTAwODhcdTAwQjQiLCBudWxsLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiTm9uLWNoYXJhY3RlciBjb2RlIHBvaW50IFUrOEZGRkUiLAorICAgICAgICAgICAiXHUwMEYyXHUwMDhGXHUwMEJGXHUwMEJFIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIk5vbi1jaGFyYWN0ZXIgY29kZSBwb2ludCBVKzEwRkZGRiIsCisgICAgICAgICAgICJcdTAwRjRcdTAwOEZcdTAwQkZcdTAwQkYiLCBudWxsLAorICAgICAgICAgICAiTmFtZXByZXAiLCBJRE5BLkRFRkFVTFQsCisgICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlBST0hJQklURURfRVJST1IpCisgICAgICAgICApLAorICAgICAvKiAKKyAgICAgICAgIHsKKyAgICAgICAgICAgIlN1cnJvZ2F0ZSBjb2RlIFUrREY0MiIsCisgICAgICAgICAgICJcdTAwRURcdTAwQkRcdTAwODIiLCBudWxsLCAiTmFtZXByZXAiLCBJbnRlcm5hdGlvbmFsaXplZERvbWFpbk5hbWVzLkRFRkFVTFQsCisgICAgICAgICAgIFVfSUROQV9QUk9ISUJJVEVEX0VSUk9SCisgICAgICAgICB9LAorICAgICovCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIk5vbi1wbGFpbiB0ZXh0IGNoYXJhY3RlciBVK0ZGRkQiLAorICAgICAgICAgICAiXHUwMEVGXHUwMEJGXHUwMEJEIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIklkZW9ncmFwaGljIGRlc2NyaXB0aW9uIGNoYXJhY3RlciBVKzJGRjUiLAorICAgICAgICAgICAiXHUwMEUyXHUwMEJGXHUwMEI1IiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkRpc3BsYXkgcHJvcGVydHkgY2hhcmFjdGVyIFUrMDM0MSIsCisgICAgICAgICAgICJcdTAwQ0RcdTAwODEiLCAiXHUwMENDXHUwMDgxIiwKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULCAKKyAgICAgICAgICAgbnVsbAorCisgICAgICAgICApLAorCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkxlZnQtdG8tcmlnaHQgbWFyayBVKzIwMEUiLAorICAgICAgICAgICAiXHUwMEUyXHUwMDgwXHUwMDhFIiwgIlx1MDBDQ1x1MDA4MSIsIAorICAgICAgICAgICAiTmFtZXByZXAiLCBJRE5BLkRFRkFVTFQsCisgICAgICAgICAgIG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIiIsU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlBST0hJQklURURfRVJST1IpCisgICAgICAgICApLAorICAgICAgICAgbmV3IENvbmZvcm1hbmNlVGVzdENhc2UoCisKKyAgICAgICAgICAgIkRlcHJlY2F0ZWQgVSsyMDJBIiwKKyAgICAgICAgICAgIlx1MDBFMlx1MDA4MFx1MDBBQSIsICJcdTAwQ0NcdTAwODEiLCAKKyAgICAgICAgICAgIk5hbWVwcmVwIiwgSUROQS5ERUZBVUxULAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5QUk9ISUJJVEVEX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiTGFuZ3VhZ2UgdGFnZ2luZyBjaGFyYWN0ZXIgVStFMDAwMSIsCisgICAgICAgICAgICJcdTAwRjNcdTAwQTBcdTAwODBcdTAwODEiLCAiXHUwMENDXHUwMDgxIiwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkxhbmd1YWdlIHRhZ2dpbmcgY2hhcmFjdGVyIFUrRTAwNDIiLAorICAgICAgICAgICAiXHUwMEYzXHUwMEEwXHUwMDgxXHUwMDgyIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkJpZGk6IFJhbmRBTENhdCBjaGFyYWN0ZXIgVSswNUJFIGFuZCBMQ2F0IGNoYXJhY3RlcnMiLAorICAgICAgICAgICAiXHUwMDY2XHUwMDZGXHUwMDZGXHUwMEQ2XHUwMEJFXHUwMDYyXHUwMDYxXHUwMDcyIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQ0hFQ0tfQklESV9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkJpZGk6IFJhbmRBTENhdCBjaGFyYWN0ZXIgVStGRDUwIGFuZCBMQ2F0IGNoYXJhY3RlcnMiLAorICAgICAgICAgICAiXHUwMDY2XHUwMDZGXHUwMDZGXHUwMEVGXHUwMEI1XHUwMDkwXHUwMDYyXHUwMDYxXHUwMDcyIiwgbnVsbCwKKyAgICAgICAgICAgIk5hbWVwcmVwIixJRE5BLkRFRkFVTFQgLAorICAgICAgICAgICBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5DSEVDS19CSURJX0VSUk9SKQorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiQmlkaTogUmFuZEFMQ2F0IGNoYXJhY3RlciBVK0ZCMzggYW5kIExDYXQgY2hhcmFjdGVycyIsCisgICAgICAgICAgICJcdTAwNjZcdTAwNkZcdTAwNkZcdTAwRUZcdTAwQjlcdTAwQjZcdTAwNjJcdTAwNjFcdTAwNzIiLCAiXHUwMDY2XHUwMDZGXHUwMDZGIFx1MDBkOVx1MDA4ZVx1MDA2Mlx1MDA2MVx1MDA3MiIsCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbnVsbAorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiQmlkaTogUmFuZEFMQ2F0IHdpdGhvdXQgdHJhaWxpbmcgUmFuZEFMQ2F0IFUrMDYyNyBVKzAwMzEiLAorICAgICAgICAgICAiXHUwMEQ4XHUwMEE3XHUwMDMxIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQ0hFQ0tfQklESV9FUlJPUikKKyAgICAgICAgICksCisgICAgICAgICBuZXcgQ29uZm9ybWFuY2VUZXN0Q2FzZSgKKyAgICAgICAgICAgIkJpZGk6IFJhbmRBTENhdCBjaGFyYWN0ZXIgVSswNjI3IFUrMDAzMSBVKzA2MjgiLAorICAgICAgICAgICAiXHUwMEQ4XHUwMEE3XHUwMDMxXHUwMEQ4XHUwMEE4IiwgIlx1MDBEOFx1MDBBN1x1MDAzMVx1MDBEOFx1MDBBOCIsCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbnVsbAorICAgICAgICAgKSwKKyAgICAgICAgIG5ldyBDb25mb3JtYW5jZVRlc3RDYXNlKAorICAgICAgICAgICAiVW5hc3NpZ25lZCBjb2RlIHBvaW50IFUrRTAwMDIiLAorICAgICAgICAgICAiXHUwMEYzXHUwMEEwXHUwMDgwXHUwMDgyIiwgbnVsbCwgCisgICAgICAgICAgICJOYW1lcHJlcCIsIElETkEuREVGQVVMVCwKKyAgICAgICAgICAgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uVU5BU1NJR05FRF9FUlJPUikKKyAgICAgICAgICksCisKKyAgICAvKiAgLy8gSW52YWxpZCBVVEYtOAorICAgICAgICAgeworICAgICAgICAgICAiTGFyZ2VyIHRlc3QgKHNocmlua2luZykiLAorICAgICAgICAgICAiWFx1MDBDMlx1MDBBRFx1MDBDM1x1MDBERlx1MDBDNFx1MDBCMFx1MDBFMlx1MDA4NFx1MDBBMVx1MDA2YVx1MDBjY1x1MDA4Y1x1MDBjMlx1MDBhMFx1MDBjMiIKKyAgICAgICAgICAgIlx1MDBhYVx1MDBjZVx1MDBiMFx1MDBlMlx1MDA4MFx1MDA4MCIsICJ4c3NpXHUwMGNjXHUwMDg3IiJ0ZWxcdTAwYzdcdTAwYjAgYVx1MDBjZVx1MDBiMCAiLAorICAgICAgICAgICAiTmFtZXByZXAiLAorICAgICAgICAgICBJbnRlcm5hdGlvbmFsaXplZERvbWFpbk5hbWVzLkRFRkFVTFQsIFVfWkVST19FUlJPUgorICAgICAgICAgfSwKKyAgICAgICAgeworCisgICAgICAgICAgICJMYXJnZXIgdGVzdCAoZXhwYW5kaW5nKSIsCisgICAgICAgICAgICJYXHUwMEMzXHUwMERGXHUwMGUzXHUwMDhjXHUwMDk2XHUwMEM0XHUwMEIwXHUwMEUyXHUwMDg0XHUwMEExXHUwMEUyXHUwMDkyXHUwMDlGXHUwMEUzXHUwMDhjXHUwMDgwIiwKKyAgICAgICAgICAgInhzc1x1MDBlM1x1MDA4Mlx1MDBhZFx1MDBlM1x1MDA4M1x1MDBhZFx1MDBlM1x1MDA4M1x1MDBhMVx1MDBlM1x1MDA4M1x1MDBiY1x1MDBlM1x1MDA4M1x1MDA4OCIKKyAgICAgICAgICAgIlx1MDBlM1x1MDA4M1x1MDBhYiIiaVx1MDBjY1x1MDA4NyIidGVsXHUwMDI4IiJkXHUwMDI5XHUwMGUzXHUwMDgyXHUwMGEyXHUwMGUzXHUwMDgzXHUwMDkxIgorICAgICAgICAgICAiXHUwMGUzXHUwMDgzXHUwMGJjXHUwMGUzXHUwMDgzXHUwMDg4IgorICAgICAgICAgICAiTmFtZXByZXAiLAorICAgICAgICAgICBJbnRlcm5hdGlvbmFsaXplZERvbWFpbk5hbWVzLkRFRkFVTFQsIFVfWkVST19FUlJPUgorICAgICAgICAgfSwKKyAgICAgICovCisgICAgfTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RJRE5BLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0SUROQS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwMmMzZGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0SUROQS5qYXZhCkBAIC0wLDAgKzEsNzk1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnN0cmluZ3ByZXA7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LklETkE7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb247CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0SUROQSBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RJRE5BKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICBwcml2YXRlIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiB1bmFzc2lnbmVkRXhjZXB0aW9uID0gbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uVU5BU1NJR05FRF9FUlJPUik7CisgICAgcHVibGljIHZvaWQgVGVzdFRvVW5pY29kZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmFzY2lpSW4ubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgLy8gdGVzdCBTdHJpbmdCdWZmZXIgdG9Vbmljb2RlCisgICAgICAgICAgICBkb1Rlc3RUb1VuaWNvZGUoVGVzdERhdGEuYXNjaWlJbltpXSxuZXcgU3RyaW5nKFRlc3REYXRhLnVuaWNvZGVJbltpXSksSUROQS5ERUZBVUxULCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOworICAgICAgICAgICAgZG9UZXN0VG9Vbmljb2RlKFRlc3REYXRhLmFzY2lpSW5baV0sbmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLElETkEuVVNFX1NURDNfUlVMRVMsIG51bGwpOyAKKyAgICAgICAgICAgIGRvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BLlVTRV9TVEQzX1JVTEVTfElETkEuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7IAorICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUb0FTQ0lJKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuYXNjaWlJbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAvLyB0ZXN0IFN0cmluZ0J1ZmZlciB0b1VuaWNvZGUKKyAgICAgICAgICAgIGRvVGVzdFRvQVNDSUkobmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLFRlc3REYXRhLmFzY2lpSW5baV0sSUROQS5ERUZBVUxULCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdFRvQVNDSUkobmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLFRlc3REYXRhLmFzY2lpSW5baV0sSUROQS5BTExPV19VTkFTU0lHTkVELCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BLlVTRV9TVEQzX1JVTEVTLCBudWxsKTsgCisgICAgICAgICAgICBkb1Rlc3RUb1VuaWNvZGUoVGVzdERhdGEuYXNjaWlJbltpXSxuZXcgU3RyaW5nKFRlc3REYXRhLnVuaWNvZGVJbltpXSksSUROQS5VU0VfU1REM19SVUxFU3xJRE5BLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOyAKKyAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SUROVG9BU0NJSSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmRvbWFpbk5hbWVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5ERUZBVUxULCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5BTExPV19VTkFTU0lHTkVELCBudWxsKTsKKyAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5VU0VfU1REM19SVUxFUywgbnVsbCk7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub0FTQ0lJKFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLElETkEuQUxMT1dfVU5BU1NJR05FRHxJRE5BLlVTRV9TVEQzX1JVTEVTLCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuZG9tYWluTmFtZXMxVW5pLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXMxVW5pW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzVG9BU0NJSU91dFtpXSxJRE5BLkRFRkFVTFQsIG51bGwpOworICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lczFVbmlbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLElETkEuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdElETlRvVW5pY29kZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmRvbWFpbk5hbWVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BLkRFRkFVTFQsIG51bGwpOworICAgICAgICAgICAgZG9UZXN0SUROVG9Vbmljb2RlKFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLElETkEuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5VU0VfU1REM19SVUxFUywgbnVsbCk7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQS5BTExPV19VTkFTU0lHTkVEfElETkEuVVNFX1NURDNfUlVMRVMsIG51bGwpOworICAgICAgICB9CisgICAgICAgIGZvcihpbnQgaT0wOyBpPFRlc3REYXRhLmRvbWFpbk5hbWVzVG9BU0NJSU91dC5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzVG9Vbmljb2RlT3V0W2ldLElETkEuREVGQVVMVCwgbnVsbCk7CisgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzVG9Vbmljb2RlT3V0W2ldLElETkEuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdFRvVW5pY29kZShTdHJpbmcgc3JjLCBTdHJpbmcgZXhwZWN0ZWQsIGludCBvcHRpb25zLCBPYmplY3QgZXhwZWN0ZWRFeGNlcHRpb24pIAorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBpbkJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3JjKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGluSXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICB0cnl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BLmNvbnZlcnRUb1VuaWNvZGUoc3JjLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KGV4cGVjdGVkKSsiIEdvdDogIitwcmV0dGlmeShvdXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4LmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArIHByZXR0aWZ5KHNyYykgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQS5jb252ZXJ0VG9Vbmljb2RlKGluQnVmLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeShleHBlY3RlZCkrIiBHb3Q6ICIrb3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4LmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArIHByZXR0aWZ5KHNyYykgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BLmNvbnZlcnRUb1VuaWNvZGUoaW5JdGVyLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKworICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KGV4cGVjdGVkKSsiIEdvdDogIitwcmV0dGlmeShvdXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleC5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICsgcHJldHRpZnkoc3JjKSArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0SUROVG9Vbmljb2RlKFN0cmluZyBzcmMsIFN0cmluZyBleHBlY3RlZCwgaW50IG9wdGlvbnMsIE9iamVjdCBleHBlY3RlZEV4Y2VwdGlvbikgCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGluQnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzcmMpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaW5JdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydElETlRvVW5pY29kZShzcmMsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK3ByZXR0aWZ5KG91dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXhwZWN0ZWRFeGNlcHRpb24uZXF1YWxzKGV4KSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydElETlRvVW5pY29kZShpbkJ1ZixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleHBlY3RlZEV4Y2VwdGlvbi5lcXVhbHMoZXgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydElETlRvVW5pY29kZShpbkl0ZXIsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK3ByZXR0aWZ5KG91dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4cGVjdGVkRXhjZXB0aW9uLmVxdWFscyhleCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0VG9BU0NJSShTdHJpbmcgc3JjLCBTdHJpbmcgZXhwZWN0ZWQsIGludCBvcHRpb25zLCBPYmplY3QgZXhwZWN0ZWRFeGNlcHRpb24pIAorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBpbkJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3JjKTsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGluSXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzcmMpOworICAgICAgICB0cnl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BLmNvbnZlcnRUb0FTQ0lJKHNyYyxvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKCF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZC50b0xvd2VyQ2FzZSgpKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIGV4cGVjdGVkKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleHBlY3RlZEV4Y2VwdGlvbi5lcXVhbHMoZXgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyJcbiBHb3Q6ICAiKyBleC50b1N0cmluZygpICsiXG4gRXhwZWN0ZWQ6ICIgK2V4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnl7ICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQS5jb252ZXJ0VG9BU0NJSShpbkJ1ZixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKCF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZC50b0xvd2VyQ2FzZSgpKSl7CisgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCsiIEdvdDogIitvdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4cGVjdGVkRXhjZXB0aW9uLmVxdWFscyhleCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydFRvQVNDSUkoaW5JdGVyLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSAmJiBleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiBleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkLnRvTG93ZXJDYXNlKCkpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgZXhwZWN0ZWQrIiBHb3Q6ICIrIG91dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXhwZWN0ZWRFeGNlcHRpb24uZXF1YWxzKGV4KSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArc3JjICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3RJRE5Ub0FTQ0lJKFN0cmluZyBzcmMsIFN0cmluZyBleHBlY3RlZCwgaW50IG9wdGlvbnMsIE9iamVjdCBleHBlY3RlZEV4Y2VwdGlvbikgCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGluQnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzcmMpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaW5JdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkEuY29udmVydElETlRvQVNDSUkoc3JjLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArIAorICAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCsiIEdvdDogIitvdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0lETkFTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4LmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0cnl7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQS5jb252ZXJ0SUROVG9BU0NJSShpbkJ1ZixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArIAorICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIGV4cGVjdGVkKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleC5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvSUROQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BLmNvbnZlcnRJRE5Ub0FTQ0lJKGluSXRlcixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0SUROVG9BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgZXhwZWN0ZWQrIiBHb3Q6ICIrIG91dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0SUROVG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleC5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydElETlRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENvbmZvcm1hbmNlKCl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBmb3IoaW50IGk9MDsgaTxUZXN0RGF0YS5jb25mb3JtYW5jZVRlc3RDYXNlcy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVGVzdERhdGEuQ29uZm9ybWFuY2VUZXN0Q2FzZSB0ZXN0Q2FzZSA9IFRlc3REYXRhLmNvbmZvcm1hbmNlVGVzdENhc2VzW2ldOworICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgLy9UZXN0IHRvQVNDSUkKKyAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKHRlc3RDYXNlLmlucHV0LHRlc3RDYXNlLm91dHB1dCxJRE5BLkRFRkFVTFQsdGVzdENhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIGRvVGVzdFRvQVNDSUkodGVzdENhc2UuaW5wdXQsdGVzdENhc2Uub3V0cHV0LElETkEuQUxMT1dfVU5BU1NJR05FRCx0ZXN0Q2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL1Rlc3QgdG9Vbmljb2RlCisgICAgICAgICAgICAvL2RvVGVzdFRvVW5pY29kZSh0ZXN0Q2FzZS5pbnB1dCx0ZXN0Q2FzZS5vdXRwdXQsSUROQS5ERUZBVUxULHRlc3RDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmFtZVByZXBDb25mb3JtYW5jZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIElucHV0U3RyZWFtIHN0cmVhbSA9IElDVURhdGEuZ2V0UmVxdWlyZWRTdHJlYW0oSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSsiL3VpZG5hLnNwcCIpOworICAgICAgICBTdHJpbmdQcmVwIG5hbWVQcmVwID0gbmV3IFN0cmluZ1ByZXAoc3RyZWFtKTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuY29uZm9ybWFuY2VUZXN0Q2FzZXMubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBUZXN0RGF0YS5Db25mb3JtYW5jZVRlc3RDYXNlIHRlc3RDYXNlID0gVGVzdERhdGEuY29uZm9ybWFuY2VUZXN0Q2FzZXNbaV07CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZSh0ZXN0Q2FzZS5pbnB1dCk7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dHB1dCA9IG5hbWVQcmVwLnByZXBhcmUoaXRlcixTdHJpbmdQcmVwLkRFRkFVTFQpOworICAgICAgICAgICAgICAgIGlmKHRlc3RDYXNlLm91dHB1dCAhPW51bGwgJiYgb3V0cHV0IT1udWxsICYmICF0ZXN0Q2FzZS5vdXRwdXQuZXF1YWxzKG91dHB1dC50b1N0cmluZygpKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0LiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KHRlc3RDYXNlLm91dHB1dCkrCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgR290OiAiKyBwcmV0dGlmeShvdXRwdXQpICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKHRlc3RDYXNlLmV4cGVjdGVkIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyh0ZXN0Q2FzZS5leHBlY3RlZCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQgPT0gbnVsbCB8fCAhZXguZXF1YWxzKHRlc3RDYXNlLmV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3Rlc3RDYXNlLmlucHV0ICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIGl0ZXIuc2V0VG9TdGFydCgpOworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXRwdXQgPSBuYW1lUHJlcC5wcmVwYXJlKGl0ZXIsU3RyaW5nUHJlcC5BTExPV19VTkFTU0lHTkVEKTsKKyAgICAgICAgICAgICAgICBpZih0ZXN0Q2FzZS5vdXRwdXQgIT1udWxsICYmIG91dHB1dCE9bnVsbCAmJiAhdGVzdENhc2Uub3V0cHV0LmVxdWFscyhvdXRwdXQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dC4gRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeSh0ZXN0Q2FzZS5vdXRwdXQpKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIEdvdDogIisgcHJldHRpZnkob3V0cHV0KSApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZih0ZXN0Q2FzZS5leHBlY3RlZCE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHModGVzdENhc2UuZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGlmKHRlc3RDYXNlLmV4cGVjdGVkID09IG51bGwgfHwgIWV4LmVxdWFscyh0ZXN0Q2FzZS5leHBlY3RlZCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICt0ZXN0Q2FzZS5pbnB1dCArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RFcnJvckNhc2VzKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZm9yKGludCBpPTA7IGkgPCBUZXN0RGF0YS5lcnJvckNhc2VzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIFRlc3REYXRhLkVycm9yQ2FzZSBlcnJDYXNlID0gVGVzdERhdGEuZXJyb3JDYXNlc1tpXTsKKyAgICAgICAgICAgIGlmKGVyckNhc2UudGVzdExhYmVsPT10cnVlKXsKKyAgICAgICAgICAgICAgICAvLyBUZXN0IFRvQVNDSUkKKyAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxlcnJDYXNlLmFzY2lpLElETkEuREVGQVVMVCxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxlcnJDYXNlLmFzY2lpLElETkEuQUxMT1dfVU5BU1NJR05FRCxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICBpZihlcnJDYXNlLnVzZVNURDNBU0NJSVJ1bGVzKXsKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0VG9BU0NJSShuZXcgU3RyaW5nKGVyckNhc2UudW5pY29kZSksZXJyQ2FzZS5hc2NpaSxJRE5BLlVTRV9TVEQzX1JVTEVTLGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGVyckNhc2UudXNlU1REM0FTQ0lJUnVsZXMhPXRydWUpeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFRlc3QgSUROVG9BU0NJSQorICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkobmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLGVyckNhc2UuYXNjaWksSUROQS5ERUZBVUxULGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkobmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLGVyckNhc2UuYXNjaWksSUROQS5BTExPV19VTkFTU0lHTkVELGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShuZXcgU3RyaW5nKGVyckNhc2UudW5pY29kZSksZXJyQ2FzZS5hc2NpaSxJRE5BLlVTRV9TVEQzX1JVTEVTLGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvL1Rlc3RUb1VuaWNvZGUKKyAgICAgICAgICAgIGlmKGVyckNhc2UudGVzdFRvVW5pY29kZT09dHJ1ZSl7CisgICAgICAgICAgICAgICAgaWYoZXJyQ2FzZS51c2VTVEQzQVNDSUlSdWxlcyE9dHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgIC8vIFRlc3QgSUROVG9Vbmljb2RlCisgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShlcnJDYXNlLmFzY2lpLG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxJRE5BLkRFRkFVTFQsZXJyQ2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShlcnJDYXNlLmFzY2lpLG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxJRE5BLkFMTE9XX1VOQVNTSUdORUQsZXJyQ2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShlcnJDYXNlLmFzY2lpLG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxJRE5BLlVTRV9TVEQzX1JVTEVTLGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0Q29tcGFyZShTdHJpbmcgczEsIFN0cmluZyBzMiwgYm9vbGVhbiBpc0VxdWFsKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgaW50IHJldFZhbCA9IElETkEuY29tcGFyZShzMSxzMixJRE5BLkRFRkFVTFQpOworICAgICAgICAgICAgaWYoaXNFcXVhbD09dHJ1ZSAmJiByZXRWYWwgIT0gMCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHMxOiAiKyBwcmV0dGlmeShzMSkrIAorICAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldFZhbCA9IElETkEuY29tcGFyZShuZXcgU3RyaW5nQnVmZmVyKHMxKSwgbmV3IFN0cmluZ0J1ZmZlcihzMiksIElETkEuREVGQVVMVCk7CisgICAgICAgICAgICBpZihpc0VxdWFsPT10cnVlICYmIHJldFZhbCAhPSAwKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgczE6ICIrIHByZXR0aWZ5KHMxKSsgCisgICAgICAgICAgICAgICAgICAgICAiIHMyOiAiK3ByZXR0aWZ5KHMyKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXRWYWwgPSBJRE5BLmNvbXBhcmUoVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMxKSwgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMyKSwgSUROQS5ERUZBVUxUKTsKKyAgICAgICAgICAgIGlmKGlzRXF1YWw9PXRydWUgJiYgcmV0VmFsICE9IDApeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzMTogIisgcHJldHRpZnkoczEpKyAKKyAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICBlcnJsbigiVW5leHBlY3RlZCBleGNlcHRpb24gdGhyb3duIGJ5IElETkEuY29tcGFyZSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnl7CisgICAgICAgICAgICBpbnQgcmV0VmFsID0gSUROQS5jb21wYXJlKHMxLHMyLElETkEuQUxMT1dfVU5BU1NJR05FRCk7CisgICAgICAgICAgICBpZihpc0VxdWFsPT10cnVlICYmIHJldFZhbCAhPSAwKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgczE6ICIrIHByZXR0aWZ5KHMxKSsgCisgICAgICAgICAgICAgICAgICAgICAgIiBzMjogIitwcmV0dGlmeShzMikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0VmFsID0gSUROQS5jb21wYXJlKG5ldyBTdHJpbmdCdWZmZXIoczEpLCBuZXcgU3RyaW5nQnVmZmVyKHMyKSwgSUROQS5BTExPV19VTkFTU0lHTkVEKTsKKyAgICAgICAgICAgIGlmKGlzRXF1YWw9PXRydWUgJiYgcmV0VmFsICE9IDApeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzMTogIisgcHJldHRpZnkoczEpKyAKKyAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldFZhbCA9IElETkEuY29tcGFyZShVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoczEpLCBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoczIpLCBJRE5BLkFMTE9XX1VOQVNTSUdORUQpOworICAgICAgICAgICAgaWYoaXNFcXVhbD09dHJ1ZSAmJiByZXRWYWwgIT0gMCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHMxOiAiKyBwcmV0dGlmeShzMSkrIAorICAgICAgICAgICAgICAgICAgICAgIiBzMjogIitwcmV0dGlmeShzMikpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIHRocm93biBieSBJRE5BLmNvbXBhcmUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGFyZSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZyB3d3cgPSAid3d3LiI7CisgICAgICAgIFN0cmluZyBjb20gPSAiLmNvbSI7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkwICAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkxICAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBhc2NpaTAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBhc2NpaTEgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisKKyAgICAgICAgdW5pMC5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluWzBdKTsKKyAgICAgICAgdW5pMC5hcHBlbmQoY29tKTsKKworICAgICAgICB1bmkxLmFwcGVuZChUZXN0RGF0YS51bmljb2RlSW5bMV0pOworICAgICAgICB1bmkxLmFwcGVuZChjb20pOworCisgICAgICAgIGFzY2lpMC5hcHBlbmQoVGVzdERhdGEuYXNjaWlJblswXSk7CisgICAgICAgIGFzY2lpMC5hcHBlbmQoY29tKTsKKworICAgICAgICBhc2NpaTEuYXBwZW5kKFRlc3REYXRhLmFzY2lpSW5bMV0pOworICAgICAgICBhc2NpaTEuYXBwZW5kKGNvbSk7CisKKyAgICAgICAgZm9yKGludCBpPTA7aTwgVGVzdERhdGEudW5pY29kZUluLmxlbmd0aDsgaSsrKXsKKworICAgICAgICAgICAgLy8gZm9yIGV2ZXJ5IGVudHJ5IGluIHVuaWNvZGVJbiBhcnJheQorICAgICAgICAgICAgLy8gcHJlcGVuZCB3d3cuIGFuZCBhcHBlbmQgLmNvbQorICAgICAgICAgICAgc291cmNlLnNldExlbmd0aCg0KTsKKyAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluW2ldKTsKKyAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoY29tKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gYSkgY29tcGFyZSBpdCB3aXRoIGl0c2VsZgorICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSxzb3VyY2UudG9TdHJpbmcoKSx0cnVlKTsKKyAgICAgICAgCisgICAgICAgICAgICAvLyBiKSBjb21wYXJlIGl0IHdpdGggYXNjaWlJbiBlcXVpdmFsZW50CisgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLHd3dytUZXN0RGF0YS5hc2NpaUluW2ldK2NvbSx0cnVlKTsKKyAgICAgICAgCisgICAgICAgICAgICAvLyBjKSBjb21wYXJlIGl0IHdpdGggdW5pY29kZUluIG5vdCBlcXVpdmFsZW50CisgICAgICAgICAgICBpZihpPT0wKXsKKyAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLCB1bmkxLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksdW5pMC50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBkKSBjb21wYXJlIGl0IHdpdGggYXNjaWlJbiBub3QgZXF1aXZhbGVudAorICAgICAgICAgICAgaWYoaT09MCl7CisgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSxhc2NpaTEudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSxhc2NpaTAudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyAgdGVzdCBhbmQgYXNjZXJ0YWluCisgICAgLy8gIGZ1bmMoZnVuYyhmdW5jKHNyYykpKSA9PSBmdW5jKHNyYykKKyAgICBwdWJsaWMgdm9pZCBkb1Rlc3RDaGFpbmluZ1RvQVNDSUkoU3RyaW5nIHNvdXJjZSl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmdCdWZmZXIgZXhwZWN0ZWQ7IAorICAgICAgICBTdHJpbmdCdWZmZXIgY2hhaW5lZDsKKyAgICAgICAgCisgICAgICAgIC8vIHRlc3QgY29udmVydElETlRvQVNDSUkKKyAgICAgICAgZXhwZWN0ZWQgPSBJRE5BLmNvbnZlcnRJRE5Ub0FTQ0lJKHNvdXJjZSxJRE5BLkRFRkFVTFQpOworICAgICAgICBjaGFpbmVkID0gZXhwZWN0ZWQ7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCA0OyBpKyspeworICAgICAgICAgICAgY2hhaW5lZCA9IElETkEuY29udmVydElETlRvQVNDSUkoY2hhaW5lZCxJRE5BLkRFRkFVTFQpOworICAgICAgICB9CisgICAgICAgIGlmKCFleHBlY3RlZC50b1N0cmluZygpLmVxdWFscyhjaGFpbmVkLnRvU3RyaW5nKCkpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFpbmluZyB0ZXN0IGZhaWxlZCBmb3IgY29udmVydElETlRvQVNDSUkiKTsKKyAgICAgICAgfQorICAgICAgICAvLyB0ZXN0IGNvbnZlcnRJRE5Ub0EKKyAgICAgICAgZXhwZWN0ZWQgPSBJRE5BLmNvbnZlcnRUb0FTQ0lJKHNvdXJjZSxJRE5BLkRFRkFVTFQpOworICAgICAgICBjaGFpbmVkID0gZXhwZWN0ZWQ7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCA0OyBpKyspeworICAgICAgICAgICAgY2hhaW5lZCA9IElETkEuY29udmVydFRvQVNDSUkoY2hhaW5lZCxJRE5BLkRFRkFVTFQpOworICAgICAgICB9CisgICAgICAgIGlmKCFleHBlY3RlZC50b1N0cmluZygpLmVxdWFscyhjaGFpbmVkLnRvU3RyaW5nKCkpKXsKKyAgICAgICAgICAgIGVycmxuKCJDaGFpbmluZyB0ZXN0IGZhaWxlZCBmb3IgY29udmVydFRvQVNDSUkiKTsKKyAgICAgICAgfSAgIAorICAgIH0KKyAgICAvLyAgdGVzdCBhbmQgYXNjZXJ0YWluCisgICAgLy8gIGZ1bmMoZnVuYyhmdW5jKHNyYykpKSA9PSBmdW5jKHNyYykKKyAgICBwdWJsaWMgdm9pZCBkb1Rlc3RDaGFpbmluZ1RvVW5pY29kZShTdHJpbmcgc291cmNlKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBleHBlY3RlZDsgCisgICAgICAgIFN0cmluZ0J1ZmZlciBjaGFpbmVkOworICAgICAgICAKKyAgICAgICAgLy8gdGVzdCBjb252ZXJ0SUROVG9Vbmljb2RlCisgICAgICAgIGV4cGVjdGVkID0gSUROQS5jb252ZXJ0SUROVG9Vbmljb2RlKHNvdXJjZSxJRE5BLkRFRkFVTFQpOworICAgICAgICBjaGFpbmVkID0gZXhwZWN0ZWQ7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCA0OyBpKyspeworICAgICAgICAgICAgY2hhaW5lZCA9IElETkEuY29udmVydElETlRvVW5pY29kZShjaGFpbmVkLElETkEuREVGQVVMVCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWV4cGVjdGVkLnRvU3RyaW5nKCkuZXF1YWxzKGNoYWluZWQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgZXJybG4oIkNoYWluaW5nIHRlc3QgZmFpbGVkIGZvciBjb252ZXJ0SUROVG9Vbmljb2RlIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdCBjb252ZXJ0SUROVG9BCisgICAgICAgIGV4cGVjdGVkID0gSUROQS5jb252ZXJ0VG9Vbmljb2RlKHNvdXJjZSxJRE5BLkRFRkFVTFQpOworICAgICAgICBjaGFpbmVkID0gZXhwZWN0ZWQ7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCA0OyBpKyspeworICAgICAgICAgICAgY2hhaW5lZCA9IElETkEuY29udmVydFRvVW5pY29kZShjaGFpbmVkLElETkEuREVGQVVMVCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWV4cGVjdGVkLnRvU3RyaW5nKCkuZXF1YWxzKGNoYWluZWQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgZXJybG4oIkNoYWluaW5nIHRlc3QgZmFpbGVkIGZvciBjb252ZXJ0VG9Vbmljb2RlIik7CisgICAgICAgIH0gICAKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENoYWluaW5nKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8IFRlc3REYXRhLmFzY2lpSW4ubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgZG9UZXN0Q2hhaW5pbmdUb1VuaWNvZGUoVGVzdERhdGEuYXNjaWlJbltpXSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGludCBpPTA7IGk8IFRlc3REYXRhLnVuaWNvZGVJbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBkb1Rlc3RDaGFpbmluZ1RvQVNDSUkobmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKworICAgIC8qIElETkEgUkZDIFNheXM6CisgICAgQSBsYWJlbCBpcyBhbiBpbmRpdmlkdWFsIHBhcnQgb2YgYSBkb21haW4gbmFtZS4gIExhYmVscyBhcmUgdXN1YWxseQorICAgIHNob3duIHNlcGFyYXRlZCBieSBkb3RzOyBmb3IgZXhhbXBsZSwgdGhlIGRvbWFpbiBuYW1lCisgICAgInd3dy5leGFtcGxlLmNvbSIgaXMgY29tcG9zZWQgb2YgdGhyZWUgbGFiZWxzOiAid3d3IiwgImV4YW1wbGUiLCBhbmQKKyAgICAiY29tIi4gIChUaGUgemVyby1sZW5ndGggcm9vdCBsYWJlbCBkZXNjcmliZWQgaW4gW1NURDEzXSwgd2hpY2ggY2FuCisgICAgYmUgZXhwbGljaXQgYXMgaW4gInd3dy5leGFtcGxlLmNvbS4iIG9yIGltcGxpY2l0IGFzIGluCisgICAgInd3dy5leGFtcGxlLmNvbSIsIGlzIG5vdCBjb25zaWRlcmVkIGEgbGFiZWwgaW4gdGhpcyBzcGVjaWZpY2F0aW9uLikKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSb290TGFiZWxTZXBhcmF0b3IoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgd3d3ID0gInd3dy4iOworICAgICAgICBTdHJpbmcgY29tID0gIi5jb20uIjsgLy9yb290IGxhYmVsIHNlcGFyYXRvcgorICAgICAgICBTdHJpbmdCdWZmZXIgc291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgdW5pMCAgID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgdW5pMSAgID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgYXNjaWkwID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworICAgICAgICBTdHJpbmdCdWZmZXIgYXNjaWkxID0gbmV3IFN0cmluZ0J1ZmZlcih3d3cpOworCisgICAgICAgIHVuaTAuYXBwZW5kKFRlc3REYXRhLnVuaWNvZGVJblswXSk7CisgICAgICAgIHVuaTAuYXBwZW5kKGNvbSk7CisKKyAgICAgICAgdW5pMS5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluWzFdKTsKKyAgICAgICAgdW5pMS5hcHBlbmQoY29tKTsKKworICAgICAgICBhc2NpaTAuYXBwZW5kKFRlc3REYXRhLmFzY2lpSW5bMF0pOworICAgICAgICBhc2NpaTAuYXBwZW5kKGNvbSk7CisKKyAgICAgICAgYXNjaWkxLmFwcGVuZChUZXN0RGF0YS5hc2NpaUluWzFdKTsKKyAgICAgICAgYXNjaWkxLmFwcGVuZChjb20pOworCisgICAgICAgIGZvcihpbnQgaT0wO2k8IFRlc3REYXRhLnVuaWNvZGVJbi5sZW5ndGg7IGkrKyl7CisKKyAgICAgICAgICAgIC8vIGZvciBldmVyeSBlbnRyeSBpbiB1bmljb2RlSW4gYXJyYXkKKyAgICAgICAgICAgIC8vIHByZXBlbmQgd3d3LiBhbmQgYXBwZW5kIC5jb20KKyAgICAgICAgICAgIHNvdXJjZS5zZXRMZW5ndGgoNCk7CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKFRlc3REYXRhLnVuaWNvZGVJbltpXSk7CisgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKGNvbSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGEpIGNvbXBhcmUgaXQgd2l0aCBpdHNlbGYKKyAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksc291cmNlLnRvU3RyaW5nKCksdHJ1ZSk7CisgICAgICAgIAorICAgICAgICAgICAgLy8gYikgY29tcGFyZSBpdCB3aXRoIGFzY2lpSW4gZXF1aXZhbGVudAorICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSx3d3crVGVzdERhdGEuYXNjaWlJbltpXStjb20sdHJ1ZSk7CisgICAgICAgIAorICAgICAgICAgICAgLy8gYykgY29tcGFyZSBpdCB3aXRoIHVuaWNvZGVJbiBub3QgZXF1aXZhbGVudAorICAgICAgICAgICAgaWYoaT09MCl7CisgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSwgdW5pMS50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLHVuaTAudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gZCkgY29tcGFyZSBpdCB3aXRoIGFzY2lpSW4gbm90IGVxdWl2YWxlbnQKKyAgICAgICAgICAgIGlmKGk9PTApeworICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksYXNjaWkxLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksYXNjaWkwLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisKKyAgICB9CisgICAgCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGxvb3BDb3VudCA9IDEwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWF4Q2hhckNvdW50ID0gMTU7CisgICAvLyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbWF4Q29kZVBvaW50ID0gMHgxMGZmZmY7CisgICAgcHJpdmF0ZSBSYW5kb20gcmFuZG9tID0gbnVsbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSByYW5kb20gaW50ZWdlciBpIHdoZXJlIDAgPD0gaSA8IG4uCisgICAgICogQSBzcGVjaWFsIGZ1bmN0aW9uIHRoYXQgZ2V0cyByYW5kb20gY29kZXBvaW50cyBmcm9tIHBsYW5lcyAwLDEsMiBhbmQgMTQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCByYW5kX3VuaSgpCisgICAgeworICAgICAgIGludCByZXRWYWwgPSAoaW50KShyYW5kb20ubmV4dExvbmcoKSYgMHgzRkZGRik7CisgICAgICAgaWYocmV0VmFsID49IDB4MzAwMDApeworICAgICAgICAgICByZXRWYWwrPTB4QjAwMDA7CisgICAgICAgfQorICAgICAgIHJldHVybiByZXRWYWw7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgcmFuZGkoaW50IG4peworICAgICAgICByZXR1cm4gKHJhbmRvbS5uZXh0SW50KDB4N2ZmZikgJSAobisxKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgZ2V0VGVzdFNvdXJjZShTdHJpbmdCdWZmZXIgZmlsbEluKSB7CisgICAgICAgIC8vIHVzZSB1bmlmb3JtIHNlZWQgdmFsdWUgZnJvbSB0aGUgZnJhbWV3b3JrCisgICAgICAgIGlmKHJhbmRvbT09bnVsbCl7CisgICAgICAgICAgICByYW5kb20gPSBjcmVhdGVSYW5kb20oKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIGludCBjaGFyQ291bnQgPSAocmFuZGkobWF4Q2hhckNvdW50KSArIDEpOworICAgICAgICB3aGlsZSAoaSA8Y2hhckNvdW50ICkgeworICAgICAgICAgICAgaW50IGNvZGVwb2ludCA9IHJhbmRfdW5pKCk7CisgICAgICAgICAgICBpZihjb2RlcG9pbnQgPT0gMHgwMDAwKXsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChmaWxsSW4sIGNvZGVwb2ludCk7CisgICAgICAgICAgICBpKys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZpbGxJbjsKKyAgICAgICAKKyAgICB9CisgICAgcHVibGljIHZvaWQgTW9ua2V5VGVzdCgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgICBTdHJpbmdCdWZmZXIgc291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgLyogZG8gdGhlIG1vbmtleSB0ZXN0ICAgKi8gICAgICAgCisgICAgICAgICBmb3IoaW50IGk9MDsgaTxsb29wQ291bnQ7IGkrKyl7CisgICAgICAgICAgICAgc291cmNlLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICBnZXRUZXN0U291cmNlKHNvdXJjZSk7CisgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZVJlZmVyZW5jZUltcGwoc291cmNlKTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgLy8gdGVzdCBzdHJpbmcgd2l0aCBlbWJlZGRlZCBudWxsICAKKyAgICAgICAgIHNvdXJjZS5hcHBlbmQoICJcXHUwMDAwXFx1MjEwOVxcdTNFMUJcXFUwMDBFNjVDQVxcVTAwMDFDQUM1IiApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKFV0aWxpdHkudW5lc2NhcGUoc291cmNlLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgIGRvVGVzdENvbXBhcmVSZWZlcmVuY2VJbXBsKHNvdXJjZSk7CisgICAgICAgICAKKyAgICAgICAgIC8vU3RyaW5nQnVmZmVyIHNyYyA9IG5ldyBTdHJpbmdCdWZmZXIoVXRpbGl0eS51bmVzY2FwZSgiXFx1REVFOFxcVTAwMEUyMjhDXFxVMDAwMkVFOEVcXFUwMDBFNjM1MFxcVTAwMDI0REQ5XHU0MDQ5XFxVMDAwRTBERTRcXFUwMDBFNDQ4Q1xcVTAwMDE4NjlCXFxVMDAwRTMzODBcXFUwMDAxNkE4RVxcVTAwMDE3MkQ1XFxVMDAwMUM0MDhcXFUwMDBFOUZCNSIpKTsKKyAgICAgICAgIC8vZG9UZXN0Q29tcGFyZVJlZmVyZW5jZUltcGwoc3JjKTsKKyAgICAgICAgIAorICAgICAgICAgLy90ZXN0IGRlbGV0aW9uIG9mIGNvZGUgcG9pbnRzCisgICAgICAgICBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKFV0aWxpdHkudW5lc2NhcGUoIlxcdTA0M2ZcXHUwMEFEXFx1MDM0ZlxcdTA0M2VcXHUwNDQ3XFx1MDQzNVxcdTA0M2NcXHUwNDQzXFx1MDQzNlxcdTA0MzVcXHUwNDNlXFx1MDQzZFxcdTA0MzhcXHUwNDNkXFx1MDQzNVxcdTA0MzNcXHUwNDNlXFx1MDQzMlxcdTA0M2VcXHUwNDQwXFx1MDQ0ZlxcdTA0NDJcXHUwNDNmXFx1MDQzZVxcdTA0NDBcXHUwNDQzXFx1MDQ0MVxcdTA0NDFcXHUwNDNhXFx1MDQzOCIpKTsKKyAgICAgICAgIFN0cmluZ0J1ZmZlciBleHBlY3RlZCA9IG5ldyBTdHJpbmdCdWZmZXIoInhuLS1iMWFiZmFhZXBkcm5uYmdlZmJhZG90Y3dhdG1xMmc0bCIpOworICAgICAgICAgZG9UZXN0Q29tcGFyZVJlZmVyZW5jZUltcGwoc291cmNlKTsKKyAgICAgICAgIGRvVGVzdFRvQVNDSUkoc291cmNlLnRvU3RyaW5nKCksZXhwZWN0ZWQudG9TdHJpbmcoKSwgSUROQS5ERUZBVUxULCBudWxsKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGRvVGVzdENvbXBhcmVSZWZlcmVuY2VJbXBsKFN0cmluZ0J1ZmZlciBzcmMpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgbGFiZWwgPSBzcmM7ICAKKworICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXhwZWN0ZWQgPSBudWxsOworICAgICAgICBTdHJpbmdCdWZmZXIgYXNjaWkgPSBudWxsOworICAgICAgICBpbnQgb3B0aW9ucyA9IElETkEuREVGQVVMVDsKKyAgICAgICAgbG9nbG4oIkNvbXBhcmluZyBpZG5hcmVmX3RvQVNDSUkgd2l0aCB1aWRuYV90b0FTQ0lJIGZvciBpbnB1dDogIiArIHByZXR0aWZ5KGxhYmVsKSk7CisgICAgICAgIHRyeXsgICAgICAgCisgICAgICAgICAgICBhc2NpaSA9IElETkFSZWZlcmVuY2UuY29udmVydFRvQVNDSUkobGFiZWwsIG9wdGlvbnMpOworICAgICAgICB9Y2F0Y2goIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGV4cGVjdGVkID0gZTsKKyAgICAgICAgICAgIGlmKGUuZXF1YWxzKHVuYXNzaWduZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBvcHRpb25zID0gSUROQS5BTExPV19VTkFTU0lHTkVEOworICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gbnVsbDsKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIGFzY2lpID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0VG9BU0NJSShsYWJlbCwgb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgfWNhdGNoKCBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IGV4OyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZG9UZXN0VG9BU0NJSShsYWJlbC50b1N0cmluZygpLCAKKyAgICAgICAgICAgICAgICAgICAgICAoYXNjaWkgPT0gbnVsbCkgPyBudWxsIDogYXNjaWkudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkKTsKKworICAgICAgICBsb2dsbigiQ29tcGFyaW5nIGlkbmFyZWZfdG9Vbmljb2RlIHdpdGggdWlkbmFfdG9Vbmljb2RlIGZvciBpbnB1dDogIiArIHByZXR0aWZ5KGxhYmVsKSk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkgPW51bGw7CisgICAgICAgIAorICAgICAgICBpZihleHBlY3RlZCA9PSBudWxsKXsKKyAgICAgICAgICAgIG9wdGlvbnMgPSBJRE5BLkRFRkFVTFQ7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgIHVuaSA9IElETkFSZWZlcmVuY2UuY29udmVydFRvVW5pY29kZShhc2NpaSwgb3B0aW9ucyk7CisgICAgICAgICAgICB9Y2F0Y2goIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBlICl7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSBlOworICAgICAgICAgICAgICAgIGlmKGV4cGVjdGVkLmVxdWFscyh1bmFzc2lnbmVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBJRE5BLkFMTE9XX1VOQVNTSUdORUQ7CisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICAgICAgdW5pID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0VG9Vbmljb2RlKGFzY2lpLCBvcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IGV4OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZG9UZXN0VG9Vbmljb2RlKGFzY2lpLnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuaT09bnVsbCk/IG51bGwgOiB1bmkudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkKTsKKyAgICAgICAgfQorCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJlUmVmSW1wbCgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGkgPSAweDQwMDAwIDsgaTwgMHgxMGZmZmY7IGkrKyl7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc3JjID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGlzUXVpY2soKT09dHJ1ZSAmJiBpPiAweDFGRkZGKXsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihpID49IDB4MzAwMDAgJiYgaTw9MHhmMDAwMCl7CisgICAgICAgICAgICAgICBpKz0weEIwMDAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHNyYyxpKTsKKyAgICAgICAgICAgIGRvVGVzdENvbXBhcmVSZWZlcmVuY2VJbXBsKHNyYyk7CisKKyAgICAgICAgfSAgCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RVbmljb2RlMzJOb3JtKCkgeworICAgICAgICAvKgorICAgICAgICAgKiB0ZXN0IFVuaWNvZGUgMy4yIG5vcm1hbGl6YXRpb24sIGJlZm9yZSBQdWJsaWMgUmV2aWV3IElzc3VlICMyOQorICAgICAgICAgKiBzZWUgY25vcm10c3QuYyBUZXN0Q29tcG9zaXRpb24oKQorICAgICAgICAgKi8KKyAgICAgICAgZmluYWwgU3RyaW5nIHN0cmluZ3NbXT17CisgICAgICAgICAgICAiXHUxMTAwXHUwMzAwXHUxMTYxXHUwMzI3IiwKKyAgICAgICAgICAgICJcdTBiNDdcdTAzMDBcdTBiM2VcdTAzMjciCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nIGFzY2lpLCB1bmljb2RlOworICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgyOworICAgICAgICBpbnQgaTsKKworICAgICAgICBmb3IoaT0wOyBpPHN0cmluZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGV4Mj1udWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBhc2NpaT1JRE5BLmNvbnZlcnRUb0FTQ0lJKHN0cmluZ3NbaV0sIDApLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgdW5pY29kZT1JRE5BLmNvbnZlcnRUb1VuaWNvZGUoYXNjaWksIDApLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgIGV4Mj1leDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4Mj09bnVsbCB8fCBleDIuZ2V0TWVzc2FnZSgpLmluZGV4T2YoInZlcmlmaWNhdGlvbiIpPDApIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXM9IGV4Mj09bnVsbCA/ICJudWxsIiA6IGV4Mi50b1N0cmluZygpOworICAgICAgICAgICAgICAgIGVycmxuKCJzdHJpbmcgIitpKyIgeWllbGRzICIrZXMrIiBpbnN0ZWFkIG9mIFZFUklGSUNBVElPTl9FUlJPUiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RKQjQ0OTAoKXsKKyAgICAgICAgU3RyaW5nW10gaW4gPSBuZXcgU3RyaW5nW117CisgICAgICAgICAgICAgICAgIlx1MDBGNVx1MDBkRVx1MDBkRlx1MDBkRCIsCisgICAgICAgICAgICAgICAgIlx1RkIwMFx1RkIwMSIKKyAgICAgICAgICAgICAgIH07CisgICAgICAgIGZvciAoIGludCBpPTA7IGk8IGluLmxlbmd0aDsgaSsrKXsgICAKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYXNjaWkgPSBJRE5BLmNvbnZlcnRUb0FTQ0lJKGluW2ldLElETkEuREVGQVVMVCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB1bmljb2RlID0gSUROQS5jb252ZXJ0VG9Vbmljb2RlKGFzY2lpLElETkEuREVGQVVMVCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBjb252ZXJ0VG9Vbmljb2RlOiAiICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICBlcnJsbigiVW5leHBlY3RlZCBleGNlcHRpb24gZm9yIGNvbnZlcnRUb0FTQ0lJOiAiICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0SkI0NDc1KCl7CisgICAgICAgIFN0cmluZ1tdIGluID0gbmV3IFN0cmluZ1tdeworICAgICAgICAgICAgICAgICAgICAgICAgIlRFU1QiLAorICAgICAgICAgICAgICAgICAgICAgICAgInRlc3QiCisgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgIGZvciAoIGludCBpPTA7IGk8IGluLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIFN0cmluZyBhc2NpaSA9IElETkEuY29udmVydFRvQVNDSUkoaW5baV0sSUROQS5ERUZBVUxUKS50b1N0cmluZygpOworICAgICAgICAgICAgICAgIGlmKCFhc2NpaS5lcXVhbHMoaW5baV0pKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBzdHJpbmcgZm9yIGNvbnZlcnRUb0FTQ0lJLiBFeHBlY3RlZDogIisgaW5baV0gKyIgR290OiAiICsgYXNjaWkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGVycmxuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0RGVidWcoKXsgICAgIAorICAgICAgICB0cnl7CisgICAgICAgICAgICBTdHJpbmcgc3JjID0gIlx1MDBFRDRkbiI7CisgICAgICAgICAgICBTdHJpbmcgdW5pID0gSUROQS5jb252ZXJ0VG9Vbmljb2RlKHNyYyxJRE5BLkRFRkFVTFQpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZighdW5pLmVxdWFscyhzcmMpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdC4gRXhwZWN0ZWQ6ICIrIHByZXR0aWZ5KHNyYykgKyIgR290OiAiICt1bmkpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGxvZ2xuKCJVbmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nIGFzY2lpID0gSUROQS5jb252ZXJ0VG9BU0NJSSgiXHUwMEFEIixJRE5BLkRFRkFVTFQpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZihhc2NpaSE9bnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBleGNlcHRpb246ICIgKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdElETkFSZWYuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RJRE5BUmVmLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFmNTUwZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9zdHJpbmdwcmVwL1Rlc3RJRE5BUmVmLmphdmEKQEAgLTAsMCArMSw2MjEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc3RyaW5ncHJlcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3Rlckl0ZXJhdG9yOworCisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICogVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5Db2RlIEdlbmVyYXRpb24+Q29kZSBhbmQgQ29tbWVudHMKKyAqLworcHVibGljIGNsYXNzIFRlc3RJRE5BUmVmIGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdElETkFSZWYoKS5ydW4oYXJncyk7CisgICAgfQorICAgIHByaXZhdGUgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIHVuYXNzaWduZWRFeGNlcHRpb24gPSBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCIiLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5VTkFTU0lHTkVEX0VSUk9SKTsKKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9Vbmljb2RlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuYXNjaWlJbi5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgLy8gdGVzdCBTdHJpbmdCdWZmZXIgdG9Vbmljb2RlCisgICAgICAgICAgICAgICAgZG9UZXN0VG9Vbmljb2RlKFRlc3REYXRhLmFzY2lpSW5baV0sbmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLElETkFSZWZlcmVuY2UuREVGQVVMVCwgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0VG9Vbmljb2RlKFRlc3REYXRhLmFzY2lpSW5baV0sbmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgICAgICAgICAgLy9kb1Rlc3RUb1VuaWNvZGUoVGVzdERhdGEuYXNjaWlJbltpXSxuZXcgU3RyaW5nKFRlc3REYXRhLnVuaWNvZGVJbltpXSksSUROQVJlZmVyZW5jZS5VU0VfU1REM19SVUxFUywgbnVsbCk7IAorICAgICAgICAgICAgICAgIC8vZG9UZXN0VG9Vbmljb2RlKFRlc3REYXRhLmFzY2lpSW5baV0sbmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLElETkFSZWZlcmVuY2UuVVNFX1NURDNfUlVMRVN8SUROQVJlZmVyZW5jZS5BTExPV19VTkFTU0lHTkVELCBudWxsKTsgCisgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLkV4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvciBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtIGRhdGEiKTsKKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5Ob0NsYXNzRGVmRm91bmRFcnJvciBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIE5hbWVQcmVwVHJhbnNmb3JtIGRhdGEiKTsKKyAgICAgICAgfSAKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFRvQVNDSUkoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICB0cnl7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxUZXN0RGF0YS5hc2NpaUluLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICAvLyB0ZXN0IFN0cmluZ0J1ZmZlciB0b1VuaWNvZGUKKyAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxUZXN0RGF0YS5hc2NpaUluW2ldLElETkFSZWZlcmVuY2UuREVGQVVMVCwgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0VG9BU0NJSShuZXcgU3RyaW5nKFRlc3REYXRhLnVuaWNvZGVJbltpXSksVGVzdERhdGEuYXNjaWlJbltpXSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQsIG51bGwpOworICAgICAgICAgICAgICAgIC8vZG9UZXN0VG9Vbmljb2RlKFRlc3REYXRhLmFzY2lpSW5baV0sbmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pLElETkFSZWZlcmVuY2UuVVNFX1NURDNfUlVMRVMsIG51bGwpOyAKKyAgICAgICAgICAgICAgICAvL2RvVGVzdFRvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldLG5ldyBTdHJpbmcoVGVzdERhdGEudW5pY29kZUluW2ldKSxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTfElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7IAorICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuTm9DbGFzc0RlZkZvdW5kRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH0gCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RJRE5Ub0FTQ0lJKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuZG9tYWluTmFtZXMubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkoVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNbaV0sSUROQVJlZmVyZW5jZS5ERUZBVUxULCBudWxsKTsKKyAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub0FTQ0lJKFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTLCBudWxsKTsKKyAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub0FTQ0lJKFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRHxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuZG9tYWluTmFtZXMxVW5pLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub0FTQ0lJKFRlc3REYXRhLmRvbWFpbk5hbWVzMVVuaVtpXSxUZXN0RGF0YS5kb21haW5OYW1lc1RvQVNDSUlPdXRbaV0sSUROQVJlZmVyZW5jZS5ERUZBVUxULCBudWxsKTsKKyAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub0FTQ0lJKFRlc3REYXRhLmRvbWFpbk5hbWVzMVVuaVtpXSxUZXN0RGF0YS5kb21haW5OYW1lc1RvQVNDSUlPdXRbaV0sSUROQVJlZmVyZW5jZS5BTExPV19VTkFTU0lHTkVELCBudWxsKTsKKyAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub0FTQ0lJKFRlc3REYXRhLmRvbWFpbk5hbWVzMVVuaVtpXSxUZXN0RGF0YS5kb21haW5OYW1lc1RvQVNDSUlPdXRbaV0sSUROQVJlZmVyZW5jZS5VU0VfU1REM19SVUxFUywgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShUZXN0RGF0YS5kb21haW5OYW1lczFVbmlbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRHxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTLCBudWxsKTsKKyAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuTm9DbGFzc0RlZkZvdW5kRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH0gCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RJRE5Ub1VuaWNvZGUoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICB0cnl7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxUZXN0RGF0YS5kb21haW5OYW1lcy5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9Vbmljb2RlKFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLElETkFSZWZlcmVuY2UuREVGQVVMVCwgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9Vbmljb2RlKFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9Vbmljb2RlKFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzW2ldLElETkFSZWZlcmVuY2UuVVNFX1NURDNfUlVMRVMsIG51bGwpOworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxUZXN0RGF0YS5kb21haW5OYW1lc1tpXSxJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUR8SUROQVJlZmVyZW5jZS5VU0VfU1REM19SVUxFUywgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxUZXN0RGF0YS5kb21haW5OYW1lc1RvQVNDSUlPdXQubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgICAgIGRvVGVzdElETlRvVW5pY29kZShUZXN0RGF0YS5kb21haW5OYW1lc1RvQVNDSUlPdXRbaV0sVGVzdERhdGEuZG9tYWluTmFtZXNUb1VuaWNvZGVPdXRbaV0sSUROQVJlZmVyZW5jZS5ERUZBVUxULCBudWxsKTsKKyAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoVGVzdERhdGEuZG9tYWluTmFtZXNUb0FTQ0lJT3V0W2ldLFRlc3REYXRhLmRvbWFpbk5hbWVzVG9Vbmljb2RlT3V0W2ldLElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0VG9Vbmljb2RlKFN0cmluZyBzcmMsIFN0cmluZyBleHBlY3RlZCwgaW50IG9wdGlvbnMsIE9iamVjdCBleHBlY3RlZEV4Y2VwdGlvbikgCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGluQnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzcmMpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaW5JdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkFSZWZlcmVuY2UuY29udmVydFRvVW5pY29kZShzcmMsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK3ByZXR0aWZ5KG91dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXguZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICsgcHJldHRpZnkoc3JjKSArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0cnl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRUb1VuaWNvZGUoaW5CdWYsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArIAorICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIHByZXR0aWZ5KGV4cGVjdGVkKSsiIEdvdDogIitvdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXguZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICsgcHJldHRpZnkoc3JjKSArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkFSZWZlcmVuY2UuY29udmVydFRvVW5pY29kZShpbkl0ZXIsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgcHJldHRpZnkoZXhwZWN0ZWQpKyIgR290OiAiK3ByZXR0aWZ5KG91dCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4LmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgKyBwcmV0dGlmeShzcmMpICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3RJRE5Ub1VuaWNvZGUoU3RyaW5nIHNyYywgU3RyaW5nIGV4cGVjdGVkLCBpbnQgb3B0aW9ucywgT2JqZWN0IGV4cGVjdGVkRXhjZXB0aW9uKSAKKyAgICAgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmdCdWZmZXIgaW5CdWYgPSBuZXcgU3RyaW5nQnVmZmVyKHNyYyk7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpbkl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc3JjKTsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0SUROVG9Vbmljb2RlKHNyYyxvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArIAorICAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeShleHBlY3RlZCkrIiBHb3Q6ICIrcHJldHRpZnkob3V0KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleHBlY3RlZEV4Y2VwdGlvbi5lcXVhbHMoZXgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvVW5pY29kZSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0cnl7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0SUROVG9Vbmljb2RlKGluQnVmLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb1VuaWNvZGUgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeShleHBlY3RlZCkrIiBHb3Q6ICIrb3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4cGVjdGVkRXhjZXB0aW9uLmVxdWFscyhleCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArc3JjICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnl7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0SUROVG9Vbmljb2RlKGluSXRlcixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9Vbmljb2RlIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsKKyAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeShleHBlY3RlZCkrIiBHb3Q6ICIrcHJldHRpZnkob3V0KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4gVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24gPT0gbnVsbCB8fCAhZXhwZWN0ZWRFeGNlcHRpb24uZXF1YWxzKGV4KSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArc3JjICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBkb1Rlc3RUb0FTQ0lJKFN0cmluZyBzcmMsIFN0cmluZyBleHBlY3RlZCwgaW50IG9wdGlvbnMsIE9iamVjdCBleHBlY3RlZEV4Y2VwdGlvbikgCisgICAgICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGluQnVmID0gbmV3IFN0cmluZ0J1ZmZlcihzcmMpOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaW5JdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkFSZWZlcmVuY2UuY29udmVydFRvQVNDSUkoc3JjLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSAmJiBleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiBleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkLnRvTG93ZXJDYXNlKCkpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKyAKKyAgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgZXhwZWN0ZWQrIiBHb3Q6ICIrb3V0KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4cGVjdGVkRXhjZXB0aW9uLmVxdWFscyhleCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5eyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCA9IElETkFSZWZlcmVuY2UuY29udmVydFRvQVNDSUkoaW5CdWYsb3B0aW9ucyk7CisgICAgICAgICAgICBpZighdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pICYmIGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmIGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQudG9Mb3dlckNhc2UoKSkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgcmV0dXJuIGV4cGVjdGVkIHJlc3VsdCB3aXRoIG9wdGlvbnMgOiAiKyBvcHRpb25zICsgCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgZXhwZWN0ZWQrIiBHb3Q6ICIrb3V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleHBlY3RlZEV4Y2VwdGlvbi5lcXVhbHMoZXgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRUb0FTQ0lJKGluSXRlcixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKCF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZC50b0xvd2VyQ2FzZSgpKSl7CisgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvQVNDSUkgZGlkIG5vdCByZXR1cm4gZXhwZWN0ZWQgcmVzdWx0IHdpdGggb3B0aW9ucyA6ICIrIG9wdGlvbnMgKworICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIGV4cGVjdGVkKyIgR290OiAiKyBvdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0FTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24uIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkISIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uID09IG51bGwgfHwgIWV4cGVjdGVkRXhjZXB0aW9uLmVxdWFscyhleCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3NyYyArIiBHb3Q6ICAiKyBleC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0SUROVG9BU0NJSShTdHJpbmcgc3JjLCBTdHJpbmcgZXhwZWN0ZWQsIGludCBvcHRpb25zLCBPYmplY3QgZXhwZWN0ZWRFeGNlcHRpb24pIAorICAgICAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgaW5CdWYgPSBuZXcgU3RyaW5nQnVmZmVyKHNyYyk7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpbkl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc3JjKTsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0SUROVG9BU0NJSShzcmMsb3B0aW9ucyk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9bnVsbCAmJiBvdXQgIT0gbnVsbCAmJiAhb3V0LnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0lETkFSZWZlcmVuY2VBU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArIAorICAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCsiIEdvdDogIitvdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZXhwZWN0ZWRFeGNlcHRpb24hPW51bGwgJiYgIXVuYXNzaWduZWRFeGNlcHRpb24uZXF1YWxzKGV4cGVjdGVkRXhjZXB0aW9uKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0lETkFSZWZlcmVuY2VBU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleC5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvSUROQVJlZmVyZW5jZUFTQ0lJIGRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24gZm9yIHNvdXJjZTogIiArc3JjICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRJRE50b0FTQ0lJKGluQnVmLG9wdGlvbnMpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPW51bGwgJiYgb3V0ICE9IG51bGwgJiYgIW91dC50b1N0cmluZygpLmVxdWFscyhleHBlY3RlZCkpeworICAgICAgICAgICAgICAgZXJybG4oImNvbnZlcnRUb0lETkFSZWZlcmVuY2VBU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArIAorICAgICAgICAgICAgICAgICAgICAgIiBFeHBlY3RlZDogIiArIGV4cGVjdGVkKyIgR290OiAiK291dCk7CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0VG9JRE5BUmVmZXJlbmNlU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleC5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydFRvSUROQVJlZmVyZW5jZVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRJRE50b0FTQ0lJKGluSXRlcixvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1udWxsICYmIG91dCAhPSBudWxsICYmICFvdXQudG9TdHJpbmcoKS5lcXVhbHMoZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0SUROVG9BU0NJSSBkaWQgbm90IHJldHVybiBleHBlY3RlZCByZXN1bHQgd2l0aCBvcHRpb25zIDogIisgb3B0aW9ucyArCisgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkOiAiICsgZXhwZWN0ZWQrIiBHb3Q6ICIrIG91dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkRXhjZXB0aW9uIT1udWxsICYmICF1bmFzc2lnbmVkRXhjZXB0aW9uLmVxdWFscyhleHBlY3RlZEV4Y2VwdGlvbikpeworICAgICAgICAgICAgICAgIGVycmxuKCJjb252ZXJ0SUROVG9BU0NJSSBkaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBpZihleHBlY3RlZEV4Y2VwdGlvbiA9PSBudWxsIHx8ICFleC5lcXVhbHMoZXhwZWN0ZWRFeGNlcHRpb24pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY29udmVydElETlRvQVNDSUkgZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igc291cmNlOiAiICtzcmMgKyIgR290OiAgIisgZXgudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENvbmZvcm1hbmNlKCl0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICB0cnl7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxUZXN0RGF0YS5jb25mb3JtYW5jZVRlc3RDYXNlcy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBUZXN0RGF0YS5Db25mb3JtYW5jZVRlc3RDYXNlIHRlc3RDYXNlID0gVGVzdERhdGEuY29uZm9ybWFuY2VUZXN0Q2FzZXNbaV07CisgICAgICAgICAgICAgICAgaWYodGVzdENhc2UuZXhwZWN0ZWQgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgIC8vVGVzdCB0b0FTQ0lJCisgICAgICAgICAgICAgICAgICAgIGRvVGVzdFRvQVNDSUkodGVzdENhc2UuaW5wdXQsdGVzdENhc2Uub3V0cHV0LElETkFSZWZlcmVuY2UuREVGQVVMVCx0ZXN0Q2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdFRvQVNDSUkodGVzdENhc2UuaW5wdXQsdGVzdENhc2Uub3V0cHV0LElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCx0ZXN0Q2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vVGVzdCB0b1VuaWNvZGUKKyAgICAgICAgICAgICAgICAvL2RvVGVzdFRvVW5pY29kZSh0ZXN0Q2FzZS5pbnB1dCx0ZXN0Q2FzZS5vdXRwdXQsSUROQVJlZmVyZW5jZS5ERUZBVUxULHRlc3RDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuTm9DbGFzc0RlZkZvdW5kRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH0gCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3ROYW1lUHJlcENvbmZvcm1hbmNlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgTmFtZVByZXBUcmFuc2Zvcm0gbmFtZVByZXAgPSBOYW1lUHJlcFRyYW5zZm9ybS5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8VGVzdERhdGEuY29uZm9ybWFuY2VUZXN0Q2FzZXMubGVuZ3RoO2krKyl7CisgICAgICAgICAgICAgICAgVGVzdERhdGEuQ29uZm9ybWFuY2VUZXN0Q2FzZSB0ZXN0Q2FzZSA9IFRlc3REYXRhLmNvbmZvcm1hbmNlVGVzdENhc2VzW2ldOworICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHRlc3RDYXNlLmlucHV0KTsKKyAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXRwdXQgPSBuYW1lUHJlcC5wcmVwYXJlKGl0ZXIsTmFtZVByZXBUcmFuc2Zvcm0uTk9ORSk7CisgICAgICAgICAgICAgICAgICAgIGlmKHRlc3RDYXNlLm91dHB1dCAhPW51bGwgJiYgb3V0cHV0IT1udWxsICYmICF0ZXN0Q2FzZS5vdXRwdXQuZXF1YWxzKG91dHB1dC50b1N0cmluZygpKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dC4gRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeSh0ZXN0Q2FzZS5vdXRwdXQpKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBHb3Q6ICIrIHByZXR0aWZ5KG91dHB1dCkgKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZih0ZXN0Q2FzZS5leHBlY3RlZCE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHModGVzdENhc2UuZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgICAgICBpZih0ZXN0Q2FzZS5leHBlY3RlZCA9PSBudWxsIHx8ICFleC5lcXVhbHModGVzdENhc2UuZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3Rlc3RDYXNlLmlucHV0ICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgaXRlci5zZXRUb1N0YXJ0KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXRwdXQgPSBuYW1lUHJlcC5wcmVwYXJlKGl0ZXIsTmFtZVByZXBUcmFuc2Zvcm0uQUxMT1dfVU5BU1NJR05FRCk7CisgICAgICAgICAgICAgICAgICAgIGlmKHRlc3RDYXNlLm91dHB1dCAhPW51bGwgJiYgb3V0cHV0IT1udWxsICYmICF0ZXN0Q2FzZS5vdXRwdXQuZXF1YWxzKG91dHB1dC50b1N0cmluZygpKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dC4gRXhwZWN0ZWQ6ICIgKyBwcmV0dGlmeSh0ZXN0Q2FzZS5vdXRwdXQpKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBHb3Q6ICIrIHByZXR0aWZ5KG91dHB1dCkgKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZih0ZXN0Q2FzZS5leHBlY3RlZCE9bnVsbCAmJiAhdW5hc3NpZ25lZEV4Y2VwdGlvbi5lcXVhbHModGVzdENhc2UuZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uLiBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZCEiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH1jYXRjaChTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgICAgICBpZih0ZXN0Q2FzZS5leHBlY3RlZCA9PSBudWxsIHx8ICFleC5lcXVhbHModGVzdENhc2UuZXhwZWN0ZWQpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIGZvciBzb3VyY2U6ICIgK3Rlc3RDYXNlLmlucHV0ICsiIEdvdDogICIrIGV4LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLkV4Y2VwdGlvbkluSW5pdGlhbGl6ZXJFcnJvciBlKXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm1EYXRhIik7CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuTm9DbGFzc0RlZkZvdW5kRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH0gCisgICAgICAgIAorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0RXJyb3JDYXNlcygpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpIDwgVGVzdERhdGEuZXJyb3JDYXNlcy5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgVGVzdERhdGEuRXJyb3JDYXNlIGVyckNhc2UgPSBUZXN0RGF0YS5lcnJvckNhc2VzW2ldOworICAgICAgICAgICAgICAgIGlmKGVyckNhc2UudGVzdExhYmVsPT10cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGVzdCBUb0FTQ0lJCisgICAgICAgICAgICAgICAgICAgIGRvVGVzdFRvQVNDSUkobmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLGVyckNhc2UuYXNjaWksSUROQVJlZmVyZW5jZS5ERUZBVUxULGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxlcnJDYXNlLmFzY2lpLElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoZXJyQ2FzZS51c2VTVEQzQVNDSUlSdWxlcyl7CisgICAgICAgICAgICAgICAgICAgICAgICBkb1Rlc3RUb0FTQ0lJKG5ldyBTdHJpbmcoZXJyQ2FzZS51bmljb2RlKSxlcnJDYXNlLmFzY2lpLElETkFSZWZlcmVuY2UuVVNFX1NURDNfUlVMRVMsZXJyQ2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoZXJyQ2FzZS51c2VTVEQzQVNDSUlSdWxlcyE9dHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBUZXN0IElETlRvQVNDSUkKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShuZXcgU3RyaW5nKGVyckNhc2UudW5pY29kZSksZXJyQ2FzZS5hc2NpaSxJRE5BUmVmZXJlbmNlLkRFRkFVTFQsZXJyQ2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdElETlRvQVNDSUkobmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLGVyckNhc2UuYXNjaWksSUROQVJlZmVyZW5jZS5BTExPV19VTkFTU0lHTkVELGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9BU0NJSShuZXcgU3RyaW5nKGVyckNhc2UudW5pY29kZSksZXJyQ2FzZS5hc2NpaSxJRE5BUmVmZXJlbmNlLlVTRV9TVEQzX1JVTEVTLGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvL1Rlc3RUb1VuaWNvZGUKKyAgICAgICAgICAgICAgICBpZihlcnJDYXNlLnRlc3RUb1VuaWNvZGU9PXRydWUpeworICAgICAgICAgICAgICAgICAgICBpZihlcnJDYXNlLnVzZVNURDNBU0NJSVJ1bGVzIT10cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRlc3QgSUROVG9Vbmljb2RlCisgICAgICAgICAgICAgICAgICAgICAgICBkb1Rlc3RJRE5Ub1VuaWNvZGUoZXJyQ2FzZS5hc2NpaSxuZXcgU3RyaW5nKGVyckNhc2UudW5pY29kZSksSUROQVJlZmVyZW5jZS5ERUZBVUxULGVyckNhc2UuZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9Vbmljb2RlKGVyckNhc2UuYXNjaWksbmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCxlcnJDYXNlLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgZG9UZXN0SUROVG9Vbmljb2RlKGVyckNhc2UuYXNjaWksbmV3IFN0cmluZyhlcnJDYXNlLnVuaWNvZGUpLElETkFSZWZlcmVuY2UuVVNFX1NURDNfUlVMRVMsZXJyQ2FzZS5leHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZG9UZXN0Q29tcGFyZShTdHJpbmcgczEsIFN0cmluZyBzMiwgYm9vbGVhbiBpc0VxdWFsKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgaW50IHJldFZhbCA9IElETkFSZWZlcmVuY2UuY29tcGFyZShzMSxzMixJRE5BUmVmZXJlbmNlLkRFRkFVTFQpOworICAgICAgICAgICAgaWYoaXNFcXVhbD09dHJ1ZSAmJiByZXRWYWwgIT0gMCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHMxOiAiKyBwcmV0dGlmeShzMSkrIAorICAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldFZhbCA9IElETkFSZWZlcmVuY2UuY29tcGFyZShuZXcgU3RyaW5nQnVmZmVyKHMxKSwgbmV3IFN0cmluZ0J1ZmZlcihzMiksIElETkFSZWZlcmVuY2UuREVGQVVMVCk7CisgICAgICAgICAgICBpZihpc0VxdWFsPT10cnVlICYmIHJldFZhbCAhPSAwKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgczE6ICIrIHByZXR0aWZ5KHMxKSsgCisgICAgICAgICAgICAgICAgICAgICAiIHMyOiAiK3ByZXR0aWZ5KHMyKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXRWYWwgPSBJRE5BUmVmZXJlbmNlLmNvbXBhcmUoVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMxKSwgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHMyKSwgSUROQVJlZmVyZW5jZS5ERUZBVUxUKTsKKyAgICAgICAgICAgIGlmKGlzRXF1YWw9PXRydWUgJiYgcmV0VmFsICE9IDApeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzMTogIisgcHJldHRpZnkoczEpKyAKKyAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICBlcnJsbigiVW5leHBlY3RlZCBleGNlcHRpb24gdGhyb3duIGJ5IElETkFSZWZlcmVuY2UuY29tcGFyZSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnl7CisgICAgICAgICAgICBpbnQgcmV0VmFsID0gSUROQVJlZmVyZW5jZS5jb21wYXJlKHMxLHMyLElETkFSZWZlcmVuY2UuQUxMT1dfVU5BU1NJR05FRCk7CisgICAgICAgICAgICBpZihpc0VxdWFsPT10cnVlICYmIHJldFZhbCAhPSAwKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgczE6ICIrIHByZXR0aWZ5KHMxKSsgCisgICAgICAgICAgICAgICAgICAgICAgIiBzMjogIitwcmV0dGlmeShzMikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0VmFsID0gSUROQVJlZmVyZW5jZS5jb21wYXJlKG5ldyBTdHJpbmdCdWZmZXIoczEpLCBuZXcgU3RyaW5nQnVmZmVyKHMyKSwgSUROQVJlZmVyZW5jZS5BTExPV19VTkFTU0lHTkVEKTsKKyAgICAgICAgICAgIGlmKGlzRXF1YWw9PXRydWUgJiYgcmV0VmFsICE9IDApeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBzMTogIisgcHJldHRpZnkoczEpKyAKKyAgICAgICAgICAgICAgICAgICAgICIgczI6ICIrcHJldHRpZnkoczIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldFZhbCA9IElETkFSZWZlcmVuY2UuY29tcGFyZShVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoczEpLCBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoczIpLCBJRE5BUmVmZXJlbmNlLkFMTE9XX1VOQVNTSUdORUQpOworICAgICAgICAgICAgaWYoaXNFcXVhbD09dHJ1ZSAmJiByZXRWYWwgIT0gMCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHMxOiAiKyBwcmV0dGlmeShzMSkrIAorICAgICAgICAgICAgICAgICAgICAgIiBzMjogIitwcmV0dGlmeShzMikpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uIHRocm93biBieSBJRE5BUmVmZXJlbmNlLmNvbXBhcmUiKTsKKyAgICAgICAgfSAgICAgCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wYXJlKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nIHd3dyA9ICJ3d3cuIjsKKyAgICAgICAgU3RyaW5nIGNvbSA9ICIuY29tIjsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNvdXJjZSA9IG5ldyBTdHJpbmdCdWZmZXIod3d3KTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHVuaTAgICA9IG5ldyBTdHJpbmdCdWZmZXIod3d3KTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHVuaTEgICA9IG5ldyBTdHJpbmdCdWZmZXIod3d3KTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGFzY2lpMCA9IG5ldyBTdHJpbmdCdWZmZXIod3d3KTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGFzY2lpMSA9IG5ldyBTdHJpbmdCdWZmZXIod3d3KTsKKworICAgICAgICB1bmkwLmFwcGVuZChUZXN0RGF0YS51bmljb2RlSW5bMF0pOworICAgICAgICB1bmkwLmFwcGVuZChjb20pOworCisgICAgICAgIHVuaTEuYXBwZW5kKFRlc3REYXRhLnVuaWNvZGVJblsxXSk7CisgICAgICAgIHVuaTEuYXBwZW5kKGNvbSk7CisKKyAgICAgICAgYXNjaWkwLmFwcGVuZChUZXN0RGF0YS5hc2NpaUluWzBdKTsKKyAgICAgICAgYXNjaWkwLmFwcGVuZChjb20pOworCisgICAgICAgIGFzY2lpMS5hcHBlbmQoVGVzdERhdGEuYXNjaWlJblsxXSk7CisgICAgICAgIGFzY2lpMS5hcHBlbmQoY29tKTsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgZm9yKGludCBpPTA7aTwgVGVzdERhdGEudW5pY29kZUluLmxlbmd0aDsgaSsrKXsKKyAgICAKKyAgICAgICAgICAgICAgICAvLyBmb3IgZXZlcnkgZW50cnkgaW4gdW5pY29kZUluIGFycmF5CisgICAgICAgICAgICAgICAgLy8gcHJlcGVuZCB3d3cuIGFuZCBhcHBlbmQgLmNvbQorICAgICAgICAgICAgICAgIHNvdXJjZS5zZXRMZW5ndGgoNCk7CisgICAgICAgICAgICAgICAgc291cmNlLmFwcGVuZChUZXN0RGF0YS51bmljb2RlSW5baV0pOworICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoY29tKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBhKSBjb21wYXJlIGl0IHdpdGggaXRzZWxmCisgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSxzb3VyY2UudG9TdHJpbmcoKSx0cnVlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGIpIGNvbXBhcmUgaXQgd2l0aCBhc2NpaUluIGVxdWl2YWxlbnQKKyAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLHd3dytUZXN0RGF0YS5hc2NpaUluW2ldK2NvbSx0cnVlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGMpIGNvbXBhcmUgaXQgd2l0aCB1bmljb2RlSW4gbm90IGVxdWl2YWxlbnQKKyAgICAgICAgICAgICAgICBpZihpPT0wKXsKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSwgdW5pMS50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksdW5pMC50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGQpIGNvbXBhcmUgaXQgd2l0aCBhc2NpaUluIG5vdCBlcXVpdmFsZW50CisgICAgICAgICAgICAgICAgaWYoaT09MCl7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksYXNjaWkxLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSxhc2NpaTAudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuTm9DbGFzc0RlZkZvdW5kRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH0gCisgICAgfQorCisgICAgLy8gIHRlc3QgYW5kIGFzY2VydGFpbgorICAgIC8vICBmdW5jKGZ1bmMoZnVuYyhzcmMpKSkgPT0gZnVuYyhzcmMpCisgICAgcHVibGljIHZvaWQgZG9UZXN0Q2hhaW5pbmdUb0FTQ0lJKFN0cmluZyBzb3VyY2UpdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGV4cGVjdGVkOyAKKyAgICAgICAgU3RyaW5nQnVmZmVyIGNoYWluZWQ7CisgICAgICAgIAorICAgICAgICAvLyB0ZXN0IGNvbnZlcnRJRE5Ub0FTQ0lJCisgICAgICAgIGV4cGVjdGVkID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0SUROVG9BU0NJSShzb3VyY2UsSUROQVJlZmVyZW5jZS5ERUZBVUxUKTsKKyAgICAgICAgY2hhaW5lZCA9IGV4cGVjdGVkOworICAgICAgICBmb3IoaW50IGk9MDsgaTwgNDsgaSsrKXsKKyAgICAgICAgICAgIGNoYWluZWQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRJRE50b0FTQ0lJKGNoYWluZWQsSUROQVJlZmVyZW5jZS5ERUZBVUxUKTsKKyAgICAgICAgfQorICAgICAgICBpZighZXhwZWN0ZWQudG9TdHJpbmcoKS5lcXVhbHMoY2hhaW5lZC50b1N0cmluZygpKSl7CisgICAgICAgICAgICBlcnJsbigiQ2hhaW5pbmcgdGVzdCBmYWlsZWQgZm9yIGNvbnZlcnRJRE5Ub0FTQ0lJIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdCBjb252ZXJ0SUROVG9BCisgICAgICAgIGV4cGVjdGVkID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0VG9BU0NJSShzb3VyY2UsSUROQVJlZmVyZW5jZS5ERUZBVUxUKTsKKyAgICAgICAgY2hhaW5lZCA9IGV4cGVjdGVkOworICAgICAgICBmb3IoaW50IGk9MDsgaTwgNDsgaSsrKXsKKyAgICAgICAgICAgIGNoYWluZWQgPSBJRE5BUmVmZXJlbmNlLmNvbnZlcnRUb0FTQ0lJKGNoYWluZWQsSUROQVJlZmVyZW5jZS5ERUZBVUxUKTsKKyAgICAgICAgfQorICAgICAgICBpZighZXhwZWN0ZWQudG9TdHJpbmcoKS5lcXVhbHMoY2hhaW5lZC50b1N0cmluZygpKSl7CisgICAgICAgICAgICBlcnJsbigiQ2hhaW5pbmcgdGVzdCBmYWlsZWQgZm9yIGNvbnZlcnRUb0FTQ0lJIik7CisgICAgICAgIH0gCisgICAgICAgIAorICAgIH0KKyAgICAvLyAgdGVzdCBhbmQgYXNjZXJ0YWluCisgICAgLy8gIGZ1bmMoZnVuYyhmdW5jKHNyYykpKSA9PSBmdW5jKHNyYykKKyAgICBwdWJsaWMgdm9pZCBkb1Rlc3RDaGFpbmluZ1RvVW5pY29kZShTdHJpbmcgc291cmNlKXRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZ0J1ZmZlciBleHBlY3RlZDsgCisgICAgICAgIFN0cmluZ0J1ZmZlciBjaGFpbmVkOworICAgICAgICAKKyAgICAgICAgLy8gdGVzdCBjb252ZXJ0SUROVG9Vbmljb2RlCisgICAgICAgIGV4cGVjdGVkID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0SUROVG9Vbmljb2RlKHNvdXJjZSxJRE5BUmVmZXJlbmNlLkRFRkFVTFQpOworICAgICAgICBjaGFpbmVkID0gZXhwZWN0ZWQ7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCA0OyBpKyspeworICAgICAgICAgICAgY2hhaW5lZCA9IElETkFSZWZlcmVuY2UuY29udmVydElETlRvVW5pY29kZShjaGFpbmVkLElETkFSZWZlcmVuY2UuREVGQVVMVCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWV4cGVjdGVkLnRvU3RyaW5nKCkuZXF1YWxzKGNoYWluZWQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgZXJybG4oIkNoYWluaW5nIHRlc3QgZmFpbGVkIGZvciBjb252ZXJ0SUROVG9Vbmljb2RlIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGVzdCBjb252ZXJ0SUROVG9BCisgICAgICAgIGV4cGVjdGVkID0gSUROQVJlZmVyZW5jZS5jb252ZXJ0VG9Vbmljb2RlKHNvdXJjZSxJRE5BUmVmZXJlbmNlLkRFRkFVTFQpOworICAgICAgICBjaGFpbmVkID0gZXhwZWN0ZWQ7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPCA0OyBpKyspeworICAgICAgICAgICAgY2hhaW5lZCA9IElETkFSZWZlcmVuY2UuY29udmVydFRvVW5pY29kZShjaGFpbmVkLElETkFSZWZlcmVuY2UuREVGQVVMVCk7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWV4cGVjdGVkLnRvU3RyaW5nKCkuZXF1YWxzKGNoYWluZWQudG9TdHJpbmcoKSkpeworICAgICAgICAgICAgZXJybG4oIkNoYWluaW5nIHRlc3QgZmFpbGVkIGZvciBjb252ZXJ0VG9Vbmljb2RlIik7CisgICAgICAgIH0KKworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhaW5pbmcoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICB0cnl7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTwgVGVzdERhdGEudW5pY29kZUluLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICBkb1Rlc3RDaGFpbmluZ1RvQVNDSUkobmV3IFN0cmluZyhUZXN0RGF0YS51bmljb2RlSW5baV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPCBUZXN0RGF0YS5hc2NpaUluLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICBkb1Rlc3RDaGFpbmluZ1RvVW5pY29kZShUZXN0RGF0YS5hc2NpaUluW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKGphdmEubGFuZy5FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuTm9DbGFzc0RlZkZvdW5kRXJyb3IgZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBOYW1lUHJlcFRyYW5zZm9ybSBkYXRhIik7CisgICAgICAgIH0gCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RSb290TGFiZWxTZXBhcmF0b3IoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgd3d3ID0gInd3dy4iOworICAgICAgICBTdHJpbmcgY29tID0gIi5jb20uIjsgLypyb290IGxhYmVsIHNlcGFyYXRvciovCisgICAgICAgIFN0cmluZ0J1ZmZlciBzb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkwICAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB1bmkxICAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBhc2NpaTAgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBhc2NpaTEgPSBuZXcgU3RyaW5nQnVmZmVyKHd3dyk7CisKKyAgICAgICAgdW5pMC5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluWzBdKTsKKyAgICAgICAgdW5pMC5hcHBlbmQoY29tKTsKKworICAgICAgICB1bmkxLmFwcGVuZChUZXN0RGF0YS51bmljb2RlSW5bMV0pOworICAgICAgICB1bmkxLmFwcGVuZChjb20pOworCisgICAgICAgIGFzY2lpMC5hcHBlbmQoVGVzdERhdGEuYXNjaWlJblswXSk7CisgICAgICAgIGFzY2lpMC5hcHBlbmQoY29tKTsKKworICAgICAgICBhc2NpaTEuYXBwZW5kKFRlc3REYXRhLmFzY2lpSW5bMV0pOworICAgICAgICBhc2NpaTEuYXBwZW5kKGNvbSk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wO2k8IFRlc3REYXRhLnVuaWNvZGVJbi5sZW5ndGg7IGkrKyl7CisgICAgCisgICAgICAgICAgICAgICAgLy8gZm9yIGV2ZXJ5IGVudHJ5IGluIHVuaWNvZGVJbiBhcnJheQorICAgICAgICAgICAgICAgIC8vIHByZXBlbmQgd3d3LiBhbmQgYXBwZW5kIC5jb20KKyAgICAgICAgICAgICAgICBzb3VyY2Uuc2V0TGVuZ3RoKDQpOworICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoVGVzdERhdGEudW5pY29kZUluW2ldKTsKKyAgICAgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKGNvbSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gYSkgY29tcGFyZSBpdCB3aXRoIGl0c2VsZgorICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksc291cmNlLnRvU3RyaW5nKCksdHJ1ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBiKSBjb21wYXJlIGl0IHdpdGggYXNjaWlJbiBlcXVpdmFsZW50CisgICAgICAgICAgICAgICAgZG9UZXN0Q29tcGFyZShzb3VyY2UudG9TdHJpbmcoKSx3d3crVGVzdERhdGEuYXNjaWlJbltpXStjb20sdHJ1ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBjKSBjb21wYXJlIGl0IHdpdGggdW5pY29kZUluIG5vdCBlcXVpdmFsZW50CisgICAgICAgICAgICAgICAgaWYoaT09MCl7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksIHVuaTEudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLHVuaTAudG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBkKSBjb21wYXJlIGl0IHdpdGggYXNjaWlJbiBub3QgZXF1aXZhbGVudAorICAgICAgICAgICAgICAgIGlmKGk9PTApeworICAgICAgICAgICAgICAgICAgICBkb1Rlc3RDb21wYXJlKHNvdXJjZS50b1N0cmluZygpLGFzY2lpMS50b1N0cmluZygpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGRvVGVzdENvbXBhcmUoc291cmNlLnRvU3RyaW5nKCksYXNjaWkwLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChqYXZhLmxhbmcuRXhjZXB0aW9uSW5Jbml0aWFsaXplckVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9Y2F0Y2goamF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgTmFtZVByZXBUcmFuc2Zvcm0gZGF0YSIpOworICAgICAgICB9IAorCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdElucHV0RGF0YVN0cnVjdHVyZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdElucHV0RGF0YVN0cnVjdHVyZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiODdlYWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0SW5wdXREYXRhU3RydWN0dXJlLmphdmEKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3Quc3RyaW5ncHJlcDsKKworLyoqCisgKiBAYXV0aG9yIGxpbWFveXUKKyAqLworcHVibGljIGNsYXNzIFRlc3RJbnB1dERhdGFTdHJ1Y3R1cmUgeworICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGRlc2MgPSBudWxsOworCisgICAgcHJpdmF0ZSBTdHJpbmcgbmFtZWJhc2UgPSBudWxsOworCisgICAgcHJpdmF0ZSBTdHJpbmcgbmFtZXV0ZjggPSBudWxsOworCisgICAgcHJpdmF0ZSBTdHJpbmcgbmFtZXpvbmUgPSBudWxsOworCisgICAgcHJpdmF0ZSBTdHJpbmcgZmFpbHpvbmUxID0gbnVsbDsKKworICAgIHByaXZhdGUgU3RyaW5nIGZhaWx6b25lMiA9IG51bGw7CisKKyAgICBwcml2YXRlIFN0cmluZyB0b2tlbiA9IG51bGw7CisKKyAgICBwcml2YXRlIFN0cmluZyBwYXNzZmFpbCA9IG51bGw7CisKKyAgICBwcml2YXRlIFN0cmluZyB0eXBlID0gbnVsbDsKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIGRlc2MuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREZXNjKCkgeworICAgICAgICByZXR1cm4gZGVzYzsKKyAgICB9CisgICAgLyoqCisgICAgICogQHBhcmFtIGRlc2MgVGhlIGRlc2MgdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERlc2MoU3RyaW5nIGRlc2MpIHsKKyAgICAgICAgdGhpcy5kZXNjID0gZGVzYzsKKyAgICB9CisgICAgLyoqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBmYWlsem9uZTEuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRGYWlsem9uZTEoKSB7CisgICAgICAgIHJldHVybiBmYWlsem9uZTE7CisgICAgfQorICAgIC8qKgorICAgICAqIEBwYXJhbSBmYWlsem9uZTEgVGhlIGZhaWx6b25lMSB0byBzZXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RmFpbHpvbmUxKFN0cmluZyBmYWlsem9uZTEpIHsKKyAgICAgICAgdGhpcy5mYWlsem9uZTEgPSBmYWlsem9uZTE7CisgICAgfQorICAgIC8qKgorICAgICAqIEByZXR1cm4gUmV0dXJucyB0aGUgZmFpbHpvbmUyLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RmFpbHpvbmUyKCkgeworICAgICAgICByZXR1cm4gZmFpbHpvbmUyOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcGFyYW0gZmFpbHpvbmUyIFRoZSBmYWlsem9uZTIgdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZhaWx6b25lMihTdHJpbmcgZmFpbHpvbmUyKSB7CisgICAgICAgIHRoaXMuZmFpbHpvbmUyID0gZmFpbHpvbmUyOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIG5hbWViYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZWJhc2UoKSB7CisgICAgICAgIHJldHVybiBuYW1lYmFzZTsKKyAgICB9CisgICAgLyoqCisgICAgICogQHBhcmFtIG5hbWViYXNlIFRoZSBuYW1lYmFzZSB0byBzZXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmFtZWJhc2UoU3RyaW5nIG5hbWViYXNlKSB7CisgICAgICAgIHRoaXMubmFtZWJhc2UgPSBuYW1lYmFzZTsKKyAgICB9CisgICAgLyoqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBuYW1ldXRmOC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWV1dGY4KCkgeworICAgICAgICByZXR1cm4gbmFtZXV0Zjg7CisgICAgfQorICAgIC8qKgorICAgICAqIEBwYXJhbSBuYW1ldXRmOCBUaGUgbmFtZXV0ZjggdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE5hbWV1dGY4KFN0cmluZyBuYW1ldXRmOCkgeworICAgICAgICB0aGlzLm5hbWV1dGY4ID0gbmFtZXV0Zjg7CisgICAgfQorICAgIC8qKgorICAgICAqIEByZXR1cm4gUmV0dXJucyB0aGUgbmFtZXpvbmUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lem9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5hbWV6b25lOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbmFtZXpvbmUgVGhlIG5hbWV6b25lIHRvIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROYW1lem9uZShTdHJpbmcgbmFtZXpvbmUpIHsKKyAgICAgICAgdGhpcy5uYW1lem9uZSA9IG5hbWV6b25lOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIHBhc3NmYWlsLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGFzc2ZhaWwoKSB7CisgICAgICAgIHJldHVybiBwYXNzZmFpbDsKKyAgICB9CisgICAgLyoqCisgICAgICogQHBhcmFtIHBhc3NmYWlsIFRoZSBwYXNzZmFpbCB0byBzZXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGFzc2ZhaWwoU3RyaW5nIHBhc3NmYWlsKSB7CisgICAgICAgIHRoaXMucGFzc2ZhaWwgPSBwYXNzZmFpbDsKKyAgICB9CisgICAgLyoqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSB0b2tlbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRva2VuKCkgeworICAgICAgICByZXR1cm4gdG9rZW47CisgICAgfQorICAgIC8qKgorICAgICAqIEBwYXJhbSB0b2tlbiBUaGUgdG9rZW4gdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRva2VuKFN0cmluZyB0b2tlbikgeworICAgICAgICB0aGlzLnRva2VuID0gdG9rZW47CisgICAgfQorICAgIC8qKgorICAgICAqIEByZXR1cm4gUmV0dXJucyB0aGUgdHlwZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiB0eXBlOworICAgIH0KKyAgICAvKioKKyAgICAgKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSB0byBzZXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VHlwZShTdHJpbmcgdHlwZSkgeworICAgICAgICB0aGlzLnR5cGUgPSB0eXBlOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3Qvc3RyaW5ncHJlcC9UZXN0U3RyaW5nUHJlcC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdFN0cmluZ1ByZXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzdiODE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3N0cmluZ3ByZXAvVGVzdFN0cmluZ1ByZXAuamF2YQpAQCAtMCwwICsxLDIwNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC5zdHJpbmdwcmVwOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb247CisKKy8qKgorICogQGF1dGhvciByYW0KKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0U3RyaW5nUHJlcCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFRlc3RTdHJpbmdQcmVwKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAvKgorICAgICAgIFRoZXJlIGFyZSBzZXZlcmFsIHNwZWNpYWwgaWRlbnRpZmllcnMgKCJ3aG8iKSB3aGljaCBuZWVkIHRvIGJlCisgICAgICAgdW5kZXJzdG9vZCB1bml2ZXJzYWxseSwgcmF0aGVyIHRoYW4gaW4gdGhlIGNvbnRleHQgb2YgYSBwYXJ0aWN1bGFyCisgICAgICAgRE5TIGRvbWFpbi4gIFNvbWUgb2YgdGhlc2UgaWRlbnRpZmllcnMgY2Fubm90IGJlIHVuZGVyc3Rvb2Qgd2hlbiBhbgorICAgICAgIE5GUyBjbGllbnQgYWNjZXNzZXMgdGhlIHNlcnZlciwgYnV0IGhhdmUgbWVhbmluZyB3aGVuIGEgbG9jYWwgcHJvY2VzcworICAgICAgIGFjY2Vzc2VzIHRoZSBmaWxlLiAgVGhlIGFiaWxpdHkgdG8gZGlzcGxheSBhbmQgbW9kaWZ5IHRoZXNlCisgICAgICAgcGVybWlzc2lvbnMgaXMgcGVybWl0dGVkIG92ZXIgTkZTLCBldmVuIGlmIG5vbmUgb2YgdGhlIGFjY2VzcyBtZXRob2RzCisgICAgICAgb24gdGhlIHNlcnZlciB1bmRlcnN0YW5kcyB0aGUgaWRlbnRpZmllcnMuCisKKyAgICAgICAgV2hvICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgorICAgICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworCisgICAgICAgIk9XTkVSIiAgICAgICAgICAgICAgICBUaGUgb3duZXIgb2YgdGhlIGZpbGUuCisgICAgICAgIkdST1VQIiAgICAgICAgICAgICAgICBUaGUgZ3JvdXAgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWxlLgorICAgICAgICJFVkVSWU9ORSIgICAgICAgICAgICAgVGhlIHdvcmxkLgorICAgICAgICJJTlRFUkFDVElWRSIgICAgICAgICAgQWNjZXNzZWQgZnJvbSBhbiBpbnRlcmFjdGl2ZSB0ZXJtaW5hbC4KKyAgICAgICAiTkVUV09SSyIgICAgICAgICAgICAgIEFjY2Vzc2VkIHZpYSB0aGUgbmV0d29yay4KKyAgICAgICAiRElBTFVQIiAgICAgICAgICAgICAgIEFjY2Vzc2VkIGFzIGEgZGlhbHVwIHVzZXIgdG8gdGhlIHNlcnZlci4KKyAgICAgICAiQkFUQ0giICAgICAgICAgICAgICAgIEFjY2Vzc2VkIGZyb20gYSBiYXRjaCBqb2IuCisgICAgICAgIkFOT05ZTU9VUyIgICAgICAgICAgICBBY2Nlc3NlZCB3aXRob3V0IGFueSBhdXRoZW50aWNhdGlvbi4KKyAgICAgICAiQVVUSEVOVElDQVRFRCIgICAgICAgIEFueSBhdXRoZW50aWNhdGVkIHVzZXIgKG9wcG9zaXRlIG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTk9OWU1PVVMpCisgICAgICAgIlNFUlZJQ0UiICAgICAgICAgICAgICBBY2Nlc3MgZnJvbSBhIHN5c3RlbSBzZXJ2aWNlLgorCisgICAgICAgVG8gYXZvaWQgY29uZmxpY3QsIHRoZXNlIHNwZWNpYWwgaWRlbnRpZmllcnMgYXJlIGRpc3Rpbmd1aXNoIGJ5IGFuCisgICAgICAgYXBwZW5kZWQgIkAiIGFuZCBzaG91bGQgYXBwZWFyIGluIHRoZSBmb3JtICJ4eHh4QCIgKG5vdGU6IG5vIGRvbWFpbgorICAgICAgIG5hbWUgYWZ0ZXIgdGhlICJAIikuICBGb3IgZXhhbXBsZTogQU5PTllNT1VTQC4KKyAgICAqLworICAgIHByaXZhdGUgU3RyaW5nW10gbWl4ZWRfcHJlcF9kYXRhID17CisgICAgICAgICJPV05FUkAiLAorICAgICAgICAiR1JPVVBAIiwgICAgICAgIAorICAgICAgICAiRVZFUllPTkVAIiwgICAgIAorICAgICAgICAiSU5URVJBQ1RJVkVAIiwgIAorICAgICAgICAiTkVUV09SS0AiLCAgICAgIAorICAgICAgICAiRElBTFVQQCIsICAgICAgIAorICAgICAgICAiQkFUQ0hAIiwgICAgICAgIAorICAgICAgICAiQU5PTllNT1VTQCIsICAgIAorICAgICAgICAiQVVUSEVOVElDQVRFREAiLAorICAgICAgICAiXHUwOTMwXHUwOTREXHUwOTJFXHUwOTREXHUwOTE1XHUwOTREXHUwOTM3XHUwOTQ3XHUwOTI0XHUwOTREQHNsaXAxMjktMzctMTE4LTE0Ni5uYy51cy5pYm0ubmV0IiwKKyAgICAgICAgIlx1MDkzNlx1MDk0ZFx1MDkzMFx1MDk0MFx1MDkyZVx1MDkyNlx1MDk0ZEBzYXJhdG9nYS5wZS51dGV4YXMuZWR1IiwKKyAgICAgICAgIlx1MDkyZFx1MDkxN1x1MDkzNVx1MDkyNlx1MDk0ZFx1MDkxN1x1MDk0MFx1MDkyNFx1MDkzZUBkaWFsLTEyMC00NS5vdHMudXRleGFzLmVkdSIsCisgICAgICAgICJcdTA5MDVcdTA5MjdcdTA5NGRcdTA5MmZcdTA5M2VcdTA5MmZAd29vLTA4NS5kb3Jtcy53YWxsZXIubmV0IiwKKyAgICAgICAgIlx1MDkwNVx1MDkzMFx1MDk0ZFx1MDkxY1x1MDk0MVx1MDkyOEBoZDMwLTA0OS5oaWwuY29tcHVzZXJ2ZS5jb20iLAorICAgICAgICAiXHUwOTM1XHUwOTNmXHUwOTM3XHUwOTNlXHUwOTI2QHBlbTIwMy0zMS5wZS50dHUuZWR1IiwKKyAgICAgICAgIlx1MDkyZlx1MDk0Ylx1MDkxN0A1NkstMjI3Lk1heFROVDMucGRxLm5ldCIsCisgICAgICAgICJcdTA5MjdcdTA5NDNcdTA5MjRcdTA5MzBcdTA5M2VcdTA5MzdcdTA5NGRcdTA5MWZcdTA5NGRcdTA5MzBAZGlhbC0zNi0yLm90cy51dGV4YXMuZWR1IiwKKyAgICAgICAgIlx1MDkwOVx1MDkzNVx1MDkzRVx1MDkxQVx1MDk0M0BzbGlwMTI5LTM3LTIzLTE1Mi5nYS51cy5pYm0ubmV0IiwKKyAgICAgICAgIlx1MDkyN1x1MDkzMFx1MDk0ZFx1MDkyZVx1MDkxNVx1MDk0ZFx1MDkzN1x1MDk0N1x1MDkyNFx1MDk0ZFx1MDkzMFx1MDk0N0B0czQ1aXAxMTkuY2FkdmlzaW9uLmNvbSIsCisgICAgICAgICJcdTA5MTVcdTA5NDFcdTA5MzBcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzdcdTA5NDdcdTA5MjRcdTA5NGRcdTA5MzBcdTA5NDdAc2RuLXRzLTAwNHR4YXVzdFAwNS5kaWFsc3ByaW50Lm5ldCIsCisgICAgICAgICJcdTA5MzhcdTA5MmVcdTA5MzVcdTA5NDdcdTA5MjRcdTA5M2VAYmFyLXRudDFzNjYuZXJvbHMuY29tIiwKKyAgICAgICAgIlx1MDkyZlx1MDk0MVx1MDkyZlx1MDk0MVx1MDkyNFx1MDk0ZFx1MDkzOFx1MDkzNVx1MDkwM0AxMDEuc3QtbG91aXMtMTUubW8uZGlhbC1hY2Nlc3MuYXR0Lm5ldCIsCisgICAgICAgICJcdTA5MmVcdTA5M2VcdTA5MmVcdTA5MTVcdTA5M2VcdTA5MDNAaDkyLTI0NS5BcmNvLkNPTSIsCisgICAgICAgICJcdTA5MmFcdTA5M2VcdTA5MjNcdTA5NGRcdTA5MjFcdTA5MzVcdTA5M2VcdTA5MzZcdTA5NGRcdTA5MWFcdTA5NDhcdTA5MzVAZGlhbC0xMy0yLm90cy51dGV4YXMuZWR1IiwKKyAgICAgICAgIlx1MDkxNVx1MDkzZlx1MDkyZVx1MDkxNVx1MDk0MVx1MDkzMFx1MDk0ZFx1MDkzNVx1MDkyNEBuZXQtcmVkeW5ldDI5LmRhdGFtYXJrZXRzLmNvbS5hciIsCisgICAgICAgICJcdTA5MzhcdTA5MDJcdTA5MWNcdTA5MzVAY2NzLXNoaXZhMjgucmVhY2NpdW4ubmV0LnZlIiwKKyAgICAgICAgIlx1MGMzMFx1MGMxOFx1MGM0MVx1MGMzMFx1MGMzZVx1MGMyZVx1MGM0ZEA3LmhvdXN0b24tMTEudHguZGlhbC1hY2Nlc3MuYXR0Lm5ldCIsCisgICAgICAgICJcdTBjMzVcdTBjM2ZcdTBjMzZcdTBjNGRcdTBjMzVcdTBjMjhcdTBjM2VcdTBjMjdAaW5ndzEyOS0zNy0xMjAtMjYubW8udXMuaWJtLm5ldCIsCisgICAgICAgICJcdTBjMDZcdTBjMjhcdTBjMDJcdTBjMjZcdTBjNGRAZGlhbHVwNi5hdXN0aW50eC5jb20iLAorICAgICAgICAiXHUwQzM1XHUwQzI2XHUwQzREXHUwQzI2XHUwQzNGXHUwQzMwXHUwQzNFXHUwQzFDXHUwQzQxQGRuczIudHBhby5nb3YudHIiLAorICAgICAgICAiXHUwYzMwXHUwYzNlXHUwYzFjXHUwYzQwXHUwYzM1XHUwYzRkQHNsaXAxMjktMzctMTE5LTE5NC5uYy51cy5pYm0ubmV0IiwKKyAgICAgICAgIlx1MGMxNVx1MGMzNlx1MGMzMFx1MGMyY1x1MGMzZVx1MGMyNkBjczcuZGlsbG9ucy5jby51ay4yMDMuMTE5LjE5My5pbi1hZGRyLmFycGEiLAorICAgICAgICAiXHUwYzM4XHUwYzAyXHUwYzFjXHUwYzQwXHUwYzM1XHUwYzRkQHN3cHJkMS5pbm5vdnBsYWNlLnNhc2thdG9vbi5zay5jYSIsCisgICAgICAgICJcdTBjMTVcdTBjMzZcdTBjMzBcdTBjMmNcdTBjM2VcdTBjMjZAYmlraW5pLmJvbG9nbmEubWFyYXV0Lml0IiwKKyAgICAgICAgIlx1MGMzOFx1MGMwMlx1MGMxY1x1MGM0MFx1MGMyY1x1MGM0ZEBub2RlOTEuc3VibmV0MTU5LTE5OC03OS5iYXh0ZXIuY29tIiwKKyAgICAgICAgIlx1MGMzOFx1MGM0Nlx1MGMyOFx1MGM0ZFx1MGMxN1x1MGM0MVx1MGMyYVx1MGM0ZFx1MGMyNEBjdXN0MTkubWF4NS5uZXcteW9yay5ueS5tcy51dS5uZXQiLAorICAgICAgICAiXHUwYzA1XHUwYzJlXHUwYzMwXHUwYzQ3XHUwYzAyXHUwYzI2XHUwYzRkXHUwYzMwQGJhbGV4YW5kZXIuc2xpcC5hbmRyZXcuY211LmVkdSIsCisgICAgICAgICJcdTBjMzlcdTBjMjhcdTBjNDFcdTBjMmVcdTBjM2VcdTBjMjhcdTBjNDFcdTBjMzJAcG9vbDAyOS5tYXgyLmRlbnZlci5jby5keW5pcC5hbHRlci5uZXQiLAorICAgICAgICAiXHUwYzMwXHUwYzM1XHUwYzNmQGN1c3Q0OS5tYXg5Lm5ldy15b3JrLm55Lm1zLnV1Lm5ldCIsCisgICAgICAgICJcdTBjMTVcdTBjNDFcdTBjMmVcdTBjM2VcdTBjMzBcdTBjNGRAczYxLmFicS1kaWFsaW4yLmhvbGx5YmVycnkuY29tIiwKKyAgICAgICAgIlx1MGMzNVx1MGMzZlx1MGMzNlx1MGM0ZFx1MGMzNVx1MGMyOFx1MGMzZVx1MGMyN0BcdTA5MTdcdTA5MjhcdTA5NDdcdTA5MzYuc2Fuam9zZS5pYm0uY29tIiwKKyAgICAgICAgIlx1MGMwNlx1MGMyNlx1MGMzZlx1MGMyNFx1MGM0ZFx1MGMyZkB3d3cuXHUwMEUwXHUwMEIzXHUwMEFGLmNvbSIsCisgICAgICAgICJcdTBDMTVcdTBDMDJcdTBDMjZcdTBDNERcdTBDMzBcdTBDNDdcdTBDMTdcdTBDNDFcdTBjMzJAd3d3Llx1MDBDMlx1MDBBNC5jb20iLAorICAgICAgICAiXHUwYzM2XHUwYzRkXHUwYzMwXHUwYzQwXHUwQzI3XHUwQzMwXHUwQzREQHd3dy5cdTAwQzJcdTAwQTMuY29tIiwKKyAgICAgICAgIlx1MGMxNVx1MGMwMlx1MGMxZlx1MGMyZVx1MGMzNlx1MGM0Nlx1MGMxZlx1MGM0ZFx1MGMxZlx1MGMzZkBcdTAwMjUiLAorICAgICAgICAiXHUwYzJlXHUwYzNlXHUwYzI3XHUwYzM1XHUwYzRkQFx1MDA1Q1x1MDA1QyIsCisgICAgICAgICJcdTBjMjZcdTBjNDZcdTBjMzZcdTBjNDZcdTBjMWZcdTBjNGRcdTBjMWZcdTBjM2ZAd3d3Llx1MDAyMS5jb20iLAorICAgICAgICAidGVzdEB3d3cuXHUwMDI0LmNvbSIsCisgICAgICAgICJoZWxwQFx1MDBDM1x1MDBCQy5jb20iLAorICAgIH07CisgICAgcHVibGljIHZvaWQgVGVzdE5GUzRNaXhlZFByZXAoKXsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8IG1peGVkX3ByZXBfZGF0YS5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgU3RyaW5nIHNyYyA9IG1peGVkX3ByZXBfZGF0YVtpXTsKKyAgICAgICAgICAgICAgICBieXRlW10gZGVzdCA9IE5GUzRTdHJpbmdQcmVwLm1peGVkX3ByZXBhcmUoc3JjLmdldEJ5dGVzKCJVVEYtOCIpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZGVzdFN0cmluZyA9IG5ldyBTdHJpbmcoZGVzdCwgIlVURi04Iik7CisgICAgICAgICAgICAgICAgaW50IGRlc3RJbmRleCA9IGRlc3RTdHJpbmcuaW5kZXhPZignQCcpOworICAgICAgICAgICAgICAgIGlmKGRlc3RJbmRleCA8IDApeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGVsaW1pdGVyIEAgZGlzYXBwZWFyZWQgZnJvbSB0aGUgb3V0cHV0ISIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgZXJybG4oIm1peGVkX3ByZXBhcmUgZm9yIHN0cmluZzogIiArIG1peGVkX3ByZXBfZGF0YVtpXSArIiBmYWlsZWQgd2l0aCAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgLyogdGVzdCB0aGUgZXJyb3IgY29uZGl0aW9uICovCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBzcmMgPSAiT1dORVJAb3NzLnNvZnR3YXJlLmlibS5jb20iOworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIGJ5dGVbXSBkZXN0ID0gTkZTNFN0cmluZ1ByZXAubWl4ZWRfcHJlcGFyZShzcmMuZ2V0Qnl0ZXMoIlVURi04IikpOworICAgICAgICAgICAgICAgIGlmKGRlc3QhPW51bGwpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIm1peGVkX3ByZXBhcmUgZm9yIHN0cmluZzogIiArIHNyYyArIiBwYXNzZWQgd2l0aCAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q0lTUHJlcCgpeworCisgICAgICAgIGZvcihpbnQgaT0wO2k8IChUZXN0RGF0YS5jb25mb3JtYW5jZVRlc3RDYXNlcy5sZW5ndGgpO2krKyl7CisgICAgICAgICAgICBUZXN0RGF0YS5Db25mb3JtYW5jZVRlc3RDYXNlIHRlc3RDYXNlID0gVGVzdERhdGEuY29uZm9ybWFuY2VUZXN0Q2FzZXNbaV07CisgICAgICAgICAgICBTdHJpbmcgc3JjID0gdGVzdENhc2UuaW5wdXQ7CisgICAgICAgICAgICBFeGNlcHRpb24gZXhwZWN0ZWQgPSB0ZXN0Q2FzZS5leHBlY3RlZDsKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZERlc3QgPSB0ZXN0Q2FzZS5vdXRwdXQ7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgYnl0ZVtdIGRlc3QgPU5GUzRTdHJpbmdQcmVwLmNpc19wcmVwYXJlKHNyYy5nZXRCeXRlcygiVVRGLTgiKSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlc3RTdHJpbmcgPSBuZXcgU3RyaW5nKGRlc3QsICJVVEYtOCIpOworICAgICAgICAgICAgICAgIGlmKCFleHBlY3RlZERlc3QuZXF1YWxzSWdub3JlQ2FzZShkZXN0U3RyaW5nKSl7CisgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIG5mczRfY2lzX3ByZXAgYXQgaW5kZXggIiArIGkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgaWYoIWV4cGVjdGVkLmVxdWFscyhlKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAKKworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENTUHJlcCgpeworICAgICAgICAKKyAgICAgICAgLy8gQ2hlY2tpbmcgZm9yIGJpZGkgaXMgdHVybmVkIG9mZgorICAgICAgICBTdHJpbmcgc3JjID0gIlx1QzEzOFx1QUNDNFx1Qzc1OFx1QkFBOFx1QjRFMFx1QzBBQ1x1Qjc4Q1x1QjRFNFx1Qzc3NFx1MDY0NFx1MDY0QVx1MDY0N1x1RDU1Q1x1QUQ2RFx1QzVCNFx1Qjk3Q1x1Qzc3NFx1RDU3NFx1RDU1Q1x1QjJFNFx1QkE3NCI7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIE5GUzRTdHJpbmdQcmVwLmNzX3ByZXBhcmUoc3JjLmdldEJ5dGVzKCJVVEYtOCIpLCBmYWxzZSk7CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlcnJsbigiR290IHVuZXhwZWN0ZWQgZXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gbm9ybWFsaXphdGlvbiBpcyB0dXJuZWQgb2ZmCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIHNyYyA9ICJ3d3cuXHUwMEUwXHUwMEIzXHUwMEFGLmNvbSI7CisgICAgICAgICAgICBieXRlW10gZGVzdCA9IE5GUzRTdHJpbmdQcmVwLmNzX3ByZXBhcmUoc3JjLmdldEJ5dGVzKCJVVEYtOCIpLCBmYWxzZSk7CisgICAgICAgICAgICBTdHJpbmcgZGVzdFN0ciA9IG5ldyBTdHJpbmcoZGVzdCwgIlVURi04Iik7CisgICAgICAgICAgICBpZighc3JjLmVxdWFscyhkZXN0U3RyKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IGV4cGVjdGVkIG91dHB1dC4gRXhwZWN0ZWQ6ICIrIHByZXR0aWZ5KHNyYykrCisgICAgICAgICAgICAgICAgICAgICAgIiBHb3Q6ICIgKyBwcmV0dGlmeShkZXN0U3RyKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlcnJsbigiR290IHVuZXhwZWN0ZWQgZXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gdGVzdCBjYXNlIGluc2Vuc2l0aXZlIHN0cmluZworICAgICAgICB0cnl7CisgICAgICAgICAgICBzcmMgPSAiVEhJU0lTQVRFU1QiOworICAgICAgICAgICAgYnl0ZVtdIGRlc3QgPSBORlM0U3RyaW5nUHJlcC5jc19wcmVwYXJlKHNyYy5nZXRCeXRlcygiVVRGLTgiKSwgZmFsc2UpOworICAgICAgICAgICAgU3RyaW5nIGRlc3RTdHIgPSBuZXcgU3RyaW5nKGRlc3QsICJVVEYtOCIpOworICAgICAgICAgICAgaWYoIXNyYy50b0xvd2VyQ2FzZSgpLmVxdWFscyhkZXN0U3RyKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IGV4cGVjdGVkIG91dHB1dC4gRXhwZWN0ZWQ6ICIrIHByZXR0aWZ5KHNyYykrCisgICAgICAgICAgICAgICAgICAgICAgIiBHb3Q6ICIgKyBwcmV0dGlmeShkZXN0U3RyKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlcnJsbigiR290IHVuZXhwZWN0ZWQgZXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICAvLyB0ZXN0IGNhc2Ugc2Vuc2l0aXZlIHN0cmluZworICAgICAgICB0cnl7CisgICAgICAgICAgICBzcmMgPSAiVEhJU0lTQVRFU1QiOworICAgICAgICAgICAgYnl0ZVtdIGRlc3QgPSBORlM0U3RyaW5nUHJlcC5jc19wcmVwYXJlKHNyYy5nZXRCeXRlcygiVVRGLTgiKSwgdHJ1ZSk7CisgICAgICAgICAgICBTdHJpbmcgZGVzdFN0ciA9IG5ldyBTdHJpbmcoZGVzdCwgIlVURi04Iik7CisgICAgICAgICAgICBpZighc3JjLmVxdWFscyhkZXN0U3RyKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IGV4cGVjdGVkIG91dHB1dC4gRXhwZWN0ZWQ6ICIrIHByZXR0aWZ5KHNyYykrCisgICAgICAgICAgICAgICAgICAgICAgIiBHb3Q6ICIgKyBwcmV0dGlmeShkZXN0U3RyKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICBlcnJsbigiR290IHVuZXhwZWN0ZWQgZXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKXsKKyAgICAgICAgaWYgKG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oImNvdmVyYWdlIiwgMCwgIiIsIDAsMCkgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiQ29uc3RydWN0IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbihTdHJpbmcsIGludCwgU3RyaW5nLCBpbnQsIGludCkiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lc2NhbGUvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWVzY2FsZS9UZXN0QWxsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhlYTZmMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lc2NhbGUvVGVzdEFsbC5qYXZhCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50aW1lc2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ay5UZXN0R3JvdXA7CisKKy8qKgorICogVG9wIGxldmVsIHRlc3QgdXNlZCB0byBydW4gdGltZSBzY2FsZSB0ZXN0cyBhcyBhIGJhdGNoLgorICovCitwdWJsaWMgY2xhc3MgVGVzdEFsbCBleHRlbmRzIFRlc3RHcm91cCB7CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIoCisgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgICAgICJUaW1lU2NhbGVBUElUZXN0IiwKKyAgICAgICAgICAgICAgICAiVGltZVNjYWxlRGF0YVRlc3QiLAorICAgICAgICAgICAgICAgICJUaW1lU2NhbGVNb25rZXlUZXN0IiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAiQWxsIFRpbWVTY2FsZSB0ZXN0cyIpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSAgPSAiVGltZVNjYWxlIjsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lc2NhbGUvVGltZVNjYWxlQVBJVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWVzY2FsZS9UaW1lU2NhbGVBUElUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGRkNTZhZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lc2NhbGUvVGltZVNjYWxlQVBJVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzYxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50aW1lc2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWw7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Vbml2ZXJzYWxUaW1lU2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKKy8qKgorICogQGF1dGhvciBPd25lcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIFRpbWVTY2FsZUFQSVRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworCisgICAgLyoqCisgICAgICogCisgICAgICovCisgICAgcHVibGljIFRpbWVTY2FsZUFQSVRlc3QoKQorICAgIHsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEJpZ0RlY2ltYWxGcm9tQmlnRGVjaW1hbCgpCisgICAgeworICAgICAgICBCaWdEZWNpbWFsIGJpZ1plcm8gPSBuZXcgQmlnRGVjaW1hbCgwKTsKKyAgICAgICAgQmlnRGVjaW1hbCByZXN1bHQ7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tKGJpZ1plcm8sIC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJiaWdEZWNpbWFsRnJvbShiaWdaZXJvLCAtMSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5iaWdEZWNpbWFsRnJvbShiaWdaZXJvLCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImJpZ0RlY2ltYWxGcm9tKGJpZ1plcm8sICIgKyBzY2FsZSArICIpIHRocmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tKGJpZ1plcm8sIFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEUpOworICAgICAgICAgICAgZXJybG4oImZyb20oYmlnWmVybywgTUFYX1NDQUxFKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWV0RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RCaWdEZWNpbWFsRnJvbURvdWJsZSgpCisgICAgeworICAgICAgICBCaWdEZWNpbWFsIHJlc3VsdDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20oMC4wLCAtMSk7CisgICAgICAgICAgICBlcnJsbigiYmlnRGVjaW1hbEZyb20oMC4wLCAtMSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5iaWdEZWNpbWFsRnJvbSgwLjAsIHNjYWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiYmlnRGVjaW1hbEZyb20oMC4wLCAiICsgc2NhbGUgKyAiKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5iaWdEZWNpbWFsRnJvbSgwLjAsIFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEUpOworICAgICAgICAgICAgZXJybG4oImZyb20oMC4wLCBNQVhfU0NBTEUpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZXRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEJpZ0RlY2ltYWxGcm9tTG9uZygpCisgICAgeworICAgICAgICBCaWdEZWNpbWFsIHJlc3VsdDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20oMEwsIC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJiaWdEZWNpbWFsRnJvbSgwTCwgLTEpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20oMEwsIHNjYWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiYmlnRGVjaW1hbEZyb20oMEwsICIgKyBzY2FsZSArICIpIHRocmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tKDBMLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFKTsKKyAgICAgICAgICAgIGVycmxuKCJmcm9tKDBMLCBNQVhfU0NBTEUpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZXRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUuYmlnRGVjaW1hbEZyb20gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEZyb21Mb25nKCkKKyAgICB7CisgICAgICAgIGxvbmcgcmVzdWx0OworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKDBMLCAtMSk7CisgICAgICAgICAgICBlcnJsbigiZnJvbSgwTCwgLTEpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmZyb20gZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICBsb25nIGZyb21NaW4gPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5GUk9NX01JTl9WQUxVRSk7CisgICAgICAgICAgICBsb25nIGZyb21NYXggPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5GUk9NX01BWF9WQUxVRSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmZyb20oMEwsIHNjYWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZnJvbSgwTCwgIiArIHNjYWxlICsgIikgdGhyZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKGZyb21NaW4sIHNjYWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiZnJvbShmcm9tTWluLCAiICsgc2NhbGUgKyAiKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZnJvbU1pbiA+IExvbmcuTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmZyb20oZnJvbU1pbiAtIDEsIHNjYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImZyb20oZnJvbU1pbiAtIDEsICIgKyBzY2FsZSArICIpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmZyb20oZnJvbU1heCwgc2NhbGUpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJmcm9tKGZyb21NYXgsICIgKyBzY2FsZSArICIpIHRocmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZnJvbU1heCA8IExvbmcuTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmZyb20oZnJvbU1heCArIDEsIHNjYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImZyb20oZnJvbU1heCArIDEsICIgKyBzY2FsZSArICIpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmZyb20oMEwsIFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEUpOworICAgICAgICAgICAgZXJybG4oImZyb20oMEwsIE1BWF9TQ0FMRSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1ldEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRUaW1lU2NhbGUoKQorICAgIHsKKyAgICAgICAgbG9uZyB2YWx1ZTsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB2YWx1ZSA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZSgtMSwgMCk7CisgICAgICAgICAgICBlcnJsbigiZ2V0VGltZVNjYWxlVmFsdWUoLTEsIDApIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgdmFsdWUgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoMCwgLTEpOworICAgICAgICAgICAgZXJybG4oImdldFRpbWVTY2FsZVZhbHVlKDAsIC0xKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZSBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NhbGUgPSAwOyBzY2FsZSA8IFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEU7IHNjYWxlICs9IDEpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIDApOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXRUaW1lU2NhbGVWYWx1ZSgiICsgc2NhbGUgKyAiLCAwKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB2YWx1ZSA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJnZXRUaW1lU2NhbGVWYWx1ZShNQVhfU0NBTEUsIDApIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB2YWx1ZSA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZSgwLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFX1ZBTFVFKTsKKyAgICAgICAgICAgIGVycmxuKCJnZXRUaW1lU2NhbGVWYWx1ZSgwLCBNQVhfU0NBTEVfVkFMVUUpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFRvQmlnRGVjaW1hbEZyb21CaWdEZWNpbWFsKCkKKyAgICB7CisgICAgICAgIEJpZ0RlY2ltYWwgYmlnWmVybyA9IG5ldyBCaWdEZWNpbWFsKDApOworICAgICAgICBCaWdEZWNpbWFsIHJlc3VsdDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9CaWdEZWNpbWFsKGJpZ1plcm8sIC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJ0b0JpZ0RlY2ltYWwoYmlnWmVybywgLTEpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NhbGUgPSAwOyBzY2FsZSA8IFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEU7IHNjYWxlICs9IDEpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbChiaWdaZXJvLCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInRvQmlnRGVjaW1hbChiaWdaZXJvLCAiICsgc2NhbGUgKyAiKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9CaWdEZWNpbWFsKGJpZ1plcm8sIFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEUpOworICAgICAgICAgICAgZXJybG4oInRvQmlnRGVjaW1hbChiaWdaZXJvLCBNQVhfU0NBTEUpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZXRFeGNlcHRpb24uIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUudG9CaWdEZWNpbWFsIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFRvQmlnRGVjaW1hbFRydW5jKCkKKyAgICB7CisgICAgICAgIEJpZ0RlY2ltYWwgYmlnWmVybyA9IG5ldyBCaWdEZWNpbWFsKDApOworICAgICAgICBCaWdEZWNpbWFsIHJlc3VsdDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9CaWdEZWNpbWFsVHJ1bmMoYmlnWmVybywgLTEpOworICAgICAgICAgICAgZXJybG4oInRvQmlnRGVjaW1hbFRydW5jKGJpZ1plcm8sIC0xKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWxUcnVuYyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NhbGUgPSAwOyBzY2FsZSA8IFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEU7IHNjYWxlICs9IDEpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbFRydW5jKGJpZ1plcm8sIHNjYWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigidG9CaWdEZWNpbWFsVHJ1bmMoYmlnWmVybywgIiArIHNjYWxlICsgIikgdGhyZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbFRydW5jKGJpZ1plcm8sIFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEUpOworICAgICAgICAgICAgZXJybG4oInRvQmlnRGVjaW1hbFRydW5jKGJpZ1plcm8sIE1BWF9TQ0FMRSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1ldEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWxUcnVuYyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9CaWdEZWNpbWFsRnJvbUxvbmcoKQorICAgIHsKKyAgICAgICAgQmlnRGVjaW1hbCByZXN1bHQ7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbCgwTCwgLTEpOworICAgICAgICAgICAgZXJybG4oInRvQmlnRGVjaW1hbCgwTCwgLTEpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NhbGUgPSAwOyBzY2FsZSA8IFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEU7IHNjYWxlICs9IDEpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbCgwTCwgc2NhbGUpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ0b0JpZ0RlY2ltYWwoMEwsICIgKyBzY2FsZSArICIpIHRocmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWwoMEwsIFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEUpOworICAgICAgICAgICAgZXJybG4oInRvQmlnRGVjaW1hbCgwTCwgTUFYX1NDQUxFKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWV0RXhjZXB0aW9uLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICBsb2dsbigiUEFTUzogVW5pdmVyc2FsVGltZVNjYWxlLnRvQmlnRGVjaW1hbCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9Mb25nKCkKKyAgICB7CisgICAgICAgIGxvbmcgcmVzdWx0OworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcoMEwsIC0xKTsKKyAgICAgICAgICAgIGVycmxuKCJ0b0xvbmcoMEwsIC0xKSBkaWQgbm90IHRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjYWxlID0gMDsgc2NhbGUgPCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFOyBzY2FsZSArPSAxKSB7CisgICAgICAgICAgICBsb25nIHRvTWluID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuVE9fTUlOX1ZBTFVFKTsKKyAgICAgICAgICAgIGxvbmcgdG9NYXggPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5UT19NQVhfVkFMVUUpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcoMEwsIHNjYWxlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigidG9Mb25nKDBMLCAiICsgc2NhbGUgKyAiKSB0aHJldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyh0b01pbiwgc2NhbGUpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ0b0xvbmcodG9NaW4sICIgKyBzY2FsZSArICIpIHRocmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0b01pbiA+IExvbmcuTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyh0b01pbiAtIDEsIHNjYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInRvTG9uZyh0b01pbiAtIDEsICIgKyBzY2FsZSArICIpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKHRvTWF4LCBzY2FsZSk7CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInRvTG9uZyh0b01heCwgIiArIHNjYWxlICsgIikgdGhyZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0b01heCA8IExvbmcuTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyh0b01heCArIDEsIHNjYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInRvTG9uZyh0b01heCArIDEsICIgKyBzY2FsZSArICIpIGRpZCBub3QgdGhyb3cgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKDBMLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1NDQUxFKTsKKyAgICAgICAgICAgIGVycmxuKCJ0b0xvbmcoMEwsIE1BWF9TQ0FMRSkgZGlkIG5vdCB0aHJvdyBJbGxlZ2FsQXJndW1ldEV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZSkgeworICAgICAgICAgICAgbG9nbG4oIlBBU1M6IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIG5ldyBUaW1lU2NhbGVBUElUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lc2NhbGUvVGltZVNjYWxlRGF0YVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lc2NhbGUvVGltZVNjYWxlRGF0YVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTM0NWRlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWVzY2FsZS9UaW1lU2NhbGVEYXRhVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudGltZXNjYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Vbml2ZXJzYWxUaW1lU2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKKy8qKgorICogQGF1dGhvciBPd25lcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIFRpbWVTY2FsZURhdGFUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgY29udHN0cnVjdG9yLgorICAgICAqLworICAgIHB1YmxpYyBUaW1lU2NhbGVEYXRhVGVzdCgpCisgICAgeworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcm91bmRUcmlwVGVzdChsb25nIHZhbHVlLCBpbnQgc2NhbGUpCisgICAgeworICAgICAgICBsb25nIHJ0ID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyhVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbSh2YWx1ZSwgc2NhbGUpLCBzY2FsZSk7CisgICAgICAgIAorICAgICAgICBpZiAocnQgIT0gdmFsdWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJSb3VuZC10cmlwIGVycm9yOiB0aW1lIHNjYWxlID0gIiArIHNjYWxlICsgIiwgdmFsdWUgPSAiICsgdmFsdWUgKyAiLCByb3VuZC10cmlwID0gIiArIHJ0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgdG9MaW1pdFRlc3QobG9uZyB0b0xpbWl0LCBsb25nIGZyb21MaW1pdCwgaW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgbG9uZyByZXN1bHQgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKHRvTGltaXQsIHNjYWxlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQgIT0gZnJvbUxpbWl0KSB7CisgICAgICAgICAgICBlcnJsbigidG9MaW1pdCBmYWlsdXJlOiBzY2FsZSA9ICIgKyBzY2FsZSArICIsIHRvTGltaXQgPSAiICsgdG9MaW1pdCArCisgICAgICAgICAgICAgICAgICAiLCB0b0xvbmcodG9MaW1pdCwgc2NhbGUpID0gIiArIHJlc3VsdCArICIsIGZyb21MaW1pdCA9ICIgKyBmcm9tTGltaXQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBlcG9jaE9mZnNldFRlc3QobG9uZyBlcG9jaE9mZnNldCwgbG9uZyB1bml0cywgaW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgbG9uZyB1bml2ZXJzYWxFcG9jaCA9IGVwb2NoT2Zmc2V0ICogdW5pdHM7CisgICAgICAgIGxvbmcgbG9jYWwgPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKHVuaXZlcnNhbEVwb2NoLCBzY2FsZSk7CisgICAgICAgIAorICAgICAgICBpZiAobG9jYWwgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oInRvTG9uZyhlcG9jaE9mZnNldCwgc2NhbGUpOiBzY2FsZSA9ICIgKyBzY2FsZSArICIsIGVwb2NoT2Zmc2V0ID0gIiArIHVuaXZlcnNhbEVwb2NoICsKKyAgICAgICAgICAgICAgICAgICIsIHJlc3VsdCA9ICIgKyBsb2NhbCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxvY2FsID0gVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZygwLCBzY2FsZSk7CisgICAgICAgIAorICAgICAgICBpZiAobG9jYWwgIT0gLWVwb2NoT2Zmc2V0KSB7CisgICAgICAgICAgICBlcnJsbigidG9Mb25nKDAsIHNjYWxlKTogc2NhbGUgPSAiICsgc2NhbGUgKyAiLCByZXN1bHQgPSAiICsgbG9jYWwpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBsb25nIHVuaXZlcnNhbCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKC1lcG9jaE9mZnNldCwgc2NhbGUpOworICAgICAgICAKKyAgICAgICAgaWYgKHVuaXZlcnNhbCAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiZnJvbSgtZXBvY2hPZmZlc3QsIHNjYWxlKTogc2NhbGUgPSAiICsgc2NhbGUgKyAiLCBlcG9jaE9mZnNldCA9ICIgKyBlcG9jaE9mZnNldCArCisgICAgICAgICAgICAgICAgICAiLCByZXN1bHQgPSAiICsgdW5pdmVyc2FsKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdW5pdmVyc2FsID0gVW5pdmVyc2FsVGltZVNjYWxlLmZyb20oMCwgc2NhbGUpOworICAgICAgICAKKyAgICAgICAgaWYgKHVuaXZlcnNhbCAhPSB1bml2ZXJzYWxFcG9jaCkgeworICAgICAgICAgICAgZXJybG4oImZyb20oMCwgc2NhbGUpOiBzY2FsZSA9ICIgKyBzY2FsZSArICIsIHJlc3VsdCA9ICIgKyB1bml2ZXJzYWwpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RFcG9jaE9mZnNldHMoKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgc2NhbGUgPSAwOyBzY2FsZSA8IFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEU7IHNjYWxlICs9IDEpIHsKKyAgICAgICAgICAgIGxvbmcgdW5pdHMgICAgICAgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5VTklUU19WQUxVRSk7CisgICAgICAgICAgICBsb25nIGVwb2NoT2Zmc2V0ID0gVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRVBPQ0hfT0ZGU0VUX1ZBTFVFKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZXBvY2hPZmZzZXRUZXN0KGVwb2NoT2Zmc2V0LCB1bml0cywgc2NhbGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEZyb21MaW1pdHMoKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgc2NhbGUgPSAwOyBzY2FsZSA8IFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEU7IHNjYWxlICs9IDEpIHsKKyAgICAgICAgICAgIGxvbmcgZnJvbU1pbiA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLkZST01fTUlOX1ZBTFVFKTsKKyAgICAgICAgICAgIGxvbmcgZnJvbU1heCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLkZST01fTUFYX1ZBTFVFKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcm91bmRUcmlwVGVzdChmcm9tTWluLCBzY2FsZSk7CisgICAgICAgICAgICByb3VuZFRyaXBUZXN0KGZyb21NYXgsIHNjYWxlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9MaW1pdHMoKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgc2NhbGUgPSAwOyBzY2FsZSA8IFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEU7IHNjYWxlICs9IDEpIHsKKyAgICAgICAgICAgIGxvbmcgZnJvbU1pbiA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLkZST01fTUlOX1ZBTFVFKTsKKyAgICAgICAgICAgIGxvbmcgZnJvbU1heCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLkZST01fTUFYX1ZBTFVFKTsKKyAgICAgICAgICAgIGxvbmcgdG9NaW4gICA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlRPX01JTl9WQUxVRSk7CisgICAgICAgICAgICBsb25nIHRvTWF4ICAgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5UT19NQVhfVkFMVUUpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0b0xpbWl0VGVzdCh0b01pbiwgZnJvbU1pbiwgc2NhbGUpOworICAgICAgICAgICAgdG9MaW1pdFRlc3QodG9NYXgsIGZyb21NYXgsIHNjYWxlKTsKKyAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIG5ldyBUaW1lU2NhbGVEYXRhVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1RpbWVTY2FsZU1vbmtleVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lc2NhbGUvVGltZVNjYWxlTW9ua2V5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjMjkxNWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXNjYWxlL1RpbWVTY2FsZU1vbmtleVRlc3QuamF2YQpAQCAtMCwwICsxLDEwNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRpbWVzY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVW5pdmVyc2FsVGltZVNjYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbDsKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworCisvKioKKyAqIFRoaXMgY2xhc3MgdGVzdHMgdGhlIFVuaXZlcnNhbFRpbWVTY2FsZSBjbGFzcyBieQorICogZ2VuZXJhdGluZyByYW1kb24gdmFsdWVzIGluIHJhbmdlIGFuZCBtYWtpbmcgc3VyZQorICogdGhhdCB0aGV5IHJvdW5kLXRyaXAgY29ycmVjdGx5LgorICovCitwdWJsaWMgY2xhc3MgVGltZVNjYWxlTW9ua2V5VGVzdCBleHRlbmRzIFRlc3RGbXdrCit7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGltZVNjYWxlTW9ua2V5VGVzdCgpCisgICAgeworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9PUF9DT1VOVCA9IDEwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQmlnRGVjaW1hbCBsb25nTWF4ID0gbmV3IEJpZ0RlY2ltYWwoTG9uZy5NQVhfVkFMVUUpOworICAgIAorICAgIHByaXZhdGUgUmFuZG9tIHJhbiA9IG51bGw7CisgICAgCisgICAgcHJpdmF0ZSBsb25nIHJhbkludDsKKyAgICBwcml2YXRlIGxvbmcgcmFuTWluOworICAgIHByaXZhdGUgbG9uZyByYW5NYXg7CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGluaXRSYW5kb20obG9uZyBtaW4sIGxvbmcgbWF4KQorICAgIHsKKyAgICAgICAgQmlnRGVjaW1hbCBpbnRlcnZhbCA9IG5ldyBCaWdEZWNpbWFsKG1heCkuc3VidHJhY3QobmV3IEJpZ0RlY2ltYWwobWluKSk7CisgICAgICAgIAorICAgICAgICByYW5NaW4gPSBtaW47CisgICAgICAgIHJhbk1heCA9IG1heDsKKyAgICAgICAgcmFuSW50ID0gMDsKKyAgICAgICAgCisgICAgICAgIGlmIChyYW4gPT0gbnVsbCkgeworICAgICAgICAgICAgcmFuID0gY3JlYXRlUmFuZG9tKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChpbnRlcnZhbC5jb21wYXJlVG8obG9uZ01heCkgPCAwKSB7CisgICAgICAgICAgICByYW5JbnQgPSBpbnRlcnZhbC5sb25nVmFsdWUoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIGxvbmcgcmFuZG9tSW5SYW5nZSgpCisgICAgeworICAgICAgICBsb25nIHZhbHVlOworICAgICAgICAKKyAgICAgICAgaWYgKHJhbkludCAhPSAwKSB7CisgICAgICAgICAgICB2YWx1ZSA9IHJhbi5uZXh0TG9uZygpICUgcmFuSW50OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodmFsdWUgPCAwKSB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSAtdmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHZhbHVlICs9IHJhbk1pbjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHJhbi5uZXh0TG9uZygpOworICAgICAgICAgICAgfSB3aGlsZSAodmFsdWUgPCByYW5NaW4gfHwgdmFsdWUgPiByYW5NYXgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RSb3VuZFRyaXAoKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgc2NhbGUgPSAwOyBzY2FsZSA8IFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEU7IHNjYWxlICs9IDEpIHsKKyAgICAgICAgICAgIGxvbmcgZnJvbU1pbiA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLkZST01fTUlOX1ZBTFVFKTsKKyAgICAgICAgICAgIGxvbmcgZnJvbU1heCA9IFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLkZST01fTUFYX1ZBTFVFKTsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW5pdFJhbmRvbShmcm9tTWluLCBmcm9tTWF4KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKGkgPCBMT09QX0NPVU5UKSB7CisgICAgICAgICAgICAgICAgbG9uZyB2YWx1ZSA9IHJhbmRvbUluUmFuZ2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbG9uZyBydCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcoVW5pdmVyc2FsVGltZVNjYWxlLmZyb20odmFsdWUsIHNjYWxlKSwgc2NhbGUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChydCAhPSB2YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUm91bmQtdHJpcCBlcnJvcjogdGltZSBzY2FsZSA9ICIgKyBzY2FsZSArICIsIHZhbHVlID0gIiArIHZhbHVlICsgIiwgcm91bmQtdHJpcCA9ICIgKyBydCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGkgKz0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBuZXcgVGltZVNjYWxlTW9ua2V5VGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OThmZDdkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDI5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50aW1lem9uZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgb3RoZXIgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJUaW1lWm9uZVRlc3QiLAorICAgICAgICAgICAgIlRpbWVab25lUmVncmVzc2lvbiIsCisgICAgICAgICAgICAiVGltZVpvbmVCb3VuZGFyeVRlc3QiLAorLy8gICAgICAgICAgICAgIlRpbWVab25lQWxpYXNUZXN0IiwKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgPSAiVGltZVpvbmUiOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lQWxpYXNUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVBbGlhc1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWIyOTRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lQWxpYXNUZXN0LmphdmEKQEAgLTAsMCArMSw0MjIgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRpbWV6b25lOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKKworaW1wb3J0IGphdmEudGV4dC5EYXRlRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5OdW1iZXJGb3JtYXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWwuQmFnRm9ybWF0dGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CisKKworLyoqCisgKiBDbGFzcyBmb3IgdGVzdGluZyBUaW1lWm9uZXMgZm9yIGNvbnNpc3RlbmN5CisgKiBAYXV0aG9yIERhdmlzCisgKiAKKyAqLworcHVibGljIGNsYXNzIFRpbWVab25lQWxpYXNUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGltZVpvbmVBbGlhc1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoZXJlIGFyZSB0d28gdGhpbmdzIHRvIGNoZWNrIGFsaWFzZXMgZm9yOjxicj4KKyAgICAgKiAxLiB0aGUgYWxpYXMgc2V0IG11c3QgYmUgdW5pZm9ybTogaWYgYSBpc0FsaWFzIGIsIHRoZW4gYWxpYXNTZXQoYSkgPT0gYWxpYXNTZXQoYik8YnI+CisgICAgICogMi4gYWxsIGFsaWFzZXMgbXVzdCBoYXZlIHRoZSBzYW1lIG9mZnNldHMKKyAgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFsaWFzZXMoKSB7CisgICAgICAgIGlmIChza2lwSWZCZWZvcmVJQ1UoMywwKSkgcmV0dXJuOworICAgICAgICBab25lLlNlY29uZHMgc2Vjb25kcyA9IG5ldyBab25lLlNlY29uZHMoKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IFpvbmUuZ2V0Wm9uZVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTsgKSB7CisgICAgICAgICAgICBab25lIHpvbmUgPSAoWm9uZSlpdC5uZXh0KCk7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSB6b25lLmlkOworICAgICAgICAgICAgaWYgKGlkLmluZGV4T2YoJy8nKSA8IDAgJiYgKGlkLmVuZHNXaXRoKCJTVCIpIHx8IGlkLmVuZHNXaXRoKCJEVCIpKSkgeworICAgICAgICAgICAgICAgIGlmICh6b25lLm1pblJlY2VudE9mZnNldCAhPSB6b25lLm1heFJlY2VudE9mZnNldCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJTdGFuZGFyZCBvciBEYXlsaWdodCBUaW1lIG5vdCBjb25zdGFudDogIiArIGlkIAorICAgICAgICAgICAgICAgICAgICAgICAgKyAiOiAiICsgWm9uZS5mb3JtYXRIb3Vycyh6b25lLm1pblJlY2VudE9mZnNldCkKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiAhPSAiICsgWm9uZS5mb3JtYXRIb3Vycyh6b25lLm1heFJlY2VudE9mZnNldCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFNldCBhbGlhc2VzID0gem9uZS5nZXRQdXJwb3J0ZWRBbGlhc2VzKCk7CisgICAgICAgICAgICBTZXQgYWxpYXNlc1NldCA9IG5ldyBUcmVlU2V0KGFsaWFzZXMpOworICAgICAgICAgICAgYWxpYXNlc1NldC5hZGQoaWQpOyAvLyBmb3IgY29tcGFyaXNvbgorICAgICAgICAgICAgSXRlcmF0b3IgYWxpYXNJdGVyYXRvciA9IGFsaWFzZXMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChhbGlhc0l0ZXJhdG9yLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBvdGhlcklkID0gKFN0cmluZylhbGlhc0l0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgICAgICAgICBab25lIG90aGVyWm9uZSA9IFpvbmUubWFrZShvdGhlcklkKTsKKyAgICAgICAgICAgICAgICBTZXQgb3RoZXJBbGlhc2VzID0gb3RoZXJab25lLmdldFB1cnBvcnRlZEFsaWFzZXMoKTsKKyAgICAgICAgICAgICAgICBvdGhlckFsaWFzZXMuYWRkKG90aGVySWQpOyAvLyBmb3IgY29tcGFyaXNvbgorICAgICAgICAgICAgICAgIGlmICghYWxpYXNlc1NldC5lcXVhbHMob3RoZXJBbGlhc2VzKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJBbGlhc2VzIFVuc3ltbWV0cmljOiAiCisgICAgICAgICAgICAgICAgICAgICAgICArIGlkICsgIiA9PiAiICsgWm9uZS5iZi5qb2luKGFsaWFzZXNTZXQpCisgICAgICAgICAgICAgICAgICAgICAgICArICI7ICIgCisgICAgICAgICAgICAgICAgICAgICAgICArIG90aGVySWQgKyAiID0+ICIgKyBab25lLmJmLmpvaW4ob3RoZXJBbGlhc2VzKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh6b25lLmZpbmRPZmZzZXRPcmRlcmluZyhvdGhlclpvbmUsIHNlY29uZHMpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkFsaWFzZXMgZGlmZmVyOiAiICsgaWQgKyAiLCAiICsgb3RoZXJJZAorICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBkaWZmZXIgYXQgIiArIHNlY29uZHMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBXZSBjaGVjayB0byBzZWUgdGhhdCBldmVyeSB0aW1lem9uZSB0aGF0IGlzIG5vdCBhbiBhbGlhcyBpcyBhY3R1YWxseSBkaWZmZXJlbnQhCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERpZmZlcmVuY2VzKCkgeworICAgICAgICBpZiAoc2tpcElmQmVmb3JlSUNVKDMsMCkpIHJldHVybjsKKyAgICAgICAgWm9uZSBsYXN0ID0gbnVsbDsKKyAgICAgICAgWm9uZS5TZWNvbmRzIGRpZmZEYXRlID0gbmV3IFpvbmUuU2Vjb25kcygpOyAgICAgICAgCisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBab25lLmdldFpvbmVTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBab25lIHRlc3Rab25lID0gKFpvbmUpaXQubmV4dCgpOworICAgICAgICAgICAgaWYgKGxhc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIFN0cmluZyBjb21tb24gPSB0ZXN0Wm9uZSArICJcdHZzICIgKyBsYXN0ICsgIjpcdCI7CisgICAgICAgICAgICAgICAgaW50IGRpZmYgPSB0ZXN0Wm9uZS5maW5kT2Zmc2V0T3JkZXJpbmcobGFzdCwgZGlmZkRhdGUpOworICAgICAgICAgICAgICAgIGlmIChkaWZmICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIlx0IiArIGNvbW1vbiArICJkaWZmZXJlbmNlIGF0OiAiICsgZGlmZkRhdGUgCisgICAgICAgICAgICAgICAgICAgICAgICArICIsICIgKyBab25lLmZvcm1hdEhvdXJzKGRpZmYpICsgImhyIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0ZXN0Wm9uZS5pc1JlYWxBbGlhcyhsYXN0KSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiXHQiICsgY29tbW9uICsgImFsaWFzLCBubyBkaWZmZXJlbmNlIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oY29tbW9uICsgIk5PVCBBTElBUyBCVVQgTk8gRElGRkVSRU5DRSEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYXN0ID0gdGVzdFpvbmU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVXRpbGl0eSBmb3IgcHJpbnRpbmcgb3V0IHpvbmVzIHRvIGJlIHRyYW5zbGF0ZWQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIFRlc3RHZW5lcmF0ZVpvbmVzKCkgeworICAgICAgICBpbnQgY291bnQgPSAxOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gWm9uZS5nZXRVbmlxdWVab25lU2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgWm9uZSB6b25lID0gKFpvbmUpaXQubmV4dCgpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHpvbmUudG9TdHJpbmcoY291bnQrKykpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKiBVdGlsaXR5OyBvdWdodCB0byBiZSBzb21lcGxhY2UgY29tbW9uCisgICAgICovCisgICAgLyoKKyAgICBzdGF0aWMgU3RyaW5nIGpvaW4oQ29sbGVjdGlvbiBjLCBTdHJpbmcgc2VwYXJhdG9yKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJvb2xlYW4gaXNGaXJzdCA9IHRydWU7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTsgKSB7CisgICAgICAgICAgICBpZiAoIWlzRmlyc3QpIHJlc3VsdC5hcHBlbmQoc2VwYXJhdG9yKTsKKyAgICAgICAgICAgIGVsc2UgaXNGaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpdC5uZXh0KCkudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKyAgICAqLworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgZ3V0cyBpcyBpbiB0aGlzIHN1YmNsYXNzLiBJdCBzdWNrcyBpbiBhbGwgdGhlIGRhdGEgZnJvbSB0aGUgem9uZXMsCisgICAgICogYW5kIGFuYWx5c2VzIGl0LiBJdCBjb25zdHJ1Y3RzIHNvbWUgbWFwcGluZ3MgZm9yIHRoZSB1bmlxdWUgaWRzLAorICAgICAqIGV0Yy48YnI+CisgICAgICogVGhlIG1haW4gdHJpY2t5IGJpdCBpcyB0aGF0IGZvciBwZXJmb3JtYW5jZSBpdCBwcmUtYW5hbHlzZXMgYWxsIHpvbmVzCisgICAgICogZm9yIGluZmxlY3Rpb25zIHBvaW50czsgdGhlIHBvaW50cyBpbiB0aW1lIHdoZXJlIHRoZSBvZmZzZXQgY2hhbmdlcy4KKyAgICAgKiBUaGUgem9uZXMgY2FuIHRoZW4gYmUgc29ydGVkIGJ5IHRob3NlIHBvaW50cywgd2hpY2ggYWxsb3dzIHVzIHRvCisgICAgICogYXZvaWQgZXhwZW5zaXZlIGNvbXBhcmlzb25zLgorICAgICAqIEBhdXRob3IgRGF2aXMKKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgWm9uZSBpbXBsZW1lbnRzIENvbXBhcmFibGUgeworICAgICAgICAvLyBjbGFzcyBmaWVsZHMKKyAgICAgICAgc3RhdGljIHByaXZhdGUgZmluYWwgQmFnRm9ybWF0dGVyIGJmID0gbmV3IEJhZ0Zvcm1hdHRlcigpLnNldFNlcGFyYXRvcigiLCAiKTsKKyAgICAgICAgc3RhdGljIHByaXZhdGUgZmluYWwgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORywgTG9jYWxlLlVTKTsKKyAgICAgICAgc3RhdGljIHByaXZhdGUgZmluYWwgTnVtYmVyRm9ybWF0IG5mID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgSE9VUiA9IDEwMDAqNjAqNjA7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGRvdWJsZSBESE9VUiA9IEhPVVI7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgREFZID0gMjQqSE9VUjsKKyAgICAgICAgc3RhdGljIHByaXZhdGUgZmluYWwgbG9uZyBHUk9TU19QRVJJT0QgPSAzMCpEQVk7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgRVBTSUxPTiA9IEhPVVIvNDsKKyAgICAgICAgc3RhdGljIHByaXZhdGUgZmluYWwgaW50IGN1cnJlbnRZZWFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCkuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIGVuZERhdGUgPSBnZXREYXRlKChjdXJyZW50WWVhcisxKSwwLDEpLmdldFRpbWUoKTsKKyAgICAgICAgc3RhdGljIHByaXZhdGUgZmluYWwgbG9uZyBlbmREYXRlMiA9IGdldERhdGUoKGN1cnJlbnRZZWFyKzEpLDYsMSkuZ2V0VGltZSgpOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIHJlY2VudExpbWl0ID0gZ2V0RGF0ZSgoY3VycmVudFllYXItMSksNiwxKS5nZXRUaW1lKCk7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgc3RhcnREYXRlID0gZ2V0RGF0ZSgxOTA1LDAsMSkuZ2V0VGltZSgpOworICAgICAgICAKKyAgICAgICAgc3RhdGljIHByaXZhdGUgZmluYWwgTWFwIGlkVG9ab25lID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgc3RhdGljIHByaXZhdGUgZmluYWwgU2V0IHpvbmVTZXQgPSBuZXcgVHJlZVNldCgpOworICAgICAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBTZXQgdW5pcXVlWm9uZVNldCA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE1hcCBpZFRvUmVhbEFsaWFzZXMgPSBuZXcgSGFzaE1hcCgpOworCisgICAgICAgIC8vIGJ1aWxkIGV2ZXJ5dGhpbmcgb25jZS4KKyAgICAgICAgc3RhdGljIHsKKyAgICAgICAgICAgIFN0cmluZyBbXSBmb28gPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZm9vLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgem9uZVNldC5hZGQoWm9uZS5tYWtlKGZvb1tpXSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgWm9uZSBsYXN0ID0gbnVsbDsKKyAgICAgICAgICAgIFpvbmUuU2Vjb25kcyBkaWZmRGF0ZSA9IG5ldyBab25lLlNlY29uZHMoKTsKKyAgICAgICAgICAgIFN0cmluZyBsYXN0VW5pcXVlID0gIiI7ICAgICAgCisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gWm9uZS5nZXRab25lU2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgIFpvbmUgdGVzdFpvbmUgPSAoWm9uZSlpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGxhc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB1bmlxdWVab25lU2V0LmFkZCh0ZXN0Wm9uZSk7CisgICAgICAgICAgICAgICAgICAgIGxhc3RVbmlxdWUgPSB0ZXN0Wm9uZS5pZDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbnQgZGlmZiA9IHRlc3Rab25lLmZpbmRPZmZzZXRPcmRlcmluZyhsYXN0LCBkaWZmRGF0ZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChkaWZmICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuaXF1ZVpvbmVTZXQuYWRkKHRlc3Rab25lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RVbmlxdWUgPSB0ZXN0Wm9uZS5pZDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFNldCBhbGlhc2VzID0gKFNldClpZFRvUmVhbEFsaWFzZXMuZ2V0KGxhc3RVbmlxdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFsaWFzZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZXMgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkVG9SZWFsQWxpYXNlcy5wdXQobGFzdFVuaXF1ZSwgYWxpYXNlcyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhbGlhc2VzLmFkZCh0ZXN0Wm9uZS5pZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbGFzdCA9IHRlc3Rab25lOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzdGF0aWMgcHVibGljIFNldCBnZXRab25lU2V0KCkgeworICAgICAgICAgICAgcmV0dXJuIHpvbmVTZXQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgU2V0IGdldFVuaXF1ZVpvbmVTZXQoKSB7CisgICAgICAgICAgICByZXR1cm4gdW5pcXVlWm9uZVNldDsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBwdWJsaWMgWm9uZSBtYWtlKFN0cmluZyBpZCkgeworICAgICAgICAgICAgWm9uZSByZXN1bHQgPSAoWm9uZSlpZFRvWm9uZS5nZXQoaWQpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFpvbmUoaWQpOworICAgICAgICAgICAgaWRUb1pvbmUucHV0KGlkLCByZXN1bHQpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgZm9ybWF0SG91cnMoaW50IGhvdXJzKSB7CisgICAgICAgICAgICByZXR1cm4gbmYuZm9ybWF0KGhvdXJzL0RIT1VSKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gdXRpbGl0eSBjbGFzcyBmb3IgZGF0ZSByZXR1cm4sIGJlY2F1c2UgRGF0ZSBpcyBjbHVua3kuCisgICAgICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgU2Vjb25kcyB7CisgICAgICAgICAgICBwdWJsaWMgbG9uZyBzZWNvbmRzID0gTG9uZy5NSU5fVkFMVUU7CisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgICAgIGlmIChzZWNvbmRzID09IExvbmcuTUlOX1ZBTFVFKSByZXR1cm4gIm4vYSI7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRmLmZvcm1hdChuZXcgRGF0ZShzZWNvbmRzKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGluc3RhbmNlIGZpZWxkcworICAgICAgICAvLyB3ZSBrZWVwIG1pbi9tYXggb2Zmc2V0cyBub3Qgb25seSBvdmVyIGFsbCB0aW1lICh0aGF0IHdlIGNhcmUgYWJvdXQpCisgICAgICAgIC8vIGJ1dCBhbHNvIHNlcGFyYXRlIG9uZXMgZm9yIHJlY2VudCB5ZWFycy4KKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgaWQ7CisgICAgICAgIHByaXZhdGUgVGltZVpvbmUgem9uZTsKKyAgICAgICAgLy8gY29tcHV0ZWQgYmVsb3cKKyAgICAgICAgcHJpdmF0ZSBpbnQgbWluT2Zmc2V0OworICAgICAgICBwcml2YXRlIGludCBtYXhPZmZzZXQ7CisgICAgICAgIHByaXZhdGUgaW50IG1pblJlY2VudE9mZnNldDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbWF4UmVjZW50T2Zmc2V0OworICAgICAgICBwcml2YXRlIExpc3QgaW5mbGVjdGlvblBvaW50cyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgcHJpdmF0ZSBTZXQgcHVycG9ydGVkQWxpYXNlcyA9IG5ldyBUcmVlU2V0KCk7CisgICAgCisgICAgICAgIHByaXZhdGUgWm9uZShTdHJpbmcgaWQpIHsgLy8gZm9yIGludGVyYWwgdXNlIG9ubHk7IHVzZSBtYWtlIGluc3RlYWQhCisgICAgICAgICAgICB6b25lID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoaWQpOworICAgICAgICAgICAgdGhpcy5pZCA9IGlkOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBnZXQgYWxpYXNlcworICAgICAgICAgICAgaW50IGVxdWl2Q291bnQgPSBUaW1lWm9uZS5jb3VudEVxdWl2YWxlbnRJRHMoaWQpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBlcXVpdkNvdW50OyArK2opIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYWx0SUQgPSBUaW1lWm9uZS5nZXRFcXVpdmFsZW50SUQoaWQsIGopOworICAgICAgICAgICAgICAgIGlmIChhbHRJRC5lcXVhbHMoaWQpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBwdXJwb3J0ZWRBbGlhc2VzLmFkZChhbHRJRCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGZpbmQgaW5mbGV4aW9uIHBvaW50czsgdGltZXMgd2hlcmUgdGhlIG9mZnNldCBjaGFuZ2VkCisgICAgICAgICAgICBsb25nIGxhc3REYXRlID0gZW5kRGF0ZTsKKyAgICAgICAgICAgIGlmICh6b25lLmdldE9mZnNldChsYXN0RGF0ZSkgPCB6b25lLmdldE9mZnNldChlbmREYXRlMikpIGxhc3REYXRlID0gZW5kRGF0ZTI7CisgICAgICAgICAgICBtYXhSZWNlbnRPZmZzZXQgPSBtaW5SZWNlbnRPZmZzZXQgPSBtaW5PZmZzZXQgPSBtYXhPZmZzZXQgPSB6b25lLmdldE9mZnNldChsYXN0RGF0ZSk7CisKKyAgICAgICAgICAgIGluZmxlY3Rpb25Qb2ludHMuYWRkKG5ldyBMb25nKGxhc3REYXRlKSk7CisgICAgICAgICAgICBpbnQgbGFzdE9mZnNldCA9IHpvbmUuZ2V0T2Zmc2V0KGVuZERhdGUpOworICAgICAgICAgICAgbG9uZyBsYXN0SW5mbGVjdGlvbiA9IGVuZERhdGU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHdlIGRvIGEgZ3Jvc3Mgc2VhcmNoLCB0aGVuIG5hcnJvdyBpbiB3aGVuIHdlIGZpbmQgYSBkaWZmZXJlbmNlIGZyb20gdGhlIGxhc3Qgb25lCisgICAgICAgICAgICBmb3IgKGxvbmcgY3VycmVudERhdGUgPSBlbmREYXRlOyBjdXJyZW50RGF0ZSA+PSBzdGFydERhdGU7IGN1cnJlbnREYXRlIC09IEdST1NTX1BFUklPRCkgeworICAgICAgICAgICAgICAgIGludCBjdXJyZW50T2Zmc2V0ID0gem9uZS5nZXRPZmZzZXQoY3VycmVudERhdGUpOworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50T2Zmc2V0ICE9IGxhc3RPZmZzZXQpIHsgLy8gQmluYXJ5IFNlYXJjaAorICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudE9mZnNldCA8IG1pbk9mZnNldCkgbWluT2Zmc2V0ID0gY3VycmVudE9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRPZmZzZXQgPiBtYXhPZmZzZXQpIG1heE9mZnNldCA9IGN1cnJlbnRPZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0SW5mbGVjdGlvbiA+PSByZWNlbnRMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRPZmZzZXQgPCBtaW5SZWNlbnRPZmZzZXQpIG1pblJlY2VudE9mZnNldCA9IGN1cnJlbnRPZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudE9mZnNldCA+IG1heFJlY2VudE9mZnNldCkgbWF4UmVjZW50T2Zmc2V0ID0gY3VycmVudE9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsb25nIGxvdyA9IGN1cnJlbnREYXRlOworICAgICAgICAgICAgICAgICAgICBsb25nIGhpZ2ggPSBsYXN0RGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGxvdyAtIGhpZ2ggPiBFUFNJTE9OKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1pZCA9IChoaWdoICsgbG93KS8yOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pZE9mZnNldCA9IHpvbmUuZ2V0T2Zmc2V0KG1pZCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWlkT2Zmc2V0ID09IGxvdykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvdyA9IG1pZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlnaCA9IG1pZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbmZsZWN0aW9uUG9pbnRzLmFkZChuZXcgTG9uZyhsb3cpKTsKKyAgICAgICAgICAgICAgICAgICAgbGFzdEluZmxlY3Rpb24gPSBsb3c7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxhc3RPZmZzZXQgPSBjdXJyZW50T2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5mbGVjdGlvblBvaW50cy5hZGQobmV3IExvbmcoc3RhcnREYXRlKSk7IC8vIGp1c3QgdG8gY2FwIGl0IG9mZiBmb3IgY29tcGFyaXNvbnMuCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHdlIGFzc3VtZSB0aGF0IHBsYWNlcyB3aWxsIG5vdCBjb252ZXJ0IHRpbWUgem9uZXMgdGhlbiBiYWNrIHdpdGhpbiBvbmUgZGF5CisgICAgICAgIC8vIHNvIHdlIGdvIGZpcnN0IGJ5IGhhbGYKKyAgICAgICAgcHVibGljIGludCBmaW5kT2Zmc2V0T3JkZXJpbmcoWm9uZSBvdGhlciwgU2Vjb25kcyBkYXRlRGlmZkZvdW5kKSB7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiLWRpZmY6ICIgKyBpZCArICJcdCIgKyBvdGhlci5pZCk7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgIGxvbmcgc2Vjb25kcyA9IDA7CisgICAgICAgICAgICBpbnQgbWluID0gaW5mbGVjdGlvblBvaW50cy5zaXplKCk7CisgICAgICAgICAgICBpZiAob3RoZXIuaW5mbGVjdGlvblBvaW50cy5zaXplKCkgPCBtaW4pIG1pbiA9IG90aGVyLmluZmxlY3Rpb25Qb2ludHMuc2l6ZSgpOworICAgICAgICAgICAgbWFpbjoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1pbjsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvbmcgbXlJUCA9ICgoTG9uZylpbmZsZWN0aW9uUG9pbnRzLmdldChpKSkubG9uZ1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGxvbmcgb3RoZXJJUCA9ICgoTG9uZylvdGhlci5pbmZsZWN0aW9uUG9pbnRzLmdldChpKSkubG9uZ1ZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChteUlQID4gb3RoZXJJUCkgeyAvLyB0YWtlIGxvd2VzdCwgZm9yIHRyYW5zaXRpdml0eSAoc2VtaSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdGVtcCA9IG15SVA7CisgICAgICAgICAgICAgICAgICAgICAgICBteUlQID0gb3RoZXJJUDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG90aGVySVAgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHpvbmUuZ2V0T2Zmc2V0KG15SVApIC0gb3RoZXIuem9uZS5nZXRPZmZzZXQobXlJUCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kcyA9IG15SVA7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBpZiAobXlJUCA9PSBvdGhlcklQKSBjb250aW51ZTsgLy8gdGVzdCBvdGhlciBpZiBkaWZmZXJlbnQKKyAgICAgICAgICAgICAgICAgICAgbXlJUCA9IG90aGVySVA7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHpvbmUuZ2V0T2Zmc2V0KG15SVApIC0gb3RoZXIuem9uZS5nZXRPZmZzZXQobXlJUCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kcyA9IG15SVA7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBpZiB0aGV5IGFyZSBlcXVhbCBzbyBmYXIsIHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIHJlc3QKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAwOworICAgICAgICAgICAgICAgIHNlY29uZHMgPSBMb25nLk1JTl9WQUxVRTsKKyAgICAgICAgICAgICAgICBicmVhayBtYWluOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIitkaWZmOiAiICsgKHJlc3VsdC9IT1VSKSArICJcdCIgKyBkYXRlRGlmZkZvdW5kKTsKKyAgICAgICAgICAgIGlmIChkYXRlRGlmZkZvdW5kICE9IG51bGwpIGRhdGVEaWZmRm91bmQuc2Vjb25kcyA9IHNlY29uZHM7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBpbnRlcm5hbCBidWZmZXIgdG8gYXZvaWQgY3JlYXRpb24gYWxsIHRoZSB0aW1lLgorICAgICAgICBwcml2YXRlIFNlY29uZHMgZGlmZkRhdGVSZXR1cm4gPSBuZXcgU2Vjb25kcygpOworICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIFpvbmUgb3RoZXIgPSAoWm9uZSlvOworICAgICAgICAgICAgLy8gZmlyc3Qgb3JkZXIgYnkgbWF4IGFuZCBtaW4gb2Zmc2V0cworICAgICAgICAgICAgLy8gbWluIHdpbGwgdXN1YWxseSBjb3JyZXNwb25kIHRvIHN0YW5kYXJkIHRpbWUsIG1heCB0byBkYXlsaWdodAorICAgICAgICAgICAgLy8gdW5sZXNzIHRoZXJlIGhhdmUgYmVlbiBoaXN0b3JpY2FsIHNoaWZ0cworICAgICAgICAgICAgaWYgKG1pblJlY2VudE9mZnNldCA8IG90aGVyLm1pblJlY2VudE9mZnNldCkgcmV0dXJuIC0xOworICAgICAgICAgICAgaWYgKG1pblJlY2VudE9mZnNldCA+IG90aGVyLm1pblJlY2VudE9mZnNldCkgcmV0dXJuIDE7CisgICAgICAgICAgICBpZiAobWF4UmVjZW50T2Zmc2V0IDwgb3RoZXIubWF4UmVjZW50T2Zmc2V0KSByZXR1cm4gLTE7CisgICAgICAgICAgICBpZiAobWF4UmVjZW50T2Zmc2V0ID4gb3RoZXIubWF4UmVjZW50T2Zmc2V0KSByZXR1cm4gMTsKKyAgICAgICAgICAgIC8vIG5vdyBjaGVjayB0aGF0IGFsbCBvZmZzZXRzIGFyZSB0aGUgc2FtZSBvdmVyIGhpc3RvcnkKKyAgICAgICAgICAgIGludCBkaWZmRGF0ZSA9IGZpbmRPZmZzZXRPcmRlcmluZyhvdGhlciwgZGlmZkRhdGVSZXR1cm4pOworICAgICAgICAgICAgaWYgKGRpZmZEYXRlICE9IDApIHJldHVybiBkaWZmRGF0ZTsKKyAgICAgICAgICAgIC8vIGNob29zZSBsb25nZXIgbmFtZSBmaXJzdCEhCisgICAgICAgICAgICBpZiAoaWQubGVuZ3RoKCkgIT0gb3RoZXIuaWQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaWQubGVuZ3RoKCkgPCBvdGhlci5pZC5sZW5ndGgoKSkgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGlkLmNvbXBhcmVUbyhvdGhlci5pZCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTZXQgZ2V0UHVycG9ydGVkQWxpYXNlcygpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgVHJlZVNldChwdXJwb3J0ZWRBbGlhc2VzKTsgLy8gY2xvbmUgZm9yIHNhZmV0eQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1B1cnBvcnRlZEFsaWFzKFN0cmluZyBpZCkgeworICAgICAgICAgICAgcmV0dXJuIHB1cnBvcnRlZEFsaWFzZXMuY29udGFpbnMoaWQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1JlYWxBbGlhcyhab25lIHopIHsKKyAgICAgICAgICAgIHJldHVybiBwdXJwb3J0ZWRBbGlhc2VzLmNvbnRhaW5zKHouaWQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFB1cnBvcnRlZEFsaWFzZXNBc1N0cmluZygpIHsKKyAgICAgICAgICAgIFNldCBzID0gZ2V0UHVycG9ydGVkQWxpYXNlcygpOworICAgICAgICAgICAgaWYgKHMuc2l6ZSgpID09IDApIHJldHVybiAiIjsKKyAgICAgICAgICAgIHJldHVybiAiICIgKyBiZi5qb2luKHMpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFJlYWxBbGlhc2VzQXNTdHJpbmcoKSB7CisgICAgICAgICAgICBTZXQgcyA9IChTZXQpaWRUb1JlYWxBbGlhc2VzLmdldChpZCk7CisgICAgICAgICAgICBpZiAocyA9PSBudWxsKSByZXR1cm4gIiI7CisgICAgICAgICAgICByZXR1cm4gIiAqIiArIGJmLmpvaW4ocyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0Q2l0eSgpIHsKKyAgICAgICAgICAgIGludCBwb3MgPSBpZC5sYXN0SW5kZXhPZigoJy8nKSk7CisgICAgICAgICAgICBTdHJpbmcgY2l0eSA9IGlkLnN1YnN0cmluZyhwb3MrMSk7CisgICAgICAgICAgICByZXR1cm4gY2l0eS5yZXBsYWNlKCdfJywnICcpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiB0b1N0cmluZygtMSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBXaGVyZSBjb3VudCA+IDAsIHJldHVybnMgc3RyaW5nIHRoYXQgaXMgc2V0IHVwIGZvciB0cmFuc2xhdGlvbgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhpbnQgY291bnQpIHsKKyAgICAgICAgICAgIFN0cmluZyBjaXR5ID0gZ2V0Q2l0eSgpOworICAgICAgICAgICAgU3RyaW5nIGhvdXJzID0gZm9ybWF0SG91cnMobWluUmVjZW50T2Zmc2V0KQorICAgICAgICAgICAgICAgICsgKG1pblJlY2VudE9mZnNldCAhPSBtYXhSZWNlbnRPZmZzZXQgCisgICAgICAgICAgICAgICAgICAgID8gIiwiICsgZm9ybWF0SG91cnMobWF4UmVjZW50T2Zmc2V0KSAKKyAgICAgICAgICAgICAgICAgICAgOiAiIik7CisgICAgICAgICAgICBpZiAoY291bnQgPCAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGlkICsgZ2V0UHVycG9ydGVkQWxpYXNlc0FzU3RyaW5nKCkgKyAiICgiICsgaG91cnMgKyAiKSI7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgLy8gZm9yIGdldHRpbmcgdGVtcGxhdGUgZm9yIHRyYW5zbGF0aW9uCisgICAgICAgICAgICByZXR1cm4gIlx0e1x0XCIiICsgaWQgKyAiXCJcdC8vIFsiICsgY291bnQgKyAiXSAiICsgaG91cnMgCisgICAgICAgICAgICAgICAgKyBnZXRSZWFsQWxpYXNlc0FzU3RyaW5nKCkgKyAiXHJcbiIKKyAgICAgICAgICAgICAgICArICJcdFx0Ly8gdHJhbnNsYXRlIHRoZSBmb2xsb3dpbmchIVxyXG4iCisgICAgICAgICAgICAgICAgKyAobWluUmVjZW50T2Zmc2V0ICE9IG1heFJlY2VudE9mZnNldAorICAgICAgICAgICAgICAgICAgICA/ICJcdFx0XCIiICsgY2l0eSArICIgU3RhbmRhcmQgVGltZVwiXHJcbiIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHRcdFwiIiArIGNpdHkgKyAiLVNUXCJcclxuIgorICAgICAgICAgICAgICAgICAgICArICJcdFx0XCIiICsgY2l0eSArICIgRGF5bGlnaHQgVGltZVwiXHJcbiIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHRcdFwiIiArIGNpdHkgKyAiLURUXCJcclxuIgorICAgICAgICAgICAgICAgICAgICA6ICJcdFx0XCJcIlxyXG4iCisgICAgICAgICAgICAgICAgICAgICsgIlx0XHRcIlwiXHJcbiIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHRcdFwiXCJcclxuIgorICAgICAgICAgICAgICAgICAgICArICJcdFx0XCJcIlxyXG4iKQorICAgICAgICAgICAgICAgICsgIlx0XHRcIiIgKyBjaXR5ICsgIiBUaW1lXCJcclxuIgorICAgICAgICAgICAgICAgICsgIlx0XHRcIiIgKyBjaXR5ICsgIi1UXCJcclxuIgorICAgICAgICAgICAgICAgICsgIlx0XHRcIiIgKyBjaXR5ICsgIlwiXHJcbiIKKyAgICAgICAgICAgICAgICArICJcdH0iOworICAgICAgICB9CisgICAgfQorfQorCisvLyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lQm91bmRhcnlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVCb3VuZGFyeVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NWE1YTNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lQm91bmRhcnlUZXN0LmphdmEKQEAgLTAsMCArMSw4NDQgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50aW1lem9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKKy8qKgorICogQSB0ZXN0IHdoaWNoIGRpc2NvdmVycyB0aGUgYm91bmRhcmllcyBvZiBEU1QgcHJvZ3JhbW1hdGljYWxseSBhbmQgdmVyaWZpZXMKKyAqIHRoYXQgdGhleSBhcmUgY29ycmVjdC4KKyAqLworcHVibGljIGNsYXNzIFRpbWVab25lQm91bmRhcnlUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sKKyAgICBzdGF0aWMgZmluYWwgaW50IE9ORV9TRUNPTkQgPSAxMDAwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgT05FX01JTlVURSA9IDYwKk9ORV9TRUNPTkQ7CisgICAgc3RhdGljIGZpbmFsIGludCBPTkVfSE9VUiA9IDYwKk9ORV9NSU5VVEU7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgT05FX0RBWSA9IDI0Kk9ORV9IT1VSOworICAgIHN0YXRpYyBmaW5hbCBsb25nIE9ORV9ZRUFSID0gKGxvbmcpKDM2NS4yNSAqIE9ORV9EQVkpOworICAgIHN0YXRpYyBmaW5hbCBsb25nIFNJWF9NT05USFMgPSBPTkVfWUVBUiAvIDI7CisKKyAgICBzdGF0aWMgZmluYWwgaW50IE1PTlRIX0xFTkdUSFtdID0gezMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxfTsKKworICAgIC8vIFRoZXNlIHZhbHVlcyBhcmUgZW1waXJpY2FsbHkgZGV0ZXJtaW5lZCB0byBiZSBjb3JyZWN0CisgICAgc3RhdGljIGZpbmFsIGxvbmcgUFNUXzE5OTdfQkVHICA9IDg2MDMyMDgwMDAwMEw7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgUFNUXzE5OTdfRU5EICA9IDg3Nzg1NjQwMDAwMEw7CisKKyAgICAvLyBNaW5pbXVtIGludGVydmFsIGZvciBiaW5hcnkgc2VhcmNoZXMgaW4gbXM7IHNob3VsZCBiZSBubyBsYXJnZXIKKyAgICAvLyB0aGFuIDEwMDAuCisgICAgc3RhdGljIGZpbmFsIGxvbmcgSU5URVJWQUwgPSAxMDsgLy8gTWlsbGlzZWNvbmRzCisKKyAgICAvLyBbM0phbjAxIExpdV0gVXBkYXRlZCBmb3IgMjAwMGYgZGF0YQorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQVVTVFJBTElBID0gIkF1c3RyYWxpYS9BZGVsYWlkZSI7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgQVVTVFJBTElBXzE5OTdfQkVHID0gODc3Nzk3MDAwMDAwTDsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBBVVNUUkFMSUFfMTk5N19FTkQgPSA4NTk2NTMwMDAwMDBMOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGltZVpvbmVCb3VuZGFyeVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGF0ZS50b1N0cmluZygpLnN1YnN0cmluZygpIEJvdW5kYXJ5IFRlc3QKKyAgICAgKiBMb29rIGZvciBhIERTVCBjaGFuZ2VvdmVyIHRvIG9jY3VyIHdpdGhpbiA2IG1vbnRocyBvZiB0aGUgZ2l2ZW4gRGF0ZS4KKyAgICAgKiBUaGUgaW5pdGlhbCBEYXRlLnRvU3RyaW5nKCkgc2hvdWxkIHlpZWxkIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlCisgICAgICogc3RhcnRNb2RlIGFzIGEgU1VCU1RSSU5HLiAgVGhlIGJvdW5kYXJ5IHdpbGwgYmUgdGVzdGVkIHRvIGJlCisgICAgICogYXQgdGhlIGV4cGVjdGVkQm91bmRhcnkgdmFsdWUuCisgICAgICovCisgICAgdm9pZCBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nRGF0ZShEYXRlIGQsIFN0cmluZyBzdGFydE1vZGUsIGxvbmcgZXhwZWN0ZWRCb3VuZGFyeSkKKyAgICB7CisgICAgICAgIC8vIEdpdmVuIGEgZGF0ZSB3aXRoIGEgeWVhciBzdGFydCwgZmluZCB0aGUgRGF5bGlnaHQgb25zZXQKKyAgICAgICAgLy8gYW5kIGVuZC4gIFRoZSBnaXZlbiBkYXRlIHNob3VsZCBiZSAxLzEveHggaW4gc29tZSB5ZWFyLgorCisgICAgICAgIGlmIChkLnRvU3RyaW5nKCkuaW5kZXhPZihzdGFydE1vZGUpID09IC0xKQorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiRXJyb3I6ICIgKyBzdGFydE1vZGUgKyAiIG5vdCBwcmVzZW50IGluICIgKyBkKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFVzZSBhIGJpbmFyeSBzZWFyY2gsIGFzc3VtaW5nIHRoYXQgd2UgaGF2ZSBhIFN0YW5kYXJkCisgICAgICAgIC8vIHRpbWUgYXQgdGhlIG1pZHBvaW50LgorICAgICAgICBsb25nIG1pbiA9IGQuZ2V0VGltZSgpOworICAgICAgICBsb25nIG1heCA9IG1pbiArIFNJWF9NT05USFM7CisKKyAgICAgICAgd2hpbGUgKChtYXggLSBtaW4pID4gIElOVEVSVkFMKQorICAgICAgICB7CisgICAgICAgICAgICBsb25nIG1pZCA9IChtaW4gKyBtYXgpID4+IDE7CisgICAgICAgICAgICBTdHJpbmcgcyA9IG5ldyBEYXRlKG1pZCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIC8vIGxvZ2xuKHMpOworICAgICAgICAgICAgaWYgKHMuaW5kZXhPZihzdGFydE1vZGUpICE9IC0xKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1pbiA9IG1pZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtYXggPSBtaWQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigiRGF0ZSBCZWZvcmU6ICIgKyBzaG93RGF0ZShtaW4pKTsKKyAgICAgICAgbG9nbG4oIkRhdGUgQWZ0ZXI6ICAiICsgc2hvd0RhdGUobWF4KSk7CisgICAgICAgIGxvbmcgbWluZGVsdGEgPSBleHBlY3RlZEJvdW5kYXJ5IC0gbWluOworICAgICAgICAvLyBub3QgdXNlZCBsb25nIG1heGRlbHRhID0gbWF4IC0gZXhwZWN0ZWRCb3VuZGFyeTsKKyAgICAgICAgaWYgKG1pbmRlbHRhID49IDAgJiYgbWluZGVsdGEgPD0gSU5URVJWQUwgJiYKKyAgICAgICAgICAgIG1pbmRlbHRhID49IDAgJiYgbWluZGVsdGEgPD0gSU5URVJWQUwpCisgICAgICAgICAgICBsb2dsbigiUEFTUzogRXhwZWN0ZWQgYm91bmRhcnkgYXQgIiArIGV4cGVjdGVkQm91bmRhcnkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgYm91bmRhcnkgYXQgIiArIGV4cGVjdGVkQm91bmRhcnkpOworICAgIH0KKworICAgIC8vIFRoaXMgdGVzdCBjYW5ub3QgYmUgY29tcGlsZWQgdW50aWwgdGhlIGluRGF5bGlnaHRUaW1lKCkgbWV0aG9kIG9mIEdyZWdvcmlhbkNhbGVuZGFyCisgICAgLy8gYmVjb21lcyBwdWJsaWMuCisgICAgLy8gICAgc3RhdGljIHZvaWQgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ0NhbGVuZGFyKERhdGUgZCwgYm9vbGVhbiBzdGFydHNJbkRTVCkKKyAgICAvLyAgICB7CisgICAgLy8gIC8vIEdpdmVuIGEgZGF0ZSB3aXRoIGEgeWVhciBzdGFydCwgZmluZCB0aGUgRGF5bGlnaHQgb25zZXQKKyAgICAvLyAgLy8gYW5kIGVuZC4gIFRoZSBnaXZlbiBkYXRlIHNob3VsZCBiZSAxLzEveHggaW4gc29tZSB5ZWFyLgorICAgIC8vCisgICAgLy8gIEdyZWdvcmlhbkNhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgIC8vICBjYWwuc2V0VGltZShkKTsKKyAgICAvLyAgaWYgKGNhbC5pbkRheWxpZ2h0VGltZSgpICE9IHN0YXJ0c0luRFNUKQorICAgIC8vICB7CisgICAgLy8gICAgICBsb2dsbigiRXJyb3I6IGluRGF5bGlnaHRUaW1lKCIgKyBkICsgIikgIT0gIiArIHN0YXJ0c0luRFNUKTsKKyAgICAvLyAgfQorICAgIC8vCisgICAgLy8gIC8vIFVzZSBhIGJpbmFyeSBzZWFyY2gsIGFzc3VtaW5nIHRoYXQgd2UgaGF2ZSBhIFN0YW5kYXJkCisgICAgLy8gIC8vIHRpbWUgYXQgdGhlIG1pZHBvaW50LgorICAgIC8vICBsb25nIG1pbiA9IGQuZ2V0VGltZSgpOworICAgIC8vICBsb25nIG1heCA9IG1pbiArIChsb25nKSgzNjUuMjUgLyAyICogMjQqNjAqNjAqMTAwMCk7CisgICAgLy8KKyAgICAvLyAgd2hpbGUgKChtYXggLSBtaW4pID4gIElOVEVSVkFMKQorICAgIC8vICB7CisgICAgLy8gICAgICBsb25nIG1pZCA9IChtaW4gKyBtYXgpID4+IDE7CisgICAgLy8gICAgICBjYWwuc2V0VGltZShuZXcgRGF0ZShtaWQpKTsKKyAgICAvLyAgICAgIGlmIChjYWwuaW5EYXlsaWdodFRpbWUoKSA9PSBzdGFydHNJbkRTVCkKKyAgICAvLyAgICAgIHsKKyAgICAvLyAgICAgIG1pbiA9IG1pZDsKKyAgICAvLyAgICAgIH0KKyAgICAvLyAgICAgIGVsc2UKKyAgICAvLyAgICAgIHsKKyAgICAvLyAgICAgIG1heCA9IG1pZDsKKyAgICAvLyAgICAgIH0KKyAgICAvLyAgfQorICAgIC8vCisgICAgLy8gIGxvZ2xuKCJDYWxlbmRhciBCZWZvcmU6ICIgKyBzaG93RGF0ZShtaW4pKTsKKyAgICAvLyAgbG9nbG4oIkNhbGVuZGFyIEFmdGVyOiAgIiArIHNob3dEYXRlKG1heCkpOworICAgIC8vICAgIH0KKworICAgIHZvaWQgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ1RpbWVab25lKERhdGUgZCwgYm9vbGVhbiBzdGFydHNJbkRTVCwgbG9uZyBleHBlY3RlZEJvdW5kYXJ5KQorICAgIHsKKyAgICAgICAgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ1RpbWVab25lKGQsIHN0YXJ0c0luRFNULCBleHBlY3RlZEJvdW5kYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGltZVpvbmUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICB2b2lkIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdUaW1lWm9uZShEYXRlIGQsIGJvb2xlYW4gc3RhcnRzSW5EU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBleHBlY3RlZEJvdW5kYXJ5LCBUaW1lWm9uZSB0eikKKyAgICB7CisgICAgICAgIC8vIEdpdmVuIGEgZGF0ZSB3aXRoIGEgeWVhciBzdGFydCwgZmluZCB0aGUgRGF5bGlnaHQgb25zZXQKKyAgICAgICAgLy8gYW5kIGVuZC4gIFRoZSBnaXZlbiBkYXRlIHNob3VsZCBiZSAxLzEveHggaW4gc29tZSB5ZWFyLgorCisgICAgICAgIC8vIFVzZSBhIGJpbmFyeSBzZWFyY2gsIGFzc3VtaW5nIHRoYXQgd2UgaGF2ZSBhIFN0YW5kYXJkCisgICAgICAgIC8vIHRpbWUgYXQgdGhlIG1pZHBvaW50LgorICAgICAgICBsb25nIG1pbiA9IGQuZ2V0VGltZSgpOworICAgICAgICBsb25nIG1heCA9IG1pbiArIFNJWF9NT05USFM7CisKKyAgICAgICAgaWYgKHR6LmluRGF5bGlnaHRUaW1lKGQpICE9IHN0YXJ0c0luRFNUKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHR6LmdldElEKCkgKyAiIGluRGF5bGlnaHRUaW1lKCIgKworICAgICAgICAgICAgICAgICAgZCArICIpICE9ICIgKyBzdGFydHNJbkRTVCk7CisgICAgICAgICAgICBzdGFydHNJbkRTVCA9ICFzdGFydHNJbkRTVDsgLy8gRmxpcCBvdmVyOyBmaW5kIHRoZSBhcHBhcmVudCB2YWx1ZQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHR6LmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKG1heCkpID09IHN0YXJ0c0luRFNUKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHR6LmdldElEKCkgKyAiIGluRGF5bGlnaHRUaW1lKCIgKworICAgICAgICAgICAgICAgICAgKG5ldyBEYXRlKG1heCkpICsgIikgIT0gIiArICghc3RhcnRzSW5EU1QpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlICgobWF4IC0gbWluKSA+ICBJTlRFUlZBTCkKKyAgICAgICAgeworICAgICAgICAgICAgbG9uZyBtaWQgPSAobWluICsgbWF4KSA+PiAxOworICAgICAgICAgICAgYm9vbGVhbiBpc0luID0gdHouaW5EYXlsaWdodFRpbWUobmV3IERhdGUobWlkKSk7CisgICAgICAgICAgICBpZiAoaXNJbiA9PSBzdGFydHNJbkRTVCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtaW4gPSBtaWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWF4ID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9nbG4odHouZ2V0SUQoKSArICIgQmVmb3JlOiAiICsgc2hvd0RhdGUobWluLCB0eikpOworICAgICAgICBsb2dsbih0ei5nZXRJRCgpICsgIiBBZnRlcjogICIgKyBzaG93RGF0ZShtYXgsIHR6KSk7CisKKyAgICAgICAgbG9uZyBtaW5kZWx0YSA9IGV4cGVjdGVkQm91bmRhcnkgLSBtaW47CisgICAgICAgIC8vIG5vdCB1c2VkIGxvbmcgbWF4ZGVsdGEgPSBtYXggLSBleHBlY3RlZEJvdW5kYXJ5OyAKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkxPTkcpOworICAgICAgICBmbXQuc2V0VGltZVpvbmUodHopOworICAgICAgICBpZiAobWluZGVsdGEgPj0gMCAmJiBtaW5kZWx0YSA8PSBJTlRFUlZBTCAmJgorICAgICAgICAgICAgbWluZGVsdGEgPj0gMCAmJiBtaW5kZWx0YSA8PSBJTlRFUlZBTCkKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBFeHBlY3RlZCBib3VuZGFyeSBhdCAiICsgZXhwZWN0ZWRCb3VuZGFyeSArICIgPSAiICsgZm10LmZvcm1hdChuZXcgRGF0ZShleHBlY3RlZEJvdW5kYXJ5KSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgYm91bmRhcnkgYXQgIiArIGV4cGVjdGVkQm91bmRhcnkgKyAiID0gIiArIGZtdC5mb3JtYXQobmV3IERhdGUoZXhwZWN0ZWRCb3VuZGFyeSkpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgc2hvd0RhdGUobG9uZyBsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNob3dEYXRlKG5ldyBEYXRlKGwpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgc2hvd0RhdGUoRGF0ZSBkKQorICAgIHsKKyAgICAgICAgamF2YS51dGlsLkNhbGVuZGFyIGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBjYWwuc2V0VGltZShkKTsKKyAgICAgICAgcmV0dXJuICIiICsgKGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgLSAxOTAwKSArICIvIiArIAorICAgICAgICAgICAgICAgc2hvd05OKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpICsgMSkgKyAiLyIgKyAKKyAgICAgICAgICAgICAgIHNob3dOTihjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkpICsgIiAiICsgCisgICAgICAgICAgICAgICBzaG93Tk4oY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkpICsgIjoiIAorICAgICAgICAgICAgICAgKyBzaG93Tk4oY2FsLmdldChDYWxlbmRhci5NSU5VVEUpKSArICIgXCIiICsgZCArICJcIiA9ICIgKworICAgICAgICAgICAgICAgZC5nZXRUaW1lKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHNob3dEYXRlKGxvbmcgbCwgVGltZVpvbmUgeikKKyAgICB7CisgICAgICAgIHJldHVybiBzaG93RGF0ZShuZXcgRGF0ZShsKSwgeik7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHNob3dEYXRlKERhdGUgZCwgVGltZVpvbmUgem9uZSkKKyAgICB7CisgICAgICAgIERhdGVGb3JtYXQgZm10ID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORywgRGF0ZUZvcm1hdC5MT05HKTsKKyAgICAgICAgZm10LnNldFRpbWVab25lKHpvbmUpOworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5zZXRUaW1lKGQpOworICAgICAgICByZXR1cm4gIiIgKyAoY2FsLmdldChDYWxlbmRhci5ZRUFSKSAtIDE5MDApICsgIi8iICsgCisgICAgICAgICAgICAgICBzaG93Tk4oY2FsLmdldChDYWxlbmRhci5NT05USCkgKyAxKSArICIvIiArIAorICAgICAgICAgICAgICAgc2hvd05OKGNhbC5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSkgKyAiICIgKyAKKyAgICAgICAgICAgICAgIHNob3dOTihjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSkgKyAiOiIgKyAKKyAgICAgICAgICAgICAgIHNob3dOTihjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkpICsgIiBcIiIgKyBkICsgIlwiID0gIiArCisgICAgICAgICAgICAgICBmbXQuZm9ybWF0KGQpICsgIiA9ICIgKyBkLmdldFRpbWUoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgc2hvd05OKGludCBuKQorICAgIHsKKyAgICAgICAgcmV0dXJuICgobiA8IDEwKSA/ICIwIiA6ICIiKSArIG47CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBkYXRlLCBhIFRpbWVab25lLCBhbmQgZXhwZWN0ZWQgdmFsdWVzIGZvciBpbkRheWxpZ2h0VGltZSwKKyAgICAgKiB1c2VEYXlsaWdodFRpbWUsIHpvbmUgYW5kIERTVCBvZmZzZXQsIHZlcmlmeSB0aGF0IHRoaXMgaXMgdGhlIGNhc2UuCisgICAgICovCisgICAgdm9pZCB2ZXJpZnlEU1QoU3RyaW5nIHRhZywgQ2FsZW5kYXIgY2FsLCBUaW1lWm9uZSB0aW1lX3pvbmUsCisgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBleHBVc2VEYXlsaWdodFRpbWUsIGJvb2xlYW4gZXhwSW5EYXlsaWdodFRpbWUsCisgICAgICAgICAgICAgICAgICAgaW50IGV4cFJhd09mZnNldCwgaW50IGV4cE9mZnNldCkKKyAgICB7CisgICAgICAgIERhdGUgZCA9IGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgbG9nbG4oIi0tICIgKyB0YWcgKyAiOiAiICsgZCArCisgICAgICAgICAgICAgICIgaW4gem9uZSAiICsgdGltZV96b25lLmdldElEKCkgKyAiICgiICsKKyAgICAgICAgICAgICAgZC5nZXRUaW1lKCkvMzYwMDAwMC4wICsgIikiKTsKKworICAgICAgICBpZiAodGltZV96b25lLmluRGF5bGlnaHRUaW1lKGQpID09IGV4cEluRGF5bGlnaHRUaW1lKQorICAgICAgICAgICAgbG9nbG4oIlBBU1M6IGluRGF5bGlnaHRUaW1lID0gIiArIHRpbWVfem9uZS5pbkRheWxpZ2h0VGltZShkKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBpbkRheWxpZ2h0VGltZSA9ICIgKyB0aW1lX3pvbmUuaW5EYXlsaWdodFRpbWUoZCkpOworCisgICAgICAgIGlmICh0aW1lX3pvbmUudXNlRGF5bGlnaHRUaW1lKCkgPT0gZXhwVXNlRGF5bGlnaHRUaW1lKQorICAgICAgICAgICAgbG9nbG4oIlBBU1M6IHVzZURheWxpZ2h0VGltZSA9ICIgKyB0aW1lX3pvbmUudXNlRGF5bGlnaHRUaW1lKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogdXNlRGF5bGlnaHRUaW1lID0gIiArIHRpbWVfem9uZS51c2VEYXlsaWdodFRpbWUoKSk7CisKKyAgICAgICAgaWYgKHRpbWVfem9uZS5nZXRSYXdPZmZzZXQoKSA9PSBleHBSYXdPZmZzZXQpCisgICAgICAgICAgICBsb2dsbigiUEFTUzogZ2V0UmF3T2Zmc2V0KCkgPSAiICsgZXhwUmF3T2Zmc2V0Lyhkb3VibGUpT05FX0hPVVIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0UmF3T2Zmc2V0KCkgPSAiICsgdGltZV96b25lLmdldFJhd09mZnNldCgpLyhkb3VibGUpT05FX0hPVVIgKworICAgICAgICAgICAgICAgICAgIjsgZXhwZWN0ZWQgIiArIGV4cFJhd09mZnNldC8oZG91YmxlKU9ORV9IT1VSKTsKKworICAgICAgICAvL0dyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHRpbWVfem9uZSk7CisgICAgICAgIC8vZ2Muc2V0VGltZShkKTsKKyAgICAgICAgaW50IG9mZnNldCA9IHRpbWVfem9uZS5nZXRPZmZzZXQoY2FsLmdldChDYWxlbmRhci5FUkEpLCBjYWwuZ2V0KENhbGVuZGFyLllFQVIpLCBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgpLCBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjYWwuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSAqIDYwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkpICogNjAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5TRUNPTkQpKSAqIDEwMDAgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EKSk7CisgICAgICAgIGlmIChvZmZzZXQgPT0gZXhwT2Zmc2V0KQorICAgICAgICAgICAgbG9nbG4oIlBBU1M6IGdldE9mZnNldCgpID0gIiArIG9mZnNldC8oZG91YmxlKU9ORV9IT1VSKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiZXJhPSIgKyBjYWwuZ2V0KENhbGVuZGFyLkVSQSkgKworICAgICAgICAgICAgICAgICAgIiwgeWVhcj0iICsgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArCisgICAgICAgICAgICAgICAgICAiLCBtb250aD0iICsgY2FsLmdldChDYWxlbmRhci5NT05USCkgKworICAgICAgICAgICAgICAgICAgIiwgZG9tPSIgKyBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9NT05USCkgKworICAgICAgICAgICAgICAgICAgIiwgZG93PSIgKyBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSArCisgICAgICAgICAgICAgICAgICAiLCB0aW1lLW9mLWRheT0iICsgKCgoY2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkgKiA2MCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSU5VVEUpKSAqIDYwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKSkgKiAxMDAwICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkpIC8gMzYwMDAwMC4wICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGhvdXJzIik7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0T2Zmc2V0KCkgPSAiICsgb2Zmc2V0Lyhkb3VibGUpT05FX0hPVVIgKworICAgICAgICAgICAgICAgICAgIjsgZXhwZWN0ZWQgIiArIGV4cE9mZnNldC8oZG91YmxlKU9ORV9IT1VSKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIHRoYXQgdGhlIGdpdmVuIHllYXIvbW9udGgvZG9tL2hvdXIgbWFwcyB0byBhbmQgZnJvbSB0aGUKKyAgICAgKiBnaXZlbiBlcG9jaEhvdXJzLiAgVGhpcyB2ZXJpZmllcyB0aGUgZnVuY3Rpb25pbmcgb2YgdGhlCisgICAgICogY2FsZW5kYXIgYW5kIHRpbWUgem9uZSBpbiBjb25qdW5jdGlvbiB3aXRoIG9uZSBhbm90aGVyLAorICAgICAqIGluY2x1ZGluZyB0aGUgY2FsZW5kYXIgdGltZS0+ZmllbGRzIGFuZCBmaWVsZHMtPnRpbWUgYW5kCisgICAgICogdGhlIHRpbWUgem9uZSBnZXRPZmZzZXQgbWV0aG9kLgorICAgICAqCisgICAgICogQHBhcmFtIGVwb2NoSG91cnMgaG91cnMgYWZ0ZXIgSmFuIDEgMTk3MCAwOjAwIEdNVC4KKyAgICAgKi8KKyAgICB2b2lkIHZlcmlmeU1hcHBpbmcoQ2FsZW5kYXIgY2FsLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZG9tLCBpbnQgaG91ciwKKyAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGVwb2NoSG91cnMpIHsKKyAgICAgICAgZG91YmxlIEggPSAzNjAwMDAwLjA7CisgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICBjYWwuc2V0KHllYXIsIG1vbnRoLCBkb20sIGhvdXIsIDAsIDApOworICAgICAgICBEYXRlIGQgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICBkb3VibGUgZSA9IGQuZ2V0VGltZSgpIC8gSDsKKyAgICAgICAgRGF0ZSBlZCA9IG5ldyBEYXRlKChsb25nKShlcG9jaEhvdXJzICogSCkpOworICAgICAgICBpZiAoZSA9PSBlcG9jaEhvdXJzKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsgZG9tICsgIiAiICsgaG91ciArICI6MDAgPT4gIiArCisgICAgICAgICAgICAgICAgICBlICsgIiAoIiArIGVkICsgIikiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgeWVhciArICIvIiArIChtb250aCsxKSArICIvIiArIGRvbSArICIgIiArIGhvdXIgKyAiOjAwID0+ICIgKworICAgICAgICAgICAgICAgICAgZSArICIgKCIgKyBuZXcgRGF0ZSgobG9uZykoZSAqIEgpKSArICIpIiArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXBvY2hIb3VycyArICIgKCIgKyBlZCArICIpIik7CisgICAgICAgIH0KKyAgICAgICAgY2FsLnNldFRpbWUoZWQpOworICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5ZRUFSKSA9PSB5ZWFyICYmCisgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSA9PSBtb250aCAmJgorICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EQVRFKSA9PSBkb20gJiYKKyAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkRTX0lOX0RBWSkgPT0gaG91ciAqIDM2MDAwMDApIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGVwb2NoSG91cnMgKyAiICgiICsgZWQgKyAiKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuWUVBUikgKyAiLyIgKworICAgICAgICAgICAgICAgICAgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsgIi8iICsKKyAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgKyAiICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORFNfSU5fREFZKS9IKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgZXBvY2hIb3VycyArICIgKCIgKyBlZCArICIpID0+ICIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArICIvIiArCisgICAgICAgICAgICAgICAgICAoY2FsLmdldChDYWxlbmRhci5NT05USCkrMSkgKyAiLyIgKworICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EQVRFKSArICIgIiArCisgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLk1JTExJU0VDT05EU19JTl9EQVkpL0ggKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIHllYXIgKyAiLyIgKyAobW9udGgrMSkgKyAiLyIgKyBkb20gKworICAgICAgICAgICAgICAgICAgIiAiICsgaG91cik7CisgICAgICAgIH0KKyAgICB9CisKKy8vIE5PVEU6IEVuYWJsZSB0aGlzIGNvZGUgdG8gY2hlY2sgdGhlIGJlaGF2aW9yIG9mIHRoZSB1bmRlcmx5aW5nIEpESywKKy8vIHVzaW5nIGEgSkRLIENhbGVuZGFyIG9iamVjdC4KKy8vCisvLyAgICBpbnQgbWlsbGlzSW5EYXkoamF2YS51dGlsLkNhbGVuZGFyIGNhbCkgeworLy8gICAgICAgIHJldHVybiAoKGNhbC5nZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpICogNjAgKworLy8gICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlOVVRFKSkgKiA2MCArCisvLyAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkpICogMTAwMCArCisvLyAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpOworLy8gICAgfQorLy8KKy8vICAgIHZvaWQgdmVyaWZ5TWFwcGluZyhqYXZhLnV0aWwuQ2FsZW5kYXIgY2FsLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZG9tLCBpbnQgaG91ciwKKy8vICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZXBvY2hIb3VycykgeworLy8gICAgICAgIGNhbC5jbGVhcigpOworLy8gICAgICAgIGNhbC5zZXQoeWVhciwgbW9udGgsIGRvbSwgaG91ciwgMCwgMCk7CisvLyAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsKKy8vICAgICAgICBkb3VibGUgZSA9IGQuZ2V0VGltZSgpIC8gMzYwMDAwMC4wOworLy8gICAgICAgIERhdGUgZWQgPSBuZXcgRGF0ZSgobG9uZykoZXBvY2hIb3VycyAqIDM2MDAwMDApKTsKKy8vICAgICAgICBpZiAoZSA9PSBlcG9jaEhvdXJzKSB7CisvLyAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIHllYXIgKyAiLyIgKyAobW9udGgrMSkgKyAiLyIgKyBkb20gKyAiICIgKyBob3VyICsgIjowMCA9PiAiICsKKy8vICAgICAgICAgICAgICAgICAgZSArICIgKCIgKyBlZCArICIpIik7CisvLyAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsgZG9tICsgIiAiICsgaG91ciArICI6MDAgPT4gIiArCisvLyAgICAgICAgICAgICAgICAgIGUgKyAiICgiICsgbmV3IERhdGUoKGxvbmcpKGUgKiAzNjAwMDAwKSkgKyAiKSIgKworLy8gICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXBvY2hIb3VycyArICIgKCIgKyBlZCArICIpIik7CisvLyAgICAgICAgfQorLy8gICAgICAgIGNhbC5zZXRUaW1lKGVkKTsKKy8vICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5ZRUFSKSA9PSB5ZWFyICYmCisvLyAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpID09IG1vbnRoICYmCisvLyAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgPT0gZG9tICYmCisvLyAgICAgICAgICAgIG1pbGxpc0luRGF5KGNhbCkgPT0gaG91ciAqIDM2MDAwMDApIHsKKy8vICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgZXBvY2hIb3VycyArICIgKCIgKyBlZCArICIpID0+ICIgKworLy8gICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLllFQVIpICsgIi8iICsKKy8vICAgICAgICAgICAgICAgICAgKGNhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsgIi8iICsKKy8vICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EQVRFKSArICIgIiArCisvLyAgICAgICAgICAgICAgICAgIG1pbGxpc0luRGF5KGNhbCkvMzYwMDAwMC4wKTsKKy8vICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGVwb2NoSG91cnMgKyAiICgiICsgZWQgKyAiKSA9PiAiICsKKy8vICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5ZRUFSKSArICIvIiArCisvLyAgICAgICAgICAgICAgICAgIChjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKSsxKSArICIvIiArCisvLyAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuREFURSkgKyAiICIgKworLy8gICAgICAgICAgICAgICAgICBtaWxsaXNJbkRheShjYWwpLzM2MDAwMDAuMCArCisvLyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyB5ZWFyICsgIi8iICsgKG1vbnRoKzEpICsgIi8iICsgZG9tICsKKy8vICAgICAgICAgICAgICAgICAgIiAiICsgaG91cik7CisvLyAgICAgICAgfQorLy8gICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEJvdW5kYXJpZXMoKQorICAgIHsKKyAgICAgICAgVGltZVpvbmUgc2F2ZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKworICAgICAgICAvLyBDaGVjayBiYXNpYyBtYXBwaW5ncy4gIFdlIGhhZCBhIHByb2JsZW0gd2l0aCB0aGlzIGZvciBJQ1UKKyAgICAgICAgLy8gMi44IGFmdGVyIG1pZ3JhdGluZyB0byB1c2luZyBwYXNzLXRocm91Z2ggdGltZSB6b25lcy4gIFRoZQorICAgICAgICAvLyBwcm9ibGVtIGFwcGVhcmVkIG9ubHkgb24gSkRLIDEuMy4KKyAgICAgICAgVGltZVpvbmUgcHN0ID0gc2FmZUdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgQ2FsZW5kYXIgdGVtcGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHBzdCk7CisgICAgICAgIHZlcmlmeU1hcHBpbmcodGVtcGNhbCwgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDMsICAwLCAyMzg5MDQuMCk7CisgICAgICAgIHZlcmlmeU1hcHBpbmcodGVtcGNhbCwgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDQsICAwLCAyMzg5MjguMCk7CisgICAgICAgIHZlcmlmeU1hcHBpbmcodGVtcGNhbCwgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDUsICAwLCAyMzg5NTIuMCk7CisgICAgICAgIHZlcmlmeU1hcHBpbmcodGVtcGNhbCwgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDUsIDIzLCAyMzg5NzUuMCk7CisgICAgICAgIHZlcmlmeU1hcHBpbmcodGVtcGNhbCwgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDYsICAwLCAyMzg5NzYuMCk7CisgICAgICAgIHZlcmlmeU1hcHBpbmcodGVtcGNhbCwgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDYsICAxLCAyMzg5NzcuMCk7CisgICAgICAgIHZlcmlmeU1hcHBpbmcodGVtcGNhbCwgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDYsICAzLCAyMzg5NzguMCk7CisgICAgICAgIAorICAgICAgICBUaW1lWm9uZSB1dGMgPSBzYWZlR2V0VGltZVpvbmUoIlVUQyIpOworICAgICAgICBDYWxlbmRhciB1dGNjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSh1dGMpOworICAgICAgICB2ZXJpZnlNYXBwaW5nKHV0Y2NhbCwgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDYsIDAsIDIzODk2OC4wKTsKKworLy8gTk9URTogRW5hYmxlIHRoaXMgY29kZSB0byBjaGVjayB0aGUgYmVoYXZpb3Igb2YgdGhlIHVuZGVybHlpbmcgSkRLLAorLy8gdXNpbmcgYSBKREsgQ2FsZW5kYXIgb2JqZWN0LgorLy8KKy8vICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUgamRrcHN0ID0gamF2YS51dGlsLlRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKy8vICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgamRrY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKGpka3BzdCk7CisvLyAgICAgICAgdmVyaWZ5TWFwcGluZyhqZGtjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA1LCAgMCwgMjM4OTUyLjApOworLy8gICAgICAgIHZlcmlmeU1hcHBpbmcoamRrY2FsLCAxOTk3LCBDYWxlbmRhci5BUFJJTCwgNSwgMjMsIDIzODk3NS4wKTsKKy8vICAgICAgICB2ZXJpZnlNYXBwaW5nKGpka2NhbCwgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDYsICAwLCAyMzg5NzYuMCk7CisvLyAgICAgICAgdmVyaWZ5TWFwcGluZyhqZGtjYWwsIDE5OTcsIENhbGVuZGFyLkFQUklMLCA2LCAgMSwgMjM4OTc3LjApOworLy8gICAgICAgIHZlcmlmeU1hcHBpbmcoamRrY2FsLCAxOTk3LCBDYWxlbmRhci5BUFJJTCwgNiwgIDMsIDIzODk3OC4wKTsKKworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLkFQUklMLCA2KTsKKyAgICAgICAgRGF0ZSBkID0gdGVtcGNhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQocHN0KTsKKworICAgICAgICAgICAgLy8gRFNUIGNoYW5nZW92ZXIgZm9yIFBTVCBpcyA0LzYvMTk5NyBhdCAyIGhvdXJzIHBhc3QgbWlkbmlnaHQKKyAgICAgICAgICAgIC8vIGF0IDIzODk3OC4wIGVwb2NoIGhvdXJzLgorCisgICAgICAgICAgICAvLyBpIGlzIG1pbnV0ZXMgcGFzdCBtaWRuaWdodCBzdGFuZGFyZCB0aW1lCisgICAgICAgICAgICBmb3IgKGludCBpPS0xMjA7IGk8PTE4MDsgaSs9NjApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBpbkRTVCA9IChpID49IDEyMCk7CisgICAgICAgICAgICAgICAgdGVtcGNhbC5zZXRUaW1lSW5NaWxsaXMoZC5nZXRUaW1lKCkgKyBpKjYwKjEwMDApOworICAgICAgICAgICAgICAgIHZlcmlmeURTVCgiaG91cj0iICsgaS82MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGNhbCwgcHN0LCB0cnVlLCBpbkRTVCwgLTgqT05FX0hPVVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGluRFNUID8gLTcqT05FX0hPVVIgOiAtOCpPTkVfSE9VUik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmUpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRydWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRoaXMgb25seSB3b3JrcyBpbiBQU1QvUERUCisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhZmVHZXRUaW1lWm9uZSgiUFNUIikpOworICAgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDAsIDEpOworICAgICAgICAgICAgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ0RhdGUodGVtcGNhbC5nZXRUaW1lKCksICJQU1QiLCBQU1RfMTk5N19CRUcpOworICAgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDYsIDEpOworICAgICAgICAgICAgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ0RhdGUodGVtcGNhbC5nZXRUaW1lKCksICJQRFQiLCBQU1RfMTk5N19FTkQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gIGlmICh0cnVlKQorICAgICAgICAvLyAgeworICAgICAgICAvLyAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgIC8vICAgICAgZmluZERheWxpZ2h0Qm91bmRhcnlVc2luZ0NhbGVuZGFyKG5ldyBEYXRlKDk3LDAsMSksIGZhbHNlKTsKKyAgICAgICAgLy8gICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAvLyAgICAgIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdDYWxlbmRhcihuZXcgRGF0ZSg5Nyw2LDEpLCB0cnVlKTsKKyAgICAgICAgLy8gIH0KKworICAgICAgICBpZiAodHJ1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gU291dGhlcm4gaGVtaXNwaGVyZSB0ZXN0CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgVGltZVpvbmUgeiA9IHNhZmVHZXRUaW1lWm9uZShBVVNUUkFMSUEpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgMCwgMSk7CisgICAgICAgICAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nVGltZVpvbmUodGVtcGNhbC5nZXRUaW1lKCksIHRydWUsIEFVU1RSQUxJQV8xOTk3X0VORCwgeik7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgNiwgMSk7CisgICAgICAgICAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nVGltZVpvbmUodGVtcGNhbC5nZXRUaW1lKCksIGZhbHNlLCBBVVNUUkFMSUFfMTk5N19CRUcsIHopOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRydWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCAwLCAxKTsKKyAgICAgICAgICAgIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdUaW1lWm9uZSh0ZW1wY2FsLmdldFRpbWUoKSwgZmFsc2UsIFBTVF8xOTk3X0JFRyk7CisgICAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgNiwgMSk7CisgICAgICAgICAgICBmaW5kRGF5bGlnaHRCb3VuZGFyeVVzaW5nVGltZVpvbmUodGVtcGNhbC5nZXRUaW1lKCksIHRydWUsIFBTVF8xOTk3X0VORCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBUaGlzIGp1c3Qgc2hvd3MgdGhlIG9mZnNldCBmb3IgQXByaWwgNC03IGluIDE5OTcuICBUaGlzIGlzIHJlZHVuZGFudAorICAgICAgICAvLyB3aXRoIGEgdGVzdCBhYm92ZSwgc28gd2UgZGlzYWJsZSBpdC4KKyAgICAgICAgaWYgKGZhbHNlKQorICAgICAgICB7CisgICAgICAgICAgICBUaW1lWm9uZSB6ID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgMywgNCk7CisgICAgICAgICAgICBsb2dsbih6LmdldE9mZnNldCgxLCA5NywgMywgNCwgNiwgMCkgKyAiICIgKyB0ZW1wY2FsLmdldFRpbWUoKSk7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCAzLCA1KTsKKyAgICAgICAgICAgIGxvZ2xuKHouZ2V0T2Zmc2V0KDEsIDk3LCAzLCA1LCA3LCAwKSArICIgIiArIHRlbXBjYWwuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDMsIDYpOworICAgICAgICAgICAgbG9nbG4oei5nZXRPZmZzZXQoMSwgOTcsIDMsIDYsIDEsIDApICsgIiAiICsgdGVtcGNhbC5nZXRUaW1lKCkpOworICAgICAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgMywgNyk7CisgICAgICAgICAgICBsb2dsbih6LmdldE9mZnNldCgxLCA5NywgMywgNywgMiwgMCkgKyAiICIgKyB0ZW1wY2FsLmdldFRpbWUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENhbid0IGRvIGFueSBvZiB0aGVzZSB3aXRob3V0IGEgcHVibGljIGluRGF5bGlnaHRUaW1lIGluIEdDCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworICAgIC8vICAgIHN0YXRpYyBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKyAgICAvLworICAgIC8vICAgIHN0YXRpYyB2b2lkIF90ZXN0VXNpbmdCaW5hcnlTZWFyY2goRGF0ZSBkLCBib29sZWFuIHN0YXJ0c0luRFNUKQorICAgIC8vICAgIHsKKyAgICAvLyAgLy8gR2l2ZW4gYSBkYXRlIHdpdGggYSB5ZWFyIHN0YXJ0LCBmaW5kIHRoZSBEYXlsaWdodCBvbnNldAorICAgIC8vICAvLyBhbmQgZW5kLiAgVGhlIGdpdmVuIGRhdGUgc2hvdWxkIGJlIDEvMS94eCBpbiBzb21lIHllYXIuCisgICAgLy8KKyAgICAvLyAgLy8gVXNlIGEgYmluYXJ5IHNlYXJjaCwgYXNzdW1pbmcgdGhhdCB3ZSBoYXZlIGEgU3RhbmRhcmQKKyAgICAvLyAgLy8gdGltZSBhdCB0aGUgbWlkcG9pbnQuCisgICAgLy8gIGxvbmcgbWluID0gZC5nZXRUaW1lKCk7CisgICAgLy8gIGxvbmcgbWF4ID0gbWluICsgKGxvbmcpKDM2NS4yNSAvIDIgKiBPTkVfREFZKTsKKyAgICAvLworICAgIC8vICAvLyBGaXJzdCBjaGVjayB0aGUgbWF4CisgICAgLy8gIGNhbC5zZXRUaW1lKG5ldyBEYXRlKG1heCkpOworICAgIC8vICBpZiAoY2FsLmluRGF5bGlnaHRUaW1lKCkgPT0gc3RhcnRzSW5EU1QpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGxvZ2xuKCJFcnJvcjogaW5EYXlsaWdodFRpbWUoIiArIChuZXcgRGF0ZShtYXgpKSArICIpICE9ICIgKyAoIXN0YXJ0c0luRFNUKSk7CisgICAgLy8gIH0KKyAgICAvLworICAgIC8vICBjYWwuc2V0VGltZShkKTsKKyAgICAvLyAgaWYgKGNhbC5pbkRheWxpZ2h0VGltZSgpICE9IHN0YXJ0c0luRFNUKQorICAgIC8vICB7CisgICAgLy8gICAgICBsb2dsbigiRXJyb3I6IGluRGF5bGlnaHRUaW1lKCIgKyBkICsgIikgIT0gIiArIHN0YXJ0c0luRFNUKTsKKyAgICAvLyAgfQorICAgIC8vCisgICAgLy8gIHdoaWxlICgobWF4IC0gbWluKSA+ICBJTlRFUlZBTCkKKyAgICAvLyAgeworICAgIC8vICAgICAgbG9uZyBtaWQgPSAobWluICsgbWF4KSA+PiAxOworICAgIC8vICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUobWlkKSk7CisgICAgLy8gICAgICBpZiAoY2FsLmluRGF5bGlnaHRUaW1lKCkgPT0gc3RhcnRzSW5EU1QpCisgICAgLy8gICAgICB7CisgICAgLy8gICAgICBtaW4gPSBtaWQ7CisgICAgLy8gICAgICB9CisgICAgLy8gICAgICBlbHNlCisgICAgLy8gICAgICB7CisgICAgLy8gICAgICBtYXggPSBtaWQ7CisgICAgLy8gICAgICB9CisgICAgLy8gIH0KKyAgICAvLworICAgIC8vICBsb2dsbigiQmluYXJ5IFNlYXJjaCBCZWZvcmU6ICIgKyBzaG93RGF0ZShtaW4pKTsKKyAgICAvLyAgbG9nbG4oIkJpbmFyeSBTZWFyY2ggQWZ0ZXI6ICAiICsgc2hvd0RhdGUobWF4KSk7CisgICAgLy8gICAgfQorICAgIC8vCisgICAgLy8gICAgc3RhdGljIHZvaWQgX3Rlc3RVc2luZ01pbGxpcyhEYXRlIGQsIGJvb2xlYW4gc3RhcnRzSW5EU1QpCisgICAgLy8gICAgeworICAgIC8vICBsb25nIG1pbGxpcyA9IGQuZ2V0VGltZSgpOworICAgIC8vICBsb25nIG1heCA9IG1pbGxpcyArIChsb25nKSgzNzAgKiBPTkVfREFZKTsgLy8gQSB5ZWFyIHBsdXMgZXh0cmEKKyAgICAvLworICAgIC8vICBib29sZWFuIGxhc3REU1QgPSBzdGFydHNJbkRTVDsKKyAgICAvLyAgd2hpbGUgKG1pbGxpcyA8IG1heCkKKyAgICAvLyAgeworICAgIC8vICAgICAgY2FsLnNldFRpbWUobmV3IERhdGUobWlsbGlzKSk7CisgICAgLy8gICAgICBib29sZWFuIGluRGF5bGlnaHQgPSBjYWwuaW5EYXlsaWdodFRpbWUoKTsKKyAgICAvLworICAgIC8vICAgICAgaWYgKGluRGF5bGlnaHQgIT0gbGFzdERTVCkKKyAgICAvLyAgICAgIHsKKyAgICAvLyAgICAgIGxvZ2xuKCJTd2l0Y2ggIiArIChpbkRheWxpZ2h0ID8gImludG8iIDogIm91dCBvZiIpCisgICAgLy8gICAgICAgICAgICAgICAgICsgIiBEU1QgYXQgIiArIChuZXcgRGF0ZShtaWxsaXMpKSk7CisgICAgLy8gICAgICBsYXN0RFNUID0gaW5EYXlsaWdodDsKKyAgICAvLyAgICAgIH0KKyAgICAvLworICAgIC8vICAgICAgbWlsbGlzICs9IDE1Kk9ORV9NSU5VVEU7CisgICAgLy8gIH0KKyAgICAvLyAgICB9CisgICAgLy8KKyAgICAvLyAgICBzdGF0aWMgdm9pZCBfdGVzdFVzaW5nRmllbGRzKGludCB5LCBib29sZWFuIHN0YXJ0c0luRFNUKQorICAgIC8vICAgIHsKKyAgICAvLyAgYm9vbGVhbiBsYXN0RFNUID0gc3RhcnRzSW5EU1Q7CisgICAgLy8gIGZvciAoaW50IG0gPSAwOyBtIDwgMTI7ICsrbSkKKyAgICAvLyAgeworICAgIC8vICAgICAgZm9yIChpbnQgZCA9IDE7IGQgPD0gTU9OVEhfTEVOR1RIW21dOyArK2QpCisgICAgLy8gICAgICB7CisgICAgLy8gICAgICBmb3IgKGludCBoID0gMDsgaCA8IDI0OyArK2gpCisgICAgLy8gICAgICB7CisgICAgLy8gICAgICAgICAgZm9yIChpbnQgbWluID0gMDsgbWluIDwgNjA7IG1pbiArPSAxNSkKKyAgICAvLyAgICAgICAgICB7CisgICAgLy8gICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgLy8gICAgICAgICAgY2FsLnNldCh5LCBtLCBkLCBoLCBtaW4pOworICAgIC8vICAgICAgICAgIGJvb2xlYW4gaW5EYXlsaWdodCA9IGNhbC5pbkRheWxpZ2h0VGltZSgpOworICAgIC8vICAgICAgICAgIGlmIChpbkRheWxpZ2h0ICE9IGxhc3REU1QpCisgICAgLy8gICAgICAgICAgeworICAgIC8vICAgICAgICAgICAgICBsYXN0RFNUID0gaW5EYXlsaWdodDsKKyAgICAvLyAgICAgICAgICAgICAgbG9nKCJTd2l0Y2ggIiArIChsYXN0RFNUID8gImludG8iIDogIm91dCBvZiIpCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICsgIiBEU1QgYXQgIiArIHkgKyAiLyIgKyAobSsxKSArICIvIiArIGQKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgKyAiICIgKyBzaG93Tk4oaCkgKyAiOiIgKyBzaG93Tk4obWluKSk7CisgICAgLy8gICAgICAgICAgICAgIGxvZ2xuKCIgIiArIGNhbC5nZXRUaW1lKCkpOworICAgIC8vCisgICAgLy8gICAgICAgICAgICAgIGNhbC5zZXQoeSwgbSwgZCwgaC0xLCA0NSk7CisgICAgLy8gICAgICAgICAgICAgIGxvZygiQmVmb3JlID0gIgorICAgIC8vKyB5ICsgIi8iICsgKG0rMSkgKyAiLyIgKyBkCisgICAgLy8rICIgIiArIHNob3dOTihoLTEpICsgIjoiICsgc2hvd05OKDQ1KSk7CisgICAgLy8gICAgICAgICAgICAgIGxvZ2xuKCIgIiArIGNhbC5nZXRUaW1lKCkpOworICAgIC8vICAgICAgICAgIH0KKyAgICAvLyAgICAgICAgICB9CisgICAgLy8gICAgICB9CisgICAgLy8gICAgICB9CisgICAgLy8gIH0KKyAgICAvLyAgICB9CisgICAgLy8KKyAgICAvLyAgICBwdWJsaWMgdm9pZCBUZXN0MSgpCisgICAgLy8gICAgeworICAgIC8vICBsb2dsbihMb2NhbGUuZ2V0RGVmYXVsdCgpLmdldERpc3BsYXlOYW1lKCkpOworICAgIC8vICBsb2dsbihUaW1lWm9uZS5nZXREZWZhdWx0KCkuZ2V0SUQoKSk7CisgICAgLy8gIGxvZ2xuKG5ldyBEYXRlKDApKTsKKyAgICAvLworICAgIC8vICBpZiAodHJ1ZSkKKyAgICAvLyAgeworICAgIC8vICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAvLyAgICAgIF90ZXN0VXNpbmdCaW5hcnlTZWFyY2gobmV3IERhdGUoOTcsMCwxKSwgZmFsc2UpOworICAgIC8vICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAvLyAgICAgIF90ZXN0VXNpbmdCaW5hcnlTZWFyY2gobmV3IERhdGUoOTcsNiwxKSwgdHJ1ZSk7CisgICAgLy8gIH0KKyAgICAvLworICAgIC8vICBpZiAodHJ1ZSkKKyAgICAvLyAgeworICAgIC8vICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAvLyAgICAgIGxvZ2xuKCJTdGVwcGluZyB1c2luZyBtaWxsaXMiKTsKKyAgICAvLyAgICAgIF90ZXN0VXNpbmdNaWxsaXMobmV3IERhdGUoOTcsMCwxKSwgZmFsc2UpOworICAgIC8vICB9CisgICAgLy8KKyAgICAvLyAgaWYgKHRydWUpCisgICAgLy8gIHsKKyAgICAvLyAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgLy8gICAgICBsb2dsbigiU3RlcHBpbmcgdXNpbmcgZmllbGRzIik7CisgICAgLy8gICAgICBfdGVzdFVzaW5nRmllbGRzKDE5OTcsIGZhbHNlKTsKKyAgICAvLyAgfQorICAgIC8vCisgICAgLy8gIGlmIChmYWxzZSkKKyAgICAvLyAgeworICAgIC8vICAgICAgY2FsLmNsZWFyKCk7CisgICAgLy8gICAgICBjYWwuc2V0KDE5OTcsIDMsIDUsIDEwLCAwKTsKKyAgICAvLyAgICAgIC8vICBjYWwuaW5EYXlsaWdodFRpbWUoKTsKKyAgICAvLyAgICAgIGxvZ2xuKCJEYXRlID0gIiArIGNhbC5nZXRUaW1lKCkpOworICAgIC8vICAgICAgbG9nbG4oIk1pbGxpcyA9ICIgKyBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKS8zNjAwMDAwKTsKKyAgICAvLyAgfQorICAgIC8vICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgdm9pZCBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKFNpbXBsZVRpbWVab25lIHR6LCBEYXRlIGQsIGxvbmcgZXhwZWN0ZWRCb3VuZGFyeSkKKyAgICB7CisgICAgICAgIC8vIEdpdmVuIGEgZGF0ZSB3aXRoIGEgeWVhciBzdGFydCwgZmluZCB0aGUgRGF5bGlnaHQgb25zZXQKKyAgICAgICAgLy8gYW5kIGVuZC4gIFRoZSBnaXZlbiBkYXRlIHNob3VsZCBiZSAxLzEveHggaW4gc29tZSB5ZWFyLgorCisgICAgICAgIC8vIFVzZSBhIGJpbmFyeSBzZWFyY2gsIGFzc3VtaW5nIHRoYXQgd2UgaGF2ZSBhIFN0YW5kYXJkCisgICAgICAgIC8vIHRpbWUgYXQgdGhlIG1pZHBvaW50LgorICAgICAgICBsb25nIG1pbiA9IGQuZ2V0VGltZSgpOworICAgICAgICBsb25nIG1heCA9IG1pbiArIChsb25nKSgzNjUuMjUgLyAyICogT05FX0RBWSk7CisKKyAgICAgICAgLy8gRmlyc3QgY2hlY2sgdGhlIGJvdW5kYXJpZXMKKyAgICAgICAgYm9vbGVhbiBzdGFydHNJbkRTVCA9IHR6LmluRGF5bGlnaHRUaW1lKGQpOworCisgICAgICAgIGlmICh0ei5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtYXgpKSA9PSBzdGFydHNJbkRTVCkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBpbkRheWxpZ2h0VGltZSgiICsgKG5ldyBEYXRlKG1heCkpICsgIikgIT0gIiArICghc3RhcnRzSW5EU1QpKTsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlICgobWF4IC0gbWluKSA+ICBJTlRFUlZBTCkKKyAgICAgICAgeworICAgICAgICAgICAgbG9uZyBtaWQgPSAobWluICsgbWF4KSA+PiAxOworICAgICAgICAgICAgaWYgKHR6LmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKG1pZCkpID09IHN0YXJ0c0luRFNUKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1pbiA9IG1pZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtYXggPSBtaWQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigiQmluYXJ5IFNlYXJjaCBCZWZvcmU6ICIgKyBzaG93RGF0ZShtaW4pKTsKKyAgICAgICAgbG9nbG4oIkJpbmFyeSBTZWFyY2ggQWZ0ZXI6ICAiICsgc2hvd0RhdGUobWF4KSk7CisKKyAgICAgICAgbG9uZyBtaW5kZWx0YSA9IGV4cGVjdGVkQm91bmRhcnkgLSBtaW47CisgICAgICAgIC8vIG5vdCB1c2VkIGxvbmcgbWF4ZGVsdGEgPSBtYXggLSBleHBlY3RlZEJvdW5kYXJ5OworICAgICAgICBpZiAobWluZGVsdGEgPj0gMCAmJiBtaW5kZWx0YSA8PSBJTlRFUlZBTCAmJgorICAgICAgICAgICAgbWluZGVsdGEgPj0gMCAmJiBtaW5kZWx0YSA8PSBJTlRFUlZBTCkKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTOiBFeHBlY3RlZCBib3VuZGFyeSBhdCAiICsgZXhwZWN0ZWRCb3VuZGFyeSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBib3VuZGFyeSBhdCAiICsgZXhwZWN0ZWRCb3VuZGFyeSk7CisgICAgfQorCisgICAgLyoKKyAgICAgIHN0YXRpYyB2b2lkIF90ZXN0VXNpbmdNaWxsaXMoRGF0ZSBkLCBib29sZWFuIHN0YXJ0c0luRFNUKQorICAgICAgeworICAgICAgbG9uZyBtaWxsaXMgPSBkLmdldFRpbWUoKTsKKyAgICAgIGxvbmcgbWF4ID0gbWlsbGlzICsgKGxvbmcpKDM3MCAqIE9ORV9EQVkpOyAvLyBBIHllYXIgcGx1cyBleHRyYQorCisgICAgICBib29sZWFuIGxhc3REU1QgPSBzdGFydHNJbkRTVDsKKyAgICAgIHdoaWxlIChtaWxsaXMgPCBtYXgpCisgICAgICB7CisgICAgICBjYWwuc2V0VGltZShuZXcgRGF0ZShtaWxsaXMpKTsKKyAgICAgIGJvb2xlYW4gaW5EYXlsaWdodCA9IGNhbC5pbkRheWxpZ2h0VGltZSgpOworCisgICAgICBpZiAoaW5EYXlsaWdodCAhPSBsYXN0RFNUKQorICAgICAgeworICAgICAgbG9nbG4oIlN3aXRjaCAiICsgKGluRGF5bGlnaHQgPyAiaW50byIgOiAib3V0IG9mIikKKyAgICAgICsgIiBEU1QgYXQgIiArIChuZXcgRGF0ZShtaWxsaXMpKSk7CisgICAgICBsYXN0RFNUID0gaW5EYXlsaWdodDsKKyAgICAgIH0KKworICAgICAgbWlsbGlzICs9IDE1Kk9ORV9NSU5VVEU7CisgICAgICB9CisgICAgICB9CisgICAgICAqLworCisgICAgLyoqCisgICAgICogVGVzdCBuZXcgcnVsZSBmb3JtYXRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROZXdSdWxlcygpCisgICAgeworICAgICAgICAvL2xvZ2xuKExvY2FsZS5nZXREZWZhdWx0KCkuZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgICAgIC8vbG9nbG4oVGltZVpvbmUuZ2V0RGVmYXVsdCgpLmdldElEKCkpOworICAgICAgICAvL2xvZ2xuKG5ldyBEYXRlKDApKTsKKworICAgICAgICBpZiAodHJ1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gRG9lc24ndCBtYXR0ZXIgd2hhdCB0aGUgZGVmYXVsdCBUaW1lWm9uZSBpcyBoZXJlLCBzaW5jZSB3ZQorICAgICAgICAgICAgLy8gYXJlIGNyZWF0aW5nIG91ciBvd24gVGltZVpvbmUgb2JqZWN0cy4KKworICAgICAgICAgICAgU2ltcGxlVGltZVpvbmUgdHo7CisgICAgICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgdGVtcGNhbC5jbGVhcigpOworCisgICAgICAgICAgICBsb2dsbigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgICAgIGxvZ2xuKCJBdWcgMm5kVHVlcyAuLiBNYXIgMTUiKTsKKyAgICAgICAgICAgIHR6ID0gbmV3IFNpbXBsZVRpbWVab25lKC04Kk9ORV9IT1VSLCAiVGVzdF8xIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkFVR1VTVCwgMiwgQ2FsZW5kYXIuVFVFU0RBWSwgMipPTkVfSE9VUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLk1BUkNILCAxNSwgMCwgMipPTkVfSE9VUik7CisgICAgICAgICAgICAvL2xvZ2xuKHR6LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDAsIDEpOworICAgICAgICAgICAgX3Rlc3RVc2luZ0JpbmFyeVNlYXJjaCh0eiwgdGVtcGNhbC5nZXRUaW1lKCksIDg1ODQxNjQwMDAwMEwpOworICAgICAgICAgICAgbG9nbG4oIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKTsKKyAgICAgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIDYsIDEpOworICAgICAgICAgICAgX3Rlc3RVc2luZ0JpbmFyeVNlYXJjaCh0eiwgdGVtcGNhbC5nZXRUaW1lKCksIDg3MTM4MDAwMDAwMEwpOworCisgICAgICAgICAgICBsb2dsbigiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKKyAgICAgICAgICAgIGxvZ2xuKCJBcHIgV2VkPj0xNCAuLiBTZXAgU3VuPD0yMCIpOworICAgICAgICAgICAgdHogPSBuZXcgU2ltcGxlVGltZVpvbmUoLTgqT05FX0hPVVIsICJUZXN0XzIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuQVBSSUwsIDE0LCAtQ2FsZW5kYXIuV0VETkVTREFZLCAyKk9ORV9IT1VSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU0VQVEVNQkVSLCAtMjAsIC1DYWxlbmRhci5TVU5EQVksIDIqT05FX0hPVVIpOworICAgICAgICAgICAgLy9sb2dsbih0ei50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCAwLCAxKTsKKyAgICAgICAgICAgIF90ZXN0VXNpbmdCaW5hcnlTZWFyY2godHosIHRlbXBjYWwuZ2V0VGltZSgpLCA4NjExODQ4MDAwMDBMKTsKKyAgICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCA2LCAxKTsKKyAgICAgICAgICAgIF90ZXN0VXNpbmdCaW5hcnlTZWFyY2godHosIHRlbXBjYWwuZ2V0VGltZSgpLCA4NzQyMjc2MDAwMDBMKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAgaWYgKHRydWUpCisgICAgICAgICAgeworICAgICAgICAgIGxvZ2xuKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgbG9nbG4oIlN0ZXBwaW5nIHVzaW5nIG1pbGxpcyIpOworICAgICAgICAgIF90ZXN0VXNpbmdNaWxsaXMobmV3IERhdGUoOTcsMCwxKSwgZmFsc2UpOworICAgICAgICAgIH0KKworICAgICAgICAgIGlmICh0cnVlKQorICAgICAgICAgIHsKKyAgICAgICAgICBsb2dsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworICAgICAgICAgIGxvZ2xuKCJTdGVwcGluZyB1c2luZyBmaWVsZHMiKTsKKyAgICAgICAgICBfdGVzdFVzaW5nRmllbGRzKDE5OTcsIGZhbHNlKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoZmFsc2UpCisgICAgICAgICAgeworICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgIGNhbC5zZXQoMTk5NywgMywgNSwgMTAsIDApOworICAgICAgICAgIC8vICAgIGNhbC5pbkRheWxpZ2h0VGltZSgpOworICAgICAgICAgIGxvZ2xuKCJEYXRlID0gIiArIGNhbC5nZXRUaW1lKCkpOworICAgICAgICAgIGxvZ2xuKCJNaWxsaXMgPSAiICsgY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkvMzYwMDAwMCk7CisgICAgICAgICAgfQorICAgICAgICAgICovCisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gTG9uZyBCdWcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vcHVibGljIHZvaWQgVGVzdDMoKQorICAgIC8veworICAgIC8vICAgIGZpbmREYXlsaWdodEJvdW5kYXJ5VXNpbmdUaW1lWm9uZShuZXcgRGF0ZSg5Nyw2LDEpLCB0cnVlKTsKKyAgICAvL30KKworICAgIC8qKgorICAgICAqIEZpbmQgYm91bmRhcmllcyBieSBzdGVwcGluZy4KKyAgICAgKi8KKyAgICB2b2lkIGZpbmRCb3VuZGFyaWVzU3RlcHdpc2UoaW50IHllYXIsIGxvbmcgaW50ZXJ2YWwsIFRpbWVab25lIHosIGludCBleHBlY3RlZENoYW5nZXMpCisgICAgeworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KHllYXIsIENhbGVuZGFyLkpBTlVBUlksIDEpOworICAgICAgICBEYXRlIGQgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAgICAgbG9uZyB0aW1lID0gZC5nZXRUaW1lKCk7IC8vIG1zCisgICAgICAgIGxvbmcgbGltaXQgPSB0aW1lICsgT05FX1lFQVIgKyBPTkVfREFZOworICAgICAgICBib29sZWFuIGxhc3RTdGF0ZSA9IHouaW5EYXlsaWdodFRpbWUoZCk7CisgICAgICAgIGludCBjaGFuZ2VzID0gMDsKKyAgICAgICAgbG9nbG4oIi0tIFpvbmUgIiArIHouZ2V0SUQoKSArICIgc3RhcnRzIGluICIgKyB5ZWFyICsgIiB3aXRoIERTVCA9ICIgKyBsYXN0U3RhdGUpOworICAgICAgICBsb2dsbigidXNlRGF5bGlnaHRUaW1lID0gIiArIHoudXNlRGF5bGlnaHRUaW1lKCkpOworICAgICAgICB3aGlsZSAodGltZSA8IGxpbWl0KQorICAgICAgICB7CisgICAgICAgICAgICBkLnNldFRpbWUodGltZSk7CisgICAgICAgICAgICBib29sZWFuIHN0YXRlID0gei5pbkRheWxpZ2h0VGltZShkKTsKKyAgICAgICAgICAgIGlmIChzdGF0ZSAhPSBsYXN0U3RhdGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbG9nbG4oKHN0YXRlID8gIkVudHJ5ICIgOiAiRXhpdCAiKSArCisgICAgICAgICAgICAgICAgICAgICAgImF0ICIgKyBkKTsKKyAgICAgICAgICAgICAgICBsYXN0U3RhdGUgPSBzdGF0ZTsKKyAgICAgICAgICAgICAgICArK2NoYW5nZXM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aW1lICs9IGludGVydmFsOworICAgICAgICB9CisgICAgICAgIGlmIChjaGFuZ2VzID09IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbGFzdFN0YXRlICYmICF6LnVzZURheWxpZ2h0VGltZSgpKSBsb2dsbigiTm8gRFNUIik7CisgICAgICAgICAgICBlbHNlIGVycmxuKCJGQUlMOiBEU1QgYWxsIHllYXIsIG9yIG5vIERTVCB3aXRoIHRydWUgdXNlRGF5bGlnaHRUaW1lIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoY2hhbmdlcyAhPSAyKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGNoYW5nZXMgKyAiIGNoYW5nZXMgc2Vlbjsgc2hvdWxkIHNlZSAwIG9yIDIiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICghei51c2VEYXlsaWdodFRpbWUoKSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHVzZURheWxpZ2h0VGltZSBmYWxzZSBidXQgMiBjaGFuZ2VzIHNlZW4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2hhbmdlcyAhPSBleHBlY3RlZENoYW5nZXMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgY2hhbmdlcyArICIgY2hhbmdlcyBzZWVuOyBleHBlY3RlZCAiICsgZXhwZWN0ZWRDaGFuZ2VzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTdGVwd2lzZSgpCisgICAgeworICAgICAgICBmaW5kQm91bmRhcmllc1N0ZXB3aXNlKDE5OTcsIE9ORV9EQVksIHNhZmVHZXRUaW1lWm9uZSgiQW1lcmljYS9OZXdfWW9yayIpLCAyKTsKKyAgICAgICAgLy8gZGlzYWJsZWQgT2N0IDIwMDMgYWxpdTsgQUNUIGNvdWxkIG1lYW4gYW55dGhpbmcsIGRlcGVuZGluZyBvbiB0aGUgdW5kZXJseWluZyBKREssIGFzIG9mIDIuOAorICAgICAgICAvLyBmaW5kQm91bmRhcmllc1N0ZXB3aXNlKDE5OTcsIE9ORV9EQVksIHNhZmVHZXRUaW1lWm9uZSgiQUNUIiksIDIpOworICAgICAgICBmaW5kQm91bmRhcmllc1N0ZXB3aXNlKDE5OTcsIE9ORV9EQVksIHNhZmVHZXRUaW1lWm9uZSgiQW1lcmljYS9QaG9lbml4IiksIDApOyAvLyBBZGRlZCAzSmFuMDEKKyAgICAgICAgZmluZEJvdW5kYXJpZXNTdGVwd2lzZSgxOTk3LCBPTkVfREFZLCBzYWZlR2V0VGltZVpvbmUoQVVTVFJBTElBKSwgMik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lUmVncmVzc2lvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lUmVncmVzc2lvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBmOGFmNDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdGltZXpvbmUvVGltZVpvbmVSZWdyZXNzaW9uLmphdmEKQEAgLTAsMCArMSwxMDUzIEBACisvLyMjaGVhZGVyCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqCisgKiBAdGVzdCAxLjE4IDk5LzA5LzIxCisgKiBAYnVnIDQwNTI5NjcgNDA3MzIwOSA0MDczMjE1IDQwODQ5MzMgNDA5Njk1MiA0MTA5MzE0IDQxMjY2NzggNDE1MTQwNiA0MTUxNDI5CisgKiBAYnVnIDQxNTQ1MjUgNDE1NDUzNyA0MTU0NTQyIDQxNTQ2NTAgNDE1OTkyMiA0MTYyNTkzIDQxNzM2MDQgNDE3NjY4NiA0MTg0MjI5IDQyMDg5NjAKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRpbWV6b25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIFRpbWVab25lUmVncmVzc2lvbiBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGltZVpvbmVSZWdyZXNzaW9uKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDUyOTY3KCkgeworICAgICAgICBsb2dsbigiKioqIENIRUNLIFRJTUVaT05FIEFHQUlOU1QgSE9TVCBPUyBTRVRUSU5HICoqKiIpOworICAgICAgICBTdHJpbmcgaWQgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCkuZ2V0SUQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIHVzZXIudGltZXpvbmUgaXMgYSBwcm90ZWN0ZWQgc3lzdGVtIHByb3BlcnR5CisgICAgICAgICAgICBsb2dsbigidXNlci50aW1lem9uZTogIiArIFN5c3RlbS5nZXRQcm9wZXJ0eSgidXNlci50aW1lem9uZSIsICI8bm90IHNldD4iKSk7CisgICAgICAgICAgICBsb2dsbigiVGltZVpvbmUuZ2V0RGVmYXVsdCgpLmdldElEKCk6ICIgKyBpZCk7CisgICAgICAgICAgICBsb2dsbihuZXcgRGF0ZSgpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgbG9nbG4oIioqKiBUSEUgUkVTVUxUUyBPRiBUSElTIFRFU1QgTVVTVCBCRSBWRVJJRklFRCBNQU5VQUxMWSAqKioiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoU2VjdXJpdHlFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgd2FybmxuKCJzZWN1cml0eSBleGNlcHRpb246ICIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdDQwNzMyMDkoKSB7CisgICAgICAgIFRpbWVab25lIHoxID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBUaW1lWm9uZSB6MiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgaWYgKHoxID09IHoyKSBlcnJsbigiRmFpbDogVGltZVpvbmUgc2hvdWxkIHJldHVybiBjbG9uZXMiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA3MzIxNSgpIHsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgeiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiR01UIik7CisgICAgICAgIGlmICh6LnVzZURheWxpZ2h0VGltZSgpKQorICAgICAgICAgICAgZXJybG4oIkZhaWw6IEZpeCB0ZXN0IHRvIHN0YXJ0IHdpdGggbm9uLURTVCB6b25lIik7CisgICAgICAgIHouc2V0U3RhcnRSdWxlKENhbGVuZGFyLkZFQlJVQVJZLCAxLCBDYWxlbmRhci5TVU5EQVksIDApOworICAgICAgICB6LnNldEVuZFJ1bGUoQ2FsZW5kYXIuTUFSQ0gsIC0xLCBDYWxlbmRhci5TVU5EQVksIDApOworICAgICAgICBpZiAoIXoudXNlRGF5bGlnaHRUaW1lKCkpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogRFNUIG5vdCBhY3RpdmUiKTsKKyAgICAgICAgQ2FsZW5kYXIgdGVtcGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXRUaW1lWm9uZSh6KTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgMzEpOworICAgICAgICBEYXRlIGQxID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGlmICh6LmluRGF5bGlnaHRUaW1lKGQxKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6IERTVCBub3Qgd29ya2luZyBhcyBleHBlY3RlZCIpOworICAgICAgICB9IAorCisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTcsIENhbGVuZGFyLk1BUkNILCAxKTsKKyAgICAgICAgRGF0ZSBkMiA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICBpZiAoIXouaW5EYXlsaWdodFRpbWUoZDIpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogRFNUIG5vdCB3b3JraW5nIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgdGVtcGNhbC5jbGVhcigpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk3LCBDYWxlbmRhci5NQVJDSCwgMzEpOworICAgICAgICBEYXRlIGQzID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIGlmICh6LmluRGF5bGlnaHRUaW1lKGQzKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6IERTVCBub3Qgd29ya2luZyBhcyBleHBlY3RlZCIpOworICAgICAgICB9IAorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBleHBlY3RlZCBiZWhhdmlvciBvZiBUaW1lWm9uZSBhcm91bmQgdGhlIGJvdW5kYXJpZXMgaXM6CisgICAgICogKEFzc3VtZSB0cmFuc2l0aW9uIHRpbWUgb2YgMjowMCBBTSkKKyAgICAgKiAgICBkYXkgb2Ygb25zZXQgMTo1OSBBTSBTVEQgID0gZGlzcGxheSBuYW1lIDE6NTkgQU0gU1QKKyAgICAgKiAgICAgICAgICAgICAgICAgMjowMCBBTSBTVEQgID0gZGlzcGxheSBuYW1lIDM6MDAgQU0gRFQKKyAgICAgKiAgICBkYXkgb2YgZW5kICAgMDo1OSBBTSBTVEQgID0gZGlzcGxheSBuYW1lIDE6NTkgQU0gRFQKKyAgICAgKiAgICAgICAgICAgICAgICAgMTowMCBBTSBTVEQgID0gZGlzcGxheSBuYW1lIDE6MDAgQU0gU1QKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDA4NDkzMygpIHsKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisKKyAgICAgICAgbG9uZyBvZmZzZXQxID0gdHouZ2V0T2Zmc2V0KDEsCisgICAgICAgICAgICAxOTk3LCBDYWxlbmRhci5PQ1RPQkVSLCAyNiwgQ2FsZW5kYXIuU1VOREFZLCAoMio2MCo2MCoxMDAwKSk7CisgICAgICAgIGxvbmcgb2Zmc2V0MiA9IHR6LmdldE9mZnNldCgxLAorICAgICAgICAgICAgMTk5NywgQ2FsZW5kYXIuT0NUT0JFUiwgMjYsIENhbGVuZGFyLlNVTkRBWSwgKDIqNjAqNjAqMTAwMCktMSk7CisKKyAgICAgICAgbG9uZyBvZmZzZXQzID0gdHouZ2V0T2Zmc2V0KDEsCisgICAgICAgICAgICAxOTk3LCBDYWxlbmRhci5PQ1RPQkVSLCAyNiwgQ2FsZW5kYXIuU1VOREFZLCAoMSo2MCo2MCoxMDAwKSk7CisgICAgICAgIGxvbmcgb2Zmc2V0NCA9IHR6LmdldE9mZnNldCgxLAorICAgICAgICAgICAgMTk5NywgQ2FsZW5kYXIuT0NUT0JFUiwgMjYsIENhbGVuZGFyLlNVTkRBWSwgKDEqNjAqNjAqMTAwMCktMSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogIFRoZSBmb2xsb3dpbmcgd2FzIGFkZGVkIGp1c3QgZm9yIGNvbnNpc3RlbmN5LiAgSXQgc2hvd3MgdGhhdCBnb2luZyAqdG8qIERheWxpZ2h0CisgICAgICAgICAqICBTYXZpbmdzIFRpbWUgKFBEVCkgZG9lcyB3b3JrIGF0IDJhbS4KKyAgICAgICAgICovCisKKyAgICAgICAgbG9uZyBvZmZzZXQ1ID0gdHouZ2V0T2Zmc2V0KDEsCisgICAgICAgICAgICAxOTk3LCBDYWxlbmRhci5BUFJJTCwgNiwgQ2FsZW5kYXIuU1VOREFZLCAoMio2MCo2MCoxMDAwKSk7CisgICAgICAgIGxvbmcgb2Zmc2V0NiA9IHR6LmdldE9mZnNldCgxLAorICAgICAgICAgICAgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDYsIENhbGVuZGFyLlNVTkRBWSwgKDIqNjAqNjAqMTAwMCktMSk7CisKKyAgICAgICAgbG9uZyBvZmZzZXQ3ID0gdHouZ2V0T2Zmc2V0KDEsCisgICAgICAgICAgICAxOTk3LCBDYWxlbmRhci5BUFJJTCwgNiwgQ2FsZW5kYXIuU1VOREFZLCAoMSo2MCo2MCoxMDAwKSk7CisgICAgICAgIGxvbmcgb2Zmc2V0OCA9IHR6LmdldE9mZnNldCgxLAorICAgICAgICAgICAgMTk5NywgQ2FsZW5kYXIuQVBSSUwsIDYsIENhbGVuZGFyLlNVTkRBWSwgKDEqNjAqNjAqMTAwMCktMSk7CisKKyAgICAgICAgbG9uZyBTVG9mZnNldCA9IC04ICogNjAqNjAqMTAwMEw7CisgICAgICAgIGxvbmcgRFRvZmZzZXQgPSAtNyAqIDYwKjYwKjEwMDBMOworICAgICAgICBpZiAob2Zmc2V0MSAhPSBTVG9mZnNldCB8fCBvZmZzZXQyICE9IFNUb2Zmc2V0IHx8CisgICAgICAgICAgICBvZmZzZXQzICE9IFNUb2Zmc2V0IHx8IG9mZnNldDQgIT0gRFRvZmZzZXQgfHwKKyAgICAgICAgICAgIG9mZnNldDUgIT0gRFRvZmZzZXQgfHwgb2Zmc2V0NiAhPSBTVG9mZnNldCB8fAorICAgICAgICAgICAgb2Zmc2V0NyAhPSBTVG9mZnNldCB8fCBvZmZzZXQ4ICE9IFNUb2Zmc2V0KQorICAgICAgICAgICAgd2FybmxuKCJGYWlsOiBUaW1lWm9uZSBtaXNiZWhhdmluZyIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MDk2OTUyKCkgeworICAgICAgICBTdHJpbmdbXSBaT05FUyA9IHsgIkdNVCIsICJNRVQiLCAiSVNUIiB9OworICAgICAgICBib29sZWFuIHBhc3MgPSB0cnVlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPFpPTkVTLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgVGltZVpvbmUgem9uZSA9IFRpbWVab25lLmdldFRpbWVab25lKFpPTkVTW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAoIXpvbmUuZ2V0SUQoKS5lcXVhbHMoWk9ORVNbaV0pKQorICAgICAgICAgICAgICAgICAgICB3YXJubG4oIkZhaWw6IFRlc3QgYnJva2VuOyB6b25lcyBub3QgaW5zdGFudGlhdGluZyIpOworCisgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJhb3M7CisgICAgICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9zdHJlYW0gPQorICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJhb3MgPSBuZXcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKSk7CisgICAgICAgICAgICAgICAgb3N0cmVhbS53cml0ZU9iamVjdCh6b25lKTsKKyAgICAgICAgICAgICAgICBvc3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgYmFvcy5jbG9zZSgpOworICAgICAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIGlzdHJlYW0gPQorICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0SW5wdXRTdHJlYW0obmV3CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlQXJyYXlJbnB1dFN0cmVhbShiYW9zLnRvQnl0ZUFycmF5KCkpKTsKKyAgICAgICAgICAgICAgICBUaW1lWm9uZSBmcmFua2VuWm9uZSA9IChUaW1lWm9uZSkgaXN0cmVhbS5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICAgICAgLy9sb2dsbigiWm9uZTogICAgICAgICIgKyB6b25lKTsKKyAgICAgICAgICAgICAgICAvL2xvZ2xuKCJGcmFua2VuWm9uZTogIiArIGZyYW5rZW5ab25lKTsKKyAgICAgICAgICAgICAgICBpZiAoIXpvbmUuZXF1YWxzKGZyYW5rZW5ab25lKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiVGltZVpvbmUgIiArIHpvbmUuZ2V0SUQoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgbm90IGVxdWFsIHRvIHNlcmlhbGl6ZWQvZGVzZXJpYWxpemVkIG9uZSIpOworICAgICAgICAgICAgICAgICAgICBwYXNzID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFwYXNzKSBlcnJsbigiRmFpbDogVGltZVpvbmUgc2VyaWFsaXphdGlvbi9lcXVhbGl0eSBidWciKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBlKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWw6ICIgKyBlKTsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDEwOTMxNCgpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgdGVzdENhbCA9IChHcmVnb3JpYW5DYWxlbmRhcilDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBUaW1lWm9uZSBQU1QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk5OCxDYWxlbmRhci5BUFJJTCw0LDIyLDApOworICAgICAgICBEYXRlIGQxID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsQ2FsZW5kYXIuQVBSSUwsNSw2LDApOworICAgICAgICBEYXRlIGQyID0gdGVtcGNhbC5nZXRUaW1lKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsQ2FsZW5kYXIuT0NUT0JFUiwyNCwyMiwwKTsKKyAgICAgICAgRGF0ZSBkMyA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICB0ZW1wY2FsLnNldCgxOTk4LENhbGVuZGFyLk9DVE9CRVIsMjUsNiwwKTsKKyAgICAgICAgRGF0ZSBkNCA9IHRlbXBjYWwuZ2V0VGltZSgpOworICAgICAgICBPYmplY3RbXSB0ZXN0RGF0YSA9IHsKKyAgICAgICAgICAgIFBTVCwgZDEsIGQyLAorICAgICAgICAgICAgUFNULCBkMywgZDQsCisgICAgICAgIH07CisgICAgICAgIGJvb2xlYW4gcGFzcz10cnVlOworICAgICAgICBmb3IgKGludCBpPTA7IGk8dGVzdERhdGEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICB0ZXN0Q2FsLnNldFRpbWVab25lKChUaW1lWm9uZSkgdGVzdERhdGFbaV0pOworICAgICAgICAgICAgbG9uZyB0ID0gKChEYXRlKXRlc3REYXRhW2krMV0pLmdldFRpbWUoKTsKKyAgICAgICAgICAgIERhdGUgZW5kID0gKERhdGUpIHRlc3REYXRhW2krMl07CisgICAgICAgICAgICB3aGlsZSAodCA8IGVuZC5nZXRUaW1lKCkpIHsKKyAgICAgICAgICAgICAgICB0ZXN0Q2FsLnNldFRpbWUobmV3IERhdGUodCkpOworICAgICAgICAgICAgICAgIGlmICghY2hlY2tDYWxlbmRhcjMxNCh0ZXN0Q2FsLCAoVGltZVpvbmUpIHRlc3REYXRhW2ldKSkKKyAgICAgICAgICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgICAgICAgICAgICAgIHQgKz0gNjAqNjAqMTAwMEw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFwYXNzKSBlcnJsbigiRmFpbDogVFogQVBJIGluY29uc2lzdGVudCIpOworICAgIH0KKworICAgIGJvb2xlYW4gY2hlY2tDYWxlbmRhcjMxNChHcmVnb3JpYW5DYWxlbmRhciB0ZXN0Q2FsLCBUaW1lWm9uZSB0ZXN0VFopIHsKKyAgICAgICAgLy8gR3JlZ29yaWFuQ2FsZW5kYXIgdGVzdENhbCA9IChHcmVnb3JpYW5DYWxlbmRhcilhQ2FsLmNsb25lKCk7CisKKyAgICAgICAgZmluYWwgaW50IE9ORV9EQVkgPSAyNCo2MCo2MCoxMDAwOworCisgICAgICAgIGludCB0ek9mZnNldCwgdHpSYXdPZmZzZXQ7CisgICAgICAgIEZsb2F0IHR6T2Zmc2V0RmxvYXQsdHpSYXdPZmZzZXRGbG9hdDsKKyAgICAgICAgLy8gSGVyZSBpcyB3aGVyZSB0aGUgdXNlciBtYWRlIGFuIGVycm9yLiAgVGhleSB3ZXJlIHBhc3NpbmcgaW4gdGhlIHZhbHVlIG9mCisgICAgICAgIC8vIHRoZSBNSUxMU0VDT05EIGZpZWxkOyB5b3UgbmVlZCB0byBwYXNzIGluIHRoZSBtaWxsaXMgaW4gdGhlIGRheSBpbiBTVEFOREFSRAorICAgICAgICAvLyB0aW1lLgorICAgICAgICBpbnQgbWlsbGlzID0gdGVzdENhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpICsKKyAgICAgICAgICAgIDEwMDAgKiAodGVzdENhbC5nZXQoQ2FsZW5kYXIuU0VDT05EKSArCisgICAgICAgICAgICAgICAgICAgIDYwICogKHRlc3RDYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICA2MCAqICh0ZXN0Q2FsLmdldChDYWxlbmRhci5IT1VSX09GX0RBWSkpKSkgLQorICAgICAgICAgICAgdGVzdENhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCk7CisKKyAgICAgICAgLyogRml4IHVwIG1pbGxpcyB0byBiZSBpbiByYW5nZS4gIEFTU1VNRSBUSEFUIFdFIEFSRSBOT1QgQVQgVEhFCisgICAgICAgICAqIEJFR0lOTklORyBPUiBFTkQgT0YgQSBNT05USC4gIFdlIG11c3QgYWRkIHRoaXMgY29kZSBiZWNhdXNlCisgICAgICAgICAqIGdldE9mZnNldCgpIGhhcyBiZWVuIGNoYW5nZWQgdG8gYmUgbW9yZSBzdHJpY3QgYWJvdXQgdGhlIHBhcmFtZXRlcnMKKyAgICAgICAgICogaXQgcmVjZWl2ZXMgLS0gaXQgdHVybnMgb3V0IHRoYXQgdGhpcyB0ZXN0IHdhcyBwYXNzaW5nIGluIGlsbGVnYWwKKyAgICAgICAgICogdmFsdWVzLiAqLworICAgICAgICBpbnQgZGF0ZSA9IHRlc3RDYWwuZ2V0KENhbGVuZGFyLkRBVEUpOworICAgICAgICBpbnQgZG93ICA9IHRlc3RDYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgd2hpbGUgKG1pbGxpcyA8IDApIHsKKyAgICAgICAgICAgIG1pbGxpcyArPSBPTkVfREFZOworICAgICAgICAgICAgLS1kYXRlOworICAgICAgICAgICAgZG93ID0gQ2FsZW5kYXIuU1VOREFZICsgKChkb3cgLSBDYWxlbmRhci5TVU5EQVkgKyA2KSAlIDcpOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChtaWxsaXMgPj0gT05FX0RBWSkgeworICAgICAgICAgICAgbWlsbGlzIC09IE9ORV9EQVk7CisgICAgICAgICAgICArK2RhdGU7CisgICAgICAgICAgICBkb3cgPSBDYWxlbmRhci5TVU5EQVkgKyAoKGRvdyAtIENhbGVuZGFyLlNVTkRBWSArIDEpICUgNyk7CisgICAgICAgIH0KKworICAgICAgICB0ek9mZnNldCA9IHRlc3RUWi5nZXRPZmZzZXQodGVzdENhbC5nZXQoQ2FsZW5kYXIuRVJBKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RDYWwuZ2V0KENhbGVuZGFyLllFQVIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdENhbC5nZXQoQ2FsZW5kYXIuTU9OVEgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbGxpcyk7CisgICAgICAgIHR6UmF3T2Zmc2V0ID0gdGVzdFRaLmdldFJhd09mZnNldCgpOworICAgICAgICB0ek9mZnNldEZsb2F0ID0gbmV3IEZsb2F0KChmbG9hdCl0ek9mZnNldC8oZmxvYXQpMzYwMDAwMCk7CisgICAgICAgIHR6UmF3T2Zmc2V0RmxvYXQgPSBuZXcgRmxvYXQoKGZsb2F0KXR6UmF3T2Zmc2V0LyhmbG9hdCkzNjAwMDAwKTsKKworICAgICAgICBEYXRlIHRlc3REYXRlID0gdGVzdENhbC5nZXRUaW1lKCk7CisKKyAgICAgICAgYm9vbGVhbiBpbkRheWxpZ2h0VGltZSA9IHRlc3RUWi5pbkRheWxpZ2h0VGltZSh0ZXN0RGF0ZSk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NL2RkL3l5eXkgSEg6bW0iKTsKKyAgICAgICAgc2RmLnNldENhbGVuZGFyKHRlc3RDYWwpOworICAgICAgICBTdHJpbmcgaW5EYXlsaWdodFRpbWVTdHJpbmc7CisKKyAgICAgICAgYm9vbGVhbiBwYXNzZWQ7CisKKyAgICAgICAgaWYgKGluRGF5bGlnaHRUaW1lKQorICAgICAgICB7CisgICAgICAgICAgICBpbkRheWxpZ2h0VGltZVN0cmluZyA9ICIgRFNUICI7CisgICAgICAgICAgICBwYXNzZWQgPSAodHpPZmZzZXQgPT0gKHR6UmF3T2Zmc2V0ICsgMzYwMDAwMCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgaW5EYXlsaWdodFRpbWVTdHJpbmcgPSAiICAgICAiOworICAgICAgICAgICAgcGFzc2VkID0gKHR6T2Zmc2V0ID09IHR6UmF3T2Zmc2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBvdXRwdXQgPSB0ZXN0VFouZ2V0SUQoKSArICIgIiArIHNkZi5mb3JtYXQodGVzdERhdGUpICsKKyAgICAgICAgICAgICIgT2Zmc2V0KCIgKyB0ek9mZnNldEZsb2F0ICsgIikiICsKKyAgICAgICAgICAgICIgUmF3T2Zmc2V0KCIgKyB0elJhd09mZnNldEZsb2F0ICsgIikiICsKKyAgICAgICAgICAgICIgIiArIG1pbGxpcy8oZmxvYXQpMzYwMDAwMCArICIgIiArCisgICAgICAgICAgICBpbkRheWxpZ2h0VGltZVN0cmluZzsKKworICAgICAgICBpZiAocGFzc2VkKQorICAgICAgICAgICAgb3V0cHV0ICs9ICIgICAgICI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG91dHB1dCArPSAiRVJST1IiOworCisgICAgICAgIGlmIChwYXNzZWQpIGxvZ2xuKG91dHB1dCk7IGVsc2UgZXJybG4ob3V0cHV0KTsKKyAgICAgICAgcmV0dXJuIHBhc3NlZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDQU5OT1QgUkVQUk9EVURFCisgICAgICoKKyAgICAgKiBZZXQgYW5vdGhlciBfYWxsZWdlZF8gYnVnIGluIFRpbWVab25lLmdldE9mZnNldCgpLCBhIG1ldGhvZCB0aGF0IG5ldmVyCisgICAgICogc2hvdWxkIGhhdmUgYmVlbiBtYWRlIHB1YmxpYy4gIEl0J3Mgc2ltcGx5IHRvbyBoYXJkIHRvIHVzZSBjb3JyZWN0bHkuCisgICAgICoKKyAgICAgKiBUaGUgb3JpZ2luYWwgdGVzdCBjb2RlIGZhaWxlZCB0byBkbyB0aGUgZm9sbG93aW5nOgorICAgICAqICgxKSBDYWxsIENhbGVuZGFyLnNldFRpbWUoKSBiZWZvcmUgZ2V0dGluZyB0aGUgZmllbGRzIQorICAgICAqICgyKSBVc2UgdGhlIHJpZ2h0IG1pbGxpcyAoYXMgdXN1YWwpIGZvciBnZXRPZmZzZXQoKTsgdGhleSB3ZXJlIHBhc3NpbmcKKyAgICAgKiAgICAgaW4gdGhlIE1JTExJUyBmaWVsZCwgaW5zdGVhZCBvZiB0aGUgU1RBTkRBUkQgTUlMTElTIElOIERBWS4KKyAgICAgKiBXaGVuIHlvdSBmaXggdGhlc2UgdHdvIHByb2JsZW1zLCB0aGUgdGVzdCBwYXNzZXMsIGFzIGV4cGVjdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTI2Njc4KCkgeworICAgIC8vIE5vdGU6IHRoaXMgdGVzdCBkZXBlbmRzIG9uIHRoZSBQU1QgdGltZSB6b25lLgorICAgIFRpbWVab25lIGluaXRpYWxab25lID0gVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHR6KTsKKyAgICAgICAgY2FsLnNldFRpbWVab25lKHR6KTsKKworICAgICAgICBqYXZhLnV0aWwuQ2FsZW5kYXIgdGVtcGNhbCA9IGphdmEudXRpbC5DYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICB0ZW1wY2FsLmNsZWFyKCk7CisgICAgICAgIHRlbXBjYWwuc2V0KDE5OTgsIENhbGVuZGFyLkFQUklMLCA1LCAxMCwgMCk7CisgICAgICAgIERhdGUgZHQgPSB0ZW1wY2FsLmdldFRpbWUoKTsKKyAgICAvLyB0aGUgZHQgdmFsdWUgaXMgbG9jYWwgdGltZSBpbiBQU1QuCisgICAgICAgIGlmICghdHouaW5EYXlsaWdodFRpbWUoZHQpKQorICAgICAgICAgICAgZXJybG4oIldlJ3JlIG5vdCBpbiBEYXlsaWdodCBTYXZpbmdzIFRpbWUgYW5kIHdlIHNob3VsZCBiZS5cbiIpOworCisgICAgICAgIGNhbC5zZXRUaW1lKGR0KTsKKyAgICAgICAgaW50IGVyYSA9IGNhbC5nZXQoQ2FsZW5kYXIuRVJBKTsKKyAgICAgICAgaW50IHllYXIgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICBpbnQgbW9udGggPSBjYWwuZ2V0KENhbGVuZGFyLk1PTlRIKTsKKyAgICAgICAgaW50IGRheSA9IGNhbC5nZXQoQ2FsZW5kYXIuREFURSk7CisgICAgICAgIGludCBkYXlPZldlZWsgPSBjYWwuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKTsKKyAgICAgICAgaW50IG1pbGxpcyA9IGNhbC5nZXQoQ2FsZW5kYXIuTUlMTElTRUNPTkQpICsKKyAgICAgICAgICAgIChjYWwuZ2V0KENhbGVuZGFyLlNFQ09ORCkgKworICAgICAgICAgICAgIChjYWwuZ2V0KENhbGVuZGFyLk1JTlVURSkgKworICAgICAgICAgICAgICAoY2FsLmdldChDYWxlbmRhci5IT1VSKSAqIDYwKSAqIDYwKSAqIDEwMDApIC0KKyAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCk7CisKKyAgICAgICAgbG9uZyBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoZXJhLCB5ZWFyLCBtb250aCwgZGF5LCBkYXlPZldlZWssIG1pbGxpcyk7CisgICAgICAgIGxvbmcgcmF3X29mZnNldCA9IHR6LmdldFJhd09mZnNldCgpOworICAgICAgICBpZiAob2Zmc2V0ID09IHJhd19vZmZzZXQpCisgICAgICAgICAgICBlcnJsbigiT2Zmc2V0cyBzaG91bGQgbm90IG1hdGNoIHdoZW4gaW4gRFNUIik7CisKKyAgICAvLyByZXN0b3JlIHRoZSBpbml0aWFsIHRpbWUgem9uZSBzbyB0aGF0IHRoaXMgdGVzdCBjYXNlCisgICAgLy8gZG9lc24ndCBhZmZlY3QgdGhlIG90aGVycy4KKyAgICBUaW1lWm9uZS5zZXREZWZhdWx0KGluaXRpYWxab25lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoaW50KSB0aHJvd3MgZXhjZXB0aW9uIGZvciBjZXJ0YWluIHZhbHVlcywKKyAgICAgKiBkdWUgdG8gYSBmYXVsdHkgY29uc3RhbnQgaW4gVGltZVpvbmUuamF2YS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE1MTQwNigpIHsKKyAgICAgICAgaW50IG1heCA9IDA7CisgICAgICAgIGZvciAoaW50IGg9LTI4OyBoPD0zMDsgKytoKSB7CisgICAgICAgICAgICAvLyBoIGlzIGluIGhhbGYtaG91cnMgZnJvbSBHTVQ7IHJhd29mZnNldCBpcyBpbiBtaWxsaXMKKyAgICAgICAgICAgIGludCByYXdvZmZzZXQgPSBoICogMTgwMDAwMDsKKyAgICAgICAgICAgIGludCBoaCA9IChoPDApID8gLWggOiBoOworICAgICAgICAgICAgU3RyaW5nIGhuYW1lID0gKChoPDApID8gIkdNVC0iIDogIkdNVCsiKSArCisgICAgICAgICAgICAgICAgKChoaC8yIDwgMTApID8gIjAiIDogIiIpICsKKyAgICAgICAgICAgICAgICAoaGgvMikgKyAnOicgKworICAgICAgICAgICAgICAgICgoaGglMj09MCkgPyAiMDAiIDogIjMwIik7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIGlkcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcyhyYXdvZmZzZXQpOworICAgICAgICAgICAgICAgIGlmIChpZHMubGVuZ3RoID4gbWF4KSBtYXggPSBpZHMubGVuZ3RoOworICAgICAgICAgICAgICAgIGxvZ2xuKGhuYW1lICsgJyAnICsgaWRzLmxlbmd0aCArCisgICAgICAgICAgICAgICAgICAgICAgKChpZHMubGVuZ3RoID4gMCkgPyAoIiBlLmcuICIgKyBpZHNbMF0pIDogIiIpKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oaG5hbWUgKyAnICcgKyAiRmFpbDogIiArIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxvZ2xuKCJNYXhpbXVtIHpvbmVzIHBlciBvZmZzZXQgPSAiICsgbWF4KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE1MTQyOSgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpOworICAgICAgICAgICAgLypTdHJpbmcgbmFtZSA9Ki8gdHouZ2V0RGlzcGxheU5hbWUodHJ1ZSwgSW50ZWdlci5NQVhfVkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICAgICAgZXJybG4oIklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBub3QgdGhyb3duIGJ5IFRpbWVab25lLmdldERpc3BsYXlOYW1lKCkiKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaW1wbGVUaW1lWm9uZSBhY2NlcHRzIGlsbGVnYWwgRFNUIHNhdmluZ3MgdmFsdWVzLiAgVGhlc2UgdmFsdWVzCisgICAgICogbXVzdCBiZSBub24temVyby4gIFRoZXJlIGlzIG5vIHVwcGVyIGxpbWl0IGF0IHRoaXMgdGltZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE1NDUyNSgpIHsKKyAgICAgICAgZmluYWwgaW50IEdPT0QgPSAxLCBCQUQgPSAwOworICAgICAgICBpbnRbXSBEQVRBID0geworICAgICAgICAgICAgMSwgR09PRCwKKyAgICAgICAgICAgIDAsIEJBRCwKKyAgICAgICAgICAgIC0xLCBCQUQsCisgICAgICAgICAgICA2MCo2MCoxMDAwLCBHT09ELAorICAgICAgICAgICAgSW50ZWdlci5NSU5fVkFMVUUsIEJBRCwKKyAgICAgICAgICAgIC8vIEludGVnZXIuTUFYX1ZBTFVFLCA/LCAvLyBubyB1cHBlciBsaW1pdCBvbiBEU1Qgc2F2aW5ncyBhdCB0aGlzIHRpbWUKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBpbnQgc2F2aW5ncyA9IERBVEFbaV07CisgICAgICAgICAgICBib29sZWFuIHZhbGlkID0gREFUQVtpKzFdID09IEdPT0Q7CisgICAgICAgICAgICBTdHJpbmcgbWV0aG9kID0gbnVsbDsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajwyOyArK2opIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGopIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gImNvbnN0cnVjdG9yIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIFNpbXBsZVRpbWVab25lIHogPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgImlkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5KQU5VQVJZLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLk1BUkNILCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhdmluZ3MpOyAvLyA8LSB3aGF0IHdlJ3JlIGludGVyZXN0ZWQgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSAic2V0RFNUU2F2aW5ncygpIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHogPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkdNVCIpOworICAgICAgICAgICAgICAgICAgICAgICAgei5zZXREU1RTYXZpbmdzKHNhdmluZ3MpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiUGFzczogRFNUIHNhdmluZ3Mgb2YgIiArIHNhdmluZ3MgKyAiIGFjY2VwdGVkIGJ5ICIgKyBtZXRob2QpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IERTVCBzYXZpbmdzIG9mICIgKyBzYXZpbmdzICsgIiBhY2NlcHRlZCBieSAiICsgbWV0aG9kKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWxpZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IERTVCBzYXZpbmdzIG9mICIgKyBzYXZpbmdzICsgIiB0byAiICsgbWV0aG9kICsgIiBnYXZlICIgKyBlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJQYXNzOiBEU1Qgc2F2aW5ncyBvZiAiICsgc2F2aW5ncyArICIgdG8gIiArIG1ldGhvZCArICIgZ2F2ZSAiICsgZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaW1wbGVUaW1lWm9uZS5oYXNTYW1lUnVsZXMoKSBkb2Vzbid0IHdvcmsgZm9yIHpvbmVzIHdpdGggbm8gRFNUCisgICAgICogYW5kIGRpZmZlcmVudCBEU1QgcGFyYW1ldGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE1NDUzNygpIHsKKyAgICAgICAgLy8gdHoxIGFuZCB0ejIgaGF2ZSBubyBEU1QgYW5kIGRpZmZlcmVudCBydWxlIHBhcmFtZXRlcnMKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdHoxID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICIxIiwgMCwgMCwgMCwgMCwgMiwgMCwgMCwgMCk7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHR6MiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiMiIsIDEsIDAsIDAsIDAsIDMsIDAsIDAsIDApOworICAgICAgICAvLyB0emEgYW5kIHR6QSBoYXZlIHRoZSBzYW1lIHJ1bGUgcGFyYW1zCisgICAgICAgIFNpbXBsZVRpbWVab25lIHR6YSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiYSIsIDAsIDEsIDAsIDAsIDMsIDIsIDAsIDApOworICAgICAgICBTaW1wbGVUaW1lWm9uZSB0ekEgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkEiLCAwLCAxLCAwLCAwLCAzLCAyLCAwLCAwKTsKKyAgICAgICAgLy8gdHpiIGRpZmZlcnMgZnJvbSB0emEKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdHpiID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJiIiwgMCwgMSwgMCwgMCwgMywgMSwgMCwgMCk7CisgICAgICAgIGlmICh0ejEudXNlRGF5bGlnaHRUaW1lKCkgfHwgdHoyLnVzZURheWxpZ2h0VGltZSgpIHx8CisgICAgICAgICAgICAhdHphLnVzZURheWxpZ2h0VGltZSgpIHx8ICF0ekEudXNlRGF5bGlnaHRUaW1lKCkgfHwKKyAgICAgICAgICAgICF0emIudXNlRGF5bGlnaHRUaW1lKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJUZXN0IGlzIGJyb2tlbiAtLSByZXdyaXRlIGl0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0emEuaGFzU2FtZVJ1bGVzKHR6QSkgfHwgdHphLmhhc1NhbWVSdWxlcyh0emIpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbDogaGFzU2FtZVJ1bGVzKCkgYnJva2VuIGZvciB6b25lcyB3aXRoIHJ1bGVzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0ejEuaGFzU2FtZVJ1bGVzKHR6MikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBoYXNTYW1lUnVsZXMoKSByZXR1cm5zIGZhbHNlIGZvciB6b25lcyB3aXRob3V0IHJ1bGVzIik7CisgICAgICAgICAgICBlcnJsbigiem9uZSAxID0gIiArIHR6MSk7CisgICAgICAgICAgICBlcnJsbigiem9uZSAyID0gIiArIHR6Mik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTaW1wbGVUaW1lWm9uZSBjb25zdHJ1Y3RvcnMsIHNldFN0YXJ0UnVsZSgpLCBhbmQgc2V0RW5kUnVsZSgpIGRvbid0CisgICAgICogY2hlY2sgZm9yIG91dC1vZi1yYW5nZSBhcmd1bWVudHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdDQxNTQ1NDIoKSB7CisgICAgICAgIGZpbmFsIGludCBHT09EID0gMTsKKyAgICAgICAgZmluYWwgaW50IEJBRCAgPSAwOworCisgICAgICAgIGZpbmFsIGludCBHT09EX01PTlRIICAgICAgID0gQ2FsZW5kYXIuSkFOVUFSWTsKKyAgICAgICAgZmluYWwgaW50IEdPT0RfREFZICAgICAgICAgPSAxOworICAgICAgICBmaW5hbCBpbnQgR09PRF9EQVlfT0ZfV0VFSyA9IENhbGVuZGFyLlNVTkRBWTsKKyAgICAgICAgZmluYWwgaW50IEdPT0RfVElNRSAgICAgICAgPSAwOworCisgICAgICAgIGludFtdIERBVEEgPSB7CisgICAgICAgICAgICBHT09ELCBJbnRlZ2VyLk1JTl9WQUxVRSwgICAgMCwgIEludGVnZXIuTUFYX1ZBTFVFLCAgIEludGVnZXIuTUlOX1ZBTFVFLAorICAgICAgICAgICAgR09PRCwgQ2FsZW5kYXIuSkFOVUFSWSwgICAgLTUsICBDYWxlbmRhci5TVU5EQVksICAgICAwLAorICAgICAgICAgICAgR09PRCwgQ2FsZW5kYXIuREVDRU1CRVIsICAgIDUsICBDYWxlbmRhci5TQVRVUkRBWSwgICAyNCo2MCo2MCoxMDAwLTEsCisgICAgICAgICAgICBCQUQsICBDYWxlbmRhci5ERUNFTUJFUiwgICAgNSwgIENhbGVuZGFyLlNBVFVSREFZLCAgIDI0KjYwKjYwKjEwMDArMSwKKyAgICAgICAgICAgIEJBRCwgIENhbGVuZGFyLkRFQ0VNQkVSLCAgICA1LCAgQ2FsZW5kYXIuU0FUVVJEQVksICAtMSwKKyAgICAgICAgICAgIEJBRCwgIENhbGVuZGFyLkpBTlVBUlksICAgIC02LCAgQ2FsZW5kYXIuU1VOREFZLCAgICAgMCwKKyAgICAgICAgICAgIEJBRCwgIENhbGVuZGFyLkRFQ0VNQkVSLCAgICA2LCAgQ2FsZW5kYXIuU0FUVVJEQVksICAgMjQqNjAqNjAqMTAwMCwKKyAgICAgICAgICAgIEdPT0QsIENhbGVuZGFyLkRFQ0VNQkVSLCAgICAxLCAgMCwgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIEdPT0QsIENhbGVuZGFyLkRFQ0VNQkVSLCAgIDMxLCAgMCwgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIEJBRCwgIENhbGVuZGFyLkFQUklMLCAgICAgIDMxLCAgMCwgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIEJBRCwgIENhbGVuZGFyLkRFQ0VNQkVSLCAgIDMyLCAgMCwgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIEJBRCwgIENhbGVuZGFyLkpBTlVBUlktMSwgICAxLCAgQ2FsZW5kYXIuU1VOREFZLCAgICAgMCwKKyAgICAgICAgICAgIEJBRCwgIENhbGVuZGFyLkRFQ0VNQkVSKzEsICAxLCAgQ2FsZW5kYXIuU1VOREFZLCAgICAgMCwKKyAgICAgICAgICAgIEdPT0QsIENhbGVuZGFyLkRFQ0VNQkVSLCAgIDMxLCAtQ2FsZW5kYXIuU1VOREFZLCAgICAgMCwKKyAgICAgICAgICAgIEdPT0QsIENhbGVuZGFyLkRFQ0VNQkVSLCAgIDMxLCAtQ2FsZW5kYXIuU0FUVVJEQVksICAgMCwKKyAgICAgICAgICAgIEJBRCwgIENhbGVuZGFyLkRFQ0VNQkVSLCAgIDMyLCAtQ2FsZW5kYXIuU0FUVVJEQVksICAgMCwKKyAgICAgICAgICAgIEJBRCwgIENhbGVuZGFyLkRFQ0VNQkVSLCAgLTMyLCAtQ2FsZW5kYXIuU0FUVVJEQVksICAgMCwKKyAgICAgICAgICAgIEJBRCwgIENhbGVuZGFyLkRFQ0VNQkVSLCAgIDMxLCAtQ2FsZW5kYXIuU0FUVVJEQVktMSwgMCwKKyAgICAgICAgfTsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgem9uZSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiWiIpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTUpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gc2hvdWxkQmVHb29kID0gKERBVEFbaV0gPT0gR09PRCk7CisgICAgICAgICAgICBpbnQgbW9udGggICAgID0gREFUQVtpKzFdOworICAgICAgICAgICAgaW50IGRheSAgICAgICA9IERBVEFbaSsyXTsKKyAgICAgICAgICAgIGludCBkYXlPZldlZWsgPSBEQVRBW2krM107CisgICAgICAgICAgICBpbnQgdGltZSAgICAgID0gREFUQVtpKzRdOworCisgICAgICAgICAgICBFeGNlcHRpb24gZXggPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB6b25lLnNldFN0YXJ0UnVsZShtb250aCwgZGF5LCBkYXlPZldlZWssIHRpbWUpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBleCA9IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGV4ID09IG51bGwpICE9IHNob3VsZEJlR29vZCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJzZXRTdGFydFJ1bGUobW9udGg9IiArIG1vbnRoICsgIiwgZGF5PSIgKyBkYXkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGRheU9mV2Vlaz0iICsgZGF5T2ZXZWVrICsgIiwgdGltZT0iICsgdGltZSArCisgICAgICAgICAgICAgICAgICAgICAgKHNob3VsZEJlR29vZCA/ICgiKSBzaG91bGQgd29yayBidXQgdGhyb3dzICIgKyBleCkKKyAgICAgICAgICAgICAgICAgICAgICAgOiAiKSBzaG91bGQgZmFpbCBidXQgZG9lc24ndCIpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZXggPSBudWxsOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB6b25lLnNldEVuZFJ1bGUobW9udGgsIGRheSwgZGF5T2ZXZWVrLCB0aW1lKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXggPSBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChleCA9PSBudWxsKSAhPSBzaG91bGRCZUdvb2QpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigic2V0RW5kUnVsZShtb250aD0iICsgbW9udGggKyAiLCBkYXk9IiArIGRheSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZGF5T2ZXZWVrPSIgKyBkYXlPZldlZWsgKyAiLCB0aW1lPSIgKyB0aW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAoc2hvdWxkQmVHb29kID8gKCIpIHNob3VsZCB3b3JrIGJ1dCB0aHJvd3MgIiArIGV4KQorICAgICAgICAgICAgICAgICAgICAgICA6ICIpIHNob3VsZCBmYWlsIGJ1dCBkb2Vzbid0IikpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBleCA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8qU2ltcGxlVGltZVpvbmUgdGVtcCA9Ki8gbmV3IFNpbXBsZVRpbWVab25lKDAsICJaIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoLCBkYXksIGRheU9mV2VlaywgdGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RBWV9PRl9XRUVLLCBHT09EX1RJTUUpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBleCA9IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGV4ID09IG51bGwpICE9IHNob3VsZEJlR29vZCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJTaW1wbGVUaW1lWm9uZShtb250aD0iICsgbW9udGggKyAiLCBkYXk9IiArIGRheSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZGF5T2ZXZWVrPSIgKyBkYXlPZldlZWsgKyAiLCB0aW1lPSIgKyB0aW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAoc2hvdWxkQmVHb29kID8gKCIsIDxlbmQ+KSBzaG91bGQgd29yayBidXQgdGhyb3dzICIgKyBleCkKKyAgICAgICAgICAgICAgICAgICAgICAgOiAiLCA8ZW5kPikgc2hvdWxkIGZhaWwgYnV0IGRvZXNuJ3QiKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGV4ID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLypTaW1wbGVUaW1lWm9uZSB0ZW1wID0gKi9uZXcgU2ltcGxlVGltZVpvbmUoMCwgIloiLAorICAgICAgICAgICAgICAgICAgICAgICAgR09PRF9NT05USCwgR09PRF9EQVksIEdPT0RfREFZX09GX1dFRUssIEdPT0RfVElNRSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoLCBkYXksIGRheU9mV2VlaywgdGltZSk7CisgICAgICAgICAgICAgICAvLyB0ZW1wID0gbnVsbDsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXggPSBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChleCA9PSBudWxsKSAhPSBzaG91bGRCZUdvb2QpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiU2ltcGxlVGltZVpvbmUoPHN0YXJ0PiwgbW9udGg9IiArIG1vbnRoICsgIiwgZGF5PSIgKyBkYXkgKworICAgICAgICAgICAgICAgICAgICAgICIsIGRheU9mV2Vlaz0iICsgZGF5T2ZXZWVrICsgIiwgdGltZT0iICsgdGltZSArCisgICAgICAgICAgICAgICAgICAgICAgKHNob3VsZEJlR29vZCA/ICgiKSBzaG91bGQgd29yayBidXQgdGhyb3dzICIgKyBleCkKKyAgICAgICAgICAgICAgICAgICAgICAgOiAiKSBzaG91bGQgZmFpbCBidXQgZG9lc24ndCIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNpbXBsZVRpbWVab25lLmdldE9mZnNldCBhY2NlcHRzIGlsbGVnYWwgYXJndW1lbnRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTU0NjUwKCkgeworICAgICAgICBmaW5hbCBpbnQgR09PRD0xLCBCQUQ9MDsKKyAgICAgICAgZmluYWwgaW50IEdPT0RfRVJBPUdyZWdvcmlhbkNhbGVuZGFyLkFELCBHT09EX1lFQVI9MTk5OCwgR09PRF9NT05USD1DYWxlbmRhci5BVUdVU1Q7CisgICAgICAgIGZpbmFsIGludCBHT09EX0RBWT0yLCBHT09EX0RPVz1DYWxlbmRhci5TVU5EQVksIEdPT0RfVElNRT0xNiozNjAwMDAwOworICAgICAgICBpbnRbXSBEQVRBID0geworICAgICAgICAgICAgR09PRCwgR09PRF9FUkEsIEdPT0RfWUVBUiwgR09PRF9NT05USCwgR09PRF9EQVksIEdPT0RfRE9XLCBHT09EX1RJTUUsCisKKyAgICAgICAgICAgIEdPT0QsIEdyZWdvcmlhbkNhbGVuZGFyLkJDLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgR09PRCwgR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIEdPT0RfWUVBUiwgR09PRF9NT05USCwgR09PRF9EQVksIEdPT0RfRE9XLCBHT09EX1RJTUUsCisgICAgICAgICAgICBCQUQsICBHcmVnb3JpYW5DYWxlbmRhci5CQy0xLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgQkFELCAgR3JlZ29yaWFuQ2FsZW5kYXIuQUQrMSwgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgR09PRF9ET1csIEdPT0RfVElNRSwKKworICAgICAgICAgICAgR09PRCwgR09PRF9FUkEsIEdPT0RfWUVBUiwgQ2FsZW5kYXIuSkFOVUFSWSwgR09PRF9EQVksIEdPT0RfRE9XLCBHT09EX1RJTUUsCisgICAgICAgICAgICBHT09ELCBHT09EX0VSQSwgR09PRF9ZRUFSLCBDYWxlbmRhci5ERUNFTUJFUiwgR09PRF9EQVksIEdPT0RfRE9XLCBHT09EX1RJTUUsCisgICAgICAgICAgICBCQUQsICBHT09EX0VSQSwgR09PRF9ZRUFSLCBDYWxlbmRhci5KQU5VQVJZLTEsIEdPT0RfREFZLCBHT09EX0RPVywgR09PRF9USU1FLAorICAgICAgICAgICAgQkFELCAgR09PRF9FUkEsIEdPT0RfWUVBUiwgQ2FsZW5kYXIuREVDRU1CRVIrMSwgR09PRF9EQVksIEdPT0RfRE9XLCBHT09EX1RJTUUsCisKKyAgICAgICAgICAgIEdPT0QsIEdPT0RfRVJBLCBHT09EX1lFQVIsIENhbGVuZGFyLkpBTlVBUlksIDEsIEdPT0RfRE9XLCBHT09EX1RJTUUsCisgICAgICAgICAgICBHT09ELCBHT09EX0VSQSwgR09PRF9ZRUFSLCBDYWxlbmRhci5KQU5VQVJZLCAzMSwgR09PRF9ET1csIEdPT0RfVElNRSwKKyAgICAgICAgICAgIEJBRCwgIEdPT0RfRVJBLCBHT09EX1lFQVIsIENhbGVuZGFyLkpBTlVBUlksIDAsIEdPT0RfRE9XLCBHT09EX1RJTUUsCisgICAgICAgICAgICBCQUQsICBHT09EX0VSQSwgR09PRF9ZRUFSLCBDYWxlbmRhci5KQU5VQVJZLCAzMiwgR09PRF9ET1csIEdPT0RfVElNRSwKKworICAgICAgICAgICAgR09PRCwgR09PRF9FUkEsIEdPT0RfWUVBUiwgR09PRF9NT05USCwgR09PRF9EQVksIENhbGVuZGFyLlNVTkRBWSwgR09PRF9USU1FLAorICAgICAgICAgICAgR09PRCwgR09PRF9FUkEsIEdPT0RfWUVBUiwgR09PRF9NT05USCwgR09PRF9EQVksIENhbGVuZGFyLlNBVFVSREFZLCBHT09EX1RJTUUsCisgICAgICAgICAgICBCQUQsICBHT09EX0VSQSwgR09PRF9ZRUFSLCBHT09EX01PTlRILCBHT09EX0RBWSwgQ2FsZW5kYXIuU1VOREFZLTEsIEdPT0RfVElNRSwKKyAgICAgICAgICAgIEJBRCwgIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBDYWxlbmRhci5TQVRVUkRBWSsxLCBHT09EX1RJTUUsCisKKyAgICAgICAgICAgIEdPT0QsIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgMCwKKyAgICAgICAgICAgIEdPT0QsIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgMjQqMzYwMDAwMC0xLAorICAgICAgICAgICAgQkFELCAgR09PRF9FUkEsIEdPT0RfWUVBUiwgR09PRF9NT05USCwgR09PRF9EQVksIEdPT0RfRE9XLCAtMSwKKyAgICAgICAgICAgIEJBRCwgIEdPT0RfRVJBLCBHT09EX1lFQVIsIEdPT0RfTU9OVEgsIEdPT0RfREFZLCBHT09EX0RPVywgMjQqMzYwMDAwMCwKKyAgICAgICAgfTsKKworICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz03KSB7CisgICAgICAgICAgICBib29sZWFuIGdvb2QgPSBEQVRBW2ldID09IEdPT0Q7CisgICAgICAgICAgICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIC8qaW50IG9mZnNldCA9Ki8gdHouZ2V0T2Zmc2V0KERBVEFbaSsxXSwgREFUQVtpKzJdLCBEQVRBW2krM10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQVRBW2krNF0sIERBVEFbaSs1XSwgREFUQVtpKzZdKTsKKyAgICAgICAgICAgICAgICAvL29mZnNldCA9IDA7CisgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgIGUgPSBleDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChnb29kICE9IChlID09IG51bGwpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IGdldE9mZnNldCgiICsKKyAgICAgICAgICAgICAgICAgICAgICBEQVRBW2krMV0gKyAiLCAiICsgREFUQVtpKzJdICsgIiwgIiArIERBVEFbaSszXSArICIsICIgKworICAgICAgICAgICAgICAgICAgICAgIERBVEFbaSs0XSArICIsICIgKyBEQVRBW2krNV0gKyAiLCAiICsgREFUQVtpKzZdICsKKyAgICAgICAgICAgICAgICAgICAgICAoZ29vZCA/ICgiKSB0aHJldyAiICsgZSkgOiAiKSBhY2NlcHRzIGludmFsaWQgYXJncyIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRpbWVab25lIGNvbnN0cnVjdG9ycyBhbGxvdyBudWxsIElEcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE1OTkyMigpIHsKKyAgICAgICAgVGltZVpvbmUgeiA9IG51bGw7CisKKyAgICAgICAgLy8gVGltZVpvbmUgQVBJLiAgT25seSBoYXNTYW1lUnVsZXMoKSBhbmQgc2V0RGVmYXVsdCgpIHNob3VsZAorICAgICAgICAvLyBhbGxvdyBudWxsLgorICAgICAgICB0cnkgeworICAgICAgICAgICAgeiA9IFRpbWVab25lLmdldFRpbWVab25lKG51bGwpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bGwgYWxsb3dlZCBpbiBnZXRUaW1lWm9uZSIpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkdNVCIpOworICAgICAgICB0cnkgeworICAgICAgICAvLyB7ZGxmfSByZXF1aXJpbmcgY2FzdCBmb3IgZGlzYW1iaWd1YXRpb24gaXMgb2sgZm9yIGNvbXBhdGliaWxpdHkgc2luY2UgbnVsbAorICAgICAgICAvLyBpcyBub3QgYSB2YWxpZCBhcmd1bWVudCB0byB0aGlzIEFQSQorICAgICAgICAgICAgei5nZXREaXNwbGF5TmFtZShmYWxzZSwgVGltZVpvbmUuU0hPUlQsIChVTG9jYWxlKW51bGwpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bGwgYWxsb3dlZCBpbiBnZXREaXNwbGF5TmFtZSgzKSIpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAvLyB7ZGxmfSBzZWUgYWJvdmUKKyAgICAgICAgICAgIHouZ2V0RGlzcGxheU5hbWUoKFVMb2NhbGUpbnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVsbCBhbGxvd2VkIGluIGdldERpc3BsYXlOYW1lKDEpIik7CisgICAgICAgIH0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoei5oYXNTYW1lUnVsZXMobnVsbCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogaGFzU2FtZVJ1bGVzIHJldHVybmVkIHRydWUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bGwgTk9UIGFsbG93ZWQgaW4gaGFzU2FtZVJ1bGVzIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHouaW5EYXlsaWdodFRpbWUobnVsbCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVsbCBhbGxvd2VkIGluIGluRGF5bGlnaHRUaW1lIik7CisgICAgICAgIH0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB6LnNldElEKG51bGwpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE51bGwgYWxsb3dlZCBpbiBzZXRJRCIpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIFRpbWVab25lIHNhdmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KG51bGwpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVsbCBOT1QgYWxsb3dlZCBpbiBzZXREZWZhdWx0Iik7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBUaW1lWm9uZS5zZXREZWZhdWx0KHNhdmUpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2ltcGxlVGltZVpvbmUgQVBJCisgICAgICAgIFNpbXBsZVRpbWVab25lIHMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcyA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCBudWxsKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdWxsIGFsbG93ZWQgaW4gU2ltcGxlVGltZVpvbmUoMikiKTsKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHMgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgbnVsbCwgMCwgMSwgMCwgMCwgMCwgMSwgMCwgMCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogTnVsbCBhbGxvd2VkIGluIFNpbXBsZVRpbWVab25lKDEwKSIpOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgcyA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCBudWxsLCAwLCAxLCAwLCAwLCAwLCAxLCAwLCAwLCAxMDAwKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBOdWxsIGFsbG93ZWQgaW4gU2ltcGxlVGltZVpvbmUoMTEpIik7CisgICAgICAgIH0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIGlmKHMhPW51bGwpeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IERpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBFeGNlcHRpb24iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRpbWVab25lIGJyb2tlbiBhdCBtaWRuaWdodC4gIFRoZSBUaW1lWm9uZSBjb2RlIGZhaWxzIHRvIGhhbmRsZQorICAgICAqIHRyYW5zaXRpb25zIGF0IG1pZG5pZ2h0IGNvcnJlY3RseS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE2MjU5MygpIHsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBmbXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgieiIsIExvY2FsZS5VUyk7CisgICAgICAgIGZpbmFsIGludCBPTkVfSE9VUiA9IDYwKjYwKjEwMDA7CisgICAgICAgIGZpbmFsIGZsb2F0IEggPSAoZmxvYXQpIE9ORV9IT1VSOworICAgICAgICBUaW1lWm9uZSBpbml0aWFsWm9uZSA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdCgiTU1NIGRkIHl5eXkgSEg6bW0geiIpOworCisgICAgICAgIFNpbXBsZVRpbWVab25lIGFzdW5jaW9uID0gbmV3IFNpbXBsZVRpbWVab25lKC00Kk9ORV9IT1VSLCAiQW1lcmljYS9Bc3VuY2lvbiIgLypQWSVzVCovLAorICAgICAgICAgICAgQ2FsZW5kYXIuT0NUT0JFUiwgMSwgMCAvKkRPTSovLCAwKk9ORV9IT1VSLAorICAgICAgICAgICAgQ2FsZW5kYXIuTUFSQ0gsIDEsIDAgLypET00qLywgMCpPTkVfSE9VUiwgMSpPTkVfSE9VUik7CisKKyAgICAgICAgLyogWm9uZQorICAgICAgICAgKiBTdGFydGluZyB0aW1lCisgICAgICAgICAqIFRyYW5zaXRpb24gZXhwZWN0ZWQgYmV0d2VlbiBzdGFydCsxSCBhbmQgc3RhcnQrMkgKKyAgICAgICAgICovCisgICAgICAgIE9iamVjdFtdIERBVEEgPSB7CisgICAgICAgICAgICBuZXcgU2ltcGxlVGltZVpvbmUoMipPTkVfSE9VUiwgIkFzaWEvRGFtYXNjdXMiIC8qRUUlc1QqLywKKyAgICAgICAgICAgICAgICBDYWxlbmRhci5BUFJJTCwgMSwgMCAvKkRPTSovLCAwKk9ORV9IT1VSLAorICAgICAgICAgICAgICAgIENhbGVuZGFyLk9DVE9CRVIsIDEsIDAgLypET00qLywgMCpPTkVfSE9VUiwgMSpPTkVfSE9VUiksCisgICAgICAgICAgICBuZXcgaW50W10gezE5OTgsIENhbGVuZGFyLlNFUFRFTUJFUiwgMzAsIDIyLCAwfSwKKyAgICAgICAgICAgIEJvb2xlYW4uVFJVRSwKKworICAgICAgICAgICAgYXN1bmNpb24sCisgICAgICAgICAgICBuZXcgaW50W10gezIwMDAsIENhbGVuZGFyLkZFQlJVQVJZLCAyOCwgMjIsIDB9LAorICAgICAgICAgICAgQm9vbGVhbi5GQUxTRSwKKworICAgICAgICAgICAgYXN1bmNpb24sCisgICAgICAgICAgICBuZXcgaW50W10gezIwMDAsIENhbGVuZGFyLkZFQlJVQVJZLCAyOSwgMjIsIDB9LAorICAgICAgICAgICAgQm9vbGVhbi5UUlVFLAorICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdIHpvbmUgPSBuZXcgU3RyaW5nWzRdOworCisgICAgICAgIGZvciAoaW50IGo9MDsgajxEQVRBLmxlbmd0aDsgais9MykgeworICAgICAgICAgICAgVGltZVpvbmUgdHogPSAoVGltZVpvbmUpREFUQVtqXTsKKyAgICAgICAgICAgIFRpbWVab25lLnNldERlZmF1bHQodHopOworICAgICAgICAgICAgZm10LnNldFRpbWVab25lKHR6KTsKKyAgICAgICAgICAgIHNkZi5zZXRUaW1lWm9uZSh0eik7CisKKyAgICAgICAgICAgIC8vIE11c3QgY29uc3RydWN0IHRoZSBEYXRlIG9iamVjdCBBRlRFUiBzZXR0aW5nIHRoZSBkZWZhdWx0IHpvbmUKKyAgICAgICAgICAgIGludFtdIHAgPSAoaW50W10pREFUQVtqKzFdOworICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIGNhbC5jbGVhcigpOworICAgICAgICAgICAgY2FsLnNldChwWzBdLCBwWzFdLCBwWzJdLCBwWzNdLCBwWzRdKTsKKyAgICAgICAgICAgIGxvbmcgc3RhcnQgPSBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gdHJhbnNpdGlvbkV4cGVjdGVkID0gKChCb29sZWFuKURBVEFbaisyXSkuYm9vbGVhblZhbHVlKCk7CisKKyAgICAgICAgICAgIGxvZ2xuKHR6LmdldElEKCkgKyAiOiIpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPDQ7ICsraSkgeworICAgICAgICAgICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKHN0YXJ0ICsgaSpPTkVfSE9VUik7CisgICAgICAgICAgICAgICAgem9uZVtpXSA9IGZtdC5mb3JtYXQoZCk7CisgICAgICAgICAgICAgICAgbG9nbG4oIiIgKyBpICsgIjogIiArIHNkZi5mb3JtYXQoZCkgKyAiID0+ICIgKyB6b25lW2ldICsKKyAgICAgICAgICAgICAgICAgICAgICAiICgiICsgZC5nZXRUaW1lKCkvSCArICIpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYWwuc2V0KHBbMF0sIHBbMV0sIHBbMl0sIDAsIDApOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPDQ7ICsraSkgeworICAgICAgICAgICAgICAgIGludCBoID0gMjIraTsKKyAgICAgICAgICAgICAgICBpbnQgZG9tID0gcFsyXSsoaD49MjQ/MTowKTsKKyAgICAgICAgICAgICAgICBoICU9IDI0OworICAgICAgICAgICAgICAgIGludCBtcyA9IGgqT05FX0hPVVI7CisgICAgICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgY2FsLnNldChwWzBdLCBwWzFdLCBkb20sIDAsIDApOworICAgICAgICAgICAgICAgIGludCBvZmYgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLllFQVIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5NT05USCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRBVEUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtcyk7CisgICAgICAgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5IT1VSLCBoKTsKKyAgICAgICAgICAgICAgICBpbnQgeCA9IGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCk7CisgICAgICAgICAgICAgICAgbG9nbG4oImg9IiArIGggKyAiOyBkb209IiArIGRvbSArCisgICAgICAgICAgICAgICAgICAgICAgIjsgWk9ORV9PRkZTRVQ9IiArIGNhbC5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpL0ggKworICAgICAgICAgICAgICAgICAgICAgICI7IERTVF9PRkZTRVQ9IiArIGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkvSCArCisgICAgICAgICAgICAgICAgICAgICAgIjsgZ2V0T2Zmc2V0KCk9IiArIG9mZi9IICsKKyAgICAgICAgICAgICAgICAgICAgICAiICgiICsgY2FsLmdldFRpbWUoKS5nZXRUaW1lKCkvSCArICIpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoem9uZVswXS5lcXVhbHMoem9uZVsxXSkgJiYKKyAgICAgICAgICAgICAgICAoem9uZVsxXS5lcXVhbHMoem9uZVsyXSkgIT0gdHJhbnNpdGlvbkV4cGVjdGVkKSAmJgorICAgICAgICAgICAgICAgIHpvbmVbMl0uZXF1YWxzKHpvbmVbM10pKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiB0cmFuc2l0aW9uICIgKyB0cmFuc2l0aW9uRXhwZWN0ZWQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgKHRyYW5zaXRpb25FeHBlY3RlZD8idHJhbnNpdGlvbiI6Im5vIHRyYW5zaXRpb24iKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIC8vIHJlc3RvcmUgdGhlIGluaXRpYWwgdGltZSB6b25lIHNvIHRoYXQgdGhpcyB0ZXN0IGNhc2UKKyAgICAvLyBkb2Vzbid0IGFmZmVjdCB0aGUgb3RoZXJzLgorICAgIFRpbWVab25lLnNldERlZmF1bHQoaW5pdGlhbFpvbmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRpbWVab25lIGJyb2tlbiBpbiBsYXN0IGhvdXIgb2YgeWVhcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3Q0MTczNjA0KCkgeworICAgICAgICBUaW1lWm9uZSBwc3QgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIGludCBvMjIgPSBwc3QuZ2V0T2Zmc2V0KDEsIDE5OTgsIDExLCAzMSwgQ2FsZW5kYXIuVEhVUlNEQVksIDIyKjYwKjYwKjEwMDApOworICAgICAgICBpbnQgbzIzID0gcHN0LmdldE9mZnNldCgxLCAxOTk4LCAxMSwgMzEsIENhbGVuZGFyLlRIVVJTREFZLCAyMyo2MCo2MCoxMDAwKTsKKyAgICAgICAgaW50IG8wMCA9IHBzdC5nZXRPZmZzZXQoMSwgMTk5OSwgMCwgMSwgQ2FsZW5kYXIuRlJJREFZLCAwKTsKKyAgICAgICAgaWYgKG8yMiAhPSBvMjMgfHwgbzIyICE9IG8wMCkgeworICAgICAgICAgICAgZXJybG4oIk9mZnNldHMgc2hvdWxkIGJlIHRoZSBzYW1lIChmb3IgUFNUKSwgYnV0IGdvdDogIiArCisgICAgICAgICAgICAgICAgICAiMTIvMzEgMjI6MDAgIiArIG8yMiArCisgICAgICAgICAgICAgICAgICAiLCAxMi8zMSAyMzowMCAiICsgbzIzICsKKyAgICAgICAgICAgICAgICAgICIsIDAxLzAxIDAwOjAwICIgKyBvMDApOworICAgICAgICB9CisKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKCk7CisgICAgICAgIGNhbC5zZXRUaW1lWm9uZShwc3QpOworICAgICAgICBjYWwuY2xlYXIoKTsKKyAgICAgICAgY2FsLnNldCgxOTk4LCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgaW50IGxhc3REU1QgPSBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpOworICAgICAgICBpbnQgdHJhbnNpdGlvbnMgPSAwOworICAgICAgICBpbnQgZGVsdGEgPSA1OworICAgICAgICB3aGlsZSAoY2FsLmdldChDYWxlbmRhci5ZRUFSKSA8IDIwMDApIHsKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuTUlOVVRFLCBkZWx0YSk7CisgICAgICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSAhPSBsYXN0RFNUKSB7CisgICAgICAgICAgICAgICAgKyt0cmFuc2l0aW9uczsKKyAgICAgICAgICAgICAgICBDYWxlbmRhciB0ID0gKENhbGVuZGFyKWNhbC5jbG9uZSgpOworICAgICAgICAgICAgICAgIHQuYWRkKENhbGVuZGFyLk1JTlVURSwgLWRlbHRhKTsKKyAgICAgICAgICAgICAgICBsb2dsbih0LmdldFRpbWUoKSArICIgICIgKyB0LmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSk7CisgICAgICAgICAgICAgICAgbG9nbG4oY2FsLmdldFRpbWUoKSArICIgICIgKyAobGFzdERTVD1jYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRyYW5zaXRpb25zICE9IDQpIHsKKyAgICAgICAgICAgIGVycmxuKCJTYXcgIiArIHRyYW5zaXRpb25zICsgIiB0cmFuc2l0aW9uczsgc2hvdWxkIGhhdmUgc2VlbiA0Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBnZXREaXNwbGF5TmFtZSBkb2Vzbid0IHdvcmsgd2l0aCB1bnVzdWFsIHNhdmluZ3Mvb2Zmc2V0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDE3NjY4NigpIHsKKyAgICAgICAgLy8gQ29uc3RydWN0IGEgem9uZSB0aGF0IGRvZXMgbm90IG9ic2VydmUgRFNUIGJ1dAorICAgICAgICAvLyB0aGF0IGRvZXMgaGF2ZSBhIERTVCBzYXZpbmdzICh3aGljaCBzaG91bGQgYmUgaWdub3JlZCkuCisgICAgICAgIGludCBvZmZzZXQgPSA5MCAqIDYwMDAwOyAvLyAxOjMwCisgICAgICAgIFNpbXBsZVRpbWVab25lIHoxID0gbmV3IFNpbXBsZVRpbWVab25lKG9mZnNldCwgIl9zdGRfem9uZV8iKTsKKyAgICAgICAgejEuc2V0RFNUU2F2aW5ncyg0NSAqIDYwMDAwKTsgLy8gMDo0NQorCisgICAgICAgIC8vIENvbnN0cnVjdCBhIHpvbmUgdGhhdCBvYnNlcnZlcyBEU1QgZm9yIHRoZSBmaXJzdCA2IG1vbnRocy4KKyAgICAgICAgU2ltcGxlVGltZVpvbmUgejIgPSBuZXcgU2ltcGxlVGltZVpvbmUob2Zmc2V0LCAiX2RzdF96b25lXyIpOworICAgICAgICB6Mi5zZXREU1RTYXZpbmdzKDQ1ICogNjAwMDApOyAvLyAwOjQ1CisgICAgICAgIHoyLnNldFN0YXJ0UnVsZShDYWxlbmRhci5KQU5VQVJZLCAxLCAwKTsKKyAgICAgICAgejIuc2V0RW5kUnVsZShDYWxlbmRhci5KVUxZLCAxLCAwKTsKKworICAgICAgICAvLyBBbHNvIGNoZWNrIERhdGVGb3JtYXQKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQxID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInoiKTsKKyAgICAgICAgZm10MS5zZXRUaW1lWm9uZSh6MSk7IC8vIEZvcm1hdCB1c2VzIHN0YW5kYXJkIHpvbmUKKyAgICAgICAgRGF0ZUZvcm1hdCBmbXQyID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoInoiKTsKKyAgICAgICAgZm10Mi5zZXRUaW1lWm9uZSh6Mik7IC8vIEZvcm1hdCB1c2VzIERTVCB6b25lCisgICAgICAgIGphdmEudXRpbC5DYWxlbmRhciB0ZW1wY2FsID0gamF2YS51dGlsLkNhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIHRlbXBjYWwuY2xlYXIoKTsKKyAgICAgICAgdGVtcGNhbC5zZXQoMTk3MCwgQ2FsZW5kYXIuRkVCUlVBUlksIDEpOworICAgICAgICBEYXRlIGRzdCA9IHRlbXBjYWwuZ2V0VGltZSgpOyAvLyBUaW1lIGluIERTVAorICAgICAgICB0ZW1wY2FsLnNldCgxOTcwLCBDYWxlbmRhci5BVUdVU1QsIDEpOworICAgICAgICBEYXRlIHN0ZCA9IHRlbXBjYWwuZ2V0VGltZSgpOyAvLyBUaW1lIGluIHN0YW5kYXJkCisKKyAgICAgICAgLy8gRGVzY3JpcHRpb24sIFJlc3VsdCwgRXhwZWN0ZWQgUmVzdWx0CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUoZmFsc2UsIFNIT1JUKS9zdGQgem9uZSIsCisgICAgICAgICAgICB6MS5nZXREaXNwbGF5TmFtZShmYWxzZSwgVGltZVpvbmUuU0hPUlQpLCAiR01UKzAxOjMwIiwKKyAgICAgICAgICAgICJnZXREaXNwbGF5TmFtZShmYWxzZSwgTE9ORykvc3RkIHpvbmUiLAorICAgICAgICAgICAgejEuZ2V0RGlzcGxheU5hbWUoZmFsc2UsIFRpbWVab25lLkxPTkcgKSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUodHJ1ZSwgU0hPUlQpL3N0ZCB6b25lIiwKKyAgICAgICAgICAgIHoxLmdldERpc3BsYXlOYW1lKHRydWUsIFRpbWVab25lLlNIT1JUKSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiZ2V0RGlzcGxheU5hbWUodHJ1ZSwgTE9ORykvc3RkIHpvbmUiLAorICAgICAgICAgICAgejEuZ2V0RGlzcGxheU5hbWUodHJ1ZSwgVGltZVpvbmUuTE9ORyApLCAiR01UKzAxOjMwIiwKKyAgICAgICAgICAgICJnZXREaXNwbGF5TmFtZShmYWxzZSwgU0hPUlQpL2RzdCB6b25lIiwKKyAgICAgICAgICAgIHoyLmdldERpc3BsYXlOYW1lKGZhbHNlLCBUaW1lWm9uZS5TSE9SVCksICJHTVQrMDE6MzAiLAorICAgICAgICAgICAgImdldERpc3BsYXlOYW1lKGZhbHNlLCBMT05HKS9kc3Qgem9uZSIsCisgICAgICAgICAgICB6Mi5nZXREaXNwbGF5TmFtZShmYWxzZSwgVGltZVpvbmUuTE9ORyApLCAiR01UKzAxOjMwIiwKKyAgICAgICAgICAgICJnZXREaXNwbGF5TmFtZSh0cnVlLCBTSE9SVCkvZHN0IHpvbmUiLAorICAgICAgICAgICAgejIuZ2V0RGlzcGxheU5hbWUodHJ1ZSwgVGltZVpvbmUuU0hPUlQpLCAiR01UKzAyOjE1IiwKKyAgICAgICAgICAgICJnZXREaXNwbGF5TmFtZSh0cnVlLCBMT05HKS9kc3Qgem9uZSIsCisgICAgICAgICAgICB6Mi5nZXREaXNwbGF5TmFtZSh0cnVlLCBUaW1lWm9uZS5MT05HICksICJHTVQrMDI6MTUiLAorICAgICAgICAgICAgIkRhdGVGb3JtYXQuZm9ybWF0KHN0ZCkvc3RkIHpvbmUiLCBmbXQxLmZvcm1hdChzdGQpLCAiR01UKzAxOjMwIiwKKyAgICAgICAgICAgICJEYXRlRm9ybWF0LmZvcm1hdChkc3QpL3N0ZCB6b25lIiwgZm10MS5mb3JtYXQoZHN0KSwgIkdNVCswMTozMCIsCisgICAgICAgICAgICAiRGF0ZUZvcm1hdC5mb3JtYXQoc3RkKS9kc3Qgem9uZSIsIGZtdDIuZm9ybWF0KHN0ZCksICJHTVQrMDE6MzAiLAorICAgICAgICAgICAgIkRhdGVGb3JtYXQuZm9ybWF0KGRzdCkvZHN0IHpvbmUiLCBmbXQyLmZvcm1hdChkc3QpLCAiR01UKzAyOjE1IiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgIGlmICghREFUQVtpKzFdLmVxdWFscyhEQVRBW2krMl0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBEQVRBW2ldICsgIiAtPiAiICsgREFUQVtpKzFdICsgIiwgZXhwICIgKyBEQVRBW2krMl0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2ltcGxlVGltZVpvbmUgYWxsb3dzIGludmFsaWQgRE9NIHZhbHVlcy4KKyAgICAgKi8KKyAgICAvLyBDdXJyZW50IG9yZ25haXphdGlvbiBvZiBkYXRhIGluIHpvbmVpbmZvci5yZXMgYWxsb3dzIG5lZ2F0aXZlCisgICAgLy8gdmFsdWVzIGZyb20gRE9NIHNvIGNvbW1lbnQgdGhlc2UgdGVzdHMgb3V0CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdDQxODQyMjkoKSB7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHpvbmUgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgem9uZSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiQSIsIDAsIC0xLCAwLCAwLCAwLCAwLCAwLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQuIE5vIGV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gZm9yIERPTSAtMSBzdGFydERheSIpOworICAgICAgICB9IGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiKGEpICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkEiLCAwLCAwLCAwLCAwLCAwLCAtMSwgMCwgMCk7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkLiBObyBleGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGZvciBET00gLTEgZW5kRGF5Iik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCIoYikgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgem9uZSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiQSIsIDAsIC0xLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDAwKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQuIE5vIGV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gZm9yIERPTSAtMSBzdGFydERheSArc2F2aW5ncyIpOworICAgICAgICB9IGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiKGMpICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUoMCwgIkEiLCAwLCAwLCAwLCAwLCAwLCAtMSwgMCwgMCwgMTAwMCk7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkLiBObyBleGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGZvciBET00gLTEgZW5kRGF5ICtzYXZpbmdzIik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCIoZCkgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBNYWtlIGEgdmFsaWQgY29uc3RydWN0b3IgY2FsbCBmb3Igc3Vic2VxdWVudCB0ZXN0cy4KKworICAgICAgICB6b25lID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJBIiwgMCwgMSwgMCwgMCwgMCwgMSwgMCwgMCk7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgem9uZS5zZXRTdGFydFJ1bGUoMCwgLTEsIDAsIDApOworICAgICAgICAgICAgZXJybG4oIkZhaWxlZC4gTm8gZXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBmb3IgRE9NIC0xIHNldFN0YXJ0UnVsZSArc2F2aW5ncyIpOworICAgICAgICB9IGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiKGUpICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHpvbmUuc2V0U3RhcnRSdWxlKDAsIC0xLCAwKTsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQuIE5vIGV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gZm9yIERPTSAtMSBzZXRTdGFydFJ1bGUiKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIihmKSAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB6b25lLnNldEVuZFJ1bGUoMCwgLTEsIDAsIDApOworICAgICAgICAgICAgZXJybG4oIkZhaWxlZC4gTm8gZXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBmb3IgRE9NIC0xIHNldEVuZFJ1bGUgK3NhdmluZ3MiKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIihnKSAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB6b25lLnNldEVuZFJ1bGUoMCwgLTEsIDApOworICAgICAgICAgICAgZXJybG4oIkZhaWxlZC4gTm8gZXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBmb3IgRE9NIC0xIHNldEVuZFJ1bGUiKTsKKyAgICAgICAgfSBjYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIihoKSAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKworICAgIC8qKgorICAgICAqIFNpbXBsZVRpbWVab25lLmdldE9mZnNldCgpIHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gd2hlbiB0byBnZXQKKyAgICAgKiBvZiAyLzI5LzE5OTYgKGxlYXAgZGF5KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0NDIwODk2MCAoKSB7CisgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgdHJ5IHsKKyAgICAgICAgLyppbnQgb2Zmc2V0ID0qLyB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTYsIENhbGVuZGFyLkZFQlJVQVJZLCAyOSwKKyAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5USFVSU0RBWSwgMCk7CisgICAgICAgIC8vb2Zmc2V0ID0gMDsKKyAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICBlcnJsbigiRkFJTEVEOiB0byBnZXQgVGltZVpvbmUuZ2V0T2Zmc2V0KDIvMjkvOTYpIik7CisgICAgfQorICAgIHRyeSB7CisgICAgICAgIC8qaW50IG9mZnNldCA9Ki8gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk3LCBDYWxlbmRhci5GRUJSVUFSWSwgMjksCisgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuVEhVUlNEQVksIDApOworICAgICAgICAvL29mZnNldCA9IDA7CisgICAgICAgIHdhcm5sbigiRkFJTEVEOiBUaW1lWm9uZS5nZXRPZmZzZXQoMi8yOS85NykgZXhwZWN0ZWQgdG8gdGhyb3cgRXhjZXB0aW9uLiIpOworICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGxvZ2xuKCJnb3QgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIik7CisgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdG8gc2VlIGlmIERhdGVGb3JtYXQgdW5kZXJzdGFuZHMgem9uZSBlcXVpdmFsZW5jeSBncm91cHMuICBJdAorICAgICAqIG1pZ2h0IHNlZW0gdGhhdCB0aGlzIHNob3VsZCBiZSBhIERhdGVGb3JtYXQgdGVzdCwgYnV0IGl0J3MgcmVhbGx5IGEKKyAgICAgKiBUaW1lWm9uZSB0ZXN0IC0tIHRoZSBjaGFuZ2VzIHRvIERhdGVGb3JtYXQgYXJlIG1pbm9yLgorICAgICAqCisgICAgICogV2UgdXNlIHR3byBrbm93biwgem9uZXMgdGhhdCBhcmUgZXF1aXZhbGVudCwgd2hlcmUgb25lIHpvbmUgaGFzCisgICAgICogbG9jYWxpemVkIG5hbWUgZGF0YSwgYW5kIHRoZSBvdGhlciBkb2Vzbid0LCBpbiBzb21lIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SjQ0OSgpIHsKKyAgICAgICAgLy8gbm90IHVzZWQgU3RyaW5nIHN0cjsKKworICAgICAgICAvLyBNb2RpZnkgdGhlIGZvbGxvd2luZyB0aHJlZSBhcyBuZWNlc3NhcnkuICBUaGUgdHdvIElEcyBtdXN0CisgICAgICAgIC8vIHNwZWNpZnkgdHdvIHpvbmVzIGluIHRoZSBzYW1lIGVxdWl2YWxlbmN5IGdyb3VwLiAgT25lIG11c3QgaGF2ZQorICAgICAgICAvLyBsb2NhbGUgZGF0YSBpbiAnbG9jJzsgdGhlIG90aGVyIG11c3Qgbm90LgorICAgICAgICBTdHJpbmcgaWRXaXRoTG9jYWxlRGF0YSA9ICJBbWVyaWNhL0xvc19BbmdlbGVzIjsKKyAgICAgICAgU3RyaW5nIGlkV2l0aG91dExvY2FsZURhdGEgPSAiUFNUIjsgLy8gIlVTL1BhY2lmaWMiOworICAgICAgICBMb2NhbGUgbG9jID0gbmV3IExvY2FsZSgiZW4iLCAiIiwgIiIpOworCisgICAgICAgIFRpbWVab25lIHpvbmVXaXRoID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoaWRXaXRoTG9jYWxlRGF0YSk7CisgICAgICAgIFRpbWVab25lIHpvbmVXaXRob3V0ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoaWRXaXRob3V0TG9jYWxlRGF0YSk7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBnb3QgdmFsaWQgem9uZXMKKyAgICAgICAgaWYgKCEoem9uZVdpdGguZ2V0SUQoKS5lcXVhbHMoaWRXaXRoTG9jYWxlRGF0YSkgJiYKKyAgICAgICAgICAgICAgem9uZVdpdGhvdXQuZ2V0SUQoKS5lcXVhbHMoaWRXaXRob3V0TG9jYWxlRGF0YSkpKSB7CisgICAgICAgICAgICB3YXJubG4oIkZhaWw6IFVuYWJsZSB0byBjcmVhdGUgem9uZXMiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGNhbFdpdGggPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoem9uZVdpdGgpOworICAgICAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsV2l0aG91dCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcih6b25lV2l0aG91dCk7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGZtdCA9CisgICAgICAgICAgICAgICAgbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NTSBkIHl5eXkgaGg6bW0gYSB6enoiLCBsb2MpOworICAgICAgICAgICAgRGF0ZSBkYXRlID0gbmV3IERhdGUoMEwpOworICAgICAgICAgICAgZm10LnNldENhbGVuZGFyKGNhbFdpdGgpOworICAgICAgICAgICAgU3RyaW5nIHN0cldpdGggPSBmbXQuZm9ybWF0KGRhdGUpOworICAgICAgICAgICAgZm10LnNldENhbGVuZGFyKGNhbFdpdGhvdXQpOworICAgICAgICAgICAgU3RyaW5nIHN0cldpdGhvdXQgPSBmbXQuZm9ybWF0KGRhdGUpOworICAgICAgICAgICAgaWYgKHN0cldpdGguZXF1YWxzKHN0cldpdGhvdXQpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgaWRXaXRoTG9jYWxlRGF0YSArICIgLT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgc3RyV2l0aCArICI7ICIgKyBpZFdpdGhvdXRMb2NhbGVEYXRhICsgIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBzdHJXaXRob3V0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBpZFdpdGhMb2NhbGVEYXRhICsgIiAtPiAiICsKKyAgICAgICAgICAgICAgICAgICAgICBzdHJXaXRoICsgIjsgIiArIGlkV2l0aG91dExvY2FsZURhdGEgKyAiIC0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIHN0cldpdGhvdXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogZ2V0T2Zmc2V0IHJldHVybnMgd3Jvbmcgb2Zmc2V0IGZvciBkYXlzIGluIGVhcmx5IDIwdGggY2VudHVyeQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKNTEzNCgpIHsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgdGVzdENhbCA9IChHcmVnb3JpYW5DYWxlbmRhcilDYWxlbmRhci5nZXRJbnN0YW5jZSgpOworICAgICAgICBUaW1lWm9uZSBpY3VFYXN0ZXJuID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTmV3X1lvcmsiKTsgICAgICAgIAorICAgICAgICB0ZXN0Q2FsLnNldFRpbWVab25lKGljdUVhc3Rlcm4pOworICAgICAgICB0ZXN0Q2FsLnNldCgxOTAwLCBDYWxlbmRhci5KQU5VQVJZLCAxLCAwLCAwLCAwKTsKKyAgICAgICAgbG9uZyB0aW1lID0gdGVzdENhbC5nZXRUaW1lSW5NaWxsaXMoKTsKKworICAgICAgICBpbnQgb2Zmc2V0ID0gaWN1RWFzdGVybi5nZXRPZmZzZXQodGltZSk7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTE4MDAwMDAwKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVVRDIG9mZnNldCBpbiB0aW1lIHpvbmUgQW1lcmljYS9OZXdfWW9yayBvbiBKYW4gMSwgMTkwMCAtPiAiICsgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuIGlzRHN0ID0gaWN1RWFzdGVybi5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZSh0aW1lKSk7CisgICAgICAgIGlmIChpc0RzdCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IERTVCBpcyBvYnNlcnZlZCBpbiB0aW1lIHpvbmUgQW1lcmljYS9OZXdfWW9yayBvbiBKYW4gMSwgMTkwMCIpOworICAgICAgICB9CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIGlmIChTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEudmVuZG9yIiwgIiIpLnN0YXJ0c1dpdGgoIklCTSIpICYmCisgICAgICAgIAlTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEudmVyc2lvbiIsICIiKS5lcXVhbHMoIjEuNC4xIikpIHsKKyAgICAgICAgICAgIC8vIElCTSBKREsgMS40LjEgaGFzIGEgYnVnIGFuZCBmYWlscyB0byBydW4gdGhpcyB0ZXN0IGNhc2UuCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgamF2YS51dGlsLlRpbWVab25lIGpka0Vhc3Rlcm4gPSBqYXZhLnV0aWwuVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTmV3X1lvcmsiKTsKKyAgICAgICAgLy8gQ29tcGFyZSBvZmZzZXQgYW5kIERTVCBvYnNlcnZhdGlvbiB3aXRoIEpESyBhbmQgSUNVIGZvciA1MCB5ZWFycyBzaW5jZSAxOTAwCisgICAgICAgIHRlc3RDYWwuYWRkKENhbGVuZGFyLllFQVIsIDUwKTsKKyAgICAgICAgbG9uZyBlbmRUaW1lID0gdGVzdENhbC5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgaW50IGpka09mZnNldDsKKyAgICAgICAgYm9vbGVhbiBpc0RzdEpkazsKKyAgICAgICAgd2hpbGUgKHRpbWUgPCBlbmRUaW1lKSB7CisgICAgICAgICAgICBvZmZzZXQgPSBpY3VFYXN0ZXJuLmdldE9mZnNldCh0aW1lKTsKKyAgICAgICAgICAgIGpka09mZnNldCA9IGpka0Vhc3Rlcm4uZ2V0T2Zmc2V0KHRpbWUpOworICAgICAgICAgICAgaWYgKG9mZnNldCAhPSBqZGtPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogSW5jb21wYXRpYmxlIFVUQyBvZmZzZXQgLT4gSkRLOiIgKyBqZGtPZmZzZXQgKyAiL0lDVToiICsgb2Zmc2V0ICsgIiBbIiArIHRpbWUgKyAiXSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgRGF0ZSBkID0gbmV3IERhdGUodGltZSk7CisgICAgICAgICAgICBpc0RzdCA9IGljdUVhc3Rlcm4uaW5EYXlsaWdodFRpbWUoZCk7CisgICAgICAgICAgICBpc0RzdEpkayA9IGpka0Vhc3Rlcm4uaW5EYXlsaWdodFRpbWUoZCk7CisgICAgICAgICAgICBpZiAoaXNEc3QgIT0gaXNEc3RKZGspIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogSW5jb21wYXRpYmxlIERTVCAtPiBKREs6IiArIGlzRHN0SmRrICsgIi9JQ1U6IiArIGlzRHN0ICsgIiBbIiArIHRpbWUgKyAiXSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGltZSArPSAyNCo2MCo2MCoxMDAwTDsgLy8gaW5jcmVtZW50IDEgZGF5CisgICAgICAgIH0KKy8vI2VuZGlmCisgICAgfQorfQorCisvL2VvZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90aW1lem9uZS9UaW1lWm9uZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNmMzODhiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RpbWV6b25lL1RpbWVab25lVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTE4NSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKy8qKgorICogQHRlc3QgMS4yMiA5OS8wOS8yMQorICogQGJ1ZyA0MDI4MDA2IDQwNDQwMTMgNDA5NjY5NCA0MTA3Mjc2IDQxMDc1NzAgNDExMjg2OSA0MTMwODg1CisgKiBAc3VtbWFyeSB0ZXN0IFRpbWVab25lCisgKiBAYnVpbGQgVGltZVpvbmVUZXN0CisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50aW1lem9uZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0OworCitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIFRpbWVab25lVGVzdCBleHRlbmRzIFRlc3RGbXdrCit7CisgICAgc3RhdGljIGZpbmFsIGludCBtaWxsaXNQZXJIb3VyID0gMzYwMDAwMDsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGltZVpvbmVUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE5PVEU6IEFzIG9mIElDVSAyLjgsIHRoZSBtYXBwaW5nIG9mIDMtbGV0dGVyIGxlZ2FjeSBhbGlhc2VzCisgICAgICogdG8gYHJlYWwnIE9sc29uIElEcyBpcyB1bmRlciBjb250cm9sIG9mIHRoZSB1bmRlcmx5aW5nIEpESy4KKyAgICAgKiBUaGlzIHRlc3QgbWF5IGZhaWwgb24gb25lIEpESyBhbmQgcGFzcyBvbiBhbm90aGVyOyBkb24ndCBiZQorICAgICAqIHRvbyBjb25jZXJuZWQuICBBbGFuCisgICAgICoKKyAgICAgKiBCdWcgNDEzMDg4NQorICAgICAqIENlcnRhaW4gc2hvcnQgem9uZSBJRHMsIHVzZWQgc2luY2UgMS4xLngsIGFyZSBpbmNvcnJlY3QuCisgICAgICogIAorICAgICAqIFRoZSB3b3JzdCBvZiB0aGVzZSBpczoKKyAgICAgKgorICAgICAqICJDQVQiIChDZW50cmFsIEFmcmljYW4gVGltZSkgc2hvdWxkIGJlIEdNVCsyOjAwLCBidXQgaW5zdGVhZCByZXR1cm5zIGEKKyAgICAgKiB6b25lIGF0IEdNVC0xOjAwLiBUaGUgem9uZSBhdCBHTVQtMTowMCBzaG91bGQgYmUgY2FsbGVkIEVHVCwgQ1ZULCBFR1NULAorICAgICAqIG9yIEFaT1NULCBkZXBlbmRpbmcgb24gd2hpY2ggem9uZSBpcyBtZWFudCwgYnV0IGluIG5vIGNhc2UgaXMgaXQgQ0FULgorICAgICAqCisgICAgICogT3RoZXIgd3Jvbmcgem9uZSBJRHM6CisgICAgICoKKyAgICAgKiBFQ1QgKEV1cm9wZWFuIENlbnRyYWwgVGltZSkgR01UKzE6MDA6IEVDVCBpcyBFY3VhZG9yIFRpbWUsCisgICAgICogR01ULTU6MDAuIEV1cm9wZWFuIENlbnRyYWwgdGltZSBpcyBhYmJyZXZpYXRlZCBDRVNULgorICAgICAqCisgICAgICogU1NUIChTb2xvbW9uIElzbGFuZCBUaW1lKSBHTVQrMTE6MDAuIFNTVCBpcyBhY3R1YWxseSBTYW1vYSBTdGFuZGFyZCBUaW1lLAorICAgICAqIEdNVC0xMTowMC4gU29sb21vbiBJc2xhbmQgdGltZSBpcyBTQlQuCisgICAgICoKKyAgICAgKiBOU1QgKE5ldyBaZWFsYW5kIFRpbWUpIEdNVCsxMjowMC4gTlNUIGlzIHRoZSBhYmJyZXZpYXRpb24gZm9yCisgICAgICogTmV3Zm91bmRsYW5kIFN0YW5kYXJkIFRpbWUsIEdNVC0zOjMwLiBOZXcgWmVhbGFuZGVycyB1c2UgTlpTVC4KKyAgICAgKgorICAgICAqIEFTVCAoQWxhc2thIFN0YW5kYXJkIFRpbWUpIEdNVC05OjAwLiBbVGhpcyBoYXMgYWxyZWFkeSBiZWVuIG5vdGVkIGluCisgICAgICogYW5vdGhlciBidWcuXSBJdCBzaG91bGQgYmUgIkFLU1QiLiBBU1QgaXMgQXRsYW50aWMgU3RhbmRhcmQgVGltZSwKKyAgICAgKiBHTVQtNDowMC4KKyAgICAgKgorICAgICAqIFBOVCAoUGhvZW5peCBUaW1lKSBHTVQtNzowMC4gUE5UIHVzdWFsbHkgbWVhbnMgUGl0Y2Fpcm4gVGltZSwKKyAgICAgKiBHTVQtODozMC4gVGhlcmUgaXMgbm8gc3RhbmRhcmQgYWJicmV2aWF0aW9uIGZvciBQaG9lbml4IHRpbWUsIGFzIGRpc3RpbmN0CisgICAgICogZnJvbSBNU1Qgd2l0aCBkYXlsaWdodCBzYXZpbmdzLgorICAgICAqCisgICAgICogSW4gYWRkaXRpb24gdG8gdGhlc2UgcHJvYmxlbXMsIGEgbnVtYmVyIG9mIHpvbmVzIGFyZSBGQUtFLiBUaGF0IGlzLCB0aGV5CisgICAgICogZG9uJ3QgbWF0Y2ggd2hhdCBwZW9wbGUgdXNlIGluIHRoZSByZWFsIHdvcmxkLgorICAgICAqCisgICAgICogRkFLRSB6b25lczoKKyAgICAgKgorICAgICAqIEVFVCAoc2hvdWxkIGJlIEVFU1QpCisgICAgICogQVJUIChzaG91bGQgYmUgRUVTVCkKKyAgICAgKiBNRVQgKHNob3VsZCBiZSBJUlNUKQorICAgICAqIE5FVCAoc2hvdWxkIGJlIEFNU1QpCisgICAgICogUExUIChzaG91bGQgYmUgUEtUKQorICAgICAqIEJTVCAoc2hvdWxkIGJlIEJEVCkKKyAgICAgKiBWU1QgKHNob3VsZCBiZSBJQ1QpCisgICAgICogQ1RUIChzaG91bGQgYmUgQ1NUKSArCisgICAgICogQUNUIChzaG91bGQgYmUgQ1NUKSArCisgICAgICogQUVUIChzaG91bGQgYmUgRVNUKSArCisgICAgICogTUlUIChzaG91bGQgYmUgV1NUKSArCisgICAgICogSUVUIChzaG91bGQgYmUgRVNUKSArCisgICAgICogUFJUIChzaG91bGQgYmUgQVNUKSArCisgICAgICogQ05UIChzaG91bGQgYmUgTlNUKQorICAgICAqIEFHVCAoc2hvdWxkIGJlIEFSU1QpCisgICAgICogQkVUIChzaG91bGQgYmUgRVNUKSArCisgICAgICoKKyAgICAgKiArIEEgem9uZSB3aXRoIHRoZSBjb3JyZWN0IG5hbWUgYWxyZWFkeSBleGlzdHMgYW5kIG1lYW5zIHNvbWV0aGluZworICAgICAqIGVsc2UuIEUuZy4sIEVTVCB1c3VhbGx5IGluZGljYXRlcyB0aGUgVVMgRWFzdGVybiB6b25lLCBzbyBpdCBjYW5ub3QgYmUKKyAgICAgKiB1c2VkIGZvciBCcmF6aWwgKEJFVCkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNob3J0Wm9uZUlEcygpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIFpvbmVEZXNjcmlwdG9yW10gSkRLXzExNl9SRUZFUkVOQ0VfTElTVCA9IHsKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiTUlUIiwgLTY2MCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJIU1QiLCAtNjAwLCBmYWxzZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkFTVCIsIC01NDAsIHRydWUpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJQU1QiLCAtNDgwLCB0cnVlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiUE5UIiwgLTQyMCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJNU1QiLCAtNDIwLCBmYWxzZSksLy8gdXBkYXRlZCBBdWcgMjAwMyBhbGl1CisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkNTVCIsIC0zNjAsIHRydWUpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJJRVQiLCAtMzAwLCB0cnVlKSwgLy8gdXBkYXRlZCBGZWIgMjAwNiBzcmwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiRVNUIiwgLTMwMCwgZmFsc2UpLC8vIHVwZGF0ZWQgQXVnIDIwMDMgYWxpdQorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJQUlQiLCAtMjQwLCBmYWxzZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkNOVCIsIC0yMTAsIHRydWUpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJBR1QiLCAtMTgwLCBmYWxzZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkJFVCIsIC0xODAsIHRydWUpLAorICAgICAgICAgICAgLy8gbmV3IFpvbmVEZXNjcmlwdG9yKCJDQVQiLCAtNjAsIGZhbHNlKSwgLy8gV3Jvbmc6CisgICAgICAgICAgICAvLyBBcyBvZiBidWcgNDEzMDg4NSwgZml4IENBVCAoQ2VudHJhbCBBZnJpY2EpCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkNBVCIsIDEyMCwgZmFsc2UpLCAvLyBBZnJpY2EvSGFyYXJlCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkdNVCIsIDAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiVVRDIiwgMCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJFQ1QiLCA2MCwgdHJ1ZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkFSVCIsIDEyMCwgdHJ1ZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkVFVCIsIDEyMCwgdHJ1ZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkVBVCIsIDE4MCwgZmFsc2UpLAorICAgICAgICAgICAgLy8gbmV3IFpvbmVEZXNjcmlwdG9yKCJNRVQiLCAyMTAsIHRydWUpLAorICAgICAgICAgICAgLy8gVGhpcyBpcyBhIHN0YW5kYXJkIFVuaXggem9uZSwgc28gZG9uJ3QgcmVtYXAgaXQgLSBMaXUgM0phbjAxCisgICAgICAgICAgICAvLyBuZXcgWm9uZURlc2NyaXB0b3IoIk5FVCIsIDI0MCwgZmFsc2UpOworICAgICAgICAgICAgLy8gQXMgb2YgYnVnIDQxOTExNjQsIGZpeCBORVQKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiTkVUIiwgMjQwLCB0cnVlKSwKKyAgICAgICAgICAgIC8vIFBMVCBiZWhhdmVzIGRpZmZlcmVudGx5IHVuZGVyIGRpZmZlcmVudCBKREtzLCBzbyB3ZSBkb24ndCBjaGVjayBpdAorICAgICAgICAgICAgLy8gbmV3IFpvbmVEZXNjcmlwdG9yKCJQTFQiLCAzMDAsIGZhbHNlKSwgLy8gdXBkYXRlZCBPY3QgMjAwMyBhbGl1CisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIklTVCIsIDMzMCwgZmFsc2UpLAorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJCU1QiLCAzNjAsIGZhbHNlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiVlNUIiwgNDIwLCBmYWxzZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkNUVCIsIDQ4MCwgZmFsc2UpLCAvLyB1cGRhdGVkIE9jdCAyMDAzIGFsaXUKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiSlNUIiwgNTQwLCBmYWxzZSksCisgICAgICAgICAgICBuZXcgWm9uZURlc2NyaXB0b3IoIkFDVCIsIDU3MCwgZmFsc2UpLCAvLyB1cGRhdGVkIE9jdCAyMDAzIGFsaXUKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiQUVUIiwgNjAwLCB0cnVlKSwKKyAgICAgICAgICAgIG5ldyBab25lRGVzY3JpcHRvcigiU1NUIiwgNjYwLCBmYWxzZSksCisgICAgICAgICAgICAvLyBuZXcgWm9uZURlc2NyaXB0b3IoIk5TVCIsIDcyMCwgZmFsc2UpLAorICAgICAgICAgICAgLy8gQXMgb2YgYnVnIDQxMzA4ODUsIGZpeCBOU1QgKE5ldyBaZWFsYW5kKQorICAgICAgICAgICAgbmV3IFpvbmVEZXNjcmlwdG9yKCJOU1QiLCA3MjAsIHRydWUpLCAvLyBQYWNpZmljL0F1Y2tsYW5kCisKKyAgICAgICAgICAgIC8vIFszSmFuMDEgTGl1XSBUaHJlZSBvZiB0aGVzZSB6b25lcyBoYXZlIGJlZW4gdXBkYXRlZC4KKyAgICAgICAgICAgIC8vIFRoZSBDVFQgYW5kIEFDVCB6b25lcyBqdXN0IHJlbWFwIHRvIEFzaWEvU2hhbmdoYWkKKyAgICAgICAgICAgIC8vIGFuZCBBdXN0cmFsaWEvRGFyd2luLiAgU2luY2UgdGhvc2Ugem9uZXMgaGF2ZSBjaGFuZ2VkLAorICAgICAgICAgICAgLy8gSSBoYXZlIHVwZGF0ZWQgdGhlIHRhYmxlLiAgVGhlIE1FVCB6b25lIHVzZWQgdG8gYmUgbWFwcGVkCisgICAgICAgICAgICAvLyB0byBBc2lhL1RlaHJhbiBidXQgc2luY2UgTUVUIGlzIGEgc3RhbmRhcmQgVW5peCB6b25lIG5hbWVkCisgICAgICAgICAgICAvLyBpbiB0aGUgc291cmNlIGRhdGEgd2Ugbm8gbG9uZ2VyIGRvIHRoaXMgaW4gaWN1IG9yIGljdTRqLgorICAgICAgICB9OworCisgICAgICAgIEhhc2h0YWJsZSBoYXNoID0gbmV3IEhhc2h0YWJsZSgpOworCisgICAgICAgIFN0cmluZ1tdIGlkcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8aWRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSBpZHNbaV07CisgICAgICAgICAgICBpZiAoaWQubGVuZ3RoKCkgPT0gMykgeworICAgICAgICAgICAgICAgIGhhc2gucHV0KGlkLCBuZXcgWm9uZURlc2NyaXB0b3IoVGltZVpvbmUuZ2V0VGltZVpvbmUoaWQpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBpPTA7IGk8SkRLXzExNl9SRUZFUkVOQ0VfTElTVC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgWm9uZURlc2NyaXB0b3IgcmVmZXJlbmNlWm9uZSA9IEpES18xMTZfUkVGRVJFTkNFX0xJU1RbaV07CisgICAgICAgICAgICBab25lRGVzY3JpcHRvciBjdXJyZW50Wm9uZSA9IChab25lRGVzY3JpcHRvciloYXNoLmdldChyZWZlcmVuY2Vab25lLmdldElEKCkpOworICAgICAgICAgICAgaWYgKHJlZmVyZW5jZVpvbmUuZXF1YWxzKGN1cnJlbnRab25lKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJvayAiICsgcmVmZXJlbmNlWm9uZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB3YXJubG4oIkZhaWw6IEV4cGVjdGVkICIgKyByZWZlcmVuY2Vab25lICsKKyAgICAgICAgICAgICAgICAgICAgICAiOyBnb3QgIiArIGN1cnJlbnRab25lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEEgZGVzY3JpcHRvciBmb3IgYSB6b25lOyB1c2VkIHRvIHJlZ3Jlc3MgdGhlIHNob3J0IHpvbmUgSURzLgorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBab25lRGVzY3JpcHRvciB7CisgICAgICAgIFN0cmluZyBpZDsKKyAgICAgICAgaW50IG9mZnNldDsgLy8gSW4gbWludXRlcworICAgICAgICBib29sZWFuIGRheWxpZ2h0OworCisgICAgICAgIFpvbmVEZXNjcmlwdG9yKFRpbWVab25lIHpvbmUpIHsKKyAgICAgICAgICAgIHRoaXMuaWQgPSB6b25lLmdldElEKCk7CisgICAgICAgICAgICB0aGlzLm9mZnNldCA9IHpvbmUuZ2V0UmF3T2Zmc2V0KCkgLyA2MDAwMDsKKyAgICAgICAgICAgIHRoaXMuZGF5bGlnaHQgPSB6b25lLnVzZURheWxpZ2h0VGltZSgpOworICAgICAgICB9CisKKyAgICAgICAgWm9uZURlc2NyaXB0b3IoU3RyaW5nIGlkLCBpbnQgb2Zmc2V0LCBib29sZWFuIGRheWxpZ2h0KSB7CisgICAgICAgICAgICB0aGlzLmlkID0gaWQ7CisgICAgICAgICAgICB0aGlzLm9mZnNldCA9IG9mZnNldDsKKyAgICAgICAgICAgIHRoaXMuZGF5bGlnaHQgPSBkYXlsaWdodDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0SUQoKSB7IHJldHVybiBpZDsgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgbykgeworICAgICAgICAgICAgWm9uZURlc2NyaXB0b3IgdGhhdCA9IChab25lRGVzY3JpcHRvcilvOworICAgICAgICAgICAgcmV0dXJuIHRoYXQgIT0gbnVsbCAmJgorICAgICAgICAgICAgICAgIGlkLmVxdWFscyh0aGF0LmlkKSAmJgorICAgICAgICAgICAgICAgIG9mZnNldCA9PSB0aGF0Lm9mZnNldCAmJgorICAgICAgICAgICAgICAgIGRheWxpZ2h0ID09IHRoYXQuZGF5bGlnaHQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgaW50IG1pbiA9IG9mZnNldDsKKyAgICAgICAgICAgIGNoYXIgc2lnbiA9ICcrJzsKKyAgICAgICAgICAgIGlmIChtaW4gPCAwKSB7IHNpZ24gPSAnLSc7IG1pbiA9IC1taW47IH0KKworICAgICAgICAgICAgcmV0dXJuICJab25lW1wiIiArIGlkICsgIlwiLCBHTVQiICsgc2lnbiArIChtaW4vNjApICsgJzonICsKKyAgICAgICAgICAgICAgICAobWluJTYwPDEwPyIwIjoiIikgKyAobWluJTYwKSArICIsICIgKworICAgICAgICAgICAgICAgIChkYXlsaWdodCA/ICJEYXlsaWdodCIgOiAiU3RhbmRhcmQiKSArICJdIjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmUoT2JqZWN0IG8xLCBPYmplY3QgbzIpIHsKKyAgICAgICAgICAgIFpvbmVEZXNjcmlwdG9yIGkxID0gKFpvbmVEZXNjcmlwdG9yKW8xOworICAgICAgICAgICAgWm9uZURlc2NyaXB0b3IgaTIgPSAoWm9uZURlc2NyaXB0b3IpbzI7CisgICAgICAgICAgICBpZiAoaTEub2Zmc2V0ID4gaTIub2Zmc2V0KSByZXR1cm4gMTsKKyAgICAgICAgICAgIGlmIChpMS5vZmZzZXQgPCBpMi5vZmZzZXQpIHJldHVybiAtMTsKKyAgICAgICAgICAgIGlmIChpMS5kYXlsaWdodCAmJiAhaTIuZGF5bGlnaHQpIHJldHVybiAxOworICAgICAgICAgICAgaWYgKCFpMS5kYXlsaWdodCAmJiBpMi5kYXlsaWdodCkgcmV0dXJuIC0xOworICAgICAgICAgICAgcmV0dXJuIGkxLmlkLmNvbXBhcmVUbyhpMi5pZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIEVYUEVDVEVEX0NVU1RPTV9JRCA9ICJDdXN0b20iOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgZm9ybWF0TWludXRlcyhpbnQgbWluKSB7CisgICAgICAgIGNoYXIgc2lnbiA9ICcrJzsKKyAgICAgICAgaWYgKG1pbiA8IDApIHsgc2lnbiA9ICctJzsgbWluID0gLW1pbjsgfQorICAgICAgICBpbnQgaCA9IG1pbi82MDsKKyAgICAgICAgbWluID0gbWluJTYwOworICAgICAgICByZXR1cm4gIiIgKyBzaWduICsgKGg8MTA/IjAiOiIiKSArIGggKyAiOiIgKyAobWluPDEwPyIwIjoiIikgKyBtaW47CisgICAgfQorICAgIC8qKgorICAgICAqIEFzIHBhcnQgb2YgdGhlIFZNIGZpeCAoc2VlIENDQyBhcHByb3ZlZCBSRkUgNDAyODAwNiwgYnVnCisgICAgICogNDA0NDAxMyksIFRpbWVab25lLmdldFRpbWVab25lKCkgaGFzIGJlZW4gbW9kaWZpZWQgdG8gcmVjb2duaXplCisgICAgICogZ2VuZXJpYyBJRHMgb2YgdGhlIGZvcm0gR01UWystXWhoOm1tLCBHTVRbKy1daGhtbSwgYW5kCisgICAgICogR01UWystXWhoLiAgVGVzdCB0aGlzIGJlaGF2aW9yIGhlcmUuCisgICAgICoKKyAgICAgKiBCdWcgNDA0NDAxMworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDdXN0b21QYXJzZSgpIHsKKyAgICAgICAgT2JqZWN0W10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIElEICAgICAgICBFeHBlY3RlZCBvZmZzZXQgaW4gbWludXRlcworICAgICAgICAgICAgIkdNVCIsICAgICAgIG51bGwsCisgICAgICAgICAgICAiR01ULVlPVVIuQUQuSEVSRSIsIG51bGwsCisgICAgICAgICAgICAvLyAiR01UMCIsICAgICAgbnVsbCwgLy8gSUNVIDMuNjogQW4gT2xzb24gem9uZSBJRFRoaXMgaXMgcGFyc2VkIGJ5IHNvbWUgSkRLcyAoU3VuIDEuNC4xKSwgYnV0IG5vdCBieSBvdGhlcnMKKyAgICAgICAgICAvLyAgIkdNVCswIiwgICAgIG5ldyBJbnRlZ2VyKDApLC8vIElDVSAzLjY6IEFuIE9sc29uIHpvbmUgSUQKKyAgICAgICAgICAgICJHTVQrMSIsICAgICBuZXcgSW50ZWdlcig2MCksCisgICAgICAgICAgICAiR01ULTAwMzAiLCAgbmV3IEludGVnZXIoLTMwKSwKKyAgICAgICAgICAgIC8vIFBhcnNlZCBpbiAxLjMsIHBhcnNlIGZhaWx1cmUgaW4gMS40OgorICAgICAgICAgICAgLy8iR01UKzE1Ojk5IiwgbmV3IEludGVnZXIoMTUqNjArOTkpLAorICAgICAgICAgICAgIkdNVCsiLCAgICAgIG51bGwsCisgICAgICAgICAgICAiR01ULSIsICAgICAgbnVsbCwKKyAgICAgICAgICAgICJHTVQrMDoiLCAgICBudWxsLAorICAgICAgICAgICAgIkdNVC06IiwgICAgIG51bGwsCisgICAgICAgICAgICAiR01UKzAwMTAiLCAgbmV3IEludGVnZXIoMTApLCAvLyBJbnRlcnByZXQgdGhpcyBhcyAwMDoxMAorICAgICAgICAgICAgIkdNVC0xMCIsICAgIG5ldyBJbnRlZ2VyKC0xMCo2MCksCisgICAgICAgICAgICAvLyBQYXJzZWQgaW4gMS4zLCBwYXJzZSBmYWlsdXJlIGluIDEuNDoKKyAgICAgICAgICAgIC8vIkdNVCszMCIsICAgIG5ldyBJbnRlZ2VyKDMwKSwKKyAgICAgICAgICAgICJHTVQtMzozMCIsICBuZXcgSW50ZWdlcigtKDMqNjArMzApKSwKKyAgICAgICAgICAgICJHTVQtMjMwIiwgICBuZXcgSW50ZWdlcigtKDIqNjArMzApKSwKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKURBVEFbaV07CisgICAgICAgICAgICBJbnRlZ2VyIGV4cCA9IChJbnRlZ2VyKURBVEFbaSsxXTsKKyAgICAgICAgICAgIFRpbWVab25lIHpvbmUgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShpZCk7CisgICAgICAgICAgICBpZiAoem9uZS5nZXRJRCgpLmVxdWFscygiR01UIikpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihpZCArICIgLT4gZ2VuZXJpYyBHTVQiKTsKKyAgICAgICAgICAgICAgICAvLyBXaGVuIFRpbWVab25lLmdldFRpbWVab25lKCkgY2FuJ3QgcGFyc2UgdGhlIGlkLCBpdAorICAgICAgICAgICAgICAgIC8vIHJldHVybnMgR01UIC0tIGEgZHViaW91cyBwcmFjdGljZSwgYnV0IHJlcXVpcmVkIGZvcgorICAgICAgICAgICAgICAgIC8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisgICAgICAgICAgICAgICAgaWYgKGV4cCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBvZmZzZXQgb2YgIiArIGZvcm1hdE1pbnV0ZXMoZXhwLmludFZhbHVlKCkpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBmb3IgIiArIGlkICsgIiwgZ290IHBhcnNlIGZhaWx1cmUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgaW9mZnNldCA9IHpvbmUuZ2V0UmF3T2Zmc2V0KCkvNjAwMDA7CisgICAgICAgICAgICAgICAgU3RyaW5nIG9mZnNldCA9IGZvcm1hdE1pbnV0ZXMoaW9mZnNldCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGdlbklEID0gIkdNVCIrIG9mZnNldDsKKyAgICAgICAgICAgICAgICBsb2dsbihpZCArICIgLT4gIiArIHpvbmUuZ2V0SUQoKSArICIgIiArIGdlbklEKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZ290SUQgPSB6b25lLmdldElEKCk7CisgICAgICAgICAgICAgICAgaWYgKGV4cCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBwYXJzZSBmYWlsdXJlIGZvciAiICsgaWQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBnb3Qgb2Zmc2V0IG9mICIgKyBvZmZzZXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBpZCAiICsgem9uZS5nZXRJRCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gSkRLIDEuMyBjcmVhdGVzIGN1c3RvbSB6b25lcyB3aXRoIHRoZSBJRCAiQ3VzdG9tIgorICAgICAgICAgICAgICAgIC8vIEpESyAxLjQgY3JlYXRlcyBjdXN0b20gem9uZXMgd2l0aCBJRHMgb2YgdGhlIGZvcm0gIkdNVCswMjowMCIKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChpb2Zmc2V0ICE9IGV4cC5pbnRWYWx1ZSgpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgIShnb3RJRC5lcXVhbHMoRVhQRUNURURfQ1VTVE9NX0lEKSAvKnx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RJRC5lcXVhbHMoZ2VuSUQpKi8pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFeHBlY3RlZCBvZmZzZXQgb2YgIiArIGZvcm1hdE1pbnV0ZXMoZXhwLmludFZhbHVlKCkpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgaWQgQ3VzdG9tLCBmb3IgIiArIGlkICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgZ290IG9mZnNldCBvZiAiICsgb2Zmc2V0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgaWQgIiArIHpvbmUuZ2V0SUQoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZ2V0RGlzcGxheU5hbWUoKSBBUEkuCisgICAgICoKKyAgICAgKiBCdWcgNDExMjg2OQorICAgICAqIEJ1ZyA0MDI4MDA2CisgICAgICoKKyAgICAgKiBTZWUgYWxzbyBBUEkgY2hhbmdlIHJlcXVlc3QgQTQxLgorICAgICAqCisgICAgICogNC8yMS85OCAtIG1ha2Ugc21hcnRlciwgc28gdGhlIHRlc3Qgd29ya3MgaWYgdGhlIGV4dCByZXNvdXJjZXMKKyAgICAgKiBhcmUgcHJlc2VudCBvciBub3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdERpc3BsYXlOYW1lKCkgeworICAgICAgICBUaW1lWm9uZSB6b25lID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIlBTVCIpOworICAgICAgICBTdHJpbmcgbmFtZSA9IHpvbmUuZ2V0RGlzcGxheU5hbWUoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBsb2dsbigiUFNULT4iICsgbmFtZSk7CisKKyAgICAgICAgLy8gZGxmIC0gd2Ugbm93ICgzLjQuMSkgcmV0dXJuIGdlbmVyaWMgdGltZQorICAgICAgICBpZiAoIW5hbWUuZXF1YWxzKCJQYWNpZmljIFRpbWUiKSkKKyAgICAgICAgICAgIGVycmxuKCJGYWlsOiBFeHBlY3RlZCBcIlBhY2lmaWMgVGltZVwiLCBnb3QgIiArIG5hbWUgKworICAgICAgICAgICAgICAgICAgIiBmb3IgIiArIHpvbmUpOworCisgICAgICAgIC8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgICAgICAgLy8gVEhFIEZPTExPV0lORyBMSU5FUyBNVVNUIEJFIFVQREFURUQgSUYgVEhFIExPQ0FMRSBEQVRBIENIQU5HRVMKKyAgICAgICAgLy8gVEhFIEZPTExPV0lORyBMSU5FUyBNVVNUIEJFIFVQREFURUQgSUYgVEhFIExPQ0FMRSBEQVRBIENIQU5HRVMKKyAgICAgICAgLy8gVEhFIEZPTExPV0lORyBMSU5FUyBNVVNUIEJFIFVQREFURUQgSUYgVEhFIExPQ0FMRSBEQVRBIENIQU5HRVMKKyAgICAgICAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgICAgICAgIC8vIHRvZG86IGNoZWNrIHRvIHNlZSB3aGV0aGVyIHdlIGNhbiB0ZXN0IGZvciBhbGwgb2YgcHN0LCBwZHQsIHB0CisgICAgICAgIE9iamVjdFtdIERBVEEgPSB7CisgICAgICAgICAgICBuZXcgQm9vbGVhbihmYWxzZSksIG5ldyBJbnRlZ2VyKFRpbWVab25lLlNIT1JUKSwgIlBTVCIsCisgICAgICAgICAgICBuZXcgQm9vbGVhbih0cnVlKSwgIG5ldyBJbnRlZ2VyKFRpbWVab25lLlNIT1JUKSwgIlBEVCIsCisgICAgICAgICAgICBuZXcgQm9vbGVhbihmYWxzZSksIG5ldyBJbnRlZ2VyKFRpbWVab25lLkxPTkcpLCAgIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIsCisgICAgICAgICAgICBuZXcgQm9vbGVhbih0cnVlKSwgIG5ldyBJbnRlZ2VyKFRpbWVab25lLkxPTkcpLCAgIlBhY2lmaWMgRGF5bGlnaHQgVGltZSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBuYW1lID0gem9uZS5nZXREaXNwbGF5TmFtZSgoKEJvb2xlYW4pREFUQVtpXSkuYm9vbGVhblZhbHVlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEludGVnZXIpREFUQVtpKzFdKS5pbnRWYWx1ZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAgICAgaWYgKCFuYW1lLmVxdWFscyhEQVRBW2krMl0pKQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBFeHBlY3RlZCAiICsgREFUQVtpKzJdICsgIjsgZ290ICIgKyBuYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IGRpc3BsYXkgdGhlIERTVCBuYW1lIGJ5IGNvbnN0cnVjdGluZyBhIGZha2UKKyAgICAgICAgLy8gUFNUIHpvbmUgdGhhdCBoYXMgRFNUIGFsbCB5ZWFyIGxvbmcuCisgICAgICAgIC8vIGRsZiAtIHRoaXMgdGVzdCBpcyBubyBsb25nZXIgcmVsZXZhbnQsIHdlIGRpc3BsYXkgZ2VuZXJpYyB0aW1lIG5vdworICAgICAgICAvLyAgICBzbyB0aGUgYmVoYXZpb3Igb2YgdGhlIHRpbWV6b25lIGRvZXNuJ3QgbWF0dGVyCisgICAgICAgIFNpbXBsZVRpbWVab25lIHpvbmUyID0gbmV3IFNpbXBsZVRpbWVab25lKDAsICJQU1QiKTsKKyAgICAgICAgem9uZTIuc2V0U3RhcnRSdWxlKENhbGVuZGFyLkpBTlVBUlksIDEsIDApOworICAgICAgICB6b25lMi5zZXRFbmRSdWxlKENhbGVuZGFyLkRFQ0VNQkVSLCAzMSwgMCk7CisgICAgICAgIGxvZ2xuKCJNb2RpZmllZCBQU1QgaW5EYXlsaWdodFRpbWUtPiIgKyB6b25lMi5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZSgpKSk7CisgICAgICAgIG5hbWUgPSB6b25lMi5nZXREaXNwbGF5TmFtZShMb2NhbGUuRU5HTElTSCk7CisgICAgICAgIGxvZ2xuKCJNb2RpZmllZCBQU1QtPiIgKyBuYW1lKTsKKyAgICAgICAgaWYgKCFuYW1lLmVxdWFscygiUGFjaWZpYyBUaW1lIikpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogRXhwZWN0ZWQgXCJQYWNpZmljIFRpbWVcIiIpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBnZXQgdGhlIGRlZmF1bHQgZGlzcGxheSBmb3JtYXQgZm9yIExvY2FsZXMKKyAgICAgICAgLy8gd2l0aCBubyBkaXNwbGF5IG5hbWUgZGF0YS4KKyAgICAgICAgTG9jYWxlIG10X01UID0gbmV3IExvY2FsZSgibXQiLCAiTVQiKTsKKyAgICAgICAgbmFtZSA9IHpvbmUuZ2V0RGlzcGxheU5hbWUobXRfTVQpOworICAgICAgICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICAgICAgIC8vIFRIRSBGT0xMT1dJTkcgTElORSBNVVNUIEJFIFVQREFURUQgSUYgVEhFIExPQ0FMRSBEQVRBIENIQU5HRVMKKyAgICAgICAgLy8gVEhFIEZPTExPV0lORyBMSU5FIE1VU1QgQkUgVVBEQVRFRCBJRiBUSEUgTE9DQUxFIERBVEEgQ0hBTkdFUworICAgICAgICAvLyBUSEUgRk9MTE9XSU5HIExJTkUgTVVTVCBCRSBVUERBVEVEIElGIFRIRSBMT0NBTEUgREFUQSBDSEFOR0VTCisgICAgICAgIC8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgICAgICAgbG9nbG4oIlBTVChtdF9NVCktPiIgKyBuYW1lKTsKKworICAgICAgICAvLyBOb3cgYmUgc21hcnQgLS0gY2hlY2sgdG8gc2VlIGlmIHpoIHJlc291cmNlIGlzIGV2ZW4gcHJlc2VudC4KKyAgICAgICAgLy8gSWYgbm90LCB3ZSBleHBlY3QgdGhlIGVuIGZhbGxiYWNrIGJlaGF2aW9yLgorCisgICAgICAgIC8vIGluIGljdTRqIDIuMSB3ZSBrbm93IHdlIGhhdmUgdGhlIHpoX0NOIGxvY2FsZSBkYXRhLCB0aG91Z2ggaXQncyBpbmNvbXBsZXRlCisvLyAgICAvIkRhdGVGb3JtYXRab25lRGF0YSIsIAorICAgICAgICBVUmVzb3VyY2VCdW5kbGUgZW5SQiA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIG10UkIgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgbXRfTVQpOworICAgICAgICBib29sZWFuIG5vWkggPSBlblJCID09IG10UkI7CisKKyAgICAgICAgaWYgKG5vWkgpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJXYXJuaW5nOiBOb3QgdGVzdGluZyB0aGUgbXRfTVQgYmVoYXZpb3IgYmVjYXVzZSByZXNvdXJjZSBpcyBhYnNlbnQiKTsKKyAgICAgICAgICAgIGlmICghbmFtZS5lcXVhbHMoIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIpKQorICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBFeHBlY3RlZCBQYWNpZmljIFN0YW5kYXJkIFRpbWUgZm9yIFBTVCBpbiBtdF9NVCBidXQgZ290ICIpOworICAgICAgICB9CisgICAgICAgIC8vIGRsZiAtIHdlIHdpbGwgdXNlIGdlbmVyaWMgdGltZSwgb3IgaWYgdW5hdmFpbGFibGUsIEdNVCBmb3Igc3RhbmRhcmQgdGltZSBpbiB0aGUgem9uZSAKKyAgICAgICAgLy8gICAgIC0gd2Ugbm93ICgzLjQuMSkgaGF2ZSBsb2NhbGl6YXRpb25zIGZvciB0aGlzIHpvbmUsIHNvIGNoYW5nZSB0ZXN0IHN0cmluZworICAgICAgICBlbHNlIGlmKCFuYW1lLmVxdWFscygiTG9zIEFuZ2VsZXMgKFN0YXRpIFVuaXRpKSIpICYmCisgICAgICAgICAgICAhbmFtZS5lcXVhbHMoIkdNVC0wODowMCIpICYmCisgICAgICAgICAgICAhbmFtZS5lcXVhbHMoIkdNVC04OjAwIikgJiYKKyAgICAgICAgICAgICFuYW1lLmVxdWFscygiR01ULTA4MDAiKSAmJgorICAgICAgICAgICAgIW5hbWUuZXF1YWxzKCJHTVQtODAwIikpIHsKKworICAgICAgICAgICAgZXJybG4oIkZhaWw6IGdvdCAnIiArIG5hbWUgKyAiJywgZXhwZWN0ZWQgR01ULTA4OjAwIG9yIHNvbWV0aGluZyBzaW1pbGFyXG4iICsKKyAgICAgICAgICAgICAgICAgICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiIgKworICAgICAgICAgICAgICAgICAgIlRIRSBBQk9WRSBGQUlMVVJFIE1BWSBKVVNUIE1FQU4gVEhFIExPQ0FMRSBEQVRBIEhBUyBDSEFOR0VEXG4iICsKKyAgICAgICAgICAgICAgICAgICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gTm93IHRyeSBhIG5vbi1leGlzdGVudCB6b25lCisgICAgICAgIHpvbmUyID0gbmV3IFNpbXBsZVRpbWVab25lKDkwKjYwKjEwMDAsICJ4eXp6eSIpOworICAgICAgICBuYW1lID0gem9uZTIuZ2V0RGlzcGxheU5hbWUoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBsb2dsbigiR01UKzkwbWluLT4iICsgbmFtZSk7CisgICAgICAgIGlmICghbmFtZS5lcXVhbHMoIkdNVCswMTozMCIpICYmCisgICAgICAgICAgICAhbmFtZS5lcXVhbHMoIkdNVCsxOjMwIikgJiYKKyAgICAgICAgICAgICFuYW1lLmVxdWFscygiR01UKzAxMzAiKSAmJgorICAgICAgICAgICAgIW5hbWUuZXF1YWxzKCJHTVQrMTMwIikpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogRXhwZWN0ZWQgR01UKzAxOjMwIG9yIHNvbWV0aGluZyBzaW1pbGFyIik7CisgICAgICAgIAorICAgICAgICAvLyBjb3ZlciBnZXREaXNwbGF5TmFtZSgpIC0gbnVsbCBhcmcKKyAgICAgICAgVUxvY2FsZSBzYXZlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChVTG9jYWxlLlVTKTsKKyAgICAgICAgbmFtZSA9IHpvbmUyLmdldERpc3BsYXlOYW1lKCk7CisgICAgICAgIGxvZ2xuKCJHTVQrOTBtaW4tPiIgKyBuYW1lICsgImZvciBkZWZhdWx0IGRpc3BsYXkgbG9jYWxlIik7CisgICAgICAgIGlmICghbmFtZS5lcXVhbHMoIkdNVCswMTozMCIpICYmCisgICAgICAgICAgICAhbmFtZS5lcXVhbHMoIkdNVCsxOjMwIikgJiYKKyAgICAgICAgICAgICFuYW1lLmVxdWFscygiR01UKzAxMzAiKSAmJgorICAgICAgICAgICAgIW5hbWUuZXF1YWxzKCJHTVQrMTMwIikpCisgICAgICAgICAgICBlcnJsbigiRmFpbDogRXhwZWN0ZWQgR01UKzAxOjMwIG9yIHNvbWV0aGluZyBzaW1pbGFyIik7ICAgICAgICAKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KHNhdmUpOworICAgIH0KKworCisgICAgcHVibGljIHZvaWQgVGVzdERpc3BsYXlOYW1lMigpIHsKKyAgICAgICAgLy8gRGF0ZSBub3cgPSBuZXcgRGF0ZSgpOworICAgICAgICBEYXRlIHRoZW4gPSBuZXcgRGF0ZSgyMDA1LCAwLCAxKTsKKworICAgICAgICBTdHJpbmdbXSB0aW1lem9uZXMgPSB7IkFtZXJpY2EvQ2hpY2FnbyIsICJFdXJvcGUvTW9zY293IiwgIkV1cm9wZS9Sb21lIiwgIkFzaWEvU2hhbmdoYWkiLCAiV0VUIiB9OworICAgICAgICBTdHJpbmdbXSBsb2NhbGVzID0geyJlbiIsICJmciIsICJkZSIsICJqYSIsICJ6aF9UVyIsICJ6aF9IYW5zIiB9OworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGxvY2FsZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gbmV3IFVMb2NhbGUobG9jYWxlc1tqXSk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRpbWV6b25lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUodGltZXpvbmVzW2ldKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZGlzcGxheU5hbWUwID0gdHouZ2V0RGlzcGxheU5hbWUobG9jYWxlKTsgLy8gZG9lc24ndCB3b3JrPz8/CisgICAgICAgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBkdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ2dnZ2IiwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICBkdC5zZXRUaW1lWm9uZSh0eik7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRpc3BsYXlOYW1lMSA9IGR0LmZvcm1hdCh0aGVuKTsgIC8vIGRhdGUgdmFsdWUgX2RvZXNfIG1hdHRlciBpZiB3ZSBmYWxsYmFjayB0byBHTVQKKyAgICAgICAgICAgICAgICBsb2dsbihsb2NhbGUuZ2V0RGlzcGxheU5hbWUoKSArICIsICIgKyB0ei5nZXRJRCgpICsgIjogIiArIGRpc3BsYXlOYW1lMCk7CisgICAgICAgICAgICAgICAgaWYgKCFkaXNwbGF5TmFtZTEuZXF1YWxzKGRpc3BsYXlOYW1lMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4obG9jYWxlLmdldERpc3BsYXlOYW1lKCkgKyAiLCAiICsgdHouZ2V0SUQoKSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiOiBleHBlY3RlZCAiICsgZGlzcGxheU5hbWUxICsgIiBidXQgZ290OiAiICsgZGlzcGxheU5hbWUwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2VuZXJpY0FQSSgpIHsKKyAgICAgICAgU3RyaW5nIGlkID0gIk5ld0dNVCI7CisgICAgICAgIGludCBvZmZzZXQgPSAxMjM0NTsKKworICAgICAgICBTaW1wbGVUaW1lWm9uZSB6b25lID0gbmV3IFNpbXBsZVRpbWVab25lKG9mZnNldCwgaWQpOworICAgICAgICBpZiAoem9uZS51c2VEYXlsaWdodFRpbWUoKSkgZXJybG4oIkZBSUw6IHVzZURheWxpZ2h0VGltZSBzaG91bGQgcmV0dXJuIGZhbHNlIik7CisKKyAgICAgICAgVGltZVpvbmUgem9uZWNsb25lID0gKFRpbWVab25lKXpvbmUuY2xvbmUoKTsKKyAgICAgICAgaWYgKCF6b25lY2xvbmUuZXF1YWxzKHpvbmUpKSBlcnJsbigiRkFJTDogY2xvbmUgb3Igb3BlcmF0b3I9PSBmYWlsZWQiKTsKKyAgICAgICAgem9uZWNsb25lLnNldElEKCJhYmMiKTsKKyAgICAgICAgaWYgKHpvbmVjbG9uZS5lcXVhbHMoem9uZSkpIGVycmxuKCJGQUlMOiBjbG9uZSBvciBvcGVyYXRvciE9IGZhaWxlZCIpOworICAgICAgICAvLyBkZWxldGUgem9uZWNsb25lOworCisgICAgICAgIHpvbmVjbG9uZSA9IChUaW1lWm9uZSl6b25lLmNsb25lKCk7CisgICAgICAgIGlmICghem9uZWNsb25lLmVxdWFscyh6b25lKSkgZXJybG4oIkZBSUw6IGNsb25lIG9yIG9wZXJhdG9yPT0gZmFpbGVkIik7CisgICAgICAgIHpvbmVjbG9uZS5zZXRSYXdPZmZzZXQoNDU2NzgpOworICAgICAgICBpZiAoem9uZWNsb25lLmVxdWFscyh6b25lKSkgZXJybG4oIkZBSUw6IGNsb25lIG9yIG9wZXJhdG9yIT0gZmFpbGVkIik7CisKKyAgICAgICAgLy8gQysrIG9ubHkKKyAgICAgICAgLyoKKyAgICAgICAgICBTaW1wbGVUaW1lWm9uZSBjb3B5KCp6b25lKTsKKyAgICAgICAgICBpZiAoIShjb3B5ID09ICp6b25lKSkgZXJybG4oIkZBSUw6IGNvcHkgY29uc3RydWN0b3Igb3Igb3BlcmF0b3I9PSBmYWlsZWQiKTsKKyAgICAgICAgICBjb3B5ID0gKihTaW1wbGVUaW1lWm9uZSopem9uZWNsb25lOworICAgICAgICAgIGlmICghKGNvcHkgPT0gKnpvbmVjbG9uZSkpIGVycmxuKCJGQUlMOiBhc3NpZ25tZW50IG9wZXJhdG9yIG9yIG9wZXJhdG9yPT0gZmFpbGVkIik7CisgICAgICAgICAgKi8KKworICAgICAgICBUaW1lWm9uZSBzYXZlRGVmYXVsdCA9IFRpbWVab25lLmdldERlZmF1bHQoKTsKKyAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdCh6b25lKTsKKyAgICAgICAgVGltZVpvbmUgZGVmYXVsdHpvbmUgPSBUaW1lWm9uZS5nZXREZWZhdWx0KCk7CisgICAgICAgIGlmIChkZWZhdWx0em9uZSA9PSB6b25lKSBlcnJsbigiRkFJTDogRGVmYXVsdCBvYmplY3QgaXMgaWRlbnRpY2FsLCBub3QgY2xvbmUiKTsKKyAgICAgICAgaWYgKCFkZWZhdWx0em9uZS5lcXVhbHMoem9uZSkpIGVycmxuKCJGQUlMOiBEZWZhdWx0IG9iamVjdCBpcyBub3QgZXF1YWwiKTsKKyAgICAgICAgVGltZVpvbmUuc2V0RGVmYXVsdChzYXZlRGVmYXVsdCk7CisgICAgICAgIC8vIGRlbGV0ZSBkZWZhdWx0em9uZTsKKyAgICAgICAgLy8gZGVsZXRlIHpvbmVjbG9uZTsKKworLy8gICAgICAvLyBJQ1UgMi42IENvdmVyYWdlCisvLyAgICAgIGxvZ2xuKHpvbmUudG9TdHJpbmcoKSk7CisvLyAgICAgIGxvZ2xuKHpvbmUuZ2V0RGlzcGxheU5hbWUoKSk7CisvLyAgICAgIFNpbXBsZVRpbWVab25lQWRhcHRlciBzdHphID0gbmV3IFNpbXBsZVRpbWVab25lQWRhcHRlcigoU2ltcGxlVGltZVpvbmUpIFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSk7CisvLyAgICAgIHN0emEuc2V0SUQoIkZvbyIpOworLy8gICAgICBpZiAoc3R6YS5oYXNTYW1lUnVsZXMoamF2YS51dGlsLlRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSkpIHsKKy8vICAgICAgICAgIGVycmxuKCJGQUlMOiBTaW1wbGVUaW1lWm9uZUFkYXB0ZXIuaGFzU2FtZVJ1bGVzIik7CisvLyAgICAgIH0KKy8vICAgICAgc3R6YS5zZXRSYXdPZmZzZXQoMzAwMCk7CisvLyAgICAgIG9mZnNldCA9IHN0emEuZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkJDLCAyMDAxLCBDYWxlbmRhci5ERUNFTUJFUiwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUsIENhbGVuZGFyLlRVRVNEQVksIDEyKjYwKjYwKjEwMDApOworLy8gICAgICBpZiAob2Zmc2V0ICE9IDMwMDApIHsKKy8vICAgICAgICAgIGVycmxuKCJGQUlMOiBTaW1wbGVUaW1lWm9uZUFkYXB0ZXIuZ2V0T2Zmc2V0Iik7CisvLyAgICAgIH0KKy8vICAgICAgU2ltcGxlVGltZVpvbmVBZGFwdGVyIGR1cCA9IChTaW1wbGVUaW1lWm9uZUFkYXB0ZXIpIHN0emEuY2xvbmUoKTsKKy8vICAgICAgaWYgKHN0emEuaGFzaENvZGUoKSAhPSBkdXAuaGFzaENvZGUoKSkgeworLy8gICAgICAgICAgZXJybG4oIkZBSUw6IFNpbXBsZVRpbWVab25lQWRhcHRlci5oYXNoQ29kZSIpOworLy8gICAgICB9CisvLyAgICAgIGlmICghc3R6YS5lcXVhbHMoZHVwKSkgeworLy8gICAgICAgICAgZXJybG4oIkZBSUw6IFNpbXBsZVRpbWVab25lQWRhcHRlci5lcXVhbHMiKTsKKy8vICAgICAgfQorLy8gICAgICBsb2dsbihzdHphLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RSdWxlQVBJKCkKKyAgICB7CisgICAgICAgIC8vIEVycm9yQ29kZSBzdGF0dXMgPSBaRVJPX0VSUk9SOworCisgICAgICAgIGludCBvZmZzZXQgPSAoaW50KSg2MCo2MCoxMDAwKjEuNzUpOyAvLyBQaWNrIGEgd2VpcmQgb2Zmc2V0CisgICAgICAgIFNpbXBsZVRpbWVab25lIHpvbmUgPSBuZXcgU2ltcGxlVGltZVpvbmUob2Zmc2V0LCAiVGVzdFpvbmUiKTsKKyAgICAgICAgaWYgKHpvbmUudXNlRGF5bGlnaHRUaW1lKCkpIGVycmxuKCJGQUlMOiB1c2VEYXlsaWdodFRpbWUgc2hvdWxkIHJldHVybiBmYWxzZSIpOworCisgICAgICAgIC8vIEVzdGFibGlzaCBvdXIgZXhwZWN0ZWQgdHJhbnNpdGlvbiB0aW1lcy4gIERvIHRoaXMgd2l0aCBhIG5vbi1EU1QKKyAgICAgICAgLy8gY2FsZW5kYXIgd2l0aCB0aGUgKGFib3ZlKSBkZWNsYXJlZCBsb2NhbCBvZmZzZXQuCisgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyIGdjID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHpvbmUpOworICAgICAgICBnYy5jbGVhcigpOworICAgICAgICBnYy5zZXQoMTk5MCwgQ2FsZW5kYXIuTUFSQ0gsIDEpOworICAgICAgICBsb25nIG1hcmNoT25lU3RkID0gZ2MuZ2V0VGltZSgpLmdldFRpbWUoKTsgLy8gTG9jYWwgU3RkIHRpbWUgbWlkbmlnaHQKKyAgICAgICAgZ2MuY2xlYXIoKTsKKyAgICAgICAgZ2Muc2V0KDE5OTAsIENhbGVuZGFyLkpVTFksIDEpOworICAgICAgICBsb25nIGp1bHlPbmVTdGQgPSBnYy5nZXRUaW1lKCkuZ2V0VGltZSgpOyAvLyBMb2NhbCBTdGQgdGltZSBtaWRuaWdodAorCisgICAgICAgIC8vIFN0YXJ0aW5nIGFuZCBlbmRpbmcgaG91cnMsIFdBTEwgVElNRQorICAgICAgICBpbnQgc3RhcnRIb3VyID0gKGludCkoMi4yNSAqIDM2MDAwMDApOworICAgICAgICBpbnQgZW5kSG91ciAgID0gKGludCkoMy41ICAqIDM2MDAwMDApOworCisgICAgICAgIHpvbmUuc2V0U3RhcnRSdWxlKENhbGVuZGFyLk1BUkNILCAxLCAwLCBzdGFydEhvdXIpOworICAgICAgICB6b25lLnNldEVuZFJ1bGUgIChDYWxlbmRhci5KVUxZLCAgMSwgMCwgZW5kSG91cik7CisKKyAgICAgICAgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoem9uZSk7CisgICAgICAgIC8vIGlmIChmYWlsdXJlKHN0YXR1cywgIm5ldyBHcmVnb3JpYW5DYWxlbmRhciIpKSByZXR1cm47CisKKyAgICAgICAgbG9uZyBtYXJjaE9uZSA9IG1hcmNoT25lU3RkICsgc3RhcnRIb3VyOworICAgICAgICBsb25nIGp1bHlPbmUgPSBqdWx5T25lU3RkICsgZW5kSG91ciAtIDM2MDAwMDA7IC8vIEFkanVzdCBmcm9tIHdhbGwgdG8gU3RkIHRpbWUKKworICAgICAgICBsb25nIGV4cE1hcmNoT25lID0gNjM2MjUxNDAwMDAwTDsKKyAgICAgICAgaWYgKG1hcmNoT25lICE9IGV4cE1hcmNoT25lKQorICAgICAgICB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogRXhwZWN0ZWQgc3RhcnQgY29tcHV0ZWQgYXMgIiArIG1hcmNoT25lICsKKyAgICAgICAgICAgICAgICAgICIgPSAiICsgbmV3IERhdGUobWFyY2hPbmUpKTsKKyAgICAgICAgICAgIGxvZ2xuKCIgICAgICBTaG91bGQgYmUgICAgICAgICAgICAgICAgICAiICsgZXhwTWFyY2hPbmUgKworICAgICAgICAgICAgICAgICAgIiA9ICIgKyBuZXcgRGF0ZShleHBNYXJjaE9uZSkpOworICAgICAgICB9CisKKyAgICAgICAgbG9uZyBleHBKdWx5T25lID0gNjQ2NzkzMTAwMDAwTDsKKyAgICAgICAgaWYgKGp1bHlPbmUgIT0gZXhwSnVseU9uZSkKKyAgICAgICAgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIHN0YXJ0IGNvbXB1dGVkIGFzICIgKyBqdWx5T25lICsKKyAgICAgICAgICAgICAgICAgICIgPSAiICsgbmV3IERhdGUoanVseU9uZSkpOworICAgICAgICAgICAgbG9nbG4oIiAgICAgIFNob3VsZCBiZSAgICAgICAgICAgICAgICAgICIgKyBleHBKdWx5T25lICsKKyAgICAgICAgICAgICAgICAgICIgPSAiICsgbmV3IERhdGUoZXhwSnVseU9uZSkpOworICAgICAgICB9CisKKyAgICAgICAgQ2FsZW5kYXIgY2FsMSA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbDEuc2V0KDE5OTAsIENhbGVuZGFyLkpBTlVBUlksIDEpOworICAgICAgICBDYWxlbmRhciBjYWwyID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsMi5zZXQoMTk5MCwgQ2FsZW5kYXIuSlVORSwgMSk7CisgICAgICAgIF90ZXN0VXNpbmdCaW5hcnlTZWFyY2goem9uZSwgY2FsMS5nZXRUaW1lSW5NaWxsaXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwyLmdldFRpbWVJbk1pbGxpcygpLCBtYXJjaE9uZSk7CisgICAgICAgIGNhbDEuc2V0KDE5OTAsIENhbGVuZGFyLkpVTkUsIDEpOworICAgICAgICBjYWwyLnNldCgxOTkwLCBDYWxlbmRhci5ERUNFTUJFUiwgMzEpOworICAgICAgICBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKHpvbmUsIGNhbDEuZ2V0VGltZUluTWlsbGlzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsMi5nZXRUaW1lSW5NaWxsaXMoKSwganVseU9uZSk7CisKKyAgICAgICAgaWYgKHpvbmUuaW5EYXlsaWdodFRpbWUobmV3IERhdGUobWFyY2hPbmUgLSAxMDAwKSkgfHwKKyAgICAgICAgICAgICF6b25lLmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKG1hcmNoT25lKSkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogU3RhcnQgcnVsZSBicm9rZW4iKTsKKyAgICAgICAgaWYgKCF6b25lLmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKGp1bHlPbmUgLSAxMDAwKSkgfHwKKyAgICAgICAgICAgIHpvbmUuaW5EYXlsaWdodFRpbWUobmV3IERhdGUoanVseU9uZSkpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IEVuZCBydWxlIGJyb2tlbiIpOworCisgICAgICAgIHpvbmUuc2V0U3RhcnRZZWFyKDE5OTEpOworICAgICAgICBpZiAoem9uZS5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtYXJjaE9uZSkpIHx8CisgICAgICAgICAgICB6b25lLmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKGp1bHlPbmUgLSAxMDAwKSkpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogU3RhcnQgeWVhciBicm9rZW4iKTsKKworICAgICAgICAvLyBmYWlsdXJlKHN0YXR1cywgIlRlc3RSdWxlQVBJIik7CisgICAgICAgIC8vIGRlbGV0ZSBnYzsKKyAgICAgICAgLy8gZGVsZXRlIHpvbmU7CisgICAgfQorCisgICAgdm9pZCBfdGVzdFVzaW5nQmluYXJ5U2VhcmNoKFNpbXBsZVRpbWVab25lIHR6LCBsb25nIG1pbiwgbG9uZyBtYXgsIGxvbmcgZXhwZWN0ZWRCb3VuZGFyeSkKKyAgICB7CisgICAgICAgIC8vIEVycm9yQ29kZSBzdGF0dXMgPSBaRVJPX0VSUk9SOworICAgICAgICBib29sZWFuIHN0YXJ0c0luRFNUID0gdHouaW5EYXlsaWdodFRpbWUobmV3IERhdGUobWluKSk7CisgICAgICAgIC8vIGlmIChmYWlsdXJlKHN0YXR1cywgIlNpbXBsZVRpbWVab25lOjppbkRheWxpZ2h0VGltZSIpKSByZXR1cm47CisgICAgICAgIGlmICh0ei5pbkRheWxpZ2h0VGltZShuZXcgRGF0ZShtYXgpKSA9PSBzdGFydHNJbkRTVCkgeworICAgICAgICAgICAgbG9nbG4oIkVycm9yOiBpbkRheWxpZ2h0VGltZSgiICsgbmV3IERhdGUobWF4KSArICIpICE9ICIgKyAoIXN0YXJ0c0luRFNUKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gaWYgKGZhaWx1cmUoc3RhdHVzLCAiU2ltcGxlVGltZVpvbmU6OmluRGF5bGlnaHRUaW1lIikpIHJldHVybjsKKyAgICAgICAgd2hpbGUgKChtYXggLSBtaW4pID4gSU5URVJWQUwpIHsKKyAgICAgICAgICAgIGxvbmcgbWlkID0gKG1pbiArIG1heCkgLyAyOworICAgICAgICAgICAgaWYgKHR6LmluRGF5bGlnaHRUaW1lKG5ldyBEYXRlKG1pZCkpID09IHN0YXJ0c0luRFNUKSB7CisgICAgICAgICAgICAgICAgbWluID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbWF4ID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaWYgKGZhaWx1cmUoc3RhdHVzLCAiU2ltcGxlVGltZVpvbmU6OmluRGF5bGlnaHRUaW1lIikpIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiQmluYXJ5IFNlYXJjaCBCZWZvcmU6ICIgKyBtaW4gKyAiID0gIiArIG5ldyBEYXRlKG1pbikpOworICAgICAgICBsb2dsbigiQmluYXJ5IFNlYXJjaCBBZnRlcjogICIgKyBtYXggKyAiID0gIiArIG5ldyBEYXRlKG1heCkpOworICAgICAgICBsb25nIG1pbmRlbHRhID0gZXhwZWN0ZWRCb3VuZGFyeSAtIG1pbjsKKyAgICAgICAgLy8gbm90IHVzZWQgbG9uZyBtYXhkZWx0YSA9IG1heCAtIGV4cGVjdGVkQm91bmRhcnk7CisgICAgICAgIGlmIChtaW5kZWx0YSA+PSAwICYmCisgICAgICAgICAgICBtaW5kZWx0YSA8PSBJTlRFUlZBTCAmJgorICAgICAgICAgICAgbWluZGVsdGEgPj0gMCAmJgorICAgICAgICAgICAgbWluZGVsdGEgPD0gSU5URVJWQUwpCisgICAgICAgICAgICBsb2dsbigiUEFTUzogRXhwZWN0ZWQgYmRyeTogICIgKyBleHBlY3RlZEJvdW5kYXJ5ICsgIiA9ICIgKyBuZXcgRGF0ZShleHBlY3RlZEJvdW5kYXJ5KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBFeHBlY3RlZCBiZHJ5OiAgIiArIGV4cGVjdGVkQm91bmRhcnkgKyAiID0gIiArIG5ldyBEYXRlKGV4cGVjdGVkQm91bmRhcnkpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IElOVEVSVkFMID0gMTAwOworCisgICAgLy8gQnVnIDAwNjsgdmVyaWZ5IHRoZSBvZmZzZXQgZm9yIGEgc3BlY2lmaWMgem9uZS4KKyAgICBwdWJsaWMgdm9pZCBUZXN0UFJUT2Zmc2V0KCkKKyAgICB7CisgICAgICAgIFRpbWVab25lIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoICJQUlQiICk7CisgICAgICAgIGlmKCB0eiA9PSBudWxsICkgeworICAgICAgICAgICAgZXJybG4oICJGQUlMOiBUaW1lWm9uZShQUlQpIGlzIG51bGwiICk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZXsKKyAgICAgICAgICAgIGlmICh0ei5nZXRSYXdPZmZzZXQoKSAhPSAoLTQqbWlsbGlzUGVySG91cikpCisgICAgICAgICAgICAgICAgd2FybmxuKCJGQUlMOiBPZmZzZXQgZm9yIFBSVCBzaG91bGQgYmUgLTQsIGdvdCAiICsKKyAgICAgICAgICAgICAgICAgICAgICB0ei5nZXRSYXdPZmZzZXQoKSAvIChkb3VibGUpbWlsbGlzUGVySG91cik7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8vIFRlc3QgdmFyaW91cyBjYWxscworICAgIHB1YmxpYyB2b2lkIFRlc3RWYXJpb3VzQVBJNTE4KCkKKyAgICB7CisgICAgICAgIFRpbWVab25lIHRpbWVfem9uZSA9IFRpbWVab25lLmdldFRpbWVab25lKCJQU1QiKTsKKyAgICAgICAgQ2FsZW5kYXIgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgY2FsLnNldCgxOTk3LCBDYWxlbmRhci5BUFJJTCwgMzApOworICAgICAgICBEYXRlIGQgPSBjYWwuZ2V0VGltZSgpOworCisgICAgICAgIGxvZ2xuKCJUaGUgdGltZXpvbmUgaXMgIiArIHRpbWVfem9uZS5nZXRJRCgpKTsKKworICAgICAgICBpZiAodGltZV96b25lLmluRGF5bGlnaHRUaW1lKGQpICE9IHRydWUpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogaW5EYXlsaWdodFRpbWUgcmV0dXJuZWQgZmFsc2UiKTsKKworICAgICAgICBpZiAodGltZV96b25lLnVzZURheWxpZ2h0VGltZSgpICE9IHRydWUpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogdXNlRGF5bGlnaHRUaW1lIHJldHVybmVkIGZhbHNlIik7CisKKyAgICAgICAgaWYgKHRpbWVfem9uZS5nZXRSYXdPZmZzZXQoKSAhPSAtOCptaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oICJGQUlMOiBnZXRSYXdPZmZzZXQgcmV0dXJuZWQgd3JvbmcgdmFsdWUiKTsKKworICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBnYyA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcigpOworICAgICAgICBnYy5zZXRUaW1lKGQpOworICAgICAgICBpZiAodGltZV96b25lLmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgZ2MuZ2V0KEdyZWdvcmlhbkNhbGVuZGFyLllFQVIpLCBnYy5nZXQoR3JlZ29yaWFuQ2FsZW5kYXIuTU9OVEgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYy5nZXQoR3JlZ29yaWFuQ2FsZW5kYXIuREFZX09GX01PTlRIKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2MuZ2V0KEdyZWdvcmlhbkNhbGVuZGFyLkRBWV9PRl9XRUVLKSwgMCkKKyAgICAgICAgICAgICE9IC03Km1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0T2Zmc2V0IHJldHVybmVkIHdyb25nIHZhbHVlIik7CisgICAgfQorCisgICAgLy8gVGVzdCBnZXRBdmFpbGFibGVJRCBBUEkKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0QXZhaWxhYmxlSURzOTEzKCkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCJUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoKSA9IHsgIik7CisgICAgICAgIFN0cmluZ1tdIHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoOyArK2kpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChpID4gMCkgYnVmLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgYnVmLmFwcGVuZCgiIH07Iik7CisgICAgICAgIGxvZ2xuKGJ1Zi50b1N0cmluZygpKTsKKworICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICBidWYuYXBwZW5kKCJUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoR01UKzAyOjAwKSA9IHsgIik7CisgICAgICAgIHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoKzIgKiA2MCAqIDYwICogMTAwMCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aDsgKytpKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoaSA+IDApIGJ1Zi5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKHNbaV0pOworICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoIiB9OyIpOworICAgICAgICBsb2dsbihidWYudG9TdHJpbmcoKSk7CisKKyAgICAgICAgVGltZVpvbmUgdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiUFNUIik7CisgICAgICAgIGlmICh0eiAhPSBudWxsKQorICAgICAgICAgICAgbG9nbG4oImdldFRpbWVab25lKFBTVCkgPSAiICsgdHouZ2V0SUQoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRUaW1lWm9uZShQU1QpID0gbnVsbCIpOworCisgICAgICAgIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIkFtZXJpY2EvTG9zX0FuZ2VsZXMiKTsKKyAgICAgICAgaWYgKHR6ICE9IG51bGwpCisgICAgICAgICAgICBsb2dsbigiZ2V0VGltZVpvbmUoQW1lcmljYS9Mb3NfQW5nZWxlcykgPSAiICsgdHouZ2V0SUQoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRUaW1lWm9uZShQU1QpID0gbnVsbCIpOworCisgICAgICAgIC8vIEJ1ZyA0MDk2Njk0CisgICAgICAgIHR6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoIk5PTl9FWElTVEVOVCIpOworICAgICAgICBpZiAodHogPT0gbnVsbCkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRUaW1lWm9uZShOT05fRVhJU1RFTlQpID0gbnVsbCIpOworICAgICAgICBlbHNlIGlmICghdHouZ2V0SUQoKS5lcXVhbHMoIkdNVCIpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldFRpbWVab25lKE5PTl9FWElTVEVOVCkgPSAiICsgdHouZ2V0SUQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQnVnIDQxMDcyNzYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RFNUU2F2aW5ncygpIHsKKyAgICAgICAgLy8gSXQgbWlnaHQgYmUgYmV0dGVyIHRvIGZpbmQgYSB3YXkgdG8gaW50ZWdyYXRlIHRoaXMgdGVzdCBpbnRvIHRoZSBtYWluIFRpbWVab25lCisgICAgICAgIC8vIHRlc3RzIGFib3ZlLCBidXQgSSBkb24ndCBoYXZlIHRpbWUgdG8gZmlndXJlIG91dCBob3cgdG8gZG8gdGhpcyAob3IgaWYgaXQncworICAgICAgICAvLyBldmVuIHJlYWxseSBhIGdvb2QgaWRlYSkuICBMZXQncyBjb25zaWRlciB0aGF0IGEgZnV0dXJlLiAgLS1ydGcgMS8yNy85OAorICAgICAgICBTaW1wbGVUaW1lWm9uZSB0eiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgtNSAqIG1pbGxpc1BlckhvdXIsICJkc3RTYXZpbmdzVGVzdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLk1BUkNILCAxLCAwLCAwLCBDYWxlbmRhci5TRVBURU1CRVIsIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKDAuNSAqIG1pbGxpc1BlckhvdXIpKTsKKworICAgICAgICBpZiAodHouZ2V0UmF3T2Zmc2V0KCkgIT0gLTUgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIkdvdCBiYWNrIGEgcmF3IG9mZnNldCBvZiAiICsgKHR6LmdldFJhd09mZnNldCgpIC8gbWlsbGlzUGVySG91cikgKworICAgICAgICAgICAgICAgICAgIiBob3VycyBpbnN0ZWFkIG9mIC01IGhvdXJzLiIpOworICAgICAgICBpZiAoIXR6LnVzZURheWxpZ2h0VGltZSgpKQorICAgICAgICAgICAgZXJybG4oIlRlc3QgdGltZSB6b25lIHNob3VsZCB1c2UgRFNUIGJ1dCBjbGFpbXMgaXQgZG9lc24ndC4iKTsKKyAgICAgICAgaWYgKHR6LmdldERTVFNhdmluZ3MoKSAhPSAwLjUgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlNldCBEU1Qgb2Zmc2V0IHRvIDAuNSBob3VyLCBidXQgZ290IGJhY2sgIiArICh0ei5nZXREU1RTYXZpbmdzKCkgLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWxsaXNQZXJIb3VyKSArICIgaG91cnMgaW5zdGVhZC4iKTsKKworICAgICAgICBpbnQgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk4LCBDYWxlbmRhci5KQU5VQVJZLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlRIVVJTREFZLCAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC01ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMCBBTSwgMS8xLzk4IHNob3VsZCBoYXZlIGJlZW4gLTUgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuSlVORSwgMSwgQ2FsZW5kYXIuTU9OREFZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNC41ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMCBBTSwgNi8xLzk4IHNob3VsZCBoYXZlIGJlZW4gLTQuNSBob3VycywgYnV0IHdlIGdvdCAiCisgICAgICAgICAgICAgICAgICArIChvZmZzZXQgLyBtaWxsaXNQZXJIb3VyKSArICIgaG91cnMuIik7CisKKyAgICAgICAgdHouc2V0RFNUU2F2aW5ncyhtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk4LCBDYWxlbmRhci5KQU5VQVJZLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuVEhVUlNEQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTUgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwIEFNLCAxLzEvOTggc2hvdWxkIGhhdmUgYmVlbiAtNSBob3VycywgYnV0IHdlIGdvdCAiCisgICAgICAgICAgICAgICAgICArIChvZmZzZXQgLyBtaWxsaXNQZXJIb3VyKSArICIgaG91cnMuIik7CisKKyAgICAgICAgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk4LCBDYWxlbmRhci5KVU5FLCAxLCBDYWxlbmRhci5NT05EQVksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC00ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMCBBTSwgNi8xLzk4ICh3aXRoIGEgMS1ob3VyIERTVCBvZmZzZXQpIHNob3VsZCBoYXZlIGJlZW4gLTQgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJ1ZyA0MTA3NTcwCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFsdGVybmF0ZVJ1bGVzKCkgeworICAgICAgICAvLyBMaWtlIFRlc3REU1RTYXZpbmdzLCB0aGlzIHRlc3Qgc2hvdWxkIHByb2JhYmx5IGJlIGludGVncmF0ZWQgc29tZWhvdyB3aXRoIHRoZSBtYWluCisgICAgICAgIC8vIHRlc3QgYXQgdGhlIHRvcCBvZiB0aGlzIGNsYXNzLCBidXQgSSBkaWRuJ3QgaGF2ZSB0aW1lIHRvIGZpZ3VyZSBvdXQgaG93IHRvIGRvIHRoYXQuCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgIC0tcnRnIDEvMjgvOTgKKworICAgICAgICBTaW1wbGVUaW1lWm9uZSB0eiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgtNSAqIG1pbGxpc1BlckhvdXIsICJhbHRlcm5hdGVSdWxlVGVzdCIpOworCisgICAgICAgIC8vIHRlc3QgdGhlIGRheS1vZi1tb250aCBBUEkKKyAgICAgICAgdHouc2V0U3RhcnRSdWxlKENhbGVuZGFyLk1BUkNILCAxMCwgMTIgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgdHouc2V0RW5kUnVsZShDYWxlbmRhci5PQ1RPQkVSLCAyMCwgMTIgKiBtaWxsaXNQZXJIb3VyKTsKKworICAgICAgICBpbnQgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk4LCBDYWxlbmRhci5NQVJDSCwgNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5USFVSU0RBWSwgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNSAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTBBTSwgMy81Lzk4IHNob3VsZCBoYXZlIGJlZW4gLTUgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuTUFSQ0gsIDE1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuU1VOREFZLCAxMCAqIG1pbGxpc1BlckhvdXIpOworICAgICAgICBpZiAob2Zmc2V0ICE9IC00ICogbWlsbGlzUGVySG91cikKKyAgICAgICAgICAgIGVycmxuKCJUaGUgb2Zmc2V0IGZvciAxMEFNLCAzLzE1Lzk4IHNob3VsZCBoYXZlIGJlZW4gLTQgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuT0NUT0JFUiwgMTUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5USFVSU0RBWSwgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNCAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTBBTSwgMTAvMTUvOTggc2hvdWxkIGhhdmUgYmVlbiAtNCBob3VycywgYnV0IHdlIGdvdCAiCisgICAgICAgICAgICAgICAgICArIChvZmZzZXQgLyBtaWxsaXNQZXJIb3VyKSArICIgaG91cnMuIik7CisKKyAgICAgICAgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk4LCBDYWxlbmRhci5PQ1RPQkVSLCAyNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLlNVTkRBWSwgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNSAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTBBTSwgMTAvMjUvOTggc2hvdWxkIGhhdmUgYmVlbiAtNSBob3VycywgYnV0IHdlIGdvdCAiCisgICAgICAgICAgICAgICAgICArIChvZmZzZXQgLyBtaWxsaXNQZXJIb3VyKSArICIgaG91cnMuIik7CisKKyAgICAgICAgLy8gdGVzdCB0aGUgZGF5LW9mLXdlZWstYWZ0ZXItZGF5LWluLW1vbnRoIEFQSQorICAgICAgICB0ei5zZXRTdGFydFJ1bGUoQ2FsZW5kYXIuTUFSQ0gsIDEwLCBDYWxlbmRhci5GUklEQVksIDEyICogbWlsbGlzUGVySG91ciwgdHJ1ZSk7CisgICAgICAgIHR6LnNldEVuZFJ1bGUoQ2FsZW5kYXIuT0NUT0JFUiwgMjAsIENhbGVuZGFyLkZSSURBWSwgMTIgKiBtaWxsaXNQZXJIb3VyLCBmYWxzZSk7CisKKyAgICAgICAgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk4LCBDYWxlbmRhci5NQVJDSCwgMTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5XRURORVNEQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTUgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwQU0sIDMvMTEvOTggc2hvdWxkIGhhdmUgYmVlbiAtNSBob3VycywgYnV0IHdlIGdvdCAiCisgICAgICAgICAgICAgICAgICArIChvZmZzZXQgLyBtaWxsaXNQZXJIb3VyKSArICIgaG91cnMuIik7CisKKyAgICAgICAgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KEdyZWdvcmlhbkNhbGVuZGFyLkFELCAxOTk4LCBDYWxlbmRhci5NQVJDSCwgMTQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5TQVRVUkRBWSwgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNCAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTBBTSwgMy8xNC85OCBzaG91bGQgaGF2ZSBiZWVuIC00IGhvdXJzLCBidXQgd2UgZ290ICIKKyAgICAgICAgICAgICAgICAgICsgKG9mZnNldCAvIG1pbGxpc1BlckhvdXIpICsgIiBob3Vycy4iKTsKKworICAgICAgICBvZmZzZXQgPSB0ei5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIDE5OTgsIENhbGVuZGFyLk9DVE9CRVIsIDE1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIuVEhVUlNEQVksIDEwICogbWlsbGlzUGVySG91cik7CisgICAgICAgIGlmIChvZmZzZXQgIT0gLTQgKiBtaWxsaXNQZXJIb3VyKQorICAgICAgICAgICAgZXJybG4oIlRoZSBvZmZzZXQgZm9yIDEwQU0sIDEwLzE1Lzk4IHNob3VsZCBoYXZlIGJlZW4gLTQgaG91cnMsIGJ1dCB3ZSBnb3QgIgorICAgICAgICAgICAgICAgICAgKyAob2Zmc2V0IC8gbWlsbGlzUGVySG91cikgKyAiIGhvdXJzLiIpOworCisgICAgICAgIG9mZnNldCA9IHR6LmdldE9mZnNldChHcmVnb3JpYW5DYWxlbmRhci5BRCwgMTk5OCwgQ2FsZW5kYXIuT0NUT0JFUiwgMTcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5TQVRVUkRBWSwgMTAgKiBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAtNSAqIG1pbGxpc1BlckhvdXIpCisgICAgICAgICAgICBlcnJsbigiVGhlIG9mZnNldCBmb3IgMTBBTSwgMTAvMTcvOTggc2hvdWxkIGhhdmUgYmVlbiAtNSBob3VycywgYnV0IHdlIGdvdCAiCisgICAgICAgICAgICAgICAgICArIChvZmZzZXQgLyBtaWxsaXNQZXJIb3VyKSArICIgaG91cnMuIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEVxdWl2YWxlbmN5R3JvdXBzKCkgeworICAgICAgICBTdHJpbmcgaWQgPSAiQW1lcmljYS9Mb3NfQW5nZWxlcyI7CisgICAgICAgIGludCBuID0gVGltZVpvbmUuY291bnRFcXVpdmFsZW50SURzKGlkKTsKKyAgICAgICAgaWYgKG4gPCAyKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY291bnRFcXVpdmFsZW50SURzKCIgKyBpZCArICIpIHJldHVybmVkICIgKyBuICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkID49IDIiKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IFRpbWVab25lLmdldEVxdWl2YWxlbnRJRChpZCwgaSk7CisgICAgICAgICAgICBpZiAocy5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEVxdWl2YWxlbnRJRCgiICsgaWQgKyAiLCAiICsgaSArCisgICAgICAgICAgICAgICAgICAgICAgIikgcmV0dXJuZWQgXCIiICsgcyArICJcIiwgZXhwZWN0ZWQgdmFsaWQgSUQiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIiIgKyBpICsgIjoiICsgcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q291bnRyaWVzKCkgeworICAgICAgICAvLyBNYWtlIHN1cmUgQW1lcmljYS9Mb3NfQW5nZWxlcyBpcyBpbiB0aGUgIlVTIiBncm91cCwgYW5kCisgICAgICAgIC8vIEFzaWEvVG9reW8gaXNuJ3QuICBWaWNlIHZlcnNhIGZvciB0aGUgIkpQIiBncm91cC4KKworICAgICAgICBTdHJpbmdbXSBzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCJVUyIpOworICAgICAgICBib29sZWFuIGxhID0gZmFsc2UsIHRva3lvID0gZmFsc2U7CisgICAgICAgIFN0cmluZyBsYVpvbmUgPSAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsIHRva3lvWm9uZSA9ICJBc2lhL1Rva3lvIjsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHNbaV0uZXF1YWxzKGxhWm9uZSkpIHsKKyAgICAgICAgICAgICAgICBsYSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc1tpXS5lcXVhbHModG9reW9ab25lKSkgeworICAgICAgICAgICAgICAgIHRva3lvID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWxhICkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBsYVpvbmUgKyAiIGluIFVTID0gIiArIGxhKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodG9reW8pIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgdG9reW9ab25lICsgIiBpbiBVUyA9ICIgKyB0b2t5byk7CisgICAgICAgIH0KKyAgICAgICAgcyA9IFRpbWVab25lLmdldEF2YWlsYWJsZUlEcygiSlAiKTsKKyAgICAgICAgbGEgPSBmYWxzZTsgdG9reW8gPSBmYWxzZTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHNbaV0uZXF1YWxzKGxhWm9uZSkpIHsKKyAgICAgICAgICAgICAgICBsYSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc1tpXS5lcXVhbHModG9reW9ab25lKSkgeworICAgICAgICAgICAgICAgIHRva3lvID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAobGEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbGFab25lICsgIiBpbiBKUCA9ICIgKyBsYSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0b2t5bykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyB0b2t5b1pvbmUgKyAiIGluIEpQID0gIiArIHRva3lvKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RGcmFjdGlvbmFsRFNUKCkgeworCSAgICBTdHJpbmcgdHpOYW1lID0gIkF1c3RyYWxpYS9Mb3JkX0hvd2UiOyAvLyAzMCBtaW4gb2Zmc2V0CisJICAgIGphdmEudXRpbC5UaW1lWm9uZSB0el9qYXZhID0gamF2YS51dGlsLlRpbWVab25lLmdldFRpbWVab25lKHR6TmFtZSk7CisJICAgIGludCBkc3RfamF2YSA9IDA7CisJICAgIHRyeSB7CisJICAgICAgICAvLyBoYWNrIHNvIHRlc3QgY29tcGlsZXMgYW5kIHJ1bnMgaW4gYm90aCBKREsgMS4zIGFuZCBKREsgMS40CisJICAgICAgICBmaW5hbCBPYmplY3RbXSBhcmdzID0gbmV3IE9iamVjdFswXTsKKwkgICAgICAgIGZpbmFsIENsYXNzW10gYXJndHlwZXMgPSBuZXcgQ2xhc3NbMF07CisJICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QgbSA9IHR6X2phdmEuZ2V0Q2xhc3MoKS5nZXRNZXRob2QoImdldERTVFNhdmluZ3MiLCBhcmd0eXBlcyk7IAorCSAgICAgICAgZHN0X2phdmEgPSAoKEludGVnZXIpIG0uaW52b2tlKHR6X2phdmEsIGFyZ3MpKS5pbnRWYWx1ZSgpOworCSAgICAgICAgaWYgKGRzdF9qYXZhIDw9IDAgfHwgZHN0X2phdmEgPj0gMzYwMDAwMCkgeyAvLyBkaWRuJ3QgZ2V0IHRoZSBmcmFjdGlvbmFsIHRpbWUgem9uZSB3ZSB3YW50ZWQKKwkgICAgICAgIGVycmxuKCJkaWRuJ3QgZ2V0IGZyYWN0aW9uYWwgdGltZSB6b25lISIpOworCSAgICAgICAgfQorCSAgICB9IGNhdGNoIChOb1N1Y2hNZXRob2RFeGNlcHRpb24gZSkgeworCSAgICAgICAgLy8gc2VlIEpES1RpbWVab25lIGZvciB0aGUgcmVhc29uIGZvciB0aGlzIGNvZGUKKwkgICAgICAgIGRzdF9qYXZhID0gMzYwMDAwMDsKKwkgICAgfSBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlKSB7CisJICAgICAgICAvLyBzZWUgSkRLVGltZVpvbmUgZm9yIHRoZSByZWFzb24gZm9yIHRoaXMgY29kZQorCSAgICAgICAgZXJybG4oZS5nZXRNZXNzYWdlKCkpOworCSAgICAgICAgZHN0X2phdmEgPSAzNjAwMDAwOworCSAgICB9IGNhdGNoIChJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUpIHsKKwkgICAgICAgIC8vIHNlZSBKREtUaW1lWm9uZSBmb3IgdGhlIHJlYXNvbiBmb3IgdGhpcyBjb2RlCisJICAgICAgICBlcnJsbihlLmdldE1lc3NhZ2UoKSk7CisJICAgICAgICBkc3RfamF2YSA9IDM2MDAwMDA7CisJICAgIH0gY2F0Y2ggKFNlY3VyaXR5RXhjZXB0aW9uIGUpIHsKKwkgICAgICAgIHdhcm5sbihlLmdldE1lc3NhZ2UoKSk7CisJICAgICAgICByZXR1cm47CisJICAgIH0KKwkgICAgCisJICAgIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUgdHpfaWN1ID0gY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS5nZXRUaW1lWm9uZSh0ek5hbWUpOworCSAgICBpbnQgZHN0X2ljdSA9IHR6X2ljdS5nZXREU1RTYXZpbmdzKCk7CisJCisJICAgIGlmIChkc3RfamF2YSAhPSBkc3RfaWN1KSB7CisJICAgICAgICB3YXJubG4oImphdmEgcmVwb3J0cyBkc3Qgc2F2aW5ncyBvZiAiICsgZHN0X2phdmEgKworCSAgICAgICAgICAiIGJ1dCBpY3UgcmVwb3J0cyAiICsgZHN0X2ljdSArIAorCSAgICAgICAgICAiIGZvciB0eiAiICsgdHpfaWN1LmdldElEKCkpOworCSAgICB9IGVsc2UgeworCSAgICAgICAgbG9nbG4oImJvdGggamF2YSBhbmQgaWN1IHJlcG9ydCBkc3Qgc2F2aW5ncyBvZiAiICsgZHN0X2phdmEgKyAiIGZvciB0eiAiICsgdHpfaWN1LmdldElEKCkpOworCSAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldE9mZnNldERhdGUoKSB7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk7CisgICAgICAgIGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSkFOVUFSWSwgMzApOworICAgICAgICBsb25nIGRhdGUgPSBjYWwuZ2V0VGltZUluTWlsbGlzKCk7CisKKyAgICBUaW1lWm9uZSB0el9pY3UgPSBUaW1lWm9uZS5nZXRUaW1lWm9uZSgiQW1lcmljYS9Mb3NfQW5nZWxlcyIpOworICAgIGludCBvZmZzZXQgPSB0el9pY3UuZ2V0T2Zmc2V0KGRhdGUpOworICAgIGlmIChvZmZzZXQgIT0gLTI4ODAwMDAwKSB7CisgICAgICAgIGVycmxuKCJleHBlY3RlZCBvZmZzZXQgLTI4ODAwMDAwLCBnb3Q6ICIgKyBvZmZzZXQpOworICAgIH0KKworICAgIGNhbC5zZXQoMTk5NywgQ2FsZW5kYXIuSlVMWSwgMzApOworICAgIGRhdGUgPSBjYWwuZ2V0VGltZUluTWlsbGlzKCk7CisgICAgb2Zmc2V0ID0gdHpfaWN1LmdldE9mZnNldChkYXRlKTsKKyAgICBpZiAob2Zmc2V0ICE9IC0yNTIwMDAwMCkgeworICAgICAgICBlcnJsbigiZXhwZWN0ZWQgb2Zmc2V0IC0yNTIwMDAwMCwgZ290OiAiICsgb2Zmc2V0KTsKKyAgICB9CisgICAgfQorCisgICAgLy8gamI0NDg0CisgICAgcHVibGljIHZvaWQgVGVzdFNpbXBsZVRpbWVab25lU2VyaWFsaXphdGlvbigpIAorICAgIHsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgc3R6MCA9IG5ldyBTaW1wbGVUaW1lWm9uZSgzMjQwMDAwMCwgIk15VGltZVpvbmUiKTsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgc3R6MSA9IG5ldyBTaW1wbGVUaW1lWm9uZSgzMjQwMDAwMCwgIkFzaWEvVG9reW8iKTsKKyAgICAgICAgU2ltcGxlVGltZVpvbmUgc3R6MiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgzMjQwMDAwMCwgIkFzaWEvVG9reW8iKTsKKyAgICAgICAgc3R6Mi5zZXRSYXdPZmZzZXQoMCk7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHN0ejMgPSBuZXcgU2ltcGxlVGltZVpvbmUoMzI0MDAwMDAsICJBc2lhL1Rva3lvIik7CisgICAgICAgIHN0ejMuc2V0U3RhcnRZZWFyKDEwMCk7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHN0ejQgPSBuZXcgU2ltcGxlVGltZVpvbmUoMzI0MDAwMDAsICJBc2lhL1Rva3lvIik7CisgICAgICAgIHN0ejQuc2V0U3RhcnRZZWFyKDEwMDApOworICAgICAgICBzdHo0LnNldERTVFNhdmluZ3MoMTgwMDAwMCk7CisgICAgICAgIHN0ejQuc2V0U3RhcnRSdWxlKDMsIDQsIDE4MDAwMCk7CisgICAgICAgIHN0ejQuc2V0RW5kUnVsZSg2LCAzLCA0LCAzNjAwMDApOworICAgICAgICBTaW1wbGVUaW1lWm9uZSBzdHo1ID0gbmV3IFNpbXBsZVRpbWVab25lKDMyNDAwMDAwLCAiQXNpYS9Ub2t5byIpOworICAgICAgICBzdHo1LnNldFN0YXJ0UnVsZSgyLCAzLCA0LCAzNjAwMDApOworICAgICAgICBzdHo1LnNldEVuZFJ1bGUoNiwgMywgNCwgMzYwMDAwKTsKKyAgICAgICAgCisgICAgICAgIFNpbXBsZVRpbWVab25lW10gc3R6cyA9IHsgc3R6MCwgc3R6MSwgc3R6Miwgc3R6Mywgc3R6NCwgc3R6NSwgfTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0enMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFNpbXBsZVRpbWVab25lIHN0eiA9IHN0enNbaV07CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBiYW9zID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOworICAgICAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvb3MgPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKGJhb3MpOworICAgICAgICAgICAgICAgIG9vcy53cml0ZU9iamVjdChzdHopOworICAgICAgICAgICAgICAgIG9vcy5jbG9zZSgpOworICAgICAgICAgICAgICAgIGJ5dGVbXSBieXRlcyA9IGJhb3MudG9CeXRlQXJyYXkoKTsKKyAgICAgICAgICAgICAgICBsb2dsbigiaWQ6ICIgKyBzdHouZ2V0SUQoKSArICIgbGVuZ3RoOiAiICsgYnl0ZXMubGVuZ3RoKTsKKworICAgICAgICAgICAgICAgIEJ5dGVBcnJheUlucHV0U3RyZWFtIGJhaXMgPSBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYnl0ZXMpOworICAgICAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9pcyA9IG5ldyBPYmplY3RJbnB1dFN0cmVhbShiYWlzKTsKKworICAgICAgICAgICAgICAgIFNpbXBsZVRpbWVab25lIHN0ekRlc2VyaWFsaXplZCA9IChTaW1wbGVUaW1lWm9uZSlvaXMucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgIG9pcy5jbG9zZSgpOworCisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJ0aW1lIHpvbmVzIiwgc3R6LCBzdHpEZXNlcmlhbGl6ZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBjY2UpIHsKKyAgICAgICAgICAgICAgICBjY2UucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBkZXNlcmlhbGl6ZSBTaW1wbGVUaW1lWm9uZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGlvZSkgeworICAgICAgICAgICAgICAgIGVycmxuKGlvZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gY25mZSkgeworICAgICAgICAgICAgICAgIGVycmxuKGNuZmUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGpiNDE3NQorICAgIC8qIEdlbmVyYXRlZCBieSBvcmcudW5pY29kZS5jbGRyLnRvb2wuQ291bnRJdGVtcyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHRpbWVab25lVGVzdE5hbWVzID0geworICAgICAgICAiQW1lcmljYS9BcmdlbnRpbmEvQnVlbm9zX0FpcmVzIiwgIkFtZXJpY2EvQnVlbm9zX0FpcmVzIiwKKyAgICAgICAgIkFtZXJpY2EvQXJnZW50aW5hL0NhdGFtYXJjYSIsICJBbWVyaWNhL0NhdGFtYXJjYSIsCisgICAgICAgICJBbWVyaWNhL0FyZ2VudGluYS9Db3Jkb2JhIiwgIkFtZXJpY2EvQ29yZG9iYSIsCisgICAgICAgICJBbWVyaWNhL0FyZ2VudGluYS9KdWp1eSIsICJBbWVyaWNhL0p1anV5IiwKKyAgICAgICAgIkFtZXJpY2EvQXJnZW50aW5hL01lbmRvemEiLCAiQW1lcmljYS9NZW5kb3phIiwKKyAgICAgICAgIkFtZXJpY2EvQXRrYSIsICJBbWVyaWNhL0FkYWsiLAorICAgICAgICAiQW1lcmljYS9FbnNlbmFkYSIsICJBbWVyaWNhL1RpanVhbmEiLAorICAgICAgICAiQW1lcmljYS9Gb3J0X1dheW5lIiwgIkFtZXJpY2EvSW5kaWFuYXBvbGlzIiwKKyAgICAgICAgIkFtZXJpY2EvSW5kaWFuYS9JbmRpYW5hcG9saXMiLCAiQW1lcmljYS9JbmRpYW5hcG9saXMiLAorICAgICAgICAiQW1lcmljYS9LZW50dWNreS9Mb3Vpc3ZpbGxlIiwgIkFtZXJpY2EvTG91aXN2aWxsZSIsCisgICAgICAgICJBbWVyaWNhL0tub3hfSU4iLCAiQW1lcmljYS9JbmRpYW5hL0tub3giLAorICAgICAgICAiQW1lcmljYS9Qb3J0b19BY3JlIiwgIkFtZXJpY2EvUmlvX0JyYW5jbyIsCisgICAgICAgICJBbWVyaWNhL1Jvc2FyaW8iLCAiQW1lcmljYS9Db3Jkb2JhIiwKKyAgICAgICAgIkFtZXJpY2EvVmlyZ2luIiwgIkFtZXJpY2EvU3RfVGhvbWFzIiwKKyAgICAgICAgIkFzaWEvQXNoa2hhYmFkIiwgIkFzaWEvQXNoZ2FiYXQiLAorICAgICAgICAiQXNpYS9DaHVuZ2tpbmciLCAiQXNpYS9DaG9uZ3FpbmciLAorICAgICAgICAiQXNpYS9EYWNjYSIsICJBc2lhL0RoYWthIiwKKyAgICAgICAgIkFzaWEvSXN0YW5idWwiLCAiRXVyb3BlL0lzdGFuYnVsIiwKKyAgICAgICAgIkFzaWEvTWFjYW8iLCAiQXNpYS9NYWNhdSIsCisgICAgICAgICJBc2lhL1RlbF9Bdml2IiwgIkFzaWEvSmVydXNhbGVtIiwKKyAgICAgICAgIkFzaWEvVGhpbWJ1IiwgIkFzaWEvVGhpbXBodSIsCisgICAgICAgICJBc2lhL1VqdW5nX1BhbmRhbmciLCAiQXNpYS9NYWthc3NhciIsCisgICAgICAgICJBc2lhL1VsYW5fQmF0b3IiLCAiQXNpYS9VbGFhbmJhYXRhciIsCisgICAgICAgICJBdXN0cmFsaWEvQUNUIiwgIkF1c3RyYWxpYS9TeWRuZXkiLAorICAgICAgICAiQXVzdHJhbGlhL0NhbmJlcnJhIiwgIkF1c3RyYWxpYS9TeWRuZXkiLAorICAgICAgICAiQXVzdHJhbGlhL0xISSIsICJBdXN0cmFsaWEvTG9yZF9Ib3dlIiwKKyAgICAgICAgIkF1c3RyYWxpYS9OU1ciLCAiQXVzdHJhbGlhL1N5ZG5leSIsCisgICAgICAgICJBdXN0cmFsaWEvTm9ydGgiLCAiQXVzdHJhbGlhL0RhcndpbiIsCisgICAgICAgICJBdXN0cmFsaWEvUXVlZW5zbGFuZCIsICJBdXN0cmFsaWEvQnJpc2JhbmUiLAorICAgICAgICAiQXVzdHJhbGlhL1NvdXRoIiwgIkF1c3RyYWxpYS9BZGVsYWlkZSIsCisgICAgICAgICJBdXN0cmFsaWEvVGFzbWFuaWEiLCAiQXVzdHJhbGlhL0hvYmFydCIsCisgICAgICAgICJBdXN0cmFsaWEvVmljdG9yaWEiLCAiQXVzdHJhbGlhL01lbGJvdXJuZSIsCisgICAgICAgICJBdXN0cmFsaWEvV2VzdCIsICJBdXN0cmFsaWEvUGVydGgiLAorICAgICAgICAiQXVzdHJhbGlhL1lhbmNvd2lubmEiLCAiQXVzdHJhbGlhL0Jyb2tlbl9IaWxsIiwKKyAgICAgICAgIkJyYXppbC9BY3JlIiwgIkFtZXJpY2EvUmlvX0JyYW5jbyIsCisgICAgICAgICJCcmF6aWwvRGVOb3JvbmhhIiwgIkFtZXJpY2EvTm9yb25oYSIsCisgICAgICAgICJCcmF6aWwvRWFzdCIsICJBbWVyaWNhL1Nhb19QYXVsbyIsCisgICAgICAgICJCcmF6aWwvV2VzdCIsICJBbWVyaWNhL01hbmF1cyIsCisgICAgICAgICJDU1Q2Q0RUIiwgIkFtZXJpY2EvQ2hpY2FnbyIsCisgICAgICAgICJDYW5hZGEvQXRsYW50aWMiLCAiQW1lcmljYS9IYWxpZmF4IiwKKyAgICAgICAgIkNhbmFkYS9DZW50cmFsIiwgIkFtZXJpY2EvV2lubmlwZWciLAorICAgICAgICAiQ2FuYWRhL0Vhc3QtU2Fza2F0Y2hld2FuIiwgIkFtZXJpY2EvUmVnaW5hIiwKKyAgICAgICAgIkNhbmFkYS9FYXN0ZXJuIiwgIkFtZXJpY2EvVG9yb250byIsCisgICAgICAgICJDYW5hZGEvTW91bnRhaW4iLCAiQW1lcmljYS9FZG1vbnRvbiIsCisgICAgICAgICJDYW5hZGEvTmV3Zm91bmRsYW5kIiwgIkFtZXJpY2EvU3RfSm9obnMiLAorICAgICAgICAiQ2FuYWRhL1BhY2lmaWMiLCAiQW1lcmljYS9WYW5jb3V2ZXIiLAorICAgICAgICAiQ2FuYWRhL1Nhc2thdGNoZXdhbiIsICJBbWVyaWNhL1JlZ2luYSIsCisgICAgICAgICJDYW5hZGEvWXVrb24iLCAiQW1lcmljYS9XaGl0ZWhvcnNlIiwKKyAgICAgICAgIkNoaWxlL0NvbnRpbmVudGFsIiwgIkFtZXJpY2EvU2FudGlhZ28iLAorICAgICAgICAiQ2hpbGUvRWFzdGVySXNsYW5kIiwgIlBhY2lmaWMvRWFzdGVyIiwKKyAgICAgICAgIkN1YmEiLCAiQW1lcmljYS9IYXZhbmEiLAorICAgICAgICAiRVNUIiwgIkFtZXJpY2EvSW5kaWFuYXBvbGlzIiwKKyAgICAgICAgIkVTVDVFRFQiLCAiQW1lcmljYS9OZXdfWW9yayIsCisgICAgICAgICJFZ3lwdCIsICJBZnJpY2EvQ2Fpcm8iLAorICAgICAgICAiRWlyZSIsICJFdXJvcGUvRHVibGluIiwKKyAgICAgICAgIkV0Yy9HTVQrMCIsICJFdGMvR01UIiwKKyAgICAgICAgIkV0Yy9HTVQtMCIsICJFdGMvR01UIiwKKyAgICAgICAgIkV0Yy9HTVQwIiwgIkV0Yy9HTVQiLAorICAgICAgICAiRXRjL0dyZWVud2ljaCIsICJFdGMvR01UIiwKKyAgICAgICAgIkV0Yy9VQ1QiLCAiRXRjL0dNVCIsCisgICAgICAgICJFdGMvVVRDIiwgIkV0Yy9HTVQiLAorICAgICAgICAiRXRjL1VuaXZlcnNhbCIsICJFdGMvR01UIiwKKyAgICAgICAgIkV0Yy9adWx1IiwgIkV0Yy9HTVQiLAorICAgICAgICAiRXVyb3BlL05pY29zaWEiLCAiQXNpYS9OaWNvc2lhIiwKKyAgICAgICAgIkV1cm9wZS9UaXJhc3BvbCIsICJFdXJvcGUvQ2hpc2luYXUiLAorICAgICAgICAiR0IiLCAiRXVyb3BlL0xvbmRvbiIsCisgICAgICAgICJHQi1FaXJlIiwgIkV1cm9wZS9Mb25kb24iLAorICAgICAgICAiR01UIiwgIkV0Yy9HTVQiLAorICAgICAgICAiR01UKzAiLCAiRXRjL0dNVCIsCisgICAgICAgICJHTVQtMCIsICJFdGMvR01UIiwKKyAgICAgICAgIkdNVDAiLCAiRXRjL0dNVCIsCisgICAgICAgICJHcmVlbndpY2giLCAiRXRjL0dNVCIsCisgICAgICAgICJIU1QiLCAiUGFjaWZpYy9Ib25vbHVsdSIsCisgICAgICAgICJIb25na29uZyIsICJBc2lhL0hvbmdfS29uZyIsCisgICAgICAgICJJY2VsYW5kIiwgIkF0bGFudGljL1JleWtqYXZpayIsCisgICAgICAgICJJcmFuIiwgIkFzaWEvVGVocmFuIiwKKyAgICAgICAgIklzcmFlbCIsICJBc2lhL0plcnVzYWxlbSIsCisgICAgICAgICJKYW1haWNhIiwgIkFtZXJpY2EvSmFtYWljYSIsCisgICAgICAgICJKYXBhbiIsICJBc2lhL1Rva3lvIiwKKyAgICAgICAgIkt3YWphbGVpbiIsICJQYWNpZmljL0t3YWphbGVpbiIsCisgICAgICAgICJMaWJ5YSIsICJBZnJpY2EvVHJpcG9saSIsCisgICAgICAgICJNU1QiLCAiQW1lcmljYS9QaG9lbml4IiwKKyAgICAgICAgIk1TVDdNRFQiLCAiQW1lcmljYS9EZW52ZXIiLAorICAgICAgICAiTWV4aWNvL0JhamFOb3J0ZSIsICJBbWVyaWNhL1RpanVhbmEiLAorICAgICAgICAiTWV4aWNvL0JhamFTdXIiLCAiQW1lcmljYS9NYXphdGxhbiIsCisgICAgICAgICJNZXhpY28vR2VuZXJhbCIsICJBbWVyaWNhL01leGljb19DaXR5IiwKKyAgICAgICAgIk5aIiwgIlBhY2lmaWMvQXVja2xhbmQiLAorICAgICAgICAiTlotQ0hBVCIsICJQYWNpZmljL0NoYXRoYW0iLAorICAgICAgICAiTmF2YWpvIiwgIkFtZXJpY2EvU2hpcHJvY2siLCAvKiBmaXhlZCBmcm9tIE1hcmsncyBvcmlnaW5hbCAqLworICAgICAgICAiUFJDIiwgIkFzaWEvU2hhbmdoYWkiLAorICAgICAgICAiUFNUOFBEVCIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwKKyAgICAgICAgIlBhY2lmaWMvU2Ftb2EiLCAiUGFjaWZpYy9QYWdvX1BhZ28iLAorICAgICAgICAiUG9sYW5kIiwgIkV1cm9wZS9XYXJzYXciLAorICAgICAgICAiUG9ydHVnYWwiLCAiRXVyb3BlL0xpc2JvbiIsCisgICAgICAgICJST0MiLCAiQXNpYS9UYWlwZWkiLAorICAgICAgICAiUk9LIiwgIkFzaWEvU2VvdWwiLAorICAgICAgICAiU2luZ2Fwb3JlIiwgIkFzaWEvU2luZ2Fwb3JlIiwKKyAgICAgICAgIlN5c3RlbVYvQVNUNCIsICJBbWVyaWNhL1B1ZXJ0b19SaWNvIiwKKyAgICAgICAgIlN5c3RlbVYvQVNUNEFEVCIsICJBbWVyaWNhL0hhbGlmYXgiLAorICAgICAgICAiU3lzdGVtVi9DU1Q2IiwgIkFtZXJpY2EvUmVnaW5hIiwKKyAgICAgICAgIlN5c3RlbVYvQ1NUNkNEVCIsICJBbWVyaWNhL0NoaWNhZ28iLAorICAgICAgICAiU3lzdGVtVi9FU1Q1IiwgIkFtZXJpY2EvSW5kaWFuYXBvbGlzIiwKKyAgICAgICAgIlN5c3RlbVYvRVNUNUVEVCIsICJBbWVyaWNhL05ld19Zb3JrIiwKKyAgICAgICAgIlN5c3RlbVYvSFNUMTAiLCAiUGFjaWZpYy9Ib25vbHVsdSIsCisgICAgICAgICJTeXN0ZW1WL01TVDciLCAiQW1lcmljYS9QaG9lbml4IiwKKyAgICAgICAgIlN5c3RlbVYvTVNUN01EVCIsICJBbWVyaWNhL0RlbnZlciIsCisgICAgICAgICJTeXN0ZW1WL1BTVDgiLCAiUGFjaWZpYy9QaXRjYWlybiIsCisgICAgICAgICJTeXN0ZW1WL1BTVDhQRFQiLCAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsCisgICAgICAgICJTeXN0ZW1WL1lTVDkiLCAiUGFjaWZpYy9HYW1iaWVyIiwKKyAgICAgICAgIlN5c3RlbVYvWVNUOVlEVCIsICJBbWVyaWNhL0FuY2hvcmFnZSIsCisgICAgICAgICJUdXJrZXkiLCAiRXVyb3BlL0lzdGFuYnVsIiwKKyAgICAgICAgIlVDVCIsICJFdGMvR01UIiwKKyAgICAgICAgIlVTL0FsYXNrYSIsICJBbWVyaWNhL0FuY2hvcmFnZSIsCisgICAgICAgICJVUy9BbGV1dGlhbiIsICJBbWVyaWNhL0FkYWsiLAorICAgICAgICAiVVMvQXJpem9uYSIsICJBbWVyaWNhL1Bob2VuaXgiLAorICAgICAgICAiVVMvQ2VudHJhbCIsICJBbWVyaWNhL0NoaWNhZ28iLAorICAgICAgICAiVVMvRWFzdC1JbmRpYW5hIiwgIkFtZXJpY2EvSW5kaWFuYXBvbGlzIiwKKyAgICAgICAgIlVTL0Vhc3Rlcm4iLCAiQW1lcmljYS9OZXdfWW9yayIsCisgICAgICAgICJVUy9IYXdhaWkiLCAiUGFjaWZpYy9Ib25vbHVsdSIsCisgICAgICAgICJVUy9JbmRpYW5hLVN0YXJrZSIsICJBbWVyaWNhL0luZGlhbmEvS25veCIsCisgICAgICAgICJVUy9NaWNoaWdhbiIsICJBbWVyaWNhL0RldHJvaXQiLAorICAgICAgICAiVVMvTW91bnRhaW4iLCAiQW1lcmljYS9EZW52ZXIiLAorICAgICAgICAiVVMvUGFjaWZpYyIsICJBbWVyaWNhL0xvc19BbmdlbGVzIiwKKyAgICAgICAgIlVTL1BhY2lmaWMtTmV3IiwgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLAorICAgICAgICAiVVMvU2Ftb2EiLCAiUGFjaWZpYy9QYWdvX1BhZ28iLAorICAgICAgICAiVVRDIiwgIkV0Yy9HTVQiLAorICAgICAgICAiVW5pdmVyc2FsIiwgIkV0Yy9HTVQiLAorICAgICAgICAiVy1TVSIsICJFdXJvcGUvTW9zY293IiwKKyAgICAgICAgIlp1bHUiLCAiRXRjL0dNVCIsCisgICAgfTsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RPZGRUaW1lWm9uZU5hbWVzKCkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRpbWVab25lVGVzdE5hbWVzLmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICBTdHJpbmcgZnVua3lOYW1lID0gdGltZVpvbmVUZXN0TmFtZXNbaV07CisgICAgICAgICAgICBTdHJpbmcgY29ycmVjdE5hbWUgPSB0aW1lWm9uZVRlc3ROYW1lc1tpKzFdOworCisgICAgICAgICAgICBUaW1lWm9uZSBmdHogPSBUaW1lWm9uZS5nZXRUaW1lWm9uZShmdW5reU5hbWUpOworICAgICAgICAgICAgVGltZVpvbmUgY3R6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUoY29ycmVjdE5hbWUpOworCisgICAgICAgICAgICBTdHJpbmcgZmRuID0gZnR6LmdldERpc3BsYXlOYW1lKCk7CisgICAgICAgICAgICBsb25nIGZybyA9IGZ0ei5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgICAgIGxvbmcgZmRzID0gZnR6LmdldERTVFNhdmluZ3MoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gZmR5ID0gZnR6LnVzZURheWxpZ2h0VGltZSgpOworCisgICAgICAgICAgICBTdHJpbmcgY2RuID0gY3R6LmdldERpc3BsYXlOYW1lKCk7CisgICAgICAgICAgICBsb25nIGNybyA9IGN0ei5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgICAgIGxvbmcgY2RzID0gY3R6LmdldERTVFNhdmluZ3MoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gY2R5ID0gY3R6LnVzZURheWxpZ2h0VGltZSgpOworCisgICAgICAgICAgICBpZiAoIWZkbi5lcXVhbHMoY2RuKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJkaXNwbGF5IG5hbWUgKCIgKyBmdW5reU5hbWUgKyAiLCAiICsgY29ycmVjdE5hbWUgKyAiKSBleHBlY3RlZDogIiArIGNkbiArICIgYnV0IGdvdDogIiArIGZkbik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGZybyAhPSBjcm8pIHsKKyAgICAgICAgICAgICAgICBsb2dsbigib2Zmc2V0ICgiICsgZnVua3lOYW1lICsgIiwgIiArIGNvcnJlY3ROYW1lICsgIikgZXhwZWN0ZWQ6ICIgKyBjcm8gKyAiIGJ1dCBnb3Q6ICIgKyBmcm8pOworICAgICAgICAgICAgfSBlbHNlIGlmIChmZHMgIT0gY2RzKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oImRheWxpZ2h0ICgiICsgZnVua3lOYW1lICsgIiwgIiArIGNvcnJlY3ROYW1lICsgIikgZXhwZWN0ZWQ6ICIgKyBjZHMgKyAiIGJ1dCBnb3Q6ICIgKyBmZHMpOworICAgICAgICAgICAgfSBlbHNlIGlmIChmZHkgIT0gY2R5KSB7CisgICAgICAgICAgICAgICAgbG9nbG4oInVzZXMgZGF5bGlnaHQgKCIgKyBmdW5reU5hbWUgKyAiLCAiICsgY29ycmVjdE5hbWUgKyAiKSBleHBlY3RlZDogIiArIGNkeSArICIgYnV0IGdvdDogIiArIGZkeSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIG5vIGVycm9yLCBhc3N1bWUgd2UncmUgcmVmZXJlbmNpbmcgdGhlIHNhbWUgaW50ZXJuYWwgamF2YSBvYmplY3QKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKXsKKyAgICAgICAgY2xhc3MgU3R1YlRpbWVab25lIGV4dGVuZHMgVGltZVpvbmV7CisgICAgICAgICAgICBwdWJsaWMgaW50IGdldE9mZnNldChpbnQgZXJhLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5LCBpbnQgZGF5T2ZXZWVrLCBpbnQgbWlsbGlzZWNvbmRzKSB7cmV0dXJuIDA7fQorICAgICAgICAgICAgcHVibGljIHZvaWQgc2V0UmF3T2Zmc2V0KGludCBvZmZzZXRNaWxsaXMpIHt9CisgICAgICAgICAgICBwdWJsaWMgaW50IGdldFJhd09mZnNldCgpIHtyZXR1cm4gMDt9CisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiB1c2VEYXlsaWdodFRpbWUoKSB7cmV0dXJuIGZhbHNlO30KKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGluRGF5bGlnaHRUaW1lKERhdGUgZGF0ZSkge3JldHVybiBmYWxzZTt9CisgICAgICAgIH0gCisgICAgICAgIFN0dWJUaW1lWm9uZSBzdHViID0gbmV3IFN0dWJUaW1lWm9uZSgpOworICAgICAgICBTdHViVGltZVpvbmUgc3R1YjIgPSAoU3R1YlRpbWVab25lKSBzdHViLmNsb25lKCk7CisgICAgICAgIGlmIChzdHViLmdldERTVFNhdmluZ3MoKSAhPSAwKXsKKyAgICAgICAgICAgIGVycmxuKCJUaW1lWm9uZS5nZXREU1RTYXZpbmdzKCkgc2hvdWxkIHJldHVybiAwIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFzdHViLmhhc1NhbWVSdWxlcyhzdHViMikpeworICAgICAgICAgICAgZXJybG4oIlRpbWVab25lLmNsb25lKCkgb2JqZWN0IHNob3VsZCBoYXNTYW1lUnVsZXMiKTsKKyAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdE1hcmsoKXsKKyAgICAgICAgU3RyaW5nIHR6aWQgPSAiQW1lcmljYS9BcmdlbnRpbmEvQ29tb2RSaXZhZGF2aWEiOworICAgICAgICBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKHR6aWQpOworICAgICAgICBpbnQgb2Zmc2V0ID0gdHouZ2V0T2Zmc2V0KG5ldyBEYXRlKCkuZ2V0VGltZSgpKTsKKyAgICAgICAgbG9nbG4odHppZCArICI6XHQiICsgb2Zmc2V0KTsKKyAgICAgICAgTGlzdCBsaXN0ID0gQXJyYXlzLmFzTGlzdChUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoKSk7CisgICAgICAgIGlmKCFsaXN0LmNvbnRhaW5zKHR6aWQpKXsKKyAgICAgICAgICAgIGVycmxuKCJDb3VsZCBjcmVhdGUgdGhlIHRpbWUgem9uZSBidXQgaXQgaXMgbm90IGluIGdldEF2YWlsYWJsZUlEcyIpOworICAgICAgICB9CisKKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvQ29tcG91bmRUcmFuc2xpdGVyYXRvclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Db21wb3VuZFRyYW5zbGl0ZXJhdG9yVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRlNDNhZWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvQ29tcG91bmRUcmFuc2xpdGVyYXRvclRlc3QuamF2YQpAQCAtMCwwICsxLDI4MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisKKworLyoqCisgKiBAdGVzdAorICogQHN1bW1hcnkgR2VuZXJhbCB0ZXN0IG9mIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IKKyAqLworcHVibGljIGNsYXNzIENvbXBvdW5kVHJhbnNsaXRlcmF0b3JUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yVGVzdCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29uc3RydWN0aW9uKCl7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBjb25zdHJ1Y3Rpb24gb2YgdGhlIGNvbXBvdW5kIFRyYW5zbGl0ZXJhdG9yIik7CisgICAgICAgIFN0cmluZyBuYW1lc1tdPXsiR3JlZWstTGF0aW4iLCAiTGF0aW4tRGV2YW5hZ2FyaSIsICJEZXZhbmFnYXJpLUxhdGluIiwgIkxhdGluLUdyZWVrIn07CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQxPW51bGw7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyPW51bGw7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQzPW51bGw7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ0PW51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQxPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5hbWVzWzBdKTsKKyAgICAgICAgICAgIHQyPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5hbWVzWzFdKTsKKyAgICAgICAgICAgIHQzPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5hbWVzWzJdKTsKKyAgICAgICAgICAgIHQ0PVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5hbWVzWzNdKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRyYW5zbGl0ZXJhdG9yIGNvbnN0cnVjdGlvbiBmYWlsZWQiICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHRocm93IGV4OworICAgICAgICB9CisgIAorICAgICAgICBUcmFuc2xpdGVyYXRvcltdIHRyYW5zYXJyYXkxPXt0MX07CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yW10gdHJhbnNhcnJheTI9e3QxLCB0NH07CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yW10gdHJhbnNhcnJheTM9e3Q0LCB0MSwgdDJ9OworICAgICAgICBUcmFuc2xpdGVyYXRvcltdIHRyYW5zYXJyYXk0PXt0MSwgdDIsIHQzLCB0NH07CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JbXVtdIHRyYW5zYXJyYXk9e3RyYW5zYXJyYXkxLCB0cmFuc2FycmF5MiwgdHJhbnNhcnJheTMsIHRyYW5zYXJyYXk0fTsgCisgICAgICAgIGZpbmFsIFN0cmluZyBJRHNbXT17CisgICAgICAgICAgICBuYW1lc1swXSwgCisgICAgICAgICAgICBuYW1lc1swXSsiOyIrbmFtZXNbM10sIAorICAgICAgICAgICAgbmFtZXNbM10rIjsiK25hbWVzWzFdKyI7IituYW1lc1syXSwgCisgICAgICAgICAgICBuYW1lc1swXSsiOyIrbmFtZXNbMV0rIjsiK25hbWVzWzJdKyI7IituYW1lc1szXSAKKyAgICAgICAgfTsKKworICAgCisgICAgICAgIGZvcihpbnQgaT0wOyBpPDQ7IGkrKyl7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgY3BkdHJhbnM9VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSURzW2ldKTsKKyAgICAgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgxKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnN0cnVjdGlvbiB1c2luZyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCkgZmFpbGVkIGZvciAiICsgSURzW2ldKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBleDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBjcGR0cmFucz1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRHNbaV0sIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgICAgIGNwZHRyYW5zID0gbnVsbDsKKyAgICAgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgyKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNvbnN0cnVjdGlvbiB1c2luZyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgaW50IGRpcmVjdGlvbj1GT1JXQVJEKSBmYWlsZWQgZm9yICIgKyBJRHNbaV0pOworICAgICAgICAgICAgICAgIHRocm93IGV4MjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGNwZHRyYW5zPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEc1tpXSwgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgICAgICAgICAgY3BkdHJhbnMgPSBudWxsOworICAgICAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleDMpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY29uc3RydWN0aW9uIHVzaW5nIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBpbnQgZGlyZWN0aW9uPVJFVkVSU0UpIGZhaWxlZCBmb3IgIiArIElEc1tpXSk7CisgICAgICAgICAgICAgICAgdGhyb3cgZXgzOworICAgICAgICAgICAgfQorCisvLyAgICAgICAgICAgIHRyeXsKKy8vICAgICAgICAgICAgICAgIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IgY3BkdHJhbnM9bmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoSURzW2ldLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJELCBudWxsKTsKKy8vICAgICAgICAgICAgICAgIGNwZHRyYW5zID0gbnVsbDsKKy8vICAgICAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleDQpIHsKKy8vICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3Rpb24gdXNpbmcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIGludCBkaXJlY3Rpb249Rk9SV0FSRCwiICsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIlVuaWNvZGVGaWx0ZXIgYWRvcHRlZEZpbHRlcj0wKSBmYWlsZWQgZm9yICIgKyBJRHNbaV0pOworLy8gICAgICAgICAgICAgICAgdGhyb3cgZXg0OworLy8gICAgICAgICAgICB9CisvLyAgCisvLyAgICAgICAKKy8vICAgICAgICAgICAgdHJ5eworLy8gICAgICAgICAgICAgICAgQ29tcG91bmRUcmFuc2xpdGVyYXRvciBjcGR0cmFuczI9bmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IodHJhbnNhcnJheVtpXSwgbnVsbCk7CisvLyAgICAgICAgICAgICAgICBjcGR0cmFuczIgPSBudWxsOworLy8gICAgICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4NSkgeworLy8gICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IENvbnN0cnVjdGlvbiB1c2luZyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0ZXJhdG9yc1tdLCIgKworLy8gICAgICAgICAgICAgICAgICAgICAgICJVbmljb2RlRmlsdGVyIGFkb3B0ZWRGaWx0ZXIgPSAwKSAgZmFpbGVkIik7CisvLyAgICAgICAgICAgICAgICB0aHJvdyBleDU7CisvLyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgCisgICAgICAgIH0KKyAgIAorICAgIH0KKyAKKyAgICBwdWJsaWMgdm9pZCBUZXN0R2V0VHJhbnNsaXRlcmF0b3IoKXsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgdGhlIGdldFRyYW5zbGl0ZXJhdG9yKCkgQVBJIG9mIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IiKTsKKyAgICAgICAgU3RyaW5nIElEPSJMYXRpbi1HcmVlaztHcmVlay1MYXRpbjtMYXRpbi1EZXZhbmFnYXJpO0RldmFuYWdhcmktTGF0aW47TGF0aW4tQ3lyaWxsaWM7Q3lyaWxsaWMtTGF0aW47QW55LUhleDtIZXgtQW55IjsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgY3QxPW51bGw7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIC8vY3QxPW5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKElEKTsKKyAgICAgICAgICAgIGN0MSA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpYWUpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIGNvbnN0cnVjdGlvbiBmYWlsZWQgZm9yIElEPSIgKyBJRCk7CisgICAgICAgICAgICB0aHJvdyBpYWU7CisgICAgICAgIH0KKyAgICAgICAgLy9pbnQgY291bnQ9Y3QxLmdldENvdW50KCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGVsZW1zW10gPSBjdDEuZ2V0RWxlbWVudHMoKTsKKyAgICAgICAgaW50IGNvdW50ID0gZWxlbXMubGVuZ3RoOworICAgICAgICBTdHJpbmcgYXJyYXlbXT1zcGxpdChJRCwgJzsnKTsKKyAgICAgICAgaWYgKGNvdW50ICE9IGFycmF5Lmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yOiBnZXRDb3VudCgpIGZhaWxlZC4gRXhwZWN0ZWQ6IiArIGFycmF5Lmxlbmd0aCArICIgZ290OiIgKyBjb3VudCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGludCBpPTA7IGkgPCBjb3VudDsgaSsrKXsKKyAgICAgICAgICAgIC8vU3RyaW5nIGNoaWxkPSBjdDEuZ2V0VHJhbnNsaXRlcmF0b3IoaSkuZ2V0SUQoKTsKKyAgICAgICAgICAgIFN0cmluZyBjaGlsZCA9IGVsZW1zW2ldLmdldElEKCk7CisgICAgICAgICAgICBpZighY2hpbGQuZXF1YWxzKGFycmF5W2ldKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIGdldFRyYW5zbGl0ZXJhdG9yKCkgZmFpbGVkOiBFeHBlY3RlZC0+IiArIGFycmF5W2ldICsgIiBHb3QtPiIgKyBjaGlsZCk7CisgICAgICAgICAgICB9ZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiBnZXRUcmFuc2xpdGVyYXRvcigpIHBhc3NlZDogRXhwZWN0ZWQtPiIgKyBhcnJheVtpXSArICIgR290LT4iICsgY2hpbGQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgCisgICAgfQorIAorICAgICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RUcmFuc2xpdGVyYXRlKCl7CisgICAgICAgIGxvZ2xuKCJUZXN0aW5nIHRoZSBoYW5kbGVUcmFuc2xpdGVyYXRlKCkgQVBJIG9mIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgY3QxPW51bGw7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGN0MT1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleDtIZXgtQW55Iik7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWFlKXsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3Rpb24gdXNpbmcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQpIGZhaWxlZCBmb3IgIiArICJBbnktSGV4O0hleC1BbnkiKTsKKyAgICAgICAgICAgIHRocm93IGlhZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBTdHJpbmcgcz0iYWJjYWJjIjsKKyAgICAgICAgZXhwZWN0KGN0MSwgcywgcyk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKCk7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHJzb3VyY2UyPW5ldyBSZXBsYWNlYWJsZVN0cmluZyhzKTsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkUmVzdWx0PXM7CisgICAgICAgIGN0MS50cmFuc2xpdGVyYXRlKHJzb3VyY2UyLCBpbmRleCk7CisgICAgICAgIGN0MS5maW5pc2hUcmFuc2xpdGVyYXRpb24ocnNvdXJjZTIsIGluZGV4KTsKKyAgICAgICAgU3RyaW5nIHJlc3VsdD1yc291cmNlMi50b1N0cmluZygpOworICAgICAgICBleHBlY3RBdXgoY3QxLmdldElEKCkgKyAiOlJlcGxhY2VhYmxlU3RyaW5nLCBpbmRleCgwLDAsMCwwKSIsIHMgKyAiLT4iICsgcnNvdXJjZTIsIHJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRSZXN1bHQpLCBleHBlY3RlZFJlc3VsdCk7CisgICAgIAorICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBpbmRleDIgPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oMSwzLDIsMyk7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHJzb3VyY2UzPW5ldyBSZXBsYWNlYWJsZVN0cmluZyhzKTsKKyAgICAgICAgY3QxLnRyYW5zbGl0ZXJhdGUocnNvdXJjZTMsIGluZGV4Mik7IAorICAgICAgICBjdDEuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHJzb3VyY2UzLCBpbmRleDIpOworICAgICAgICByZXN1bHQ9cnNvdXJjZTMudG9TdHJpbmcoKTsKKyAgICAgICAgZXhwZWN0QXV4KGN0MS5nZXRJRCgpICsgIjpTdHJpbmcsIGluZGV4MigxLDIsMiwzKSIsIHMgKyAiLT4iICsgcnNvdXJjZTMsIHJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRSZXN1bHQpLCBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAKKyAgICAgICAgU3RyaW5nIERhdGFbXT17CisgICAgICAgICAgICAgLy9JRCwgaW5wdXQgc3RyaW5nLCB0cmFuc2xpdGVyYXRlZCBzdHJpbmcKKyAgICAgICAgICAgICAiQW55LUhleDtIZXgtQW55O0FueS1IZXgiLCAgICAgImhlbGxvIiwgICJcXHUwMDY4XFx1MDA2NVxcdTAwNkNcXHUwMDZDXFx1MDA2RiIsIAorICAgICAgICAgICAgICJBbnktSGV4O0hleC1BbnkiLCAgICAgICAgICAgICAgICAgImhlbGxvISBIb3cgYXJlIHlvdT8iLCAgImhlbGxvISBIb3cgYXJlIHlvdT8iLAorICAgICAgICAgICAgICJEZXZhbmFnYXJpLUxhdGluO0xhdGluLURldmFuYWdhcmkiLCAgICAgICAiXHUwOTJEXHUwOTQ4J1x1MDkzMCdcdTA5MzUiLCAgIlx1MDkyRFx1MDk0OFx1MDkzMFx1MDkzNSIsIC8vIHF1b3RlcyBsb3N0CisgICAgICAgICAgICAgIkxhdGluLUN5cmlsbGljO0N5cmlsbGljLUxhdGluIiwgICAgICAgICAgICJhJ2InaydkJ2UnZidnJ2gnaSdqJ1NoY2gnc2hjaCd6aCdoIiwgImEnYidrJ2QnZSdmJ2cnaCdpJ2onU2hjaCdzaGNoJ3poJ2giLAorICAgICAgICAgICAgICJMYXRpbi1HcmVlaztHcmVlay1MYXRpbiIsICAgICAgICAgICAgICAgICAiQUJHYWJnQUtMTU4iLCAiQUJHYWJnQUtMTU4iLAorICAgICAgICAgICAgIC8vIkxhdGluLUFyYWJpYztBcmFiaWMtTGF0aW4iLCAgICAgICAgICAgICAgICJBZCdyJ2EnYidpJ2snZGgnZGQnZ2giLCAiQWRyYWJpa2RoZGRnaCIsCisgICAgICAgICAgICAgIkhpcmFnYW5hLUthdGFrYW5hIiwgICAgICAgICAgICAgICAgICAgICAgICJcdTMwNDFcdTMwOGZcdTMwOTlcdTMwNmVcdTMwNGJcdTMwOTJcdTMwOTkiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MzBBMVx1MzBmN1x1MzBjZVx1MzBhYlx1MzBmYSIsICAKKyAgICAgICAgICAgICAiSGlyYWdhbmEtS2F0YWthbmE7S2F0YWthbmEtSGlyYWdhbmEiLCAgICAgIlx1MzA0MVx1MzA4Zlx1MzA5OVx1MzA2ZVx1MzA0Ylx1MzA1MSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUzMDQxXHUzMDhmXHUzMDk5XHUzMDZlXHUzMDRiXHUzMDUxIiwKKyAgICAgICAgICAgICAiS2F0YWthbmEtSGlyYWdhbmE7SGlyYWdhbmEtS2F0YWthbmEiLCAgICAgIlx1MzBBMVx1MzBmN1x1MzBjZVx1MzBmNVx1MzBmNiIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUzMEExXHUzMGY3XHUzMGNlXHUzMGFiXHUzMGIxIiwgIAorICAgICAgICAgICAgICJMYXRpbi1LYXRha2FuYTtLYXRha2FuYS1MYXRpbiIsICAgICAgICAgICAgICAgICAgICJ2YXZpdnV2ZXZvaHV6aXp1em9uaW51bmFzZXN1emV6dSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmF2aXZ1dmV2b2h1eml6dXpvbmludW5hc2VzdXplenUiLCAgCisgICAgICAgIH07CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGN0Mj1udWxsOworICAgICAgICBmb3IoaW50IGk9MDsgaTxEYXRhLmxlbmd0aDsgaSs9Myl7CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgY3QyPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKERhdGFbaSswXSk7CisgICAgICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlhZTIpeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIGNvbnN0cnVjdGlvbiBmYWlsZWQgZm9yICIgKyBEYXRhW2krMF0pOworICAgICAgICAgICAgICAgIHRocm93IGlhZTI7CisgICAgICAgICAgICB9CisgICAgICAgIGV4cGVjdChjdDIsIERhdGFbaSsxXSwgRGF0YVtpKzJdKTsKKyAgICAgICAgfQorICAgCisgICAgfQorIAorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gU3VwcG9ydCBtZXRob2RzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAgLyoqCisgICAgICogU3BsaXRzIGEgc3RyaW5nLAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gc3BsaXQoU3RyaW5nIHMsIGNoYXIgZGl2aWRlcikgeworICAgICAgCisgICAgLy8gc2VlIGhvdyBtYW55IHRoZXJlIGFyZQorICAgICAgICBpbnQgY291bnQgPSAxOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgaWYgKHMuY2hhckF0KGkpID09IGRpdmlkZXIpICsrY291bnQ7CisgICAgfQorICAgICAgICAKKyAgICAvLyBtYWtlIGFuIGFycmF5IHdpdGggdGhlbQorICAgIFN0cmluZ1tdIHJlc3VsdCA9IG5ldyBTdHJpbmdbY291bnRdOworICAgIGludCBsYXN0ID0gMDsKKyAgICBpbnQgY3VycmVudCA9IDA7CisgICAgaW50IGk7CisgICAgZm9yIChpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICBpZiAocy5jaGFyQXQoaSkgPT0gZGl2aWRlcikgeworICAgICAgICAgICAgcmVzdWx0W2N1cnJlbnQrK10gPSBzLnN1YnN0cmluZyhsYXN0LGkpOworICAgICAgICAgICAgbGFzdCA9IGkrMTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXN1bHRbY3VycmVudCsrXSA9IHMuc3Vic3RyaW5nKGxhc3QsaSk7CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yIHQsIFN0cmluZyBzb3VyY2UsIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gdC50cmFuc2xpdGVyYXRlKHNvdXJjZSk7CisgICAgICAgIGV4cGVjdEF1eCh0LmdldElEKCkgKyAiOlN0cmluZyIsIHNvdXJjZSwgcmVzdWx0LCBleHBlY3RlZFJlc3VsdCk7CisKKyAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgcnNvdXJjZSA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzb3VyY2UpOworICAgICAgICB0LnRyYW5zbGl0ZXJhdGUocnNvdXJjZSk7CisgICAgICAgIHJlc3VsdCA9IHJzb3VyY2UudG9TdHJpbmcoKTsKKyAgICAgICAgZXhwZWN0QXV4KHQuZ2V0SUQoKSArICI6UmVwbGFjZWFibGUiLCBzb3VyY2UsIHJlc3VsdCwgZXhwZWN0ZWRSZXN1bHQpOworCisgICAgICAgIC8vIFRlc3Qga2V5Ym9hcmQgKGluY3JlbWVudGFsKSB0cmFuc2xpdGVyYXRpb24gLS0gdGhpcyByZXN1bHQKKyAgICAgICAgLy8gbXVzdCBiZSB0aGUgc2FtZSBhZnRlciB3ZSBmaW5hbGl6ZSAoc2VlIGJlbG93KS4KKyAgICAgICAgcnNvdXJjZS5yZXBsYWNlKDAsIHJzb3VyY2UubGVuZ3RoKCksICIiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gaW5kZXggPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGxvZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8c291cmNlLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHsKKyAgICAgICAgICAgICAgICBsb2cuYXBwZW5kKCIgKyAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZy5hcHBlbmQoc291cmNlLmNoYXJBdChpKSkuYXBwZW5kKCIgLT4gIik7CisgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUocnNvdXJjZSwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLnZhbHVlT2Yoc291cmNlLmNoYXJBdChpKSkpOworICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBzdHJpbmcgYnVmZmVyIHdpdGggYSB2ZXJ0aWNhbCBiYXIgJ3wnIHdoZXJlCisgICAgICAgICAgICAvLyB0aGUgY29tbWl0dGVkIGluZGV4IGlzLgorICAgICAgICAgICAgU3RyaW5nIHMgPSByc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBsb2cuYXBwZW5kKHMuc3Vic3RyaW5nKDAsIGluZGV4LnN0YXJ0KSkuCisgICAgICAgICAgICAgICAgYXBwZW5kKCd8JykuCisgICAgICAgICAgICAgICAgYXBwZW5kKHMuc3Vic3RyaW5nKGluZGV4LnN0YXJ0KSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEFzIGEgZmluYWwgc3RlcCBpbiBrZXlib2FyZCB0cmFuc2xpdGVyYXRpb24sIHdlIG11c3QgY2FsbAorICAgICAgICAvLyB0cmFuc2xpdGVyYXRlIHRvIGZpbmlzaCBvZmYgYW55IHBlbmRpbmcgcGFydGlhbCBtYXRjaGVzIHRoYXQKKyAgICAgICAgLy8gd2VyZSB3YWl0aW5nIGZvciBtb3JlIGlucHV0LgorICAgICAgICB0LmZpbmlzaFRyYW5zbGl0ZXJhdGlvbihyc291cmNlLCBpbmRleCk7CisgICAgICAgIHJlc3VsdCA9IHJzb3VyY2UudG9TdHJpbmcoKTsKKyAgICAgICAgbG9nLmFwcGVuZCgiID0+ICIpLmFwcGVuZChyc291cmNlLnRvU3RyaW5nKCkpOworICAgICAgICBleHBlY3RBdXgodC5nZXRJRCgpICsgIjpLZXlib2FyZCIsIGxvZy50b1N0cmluZygpLAorICAgICAgICAgICAgICAgICByZXN1bHQuZXF1YWxzKGV4cGVjdGVkUmVzdWx0KSwKKyAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQpOworCisgICAgfQorICAgIHByaXZhdGUgdm9pZCBleHBlY3RBdXgoU3RyaW5nIHRhZywgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQsIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICBleHBlY3RBdXgodGFnLCBzb3VyY2UgKyAiIC0+ICIgKyByZXN1bHQsCisgICAgICAgICAgICAgICAgIHJlc3VsdC5lcXVhbHMoZXhwZWN0ZWRSZXN1bHQpLAorICAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGV4cGVjdEF1eChTdHJpbmcgdGFnLCBTdHJpbmcgc3VtbWFyeSwgYm9vbGVhbiBwYXNzLCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgaWYgKHBhc3MpIHsKKyAgICAgICAgICAgIGxvZ2xuKCIoIiArIHRhZyArICIpICIgKyBVdGlsaXR5LmVzY2FwZShzdW1tYXJ5KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogKCIgKyB0YWcrICIpICIKKyAgICAgICAgICAgICAgICArIFV0aWxpdHkuZXNjYXBlKHN1bW1hcnkpCisgICAgICAgICAgICAgICAgKyAiLCBleHBlY3RlZCAiICsgVXRpbGl0eS5lc2NhcGUoZXhwZWN0ZWRSZXN1bHQpKTsKKyAgICAgICAgfQorICAgIH0gIAorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvRXJyb3JUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvRXJyb3JUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTQxOTg4YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9FcnJvclRlc3QuamF2YQpAQCAtMCwwICsxLDI0NSBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBFcnJvciBjb25kaXRpb24gdGVzdCBvZiBUcmFuc2xpdGVyYXRvcgorICovCitwdWJsaWMgY2xhc3MgRXJyb3JUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBFcnJvclRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFRyYW5zbGl0ZXJhdG9yRXJyb3JzKCkgeworICAgICAgICBTdHJpbmcgdHJhbnMgPSAiTGF0aW4tR3JlZWsiOworICAgICAgICBTdHJpbmcgYm9ndXNJRCA9ICJMQVRJTkdSRUVLLUdSRUVLTEFUSU4iOworICAgICAgICBTdHJpbmcgbmV3SUQgPSAiQm9ndXMtTGF0aW4iOworICAgICAgICBTdHJpbmcgbmV3SURSdWxlcyA9ICJ6enogPiBaOyBmIDw+IHBoIjsKKyAgICAgICAgU3RyaW5nIGJvZ3VzUnVsZXMgPSAiYSB9IFtiLWcgbS1wICI7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHRlc3RTdHJpbmcgPQorICAgICAgICAgICAgbmV3IFJlcGxhY2VhYmxlU3RyaW5nKCJBIHF1aWNrIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuIik7CisgICAgICAgIFN0cmluZyBpbnNlcnRTdHJpbmcgPSAiY2F0cyBhbmQgZG9ncyI7CisgICAgICAgIGludCBzdG9wcGVkQXQgPSAwLCBsZW47CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcyA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigpOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPQorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UodHJhbnMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY29uc3RydWN0aW9uIG9mIExhdGluLUdyZWVrIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbGVuID0gdGVzdFN0cmluZy5sZW5ndGgoKTsKKyAgICAgICAgc3RvcHBlZEF0ID0gdC50cmFuc2xpdGVyYXRlKHRlc3RTdHJpbmcsIDAsIDEwMCk7CisgICAgICAgIGlmIChzdG9wcGVkQXQgIT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBPdXQgb2YgYm91bmRzIGNoZWNrIGZhaWxlZCAoMSkuIik7CisgICAgICAgIH0gZWxzZSBpZiAodGVzdFN0cmluZy5sZW5ndGgoKSAhPSBsZW4pIHsKKyAgICAgICAgICAgIHRlc3RTdHJpbmcgPQorICAgICAgICAgICAgICAgIG5ldyBSZXBsYWNlYWJsZVN0cmluZygiQSBxdWljayBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRyYW5zbGl0ZXJhdGUgZmFpbHMgYW5kIHRoZSB0YXJnZXQgc3RyaW5nIHdhcyBtb2RpZmllZC4iKTsKKyAgICAgICAgfQorICAgICAgICBzdG9wcGVkQXQgPSB0LnRyYW5zbGl0ZXJhdGUodGVzdFN0cmluZywgMTAwLCB0ZXN0U3RyaW5nLmxlbmd0aCgpIC0gMSk7CisgICAgICAgIGlmIChzdG9wcGVkQXQgIT0gLTEpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBPdXQgb2YgYm91bmRzIGNoZWNrIGZhaWxlZCAoMikuIik7CisgICAgICAgIH0gZWxzZSBpZiAodGVzdFN0cmluZy5sZW5ndGgoKSAhPSBsZW4pIHsKKyAgICAgICAgICAgIHRlc3RTdHJpbmcgPQorICAgICAgICAgICAgICAgIG5ldyBSZXBsYWNlYWJsZVN0cmluZygiQSBxdWljayBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nLiIpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRyYW5zbGl0ZXJhdGUgZmFpbHMgYW5kIHRoZSB0YXJnZXQgc3RyaW5nIHdhcyBtb2RpZmllZC4iKTsKKyAgICAgICAgfQorICAgICAgICBwb3Muc3RhcnQgPSAxMDA7CisgICAgICAgIHBvcy5saW1pdCA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUodGVzdFN0cmluZywgcG9zKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBTdGFydCBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kcywgZXJyb3Igbm90IHJlcG9ydGVkLiIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIlN0YXJ0IG9mZnNldCBpcyBvdXQgb2YgYm91bmRzIGFuZCBkZXRlY3RlZC4iKTsKKyAgICAgICAgfQorICAgICAgICBwb3MubGltaXQgPSAxMDA7CisgICAgICAgIHBvcy5zdGFydCA9IDA7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZSh0ZXN0U3RyaW5nLCBwb3MpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IExpbWl0IG9mZnNldCBpcyBvdXQgb2YgYm91bmRzLCBlcnJvciBub3QgcmVwb3J0ZWQuXG4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJTdGFydCBvZmZzZXQgaXMgb3V0IG9mIGJvdW5kcyBhbmQgZGV0ZWN0ZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgbGVuID0gcG9zLmNvbnRleHRMaW1pdCA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIHBvcy5jb250ZXh0U3RhcnQgPSAwOworICAgICAgICBwb3MubGltaXQgPSBsZW4gLSAxOworICAgICAgICBwb3Muc3RhcnQgPSA1OworICAgICAgICB0cnkgeworICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHRlc3RTdHJpbmcsIHBvcywgaW5zZXJ0U3RyaW5nKTsKKyAgICAgICAgICAgIGlmIChsZW4gPT0gcG9zLmxpbWl0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlc3QgaW5zZXJ0aW9uIHdpdGggc3RyaW5nOiB0aGUgdHJhbnNsaXRlcmF0aW9uIHBvc2l0aW9uIGxpbWl0IGRpZG4ndCBjaGFuZ2UgYXMgZXhwZWN0ZWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiSW5zZXJ0aW9uIHRlc3Qgd2l0aCBzdHJpbmcgZmFpbGVkIGZvciBzb21lIHJlYXNvbi4iKTsKKyAgICAgICAgfQorICAgICAgICBwb3MuY29udGV4dFN0YXJ0ID0gMDsKKyAgICAgICAgcG9zLmNvbnRleHRMaW1pdCA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIHBvcy5saW1pdCA9IHRlc3RTdHJpbmcubGVuZ3RoKCkgLSAxOworICAgICAgICBwb3Muc3RhcnQgPSA1OworICAgICAgICB0cnkgeworICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHRlc3RTdHJpbmcsIHBvcywgMHgwMDYxKTsKKyAgICAgICAgICAgIGlmIChsZW4gPT0gcG9zLmxpbWl0KSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFRlc3QgaW5zZXJ0aW9uIHdpdGggY2hhcmFjdGVyOiB0aGUgdHJhbnNsaXRlcmF0aW9uIHBvc2l0aW9uIGxpbWl0IGRpZG4ndCBjaGFuZ2UgYXMgZXhwZWN0ZWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogSW5zZXJ0aW9uIHRlc3Qgd2l0aCBVVEYtMTYgY29kZSBwb2ludCBmYWlsZWQgZm9yIHNvbWUgcmVhc29uLiIpOworICAgICAgICB9CisgICAgICAgIGxlbiA9IHBvcy5saW1pdCA9IHRlc3RTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIHBvcy5jb250ZXh0U3RhcnQgPSAwOworICAgICAgICBwb3MuY29udGV4dExpbWl0ID0gdGVzdFN0cmluZy5sZW5ndGgoKSAtIDE7CisgICAgICAgIHBvcy5zdGFydCA9IDU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0LnRyYW5zbGl0ZXJhdGUodGVzdFN0cmluZywgcG9zLCBpbnNlcnRTdHJpbmcpOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IE91dCBvZiBib3VuZHMgY2hlY2sgZmFpbGVkICgzKS4iKTsKKyAgICAgICAgICAgIGlmICh0ZXN0U3RyaW5nLmxlbmd0aCgpICE9IGxlbikgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBUaGUgaW5wdXQgc3RyaW5nIHdhcyBtb2RpZmllZCB0aG91Z2ggdGhlIG9mZnNldHMgd2VyZSBvdXQgb2YgYm91bmRzLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIkluc2VydGlvbiB0ZXN0IHdpdGggb3V0IG9mIGJvdW5kcyBpbmRleGVzLiIpOworICAgICAgICB9CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQxID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQxID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoYm9ndXNJRCwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBpZiAodDEgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3Rpb24gb2YgYm9ndXMgSUQgXCJMQVRJTkdSRUVLLUdSRUVLTEFUSU5cIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICB9CisKKyAgICAgICAgLy90cnkgeyAvLyB1bm5lZWRlZCAtIEV4Y2VwdGlvbiBjYW5ub3QgYmUgdGhyb3duCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyID0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygKKyAgICAgICAgICAgICAgICBuZXdJRCwKKyAgICAgICAgICAgICAgICBuZXdJRFJ1bGVzLAorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDMgPSB0Mi5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIG5ld0lEIHRyYW5zbGl0ZXJhdG9yIHdhcyBub3QgcmVnaXN0ZXJlZCBzbyBjcmVhdGVJbnZlcnNlIHNob3VsZCBmYWlsLiIpOworICAgICAgICAgICAgaWYgKHQzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIG5ld0lEIHRyYW5zbGl0ZXJhdG9yIHdhcyBub3QgcmVnaXN0ZXJlZCBzbyBjcmVhdGVJbnZlcnNlIHNob3VsZCBmYWlsLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICB9CisgICAgICAgIC8vfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDQgPQorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygKKyAgICAgICAgICAgICAgICAgICAgbmV3SUQsCisgICAgICAgICAgICAgICAgICAgIGJvZ3VzUnVsZXMsCisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgaWYgKHQ0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIHJ1bGVzIGlzIG1hbGZvcm1lZCBidXQgZXJyb3Igd2FzIG5vdCByZXBvcnRlZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RVbmljb2RlU2V0RXJyb3JzKCkgeworICAgICAgICBTdHJpbmcgYmFkUGF0dGVybiA9ICJbWzpMOl0tWzB4MDMwMC0weDA0MDBdIjsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAvL1N0cmluZyByZXN1bHQ7CisKKyAgICAgICAgaWYgKCFzZXQuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVGhlIGRlZmF1bHQgY3RvciBvZiBVbmljb2RlU2V0IGNyZWF0ZWQgYSBub24tZW1wdHkgb2JqZWN0LiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzZXQuYXBwbHlQYXR0ZXJuKGJhZFBhdHRlcm4pOworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEFwcGxpZWQgYSBiYWQgcGF0dGVybiB0byB0aGUgVW5pY29kZVNldCBvYmplY3Qgb2theS4iKTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IGFwcGx5aW5nIHdpdGggdGhlIGJhZCBwYXR0ZXJuLiIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVbmljb2RlU2V0IHNldDEgPSBuZXcgVW5pY29kZVNldChiYWRQYXR0ZXJuKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDcmVhdGVkIGEgVW5pY29kZVNldCBiYXNlZCBvbiBiYWQgcGF0dGVybnMuIik7CisgICAgICAgICAgICBpZiAoc2V0MSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IENyZWF0ZWQgYSBVbmljb2RlU2V0IGJhc2VkIG9uIGJhZCBwYXR0ZXJucy4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IGNvbnN0cnVjdGluZyB3aXRoIHRoZSBiYWQgcGF0dGVybi4iKTsKKyAgICAgICAgfQorICAgIH0KKworLy8gICAgcHVibGljIHZvaWQgVGVzdFVuaVRvSGV4RXJyb3JzKCkgeworLy8gICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBudWxsOworLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIHQgPSBuZXcgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IoIiIsIHRydWUsIG51bGwpOworLy8gICAgICAgICAgICBpZiAodCAhPSBudWxsKSB7CisvLyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3JlYXRlZCBhIFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yIHdpdGggYW4gZW1wdHkgcGF0dGVybi4iKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgfQorLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIHQgPSBuZXcgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IoIlxceCIsIHRydWUsIG51bGwpOworLy8gICAgICAgICAgICBpZiAodCAhPSBudWxsKSB7CisvLyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogQ3JlYXRlZCBhIFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yIHdpdGggYSBiYWQgcGF0dGVybi4iKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgfQorLy8gICAgICAgIHQgPSBuZXcgVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3IoKTsKKy8vICAgICAgICB0cnkgeworLy8gICAgICAgICAgICAoKFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKSB0KS5hcHBseVBhdHRlcm4oIlxceCIpOworLy8gICAgICAgICAgICBlcnJsbigiRkFJTDogVW5pY29kZVRvSGV4VHJhbnNsaXRlcmF0b3I6OmFwcGx5UGF0dGVybiBzdWNjZWVkZWQgd2l0aCBhIGJhZCBwYXR0ZXJuLiIpOworLy8gICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgfQorLy8gICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJCVEVycm9ycygpIHsKKworICAgICAgICBTdHJpbmcgcnVsZXMgPSAiYWI+eSI7CisgICAgICAgIFN0cmluZyBpZCA9ICJNeVJhbmRvbS1ZUmV2ZXJzZSI7CisgICAgICAgIFN0cmluZyBnb29kUGF0dGVybiA9ICJbWzpMOl0mW1xcdTAwMDAtXFx1RkZGRl1dIjsgLyogYWxsIEJNUCBsZXR0ZXJzICovCisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHNldCA9IG5ldyBVbmljb2RlU2V0KGdvb2RQYXR0ZXJuKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9CisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcyhpZCwgcnVsZXMsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworICAgICAgICAgICAgICAgIHQuc2V0RmlsdGVyKHNldCk7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJDbGFzcyhpZCwgdC5nZXRDbGFzcygpLCBudWxsKTsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci51bnJlZ2lzdGVyKGlkKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0MSA9CisgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpZCwgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb25zdHJ1Y3Rpb24gb2YgdW5yZWdpc3RlcmVkIElEIHNob3VsZCBoYXZlIGZhaWxlZC4iKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFdhcyBub3QgYWJsZSB0byBjcmVhdGUgYSBnb29kIFJCVCB0byB0ZXN0IHJlZ2lzdHJhdGlvbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBXYXMgbm90IGFibGUgdG8gY3JlYXRlIGEgZ29vZCBVbmljb2RlU2V0IGJhc2VkIG9uIHZhbGlkIHBhdHRlcm5zLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisvLyAgICBwdWJsaWMgdm9pZCBUZXN0SGV4VG9VbmlFcnJvcnMoKSB7CisvLyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG51bGw7CisvLyAgICAgICAgLy90cnkgeyAvLyB1bm5lZWRlZCAtIGV4Y2VwdGlvbiBjYW5ub3QgYmUgdGhyb3duCisvLyAgICAgICAgdCA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigiIiwgbnVsbCk7CisvLyAgICAgICAgLy99IGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgIC8vICAgIGVycmxuKCJGQUlMOiBDb3VsZCBub3QgY3JlYXRlIGEgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3Igd2l0aCBhbiBlbXB0eSBwYXR0ZXJuLiIpOworLy8gICAgICAgIC8vfQorLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIHQgPSBuZXcgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IoIlxceCIsIG51bGwpOworLy8gICAgICAgICAgICBlcnJsbigiRkFJTDogQ3JlYXRlZCBhIEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yIHdpdGggYSBiYWQgcGF0dGVybi4iKTsKKy8vICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgdCA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigpOworLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgICgoSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IpIHQpLmFwcGx5UGF0dGVybigiXFx4Iik7CisvLyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcjo6YXBwbHlQYXR0ZXJuIHN1Y2NlZWRlZCB3aXRoIGEgYmFkIHBhdHRlcm4uIik7CisvLyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKy8vICAgICAgICB9CisvLyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvSmFtb1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9KYW1vVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYwZWRhOGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvSmFtb1Rlc3QuamF2YQpAQCAtMCwwICsxLDQ4NiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IFRlc3QgdGhlIExhdGluLUphbW8gdHJhbnNsaXRlcmF0b3IKKyAqLworcHVibGljIGNsYXNzIEphbW9UZXN0IGV4dGVuZHMgVHJhbnNsaXRlcmF0b3JUZXN0IHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgU0VQID0gJ1wnJzsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgSmFtb1Rlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEphbW8oKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGxhdGluSmFtbyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1KYW1vIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGphbW9MYXRpbiA9IGxhdGluSmFtby5nZXRJbnZlcnNlKCk7CisKKyAgICAgICAgU3RyaW5nW10gQ0FTRSA9IHsKKyAgICAgICAgICAgIC8vIENvbHVtbiAxIGlzIHRoZSBsYXRpbiB0ZXh0IEwxIHRvIGJlIGZlZCB0byBMYXRpbi1KYW1vCisgICAgICAgICAgICAvLyB0byB5aWVsZCBvdXRwdXQgSi4KKworICAgICAgICAgICAgLy8gQ29sdW1uIDIgaXMgZXhwZWN0ZWQgdmFsdWUgb2YgSi4gIEogaXMgZmVkIHRvCisgICAgICAgICAgICAvLyBKYW1vLUxhdGluIHRvIHlpZWxkIG91dHB1dCBMMi4KKworICAgICAgICAgICAgLy8gQ29sdW1uIDMgaXMgZXhwZWN0ZWQgdmFsdWUgb2YgTDIuICBJZiB0aGUgZXhwZWN0ZWQKKyAgICAgICAgICAgIC8vIHZhbHVlIG9mIEwyIGlzIEwxLCB0aGVuIEwyIGlzIG51bGwuCisgICAgICAgICAgICAiYmFiIiwgIihCaSkoQSkoQmYpIiwgbnVsbCwKKyAgICAgICAgICAgICJiYWJiIiwgIihCaSkoQSkoQmYpKEJpKShFVSkiLCAiYmFiIitTRVArImJldSIsCisgICAgICAgICAgICAiYmFiYmJhIiwgIihCaSkoQSkoQmYpKEJCKShBKSIsIG51bGwsCisgICAgICAgICAgICAiYmFnZyIsICIoQmkpKEEpKEdHZikiLCBudWxsLAorICAgICAgICAgICAgImJhZ2dnYSIsICIoQmkpKEEpKEdHZikoR2kpKEEpIiwgbnVsbCwKKyAgICAgICAgICAgICJiYWciK1NFUCsiZ2dhIiwgIihCaSkoQSkoR2YpKEdHaSkoQSkiLCBudWxsLAorICAgICAgICAgICAgImthYnNhIiwgIihLaSkoQSkoQmYpKFNpKShBKSIsIG51bGwsCisgICAgICAgICAgICAia2Fic2thIiwgIihLaSkoQSkoQlMpKEtpKShBKSIsIG51bGwsCisgICAgICAgICAgICAiZ2Fic2JrYSIsICIoR2kpKEEpKEJTKShCaSkoRVUpKEtpKShBKSIsICJnYWJzYmV1a2EiLCAvLyBub3QgKEtmKQorICAgICAgICAgICAgImdnYSIsICIoR0dpKShBKSIsIG51bGwsCisgICAgICAgICAgICAiYnNhIiwgIihCaSkoRVUpKFNpKShBKSIsICJiZXVzYSIsCisgICAgICAgICAgICAiYWdnIiwgIihJRVVORykoQSkoR0dmKSIsIG51bGwsCisgICAgICAgICAgICAiYWdnYSIsICIoSUVVTkcpKEEpKEdHaSkoQSkiLCBudWxsLAorICAgICAgICAgICAgImxhIiwgIihSKShBKSIsICJyYSIsCisgICAgICAgICAgICAiYnMiLCAiKEJpKShFVSkoU2YpIiwgImJldXMiLAorICAgICAgICAgICAgImthbGdnYSIsICIoS2kpKEEpKEwpKEdHaSkoQSkiLCBudWxsLAorCisgICAgICAgICAgICAvLyAncicgaW4gYSBmaW5hbCBwb3NpdGlvbiBpcyB0cmVhdGVkIGxpa2UgJ2wnCisgICAgICAgICAgICAia2Fya2EiLCAiKEtpKShBKShMKShLaSkoQSkiLCAia2Fsa2EiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxDQVNFLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgU3RyaW5nIGphbW8gPSBuYW1lVG9KYW1vKENBU0VbaSsxXSk7CisgICAgICAgICAgICBpZiAoQ0FTRVtpKzJdID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBleHBlY3QobGF0aW5KYW1vLCBDQVNFW2ldLCBqYW1vLCBqYW1vTGF0aW4pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBIYW5kbGUgY2FzZSB3aGVyZSByb3VuZC10cmlwIGlzIGV4cGVjdGVkIHRvIGZhaWwKKyAgICAgICAgICAgICAgICBleHBlY3QobGF0aW5KYW1vLCBDQVNFW2ldLCBqYW1vKTsKKyAgICAgICAgICAgICAgICBleHBlY3QoamFtb0xhdGluLCBqYW1vLCBDQVNFW2krMl0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlc2UgYXJlIHByb2JsZW1zIHR1cm5lZCB1cCBieSB0aGUgSGFuZ3VsLUphbW87SmFtby1MYXRpbgorICAgICAqIHJvdW5kIHRyaXAgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Um91bmRUcmlwKCkgeworICAgICAgICBTdHJpbmcgSEFOR1VMW10gPSB7ICJcdUFDMDNcdUMyRjgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdUM1NDRcdUM1QjQifTsKKyAgICAgICAgCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGxhdGluSmFtbyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1KYW1vIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGphbW9MYXRpbiA9IGxhdGluSmFtby5nZXRJbnZlcnNlKCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGphbW9IYW5ndWwgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZDIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGhhbmd1bEphbW8gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZEIik7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPEhBTkdVTC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGhhbmd1bCA9IEhBTkdVTFtpXTsKKyAgICAgICAgICAgIFN0cmluZyBqYW1vID0gaGFuZ3VsSmFtby50cmFuc2xpdGVyYXRlKGhhbmd1bCk7CisgICAgICAgICAgICBTdHJpbmcgbGF0aW4gPSBqYW1vTGF0aW4udHJhbnNsaXRlcmF0ZShqYW1vKTsKKyAgICAgICAgICAgIFN0cmluZyBqYW1vMiA9IGxhdGluSmFtby50cmFuc2xpdGVyYXRlKGxhdGluKTsKKyAgICAgICAgICAgIFN0cmluZyBoYW5ndWwyID0gamFtb0hhbmd1bC50cmFuc2xpdGVyYXRlKGphbW8yKTsKKyAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGhhbmd1bCArICIgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgIGphbW9Ub05hbWUoamFtbykgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICBsYXRpbiArICIgPT4gIiArIGphbW9Ub05hbWUoamFtbzIpCisgICAgICAgICAgICAgICAgICAgICAgICsgIiA9PiAiICsgaGFuZ3VsMgorICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgaWYgKCFoYW5ndWwuZXF1YWxzKGhhbmd1bDIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBVdGlsaXR5LmVzY2FwZShidWYudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbihVdGlsaXR5LmVzY2FwZShidWYudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB2YXJpb3VzIHN0ZXAtYXQtYS10aW1lIHRyYW5zZm9ybWF0aW9uIG9mIGhhbmd1bCB0byBqYW1vIHRvCisgICAgICogbGF0aW4gYW5kIGJhY2suCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBpZWNlbWVhbCgpIHsKKyAgICAgICAgU3RyaW5nIGhhbmd1bCA9ICJcdUJDMEYiOworICAgICAgICBTdHJpbmcgamFtbyA9IG5hbWVUb0phbW8oIihNaSkoSSkoQ2YpIik7CisgICAgICAgIFN0cmluZyBsYXRpbiA9ICJtaWMiOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBudWxsOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZEIik7IC8vIHdhcyBIYW5ndWwtSmFtbworICAgICAgICBleHBlY3QodCwgaGFuZ3VsLCBqYW1vKTsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GQyIpOyAvLyB3YXMgSmFtby1IYW5ndWwKKyAgICAgICAgZXhwZWN0KHQsIGphbW8sIGhhbmd1bCk7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1KYW1vIik7CisgICAgICAgIGV4cGVjdCh0LCBsYXRpbiwgamFtbyk7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJKYW1vLUxhdGluIik7CisgICAgICAgIGV4cGVjdCh0LCBqYW1vLCBsYXRpbik7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJIYW5ndWwtTGF0aW4iKTsKKyAgICAgICAgZXhwZWN0KHQsIGhhbmd1bCwgbGF0aW4pOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tSGFuZ3VsIik7CisgICAgICAgIGV4cGVjdCh0LCBsYXRpbiwgaGFuZ3VsKTsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkhhbmd1bC1MYXRpbjsgTGF0aW4tSmFtbyIpOworICAgICAgICBleHBlY3QodCwgaGFuZ3VsLCBqYW1vKTsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkphbW8tTGF0aW47IExhdGluLUhhbmd1bCIpOworICAgICAgICBleHBlY3QodCwgamFtbywgaGFuZ3VsKTsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkhhbmd1bC1MYXRpbjsgTGF0aW4tSGFuZ3VsIik7CisgICAgICAgIGV4cGVjdCh0LCBoYW5ndWwsIGhhbmd1bCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlYWxUZXh0KCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciBsYXRpbkphbW8gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tSmFtbyIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBqYW1vTGF0aW4gPSBsYXRpbkphbW8uZ2V0SW52ZXJzZSgpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBqYW1vSGFuZ3VsID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GQyIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBoYW5ndWxKYW1vID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GRCIpOworICAgICAgICAvL1RyYW5zbGl0ZXJhdG9yIHJ0ID0gbmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IobmV3IFRyYW5zbGl0ZXJhdG9yW10geworICAgICAgICAvLyAgICBoYW5ndWxKYW1vLCBqYW1vTGF0aW4sIGxhdGluSmFtbywgamFtb0hhbmd1bCB9KTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgcnQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZEO0phbW8tTGF0aW47TGF0aW4tSmFtbztORkMiKTsKKworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHRvdGFsID0gMDsKKyAgICAgICAgaW50IGVycm9ycyA9IDA7CisgICAgICAgIHdoaWxlIChwb3MgPCBXSEFUX0lTX1VOSUNPREUubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGludCBzcGFjZSA9IFdIQVRfSVNfVU5JQ09ERS5pbmRleE9mKCcgJywgcG9zKzEpOworICAgICAgICAgICAgaWYgKHNwYWNlIDwgMCkgeworICAgICAgICAgICAgICAgIHNwYWNlID0gV0hBVF9JU19VTklDT0RFLmxlbmd0aCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHBvcyA8IHNwYWNlKSB7CisgICAgICAgICAgICAgICAgKyt0b3RhbDsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGFuZ3VsID0gV0hBVF9JU19VTklDT0RFLnN1YnN0cmluZyhwb3MsIHNwYWNlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaGFuZ3VsWCA9IHJ0LnRyYW5zbGl0ZXJhdGUoaGFuZ3VsKTsKKyAgICAgICAgICAgICAgICBpZiAoIWhhbmd1bC5lcXVhbHMoaGFuZ3VsWCkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytlcnJvcnM7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBqYW1vID0gaGFuZ3VsSmFtby50cmFuc2xpdGVyYXRlKGhhbmd1bCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsYXRpbiA9IGphbW9MYXRpbi50cmFuc2xpdGVyYXRlKGphbW8pOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgamFtbzIgPSBsYXRpbkphbW8udHJhbnNsaXRlcmF0ZShsYXRpbik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBoYW5ndWwyID0gamFtb0hhbmd1bC50cmFuc2xpdGVyYXRlKGphbW8yKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhbmd1bC5lcXVhbHMoaGFuZ3VsMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJGQUlMIChDb21wb3VuZCB0cmFuc2xpdGVyYXRvciBwcm9ibGVtKTogIik7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGhhbmd1bCArICIgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphbW9Ub05hbWUoamFtbykgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRpbiArICIgPT4gIiArIGphbW9Ub05hbWUoamFtbzIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiA9PiAiICsgaGFuZ3VsMiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7IGJ1dCAiICsgaGFuZ3VsICsgIiA9Y3BkPT4gIiArIGphbW9Ub05hbWUoaGFuZ3VsWCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKFV0aWxpdHkuZXNjYXBlKGJ1Zi50b1N0cmluZygpKSk7ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoamFtby5lcXVhbHMoamFtbzIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiRkFJTCAoSmFtbzw+SGFuZ3VsIHByb2JsZW0pOiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZ3VsMi5lcXVhbHMoaGFuZ3VsWCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIoV2VpcmQ6ICIgKyBoYW5ndWxYICsgIiAhPSAiICsgaGFuZ3VsMiArICIpIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGhhbmd1bCArICIgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphbW9Ub05hbWUoamFtbykgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXRpbiArICIgPT4gIiArIGphbW9Ub05hbWUoamFtbzIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiA9PiAiICsgaGFuZ3VsMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oVXRpbGl0eS5lc2NhcGUoYnVmLnRvU3RyaW5nKCkpKTsgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJGQUlMOiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZ3VsMi5lcXVhbHMoaGFuZ3VsWCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIoV2VpcmQ6ICIgKyBoYW5ndWxYICsgIiAhPSAiICsgaGFuZ3VsMiArICIpIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgSGFuZ3VsLUphbW8gY29udmVyc2lvbiBpcyBub3QgdXN1YWxseSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1ZyBoZXJlLCBzbyB3ZSBoaWRlIGl0IGZyb20gZGlzcGxheS4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVuY29tbWVudCBsaW5lcyB0byBzZWUgdGhlIEhhbmd1bC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoLy9oYW5ndWwgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYW1vVG9OYW1lKGphbW8pICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0aW4gKyAiID0+ICIgKyBqYW1vVG9OYW1lKGphbW8yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLysgIiA9PiAiICsgaGFuZ3VsMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oVXRpbGl0eS5lc2NhcGUoYnVmLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvcyA9IHNwYWNlKzE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVycm9ycyAhPSAwKSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdCB3b3JkIGZhaWx1cmVzOiAiICsgZXJyb3JzICsgIiBvdXQgb2YgIiArIHRvdGFsKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJBbGwgIiArIHRvdGFsICsgIiB0ZXN0IHdvcmRzIHBhc3NlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVGVzdCB0ZXh0IHRha2VuIGZyb20gdGhlIFVuaWNvZGUgd2ViIHNpdGUKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFdIQVRfSVNfVU5JQ09ERSA9CisKKyAgICAgICAgIlx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkY1x1YzVkMCBcdWIzMDBcdWQ1NzQgPyAiICsKKworICAgICAgICAiXHVjNWI0XHViNWE0IFx1ZDUwY1x1YjdhYlx1ZDNmYywgXHVjNWI0XHViNWE0ICIgKworICAgICAgICAiXHVkNTA0XHViODVjXHVhZGY4XHViN2E4LCBcdWM1YjRcdWI1YTQgXHVjNWI4XHVjNWI0XHVjNWQwXHViM2M0ICIgKworICAgICAgICAiXHVjMGMxXHVhZDAwXHVjNWM2XHVjNzc0IFx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkY1x1YjI5NCBcdWJhYThcdWI0ZTAgIiArCisgICAgICAgICJcdWJiMzhcdWM3OTBcdWM1ZDAgXHViMzAwXHVkNTc0IFx1YWNlMFx1YzcyMCBcdWJjODhcdWQ2MzhcdWI5N2MgIiArCisgICAgICAgICJcdWM4MWNcdWFjZjVcdWQ1NjlcdWIyYzhcdWIyZTQuICIgKworICAgICAgICAKKyAgICAgICAgIlx1YWUzMFx1YmNmOFx1YzgwMVx1YzczY1x1Yjg1YyBcdWNlZjRcdWQ0ZThcdWQxMzBcdWIyOTQgIiArCisgICAgICAgICJcdWMyMmJcdWM3OTBcdWI5Y2MgXHVjYzk4XHViOWFjXHVkNTY5XHViMmM4XHViMmU0LiBcdWFlMDBcdWM3OTBcdWIwOTggIiArCisgICAgICAgICJcdWIyZTRcdWI5NzggXHViYjM4XHVjNzkwXHVjNWQwXHViM2M0IFx1YzIyYlx1Yzc5MFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YzljMFx1YzgxNVx1ZDU1OFx1YzVlYyAiICsKKyAgICAgICAgIlx1YzgwMFx1YzdhNVx1ZDU2OVx1YjJjOFx1YjJlNC4gXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjXHVhYzAwICIgKworICAgICAgICAiXHVhYzFjXHViYzFjXHViNDE4XHVhZTMwIFx1YzgwNFx1YzVkMFx1YjI5NCBcdWM3NzRcdWI3ZWNcdWQ1NWMgIiArCisgICAgICAgICJcdWMyMmJcdWM3OTBcdWI5N2MgXHVjOWMwXHVjODE1XHVkNTU4XHVhZTMwIFx1YzcwNFx1ZDU3NCBcdWMyMThcdWJjMzEgIiArCisgICAgICAgICJcdWFjMDBcdWM5YzBcdWM3NTggXHViMmU0XHViOTc4IFx1YWUzMFx1ZDYzOFx1ZDY1NCAiICsKKyAgICAgICAgIlx1YzJkY1x1YzJhNFx1ZDE1Y1x1Yzc0NCAiICsKKyAgICAgICAgIlx1YzBhY1x1YzZhOVx1ZDU4OFx1YzJiNVx1YjJjOFx1YjJlNC4gXHViMmU4XHVjNzdjIFx1YWUzMFx1ZDYzOFx1ZDY1NCAiICsKKyAgICAgICAgIlx1YmMyOVx1YmM5NVx1YzczY1x1Yjg1Y1x1YjI5NCBcdWJhYThcdWI0ZTAgXHViYjM4XHVjNzkwXHViOTdjICIgKworICAgICAgICAiXHVkM2VjXHVkNTY4XHVkNTYwIFx1YzIxOCBcdWM1YzZcdWM1YzhcdWMyYjVcdWIyYzhcdWIyZTQuIFx1YzYwOFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YjRlNFx1YzViNCBcdWM3MjBcdWI3ZmQgXHVjNWYwXHVkNTY5XHVjNWQwXHVjMTFjXHViOWNjICIgKworICAgICAgICAiXHViY2Y0XHViMzU0XHViNzdjXHViM2M0IFx1YmFhOFx1YjRlMCBcdWFjMDEgXHViMDk4XHViNzdjXHViY2M0ICIgKworICAgICAgICAiXHVjNWI4XHVjNWI0XHViOTdjIFx1Y2M5OFx1YjlhY1x1ZDU1OFx1YjgyNFx1YmE3NCBcdWM1ZWNcdWI3ZWMgIiArCisgICAgICAgICJcdWFjMWNcdWM3NTggXHViMmU0XHViOTc4IFx1YWUzMFx1ZDYzOFx1ZDY1NCBcdWJjMjlcdWJjOTVcdWM3NzQgIiArCisgICAgICAgICJcdWQ1NDRcdWM2OTRcdWQ1NjlcdWIyYzhcdWIyZTQuIFx1YzYwMVx1YzViNFx1YzY0MCBcdWFjMTlcdWM3NDAgIiArCisgICAgICAgICJcdWIyZThcdWM3N2MgXHVjNWI4XHVjNWI0XHVjNzU4IFx1YWNiZFx1YzZiMFx1YjNjNCAiICsKKyAgICAgICAgIlx1YWNmNVx1ZDFiNVx1YzgwMVx1YzczY1x1Yjg1YyBcdWMwYWNcdWM2YTlcdWI0MThcdWIyOTQgXHViYWE4XHViNGUwICIgKworICAgICAgICAiXHVhZTAwXHVjNzkwLCBcdWJiMzhcdWM3YTUgXHViZDgwXHVkNjM4IFx1YmMwZiAiICsKKyAgICAgICAgIlx1ZDE0Y1x1ZDA2Y1x1YjJjOFx1Y2VlYyBcdWFlMzBcdWQ2MzhcdWM1ZDAgXHViOWRlXHViMjk0IFx1YjJlOFx1Yzc3YyAiICsKKyAgICAgICAgIlx1YWUzMFx1ZDYzOFx1ZDY1NCBcdWJjMjlcdWJjOTVcdWM3NDQgXHVhYzE2XHVhY2UwIFx1Yzc4OFx1YzljMCAiICsKKyAgICAgICAgIlx1YmFiYlx1ZDU1OFx1YzYwMFx1YzJiNVx1YjJjOFx1YjJlNC4gIiArCisgICAgICAgIAorICAgICAgICAiXHVjNzc0XHViN2VjXHVkNTVjIFx1YWUzMFx1ZDYzOFx1ZDY1NCBcdWMyZGNcdWMyYTRcdWQxNWNcdWM3NDAgIiArCisgICAgICAgICJcdWI2MTBcdWQ1NWMgXHViMmU0XHViOTc4IFx1YWUzMFx1ZDYzOFx1ZDY1NCBcdWMyZGNcdWMyYTRcdWQxNWNcdWFjZmMgIiArCisgICAgICAgICJcdWNkYTlcdWIzY2NcdWQ1NjlcdWIyYzhcdWIyZTQuIFx1Yzk4OSBcdWI0NTAgXHVhYzAwXHVjOWMwICIgKworICAgICAgICAiXHVhZTMwXHVkNjM4XHVkNjU0IFx1YmMyOVx1YmM5NVx1Yzc3NCBcdWI0NTAgXHVhYzFjXHVjNzU4IFx1YjJlNFx1Yjk3OCAiICsKKyAgICAgICAgIlx1YmIzOFx1Yzc5MFx1YzVkMCBcdWIzMDBcdWQ1NzQgXHVhYzE5XHVjNzQwIFx1YmM4OFx1ZDYzOFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YzBhY1x1YzZhOVx1ZDU1OFx1YWM3MFx1YjA5OCBcdWFjMTlcdWM3NDAgXHViYjM4XHVjNzkwXHVjNWQwICIgKworICAgICAgICAiXHViMzAwXHVkNTc0IFx1YjJlNFx1Yjk3OCBcdWJjODhcdWQ2MzhcdWI5N2MgXHVjMGFjXHVjNmE5XHVkNTYwIFx1YzIxOCAiICsKKyAgICAgICAgIlx1Yzc4OFx1YzJiNVx1YjJjOFx1YjJlNC4gXHVjOGZjXHVjNWI0XHVjOWM0IFx1YmFhOFx1YjRlMCAiICsKKyAgICAgICAgIlx1Y2VmNFx1ZDRlOFx1ZDEzMChcdWQyYjlcdWQ3ODggXHVjMTFjXHViYzg0KVx1YjI5NCBcdWMxMWNcdWI4NWMgIiArCisgICAgICAgICJcdWIyZTRcdWI5NzggXHVjNWVjXHViN2VjIFx1YWMwMFx1YzljMCBcdWFlMzBcdWQ2MzhcdWQ2NTQgIiArCisgICAgICAgICJcdWJjMjlcdWJjOTVcdWM3NDQgXHVjOWMwXHVjNmQwXHVkNTc0XHVjNTdjICIgKworICAgICAgICAiXHVkNTY5XHViMmM4XHViMmU0LiBcdWFkZjhcdWI3ZWNcdWIwOTgsIFx1YjM3MFx1Yzc3NFx1ZDEzMFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YzExY1x1Yjg1YyBcdWIyZTRcdWI5NzggXHVhZTMwXHVkNjM4XHVkNjU0IFx1YmMyOVx1YmM5NVx1Yzc3NFx1YjA5OCAiICsKKyAgICAgICAgIlx1ZDUwY1x1YjdhYlx1ZDNmYyBcdWFjMDRcdWM1ZDAgXHVjODA0XHViMmVjXHVkNTYwIFx1YjU0Y1x1YjljOFx1YjJlNCAiICsKKyAgICAgICAgIlx1YWRmOCBcdWIzNzBcdWM3NzRcdWQxMzBcdWIyOTQgXHVkNTZkXHVjMGMxIFx1YzE5MFx1YzBjMVx1Yzc1OCAiICsKKyAgICAgICAgIlx1YzcwNFx1ZDVkOFx1Yzc0NCBcdWFjYWFcdWFjOGMgXHViNDI5XHViMmM4XHViMmU0LiAiICsKKyAgICAgICAgCisgICAgICAgICJcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGNcdWI4NWMgXHViYWE4XHViNGUwIFx1YWM4M1x1Yzc0NCAiICsKKyAgICAgICAgIlx1ZDU3NFx1YWNiMFx1ZDU2MCBcdWMyMTggXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0ISAiICsKKyAgICAgICAgIlx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkY1x1YjI5NCBcdWMwYWNcdWM2YTkgXHVjOTExXHVjNzc4ICIgKworICAgICAgICAiXHVkNTBjXHViN2FiXHVkM2ZjLCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YTgsIFx1YzViOFx1YzViNFx1YzVkMCAiICsKKyAgICAgICAgIlx1YWQwMFx1YWNjNFx1YzVjNlx1Yzc3NCBcdWJiMzhcdWM3OTBcdWI5YzhcdWIyZTQgXHVhY2UwXHVjNzIwXHVkNTVjICIgKworICAgICAgICAiXHVjMjJiXHVjNzkwXHViOTdjICIgKworICAgICAgICAiXHVjODFjXHVhY2Y1XHVkNTY5XHViMmM4XHViMmU0LiBcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGMgIiArCisgICAgICAgICJcdWQ0NWNcdWM5MDBcdWM3NDAgIiArIC8vICJBcHBsZSwgSFAsIElCTSwgSnVzdFN5c3RlbSwgTWljcm9zb2Z0LCBPcmFjbGUsIFNBUCwgIiArCisgICAgICAgIC8vICJTdW4sIFN5YmFzZSwgVW5pc3lzICIgKyAKKyAgICAgICAgIlx1YmMwZiBcdWFlMzBcdWQwYzAgXHVjNWVjXHViN2VjICIgKworICAgICAgICAiXHVkNjhjXHVjMGFjXHVjNjQwIFx1YWMxOVx1Yzc0MCBcdWM1YzVcdWFjYzQgIiArCisgICAgICAgICJcdWMxMjBcdWI0NTBcdWM4ZmNcdWM3OTBcdWM1ZDAgXHVjNzU4XHVkNTc0ICIgKworICAgICAgICAiXHVjYzQ0XHVkMGRkXHViNDE4XHVjNWM4XHVjMmI1XHViMmM4XHViMmU0LiBcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGNcdWIyOTQgIiArCisgICAgICAgIC8vICJYTUwsIEphdmEsIEVDTUFTY3JpcHQoSmF2YVNjcmlwdCksIExEQVAsIENPUkJBIDMuMCwgV01MICIgKworICAgICAgICAiXHViNGYxXHVhY2ZjICIgKworICAgICAgICAiXHVhYzE5XHVjNzc0IFx1ZDYwNFx1YzdhYyBcdWIxMTBcdWI5YWMgXHVjMGFjXHVjNmE5XHViNDE4XHViMjk0ICIgKworICAgICAgICAiXHVkNDVjXHVjOTAwXHVjNWQwXHVjMTFjIFx1ZDU0NFx1YzY5NFx1ZDU1OFx1YmE3MCBcdWM3NzRcdWIyOTQgIiArIC8vSVNPL0lFQyAiICsKKyAgICAgICAgIjEwNjQ2XHVjNzQ0IFx1YWQ2Y1x1ZDYwNFx1ZDU1OFx1YjI5NCBcdWFjZjVcdWMyZGRcdWM4MDFcdWM3NzggIiArCisgICAgICAgICJcdWJjMjlcdWJjOTVcdWM3ODVcdWIyYzhcdWIyZTQuIFx1Yzc3NFx1YjI5NCBcdWI5Y2VcdWM3NDAgXHVjNmI0XHVjNjAxICIgKworICAgICAgICAiXHVjY2I0XHVjODFjLCBcdWM2OTRcdWM5OTggXHVjMGFjXHVjNmE5XHViNDE4XHViMjk0IFx1YmFhOFx1YjRlMCAiICsKKyAgICAgICAgIlx1YmUwY1x1Yjc3Y1x1YzZiMFx1YzgwMCBcdWJjMGYgXHVhZTMwXHVkMGMwIFx1YjljZVx1Yzc0MCAiICsKKyAgICAgICAgIlx1YzgxY1x1ZDQ4OFx1YzVkMFx1YzExYyAiICsKKyAgICAgICAgIlx1YzljMFx1YzZkMFx1YjQyOVx1YjJjOFx1YjJlNC4gXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjICIgKworICAgICAgICAiXHVkNDVjXHVjOTAwXHVjNzU4IFx1YmQ4MFx1YzBjMVx1YWNmYyBcdWM3NzRcdWI5N2MgIiArCisgICAgICAgICJcdWM5YzBcdWM2ZDBcdWQ1NThcdWIyOTQgXHViM2M0XHVhZDZjXHVjNzU4IFx1YWMwMFx1YzZhOVx1YzEzMVx1Yzc0MCAiICsKKyAgICAgICAgIlx1Y2Q1Y1x1YWRmYyBcdWM4MDQgXHVjMTM4XHVhY2M0XHVjNWQwIFx1YmQ4OFx1YWNlMCBcdWM3ODhcdWIyOTQgIiArCisgICAgICAgICJcdWFlMzBcdWMyMjAgXHVhY2JkXHVkNWE1XHVjNWQwXHVjMTFjIFx1YWMwMFx1YzdhNSBcdWM5MTFcdWM2OTRcdWQ1NWMgIiArCisgICAgICAgICJcdWJkODBcdWJkODRcdWM3NDQgXHVjYzI4XHVjOWMwXHVkNTU4XHVhY2UwIFx1Yzc4OFx1YzJiNVx1YjJjOFx1YjJlNC4gIiArCisgICAgICAgIAorICAgICAgICAiXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjXHViOTdjICIgKworICAgICAgICAiXHVkMDc0XHViNzdjXHVjNzc0XHVjNWI4XHVkMmI4LVx1YzExY1x1YmM4NCBcdWI2MTBcdWIyOTQgIiArCisgICAgICAgICJcdWIyZTRcdWM5MTEtXHVjNWYwXHVhY2IwIFx1Yzc1MVx1YzZhOSBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWFjZmMgIiArCisgICAgICAgICJcdWM2ZjkgXHVjMGFjXHVjNzc0XHVkMmI4XHVjNWQwIFx1ZDFiNVx1ZDU2OVx1ZDU1OFx1YmE3NCAiICsKKyAgICAgICAgIlx1YjgwOFx1YWM3MFx1YzJkYyBcdWJiMzhcdWM3OTAgXHVjMTM4XHVkMmI4IFx1YzBhY1x1YzZhOVx1YzVkMCAiICsKKyAgICAgICAgIlx1Yzc4OFx1YzViNFx1YzExYyBcdWMwYzFcdWIyZjlcdWQ1NWMgXHViZTQ0XHVjNmE5IFx1YzgwOFx1YWMxMCAiICsKKyAgICAgICAgIlx1ZDZhOFx1YWNmY1x1YWMwMCAiICsKKyAgICAgICAgIlx1YjA5OFx1ZDBjMFx1YjBhOVx1YjJjOFx1YjJlNC4gXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjXHViOTdjICIgKworICAgICAgICAiXHVkMWI1XHVkNTc0IFx1YjlhY1x1YzVkNFx1YzljMFx1YjJjOFx1YzViNFx1YjljMSBcdWM1YzZcdWM3NzQgIiArCisgICAgICAgICJcdWIyZTRcdWM5MTEgXHVkNTBjXHViN2FiXHVkM2ZjLCBcdWM1YjhcdWM1YjQgXHViYzBmIFx1YWQ2ZFx1YWMwMCAiICsKKyAgICAgICAgIlx1YWMwNFx1YzVkMCBcdWIyZThcdWM3N2MgXHVjMThjXHVkNTA0XHVkMmI4XHVjNmU4XHVjNWI0ICIgKworICAgICAgICAiXHVkNTBjXHViN2FiXHVkM2ZjIFx1YjYxMFx1YjI5NCBcdWIyZThcdWM3N2MgXHVjNmY5ICIgKworICAgICAgICAiXHVjMGFjXHVjNzc0XHVkMmI4XHViOTdjIFx1YmFhOVx1ZDQ1Y1x1Yjg1YyBcdWMwYmNcdWM3NDQgXHVjMjE4ICIgKworICAgICAgICAiXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0LiBcdWM3NzRcdWI5N2MgXHVjMGFjXHVjNmE5XHVkNTU4XHViYTc0ICIgKworICAgICAgICAiXHViMzcwXHVjNzc0XHVkMTMwXHViOTdjIFx1YzE5MFx1YzBjMSBcdWM1YzZcdWM3NzQgXHVjNWVjXHViN2VjICIgKworICAgICAgICAiXHVjMmRjXHVjMmE0XHVkMTVjXHVjNzQ0IFx1ZDFiNVx1ZDU3NCBcdWM4MDRcdWMxYTFcdWQ1NjAgXHVjMjE4ICIgKworICAgICAgICAiXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0LiAiICsKKyAgICAgICAgCisgICAgICAgICJcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGMgXHVjZjU4XHVjMThjXHVjMmRjXHVjNWM0XHVjNWQwIFx1YjMwMFx1ZDU3NCAiICsKKyAgICAgICAgIlx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkYyBcdWNmNThcdWMxOGNcdWMyZGNcdWM1YzRcdWM3NDAgIiArCisgICAgICAgICJcdWJlNDRcdWM2MDFcdWI5YWMgXHVjODcwXHVjOWMxXHVjNzNjXHViODVjXHVjMTFjIFx1ZDYwNFx1YjMwMCAiICsKKyAgICAgICAgIlx1YzE4Y1x1ZDUwNFx1ZDJiOFx1YzZlOFx1YzViNCBcdWM4MWNcdWQ0ODhcdWFjZmMgIiArCisgICAgICAgICJcdWQ0NWNcdWM5MDBcdWM1ZDBcdWMxMWMgXHVkMTRkXHVjMmE0XHVkMmI4XHVjNzU4IFx1ZDQ1Y1x1ZDYwNFx1Yzc0NCAiICsKKyAgICAgICAgIlx1YzljMFx1YzgxNVx1ZDU1OFx1YjI5NCBcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGMgXHVkNDVjXHVjOTAwXHVjNzU4ICIgKworICAgICAgICAiXHVjMGFjXHVjNmE5XHVjNzQ0IFx1YWMxY1x1YmMxY1x1ZDU1OFx1YWNlMCBcdWQ2NTVcdWM3YTVcdWQ1NThcdWJhNzAgIiArCisgICAgICAgICJcdWM3YTVcdWI4MjRcdWQ1NThcdWFlMzAgXHVjNzA0XHVkNTc0ICIgKworICAgICAgICAiXHVjMTM4XHVjNmNjXHVjODRjXHVjMmI1XHViMmM4XHViMmU0LiBcdWNmNThcdWMxOGNcdWMyZGNcdWM1YzQgIiArCisgICAgICAgICJcdWJhNjRcdWJjODRcdWMyN2RcdWM3NDAgXHVjZWY0XHVkNGU4XHVkMTMwXHVjNjQwIFx1YzgxNVx1YmNmNCAiICsKKyAgICAgICAgIlx1Y2M5OFx1YjlhYyBcdWMwYjBcdWM1YzVcdWM1ZDAgXHVjODg1XHVjMGFjXHVkNTU4XHVhY2UwIFx1Yzc4OFx1YjI5NCAiICsKKyAgICAgICAgIlx1YWQxMVx1YmM5NFx1YzcwNFx1ZDU1YyBcdWQ2OGNcdWMwYWMgXHViYzBmIFx1Yzg3MFx1YzljMVx1Yzc1OCAiICsKKyAgICAgICAgIlx1YmM5NFx1YzcwNFx1Yjk3YyAiICsKKyAgICAgICAgIlx1YjA5OFx1ZDBjMFx1YjBjNVx1YjJjOFx1YjJlNC4gXHVjZjU4XHVjMThjXHVjMmRjXHVjNWM0XHVjNzU4ICIgKworICAgICAgICAiXHVjN2FjXHVjODE1XHVjNzQwIFx1YzgwNFx1YzgwMVx1YzczY1x1Yjg1YyBcdWQ2OGNcdWJlNDRcdWM1ZDAgIiArCisgICAgICAgICJcdWM3NThcdWQ1NzQgXHVjZGE5XHViMmY5XHViNDI5XHViMmM4XHViMmU0LiBcdWM3MjBcdWIyYzhcdWNmNTRcdWI0ZGMgIiArCisgICAgICAgICJcdWNlZThcdWMxOGNcdWMyZGNcdWM1YzRcdWM1ZDBcdWMxMWNcdWM3NTggXHViYTY0XHViYzg0XHVjMjdkXHVjNzQwICIgKworICAgICAgICAiXHVjODA0IFx1YzEzOFx1YWNjNCBcdWM1YjRcdWIyOTAgXHVhY2YzXHVjNWQwXHVjMTFjXHViMDk4ICIgKworICAgICAgICAiXHVjNzIwXHViMmM4XHVjZjU0XHViNGRjIFx1ZDQ1Y1x1YzkwMFx1Yzc0NCBcdWM5YzBcdWM2ZDBcdWQ1NThcdWFjZTAgIiArCisgICAgICAgICJcdWFkZjggXHVkNjU1XHVjN2E1XHVhY2ZjIFx1YWQ2Y1x1ZDYwNFx1Yzc0NCAiICsKKyAgICAgICAgIlx1YzljMFx1YzZkMFx1ZDU1OFx1YWNlMFx1Yzc5MFx1ZDU1OFx1YjI5NCBcdWM4NzBcdWM5YzFcdWFjZmMgIiArCisgICAgICAgICJcdWFjMWNcdWM3NzhcdWM1ZDBcdWFjOGMgXHVhYzFjXHViYzI5XHViNDE4XHVjNWI0ICIgKworICAgICAgICAiXHVjNzg4XHVjMmI1XHViMmM4XHViMmU0LiAiICsKKyAgICAgICAgCisgICAgICAgICJcdWIzNTQgXHVjNzkwXHVjMTM4XHVkNTVjIFx1YjBiNFx1YzZhOVx1Yzc0MCBcdWM2YTlcdWM1YjRcdWM5ZDEsICIgKworICAgICAgICAiXHVjNjA4XHVjODFjIFx1YzcyMFx1YjJjOFx1Y2Y1NFx1YjRkYyBcdWMwYWNcdWM2YTkgXHVhYzAwXHViMmE1ICIgKworICAgICAgICAiXHVjODFjXHVkNDg4LCBcdWFlMzBcdWMyMjAgXHVjODE1XHViY2Y0IFx1YmMwZiBcdWFlMzBcdWQwYzAgIiArCisgICAgICAgICJcdWM3MjBcdWM2YTlcdWQ1NWMgXHVjODE1XHViY2Y0XHViOTdjICIgKworICAgICAgICAiXHVjYzM4XHVjODcwXHVkNTU4XHVjMmVkXHVjMmRjXHVjNjI0LiI7CisKKyAgICAvLyBUcmFuc2xpdGVyYXRvclRlc3Qgb3ZlcnJpZGUKKyAgICBib29sZWFuIGV4cGVjdEF1eChTdHJpbmcgdGFnLCBTdHJpbmcgc3VtbWFyeSwgYm9vbGVhbiBwYXNzLAorICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICByZXR1cm4gc3VwZXIuZXhwZWN0QXV4KHRhZywgamFtb1RvTmFtZShzdW1tYXJ5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MsIGphbW9Ub05hbWUoZXhwZWN0ZWRSZXN1bHQpKTsKKyAgICB9CisKKyAgICAvLyBVVElMSVRJRVMKKworICAgIC8vIE5vdGU6IFRoZSBmb2xsb3dpbmcgY291bGQgbW9yZSBlYXNpbHkgYmUgZG9uZSB3aXRoIGEgdHJhbnNsaXRlcmF0b3IhCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEpBTU9fTkFNRVMgPSB7CisgICAgICAgICIoR2kpIiwgIlx1MTEwMCIsCisgICAgICAgICIoR0dpKSIsICJcdTExMDEiLAorICAgICAgICAiKE5pKSIsICJcdTExMDIiLAorICAgICAgICAiKERpKSIsICJcdTExMDMiLAorICAgICAgICAiKEREKSIsICJcdTExMDQiLAorICAgICAgICAiKFIpIiwgIlx1MTEwNSIsCisgICAgICAgICIoTWkpIiwgIlx1MTEwNiIsCisgICAgICAgICIoQmkpIiwgIlx1MTEwNyIsCisgICAgICAgICIoQkIpIiwgIlx1MTEwOCIsCisgICAgICAgICIoU2kpIiwgIlx1MTEwOSIsCisgICAgICAgICIoU1NpKSIsICJcdTExMEEiLAorICAgICAgICAiKElFVU5HKSIsICJcdTExMEIiLAorICAgICAgICAiKEppKSIsICJcdTExMEMiLAorICAgICAgICAiKEpKKSIsICJcdTExMEQiLAorICAgICAgICAiKENpKSIsICJcdTExMEUiLAorICAgICAgICAiKEtpKSIsICJcdTExMEYiLAorICAgICAgICAiKFRpKSIsICJcdTExMTAiLAorICAgICAgICAiKFBpKSIsICJcdTExMTEiLAorICAgICAgICAiKEhpKSIsICJcdTExMTIiLAorICAgICAgICAKKyAgICAgICAgIihBKSIsICJcdTExNjEiLAorICAgICAgICAiKEFFKSIsICJcdTExNjIiLAorICAgICAgICAiKFlBKSIsICJcdTExNjMiLAorICAgICAgICAiKFlBRSkiLCAiXHUxMTY0IiwKKyAgICAgICAgIihFTykiLCAiXHUxMTY1IiwKKyAgICAgICAgIihFKSIsICJcdTExNjYiLAorICAgICAgICAiKFlFTykiLCAiXHUxMTY3IiwKKyAgICAgICAgIihZRSkiLCAiXHUxMTY4IiwKKyAgICAgICAgIihPKSIsICJcdTExNjkiLAorICAgICAgICAiKFdBKSIsICJcdTExNkEiLAorICAgICAgICAiKFdBRSkiLCAiXHUxMTZCIiwKKyAgICAgICAgIihPRSkiLCAiXHUxMTZDIiwKKyAgICAgICAgIihZTykiLCAiXHUxMTZEIiwKKyAgICAgICAgIihVKSIsICJcdTExNkUiLAorICAgICAgICAiKFdFTykiLCAiXHUxMTZGIiwKKyAgICAgICAgIihXRSkiLCAiXHUxMTcwIiwKKyAgICAgICAgIihXSSkiLCAiXHUxMTcxIiwKKyAgICAgICAgIihZVSkiLCAiXHUxMTcyIiwKKyAgICAgICAgIihFVSkiLCAiXHUxMTczIiwKKyAgICAgICAgIihZSSkiLCAiXHUxMTc0IiwKKyAgICAgICAgIihJKSIsICJcdTExNzUiLAorCisgICAgICAgICIoR2YpIiwgIlx1MTFBOCIsCisgICAgICAgICIoR0dmKSIsICJcdTExQTkiLAorICAgICAgICAiKEdTKSIsICJcdTExQUEiLAorICAgICAgICAiKE5mKSIsICJcdTExQUIiLAorICAgICAgICAiKE5KKSIsICJcdTExQUMiLAorICAgICAgICAiKE5IKSIsICJcdTExQUQiLAorICAgICAgICAiKERmKSIsICJcdTExQUUiLAorICAgICAgICAiKEwpIiwgIlx1MTFBRiIsCisgICAgICAgICIoTEcpIiwgIlx1MTFCMCIsCisgICAgICAgICIoTE0pIiwgIlx1MTFCMSIsCisgICAgICAgICIoTEIpIiwgIlx1MTFCMiIsCisgICAgICAgICIoTFMpIiwgIlx1MTFCMyIsCisgICAgICAgICIoTFQpIiwgIlx1MTFCNCIsCisgICAgICAgICIoTFApIiwgIlx1MTFCNSIsCisgICAgICAgICIoTEgpIiwgIlx1MTFCNiIsCisgICAgICAgICIoTWYpIiwgIlx1MTFCNyIsCisgICAgICAgICIoQmYpIiwgIlx1MTFCOCIsCisgICAgICAgICIoQlMpIiwgIlx1MTFCOSIsCisgICAgICAgICIoU2YpIiwgIlx1MTFCQSIsCisgICAgICAgICIoU1NmKSIsICJcdTExQkIiLAorICAgICAgICAiKE5HKSIsICJcdTExQkMiLAorICAgICAgICAiKEpmKSIsICJcdTExQkQiLAorICAgICAgICAiKENmKSIsICJcdTExQkUiLAorICAgICAgICAiKEtmKSIsICJcdTExQkYiLAorICAgICAgICAiKFRmKSIsICJcdTExQzAiLAorICAgICAgICAiKFBmKSIsICJcdTExQzEiLAorICAgICAgICAiKEhmKSIsICJcdTExQzIiLAorICAgIH07CisKKyAgICBzdGF0aWMgSGFzaHRhYmxlIEpBTU9fVE9fTkFNRTsKKyAgICBzdGF0aWMgSGFzaHRhYmxlIE5BTUVfVE9fSkFNTzsKKworICAgIHN0YXRpYyB7CisgICAgICAgIEpBTU9fVE9fTkFNRSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgTkFNRV9UT19KQU1PID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8SkFNT19OQU1FUy5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIEpBTU9fVE9fTkFNRS5wdXQoSkFNT19OQU1FU1tpKzFdLCBKQU1PX05BTUVTW2ldKTsKKyAgICAgICAgICAgIE5BTUVfVE9fSkFNTy5wdXQoSkFNT19OQU1FU1tpXSwgSkFNT19OQU1FU1tpKzFdKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgc2hvcnQgbmFtZXMgdG8gYWN0dWFsIGphbW8uICBFLmcuLCAieChMRyl5IiByZXR1cm5zCisgICAgICogInhcdTExQjB5Ii4gIFNlZSBKQU1PX05BTUVTIGZvciB0YWJsZSBvZiBuYW1lcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgU3RyaW5nIG5hbWVUb0phbW8oU3RyaW5nIGlucHV0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxpbnB1dC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBpbnB1dC5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA9PSAnKCcpIHsKKyAgICAgICAgICAgICAgICBpbnQgaiA9IGlucHV0LmluZGV4T2YoJyknLCBpKzEpOworICAgICAgICAgICAgICAgIGlmICgoai1pKSA+PSAyICYmIChqLWkpIDw9IDYpIHsgLy8gIihBKSIsICIoSUVVTkcpIgorICAgICAgICAgICAgICAgICAgICBTdHJpbmcgamFtbyA9IChTdHJpbmcpIE5BTUVfVE9fSkFNTy5nZXQoaW5wdXQuc3Vic3RyaW5nKGksIGorMSkpOworICAgICAgICAgICAgICAgICAgICBpZiAoamFtbyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGphbW8pOworICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGo7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgamFtbyB0byBzaG9ydCBuYW1lcy4gIEUuZy4sICJ4XHUxMUIweSIgcmV0dXJucworICAgICAqICJ4KExHKXkiLiAgU2VlIEpBTU9fTkFNRVMgZm9yIHRhYmxlIG9mIG5hbWVzLgorICAgICAqLworICAgIHN0YXRpYyBTdHJpbmcgamFtb1RvTmFtZShTdHJpbmcgaW5wdXQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGlucHV0Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IGlucHV0LmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID49IDB4MTEwMCAmJiBjIDw9IDB4MTFDMikgeworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gKFN0cmluZykgSkFNT19UT19OQU1FLmdldChpbnB1dC5zdWJzdHJpbmcoaSwgaSsxKSk7CisgICAgICAgICAgICAgICAgaWYgKG5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKG5hbWUpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvUmVwbGFjZWFibGVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvUmVwbGFjZWFibGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTU3ZTFjZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9SZXBsYWNlYWJsZVRlc3QuamF2YQpAQCAtMCwwICsxLDE4NiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnRyYW5zbGl0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IFJvdW5kIHRyaXAgdGVzdCBvZiBUcmFuc2xpdGVyYXRvcgorICovCitwdWJsaWMgY2xhc3MgUmVwbGFjZWFibGVUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBMQVRFUl9USEFOXzJfMSA9IHRydWU7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBSZXBsYWNlYWJsZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0KCkgdGhyb3dzIElPRXhjZXB0aW9uLCBQYXJzZUV4Y2VwdGlvbiB7CisgICAgICAgIGNoZWNrKCJMb3dlciIsICJBQkNEIiwgIjEyMzQiKTsKKyAgICAgICAgY2hlY2soIlVwcGVyIiwgImFiY2RcdTAwREYiLCAiMTIzNDU1Iik7IC8vIG11c3QgbWFwIDAwREYgdG8gU1MKKyAgICAgICAgY2hlY2soIlRpdGxlIiwgImFCQ0QiLCAiMTIzNCIpOworICAgICAgICBjaGVjaygiTkZDIiwgIkFcdTAzMDBFXHUwMzAwIiwgIjEzIik7CisgICAgICAgIGNoZWNrKCJORkQiLCAiXHUwMEMwXHUwMEM4IiwgIjExMjIiKTsKKyAgICAgICAgaWYgKCFMQVRFUl9USEFOXzJfMSkgcmV0dXJuOworICAgICAgICBjaGVjaygiKih4KSA+IEEgJDEgQiIsICJ3eHkiLCAiMTEyMjMiKTsKKyAgICAgICAgY2hlY2soIiooeCkoeSkgPiBBICQyIEIgJDEgQyAkMiBEIiwgInd4eXoiLCAiMTEzMzIyMzM0Iik7CisgICAgICAgIGNoZWNrKCIqKHgpKHkpKHopID4gQSAkMyBCICQyIEMgJDEgRCIsICJ3eHl6dSIsICIxMTQ0MzMyMjUiKTsKKyAgICAvLyBEaXNhYmxlZCBmb3IgMi40LiAgVE9ETyBSZXZpc2l0IGluIDIuNiBvciBsYXRlci4KKyAgICAgICAgLy9jaGVjaygiKnggPiBhIiwgInh5eiIsICIyMjMiKTsgLy8gZXhwZWN0ICIxMjMiPworICAgICAgICAvL2NoZWNrKCIqeCA+IGEiLCAid3h5IiwgIjExMyIpOyAvLyBleHBlY3QgIjEyMyI/CisgICAgICAgIC8vY2hlY2soIip4ID4gYSIsICJcdUZGRkZ4eSIsICJfMzMiKTsgLy8gZXhwZWN0ICJfMjMiPworICAgICAgICAvL2NoZWNrKCIqKHgpID4gQSAkMSBCIiwgIlx1RkZGRnh5IiwgIl9fMjIzIik7CisgICAgfQorICAgIAorICAgIHZvaWQgY2hlY2soU3RyaW5nIHRyYW5zbGl0ZXJhdG9yTmFtZSwgU3RyaW5nIHRlc3QsIFN0cmluZyBzaG91bGRQcm9kdWNlU3R5bGVzKSB7CisgICAgICAgIFRlc3RSZXBsYWNlYWJsZSB0ciA9IG5ldyBUZXN0UmVwbGFjZWFibGUodGVzdCwgbnVsbCk7CisgICAgICAgIFN0cmluZyBvcmlnaW5hbCA9IHRyLnRvU3RyaW5nKCk7CisgICAgICAgIAorICAgICAgICBUcmFuc2xpdGVyYXRvciB0OworICAgICAgICBpZiAodHJhbnNsaXRlcmF0b3JOYW1lLnN0YXJ0c1dpdGgoIioiKSkgeworICAgICAgICAgICAgdHJhbnNsaXRlcmF0b3JOYW1lID0gdHJhbnNsaXRlcmF0b3JOYW1lLnN1YnN0cmluZygxKTsKKyAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoInRlc3QiLCB0cmFuc2xpdGVyYXRvck5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKHRyYW5zbGl0ZXJhdG9yTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgdC50cmFuc2xpdGVyYXRlKHRyKTsKKyAgICAgICAgU3RyaW5nIG5ld1N0eWxlcyA9IHRyLmdldFN0eWxlcygpOworICAgICAgICBpZiAoIW5ld1N0eWxlcy5lcXVhbHMoc2hvdWxkUHJvZHVjZVN0eWxlcykpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIFN0eWxlczogIiArIHRyYW5zbGl0ZXJhdG9yTmFtZSArICIgKCAiCisgICAgICAgICAgICAgICAgKyBvcmlnaW5hbCArICIgKSA9PiAiICsgdHIudG9TdHJpbmcoKSArICI7IHNob3VsZCBiZSB7IiArIHNob3VsZFByb2R1Y2VTdHlsZXMgKyAifSEiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogIiArIHRyYW5zbGl0ZXJhdG9yTmFtZSArICIgKCAiICsgb3JpZ2luYWwgKyAiICkgPT4gIiArIHRyLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIXRyLmhhc01ldGFEYXRhKCkgfHwgdHIuY2hhcnMuaGFzTWV0YURhdGEoKSAKKyAgICAgICAgICAgIHx8IHRyLnN0eWxlcy5oYXNNZXRhRGF0YSgpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbCBoYXNNZXRhRGF0YSgpIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGEgdGVzdCBjbGFzcyB0aGF0IHNpbXVsYXRlcyBzdHlsZWQgdGV4dC4KKyAgICAgKiBJdCBhc3NvY2lhdGVzIGEgc3R5bGUgbnVtYmVyICgwLi42NTUzNSkgd2l0aCBlYWNoIGNoYXJhY3RlciwKKyAgICAgKiBhbmQgbWFpbnRhaW5zIHRoYXQgc3R5bGUgaW4gdGhlIG5vcm1hbCBmYXNoaW9uOgorICAgICAqIFdoZW4gc2V0dGluZyB0ZXh0IGZyb20gcmF3IHN0cmluZyBvciBjaGFyYWN0ZXJzLDxicj4KKyAgICAgKiBTZXQgdGhlIHN0eWxlcyB0byB0aGUgc3R5bGUgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciByZXBsYWNlZC48YnI+CisgICAgICogSWYgbm8gY2hhcmFjdGVycyBhcmUgcmVwbGFjZWQsIHVzZSB0aGUgc3R5bGUgb2YgdGhlIHByZXZpb3VzIGNoYXJhY3Rlci48YnI+CisgICAgICogSWYgYXQgc3RhcnQsIHVzZSB0aGUgZm9sbG93aW5nIGNoYXJhY3Rlcjxicj4KKyAgICAgKiBPdGhlcndpc2UgdXNlIE5PX1NUWUxFLgorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBUZXN0UmVwbGFjZWFibGUgaW1wbGVtZW50cyBSZXBsYWNlYWJsZSB7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIGNoYXJzOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyBzdHlsZXM7CisgICAgICAgIAorICAgICAgICBzdGF0aWMgZmluYWwgY2hhciBOT19TVFlMRSA9ICdfJzsKKworICAgICAgICBzdGF0aWMgZmluYWwgY2hhciBOT19TVFlMRV9NQVJLID0gMHhGRkZGOworICAgICAgICAKKyAgICAgICAgVGVzdFJlcGxhY2VhYmxlIChTdHJpbmcgdGV4dCwgU3RyaW5nIHN0eWxlcykgeworICAgICAgICAgICAgY2hhcnMgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcodGV4dCk7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0eWxlcyAhPSBudWxsICYmIGkgPCBzdHlsZXMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcy5hcHBlbmQoc3R5bGVzLmNoYXJBdChpKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRleHQuY2hhckF0KGkpID09IE5PX1NUWUxFX01BUkspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMuYXBwZW5kKE5PX1NUWUxFKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMuYXBwZW5kKChjaGFyKSAoaSArICcxJykpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5zdHlsZXMgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcocy50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRTdHlsZXMoKSB7CisgICAgICAgICAgICByZXR1cm4gc3R5bGVzLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gY2hhcnMudG9TdHJpbmcoKSArICJ7IiArIHN0eWxlcy50b1N0cmluZygpICsgIn0iOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBzdWJzdHJpbmcoaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBjaGFycy5zdWJzdHJpbmcoc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgbGVuZ3RoKCkgeworICAgICAgICAgICAgcmV0dXJuIGNoYXJzLmxlbmd0aCgpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGNoYXIgY2hhckF0KGludCBvZmZzZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBjaGFycy5jaGFyQXQob2Zmc2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgY2hhcjMyQXQoaW50IG9mZnNldCkgeworICAgICAgICAgICAgcmV0dXJuIGNoYXJzLmNoYXIzMkF0KG9mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBnZXRDaGFycyhpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwgY2hhciBkc3RbXSwgaW50IGRzdFN0YXJ0KSB7CisgICAgICAgICAgICBjaGFycy5nZXRDaGFycyhzcmNTdGFydCwgc3JjTGltaXQsIGRzdCwgZHN0U3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHRleHQpIHsKKyAgICAgICAgICAgIGlmIChzdWJzdHJpbmcoc3RhcnQsbGltaXQpLmVxdWFscyh0ZXh0KSkgcmV0dXJuOyAvLyBOTyBBQ1RJT04hCisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnQoVXRpbGl0eS5lc2NhcGUodG9TdHJpbmcoKSArICIgLT4gcmVwbGFjZSgiICsgc3RhcnQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCIgKyBsaW1pdCArICIsIiArIHRleHQpICsgIikgLT4gIik7CisgICAgICAgICAgICBjaGFycy5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgdGV4dCk7CisgICAgICAgICAgICBmaXhTdHlsZXMoc3RhcnQsIGxpbWl0LCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKFV0aWxpdHkuZXNjYXBlKHRvU3RyaW5nKCkpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhcltdIGNoYXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyc1N0YXJ0LCBpbnQgY2hhcnNMZW4pIHsKKyAgICAgICAgICAgIGlmIChzdWJzdHJpbmcoc3RhcnQsbGltaXQpLmVxdWFscyhuZXcgU3RyaW5nKGNoYXJzLCBjaGFyc1N0YXJ0LCBjaGFyc0xlbi1jaGFyc1N0YXJ0KSkpIHJldHVybjsgLy8gTk8gQUNUSU9OIQorICAgICAgICAgICAgdGhpcy5jaGFycy5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgY2hhcnMsIGNoYXJzU3RhcnQsIGNoYXJzTGVuKTsKKyAgICAgICAgICAgIGZpeFN0eWxlcyhzdGFydCwgbGltaXQsIGNoYXJzTGVuKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZml4U3R5bGVzKGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgbmV3TGVuKSB7CisgICAgICAgICAgICBjaGFyIG5ld1N0eWxlID0gTk9fU1RZTEU7CisgICAgICAgICAgICBpZiAoc3RhcnQgIT0gbGltaXQgJiYgc3R5bGVzLmNoYXJBdChzdGFydCkgIT0gTk9fU1RZTEUpIHsKKyAgICAgICAgICAgICAgICBuZXdTdHlsZSA9IHN0eWxlcy5jaGFyQXQoc3RhcnQpOworICAgICAgICAgICAgfSBlbHNlIGlmIChzdGFydCA+IDAgJiYgY2hhckF0KHN0YXJ0LTEpICE9IE5PX1NUWUxFX01BUkspIHsKKyAgICAgICAgICAgICAgICBuZXdTdHlsZSA9IHN0eWxlcy5jaGFyQXQoc3RhcnQtMSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGxpbWl0IDwgc3R5bGVzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgbmV3U3R5bGUgPSBzdHlsZXMuY2hhckF0KGxpbWl0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGR1bWIgaW1wbGVtZW50YXRpb24gZm9yIG5vdy4KKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuZXdMZW47ICsraSkgeworICAgICAgICAgICAgICAgIC8vIHRoaXMgZG9lc24ndCByZWFsbHkgaGFuZGxlIGFuIGVtYmVkZGVkIE5PX1NUWUxFX01BUksKKyAgICAgICAgICAgICAgICAvLyBpbiB0aGUgbWlkZGxlIG9mIGEgbG9uZyBydW4gb2YgY2hhcmFjdGVycyByaWdodCAtLSBidXQKKyAgICAgICAgICAgICAgICAvLyB0aGF0IGNhc2Ugc2hvdWxkbid0IGhhcHBlbiBhbnl3YXkKKyAgICAgICAgICAgICAgICBpZiAoY2hhckF0KHN0YXJ0K2kpID09IE5PX1NUWUxFX01BUkspIHsKKyAgICAgICAgICAgICAgICAgICAgcy5hcHBlbmQoTk9fU1RZTEUpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHMuYXBwZW5kKG5ld1N0eWxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdHlsZXMucmVwbGFjZShzdGFydCwgbGltaXQsIHMudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBjb3B5KGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgZGVzdCkgeworICAgICAgICAgICAgY2hhcnMuY29weShzdGFydCwgbGltaXQsIGRlc3QpOworICAgICAgICAgICAgc3R5bGVzLmNvcHkoc3RhcnQsIGxpbWl0LCBkZXN0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzTWV0YURhdGEoKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1JvdW5kVHJpcFRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Sb3VuZFRyaXBUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTY0ZGEzMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Sb3VuZFRyaXBUZXN0LmphdmEKQEAgLTAsMCArMSwxNTY0IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Mb2NhbGVEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkV3JpdGVyOworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk91dHB1dFN0cmVhbVdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuaW8uVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBSb3VuZCB0cmlwIHRlc3Qgb2YgVHJhbnNsaXRlcmF0b3IKKyAqLworcHVibGljIGNsYXNzIFJvdW5kVHJpcFRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBFWFRSQV9URVNUUyA9IHRydWU7CisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gUFJJTlRfUlVMRVMgPSB0cnVlOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBSb3VuZFRyaXBUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIFRlc3RTaW5nbGUoKSB0aHJvd3MgSU9FeGNlcHRpb24sIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1HcmVlayIpOworICAgICAgICBTdHJpbmcgcyA9IHQudHJhbnNsaXRlcmF0ZSgiXHUwMTAxXHUwMDY5Iik7CisgICAgfQorICAgICovCisKKyAgICAvKgorICAgIE5vdGU6IFVuaWNvZGUgMy4yIGFkZGVkIG5ldyBIaXJhZ2FuYS9LYXRha2FuYSBjaGFyYWN0ZXJzOgorCiszMDk1Li4zMDk2ICAgIDsgMy4yICMgICBbMl0gSElSQUdBTkEgTEVUVEVSIFNNQUxMIEtBLi5ISVJBR0FOQSBMRVRURVIgU01BTEwgS0UKKzMwOUYuLjMwQTAgICAgOyAzLjIgIyAgIFsyXSBISVJBR0FOQSBESUdSQVBIIFlPUkkuLktBVEFLQU5BLUhJUkFHQU5BIERPVUJMRSBIWVBIRU4KKzMwRkYgICAgICAgICAgOyAzLjIgIyAgICAgICBLQVRBS0FOQSBESUdSQVBIIEtPVE8KKzMxRjAuLjMxRkYgICAgOyAzLjIgIyAgWzE2XSBLQVRBS0FOQSBMRVRURVIgU01BTEwgS1UuLktBVEFLQU5BIExFVFRFUiBTTUFMTCBSTworCisgICAgV2Ugd2lsbCBub3QgYWRkIHRoZW0gdG8gdGhlIHJ1bGVzIHVudGlsIHRoZXkgYXJlIG1vcmUgc3VwcG9ydGVkIChlLmcuIGluIGZvbnRzIG9uIFdpbmRvd3MpCisgICAgQSBidWcgaGFzIGJlZW4gZmlsZWQgdG8gcmVtaW5kIHVzIHRvIGRvIHRoaXM6ICMxOTc5LgorICAgICovCisKKyAgICBzdGF0aWMgU3RyaW5nIEtBVEFLQU5BID0gIltbWzprYXRha2FuYTpdW1x1MzBBMS1cdTMwRkFcdTMwRkNdXS1bXHUzMEZGXHUzMUYwLVx1MzFGRl1dIjsKKyAgICBzdGF0aWMgU3RyaW5nIEhJUkFHQU5BID0gIltbWzpoaXJhZ2FuYTpdW1x1MzA0MC1cdTMwOTRdXS1bXHUzMDk1LVx1MzA5Nlx1MzA5Ri1cdTMwQTBdXSI7CisgICAgc3RhdGljIFN0cmluZyBMRU5HVEggPSAiW1x1MzBGQ10iOworICAgIHN0YXRpYyBTdHJpbmcgSEFMRldJRFRIX0tBVEFLQU5BID0gIltcdUZGNjUtXHVGRjlEXSI7CisgICAgc3RhdGljIFN0cmluZyBLQVRBS0FOQV9JVEVSQVRJT04gPSAiW1x1MzBGRFx1MzBGRV0iOworICAgIHN0YXRpYyBTdHJpbmcgSElSQUdBTkFfSVRFUkFUSU9OID0gIltcdTMwOURcdTMwOUVdIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQWJicmV2aWF0ZWRVbmljb2RlU2V0SXRlcmF0b3IKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgc3RhdGljIGNsYXNzIEFiYnJldmlhdGVkVW5pY29kZVNldEl0ZXJhdG9yIGV4dGVuZHMgVW5pY29kZVNldEl0ZXJhdG9yIHsKKworICAgICAgICBwcml2YXRlIGJvb2xlYW4gYWJicmV2aWF0ZWQ7CisgICAgICAgIHByaXZhdGUgaW50IHBlclJhbmdlOworCisgICAgICAgIHB1YmxpYyBBYmJyZXZpYXRlZFVuaWNvZGVTZXRJdGVyYXRvcigpIHsKKyAgICAgICAgICAgIHN1cGVyKCk7CisgICAgICAgICAgICBhYmJyZXZpYXRlZCA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoVW5pY29kZVNldCBuZXdTZXQpIHsKKyAgICAgICAgICAgIHJlc2V0KG5ld1NldCwgZmFsc2UpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoVW5pY29kZVNldCBuZXdTZXQsIGJvb2xlYW4gYWJiKSB7CisgICAgICAgICAgICByZXNldChuZXdTZXQsIGFiYiwgMTAwKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KFVuaWNvZGVTZXQgbmV3U2V0LCBib29sZWFuIGFiYiwgaW50IGRlbnNpdHkpIHsKKyAgICAgICAgICAgIHN1cGVyLnJlc2V0KG5ld1NldCk7CisgICAgICAgICAgICBhYmJyZXZpYXRlZCA9IGFiYjsKKyAgICAgICAgICAgIHBlclJhbmdlID0gbmV3U2V0LmdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgICAgIGlmIChwZXJSYW5nZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcGVyUmFuZ2UgPSBkZW5zaXR5IC8gcGVyUmFuZ2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBsb2FkUmFuZ2UoaW50IG15UmFuZ2UpIHsKKyAgICAgICAgICAgIHN1cGVyLmxvYWRSYW5nZShteVJhbmdlKTsKKyAgICAgICAgICAgIGlmIChhYmJyZXZpYXRlZCAmJiAoZW5kRWxlbWVudCA+IG5leHRFbGVtZW50ICsgcGVyUmFuZ2UpKSB7CisgICAgICAgICAgICAgICAgZW5kRWxlbWVudCA9IG5leHRFbGVtZW50ICsgcGVyUmFuZ2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwdWJsaWMgdm9pZCBzaG93RWxhcHNlZChsb25nIHN0YXJ0LCBTdHJpbmcgbmFtZSkgeworICAgICAgICBkb3VibGUgZHVyID0gKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnQpIC8gMTAwMC4wOworICAgICAgICBsb2dsbihuYW1lICsgIiB0b29rICIgKyBkdXIgKyAiIHNlY29uZHMiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0S2FuYSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbmV3IFRlc3QoIkthdGFrYW5hLUhpcmFnYW5hIikKKyAgICAgICAgICAudGVzdChLQVRBS0FOQSwgIlsiICsgSElSQUdBTkEgKyBMRU5HVEggKyAiXSIsICJbIiArIEhBTEZXSURUSF9LQVRBS0FOQSArIExFTkdUSCArICJdIiwgdGhpcywgbmV3IExlZ2FsKCkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RLYW5hIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEhpcmFnYW5hKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tSGlyYWdhbmEiKQorICAgICAgICAgIC50ZXN0KCJbYS16QS1aXSIsIEhJUkFHQU5BLCBISVJBR0FOQV9JVEVSQVRJT04sIHRoaXMsIG5ldyBMZWdhbCgpKTsKKyAgICAgICAgc2hvd0VsYXBzZWQoc3RhcnQsICJUZXN0SGlyYWdhbmEiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0S2F0YWthbmEoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBsb25nIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIG5ldyBUZXN0KCJMYXRpbi1LYXRha2FuYSIpCisgICAgICAgICAgLnRlc3QoIlthLXpBLVpdIiwgS0FUQUtBTkEsICJbIiArIEtBVEFLQU5BX0lURVJBVElPTiArIEhBTEZXSURUSF9LQVRBS0FOQSArICJdIiwgdGhpcywgbmV3IExlZ2FsKCkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RLYXRha2FuYSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RKYW1vKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tSmFtbyIpCisgICAgICAgICAgICAudGVzdCgiW2EtekEtWl0iLCAiW1x1MTEwMC1cdTExMTIgXHUxMTYxLVx1MTE3NSBcdTExQTgtXHUxMUMyXSIsICIiLCB0aGlzLCBuZXcgTGVnYWxKYW1vKCkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RKYW1vIik7CisgICAgfQorCisvKgorICAgICAgICBTQmFzZSA9IDB4QUMwMCwgTEJhc2UgPSAweDExMDAsIFZCYXNlID0gMHgxMTYxLCBUQmFzZSA9IDB4MTFBNywKKyAgICAgICAgTENvdW50ID0gMTksIFZDb3VudCA9IDIxLCBUQ291bnQgPSAyOCwKKyAgICAgICAgTkNvdW50ID0gVkNvdW50ICogVENvdW50LCAgIC8vIDU4OAorICAgICAgICBTQ291bnQgPSBMQ291bnQgKiBOQ291bnQsICAgLy8gMTExNzIKKyAgICAgICAgTExpbWl0ID0gTEJhc2UgKyBMQ291bnQsICAgIC8vIDExMTMKKyAgICAgICAgVkxpbWl0ID0gVkJhc2UgKyBWQ291bnQsICAgIC8vIDExNzYKKyAgICAgICAgVExpbWl0ID0gVEJhc2UgKyBUQ291bnQsICAgIC8vIDExQzMKKyAgICAgICAgU0xpbWl0ID0gU0Jhc2UgKyBTQ291bnQ7ICAgIC8vIEQ3QTQKKyovCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SGFuZ3VsKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBUZXN0IHQgPSBuZXcgVGVzdCgiTGF0aW4tSGFuZ3VsIiwgNSk7CisgICAgICAgIGlmIChnZXRJbmNsdXNpb24oKSA8IDEwKSB0LnNldFBhaXJMaW1pdCgxMDAwKTsKKyAgICAgICAgdC50ZXN0KCJbYS16QS1aXSIsICJbXHVBQzAwLVx1RDdBNF0iLCAiIiwgdGhpcywgbmV3IExlZ2FsKCkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RIYW5ndWwiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEhhbigpIHRocm93cyBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uLCBGaWxlTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICB0cnl7CisgICAgICAgICAgICBVbmljb2RlU2V0IGV4ZW1wbGFycyA9IExvY2FsZURhdGEuZ2V0RXhlbXBsYXJTZXQobmV3IFVMb2NhbGUoInpoIiksMCk7CisgICAgICAgICAgICAvLyBjcmVhdGUgc3RyaW5nIHdpdGggYWxsIGNoYXJzCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihleGVtcGxhcnMpOyBpdC5uZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGIsaXQuY29kZXBvaW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSBiLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAvLyB0cmFuc2Zvcm0gd2l0aCBIYW4gdHJhbnNsaXQKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGhhbiA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJIYW4tTGF0aW4iKTsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSBoYW4udHJhbnNsaXRlcmF0ZShzb3VyY2UpOworICAgICAgICAgICAgLy8gbm93IHZlcmlmeSB0aGF0IHRoZXJlIGFyZSBubyBIYW4gY2hhcmFjdGVycyBsZWZ0CisgICAgICAgICAgICBVbmljb2RlU2V0IGFsbEhhbiA9IG5ldyBVbmljb2RlU2V0KCJbOmhhbjpdIik7CisgICAgICAgICAgICBhc3NlcnRGYWxzZSgiTm8gSGFuIG11c3QgYmUgbGVmdCBhZnRlciBIYW4tTGF0aW4gdHJhbnNsaXRlcmF0aW9uIixhbGxIYW4uY29udGFpbnNTb21lKHRhcmdldCkpOworICAgICAgICAgICAgLy8gY2hlY2sgdGhlIHBpbnlpbiB0cmFuc2xpdAorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgcG4gPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tTnVtZXJpY1BpbnlpbiIpOworICAgICAgICAgICAgU3RyaW5nIHRhcmdldDIgPSBwbi50cmFuc2xpdGVyYXRlKHRhcmdldCk7CisgICAgICAgICAgICAvLyB2ZXJpZnkgdGhhdCB0aGVyZSBhcmUgbm8gbWFya3MKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIG5mYyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJuZmMiKTsKKyAgICAgICAgICAgIFN0cmluZyBuZmNlZCA9IG5mYy50cmFuc2xpdGVyYXRlKHRhcmdldDIpOworICAgICAgICAgICAgVW5pY29kZVNldCBhbGxNYXJrcyA9IG5ldyBVbmljb2RlU2V0KCJbOm1hcms6XSIpOworICAgICAgICAgICAgYXNzZXJ0RmFsc2UoIk51bWVyaWNQaW55aW4gbXVzdCBjb250YWluIG5vIG1hcmtzIiwgYWxsTWFya3MuY29udGFpbnNTb21lKG5mY2VkKSk7CisgICAgICAgICAgICAvLyB2ZXJpZnkgcm91bmR0cmlwCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBucCA9IHBuLmdldEludmVyc2UoKTsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXQzID0gbnAudHJhbnNsaXRlcmF0ZSh0YXJnZXQpOworICAgICAgICAgICAgYm9vbGVhbiByb3VuZHRyaXBPSyA9IHRhcmdldDMuZXF1YWxzKHRhcmdldCk7CisgICAgICAgICAgICBhc3NlcnRUcnVlKCJOdW1lcmljUGlueWluIG11c3Qgcm91bmR0cmlwIiwgcm91bmR0cmlwT0spOworICAgICAgICAgICAgaWYgKCFyb3VuZHRyaXBPSykgeworICAgICAgICAgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9ICJudW1lcmljLXBpbnlpbi5sb2cudHh0IjsKKyAgICAgICAgICAgICAgICBQcmludFdyaXRlciBvdXQgPSBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICAgICAgICAgIG5ldyBCdWZmZXJlZFdyaXRlcigKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZW5hbWUpLCAiVVRGOCIpLCA0KjEwMjQpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ3JlYXRpbmcgbG9nIGZpbGUgIiArIG5ldyBGaWxlKGZpbGVuYW1lKS5nZXRBYnNvbHV0ZUZpbGUoKSk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIlBpbnlpbjogICAgICAgICAgICAgICAgIiArIHRhcmdldCk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIlBpbnlpbi1OdW1lcmljLVBpbnlpbjogIiArIHRhcmdldDIpOworICAgICAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgdGhlIGxvY2FsZSBkYXRhIGZvciBmZXRjaGluZyB0aGUgZXhlbXBsYXIgY2hhcmFjdGVycy4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTaW5nbGUoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tR3JlZWsiKTsKKyAgICAgICAgdC50cmFuc2xpdGVyYXRlKCJcdTAwNjFcdTAxMDFcdTAwNjkiKTsKKyAgICB9CisKKyAgICBTdHJpbmcgZ2V0R3JlZWtTZXQoKSB7CisgICAgICAgIC8vIFRpbWUgYm9tYgorICAgICAgICBpZiAoc2tpcElmQmVmb3JlSUNVKDMsNSkpIHsKKyAgICAgICAgICAgIC8vIFdlIHRlbXBvcmFyaWx5IGZpbHRlciBhZ2FpbnN0IFVuaWNvZGUgNC4xLCBidXQgd2Ugb25seSBkbyB0aGlzCisgICAgICAgICAgICAvLyBiZWZvcmUgdmVyc2lvbiAzLjUuCisgICAgICAgICAgICBsb2dsbigiVGVzdEdyZWVrIG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gcmVtb3ZlIGRlbGV0ZSB0aGUgc2VjdGlvbiBtYXJrZWQgWzpBZ2U9NC4wOl0gZmlsdGVyIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdEdyZWVrIG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gcmVtb3ZlIGRlbGV0ZSB0aGUgWzpBZ2U9NC4wOl0gZmlsdGVyICIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAKKyAgICAgICAgLy8gaXNJQ1UyOCgpID8gIltbXHUwMDNCXHUwMEI3WzpHcmVlazpdLVtcdTAzRDctXHUwM0VGXV0mWzpBZ2U9My4yOl1dIiA6CisgICAgICAgICAgICAiW1x1MDAzQlx1MDBCN1tbOkdyZWVrOl0mWzpMZXR0ZXI6XV0tWyIgKworICAgICAgICAgICAgIlx1MUQyNi1cdTFEMkEiICsgLy8gTCYgICBbNV0gR1JFRUsgTEVUVEVSIFNNQUxMIENBUElUQUwgR0FNTUEuLkdSRUVLIExFVFRFUiBTTUFMTCBDQVBJVEFMIFBTSQorICAgICAgICAgICAgIlx1MUQ1RC1cdTFENjEiICsgLy8gTG0gICBbNV0gTU9ESUZJRVIgTEVUVEVSIFNNQUxMIEJFVEEuLk1PRElGSUVSIExFVFRFUiBTTUFMTCBDSEkKKyAgICAgICAgICAgICJcdTFENjYtXHUxRDZBIiArIC8vIEwmICAgWzVdIEdSRUVLIFNVQlNDUklQVCBTTUFMTCBMRVRURVIgQkVUQS4uR1JFRUsgU1VCU0NSSVBUIFNNQUxMIExFVFRFUiBDSEkKKyAgICAgICAgICAgICJcdTAzRDctXHUwM0VGIiArIC8vIFxOe0dSRUVLIEtBSSBTWU1CT0x9Li5cTntDT1BUSUMgU01BTEwgTEVUVEVSIERFSX0KKyAgICAgICAgICAgICJdICYgWzpBZ2U9NC4wOl1dIjsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEdyZWVrKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tR3JlZWsiLCA1MCkKKyAgICAgICAgLnRlc3QoIlthLXpBLVpdIiwgZ2V0R3JlZWtTZXQoKSwKKyAgICAgICAgICAgICJbXHUwMEI1XHUwMzdBXHUwM0QwLVx1MDNGNVx1MDNGOV0iLCAvKiByb3VuZHRyaXAgZXhjbHVzaW9ucyAqLworICAgICAgICAgICAgdGhpcywgbmV3IExlZ2FsR3JlZWsodHJ1ZSkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RHcmVlayIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RHcmVla1VOR0VHTigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLUdyZWVrL1VOR0VHTiIpCisgICAgICAgICAgLnRlc3QoIlthLXpBLVpdIiwgZ2V0R3JlZWtTZXQoKSwKKyAgICAgICAgICAgICJbXHUwMEI1XHUwMzdBXHUwM0QwLVx1RkZGRntcdTAzOUNcdTAzQzB9XSIsIC8qIHJvdW5kdHJpcCBleGNsdXNpb25zICovCisgICAgICAgICAgICB0aGlzLCBuZXcgTGVnYWxHcmVlayhmYWxzZSkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RHcmVla1VOR0VHTiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RlbCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLWVsIikKKyAgICAgICAgICAudGVzdCgiW2EtekEtWl0iLCBnZXRHcmVla1NldCgpLAorICAgICAgICAgICAgIltcdTAwQjVcdTAzN0FcdTAzRDAtXHVGRkZGe1x1MDM5Q1x1MDNDMH1dIiwgLyogcm91bmR0cmlwIGV4Y2x1c2lvbnMgKi8KKyAgICAgICAgICAgIHRoaXMsIG5ldyBMZWdhbEdyZWVrKGZhbHNlKSk7CisgICAgICAgIHNob3dFbGFwc2VkKHN0YXJ0LCAiVGVzdGVsIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEN5cmlsbGljKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tQ3lyaWxsaWMiKQorICAgICAgICAgIC50ZXN0KCJbYS16QS1aXHUwMTEwXHUwMTExXHUwMkJBXHUwMkI5XSIsICJbXHUwNDAwLVx1MDQ1Rl0iLCBudWxsLCB0aGlzLCBuZXcgTGVnYWwoKSk7CisgICAgICAgIHNob3dFbGFwc2VkKHN0YXJ0LCAiVGVzdEN5cmlsbGljIik7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBBUkFCSUMgPSAiW1x1MDYwQ1x1MDYxQlx1MDYxRlx1MDYyMVx1MDYyNy1cdTA2M0FcdTA2NDEtXHUwNjU1XHUwNjYwLVx1MDY2Q1x1MDY3RVx1MDY4Nlx1MDY5OFx1MDZBNFx1MDZBRFx1MDZBRlx1MDZDQi1cdTA2Q0NcdTA2RjAtXHUwNkY5XSI7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QXJhYmljKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBuZXcgVGVzdCgiTGF0aW4tQXJhYmljIikKKyAgICAgICAgICAudGVzdCgiW2EtekEtWlx1MDJCRVx1MDJCRl0iLCBBUkFCSUMsICJbYS16QS1aXHUwMkJFXHUwMkJGXHUyMDdGXSIsIG51bGwsIHRoaXMsIG5ldyBMZWdhbCgpKTsgLy8KKyAgICAgICAgc2hvd0VsYXBzZWQoc3RhcnQsICJUZXN0QXJhYmljIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEhlYnJldygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIC8vICAgICAgVGltZSBib21iCisgICAgICAgIGlmIChza2lwSWZCZWZvcmVJQ1UoMyw1KSkgeworICAgICAgICAgICAgLy8gV2UgdGVtcG9yYXJpbHkgZmlsdGVyIGFnYWluc3QgVW5pY29kZSA0LjEsIGJ1dCB3ZSBvbmx5IGRvIHRoaXMKKyAgICAgICAgICAgIC8vIGJlZm9yZSB2ZXJzaW9uIDMuNS4KKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0SGVicmV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gcmVtb3ZlIGRlbGV0ZSB0aGUgc2VjdGlvbiBtYXJrZWQgWzpBZ2U9NC4wOl0gZmlsdGVyIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiVGVzdEhlYnJldyBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIHJlbW92ZSBkZWxldGUgdGhlIFs6QWdlPTQuMDpdIGZpbHRlciAiKTsKKyAgICAgICAgfQorICAgICAgICBsb25nIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIG5ldyBUZXN0KCJMYXRpbi1IZWJyZXciKQorICAgICAgICAgIC50ZXN0KCJbYS16QS1aXHUwMkJDXHUwMkJCXSIsICJbW1s6aGVicmV3Ol0tW1x1MDVCRFx1RkIwMC1cdUZCRkZdXSYgWzpBZ2U9NC4wOl1dIiwgIltcdTA1RjBcdTA1RjFcdTA1RjJdIiwgdGhpcywgbmV3IExlZ2FsSGVicmV3KCkpOworICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RIZWJyZXciKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGhhaSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbmV3IFRlc3QoIkxhdGluLVRoYWkiKQorICAgICAgICAgIC50ZXN0KCJbYS16QS1aXHUwMTQyXHUxRUNEXHUwMEU2XHUwMTMxXHUwMjY4XHUwMkNDXSIsCisgICAgICAgICAgICAgICAgIltcdTBFMDEtXHUwRTNBXHUwRTQwLVx1MEU1Ql0iLCAKKyAgICAgICAgICAgICAgICAiW2EtekEtWlx1MDE0Mlx1MUVDRFx1MDBFNlx1MDEzMVx1MDI2OFx1MDJCOVx1MDJDQ10iLAorICAgICAgICAgICAgICAgIG51bGwsIHRoaXMsIG5ldyBMZWdhbFRoYWkoKSk7CisgICAgICAgIHNob3dFbGFwc2VkKHN0YXJ0LCAiVGVzdFRoYWkiKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJbnRlci1JbmRpYyBUZXN0cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTGVnYWxJbmRpYyBleHRlbmRzIExlZ2FseworICAgICAgICBVbmljb2RlU2V0IHZvd2VsU2lnblNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisKKyAgICAgICAgcHVibGljIExlZ2FsSW5kaWMoKXsKKyAgICAgICAgICAgIHZvd2VsU2lnblNldC5hZGRBbGwobmV3IFVuaWNvZGVTZXQoIltcdTA5MDFcdTA5MDJcdTA5MDNcdTA5MDRcdTA5M2UtXHUwOTRjXHUwOTYyXHUwOTYzXSIpKTsgICAgICAgICAgICAgICAvKiBEZXZhbmFnYXJpICovCisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwOTgxXHUwOTgyXHUwOTgzXHUwOWJlLVx1MDljY1x1MDllMlx1MDllM1x1MDlEN10iKSk7ICAgICAgICAgLyogQmVuZ2FsaSAqLworICAgICAgICAgICAgdm93ZWxTaWduU2V0LmFkZEFsbChuZXcgVW5pY29kZVNldCgiW1x1MGEwMVx1MGEwMlx1MGEwM1x1MGEzZS1cdTBhNGNcdTBhNjJcdTBhNjNcdTBhNzBcdTBhNzFdIikpOyAgIC8qIEd1cm11a2hpICovCisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwYTgxXHUwYTgyXHUwYTgzXHUwYWJlLVx1MGFjY1x1MGFlMlx1MGFlM10iKSk7ICAgICAgICAgICAgICAgLyogR3VqYXJhdGkgKi8KKyAgICAgICAgICAgIHZvd2VsU2lnblNldC5hZGRBbGwobmV3IFVuaWNvZGVTZXQoIltcdTBiMDFcdTBiMDJcdTBiMDNcdTBiM2UtXHUwYjRjXHUwYjYyXHUwYjYzXHUwYjU2XHUwYjU3XSIpKTsgICAvKiBPcml5YSAqLworICAgICAgICAgICAgdm93ZWxTaWduU2V0LmFkZEFsbChuZXcgVW5pY29kZVNldCgiW1x1MGI4MVx1MGI4Mlx1MGI4M1x1MGJiZS1cdTBiY2NcdTBiZTJcdTBiZTNcdTBiZDddIikpOyAgICAgICAgIC8qIFRhbWlsICovCisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwYzAxXHUwYzAyXHUwYzAzXHUwYzNlLVx1MGM0Y1x1MGM2Mlx1MGM2M1x1MGM1NVx1MGM1Nl0iKSk7ICAgLyogVGVsdWd1ICovCisgICAgICAgICAgICB2b3dlbFNpZ25TZXQuYWRkQWxsKG5ldyBVbmljb2RlU2V0KCJbXHUwYzgxXHUwYzgyXHUwYzgzXHUwY2JlLVx1MGNjY1x1MGNlMlx1MGNlM1x1MGNkNVx1MGNkNl0iKSk7ICAgLyogS2FubmFkYSAqLworICAgICAgICAgICAgdm93ZWxTaWduU2V0LmFkZEFsbChuZXcgVW5pY29kZVNldCgiW1x1MGQwMVx1MGQwMlx1MGQwM1x1MGQzZS1cdTBkNGNcdTBkNjJcdTBkNjNcdTBkNTddIikpOyAgICAgICAgIC8qIE1hbGF5YWxhbSAqLworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGF2YWdyYWhhID0gIlx1MDkzZFx1MDliZFx1MGFiZFx1MGIzZFx1MGNiZCI7CisgICAgICAgIFN0cmluZyBudWt0YSA9ICJcdTA5M2NcdTA5YmNcdTBhM2NcdTBhYmNcdTBiM2NcdTBjYmMiOworICAgICAgICBTdHJpbmcgdmlyYW1hID0gIlx1MDk0ZFx1MDljZFx1MGE0ZFx1MGFjZFx1MGI0ZFx1MGJjZFx1MGM0ZFx1MGNjZFx1MGQ0ZCI7CisgICAgICAgIFN0cmluZyBzYW5za3JpdFN0cmVzc1NpZ25zID0gIlx1MDk1MVx1MDk1Mlx1MDk1M1x1MDk1NFx1MDk3ZCI7CisgICAgICAgIFN0cmluZyBjaGFuZHJhYmluZHUgPSAiXHUwOTAxXHUwOTgxXHUwQTgxXHUwYjAxXHUwYzAxIjsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXMoU3RyaW5nIHNvdXJjZVN0cmluZyl7CisgICAgICAgICAgICBpbnQgY3A9c291cmNlU3RyaW5nLmNoYXJBdCgwKTsKKworICAgICAgICAgICAgLy8gQSB2b3dlbCBzaWduIGNhbm5vdCBiZSB0aGUgZmlyc3QgY2hhcgorICAgICAgICAgICAgaWYodm93ZWxTaWduU2V0LmNvbnRhaW5zKGNwKSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfWVsc2UgaWYoYXZhZ3JhaGEuaW5kZXhPZihjcCkhPS0xKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZih2aXJhbWEuaW5kZXhPZihjcCkhPS0xKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZihudWt0YS5pbmRleE9mKGNwKSE9LTEpeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH1lbHNlIGlmKHNhbnNrcml0U3RyZXNzU2lnbnMuaW5kZXhPZihjcCkhPS0xKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9ZWxzZSBpZigoY2hhbmRyYWJpbmR1LmluZGV4T2YoY3ApIT0tMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIChzb3VyY2VTdHJpbmcubGVuZ3RoKCkgPjEgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b3dlbFNpZ25TZXQuY29udGFpbnMoc291cmNlU3RyaW5nLmNoYXJBdCgxKSkpKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBzdGF0aWMgU3RyaW5nIGxhdGluRm9ySW5kaWMgPSAiW1snLjAtOUEtWmEten5cdTAwQzAtXHUwMEM1XHUwMEM3LVx1MDBDRlx1MDBEMS1cdTAwRDZcdTAwRDktXHUwMEREIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDBFMC1cdTAwRTVcdTAwRTctXHUwMEVGXHUwMEYxLVx1MDBGNlx1MDBGOS1cdTAwRkRcdTAwRkYtXHUwMTBGIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDExMi1cdTAxMjVcdTAxMjgtXHUwMTMwXHUwMTM0LVx1MDEzN1x1MDEzOS1cdTAxM0VcdTAxNDMtXHUwMTQ4IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDE0Qy1cdTAxNTFcdTAxNTQtXHUwMTY1XHUwMTY4LVx1MDE3RVx1MDFBMC1cdTAxQTFcdTAxQUYtXHUwMUIwIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDFDRC1cdTAxRENcdTAxREUtXHUwMUUzXHUwMUU2LVx1MDFFRFx1MDFGMFx1MDFGNC1cdTAxRjVcdTAxRjgtXHUwMUZCIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDIwMC1cdTAyMUJcdTAyMUUtXHUwMjFGXHUwMjI2LVx1MDIzM1x1MDI5NFx1MDMwMy1cdTAzMDRcdTAzMDZcdTAzMTQtXHUwMzE1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MDMyNVx1MDQwRVx1MDQxOVx1MDQzOVx1MDQ1RVx1MDRDMS1cdTA0QzJcdTA0RDAtXHUwNEQxXHUwNEQ2LVx1MDRENyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTA0RTItXHUwNEUzXHUwNEVFLVx1MDRFRlx1MUUwMC1cdTFFOTlcdTFFQTAtXHUxRUY5XHUxRjAxXHUxRjAzXHUxRjA1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MUYwN1x1MUYwOVx1MUYwQlx1MUYwRFx1MUYwRlx1MUYxMVx1MUYxM1x1MUYxNVx1MUYxOVx1MUYxQlx1MUYxRFx1MUYyMSIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTFGMjNcdTFGMjVcdTFGMjdcdTFGMjlcdTFGMkJcdTFGMkRcdTFGMkZcdTFGMzFcdTFGMzNcdTFGMzVcdTFGMzdcdTFGMzkiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUxRjNCXHUxRjNEXHUxRjNGXHUxRjQxXHUxRjQzXHUxRjQ1XHUxRjQ5XHUxRjRCXHUxRjREXHUxRjUxXHUxRjUzXHUxRjU1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Rlx1MUY2MVx1MUY2M1x1MUY2NVx1MUY2N1x1MUY2OVx1MUY2Qlx1MUY2RCIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdTFGNkZcdTFGODFcdTFGODNcdTFGODVcdTFGODdcdTFGODlcdTFGOEJcdTFGOERcdTFGOEZcdTFGOTFcdTFGOTNcdTFGOTUiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHUxRjk3XHUxRjk5XHUxRjlCXHUxRjlEXHUxRjlGXHUxRkExXHUxRkEzXHUxRkE1XHUxRkE3XHUxRkE5XHUxRkFCXHUxRkFEIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MUZBRi1cdTFGQjFcdTFGQjgtXHUxRkI5XHUxRkQwLVx1MUZEMVx1MUZEOC1cdTFGRDlcdTFGRTAtXHUxRkUxXHUxRkU1IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1MUZFOC1cdTFGRTlcdTFGRUNcdTIxMkEtXHUyMTJCXHVFMDREXHVFMDY0XSIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItW1x1RTAwMC1cdUUwODAgXHUwMUUyXHUwMUUzXSYgW1s6bGF0aW46XVs6bWFyazpdXV0iOworCisgICAgcHVibGljIHZvaWQgVGVzdERldmFuYWdhcmlMYXRpbigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgaWYoc2tpcElmQmVmb3JlSUNVKDIsOCkpeworICAgICAgICAgICAgbmV3IFRlc3QoIkxhdGluLURFVkFOQUdBUkkiLCA1MCkKKyAgICAgICAgICAgICAgLnRlc3QobGF0aW5Gb3JJbmRpYywgIltbOkRldmFuYWdhcmk6XVtcdTA5NGRdW1x1MDk2NFx1MDk2NV0gJiBbOkFnZT0zLjI6XV0iLCAiW1x1MDk2NV0iLCB0aGlzLCBuZXcgTGVnYWxJbmRpYygpKTsKKworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIG5ldyBUZXN0KCJMYXRpbi1ERVZBTkFHQVJJIiwgNTApCisgICAgICAgICAgICAgIC50ZXN0KGxhdGluRm9ySW5kaWMsICJbWzpEZXZhbmFnYXJpOl1bXHUwOTRkXVtcdTA5NjRcdTA5NjVdXSIsICJbXHUwOTY1XHUwOTA0XSIsIHRoaXMsIG5ldyBMZWdhbEluZGljKCkpOworCisgICAgICAgIH0KKyAgICAgICAgc2hvd0VsYXBzZWQoc3RhcnQsICJUZXN0RGV2YW5hZ2FyaUxhdGluIik7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFtdW10gaW50ZXJJbmRpY0FycmF5PSBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiQkVOR0FMSS1ERVZBTkFHQVJJIiwKKyAgICAgICAgICAgICJbOkJFTkdBTEk6XSIsICJbOkRldmFuYWdhcmk6XSIsCisgICAgICAgICAgICAgICAgIltcdTA5MDRcdTA5NTEtXHUwOTU0XHUwOTQzLVx1MDk0OVx1MDk0YVx1MDk2Mlx1MDk2M1x1MDkwRFx1MDkwZVx1MDkxMVx1MDkxMlx1MDkyOVx1MDkzM1x1MDkzNFx1MDkzNVx1MDk1MFx1MDk1OFx1MDk1OVx1MDk1YVx1MDk1Ylx1MDk1ZVx1MDk3ZF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJERVZBTkFHQVJJLUJFTkdBTEkiLAorICAgICAgICAgICAiWzpEZXZhbmFnYXJpOl0iLCAiWzpCRU5HQUxJOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTA5RDdcdTA5MERcdTA5MGVcdTA5MTFcdTA5MTJcdTA5MjlcdTA5MzNcdTA5MzRcdTA5MzVcdTA5NTBcdTA5NThcdTA5NTlcdTA5NWFcdTA5NWJcdTA5NWVcdTA5ZjBcdTA5ZjFcdTA5ZjItXHUwOWZhXHUwOWNlXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVVJNVUtISS1ERVZBTkFHQVJJIiwKKyAgICAgICAgICAiWzpHVVJNVUtISTpdIiwgIls6RGV2YW5hZ2FyaTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MDkwNFx1MDkwMlx1MDkzNlx1MDkzM1x1MDk1MS1cdTA5NTRcdTA5MDJcdTA5MDNcdTA5NDMtXHUwOTQ5XHUwOTRhXHUwOTYyXHUwOTYzXHUwOTBCXHUwOTBDXHUwOTBEXHUwOTBlXHUwOTExXHUwOTEyXHUwOTM0XHUwOTM3XHUwOTNEXHUwOTUwXHUwOTYwXHUwOTYxXHUwOTdkXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkRFVkFOQUdBUkktR1VSTVVLSEkiLAorICAgICAgICAgICAiWzpEZXZhbmFnYXJpOl0iLCAiWzpHVVJNVUtISTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwQTAyXHUwOTQ2XHUwQTVDXHUwOTUxLVx1MDk1NFx1MEE3MFx1MEE3MVx1MDkwQlx1MDkwQ1x1MDkwRFx1MDkwZVx1MDkxMVx1MDkxMlx1MDkzNFx1MDkzN1x1MDkzRFx1MDk1MFx1MDk2MFx1MDk2MVx1MGE3Mlx1MGE3M1x1MGE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VKQVJBVEktREVWQU5BR0FSSSIsCisgICAgICAgICAgIls6R1VKQVJBVEk6XSIsICJbOkRldmFuYWdhcmk6XSIsCisgICAgICAgICAgICAgICAgIltcdTA5MDRcdTA5NDZcdTA5NEFcdTA5NjJcdTA5NjNcdTA5NTEtXHUwOTU0XHUwOTYxXHUwOTBjXHUwOTBlXHUwOTEyXHUwOTdkXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkRFVkFOQUdBUkktR1VKQVJBVEkiLAorICAgICAgICAgICAiWzpEZXZhbmFnYXJpOl0iLCAiWzpHVUpBUkFUSTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwOTUxLVx1MDk1NFx1MDk2MVx1MDkwY1x1MDkwZVx1MDkxMl0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiT1JJWUEtREVWQU5BR0FSSSIsCisgICAgICAgICAgIls6T1JJWUE6XSIsICJbOkRldmFuYWdhcmk6XSIsCisgICAgICAgICAgICAgICAgIltcdTA5MDRcdTA5MTJcdTA5MTFcdTA5MERcdTA5MGVcdTA5MzFcdTA5NDMtXHUwOTRhXHUwOTYyXHUwOTYzXHUwOTUxLVx1MDk1NFx1MDk1MFx1MDk3ZF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJERVZBTkFHQVJJLU9SSVlBIiwKKyAgICAgICAgICAgIls6RGV2YW5hZ2FyaTpdIiwgIls6T1JJWUE6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGI1Zlx1MGI1Nlx1MGI1N1x1MGI3MFx1MGI3MVx1MDk1MFx1MDkwRFx1MDkwZVx1MDkxMlx1MDkxMVx1MDkzMV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVGFtaWwtREVWQU5BR0FSSSIsCisgICAgICAgICAgIls6dGFtaWw6XSIsICJbOkRldmFuYWdhcmk6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MDkwMVx1MDkwNFx1MDkzY1x1MDk0My1cdTA5NGFcdTA5NTEtXHUwOTU0XHUwOTYyXHUwOTYzXHUwOTBCXHUwOTBDXHUwOTBEXHUwOTExXHUwOTE2XHUwOTE3XHUwOTE4XHUwOTFCXHUwOTFEXHUwOTIwXHUwOTIxXHUwOTIyXHUwOTI1XHUwOTI2XHUwOTI3XHUwOTJCXHUwOTJDXHUwOTJEXHUwOTM2XHUwOTNkXHUwOTUwW1x1MDk1OC1cdTA5NjFdXHUwOTdkXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiREVWQU5BR0FSSS1UYW1pbCIsCisgICAgICAgICAgICJbOkRldmFuYWdhcmk6XSIsICJbOnRhbWlsOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBiZDddIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRlbHVndS1ERVZBTkFHQVJJIiwKKyAgICAgICAgICAiWzp0ZWx1Z3U6XSIsICJbOkRldmFuYWdhcmk6XSIsCisgICAgICAgICAgICAgICAgIltcdTA5MDRcdTA5M2NcdTA5NTBcdTA5NDVcdTA5NDlcdTA5NTEtXHUwOTU0XHUwOTYyXHUwOTYzXHUwOTBEXHUwOTExXHUwOTNkXHUwOTI5XHUwOTM0W1x1MDk1OC1cdTA5NWZdXHUwOTdkXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkRFVkFOQUdBUkktVEVMVUdVIiwKKyAgICAgICAgICAgIls6RGV2YW5hZ2FyaTpdIiwgIls6VEVMVUdVOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBjNTVcdTBjNTZcdTA5NTBcdTA5MERcdTA5MTFcdTA5M2RcdTA5MjlcdTA5MzRbXHUwOTU4LVx1MDk1Zl1dIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIktBTk5BREEtREVWQU5BR0FSSSIsCisgICAgICAgICAgIls6S0FOTkFEQTpdIiwgIls6RGV2YW5hZ2FyaTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MDkwMVx1MDkwNFx1MDk0Nlx1MDk1MFx1MDk0NVx1MDk0OVx1MDk1MS1cdTA5NTRcdTA5NjJcdTA5NjNcdTA5NTBcdTA5MERcdTA5MTFcdTA5M2RcdTA5MjlcdTA5MzRbXHUwOTU4LVx1MDk1Zl1cdTA5N2RdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiREVWQU5BR0FSSS1LQU5OQURBIiwKKyAgICAgICAgICAgIls6RGV2YW5hZ2FyaTpdIiwgIls6S0FOTkFEQTpdIiwKKyAgICAgICAgICAgICAgICAgICJbe1x1MGNiMFx1MGNiY317XHUwY2IzXHUwY2JjfVx1MGNkZVx1MGNkNVx1MGNkNlx1MDk1MFx1MDkwRFx1MDkxMVx1MDkzZFx1MDkyOVx1MDkzNFtcdTA5NTgtXHUwOTVmXV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTUFMQVlBTEFNLURFVkFOQUdBUkkiLAorICAgICAgICAgICJbOk1BTEFZQUxBTTpdIiwgIls6RGV2YW5hZ2FyaTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MDkwMVx1MDkwNFx1MDk0YVx1MDk0Ylx1MDk0Y1x1MDkzY1x1MDk1MFx1MDk0NFx1MDk0NVx1MDk0OVx1MDk1MS1cdTA5NTRcdTA5NjJcdTA5NjNcdTA5MERcdTA5MTFcdTA5M2RcdTA5MjlcdTA5MzRbXHUwOTU4LVx1MDk1Zl1cdTA5N2RdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiREVWQU5BR0FSSS1NQUxBWUFMQU0iLAorICAgICAgICAgICAiWzpEZXZhbmFnYXJpOl0iLCAiWzpNQUxBWUFMQU06XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGQ0Y1x1MGQ1N1x1MDk1MFx1MDkwRFx1MDkxMVx1MDkzZFx1MDkyOVx1MDkzNFtcdTA5NTgtXHUwOTVmXV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VSTVVLSEktQkVOR0FMSSIsCisgICAgICAgICAgIls6R1VSTVVLSEk6XSIsICJbOkJFTkdBTEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTA5ODJcdTA5YjZcdTA5ZTJcdTA5ZTNcdTA5YzNcdTA5YzRcdTA5ZDdcdTA5OEJcdTA5OENcdTA5QjdcdTA5RTBcdTA5RTFcdTA5RjBcdTA5RjFcdTA5ZjItXHUwOWZhXHUwOWNlXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkJFTkdBTEktR1VSTVVLSEkiLAorICAgICAgICAgICAiWzpCRU5HQUxJOl0iLCAiWzpHVVJNVUtISTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwQTAyXHUwYTVjXHUwYTQ3XHUwYTcwXHUwYTcxXHUwQTMzXHUwQTM1XHUwQTU5XHUwQTVBXHUwQTVCXHUwQTVFXHUwQTcyXHUwQTczXHUwQTc0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVUpBUkFUSS1CRU5HQUxJIiwKKyAgICAgICAgICAiWzpHVUpBUkFUSTpdIiwgIls6QkVOR0FMSTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MDlkN1x1MDllMlx1MDllM1x1MDk4Y1x1MDllMVx1MDlmMFx1MDlmMVx1MDlmMi1cdTA5ZmFcdTA5Y2VdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiQkVOR0FMSS1HVUpBUkFUSSIsCisgICAgICAgICAgICJbOkJFTkdBTEk6XSIsICJbOkdVSkFSQVRJOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBBODJcdTBhODNcdTBBYzlcdTBBYzVcdTBhYzdcdTBBOERcdTBBOTFcdTBBQjNcdTBBQjVcdTBBQkRcdTBBRDBdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk9SSVlBLUJFTkdBTEkiLAorICAgICAgICAgICJbOk9SSVlBOl0iLCAiWzpCRU5HQUxJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwOWM0XHUwOWUyXHUwOWUzXHUwOWYwXHUwOWYxXHUwOWYyLVx1MDlmYVx1MDljZV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJCRU5HQUxJLU9SSVlBIiwKKyAgICAgICAgICAgIls6QkVOR0FMSTpdIiwgIls6T1JJWUE6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGIzNVx1MGI3MVx1MGI1Zlx1MGI1Nlx1MGIzM1x1MGIzZF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVGFtaWwtQkVOR0FMSSIsCisgICAgICAgICAgIls6dGFtaWw6XSIsICJbOkJFTkdBTEk6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MDk4MVx1MDliY1x1MDljM1x1MDljNFx1MDllMlx1MDllM1x1MDlmMFx1MDlmMVx1MDk4Qlx1MDk4Q1x1MDk5Nlx1MDk5N1x1MDk5OFx1MDk5Qlx1MDk5RFx1MDlBMFx1MDlBMVx1MDlBMlx1MDlBNVx1MDlBNlx1MDlBN1x1MDlBQlx1MDlBQ1x1MDlBRFx1MDlCNlx1MDlEQ1x1MDlERFx1MDlERlx1MDlFMFx1MDlFMVx1MDlmMi1cdTA5ZmFcdTA5Y2VdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJCRU5HQUxJLVRhbWlsIiwKKyAgICAgICAgICAgIls6QkVOR0FMSTpdIiwgIls6dGFtaWw6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGJjNlx1MGJjN1x1MGJjYVx1MEI4RVx1MEI5Mlx1MEJBOVx1MEJCMVx1MEJCM1x1MEJCNFx1MEJCNV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVGVsdWd1LUJFTkdBTEkiLAorICAgICAgICAgICJbOnRlbHVndTpdIiwgIls6QkVOR0FMSTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MDllMlx1MDllM1x1MDliY1x1MDlkN1x1MDlmMFx1MDlmMVx1MDlkY1x1MDlkZFx1MDlkZlx1MDlmMi1cdTA5ZmFcdTA5Y2VdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiQkVOR0FMSS1URUxVR1UiLAorICAgICAgICAgICAiWzpCRU5HQUxJOl0iLCAiWzpURUxVR1U6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGM1NVx1MGM1Nlx1MGM0N1x1MGM0Nlx1MGM0YVx1MEMwRVx1MEMxMlx1MEMzMVx1MEMzM1x1MEMzNV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiS0FOTkFEQS1CRU5HQUxJIiwKKyAgICAgICAgICAiWzpLQU5OQURBOl0iLCAiWzpCRU5HQUxJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwOTgxXHUwOWUyXHUwOWUzXHUwOWJjXHUwOWQ3XHUwOWYwXHUwOWYxXHUwOWRjXHUwOWRkXHUwOWRmXHUwOWYyLVx1MDlmYVx1MDljZV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJCRU5HQUxJLUtBTk5BREEiLAorICAgICAgICAgICAiWzpCRU5HQUxJOl0iLCAiWzpLQU5OQURBOl0iLAorICAgICAgICAgICAgICAgICAgIlt7XHUwY2IwXHUwY2JjfXtcdTBjYjNcdTBjYmN9XHUwY2M2XHUwY2NhXHUwY2Q1XHUwY2Q2XHUwY2M3XHUwQzhFXHUwQzkyXHUwQ0IxXHUwY2IzXHUwY2I1XHUwY2RlXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJNQUxBWUFMQU0tQkVOR0FMSSIsCisgICAgICAgICAgIls6TUFMQVlBTEFNOl0iLCAiWzpCRU5HQUxJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwOTgxXHUwOWUyXHUwOWUzXHUwOWJjXHUwOWM0XHUwOWYwXHUwOWYxXHUwOWRjXHUwOWRkXHUwOWRmXHUwOWYyLVx1MDlmYVx1MDljZV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJCRU5HQUxJLU1BTEFZQUxBTSIsCisgICAgICAgICAgICJbOkJFTkdBTEk6XSIsICJbOk1BTEFZQUxBTTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwZDQ2XHUwZDRhXHUwZDQ3XHUwZDMxLVx1MGQzNVx1MGQwZVx1MGQxMl0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VKQVJBVEktR1VSTVVLSEkiLAorICAgICAgICAgICJbOkdVSkFSQVRJOl0iLCAiWzpHVVJNVUtISTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MEEwMlx1MGFiM1x1MGFiNlx1MEE3MFx1MGE3MVx1MGE4Mlx1MGE4M1x1MGFjM1x1MGFjNFx1MGFjNVx1MGFjOVx1MGE1Y1x1MGE3Mlx1MGE3M1x1MGE3NFx1MGE4Ylx1MGE4ZFx1MGE5MVx1MGFiZF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVVJNVUtISS1HVUpBUkFUSSIsCisgICAgICAgICAgICJbOkdVUk1VS0hJOl0iLCAiWzpHVUpBUkFUSTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYTVjXHUwQTcwXHUwYTcxXHUwYTcyXHUwYTczXHUwYTc0XHUwYTgyXHUwYTgzXHUwYThiXHUwYThjXHUwYThkXHUwYTkxXHUwYWIzXHUwYWI2XHUwYWI3XHUwYWJkXHUwYWMzXHUwYWM0XHUwYWM1XHUwYWM5XHUwYWQwXHUwYWUwXHUwYWUxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJPUklZQS1HVVJNVUtISSIsCisgICAgICAgICAgIls6T1JJWUE6XSIsICJbOkdVUk1VS0hJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwQTAyXHUwYTVjXHUwYTIxXHUwYTQ3XHUwYTcxXHUwYjAyXHUwYjAzXHUwYjMzXHUwYjM2XHUwYjQzXHUwYjU2XHUwYjU3XHUwQjBCXHUwQjBDXHUwQjM3XHUwQjNEXHUwQjVGXHUwQjYwXHUwQjYxXHUwYTM1XHUwYTcyXHUwYTczXHUwYTc0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVUk1VS0hJLU9SSVlBIiwKKyAgICAgICAgICAgIls6R1VSTVVLSEk6XSIsICJbOk9SSVlBOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBhNzFcdTBiMDJcdTBiMDNcdTBiMzNcdTBiMzZcdTBiNDNcdTBiNTZcdTBiNTdcdTBCMEJcdTBCMENcdTBCMzdcdTBCM0RcdTBCNUZcdTBCNjBcdTBCNjFcdTBiNzBcdTBiNzFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRBTUlMLUdVUk1VS0hJIiwKKyAgICAgICAgICAiWzpUQU1JTDpdIiwgIls6R1VSTVVLSEk6XSIsCisgICAgICAgICAgICAgICAgIltcdTBBMDFcdTBBMDJcdTBhMzNcdTBhMzZcdTBhM2NcdTBhNzBcdTBhNzFcdTBhNDdcdTBBMTZcdTBBMTdcdTBBMThcdTBBMUJcdTBBMURcdTBBMjBcdTBBMjFcdTBBMjJcdTBBMjVcdTBBMjZcdTBBMjdcdTBBMkJcdTBBMkNcdTBBMkRcdTBBNTlcdTBBNUFcdTBBNUJcdTBBNUNcdTBBNUVcdTBBNzJcdTBBNzNcdTBBNzRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VSTVVLSEktVEFNSUwiLAorICAgICAgICAgICAiWzpHVVJNVUtISTpdIiwgIls6VEFNSUw6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGI4Mlx1MGJjNlx1MGJjYVx1MGJkN1x1MGJiN1x1MGJiM1x1MGI4M1x1MEI4RVx1MEI5Mlx1MEJBOVx1MEJCMVx1MEJCNFx1MGJiNl0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVEVMVUdVLUdVUk1VS0hJIiwKKyAgICAgICAgICAiWzpURUxVR1U6XSIsICJbOkdVUk1VS0hJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwQTAyXHUwYTMzXHUwYTM2XHUwYTNjXHUwYTcwXHUwYTcxXHUwQTU5XHUwQTVBXHUwQTVCXHUwQTVDXHUwQTVFXHUwQTcyXHUwQTczXHUwQTc0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVUk1VS0hJLVRFTFVHVSIsCisgICAgICAgICAgICJbOkdVUk1VS0hJOl0iLCAiWzpURUxVR1U6XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGMwMlx1MGMwM1x1MGMzM1x1MGMzNlx1MGM0NFx1MGM0M1x1MGM0Nlx1MGM0YVx1MGM1Nlx1MGM1NVx1MEMwQlx1MEMwQ1x1MEMwRVx1MEMxMlx1MEMzMVx1MEMzN1x1MEM2MFx1MEM2MV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIktBTk5BREEtR1VSTVVLSEkiLAorICAgICAgICAgICJbOktBTk5BREE6XSIsICJbOkdVUk1VS0hJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwQTAxXHUwQTAyXHUwYTMzXHUwYTM2XHUwYTNjXHUwYTcwXHUwYTcxXHUwQTU5XHUwQTVBXHUwQTVCXHUwQTVDXHUwQTVFXHUwQTcyXHUwQTczXHUwQTc0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVUk1VS0hJLUtBTk5BREEiLAorICAgICAgICAgICAiWzpHVVJNVUtISTpdIiwgIls6S0FOTkFEQTpdIiwKKyAgICAgICAgICAgICAgICAgICJbe1x1MGNiMFx1MGNiY317XHUwY2IzXHUwY2JjfVx1MGM4Mlx1MGM4M1x1MGNiM1x1MGNiNlx1MGNjNFx1MGNjM1x1MGNjNlx1MGNjYVx1MGNkNVx1MGNkNlx1MEM4Qlx1MEM4Q1x1MEM4RVx1MEM5Mlx1MENCMVx1MENCN1x1MGNiZFx1MENFMFx1MENFMVx1MGNkZV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTUFMQVlBTEFNLUdVUk1VS0hJIiwKKyAgICAgICAgICAiWzpNQUxBWUFMQU06XSIsICJbOkdVUk1VS0hJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwQTAxXHUwQTAyXHUwYTRiXHUwYTRjXHUwYTMzXHUwYTM2XHUwYTNjXHUwYTcwXHUwYTcxXHUwQTU5XHUwQTVBXHUwQTVCXHUwQTVDXHUwQTVFXHUwQTcyXHUwQTczXHUwQTc0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVUk1VS0hJLU1BTEFZQUxBTSIsCisgICAgICAgICAgICJbOkdVUk1VS0hJOl0iLCAiWzpNQUxBWUFMQU06XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGQwMlx1MGQwM1x1MGQzM1x1MGQzNlx1MGQ0M1x1MGQ0Nlx1MGQ0YVx1MGQ0Y1x1MGQ1N1x1MEQwQlx1MEQwQ1x1MEQwRVx1MEQxMlx1MEQzMVx1MEQzNFx1MEQzN1x1MEQ2MFx1MEQ2MV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiR1VKQVJBVEktT1JJWUEiLAorICAgICAgICAgICJbOkdVSkFSQVRJOl0iLCAiWzpPUklZQTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MGI1Nlx1MGI1N1x1MEIwQ1x1MEI1Rlx1MEI2MVx1MGI3MFx1MGI3MV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJPUklZQS1HVUpBUkFUSSIsCisgICAgICAgICAgICJbOk9SSVlBOl0iLCAiWzpHVUpBUkFUSTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwQWM0XHUwQWM1XHUwQWM5XHUwQWM3XHUwQThEXHUwQTkxXHUwQUI1XHUwQWQwXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUQU1JTC1HVUpBUkFUSSIsCisgICAgICAgICAgIls6VEFNSUw6XSIsICJbOkdVSkFSQVRJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwQTgxXHUwYThjXHUwYWJjXHUwYWMzXHUwQWM0XHUwQWM1XHUwQWM5XHUwQWM3XHUwQThCXHUwQThEXHUwQTkxXHUwQTk2XHUwQTk3XHUwQTk4XHUwQTlCXHUwQTlEXHUwQUEwXHUwQUExXHUwQUEyXHUwQUE1XHUwQUE2XHUwQUE3XHUwQUFCXHUwQUFDXHUwQUFEXHUwQUI2XHUwQUJEXHUwQUQwXHUwQUUwXHUwQUUxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVSkFSQVRJLVRBTUlMIiwKKyAgICAgICAgICAgIls6R1VKQVJBVEk6XSIsICJbOlRBTUlMOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBCYzZcdTBCY2FcdTBCZDdcdTBCOEVcdTBCOTJcdTBCQTlcdTBCQjFcdTBCQjRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRFTFVHVS1HVUpBUkFUSSIsCisgICAgICAgICAgIls6VEVMVUdVOl0iLCAiWzpHVUpBUkFUSTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MGFiY1x1MEFjNVx1MEFjOVx1MEE4RFx1MEE5MVx1MEFCRFx1MEFkMF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJHVUpBUkFUSS1URUxVR1UiLAorICAgICAgICAgICAiWzpHVUpBUkFUSTpdIiwgIls6VEVMVUdVOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBjNDZcdTBjNGFcdTBjNTVcdTBjNTZcdTBDMENcdTBDMEVcdTBDMTJcdTBDMzFcdTBDNjFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIktBTk5BREEtR1VKQVJBVEkiLAorICAgICAgICAgICJbOktBTk5BREE6XSIsICJbOkdVSkFSQVRJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwQTgxXHUwYWJjXHUwQWM1XHUwQWM5XHUwQThEXHUwQTkxXHUwQUJEXHUwQWQwXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVSkFSQVRJLUtBTk5BREEiLAorICAgICAgICAgICAiWzpHVUpBUkFUSTpdIiwgIls6S0FOTkFEQTpdIiwKKyAgICAgICAgICAgICAgICAgICJbe1x1MGNiMFx1MGNiY317XHUwY2IzXHUwY2JjfVx1MGNjNlx1MGNjYVx1MGNkNVx1MGNkNlx1MEM4Q1x1MEM4RVx1MEM5Mlx1MENCMVx1MENERVx1MENFMV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTUFMQVlBTEFNLUdVSkFSQVRJIiwKKyAgICAgICAgICAiWzpNQUxBWUFMQU06XSIsICJbOkdVSkFSQVRJOl0iLAorICAgICAgICAgICAgICAgICJbXHUwQTgxXHUwYWM0XHUwYWNiXHUwYWNjXHUwYWJjXHUwQWM1XHUwQWM5XHUwQThEXHUwQTkxXHUwQUJEXHUwQWQwXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkdVSkFSQVRJLU1BTEFZQUxBTSIsCisgICAgICAgICAgICJbOkdVSkFSQVRJOl0iLCAiWzpNQUxBWUFMQU06XSIsCisgICAgICAgICAgICAgICAgICAiW1x1MGQ0Nlx1MGQ0YVx1MGQ0Y1x1MGQ1NVx1MGQ1N1x1MEQwQ1x1MEQwRVx1MEQxMlx1MEQzMVx1MEQzNFx1MEQ2MV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVEFNSUwtT1JJWUEiLAorICAgICAgICAgICJbOlRBTUlMOl0iLCAiWzpPUklZQTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MEIwMVx1MGIzY1x1MGI0M1x1MGI1Nlx1MEIwQlx1MEIwQ1x1MEIxNlx1MEIxN1x1MEIxOFx1MEIxQlx1MEIxRFx1MEIyMFx1MEIyMVx1MEIyMlx1MEIyNVx1MEIyNlx1MEIyN1x1MEIyQlx1MEIyQ1x1MEIyRFx1MEIzNlx1MEIzRFx1MEI1Q1x1MEI1RFx1MEI1Rlx1MEI2MFx1MEI2MVx1MGI3MFx1MGI3MV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJPUklZQS1UQU1JTCIsCisgICAgICAgICAgICJbOk9SSVlBOl0iLCAiWzpUQU1JTDpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYmM2XHUwYmNhXHUwYmM3XHUwQjhFXHUwQjkyXHUwQkE5XHUwQkIxXHUwQkI0XHUwQkI1XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJURUxVR1UtT1JJWUEiLAorICAgICAgICAgICJbOlRFTFVHVTpdIiwgIls6T1JJWUE6XSIsCisgICAgICAgICAgICAgICAgIltcdTBiM2NcdTBiNTdcdTBiNTZcdTBCM0RcdTBCNUNcdTBCNURcdTBCNUZcdTBiNzBcdTBiNzFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiT1JJWUEtVEVMVUdVIiwKKyAgICAgICAgICAgIls6T1JJWUE6XSIsICJbOlRFTFVHVTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwYzQ0XHUwYzQ2XHUwYzRhXHUwYzU1XHUwYzQ3XHUwQzBFXHUwQzEyXHUwQzMxXHUwQzM1XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJLQU5OQURBLU9SSVlBIiwKKyAgICAgICAgICAiWzpLQU5OQURBOl0iLCAiWzpPUklZQTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MEIwMVx1MGIzY1x1MGI1N1x1MEIzRFx1MEI1Q1x1MEI1RFx1MEI1Rlx1MGI3MFx1MGI3MV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJPUklZQS1LQU5OQURBIiwKKyAgICAgICAgICAgIls6T1JJWUE6XSIsICJbOktBTk5BREE6XSIsCisgICAgICAgICAgICAgICAgICAiW3tcdTBjYjBcdTBjYmN9e1x1MGNiM1x1MGNiY31cdTBjYzRcdTBjYzZcdTBjY2FcdTBjZDVcdTBjYzdcdTBDOEVcdTBDOTJcdTBDQjFcdTBDQjVcdTBDREVdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk1BTEFZQUxBTS1PUklZQSIsCisgICAgICAgICAgIls6TUFMQVlBTEFNOl0iLCAiWzpPUklZQTpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MEIwMVx1MGIzY1x1MGI1Nlx1MEIzRFx1MEI1Q1x1MEI1RFx1MEI1Rlx1MGI3MFx1MGI3MV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJPUklZQS1NQUxBWUFMQU0iLAorICAgICAgICAgICAiWzpPUklZQTpdIiwgIls6TUFMQVlBTEFNOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBENDdcdTBENDZcdTBENGFcdTBEMEVcdTBEMTJcdTBEMzFcdTBEMzRcdTBEMzVdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRFTFVHVS1UQU1JTCIsCisgICAgICAgICAgIls6VEVMVUdVOl0iLCAiWzpUQU1JTDpdIiwKKyAgICAgICAgICAgICAgICAiW1x1MGJkN1x1MGJhOVx1MGJiNF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJUQU1JTC1URUxVR1UiLAorICAgICAgICAgICAiWzpUQU1JTDpdIiwgIls6VEVMVUdVOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBDMDFcdTBjNDNcdTBjNDRcdTBjNDZcdTBjNDdcdTBjNTVcdTBjNTZcdTBjNjZcdTBDMEJcdTBDMENcdTBDMTZcdTBDMTdcdTBDMThcdTBDMUJcdTBDMURcdTBDMjBcdTBDMjFcdTBDMjJcdTBDMjVcdTBDMjZcdTBDMjdcdTBDMkJcdTBDMkNcdTBDMkRcdTBDMzZcdTBDNjBcdTBDNjFdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIktBTk5BREEtVEFNSUwiLAorICAgICAgICAgICJbOktBTk5BREE6XSIsICJbOlRBTUlMOl0iLAorICAgICAgICAgICAgICAgICJbXHUwYmQ3XHUwYmM2XHUwYmE5XHUwYmI0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRBTUlMLUtBTk5BREEiLAorICAgICAgICAgICAiWzpUQU1JTDpdIiwgIls6S0FOTkFEQTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwY2MzXHUwY2M0XHUwY2M2XHUwY2M3XHUwY2Q1XHUwY2Q2XHUwQzhCXHUwQzhDXHUwQzk2XHUwQzk3XHUwQzk4XHUwQzlCXHUwQzlEXHUwQ0EwXHUwQ0ExXHUwQ0EyXHUwQ0E1XHUwQ0E2XHUwQ0E3XHUwQ0FCXHUwQ0FDXHUwQ0FEXHUwQ0I2XHUwY2JjXHUwY2JkXHUwQ0RFXHUwQ0UwXHUwQ0UxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJNQUxBWUFMQU0tVEFNSUwiLAorICAgICAgICAgICJbOk1BTEFZQUxBTTpdIiwgIls6VEFNSUw6XSIsCisgICAgICAgICAgICAgICAgIltcdTBiYTldIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiVEFNSUwtTUFMQVlBTEFNIiwKKyAgICAgICAgICAgIls6VEFNSUw6XSIsICJbOk1BTEFZQUxBTTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwZDQzXHUwZDEyXHUwRDBCXHUwRDBDXHUwRDE2XHUwRDE3XHUwRDE4XHUwRDFCXHUwRDFEXHUwRDIwXHUwRDIxXHUwRDIyXHUwRDI1XHUwRDI2XHUwRDI3XHUwRDJCXHUwRDJDXHUwRDJEXHUwRDM2XHUwRDYwXHUwRDYxXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJLQU5OQURBLVRFTFVHVSIsCisgICAgICAgICAgIls6S0FOTkFEQTpdIiwgIls6VEVMVUdVOl0iLAorICAgICAgICAgICAgICAgICJbXHUwQzAxXHUwYzNmXHUwYzQ2XHUwYzQ4XHUwYzRhXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRFTFVHVS1LQU5OQURBIiwKKyAgICAgICAgICAgIls6VEVMVUdVOl0iLCAiWzpLQU5OQURBOl0iLAorICAgICAgICAgICAgICAgICAgIltcdTBjYzhcdTBjZDVcdTBjZDZcdTBDREVcdTBjYmNcdTBjYmRdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIk1BTEFZQUxBTS1URUxVR1UiLAorICAgICAgICAgICJbOk1BTEFZQUxBTTpdIiwgIls6VEVMVUdVOl0iLAorICAgICAgICAgICAgICAgICJbXHUwQzAxXHUwYzQ0XHUwYzRhXHUwYzRjXHUwYzRiXHUwYzU1XHUwYzU2XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIlRFTFVHVS1NQUxBWUFMQU0iLAorICAgICAgICAgICAiWzpURUxVR1U6XSIsICJbOk1BTEFZQUxBTTpdIiwKKyAgICAgICAgICAgICAgICAgICJbXHUwZDRjXHUwZDU3XHUwRDM0XSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJNQUxBWUFMQU0tS0FOTkFEQSIsCisgICAgICAgICAgIls6TUFMQVlBTEFNOl0iLCAiWzpLQU5OQURBOl0iLAorICAgICAgICAgICAgICAgICJbXHUwY2JjXHUwY2JkXHUwY2M0XHUwY2M2XHUwY2NhXHUwY2NjXHUwY2NiXHUwY2Q1XHUwY2Q2XHUwY0RlXSIsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkxhdGluLUJlbmdhbGkiLAorICAgICAgICAgICAgbGF0aW5Gb3JJbmRpYywgIltbOkJlbmdhbGk6XVtcdTA5NjRcdTA5NjVdXSIsCisgICAgICAgICAgICAgICAiW1x1MDk2NVx1MDlmMC1cdTA5ZmFcdTA5Y2VdIiwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTGF0aW4tR3VybXVraGkiLAorICAgICAgICAgICBsYXRpbkZvckluZGljLCAiW1s6R3VybXVraGk6XVtcdTA5NjRcdTA5NjVdXSIsCisgICAgICAgICAgICAgICAiW1x1MGEwMVx1MGEwMlx1MDk2NVx1MGE3Mlx1MGE3M1x1MGE3NF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJMYXRpbi1HdWphcmF0aSIsCisgICAgICAgICAgICBsYXRpbkZvckluZGljLCAiW1s6R3VqYXJhdGk6XVtcdTA5NjRcdTA5NjVdXSIsCisgICAgICAgICAgICAgICAiW1x1MDk2NV0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJMYXRpbi1Pcml5YSIsCisgICAgICAgICAgICBsYXRpbkZvckluZGljLCAiW1s6T3JpeWE6XVtcdTA5NjRcdTA5NjVdXSIsCisgICAgICAgICAgICAgICAiW1x1MDk2NVx1MGI3MF0iLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJMYXRpbi1UYW1pbCIsCisgICAgICAgICAgICBsYXRpbkZvckluZGljLCAiWzpUYW1pbDpdIiwKKyAgICAgICAgICAgICAgIG51bGwsIC8qcm91bmR0cmlwIGV4Y2x1c2lvbnMqLworICAgICAgICAgICAgICAgIH0sCisgICAgICAgIG5ldyBTdHJpbmcgW10geyAgIkxhdGluLVRlbHVndSIsCisgICAgICAgICAgICBsYXRpbkZvckluZGljLCAiWzpUZWx1Z3U6XSIsCisgICAgICAgICAgICAgICBudWxsLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICBuZXcgU3RyaW5nIFtdIHsgICJMYXRpbi1LYW5uYWRhIiwKKyAgICAgICAgICAgIGxhdGluRm9ySW5kaWMsICJbOkthbm5hZGE6XSIsCisgICAgICAgICAgICAgICBudWxsLCAvKnJvdW5kdHJpcCBleGNsdXNpb25zKi8KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgbmV3IFN0cmluZyBbXSB7ICAiTGF0aW4tTWFsYXlhbGFtIiwKKyAgICAgICAgICAgbGF0aW5Gb3JJbmRpYywgIls6TWFsYXlhbGFtOl0iLAorICAgICAgICAgICAgICAgbnVsbCwgLypyb3VuZHRyaXAgZXhjbHVzaW9ucyovCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgfTsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RJbnRlckluZGljKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbG9uZyBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBpbnQgbnVtID0gaW50ZXJJbmRpY0FycmF5Lmxlbmd0aDsKKyAgICAgICAgaWYgKGlzUXVpY2soKSkgeworICAgICAgICAgICAgbG9nbG4oIlRlc3Rpbmcgb25seSA1IG9mICIrIGludGVySW5kaWNBcnJheS5sZW5ndGgrIiBTa2lwcGluZyByZXN0ICh1c2UgLWUgZm9yIGV4aGF1c3RpdmUpIik7CisgICAgICAgICAgICBudW0gPSA1OworICAgICAgICB9CisgICAgICAgIGZvcihpbnQgaT0wOyBpPG51bTtpKyspeworICAgICAgICAgICBsb2dsbigiVGVzdGluZyAiICsgaW50ZXJJbmRpY0FycmF5W2ldWzBdICsgIiBhdCBpbmRleCAiICsgaSAgICk7CisgICAgICAgICAgIGlmKHNraXBJZkJlZm9yZUlDVSgyLDgpKXsKKyAgICAgICAgICAgICAgIG5ldyBUZXN0KGludGVySW5kaWNBcnJheVtpXVswXSwgNTApCisgICAgICAgICAgICAgICAgICAgIC50ZXN0KCJbIiArIGludGVySW5kaWNBcnJheVtpXVsxXSsiICYgWzpBZ2U9My4yOl1dIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlsiICsgaW50ZXJJbmRpY0FycmF5W2ldWzJdKyIgJiBbOkFnZT0zLjI6XV0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlckluZGljQXJyYXlbaV1bM10sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsIG5ldyBMZWdhbEluZGljKCkpOworICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgIG5ldyBUZXN0KGludGVySW5kaWNBcnJheVtpXVswXSwgNTApCisgICAgICAgICAgICAgICAgICAgIC50ZXN0KGludGVySW5kaWNBcnJheVtpXVsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJJbmRpY0FycmF5W2ldWzJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlckluZGljQXJyYXlbaV1bM10sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsIG5ldyBMZWdhbEluZGljKCkpOworICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICBzaG93RWxhcHNlZChzdGFydCwgIlRlc3RJbnRlckluZGljIik7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBFbmQgSW5kaWMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBMZWdhbCB7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzKFN0cmluZyBzb3VyY2VTdHJpbmcpIHtyZXR1cm4gdHJ1ZTt9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBMZWdhbEphbW8gZXh0ZW5kcyBMZWdhbCB7CisgICAgICAgIC8vIGFueSBpbml0aWFsIG11c3QgYmUgZm9sbG93ZWQgYnkgYSBtZWRpYWwgKG9yIGluaXRpYWwpCisgICAgICAgIC8vIGFueSBtZWRpYWwgbXVzdCBmb2xsb3cgYW4gaW5pdGlhbCAob3IgbWVkaWFsKQorICAgICAgICAvLyBhbnkgZmluYWwgbXVzdCBmb2xsb3cgYSBtZWRpYWwgKG9yIGZpbmFsKQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzKFN0cmluZyBzb3VyY2VTdHJpbmcpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaW50IHQ7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZVN0cmluZywgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjb21wLmxlbmd0aCgpOyArK2kpIHsgLy8gZG9uJ3Qgd29ycnkgYWJvdXQgc3Vycm9nYXRlcworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGdldFR5cGUoZGVjb21wLmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgdCA9IGdldFR5cGUoZGVjb21wLmNoYXJBdChpKzEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ICE9IDAgJiYgdCAhPSAxKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgdCA9IGdldFR5cGUoZGVjb21wLmNoYXJBdChpLTEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ICE9IDAgJiYgdCAhPSAxKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgdCA9IGdldFR5cGUoZGVjb21wLmNoYXJBdChpLTEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ICE9IDEgJiYgdCAhPSAyKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0VHlwZShjaGFyIGMpIHsKKyAgICAgICAgICAgIGlmICgnXHUxMTAwJyA8PSBjICYmIGMgPD0gJ1x1MTExMicpIHJldHVybiAwOworICAgICAgICAgICAgZWxzZSBpZiAoJ1x1MTE2MScgPD0gYyAmJiBjICA8PSAnXHUxMTc1JykgcmV0dXJuIDE7CisgICAgICAgICAgICBlbHNlIGlmICgnXHUxMUE4JyA8PSBjICYmIGMgIDw9ICdcdTExQzInKSByZXR1cm4gMjsKKyAgICAgICAgICAgIHJldHVybiAtMTsgLy8gb3RoZXIKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vc3RhdGljIEJyZWFrSXRlcmF0b3IgdGhhaUJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UobmV3IExvY2FsZSgidGgiLCAiVEgiKSk7CisgICAgLy8gYW55dGhpbmcgaXMgbGVnYWwgZXhjZXB0IHdvcmQgZW5kaW5nIHdpdGggTG9naWNhbC1vcmRlci1leGNlcHRpb24KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIExlZ2FsVGhhaSBleHRlbmRzIExlZ2FsIHsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXMoU3RyaW5nIHNvdXJjZVN0cmluZykgeworICAgICAgICAgICAgaWYgKHNvdXJjZVN0cmluZy5sZW5ndGgoKSA9PSAwKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBzb3VyY2VTdHJpbmcuY2hhckF0KHNvdXJjZVN0cmluZy5sZW5ndGgoKSAtIDEpOyAvLyBkb24ndCB3b3JyeSBhYm91dCBzdXJyb2dhdGVzLgorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5MT0dJQ0FMX09SREVSX0VYQ0VQVElPTikpIHJldHVybiBmYWxzZTsKKworCisgICAgICAgICAgICAvLyBkaXNhbGxvdyBhbnl0aGluZyB3aXRoIGEgd29yZGJyZWFrIGJldHdlZW4KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICBpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQoc291cmNlU3RyaW5nKSA8PSAxKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHRoYWlCcmVhay5zZXRUZXh0KHNvdXJjZVN0cmluZyk7CisgICAgICAgICAgICBmb3IgKGludCBwb3MgPSB0aGFpQnJlYWsuZmlyc3QoKTsgcG9zICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsgcG9zID0gdGhhaUJyZWFrLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChwb3MgPiAwICYmIHBvcyA8IHNvdXJjZVN0cmluZy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNraXBwaW5nICIgKyBVdGlsaXR5LmVzY2FwZShzb3VyY2VTdHJpbmcpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICovCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGFueXRoaW5nIGlzIGxlZ2FsIGV4Y2VwdCB0aGF0IEZpbmFsIGxldHRlcnMgY2FuJ3QgYmUgZm9sbG93ZWQgYnkgbGV0dGVyOyBOb25GaW5hbCBtdXN0IGJlCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBMZWdhbEhlYnJldyBleHRlbmRzIExlZ2FsIHsKKyAgICAgICAgc3RhdGljIFVuaWNvZGVTZXQgRklOQUwgPSBuZXcgVW5pY29kZVNldCgiW1x1MDVEQVx1MDVERFx1MDVERlx1MDVFM1x1MDVFNV0iKTsKKyAgICAgICAgc3RhdGljIFVuaWNvZGVTZXQgTk9OX0ZJTkFMID0gbmV3IFVuaWNvZGVTZXQoIltcdTA1REJcdTA1REVcdTA1RTBcdTA1RTRcdTA1RTZdIik7CisgICAgICAgIHN0YXRpYyBVbmljb2RlU2V0IExFVFRFUiA9IG5ldyBVbmljb2RlU2V0KCJbOmxldHRlcjpdIik7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzKFN0cmluZyBzb3VyY2VTdHJpbmcpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VTdHJpbmcubGVuZ3RoKCkgPT0gMCkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAvLyBkb24ndCB3b3JyeSBhYm91dCBzdXJyb2dhdGVzLgorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2VTdHJpbmcubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBzb3VyY2VTdHJpbmcuY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGNoYXIgbmV4dCA9IGkrMSA9PSBzb3VyY2VTdHJpbmcubGVuZ3RoKCkgPyAnXHUwMDAwJyA6IHNvdXJjZVN0cmluZy5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKEZJTkFMLmNvbnRhaW5zKGNoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoTEVUVEVSLmNvbnRhaW5zKG5leHQpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChOT05fRklOQUwuY29udGFpbnMoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghTEVUVEVSLmNvbnRhaW5zKG5leHQpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTGVnYWxHcmVlayBleHRlbmRzIExlZ2FsIHsKKworICAgICAgICBib29sZWFuIGZ1bGw7CisKKyAgICAgICAgcHVibGljIExlZ2FsR3JlZWsoYm9vbGVhbiBmdWxsKSB7CisgICAgICAgICAgICB0aGlzLmZ1bGwgPSBmdWxsOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIGZpbmFsIGNoYXIgSU9UQV9TVUJTQ1JJUFQgPSAnXHUwMzQ1JzsKKyAgICAgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgYnJlYXRoaW5nID0gbmV3IFVuaWNvZGVTZXQoIltcXHUwMzEzXFx1MDMxNCddIik7CisgICAgICAgIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IHZhbGlkU2Vjb25kVm93ZWwgPSBuZXcgVW5pY29kZVNldCgiW1xcdTAzQzVcXHUwM0I5XFx1MDNBNVxcdTAzOTldIik7CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzVm93ZWwoY2hhciBjKSB7CisgICAgICAgICAgICByZXR1cm4gIlx1MDNCMVx1MDNCNVx1MDNCN1x1MDNCOVx1MDNCRlx1MDNDNVx1MDNDOVx1MDM5MVx1MDM5NVx1MDM5N1x1MDM5OVx1MDM5Rlx1MDNBNVx1MDNBOSIuaW5kZXhPZihjKSA+PSAwOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzUmhvKGNoYXIgYykgeworICAgICAgICAgICAgcmV0dXJuICJcdTAzQzFcdTAzQTEiLmluZGV4T2YoYykgPj0gMDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzKFN0cmluZyBzb3VyY2VTdHJpbmcpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZVN0cmluZywgTm9ybWFsaXplci5ORkQpOworCisgICAgICAgICAgICAgICAgLy8gbW9kZXJuIGlzIHNpbXBsZXI6IGRvbid0IGNhcmUgYWJvdXQgYW55dGhpbmcgYnV0IGEgZ3JhdmUKKyAgICAgICAgICAgICAgICBpZiAoIWZ1bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9pZiAoc291cmNlU3RyaW5nLmVxdWFscygiXHUwMzlDXHUwM0MwIikpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZWNvbXAubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjID0gZGVjb21wLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGV4Y2x1ZGUgYWxsIHRoZSBhY2NlbnRzCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXHUwMzEzJyB8fCBjID09ICdcdTAzMTQnIHx8IGMgPT0gJ1x1MDMwMCcgfHwgYyA9PSAnXHUwMzAyJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGMgPT0gJ1x1MDM0MicgfHwgYyA9PSAnXHUwMzQ1JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIExlZ2FsIGZ1bGwgR3JlZWsgaGFzIGJyZWF0aGluZyBtYXJrcyBJRkYgdGhlcmUgaXMgYSB2b3dlbCBvciBSSE8gYXQgdGhlIHN0YXJ0CisgICAgICAgICAgICAgICAgLy8gSUYgaXQgaGFzIHRoZW0sIGl0IGhhcyBleGFjdGx5IG9uZS4KKyAgICAgICAgICAgICAgICAvLyBJRiBpdCBzdGFydHMgd2l0aCBhIFJITywgdGhlbiB0aGUgYnJlYXRoaW5nIG1hcmsgbXVzdCBjb21lIGJlZm9yZSB0aGUgc2Vjb25kIGxldHRlci4KKyAgICAgICAgICAgICAgICAvLyBJRiBpdCBzdGFydHMgd2l0aCBhIHZvd2VsLCB0aGVuIGl0IG11c3QgYmVmb3JlIHRoZSB0aGlyZCBsZXR0ZXIuCisgICAgICAgICAgICAgICAgLy8gIGl0IHdpbGwgb25seSBjb21lIGFmdGVyIHRoZSBzZWNvbmQgaWYgb2YgdGhlIGZvcm1hdCBbdm93ZWxdIFtubyBpb3RhIHN1YnNjcmlwdCFdIFt1cHNpbG9uIG9yIGlvdGFdCisgICAgICAgICAgICAgICAgLy8gU2luY2UgdGhlcmUgYXJlIG5vIHN1cnJvZ2F0ZXMgaW4gZ3JlZWssIGRvbid0IHdvcnJ5IGFib3V0IHRoZW0KKworICAgICAgICAgICAgICAgIGJvb2xlYW4gZmlyc3RJc1Zvd2VsID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBmaXJzdElzUmhvID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBub0xldHRlcllldCA9IHRydWU7CisgICAgICAgICAgICAgICAgaW50IGJyZWF0aGluZ0NvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgbGV0dGVyQ291bnQgPSAwOworICAgICAgICAgICAgICAgIC8vaW50IGJyZWF0aGluZ1Bvc2l0aW9uID0gLTE7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY29tcC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IGRlY29tcC5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzTGV0dGVyKGMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2xldHRlckNvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0SXNWb3dlbCAmJiAhdmFsaWRTZWNvbmRWb3dlbC5jb250YWlucyhjKSAmJiBicmVhdGhpbmdDb3VudCA9PSAwKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobm9MZXR0ZXJZZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBub0xldHRlcllldCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0SXNWb3dlbCA9IGlzVm93ZWwoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RJc1JobyA9IGlzUmhvKGMpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0SXNSaG8gJiYgbGV0dGVyQ291bnQgPT0gMiAmJiBicmVhdGhpbmdDb3VudCA9PSAwKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gSU9UQV9TVUJTQ1JJUFQgJiYgZmlyc3RJc1Zvd2VsICYmIGJyZWF0aGluZ0NvdW50ID09IDApIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJyZWF0aGluZy5jb250YWlucyhjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAvLyBicmVhdGhpbmdQb3NpdGlvbiA9IGk7CisgICAgICAgICAgICAgICAgICAgICAgICArK2JyZWF0aGluZ0NvdW50OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGZpcnN0SXNWb3dlbCB8fCBmaXJzdElzUmhvKSByZXR1cm4gYnJlYXRoaW5nQ291bnQgPT0gMTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYnJlYXRoaW5nQ291bnQgPT0gMDsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHQuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiICIgKyB0LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgVGVzdCB7CisKKyAgICAgICAgUHJpbnRXcml0ZXIgb3V0OworCisgICAgICAgIHByaXZhdGUgU3RyaW5nIHRyYW5zbGl0ZXJhdG9ySUQ7CisgICAgICAgIHByaXZhdGUgaW50IGVycm9yTGltaXQgPSA1MDA7CisgICAgICAgIHByaXZhdGUgaW50IGVycm9yQ291bnQgPSAwOworICAgICAgICBwcml2YXRlIGludCBwYWlyTGltaXQgID0gMHgxMDAwMDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZGVuc2l0eSA9IDEwMDsKKyAgICAgICAgVW5pY29kZVNldCBzb3VyY2VSYW5nZTsKKyAgICAgICAgVW5pY29kZVNldCB0YXJnZXRSYW5nZTsKKyAgICAgICAgVW5pY29kZVNldCB0b1NvdXJjZTsKKyAgICAgICAgVW5pY29kZVNldCB0b1RhcmdldDsKKyAgICAgICAgVW5pY29kZVNldCByb3VuZHRyaXBFeGNsdXNpb25zOworCisgICAgICAgIFJvdW5kVHJpcFRlc3QgbG9nOworICAgICAgICBMZWdhbCBsZWdhbFNvdXJjZTsKKyAgICAgICAgVW5pY29kZVNldCBiYWRDaGFyYWN0ZXJzOworCisgICAgICAgIC8qCisgICAgICAgICAqIGNyZWF0ZSBhIHRlc3QgZm9yIHRoZSBnaXZlbiBzY3JpcHQgdHJhbnNsaXRlcmF0b3IuCisgICAgICAgICAqLworICAgICAgICBUZXN0KFN0cmluZyB0cmFuc2xpdGVyYXRvcklEKSB7CisgICAgICAgICAgICB0aGlzKHRyYW5zbGl0ZXJhdG9ySUQsIDEwMCk7CisgICAgICAgIH0KKworICAgICAgICBUZXN0KFN0cmluZyB0cmFuc2xpdGVyYXRvcklELCBpbnQgZGVucykgeworICAgICAgICAgICAgdGhpcy50cmFuc2xpdGVyYXRvcklEID0gdHJhbnNsaXRlcmF0b3JJRDsKKyAgICAgICAgICAgIHRoaXMuZGVuc2l0eSA9IGRlbnM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXRFcnJvckxpbWl0KGludCBsaW1pdCkgeworICAgICAgICAgICAgZXJyb3JMaW1pdCA9IGxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0UGFpckxpbWl0KGludCBsaW1pdCkgeworICAgICAgICAgICAgcGFpckxpbWl0ID0gbGltaXQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBBZGRlZCB0byBkbyBiZXR0ZXIgZXF1YWxpdHkgY2hlY2suCisKKyAgICAgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzU2FtZShTdHJpbmcgYSwgU3RyaW5nIGIpIHsKKyAgICAgICAgICAgIGlmIChhLmVxdWFscyhiKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBpZiAoYS5lcXVhbHNJZ25vcmVDYXNlKGIpICYmIGlzQ2FtZWwoYSkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgYSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGEsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIGIgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShiLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICBpZiAoYS5lcXVhbHMoYikpIHJldHVybiB0cnVlOworICAgICAgICAgICAgaWYgKGEuZXF1YWxzSWdub3JlQ2FzZShiKSAmJiBpc0NhbWVsKGEpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgIHB1YmxpYyBib29sZWFuIGluY2x1ZGVzU29tZShVbmljb2RlU2V0IHNldCwgU3RyaW5nIGEpIHsKKyAgICAgICAgICAgIGludCBjcDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYS5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoYSwgaSk7CisgICAgICAgICAgICAgICAgaWYgKHNldC5jb250YWlucyhjcCkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgICovCisKKyAgICAgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzQ2FtZWwoU3RyaW5nIGEpIHsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJDYW1lbFRlc3QiKTsKKyAgICAgICAgICAgIC8vIHNlZSBpZiBzdHJpbmcgaXMgb2YgdGhlIGZvcm0gYUI7IGUuZy4gbG93ZXIsIHRoZW4gdXBwZXIgb3IgdGl0bGUKKyAgICAgICAgICAgIGludCBjcDsKKyAgICAgICAgICAgIGJvb2xlYW4gaGF2ZUxvd2VyID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGEubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KGEsIGkpOworICAgICAgICAgICAgICAgIGludCB0ID0gVUNoYXJhY3Rlci5nZXRUeXBlKGNwKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiXHQiICsgdCArICIgIiArIEludGVnZXIudG9TdHJpbmcoY3AsMTYpICsgIiAiICsgVUNoYXJhY3Rlci5nZXROYW1lKGNwKSk7CisgICAgICAgICAgICAgICAgc3dpdGNoICh0KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2hhcmFjdGVyLlVQUEVSQ0FTRV9MRVRURVI6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGF2ZUxvd2VyKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIENoYXJhY3Rlci5USVRMRUNBU0VfTEVUVEVSOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVMb3dlcikgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkcm9wIHRocm91Z2gsIHNpbmNlIHNlY29uZCBsZXR0ZXIgaXMgbG93ZXIuCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2hhcmFjdGVyLkxPV0VSQ0FTRV9MRVRURVI6CisgICAgICAgICAgICAgICAgICAgICAgICBoYXZlTG93ZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkZBTFNFIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBva0FueXdheSA9IG5ldyBVbmljb2RlU2V0KCJbXls6TGV0dGVyOl1dIik7CisgICAgICAgIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IG5ldmVyT2sgPSBuZXcgVW5pY29kZVNldCgiWzpPdGhlcjpdIik7CisKKyAgICAgICAgcHVibGljIHZvaWQgdGVzdChTdHJpbmcgc291cmNlUmFuZ2UsIFN0cmluZyB0YXJnZXRSYW5nZSwKKyAgICAgICAgICBTdHJpbmcgcm91bmR0cmlwRXhjbHVzaW9ucywgUm91bmRUcmlwVGVzdCBsb2csIExlZ2FsIGxlZ2FsU291cmNlKQorICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIHRlc3Qoc291cmNlUmFuZ2UsIHRhcmdldFJhbmdlLCBzb3VyY2VSYW5nZSwgcm91bmR0cmlwRXhjbHVzaW9ucywgbG9nLCBsZWdhbFNvdXJjZSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogV2lsbCB0ZXN0IAorICAgICAgICAgKiB0aGF0IGV2ZXJ5dGhpbmcgaW4gc291cmNlUmFuZ2UgbWFwcyB0byB0YXJnZXRSYW5nZSwKKyAgICAgICAgICogdGhhdCBldmVyeXRoaW5nIGluIHRhcmdldFJhbmdlIG1hcHMgdG8gYmFja3RvU291cmNlUmFuZ2UKKyAgICAgICAgICogdGhhdCBldmVyeXRoaW5nIHJvdW5kdHJpcHMgZnJvbSB0YXJnZXQgLT4gc291cmNlIC0+IHRhcmdldCwgZXhjZXB0IHJvdW5kdHJpcEV4Y2VwdGlvbnMKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHRlc3QoU3RyaW5nIHNvdXJjZVJhbmdlLCBTdHJpbmcgdGFyZ2V0UmFuZ2UsIFN0cmluZyBiYWNrdG9Tb3VyY2VSYW5nZSwKKyAgICAgICAgICBTdHJpbmcgcm91bmR0cmlwRXhjbHVzaW9ucywgUm91bmRUcmlwVGVzdCBsb2csIExlZ2FsIGxlZ2FsU291cmNlKQorICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uIHsKKworICAgICAgICAgICAgdGhpcy5sZWdhbFNvdXJjZSA9IGxlZ2FsU291cmNlOworICAgICAgICAgICAgdGhpcy5zb3VyY2VSYW5nZSA9IG5ldyBVbmljb2RlU2V0KHNvdXJjZVJhbmdlKTsKKyAgICAgICAgICAgIHRoaXMuc291cmNlUmFuZ2UucmVtb3ZlQWxsKG5ldmVyT2spOworCisgICAgICAgICAgICB0aGlzLnRhcmdldFJhbmdlID0gbmV3IFVuaWNvZGVTZXQodGFyZ2V0UmFuZ2UpOworICAgICAgICAgICAgdGhpcy50YXJnZXRSYW5nZS5yZW1vdmVBbGwobmV2ZXJPayk7CisKKyAgICAgICAgICAgIHRoaXMudG9Tb3VyY2UgPSBuZXcgVW5pY29kZVNldChiYWNrdG9Tb3VyY2VSYW5nZSk7CisgICAgICAgICAgICB0aGlzLnRvU291cmNlLmFkZEFsbChva0FueXdheSk7CisKKyAgICAgICAgICAgIHRoaXMudG9UYXJnZXQgPSBuZXcgVW5pY29kZVNldCh0YXJnZXRSYW5nZSk7CisgICAgICAgICAgICB0aGlzLnRvVGFyZ2V0LmFkZEFsbChva0FueXdheSk7CisKKyAgICAgICAgICAgIGlmIChyb3VuZHRyaXBFeGNsdXNpb25zICE9IG51bGwgJiYgcm91bmR0cmlwRXhjbHVzaW9ucy5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICB0aGlzLnJvdW5kdHJpcEV4Y2x1c2lvbnMgPSBuZXcgVW5pY29kZVNldChyb3VuZHRyaXBFeGNsdXNpb25zKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHRoaXMucm91bmR0cmlwRXhjbHVzaW9ucyA9IG5ldyBVbmljb2RlU2V0KCk7IC8vIGVtcHR5CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRoaXMubG9nID0gbG9nOworCisgICAgICAgICAgICBsb2cubG9nbG4oVXRpbGl0eS5lc2NhcGUoIlNvdXJjZTogICIgKyB0aGlzLnNvdXJjZVJhbmdlKSk7CisgICAgICAgICAgICBsb2cubG9nbG4oVXRpbGl0eS5lc2NhcGUoIlRhcmdldDogICIgKyB0aGlzLnRhcmdldFJhbmdlKSk7CisgICAgICAgICAgICBsb2cubG9nbG4oVXRpbGl0eS5lc2NhcGUoIkV4Y2x1ZGU6ICIgKyB0aGlzLnJvdW5kdHJpcEV4Y2x1c2lvbnMpKTsKKyAgICAgICAgICAgIGlmIChsb2cuaXNRdWljaygpKSBsb2cubG9nbG4oIkFiYnJldmlhdGVkIFRlc3QiKTsKKworICAgICAgICAgICAgYmFkQ2hhcmFjdGVycyA9IG5ldyBVbmljb2RlU2V0KCJbOm90aGVyOl0iKTsKKworICAgICAgICAgICAgLy8gbWFrZSBhIFVURi04IG91dHB1dCBmaWxlIHdlIGNhbiByZWFkIHdpdGggYSBicm93c2VyCisKKyAgICAgICAgICAgIC8vIG5vdGU6IGNoZWNrIHRoYXQgZXZlcnkgdHJhbnNsaXRlcmF0b3IgdHJhbnNsaXRlcmF0ZXMgdGhlIG51bGwgc3RyaW5nIGNvcnJlY3RseSEKKworICAgICAgICAvLyB7ZGxmfSByZW9yZ2FuaXplIHNvIGNhbiBydW4gdGVzdCBpbiBwcm90ZWN0ZWQgc2VjdXJpdHkgZW52aXJvbm1lbnQKKy8vICAgICAgICAgICAgICBTdHJpbmcgbG9nRmlsZU5hbWUgPSAidGVzdF8iICsgdHJhbnNsaXRlcmF0b3JJRC5yZXBsYWNlKCcvJywgJ18nKSArICIuaHRtbCI7CisKKy8vICAgICAgICAgICAgICBGaWxlIGxmID0gbmV3IEZpbGUobG9nRmlsZU5hbWUpOworLy8gICAgICAgICAgICAgIGxvZy5sb2dsbigiQ3JlYXRpbmcgbG9nIGZpbGUgIiArIGxmLmdldEFic29sdXRlRmlsZSgpKTsKKworLy8gICAgICAgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcihuZXcgQnVmZmVyZWRXcml0ZXIobmV3IE91dHB1dFN0cmVhbVdyaXRlcigKKy8vICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0obG9nRmlsZU5hbWUpLCAiVVRGOCIpLCA0KjEwMjQpKTsKKworICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYmFzdCA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcihuZXcgQnVmZmVyZWRXcml0ZXIobmV3IE91dHB1dFN0cmVhbVdyaXRlcigKKyAgICAgICAgICAgICAgICAgICAgICBiYXN0LCAiVVRGOCIpLCA0KjEwMjQpKTsKKyAgICAgICAgICAgIC8vb3V0LndyaXRlKCdcdUZGRUYnKTsgICAgLy8gQk9NCisgICAgICAgICAgICBvdXQucHJpbnRsbigiPCFET0NUWVBFIEhUTUwgUFVCTElDIFwiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTlwiPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxIVE1MPjxIRUFEPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxNRVRBIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLThcIiBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZT48L0hFQUQ+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPEJPRFkgYmdjb2xvcj0nI0ZGRkZGRicgc3R5bGU9J2ZvbnQtZmFtaWx5OiBBcmlhbCBVbmljb2RlIE1TJz4iKTsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB0ZXN0MigpOworICAgICAgICAgICAgfSBjYXRjaCAoVGVzdFRydW5jYXRlZCBlKSB7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIjwvQk9EWT48L0hUTUw+Iik7CisgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKworICAgICAgICAgICAgaWYgKGVycm9yQ291bnQgPiAwKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgbG9nRmlsZU5hbWUgPSAidGVzdF8iICsgdHJhbnNsaXRlcmF0b3JJRC5yZXBsYWNlKCcvJywgJ18nKSArICIuaHRtbCI7CisgICAgICAgICAgICBGaWxlIGxmID0gbmV3IEZpbGUobG9nRmlsZU5hbWUpOworICAgICAgICAgICAgbG9nLmxvZ2xuKCJDcmVhdGluZyBsb2cgZmlsZSAiICsgbGYuZ2V0QWJzb2x1dGVGaWxlKCkpOworICAgICAgICAgICAgRmlsZU91dHB1dFN0cmVhbSBmb3MgPSBuZXcgRmlsZU91dHB1dFN0cmVhbShsZik7CisgICAgICAgICAgICBmb3Mud3JpdGUoYmFzdC50b0J5dGVBcnJheSgpKTsKKyAgICAgICAgICAgIGZvcy5jbG9zZSgpOworICAgICAgICAgICAgbG9nLmVycmxuKHRyYW5zbGl0ZXJhdG9ySUQgKyAiIGVycm9yczogIgorICAgICAgICAgICAgICAgICAgKyBlcnJvckNvdW50ICsgKGVycm9yQ291bnQgPiBlcnJvckxpbWl0ID8gIiAoYXQgbGVhc3QhKSIgOiAiIikKKyAgICAgICAgICAgICAgICAgICsgIiwgc2VlICIgKyBsZi5nZXRBYnNvbHV0ZUZpbGUoKSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFNlY3VyaXR5RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZy5lcnJsbih0cmFuc2xpdGVyYXRvcklEICsgIiBlcnJvcnM6ICIKKyAgICAgICAgICAgICAgICAgICsgZXJyb3JDb3VudCArIChlcnJvckNvdW50ID4gZXJyb3JMaW1pdCA/ICIgKGF0IGxlYXN0ISkiIDogIiIpCisgICAgICAgICAgICAgICAgICArICIsIG5vIGxvZyBwcm92aWRlZCBkdWUgdG8gcHJvdGVjdGVkIHRlc3QgZG9tYWluIik7CisgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nLmxvZ2xuKHRyYW5zbGl0ZXJhdG9ySUQgKyAiIG9rIik7CisvLyAgICAgICAgICAgICAgICAgIG5ldyBGaWxlKGxvZ0ZpbGVOYW1lKS5kZWxldGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIG9rIGlmIGF0IGxlYXN0IG9uZSBpcyBub3QgZXF1YWwKKyAgICAgICAgcHVibGljIGJvb2xlYW4gY2hlY2tJcnJlbGV2YW50cyhUcmFuc2xpdGVyYXRvciB0LCBTdHJpbmcgaXJyZWxldmFudHMpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXJyZWxldmFudHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IGlycmVsZXZhbnRzLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3MgPSBVVEYxNi52YWx1ZU9mKGMpOworICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnID0gdC50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICBpZiAoY3MuZXF1YWxzKHRhcmcpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHRlc3QyKCkgeworCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBzb3VyY2VUb1RhcmdldCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKHRyYW5zbGl0ZXJhdG9ySUQpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdGFyZ2V0VG9Tb3VyY2UgPSBzb3VyY2VUb1RhcmdldC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICBBYmJyZXZpYXRlZFVuaWNvZGVTZXRJdGVyYXRvciB1c2kgPSBuZXcgQWJicmV2aWF0ZWRVbmljb2RlU2V0SXRlcmF0b3IoKTsKKyAgICAgICAgICAgIEFiYnJldmlhdGVkVW5pY29kZVNldEl0ZXJhdG9yIHVzaTIgPSBuZXcgQWJicmV2aWF0ZWRVbmljb2RlU2V0SXRlcmF0b3IoKTsKKworICAgICAgICAgICAgbG9nLmxvZ2xuKCJDaGVja2luZyB0aGF0IGF0IGxlYXN0IG9uZSBpcnJldmFudCBjaGFyYWN0ZXJzIGlzIG5vdCBORkMnZWQiKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+Q2hlY2tpbmcgdGhhdCBhdCBsZWFzdCBvbmUgaXJyZXZhbnQgY2hhcmFjdGVycyBpcyBub3QgTkZDJ2VkPC9oMz4iKTsKKworICAgICAgICAgICAgU3RyaW5nIGlycmVsZXZhbnRzID0gIlx1MjAwMFx1MjAwMVx1MjEyNlx1MjEyQVx1MjEyQlx1MjMyOSI7IC8vIHN0cmluZyBpcyBmcm9tIE5GQ19OTyBpbiB0aGUgVUNECisKKyAgICAgICAgICAgIGlmICghY2hlY2tJcnJlbGV2YW50cyhzb3VyY2VUb1RhcmdldCwgaXJyZWxldmFudHMpKSB7CisgICAgICAgICAgICAgICAgbG9nRmFpbHMoIlNvdXJjZS1UYXJnZXQsIE11c3Qgbm90IE5GQyBldmVyeXRoaW5nIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWNoZWNrSXJyZWxldmFudHModGFyZ2V0VG9Tb3VyY2UsIGlycmVsZXZhbnRzKSkgeworICAgICAgICAgICAgICAgIGxvZ0ZhaWxzKCJUYXJnZXQtU291cmNlLCBpcnJlbGV2YW50cyIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoRVhUUkFfVEVTVFMpIHsKKyAgICAgICAgICAgICAgICBsb2cubG9nbG4oIkNoZWNraW5nIHRoYXQgdG9SdWxlcyB3b3JrcyIpOworICAgICAgICAgICAgICAgIFN0cmluZyBydWxlcyA9ICIiOworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHNvdXJjZVRvVGFyZ2V0MjsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0YXJnZXRUb1NvdXJjZTI7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcnVsZXMgPSBzb3VyY2VUb1RhcmdldC50b1J1bGVzKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlVG9UYXJnZXQyID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJzMnQyIiwgcnVsZXMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgICAgICAgICBpZiAoUFJJTlRfUlVMRVMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+Rm9yd2FyZCBSdWxlczo8L2gzPjxwPiIpOworICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oVGVzdFV0aWxpdHkucmVwbGFjZShydWxlcywgIlxuIiwgIjxicj5cbiIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8L3A+Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcnVsZXMgPSB0YXJnZXRUb1NvdXJjZS50b1J1bGVzKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VG9Tb3VyY2UyID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJ0MnMyIiwgcnVsZXMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgICAgICAgICBpZiAoUFJJTlRfUlVMRVMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+QmFja3dhcmQgUnVsZXM6PC9oMz48cD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKFRlc3RVdGlsaXR5LnJlcGxhY2UocnVsZXMsICJcbiIsICI8YnI+XG4iKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPC9wPiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+QnJva2VuIFJ1bGVzOjwvaDM+PHA+Iik7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKFRlc3RVdGlsaXR5LnJlcGxhY2UocnVsZXMsICJcbiIsICI8YnI+XG4iKSk7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCI8L3A+Iik7CisgICAgICAgICAgICAgICAgICAgIG91dC5mbHVzaCgpOworICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxoMz5Sb3VuZHRyaXAgRXhjbHVzaW9uczogIiArIG5ldyBVbmljb2RlU2V0KHJvdW5kdHJpcEV4Y2x1c2lvbnMpICsgIjwvaDM+Iik7CisgICAgICAgICAgICAgICBvdXQuZmx1c2goKTsKKworICAgICAgICAgICAgICBsb2cubG9nbG4oIkNoZWNraW5nIHRoYXQgc291cmNlIC0+IHRhcmdldCAtPiBzb3VyY2UiKTsKKyAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjxoMz5DaGVja2luZyB0aGF0IHNvdXJjZSAtPiB0YXJnZXQgLT4gc291cmNlPC9oMz4iKTsKKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIHVzaS5yZXNldChzb3VyY2VSYW5nZSk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGMgPSB1c2kuY29kZXBvaW50OworCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjcyA9IFVURjE2LnZhbHVlT2YoYyk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnID0gc291cmNlVG9UYXJnZXQudHJhbnNsaXRlcmF0ZShjcyk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnMiA9IHNvdXJjZVRvVGFyZ2V0Mi50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0YXJnLmVxdWFscyh0YXJnMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ1RvUnVsZXNGYWlscygiU291cmNlLVRhcmdldCwgdG9SdWxlcyIsIGNzLCB0YXJnLCB0YXJnMik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBsb2cubG9nbG4oIkNoZWNraW5nIHRoYXQgdGFyZ2V0IC0+IHNvdXJjZSAtPiB0YXJnZXQiKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiPGgzPkNoZWNraW5nIHRoYXQgdGFyZ2V0IC0+IHNvdXJjZSAtPiB0YXJnZXQ8L2gzPiIpOworICAgICAgICAgICAgICAgdXNpLnJlc2V0KHRhcmdldFJhbmdlKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodXNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgYyA9IHVzaS5jb2RlcG9pbnQ7CisKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNzID0gVVRGMTYudmFsdWVPZihjKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmcgPSB0YXJnZXRUb1NvdXJjZS50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmcyID0gdGFyZ2V0VG9Tb3VyY2UyLnRyYW5zbGl0ZXJhdGUoY3MpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXRhcmcuZXF1YWxzKHRhcmcyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nVG9SdWxlc0ZhaWxzKCJUYXJnZXQtU291cmNlLCB0b1J1bGVzIiwgY3MsIHRhcmcsIHRhcmcyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworCisgICAgICAgICAgICBsb2cubG9nbG4oIkNoZWNraW5nIHRoYXQgc291cmNlIGNoYXJhY3RlcnMgY29udmVydCB0byB0YXJnZXQgLSBTaW5nbGVzIik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGgzPkNoZWNraW5nIHRoYXQgc291cmNlIGNoYXJhY3RlcnMgY29udmVydCB0byB0YXJnZXQgLSBTaW5nbGVzPC9oMz4iKTsKKworICAgICAgICAgICAgVW5pY29kZVNldCBmYWlsU291cmNlVGFyZyA9IG5ldyBVbmljb2RlU2V0KCk7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICBmb3IgKGNoYXIgYyA9IDA7IGMgPCAweEZGRkY7ICsrYykgeworICAgICAgICAgICAgICAgIGlmICghc291cmNlUmFuZ2UuY29udGFpbnMoYykpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICB1c2kucmVzZXQoc291cmNlUmFuZ2UpOworICAgICAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IHVzaS5jb2RlcG9pbnQ7CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3MgPSBVVEYxNi52YWx1ZU9mKGMpOworICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnID0gc291cmNlVG9UYXJnZXQudHJhbnNsaXRlcmF0ZShjcyk7CisgICAgICAgICAgICAgICAgaWYgKCF0b1RhcmdldC5jb250YWluc0FsbCh0YXJnKQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgYmFkQ2hhcmFjdGVycy5jb250YWluc1NvbWUodGFyZykpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdEID0gTm9ybWFsaXplci5ub3JtYWxpemUodGFyZywgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXRvVGFyZ2V0LmNvbnRhaW5zQWxsKHRhcmdEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJhZENoYXJhY3RlcnMuY29udGFpbnNTb21lKHRhcmdEKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nV3JvbmdTY3JpcHQoIlNvdXJjZS1UYXJnZXQiLCBjcywgdGFyZywgdG9UYXJnZXQsIGJhZENoYXJhY3RlcnMpOworICAgICAgICAgICAgICAgICAgICAgICAgZmFpbFNvdXJjZVRhcmcuYWRkKGMpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3MyID0gTm9ybWFsaXplci5ub3JtYWxpemUoY3MsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZzIgPSBzb3VyY2VUb1RhcmdldC50cmFuc2xpdGVyYXRlKGNzMik7CisgICAgICAgICAgICAgICAgaWYgKCF0YXJnLmVxdWFscyh0YXJnMikpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nTm90Q2Fub25pY2FsKCJTb3VyY2UtVGFyZ2V0IiwgY3MsIHRhcmcsIGNzMiwgdGFyZzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nLmxvZ2xuKCJDaGVja2luZyB0aGF0IHNvdXJjZSBjaGFyYWN0ZXJzIGNvbnZlcnQgdG8gdGFyZ2V0IC0gRG91YmxlcyIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxoMz5DaGVja2luZyB0aGF0IHNvdXJjZSBjaGFyYWN0ZXJzIGNvbnZlcnQgdG8gdGFyZ2V0IC0gRG91YmxlczwvaDM+Iik7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICBmb3IgKGNoYXIgYyA9IDA7IGMgPCAweEZGRkY7ICsrYykgeworICAgICAgICAgICAgICAgIGlmIChUZXN0VXRpbGl0eS5pc1VuYXNzaWduZWQoYykgfHwKKyAgICAgICAgICAgICAgICAgICAgIXNvdXJjZVJhbmdlLmNvbnRhaW5zKGMpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoZmFpbFNvdXJjZVRhcmcuZ2V0KGMpKSBjb250aW51ZTsKKworICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgVW5pY29kZVNldCBzb3VyY2VSYW5nZU1pbnVzRmFpbHVyZXMgPSBuZXcgVW5pY29kZVNldChzb3VyY2VSYW5nZSk7CisgICAgICAgICAgICBzb3VyY2VSYW5nZU1pbnVzRmFpbHVyZXMucmVtb3ZlQWxsKGZhaWxTb3VyY2VUYXJnKTsKKworICAgICAgICAgICAgYm9vbGVhbiBxdWlja1J0ID0gbG9nLmdldEluY2x1c2lvbigpIDwgMTA7CisKKyAgICAgICAgICAgIHVzaS5yZXNldChzb3VyY2VSYW5nZU1pbnVzRmFpbHVyZXMsIHF1aWNrUnQsIGRlbnNpdHkpOworCisgICAgICAgICAgICB3aGlsZSAodXNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGludCBjID0gdXNpLmNvZGVwb2ludDsKKworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGQgPSAwOyBkIDwgMHhGRkZGOyArK2QpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFRlc3RVdGlsaXR5LmlzVW5hc3NpZ25lZChkKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgIXNvdXJjZVJhbmdlLmNvbnRhaW5zKGQpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZhaWxTb3VyY2VUYXJnLmdldChkKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICB1c2kyLnJlc2V0KHNvdXJjZVJhbmdlTWludXNGYWlsdXJlcywgcXVpY2tSdCwgZGVuc2l0eSk7CisKKyAgICAgICAgICAgICAgICB3aGlsZSAodXNpMi5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGQgPSB1c2kyLmNvZGVwb2ludDsKKworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY3MgPSBVVEYxNi52YWx1ZU9mKGMpICsgVVRGMTYudmFsdWVPZihkKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmcgPSBzb3VyY2VUb1RhcmdldC50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0b1RhcmdldC5jb250YWluc0FsbCh0YXJnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJhZENoYXJhY3RlcnMuY29udGFpbnNTb21lKHRhcmcpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ0QgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZSh0YXJnLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRvVGFyZ2V0LmNvbnRhaW5zQWxsKHRhcmdEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBiYWRDaGFyYWN0ZXJzLmNvbnRhaW5zU29tZSh0YXJnRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dXcm9uZ1NjcmlwdCgiU291cmNlLVRhcmdldCIsIGNzLCB0YXJnLCB0b1RhcmdldCwgYmFkQ2hhcmFjdGVycyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNzMiA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGNzLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnMiA9IHNvdXJjZVRvVGFyZ2V0LnRyYW5zbGl0ZXJhdGUoY3MyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0YXJnLmVxdWFscyh0YXJnMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ05vdENhbm9uaWNhbCgiU291cmNlLVRhcmdldCIsIGNzLCB0YXJnLCBjczIsIHRhcmcyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nLmxvZ2xuKCJDaGVja2luZyB0aGF0IHRhcmdldCBjaGFyYWN0ZXJzIGNvbnZlcnQgdG8gc291cmNlIGFuZCBiYWNrIC0gU2luZ2xlcyIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxoMz5DaGVja2luZyB0aGF0IHRhcmdldCBjaGFyYWN0ZXJzIGNvbnZlcnQgdG8gc291cmNlIGFuZCBiYWNrIC0gU2luZ2xlczwvaDM+Iik7CisKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgZmFpbFRhcmdTb3VyY2UgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgVW5pY29kZVNldCBmYWlsUm91bmQgPSBuZXcgVW5pY29kZVNldCgpOworCisgICAgICAgICAgICAvKmZvciAoY2hhciBjID0gMDsgYyA8IDB4RkZGRjsgKytjKSB7CisgICAgICAgICAgICAgICAgaWYgKFRlc3RVdGlsaXR5LmlzVW5hc3NpZ25lZChjKSB8fAorICAgICAgICAgICAgICAgICAgICAhdGFyZ2V0UmFuZ2UuY29udGFpbnMoYykpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAqLworCisgICAgICAgICAgICB1c2kucmVzZXQodGFyZ2V0UmFuZ2UpOworICAgICAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3M7CisgICAgICAgICAgICAgICAgaW50IGM7CisgICAgICAgICAgICAgICAgaWYodXNpLmNvZGVwb2ludCA9PSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKXsKKyAgICAgICAgICAgICAgICAgICAgY3MgPSB1c2kuc3RyaW5nOworICAgICAgICAgICAgICAgICAgICBjID0gVVRGMTYuY2hhckF0KGNzLDApOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBjID0gdXNpLmNvZGVwb2ludDsKKyAgICAgICAgICAgICAgICAgICAgY3MgPVVURjE2LnZhbHVlT2YoYyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmcgPSB0YXJnZXRUb1NvdXJjZS50cmFuc2xpdGVyYXRlKGNzKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmV2ZXJzZSA9IHNvdXJjZVRvVGFyZ2V0LnRyYW5zbGl0ZXJhdGUodGFyZyk7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRvU291cmNlLmNvbnRhaW5zQWxsKHRhcmcpCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBiYWRDaGFyYWN0ZXJzLmNvbnRhaW5zU29tZSh0YXJnKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ0QgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZSh0YXJnLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghdG9Tb3VyY2UuY29udGFpbnNBbGwodGFyZ0QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgYmFkQ2hhcmFjdGVycy5jb250YWluc1NvbWUodGFyZ0QpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qVW5pY29kZVNldCB0ZW1wID0gKi9uZXcgVW5pY29kZVNldCgpLmFkZEFsbCh0YXJnRCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dXcm9uZ1NjcmlwdCgiVGFyZ2V0LVNvdXJjZSIsIGNzLCB0YXJnLCB0b1NvdXJjZSwgYmFkQ2hhcmFjdGVycyk7CisgICAgICAgICAgICAgICAgICAgICAgICBmYWlsVGFyZ1NvdXJjZS5hZGQoY3MpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFpc1NhbWUoY3MsIHJldmVyc2UpICYmICFyb3VuZHRyaXBFeGNsdXNpb25zLmNvbnRhaW5zKGMpCisgICAgICAgICAgICAgICAgICAgICYmICFyb3VuZHRyaXBFeGNsdXNpb25zLmNvbnRhaW5zKGNzKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dSb3VuZFRyaXBGYWlsdXJlKGNzLHRhcmdldFRvU291cmNlLmdldElEKCksIHRhcmcsc291cmNlVG9UYXJnZXQuZ2V0SUQoKSwgcmV2ZXJzZSk7CisgICAgICAgICAgICAgICAgICAgIGZhaWxSb3VuZC5hZGQoYyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZzIgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZSh0YXJnLCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJldmVyc2UyID0gc291cmNlVG9UYXJnZXQudHJhbnNsaXRlcmF0ZSh0YXJnMik7CisgICAgICAgICAgICAgICAgaWYgKCFyZXZlcnNlLmVxdWFscyhyZXZlcnNlMikpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nTm90Q2Fub25pY2FsKCJUYXJnZXQtU291cmNlIiwgdGFyZywgcmV2ZXJzZSwgdGFyZzIsIHJldmVyc2UyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvZy5sb2dsbigiQ2hlY2tpbmcgdGhhdCB0YXJnZXQgY2hhcmFjdGVycyBjb252ZXJ0IHRvIHNvdXJjZSBhbmQgYmFjayAtIERvdWJsZXMiKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8aDM+Q2hlY2tpbmcgdGhhdCB0YXJnZXQgY2hhcmFjdGVycyBjb252ZXJ0IHRvIHNvdXJjZSBhbmQgYmFjayAtIERvdWJsZXM8L2gzPiIpOworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKworICAgICAgICAgICAgVW5pY29kZVNldCB0YXJnZXRSYW5nZU1pbnVzRmFpbHVyZXMgPSBuZXcgVW5pY29kZVNldCh0YXJnZXRSYW5nZSk7CisgICAgICAgICAgICB0YXJnZXRSYW5nZU1pbnVzRmFpbHVyZXMucmVtb3ZlQWxsKGZhaWxUYXJnU291cmNlKTsKKyAgICAgICAgICAgIHRhcmdldFJhbmdlTWludXNGYWlsdXJlcy5yZW1vdmVBbGwoZmFpbFJvdW5kKTsKKworICAgICAgICAgICAgLy9jaGFyW10gYnVmID0gbmV3IGNoYXJbNF07IC8vIG1heGltdW0gd2UgY2FuIGhhdmUgd2l0aCAyIGNvZGUgcG9pbnRzCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgZm9yIChjaGFyIGMgPSAwOyBjIDwgMHhGRkZGOyArK2MpIHsKKyAgICAgICAgICAgICAgICBpZiAoVGVzdFV0aWxpdHkuaXNVbmFzc2lnbmVkKGMpIHx8CisgICAgICAgICAgICAgICAgICAgICF0YXJnZXRSYW5nZS5jb250YWlucyhjKSkgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICovCisKKyAgICAgICAgICAgIHVzaS5yZXNldCh0YXJnZXRSYW5nZU1pbnVzRmFpbHVyZXMsIHF1aWNrUnQsIGRlbnNpdHkpOworCisgICAgICAgICAgICB3aGlsZSAodXNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGludCBjID0gdXNpLmNvZGVwb2ludDsKKworICAgICAgICAgICAgICAgIGlmICgrK2NvdW50ID4gcGFpckxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUZXN0VHJ1bmNhdGVkKCJUZXN0IHRydW5jYXRlZCBhdCAiICsgcGFpckxpbWl0ICsgIiB4IDY0ayBwYWlycyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL2xvZy5sb2coVGVzdFV0aWxpdHkuaGV4KGMpKTsKKworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgZm9yIChjaGFyIGQgPSAwOyBkIDwgMHhGRkZGOyArK2QpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFRlc3RVdGlsaXR5LmlzVW5hc3NpZ25lZChkKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgIXRhcmdldFJhbmdlLmNvbnRhaW5zKGQpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgdXNpMi5yZXNldCh0YXJnZXRSYW5nZU1pbnVzRmFpbHVyZXMsIHF1aWNrUnQsIGRlbnNpdHkpOworCisgICAgICAgICAgICAgICAgd2hpbGUgKHVzaTIubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBkID0gdXNpMi5jb2RlcG9pbnQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChkIDwgMCkgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNzID0gVVRGMTYudmFsdWVPZihjKSArIFVURjE2LnZhbHVlT2YoZCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnID0gdGFyZ2V0VG9Tb3VyY2UudHJhbnNsaXRlcmF0ZShjcyk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyByZXZlcnNlID0gc291cmNlVG9UYXJnZXQudHJhbnNsaXRlcmF0ZSh0YXJnKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoIXRvU291cmNlLmNvbnRhaW5zQWxsKHRhcmcpIC8qJiYgIWZhaWxUYXJnU291cmNlLmNvbnRhaW5zKGMpICYmICFmYWlsVGFyZ1NvdXJjZS5jb250YWlucyhkKSovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgYmFkQ2hhcmFjdGVycy5jb250YWluc1NvbWUodGFyZykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnRCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHRhcmcsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdG9Tb3VyY2UuY29udGFpbnNBbGwodGFyZ0QpIC8qJiYgIWZhaWxUYXJnU291cmNlLmNvbnRhaW5zKGMpICYmICFmYWlsVGFyZ1NvdXJjZS5jb250YWlucyhkKSovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGJhZENoYXJhY3RlcnMuY29udGFpbnNTb21lKHRhcmdEKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ1dyb25nU2NyaXB0KCJUYXJnZXQtU291cmNlIiwgY3MsIHRhcmcsIHRvU291cmNlLCBiYWRDaGFyYWN0ZXJzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIWlzU2FtZShjcywgcmV2ZXJzZSkgLyomJiAhZmFpbFJvdW5kLmNvbnRhaW5zKGMpICYmICFmYWlsUm91bmQuY29udGFpbnMoZCkqLworICAgICAgICAgICAgICAgICAgICAgICAgICYmICFyb3VuZHRyaXBFeGNsdXNpb25zLmNvbnRhaW5zKGMpCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIXJvdW5kdHJpcEV4Y2x1c2lvbnMuY29udGFpbnMoZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhcm91bmR0cmlwRXhjbHVzaW9ucy5jb250YWlucyhjcykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ1JvdW5kVHJpcEZhaWx1cmUoY3MsdGFyZ2V0VG9Tb3VyY2UuZ2V0SUQoKSwgdGFyZyxzb3VyY2VUb1RhcmdldC5nZXRJRCgpLCByZXZlcnNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnMiA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHRhcmcsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJldmVyc2UyID0gc291cmNlVG9UYXJnZXQudHJhbnNsaXRlcmF0ZSh0YXJnMik7CisgICAgICAgICAgICAgICAgICAgIGlmICghcmV2ZXJzZS5lcXVhbHMocmV2ZXJzZTIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dOb3RDYW5vbmljYWwoIlRhcmdldC1Tb3VyY2UiLCB0YXJnLCByZXZlcnNlLCB0YXJnMiwgcmV2ZXJzZTIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nLmxvZ2xuKCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIFN0cmluZyBpbmZvKFN0cmluZyBzKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiXHUyMDBFIikuYXBwZW5kKHMpLmFwcGVuZCgiXHUyMDBFICgiKS5hcHBlbmQoVGVzdFV0aWxpdHkuaGV4KHMpKS5hcHBlbmQoIi8iKTsKKyAgICAgICAgICAgIGlmIChmYWxzZSkgeyAvLyBhcHBlbmQgYWdlLCBhcyBhIGNoZWNrCisgICAgICAgICAgICAgICAgaW50IGNwID0gMDsgICAgCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCkgcmVzdWx0LmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChVQ2hhcmFjdGVyLmdldEFnZShjcCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIikiKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIHZvaWQgbG9nV3JvbmdTY3JpcHQoU3RyaW5nIGxhYmVsLCBTdHJpbmcgZnJvbSwgU3RyaW5nIHRvLCAKKyAgICAgICAgICBVbmljb2RlU2V0IHNob3VsZENvbnRhaW5BbGwsIFVuaWNvZGVTZXQgc2hvdWxkTm90Q29udGFpbkFueSkgeworICAgICAgICAgICAgaWYgKCsrZXJyb3JDb3VudCA+IGVycm9yTGltaXQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVGVzdFRydW5jYXRlZCgiVGVzdCB0cnVuY2F0ZWQ7IHRvbyBtYW55IGZhaWx1cmVzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgdG9EID0gTm9ybWFsaXplci5ub3JtYWxpemUodG8sIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgdGVtcCA9IG5ldyBVbmljb2RlU2V0KCkuYWRkQWxsKHRvRCk7CisgICAgICAgICAgICBVbmljb2RlU2V0IGJhZCA9IG5ldyBVbmljb2RlU2V0KHNob3VsZE5vdENvbnRhaW5BbnkpLnJldGFpbkFsbCh0ZW1wKQorICAgICAgICAgICAgICAgIC5hZGRBbGwobmV3IFVuaWNvZGVTZXQodGVtcCkucmVtb3ZlQWxsKHNob3VsZENvbnRhaW5BbGwpKTsKKworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxicj5GYWlsICIgKyBsYWJlbCArICI6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaW5mbyhmcm9tKSArICIgPT4gIiArIGluZm8odG8pICsgIiAiICsgYmFkCisgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmaW5hbCB2b2lkIGxvZ05vdENhbm9uaWNhbChTdHJpbmcgbGFiZWwsIFN0cmluZyBmcm9tLCBTdHJpbmcgdG8sIFN0cmluZyBmcm9tQ2FuLCBTdHJpbmcgdG9DYW4pIHsKKyAgICAgICAgICAgIGlmICgrK2Vycm9yQ291bnQgPiBlcnJvckxpbWl0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFRlc3RUcnVuY2F0ZWQoIlRlc3QgdHJ1bmNhdGVkOyB0b28gbWFueSBmYWlsdXJlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIjxicj5GYWlsIChjYW4uZXF1aXYpICIgKyBsYWJlbCArICI6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaW5mbyhmcm9tKSArICIgPT4gIiArIGluZm8odG8pICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgLS0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICBpbmZvKGZyb21DYW4pICsgIiA9PiAiICsgaW5mbyh0b0NhbikgKyAiKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCB2b2lkIGxvZ0ZhaWxzKFN0cmluZyBsYWJlbCkgeworICAgICAgICAgICAgaWYgKCsrZXJyb3JDb3VudCA+IGVycm9yTGltaXQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVGVzdFRydW5jYXRlZCgiVGVzdCB0cnVuY2F0ZWQ7IHRvbyBtYW55IGZhaWx1cmVzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPGJyPkZhaWwgKGNhbi5lcXVpdikiICsgbGFiZWwpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgdm9pZCBsb2dUb1J1bGVzRmFpbHMoU3RyaW5nIGxhYmVsLCBTdHJpbmcgZnJvbSwgU3RyaW5nIHRvLCBTdHJpbmcgdG9DYW4pIHsKKyAgICAgICAgICAgIGlmICgrK2Vycm9yQ291bnQgPiBlcnJvckxpbWl0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFRlc3RUcnVuY2F0ZWQoIlRlc3QgdHJ1bmNhdGVkOyB0b28gbWFueSBmYWlsdXJlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIjxicj5GYWlsICIgKyBsYWJlbCArICI6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaW5mbyhmcm9tKSArICIgPT4gIiArIGluZm8odG8pICsgIiwgIiArIGluZm8odG9DYW4pCisgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgdm9pZCBsb2dSb3VuZFRyaXBGYWlsdXJlKFN0cmluZyBmcm9tLFN0cmluZyB0b0lELCBTdHJpbmcgdG8sU3RyaW5nIGJhY2tJRCwgU3RyaW5nIGJhY2spIHsKKyAgICAgICAgICAgIGlmICghbGVnYWxTb3VyY2UuaXMoZnJvbSkpIHJldHVybjsgLy8gc2tpcCBpbGxlZ2FscworCisgICAgICAgICAgICBpZiAoKytlcnJvckNvdW50ID4gZXJyb3JMaW1pdCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBUZXN0VHJ1bmNhdGVkKCJUZXN0IHRydW5jYXRlZDsgdG9vIG1hbnkgZmFpbHVyZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8YnI+RmFpbCBSb3VuZHRyaXA6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgaW5mbyhmcm9tKSArICIgIit0b0lEKyIgPT4gIiArIGluZm8odG8pICsgIiAiICsgYmFja0lEKyIgPT4gIiArIGluZm8oYmFjaykKKyAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBDaGFyYWN0ZXJzIHRvIGZpbHRlciBmb3Igc291cmNlLXRhcmdldCBtYXBwaW5nIGNvbXBsZXRlbmVzcworICAgICAgICAgKiBUeXBpY2FsbHkgaXMgYmFzZSBhbHBoYWJldCwgbWludXMgZXh0ZW5kZWQgY2hhcmFjdGVycworICAgICAgICAgKiBEZWZhdWx0IGlzIEFTQ0lJIGxldHRlcnMgZm9yIExhdGluCisgICAgICAgICAqLworICAgICAgICAgLyoKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNTb3VyY2UoY2hhciBjKSB7CisgICAgICAgICAgICBpZiAoIXNvdXJjZVJhbmdlLmNvbnRhaW5zKGMpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAqLworCisgICAgICAgIC8qCisgICAgICAgICAqIENoYXJhY3RlcnMgdG8gY2hlY2sgZm9yIHRhcmdldCBiYWNrIHRvIHNvdXJjZSBtYXBwaW5nLgorICAgICAgICAgKiBUeXBpY2FsbHkgdGhlIHNhbWUgYXMgdGhlIHRhcmdldCBzY3JpcHQsIHBsdXMgcHVuY3R1YXRpb24KKyAgICAgICAgICovCisgICAgICAgICAvKgorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1JlY2VpdmluZ1NvdXJjZShjaGFyIGMpIHsKKyAgICAgICAgICAgIGlmICghdGFyZ2V0UmFuZ2UuY29udGFpbnMoYykpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIC8qCisgICAgICAgICAqIENoYXJhY3RlcnMgdG8gZmlsdGVyIGZvciB0YXJnZXQtc291cmNlIG1hcHBpbmcKKyAgICAgICAgICogVHlwaWNhbGx5IGlzIGJhc2UgYWxwaGFiZXQsIG1pbnVzIGV4dGVuZGVkIGNoYXJhY3RlcnMKKyAgICAgICAgICovCisgICAgICAgICAvKgorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1RhcmdldChjaGFyIGMpIHsKKyAgICAgICAgICAgIGJ5dGUgc2NyaXB0ID0gVGVzdFV0aWxpdHkuZ2V0U2NyaXB0KGMpOworICAgICAgICAgICAgaWYgKHNjcmlwdCAhPSB0YXJnZXRTY3JpcHQpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghVGVzdFV0aWxpdHkuaXNMZXR0ZXIoYykpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmICh0YXJnZXRSYW5nZSAhPSBudWxsICYmICF0YXJnZXRSYW5nZS5jb250YWlucyhjKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgKi8KKworICAgICAgICAvKgorICAgICAgICAgKiBDaGFyYWN0ZXJzIHRvIGNoZWNrIGZvciB0YXJnZXQtc291cmNlIG1hcHBpbmcKKyAgICAgICAgICogVHlwaWNhbGx5IHRoZSBzYW1lIGFzIHRoZSBzb3VyY2Ugc2NyaXB0LCBwbHVzIHB1bmN0dWF0aW9uCisgICAgICAgICAqLworICAgICAgICAvKgorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1JlY2VpdmluZ1RhcmdldChjaGFyIGMpIHsKKyAgICAgICAgICAgIGJ5dGUgc2NyaXB0ID0gVGVzdFV0aWxpdHkuZ2V0U2NyaXB0KGMpOworICAgICAgICAgICAgcmV0dXJuIChzY3JpcHQgPT0gdGFyZ2V0U2NyaXB0IHx8IHNjcmlwdCA9PSBUZXN0VXRpbGl0eS5DT01NT05fU0NSSVBUKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGJvb2xlYW4gaXNTb3VyY2UoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc1NvdXJjZShzLmNoYXJBdChpKSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgYm9vbGVhbiBpc1RhcmdldChTdHJpbmcgcykgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzVGFyZ2V0KHMuY2hhckF0KGkpKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBib29sZWFuIGlzUmVjZWl2aW5nU291cmNlKFN0cmluZyBzKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICghaXNSZWNlaXZpbmdTb3VyY2Uocy5jaGFyQXQoaSkpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGJvb2xlYW4gaXNSZWNlaXZpbmdUYXJnZXQoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc1JlY2VpdmluZ1RhcmdldChzLmNoYXJBdChpKSkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgICovCisKKyAgICAgICAgc3RhdGljIGNsYXNzIFRlc3RUcnVuY2F0ZWQgZXh0ZW5kcyBSdW50aW1lRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIFRlc3RUcnVuY2F0ZWQoU3RyaW5nIG1zZykgeworICAgICAgICAgICAgICAgIHN1cGVyKG1zZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKy8vICBzdGF0aWMgY2xhc3MgVGVzdEhhbmd1bCBleHRlbmRzIFRlc3QgeworLy8gICAgICBUZXN0SGFuZ3VsICgpIHsKKy8vICAgICAgICAgIHN1cGVyKCJKYW1vLUhhbmd1bCIsIFRlc3RVdGlsaXR5LkpBTU9fU0NSSVBULCBUZXN0VXRpbGl0eS5IQU5HVUxfU0NSSVBUKTsKKy8vICAgICAgfQorLy8KKy8vICAgICAgcHVibGljIGJvb2xlYW4gaXNTb3VyY2UoY2hhciBjKSB7CisvLyAgICAgICAgICBpZiAoMHgxMTEzIDw9IGMgJiYgYyA8PSAweDExNjApIHJldHVybiBmYWxzZTsKKy8vICAgICAgICAgIGlmICgweDExNzYgPD0gYyAmJiBjIDw9IDB4MTFGOSkgcmV0dXJuIGZhbHNlOworLy8gICAgICAgICAgaWYgKDB4MzEzMSA8PSBjICYmIGMgPD0gMHgzMThFKSByZXR1cm4gZmFsc2U7CisvLyAgICAgICAgICByZXR1cm4gc3VwZXIuaXNTb3VyY2UoYyk7CisvLyAgICAgIH0KKy8vICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1Rlc3RBbGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTQxMTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1Rlc3RBbGwuamF2YQpAQCAtMCwwICsxLDMzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgb3RoZXIgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworCitwdWJsaWMgY2xhc3MgVGVzdEFsbCBleHRlbmRzIFRlc3RHcm91cCB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJUcmFuc2xpdGVyYXRvclRlc3QiLAorICAgICAgICAgICAgIlVuaWNvZGVTZXRUZXN0IiwKKyAgICAgICAgICAgICJDb21wb3VuZFRyYW5zbGl0ZXJhdG9yVGVzdCIsCisgICAgICAgICAgICAiSmFtb1Rlc3QiLAorICAgICAgICAgICAgIkVycm9yVGVzdCIsCisgICAgICAgICAgICAiUm91bmRUcmlwVGVzdCIsCisgICAgICAgICAgICAiUmVwbGFjZWFibGVUZXN0IiwKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xBU1NfVEFSR0VUX05BTUUgPSAiVHJhbnNsaXQiOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1Rlc3RVdGlsaXR5LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvVGVzdFV0aWxpdHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YmYyM2NlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1Rlc3RVdGlsaXR5LmphdmEKQEAgLTAsMCArMSw0NDQgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworcHVibGljIGZpbmFsIGNsYXNzIFRlc3RVdGlsaXR5IHsKKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChjaGFyIGNoKSB7CisgICAgICAgIFN0cmluZyBmb28gPSBJbnRlZ2VyLnRvU3RyaW5nKGNoLDE2KS50b1VwcGVyQ2FzZSgpOworICAgICAgICByZXR1cm4gIjAwMDAiLnN1YnN0cmluZygwLDQtZm9vLmxlbmd0aCgpKSArIGZvbzsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KGludCBjaCkgeworICAgICAgICBTdHJpbmcgZm9vID0gSW50ZWdlci50b1N0cmluZyhjaCwxNikudG9VcHBlckNhc2UoKTsKKyAgICAgICAgcmV0dXJuICIwMDAwMDAwMCIuc3Vic3RyaW5nKDAsNC1mb28ubGVuZ3RoKCkpICsgZm9vOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoU3RyaW5nIHMpIHsKKyAgICAgIHJldHVybiBoZXgocywiLCIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoU3RyaW5nIHMsIFN0cmluZyBzZXApIHsKKyAgICAgIGlmIChzLmxlbmd0aCgpID09IDApIHJldHVybiAiIjsKKyAgICAgIFN0cmluZyByZXN1bHQgPSBoZXgocy5jaGFyQXQoMCkpOworICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgcmVzdWx0ICs9IHNlcDsKKyAgICAgICAgcmVzdWx0ICs9IGhleChzLmNoYXJBdChpKSk7CisgICAgICB9CisgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0b0JlUmVwbGFjZWQsIFN0cmluZyByZXBsYWNlbWVudCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0cyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IGxlbiA9IHRvQmVSZXBsYWNlZC5sZW5ndGgoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHNvdXJjZS5yZWdpb25NYXRjaGVzKGZhbHNlLCBpLCB0b0JlUmVwbGFjZWQsIDAsIGxlbikpIHsKKyAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChyZXBsYWNlbWVudCk7CisgICAgICAgICAgICAgICAgaSArPSBsZW4gLSAxOyAvLyBtaW51cyBvbmUsIHNpbmNlIHdlIHdpbGwgaW5jcmVtZW50CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHNvdXJjZS5jaGFyQXQoaSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHRzLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGxhY2VBbGwoU3RyaW5nIHNvdXJjZSwgVW5pY29kZVNldCBzZXQsIFN0cmluZyByZXBsYWNlbWVudCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0cyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzb3VyY2UsaSk7CisgICAgICAgICAgICBpZiAoc2V0LmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHJlcGxhY2VtZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdHMsIGNwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0cy50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICAvLyBDT01NRU5URUQgT1VUIEFMTCBUSEUgT0xEIFNDUklQVCBTVFVGRgorICAgIC8qCisgICAgcHVibGljIHN0YXRpYyBieXRlIGdldFNjcmlwdChjaGFyIGMpIHsKKyAgICAgIHJldHVybiBnZXRTY3JpcHQoZ2V0QmxvY2soYykpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJ5dGUgZ2V0U2NyaXB0KGJ5dGUgYmxvY2spIHsKKyAgICAgIHJldHVybiBibG9ja1RvU2NyaXB0W2Jsb2NrXTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBieXRlIGdldEJsb2NrKGNoYXIgYykgeworICAgICAgaW50IGluZGV4ID0gYyA+PiA3OworICAgICAgYnl0ZSBibG9jayA9IGNoYXJUb0Jsb2NrW2luZGV4XTsKKyAgICAgIHdoaWxlIChibG9jayA8IDApIHsgLy8gdGFrZSBjYXJlIG9mIGV4Y2VwdGlvbnMsIGJsb2NrcyBzcGxpdCBhY3Jvc3MgMTI4IGJvdW5kYXJpZXMKKyAgICAgICAgICBpbnRbXSB0dXBsZSA9IHNwbGl0Wy1ibG9jay0xXTsKKyAgICAgICAgICBpZiAoYyA8IHR1cGxlWzBdKSBibG9jayA9IChieXRlKXR1cGxlWzFdOworICAgICAgICAgIGVsc2UgYmxvY2sgPSAoYnl0ZSl0dXBsZVsyXTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBibG9jazsKKyAgICB9CisgICAgICAgICAgICAgICAKKyAgICAvLyByZXR1cm5zIG5leHQgbGV0dGVyIG9mIHNjcmlwdCwgb3IgMHhGRkZGIGlmIGRvbmUKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNoYXIgZ2V0TmV4dExldHRlcihjaGFyIGMsIGJ5dGUgc2NyaXB0KSB7CisgICAgICAgIHdoaWxlIChjIDwgMHhGRkZGKSB7CisgICAgICAgICAgICArK2M7CisgICAgICAgICAgICBpZiAoZ2V0U2NyaXB0KGMpID09IHNjcmlwdCAmJiBDaGFyYWN0ZXIuaXNMZXR0ZXIoYykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYzsKKyAgICB9CisgICAgCisgICAgLy8gU3VwcGxlbWVudHMgdG8gQ2hhcmFjdGVyIG1ldGhvZHM7IHRoZXNlIG1ldGhvZHMgZ28gdGhyb3VnaAorICAgIC8vIFVDaGFyYWN0ZXIgaWYgcG9zc2libGUuICBJZiBub3QsIHRoZXkgZmFsbCBiYWNrIHRvIENoYXJhY3Rlci4KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VuYXNzaWduZWQoY2hhciBjKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRUeXBlKGMpID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVEOworICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gQ2hhcmFjdGVyLmdldFR5cGUoYykgPT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQ7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTGV0dGVyKGNoYXIgYykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuaXNMZXR0ZXIoYyk7CisgICAgICAgIH0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBDaGFyYWN0ZXIuaXNMZXR0ZXIoYyk7CisgICAgfQorCisgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkJsb2NrczogIik7CisgICAgYnl0ZSBsYXN0YmxvY2sgPSAtMTI4OworICAgIGZvciAoY2hhciBjYyA9IDA7IGNjIDwgMHhGRkZGOyArK2NjKSB7CisgICAgICBieXRlIGJsb2NrID0gVGVzdFV0aWxpdHkuZ2V0QmxvY2soY2MpOworICAgICAgaWYgKGJsb2NrICE9IGxhc3RibG9jaykgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVGVzdFV0aWxpdHkuaGV4KGNjKSArICJcdCIgKyBibG9jayk7CisgICAgICAgIGxhc3RibG9jayA9IGJsb2NrOworICAgICAgfQorICAgIH0KKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNjcmlwdHM6ICIpOworICAgIGJ5dGUgbGFzdFNjcmlwdCA9IC0xMjg7CisgICAgZm9yIChjaGFyIGNjID0gMDsgY2MgPCAweEZGRkY7ICsrY2MpIHsKKyAgICAgIGJ5dGUgc2NyaXB0ID0gVGVzdFV0aWxpdHkuZ2V0U2NyaXB0KGNjKTsKKyAgICAgIGlmIChzY3JpcHQgIT0gbGFzdFNjcmlwdCkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVGVzdFV0aWxpdHkuaGV4KGNjKSArICJcdCIgKyBzY3JpcHQpOworICAgICAgICBsYXN0U2NyaXB0ID0gc2NyaXB0OworICAgICAgfQorICAgIH0KKyAgfQorICAgICAgCisgICAgCisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIC8vIFNDUklQVCBDT0RFCisgICAgICAgIENPTU1PTl9TQ1JJUFQgPSAwLAorICAgICAgICBMQVRJTl9TQ1JJUFQgPSAxLAorICAgICAgICBHUkVFS19TQ1JJUFQgPSAyLAorICAgICAgICBDWVJJTExJQ19TQ1JJUFQgPSAzLAorICAgICAgICBBUk1FTklBTl9TQ1JJUFQgPSA0LAorICAgICAgICBIRUJSRVdfU0NSSVBUID0gNSwKKyAgICAgICAgQVJBQklDX1NDUklQVCA9IDYsCisgICAgICAgIFNZUklBQ19TQ1JJUFQgPSA3LAorICAgICAgICBUSEFBTkFfU0NSSVBUID0gOCwgCisgICAgICAgIERFVkFOQUdBUklfU0NSSVBUID0gOSwKKyAgICAgICAgQkVOR0FMSV9TQ1JJUFQgPSAxMCwKKyAgICAgICAgR1VSTVVLSElfU0NSSVBUID0gMTEsCisgICAgICAgIEdVSkFSQVRJX1NDUklQVCA9IDEyLAorICAgICAgICBPUklZQV9TQ1JJUFQgPSAxMywKKyAgICAgICAgVEFNSUxfU0NSSVBUID0gMTQsCisgICAgICAgIFRFTFVHVV9TQ1JJUFQgPSAxNSwKKyAgICAgICAgS0FOTkFEQV9TQ1JJUFQgPSAxNiwKKyAgICAgICAgTUFMQVlBTEFNX1NDUklQVCA9IDE3LAorICAgICAgICBTSU5IQUxBX1NDUklQVCA9IDE4LAorICAgICAgICBUSEFJX1NDUklQVCA9IDE5LAorICAgICAgICBMQU9fU0NSSVBUID0gMjAsCisgICAgICAgIFRJQkVUQU5fU0NSSVBUID0gMjEsCisgICAgICAgIE1ZQU5NQVJfU0NSSVBUID0gMjIsCisgICAgICAgIEdFT1JHSUFOX1NDUklQVCA9IDIzLAorICAgICAgICBKQU1PX1NDUklQVCA9IDI0LAorICAgICAgICBIQU5HVUxfU0NSSVBUID0gMjUsCisgICAgICAgIEVUSElPUElDX1NDUklQVCA9IDI2LAorICAgICAgICBDSEVST0tFRV9TQ1JJUFQgPSAyNywKKyAgICAgICAgQUJPUklHSU5BTF9TQ1JJUFQgPSAyOCwKKyAgICAgICAgT0dIQU1fU0NSSVBUID0gMjksCisgICAgICAgIFJVTklDX1NDUklQVCA9IDMwLAorICAgICAgICBLSE1FUl9TQ1JJUFQgPSAzMSwKKyAgICAgICAgTU9OR09MSUFOX1NDUklQVCA9IDMyLAorICAgICAgICBISVJBR0FOQV9TQ1JJUFQgPSAzMywKKyAgICAgICAgS0FUQUtBTkFfU0NSSVBUID0gMzQsCisgICAgICAgIEJPUE9NT0ZPX1NDUklQVCA9IDM1LAorICAgICAgICBIQU5fU0NSSVBUID0gMzYsCisgICAgICAgIFlJX1NDUklQVCA9IDM3OworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSAvLyBibG9jayBjb2RlCisgICAgICAgIFJFU0VSVkVEX0JMT0NLID0gMCwKKyAgICAgICAgQkFTSUNfTEFUSU4gPSAxLAorICAgICAgICBMQVRJTl8xX1NVUFBMRU1FTlQgPSAyLAorICAgICAgICBMQVRJTl9FWFRFTkRFRF9BID0gMywKKyAgICAgICAgTEFUSU5fRVhURU5ERURfQiA9IDQsCisgICAgICAgIElQQV9FWFRFTlNJT05TID0gNSwKKyAgICAgICAgU1BBQ0lOR19NT0RJRklFUl9MRVRURVJTID0gNiwKKyAgICAgICAgQ09NQklOSU5HX0RJQUNSSVRJQ0FMX01BUktTID0gNywKKyAgICAgICAgR1JFRUsgPSA4LAorICAgICAgICBDWVJJTExJQyA9IDksCisgICAgICAgIEFSTUVOSUFOID0gMTAsCisgICAgICAgIEhFQlJFVyA9IDExLAorICAgICAgICBBUkFCSUMgPSAxMiwKKyAgICAgICAgU1lSSUFDID0gMTMsCisgICAgICAgIFRIQUFOQSA9IDE0LAorICAgICAgICBERVZBTkFHQVJJID0gMTUsCisgICAgICAgIEJFTkdBTEkgPSAxNiwKKyAgICAgICAgR1VSTVVLSEkgPSAxNywKKyAgICAgICAgR1VKQVJBVEkgPSAxOCwKKyAgICAgICAgT1JJWUEgPSAxOSwKKyAgICAgICAgVEFNSUwgPSAyMCwKKyAgICAgICAgVEVMVUdVID0gMjEsCisgICAgICAgIEtBTk5BREEgPSAyMiwKKyAgICAgICAgTUFMQVlBTEFNID0gMjMsCisgICAgICAgIFNJTkhBTEEgPSAyNCwKKyAgICAgICAgVEhBSSA9IDI1LAorICAgICAgICBMQU8gPSAyNiwKKyAgICAgICAgVElCRVRBTiA9IDI3LAorICAgICAgICBNWUFOTUFSID0gMjgsCisgICAgICAgIEdFT1JHSUFOID0gMjksCisgICAgICAgIEhBTkdVTF9KQU1PID0gMzAsCisgICAgICAgIEVUSElPUElDID0gMzEsCisgICAgICAgIENIRVJPS0VFID0gMzIsCisgICAgICAgIFVOSUZJRURfQ0FOQURJQU5fQUJPUklHSU5BTF9TWUxMQUJJQ1MgPSAzMywKKyAgICAgICAgT0dIQU0gPSAzNCwKKyAgICAgICAgUlVOSUMgPSAzNSwKKyAgICAgICAgS0hNRVIgPSAzNiwKKyAgICAgICAgTU9OR09MSUFOID0gMzcsCisgICAgICAgIExBVElOX0VYVEVOREVEX0FERElUSU9OQUwgPSAzOCwKKyAgICAgICAgR1JFRUtfRVhURU5ERUQgPSAzOSwKKyAgICAgICAgR0VORVJBTF9QVU5DVFVBVElPTiA9IDQwLAorICAgICAgICBTVVBFUlNDUklQVFNfQU5EX1NVQlNDUklQVFMgPSA0MSwKKyAgICAgICAgQ1VSUkVOQ1lfU1lNQk9MUyA9IDQyLAorICAgICAgICBDT01CSU5JTkdfTUFSS1NfRk9SX1NZTUJPTFMgPSA0MywKKyAgICAgICAgTEVUVEVSTElLRV9TWU1CT0xTID0gNDQsCisgICAgICAgIE5VTUJFUl9GT1JNUyA9IDQ1LAorICAgICAgICBBUlJPV1MgPSA0NiwKKyAgICAgICAgTUFUSEVNQVRJQ0FMX09QRVJBVE9SUyA9IDQ3LAorICAgICAgICBNSVNDRUxMQU5FT1VTX1RFQ0hOSUNBTCA9IDQ4LAorICAgICAgICBDT05UUk9MX1BJQ1RVUkVTID0gNDksCisgICAgICAgIE9QVElDQUxfQ0hBUkFDVEVSX1JFQ09HTklUSU9OID0gNTAsCisgICAgICAgIEVOQ0xPU0VEX0FMUEhBTlVNRVJJQ1MgPSA1MSwKKyAgICAgICAgQk9YX0RSQVdJTkcgPSA1MiwKKyAgICAgICAgQkxPQ0tfRUxFTUVOVFMgPSA1MywKKyAgICAgICAgR0VPTUVUUklDX1NIQVBFUyA9IDU0LAorICAgICAgICBNSVNDRUxMQU5FT1VTX1NZTUJPTFMgPSA1NSwKKyAgICAgICAgRElOR0JBVFMgPSA1NiwKKyAgICAgICAgQlJBSUxMRV9QQVRURVJOUyA9IDU3LAorICAgICAgICBDSktfUkFESUNBTFNfU1VQUExFTUVOVCA9IDU4LAorICAgICAgICBLQU5HWElfUkFESUNBTFMgPSA1OSwKKyAgICAgICAgSURFT0dSQVBISUNfREVTQ1JJUFRJT05fQ0hBUkFDVEVSUyA9IDYwLAorICAgICAgICBDSktfU1lNQk9MU19BTkRfUFVOQ1RVQVRJT04gPSA2MSwKKyAgICAgICAgSElSQUdBTkEgPSA2MiwKKyAgICAgICAgS0FUQUtBTkEgPSA2MywKKyAgICAgICAgQk9QT01PRk8gPSA2NCwKKyAgICAgICAgSEFOR1VMX0NPTVBBVElCSUxJVFlfSkFNTyA9IDY1LAorICAgICAgICBLQU5CVU4gPSA2NiwKKyAgICAgICAgQk9QT01PRk9fRVhURU5ERUQgPSA2NywKKyAgICAgICAgRU5DTE9TRURfQ0pLX0xFVFRFUlNfQU5EX01PTlRIUyA9IDY4LAorICAgICAgICBDSktfQ09NUEFUSUJJTElUWSA9IDY5LAorICAgICAgICBDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9BID0gNzAsCisgICAgICAgIENKS19VTklGSUVEX0lERU9HUkFQSFMgPSA3MSwKKyAgICAgICAgWUlfU1lMTEFCTEVTID0gNzIsCisgICAgICAgIFlJX1JBRElDQUxTID0gNzMsCisgICAgICAgIEhBTkdVTF9TWUxMQUJMRVMgPSA3NCwKKyAgICAgICAgSElHSF9TVVJST0dBVEVTID0gNzUsCisgICAgICAgIEhJR0hfUFJJVkFURV9VU0VfU1VSUk9HQVRFUyA9IDc2LAorICAgICAgICBMT1dfU1VSUk9HQVRFUyA9IDc3LAorICAgICAgICBQUklWQVRFX1VTRSA9IDc4LAorICAgICAgICBDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTID0gNzksCisgICAgICAgIEFMUEhBQkVUSUNfUFJFU0VOVEFUSU9OX0ZPUk1TID0gODAsCisgICAgICAgIEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQSA9IDgxLAorICAgICAgICBDT01CSU5JTkdfSEFMRl9NQVJLUyA9IDgyLAorICAgICAgICBDSktfQ09NUEFUSUJJTElUWV9GT1JNUyA9IDgzLAorICAgICAgICBTTUFMTF9GT1JNX1ZBUklBTlRTID0gODQsCisgICAgICAgIEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQiA9IDg1LAorICAgICAgICBTUEVDSUFMUyA9IDg2LAorICAgICAgICBIQUxGV0lEVEhfQU5EX0ZVTExXSURUSF9GT1JNUyA9IDg3OworICAgICAgICAKKyAgICBzdGF0aWMgZmluYWwgYnl0ZVtdIGJsb2NrVG9TY3JpcHQgPSB7CisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDAsIDxSRVNFUlZFRF9CTE9DSz4KKyAgICAgICAgTEFUSU5fU0NSSVBULCAvLyAxLCBCQVNJQ19MQVRJTgorICAgICAgICBMQVRJTl9TQ1JJUFQsIC8vIDIsIExBVElOXzFfU1VQUExFTUVOVAorICAgICAgICBMQVRJTl9TQ1JJUFQsIC8vIDMsIExBVElOX0VYVEVOREVEX0EKKyAgICAgICAgTEFUSU5fU0NSSVBULCAvLyA0LCBMQVRJTl9FWFRFTkRFRF9CCisgICAgICAgIExBVElOX1NDUklQVCwgLy8gNSwgSVBBX0VYVEVOU0lPTlMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNiwgU1BBQ0lOR19NT0RJRklFUl9MRVRURVJTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDcsIENPTUJJTklOR19ESUFDUklUSUNBTF9NQVJLUworICAgICAgICBHUkVFS19TQ1JJUFQsIC8vIDgsIEdSRUVLCisgICAgICAgIENZUklMTElDX1NDUklQVCwgLy8gOSwgQ1lSSUxMSUMKKyAgICAgICAgQVJNRU5JQU5fU0NSSVBULCAvLyAxMCwgQVJNRU5JQU4KKyAgICAgICAgSEVCUkVXX1NDUklQVCwgLy8gMTEsIEhFQlJFVworICAgICAgICBBUkFCSUNfU0NSSVBULCAvLyAxMiwgQVJBQklDCisgICAgICAgIFNZUklBQ19TQ1JJUFQsIC8vIDEzLCBTWVJJQUMKKyAgICAgICAgVEhBQU5BX1NDUklQVCwgLy8gMTQsIFRIQUFOQQorICAgICAgICBERVZBTkFHQVJJX1NDUklQVCwgLy8gMTUsIERFVkFOQUdBUkkKKyAgICAgICAgQkVOR0FMSV9TQ1JJUFQsIC8vIDE2LCBCRU5HQUxJCisgICAgICAgIEdVUk1VS0hJX1NDUklQVCwgLy8gMTcsIEdVUk1VS0hJCisgICAgICAgIEdVSkFSQVRJX1NDUklQVCwgLy8gMTgsIEdVSkFSQVRJCisgICAgICAgIE9SSVlBX1NDUklQVCwgLy8gMTksIE9SSVlBCisgICAgICAgIFRBTUlMX1NDUklQVCwgLy8gMjAsIFRBTUlMCisgICAgICAgIFRFTFVHVV9TQ1JJUFQsIC8vIDIxLCBURUxVR1UKKyAgICAgICAgS0FOTkFEQV9TQ1JJUFQsIC8vIDIyLCBLQU5OQURBCisgICAgICAgIE1BTEFZQUxBTV9TQ1JJUFQsIC8vIDIzLCBNQUxBWUFMQU0KKyAgICAgICAgU0lOSEFMQV9TQ1JJUFQsIC8vIDI0LCBTSU5IQUxBCisgICAgICAgIFRIQUlfU0NSSVBULCAvLyAyNSwgVEhBSQorICAgICAgICBMQU9fU0NSSVBULCAvLyAyNiwgTEFPCisgICAgICAgIFRJQkVUQU5fU0NSSVBULCAvLyAyNywgVElCRVRBTgorICAgICAgICBNWUFOTUFSX1NDUklQVCwgLy8gMjgsIE1ZQU5NQVIKKyAgICAgICAgR0VPUkdJQU5fU0NSSVBULCAvLyAyOSwgR0VPUkdJQU4KKyAgICAgICAgSkFNT19TQ1JJUFQsIC8vIDMwLCBIQU5HVUxfSkFNTworICAgICAgICBFVEhJT1BJQ19TQ1JJUFQsIC8vIDMxLCBFVEhJT1BJQworICAgICAgICBDSEVST0tFRV9TQ1JJUFQsIC8vIDMyLCBDSEVST0tFRQorICAgICAgICBBQk9SSUdJTkFMX1NDUklQVCwgLy8gMzMsIFVOSUZJRURfQ0FOQURJQU5fQUJPUklHSU5BTF9TWUxMQUJJQ1MKKyAgICAgICAgT0dIQU1fU0NSSVBULCAvLyAzNCwgT0dIQU0KKyAgICAgICAgUlVOSUNfU0NSSVBULCAvLyAzNSwgUlVOSUMKKyAgICAgICAgS0hNRVJfU0NSSVBULCAvLyAzNiwgS0hNRVIKKyAgICAgICAgTU9OR09MSUFOX1NDUklQVCwgLy8gMzcsIE1PTkdPTElBTgorICAgICAgICBMQVRJTl9TQ1JJUFQsIC8vIDM4LCBMQVRJTl9FWFRFTkRFRF9BRERJVElPTkFMCisgICAgICAgIEdSRUVLX1NDUklQVCwgLy8gMzksIEdSRUVLX0VYVEVOREVECisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDQwLCBHRU5FUkFMX1BVTkNUVUFUSU9OCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDQxLCBTVVBFUlNDUklQVFNfQU5EX1NVQlNDUklQVFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDIsIENVUlJFTkNZX1NZTUJPTFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDMsIENPTUJJTklOR19NQVJLU19GT1JfU1lNQk9MUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA0NCwgTEVUVEVSTElLRV9TWU1CT0xTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDQ1LCBOVU1CRVJfRk9STVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDYsIEFSUk9XUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA0NywgTUFUSEVNQVRJQ0FMX09QRVJBVE9SUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA0OCwgTUlTQ0VMTEFORU9VU19URUNITklDQUwKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNDksIENPTlRST0xfUElDVFVSRVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNTAsIE9QVElDQUxfQ0hBUkFDVEVSX1JFQ09HTklUSU9OCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDUxLCBFTkNMT1NFRF9BTFBIQU5VTUVSSUNTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDUyLCBCT1hfRFJBV0lORworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA1MywgQkxPQ0tfRUxFTUVOVFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNTQsIEdFT01FVFJJQ19TSEFQRVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNTUsIE1JU0NFTExBTkVPVVNfU1lNQk9MUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA1NiwgRElOR0JBVFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNTcsIEJSQUlMTEVfUEFUVEVSTlMKKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNTgsIENKS19SQURJQ0FMU19TVVBQTEVNRU5UCisgICAgICAgIEhBTl9TQ1JJUFQsIC8vIDU5LCBLQU5HWElfUkFESUNBTFMKKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNjAsIElERU9HUkFQSElDX0RFU0NSSVBUSU9OX0NIQVJBQ1RFUlMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNjEsIENKS19TWU1CT0xTX0FORF9QVU5DVFVBVElPTgorICAgICAgICBISVJBR0FOQV9TQ1JJUFQsIC8vIDYyLCBISVJBR0FOQQorICAgICAgICBLQVRBS0FOQV9TQ1JJUFQsIC8vIDYzLCBLQVRBS0FOQQorICAgICAgICBCT1BPTU9GT19TQ1JJUFQsIC8vIDY0LCBCT1BPTU9GTworICAgICAgICBKQU1PX1NDUklQVCwgLy8gNjUsIEhBTkdVTF9DT01QQVRJQklMSVRZX0pBTU8KKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNjYsIEtBTkJVTgorICAgICAgICBCT1BPTU9GT19TQ1JJUFQsIC8vIDY3LCBCT1BPTU9GT19FWFRFTkRFRAorICAgICAgICBDT01NT05fU0NSSVBULCAvLyA2OCwgRU5DTE9TRURfQ0pLX0xFVFRFUlNfQU5EX01PTlRIUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA2OSwgQ0pLX0NPTVBBVElCSUxJVFkKKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNzAsIENKS19VTklGSUVEX0lERU9HUkFQSFNfRVhURU5TSU9OX0EKKyAgICAgICAgSEFOX1NDUklQVCwgLy8gNzEsIENKS19VTklGSUVEX0lERU9HUkFQSFMKKyAgICAgICAgWUlfU0NSSVBULCAvLyA3MiwgWUlfU1lMTEFCTEVTCisgICAgICAgIFlJX1NDUklQVCwgLy8gNzMsIFlJX1JBRElDQUxTCisgICAgICAgIEhBTkdVTF9TQ1JJUFQsIC8vIDc0LCBIQU5HVUxfU1lMTEFCTEVTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDc1LCBISUdIX1NVUlJPR0FURVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNzYsIEhJR0hfUFJJVkFURV9VU0VfU1VSUk9HQVRFUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA3NywgTE9XX1NVUlJPR0FURVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gNzgsIFBSSVZBVEVfVVNFCisgICAgICAgIEhBTl9TQ1JJUFQsIC8vIDc5LCBDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDgwLCBBTFBIQUJFVElDX1BSRVNFTlRBVElPTl9GT1JNUworICAgICAgICBBUkFCSUNfU0NSSVBULCAvLyA4MSwgQVJBQklDX1BSRVNFTlRBVElPTl9GT1JNU19BCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDgyLCBDT01CSU5JTkdfSEFMRl9NQVJLUworICAgICAgICBDT01NT05fU0NSSVBULCAvLyA4MywgQ0pLX0NPTVBBVElCSUxJVFlfRk9STVMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gODQsIFNNQUxMX0ZPUk1fVkFSSUFOVFMKKyAgICAgICAgQVJBQklDX1NDUklQVCwgLy8gODUsIEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQgorICAgICAgICBDT01NT05fU0NSSVBULCAvLyA4NiwgU1BFQ0lBTFMKKyAgICAgICAgQ09NTU9OX1NDUklQVCwgLy8gODcsIEhBTEZXSURUSF9BTkRfRlVMTFdJRFRIX0ZPUk1TCisgICAgICAgIENPTU1PTl9TQ1JJUFQsIC8vIDg4LCBTUEVDSUFMUworICAgIH07CisgICAgICAgIAorICAgIC8vIGNvdWxkIGJlIGZ1cnRoZXIgcmVkdWNlZCB0byBhIGJ5dGUgYXJyYXksIGJ1dCBJIGRpZG4ndCBib3RoZXIuCisgICAgc3RhdGljIGZpbmFsIGludFtdW10gc3BsaXQgPSB7CisgICAgICAgIHsweDAyNTAsIDQsIDV9LCAvLyAtMQorICAgICAgICB7MHgwMkIwLCA1LCA2fSwgLy8gLTIKKyAgICAgICAgezB4MDM3MCwgNywgOH0sIC8vIC0zCisgICAgICAgIHsweDA1MzAsIDAsIDEwfSwgLy8gLTQKKyAgICAgICAgezB4MDU5MCwgMTAsIDExfSwgLy8gLTUKKyAgICAgICAgezB4MDc1MCwgMTMsIDB9LCAvLyAtNgorICAgICAgICB7MHgwN0MwLCAxNCwgMH0sIC8vIC03CisgICAgICAgIHsweDEwQTAsIDI4LCAyOX0sIC8vIC04CisgICAgICAgIHsweDEzQTAsIDAsIDMyfSwgLy8gLTkKKyAgICAgICAgezB4MTZBMCwgMzQsIDM1fSwgLy8gLTEwCisgICAgICAgIHsweDE4QjAsIDM3LCAwfSwgLy8gLTExCisgICAgICAgIHsweDIwNzAsIDQwLCA0MX0sIC8vIC0xMgorICAgICAgICB7MHgyMEEwLCA0MSwgLTMxfSwgLy8gLTEzCisgICAgICAgIHsweDIxNTAsIDQ0LCA0NX0sIC8vIC0xNAorICAgICAgICB7MHgyMTkwLCA0NSwgNDZ9LCAvLyAtMTUKKyAgICAgICAgezB4MjQ0MCwgNDksIC0zMn0sIC8vIC0xNgorICAgICAgICB7MHgyNUEwLCA1MywgNTR9LCAvLyAtMTcKKyAgICAgICAgezB4MjdDMCwgNTYsIDB9LCAvLyAtMTgKKyAgICAgICAgezB4MkZFMCwgNTksIC0zM30sIC8vIC0xOQorICAgICAgICB7MHgzMDQwLCA2MSwgNjJ9LCAvLyAtMjAKKyAgICAgICAgezB4MzBBMCwgNjIsIDYzfSwgLy8gLTIxCisgICAgICAgIHsweDMxMzAsIDY0LCA2NX0sIC8vIC0yMgorICAgICAgICB7MHgzMTkwLCA2NSwgLTM0fSwgLy8gLTIzCisgICAgICAgIHsweDREQjYsIDcwLCAwfSwgLy8gLTI0CisgICAgICAgIHsweEE0OTAsIDcyLCAtMzV9LCAvLyAtMjUKKyAgICAgICAgezB4RDdBNCwgNzQsIDB9LCAvLyAtMjYKKyAgICAgICAgezB4RkI1MCwgODAsIDgxfSwgLy8gLTI3CisgICAgICAgIHsweEZFMjAsIDAsIC0zNn0sIC8vIC0yOAorICAgICAgICB7MHhGRUZGLCA4NSwgODZ9LCAvLyAtMjkKKyAgICAgICAgezB4RkZGMCwgODcsIC0zN30sIC8vIC0zMAorICAgICAgICB7MHgyMEQwLCA0MiwgNDN9LCAvLyAtMzEKKyAgICAgICAgezB4MjQ2MCwgNTAsIDUxfSwgLy8gLTMyCisgICAgICAgIHsweDJGRjAsIDAsIDYwfSwgLy8gLTMzCisgICAgICAgIHsweDMxQTAsIDY2LCAtMzh9LCAvLyAtMzQKKyAgICAgICAgezB4QTREMCwgNzMsIDB9LCAvLy0zNQorICAgICAgICB7MHhGRTMwLCA4MiwgLTM5fSwgLy8tMzYKKyAgICAgICAgezB4RkZGRSwgODgsIDB9LCAvLy0zNworICAgICAgICB7MHgzMUMwLCA2NywgMH0sIC8vIC0zOAorICAgICAgICB7MHhGRTUwLCA4MywgLTQwfSwgLy8tMzkKKyAgICAgICAgezB4RkU3MCwgODQsIDg1fSAvLyAtNDAKKyAgICB9OworICAgICAgICAKKyAgICBzdGF0aWMgZmluYWwgYnl0ZVtdIGNoYXJUb0Jsb2NrID0geworICAgICAgMSwgMiwgMywgNCwgLTEsIC0yLCAtMywgOCwgOSwgOSwgLTQsIC01LCAxMiwgMTIsIC02LCAtNywKKyAgICAgIDAsIDAsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyNywKKyAgICAgIDI4LCAtOCwgMzAsIDMwLCAzMSwgMzEsIDMxLCAtOSwgMzMsIDMzLCAzMywgMzMsIDMzLCAtMTAsIDAsIDM2LAorICAgICAgMzcsIC0xMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzgsIDM4LCAzOSwgMzksCisgICAgICAtMTIsIC0xMywgLTE0LCAtMTUsIDQ3LCA0NywgNDgsIDQ4LCAtMTYsIDUxLCA1MiwgLTE3LCA1NSwgNTUsIDU2LCAtMTgsCisgICAgICA1NywgNTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU4LCA1OSwgLTE5LAorICAgICAgLTIwLCAtMjEsIC0yMiwgLTIzLCA2OCwgNjgsIDY5LCA2OSwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLAorICAgICAgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsCisgICAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwKKyAgICAgIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgLTI0LCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsCisgICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsCisgICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsCisgICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwKKyAgICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLAorICAgICAgNzIsIDcyLCA3MiwgNzIsIDcyLCA3MiwgNzIsIDcyLCA3MiwgLTI1LCAwLCAwLCAwLCAwLCAwLCAwLAorICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LAorICAgICAgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsCisgICAgICA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwKKyAgICAgIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LAorICAgICAgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsCisgICAgICA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCA3NCwgNzQsIDc0LCAtMjYsCisgICAgICA3NSwgNzUsIDc1LCA3NSwgNzUsIDc1LCA3NSwgNzYsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywKKyAgICAgIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LAorICAgICAgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsCisgICAgICA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwKKyAgICAgIDc4LCA3OCwgNzksIDc5LCA3OSwgNzksIC0yNywgODEsIDgxLCA4MSwgODEsIDgxLCAtMjgsIC0yOSwgODcsIC0zMAorICAgIH07CisgICAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9UcmFuc2xpdGVyYXRvclRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9UcmFuc2xpdGVyYXRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZjdjYTc3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1RyYW5zbGl0ZXJhdG9yVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzQwMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHlFeHRlbnNpb25zOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FzZUluc2Vuc2l0aXZlU3RyaW5nOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyAgICAgICAgICAgICAgICAgICAgIEhPVyBUTyBVU0UgVEhJUyBURVNUIEZJTEUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtb3ItCisgICAgICAgICAgICAgICAgICBIb3cgSSBkZXZlbG9wZWQgb24gdHdvIHBsYXRmb3JtcworICAgICAgICAgICAgICAgIHdpdGhvdXQgbG9zaW5nICh0b28gbXVjaCBvZikgbXkgbWluZAorCisKKzEuIEFkZCBuZXcgdGVzdHMgYnkgY29weWluZy9wYXN0aW5nL2NoYW5naW5nIGV4aXN0aW5nIHRlc3RzLiAgT24gSmF2YSwKKyAgIGFueSBwdWJsaWMgdm9pZCBtZXRob2QgbmFtZWQgVGVzdC4uLigpIHRha2luZyBubyBwYXJhbWV0ZXJzIGJlY29tZXMKKyAgIGEgdGVzdC4gIE9uIEMrKywgeW91IG5lZWQgdG8gbW9kaWZ5IHRoZSBoZWFkZXIgYW5kIGFkZCBhIGxpbmUgdG8KKyAgIHRoZSBydW5JbmRleGVkVGVzdCgpIGRpc3BhdGNoIG1ldGhvZC4KKworMi4gTWFrZSBsaWJlcmFsIHVzZSBvZiB0aGUgZXhwZWN0KCkgbWV0aG9kOyBpdCBpcyB5b3VyIGZyaWVuZC4KKworMy4gVGhlIHRlc3RzIGluIHRoaXMgZmlsZSBleGFjdGx5IG1hdGNoIHRob3NlIGluIGEgc2lzdGVyIGZpbGUgb24gdGhlCisgICBvdGhlciBzaWRlLiAgVGhlIHR3byBmaWxlcyBhcmU6CisKKyAgIGljdTRqOiAgc3JjL2NvbS5pYm0uaWN1LmRldi50ZXN0L3RyYW5zbGl0L1RyYW5zbGl0ZXJhdG9yVGVzdC5qYXZhCisgICBpY3U0YzogIHNvdXJjZS90ZXN0L2ludGx0ZXN0L3RyYW5zdHN0LmNwcAorCisgICAgICAgICAgICAgICAgICA9PT4gVEhJUyBJUyBUSEUgSU1QT1JUQU5UIFBBUlQgPD09CisKKyAgIFdoZW4geW91IGFkZCBhIHRlc3QgaW4gdGhpcyBmaWxlLCBhZGQgaXQgaW4gdHJhbnN0c3QuY3BwIHRvby4KKyAgIEdpdmUgaXQgdGhlIHNhbWUgbmFtZSBhbmQgcHV0IGl0IGluIHRoZSBzYW1lIHJlbGF0aXZlIHBsYWNlLiAgVGhpcworICAgbWFrZXMgbWFpbnRlbmFuY2UgYSBsb3Qgc2ltcGxlciBmb3IgYW55IHBvb3Igc291bCB3aG8gZW5kcyB1cAorICAgdHJ5aW5nIHRvIHN5bmNocm9uaXplIHRoZSB0ZXN0cyBiZXR3ZWVuIGljdTRqIGFuZCBpY3U0Yy4KKworNC4gSWYgeW91IE1VU1QgZW50ZXIgYSB0ZXN0IHRoYXQgaXMgTk9UIHBhcmFsbGVsZWQgaW4gdGhlIHNpc3RlciBmaWxlLAorICAgdGhlbiBhZGQgaXQgaW4gdGhlIHNwZWNpYWwgbm9uLW1pcnJvcmVkIHNlY3Rpb24uICBUaGVzZSBhcmUKKyAgIGxhYmVsZWQKKworICAgICAiaWN1NGogT05MWSIKKworICAgb3IKKworICAgICAiaWN1NGMgT05MWSIKKworICAgTWFrZSBzdXJlIHlvdSBkb2N1bWVudCB0aGUgcmVhc29uIHRoZSB0ZXN0IGlzIGhlcmUgYW5kIG5vdCB0aGVyZS4KKworCitUaGFuayB5b3UuCitUaGUgTWFuYWdlbWVudAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IEdlbmVyYWwgdGVzdCBvZiBUcmFuc2xpdGVyYXRvcgorICovCitwdWJsaWMgY2xhc3MgVHJhbnNsaXRlcmF0b3JUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUcmFuc2xpdGVyYXRvclRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEluc3RhbnRpYXRpb24oKSB7CisgICAgICAgIGxvbmcgbXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgU3RyaW5nIElEOworICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGUgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVJRHMoKTsgZS5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICBJRCA9IChTdHJpbmcpIGUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGlmIChJRC5lcXVhbHMoIkxhdGluLUhhbi9kZWZpbml0aW9uIikpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuVE9ETzogZGlzYWJsaW5nIExhdGluLUhhbi9kZWZpbml0aW9uIGNoZWNrIGZvciBub3c6IGZpeCBsYXRlciIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBvbmx5IHRydWUgZm9yIHNvbWUgc3ViY2xhc3NlcworLy8gICAgICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIGdldCBhIG5ldyBpbnN0YW5jZSBpZiB3ZSB0cnkgYWdhaW4KKy8vICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworLy8gICAgICAgICAgICAgICAgaWYgKHQgIT0gdDIpIHsKKy8vICAgICAgICAgICAgICAgICAgICBsb2dsbigiT0s6ICIgKyBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZShJRCkgKyAiICgiICsgSUQgKyAiKTogIiArIHQpOworLy8gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIElEICsgIiByZXR1cm5lZCBpZGVudGljYWwgaW5zdGFuY2VzIik7CisvLyAgICAgICAgICAgICAgICAgICAgdCA9IG51bGw7CisvLyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIElEKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBleDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIE5vdyB0ZXN0IHRvUnVsZXMKKyAgICAgICAgICAgICAgICBTdHJpbmcgcnVsZXMgPSBudWxsOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGVzID0gdC50b1J1bGVzKHRydWUpOworCisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHUgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIngiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgSUQgKyAiLnRvUnVsZXMoKSA9PiBiYWQgcnVsZXM6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlcyk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IGV4MjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgdGVzdCB0aGUgZmFpbHVyZSBwYXRoCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBJRCA9ICI8Tm90IGEgdmFsaWQgVHJhbnNsaXRlcmF0b3IgSUQ+IjsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIElEICsgIiByZXR1cm5lZCAiICsgdCk7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiBCb2d1cyBJRCBoYW5kbGVkIHByb3Blcmx5Iik7CisgICAgICAgIH0KKworICAgICAgICBtcyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gbXM7CisgICAgICAgIGxvZ2xuKCJFbGFwc2VkIHRpbWU6ICIgKyBtcyArICIgbXMiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2ltcGxlUnVsZXMoKSB7CisgICAgICAgIC8qIEV4YW1wbGU6IHJ1bGVzIDEuIGFiPnh8eQorICAgICAgICAgKiAgICAgICAgICAgICAgICAyLiB5Yz56CisgICAgICAgICAqCisgICAgICAgICAqIFtdfGVhYmNkICBzdGFydCAtIG5vIG1hdGNoLCBjb3B5IGUgdG8gdHJhbmxhdGVkIGJ1ZmZlcgorICAgICAgICAgKiBbZV18YWJjZCAgbWF0Y2ggcnVsZSAxIC0gY29weSBvdXRwdXQgJiBhZGp1c3QgY3Vyc29yCisgICAgICAgICAqIFtleHx5XWNkICBtYXRjaCBydWxlIDIgLSBjb3B5IG91dHB1dCAmIGFkanVzdCBjdXJzb3IKKyAgICAgICAgICogW2V4el18ZCAgIG5vIG1hdGNoLCBjb3B5IGQgdG8gdHJhbnNsaXRlcmF0ZWQgYnVmZmVyCisgICAgICAgICAqIFtleHpkXXwgICBkb25lCisgICAgICAgICAqLworICAgICAgICBleHBlY3QoImFiPnh8eTsiICsKKyAgICAgICAgICAgICAgICJ5Yz56IiwKKyAgICAgICAgICAgICAgICJlYWJjZCIsICJleHpkIik7CisKKyAgICAgICAgLyogQW5vdGhlciBzZXQgb2YgcnVsZXM6CisgICAgICAgICAqICAgIDEuIGFiPnh8eXphY3cKKyAgICAgICAgICogICAgMi4gemE+cQorICAgICAgICAgKiAgICAzLiBxYz5yCisgICAgICAgICAqICAgIDQuIGN3Pm4KKyAgICAgICAgICoKKyAgICAgICAgICogW118YWIgICAgICAgUnVsZSAxCisgICAgICAgICAqIFt4fHl6YWN3XSAgIE5vIG1hdGNoCisgICAgICAgICAqIFt4eXx6YWN3XSAgIFJ1bGUgMgorICAgICAgICAgKiBbeHlxfGN3XSAgICBSdWxlIDQKKyAgICAgICAgICogW3h5cW5dfCAgICAgRG9uZQorICAgICAgICAgKi8KKyAgICAgICAgZXhwZWN0KCJhYj54fHl6YWN3OyIgKworICAgICAgICAgICAgICAgInphPnE7IiArCisgICAgICAgICAgICAgICAicWM+cjsiICsKKyAgICAgICAgICAgICAgICJjdz5uIiwKKyAgICAgICAgICAgICAgICJhYiIsICJ4eXFuIik7CisKKyAgICAgICAgLyogVGVzdCBjYXRlZ29yaWVzCisgICAgICAgICAqLworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJGR1bW15PVx1RTEwMDsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHZvd2VsPVthZWlvdUFFSU9VXTsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJGx1PVs6THU6XTsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHZvd2VsIH0gJGx1ID4gJyEnOyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkdm93ZWwgPiAnJic7IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIichJyB7ICRsdSA+ICdeJzsiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJGx1ID4gJyonOyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhPkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgZXhwZWN0KHQsICJhYmNkZWZnQUJDREVGR1UiLCAiJmJjZCZmZyFeKiohXiomIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBpbmxpbmUgc2V0IHN5bnRheCBhbmQgc2V0IHZhcmlhYmxlIHN5bnRheC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SW5saW5lU2V0KCkgeworICAgICAgICBleHBlY3QoInsgWzpMbDpdIH0geCA+IHk7IFs6TGw6XSA+IHo7IiwgImFBYnhxIiwgInpBeXp6Iik7CisgICAgICAgIGV4cGVjdCgiYVswLTldYiA+IHFycyIsICIxYTdiOSIsICIxcXJzOSIpOworCisgICAgICAgIGV4cGVjdCgiJGRpZ2l0ID0gWzAtOV07IiArCisgICAgICAgICAgICAgICAiJGFscGhhID0gW2EtekEtWl07IiArCisgICAgICAgICAgICAgICAiJGFscGhhbnVtZXJpYyA9IFskZGlnaXQgJGFscGhhXTsiICsgLy8gKioqCisgICAgICAgICAgICAgICAiJHNwZWNpYWwgPSBbXiRhbHBoYW51bWVyaWNdOyIgKyAgICAgLy8gKioqCisgICAgICAgICAgICAgICAiJGFscGhhbnVtZXJpYyA+ICctJzsiICsKKyAgICAgICAgICAgICAgICIkc3BlY2lhbCA+ICcqJzsiLAorCisgICAgICAgICAgICAgICAidGh4LTExMzgiLCAiLS0tKi0tLS0iKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgc29tZSBpbnZlcnNlcyBhbmQgY29uZmlybSB0aGF0IHRoZXkgd29yay4gIFdlIGhhdmUgdG8gYmUKKyAgICAgKiBjYXJlZnVsIGhvdyB3ZSBkbyB0aGlzLCBzaW5jZSB0aGUgaW52ZXJzZXMgd2lsbCBub3QgYmUgdHJ1ZQorICAgICAqIGludmVyc2VzIC0tIHdlIGNhbid0IHRocm93IGFueSByYW5kb20gc3RyaW5nIGF0IHRoZSBjb21wb3NpdGlvbgorICAgICAqIG9mIHRoZSB0cmFuc2xpdGVyYXRvcnMgYW5kIGV4cGVjdCB0aGUgaWRlbnRpdHkgZnVuY3Rpb24uICBGIHgKKyAgICAgKiBGJyAhPSBJLiAgSG93ZXZlciwgaWYgd2UgYXJlIGNhcmVmdWwgYWJvdXQgdGhlIGlucHV0LCB3ZSB3aWxsCisgICAgICogZ2V0IHRoZSBleHBlY3RlZCByZXN1bHRzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSdWxlQmFzZWRJbnZlcnNlKCkgeworICAgICAgICBTdHJpbmcgUlVMRVMgPQorICAgICAgICAgICAgImFiYz56eXg7IiArCisgICAgICAgICAgICAiYWI+eXo7IiArCisgICAgICAgICAgICAiYmM+eng7IiArCisgICAgICAgICAgICAiY2E+eHk7IiArCisgICAgICAgICAgICAiYT54OyIgKworICAgICAgICAgICAgImI+eTsiICsKKyAgICAgICAgICAgICJjPno7IiArCisKKyAgICAgICAgICAgICJhYmM8enl4OyIgKworICAgICAgICAgICAgImFiPHl6OyIgKworICAgICAgICAgICAgImJjPHp4OyIgKworICAgICAgICAgICAgImNhPHh5OyIgKworICAgICAgICAgICAgImE8eDsiICsKKyAgICAgICAgICAgICJiPHk7IiArCisgICAgICAgICAgICAiYzx6OyIgKworCisgICAgICAgICAgICAiIjsKKworICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgLy8gQ2FyZWZ1bCBoZXJlIC0tIHJhbmRvbSBzdHJpbmdzIHdpbGwgbm90IHdvcmsuICBJZiB3ZSBrZWVwCisgICAgICAgICAgICAvLyB0aGUgbGVmdCBzaWRlIHRvIHRoZSBkb21haW4gYW5kIHRoZSByaWdodCBzaWRlIHRvIHRoZSByYW5nZQorICAgICAgICAgICAgLy8gd2Ugd2lsbCBiZSBva2F5IHRob3VnaCAobGVmdCwgYWJjOyByaWdodCB4eXopLgorICAgICAgICAgICAgImEiLCAieCIsCisgICAgICAgICAgICAiYWJjYWNhYiIsICJ6eXh4eHl5IiwKKyAgICAgICAgICAgICJjYWNjYiIsICJ4eXp6eSIsCisgICAgICAgIH07CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgZndkID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwgUlVMRVMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBUcmFuc2xpdGVyYXRvciByZXYgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIjxJRD4iLCBSVUxFUywgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgZXhwZWN0KGZ3ZCwgREFUQVtpXSwgREFUQVtpKzFdKTsKKyAgICAgICAgICAgIGV4cGVjdChyZXYsIERBVEFbaSsxXSwgREFUQVtpXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCYXNpYyB0ZXN0IG9mIGtleWJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RLZXlib2FyZCgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiPElEPiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBzY2g+WTsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyJwcz55OyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArImNoPng7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsiYT5BOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgLy8gaW5zZXJ0aW9uLCBidWZmZXIKKyAgICAgICAgICAgICJhIiwgIkEiLAorICAgICAgICAgICAgInAiLCAiQXAiLAorICAgICAgICAgICAgInMiLCAiQXBzIiwKKyAgICAgICAgICAgICJjIiwgIkFwc2MiLAorICAgICAgICAgICAgImEiLCAiQXljQSIsCisgICAgICAgICAgICAicHNjaCIsICJBeWNBWSIsCisgICAgICAgICAgICBudWxsLCAiQXljQVkiLCAvLyBudWxsIG1lYW5zIGZpbmlzaEtleWJvYXJkVHJhbnNsaXRlcmF0aW9uCisgICAgICAgIH07CisKKyAgICAgICAga2V5Ym9hcmRBdXgodCwgREFUQSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQmFzaWMgdGVzdCBvZiBrZXlib2FyZCB3aXRoIGN1cnNvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0S2V5Ym9hcmQyKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieWNoPlk7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsicHM+fHk7IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsiY2g+eDsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyJhPkE7IiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAvLyBpbnNlcnRpb24sIGJ1ZmZlcgorICAgICAgICAgICAgImEiLCAiQSIsCisgICAgICAgICAgICAicCIsICJBcCIsCisgICAgICAgICAgICAicyIsICJBcHMiLCAvLyBtb2RpZmllZCBmb3Igcm9sbGJhY2sgLSAiQXkiLAorICAgICAgICAgICAgImMiLCAiQXBzYyIsIC8vIG1vZGlmaWVkIGZvciByb2xsYmFjayAtICJBeWMiLAorICAgICAgICAgICAgImEiLCAiQXljQSIsCisgICAgICAgICAgICAicCIsICJBeWNBcCIsCisgICAgICAgICAgICAicyIsICJBeWNBcHMiLCAvLyBtb2RpZmllZCBmb3Igcm9sbGJhY2sgLSAiQXljQXkiLAorICAgICAgICAgICAgImMiLCAiQXljQXBzYyIsIC8vIG1vZGlmaWVkIGZvciByb2xsYmFjayAtICJBeWNBeWMiLAorICAgICAgICAgICAgImgiLCAiQXljQVkiLAorICAgICAgICAgICAgbnVsbCwgIkF5Y0FZIiwgLy8gbnVsbCBtZWFucyBmaW5pc2hLZXlib2FyZFRyYW5zbGl0ZXJhdGlvbgorICAgICAgICB9OworCisgICAgICAgIGtleWJvYXJkQXV4KHQsIERBVEEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3Qga2V5Ym9hcmQgdHJhbnNsaXRlcmF0aW9uIHdpdGggYmFjay1yZXBsYWNlbWVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0S2V5Ym9hcmQzKCkgeworICAgICAgICAvLyBXZSB3YW50IHRoPnogYnV0IHQ+eS4gIEZ1cnRoZXJtb3JlLCBkdXJpbmcga2V5Ym9hcmQKKyAgICAgICAgLy8gdHJhbnNsaXRlcmF0aW9uIHdlIHdhbnQgdD55IHRoZW4geWg+eiBpZiB0LCB0aGVuIGggYXJlCisgICAgICAgIC8vIHR5cGVkLgorICAgICAgICBTdHJpbmcgUlVMRVMgPQorICAgICAgICAgICAgInQ+fHk7IiArCisgICAgICAgICAgICAieWg+ejsiICsKKyAgICAgICAgICAgICIiOworCisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAvLyBDb2x1bW4gMTogY2hhcmFjdGVycyB0byBhZGQgdG8gYnVmZmVyIChhcyBpZiB0eXBlZCkKKyAgICAgICAgICAgIC8vIENvbHVtbiAyOiBleHBlY3RlZCBhcHBlYXJhbmNlIG9mIGJ1ZmZlciBhZnRlcgorICAgICAgICAgICAgLy8gICAgICAgICAgIGtleWJvYXJkIHhsaXRlcmF0aW9uLgorICAgICAgICAgICAgImEiLCAiYSIsCisgICAgICAgICAgICAiYiIsICJhYiIsCisgICAgICAgICAgICAidCIsICJhYnQiLCAvLyBtb2RpZmllZCBmb3Igcm9sbGJhY2sgLSAiYWJ5IiwKKyAgICAgICAgICAgICJjIiwgImFieWMiLAorICAgICAgICAgICAgInQiLCAiYWJ5Y3QiLCAvLyBtb2RpZmllZCBmb3Igcm9sbGJhY2sgLSAiYWJ5Y3kiLAorICAgICAgICAgICAgImgiLCAiYWJ5Y3oiLAorICAgICAgICAgICAgbnVsbCwgImFieWN6IiwgLy8gbnVsbCBtZWFucyBmaW5pc2hLZXlib2FyZFRyYW5zbGl0ZXJhdGlvbgorICAgICAgICB9OworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIjxJRD4iLCBSVUxFUywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGtleWJvYXJkQXV4KHQsIERBVEEpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBrZXlib2FyZEF1eChUcmFuc2xpdGVyYXRvciB0LCBTdHJpbmdbXSBEQVRBKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKCk7CisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHMgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgbG9nOworICAgICAgICAgICAgaWYgKERBVEFbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxvZyA9IG5ldyBTdHJpbmdCdWZmZXIocy50b1N0cmluZygpICsgIiArICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgREFUQVtpXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIC0+ICIpOworICAgICAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZShzLCBpbmRleCwgREFUQVtpXSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZyA9IG5ldyBTdHJpbmdCdWZmZXIocy50b1N0cmluZygpICsgIiA9PiAiKTsKKyAgICAgICAgICAgICAgICB0LmZpbmlzaFRyYW5zbGl0ZXJhdGlvbihzLCBpbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dChsb2csIHMsIGluZGV4KTsKKyAgICAgICAgICAgIGlmIChzLnRvU3RyaW5nKCkuZXF1YWxzKERBVEFbaSsxXSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihsb2cudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgbG9nLnRvU3RyaW5nKCkgKyAiLCBleHBlY3RlZCAiICsgREFUQVtpKzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIExhdGluLUFyYWJpYyBoYXMgYmVlbiB0ZW1wb3JhcmlseSByZW1vdmVkIHVudGlsIGl0IGNhbiBiZQorICAgIC8vIGRvbmUgY29ycmVjdGx5LgorCisvLyAgcHVibGljIHZvaWQgVGVzdEFyYWJpYygpIHsKKy8vICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKy8vICAgICAgICAgICJBcmFiaWMiLAorLy8gICAgICAgICAgICAgICJcdTA2MmFcdTA2MmFcdTA2NDVcdTA2MmFcdTA2MzkgIisKKy8vICAgICAgICAgICAgICAiXHUwNjI3XHUwNjQ0XHUwNjQ0XHUwNjNhXHUwNjI5ICIrCisvLyAgICAgICAgICAgICAgIlx1MDYyN1x1MDY0NFx1MDYzOVx1MDYzMVx1MDYyOFx1MDYyOFx1MDY0YVx1MDYyOSAiKworLy8gICAgICAgICAgICAgICJcdTA2MjhcdTA2MjhcdTA2NDZcdTA2MzhcdTA2NDUgIisKKy8vICAgICAgICAgICAgICAiXHUwNjQzXHUwNjJhXHUwNjI3XHUwNjI4XHUwNjI4XHUwNjRhXHUwNjI5ICIrCisvLyAgICAgICAgICAgICAgIlx1MDYyY1x1MDY0NVx1MDY0YVx1MDY0NFx1MDYyOSIKKy8vICAgICAgfTsKKworLy8gICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLUFyYWJpYyIpOworLy8gICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTIpIHsKKy8vICAgICAgICAgIGV4cGVjdCh0LCBEQVRBW2ldLCBEQVRBW2krMV0pOworLy8gICAgICB9CisvLyAgfQorCisgICAgLyoqCisgICAgICogQ29tcG9zZSB0aGUgS2FuYSB0cmFuc2xpdGVyYXRvciBmb3J3YXJkIGFuZCByZXZlcnNlIGFuZCB0cnkKKyAgICAgKiBzb21lIHN0cmluZ3MgdGhhdCBzaG91bGQgY29tZSBvdXQgdW5jaGFuZ2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3VuZEthbmEoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tS2F0YWthbmE7S2F0YWthbmEtTGF0aW4iKTsKKyAgICAgICAgZXhwZWN0KHQsICJhYWFhYSIsICJhYWFhYSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBvc2UgdGhlIGhleCB0cmFuc2xpdGVyYXRvcnMgZm9yd2FyZCBhbmQgcmV2ZXJzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG91bmRIZXgoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGEgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleCIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBiID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkhleC1BbnkiKTsKKyAgICAgICAgLy8gVHJhbnNsaXRlcmF0b3JbXSB0cmFucyA9IHsgYSwgYiB9OworICAgICAgICAvLyBUcmFuc2xpdGVyYXRvciBhYiA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKHRyYW5zKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgYWIgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleDtIZXgtQW55Iik7CisKKyAgICAgICAgLy8gRG8gc29tZSBiYXNpYyB0ZXN0cyBvZiBiCisgICAgICAgIGV4cGVjdChiLCAiXFx1MDAzMFxcdTAwMzEiLCAiMDEiKTsKKworICAgICAgICBTdHJpbmcgcyA9ICJhYmNkZSI7CisgICAgICAgIGV4cGVjdChhYiwgcywgcyk7CisKKyAgICAgICAgLy8gdHJhbnMgPSBuZXcgVHJhbnNsaXRlcmF0b3JbXSB7IGIsIGEgfTsKKyAgICAgICAgLy8gVHJhbnNsaXRlcmF0b3IgYmEgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSh0cmFucyk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGJhID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkhleC1Bbnk7QW55LUhleCIpOworICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyBzdHIgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcocyk7CisgICAgICAgIGEudHJhbnNsaXRlcmF0ZShzdHIpOworICAgICAgICBleHBlY3QoYmEsIHN0ci50b1N0cmluZygpLCBzdHIudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRG8gc29tZSBiYXNpYyB0ZXN0cyBvZiBmaWx0ZXJpbmcuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEZpbHRlcmluZygpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgaGV4ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgiKTsKKyAgICAgICAgaGV4LnNldEZpbHRlcihuZXcgVW5pY29kZUZpbHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBjKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGMgIT0gJ2MnOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIG1hdGNoZXNJbmRleFZhbHVlKGludCB2KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIHZvaWQgYWRkTWF0Y2hTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25Ubykge30KKyAgICAgICAgfSk7CisgICAgICAgIFN0cmluZyBzID0gImFiY2RlIjsKKyAgICAgICAgU3RyaW5nIG91dCA9IGhleC50cmFuc2xpdGVyYXRlKHMpOworICAgICAgICBTdHJpbmcgZXhwID0gIlxcdTAwNjFcXHUwMDYyY1xcdTAwNjRcXHUwMDY1IjsKKyAgICAgICAgaWYgKG91dC5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAgIFwiIiArIGV4cCArICJcIiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIkZBSUw6IFwiIiArIG91dCArICJcIiwgd2FudGVkIFwiIiArIGV4cCArICJcIiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBhbmNob3JzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFuY2hvcnMoKSB7CisgICAgICAgIGV4cGVjdCgiXmFiICA+IDAxIDsiICsKKyAgICAgICAgICAgICAgICIgYWIgID4gfDggOyIgKworICAgICAgICAgICAgICAgIiAgYiAgPiBrIDsiICsKKyAgICAgICAgICAgICAgICIgOHgkID4gNDUgOyIgKworICAgICAgICAgICAgICAgIiA4eCAgPiA3NyA7IiwKKworICAgICAgICAgICAgICAgImFiYWJiYWJ4YWJ4IiwKKyAgICAgICAgICAgICAgICIwMThrNzc0NSIpOworICAgICAgICBleHBlY3QoIiRzID0gW3okXSA7IiArCisgICAgICAgICAgICAgICAiJHN7YWIgICAgPiAwMSA7IiArCisgICAgICAgICAgICAgICAiICAgYWIgICAgPiB8OCA7IiArCisgICAgICAgICAgICAgICAiICAgIGIgICAgPiBrIDsiICsKKyAgICAgICAgICAgICAgICIgICA4eH0kcyA+IDQ1IDsiICsKKyAgICAgICAgICAgICAgICIgICA4eCAgICA+IDc3IDsiLAorCisgICAgICAgICAgICAgICAiYWJ6YWJhYmJhYnh6YWJ4YWJ4IiwKKyAgICAgICAgICAgICAgICIwMXowMThrNDV6MDF4NDUiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHBhdHRlcm4gcXVvdGluZyBhbmQgZXNjYXBlIG1lY2hhbmlzbXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBhdHRlcm5RdW90aW5nKCkgeworICAgICAgICAvLyBBcnJheSBvZiAzbiBpdGVtcworICAgICAgICAvLyBFYWNoIGl0ZW0gaXMgPHJ1bGVzPiwgPGlucHV0PiwgPGV4cGVjdGVkIG91dHB1dD4KKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICJcdTRFMDE+J1ttYWxlIGFkdWx0XSciLCAiXHU0RTAxIiwgIlttYWxlIGFkdWx0XSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBsb2dsbigiUGF0dGVybjogIiArIFV0aWxpdHkuZXNjYXBlKERBVEFbaV0pKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIjxJRD4iLCBEQVRBW2ldLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGV4cGVjdCh0LCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdyZXNzaW9uIHRlc3QgZm9yIGJ1Z3MgZm91bmQgaW4gR3JlZWsgdHJhbnNsaXRlcmF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RKMjc3KCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciBnbCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJHcmVlay1MYXRpbjsgTkZEOyBbOk06XVJlbW92ZTsgTkZDIik7CisKKyAgICAgICAgY2hhciBzaWdtYSA9IChjaGFyKTB4M0MzOworICAgICAgICBjaGFyIHVwc2lsb24gPSAoY2hhcikweDNDNTsKKyAgICAgICAgY2hhciBudSA9IChjaGFyKTB4M0JEOworICAgICAgICAvLyBub3QgdXNlZCBjaGFyIFBISSA9IChjaGFyKTB4M0E2OworICAgICAgICBjaGFyIGFscGhhID0gKGNoYXIpMHgzQjE7CisgICAgICAgIC8vIG5vdCB1c2VkIGNoYXIgb21lZ2EgPSAoY2hhcikweDNDOTsKKyAgICAgICAgLy8gbm90IHVzZWQgY2hhciBvbWljcm9uID0gKGNoYXIpMHgzQkY7CisgICAgICAgIC8vIG5vdCB1c2VkIGNoYXIgZXBzaWxvbiA9IChjaGFyKTB4M0I1OworCisgICAgICAgIC8vIHNpZ21hIHVwc2lsb24gbnUgLT4gc3luCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJ1Zi5hcHBlbmQoc2lnbWEpLmFwcGVuZCh1cHNpbG9uKS5hcHBlbmQobnUpOworICAgICAgICBTdHJpbmcgc3luID0gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIGV4cGVjdChnbCwgc3luLCAic3luIik7CisKKyAgICAgICAgLy8gc2lnbWEgYWxwaGEgdXBzaWxvbiBudSAtPiBzYXVuCisgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgIGJ1Zi5hcHBlbmQoc2lnbWEpLmFwcGVuZChhbHBoYSkuYXBwZW5kKHVwc2lsb24pLmFwcGVuZChudSk7CisgICAgICAgIFN0cmluZyBzYXluID0gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIGV4cGVjdChnbCwgc2F5biwgInNhdW4iKTsKKworICAgICAgICAvLyBBZ2FpbiwgdXNpbmcgYSBzbWFsbGVyIHJ1bGUgc2V0CisgICAgICAgIFN0cmluZyBydWxlcyA9CisgICAgICAgICAgICAgICAgICAgICIkYWxwaGEgICA9IFx1MDNCMTsiICsKKyAgICAgICAgICAgICAgICAgICAgIiRudSAgICAgID0gXHUwM0JEOyIgKworICAgICAgICAgICAgICAgICAgICAiJHNpZ21hICAgPSBcdTAzQzM7IiArCisgICAgICAgICAgICAgICAgICAgICIkeXBzaWxvbiA9IFx1MDNDNTsiICsKKyAgICAgICAgICAgICAgICAgICAgIiR2b3dlbCAgID0gW2FlaW91QUVJT1UkYWxwaGEkeXBzaWxvbl07IiArCisgICAgICAgICAgICAgICAgICAgICJzIDw+ICAgICAgICAgICAkc2lnbWE7IiArCisgICAgICAgICAgICAgICAgICAgICJhIDw+ICAgICAgICAgICAkYWxwaGE7IiArCisgICAgICAgICAgICAgICAgICAgICJ1IDw+ICAkdm93ZWwgeyAkeXBzaWxvbjsiICsKKyAgICAgICAgICAgICAgICAgICAgInkgPD4gICAgICAgICAgICR5cHNpbG9uOyIgKworICAgICAgICAgICAgICAgICAgICAibiA8PiAgICAgICAgICAgJG51OyI7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIG1pbmkgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMKKyAgICAgICAgICAgICgibWluaSIsIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKTsKKyAgICAgICAgZXhwZWN0KG1pbmksIHN5biwgInN5biIpOworICAgICAgICBleHBlY3QobWluaSwgc2F5biwgInNhdW4iKTsKKworLy98ICAgIC8vIFRyYW5zbGl0ZXJhdGUgdGhlIEdyZWVrIGxvY2FsZSBkYXRhCisvL3wgICAgTG9jYWxlIGVsKCJlbCIpOworLy98ICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bXMoZWwsIHN0YXR1cyk7CisvL3wgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7IGVycmxuKCJGQUlMOiBUcmFuc2xpdGVyYXRvciBjb25zdHJ1Y3RvciBmYWlsZWQiKTsgcmV0dXJuOyB9CisvL3wgICAgaW50MzJfdCBpLCBjb3VudDsKKy8vfCAgICBjb25zdCBVbmljb2RlU3RyaW5nKiBkYXRhID0gc3ltcy5nZXRNb250aHMoY291bnQpOworLy98ICAgIGZvciAoaT0wOyBpPGNvdW50OyArK2kpIHsKKy8vfCAgICAgICAgaWYgKGRhdGFbaV0ubGVuZ3RoKCkgPT0gMCkgeworLy98ICAgICAgICAgICAgY29udGludWU7CisvL3wgICAgICAgIH0KKy8vfCAgICAgICAgVW5pY29kZVN0cmluZyBvdXQoZGF0YVtpXSk7CisvL3wgICAgICAgIGdsLT50cmFuc2xpdGVyYXRlKG91dCk7CisvL3wgICAgICAgIGJvb2xfdCBvayA9IFRSVUU7CisvL3wgICAgICAgIGlmIChkYXRhW2ldLmxlbmd0aCgpID49IDIgJiYgb3V0Lmxlbmd0aCgpID49IDIgJiYKKy8vfCAgICAgICAgICAgIHVfaXN1cHBlcihkYXRhW2ldLmNoYXJBdCgwKSkgJiYgdV9pc2xvd2VyKGRhdGFbaV0uY2hhckF0KDEpKSkgeworLy98ICAgICAgICAgICAgaWYgKCEodV9pc3VwcGVyKG91dC5jaGFyQXQoMCkpICYmIHVfaXNsb3dlcihvdXQuY2hhckF0KDEpKSkpIHsKKy8vfCAgICAgICAgICAgICAgICBvayA9IEZBTFNFOworLy98ICAgICAgICAgICAgfQorLy98ICAgICAgICB9CisvL3wgICAgICAgIGlmIChvaykgeworLy98ICAgICAgICAgICAgbG9nbG4ocHJldHRpZnkoZGF0YVtpXSArICIgLT4gIiArIG91dCkpOworLy98ICAgICAgICB9IGVsc2UgeworLy98ICAgICAgICAgICAgZXJybG4oVW5pY29kZVN0cmluZygiRkFJTDogIikgKyBwcmV0dGlmeShkYXRhW2ldICsgIiAtPiAiICsgb3V0KSk7CisvL3wgICAgICAgIH0KKy8vfCAgICB9CisgICAgfQorCisvLyAgICAvKioKKy8vICAgICAqIFByZWZpeCwgc3VmZml4IHN1cHBvcnQgaW4gaGV4IHRyYW5zbGl0ZXJhdG9ycworLy8gICAgICovCisvLyAgICBwdWJsaWMgdm9pZCBUZXN0SjI0MygpIHsKKy8vICAgICAgICAvLyBUZXN0IGRlZmF1bHQgSGV4LUFueSwgd2hpY2ggc2hvdWxkIGhhbmRsZQorLy8gICAgICAgIC8vIFxcdSwgXFxVLCB1KywgYW5kIFUrCisvLyAgICAgICAgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IgaGV4ID0gbmV3IEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKCk7CisvLyAgICAgICAgZXhwZWN0KGhleCwgIlxcdTAwNDErXFxVMDA0Mix1KzAwNDN1dSswMDQ0eiIsICJBK0IsQ3VEeiIpOworLy8KKy8vICAgICAgICAvLyBUcnkgYSBjdXN0b20gSGV4LUFueQorLy8gICAgICAgIC8vIFxcdVhYWFggYW5kICYjeFhYWFg7CisvLyAgICAgICAgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IgaGV4MiA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigiXFxcXHUjIyMwOyZcXCN4IyMjMFxcOyIpOworLy8gICAgICAgIGV4cGVjdChoZXgyLCAiXFx1NjFcXHUwNjJcXHUwMDYzXFx1MDA2NDVcXHU2NngmI3gzMDsmI3gwMzE7JiN4MDAzMjsmI3gwMDAzMzsiLAorLy8gICAgICAgICAgICAgICAiYWJjZDVmeDAxMiYjeDAwMDMzOyIpOworLy8KKy8vICAgICAgICAvLyBUcnkgY3VzdG9tIEFueS1IZXggKGRlZmF1bHQgaXMgdGVzdGVkIGVsc2V3aGVyZSkKKy8vICAgICAgICBVbmljb2RlVG9IZXhUcmFuc2xpdGVyYXRvciBoZXgzID0gbmV3IFVuaWNvZGVUb0hleFRyYW5zbGl0ZXJhdG9yKCImXFwjeCMjIzA7Iik7CisvLyAgICAgICAgZXhwZWN0KGhleDMsICIwMTIiLCAiJiN4MzA7JiN4MzE7JiN4MzI7Iik7CisvLyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0SjMyOSgpIHsKKworICAgICAgICBPYmplY3RbXSBEQVRBID0geworICAgICAgICAgICAgbmV3IEJvb2xlYW4oZmFsc2UpLCAiYSA+IGI7IGMgPiBkIiwKKyAgICAgICAgICAgIG5ldyBCb29sZWFuKHRydWUpLCAgImEgPiBiOyBubyBvcGVyYXRvcjsgYyA+IGQiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MikgeworICAgICAgICAgICAgU3RyaW5nIGVyciA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPQorICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIjxJRD4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3RyaW5nKSBEQVRBW2krMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBlcnIgPSBlLmdldE1lc3NhZ2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJvb2xlYW4gZ290RXJyb3IgPSAoZXJyICE9IG51bGwpOworICAgICAgICAgICAgU3RyaW5nIGRlc2MgPSAoU3RyaW5nKSBEQVRBW2krMV0gKworICAgICAgICAgICAgICAgIChnb3RFcnJvciA/ICgiIC0+IGVycm9yOiAiICsgZXJyKSA6ICIgLT4gbm8gZXJyb3IiKTsKKyAgICAgICAgICAgIGlmICgoZXJyICE9IG51bGwpID09ICgoQm9vbGVhbilEQVRBW2ldKS5ib29sZWFuVmFsdWUoKSkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogICAiICsgZGVzYyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgZGVzYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHNlZ21lbnRzIGFuZCBzZWdtZW50IHJlZmVyZW5jZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNlZ21lbnRzKCkgeworICAgICAgICAvLyBBcnJheSBvZiAzbiBpdGVtcworICAgICAgICAvLyBFYWNoIGl0ZW0gaXMgPHJ1bGVzPiwgPGlucHV0PiwgPGV4cGVjdGVkIG91dHB1dD4KKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICIoW2Etel0pICcuJyAoWzAtOV0pID4gJDIgJy0nICQxIiwKKyAgICAgICAgICAgICJhYmMuMTIzLnh5ei40NTYiLAorICAgICAgICAgICAgImFiMS1jMjMueHk0LXo1NiIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBsb2dsbigiUGF0dGVybjogIiArIFV0aWxpdHkuZXNjYXBlKERBVEFbaV0pKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIjxJRD4iLCBEQVRBW2ldLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGV4cGVjdCh0LCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGN1cnNvciBwb3NpdGlvbmluZyBvdXRzaWRlIG9mIHRoZSBrZXkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3Vyc29yT2Zmc2V0KCkgeworICAgICAgICAvLyBBcnJheSBvZiAzbiBpdGVtcworICAgICAgICAvLyBFYWNoIGl0ZW0gaXMgPHJ1bGVzPiwgPGlucHV0PiwgPGV4cGVjdGVkIG91dHB1dD4KKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgICJwcmUge2FscGhhfSBwb3N0ID4gfCBAIEFMUEhBIDsiICsKKyAgICAgICAgICAgICJlQUxQSEEgPiBiZXRhIDsiICsKKyAgICAgICAgICAgICJwcmUge2JldGF9IHBvc3QgPiBCRVRBIEBAIHwgOyIgKworICAgICAgICAgICAgInBvc3QgPiB4eXoiLAorCisgICAgICAgICAgICAicHJlYWxwaGFwb3N0IHByZWJldGFwb3N0IiwKKyAgICAgICAgICAgICJwcmJldGF4eXogcHJlQkVUQXBvc3QiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgbG9nbG4oIlBhdHRlcm46ICIgKyBVdGlsaXR5LmVzY2FwZShEQVRBW2ldKSk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwgREFUQVtpXSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBleHBlY3QodCwgREFUQVtpKzFdLCBEQVRBW2krMl0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB6ZXJvIGxlbmd0aCBhbmQgPiAxIGNoYXIgbGVuZ3RoIHZhcmlhYmxlIHZhbHVlcy4gIFRlc3QKKyAgICAgKiB1c2Ugb2YgdmFyaWFibGUgcmVmcyBpbiBVbmljb2RlU2V0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0QXJiaXRyYXJ5VmFyaWFibGVWYWx1ZXMoKSB7CisgICAgICAgIC8vIEFycmF5IG9mIDNuIGl0ZW1zCisgICAgICAgIC8vIEVhY2ggaXRlbSBpcyA8cnVsZXM+LCA8aW5wdXQ+LCA8ZXhwZWN0ZWQgb3V0cHV0PgorICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgIiRhYmUgPSBhYjsiICsKKyAgICAgICAgICAgICIkcGF0ID0geFt5WV16OyIgKworICAgICAgICAgICAgIiRsbCAgPSAnYS16JzsiICsKKyAgICAgICAgICAgICIkbGxaID0gWyRsbF07IiArCisgICAgICAgICAgICAiJGxsWSA9IFskbGwkcGF0XTsiICsKKyAgICAgICAgICAgICIkZW1wID0gOyIgKworCisgICAgICAgICAgICAiJGFiZSA+IEFCRTsiICsKKyAgICAgICAgICAgICIkcGF0ID4gRU5EOyIgKworICAgICAgICAgICAgIiRsbFogPiAxOyIgKworICAgICAgICAgICAgIiRsbFkgPiAyOyIgKworICAgICAgICAgICAgIjckZW1wIDggPiA5OyIgKworICAgICAgICAgICAgIiIsCisKKyAgICAgICAgICAgICJhYiB4WXp4eXogc3RZNzgiLAorICAgICAgICAgICAgIkFCRSBFTkRFTkQgMTEyOSIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBsb2dsbigiUGF0dGVybjogIiArIFV0aWxpdHkuZXNjYXBlKERBVEFbaV0pKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIjxJRD4iLCBEQVRBW2ldLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGV4cGVjdCh0LCBEQVRBW2krMV0sIERBVEFbaSsyXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25maXJtIHRoYXQgdGhlIGNvbnRleHRTdGFydCwgY29udGV4dExpbWl0LCBzdGFydCwgYW5kIGxpbWl0CisgICAgICogYmVoYXZlIGNvcnJlY3RseS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UG9zaXRpb25IYW5kbGluZygpIHsKKyAgICAgICAgLy8gQXJyYXkgb2YgM24gaXRlbXMKKyAgICAgICAgLy8gRWFjaCBpdGVtIGlzIDxydWxlcz4sIDxpbnB1dD4sIDxleHBlY3RlZCBvdXRwdXQ+CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICAiYXt0fSA+IFNTIDsge3R9YiA+IFVVIDsge3R9ID4gVFQgOyIsCisgICAgICAgICAgICAieHRhdCB0eHRiIiwgLy8gcG9zIDAsOSwwLDkKKyAgICAgICAgICAgICJ4VFRhU1MgVFR4VVViIiwKKworICAgICAgICAgICAgImF7dH0gPiBTUyA7IHt0fWIgPiBVVSA7IHt0fSA+IFRUIDsiLAorICAgICAgICAgICAgInh0YXQgdHh0YiIsIC8vIHBvcyAyLDksMyw4CisgICAgICAgICAgICAieHRhU1MgVFR4VVViIiwKKworICAgICAgICAgICAgImF7dH0gPiBTUyA7IHt0fWIgPiBVVSA7IHt0fSA+IFRUIDsiLAorICAgICAgICAgICAgInh0YXQgdHh0YiIsIC8vIHBvcyAzLDgsMyw4CisgICAgICAgICAgICAieHRhVFQgVFR4VFRiIiwKKyAgICAgICAgfTsKKworICAgICAgICAvLyBBcnJheSBvZiA0biBwb3NpdGlvbnMgLS0gdGhlc2UgZ28gd2l0aCB0aGUgREFUQSBhcnJheQorICAgICAgICAvLyBUaGV5IGFyZTogY29udGV4dFN0YXJ0LCBjb250ZXh0TGltaXQsIHN0YXJ0LCBsaW1pdAorICAgICAgICBpbnRbXSBQT1MgPSB7CisgICAgICAgICAgICAwLCA5LCAwLCA5LAorICAgICAgICAgICAgMiwgOSwgMywgOCwKKyAgICAgICAgICAgIDMsIDgsIDMsIDgsCisgICAgICAgIH07CisKKyAgICAgICAgaW50IG4gPSBEQVRBLmxlbmd0aC8zOworICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgaSsrKSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwgREFUQVszKmldLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcyA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigKKyAgICAgICAgICAgICAgICBQT1NbNCppXSwgUE9TWzQqaSsxXSwgUE9TWzQqaSsyXSwgUE9TWzQqaSszXSk7CisgICAgICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyByc291cmNlID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKERBVEFbMyppKzFdKTsKKyAgICAgICAgICAgIHQudHJhbnNsaXRlcmF0ZShyc291cmNlLCBwb3MpOworICAgICAgICAgICAgdC5maW5pc2hUcmFuc2xpdGVyYXRpb24ocnNvdXJjZSwgcG9zKTsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSByc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBTdHJpbmcgZXhwID0gREFUQVszKmkrMl07CisgICAgICAgICAgICBleHBlY3RBdXgoVXRpbGl0eS5lc2NhcGUoREFUQVszKmldKSwKKyAgICAgICAgICAgICAgICAgICAgICBEQVRBWzMqaSsxXSwKKyAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmVxdWFscyhleHApLAorICAgICAgICAgICAgICAgICAgICAgIGV4cCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBIaXJhZ2FuYS1LYXRha2FuYSB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SGlyYWdhbmFLYXRha2FuYSgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgaGsgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSGlyYWdhbmEtS2F0YWthbmEiKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3Iga2ggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiS2F0YWthbmEtSGlyYWdhbmEiKTsKKworICAgICAgICAvLyBBcnJheSBvZiAzbiBpdGVtcworICAgICAgICAvLyBFYWNoIGl0ZW0gaXMgImhrInwia2gifCJib3RoIiwgPEhpcmFnYW5hPiwgPEthdGFrYW5hPgorICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgImJvdGgiLAorICAgICAgICAgICAgIlx1MzA0Mlx1MzA5MFx1MzA5OVx1MzA5Mlx1MzA1MCIsCisgICAgICAgICAgICAiXHUzMEEyXHUzMEY4XHUzMEYyXHUzMEIwIiwKKworICAgICAgICAgICAgImtoIiwKKyAgICAgICAgICAgICJcdTMwN0NcdTMwNTFcdTMwNjBcdTMwNDJcdTMwOTNcdTMwRkMiLAorICAgICAgICAgICAgIlx1MzBEQ1x1MzBGNlx1MzBDMFx1MzBGQ1x1MzBGM1x1MzBGQyIsCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBzd2l0Y2ggKERBVEFbaV0uY2hhckF0KDApKSB7CisgICAgICAgICAgICBjYXNlICdoJzogLy8gSGlyYWdhbmEtS2F0YWthbmEKKyAgICAgICAgICAgICAgICBleHBlY3QoaGssIERBVEFbaSsxXSwgREFUQVtpKzJdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2snOiAvLyBLYXRha2FuYS1IaXJhZ2FuYQorICAgICAgICAgICAgICAgIGV4cGVjdChraCwgREFUQVtpKzJdLCBEQVRBW2krMV0pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnYic6IC8vIGJvdGgKKyAgICAgICAgICAgICAgICBleHBlY3QoaGssIERBVEFbaSsxXSwgREFUQVtpKzJdKTsKKyAgICAgICAgICAgICAgICBleHBlY3Qoa2gsIERBVEFbaSsyXSwgREFUQVtpKzFdKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvcHlKNDc2KCkgeworICAgICAgICAvLyBUaGlzIGlzIGEgQysrLW9ubHkgY29weSBjb25zdHJ1Y3RvciB0ZXN0CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBpbnRlci1JbmRpYyB0cmFuc2xpdGVyYXRvcnMuICBUaGVzZSBhcmUgY29tcG9zZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEludGVySW5kaWMoKSB7CisgICAgICAgIFN0cmluZyBJRCA9ICJEZXZhbmFnYXJpLUd1amFyYXRpIjsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgZGcgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgIGlmIChkZyA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogZ2V0SW5zdGFuY2UoIiArIElEICsgIikgcmV0dXJuZWQgbnVsbCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBpZCA9IGRnLmdldElEKCk7CisgICAgICAgIGlmICghaWQuZXF1YWxzKElEKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEluc3RhbmNlKCIgKyBJRCArICIpLmdldElEKCkgPT4gIiArIGlkKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZGV2ID0gIlx1MDkwMVx1MDkwQlx1MDkyNSI7CisgICAgICAgIFN0cmluZyBndWogPSAiXHUwQTgxXHUwQThCXHUwQUE1IjsKKyAgICAgICAgZXhwZWN0KGRnLCBkZXYsIGd1aik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBmaWx0ZXIgc3ludGF4IGluIElEcy4gKEoyMykKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RmlsdGVySURzKCkgeworICAgICAgICBTdHJpbmdbXSBEQVRBID0geworICAgICAgICAgICAgIlthZWlvdV1BbnktSGV4IiwgLy8gSUQKKyAgICAgICAgICAgICJbYWVpb3VdSGV4LUFueSIsIC8vIGV4cGVjdGVkIGludmVyc2UgSUQKKyAgICAgICAgICAgICJxdWl6emljYWwiLCAgICAgIC8vIHNyYworICAgICAgICAgICAgInFcXHUwMDc1XFx1MDA2OXp6XFx1MDA2OWNcXHUwMDYxbCIsIC8vIGV4cGVjdGVkIElELnRyYW5zbGl0KHNyYykKKworICAgICAgICAgICAgIlthZWlvdV1BbnktSGV4O1teNV1IZXgtQW55IiwKKyAgICAgICAgICAgICJbXjVdQW55LUhleDtbYWVpb3VdSGV4LUFueSIsCisgICAgICAgICAgICAicXVpenppY2FsIiwKKyAgICAgICAgICAgICJxXFx1MDA3NWl6emljYWwiLAorCisgICAgICAgICAgICAiW2FiY11OdWxsIiwKKyAgICAgICAgICAgICJbYWJjXU51bGwiLAorICAgICAgICAgICAgInh5eiIsCisgICAgICAgICAgICAieHl6IiwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTQpIHsKKyAgICAgICAgICAgIFN0cmluZyBJRCA9IERBVEFbaV07CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworICAgICAgICAgICAgZXhwZWN0KHQsIERBVEFbaSsyXSwgREFUQVtpKzNdKTsKKworICAgICAgICAgICAgLy8gQ2hlY2sgdGhlIElECisgICAgICAgICAgICBpZiAoIUlELmVxdWFscyh0LmdldElEKCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEluc3RhbmNlKCIgKyBJRCArICIpLmdldElEKCkgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgdC5nZXRJRCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ2hlY2sgdGhlIGludmVyc2UKKyAgICAgICAgICAgIFN0cmluZyB1SUQgPSBEQVRBW2krMV07CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB1ID0gdC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICBpZiAodSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBJRCArICIuZ2V0SW52ZXJzZSgpIHJldHVybmVkIE5VTEwiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoIXUuZ2V0SUQoKS5lcXVhbHModUlEKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgSUQgKyAiLmdldEludmVyc2UoKS5nZXRJRCgpID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIHUuZ2V0SUQoKSArICIsIGV4cGVjdGVkICIgKyB1SUQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgY2FzZSBtYXBwaW5nIHRyYW5zbGl0ZXJhdG9ycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FzZU1hcCgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdG9VcHBlciA9CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LVVwcGVyW154eXpYWVpdIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHRvTG93ZXIgPQorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1Mb3dlclteeHl6WFlaXSIpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0b1RpdGxlID0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktVGl0bGVbXnh5elhZWl0iKTsKKworICAgICAgICBleHBlY3QodG9VcHBlciwgIlRoZSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9ncy4iLAorICAgICAgICAgICAgICAgIlRIRSBRVUlDSyBCUk9XTiBGT3ggSlVNUEVEIE9WRVIgVEhFIExBenkgRE9HUy4iKTsKKyAgICAgICAgZXhwZWN0KHRvTG93ZXIsICJUaGUgcXVJY2sgYnJvd24gZk9YIGpVTVBFRCBPVkVSIFRIRSBMQXpZIGRvZ3MuIiwKKyAgICAgICAgICAgICAgICJ0aGUgcXVpY2sgYnJvd24gZm9YIGp1bXBlZCBvdmVyIHRoZSBsYXpZIGRvZ3MuIik7CisgICAgICAgIGV4cGVjdCh0b1RpdGxlLCAidGhlIHF1aWNrIGJyb3duIGZvWCBjYU4nVCBqdW1wIG92ZXIgdGhlIGxhWnkgZG9ncy4iLAorICAgICAgICAgICAgICAgIlRoZSBRdWljayBCcm93biBGb1ggQ2FuJ3QgSnVtcCBPdmVyIFRoZSBMYVp5IERvZ3MuIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgbmFtZSBtYXBwaW5nIHRyYW5zbGl0ZXJhdG9ycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TmFtZU1hcCgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdW5pMm5hbWUgPQorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1OYW1lW15hYmNdIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIG5hbWUydW5pID0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJOYW1lLUFueSIpOworCisgICAgICAgIGV4cGVjdCh1bmkybmFtZSwgIlx1MDBBMGFiY1x1NEUwMVx1MDBCNVx1MEE4MVx1RkZGRFx1MDAwNFx1MDAwOVx1MDA4MVx1RkZGRiIsCisgICAgICAgICAgICAgICAiXFxOe05PLUJSRUFLIFNQQUNFfWFiY1xcTntDSksgVU5JRklFRCBJREVPR1JBUEgtNEUwMX1cXE57TUlDUk8gU0lHTn1cXE57R1VKQVJBVEkgU0lHTiBDQU5EUkFCSU5EVX1cXE57UkVQTEFDRU1FTlQgQ0hBUkFDVEVSfVxcTntFTkQgT0YgVFJBTlNNSVNTSU9OfVxcTntDSEFSQUNURVIgVEFCVUxBVElPTn1cXE57PGNvbnRyb2wtMDA4MT59XFxOezxub25jaGFyYWN0ZXItRkZGRj59Iik7CisgICAgICAgIGV4cGVjdChuYW1lMnVuaSwgIntcXE4geyBOTy1CUkVBSyBTUEFDRX1hYmNcXE57ICBDSksgVU5JRklFRCAgSURFT0dSQVBILTRFMDEgIH1cXE57eFxcTntNSUNSTyBTSUdOfVxcTntHVUpBUkFUSSBTSUdOIENBTkRSQUJJTkRVfVxcTntSRVBMQUNFTUVOVCBDSEFSQUNURVJ9XFxOe0VORCBPRiBUUkFOU01JU1NJT059XFxOe0NIQVJBQ1RFUiBUQUJVTEFUSU9OfVxcTns8Y29udHJvbC0wMDgxPn1cXE57PG5vbmNoYXJhY3Rlci1GRkZGPn1cXE57PGNvbnRyb2wtMDAwND59XFxOeyIsCisgICAgICAgICAgICAgICAie1x1MDBBMGFiY1x1NEUwMVxcTnt4XHUwMEI1XHUwQTgxXHVGRkZEXHUwMDA0XHUwMDA5XHUwMDgxXHVGRkZGXHUwMDA0XFxOeyIpOworCisgICAgICAgIC8vIHJvdW5kIHRyaXAKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTmFtZTtOYW1lLUFueSIpOworCisgICAgICAgIFN0cmluZyBzID0gIntcdTAwQTBhYmNcdTRFMDFcXE57eFx1MDBCNVx1MEE4MVx1RkZGRFx1MDAwNFx1MDAwOVx1MDA4MVx1RkZGRlx1MDAwNFxcTnsiOworICAgICAgICBleHBlY3QodCwgcywgcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBsaWJlcmFsaXplZCBJRCBzeW50YXguICAxMDA2YworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RMaWJlcmFsaXplZElEKCkgeworICAgICAgICAvLyBTb21lIHRlc3QgY2FzZXMgaGF2ZSBhbiBleHBlY3RlZCBnZXRJRCgpIHZhbHVlIG9mIE5VTEwuICBUaGlzCisgICAgICAgIC8vIG1lYW5zIEkgaGF2ZSBkaXNhYmxlZCB0aGUgdGVzdCBjYXNlIGZvciBub3cuICBUaGlzIHN0dWZmIGlzCisgICAgICAgIC8vIHN0aWxsIHVuZGVyIGRldmVsb3BtZW50LCBhbmQgSSBoYXZlbid0IGRlY2lkZWQgd2hldGhlciB0byBtYWtlCisgICAgICAgIC8vIGdldElEKCkgcmV0dXJuIGNhbm9uaWNhbCBjYXNlIHlldC4gIEl0IHdpbGwgYWxsIGdldCByZXdyaXR0ZW4KKyAgICAgICAgLy8gd2l0aCB0aGUgbW92ZSB0byBTb3VyY2UtVGFyZ2V0L1ZhcmlhbnQgSURzIGFueXdheS4gW2FsaXVdCisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAibGF0aW4tZ3JlZWsiLCBudWxsIC8qIkxhdGluLUdyZWVrIiovLCAiY2FzZSBpbnNlbnNpdGl2aXR5IiwKKyAgICAgICAgICAgICIgIE51bGwgICIsICJOdWxsIiwgIndoaXRlc3BhY2UiLAorICAgICAgICAgICAgIiBMYXRpblthLXpdLUdyZWVrICAiLCAiW2Etel1MYXRpbi1HcmVlayIsICJpbmxpbmUgZmlsdGVyIiwKKyAgICAgICAgICAgICIgIG51bGwgIDsgbGF0aW4tZ3JlZWsgICIsIG51bGwgLyoiTnVsbDtMYXRpbi1HcmVlayIqLywgImNvbXBvdW5kIHdoaXRlc3BhY2UiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoREFUQVtpXSk7CisgICAgICAgICAgICAgICAgaWYgKERBVEFbaSsxXSA9PSBudWxsIHx8IERBVEFbaSsxXS5lcXVhbHModC5nZXRJRCgpKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBEQVRBW2krMl0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIGNyZWF0ZSBJRCBcIiIgKyBEQVRBW2ldICsgIlwiID0+IFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIHQuZ2V0SUQoKSArICJcIiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgREFUQVtpKzJdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBjcmVhdGUgSUQgXCIiICsgREFUQVtpXSArICJcIiA9PiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICB0LmdldElEKCkgKyAiXCIsIGV4cCBcIiIgKyBEQVRBW2krMV0gKyAiXCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgREFUQVtpKzJdICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGNyZWF0ZSBJRCBcIiIgKyBEQVRBW2ldICsgIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3JlYXRlSW5zdGFuY2UoKSB7CisgICAgICAgIFN0cmluZyBGT1JXQVJEID0gIkYiOworICAgICAgICBTdHJpbmcgUkVWRVJTRSA9ICJSIjsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgIC8vIENvbHVtbiAxOiBpZAorICAgICAgICAgICAgLy8gQ29sdW1uIDI6IGRpcmVjdGlvbgorICAgICAgICAgICAgLy8gQ29sdW1uIDM6IGV4cGVjdGVkIElELCBvciAiIiBpZiBleHBlY3QgZmFpbHVyZQorICAgICAgICAgICAgIkxhdGluLUhhbmd1bCIsIFJFVkVSU0UsICJIYW5ndWwtTGF0aW4iLCAvLyBKQiM5MTIKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gSkIjMjY4OTogYmFkIGNvbXBvdW5kIGNhdXNlcyBjcmFzaAorICAgICAgICAgICAgIkludmFsaWRTb3VyY2UtSW52YWxpZFRhcmdldCIsIEZPUldBUkQsICIiLAorICAgICAgICAgICAgIkludmFsaWRTb3VyY2UtSW52YWxpZFRhcmdldCIsIFJFVkVSU0UsICIiLAorICAgICAgICAgICAgIkhleC1Bbnk7SW52YWxpZFNvdXJjZS1JbnZhbGlkVGFyZ2V0IiwgRk9SV0FSRCwgIiIsCisgICAgICAgICAgICAiSGV4LUFueTtJbnZhbGlkU291cmNlLUludmFsaWRUYXJnZXQiLCBSRVZFUlNFLCAiIiwKKyAgICAgICAgICAgICJJbnZhbGlkU291cmNlLUludmFsaWRUYXJnZXQ7SGV4LUFueSIsIEZPUldBUkQsICIiLAorICAgICAgICAgICAgIkludmFsaWRTb3VyY2UtSW52YWxpZFRhcmdldDtIZXgtQW55IiwgUkVWRVJTRSwgIiIsCisgICAgICAgICAgICAKKyAgICAgICAgICAgIG51bGwKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgREFUQVtpXSE9bnVsbDsgaSs9MykgeworICAgICAgICAgICAgU3RyaW5nIGlkPURBVEFbaV07CisgICAgICAgICAgICBpbnQgZGlyID0gKERBVEFbaSsxXT09Rk9SV0FSRCk/CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRDpUcmFuc2xpdGVyYXRvci5SRVZFUlNFOworICAgICAgICAgICAgU3RyaW5nIGV4cElEPURBVEFbaSsyXTsKKyAgICAgICAgICAgIEV4Y2VwdGlvbiBlID0gbnVsbDsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpZCxkaXIpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUxKSB7CisgICAgICAgICAgICAgICAgZSA9IGUxOworICAgICAgICAgICAgICAgIHQgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIG5ld0lEID0gKHQhPW51bGwpP3QuZ2V0SUQoKToiIjsKKyAgICAgICAgICAgIGJvb2xlYW4gb2sgPSAobmV3SUQuZXF1YWxzKGV4cElEKSk7CisgICAgICAgICAgICBpZiAodD09bnVsbCkgeworICAgICAgICAgICAgICAgIG5ld0lEID0gZS5nZXRNZXNzYWdlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob2spIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6IGNyZWF0ZUluc3RhbmNlKCIgKworICAgICAgICAgICAgICAgICAgICAgIGlkICsgIiwiICsgREFUQVtpKzFdICsgIikgPT4gIiArIG5ld0lEKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUluc3RhbmNlKCIgKworICAgICAgICAgICAgICAgICAgICAgIGlkICsgIiwiICsgREFUQVtpKzFdICsgIikgPT4gIiArIG5ld0lEICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwSUQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgbm9ybWFsaXphdGlvbiB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Tm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yKCkgeworICAgICAgICAvLyBUSEUgRk9MTE9XSU5HIFRXTyBUQUJMRVMgQVJFIENPUElFRCBGUk9NIGNvbS5pYm0uaWN1LmRldi50ZXN0Lm5vcm1hbGl6ZXIuQmFzaWNUZXN0CisgICAgICAgIC8vIFBMRUFTRSBLRUVQIFRIRU0gSU4gU1lOQyBXSVRIIEJhc2ljVGVzdC4KKyAgICAgICAgU3RyaW5nW11bXSBDQU5PTiA9IHsKKyAgICAgICAgICAgIC8vIElucHV0ICAgICAgICAgICAgICAgRGVjb21wb3NlZCAgICAgICAgICAgIENvbXBvc2VkCisgICAgICAgICAgICB7ImNhdCIsICAgICAgICAgICAgICAgICJjYXQiLCAgICAgICAgICAgICAgICAiY2F0IiAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7Ilx1MDBlMGFyZHZhcmsiLCAgICAgICJhXHUwMzAwYXJkdmFyayIsICAgICAiXHUwMGUwYXJkdmFyayIgICAgIH0sCisKKyAgICAgICAgICAgIHsiXHUxZTBhIiwgICAgICAgICAgICAgIkRcdTAzMDciLCAgICAgICAgICAgICJcdTFlMGEiICAgICAgICAgICAgfSwgLy8gRC1kb3RfYWJvdmUKKyAgICAgICAgICAgIHsiRFx1MDMwNyIsICAgICAgICAgICAgIkRcdTAzMDciLCAgICAgICAgICAgICJcdTFlMGEiICAgICAgICAgICAgfSwgLy8gRCBkb3RfYWJvdmUKKworICAgICAgICAgICAgeyJcdTFlMGNcdTAzMDciLCAgICAgICAiRFx1MDMyM1x1MDMwNyIsICAgICAgIlx1MWUwY1x1MDMwNyIgICAgICB9LCAvLyBELWRvdF9iZWxvdyBkb3RfYWJvdmUKKyAgICAgICAgICAgIHsiXHUxZTBhXHUwMzIzIiwgICAgICAgIkRcdTAzMjNcdTAzMDciLCAgICAgICJcdTFlMGNcdTAzMDciICAgICAgfSwgLy8gRC1kb3RfYWJvdmUgZG90X2JlbG93CisgICAgICAgICAgICB7IkRcdTAzMDdcdTAzMjMiLCAgICAgICJEXHUwMzIzXHUwMzA3IiwgICAgICAiXHUxZTBjXHUwMzA3IiAgICAgIH0sIC8vIEQgZG90X2JlbG93IGRvdF9hYm92ZQorCisgICAgICAgICAgICB7Ilx1MWUxMFx1MDMwN1x1MDMyMyIsICJEXHUwMzI3XHUwMzIzXHUwMzA3IiwiXHUxZTEwXHUwMzIzXHUwMzA3In0sIC8vIEQgZG90X2JlbG93IGNlZGlsbGEgZG90X2Fib3ZlCisgICAgICAgICAgICB7IkRcdTAzMDdcdTAzMjhcdTAzMjMiLCJEXHUwMzI4XHUwMzIzXHUwMzA3IiwiXHUxZTBjXHUwMzI4XHUwMzA3In0sIC8vIEQgZG90X2Fib3ZlIG9nb25layBkb3RfYmVsb3cKKworICAgICAgICAgICAgeyJcdTFFMTQiLCAgICAgICAgICAgICAiRVx1MDMwNFx1MDMwMCIsICAgICAgIlx1MUUxNCIgICAgICAgICAgICB9LCAvLyBFLW1hY3Jvbi1ncmF2ZQorICAgICAgICAgICAgeyJcdTAxMTJcdTAzMDAiLCAgICAgICAiRVx1MDMwNFx1MDMwMCIsICAgICAgIlx1MUUxNCIgICAgICAgICAgICB9LCAvLyBFLW1hY3JvbiArIGdyYXZlCisgICAgICAgICAgICB7Ilx1MDBjOFx1MDMwNCIsICAgICAgICJFXHUwMzAwXHUwMzA0IiwgICAgICAiXHUwMGM4XHUwMzA0IiAgICAgIH0sIC8vIEUtZ3JhdmUgKyBtYWNyb24KKworICAgICAgICAgICAgeyJcdTIxMmIiLCAgICAgICAgICAgICAiQVx1MDMwYSIsICAgICAgICAgICAgIlx1MDBjNSIgICAgICAgICAgICB9LCAvLyBhbmdzdHJvbV9zaWduCisgICAgICAgICAgICB7Ilx1MDBjNSIsICAgICAgICAgICAgICJBXHUwMzBhIiwgICAgICAgICAgICAiXHUwMGM1IiAgICAgICAgICAgIH0sIC8vIEEtcmluZworCisgICAgICAgICAgICB7Ilx1MDBmZGZmaW4iLCAgICAgICAgICJ5XHUwMzAxZmZpbiIsICAgICAgICAiXHUwMGZkZmZpbiIgICAgICAgIH0sIC8vdXBkYXRlZCB3aXRoIDMuMAorICAgICAgICAgICAgeyJcdTAwZmRcdUZCMDNuIiwgICAgICAieVx1MDMwMVx1RkIwM24iLCAgICAgIlx1MDBmZFx1RkIwM24iICAgICB9LCAvL3VwZGF0ZWQgd2l0aCAzLjAKKworICAgICAgICAgICAgeyJIZW5yeSBJViIsICAgICAgICAgICAiSGVucnkgSVYiLCAgICAgICAgICAgIkhlbnJ5IElWIiAgICAgICAgICB9LAorICAgICAgICAgICAgeyJIZW5yeSBcdTIxNjMiLCAgICAgICAiSGVucnkgXHUyMTYzIiwgICAgICAgIkhlbnJ5IFx1MjE2MyIgICAgICB9LAorCisgICAgICAgICAgICB7Ilx1MzBBQyIsICAgICAgICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGdhIChLYXRha2FuYSkKKyAgICAgICAgICAgIHsiXHUzMEFCXHUzMDk5IiwgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8ga2EgKyB0ZW4KKyAgICAgICAgICAgIHsiXHVGRjc2XHVGRjlFIiwgICAgICAgIlx1RkY3Nlx1RkY5RSIsICAgICAgICJcdUZGNzZcdUZGOUUiICAgICAgfSwgLy8gaHdfa2EgKyBod190ZW4KKyAgICAgICAgICAgIHsiXHUzMEFCXHVGRjlFIiwgICAgICAgIlx1MzBBQlx1RkY5RSIsICAgICAgICJcdTMwQUJcdUZGOUUiICAgICAgfSwgLy8ga2EgKyBod190ZW4KKyAgICAgICAgICAgIHsiXHVGRjc2XHUzMDk5IiwgICAgICAgIlx1RkY3Nlx1MzA5OSIsICAgICAgICJcdUZGNzZcdTMwOTkiICAgICAgfSwgLy8gaHdfa2EgKyB0ZW4KKworICAgICAgICAgICAgeyJBXHUwMzAwXHUwMzE2IiwgICAgICAiQVx1MDMxNlx1MDMwMCIsICAgICAgIlx1MDBDMFx1MDMxNiIgICAgICB9LAorICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdW10gQ09NUEFUID0geworICAgICAgICAgICAgLy8gSW5wdXQgICAgICAgICAgICAgICBEZWNvbXBvc2VkICAgICAgICAgICAgQ29tcG9zZWQKKyAgICAgICAgICAgIHsiXHVGQjRmIiwgICAgICAgICAgICAgIlx1MDVEMFx1MDVEQyIsICAgICAgICJcdTA1RDBcdTA1REMiICAgICAgfSwgLy8gQWxlZi1MYW1lZCB2cy4gQWxlZiwgTGFtZWQKKworICAgICAgICAgICAgeyJcdTAwZmRmZmluIiwgICAgICAgICAieVx1MDMwMWZmaW4iLCAgICAgICAgIlx1MDBmZGZmaW4iICAgICAgICB9LCAvL3VwZGF0ZWQgZm9yIDMuMAorICAgICAgICAgICAgeyJcdTAwZmRcdUZCMDNuIiwgICAgICAieVx1MDMwMWZmaW4iLCAgICAgICAgIlx1MDBmZGZmaW4iICAgICAgICB9LCAvLyBmZmkgbGlnYXR1cmUgLT4gZiArIGYgKyBpCisKKyAgICAgICAgICAgIHsiSGVucnkgSVYiLCAgICAgICAgICAgIkhlbnJ5IElWIiwgICAgICAgICAgICJIZW5yeSBJViIgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsiSGVucnkgXHUyMTYzIiwgICAgICAgIkhlbnJ5IElWIiwgICAgICAgICAgICJIZW5yeSBJViIgICAgICAgICAgfSwKKworICAgICAgICAgICAgeyJcdTMwQUMiLCAgICAgICAgICAgICAiXHUzMEFCXHUzMDk5IiwgICAgICAgIlx1MzBBQyIgICAgICAgICAgICB9LCAvLyBnYSAoS2F0YWthbmEpCisgICAgICAgICAgICB7Ilx1MzBBQlx1MzA5OSIsICAgICAgICJcdTMwQUJcdTMwOTkiLCAgICAgICAiXHUzMEFDIiAgICAgICAgICAgIH0sIC8vIGthICsgdGVuCisKKyAgICAgICAgICAgIHsiXHVGRjc2XHUzMDk5IiwgICAgICAgIlx1MzBBQlx1MzA5OSIsICAgICAgICJcdTMwQUMiICAgICAgICAgICAgfSwgLy8gaHdfa2EgKyB0ZW4KKyAgICAgICAgfTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciBORkQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZEIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIE5GQyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORkMiKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPENBTk9OLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgaW4gPSBDQU5PTltpXVswXTsKKyAgICAgICAgICAgIFN0cmluZyBleHBkID0gQ0FOT05baV1bMV07CisgICAgICAgICAgICBTdHJpbmcgZXhwYyA9IENBTk9OW2ldWzJdOworICAgICAgICAgICAgZXhwZWN0KE5GRCwgaW4sIGV4cGQpOworICAgICAgICAgICAgZXhwZWN0KE5GQywgaW4sIGV4cGMpOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgTkZLRCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORktEIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIE5GS0MgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTkZLQyIpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8Q09NUEFULmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgaW4gPSBDT01QQVRbaV1bMF07CisgICAgICAgICAgICBTdHJpbmcgZXhwa2QgPSBDT01QQVRbaV1bMV07CisgICAgICAgICAgICBTdHJpbmcgZXhwa2MgPSBDT01QQVRbaV1bMl07CisgICAgICAgICAgICBleHBlY3QoTkZLRCwgaW4sIGV4cGtkKTsKKyAgICAgICAgICAgIGV4cGVjdChORktDLCBpbiwgZXhwa2MpOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJORkQ7IFt4XVJlbW92ZSIpOworICAgICAgICBleHBlY3QodCwgIlx1MDEwZHgiLCAiY1x1MDMwQyIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgY29tcG91bmQgUkJUIHJ1bGVzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb21wb3VuZFJCVCgpIHsKKyAgICAgICAgLy8gQ2FyZWZ1bCB3aXRoIHNwYWNpbmcgYW5kICc7JyBoZXJlOiAgUGhyYXNlIHRoaXMgZXhhY3RseQorICAgICAgICAvLyBhcyB0b1J1bGVzKCkgaXMgZ29pbmcgdG8gcmV0dXJuIGl0LiAgSWYgdG9SdWxlcygpIGNoYW5nZXMKKyAgICAgICAgLy8gd2l0aCByZWdhcmQgdG8gc3BhY2luZyBvciAnOycsIHRoZW4gYWRqdXN0IHRoaXMgc3RyaW5nLgorICAgICAgICBTdHJpbmcgcnVsZSA9ICI6OkhleC1Bbnk7XG4iICsKKyAgICAgICAgICAgICAgICAgICAgICAiOjpBbnktTG93ZXI7XG4iICsKKyAgICAgICAgICAgICAgICAgICAgICAiYSA+ICcuQS4nO1xuIiArCisgICAgICAgICAgICAgICAgICAgICAgImIgPiAnLkIuJztcbiIgKworICAgICAgICAgICAgICAgICAgICAgICI6OltedF1BbnktVXBwZXI7IjsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiVGVzdCIsIHJ1bGUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlRnJvbVJ1bGVzIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGV4cGVjdCh0LCAiXHUwMDQzYXQgaW4gdGhlIGhhdCwgYmF0IG9uIHRoZSBtYXQiLAorICAgICAgICAgICAgICAgIkMuQS50IElOIHRIRSBILkEudCwgLkIuLkEudCBPTiB0SEUgTS5BLnQiKTsKKyAgICAgICAgU3RyaW5nIHIgPSB0LnRvUnVsZXModHJ1ZSk7CisgICAgICAgIGlmIChyLmVxdWFscyhydWxlKSkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiB0b1J1bGVzKCkgPT4gIiArIHIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRvUnVsZXMoKSA9PiAiICsgciArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgcnVsZSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgdGVzdCB0b1J1bGVzCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiR3JlZWstTGF0aW47IExhdGluLUN5cmlsbGljIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVJbnN0YW5jZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZXhwID0gIjo6R3JlZWstTGF0aW47XG46OkxhdGluLUN5cmlsbGljOyI7CisgICAgICAgIHIgPSB0LnRvUnVsZXModHJ1ZSk7CisgICAgICAgIGlmICghci5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRvUnVsZXMoKSA9PiAiICsgciArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogdG9SdWxlcygpID0+ICIgKyByKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFJvdW5kIHRyaXAgdGhlIHJlc3VsdCBvZiB0b1J1bGVzCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlRlc3QiLCByLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUZyb21SdWxlcyAjMiBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogY3JlYXRlRnJvbVJ1bGVzKCIgKyByICsgIikgc3VjY2VlZGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBUZXN0IHRvUnVsZXMgYWdhaW4KKyAgICAgICAgciA9IHQudG9SdWxlcyh0cnVlKTsKKyAgICAgICAgaWYgKCFyLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogdG9SdWxlcygpID0+ICIgKyByICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBleHApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIk9LOiB0b1J1bGVzKCkgPT4gIiArIHIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCBGb28oQmFyKSBJRHMuICBDYXJlZnVsIHdpdGggc3BhY2luZyBpbiBpZDsgbWFrZSBpdCBjb25mb3JtCisgICAgICAgIC8vIHRvIHdoYXQgdGhlIHJlZ2VuZXJhdGVkIElEIHdpbGwgbG9vayBsaWtlLgorICAgICAgICBTdHJpbmcgaWQgPSAiVXBwZXIoTG93ZXIpOyhORktDKSI7CisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpZCwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVJbnN0YW5jZSAjMiBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAodC5nZXRJRCgpLmVxdWFscyhpZCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogY3JlYXRlZCAiICsgaWQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUluc3RhbmNlKCIgKyBpZCArCisgICAgICAgICAgICAgICAgICAiKS5nZXRJRCgpID0+ICIgKyB0LmdldElEKCkpOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdSA9IHQuZ2V0SW52ZXJzZSgpOworICAgICAgICBpZiAodSA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlSW52ZXJzZSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBleHAgPSAiTkZLQygpO0xvd2VyKFVwcGVyKSI7CisgICAgICAgIGlmICh1LmdldElEKCkuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogY3JlYXRlSW52ZXJzZSgiICsgaWQgKyAiKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgIHUuZ2V0SUQoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlSW52ZXJzZSgiICsgaWQgKyAiKSA9PiAiICsKKyAgICAgICAgICAgICAgICAgIHUuZ2V0SUQoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wb3VuZCBmaWx0ZXIgc2VtYW50aWNzIHdlcmUgb3JnaW5pYWxseSBub3QgaW1wbGVtZW50ZWQKKyAgICAgKiBjb3JyZWN0bHkuICBPcmlnaW5hbGx5LCBlYWNoIGNvbXBvbmVudCBmaWx0ZXIgZihpKSBpcyByZXBsYWNlZCBieQorICAgICAqIGYnKGkpID0gZihpKSAmJiBnLCB3aGVyZSBnIGlzIHRoZSBmaWx0ZXIgZm9yIHRoZSBjb21wb3VuZAorICAgICAqIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqCisgICAgICogRnJvbSBNYXJrOgorICAgICAqCisgICAgICogU3VwcG9zZSBhbmQgSSBoYXZlIGEgdHJhbnNsaXRlcmF0b3IgWC4gSW50ZXJuYWxseSBYIGlzCisgICAgICogIkdyZWVrLUxhdGluOyBMYXRpbi1DeXJpbGxpYzsgQW55LUxvd2VyIi4gSSB1c2UgYSBmaWx0ZXIgW15BXS4KKyAgICAgKgorICAgICAqIFRoZSBjb21wb3VuZCBzaG91bGQgY29udmVydCBhbGwgZ3JlZWsgY2hhcmFjdGVycyAodGhyb3VnaCBsYXRpbikgdG8KKyAgICAgKiBjeXJpbGxpYywgdGhlbiBsb3dlcmNhc2UgdGhlIHJlc3VsdC4gVGhlIGZpbHRlciBzaG91bGQgc2F5ICJkb24ndAorICAgICAqIHRvdWNoICdBJyBpbiB0aGUgb3JpZ2luYWwiLiBCdXQgYmVjYXVzZSBhbiBpbnRlcm1lZGlhdGUgcmVzdWx0CisgICAgICogaGFwcGVucyB0byBnbyB0aHJvdWdoICJBIiwgdGhlIEdyZWVrIEFscGhhIGdldHMgaHVuZyB1cC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG91bmRGaWx0ZXIoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZQorICAgICAgICAgICAgKCJHcmVlay1MYXRpbjsgTGF0aW4tR3JlZWs7IExvd2VyIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIHQuc2V0RmlsdGVyKG5ldyBVbmljb2RlU2V0KCJbXkFdIikpOworCisgICAgICAgIC8vIE9ubHkgdGhlICdBJyBhdCBpbmRleCAxIHNob3VsZCByZW1haW4gdW5jaGFuZ2VkCisgICAgICAgIGV4cGVjdCh0LAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIkJBXFx1MDM5QVxcdTAzOTEiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXHUwM2IyQVxcdTAzYmFcXHUwM2IxIikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlICJSZW1vdmUiIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSZW1vdmUoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiUmVtb3ZlW2FlaW91XSIpOworICAgICAgICBleHBlY3QodCwgIlRoZSBxdWljayBicm93biBmb3guIiwKKyAgICAgICAgICAgICAgICJUaCBxY2sgYnJ3biBmeC4iKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9SdWxlcygpIHsKKyAgICAgICAgU3RyaW5nIFJCVCA9ICJyYnQiOworICAgICAgICBTdHJpbmcgU0VUID0gInNldCI7CisgICAgICAgIFN0cmluZ1tdIERBVEEgPSB7CisgICAgICAgICAgICBSQlQsCisgICAgICAgICAgICAiJGE9XFx1NEU2MTsgWyRhXSA+IEE7IiwKKyAgICAgICAgICAgICJbXFx1NEU2MV0gPiBBOyIsCisKKyAgICAgICAgICAgIFJCVCwKKyAgICAgICAgICAgICIkd2hpdGU9W1s6WnM6XVs6Wmw6XV07ICR3aGl0ZXthfSA+IEE7IiwKKyAgICAgICAgICAgICJbWzpaczpdWzpabDpdXXthfSA+IEE7IiwKKworICAgICAgICAgICAgU0VULAorICAgICAgICAgICAgIltbOlpzOl1bOlpsOl1dIiwKKyAgICAgICAgICAgICJbWzpaczpdWzpabDpdXSIsCisKKyAgICAgICAgICAgIFNFVCwKKyAgICAgICAgICAgICJbOlBzOl0iLAorICAgICAgICAgICAgIls6UHM6XSIsCisKKyAgICAgICAgICAgIFNFVCwKKyAgICAgICAgICAgICJbOkw6XSIsCisgICAgICAgICAgICAiWzpMOl0iLAorCisgICAgICAgICAgICBTRVQsCisgICAgICAgICAgICAiW1s6TDpdLVtBXV0iLAorICAgICAgICAgICAgIltbOkw6XS1bQV1dIiwKKworICAgICAgICAgICAgU0VULAorICAgICAgICAgICAgIlt+WzpMdTpdWzpMbDpdXSIsCisgICAgICAgICAgICAiW35bOkx1Ol1bOkxsOl1dIiwKKworICAgICAgICAgICAgU0VULAorICAgICAgICAgICAgIlt+W2Etel1dIiwKKyAgICAgICAgICAgICJbflthLXpdXSIsCisKKyAgICAgICAgICAgIFJCVCwKKyAgICAgICAgICAgICIkd2hpdGU9WzpaczpdOyAkYmxhY2s9W14kd2hpdGVdOyAkYmxhY2t7YX0gPiBBOyIsCisgICAgICAgICAgICAiW15bOlpzOl1de2F9ID4gQTsiLAorCisgICAgICAgICAgICBSQlQsCisgICAgICAgICAgICAiJGE9WzpaczpdOyAkYj1bW2Etel0tJGFdOyAkYnthfSA+IEE7IiwKKyAgICAgICAgICAgICJbW2Etel0tWzpaczpdXXthfSA+IEE7IiwKKworICAgICAgICAgICAgUkJULAorICAgICAgICAgICAgIiRhPVs6WnM6XTsgJGI9WyRhJlthLXpdXTsgJGJ7YX0gPiBBOyIsCisgICAgICAgICAgICAiW1s6WnM6XSZbYS16XV17YX0gPiBBOyIsCisKKyAgICAgICAgICAgIFJCVCwKKyAgICAgICAgICAgICIkYT1bOlpzOl07ICRiPVt4JGFdOyAkYnthfSA+IEE7IiwKKyAgICAgICAgICAgICJbeFs6WnM6XV17YX0gPiBBOyIsCisKKyAgICAgICAgICAgIFJCVCwKKyAgICAgICAgICAgICIkYWNjZW50TWludXMgPSBbIFtcXHUwMzAwLVxcdTAzNDVdICYgWzpNOl0gLSBbXFx1MDMzOF1dIDsiKworICAgICAgICAgICAgIiRtYWNyb24gPSBcXHUwMzA0IDsiKworICAgICAgICAgICAgIiRldm93ZWwgPSBbYWVpb3V5QUVJT1VZXSA7IisKKyAgICAgICAgICAgICIkaW90YXN1YiA9IFxcdTAzNDUgOyIrCisgICAgICAgICAgICAiKCRldm93ZWwgJG1hY3JvbiAkYWNjZW50TWludXMgKikgaSA+IHwgJDEgJGlvdGFzdWIgOyIsCisgICAgICAgICAgICAiKFtBRUlPVVlhZWlvdXldXFx1MDMwNFtbXFx1MDMwMC1cXHUwMzQ1XSZbOk06XS1bXFx1MDMzOF1dKilpID4gfCAkMSBcXHUwMzQ1OyIsCisKKyAgICAgICAgICAgIFJCVCwKKyAgICAgICAgICAgICIoW0FFSU9VWWFlaW91eV1cXHUwMzA0W1s6TTpdLVtcXHUwMzA0XFx1MDM0NV1dKilpID4gfCAkMSBcXHUwMzQ1OyIsCisgICAgICAgICAgICAiKFtBRUlPVVlhZWlvdXldXFx1MDMwNFtbOk06XS1bXFx1MDMwNFxcdTAzNDVdXSopaSA+IHwgJDEgXFx1MDM0NTsiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGQ9MDsgZCA8IERBVEEubGVuZ3RoOyBkKz0zKSB7CisgICAgICAgICAgICBpZiAoREFUQVtkXSA9PSBSQlQpIHsKKyAgICAgICAgICAgICAgICAvLyBUcmFuc2xpdGVyYXRvciB0ZXN0CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiSUQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREFUQVtkKzFdLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVGcm9tUnVsZXMgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGVzLCBlc2NhcGVkUnVsZXM7CisgICAgICAgICAgICAgICAgcnVsZXMgPSB0LnRvUnVsZXMoZmFsc2UpOworICAgICAgICAgICAgICAgIGVzY2FwZWRSdWxlcyA9IHQudG9SdWxlcyh0cnVlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwUnVsZXMgPSBVdGlsaXR5LnVuZXNjYXBlKERBVEFbZCsyXSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGV4cEVzY2FwZWRSdWxlcyA9IERBVEFbZCsyXTsKKyAgICAgICAgICAgICAgICBpZiAocnVsZXMuZXF1YWxzKGV4cFJ1bGVzKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBEQVRBW2QrMV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBVdGlsaXR5LmVzY2FwZShydWxlcykpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgREFUQVtkKzFdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgVXRpbGl0eS5lc2NhcGUocnVsZXMgKyAiLCBleHAgIiArIGV4cFJ1bGVzKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChlc2NhcGVkUnVsZXMuZXF1YWxzKGV4cEVzY2FwZWRSdWxlcykpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgREFUQVtkKzFdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiA9PiAiICsgZXNjYXBlZFJ1bGVzKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIERBVEFbZCsxXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgPT4gIiArIGVzY2FwZWRSdWxlcyArICIsIGV4cCAiICsgZXhwRXNjYXBlZFJ1bGVzKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gVW5pY29kZVNldCB0ZXN0CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdCA9IERBVEFbZCsxXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwVG9QYXQgPSBEQVRBW2QrMl07CisgICAgICAgICAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldChwYXQpOworCisgICAgICAgICAgICAgICAgLy8gQWRqdXN0IHNwYWNpbmcgZXRjLiBhcyBuZWNlc3NhcnkuCisgICAgICAgICAgICAgICAgU3RyaW5nIHRvUGF0OworICAgICAgICAgICAgICAgIHRvUGF0ID0gc2V0LnRvUGF0dGVybih0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAoZXhwVG9QYXQuZXF1YWxzKHRvUGF0KSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBwYXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyB0b1BhdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBwYXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBVdGlsaXR5LmVzY2FwZSh0b1BhdCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBleHAgIiArIFV0aWxpdHkuZXNjYXBlKHBhdCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDb250ZXh0KCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MgPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oMCwgMiwgMCwgMSk7IC8vIGNzIGNsIHMgbAorCisgICAgICAgIGV4cGVjdCgiZGUgPiB4OyB7ZH1lID4geTsiLAorICAgICAgICAgICAgICAgImRlIiwKKyAgICAgICAgICAgICAgICJ5ZSIsCisgICAgICAgICAgICAgICBwb3MpOworCisgICAgICAgIGV4cGVjdCgiYWJ7Y30gPiB6OyIsCisgICAgICAgICAgICAgICAieGFkYWJkYWJjeSIsCisgICAgICAgICAgICAgICAieGFkYWJkYWJ6eSIpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoU3RyaW5nIHMpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxpdHkudW5lc2NhcGUocyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFN1cHBsZW1lbnRhbCgpIHsKKworICAgICAgICBleHBlY3QoQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIiRhPVxcVTAwMDEwMzAwOyAkcz1bXFxVMDAwMTAzMDAtXFxVMDAwMTAzMjNdOyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImEgPiAkYTsgJHMgPiBpOyIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoImFiXFxVMDAwMTAzMEZ4IiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMDBiaXgiKSk7CisKKyAgICAgICAgZXhwZWN0KENoYXJzVG9Vbmljb2RlU3RyaW5nKCIkYT1bYS16XFxVMDAwMTAzMDAtXFxVMDAwMTAzMjNdOyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRiPVtBLVpcXFUwMDAxMDQwMC1cXFUwMDAxMDQ0RF07IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKCRhKSgkYikgPiAkMiAkMTsiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJhQlxcVTAwMDEwMzAwXFxVMDAwMTA0MDBjXFxVMDAwMTA0MDFcXFUwMDAxMDMwMUQiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJCYVxcVTAwMDEwNDAwXFxVMDAwMTAzMDBcXFUwMDAxMDQwMWNEXFxVMDAwMTAzMDEiKSk7CisKKyAgICAgICAgLy8ga3xheFxcVTAwMDEwMzAweG0KKworICAgICAgICAvLyBrfGFcXFUwMDAxMDQwMFxcVTAwMDEwMzAweG0KKyAgICAgICAgLy8ga3l8XFxVMDAwMTA0MDBcXFUwMDAxMDMwMHhtCisgICAgICAgIC8vIGt5XFxVMDAwMTA0MDB8XFxVMDAwMTAzMDB4bQorCisgICAgICAgIC8vIGt5XFxVMDAwMTA0MDB8XFxVMDAwMTAzMDBcXFUwMDAxMDQwMG0KKyAgICAgICAgLy8ga3lcXFUwMDAxMDQwMHl8XFxVMDAwMTA0MDBtCisgICAgICAgIGV4cGVjdChDaGFyc1RvVW5pY29kZVN0cmluZygiJGE9W2FcXFUwMDAxMDMwMC1cXFUwMDAxMDMyM107IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJGEge3h9ID4gfCBAIFxcVTAwMDEwNDAwOyIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInskYX0gW15cXHUwMDAwLVxcdUZGRkZdID4geTsiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJrYXhcXFUwMDAxMDMwMHhtIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygia3lcXFUwMDAxMDQwMHlcXFUwMDAxMDQwMG0iKSk7CisKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTmFtZSIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAwRTAwNjFcXHUwMEEwIiksCisgICAgICAgICAgICAgICAiXFxOe0dPVEhJQyBMRVRURVIgQUhTQX1cXE57VEFHIExBVElOIFNNQUxMIExFVFRFUiBBfVxcTntOTy1CUkVBSyBTUEFDRX0iKTsKKworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5hbWUtQW55IiksCisgICAgICAgICAgICAgICAiXFxOe0dPVEhJQyBMRVRURVIgQUhTQX1cXE57VEFHIExBVElOIFNNQUxMIExFVFRFUiBBfVxcTntOTy1CUkVBSyBTUEFDRX0iLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAwRTAwNjFcXHUwMEEwIikpOworCisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleC9Vbmljb2RlIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMzBcXFUwMDEwRkYwMFxcVTAwMEUwMDYxXFx1MDBBMCIpLAorICAgICAgICAgICAgICAgIlUrMTAzMzBVKzEwRkYwMFUrRTAwNjFVKzAwQTAiKTsKKworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgvQyIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAxMEZGMDBcXFUwMDBFMDA2MVxcdTAwQTAiKSwKKyAgICAgICAgICAgICAgICJcXFUwMDAxMDMzMFxcVTAwMTBGRjAwXFxVMDAwRTAwNjFcXHUwMEEwIik7CisKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktSGV4L1BlcmwiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXFUwMDAxMDMzMFxcVTAwMTBGRjAwXFxVMDAwRTAwNjFcXHUwMEEwIiksCisgICAgICAgICAgICAgICAiXFx4ezEwMzMwfVxceHsxMEZGMDB9XFx4e0UwMDYxfVxceHtBMH0iKTsKKworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgvSmF2YSIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAxMEZGMDBcXFUwMDBFMDA2MVxcdTAwQTAiKSwKKyAgICAgICAgICAgICAgICJcXHVEODAwXFx1REYzMFxcdURCRkZcXHVERjAwXFx1REI0MFxcdURDNjFcXHUwMEEwIik7CisKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktSGV4L1hNTCIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcVTAwMDEwMzMwXFxVMDAxMEZGMDBcXFUwMDBFMDA2MVxcdTAwQTAiKSwKKyAgICAgICAgICAgICAgICImI3gxMDMzMDsmI3gxMEZGMDA7JiN4RTAwNjE7JiN4QTA7Iik7CisKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktSGV4L1hNTDEwIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMzBcXFUwMDEwRkYwMFxcVTAwMEUwMDYxXFx1MDBBMCIpLAorICAgICAgICAgICAgICAgIiYjNjYzNTI7JiMxMTEzODU2OyYjOTE3NjAxOyYjMTYwOyIpOworCisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiW1xcVTAwMEUwMDAwLVxcVTAwMEUwRkZGXSBSZW1vdmUiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXFUwMDAxMDMzMFxcVTAwMTBGRjAwXFxVMDAwRTAwNjFcXHUwMEEwIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiXFxVMDAwMTAzMzBcXFUwMDEwRkYwMFxcdTAwQTAiKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFF1YW50aWZpZXIoKSB7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIEAgaW4gYSBxdWFudGlmaWVkIGFudGVDb250ZXh0IHdvcmtzCisgICAgICAgIGV4cGVjdCgiYSsge2J9ID4gfCBAQCBjOyBBID4gYTsgKGErIGMpID4gJygnICQxICcpJzsiLAorICAgICAgICAgICAgICAgIkFBQUFBYiIsCisgICAgICAgICAgICAgICAiYWFhKGFhYykiKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgQCBpbiBhIHF1YW50aWZpZWQgcG9zdENvbnRleHQgd29ya3MKKyAgICAgICAgZXhwZWN0KCJ7Yn0gYSsgPiBjIEBAIHw7IChhKykgPiAnKCcgJDEgJyknOyIsCisgICAgICAgICAgICAgICAiYmFhYWFhIiwKKyAgICAgICAgICAgICAgICJjYWEoYWFhKSIpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSBAIGluIGEgcXVhbnRpZmllZCBwb3N0Q29udGV4dCB3aXRoIHNlZyByZWYgd29ya3MKKyAgICAgICAgZXhwZWN0KCJ7KGIpfSBhKyA+ICQxIEBAIHw7IChhKykgPiAnKCcgJDEgJyknOyIsCisgICAgICAgICAgICAgICAiYmFhYWFhIiwKKyAgICAgICAgICAgICAgICJiYWEoYWFhKSIpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSBAIHBhc3QgYW50ZSBjb250ZXh0IGRvZXNuJ3QgZW50ZXIgYW50ZSBjb250ZXh0CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcyA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigwLCA1LCAzLCA1KTsKKyAgICAgICAgZXhwZWN0KCJhKyB7Yn0gPiB8IEBAIGM7IHggPiB5OyAoYSsgYykgPiAnKCcgJDEgJyknOyIsCisgICAgICAgICAgICAgICAieHh4YWIiLAorICAgICAgICAgICAgICAgInh4eChhYykiLAorICAgICAgICAgICAgICAgcG9zKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgQCBwYXN0IHBvc3QgY29udGV4dCBkb2Vzbid0IHBhc3MgbGltaXQKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zMiA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigwLCA0LCAwLCAyKTsKKyAgICAgICAgZXhwZWN0KCJ7Yn0gYSsgPiBjIEBAIHw7IHggPiB5OyBhID4gQTsiLAorICAgICAgICAgICAgICAgImJheHgiLAorICAgICAgICAgICAgICAgImNheHgiLAorICAgICAgICAgICAgICAgcG9zMik7CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIEAgcGFzdCBwb3N0IGNvbnRleHQgZG9lc24ndCBlbnRlciBwb3N0IGNvbnRleHQKKyAgICAgICAgZXhwZWN0KCJ7Yn0gYSsgPiBjIEBAIHw7IHggPiB5OyBhID4gQTsiLAorICAgICAgICAgICAgICAgImJheHgiLAorICAgICAgICAgICAgICAgImNheXkiKTsKKworICAgICAgICBleHBlY3QoIihhYik/IGMgPiBkOyIsCisgICAgICAgICAgICAgICAiYyBhYmMgYWJhYmMiLAorICAgICAgICAgICAgICAgImQgZCBhYmQiKTsKKworICAgICAgICAvLyBOT1RFOiBUaGUgKGFiKSsgd2hlbiByZWZlcmVuY2VkIGp1c3QgeWllbGRzIGEgc2luZ2xlICJhYiIsCisgICAgICAgIC8vIG5vdCB0aGUgZnVsbCBzZXF1ZW5jZSBvZiB0aGVtLiAgVGhpcyBhY2NvcmRzIHdpdGggcGVybCBiZWhhdmlvci4KKyAgICAgICAgZXhwZWN0KCIoYWIpKyB7eH0gPiAnKCcgJDEgJyknOyIsCisgICAgICAgICAgICAgICAieCBhYnggYWJhYnh5IiwKKyAgICAgICAgICAgICAgICJ4IGFiKGFiKSBhYmFiKGFiKXkiKTsKKworICAgICAgICBleHBlY3QoImIrID4geDsiLAorICAgICAgICAgICAgICAgImFjIGFiYyBhYmJjIGFiYmJjIiwKKyAgICAgICAgICAgICAgICJhYyBheGMgYXhjIGF4YyIpOworCisgICAgICAgIGV4cGVjdCgiW2FiY10rID4geDsiLAorICAgICAgICAgICAgICAgInFhYyBhYnJjIGFiYmNzIGFidGJiYyIsCisgICAgICAgICAgICAgICAicXggeHJ4IHhzIHh0eCIpOworCisgICAgICAgIGV4cGVjdCgicXsoYWIpK30gPiB4OyIsCisgICAgICAgICAgICAgICAicWEgcWFiIHFhYmEgcWFiYWJjIHFhYmEiLAorICAgICAgICAgICAgICAgInFhIHF4IHF4YSBxeGMgcXhhIik7CisKKyAgICAgICAgZXhwZWN0KCJxKGFiKSogPiB4OyIsCisgICAgICAgICAgICAgICAicWEgcWFiIHFhYmEgcWFiYWJjIiwKKyAgICAgICAgICAgICAgICJ4YSB4IHhhIHhjIik7CisKKyAgICAgICAgLy8gTk9URTogVGhlIChhYikrIHdoZW4gcmVmZXJlbmNlZCBqdXN0IHlpZWxkcyBhIHNpbmdsZSAiYWIiLAorICAgICAgICAvLyBub3QgdGhlIGZ1bGwgc2VxdWVuY2Ugb2YgdGhlbS4gIFRoaXMgYWNjb3JkcyB3aXRoIHBlcmwgYmVoYXZpb3IuCisgICAgICAgIGV4cGVjdCgicShhYikqID4gJygnICQxICcpJzsiLAorICAgICAgICAgICAgICAgInFhIHFhYiBxYWJhIHFhYmFiYyIsCisgICAgICAgICAgICAgICAiKClhIChhYikgKGFiKWEgKGFiKWMiKTsKKworICAgICAgICAvLyAnZm9vJysgYW5kICdmb28nKiAtLSB0aGUgcXVhbnRpZmllciBzaG91bGQgYXBwbHkgdG8gdGhlIGVudGlyZQorICAgICAgICAvLyBxdW90ZWQgc3RyaW5nCisgICAgICAgIGV4cGVjdCgiJ2FiJysgPiB4OyIsCisgICAgICAgICAgICAgICAiYmIgYWIgYWJhYmIiLAorICAgICAgICAgICAgICAgImJiIHggeGIiKTsKKworICAgICAgICAvLyAkZm9vKyBhbmQgJGZvbyogLS0gdGhlIHF1YW50aWZpZXIgc2hvdWxkIGFwcGx5IHRvIHRoZSBlbnRpcmUKKyAgICAgICAgLy8gdmFyaWFibGUgcmVmZXJlbmNlCisgICAgICAgIGV4cGVjdCgiJHZhciA9IGFiOyAkdmFyKyA+IHg7IiwKKyAgICAgICAgICAgICAgICJiYiBhYiBhYmFiYiIsCisgICAgICAgICAgICAgICAiYmIgeCB4YiIpOworICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBUZXN0RmFjdCBpbXBsZW1lbnRzIFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkgeworICAgICAgICBzdGF0aWMgY2xhc3MgTmFtZWFibGVOdWxsVHJhbnMgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisgICAgICAgICAgICBwdWJsaWMgTmFtZWFibGVOdWxsVHJhbnMoU3RyaW5nIGlkKSB7CisgICAgICAgICAgICAgICAgc3VwZXIoaWQsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0cy5zdGFydCA9IG9mZnNldHMubGltaXQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGlkOworICAgICAgICBwdWJsaWMgVGVzdEZhY3QoU3RyaW5nIHRoZUlEKSB7CisgICAgICAgICAgICBpZCA9IHRoZUlEOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgaWdub3JlZElEKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IE5hbWVhYmxlTnVsbFRyYW5zKGlkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTVFYoKSB7CisgICAgICAgIEVudW1lcmF0aW9uIGVzID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlU291cmNlcygpOworICAgICAgICBmb3IgKGludCBpPTA7IGVzLmhhc01vcmVFbGVtZW50cygpOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSAoU3RyaW5nKSBlcy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgbG9nbG4oIiIgKyBpICsgIjogIiArIHNvdXJjZSk7CisgICAgICAgICAgICBpZiAoc291cmNlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogZW1wdHkgc291cmNlIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBFbnVtZXJhdGlvbiBldCA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVRhcmdldHMoc291cmNlKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgZXQuaGFzTW9yZUVsZW1lbnRzKCk7ICsraikgeworICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSAoU3RyaW5nKSBldC5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIGxvZ2xuKCIgIiArIGogKyAiOiAiICsgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGVtcHR5IHRhcmdldCIpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgRW51bWVyYXRpb24gZXYgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVWYXJpYW50cyhzb3VyY2UsIHRhcmdldCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBldi5oYXNNb3JlRWxlbWVudHMoKTsgKytrKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50ID0gKFN0cmluZykgZXYubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIiAgIiArIGsgKyAiOiA8ZW1wdHk+Iik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigiICAiICsgayArICI6ICIgKyB2YXJpYW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3QgcmVnaXN0cmF0aW9uCisgICAgICAgIFN0cmluZ1tdIElEUyA9IHsgIkZpZXJ1d2VyIiwgIlNlb3JpZGYtU3dlb3JpZSIsICJPZXdvaXItT3dlcmkvVnNpZSIgfTsKKyAgICAgICAgU3RyaW5nW10gRlVMTF9JRFMgPSB7ICJBbnktRmllcnV3ZXIiLCAiU2VvcmlkZi1Td2VvcmllIiwgIk9ld29pci1Pd2VyaS9Wc2llIiB9OworICAgICAgICBTdHJpbmdbXSBTT1VSQ0VTID0geyBudWxsLCAiU2VvcmlkZiIsICJPZXdvaXIiIH07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTwzOyArK2kpIHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShJRFNbaV0sIG5ldyBUZXN0RmFjdChJRFNbaV0pKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEU1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKHQuZ2V0SUQoKS5lcXVhbHMoSURTW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6IFJlZ2lzdHJhdGlvbi9jcmVhdGlvbiBzdWNjZWVkZWQgZm9yIElEICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICBJRFNbaV0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBSZWdpc3RyYXRpb24gb2YgSUQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIElEU1tpXSArICIgY3JlYXRlcyBJRCAiICsgdC5nZXRJRCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IudW5yZWdpc3RlcihJRFNbaV0pOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRFNbaV0pOworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogVW5yZWdpc3RyYXRpb24gZmFpbGVkIGZvciBJRCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgSURTW2ldICsgIjsgc3RpbGwgcmVjZWl2aW5nIElEICIgKyB0LmdldElEKCkpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlMikgeworICAgICAgICAgICAgICAgICAgICAvLyBHb29kOyB0aGlzIGlzIHdoYXQgd2UgZXhwZWN0CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPazsgVW5yZWdpc3RlcmVkICIgKyBJRFNbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFJlZ2lzdHJhdGlvbi9jcmVhdGlvbiBmYWlsZWQgZm9yIElEICIgKworICAgICAgICAgICAgICAgICAgICAgIElEU1tpXSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnVucmVnaXN0ZXIoSURTW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIE1ha2Ugc3VyZSBnZXRBdmFpbGFibGUgQVBJIHJlZmxlY3RzIHJlbW92YWwKKyAgICAgICAgZm9yIChFbnVtZXJhdGlvbiBlID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgICAgICAgZS5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8MzsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlkLmVxdWFscyhGVUxMX0lEU1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHVucmVnaXN0ZXIoIiArIGlkICsgIikgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoRW51bWVyYXRpb24gZSA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVRhcmdldHMoIkFueSIpOworICAgICAgICAgICAgIGUuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgU3RyaW5nIHQgPSAoU3RyaW5nKSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBpZiAodC5lcXVhbHMoSURTWzBdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiB1bnJlZ2lzdGVyKEFueS0iICsgdCArICIpIGZhaWxlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoRW51bWVyYXRpb24gZSA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVNvdXJjZXMoKTsKKyAgICAgICAgICAgICBlLmhhc01vcmVFbGVtZW50cygpOyApIHsKKyAgICAgICAgICAgIFN0cmluZyBzID0gKFN0cmluZykgZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPDM7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChTT1VSQ0VTW2ldID09IG51bGwpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChzLmVxdWFscyhTT1VSQ0VTW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogdW5yZWdpc3RlcigiICsgcyArICItKikgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBpbnZlcnNlIG9mIEdyZWVrLUxhdGluOyBUaXRsZSgpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvbXBvdW5kSW52ZXJzZSgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlCisgICAgICAgICAgICAoIkdyZWVrLUxhdGluOyBUaXRsZSgpIiwgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVJbnN0YW5jZSIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBleHAgPSAiKFRpdGxlKTtMYXRpbi1HcmVlayI7CisgICAgICAgIGlmICh0LmdldElEKCkuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogaW52ZXJzZSBvZiBcIkdyZWVrLUxhdGluOyBUaXRsZSgpXCIgaXMgXCIiICsKKyAgICAgICAgICAgICAgICAgIHQuZ2V0SUQoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogaW52ZXJzZSBvZiBcIkdyZWVrLUxhdGluOyBUaXRsZSgpXCIgaXMgXCIiICsKKyAgICAgICAgICAgICAgICAgIHQuZ2V0SUQoKSArICJcIiwgZXhwZWN0ZWQgXCIiICsgZXhwICsgIlwiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IE5GRCBjaGFpbmluZyB3aXRoIFJCVAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RORkRDaGFpblJCVCgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVEVTVCIsICI6Ok5GRDsgYWEgPiBROyBhID4gcTsiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBsb2dsbih0LnRvUnVsZXModHJ1ZSkpOworICAgICAgICBleHBlY3QodCwgImFhIiwgIlEiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnZlcnNlIG9mICJOdWxsIiBzaG91bGQgYmUgIk51bGwiLiAoSjIxKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROdWxsSW52ZXJzZSgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJOdWxsIik7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHUgPSB0LmdldEludmVyc2UoKTsKKyAgICAgICAgaWYgKCF1LmdldElEKCkuZXF1YWxzKCJOdWxsIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBJbnZlcnNlIG9mIE51bGwgc2hvdWxkIGJlIE51bGwiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIElEIG9mIGludmVyc2Ugb2YgYWxpYXMuIChKMjIpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFsaWFzSW52ZXJzZUlEKCkgeworICAgICAgICBTdHJpbmcgSUQgPSAiTGF0aW4tSGFuZ3VsIjsgLy8gVGhpcyBzaG91bGQgYmUgYW55IGFsaWFzIElEIHdpdGggYW4gaW52ZXJzZQorICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoSUQpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB1ID0gdC5nZXRJbnZlcnNlKCk7CisgICAgICAgIFN0cmluZyBleHAgPSAiSGFuZ3VsLUxhdGluIjsKKyAgICAgICAgU3RyaW5nIGdvdCA9IHUuZ2V0SUQoKTsKKyAgICAgICAgaWYgKCFnb3QuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBJbnZlcnNlIG9mICIgKyBJRCArICIgaXMgIiArIGdvdCArCisgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgSURzIG9mIGludmVyc2VzIG9mIGNvbXBvdW5kIHRyYW5zbGl0ZXJhdG9ycy4gKEoyMCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG91bmRJbnZlcnNlSUQoKSB7CisgICAgICAgIFN0cmluZyBJRCA9ICJMYXRpbi1KYW1vO05GQyhORkQpIjsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdSA9IHQuZ2V0SW52ZXJzZSgpOworICAgICAgICBTdHJpbmcgZXhwID0gIk5GRChORkMpO0phbW8tTGF0aW4iOworICAgICAgICBTdHJpbmcgZ290ID0gdS5nZXRJRCgpOworICAgICAgICBpZiAoIWdvdC5lcXVhbHMoZXhwKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEludmVyc2Ugb2YgIiArIElEICsgIiBpcyAiICsgZ290ICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBleHApOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB1bmRlZmluZWQgdmFyaWFibGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFVuZGVmaW5lZFZhcmlhYmxlKCkgeworICAgICAgICBTdHJpbmcgcnVsZSA9ICIkaW5pdGlhbCB9IGEgPD4gXHUxMTYxOyI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCI8SUQ+IiwgcnVsZSxUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIHQgPSBudWxsOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiBHb3QgZXhjZXB0aW9uIGZvciAiICsgcnVsZSArICIsIGFzIGV4cGVjdGVkOiAiICsKKyAgICAgICAgICAgICAgICAgIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBlcnJsbigiRmFpbDogYm9ndXMgcnVsZSAiICsgcnVsZSArICIgY29tcGlsZWQgd2l0aG91dCBlcnJvciIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgZW1wdHkgY29udGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RW1wdHlDb250ZXh0KCkgeworICAgICAgICBleHBlY3QoIiB7IGEgfSA+IGI7IiwgInhheSBhICIsICJ4YnkgYiAiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGNvbXBvdW5kIGZpbHRlciBJRCBzeW50YXgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcG91bmRGaWx0ZXJJRCgpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIENvbC4gMSA9IElEIG9yIHJ1bGUgc2V0IChsYXR0ZXIgbXVzdCBzdGFydCB3aXRoICMpCisKKyAgICAgICAgICAgIC8vID0gY29sdW1ucyA+IDEgYXJlIG51bGwgaWYgZXhwZWN0IGNvbC4gMSB0byBiZSBpbGxlZ2FsID0KKworICAgICAgICAgICAgLy8gQ29sLiAyID0gZGlyZWN0aW9uLCAiRi4uLiIgb3IgIlIuLi4iCisgICAgICAgICAgICAvLyBDb2wuIDMgPSBzb3VyY2Ugc3RyaW5nCisgICAgICAgICAgICAvLyBDb2wuIDQgPSBleHAgcmVzdWx0CisKKyAgICAgICAgICAgICJbYWJjXTsgW2FiY10iLCBudWxsLCBudWxsLCBudWxsLCAvLyBtdWx0aXBsZSBmaWx0ZXJzCisgICAgICAgICAgICAiTGF0aW4tR3JlZWs7IFthYmNdOyIsIG51bGwsIG51bGwsIG51bGwsIC8vIG1pc3BsYWNlZCBmaWx0ZXIKKyAgICAgICAgICAgICJbYl07IExhdGluLUdyZWVrOyBVcHBlcjsgKFt4eXpdKSIsICJGIiwgImFiYyIsICJhXHUwMzkyYyIsCisgICAgICAgICAgICAiW2JdOyAoTG93ZXIpOyBMYXRpbi1HcmVlazsgVXBwZXIoKTsgKFtcdTAzOTJdKSIsICJSIiwgIlx1MDM5MVx1MDM5Mlx1MDM5MyIsICJcdTAzOTFiXHUwMzkzIiwKKyAgICAgICAgICAgICIjXG46OltiXTsgOjpMYXRpbi1HcmVlazsgOjpVcHBlcjsgOjooW3h5el0pOyIsICJGIiwgImFiYyIsICJhXHUwMzkyYyIsCisgICAgICAgICAgICAiI1xuOjpbYl07IDo6KExvd2VyKTsgOjpMYXRpbi1HcmVlazsgOjpVcHBlcigpOyA6OihbXHUwMzkyXSk7IiwgIlIiLCAiXHUwMzkxXHUwMzkyXHUwMzkzIiwgIlx1MDM5MWJcdTAzOTMiLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9NCkgeworICAgICAgICAgICAgU3RyaW5nIGlkID0gREFUQVtpXTsKKyAgICAgICAgICAgIGludCBkaXJlY3Rpb24gPSAoREFUQVtpKzFdICE9IG51bGwgJiYgREFUQVtpKzFdLmNoYXJBdCgwKSA9PSAnUicpID8KKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5SRVZFUlNFIDogVHJhbnNsaXRlcmF0b3IuRk9SV0FSRDsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSBEQVRBW2krMl07CisgICAgICAgICAgICBTdHJpbmcgZXhwID0gREFUQVtpKzNdOworICAgICAgICAgICAgYm9vbGVhbiBleHBPayA9IChEQVRBW2krMV0gIT0gbnVsbCk7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbnVsbDsKKyAgICAgICAgICAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKGlkLmNoYXJBdCgwKSA9PSAnIycpIHsKKyAgICAgICAgICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiSUQiLCBpZCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWQsIGRpcmVjdGlvbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGVlKSB7CisgICAgICAgICAgICAgICAgZSA9IGVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9vbGVhbiBvayA9ICh0ICE9IG51bGwgJiYgZSA9PSBudWxsKTsKKyAgICAgICAgICAgIGlmIChvayA9PSBleHBPaykgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGlkICsgIiA9PiAiICsgdCArCisgICAgICAgICAgICAgICAgICAgICAgKGUgIT0gbnVsbCA/ICgiLCAiICsgZS5nZXRNZXNzYWdlKCkpIDogIiIpKTsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0KHQsIHNvdXJjZSwgZXhwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgaWQgKyAiID0+ICIgKyB0ICsKKyAgICAgICAgICAgICAgICAgICAgICAoZSAhPSBudWxsID8gKCIsICIgKyBlLmdldE1lc3NhZ2UoKSkgOiAiIikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBuZXcgcHJvcGVydHkgc2V0IHN5bnRheAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQcm9wZXJ0eVNldCgpIHsKKyAgICAgICAgZXhwZWN0KCJhPkE7IFxccHtMdX0+eDsgXFxwe0FueX0+eTsiLCAiYWJjREVGIiwgIkF5eXh4eCIpOworICAgICAgICBleHBlY3QoIiguKyk+J1snICQxICddJzsiLCAiIGEgc3RpdGNoIFxuIGluIHRpbWUgXHIgc2F2ZXMgOSIsCisgICAgICAgICAgICAgICAiWyBhIHN0aXRjaCBdXG5bIGluIHRpbWUgXVxyWyBzYXZlcyA5XSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdmFyaW91cyBmYWlsdXJlIHBvaW50cyBvZiB0aGUgbmV3IDIuMCBlbmdpbmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE5ld0VuZ2luZSgpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1IaXJhZ2FuYSIpOworICAgICAgICAvLyBLYXRha2FuYSBzaG91bGQgYmUgdW50b3VjaGVkCisgICAgICAgIGV4cGVjdCh0LCAiYVx1MzA0Mlx1MzBBMiIsICJcdTMwNDJcdTMwNDJcdTMwQTIiKTsKKworICAgICAgICBpZiAodHJ1ZSkgeworICAgICAgICAgICAgLy8gVGhpcyB0ZXN0IHdpbGwgb25seSB3b3JrIGlmIFRyYW5zbGl0ZXJhdG9yLlJPTExCQUNLIGlzCisgICAgICAgICAgICAvLyB0cnVlLiAgT3RoZXJ3aXNlLCB0aGlzIHRlc3Qgd2lsbCBmYWlsLCByZXZlYWxpbmcgYQorICAgICAgICAgICAgLy8gbGltaXRhdGlvbiBvZiBnbG9iYWwgZmlsdGVycyBpbiBpbmNyZW1lbnRhbCBtb2RlLgorCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciBhID0KKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoImFfdG9fQSIsICJhID4gQTsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIEEgPQorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiQV90b19iIiwgIkEgPiBiOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworCisgICAgICAgICAgICAvL1RyYW5zbGl0ZXJhdG9yIGFycmF5W10gPSBuZXcgVHJhbnNsaXRlcmF0b3JbXSB7CisgICAgICAgICAgICAvLyAgICBhLAorICAgICAgICAgICAgLy8gICAgVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIk5GRCIpLAorICAgICAgICAgICAgLy8gICAgQSB9OworICAgICAgICAgICAgLy90ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoYXJyYXksIG5ldyBVbmljb2RlU2V0KCJbOkxsOl0iKSk7CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJJbnN0YW5jZShhKTsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3Rlckluc3RhbmNlKEEpOworCisgICAgICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJbOkxsOl07YV90b19BO05GRDtBX3RvX2IiKTsKKyAgICAgICAgICAgICAgICBleHBlY3QodCwgImFBYUEiLCAiYkFiQSIpOworCisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3JbXSB1ID0gdC5nZXRFbGVtZW50cygpOworICAgICAgICAgICAgICAgIGFzc2VydFRydWUoImdldEVsZW1lbnRzKCkubGVuZ3RoIiwgdS5sZW5ndGggPT0gMyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRFbGVtZW50cygpWzBdIiwgdVswXS5nZXRJRCgpLCAiYV90b19BIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRFbGVtZW50cygpWzFdIiwgdVsxXS5nZXRJRCgpLCAiTkZEIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJnZXRFbGVtZW50cygpWzJdIiwgdVsyXS5nZXRJRCgpLCAiQV90b19iIik7CisKKyAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoImFfdG9fQTtORkQ7QV90b19iIik7CisgICAgICAgICAgICAgICAgdC5zZXRGaWx0ZXIobmV3IFVuaWNvZGVTZXQoIls6TGw6XSIpKTsKKyAgICAgICAgICAgICAgICBleHBlY3QodCwgImFBYUEiLCAiYkFiQSIpOworICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci51bnJlZ2lzdGVyKCJhX3RvX0EiKTsgCisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IudW5yZWdpc3RlcigiQV90b19iIik7ICAgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBleHBlY3QoIiRzbW9vdGggPSB4OyAkbWFjcm9uID0gcTsgWzpeTDpdIHsgKFthZWlvdXlBRUlPVVldICRtYWNyb24/KSB9IFteYWVpb3V5QUVJT1VZJHNtb290aCRtYWNyb25dID4gfCAkMSAkc21vb3RoIDsiLAorICAgICAgICAgICAgICAgImEiLAorICAgICAgICAgICAgICAgImF4Iik7CisKKyAgICAgICAgU3RyaW5nIGdyID0KKyAgICAgICAgICAgICIkZGRvdCA9IFx1MDMwOCA7IiArCisgICAgICAgICAgICAiJGxjZ3Zvd2VsID0gW1x1MDNiMVx1MDNiNVx1MDNiN1x1MDNiOVx1MDNiZlx1MDNjNVx1MDNjOV0gOyIgKworICAgICAgICAgICAgIiRyb3VnaCA9IFx1MDMxNCA7IiArCisgICAgICAgICAgICAiKCRsY2d2b3dlbCsgJGRkb3Q/KSAkcm91Z2ggPiBoIHwgJDEgOyIgKworICAgICAgICAgICAgIlx1MDNiMSA8PiBhIDsiICsKKyAgICAgICAgICAgICIkcm91Z2ggPD4gaCA7IjsKKworICAgICAgICBleHBlY3QoZ3IsICJcdTAzQjFcdTAzMTQiLCAiaGEiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHF1YW50aWZpZWQgc2VnbWVudCBiZWhhdmlvci4gIFdlIHdhbnQ6CisgICAgICogKFthYmNdKSsgPiB4ICQxIHg7IGFwcGxpZWQgdG8gImNiYSIgcHJvZHVjZXMgInhheCIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UXVhbnRpZmllZFNlZ21lbnQoKSB7CisgICAgICAgIC8vIFRoZSBub3JtYWwgY2FzZQorICAgICAgICBleHBlY3QoIihbYWJjXSspID4geCAkMSB4OyIsICJjYmEiLCAieGNiYXgiKTsKKworICAgICAgICAvLyBUaGUgdHJpY2t5IGNhc2U7IHRoZSBxdWFudGlmaWVyIGlzIGFyb3VuZCB0aGUgc2VnbWVudAorICAgICAgICBleHBlY3QoIihbYWJjXSkrID4geCAkMSB4OyIsICJjYmEiLCAieGF4Iik7CisKKyAgICAgICAgLy8gVHJpY2t5IGNhc2UgaW4gcmV2ZXJzZSBkaXJlY3Rpb24KKyAgICAgICAgZXhwZWN0KCIoW2FiY10pKyB7IHEgPiB4ICQxIHg7IiwgImNiYXEiLCAiY2JheGF4Iik7CisKKyAgICAgICAgLy8gQ2hlY2sgcG9zdC1jb250ZXh0IHNlZ21lbnQKKyAgICAgICAgZXhwZWN0KCJ7cX0gKFthLWRdKSsgPiAnKCcgJDEgJyknOyIsICJkZHFjYmEiLCAiZGQoYSljYmEiKTsKKworICAgICAgICAvLyBUZXN0IHRvUnVsZS90b1BhdHRlcm4gZm9yIG5vbi1xdWFudGlmaWVkIHNlZ21lbnQuCisgICAgICAgIC8vIENhcmVmdWwgd2l0aCBzcGFjaW5nIGhlcmUuCisgICAgICAgIFN0cmluZyByID0gIihbYS1jXSl7cX0gPiB4ICQxIHg7IjsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiSUQiLCByLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgU3RyaW5nIHJyID0gdC50b1J1bGVzKHRydWUpOworICAgICAgICBpZiAoIXIuZXF1YWxzKHJyKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFwiIiArIHIgKyAiXCIgeCB0b1J1bGVzKCkgPT4gXCIiICsgcnIgKyAiXCIiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPazogXCIiICsgciArICJcIiB4IHRvUnVsZXMoKSA9PiBcIiIgKyByciArICJcIiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCB0b1J1bGUvdG9QYXR0ZXJuIGZvciBxdWFudGlmaWVkIHNlZ21lbnQuCisgICAgICAgIC8vIENhcmVmdWwgd2l0aCBzcGFjaW5nIGhlcmUuCisgICAgICAgIHIgPSAiKFthLWNdKSt7cX0gPiB4ICQxIHg7IjsKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiSUQiLCByLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgcnIgPSB0LnRvUnVsZXModHJ1ZSk7CisgICAgICAgIGlmICghci5lcXVhbHMocnIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogXCIiICsgciArICJcIiB4IHRvUnVsZXMoKSA9PiBcIiIgKyByciArICJcIiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nbG4oIk9rOiBcIiIgKyByICsgIlwiIHggdG9SdWxlcygpID0+IFwiIiArIHJyICsgIlwiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBSYW0ncyB0ZXN0cworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIC8qIHRoaXMgdGVzdCBwZXJmb3JtcyAgdGVzdCBvZiBydWxlcyBpbiBJU08gMTU5MTUgKi8KKyAgICBwdWJsaWMgdm9pZCAgVGVzdERldmFuYWdhcmlMYXRpblJUKCl7CisgICAgICAgIFN0cmluZ1tdICBzb3VyY2UgPSB7CisgICAgICAgICAgICAiYmhcdTAxMDFyYXRhIiwKKyAgICAgICAgICAgICJrcmEiLAorICAgICAgICAgICAgImtcdTFFNjNhIiwKKyAgICAgICAgICAgICJraHJhIiwKKyAgICAgICAgICAgICJncmEiLAorICAgICAgICAgICAgIlx1MUU0NXJhIiwKKyAgICAgICAgICAgICJjcmEiLAorICAgICAgICAgICAgImNocmEiLAorICAgICAgICAgICAgImpcdTAwRjFhIiwKKyAgICAgICAgICAgICJqaHJhIiwKKyAgICAgICAgICAgICJcdTAwRjFyYSIsCisgICAgICAgICAgICAiXHUxRTZEeWEiLAorICAgICAgICAgICAgIlx1MUU2RGhyYSIsCisgICAgICAgICAgICAiXHUxRTBEeWEiLAorICAgICAgICAvLyJyXHUwMzIzeWEiLCAvLyBcdTA5NWMgaXMgbm90IHZhbGlkIGluIERldmFuYWdhcmkKKyAgICAgICAgICAgICJcdTFFMERoeWEiLAorICAgICAgICAgICAgIlx1MUU1QmhyYSIsCisgICAgICAgICAgICAiXHUxRTQ3cmEiLAorICAgICAgICAgICAgInR0YSIsCisgICAgICAgICAgICAidGhyYSIsCisgICAgICAgICAgICAiZGRhIiwKKyAgICAgICAgICAgICJkaHJhIiwKKyAgICAgICAgICAgICJubmEiLAorICAgICAgICAgICAgInByYSIsCisgICAgICAgICAgICAicGhyYSIsCisgICAgICAgICAgICAiYnJhIiwKKyAgICAgICAgICAgICJiaHJhIiwKKyAgICAgICAgICAgICJtcmEiLAorICAgICAgICAgICAgIlx1MUU0OXJhIiwKKyAgICAgICAgLy8ibFx1MDMzMXJhIiwKKyAgICAgICAgICAgICJ5cmEiLAorICAgICAgICAgICAgIlx1MUU4RnJhIiwKKyAgICAgICAgLy8ibC0iLAorICAgICAgICAgICAgInZyYSIsCisgICAgICAgICAgICAiXHUwMTVCcmEiLAorICAgICAgICAgICAgIlx1MUU2M3JhIiwKKyAgICAgICAgICAgICJzcmEiLAorICAgICAgICAgICAgImhtYSIsCisgICAgICAgICAgICAiXHUxRTZEXHUxRTZEYSIsCisgICAgICAgICAgICAiXHUxRTZEXHUxRTZEaGEiLAorICAgICAgICAgICAgIlx1MUU2RGhcdTFFNkRoYSIsCisgICAgICAgICAgICAiXHUxRTBEXHUxRTBEYSIsCisgICAgICAgICAgICAiXHUxRTBEXHUxRTBEaGEiLAorICAgICAgICAgICAgIlx1MUU2RHlhIiwKKyAgICAgICAgICAgICJcdTFFNkRoeWEiLAorICAgICAgICAgICAgIlx1MUUwRHlhIiwKKyAgICAgICAgICAgICJcdTFFMERoeWEiLAorICAgICAgICAgICAgLy8gTm90IHJvdW5kdHJpcHBhYmxlIC0tCisgICAgICAgICAgICAvLyBcdTA5MzlcdTA5NGRcdTA5NGRcdTA5MkUgIC0gaG1hCisgICAgICAgICAgICAvLyBcdTA5MzlcdTA5NGRcdTA5MkUgICAgICAgICAtIGhtYQorICAgICAgICAgICAgLy8gQ2hhcnNUb1VuaWNvZGVTdHJpbmcoImhtYSIpLAorICAgICAgICAgICAgImh5YSIsCisgICAgICAgICAgICAiXHUwMTVCclx1MDMyNSIsCisgICAgICAgICAgICAiXHUwMTVCY2EiLAorICAgICAgICAgICAgIlx1MDExNSIsCisgICAgICAgICAgICAic2FuXHUwMzA0alx1MDEyQmIgc1x1MDExM25hZ3VwdGEiLAorICAgICAgICAgICAgIlx1MDEwMW5hbmQgdmFkZGlyXHUwMTAxanUiLAorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSAgZXhwZWN0ZWQgPSB7CisgICAgICAgICAgICAiXHUwOTJEXHUwOTNFXHUwOTMwXHUwOTI0IiwgICAgLyogYmhhXHUwMzA0cmF0YSAqLworICAgICAgICAgICAgIlx1MDkxNVx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIGtyYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTE1XHUwOTREXHUwOTM3IiwgICAgICAgICAgLyoga3NcdTAzMjNhICAqLworICAgICAgICAgICAgIlx1MDkxNlx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIGtocmEgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTE3XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogZ3JhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MTlcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBuXHUwMzA3cmEgICovCisgICAgICAgICAgICAiXHUwOTFBXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogY3JhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MUJcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBjaHJhICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkxQ1x1MDk0RFx1MDkxRSIsICAgICAgICAgIC8qIGpuXHUwMzAzYSAgKi8KKyAgICAgICAgICAgICJcdTA5MURcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBqaHJhICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkxRVx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIG5cdTAzMDNyYSAgKi8KKyAgICAgICAgICAgICJcdTA5MUZcdTA5NERcdTA5MkYiLCAgICAgICAgICAvKiB0XHUwMzIzeWEgICovCisgICAgICAgICAgICAiXHUwOTIwXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogdFx1MDMyM2hyYSAqLworICAgICAgICAgICAgIlx1MDkyMVx1MDk0RFx1MDkyRiIsICAgICAgICAgIC8qIGRcdTAzMjN5YSAgKi8KKyAgICAgICAgLy8iXHUwOTVDXHUwOTREXHUwOTJGIiwgICAgICAgICAgLyogclx1MDMyM3lhICAqLyAvLyBcdTA5NWMgaXMgbm90IHZhbGlkIGluIERldmFuYWdhcmkKKyAgICAgICAgICAgICJcdTA5MjJcdTA5NERcdTA5MkYiLCAgICAgICAgICAvKiBkXHUwMzIzaHlhICovCisgICAgICAgICAgICAiXHUwOTIyXHUwOTNDXHUwOTREXHUwOTMwIiwgICAgLyogclx1MDMyM2hyYSAqLworICAgICAgICAgICAgIlx1MDkyM1x1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIG5cdTAzMjNyYSAgKi8KKyAgICAgICAgICAgICJcdTA5MjRcdTA5NERcdTA5MjQiLCAgICAgICAgICAvKiB0dGEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyNVx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIHRocmEgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTI2XHUwOTREXHUwOTI2IiwgICAgICAgICAgLyogZGRhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MjdcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBkaHJhICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyOFx1MDk0RFx1MDkyOCIsICAgICAgICAgIC8qIG5uYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTJBXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogcHJhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MkJcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBwaHJhICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyQ1x1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIGJyYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTJEXHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogYmhyYSAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MkVcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBtcmEgICAgICAgICAqLworICAgICAgICAgICAgIlx1MDkyOVx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIG5cdTAzMzFyYSAgKi8KKyAgICAgICAgLy8iXHUwOTM0XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogbFx1MDMzMXJhICAqLworICAgICAgICAgICAgIlx1MDkyRlx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIHlyYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTJGXHUwOTNDXHUwOTREXHUwOTMwIiwgICAgLyogeVx1MDMwN3JhICAqLworICAgICAgICAvLyJsLSIsCisgICAgICAgICAgICAiXHUwOTM1XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogdnJhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MzZcdTA5NERcdTA5MzAiLCAgICAgICAgICAvKiBzXHUwMzAxcmEgICovCisgICAgICAgICAgICAiXHUwOTM3XHUwOTREXHUwOTMwIiwgICAgICAgICAgLyogc1x1MDMyM3JhICAqLworICAgICAgICAgICAgIlx1MDkzOFx1MDk0RFx1MDkzMCIsICAgICAgICAgIC8qIHNyYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTM5XHUwOTRkXHUwOTJFIiwgICAgICAgICAgLyogaG1hICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MUZcdTA5NERcdTA5MUYiLCAgICAgICAgICAvKiB0XHUwMzIzdFx1MDMyM2EgICovCisgICAgICAgICAgICAiXHUwOTFGXHUwOTREXHUwOTIwIiwgICAgICAgICAgLyogdFx1MDMyM3RcdTAzMjNoYSAqLworICAgICAgICAgICAgIlx1MDkyMFx1MDk0RFx1MDkyMCIsICAgICAgICAgIC8qIHRcdTAzMjNodFx1MDMyM2hhKi8KKyAgICAgICAgICAgICJcdTA5MjFcdTA5NERcdTA5MjEiLCAgICAgICAgICAvKiBkXHUwMzIzZFx1MDMyM2EgICovCisgICAgICAgICAgICAiXHUwOTIxXHUwOTREXHUwOTIyIiwgICAgICAgICAgLyogZFx1MDMyM2RcdTAzMjNoYSAqLworICAgICAgICAgICAgIlx1MDkxRlx1MDk0RFx1MDkyRiIsICAgICAgICAgIC8qIHRcdTAzMjN5YSAgKi8KKyAgICAgICAgICAgICJcdTA5MjBcdTA5NERcdTA5MkYiLCAgICAgICAgICAvKiB0XHUwMzIzaHlhICovCisgICAgICAgICAgICAiXHUwOTIxXHUwOTREXHUwOTJGIiwgICAgICAgICAgLyogZFx1MDMyM3lhICAqLworICAgICAgICAgICAgIlx1MDkyMlx1MDk0RFx1MDkyRiIsICAgICAgICAgIC8qIGRcdTAzMjNoeWEgKi8KKyAgICAgICAgLy8gImhtYSIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGhtYSAgICAgICAgICovCisgICAgICAgICAgICAiXHUwOTM5XHUwOTREXHUwOTJGIiwgICAgICAgICAgLyogaHlhICAgICAgICAgKi8KKyAgICAgICAgICAgICJcdTA5MzZcdTA5NDMiLCAgICAgICAgICAgICAgICAvKiBzXHUwMzAxclx1MDMyNWEgICovCisgICAgICAgICAgICAiXHUwOTM2XHUwOTREXHUwOTFBIiwgICAgICAgICAgLyogc1x1MDMwMWNhICAqLworICAgICAgICAgICAgIlx1MDkwZCIsICAgICAgICAgICAgICAgICAgICAgIC8qIGVcdTAzMDYgICAgKi8KKyAgICAgICAgICAgICJcdTA5MzhcdTA5MDJcdTA5MUNcdTA5NDBcdTA5MkNcdTA5NEQgXHUwOTM4XHUwOTQ3XHUwOTI4XHUwOTE3XHUwOTQxXHUwOTJBXHUwOTREXHUwOTI0IiwKKyAgICAgICAgICAgICJcdTA5MDZcdTA5MjhcdTA5MDJcdTA5MjZcdTA5NEQgXHUwOTM1XHUwOTI2XHUwOTREXHUwOTI2XHUwOTNGXHUwOTMwXHUwOTNFXHUwOTFDXHUwOTQxIiwKKyAgICAgICAgfTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciBsYXRpblRvRGV2PVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1EZXZhbmFnYXJpIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCApOworICAgICAgICBUcmFuc2xpdGVyYXRvciBkZXZUb0xhdGluPVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJEZXZhbmFnYXJpLUxhdGluIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisKKyAgICAgICAgZm9yKGludCBpPSAwOyBpPHNvdXJjZS5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBleHBlY3QobGF0aW5Ub0Rldiwoc291cmNlW2ldKSwoZXhwZWN0ZWRbaV0pKTsKKyAgICAgICAgICAgIGV4cGVjdChkZXZUb0xhdGluLChleHBlY3RlZFtpXSksKHNvdXJjZVtpXSkpOworICAgICAgICB9CisKKyAgICB9CisgICAgcHVibGljIHZvaWQgIFRlc3RUZWx1Z3VMYXRpblJUKCl7CisgICAgICAgIFN0cmluZ1tdICBzb3VyY2UgPSB7CisgICAgICAgICAgICAicmFnaHVyXHUwMTAxbSB2aVx1MDE1QnZhblx1MDEwMWRoYSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmFnaHVyYW0gVmlzd2FuYWRoYSAgICAqLworICAgICAgICAgICAgIlx1MDEwMW5hbmQgdmFkZGlyXHUwMTAxanUiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFuYW5kIFZhZGRpcmFqdSAgICAgICAgKi8KKyAgICAgICAgICAgICJyXHUwMTAxalx1MDEyQnYga2FcdTAxNUJhcmFiXHUwMTAxZGEiLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSYWplZXYgS2FzYXJhYmFkYSAgICAgICovCisgICAgICAgICAgICAic2FuXHUwMzA0alx1MDEyQnYga2FcdTAxNUJhcmFiXHUwMTAxZGEiLCAgICAgICAgICAgICAgICAgICAgICAgLyogc2FuamVldiBrYXNhcmFiYWRhICAgICAqLworICAgICAgICAgICAgInNhblx1MDMwNGpcdTAxMkJiIHNlbidndXB0YSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNhbmppYiBzZW5ndXBhdGEgICAgICAgKi8KKyAgICAgICAgICAgICJhbWFyXHUwMTEzbmRyYSBoYW51bVx1MDEwMW51bGEiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBbWFyZW5kcmEgaGFudW1hbnVsYSAgICovCisgICAgICAgICAgICAicmF2aSBrdW1cdTAxMDFyIHZpXHUwMTVCdmFuXHUwMTAxZGhhIiwgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmF2aSBLdW1hciBWaXN3YW5hZGhhICAqLworICAgICAgICAgICAgIlx1MDEwMWRpdHlhIGthbmRyXHUwMTEzZ3VsYSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFkaXR5YSBLYW5kcmVndWxhICAgICAgKi8KKyAgICAgICAgICAgICJcdTAxNUJyXHUwMTJCZGhhciBrYVx1MUU0N1x1MUU2RGFtYVx1MDE1QmVcdTFFNkRcdTFFNkRpIiwgICAgICAvKiBTaHJpZGhhciBLYW50YW1zZXR0eSAgICovCisgICAgICAgICAgICAibVx1MDEwMWRoYXYgZGVcdTAxNUJlXHUxRTZEXHUxRTZEaSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTWFkaGF2IERlc2V0dHkgICAgICAgICAqLworICAgICAgICB9OworCisgICAgICAgIFN0cmluZ1tdICBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgICJcdTBjMzBcdTBjMThcdTBjNDFcdTBjMzBcdTBjM2VcdTBjMmVcdTBjNGQgXHUwYzM1XHUwYzNmXHUwYzM2XHUwYzRkXHUwYzM1XHUwYzI4XHUwYzNlXHUwYzI3IiwKKyAgICAgICAgICAgICJcdTBjMDZcdTBjMjhcdTBjMDJcdTBjMjZcdTBjNGQgXHUwQzM1XHUwQzI2XHUwQzREXHUwQzI2XHUwQzNGXHUwQzMwXHUwQzNFXHUwQzFDXHUwQzQxIiwKKyAgICAgICAgICAgICJcdTBjMzBcdTBjM2VcdTBjMWNcdTBjNDBcdTBjMzVcdTBjNGQgXHUwYzE1XHUwYzM2XHUwYzMwXHUwYzJjXHUwYzNlXHUwYzI2IiwKKyAgICAgICAgICAgICJcdTBjMzhcdTBjMDJcdTBjMWNcdTBjNDBcdTBjMzVcdTBjNGQgXHUwYzE1XHUwYzM2XHUwYzMwXHUwYzJjXHUwYzNlXHUwYzI2IiwKKyAgICAgICAgICAgICJcdTBjMzhcdTBjMDJcdTBjMWNcdTBjNDBcdTBjMmNcdTBjNGQgXHUwYzM4XHUwYzQ2XHUwYzI4XHUwYzRkXHUwYzE3XHUwYzQxXHUwYzJhXHUwYzRkXHUwYzI0IiwKKyAgICAgICAgICAgICJcdTBjMDVcdTBjMmVcdTBjMzBcdTBjNDdcdTBjMDJcdTBjMjZcdTBjNGRcdTBjMzAgXHUwYzM5XHUwYzI4XHUwYzQxXHUwYzJlXHUwYzNlXHUwYzI4XHUwYzQxXHUwYzMyIiwKKyAgICAgICAgICAgICJcdTBjMzBcdTBjMzVcdTBjM2YgXHUwYzE1XHUwYzQxXHUwYzJlXHUwYzNlXHUwYzMwXHUwYzRkIFx1MGMzNVx1MGMzZlx1MGMzNlx1MGM0ZFx1MGMzNVx1MGMyOFx1MGMzZVx1MGMyNyIsCisgICAgICAgICAgICAiXHUwYzA2XHUwYzI2XHUwYzNmXHUwYzI0XHUwYzRkXHUwYzJmIFx1MEMxNVx1MEMwMlx1MEMyNlx1MEM0RFx1MEMzMFx1MEM0N1x1MEMxN1x1MEM0MVx1MGMzMiIsCisgICAgICAgICAgICAiXHUwYzM2XHUwYzRkXHUwYzMwXHUwYzQwXHUwQzI3XHUwQzMwXHUwQzREIFx1MGMxNVx1MGMwMlx1MGMxZlx1MGMyZVx1MGMzNlx1MGM0Nlx1MGMxZlx1MGM0ZFx1MGMxZlx1MGMzZiIsCisgICAgICAgICAgICAiXHUwYzJlXHUwYzNlXHUwYzI3XHUwYzM1XHUwYzRkIFx1MGMyNlx1MGM0Nlx1MGMzNlx1MGM0Nlx1MGMxZlx1MGM0ZFx1MGMxZlx1MGMzZiIsCisgICAgICAgIH07CisKKworICAgICAgICBUcmFuc2xpdGVyYXRvciBsYXRpblRvRGV2PVRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJMYXRpbi1UZWx1Z3UiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgZGV2VG9MYXRpbj1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiVGVsdWd1LUxhdGluIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisKKyAgICAgICAgZm9yKGludCBpPSAwOyBpPHNvdXJjZS5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBleHBlY3QobGF0aW5Ub0Rldiwoc291cmNlW2ldKSwoZXhwZWN0ZWRbaV0pKTsKKyAgICAgICAgICAgIGV4cGVjdChkZXZUb0xhdGluLChleHBlY3RlZFtpXSksKHNvdXJjZVtpXSkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgIFRlc3RTYW5za3JpdExhdGluUlQoKXsKKyAgICAgICAgaW50IE1BWF9MRU4gPTE1OworICAgICAgICBTdHJpbmdbXSAgc291cmNlID0geworICAgICAgICAgICAgInJta1x1MUU2M1x1MDExM3QiLAorICAgICAgICAgICAgIlx1MDE1QnJcdTAxMkJtYWQiLAorICAgICAgICAgICAgImJoYWdhdmFkZ1x1MDEyQnRcdTAxMDEiLAorICAgICAgICAgICAgImFkaHlcdTAxMDF5YSIsCisgICAgICAgICAgICAiYXJqdW5hIiwKKyAgICAgICAgICAgICJ2aVx1MUU2M1x1MDEwMWRhIiwKKyAgICAgICAgICAgICJ5XHUwMTREZ2EiLAorICAgICAgICAgICAgImRoclx1MDMyNXRhclx1MDEwMVx1MUU2M1x1MUU2RHJhIiwKKyAgICAgICAgICAgICJ1dlx1MDEwMWNyXHUwMzI1IiwKKyAgICAgICAgICAgICJkaGFybWFrXHUxRTYzXHUwMTEzdHJcdTAxMTMiLAorICAgICAgICAgICAgImt1cnVrXHUxRTYzXHUwMTEzdHJcdTAxMTMiLAorICAgICAgICAgICAgInNhbWF2XHUwMTEzdFx1MDEwMSIsCisgICAgICAgICAgICAieXV5dXRzYXZhXHUxRTI1IiwKKyAgICAgICAgICAgICJtXHUwMTAxbWFrXHUwMTAxXHUxRTI1IiwKKyAgICAgICAgLy8gInBcdTAxMDFcdTFFNDdcdTFFMERhdlx1MDEwMVx1MDE1QmNhaXZhIiwKKyAgICAgICAgICAgICJraW1ha3VydmF0YSIsCisgICAgICAgICAgICAic2FuXHUwMzA0amF2YSIsCisgICAgICAgIH07CisgICAgICAgIFN0cmluZ1tdICBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgICJcdTA5MzBcdTA5NERcdTA5MkVcdTA5NERcdTA5MTVcdTA5NERcdTA5MzdcdTA5NDdcdTA5MjRcdTA5NEQiLAorICAgICAgICAgICAgIlx1MDkzNlx1MDk0ZFx1MDkzMFx1MDk0MFx1MDkyZVx1MDkyNlx1MDk0ZCIsCisgICAgICAgICAgICAiXHUwOTJkXHUwOTE3XHUwOTM1XHUwOTI2XHUwOTRkXHUwOTE3XHUwOTQwXHUwOTI0XHUwOTNlIiwKKyAgICAgICAgICAgICJcdTA5MDVcdTA5MjdcdTA5NGRcdTA5MmZcdTA5M2VcdTA5MmYiLAorICAgICAgICAgICAgIlx1MDkwNVx1MDkzMFx1MDk0ZFx1MDkxY1x1MDk0MVx1MDkyOCIsCisgICAgICAgICAgICAiXHUwOTM1XHUwOTNmXHUwOTM3XHUwOTNlXHUwOTI2IiwKKyAgICAgICAgICAgICJcdTA5MmZcdTA5NGJcdTA5MTciLAorICAgICAgICAgICAgIlx1MDkyN1x1MDk0M1x1MDkyNFx1MDkzMFx1MDkzZVx1MDkzN1x1MDk0ZFx1MDkxZlx1MDk0ZFx1MDkzMCIsCisgICAgICAgICAgICAiXHUwOTA5XHUwOTM1XHUwOTNFXHUwOTFBXHUwOTQzIiwKKyAgICAgICAgICAgICJcdTA5MjdcdTA5MzBcdTA5NGRcdTA5MmVcdTA5MTVcdTA5NGRcdTA5MzdcdTA5NDdcdTA5MjRcdTA5NGRcdTA5MzBcdTA5NDciLAorICAgICAgICAgICAgIlx1MDkxNVx1MDk0MVx1MDkzMFx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzN1x1MDk0N1x1MDkyNFx1MDk0ZFx1MDkzMFx1MDk0NyIsCisgICAgICAgICAgICAiXHUwOTM4XHUwOTJlXHUwOTM1XHUwOTQ3XHUwOTI0XHUwOTNlIiwKKyAgICAgICAgICAgICJcdTA5MmZcdTA5NDFcdTA5MmZcdTA5NDFcdTA5MjRcdTA5NGRcdTA5MzhcdTA5MzVcdTA5MDMiLAorICAgICAgICAgICAgIlx1MDkyZVx1MDkzZVx1MDkyZVx1MDkxNVx1MDkzZVx1MDkwMyIsCisgICAgICAgIC8vIlx1MDkyYVx1MDkzZVx1MDkyM1x1MDk0ZFx1MDkyMVx1MDkzNVx1MDkzZVx1MDkzNlx1MDk0ZFx1MDkxYVx1MDk0OFx1MDkzNSIsCisgICAgICAgICAgICAiXHUwOTE1XHUwOTNmXHUwOTJlXHUwOTE1XHUwOTQxXHUwOTMwXHUwOTRkXHUwOTM1XHUwOTI0IiwKKyAgICAgICAgICAgICJcdTA5MzhcdTA5MDJcdTA5MWNcdTA5MzUiLAorICAgICAgICB9OworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGxhdGluVG9EZXY9VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLURldmFuYWdhcmkiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgZGV2VG9MYXRpbj1UcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiRGV2YW5hZ2FyaS1MYXRpbiIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBmb3IoaW50IGk9IDA7IGk8TUFYX0xFTjsgaSsrKXsKKyAgICAgICAgICAgIGV4cGVjdChsYXRpblRvRGV2LChzb3VyY2VbaV0pLChleHBlY3RlZFtpXSkpOworICAgICAgICAgICAgZXhwZWN0KGRldlRvTGF0aW4sKGV4cGVjdGVkW2ldKSwoc291cmNlW2ldKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCAgVGVzdENvbXBvdW5kTGF0aW5SVCgpeworICAgICAgICBpbnQgTUFYX0xFTiA9MTU7CisgICAgICAgIFN0cmluZ1tdICBzb3VyY2UgPSB7CisgICAgICAgICAgICAicm1rXHUxRTYzXHUwMTEzdCIsCisgICAgICAgICAgICAiXHUwMTVCclx1MDEyQm1hZCIsCisgICAgICAgICAgICAiYmhhZ2F2YWRnXHUwMTJCdFx1MDEwMSIsCisgICAgICAgICAgICAiYWRoeVx1MDEwMXlhIiwKKyAgICAgICAgICAgICJhcmp1bmEiLAorICAgICAgICAgICAgInZpXHUxRTYzXHUwMTAxZGEiLAorICAgICAgICAgICAgInlcdTAxNERnYSIsCisgICAgICAgICAgICAiZGhyXHUwMzI1dGFyXHUwMTAxXHUxRTYzXHUxRTZEcmEiLAorICAgICAgICAgICAgInV2XHUwMTAxY3JcdTAzMjUiLAorICAgICAgICAgICAgImRoYXJtYWtcdTFFNjNcdTAxMTN0clx1MDExMyIsCisgICAgICAgICAgICAia3VydWtcdTFFNjNcdTAxMTN0clx1MDExMyIsCisgICAgICAgICAgICAic2FtYXZcdTAxMTN0XHUwMTAxIiwKKyAgICAgICAgICAgICJ5dXl1dHNhdmFcdTFFMjUiLAorICAgICAgICAgICAgIm1cdTAxMDFtYWtcdTAxMDFcdTFFMjUiLAorICAgICAgICAvLyAicFx1MDEwMVx1MUU0N1x1MUUwRGF2XHUwMTAxXHUwMTVCY2FpdmEiLAorICAgICAgICAgICAgImtpbWFrdXJ2YXRhIiwKKyAgICAgICAgICAgICJzYW5cdTAzMDRqYXZhIgorICAgICAgICB9OworICAgICAgICBTdHJpbmdbXSAgZXhwZWN0ZWQgPSB7CisgICAgICAgICAgICAiXHUwOTMwXHUwOTREXHUwOTJFXHUwOTREXHUwOTE1XHUwOTREXHUwOTM3XHUwOTQ3XHUwOTI0XHUwOTREIiwKKyAgICAgICAgICAgICJcdTA5MzZcdTA5NGRcdTA5MzBcdTA5NDBcdTA5MmVcdTA5MjZcdTA5NGQiLAorICAgICAgICAgICAgIlx1MDkyZFx1MDkxN1x1MDkzNVx1MDkyNlx1MDk0ZFx1MDkxN1x1MDk0MFx1MDkyNFx1MDkzZSIsCisgICAgICAgICAgICAiXHUwOTA1XHUwOTI3XHUwOTRkXHUwOTJmXHUwOTNlXHUwOTJmIiwKKyAgICAgICAgICAgICJcdTA5MDVcdTA5MzBcdTA5NGRcdTA5MWNcdTA5NDFcdTA5MjgiLAorICAgICAgICAgICAgIlx1MDkzNVx1MDkzZlx1MDkzN1x1MDkzZVx1MDkyNiIsCisgICAgICAgICAgICAiXHUwOTJmXHUwOTRiXHUwOTE3IiwKKyAgICAgICAgICAgICJcdTA5MjdcdTA5NDNcdTA5MjRcdTA5MzBcdTA5M2VcdTA5MzdcdTA5NGRcdTA5MWZcdTA5NGRcdTA5MzAiLAorICAgICAgICAgICAgIlx1MDkwOVx1MDkzNVx1MDkzRVx1MDkxQVx1MDk0MyIsCisgICAgICAgICAgICAiXHUwOTI3XHUwOTMwXHUwOTRkXHUwOTJlXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTQ3XHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQ3IiwKKyAgICAgICAgICAgICJcdTA5MTVcdTA5NDFcdTA5MzBcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzdcdTA5NDdcdTA5MjRcdTA5NGRcdTA5MzBcdTA5NDciLAorICAgICAgICAgICAgIlx1MDkzOFx1MDkyZVx1MDkzNVx1MDk0N1x1MDkyNFx1MDkzZSIsCisgICAgICAgICAgICAiXHUwOTJmXHUwOTQxXHUwOTJmXHUwOTQxXHUwOTI0XHUwOTRkXHUwOTM4XHUwOTM1XHUwOTAzIiwKKyAgICAgICAgICAgICJcdTA5MmVcdTA5M2VcdTA5MmVcdTA5MTVcdTA5M2VcdTA5MDMiLAorICAgICAgICAvLyAgIlx1MDkyYVx1MDkzZVx1MDkyM1x1MDk0ZFx1MDkyMVx1MDkzNVx1MDkzZVx1MDkzNlx1MDk0ZFx1MDkxYVx1MDk0OFx1MDkzNSIsCisgICAgICAgICAgICAiXHUwOTE1XHUwOTNmXHUwOTJlXHUwOTE1XHUwOTQxXHUwOTMwXHUwOTRkXHUwOTM1XHUwOTI0IiwKKyAgICAgICAgICAgICJcdTA5MzhcdTA5MDJcdTA5MWNcdTA5MzUiCisgICAgICAgIH07CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgbGF0aW5Ub0RldlRvTGF0aW49VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLURldmFuYWdhcmk7RGV2YW5hZ2FyaS1MYXRpbiIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBUcmFuc2xpdGVyYXRvciBkZXZUb0xhdGluVG9EZXY9VHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkRldmFuYWdhcmktTGF0aW47TGF0aW4tRGV2YW5hZ2FyaSIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBmb3IoaW50IGk9IDA7IGk8TUFYX0xFTjsgaSsrKXsKKyAgICAgICAgICAgIGV4cGVjdChsYXRpblRvRGV2VG9MYXRpbiwoc291cmNlW2ldKSwoc291cmNlW2ldKSk7CisgICAgICAgICAgICBleHBlY3QoZGV2VG9MYXRpblRvRGV2LChleHBlY3RlZFtpXSksKGV4cGVjdGVkW2ldKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogVGVzdCBHdXJtdWtoaS1EZXZhbmFnYXJpIFRpcHBpIGFuZCBCaW5kaQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RHdXJtdWtoaURldmFuYWdhcmkoKXsKKyAgICAgICAgLy8gdGhlIHJ1bGUgc2F5czoKKyAgICAgICAgLy8gKFx1MDkwMikgKHdoZW4gcHJlY2VkZWQgYnkgdm93ZWwpICAgICAgLS0tPiAgKFx1MEEwMikKKyAgICAgICAgLy8gKFx1MDkwMikgKHdoZW4gcHJlY2VkZWQgYnkgY29uc29uYW50KSAgLS0tPiAgKFx1MEE3MCkKKworICAgICAgICBVbmljb2RlU2V0IHZvd2VsID1uZXcgVW5pY29kZVNldCgiW1x1MDkwNS1cdTA5MEEgXHUwOTBGXHUwOTEwXHUwOTEzXHUwOTE0IFx1MDkzZS1cdTA5NDJcdTA5NDdcdTA5NDhcdTA5NEJcdTA5NENcdTA5NERdIik7CisgICAgICAgIFVuaWNvZGVTZXQgbm9uX3Zvd2VsID1uZXcgVW5pY29kZVNldCgiW1x1MDkxNS1cdTA5MjhcdTA5MkEtXHUwOTMwXSIpOworCisgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciB2SXRlciA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Iodm93ZWwpOworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgbnZJdGVyID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihub25fdm93ZWwpOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0cmFucyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJEZXZhbmFnYXJpLUd1cm11a2hpIik7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzcmMgPSBuZXcgU3RyaW5nQnVmZmVyKCIgXHUwOTAyIik7CisgICAgICAgIFN0cmluZ0J1ZmZlciBleHBlY3QgPSBuZXcgU3RyaW5nQnVmZmVyKCIgXHUwQTAyIik7CisgICAgICAgIHdoaWxlKHZJdGVyLm5leHQoKSl7CisgICAgICAgICAgICBzcmMuc2V0Q2hhckF0KDAsKGNoYXIpIHZJdGVyLmNvZGVwb2ludCk7CisgICAgICAgICAgICBleHBlY3Quc2V0Q2hhckF0KDAsKGNoYXIpICh2SXRlci5jb2RlcG9pbnQrMHgwMTAwKSk7CisgICAgICAgICAgICBleHBlY3QodHJhbnMsc3JjLnRvU3RyaW5nKCksZXhwZWN0LnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgZXhwZWN0LnNldENoYXJBdCgxLCdcdTBBNzAnKTsKKyAgICAgICAgd2hpbGUobnZJdGVyLm5leHQoKSl7CisgICAgICAgICAgICAvL3NyYy5zZXRDaGFyQXQoMCwoY2hhcikgbnZJdGVyLmNvZGVwb2ludCk7CisgICAgICAgICAgICBzcmMuc2V0Q2hhckF0KDAsKGNoYXIpbnZJdGVyLmNvZGVwb2ludCk7CisgICAgICAgICAgICBleHBlY3Quc2V0Q2hhckF0KDAsKGNoYXIpIChudkl0ZXIuY29kZXBvaW50KzB4MDEwMCkpOworICAgICAgICAgICAgZXhwZWN0KHRyYW5zLHNyYy50b1N0cmluZygpLGV4cGVjdC50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBUZXN0IGluc3RhbnRpYXRpb24gZnJvbSBhIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9jYWxlSW5zdGFudGlhdGlvbigpIHsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJ0ZV9JTi1MYXRpbiIpOworICAgICAgICAgICAgLy9leHBlY3QodCwgIlx1MDQzMCIsICJhIik7CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgd2FybmxuKCJDb3VsZCBub3QgbG9hZCBsb2NhbGUgZGF0YSBmb3Igb2J0YWluaW5nIHRoZSBzY3JpcHQgdXNlZCBpbiB0aGUgbG9jYWxlIHRlX0lOLiAiK2V4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJydV9SVS1MYXRpbiIpOworICAgICAgICAgICAgZXhwZWN0KHQsICJcdTA0MzAiLCAiYSIpOworICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIHdhcm5sbigiQ291bGQgbm90IGxvYWQgbG9jYWxlIGRhdGEgZm9yIG9idGFpbmluZyB0aGUgc2NyaXB0IHVzZWQgaW4gdGhlIGxvY2FsZSBydV9SVS4gIitleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiZW4tZWwiKTsKKyAgICAgICAgICAgIGV4cGVjdCh0LCAiYSIsICJcdTAzQjEiKTsKKyAgICAgICAgfWNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIGxvY2FsZSBkYXRhIGZvciBvYnRhaW5pbmcgdGhlIHNjcmlwdCB1c2VkIGluIHRoZSBsb2NhbGUgZWwuICIrIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRpdGxlIGNhc2UgaGFuZGxpbmcgb2YgYWNjZW50IChzaG91bGQgaWdub3JlIGFjY2VudHMpCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFRpdGxlQWNjZW50cygpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJUaXRsZSIpOworICAgICAgICBleHBlY3QodCwgImFcdTAzMDBiIGNhbid0IGFiZSIsICJBXHUwMzAwYiBDYW4ndCBBYmUiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCYXNpYyB0ZXN0IG9mIGEgbG9jYWxlIHJlc291cmNlIGJhc2VkIHJ1bGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdExvY2FsZVJlc291cmNlKCkgeworICAgICAgICBTdHJpbmcgREFUQVtdID0geworICAgICAgICAgICAgLy8gaWQgICAgICAgICAgICAgICAgICAgIGZyb20gICAgICAgICAgICAgdG8KKyAgICAgICAgICAgICJMYXRpbi1HcmVlay9VTkdFR04iLCAgICAiYiIsICAgICAgICAgICAgICJcdTAzYmNcdTAzYzAiLAorICAgICAgICAgICAgIkxhdGluLWVsIiwgICAgICAgICAgICAgICJiIiwgICAgICAgICAgICAgIlx1MDNiY1x1MDNjMCIsCisgICAgICAgICAgICAiTGF0aW4tR3JlZWsiLCAgICAgICAgICAgImIiLCAgICAgICAgICAgICAiXHUwM0IyIiwKKyAgICAgICAgICAgICJHcmVlay1MYXRpbi9VTkdFR04iLCAgICAiXHUwM0IyIiwgICAgICAgICJ2IiwKKyAgICAgICAgICAgICJlbC1MYXRpbiIsICAgICAgICAgICAgICAiXHUwM0IyIiwgICAgICAgICJ2IiwKKyAgICAgICAgICAgICJHcmVlay1MYXRpbiIsICAgICAgICAgICAiXHUwM0IyIiwgICAgICAgICJiIiwKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoREFUQVtpXSk7CisgICAgICAgICAgICBleHBlY3QodCwgREFUQVtpKzFdLCBEQVRBW2krMl0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIHBhcnNlIGVycm9ycyByZWZlcmVuY2UgdGhlIHJpZ2h0IGxpbmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBhcnNlRXJyb3IoKSB7CisgICAgICAgIFN0cmluZyBydWxlID0KKyAgICAgICAgICAgICJhID4gYjtcbiIgKworICAgICAgICAgICAgIiMgbW9yZSBzdHVmZlxuIiArCisgICAgICAgICAgICAiZCA8PCBiOyI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJJRCIsIHJ1bGUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgaWYodCE9bnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IERpZCBub3QgZ2V0IGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3RyaW5nIGVyciA9IGUuZ2V0TWVzc2FnZSgpOworICAgICAgICAgICAgaWYgKGVyci5pbmRleE9mKCJkIDw8IGIiKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgZXJyKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBlcnIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGVycmxuKCJGQUlMOiBubyBzeW50YXggZXJyb3IiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIHN1cmUgc2V0cyBvbiBvdXRwdXQgYXJlIGRpc2FsbG93ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE91dHB1dFNldCgpIHsKKyAgICAgICAgU3RyaW5nIHJ1bGUgPSAiJHNldCA9IFthLWNtLW5dOyBiID4gJHNldDsiOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIklEIiwgcnVsZSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBpZih0IT1udWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGVycmxuKCJGQUlMOiBObyBzeW50YXggZXJyb3IiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSB1c2UgdmFyaWFibGUgcmFuZ2UgcHJhZ21hLCBtYWtpbmcgc3VyZSB0aGF0IHVzZSBvZgorICAgICAqIHZhcmlhYmxlIHJhbmdlIGNoYXJhY3RlcnMgaXMgZGV0ZWN0ZWQgYW5kIGZsYWdnZWQgYXMgYW4gZXJyb3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFZhcmlhYmxlUmFuZ2UoKSB7CisgICAgICAgIFN0cmluZyBydWxlID0gInVzZSB2YXJpYWJsZSByYW5nZSAweDcwIDB4NzI7IGEgPiBBOyBiID4gQjsgcSA+IFE7IjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPQorICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiSUQiLCBydWxlLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGlmKHQhPW51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZXJybG4oIkZBSUw6IE5vIHN5bnRheCBlcnJvciIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgaW52YWxpZCBwb3N0IGNvbnRleHQgZXJyb3IgaGFuZGxpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SW52YWxpZFBvc3RDb250ZXh0KCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJJRCIsICJhfWJ7Yz5kOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgaWYodCE9bnVsbCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IERpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cgPSBlLmdldE1lc3NhZ2UoKTsKKyAgICAgICAgICAgIGlmIChtc2cuaW5kZXhPZigiYX1ie2MiKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgbXNnKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBtc2cpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGVycmxuKCJGQUlMOiBObyBzeW50YXggZXJyb3IiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IElEIGZvcm0gdmFyaWFudHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0SURGb3JtcygpIHsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgICJORkMiLCBudWxsLCAiTkZEIiwKKyAgICAgICAgICAgICJuZmQiLCBudWxsLCAiTkZDIiwgLy8gbWFrZSBzdXJlIGNhc2UgaXMgaWdub3JlZAorICAgICAgICAgICAgIkFueS1ORktEIiwgbnVsbCwgIkFueS1ORktDIiwKKyAgICAgICAgICAgICJOdWxsIiwgbnVsbCwgIk51bGwiLAorICAgICAgICAgICAgIi1uZmtjIiwgIm5ma2MiLCAiTkZLRCIsCisgICAgICAgICAgICAiLW5ma2MvIiwgIm5ma2MiLCAiTkZLRCIsCisgICAgICAgICAgICAiTGF0aW4tR3JlZWsvVU5HRUdOIiwgbnVsbCwgIkdyZWVrLUxhdGluL1VOR0VHTiIsCisgICAgICAgICAgICAiR3JlZWsvVU5HRUdOLUxhdGluIiwgIkdyZWVrLUxhdGluL1VOR0VHTiIsICJMYXRpbi1HcmVlay9VTkdFR04iLAorICAgICAgICAgICAgIkJlbmdhbGktRGV2YW5hZ2FyaS8iLCAiQmVuZ2FsaS1EZXZhbmFnYXJpIiwgIkRldmFuYWdhcmktQmVuZ2FsaSIsCisgICAgICAgICAgICAiU291cmNlLSIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAiU291cmNlL1ZhcmlhbnQtIiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICJTb3VyY2UtL1ZhcmlhbnQiLCBudWxsLCBudWxsLAorICAgICAgICAgICAgIi9WYXJpYW50IiwgbnVsbCwgbnVsbCwKKyAgICAgICAgICAgICIvVmFyaWFudC0iLCBudWxsLCBudWxsLAorICAgICAgICAgICAgIi0vVmFyaWFudCIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAiLS8iLCBudWxsLCBudWxsLAorICAgICAgICAgICAgIi0iLCBudWxsLCBudWxsLAorICAgICAgICAgICAgIi8iLCBudWxsLCBudWxsLAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgU3RyaW5nIElEID0gREFUQVtpXTsKKyAgICAgICAgICAgIFN0cmluZyBleHBJRCA9IERBVEFbaSsxXTsKKyAgICAgICAgICAgIFN0cmluZyBleHBJbnZJRCA9IERBVEFbaSsyXTsKKyAgICAgICAgICAgIGJvb2xlYW4gZXhwVmFsaWQgPSAoZXhwSW52SUQgIT0gbnVsbCk7CisgICAgICAgICAgICBpZiAoZXhwSUQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGV4cElEID0gSUQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPQorICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdSA9IHQuZ2V0SW52ZXJzZSgpOworICAgICAgICAgICAgICAgIGlmICh0LmdldElEKCkuZXF1YWxzKGV4cElEKSAmJgorICAgICAgICAgICAgICAgICAgICB1LmdldElEKCkuZXF1YWxzKGV4cEludklEKSkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBJRCArICIuZ2V0SW52ZXJzZSgpID0+ICIgKyBleHBJbnZJRCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEluc3RhbmNlKCIgKyBJRCArICIpID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICB0LmdldElEKCkgKyAiIHggZ2V0SW52ZXJzZSgpID0+ICIgKyB1LmdldElEKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBleHBlY3RlZCAiICsgZXhwSW52SUQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFleHBWYWxpZCkgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT2s6IGdldEluc3RhbmNlKCIgKyBJRCArICIpID0+ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldEluc3RhbmNlKCIgKyBJRCArICIpID0+ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBjaGVja1J1bGVzKFN0cmluZyBsYWJlbCwgVHJhbnNsaXRlcmF0b3IgdDIsIFN0cmluZyB0ZXN0UnVsZXNGb3J3YXJkKSB7CisgICAgICAgIFN0cmluZyBydWxlczIgPSB0Mi50b1J1bGVzKHRydWUpOworICAgICAgICAvL3J1bGVzMiA9IFRlc3RVdGlsaXR5LnJlcGxhY2VBbGwocnVsZXMyLCBuZXcgVW5pY29kZVNldCgiWycgJ1xuXHJdIiksICIiKTsKKyAgICAgICAgcnVsZXMyID0gVGVzdFV0aWxpdHkucmVwbGFjZShydWxlczIsICIgIiwgIiIpOworICAgICAgICBydWxlczIgPSBUZXN0VXRpbGl0eS5yZXBsYWNlKHJ1bGVzMiwgIlxuIiwgIiIpOworICAgICAgICBydWxlczIgPSBUZXN0VXRpbGl0eS5yZXBsYWNlKHJ1bGVzMiwgIlxyIiwgIiIpOworICAgICAgICB0ZXN0UnVsZXNGb3J3YXJkID0gVGVzdFV0aWxpdHkucmVwbGFjZSh0ZXN0UnVsZXNGb3J3YXJkLCAiICIsICIiKTsKKworICAgICAgICBpZiAoIXJ1bGVzMi5lcXVhbHModGVzdFJ1bGVzRm9yd2FyZCkpIHsKKyAgICAgICAgICAgIGVycmxuKGxhYmVsKTsKKyAgICAgICAgICAgIGxvZ2xuKCJHRU5FUkFURUQgUlVMRVM6ICIgKyBydWxlczIpOworICAgICAgICAgICAgbG9nbG4oIlNIT1VMRCBCRTogICAgICAgIiArIHRlc3RSdWxlc0ZvcndhcmQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFyaydzIHRvUnVsZXMgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9SdWxlc01hcmsoKSB7CisKKyAgICAgICAgU3RyaW5nIHRlc3RSdWxlcyA9CisgICAgICAgICAgICAiOjpbWzpMYXRpbjpdWzpNYXJrOl1dOyIKKyAgICAgICAgICAgICsgIjo6TkZLRCAoTkZDKTsiCisgICAgICAgICAgICArICI6Okxvd2VyIChMb3dlcik7IgorICAgICAgICAgICAgKyAiYSA8PiBcXHUwM0IxOyIgLy8gYWxwaGEKKyAgICAgICAgICAgICsgIjo6TkZLQyAoTkZEKTsiCisgICAgICAgICAgICArICI6OlVwcGVyIChMb3dlcik7IgorICAgICAgICAgICAgKyAiOjpMb3dlciAoKTsiCisgICAgICAgICAgICArICI6OihbWzpHcmVlazpdWzpNYXJrOl1dKTsiCisgICAgICAgICAgICA7CisgICAgICAgIFN0cmluZyB0ZXN0UnVsZXNGb3J3YXJkID0KKyAgICAgICAgICAgICI6OltbOkxhdGluOl1bOk1hcms6XV07IgorICAgICAgICAgICAgKyAiOjpORktEKE5GQyk7IgorICAgICAgICAgICAgKyAiOjpMb3dlcihMb3dlcik7IgorICAgICAgICAgICAgKyAiYSA+IFxcdTAzQjE7IgorICAgICAgICAgICAgKyAiOjpORktDKE5GRCk7IgorICAgICAgICAgICAgKyAiOjpVcHBlciAoTG93ZXIpOyIKKyAgICAgICAgICAgICsgIjo6TG93ZXIgKCk7IgorICAgICAgICAgICAgOworICAgICAgICBTdHJpbmcgdGVzdFJ1bGVzQmFja3dhcmQgPQorICAgICAgICAgICAgIjo6W1s6R3JlZWs6XVs6TWFyazpdXTsiCisgICAgICAgICAgICArICI6Okxvd2VyIChVcHBlcik7IgorICAgICAgICAgICAgKyAiOjpORkQoTkZLQyk7IgorICAgICAgICAgICAgKyAiXFx1MDNCMSA+IGE7IgorICAgICAgICAgICAgKyAiOjpMb3dlcihMb3dlcik7IgorICAgICAgICAgICAgKyAiOjpORkMoTkZLRCk7IgorICAgICAgICAgICAgOworICAgICAgICBTdHJpbmcgc291cmNlID0gIlx1MDBFMSI7IC8vIGEtYWN1dGUKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9ICJcdTAzQUMiOyAvLyBhbHBoYS1hY3V0ZQorCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJzb3VyY2UtdGFyZ2V0IiwgdGVzdFJ1bGVzLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDMgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoInRhcmdldC1zb3VyY2UiLCB0ZXN0UnVsZXMsIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UpOworCisgICAgICAgIGV4cGVjdCh0Miwgc291cmNlLCB0YXJnZXQpOworICAgICAgICBleHBlY3QodDMsIHRhcmdldCwgc291cmNlKTsKKworICAgICAgICBjaGVja1J1bGVzKCJGYWlsZWQgdG9SdWxlcyBGT1JXQVJEIiwgdDIsIHRlc3RSdWxlc0ZvcndhcmQpOworICAgICAgICBjaGVja1J1bGVzKCJGYWlsZWQgdG9SdWxlcyBCQUNLV0FSRCIsIHQzLCB0ZXN0UnVsZXNCYWNrd2FyZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBFc2NhcGUgYW5kIFVuZXNjYXBlIHRyYW5zbGl0ZXJhdG9ycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0RXNjYXBlKCkgeworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkhleC1BbnkiKSwKKyAgICAgICAgICAgICAgICJcXHh7NDB9XFxVMDAwMDAwMzEmI3gzMjsmIzgxOyIsCisgICAgICAgICAgICAgICAiQDEyUSIpOworICAgICAgICBleHBlY3QoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1IZXgvQyIpLAorICAgICAgICAgICAgICAgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIkFcXFUwMDEwQkVFRlxcdUZFRUQiKSwKKyAgICAgICAgICAgICAgICJcXHUwMDQxXFxVMDAxMEJFRUZcXHVGRUVEIik7CisgICAgICAgIGV4cGVjdChUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleC9KYXZhIiksCisgICAgICAgICAgICAgICBDaGFyc1RvVW5pY29kZVN0cmluZygiQVxcVTAwMTBCRUVGXFx1RkVFRCIpLAorICAgICAgICAgICAgICAgIlxcdTAwNDFcXHVEQkVGXFx1REVFRlxcdUZFRUQiKTsKKyAgICAgICAgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktSGV4L1BlcmwiKSwKKyAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJBXFxVMDAxMEJFRUZcXHVGRUVEIiksCisgICAgICAgICAgICAgICAiXFx4ezQxfVxceHsxMEJFRUZ9XFx4e0ZFRUR9Iik7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIGRpc3BsYXkgbmFtZXMgb2YgdmFyaWFudHMgbG9vayByZWFzb25hYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3REaXNwbGF5TmFtZSgpIHsKKyAgICAgICAgU3RyaW5nIERBVEFbXSA9IHsKKyAgICAgICAgICAgIC8vIElELCBmb3J3YXJkIG5hbWUsIHJldmVyc2UgbmFtZQorICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSB0ZXh0IGFzIG5lY2Vzc2FyeSAtLSB0aGUgaW1wb3J0YW50IHRoaW5nIGlzCisgICAgICAgICAgICAvLyBub3QgdGhlIHRleHQgaXRzZWxmLCBidXQgaG93IHZhcmlvdXMgY2FzZXMgYXJlIGhhbmRsZWQuCisKKyAgICAgICAgICAgIC8vIEJhc2ljIHRlc3QKKyAgICAgICAgICAgICJBbnktSGV4IiwgIkFueSB0byBIZXggRXNjYXBlIiwgIkhleCBFc2NhcGUgdG8gQW55IiwKKworICAgICAgICAgICAgLy8gVmFyaWFudHMKKyAgICAgICAgICAgICJBbnktSGV4L1BlcmwiLCAiQW55IHRvIEhleCBFc2NhcGUvUGVybCIsICJIZXggRXNjYXBlIHRvIEFueS9QZXJsIiwKKworICAgICAgICAgICAgLy8gVGFyZ2V0LW9ubHkgSURzCisgICAgICAgICAgICAiTkZDIiwgIkFueSB0byBORkMiLCAiQW55IHRvIE5GRCIsCisgICAgICAgIH07CisKKyAgICAgICAgTG9jYWxlIFVTID0gTG9jYWxlLlVTOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgaSs9MykgeworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZShEQVRBW2ldLCBVUyk7CisgICAgICAgICAgICBpZiAoIW5hbWUuZXF1YWxzKERBVEFbaSsxXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIERBVEFbaV0gKyAiLmdldERpc3BsYXlOYW1lKCkgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgbmFtZSArICIsIGV4cGVjdGVkICIgKyBEQVRBW2krMV0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyBEQVRBW2ldICsgIi5nZXREaXNwbGF5TmFtZSgpID0+ICIgKyBuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShEQVRBW2ldLCBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKTsKKyAgICAgICAgICAgIG5hbWUgPSBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZSh0LmdldElEKCksIFVTKTsKKyAgICAgICAgICAgIGlmICghbmFtZS5lcXVhbHMoREFUQVtpKzJdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgdC5nZXRJRCgpICsgIi5nZXREaXNwbGF5TmFtZSgpID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgIG5hbWUgKyAiLCBleHBlY3RlZCAiICsgREFUQVtpKzJdKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgdC5nZXRJRCgpICsgIi5nZXREaXNwbGF5TmFtZSgpID0+ICIgKyBuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ292ZXIgZ2V0RGlzcGxheU5hbWUoU3RyaW5nKQorICAgICAgICAgICAgVUxvY2FsZSBzYXZlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoVUxvY2FsZS5VUyk7CisgICAgICAgICAgICBTdHJpbmcgbmFtZTIgPSBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZSh0LmdldElEKCkpOworICAgICAgICAgICAgaWYgKCFuYW1lLmVxdWFscyhuYW1lMikpCisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IGdldERpc3BsYXlOYW1lIHdpdGggZGVmYXVsdCBsb2NhbGUgZmFpbGVkIik7CisgICAgICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoc2F2ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGFuY2hvciBtYXNraW5nCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFuY2hvck1hc2tpbmcoKSB7CisgICAgICAgIFN0cmluZyBydWxlID0gIl5hID4gUTsgYSA+IHE7IjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIklEIiwgcnVsZSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBpZih0PT1udWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6ICIgKyBydWxlICsgIiA9PiAiICsgZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHRlc3QgaXMgbm90IGluIHRybnN0c3QuY3BwLiBUaGlzIHRlc3QgaGFzIGJlZW4gbW92ZWQgZnJvbSBjb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1Rlc3RVU2NyaXB0LmphdmEKKyAgICAgKiBkdXJpbmcgSUNVNEogbW9kdWxhcml6YXRpb24gdG8gcmVtb3ZlIGRlcGVuZGVuY3kgb2YgdGVzdHMgb24gVHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgIHB1YmxpYyB2b2lkIFRlc3RTY3JpcHRBbGxDb2RlcG9pbnRzKCl7CisgICAgICAgICAgICBpbnQgY29kZTsKKyAgICAgICAgICAgICBTdHJpbmcgb2xkSWQ9IiI7CisgICAgICAgICAgICAgU3RyaW5nIG9sZEFiYnJJZD0iIjsKKyAgICAgICAgICAgIGZvciggaW50IGkgPTA7IGkgPD0gMHgxMGZmZmY7IGkrKyl7CisgICAgICAgICAgICAgICAgY29kZSA9VVNjcmlwdC5JTlZBTElEX0NPREU7CisgICAgICAgICAgICAgICAgY29kZSA9IFVTY3JpcHQuZ2V0U2NyaXB0KGkpOworICAgICAgICAgICAgICAgIGlmKGNvZGU9PVVTY3JpcHQuSU5WQUxJRF9DT0RFKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVTY3JpcHQuZ2V0U2NyaXB0IGZvciBjb2RlcG9pbnQgMHgiKyBoZXgoaSkrIiBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9VVNjcmlwdC5nZXROYW1lKGNvZGUpOworICAgICAgICAgICAgICAgICBTdHJpbmcgYWJiciA9IFVTY3JpcHQuZ2V0U2hvcnROYW1lKGNvZGUpOworICAgICAgICAgICAgICAgICBTdHJpbmcgbmV3SWQgPSJbOiIraWQrIjpdO05GRCI7CisgICAgICAgICAgICAgICAgIFN0cmluZyBuZXdBYmJySWQgPSJbOiIrYWJicisiOl07TkZEIjsKKyAgICAgICAgICAgICAgICAgaWYoIW9sZElkLmVxdWFscyhuZXdJZCkpeworICAgICAgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShuZXdJZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgaWYodD09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSB0cmFuc2xpdGVyYXRvciBmb3IgIitoZXgoaSkrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHNjcmlwdCBjb2RlOiAiICtpZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSB0cmFuc2xpdGVyYXRvciBmb3IgIitoZXgoaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsiIHNjcmlwdCBjb2RlOiAiICtpZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIEV4Y2VwdGlvbjogIitlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgb2xkSWQgPSBuZXdJZDsKKyAgICAgICAgICAgICAgICAgaWYoIW9sZEFiYnJJZC5lcXVhbHMobmV3QWJicklkKSl7CisgICAgICAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5ld0FiYnJJZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgaWYodD09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGNyZWF0ZSB0cmFuc2xpdGVyYXRvciBmb3IgIitoZXgoaSkrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHNjcmlwdCBjb2RlOiAiICthYmJyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9Y2F0Y2goRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsZWQgdG8gY3JlYXRlIHRyYW5zbGl0ZXJhdG9yIGZvciAiK2hleChpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyIgc2NyaXB0IGNvZGU6ICIgK2FiYnIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBFeGNlcHRpb246ICIrZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIG9sZEFiYnJJZCA9IG5ld0FiYnJJZDsKKyAgICAgICAgICAgIH0KKyAgICB9CisKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIHJlZ2lzdGVyUnVsZXMgPSB7CisgICAgICAgIHsiQW55LURldjEiLCAieCA+IFg7IHkgPiBZOyJ9LAorICAgICAgICB7IkFueS1EZXYyIiwgIlhZID4gWiJ9LAorICAgICAgICB7IkdyZWVrLUxhdGluL0ZBS0UiLAorICAgICAgICAgICAgIlteWzpMOl1bOk06XV0geyBcdTAzYmNcdTAzYzAgPiBiIDsgIisKKyAgICAgICAgICAgICJcdTAzYmNcdTAzYzAgfSBbXls6TDpdWzpNOl1dID4gYiA7ICIrCisgICAgICAgICAgICAiW15bOkw6XVs6TTpdXSB7IFtcdTAzOWNcdTAzYmNdW1x1MDNhMFx1MDNjMF0gPiBCIDsgIisKKyAgICAgICAgICAgICJbXHUwMzljXHUwM2JjXVtcdTAzYTBcdTAzYzBdIH0gW15bOkw6XVs6TTpdXSA+IEIgOyIKKyAgICAgICAgICAgIH0sCisgICAgfTsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVTRVJFVF9ERUUgPSBVVEYxNi52YWx1ZU9mKDB4MTA0MTQpOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVTRVJFVF9kZWUgPSBVVEYxNi52YWx1ZU9mKDB4MTA0M0MpOworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdW10gdGVzdENhc2VzID0geworCisgICAgICAgIC8vIE5PUk1BTElaQVRJT04KKyAgICAgICAgLy8gc2hvdWxkIGFkZCBtb3JlIHRlc3QgY2FzZXMKKyAgICAgICAgeyJORkQiICwgImFcdTAzMDAgXHUwMEUwIFx1MTEwMFx1MTE2MSBcdUZGNzZcdUZGOUVcdTAzRDMifSwKKyAgICAgICAgeyJORkMiICwgImFcdTAzMDAgXHUwMEUwIFx1MTEwMFx1MTE2MSBcdUZGNzZcdUZGOUVcdTAzRDMifSwKKyAgICAgICAgeyJORktEIiwgImFcdTAzMDAgXHUwMEUwIFx1MTEwMFx1MTE2MSBcdUZGNzZcdUZGOUVcdTAzRDMifSwKKyAgICAgICAgeyJORktDIiwgImFcdTAzMDAgXHUwMEUwIFx1MTEwMFx1MTE2MSBcdUZGNzZcdUZGOUVcdTAzRDMifSwKKworICAgICAgICAvLyBtcCAtPiBiIEJVRworICAgICAgICB7IkdyZWVrLUxhdGluL1VOR0VHTiIsICIoXHUwM0JDXHUwM0MwKSIsICIoYikifSwKKyAgICAgICAgeyJHcmVlay1MYXRpbi9GQUtFIiwgIihcdTAzQkNcdTAzQzApIiwgIihiKSJ9LAorCisgICAgICAgIC8vIGNoZWNrIGZvciBkZXZhbmFnYXJpIGJ1ZworICAgICAgICB7Im5mZDtEZXYxO0RldjI7bmZjIiwgInh5IiwgIloifSwKKworICAgICAgICAvLyBmZiwgaSwgZG90bGVzcy1pLCBJLCBkb3R0ZWQtSSwgTEpMamxqIGRlc2VyZXQgZGVlREVFCisgICAgICAgIHsiVGl0bGUiLCAiYWInY0QgZmZpXHUwMTMxSVx1MDEzMCBcdTAxQzdcdTAxQzhcdTAxQzkgIiArIERFU0VSRVRfZGVlICsgREVTRVJFVF9ERUUsCisgICAgICAgICAgICAgICAgICAiQWInY2QgRmZpXHUwMTMxaWlcdTAzMDcgXHUwMUM4XHUwMUM5XHUwMUM5ICIgKyBERVNFUkVUX0RFRSArIERFU0VSRVRfZGVlfSwKKyAgICAgICAgLy9UT0RPOiBlbmFibGUgdGhpcyB0ZXN0IG9uY2UgVGl0bGVjYXNlIHdvcmtzIHJpZ2h0CisgICAgICAgIC8veyJUaXRsZSIsICJcdUZCMDBpXHUwMTMxSVx1MDEzMCBcdTAxQzdcdTAxQzhcdTAxQzkgIiArIERFU0VSRVRfZGVlICsgREVTRVJFVF9ERUUsCisgICAgICAgIC8vICAgICAgICAgICJGZmlcdTAxMzFpaSBcdTAxQzhcdTAxQzlcdTAxQzkgIiArIERFU0VSRVRfREVFICsgREVTRVJFVF9kZWV9LAorCisgICAgICAgIHsiVXBwZXIiLCAiYWInY0QgXHVGQjAwaVx1MDEzMUlcdTAxMzAgXHUwMUM3XHUwMUM4XHUwMUM5ICIgKyBERVNFUkVUX2RlZSArIERFU0VSRVRfREVFLAorICAgICAgICAgICAgICAgICAgIkFCJ0NEIEZGSUlJXHUwMTMwIFx1MDFDN1x1MDFDN1x1MDFDNyAiICsgREVTRVJFVF9ERUUgKyBERVNFUkVUX0RFRX0sCisgICAgICAgIHsiTG93ZXIiLCAiYWInY0QgXHVGQjAwaVx1MDEzMUlcdTAxMzAgXHUwMUM3XHUwMUM4XHUwMUM5ICIgKyBERVNFUkVUX2RlZSArIERFU0VSRVRfREVFLAorICAgICAgICAgICAgICAgICAgImFiJ2NkIFx1RkIwMGlcdTAxMzFpaVx1MDMwNyBcdTAxQzlcdTAxQzlcdTAxQzkgIiArIERFU0VSRVRfZGVlICsgREVTRVJFVF9kZWV9LAorCisgICAgICAgIHsiVXBwZXIiLCAiYWInY0QgXHVGQjAwaVx1MDEzMUlcdTAxMzAgXHUwMUM3XHUwMUM4XHUwMUM5ICIgKyBERVNFUkVUX2RlZSArIERFU0VSRVRfREVFfSwKKyAgICAgICAgeyJMb3dlciIsICJhYidjRCBcdUZCMDBpXHUwMTMxSVx1MDEzMCBcdTAxQzdcdTAxQzhcdTAxQzkgIiArIERFU0VSRVRfZGVlICsgREVTRVJFVF9ERUV9LAorCisgICAgICAgICAvLyBGT1JNUyBPRiBTCisgICAgICAgIHsiR3JlZWstTGF0aW4vVU5HRUdOIiwgIlx1MDNDMyBcdTAzQzNcdTAzQzIgXHUwM0MyXHUwM0MzIiwgInMgc3Mgc1x1MDMzMXNcdTAzMzEifSwKKyAgICAgICAgeyJMYXRpbi1HcmVlay9VTkdFR04iLCAicyBzcyBzXHUwMzMxc1x1MDMzMSIsICJcdTAzQzMgXHUwM0MzXHUwM0MyIFx1MDNDMlx1MDNDMyJ9LAorICAgICAgICB7IkdyZWVrLUxhdGluIiwgIlx1MDNDMyBcdTAzQzNcdTAzQzIgXHUwM0MyXHUwM0MzIiwgInMgc3Mgc1x1MDMzMXNcdTAzMzEifSwKKyAgICAgICAgeyJMYXRpbi1HcmVlayIsICJzIHNzIHNcdTAzMzFzXHUwMzMxIiwgIlx1MDNDMyBcdTAzQzNcdTAzQzIgXHUwM0MyXHUwM0MzIn0sCisKKyAgICAgICAgLy8gVGF0aWFuYSBidWcKKyAgICAgICAgLy8gVXBwZXI6IFRBVFx1MDJCOVx1MDBDMk5BCisgICAgICAgIC8vIExvd2VyOiB0YXRcdTAyQjlcdTAwRTJuYQorICAgICAgICAvLyBUaXRsZTogVGF0XHUwMkI5XHUwMEUybmEKKyAgICAgICAgeyJVcHBlciIsICJ0YXRcdTAyQjlcdTAwRTJuYSIsICJUQVRcdTAyQjlcdTAwQzJOQSJ9LAorICAgICAgICB7Ikxvd2VyIiwgIlRBVFx1MDJCOVx1MDBDMk5BIiwgInRhdFx1MDJCOVx1MDBFMm5hIn0sCisgICAgICAgIHsiVGl0bGUiLCAidGF0XHUwMkI5XHUwMEUybmEiLCAiVGF0XHUwMkI5XHUwMEUybmEifSwKKyAgICB9OworCisgICAgcHVibGljIHZvaWQgVGVzdFNwZWNpYWxDYXNlcygpIHsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlZ2lzdGVyUnVsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMocmVnaXN0ZXJSdWxlc1tpXVswXSwKKyAgICAgICAgICAgICAgICByZWdpc3RlclJ1bGVzW2ldWzFdLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIER1bW15RmFjdG9yeS5hZGQocmVnaXN0ZXJSdWxlc1tpXVswXSwgdCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gdGVzdENhc2VzW2ldWzBdOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKG5hbWUpOworICAgICAgICAgICAgU3RyaW5nIGlkID0gdC5nZXRJRCgpOworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IHRlc3RDYXNlc1tpXVsxXTsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXQgPSBudWxsOworCisgICAgICAgICAgICAvLyBBdXRvbWF0aWMgZ2VuZXJhdGlvbiBvZiB0YXJnZXRzLCB0byBtYWtlIGl0IHNpbXBsZXIgdG8gYWRkIHRlc3QgY2FzZXMgKGFuZCBtb3JlIGZhaWwtc2FmZSkKKworICAgICAgICAgICAgaWYgKHRlc3RDYXNlc1tpXS5sZW5ndGggPiAyKSAgICB0YXJnZXQgPSB0ZXN0Q2FzZXNbaV1bMl07CisgICAgICAgICAgICBlbHNlIGlmIChpZC5lcXVhbHNJZ25vcmVDYXNlKCJORkQiKSkgICAgdGFyZ2V0ID0gY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyLm5vcm1hbGl6ZShzb3VyY2UsIGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgZWxzZSBpZiAoaWQuZXF1YWxzSWdub3JlQ2FzZSgiTkZDIikpICAgIHRhcmdldCA9IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplci5ub3JtYWxpemUoc291cmNlLCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGlkLmVxdWFsc0lnbm9yZUNhc2UoIk5GS0QiKSkgICB0YXJnZXQgPSBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXIubm9ybWFsaXplKHNvdXJjZSwgY29tLmlibS5pY3UudGV4dC5Ob3JtYWxpemVyLk5GS0QpOworICAgICAgICAgICAgZWxzZSBpZiAoaWQuZXF1YWxzSWdub3JlQ2FzZSgiTkZLQyIpKSAgIHRhcmdldCA9IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplci5ub3JtYWxpemUoc291cmNlLCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXIuTkZLQyk7CisgICAgICAgICAgICBlbHNlIGlmIChpZC5lcXVhbHNJZ25vcmVDYXNlKCJMb3dlciIpKSAgdGFyZ2V0ID0gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShMb2NhbGUuVVMsIHNvdXJjZSk7CisgICAgICAgICAgICBlbHNlIGlmIChpZC5lcXVhbHNJZ25vcmVDYXNlKCJVcHBlciIpKSAgdGFyZ2V0ID0gVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShMb2NhbGUuVVMsIHNvdXJjZSk7CisKKyAgICAgICAgICAgIGV4cGVjdCh0LCBzb3VyY2UsIHRhcmdldCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZWdpc3RlclJ1bGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci51bnJlZ2lzdGVyKHJlZ2lzdGVyUnVsZXNbaV1bMF0pOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gc2VlbXMgbGlrZSB0aGVyZSBzaG91bGQgYmUgYW4gZWFzaWVyIHdheSB0byBqdXN0IHJlZ2lzdGVyIGFuIGluc3RhbmNlIG9mIGEgdHJhbnNsaXRlcmF0b3IKKworICAgIHN0YXRpYyBjbGFzcyBEdW1teUZhY3RvcnkgaW1wbGVtZW50cyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5IHsKKyAgICAgICAgc3RhdGljIER1bW15RmFjdG9yeSBzaW5nbGV0b24gPSBuZXcgRHVtbXlGYWN0b3J5KCk7CisgICAgICAgIHN0YXRpYyBIYXNoTWFwIG0gPSBuZXcgSGFzaE1hcCgpOworCisgICAgICAgIC8vIFNpbmNlIFRyYW5zbGl0ZXJhdG9ycyBhcmUgaW1tdXRhYmxlLCB3ZSBkb24ndCBoYXZlIHRvIGNsb25lIG9uIHNldCAmIGdldAorICAgICAgICBzdGF0aWMgdm9pZCBhZGQoU3RyaW5nIElELCBUcmFuc2xpdGVyYXRvciB0KSB7CisgICAgICAgICAgICBtLnB1dChJRCwgdCk7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiUmVnaXN0ZXJpbmc6ICIgKyBJRCArICIsICIgKyB0LnRvUnVsZXModHJ1ZSkpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KElELCBzaW5nbGV0b24pOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgIHJldHVybiAoVHJhbnNsaXRlcmF0b3IpIG0uZ2V0KElEKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTdXJyb2dhdGVDYXNpbmcgKCkgeworICAgICAgICAvLyBjaGVjayB0aGF0IGNhc2luZyBoYW5kbGVzIHN1cnJvZ2F0ZXMKKyAgICAgICAgLy8gdGl0bGVjYXNlIGlzIGN1cnJlbnRseSBkZWZlY3RpdmUKKyAgICAgICAgaW50IGRlZSA9IFVURjE2LmNoYXJBdChERVNFUkVUX2RlZSwwKTsKKyAgICAgICAgaW50IERFRSA9IFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoZGVlKTsKKyAgICAgICAgaWYgKCFVVEYxNi52YWx1ZU9mKERFRSkuZXF1YWxzKERFU0VSRVRfREVFKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxzIHRpdGxlY2FzZSBvZiBzdXJyb2dhdGVzIiArIEludGVnZXIudG9TdHJpbmcoZGVlLDE2KSArICIsICIgKyBJbnRlZ2VyLnRvU3RyaW5nKERFRSwxNikpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKERFU0VSRVRfZGVlICsgREVTRVJFVF9ERUUpLmVxdWFscyhERVNFUkVUX0RFRSArIERFU0VSRVRfREVFKSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxzIHVwcGVyY2FzZSBvZiBzdXJyb2dhdGVzIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoREVTRVJFVF9kZWUgKyBERVNFUkVUX0RFRSkuZXF1YWxzKERFU0VSRVRfZGVlICsgREVTRVJFVF9kZWUpKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbHMgbG93ZXJjYXNlIG9mIHN1cnJvZ2F0ZXMiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIENoZWNrIHRvIHNlZSB0aGF0IGluY3JlbWVudGFsIGdldHMgYXQgbGVhc3QgcGFydCB3YXkgdGhyb3VnaCBhIHJlYXNvbmFibGUgc3RyaW5nLgorCisgICAgcHVibGljIHZvaWQgVGVzdEluY3JlbWVudGFsUHJvZ3Jlc3MoKSB7CisgICAgICAgIFN0cmluZyBsYXRpblRlc3QgPSAiVGhlIFF1aWNrIEJyb3duIEZveC4iOworICAgICAgICBTdHJpbmcgZGV2YVRlc3QgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tRGV2YW5hZ2FyaSIpLnRyYW5zbGl0ZXJhdGUobGF0aW5UZXN0KTsKKyAgICAgICAgU3RyaW5nIGthdGFUZXN0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkxhdGluLUthdGFrYW5hIikudHJhbnNsaXRlcmF0ZShsYXRpblRlc3QpOworICAgICAgICBTdHJpbmdbXVtdIHRlc3RzID0geworICAgICAgICAgICAgeyJBbnkiLCBsYXRpblRlc3R9LAorICAgICAgICAgICAgeyJMYXRpbiIsIGxhdGluVGVzdH0sCisgICAgICAgICAgICB7IkhhbGZ3aWR0aCIsIGxhdGluVGVzdH0sCisgICAgICAgICAgICB7IkRldmFuYWdhcmkiLCBkZXZhVGVzdH0sCisgICAgICAgICAgICB7IkthdGFrYW5hIiwga2F0YVRlc3R9LAorICAgICAgICB9OworCisgICAgICAgIEVudW1lcmF0aW9uIHNvdXJjZXMgPSBUcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVTb3VyY2VzKCk7CisgICAgICAgIHdoaWxlKHNvdXJjZXMuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSAoU3RyaW5nKSBzb3VyY2VzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBTdHJpbmcgdGVzdCA9IGZpbmRNYXRjaChzb3VyY2UsIHRlc3RzKTsKKyAgICAgICAgICAgIGlmICh0ZXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiU2tpcHBpbmcgIiArIHNvdXJjZSArICItWCIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgRW51bWVyYXRpb24gdGFyZ2V0cyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVRhcmdldHMoc291cmNlKTsKKyAgICAgICAgICAgIHdoaWxlKHRhcmdldHMuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gKFN0cmluZykgdGFyZ2V0cy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIEVudW1lcmF0aW9uIHZhcmlhbnRzID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlVmFyaWFudHMoc291cmNlLCB0YXJnZXQpOworICAgICAgICAgICAgICAgIHdoaWxlKHZhcmlhbnRzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50ID0gKFN0cmluZykgdmFyaWFudHMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGlkID0gc291cmNlICsgIi0iICsgdGFyZ2V0ICsgIi8iICsgdmFyaWFudDsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oImlkOiAiICsgaWQpOworCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBmaWx0ZXIgPSBnZXRUcmFuc2xpdFRlc3RGaWx0ZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlciAhPSBudWxsICYmIGlkLmluZGV4T2YoZmlsdGVyKSA8IDApIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpZCk7CisgICAgICAgICAgICAgICAgICAgIENoZWNrSW5jcmVtZW50YWxBdXgodCwgdGVzdCk7CisKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJldiA9IHQudHJhbnNsaXRlcmF0ZSh0ZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgaW52ID0gdC5nZXRJbnZlcnNlKCk7CisgICAgICAgICAgICAgICAgICAgIENoZWNrSW5jcmVtZW50YWxBdXgoaW52LCByZXYpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZmluZE1hdGNoIChTdHJpbmcgc291cmNlLCBTdHJpbmdbXVtdIHBhaXJzKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGFpcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2UuZXF1YWxzSWdub3JlQ2FzZShwYWlyc1tpXVswXSkpIHJldHVybiBwYWlyc1tpXVsxXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBDaGVja0luY3JlbWVudGFsQXV4KFRyYW5zbGl0ZXJhdG9yIHQsIFN0cmluZyBpbnB1dCkgeworCisgICAgICAgIFJlcGxhY2VhYmxlIHRlc3QgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoaW5wdXQpOworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MgPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oMCwgdGVzdC5sZW5ndGgoKSwgMCwgdGVzdC5sZW5ndGgoKSk7CisgICAgICAgIHQudHJhbnNsaXRlcmF0ZSh0ZXN0LCBwb3MpOworICAgICAgICBib29sZWFuIGdvdEVycm9yID0gZmFsc2U7CisKKyAgICAgICAgLy8gd2UgaGF2ZSBhIGZldyBzcGVjaWFsIGNhc2VzLiBBbnktUmVtb3ZlIChwb3Muc3RhcnQgPSAwLCBidXQgYWxzbyA9IGxpbWl0KSBhbmQgVStYWFhYWD9YPworCisgICAgICAgIGlmIChwb3Muc3RhcnQgPT0gMCAmJiBwb3MubGltaXQgIT0gMCAmJiAhdC5nZXRJRCgpLmVxdWFscygiSGV4LUFueS9Vbmljb2RlIikpIHsKKyAgICAgICAgICAgIGVycmxuKCJObyBQcm9ncmVzcywgIiArIHQuZ2V0SUQoKSArICI6ICIgKyBVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dCh0ZXN0LCBwb3MpKTsKKyAgICAgICAgICAgIGdvdEVycm9yID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJQQVNTIFByb2dyZXNzLCAiICsgdC5nZXRJRCgpICsgIjogIiArIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHRlc3QsIHBvcykpOworICAgICAgICB9CisgICAgICAgIHQuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHRlc3QsIHBvcyk7CisgICAgICAgIGlmIChwb3Muc3RhcnQgIT0gcG9zLmxpbWl0KSB7CisgICAgICAgICAgICBlcnJsbigiSW5jb21wbGV0ZSwgIiArIHQuZ2V0SUQoKSArICI6ICAiICsgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQodGVzdCwgcG9zKSk7CisgICAgICAgICAgICBnb3RFcnJvciA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYoIWdvdEVycm9yKXsKKyAgICAgICAgICAgIC8vZXJybG4oIkZBSUw6IERpZCBub3QgZ2V0IGV4cGVjdGVkIGVycm9yIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RnVuY3Rpb24oKSB7CisgICAgICAgIC8vIENhcmVmdWwgd2l0aCBzcGFjaW5nIGFuZCAnOycgaGVyZTogIFBocmFzZSB0aGlzIGV4YWN0bHkKKyAgICAgICAgLy8gYXMgdG9SdWxlcygpIGlzIGdvaW5nIHRvIHJldHVybiBpdC4gIElmIHRvUnVsZXMoKSBjaGFuZ2VzCisgICAgICAgIC8vIHdpdGggcmVnYXJkIHRvIHNwYWNpbmcgb3IgJzsnLCB0aGVuIGFkanVzdCB0aGlzIHN0cmluZy4KKyAgICAgICAgU3RyaW5nIHJ1bGUgPQorICAgICAgICAgICAgIihbOkx1Ol0pID4gJDEgJygnICZMb3dlciggJDEgKSAnPScgJkhleCggJkFueS1Mb3dlciggJDEgKSApICcpJzsiOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlRlc3QiLCBydWxlLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgaWYgKHQgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGNyZWF0ZUZyb21SdWxlcyBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyByID0gdC50b1J1bGVzKHRydWUpOworICAgICAgICBpZiAoci5lcXVhbHMocnVsZSkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogdG9SdWxlcygpID0+ICIgKyByKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB0b1J1bGVzKCkgPT4gIiArIHIgKworICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgIiArIHJ1bGUpOworICAgICAgICB9CisKKyAgICAgICAgZXhwZWN0KHQsICJUaGUgUXVpY2sgQnJvd24gRm94IiwKKyAgICAgICAgICAgICAgICJUKHQ9XFx1MDA3NCloZSBRKHE9XFx1MDA3MSl1aWNrIEIoYj1cXHUwMDYyKXJvd24gRihmPVxcdTAwNjYpb3giKTsKKyAgICAgICAgcnVsZSA9CisgICAgICAgICAgICAiKFteXFwgLVxcdTAwN0ZdKSA+ICZIZXgvVW5pY29kZSggJDEgKSAnICcgJk5hbWUoICQxICkgOyI7CisKKyAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiVGVzdCIsIHJ1bGUsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlRnJvbVJ1bGVzIGZhaWxlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgciA9IHQudG9SdWxlcyh0cnVlKTsKKyAgICAgICAgaWYgKHIuZXF1YWxzKHJ1bGUpKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IHRvUnVsZXMoKSA9PiAiICsgcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogdG9SdWxlcygpID0+ICIgKyByICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBydWxlKTsKKyAgICAgICAgfQorCisgICAgICAgIGV4cGVjdCh0LCAiXHUwMzAxIiwKKyAgICAgICAgICAgICAgICJVKzAzMDEgXFxOe0NPTUJJTklORyBBQ1VURSBBQ0NFTlR9Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEludmFsaWRCYWNrUmVmKCkgeworICAgICAgICBTdHJpbmcgcnVsZSA9ICAiLiA+ICQxOyI7CisgICAgICAgIFN0cmluZyBydWxlMiA9IiguKSA8PiAmaGV4L3VuaWNvZGUoJDEpICZuYW1lKCQxKTsgLiA+ICQxOyBbe31dID5cdTAwMjA7IjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlRlc3QiLCBydWxlLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgIGlmICh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY3JlYXRlRnJvbVJ1bGVzIHNob3VsZCBoYXZlIHJldHVybmVkIE5VTEwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBPazogLiA+ICQxOyA9PiBubyBlcnJvciIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDI9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiVGVzdDIiLCBydWxlMiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBpZiAodDIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVGcm9tUnVsZXMgc2hvdWxkIGhhdmUgcmV0dXJuZWQgTlVMTCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IE9rOiAuID4gJDE7ID0+IG5vIGVycm9yIik7CisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgbG9nbG4oIk9rOiAuID4gJDE7ID0+ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TXVsdGljaGFyU3RyaW5nU2V0KCkgeworICAgICAgICAvLyBCYXNpYyB0ZXN0aW5nCisgICAgICAgIFN0cmluZyBydWxlID0KKyAgICAgICAgICAgICIgICAgICAgW3thYX1dICAgICAgID4geDsiICsKKyAgICAgICAgICAgICIgICAgICAgICBhICAgICAgICAgID4geTsiICsKKyAgICAgICAgICAgICIgICAgICAgW2J7YmN9XSAgICAgID4gejsiICsKKyAgICAgICAgICAgICJbe2dkfV0geyBlICAgICAgICAgID4gcTsiICsKKyAgICAgICAgICAgICIgICAgICAgICBlIH0gW3tmZ31dID4gcjsiIDsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJUZXN0IiwgcnVsZSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVGcm9tUnVsZXMgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBleHBlY3QodCwgImEgYWEgYWIgYmMgZCBnZCBkZSBnZGUgZ2RlZmcgZGRlZmciLAorICAgICAgICAgICAgICAgICAgInkgeCB5eiB6IGQgZ2QgZGUgZ2RxIGdkcWZnIGRkcmZnIik7CisKKyAgICAgICAgLy8gT3ZlcmxhcHBlZCBzdHJpbmcgdGVzdC4gIE1ha2Ugc3VyZSB0aGF0IHdoZW4gbXVsdGlwbGUKKyAgICAgICAgLy8gc3RyaW5ncyBjYW4gbWF0Y2ggdGhhdCB0aGUgbG9uZ2VzdCBvbmUgaXMgbWF0Y2hlZC4KKyAgICAgICAgcnVsZSA9CisgICAgICAgICAgICAiICAgIFthIHthYn0ge2FiY31dICAgID4geDsiICsKKyAgICAgICAgICAgICIgICAgICAgICAgIGIgICAgICAgICAgPiB5OyIgKworICAgICAgICAgICAgIiAgICAgICAgICAgYyAgICAgICAgICA+IHo7IiArCisgICAgICAgICAgICAiIHEgW3Qge3N0fSB7cnN0fV0geyBlID4gcDsiIDsKKworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJUZXN0IiwgcnVsZSwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjcmVhdGVGcm9tUnVsZXMgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBleHBlY3QodCwgImEgYWIgYWJjIHF0ZSBxc3RlIHFyc3RlIiwKKyAgICAgICAgICAgICAgICAgICJ4IHggeCBxdHAgcXN0cCBxcnN0cCIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhhdCB1c2VyLXJlZ2lzdGVyZWQgdHJhbnNsaXRlcmF0b3JzIGNhbiBiZSB1c2VkIHVuZGVyIGZ1bmN0aW9uCisgICAgICogc3ludGF4LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RVc2VyRnVuY3Rpb24oKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ7CisKKyAgICAgICAgLy8gVGhlcmUncyBubyBuZWVkIHRvIHJlZ2lzdGVyIGludmVyc2VzIGlmIHdlIGRvbid0IHVzZSB0aGVtCisgICAgICAgIFRlc3RVc2VyRnVuY3Rpb25GYWN0b3J5LmFkZCgiQW55LWdpZiIsCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoImdpZiIsCisgICAgICAgICAgICAgICAgIidcXCd1KC4uKSguLikgPiAnPGltZyBzcmM9XCJodHRwOi8vd3d3LnVuaWNvZGUub3JnL2dpZnMvMjQvJyAkMSAnL1UnICQxJDIgJy5naWZcIj4nOyIsCisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCkpOworICAgICAgICAvL1Rlc3RVc2VyRnVuY3Rpb25GYWN0b3J5LmFkZCgiZ2lmLUFueSIsIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTnVsbCIpKTsKKworICAgICAgICBUZXN0VXNlckZ1bmN0aW9uRmFjdG9yeS5hZGQoIkFueS1SZW1vdmVDdXJseSIsCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlJlbW92ZUN1cmx5IiwgIltcXHtcXH1dID4gOyBcXFxcTiA+IDsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKSk7CisgICAgICAgIC8vVGVzdFVzZXJGdW5jdGlvbkZhY3RvcnkuYWRkKCJSZW1vdmVDdXJseS1BbnkiLCBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LU51bGwiKSk7CisKKyAgICAgICAgbG9nbG4oIlRyeWluZyAmaGV4Iik7CisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoImhleDIiLCAiKC4pID4gJmhleCgkMSk7IiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGxvZ2xuKCJSZWdpc3RlcmluZyIpOworICAgICAgICBUZXN0VXNlckZ1bmN0aW9uRmFjdG9yeS5hZGQoIkFueS1oZXgyIiwgdCk7CisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LWhleDIiKTsKKyAgICAgICAgZXhwZWN0KHQsICJhYmMiLCAiXFx1MDA2MVxcdTAwNjJcXHUwMDYzIik7CisKKyAgICAgICAgbG9nbG4oIlRyeWluZyAmZ2lmIik7CisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoImdpZjIiLCAiKC4pID4gJkdpZigmSGV4MigkMSkpOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBsb2dsbigiUmVnaXN0ZXJpbmciKTsKKyAgICAgICAgVGVzdFVzZXJGdW5jdGlvbkZhY3RvcnkuYWRkKCJBbnktZ2lmMiIsIHQpOworICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkFueS1naWYyIik7CisgICAgICAgIGV4cGVjdCh0LCAiYWIiLCAiPGltZyBzcmM9XCJodHRwOi8vd3d3LnVuaWNvZGUub3JnL2dpZnMvMjQvMDAvVTAwNjEuZ2lmXCI+IiArCisgICAgICAgICAgICAgICAiPGltZyBzcmM9XCJodHRwOi8vd3d3LnVuaWNvZGUub3JnL2dpZnMvMjQvMDAvVTAwNjIuZ2lmXCI+Iik7CisKKyAgICAgICAgLy8gVGVzdCB0aGF0IGZpbHRlcnMgYXJlIGFsbG93ZWQgYWZ0ZXIgJgorICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJ0ZXN0IiwKKyAgICAgICAgICAgICAgICAiKC4pID4gJkhleCgkMSkgJyAnICZBbnktUmVtb3ZlQ3VybHkoJk5hbWUoJDEpKSAnICc7IiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGV4cGVjdCh0LCAiYWJjIiwgIlxcdTAwNjEgTEFUSU4gU01BTEwgTEVUVEVSIEEgXFx1MDA2MiBMQVRJTiBTTUFMTCBMRVRURVIgQiBcXHUwMDYzIExBVElOIFNNQUxMIExFVFRFUiBDICIpOworCisgICAgICAgIC8vIFVucmVnaXN0ZXIgb3VyIHRlc3Qgc3R1ZmYKKyAgICAgICAgVGVzdFVzZXJGdW5jdGlvbkZhY3RvcnkudW5yZWdpc3RlcigpOworICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBUZXN0VXNlckZ1bmN0aW9uRmFjdG9yeSBpbXBsZW1lbnRzIFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkgeworICAgICAgICBzdGF0aWMgVGVzdFVzZXJGdW5jdGlvbkZhY3Rvcnkgc2luZ2xldG9uID0gbmV3IFRlc3RVc2VyRnVuY3Rpb25GYWN0b3J5KCk7CisgICAgICAgIHN0YXRpYyBIYXNoTWFwIG0gPSBuZXcgSGFzaE1hcCgpOworCisgICAgICAgIHN0YXRpYyB2b2lkIGFkZChTdHJpbmcgSUQsIFRyYW5zbGl0ZXJhdG9yIHQpIHsKKyAgICAgICAgICAgIG0ucHV0KG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoSUQpLCB0KTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShJRCwgc2luZ2xldG9uKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgIHJldHVybiAoVHJhbnNsaXRlcmF0b3IpIG0uZ2V0KG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoSUQpKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyB2b2lkIHVucmVnaXN0ZXIoKSB7CisgICAgICAgICAgICBJdGVyYXRvciBpZHMgPSBtLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaWRzLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBpZCA9IChDYXNlSW5zZW5zaXRpdmVTdHJpbmcpIGlkcy5uZXh0KCk7CisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IudW5yZWdpc3RlcihpZC5nZXRTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgaWRzLnJlbW92ZSgpOyAvLyByZW1vdmVzIHBhaXIgZnJvbSBtCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBBbnktWCB0cmFuc2xpdGVyYXRvcnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFueVgoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGFueUxhdGluID0KKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJBbnktTGF0aW4iLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKworICAgICAgICBleHBlY3QoYW55TGF0aW4sCisgICAgICAgICAgICAgICAiZ3JlZWs6XHUwM0IxXHUwM0IyXHUwM0JBXHUwMzkxXHUwMzkyXHUwMzlBIGhpcmFnYW5hOlx1MzA0Mlx1MzA3Nlx1MzA0RiBjeXJpbGxpYzpcdTA0MzBcdTA0MzFcdTA0NDYiLAorICAgICAgICAgICAgICAgImdyZWVrOmFia0FCSyBoaXJhZ2FuYTphYnVrdSBjeXJpbGxpYzphYmMiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBzb3VyY2UgYW5kIHRhcmdldCBzZXQgQVBJLiAgVGhlc2UgYXJlIG9ubHkgaW1wbGVtZW50ZWQKKyAgICAgKiBmb3IgUkJUIGFuZCBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIGF0IHRoaXMgdGltZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U291cmNlVGFyZ2V0U2V0KCkgeworICAgICAgICAvLyBSdWxlcworICAgICAgICBTdHJpbmcgciA9CisgICAgICAgICAgICAiYSA+IGI7ICIgKworICAgICAgICAgICAgInIgW3h7bHV9XSA+IHE7IjsKKworICAgICAgICAvLyBFeHBlY3RlZCBzb3VyY2UKKyAgICAgICAgVW5pY29kZVNldCBleHBTcmMgPSBuZXcgVW5pY29kZVNldCgiW2FyeHtsdX1dIik7CisKKyAgICAgICAgLy8gRXhwZWN0ZWQgdGFyZ2V0CisgICAgICAgIFVuaWNvZGVTZXQgZXhwVHJnID0gbmV3IFVuaWNvZGVTZXQoIlticV0iKTsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJ0ZXN0IiwgciwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIFVuaWNvZGVTZXQgc3JjID0gdC5nZXRTb3VyY2VTZXQoKTsKKyAgICAgICAgVW5pY29kZVNldCB0cmcgPSB0LmdldFRhcmdldFNldCgpOworCisgICAgICAgIGlmIChzcmMuZXF1YWxzKGV4cFNyYykgJiYgdHJnLmVxdWFscyhleHBUcmcpKSB7CisgICAgICAgICAgICBsb2dsbigiT2s6ICIgKyByICsgIiA9PiBzb3VyY2UgPSAiICsgc3JjLnRvUGF0dGVybih0cnVlKSArCisgICAgICAgICAgICAgICAgICAiLCB0YXJnZXQgPSAiICsgdHJnLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHIgKyAiID0+IHNvdXJjZSA9ICIgKyBzcmMudG9QYXR0ZXJuKHRydWUpICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBleHBTcmMudG9QYXR0ZXJuKHRydWUpICsKKyAgICAgICAgICAgICAgICAgICI7IHRhcmdldCA9ICIgKyB0cmcudG9QYXR0ZXJuKHRydWUpICsKKyAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkICIgKyBleHBUcmcudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgaGFuZGxpbmcgb2YgcnVsZSB3aGl0ZXNwYWNlLCBmb3IgYm90aCBSQlQgYW5kIFVuaWNvZGVTZXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFJ1bGVXaGl0ZXNwYWNlKCkgeworICAgICAgICAvLyBSdWxlcworICAgICAgICBTdHJpbmcgciA9ICJhID4gXHUyMDBFIGI7IjsKKworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJ0ZXN0IiwgciwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisKKyAgICAgICAgZXhwZWN0KHQsICJhIiwgImIiKTsKKworICAgICAgICAvLyBVbmljb2RlU2V0CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoIlthIFx1MjAwRV0iKTsKKworICAgICAgICBpZiAoc2V0LmNvbnRhaW5zKDB4MjAwRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVKzIwMEUgbm90IGJlaW5nIGlnbm9yZWQgYnkgVW5pY29kZVNldCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEFsdGVybmF0ZVN5bnRheCgpIHsKKyAgICAgICAgLy8gVSsyMjA2ID09ICYKKyAgICAgICAgLy8gVSsyMTkwID09IDwKKyAgICAgICAgLy8gVSsyMTkyID09ID4KKyAgICAgICAgLy8gVSsyMTk0ID09IDw+CisgICAgICAgIGV4cGVjdCgiYSBcdTIxOTIgeDsgYiBcdTIxOTAgeTsgYyBcdTIxOTQgeiIsCisgICAgICAgICAgICAgICAiYWJjIiwKKyAgICAgICAgICAgICAgICJ4YnoiKTsKKyAgICAgICAgZXhwZWN0KCIoWzpeQVNDSUk6XSkgXHUyMTkyIFx1MjIwNk5hbWUoJDEpOyIsCisgICAgICAgICAgICAgICAiPD1cdTIxOTA7ID49XHUyMTkyOyA8Pj1cdTIxOTQ7ICY9XHUyMjA2IiwKKyAgICAgICAgICAgICAgICI8PVxcTntMRUZUV0FSRFMgQVJST1d9OyA+PVxcTntSSUdIVFdBUkRTIEFSUk9XfTsgPD49XFxOe0xFRlQgUklHSFQgQVJST1d9OyAmPVxcTntJTkNSRU1FTlR9Iik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFBvc2l0aW9uQVBJKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBhID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKDMsNSw3LDExKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gYiA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbihhKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gYyA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbigpOworICAgICAgICBjLnNldChhKTsKKyAgICAgICAgLy8gQ2FsbCB0aGUgdG9TdHJpbmcoKSBBUEk6CisgICAgICAgIGlmIChhLmVxdWFscyhiKSAmJiBhLmVxdWFscyhjKSkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgYSArICIgPT0gIiArIGIgKyAiID09ICIgKyBjKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgYSArICIgIT0gIiArIGIgKyAiICE9ICIgKyBjKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBOZXcgdGVzdHMgZm9yIHRoZSA6OkJFR0lOLzo6RU5EIHN5bnRheAorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gQkVHSU5fRU5EX1JVTEVTID0gbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgLy8gWzBdCisgICAgICAgICJhYmMgPiB4eTsiCisgICAgICAgICsgImFiYSA+IHo7IiwKKworICAgICAgICAvLyBbMV0KKy8qCisgICAgICAgICI6OkJFR0lOOyIKKyAgICAgICAgKyAiYWJjID4geHk7IgorICAgICAgICArICI6OkVORDsiCisgICAgICAgICsgIjo6QkVHSU47IgorICAgICAgICArICJhYmEgPiB6OyIKKyAgICAgICAgKyAiOjpFTkQ7IiwKKyovCisgICAgICAgICIiLCAvLyB0ZXN0IGNhc2UgY29tbWVudGVkIG91dCBiZWxvdywgdGhpcyBpcyBoZXJlIHRvIGtlZXAgZnJvbSBtZXNzaW5nIHVwIHRoZSBpbmRleGVzCisKKyAgICAgICAgLy8gWzJdCisvKgorICAgICAgICAiYWJjID4geHk7IgorICAgICAgICArICI6OkJFR0lOOyIKKyAgICAgICAgKyAiYWJhID4gejsiCisgICAgICAgICsgIjo6RU5EOyIsCisqLworICAgICAgICAiIiwgLy8gdGVzdCBjYXNlIGNvbW1lbnRlZCBvdXQgYmVsb3csIHRoaXMgaXMgaGVyZSB0byBrZWVwIGZyb20gbWVzc2luZyB1cCB0aGUgaW5kZXhlcworCisgICAgICAgIC8vIFszXQorLyoKKyAgICAgICAgIjo6QkVHSU47IgorICAgICAgICArICJhYmMgPiB4eTsiCisgICAgICAgICsgIjo6RU5EOyIKKyAgICAgICAgKyAiYWJhID4gejsiLAorKi8KKyAgICAgICAgIiIsIC8vIHRlc3QgY2FzZSBjb21tZW50ZWQgb3V0IGJlbG93LCB0aGlzIGlzIGhlcmUgdG8ga2VlcCBmcm9tIG1lc3NpbmcgdXAgdGhlIGluZGV4ZXMKKworICAgICAgICAvLyBbNF0KKyAgICAgICAgImFiYyA+IHh5OyIKKyAgICAgICAgKyAiOjpOdWxsOyIKKyAgICAgICAgKyAiYWJhID4gejsiLAorCisgICAgICAgIC8vIFs1XQorICAgICAgICAiOjpVcHBlcjsiCisgICAgICAgICsgIkFCQyA+IHh5OyIKKyAgICAgICAgKyAiQUIgPiB4OyIKKyAgICAgICAgKyAiQyA+IHo7IgorICAgICAgICArICI6OlVwcGVyOyIKKyAgICAgICAgKyAiWFlaID4gcDsiCisgICAgICAgICsgIlhZID4gcTsiCisgICAgICAgICsgIlogPiByOyIKKyAgICAgICAgKyAiOjpVcHBlcjsiLAorCisgICAgICAgIC8vIFs2XQorICAgICAgICAiJHdzID0gW1s6U2VwYXJhdG9yOl1bXFx1MDAwOS1cXHUwMDBDXSRdOyIKKyAgICAgICAgKyAiJGRlbGltID0gW1xcLSR3c107IgorICAgICAgICArICIkd3MgJGRlbGltKiA+ICcgJzsiCisgICAgICAgICsgIictJyAkZGVsaW0qID4gJy0nOyIsCisKKyAgICAgICAgLy8gWzddCisgICAgICAgICI6Ok51bGw7IgorICAgICAgICArICIkd3MgPSBbWzpTZXBhcmF0b3I6XVtcXHUwMDA5LVxcdTAwMENdJF07IgorICAgICAgICArICIkZGVsaW0gPSBbXFwtJHdzXTsiCisgICAgICAgICsgIiR3cyAkZGVsaW0qID4gJyAnOyIKKyAgICAgICAgKyAiJy0nICRkZWxpbSogPiAnLSc7IiwKKworICAgICAgICAvLyBbOF0KKyAgICAgICAgIiR3cyA9IFtbOlNlcGFyYXRvcjpdW1xcdTAwMDktXFx1MDAwQ10kXTsiCisgICAgICAgICsgIiRkZWxpbSA9IFtcXC0kd3NdOyIKKyAgICAgICAgKyAiJHdzICRkZWxpbSogPiAnICc7IgorICAgICAgICArICInLScgJGRlbGltKiA+ICctJzsiCisgICAgICAgICsgIjo6TnVsbDsiLAorCisgICAgICAgIC8vIFs5XQorICAgICAgICAiJHdzID0gW1s6U2VwYXJhdG9yOl1bXFx1MDAwOS1cXHUwMDBDXSRdOyIKKyAgICAgICAgKyAiJGRlbGltID0gW1xcLSR3c107IgorICAgICAgICArICI6Ok51bGw7IgorICAgICAgICArICIkd3MgJGRlbGltKiA+ICcgJzsiCisgICAgICAgICsgIictJyAkZGVsaW0qID4gJy0nOyIsCisKKyAgICAgICAgLy8gWzEwXQorLyoKKyAgICAgICAgIjo6QkVHSU47IgorICAgICAgICArICIkd3MgPSBbWzpTZXBhcmF0b3I6XVtcXHUwMDA5LVxcdTAwMENdJF07IgorICAgICAgICArICIkZGVsaW0gPSBbXFwtJHdzXTsiCisgICAgICAgICsgIjo6RU5EOyIKKyAgICAgICAgKyAiJHdzICRkZWxpbSogPiAnICc7IgorICAgICAgICArICInLScgJGRlbGltKiA+ICctJzsiLAorKi8KKyAgICAgICAgIiIsIC8vIHRlc3QgY2FzZSBjb21tZW50ZWQgb3V0IGJlbG93LCB0aGlzIGlzIGhlcmUgdG8ga2VlcCBmcm9tIG1lc3NpbmcgdXAgdGhlIGluZGV4ZXMKKworICAgICAgICAvLyBbMTFdCisvKgorICAgICAgICAiJHdzID0gW1s6U2VwYXJhdG9yOl1bXFx1MDAwOS1cXHUwMDBDXSRdOyIKKyAgICAgICAgKyAiJGRlbGltID0gW1xcLSR3c107IgorICAgICAgICArICI6OkJFR0lOOyIKKyAgICAgICAgKyAiJHdzICRkZWxpbSogPiAnICc7IgorICAgICAgICArICInLScgJGRlbGltKiA+ICctJzsiCisgICAgICAgICsgIjo6RU5EOyIsCisqLworICAgICAgICAiIiwgLy8gdGVzdCBjYXNlIGNvbW1lbnRlZCBvdXQgYmVsb3csIHRoaXMgaXMgaGVyZSB0byBrZWVwIGZyb20gbWVzc2luZyB1cCB0aGUgaW5kZXhlcworCisgICAgICAgIC8vIFsxMl0KKy8qCisgICAgICAgICIkd3MgPSBbWzpTZXBhcmF0b3I6XVtcXHUwMDA5LVxcdTAwMENdJF07IgorICAgICAgICArICIkZGVsaW0gPSBbXFwtJHdzXTsiCisgICAgICAgICsgIiRhYiA9IFthYl07IgorICAgICAgICArICI6OkJFR0lOOyIKKyAgICAgICAgKyAiJHdzICRkZWxpbSogPiAnICc7IgorICAgICAgICArICInLScgJGRlbGltKiA+ICctJzsiCisgICAgICAgICsgIjo6RU5EOyIKKyAgICAgICAgKyAiOjpCRUdJTjsiCisgICAgICAgICsgIiRhYiB7ICcgJyB9ICRhYiA+ICctJzsiCisgICAgICAgICsgImMgeyAnICcgPiA7IgorICAgICAgICArICI6OkVORDsiCisgICAgICAgICsgIjo6QkVHSU47IgorICAgICAgICArICInYS1hJyA+IGFcXCV8YTsiCisgICAgICAgICsgIjo6RU5EOyIsCisqLworICAgICAgICAiIiwgLy8gdGVzdCBjYXNlIGNvbW1lbnRlZCBvdXQgYmVsb3csIHRoaXMgaXMgaGVyZSB0byBrZWVwIGZyb20gbWVzc2luZyB1cCB0aGUgaW5kZXhlcworCisgICAgICAgIC8vIFsxM10KKyAgICAgICAgIiR3cyA9IFtbOlNlcGFyYXRvcjpdW1xcdTAwMDktXFx1MDAwQ10kXTsiCisgICAgICAgICsgIiRkZWxpbSA9IFtcXC0kd3NdOyIKKyAgICAgICAgKyAiJGFiID0gW2FiXTsiCisgICAgICAgICsgIjo6TnVsbDsiCisgICAgICAgICsgIiR3cyAkZGVsaW0qID4gJyAnOyIKKyAgICAgICAgKyAiJy0nICRkZWxpbSogPiAnLSc7IgorICAgICAgICArICI6Ok51bGw7IgorICAgICAgICArICIkYWIgeyAnICcgfSAkYWIgPiAnLSc7IgorICAgICAgICArICJjIHsgJyAnID4gOyIKKyAgICAgICAgKyAiOjpOdWxsOyIKKyAgICAgICAgKyAiJ2EtYScgPiBhXFwlfGE7IiwKKworICAgICAgICAvLyBbMTRdCisvKgorICAgICAgICAiOjpbYWJjXTsiCisgICAgICAgICsgIjo6QkVHSU47IgorICAgICAgICArICJhYmMgPiB4eTsiCisgICAgICAgICsgIjo6RU5EOyIKKyAgICAgICAgKyAiOjpCRUdJTjsiCisgICAgICAgICsgImFiYSA+IHl6OyIKKyAgICAgICAgKyAiOjpFTkQ7IgorICAgICAgICArICI6OlVwcGVyOyIsCisqLworICAgICAgICAiIiwgLy8gdGVzdCBjYXNlIGNvbW1lbnRlZCBvdXQgYmVsb3csIHRoaXMgaXMgaGVyZSB0byBrZWVwIGZyb20gbWVzc2luZyB1cCB0aGUgaW5kZXhlcworCisgICAgICAgIC8vIFsxNV0KKyAgICAgICAgIjo6W2FiY107IgorICAgICAgICArICJhYmMgPiB4eTsiCisgICAgICAgICsgIjo6TnVsbDsiCisgICAgICAgICsgImFiYSA+IHl6OyIKKyAgICAgICAgKyAiOjpVcHBlcjsiLAorCisgICAgICAgIC8vIFsxNl0KKy8qCisgICAgICAgICI6OlthYmNdOyIKKyAgICAgICAgKyAiOjpCRUdJTjsiCisgICAgICAgICsgImFiYyA8PiB4eTsiCisgICAgICAgICsgIjo6RU5EOyIKKyAgICAgICAgKyAiOjpCRUdJTjsiCisgICAgICAgICsgImFiYSA8PiB5ejsiCisgICAgICAgICsgIjo6RU5EOyIKKyAgICAgICAgKyAiOjpVcHBlcihMb3dlcik7IgorICAgICAgICArICI6OihbWFlaXSk7IiwKKyovCisgICAgICAgICIiLCAvLyB0ZXN0IGNhc2UgY29tbWVudGVkIG91dCBiZWxvdywgdGhpcyBpcyBoZXJlIHRvIGtlZXAgZnJvbSBtZXNzaW5nIHVwIHRoZSBpbmRleGVzCisKKyAgICAgICAgLy8gWzE3XQorICAgICAgICAiOjpbYWJjXTsiCisgICAgICAgICsgImFiYyA8PiB4eTsiCisgICAgICAgICsgIjo6TnVsbDsiCisgICAgICAgICsgImFiYSA8PiB5ejsiCisgICAgICAgICsgIjo6VXBwZXIoTG93ZXIpOyIKKyAgICAgICAgKyAiOjooW1hZWl0pOyIKKyAgICB9OworCisvKgorKFRoaXMgZW50aXJlIHRlc3QgaXMgY29tbWVudGVkIG91dCBiZWxvdyBhbmQgd2lsbCBuZWVkIHNvbWUgaGVhdnkgcmV2aXNpb24gd2hlbiB3ZSByZS1hZGQKK3RoZSA6OkJFR0lOLzo6RU5EIHN0dWZmKQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEJPR1VTX0JFR0lOX0VORF9SVUxFUyA9IG5ldyBTdHJpbmdbXSB7CisgICAgICAgIC8vIFs3XQorICAgICAgICAiOjpCRUdJTjsiCisgICAgICAgICsgImFiYyA+IHh5OyIKKyAgICAgICAgKyAiOjpCRUdJTjsiCisgICAgICAgICsgImFiYSA+IHo7IgorICAgICAgICArICI6OkVORDsiCisgICAgICAgICsgIjo6RU5EOyIsCisKKyAgICAgICAgLy8gWzhdCisgICAgICAgICJhYmMgPiB4eTsiCisgICAgICAgICsgIiBhYmEgPiB6OyIKKyAgICAgICAgKyAiOjpFTkQ7IiwKKworICAgICAgICAvLyBbOV0KKyAgICAgICAgIjo6QkVHSU47IgorICAgICAgICArICI6OlVwcGVyOyIKKyAgICAgICAgKyAiOjpFTkQ7IgorICAgIH07CisqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gQkVHSU5fRU5EX1RFU1RfQ0FTRVMgPSBuZXcgU3RyaW5nW10geworICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMF0sICJhYmMgYWJhYmMgYWJhIiwgInh5IHpiYyB6IiwKKy8vICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMV0sICJhYmMgYWJhYmMgYWJhIiwgInh5IGFieHkgeiIsCisvLyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzJdLCAiYWJjIGFiYWJjIGFiYSIsICJ4eSBhYnh5IHoiLAorLy8gICAgICAgIEJFR0lOX0VORF9SVUxFU1szXSwgImFiYyBhYmFiYyBhYmEiLCAieHkgYWJ4eSB6IiwKKyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzRdLCAiYWJjIGFiYWJjIGFiYSIsICJ4eSBhYnh5IHoiLAorICAgICAgICBCRUdJTl9FTkRfUlVMRVNbNV0sICJhYmNjYWJhYWNhYmFiY2JjIiwgIlBYQUFSWFFCUiIsCisKKyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzZdLCAiZSAgIGUgLSBlLS0tZS0gIGUiLCAiZSBlIGUtZS1lIiwKKyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzddLCAiZSAgIGUgLSBlLS0tZS0gIGUiLCAiZSBlIGUtZS1lIiwKKyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzhdLCAiZSAgIGUgLSBlLS0tZS0gIGUiLCAiZSBlIGUtZS1lIiwKKyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzldLCAiZSAgIGUgLSBlLS0tZS0gIGUiLCAiZSBlIGUtZS1lIiwKKy8vICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMTBdLCAiZSAgIGUgLSBlLS0tZS0gIGUiLCAiZSBlIGUtZS1lIiwKKy8vICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMTFdLCAiZSAgIGUgLSBlLS0tZS0gIGUiLCAiZSBlIGUtZS1lIiwKKy8vICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMTJdLCAiZSAgIGUgLSBlLS0tZS0gIGUiLCAiZSBlIGUtZS1lIiwKKy8vICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMTJdLCAiYSAgICBhICAgIGEgICAgYSIsICJhJWElYSVhIiwKKy8vICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMTJdLCAiYSBhLWIgYyBiIGEiLCAiYSVhLWIgY2ItYSIsCisgICAgICAgIEJFR0lOX0VORF9SVUxFU1sxM10sICJlICAgZSAtIGUtLS1lLSAgZSIsICJlIGUgZS1lLWUiLAorICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMTNdLCAiYSAgICBhICAgIGEgICAgYSIsICJhJWElYSVhIiwKKyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzEzXSwgImEgYS1iIGMgYiBhIiwgImElYS1iIGNiLWEiLAorCisvLyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzE0XSwgImFiYyB4eSBhYmFiYyB4eXogYWJhIiwgIlhZIHh5IEFCWFkgeHl6IFlaIiwKKyAgICAgICAgQkVHSU5fRU5EX1JVTEVTWzE1XSwgImFiYyB4eSBhYmFiYyB4eXogYWJhIiwgIlhZIHh5IEFCWFkgeHl6IFlaIiwKKy8vICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMTZdLCAiYWJjIHh5IGFiYWJjIHh5eiBhYmEiLCAiWFkgeHkgQUJYWSB4eXogWVoiLAorICAgICAgICBCRUdJTl9FTkRfUlVMRVNbMTddLCAiYWJjIHh5IGFiYWJjIHh5eiBhYmEiLCAiWFkgeHkgQUJYWSB4eXogWVoiCisgICAgfTsKKworICAgIHB1YmxpYyB2b2lkIFRlc3RCZWdpbkVuZCgpIHsKKyAgICAgICAgLy8gcnVuIHRocm91Z2ggdGhlIGxpc3Qgb2YgdGVzdCBjYXNlcyBhYm92ZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEJFR0lOX0VORF9URVNUX0NBU0VTLmxlbmd0aDsgaSArPSAzKSB7CisgICAgICAgICAgICBleHBlY3QoQkVHSU5fRU5EX1RFU1RfQ0FTRVNbaV0sIEJFR0lOX0VORF9URVNUX0NBU0VTW2kgKyAxXSwgQkVHSU5fRU5EX1RFU1RfQ0FTRVNbaSArIDJdKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGluc3RhbnRpYXRlIHRoZSBvbmUgcmV2ZXJzaWJsZSBydWxlIHNldCBpbiB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24gYW5kIG1ha2Ugc3VyZSBpdCBkb2VzIHRoZSByaWdodCB0aGluZworICAgICAgICBUcmFuc2xpdGVyYXRvciByZXZlcnNlZCAgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlJldmVyc2VkIiwgQkVHSU5fRU5EX1JVTEVTWzE3XSwKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKTsKKyAgICAgICAgZXhwZWN0KHJldmVyc2VkLCAieHkgWFkgWFlaIHl6IFlaIiwgInh5IGFiYyB4YWJhIHl6IGFiYSIpOworCisgICAgICAgIC8vIGZpbmFsbHksIHJ1biB0aHJvdWdoIHRoZSBsaXN0IG9mIHN5bnRhY3RpY2FsbHktaWxsLWZvcm1lZCBydWxlIHNldHMgYWJvdmUgYW5kIG1ha2Ugc3VyZQorICAgICAgICAvLyB0aGF0IGFsbCBvZiB0aGVtIGNhdXNlIGVycm9ycworLyoKKyhjb21tZW50ZWQgb3V0IHVudGlsIHdlIGhhdmUgdGhlIHJlYWwgOjpCRUdJTi86OkVORCBzdHVmZiBpbiBwbGFjZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEJPR1VTX0JFR0lOX0VORF9SVUxFUy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJmb28iLCBCT0dVU19CRUdJTl9FTkRfUlVMRVNbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiU2hvdWxkIGhhdmUgZ290dGVuIHN5bnRheCBlcnJvciBmcm9tICIgKyBCT0dVU19CRUdJTl9FTkRfUlVMRVNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBzdXBwb3NlZCB0byBoYXBwZW47IGRvIG5vdGhpbmcgaGVyZQorICAgICAgICAgICAgfQorICAgICAgICB9CisqLworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCZWdpbkVuZFRvUnVsZXMoKSB7CisgICAgICAgIC8vIHJ1biB0aHJvdWdoIHRoZSBzYW1lIGxpc3Qgb2YgdGVzdCBjYXNlcyB3ZSB1c2VkIGFib3ZlLCBidXQgdGhpcyB0aW1lLCBpbnN0ZWFkIG9mIGp1c3QKKyAgICAgICAgLy8gaW5zdGFudGlhdGluZyBhIFRyYW5zbGl0ZXJhdG9yIGZyb20gdGhlIHJ1bGVzIGFuZCBydW5uaW5nIHRoZSB0ZXN0IGFnYWluc3QgaXQsIHdlIGluc3RhbnRpYXRlCisgICAgICAgIC8vIGEgVHJhbnNsaXRlcmF0b3IgZnJvbSB0aGUgcnVsZXMsIGRvIHRvUnVsZXMoKSBvbiBpdCwgaW5zdGFudGlhdGUgYSBUcmFuc2xpdGVyYXRvciBmcm9tCisgICAgICAgIC8vIHRoZSByZXN1bHRpbmcgc2V0IG9mIHJ1bGVzLCBhbmQgbWFrZSBzdXJlIHRoYXQgdGhlIGdlbmVyYXRlZCBydWxlIHNldCBpcyBzZW1hbnRpY2FsbHkgZXF1aXZhbGVudAorICAgICAgICAvLyB0byAoaS5lLiwgZG9lcyB0aGUgc2FtZSB0aGluZyBhcykgdGhlIG9yaWdpbmFsIHJ1bGUgc2V0CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQkVHSU5fRU5EX1RFU1RfQ0FTRVMubGVuZ3RoOyBpICs9IDMpIHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIi0tIiwgQkVHSU5fRU5EX1RFU1RfQ0FTRVNbaV0sCisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICAgICAgU3RyaW5nIHJ1bGVzID0gdC50b1J1bGVzKGZhbHNlKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKCJUZXN0IGNhc2UgIyIgKyAoaSAvIDMpLCBydWxlcywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgICAgICBleHBlY3QodDIsIEJFR0lOX0VORF9URVNUX0NBU0VTW2kgKyAxXSwgQkVHSU5fRU5EX1RFU1RfQ0FTRVNbaSArIDJdKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGRvIHRoZSBzYW1lIHRoaW5nIGZvciB0aGUgcmV2ZXJzaWJsZSB0ZXN0IGNhc2UKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgcmV2ZXJzZWQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIlJldmVyc2VkIiwgQkVHSU5fRU5EX1JVTEVTWzE3XSwKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKTsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gcmV2ZXJzZWQudG9SdWxlcyhmYWxzZSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHJldmVyc2VkMiA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiUmV2ZXJzZWQiLCBydWxlcywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGV4cGVjdChyZXZlcnNlZDIsICJ4eSBYWSBYWVogeXogWVoiLCAieHkgYWJjIHhhYmEgeXogYWJhIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFJlZ2lzdGVyQWxpYXMoKSB7CisgICAgICAgIFN0cmluZyBsb25nSUQgPSAiTG93ZXI7W2FlaW91XVVwcGVyIjsKKyAgICAgICAgU3RyaW5nIHNob3J0SUQgPSAiQW55LUNhcFZvd2VscyI7CisgICAgICAgIFN0cmluZyByZWFsbHlTaG9ydElEID0gIkNhcFZvd2VscyI7CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJBbGlhcyhzaG9ydElELCBsb25nSUQpOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQxID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UobG9uZ0lEKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDIgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShyZWFsbHlTaG9ydElEKTsKKworICAgICAgICBpZiAoIXQxLmdldElEKCkuZXF1YWxzKGxvbmdJRCkpCisgICAgICAgICAgICBlcnJsbigiVHJhbnNsaXRlcmF0b3IgaW5zdGFudGlhdGVkIHdpdGggbG9uZyBJRCBkb2Vzbid0IGhhdmUgbG9uZyBJRCIpOworICAgICAgICBpZiAoIXQyLmdldElEKCkuZXF1YWxzKHJlYWxseVNob3J0SUQpKQorICAgICAgICAgICAgZXJybG4oIlRyYW5zbGl0ZXJhdG9yIGluc3RhbnRpYXRlZCB3aXRoIHNob3J0IElEIGRvZXNuJ3QgaGF2ZSBzaG9ydCBJRCIpOworCisgICAgICAgIGlmICghdDEudG9SdWxlcyh0cnVlKS5lcXVhbHModDIudG9SdWxlcyh0cnVlKSkpCisgICAgICAgICAgICBlcnJsbigiQWxpYXMgdHJhbnNsaXRlcmF0b3JzIGFyZW4ndCB0aGUgc2FtZSIpOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnVucmVnaXN0ZXIoc2hvcnRJRCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHQxID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc2hvcnRJRCk7CisgICAgICAgICAgICBlcnJsbigiSW5zdGFudGlhdGlvbiB3aXRoIHNob3J0IElEIHN1Y2NlZWRlZCBhZnRlciBzaG9ydCBJRCB3YXMgdW5yZWdpc3RlcmVkIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKworICAgICAgICAvLyB0cnkgdGhlIHNhbWUgdGhpbmcgYWdhaW4sIGJ1dCB0aGlzIHRpbWUgd2l0aCBzb21ldGhpbmcgb3RoZXIgdGhhbgorICAgICAgICAvLyBhbiBpbnN0YW5jZSBvZiBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yCisgICAgICAgIFN0cmluZyByZWFsSUQgPSAiTGF0aW4tR3JlZWsiOworICAgICAgICBTdHJpbmcgZmFrZUlEID0gIkxhdGluLWRsZ2tqZGZsa2pkbCI7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyQWxpYXMoZmFrZUlELCByZWFsSUQpOworCisgICAgICAgIHQxID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UocmVhbElEKTsKKyAgICAgICAgdDIgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShmYWtlSUQpOworCisgICAgICAgIGlmICghdDEudG9SdWxlcyh0cnVlKS5lcXVhbHModDIudG9SdWxlcyh0cnVlKSkpCisgICAgICAgICAgICBlcnJsbigiQWxpYXMgdHJhbnNsaXRlcmF0b3JzIGFyZW4ndCB0aGUgc2FtZSIpOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnVucmVnaXN0ZXIoZmFrZUlEKTsKKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBUaGVzZSB0ZXN0cyBhcmUgbm90IG1pcnJvcmVkICh5ZXQpIGluIGljdTRjIGF0CisgICAgLy8gc291cmNlL3Rlc3QvaW50bHRlc3QvdHJhbnN0c3QuY3BwCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBJbXByb3ZlIGNvZGUgY292ZXJhZ2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgICAgICAvLyBOdWxsVHJhbnNsaXRlcmF0b3IKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJOdWxsIiwgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisgICAgICAgIGV4cGVjdCh0LCAiYSIsICJhIik7CisKKyAgICAgICAgLy8gU291cmNlLCB0YXJnZXQgc2V0CisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiTGF0aW4tR3JlZWsiLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgdC5zZXRGaWx0ZXIobmV3IFVuaWNvZGVTZXQoIltBLVpdIikpOworICAgICAgICBsb2dsbigic291cmNlID0gIiArIHQuZ2V0U291cmNlU2V0KCkpOworICAgICAgICBsb2dsbigidGFyZ2V0ID0gIiArIHQuZ2V0VGFyZ2V0U2V0KCkpOworCisgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoIngiLCAiKC4pID4gJkFueS1IZXgoJDEpOyIsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICBsb2dsbigic291cmNlID0gIiArIHQuZ2V0U291cmNlU2V0KCkpOworICAgICAgICBsb2dsbigidGFyZ2V0ID0gIiArIHQuZ2V0VGFyZ2V0U2V0KCkpOworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFN1cHBvcnQgbWV0aG9kcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHZvaWQgZXhwZWN0KFN0cmluZyBydWxlcywKKyAgICAgICAgICAgICAgICBTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZFJlc3VsdCwKKyAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygiPElEPiIsIHJ1bGVzLCBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICAgICAgZXhwZWN0KHQsIHNvdXJjZSwgZXhwZWN0ZWRSZXN1bHQsIHBvcyk7CisgICAgfQorCisgICAgdm9pZCBleHBlY3QoU3RyaW5nIHJ1bGVzLCBTdHJpbmcgc291cmNlLCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgZXhwZWN0KHJ1bGVzLCBzb3VyY2UsIGV4cGVjdGVkUmVzdWx0LCBudWxsKTsKKyAgICB9CisKKyAgICB2b2lkIGV4cGVjdChUcmFuc2xpdGVyYXRvciB0LCBTdHJpbmcgc291cmNlLCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQsCisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgcmV2ZXJzZVRyYW5zbGl0ZXJhdG9yKSB7CisgICAgICAgIGV4cGVjdCh0LCBzb3VyY2UsIGV4cGVjdGVkUmVzdWx0KTsKKyAgICAgICAgaWYgKHJldmVyc2VUcmFuc2xpdGVyYXRvciAhPSBudWxsKSB7CisgICAgICAgICAgICBleHBlY3QocmV2ZXJzZVRyYW5zbGl0ZXJhdG9yLCBleHBlY3RlZFJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgZXhwZWN0KFRyYW5zbGl0ZXJhdG9yIHQsIFN0cmluZyBzb3VyY2UsIFN0cmluZyBleHBlY3RlZFJlc3VsdCkgeworICAgICAgICBleHBlY3QodCwgc291cmNlLCBleHBlY3RlZFJlc3VsdCwgKFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKSBudWxsKTsKKyAgICB9CisKKyAgICB2b2lkIGV4cGVjdChUcmFuc2xpdGVyYXRvciB0LCBTdHJpbmcgc291cmNlLCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQsCisgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zKSB7CisgICAgICAgIGlmIChwb3MgPT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IHQudHJhbnNsaXRlcmF0ZShzb3VyY2UpOworICAgICAgICAgICAgaWYgKCFleHBlY3RBdXgodC5nZXRJRCgpICsgIjpTdHJpbmciLCBzb3VyY2UsIHJlc3VsdCwgZXhwZWN0ZWRSZXN1bHQpKSByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBpbmRleCA9IG51bGw7CisgICAgICAgIGlmIChwb3MgPT0gbnVsbCkgeworICAgICAgICAgICAgaW5kZXggPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24oMCwgc291cmNlLmxlbmd0aCgpLCAwLCBzb3VyY2UubGVuZ3RoKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW5kZXggPSBuZXcgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24ocG9zLmNvbnRleHRTdGFydCwgcG9zLmNvbnRleHRMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5zdGFydCwgcG9zLmxpbWl0KTsKKyAgICAgICAgfQorCisgICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHJzb3VyY2UgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoc291cmNlKTsKKworICAgICAgICB0LmZpbmlzaFRyYW5zbGl0ZXJhdGlvbihyc291cmNlLCBpbmRleCk7CisgICAgICAgIC8vIERvIGl0IGFsbCBhdCBvbmNlIC0tIGJlbG93IHdlIGRvIGl0IGluY3JlbWVudGFsbHkKKworICAgICAgICBpZiAoaW5kZXguc3RhcnQgIT0gaW5kZXgubGltaXQpIHsKKyAgICAgICAgICAgIGV4cGVjdEF1eCh0LmdldElEKCkgKyAiOlVORklOSVNIRUQiLCBzb3VyY2UsCisgICAgICAgICAgICAgICAgInN0YXJ0OiAiICsgaW5kZXguc3RhcnQgKyAiLCBsaW1pdDogIiArIGluZGV4LmxpbWl0LCBmYWxzZSwgZXhwZWN0ZWRSZXN1bHQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFN0cmluZyByZXN1bHQgPSByc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgIGlmICghZXhwZWN0QXV4KHQuZ2V0SUQoKSArICI6UmVwbGFjZWFibGUiLCBzb3VyY2UsIHJlc3VsdCwgZXhwZWN0ZWRSZXN1bHQpKSByZXR1cm47CisKKworICAgICAgICBpZiAocG9zID09IG51bGwpIHsKKyAgICAgICAgICAgIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbmRleCA9IG5ldyBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbihwb3MuY29udGV4dFN0YXJ0LCBwb3MuY29udGV4dExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLnN0YXJ0LCBwb3MubGltaXQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCBpbmNyZW1lbnRhbCB0cmFuc2xpdGVyYXRpb24gLS0gdGhpcyByZXN1bHQKKyAgICAgICAgLy8gbXVzdCBiZSB0aGUgc2FtZSBhZnRlciB3ZSBmaW5hbGl6ZSAoc2VlIGJlbG93KS4KKyAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHYuYWRkKHNvdXJjZSk7CisgICAgICAgIHJzb3VyY2UucmVwbGFjZSgwLCByc291cmNlLmxlbmd0aCgpLCAiIik7CisgICAgICAgIGlmIChwb3MgIT0gbnVsbCkgeworICAgICAgICAgICAgcnNvdXJjZS5yZXBsYWNlKDAsIDAsIHNvdXJjZSk7CisgICAgICAgICAgICB2LmFkZChVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dChyc291cmNlLCBpbmRleCkpOworICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHJzb3VyY2UsIGluZGV4KTsKKyAgICAgICAgICAgIHYuYWRkKFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHJzb3VyY2UsIGluZGV4KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8c291cmNlLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAvL3YuYWRkKGkgPT0gMCA/ICIiIDogIiArICIgKyBzb3VyY2UuY2hhckF0KGkpICsgIiIpOworICAgICAgICAgICAgICAgIC8vbG9nLmFwcGVuZChzb3VyY2UuY2hhckF0KGkpKS5hcHBlbmQoIiAtPiAiKSk7CisgICAgICAgICAgICAgICAgdC50cmFuc2xpdGVyYXRlKHJzb3VyY2UsIGluZGV4LCBzb3VyY2UuY2hhckF0KGkpKTsKKyAgICAgICAgICAgICAgICAvL3YuYWRkKFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHJzb3VyY2UsIGluZGV4KSArIHNvdXJjZS5zdWJzdHJpbmcoaSsxKSk7CisgICAgICAgICAgICAgICAgdi5hZGQoVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQocnNvdXJjZSwgaW5kZXgpICsKKyAgICAgICAgICAgICAgICAgICAgICAoKGk8c291cmNlLmxlbmd0aCgpLTEpPygiICsgJyIgKyBzb3VyY2UuY2hhckF0KGkrMSkgKyAiJyAtPiIpOiIgPT4iKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBBcyBhIGZpbmFsIHN0ZXAgaW4ga2V5Ym9hcmQgdHJhbnNsaXRlcmF0aW9uLCB3ZSBtdXN0IGNhbGwKKyAgICAgICAgLy8gdHJhbnNsaXRlcmF0ZSB0byBmaW5pc2ggb2ZmIGFueSBwZW5kaW5nIHBhcnRpYWwgbWF0Y2hlcyB0aGF0CisgICAgICAgIC8vIHdlcmUgd2FpdGluZyBmb3IgbW9yZSBpbnB1dC4KKyAgICAgICAgdC5maW5pc2hUcmFuc2xpdGVyYXRpb24ocnNvdXJjZSwgaW5kZXgpOworICAgICAgICByZXN1bHQgPSByc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgIC8vbG9nLmFwcGVuZCgiID0+ICIpLmFwcGVuZChyc291cmNlLnRvU3RyaW5nKCkpOworICAgICAgICB2LmFkZChyZXN1bHQpOworCisgICAgICAgIFN0cmluZ1tdIHJlc3VsdHMgPSBuZXcgU3RyaW5nW3Yuc2l6ZSgpXTsKKyAgICAgICAgdi5jb3B5SW50byhyZXN1bHRzKTsKKyAgICAgICAgZXhwZWN0QXV4KHQuZ2V0SUQoKSArICI6SW5jcmVtZW50YWwiLCByZXN1bHRzLAorICAgICAgICAgICAgICAgICAgcmVzdWx0LmVxdWFscyhleHBlY3RlZFJlc3VsdCksCisgICAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCk7CisgICAgfQorCisgICAgYm9vbGVhbiBleHBlY3RBdXgoU3RyaW5nIHRhZywgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0LCBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuIGV4cGVjdEF1eCh0YWcsIG5ldyBTdHJpbmdbXSB7c291cmNlLCByZXN1bHR9LAorICAgICAgICAgICAgICAgICAgcmVzdWx0LmVxdWFscyhleHBlY3RlZFJlc3VsdCksCisgICAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCk7CisgICAgfQorCisgICAgYm9vbGVhbiBleHBlY3RBdXgoU3RyaW5nIHRhZywgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0LCBib29sZWFuIHBhc3MsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIHJldHVybiBleHBlY3RBdXgodGFnLCBuZXcgU3RyaW5nW10ge3NvdXJjZSwgcmVzdWx0fSwKKyAgICAgICAgICAgICAgICAgIHBhc3MsCisgICAgICAgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCk7CisgICAgfQorCisgICAgYm9vbGVhbiBleHBlY3RBdXgoU3RyaW5nIHRhZywgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICBib29sZWFuIHBhc3MsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cGVjdGVkUmVzdWx0KSB7CisgICAgICAgIHJldHVybiBleHBlY3RBdXgodGFnLCBuZXcgU3RyaW5nW10ge3NvdXJjZX0sCisgICAgICAgICAgICAgICAgICBwYXNzLAorICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQpOworICAgIH0KKworICAgIGJvb2xlYW4gZXhwZWN0QXV4KFN0cmluZyB0YWcsIFN0cmluZ1tdIHJlc3VsdHMsIGJvb2xlYW4gcGFzcywKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWRSZXN1bHQpIHsKKyAgICAgICAgbXNnKChwYXNzPyIoIjoiRkFJTDogKCIpK3RhZysiKSIsIHBhc3MgPyBMT0cgOiBFUlIsIHRydWUsIHRydWUpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGxhYmVsOworICAgICAgICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICAgIGxhYmVsID0gInNvdXJjZTogICAiOworICAgICAgICAgICAgfSBlbHNlIGlmIChpID09IHJlc3VsdHMubGVuZ3RoIC0gMSkgeworICAgICAgICAgICAgICAgIGxhYmVsID0gInJlc3VsdDogICAiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoIWlzVmVyYm9zZSgpICYmIHBhc3MpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGxhYmVsID0gImludGVybSIgKyBpICsgIjogICI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtc2coIiAgICAiICsgbGFiZWwgKyByZXN1bHRzW2ldLCBwYXNzID8gTE9HIDogRVJSLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXBhc3MpIHsKKyAgICAgICAgICAgIG1zZyggICIgICAgZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZFJlc3VsdCwgRVJSLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcGFzczsKKyAgICB9Cit9CisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1VuaWNvZGVTZXRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdHJhbnNsaXQvVW5pY29kZVNldFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NTgyZjM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1VuaWNvZGVTZXRUZXN0LmphdmEKQEAgLTAsMCArMSwxNzg3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyRW51bXMuRUNoYXJhY3RlckNhdGVnb3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlNvcnRlZFNldFJlbGF0aW9uOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworCisvKioKKyAqIEB0ZXN0CisgKiBAc3VtbWFyeSBHZW5lcmFsIHRlc3Qgb2YgVW5pY29kZVNldAorICovCitwdWJsaWMgY2xhc3MgVW5pY29kZVNldFRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIE5PVCA9ICIlJSUlIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVW5pY29kZVNldFRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0b1BhdHRlcm4oKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0VG9QYXR0ZXJuKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIC8vIFRlc3QgdGhhdCB0b1BhdHRlcm4oKSByb3VuZCB0cmlwcyB3aXRoIHN5bnRheCBjaGFyYWN0ZXJzCisgICAgICAgIC8vIGFuZCB3aGl0ZXNwYWNlLgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE9USEVSX1RPUEFUVEVSTl9URVNUUy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgY2hlY2tQYXQoT1RIRVJfVE9QQVRURVJOX1RFU1RTW2ldLCBuZXcgVW5pY29kZVNldChPVEhFUl9UT1BBVFRFUk5fVEVTVFNbaV0pKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAweDEwRkZGRjsgKytpKSB7CisgICAgICAgICAgICBpZiAoKGkgPD0gMHhGRiAmJiAhVUNoYXJhY3Rlci5pc0xldHRlcihpKSkgfHwgVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoaSkpIHsKKyAgICAgICAgICAgICAgICAvLyBjaGVjayB2YXJpb3VzIGNvbWJpbmF0aW9ucyB0byBtYWtlIHN1cmUgdGhleSBhbGwgd29yay4KKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAwICYmICF0b1BhdHRlcm5BdXgoaSwgaSkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmICghdG9QYXR0ZXJuQXV4KDAsIGkpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoIXRvUGF0dGVybkF1eChpLCAweEZGRkYpKSBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKworICAgICAgICAvLyBUZXN0IHBhdHRlcm4gYmVoYXZpb3Igb2YgbXVsdGljaGFyYWN0ZXIgc3RyaW5ncy4KKyAgICAgICAgVW5pY29kZVNldCBzID0gbmV3IFVuaWNvZGVTZXQoIlthLXoge2FhfSB7YWJ9XSIpOworICAgICAgICBleHBlY3RUb1BhdHRlcm4ocywgIlthLXp7YWF9e2FifV0iLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsiYWEiLCAiYWIiLCBOT1QsICJhYyJ9KTsKKyAgICAgICAgcy5hZGQoImFjIik7CisgICAgICAgIGV4cGVjdFRvUGF0dGVybihzLCAiW2EtenthYX17YWJ9e2FjfV0iLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsiYWEiLCAiYWIiLCAiYWMiLCBOT1QsICJ4eSJ9KTsKKworICAgICAgICBzLmFwcGx5UGF0dGVybigiW2EteiB7XFx7bH0ge3JcXH19XSIpOworICAgICAgICBleHBlY3RUb1BhdHRlcm4ocywgIlthLXp7clxcfX17XFx7bH1dIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IntsIiwgInJ9IiwgTk9ULCAieHkifSk7CisgICAgICAgIHMuYWRkKCJbXSIpOworICAgICAgICBleHBlY3RUb1BhdHRlcm4ocywgIlthLXp7XFxbXFxdfXtyXFx9fXtcXHtsfV0iLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsie2wiLCAicn0iLCAiW10iLCBOT1QsICJ4eSJ9KTsKKworICAgICAgICBzLmFwcGx5UGF0dGVybigiW2EteiB7XHU0RTAxXHU0RTAyfXtcXG5cXHJ9XSIpOworICAgICAgICBleHBlY3RUb1BhdHRlcm4ocywgIlthLXp7XFx1MDAwQVxcdTAwMER9e1xcdTRFMDFcXHU0RTAyfV0iLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsiXHU0RTAxXHU0RTAyIiwgIlxuXHIifSk7CisKKyAgICAgICAgcy5jbGVhcigpOworICAgICAgICBzLmFkZCgiYWJjIik7CisgICAgICAgIHMuYWRkKCJhYmMiKTsKKyAgICAgICAgZXhwZWN0VG9QYXR0ZXJuKHMsICJbe2FiY31dIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7ImFiYyIsIE5PVCwgImFiIn0pOworCisgICAgICAgIC8vIEpCIzM0MDA6IEZvciAyIGNoYXJhY3RlciByYW5nZXMgcHJlZmVyIFthYl0gdG8gW2EtYl0KKyAgICAgICAgcy5jbGVhcigpOyAKKyAgICAgICAgcy5hZGQoJ2EnLCAnYicpOworICAgICAgICBleHBlY3RUb1BhdHRlcm4ocywgIlthYl0iLCBudWxsKTsKKyAgICAgICAgCisgICAgICAgIC8vIENvdmVyIGFwcGx5UGF0dGVybiwgYXBwbHlQcm9wZXJ0eUFsaWFzCisgICAgICAgIHMuY2xlYXIoKTsKKyAgICAgICAgcy5hcHBseVBhdHRlcm4oIlthYiBdIiwgdHJ1ZSk7CisgICAgICAgIGV4cGVjdFRvUGF0dGVybihzLCAiW2FiXSIsIG5ldyBTdHJpbmdbXSB7ImEiLCBOT1QsICJhYiJ9KTsKKyAgICAgICAgcy5jbGVhcigpOworICAgICAgICBzLmFwcGx5UGF0dGVybigiW2FiIF0iLCBmYWxzZSk7CisgICAgICAgIGV4cGVjdFRvUGF0dGVybihzLCAiW1xcXHUwMDIwYWJdIiwgbmV3IFN0cmluZ1tdIHsiYSIsICJcdTAwMjAiLCBOT1QsICJhYiJ9KTsKKyAgICAgICAgCisgICAgICAgIHMuY2xlYXIoKTsKKyAgICAgICAgcy5hcHBseVByb3BlcnR5QWxpYXMoIm52IiwgIjAuNSIpOworICAgICAgICBleHBlY3RUb1BhdHRlcm4ocywgIltcXHUwMEJEXFx1MEYyQVxcdTJDRkRcXFUwMDAxMDE0MVxcVTAwMDEwMTc1XFxVMDAwMTAxNzZdIiwgbnVsbCk7CisgICAgICAgIC8vIFVuaWNvZGUgNC4xIGFkZHMgXHUyQ0ZEXFUwMDAxMDE0MVxVMDAwMTAxNzVcVTAwMDEwMTc2IHdpdGggbnVtZXJpYyB2YWx1ZSAxLzIKKworICAgICAgICBzLmNsZWFyKCk7CisgICAgICAgIHMuYXBwbHlQcm9wZXJ0eUFsaWFzKCJnYyIsICJMdSIpOworICAgICAgICAvLyBUT0RPIGV4cGVjdFRvUGF0dGVybihzLCB3aGF0PykKKyAgICB9CisKKyAgICBzdGF0aWMgU3RyaW5nW10gT1RIRVJfVE9QQVRURVJOX1RFU1RTID0geworICAgICAgICAgICAgICAgICJbWzpsYXRpbjpdJls6Z3JlZWs6XV0iLCAKKyAgICAgICAgICAgICAgICAiW1s6bGF0aW46XS1bOmdyZWVrOl1dIiwKKyAgICAgICAgICAgICAgICAiWzpub25zcGFjaW5nIG1hcms6XSIKKyAgICB9OworICAgIAorICAgIAorICAgIHB1YmxpYyBib29sZWFuIHRvUGF0dGVybkF1eChpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgLy8gdXNlIEludGVnZXIudG9TdHJpbmcgYmVjYXVzZSBVdGlsaXR5LmhleCBkb2Vzbid0IGhhbmRsZSBpbnRzCisgICAgICAgIFN0cmluZyBzb3VyY2UgPSAiMHgiICsgSW50ZWdlci50b1N0cmluZyhzdGFydCwxNikudG9VcHBlckNhc2UoKTsKKyAgICAgICAgaWYgKHN0YXJ0ICE9IGVuZCkgc291cmNlICs9ICIuLjB4IiArIEludGVnZXIudG9TdHJpbmcoZW5kLDE2KS50b1VwcGVyQ2FzZSgpOworICAgICAgICBVbmljb2RlU2V0IHRlc3RTZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICB0ZXN0U2V0LmFkZChzdGFydCwgZW5kKTsKKyAgICAgICAgcmV0dXJuIGNoZWNrUGF0KHNvdXJjZSwgdGVzdFNldCk7CisgICAgfQorICAgIAorICAgIGJvb2xlYW4gY2hlY2tQYXQgKFN0cmluZyBzb3VyY2UsIFVuaWNvZGVTZXQgdGVzdFNldCkgeworICAgICAgICBTdHJpbmcgcGF0ID0gIiI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBXaGF0IHdlIHdhbnQgdG8gbWFrZSBzdXJlIG9mIGlzIHRoYXQgYSBwYXR0ZXJuIGdlbmVyYXRlZAorICAgICAgICAgICAgLy8gYnkgdG9QYXR0ZXJuKCksIHdpdGggb3Igd2l0aG91dCBlc2NhcGVkIHVucHJpbnRhYmxlcywgY2FuCisgICAgICAgICAgICAvLyBiZSBwYXNzZWQgYmFjayBpbnRvIHRoZSBVbmljb2RlU2V0IGNvbnN0cnVjdG9yLgorICAgICAgICAgICAgU3RyaW5nIHBhdDAgPSB0ZXN0U2V0LnRvUGF0dGVybih0cnVlKTsKKyAgICAgICAgICAgIGlmICghY2hlY2tQYXQoc291cmNlICsgIiAoZXNjYXBlZCkiLCB0ZXN0U2V0LCBwYXQwKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL1N0cmluZyBwYXQxID0gdW5lc2NhcGVMZW5pZW50bHkocGF0MCk7CisgICAgICAgICAgICAvL2lmICghY2hlY2tQYXQoc291cmNlICsgIiAoaW4gY29kZSkiLCB0ZXN0U2V0LCBwYXQxKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgcGF0MiA9IHRlc3RTZXQudG9QYXR0ZXJuKGZhbHNlKTsKKyAgICAgICAgICAgIGlmICghY2hlY2tQYXQoc291cmNlLCB0ZXN0U2V0LCBwYXQyKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL1N0cmluZyBwYXQzID0gdW5lc2NhcGVMZW5pZW50bHkocGF0Mik7CisgICAgICAgICAgICAvL2lmICghY2hlY2tQYXQoc291cmNlICsgIiAoaW4gY29kZSkiLCB0ZXN0U2V0LCBwYXQzKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL2xvZ2xuKHNvdXJjZSArICIgPT4gIiArIHBhdDAgKyAiLCAiICsgcGF0MSArICIsICIgKyBwYXQyICsgIiwgIiArIHBhdDMpOworICAgICAgICAgICAgbG9nbG4oc291cmNlICsgIiA9PiAiICsgcGF0MCArICIsICIgKyBwYXQyKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJFWENFUFRJT04gaW4gdG9QYXR0ZXJuOiAiICsgc291cmNlICsgIiA9PiAiICsgcGF0KTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgYm9vbGVhbiBjaGVja1BhdCAoU3RyaW5nIHNvdXJjZSwgVW5pY29kZVNldCB0ZXN0U2V0LCBTdHJpbmcgcGF0KSB7CisgICAgICAgIFVuaWNvZGVTZXQgdGVzdFNldDIgPSBuZXcgVW5pY29kZVNldChwYXQpOworICAgICAgICBpZiAoIXRlc3RTZXQyLmVxdWFscyh0ZXN0U2V0KSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWwgdG9QYXR0ZXJuOiAiICsgc291cmNlICsgIjsgIiArIHBhdCArICIgPT4gIiArCisgICAgICAgICAgICAgICAgICB0ZXN0U2V0Mi50b1BhdHRlcm4oZmFsc2UpICsgIiwgZXhwZWN0ZWQgIiArCisgICAgICAgICAgICAgICAgICB0ZXN0U2V0LnRvUGF0dGVybihmYWxzZSkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvLyBOT1RFOiBjb3BpZWQgdGhlIGZvbGxvd2luZyBmcm9tIFV0aWxpdHkuIFRoZXJlIG91Z2h0IHRvIGJlIGEgdmVyc2lvbiBpbiB0aGVyZSB3aXRoIGEgZmxhZworICAgIC8vIHRoYXQgZG9lcyB0aGUgSmF2YSBzdHVmZgorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgaW50IHVuZXNjYXBlQXQoU3RyaW5nIHMsIGludFtdIG9mZnNldDE2KSB7CisgICAgICAgIGludCBjOworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgaW50IG4gPSAwOworICAgICAgICBpbnQgbWluRGlnID0gMDsKKyAgICAgICAgaW50IG1heERpZyA9IDA7CisgICAgICAgIGludCBiaXRzUGVyRGlnaXQgPSA0OworICAgICAgICBpbnQgZGlnOworICAgICAgICBpbnQgaTsKKworICAgICAgICAvKiBDaGVjayB0aGF0IG9mZnNldCBpcyBpbiByYW5nZSAqLworICAgICAgICBpbnQgb2Zmc2V0ID0gb2Zmc2V0MTZbMF07CisgICAgICAgIGludCBsZW5ndGggPSBzLmxlbmd0aCgpOworICAgICAgICBpZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgPj0gbGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICAvKiBGZXRjaCBmaXJzdCBVQ2hhciBhZnRlciAnXFwnICovCisgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQocywgb2Zmc2V0KTsKKyAgICAgICAgb2Zmc2V0ICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKworICAgICAgICAvKiBDb252ZXJ0IGhleGFkZWNpbWFsIGFuZCBvY3RhbCBlc2NhcGVzICovCisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICBjYXNlICd1JzoKKyAgICAgICAgICAgIG1pbkRpZyA9IG1heERpZyA9IDQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgLyoKKyAgICAgICAgY2FzZSAnVSc6CisgICAgICAgICAgICBtaW5EaWcgPSBtYXhEaWcgPSA4OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ3gnOgorICAgICAgICAgICAgbWluRGlnID0gMTsKKyAgICAgICAgICAgIG1heERpZyA9IDI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgKi8KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGRpZyA9IFVDaGFyYWN0ZXIuZGlnaXQoYywgOCk7CisgICAgICAgICAgICBpZiAoZGlnID49IDApIHsKKyAgICAgICAgICAgICAgICBtaW5EaWcgPSAxOworICAgICAgICAgICAgICAgIG1heERpZyA9IDM7CisgICAgICAgICAgICAgICAgbiA9IDE7IC8qIEFscmVhZHkgaGF2ZSBmaXJzdCBvY3RhbCBkaWdpdCAqLworICAgICAgICAgICAgICAgIGJpdHNQZXJEaWdpdCA9IDM7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZGlnOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1pbkRpZyAhPSAwKSB7CisgICAgICAgICAgICB3aGlsZSAob2Zmc2V0IDwgbGVuZ3RoICYmIG4gPCBtYXhEaWcpIHsKKyAgICAgICAgICAgICAgICAvLyBURU1QT1JBUlkKKyAgICAgICAgICAgICAgICAvLyBUT0RPOiBSZXN0b3JlIHRoZSBjaGFyMzItYmFzZWQgY29kZSB3aGVuIFVDaGFyYWN0ZXIuZGlnaXQKKyAgICAgICAgICAgICAgICAvLyBpcyB3b3JraW5nIChCdWcgNjYpLgorCisgICAgICAgICAgICAgICAgLy9jID0gVVRGMTYuY2hhckF0KHMsIG9mZnNldCk7CisgICAgICAgICAgICAgICAgLy9kaWcgPSBVQ2hhcmFjdGVyLmRpZ2l0KGMsIChiaXRzUGVyRGlnaXQgPT0gMykgPyA4IDogMTYpOworICAgICAgICAgICAgICAgIGMgPSBzLmNoYXJBdChvZmZzZXQpOworICAgICAgICAgICAgICAgIGRpZyA9IENoYXJhY3Rlci5kaWdpdCgoY2hhciljLCAoYml0c1BlckRpZ2l0ID09IDMpID8gOCA6IDE2KTsKKyAgICAgICAgICAgICAgICBpZiAoZGlnIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCA8PCBiaXRzUGVyRGlnaXQpIHwgZGlnOworICAgICAgICAgICAgICAgIC8vb2Zmc2V0ICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICArK29mZnNldDsKKyAgICAgICAgICAgICAgICArK247CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobiA8IG1pbkRpZykgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9mZnNldDE2WzBdID0gb2Zmc2V0OworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENvbnZlcnQgQy1zdHlsZSBlc2NhcGVzIGluIHRhYmxlICovCisgICAgICAgIGZvciAoaT0wOyBpPFVORVNDQVBFX01BUC5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIGlmIChjID09IFVORVNDQVBFX01BUFtpXSkgeworICAgICAgICAgICAgICAgIG9mZnNldDE2WzBdID0gb2Zmc2V0OworICAgICAgICAgICAgICAgIHJldHVybiBVTkVTQ0FQRV9NQVBbaSsxXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA8IFVORVNDQVBFX01BUFtpXSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogSWYgbm8gc3BlY2lhbCBmb3JtcyBhcmUgcmVjb2duaXplZCwgdGhlbiBjb25zaWRlcgorICAgICAgICAgKiB0aGUgYmFja3NsYXNoIHRvIGdlbmVyaWNhbGx5IGVzY2FwZSB0aGUgbmV4dCBjaGFyYWN0ZXIuICovCisgICAgICAgIG9mZnNldDE2WzBdID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICAvKiBUaGlzIG1hcCBtdXN0IGJlIGluIEFTQ0VORElORyBPUkRFUiBPRiBUSEUgRVNDQVBFIENPREUgKi8KKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBjaGFyW10gVU5FU0NBUEVfTUFQID0geworICAgICAgICAvKiIgICAweDIyLCAweDIyICovCisgICAgICAgIC8qJyAgIDB4MjcsIDB4MjcgKi8KKyAgICAgICAgLyo/ICAgMHgzRiwgMHgzRiAqLworICAgICAgICAvKlwgICAweDVDLCAweDVDICovCisgICAgICAgIC8qYSovIDB4NjEsIDB4MDcsCisgICAgICAgIC8qYiovIDB4NjIsIDB4MDgsCisgICAgICAgIC8qZiovIDB4NjYsIDB4MGMsCisgICAgICAgIC8qbiovIDB4NkUsIDB4MGEsCisgICAgICAgIC8qciovIDB4NzIsIDB4MGQsCisgICAgICAgIC8qdCovIDB4NzQsIDB4MDksCisgICAgICAgIC8qdiovIDB4NzYsIDB4MGIKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ29udmVydCBhbGwgZXNjYXBlcyBpbiBhIGdpdmVuIHN0cmluZyB1c2luZyB1bmVzY2FwZUF0KCkuCisgICAgICogTGVhdmUgaW52YWxpZCBlc2NhcGUgc2VxdWVuY2VzIHVuY2hhbmdlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB1bmVzY2FwZUxlbmllbnRseShTdHJpbmcgcykgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnRbXSBwb3MgPSBuZXcgaW50WzFdOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cy5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBzLmNoYXJBdChpKyspOworICAgICAgICAgICAgaWYgKGMgPT0gJ1xcJykgeworICAgICAgICAgICAgICAgIHBvc1swXSA9IGk7CisgICAgICAgICAgICAgICAgaW50IGUgPSB1bmVzY2FwZUF0KHMsIHBvcyk7CisgICAgICAgICAgICAgICAgaWYgKGUgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgZSk7CisgICAgICAgICAgICAgICAgICAgIGkgPSBwb3NbMF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UGF0dGVybnMoKSB7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgZXhwZWN0UGF0dGVybihzZXQsICJbW2EtbV0mW2Qtel0mW2steV1dIiwgICJrbSIpOworICAgICAgICBleHBlY3RQYXR0ZXJuKHNldCwgIltbYS16XS1bbS15XS1bZC1yXV0iLCAgImFjenoiKTsKKyAgICAgICAgZXhwZWN0UGF0dGVybihzZXQsICJbYVxcLXpdIiwgICItLWFhenoiKTsKKyAgICAgICAgZXhwZWN0UGF0dGVybihzZXQsICJbLWF6XSIsICAiLS1hYXp6Iik7CisgICAgICAgIGV4cGVjdFBhdHRlcm4oc2V0LCAiW2F6LV0iLCAgIi0tYWF6eiIpOworICAgICAgICBleHBlY3RQYXR0ZXJuKHNldCwgIltbW2Etel0tW2FlaW91XWldXSIsICJiZGZucHR2eiIpOworCisgICAgICAgIC8vIFRocm93IGluIGEgdGVzdCBvZiBjb21wbGVtZW50CisgICAgICAgIHNldC5jb21wbGVtZW50KCk7CisgICAgICAgIFN0cmluZyBleHAgPSAnXHUwMDAwJyArICJhZWVvb3V1IiArIChjaGFyKSgneicrMSkgKyAnXHVGRkZGJzsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCBleHApOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDYXRlZ29yaWVzKCkgeworICAgICAgICBpbnQgZmFpbHVyZXMgPSAwOworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCJbOkx1Ol0iKTsKKyAgICAgICAgZXhwZWN0Q29udGFpbm1lbnQoc2V0LCAiQUJDIiwgImFiYyIpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSBnZW5lcmF0aW9uIG9mIEwgZG9lc24ndCBwb2xsdXRlIGNhY2hlZCBMdSBzZXQKKyAgICAgICAgLy8gRmlyc3QgZ2VuZXJhdGUgTCwgdGhlbiBMdQorICAgICAgICAvLyBub3QgdXNlZCBpbnQgVE9QID0gMHgyMDA7IC8vIERvbid0IG5lZWQgdG8gZ28gb3ZlciB0aGUgd2hvbGUgcmFuZ2U6CisgICAgICAgIHNldCA9IG5ldyBVbmljb2RlU2V0KCJbOkw6XSIpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8MHgyMDA7ICsraSkgeworICAgICAgICAgICAgYm9vbGVhbiBsID0gVUNoYXJhY3Rlci5pc0xldHRlcihpKTsKKyAgICAgICAgICAgIGlmIChsICE9IHNldC5jb250YWlucygoY2hhcilpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBMIGNvbnRhaW5zICIgKyAoY2hhcilpICsgIiA9ICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICBzZXQuY29udGFpbnMoKGNoYXIpaSkpOworICAgICAgICAgICAgICAgIGlmICgrK2ZhaWx1cmVzID09IDEwKSBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHNldCA9IG5ldyBVbmljb2RlU2V0KCJbOkx1Ol0iKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPDB4MjAwOyArK2kpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gbHUgPSAoVUNoYXJhY3Rlci5nZXRUeXBlKGkpID09IEVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSKTsKKyAgICAgICAgICAgIGlmIChsdSAhPSBzZXQuY29udGFpbnMoKGNoYXIpaSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogTHUgY29udGFpbnMgIiArIChjaGFyKWkgKyAiID0gIiArIAorICAgICAgICAgICAgICAgICAgICAgIHNldC5jb250YWlucygoY2hhcilpKSk7CisgICAgICAgICAgICAgICAgaWYgKCsrZmFpbHVyZXMgPT0gMjApIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEFkZFJlbW92ZSgpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBzZXQuYWRkKCdhJywgJ3onKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiYXoiKTsKKyAgICAgICAgc2V0LnJlbW92ZSgnbScsICdwJyk7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgImFscXoiKTsKKyAgICAgICAgc2V0LnJlbW92ZSgnZScsICdnJyk7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgImFkaGxxeiIpOworICAgICAgICBzZXQucmVtb3ZlKCdkJywgJ2knKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiYWNqbHF6Iik7CisgICAgICAgIHNldC5yZW1vdmUoJ2MnLCAncicpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICJhYnN6Iik7CisgICAgICAgIHNldC5hZGQoJ2YnLCAncScpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICJhYmZxc3oiKTsKKyAgICAgICAgc2V0LnJlbW92ZSgnYScsICdnJyk7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgImhxc3oiKTsKKyAgICAgICAgc2V0LnJlbW92ZSgnYScsICd6Jyk7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgIiIpOworCisgICAgICAgIC8vIFRyeSByZW1vdmluZyBhbiBlbnRpcmUgc2V0IGZyb20gYW5vdGhlciBzZXQKKyAgICAgICAgZXhwZWN0UGF0dGVybihzZXQsICJbYy14XSIsICJjeCIpOworICAgICAgICBVbmljb2RlU2V0IHNldDIgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBleHBlY3RQYXR0ZXJuKHNldDIsICJbZi1reS16YS1iY1t2d11dIiwgImFjZmt2d3l6Iik7CisgICAgICAgIHNldC5yZW1vdmVBbGwoc2V0Mik7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgImRlbHV4eCIpOworCisgICAgICAgIC8vIFRyeSBhZGRpbmcgYW4gZW50aXJlIHNldCB0byBhbm90aGVyIHNldAorICAgICAgICBleHBlY3RQYXR0ZXJuKHNldCwgIltqYWNraWVtY2xlYW5dIiwgImFhY2NlZWluIik7CisgICAgICAgIGV4cGVjdFBhdHRlcm4oc2V0MiwgIltoaXRvc2hpbmFtZWthdGFqYW1lc2FuZGVyc29uXSIsICJhYWRlaGttb3J0Iik7CisgICAgICAgIHNldC5hZGRBbGwoc2V0Mik7CisgICAgICAgIGV4cGVjdFBhaXJzKHNldCwgImFhY2Vob3J0Iik7CisKKyAgICAgICAgLy8gVGVzdCBjb21tdXRhdGl2aXR5CisgICAgICAgIGV4cGVjdFBhdHRlcm4oc2V0LCAiW2hpdG9zaGluYW1la2F0YWphbWVzYW5kZXJzb25dIiwgImFhZGVoa21vcnQiKTsKKyAgICAgICAgZXhwZWN0UGF0dGVybihzZXQyLCAiW2phY2tpZW1jbGVhbl0iLCAiYWFjY2VlaW4iKTsKKyAgICAgICAgc2V0LmFkZEFsbChzZXQyKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiYWFjZWhvcnQiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIHN1cmUgbWluaW1hbCByZXByZXNlbnRhdGlvbiBpcyBtYWludGFpbmVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RNaW5pbWFsUmVwKCkgeworICAgICAgICAvLyBUaGlzIGlzIHByZXR0eSB0aG9yb3VnaGx5IHRlc3RlZCBieSBjaGVja0Nhbm9uaWNhbFJlcCgpCisgICAgICAgIC8vIHJ1biBhZ2FpbnN0IHRoZSBleGhhdXN0aXZlIG9wZXJhdGlvbiByZXN1bHRzLiAgVXNlIHRoZSBjb2RlCisgICAgICAgIC8vIGhlcmUgZm9yIGRlYnVnZ2luZyBzcGVjaWZpYyBzcG90IHByb2JsZW1zLgorICAgICAgIAorICAgICAgICAvLyAxIG92ZXJsYXAgYWdhaW5zdCAyCisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoIltoLWttLXFdIik7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0MiA9IG5ldyBVbmljb2RlU2V0KCJbaS1vXSIpOworICAgICAgICBzZXQuYWRkQWxsKHNldDIpOworICAgICAgICBleHBlY3RQYWlycyhzZXQsICJocSIpOworICAgICAgICAvLyByaWdodAorICAgICAgICBzZXQuYXBwbHlQYXR0ZXJuKCJbYS1tXSIpOworICAgICAgICBzZXQyLmFwcGx5UGF0dGVybigiW2Utb10iKTsKKyAgICAgICAgc2V0LmFkZEFsbChzZXQyKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiYW8iKTsKKyAgICAgICAgLy8gbGVmdAorICAgICAgICBzZXQuYXBwbHlQYXR0ZXJuKCJbZS1vXSIpOworICAgICAgICBzZXQyLmFwcGx5UGF0dGVybigiW2EtbV0iKTsKKyAgICAgICAgc2V0LmFkZEFsbChzZXQyKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiYW8iKTsKKyAgICAgICAgLy8gMSBvdmVybGFwIGFnYWluc3QgMworICAgICAgICBzZXQuYXBwbHlQYXR0ZXJuKCJbYS1lZy1tby13XSIpOworICAgICAgICBzZXQyLmFwcGx5UGF0dGVybigiW2QtcV0iKTsKKyAgICAgICAgc2V0LmFkZEFsbChzZXQyKTsKKyAgICAgICAgZXhwZWN0UGFpcnMoc2V0LCAiYXciKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QVBJKCkgeworICAgICAgICAvLyBkZWZhdWx0IGN0CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgaWYgKCFzZXQuaXNFbXB0eSgpIHx8IHNldC5nZXRSYW5nZUNvdW50KCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwsIHNldCBzaG91bGQgYmUgZW1wdHkgYnV0IGlzbid0OiAiICsKKyAgICAgICAgICAgICAgICAgIHNldCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBjbGVhcigpLCBpc0VtcHR5KCkKKyAgICAgICAgc2V0LmFkZCgnYScpOworICAgICAgICBpZiAoc2V0LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwsIHNldCBzaG91bGRuJ3QgYmUgZW1wdHkgYnV0IGlzOiAiICsKKyAgICAgICAgICAgICAgICAgIHNldCk7CisgICAgICAgIH0KKyAgICAgICAgc2V0LmNsZWFyKCk7CisgICAgICAgIGlmICghc2V0LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwsIHNldCBzaG91bGQgYmUgZW1wdHkgYnV0IGlzbid0OiAiICsKKyAgICAgICAgICAgICAgICAgIHNldCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBzaXplKCkKKyAgICAgICAgc2V0LmNsZWFyKCk7CisgICAgICAgIGlmIChzZXQuc2l6ZSgpICE9IDApIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMLCBzaXplIHNob3VsZCBiZSAwLCBidXQgaXMgIiArIHNldC5zaXplKCkgKworICAgICAgICAgICAgICAgICAgIjogIiArIHNldCk7CisgICAgICAgIH0KKyAgICAgICAgc2V0LmFkZCgnYScpOworICAgICAgICBpZiAoc2V0LnNpemUoKSAhPSAxKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCwgc2l6ZSBzaG91bGQgYmUgMSwgYnV0IGlzICIgKyBzZXQuc2l6ZSgpICsKKyAgICAgICAgICAgICAgICAgICI6ICIgKyBzZXQpOworICAgICAgICB9CisgICAgICAgIHNldC5hZGQoJzEnLCAnOScpOworICAgICAgICBpZiAoc2V0LnNpemUoKSAhPSAxMCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwsIHNpemUgc2hvdWxkIGJlIDEwLCBidXQgaXMgIiArIHNldC5zaXplKCkgKworICAgICAgICAgICAgICAgICAgIjogIiArIHNldCk7CisgICAgICAgIH0KKyAgICAgICAgc2V0LmNsZWFyKCk7CisgICAgICAgIHNldC5jb21wbGVtZW50KCk7CisgICAgICAgIGlmIChzZXQuc2l6ZSgpICE9IDB4MTEwMDAwKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCwgc2l6ZSBzaG91bGQgYmUgMHgxMTAwMDAsIGJ1dCBpcyIgKyBzZXQuc2l6ZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNvbnRhaW5zKGZpcnN0LCBsYXN0KQorICAgICAgICBzZXQuY2xlYXIoKTsKKyAgICAgICAgc2V0LmFwcGx5UGF0dGVybigiW0EtWSAxLTggYi1kIGwteV0iKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGk8c2V0LmdldFJhbmdlQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICBpbnQgYSA9IHNldC5nZXRSYW5nZVN0YXJ0KGkpOworICAgICAgICAgICAgaW50IGIgPSBzZXQuZ2V0UmFuZ2VFbmQoaSk7CisgICAgICAgICAgICBpZiAoIXNldC5jb250YWlucyhhLCBiKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMLCBzaG91bGQgY29udGFpbiAiICsgKGNoYXIpYSArICctJyArIChjaGFyKWIgKworICAgICAgICAgICAgICAgICAgICAgICIgYnV0IGRvZXNuJ3Q6ICIgKyBzZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNldC5jb250YWlucygoY2hhcikoYS0xKSwgYikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTCwgc2hvdWxkbid0IGNvbnRhaW4gIiArCisgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKGEtMSkgKyAnLScgKyAoY2hhciliICsKKyAgICAgICAgICAgICAgICAgICAgICAiIGJ1dCBkb2VzOiAiICsgc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzZXQuY29udGFpbnMoYSwgKGNoYXIpKGIrMSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwsIHNob3VsZG4ndCBjb250YWluICIgKworICAgICAgICAgICAgICAgICAgICAgIChjaGFyKWEgKyAnLScgKyAoY2hhcikoYisxKSArCisgICAgICAgICAgICAgICAgICAgICAgIiBidXQgZG9lczogIiArIHNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBQb3J0ZWQgSW52ZXJzaW9uTGlzdCB0ZXN0LgorICAgICAgICBVbmljb2RlU2V0IGEgPSBuZXcgVW5pY29kZVNldCgoY2hhcikzLChjaGFyKTEwKTsKKyAgICAgICAgVW5pY29kZVNldCBiID0gbmV3IFVuaWNvZGVTZXQoKGNoYXIpNywoY2hhcikxNSk7CisgICAgICAgIFVuaWNvZGVTZXQgYyA9IG5ldyBVbmljb2RlU2V0KCk7CisKKyAgICAgICAgbG9nbG4oImEgWzMtMTBdOiAiICsgYSk7CisgICAgICAgIGxvZ2xuKCJiIFs3LTE1XTogIiArIGIpOworICAgICAgICBjLnNldChhKTsgYy5hZGRBbGwoYik7CisgICAgICAgIFVuaWNvZGVTZXQgZXhwID0gbmV3IFVuaWNvZGVTZXQoKGNoYXIpMywoY2hhcikxNSk7CisgICAgICAgIGlmIChjLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiYy5zZXQoYSkuYWRkKGIpOiAiICsgYyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogYy5zZXQoYSkuYWRkKGIpID0gIiArIGMgKyAiLCBleHBlY3QgIiArIGV4cCk7CisgICAgICAgIH0KKyAgICAgICAgYy5jb21wbGVtZW50KCk7CisgICAgICAgIGV4cC5zZXQoKGNoYXIpMCwgKGNoYXIpMik7CisgICAgICAgIGV4cC5hZGQoKGNoYXIpMTYsIFVuaWNvZGVTZXQuTUFYX1ZBTFVFKTsKKyAgICAgICAgaWYgKGMuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJjLmNvbXBsZW1lbnQoKTogIiArIGMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oVXRpbGl0eS5lc2NhcGUoIkZBSUw6IGMuY29tcGxlbWVudCgpID0gIiArIGMgKyAiLCBleHBlY3QgIiArIGV4cCkpOworICAgICAgICB9CisgICAgICAgIGMuY29tcGxlbWVudCgpOworICAgICAgICBleHAuc2V0KChjaGFyKTMsIChjaGFyKTE1KTsKKyAgICAgICAgaWYgKGMuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJjLmNvbXBsZW1lbnQoKTogIiArIGMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGMuY29tcGxlbWVudCgpID0gIiArIGMgKyAiLCBleHBlY3QgIiArIGV4cCk7CisgICAgICAgIH0KKyAgICAgICAgYy5zZXQoYSk7IGMuY29tcGxlbWVudEFsbChiKTsKKyAgICAgICAgZXhwLnNldCgoY2hhcikzLChjaGFyKTYpOworICAgICAgICBleHAuYWRkKChjaGFyKTExLChjaGFyKSAxNSk7CisgICAgICAgIGlmIChjLmVxdWFscyhleHApKSB7CisgICAgICAgICAgICBsb2dsbigiYy5zZXQoYSkuY29tcGxlbWVudChiKTogIiArIGMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGMuc2V0KGEpLmNvbXBsZW1lbnQoYikgPSAiICsgYyArICIsIGV4cGVjdCAiICsgZXhwKTsKKyAgICAgICAgfQorCisgICAgICAgIGV4cC5zZXQoYyk7CisgICAgICAgIGMgPSBiaXRzVG9TZXQoc2V0VG9CaXRzKGMpKTsKKyAgICAgICAgaWYgKGMuZXF1YWxzKGV4cCkpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJiaXRzVG9TZXQoc2V0VG9CaXRzKGMpKTogIiArIGMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGJpdHNUb1NldChzZXRUb0JpdHMoYykpID0gIiArIGMgKyAiLCBleHBlY3QgIiArIGV4cCk7CisgICAgICAgIH0gCisKKyAgICAgICAgLy8gQWRkaXRpb25hbCB0ZXN0cyBmb3IgY292ZXJhZ2UgSkIjMjExOAorICAgICAgICAvL1VuaWNvZGVTZXQ6OmNvbXBsZW1lbnQoY2xhc3MgVW5pY29kZVN0cmluZyBjb25zdCAmKQorICAgICAgICAvL1VuaWNvZGVTZXQ6OmNvbXBsZW1lbnRBbGwoY2xhc3MgVW5pY29kZVN0cmluZyBjb25zdCAmKQorICAgICAgICAvL1VuaWNvZGVTZXQ6OmNvbnRhaW5zTm9uZShjbGFzcyBVbmljb2RlU2V0IGNvbnN0ICYpCisgICAgICAgIC8vVW5pY29kZVNldDo6Y29udGFpbnNOb25lKGxvbmcsbG9uZykKKyAgICAgICAgLy9Vbmljb2RlU2V0Ojpjb250YWluc1NvbWUoY2xhc3MgVW5pY29kZVNldCBjb25zdCAmKQorICAgICAgICAvL1VuaWNvZGVTZXQ6OmNvbnRhaW5zU29tZShsb25nLGxvbmcpCisgICAgICAgIC8vVW5pY29kZVNldDo6cmVtb3ZlQWxsKGNsYXNzIFVuaWNvZGVTdHJpbmcgY29uc3QgJikKKyAgICAgICAgLy9Vbmljb2RlU2V0OjpyZXRhaW4obG9uZykKKyAgICAgICAgLy9Vbmljb2RlU2V0OjpyZXRhaW5BbGwoY2xhc3MgVW5pY29kZVN0cmluZyBjb25zdCAmKQorICAgICAgICAvL1VuaWNvZGVTZXQ6OnNlcmlhbGl6ZSh1bnNpZ25lZCBzaG9ydCAqLGxvbmcsZW51bSBVRXJyb3JDb2RlICYpCisgICAgICAgIC8vVW5pY29kZVNldEl0ZXJhdG9yOjpnZXRTdHJpbmcodm9pZCkKKyAgICAgICAgc2V0LmNsZWFyKCk7CisgICAgICAgIHNldC5jb21wbGVtZW50KCJhYiIpOworICAgICAgICBleHAuYXBwbHlQYXR0ZXJuKCJbe2FifV0iKTsKKyAgICAgICAgaWYgKCFzZXQuZXF1YWxzKGV4cCkpIHsgZXJybG4oIkZBSUw6IGNvbXBsZW1lbnQoXCJhYlwiKSIpOyByZXR1cm47IH0KKworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXNldCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Ioc2V0KTsKKyAgICAgICAgaWYgKCFpc2V0Lm5leHQoKSB8fCBpc2V0LmNvZGVwb2ludCAhPSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVW5pY29kZVNldEl0ZXJhdG9yLm5leHQvSVNfU1RSSU5HIik7CisgICAgICAgIH0gZWxzZSBpZiAoIWlzZXQuc3RyaW5nLmVxdWFscygiYWIiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVuaWNvZGVTZXRJdGVyYXRvci5zdHJpbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIHNldC5hZGQoKGNoYXIpMHg2MSwgKGNoYXIpMHg3QSk7CisgICAgICAgIHNldC5jb21wbGVtZW50QWxsKCJhbGFuIik7CisgICAgICAgIGV4cC5hcHBseVBhdHRlcm4oIlt7YWJ9Yi1rbW8tel0iKTsKKyAgICAgICAgaWYgKCFzZXQuZXF1YWxzKGV4cCkpIHsgZXJybG4oIkZBSUw6IGNvbXBsZW1lbnRBbGwoXCJhbGFuXCIpIik7IHJldHVybjsgfQorCisgICAgICAgIGV4cC5hcHBseVBhdHRlcm4oIlthLXpdIik7CisgICAgICAgIGlmIChzZXQuY29udGFpbnNOb25lKGV4cCkpIHsgZXJybG4oIkZBSUw6IGNvbnRhaW5zTm9uZShVbmljb2RlU2V0KSIpOyB9CisgICAgICAgIGlmICghc2V0LmNvbnRhaW5zU29tZShleHApKSB7IGVycmxuKCJGQUlMOiBjb250YWluc1NvbWUoVW5pY29kZVNldCkiKTsgfQorICAgICAgICBleHAuYXBwbHlQYXR0ZXJuKCJbYWxuXSIpOworICAgICAgICBpZiAoIXNldC5jb250YWluc05vbmUoZXhwKSkgeyBlcnJsbigiRkFJTDogY29udGFpbnNOb25lKFVuaWNvZGVTZXQpIik7IH0KKyAgICAgICAgaWYgKHNldC5jb250YWluc1NvbWUoZXhwKSkgeyBlcnJsbigiRkFJTDogY29udGFpbnNTb21lKFVuaWNvZGVTZXQpIik7IH0KKyAgICAgICAgCisgICAgICAgIGlmIChzZXQuY29udGFpbnNOb25lKChjaGFyKTB4NjEsIChjaGFyKTB4N0EpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY29udGFpbnNOb25lKGNoYXIsIGNoYXIpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFzZXQuY29udGFpbnNTb21lKChjaGFyKTB4NjEsIChjaGFyKTB4N0EpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY29udGFpbnNTb21lKGNoYXIsIGNoYXIpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFzZXQuY29udGFpbnNOb25lKChjaGFyKTB4NDEsIChjaGFyKTB4NUEpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY29udGFpbnNOb25lKGNoYXIsIGNoYXIpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNldC5jb250YWluc1NvbWUoKGNoYXIpMHg0MSwgKGNoYXIpMHg1QSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBjb250YWluc1NvbWUoY2hhciwgY2hhcikiKTsKKyAgICAgICAgfQorCisgICAgICAgIHNldC5yZW1vdmVBbGwoImxpdSIpOworICAgICAgICBleHAuYXBwbHlQYXR0ZXJuKCJbe2FifWItaGota21vLXR2LXpdIik7CisgICAgICAgIGlmICghc2V0LmVxdWFscyhleHApKSB7IGVycmxuKCJGQUlMOiByZW1vdmVBbGwoXCJsaXVcIikiKTsgcmV0dXJuOyB9CisKKyAgICAgICAgc2V0LnJldGFpbkFsbCgic3RhciIpOworICAgICAgICBleHAuYXBwbHlQYXR0ZXJuKCJbcnN0XSIpOworICAgICAgICBpZiAoIXNldC5lcXVhbHMoZXhwKSkgeyBlcnJsbigiRkFJTDogcmV0YWluQWxsKFwic3RhclwiKSIpOyByZXR1cm47IH0KKworICAgICAgICBzZXQucmV0YWluKChjaGFyKTB4NzMpOworICAgICAgICBleHAuYXBwbHlQYXR0ZXJuKCJbc10iKTsKKyAgICAgICAgaWYgKCFzZXQuZXF1YWxzKGV4cCkpIHsgZXJybG4oIkZBSUw6IHJldGFpbigncycpIik7IHJldHVybjsgfQorCisgICAgICAgIC8vIElDVSAyLjYgY292ZXJhZ2UgdGVzdHMKKyAgICAgICAgLy8gcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgcmV0YWluKFN0cmluZyBzKTsKKyAgICAgICAgLy8gcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgcmVtb3ZlKGludCBjKTsKKyAgICAgICAgLy8gcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgcmVtb3ZlKFN0cmluZyBzKTsKKyAgICAgICAgLy8gcHVibGljIGludCBoYXNoQ29kZSgpOworICAgICAgICBzZXQuYXBwbHlQYXR0ZXJuKCJbYS16e2FifXtjZH1dIik7CisgICAgICAgIHNldC5yZXRhaW4oImNkIik7CisgICAgICAgIGV4cC5hcHBseVBhdHRlcm4oIlt7Y2R9XSIpOworICAgICAgICBpZiAoIXNldC5lcXVhbHMoZXhwKSkgeyBlcnJsbigiRkFJTDogcmV0YWluKFwiY2RcIikiKTsgcmV0dXJuOyB9CisgICAgICAgIAorICAgICAgICBzZXQuYXBwbHlQYXR0ZXJuKCJbYS16e2FifXtjZH1dIik7CisgICAgICAgIHNldC5yZW1vdmUoKGNoYXIpMHg2Myk7CisgICAgICAgIGV4cC5hcHBseVBhdHRlcm4oIlthYmQtenthYn17Y2R9XSIpOworICAgICAgICBpZiAoIXNldC5lcXVhbHMoZXhwKSkgeyBlcnJsbigiRkFJTDogcmVtb3ZlKCdjJykiKTsgcmV0dXJuOyB9CisgICAgICAgIAorICAgICAgICBzZXQucmVtb3ZlKCJjZCIpOworICAgICAgICBleHAuYXBwbHlQYXR0ZXJuKCJbYWJkLXp7YWJ9XSIpOworICAgICAgICBpZiAoIXNldC5lcXVhbHMoZXhwKSkgeyBlcnJsbigiRkFJTDogcmVtb3ZlKFwiY2RcIikiKTsgcmV0dXJuOyB9CisKKyAgICAgICAgaWYgKHNldC5oYXNoQ29kZSgpICE9IGV4cC5oYXNoQ29kZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogaGFzaENvZGUoKSB1bmVxdWFsIik7CisgICAgICAgIH0KKyAgICAgICAgZXhwLmNsZWFyKCk7CisgICAgICAgIGlmIChzZXQuaGFzaENvZGUoKSA9PSBleHAuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IGhhc2hDb2RlKCkgZXF1YWwiKTsKKyAgICAgICAgfQorCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vQ292ZXIgYWRkQWxsKENvbGxlY3Rpb24pIGFuZCBhZGRBbGxUbyhDb2xsZWN0aW9uKSAgCisgICAgICAgICAgICAvLyAgU2VlbXMgdGhhdCB0aGVyZSBpcyBhIGJ1ZyBpbiBhZGRBbGwoQ29sbGVjdGlvbikgb3BlcmF0aW9uCisgICAgICAgICAgICAvLyAgICBSYW0gYWxzbyBhZGQgYSBzaW1pbGFyIHRlc3QgdG8gVXRpbGl0eVRlc3QuamF2YQorICAgICAgICAgICAgbG9nbG4oIlRlc3RpbmcgYWRkQWxsKENvbGxlY3Rpb24pIC4uLiAiKTsgIAorICAgICAgICAgICAgU3RyaW5nW10gYXJyYXkgPSB7ImEiLCAiYiIsICJjIiwgImRlIn07CisgICAgICAgICAgICBMaXN0IGxpc3QgPSBBcnJheXMuYXNMaXN0KGFycmF5KTsKKyAgICAgICAgICAgIFNldCBhc2V0ID0gbmV3IEhhc2hTZXQobGlzdCk7CisgICAgICAgICAgICBsb2dsbigiICoqKiBUaGUgc291cmNlIHNldCdzIHNpemUgaXM6ICIgKyBhc2V0LnNpemUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHNldC5jbGVhcigpOworICAgICAgICAgICAgc2V0LmFkZEFsbChhc2V0KTsKKyAgICAgICAgICAgIGlmIChzZXQuc2l6ZSgpICE9IGFzZXQuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IEFmdGVyIGFkZEFsbCwgdGhlIFVuaWNvZGVTZXQgc2l6ZSBleHBlY3RlZCAiICsgYXNldC5zaXplKCkgKworICAgICAgICAgICAgICAgICAgICAgICAiLCAiICsgc2V0LnNpemUoKSArICIgc2VlbiBpbnN0ZWFkISIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiT0s6IEFmdGVyIGFkZEFsbCwgdGhlIFVuaWNvZGVTZXQgc2l6ZSBnb3QgIiArIHNldC5zaXplKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBMaXN0IGxpc3QyID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgc2V0LmFkZEFsbFRvKGxpc3QyKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy92ZXJpZnkgdGhlIHJlc3VsdAorICAgICAgICAgICAgbG9nKCIgKioqIFRoZSBlbGVtZW50cyBhcmU6ICIpOworICAgICAgICAgICAgU3RyaW5nIHMgPSBzZXQudG9QYXR0ZXJuKHRydWUpOworICAgICAgICAgICAgbG9nbG4ocyk7CisgICAgICAgICAgICBJdGVyYXRvciBteWl0ZXIgPSBsaXN0Mi5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUobXlpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIGxvZyhteWl0ZXIubmV4dCgpLnRvU3RyaW5nKCkgKyAiICAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxvZ2xuKCIiKTsgIC8vIGEgbmV3IGxpbmUKKyAgICAgICAgfQorCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RTdHJpbmdzKCkgeworLy8gICAgICAgIE9iamVjdFtdW10gdGVzdExpc3QgPSB7CisvLyAgICAgICAgICAgIHtJX0VRVUFMUywgIFVuaWNvZGVTZXQuZnJvbUFsbCgiYWJjIiksCisvLyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbYS1jXSIpfSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgCisvLyAgICAgICAgICAgIHtJX0VRVUFMUywgIFVuaWNvZGVTZXQuZnJvbSgiY2giKS5hZGQoJ2EnLCd6JykuYWRkKCJsbCIpLAorLy8gICAgICAgICAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgiW3tsbH17Y2h9YS16XSIpfSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgCisvLyAgICAgICAgICAgIHtJX0VRVUFMUywgIFVuaWNvZGVTZXQuZnJvbSgiYWJ9YyIpLCAgCisvLyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbe2FiXFx9Y31dIil9LAorLy8gICAgICAgICAgICAgICAgICAgICAgICAKKy8vICAgICAgICAgICAge0lfRVFVQUxTLCAgbmV3IFVuaWNvZGVTZXQoJ2EnLCd6JykuYWRkKCdBJywgJ1onKS5yZXRhaW4oJ00nLCdtJykuY29tcGxlbWVudCgnWCcpLCAKKy8vICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltbYS16QS1aXSZbTS1tXS1bWF1dIil9LAorLy8gICAgICAgIH07CisvLyAgICAgICAgCisvLyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0TGlzdC5sZW5ndGg7ICsraSkgeworLy8gICAgICAgICAgICBleHBlY3RSZWxhdGlvbih0ZXN0TGlzdFtpXVswXSwgdGVzdExpc3RbaV1bMV0sIHRlc3RMaXN0W2ldWzJdLCAiKCIgKyBpICsgIikiKTsKKy8vICAgICAgICB9ICAgICAgICAKKworICAgICAgICBVbmljb2RlU2V0W11bXSB0ZXN0TGlzdCA9IHsKKyAgICAgICAgICAgIHtVbmljb2RlU2V0LmZyb21BbGwoImFiYyIpLAorICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbYS1jXSIpfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAge1VuaWNvZGVTZXQuZnJvbSgiY2giKS5hZGQoJ2EnLCd6JykuYWRkKCJsbCIpLAorICAgICAgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbe2xsfXtjaH1hLXpdIil9LAorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB7VW5pY29kZVNldC5mcm9tKCJhYn1jIiksICAKKyAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgiW3thYlxcfWN9XSIpfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAge25ldyBVbmljb2RlU2V0KCdhJywneicpLmFkZCgnQScsICdaJykucmV0YWluKCdNJywnbScpLmNvbXBsZW1lbnQoJ1gnKSwgCisgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltbYS16QS1aXSZbTS1tXS1bWF1dIil9LAorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0TGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKCF0ZXN0TGlzdFtpXVswXS5lcXVhbHModGVzdExpc3RbaV1bMV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHNldHMgdW5lcXVhbDsgc2VlIHNvdXJjZSBjb2RlICgiICsgaSArICIpIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgIAorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgSW50ZWdlciAKKyAgICAgICAgSV9BTlkgPSBuZXcgSW50ZWdlcihTb3J0ZWRTZXRSZWxhdGlvbi5BTlkpLAorICAgICAgICBJX0NPTlRBSU5TID0gbmV3IEludGVnZXIoU29ydGVkU2V0UmVsYXRpb24uQ09OVEFJTlMpLAorICAgICAgICBJX0RJU0pPSU5UID0gbmV3IEludGVnZXIoU29ydGVkU2V0UmVsYXRpb24uRElTSk9JTlQpLAorICAgICAgICBJX05PX0IgPSBuZXcgSW50ZWdlcihTb3J0ZWRTZXRSZWxhdGlvbi5OT19CKSwKKyAgICAgICAgSV9JU0NPTlRBSU5FRCA9IG5ldyBJbnRlZ2VyKFNvcnRlZFNldFJlbGF0aW9uLklTQ09OVEFJTkVEKSwKKyAgICAgICAgSV9FUVVBTFMgPSBuZXcgSW50ZWdlcihTb3J0ZWRTZXRSZWxhdGlvbi5FUVVBTFMpLAorICAgICAgICBJX05PX0EgPSBuZXcgSW50ZWdlcihTb3J0ZWRTZXRSZWxhdGlvbi5OT19BKSwKKyAgICAgICAgSV9OT05FID0gbmV3IEludGVnZXIoU29ydGVkU2V0UmVsYXRpb24uTk9ORSk7CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdFNldFJlbGF0aW9uKCkgeworICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gY2hvaWNlcyA9IHsiYSIsICJiIiwgImNkIiwgImVmIn07CisgICAgICAgIGludCBsaW1pdCA9IDEgPDwgY2hvaWNlcy5sZW5ndGg7CisgICAgICAgIAorICAgICAgICBTb3J0ZWRTZXQgaXNldCA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIFNvcnRlZFNldCBqc2V0ID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGltaXQ7ICsraSkgeworICAgICAgICAgICAgcGljayhpLCBjaG9pY2VzLCBpc2V0KTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbGltaXQ7ICsraikgeworICAgICAgICAgICAgICAgIHBpY2soaiwgY2hvaWNlcywganNldCk7CisgICAgICAgICAgICAgICAgY2hlY2tTZXRSZWxhdGlvbihpc2V0LCBqc2V0LCAiKCIgKyBpICsgIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2V0U3BlZWQoKSB7CisgICAgICAgIC8vIHNraXAgdW5sZXNzIHZlcmJvc2UKKyAgICAgICAgaWYgKCFpc1ZlcmJvc2UoKSkgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgU2V0U3BlZWQyKDEwMCk7CisgICAgICAgIFNldFNwZWVkMigxMDAwKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgU2V0U3BlZWQyKGludCBzaXplKSB7CisgICAgICAgIAorICAgICAgICBTb3J0ZWRTZXQgaXNldCA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIFNvcnRlZFNldCBqc2V0ID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZSoyOyBpICs9IDIpIHsgLy8gb25seSBldmVuIHZhbHVlcworICAgICAgICAgICAgaXNldC5hZGQobmV3IEludGVnZXIoaSkpOworICAgICAgICAgICAganNldC5hZGQobmV3IEludGVnZXIoaSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgaXRlcmF0aW9ucyA9IDEwMDAwMDAgLyBzaXplOworICAgICAgICAKKyAgICAgICAgbG9nbG4oIlRpbWluZyBjb21wYXJpc29uIG9mIEphdmEgdnMgVXRpbGl0eSIpOworICAgICAgICBsb2dsbigiRm9yIGFib3V0ICIgKyBzaXplICsgIiBvYmplY3RzIHRoYXQgYXJlIGFsbW9zdCBhbGwgdGhlIHNhbWUuIik7CisgICAgICAgIAorICAgICAgICBDaGVja1NwZWVkKGlzZXQsIGpzZXQsICJ3aGVuIGEgPSBiIiwgaXRlcmF0aW9ucyk7CisgICAgICAgIAorICAgICAgICBpc2V0LmFkZChuZXcgSW50ZWdlcihzaXplICsgMSkpOyAgICAvLyBhZGQgb2RkIHZhbHVlIGluIG1pZGRsZQorICAgICAgICAKKyAgICAgICAgQ2hlY2tTcGVlZChpc2V0LCBqc2V0LCAid2hlbiBhIGNvbnRhaW5zIGIiLCBpdGVyYXRpb25zKTsgICAgICAgIAorICAgICAgICBDaGVja1NwZWVkKGpzZXQsIGlzZXQsICJ3aGVuIGIgY29udGFpbnMgYSIsIGl0ZXJhdGlvbnMpOworICAgICAgICAKKyAgICAgICAganNldC5hZGQobmV3IEludGVnZXIoc2l6ZSAtIDEpKTsgICAgLy8gYWRkIGRpZmZlcmVudCBvZGQgdmFsdWUgaW4gbWlkZGxlCisgICAgICAgIAorICAgICAgICBDaGVja1NwZWVkKGpzZXQsIGlzZXQsICJ3aGVuIGEsIGIgYXJlIGRpc2pvaW50IiwgaXRlcmF0aW9ucyk7ICAgICAgICAKKyAgICB9CisgICAgCisgICAgdm9pZCBDaGVja1NwZWVkKFNvcnRlZFNldCBpc2V0LCBTb3J0ZWRTZXQganNldCwgU3RyaW5nIG1lc3NhZ2UsIGludCBpdGVyYXRpb25zKSB7CisgICAgICAgIENoZWNrU3BlZWQyKGlzZXQsIGpzZXQsIG1lc3NhZ2UsIGl0ZXJhdGlvbnMpOworICAgICAgICBDaGVja1NwZWVkMyhpc2V0LCBqc2V0LCBtZXNzYWdlLCBpdGVyYXRpb25zKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBDaGVja1NwZWVkMihTb3J0ZWRTZXQgaXNldCwgU29ydGVkU2V0IGpzZXQsIFN0cmluZyBtZXNzYWdlLCBpbnQgaXRlcmF0aW9ucykgeworICAgICAgICBib29sZWFuIHg7CisgICAgICAgIGJvb2xlYW4geTsKKyAgICAgICAgCisgICAgICAgIC8vIG1ha2Ugc3VyZSBjb2RlIGlzIGxvYWRlZDoKKyAgICAgICAgeCA9IGlzZXQuY29udGFpbnNBbGwoanNldCk7CisgICAgICAgIHkgPSBTb3J0ZWRTZXRSZWxhdGlvbi5oYXNSZWxhdGlvbihpc2V0LCBTb3J0ZWRTZXRSZWxhdGlvbi5DT05UQUlOUywganNldCk7CisgICAgICAgIGlmICh4ICE9IHkpIGVycmxuKCJGQUlMIGNvbnRhaW5zIGNvbXBhcmlzb24iKTsKKyAgICAgICAgCisgICAgICAgIGRvdWJsZSBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgeworICAgICAgICAgICAgeCB8PSBpc2V0LmNvbnRhaW5zQWxsKGpzZXQpOworICAgICAgICB9CisgICAgICAgIGRvdWJsZSBtaWRkbGUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVyYXRpb25zOyArK2kpIHsKKyAgICAgICAgICAgIHkgfD0gU29ydGVkU2V0UmVsYXRpb24uaGFzUmVsYXRpb24oaXNldCwgU29ydGVkU2V0UmVsYXRpb24uQ09OVEFJTlMsIGpzZXQpOworICAgICAgICB9CisgICAgICAgIGRvdWJsZSBlbmQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgCisgICAgICAgIGRvdWJsZSBqdGltZSA9IChtaWRkbGUgLSBzdGFydCkvaXRlcmF0aW9uczsKKyAgICAgICAgZG91YmxlIHV0aW1lID0gKGVuZCAtIG1pZGRsZSkvaXRlcmF0aW9uczsKKyAgICAgICAgCisgICAgICAgIGphdmEudGV4dC5OdW1iZXJGb3JtYXQgbmYgPSBqYXZhLnRleHQuTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZSgpOworICAgICAgICBsb2dsbigiVGVzdCBjb250YWluczogIiArIG1lc3NhZ2UgKyAiOiBKYXZhOiAiICsganRpbWUKKyAgICAgICAgICAgICsgIiwgVXRpbGl0eTogIiArIHV0aW1lICsgIiwgdTpqOiAiICsgbmYuZm9ybWF0KHV0aW1lL2p0aW1lKSk7CisgICAgfQorICAgIAorICAgIHZvaWQgQ2hlY2tTcGVlZDMoU29ydGVkU2V0IGlzZXQsIFNvcnRlZFNldCBqc2V0LCBTdHJpbmcgbWVzc2FnZSwgaW50IGl0ZXJhdGlvbnMpIHsKKyAgICAgICAgYm9vbGVhbiB4OworICAgICAgICBib29sZWFuIHk7CisgICAgICAgIAorICAgICAgICAvLyBtYWtlIHN1cmUgY29kZSBpcyBsb2FkZWQ6CisgICAgICAgIHggPSBpc2V0LmVxdWFscyhqc2V0KTsKKyAgICAgICAgeSA9IFNvcnRlZFNldFJlbGF0aW9uLmhhc1JlbGF0aW9uKGlzZXQsIFNvcnRlZFNldFJlbGF0aW9uLkVRVUFMUywganNldCk7CisgICAgICAgIGlmICh4ICE9IHkpIGVycmxuKCJGQUlMIGVxdWFsaXR5IGNvbXBhcmlzb24iKTsKKworICAgICAgICAKKyAgICAgICAgZG91YmxlIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgKytpKSB7CisgICAgICAgICAgICB4IHw9IGlzZXQuZXF1YWxzKGpzZXQpOworICAgICAgICB9CisgICAgICAgIGRvdWJsZSBtaWRkbGUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVyYXRpb25zOyArK2kpIHsKKyAgICAgICAgICAgIHkgfD0gU29ydGVkU2V0UmVsYXRpb24uaGFzUmVsYXRpb24oaXNldCwgU29ydGVkU2V0UmVsYXRpb24uRVFVQUxTLCBqc2V0KTsKKyAgICAgICAgfQorICAgICAgICBkb3VibGUgZW5kID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIAorICAgICAgICBkb3VibGUganRpbWUgPSAobWlkZGxlIC0gc3RhcnQpL2l0ZXJhdGlvbnM7CisgICAgICAgIGRvdWJsZSB1dGltZSA9IChlbmQgLSBtaWRkbGUpL2l0ZXJhdGlvbnM7CisgICAgICAgIAorICAgICAgICBqYXZhLnRleHQuTnVtYmVyRm9ybWF0IG5mID0gamF2YS50ZXh0Lk51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoKTsKKyAgICAgICAgbG9nbG4oIlRlc3QgZXF1YWxzOiAgICIgKyBtZXNzYWdlICsgIjogSmF2YTogIiArIGp0aW1lCisgICAgICAgICAgICArICIsIFV0aWxpdHk6ICIgKyB1dGltZSArICIsIHU6ajogIiArIG5mLmZvcm1hdCh1dGltZS9qdGltZSkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHBpY2soaW50IGJpdHMsIE9iamVjdFtdIGV4YW1wbGVzLCBTb3J0ZWRTZXQgb3V0cHV0KSB7CisgICAgICAgIG91dHB1dC5jbGVhcigpOworICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IDMyOyArK2spIHsKKyAgICAgICAgICAgIGlmICgoKDE8PGspICYgYml0cykgIT0gMCkgb3V0cHV0LmFkZChleGFtcGxlc1trXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBSRUxBVElPTl9OQU1FID0geworICAgICAgICAiYm90aC1hcmUtbnVsbCIsCisgICAgICAgICJhLWlzLW51bGwiLCAKKyAgICAgICAgImVxdWFscyIsIAorICAgICAgICAiaXMtY29udGFpbmVkLWluIiwKKyAgICAgICAgImItaXMtbnVsbCIsCisgICAgICAgICJpcy1kaXNqb2ludF93aXRoIiwKKyAgICAgICAgImNvbnRhaW5zIiwgCisgICAgICAgICJhbnkiLCB9OworICAgICAgICAKKyAgICBib29sZWFuIGR1bWJIYXNSZWxhdGlvbihDb2xsZWN0aW9uIEEsIGludCBmaWx0ZXIsIENvbGxlY3Rpb24gQikgeworICAgICAgICBDb2xsZWN0aW9uIGFiID0gbmV3IFRyZWVTZXQoQSk7CisgICAgICAgIGFiLnJldGFpbkFsbChCKTsKKyAgICAgICAgaWYgKGFiLnNpemUoKSA+IDAgJiYgKGZpbHRlciAmIFNvcnRlZFNldFJlbGF0aW9uLkFfQU5EX0IpID09IDApIHJldHVybiBmYWxzZTsgCisgICAgICAgIAorICAgICAgICAvLyBBIC0gQiBzaXplID09IEEuc2l6ZSAtIEEmQi5zaXplCisgICAgICAgIGlmIChBLnNpemUoKSA+IGFiLnNpemUoKSAmJiAoZmlsdGVyICYgU29ydGVkU2V0UmVsYXRpb24uQV9OT1RfQikgPT0gMCkgcmV0dXJuIGZhbHNlOyAKKyAgICAgICAgCisgICAgICAgIC8vIEIgLSBBIHNpemUgPT0gQi5zaXplIC0gQSZCLnNpemUKKyAgICAgICAgaWYgKEIuc2l6ZSgpID4gYWIuc2l6ZSgpICYmIChmaWx0ZXIgJiBTb3J0ZWRTZXRSZWxhdGlvbi5CX05PVF9BKSA9PSAwKSByZXR1cm4gZmFsc2U7IAorCisgICAgICAgIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9ICAgIAorICAgIAorICAgIHZvaWQgY2hlY2tTZXRSZWxhdGlvbihTb3J0ZWRTZXQgYSwgU29ydGVkU2V0IGIsIFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgODsgKytpKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJvb2xlYW4gaGFzUmVsYXRpb24gPSBTb3J0ZWRTZXRSZWxhdGlvbi5oYXNSZWxhdGlvbihhLCBpLCBiKTsKKyAgICAgICAgICAgIGJvb2xlYW4gZHVtYkhhc1JlbGF0aW9uID0gZHVtYkhhc1JlbGF0aW9uKGEsIGksIGIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBsb2dsbihtZXNzYWdlICsgIiAiICsgaGFzUmVsYXRpb24gKyAiOlx0IiArIGEgKyAiXHQiICsgUkVMQVRJT05fTkFNRVtpXSArICJcdCIgKyBiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGhhc1JlbGF0aW9uICE9IGR1bWJIYXNSZWxhdGlvbikgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgCisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgKyAiICIgKyBkdW1iSGFzUmVsYXRpb24gKyAiOlx0IiArIGEgKyAiXHQiICsgUkVMQVRJT05fTkFNRVtpXSArICJcdCIgKyBiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsb2dsbigiIik7CisgICAgfQorICAgIAorICAgLyoqCisgICAgKiBUZXN0IHRoZSBbOkxhdGluOl0gc3ludGF4LgorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFNjcmlwdFNldCgpIHsKKworICAgICAgICBleHBlY3RDb250YWlubWVudCgiWzpMYXRpbjpdIiwgImFBIiwgQ2hhcnNUb1VuaWNvZGVTdHJpbmcoIlxcdTAzOTFcXHUwM0IxIikpOworCisgICAgICAgIGV4cGVjdENvbnRhaW5tZW50KCJbOkdyZWVrOl0iLCBDaGFyc1RvVW5pY29kZVN0cmluZygiXFx1MDM5MVxcdTAzQjEiKSwgImFBIik7CisgICAgICAgIAorICAgICAgICAvKiBKaXR0ZXJidWcgMTQyMyAqLworICAgICAgICBleHBlY3RDb250YWlubWVudCgiW1s6Q29tbW9uOl1bOkluaGVyaXRlZDpdXSIsIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJcXFUwMDAwMzA5OVxcVTAwMDFEMTY5XFx1MDAwMCIpLCAiYUEiKTsKKworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoZSBbOkxhdGluOl0gc3ludGF4LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RQcm9wZXJ0eVNldCgpIHsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIFBhdHRlcm4sIENoYXJzIElOLCBDaGFycyBOT1QgaW4KKworICAgICAgICAgICAgIls6TGF0aW46XSIsCisgICAgICAgICAgICAiYUEiLAorICAgICAgICAgICAgIlx1MDM5MVx1MDNCMSIsCisKKyAgICAgICAgICAgICJbXFxwe0dyZWVrfV0iLAorICAgICAgICAgICAgIlx1MDM5MVx1MDNCMSIsCisgICAgICAgICAgICAiYUEiLAorCisgICAgICAgICAgICAiXFxQeyBHRU5FUkFMIENhdGVnb3J5ID0gdXBwZXIgY2FzZSBsZXR0ZXIgfSIsCisgICAgICAgICAgICAiYWJjIiwKKyAgICAgICAgICAgICJBQkMiLAorCisgICAgICAgICAgICAvLyBDb21iaW5pbmcgY2xhc3M6IEBzaW5jZSBJQ1UgMi4yCisgICAgICAgICAgICAvLyBDaGVjayBib3RoIHN5bWJvbGljIGFuZCBudW1lcmljCisgICAgICAgICAgICAiXFxwe2NjYz1OdWt0YX0iLAorICAgICAgICAgICAgIlx1MEFCQyIsCisgICAgICAgICAgICAiYWJjIiwKKworICAgICAgICAgICAgIlxccHtDYW5vbmljYWwgQ29tYmluaW5nIENsYXNzID0gMTF9IiwKKyAgICAgICAgICAgICJcdTA1QjEiLAorICAgICAgICAgICAgIlx1MDVCMiIsCisKKyAgICAgICAgICAgICJbOmMgYyBjID0gaW90YSBzdWJzY3JpcHQgOl0iLAorICAgICAgICAgICAgIlx1MDM0NSIsCisgICAgICAgICAgICAieHl6IiwKKworICAgICAgICAgICAgLy8gQmlkaSBjbGFzczogQHNpbmNlIElDVSAyLjIKKyAgICAgICAgICAgICJcXHB7YmlkaWNsYXNzPWxlZnR0b3JpZ2h0fSIsCisgICAgICAgICAgICAiYWJjIiwKKyAgICAgICAgICAgICJcdTA2NzFcdTA2NzIiLAorCisgICAgICAgICAgICAvLyBCaW5hcnkgcHJvcGVydGllczogQHNpbmNlIElDVSAyLjIKKyAgICAgICAgICAgICJcXHB7aWRlb2dyYXBoaWN9IiwKKyAgICAgICAgICAgICJcdTRFMEEiLAorICAgICAgICAgICAgIngiLAorCisgICAgICAgICAgICAiWzptYXRoPWZhbHNlOl0iLAorICAgICAgICAgICAgInEpKigiLCAvLyApKGFuZCAqIHdlcmUgcmVtb3ZlZCBmcm9tIG1hdGggaW4gVW5pY29kZSA0LjAuMQorICAgICAgICAgICAgIis8Pl4iLAorCisgICAgICAgICAgICAvLyBKQiMxNzY3IFxOe30sIFxwe0FTQ0lJfQorICAgICAgICAgICAgIls6QXNjaWk6XSIsCisgICAgICAgICAgICAiYWJjXHUwMDAwXHUwMDdGIiwKKyAgICAgICAgICAgICJcdTAwODBcdTRFMDAiLAorCisgICAgICAgICAgICAiW1xcTnsgbGF0aW4gc21hbGwgbGV0dGVyICBhICB9WzpuYW1lPSBsYXRpbiBzbWFsbCBsZXR0ZXIgejpdXSIsCisgICAgICAgICAgICAiYXoiLAorICAgICAgICAgICAgInFycyIsCisKKyAgICAgICAgICAgIC8vIEpCIzIwMTUKKyAgICAgICAgICAgICJbOmFueTpdIiwKKyAgICAgICAgICAgICJhXFxVMDAxMEZGRkYiLAorICAgICAgICAgICAgIiIsCisgICAgICAgICAgICAKKyAgICAgICAgICAgICJbOm52PTAuNTpdIiwKKyAgICAgICAgICAgICJcdTAwQkRcdTBGMkEiLAorICAgICAgICAgICAgIlx1MDBCQyIsCisKKyAgICAgICAgICAgIC8vIEpCIzI2NTM6IEFnZQorICAgICAgICAgICAgIls6QWdlPTEuMTpdIiwKKyAgICAgICAgICAgICJcdTAzRDYiLCAvLyAxLjEKKyAgICAgICAgICAgICJcdTAzRDhcdTAzRDkiLCAvLyAzLjIKKworICAgICAgICAgICAgIls6QWdlPTMuMTpdIiwgCisgICAgICAgICAgICAiXFx1MTgwMFxcdTM0MDBcXFUwMDAyZjgwMCIsIAorICAgICAgICAgICAgIlxcdTAyMjBcXHUwMzRmXFx1MzBmZlxcdTMzZmZcXHVmZTczXFxVMDAwMTAwMDBcXFUwMDA1MDAwMCIsIAorCisgICAgICAgICAgICAvLyBKQiMyMzUwOiBDYXNlX1NlbnNpdGl2ZQorICAgICAgICAgICAgIls6Q2FzZSBTZW5zaXRpdmU6XSIsCisgICAgICAgICAgICAiQVx1MUZGQ1xcVTAwMDEwNDEwIiwKKyAgICAgICAgICAgICI7XHUwMEI0XFxVMDAwMTA1MDAiLAorCisKKyAgICAgICAgICAgIC8vIFJlZ2V4IGNvbXBhdGliaWxpdHkgdGVzdAorICAgICAgICAgICAgIlstYl0iLCAvLyBsZWFkaW5nICctJyBpcyBsaXRlcmFsCisgICAgICAgICAgICAiLWIiLAorICAgICAgICAgICAgImFjIiwKKyAgICAgICAgICAgIAorICAgICAgICAgICAgIlteLWJdIiwgLy8gbGVhZGluZyAnLScgaXMgbGl0ZXJhbAorICAgICAgICAgICAgImFjIiwKKyAgICAgICAgICAgICItYiIsCisgICAgICAgICAgICAKKyAgICAgICAgICAgICJbYi1dIiwgLy8gdHJhaWxpbmcgJy0nIGlzIGxpdGVyYWwKKyAgICAgICAgICAgICItYiIsCisgICAgICAgICAgICAiYWMiLAorICAgICAgICAgICAgCisgICAgICAgICAgICAiW15iLV0iLCAvLyB0cmFpbGluZyAnLScgaXMgbGl0ZXJhbAorICAgICAgICAgICAgImFjIiwKKyAgICAgICAgICAgICItYiIsCisKKyAgICAgICAgICAgICJbYS1iLV0iLCAvLyB0cmFpbGluZyAnLScgaXMgbGl0ZXJhbAorICAgICAgICAgICAgImFiLSIsCisgICAgICAgICAgICAiYz0iLAorCisgICAgICAgICAgICAiW1thLXFdJltwLXpdLV0iLCAvLyB0cmFpbGluZyAnLScgaXMgbGl0ZXJhbAorICAgICAgICAgICAgInBxLSIsCisgICAgICAgICAgICAib3I9IiwKKworICAgICAgICAgICAgIltcXHN8XFwpfDp8JHxcXD5dIiwgLy8gZnJvbSByZWdleCB0ZXN0cworICAgICAgICAgICAgInN8KTokPiIsCisgICAgICAgICAgICAiXFxhYmMiLAorCisgICAgICAgICAgICAiW1x1REMwMGNkXSIsIC8vIEpCIzI5MDY6IGlzb2xhdGVkIHRyYWlsIGF0IHN0YXJ0CisgICAgICAgICAgICAiY2RcdURDMDAiLAorICAgICAgICAgICAgImFiXHVEODAwXFxVMDAwMTAwMDAiLAorCisgICAgICAgICAgICAiW2FiXHVEODAwXSIsIC8vIEpCIzI5MDY6IGlzb2xhdGVkIHRyYWlsIGF0IHN0YXJ0CisgICAgICAgICAgICAiYWJcdUQ4MDAiLAorICAgICAgICAgICAgImNkXHVEQzAwXFxVMDAwMTAwMDAiLAorCisgICAgICAgICAgICAiW2FiXHVEODAwY2RdIiwgLy8gSkIjMjkwNjogaXNvbGF0ZWQgbGVhZCBpbiBtaWRkbGUKKyAgICAgICAgICAgICJhYmNkXHVEODAwIiwKKyAgICAgICAgICAgICJlZlx1REMwMFxcVTAwMDEwMDAwIiwKKworICAgICAgICAgICAgIlthYlx1REMwMGNkXSIsIC8vIEpCIzI5MDY6IGlzb2xhdGVkIHRyYWlsIGluIG1pZGRsZQorICAgICAgICAgICAgImFiY2RcdURDMDAiLAorICAgICAgICAgICAgImVmXHVEODAwXFxVMDAwMTAwMDAiLAorICAgICAgICAgICAgCisgICAgICAgICAgICAiWzpebGNjYz0wOl0iLCAvLyBMZWFkIGNhbm9uaWNhbCBjbGFzcworICAgICAgICAgICAgIlx1MDMwMFx1MDMwMSIsCisgICAgICAgICAgICAiYWJjZFx1MDBjMFx1MDBjNSIsCisKKyAgICAgICAgICAgICJbOl50Y2NjPTA6XSIsIC8vIFRyYWlsIGNhbm9uaWNhbCBjbGFzcworICAgICAgICAgICAgIlx1MDMwMFx1MDMwMVx1MDBjMFx1MDBjNSIsCisgICAgICAgICAgICAiYWJjZCIsCisKKyAgICAgICAgICAgICJbWzpebGNjYz0wOl1bOl50Y2NjPTA6XV0iLCAvLyBMZWFkIGFuZCB0cmFpbCBjYW5vbmljYWwgY2xhc3MKKyAgICAgICAgICAgICJcdTAzMDBcdTAzMDFcdTAwYzBcdTAwYzUiLAorICAgICAgICAgICAgImFiY2QiLAorCisgICAgICAgICAgICAiW1s6XmxjY2M9MDpdLVs6XnRjY2M9MDpdXSIsIC8vIFN0dWZmIHRoYXQgc3RhcnRzIHdpdGggYW4gYWNjZW50IGJ1dCBlbmRzIHdpdGggYSBiYXNlIChub25lIHJpZ2h0IG5vdykKKyAgICAgICAgICAgICIiLAorICAgICAgICAgICAgImFiY2RcdTAzMDBcdTAzMDFcdTAwYzBcdTAwYzUiLAorICAgICAgICAgICAgCisgICAgICAgICAgICAiW1s6Y2NjPTA6XS1bOmxjY2M9MDpdLVs6dGNjYz0wOl1dIiwgLy8gV2VpcmRvcy4gQ29tcGxldGUgY2Fub25pY2FsIGNsYXNzIGlzIHplcm8sIGJ1dCBib3RoIGxlYWQgYW5kIHRyYWlsIGFyZSBub3QKKyAgICAgICAgICAgICJcdTBGNzNcdTBGNzVcdTBGODEiLAorICAgICAgICAgICAgImFiY2RcdTAzMDBcdTAzMDFcdTAwYzBcdTAwYzUiLAorCisgICAgICAgICAgICAiWzpBc3NpZ25lZDpdIiwKKyAgICAgICAgICAgICJBXFx1RTAwMFxcdUY4RkZcXHVGREM3XFxVMDAwMTAwMDBcXFUwMDEwRkZGRCIsCisgICAgICAgICAgICAiXFx1MDg4OFxcdUZERDNcXHVGRkZFXFxVMDAwNTAwMDUiLAorICAgICAgICAgICAgCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyBpKz0zKSB7ICAKKyAgICAgICAgICAgIGV4cGVjdENvbnRhaW5tZW50KERBVEFbaV0sIERBVEFbaSsxXSwgREFUQVtpKzJdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VW5pY29kZVNldFN0cmluZ3MoKSB7CisJCVVuaWNvZGVTZXQgdXNldCA9IG5ldyBVbmljb2RlU2V0KCJbYXtiY317Y2R9cHFyXHUwMDAwXSIpOworCQlsb2dsbih1c2V0ICsgIiB+ICIgKyB1c2V0LmdldFJlZ2V4RXF1aXZhbGVudCgpKTsKKwkJU3RyaW5nW11bXSB0ZXN0U3RyaW5ncyA9IHt7IngiLCAibm9uZSJ9LAorCQkJCXsiYmMiLCAiYWxsIn0sCisJCQkJeyJjZGJjYSIsICJhbGwifSwKKwkJCQl7ImEiLCAiYWxsIn0sCisJCQkJeyJiY3giLCAic29tZSJ9LAorCQkJCXsiYWIiLCAic29tZSJ9LAorCQkJCXsiYWNiIiwgInNvbWUifSwKKwkJCQl7ImJjZGEiLCAic29tZSJ9LAorCQkJCXsiZGNjYngiLCAibm9uZSJ9LAorCQkJfTsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0U3RyaW5ncy5sZW5ndGg7ICsraSkgeworCQkJY2hlY2sodXNldCwgdGVzdFN0cmluZ3NbaV1bMF0sIHRlc3RTdHJpbmdzW2ldWzFdKTsKKwkJfQorCX0KKworICAgIAorCXByaXZhdGUgdm9pZCBjaGVjayhVbmljb2RlU2V0IHVzZXQsIFN0cmluZyBzdHJpbmcsIFN0cmluZyBkZXNpcmVkU3RhdHVzKSB7CisJCWJvb2xlYW4gc2hvdWxkQ29udGFpbkFsbCA9IGRlc2lyZWRTdGF0dXMuZXF1YWxzKCJhbGwiKTsKKwkJYm9vbGVhbiBzaG91bGRDb250YWluTm9uZSA9IGRlc2lyZWRTdGF0dXMuZXF1YWxzKCJub25lIik7CisJICAgIGlmICh1c2V0LmNvbnRhaW5zQWxsKHN0cmluZykgIT0gc2hvdWxkQ29udGFpbkFsbCkgeworCSAgICAJZXJybG4oImNvbnRhaW5zQWxsICIgKyAgc3RyaW5nICsgIiBzaG91bGQgYmUgIiArIHNob3VsZENvbnRhaW5BbGwpOworCSAgICB9IGVsc2UgeworCSAgICAJbG9nbG4oImNvbnRhaW5zQWxsICIgKyAgc3RyaW5nICsgIiA9ICIgKyBzaG91bGRDb250YWluQWxsKTsKKwkgICAgfQorCSAgICBpZiAodXNldC5jb250YWluc05vbmUoc3RyaW5nKSAhPSBzaG91bGRDb250YWluTm9uZSkgeworCSAgICAJZXJybG4oImNvbnRhaW5zTm9uZSAiICsgIHN0cmluZyArICIgc2hvdWxkIGJlICIgKyBzaG91bGRDb250YWluTm9uZSk7CisJICAgIH0gZWxzZSB7CisJICAgIAlsb2dsbigiY29udGFpbnNOb25lICIgKyAgc3RyaW5nICsgIiA9ICIgKyBzaG91bGRDb250YWluTm9uZSk7CSAgICAJCisJICAgIH0KKwl9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGNsb25pbmcgb2YgVW5pY29kZVNldAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDbG9uZSgpIHsKKyAgICAgICAgVW5pY29kZVNldCBzID0gbmV3IFVuaWNvZGVTZXQoIlthYmN4eXpdIik7CisgICAgICAgIFVuaWNvZGVTZXQgdCA9IChVbmljb2RlU2V0KSBzLmNsb25lKCk7CisgICAgICAgIGV4cGVjdENvbnRhaW5tZW50KHQsICJhYmMiLCAiZGVmIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB0aGUgaW5kZXhPZigpIGFuZCBjaGFyQXQoKSBtZXRob2RzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RJbmRleE9mKCkgeworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCJbYS1jeC15MzU3OF0iKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNldC5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaW50IGMgPSBzZXQuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKHNldC5pbmRleE9mKGMpICE9IGkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogY2hhckF0KCIgKyBpICsgIikgPSAiICsgYyArCisgICAgICAgICAgICAgICAgICAgICAgIiA9PiBpbmRleE9mKCkgPT4gIiArIHNldC5pbmRleE9mKGMpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnQgYyA9IHNldC5jaGFyQXQoc2V0LnNpemUoKSk7CisgICAgICAgIGlmIChjICE9IC0xKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY2hhckF0KDxvdXQgb2YgcmFuZ2U+KSA9ICIgKworICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoU3RyaW5nLnZhbHVlT2YoYykpKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgaiA9IHNldC5pbmRleE9mKCdxJyk7CisgICAgICAgIGlmIChqICE9IC0xKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogaW5kZXhPZigncScpID0gIiArIGopOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvbnRhaW5zU3RyaW5nKCkgeworICAgICAgICBVbmljb2RlU2V0IHggPSBuZXcgVW5pY29kZVNldCgiW2F7YmN9XSIpOworICAgICAgICBpZiAoeC5jb250YWlucygiYWJjIikpIGVycmxuKCJGQUlMIik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RFeGhhdXN0aXZlKCkgeworICAgICAgICAvLyBleGhhdXN0aXZlIHRlc3RzLiBTaW11bGF0ZSBVbmljb2RlU2V0cyB3aXRoIGludGVnZXJzLgorICAgICAgICAvLyBUaGF0IGdpdmVzIHVzIHZlcnkgc29saWQgdGVzdHMgKGV4Y2VwdCBmb3IgbGFyZ2UgbWVtb3J5IHRlc3RzKS4KKworICAgICAgICBjaGFyIGxpbWl0ID0gKGNoYXIpMTI4OworCisgICAgICAgIGZvciAoY2hhciBpID0gMDsgaSA8IGxpbWl0OyArK2kpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nICIgKyBpICsgIiwgIiArIGJpdHNUb1NldChpKSk7CisgICAgICAgICAgICBfdGVzdENvbXBsZW1lbnQoaSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEFTIExPTkcgQVMgV0UgQVJFIEhFUkUsIGNoZWNrIHJvdW5kdHJpcAorICAgICAgICAgICAgY2hlY2tSb3VuZFRyaXAoYml0c1RvU2V0KGkpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChjaGFyIGogPSAwOyBqIDwgbGltaXQ7ICsraikgeworICAgICAgICAgICAgICAgIF90ZXN0QWRkKGksaik7CisgICAgICAgICAgICAgICAgX3Rlc3RYb3IoaSxqKTsKKyAgICAgICAgICAgICAgICBfdGVzdFJldGFpbihpLGopOworICAgICAgICAgICAgICAgIF90ZXN0UmVtb3ZlKGksaik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTWFrZSBzdXJlIGVhY2ggc2NyaXB0IG5hbWUgYW5kIGFiYnJldmlhdGVkIG5hbWUgY2FuIGJlIHVzZWQKKyAgICAgKiB0byBjb25zdHJ1Y3QgYSBVbmljb2RlU2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RTY3JpcHROYW1lcygpIHsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPFVTY3JpcHQuQ09ERV9MSU1JVDsgKytpKSB7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8MjsgKytqKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhdCA9ICIiOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0KKyAgICAgICAgICAgICAgICAgICAgICAgIChqPT0wKSA/IFVTY3JpcHQuZ2V0TmFtZShpKSA6IFVTY3JpcHQuZ2V0U2hvcnROYW1lKGkpOworICAgICAgICAgICAgICAgICAgICBwYXQgPSAiWzoiICsgbmFtZSArICI6XSI7CisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQocGF0KTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgcGF0KTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAocGF0Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIChpbiBVU2NyaXB0KTogTm8gbmFtZSBmb3Igc2NyaXB0ICIgKyBpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb3VsZG4ndCBjcmVhdGUgIiArIHBhdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGNsb3N1cmUgQVBJLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDbG9zZU92ZXIoKSB7CisgICAgICAgIFN0cmluZyBDQVNFID0gU3RyaW5nLnZhbHVlT2YoVW5pY29kZVNldC5DQVNFKTsKKyAgICAgICAgU3RyaW5nW10gREFUQSA9IHsKKyAgICAgICAgICAgIC8vIHNlbGVjdG9yLCBpbnB1dCwgb3V0cHV0CisgICAgICAgICAgICBDQVNFLAorICAgICAgICAgICAgIlthcVx1MDBERntCY317YkN9e0ZpfV0iLAorICAgICAgICAgICAgIlthQXFRXHUwMERGXHVGQjAxe3NzfXtiY317Zml9XSIsCisKKyAgICAgICAgICAgIENBU0UsCisgICAgICAgICAgICAiW1x1MDFGMV0iLCAvLyAnRFonCisgICAgICAgICAgICAiW1x1MDFGMVx1MDFGMlx1MDFGM10iLAorCisgICAgICAgICAgICBDQVNFLAorICAgICAgICAgICAgIltcdTFGQjRdIiwKKyAgICAgICAgICAgICJbXHUxRkI0e1x1MDNBQ1x1MDNCOX1dIiwKKworICAgICAgICAgICAgQ0FTRSwKKyAgICAgICAgICAgICJbe0ZcdUZCMDF9XSIsCisgICAgICAgICAgICAiW1x1RkIwM3tmZml9XSIsICAgICAgICAgICAgCisKKyAgICAgICAgICAgIENBU0UsCisgICAgICAgICAgICAiW2Etel0iLCJbQS1aYS16XHUwMTdGXHUyMTJBXSIsCisgICAgICAgICAgICBDQVNFLAorICAgICAgICAgICAgIlthYmNdIiwiW0EtQ2EtY10iLAorICAgICAgICAgICAgQ0FTRSwKKyAgICAgICAgICAgICJbQUJDXSIsIltBLUNhLWNdIiwKKyAgICAgICAgfTsKKworICAgICAgICBVbmljb2RlU2V0IHMgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBVbmljb2RlU2V0IHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8REFUQS5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgIGludCBzZWxlY3RvciA9IEludGVnZXIucGFyc2VJbnQoREFUQVtpXSk7CisgICAgICAgICAgICBTdHJpbmcgcGF0ID0gREFUQVtpKzFdOworICAgICAgICAgICAgU3RyaW5nIGV4cCA9IERBVEFbaSsyXTsKKyAgICAgICAgICAgIHMuYXBwbHlQYXR0ZXJuKHBhdCk7CisgICAgICAgICAgICBzLmNsb3NlT3ZlcihzZWxlY3Rvcik7CisgICAgICAgICAgICB0LmFwcGx5UGF0dGVybihleHApOworICAgICAgICAgICAgaWYgKHMuZXF1YWxzKHQpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgcGF0ICsgIi5jbG9zZU92ZXIoIiArIHNlbGVjdG9yICsgIikgPT4gIiArIGV4cCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgcGF0ICsgIi5jbG9zZU92ZXIoIiArIHNlbGVjdG9yICsgIikgPT4gIiArCisgICAgICAgICAgICAgICAgICAgICAgcy50b1BhdHRlcm4odHJ1ZSkgKyAiLCBleHBlY3RlZCAiICsgZXhwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRlc3QgdGhlIHBhdHRlcm4gQVBJCisgICAgICAgIHMuYXBwbHlQYXR0ZXJuKCJbYWJjXSIsIFVuaWNvZGVTZXQuQ0FTRSk7CisgICAgICAgIGV4cGVjdENvbnRhaW5tZW50KHMsICJhYmNBQkMiLCAiZGVmREVGIik7CisgICAgICAgIHMgPSBuZXcgVW5pY29kZVNldCgiW15hYmNdIiwgVW5pY29kZVNldC5DQVNFKTsKKyAgICAgICAgZXhwZWN0Q29udGFpbm1lbnQocywgImRlZkRFRiIsICJhYmNBQkMiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RXNjYXBlUGF0dGVybigpIHsKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBwYXR0ZXJuIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgcmFuZ2UgImMtZCIKKyAgICAgICAgLy8gZm9yIHdoaWNoIGlzUnVsZVdoaXRlU3BhY2UoYykgb3IgaXNSdWxlV2hpdGVTcGFjZShkKSBpcyB0cnVlLgorICAgICAgICBTdHJpbmcgcGF0dGVybiA9CisgICAgICAgICAgICAiW1xcdUZFRkYgXFx1MjAwRS1cXHUyMEZGIFxcdUZGRjktXFx1RkZGQyBcXFUwMDAxRDE3My1cXFUwMDAxRDE3QSBcXFUwMDBGMDAwMC1cXFUwMDBGRkZGRCBdIjsKKyAgICAgICAgU3RyaW5nIGV4cCA9CisgICAgICAgICAgICAiW1xcdTIwMEUtXFx1MjBGRlxcdUZFRkZcXHVGRkY5LVxcdUZGRkNcXFUwMDAxRDE3My1cXFUwMDAxRDE3QVxcVTAwMEYwMDAwLVxcVTAwMEZGRkZEXSI7CisgICAgICAgIC8vIFdlIHRlc3QgdGhpcyB3aXRoIHR3byBwYXNzZXM7IGluIHRoZSBzZWNvbmQgcGFzcyB3ZQorICAgICAgICAvLyBwcmUtdW5lc2NhcGUgdGhlIHBhdHRlcm4uICBTaW5jZSBVKzIwMEUgaXMgcnVsZSB3aGl0ZXNwYWNlLAorICAgICAgICAvLyB0aGlzIGZhaWxzIC0tIHdoaWNoIGlzIHdoYXQgd2UgZXhwZWN0LgorICAgICAgICBmb3IgKGludCBwYXNzPTE7IHBhc3M8PTI7ICsrcGFzcykgeworICAgICAgICAgICAgU3RyaW5nIHBhdCA9IHBhdHRlcm47CisgICAgICAgICAgICBpZiAocGFzcz09MikgeworICAgICAgICAgICAgICAgIHBhdCA9IFV0aWxpdHkudW5lc2NhcGUocGF0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFBhdHRlcm4gaXMgb25seSBnb29kIGZvciBwYXNzIDEKKyAgICAgICAgICAgIGJvb2xlYW4gaXNQYXR0ZXJuVmFsaWQgPSAocGFzcz09MSk7CisKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbnVsbDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgc2V0ID0gbmV3IFVuaWNvZGVTZXQocGF0KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgc2V0ID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoc2V0ICE9IG51bGwpICE9IGlzUGF0dGVyblZhbGlkKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogYXBwbHlQYXR0ZXJuKCIgKworICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKHBhdCkgKyAiKSA9PiAiICsgc2V0KTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzZXQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNldC5jb250YWlucygoY2hhcikweDA2NDQpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIFV0aWxpdHkuZXNjYXBlKHBhdCkgKyAiIGNvbnRhaW5zKFUrMDY2NCkiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIG5ld3BhdCA9IHNldC50b1BhdHRlcm4odHJ1ZSk7CisgICAgICAgICAgICBpZiAobmV3cGF0LmVxdWFscyhleHApKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oVXRpbGl0eS5lc2NhcGUocGF0KSArICIgPT4gIiArIG5ld3BhdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiAiICsgVXRpbGl0eS5lc2NhcGUocGF0KSArICIgPT4gIiArIG5ld3BhdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxzZXQuZ2V0UmFuZ2VDb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc3RyID0gbmV3IFN0cmluZ0J1ZmZlcigiUmFuZ2UgIik7CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgoY2hhcikoMHgzMCArIGkpKQorICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCI6ICIpOworICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChzdHIsIHNldC5nZXRSYW5nZVN0YXJ0KGkpKTsKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCIgLSAiKTsKKyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoc3RyLCBzZXQuZ2V0UmFuZ2VFbmQoaSkpOworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gVXRpbGl0eS5lc2NhcGUoc3RyLnRvU3RyaW5nKCkgKyAiICgiICsgc2V0LmdldFJhbmdlU3RhcnQoaSkgKyAiIC0gIiArCisgICAgICAgICAgICAgICAgICAgIHNldC5nZXRSYW5nZUVuZChpKSArICIpIik7CisgICAgICAgICAgICAgICAgaWYgKHNldC5nZXRSYW5nZVN0YXJ0KGkpIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIHMpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKHMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTeW1ib2xUYWJsZSgpIHsKKyAgICAgICAgLy8gTXVsdGlwbGUgdGVzdCBjYXNlcyBjYW4gYmUgc2V0IHVwIGhlcmUuICBFYWNoIHRlc3QgY2FzZQorICAgICAgICAvLyBpcyB0ZXJtaW5hdGVkIGJ5IG51bGw6CisgICAgICAgIC8vIHZhciwgdmFsdWUsIHZhciwgdmFsdWUsLi4uLCBpbnB1dCBwYXQuLCBleHAuIG91dHB1dCBwYXQuLCBudWxsCisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAidXMiLCAiYS16IiwgIlswLTEkdXNdIiwgIlswLTFhLXpdIiwgbnVsbCwKKyAgICAgICAgICAgICJ1cyIsICJbYS16XSIsICJbMC0xJHVzXSIsICJbMC0xW2Etel1dIiwgbnVsbCwKKyAgICAgICAgICAgICJ1cyIsICJcXFthXFwtelxcXSIsICJbMC0xJHVzXSIsICJbLTAxXFxbXFxdYXpdIiwgbnVsbAorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxEQVRBLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBUb2tlblN5bWJvbFRhYmxlIHN5bSA9IG5ldyBUb2tlblN5bWJvbFRhYmxlKCk7CisKKyAgICAgICAgICAgIC8vIFNldCB1cCB2YXJpYWJsZXMKKyAgICAgICAgICAgIHdoaWxlIChEQVRBW2krMl0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN5bS5hZGQoREFUQVtpXSwgREFUQVtpKzFdKTsKKyAgICAgICAgICAgICAgICBpICs9IDI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIElucHV0IHBhdHRlcm4gYW5kIGV4cGVjdGVkIG91dHB1dCBwYXR0ZXJuCisgICAgICAgICAgICBTdHJpbmcgaW5wYXQgPSBEQVRBW2ldLCBleHBwYXQgPSBEQVRBW2krMV07CisgICAgICAgICAgICBpICs9IDI7CisKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICBVbmljb2RlU2V0IHVzID0gbmV3IFVuaWNvZGVTZXQoaW5wYXQsIHBvcywgc3ltKTsKKworICAgICAgICAgICAgLy8gcmVzdWx0cworICAgICAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpICE9IGlucGF0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byByZWFkIHRvIGVuZCBvZiBzdHJpbmcgXCIiCisgICAgICAgICAgICAgICAgICAgICAgKyBpbnBhdCArICJcIjogcmVhZCB0byAiCisgICAgICAgICAgICAgICAgICAgICAgKyBwb3MuZ2V0SW5kZXgoKSArICIsIGxlbmd0aCBpcyAiCisgICAgICAgICAgICAgICAgICAgICAgKyBpbnBhdC5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgdXMyID0gbmV3IFVuaWNvZGVTZXQoZXhwcGF0KTsKKyAgICAgICAgICAgIGlmICghdXMuZXF1YWxzKHVzMikpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkLCBnb3QgIiArIHVzICsgIiwgZXhwZWN0ZWQgIiArIHVzMik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPaywgZ290ICIgKyB1cyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vY292ZXIgVW5pY29kZShTdHJpbmcsUGFyc2VQb3NpdGlvbixTeW1ib2xUYWJsZSxpbnQpCisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIGlucG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICBVbmljb2RlU2V0IGluU2V0ID0gbmV3IFVuaWNvZGVTZXQoaW5wYXQsIGlucG9zLCBzeW0sIFVuaWNvZGVTZXQuSUdOT1JFX1NQQUNFKTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgZXhwU2V0ID0gbmV3IFVuaWNvZGVTZXQoZXhwcGF0KTsKKyAgICAgICAgICAgIGlmICghaW5TZXQuZXF1YWxzKGV4cFNldCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogRmFpbGVkLCBnb3QgIiArIGluU2V0ICsgIiwgZXhwZWN0ZWQgIiArIGV4cFNldCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogZ290ICIgKyBpblNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgICogVGVzdCB0aGF0IFBvc2l4IHN0eWxlIGNoYXJhY3RlciBjbGFzc2VzIFs6ZGlnaXQ6XSwgZXRjLgorICAgICAgKiAgIGhhdmUgdGhlIFVuaWNvZGUgZGVmaW5pdGlvbnMgZnJvbSBUUiAxOC4KKyAgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdFBvc2l4Q2xhc3NlcygpIHsKKyAgICAgICAgZXhwZWN0RXF1YWwoIlBPU0lYIGFscGhhIiwgIls6YWxwaGE6XSIsICJcXHB7QWxwaGFiZXRpY30iKTsKKyAgICAgICAgZXhwZWN0RXF1YWwoIlBPU0lYIGxvd2VyIiwgIls6bG93ZXI6XSIsICJcXHB7bG93ZXJjYXNlfSIpOworICAgICAgICBleHBlY3RFcXVhbCgiUE9TSVggdXBwZXIiLCAiWzp1cHBlcjpdIiwgIlxccHtVcHBlcmNhc2V9Iik7CisgICAgICAgIGV4cGVjdEVxdWFsKCJQT1NJWCBwdW5jdCIsICJbOnB1bmN0Ol0iLCAiXFxwe2djPVB1bmN0dWF0aW9ufSIpOworICAgICAgICBleHBlY3RFcXVhbCgiUE9TSVggZGlnaXQiLCAiWzpkaWdpdDpdIiwgIlxccHtnYz1EZWNpbWFsTnVtYmVyfSIpOworICAgICAgICBleHBlY3RFcXVhbCgiUE9TSVggeGRpZ2l0IiwgIls6eGRpZ2l0Ol0iLCAiW1xccHtEZWNpbWFsTnVtYmVyfVxccHtIZXhEaWdpdH1dIik7CisgICAgICAgIGV4cGVjdEVxdWFsKCJQT1NJWCBhbG51bSIsICJbOmFsbnVtOl0iLCAiW1xccHtBbHBoYWJldGljfVxccHtEZWNpbWFsTnVtYmVyfV0iKTsKKyAgICAgICAgZXhwZWN0RXF1YWwoIlBPU0lYIHNwYWNlIiwgIls6c3BhY2U6XSIsICJcXHB7V2hpdGVzcGFjZX0iKTsKKyAgICAgICAgZXhwZWN0RXF1YWwoIlBPU0lYIGJsYW5rIiwgIls6Ymxhbms6XSIsICJbXFxwe1doaXRlc3BhY2V9LVtcXHUwMDBhXFx1MDAwQlxcdTAwMGNcXHUwMDBkXFx1MDA4NVxccHtMaW5lU2VwYXJhdG9yfVxccHtQYXJhZ3JhcGhTZXBhcmF0b3J9XV0iKTsKKyAgICAgICAgZXhwZWN0RXF1YWwoIlBPU0lYIGNudHJsIiwgIls6Y250cmw6XSIsICJcXHB7Q29udHJvbH0iKTsKKyAgICAgICAgZXhwZWN0RXF1YWwoIlBPU0lYIGdyYXBoIiwgIls6Z3JhcGg6XSIsICJbXlxccHtXaGl0ZXNwYWNlfVxccHtDb250cm9sfVxccHtTdXJyb2dhdGV9XFxwe1VuYXNzaWduZWR9XSIpOworICAgICAgICBleHBlY3RFcXVhbCgiUE9TSVggcHJpbnQiLCAiWzpwcmludDpdIiwgIltbOmdyYXBoOl1bOmJsYW5rOl0tW1xccHtDb250cm9sfV1dIik7CisgICAgfQorCisgICAgcHVibGljIGNsYXNzIFRva2VuU3ltYm9sVGFibGUgaW1wbGVtZW50cyBTeW1ib2xUYWJsZSB7CisgICAgICAgIEhhc2hNYXAgY29udGVudHMgPSBuZXcgSGFzaE1hcCgpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiAoTm9uLVN5bWJvbFRhYmxlIEFQSSkgQWRkIHRoZSBnaXZlbiB2YXJpYWJsZSBhbmQgdmFsdWUgdG8KKyAgICAgICAgICogdGhlIHRhYmxlLiAgVmFyaWFibGUgc2hvdWxkIE5PVCBjb250YWluIGxlYWRpbmcgJyQnLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgYWRkKFN0cmluZyB2YXIsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyW3ZhbHVlLmxlbmd0aCgpXTsKKyAgICAgICAgICAgIHZhbHVlLmdldENoYXJzKDAsIHZhbHVlLmxlbmd0aCgpLCBidWZmZXIsIDApOworICAgICAgICAgICAgYWRkKHZhciwgYnVmZmVyKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiAoTm9uLVN5bWJvbFRhYmxlIEFQSSkgQWRkIHRoZSBnaXZlbiB2YXJpYWJsZSBhbmQgdmFsdWUgdG8KKyAgICAgICAgICogdGhlIHRhYmxlLiAgVmFyaWFibGUgc2hvdWxkIE5PVCBjb250YWluIGxlYWRpbmcgJyQnLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgYWRkKFN0cmluZyB2YXIsIGNoYXJbXSBib2R5KSB7CisgICAgICAgICAgICBsb2dsbigiVG9rZW5TeW1ib2xUYWJsZTogYWRkIFwiIiArIHZhciArICJcIiA9PiBcIiIgKworICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZyhib2R5KSArICJcIiIpOworICAgICAgICAgICAgY29udGVudHMucHV0KHZhciwgYm9keSk7CisgICAgICAgIH0KKworICAgICAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICAgICAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5TeW1ib2xUYWJsZSNsb29rdXAoamF2YS5sYW5nLlN0cmluZykKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBjaGFyW10gbG9va3VwKFN0cmluZyBzKSB7CisgICAgICAgICAgICBsb2dsbigiVG9rZW5TeW1ib2xUYWJsZTogbG9va3VwIFwiIiArIHMgKyAiXCIgPT4gXCIiICsKKyAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmcoKGNoYXJbXSkgY29udGVudHMuZ2V0KHMpKSArICJcIiIpOworICAgICAgICAgICAgcmV0dXJuIChjaGFyW10pY29udGVudHMuZ2V0KHMpOworICAgICAgICB9CisKKyAgICAgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuU3ltYm9sVGFibGUjbG9va3VwTWF0Y2hlcihpbnQpCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgVW5pY29kZU1hdGNoZXIgbG9va3VwTWF0Y2hlcihpbnQgY2gpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuU3ltYm9sVGFibGUjcGFyc2VSZWZlcmVuY2UoamF2YS5sYW5nLlN0cmluZywKKyAgICAgICAgIGphdmEudGV4dC5QYXJzZVBvc2l0aW9uLCBpbnQpCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgcGFyc2VSZWZlcmVuY2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcG9zLCBpbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCkgeworICAgICAgICAgICAgaW50IGNwOworICAgICAgICAgICAgaW50IHN0YXJ0ID0gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgbGltaXQ7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHRleHQsIGkpOworICAgICAgICAgICAgICAgIGlmICghY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KGNwKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiVG9rZW5TeW1ib2xUYWJsZTogcGFyc2UgXCIiICsgdGV4dCArICJcIiBmcm9tICIgKworICAgICAgICAgICAgICAgICAgc3RhcnQgKyAiIHRvICIgKyBpICsKKyAgICAgICAgICAgICAgICAgICIgPT4gXCIiICsgdGV4dC5zdWJzdHJpbmcoc3RhcnQsaSkgKyAiXCIiKTsKKyAgICAgICAgICAgIHBvcy5zZXRJbmRleChpKTsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhzdGFydCxpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RTdXJyb2dhdGUoKSB7CisgICAgICAgIFN0cmluZyBEQVRBW10gPSB7CisgICAgICAgICAgICAvLyBUaGVzZSBzaG91bGQgYWxsIGJlaGF2ZSBpZGVudGljYWxseQorICAgICAgICAgICAgIlthYmNcXHVEODAwXFx1REMwMF0iLAorICAgICAgICAgICAgIlthYmNcdUQ4MDBcdURDMDBdIiwKKyAgICAgICAgICAgICJbYWJjXFxVMDAwMTAwMDBdIiwKKyAgICAgICAgfTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPERBVEEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJUZXN0IHBhdHRlcm4gIiArIGkgKyAiIDoiICsgVXRpbGl0eS5lc2NhcGUoREFUQVtpXSkpOworICAgICAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldChEQVRBW2ldKTsKKyAgICAgICAgICAgIGV4cGVjdENvbnRhaW5tZW50KHNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJzVG9Vbmljb2RlU3RyaW5nKCJhYmNcXFUwMDAxMDAwMCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx1RDgwMDtcdURDMDAiKTsgLy8gc3BsaXQgYXBhcnQgc3Vycm9nYXRlLXBhaXIKKyAgICAgICAgICAgIGlmIChzZXQuc2l6ZSgpICE9IDQpIHsKKyAgICAgICAgICAgICAgICBlcnJsbihVdGlsaXR5LmVzY2FwZSgiRkFJTDogIiArIERBVEFbaV0gKyAiLnNpemUoKSA9PSAiICsgCisgICAgICAgICAgICAgICAgICAgICAgc2V0LnNpemUoKSArICIsIGV4cGVjdGVkIDQiKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIF90ZXN0Q29tcGxlbWVudChpbnQgYSkgeworICAgICAgICBVbmljb2RlU2V0IHggPSBiaXRzVG9TZXQoYSk7CisgICAgICAgIFVuaWNvZGVTZXQgeiA9IGJpdHNUb1NldChhKTsKKyAgICAgICAgei5jb21wbGVtZW50KCk7CisgICAgICAgIGludCBjID0gc2V0VG9CaXRzKHopOworICAgICAgICBpZiAoYyAhPSAofmEpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiBhZGQ6IH4iICsgeCArICAiICE9ICIgKyB6KTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMRUQ6IGFkZDogfiIgKyBhICsgIiAhPSAiICsgYyk7CisgICAgICAgIH0KKyAgICAgICAgY2hlY2tDYW5vbmljYWxSZXAoeiwgImNvbXBsZW1lbnQgIiArIGEpOworICAgIH0KKworICAgIHZvaWQgX3Rlc3RBZGQoaW50IGEsIGludCBiKSB7CisgICAgICAgIFVuaWNvZGVTZXQgeCA9IGJpdHNUb1NldChhKTsKKyAgICAgICAgVW5pY29kZVNldCB5ID0gYml0c1RvU2V0KGIpOworICAgICAgICBVbmljb2RlU2V0IHogPSBiaXRzVG9TZXQoYSk7CisgICAgICAgIHouYWRkQWxsKHkpOworICAgICAgICBpbnQgYyA9IHNldFRvQml0cyh6KTsKKyAgICAgICAgaWYgKGMgIT0gKGEgfCBiKSkgeworICAgICAgICAgICAgZXJybG4oVXRpbGl0eS5lc2NhcGUoIkZBSUxFRDogYWRkOiAiICsgeCArICIgfCAiICsgeSArICIgIT0gIiArIHopKTsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMRUQ6IGFkZDogIiArIGEgKyAiIHwgIiArIGIgKyAiICE9ICIgKyBjKTsKKyAgICAgICAgfQorICAgICAgICBjaGVja0Nhbm9uaWNhbFJlcCh6LCAiYWRkICIgKyBhICsgIiwiICsgYik7CisgICAgfQorCisgICAgdm9pZCBfdGVzdFJldGFpbihpbnQgYSwgaW50IGIpIHsKKyAgICAgICAgVW5pY29kZVNldCB4ID0gYml0c1RvU2V0KGEpOworICAgICAgICBVbmljb2RlU2V0IHkgPSBiaXRzVG9TZXQoYik7CisgICAgICAgIFVuaWNvZGVTZXQgeiA9IGJpdHNUb1NldChhKTsKKyAgICAgICAgei5yZXRhaW5BbGwoeSk7CisgICAgICAgIGludCBjID0gc2V0VG9CaXRzKHopOworICAgICAgICBpZiAoYyAhPSAoYSAmIGIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiByZXRhaW46ICIgKyB4ICsgIiAmICIgKyB5ICsgIiAhPSAiICsgeik7CisgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiByZXRhaW46ICIgKyBhICsgIiAmICIgKyBiICsgIiAhPSAiICsgYyk7CisgICAgICAgIH0KKyAgICAgICAgY2hlY2tDYW5vbmljYWxSZXAoeiwgInJldGFpbiAiICsgYSArICIsIiArIGIpOworICAgIH0KKworICAgIHZvaWQgX3Rlc3RSZW1vdmUoaW50IGEsIGludCBiKSB7CisgICAgICAgIFVuaWNvZGVTZXQgeCA9IGJpdHNUb1NldChhKTsKKyAgICAgICAgVW5pY29kZVNldCB5ID0gYml0c1RvU2V0KGIpOworICAgICAgICBVbmljb2RlU2V0IHogPSBiaXRzVG9TZXQoYSk7CisgICAgICAgIHoucmVtb3ZlQWxsKHkpOworICAgICAgICBpbnQgYyA9IHNldFRvQml0cyh6KTsKKyAgICAgICAgaWYgKGMgIT0gKGEgJn4gYikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMRUQ6IHJlbW92ZTogIiArIHggKyAiICZ+ICIgKyB5ICsgIiAhPSAiICsgeik7CisgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiByZW1vdmU6ICIgKyBhICsgIiAmfiAiICsgYiArICIgIT0gIiArIGMpOworICAgICAgICB9CisgICAgICAgIGNoZWNrQ2Fub25pY2FsUmVwKHosICJyZW1vdmUgIiArIGEgKyAiLCIgKyBiKTsKKyAgICB9CisKKyAgICB2b2lkIF90ZXN0WG9yKGludCBhLCBpbnQgYikgeworICAgICAgICBVbmljb2RlU2V0IHggPSBiaXRzVG9TZXQoYSk7CisgICAgICAgIFVuaWNvZGVTZXQgeSA9IGJpdHNUb1NldChiKTsKKyAgICAgICAgVW5pY29kZVNldCB6ID0gYml0c1RvU2V0KGEpOworICAgICAgICB6LmNvbXBsZW1lbnRBbGwoeSk7CisgICAgICAgIGludCBjID0gc2V0VG9CaXRzKHopOworICAgICAgICBpZiAoYyAhPSAoYSBeIGIpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTEVEOiBjb21wbGVtZW50OiAiICsgeCArICIgXiAiICsgeSArICIgIT0gIiArIHopOworICAgICAgICAgICAgZXJybG4oIkZBSUxFRDogY29tcGxlbWVudDogIiArIGEgKyAiIF4gIiArIGIgKyAiICE9ICIgKyBjKTsKKyAgICAgICAgfQorICAgICAgICBjaGVja0Nhbm9uaWNhbFJlcCh6LCAiY29tcGxlbWVudCAiICsgYSArICIsIiArIGIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVjayB0aGF0IHJhbmdlcyBhcmUgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGFuZCBub24tCisgICAgICogb3ZlcmxhcHBpbmcuCisgICAgICovCisgICAgdm9pZCBjaGVja0Nhbm9uaWNhbFJlcChVbmljb2RlU2V0IHNldCwgU3RyaW5nIG1zZykgeworICAgICAgICBpbnQgbiA9IHNldC5nZXRSYW5nZUNvdW50KCk7CisgICAgICAgIGlmIChuIDwgMCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgcmVzdWx0IG9mICIgKyBtc2cgKworICAgICAgICAgICAgICAgICAgIjogcmFuZ2UgY291bnQgc2hvdWxkIGJlID49IDAgYnV0IGlzICIgKworICAgICAgICAgICAgICAgICAgbiArICIgZm9yICIgKyBVdGlsaXR5LmVzY2FwZShzZXQudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGludCBsYXN0ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPG47ICsraSkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gc2V0LmdldFJhbmdlU3RhcnQoaSk7CisgICAgICAgICAgICBpbnQgZW5kID0gc2V0LmdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUwgcmVzdWx0IG9mICIgKyBtc2cgKworICAgICAgICAgICAgICAgICAgICAgICI6IHJhbmdlICIgKyAoaSsxKSArCisgICAgICAgICAgICAgICAgICAgICAgIiBzdGFydCA+IGVuZDogIiArIHN0YXJ0ICsgIiwgIiArIGVuZCArCisgICAgICAgICAgICAgICAgICAgICAgIiBmb3IgIiArIFV0aWxpdHkuZXNjYXBlKHNldC50b1N0cmluZygpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaSA+IDAgJiYgc3RhcnQgPD0gbGFzdCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMIHJlc3VsdCBvZiAiICsgbXNnICsKKyAgICAgICAgICAgICAgICAgICAgICAiOiByYW5nZSAiICsgKGkrMSkgKworICAgICAgICAgICAgICAgICAgICAgICIgb3ZlcmxhcHMgcHJldmlvdXMgcmFuZ2U6ICIgKyBzdGFydCArICIsICIgKyBlbmQgKworICAgICAgICAgICAgICAgICAgICAgICIgZm9yICIgKyBVdGlsaXR5LmVzY2FwZShzZXQudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdCA9IGVuZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBiaXRtYXNrIHRvIGEgVW5pY29kZVNldC4KKyAgICAgKi8KKyAgICBVbmljb2RlU2V0IGJpdHNUb1NldChpbnQgYSkgeworICAgICAgICBVbmljb2RlU2V0IHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzI7ICsraSkgeworICAgICAgICAgICAgaWYgKChhICYgKDE8PGkpKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCgoY2hhcilpLChjaGFyKWkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgVW5pY29kZVNldCB0byBhIGJpdG1hc2suICBPbmx5IHRoZSBjaGFyYWN0ZXJzCisgICAgICogVSswMDAwIHRvIFUrMDAyMCBhcmUgcmVwcmVzZW50ZWQgaW4gdGhlIGJpdG1hc2suCisgICAgICovCisgICAgc3RhdGljIGludCBzZXRUb0JpdHMoVW5pY29kZVNldCB4KSB7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDMyOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh4LmNvbnRhaW5zKChjaGFyKWkpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0IHw9ICgxPDxpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcmVwcmVzZW50YXRpb24gb2YgYW4gaW52ZXJzaW9uIGxpc3QgYmFzZWQgVW5pY29kZVNldAorICAgICAqIGFzIGEgcGFpcnMgbGlzdC4gIFJhbmdlcyBhcmUgbGlzdGVkIGluIGFzY2VuZGluZyBVbmljb2RlIG9yZGVyLgorICAgICAqIEZvciBleGFtcGxlLCB0aGUgc2V0IFthLXpBLU0zXSBpcyByZXByZXNlbnRlZCBhcyAiMzNBTWF6Ii4KKyAgICAgKi8KKyAgICBzdGF0aWMgU3RyaW5nIGdldFBhaXJzKFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBwYWlycyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNldC5nZXRSYW5nZUNvdW50KCk7ICsraSkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gc2V0LmdldFJhbmdlU3RhcnQoaSk7CisgICAgICAgICAgICBpbnQgZW5kID0gc2V0LmdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgaWYgKGVuZCA+IDB4RkZGRikgeworICAgICAgICAgICAgICAgIGVuZCA9IDB4RkZGRjsKKyAgICAgICAgICAgICAgICBpID0gc2V0LmdldFJhbmdlQ291bnQoKTsgLy8gU2hvdWxkIGJlIHVubmVjZXNzYXJ5CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYWlycy5hcHBlbmQoKGNoYXIpc3RhcnQpLmFwcGVuZCgoY2hhcillbmQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwYWlycy50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IGZ1bmN0aW9uLiBNYWtlIHN1cmUgdGhhdCB0aGUgc2V0cyBoYXZlIHRoZSByaWdodCByZWxhdGlvbgorICAgICAqLworICAgICAKKyAgICB2b2lkIGV4cGVjdFJlbGF0aW9uKE9iamVjdCByZWxhdGlvbk9iaiwgT2JqZWN0IHNldDFPYmosIE9iamVjdCBzZXQyT2JqLCBTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBpbnQgcmVsYXRpb24gPSAoKEludGVnZXIpIHJlbGF0aW9uT2JqKS5pbnRWYWx1ZSgpOworICAgICAgICBVbmljb2RlU2V0IHNldDEgPSAoVW5pY29kZVNldCkgc2V0MU9iajsKKyAgICAgICAgVW5pY29kZVNldCBzZXQyID0gKFVuaWNvZGVTZXQpIHNldDJPYmo7CisgICAgICAgIAorICAgICAgICAvLyBieS10aGUtYnksIGNoZWNrIHRoZSBpdGVyYXRvcgorICAgICAgICBjaGVja1JvdW5kVHJpcChzZXQxKTsKKyAgICAgICAgY2hlY2tSb3VuZFRyaXAoc2V0Mik7CisgICAgICAgIAorICAgICAgICBib29sZWFuIGNvbnRhaW5zID0gc2V0MS5jb250YWluc0FsbChzZXQyKTsKKyAgICAgICAgYm9vbGVhbiBpc0NvbnRhaW5lZCA9IHNldDIuY29udGFpbnNBbGwoc2V0MSk7CisgICAgICAgIGJvb2xlYW4gZGlzam9pbnQgPSBzZXQxLmNvbnRhaW5zTm9uZShzZXQyKTsKKyAgICAgICAgYm9vbGVhbiBlcXVhbHMgPSBzZXQxLmVxdWFscyhzZXQyKTsKKyAgICAgICAgCisgICAgICAgIFVuaWNvZGVTZXQgaW50ZXJzZWN0aW9uID0gbmV3IFVuaWNvZGVTZXQoc2V0MSkucmV0YWluQWxsKHNldDIpOworICAgICAgICBVbmljb2RlU2V0IG1pbnVzMTIgPSBuZXcgVW5pY29kZVNldChzZXQxKS5yZW1vdmVBbGwoc2V0Mik7CisgICAgICAgIFVuaWNvZGVTZXQgbWludXMyMSA9IG5ldyBVbmljb2RlU2V0KHNldDIpLnJlbW92ZUFsbChzZXQxKTsKKyAgICAgICAgCisgICAgICAgIC8vIHRlc3QgYmFzaWMgcHJvcGVydGllcworICAgICAgICAKKyAgICAgICAgaWYgKGNvbnRhaW5zICE9IChpbnRlcnNlY3Rpb24uc2l6ZSgpID09IHNldDIuc2l6ZSgpKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgY29udGFpbnMxIiArIHNldDEudG9QYXR0ZXJuKHRydWUpICsgIiwgIiArIHNldDIudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgfQorICAgICAgICAgIAorICAgICAgICBpZiAoY29udGFpbnMgIT0gKGludGVyc2VjdGlvbi5lcXVhbHMoc2V0MikpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBjb250YWluczIiICsgc2V0MS50b1BhdHRlcm4odHJ1ZSkgKyAiLCAiICsgc2V0Mi50b1BhdHRlcm4odHJ1ZSkpOworICAgICAgICB9CisgICAgICAgICAgCisgICAgICAgIGlmIChpc0NvbnRhaW5lZCAhPSAoaW50ZXJzZWN0aW9uLnNpemUoKSA9PSBzZXQxLnNpemUoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIGlzQ29udGFpbmVkMSIgKyBzZXQxLnRvUGF0dGVybih0cnVlKSArICIsICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgaWYgKGlzQ29udGFpbmVkICE9IChpbnRlcnNlY3Rpb24uZXF1YWxzKHNldDEpKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgaXNDb250YWluZWQyIiArIHNldDEudG9QYXR0ZXJuKHRydWUpICsgIiwgIiArIHNldDIudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgfQorICAgICAgICAgIAorICAgICAgICBpZiAoKGNvbnRhaW5zICYmIGlzQ29udGFpbmVkKSAhPSBlcXVhbHMpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIGVxdWFscyIgKyBzZXQxLnRvUGF0dGVybih0cnVlKSArICIsICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgaWYgKGRpc2pvaW50ICE9IChpbnRlcnNlY3Rpb24uc2l6ZSgpID09IDApKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTCBkaXNqb2ludCIgKyBzZXQxLnRvUGF0dGVybih0cnVlKSArICIsICIgKyBzZXQyLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE5vdyBzZWUgaWYgdGhlIGV4cGVjdGVkIHJlbGF0aW9uIGlzIHRydWUKKyAgICAgICAgaW50IHN0YXR1cyA9IChtaW51czEyLnNpemUoKSAhPSAwID8gNCA6IDApCisgICAgICAgICAgfCAoaW50ZXJzZWN0aW9uLnNpemUoKSAhPSAwID8gMiA6IDApCisgICAgICAgICAgfCAobWludXMyMS5zaXplKCkgIT0gMCA/IDEgOiAwKTsKKyAgICAgICAgCisgICAgICAgIGlmIChzdGF0dXMgIT0gcmVsYXRpb24pIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMIHJlbGF0aW9uIGluY29ycmVjdCIgKyBtZXNzYWdlCisgICAgICAgICAgICAgICsgIjsgZGVzaXJlZCA9ICIgKyBSRUxBVElPTl9OQU1FW3JlbGF0aW9uXQorICAgICAgICAgICAgICArICI7IGZvdW5kID0gIiArIFJFTEFUSU9OX05BTUVbc3RhdHVzXQorICAgICAgICAgICAgICArICI7IHNldDEgPSAiICsgc2V0MS50b1BhdHRlcm4odHJ1ZSkKKyAgICAgICAgICAgICAgKyAiOyBzZXQyID0gIiArIHNldDIudG9QYXR0ZXJuKHRydWUpCisgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQmFzaWMgY29uc2lzdGVuY3kgY2hlY2sgZm9yIGEgZmV3IGl0ZW1zLgorICAgICAqIFRoYXQgdGhlIGl0ZXJhdG9yIHdvcmtzLCBhbmQgdGhhdCB3ZSBjYW4gY3JlYXRlIGEgcGF0dGVybiBhbmQKKyAgICAgKiBnZXQgdGhlIHNhbWUgdGhpbmcgYmFjaworICAgICAqLworICAgIAorICAgIHZvaWQgY2hlY2tSb3VuZFRyaXAoVW5pY29kZVNldCBzKSB7CisgICAgICAgIFN0cmluZyBwYXQgPSBzLnRvUGF0dGVybihmYWxzZSk7CisgICAgICAgIFVuaWNvZGVTZXQgdCA9IGNvcHlXaXRoSXRlcmF0b3IocywgZmFsc2UpOworICAgICAgICBjaGVja0VxdWFsKHMsIHQsICJpdGVyYXRvciByb3VuZHRyaXAiKTsKKworICAgICAgICB0ID0gY29weVdpdGhJdGVyYXRvcihzLCB0cnVlKTsgLy8gdHJ5IHJhbmdlCisgICAgICAgIGNoZWNrRXF1YWwocywgdCwgIml0ZXJhdG9yIHJvdW5kdHJpcCIpOworICAgICAgICAKKyAgICAgICAgdCA9IG5ldyBVbmljb2RlU2V0KHBhdCk7CisgICAgICAgIGNoZWNrRXF1YWwocywgdCwgInRvUGF0dGVybihmYWxzZSkiKTsKKyAgICAgICAgCisgICAgICAgIHBhdCA9IHMudG9QYXR0ZXJuKHRydWUpOworICAgICAgICB0ID0gbmV3IFVuaWNvZGVTZXQocGF0KTsKKyAgICAgICAgY2hlY2tFcXVhbChzLCB0LCAidG9QYXR0ZXJuKHRydWUpIik7CisgICAgfQorICAgIAorICAgIFVuaWNvZGVTZXQgY29weVdpdGhJdGVyYXRvcihVbmljb2RlU2V0IHMsIGJvb2xlYW4gd2l0aFJhbmdlKSB7CisgICAgICAgIFVuaWNvZGVTZXQgdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Iocyk7CisgICAgICAgIGlmICh3aXRoUmFuZ2UpIHsKKyAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0UmFuZ2UoKSkgeworICAgICAgICAgICAgICAgIGlmIChpdC5jb2RlcG9pbnQgPT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgICAgICAgICAgICAgICAgICB0LmFkZChpdC5zdHJpbmcpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHQuYWRkKGl0LmNvZGVwb2ludCwgaXQuY29kZXBvaW50RW5kKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB3aGlsZSAoaXQubmV4dCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGl0LmNvZGVwb2ludCA9PSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKSB7CisgICAgICAgICAgICAgICAgICAgIHQuYWRkKGl0LnN0cmluZyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdC5hZGQoaXQuY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHQ7CisgICAgfQorICAgIAorICAgIGJvb2xlYW4gY2hlY2tFcXVhbChVbmljb2RlU2V0IHMsIFVuaWNvZGVTZXQgdCwgU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgaWYgKCFzLmVxdWFscyh0KSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUwgIiArIG1lc3NhZ2UKKyAgICAgICAgICAgICAgKyAiOyBzb3VyY2UgPSAiICsgcy50b1BhdHRlcm4odHJ1ZSkKKyAgICAgICAgICAgICAgKyAiOyByZXN1bHQgPSAiICsgdC50b1BhdHRlcm4odHJ1ZSkKKyAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgICAgICAgICAKKyAgICB2b2lkIGV4cGVjdEVxdWFsKFN0cmluZyBuYW1lLCBTdHJpbmcgcGF0MSwgU3RyaW5nIHBhdDIpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQxLCBzZXQyOworICAgICAgICB0cnkgeworICAgICAgICAgICAgc2V0MSA9IG5ldyBVbmljb2RlU2V0KHBhdDEpOworICAgICAgICAgICAgc2V0MiA9IG5ldyBVbmljb2RlU2V0KHBhdDIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IENvdWxkbid0IGNyZWF0ZSBVbmljb2RlU2V0IGZyb20gcGF0dGVybiBmb3IgXCIiICsgbmFtZSArICJcIjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZighc2V0MS5lcXVhbHMoc2V0MikpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBTZXRzIGJ1aWx0IGZyb20gcGF0dGVybnMgZGlmZmVyIGZvciBcIiIgKyBuYW1lICsgIlwiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFeHBlY3QgdGhlIGdpdmVuIHNldCB0byBjb250YWluIHRoZSBjaGFyYWN0ZXJzIGluIGNoYXJzSW4gYW5kCisgICAgICogdG8gbm90IGNvbnRhaW4gdGhvc2UgaW4gY2hhcnNPdXQuCisgICAgICovCisgICAgdm9pZCBleHBlY3RDb250YWlubWVudChTdHJpbmcgcGF0LCBTdHJpbmcgY2hhcnNJbiwgU3RyaW5nIGNoYXJzT3V0KSB7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0OworICAgICAgICB0cnkgeworICAgICAgICAgICAgc2V0ID0gbmV3IFVuaWNvZGVTZXQocGF0KTsKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBDb3VsZG4ndCBjcmVhdGUgVW5pY29kZVNldCBmcm9tIHBhdHRlcm4gXCIiICsKKyAgICAgICAgICAgICAgICAgIHBhdCArICJcIjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBleHBlY3RDb250YWlubWVudChzZXQsIGNoYXJzSW4sIGNoYXJzT3V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFeHBlY3QgdGhlIGdpdmVuIHNldCB0byBjb250YWluIHRoZSBjaGFyYWN0ZXJzIGluIGNoYXJzSW4gYW5kCisgICAgICogdG8gbm90IGNvbnRhaW4gdGhvc2UgaW4gY2hhcnNPdXQuCisgICAgICovCisgICAgdm9pZCBleHBlY3RDb250YWlubWVudChVbmljb2RlU2V0IHNldCwgU3RyaW5nIGNoYXJzSW4sIFN0cmluZyBjaGFyc091dCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYmFkID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpZiAoY2hhcnNJbiAhPSBudWxsKSB7CisgICAgICAgICAgICBjaGFyc0luID0gVXRpbGl0eS51bmVzY2FwZShjaGFyc0luKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxjaGFyc0luLmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChjaGFyc0luLGkpOworICAgICAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIGlmICghc2V0LmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChiYWQsYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJhZC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbihVdGlsaXR5LmVzY2FwZSgiRkFJTDogc2V0ICIgKyBzZXQgKyAiIGRvZXMgbm90IGNvbnRhaW4gIiArIGJhZCArCisgICAgICAgICAgICAgICAgICAgICAgIiwgZXhwZWN0ZWQgY29udGFpbm1lbnQgb2YgIiArIGNoYXJzSW4pKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oVXRpbGl0eS5lc2NhcGUoIk9rOiBzZXQgIiArIHNldCArICIgY29udGFpbnMgIiArIGNoYXJzSW4pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY2hhcnNPdXQgIT0gbnVsbCkgeworICAgICAgICAgICAgY2hhcnNPdXQgPSBVdGlsaXR5LnVuZXNjYXBlKGNoYXJzT3V0KTsKKyAgICAgICAgICAgIGJhZC5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Y2hhcnNPdXQubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KGNoYXJzT3V0LGkpOworICAgICAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIGlmIChzZXQuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJhZCwgYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJhZC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbihVdGlsaXR5LmVzY2FwZSgiRkFJTDogc2V0ICIgKyBzZXQgKyAiIGNvbnRhaW5zICIgKyBiYWQgKworICAgICAgICAgICAgICAgICAgICAgICIsIGV4cGVjdGVkIG5vbi1jb250YWlubWVudCBvZiAiICsgY2hhcnNPdXQpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9nbG4oVXRpbGl0eS5lc2NhcGUoIk9rOiBzZXQgIiArIHNldCArICIgZG9lcyBub3QgY29udGFpbiAiICsgY2hhcnNPdXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgZXhwZWN0UGF0dGVybihVbmljb2RlU2V0IHNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZFBhaXJzKSB7CisgICAgICAgIHNldC5hcHBseVBhdHRlcm4ocGF0dGVybik7CisgICAgICAgIGlmICghZ2V0UGFpcnMoc2V0KS5lcXVhbHMoZXhwZWN0ZWRQYWlycykpIHsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBhcHBseVBhdHRlcm4oXCIiICsgcGF0dGVybiArCisgICAgICAgICAgICAgICAgICAiXCIpID0+IHBhaXJzIFwiIiArCisgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShnZXRQYWlycyhzZXQpKSArICJcIiwgZXhwZWN0ZWQgXCIiICsKKyAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKGV4cGVjdGVkUGFpcnMpICsgIlwiIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dsbigiT2s6ICAgYXBwbHlQYXR0ZXJuKFwiIiArIHBhdHRlcm4gKworICAgICAgICAgICAgICAgICAgIlwiKSA9PiBwYWlycyBcIiIgKworICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoZ2V0UGFpcnMoc2V0KSkgKyAiXCIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgZXhwZWN0VG9QYXR0ZXJuKFVuaWNvZGVTZXQgc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBleHBQYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nW10gZXhwU3RyaW5ncykgeworICAgICAgICBTdHJpbmcgcGF0ID0gc2V0LnRvUGF0dGVybih0cnVlKTsKKyAgICAgICAgaWYgKHBhdC5lcXVhbHMoZXhwUGF0KSkgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAgIHRvUGF0dGVybigpID0+IFwiIiArIHBhdCArICJcIiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRvUGF0dGVybigpID0+IFwiIiArIHBhdCArICJcIiwgZXhwZWN0ZWQgXCIiICsgZXhwUGF0ICsgIlwiIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKGV4cFN0cmluZ3MgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gaW4gPSB0cnVlOworICAgICAgICBmb3IgKGludCBpPTA7IGk8ZXhwU3RyaW5ncy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGV4cFN0cmluZ3NbaV0gPT0gTk9UKSB7IC8vIHNpYzsgcG9pbnRlciBjb21wYXJpc29uCisgICAgICAgICAgICAgICAgaW4gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJvb2xlYW4gY29udGFpbmVkID0gc2V0LmNvbnRhaW5zKGV4cFN0cmluZ3NbaV0pOworICAgICAgICAgICAgaWYgKGNvbnRhaW5lZCA9PSBpbikgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJPazogIiArIGV4cFBhdCArIAorICAgICAgICAgICAgICAgICAgICAgIChjb250YWluZWQgPyAiIGNvbnRhaW5zIHsiIDogIiBkb2VzIG5vdCBjb250YWluIHsiKSArCisgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoZXhwU3RyaW5nc1tpXSkgKyAifSIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGV4cFBhdCArIAorICAgICAgICAgICAgICAgICAgICAgIChjb250YWluZWQgPyAiIGNvbnRhaW5zIHsiIDogIiBkb2VzIG5vdCBjb250YWluIHsiKSArCisgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoZXhwU3RyaW5nc1tpXSkgKyAifSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBleHBlY3RQYWlycyhVbmljb2RlU2V0IHNldCwgU3RyaW5nIGV4cGVjdGVkUGFpcnMpIHsKKyAgICAgICAgaWYgKCFnZXRQYWlycyhzZXQpLmVxdWFscyhleHBlY3RlZFBhaXJzKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IEV4cGVjdGVkIHBhaXIgbGlzdCBcIiIgKworICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoZXhwZWN0ZWRQYWlycykgKyAiXCIsIGdvdCBcIiIgKworICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoZ2V0UGFpcnMoc2V0KSkgKyAiXCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENoYXJzVG9Vbmljb2RlU3RyaW5nKFN0cmluZyBzKSB7CisgICAgICAgIHJldHVybiBVdGlsaXR5LnVuZXNjYXBlKHMpOworICAgIH0KKyAgICAKKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Xcml0ZUNoYXJ0cy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L1dyaXRlQ2hhcnRzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGViZDA4MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9Xcml0ZUNoYXJ0cy5qYXZhCkBAIC0wLDAgKzEsMzc4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEuaW8uKjsKKworcHVibGljIGNsYXNzIFdyaXRlQ2hhcnRzIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgIHByaW50U2V0KCJbW1x1MDAwMC1cdTAwN0UgXHUzMEExLVx1MzBGQyBcdUZGNjEtXHVGRjlGXHUzMDAxXHUzMDAyXVs6S2F0YWthbmE6XVs6TWFyazpdXSIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyB0ZXN0U2V0ID0gIiI7CisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSAwKSBhcmdzID0gZ2V0QWxsU2NyaXB0cygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAvLyBFbnVtZXJhdGlvbiBlbnVtID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgICAgICBpZiAoYXJnc1tpXS5zdGFydHNXaXRoKCJbIikpIHsKKyAgICAgICAgICAgICAgICB0ZXN0U2V0ID0gYXJnc1tpXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJpbnQodGVzdFNldCwgYXJnc1tpXSk7CisgICAgICAgICAgICAgICAgdGVzdFNldCA9ICIiOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludFNldChTdHJpbmcgc291cmNlKSB7CisgICAgICAgIFVuaWNvZGVTZXQgcyA9IG5ldyBVbmljb2RlU2V0KHNvdXJjZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUHJpbnRvdXQgZm9yICciICsgc291cmNlICsgIiciKTsKKyAgICAgICAgaW50IGNvdW50ID0gcy5nZXRSYW5nZUNvdW50KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gcy5nZXRSYW5nZVN0YXJ0KGkpOworICAgICAgICAgICAgaW50IGVuZCA9IHMuZ2V0UmFuZ2VFbmQoaSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oSW50ZWdlci50b1N0cmluZyhzdGFydCwxNikgKyAiLi4iICsgSW50ZWdlci50b1N0cmluZyhlbmQsMTYpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIGdldEFsbFNjcmlwdHMoKSB7CisgICAgICAgIFNldCBzZXQgPSBuZXcgVHJlZVNldCgpOworICAgICAgICBpbnQgc2NyaXB0c1tdOworICAgICAgICBFbnVtZXJhdGlvbiBzb3VyY2VzID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlU291cmNlcygpOworICAgICAgICB3aGlsZShzb3VyY2VzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlID0gKFN0cmluZykgc291cmNlcy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgc2NyaXB0cyA9IFVTY3JpcHQuZ2V0Q29kZShzb3VyY2UpOworICAgICAgICAgICAgaWYgKHNjcmlwdHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiW1NraXBwaW5nICIgKyBzb3VyY2UgKyAiXSIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHNvdXJjZVNjcmlwdCA9IHNjcmlwdHNbMF07CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNvdXJjZTogIiArIHNvdXJjZSArICI7XHRTY3JpcHRzOiAiICsgc2hvd1NjcmlwdHMoc2NyaXB0cykpOworICAgICAgICAgICAgRW51bWVyYXRpb24gdGFyZ2V0cyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVRhcmdldHMoc291cmNlKTsKKyAgICAgICAgICAgIHdoaWxlKHRhcmdldHMuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gKFN0cmluZykgdGFyZ2V0cy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIHNjcmlwdHMgPSBVU2NyaXB0LmdldENvZGUodGFyZ2V0KTsKKyAgICAgICAgICAgICAgICBpZiAoc2NyaXB0cyA9PSBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBwcmlvcml0eShzY3JpcHRzWzBdKSA8IHByaW9yaXR5KHNvdXJjZVNjcmlwdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2tpcCBkb2luZyBib3RoIGRpcmVjdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJbU2tpcHBpbmcgJyIgKyBzb3VyY2UgKyAiLSIgKyB0YXJnZXQgKyAiJ10iKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXHRUYXJnZXQ6ICIgKyB0YXJnZXQgKyAiO1x0U2NyaXB0czogIiArIHNob3dTY3JpcHRzKHNjcmlwdHMpKTsKKyAgICAgICAgICAgICAgICBFbnVtZXJhdGlvbiB2YXJpYW50cyA9IFRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVZhcmlhbnRzKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICB3aGlsZSh2YXJpYW50cy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIHZhcmlhbnRzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IHNvdXJjZSArICItIiArIHRhcmdldDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWQgKz0gIi8iICsgdmFyaWFudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU0tJUFBJTkcgVkFSSUFOVCwgU0lOQ0UgSVQgQ1VSUkVOVExZIEJSRUFLUyFcdCIgKyBpZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcdFx0XHRcdEFkZGluZzogJyIgKyBpZCArICInIik7CisgICAgICAgICAgICAgICAgICAgIHNldC5hZGQoaWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBTdHJpbmdbXSByZXN1bHRzID0gbmV3IFN0cmluZ1tzZXQuc2l6ZSgpXTsKKyAgICAgICAgc2V0LnRvQXJyYXkocmVzdWx0cyk7CisgICAgICAgIHJldHVybiByZXN1bHRzOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIGludCBwcmlvcml0eShpbnQgc2NyaXB0KSB7CisgICAgICAgIGlmIChzY3JpcHQgPT0gVVNjcmlwdC5MQVRJTikgcmV0dXJuIC0yOworICAgICAgICByZXR1cm4gc2NyaXB0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBzaG93U2NyaXB0cyhpbnRbXSBzY3JpcHRzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHRzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHJlc3VsdHMuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoVVNjcmlwdC5nZXROYW1lKHNjcmlwdHNbaV0pKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0cy50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcHJpbnQoU3RyaW5nIHRlc3RTZXQsIFN0cmluZyByYXdJZCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQcm9jZXNzaW5nICIgKyByYXdJZCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShyYXdJZCk7CisgICAgICAgIFN0cmluZyBpZCA9IHQuZ2V0SUQoKTsKKyAgICAgICAgCisgICAgICAgIC8vIGNsZWFuIHVwIElEcy4gT3VnaHQgdG8gYmUgQVBJIGZvciBnZXR0aW5nIHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50CisgICAgICAgIGludCBtaW51c1BvcyA9IGlkLmluZGV4T2YoJy0nKTsKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9IGlkLnN1YnN0cmluZygwLG1pbnVzUG9zKTsKKyAgICAgICAgU3RyaW5nIHRhcmdldCA9IGlkLnN1YnN0cmluZyhtaW51c1BvcysxKTsKKyAgICAgICAgaW50IHNsYXNoUG9zID0gdGFyZ2V0LmluZGV4T2YoJy8nKTsKKyAgICAgICAgaWYgKHNsYXNoUG9zID49IDApIHRhcmdldCA9IHRhcmdldC5zdWJzdHJpbmcoMCxzbGFzaFBvcyk7CisgICAgICAgIAorICAgICAgICAvLyBjaGVjayB0aGF0IHRoZSBzb3VyY2UgaXMgYSBzY3JpcHQKKyAgICAgICAgaWYgKHRlc3RTZXQuZXF1YWxzKCIiKSkgeworICAgICAgICAgICAgaW50W10gc2NyaXB0cyA9IFVTY3JpcHQuZ2V0Q29kZShzb3VyY2UpOworICAgICAgICAgICAgaWYgKHNjcmlwdHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRkFJTEVEOiAiIAorICAgICAgICAgICAgICAgICAgICArIFRyYW5zbGl0ZXJhdG9yLmdldERpc3BsYXlOYW1lKGlkKQorICAgICAgICAgICAgICAgICAgICArICIgZG9lcyBub3QgaGF2ZSBhIHNjcmlwdCBhcyB0aGUgc291cmNlIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ZXN0U2V0ID0gIls6IiArIHNvdXJjZSArICI6XSI7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5lcXVhbHNJZ25vcmVDYXNlKCJrYXRha2FuYSIpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RTZXQgPSAiWyIgKyB0ZXN0U2V0ICsgIlx1MzBGQ10iOworICAgICAgICAgICAgICAgICAgICBwcmludFNldCh0ZXN0U2V0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgVW5pY29kZVNldCBzb3VyY2VTZXQgPSBuZXcgVW5pY29kZVNldCh0ZXN0U2V0KTsKKworICAgICAgICAvLyBjaGVjayB0aGF0IHRoZSB0YXJnZXQgaXMgYSBzY3JpcHQKKyAgICAgICAgaW50W10gc2NyaXB0cyA9IFVTY3JpcHQuZ2V0Q29kZSh0YXJnZXQpOworICAgICAgICBpZiAoc2NyaXB0cyA9PSBudWxsKSB7CisgICAgICAgICAgICB0YXJnZXQgPSAiWzpMYXRpbjpdIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRhcmdldCA9ICJbOiIgKyB0YXJnZXQgKyAiOl0iOworICAgICAgICB9CisgICAgICAgIFVuaWNvZGVTZXQgdGFyZ2V0U2V0ID0gbmV3IFVuaWNvZGVTZXQodGFyZ2V0KTsgICAgICAgIAorICAgICAgICAKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgaW52ZXJzZSA9IHQuZ2V0SW52ZXJzZSgpOworICAgICAgICAKKyAgICAgICAgLy9UcmFuc2xpdGVyYXRvciBoZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiQW55LUhleCIpOworICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgLy8gaXRlcmF0ZSB0aHJvdWdoIHNjcmlwdAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRyYW5zbGl0ZXJhdGluZyAiICsgc291cmNlU2V0LnRvUGF0dGVybih0cnVlKSAKKyAgICAgICAgICAgICsgIiB3aXRoICIgKyBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZShpZCkpOworICAgICAgICAgICAgICAgIAorICAgICAgICBVbmljb2RlU2V0IGxlZnRPdmVyU2V0ID0gbmV3IFVuaWNvZGVTZXQodGFyZ2V0U2V0KTsKKyAgICAgICAgVW5pY29kZVNldCBwcml2YXRlVXNlID0gbmV3IFVuaWNvZGVTZXQoIls6cHJpdmF0ZSB1c2U6XSIpOworICAgICAgICAgICAgCisgICAgICAgIE1hcCBtYXAgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICAKKyAgICAgICAgVW5pY29kZVNldCB0YXJnZXRTZXRQbHVzQW55d2F5cyA9IG5ldyBVbmljb2RlU2V0KHRhcmdldFNldCk7CisgICAgICAgIHRhcmdldFNldFBsdXNBbnl3YXlzLmFkZEFsbChva0FueXdheSk7CisgICAgICAgIAorICAgICAgICBVbmljb2RlU2V0IHNvdXJjZVNldFBsdXNBbnl3YXlzID0gbmV3IFVuaWNvZGVTZXQoc291cmNlU2V0KTsKKyAgICAgICAgc291cmNlU2V0UGx1c0FueXdheXMuYWRkQWxsKG9rQW55d2F5KTsKKyAgICAgICAgCisgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciB1c2kgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNvdXJjZVNldCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAodXNpLm5leHQoKSkgeworICAgICAgICAgICAgaW50IGogPSB1c2kuY29kZXBvaW50OworICAgICAgICAgICAgLyoKKyAgICAgICAgaW50IGNvdW50ID0gc291cmNlU2V0LmdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBpbnQgZW5kID0gc291cmNlU2V0LmdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IHNvdXJjZVNldC5nZXRSYW5nZVN0YXJ0KGkpOyBqIDw9IGVuZDsgKytqKSB7CisgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgLy8gU3RyaW5nIGZsYWcgPSAiIjsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3MgPSBVVEYxNi52YWx1ZU9mKGopOworICAgICAgICAgICAgICAgIFN0cmluZyB0cyA9IHQudHJhbnNsaXRlcmF0ZShzcyk7CisgICAgICAgICAgICAgICAgY2hhciBncm91cCA9IDA7CisgICAgICAgICAgICAgICAgaWYgKCF0YXJnZXRTZXRQbHVzQW55d2F5cy5jb250YWluc0FsbCh0cykpIHsKKyAgICAgICAgICAgICAgICAgICAgZ3JvdXAgfD0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKFVURjE2LmNvdW50Q29kZVBvaW50KHRzKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGxlZnRPdmVyU2V0LnJlbW92ZShVVEYxNi5jaGFyQXQodHMsMCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgcnQgPSBpbnZlcnNlLnRyYW5zbGl0ZXJhdGUodHMpOworICAgICAgICAgICAgICAgIGlmICghc291cmNlU2V0UGx1c0FueXdheXMuY29udGFpbnNBbGwocnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGdyb3VwIHw9IDI7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghc3MuZXF1YWxzKHJ0KSkgeworICAgICAgICAgICAgICAgICAgICBncm91cCB8PSA0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIXByaXZhdGVVc2UuY29udGFpbnNOb25lKHRzKSB8fCAhcHJpdmF0ZVVzZS5jb250YWluc05vbmUocnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGdyb3VwIHw9IDE2OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbWFwLnB1dChncm91cCArIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTm9ybWFsaXplci5ub3JtYWxpemUoc3MsIE5vcm1hbGl6ZXIuTkZLRCkpCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdTAwMDAiICsgc3MsIAorICAgICAgICAgICAgICAgICAgICAiPHRkIGNsYXNzPSdzJz4iICsgc3MgKyAiPGJyPjx0dD4iICsgaGV4KHNzKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiPC90dD48L3RkPjx0ZCBjbGFzcz0ndCc+IiArIHRzICsgIjxicj48dHQ+IiArIGhleCh0cykKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIjwvdHQ+PC90ZD48dGQgY2xhc3M9J3InPiIgKyBydCArICI8YnI+PHR0PiIgKyBoZXgocnQpICsgIjwvdHQ+PC90ZD4iICk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgRHVhbHMKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIGludCBtYXhEdWFsID0gMjAwOworICAgICAgICAgICAgICBkdWFsOgorICAgICAgICAgICAgICAgIGZvciAoaW50IGkyID0gMDsgaTIgPCBjb3VudDsgKytpMikgeworICAgICAgICAgICAgICAgICAgICBpbnQgZW5kMiA9IHNvdXJjZVNldC5nZXRSYW5nZUVuZChpMik7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGoyID0gc291cmNlU2V0LmdldFJhbmdlU3RhcnQoaTIpOyBqMiA8PSBlbmQ7ICsrajIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzczIgPSBVVEYxNi52YWx1ZU9mKGoyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0czIgPSB0LnRyYW5zbGl0ZXJhdGUoc3MyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBydDIgPSBpbnZlcnNlLnRyYW5zbGl0ZXJhdGUodHMyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNzMTIgPSBzcyArIHNzMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0czEyID0gdC50cmFuc2xpdGVyYXRlKHNzICsgc3MxMik7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcnQxMiA9IGludmVyc2UudHJhbnNsaXRlcmF0ZSh0czEyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0czEyLmVxdWFscyh0cyArIHRzMikgJiYgcnQxMi5lcXVhbHMocnQgKyBydDIpKSBjb250aW51ZTsgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtLW1heER1YWwgPCAwKSBicmVhayBkdWFsOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmFuc2xpdGVyYXRpb24gb2Ygd2hvbGUgZGlmZmVycyBmcm9tIHRoYXQgb2YgcGFydHMKKyAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwID0gMHgxMDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXAucHV0KGdyb3VwICsgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShOb3JtYWxpemVyLm5vcm1hbGl6ZShzczEyLCBOb3JtYWxpemVyLkRFQ09NUF9DT01QQVQsIDApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcdTAwMDAiICsgc3MxMiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjx0ZCBjbGFzcz0ncyc+IiArIHNzMTIgKyAiPGJyPjx0dD4iICsgaGV4KHNzMTIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIjwvdHQ+PC90ZD48dGQgY2xhc3M9J3QnPiIgKyB0czEyICsgIjxicj48dHQ+IiArIGhleCh0czEyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICI8L3R0PjwvdGQ+PHRkIGNsYXNzPSdyJz4iICsgcnQxMiArICI8YnI+PHR0PiIgKyBoZXgocnQxMikgKyAiPC90dD48L3RkPiIgKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgLy99CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBsZWZ0T3ZlclNldC5yZW1vdmUoMHgwMTAwLDB4MDJGRik7IC8vIHJlbW92ZSBleHRlbmRlZCAmIElQQQorICAgICAgICAKKyAgICAgICAgLyppbnQgY291bnQgPSBsZWZ0T3ZlclNldC5nZXRSYW5nZUNvdW50KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgaW50IGVuZCA9IGxlZnRPdmVyU2V0LmdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IGxlZnRPdmVyU2V0LmdldFJhbmdlU3RhcnQoaSk7IGogPD0gZW5kOyArK2opIHsKKyAgICAgICAgICAgICovCisgICAgICAgICAgICAKKyAgICAgICAgdXNpLnJlc2V0KGxlZnRPdmVyU2V0KTsKKyAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgIGludCBqID0gdXNpLmNvZGVwb2ludDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFN0cmluZyB0cyA9IFVURjE2LnZhbHVlT2Yoaik7CisgICAgICAgICAgICAgICAgLy8gU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHRzLCBOb3JtYWxpemVyLkRFQ09NUF9DT01QQVQsIDApOworICAgICAgICAgICAgICAgIC8vIGlmICghZGVjb21wLmVxdWFscyh0cykpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFN0cmluZyBydCA9IGludmVyc2UudHJhbnNsaXRlcmF0ZSh0cyk7CisgICAgICAgICAgICAgICAgLy8gU3RyaW5nIGZsYWcgPSAiIjsKKyAgICAgICAgICAgICAgICBjaGFyIGdyb3VwID0gMHg4MDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCFzb3VyY2VTZXRQbHVzQW55d2F5cy5jb250YWluc0FsbChydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZ3JvdXAgfD0gODsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFwcml2YXRlVXNlLmNvbnRhaW5zTm9uZShydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZ3JvdXAgfD0gMTY7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBtYXAucHV0KGdyb3VwICsgVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShOb3JtYWxpemVyLm5vcm1hbGl6ZSh0cywgTm9ybWFsaXplci5ORktEKSkgKyB0cywgCisgICAgICAgICAgICAgICAgICAgICI8dGQgY2xhc3M9J3MnPi08L3RkPjx0ZCBjbGFzcz0ndCc+IiArIHRzICsgIjxicj48dHQ+IiArIGhleCh0cykKKyAgICAgICAgICAgICAgICAgICAgKyAiPC90dD48L3RkPjx0ZCBjbGFzcz0ncic+IgorICAgICAgICAgICAgICAgICAgICArIHJ0ICsgIjxicj48dHQ+IiArIGhleChydCkgKyAiPC90dD48L3RkPiIpOworICAgICAgICAgICAgLy99CisgICAgICAgIH0KKworICAgICAgICAvLyBtYWtlIGZpbGUgbmFtZSBhbmQgb3BlbgorICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZSgidHJhbnNsaXRlcmF0aW9uL2NoYXJ0XyIgKyBpZC5yZXBsYWNlKCcvJywgJ18nKSArICIuaHRtbCIpOworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBmLmdldENhbm9uaWNhbEZpbGUoKS50b1N0cmluZygpOworICAgICAgICBQcmludFdyaXRlciBvdXQgPSBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGVuYW1lKSwgIlVURi04IikpOworICAgICAgICAvL291dC5wcmludCgnXHVGRUZGJyk7IC8vIEJPTQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nICIgKyBmaWxlbmFtZSk7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgb3V0LnByaW50bG4oIjwhRE9DVFlQRSBIVE1MIFBVQkxJQyBcIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU5cIj4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8SFRNTD48SEVBRD4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCI8TUVUQSBjb250ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCIgaHR0cC1lcXVpdj1Db250ZW50LVR5cGU+PC9IRUFEPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0naHR0cDovL3d3dy51bmljb2RlLm9yZy9jaGFydHMvdWNhL2NoYXJ0cy5jc3MnIHR5cGU9J3RleHQvY3NzJz4iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgb3V0LnByaW50bG4oIjxCT0RZPiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxoMT5UcmFuc2xpdGVyYXRpb24gU2FtcGxlcyBmb3IgJyIgKyBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZShpZCkgKyAiJzwvaDE+Iik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPHA+VGhpcyBmaWxlIGlsbHVzdHJhdGVzIHRoZSB0cmFuc2xpdGVyYXRpb25zIG9mICIgKyBUcmFuc2xpdGVyYXRvci5nZXREaXNwbGF5TmFtZShpZCkgKyAiLiIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIlRoZSBzYW1wbGVzIGFyZSBtZWNoYW5pY2FsbHkgZ2VuZXJhdGVkLCBhbmQgb25seSBpbmNsdWRlIHNpbmdsZSBjaGFyYWN0ZXJzIik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiZnJvbSB0aGUgc291cmNlIHNldC4gVGh1cyBpdCB3aWxsIDxpPm5vdDwvaT4gY29udGFpbiBleGFtcGxlcyB3aGVyZSB0aGUgdHJhbnNsaXRlcmF0aW9uIik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiZGVwZW5kcyBvbiB0aGUgY29udGV4dCBhcm91bmQgdGhlIGNoYXJhY3Rlci4gRm9yIGEgbW9yZSBkZXRhaWxlZCAtLSBhbmQgaW50ZXJhY3RpdmUgLS0gZXhhbXBsZSwgc2VlIHRoZSIpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxhIGhyZWY9J2h0dHA6Ly93d3cuaWJtLmNvbS9zb2Z0d2FyZS9nbG9iYWxpemF0aW9uL2ljdS9kZW1vL3RyYW5zZm9ybSc+VHJhbnNsaXRlcmF0aW9uIERlbW88L2E+PC9wPjxocj4iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gc2V0IHVwIHRoZSBoZWFkZXJzCisgICAgICAgICAgICBpbnQgY29sdW1uQ291bnQgPSAzOworICAgICAgICAgICAgU3RyaW5nIGhlYWRlckJhc2UgPSAiPHRoPlNvdXJjZTwvdGg+PHRoPlRhcmdldDwvdGg+PHRoPlJldHVybjwvdGg+IjsKKyAgICAgICAgICAgIFN0cmluZyBoZWFkZXJzID0gaGVhZGVyQmFzZTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBjb2x1bW5Db3VudCAtIDE7IGkgPiAwOyAtLWkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSBjb2x1bW5Db3VudCAtIDEpIGhlYWRlcnMgKz0gIjx0aD4mbmJzcDs8L3RoPiI7CisgICAgICAgICAgICAgICAgaGVhZGVycyArPSBoZWFkZXJCYXNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgdGFibGVIZWFkZXIgPSAiPHA+PHRhYmxlIGJvcmRlcj0nMSc+PHRyPiIgKyBoZWFkZXJzICsgIjwvdHI+IjsKKyAgICAgICAgICAgIFN0cmluZyB0YWJsZUZvb3RlciA9ICI8L3RhYmxlPjwvcD4iOworICAgICAgICAgICAgb3V0LnByaW50bG4oIjxoMj5Sb3VuZCBUcmlwPC9oMj4iKTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKHRhYmxlSGVhZGVyKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBtYXAua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIGNoYXIgbGFzdEdyb3VwID0gMDsKKyAgICAgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgICAgICBpbnQgY29sdW1uID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGNoYXIgZ3JvdXAgPSBrZXkuY2hhckF0KDApOworICAgICAgICAgICAgICAgIGlmIChncm91cCAhPSBsYXN0R3JvdXAgfHwgY291bnQrKyA+IDUwKSB7CisgICAgICAgICAgICAgICAgICAgIGxhc3RHcm91cCA9IGdyb3VwOworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IDA7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW4gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjwvdHI+Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4gPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKHRhYmxlRm9vdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIFN0cmluZyB0aXRsZSA9ICIiOworICAgICAgICAgICAgICAgICAgICBpZiAoKGdyb3VwICYgMHgxMDApICE9IDApIG91dC5wcmludGxuKCI8aHI+PGgyPkR1YWxzPC9oMj4iKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoKGdyb3VwICYgMHg4MCkgIT0gMCkgb3V0LnByaW50bG4oIjxocj48aDI+Q29tcGxldGVuZXNzPC9oMj4iKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBvdXQucHJpbnRsbigiPGhyPjxoMj5Sb3VuZCBUcmlwPC9oMj4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChncm91cCAmIDE2KSAhPSAwKSBvdXQucHJpbnRsbigiPGgzPkVycm9yczogQ29udGFpbnMgUHJpdmF0ZSBVc2UgQ2hhcmFjdGVyczwvaDM+Iik7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZ3JvdXAgJiA4KSAhPSAwKSBvdXQucHJpbnRsbigiPGgzPlBvc3NpYmxlIEVycm9yczogUmV0dXJuIG5vdCBpbiBTb3VyY2UgU2V0PC9oMz4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChncm91cCAmIDQpICE9IDApIG91dC5wcmludGxuKCI8aDM+T25lLVdheSBNYXBwaW5nOiBSZXR1cm4gbm90IGVxdWFsIHRvIFNvdXJjZTwvaDM+Iik7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZ3JvdXAgJiAyKSAhPSAwKSBvdXQucHJpbnRsbigiPGgzPkVycm9yczogUmV0dXJuIG5vdCBpbiBTb3VyY2UgU2V0PC9oMz4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChncm91cCAmIDEpICE9IDApIG91dC5wcmludGxuKCI8aDM+RXJyb3JzOiBUYXJnZXQgbm90IGluIFRhcmdldCBTZXQ8L2gzPiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbih0YWJsZUhlYWRlcik7CisgICAgICAgICAgICAgICAgICAgIGNvbHVtbiA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IChTdHJpbmcpIG1hcC5nZXQoa2V5KTsKKyAgICAgICAgICAgICAgICBpZiAoY29sdW1uKysgPT0gMCkgb3V0LnByaW50KCI8dHI+Iik7CisgICAgICAgICAgICAgICAgZWxzZSBvdXQucHJpbnQoIjx0aD4mbmJzcDs8L3RoPiIpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKHZhbHVlKTsKKyAgICAgICAgICAgICAgICBpZiAoY29sdW1uID09IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjwvdHI+Iik7CisgICAgICAgICAgICAgICAgICAgIGNvbHVtbiA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNvbHVtbiAhPSAwKSB7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIjwvdHI+Iik7CisgICAgICAgICAgICAgICAgY29sdW1uID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dC5wcmludGxuKHRhYmxlRm9vdGVyICsgIjwvQk9EWT48L0hUTUw+Iik7CisgICAgICAgICAgICAKKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChTdHJpbmcgcykgeworICAgICAgICBpbnQgY3A7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHRzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSByZXN1bHRzLmFwcGVuZCgnICcpOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoSW50ZWdlci50b0hleFN0cmluZyhjcCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHRzLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgb2tBbnl3YXkgPSBuZXcgVW5pY29kZVNldCgiW15bOkxldHRlcjpdXSIpOworICAgIAorICAgIC8qCisgICAgLy8gdGVzdHMgd2hldGhlciBhIHN0cmluZyBpcyBpbiBhIHNldC4gQWxzbyBjaGVja3MgZm9yIENvbW1vbiBhbmQgSW5oZXJpdGVkCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzSW4oU3RyaW5nIHMsIFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChpKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgICAgICBpZiAoc2V0LmNvbnRhaW5zKGNwKSkgY29udGludWU7CisgICAgICAgICAgICBpZiAob2tBbnl3YXkuY29udGFpbnMoY3ApKSBjb250aW51ZTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgKi8KKyAgICAKK30KKyAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3RyYW5zbGl0L3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWZkZmYxYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC90cmFuc2xpdC9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorVHJhbnNsaXRlcmF0b3IgdGVzdHMuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQXJyYXlDb21wYXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9BcnJheUNvbXBhcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDQzNTJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQXJyYXlDb21wYXJhdG9yLmphdmEKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKKworcHVibGljIGNsYXNzIEFycmF5Q29tcGFyYXRvciBpbXBsZW1lbnRzIENvbXBhcmF0b3IgeworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29tcGFyYXRvciBDT01QQVJBQkxFID0gbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgbzEsIE9iamVjdCBvMikgeworICAgICAgICAgICAgcmV0dXJuICgoQ29tcGFyYWJsZSlvMSkuY29tcGFyZVRvKG8yKTsKKyAgICAgICAgfSAKKyAgICB9OworICAgIHByaXZhdGUgQ29tcGFyYXRvcltdIGNvbXBhcmF0b3JzOworICAgIHByaXZhdGUgaW50W10gcmVvcmRlcmluZzsKKyAgICAKKyAgICBwdWJsaWMgQXJyYXlDb21wYXJhdG9yIChDb21wYXJhdG9yW10gY29tcGFyYXRvcnMsIGludFtdIHJlb3JkZXJpbmcpIHsKKyAgICAgICAgdGhpcy5jb21wYXJhdG9ycyA9IGNvbXBhcmF0b3JzOworICAgICAgICB0aGlzLnJlb3JkZXJpbmcgPSByZW9yZGVyaW5nOworICAgICAgICBpZiAodGhpcy5yZW9yZGVyaW5nID09IG51bGwpIHsKKyAgICAgICAgCXRoaXMucmVvcmRlcmluZyA9IG5ldyBpbnRbY29tcGFyYXRvcnMubGVuZ3RoXTsKKyAgICAgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgdGhpcy5yZW9yZGVyaW5nLmxlbmd0aDsgKytpKSB7CisgICAgICAgIAkJdGhpcy5yZW9yZGVyaW5nW2ldID0gaTsKKyAgICAgICAgCX0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgCWlmICh0aGlzLnJlb3JkZXJpbmcubGVuZ3RoICE9IHRoaXMuY29tcGFyYXRvcnMubGVuZ3RoKSB7CisgICAgICAgIAkJdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiY29tcGFyYXRvciBhbmQgcmVvcmRlcmluZyBsZW5ndGhzIG11c3QgbWF0Y2giKTsKKyAgICAgICAgCX0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQXJyYXlDb21wYXJhdG9yIChDb21wYXJhdG9yW10gY29tcGFyYXRvcnMpIHsKKyAgICAgICAgdGhpcyhjb21wYXJhdG9ycyxudWxsKTsKKyAgICB9CisgICAgCisgICAgLyogTGV4aWdyYXBoaWMgY29tcGFyZS4gUmV0dXJucyB0aGUgZmlyc3QgZGlmZmVyZW5jZQorICAgICAqIEByZXR1cm4gemVybyBpZiBlcXVhbC4gT3RoZXJ3aXNlICsvLSAoaSsxKSAKKyAgICAgKiB3aGVyZSBpIGlzIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY29tcGFyYXRvciBmaW5kaW5nIGEgZGlmZmVyZW5jZQorICAgICAqIEBzZWUgamF2YS51dGlsLkNvbXBhcmF0b3IjY29tcGFyZShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KQorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYTAsIE9iamVjdCBhMSkgeworICAgIAlPYmplY3RbXSBhcmcwID0gKE9iamVjdFtdKSBhMDsKKyAgICAJT2JqZWN0W10gYXJnMSA9IChPYmplY3RbXSkgYTE7CisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgY29tcGFyYXRvcnMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgCWludCBpID0gcmVvcmRlcmluZ1tqXTsKKyAgICAgICAgCUNvbXBhcmF0b3IgY29tcCA9IGNvbXBhcmF0b3JzW2ldOworICAgICAgICAJaWYgKGNvbXAgPT0gbnVsbCkgY29udGludWU7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gY29tcC5jb21wYXJlKGFyZzBbaV0sIGFyZzFbaV0pOworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPiAwKSByZXR1cm4gaSsxOworICAgICAgICAgICAgcmV0dXJuIC0oaSsxKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgQ2F0Y2hFeGNlcHRpb25Db21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHByaXZhdGUgQ29tcGFyYXRvciBvdGhlcjsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBDYXRjaEV4Y2VwdGlvbkNvbXBhcmF0b3IoQ29tcGFyYXRvciBvdGhlcikgeworICAgICAgICAgICAgdGhpcy5vdGhlciA9IG90aGVyOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhcmcwLCBPYmplY3QgYXJnMSkgdGhyb3dzIFJ1bnRpbWVFeGNlcHRpb24geworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXIuY29tcGFyZShhcmcwLCBhcmcxKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQXJnMDogIiArIGFyZzApOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQXJnMTogIiArIGFyZzEpOworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQk5GLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9CTkYuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjNlZGFiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQk5GLmphdmEKQEAgLTAsMCArMSwzMjUgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKK3B1YmxpYyBjbGFzcyBCTkYgeworICAgIHByaXZhdGUgTWFwIG1hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgcHJpdmF0ZSBTZXQgdmFyaWFibGVzID0gbmV3IEhhc2hTZXQoKTsKKyAgICBwcml2YXRlIFBpY2sgcGljayA9IG51bGw7CisgICAgcHJpdmF0ZSBQaWNrLlRhcmdldCB0YXJnZXQgPSBudWxsOworICAgIHByaXZhdGUgVG9rZW5pemVyIHQ7CisgICAgcHJpdmF0ZSBRdW90ZXIgcXVvdGVyOworICAgIHByaXZhdGUgUmFuZG9tIHJhbmRvbTsKKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIG5leHQoKSB7CisgICAgICAgIHJldHVybiB0YXJnZXQubmV4dCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldEludGVybmFsKCkgeworICAgICAgICByZXR1cm4gcGljay5nZXRJbnRlcm5hbCgwLCBuZXcgSGFzaFNldCgpKTsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICArICJ3ZWlnaHQgPSBpbnRlZ2VyICclJzsiCisgICAgKyAicmFuZ2UgPSAneycgaW50ZWdlciAoJywnIGludGVnZXI/KT8gJ30nIHdlaWdodCo7IgorICAgICsgInF1b3RlID0gJ0AnOyIKKyAgICArICJzdGFyID0gJyonIHdlaWdodCo7IgorICAgICsgInBsdXMgPSAnKycgd2VpZ2h0KjsiCisgICAgKyAibWF5YmUgPSAnPycgd2VpZ2h0PzsiCisgICAgKyAicXVhbnRpZmllciA9IHJhbmdlIHwgc3RhciB8IG1heWJlIHwgcGx1czsiCisgICAgKyAiY29yZSA9IHN0cmluZyB8IHVuaWNvZGVTZXQgfCAnKCcgYWx0ZXJuYXRpb24gJyknOyIKKyAgICArICJzZXF1ZW5jZSA9IChjb3JlIHF1YW50aWZpZXIqKSs7IgorICAgICsgImFsdGVybmF0aW9uID0gc2VxdWVuY2UgKHdlaWdodD8gKCd8JyBzZXF1ZW5jZSB3ZWlnaHQ/KSspPzsiCisgICAgKyAicnVsZSA9IHN0cmluZyAnPScgYWx0ZXJuYXRpb247IjsgCisgICAgCisgICAgCisgICAgKiAgICAgIE1hdGNoIDAgb3IgbW9yZSB0aW1lcworICAgICsgICAgICBNYXRjaCAxIG9yIG1vcmUgdGltZXMKKyAgICA/ICAgICAgTWF0Y2ggMSBvciAwIHRpbWVzCisgICAge259ICAgIE1hdGNoIGV4YWN0bHkgbiB0aW1lcworICAgIHtuLH0gICBNYXRjaCBhdCBsZWFzdCBuIHRpbWVzCisgICAge24sbX0gIE1hdGNoIGF0IGxlYXN0IG4gYnV0IG5vdCBtb3JlIHRoYW4gbSB0aW1lcyAgCisgCisgCisKKyAgICAqLworICAgIAorICAgIHB1YmxpYyBCTkYoUmFuZG9tIHJhbmRvbSwgUXVvdGVyIHF1b3RlcikgeworICAgICAgICB0aGlzLnJhbmRvbSA9IHJhbmRvbTsKKyAgICAgICAgdGhpcy5xdW90ZXIgPSBxdW90ZXI7CisgICAgICAgIHQgPSBuZXcgVG9rZW5pemVyKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBCTkYgYWRkUnVsZXMoU3RyaW5nIHJ1bGVzKSB7CisgICAgICAgIHQuc2V0U291cmNlKHJ1bGVzKTsgICAgICAgIAorICAgICAgICB3aGlsZSAoYWRkUnVsZSgpKSB7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7IC8vIGZvciBjaGFpbmluZworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQk5GIGNvbXBsZXRlKCkgeworICAgICAgICAvLyBjaGVjayB0aGF0IHRoZSBydWxlcyBtYXRjaCB0aGUgdmFyaWFibGVzLCBleGNlcHQgZm9yICRyb290IGluIHJ1bGVzCisgICAgICAgIFNldCBydWxlU2V0ID0gbWFwLmtleVNldCgpOworICAgICAgICAvLyBhZGQgYWxzbyAKKyAgICAgICAgdmFyaWFibGVzLmFkZCgiJHJvb3QiKTsKKyAgICAgICAgdmFyaWFibGVzLmFkZEFsbCh0LmdldExvb2tlZFVwSXRlbXMoKSk7CisgICAgICAgIGlmICghcnVsZVNldC5lcXVhbHModmFyaWFibGVzKSkgeworICAgICAgICAgICAgU3RyaW5nIG1zZyA9IHNob3dEaWZmKHZhcmlhYmxlcywgcnVsZVNldCk7CisgICAgICAgICAgICBpZiAobXNnLmxlbmd0aCgpICE9IDApIG1zZyA9ICJFcnJvcjogTWlzc2luZyBkZWZpbml0aW9ucyBmb3I6ICIgKyBtc2c7CisgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IHNob3dEaWZmKHJ1bGVTZXQsIHZhcmlhYmxlcyk7CisgICAgICAgICAgICBpZiAodGVtcC5sZW5ndGgoKSAhPSAwKSB0ZW1wID0gIldhcm5pbmc6IERlZmluZWQgYnV0IG5vdCB1c2VkOiAiICsgdGVtcDsKKyAgICAgICAgICAgIGlmIChtc2cubGVuZ3RoKCkgPT0gMCkgbXNnID0gdGVtcDsKKyAgICAgICAgICAgIGVsc2UgaWYgKHRlbXAubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIG1zZyA9IG1zZyArICI7ICIgKyB0ZW1wOyAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJvcihtc2cpOyAgICAgICAgICAgCisgICAgICAgIH0gCisgICAgICAgIAorICAgICAgICBpZiAoIXJ1bGVTZXQuZXF1YWxzKHZhcmlhYmxlcykpIHsKKyAgICAgICAgICAgIFN0cmluZyBtc2cgPSBzaG93RGlmZih2YXJpYWJsZXMsIHJ1bGVTZXQpOworICAgICAgICAgICAgaWYgKG1zZy5sZW5ndGgoKSAhPSAwKSBtc2cgPSAiTWlzc2luZyBkZWZpbml0aW9ucyBmb3I6ICIgKyBtc2c7CisgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IHNob3dEaWZmKHJ1bGVTZXQsIHZhcmlhYmxlcyk7CisgICAgICAgICAgICBpZiAodGVtcC5sZW5ndGgoKSAhPSAwKSB0ZW1wID0gIkRlZmluZWQgYnV0IG5vdCB1c2VkOiAiICsgdGVtcDsKKyAgICAgICAgICAgIGlmIChtc2cubGVuZ3RoKCkgPT0gMCkgbXNnID0gdGVtcDsKKyAgICAgICAgICAgIGVsc2UgaWYgKHRlbXAubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIG1zZyA9IG1zZyArICI7ICIgKyB0ZW1wOyAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBlcnJvcihtc2cpOyAgICAgICAgICAgCisgICAgICAgIH0gCisgICAgICAgIAorICAgICAgICAvLyByZXBsYWNlIHZhcmlhYmxlcyBieSBkZWZpbml0aW9ucworICAgICAgICBJdGVyYXRvciBpdCA9IHJ1bGVTZXQuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgIFBpY2sgZXhwcmVzc2lvbiA9IChQaWNrKSBtYXAuZ2V0KGtleSk7CisgICAgICAgICAgICBJdGVyYXRvciBpdDIgPSBydWxlU2V0Lml0ZXJhdG9yKCk7ICAKKyAgICAgICAgICAgIGlmIChmYWxzZSAmJiBrZXkuZXF1YWxzKCIkY3JsZiIpKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkZWJ1ZyIpIDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlIChpdDIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IGtleTIgPSBpdDIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChrZXkuZXF1YWxzKGtleTIpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBQaWNrIGV4cHJlc3Npb24yID0gKFBpY2spIG1hcC5nZXQoa2V5Mik7CisgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjIucmVwbGFjZShrZXksIGV4cHJlc3Npb24pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHBpY2sgPSAoUGljaykgbWFwLmdldCgiJHJvb3QiKTsKKyAgICAgICAgdGFyZ2V0ID0gUGljay5UYXJnZXQubWFrZShwaWNrLCByYW5kb20sIHF1b3Rlcik7CisgICAgICAgIC8vIFRPRE8gcmVtb3ZlIHRlbXAgY29sbGVjdGlvbnMKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIFN0cmluZyBzaG93RGlmZihTZXQgYSwgU2V0IGIpIHsKKyAgICAgICAgU2V0IHRlbXAgPSBuZXcgSGFzaFNldCgpOworICAgICAgICB0ZW1wLmFkZEFsbChhKTsKKyAgICAgICAgdGVtcC5yZW1vdmVBbGwoYik7CisgICAgICAgIGlmICh0ZW1wLnNpemUoKSA9PSAwKSByZXR1cm4gIiI7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gdGVtcC5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCgpICE9IDApIGJ1ZmZlci5hcHBlbmQoIiwgIik7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGl0Lm5leHQoKS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHZvaWQgZXJyb3IoU3RyaW5nIG1zZykgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKG1zZworICAgICAgICArICJcclxuIiArIHQudG9TdHJpbmcoKSk7CisgICAgfQorICAgIAorICAgIAorICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBhZGRSdWxlKCkgeworICAgICAgICBpbnQgdHlwZSA9IHQubmV4dCgpOworICAgICAgICBpZiAodHlwZSA9PSBUb2tlbml6ZXIuRE9ORSkgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAodHlwZSAhPSBUb2tlbml6ZXIuU1RSSU5HKSBlcnJvcigibWlzc2luZyB3ZWlnaHQiKTsKKyAgICAgICAgU3RyaW5nIHMgPSB0LmdldFN0cmluZygpOworICAgICAgICBpZiAocy5sZW5ndGgoKSA9PSAwIHx8IHMuY2hhckF0KDApICE9ICckJykgZXJyb3IoIm1pc3NpbmcgJCBpbiB2YXJpYWJsZSIpOworICAgICAgICBpZiAodC5uZXh0KCkgIT0gJz0nKSBlcnJvcigibWlzc2luZyA9Iik7CisgICAgICAgIGludCBzdGFydEJvZHkgPSB0LmluZGV4OworICAgICAgICBQaWNrIHJ1bGUgPSBnZXRBbHRlcm5hdGlvbigpOworICAgICAgICBpZiAocnVsZSA9PSBudWxsKSBlcnJvcigibWlzc2luZyBleHByZXNzaW9uIik7CisgICAgICAgIHQuYWRkU3ltYm9sKHMsIHQuZ2V0U291cmNlKCksIHN0YXJ0Qm9keSwgdC5pbmRleCk7CisgICAgICAgIGlmICh0Lm5leHQoKSAhPSAnOycpIGVycm9yKCJtaXNzaW5nIDsiKTsgICAgICAgCisgICAgICAgIHJldHVybiBhZGRQaWNrKHMsIHJ1bGUpOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIGFkZFBpY2soU3RyaW5nIHMsIFBpY2sgcnVsZSkgeworICAgICAgICBPYmplY3QgdGVtcCA9IG1hcC5nZXQocyk7CisgICAgICAgIGlmICh0ZW1wICE9IG51bGwpIGVycm9yKCJkdXBsaWNhdGUgdmFyaWFibGUiKTsKKyAgICAgICAgaWYgKHJ1bGUubmFtZSA9PSBudWxsKSBydWxlLm5hbWUocyk7CisgICAgICAgIG1hcC5wdXQocywgcnVsZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQk5GIGFkZFNldChTdHJpbmcgdmFyaWFibGUsIFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIGlmIChzZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nIGJvZHkgPSBzZXQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIHQuYWRkU3ltYm9sKHZhcmlhYmxlLCBib2R5LCAwLCBib2R5Lmxlbmd0aCgpKTsgICAgICAgIAorICAgICAgICAgICAgYWRkUGljayh2YXJpYWJsZSwgUGljay5jb2RlUG9pbnQoc2V0KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIGludCBtYXhSZXBlYXQgPSA5OTsKKyAgICAKKyAgICBQaWNrIHF1YWxpZnkoUGljayBpdGVtKSB7CisgICAgICAgIGludFtdIHdlaWdodHM7CisgICAgICAgIGludCB0eXBlID0gdC5uZXh0KCk7CisgICAgICAgIHN3aXRjaCh0eXBlKSB7CisgICAgICAgICAgICBjYXNlICdAJzogCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQaWNrLlF1b3RlKGl0ZW0pOworICAgICAgICAgICAgY2FzZSAnfic6IAorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUGljay5Nb3JwaChpdGVtKTsKKyAgICAgICAgICAgIGNhc2UgJz8nOiAKKyAgICAgICAgICAgICAgICBpbnQgd2VpZ2h0ID0gZ2V0V2VpZ2h0KCk7CisgICAgICAgICAgICAgICAgaWYgKHdlaWdodCA9PSBOT19XRUlHSFQpIHdlaWdodCA9IDUwOworICAgICAgICAgICAgICAgIHdlaWdodHMgPSBuZXcgaW50W10gezEwMC13ZWlnaHQsIHdlaWdodH07CisgICAgICAgICAgICAgICAgcmV0dXJuIFBpY2sucmVwZWF0KDAsIDEsIHdlaWdodHMsIGl0ZW0pOworICAgICAgICAgICAgY2FzZSAnKic6IAorICAgICAgICAgICAgICAgIHdlaWdodHMgPSBnZXRXZWlnaHRzKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBpY2sucmVwZWF0KDEsIG1heFJlcGVhdCwgd2VpZ2h0cywgaXRlbSk7CisgICAgICAgICAgICBjYXNlICcrJzogCisgICAgICAgICAgICAgICAgd2VpZ2h0cyA9IGdldFdlaWdodHMoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gUGljay5yZXBlYXQoMSwgbWF4UmVwZWF0LCB3ZWlnaHRzLCBpdGVtKTsKKyAgICAgICAgICAgIGNhc2UgJ3snOgorICAgICAgICAgICAgICAgIGlmICh0Lm5leHQoKSAhPSBUb2tlbml6ZXIuTlVNQkVSKSBlcnJvcigibWlzc2luZyBudW1iZXIiKTsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSAoaW50KSB0LmdldE51bWJlcigpOworICAgICAgICAgICAgICAgIGludCBlbmQgPSBzdGFydDsKKyAgICAgICAgICAgICAgICB0eXBlID0gdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gJywnKSB7CisgICAgICAgICAgICAgICAgICAgIGVuZCA9IG1heFJlcGVhdDsKKyAgICAgICAgICAgICAgICAgICAgdHlwZSA9IHQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBUb2tlbml6ZXIuTlVNQkVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSAoaW50KXQuZ2V0TnVtYmVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHR5cGUgIT0gJ30nKSBlcnJvcigibWlzc2luZyB9Iik7CisgICAgICAgICAgICAgICAgd2VpZ2h0cyA9IGdldFdlaWdodHMoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gUGljay5yZXBlYXQoc3RhcnQsIGVuZCwgd2VpZ2h0cywgaXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgdC5iYWNrdXAoKTsKKyAgICAgICAgcmV0dXJuIGl0ZW07CisgICAgfQorICAgIAorICAgIFBpY2sgZ2V0Q29yZSgpIHsKKyAgICAgICAgaW50IHRva2VuID0gdC5uZXh0KCk7CisgICAgICAgIGlmICh0b2tlbiA9PSBUb2tlbml6ZXIuU1RSSU5HKSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IHQuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICBpZiAocy5jaGFyQXQoMCkgPT0gJyQnKSB2YXJpYWJsZXMuYWRkKHMpOworICAgICAgICAgICAgcmV0dXJuIFBpY2suc3RyaW5nKHMpOworICAgICAgICB9CisgICAgICAgIGlmICh0b2tlbiA9PSBUb2tlbml6ZXIuVU5JQ09ERVNFVCkgeworICAgICAgICAgICAgcmV0dXJuIFBpY2suY29kZVBvaW50KHQuZ2V0VW5pY29kZVNldCgpKTsgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBpZiAodG9rZW4gIT0gJygnKSB7CisgICAgICAgICAgICB0LmJhY2t1cCgpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgUGljayB0ZW1wID0gZ2V0QWx0ZXJuYXRpb24oKTsKKyAgICAgICAgdG9rZW4gPSB0Lm5leHQoKTsKKyAgICAgICAgaWYgKHRva2VuICE9ICcpJykgZXJyb3IoIm1pc3NpbmcgKSIpOyAgICAKKyAgICAgICAgcmV0dXJuIHRlbXA7ICAgIAorICAgIH0KKyAgICAKKyAgICBQaWNrIGdldFNlcXVlbmNlKCkgeworICAgICAgICBQaWNrLlNlcXVlbmNlIHJlc3VsdCA9IG51bGw7CisgICAgICAgIFBpY2sgbGFzdCA9IG51bGw7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBQaWNrIGl0ZW0gPSBnZXRDb3JlKCk7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIGlmIChsYXN0ICE9IG51bGwpIHJldHVybiBsYXN0OworICAgICAgICAgICAgICAgIGVycm9yKCJtaXNzaW5nIGl0ZW0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHF1YWxpZnkgaXQgYXMgbWFueSB0aW1lcyBhcyBwb3NzaWJsZQorICAgICAgICAgICAgUGljayBvbGRJdGVtOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIG9sZEl0ZW0gPSBpdGVtOworICAgICAgICAgICAgICAgIGl0ZW0gPSBxdWFsaWZ5KGl0ZW0pOworICAgICAgICAgICAgfSB3aGlsZSAoaXRlbSAhPSBvbGRJdGVtKTsKKyAgICAgICAgICAgIC8vIGFkZCBpdCBpbgorICAgICAgICAgICAgaWYgKGxhc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxhc3QgPSBpdGVtOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IFBpY2subWFrZVNlcXVlbmNlKCkuYW5kMihsYXN0KTsgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuYW5kMihpdGVtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBmb3Igc2ltcGxpY2l0eSwgd2UganVzdCB1c2UgcmVjdXJzaXZlIGRlc2NlbnQKKyAgICBQaWNrIGdldEFsdGVybmF0aW9uKCkgeworICAgICAgICBQaWNrLkFsdGVybmF0aW9uIHJlc3VsdCA9IG51bGw7CisgICAgICAgIFBpY2sgbGFzdCA9IG51bGw7CisgICAgICAgIGludCBsYXN0V2VpZ2h0ID0gTk9fV0VJR0hUOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgUGljayB0ZW1wID0gZ2V0U2VxdWVuY2UoKTsKKyAgICAgICAgICAgIGlmICh0ZW1wID09IG51bGwpIGVycm9yKCJlbXB0eSBhbHRlcm5hdGlvbiIpOworICAgICAgICAgICAgaW50IHdlaWdodCA9IGdldFdlaWdodCgpOworICAgICAgICAgICAgaWYgKHdlaWdodCA9PSBOT19XRUlHSFQpIHdlaWdodCA9IDE7CisgICAgICAgICAgICBpZiAobGFzdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbGFzdCA9IHRlbXA7CisgICAgICAgICAgICAgICAgbGFzdFdlaWdodCA9IHdlaWdodDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBQaWNrLm1ha2VBbHRlcm5hdGlvbigpLm9yMihsYXN0V2VpZ2h0LCBsYXN0KTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQub3IyKHdlaWdodCwgdGVtcCk7ICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgdG9rZW4gPSB0Lm5leHQoKTsKKyAgICAgICAgICAgIGlmICh0b2tlbiAhPSAnfCcpIHsKKyAgICAgICAgICAgICAgICB0LmJhY2t1cCgpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICBpZiAobGFzdCAhPSBudWxsKSByZXR1cm4gbGFzdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT19XRUlHSFQgPSBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAKKyAgICBpbnQgZ2V0V2VpZ2h0KCkgeyAgICAgICAKKyAgICAgICAgaW50IHdlaWdodDsKKyAgICAgICAgaW50IHRva2VuID0gdC5uZXh0KCk7CisgICAgICAgIGlmICh0b2tlbiAhPSBUb2tlbml6ZXIuTlVNQkVSKSB7CisgICAgICAgICAgICB0LmJhY2t1cCgpOworICAgICAgICAgICAgcmV0dXJuIE5PX1dFSUdIVDsKKyAgICAgICAgfQorICAgICAgICB3ZWlnaHQgPSAoaW50KXQuZ2V0TnVtYmVyKCk7CisgICAgICAgIHRva2VuID0gdC5uZXh0KCk7CisgICAgICAgIGlmICh0b2tlbiAhPSAnJScpIGVycm9yKCJtaXNzaW5nICUiKTsKKyAgICAgICAgcmV0dXJuIHdlaWdodDsKKyAgICB9CisgICAgCisgICAgaW50W10gZ2V0V2VpZ2h0cygpIHsKKyAgICAgICAgQXJyYXlMaXN0IGxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgd2VpZ2h0ID0gZ2V0V2VpZ2h0KCk7CisgICAgICAgICAgICBpZiAod2VpZ2h0ID09IE5PX1dFSUdIVCkgYnJlYWs7CisgICAgICAgICAgICBsaXN0LmFkZChuZXcgSW50ZWdlcih3ZWlnaHQpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobGlzdC5zaXplKCkgPT0gMCkgcmV0dXJuIG51bGw7CisgICAgICAgIGludFtdIHJlc3VsdCA9IG5ldyBpbnRbbGlzdC5zaXplKCldOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxpc3Quc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdFtpXSA9ICgoSW50ZWdlcilsaXN0LmdldChpKSkuaW50VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9CYWdGb3JtYXR0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0JhZ0Zvcm1hdHRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZGIxOWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9CYWdGb3JtYXR0ZXIuamF2YQpAQCAtMCwwICsxLDEwODggQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkV3JpdGVyOworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOworaW1wb3J0IGphdmEuaW8uT3V0cHV0U3RyZWFtV3JpdGVyOworaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CitpbXBvcnQgamF2YS5pby5TdHJpbmdXcml0ZXI7CitpbXBvcnQgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKK3B1YmxpYyBjbGFzcyBCYWdGb3JtYXR0ZXIgeworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIFNIT1dfRklMRVM7CisgICAgc3RhdGljIHsKKwlib29sZWFuIHNob3dGaWxlcyA9IGZhbHNlOworCXRyeSB7CisJICAgIHNob3dGaWxlcyA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgiU0hPV19GSUxFUyIpICE9IG51bGw7CisJfQorCWNhdGNoIChTZWN1cml0eUV4Y2VwdGlvbiBlKSB7CisJfQorCVNIT1dfRklMRVMgPSBzaG93RmlsZXM7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBQcmludFdyaXRlciBDT05TT0xFID0gbmV3IFByaW50V3JpdGVyKFN5c3RlbS5vdXQsdHJ1ZSk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBQcmludFdyaXRlciBsb2cgPSBDT05TT0xFOworCisgICAgcHJpdmF0ZSBib29sZWFuIGFiYnJldmlhdGVkID0gZmFsc2U7CisgICAgcHJpdmF0ZSBTdHJpbmcgc2VwYXJhdG9yID0gIiwiOworICAgIHByaXZhdGUgU3RyaW5nIHByZWZpeCA9ICJbIjsKKyAgICBwcml2YXRlIFN0cmluZyBzdWZmaXggPSAiXSI7CisgICAgcHJpdmF0ZSBVbmljb2RlUHJvcGVydHkuRmFjdG9yeSBzb3VyY2U7CisgICAgcHJpdmF0ZSBVbmljb2RlTGFiZWwgbmFtZVNvdXJjZTsKKyAgICBwcml2YXRlIFVuaWNvZGVMYWJlbCBsYWJlbFNvdXJjZTsKKyAgICBwcml2YXRlIFVuaWNvZGVMYWJlbCByYW5nZUJyZWFrU291cmNlOworICAgIHByaXZhdGUgVW5pY29kZUxhYmVsIHZhbHVlU291cmNlOworICAgIHByaXZhdGUgU3RyaW5nIHByb3BOYW1lID0gIiI7CisgICAgcHJpdmF0ZSBib29sZWFuIHNob3dDb3VudCA9IHRydWU7CisgICAgcHJpdmF0ZSBib29sZWFuIHNraXBOdWxsVmFsdWVzID0gdHJ1ZTsKKyAgICAvL3ByaXZhdGUgYm9vbGVhbiBzdXBwcmVzc1Jlc2VydmVkID0gdHJ1ZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gaGV4VmFsdWUgPSBmYWxzZTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTlVMTF9WQUxVRSA9ICJfTlVMTF9WQUxVRV8iOworICAgIHByaXZhdGUgaW50IGZ1bGxUb3RhbCA9IC0xOworICAgIHByaXZhdGUgU3RyaW5nIGxpbmVTZXBhcmF0b3IgPSAiXHJcbiI7CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBVbmljb2RlU2V0cywgYW5kIHNob3cgdGhlIGRpZmZlcmVuY2VzCisgICAgICogQHBhcmFtIG5hbWUxIG5hbWUgb2YgZmlyc3Qgc2V0IHRvIGJlIGNvbXBhcmVkCisgICAgICogQHBhcmFtIHNldDEgZmlyc3Qgc2V0CisgICAgICogQHBhcmFtIG5hbWUyIG5hbWUgb2Ygc2Vjb25kIHNldCB0byBiZSBjb21wYXJlZAorICAgICAqIEBwYXJhbSBzZXQyIHNlY29uZCBzZXQKKyAgICAgKiBAcmV0dXJuIGZvcm1hdHRlZCBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHNob3dTZXREaWZmZXJlbmNlcygKKyAgICAgICAgU3RyaW5nIG5hbWUxLAorICAgICAgICBVbmljb2RlU2V0IHNldDEsCisgICAgICAgIFN0cmluZyBuYW1lMiwKKyAgICAgICAgVW5pY29kZVNldCBzZXQyKSB7CisKKyAgICAgICAgU3RyaW5nV3JpdGVyIHJlc3VsdCA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKKyAgICAgICAgc2hvd1NldERpZmZlcmVuY2VzKG5ldyBQcmludFdyaXRlcihyZXN1bHQpLG5hbWUxLHNldDEsbmFtZTIsc2V0Mik7CisgICAgICAgIHJlc3VsdC5mbHVzaCgpOworICAgICAgICByZXR1cm4gcmVzdWx0LmdldEJ1ZmZlcigpLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBzaG93U2V0RGlmZmVyZW5jZXMoCisgICAgICAgIFN0cmluZyBuYW1lMSwKKyAgICAgICAgQ29sbGVjdGlvbiBzZXQxLAorICAgICAgICBTdHJpbmcgbmFtZTIsCisgICAgICAgIENvbGxlY3Rpb24gc2V0MikgeworCisgICAgICAgIFN0cmluZ1dyaXRlciByZXN1bHQgPSBuZXcgU3RyaW5nV3JpdGVyKCk7CisgICAgICAgIHNob3dTZXREaWZmZXJlbmNlcyhuZXcgUHJpbnRXcml0ZXIocmVzdWx0KSwgbmFtZTEsIHNldDEsIG5hbWUyLCBzZXQyKTsKKyAgICAgICAgcmVzdWx0LmZsdXNoKCk7CisgICAgICAgIHJldHVybiByZXN1bHQuZ2V0QnVmZmVyKCkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzaG93U2V0RGlmZmVyZW5jZXMoCisgICAgICAgICAgICBQcmludFdyaXRlciBwdywKKyAgICAgICAgICAgIFN0cmluZyBuYW1lMSwKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0MSwKKyAgICAgICAgICAgIFN0cmluZyBuYW1lMiwKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0MikgeworICAgIAlzaG93U2V0RGlmZmVyZW5jZXMocHcsIG5hbWUxLCBzZXQxLCBuYW1lMiwgc2V0MiwgLTEpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBVbmljb2RlU2V0cywgYW5kIHNob3cgdGhlIGRpZmZlcmVuY2VzCisgICAgICogQHBhcmFtIG5hbWUxIG5hbWUgb2YgZmlyc3Qgc2V0IHRvIGJlIGNvbXBhcmVkCisgICAgICogQHBhcmFtIHNldDEgZmlyc3Qgc2V0CisgICAgICogQHBhcmFtIG5hbWUyIG5hbWUgb2Ygc2Vjb25kIHNldCB0byBiZSBjb21wYXJlZAorICAgICAqIEBwYXJhbSBzZXQyIHNlY29uZCBzZXQKKyAgICAgKiBAcmV0dXJuIGZvcm1hdHRlZCBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzaG93U2V0RGlmZmVyZW5jZXMoCisgICAgICAgIFByaW50V3JpdGVyIHB3LAorICAgICAgICBTdHJpbmcgbmFtZTEsCisgICAgICAgIFVuaWNvZGVTZXQgc2V0MSwKKyAgICAgICAgU3RyaW5nIG5hbWUyLAorICAgICAgICBVbmljb2RlU2V0IHNldDIsCisJCWludCBmbGFncykgCisgICAgeworICAgICAgICBpZiAocHcgPT0gbnVsbCkgcHcgPSBDT05TT0xFOworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IHsgbmFtZTEsIG5hbWUyIH07CisKKyAgICAgICAgVW5pY29kZVNldCB0ZW1wOworICAgICAgICAKKyAgICAgICAgaWYgKChmbGFncyYxKSAhPSAwKSB7CisgICAgICAgIAl0ZW1wID0gbmV3IFVuaWNvZGVTZXQoc2V0MSkucmVtb3ZlQWxsKHNldDIpOworCSAgICAgICAgcHcucHJpbnQobGluZVNlcGFyYXRvcik7CisJICAgICAgICBwdy5wcmludChpbk91dC5mb3JtYXQobmFtZXMpKTsKKwkgICAgICAgIHB3LnByaW50KGxpbmVTZXBhcmF0b3IpOworCSAgICAgICAgc2hvd1NldE5hbWVzKHB3LCB0ZW1wKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgoZmxhZ3MmMikgIT0gMCkgeworICAgICAgICAJdGVtcCA9IG5ldyBVbmljb2RlU2V0KHNldDIpLnJlbW92ZUFsbChzZXQxKTsKKwkgICAgICAgIHB3LnByaW50KGxpbmVTZXBhcmF0b3IpOworCSAgICAgICAgcHcucHJpbnQob3V0SW4uZm9ybWF0KG5hbWVzKSk7CisJICAgICAgICBwdy5wcmludChsaW5lU2VwYXJhdG9yKTsKKwkgICAgICAgIHNob3dTZXROYW1lcyhwdywgdGVtcCk7CisJICAgIH0KKworICAgICAgICBpZiAoKGZsYWdzJjQpICE9IDApIHsKKwkgICAgICAgIHRlbXAgPSBuZXcgVW5pY29kZVNldChzZXQyKS5yZXRhaW5BbGwoc2V0MSk7CisJICAgICAgICBwdy5wcmludChsaW5lU2VwYXJhdG9yKTsKKwkgICAgICAgIHB3LnByaW50KGluSW4uZm9ybWF0KG5hbWVzKSk7CisJICAgICAgICBwdy5wcmludChsaW5lU2VwYXJhdG9yKTsKKwkgICAgICAgIHNob3dTZXROYW1lcyhwdywgdGVtcCk7CisgICAgICAgIH0KKyAgICAgICAgcHcuZmx1c2goKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzaG93U2V0RGlmZmVyZW5jZXMoCisgICAgICAgIFByaW50V3JpdGVyIHB3LAorICAgICAgICBTdHJpbmcgbmFtZTEsCisgICAgICAgIENvbGxlY3Rpb24gc2V0MSwKKyAgICAgICAgU3RyaW5nIG5hbWUyLAorICAgICAgICBDb2xsZWN0aW9uIHNldDIpIHsKKworICAgICAgICBpZiAocHcgPT0gbnVsbCkgcHcgPSBDT05TT0xFOworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IHsgbmFtZTEsIG5hbWUyIH07CisgICAgICAgIC8vIGRhbW4nZCBjb2xsZWN0aW9uIGRvZXNuJ3QgaGF2ZSBhIGNsb25lLCBzbworICAgICAgICAvLyB3ZSBnbyB3aXRoIFNldCwgZXZlbiB0aG91Z2ggdGhhdAorICAgICAgICAvLyBtYXkgbm90IHByZXNlcnZlIG9yZGVyIGFuZCBkdXBsaWNhdGVzCisgICAgICAgIENvbGxlY3Rpb24gdGVtcCA9IG5ldyBIYXNoU2V0KHNldDEpOworICAgICAgICB0ZW1wLnJlbW92ZUFsbChzZXQyKTsKKyAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICBwdy5wcmludGxuKGluT3V0LmZvcm1hdChuYW1lcykpOworICAgICAgICBzaG93U2V0TmFtZXMocHcsIHRlbXApOworCisgICAgICAgIHRlbXAuY2xlYXIoKTsKKyAgICAgICAgdGVtcC5hZGRBbGwoc2V0Mik7CisgICAgICAgIHRlbXAucmVtb3ZlQWxsKHNldDEpOworICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgIHB3LnByaW50bG4ob3V0SW4uZm9ybWF0KG5hbWVzKSk7CisgICAgICAgIHNob3dTZXROYW1lcyhwdywgdGVtcCk7CisKKyAgICAgICAgdGVtcC5jbGVhcigpOworICAgICAgICB0ZW1wLmFkZEFsbChzZXQxKTsKKyAgICAgICAgdGVtcC5yZXRhaW5BbGwoc2V0Mik7CisgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgcHcucHJpbnRsbihpbkluLmZvcm1hdChuYW1lcykpOworICAgICAgICBzaG93U2V0TmFtZXMocHcsIHRlbXApOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGl0ZW1zIGluIHRoZSBjb2xsZWN0aW9uLCB3aXRoIGVhY2ggc2VwYXJhdGVkIGJ5IHRoZSBzZXBhcmF0b3IuCisgICAgICogRWFjaCBpdGVtIG11c3Qgbm90IGJlIG51bGw7IGl0cyB0b1N0cmluZygpIGlzIGNhbGxlZCBmb3IgYSBwcmludGFibGUgcmVwcmVzZW50YXRpb24KKyAgICAgKiBAcGFyYW0gYyBzb3VyY2UgY29sbGVjdGlvbgorICAgICAqIEByZXR1cm4gYSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGxpc3QKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHNob3dTZXROYW1lcyhPYmplY3QgYykgeworICAgICAgICBTdHJpbmdXcml0ZXIgYnVmZmVyID0gbmV3IFN0cmluZ1dyaXRlcigpOworICAgICAgICBQcmludFdyaXRlciBvdXRwdXQgPSBuZXcgUHJpbnRXcml0ZXIoYnVmZmVyKTsKKyAgICAgICAgc2hvd1NldE5hbWVzKG91dHB1dCxjKTsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGl0ZW1zIGluIHRoZSBjb2xsZWN0aW9uLCB3aXRoIGVhY2ggc2VwYXJhdGVkIGJ5IHRoZSBzZXBhcmF0b3IuCisgICAgICogRWFjaCBpdGVtIG11c3Qgbm90IGJlIG51bGw7IGl0cyB0b1N0cmluZygpIGlzIGNhbGxlZCBmb3IgYSBwcmludGFibGUgcmVwcmVzZW50YXRpb24KKyAgICAgKiBAcGFyYW0gb3V0cHV0IGRlc3RpbmF0aW9uIHRvIHdoaWNoIHRvIHdyaXRlIG5hbWVzCisgICAgICogQHBhcmFtIGMgc291cmNlIGNvbGxlY3Rpb24KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzaG93U2V0TmFtZXMoUHJpbnRXcml0ZXIgb3V0cHV0LCBPYmplY3QgYykgeworICAgICAgICBtYWluVmlzaXRvci5kb0F0KGMsIG91dHB1dCk7CisgICAgICAgIG91dHB1dC5mbHVzaCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGl0ZW1zIGluIHRoZSBjb2xsZWN0aW9uLCB3aXRoIGVhY2ggc2VwYXJhdGVkIGJ5IHRoZSBzZXBhcmF0b3IuCisgICAgICogRWFjaCBpdGVtIG11c3Qgbm90IGJlIG51bGw7IGl0cyB0b1N0cmluZygpIGlzIGNhbGxlZCBmb3IgYSBwcmludGFibGUgcmVwcmVzZW50YXRpb24KKyAgICAgKiBAcGFyYW0gZmlsZW5hbWUgZGVzdGluYXRpb24gdG8gd2hpY2ggdG8gd3JpdGUgbmFtZXMKKyAgICAgKiBAcGFyYW0gYyBzb3VyY2UgY29sbGVjdGlvbgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNob3dTZXROYW1lcyhTdHJpbmcgZmlsZW5hbWUsIE9iamVjdCBjKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBQcmludFdyaXRlciBwdyA9IG5ldyBQcmludFdyaXRlcigKKyAgICAgICAgICAgIG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZW5hbWUpLCJ1dGYtOCIpKTsKKyAgICAgICAgc2hvd1NldE5hbWVzKGxvZyxjKTsKKyAgICAgICAgcHcuY2xvc2UoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEFiYnJldmlhdGVkTmFtZSgKKyAgICAgICAgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4sCisgICAgICAgIFN0cmluZyBzdWJzdGl0dXRlKSB7CisKKyAgICAgICAgaW50IG1hdGNoRW5kID0gTmFtZUl0ZXJhdG9yLmZpbmRNYXRjaGluZ0VuZChzb3VyY2UsIHBhdHRlcm4pOworICAgICAgICBpbnQgc2RpdiA9IHNvdXJjZS5sZW5ndGgoKSAtIG1hdGNoRW5kOworICAgICAgICBpbnQgcGRpdiA9IHBhdHRlcm4ubGVuZ3RoKCkgLSBtYXRjaEVuZDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYWRkTWF0Y2hpbmcoCisgICAgICAgICAgICBzb3VyY2Uuc3Vic3RyaW5nKDAsIHNkaXYpLAorICAgICAgICAgICAgcGF0dGVybi5zdWJzdHJpbmcoMCwgcGRpdiksCisgICAgICAgICAgICBzdWJzdGl0dXRlLAorICAgICAgICAgICAgcmVzdWx0KTsKKyAgICAgICAgYWRkTWF0Y2hpbmcoCisgICAgICAgICAgICBzb3VyY2Uuc3Vic3RyaW5nKHNkaXYpLAorICAgICAgICAgICAgcGF0dGVybi5zdWJzdHJpbmcocGRpdiksCisgICAgICAgICAgICBzdWJzdGl0dXRlLAorICAgICAgICAgICAgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIGFic3RyYWN0IHB1YmxpYyBzdGF0aWMgY2xhc3MgUmVsYXRpb24geworICAgICAgICBhYnN0cmFjdCBwdWJsaWMgU3RyaW5nIGdldFJlbGF0aW9uKFN0cmluZyBhLCBTdHJpbmcgYik7CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIE51bGxSZWxhdGlvbiBleHRlbmRzIFJlbGF0aW9uIHsKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRSZWxhdGlvbihTdHJpbmcgYSwgU3RyaW5nIGIpIHsgcmV0dXJuICIiOyB9CisgICAgfQorCisgICAgcHJpdmF0ZSBSZWxhdGlvbiByID0gbmV3IE51bGxSZWxhdGlvbigpOworCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRSZWxhdGlvbihSZWxhdGlvbiByKSB7CisgICAgICAgIHRoaXMuciA9IHI7CisgICAgICAgIHJldHVybiB0aGlzOyAvLyBmb3IgY2hhaW5pbmcKKyAgICB9CisKKyAgICBwdWJsaWMgUmVsYXRpb24gZ2V0UmVsYXRpb24oKSB7CisgICAgICAgIHJldHVybiByOworICAgIH0KKworICAgIC8qCisgICAgIHIuZ2V0UmVsYXRpIG9uKGxhc3QsIHMpICsgcXVvdGUocykgKyAiXHQjIiArIFVuaWNvZGVTZXRGb3JtYXR0ZXIuZ2V0UmVzb2x2ZWROYW1lKHMpCisgICAgKi8KKyAgICAvKgorICAgIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IE5PX05BTUUgPQorICAgICAgICBuZXcgVW5pY29kZVNldCgiW1xcdTAwODBcXHUwMDgxXFx1MDA4NFxcdTAwOTlcXHB7Q259XFxwe0NvfV0iKTsKKyAgICBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBIQVNfTkFNRSA9IG5ldyBVbmljb2RlU2V0KE5PX05BTUUpLmNvbXBsZW1lbnQoKTsKKyAgICBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBOQU1FX0NIQVJBQ1RFUlMgPQorICAgICAgICBuZXcgVW5pY29kZVNldCgiW0EtWmEtejAtOVxcPFxcPlxcLVxcIF0iKTsKKworICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFNldEZvck5hbWUoU3RyaW5nIG5hbWVQYXR0ZXJuKSB7CisgICAgICAgIFVuaWNvZGVTZXQgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgTWF0Y2hlciBtID0gUGF0dGVybi5jb21waWxlKG5hbWVQYXR0ZXJuKS5tYXRjaGVyKCIiKTsKKyAgICAgICAgLy8gY2hlY2sgZm9yIG5vLW5hbWUgaXRlbXMsIGFuZCBhZGQgaW4gYnVsaworICAgICAgICBtLnJlc2V0KCI8bm8gbmFtZT4iKTsKKyAgICAgICAgaWYgKG0ubWF0Y2hlcygpKSB7CisgICAgICAgICAgICByZXN1bHQuYWRkQWxsKE5PX05BTUUpOworICAgICAgICB9CisgICAgICAgIC8vIGNoZWNrIGFsbCBvdGhlcnMKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIHVzaSA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3IoSEFTX05BTUUpOworICAgICAgICB3aGlsZSAodXNpLm5leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBnZXROYW1lKHVzaS5jb2RlcG9pbnQpOworICAgICAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIG0ucmVzZXQobmFtZSk7CisgICAgICAgICAgICBpZiAobS5tYXRjaGVzKCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYWRkKHVzaS5jb2RlcG9pbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIE5vdGU6IGlmIFJlZ2V4IGhhZCBzb21lIEFQSSBzbyB0aGF0IGlmIHdlIGNvdWxkIHRlbGwgdGhhdAorICAgICAgICAvLyBhbiBpbml0aWFsIHN1YnN0cmluZyBjb3VsZG4ndCBtYXRjaCwgZS5nLiAiQ0pLIElERU9HUkFQSC0iCisgICAgICAgIC8vIHRoZW4gd2UgY291bGQgb3B0aW1pemUgYnkgc2tpcHBpbmcgd2hvbGUgc3dhdGhlcyBvZiBjaGFyYWN0ZXJzCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgICovCisKKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldE1lcmdlUmFuZ2VzKGJvb2xlYW4gaW4pIHsKKyAgICAgICAgbWVyZ2VSYW5nZXMgPSBpbjsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0U2hvd1NldEFsc28oYm9vbGVhbiBiKSB7CisgICAgICAgIHNob3dTZXRBbHNvID0gYjsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKGludCBjb2RlUG9pbnQpIHsKKyAgICAgICAgcmV0dXJuIGdldE5hbWUoIiIsIGNvZGVQb2ludCwgY29kZVBvaW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoU3RyaW5nIHNlcGFyYXRvciwgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGlmIChnZXROYW1lU291cmNlKCkgPT0gbnVsbCB8fCBnZXROYW1lU291cmNlKCkgPT0gVW5pY29kZVByb3BlcnR5Lk5VTEwpIHJldHVybiAiIjsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGdldE5hbWUoc3RhcnQsIGZhbHNlKTsKKyAgICAgICAgaWYgKHN0YXJ0ID09IGVuZCkgcmV0dXJuIHNlcGFyYXRvciArIHJlc3VsdDsKKyAgICAgICAgU3RyaW5nIGVuZFN0cmluZyA9IGdldE5hbWUoZW5kLCBmYWxzZSk7CisgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgPT0gMCAmJiBlbmRTdHJpbmcubGVuZ3RoKCkgPT0gMCkgcmV0dXJuIHNlcGFyYXRvcjsKKyAgICAgICAgaWYgKGFiYnJldmlhdGVkKSBlbmRTdHJpbmcgPSBnZXRBYmJyZXZpYXRlZE5hbWUoZW5kU3RyaW5nLHJlc3VsdCwifiIpOworICAgICAgICByZXR1cm4gc2VwYXJhdG9yICsgcmVzdWx0ICsgIi4uIiArIGVuZFN0cmluZzsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoU3RyaW5nIHMpIHsKKyAgICAgICAgcmV0dXJuIGdldE5hbWUocywgZmFsc2UpOworICAgIH0KKworICAgIGNsYXNzIE5hbWVMYWJlbCBleHRlbmRzIFVuaWNvZGVMYWJlbCB7CisgICAgICAgIFVuaWNvZGVQcm9wZXJ0eSBuYW1lUHJvcDsKKyAgICAgICAgVW5pY29kZVNldCBjb250cm9sOworICAgICAgICBVbmljb2RlU2V0IHByaXZhdGVfdXNlOworICAgICAgICBVbmljb2RlU2V0IG5vbmNoYXJhY3RlcjsKKyAgICAgICAgVW5pY29kZVNldCBzdXJyb2dhdGU7CisKKyAgICAgICAgTmFtZUxhYmVsKFVuaWNvZGVQcm9wZXJ0eS5GYWN0b3J5IHNvdXJjZSkgeworICAgICAgICAgICAgbmFtZVByb3AgPSBzb3VyY2UuZ2V0UHJvcGVydHkoIk5hbWUiKTsKKyAgICAgICAgICAgIGNvbnRyb2wgPSBzb3VyY2UuZ2V0U2V0KCJnYz1DYyIpOworICAgICAgICAgICAgcHJpdmF0ZV91c2UgPSBzb3VyY2UuZ2V0U2V0KCJnYz1DbyIpOworICAgICAgICAgICAgc3Vycm9nYXRlID0gc291cmNlLmdldFNldCgiZ2M9Q3MiKTsKKyAgICAgICAgICAgIG5vbmNoYXJhY3RlciA9IHNvdXJjZS5nZXRTZXQoIm5vbmNoYXJhY3RlcmNvZGVwb2ludD10cnVlIik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFZhbHVlKGludCBjb2RlUG9pbnQsIGJvb2xlYW4gaXNTaG9ydCkgeworICAgICAgICAgICAgU3RyaW5nIGhjcCA9ICFpc1Nob3J0CisgICAgICAgICAgICAgICAgPyAiVSsiICsgVXRpbGl0eS5oZXgoY29kZVBvaW50LCA0KSArICIgIgorICAgICAgICAgICAgICAgIDogIiI7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbmFtZVByb3AuZ2V0VmFsdWUoY29kZVBvaW50KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICByZXR1cm4gaGNwICsgcmVzdWx0OworICAgICAgICAgICAgaWYgKGNvbnRyb2wuY29udGFpbnMoY29kZVBvaW50KSkgcmV0dXJuICI8Y29udHJvbC0iICsgVXRpbGl0eS5oZXgoY29kZVBvaW50LCA0KSArICI+IjsKKyAgICAgICAgICAgIGlmIChwcml2YXRlX3VzZS5jb250YWlucyhjb2RlUG9pbnQpKSByZXR1cm4gIjxwcml2YXRlLXVzZS0iICsgVXRpbGl0eS5oZXgoY29kZVBvaW50LCA0KSArICI+IjsKKyAgICAgICAgICAgIGlmIChub25jaGFyYWN0ZXIuY29udGFpbnMoY29kZVBvaW50KSkgcmV0dXJuICI8bm9uY2hhcmFjdGVyLSIgKyBVdGlsaXR5LmhleChjb2RlUG9pbnQsIDQpICsgIj4iOworICAgICAgICAgICAgaWYgKHN1cnJvZ2F0ZS5jb250YWlucyhjb2RlUG9pbnQpKSByZXR1cm4gIjxzdXJyb2dhdGUtIiArIFV0aWxpdHkuaGV4KGNvZGVQb2ludCwgNCkgKyAiPiI7CisgICAgICAgICAgICAvL2lmIChzdXBwcmVzc1Jlc2VydmVkKSByZXR1cm4gIiI7CisgICAgICAgICAgICByZXR1cm4gaGNwICsgIjxyZXNlcnZlZC0iICsgVXRpbGl0eS5oZXgoY29kZVBvaW50LCA0KSArICI+IjsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgLy8gcmVmYWN0b3JlZAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZShpbnQgY29kZVBvaW50LCBib29sZWFuIHdpdGhDb2RlUG9pbnQpIHsKKyAgICAJU3RyaW5nIHJlc3VsdCA9IGdldE5hbWVTb3VyY2UoKS5nZXRWYWx1ZShjb2RlUG9pbnQsICF3aXRoQ29kZVBvaW50KTsKKyAgICAgICAgcmV0dXJuIGZpeE5hbWUgPT0gbnVsbCA/IHJlc3VsdCA6IGZpeE5hbWUudHJhbnNsaXRlcmF0ZShyZXN1bHQpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZShTdHJpbmcgcywgYm9vbGVhbiB3aXRoQ29kZVBvaW50KSB7CisgICAgICAgCVN0cmluZyByZXN1bHQgPSBnZXROYW1lU291cmNlKCkuZ2V0VmFsdWUocywgc2VwYXJhdG9yLCAhd2l0aENvZGVQb2ludCk7CisgICAgICAgIHJldHVybiBmaXhOYW1lID09IG51bGwgPyByZXN1bHQgOiBmaXhOYW1lLnRyYW5zbGl0ZXJhdGUocmVzdWx0KTsKKyAgICAgfQorCisgICAgcHVibGljIFN0cmluZyBoZXgoU3RyaW5nIHMpIHsKKyAgICAgICAgcmV0dXJuIGhleChzLHNlcGFyYXRvcik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBoZXgoU3RyaW5nIHMsIFN0cmluZyBzZXBhcmF0b3IpIHsKKyAgICAgICAgcmV0dXJuIFVuaWNvZGVMYWJlbC5IRVguZ2V0VmFsdWUocywgc2VwYXJhdG9yLCB0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGhleChpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBVdGlsaXR5LmhleChzdGFydCw0KTsKKyAgICAgICAgaWYgKHN0YXJ0ID09IGVuZCkgcmV0dXJuIHM7CisgICAgICAgIHJldHVybiBzICsgIi4uIiArIFV0aWxpdHkuaGV4KGVuZCw0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldFVuaWNvZGVQcm9wZXJ0eUZhY3RvcnkoVW5pY29kZVByb3BlcnR5LkZhY3Rvcnkgc291cmNlKSB7CisgICAgICAgIHRoaXMuc291cmNlID0gc291cmNlOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgVW5pY29kZVByb3BlcnR5LkZhY3RvcnkgZ2V0VW5pY29kZVByb3BlcnR5RmFjdG9yeSgpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSBzb3VyY2UgPSBJQ1VQcm9wZXJ0eUZhY3RvcnkubWFrZSgpOworICAgICAgICByZXR1cm4gc291cmNlOworICAgIH0KKworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgKCkgeworICAgIH0KKworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgKFVuaWNvZGVQcm9wZXJ0eS5GYWN0b3J5IHNvdXJjZSkgeworICAgICAgICBzZXRVbmljb2RlUHJvcGVydHlGYWN0b3J5KHNvdXJjZSk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBqb2luKE9iamVjdCBvKSB7CisgICAgICAgIHJldHVybiBsYWJlbFZpc2l0b3Iuam9pbihvKTsKKyAgICB9CisKKyAgICAvLyA9PT09PSBQUklWQVRFUyA9PT09PQorCisgICAgcHJpdmF0ZSBKb2luIGxhYmVsVmlzaXRvciA9IG5ldyBKb2luKCk7CisKKyAgICBwcml2YXRlIGJvb2xlYW4gbWVyZ2VSYW5nZXMgPSB0cnVlOworICAgIHByaXZhdGUgVHJhbnNsaXRlcmF0b3Igc2hvd0xpdGVyYWwgPSBudWxsOworICAgIHByaXZhdGUgVHJhbnNsaXRlcmF0b3IgZml4TmFtZSA9IG51bGw7CisgICAgcHJpdmF0ZSBib29sZWFuIHNob3dTZXRBbHNvID0gZmFsc2U7CisKKyAgICBwcml2YXRlIFJhbmdlRmluZGVyIHJmID0gbmV3IFJhbmdlRmluZGVyKCk7CisKKyAgICBwcml2YXRlIE1lc3NhZ2VGb3JtYXQgaW5PdXQgPSBuZXcgTWVzc2FnZUZvcm1hdCgiSW4gezB9LCBidXQgbm90IGluIHsxfToiKTsKKyAgICBwcml2YXRlIE1lc3NhZ2VGb3JtYXQgb3V0SW4gPSBuZXcgTWVzc2FnZUZvcm1hdCgiTm90IGluIHswfSwgYnV0IGluIHsxfToiKTsKKyAgICBwcml2YXRlIE1lc3NhZ2VGb3JtYXQgaW5JbiA9IG5ldyBNZXNzYWdlRm9ybWF0KCJJbiBib3RoIHswfSwgYW5kIGluIHsxfToiKTsKKworICAgIHByaXZhdGUgTXlWaXNpdG9yIG1haW5WaXNpdG9yID0gbmV3IE15VmlzaXRvcigpOworCisgICAgLyoKKyAgICBwcml2YXRlIFN0cmluZyBnZXRMYWJlbHMoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIFNldCBuYW1lcyA9IG5ldyBUcmVlU2V0KCk7CisgICAgICAgIGZvciAoaW50IGNwID0gc3RhcnQ7IGNwIDw9IGVuZDsgKytjcCkgeworICAgICAgICAgICAgbmFtZXMuYWRkKGdldExhYmVsKGNwKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxhYmVsVmlzaXRvci5qb2luKG5hbWVzKTsKKyAgICB9CisgICAgKi8KKworICAgIHByaXZhdGUgdm9pZCBhZGRNYXRjaGluZygKKyAgICAgICAgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4sCisgICAgICAgIFN0cmluZyBzdWJzdGl0dXRlLAorICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0KSB7CisgICAgICAgIE5hbWVJdGVyYXRvciBuMSA9IG5ldyBOYW1lSXRlcmF0b3Ioc291cmNlKTsKKyAgICAgICAgTmFtZUl0ZXJhdG9yIG4yID0gbmV3IE5hbWVJdGVyYXRvcihwYXR0ZXJuKTsKKyAgICAgICAgYm9vbGVhbiBmaXJzdCA9IHRydWU7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBTdHJpbmcgczEgPSBuMS5uZXh0KCk7CisgICAgICAgICAgICBpZiAoczEgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIFN0cmluZyBzMiA9IG4yLm5leHQoKTsKKyAgICAgICAgICAgIGlmICghZmlyc3QpCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiICIpOworICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChzMS5lcXVhbHMoczIpKQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3Vic3RpdHV0ZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBOdW1iZXJGb3JtYXQgbmYgPQorICAgICAgICBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICBzdGF0aWMgeworICAgICAgICBuZi5zZXRHcm91cGluZ1VzZWQoZmFsc2UpOworICAgIH0KKworICAgIHByaXZhdGUgY2xhc3MgTXlWaXNpdG9yIGV4dGVuZHMgVmlzaXRvciB7CisgICAgICAgIHByaXZhdGUgUHJpbnRXcml0ZXIgb3V0cHV0OworICAgICAgICBUYWJiZXIuTW9ub1RhYmJlciBteVRhYmJlcjsKKyAgICAgICAgU3RyaW5nIGNvbW1lbnRTZXBhcmF0b3I7CisgICAgICAgIGludCBjb3VudGVyOworICAgICAgICBpbnQgdmFsdWVTaXplOworICAgICAgICBpbnQgbGFiZWxTaXplOworCisgICAgICAgIHB1YmxpYyB2b2lkIGRvQXQoT2JqZWN0IGMsIFByaW50V3JpdGVyIG91dHB1dCkgeworICAgICAgICAgICAgdGhpcy5vdXRwdXQgPSBvdXRwdXQ7CisgICAgICAgICAgICBjb3VudGVyID0gMDsKKyAgICAgICAgICAgIG15VGFiYmVyID0gbmV3IFRhYmJlci5Nb25vVGFiYmVyKCk7CisgICAgICAgICAgICBteVRhYmJlci5hZGQobWVyZ2VSYW5nZXMgPyAxNCA6IDYsVGFiYmVyLkxFRlQpOworCisgICAgICAgICAgICBpZiAocHJvcE5hbWUubGVuZ3RoKCkgPiAwKSBteVRhYmJlci5hZGQocHJvcE5hbWUubGVuZ3RoKCkgKyAyLFRhYmJlci5MRUZUKTsKKworICAgICAgICAgICAgdmFsdWVTaXplID0gZ2V0VmFsdWVTb3VyY2UoKS5nZXRNYXhXaWR0aChzaG9ydFZhbHVlKTsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJWYWx1ZVNpemU6ICIgKyB2YWx1ZVNpemUpOworICAgICAgICAgICAgaWYgKHZhbHVlU2l6ZSA+IDApIG15VGFiYmVyLmFkZCh2YWx1ZVNpemUgKyAyLFRhYmJlci5MRUZUKTsgLy8gdmFsdWUKKworICAgICAgICAgICAgbXlUYWJiZXIuYWRkKDMsVGFiYmVyLkxFRlQpOyAvLyBjb21tZW50IGNoYXJhY3RlcgorCisgICAgICAgICAgICBsYWJlbFNpemUgPSBnZXRMYWJlbFNvdXJjZSh0cnVlKS5nZXRNYXhXaWR0aChzaG9ydExhYmVsKTsKKyAgICAgICAgICAgIGlmIChsYWJlbFNpemUgPiAwKSBteVRhYmJlci5hZGQobGFiZWxTaXplICsgMSxUYWJiZXIuTEVGVCk7IC8vIHZhbHVlCisKKyAgICAgICAgICAgIGlmIChtZXJnZVJhbmdlcyAmJiBzaG93Q291bnQpIG15VGFiYmVyLmFkZCg1LFRhYmJlci5SSUdIVCk7CisKKyAgICAgICAgICAgIGlmIChzaG93TGl0ZXJhbCAhPSBudWxsKSBteVRhYmJlci5hZGQoNCxUYWJiZXIuTEVGVCk7CisgICAgICAgICAgICAvL215VGFiYmVyLmFkZCg3LFRhYmJlci5MRUZUKTsKKworICAgICAgICAgICAgY29tbWVudFNlcGFyYXRvciA9IChzaG93Q291bnQgfHwgc2hvd0xpdGVyYWwgIT0gbnVsbAorICAgICAgICAgICAgICB8fCBnZXRMYWJlbFNvdXJjZSh0cnVlKSAhPSBVbmljb2RlUHJvcGVydHkuTlVMTAorICAgICAgICAgICAgICB8fCBnZXROYW1lU291cmNlKCkgIT0gVW5pY29kZVByb3BlcnR5Lk5VTEwpCisgICAgICAgICAgICA/ICJcdCAjIiA6ICIiOworCisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiVGFiYmVyOiAiICsgbXlUYWJiZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiVGFiYmVyOiAiICsgbXlUYWJiZXIucHJvY2VzcygiYVx0Ylx0ZFx0ZFx0Zlx0Z1x0aCIpKTsKKyAgICAgICAgICAgIGRvQXQoYyk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGZvcm1hdChPYmplY3QgbykgeworICAgICAgICAgICAgU3RyaW5nV3JpdGVyIHN3ID0gbmV3IFN0cmluZ1dyaXRlcigpOworICAgICAgICAgICAgUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoc3cpOworICAgICAgICAgICAgZG9BdChvKTsKKyAgICAgICAgICAgIHB3LmZsdXNoKCk7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gc3cuZ2V0QnVmZmVyKCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIHB3LmNsb3NlKCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZG9CZWZvcmUoT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIGlmIChzaG93U2V0QWxzbyAmJiBjb250YWluZXIgaW5zdGFuY2VvZiBVbmljb2RlU2V0KSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCIjIiArIGNvbnRhaW5lciArICBsaW5lU2VwYXJhdG9yICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBkb0JldHdlZW4oT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IGxhc3RJdGVtLCBPYmplY3QgbmV4dEl0ZW0pIHsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGRvQWZ0ZXIoT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIGlmIChmdWxsVG90YWwgIT0gLTEgJiYgZnVsbFRvdGFsICE9IGNvdW50ZXIpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQobGluZVNlcGFyYXRvcik7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCIjIFRoZSBhYm92ZSBwcm9wZXJ0eSB2YWx1ZSBhcHBsaWVzIHRvICIgKyBuZi5mb3JtYXQoZnVsbFRvdGFsLWNvdW50ZXIpICsgIiBjb2RlIHBvaW50cyBub3QgbGlzdGVkIGhlcmUuIiArIGxpbmVTZXBhcmF0b3IpOworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgiIyBUb3RhbCBjb2RlIHBvaW50czogIiArIG5mLmZvcm1hdChmdWxsVG90YWwpICsgbGluZVNlcGFyYXRvcik7CisgICAgICAgICAgICAgICAgZnVsbFRvdGFsID0gLTE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludChsaW5lU2VwYXJhdG9yKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiMgVG90YWwgY29kZSBwb2ludHM6ICIgKyBuZi5mb3JtYXQoY291bnRlcikgKyBsaW5lU2VwYXJhdG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGRvU2ltcGxlQXQoT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIGlmIChvIGluc3RhbmNlb2YgTWFwLkVudHJ5KSB7CisgICAgICAgICAgICAgICAgTWFwLkVudHJ5IG9vID0gKE1hcC5FbnRyeSlvOworICAgICAgICAgICAgICAgIE9iamVjdCBrZXkgPSBvby5nZXRLZXkoKTsKKyAgICAgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBvby5nZXRWYWx1ZSgpOworICAgICAgICAgICAgICAgIGRvQmVmb3JlKG8sIGtleSk7CisgICAgICAgICAgICAgICAgZG9BdChrZXkpOworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgiLT4iKTsKKyAgICAgICAgICAgICAgICBkb0F0KHZhbHVlKTsKKyAgICAgICAgICAgICAgICBkb0FmdGVyKG8sIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBjb3VudGVyKys7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG8gaW5zdGFuY2VvZiBWaXNpdG9yLkNvZGVQb2ludFJhbmdlKSB7CisgICAgICAgICAgICAgICAgZG9BdCgoVmlzaXRvci5Db2RlUG9pbnRSYW5nZSkgbyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFN0cmluZyB0aGluZyA9IG8udG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRWYWx1ZVNvdXJjZSgpID09IFVuaWNvZGVMYWJlbC5OVUxMID8gIiIgOiBnZXRWYWx1ZVNvdXJjZSgpLmdldFZhbHVlKHRoaW5nLCAiLCIsIHRydWUpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGgoKSAhPSAwKSB2YWx1ZSA9ICJcdDsgIiArIHZhbHVlOworICAgICAgICAgICAgICAgIFN0cmluZyBsYWJlbCA9IGdldExhYmVsU291cmNlKHRydWUpLmdldFZhbHVlKHRoaW5nLCAiLCIsIHRydWUpOworICAgICAgICAgICAgICAgIGlmIChsYWJlbC5sZW5ndGgoKSAhPSAwKSBsYWJlbCA9ICIgIiArIGxhYmVsOworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgKKyAgICAgICAgICAgICAgICAgICAgbXlUYWJiZXIucHJvY2VzcygKKyAgICAgICAgICAgICAgICAgICAgICAgIGhleCh0aGluZykKKwkJCQkJCQkrIHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBjb21tZW50U2VwYXJhdG9yCisJCQkJCQkJKyBsYWJlbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgaW5zZXJ0TGl0ZXJhbCh0aGluZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICJcdCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGdldE5hbWUodGhpbmcpKQorICAgICAgICAgICAgICAgICAgICArICBsaW5lU2VwYXJhdG9yICk7CisgICAgICAgICAgICAgICAgY291bnRlcisrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZG9BdChWaXNpdG9yLkNvZGVQb2ludFJhbmdlIHVzaSkgeworICAgICAgICAgICAgaWYgKCFtZXJnZVJhbmdlcykgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGNwID0gdXNpLmNvZGVwb2ludDsgY3AgPD0gdXNpLmNvZGVwb2ludEVuZDsgKytjcCkgeworICAgICAgICAgICAgICAgICAgICBzaG93TGluZShjcCwgY3ApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmYucmVzZXQodXNpLmNvZGVwb2ludCwgdXNpLmNvZGVwb2ludEVuZCArIDEpOworICAgICAgICAgICAgICAgIHdoaWxlIChyZi5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvd0xpbmUocmYuc3RhcnQsIHJmLmxpbWl0IC0gMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNob3dMaW5lKGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gZ2V0TGFiZWxTb3VyY2UodHJ1ZSkuZ2V0VmFsdWUoc3RhcnQsIHNob3J0TGFiZWwpOworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gZ2V0VmFsdWUoc3RhcnQsIHNob3J0VmFsdWUpOworICAgICAgICAgICAgaWYgKHZhbHVlID09IE5VTExfVkFMVUUpIHJldHVybjsKKworICAgICAgICAgICAgY291bnRlciArPSBlbmQgLSBzdGFydCArIDE7CisgICAgICAgICAgICBTdHJpbmcgcG4gPSBwcm9wTmFtZTsKKyAgICAgICAgICAgIGlmIChwbi5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcG4gPSAiXHQ7ICIgKyBwbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh2YWx1ZVNpemUgPiAwKSB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSAiXHQ7ICIgKyB2YWx1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigibWF4d2lkdGggYm9ndXMgIiArIHZhbHVlICsgIiwiICsgZ2V0VmFsdWVTb3VyY2UoKS5nZXRNYXhXaWR0aChzaG9ydFZhbHVlKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGFiZWxTaXplID4gMCkgeworICAgICAgICAgICAgICAgIGxhYmVsID0gIlx0IiArIGxhYmVsOworICAgICAgICAgICAgfSBlbHNlIGlmIChsYWJlbC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJtYXh3aWR0aCBib2d1cyAiICsgbGFiZWwgKyAiLCAiICsgZ2V0TGFiZWxTb3VyY2UodHJ1ZSkuZ2V0TWF4V2lkdGgoc2hvcnRMYWJlbCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdHJpbmcgY291bnQgPSAiIjsKKyAgICAgICAgICAgIGlmIChtZXJnZVJhbmdlcyAmJiBzaG93Q291bnQpIHsKKyAgICAgICAgICAgICAgICBpZiAoZW5kID09IHN0YXJ0KSBjb3VudCA9ICJcdCI7CisgICAgICAgICAgICAgICAgZWxzZSBjb3VudCA9ICJcdCBbIisgbmYuZm9ybWF0KGVuZCAtIHN0YXJ0ICsgMSkrICJdIjsKKyAgICAgICAgICAgfQorCisgICAgICAgICAgICBvdXRwdXQucHJpbnQoCisgICAgICAgICAgICAgICAgbXlUYWJiZXIucHJvY2VzcygKKyAgICAgICAgICAgICAgICAgICAgaGV4KHN0YXJ0LCBlbmQpCisgICAgICAgICAgICAgICAgICAgICAgICArIHBuCisgICAgICAgICAgICAgICAgICAgICAgICArIHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICArIGNvbW1lbnRTZXBhcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgICAgICsgbGFiZWwKKyAgICAgICAgICAgICAgICAgICAgICAgICsgY291bnQKKyAgICAgICAgICAgICAgICAgICAgICAgICsgaW5zZXJ0TGl0ZXJhbChzdGFydCwgZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgKyBnZXROYW1lKCJcdCAiLCBzdGFydCwgZW5kKSkKKyAgICAgICAgICAgICAgICArICBsaW5lU2VwYXJhdG9yICk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIFN0cmluZyBpbnNlcnRMaXRlcmFsKFN0cmluZyB0aGluZykgeworICAgICAgICAgICAgcmV0dXJuIChzaG93TGl0ZXJhbCA9PSBudWxsID8gIiIKKyAgICAgICAgICAgICAgICA6ICAiIFx0KCIgKyBzaG93TGl0ZXJhbC50cmFuc2xpdGVyYXRlKHRoaW5nKSArICIpICIpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgaW5zZXJ0TGl0ZXJhbChpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgICAgIHJldHVybiAoc2hvd0xpdGVyYWwgPT0gbnVsbCA/ICIiIDoKKyAgICAgICAgICAgICAgICAiIFx0KCIgKyBzaG93TGl0ZXJhbC50cmFuc2xpdGVyYXRlKFVURjE2LnZhbHVlT2Yoc3RhcnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAoKHN0YXJ0ICE9IGVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgiLi4iICsgc2hvd0xpdGVyYWwudHJhbnNsaXRlcmF0ZShVVEYxNi52YWx1ZU9mKGVuZCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIiIpCisgICAgICAgICAgICAgICAgKyAiKSAiKTsKKyAgICAgICAgfQorICAgICAgICAvKgorICAgICAgICBwcml2YXRlIFN0cmluZyBpbnNlcnRMaXRlcmFsKGludCBjcCkgeworICAgICAgICAgICAgcmV0dXJuIChzaG93TGl0ZXJhbCA9PSBudWxsID8gIiIKKyAgICAgICAgICAgICAgICA6ICAiIFx0KCIgKyBzaG93TGl0ZXJhbC50cmFuc2xpdGVyYXRlKFVURjE2LnZhbHVlT2YoY3ApKSArICIpICIpOworICAgICAgICB9CisgICAgICAgICovCisgICAgfQorCisgICAgLyoqCisgICAgICogSXRlcmF0ZSB0aHJvdWdoIGEgc3RyaW5nLCBicmVha2luZyBhdCB3b3Jkcy4KKyAgICAgKiBAYXV0aG9yIERhdmlzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgTmFtZUl0ZXJhdG9yIHsKKyAgICAgICAgU3RyaW5nIHNvdXJjZTsKKyAgICAgICAgaW50IHBvc2l0aW9uOworICAgICAgICBpbnQgc3RhcnQ7CisgICAgICAgIGludCBsaW1pdDsKKworICAgICAgICBOYW1lSXRlcmF0b3IoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7CisgICAgICAgICAgICB0aGlzLnN0YXJ0ID0gMDsKKyAgICAgICAgICAgIHRoaXMubGltaXQgPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICAgICAgLyoqCisgICAgICAgICAqIEZpbmQgbmV4dCB3b3JkLCBpbmNsdWRpbmcgdHJhaWxpbmcgc3BhY2VzCisgICAgICAgICAqIEByZXR1cm4gdGhlIG5leHQgd29yZAorICAgICAgICAgKi8KKyAgICAgICAgU3RyaW5nIG5leHQoKSB7CisgICAgICAgICAgICBpZiAocG9zaXRpb24gPj0gbGltaXQpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICBpbnQgcG9zID0gc291cmNlLmluZGV4T2YoJyAnLCBwb3NpdGlvbik7CisgICAgICAgICAgICBpZiAocG9zIDwgMCB8fCBwb3MgPj0gbGltaXQpCisgICAgICAgICAgICAgICAgcG9zID0gbGltaXQ7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gc291cmNlLnN1YnN0cmluZyhwb3NpdGlvbiwgcG9zKTsKKyAgICAgICAgICAgIHBvc2l0aW9uID0gcG9zICsgMTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgaW50IGZpbmRNYXRjaGluZ0VuZChTdHJpbmcgczEsIFN0cmluZyBzMikgeworICAgICAgICAgICAgaW50IGkgPSBzMS5sZW5ndGgoKTsKKyAgICAgICAgICAgIGludCBqID0gczIubGVuZ3RoKCk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgICAgIC0taTsgLy8gZGVjcmVtZW50IGJvdGggYmVmb3JlIGNhbGxpbmcgZnVuY3Rpb24hCisgICAgICAgICAgICAgICAgICAgIC0tajsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHMxLmNoYXJBdChpKSAhPSBzMi5jaGFyQXQoaikpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30gLy8gcnVuIG9mZiBzdGFydAorCisgICAgICAgICAgICArK2k7IC8vIGNvdW50ZXJhY3QgaW5jcmVtZW50CisgICAgICAgICAgICBpID0gczEuaW5kZXhPZignICcsIGkpOyAvLyBtb3ZlIGZvcndhcmQgdG8gc3BhY2UKKyAgICAgICAgICAgIGlmIChpIDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBzMS5sZW5ndGgoKSAtIGk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGNsYXNzIFJhbmdlRmluZGVyIHsKKyAgICAgICAgaW50IHN0YXJ0LCBsaW1pdDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgdmVyeUxpbWl0OworICAgICAgICAvL1N0cmluZyBsYWJlbCwgdmFsdWU7CisgICAgICAgIHZvaWQgcmVzZXQoaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIHRoaXMubGltaXQgPSBzdGFydDsKKyAgICAgICAgICAgIHRoaXMudmVyeUxpbWl0ID0gbGltaXQ7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiBuZXh0KCkgeworICAgICAgICAgICAgaWYgKGxpbWl0ID49IHZlcnlMaW1pdCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBzdGFydCA9IGxpbWl0OyAvLyBzZXQgdG8gZW5kIG9mIGxhc3QKKyAgICAgICAgICAgIFN0cmluZyBsYWJlbCA9IGdldExhYmVsU291cmNlKGZhbHNlKS5nZXRWYWx1ZShsaW1pdCwgdHJ1ZSk7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRWYWx1ZShsaW1pdCwgdHJ1ZSk7CisgICAgICAgICAgICBTdHJpbmcgYnJlYWtlciA9IGdldFJhbmdlQnJlYWtTb3VyY2UoKS5nZXRWYWx1ZShsaW1pdCx0cnVlKTsKKyAgICAgICAgICAgIGlmIChERUJVRyAmJiBsaW1pdCA8IDB4N0YpIFN5c3RlbS5vdXQucHJpbnRsbigiTGFiZWw6ICIgKyBsYWJlbCArICIsIFZhbHVlOiAiICsgdmFsdWUgKyAiLCBCcmVhazogIiArIGJyZWFrZXIpOworICAgICAgICAgICAgbGltaXQrKzsKKyAgICAgICAgICAgIGZvciAoOyBsaW1pdCA8IHZlcnlMaW1pdDsgbGltaXQrKykgeworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gZ2V0TGFiZWxTb3VyY2UoZmFsc2UpLmdldFZhbHVlKGxpbWl0LCB0cnVlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdiA9IGdldFZhbHVlKGxpbWl0LCB0cnVlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYiA9IGdldFJhbmdlQnJlYWtTb3VyY2UoKS5nZXRWYWx1ZShsaW1pdCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHICYmIGxpbWl0IDwgMHg3RikgU3lzdGVtLm91dC5wcmludGxuKCIqTGFiZWw6ICIgKyBsYWJlbCArICIsIFZhbHVlOiAiICsgdmFsdWUgKyAiLCBCcmVhazogIiArIGJyZWFrZXIpOworICAgICAgICAgICAgICAgIGlmICghZXF1YWxUbyhzLCBsYWJlbCkgfHwgIWVxdWFsVG8odiwgdmFsdWUpIHx8ICFlcXVhbFRvKGIsIGJyZWFrZXIpKSBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGF0IHRoaXMgcG9pbnQsIGxpbWl0IGlzIHRoZSBmaXJzdCBpdGVtIHRoYXQgaGFzIGEgZGlmZmVyZW50IGxhYmVsIHRoYW4gc291cmNlCisgICAgICAgICAgICAvLyBPUiwgd2UgZ290IHRvIHRoZSBlbmQsIGFuZCBsaW1pdCA9PSB2ZXJ5TGltaXQKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgYm9vbGVhbiBlcXVhbFRvKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICBpZiAoYSA9PSBiKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGEgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gYS5lcXVhbHMoYik7CisgICAgfQorCisgICAgYm9vbGVhbiBzaG9ydExhYmVsID0gdHJ1ZTsKKyAgICBib29sZWFuIHNob3J0VmFsdWUgPSB0cnVlOworCisgICAgcHVibGljIFN0cmluZyBnZXRQcmVmaXgoKSB7CisgICAgICAgIHJldHVybiBwcmVmaXg7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRTdWZmaXgoKSB7CisgICAgICAgIHJldHVybiBzdWZmaXg7CisgICAgfQorCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRQcmVmaXgoU3RyaW5nIHN0cmluZykgeworICAgICAgICBwcmVmaXggPSBzdHJpbmc7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0U3VmZml4KFN0cmluZyBzdHJpbmcpIHsKKyAgICAgICAgc3VmZml4ID0gc3RyaW5nOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0FiYnJldmlhdGVkKCkgeworICAgICAgICByZXR1cm4gYWJicmV2aWF0ZWQ7CisgICAgfQorCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRBYmJyZXZpYXRlZChib29sZWFuIGIpIHsKKyAgICAgICAgYWJicmV2aWF0ZWQgPSBiOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgVW5pY29kZUxhYmVsIGdldExhYmVsU291cmNlKGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICBpZiAobGFiZWxTb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgTWFwIGxhYmVsTWFwID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIC8vbGFiZWxNYXAucHV0KCJMbyIsIkwmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIkx1IiwiTCYiKTsKKyAgICAgICAgICAgIGxhYmVsTWFwLnB1dCgiTHQiLCJMJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJMbCIsIkwmIik7CisgICAgICAgICAgICBsYWJlbFNvdXJjZSA9IG5ldyBVbmljb2RlUHJvcGVydHkuRmlsdGVyZWRQcm9wZXJ0eSgKKyAgICAgICAgICAgICAgICBnZXRVbmljb2RlUHJvcGVydHlGYWN0b3J5KCkuZ2V0UHJvcGVydHkoIkdlbmVyYWxfQ2F0ZWdvcnkiKSwKKyAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVByb3BlcnR5Lk1hcEZpbHRlcihsYWJlbE1hcCkKKyAgICAgICAgICAgICkuc2V0QWxsb3dWYWx1ZUFsaWFzQ29sbGlzaW9ucyh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGFiZWxTb3VyY2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGRlcHJlY2F0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYWRkQWxsKFVuaWNvZGVTZXQgc291cmNlLCBDb2xsZWN0aW9uIHRhcmdldCkgeworICAgICAgICBzb3VyY2UuYWRkQWxsVG8odGFyZ2V0KTsKKyAgICB9CisKKyAgICAvLyBVVElMSVRJRVMKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgaGV4ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICJbXlxcdTAwMDlcXHUwMDIwLVxcdTAwN0VcXHUwMEEwLVxcdTAwRkZdIGhleCIpOworCisgICAgcHVibGljIHN0YXRpYyBCdWZmZXJlZFJlYWRlciBvcGVuVVRGOFJlYWRlcihTdHJpbmcgZGlyLCBTdHJpbmcgZmlsZW5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBvcGVuUmVhZGVyKGRpcixmaWxlbmFtZSwiVVRGLTgiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIEJ1ZmZlcmVkUmVhZGVyIG9wZW5SZWFkZXIoU3RyaW5nIGRpciwgU3RyaW5nIGZpbGVuYW1lLCBTdHJpbmcgZW5jb2RpbmcpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKGRpciArIGZpbGVuYW1lKTsKKyAgICAgICAgaWYgKFNIT1dfRklMRVMgJiYgbG9nICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxvZy5wcmludGxuKCJPcGVuaW5nIEZpbGU6ICIKKyAgICAgICAgICAgICAgICArIGZpbGUuZ2V0Q2Fub25pY2FsUGF0aCgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IEJ1ZmZlcmVkUmVhZGVyKAorICAgICAgICAgICAgbmV3IElucHV0U3RyZWFtUmVhZGVyKAorICAgICAgICAgICAgICAgIG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZSksCisgICAgICAgICAgICAgICAgZW5jb2RpbmcpLAorICAgICAgICAgICAgNCoxMDI0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFByaW50V3JpdGVyIG9wZW5VVEY4V3JpdGVyKFN0cmluZyBkaXIsIFN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIG9wZW5Xcml0ZXIoZGlyLGZpbGVuYW1lLCJVVEYtOCIpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgUHJpbnRXcml0ZXIgb3BlbldyaXRlcihTdHJpbmcgZGlyLCBTdHJpbmcgZmlsZW5hbWUsIFN0cmluZyBlbmNvZGluZykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoZGlyICsgZmlsZW5hbWUpOworICAgICAgICBpZiAoU0hPV19GSUxFUyAmJiBsb2cgIT0gbnVsbCkgeworICAgICAgICAgICAgbG9nLnByaW50bG4oIkNyZWF0aW5nIEZpbGU6ICIKKyAgICAgICAgICAgICAgICArIGZpbGUuZ2V0Q2Fub25pY2FsUGF0aCgpKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcGFyZW50TmFtZSA9IGZpbGUuZ2V0UGFyZW50KCk7CisgICAgICAgIGlmIChwYXJlbnROYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIEZpbGUgcGFyZW50ID0gbmV3IEZpbGUocGFyZW50TmFtZSk7CisgICAgICAgICAgICBwYXJlbnQubWtkaXJzKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBQcmludFdyaXRlcigKKyAgICAgICAgICAgIG5ldyBCdWZmZXJlZFdyaXRlcigKKyAgICAgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlKSwKKyAgICAgICAgICAgICAgICAgICAgZW5jb2RpbmcpLAorICAgICAgICAgICAgICAgIDQqMTAyNCkpOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIFByaW50V3JpdGVyIGdldExvZygpIHsKKyAgICAgICAgcmV0dXJuIGxvZzsKKyAgICB9CisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRMb2coUHJpbnRXcml0ZXIgd3JpdGVyKSB7CisgICAgICAgIGxvZyA9IHdyaXRlcjsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmcgZ2V0U2VwYXJhdG9yKCkgeworICAgICAgICByZXR1cm4gc2VwYXJhdG9yOworICAgIH0KKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldFNlcGFyYXRvcihTdHJpbmcgc3RyaW5nKSB7CisgICAgICAgIHNlcGFyYXRvciA9IHN0cmluZzsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRTaG93TGl0ZXJhbCgpIHsKKyAgICAgICAgcmV0dXJuIHNob3dMaXRlcmFsOworICAgIH0KKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldFNob3dMaXRlcmFsKFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0ZXJhdG9yKSB7CisgICAgICAgIHNob3dMaXRlcmFsID0gdHJhbnNsaXRlcmF0b3I7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8vID09PT09IENPTlZFTklFTkNFUyA9PT09PQorICAgIHByaXZhdGUgY2xhc3MgSm9pbiBleHRlbmRzIFZpc2l0b3IgeworICAgICAgICBTdHJpbmdCdWZmZXIgb3V0cHV0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgZGVwdGggPSAwOworICAgICAgICBTdHJpbmcgam9pbiAoT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIG91dHB1dC5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBkb0F0KG8pOworICAgICAgICAgICAgcmV0dXJuIG91dHB1dC50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCB2b2lkIGRvQmVmb3JlKE9iamVjdCBjb250YWluZXIsIE9iamVjdCBpdGVtKSB7CisgICAgICAgICAgICArK2RlcHRoOworICAgICAgICAgICAgb3V0cHV0LmFwcGVuZChwcmVmaXgpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCB2b2lkIGRvQWZ0ZXIoT2JqZWN0IGNvbnRhaW5lciwgT2JqZWN0IGl0ZW0pIHsKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoc3VmZml4KTsKKyAgICAgICAgICAgIC0tZGVwdGg7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZG9CZXR3ZWVuKE9iamVjdCBjb250YWluZXIsIE9iamVjdCBsYXN0SXRlbSwgT2JqZWN0IG5leHRJdGVtKSB7CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKHNlcGFyYXRvcik7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZG9TaW1wbGVBdChPYmplY3QgbykgeworICAgICAgICAgICAgaWYgKG8gIT0gbnVsbCkgb3V0cHV0LmFwcGVuZChvLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGxhYmVsCisgICAgICovCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRMYWJlbFNvdXJjZShVbmljb2RlTGFiZWwgbGFiZWwpIHsKKyAgICAgICAgaWYgKGxhYmVsID09IG51bGwpIGxhYmVsID0gVW5pY29kZUxhYmVsLk5VTEw7CisgICAgICAgIGxhYmVsU291cmNlID0gbGFiZWw7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gdGhlIE5hbWVMYWJsZSByZXByZXNlbnRpbmcgdGhlIHNvdXJjZQorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlTGFiZWwgZ2V0TmFtZVNvdXJjZSgpIHsKKyAgICAgICAgaWYgKG5hbWVTb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgbmFtZVNvdXJjZSA9IG5ldyBOYW1lTGFiZWwoZ2V0VW5pY29kZVByb3BlcnR5RmFjdG9yeSgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmFtZVNvdXJjZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbGFiZWwKKyAgICAgKi8KKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldE5hbWVTb3VyY2UoVW5pY29kZUxhYmVsIGxhYmVsKSB7CisgICAgICAgIGlmIChsYWJlbCA9PSBudWxsKSBsYWJlbCA9IFVuaWNvZGVMYWJlbC5OVUxMOworICAgICAgICBuYW1lU291cmNlID0gbGFiZWw7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gdGhlIFVuaWNvZGVMYWJlbCByZXByZXNlbnRpbmcgdGhlIHZhbHVlCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVMYWJlbCBnZXRWYWx1ZVNvdXJjZSgpIHsKKyAgICAgICAgaWYgKHZhbHVlU291cmNlID09IG51bGwpIHZhbHVlU291cmNlID0gVW5pY29kZUxhYmVsLk5VTEw7CisgICAgICAgIHJldHVybiB2YWx1ZVNvdXJjZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBnZXRWYWx1ZShpbnQgY3AsIGJvb2xlYW4gc2hvcnRWYWx1ZSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZ2V0VmFsdWVTb3VyY2UoKS5nZXRWYWx1ZShjcCwgc2hvcnRWYWx1ZSk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmV0dXJuIE5VTExfVkFMVUU7CisgICAgICAgIGlmIChoZXhWYWx1ZSkgcmVzdWx0ID0gaGV4KHJlc3VsdCwgIiAiKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbGFiZWwKKyAgICAgKi8KKyAgICBwdWJsaWMgQmFnRm9ybWF0dGVyIHNldFZhbHVlU291cmNlKFVuaWNvZGVMYWJlbCBsYWJlbCkgeworICAgICAgICBpZiAobGFiZWwgPT0gbnVsbCkgbGFiZWwgPSBVbmljb2RlTGFiZWwuTlVMTDsKKyAgICAgICAgdmFsdWVTb3VyY2UgPSBsYWJlbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRWYWx1ZVNvdXJjZShTdHJpbmcgbGFiZWwpIHsKKyAgICAgICAgcmV0dXJuIHNldFZhbHVlU291cmNlKG5ldyBVbmljb2RlTGFiZWwuQ29uc3RhbnQobGFiZWwpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgc2hvd0NvdW50IGlzIHRydWUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1Nob3dDb3VudCgpIHsKKyAgICAgICAgcmV0dXJuIHNob3dDb3VudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gYiB0cnVlIHRvIHNob3cgdGhlIGNvdW50CisgICAgICogQHJldHVybiB0aGlzIChmb3IgY2hhaW5pbmcpCisgICAgICovCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRTaG93Q291bnQoYm9vbGVhbiBiKSB7CisgICAgICAgIHNob3dDb3VudCA9IGI7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFByb3BOYW1lKCkgeworICAgICAgICByZXR1cm4gcHJvcE5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0cmluZworICAgICAqIEByZXR1cm4gdGhpcyAoZm9yIGNoYWluaW5nKQorICAgICAqLworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0UHJvcE5hbWUoU3RyaW5nIHN0cmluZykgeworICAgICAgICBpZiAoc3RyaW5nID09IG51bGwpIHN0cmluZyA9ICIiOworICAgICAgICBwcm9wTmFtZSA9IHN0cmluZzsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaXMgYSBoZXhWYWx1ZQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzSGV4VmFsdWUoKSB7CisgICAgICAgIHJldHVybiBoZXhWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gYgorICAgICAqIEByZXR1cm4gdGhpcyAoZm9yIGNoYWluaW5nKQorICAgICAqLworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0SGV4VmFsdWUoYm9vbGVhbiBiKSB7CisgICAgICAgIGhleFZhbHVlID0gYjsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiB0aGUgZnVsbCB0b3RhbAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RnVsbFRvdGFsKCkgeworICAgICAgICByZXR1cm4gZnVsbFRvdGFsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBpIHNldCB0aGUgZnVsbCB0b3RhbAorICAgICAqIEByZXR1cm4gdGhpcyAoZm9yIGNoYWluaW5nKQorICAgICAqLworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0RnVsbFRvdGFsKGludCBpKSB7CisgICAgICAgIGZ1bGxUb3RhbCA9IGk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gdGhlIGxpbmUgc2VwYXJhdG9yCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRMaW5lU2VwYXJhdG9yKCkgeworICAgICAgICByZXR1cm4gbGluZVNlcGFyYXRvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nCisgICAgICogQHJldHVybiB0aGlzIChmb3IgY2hhaW5pbmcpCisgICAgICovCisgICAgcHVibGljIEJhZ0Zvcm1hdHRlciBzZXRMaW5lU2VwYXJhdG9yKFN0cmluZyBzdHJpbmcpIHsKKyAgICAgICAgbGluZVNlcGFyYXRvciA9IHN0cmluZzsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiB0aGUgVW5pY29kZUxhYmVsIHJlcHJlc2VudGluZyB0aGUgcmFuZ2UgYnJlYWsgc291cmNlCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVMYWJlbCBnZXRSYW5nZUJyZWFrU291cmNlKCkgeworICAgICAgICBpZiAocmFuZ2VCcmVha1NvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICBNYXAgbGFiZWxNYXAgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgLy8gcmVmbGVjdHMgdGhlIGNvZGUgcG9pbnQgdHlwZXMgb24gcCAyNQorICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJMbyIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJMbSIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJMdSIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJMdCIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJMbCIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJNbiIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJNZSIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJNYyIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJOZCIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJObCIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJObyIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJacyIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJQZCIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJQcyIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJQZSIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJQYyIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJQbyIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJQaSIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJQZiIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJTbSIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJTYyIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJTayIsICJHJiIpOworICAgICAgICAgICAgbGFiZWxNYXAucHV0KCJTbyIsICJHJiIpOworCisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIlpsIiwgIkNmIik7CisgICAgICAgICAgICBsYWJlbE1hcC5wdXQoIlpwIiwgIkNmIik7CisKKyAgICAgICAgICAgIHJhbmdlQnJlYWtTb3VyY2UgPQorICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlUHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgLkZpbHRlcmVkUHJvcGVydHkoCisgICAgICAgICAgICAgICAgICAgICAgICBnZXRVbmljb2RlUHJvcGVydHlGYWN0b3J5KCkuZ2V0UHJvcGVydHkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdlbmVyYWxfQ2F0ZWdvcnkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVbmljb2RlUHJvcGVydHkuTWFwRmlsdGVyKGxhYmVsTWFwKSkKKyAgICAgICAgICAgICAgICAgICAgLnNldEFsbG93VmFsdWVBbGlhc0NvbGxpc2lvbnModHJ1ZSk7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAiQ24iLCAvLyA9IE90aGVyLCBOb3QgQXNzaWduZWQgMAorICAgICAgICAgICAgIkNjIiwgLy8gPSBPdGhlciwgQ29udHJvbCAxNQorICAgICAgICAgICAgIkNmIiwgLy8gPSBPdGhlciwgRm9ybWF0IDE2CisgICAgICAgICAgICBVbmljb2RlUHJvcGVydHkuVU5VU0VELCAvLyBtaXNzaW5nCisgICAgICAgICAgICAiQ28iLCAvLyA9IE90aGVyLCBQcml2YXRlIFVzZSAxOAorICAgICAgICAgICAgIkNzIiwgLy8gPSBPdGhlciwgU3Vycm9nYXRlIDE5CisgICAgICAgICAgICAqLworICAgICAgICB9CisgICAgICAgIHJldHVybiByYW5nZUJyZWFrU291cmNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBsYWJlbAorICAgICAqLworICAgIHB1YmxpYyBCYWdGb3JtYXR0ZXIgc2V0UmFuZ2VCcmVha1NvdXJjZShVbmljb2RlTGFiZWwgbGFiZWwpIHsKKyAgICAgICAgaWYgKGxhYmVsID09IG51bGwpIGxhYmVsID0gVW5pY29kZUxhYmVsLk5VTEw7CisgICAgICAgIHJhbmdlQnJlYWtTb3VyY2UgPSBsYWJlbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisJLyoqCisJICogQHJldHVybiBSZXR1cm5zIHRoZSBmaXhOYW1lLgorCSAqLworCXB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRGaXhOYW1lKCkgeworCQlyZXR1cm4gZml4TmFtZTsKKwl9CisJLyoqCisJICogQHBhcmFtIGZpeE5hbWUgVGhlIGZpeE5hbWUgdG8gc2V0LgorCSAqLworCXB1YmxpYyB2b2lkIHNldEZpeE5hbWUoVHJhbnNsaXRlcmF0b3IgZml4TmFtZSkgeworCQl0aGlzLmZpeE5hbWUgPSBmaXhOYW1lOworCX0KK30KKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9DYXNlSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0Nhc2VJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhZjgyMmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9DYXNlSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDU1NyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisvLyBjb3BpZWQgZnJvbSB0aGUgVHJhbnNsaXRlcmF0b3IgZGVtbworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKKy8qKgorICogSW5jcmVtZW50YWxseSByZXR1cm5zIHRoZSBzZXQgb2YgYWxsIHN0cmluZ3MgdGhhdCBjYXNlLWZvbGQgdG8gdGhlIHNhbWUgdmFsdWUuCisgKi8KK3B1YmxpYyBjbGFzcyBDYXNlSXRlcmF0b3IgeworICAgIAorICAgIC8vIHRlc3Rpbmcgc3R1ZmYKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gdHJ1ZTsKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgdG9OYW1lID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIls6XmFzY2lpOl0gQW55LU5hbWUiKTsKKyAgICBzdGF0aWMgVHJhbnNsaXRlcmF0b3IgdG9IZXggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiWzpeYXNjaWk6XSBBbnktSGV4Iik7CisgICAgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIHRvSGV4MiA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJbW15cdTAwMjEtXHUwMDdGXS1bLF1dIEFueS1IZXgiKTsKKyAgICAKKyAgICAvLyBnbG9iYWwgdGFibGVzIChjb3VsZCBiZSBwcmVjb21waWxlZCkKKyAgICBwcml2YXRlIHN0YXRpYyBNYXAgZnJvbUNhc2VGb2xkID0gbmV3IEhhc2hNYXAoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBNYXAgdG9DYXNlRm9sZCA9IG5ldyBIYXNoTWFwKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG1heExlbmd0aCA9IDA7CisgICAgCisgICAgLy8gVGhpcyBleGNlcHRpb24gbGlzdCBpcyBnZW5lcmF0ZWQgb24gdGhlIGNvbnNvbGUgYnkgdHVybmluZyBvbiB0aGUgR0VORVJBVEVEIGZsYWcsIAorICAgIC8vIHdoaWNoIE1VU1QgYmUgZmFsc2UgZm9yIG5vcm1hbCBvcGVyYXRpb24uCisgICAgLy8gT25jZSB0aGUgbGlzdCBpcyBnZW5lcmF0ZWQsIGl0IGlzIHBhc3RlZCBpbiBoZXJlLgorICAgIC8vIEEgYml0IG9mIGEgY2x1ZGdlLCBidXQgdGhpcyBib290c3RyYXBwaW5nIGlzIHRoZSBlYXNpZXN0IHdheSAKKyAgICAvLyB0byBnZXQgYXJvdW5kIGNlcnRhaW4gY29tcGxpY2F0aW9ucyBpbiB0aGUgZGF0YS4KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIEdFTkVSQVRFID0gZmFsc2U7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERVTVAgPSBmYWxzZTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXVtdIGV4Y2VwdGlvbkxpc3QgPSB7CisgICAgICAgIC8vIGFcTntNT0RJRklFUiBMRVRURVIgUklHSFQgSEFMRiBSSU5HfQorICAgICAgICB7ImFcdTAyQkUiLCJBXHUwMkJFIiwiYVx1MDJCRSIsfSwKKyAgICAgICAgLy8gZmYKKyAgICAgICAgeyJmZiIsIkZGIiwiRmYiLCJmRiIsImZmIix9LAorICAgICAgICAvLyBmZmkKKyAgICAgICAgeyJmZmkiLCJGRkkiLCJGRmkiLCJGZkkiLCJGZmkiLCJGXHVGQjAxIiwiZkZJIiwiZkZpIiwiZmZJIiwiZmZpIiwiZlx1RkIwMSIsIlx1RkIwMEkiLCJcdUZCMDBpIix9LAorICAgICAgICAvLyBmZmwKKyAgICAgICAgeyJmZmwiLCJGRkwiLCJGRmwiLCJGZkwiLCJGZmwiLCJGXHVGQjAyIiwiZkZMIiwiZkZsIiwiZmZMIiwiZmZsIiwiZlx1RkIwMiIsIlx1RkIwMEwiLCJcdUZCMDBsIix9LAorICAgICAgICAvLyBmaQorICAgICAgICB7ImZpIiwiRkkiLCJGaSIsImZJIiwiZmkiLH0sCisgICAgICAgIC8vIGZsCisgICAgICAgIHsiZmwiLCJGTCIsIkZsIiwiZkwiLCJmbCIsfSwKKyAgICAgICAgLy8gaFxOe0NPTUJJTklORyBNQUNST04gQkVMT1d9CisgICAgICAgIHsiaFx1MDMzMSIsIkhcdTAzMzEiLCJoXHUwMzMxIix9LAorICAgICAgICAvLyBpXE57Q09NQklOSU5HIERPVCBBQk9WRX0KKyAgICAgICAgeyJpXHUwMzA3IiwiSVx1MDMwNyIsImlcdTAzMDciLH0sCisgICAgICAgIC8vIGpcTntDT01CSU5JTkcgQ0FST059CisgICAgICAgIHsialx1MDMwQyIsIkpcdTAzMEMiLCJqXHUwMzBDIix9LAorICAgICAgICAvLyBzcworICAgICAgICB7InNzIiwiU1MiLCJTcyIsIlNcdTAxN0YiLCJzUyIsInNzIiwic1x1MDE3RiIsIlx1MDE3RlMiLCJcdTAxN0ZzIiwiXHUwMTdGXHUwMTdGIix9LAorICAgICAgICAvLyBzdAorICAgICAgICB7InN0IiwiU1QiLCJTdCIsInNUIiwic3QiLCJcdTAxN0ZUIiwiXHUwMTdGdCIsfSwKKyAgICAgICAgLy8gdFxOe0NPTUJJTklORyBESUFFUkVTSVN9CisgICAgICAgIHsidFx1MDMwOCIsIlRcdTAzMDgiLCJ0XHUwMzA4Iix9LAorICAgICAgICAvLyB3XE57Q09NQklOSU5HIFJJTkcgQUJPVkV9CisgICAgICAgIHsid1x1MDMwQSIsIldcdTAzMEEiLCJ3XHUwMzBBIix9LAorICAgICAgICAvLyB5XE57Q09NQklOSU5HIFJJTkcgQUJPVkV9CisgICAgICAgIHsieVx1MDMwQSIsIllcdTAzMEEiLCJ5XHUwMzBBIix9LAorICAgICAgICAvLyBcTntNT0RJRklFUiBMRVRURVIgQVBPU1RST1BIRX1uCisgICAgICAgIHsiXHUwMkJDbiIsIlx1MDJCQ04iLCJcdTAyQkNuIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBUT05PU31cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQUNcdTAzQjkiLCJcdTAzODZcdTAzNDUiLCJcdTAzODZcdTAzOTkiLCJcdTAzODZcdTAzQjkiLCJcdTAzODZcdTFGQkUiLCJcdTAzQUNcdTAzNDUiLCJcdTAzQUNcdTAzOTkiLCJcdTAzQUNcdTAzQjkiLCJcdTAzQUNcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBUT05PU31cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQUVcdTAzQjkiLCJcdTAzODlcdTAzNDUiLCJcdTAzODlcdTAzOTkiLCJcdTAzODlcdTAzQjkiLCJcdTAzODlcdTFGQkUiLCJcdTAzQUVcdTAzNDUiLCJcdTAzQUVcdTAzOTkiLCJcdTAzQUVcdTAzQjkiLCJcdTAzQUVcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9CisgICAgICAgIHsiXHUwM0IxXHUwMzQyIiwiXHUwMzkxXHUwMzQyIiwiXHUwM0IxXHUwMzQyIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEF9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNCMVx1MDM0Mlx1MDNCOSIsIlx1MDM5MVx1MDM0Mlx1MDM0NSIsIlx1MDM5MVx1MDM0Mlx1MDM5OSIsIlx1MDM5MVx1MDM0Mlx1MDNCOSIsIlx1MDM5MVx1MDM0Mlx1MUZCRSIsCisgICAgICAgICAgICAiXHUwM0IxXHUwMzQyXHUwMzQ1IiwiXHUwM0IxXHUwMzQyXHUwMzk5IiwiXHUwM0IxXHUwMzQyXHUwM0I5IiwiXHUwM0IxXHUwMzQyXHUxRkJFIiwiXHUxRkI2XHUwMzQ1IiwKKyAgICAgICAgICAgICJcdTFGQjZcdTAzOTkiLCJcdTFGQjZcdTAzQjkiLCJcdTFGQjZcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQjFcdTAzQjkiLCJcdTAzOTFcdTAzNDUiLCJcdTAzOTFcdTAzOTkiLCJcdTAzOTFcdTAzQjkiLCJcdTAzOTFcdTFGQkUiLCJcdTAzQjFcdTAzNDUiLCJcdTAzQjFcdTAzOTkiLCJcdTAzQjFcdTAzQjkiLCJcdTAzQjFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEF9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNCN1x1MDM0MiIsIlx1MDM5N1x1MDM0MiIsIlx1MDNCN1x1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUwM0I3XHUwMzQyXHUwM0I5IiwiXHUwMzk3XHUwMzQyXHUwMzQ1IiwiXHUwMzk3XHUwMzQyXHUwMzk5IiwiXHUwMzk3XHUwMzQyXHUwM0I5IiwiXHUwMzk3XHUwMzQyXHUxRkJFIiwKKyAgICAgICAgICAgICJcdTAzQjdcdTAzNDJcdTAzNDUiLCJcdTAzQjdcdTAzNDJcdTAzOTkiLCJcdTAzQjdcdTAzNDJcdTAzQjkiLCJcdTAzQjdcdTAzNDJcdTFGQkUiLCJcdTFGQzZcdTAzNDUiLCJcdTFGQzZcdTAzOTkiLAorICAgICAgICAgICAgIlx1MUZDNlx1MDNCOSIsIlx1MUZDNlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQjdcdTAzQjkiLCJcdTAzOTdcdTAzNDUiLCJcdTAzOTdcdTAzOTkiLCJcdTAzOTdcdTAzQjkiLCJcdTAzOTdcdTFGQkUiLCJcdTAzQjdcdTAzNDUiLCJcdTAzQjdcdTAzOTkiLCJcdTAzQjdcdTAzQjkiLCJcdTAzQjdcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEdSQVZFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQjlcdTAzMDhcdTAzMDAiLCJcdTAzNDVcdTAzMDhcdTAzMDAiLCJcdTAzOTlcdTAzMDhcdTAzMDAiLCJcdTAzQjlcdTAzMDhcdTAzMDAiLCJcdTFGQkVcdTAzMDhcdTAzMDAiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEFDVVRFIEFDQ0VOVH0KKyAgICAgICAgeyJcdTAzQjlcdTAzMDhcdTAzMDEiLCJcdTAzNDVcdTAzMDhcdTAzMDEiLCJcdTAzOTlcdTAzMDhcdTAzMDEiLCJcdTAzQjlcdTAzMDhcdTAzMDEiLCJcdTFGQkVcdTAzMDhcdTAzMDEiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfVxOe0NPTUJJTklORyBESUFFUkVTSVN9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNCOVx1MDMwOFx1MDM0MiIsIlx1MDM0NVx1MDMwOFx1MDM0MiIsIlx1MDM5OVx1MDMwOFx1MDM0MiIsIlx1MDNCOVx1MDMwOFx1MDM0MiIsIlx1MUZCRVx1MDMwOFx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNCOVx1MDM0MiIsIlx1MDM0NVx1MDM0MiIsIlx1MDM5OVx1MDM0MiIsIlx1MDNCOVx1MDM0MiIsIlx1MUZCRVx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFJIT31cTntDT01CSU5JTkcgQ09NTUEgQUJPVkV9CisgICAgICAgIHsiXHUwM0MxXHUwMzEzIiwiXHUwM0ExXHUwMzEzIiwiXHUwM0MxXHUwMzEzIiwiXHUwM0YxXHUwMzEzIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgRElBRVJFU0lTfVxOe0NPTUJJTklORyBHUkFWRSBBQ0NFTlR9CisgICAgICAgIHsiXHUwM0M1XHUwMzA4XHUwMzAwIiwiXHUwM0E1XHUwMzA4XHUwMzAwIiwiXHUwM0M1XHUwMzA4XHUwMzAwIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgRElBRVJFU0lTfVxOe0NPTUJJTklORyBBQ1VURSBBQ0NFTlR9CisgICAgICAgIHsiXHUwM0M1XHUwMzA4XHUwMzAxIiwiXHUwM0E1XHUwMzA4XHUwMzAxIiwiXHUwM0M1XHUwMzA4XHUwMzAxIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgRElBRVJFU0lTfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX0KKyAgICAgICAgeyJcdTAzQzVcdTAzMDhcdTAzNDIiLCJcdTAzQTVcdTAzMDhcdTAzNDIiLCJcdTAzQzVcdTAzMDhcdTAzNDIiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBDT01NQSBBQk9WRX0KKyAgICAgICAgeyJcdTAzQzVcdTAzMTMiLCJcdTAzQTVcdTAzMTMiLCJcdTAzQzVcdTAzMTMiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OfVxOe0NPTUJJTklORyBDT01NQSBBQk9WRX1cTntDT01CSU5JTkcgR1JBVkUgQUNDRU5UfQorICAgICAgICB7Ilx1MDNDNVx1MDMxM1x1MDMwMCIsIlx1MDNBNVx1MDMxM1x1MDMwMCIsIlx1MDNDNVx1MDMxM1x1MDMwMCIsIlx1MUY1MFx1MDMwMCIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT059XE57Q09NQklOSU5HIENPTU1BIEFCT1ZFfVxOe0NPTUJJTklORyBBQ1VURSBBQ0NFTlR9CisgICAgICAgIHsiXHUwM0M1XHUwMzEzXHUwMzAxIiwiXHUwM0E1XHUwMzEzXHUwMzAxIiwiXHUwM0M1XHUwMzEzXHUwMzAxIiwiXHUxRjUwXHUwMzAxIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgVVBTSUxPTn1cTntDT01CSU5JTkcgQ09NTUEgQUJPVkV9XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNDNVx1MDMxM1x1MDM0MiIsIlx1MDNBNVx1MDMxM1x1MDM0MiIsIlx1MDNDNVx1MDMxM1x1MDM0MiIsIlx1MUY1MFx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT059XE57Q09NQklOSU5HIEdSRUVLIFBFUklTUE9NRU5JfQorICAgICAgICB7Ilx1MDNDNVx1MDM0MiIsIlx1MDNBNVx1MDM0MiIsIlx1MDNDNVx1MDM0MiIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBfVxOe0NPTUJJTklORyBHUkVFSyBQRVJJU1BPTUVOSX0KKyAgICAgICAgeyJcdTAzQzlcdTAzNDIiLCJcdTAzQTlcdTAzNDIiLCJcdTAzQzlcdTAzNDIiLCJcdTIxMjZcdTAzNDIiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQX1cTntDT01CSU5JTkcgR1JFRUsgUEVSSVNQT01FTkl9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUwM0M5XHUwMzQyXHUwM0I5IiwiXHUwM0E5XHUwMzQyXHUwMzQ1IiwiXHUwM0E5XHUwMzQyXHUwMzk5IiwiXHUwM0E5XHUwMzQyXHUwM0I5IiwiXHUwM0E5XHUwMzQyXHUxRkJFIiwiXHUwM0M5XHUwMzQyXHUwMzQ1IiwiXHUwM0M5XHUwMzQyXHUwMzk5IiwiXHUwM0M5XHUwMzQyXHUwM0I5IiwiXHUwM0M5XHUwMzQyXHUxRkJFIiwiXHUxRkY2XHUwMzQ1IiwKKyAgICAgICAgICAgICJcdTFGRjZcdTAzOTkiLCJcdTFGRjZcdTAzQjkiLCJcdTFGRjZcdTFGQkUiLCJcdTIxMjZcdTAzNDJcdTAzNDUiLCJcdTIxMjZcdTAzNDJcdTAzOTkiLCJcdTIxMjZcdTAzNDJcdTAzQjkiLCJcdTIxMjZcdTAzNDJcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTAzQzlcdTAzQjkiLCJcdTAzQTlcdTAzNDUiLCJcdTAzQTlcdTAzOTkiLCJcdTAzQTlcdTAzQjkiLCJcdTAzQTlcdTFGQkUiLCJcdTAzQzlcdTAzNDUiLCJcdTAzQzlcdTAzOTkiLCJcdTAzQzlcdTAzQjkiLCJcdTAzQzlcdTFGQkUiLCJcdTIxMjZcdTAzNDUiLCJcdTIxMjZcdTAzOTkiLCJcdTIxMjZcdTAzQjkiLCJcdTIxMjZcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFRPTk9TfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MDNDRVx1MDNCOSIsIlx1MDM4Rlx1MDM0NSIsIlx1MDM4Rlx1MDM5OSIsIlx1MDM4Rlx1MDNCOSIsIlx1MDM4Rlx1MUZCRSIsIlx1MDNDRVx1MDM0NSIsIlx1MDNDRVx1MDM5OSIsIlx1MDNDRVx1MDNCOSIsIlx1MDNDRVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVDSH1cTntBUk1FTklBTiBTTUFMTCBMRVRURVIgWUlXTn0KKyAgICAgICAgeyJcdTA1NjVcdTA1ODIiLCJcdTA1MzVcdTA1NTIiLCJcdTA1MzVcdTA1ODIiLCJcdTA1NjVcdTA1NTIiLCJcdTA1NjVcdTA1ODIiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBNRU59XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIEVDSH0KKyAgICAgICAgeyJcdTA1NzRcdTA1NjUiLCJcdTA1NDRcdTA1MzUiLCJcdTA1NDRcdTA1NjUiLCJcdTA1NzRcdTA1MzUiLCJcdTA1NzRcdTA1NjUiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBNRU59XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIElOSX0KKyAgICAgICAgeyJcdTA1NzRcdTA1NkIiLCJcdTA1NDRcdTA1M0IiLCJcdTA1NDRcdTA1NkIiLCJcdTA1NzRcdTA1M0IiLCJcdTA1NzRcdTA1NkIiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBNRU59XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIFhFSH0KKyAgICAgICAgeyJcdTA1NzRcdTA1NkQiLCJcdTA1NDRcdTA1M0QiLCJcdTA1NDRcdTA1NkQiLCJcdTA1NzRcdTA1M0QiLCJcdTA1NzRcdTA1NkQiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBNRU59XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE5PV30KKyAgICAgICAgeyJcdTA1NzRcdTA1NzYiLCJcdTA1NDRcdTA1NDYiLCJcdTA1NDRcdTA1NzYiLCJcdTA1NzRcdTA1NDYiLCJcdTA1NzRcdTA1NzYiLH0sCisgICAgICAgIC8vIFxOe0FSTUVOSUFOIFNNQUxMIExFVFRFUiBWRVd9XE57QVJNRU5JQU4gU01BTEwgTEVUVEVSIE5PV30KKyAgICAgICAgeyJcdTA1N0VcdTA1NzYiLCJcdTA1NEVcdTA1NDYiLCJcdTA1NEVcdTA1NzYiLCJcdTA1N0VcdTA1NDYiLCJcdTA1N0VcdTA1NzYiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwMFx1MDNCOSIsIlx1MUYwMFx1MDM0NSIsIlx1MUYwMFx1MDM5OSIsIlx1MUYwMFx1MDNCOSIsIlx1MUYwMFx1MUZCRSIsIlx1MUYwOFx1MDM0NSIsIlx1MUYwOFx1MDM5OSIsIlx1MUYwOFx1MDNCOSIsIlx1MUYwOFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjAxXHUwM0I5IiwiXHUxRjAxXHUwMzQ1IiwiXHUxRjAxXHUwMzk5IiwiXHUxRjAxXHUwM0I5IiwiXHUxRjAxXHUxRkJFIiwiXHUxRjA5XHUwMzQ1IiwiXHUxRjA5XHUwMzk5IiwiXHUxRjA5XHUwM0I5IiwiXHUxRjA5XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjAyXHUwM0I5IiwiXHUxRjAyXHUwMzQ1IiwiXHUxRjAyXHUwMzk5IiwiXHUxRjAyXHUwM0I5IiwiXHUxRjAyXHUxRkJFIiwiXHUxRjBBXHUwMzQ1IiwiXHUxRjBBXHUwMzk5IiwiXHUxRjBBXHUwM0I5IiwiXHUxRjBBXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjAzXHUwM0I5IiwiXHUxRjAzXHUwMzQ1IiwiXHUxRjAzXHUwMzk5IiwiXHUxRjAzXHUwM0I5IiwiXHUxRjAzXHUxRkJFIiwiXHUxRjBCXHUwMzQ1IiwiXHUxRjBCXHUwMzk5IiwiXHUxRjBCXHUwM0I5IiwiXHUxRjBCXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgT1hJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMDRcdTAzQjkiLCJcdTFGMDRcdTAzNDUiLCJcdTFGMDRcdTAzOTkiLCJcdTFGMDRcdTAzQjkiLCJcdTFGMDRcdTFGQkUiLCJcdTFGMENcdTAzNDUiLCJcdTFGMENcdTAzOTkiLCJcdTFGMENcdTAzQjkiLCJcdTFGMENcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwNVx1MDNCOSIsIlx1MUYwNVx1MDM0NSIsIlx1MUYwNVx1MDM5OSIsIlx1MUYwNVx1MDNCOSIsIlx1MUYwNVx1MUZCRSIsIlx1MUYwRFx1MDM0NSIsIlx1MUYwRFx1MDM5OSIsIlx1MUYwRFx1MDNCOSIsIlx1MUYwRFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwNlx1MDNCOSIsIlx1MUYwNlx1MDM0NSIsIlx1MUYwNlx1MDM5OSIsIlx1MUYwNlx1MDNCOSIsIlx1MUYwNlx1MUZCRSIsIlx1MUYwRVx1MDM0NSIsIlx1MUYwRVx1MDM5OSIsIlx1MUYwRVx1MDNCOSIsIlx1MUYwRVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYwN1x1MDNCOSIsIlx1MUYwN1x1MDM0NSIsIlx1MUYwN1x1MDM5OSIsIlx1MUYwN1x1MDNCOSIsIlx1MUYwN1x1MUZCRSIsIlx1MUYwRlx1MDM0NSIsIlx1MUYwRlx1MDM5OSIsIlx1MUYwRlx1MDNCOSIsIlx1MUYwRlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyMFx1MDNCOSIsIlx1MUYyMFx1MDM0NSIsIlx1MUYyMFx1MDM5OSIsIlx1MUYyMFx1MDNCOSIsIlx1MUYyMFx1MUZCRSIsIlx1MUYyOFx1MDM0NSIsIlx1MUYyOFx1MDM5OSIsIlx1MUYyOFx1MDNCOSIsIlx1MUYyOFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyMVx1MDNCOSIsIlx1MUYyMVx1MDM0NSIsIlx1MUYyMVx1MDM5OSIsIlx1MUYyMVx1MDNCOSIsIlx1MUYyMVx1MUZCRSIsIlx1MUYyOVx1MDM0NSIsIlx1MUYyOVx1MDM5OSIsIlx1MUYyOVx1MDNCOSIsIlx1MUYyOVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjJcdTAzQjkiLCJcdTFGMjJcdTAzNDUiLCJcdTFGMjJcdTAzOTkiLCJcdTFGMjJcdTAzQjkiLCJcdTFGMjJcdTFGQkUiLCJcdTFGMkFcdTAzNDUiLCJcdTFGMkFcdTAzOTkiLCJcdTFGMkFcdTAzQjkiLCJcdTFGMkFcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjIzXHUwM0I5IiwiXHUxRjIzXHUwMzQ1IiwiXHUxRjIzXHUwMzk5IiwiXHUxRjIzXHUwM0I5IiwiXHUxRjIzXHUxRkJFIiwiXHUxRjJCXHUwMzQ1IiwiXHUxRjJCXHUwMzk5IiwiXHUxRjJCXHUwM0I5IiwiXHUxRjJCXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIE9YSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjI0XHUwM0I5IiwiXHUxRjI0XHUwMzQ1IiwiXHUxRjI0XHUwMzk5IiwiXHUxRjI0XHUwM0I5IiwiXHUxRjI0XHUxRkJFIiwiXHUxRjJDXHUwMzQ1IiwiXHUxRjJDXHUwMzk5IiwiXHUxRjJDXHUwM0I5IiwiXHUxRjJDXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjI1XHUwM0I5IiwiXHUxRjI1XHUwMzQ1IiwiXHUxRjI1XHUwMzk5IiwiXHUxRjI1XHUwM0I5IiwiXHUxRjI1XHUxRkJFIiwiXHUxRjJEXHUwMzQ1IiwiXHUxRjJEXHUwMzk5IiwiXHUxRjJEXHUwM0I5IiwiXHUxRjJEXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUYyNlx1MDNCOSIsIlx1MUYyNlx1MDM0NSIsIlx1MUYyNlx1MDM5OSIsIlx1MUYyNlx1MDNCOSIsIlx1MUYyNlx1MUZCRSIsIlx1MUYyRVx1MDM0NSIsIlx1MUYyRVx1MDM5OSIsIlx1MUYyRVx1MDNCOSIsIlx1MUYyRVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGMjdcdTAzQjkiLCJcdTFGMjdcdTAzNDUiLCJcdTFGMjdcdTAzOTkiLCJcdTFGMjdcdTAzQjkiLCJcdTFGMjdcdTFGQkUiLCJcdTFGMkZcdTAzNDUiLCJcdTFGMkZcdTAzOTkiLCJcdTFGMkZcdTAzQjkiLCJcdTFGMkZcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2MFx1MDNCOSIsIlx1MUY2MFx1MDM0NSIsIlx1MUY2MFx1MDM5OSIsIlx1MUY2MFx1MDNCOSIsIlx1MUY2MFx1MUZCRSIsIlx1MUY2OFx1MDM0NSIsIlx1MUY2OFx1MDM5OSIsIlx1MUY2OFx1MDNCOSIsIlx1MUY2OFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjYxXHUwM0I5IiwiXHUxRjYxXHUwMzQ1IiwiXHUxRjYxXHUwMzk5IiwiXHUxRjYxXHUwM0I5IiwiXHUxRjYxXHUxRkJFIiwiXHUxRjY5XHUwMzQ1IiwiXHUxRjY5XHUwMzk5IiwiXHUxRjY5XHUwM0I5IiwiXHUxRjY5XHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjYyXHUwM0I5IiwiXHUxRjYyXHUwMzQ1IiwiXHUxRjYyXHUwMzk5IiwiXHUxRjYyXHUwM0I5IiwiXHUxRjYyXHUxRkJFIiwiXHUxRjZBXHUwMzQ1IiwiXHUxRjZBXHUwMzk5IiwiXHUxRjZBXHUwM0I5IiwiXHUxRjZBXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjYzXHUwM0I5IiwiXHUxRjYzXHUwMzQ1IiwiXHUxRjYzXHUwMzk5IiwiXHUxRjYzXHUwM0I5IiwiXHUxRjYzXHUxRkJFIiwiXHUxRjZCXHUwMzQ1IiwiXHUxRjZCXHUwMzk5IiwiXHUxRjZCXHUwM0I5IiwiXHUxRjZCXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgT1hJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGNjRcdTAzQjkiLCJcdTFGNjRcdTAzNDUiLCJcdTFGNjRcdTAzOTkiLCJcdTFGNjRcdTAzQjkiLCJcdTFGNjRcdTFGQkUiLCJcdTFGNkNcdTAzNDUiLCJcdTFGNkNcdTAzOTkiLCJcdTFGNkNcdTAzQjkiLCJcdTFGNkNcdTFGQkUiLH0sCisgICAgICAgIC8vIFxOe0dSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBPWElBfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2NVx1MDNCOSIsIlx1MUY2NVx1MDM0NSIsIlx1MUY2NVx1MDM5OSIsIlx1MUY2NVx1MDNCOSIsIlx1MUY2NVx1MUZCRSIsIlx1MUY2RFx1MDM0NSIsIlx1MUY2RFx1MDM5OSIsIlx1MUY2RFx1MDNCOSIsIlx1MUY2RFx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2Nlx1MDNCOSIsIlx1MUY2Nlx1MDM0NSIsIlx1MUY2Nlx1MDM5OSIsIlx1MUY2Nlx1MDNCOSIsIlx1MUY2Nlx1MUZCRSIsIlx1MUY2RVx1MDM0NSIsIlx1MUY2RVx1MDM5OSIsIlx1MUY2RVx1MDNCOSIsIlx1MUY2RVx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JfVxOe0dSRUVLIFNNQUxMIExFVFRFUiBJT1RBfQorICAgICAgICB7Ilx1MUY2N1x1MDNCOSIsIlx1MUY2N1x1MDM0NSIsIlx1MUY2N1x1MDM5OSIsIlx1MUY2N1x1MDNCOSIsIlx1MUY2N1x1MUZCRSIsIlx1MUY2Rlx1MDM0NSIsIlx1MUY2Rlx1MDM5OSIsIlx1MUY2Rlx1MDNCOSIsIlx1MUY2Rlx1MUZCRSIsfSwKKyAgICAgICAgLy8gXE57R1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjcwXHUwM0I5IiwiXHUxRjcwXHUwMzQ1IiwiXHUxRjcwXHUwMzk5IiwiXHUxRjcwXHUwM0I5IiwiXHUxRjcwXHUxRkJFIiwiXHUxRkJBXHUwMzQ1IiwiXHUxRkJBXHUwMzk5IiwiXHUxRkJBXHUwM0I5IiwiXHUxRkJBXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggVkFSSUF9XE57R1JFRUsgU01BTEwgTEVUVEVSIElPVEF9CisgICAgICAgIHsiXHUxRjc0XHUwM0I5IiwiXHUxRjc0XHUwMzQ1IiwiXHUxRjc0XHUwMzk5IiwiXHUxRjc0XHUwM0I5IiwiXHUxRjc0XHUxRkJFIiwiXHUxRkNBXHUwMzQ1IiwiXHUxRkNBXHUwMzk5IiwiXHUxRkNBXHUwM0I5IiwiXHUxRkNBXHUxRkJFIix9LAorICAgICAgICAvLyBcTntHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBWQVJJQX1cTntHUkVFSyBTTUFMTCBMRVRURVIgSU9UQX0KKyAgICAgICAgeyJcdTFGN0NcdTAzQjkiLCJcdTFGN0NcdTAzNDUiLCJcdTFGN0NcdTAzOTkiLCJcdTFGN0NcdTAzQjkiLCJcdTFGN0NcdTFGQkUiLCJcdTFGRkFcdTAzNDUiLCJcdTFGRkFcdTAzOTkiLCJcdTFGRkFcdTAzQjkiLCJcdTFGRkFcdTFGQkUiLH0sCisgICAgfTsKKyAgICAKKyAgICAvLyB0aGlzIGluaXRpYWxpemVzIHRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGVkIHRoZSBjYXNlLWVxdWl2YWxlbnRzCisKKyAgICBzdGF0aWMgeworICAgICAgICAKKyAgICAgICAgLy8gR2F0aGVyIHVwIHRoZSBleGNlcHRpb25zIGluIGEgZm9ybSB3ZSBjYW4gdXNlCisgICAgICAgIAorICAgICAgICBpZiAoIUdFTkVSQVRFKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGV4Y2VwdGlvbkxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBleGNlcHRpb24gPSBleGNlcHRpb25MaXN0W2ldOworICAgICAgICAgICAgICAgIFNldCBzID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgICAgICAgICAvLyB0aGVyZSBoYXMgdG8gYmUgc29tZSBtZXRob2QgdG8gZG8gdGhlIGZvbGxvd2luZywgYnV0IEkgY2FuJ3QgZmluZCBpdCBpbiB0aGUgY29sbGVjdGlvbnMKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGV4Y2VwdGlvbi5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgICAgICBzLmFkZChleGNlcHRpb25bal0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmcm9tQ2FzZUZvbGQucHV0KGV4Y2VwdGlvblswXSwgcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHdhbGsgdGhyb3VnaCBhbGwgdGhlIGNoYXJhY3RlcnMsIGFuZCBhdCBldmVyeSBjYXNlIGZvbGQgcmVzdWx0LAorICAgICAgICAvLyBwdXQgYSBzZXQgb2YgYWxsIHRoZSBjaGFyYWN0ZXJzIHRoYXQgbWFwIHRvIHRoYXQgcmVzdWx0CisKKyAgICAgICAgYm9vbGVhbiBkZWZhdWx0bWFwcGluZyA9IHRydWU7IC8vIGZhbHNlIGZvciB0dXJraXNoCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgIGludCBjYXQgPSBVQ2hhcmFjdGVyLmdldFR5cGUoaSk7CisgICAgICAgICAgICBpZiAoY2F0ID09IENoYXJhY3Rlci5VTkFTU0lHTkVEIHx8IGNhdCA9PSBDaGFyYWN0ZXIuUFJJVkFURV9VU0UpIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgY3AgPSBVVEYxNi52YWx1ZU9mKGkpOworICAgICAgICAgICAgU3RyaW5nIG1hcHBlZCA9IFVDaGFyYWN0ZXIuZm9sZENhc2UoY3AsIGRlZmF1bHRtYXBwaW5nKTsKKyAgICAgICAgICAgIGlmIChtYXBwZWQuZXF1YWxzKGNwKSkgY29udGludWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChtYXhMZW5ndGggPCBtYXBwZWQubGVuZ3RoKCkpIG1heExlbmd0aCA9IG1hcHBlZC5sZW5ndGgoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gYXQgdGhpcyBwb2ludCwgaGF2ZSBkaWZmZXJlbnQgY2FzZSBmb2xkaW5nCisgICAgICAgICAgICAKKyAgICAgICAgICAgIFNldCBzID0gKFNldCkgZnJvbUNhc2VGb2xkLmdldChtYXBwZWQpOworICAgICAgICAgICAgaWYgKHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHMgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgICAgIHMuYWRkKG1hcHBlZCk7IC8vIGFkZCB0aGUgY2FzZSBmb2xkIHJlc3VsdCBpdHNlbGYKKyAgICAgICAgICAgICAgICBmcm9tQ2FzZUZvbGQucHV0KG1hcHBlZCwgcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzLmFkZChjcCk7CisgICAgICAgICAgICB0b0Nhc2VGb2xkLnB1dChjcCwgbWFwcGVkKTsKKyAgICAgICAgICAgIHRvQ2FzZUZvbGQucHV0KG1hcHBlZCwgbWFwcGVkKTsgLy8gYWRkIG1hcHBpbmcgdG8gc2VsZgorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBFbWl0IHRoZSBmaW5hbCBkYXRhCisKKyAgICAgICAgaWYgKERVTVApIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibWF4TGVuZ3RoID0gIiArIG1heExlbmd0aCk7CisKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5mcm9tQ2FzZUZvbGQ6Iik7CisgICAgICAgICAgICBJdGVyYXRvciBpdCA9IGZyb21DYXNlRm9sZC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIE9iamVjdCBrZXkgPSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICIgKyB0b0hleDIudHJhbnNsaXRlcmF0ZSgoU3RyaW5nKWtleSkgKyAiOiAiKTsKKyAgICAgICAgICAgICAgICBTZXQgcyA9IChTZXQpIGZyb21DYXNlRm9sZC5nZXQoa2V5KTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBpdDIgPSBzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBmaXJzdCA9IHRydWU7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Mi5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiLCAiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHRvSGV4Mi50cmFuc2xpdGVyYXRlKChTdHJpbmcpaXQyLm5leHQoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxudG9DYXNlRm9sZDoiKTsKKyAgICAgICAgICAgIGl0ID0gdG9DYXNlRm9sZC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gKFN0cmluZykgdG9DYXNlRm9sZC5nZXQoa2V5KTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAiICsgdG9IZXgyLnRyYW5zbGl0ZXJhdGUoa2V5KSArICI6ICIgKyB0b0hleDIudHJhbnNsaXRlcmF0ZSh2YWx1ZSkpOworICAgICAgICAgICAgfSAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBOb3cgY29udmVydCBhbGwgdGhvc2Ugc2V0cyBpbnRvIGxpbmVhciBhcnJheXMKKyAgICAgICAgLy8gV2UgY2FuJ3QgZG8gdGhpcyBpbiBwbGFjZSBpbiBKYXZhLCBzbyBtYWtlIGEgdGVtcG9yYXJ5IHRhcmdldCBhcnJheQorICAgICAgICAKKyAgICAgICAgLy8gTm90ZTogVGhpcyBjb3VsZCBiZSB0cmFuc2Zvcm1lZCBpbnRvIGEgc2luZ2xlIGFycmF5LCB3aXRoIG9mZnNldHMgaW50byBpdC4KKyAgICAgICAgLy8gTWlnaHQgYmUgYmVzdCBjaG9pY2UgaW4gQy4KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBNYXAgZnJvbUNhc2VGb2xkMiA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gZnJvbUNhc2VGb2xkLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBrZXkgPSBpdC5uZXh0KCk7CisgICAgICAgICAgICBTZXQgcyA9IChTZXQpIGZyb21DYXNlRm9sZC5nZXQoa2V5KTsKKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXAgPSBuZXcgU3RyaW5nW3Muc2l6ZSgpXTsKKyAgICAgICAgICAgIHMudG9BcnJheSh0ZW1wKTsKKyAgICAgICAgICAgIGZyb21DYXNlRm9sZDIucHV0KGtleSwgdGVtcCk7CisgICAgICAgIH0KKyAgICAgICAgZnJvbUNhc2VGb2xkID0gZnJvbUNhc2VGb2xkMjsKKworICAgICAgICAvLyBXZSBoYXZlIHByb2Nlc3NlZCBldmVyeXRoaW5nLCBzbyB0aGUgaXRlcmF0b3Igd2lsbCBub3cgd29yaworICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGlzIG5vcm1hbGx5IE9GRi4gCisgICAgICAgIC8vIEl0IGlzIGhlcmUgdG8gZ2VuZXJhdGUgKHVuZGVyIHRoZSBHRU5FUkFURSBmbGFnKSB0aGUgc3RhdGljIGV4Y2VwdGlvbiBsaXN0LgorICAgICAgICAvLyBJdCBtdXN0IGJlIGF0IHRoZSB2ZXJ5IGVuZCBvZiBpbml0aWFsaXphdGlvbiwgc28gdGhhdCB0aGUgaXRlcmF0b3IgaXMgZnVuY3Rpb25hbC4KKyAgICAgICAgLy8gKGVhc2llc3QgdG8gZG8gaXQgdGhhdCB3YXkpCisgICAgICAgICAgICAKKyAgICAgICAgaWYgKEdFTkVSQVRFKSB7CisKKyAgICAgICAgICAgIC8vIGZpcnN0IGdldCBzbWFsbCBzZXQgb2YgaXRlbXMgdGhhdCBoYXZlIG11bHRpcGxlIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU2V0IG11bHRpY2hhcnMgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAgICAgaXQgPSBmcm9tQ2FzZUZvbGQua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChVVEYxNi5jb3VudENvZGVQb2ludChrZXkpIDwgMikgY29udGludWU7CisgICAgICAgICAgICAgICAgbXVsdGljaGFycy5hZGQoa2V5KTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gbm93IHdlIHdpbGwgZ28gdGhyb3VnaCBlYWNoIG9mIHRoZW0uCisgICAgICAgICAgICAKKyAgICAgICAgICAgIENhc2VJdGVyYXRvciBjaSA9IG5ldyBDYXNlSXRlcmF0b3IoKTsKKyAgICAgICAgICAgIGl0ID0gbXVsdGljaGFycy5pdGVyYXRvcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBoZXJlIGlzIGEgbmFzdHkgY29tcGxpY2F0aW9uLiBUYWtlICdmZmknIGxpZ2F0dXJlLiBXZQorICAgICAgICAgICAgICAgIC8vIGNhbid0IGp1c3QgY2xvc2UgaXQsIHNpbmNlIHdlIHdvdWxkIG1pc3MgdGhlIGNvbWJpbmF0aW9uCisgICAgICAgICAgICAgICAgLy8gdGhhdCBpbmNsdWRlcyB0aGUgJ2ZpJyA9PiAiZmkiIGxpZ2F0dXJlCisgICAgICAgICAgICAgICAgLy8gc28gZmlyc3QgZG8gYSBwYXNzIHRocm91Z2gsIGFuZCBhZGQgc3Vic3RyaW5nIGNvbWJpbmF0aW9ucworICAgICAgICAgICAgICAgIC8vIHdlIGNhbGwgdGhpcyBhICdwYXJ0aWFsIGNsb3N1cmUnCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU2V0IHBhcnRpYWxDbG9zdXJlID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgICAgICAgICBwYXJ0aWFsQ2xvc3VyZS5hZGQoa2V5KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoVVRGMTYuY291bnRDb2RlUG9pbnQoa2V5KSA+IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgbXVsdGlJdDIgPSBtdWx0aWNoYXJzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChtdWx0aUl0Mi5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBvdGhlcktleSA9IChTdHJpbmcpIG11bHRpSXQyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvdGhlcktleS5sZW5ndGgoKSA+PSBrZXkubGVuZ3RoKCkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBvcyA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGlzIG5vdCBjb21wbGV0ZWx5IGdlbmVyYWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgd29ya3MgZm9yIHRoZSBhY3R1YWwgY2FzZWQgc3R1ZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHNob3VsZCB3b3JrIGZvciBmdXR1cmUgY2hhcmFjdGVycywgc2luY2Ugd2Ugd29uJ3QgaGF2ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vcmUgbGlnYXR1cmVzICYgb3RoZXIgb2RkaXRpZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0ga2V5LmluZGV4T2Yob3RoZXJLZXksIHBvcysxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zIDwgMCkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZFBvcyA9IHBvcyArIG90aGVyS2V5Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGtub3cgd2UgaGF2ZSBhIHByb3BlciBzdWJzdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc28gZ2V0IHRoZSBjb21iaW5hdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBjaG9pY2VzID0gKFN0cmluZ1tdKSBmcm9tQ2FzZUZvbGQuZ2V0KG90aGVyS2V5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpaSA9IDA7IGlpIDwgY2hvaWNlcy5sZW5ndGg7ICsraWkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHBhdGNod29yayA9IGtleS5zdWJzdHJpbmcoMCwgcG9zKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBjaG9pY2VzW2lpXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBrZXkuc3Vic3RyaW5nKGVuZFBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpYWxDbG9zdXJlLmFkZChwYXRjaHdvcmspOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBub3csIGZvciBlYWNoIHRoaW5nIGluIHRoZSBwYXJ0aWFsIGNsb3N1cmUsIGdldCBpdHMKKyAgICAgICAgICAgICAgICAvLyBjYXNlIGNsb3N1cmUgYW5kIGFkZCBpdCB0byB0aGUgZmluYWwgcmVzdWx0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFNldCBjbG9zdXJlID0gbmV3IFRyZWVTZXQoKTsgLy8gdGhpcyB3aWxsIGJlIHRoZSByZWFsIGNsb3N1cmUKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBwYXJ0aWFsSXQgPSBwYXJ0aWFsQ2xvc3VyZS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIHdoaWxlIChwYXJ0aWFsSXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkyID0gKFN0cmluZykgcGFydGlhbEl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgY2kucmVzZXQoa2V5Mik7CisgICAgICAgICAgICAgICAgICAgIGZvciAoU3RyaW5nIHRlbXAgPSBjaS5uZXh0KCk7IHRlbXAgIT0gbnVsbDsgdGVtcCA9IGNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2xvc3VyZS5hZGQodGVtcCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gZm9ybSBjbG9zdXJlCisgICAgICAgICAgICAgICAgICAgIC8qU3RyaW5nW10gY2hvaWNlcyA9IChTdHJpbmdbXSkgZnJvbUNhc2VGb2xkLmdldChrZXkyKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaG9pY2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaS5yZXNldChjaG9pY2VzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG51bGwgIT0gKHRlbXAgPSBjaS5uZXh0KCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc3VyZS5hZGQodGVtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gcHJpbnQgaXQgb3V0LCBzbyB0aGF0IGl0IGNhbiBiZSBjdXQgYW5kIHBhc3RlZCBiYWNrIGludG8gdGhpcyBkb2N1bWVudC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBpdDIgPSBjbG9zdXJlLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcdC8vICIgKyB0b05hbWUudHJhbnNsaXRlcmF0ZShrZXkpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJcdHtcIiIgKyB0b0hleC50cmFuc2xpdGVyYXRlKGtleSkgKyAiXCIsIik7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Mi5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSAoU3RyaW5nKWl0Mi5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIlwiIiArIHRvSGV4LnRyYW5zbGl0ZXJhdGUoaXRlbSkgKyAiXCIsIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigifSwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyA9PT09PT09PT09PT0gUFJJVkFURSBDTEFTUyBEQVRBID09PT09PT09PT09PSAKKyAgICAKKyAgICAvLyBwaWVjZXMgdGhhdCB3ZSB3aWxsIHB1dCB0b2dldGhlcgorICAgIC8vIGlzIG5vdCBjaGFuZ2VkIGR1cmluZyBpdGVyYXRpb24KKyAgICBwcml2YXRlIGludCBjb3VudCA9IDA7CisgICAgcHJpdmF0ZSBTdHJpbmdbXVtdIHZhcmlhbnRzOworICAgIAorICAgIC8vIHN0YXRlIGluZm9ybWF0aW9uLCBjaGFuZ2VzIGR1cmluZyBpdGVyYXRpb24KKyAgICBwcml2YXRlIGJvb2xlYW4gZG9uZSA9IGZhbHNlOworICAgIHByaXZhdGUgaW50W10gY291bnRzOworICAgIAorICAgIC8vIGludGVybmFsIGJ1ZmZlciBmb3IgZWZmaWNpZW5jeQorICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG5leHRCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09ICAKKworICAgIC8qKgorICAgICAqIFJlc2V0IHRvIGRpZmZlcmVudCBzb3VyY2UuIE9uY2UgcmVzZXQsIHRoZSBpdGVyYXRpb24gc3RhcnRzIGZyb20gdGhlIGJlZ2lubmluZy4KKyAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBzdHJpbmcgdG8gZ2V0IGNhc2UgdmFyaWFudHMgZm9yCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICAKKyAgICAgICAgLy8gYWxsb2NhdGUgYXJyYXlzIHRvIHN0b3JlIHBpZWNlcworICAgICAgICAvLyB1c2luZyBsZW5ndGggbWlnaHQgYmUgc2xpZ2h0bHkgdG9vIGxvbmcsIGJ1dCB3ZSBkb24ndCBjYXJlIG11Y2gKKyAgICAgICAgCisgICAgICAgIGNvdW50cyA9IG5ldyBpbnRbc291cmNlLmxlbmd0aCgpXTsKKyAgICAgICAgdmFyaWFudHMgPSBuZXcgU3RyaW5nW3NvdXJjZS5sZW5ndGgoKV1bXTsKKyAgICAgICAgCisgICAgICAgIC8vIHdhbGsgdGhyb3VnaCB0aGUgc291cmNlLCBhbmQgYnJlYWsgdXAgaW50byBwaWVjZXMKKyAgICAgICAgLy8gZWFjaCBwaWVjZSBiZWNvbWVzIGFuIGFycmF5IG9mIGVxdWl2YWxlbnQgdmFsdWVzCisgICAgICAgIC8vIFRPRE86IGNvdWxkIG9wdGltaXplZCB0aGlzIGxhdGVyIHRvIGNvYWxlc2NlIGFsbCBzaW5nbGUgc3RyaW5nIHBpZWNlcworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHBpZWNlID0gbnVsbDsKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSArPSBwaWVjZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBmaW5kICpsb25nZXN0KiBtYXRjaGluZyBwaWVjZQorICAgICAgICAgICAgU3RyaW5nIGNhc2VGb2xkID0gbnVsbDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKEdFTkVSQVRFKSB7CisgICAgICAgICAgICAgICAgLy8gZG8gZXhhY3RseSBvbmUgQ1AKKyAgICAgICAgICAgICAgICBwaWVjZSA9IFVURjE2LnZhbHVlT2Yoc291cmNlLCBpKTsKKyAgICAgICAgICAgICAgICBjYXNlRm9sZCA9IChTdHJpbmcpIHRvQ2FzZUZvbGQuZ2V0KHBpZWNlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaW50IG1heCA9IGkgKyBtYXhMZW5ndGg7CisgICAgICAgICAgICAgICAgaWYgKG1heCA+IHNvdXJjZS5sZW5ndGgoKSkgbWF4ID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSBtYXg7IGogPiBpOyAtLWopIHsKKyAgICAgICAgICAgICAgICAgICAgcGllY2UgPSBzb3VyY2Uuc3Vic3RyaW5nKGksIGopOworICAgICAgICAgICAgICAgICAgICBjYXNlRm9sZCA9IChTdHJpbmcpIHRvQ2FzZUZvbGQuZ2V0KHBpZWNlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNhc2VGb2xkICE9IG51bGwpIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gaWYgd2UgZmFpbCwgcGljayBvbmUgY29kZSBwb2ludAorICAgICAgICAgICAgaWYgKGNhc2VGb2xkID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBwaWVjZSA9IFVURjE2LnZhbHVlT2Yoc291cmNlLCBpKTsKKyAgICAgICAgICAgICAgICB2YXJpYW50c1tjb3VudCsrXSA9IG5ldyBTdHJpbmdbXSB7cGllY2V9OyAvLyBzaW5nbGUgaXRlbSBzdHJpbmcKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdmFyaWFudHNbY291bnQrK10gPSAoU3RyaW5nW10pZnJvbUNhc2VGb2xkLmdldChjYXNlRm9sZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVzdGFydCB0aGUgaXRlcmF0aW9uIGZyb20gdGhlIGJlZ2lubmluZywgYnV0IHdpdGggc2FtZSBzb3VyY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgZG9uZSA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGNvdW50c1tpXSA9IDA7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSXRlcmF0ZXMgdGhyb3VnaCB0aGUgY2FzZSB2YXJpYW50cy4KKyAgICAgKiBAcmV0dXJuIG5leHQgY2FzZSB2YXJpYW50LiBFYWNoIHZhcmlhbnQgd2lsbCBjYXNlLWZvbGQgdG8gdGhlIHNhbWUgdmFsdWUgYXMgdGhlIHNvdXJjZSB3aWxsLgorICAgICAqIFdoZW4gdGhlIGl0ZXJhdGlvbiBpcyBkb25lLCBudWxsIGlzIHJldHVybmVkLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbmV4dCgpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChkb25lKSByZXR1cm4gbnVsbDsKKyAgICAgICAgaW50IGk7CisgICAgICAgIAorICAgICAgICAvLyBUT0RPIE9wdGltaXplIHNvIHdlIGtlZXAgdGhlIHBpZWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAgICAgICAgLy8gc28gd2UgZG9uJ3QgaGF2ZSBzbyBtdWNoIGNvbmNhdGVuYXRpb24KKyAgICAgICAgCisgICAgICAgIC8vIGdldCB0aGUgcmVzdWx0LCBhIGNvbmNhdGVuYXRpb24KKyAgICAgICAgCisgICAgICAgIG5leHRCdWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgbmV4dEJ1ZmZlci5hcHBlbmQodmFyaWFudHNbaV1bY291bnRzW2ldXSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGZpbmQgdGhlIG5leHQgcmlnaHQgc2V0IG9mIHBpZWNlcyB0byBjb25jYXRlbmF0ZQorICAgICAgICAKKyAgICAgICAgZm9yIChpID0gY291bnQtMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgICAgIGNvdW50c1tpXSsrOworICAgICAgICAgICAgaWYgKGNvdW50c1tpXSA8IHZhcmlhbnRzW2ldLmxlbmd0aCkgYnJlYWs7CisgICAgICAgICAgICBjb3VudHNbaV0gPSAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBpZiB3ZSBnbyB0b28gZmFyLCBiYWlsCisgICAgICAgIAorICAgICAgICBpZiAoaSA8IDApIHsKKyAgICAgICAgICAgIGRvbmUgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV4dEJ1ZmZlci50b1N0cmluZygpOyAgICAgICAgICAgIAorICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFRlbXBvcmFyeSB0ZXN0LCBqdXN0IHRvIHNlZSBob3cgdGhlIHN0dWZmIHdvcmtzLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgU3RyaW5nW10gdGVzdENhc2VzID0geyJmaXNzIiwgImhcdTAzYTMifTsKKyAgICAgICAgQ2FzZUl0ZXJhdG9yIGNpID0gbmV3IENhc2VJdGVyYXRvcigpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBpdGVtID0gdGVzdENhc2VzW2ldOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRlc3Rpbmc6ICIgKyB0b05hbWUudHJhbnNsaXRlcmF0ZShpdGVtKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIGNpLnJlc2V0KGl0ZW0pOworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIGZvciAoU3RyaW5nIHRlbXAgPSBjaS5uZXh0KCk7IHRlbXAgIT0gbnVsbDsgdGVtcCA9IGNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0b05hbWUudHJhbnNsaXRlcmF0ZSh0ZW1wKSk7CisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVG90YWw6ICIgKyBjb3VudCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBnZW5lcmF0ZSBhIGxpc3Qgb2YgYWxsIGNhc2VsZXNzIGNoYXJhY3RlcnMgLS0gY2hhcmFjdGVycyB3aG9zZQorICAgICAgICAvLyBjYXNlIGNsb3N1cmUgaXMgdGhlbXNlbHZlcy4KKworICAgICAgICBVbmljb2RlU2V0IGNhc2VsZXNzID0gbmV3IFVuaWNvZGVTZXQoKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAweDEwRkZGRjsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgY3AgPSBVVEYxNi52YWx1ZU9mKGkpOworICAgICAgICAgICAgY2kucmVzZXQoY3ApOworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIFN0cmluZyBmb2xkID0gbnVsbDsKKyAgICAgICAgICAgIGZvciAoU3RyaW5nIHRlbXAgPSBjaS5uZXh0KCk7IHRlbXAgIT0gbnVsbDsgdGVtcCA9IGNpLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGZvbGQgPSB0ZW1wOworICAgICAgICAgICAgICAgIGlmICgrK2NvdW50ID4gMSkgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY291bnQ9PTEgJiYgZm9sZC5lcXVhbHMoY3ApKSB7CisgICAgICAgICAgICAgICAgY2FzZWxlc3MuYWRkKGkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjYXNlbGVzcyA9ICIgKyBjYXNlbGVzcy50b1BhdHRlcm4odHJ1ZSkpOworCisgICAgICAgIFVuaWNvZGVTZXQgbm90X2xjID0gbmV3IFVuaWNvZGVTZXQoIls6XmxjOl0iKTsKKyAgICAgICAgCisgICAgICAgIFVuaWNvZGVTZXQgYSA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGEuc2V0KG5vdF9sYyk7CisgICAgICAgIGEucmVtb3ZlQWxsKGNhc2VsZXNzKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJbOl5sYzpdIC0gY2FzZWxlc3MgPSAiICsgYS50b1BhdHRlcm4odHJ1ZSkpOworCisgICAgICAgIGEuc2V0KGNhc2VsZXNzKTsKKyAgICAgICAgYS5yZW1vdmVBbGwobm90X2xjKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjYXNlbGVzcyAtIFs6XmxjOl0gPSAiICsgYS50b1BhdHRlcm4odHJ1ZSkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0NvbGxlY3Rpb25VdGlsaXRpZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0NvbGxlY3Rpb25VdGlsaXRpZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmE3Y2FmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQ29sbGVjdGlvblV0aWxpdGllcy5qYXZhCkBAIC0wLDAgKzEsNTEwIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKK2ltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKKworLyoqCisgKiBVdGlsaXRpZXMgdGhhdCBvdWdodCB0byBiZSBvbiBjb2xsZWN0aW9ucywgYnV0IGFyZW4ndAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQ29sbGVjdGlvblV0aWxpdGllcyB7CisJLyoqCisJICogVXRpbGl0eSBsaWtlIEFycmF5cy5hc0xpc3QoKQorCSAqLworCXB1YmxpYyBzdGF0aWMgTWFwIGFzTWFwKE9iamVjdFtdW10gc291cmNlLCBNYXAgdGFyZ2V0LCBib29sZWFuIHJldmVyc2UpIHsKKwkJaW50IGZyb20gPSAwLCB0byA9IDE7CisJCWlmIChyZXZlcnNlKSB7CisJCQlmcm9tID0gMTsgdG8gPSAwOworCQl9CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aDsgKytpKSB7CisgICAgCQl0YXJnZXQucHV0KHNvdXJjZVtpXVtmcm9tXSwgc291cmNlW2ldW3RvXSk7CisgICAgCX0KKyAgICAJcmV0dXJuIHRhcmdldDsKKwl9CisJCisJcHVibGljIHN0YXRpYyBDb2xsZWN0aW9uIGFkZEFsbChJdGVyYXRvciBzb3VyY2UsIENvbGxlY3Rpb24gdGFyZ2V0KSB7CisJCXdoaWxlIChzb3VyY2UuaGFzTmV4dCgpKSB7CisJCQl0YXJnZXQuYWRkKHNvdXJjZS5uZXh0KCkpOworCQl9CisJCXJldHVybiB0YXJnZXQ7IC8vIGZvciBjaGFpbmluZworCX0KKwkKKwlwdWJsaWMgc3RhdGljIGludCBzaXplKEl0ZXJhdG9yIHNvdXJjZSkgeworCQlpbnQgcmVzdWx0ID0gMDsKKwkJd2hpbGUgKHNvdXJjZS5oYXNOZXh0KCkpIHsKKwkJCXNvdXJjZS5uZXh0KCk7CisJCQkrK3Jlc3VsdDsKKwkJfQorCQlyZXR1cm4gcmVzdWx0OworCX0KKwkKKworCXB1YmxpYyBzdGF0aWMgTWFwIGFzTWFwKE9iamVjdFtdW10gc291cmNlKSB7CisgICAgCXJldHVybiBhc01hcChzb3VyY2UsIG5ldyBIYXNoTWFwKCksIGZhbHNlKTsKKwl9CisJCisJLyoqCisJICogVXRpbGl0eSB0aGF0IG91Z2h0IHRvIGJlIG9uIE1hcAorCSAqLworCXB1YmxpYyBzdGF0aWMgTWFwIHJlbW92ZUFsbChNYXAgbSwgQ29sbGVjdGlvbiBpdGVtc1RvUmVtb3ZlKSB7CisJICAgIGZvciAoSXRlcmF0b3IgaXQgPSBpdGVtc1RvUmVtb3ZlLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkgICAgCU9iamVjdCBpdGVtID0gaXQubmV4dCgpOworCSAgICAJbS5yZW1vdmUoaXRlbSk7CisJICAgIH0KKwkgICAgcmV0dXJuIG07CisJfQorCQorCXB1YmxpYyBPYmplY3QgZ2V0Rmlyc3QoQ29sbGVjdGlvbiBjKSB7CisJCUl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOworCQlpZiAoIWl0Lmhhc05leHQoKSkgcmV0dXJuIG51bGw7CisJCXJldHVybiBpdC5uZXh0KCk7CisJfQorCQorCXB1YmxpYyBzdGF0aWMgT2JqZWN0IGdldEJlc3QoQ29sbGVjdGlvbiBjLCBDb21wYXJhdG9yIGNvbXAsIGludCBkaXJlY3Rpb24pIHsKKwkJSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7CisJCWlmICghaXQuaGFzTmV4dCgpKSByZXR1cm4gbnVsbDsKKwkJT2JqZWN0IGJlc3RTb0ZhciA9IGl0Lm5leHQoKTsKKwkJd2hpbGUgKGl0Lmhhc05leHQoKSkgeworCQkJT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisJCQlpZiAoY29tcC5jb21wYXJlKGl0ZW0sIGJlc3RTb0ZhcikgPT0gZGlyZWN0aW9uKSB7CisJCQkJYmVzdFNvRmFyID0gaXRlbTsKKwkJCX0KKwkJfQorCQlyZXR1cm4gYmVzdFNvRmFyOworCX0KKwkKKwlwdWJsaWMgaW50ZXJmYWNlIEZpbHRlciB7CisJCWJvb2xlYW4gbWF0Y2hlcyhPYmplY3Qgbyk7CisJfQorCisJcHVibGljIHN0YXRpYyBDb2xsZWN0aW9uIHJlbW92ZUFsbChDb2xsZWN0aW9uIGMsIEZpbHRlciBmKSB7CisJCWZvciAoSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCU9iamVjdCBpdGVtID0gaXQubmV4dCgpOworCQkJaWYgKGYubWF0Y2hlcyhpdGVtKSkgaXQucmVtb3ZlKCk7CisJCX0KKwkJcmV0dXJuIGM7CisJfQorCQorCXB1YmxpYyBzdGF0aWMgQ29sbGVjdGlvbiByZXRhaW5BbGwoQ29sbGVjdGlvbiBjLCBGaWx0ZXIgZikgeworCQlmb3IgKEl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisJCQlPYmplY3QgaXRlbSA9IGl0Lm5leHQoKTsKKwkJCWlmICghZi5tYXRjaGVzKGl0ZW0pKSBpdC5yZW1vdmUoKTsKKwkJfQorCQlyZXR1cm4gYzsKKwl9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGNvbnRhaW5zU29tZShDb2xsZWN0aW9uIGEsIENvbGxlY3Rpb24gYikgeworICAgICAgICAvLyBmYXN0IHBhdGhzCisgICAgICAgIGlmIChhLnNpemUoKSA9PSAwIHx8IGIuc2l6ZSgpID09IDApIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGEgPT0gYikgcmV0dXJuIHRydWU7IC8vIG11c3QgdGVzdCBhZnRlciBzaXplIHRlc3QuCisKKyAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBTb3J0ZWRTZXQgJiYgYiBpbnN0YW5jZW9mIFNvcnRlZFNldCkgeworICAgICAgICAgICAgU29ydGVkU2V0IGFhID0gKFNvcnRlZFNldCkgYTsKKyAgICAgICAgICAgIFNvcnRlZFNldCBiYiA9IChTb3J0ZWRTZXQpIGI7CisgICAgICAgICAgICBhYS5jb250YWluc0FsbChudWxsKTsKKyAgICAgICAgICAgIENvbXBhcmF0b3IgYmJjID0gYmIuY29tcGFyYXRvcigpOworICAgICAgICAgICAgQ29tcGFyYXRvciBhYWMgPSBhYS5jb21wYXJhdG9yKCk7CisgICAgICAgICAgICBpZiAoYmJjID09IG51bGwpIHsKKyAgICAgICAgICAgIAlpZiAoYWFjID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgYWkgPSBhYS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBiaSA9IGJiLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIENvbXBhcmFibGUgYW8gPSAoQ29tcGFyYWJsZSkgYWkubmV4dCgpOyAvLyB0aGVzZSBhcmUgb2ssIHNpbmNlIHRoZSBzaXplcyBhcmUgIT0gMAorICAgICAgICAgICAgICAgICAgICBDb21wYXJhYmxlIGJvID0gKENvbXBhcmFibGUpIGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWwgPSBhby5jb21wYXJlVG8oYm8pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFvID0gKENvbXBhcmFibGUpIGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVsID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYmkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm8gPSAoQ29tcGFyYWJsZSkgYmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7ICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYmJjLmVxdWFscyhhKSkgeworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGFpID0gYWEuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBiaSA9IGJiLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgT2JqZWN0IGFvID0gYWkubmV4dCgpOyAvLyB0aGVzZSBhcmUgb2ssIHNpbmNlIHRoZSBzaXplcyBhcmUgIT0gMAorICAgICAgICAgICAgICAgIE9iamVjdCBibyA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgcmVsID0gYWFjLmNvbXBhcmUoYW8sIGJvKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlbCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYWkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBhbyA9IGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZWwgPiAwKSAgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFiaS5oYXNOZXh0KCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvID0gYmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7ICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICB9CisgICAgCWZvciAoSXRlcmF0b3IgaXQgPSBhLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAJCWlmIChiLmNvbnRhaW5zKGl0Lm5leHQoKSkpIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGNvbnRhaW5zQWxsKENvbGxlY3Rpb24gYSwgQ29sbGVjdGlvbiBiKSB7CisgICAgICAgIC8vIGZhc3QgcGF0aHMKKyAgICAgICAgaWYgKGEgPT0gYikgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChiLnNpemUoKSA9PSAwKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGEuc2l6ZSgpID09IDApIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFNvcnRlZFNldCAmJiBiIGluc3RhbmNlb2YgU29ydGVkU2V0KSB7CisgICAgICAgICAgICBTb3J0ZWRTZXQgYWEgPSAoU29ydGVkU2V0KSBhOworICAgICAgICAgICAgU29ydGVkU2V0IGJiID0gKFNvcnRlZFNldCkgYjsKKyAgICAgICAgICAgIENvbXBhcmF0b3IgYmJjID0gYmIuY29tcGFyYXRvcigpOworICAgICAgICAgICAgQ29tcGFyYXRvciBhYWMgPSBhYS5jb21wYXJhdG9yKCk7CisgICAgICAgICAgICBpZiAoYmJjID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoYWFjID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgYWkgPSBhYS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBiaSA9IGJiLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIENvbXBhcmFibGUgYW8gPSAoQ29tcGFyYWJsZSkgYWkubmV4dCgpOyAvLyB0aGVzZSBhcmUgb2ssIHNpbmNlIHRoZSBzaXplcyBhcmUgIT0gMAorICAgICAgICAgICAgICAgICAgICBDb21wYXJhYmxlIGJvID0gKENvbXBhcmFibGUpIGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWwgPSBhby5jb21wYXJlVG8oYm8pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFiaS5oYXNOZXh0KCkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYWkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm8gPSAoQ29tcGFyYWJsZSkgYmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFvID0gKENvbXBhcmFibGUpIGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVsIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYWkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW8gPSAoQ29tcGFyYWJsZSkgYWkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYmJjLmVxdWFscyhhKSkgeworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGFpID0gYWEuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBiaSA9IGJiLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgT2JqZWN0IGFvID0gYWkubmV4dCgpOyAvLyB0aGVzZSBhcmUgb2ssIHNpbmNlIHRoZSBzaXplcyBhcmUgIT0gMAorICAgICAgICAgICAgICAgIE9iamVjdCBibyA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgcmVsID0gYWFjLmNvbXBhcmUoYW8sIGJvKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlbCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJpLmhhc05leHQoKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYm8gPSBiaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhbyA9IGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZWwgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYW8gPSBhaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBhLmNvbnRhaW5zQWxsKGIpOworICAgIH0KKwkKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gY29udGFpbnNOb25lKENvbGxlY3Rpb24gYSwgQ29sbGVjdGlvbiBiKSB7CisgICAgICAgIHJldHVybiAhY29udGFpbnNTb21lKGEsIGIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVc2VkIGZvciByZXN1bHRzIG9mIGdldENvbnRhaW5tZW50UmVsYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludAorICAgICAgICBBTExfRU1QVFkgPSAwLAorICAgICAgICBOT1RfQV9TVVBFUlNFVF9CID0gMSwKKyAgICAgICAgTk9UX0FfRElTSk9JTlRfQiA9IDIsCisgICAgICAgIE5PVF9BX1NVQlNFVF9CID0gNCwKKyAgICAgICAgTk9UX0FfRVFVQUxTX0IgPSBOT1RfQV9TVUJTRVRfQiB8IE5PVF9BX1NVUEVSU0VUX0IsCisgICAgICAgIEFfUFJPUEVSX1NVQlNFVF9PRl9CID0gTk9UX0FfRElTSk9JTlRfQiB8IE5PVF9BX1NVUEVSU0VUX0IsCisgICAgICAgIEFfUFJPUEVSX1NVUEVSU0VUX0IgPSBOT1RfQV9TVUJTRVRfQiB8IE5PVF9BX0RJU0pPSU5UX0IsCisgICAgICAgIEFfUFJPUEVSX09WRVJMQVBTX0IgPSBOT1RfQV9TVUJTRVRfQiB8IE5PVF9BX0RJU0pPSU5UX0IgfCBOT1RfQV9TVVBFUlNFVF9COworICAgIAorICAgIC8qKgorICAgICAqIEFzc2Vzc2VzIGFsbCB0aGUgcG9zc2libGUgY29udGFpbm1lbnQgcmVsYXRpb25zIGJldHdlZW4gY29sbGVjdGlvbnMgQSBhbmQgQiB3aXRoIG9uZSBjYWxsLjxicj4KKyAgICAgKiBSZXR1cm5zIGFuIGludCB3aXRoIGJpdHMgc2V0LCBhY2NvcmRpbmcgdG8gYSAiVmVubiBEaWFncmFtIiB2aWV3IG9mIEEgdnMgQi48YnI+CisgICAgICogTk9UX0FfU1VQRVJTRVRfQjogYSAtIGIgIT0ge308YnI+CisgICAgICogTk9UX0FfRElTSk9JTlRfQjogYSAqIGIgIT0ge30gIC8vICogaXMgaW50ZXJzZWN0czxicj4KKyAgICAgKiBOT1RfQV9TVUJTRVRfQjogYiAtIGEgIT0ge308YnI+CisgICAgICogVGh1cyB0aGUgYml0cyBjYW4gYmUgdXNlZCB0byBnZXQgdGhlIGZvbGxvd2luZyByZWxhdGlvbnM6PGJyPgorICAgICAqIGZvciBBX1NVUEVSU0VUX0IsIHVzZSAoeCAmIENvbGxlY3Rpb25VdGlsaXRpZXMuTk9UX0FfU1VQRVJTRVRfQikgPT0gMDxicj4KKyAgICAgKiBmb3IgQV9TVUJTRVRfQiwgdXNlICh4ICYgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9TVUJTRVRfQikgPT0gMDxicj4KKyAgICAgKiBmb3IgQV9FUVVBTFNfQiwgdXNlICh4ICYgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9FUVVBTFNfQikgPT0gMDxicj4KKyAgICAgKiBmb3IgQV9ESVNKT0lOVF9CLCB1c2UgKHggJiBDb2xsZWN0aW9uVXRpbGl0aWVzLk5PVF9BX0RJU0pPSU5UX0IpID09IDA8YnI+CisgICAgICogZm9yIEFfT1ZFUkxBUFNfQiwgdXNlICh4ICYgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9ESVNKT0lOVF9CKSAhPSAwPGJyPgorICAgICAqLworICAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDb250YWlubWVudFJlbGF0aW9uKENvbGxlY3Rpb24gYSwgQ29sbGVjdGlvbiBiKSB7CisgICAgICAgIGlmIChhLnNpemUoKSA9PSAwKSB7CisgICAgICAgIAlyZXR1cm4gKGIuc2l6ZSgpID09IDApID8gQUxMX0VNUFRZIDogTk9UX0FfU1VQRVJTRVRfQjsKKyAgICAgICAgfSBlbHNlIGlmIChiLnNpemUoKSA9PSAwKSB7CisgICAgICAgIAlyZXR1cm4gTk9UX0FfU1VCU0VUX0I7CisgICAgICAgIH0KKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIC8vIFdBUk5JTkc6IG9uZSBtaWdodCB0aGluayB0aGF0IHRoZSBmb2xsb3dpbmcgY2FuIGJlIHNob3J0LWNpcmN1aXRlZCwgYnkgbG9va2luZyBhdAorICAgICAgICAvLyB0aGUgc2l6ZXMgb2YgYSBhbmQgYi4gSG93ZXZlciwgdGhpcyB3b3VsZCBmYWlsIGluIGdlbmVyYWwsIHdoZXJlIGEgZGlmZmVyZW50IGNvbXBhcmF0b3IgaXMgYmVpbmcKKyAgICAgICAgLy8gdXNlZCBpbiB0aGUgdHdvIGNvbGxlY3Rpb25zLiBVbmZvcnR1bmF0ZWx5LCB0aGVyZSBpcyBubyBmYWlsc2FmZSB3YXkgdG8gdGVzdCBmb3IgdGhhdC4KKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGEuaXRlcmF0b3IoKTsgcmVzdWx0ICE9IDYgJiYgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgcmVzdWx0IHw9IChiLmNvbnRhaW5zKGl0Lm5leHQoKSkpID8gTk9UX0FfRElTSk9JTlRfQiA6IE5PVF9BX1NVQlNFVF9COworICAgICAgICB9CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBiLml0ZXJhdG9yKCk7IChyZXN1bHQgJiAzKSAhPSAzICYmIGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIHJlc3VsdCB8PSAoYS5jb250YWlucyhpdC5uZXh0KCkpKSA/IE5PVF9BX0RJU0pPSU5UX0IgOiBOT1RfQV9TVVBFUlNFVF9COworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisJcHVibGljIHN0YXRpYyBTdHJpbmcgcmVtb3ZlKFN0cmluZyBzb3VyY2UsIFVuaWNvZGVTZXQgcmVtb3ZhbHMpIHsKKwkJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKwkJaW50IGNwOworCQlmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisJCQljcCA9IFVURjE2LmNoYXJBdChzb3VyY2UsIGkpOworCQkJaWYgKCFyZW1vdmFscy5jb250YWlucyhjcCkpIFVURjE2LmFwcGVuZChyZXN1bHQsIGNwKTsKKwkJfQorCQlyZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisJfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZXR0eVByaW50KFVuaWNvZGVTZXQgdXNldCwgQ29tcGFyYXRvciBjb21wLCBDb21wYXJhdG9yIHNwYWNlQ29tcGFyYXRvciwgYm9vbGVhbiBjb21wcmVzc1JhbmdlcykgeworICAgICAgICBBcHBlbmRlciByZXN1bHQgPSBuZXcgQXBwZW5kZXIoY29tcHJlc3NSYW5nZXMsIHNwYWNlQ29tcGFyYXRvcik7CisgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGNvbXBhcmlzb24gc2VwYXJhdGVzIGFsbCBzdHJpbmdzLCBldmVuIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgb25lcworICAgICAgICBDb21wYXJhdG9yIGNvbXAyID0gbmV3IE11bHRpQ29tcGFyYXRvcihuZXcgQ29tcGFyYXRvcltdIHtjb21wLCBuZXcgVVRGMTYuU3RyaW5nQ29tcGFyYXRvcih0cnVlLGZhbHNlLDApfSk7CisgICAgICAgIFNldCBvcmRlcmluZyA9IG5ldyBUcmVlU2V0KGNvbXAyKTsKKyAgICAgICAgZm9yIChVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHVzZXQpOyBpdC5uZXh0KCk7KSB7CisgICAgICAgICAgICBvcmRlcmluZy5hZGQoaXQuZ2V0U3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIlsiKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IG9yZGVyaW5nLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmRVbmljb2RlU2V0SXRlbSgoU3RyaW5nKSBpdC5uZXh0KCkpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC5mbHVzaExhc3QoKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiXSIpOworICAgICAgICBTdHJpbmcgc3Jlc3VsdCA9IHJlc3VsdC50b1N0cmluZygpOworICAgICAgICBVbmljb2RlU2V0IGRvdWJsZUNoZWNrID0gbmV3IFVuaWNvZGVTZXQoc3Jlc3VsdCk7CisgICAgICAgIGlmICghdXNldC5lcXVhbHMoZG91YmxlQ2hlY2spKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJGYWlsdXJlIHRvIHJvdW5kLXRyaXAgaW4gcHJldHR5LXByaW50Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNyZXN1bHQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEFwcGVuZGVyIHsKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgdGFyZ2V0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBwcml2YXRlIGludCBmaXJzdENvZGVQb2ludCA9IC0yOworICAgICAgICBwcml2YXRlIGludCBsYXN0Q29kZVBvaW50ID0gLTI7CisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBjb21wcmVzc1JhbmdlczsKKyAgICAgICAgcHJpdmF0ZSBDb21wYXJhdG9yIHNwYWNlQ29tcDsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbGFzdFN0cmluZyA9ICIiOworCisgICAgICAgIHB1YmxpYyBBcHBlbmRlcihib29sZWFuIGNvbXByZXNzUmFuZ2VzLCBDb21wYXJhdG9yIHNwYWNlQ29tcCkgeworICAgICAgICAgICAgdGhpcy5jb21wcmVzc1JhbmdlcyA9IGNvbXByZXNzUmFuZ2VzOworICAgICAgICAgICAgdGhpcy5zcGFjZUNvbXAgPSBzcGFjZUNvbXA7CisgICAgICAgIH0KKyAgICAgICAgQXBwZW5kZXIgYXBwZW5kVW5pY29kZVNldEl0ZW0oU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGludCBjcDsKKyAgICAgICAgICAgIGlmIChVVEYxNi5oYXNNb3JlQ29kZVBvaW50c1RoYW4ocywgMSkpIHsKKyAgICAgICAgICAgICAgICBmbHVzaExhc3QoKTsKKyAgICAgICAgICAgICAgICBhZGRTcGFjZShzKTsKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKCJ7Iik7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kUXVvdGVkKGNwID0gVVRGMTYuY2hhckF0KHMsIGkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZCgifSIpOworICAgICAgICAgICAgICAgIGxhc3RTdHJpbmcgPSBzOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbXByZXNzUmFuZ2VzKQorICAgICAgICAgICAgICAgICAgICBmbHVzaExhc3QoKTsKKyAgICAgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLCAwKTsKKyAgICAgICAgICAgICAgICBpZiAoY3AgPT0gbGFzdENvZGVQb2ludCArIDEpIHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdENvZGVQb2ludCA9IGNwOyAvLyBjb250aW51ZSByYW5nZQorICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIHN0YXJ0IHJhbmdlCisgICAgICAgICAgICAgICAgICAgIGZsdXNoTGFzdCgpOworICAgICAgICAgICAgICAgICAgICBmaXJzdENvZGVQb2ludCA9IGxhc3RDb2RlUG9pbnQgPSBjcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgICAgICAvKioKKyAgICAgICAgICogCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgYWRkU3BhY2UoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGlmIChmaXJzdCkgeworICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNwYWNlQ29tcC5jb21wYXJlKHMsIGxhc3RTdHJpbmcpICE9IDApIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICB9IGVsc2UgeworCSAgICAgICAgICAgIGludCB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKFVURjE2LmNoYXJBdChzLDApKTsKKwkgICAgICAgICAgICBpZiAodHlwZSA9PSBVQ2hhcmFjdGVyLk5PTl9TUEFDSU5HX01BUksgfHwgdHlwZSA9PSBVQ2hhcmFjdGVyLkVOQ0xPU0lOR19NQVJLKSB7CisJICAgICAgICAgICAgICAgIHRhcmdldC5hcHBlbmQoJyAnKTsKKwkgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgdm9pZCBmbHVzaExhc3QoKSB7CisgICAgICAgICAgICBpZiAobGFzdENvZGVQb2ludCA+PSAwKSB7CisgICAgICAgICAgICAgICAgYWRkU3BhY2UoVVRGMTYudmFsdWVPZihmaXJzdENvZGVQb2ludCkpOworICAgICAgICAgICAgICAgIGlmIChmaXJzdENvZGVQb2ludCAhPSBsYXN0Q29kZVBvaW50KSB7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZFF1b3RlZChmaXJzdENvZGVQb2ludCk7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5hcHBlbmQoZmlyc3RDb2RlUG9pbnQgKyAxID09IGxhc3RDb2RlUG9pbnQgPyAnICcgOiAnLScpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhcHBlbmRRdW90ZWQobGFzdENvZGVQb2ludCk7CisgICAgICAgICAgICAgICAgbGFzdFN0cmluZyA9IFVURjE2LnZhbHVlT2YobGFzdENvZGVQb2ludCk7CisgICAgICAgICAgICAgICAgZmlyc3RDb2RlUG9pbnQgPSBsYXN0Q29kZVBvaW50ID0gLTI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgQXBwZW5kZXIgYXBwZW5kUXVvdGVkKGludCBjb2RlUG9pbnQpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoY29kZVBvaW50KSB7CisgICAgICAgICAgICBjYXNlICdbJzogLy8gU0VUX09QRU46CisgICAgICAgICAgICBjYXNlICddJzogLy8gU0VUX0NMT1NFOgorICAgICAgICAgICAgY2FzZSAnLSc6IC8vIEhZUEhFTjoKKyAgICAgICAgICAgIGNhc2UgJ14nOiAvLyBDT01QTEVNRU5UOgorICAgICAgICAgICAgY2FzZSAnJic6IC8vIElOVEVSU0VDVElPTjoKKyAgICAgICAgICAgIGNhc2UgJ1xcJzogLy9CQUNLU0xBU0g6CisgICAgICAgICAgICBjYXNlICd7JzoKKyAgICAgICAgICAgIGNhc2UgJ30nOgorICAgICAgICAgICAgY2FzZSAnJCc6CisgICAgICAgICAgICBjYXNlICc6JzoKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAvLyBFc2NhcGUgd2hpdGVzcGFjZQorICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjb2RlUG9pbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5hcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHRhcmdldCwgY29kZVBvaW50KTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9ICAgICAgICAKKyAgICAgICAgQXBwZW5kZXIgYXBwZW5kKFN0cmluZyBzKSB7CisgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKHMpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiB0YXJnZXQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgTXVsdGlDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHByaXZhdGUgQ29tcGFyYXRvcltdIGNvbXBhcmF0b3JzOworICAgIAorICAgICAgICBwdWJsaWMgTXVsdGlDb21wYXJhdG9yIChDb21wYXJhdG9yW10gY29tcGFyYXRvcnMpIHsKKyAgICAgICAgICAgIHRoaXMuY29tcGFyYXRvcnMgPSBjb21wYXJhdG9yczsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBMZXhpZ3JhcGhpYyBjb21wYXJlLiBSZXR1cm5zIHRoZSBmaXJzdCBkaWZmZXJlbmNlCisgICAgICAgICAqIEByZXR1cm4gemVybyBpZiBlcXVhbC4gT3RoZXJ3aXNlICsvLSAoaSsxKSAKKyAgICAgICAgICogd2hlcmUgaSBpcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNvbXBhcmF0b3IgZmluZGluZyBhIGRpZmZlcmVuY2UKKyAgICAgICAgICogQHNlZSBqYXZhLnV0aWwuQ29tcGFyYXRvciNjb21wYXJlKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGFyZzAsIE9iamVjdCBhcmcxKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbXBhcmF0b3JzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IGNvbXBhcmF0b3JzW2ldLmNvbXBhcmUoYXJnMCwgYXJnMSk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID4gMCkgcmV0dXJuIGkrMTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLShpKzEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZmllcyBVbmljb2RlIHNldCB0byBmbGF0dGVuIHRoZSBzdHJpbmdzLiBFZyBbYWJje2RhfV0gPT4gW2FiY2RdCisgICAgICogUmV0dXJucyB0aGUgc2V0IGZvciBjaGFpbmluZy4KKyAgICAgKiBAcGFyYW0gZXhlbXBsYXIxCisgICAgICogQHJldHVybgorICAgICAqLworCXB1YmxpYyBzdGF0aWMgVW5pY29kZVNldCBmbGF0dGVuKFVuaWNvZGVTZXQgZXhlbXBsYXIxKSB7CisJCVVuaWNvZGVTZXQgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKwkJYm9vbGVhbiBnb3RTdHJpbmcgPSBmYWxzZTsKKwkJZm9yIChVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGV4ZW1wbGFyMSk7IGl0Lm5leHRSYW5nZSgpOykgeworCQkJaWYgKGl0LmNvZGVwb2ludCA9PSBpdC5JU19TVFJJTkcpIHsKKwkJCQlyZXN1bHQuYWRkQWxsKGl0LnN0cmluZyk7CisJCQkJZ290U3RyaW5nID0gdHJ1ZTsKKwkJCX0gZWxzZSB7CisJCQkJcmVzdWx0LmFkZChpdC5jb2RlcG9pbnQsIGl0LmNvZGVwb2ludEVuZCk7CisJCQl9CisJCX0KKwkJaWYgKGdvdFN0cmluZykgZXhlbXBsYXIxLnNldChyZXN1bHQpOworCQlyZXR1cm4gZXhlbXBsYXIxOworCX0KKworCS8qKgorCSAqIEZvciBwcm9kdWNpbmcgZmlsdGVyZWQgaXRlcmF0b3JzCisJICovCisJcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBGaWx0ZXJlZEl0ZXJhdG9yIGltcGxlbWVudHMgSXRlcmF0b3IgeworCQlwcml2YXRlIEl0ZXJhdG9yIGJhc2VJdGVyYXRvcjsKKwkJcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0IEVNUFRZID0gbmV3IE9iamVjdCgpOworCQlwcml2YXRlIHN0YXRpYyBmaW5hbCBPYmplY3QgRE9ORSA9IG5ldyBPYmplY3QoKTsKKwkJcHJpdmF0ZSBPYmplY3QgbmV4dE9iamVjdCA9IEVNUFRZOworCQlwdWJsaWMgRmlsdGVyZWRJdGVyYXRvciBzZXQoSXRlcmF0b3IgYmFzZUl0ZXJhdG9yKSB7CisJCQl0aGlzLmJhc2VJdGVyYXRvciA9IGJhc2VJdGVyYXRvcjsKKwkJCXJldHVybiB0aGlzOworCQl9CisJCXB1YmxpYyB2b2lkIHJlbW92ZSgpIHsKKwkJCXRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiRG9lc24ndCBzdXBwb3J0IHJlbW92YWwiKTsKKwkJfQorCQlwdWJsaWMgT2JqZWN0IG5leHQoKSB7CisJCQlPYmplY3QgcmVzdWx0ID0gbmV4dE9iamVjdDsKKwkJCW5leHRPYmplY3QgPSBFTVBUWTsKKwkJCXJldHVybiByZXN1bHQ7CisJCX0JCQorCQlwdWJsaWMgYm9vbGVhbiBoYXNOZXh0KCkgeworCQkJaWYgKG5leHRPYmplY3QgPT0gRE9ORSkgcmV0dXJuIGZhbHNlOworCQkJaWYgKG5leHRPYmplY3QgIT0gRU1QVFkpIHJldHVybiB0cnVlOworCQkJd2hpbGUgKGJhc2VJdGVyYXRvci5oYXNOZXh0KCkpIHsKKwkJCQluZXh0T2JqZWN0ID0gYmFzZUl0ZXJhdG9yLm5leHQoKTsKKwkJCQlpZiAoaXNJbmNsdWRlZChuZXh0T2JqZWN0KSkgeworCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQl9CisJCQl9CisJCQluZXh0T2JqZWN0ID0gRE9ORTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCQlhYnN0cmFjdCBwdWJsaWMgYm9vbGVhbiBpc0luY2x1ZGVkKE9iamVjdCBpdGVtKTsKKwl9CisJCisJcHVibGljIHN0YXRpYyBjbGFzcyBQcmVmaXhJdGVyYXRvciBleHRlbmRzIEZpbHRlcmVkSXRlcmF0b3IgeworCQlwcml2YXRlIFN0cmluZyBwcmVmaXg7CisJCXB1YmxpYyBQcmVmaXhJdGVyYXRvciBzZXQoSXRlcmF0b3IgYmFzZUl0ZXJhdG9yLCBTdHJpbmcgcHJlZml4KSB7CisJCQlzdXBlci5zZXQoYmFzZUl0ZXJhdG9yKTsKKwkJCXRoaXMucHJlZml4ID0gcHJlZml4OworCQkJcmV0dXJuIHRoaXM7CisJCX0KKwkJcHVibGljIGJvb2xlYW4gaXNJbmNsdWRlZChPYmplY3QgaXRlbSkgeworCQkJcmV0dXJuICgoU3RyaW5nKWl0ZW0pLnN0YXJ0c1dpdGgocHJlZml4KTsKKwkJfQorCX0KKwkKKwlwdWJsaWMgc3RhdGljIGNsYXNzIFJlZ2V4SXRlcmF0b3IgZXh0ZW5kcyBGaWx0ZXJlZEl0ZXJhdG9yIHsKKwkJcHJpdmF0ZSBNYXRjaGVyIG1hdGNoZXI7CisJCXB1YmxpYyBSZWdleEl0ZXJhdG9yIHNldChJdGVyYXRvciBiYXNlSXRlcmF0b3IsIE1hdGNoZXIgbWF0Y2hlcikgeworCQkJc3VwZXIuc2V0KGJhc2VJdGVyYXRvcik7CisJCQl0aGlzLm1hdGNoZXIgPSBtYXRjaGVyOworCQkJcmV0dXJuIHRoaXM7CisJCX0KKwkJcHVibGljIGJvb2xlYW4gaXNJbmNsdWRlZChPYmplY3QgaXRlbSkgeworCQkJcmV0dXJuIG1hdGNoZXIucmVzZXQoKFN0cmluZylpdGVtKS5tYXRjaGVzKCk7CisJCX0KKwl9CisKK30KKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Db21wYWN0QXJyYXlUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Db21wYWN0QXJyYXlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM3YTc2MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0NvbXBhY3RBcnJheVRlc3QuamF2YQpAQCAtMCwwICsxLDE2MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29tcGFjdEJ5dGVBcnJheTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNvbXBhY3RDaGFyQXJyYXk7CisKKy8qKgorICogQHNpbmNlIHJlbGVhc2UgMi4yCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb21wYWN0QXJyYXlUZXN0IGV4dGVuZHMgVGVzdEZtd2sgCit7IAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIG5ldyBDb21wYWN0QXJyYXlUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Qnl0ZUFycmF5Q292ZXJhZ2UoKSB7CisgICAgQ29tcGFjdEJ5dGVBcnJheSBjYmEgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheSgpOworICAgIGNiYS5zZXRFbGVtZW50QXQoKGNoYXIpMHg1LCAoYnl0ZSkweGRmKTsKKyAgICBjYmEuc2V0RWxlbWVudEF0KChjaGFyKTB4MTA1LCAoYnl0ZSkweGRmKTsKKyAgICBjYmEuc2V0RWxlbWVudEF0KChjaGFyKTB4MjA1LCAoYnl0ZSkweGRmKTsKKyAgICBjYmEuc2V0RWxlbWVudEF0KChjaGFyKTB4MzA1LCAoYnl0ZSkweGRmKTsKKyAgICBDb21wYWN0Qnl0ZUFycmF5IGNiYTIgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheSgoYnl0ZSkweGRmKTsKKyAgICBpZiAoY2JhLmVxdWFscyhjYmEyKSkgeworICAgICAgICBlcnJsbigidW5lcXVhbCBieXRlIGFycmF5cyBjb21wYXJlIGVxdWFsIik7CisgICAgfQorICAgIENvbXBhY3RCeXRlQXJyYXkgY2JhMyA9IChDb21wYWN0Qnl0ZUFycmF5KWNiYS5jbG9uZSgpOworCisgICAgbG9nbG4oImVxdWFscyBudWxsOiAiICsgY2JhLmVxdWFscyhudWxsKSk7CisgICAgbG9nbG4oImVxdWFscyBzZWxmOiAiICsgY2JhLmVxdWFscyhjYmEpKTsKKyAgICBsb2dsbigiZXF1YWxzIGNsb25lOiAiICsgY2JhLmVxdWFscyhjYmEzKSk7CisgICAgbG9nbG4oImVxdWFscyBib2d1czogIiArIGNiYS5lcXVhbHMobmV3IE9iamVjdCgpKSk7CisgICAgbG9nbG4oImhhc2g6ICIgKyBjYmEuaGFzaENvZGUoKSk7CisKKyAgICBjYmEuY29tcGFjdCh0cnVlKTsKKyAgICBjYmEuY29tcGFjdCh0cnVlKTsKKworICAgIGNoYXJbXSB4YSA9IGNiYS5nZXRJbmRleEFycmF5KCk7CisgICAgYnl0ZVtdIHZhID0gY2JhLmdldFZhbHVlQXJyYXkoKTsKKyAgICBDb21wYWN0Qnl0ZUFycmF5IGNiYTQgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheSh4YSwgdmEpOworCisgICAgU3RyaW5nIHhzID0gVXRpbGl0eS5hcnJheVRvUkxFU3RyaW5nKHhhKTsKKyAgICBTdHJpbmcgdnMgPSBVdGlsaXR5LmFycmF5VG9STEVTdHJpbmcodmEpOworICAgIENvbXBhY3RCeXRlQXJyYXkgY2JhNSA9IG5ldyBDb21wYWN0Qnl0ZUFycmF5KHhzLCB2cyk7CisKKyAgICBsb2dsbigiZXF1YWxzOiAiICsgY2JhNC5lcXVhbHMoY2JhNSkpOworICAgIGxvZ2xuKCJlcXVhbHM6ICIgKyBjYmEuZXF1YWxzKGNiYTQpKTsKKyAgICAKKyAgICAgIGNiYTQuY29tcGFjdChmYWxzZSk7CisgICAgbG9nbG4oImVxdWFsczogIiArIGNiYTQuZXF1YWxzKGNiYTUpKTsKKworICAgIGNiYTUuY29tcGFjdCh0cnVlKTsKKyAgICBsb2dsbigiZXF1YWxzOiAiICsgY2JhNC5lcXVhbHMoY2JhNSkpOworCisgICAgY2JhLnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGJ5dGUpMHhkZik7IC8vIGZvcmNlIGV4cGFuZAorICAgIGxvZ2xuKCJtb2RpZmllZCBlcXVhbHMgY2xvbmU6ICIgKyBjYmEuZXF1YWxzKGNiYTMpKTsKKworICAgIGNiYTMuc2V0RWxlbWVudEF0KChjaGFyKTB4NDA1LCAoYnl0ZSkweGRmKTsgLy8gZXF1aXZhbGVudCBtb2RpZmljYXRpb24KKyAgICBsb2dsbigibW9kaWZpZWQgZXF1YWxzIG1vZGlmaWVkIGNsb25lOiAiICsgY2JhLmVxdWFscyhjYmEzKSk7CisKKyAgICBjYmEzLnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGJ5dGUpMHhlZSk7IC8vIGRpZmZlcmVudCBtb2RpZmljYXRpb24KKyAgICBsb2dsbigiZGlmZmVyZW50IG1vZCBlcXVhbHM6ICIgKyBjYmEuZXF1YWxzKGNiYTMpKTsKKworICAgIGNiYS5jb21wYWN0KCk7CisgICAgQ29tcGFjdEJ5dGVBcnJheSBjYmE2ID0gKENvbXBhY3RCeXRlQXJyYXkpY2JhLmNsb25lKCk7CisgICAgbG9nbG4oImNsb25lZCBjb21wYWN0IGVxdWFsczogIiArIGNiYS5lcXVhbHMoY2JhNikpOworCisgICAgY2JhNi5zZXRFbGVtZW50QXQoKGNoYXIpMHg0MDUsIChieXRlKTB4ZWUpOworICAgIGxvZ2xuKCJtb2RpZmllZCBjbG9uZTogIiArIGNiYTMuZXF1YWxzKGNiYTYpKTsKKworICAgIGNiYTYuc2V0RWxlbWVudEF0KChjaGFyKTB4MTAwLCAoY2hhcikweDEwNCwgKGJ5dGUpMHhmZSk7CisgICAgZm9yIChpbnQgaSA9IDB4MTAwOyBpIDwgMHgxMDU7ICsraSkgeworICAgICAgICBjYmEzLnNldEVsZW1lbnRBdCgoY2hhcilpLCAoYnl0ZSkweGZlKTsKKyAgICB9CisgICAgbG9nbG4oImRvdWJsZSBtb2RpZmllZDogIiArIGNiYTMuZXF1YWxzKGNiYTYpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhckFycmF5Q292ZXJhZ2UoKSB7CisgICAgLy8gdjEuOCBmYWlscyB3aXRoIGV4dGVuc2l2ZSBjb21wYWN0aW9uLCBzbyBzZXQgdG8gZmFsc2UKKyAgICBmaW5hbCBib29sZWFuIEVYVEVOU0lWRSA9IGZhbHNlOworCisgICAgQ29tcGFjdENoYXJBcnJheSBjY2EgPSBuZXcgQ29tcGFjdENoYXJBcnJheSgpOworICAgIGNjYS5zZXRFbGVtZW50QXQoKGNoYXIpMHg1LCAoY2hhcikweGRmKTsKKyAgICBjY2Euc2V0RWxlbWVudEF0KChjaGFyKTB4MTA1LCAoY2hhcikweGRmKTsKKyAgICBjY2Euc2V0RWxlbWVudEF0KChjaGFyKTB4MjA1LCAoY2hhcikweGRmKTsKKyAgICBjY2Euc2V0RWxlbWVudEF0KChjaGFyKTB4MzA1LCAoY2hhcikweGRmKTsKKyAgICBDb21wYWN0Q2hhckFycmF5IGNjYTIgPSBuZXcgQ29tcGFjdENoYXJBcnJheSgoY2hhcikweGRmKTsKKyAgICBpZiAoY2NhLmVxdWFscyhjY2EyKSkgeworICAgICAgICBlcnJsbigidW5lcXVhbCBjaGFyIGFycmF5cyBjb21wYXJlIGVxdWFsIik7CisgICAgfQorICAgIENvbXBhY3RDaGFyQXJyYXkgY2NhMyA9IChDb21wYWN0Q2hhckFycmF5KWNjYS5jbG9uZSgpOworCisgICAgbG9nbG4oImVxdWFscyBudWxsOiAiICsgY2NhLmVxdWFscyhudWxsKSk7CisgICAgbG9nbG4oImVxdWFscyBzZWxmOiAiICsgY2NhLmVxdWFscyhjY2EpKTsKKyAgICBsb2dsbigiZXF1YWxzIGNsb25lOiAiICsgY2NhLmVxdWFscyhjY2EzKSk7CisgICAgbG9nbG4oImVxdWFscyBib2d1czogIiArIGNjYS5lcXVhbHMobmV3IE9iamVjdCgpKSk7CisgICAgbG9nbG4oImhhc2g6ICIgKyBjY2EuaGFzaENvZGUoKSk7CisKKyAgICBjY2EuY29tcGFjdChFWFRFTlNJVkUpOworICAgIGNjYS5jb21wYWN0KEVYVEVOU0lWRSk7CisKKyAgICBjaGFyW10geGEgPSBjY2EuZ2V0SW5kZXhBcnJheSgpOworICAgIGNoYXJbXSB2YSA9IGNjYS5nZXRWYWx1ZUFycmF5KCk7CisgICAgQ29tcGFjdENoYXJBcnJheSBjY2E0ID0gbmV3IENvbXBhY3RDaGFyQXJyYXkoeGEsIHZhKTsKKworICAgIFN0cmluZyB4cyA9IFV0aWxpdHkuYXJyYXlUb1JMRVN0cmluZyh4YSk7CisgICAgU3RyaW5nIHZzID0gVXRpbGl0eS5hcnJheVRvUkxFU3RyaW5nKHZhKTsKKyAgICBDb21wYWN0Q2hhckFycmF5IGNjYTUgPSBuZXcgQ29tcGFjdENoYXJBcnJheSh4cywgdnMpOworCisgICAgbG9nbG4oImVxdWFsczogIiArIGNjYTQuZXF1YWxzKGNjYTUpKTsKKyAgICBsb2dsbigiZXF1YWxzOiAiICsgY2NhLmVxdWFscyhjY2E0KSk7CisKKyAgICBjY2E0LmNvbXBhY3QoZmFsc2UpOworICAgIGxvZ2xuKCJlcXVhbHM6ICIgKyBjY2E0LmVxdWFscyhjY2E1KSk7CisKKyAgICBjY2E1LmNvbXBhY3QoRVhURU5TSVZFKTsKKyAgICBsb2dsbigiZXF1YWxzOiAiICsgY2NhNC5lcXVhbHMoY2NhNSkpOworCisgICAgY2NhLnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGNoYXIpMHhkZik7IC8vIGZvcmNlIGV4cGFuZAorICAgIGxvZ2xuKCJtb2RpZmllZCBlcXVhbHMgY2xvbmU6ICIgKyBjY2EuZXF1YWxzKGNjYTMpKTsKKworICAgIGNjYTMuc2V0RWxlbWVudEF0KChjaGFyKTB4NDA1LCAoY2hhcikweGRmKTsgLy8gZXF1aXZhbGVudCBtb2RpZmljYXRpb24KKyAgICBsb2dsbigibW9kaWZpZWQgZXF1YWxzIG1vZGlmaWVkIGNsb25lOiAiICsgY2NhLmVxdWFscyhjY2EzKSk7CisKKyAgICBjY2EzLnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGNoYXIpMHhlZSk7IC8vIGRpZmZlcmVudCBtb2RpZmljYXRpb24KKyAgICBsb2dsbigiZGlmZmVyZW50IG1vZCBlcXVhbHM6ICIgKyBjY2EuZXF1YWxzKGNjYTMpKTsKKyAgICAKKyAgICAvLyBhZnRlciBzZXRFbGVtZW50QXQgaXNDb21wYWN0IGlzIHNldCB0byBmYWxzZQorICAgIGNjYTMuY29tcGFjdCh0cnVlKTsKKyAgICBsb2dsbigiZGlmZmVyZW50IG1vZCBlcXVhbHM6ICIgKyBjY2EuZXF1YWxzKGNjYTMpKTsKKyAgICAKKyAgICBjY2EzLnNldEVsZW1lbnRBdCgoY2hhcikweDQwNSwgKGNoYXIpMHhlZSk7IC8vIGRpZmZlcmVudCBtb2RpZmljYXRpb24KKyAgICBsb2dsbigiZGlmZmVyZW50IG1vZCBlcXVhbHM6ICIgKyBjY2EuZXF1YWxzKGNjYTMpKTsKKyAgICAgICAgLy8gYWZ0ZXIgc2V0RWxlbWVudEF0IGlzQ29tcGFjdCBpcyBzZXQgdG8gZmFsc2UKKyAgICBjY2EzLmNvbXBhY3QoKTsKKyAgICBsb2dsbigiZGlmZmVyZW50IG1vZCBlcXVhbHM6ICIgKyBjY2EuZXF1YWxzKGNjYTMpKTsKKyAgICAKKyAgICAvLyB2MS44IGZhaWxzIHdpdGggZXh0ZW5zaXZlIGNvbXBhY3Rpb24sIGFuZCBkZWZhdWx0cyBleHRlbnNpdmUsIHNvIGRvbid0IGNvbXBhY3QKKyAgICAvLyBjY2EuY29tcGFjdCgpOworICAgIENvbXBhY3RDaGFyQXJyYXkgY2NhNiA9IChDb21wYWN0Q2hhckFycmF5KWNjYS5jbG9uZSgpOworICAgIGxvZ2xuKCJjbG9uZWQgY29tcGFjdCBlcXVhbHM6ICIgKyBjY2EuZXF1YWxzKGNjYTYpKTsKKworICAgIGNjYTYuc2V0RWxlbWVudEF0KChjaGFyKTB4NDA1LCAoY2hhcikweGVlKTsKKyAgICBsb2dsbigibW9kaWZpZWQgY2xvbmU6ICIgKyBjY2EzLmVxdWFscyhjY2E2KSk7CisKKyAgICBjY2E2LnNldEVsZW1lbnRBdCgoY2hhcikweDEwMCwgKGNoYXIpMHgxMDQsIChjaGFyKTB4ZmUpOworICAgIGZvciAoaW50IGkgPSAweDEwMDsgaSA8IDB4MTA1OyArK2kpIHsKKyAgICAgICAgY2NhMy5zZXRFbGVtZW50QXQoKGNoYXIpaSwgKGNoYXIpMHhmZSk7CisgICAgfQorICAgIGxvZ2xuKCJkb3VibGUgbW9kaWZpZWQ6ICIgKyBjY2EzLmVxdWFscyhjY2E2KSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQ3VycmVuY3lUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9DdXJyZW5jeVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTBhOGEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvQ3VycmVuY3lUZXN0LmphdmEKQEAgLTAsMCArMSwxNzQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IERlY2VtYmVyIDE4IDIwMDIKKyogU2luY2U6IElDVSAyLjQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogQHRlc3QKKyAqIEBzdW1tYXJ5IEdlbmVyYWwgdGVzdCBvZiBDdXJyZW5jeQorICovCitwdWJsaWMgY2xhc3MgQ3VycmVuY3lUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBDdXJyZW5jeVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBvZiBiYXNpYyBBUEkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEFQSSgpIHsKKyAgICAgICAgQ3VycmVuY3kgdXNkID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UoIlVTRCIpOworICAgICAgICAvKmludCBoYXNoID0gKi91c2QuaGFzaENvZGUoKTsKKyAgICAgICAgQ3VycmVuY3kganB5ID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UoIkpQWSIpOworICAgICAgICBpZiAodXNkLmVxdWFscyhqcHkpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVVNEID09IEpQWSIpOworICAgICAgICB9CisgICAgICAgIGlmICh1c2QuZXF1YWxzKCJhYmMiKSkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVTRCA9PSAoU3RyaW5nKSIpOworICAgICAgICB9CisgICAgICAgIGlmICh1c2QuZXF1YWxzKG51bGwpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVVNEID09IChudWxsKSIpOworICAgICAgICB9CisgICAgICAgIGlmICghdXNkLmVxdWFscyh1c2QpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVVNEICE9IFVTRCIpOworICAgICAgICB9CisKKyAgICAgICAgTG9jYWxlW10gYXZhaWwgPSBDdXJyZW5jeS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIGlmKGF2YWlsPT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiBnZXRBdmFpbGFibGVMb2NhbGVzIHJldHVybmVkIG51bGwiKTsKKyAgICAgICAgfQorCisgICAgdHJ5IHsKKyAgICAgIHVzZC5nZXROYW1lKFVMb2NhbGUuVVMsIDUsIG5ldyBib29sZWFuWzFdKTsKKyAgICAgIGVycmxuKCJleHBlY3RlZCBnZXROYW1lIHdpdGggaW52YWxpZCB0eXBlIHBhcmFtZXRlciB0byB0aHJvdyBleGNlcHRpb24iKTsKKyAgICB9CisgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgCWxvZ2xuKCJQQVNTOiBnZXROYW1lIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IHJlZ2lzdHJhdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVnaXN0cmF0aW9uKCkgeworICAgICAgICBmaW5hbCBDdXJyZW5jeSBqcHkgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZSgiSlBZIik7CisgICAgICAgIGZpbmFsIEN1cnJlbmN5IHVzZCA9IEN1cnJlbmN5LmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisKKyAgICB0cnkgeworICAgICAgQ3VycmVuY3kudW5yZWdpc3RlcihudWxsKTsgLy8gc2hvdWxkIGZhaWwsIGNvdmVyYWdlCisgICAgICBlcnJsbigiZXhwZWN0ZWQgdW5yZWdpc3RlciBvZiBudWxsIHRvIHRocm93IGV4Y2VwdGlvbiIpOworICAgIH0KKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAJbG9nbG4oIlBBU1M6IHVucmVnaXN0ZXIgb2YgbnVsbCBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICB9CisKKyAgICBpZiAoQ3VycmVuY3kudW5yZWdpc3RlcigiIikpIHsgLy8gY292ZXJhZ2UKKyAgICAgIGVycmxuKCJ1bnJlZ2lzdGVyIGJlZm9yZSByZWdpc3RlciBlcnJvbmVvdXNseSBzdWNjZWVkZWQiKTsKKyAgICB9CisKKyAgICAgICAgVUxvY2FsZSBmdV9GVSA9IG5ldyBVTG9jYWxlKCJmdV9GVSIpOworCisgICAgICAgIE9iamVjdCBrZXkxID0gQ3VycmVuY3kucmVnaXN0ZXJJbnN0YW5jZShqcHksIFVMb2NhbGUuVVMpOworICAgICAgICBPYmplY3Qga2V5MiA9IEN1cnJlbmN5LnJlZ2lzdGVySW5zdGFuY2UoanB5LCBmdV9GVSk7CisKKyAgICAgICAgQ3VycmVuY3kgbnVzID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgaWYgKCFudXMuZXF1YWxzKGpweSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJleHBlY3RlZCAiICsganB5ICsgIiBidXQgZ290OiAiICsgbnVzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNvbnZlcmFnZSwgbWFrZSBzdXJlIGRlZmF1bHQgZmFjdG9yeSB3b3JrcworICAgICAgICBDdXJyZW5jeSBudXMxID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UoTG9jYWxlLkpBUEFOKTsKKyAgICAgICAgaWYgKCFudXMxLmVxdWFscyhqcHkpKSB7CisgICAgICAgICAgICBlcnJsbigiZXhwZWN0ZWQgIiArIGpweSArICIgYnV0IGdvdDogIiArIG51czEpOworICAgICAgICB9CisKKyAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBDdXJyZW5jeS5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICBib29sZWFuIGZvdW5kID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGxvY2FsZXNbaV0uZXF1YWxzKGZ1X0ZVKSkgeworICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAgICBlcnJsbigiZGlkIG5vdCBmaW5kIGxvY2FsZSIgKyBmdV9GVSArICIgaW4gY3VycmVuY3kgbG9jYWxlcyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFDdXJyZW5jeS51bnJlZ2lzdGVyKGtleTEpKSB7CisgICAgICAgICAgICBlcnJsbigidW5hYmxlIHRvIHVucmVnaXN0ZXIgY3VycmVuY3kgdXNpbmcga2V5MSIpOworICAgICAgICB9CisgICAgICAgIGlmICghQ3VycmVuY3kudW5yZWdpc3RlcihrZXkyKSkgeworICAgICAgICAgICAgZXJybG4oInVuYWJsZSB0byB1bnJlZ2lzdGVyIGN1cnJlbmN5IHVzaW5nIGtleTIiKTsKKyAgICAgICAgfQorCisgICAgICAgIEN1cnJlbmN5IG51czIgPSBDdXJyZW5jeS5nZXRJbnN0YW5jZShMb2NhbGUuVVMpOworICAgICAgICBpZiAoIW51czIuZXF1YWxzKHVzZCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJleHBlY3RlZCAiICsgdXNkICsgIiBidXQgZ290OiAiICsgbnVzMik7CisgICAgICAgIH0KKworICAgICAgICBsb2NhbGVzID0gQ3VycmVuY3kuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAobG9jYWxlc1tpXS5lcXVhbHMoZnVfRlUpKSB7CisgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChmb3VuZCkgeworICAgICAgICAgICAgZXJybG4oImZvdW5kIGxvY2FsZSIgKyBmdV9GVSArICIgaW4gY3VycmVuY3kgbG9jYWxlcyBhZnRlciB1bnJlZ2lzdGVyIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IG5hbWVzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3ROYW1lcygpIHsKKyAgICAgICAgLy8gRG8gYSBiYXNpYyBjaGVjayBvZiBnZXROYW1lKCkKKyAgICAgICAgLy8gVVNEIHsgIlVTJCIsICJVUyBEb2xsYXIiICAgICAgICAgICAgfSAvLyAwNC8wNC8xNzkyLQorICAgICAgICBVTG9jYWxlIGVuID0gVUxvY2FsZS5FTkdMSVNIOworICAgICAgICBib29sZWFuW10gaXNDaG9pY2VGb3JtYXQgPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgQ3VycmVuY3kgdXNkID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UoIlVTRCIpOworICAgICAgICAvLyBXYXJuaW5nOiBIQVJELUNPREVEIExPQ0FMRSBEQVRBIGluIHRoaXMgdGVzdC4gIElmIGl0IGZhaWxzLCBDSEVDSworICAgICAgICAvLyBUSEUgTE9DQUxFIERBVEEgYmVmb3JlIGRpdmluZyBpbnRvIHRoZSBjb2RlLgorICAgICAgICBpZiAoIW5vRGF0YSgpKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlVTRC5nZXROYW1lKFNZTUJPTF9OQU1FKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlVTJCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgdXNkLmdldE5hbWUoZW4sIEN1cnJlbmN5LlNZTUJPTF9OQU1FLCBpc0Nob2ljZUZvcm1hdCkpOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJVU0QuZ2V0TmFtZShMT05HX05BTUUpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiVVMgRG9sbGFyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1c2QuZ2V0TmFtZShlbiwgQ3VycmVuY3kuTE9OR19OQU1FLCBpc0Nob2ljZUZvcm1hdCkpOworICAgICAgICB9CisgICAgICAgIC8vIFRPRE8gYWRkIG1vcmUgdGVzdHMgbGF0ZXIKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q292ZXJhZ2UoKSB7CisgICAgICAgIEN1cnJlbmN5IHVzZCA9IEN1cnJlbmN5LmdldEluc3RhbmNlKCJVU0QiKTsKKyAgICAgICAgaWYgKCFub0RhdGEoKSkgeworICAgICAgICBhc3NlcnRFcXVhbHMoIlVTRC5nZXRTeW1ib2woKSIsCisgICAgICAgICAgICAgICAgIiQiLAorICAgICAgICAgICAgICAgIHVzZC5nZXRTeW1ib2woKSk7CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJVU0QuZ2V0TG9jYWxlKCkiLAorICAgICAgICAJCVVMb2NhbGUuUk9PVCwKKwkJCQl1c2QuZ2V0TG9jYWxlKG51bGwpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q3VycmVuY3lLZXl3b3JkKCkgeworICAgIFVMb2NhbGUgbG9jYWxlID0gbmV3IFVMb2NhbGUoInRoX1RIQGNvbGxhdGlvbj10cmFkaXRpb25hbDtjdXJyZW5jeT1RUVEiKTsKKyAgICBDdXJyZW5jeSBjdXJyZW5jeSA9IEN1cnJlbmN5LmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgU3RyaW5nIHJlc3VsdCA9IGN1cnJlbmN5LmdldEN1cnJlbmN5Q29kZSgpOworICAgIGlmICghIlFRUSIuZXF1YWxzKHJlc3VsdCkpIHsKKyAgICAgICAgZXJybG4oImdvdCB1bmV4cGVjdGVkIGN1cnJlbmN5OiAiICsgcmVzdWx0KTsKKyAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGF0YUlucHV0Q29tcHJlc3Nvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGF0YUlucHV0Q29tcHJlc3Nvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1NDRmNTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EYXRhSW5wdXRDb21wcmVzc29yLmphdmEKQEAgLTAsMCArMSwyMzUgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS5pby5EYXRhSW5wdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkxpbmtlZEhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyAqIFNpbXBsZSBkYXRhIGlucHV0IGNvbXByZXNzb3IuIE5vdGhpbmcgZmFuY3ksIGJ1dCBtdWNoIHNtYWxsZXIgZm9vdHByaW50IGZvcgorICogaW50cyBhbmQgbWFueSBzdHJpbmdzLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgRGF0YUlucHV0Q29tcHJlc3NvciBpbXBsZW1lbnRzIE9iamVjdElucHV0IHsKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBTSE9XID0gZmFsc2U7CisKKyAgICBwcml2YXRlIE9iamVjdElucHV0IGRhdGFJbnB1dDsKKworICAgIHByaXZhdGUgdHJhbnNpZW50IFN0cmluZ0J1ZmZlciBzdHJpbmdCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICBwdWJsaWMgRGF0YUlucHV0Q29tcHJlc3NvcihPYmplY3RJbnB1dCBkYXRhSW5wdXQpIHsKKyAgICAgICAgdGhpcy5kYXRhSW5wdXQgPSBkYXRhSW5wdXQ7CisgICAgfQorCisgICAgcHVibGljIERhdGFJbnB1dCBnZXREYXRhSW5wdXQoKSB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RGF0YUlucHV0KE9iamVjdElucHV0IGRhdGFJbnB1dCkgeworICAgICAgICB0aGlzLmRhdGFJbnB1dCA9IGRhdGFJbnB1dDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiByZWFkQm9vbGVhbigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQucmVhZEJvb2xlYW4oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYnl0ZSByZWFkQnl0ZSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQucmVhZEJ5dGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHJlYWRVbnNpZ25lZEJ5dGUoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gZGF0YUlucHV0LnJlYWRVbnNpZ25lZEJ5dGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZG91YmxlIHJlYWREb3VibGUoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gZGF0YUlucHV0LnJlYWREb3VibGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmxvYXQgcmVhZEZsb2F0KCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGRhdGFJbnB1dC5yZWFkRmxvYXQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWFkRnVsbHkoYnl0ZVtdIGIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGRhdGFJbnB1dC5yZWFkRnVsbHkoYik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVhZEZ1bGx5KGJ5dGVbXSBiLCBpbnQgb2ZmLCBpbnQgbGVuKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhSW5wdXQucmVhZEZ1bGx5KGIsIG9mZiwgbGVuKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHNraXBCeXRlcyhpbnQgbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGRhdGFJbnB1dC5za2lwQnl0ZXMobik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyByZWFkTGluZSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQucmVhZExpbmUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGF2YWlsYWJsZSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQuYXZhaWxhYmxlKCk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGNsb3NlKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZGF0YUlucHV0LmNsb3NlKCk7CisgICAgfQorICAgIHB1YmxpYyBpbnQgcmVhZCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQucmVhZCgpOworICAgIH0KKyAgICBwdWJsaWMgaW50IHJlYWQoYnl0ZVtdIGIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQucmVhZChiKTsKKyAgICB9CisgICAgcHVibGljIGludCByZWFkKGJ5dGVbXSBiLCBpbnQgb2ZmLCBpbnQgbGVuKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gZGF0YUlucHV0LnJlYWQoYiwgb2ZmLCBsZW4pOworICAgIH0KKyAgICBwdWJsaWMgT2JqZWN0IHJlYWRPYmplY3QoKSB0aHJvd3MgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gZGF0YUlucHV0LnJlYWRPYmplY3QoKTsKKyAgICB9CisgICAgcHVibGljIGxvbmcgc2tpcChsb25nIG4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBkYXRhSW5wdXQuc2tpcChuKTsKKyAgICB9CisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIGRhdGFJbnB1dC50b1N0cmluZygpOworICAgIH0KKyAgICAvLyA9PT09IE5ldyBSb3V0aW5lcyA9PT09CisKKyAgICBwdWJsaWMgY2hhciByZWFkQ2hhcigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiAoY2hhcikgcmVhZFVMb25nKCk7CisgICAgfQorCisgICAgcHVibGljIHNob3J0IHJlYWRTaG9ydCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiAoc2hvcnQpIHJlYWRMb25nKCk7CisgICAgfQorCisgICAgcHVibGljIGludCByZWFkVW5zaWduZWRTaG9ydCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiAoaW50KSByZWFkVUxvbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHJlYWRVU2hvcnQoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gKGludCkgcmVhZFVMb25nKCk7CisgICAgfQorCisgICAgcHVibGljIGludCByZWFkSW50KCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIChpbnQpIHJlYWRMb25nKCk7CisgICAgfQorCisgICAgcHVibGljIGludCByZWFkVUludCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiAoaW50KSByZWFkVUxvbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHJlYWRDaGFycyhpbnQgbGVuKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBzdHJpbmdCdWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgICAgICBpbnQgY3AgPSAoaW50KSByZWFkVUxvbmcoKTsKKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChzdHJpbmdCdWZmZXIsIGNwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RyaW5nQnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyByZWFkVVRGKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IGxlbiA9IChpbnQpIHJlYWRVTG9uZygpOworICAgICAgICByZXR1cm4gcmVhZENoYXJzKGxlbik7CisgICAgfQorCisgICAgcHVibGljIGxvbmcgcmVhZExvbmcoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBsb25nIHJlc3VsdCA9IDA7CisgICAgICAgIGludCBvZmZzZXQgPSAwOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgbG9uZyBpbnB1dCA9IHJlYWRCeXRlKCk7CisgICAgICAgICAgICByZXN1bHQgfD0gKGlucHV0ICYgMHg3RikgPDwgb2Zmc2V0OworICAgICAgICAgICAgaWYgKChpbnB1dCAmIDB4ODApID09IDApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBvZmZzZXQgKz0gNzsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuIG5lZ2F0aXZlID0gKHJlc3VsdCAmIDEpICE9IDA7IC8vIGdldCBzaWduIGJpdCBmcm9tIHRoZSBib3R0b20sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGludmVydAorICAgICAgICByZXN1bHQgPj4+PSAxOworICAgICAgICBpZiAobmVnYXRpdmUpCisgICAgICAgICAgICByZXN1bHQgPSB+cmVzdWx0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBsb25nIHJlYWRVTG9uZygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvbmcgcmVzdWx0ID0gMDsKKyAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7IC8vIHJlYWQgc2VxdWVuY2Ugb2YgNyBiaXRzLCB3aXRoIHRvcCBiaXQgPSAxIGZvcgorICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250aW51YXRpb24KKyAgICAgICAgICAgIGludCBpbnB1dCA9IHJlYWRCeXRlKCk7CisgICAgICAgICAgICByZXN1bHQgfD0gKGlucHV0ICYgMHg3RikgPDwgb2Zmc2V0OworICAgICAgICAgICAgaWYgKChpbnB1dCAmIDB4ODApID09IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIG9mZnNldCArPSA3OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogIAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXSByZWFkU3RyaW5nU2V0KENvbGxlY3Rpb24gYXZhaWxhYmxlVmFsdWVzKQorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IHNpemUgPSByZWFkVUludCgpOworICAgICAgICBpZiAoU0hPVykgU3lzdGVtLm91dC5wcmludGxuKCJyZWFkU3RyaW5nU2V0Iik7CisgICAgICAgIE9iamVjdFtdIHZhbHVlc0xpc3QgPSBuZXcgT2JqZWN0W3NpemUgKyAxXTsKKyAgICAgICAgLy8gZmlyc3QgaXRlbSBpcyBudWxsCisgICAgICAgIFN0cmluZyBsYXN0U3RyaW5nID0gIiI7CisgICAgICAgIFJlYWRQb29sIHRyYWlsaW5nUG9vbCA9IG5ldyBSZWFkUG9vbCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICAgICAgaW50IGNvbW1vbiA9IHJlYWRVSW50KCk7CisgICAgICAgICAgICBib29sZWFuIGluUG9vbCA9IChjb21tb24gJiAxKSAhPSAwOworICAgICAgICAgICAgY29tbW9uID4+Pj0gMTsKKyAgICAgICAgICAgIGlmIChTSE9XKSBTeXN0ZW0ub3V0LnByaW50bG4oY29tbW9uKTsKKyAgICAgICAgICAgIFN0cmluZyBjdXJyZW50OworICAgICAgICAgICAgaWYgKGluUG9vbCkgeworICAgICAgICAgICAgICAgIGludCBwb29sSW5kZXggPSByZWFkVUludCgpOworICAgICAgICAgICAgICAgIGlmIChTSE9XKSBTeXN0ZW0ub3V0LnByaW50bG4oIlx0IiArIHBvb2xJbmRleCk7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IChTdHJpbmcpIHRyYWlsaW5nUG9vbC5nZXQocG9vbEluZGV4KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IHJlYWRVVEYoKTsKKyAgICAgICAgICAgICAgICB0cmFpbGluZ1Bvb2wuYWRkKGN1cnJlbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFsdWVzTGlzdFtpICsgMV0gPSBsYXN0U3RyaW5nID0gbGFzdFN0cmluZy5zdWJzdHJpbmcoMCwgY29tbW9uKQorICAgICAgICAgICAgICAgICAgICArIGN1cnJlbnQ7CisgICAgICAgICAgICBpZiAoU0hPVykgU3lzdGVtLm91dC5wcmludGxuKCJcdFx0IiArIGxhc3RTdHJpbmcpOworICAgICAgICAgICAgaWYgKGF2YWlsYWJsZVZhbHVlcyAhPSBudWxsKSBhdmFpbGFibGVWYWx1ZXMuYWRkKGN1cnJlbnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZXNMaXN0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFJlYWRQb29sIHsKKyAgICAgICAgcHJpdmF0ZSBMaXN0IHRyYWlsaW5nUG9vbCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgcHVibGljIE9iamVjdCBnZXQoaW50IGluZGV4KSB7CisgICAgICAgICAgICByZXR1cm4gdHJhaWxpbmdQb29sLmdldChpbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgYWRkKE9iamVjdCBvKSB7CisgICAgICAgICAgICB0cmFpbGluZ1Bvb2wuYWRkKG8pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQHRocm93cyBJT0V4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbgorICAgICAqIAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXSByZWFkQ29sbGVjdGlvbihMaW5rZWRIYXNoU2V0IGF2YWlsYWJsZVZhbHVlcykgdGhyb3dzIENsYXNzTm90Rm91bmRFeGNlcHRpb24sIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IHNpemUgPSByZWFkVUludCgpOworICAgICAgICBPYmplY3RbXSB2YWx1ZXNMaXN0ID0gbmV3IE9iamVjdFtzaXplICsgMV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICB2YWx1ZXNMaXN0W2kgKyAxXSA9IHJlYWRPYmplY3QoKTsKKyAgICAgICAgfQorICAgICAgIHJldHVybiB2YWx1ZXNMaXN0OworICAgIH0KK30KKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EYXRhT3V0cHV0Q29tcHJlc3Nvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGF0YU91dHB1dENvbXByZXNzb3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDRlMTg2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGF0YU91dHB1dENvbXByZXNzb3IuamF2YQpAQCAtMCwwICsxLDIxNSBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLkRhdGFPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpbmtlZEhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU29ydGVkU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKy8qKgorICogU2ltcGxlIGRhdGEgb3V0cHV0IGNvbXByZXNzb3IuIE5vdGhpbmcgZmFuY3ksIGJ1dCBtdWNoIHNtYWxsZXIgZm9vdHByaW50IGZvciBpbnRzIGFuZCBtYW55IHN0cmluZ3MuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBEYXRhT3V0cHV0Q29tcHJlc3NvciBpbXBsZW1lbnRzIE9iamVjdE91dHB1dCB7CisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gU0hPVyA9IGZhbHNlOworCisgICAgcHJpdmF0ZSBPYmplY3RPdXRwdXQgZGF0YU91dHB1dDsKKworICAgIHB1YmxpYyBEYXRhT3V0cHV0Q29tcHJlc3NvcihPYmplY3RPdXRwdXQgZGF0YU91dHB1dCkgeworICAgICAgICB0aGlzLmRhdGFPdXRwdXQgPSBkYXRhT3V0cHV0OworICAgIH0KKworICAgIHB1YmxpYyBEYXRhT3V0cHV0IGdldERhdGFPdXRwdXQoKSB7CisgICAgICAgIHJldHVybiBkYXRhT3V0cHV0OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldERhdGFPdXRwdXQoT2JqZWN0T3V0cHV0IGRhdGFPdXRwdXQpIHsKKyAgICAgICAgdGhpcy5kYXRhT3V0cHV0ID0gZGF0YU91dHB1dDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShieXRlW10gYikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZGF0YU91dHB1dC53cml0ZShiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShieXRlW10gYiwgaW50IG9mZiwgaW50IGxlbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZGF0YU91dHB1dC53cml0ZShiLCBvZmYsIGxlbik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGUoaW50IGIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGRhdGFPdXRwdXQud3JpdGUoYik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVCb29sZWFuKGJvb2xlYW4gdikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZGF0YU91dHB1dC53cml0ZUJvb2xlYW4odik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVCeXRlKGludCB2KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhT3V0cHV0LndyaXRlQnl0ZSh2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUJ5dGVzKFN0cmluZyBzKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhT3V0cHV0LndyaXRlQnl0ZXMocyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVEb3VibGUoZG91YmxlIHYpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGRhdGFPdXRwdXQud3JpdGVEb3VibGUodik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVGbG9hdChmbG9hdCB2KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhT3V0cHV0LndyaXRlRmxvYXQodik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhT3V0cHV0LmNsb3NlKCk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGZsdXNoKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZGF0YU91dHB1dC5mbHVzaCgpOworICAgIH0KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gZGF0YU91dHB1dC50b1N0cmluZygpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCB3cml0ZU9iamVjdChPYmplY3Qgb2JqKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBkYXRhT3V0cHV0LndyaXRlT2JqZWN0KG9iaik7CisgICAgfQorICAgIC8vID09PT0gTmV3IFJvdXRpbmVzID09PT0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlQ2hhcihpbnQgdikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgd3JpdGVVTG9uZyh2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVNob3J0KGludCB2KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICB3cml0ZUxvbmcodik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVVU2hvcnQoaW50IHYpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHdyaXRlVUxvbmcodik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVJbnQoaW50IHYpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHdyaXRlTG9uZyh2KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVVJbnQoaW50IHYpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHdyaXRlVUxvbmcodik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVVVEYoU3RyaW5nIHN0cikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgd3JpdGVVTG9uZyhVVEYxNi5jb3VudENvZGVQb2ludChzdHIpKTsKKyAgICAgICAgd3JpdGVDaGFycyhzdHIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlQ2hhcnMoU3RyaW5nIHMpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGludCBjcCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgICAgIHdyaXRlVUxvbmcoY3ApOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVMb25nKGxvbmcgdikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgbG9uZyBmbGFnID0gMDsgLy8gcHV0IHNpZ24gYml0IGF0IHRoZSBib3R0b20sIGFuZCBpbnZlcnQKKyAgICAgICAgaWYgKHYgPCAwKSB7CisgICAgICAgICAgICB2ID0gfnY7CisgICAgICAgICAgICBmbGFnID0gMTsKKyAgICAgICAgfQorICAgICAgICB2IDw8PSAxOworICAgICAgICB2IHw9IGZsYWc7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAoKHYgJiB+MHg3RkwpID09IDApIHsKKyAgICAgICAgICAgICAgICBkYXRhT3V0cHV0LndyaXRlQnl0ZSgoYnl0ZSkgdik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkYXRhT3V0cHV0LndyaXRlQnl0ZSgoYnl0ZSkgKDB4ODBMIHwgdikpOworICAgICAgICAgICAgdiA+Pj49IDc7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVVMb25nKGxvbmcgdikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsgLy8gd3JpdGUgc2VxdWVuY2Ugb2YgNyBiaXRzLCB3aXRoIHRvcCBiaXQgPSAxIGZvciBjb250aW51YXRpb24KKyAgICAgICAgICAgIGlmICgodiAmIH4weDdGTCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGRhdGFPdXRwdXQud3JpdGVCeXRlKChieXRlKSB2KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRhdGFPdXRwdXQud3JpdGVCeXRlKChieXRlKSAoMHg4MEwgfCB2KSk7CisgICAgICAgICAgICB2ID4+Pj0gNzsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHdyaXRlU3RyaW5nU2V0KFNvcnRlZFNldCBjLCBNYXAgb2JqZWN0X2luZGV4KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAoU0hPVykgU3lzdGVtLm91dC5wcmludGxuKCJ3cml0ZVN0cmluZ1NldCIpOworICAgICAgICB3cml0ZVVJbnQoYy5zaXplKCkpOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIG9iamVjdF9pbmRleC5wdXQobnVsbCwgbmV3IEludGVnZXIoaSsrKSk7CisgICAgICAgIFdyaXRlUG9vbCB0cmFpbGluZ1Bvb2wgPSBuZXcgV3JpdGVQb29sKCk7CisgICAgICAgIGludCBwb29sQ291bnQgPSAwOworICAgICAgICBTdHJpbmcgbGFzdFN0cmluZyA9ICIiOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBTdHJpbmcgcyA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgIG9iamVjdF9pbmRleC5wdXQocywgbmV3IEludGVnZXIoaSsrKSk7CisgICAgICAgICAgICBpbnQgY29tbW9uID0gVW5pY29kZU1hcC5maW5kQ29tbW9uKGxhc3RTdHJpbmcsIHMpOyAvLyBydW5sZW5ndGggZW5jb2RlCisgICAgICAgICAgICBsYXN0U3RyaW5nID0gczsKKyAgICAgICAgICAgIFN0cmluZyBwaWVjZSA9IHMuc3Vic3RyaW5nKGNvbW1vbik7CisgICAgICAgICAgICBpZiAoU0hPVykgU3lzdGVtLm91dC5wcmludGxuKGNvbW1vbik7CisgICAgICAgICAgICBjb21tb24gPDw9IDE7CisgICAgICAgICAgICBpbnQgaW5Qb29sID0gdHJhaWxpbmdQb29sLmdldEluZGV4KHBpZWNlKTsKKyAgICAgICAgICAgIGlmIChpblBvb2wgPCAwKSB7CisgICAgICAgICAgICAgICAgd3JpdGVVSW50KGNvbW1vbik7CisgICAgICAgICAgICAgICAgd3JpdGVVVEYocGllY2UpOworICAgICAgICAgICAgICAgIHRyYWlsaW5nUG9vbC5wdXQocGllY2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB3cml0ZVVJbnQoY29tbW9uIHwgMSk7CisgICAgICAgICAgICAgICAgd3JpdGVVSW50KGluUG9vbCk7CisgICAgICAgICAgICAgICAgaWYgKFNIT1cpIFN5c3RlbS5vdXQucHJpbnRsbigiXHQiICsgaW5Qb29sKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChTSE9XKSBTeXN0ZW0ub3V0LnByaW50bG4oIlx0XHQiICsgbGFzdFN0cmluZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBXcml0ZVBvb2wgeworICAgICAgICBwcml2YXRlIE1hcCB0cmFpbGluZ1Bvb2wgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBwcml2YXRlIGludCBwb29sQ291bnQgPSAwOworICAgICAgICBwdWJsaWMgaW50IGdldEluZGV4KE9iamVjdCBvKSB7CisgICAgICAgICAgICBJbnRlZ2VyIGluUG9vbCA9IChJbnRlZ2VyKSB0cmFpbGluZ1Bvb2wuZ2V0KG8pOworICAgICAgICAgICAgaWYgKGluUG9vbCA9PSBudWxsKSByZXR1cm4gLTE7CisgICAgICAgICAgICByZXR1cm4gaW5Qb29sLmludFZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgcHV0KE9iamVjdCBvKSB7CisgICAgICAgICAgICB0cmFpbGluZ1Bvb2wucHV0KG8sIG5ldyBJbnRlZ2VyKHBvb2xDb3VudCsrKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisgICAgICogCisgICAgICovCisgICAgcHVibGljIHZvaWQgd3JpdGVDb2xsZWN0aW9uKENvbGxlY3Rpb24gYywgTWFwIG9iamVjdF9pbmRleCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgd3JpdGVVSW50KGMuc2l6ZSgpKTsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBvYmplY3RfaW5kZXgucHV0KG51bGwsIG5ldyBJbnRlZ2VyKGkrKykpOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBPYmplY3QgcyA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIGRhdGFPdXRwdXQud3JpdGVPYmplY3Qocyk7CisgICAgICAgICAgICBpZiAob2JqZWN0X2luZGV4ICE9IG51bGwpIG9iamVjdF9pbmRleC5wdXQocywgbmV3IEludGVnZXIoaSsrKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EaWZmZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0RpZmZlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3YjEzMDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EaWZmZXIuamF2YQpAQCAtMCwwICsxLDE3MSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKKy8qKiBWRVJZIEJhc2ljIERpZmYgcHJvZ3JhbS4gQ29tcGFyZXMgdHdvIHNlcXVlbmNlcyBvZiBvYmplY3RzIGZlZCBpbnRvIGl0LCBhbmQKKyAqIGxldHMgeW91IGtub3cgd2hlcmUgdGhleSBhcmUgZGlmZmVyZW50LgorICogQGF1dGhvciBNYXJrIERhdmlzCisgKiBAdmVyc2lvbiAxLjAKKyAqLworCitmaW5hbCBwdWJsaWMgY2xhc3MgRGlmZmVyIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHQgPQorICAgICAgIkNvcHlyaWdodCAoQykgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RhY2tTaXplIFRoZSBzaXplIG9mIHRoZSBsYXJnZXN0IGRpZmZlcmVuY2UgeW91IGV4cGVjdC4KKyAgICAgKiBAcGFyYW0gbWF0Y2hDb3VudCBUaGUgbnVtYmVyIG9mIGl0ZW1zIHRoYXQgaGF2ZSB0byBiZSB0aGUgc2FtZSB0byBjb3VudCBhcyBhIG1hdGNoCisgICAgICovCisgICAgcHVibGljIERpZmZlcihpbnQgc3RhY2tTaXplLCBpbnQgbWF0Y2hDb3VudCkgeworICAgICAgICB0aGlzLlNUQUNLU0laRSA9IHN0YWNrU2l6ZTsKKyAgICAgICAgdGhpcy5FUVVBTFNJWkUgPSBtYXRjaENvdW50OworICAgICAgICBhID0gbmV3IE9iamVjdFtzdGFja1NpemUrbWF0Y2hDb3VudF07CisgICAgICAgIGIgPSBuZXcgT2JqZWN0W3N0YWNrU2l6ZSttYXRjaENvdW50XTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGQgKE9iamVjdCBhU3RyLCBPYmplY3QgYlN0cikgeworICAgICAgICBhZGRBKGFTdHIpOworICAgICAgICBhZGRCKGJTdHIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEEgKE9iamVjdCBhU3RyKSB7CisgICAgICAgIGZsdXNoKCk7CisgICAgICAgIGFbYUNvdW50KytdID0gYVN0cjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRCIChPYmplY3QgYlN0cikgeworICAgICAgICBmbHVzaCgpOworICAgICAgICBiW2JDb3VudCsrXSA9IGJTdHI7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRBTGluZShpbnQgb2Zmc2V0KSB7CisgICAgICAgIHJldHVybiBhTGluZSArIG1heFNhbWUgKyBvZmZzZXQ7CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBnZXRBKGludCBvZmZzZXQpIHsKKyAgICAgICAgaWYgKG9mZnNldCA8IDApIHJldHVybiBsYXN0OworICAgICAgICBpZiAob2Zmc2V0ID4gYVRvcC1tYXhTYW1lKSByZXR1cm4gbmV4dDsKKyAgICAgICAgcmV0dXJuIGFbb2Zmc2V0XTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEFDb3VudCgpIHsKKyAgICAgICAgcmV0dXJuIGFUb3AtbWF4U2FtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEJDb3VudCgpIHsKKyAgICAgICAgcmV0dXJuIGJUb3AtbWF4U2FtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEJMaW5lKGludCBvZmZzZXQpIHsKKyAgICAgICAgcmV0dXJuIGJMaW5lICsgbWF4U2FtZSArIG9mZnNldDsKKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IGdldEIoaW50IG9mZnNldCkgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCkgcmV0dXJuIGxhc3Q7CisgICAgICAgIGlmIChvZmZzZXQgPiBiVG9wLW1heFNhbWUpIHJldHVybiBuZXh0OworICAgICAgICByZXR1cm4gYltvZmZzZXRdOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNoZWNrTWF0Y2goYm9vbGVhbiBmaW5hbFBhc3MpIHsKKyAgICAgICAgLy8gZmluZCB0aGUgaW5pdGlhbCBzdHJpbmdzIHRoYXQgYXJlIHRoZSBzYW1lCisgICAgICAgIGludCBtYXggPSBhQ291bnQ7CisgICAgICAgIGlmIChtYXggPiBiQ291bnQpIG1heCA9IGJDb3VudDsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBtYXg7ICsraSkgeworICAgICAgICAgICAgaWYgKCFhW2ldLmVxdWFscyhiW2ldKSkgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgLy8gYXQgdGhpcyBwb2ludCwgYWxsIGl0ZW1zIHVwIHRvIGkgYXJlIGVxdWFsCisgICAgICAgIG1heFNhbWUgPSBpOworICAgICAgICBhVG9wID0gYlRvcCA9IG1heFNhbWU7CisgICAgICAgIGlmIChtYXhTYW1lID4gMCkgbGFzdCA9IGFbbWF4U2FtZS0xXTsKKyAgICAgICAgbmV4dCA9ICIiOworCisgICAgICAgIGlmIChmaW5hbFBhc3MpIHsKKyAgICAgICAgICAgIGFUb3AgPSBhQ291bnQ7CisgICAgICAgICAgICBiVG9wID0gYkNvdW50OworICAgICAgICAgICAgbmV4dCA9ICIiOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFDb3VudCAtIG1heFNhbWUgPCBFUVVBTFNJWkUgfHwgYkNvdW50IC0gbWF4U2FtZSA8IEVRVUFMU0laRSkgcmV0dXJuOworCisgICAgICAgIC8vIG5vdyBzZWUgaWYgdGhlIGxhc3QgZmV3IGEncyBvY2N1ciBhbnl3aGVyZSBpbiB0aGUgYidzLCBvciB2aWNlIHZlcnNhCisgICAgICAgIGludCBtYXRjaCA9IGZpbmQgKGEsIGFDb3VudC1FUVVBTFNJWkUsIGFDb3VudCwgYiwgbWF4U2FtZSwgYkNvdW50KTsKKyAgICAgICAgaWYgKG1hdGNoICE9IC0xKSB7CisgICAgICAgICAgICBhVG9wID0gYUNvdW50LUVRVUFMU0laRTsKKyAgICAgICAgICAgIGJUb3AgPSBtYXRjaDsKKyAgICAgICAgICAgIG5leHQgPSBhW2FUb3BdOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1hdGNoID0gZmluZCAoYiwgYkNvdW50LUVRVUFMU0laRSwgYkNvdW50LCBhLCBtYXhTYW1lLCBhQ291bnQpOworICAgICAgICBpZiAobWF0Y2ggIT0gLTEpIHsKKyAgICAgICAgICAgIGJUb3AgPSBiQ291bnQtRVFVQUxTSVpFOworICAgICAgICAgICAgYVRvcCA9IG1hdGNoOworICAgICAgICAgICAgbmV4dCA9IGJbYlRvcF07CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFDb3VudCA+PSBTVEFDS1NJWkUgfHwgYkNvdW50ID49IFNUQUNLU0laRSkgeworICAgICAgICAgICAgLy8gZmx1c2ggc29tZSBvZiB0aGVtCisgICAgICAgICAgICBhQ291bnQgPSAoYUNvdW50ICsgbWF4U2FtZSkgLyAyOworICAgICAgICAgICAgYkNvdW50ID0gKGJDb3VudCArIG1heFNhbWUpIC8gMjsKKyAgICAgICAgICAgIG5leHQgPSAiIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiBDb252ZW5pZW50IHV0aWxpdHkKKyAgICAgKiBmaW5kcyBhIHNlZ21lbnQgb2YgdGhlIGZpcnN0IGFycmF5IGluIHRoZSBzZWNvbmQgYXJyYXkuCisgICAgICogQHJldHVybiAtMSBpZiBub3QgZm91bmQsIG90aGVyd2lzZSBzdGFydCBwb3NpdGlvbiBpbiBiCisgICAgICovCisKKyAgICBwdWJsaWMgaW50IGZpbmQgKE9iamVjdFtdIGEsIGludCBhU3RhcnQsIGludCBhRW5kLCBPYmplY3RbXSBiLCBpbnQgYlN0YXJ0LCBpbnQgYkVuZCkgeworICAgICAgICBpbnQgbGVuID0gYUVuZCAtIGFTdGFydDsKKyAgICAgICAgaW50IGJFbmRNaW51cyA9IGJFbmQgLSBsZW47CisgICAgICAgIHRyeUE6CisgICAgICAgIGZvciAoaW50IGkgPSBiU3RhcnQ7IGkgPD0gYkVuZE1pbnVzOyArK2kpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbGVuOyArK2opIHsKKyAgICAgICAgICAgICAgICBpZiAoIWJbaSArIGpdLmVxdWFscyhhW2FTdGFydCArIGpdKSkgY29udGludWUgdHJ5QTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBpOyAvLyB3ZSBoYXZlIGEgbWF0Y2ghCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0gUFJJVkFURVMgPT09PT09PT09PT09PT09PT09PT09PQorCisgICAgcHJpdmF0ZSB2b2lkIGZsdXNoKCkgeworICAgICAgICBpZiAoYVRvcCAhPSAwKSB7CisgICAgICAgICAgICBpbnQgbmV3Q291bnQgPSBhQ291bnQtYVRvcDsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYSwgYVRvcCwgYSwgMCwgbmV3Q291bnQpOworICAgICAgICAgICAgYUNvdW50ID0gbmV3Q291bnQ7CisgICAgICAgICAgICBhTGluZSArPSBhVG9wOworICAgICAgICAgICAgYVRvcCA9IDA7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYlRvcCAhPSAwKSB7CisgICAgICAgICAgICBpbnQgbmV3Q291bnQgPSBiQ291bnQtYlRvcDsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYiwgYlRvcCwgYiwgMCwgbmV3Q291bnQpOworICAgICAgICAgICAgYkNvdW50ID0gbmV3Q291bnQ7CisgICAgICAgICAgICBiTGluZSArPSBiVG9wOworICAgICAgICAgICAgYlRvcCA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBTVEFDS1NJWkU7CisgICAgcHJpdmF0ZSBpbnQgRVFVQUxTSVpFOworCisgICAgcHJpdmF0ZSBPYmplY3QgW10gYTsKKyAgICBwcml2YXRlIE9iamVjdCBbXSBiOworICAgIHByaXZhdGUgT2JqZWN0IGxhc3QgPSAiIjsKKyAgICBwcml2YXRlIE9iamVjdCBuZXh0ID0gIiI7CisgICAgcHJpdmF0ZSBpbnQgYUNvdW50ID0gMDsKKyAgICBwcml2YXRlIGludCBiQ291bnQgPSAwOworICAgIHByaXZhdGUgaW50IGFMaW5lID0gMTsKKyAgICBwcml2YXRlIGludCBiTGluZSA9IDE7CisgICAgcHJpdmF0ZSBpbnQgbWF4U2FtZSA9IDAsIGFUb3AgPSAwLCBiVG9wID0gMDsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGlzcGxheU5hbWVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9EaXNwbGF5TmFtZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzc5MTRiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRGlzcGxheU5hbWVUZXN0LmphdmEKQEAgLTAsMCArMSwzOTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgRGlzcGxheU5hbWVUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIFNIT1dfQUxMID0gZmFsc2U7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBEaXNwbGF5TmFtZVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorICAgICAgICAKKyAgICBpbnRlcmZhY2UgRGlzcGxheU5hbWVHZXR0ZXIgeworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldChVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGNvZGUsIE9iamVjdCBjb250ZXh0KTsKKyAgICB9CisKKyAgICBNYXBbXSBjb2RlVG9OYW1lID0gbmV3IE1hcFsxMF07CisgICAgeworICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGNvZGVUb05hbWUubGVuZ3RoOyArK2spIGNvZGVUb05hbWVba10gPSBuZXcgSGFzaE1hcCgpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W10gem9uZUZvcm1hdHMgPSB7bmV3IEludGVnZXIoMCksIG5ldyBJbnRlZ2VyKDEpLCBuZXcgSW50ZWdlcigyKSwKKyAgICAgICAgbmV3IEludGVnZXIoMyksIG5ldyBJbnRlZ2VyKDQpLCBuZXcgSW50ZWdlcig1KSwgbmV3IEludGVnZXIoNiksIG5ldyBJbnRlZ2VyKDcpfTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0W10gY3VycmVuY3lGb3JtYXRzID0ge25ldyBJbnRlZ2VyKEN1cnJlbmN5LlNZTUJPTF9OQU1FKSwgbmV3IEludGVnZXIoQ3VycmVuY3kuTE9OR19OQU1FKX07CisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdIE5PX0NPTlRFWFQgPSB7bnVsbH07CisgICAgCisgICAgc3RhdGljIGZpbmFsIERhdGUgSkFOMSA9IG5ldyBEYXRlKDIwMDQtMTkwMCwwLDEpOworICAgIHN0YXRpYyBmaW5hbCBEYXRlIEpVTFkxID0gbmV3IERhdGUoMjAwNC0xOTAwLDYsMSk7CisKKyAgICBTdHJpbmdbXSBjb3VudHJpZXMgPSBhZGRVbmtub3duKFVMb2NhbGUuZ2V0SVNPQ291bnRyaWVzKCksMik7CisgICAgU3RyaW5nW10gbGFuZ3VhZ2VzID0gYWRkVW5rbm93bihVTG9jYWxlLmdldElTT0xhbmd1YWdlcygpLDIpOworICAgIFN0cmluZ1tdIHpvbmVzID0gYWRkVW5rbm93bihnZXRSZWFsWm9uZUlEcygpLDUpOworICAgIFN0cmluZ1tdIHNjcmlwdHMgPSBhZGRVbmtub3duKGdldENvZGVzKG5ldyBVTG9jYWxlKCJlbiIsIlVTIiwiIiksICJTY3JpcHRzIiksNCk7CisgICAgLy8gVE9ETyBmaXggb25jZSB0aGVyZSBpcyBhIHdheSB0byBnZXQgYSBsaXN0IG9mIGFsbCBzY3JpcHQgY29kZXMKKyAgICBTdHJpbmdbXSBjdXJyZW5jaWVzID0gYWRkVW5rbm93bihnZXRDb2RlcyhuZXcgVUxvY2FsZSgiZW4iLCIiLCIiKSwgIkN1cnJlbmNpZXMiKSwzKTsKKyAgICAvLyBUT0RPIGZpeCBvbmNlIHRoZXJlIGlzIGEgd2F5IHRvIGdldCBhIGxpc3Qgb2YgYWxsIGN1cnJlbmN5IGNvZGVzCisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9jYWxlcygpIHsKKyAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBjaGVja0xvY2FsZShsb2NhbGVzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ1tdIGdldFJlYWxab25lSURzKCkgeworICAgICAgICBTZXQgdGVtcCA9IG5ldyBUcmVlU2V0KEFycmF5cy5hc0xpc3QoVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKCkpKTsKKyAgICAgICAgdGVtcC5yZW1vdmVBbGwoZ2V0QWxpYXNNYXAoKS5rZXlTZXQoKSk7CisgICAgICAgIHJldHVybiAoU3RyaW5nW10pdGVtcC50b0FycmF5KG5ldyBTdHJpbmdbdGVtcC5zaXplKCldKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RW5nbGlzaCgpIHsKKyAgICAgICAgY2hlY2tMb2NhbGUoVUxvY2FsZS5FTkdMSVNIKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RnJlbmNoKCkgeworICAgICAgICBjaGVja0xvY2FsZShVTG9jYWxlLkZSRU5DSCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrTG9jYWxlKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIGxvZ2xuKCJDaGVja2luZyAiICsgbG9jYWxlKTsKKyAgICAgICAgY2hlY2soIkxhbmd1YWdlIiwgbG9jYWxlLCBsYW5ndWFnZXMsIG51bGwsIG5ldyBEaXNwbGF5TmFtZUdldHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgY29kZSwgT2JqZWN0IGNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVUxvY2FsZS5nZXREaXNwbGF5TGFuZ3VhZ2UoY29kZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGNoZWNrKCJTY3JpcHQiLCBsb2NhbGUsIHNjcmlwdHMsIG51bGwsIG5ldyBEaXNwbGF5TmFtZUdldHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgY29kZSwgT2JqZWN0IGNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICAvLyBUT0RPIFRoaXMgaXMga2luZGEgYSBoYWNrOyBvdWdodCB0byBiZSBkaXJlY3Qgd2F5LgorICAgICAgICAgICAgICAgIHJldHVybiBVTG9jYWxlLmdldERpc3BsYXlTY3JpcHQoImVuXyIrY29kZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGNoZWNrKCJDb3VudHJ5IiwgbG9jYWxlLCBjb3VudHJpZXMsIG51bGwsIG5ldyBEaXNwbGF5TmFtZUdldHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgY29kZSwgT2JqZWN0IGNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICAvLyBUT0RPIFRoaXMgaXMga2luZGEgYSBoYWNrOyBvdWdodCB0byBiZSBkaXJlY3Qgd2F5LgorICAgICAgICAgICAgICAgIHJldHVybiBVTG9jYWxlLmdldERpc3BsYXlDb3VudHJ5KCJlbl8iK2NvZGUsIGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBjaGVjaygiQ3VycmVuY2llcyIsIGxvY2FsZSwgY3VycmVuY2llcywgY3VycmVuY3lGb3JtYXRzLCBuZXcgRGlzcGxheU5hbWVHZXR0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldChVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGNvZGUsIE9iamVjdCBjb250ZXh0KSB7CisgICAgICAgICAgICAgICAgQ3VycmVuY3kgcyA9IEN1cnJlbmN5LmdldEluc3RhbmNlKGNvZGUpOworICAgICAgICAgICAgICAgIHJldHVybiBzLmdldE5hbWUobG9jYWxlLCAoKEludGVnZXIpY29udGV4dCkuaW50VmFsdWUoKSwgbmV3IGJvb2xlYW5bMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgLy8gY29tbWVudCB0aGlzIG91dCwgYmVjYXVzZSB0aGUgem9uZSBzdHJpbmcgaW5mb3JtYXRpb24gaXMgbG9zdAorICAgICAgICAvLyB3ZSdkIGhhdmUgdG8gYWNjZXNzIHRoZSByZXNvdXJjZXMgZGlyZWN0bHkgdG8gdGVzdCB0aGVtCisKKyAgICAgICAgY2hlY2soIlpvbmVzIiwgbG9jYWxlLCB6b25lcywgem9uZUZvcm1hdHMsIG5ldyBEaXNwbGF5TmFtZUdldHRlcigpIHsKKyAgICAgICAgICAgIC8vIFRPRE8gcmVwbGFjZSBvbmNlIHdlIGhhdmUgcmVhbCBBUEkKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgY29kZSwgT2JqZWN0IGNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0Wm9uZVN0cmluZyhsb2NhbGUsIGNvZGUsICgoSW50ZWdlciljb250ZXh0KS5pbnRWYWx1ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICB9CisgICAgCisgICAgTWFwIHpvbmVEYXRhID0gbmV3IEhhc2hNYXAoKTsKKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBnZXRab25lU3RyaW5nKFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgb2xzb25JRCwgaW50IGl0ZW0pIHsKKyAgICAgICAgTWFwIGRhdGEgPSAoTWFwKXpvbmVEYXRhLmdldChsb2NhbGUpOworICAgICAgICBpZiAoZGF0YSA9PSBudWxsKSB7CisgICAgICAgICAgICBkYXRhID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIGlmIChTSE9XX0FMTCkgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICBpZiAoU0hPV19BTEwpIFN5c3RlbS5vdXQucHJpbnRsbigiem9uZXMgZm9yICIgKyBsb2NhbGUpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShsb2NhbGUpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdGFibGUgPSBidW5kbGUuZ2V0V2l0aEZhbGxiYWNrKCJ6b25lU3RyaW5ncyIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWJsZS5nZXRTaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN0cmluZ1NldCA9IHRhYmxlLmdldChpKTsKKyAgICAgICAgICAgICAgICAvL0lDVVJlc291cmNlQnVuZGxlIHN0cmluZ1NldCA9IHRhYmxlLmdldFdpdGhGYWxsYmFjayhTdHJpbmcudmFsdWVPZihpKSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IHN0cmluZ1NldC5nZXRTdHJpbmcoMCk7CisgICAgICAgICAgICAgICAgaWYgKFNIT1dfQUxMKSBTeXN0ZW0ub3V0LnByaW50bG4oImtleTogIiArIGtleSk7CisgICAgICAgICAgICAgICAgQXJyYXlMaXN0IGxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPCBzdHJpbmdTZXQuZ2V0U2l6ZSgpOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGVudHJ5ID0gc3RyaW5nU2V0LmdldFN0cmluZyhqKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFNIT1dfQUxMKSBTeXN0ZW0ub3V0LnByaW50bG4oIiAgZW50cnk6ICIgKyBlbnRyeSk7CisgICAgICAgICAgICAgICAgICAgIGxpc3QuYWRkKGVudHJ5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGF0YS5wdXQoa2V5LCBsaXN0LnRvQXJyYXkobmV3IFN0cmluZ1tsaXN0LnNpemUoKV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHpvbmVEYXRhLnB1dChsb2NhbGUsIGRhdGEpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ1tdIHN0cmluZ3MgPSAoU3RyaW5nW10pIGRhdGEuZ2V0KG9sc29uSUQpOworICAgICAgICBpZiAoc3RyaW5ncyA9PSBudWxsIHx8IGl0ZW0gPj0gc3RyaW5ncy5sZW5ndGgpIHJldHVybiBvbHNvbklEOworICAgICAgICByZXR1cm4gc3RyaW5nc1tpdGVtXTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFN0cmluZ1tdW10gem9uZXNBbGlhc2VzID0geworICAgICAgICB7IkFtZXJpY2EvQXRrYSIsICJBbWVyaWNhL0F0a2EifSwKKyAgICAgICAgeyJBbWVyaWNhL0Vuc2VuYWRhIiwgIkFtZXJpY2EvRW5zZW5hZGEifSwKKyAgICAgICAgeyJBbWVyaWNhL0ZvcnRfV2F5bmUiLCAiQW1lcmljYS9Gb3J0X1dheW5lIn0sCisgICAgICAgIHsiQW1lcmljYS9JbmRpYW5hL0luZGlhbmFwb2xpcyIsICJBbWVyaWNhL0luZGlhbmEvSW5kaWFuYXBvbGlzIn0sCisgICAgICAgIHsiQW1lcmljYS9LZW50dWNreS9Mb3Vpc3ZpbGxlIiwgIkFtZXJpY2EvS2VudHVja3kvTG91aXN2aWxsZSJ9LAorICAgICAgICB7IkFtZXJpY2EvS25veF9JTiIsICJBbWVyaWNhL0tub3hfSU4ifSwKKyAgICAgICAgeyJBbWVyaWNhL1BvcnRvX0FjcmUiLCAiQW1lcmljYS9Qb3J0b19BY3JlIn0sCisgICAgICAgIHsiQW1lcmljYS9Sb3NhcmlvIiwgIkFtZXJpY2EvUm9zYXJpbyJ9LAorICAgICAgICB7IkFtZXJpY2EvU2hpcHJvY2siLCAiQW1lcmljYS9TaGlwcm9jayJ9LAorICAgICAgICB7IkFtZXJpY2EvVmlyZ2luIiwgIkFtZXJpY2EvVmlyZ2luIn0sCisgICAgICAgIHsiQW50YXJjdGljYS9Tb3V0aF9Qb2xlIiwgIkFudGFyY3RpY2EvU291dGhfUG9sZSJ9LAorICAgICAgICB7IkFyY3RpYy9Mb25neWVhcmJ5ZW4iLCAiQXJjdGljL0xvbmd5ZWFyYnllbiJ9LAorICAgICAgICB7IkFzaWEvQXNoa2hhYmFkIiwgIkFzaWEvQXNoa2hhYmFkIn0sCisgICAgICAgIHsiQXNpYS9DaHVuZ2tpbmciLCAiQXNpYS9DaHVuZ2tpbmcifSwKKyAgICAgICAgeyJBc2lhL0RhY2NhIiwgIkFzaWEvRGFjY2EifSwKKyAgICAgICAgeyJBc2lhL0lzdGFuYnVsIiwgIkFzaWEvSXN0YW5idWwifSwKKyAgICAgICAgeyJBc2lhL01hY2FvIiwgIkFzaWEvTWFjYW8ifSwKKyAgICAgICAgeyJBc2lhL1RlbF9Bdml2IiwgIkFzaWEvVGVsX0F2aXYifSwKKyAgICAgICAgeyJBc2lhL1RoaW1idSIsICJBc2lhL1RoaW1idSJ9LAorICAgICAgICB7IkFzaWEvVWp1bmdfUGFuZGFuZyIsICJBc2lhL1VqdW5nX1BhbmRhbmcifSwKKyAgICAgICAgeyJBc2lhL1VsYW5fQmF0b3IiLCAiQXNpYS9VbGFuX0JhdG9yIn0sCisgICAgICAgIHsiQXVzdHJhbGlhL0FDVCIsICJBdXN0cmFsaWEvQUNUIn0sCisgICAgICAgIHsiQXVzdHJhbGlhL0NhbmJlcnJhIiwgIkF1c3RyYWxpYS9DYW5iZXJyYSJ9LAorICAgICAgICB7IkF1c3RyYWxpYS9MSEkiLCAiQXVzdHJhbGlhL0xISSJ9LAorICAgICAgICB7IkF1c3RyYWxpYS9OU1ciLCAiQXVzdHJhbGlhL05TVyJ9LAorICAgICAgICB7IkF1c3RyYWxpYS9Ob3J0aCIsICJBdXN0cmFsaWEvTm9ydGgifSwKKyAgICAgICAgeyJBdXN0cmFsaWEvUXVlZW5zbGFuZCIsICJBdXN0cmFsaWEvUXVlZW5zbGFuZCJ9LAorICAgICAgICB7IkF1c3RyYWxpYS9Tb3V0aCIsICJBdXN0cmFsaWEvU291dGgifSwKKyAgICAgICAgeyJBdXN0cmFsaWEvVGFzbWFuaWEiLCAiQXVzdHJhbGlhL1Rhc21hbmlhIn0sCisgICAgICAgIHsiQXVzdHJhbGlhL1ZpY3RvcmlhIiwgIkF1c3RyYWxpYS9WaWN0b3JpYSJ9LAorICAgICAgICB7IkF1c3RyYWxpYS9XZXN0IiwgIkF1c3RyYWxpYS9XZXN0In0sCisgICAgICAgIHsiQXVzdHJhbGlhL1lhbmNvd2lubmEiLCAiQXVzdHJhbGlhL1lhbmNvd2lubmEifSwKKyAgICAgICAgeyJCcmF6aWwvQWNyZSIsICJCcmF6aWwvQWNyZSJ9LAorICAgICAgICB7IkJyYXppbC9EZU5vcm9uaGEiLCAiQnJhemlsL0RlTm9yb25oYSJ9LAorICAgICAgICB7IkJyYXppbC9FYXN0IiwgIkJyYXppbC9FYXN0In0sCisgICAgICAgIHsiQnJhemlsL1dlc3QiLCAiQnJhemlsL1dlc3QifSwKKyAgICAgICAgeyJDU1Q2Q0RUIiwgIkNTVDZDRFQifSwKKyAgICAgICAgeyJDYW5hZGEvQXRsYW50aWMiLCAiQ2FuYWRhL0F0bGFudGljIn0sCisgICAgICAgIHsiQ2FuYWRhL0NlbnRyYWwiLCAiQ2FuYWRhL0NlbnRyYWwifSwKKyAgICAgICAgeyJDYW5hZGEvRWFzdC1TYXNrYXRjaGV3YW4iLCAiQ2FuYWRhL0Vhc3QtU2Fza2F0Y2hld2FuIn0sCisgICAgICAgIHsiQ2FuYWRhL0Vhc3Rlcm4iLCAiQ2FuYWRhL0Vhc3Rlcm4ifSwKKyAgICAgICAgeyJDYW5hZGEvTW91bnRhaW4iLCAiQ2FuYWRhL01vdW50YWluIn0sCisgICAgICAgIHsiQ2FuYWRhL05ld2ZvdW5kbGFuZCIsICJDYW5hZGEvTmV3Zm91bmRsYW5kIn0sCisgICAgICAgIHsiQ2FuYWRhL1BhY2lmaWMiLCAiQ2FuYWRhL1BhY2lmaWMifSwKKyAgICAgICAgeyJDYW5hZGEvU2Fza2F0Y2hld2FuIiwgIkNhbmFkYS9TYXNrYXRjaGV3YW4ifSwKKyAgICAgICAgeyJDYW5hZGEvWXVrb24iLCAiQ2FuYWRhL1l1a29uIn0sCisgICAgICAgIHsiQ2hpbGUvQ29udGluZW50YWwiLCAiQ2hpbGUvQ29udGluZW50YWwifSwKKyAgICAgICAgeyJDaGlsZS9FYXN0ZXJJc2xhbmQiLCAiQ2hpbGUvRWFzdGVySXNsYW5kIn0sCisgICAgICAgIHsiQ3ViYSIsICJDdWJhIn0sCisgICAgICAgIHsiRVNUIiwgIkVTVCJ9LAorICAgICAgICB7IkVTVDVFRFQiLCAiRVNUNUVEVCJ9LAorICAgICAgICB7IkVneXB0IiwgIkVneXB0In0sCisgICAgICAgIHsiRWlyZSIsICJFaXJlIn0sCisgICAgICAgIHsiRXRjL0dNVCswIiwgIkV0Yy9HTVQrMCJ9LAorICAgICAgICB7IkV0Yy9HTVQtMCIsICJFdGMvR01ULTAifSwKKyAgICAgICAgeyJFdGMvR01UMCIsICJFdGMvR01UMCJ9LAorICAgICAgICB7IkV0Yy9HcmVlbndpY2giLCAiRXRjL0dyZWVud2ljaCJ9LAorICAgICAgICB7IkV0Yy9Vbml2ZXJzYWwiLCAiRXRjL1VuaXZlcnNhbCJ9LAorICAgICAgICB7IkV0Yy9adWx1IiwgIkV0Yy9adWx1In0sCisgICAgICAgIHsiRXVyb3BlL05pY29zaWEiLCAiRXVyb3BlL05pY29zaWEifSwKKyAgICAgICAgeyJFdXJvcGUvVGlyYXNwb2wiLCAiRXVyb3BlL1RpcmFzcG9sIn0sCisgICAgICAgIHsiR0IiLCAiR0IifSwKKyAgICAgICAgeyJHQi1FaXJlIiwgIkdCLUVpcmUifSwKKyAgICAgICAgeyJHTVQiLCAiR01UIn0sCisgICAgICAgIHsiR01UKzAiLCAiR01UKzAifSwKKyAgICAgICAgeyJHTVQtMCIsICJHTVQtMCJ9LAorICAgICAgICB7IkdNVDAiLCAiR01UMCJ9LAorICAgICAgICB7IkdyZWVud2ljaCIsICJHcmVlbndpY2gifSwKKyAgICAgICAgeyJIU1QiLCAiSFNUIn0sCisgICAgICAgIHsiSG9uZ2tvbmciLCAiSG9uZ2tvbmcifSwKKyAgICAgICAgeyJJY2VsYW5kIiwgIkljZWxhbmQifSwKKyAgICAgICAgeyJJcmFuIiwgIklyYW4ifSwKKyAgICAgICAgeyJJc3JhZWwiLCAiSXNyYWVsIn0sCisgICAgICAgIHsiSmFtYWljYSIsICJKYW1haWNhIn0sCisgICAgICAgIHsiSmFwYW4iLCAiSmFwYW4ifSwKKyAgICAgICAgeyJLd2FqYWxlaW4iLCAiS3dhamFsZWluIn0sCisgICAgICAgIHsiTGlieWEiLCAiTGlieWEifSwKKyAgICAgICAgeyJNU1QiLCAiTVNUIn0sCisgICAgICAgIHsiTVNUN01EVCIsICJNU1Q3TURUIn0sCisgICAgICAgIHsiTWV4aWNvL0JhamFOb3J0ZSIsICJNZXhpY28vQmFqYU5vcnRlIn0sCisgICAgICAgIHsiTWV4aWNvL0JhamFTdXIiLCAiTWV4aWNvL0JhamFTdXIifSwKKyAgICAgICAgeyJNZXhpY28vR2VuZXJhbCIsICJNZXhpY28vR2VuZXJhbCJ9LAorICAgICAgICB7Ik1pZGVhc3QvUml5YWRoODciLCAiTWlkZWFzdC9SaXlhZGg4NyJ9LAorICAgICAgICB7Ik1pZGVhc3QvUml5YWRoODgiLCAiTWlkZWFzdC9SaXlhZGg4OCJ9LAorICAgICAgICB7Ik1pZGVhc3QvUml5YWRoODkiLCAiTWlkZWFzdC9SaXlhZGg4OSJ9LAorICAgICAgICB7Ik5aIiwgIk5aIn0sCisgICAgICAgIHsiTlotQ0hBVCIsICJOWi1DSEFUIn0sCisgICAgICAgIHsiTmF2YWpvIiwgIk5hdmFqbyJ9LAorICAgICAgICB7IlBSQyIsICJQUkMifSwKKyAgICAgICAgeyJQU1Q4UERUIiwgIlBTVDhQRFQifSwKKyAgICAgICAgeyJQYWNpZmljL1NhbW9hIiwgIlBhY2lmaWMvU2Ftb2EifSwKKyAgICAgICAgeyJQb2xhbmQiLCAiUG9sYW5kIn0sCisgICAgICAgIHsiUG9ydHVnYWwiLCAiUG9ydHVnYWwifSwKKyAgICAgICAgeyJST0MiLCAiUk9DIn0sCisgICAgICAgIHsiUk9LIiwgIlJPSyJ9LAorICAgICAgICB7IlNpbmdhcG9yZSIsICJTaW5nYXBvcmUifSwKKyAgICAgICAgeyJTeXN0ZW1WL0FTVDQiLCAiU3lzdGVtVi9BU1Q0In0sCisgICAgICAgIHsiU3lzdGVtVi9BU1Q0QURUIiwgIlN5c3RlbVYvQVNUNEFEVCJ9LAorICAgICAgICB7IlN5c3RlbVYvQ1NUNiIsICJTeXN0ZW1WL0NTVDYifSwKKyAgICAgICAgeyJTeXN0ZW1WL0NTVDZDRFQiLCAiU3lzdGVtVi9DU1Q2Q0RUIn0sCisgICAgICAgIHsiU3lzdGVtVi9FU1Q1IiwgIlN5c3RlbVYvRVNUNSJ9LAorICAgICAgICB7IlN5c3RlbVYvRVNUNUVEVCIsICJTeXN0ZW1WL0VTVDVFRFQifSwKKyAgICAgICAgeyJTeXN0ZW1WL0hTVDEwIiwgIlN5c3RlbVYvSFNUMTAifSwKKyAgICAgICAgeyJTeXN0ZW1WL01TVDciLCAiU3lzdGVtVi9NU1Q3In0sCisgICAgICAgIHsiU3lzdGVtVi9NU1Q3TURUIiwgIlN5c3RlbVYvTVNUN01EVCJ9LAorICAgICAgICB7IlN5c3RlbVYvUFNUOCIsICJTeXN0ZW1WL1BTVDgifSwKKyAgICAgICAgeyJTeXN0ZW1WL1BTVDhQRFQiLCAiU3lzdGVtVi9QU1Q4UERUIn0sCisgICAgICAgIHsiU3lzdGVtVi9ZU1Q5IiwgIlN5c3RlbVYvWVNUOSJ9LAorICAgICAgICB7IlN5c3RlbVYvWVNUOVlEVCIsICJTeXN0ZW1WL1lTVDlZRFQifSwKKyAgICAgICAgeyJUdXJrZXkiLCAiVHVya2V5In0sCisgICAgICAgIHsiVUNUIiwgIlVDVCJ9LAorICAgICAgICB7IlVTL0FsYXNrYSIsICJVUy9BbGFza2EifSwKKyAgICAgICAgeyJVUy9BbGV1dGlhbiIsICJVUy9BbGV1dGlhbiJ9LAorICAgICAgICB7IlVTL0FyaXpvbmEiLCAiVVMvQXJpem9uYSJ9LAorICAgICAgICB7IlVTL0NlbnRyYWwiLCAiVVMvQ2VudHJhbCJ9LAorICAgICAgICB7IlVTL0Vhc3QtSW5kaWFuYSIsICJVUy9FYXN0LUluZGlhbmEifSwKKyAgICAgICAgeyJVUy9FYXN0ZXJuIiwgIlVTL0Vhc3Rlcm4ifSwKKyAgICAgICAgeyJVUy9IYXdhaWkiLCAiVVMvSGF3YWlpIn0sCisgICAgICAgIHsiVVMvSW5kaWFuYS1TdGFya2UiLCAiVVMvSW5kaWFuYS1TdGFya2UifSwKKyAgICAgICAgeyJVUy9NaWNoaWdhbiIsICJVUy9NaWNoaWdhbiJ9LAorICAgICAgICB7IlVTL01vdW50YWluIiwgIlVTL01vdW50YWluIn0sCisgICAgICAgIHsiVVMvUGFjaWZpYyIsICJVUy9QYWNpZmljIn0sCisgICAgICAgIHsiVVMvUGFjaWZpYy1OZXciLCAiVVMvUGFjaWZpYy1OZXcifSwKKyAgICAgICAgeyJVUy9TYW1vYSIsICJVUy9TYW1vYSJ9LAorICAgICAgICB7IlVUQyIsICJVVEMifSwKKyAgICAgICAgeyJVbml2ZXJzYWwiLCAiVW5pdmVyc2FsIn0sCisgICAgICAgIHsiVy1TVSIsICJXLVNVIn0sCisgICAgICAgIHsiWnVsdSIsICJadWx1In0sCisgICAgICAgIHsiQUNUIiwgIkFDVCJ9LAorICAgICAgICB7IkFFVCIsICJBRVQifSwKKyAgICAgICAgeyJBR1QiLCAiQUdUIn0sCisgICAgICAgIHsiQVJUIiwgIkFSVCJ9LAorICAgICAgICB7IkFTVCIsICJBU1QifSwKKyAgICAgICAgeyJCRVQiLCAiQkVUIn0sCisgICAgICAgIHsiQlNUIiwgIkJTVCJ9LAorICAgICAgICB7IkNBVCIsICJDQVQifSwKKyAgICAgICAgeyJDTlQiLCAiQ05UIn0sCisgICAgICAgIHsiQ1NUIiwgIkNTVCJ9LAorICAgICAgICB7IkNUVCIsICJDVFQifSwKKyAgICAgICAgeyJFQVQiLCAiRUFUIn0sCisgICAgICAgIHsiRUNUIiwgIkVDVCJ9LAorICAgICAgICB7IklFVCIsICJJRVQifSwKKyAgICAgICAgeyJJU1QiLCAiSVNUIn0sCisgICAgICAgIHsiSlNUIiwgIkpTVCJ9LAorICAgICAgICB7Ik1JVCIsICJNSVQifSwKKyAgICAgICAgeyJORVQiLCAiTkVUIn0sCisgICAgICAgIHsiTlNUIiwgIk5TVCJ9LAorICAgICAgICB7IlBMVCIsICJQTFQifSwKKyAgICAgICAgeyJQTlQiLCAiUE5UIn0sCisgICAgICAgIHsiUFJUIiwgIlBSVCJ9LAorICAgICAgICB7IlBTVCIsICJQU1QifSwKKyAgICAgICAgeyJTU1QiLCAiU1NUIn0sCisgICAgICAgIHsiVlNUIiwgIlZTVCJ9LAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBIYWNrIHRvIGdldCBjb2RlIGxpc3QKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gZ2V0Q29kZXMoVUxvY2FsZSBsb2NhbGUsIFN0cmluZyB0YWJsZU5hbWUpIHsKKyAgICAgICAgLy8gVE9ETyByZW1vdmUgVWdseSBIYWNrCisgICAgICAgIC8vIGdldCBzdHVmZgorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRhYmxlID0gYnVuZGxlLmdldFdpdGhGYWxsYmFjayh0YWJsZU5hbWUpOworICAgICAgICAvLyBjb3B5IGludG8gYXJyYXkKKyAgICAgICAgQXJyYXlMaXN0IHN0dWZmID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBmb3IgKEVudW1lcmF0aW9uIGtleXMgPSB0YWJsZS5nZXRLZXlzKCk7IGtleXMuaGFzTW9yZUVsZW1lbnRzKCk7KSB7CisgICAgICAgICAgICBzdHVmZi5hZGQoa2V5cy5uZXh0RWxlbWVudCgpKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdbXSByZXN1bHQgPSBuZXcgU3RyaW5nW3N0dWZmLnNpemUoKV07CisgICAgICAgIHJldHVybiAoU3RyaW5nW10pIHN0dWZmLnRvQXJyYXkocmVzdWx0KTsKKyAgICAgICAgLy9yZXR1cm4gbmV3IFN0cmluZ1tdIHsiTGF0biIsICJDeXJsIn07CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIHR3byB1bmtub3duIHN0cmluZ3MsIGp1c3QgdG8gbWFrZSBzdXJlIHRoZXkgZ2V0IHBhc3NlZCB0aHJvdWdoIHdpdGhvdXQgY29sbGlkaW5nCisgICAgICogQHBhcmFtIHN0cmluZ3MKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdbXSBhZGRVbmtub3duKFN0cmluZ1tdIHN0cmluZ3MsIGludCBsZW4pIHsKKyAgICAgICAgU3RyaW5nW10gcmVzdWx0ID0gbmV3IFN0cmluZ1tzdHJpbmdzLmxlbmd0aCArIDJdOworICAgICAgICByZXN1bHRbMF0gPSAieDF1bmtub3duIi5zdWJzdHJpbmcoMCxsZW4pOworICAgICAgICByZXN1bHRbMV0gPSAieTFua25vd24iLnN1YnN0cmluZygwLGxlbik7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3RyaW5ncywwLHJlc3VsdCwyLHN0cmluZ3MubGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgTWFwIGJvZ3VzWm9uZXMgPSBudWxsOworICAgIAorICAgIHByaXZhdGUgTWFwIGdldEFsaWFzTWFwKCkgeworICAgICAgICBpZiAoYm9ndXNab25lcyA9PSBudWxsKSB7CisgICAgICAgICAgICBib2d1c1pvbmVzID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgem9uZXNBbGlhc2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYm9ndXNab25lcy5wdXQoem9uZXNBbGlhc2VzW2ldWzBdLCB6b25lc0FsaWFzZXNbaV1bMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBib2d1c1pvbmVzOworICAgIH0KKworCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrKFN0cmluZyB0eXBlLCBVTG9jYWxlIGxvY2FsZSwgCisgICAgICBTdHJpbmdbXSBjb2RlcywgT2JqZWN0W10gY29udGV4dExpc3QsIERpc3BsYXlOYW1lR2V0dGVyIGdldHRlcikgeworICAgICAgICBpZiAoY29udGV4dExpc3QgPT0gbnVsbCkgY29udGV4dExpc3QgPSBOT19DT05URVhUOworICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGNvbnRleHRMaXN0Lmxlbmd0aDsgKytrKSBjb2RlVG9OYW1lW2tdLmNsZWFyKCk7CisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgY29kZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIFN0cmluZyBjb2RlID0gY29kZXNbal07CisgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGNvbnRleHRMaXN0Lmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IGNvbnRleHQgPSBjb250ZXh0TGlzdFtrXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGdldHRlci5nZXQobG9jYWxlLCBjb2RlLCBjb250ZXh0KTsKKyAgICAgICAgICAgICAgICBpZiAobmFtZSA9PSBudWxsIHx8IG5hbWUubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJOdWxsIG9yIFplcm8tTGVuZ3RoIERpc3BsYXkgTmFtZVx0IiArIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0KCIgKyAoKGNvbnRleHQgIT0gbnVsbCkgPyBjb250ZXh0IDogIiIpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICI6XHQiICsgbG9jYWxlICsgIiBbIiArIGxvY2FsZS5nZXREaXNwbGF5TmFtZShVTG9jYWxlLkVOR0xJU0gpICsgIl0iCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdCIgKyBjb2RlICsgIiBbIiArIGdldHRlci5nZXQoVUxvY2FsZS5FTkdMSVNILCBjb2RlLCBjb250ZXh0KSArICJdIgorICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIG90aGVyQ29kZSA9IChTdHJpbmcpIGNvZGVUb05hbWVba10uZ2V0KG5hbWUpOworICAgICAgICAgICAgICAgIGlmIChvdGhlckNvZGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJEaXNwbGF5IE5hbWVzIGNvbGxpZGUgZm9yXHQiICsgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0KCIgKyAoKGNvbnRleHQgIT0gbnVsbCkgPyBjb250ZXh0IDogIiIpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICI6XHQiICsgbG9jYWxlICsgIiBbIiArIGxvY2FsZS5nZXREaXNwbGF5TmFtZShVTG9jYWxlLkVOR0xJU0gpICsgIl0iCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdCIgKyBjb2RlICsgIiBbIiArIGdldHRlci5nZXQoVUxvY2FsZS5FTkdMSVNILCBjb2RlLCBjb250ZXh0KSArICJdIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHQmICIgKyBvdGhlckNvZGUgKyAiIFsiICsgZ2V0dGVyLmdldChVTG9jYWxlLkVOR0xJU0gsIG90aGVyQ29kZSwgY29udGV4dCkgKyAiXSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0PT4gIiArIG5hbWUKKyAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjb2RlVG9OYW1lW2tdLnB1dChuYW1lLCBjb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFNIT1dfQUxMKSBsb2dsbigKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgCisgICAgICAgICAgICAgICAgICAgICAgICArICIgKCIgKyAoKGNvbnRleHQgIT0gbnVsbCkgPyBjb250ZXh0IDogIiIpICsgIikiCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdCIgKyBsb2NhbGUgKyAiIFsiICsgbG9jYWxlLmdldERpc3BsYXlOYW1lKFVMb2NhbGUuRU5HTElTSCkgKyAiXSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0IiArIGNvZGUgKyAiWyIgKyBnZXR0ZXIuZ2V0KFVMb2NhbGUuRU5HTElTSCwgY29kZSwgY29udGV4dCkgKyAiXSIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx0PT4gIiArIG5hbWUgCisgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRWxhcHNlZFRpbWVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9FbGFwc2VkVGltZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDZjM2RlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRWxhcHNlZFRpbWVyLmphdmEKQEAgLTAsMCArMSwxMDYgQEAKKy8vCisvLyAgRWxhcHNlZFRpbWVyLmphdmEKKy8vCisvLyAgQ3JlYXRlZCBieSBTdGV2ZW4gUi4gTG9vbWlzIG9uIDExLzExLzIwMDUuCisvLyAgQ29weXJpZ2h0IDIwMDUtMjAwNiBJQk0uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CisKKworLyoqCisgKiBTaW1wbGUgc3RvcHdhdGNoIHRpbWVyLgorICogVXNhZ2U6ICAgeyBFbGFwc2VkVGltZXIgZXQgPSBuZXcgRWxhcHNlZFRpbWVyKCk7IAorICogICAgICAgICAgICBkb19zb21lX3N0dWZmOyAgCisgKiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSXQgdG9vayAiICsgZXQgKyAiIHRvIGRvIHN0dWZmLiIpOyB9CisgKgorICogQWR2YW5jZWQ6ICAgeyBFbGFwc2VkVGltZXIgZXQgPSBuZXcgRWxhcHNlZFRpbWVyKCJUaGluZzIncyB0aW1lOiB7MH0iKTsgIC8vIG1lc3NhZ2Vmb3JtYXQgcGF0dGVybgorICogICAgICAgICAgICBkb190aGluZ18yKCk7ICAKKyAqICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGV0LnRvU3RyaW5nKCkpOyB9CisgKgorICogTW9yZSBhZHZhbmNlZDogIE51bWJlckZvcm1hdCBhbmQvb3IgTWVzc2FnZUZvcm1hdCBjYW4gYmUgcHJvdmlkZWQgaW4gdGhlIGNvbnN0cnVjdG9yCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBFbGFwc2VkVGltZXIgeworCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRvIHByaW50IHRoZSBlbGFzcGVkIHRpbWUgKGluIG1pbGxpc2Vjb25kcykgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZWxhcHNlZFRpbWUobG9uZyBzdGFydCwgbG9uZyBlbmQpIHsKKyAgICAgICAgcmV0dXJuIGRpZmZUaW1lKGdldEZvcm1hdCgpLCBzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBlbGFwc2VkVGltZShsb25nIHN0YXJ0KSB7CisgICAgICAgIHJldHVybiBkaWZmVGltZShnZXRGb3JtYXQoKSwgc3RhcnQsIFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpKTsKKyAgICB9CisgICAgCisgICAgLy8gY2xhc3MKKworICAgIHByaXZhdGUgbG9uZyBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICBwcml2YXRlIE51bWJlckZvcm1hdCBteUR1cmF0aW9uRm9ybWF0ID0gbnVsbDsKKyAgICBwcml2YXRlIE1lc3NhZ2VGb3JtYXQgbXlNc2dGb3JtYXQgPSBudWxsOworCisgICAgcHVibGljIEVsYXBzZWRUaW1lcigpIHsgICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIEVsYXBzZWRUaW1lcihNZXNzYWdlRm9ybWF0IGFNc2dGbXQpIHsKKyAgICAgICAgbXlNc2dGb3JtYXQgPSBhTXNnRm10OworICAgIH0KKworICAgIHB1YmxpYyBFbGFwc2VkVGltZXIoTnVtYmVyRm9ybWF0IGFOdW1GbXQpIHsKKyAgICAgICAgbXlEdXJhdGlvbkZvcm1hdCA9IGFOdW1GbXQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBFbGFwc2VkVGltZXIoTWVzc2FnZUZvcm1hdCBhTXNnRm10LCBOdW1iZXJGb3JtYXQgYU51bUZtdCkgeworICAgICAgICBteU1zZ0Zvcm1hdCA9IGFNc2dGbXQ7CisgICAgICAgIG15RHVyYXRpb25Gb3JtYXQgPSBhTnVtRm10OworICAgIH0KKworICAgIHB1YmxpYyBFbGFwc2VkVGltZXIoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgbXlNc2dGb3JtYXQgPSBuZXcgTWVzc2FnZUZvcm1hdChwYXR0ZXJuKTsKKyAgICB9CisKKyAgICBwdWJsaWMgRWxhcHNlZFRpbWVyKFN0cmluZyBwYXR0ZXJuLCBOdW1iZXJGb3JtYXQgYU51bUZtdCkgeworICAgICAgICBteU1zZ0Zvcm1hdCA9IG5ldyBNZXNzYWdlRm9ybWF0KHBhdHRlcm4pOworICAgICAgICBteUR1cmF0aW9uRm9ybWF0ID0gYU51bUZtdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIGVsYXBzZWQgdGltZSBpbiBzZWNvbmRzIHNpbmNlIG9iamVjdCBjcmVhdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgdG9TdHJpbmcoKSB7IAorICAgICAgICBsb25nIGVuZFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgU3RyaW5nIGR1cmF0aW9uID0gZGlmZlRpbWUobXlEdXJhdGlvbkZvcm1hdCwgc3RhcnRUaW1lLCBlbmRUaW1lKTsKKyAgICAgICAgaWYobXlNc2dGb3JtYXQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGR1cmF0aW9uOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG15TXNnRm9ybWF0LmZvcm1hdChuZXcgT2JqZWN0W10ge2R1cmF0aW9ufSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ0Zvcm1hdCA9IG51bGw7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEZvcm1hdCgpIHsKKyAgICAgICAgaWYoZ0Zvcm1hdCA9PSBudWxsKSB7CisgICAgICAgICAgICBnRm9ybWF0ID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChMb2NhbGUuVVMsCisgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQuRFVSQVRJT04pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBnRm9ybWF0OyAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGRpZmZUaW1lKE51bWJlckZvcm1hdCBmbXQsIGxvbmcgc3RhcnQsIGxvbmcgZW5kKSB7CisgICAgICAgIGlmKGZtdD09bnVsbCkgeworICAgICAgICAgICAgZm10ID0gZ2V0Rm9ybWF0KCk7CisgICAgICAgIH0KKyAgICAgICAgc3luY2hyb25pemVkKGZtdCkgeworICAgICAgICAgICAgbG9uZyBhZ2UgPSBlbmQgLSBzdGFydDsKKyAgICAgICAgICAgIGRvdWJsZSBkaWZmID0gKGRvdWJsZSlhZ2U7CisgICAgICAgICAgICBkaWZmID0gZGlmZi8oZG91YmxlKTEwMDAuMDsgLy8gbWlsbGlzIHBlciBzZWNvbmQKKyAgICAgICAgICAgIHJldHVybiBmbXQuZm9ybWF0KGRpZmYpOworICAgICAgICB9CisgICAgfSAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0VxdWF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0VxdWF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lM2IwMzUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRXF1YXRvci5qYXZhCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK3B1YmxpYyBpbnRlcmZhY2UgRXF1YXRvciB7CisgICAgLyoqCisgICAgICAqIENvbXBhcmF0b3IgZnVuY3Rpb24uIElmIG92ZXJyaWRkZW4sIG11c3QgaGFuZGxlIGNhc2Ugb2YgbnVsbCwKKyAgICAgICogYW5kIGNvbXBhcmUgYW55IHR3byBvYmplY3RzIHRoYXQgY291bGQgYmUgY29tcGFyZWQuCisgICAgICAqIE11c3Qgb2JleSBub3JtYWwgcnVsZXMgb2Ygc3ltbWV0cnk6IGE9YiA9PiBiPWEKKyAgICAgICogYW5kIHRyYW5zaXRpdml0eTogYT1iICYgYj1jID0+IGE9YikKKyAgICAgICogQHBhcmFtIGEKKyAgICAgICogQHBhcmFtIGIKKyAgICAgICogQHJldHVybiB0cnVlIGlmIGEgYW5kIGIgYXJlIGVxdWFsCisgICAgICAqLworICAgICBwdWJsaWMgYm9vbGVhbiBpc0VxdWFsKE9iamVjdCBhLCBPYmplY3QgYik7CisKKyAgICAvKioKKyAgICAgKiBNdXN0IG9iZXkgbm9ybWFsIHJ1bGVzOiBhPWIgPT4gZ2V0SGFzaENvZGUoYSk9Z2V0SGFzaENvZGUoYikKKyAgICAgKiBAcGFyYW0gb2JqZWN0CisgICAgICogQHJldHVybiBhIGhhc2ggY29kZSBmb3IgdGhlIG9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SGFzaENvZGUoT2JqZWN0IG9iamVjdCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRmlsZVV0aWxpdGllcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvRmlsZVV0aWxpdGllcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2Y2Q4YjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9GaWxlVXRpbGl0aWVzLmphdmEKQEAgLTAsMCArMSw3OSBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CisKK3B1YmxpYyBjbGFzcyBGaWxlVXRpbGl0aWVzIHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXBwZW5kRmlsZShTdHJpbmcgZmlsZW5hbWUsIFN0cmluZyBlbmNvZGluZywgUHJpbnRXcml0ZXIgb3V0cHV0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgIAlhcHBlbmRGaWxlKGZpbGVuYW1lLCBlbmNvZGluZywgb3V0cHV0LCBudWxsKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFwcGVuZEZpbGUoU3RyaW5nIGZpbGVuYW1lLCBTdHJpbmcgZW5jb2RpbmcsIFByaW50V3JpdGVyIG91dHB1dCwgU3RyaW5nW10gcmVwbGFjZW1lbnRMaXN0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IEJhZ0Zvcm1hdHRlci5vcGVuUmVhZGVyKCIiLCBmaWxlbmFtZSwgZW5jb2RpbmcpOworICAgICAgICAvKgorICAgICAgICBGaWxlSW5wdXRTdHJlYW0gZmlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlbmFtZSk7CisgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IChlbmNvZGluZyA9PSBVVEY4X1VOSVggfHwgZW5jb2RpbmcgPT0gVVRGOF9XSU5ET1dTKSA/IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaXMsICJVVEY4IikgOiAgbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpcyk7CisgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGlzciwgMzIqMTAyNCk7CisgICAgICAgICovCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBTdHJpbmcgbGluZSA9IGJyLnJlYWRMaW5lKCk7CisgICAgICAgICAgICBpZiAobGluZSA9PSBudWxsKSBicmVhazsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudExpc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgcmVwbGFjZW1lbnRMaXN0Lmxlbmd0aDsgaSArPSAyKSB7CisgICAgICAgICAgICAJCWxpbmUgPSByZXBsYWNlKGxpbmUsIHJlcGxhY2VtZW50TGlzdFtpXSwgcmVwbGFjZW1lbnRMaXN0W2krMV0pOworICAgICAgICAgICAgCX0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKGxpbmUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZXMgYWxsIG9jY3VyYW5jZXMgb2YgcGllY2Ugd2l0aCByZXBsYWNlbWVudCwgYW5kIHJldHVybnMgbmV3IFN0cmluZworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGxhY2UoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHBpZWNlLCBTdHJpbmcgcmVwbGFjZW1lbnQpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsIHx8IHNvdXJjZS5sZW5ndGgoKSA8IHBpZWNlLmxlbmd0aCgpKSByZXR1cm4gc291cmNlOworICAgIAlpbnQgcG9zID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHBvcyA9IHNvdXJjZS5pbmRleE9mKHBpZWNlLCBwb3MpOworICAgICAgICAgICAgaWYgKHBvcyA8IDApIHJldHVybiBzb3VyY2U7CisgICAgICAgICAgICBzb3VyY2UgPSBzb3VyY2Uuc3Vic3RyaW5nKDAscG9zKSArIHJlcGxhY2VtZW50ICsgc291cmNlLnN1YnN0cmluZyhwb3MgKyBwaWVjZS5sZW5ndGgoKSk7CisgICAgICAgICAgICBwb3MgKz0gcmVwbGFjZW1lbnQubGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgcmVwbGFjZShTdHJpbmcgc291cmNlLCBTdHJpbmdbXVtdIHJlcGxhY2VtZW50cykgeworICAgICAgICByZXR1cm4gcmVwbGFjZShzb3VyY2UsIHJlcGxhY2VtZW50cywgcmVwbGFjZW1lbnRzLmxlbmd0aCk7CisgICAgfSAgICAKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UsIFN0cmluZ1tdW10gcmVwbGFjZW1lbnRzLCBpbnQgY291bnQpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBzb3VyY2UgPSByZXBsYWNlKHNvdXJjZSwgcmVwbGFjZW1lbnRzW2ldWzBdLCByZXBsYWNlbWVudHNbaV1bMV0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgfSAgICAKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UsIFN0cmluZ1tdW10gcmVwbGFjZW1lbnRzLCBib29sZWFuIHJldmVyc2UpIHsKKyAgICAgICAgaWYgKCFyZXZlcnNlKSByZXR1cm4gcmVwbGFjZShzb3VyY2UsIHJlcGxhY2VtZW50cyk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVwbGFjZW1lbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBzb3VyY2UgPSByZXBsYWNlKHNvdXJjZSwgcmVwbGFjZW1lbnRzW2ldWzFdLCByZXBsYWNlbWVudHNbaV1bMF0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGFuY2hvcml6ZShTdHJpbmcgc291cmNlKSB7CisgICAgCXJldHVybiBzb3VyY2UudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gpLnJlcGxhY2VBbGwoIlxcUHtMfSIsICJfIik7CisgICAgfQorfQorLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVUJpbmFyeVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVUJpbmFyeVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTBhNmY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVQmluYXJ5VGVzdC5qYXZhCkBAIC0wLDAgKzEsMTE0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VCaW5hcnk7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheUlucHV0U3RyZWFtOworCisvKioKKyogVGVzdGluZyBjbGFzcyBmb3IgVHJpZS4gVGVzdHMgaGVyZSB3aWxsIGJlIHNpbXBsZSwgc2luY2UgYm90aCBDaGFyVHJpZSBhbmQgCisqIEludFRyaWUgYXJlIHZlcnkgc2ltaWxhciBhbmQgYXJlIGhlYXZpbHkgdXNlZCBpbiBvdGhlciBwYXJ0cyBvZiBJQ1U0Si4KKyogQ29kZXMgdXNpbmcgVHJpZXMgYXJlIGV4cGVjdGVkIHRvIGhhdmUgZGV0YWlsZWQgdGVzdHMuCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSByZWxlYXNlIDIuMSBKYW4gMDEgMjAwMgorKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBJQ1VCaW5hcnlUZXN0IGV4dGVuZHMgVGVzdEZtd2sgCit7IAorICAgIC8vIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdG9yCisgICAgKi8KKyAgICBwdWJsaWMgSUNVQmluYXJ5VGVzdCgpCisgICAgeworICAgIH0KKyAgICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ1tdKSAKKyAgICB7CisgICAgICAgIElDVUJpbmFyeVRlc3QgdGVzdCA9IG5ldyBJQ1VCaW5hcnlUZXN0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0ZXN0LnJ1bihhcmcpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGVzdC5lcnJsbigiRXJyb3IgdGVzdGluZyBpY3ViaW5hcnl0ZXN0Iik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdGluZyB0aGUgY29uc3RydWN0b3JzIG9mIHRoZSBUcmllcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RSZWFkSGVhZGVyKCkgCisgICAgeworICAgICAgICBieXRlIGZvcm1hdGlkW10gPSB7MSwgMiwgMywgNH07CisgICAgICAgIGJ5dGUgYXJyYXlbXSA9IHsKKyAgICAgICAgICAgIC8vIGhlYWRlciBzaXplCisgICAgICAgICAgICAwLCAweDE4LCAKKyAgICAgICAgICAgIC8vIG1hZ2ljIG51bWJlcnMKKyAgICAgICAgICAgIChieXRlKTB4ZGEsIDB4MjcsIAorICAgICAgICAgICAgLy8gc2l6ZQorICAgICAgICAgICAgMCwgMCwgCisgICAgICAgICAgICAvLyByZXNlcnZlZCB3b3JkCisgICAgICAgICAgICAwLCAwLCAKKyAgICAgICAgICAgIC8vIGJpZ2VuZGlhbgorICAgICAgICAgICAgMSwgCisgICAgICAgICAgICAvLyBjaGFyc2V0IAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIC8vIGNoYXJzaXplCisgICAgICAgICAgICAyLCAKKyAgICAgICAgICAgIC8vIHJlc2VydmVkIGJ5dGUKKyAgICAgICAgICAgIDAsIAorICAgICAgICAgICAgLy8gZGF0YSBmb3JtYXQgaWQKKyAgICAgICAgICAgIDEsIDIsIDMsIDQsCisgICAgICAgICAgICAvLyBkYXRhVmVyc2lvbgorICAgICAgICAgICAgMSwgMiwgMywgNCwKKyAgICAgICAgICAgIC8vIHVuaWNvZGVWZXJzaW9uCisgICAgICAgICAgICAzLCAyLCAwLCAwCisgICAgICAgIH07CisgICAgICAgIEJ5dGVBcnJheUlucHV0U3RyZWFtIGlucHV0c3RyZWFtID0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGFycmF5KTsKKyAgICAgICAgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZSBhdXRoZW50aWNhdGUgCisgICAgICAgICAgICAgICAgPSBuZXcgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZSgpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhVmVyc2lvbkFjY2VwdGFibGUoYnl0ZSB2ZXJzaW9uW10pCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdID09IDE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9OworICAgICAgICAvLyBjaGVjayBmdWxsIGRhdGEgdmVyc2lvbgorICAgICAgICB0cnkgeworICAgICAgICAgICAgSUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRzdHJlYW0sIGZvcm1hdGlkLCBhdXRoZW50aWNhdGUpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkOiBMZW5pZW50IGF1dGhlbnRpY2F0ZSBvYmplY3Qgc2hvdWxkIHBhc3MgSUNVQmluYXJ5LnJlYWRIZWFkZXIiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBubyByZXN0cmljdGlvbiB0byB0aGUgZGF0YSB2ZXJzaW9uCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnB1dHN0cmVhbS5yZXNldCgpOworICAgICAgICAgICAgSUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRzdHJlYW0sIGZvcm1hdGlkLCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDogTnVsbCBhdXRoZW50aWNhdGUgb2JqZWN0IHNob3VsZCBwYXNzIElDVUJpbmFyeS5yZWFkSGVhZGVyIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gbGVuaWVudCBkYXRhIHZlcnNpb24KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlucHV0c3RyZWFtLnJlc2V0KCk7CisgICAgICAgICAgICBJQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dHN0cmVhbSwgZm9ybWF0aWQsIGF1dGhlbnRpY2F0ZSk7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycmxuKCJGYWlsZWQ6IExlbmllbnQgYXV0aGVudGljYXRlIG9iamVjdCBzaG91bGQgcGFzcyBJQ1VCaW5hcnkucmVhZEhlYWRlciIpOworICAgICAgICB9CisgICAgICAgIC8vIGNoYW5naW5nIHRoZSB2ZXJzaW9uIHRvIGFuIGluY29ycmVjdCBvbmUsIGV4cGVjdGluZyBmYWlsdXJlCisgICAgICAgIGFycmF5WzE2XSA9IDI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnB1dHN0cmVhbS5yZXNldCgpOworICAgICAgICAgICAgSUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRzdHJlYW0sIGZvcm1hdGlkLCBhdXRoZW50aWNhdGUpOworICAgICAgICAgICAgZXJybG4oIkZhaWxlZDogSW52YWxpZCB2ZXJzaW9uIG51bWJlciBzaG91bGQgbm90IHBhc3MgYXV0aGVudGljYXRlIG9iamVjdCIpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogSUNVQmluYXJ5LnJlYWRIZWFkZXIgd2l0aCBpbnZhbGlkIHZlcnNpb24gbnVtYmVyIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VMaXN0UmVzb3VyY2VCdW5kbGVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VMaXN0UmVzb3VyY2VCdW5kbGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE4M2UzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVUxpc3RSZXNvdXJjZUJ1bmRsZVRlc3QuamF2YQpAQCAtMCwwICsxLDM2MCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTGlzdFJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKworcHVibGljIGZpbmFsIGNsYXNzIElDVUxpc3RSZXNvdXJjZUJ1bmRsZVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayAKK3sKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgSUNVTGlzdFJlc291cmNlQnVuZGxlVGVzdCB0ZXN0ID0gbmV3IElDVUxpc3RSZXNvdXJjZUJ1bmRsZVRlc3QoKTsKKyAgICAgICAgdGVzdC5ydW4oYXJncyk7CisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVmZXJlbmNlcygpIHsKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgcmIgPSBJQ1VMb2NhbGVEYXRhLmdldExvY2FsZUVsZW1lbnRzKCJ0aCIpOworICAgICAgICBsb2dsbigiZ290IHJiOiIgKyByYik7CisgICAgCisgICAgICAgIGJ5dGVbXSBiaW5hcnlEYXRhID0gbnVsbDsvLyhieXRlW10pcmIuZ2V0T2JqZWN0KCIlJUNvbGxhdGlvbkJpbiIpOworICAgICAgICBPYmplY3QgY29sRWxlbSA9IHJiLmdldE9iamVjdCgiY29sbGF0aW9ucyIpOworICAgICAgICBpZihjb2xFbGVtIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICBPYmplY3RbXVtdIGNvbEVsZW1BcnIgPSAoT2JqZWN0W11bXSljb2xFbGVtOworICAgICAgICAgICAgaWYoKChTdHJpbmcpY29sRWxlbUFyclswXVswXSkuZXF1YWxzKCIlJUNvbGxhdGlvbkJpbiIpKXsgICAKKyAgICAgICAgICAgICAgIGJpbmFyeURhdGEgPSAoYnl0ZVtdKSBjb2xFbGVtQXJyWzBdWzFdOworICAgICAgICAgICAgfQorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oImdvdCBiaW5hcnlEYXRhOiAiICsgYmluYXJ5RGF0YSArICIgbGVuZ3RoOiAiICsgKGJpbmFyeURhdGEgPT0gbnVsbCA/IDAgOiBiaW5hcnlEYXRhLmxlbmd0aCkpOworICAgICAgICBPYmplY3RbXSBzdHJpbmdBcnJheURhdGEgPSAoT2JqZWN0W10pcmIuZ2V0T2JqZWN0KCJjb2xsYXRpb25zIik7CisgICAgICAgIC8vU3RyaW5nW10gY29sbGF0aW9uRGF0YSA9IG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAvLyAgIChTdHJpbmcpc3RyaW5nQXJyYXlEYXRhWzBdLAorICAgICAgICAgLy8gICAoU3RyaW5nKXN0cmluZ0FycmF5RGF0YVswXQorICAgICAgICAvL307CisgICAgICAgIGxvZ2xuKCJnb3Qgc3RyaW5nRGF0YTogIiArIHN0cmluZ0FycmF5RGF0YSArICIgbGVuZ3RoOiAiICsgc3RyaW5nQXJyYXlEYXRhLmxlbmd0aCk7CisgICAgICAgIGxvZ2xuKCJnb3Qgc3RyaW5nRGF0YUVsZW1lbnQ6ICIgKyBzdHJpbmdBcnJheURhdGFbMF0gKyAiIGxlbmd0aDogIiArIHN0cmluZ0FycmF5RGF0YS5sZW5ndGgpOworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiZ290IHNkZWU6ICIgKyBjb2xsYXRpb25EYXRhWzBdKTsKKyAgICAgICAgLy8gICAgU3lzdGVtLm91dC5wcmludGxuKCJjaGFyIGRhdGEgbGVuZ3RoOiAiICsgc3RyaW5nQXJyYXlEYXRhLmxlbmd0aCgpKTsKKyAgICB9CisgICAKKyAgIFN0cmluZyBzaW1wbGVBbGlhcyAgID0gIk9wZW4iOworCisgICBPYmplY3RbXVtdIHpvbmVUZXN0cyA9ICBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiem9uZUFsaWFzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQU1QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYWNpZmljIFN0YW5kYXJkIFRpbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQU1QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYWNpZmljIERheWxpZ2h0IFRpbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQRFQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMb3MgQW5nZWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiem9uZUFsaWFzMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFtZXJpY2EvRGVudmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb3VudGFpbiBTdGFuZGFyZCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNU1QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vdW50YWluIERheWxpZ2h0IFRpbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1EVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVudmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiem9uZUFsaWFzMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbWVyaWNhL0RlbnZlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgT2JqZWN0W10gem9uZVN0cmluZ3MgPSBuZXcgT2JqZWN0W10geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBTVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQU1QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBhY2lmaWMgRGF5bGlnaHQgVGltZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUERUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMb3MgQW5nZWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbWVyaWNhL0xvc19BbmdlbGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYWNpZmljIFN0YW5kYXJkIFRpbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBTVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFjaWZpYyBEYXlsaWdodCBUaW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQRFQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxvcyBBbmdlbGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICBPYmplY3RbXSB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nID0gIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQU1QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYWNpZmljIFN0YW5kYXJkIFRpbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQRFQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMb3MgQW5nZWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgIE9iamVjdFtdW10gdGVzdEdldFN0cmluZ0J5S2V5QWxpYXNpbmcgPSBuZXcgT2JqZWN0W11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiS2V5QWxpYXMwUFNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUFNUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIktleUFsaWFzMVBhY2lmaWNTdGFuZGFyZFRpbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYWNpZmljIFN0YW5kYXJkIFRpbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiS2V5QWxpYXMyUERUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUERUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIktleUFsaWFzM0xvc0FuZ2VsZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMb3MgQW5nZWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBhcnJheUVxdWFscyhPYmplY3RbXVtdIHMxLCBPYmplY3RbXVtdIHMyKXsKKyAgICAgICAgYm9vbGVhbiBpc0VxdWFsID0gdHJ1ZTsKKyAgICAgICAgaWYoczEubGVuZ3RoICE9IHMyLmxlbmd0aCl7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGk8czEubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgaWYoczFbaV0gaW5zdGFuY2VvZiBPYmplY3RbXVtdICYmCisgICAgICAgICAgICAgICBzMltpXSBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgICAgIGlmKCFhcnJheUVxdWFscygoT2JqZWN0W11bXSlzMVtpXSwoT2JqZWN0W11bXSkgczJbaV0pKXsKKyAgICAgICAgICAgICAgICAgICBpc0VxdWFsID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2UgaWYgKHMxW2ldIGluc3RhbmNlb2YgT2JqZWN0W10gJiYKKyAgICAgICAgICAgICAgICAgICAgICBzMltpXSBpbnN0YW5jZW9mIE9iamVjdFtdKXsKKyAgICAgICAgICAgICAgICBpZighVXRpbGl0eS5hcnJheUVxdWFscyhzMVtpXSxzMltpXSkpeworICAgICAgICAgICAgICAgICAgICBpc0VxdWFsID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9ZWxzZSBpZihzMVtpXSBpbnN0YW5jZW9mIE9iamVjdCAmJiBzMltpXSBpbnN0YW5jZW9mIE9iamVjdCl7CisgICAgICAgICAgICAgICBpZighczFbaV0uZXF1YWxzKHMyW2ldKSl7CisgICAgICAgICAgICAgICAgICAgaXNFcXVhbCA9IGZhbHNlOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgIGlzRXF1YWwgPSBmYWxzZTsKKyAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGlzRXF1YWw7CisgICAgfQorICAgIAorICAgIC8vIAorICAgIHB1YmxpYyB2b2lkIFRlc3RBbGlhc2VzKCl7CisgICAgICAgIFJlc291cmNlQnVuZGxlIHJiID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiY29tLmlibS5pY3UuZGV2LmRhdGEiLCJUZXN0RGF0YUVsZW1lbnRzIiwidGVzdGFsaWFzZXMiKTsKKyAgICAgICAgLy9yYi5nZXRPYmplY3QoIkNvbGxhdGlvbkVsZW1lbnRzIik7CisgICAgICAgIFN0cmluZyBzMSA9IHJiLmdldFN0cmluZygic2ltcGxlYWxpYXMiKTsKKyAgICAgICAgaWYoczEuZXF1YWxzKHNpbXBsZUFsaWFzKSl7CisgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciBzaW1wbGVhbGlhcyIpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciBzaW1wbGVhbGlhcyIpOworICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIE9iamVjdCBvID0gbnVsbDsKKyAgICAgICAgICAgIC8vIHRlc3QgYWxpYXNpbmcgdGhyb3VnaCBhbm90aGVyIGFsaWFzCisgICAgICAgICAgICBzMSA9IHJiLmdldFN0cmluZygicmVmZXJlbmNpbmdhbGlhcyIpOworICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgdWsgPSBJQ1VMb2NhbGVEYXRhLmdldFJlc291cmNlQnVuZGxlKCJjb20uaWJtLmljdS5pbXBsLmRhdGEiLCJMb2NhbGVFbGVtZW50cyIsInVrIik7CisgICAgICAgICAgICBpZih1ayBpbnN0YW5jZW9mIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSl7CisgICAgICAgICAgICAgICAgbyA9ICgoSUNVTGlzdFJlc291cmNlQnVuZGxlKXVrKS5nZXRPYmplY3RXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvc3RhbmRhcmQiKTsKKyAgICAgICAgICAgICAgICBpZihvIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICAgICAgICAgIE9iamVjdFtdW10gdmFsID0gKE9iamVjdFtdW10pIG87CisgICAgICAgICAgICAgICAgICAgIGlmKHMxLmVxdWFscyh2YWxbMV1bMV0pKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIHJlZmVyZW5jaW5nYWxpYXMiKTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgcmVmZXJlbmNpbmdhbGlhcyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBjb2xsYXRpb25zIHJlc291cmNlIG9mIHVrIGJ1bmRsZSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIE9iamVjdCBhbm90aGVyYWxpYXMgPSByYi5nZXRPYmplY3QoImFub3RoZXJhbGlhcyIpOworICAgICAgICAgICAgaWYoYW5vdGhlcmFsaWFzIGluc3RhbmNlb2YgT2JqZWN0W11bXSYmIG8gaW5zdGFuY2VvZiBPYmplY3RbXVtdKXsKKyAgICAgICAgICAgICAgICBpZihhcnJheUVxdWFscygoT2JqZWN0W11bXSlvLCAoT2JqZWN0W11bXSlhbm90aGVyYWxpYXMpKXsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3IgYW5vdGhlcmFsaWFzIik7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciBhbm90aGVyYWxpYXMiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJBbGlhcyBtZWNoYW5pc20gZmFpbGVkIGZvciBhbm90aGVyYWxpYXMgaW4gVGVzdEFsaWFzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvID0gKChJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpdWspLmdldE9iamVjdCgiY29sbGF0aW9ucyIpOworICAgICAgICAgICAgT2JqZWN0IG8xID0gcmIuZ2V0T2JqZWN0KCJjb2xsYXRpb25zIik7CisgICAgICAgICAgICBpZihvMSBpbnN0YW5jZW9mIE9iamVjdFtdW10mJiBvIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICAgICAgaWYoYXJyYXlFcXVhbHMoKE9iamVjdFtdW10pbywgKE9iamVjdFtdW10pbzEpKXsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3IgQ29sbGF0aW9uRWxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIGNvbGxhdGlvbnMiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJBbGlhcyBtZWNoYW5pc20gZmFpbGVkIGZvciBjb2xsYXRpb25zIGluIFRlc3RBbGlhcyIpOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgT2JqZWN0IG8xID0gcmIuZ2V0T2JqZWN0KCJ6b25lVGVzdHMiKTsKKyAgICAgICAgaWYobzEgaW5zdGFuY2VvZiBPYmplY3RbXVtdKXsKKyAgICAgICAgICAgIGlmKGFycmF5RXF1YWxzKHpvbmVUZXN0cywgKE9iamVjdFtdW10pbzEpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciB6b25lVGVzdHMiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB6b25lVGVzdHMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJBbGlhcyBtZWNoYW5pc20gZmFpbGVkIGZvciB6b25lVGVzdCBpbiBUZXN0QWxpYXMiKTsKKyAgICAgICAgfQorICAgICAgICBvMSA9IHJiLmdldE9iamVjdCgiem9uZVN0cmluZ3MiKTsKKyAgICAgICAgaWYobzEgaW5zdGFuY2VvZiBPYmplY3RbXSl7CisgICAgICAgICAgICBpZihVdGlsaXR5LmFycmF5RXF1YWxzKHpvbmVTdHJpbmdzLCAoT2JqZWN0W10pbzEpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciB6b25lU3RyaW5ncyIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIHpvbmVTdHJpbmdzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3Igem9uZVN0cmluZ3MgaW4gVGVzdEFsaWFzIik7CisgICAgICAgIH0KKyAgICAgICAgbzEgPSByYi5nZXRPYmplY3QoInRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmciKTsKKyAgICAgICAgaWYobzEgaW5zdGFuY2VvZiBPYmplY3RbXSl7CisgICAgICAgICAgICBpZihVdGlsaXR5LmFycmF5RXF1YWxzKHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcsIChPYmplY3RbXSlvMSkpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmciKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgdGVzdEdldFN0cmluZ0J5SW5kZXhBbGlhc2luZyBpbiBUZXN0QWxpYXMiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbzEgPSByYi5nZXRPYmplY3QoInRlc3RHZXRTdHJpbmdCeUtleUFsaWFzaW5nIik7CisgICAgICAgIGlmKG8xIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICBpZihhcnJheUVxdWFscyh0ZXN0R2V0U3RyaW5nQnlLZXlBbGlhc2luZywgKE9iamVjdFtdW10pbzEpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciB0ZXN0R2V0U3RyaW5nQnlLZXlBbGlhc2luZyIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIHRlc3RHZXRTdHJpbmdCeUtleUFsaWFzaW5nIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgdGVzdEdldFN0cmluZ0J5S2V5QWxpYXNpbmcgaW4gVGVzdEFsaWFzIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gc2hvdWxkIG5vdCBnZXQgYW4gZXhjZXB0aW9uCisgICAgICAgIHJiID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhIiwiTG9jYWxlRWxlbWVudHMiLCJmcl9CRSIpOworICAgICAgICBPYmplY3QgbyA9IHJiLmdldE9iamVjdCgiU3BlbGxvdXRSdWxlcyIpOworICAgICAgICBpZihvIGluc3RhbmNlb2YgU3RyaW5nKXsKKyAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MiKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgZnJfQkUgU3BlbGxvdXRSdWxlcyIpOworICAgICAgICB9CisgICAgICAgIHJiID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhIiwiTG9jYWxlRWxlbWVudHMiLCJ6aF9UVyIpOworICAgICAgICBvID0gcmIuZ2V0T2JqZWN0KCJjb2xsYXRpb25zIik7CisgICAgICAgIGlmKG8gaW5zdGFuY2VvZiBPYmplY3RbXVtdKXsKKyAgICAgICAgICAgIE9iamVjdFtdW10gYXJyID0gKE9iamVjdFtdW10pbzsKKyAgICAgICAgICAgIGlmKCgoU3RyaW5nKWFyclswXVswXSk9PSAiZGVmYXVsdCIpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJBbGlhcyBtZWNoYW5pc20gZmFpbGVkIGZvciB6aF9UVyBjb2xsYXRpb25zIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvYmplY3QgZm9yIGNvbGxhdGlvbnMiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENpcmN1bGFyQWxpYXNlcygpeworICAgICAgICB0cnl7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSByYiA9IElDVUxvY2FsZURhdGEuZ2V0UmVzb3VyY2VCdW5kbGUoImNvbS5pYm0uaWN1LmRldi5kYXRhIiwiVGVzdERhdGFFbGVtZW50cyIsInRlc3RjaXJjdWxhcmFsaWFzIik7CisgICAgICAgICAgIC8qIE9iamVjdCBvID0qLyByYi5nZXRPYmplY3QoImFhYSIpOworICAgICAgICB9Y2F0Y2goamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGlmKGUudG9TdHJpbmcoKS5pbmRleE9mKCJpcmN1bGFyIik9PS0xKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIEV4Y2VwdGlvbiBmb3IgY2lyY3VsYXIgYWxpYXNlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgRXhjZXB0aW9uIGZvciBjaXJjdWxhciBhbGlhc2VzIik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRPYmplY3RXaXRoRmFsbGJhY2soKXsKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhIiwiTG9jYWxlRWxlbWVudHMiLCJ0ZV9JTiIpOworICAgICAgICBpZihidW5kbGUgaW5zdGFuY2VvZiBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpeworICAgICAgICAgICAgSUNVTGlzdFJlc291cmNlQnVuZGxlIGlscmIgPSAoSUNVTGlzdFJlc291cmNlQnVuZGxlKSBidW5kbGU7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykgaWxyYi5nZXRPYmplY3RXaXRoRmFsbGJhY2soIktleXMvY29sbGF0aW9uIik7CisgICAgICAgICAgICBpZigha2V5LmVxdWFscygiQ09MTEFUSU9OIikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZyb20gZ2V0T2JqZWN0V2l0aEZhbGxiYWNrIG1ldGhvZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyB0eXBlID0gKFN0cmluZykgaWxyYi5nZXRPYmplY3RXaXRoRmFsbGJhY2soIlR5cGVzL2NvbGxhdGlvbi9kaXJlY3QiKTsKKyAgICAgICAgICAgIGlmKCF0eXBlLmVxdWFscygiRElSRUNUIikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvcm0gZ2V0T2JqZWN0V2l0aEZhbGxiYWNrIG1ldGhvZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGJ1bmRsZS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIGJ1bmRsZTEgPSBJQ1VMb2NhbGVEYXRhLmdldFJlc291cmNlQnVuZGxlKCJjb20uaWJtLmljdS5pbXBsLmRhdGEiLCJMb2NhbGVFbGVtZW50cyIsImRlX19QSE9ORUJPT0siKTsKKyAgICAgICAgICAgIGlmKGJ1bmRsZSBpbnN0YW5jZW9mIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSl7CisgICAgICAgICAgICAgICAgSUNVTGlzdFJlc291cmNlQnVuZGxlIGlscmIgPSAoSUNVTGlzdFJlc291cmNlQnVuZGxlKSBidW5kbGUxOworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBpbHJiLmdldE9iamVjdFdpdGhGYWxsYmFjaygiY29sbGF0aW9ucy9jb2xsYXRpb24vZGVmYXVsdCIpOworICAgICAgICAgICAgICAgIGlmKCFrZXkuZXF1YWxzKCJwaG9uZWJvb2siKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZyb20gZ2V0T2JqZWN0V2l0aEZhbGxiYWNrIG1ldGhvZC4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGJ1bmRsZS4iKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBsb2dsbigiZ290IHRoZSBleHBlY3RlZCBleGNlcHRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIAorICAgICAgICBSZXNvdXJjZUJ1bmRsZSBidW5kbGUxID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhIiwiTG9jYWxlRWxlbWVudHMiLCJmcl9GUiIpOworICAgICAgICBpZihidW5kbGUgaW5zdGFuY2VvZiBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpeworICAgICAgICAgICAgSUNVTGlzdFJlc291cmNlQnVuZGxlIGlscmIgPSAoSUNVTGlzdFJlc291cmNlQnVuZGxlKSBidW5kbGUxOworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGlscmIuZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKCJjb2xsYXRpb25zL2RlZmF1bHQiKTsKKyAgICAgICAgICAgIGlmKCFrZXkuZXF1YWxzKCJzdGFuZGFyZCIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmcm9tIGdldE9iamVjdFdpdGhGYWxsYmFjayBtZXRob2QuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGJ1bmRsZS4iKTsKKyAgICAgICAgfSAKKyAgICAgICAgCisgICAgICAgIGJ1bmRsZTEgPSBJQ1VMb2NhbGVEYXRhLmdldFJlc291cmNlQnVuZGxlKCJjb20uaWJtLmljdS5pbXBsLmRhdGEiLCJMb2NhbGVFbGVtZW50cyIsImVzX0VTIik7CisgICAgICAgIGlmKGJ1bmRsZSBpbnN0YW5jZW9mIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSl7CisgICAgICAgICAgICBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgaWxyYiA9IChJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpIGJ1bmRsZTE7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykgaWxyYi5nZXRPYmplY3RXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvZGVmYXVsdCIpOworICAgICAgICAgICAgaWYoIWtleS5lcXVhbHMoInN0YW5kYXJkIikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZyb20gZ2V0T2JqZWN0V2l0aEZhbGxiYWNrIG1ldGhvZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBua2V5ID0gImNvbGxhdGlvbnMvIiArIGtleTsKKyAgICAgICAgICAgIE9iamVjdCBvID0gaWxyYi5nZXRPYmplY3RXaXRoRmFsbGJhY2sobmtleSk7CisgICAgICAgICAgICBpZihvIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICAgICAgaWYoISgoU3RyaW5nKSAoKE9iamVjdFtdW10pbylbMF1bMF0pLmVxdWFscygiJSVDb2xsYXRpb25CaW4iKSl7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb2JqZWN0IGZvciAiKyBua2V5KTsgCisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJHb3QgdGhlIGV4cGVjdGVkIG9iamVjdCBmb3IgIisgbmtleSk7IAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb2JqZWN0IGZvciAiKyBua2V5KTsgCisgICAgICAgICAgICB9CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBidW5kbGUuIik7CisgICAgICAgIH0gICAgICAgIAorICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVByb3BlcnR5RmFjdG9yeS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVUHJvcGVydHlGYWN0b3J5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU3NzI0OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVByb3BlcnR5RmFjdG9yeS5qYXZhCkBAIC0wLDAgKzEsNDE3IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKworLyoqCisgKiBQcm92aWRlcyBhIGdlbmVyYWwgaW50ZXJmYWNlIGZvciBVbmljb2RlIFByb3BlcnRpZXMsIGFuZAorICogZXh0cmFjdGluZyBzZXRzIGJhc2VkIG9uIHRob3NlIHZhbHVlcy4KKyAqIEBhdXRob3IgRGF2aXMKKyAqLworCitwdWJsaWMgY2xhc3MgSUNVUHJvcGVydHlGYWN0b3J5IGV4dGVuZHMgVW5pY29kZVByb3BlcnR5LkZhY3RvcnkgeworICAgICAgICAKKyAgICBzdGF0aWMgY2xhc3MgSUNVUHJvcGVydHkgZXh0ZW5kcyBVbmljb2RlUHJvcGVydHkgeworICAgICAgICAgICAgcHJvdGVjdGVkIGludCBwcm9wRW51bSA9IEludGVnZXIuTUlOX1ZBTFVFOworICAgICAgICAgICAgCisgICAgICAgICAgICBwcm90ZWN0ZWQgSUNVUHJvcGVydHkoU3RyaW5nIHByb3BOYW1lLCBpbnQgcHJvcEVudW0pIHsKKyAgICAgICAgICAgICAgICBzZXROYW1lKHByb3BOYW1lKTsKKyAgICAgICAgICAgICAgICB0aGlzLnByb3BFbnVtID0gcHJvcEVudW07CisgICAgICAgICAgICAgICAgc2V0VHlwZShpbnRlcm5hbEdldFByb3BlcnR5VHlwZShwcm9wRW51bSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBib29sZWFuIHNob3duRXhjZXB0aW9uID0gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgX2dldFZhbHVlKGludCBjb2RlUG9pbnQpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcEVudW0pIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQUdFOiBTdHJpbmcgdGVtcCA9IFVDaGFyYWN0ZXIuZ2V0QWdlKGNvZGVQb2ludCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wLmVxdWFscygiMC4wLjAuMCIpKSByZXR1cm4gInVuYXNzaWduZWQiOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXAuZW5kc1dpdGgoIi4wLjAiKSkgcmV0dXJuIHRlbXAuc3Vic3RyaW5nKDAsdGVtcC5sZW5ndGgoKS00KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZW1wOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CSURJX01JUlJPUklOR19HTFlQSDogcmV0dXJuIFVURjE2LnZhbHVlT2YoVUNoYXJhY3Rlci5nZXRNaXJyb3IoY29kZVBvaW50KSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkNBU0VfRk9MRElORzogcmV0dXJuIFVDaGFyYWN0ZXIuZm9sZENhc2UoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpLHRydWUpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5JU09fQ09NTUVOVDogcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0SVNPQ29tbWVudChjb2RlUG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MT1dFUkNBU0VfTUFQUElORzogcmV0dXJuIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gsVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkFNRTogcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0TmFtZShjb2RlUG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfQ0FTRV9GT0xESU5HOiByZXR1cm4gVVRGMTYudmFsdWVPZihVQ2hhcmFjdGVyLmZvbGRDYXNlKGNvZGVQb2ludCx0cnVlKSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9MT1dFUkNBU0VfTUFQUElORzogcmV0dXJuIFVURjE2LnZhbHVlT2YoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1RJVExFQ0FTRV9NQVBQSU5HOiByZXR1cm4gVVRGMTYudmFsdWVPZihVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGNvZGVQb2ludCkpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfVVBQRVJDQVNFX01BUFBJTkc6IHJldHVybiBVVEYxNi52YWx1ZU9mKFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoY29kZVBvaW50KSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlRJVExFQ0FTRV9NQVBQSU5HOiByZXR1cm4gVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShMb2NhbGUuRU5HTElTSCxVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCksbnVsbCk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVOSUNPREVfMV9OQU1FOiByZXR1cm4gVUNoYXJhY3Rlci5nZXROYW1lMV8wKGNvZGVQb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVQUEVSQ0FTRV9NQVBQSU5HOiByZXR1cm4gVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShMb2NhbGUuRU5HTElTSCxVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpOworICAgICAgICAgICAgICAgICAgICBjYXNlIE5GQzogcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgICAgICAgICBjYXNlIE5GRDogcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIE5GS0M6IHJldHVybiBOb3JtYWxpemVyLm5vcm1hbGl6ZShjb2RlUG9pbnQsIE5vcm1hbGl6ZXIuTkZLQyk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgTkZLRDogcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc05GQzogcmV0dXJuIFN0cmluZy52YWx1ZU9mKE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORkMpLmVxdWFscyhVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc05GRDogcmV0dXJuIFN0cmluZy52YWx1ZU9mKE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORkQpLmVxdWFscyhVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc05GS0M6IHJldHVybiBTdHJpbmcudmFsdWVPZihOb3JtYWxpemVyLm5vcm1hbGl6ZShjb2RlUG9pbnQsIE5vcm1hbGl6ZXIuTkZLQykuZXF1YWxzKFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSkpOworICAgICAgICAgICAgICAgICAgICBjYXNlIGlzTkZLRDogcmV0dXJuIFN0cmluZy52YWx1ZU9mKE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORktEKS5lcXVhbHMoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgaXNMb3dlcmNhc2U6IHJldHVybiBTdHJpbmcudmFsdWVPZihVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExvY2FsZS5FTkdMSVNILFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSkuZXF1YWxzKFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSkpOworICAgICAgICAgICAgICAgICAgICBjYXNlIGlzVXBwZXJjYXNlOiByZXR1cm4gU3RyaW5nLnZhbHVlT2YoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShMb2NhbGUuRU5HTElTSCxVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpLmVxdWFscyhVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc1RpdGxlY2FzZTogcmV0dXJuIFN0cmluZy52YWx1ZU9mKFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoTG9jYWxlLkVOR0xJU0gsVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpLG51bGwpLmVxdWFscyhVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCkpKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBpc0Nhc2Vmb2xkZWQ6IHJldHVybiBTdHJpbmcudmFsdWVPZihVQ2hhcmFjdGVyLmZvbGRDYXNlKFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSx0cnVlKS5lcXVhbHMoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKSk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgaXNDYXNlZDogcmV0dXJuIFN0cmluZy52YWx1ZU9mKFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gsVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKS5lcXVhbHMoVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5JTlRfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVudW1WYWx1ZSA9IC0xOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgZW51bVZhbHVlID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGNvZGVQb2ludCwgcHJvcEVudW0pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudW1WYWx1ZSA+PSAwKSB2YWx1ZSA9IGZpeGVkR2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcEVudW0sZW51bVZhbHVlLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc2hvd25FeGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZhaWw6ICIgKyBnZXROYW1lKCkgKyAiLCAiICsgSW50ZWdlci50b0hleFN0cmluZyhjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93bkV4Y2VwdGlvbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgPyB2YWx1ZSA6IFN0cmluZy52YWx1ZU9mKGVudW1WYWx1ZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5ET1VCTEVfTElNSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgZG91YmxlIG51bSA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShjb2RlUG9pbnQpOworICAgICAgICAgICAgICAgICAgICBpZiAobnVtID09IFVDaGFyYWN0ZXIuTk9fTlVNRVJJQ19WQUxVRSkgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBEb3VibGUudG9TdHJpbmcobnVtKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogRml4IEhBQ0sgLS0gQVBJIGRlZmljaWVudAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBAcGFyYW0gdmFsdWVBbGlhcyBudWxsIGlmIHVudXNlZC4KKyAgICAgICAgICAgICAqIEBwYXJhbSB2YWx1ZUVudW0gLTEgaWYgdW51c2VkCisgICAgICAgICAgICAgKiBAcGFyYW0gbmFtZUNob2ljZQorICAgICAgICAgICAgICogQHJldHVybgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBwcml2YXRlIFN0cmluZyBnZXRGaXhlZFZhbHVlQWxpYXMoU3RyaW5nIHZhbHVlQWxpYXMsIGludCB2YWx1ZUVudW0sIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtID49IFVQcm9wZXJ0eS5TVFJJTkdfU1RBUlQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVDaG9pY2UgIT0gVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORykgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiPHN0cmluZz4iOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcEVudW0gPj0gVVByb3BlcnR5LkRPVUJMRV9TVEFSVCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobmFtZUNob2ljZSAhPSBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKSByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICI8bnVtYmVyPiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh2YWx1ZUFsaWFzICE9IG51bGwgJiYgIXZhbHVlQWxpYXMuZXF1YWxzKCI8aW50ZWdlcj4iKSkgeworICAgICAgICAgICAgICAgICAgICB2YWx1ZUVudW0gPSBmaXhlZEdldFByb3BlcnR5VmFsdWVFbnVtKHByb3BFbnVtLHZhbHVlQWxpYXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoZXNlIGFyZSBkZWZpbmVkIGJhZGx5LCB0aGVyZSBtYXkgYmUgbm8gbm9ybWFsIChsb25nKSBuYW1lLgorICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIAorICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBmaXhlZEdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BFbnVtLCB2YWx1ZUVudW0sIG5hbWVDaG9pY2UpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAvLyBIQUNLIHRyeSBvdGhlciBuYW1lY2hvaWNlCisgICAgICAgICAgICAgICAgaWYgKG5hbWVDaG9pY2UgPT0gVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORykgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBmaXhlZEdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BFbnVtLHZhbHVlRW51bSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuU0hPUlQpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiPGludGVnZXI+IjsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnQgZml4ZWRHZXRQcm9wZXJ0eVZhbHVlRW51bShpbnQgcHJvcEVudW0sIFN0cmluZyB2YWx1ZUFsaWFzKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0ocHJvcEVudW0sIHZhbHVlQWxpYXMpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnRlZ2VyLnBhcnNlSW50KHZhbHVlQWxpYXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHN0YXRpYyBNYXAgZml4U2tlbGV0b24gPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGZpeGVkR2V0UHJvcGVydHlWYWx1ZU5hbWUoaW50IHByb3BFbnVtLCBpbnQgdmFsdWVFbnVtLCBpbnQgbmFtZUNob2ljZSkgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcEVudW0sdmFsdWVFbnVtLG5hbWVDaG9pY2UpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmV3VmFsdWUgPSAoU3RyaW5nKSBmaXhTa2VsZXRvbi5nZXQodmFsdWUpOworICAgICAgICAgICAgICAgICAgICBpZiAobmV3VmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA9PSBVUHJvcGVydHkuSk9JTklOR19HUk9VUCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gbmV3VmFsdWUudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlID0gcmVndWxhcml6ZShuZXdWYWx1ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBmaXhTa2VsZXRvbi5wdXQodmFsdWUsIG5ld1ZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3VmFsdWU7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgTGlzdCBfZ2V0TmFtZUFsaWFzZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgYWxpYXMgPSBTdHJpbmdfRXh0cmFzLmdldChwcm9wRW51bSk7CisgICAgICAgICAgICAgICAgaWYgKGFsaWFzID09IG51bGwpIGFsaWFzID0gQmluYXJ5X0V4dHJhcy5nZXQocHJvcEVudW0pOworICAgICAgICAgICAgICAgIGlmIChhbGlhcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGFkZFVuaXF1ZShhbGlhcywgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhZGRVbmlxdWUoZ2V0Rml4ZWRQcm9wZXJ0eU5hbWUocHJvcEVudW0sIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLlNIT1JUKSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgYWRkVW5pcXVlKGdldEZpeGVkUHJvcGVydHlOYW1lKHByb3BFbnVtLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcHVibGljIFN0cmluZyBnZXRGaXhlZFByb3BlcnR5TmFtZShpbnQgcHJvcE5hbWUsIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlOYW1lKHByb3BFbnVtLCBuYW1lQ2hvaWNlKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHByaXZhdGUgTWFwIGNjY0hhY2sgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgYm9vbGVhbiBuZWVkQ2NjSGFjayA9IHRydWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHB1YmxpYyBMaXN0IF9nZXRBdmFpbGFibGVWYWx1ZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICBpZiAocHJvcEVudW0gPT0gVVByb3BlcnR5LkFHRSkgeworICAgICAgICAgICAgICAgICAgICBhZGRBbGxVbmlxdWUobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJ1bmFzc2lnbmVkIiwiMS4xIiwiMi4wIiwiMi4xIiwiMy4wIiwiMy4xIiwiMy4yIiwiNC4wIn0sCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocHJvcEVudW0gPCBVUHJvcGVydHkuSU5UX0xJTUlUKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChCaW5hcnlfRXh0cmFzLmlzSW5SYW5nZShwcm9wRW51bSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3BFbnVtID0gVVByb3BlcnR5LkJJTkFSWV9TVEFSVDsgLy8gSEFDSworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZShwcm9wRW51bSk7CisgICAgICAgICAgICAgICAgICAgIGludCBlbmQgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWF4VmFsdWUocHJvcEVudW0pOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gc3RhcnQ7IGkgPD0gZW5kOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhbGlhcyA9IGdldEZpeGVkVmFsdWVBbGlhcyhudWxsLCBpLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBhbGlhczIgPSBnZXRGaXhlZFZhbHVlQWxpYXMobnVsbCwgaSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuU0hPUlQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFsaWFzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhcyA9IGFsaWFzMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxpYXMgPT0gbnVsbCAmJiBwcm9wRW51bSA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhcyA9IFN0cmluZy52YWx1ZU9mKGkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZWVkQ2NjSGFjayAmJiBwcm9wRW51bSA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgeyAvLyBIQUNLCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2NjSGFjay5wdXQoYWxpYXMsIFN0cmluZy52YWx1ZU9mKGkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKHByb3BlcnR5QWxpYXMgKyAiXHQiICsgaSArICI6XHQiICsgYWxpYXMpOworICAgICAgICAgICAgICAgICAgICAgICAgYWRkVW5pcXVlKGFsaWFzLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5lZWRDY2NIYWNrID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGFsaWFzID0gZ2V0Rml4ZWRWYWx1ZUFsaWFzKG51bGwsIC0xLFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcpOworICAgICAgICAgICAgICAgICAgICBhZGRVbmlxdWUoYWxpYXMsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBMaXN0IF9nZXRWYWx1ZUFsaWFzZXMoU3RyaW5nIHZhbHVlQWxpYXMsIExpc3QgcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtID09IFVQcm9wZXJ0eS5BR0UpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkVW5pcXVlKHZhbHVlQWxpYXMsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA9PSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykgeworICAgICAgICAgICAgICAgICAgICBhZGRVbmlxdWUoY2NjSGFjay5nZXQodmFsdWVBbGlhcyksIHJlc3VsdCk7IC8vIGFkZCBudW1iZXIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYWRkVW5pcXVlKGdldEZpeGVkVmFsdWVBbGlhcyh2YWx1ZUFsaWFzLCAtMSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuU0hPUlQpLCByZXN1bHQpOworICAgICAgICAgICAgICAgIGFkZFVuaXF1ZShnZXRGaXhlZFZhbHVlQWxpYXModmFsdWVBbGlhcywgLTEsIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcpLCByZXN1bHQpOworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisKKworICAgICAgICAgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAgICAgICAgICogQHNlZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLlVuaWNvZGVQcm9wZXJ0eVNvdXJjZSNnZXRQcm9wZXJ0eVR5cGUoKQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBwcml2YXRlIGludCBpbnRlcm5hbEdldFByb3BlcnR5VHlwZShpbnQgcHJvcEVudW0pIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcEVudW0pIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQUdFOiAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQkxPQ0s6IAorICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TQ1JJUFQ6IAorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5DQVRBTE9HOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5JU09fQ09NTUVOVDoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkFNRToKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuVU5JQ09ERV8xX05BTUU6IAorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5NSVNDOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CSURJX01JUlJPUklOR19HTFlQSDoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQ0FTRV9GT0xESU5HOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MT1dFUkNBU0VfTUFQUElORzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX0NBU0VfRk9MRElORzogCisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9MT1dFUkNBU0VfTUFQUElORzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1RJVExFQ0FTRV9NQVBQSU5HOiAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1VQUEVSQ0FTRV9NQVBQSU5HOgorICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5USVRMRUNBU0VfTUFQUElORzogCisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVQUEVSQ0FTRV9NQVBQSU5HOiAKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVbmljb2RlUHJvcGVydHkuRVhURU5ERURfU1RSSU5HOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocHJvcEVudW0gPCBVUHJvcGVydHkuQklOQVJZX1NUQVJUKSByZXR1cm4gVW5pY29kZVByb3BlcnR5LlVOS05PV047CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LkJJTkFSWV9MSU1JVCkgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5CSU5BUlk7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LklOVF9TVEFSVCkgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5FWFRFTkRFRF9CSU5BUlk7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LklOVF9MSU1JVCkgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5FTlVNRVJBVEVEOworICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5ET1VCTEVfU1RBUlQpIHJldHVybiBVbmljb2RlUHJvcGVydHkuRVhURU5ERURfRU5VTUVSQVRFRDsKKyAgICAgICAgICAgICAgICBpZiAocHJvcEVudW0gPCBVUHJvcGVydHkuRE9VQkxFX0xJTUlUKSByZXR1cm4gVW5pY29kZVByb3BlcnR5Lk5VTUVSSUM7CisgICAgICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgVVByb3BlcnR5LlNUUklOR19TVEFSVCkgcmV0dXJuIFVuaWNvZGVQcm9wZXJ0eS5FWFRFTkRFRF9OVU1FUklDOworICAgICAgICAgICAgICAgIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5TVFJJTkdfTElNSVQpIHJldHVybiBVbmljb2RlUHJvcGVydHkuU1RSSU5HOworICAgICAgICAgICAgICAgIHJldHVybiBVbmljb2RlUHJvcGVydHkuRVhURU5ERURfU1RSSU5HOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICAgICAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWwuVW5pY29kZVByb3BlcnR5I2dldFZlcnNpb24oKQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIF9nZXRWZXJzaW9uKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5JQ1VfVkVSU0lPTi50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyp7CisgICAgICAgICAgICBtYXRjaEl0ZXJhdG9yID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcigKKyAgICAgICAgICAgICAgICBuZXcgVW5pY29kZVNldCgiW15bOkNuOl0tWzpEZWZhdWx0X0lnbm9yYWJsZV9Db2RlX1BvaW50Ol1dIikpOworICAgICAgICB9Ki8KKworCisgICAgICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBPdGhlciBNaXNzaW5nIEZ1bmN0aW9uczoKKyAgICAgICAgICAgIEV4cGFuZHNfT25fTkZDCisgICAgICAgICAgICBFeHBhbmRzX09uX05GRAorICAgICAgICAgICAgRXhwYW5kc19Pbl9ORktDCisgICAgICAgICAgICBFeHBhbmRzX09uX05GS0QKKyAgICAgICAgICAgIENvbXBvc2l0aW9uX0V4Y2x1c2lvbgorICAgICAgICAgICAgRGVjb21wb3NpdGlvbl9NYXBwaW5nCisgICAgICAgICAgICBGQ19ORktDX0Nsb3N1cmUKKyAgICAgICAgICAgIElTT19Db21tZW50CisgICAgICAgICAgICBORkNfUXVpY2tfQ2hlY2sKKyAgICAgICAgICAgIE5GRF9RdWlja19DaGVjaworICAgICAgICAgICAgTkZLQ19RdWlja19DaGVjaworICAgICAgICAgICAgTkZLRF9RdWlja19DaGVjaworICAgICAgICAgICAgU3BlY2lhbF9DYXNlX0NvbmRpdGlvbgorICAgICAgICAgICAgVW5pY29kZV9SYWRpY2FsX1N0cm9rZQorICAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgICBzdGF0aWMgZmluYWwgTmFtZXMgQmluYXJ5X0V4dHJhcyA9IG5ldyBOYW1lcyhVUHJvcGVydHkuQklOQVJZX0xJTUlULAorICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJpc05GQyIsICJpc05GRCIsICJpc05GS0MiLCAiaXNORktEIiwKKyAgICAgICAgICAgICJpc0xvd2VyY2FzZSIsICJpc1VwcGVyY2FzZSIsICJpc1RpdGxlY2FzZSIsICJpc0Nhc2Vmb2xkZWQiLCAiaXNDYXNlZCIsCisgICAgICAgIH0pOworCisgICAgICAgIHN0YXRpYyBmaW5hbCBOYW1lcyBTdHJpbmdfRXh0cmFzID0gbmV3IE5hbWVzKFVQcm9wZXJ0eS5TVFJJTkdfTElNSVQsCisgICAgICAgICAgICBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgInRvTkZDIiwgInRvTkZEIiwgInRvTkZLQyIsICJ0b05LRkQiLAorICAgICAgICB9KTsKKworICAgICAgICBzdGF0aWMgZmluYWwgaW50CisgICAgICAgICAgICBpc05GQyA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQsCisgICAgICAgICAgICBpc05GRCA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrMSwKKyAgICAgICAgICAgIGlzTkZLQyA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrMiwKKyAgICAgICAgICAgIGlzTkZLRCA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrMywKKyAgICAgICAgICAgIGlzTG93ZXJjYXNlID0gVVByb3BlcnR5LkJJTkFSWV9MSU1JVCs0LAorICAgICAgICAgICAgaXNVcHBlcmNhc2UgPSBVUHJvcGVydHkuQklOQVJZX0xJTUlUKzUsCisgICAgICAgICAgICBpc1RpdGxlY2FzZSA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrNiwKKyAgICAgICAgICAgIGlzQ2FzZWZvbGRlZCA9IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQrNywKKyAgICAgICAgICAgIGlzQ2FzZWQgPSBVUHJvcGVydHkuQklOQVJZX0xJTUlUKzgsCisKKyAgICAgICAgICAgIE5GQyAgPSBVUHJvcGVydHkuU1RSSU5HX0xJTUlULAorICAgICAgICAgICAgTkZEICA9IFVQcm9wZXJ0eS5TVFJJTkdfTElNSVQrMSwKKyAgICAgICAgICAgIE5GS0MgPSBVUHJvcGVydHkuU1RSSU5HX0xJTUlUKzIsCisgICAgICAgICAgICBORktEID0gVVByb3BlcnR5LlNUUklOR19MSU1JVCszCisgICAgICAgICAgICA7CisgICAgICAgIAorICAgICAgICBwcml2YXRlIElDVVByb3BlcnR5RmFjdG9yeSgpIHsKKyAgICAgICAgICAgIENvbGxlY3Rpb24gYyA9IGdldEludGVybmFsQXZhaWxhYmxlUHJvcGVydHlBbGlhc2VzKG5ldyBBcnJheUxpc3QoKSk7CisgICAgICAgICAgICBJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBhZGQoZ2V0SW50ZXJuYWxQcm9wZXJ0eSgoU3RyaW5nKWl0Lm5leHQoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHN0YXRpYyBJQ1VQcm9wZXJ0eUZhY3Rvcnkgc2luZ2xldG9uID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIElDVVByb3BlcnR5RmFjdG9yeSBtYWtlKCkgeworICAgICAgICAgICAgaWYgKHNpbmdsZXRvbiAhPSBudWxsKSByZXR1cm4gc2luZ2xldG9uOworICAgICAgICAgICAgc2luZ2xldG9uID0gbmV3IElDVVByb3BlcnR5RmFjdG9yeSgpOworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZXRvbjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIExpc3QgZ2V0SW50ZXJuYWxBdmFpbGFibGVQcm9wZXJ0eUFsaWFzZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgIGludFtdW10gcmFuZ2VzID0geworICAgICAgICAgICAgICAgIHtVUHJvcGVydHkuQklOQVJZX1NUQVJULCAgICBVUHJvcGVydHkuQklOQVJZX0xJTUlUfSwKKyAgICAgICAgICAgICAgICB7VVByb3BlcnR5LklOVF9TVEFSVCwgICAgICAgVVByb3BlcnR5LklOVF9MSU1JVH0sCisgICAgICAgICAgICAgICAge1VQcm9wZXJ0eS5ET1VCTEVfU1RBUlQsICAgIFVQcm9wZXJ0eS5ET1VCTEVfTElNSVR9LAorICAgICAgICAgICAgICAgIHtVUHJvcGVydHkuU1RSSU5HX1NUQVJULCAgICBVUHJvcGVydHkuU1RSSU5HX0xJTUlUfSwKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSByYW5nZXNbaV1bMF07IGogPCByYW5nZXNbaV1bMV07ICsraikgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYWxpYXMgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5TmFtZShqLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgICAgICAgVW5pY29kZVByb3BlcnR5LmFkZFVuaXF1ZShhbGlhcywgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuY29udGFpbnMoYWxpYXMpKSByZXN1bHQuYWRkKGFsaWFzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYWRkQWxsKFN0cmluZ19FeHRyYXMuZ2V0TmFtZXMoKSk7CisgICAgICAgICAgICByZXN1bHQuYWRkQWxsKEJpbmFyeV9FeHRyYXMuZ2V0TmFtZXMoKSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgCisgICAgICAgIHB1YmxpYyBVbmljb2RlUHJvcGVydHkgZ2V0SW50ZXJuYWxQcm9wZXJ0eShTdHJpbmcgcHJvcGVydHlBbGlhcykgeworICAgICAgICAgICAgaW50IHByb3BFbnVtOworICAgICAgICAgICAgbWFpbjoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgcG9zc2libGVJdGVtID0gQmluYXJ5X0V4dHJhcy5nZXQocHJvcGVydHlBbGlhcyk7CisgICAgICAgICAgICAgICAgaWYgKHBvc3NpYmxlSXRlbSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHByb3BFbnVtID0gcG9zc2libGVJdGVtOworICAgICAgICAgICAgICAgICAgICBicmVhayBtYWluOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwb3NzaWJsZUl0ZW0gPSBTdHJpbmdfRXh0cmFzLmdldChwcm9wZXJ0eUFsaWFzKTsKKyAgICAgICAgICAgICAgICBpZiAocG9zc2libGVJdGVtID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcHJvcEVudW0gPSBwb3NzaWJsZUl0ZW07CisgICAgICAgICAgICAgICAgICAgIGJyZWFrIG1haW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByb3BFbnVtID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eUVudW0ocHJvcGVydHlBbGlhcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmV3IElDVVByb3BlcnR5KHByb3BlcnR5QWxpYXMsIHByb3BFbnVtKTsKKyAgICAgICAgfQorIAorICAgICAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICAgICAqIEBzZWUgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbC5Vbmljb2RlUHJvcGVydHlTb3VyY2UjZ2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykKKyAgICAgICAgICovCisgICAgLy8gVE9ETyBmaWxlIGJ1ZyBvbiBnZXRQcm9wZXJ0eVZhbHVlTmFtZSBmb3IgQ2Fub25pY2FsX0NvbWJpbmluZ19DbGFzcyAgCisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBOYW1lcyB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nW10gbmFtZXM7CisgICAgICAgIHByaXZhdGUgaW50IGJhc2U7CisgICAgICAgIHB1YmxpYyBOYW1lcyhpbnQgYmFzZSwgU3RyaW5nW10gbmFtZXMpIHsKKyAgICAgICAgICAgIHRoaXMuYmFzZSA9IGJhc2U7CisgICAgICAgICAgICB0aGlzLm5hbWVzID0gbmFtZXM7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGludCBnZXQoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAobmFtZS5lcXVhbHNJZ25vcmVDYXNlKG5hbWVzW2ldKSkgcmV0dXJuIGJhc2UgKyBpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KGludCBudW1iZXIpIHsKKyAgICAgICAgICAgIG51bWJlciAtPSBiYXNlOworICAgICAgICAgICAgaWYgKG51bWJlciA8IDAgfHwgbmFtZXMubGVuZ3RoIDw9IG51bWJlcikgcmV0dXJuIG51bGw7CisgICAgICAgICAgICByZXR1cm4gbmFtZXNbbnVtYmVyXTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0luUmFuZ2UoaW50IG51bWJlcikgeworICAgICAgICAgICAgbnVtYmVyIC09IGJhc2U7CisgICAgICAgICAgICByZXR1cm4gKDAgPD0gbnVtYmVyICYmIG51bWJlciA8IG5hbWVzLmxlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIExpc3QgZ2V0TmFtZXMoKSB7CisgICAgICAgICAgICByZXR1cm4gQXJyYXlzLmFzTGlzdChuYW1lcyk7CisgICAgICAgIH0KKyAgICB9Cit9CisvLyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVUmVzb3VyY2VCdW5kbGVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VSZXNvdXJjZUJ1bmRsZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzc4N2NlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVUmVzb3VyY2VCdW5kbGVUZXN0LmphdmEKQEAgLTAsMCArMSwxMDYzIEBACisvLyMjaGVhZGVyCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEubmV0LlVSTDsKK2ltcG9ydCBqYXZhLm5ldC5VUkxDb25uZWN0aW9uOworaW1wb3J0IGphdmEubmV0LkphclVSTENvbm5lY3Rpb247CisvLyNpZm5kZWYgRk9VTkRBVElPTgoraW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CisvLyNlbHNlCisvLyMjaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQnl0ZUJ1ZmZlcjsKKy8vI2VuZGlmCitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLmphci5KYXJFbnRyeTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSG9saWRheTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb247CisKKworcHVibGljIGZpbmFsIGNsYXNzIElDVVJlc291cmNlQnVuZGxlVGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBDbGFzc0xvYWRlciB0ZXN0TG9hZGVyID0gSUNVUmVzb3VyY2VCdW5kbGVUZXN0LmNsYXNzLmdldENsYXNzTG9hZGVyKCk7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGVUZXN0IHRlc3QgPSBuZXcgSUNVUmVzb3VyY2VCdW5kbGVUZXN0KCk7CisgICAgICAgIHRlc3QucnVuKGFyZ3MpOworCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RHZXRSZXNvdXJjZXMoKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgRW51bWVyYXRpb24gZW4gPSB0ZXN0TG9hZGVyLmdldFJlc291cmNlcygiY29tLmlibS5pY3UuZGV2LmRhdGEiKTsKKyAgICAgICAgICAgIGZvcig7ZW4uaGFzTW9yZUVsZW1lbnRzKCk7KSB7CisgICAgICAgICAgICAgICAgVVJMIHVybCA9IChVUkwpZW4ubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBpZiAodXJsID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgd2FybmxuKCJjb3VsZCBub3QgbG9hZCByZXNvdXJjZSBkYXRhIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVVJMQ29ubmVjdGlvbiBjID0gdXJsLm9wZW5Db25uZWN0aW9uKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoYyBpbnN0YW5jZW9mIEphclVSTENvbm5lY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgSmFyVVJMQ29ubmVjdGlvbiBqYyA9IChKYXJVUkxDb25uZWN0aW9uKWM7CisgICAgICAgICAgICAgICAgICAgIEphckVudHJ5IGplID0gamMuZ2V0SmFyRW50cnkoKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oImphciBlbnRyeTogIiArIGplLnRvU3RyaW5nKCkpOyAKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IGMuZ2V0SW5wdXRTdHJlYW0oKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oImlucHV0IHN0cmVhbToiKTsKKyAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcyk7CisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKHIpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbGluZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKChsaW5lID0gYnIucmVhZExpbmUoKSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nbG4oIiAgIiArICsrbiArICI6ICIgKyBsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfWNhdGNoKFNlY3VyaXR5RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBsb2FkIHJlc291cmNlIGRhdGE6ICIgKyBleCk7CisgICAgICAgICAgICBleC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICB9Y2F0Y2goTnVsbFBvaW50ZXJFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgLy8gdGhyb3duIGJ5IGlibSAxLjQuMiB3aW5kb3dzIGp2bSBzZWN1cml0eSBtYW5hZ2VyCisgICAgICAgIHdhcm5sbigiY291bGQgbm90IGxvYWQgcmVzb3VyY2UgZGF0YTogIiArIGV4KTsKKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBleCl7CisgICAgICAgIGV4LnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgZXJybG4oIlVuZXhwZWN0ZWQgZXhjZXB0aW9uOiAiKyBleCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFJlc291cmNlQnVuZGxlV3JhcHBlcigpeworICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20uaWJtLmljdS5pbXBsLmRhdGEuSG9saWRheUJ1bmRsZSIsICJkYV9ESyIpOworICAgICAgICBPYmplY3QgbyA9IGJ1bmRsZS5nZXRPYmplY3QoImhvbGlkYXlzIik7CisgICAgICAgIGlmKG8gaW5zdGFuY2VvZiBIb2xpZGF5W10gKXsKKyAgICAgICAgICAgIGxvZ2xuKCJ3cmFwcGVyIG1lY2hhbmlzbSB3b3JrcyBmb3IgV2Vla2VuZCBkYXRhIik7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIFdlZWtlbmQgZGF0YSIpOworICAgICAgICB9CisKKyAgICAgICAgYnVuZGxlID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsICJib2d1cyIpOworICAgICAgICBpZihidW5kbGUgaW5zdGFuY2VvZiBJQ1VSZXNvdXJjZUJ1bmRsZSAmJiBidW5kbGUuZ2V0VUxvY2FsZSgpLmVxdWFscygiZW5fVVMiKSl7CisgICAgICAgICAgICBsb2dsbigid3JhcHBlciBtZWNoYW5pc20gd29ya3MgZm9yIGJvZ3VzIGxvY2FsZSIpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJ3cmFwcGVyIG1lY2hhbmlzbSBmYWlsZWQgZm9yIGJvZ3VzIGxvY2FsZS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiYm9ndXMiLCAiYm9ndXMiKTsKKyAgICAgICAgICAgIGlmKGJ1bmRsZSE9bnVsbCl7CisgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgbG9nbG4oImdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKworCisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RKQjM4NzkoKXsKKyAgICAgICAgLy8gdGhpcyB0ZXN0cyB0ZXN0cyBsb2FkaW5nIG9mIHJvb3QgYnVuZGxlIHdoZW4gYSByZXNvdXJjZSBidW5kbGUKKyAgICAgICAgLy8gZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBpcyByZXF1ZXN0ZWQKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpLnRvU3RyaW5nKCksIHRlc3RMb2FkZXIpOworICAgICAgICAgICAgaWYoYnVuZGxlPT1udWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSB0aGUgcmVzb3VyY2UgYnVuZGxlIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgd2FybmxuKCJjb3VsZCBub3QgbG9hZCB0ZXN0IGRhdGE6ICIgKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RPcGVuKCl7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsICJlbl9VU19QT1NJWCIpOworCisgICAgICAgIGlmKGJ1bmRsZT09bnVsbCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGNyZWF0ZSB0aGUgcmVzb3VyY2UgYnVuZGxlIik7CisgICAgICAgIH0KKworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBvYmogPSAgYnVuZGxlLmdldCgiTnVtYmVyUGF0dGVybnMiKTsKKworICAgICAgICBpbnQgc2l6ZSA9IG9iai5nZXRTaXplKCk7CisgICAgICAgIGludCB0eXBlID0gb2JqLmdldFR5cGUoKTsKKyAgICAgICAgaWYodHlwZSA9PSBJQ1VSZXNvdXJjZUJ1bmRsZS5BUlJBWSl7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWI7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxzaXplOyBpKyspeworICAgICAgICAgICAgICAgIHN1YiA9IG9iai5nZXQoaSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXAgPXN1Yi5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBpZih0ZW1wLmxlbmd0aCgpPT0wKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkZhaWxlZCB0byBnZXQgdGhlIGl0ZW1zIGZyb20gTnVtYmVyUGF0dGVybnMgYXJyYXkgaW4gYnVuZGxlOiAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1bmRsZS5nZXRVTG9jYWxlKCkuZ2V0QmFzZU5hbWUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJcIiIrcHJldHRpZnkodGVtcCkrIlwiIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdbXSBzdHJpbmdzID0gYnVuZGxlLmdldFN0cmluZ0FycmF5KCJOdW1iZXJQYXR0ZXJucyIpOworICAgICAgICBpZihzaXplIT1zdHJpbmdzLmxlbmd0aCl7CisgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGdldCB0aGUgaXRlbXMgZnJvbSBOdW1iZXJQYXR0ZXJucyBhcnJheSBpbiBidW5kbGU6ICIrCisgICAgICAgICAgICAgICAgICAgIGJ1bmRsZS5nZXRVTG9jYWxlKCkuZ2V0QmFzZU5hbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgb2JqID0gIGJ1bmRsZS5nZXQoIk51bWJlckVsZW1lbnRzIik7CisKKyAgICAgICAgICAgIHNpemUgPSBvYmouZ2V0U2l6ZSgpOworICAgICAgICAgICAgdHlwZSA9IG9iai5nZXRUeXBlKCk7CisgICAgICAgICAgICBpZih0eXBlID09IElDVVJlc291cmNlQnVuZGxlLkFSUkFZKXsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWI7CisgICAgICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8c2l6ZTsgaSsrKXsKKyAgICAgICAgICAgICAgICAgICAgc3ViID0gb2JqLmdldChpKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXAgPXN1Yi5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYodGVtcC5sZW5ndGgoKT09MCl7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRmFpbGVkIHRvIGdldCB0aGUgaXRlbXMgZnJvbSBOdW1iZXJQYXR0ZXJucyBhcnJheSBpbiBidW5kbGU6ICIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1bmRsZS5nZXRVTG9jYWxlKCkuZ2V0QmFzZU5hbWUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oIlwiIitwcmV0dGlmeSh0ZW1wKSsiXCIiKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihidW5kbGU9PW51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBjcmVhdGUgdGhlIHJlc291cmNlIGJ1bmRsZSIpOworICAgICAgICB9CisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUsICJlbl9VU19QT1NJWCIpOworICAgICAgICBpZihidW5kbGU9PW51bGwpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBsb2FkIHRoZSBzdHJlYW0iKTsKKyAgICAgICAgfQorICAgICAgICBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAibXlfdmVyeV92ZXJ5X3ZlcnlfbG9uZ19ib2d1c19idW5kbGUiKTsKKyAgICAgICAgaWYoIWJ1bmRsZS5nZXRVTG9jYWxlKCkuZXF1YWxzKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKSl7CisgICAgICAgICAgICBlcnJsbigiVVJlc291cmNlQnVuZGxlIGRpZCBub3QgbG9hZCB0aGUgZGVmYXVsdCBidW5kbGUgd2hlbiBidW5kbGUgd2FzIG5vdCBmb3VuZCIpOworICAgICAgICB9CisKKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCYXNpY1R5cGVzKCl7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsICJ0ZXN0dHlwZXMiLCB0ZXN0TG9hZGVyKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiY291bGQgbm90IGxvYWQgdGVzdCBkYXRhOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZCA9ICJhYmNcdTAwMDBkZWYiOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViID0gYnVuZGxlLmdldCgiemVyb3Rlc3QiKTsKKyAgICAgICAgICAgIGlmKCFleHBlY3RlZC5lcXVhbHMoc3ViLmdldFN0cmluZygpKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBzdHJpbmcgZm9yIGtleSB6ZXJvdGVzdCBpbiBidW5kbGUgdGVzdHR5cGVzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdWIgPSBidW5kbGUuZ2V0KCJlbXB0eWV4cGxpY2l0c3RyaW5nIik7CisgICAgICAgICAgICBleHBlY3RlZCA9IiI7CisgICAgICAgICAgICBpZighZXhwZWN0ZWQuZXF1YWxzKHN1Yi5nZXRTdHJpbmcoKSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgc3RyaW5nIGZvciBrZXkgZW1wdHlleHBsaWNpdHN0cmluZyBpbiBidW5kbGUgdGVzdHR5cGVzIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdWIgPSBidW5kbGUuZ2V0KCJlbXB0eXN0cmluZyIpOworICAgICAgICAgICAgZXhwZWN0ZWQgPSIiOworICAgICAgICAgICAgaWYoIWV4cGVjdGVkLmVxdWFscyhzdWIuZ2V0U3RyaW5nKCkpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHN0cmluZyBmb3Iga2V5IGVtcHR5c3RyaW5nIGluIGJ1bmRsZSB0ZXN0dHlwZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgZXhwZWN0ZWQgPSAxMjM7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSBidW5kbGUuZ2V0KCJvbmVodW5kcmVkdHdlbnR5dGhyZWUiKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1zdWIuZ2V0SW50KCkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgaW50IHZhbHVlIGZvciBrZXkgb25laHVuZHJlZHR3ZW50eXRocmVlIGluIGJ1bmRsZSB0ZXN0dHlwZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN1YiA9IGJ1bmRsZS5nZXQoImVtcHR5aW50Iik7CisgICAgICAgICAgICBleHBlY3RlZD0wOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPXN1Yi5nZXRJbnQoKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBpbnQgdmFsdWUgZm9yIGtleSBlbXB0eWludCBpbiBidW5kbGUgdGVzdHR5cGVzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgaW50IGV4cGVjdGVkID0gMTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IGJ1bmRsZS5nZXQoIm9uZSIpOworICAgICAgICAgICAgaWYoZXhwZWN0ZWQhPXN1Yi5nZXRJbnQoKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBpbnQgdmFsdWUgZm9yIGtleSBvbmUgaW4gYnVuZGxlIHRlc3R0eXBlcyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBleHBlY3RlZCA9IC0xOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViID0gYnVuZGxlLmdldCgibWludXNvbmUiKTsKKyAgICAgICAgICAgIGludCBnb3QgPSBzdWIuZ2V0SW50KCk7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9Z290KXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGludCB2YWx1ZSBmb3Iga2V5IG1pbnVzb25lIGluIGJ1bmRsZSB0ZXN0dHlwZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV4cGVjdGVkID0gMHhGRkZGRkZGOworICAgICAgICAgICAgZ290ID0gc3ViLmdldFVJbnQoKTsKKyAgICAgICAgICAgIGlmKGV4cGVjdGVkIT1nb3QpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgaW50IHZhbHVlIGZvciBrZXkgbWludXNvbmUgaW4gYnVuZGxlIHRlc3R0eXBlcyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBleHBlY3RlZCA9IDE7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSBidW5kbGUuZ2V0KCJwbHVzb25lIik7CisgICAgICAgICAgICBpZihleHBlY3RlZCE9c3ViLmdldEludCgpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGludCB2YWx1ZSBmb3Iga2V5IG1pbnVzb25lIGluIGJ1bmRsZSB0ZXN0dHlwZXMiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIGludFtdIGV4cGVjdGVkID0gbmV3IGludFtdeyAxLCAyLCAzLCAtMywgNCwgNSwgNiwgNyB9ICAgOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViID0gYnVuZGxlLmdldCgiaW50ZWdlcmFycmF5Iik7CisgICAgICAgICAgICBpZighVXRpbGl0eS5hcnJheUVxdWFscyhleHBlY3RlZCxzdWIuZ2V0SW50VmVjdG9yKCkpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGludCB2ZWN0b3IgdmFsdWUgZm9yIGtleSBpbnRlZ2VyYXJyYXkgaW4gYnVuZGxlIHRlc3R0eXBlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3ViID0gYnVuZGxlLmdldCgiZW1wdHlpbnR2Iik7CisgICAgICAgICAgICBleHBlY3RlZCA9IG5ldyBpbnRbMF07CisgICAgICAgICAgICBpZighVXRpbGl0eS5hcnJheUVxdWFscyhleHBlY3RlZCxzdWIuZ2V0SW50VmVjdG9yKCkpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGludCB2ZWN0b3IgdmFsdWUgZm9yIGtleSBlbXB0eWludHYgaW4gYnVuZGxlIHRlc3R0eXBlcyIpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViID0gYnVuZGxlLmdldCgiYmluYXJ5dGVzdCIpOworICAgICAgICAgICAgQnl0ZUJ1ZmZlciBnb3QgPSBzdWIuZ2V0QmluYXJ5KCk7CisgICAgICAgICAgICBpZihnb3QucmVtYWluaW5nKCkhPTE1KXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGxlbmd0aCBmb3IgdGhlIGJpbmFyeSBCeXRlQnVmZmVyIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTwgZ290LnJlbWFpbmluZygpOyBpKyspeworICAgICAgICAgICAgICAgIGJ5dGUgYiA9IGdvdC5nZXQoKTsKKyAgICAgICAgICAgICAgICBpZihiIT1pKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCB2YWx1ZSBmb3IgYmluYXJ5IGJ1ZmZlciBhdCBpbmRleDogIitpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdWIgPSBidW5kbGUuZ2V0KCJlbXB0eWJpbiIpOworICAgICAgICAgICAgZ290ID0gc3ViLmdldEJpbmFyeSgpOworICAgICAgICAgICAgaWYoZ290LnJlbWFpbmluZygpIT0wKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGxlbmd0aCBmb3IgdGhlIGVtcHR5YmluIEJ5dGVCdWZmZXIiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IGJ1bmRsZS5nZXQoImVtcHR5YXJyYXkiKTsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSBzdWIuZ2V0S2V5KCk7CisgICAgICAgICAgICBpZigha2V5LmVxdWFscygiZW1wdHlhcnJheSIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGtleSBmb3IgZW1wdHl0YWJsZSBpdGVtIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihzdWIuZ2V0U2l6ZSgpIT0wKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGxlbmd0aCBmb3IgZW1wdHl0YWJsZSBpdGVtIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViID0gYnVuZGxlLmdldCgibWVudSIpOworICAgICAgICAgICAgU3RyaW5nIGtleSA9IHN1Yi5nZXRLZXkoKTsKKyAgICAgICAgICAgIGlmKCFrZXkuZXF1YWxzKCJtZW51IikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQga2V5IGZvciBtZW51IGl0ZW0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YjEgPSBzdWIuZ2V0KCJmaWxlIik7CisgICAgICAgICAgICBrZXkgPSBzdWIxLmdldEtleSgpOworICAgICAgICAgICAgaWYoIWtleS5lcXVhbHMoImZpbGUiKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBrZXkgZm9yIGZpbGUgaXRlbSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViMiA9IHN1YjEuZ2V0KCJvcGVuIik7CisgICAgICAgICAgICBrZXkgPSBzdWIyLmdldEtleSgpOworICAgICAgICAgICAgaWYoIWtleS5lcXVhbHMoIm9wZW4iKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBrZXkgZm9yIGZpbGUgaXRlbSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gc3ViMi5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgIGlmKCF2YWx1ZS5lcXVhbHMoIk9wZW4iKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCB2YWx1ZSBmb3Iga2V5IGZvciBvZW4gaXRlbSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdWIgPSBidW5kbGUuZ2V0KCJlbXB0eXRhYmxlIik7CisgICAgICAgICAgICBrZXkgPSBzdWIuZ2V0S2V5KCk7CisgICAgICAgICAgICBpZigha2V5LmVxdWFscygiZW1wdHl0YWJsZSIpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGtleSBmb3IgZW1wdHl0YWJsZSBpdGVtIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihzdWIuZ2V0U2l6ZSgpIT0wKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGxlbmd0aCBmb3IgZW1wdHl0YWJsZSBpdGVtIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdWIgPSBidW5kbGUuZ2V0KCJtZW51IikuZ2V0KCJmaWxlIik7CisgICAgICAgICAgICBpbnQgc2l6ZSA9IHN1Yi5nZXRTaXplKCk7CisgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQ7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxzaXplOyBpKyspeworICAgICAgICAgICAgICAgIHN1YjEgPSBzdWIuZ2V0KGkpOworCisgICAgICAgICAgICAgICAgc3dpdGNoKGkpeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9ICJleGl0IjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9ICJvcGVuIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9ICJzYXZlIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSIiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgZ290ID0gc3ViMS5nZXRLZXkoKTsKKyAgICAgICAgICAgICAgICBpZighZXhwZWN0ZWQuZXF1YWxzKGdvdCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGtleSBhdCBpbmRleCIraSsiLiBFeHBlY3RlZDogIitleHBlY3RlZCsiIEdvdDogIitnb3QpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBrZXkgYXQgaW5kZXg6ICIraSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgVGVzdENhc2V7CisgICAgICAgIFN0cmluZyBrZXk7CisgICAgICAgIGludCB2YWx1ZTsKKyAgICAgICAgVGVzdENhc2UoU3RyaW5nIGtleSwgaW50IHZhbHVlKXsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RUYWJsZTMyKCl7CisgICAgICAgIFRlc3RDYXNlW10gYXJyID0gbmV3IFRlc3RDYXNlW117CisgICAgICAgICAgbmV3IFRlc3RDYXNlICAoICJvb29vb29vb29vb29vb29vbyIsIDAgKSwKKyAgICAgICAgICBuZXcgVGVzdENhc2UgICggIm9vb29vb29vb29vb29vb28xIiwgMSApLAorICAgICAgICAgIG5ldyBUZXN0Q2FzZSAgKCAib29vb29vb29vb29vb29vMW8iLCAyICksCisgICAgICAgICAgbmV3IFRlc3RDYXNlICAoICJvbzExb29vMW9vbzExMTExbyIsIDI1MTUwICksCisgICAgICAgICAgbmV3IFRlc3RDYXNlICAoICJvbzExb29vMW9vbzExMTExMSIsIDI1MTUxICksCisgICAgICAgICAgbmV3IFRlc3RDYXNlICAoICJvMTExMTExMTExMTExMTExMSIsIDY1NTM1ICksCisgICAgICAgICAgbmV3IFRlc3RDYXNlICAoICIxb29vb29vb29vb29vb29vbyIsIDY1NTM2ICksCisgICAgICAgICAgbmV3IFRlc3RDYXNlICAoICIxb29vb29vbzExbzExb29vMSIsIDY1OTY5ICksCisgICAgICAgICAgbmV3IFRlc3RDYXNlICAoICIxb29vb29vbzExbzExb28xbyIsIDY1OTcwICksCisgICAgICAgICAgbmV3IFRlc3RDYXNlICAoICIxb29vb29vbzExMW9vMTExMSIsIDY1OTk5ICkKKyAgICAgICAgfTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwidGVzdHRhYmxlMzIiLCB0ZXN0TG9hZGVyKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBsb2FkIHJlc291cmNlIGRhdGE6ICIgKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYoYnVuZGxlLmdldFR5cGUoKSE9IElDVVJlc291cmNlQnVuZGxlLlRBQkxFKXsKKyAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgZ2V0IHRoZSBjb3JyZWN0IHR5cGUgZm9yIGJ1bmRsZSB0ZXN0dGFibGUzMiIpOworICAgICAgICB9CisgICAgICAgIGludCBzaXplID1idW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBpZihzaXplIT02NjAwMCl7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGdldCB0aGUgY29ycmVjdCBzaXplIGZvciBidW5kbGUgdGVzdHRhYmxlMzIiKTsKKyAgICAgICAgfQorICAgICAgICBmb3IoaW50IGkgPTA7IGk8c2l6ZTsgaSsrKXsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGl0ZW0gPSBidW5kbGUuZ2V0KGkpOworICAgICAgICAgICAgU3RyaW5nIGtleSA9IGl0ZW0uZ2V0S2V5KCk7CisgICAgICAgICAgICBpbnQgcGFyc2VkTnVtYmVyID0gcGFyc2VUYWJsZTMyS2V5KGtleSk7CisgICAgICAgICAgICBpbnQgbnVtYmVyPS0xOworICAgICAgICAgICAgc3dpdGNoKGl0ZW0uZ2V0VHlwZSgpKXsKKyAgICAgICAgICAgICAgICBjYXNlIElDVVJlc291cmNlQnVuZGxlLlNUUklORzoKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gaXRlbS5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gVVRGMTYuY2hhckF0KHZhbHVlLDApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIElDVVJlc291cmNlQnVuZGxlLklOVDoKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gaXRlbS5nZXRJbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkdvdCB1bmV4cGVjdGVkIHJlc291cmNlIHR5cGUgaW4gdGVzdHRhYmxlMzIiKTsKKworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYobnVtYmVyIT1wYXJzZWROdW1iZXIpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCBleHBlY3RlZCB2YWx1ZSBpbiB0ZXN0dHlwZXMzMiBmb3Iga2V5IisKKyAgICAgICAgICAgICAgICAgICAgICBrZXkrIi4gRXhwZWN0ZWQ6ICIrcGFyc2VkTnVtYmVyKyIgR290OiIrbnVtYmVyKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisgICAgICAgIGZvcihpbnQgaT0wO2k8YXJyLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3RlZCA9IGFycltpXS5rZXk7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBpdGVtID0gYnVuZGxlLmdldChleHBlY3RlZCk7CisgICAgICAgICAgICBpbnQgbnVtYmVyPTA7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gaXRlbS5nZXRLZXkoKTsKKyAgICAgICAgICAgIGludCBwYXJzZWROdW1iZXIgPSBwYXJzZVRhYmxlMzJLZXkoa2V5KTsKKyAgICAgICAgICAgIGlmKCFrZXkuZXF1YWxzKGV4cGVjdGVkKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBrZXkuIEV4cGVjdGVkOiAiK2V4cGVjdGVkKyIgR290OiIra2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN3aXRjaChpdGVtLmdldFR5cGUoKSl7CisgICAgICAgICAgICAgICAgY2FzZSBJQ1VSZXNvdXJjZUJ1bmRsZS5TVFJJTkc6CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGl0ZW0uZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IFVURjE2LmNoYXJBdCh2YWx1ZSwwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgSUNVUmVzb3VyY2VCdW5kbGUuSU5UOgorICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBpdGVtLmdldEludCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBlcnJsbigiR290IHVuZXhwZWN0ZWQgcmVzb3VyY2UgdHlwZSBpbiB0ZXN0dGFibGUzMiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihudW1iZXIhPXBhcnNlZE51bWJlcil7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IGV4cGVjdGVkIHZhbHVlIGluIHRlc3R0eXBlczMyIGZvciBrZXkiKworICAgICAgICAgICAgICAgICAgICAgIGtleSsiLiBFeHBlY3RlZDogIitwYXJzZWROdW1iZXIrIiBHb3Q6IitudW1iZXIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGludCAgcGFyc2VUYWJsZTMyS2V5KFN0cmluZyBrZXkpIHsKKyAgICAgICAgaW50IG51bWJlcjsKKyAgICAgICAgY2hhciBjOworCisgICAgICAgIG51bWJlcj0wOworICAgICAgICBmb3IoaW50IGk9MDsgaTxrZXkubGVuZ3RoKCk7IGkrKyl7CisgICAgICAgICAgICBjID0ga2V5LmNoYXJBdChpKTsKKyAgICAgICAgICAgIG51bWJlcjw8PTE7CisgICAgICAgICAgICBpZihjPT0nMScpIHsKKyAgICAgICAgICAgICAgICBudW1iZXJ8PTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bWJlcjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QWxpYXNlcygpeworICAgICAgIFN0cmluZyBzaW1wbGVBbGlhcyAgID0gIk9wZW4iOworCisgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpSUNVUmVzb3VyY2VCdW5kbGUuY3JlYXRlQnVuZGxlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsInRlc3RhbGlhc2VzIiwgdGVzdExvYWRlcik7CisgICAgICAgaWYgKHJiID09IG51bGwpIHsKKyAgICAgICAgICAgd2FybmxuKCJjb3VsZCBub3QgbG9hZCB0ZXN0YWxpYXNlcyBkYXRhIik7CisgICAgICAgICAgIHJldHVybjsKKyAgICAgICB9CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IHJiLmdldCgic2ltcGxlYWxpYXMiKTsKKyAgICAgICAgU3RyaW5nIHMxID0gc3ViLmdldFN0cmluZygic2ltcGxlYWxpYXMiKTsKKyAgICAgICAgaWYoczEuZXF1YWxzKHNpbXBsZUFsaWFzKSl7CisgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciBzaW1wbGVhbGlhcyIpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciBzaW1wbGVhbGlhcyIpOworICAgICAgICB9CisgICAgICAgIHsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwidGVzdGFsaWFzZXMiLHRlc3RMb2FkZXIpOworICAgICAgICAgICAgICAgIHN1YiA9IHJiLmdldCgibm9uZXhpc3RpbmciKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiBmb3Igbm9uZXhpc3RpbmciKTsKKyAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIG5vbmV4aXN0aW5nIGFsaWFzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgcmIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsInRlc3RhbGlhc2VzIix0ZXN0TG9hZGVyKTsKKyAgICAgICAgICAgIHN1YiA9IHJiLmdldCgicmVmZXJlbmNpbmdhbGlhcyIpOworICAgICAgICAgICAgczEgPSBzdWIuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICBpZihzMS5lcXVhbHMoIkhhbmkiKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3IgcmVmZXJlbmNpbmdhbGlhcyIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIHJlZmVyZW5jaW5nYWxpYXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB7CisgICAgICAgICAgICByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwidGVzdGFsaWFzZXMiLHRlc3RMb2FkZXIpOworICAgICAgICAgICAgc3ViID0gcmIuZ2V0KCJCcmVha0RpY3Rpb25hcnlEYXRhIik7CisgICAgICAgICAgICBpZihzdWIuZ2V0VHlwZSgpIT1JQ1VSZXNvdXJjZUJ1bmRsZS5CSU5BUlkpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdHlwZSBmb3IgQnJlYWtEaWN0aW9uYXJ5RGF0YSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoc3ViLmdldEJpbmFyeSgpLnJlbWFpbmluZygpPjApeworICAgICAgICAgICAgICAgIGxvZ2xuKCJHb3QgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3IgQnJlYWtEaWN0aW9uYXJ5RGF0YSIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCB0eXBlIGZvciBCcmVha0RpY3Rpb25hcnlEYXRhIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorLyogVGhlIGZvcm1hdCBvZiB0aW1lIHpvbmUgc3RyaW5ncyBjaGFuZ2VkIGluIHRoZSBoZWFkIC4uIGNvbW1lbnQgdGhlc2UgdGVzdHMgaW4gMy40LjMKKyAgICAgICAgeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmIxID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEiLCJ0ZXN0YWxpYXNlcyIsdGVzdExvYWRlcik7CisgICAgICAgICAgICBpZihyYjEhPXJiKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ2FjaGluZyBvZiB0aGUgcmVzb3VyY2UgYnVuZGxlIGZhaWxlZCIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgbG9nbG4oIkNhY2hpbmcgb2YgcmVzb3VyY2UgYnVuZGxlIHBhc3NlZCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3ViID0gcmIxLmdldCgidGVzdEdldFN0cmluZ0J5S2V5QWxpYXNpbmciICk7CisgICAgICAgICAgICBzMSA9IHN1Yi5nZXQoIktleUFsaWFzMFBTVCIpLmdldFN0cmluZygpOworICAgICAgICAgICAgaWYoczEuZXF1YWxzKCJBbWVyaWNhL0xvc19BbmdlbGVzIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIEtleUFsaWFzMFBTVCIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIEtleUFsaWFzMFBTVCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzMSA9IHN1Yi5nZXRTdHJpbmcoIktleUFsaWFzMVBhY2lmaWNTdGFuZGFyZFRpbWUiKTsKKyAgICAgICAgICAgIGlmKHMxLmVxdWFscygiUGFjaWZpYyBTdGFuZGFyZCBUaW1lIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIEtleUFsaWFzMVBhY2lmaWNTdGFuZGFyZFRpbWUiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciBLZXlBbGlhczFQYWNpZmljU3RhbmRhcmRUaW1lIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzMSA9IHN1Yi5nZXRTdHJpbmcoIktleUFsaWFzMlBEVCIpOworICAgICAgICAgICAgaWYoczEuZXF1YWxzKCJQRFQiKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oIkFsaWFzIG1lY2hhbmlzbSB3b3JrcyBmb3IgS2V5QWxpYXMyUERUIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3IgS2V5QWxpYXMyUERUIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHMxID0gc3ViLmdldFN0cmluZygiS2V5QWxpYXMzTG9zQW5nZWxlcyIpOworICAgICAgICAgICAgaWYoczEuZXF1YWxzKCJMb3MgQW5nZWxlcyIpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciBLZXlBbGlhczNMb3NBbmdlbGVzLiBHb3Q6ICIrczEpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIEtleUFsaWFzM0xvc0FuZ2VsZXMuIEdvdDogIitzMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgc3ViID0gcmIuZ2V0KCJ0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nIiApOworICAgICAgICAgICAgczEgPSBzdWIuZ2V0U3RyaW5nKDApOworICAgICAgICAgICAgaWYoczEuZXF1YWxzKCJBbWVyaWNhL0xvc19BbmdlbGVzIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcvMC4gR290OiAiK3MxKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nLzAuIEdvdDogIitzMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzMSA9IHN1Yi5nZXRTdHJpbmcoMSk7CisgICAgICAgICAgICBpZihzMS5lcXVhbHMoIlBhY2lmaWMgU3RhbmRhcmQgVGltZSIpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nLzEiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nLzEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHMxID0gc3ViLmdldFN0cmluZygyKTsKKyAgICAgICAgICAgIGlmKHMxLmVxdWFscygiUERUIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcvMiIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBvdXRwdXQgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcvMiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzMSA9IHN1Yi5nZXRTdHJpbmcoMyk7CisgICAgICAgICAgICBpZihzMS5lcXVhbHMoIkxvcyBBbmdlbGVzIikpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MgZm9yIHRlc3RHZXRTdHJpbmdCeUluZGV4QWxpYXNpbmcvMy4gR290OiAiK3MxKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb3V0cHV0IGZvciB0ZXN0R2V0U3RyaW5nQnlJbmRleEFsaWFzaW5nLzMuIEdvdDogIitzMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyovCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1YiA9IHJiLmdldCgiQnJlYWtEaWN0aW9uYXJ5RGF0YSIgKTsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgYnVmID0gc3ViLmdldEJpbmFyeSgpOworICAgICAgICAgICAgaWYoYnVmPT1udWxsKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG91dHB1dCBmb3IgQnJlYWtEaWN0aW9uYXJ5RGF0YSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHNob3VsZCBub3QgZ2V0IGFuIGV4Y2VwdGlvbgorICAgICAgICByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9SQk5GX0JBU0VfTkFNRSwiZnJfQkUiKTsKKyAgICAgICAgU3RyaW5nIHN0ciA9IHJiLmdldFN0cmluZygiU3BlbGxvdXRSdWxlcyIpOworICAgICAgICBpZihzdHIgIT1udWxsIHx8IHN0ci5sZW5ndGgoKT4wKXsKKyAgICAgICAgICAgIGxvZ2xuKCJBbGlhcyBtZWNoYW5pc20gd29ya3MiKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgZnJfQkUgU3BlbGxvdXRSdWxlcyIpOworICAgICAgICB9CisgICAgICAgIHJiID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUsInpoX1RXIik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIHJiLmdldE9iamVjdCgiY29sbGF0aW9ucyIpOworICAgICAgICBpZihiICE9IG51bGwpeworICAgICAgICAgICAgaWYoYi5nZXQoMCkuZ2V0S2V5KCkuZXF1YWxzKCAiZGVmYXVsdCIpKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiQWxpYXMgbWVjaGFuaXNtIHdvcmtzIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQWxpYXMgbWVjaGFuaXNtIGZhaWxlZCBmb3IgemhfVFcgY29sbGF0aW9ucyIpOworICAgICAgICAgICAgfQorICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgb2JqZWN0IGZvciBjb2xsYXRpb25zIik7CisgICAgICAgIH0KKworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0QWxpYXMoKXsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgJSVBTElBUyIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIml3X0lMIik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIgPSByYi5nZXQoIk51bWJlclBhdHRlcm5zIik7CisgICAgICAgIGlmKGIgIT0gbnVsbCl7CisgICAgICAgICAgICBpZihiLmdldFNpemUoKT4wKXsKKyAgICAgICAgICAgICAgICBsb2dsbigiJSVBTElBUyBtZWNoYW5pc20gd29ya3MiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGVycmxuKCIlJUFMSUFTIG1lY2hhbmlzbSBmYWlsZWQgZm9yIGl3X0lMIGNvbGxhdGlvbnMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBlcnJsbigiJSVBTElBUyBtZWNoYW5pc20gZmFpbGVkIGZvciBpd19JTCIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RYUGF0aEFsaWFzKCl7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwidGVfSU4iLHRlc3RMb2FkZXIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBiID0gcmIuZ2V0KCJhbGlhc0NsaWVudCIpOworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gYi5nZXRTdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIGV4cFJlc3VsdD0gImNvcnJlY3QiOyAKKworICAgICAgICBpZighcmVzdWx0LmVxdWFscyhleHBSZXN1bHQpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciBYUGF0aCBzdHlsZSBhbGlhcyIpOworICAgICAgICB9CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGMgPSByYi5nZXQoInJvb3RBbGlhc0NsaWVudCIpOworICAgICAgICAgICAgcmVzdWx0ID0gYy5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgIGV4cFJlc3VsdCA9ICJjb3JyZWN0IjsgCisgICAgICAgICAgICBpZighcmVzdWx0LmVxdWFscyhleHBSZXN1bHQpKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCBmb3IgWFBhdGggc3R5bGUgYWxpYXMgZm9yIHJvb3RBbGlhc0NsaWVudCIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGdldCByb290QWxpYXNDbGllbnQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2lyY3VsYXJBbGlhc2VzKCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tL2libS9pY3UvZGV2L2RhdGEvdGVzdGRhdGEiLCJ0ZXN0YWxpYXNlcyIsdGVzdExvYWRlcik7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSByYi5nZXQoImFhYSIpOworICAgICAgICAgICAgU3RyaW5nIHMxID0gc3ViLmdldFN0cmluZygpOworICAgICAgICAgICAgaWYoczEhPW51bGwpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgbG9nbG4oImdvdCBleHBlY3RlZCBleGNlcHRpb24gZm9yIGNpcmN1bGFyIHJlZmVyZW5jZXMiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB3YXJubG4oImNvdWxkIG5vdCBsb2FkIHJlc291cmNlIGRhdGE6ICIgKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldFdpdGhGYWxsYmFjaygpeworICAgICAgICAvKgorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPShJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKCJjb20vaWJtL2ljdS9kZXYvZGF0YS90ZXN0ZGF0YSIsInRlX0lOIik7CisgICAgICAgIFN0cmluZyBrZXkgPSBidW5kbGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKCJLZXlzL2NvbGxhdGlvbiIpOworICAgICAgICBpZigha2V5LmVxdWFscygiQ09MTEFUSU9OIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZnJvbSBnZXRTdHJpbmdXaXRoRmFsbGJhY2sgbWV0aG9kLiIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyB0eXBlID0gYnVuZGxlLmdldFN0cmluZ1dpdGhGYWxsYmFjaygiVHlwZXMvY29sbGF0aW9uL2RpcmVjdCIpOworICAgICAgICBpZighdHlwZS5lcXVhbHMoIkRJUkVDVCIpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvcm0gZ2V0U3RyaW5nV2l0aEZhbGxiYWNrIG1ldGhvZC4iKTsKKyAgICAgICAgfQorICAgICAgICAqLworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBudWxsOworICAgICAgICBTdHJpbmcga2V5ID0gbnVsbDsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUsVUxvY2FsZS5jYW5vbmljYWxpemUoImRlX19QSE9ORUJPT0siKSk7CisKKyAgICAgICAgICAgIGlmKCFidW5kbGUuZ2V0VUxvY2FsZSgpLmVxdWFscygiZGUiKSl7CisgICAgICAgICAgICAgICAgZXJybG4oImRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBidW5kbGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGtleSA9IGJ1bmRsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvY29sbGF0aW9uL2RlZmF1bHQiKTsKKyAgICAgICAgICAgIGlmKCFrZXkuZXF1YWxzKCJwaG9uZWJvb2siKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZnJvbSBnZXRTdHJpbmdXaXRoRmFsbGJhY2sgbWV0aG9kLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgbG9nbG4oImdvdCB0aGUgZXhwZWN0ZWQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKworCisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FLCJmcl9GUiIpOworICAgICAgICBrZXkgPSBidW5kbGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKCJjb2xsYXRpb25zL2RlZmF1bHQiKTsKKyAgICAgICAgaWYoIWtleS5lcXVhbHMoInN0YW5kYXJkIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCByZXN1bHQgZnJvbSBnZXRTdHJpbmdXaXRoRmFsbGJhY2sgbWV0aG9kLiIpOworICAgICAgICB9CisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsImZyX0ZSIik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIxID0gYnVuZGxlLmdldFdpdGhGYWxsYmFjaygiY2FsZW5kYXIiKTsKKyAgICAgICAgU3RyaW5nIGRlZmF1bHRDYWwgPSBiMS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soImRlZmF1bHQiKTsKKyAgICAgICAgaWYoIWRlZmF1bHRDYWwuZXF1YWxzKCJncmVnb3JpYW4iKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGRlZmF1bHQgY2FsZW5kYXIgc3RyaW5nOiBFeHBlY3RlZDogZ3JlZ29yaWFuLCBHb3Q6ICIrZGVmYXVsdENhbCk7CisgICAgICAgIH0KKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYjIgPSBiMS5nZXRXaXRoRmFsbGJhY2soZGVmYXVsdENhbCk7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIzID0gYjIuZ2V0V2l0aEZhbGxiYWNrKCJtb250aE5hbWVzIik7CisgICAgICAgIFN0cmluZyBkZWZhdWx0Q29udGV4dCA9IGIzLmdldFN0cmluZ1dpdGhGYWxsYmFjaygiZGVmYXVsdCIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBiNCA9IGIzLmdldFdpdGhGYWxsYmFjayhkZWZhdWx0Q29udGV4dCk7CisgICAgICAgIFN0cmluZyBkZWZhdWx0V2lkdGggID0gYjQuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKCJkZWZhdWx0Iik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGI1ID0gYjQuZ2V0V2l0aEZhbGxiYWNrKGRlZmF1bHRXaWR0aCk7CisgICAgICAgIGlmKGI1LmdldFNpemUoKSE9MTIpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBzaXplIGZvciB0aGUgZGVmYXVsdCBtb250aE5hbWVzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09MTEFUSU9OX1JFU05BTUUgPSAiY29sbGF0aW9ucyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTExBVElPTl9LRVlXT1JEID0gImNvbGxhdGlvbiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFRfTkFNRSA9ICJkZWZhdWx0IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1RBTkRBUkRfTkFNRSA9ICJzdGFuZGFyZCI7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0S2V5d29yZFZhbHVlcygpeworICAgICAgICBTdHJpbmcga3dWYWxzW107CisgICAgICAgIGJvb2xlYW4gZm91bmRTdGFuZGFyZCA9IGZhbHNlOworICAgICAgICBpbnQgbjsKKworICAgICAgICBsb2dsbigiVGVzdGluZyBnZXR0aW5nIGNvbGxhdGlvbiB2YWx1ZXM6Iik7CisgICAgICAgIGt3VmFscyA9IElDVVJlc291cmNlQnVuZGxlLmdldEtleXdvcmRWYWx1ZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUsQ09MTEFUSU9OX1JFU05BTUUpOworICAgICAgICBmb3Iobj0wO248a3dWYWxzLmxlbmd0aDtuKyspIHsKKyAgICAgICAgICAgIGxvZ2xuKG5ldyBJbnRlZ2VyKG4pLnRvU3RyaW5nKCkgKyAiOiAiICsga3dWYWxzW25dKTsKKyAgICAgICAgICAgIGlmKERFRkFVTFRfTkFNRS5lcXVhbHMoa3dWYWxzW25dKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJnZXRLZXl3b3JkVmFsdWVzIGZvciBjb2xsYXRpb24gcmV0dXJuZWQgJ2RlZmF1bHQnIGluIHRoZSBsaXN0LiIpOworICAgICAgICAgICAgfSBlbHNlIGlmKFNUQU5EQVJEX05BTUUuZXF1YWxzKGt3VmFsc1tuXSkpIHsKKyAgICAgICAgICAgICAgICBpZihmb3VuZFN0YW5kYXJkID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kU3RhbmRhcmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBsb2dsbigiZm91bmQgJ3N0YW5kYXJkJyIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciAtICdzdGFuZGFyZCcgaXMgaW4gdGhlIGtleXdvcmQgbGlzdCB0d2ljZSEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZihmb3VuZFN0YW5kYXJkID09IGZhbHNlKSB7CisgICAgICAgICAgICBlcnJsbigiRXJyb3IgLSAnc3RhbmRhcmQnIHdhcyBub3QgaW4gdGhlIGNvbGxhdGlvbiB0cmVlIGFzIGEga2V5d29yZC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCInc3RhbmRhcmQnIHdhcyBmb3VuZCBhcyBhIGNvbGxhdGlvbiBrZXl3b3JkLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdExvY2FsZURpc3BsYXlOYW1lcygpIHsKKyAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoIWhhc0xvY2FsaXplZENvdW50cnlGb3IoVUxvY2FsZS5FTkdMSVNILCBsb2NhbGVzW2ldKSl7CisgICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgZ2V0IGxvY2FsaXplZCBjb3VudHJ5IGZvciAiKyBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKCFoYXNMb2NhbGl6ZWRMYW5ndWFnZUZvcihVTG9jYWxlLkVOR0xJU0gsIGxvY2FsZXNbaV0pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGdldCBsb2NhbGl6ZWQgbGFuZ3VhZ2UgZm9yICIrIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoIWhhc0xvY2FsaXplZENvdW50cnlGb3IobG9jYWxlc1tpXSwgbG9jYWxlc1tpXSkpeworICAgICAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgZ2V0IGxvY2FsaXplZCBjb3VudHJ5IGZvciAiKyBsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgICAgICBoYXNMb2NhbGl6ZWRDb3VudHJ5Rm9yKGxvY2FsZXNbaV0sIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoIWhhc0xvY2FsaXplZExhbmd1YWdlRm9yKGxvY2FsZXNbaV0sIGxvY2FsZXNbaV0pKXsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ291bGQgbm90IGdldCBsb2NhbGl6ZWQgbGFuZ3VhZ2UgZm9yICIrIGxvY2FsZXNbaV0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsb2dsbihsb2NhbGVzW2ldICsgIlx0IiArIGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5FTkdMSVNIKSArICJcdCIgKyBsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKGxvY2FsZXNbaV0pKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaGFzTG9jYWxpemVkTGFuZ3VhZ2VGb3IoVUxvY2FsZSBsb2NhbGUsIFVMb2NhbGUgb3RoZXJMb2NhbGUpIHsKKyAgICAgICAgU3RyaW5nIGxhbmcgPSBvdGhlckxvY2FsZS5nZXRMYW5ndWFnZSgpOworICAgICAgICBTdHJpbmcgbG9jYWxpemVkVmVyc2lvbiA9IG90aGVyTG9jYWxlLmdldERpc3BsYXlMYW5ndWFnZShsb2NhbGUpOworICAgICAgICByZXR1cm4gIWxhbmcuZXF1YWxzKGxvY2FsaXplZFZlcnNpb24pOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaGFzTG9jYWxpemVkQ291bnRyeUZvcihVTG9jYWxlIGxvY2FsZSwgVUxvY2FsZSBvdGhlckxvY2FsZSkgeworICAgICAgICBTdHJpbmcgY291bnRyeSA9IG90aGVyTG9jYWxlLmdldENvdW50cnkoKTsKKyAgICAgICAgaWYgKGNvdW50cnkuZXF1YWxzKCIiKSkgcmV0dXJuIHRydWU7CisgICAgICAgIFN0cmluZyBsb2NhbGl6ZWRWZXJzaW9uID0gb3RoZXJMb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkobG9jYWxlKTsKKyAgICAgICAgcmV0dXJuICFjb3VudHJ5LmVxdWFscyhsb2NhbGl6ZWRWZXJzaW9uKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RnVuY3Rpb25hbEVxdWl2YWxlbnQoKXsKKyAgICAgICBTdHJpbmdbXSB0ZXN0Q2FzZXMgPSB7CisgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICBhdmFpbCAgIGxvY2FsZSAgICAgICAgICBlcXVpdgorICAgICAgICAgICAgICAiZiIsICAgICJkZV9VU19DQUxJRk9STklBIiwgICAgICAgICAgICAiZGUiLAorICAgICAgICAgICAgICAidCIsICAgICJ6aF9UV0Bjb2xsYXRpb249c3Ryb2tlIiwgICAgICAiemhAY29sbGF0aW9uPXN0cm9rZSIsCisgICAgICAgICAgICAgICJmIiwgICAgImRlX0NOQGNvbGxhdGlvbj1waW55aW4iLCAgICAgICJkZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoQGNvbGxhdGlvbj1waW55aW4iLCAgICAgICJ6aCIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoX0NOQGNvbGxhdGlvbj1waW55aW4iLCAgICAgICJ6aCIsIC8qIHNob3VsZCBiZSAnVCcgd2hlbiB2YWxpZFN1YkxvY2FsZXMgd29ya3MgKi8KKyAgICAgICAgICAgICAgInQiLCAgICAiemhfSEtAY29sbGF0aW9uPXBpbnlpbiIsICAgICAgInpoIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfSEtAY29sbGF0aW9uPXN0cm9rZSIsICAgICAgInpoQGNvbGxhdGlvbj1zdHJva2UiLAorICAgICAgICAgICAgICAidCIsICAgICJ6aF9ISyIsICAiemhAY29sbGF0aW9uPXN0cm9rZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoX01PIiwgICJ6aEBjb2xsYXRpb249c3Ryb2tlIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfVFdfU1RST0tFIiwgICJ6aEBjb2xsYXRpb249c3Ryb2tlIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfVFdfU1RST0tFQGNvbGxhdGlvbj1iaWc1aGFuIiwgICJ6aEBjb2xsYXRpb249YmlnNWhhbiIsCisgICAgICAgICAgICAgICJmIiwgICAgImRlX0NOQGNhbGVuZGFyPWphcGFuZXNlIiwgICAgICJkZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgImRlQGNhbGVuZGFyPWphcGFuZXNlIiwgICAgICAgICJkZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoX1RXQGNvbGxhdGlvbj1iaWc1aGFuIiwgICAgInpoQGNvbGxhdGlvbj1iaWc1aGFuIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfVFdAY29sbGF0aW9uPWdiMjMxMmhhbiIsICJ6aEBjb2xsYXRpb249Z2IyMzEyaGFuIiwKKyAgICAgICAgICAgICAgInQiLCAgICAiemhfQ05AY29sbGF0aW9uPWJpZzVoYW4iLCAgICAiemhAY29sbGF0aW9uPWJpZzVoYW4iLAorICAgICAgICAgICAgICAidCIsICAgICJ6aF9DTkBjb2xsYXRpb249Z2IyMzEyaGFuIiwgInpoQGNvbGxhdGlvbj1nYjIzMTJoYW4iLAorICAgICAgICAgICAgICAidCIsICAgICJ6aEBjb2xsYXRpb249YmlnNWhhbiIsICAgICAgICJ6aEBjb2xsYXRpb249YmlnNWhhbiIsCisgICAgICAgICAgICAgICJ0IiwgICAgInpoQGNvbGxhdGlvbj1nYjIzMTJoYW4iLCAgICAiemhAY29sbGF0aW9uPWdiMjMxMmhhbiIsCisgICAgICAgICAgICAgICJ0IiwgICAgImhpX0lOQGNvbGxhdGlvbj1kaXJlY3QiLCAgICAgICJoaUBjb2xsYXRpb249ZGlyZWN0IiwKKyAgICAgICAgICAgICAgInQiLCAgICAiaGlAY29sbGF0aW9uPXN0YW5kYXJkIiwgICAgICAiaGkiLAorICAgICAgICAgICAgICAidCIsICAgICJoaUBjb2xsYXRpb249ZGlyZWN0IiwgICAgICAiaGlAY29sbGF0aW9uPWRpcmVjdCIsCisgICAgICAgICAgICAgICJmIiwgICAgImhpX0FVQGNvbGxhdGlvbj1kaXJlY3Q7Y3VycmVuY3k9Q0hGO2NhbGVuZGFyPWJ1ZGRoaXN0IiwgICAiaGlAY29sbGF0aW9uPWRpcmVjdCIsCisgICAgICAgICAgICAgICJmIiwgICAgImhpX0FVQGNvbGxhdGlvbj1zdGFuZGFyZDtjdXJyZW5jeT1DSEY7Y2FsZW5kYXI9YnVkZGhpc3QiLCAgICJoaSIsCisgICAgICAgICAgICAgICJ0IiwgICAgImRlX0RFQGNvbGxhdGlvbj1waW55aW4iLCAgICAgICJkZSIsIC8qIGJ1ZyA0NTgyIHRlc3RzICovCisgICAgICAgICAgICAgICJmIiwgICAgImRlX0RFX0JPTk5AY29sbGF0aW9uPXBpbnlpbiIsICJkZSIsCisgICAgICAgICAgICAgICJ0IiwgICAgIm5sIiwgICAgICAgICAgICAgICAgICAgICAgICAgICJyb290IiwKKyAgICAgICAgICAgICAgInQiLCAgICAibmxfTkwiLCAgICAgICAgICAgICAgICAgICAgICAgInJvb3QiLAorICAgICAgICAgICAgICAiZiIsICAgICJubF9OTF9FRVhUIiwgICAgICAgICAgICAgICAgICAicm9vdCIsCisgICAgICAgICAgICAgICJ0IiwgICAgIm5sQGNvbGxhdGlvbj1zdHJva2UiLCAgICAgICAgICJyb290IiwKKyAgICAgICAgICAgICAgInQiLCAgICAibmxfTkxAY29sbGF0aW9uPXN0cm9rZSIsICAgICAgInJvb3QiLAorICAgICAgICAgICAgICAiZiIsICAgICJubF9OTF9FRVhUQGNvbGxhdGlvbj1zdHJva2UiLCAicm9vdCIsCSAgCisgICAgICAgICAgIH07CisKKyAgICAgICBTdHJpbmcgRl9TVFIgPSAiZiI7CisgICAgICAgU3RyaW5nIFRfU1RSID0gInQiOworICAgICAgIGJvb2xlYW4gaXNBdmFpbFtdID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgaW50IGk7CisKKyAgICAgICBsb2dsbigiVGVzdGluZyBmdW5jdGlvbmFsIGVxdWl2YWxlbnRzLi4uIik7CisgICAgICAgZm9yKGk9MDtpPHRlc3RDYXNlcy5sZW5ndGg7aSs9MykgeworICAgICAgICAgICBib29sZWFuIGV4cGVjdEF2YWlsID0gVF9TVFIuZXF1YWxzKHRlc3RDYXNlc1tpKzBdKTsKKyAgICAgICAgICAgVUxvY2FsZSBpbkxvY2FsZSA9IG5ldyBVTG9jYWxlKHRlc3RDYXNlc1tpKzFdKTsKKyAgICAgICAgICAgVUxvY2FsZSBleHBlY3RMb2NhbGUgPSBuZXcgVUxvY2FsZSh0ZXN0Q2FzZXNbaSsyXSk7CisKKyAgICAgICAgICAgbG9nbG4obmV3IEludGVnZXIoaS8zKS50b1N0cmluZygpICsgIjogIiArIG5ldyBCb29sZWFuKGV4cGVjdEF2YWlsKS50b1N0cmluZygpICsgIlx0XHQiICsKKyAgICAgICAgICAgICAgICAgICBpbkxvY2FsZS50b1N0cmluZygpICsgIlx0XHQiICsgZXhwZWN0TG9jYWxlLnRvU3RyaW5nKCkpOworCisgICAgICAgICAgIFVMb2NhbGUgZXF1aXZMb2NhbGUgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRGdW5jdGlvbmFsRXF1aXZhbGVudChJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQ09MTEFUSU9OX0JBU0VfTkFNRSxDT0xMQVRJT05fUkVTTkFNRSwKKyAgICAgICAgICAgICAgICAgICBDT0xMQVRJT05fS0VZV09SRCwgaW5Mb2NhbGUsIGlzQXZhaWwpOworICAgICAgICAgICBib29sZWFuIGdvdEF2YWlsID0gaXNBdmFpbFswXTsKKworICAgICAgICAgICBpZigoZ290QXZhaWwhPWV4cGVjdEF2YWlsKSB8fCAhZXF1aXZMb2NhbGUuZXF1YWxzKGV4cGVjdExvY2FsZSkpIHsKKyAgICAgICAgICAgICAgIGVycmxuKG5ldyBJbnRlZ2VyKGkvMykudG9TdHJpbmcoKSArICI6ICBFcnJvciwgZXhwZWN0ZWQgIEVxdWl2PSIgKyBuZXcgQm9vbGVhbihleHBlY3RBdmFpbCkudG9TdHJpbmcoKSArICJcdFx0IiArCisgICAgICAgICAgICAgICAgICAgICAgIGluTG9jYWxlLnRvU3RyaW5nKCkgKyAiXHRcdC0tPiAiICsgZXhwZWN0TG9jYWxlLnRvU3RyaW5nKCkgKyAiLCAgYnV0IGdvdCAiICsgbmV3IEJvb2xlYW4oZ290QXZhaWwpLnRvU3RyaW5nKCkgKyAiICIgKworICAgICAgICAgICAgICAgICAgICAgICBlcXVpdkxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgfQorICAgICAgIH0KKworICAgICAgIGxvZ2xuKCJUZXN0aW5nIGVycm9yIGNvbmRpdGlvbnM6Iik7CisgICAgICAgdHJ5IHsKKyAgICAgICAgICAgVUxvY2FsZSBlcXVpdkxvY2FsZSA9IElDVVJlc291cmNlQnVuZGxlLmdldEZ1bmN0aW9uYWxFcXVpdmFsZW50KElDVVJlc291cmNlQnVuZGxlLklDVV9DT0xMQVRJT05fQkFTRV9OQU1FLCAiY2FsZW5kYXIiLAorICAgICAgICAgICAgICAiY2FsZW5kYXIiLCBuZXcgVUxvY2FsZSgiYXJfRUdAY2FsZW5kYXI9aXNsYW1pYyIpLCBuZXcgYm9vbGVhblsxXSk7CisgICAgICAgICAgIGVycmxuKCJFcnI6IGV4cGVjdGVkIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiIpOworICAgICAgIH0gY2F0Y2ggKCBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gdCApIHsKKyAgICAgICAgICAgbG9nbG4oImV4cGVjdGVkIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBjYXVnaHQgKFBBU1MpOiAiICsgdC50b1N0cmluZygpKTsKKyAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdE5vcndlZ2lhbigpeworICAgICAgICB0cnl7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgIm5vX05PX05ZIik7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSByYi5nZXQoIkNvdW50cmllcyIpOworICAgICAgICAgICAgU3RyaW5nIHMxID0gc3ViLmdldFN0cmluZygiTk8iKTsKKyAgICAgICAgICAgIGlmKHMxLmVxdWFscygiTm9yZWciKSl7CisgICAgICAgICAgICAgICAgbG9nbG4oImdvdCBleHBlY3RlZCBvdXRwdXQgIik7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBlcnJsbigiZGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdCIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGVycmxuKCJDYXVnaHQgYW4gdW5leHBlY3RlZCBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RKQjQxMDIoKXsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJvb3QgPShJQ1VSZXNvdXJjZUJ1bmRsZSkgSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgInJvb3QiKTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHQgPSBudWxsOyAgICAKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICB0ID0gcm9vdC5nZXRXaXRoRmFsbGJhY2soImNhbGVuZGFyL2lzbGFtaWMtY2l2aWwvRGF0ZVRpbWVQYXR0ZXJucyIpOworICAgICAgICAgICAgICAgIGVycmxuKCJTZWNvbmQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QuIEhvdyBkaWQgaXQgZ2V0IGhlcmU/XG4iKTsKKyAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgIHQgPSByb290LmdldFdpdGhGYWxsYmFjaygiY2FsZW5kYXIvaXNsYW1pYy1jaXZpbC9lcmFzL2FiYnJldmlhdGVkLzAvbWlraW1hdXMvcGVyYSIpOworICAgICAgICAgICAgICAgIGVycmxuKCJTZWNvbmQgcmVzb3VyY2UgZG9lcyBub3QgZXhpc3QuIEhvdyBkaWQgaXQgZ2V0IGhlcmU/XG4iKTsKKyAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJHb3QgdGhlIGV4cGVjdGVkIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICB3YXJubG4oIkNvdWxkIG5vdCBsb2FkIHRoZSBsb2NhbGUgZGF0YTogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDTERSU3R5bGVBbGlhc2VzKCkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gbnVsbDsKKyAgICAgICAgU3RyaW5nW11leHBlY3RzID0gbmV3IFN0cmluZ1tdIHsgIiIsICJhNDEiLCAiYTEyIiwgImEwMyIsICJhcjQiIH07CisKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgQ0xEUiBzdHlsZSBhbGlhc2VzLi4uLi4uXG4iKTsKKworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwgInRlX0lOX1JFVklTRUQiLHRlc3RMb2FkZXIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBhbGlhcyA9IHJiLmdldCgiYSIpOworCisgICAgICAgIGZvcihpbnQgaSA9IDE7IGkgPCA1IDsgaSsrKSB7CisgICAgICAgICAgU3RyaW5nIHJlc291cmNlPSJhIitpOworICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGEgPSAoKElDVVJlc291cmNlQnVuZGxlKWFsaWFzKS5nZXRXaXRoRmFsbGJhY2socmVzb3VyY2UpOworICAgICAgICAgIHJlc3VsdCA9IGEuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgaWYocmVzdWx0LmVxdWFscyhleHBlY3RlZCkpIHsKKyAgICAgICAgICAgICAgZXJybG4oIkNMRFIgc3R5bGUgYWxpYXNlcyBmYWlsZWQgcmVzb3VyY2Ugd2l0aCBuYW1lICIrcmVzb3VyY2UrInJlc291cmNlLCBleHAgIitleHBlY3RzW2ldICsiICwgZ290ICIgKyByZXN1bHQpOyAKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKyAgICBwcml2YXRlIFN0cmluZyBnZXRMU1N0cmluZyhpbnQgc3RhdHVzKXsKKyAgICAgICAgc3dpdGNoKHN0YXR1cyl7CisgICAgICAgICAgICBjYXNlIElDVVJlc291cmNlQnVuZGxlLkZST01fRkFMTEJBQ0s6CisgICAgICAgICAgICAgICAgcmV0dXJuICJGUk9NX0ZBTExCQUNLIjsKKyAgICAgICAgICAgIGNhc2UgSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ERUZBVUxUOgorICAgICAgICAgICAgICAgIHJldHVybiAiRlJPTV9ERUZBVUxUIjsKKyAgICAgICAgICAgIGNhc2UgSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UOiAKKyAgICAgICAgICAgICAgICByZXR1cm4gIkZST01fUk9PVCI7CisgICAgICAgICAgICBjYXNlIElDVVJlc291cmNlQnVuZGxlLkZST01fTE9DQUxFOiAKKyAgICAgICAgICAgICAgICByZXR1cm4gIkZST01fTE9DQUxFIjsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuICJVTktOT1dOIjsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0TG9hZGluZ1N0YXR1cygpeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsICJ5aV9JTCIpOworICAgICAgICBpbnQgc3RhdHVzID0gYnVuZGxlLmdldExvYWRpbmdTdGF0dXMoKTsKKyAgICAgICAgaWYoc3RhdHVzICE9IElDVVJlc291cmNlQnVuZGxlLkZST01fREVGQVVMVCl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHZhbHVlIGZvciBsb2FkaW5nIHN0YXR1cy4gRXhwZWN0ZWQgIisgZ2V0TFNTdHJpbmcoSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ERUZBVUxUKSAKKyAgICAgICAgICAgICAgICAgICAgKyAiIEdvdDogIiArIGdldExTU3RyaW5nKHN0YXR1cykpOworICAgICAgICB9ICAgICAgICAKKyAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiZW9fREUiKTsKKyAgICAgICAgc3RhdHVzID0gYnVuZGxlLmdldExvYWRpbmdTdGF0dXMoKTsKKyAgICAgICAgaWYoc3RhdHVzICE9IElDVVJlc291cmNlQnVuZGxlLkZST01fRkFMTEJBQ0speworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCB2YWx1ZSBmb3IgbG9hZGluZyBzdGF0dXMuIEV4cGVjdGVkICIrIGdldExTU3RyaW5nKElDVVJlc291cmNlQnVuZGxlLkZST01fRkFMTEJBQ0spIAorICAgICAgICAgICAgICAgICAgICArICIgR290OiAiICsgZ2V0TFNTdHJpbmcoc3RhdHVzKSk7CisgICAgICAgIH0gICAgICAgIAorICAgICAgICAKKyAgICAgICAgbG9nbG4oIlRlc3QgdG8gdmVyaWZ5IGxvYWRpbmcgc3RhdHVzIG9mIGdldChTdHJpbmcpIik7CisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgInRlX0lOIik7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGNvdW50cmllcyA9IGJ1bmRsZS5nZXQoIkNvdW50cmllcyIpOworICAgICAgICBzdGF0dXMgPWNvdW50cmllcy5nZXRMb2FkaW5nU3RhdHVzKCk7CisgICAgICAgIGlmKHN0YXR1cyAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0ZBTExCQUNLKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGxvYWRpbmcgc3RhdHVzLiBFeHBlY3RlZCAiKyBnZXRMU1N0cmluZyhJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0ZBTExCQUNLKSAKKyAgICAgICAgICAgICAgICAgICAgKyAiIEdvdDogIiArIGdldExTU3RyaW5nKHN0YXR1cykpOworICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGF1eEV4ZW1wbGFyID0gYnVuZGxlLmdldCgiQXV4RXhlbXBsYXJDaGFyYWN0ZXJzIik7CisgICAgICAgIHN0YXR1cyA9IGF1eEV4ZW1wbGFyLmdldExvYWRpbmdTdGF0dXMoKTsKKyAgICAgICAgaWYoc3RhdHVzICE9IElDVVJlc291cmNlQnVuZGxlLkZST01fUk9PVCl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHZhbHVlIGZvciBsb2FkaW5nIHN0YXR1cy4gRXhwZWN0ZWQgIisgZ2V0TFNTdHJpbmcoSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UKSAKKyAgICAgICAgICAgICAgICAgICAgKyAiIEdvdDogIiArIGdldExTU3RyaW5nKHN0YXR1cykpOworICAgICAgICB9IAorICAgICAgICAqLworICAgICAgICBsb2dsbigiVGVzdCB0byB2ZXJpZnkgbG9hZGluZyBzdGF0dXMgb2YgZ2V0KGludCkiKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgbXMgPSBidW5kbGUuZ2V0KCJNZWFzdXJlbWVudFN5c3RlbSIpOworICAgICAgICBzdGF0dXMgPSBtcy5nZXRMb2FkaW5nU3RhdHVzKCk7CisgICAgICAgIGlmKHN0YXR1cyAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX1JPT1QpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCB2YWx1ZSBmb3IgbG9hZGluZyBzdGF0dXMuIEV4cGVjdGVkICIrIGdldExTU3RyaW5nKElDVVJlc291cmNlQnVuZGxlLkZST01fUk9PVCkgCisgICAgICAgICAgICAgICAgICAgICsgIiBHb3Q6ICIgKyBnZXRMU1N0cmluZyhzdGF0dXMpKTsKKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICBsb2dsbigiVGVzdCB0byB2ZXJpZnkgbG9hZGluZyBzdGF0dXMgb2YgZ2V0d2l0aEZhbGxiYWNrIik7CisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS9pYm0vaWN1L2Rldi9kYXRhL3Rlc3RkYXRhIiwgInNoX1lVIix0ZXN0TG9hZGVyKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdGVtcCA9IGJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soImEvYTIiKTsKKyAgICAgICAgc3RhdHVzID0gdGVtcC5nZXRMb2FkaW5nU3RhdHVzKCk7CisgICAgICAgIGlmKHN0YXR1cyAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0xPQ0FMRSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHZhbHVlIGZvciBsb2FkaW5nIHN0YXR1cy4gRXhwZWN0ZWQgIisgZ2V0TFNTdHJpbmcoSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9MT0NBTEUpIAorICAgICAgICAgICAgICAgICAgICArICIgR290OiAiICsgZ2V0TFNTdHJpbmcoc3RhdHVzKSk7CisgICAgICAgIH0KKyAgICAgICAgdGVtcCA9IGJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soImEvYTEiKTsKKyAgICAgICAgc3RhdHVzID0gdGVtcC5nZXRMb2FkaW5nU3RhdHVzKCk7CisgICAgICAgIGlmKHN0YXR1cyAhPSBJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0ZBTExCQUNLKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGxvYWRpbmcgc3RhdHVzLiBFeHBlY3RlZCAiKyBnZXRMU1N0cmluZyhJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0ZBTExCQUNLKSAKKyAgICAgICAgICAgICAgICAgICAgKyAiIEdvdDogIiArIGdldExTU3RyaW5nKHN0YXR1cykpOworICAgICAgICB9CisgICAgICAgIHRlbXAgPSBidW5kbGUuZ2V0V2l0aEZhbGxiYWNrKCJhL2E0Iik7CisgICAgICAgIHN0YXR1cyA9IHRlbXAuZ2V0TG9hZGluZ1N0YXR1cygpOworICAgICAgICBpZihzdGF0dXMgIT0gSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGxvYWRpbmcgc3RhdHVzLiBFeHBlY3RlZCAiKyBnZXRMU1N0cmluZyhJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX1JPT1QpIAorICAgICAgICAgICAgICAgICAgICArICIgR290OiAiICsgZ2V0TFNTdHJpbmcoc3RhdHVzKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCl7CisgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBidW5kbGU7CisgICAgICAgIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICAgICAgaWYgKGJ1bmRsZSA9PSBudWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoU3RyaW5nIGJhc2VOYW1lKSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBidW5kbGUgPSBudWxsOworICAgICAgICBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICBpZiAoYnVuZGxlID09IG51bGwpeworICAgICAgICAgICAgZXJybG4oIlVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShVTG9jYWxlKSBmYWlsZWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAKKyAgICAgICAgaWYgKG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oImNvdmVyYWdlIikgPT0gbnVsbCl7CisgICAgICAgICAgICBlcnJsbigiQ3JlYXRlIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiBlcnJvciIpOworICAgICAgICB9CisgICAgICAgIGNsYXNzIFN0dWIgZXh0ZW5kcyBVUmVzb3VyY2VCdW5kbGV7CisgICAgICAgICAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkge3JldHVybiBVTG9jYWxlLlJPT1Q7fQorICAgICAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRMb2NhbGVJRCgpIHtyZXR1cm4gbnVsbDt9CisgICAgICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldEJhc2VOYW1lKCkge3JldHVybiBudWxsO30KKyAgICAgICAgICAgIHByb3RlY3RlZCBVUmVzb3VyY2VCdW5kbGUgZ2V0UGFyZW50KCkge3JldHVybiBudWxsO30KKyAgICAgICAgICAgIHByb3RlY3RlZCB2b2lkIHNldExvYWRpbmdTdGF0dXMoaW50IG5ld1N0YXR1cykge30KKyAgICAgICAgICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBnZXRLZXlzKCkge3JldHVybiBudWxsO30KKyAgICAgICAgICAgIHByb3RlY3RlZCBPYmplY3QgaGFuZGxlR2V0T2JqZWN0KFN0cmluZyBrZXkpIHtyZXR1cm4gbnVsbDt9CisgICAgICAgIH0KKyAgICAgICAgU3R1YiBzdHViID0gbmV3IFN0dWIoKTsKKyAgICAgICAgCisgICAgICAgIGlmICghc3R1Yi5nZXRMb2NhbGUoKS5lcXVhbHMoVUxvY2FsZS5ST09ULnRvTG9jYWxlKCkpKXsKKyAgICAgICAgICAgIGVycmxuKCJVUmVzb3VyY2VCdW5kbGUuZ2V0TG9jbGFlKExvY2FsZSkgc2hvdWxkIGRlbGVnYXRlIHRvIChVTG9jYWxlKSIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RKYXZhVUxvY2FsZUJ1bmRsZUxvYWRpbmcoKXsKKyAgICAgICAgU3RyaW5nIGJhc2VOYW1lPSJjb20uaWJtLmljdS5kZXYuZGF0YS5yZXNvdXJjZXMuVGVzdERhdGFFbGVtZW50cyI7CisgICAgICAgIFN0cmluZyBsb2NOYW1lID0gImVuX0xhdG5fVVMiOworICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NOYW1lLCB0ZXN0TG9hZGVyKTsKKyAgICAgICAgU3RyaW5nIGZyb21Sb290ID0gYnVuZGxlLmdldFN0cmluZygiZnJvbV9yb290Iik7CisgICAgICAgIGlmKCFmcm9tUm9vdC5lcXVhbHMoIlRoaXMgZGF0YSBjb21lcyBmcm9tIHJvb3QiKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHN0cmluZyBmb3IgZnJvbV9yb290Iik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGZyb21FbiA9IGJ1bmRsZS5nZXRTdHJpbmcoImZyb21fZW4iKTsKKyAgICAgICAgaWYoIWZyb21Fbi5lcXVhbHMoIlRoaXMgZGF0YSBjb21lcyBmcm9tIGVuIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBzdHJpbmcgZm9yIGZyb21fZW4iKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZnJvbUVuTGF0biA9IGJ1bmRsZS5nZXRTdHJpbmcoImZyb21fZW5fTGF0biIpOworICAgICAgICBpZighZnJvbUVuTGF0bi5lcXVhbHMoIlRoaXMgZGF0YSBjb21lcyBmcm9tIGVuX0xhdG4iKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIHN0cmluZyBmb3IgZnJvbV9lbl9MYXRuIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIGZyb21FbkxhdG5VcyA9IGJ1bmRsZS5nZXRTdHJpbmcoImZyb21fZW5fTGF0bl9VUyIpOworICAgICAgICBpZighZnJvbUVuTGF0blVzLmVxdWFscygiVGhpcyBkYXRhIGNvbWVzIGZyb20gZW5fTGF0bl9VUyIpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgc3RyaW5nIGZvciBmcm9tX2VuX0xhdG5fVVMiKTsKKyAgICAgICAgfQorICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYnVuZGxlMSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbmV3IFVMb2NhbGUobG9jTmFtZSksIHRlc3RMb2FkZXIpOworICAgICAgICBpZighYnVuZGxlMS5lcXVhbHMoYnVuZGxlKSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIGJ1bmRsZSBmb3IgIitiYXNlTmFtZSArIi4iK2xvY05hbWUpOworICAgICAgICB9CisgICAgICAgIGlmKGJ1bmRsZTEhPWJ1bmRsZSl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBsb2FkIHRoZSBidW5kbGUgZnJvbSBjYWNoZSIpOworICAgICAgICB9CisgICAgICAgIC8vIG5vbi1leGlzdGVudCBidW5kbGUgLi4gc2hvdWxkIHJldHVybiBkZWZhdWx0CisgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBkZWZhdWx0QnVuZGxlID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCAiaGlfSU4iLCB0ZXN0TG9hZGVyKTsKKyAgICAgICAgVUxvY2FsZSBkZWZhdWx0TG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIGlmKCFkZWZhdWx0QnVuZGxlLmdldFVMb2NhbGUoKS5lcXVhbHMoZGVmYXVsdExvY2FsZSkpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBkZWZhdWx0IGJ1bmRsZSBmb3Igbm9uLWV4aXN0ZW50IGJ1bmRsZSIpOworICAgICAgICB9CisgICAgICAgIC8vIG5vbi1leGlzdGVudCBidW5kbGUsIG5vbi1leGlzdGVudCBkZWZhdWx0IGxvY2FsZQorICAgICAgICAvLyBzbyByZXR1cm4gdGhlIHJvb3QgYnVuZGxlLgorICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoVUxvY2FsZS5DQU5BREFfRlJFTkNIKTsKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIHJvb3QgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsICJoaV9JTiIsIHRlc3RMb2FkZXIpOworICAgICAgICBpZighcm9vdC5nZXRVTG9jYWxlKCkudG9TdHJpbmcoKS5lcXVhbHMoIiIpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgcm9vdCBidW5kbGUgZm9yIG5vbi1leGlzdGVudCBkZWZhdWx0IGJ1bmRsZSBmb3Igbm9uLWV4aXN0ZW50IGJ1bmRsZSIpOworICAgICAgICB9ICAgICAgICAKKyAgICAgICAgLy9yZXNldCB0aGUgZGVmYXVsdAorICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoZGVmYXVsdExvY2FsZSk7CisgICAgICAgIEVudW1lcmF0aW9uIGtleXMgPSBidW5kbGUuZ2V0S2V5cygpOworICAgICAgICBpbnQgaT0wOworICAgICAgICB3aGlsZShrZXlzLmhhc01vcmVFbGVtZW50cygpKXsKKyAgICAgICAgICAgIGxvZ2xuKCJrZXk6ICIrIGtleXMubmV4dEVsZW1lbnQoKSk7CisgICAgICAgICAgICBpKys7CisgICAgICAgIH0KKyAgICAgICAgaWYoaSE9NCl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG51bWJlciBvZiBrZXlzOiBnb3QgIiArIGkgKyAiLCBleHBlY3RlZCA0Iik7CisgICAgICAgIH0KKyAgICAgICAgVVJlc291cmNlQnVuZGxlIGJ1bmRsZTQgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsImZyX0xhdG5fRlIiLCB0ZXN0TG9hZGVyKTsKKyAgICAgICAgaWYoYnVuZGxlPT1udWxsKXsKKyAgICAgICAgICAgIGVycmxuKCJDb3VsZCBub3QgbG9hZCBidW5kbGUgZnJfTGF0bl9GUiIpOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RBbGlhc0ZhbGxiYWNrKCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFVMb2NhbGUgbG9jID0gbmV3IFVMb2NhbGUoImVuX1VTIik7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2MpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYjEgPSAoSUNVUmVzb3VyY2VCdW5kbGUpYi5nZXRXaXRoRmFsbGJhY2soImNhbGVuZGFyL2hlYnJldy9tb250aE5hbWVzL2Zvcm1hdC9hYmJyZXZpYXRlZCIpOworICAgICAgICAgICAgaWYoYjEhPW51bGwpeworICAgICAgICAgICAgICAgIGxvZ2xuKCJsb2FkZWQgZGF0YSBmb3IgYWJicmV2aWF0ZWQgbW9udGggbmFtZXM6ICIrIGIxLmdldEtleSgpKTsgCisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgd2FybmxuKCJGYWlsZWQgdG8gbG9hZCBkYXRhIGZvciBhYmJyZXZpYXRlZCBtb250aCBuYW1lcyIpOworICAgICAgICB9CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVU2VydmljZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYThiZTMwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvSUNVU2VydmljZVRlc3QuamF2YQpAQCAtMCwwICsxLDEwMTUgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VOb3RpZmllcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJXTG9jazsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2UuRmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2UuS2V5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5TZXJ2aWNlTGlzdGVuZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLlNpbXBsZUZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworLy9pbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2UuTG9jYWxlS2V5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZS5Mb2NhbGVLZXlGYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZS5JQ1VSZXNvdXJjZUJ1bmRsZUZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuRXZlbnRMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXAuRW50cnk7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuU29ydGVkTWFwOworCitwdWJsaWMgY2xhc3MgSUNVU2VydmljZVRlc3QgZXh0ZW5kcyBUZXN0Rm13aworeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgIElDVVNlcnZpY2VUZXN0IHRlc3QgPSBuZXcgSUNVU2VydmljZVRlc3QoKTsKKyAgICB0ZXN0LnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBscm1zZyhTdHJpbmcgbWVzc2FnZSwgT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgIHJldHVybiBtZXNzYWdlICsgIiBsaHM6ICIgKyBsaHMgKyAiIHJoczogIiArIHJoczsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb25maXJtQm9vbGVhbihTdHJpbmcgbWVzc2FnZSwgYm9vbGVhbiB2YWwpIHsKKyAgICBtc2cobWVzc2FnZSwgdmFsID8gTE9HIDogRVJSLCAhdmFsLCB0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb25maXJtRXF1YWwoU3RyaW5nIG1lc3NhZ2UsIE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgbXNnKGxybXNnKG1lc3NhZ2UsIGxocywgcmhzKSwgKGxocyA9PSBudWxsID8gcmhzID09IG51bGwgOiBsaHMuZXF1YWxzKHJocykpID8gTE9HIDogRVJSLCB0cnVlLCB0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb25maXJtSWRlbnRpY2FsKFN0cmluZyBtZXNzYWdlLCBPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgbXNnKGxybXNnKG1lc3NhZ2UsIGxocywgcmhzKSwgbGhzID09IHJocyA/IExPRyA6IEVSUiwgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY29uZmlybUlkZW50aWNhbChTdHJpbmcgbWVzc2FnZSwgaW50IGxocywgaW50IHJocykgeworICAgIG1zZyhtZXNzYWdlICsgIiBsaHM6ICIgKyBsaHMgKyAiIHJoczogIiArIHJocywgbGhzID09IHJocyA/IExPRyA6IEVSUiwgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUsIENvbXBhcmF0b3IsIFN0cmluZykgdGhhdAorICAgICAqIHVzZXMgdGhlIGN1cnJlbnQgZGVmYXVsdCBVTG9jYWxlIGFzIHRoZSBsb2NhbGUsIHRoZSBkZWZhdWx0IGNvbGxhdG9yIGZvcgorICAgICAqIHRoZSBsb2NhbGUgYXMgdGhlIGNvbXBhcmF0b3IgdG8gc29ydCB0aGUgZGlzcGxheSBuYW1lcywgYW5kIG51bGwgZm9yCisgICAgICogdGhlIG1hdGNoSUQuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoSUNVU2VydmljZSBzZXJ2aWNlKSB7CisgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIENvbGxhdG9yIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIHJldHVybiBzZXJ2aWNlLmdldERpc3BsYXlOYW1lcyhsb2NhbGUsIGNvbCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUsIENvbXBhcmF0b3IsIFN0cmluZykgdGhhdAorICAgICAqIHVzZXMgdGhlIGRlZmF1bHQgY29sbGF0b3IgZm9yIHRoZSBsb2NhbGUgYXMgdGhlIGNvbXBhcmF0b3IgdG8KKyAgICAgKiBzb3J0IHRoZSBkaXNwbGF5IG5hbWVzLCBhbmQgbnVsbCBmb3IgdGhlIG1hdGNoSUQuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoSUNVU2VydmljZSBzZXJ2aWNlLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICByZXR1cm4gc2VydmljZS5nZXREaXNwbGF5TmFtZXMobG9jYWxlLCBjb2wsIG51bGwpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBvZiBnZXREaXNwbGF5TmFtZXMoVUxvY2FsZSwgQ29tcGFyYXRvciwgU3RyaW5nKSB0aGF0CisgICAgICogdXNlcyB0aGUgZGVmYXVsdCBjb2xsYXRvciBmb3IgdGhlIGxvY2FsZSBhcyB0aGUgY29tcGFyYXRvciB0bworICAgICAqIHNvcnQgdGhlIGRpc3BsYXkgbmFtZXMuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoSUNVU2VydmljZSBzZXJ2aWNlLCBVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIG1hdGNoSUQpIHsKKyAgICAgICAgQ29sbGF0b3IgY29sID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0RGlzcGxheU5hbWVzKGxvY2FsZSwgY29sLCBtYXRjaElEKTsKKyAgICB9CisKKyAgICAvLyB1c2UgbG9jYWxlIGtleXMKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgVGVzdFNlcnZpY2UgZXh0ZW5kcyBJQ1VTZXJ2aWNlIHsKKyAgICAgICAgcHVibGljIFRlc3RTZXJ2aWNlKCkgeworICAgICAgICAgICAgc3VwZXIoIlRlc3QgU2VydmljZSIpOworICAgICAgICB9CisKKyAgICBwdWJsaWMgS2V5IGNyZWF0ZUtleShTdHJpbmcgaWQpIHsKKyAgICAgICAgcmV0dXJuIExvY2FsZUtleS5jcmVhdGVXaXRoQ2Fub25pY2FsRmFsbGJhY2soaWQsIG51bGwpOyAvLyBubyBmYWxsYmFjayBsb2NhbGUKKyAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEFQSSgpIHsKKyAgICAvLyBjcmVhdGUgYSBzZXJ2aWNlIHVzaW5nIGxvY2FsZSBrZXlzLAorICAgIElDVVNlcnZpY2Ugc2VydmljZSA9IG5ldyBUZXN0U2VydmljZSgpOworCisgICAgICAgIGxvZ2xuKCJzZXJ2aWNlIG5hbWU6IiArIHNlcnZpY2UuZ2V0TmFtZSgpKTsKKworICAgIC8vIHJlZ2lzdGVyIGFuIG9iamVjdCB3aXRoIG9uZSBsb2NhbGUsCisgICAgLy8gc2VhcmNoIGZvciBhbiBvYmplY3Qgd2l0aCBhIG1vcmUgc3BlY2lmaWMgbG9jYWxlCisgICAgLy8gc2hvdWxkIHJldHVybiB0aGUgb3JpZ2luYWwgb2JqZWN0CisgICAgSW50ZWdlciBzaW5nbGV0b24wID0gbmV3IEludGVnZXIoMCk7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b24wLCAiZW5fVVMiKTsKKyAgICBPYmplY3QgcmVzdWx0ID0gc2VydmljZS5nZXQoImVuX1VTX0ZPTyIpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjEpIGVuX1VTX0ZPTyAtPiBlbl9VUyIsIHJlc3VsdCwgc2luZ2xldG9uMCk7CisKKyAgICAvLyByZWdpc3RlciBhIG5ldyBvYmplY3Qgd2l0aCB0aGUgbW9yZSBzcGVjaWZpYyBsb2NhbGUKKyAgICAvLyBzZWFyY2ggZm9yIGFuIG9iamVjdCB3aXRoIHRoYXQgbG9jYWxlCisgICAgLy8gc2hvdWxkIHJldHVybiB0aGUgbmV3IG9iamVjdAorICAgIEludGVnZXIgc2luZ2xldG9uMSA9IG5ldyBJbnRlZ2VyKDEpOworICAgIHNlcnZpY2UucmVnaXN0ZXJPYmplY3Qoc2luZ2xldG9uMSwgImVuX1VTX0ZPTyIpOworICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19GT08iKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCIyKSBlbl9VU19GT08gLT4gZW5fVVNfRk9PIiwgcmVzdWx0LCBzaW5nbGV0b24xKTsKKworICAgIC8vIHNlYXJjaCBmb3IgYW4gb2JqZWN0IHRoYXQgZmFsbHMgYmFjayB0byB0aGUgZmlyc3QgcmVnaXN0ZXJlZCBsb2NhbGUKKyAgICByZXN1bHQgPSBzZXJ2aWNlLmdldCgiZW5fVVNfQkFSIik7CisgICAgY29uZmlybUlkZW50aWNhbCgiMykgZW5fVVNfQkFSIC0+IGVuX1VTIiwgcmVzdWx0LCBzaW5nbGV0b24wKTsKKworICAgIC8vIGdldCBhIGxpc3Qgb2YgdGhlIGZhY3Rvcmllcywgc2hvdWxkIGJlIHR3bworICAgIExpc3QgZmFjdG9yaWVzID0gc2VydmljZS5mYWN0b3JpZXMoKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCI0KSBmYWN0b3J5IHNpemUiLCBmYWN0b3JpZXMuc2l6ZSgpLCAyKTsKKworICAgIC8vIHJlZ2lzdGVyIGEgbmV3IG9iamVjdCB3aXRoIHlldCBhbm90aGVyIGxvY2FsZQorICAgIC8vIG9yaWdpbmFsIGZhY3RvcnkgbGlzdCBpcyB1bmNoYW5nZWQKKyAgICBJbnRlZ2VyIHNpbmdsZXRvbjIgPSBuZXcgSW50ZWdlcigyKTsKKyAgICBzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KHNpbmdsZXRvbjIsICJlbiIpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjUpIGZhY3Rvcnkgc2l6ZSIsIGZhY3Rvcmllcy5zaXplKCksIDIpOworCisgICAgLy8gc2VhcmNoIGZvciBhbiBvYmplY3Qgd2l0aCB0aGUgbmV3IGxvY2FsZQorICAgIC8vIHN0YWNrIG9mIGZhY3RvcmllcyBpcyBub3cgZW4sIGVuX1VTX0ZPTywgZW5fVVMKKyAgICAvLyBzZWFyY2ggZm9yIGVuX1VTIHNob3VsZCBzdGlsbCBmaW5kIGVuX1VTIG9iamVjdAorICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19CQVIiKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCI2KSBlbl9VU19CQVIgLT4gZW5fVVMiLCByZXN1bHQsIHNpbmdsZXRvbjApOworCisgICAgLy8gcmVnaXN0ZXIgYSBuZXcgb2JqZWN0IHdpdGggYW4gb2xkIGlkLCBzaG91bGQgaGlkZSBlYXJsaWVyIGZhY3RvcnkgdXNpbmcgdGhpcyBpZCwgYnV0IGxlYXZlIGl0IHRoZXJlCisgICAgSW50ZWdlciBzaW5nbGV0b24zID0gbmV3IEludGVnZXIoMyk7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b24zLCAiZW5fVVMiKTsKKyAgICBmYWN0b3JpZXMgPSBzZXJ2aWNlLmZhY3RvcmllcygpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjkpIGZhY3Rvcnkgc2l6ZSIsIGZhY3Rvcmllcy5zaXplKCksIDQpOworCisgICAgLy8gc2hvdWxkIGdldCBkYXRhIGZyb20gdGhhdCBuZXcgZmFjdG9yeQorICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19CQVIiKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCIxMCkgZW5fVVNfQkFSIC0+ICgzKSIsIHJlc3VsdCwgc2luZ2xldG9uMyk7CisKKyAgICAvLyByZW1vdmUgbmV3IGZhY3RvcnkKKyAgICAvLyBzaG91bGQgaGF2ZSBmZXdlciBmYWN0b3JpZXMgYWdhaW4KKyAgICBzZXJ2aWNlLnVucmVnaXN0ZXJGYWN0b3J5KChGYWN0b3J5KWZhY3Rvcmllcy5nZXQoMCkpOworICAgIGZhY3RvcmllcyA9IHNlcnZpY2UuZmFjdG9yaWVzKCk7CisgICAgY29uZmlybUlkZW50aWNhbCgiMTEpIGZhY3Rvcnkgc2l6ZSIsIGZhY3Rvcmllcy5zaXplKCksIDMpOworCisgICAgLy8gc2hvdWxkIGdldCBvcmlnaW5hbCBkYXRhIGFnYWluIGFmdGVyIHJlbW92ZSBmYWN0b3J5CisgICAgcmVzdWx0ID0gc2VydmljZS5nZXQoImVuX1VTX0JBUiIpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjEyKSBlbl9VU19CQVIgLT4gMCIsIHJlc3VsdCwgc2luZ2xldG9uMCk7CisKKyAgICAvLyBzaG91bGRuJ3QgZmluZCB1bnJlZ2lzdGVyZWQgaWRzCisgICAgcmVzdWx0ID0gc2VydmljZS5nZXQoImZvbyIpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjEzKSBmb28gLT4gbnVsbCIsIHJlc3VsdCwgbnVsbCk7CisKKyAgICAvLyBzaG91bGQgZmluZCBub24tY2Fub25pY2FsIHN0cmluZ3MKKyAgICBTdHJpbmdbXSByZXN1bHRJRCA9IG5ldyBTdHJpbmdbMV07CisgICAgcmVzdWx0ID0gc2VydmljZS5nZXQoIkVOX3VzX2ZPbyIsIHJlc3VsdElEKTsKKyAgICBjb25maXJtRXF1YWwoIjE0KSBmaW5kIG5vbi1jYW5vbmljYWwiLCByZXN1bHRJRFswXSwgImVuX1VTX0ZPTyIpOworCisgICAgLy8gc2hvdWxkIGJlIGFibGUgdG8gcmVnaXN0ZXIgbm9uLWNhbm9uaWNhbCBzdHJpbmdzIGFuZCBnZXQgdGhlbSBjYW5vbmljYWxpemVkCisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b24zLCAiZU5fY2FfZFVkZSIpOworICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJFbl9DYV9EdURlIiwgcmVzdWx0SUQpOworICAgIGNvbmZpcm1FcXVhbCgiMTUpIHJlZ2lzdGVyIG5vbi1jYW5vbmljYWwiLCByZXN1bHRJRFswXSwgImVuX0NBX0RVREUiKTsKKworICAgIC8vIHNob3VsZCBiZSBhYmxlIHRvIHJlZ2lzdGVyIGludmlzaWJsZSBmYWN0b3JpZXMsIHRoZXNlIHdpbGwgbm90CisgICAgLy8gYmUgdmlzaWJsZSBieSBkZWZhdWx0LCBidXQgaWYgeW91IGtub3cgdGhlIHNlY3JldCBwYXNzd29yZCB5b3UKKyAgICAvLyBjYW4gc3RpbGwgYWNjZXNzIHRoZXNlIHNlcnZpY2VzLi4uCisgICAgSW50ZWdlciBzaW5nbGV0b240ID0gbmV3IEludGVnZXIoNCk7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChzaW5nbGV0b240LCAiZW5fVVNfQkFSIiwgZmFsc2UpOworICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VU19CQVIiKTsKKyAgICBjb25maXJtSWRlbnRpY2FsKCIxNykgZ2V0IGludmlzaWJsZSIsIHJlc3VsdCwgc2luZ2xldG9uNCk7CisKKyAgICAvLyBzaG91bGQgbm90IGJlIGFibGUgdG8gbG9jYXRlIGludmlzaWJsZSBzZXJ2aWNlcworICAgIFNldCBpZHMgPSBzZXJ2aWNlLmdldFZpc2libGVJRHMoKTsKKyAgICBjb25maXJtQm9vbGVhbigiMTgpIGZpbmQgaW52aXNpYmxlIiwgIWlkcy5jb250YWlucygiZW5fVVNfQkFSIikpOworCisgICAgc2VydmljZS5yZXNldCgpOworICAgIC8vIGFuIGFub255bW91cyBmYWN0b3J5IHRoYW4gaGFuZGxlcyBhbGwgaWRzCisgICAgeworICAgICAgICBGYWN0b3J5IGZhY3RvcnkgPSBuZXcgRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKEtleSBrZXksIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBVTG9jYWxlKGtleS5jdXJyZW50SUQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgcHVibGljIHZvaWQgdXBkYXRlVmlzaWJsZUlEcyhNYXAgcmVzdWx0KSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorCisgICAgICAgICAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkLCBVTG9jYWxlIGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgfTsKKyAgICAgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkoZmFjdG9yeSk7CisKKyAgICAgICAgLy8gYW5vbnltb3VzIGZhY3Rvcnkgd2lsbCBzdGlsbCBoYW5kbGUgdGhlIGlkCisgICAgICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KFVMb2NhbGUuVVMudG9TdHJpbmcoKSk7CisgICAgICAgIGNvbmZpcm1FcXVhbCgiMjEpIGxvY2FsZSIsIHJlc3VsdCwgVUxvY2FsZS5VUyk7CisKKyAgICAgICAgLy8gc3RpbGwgbm9ybWFsaXplcyBpZAorICAgICAgICByZXN1bHQgPSBzZXJ2aWNlLmdldCgiRU5fVVNfQkFSIik7CisgICAgICAgIGNvbmZpcm1FcXVhbCgiMjIpIGxvY2FsZSIsIHJlc3VsdCwgbmV3IFVMb2NhbGUoImVuX1VTX0JBUiIpKTsKKworICAgICAgICAvLyB3ZSBjYW4gb3ZlcnJpZGUgZm9yIHBhcnRpY3VsYXIgaWRzCisgICAgICAgIHNlcnZpY2UucmVnaXN0ZXJPYmplY3Qoc2luZ2xldG9uMywgImVuX1VTX0JBUiIpOworICAgICAgICByZXN1bHQgPSBzZXJ2aWNlLmdldCgiZW5fVVNfQkFSIik7CisgICAgICAgIGNvbmZpcm1JZGVudGljYWwoIjIzKSBvdmVycmlkZSBzdXBlciIsIHJlc3VsdCwgc2luZ2xldG9uMyk7CisKKyAgICB9CisKKyAgICAvLyBlbXB0eSBzZXJ2aWNlIHNob3VsZCBub3QgcmVjb2duaXplIGFueXRoaW5nCisgICAgc2VydmljZS5yZXNldCgpOworICAgIHJlc3VsdCA9IHNlcnZpY2UuZ2V0KCJlbl9VUyIpOworICAgIGNvbmZpcm1JZGVudGljYWwoIjI0KSBlbXB0eSIsIHJlc3VsdCwgbnVsbCk7CisKKyAgICAvLyBjcmVhdGUgYSBjdXN0b20gbXVsdGlwbGUga2V5IGZhY3RvcnkKKyAgICB7CisgICAgICAgIFN0cmluZ1tdIHhpZHMgPSB7ICJlbl9VU19WQUxMRVlfR0lSTCIsCisgICAgICAgICAgICAgICAgICAiZW5fVVNfVkFMTEVZX0JPWSIsCisgICAgICAgICAgICAgICAgICAiZW5fVVNfU1VSRkVSX0dBTCIsCisgICAgICAgICAgICAgICAgICAiZW5fVVNfU1VSRkVSX0RVREUiCisgICAgICAgIH07CisgICAgICAgIHNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KG5ldyBUZXN0TG9jYWxlS2V5RmFjdG9yeSh4aWRzLCAiTGF0ZXIiKSk7CisgICAgfQorCisgICAgLy8gaXRlcmF0ZSBvdmVyIHRoZSB2aXN1YWwgaWRzIHJldHVybmVkIGJ5IHRoZSBtdWx0aXBsZSBmYWN0b3J5CisgICAgeworICAgICAgICBTZXQgdmlkcyA9IHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygpOworICAgICAgICBJdGVyYXRvciBpdGVyID0gdmlkcy5pdGVyYXRvcigpOworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOworICAgICAgICBsb2dsbigiICAiICsgaWQgKyAiIC0tPiAiICsgc2VydmljZS5nZXQoaWQpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBmb3VyIHZpc2libGUgaWRzCisgICAgICAgIGNvbmZpcm1JZGVudGljYWwoIjI1KSB2aXNpYmxlIGlkcyIsIGNvdW50LCA0KTsKKyAgICB9CisKKyAgICAvLyBpdGVyYXRlIG92ZXIgdGhlIGRpc3BsYXkgbmFtZXMKKyAgICB7CisgICAgICAgIE1hcCBkaWRzID0gZ2V0RGlzcGxheU5hbWVzKHNlcnZpY2UsIFVMb2NhbGUuR0VSTUFOWSk7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBkaWRzLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICsrY291bnQ7CisgICAgICAgIEVudHJ5IGUgPSAoRW50cnkpaXRlci5uZXh0KCk7CisgICAgICAgIGxvZ2xuKCIgICIgKyBlLmdldEtleSgpICsgIiAtLSA+ICIgKyBlLmdldFZhbHVlKCkpOworICAgICAgICB9CisgICAgICAgIC8vIGZvdXIgZGlzcGxheSBuYW1lcywgaW4gZ2VybWFuCisgICAgICAgIGNvbmZpcm1JZGVudGljYWwoIjI2KSBkaXNwbGF5IG5hbWVzIiwgY291bnQsIDQpOworICAgIH0KKworICAgIC8vIG5vIHZhbGlkIGRpc3BsYXkgbmFtZQorICAgIGNvbmZpcm1JZGVudGljYWwoIjI3KSBnZXQgZGlzcGxheSBuYW1lIiwgc2VydmljZS5nZXREaXNwbGF5TmFtZSgiZW5fVVNfVkFMTEVZX0dFRUsiKSwgbnVsbCk7CisKKyAgICB7CisgICAgICAgIFN0cmluZyBuYW1lID0gc2VydmljZS5nZXREaXNwbGF5TmFtZSgiZW5fVVNfU1VSRkVSX0RVREUiLCBVTG9jYWxlLlVTKTsKKyAgICAgICAgY29uZmlybUVxdWFsKCIyOCkgZ2V0IGRpc3BsYXkgbmFtZSIsIG5hbWUsICJFbmdsaXNoIChVbml0ZWQgU3RhdGVzLCBTVVJGRVJfRFVERSkiKTsKKyAgICB9CisKKyAgICAvLyByZWdpc3RlciBhbm90aGVyIG11bHRpcGxlIGZhY3RvcnkKKyAgICB7CisgICAgICAgIFN0cmluZ1tdIHhpZHMgPSB7CisgICAgICAgICJlbl9VU19TVVJGRVIiLCAiZW5fVVNfU1VSRkVSX0dBTCIsICJlbl9VU19TSUxJQ09OIiwgImVuX1VTX1NJTElDT05fR0VFSyIKKyAgICAgICAgfTsKKyAgICAgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkobmV3IFRlc3RMb2NhbGVLZXlGYWN0b3J5KHhpZHMsICJSYWQgZHVkZSIpKTsKKyAgICB9CisKKyAgICAvLyB0aGlzIHRpbWUsIHdlIGhhdmUgc2V2ZW4gZGlzcGxheSBuYW1lcworICAgICAgICAvLyBSYWQgZHVkZSdzIHN1cmZlciBnYWwgJ3JlcGxhY2VzJyBsYXRlcidzIHN1cmZlciBnYWwKKyAgICB7CisgICAgICAgIE1hcCBkaWRzID0gZ2V0RGlzcGxheU5hbWVzKHNlcnZpY2UpOworICAgICAgICBJdGVyYXRvciBpdGVyID0gZGlkcy5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICArK2NvdW50OworICAgICAgICBFbnRyeSBlID0gKEVudHJ5KWl0ZXIubmV4dCgpOworICAgICAgICBsb2dsbigiICAiICsgZS5nZXRLZXkoKSArICIgLS0+ICIgKyBlLmdldFZhbHVlKCkpOworICAgICAgICB9CisgICAgICAgIC8vIHNldmVuIGRpc3BsYXkgbmFtZXMsIGluIHNwYW5pc2gKKyAgICAgICAgY29uZmlybUlkZW50aWNhbCgiMjkpIGRpc3BsYXkgbmFtZXMiLCBjb3VudCwgNyk7CisgICAgfQorCisgICAgLy8gd2Ugc2hvdWxkIGdldCB0aGUgZGlzcGxheSBuYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFjdHVhbCBpZAorICAgIC8vIHJldHVybmVkIGJ5IHRoZSBpZCB3ZSB1c2VkLgorICAgIHsKKyAgICAgICAgU3RyaW5nW10gYWN0dWFsSUQgPSBuZXcgU3RyaW5nWzFdOworICAgICAgICBTdHJpbmcgaWQgPSAiZW5fdXNfc3VyZmVyX2dhbCI7CisgICAgICAgIFN0cmluZyBnYWwgPSAoU3RyaW5nKXNlcnZpY2UuZ2V0KGlkLCBhY3R1YWxJRCk7CisgICAgICAgIGlmIChnYWwgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxvZ2xuKCJhY3R1YWwgaWQ6ICIgKyBhY3R1YWxJRFswXSk7CisgICAgICAgIFN0cmluZyBkaXNwbGF5TmFtZSA9IHNlcnZpY2UuZ2V0RGlzcGxheU5hbWUoYWN0dWFsSURbMF0sIFVMb2NhbGUuVVMpOworICAgICAgICBsb2dsbigiZm91bmQgYWN0dWFsOiAiICsgZ2FsICsgIiB3aXRoIGRpc3BsYXkgbmFtZTogIiArIGRpc3BsYXlOYW1lKTsKKyAgICAgICAgY29uZmlybUJvb2xlYW4oIjMwKSBmb3VuZCBkaXNwbGF5IG5hbWUgZm9yIGFjdHVhbCIsIGRpc3BsYXlOYW1lICE9IG51bGwpOworCisgICAgICAgIGRpc3BsYXlOYW1lID0gc2VydmljZS5nZXREaXNwbGF5TmFtZShpZCwgVUxvY2FsZS5VUyk7CisgICAgICAgIGxvZ2xuKCJmb3VuZCBxdWVyeTogIiArIGdhbCArICIgd2l0aCBkaXNwbGF5IG5hbWU6ICIgKyBkaXNwbGF5TmFtZSk7CisgICAgICAgIC8vIHRoaXMgaXMgbm8gbG9uZ2VyIGEgYnVnLCB3ZSB3YW50IHRvIHJldHVybiBkaXNwbGF5IG5hbWVzIGZvciBhbnl0aGluZworICAgICAgICAvLyB0aGF0IGEgZmFjdG9yeSBoYW5kbGVzLiAgc2luY2Ugd2UgaGFuZGxlIGl0LCB3ZSBzaG91bGQgcmV0dXJuIGEgZGlzcGxheQorICAgICAgICAvLyBuYW1lLiAgc2VlIGpiMzU0OQorICAgICAgICAvLyBjb25maXJtQm9vbGVhbigiMzEpIGZvdW5kIGRpc3BsYXkgbmFtZSBmb3IgcXVlcnkiLCBkaXNwbGF5TmFtZSA9PSBudWxsKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgZXJybG4oIjMwKSBzZXJ2aWNlIGNvdWxkIG5vdCBmaW5kIGVudHJ5IGZvciAiICsgaWQpOworICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlICdkdWRlJyBmYWN0b3J5LCBzaW5jZSBpdCBvdmVycmlkZXMgZW5fVVNfU1VSRkVSLgorICAgICAgICBpZCA9ICJlbl9VU19TVVJGRVJfQk9aTyI7CisgICAgICAgIFN0cmluZyBib3pvID0gKFN0cmluZylzZXJ2aWNlLmdldChpZCwgYWN0dWFsSUQpOworICAgICAgICBpZiAoYm96byAhPSBudWxsKSB7CisgICAgICAgIFN0cmluZyBkaXNwbGF5TmFtZSA9IHNlcnZpY2UuZ2V0RGlzcGxheU5hbWUoYWN0dWFsSURbMF0sIFVMb2NhbGUuVVMpOworICAgICAgICBsb2dsbigiZm91bmQgYWN0dWFsOiAiICsgYm96byArICIgd2l0aCBkaXNwbGF5IG5hbWU6ICIgKyBkaXNwbGF5TmFtZSk7CisgICAgICAgIGNvbmZpcm1Cb29sZWFuKCIzMikgZm91bmQgZGlzcGxheSBuYW1lIGZvciBhY3R1YWwiLCBkaXNwbGF5TmFtZSAhPSBudWxsKTsKKworICAgICAgICBkaXNwbGF5TmFtZSA9IHNlcnZpY2UuZ2V0RGlzcGxheU5hbWUoaWQsIFVMb2NhbGUuVVMpOworICAgICAgICBsb2dsbigiZm91bmQgYWN0dWFsOiAiICsgYm96byArICIgd2l0aCBkaXNwbGF5IG5hbWU6ICIgKyBkaXNwbGF5TmFtZSk7CisgICAgICAgIC8vIHNlZSBhYm92ZSBhbmQgamIzNTQ5CisgICAgICAgIC8vIGNvbmZpcm1Cb29sZWFuKCIzMykgZm91bmQgZGlzcGxheSBuYW1lIGZvciBxdWVyeSIsIGRpc3BsYXlOYW1lID09IG51bGwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICBlcnJsbigiMzIpIHNlcnZpY2UgY291bGQgbm90IGZpbmQgZW50cnkgZm9yICIgKyBpZCk7CisgICAgICAgIH0KKworICAgICAgICAgICAgY29uZmlybUJvb2xlYW4oIjM0KSBpcyBkZWZhdWx0ICIsICFzZXJ2aWNlLmlzRGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAgICAgLyoKKyAgICAgIC8vIGRpc2FsbG93IGhpZGluZyBmb3Igbm93CisKKyAgICAgIC8vIGhpZGluZyBmYWN0b3J5IHNob3VsZCBvYnNjdXJlICdzdWJsb2NhbGVzJworICAgICAgeworICAgICAgU3RyaW5nW10geGlkcyA9IHsKKyAgICAgICJlbl9VU19WQUxMRVkiLCAiZW5fVVNfU0lMSUNPTiIKKyAgICAgIH07CisgICAgICBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShuZXcgVGVzdEhpZGluZ0ZhY3RvcnkoeGlkcywgImhpZGluZyIpKTsKKyAgICAgIH0KKworICAgICAgeworICAgICAgTWFwIGRpZHMgPSBzZXJ2aWNlLmdldERpc3BsYXlOYW1lcygpOworICAgICAgSXRlcmF0b3IgaXRlciA9IGRpZHMuZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgKytjb3VudDsKKyAgICAgIEVudHJ5IGUgPSAoRW50cnkpaXRlci5uZXh0KCk7CisgICAgICBsb2dsbigiICAiICsgZS5nZXRLZXkoKSArICIgLS0gPiAiICsgZS5nZXRWYWx1ZSgpKTsKKyAgICAgIH0KKyAgICAgIGNvbmZpcm1JZGVudGljYWwoIjM1KSBoaWRpbmcgZmFjdG9yeSIsIGNvdW50LCA1KTsKKyAgICAgIH0KKyAgICAgICAgKi8KKworICAgIHsKKyAgICAgICAgU2V0IHhpZHMgPSBzZXJ2aWNlLmdldFZpc2libGVJRHMoKTsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHhpZHMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgIFN0cmluZyB4aWQgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOworICAgICAgICBsb2dsbih4aWQgKyAiPyAgIiArIHNlcnZpY2UuZ2V0KHhpZCkpOworICAgICAgICB9CisKKyAgICAgICAgbG9nbG4oInZhbGxleWdpcmw/ICAiICsgc2VydmljZS5nZXQoImVuX1VTX1ZBTExFWV9HSVJMIikpOworICAgICAgICBsb2dsbigidmFsbGV5Ym95PyAgICIgKyBzZXJ2aWNlLmdldCgiZW5fVVNfVkFMTEVZX0JPWSIpKTsKKyAgICAgICAgbG9nbG4oInZhbGxleWR1ZGU/ICAiICsgc2VydmljZS5nZXQoImVuX1VTX1ZBTExFWV9EVURFIikpOworICAgICAgICBsb2dsbigic3VyZmVyZ2lybD8gICIgKyBzZXJ2aWNlLmdldCgiZW5fVVNfU1VSRkVSX0dJUkwiKSk7CisgICAgfQorCisgICAgLy8gcmVzb3VyY2UgYnVuZGxlIGZhY3RvcnkuCisgICAgc2VydmljZS5yZXNldCgpOworICAgIHNlcnZpY2UucmVnaXN0ZXJGYWN0b3J5KG5ldyBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkoKSk7CisKKyAgICAvLyBsaXN0IGFsbCBvZiB0aGUgcmVzb3VyY2VzCisgICAgeworICAgICAgICAgICAgbG9nbG4oImFsbCB2aXNpYmxlIGlkczogIiArIHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygpKTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgU2V0IHhpZHMgPSBzZXJ2aWNlLmdldFZpc2libGVJRHMoKTsKKyAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigieyIpOworICAgICAgICAgIGJvb2xlYW4gbm90Zmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICBJdGVyYXRvciBpdGVyID0geGlkcy5pdGVyYXRvcigpOworICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgIFN0cmluZyB4aWQgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOworICAgICAgICAgIGlmIChub3RmaXJzdCkgeworICAgICAgICAgIGJ1Zi5hcHBlbmQoIiwgIik7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBub3RmaXJzdCA9IHRydWU7CisgICAgICAgICAgfQorICAgICAgICAgIGJ1Zi5hcHBlbmQoeGlkKTsKKyAgICAgICAgICB9CisgICAgICAgICAgYnVmLmFwcGVuZCgifSIpOworICAgICAgICAgIGxvZ2xuKGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgICovCisgICAgfQorCisgICAgICAgIC8vIGxpc3Qgb25seSB0aGUgcmVzb3VyY2VzIGZvciBlcywgZGVmYXVsdCBsb2NhbGUKKyAgICAgICAgLy8gc2luY2Ugd2UncmUgdXNpbmcgdGhlIGRlZmF1bHQgS2V5LCBvbmx5ICJlcyIgaXMgbWF0Y2hlZAorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigidmlzaWJsZSBpZHMgZm9yIGVzIGxvY2FsZTogIiArIHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygiZXMiKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBsaXN0IG9ubHkgdGhlIHNwYW5pc2ggZGlzcGxheSBuYW1lcyBmb3IgZXMsIHNwYW5pc2ggY29sbGF0aW9uIG9yZGVyCisgICAgICAgIC8vIHNpbmNlIHdlJ3JlIHVzaW5nIHRoZSBkZWZhdWx0IEtleSwgb25seSAiZXMiIGlzIG1hdGNoZWQKKyAgICAgICAgeworICAgICAgICAgICAgbG9nbG4oImRpc3BsYXkgbmFtZXM6ICIgKyBnZXREaXNwbGF5TmFtZXMoc2VydmljZSwgbmV3IFVMb2NhbGUoImVzIiksICJlcyIpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGxpc3QgdGhlIGRpc3BsYXkgbmFtZXMgaW4gcmV2ZXJzZSBvcmRlcgorICAgICAgICB7CisgICAgICAgICAgICBsb2dsbigiZGlzcGxheSBuYW1lcyBpbiByZXZlcnNlIG9yZGVyOiAiICsKKyAgICAgICAgICAgICAgICAgIHNlcnZpY2UuZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUuVVMsIG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1TdHJpbmcuQ0FTRV9JTlNFTlNJVElWRV9PUkRFUi5jb21wYXJlKChTdHJpbmcpbGhzLCAoU3RyaW5nKXJocyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICB9KSk7CisgICAgICAgIH0KKworICAgIC8vIGdldCBhbGwgdGhlIGRpc3BsYXkgbmFtZXMgb2YgdGhlc2UgcmVzb3VyY2VzCisgICAgLy8gdGhpcyBzaG91bGQgYmUgZmFzdCBzaW5jZSB0aGUgZGlzcGxheSBuYW1lcyB3ZXJlIGNhY2hlZC4KKyAgICB7CisgICAgICAgICAgICBsb2dsbigic2VydmljZSBkaXNwbGF5IG5hbWVzIGZvciBkZV9ERSIpOworICAgICAgICBNYXAgbmFtZXMgPSBnZXREaXNwbGF5TmFtZXMoc2VydmljZSwgbmV3IFVMb2NhbGUoImRlX0RFIikpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigieyIpOworICAgICAgICBJdGVyYXRvciBpdGVyID0gbmFtZXMuZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgRW50cnkgZSA9IChFbnRyeSlpdGVyLm5leHQoKTsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSAoU3RyaW5nKWUuZ2V0S2V5KCk7CisgICAgICAgIFN0cmluZyBpZCA9IChTdHJpbmcpZS5nZXRWYWx1ZSgpOworICAgICAgICBidWYuYXBwZW5kKCJcbiAgICIgKyBuYW1lICsgIiAtLT4gIiArIGlkKTsKKyAgICAgICAgfQorICAgICAgICBidWYuYXBwZW5kKCJcbn0iKTsKKyAgICAgICAgbG9nbG4oYnVmLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgICAgICBDYWxpZm9ybmlvTGFuZ3VhZ2VGYWN0b3J5IGNhbGlmYWN0b3J5ID0gbmV3IENhbGlmb3JuaW9MYW5ndWFnZUZhY3RvcnkoKTsKKyAgICAgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkoY2FsaWZhY3RvcnkpOworICAgIC8vIGdldCBhbGwgdGhlIGRpc3BsYXkgbmFtZXMgb2YgdGhlc2UgcmVzb3VyY2VzCisgICAgeworICAgICAgICAgICAgbG9nbG4oImNhbGlmb3JuaW8gbGFuZ3VhZ2UgZmFjdG9yeSIpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigieyIpOworICAgICAgICAgICAgU3RyaW5nW10gaWROYW1lcyA9IHsKKyAgICAgICAgICAgICAgICBDYWxpZm9ybmlvTGFuZ3VhZ2VGYWN0b3J5LmNhbGlmb3JuaW8sCisgICAgICAgIENhbGlmb3JuaW9MYW5ndWFnZUZhY3RvcnkudmFsbGV5LAorICAgICAgICBDYWxpZm9ybmlvTGFuZ3VhZ2VGYWN0b3J5LnN1cmZlciwKKyAgICAgICAgQ2FsaWZvcm5pb0xhbmd1YWdlRmFjdG9yeS5nZWVrCisgICAgICAgICAgICB9OworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpZE5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlkTmFtZSA9IGlkTmFtZXNbaV07CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiXG4gIC0tLSAiICsgaWROYW1lICsgIiAtLS0iKTsKKyAgICAgICAgICAgICAgICBNYXAgbmFtZXMgPSBnZXREaXNwbGF5TmFtZXMoc2VydmljZSwgbmV3IFVMb2NhbGUoaWROYW1lKSk7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IG5hbWVzLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgRW50cnkgZSA9IChFbnRyeSlpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSAoU3RyaW5nKWUuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IChTdHJpbmcpZS5nZXRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJcbiAgICAiICsgbmFtZSArICIgLS0+ICIgKyBpZCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoIlxufSIpOworICAgICAgICBsb2dsbihidWYudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLy8gdGVzdCBub3RpZmljYXRpb24KKyAgICAvLyBzaW1wbGUgcmVnaXN0cmF0aW9uCisgICAgeworICAgICAgICAgICAgbG9nbG4oInNpbXBsZSByZWdpc3RyYXRpb24gbm90aWZpY2F0aW9uIik7CisgICAgICAgIElDVUxvY2FsZVNlcnZpY2UgbHMgPSBuZXcgSUNVTG9jYWxlU2VydmljZSgpOworICAgICAgICBTZXJ2aWNlTGlzdGVuZXIgbDEgPSBuZXcgU2VydmljZUxpc3RlbmVyKCkgeworICAgICAgICAgICAgcHJpdmF0ZSBpbnQgbjsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHNlcnZpY2VDaGFuZ2VkKElDVVNlcnZpY2UgcykgeworICAgICAgICAgICAgbG9nbG4oImxpc3RlbmVyIDEgcmVwb3J0ICIgKyBuKysgKyAiIHNlcnZpY2UgY2hhbmdlZDogIiArIHMpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICBscy5hZGRMaXN0ZW5lcihsMSk7CisgICAgICAgIFNlcnZpY2VMaXN0ZW5lciBsMiA9IG5ldyBTZXJ2aWNlTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwcml2YXRlIGludCBuOworICAgICAgICAgICAgcHVibGljIHZvaWQgc2VydmljZUNoYW5nZWQoSUNVU2VydmljZSBzKSB7CisgICAgICAgICAgICBsb2dsbigibGlzdGVuZXIgMiByZXBvcnQgIiArIG4rKyArICIgc2VydmljZSBjaGFuZ2VkOiAiICsgcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIGxzLmFkZExpc3RlbmVyKGwyKTsKKyAgICAgICAgbG9nbG4oInJlZ2lzdGVyaW5nIGZvby4uLiAiKTsKKyAgICAgICAgbHMucmVnaXN0ZXJPYmplY3QoIkZvbyIsICJlbl9GT08iKTsKKyAgICAgICAgbG9nbG4oInJlZ2lzdGVyaW5nIGJhci4uLiAiKTsKKyAgICAgICAgbHMucmVnaXN0ZXJPYmplY3QoIkJhciIsICJlbl9CQVIiKTsKKyAgICAgICAgbG9nbG4oImdldHRpbmcgZm9vLi4uIik7CisgICAgICAgIGxvZ2xuKChTdHJpbmcpbHMuZ2V0KCJlbl9GT08iKSk7CisgICAgICAgIGxvZ2xuKCJyZW1vdmluZyBsaXN0ZW5lciAyLi4uIik7CisgICAgICAgIGxzLnJlbW92ZUxpc3RlbmVyKGwyKTsKKyAgICAgICAgbG9nbG4oInJlZ2lzdGVyaW5nIGJhei4uLiIpOworICAgICAgICBscy5yZWdpc3Rlck9iamVjdCgiQmF6IiwgImVuX0JBWiIpOworICAgICAgICBsb2dsbigicmVtb3ZpbmcgbGlzdGVuZXIgMSIpOworICAgICAgICBscy5yZW1vdmVMaXN0ZW5lcihsMSk7CisgICAgICAgIGxvZ2xuKCJyZWdpc3RlcmluZyBidXJwLi4uIik7CisgICAgICAgIGxzLnJlZ2lzdGVyT2JqZWN0KCJCdXJwIiwgImVuX0JVUlAiKTsKKworICAgICAgICAvLyBzaG91bGQgb25seSBnZXQgb25lIG5vdGlmaWNhdGlvbiBldmVuIGlmIHJlZ2lzdGVyIG11bHRpcGxlIHRpbWVzCisgICAgICAgIGxvZ2xuKCIuLi4gdHJ5aW5nIG11bHRpcGxlIHJlZ2lzdHJhdGlvbiIpOworICAgICAgICBscy5hZGRMaXN0ZW5lcihsMSk7CisgICAgICAgIGxzLmFkZExpc3RlbmVyKGwxKTsKKyAgICAgICAgbHMuYWRkTGlzdGVuZXIobDEpOworICAgICAgICBscy5hZGRMaXN0ZW5lcihsMik7CisgICAgICAgIGxzLnJlZ2lzdGVyT2JqZWN0KCJGb28iLCAiZW5fRk9PIik7CisgICAgICAgIGxvZ2xuKCIuLi4gcmVnaXN0ZXJlZCBmb28iKTsKKworICAgICAgICAvLyBzaW5jZSBpbiBhIHNlcGFyYXRlIHRocmVhZCwgd2UgY2FuIGNhbGxiYWNrIGFuZCBub3QgZGVhZGxvY2sKKyAgICAgICAgU2VydmljZUxpc3RlbmVyIGwzID0gbmV3IFNlcnZpY2VMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHByaXZhdGUgaW50IG47CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBzZXJ2aWNlQ2hhbmdlZChJQ1VTZXJ2aWNlIHMpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJsaXN0ZW5lciAzIHJlcG9ydCAiICsgbisrICsgIiBzZXJ2aWNlIGNoYW5nZWQuLi4iKTsKKyAgICAgICAgICAgIGlmIChzLmdldCgiZW5fQk9JTksiKSA9PSBudWxsKSB7IC8vIGRvbid0IHJlY3Vyc2Ugb24gb3Vyc2VsdmVzISEhCisgICAgICAgICAgICAgICAgbG9nbG4oInJlZ2lzdGVyaW5nIGJvaW5rLi4uIik7CisgICAgICAgICAgICAgICAgcy5yZWdpc3Rlck9iamVjdCgiYm9pbmsiLCAiZW5fQk9JTksiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgbHMuYWRkTGlzdGVuZXIobDMpOworICAgICAgICBsb2dsbigicmVnaXN0ZXJpbmcgYm9vLi4uIik7CisgICAgICAgIGxzLnJlZ2lzdGVyT2JqZWN0KCJCb28iLCAiZW5fQk9PIik7CisgICAgICAgIGxvZ2xuKCIuLi5kb25lIik7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgVGhyZWFkLnNsZWVwKDEwMCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgVGVzdExvY2FsZUtleUZhY3RvcnkgZXh0ZW5kcyBMb2NhbGVLZXlGYWN0b3J5IHsKKyAgICBwcm90ZWN0ZWQgZmluYWwgU2V0IGlkczsKKyAgICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIGZhY3RvcnlJRDsKKworICAgIHB1YmxpYyBUZXN0TG9jYWxlS2V5RmFjdG9yeShTdHJpbmdbXSBpZHMsIFN0cmluZyBmYWN0b3J5SUQpIHsKKyAgICAgICAgICAgIHN1cGVyKFZJU0lCTEUsIGZhY3RvcnlJRCk7CisKKyAgICAgICAgdGhpcy5pZHMgPSBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVTZXQobmV3IEhhc2hTZXQoQXJyYXlzLmFzTGlzdChpZHMpKSk7CisgICAgICAgICAgICB0aGlzLmZhY3RvcnlJRCA9IGZhY3RvcnlJRCArICI6ICI7CisgICAgfQorCisgICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVDcmVhdGUoVUxvY2FsZSBsb2MsIGludCBraW5kLCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWN0b3J5SUQgKyBsb2MudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU2V0IGdldFN1cHBvcnRlZElEcygpIHsKKyAgICAgICAgICAgIHJldHVybiBpZHM7CisgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICAvLyBEaXNhbGxvdyBoaWRpbmcgZm9yIG5vdyBzaW5jZSBpdCBjYXVzZXMgZ25hcmx5IHByb2JsZW1zLCBsaWtlCisgICAgICAvLyBob3cgZG8geW91IGxvY2FsaXplIHRoZSBoaWRkZW4gKGJ1dCBzdGlsbCBleHBvcnRlZCkgbmFtZXMuCisKKyAgICAgIHN0YXRpYyBjbGFzcyBUZXN0SGlkaW5nRmFjdG9yeSBpbXBsZW1lbnRzIElDVVNlcnZpY2UuRmFjdG9yeSB7CisgICAgICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nW10gaWRzOworICAgICAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBmYWN0b3J5SUQ7CisKKyAgICAgIHB1YmxpYyBUZXN0SGlkaW5nRmFjdG9yeShTdHJpbmdbXSBpZHMpIHsKKyAgICAgIHRoaXMoaWRzLCAiSGlkaW5nIik7CisgICAgICB9CisKKyAgICAgIHB1YmxpYyBUZXN0SGlkaW5nRmFjdG9yeShTdHJpbmdbXSBpZHMsIFN0cmluZyBmYWN0b3J5SUQpIHsKKyAgICAgIHRoaXMuaWRzID0gKFN0cmluZ1tdKWlkcy5jbG9uZSgpOworCisgICAgICBpZiAoZmFjdG9yeUlEID09IG51bGwgfHwgZmFjdG9yeUlELmxlbmd0aCgpID09IDApIHsKKyAgICAgIHRoaXMuZmFjdG9yeUlEID0gIiI7CisgICAgICB9IGVsc2UgeworICAgICAgdGhpcy5mYWN0b3J5SUQgPSBmYWN0b3J5SUQgKyAiOiAiOworICAgICAgfQorICAgICAgfQorCisgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShLZXkga2V5LCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgKytpKSB7CisgICAgICBpZiAoTG9jYWxlVXRpbGl0eS5pc0ZhbGxiYWNrT2YoaWRzW2ldLCBrZXkuY3VycmVudElEKCkpKSB7CisgICAgICByZXR1cm4gZmFjdG9yeUlEICsga2V5LmNhbm9uaWNhbElEKCk7CisgICAgICB9CisgICAgICB9CisgICAgICByZXR1cm4gbnVsbDsKKyAgICAgIH0KKworICAgICAgcHVibGljIHZvaWQgdXBkYXRlVmlzaWJsZUlEcyhNYXAgcmVzdWx0KSB7CisgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlkcy5sZW5ndGg7ICsraSkgeworICAgICAgU3RyaW5nIGlkID0gaWRzW2ldOworICAgICAgSXRlcmF0b3IgaXRlciA9IHJlc3VsdC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICBpZiAoTG9jYWxlVXRpbGl0eS5pc0ZhbGxiYWNrT2YoaWQsIChTdHJpbmcpaXRlci5uZXh0KCkpKSB7CisgICAgICBpdGVyLnJlbW92ZSgpOworICAgICAgfQorICAgICAgfQorICAgICAgcmVzdWx0LnB1dChpZCwgdGhpcyk7CisgICAgICB9CisgICAgICB9CisKKyAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgcmV0dXJuIGZhY3RvcnlJRCArIG5ldyBVTG9jYWxlKGlkKS5nZXREaXNwbGF5TmFtZShsb2NhbGUpOworICAgICAgfQorICAgICAgfQorICAgICovCisKKyAgICBzdGF0aWMgY2xhc3MgQ2FsaWZvcm5pb0xhbmd1YWdlRmFjdG9yeSBleHRlbmRzIElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSB7CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgY2FsaWZvcm5pbyA9ICJlbl9VU19DQSI7CisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdmFsbGV5ID0gY2FsaWZvcm5pbyArICJfVkFMTEVZIjsKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBzdXJmZXIgPSBjYWxpZm9ybmlvICsgIl9TVVJGRVIiOworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdlZWsgPSBjYWxpZm9ybmlvICsgIl9HRUVLIjsKKyAgICAgICAgcHVibGljIHN0YXRpYyBTZXQgc3VwcG9ydGVkSURzOworICAgICAgICBzdGF0aWMgeworICAgICAgICAgICAgSGFzaFNldCByZXN1bHQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICAgICAgcmVzdWx0LmFkZEFsbChJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRBdmFpbGFibGVMb2NhbGVOYW1lU2V0KCkpOworICAgICAgICByZXN1bHQuYWRkKGNhbGlmb3JuaW8pOworICAgICAgICByZXN1bHQuYWRkKHZhbGxleSk7CisgICAgICAgIHJlc3VsdC5hZGQoc3VyZmVyKTsKKyAgICAgICAgcmVzdWx0LmFkZChnZWVrKTsKKyAgICAgICAgICAgIHN1cHBvcnRlZElEcyA9IENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChyZXN1bHQpOworICAgICAgICB9CisKKyAgICBwdWJsaWMgU2V0IGdldFN1cHBvcnRlZElEcygpIHsKKyAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWRJRHM7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIFN0cmluZyBwcmVmaXggPSAiIjsKKyAgICAgICAgU3RyaW5nIHN1ZmZpeCA9ICIiOworICAgICAgICBTdHJpbmcgbHMgPSBsb2NhbGUudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKExvY2FsZVV0aWxpdHkuaXNGYWxsYmFja09mKGNhbGlmb3JuaW8sIGxzKSkgeworICAgICAgICBpZiAobHMuZXF1YWxzSWdub3JlQ2FzZSh2YWxsZXkpKSB7CisgICAgICAgICAgICBwcmVmaXggPSAiTGlrZSwgeW91IGtub3csIGl0J3Mgc28gdG90YWxseSAiOworICAgICAgICB9IGVsc2UgaWYgKGxzLmVxdWFsc0lnbm9yZUNhc2Uoc3VyZmVyKSkgeworICAgICAgICAgICAgcHJlZml4ID0gIkR1ZGUsIGl0cyAiOworICAgICAgICB9IGVsc2UgaWYgKGxzLmVxdWFsc0lnbm9yZUNhc2UoZ2VlaykpIHsKKyAgICAgICAgICAgIHByZWZpeCA9ICJJJ2QgZXN0aW1hdGUgaXQncyBhcHByb3hpbWF0ZWx5ICI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmVmaXggPSAiSHVoPyAgTWF5YmUgIjsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChMb2NhbGVVdGlsaXR5LmlzRmFsbGJhY2tPZihjYWxpZm9ybmlvLCBpZCkpIHsKKyAgICAgICAgaWYgKGlkLmVxdWFsc0lnbm9yZUNhc2UodmFsbGV5KSkgeworICAgICAgICAgICAgc3VmZml4ID0gImxpa2UgdGhlIFZhbGxleSwgeW91IGtub3c/ICBMZXQncyBnbyB0byB0aGUgbWFsbCEiOworICAgICAgICB9IGVsc2UgaWYgKGlkLmVxdWFsc0lnbm9yZUNhc2Uoc3VyZmVyKSkgeworICAgICAgICAgICAgc3VmZml4ID0gInRpbWUgdG8gaGl0IHRob3NlIGduYXJseSB3YXZlcywgRHVkZSEhISI7CisgICAgICAgIH0gZWxzZSBpZiAoaWQuZXF1YWxzSWdub3JlQ2FzZShnZWVrKSkgeworICAgICAgICAgICAgc3VmZml4ID0gImFsbCBzeXN0ZW1zIGdvLiAgVC1NaW51cyA5LCA4LCA3Li4uIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHN1ZmZpeCA9ICJObyBIYWJsYSBFbmdsYWlzIjsKKyAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICBzdWZmaXggPSBzdXBlci5nZXREaXNwbGF5TmFtZShpZCwgbG9jYWxlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwcmVmaXggKyBzdWZmaXg7CisgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RMb2NhbGUoKSB7CisgICAgSUNVTG9jYWxlU2VydmljZSBzZXJ2aWNlID0gbmV3IElDVUxvY2FsZVNlcnZpY2UoInRlc3QgbG9jYWxlIik7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdCgicm9vdCIsIFVMb2NhbGUuUk9PVCk7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdCgiZ2VybWFuIiwgImRlIik7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdCgiZ2VybWFuX0dlcm1hbnkiLCBVTG9jYWxlLkdFUk1BTlkpOworICAgIHNlcnZpY2UucmVnaXN0ZXJPYmplY3QoImphcGFuZXNlIiwgImphIik7CisgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdCgiamFwYW5lc2VfSmFwYW4iLCBVTG9jYWxlLkpBUEFOKTsKKworICAgIE9iamVjdCB0YXJnZXQgPSBzZXJ2aWNlLmdldCgiZGVfVVMiKTsKKyAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMiLCAiZ2VybWFuIiwgdGFyZ2V0KTsKKworICAgICAgICBVTG9jYWxlIGRlID0gbmV3IFVMb2NhbGUoImRlIik7CisgICAgICAgIFVMb2NhbGUgZGVfVVMgPSBuZXcgVUxvY2FsZSgiZGVfVVMiKTsKKworICAgICAgICB0YXJnZXQgPSBzZXJ2aWNlLmdldChkZV9VUyk7CisgICAgY29uZmlybUVxdWFsKCJ0ZXN0IGRlX1VTIDIiLCAiZ2VybWFuIiwgdGFyZ2V0KTsKKworICAgICAgICB0YXJnZXQgPSBzZXJ2aWNlLmdldChkZV9VUywgTG9jYWxlS2V5LktJTkRfQU5ZKTsKKyAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMgMyIsICJnZXJtYW4iLCB0YXJnZXQpOworCisgICAgICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KGRlX1VTLCAxMjM0KTsKKyAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMgNCIsICJnZXJtYW4iLCB0YXJnZXQpOworCisgICAgICAgIFVMb2NhbGVbXSBhY3R1YWxSZXR1cm4gPSBuZXcgVUxvY2FsZVsxXTsKKyAgICAgICAgdGFyZ2V0ID0gc2VydmljZS5nZXQoZGVfVVMsIGFjdHVhbFJldHVybik7CisgICAgICAgIGNvbmZpcm1FcXVhbCgidGVzdCBkZV9VUyA1IiwgImdlcm1hbiIsIHRhcmdldCk7CisgICAgICAgIGNvbmZpcm1FcXVhbCgidGVzdCBkZV9VUyA2IiwgYWN0dWFsUmV0dXJuWzBdLCBkZSk7CisKKyAgICAgICAgYWN0dWFsUmV0dXJuWzBdID0gbnVsbDsKKyAgICAgICAgdGFyZ2V0ID0gc2VydmljZS5nZXQoZGVfVVMsIExvY2FsZUtleS5LSU5EX0FOWSwgYWN0dWFsUmV0dXJuKTsKKyAgICAgICAgY29uZmlybUVxdWFsKCJ0ZXN0IGRlX1VTIDciLCBhY3R1YWxSZXR1cm5bMF0sIGRlKTsKKworICAgICAgICBhY3R1YWxSZXR1cm5bMF0gPSBudWxsOworICAgICAgICB0YXJnZXQgPSBzZXJ2aWNlLmdldChkZV9VUywgMTIzNCwgYWN0dWFsUmV0dXJuKTsKKyAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMgOCIsICJnZXJtYW4iLCB0YXJnZXQpOworICAgICAgICBjb25maXJtRXF1YWwoInRlc3QgZGVfVVMgOSIsIGFjdHVhbFJldHVyblswXSwgZGUpOworCisgICAgICAgIHNlcnZpY2UucmVnaXN0ZXJPYmplY3QoIm9uZS9kZV9VUyIsIGRlX1VTLCAxKTsKKyAgICAgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdCgidHdvL2RlX1VTIiwgZGVfVVMsIDIpOworCisgICAgICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KGRlX1VTLCAxKTsKKyAgICAgICAgY29uZmlybUVxdWFsKCJ0ZXN0IGRlX1VTIGtpbmQgMSIsICJvbmUvZGVfVVMiLCB0YXJnZXQpOworCisgICAgICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KGRlX1VTLCAyKTsKKyAgICAgICAgY29uZmlybUVxdWFsKCJ0ZXN0IGRlX1VTIGtpbmQgMiIsICJ0d28vZGVfVVMiLCB0YXJnZXQpOworCisgICAgICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KGRlX1VTKTsKKyAgICAgICAgY29uZmlybUVxdWFsKCJ0ZXN0IGRlX1VTIGtpbmQgMyIsICJnZXJtYW4iLCB0YXJnZXQpOworCisgICAgICAgIExvY2FsZUtleSBsa2V5ID0gTG9jYWxlS2V5LmNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjaygiZW4iLCBudWxsLCAxMjM0KTsKKyAgICAgICAgbG9nbG4oImxrZXkgcHJlZml4OiAiICsgbGtleS5wcmVmaXgoKSk7CisgICAgICAgIGxvZ2xuKCJsa2V5IGRlc2NyaXB0b3I6ICIgKyBsa2V5LmN1cnJlbnREZXNjcmlwdG9yKCkpOworICAgICAgICBsb2dsbigibGtleSBjdXJyZW50IGxvY2FsZTogIiArIGxrZXkuY3VycmVudExvY2FsZSgpKTsKKworICAgICAgICBsa2V5LmZhbGxiYWNrKCk7CisgICAgICAgIGxvZ2xuKCJsa2V5IGRlc2NyaXB0b3IgMjogIiArIGxrZXkuY3VycmVudERlc2NyaXB0b3IoKSk7CisKKyAgICAgICAgbGtleS5mYWxsYmFjaygpOworICAgICAgICBsb2dsbigibGtleSBkZXNjcmlwdG9yIDM6ICIgKyBsa2V5LmN1cnJlbnREZXNjcmlwdG9yKCkpOworCisgICAgdGFyZ2V0ID0gc2VydmljZS5nZXQoInphX1BQUCIpOworICAgIGNvbmZpcm1FcXVhbCgidGVzdCB6YXBwcCIsICJyb290IiwgdGFyZ2V0KTsKKworICAgIFVMb2NhbGUgbG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgVUxvY2FsZS5zZXREZWZhdWx0KFVMb2NhbGUuSkFQQU5FU0UpOworICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KCJ6YV9QUFAiKTsKKyAgICBjb25maXJtRXF1YWwoInRlc3Qgd2l0aCBqYSBsb2NhbGUiLCAiamFwYW5lc2UiLCB0YXJnZXQpOworCisgICAgU2V0IGlkcyA9IHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygpOworICAgIGZvciAoSXRlcmF0b3IgaXRlciA9IGlkcy5pdGVyYXRvcigpOyBpdGVyLmhhc05leHQoKTspIHsKKyAgICAgICAgbG9nbG4oImlkOiAiICsgaXRlci5uZXh0KCkpOworICAgIH0KKworICAgIFVMb2NhbGUuc2V0RGVmYXVsdChsb2MpOworICAgIGlkcyA9IHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygpOworICAgIGZvciAoSXRlcmF0b3IgaXRlciA9IGlkcy5pdGVyYXRvcigpOyBpdGVyLmhhc05leHQoKTspIHsKKyAgICAgICAgbG9nbG4oImlkOiAiICsgaXRlci5uZXh0KCkpOworICAgIH0KKworICAgIHRhcmdldCA9IHNlcnZpY2UuZ2V0KCJ6YV9QUFAiKTsKKyAgICBjb25maXJtRXF1YWwoInRlc3Qgd2l0aCBlbiBsb2NhbGUiLCAicm9vdCIsIHRhcmdldCk7CisKKyAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSBzZXJ2aWNlLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgIGNvbmZpcm1JZGVudGljYWwoInRlc3QgYXZhaWxhYmxlIGxvY2FsZXMiLCBsb2NhbGVzLmxlbmd0aCwgNik7CisgICAgICAgIGxvZ2xuKCJsb2NhbGVzOiAiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBsb2coIlxuICBbIiArIGkgKyAiXSAiICsgbG9jYWxlc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgbG9nbG4oIiAiKTsKKworICAgICAgICBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShuZXcgSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5KCkpOworICAgICAgICB0YXJnZXQgPSBzZXJ2aWNlLmdldChVTG9jYWxlLkpBUEFOKTsKKworICAgICAgICB7CisgICAgICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgICAgICBMaXN0IGZhY3RvcmllcyA9IHNlcnZpY2UuZmFjdG9yaWVzKCk7CisgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gZmFjdG9yaWVzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiWyIgKyBuKysgKyAiXSAiICsgaXRlci5uZXh0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gbGlzdCBvbmx5IHRoZSBlbmdsaXNoIGRpc3BsYXkgbmFtZXMgZm9yIGVzLCBpbiByZXZlcnNlIG9yZGVyCisgICAgICAgIC8vIHNpbmNlIHdlJ3JlIHVzaW5nIGxvY2FsZSBrZXlzLCB3ZSBzaG91bGQgZ2V0IGFsbCBhbmQgb25seSB0aGUgZXMgbG9jYWxlcworICAgICAgICAvLyBobW1tLCB0aGUgZGVmYXVsdCB0b1N0cmluZyBmdW5jdGlvbiBkb2Vzbid0IHByaW50IGluIHNvcnRlZCBvcmRlciBmb3IgVHJlZU1hcAorICAgICAgICB7CisgICAgICAgICAgICBTb3J0ZWRNYXAgbWFwID0gc2VydmljZS5nZXREaXNwbGF5TmFtZXMoVUxvY2FsZS5VUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1TdHJpbmcuQ0FTRV9JTlNFTlNJVElWRV9PUkRFUi5jb21wYXJlKChTdHJpbmcpbGhzLCAoU3RyaW5nKXJocyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlcyIpOworCisgICAgICAgICAgICBsb2dsbigiZXMgZGlzcGxheSBuYW1lcyBpbiByZXZlcnNlIG9yZGVyICIgKyBtYXApOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFdyYXBGYWN0b3J5KCkgeworICAgICAgICBmaW5hbCBTdHJpbmcgZ3JlZXRpbmcgPSAiSGVsbG8gVGhlcmUiOworICAgICAgICBmaW5hbCBTdHJpbmcgZ3JlZXRpbmdJRCA9ICJncmVldGluZyI7CisKKyAgICAgICAgSUNVU2VydmljZSBzZXJ2aWNlID0gbmV3IElDVVNlcnZpY2UoIndyYXAiKTsKKyAgICAgICAgc2VydmljZS5yZWdpc3Rlck9iamVjdChncmVldGluZywgZ3JlZXRpbmdJRCk7CisKKyAgICAgICAgbG9nbG4oInRlc3Qgb25lOiAiICsgc2VydmljZS5nZXQoZ3JlZXRpbmdJRCkpOworCisgICAgICAgIGNsYXNzIFdyYXBGYWN0b3J5IGltcGxlbWVudHMgRmFjdG9yeSB7CisgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShLZXkga2V5LCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgICAgICBpZiAoa2V5LmN1cnJlbnRJRCgpLmVxdWFscyhncmVldGluZ0lEKSkgeworICAgICAgICAgICAgICAgICAgICBPYmplY3QgcHJldmlvdXMgPSBzZXJ2aWNlLmdldEtleShrZXksIG51bGwsIHRoaXMpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkEgZGlmZmVyZW50IGdyZWV0aW5nOiBcIiIgKyBwcmV2aW91cyArICJcIiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgdm9pZCB1cGRhdGVWaXNpYmxlSURzKE1hcCByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQucHV0KCJncmVldGluZyIsIHRoaXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gIndyYXAgJyIgKyBpZCArICInIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShuZXcgV3JhcEZhY3RvcnkoKSk7CisKKyAgICAgICAgY29uZmlybUVxdWFsKCJ3cmFwIHRlc3Q6ICIsIHNlcnZpY2UuZ2V0KGdyZWV0aW5nSUQpLCAiQSBkaWZmZXJlbnQgZ3JlZXRpbmc6IFwiIiArIGdyZWV0aW5nICsgIlwiIik7CisgICAgfQorCisgICAgLy8gbWlzYyBjb3ZlcmFnZSB0ZXN0cworICAgIHB1YmxpYyB2b2lkIFRlc3RDb3ZlcmFnZSgpIHsKKyAgICAvLyBLZXkKKyAgICBLZXkga2V5ID0gbmV3IEtleSgiZm9vYmFyIik7CisgICAgbG9nbG4oIklEOiAiICsga2V5LmlkKCkpOworICAgIGxvZ2xuKCJjYW5vbmljYWxJRDogIiArIGtleS5jYW5vbmljYWxJRCgpKTsKKyAgICBsb2dsbigiY3VycmVudElEOiAiICsga2V5LmN1cnJlbnRJRCgpKTsKKyAgICBsb2dsbigiaGFzIGZhbGxiYWNrOiAiICsga2V5LmZhbGxiYWNrKCkpOworCisgICAgLy8gU2ltcGxlRmFjdG9yeQorICAgIE9iamVjdCBvYmogPSBuZXcgT2JqZWN0KCk7CisgICAgU2ltcGxlRmFjdG9yeSBzZiA9IG5ldyBTaW1wbGVGYWN0b3J5KG9iaiwgIm9iamVjdCIpOworICAgIHRyeSB7CisgICAgICAgIHNmID0gbmV3IFNpbXBsZUZhY3RvcnkobnVsbCwgbnVsbCk7CisgICAgICAgIGVycmxuKCJkaWRuJ3QgdGhyb3cgZXhjZXB0aW9uIik7CisgICAgfQorICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICBsb2dsbigiT0s6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgfQorICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBlcnJsbigidGhyZXcgd3JvbmcgZXhjZXB0aW9uIiArIGUpOworICAgIH0KKyAgICBsb2dsbihzZi5nZXREaXNwbGF5TmFtZSgib2JqZWN0IiwgbnVsbCkpOworCisgICAgLy8gSUNVU2VydmljZQorICAgIElDVVNlcnZpY2Ugc2VydmljZSA9IG5ldyBJQ1VTZXJ2aWNlKCk7CisgICAgc2VydmljZS5yZWdpc3RlckZhY3Rvcnkoc2YpOworCisgICAgdHJ5IHsKKyAgICAgICAgc2VydmljZS5nZXQobnVsbCwgbnVsbCk7CisgICAgICAgIGVycmxuKCJkaWRuJ3QgdGhyb3cgZXhjZXB0aW9uIik7CisgICAgfQorICAgIGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGxvZ2xuKCJPSzogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICB9CisgICAgICAgIC8qCisgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgIGVycmxuKCJ0aHJldyB3cm9uZyBleGNlcHRpb24iICsgZSk7CisgICAgICB9CisgICAgICAgICovCisgICAgdHJ5IHsKKyAgICAgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkobnVsbCk7CisgICAgICAgIGVycmxuKCJkaWRuJ3QgdGhyb3cgZXhjZXB0aW9uIik7CisgICAgfQorICAgIGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGxvZ2xuKCJPSzogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICB9CisgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGVycmxuKCJ0aHJldyB3cm9uZyBleGNlcHRpb24iICsgZSk7CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAgICAgc2VydmljZS51bnJlZ2lzdGVyRmFjdG9yeShudWxsKTsKKyAgICAgICAgZXJybG4oImRpZG4ndCB0aHJvdyBleGNlcHRpb24iKTsKKyAgICB9CisgICAgY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgbG9nbG4oIk9LOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgIH0KKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgZXJybG4oInRocmV3IHdyb25nIGV4Y2VwdGlvbiIgKyBlKTsKKyAgICB9CisKKyAgICBsb2dsbigib2JqZWN0IGlzOiAiICsgc2VydmljZS5nZXQoIm9iamVjdCIpKTsKKworICAgIGxvZ2xuKCJzdGF0czogIiArIHNlcnZpY2Uuc3RhdHMoKSk7CisKKyAgICAvLyBJQ1VSV0xvY2sKKworICAgIElDVVJXTG9jayByd2xvY2sgPSBuZXcgSUNVUldMb2NrKCk7CisgICAgcndsb2NrLmFjcXVpcmVSZWFkKCk7CisgICAgcndsb2NrLnJlbGVhc2VSZWFkKCk7CisKKyAgICByd2xvY2suYWNxdWlyZVdyaXRlKCk7CisgICAgcndsb2NrLnJlbGVhc2VXcml0ZSgpOworICAgIGxvZ2xuKCJzdGF0czogIiArIHJ3bG9jay5nZXRTdGF0cygpKTsKKyAgICBsb2dsbigic3RhdHM6ICIgKyByd2xvY2suY2xlYXJTdGF0cygpKTsKKyAgICByd2xvY2suYWNxdWlyZVJlYWQoKTsKKyAgICByd2xvY2sucmVsZWFzZVJlYWQoKTsKKyAgICByd2xvY2suYWNxdWlyZVdyaXRlKCk7CisgICAgcndsb2NrLnJlbGVhc2VXcml0ZSgpOworICAgIGxvZ2xuKCJzdGF0czogIiArIHJ3bG9jay5nZXRTdGF0cygpKTsKKworICAgIHRyeSB7CisgICAgICAgIHJ3bG9jay5yZWxlYXNlUmVhZCgpOworICAgICAgICBlcnJsbigibm8gZXJyb3IgdGhyb3duIik7CisgICAgfQorICAgIGNhdGNoIChJbGxlZ2FsU3RhdGVFeGNlcHRpb24gZSkgeworICAgICAgICBsb2dsbigiT0s6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAgICAgcndsb2NrLnJlbGVhc2VXcml0ZSgpOworICAgICAgICBlcnJsbigibm8gZXJyb3IgdGhyb3duIik7CisgICAgfQorICAgIGNhdGNoIChJbGxlZ2FsU3RhdGVFeGNlcHRpb24gZSkgeworICAgICAgICBsb2dsbigiT0s6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgfQorCisgICAgICAgIC8vIElDVUxvY2FsZVNlcnZpY2UKKworICAgIC8vIExvY2FsZUtleQorCisgICAgLy8gTG9jYWxlS2V5IGxrZXkgPSBMb2NhbGVLZXkuY3JlYXRlKCJlbl9VUyIsICJqYV9KUCIpOworICAgIC8vIGxrZXkgPSBMb2NhbGVLZXkuY3JlYXRlKG51bGwsIG51bGwpOworICAgIExvY2FsZUtleSBsa2V5ID0gTG9jYWxlS2V5LmNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjaygiZW5fVVMiLCAiamFfSlAiKTsKKyAgICAgICAgbG9nbG4oImxrZXk6ICIgKyBsa2V5KTsKKworICAgICAgICBsa2V5ID0gTG9jYWxlS2V5LmNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjayhudWxsLCBudWxsKTsKKyAgICAgICAgbG9nbG4oImxrZXkgZnJvbSBudWxsLG51bGw6ICIgKyBsa2V5KTsKKworICAgIC8vIExvY2FsZUtleUZhY3RvcnkKKyAgICBMb2NhbGVLZXlGYWN0b3J5IGxrZiA9IG5ldyBMS0ZTdWJjbGFzcyhmYWxzZSk7CisgICAgICAgIGxvZ2xuKCJsa2Y6ICIgKyBsa2YpOworICAgIGxvZ2xuKCJvYmo6ICIgKyBsa2YuY3JlYXRlKGxrZXksIG51bGwpKTsKKyAgICBsb2dsbihsa2YuZ2V0RGlzcGxheU5hbWUoImZvbyIsIG51bGwpKTsKKyAgICBsb2dsbihsa2YuZ2V0RGlzcGxheU5hbWUoImJhciIsIG51bGwpKTsKKyAgICBsa2YudXBkYXRlVmlzaWJsZUlEcyhuZXcgSGFzaE1hcCgpKTsKKworICAgIExvY2FsZUtleUZhY3RvcnkgaW52aXNpYmxlTEtGID0gbmV3IExLRlN1YmNsYXNzKGZhbHNlKTsKKyAgICBsb2dsbigib2JqOiAiICsgaW52aXNpYmxlTEtGLmNyZWF0ZShsa2V5LCBudWxsKSk7CisgICAgbG9nbG4oaW52aXNpYmxlTEtGLmdldERpc3BsYXlOYW1lKCJmb28iLCBudWxsKSk7CisgICAgbG9nbG4oaW52aXNpYmxlTEtGLmdldERpc3BsYXlOYW1lKCJiYXIiLCBudWxsKSk7CisgICAgaW52aXNpYmxlTEtGLnVwZGF0ZVZpc2libGVJRHMobmV3IEhhc2hNYXAoKSk7CisKKyAgICAvLyBSZXNvdXJjZUJ1bmRsZUZhY3RvcnkKKyAgICBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkgcmJmID0gbmV3IElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSgpOworICAgIGxvZ2xuKCJSQjogIiArIHJiZi5jcmVhdGUobGtleSwgbnVsbCkpOworCisgICAgLy8gSUNVTm90aWZpZXIKKyAgICBJQ1VOb3RpZmllciBuZiA9IG5ldyBJQ1VOU3ViY2xhc3MoKTsKKyAgICB0cnkgeworICAgICAgICBuZi5hZGRMaXN0ZW5lcihudWxsKTsKKyAgICAgICAgZXJybG4oImFkZGVkIG51bGwgbGlzdGVuZXIiKTsKKyAgICB9CisgICAgY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgbG9nbG4oZS5nZXRNZXNzYWdlKCkpOworICAgIH0KKyAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgZXJybG4oImdvdCB3cm9uZyBleGNlcHRpb24iKTsKKyAgICB9CisKKyAgICB0cnkgeworICAgICAgICBuZi5hZGRMaXN0ZW5lcihuZXcgV3JvbmdMaXN0ZW5lcigpKTsKKyAgICAgICAgZXJybG4oImFkZGVkIHdyb25nIGxpc3RlbmVyIik7CisgICAgfQorICAgIGNhdGNoIChJbGxlZ2FsU3RhdGVFeGNlcHRpb24gZSkgeworICAgICAgICBsb2dsbihlLmdldE1lc3NhZ2UoKSk7CisgICAgfQorICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICBlcnJsbigiZ290IHdyb25nIGV4Y2VwdGlvbiIpOworICAgIH0KKworICAgIHRyeSB7CisgICAgICAgIG5mLnJlbW92ZUxpc3RlbmVyKG51bGwpOworICAgICAgICBlcnJsbigicmVtb3ZlZCBudWxsIGxpc3RlbmVyIik7CisgICAgfQorICAgIGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGxvZ2xuKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICB9CisgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIGVycmxuKCJnb3Qgd3JvbmcgZXhjZXB0aW9uIik7CisgICAgfQorCisgICAgbmYucmVtb3ZlTGlzdGVuZXIobmV3IE15TGlzdGVuZXIoKSk7CisgICAgbmYubm90aWZ5Q2hhbmdlZCgpOworICAgIG5mLmFkZExpc3RlbmVyKG5ldyBNeUxpc3RlbmVyKCkpOworICAgIG5mLnJlbW92ZUxpc3RlbmVyKG5ldyBNeUxpc3RlbmVyKCkpOworICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBNeUxpc3RlbmVyIGltcGxlbWVudHMgRXZlbnRMaXN0ZW5lciB7CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIFdyb25nTGlzdGVuZXIgaW1wbGVtZW50cyBFdmVudExpc3RlbmVyIHsKKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgSUNVTlN1YmNsYXNzIGV4dGVuZHMgSUNVTm90aWZpZXIgeworICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHNMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpIHsKKyAgICAgICAgcmV0dXJuIGwgaW5zdGFuY2VvZiBNeUxpc3RlbmVyOworICAgIH0KKworICAgICAgICAvLyBub3QgdXNlZCwganVzdCBuZWVkZWQgdG8gaW1wbGVtZW50IGFic3RyYWN0IGJhc2UKKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyB2b2lkIG5vdGlmeUxpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbCkgeworICAgIH0KKyAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIExLRlN1YmNsYXNzIGV4dGVuZHMgTG9jYWxlS2V5RmFjdG9yeSB7CisgICAgTEtGU3ViY2xhc3MoYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIHN1cGVyKHZpc2libGUgPyBWSVNJQkxFIDogSU5WSVNJQkxFKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU2V0IGdldFN1cHBvcnRlZElEcygpIHsKKyAgICAgICAgICAgIHJldHVybiBDb2xsZWN0aW9ucy5FTVBUWV9TRVQ7CisgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVNlcnZpY2VUZXN0U2FtcGxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGVzdFNhbXBsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiNDRmZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGVzdFNhbXBsZS5qYXZhCkBAIC0wLDAgKzEsMjIwIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQgamF2YS51dGlsLkV2ZW50TGlzdGVuZXI7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwLkVudHJ5OworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZE1hcDsKKworcHVibGljIGNsYXNzIElDVVNlcnZpY2VUZXN0U2FtcGxlIHsKKyAgICBzdGF0aWMgcHVibGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIEhlbGxvU2VydmljZUNsaWVudCBjbGllbnQgPSBuZXcgSGVsbG9TZXJ2aWNlQ2xpZW50KCk7CisKKyAgICAgICAgVGhyZWFkIHQgPSBuZXcgSGVsbG9VcGRhdGVUaHJlYWQoKTsKKyAgICAgICAgdC5zdGFydCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgdC5qb2luKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRvbmUiKTsKKyAgICAgICAgaWYoY2xpZW50PT1udWxsKXsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEEgY2xhc3MgdGhhdCBkaXNwbGF5cyB0aGUgY3VycmVudCBuYW1lcyBpbiB0aGUgSGVsbG8gc2VydmljZS4KKyAgICAgKiBFYWNoIHRpbWUgdGhlIHNlcnZpY2UgY2hhbmdlcywgaXQgcmVkaXNwbGF5cyB0aGUgbmFtZXMuCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIEhlbGxvU2VydmljZUNsaWVudCBpbXBsZW1lbnRzIEhlbGxvU2VydmljZS5IZWxsb1NlcnZpY2VMaXN0ZW5lciB7CisKKyAgICAgICAgSGVsbG9TZXJ2aWNlQ2xpZW50KCkgeworICAgICAgICAgICAgSGVsbG9TZXJ2aWNlLmFkZExpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgZGlzcGxheSgpOworICAgICAgICB9CisKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyB3aWxsIGJlIGNhbGxlZCBpbiB0aGUgbm90aWZpY2F0aW9uIHRocmVhZCBvZgorICAgICAgICAgKiBJQ1VOb3RpZmllci4gIElDVU5vdGlmaWVyIGNvdWxkIHNwYXduIGEgKG5vbi1kYWVtb24pIHRocmVhZAorICAgICAgICAgKiBmb3IgZWFjaCBsaXN0ZW5lciwgc28gdGhhdCBpbXBvbGl0ZSBsaXN0ZW5lcnMgd291bGRuJ3QgaG9sZAorICAgICAgICAgKiB1cCBub3RpZmljYXRpb24sIGJ1dCByaWdodCBub3cgaXQgZG9lc24ndC4gIEluc3RlYWQsIGFsbAorICAgICAgICAgKiBub3RpZmljYXRpb25zIGFyZSBkZWxpdmVyZWQgb24gdGhlIG5vdGlmaWNhdGlvbiB0aHJlYWQuCisgICAgICAgICAqIFNpbmNlIHRoYXQncyBhIGRhZW1vbiB0aHJlYWQsIGEgbm90aWZpY2F0aW9uIG1pZ2h0IG5vdAorICAgICAgICAgKiBjb21wbGV0ZSBiZWZvcmUgbWFpbiB0ZXJtaW5hdGVzLiAgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBoZWxsb1NlcnZpY2VDaGFuZ2VkKCkgeworICAgICAgICAgICAgZGlzcGxheSgpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGRpc3BsYXkoKSB7CisgICAgICAgICAgICBNYXAgbmFtZXMgPSBIZWxsb1NlcnZpY2UuZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUuVVMpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkaXNwbGF5aW5nICIgKyBuYW1lcy5zaXplKCkgKyAiIG5hbWVzLiIpOworICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IG5hbWVzLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIEVudHJ5IGVudHJ5ID0gKEVudHJ5KWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBkaXNwbGF5TmFtZSA9IChTdHJpbmcpZW50cnkuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgSGVsbG9TZXJ2aWNlIHNlcnZpY2UgPSBIZWxsb1NlcnZpY2UuZ2V0KChTdHJpbmcpZW50cnkuZ2V0VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGRpc3BsYXlOYW1lICsgIiBzYXlzICIgKyBzZXJ2aWNlLmhlbGxvKCkpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcCg1MCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCItLS0tIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIHRocmVhZCB0byB1cGRhdGUgdGhlIHNlcnZpY2UuCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIEhlbGxvVXBkYXRlVGhyZWFkIGV4dGVuZHMgVGhyZWFkIHsKKyAgICAgICAgU3RyaW5nW11bXSB1cGRhdGVzID0geworICAgICAgICAgICAgeyAiSGV5IiwgImVuX1VTX0lORk9STUFMIiB9LAorICAgICAgICAgICAgeyAiSGFsbG8iLCAiZGVfREVfSU5GT1JNQUwiIH0sCisgICAgICAgICAgICB7ICJZbyEiLCAiZW5fVVNfQ0FMSUZPUk5JQV9JTkZPUk1BTCIgfSwKKyAgICAgICAgICAgIHsgIkNoaSBGYW5sZSBNYT8iLCAiemhfX0lORk9STUFMIiB9LAorICAgICAgICAgICAgeyAiTXVuY2ggbXVuY2guLi4gQnVyZ2VyPyIsICJlbiIgfSwKKyAgICAgICAgICAgIHsgIlNuaWZmIiwgImZyIiB9LAorICAgICAgICAgICAgeyAiVG9uZ1poaSEgTWFvWmVEb25nIFNpWGlhbmcgV2FuIFN1aSEiLCAiemhfQ04iIH0sCisgICAgICAgICAgICB7ICJCaWVyPyBKYSEiLCAiZGUiIH0sCisgICAgICAgIH07CisgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdXBkYXRlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcCg1MDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBIZWxsb1NlcnZpY2UucmVnaXN0ZXIodXBkYXRlc1tpXVswXSwgbmV3IFVMb2NhbGUodXBkYXRlc1tpXVsxXSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQW4gZXhhbXBsZSBzZXJ2aWNlIHRoYXQgd3JhcHMgYW4gSUNVIHNlcnZpY2UgaW4gb3JkZXIgdG8gZXhwb3J0IGN1c3RvbSBBUEkgYW5kCisgICAgICogbm90aWZpY2F0aW9uLiBUaGUgc2VydmljZSBqdXN0IGltcGxlbWVudHMgJ2hlbGxvJy4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgSGVsbG9TZXJ2aWNlIHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgSUNVU2VydmljZSByZWdpc3RyeTsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbmFtZTsKKyAgICAKKyAgICAgICAgcHJpdmF0ZSBIZWxsb1NlcnZpY2UoU3RyaW5nIG5hbWUpIHsgCisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOyAKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGhlbGxvIHNlcnZpY2UuLi4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgaGVsbG8oKSB7IAorICAgICAgICAgICAgcmV0dXJuIG5hbWU7IAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeyAKKyAgICAgICAgICAgIHJldHVybiBzdXBlci50b1N0cmluZygpICsgIjogIiArIG5hbWU7IAorICAgICAgICB9CisgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZlcnJlZCBpbml0LgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgSUNVU2VydmljZSByZWdpc3RyeSgpIHsKKyAgICAgICAgICAgIGlmIChyZWdpc3RyeSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaW5pdFJlZ2lzdHJ5KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVnaXN0cnk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBpbml0UmVnaXN0cnkoKSB7CisgICAgICAgICAgICByZWdpc3RyeSA9IG5ldyBJQ1VMb2NhbGVTZXJ2aWNlKCkgeworICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhY2NlcHRzTGlzdGVuZXIoRXZlbnRMaXN0ZW5lciBsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gd2UgYWxyZWFkeSB2ZXJpZnkgaW4gb3VyIHdyYXBwZXIgQVBJcworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCB2b2lkIG5vdGlmeUxpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKChIZWxsb1NlcnZpY2VMaXN0ZW5lcilsKS5oZWxsb1NlcnZpY2VDaGFuZ2VkKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZQorICAgICAgICAgICAgZG9SZWdpc3RlcigiSGVsbG8iLCAiZW4iKTsKKyAgICAgICAgICAgIGRvUmVnaXN0ZXIoIkJvbmpvdXIiLCAiZnIiKTsKKyAgICAgICAgICAgIGRvUmVnaXN0ZXIoIk5pIEhhbyIsICJ6aF9DTiIpOworICAgICAgICAgICAgZG9SZWdpc3RlcigiR3V0ZW4gVGFnIiwgImRlIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEEgY3VzdG9tIGxpc3RlbmVyIGZvciBjaGFuZ2VzIHRvIHRoaXMgc2VydmljZS4gIFdlIGRvbid0IG5lZWQgdG8KKyAgICAgICAgICogcG9pbnQgdG8gdGhlIHNlcnZpY2Ugc2luY2UgaXQgaXMgZGVmaW5lZCBieSB0aGlzIGNsYXNzIGFuZCBub3QKKyAgICAgICAgICogYW4gb2JqZWN0LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgSGVsbG9TZXJ2aWNlTGlzdGVuZXIgZXh0ZW5kcyBFdmVudExpc3RlbmVyIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGhlbGxvU2VydmljZUNoYW5nZWQoKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVHlwZS1zYWZlIG5vdGlmaWNhdGlvbiBmb3IgdGhpcyBzZXJ2aWNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIGFkZExpc3RlbmVyKEhlbGxvU2VydmljZUxpc3RlbmVyIGwpIHsKKyAgICAgICAgICAgIHJlZ2lzdHJ5KCkuYWRkTGlzdGVuZXIobCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFR5cGUtc2FmZSBub3RpZmljYXRpb24gZm9yIHRoaXMgc2VydmljZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVMaXN0ZW5lcihIZWxsb1NlcnZpY2VMaXN0ZW5lciBsKSB7CisgICAgICAgICAgICByZWdpc3RyeSgpLnJlbW92ZUxpc3RlbmVyKGwpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBUeXBlLXNhZmUgYWNjZXNzIHRvIHRoZSBzZXJ2aWNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBIZWxsb1NlcnZpY2UgZ2V0KFN0cmluZyBpZCkgeworICAgICAgICAgICAgcmV0dXJuIChIZWxsb1NlcnZpY2UpcmVnaXN0cnkoKS5nZXQoaWQpOworICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgU2V0IGdldFZpc2libGVJRHMoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVnaXN0cnkoKS5nZXRWaXNpYmxlSURzKCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcHVibGljIHN0YXRpYyBNYXAgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWVzKHJlZ2lzdHJ5KCksIGxvY2FsZSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJlZ2lzdGVyIGEgbmV3IGhlbGxvIHN0cmluZyBmb3IgdGhpcyBsb2NhbGUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXIoU3RyaW5nIGhlbGxvU3RyaW5nLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAgICAgaWYgKGhlbGxvU3RyaW5nID09IG51bGwgfHwgbG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvUmVnaXN0ZXIoaGVsbG9TdHJpbmcsIGxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGRvUmVnaXN0ZXIoU3RyaW5nIGhlbGxvLCBTdHJpbmcgaWQpIHsKKyAgICAgICAgICAgIHJlZ2lzdHJ5KCkucmVnaXN0ZXJPYmplY3QobmV3IEhlbGxvU2VydmljZShoZWxsbyksIGlkKTsKKyAgICAgICAgfQorICAgICAgICAvKioKKyAgICAgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUsIENvbXBhcmF0b3IsIFN0cmluZykgdGhhdAorICAgICAgICAgKiB1c2VzIHRoZSBkZWZhdWx0IGNvbGxhdG9yIGZvciB0aGUgbG9jYWxlIGFzIHRoZSBjb21wYXJhdG9yIHRvCisgICAgICAgICAqIHNvcnQgdGhlIGRpc3BsYXkgbmFtZXMsIGFuZCBudWxsIGZvciB0aGUgbWF0Y2hJRC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgU29ydGVkTWFwIGdldERpc3BsYXlOYW1lcyhJQ1VTZXJ2aWNlIHNlcnZpY2UsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICBDb2xsYXRvciBjb2wgPSBDb2xsYXRvci5nZXRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0RGlzcGxheU5hbWVzKGxvY2FsZSwgY29sLCBudWxsKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0lDVVNlcnZpY2VUaHJlYWRUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGhyZWFkVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyOWFjMDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9JQ1VTZXJ2aWNlVGhyZWFkVGVzdC5qYXZhCkBAIC0wLDAgKzEsNDc2IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RMb2c7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5GYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5TaW1wbGVGYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwLkVudHJ5OworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5Tb3J0ZWRNYXA7CisKK3B1YmxpYyBjbGFzcyBJQ1VTZXJ2aWNlVGhyZWFkVGVzdCBleHRlbmRzIFRlc3RGbXdrCit7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gUFJJTlRTVEFUUyA9IGZhbHNlOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIElDVVNlcnZpY2VUaHJlYWRUZXN0IHRlc3QgPSBuZXcgSUNVU2VydmljZVRocmVhZFRlc3QoKTsKKyAgICAgICAgdGVzdC5ydW4oYXJncyk7CisKKyAgICAgICAgLy8gZ2V0CisgICAgICAgIC8vIGdldHZpc2libGVpZHMKKyAgICAgICAgLy8gZ2V0ZGlzcGxheW5hbWUobG9jYWxlKQorICAgICAgICAvLyBmYWN0b3JpZXMKKyAgICAKKyAgICAgICAgLy8gcmVnaXN0ZXJGYWN0b3J5CisgICAgICAgIC8vIHVucmVnaXN0ZXJGYWN0b3J5CisKKyAgICAgICAgLy8gMSkgY29uY3VycmVudCBhY2Nlc3MKKyAgICAgICAgLy8gMikgYWNjZXNzIHdoaWxlIGZhY3RvcmllcyBjaGFuZ2UKKyAgICAgICAgLy8gMykgaXRlcmF0aW9uIHdoaWxlIGZhY3RvcmllcyBjaGFuZ2UKKyAgICAgICAgLy8gNCkgY29uY3VycmVudCBjb25mbGljdGluZyBhY2Nlc3MKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBjb3VudHJpZXMgPSB7CisgICAgICAgICJhYiIsICJiYyIsICJjZCIsICJkZSIsICJlZiIsICJmZyIsICJnaCIsICJqaSIsICJpaiIsICJqayIKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGxhbmd1YWdlcyA9IHsKKyAgICAgICAgIiIsICJaWSIsICJZWCIsICJYVyIsICJXViIsICJWVSIsICJVVCIsICJUUyIsICJTUiIsICJSUSIsICJRUCIKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHZhcmlhbnRzID0geworICAgICAgICAiIiwgIiIsICIiLCAiR09MRCIsICJTSUxWRVIiLCAiQlJPTlpFIgorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBUZXN0RmFjdG9yeSBleHRlbmRzIFNpbXBsZUZhY3RvcnkgeworICAgICAgICBUZXN0RmFjdG9yeShTdHJpbmcgaWQpIHsKKyAgICAgICAgICAgIHN1cGVyKG5ldyBVTG9jYWxlKGlkKSwgaWQsIHRydWUpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICByZXR1cm4gKHZpc2libGUgJiYgaWQuZXF1YWxzKHRoaXMuaWQpKSA/ICIoIiArIGxvY2FsZS50b1N0cmluZygpICsgIikgIiArIGlkIDogbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gIkZhY3RvcnlfIiArIGlkOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIG9mIGdldERpc3BsYXlOYW1lcyhVTG9jYWxlLCBDb21wYXJhdG9yLCBTdHJpbmcpIHRoYXQKKyAgICAgKiB1c2VzIHRoZSBkZWZhdWx0IGNvbGxhdG9yIGZvciB0aGUgbG9jYWxlIGFzIHRoZSBjb21wYXJhdG9yIHRvCisgICAgICogc29ydCB0aGUgZGlzcGxheSBuYW1lcywgYW5kIG51bGwgZm9yIHRoZSBtYXRjaElELgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU29ydGVkTWFwIGdldERpc3BsYXlOYW1lcyhJQ1VTZXJ2aWNlIHNlcnZpY2UsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIENvbGxhdG9yIGNvbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbCA9IENvbGxhdG9yLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgIH0gCisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gaWYgbm8gY29sbGF0b3IgcmVzb3VyY2VzLCB3ZSBjYW4ndCBjb2xsYXRlCisgICAgICAgICAgICBjb2wgPSBudWxsOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzZXJ2aWNlLmdldERpc3BsYXlOYW1lcyhsb2NhbGUsIGNvbCwgbnVsbCk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFJhbmRvbSByID0gbmV3IFJhbmRvbSgpOyAvLyB0aGlzIGlzIGEgbXVsdGkgdGhyZWFkIHRlc3QsIGNhbid0ICd1bnJhbmRvbWl6ZScgCisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0Q0xWKCkgeworICAgICAgICBTdHJpbmcgYyA9IGNvdW50cmllc1tyLm5leHRJbnQoY291bnRyaWVzLmxlbmd0aCldOworICAgICAgICBTdHJpbmcgbCA9IGxhbmd1YWdlc1tyLm5leHRJbnQobGFuZ3VhZ2VzLmxlbmd0aCldOworICAgICAgICBTdHJpbmcgdiA9IHZhcmlhbnRzW3IubmV4dEludCh2YXJpYW50cy5sZW5ndGgpXTsKKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGUoYywgbCwgdikudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIFdBSVQgPSB0cnVlOworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gR08gPSBmYWxzZTsKKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIFRJTUUgPSA1MDAwOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJ1blRocmVhZHMoKSB7CisgICAgICAgIHJ1blRocmVhZHMoVElNRSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJ1blRocmVhZHMobG9uZyB0aW1lKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBHTyA9IHRydWU7CisgICAgICAgICAgICBXQUlUID0gZmFsc2U7CisKKyAgICAgICAgICAgIFRocmVhZC5zbGVlcCh0aW1lKTsKKworICAgICAgICAgICAgV0FJVCA9IHRydWU7CisgICAgICAgICAgICBHTyA9IGZhbHNlOworCisgICAgICAgICAgICBUaHJlYWQuc2xlZXAoMzAwKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIFRlc3RUaHJlYWQgZXh0ZW5kcyBUaHJlYWQgeworICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBuYW1lOworICAgICAgICBwcm90ZWN0ZWQgSUNVU2VydmljZSBzZXJ2aWNlOworICAgICAgICBwcml2YXRlIGZpbmFsIGxvbmcgZGVsYXk7CisgICAgICAgIHByb3RlY3RlZCBmaW5hbCBUZXN0TG9nIGxvZzsKKworICAgICAgICBwdWJsaWMgVGVzdFRocmVhZChTdHJpbmcgbmFtZSwgSUNVU2VydmljZSBzZXJ2aWNlLCBsb25nIGRlbGF5LCBUZXN0TG9nIGxvZykgeworICAgICAgICAgICAgdGhpcy5uYW1lID0gbmFtZSArICIgIjsKKyAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IHNlcnZpY2U7CisgICAgICAgICAgICB0aGlzLmRlbGF5ID0gZGVsYXk7CisgICAgICAgICAgICB0aGlzLmxvZyA9IG5ldyBEZWxlZ2F0aW5nTG9nKGxvZyk7CisgICAgICAgICAgICB0aGlzLnNldERhZW1vbih0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgIHdoaWxlIChXQUlUKSB7CisgICAgICAgICAgICAgICAgVGhyZWFkLnlpZWxkKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgd2hpbGUgKEdPKSB7CisgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRlbGF5ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgVGhyZWFkLnNsZWVwKGRlbGF5KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBpdGVyYXRlKCkgeworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBsb2dnaW5nKCkgeworICAgICAgICAgIHJldHVybiBsb2cgIT0gbnVsbDsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBwdWJsaWMgdm9pZCBsb2coU3RyaW5nIG1zZykgeworICAgICAgICAgIGlmIChsb2dnaW5nKCkpIHsKKyAgICAgICAgICBsb2cubG9nKG5hbWUgKyBtc2cpOworICAgICAgICAgIH0KKyAgICAgICAgICB9CisKKyAgICAgICAgICBwdWJsaWMgdm9pZCBsb2dsbihTdHJpbmcgbXNnKSB7CisgICAgICAgICAgaWYgKGxvZ2dpbmcoKSkgeworICAgICAgICAgIGxvZy5sb2dsbihuYW1lICsgbXNnKTsKKyAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgcHVibGljIHZvaWQgZXJyKFN0cmluZyBtc2cpIHsKKyAgICAgICAgICBpZiAobG9nZ2luZygpKSB7CisgICAgICAgICAgbG9nLmVycihuYW1lICsgbXNnKTsKKyAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgcHVibGljIHZvaWQgZXJybG4oU3RyaW5nIG1zZykgeworICAgICAgICAgIGlmIChsb2dnaW5nKCkpIHsKKyAgICAgICAgICBsb2cuZXJybG4obmFtZSArIG1zZyk7CisgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIHB1YmxpYyB2b2lkIHdhcm4oU3RyaW5nIG1zZykgeworICAgICAgICAgIGlmIChsb2dnaW5nKCkpIHsKKyAgICAgICAgICBsb2cuaW5mbyhuYW1lICsgbXNnKTsKKyAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgcHVibGljIHZvaWQgd2FybmxuKFN0cmluZyBtc2cpIHsKKyAgICAgICAgICBpZiAobG9nZ2luZygpKSB7CisgICAgICAgICAgbG9nLmluZm9sbihuYW1lICsgbXNnKTsKKyAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICAqLworICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBSZWdpc3RlckZhY3RvcnlUaHJlYWQgZXh0ZW5kcyBUZXN0VGhyZWFkIHsKKyAgICAgICAgUmVnaXN0ZXJGYWN0b3J5VGhyZWFkKFN0cmluZyBuYW1lLCBJQ1VTZXJ2aWNlIHNlcnZpY2UsIGxvbmcgZGVsYXksIFRlc3RMb2cgbG9nKSB7CisgICAgICAgICAgICBzdXBlcigiUkVHICIgKyBuYW1lLCBzZXJ2aWNlLCBkZWxheSwgbG9nKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGl0ZXJhdGUoKSB7CisgICAgICAgICAgICBGYWN0b3J5IGYgPSBuZXcgVGVzdEZhY3RvcnkoZ2V0Q0xWKCkpOworICAgICAgICAgICAgc2VydmljZS5yZWdpc3RlckZhY3RvcnkoZik7CisgICAgICAgICAgICBsb2cubG9nbG4oZi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjbGFzcyBVbnJlZ2lzdGVyRmFjdG9yeVRocmVhZCBleHRlbmRzIFRlc3RUaHJlYWQgeworICAgICAgICBwcml2YXRlIFJhbmRvbSByOworICAgICAgICBMaXN0IGZhY3RvcmllczsKKworICAgICAgICBVbnJlZ2lzdGVyRmFjdG9yeVRocmVhZChTdHJpbmcgbmFtZSwgSUNVU2VydmljZSBzZXJ2aWNlLCBsb25nIGRlbGF5LCBUZXN0TG9nIGxvZykgeworICAgICAgICAgICAgc3VwZXIoIlVOUkVHICIgKyBuYW1lLCBzZXJ2aWNlLCBkZWxheSwgbG9nKTsKKyAgICAgICAgCisgICAgICAgICAgICByID0gbmV3IFJhbmRvbSgpOworICAgICAgICAgICAgZmFjdG9yaWVzID0gc2VydmljZS5mYWN0b3JpZXMoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGl0ZXJhdGUoKSB7CisgICAgICAgICAgICBpbnQgcyA9IGZhY3Rvcmllcy5zaXplKCk7CisgICAgICAgICAgICBpZiAocyA9PSAwKSB7CisgICAgICAgICAgICAgICAgZmFjdG9yaWVzID0gc2VydmljZS5mYWN0b3JpZXMoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IG4gPSByLm5leHRJbnQocyk7CisgICAgICAgICAgICAgICAgRmFjdG9yeSBmID0gKEZhY3RvcnkpZmFjdG9yaWVzLnJlbW92ZShuKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIHN1Y2Nlc3MgPSBzZXJ2aWNlLnVucmVnaXN0ZXJGYWN0b3J5KGYpOworICAgICAgICAgICAgICAgIGxvZy5sb2dsbigiZmFjdG9yeTogIiArIGYgKyAoc3VjY2VzcyA/ICIgc3VjY2VlZGVkLiIgOiAiICoqKiBmYWlsZWQuIikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIFVucmVnaXN0ZXJGYWN0b3J5TGlzdFRocmVhZCBleHRlbmRzIFRlc3RUaHJlYWQgeworICAgICAgICBGYWN0b3J5W10gZmFjdG9yaWVzOworICAgICAgICBpbnQgbjsKKworICAgICAgICBVbnJlZ2lzdGVyRmFjdG9yeUxpc3RUaHJlYWQoU3RyaW5nIG5hbWUsIElDVVNlcnZpY2Ugc2VydmljZSwgbG9uZyBkZWxheSwgRmFjdG9yeVtdIGZhY3RvcmllcywgVGVzdExvZyBsb2cpIHsKKyAgICAgICAgICAgIHN1cGVyKCJVTlJFRyAiICsgbmFtZSwgc2VydmljZSwgZGVsYXksIGxvZyk7CisgICAgICAgIAorICAgICAgICAgICAgdGhpcy5mYWN0b3JpZXMgPSBmYWN0b3JpZXM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBpdGVyYXRlKCkgeworICAgICAgICAgICAgaWYgKG4gPCBmYWN0b3JpZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgRmFjdG9yeSBmID0gZmFjdG9yaWVzW24rK107CisgICAgICAgICAgICAgICAgYm9vbGVhbiBzdWNjZXNzID0gc2VydmljZS51bnJlZ2lzdGVyRmFjdG9yeShmKTsKKyAgICAgICAgICAgICAgICBsb2cubG9nbG4oImZhY3Rvcnk6ICIgKyBmICsgKHN1Y2Nlc3MgPyAiIHN1Y2NlZWRlZC4iIDogIiAqKiogZmFpbGVkLiIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworCisgICAgc3RhdGljIGNsYXNzIEdldFZpc2libGVUaHJlYWQgZXh0ZW5kcyBUZXN0VGhyZWFkIHsKKyAgICAgICAgR2V0VmlzaWJsZVRocmVhZChTdHJpbmcgbmFtZSwgSUNVU2VydmljZSBzZXJ2aWNlLCBsb25nIGRlbGF5LCBUZXN0TG9nIGxvZykgeworICAgICAgICAgICAgc3VwZXIoIlZJUyAiICsgbmFtZSwgc2VydmljZSwgZGVsYXksIGxvZyk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBpdGVyYXRlKCkgeworICAgICAgICAgICAgU2V0IGlkcyA9IHNlcnZpY2UuZ2V0VmlzaWJsZUlEcygpOworICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IGlkcy5pdGVyYXRvcigpOworICAgICAgICAgICAgaW50IG4gPSAxMDsKKyAgICAgICAgICAgIHdoaWxlICgtLW4gPj0gMCAmJiBpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IChTdHJpbmcpaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgT2JqZWN0IHJlc3VsdCA9IHNlcnZpY2UuZ2V0KGlkKTsKKyAgICAgICAgICAgICAgICBsb2cubG9nbG4oIml0ZXI6ICIgKyBuICsgIiBpZDogIiArIGlkICsgIiByZXN1bHQ6ICIgKyByZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIEdldERpc3BsYXlUaHJlYWQgZXh0ZW5kcyBUZXN0VGhyZWFkIHsKKyAgICAgICAgVUxvY2FsZSBsb2NhbGU7CisKKyAgICAgICAgR2V0RGlzcGxheVRocmVhZChTdHJpbmcgbmFtZSwgSUNVU2VydmljZSBzZXJ2aWNlLCBsb25nIGRlbGF5LCBVTG9jYWxlIGxvY2FsZSwgVGVzdExvZyBsb2cpIHsKKyAgICAgICAgICAgIHN1cGVyKCJESVMgIiArIG5hbWUsIHNlcnZpY2UsIGRlbGF5LCBsb2cpOworCisgICAgICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGl0ZXJhdGUoKSB7CisgICAgICAgICAgICBNYXAgbmFtZXMgPSBnZXREaXNwbGF5TmFtZXMoc2VydmljZSxsb2NhbGUpOworICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IG5hbWVzLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIGludCBuID0gMTA7CisgICAgICAgICAgICB3aGlsZSAoLS1uID49IDAgJiYgaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBFbnRyeSBlID0gKEVudHJ5KWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBkbmFtZSA9IChTdHJpbmcpZS5nZXRLZXkoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKWUuZ2V0VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBPYmplY3QgcmVzdWx0ID0gc2VydmljZS5nZXQoaWQpOworICAgICAgICAgICAgICAgIGxvZy5sb2dsbigiIGl0ZXI6ICIgKyBuICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgZG5hbWU6ICIgKyBkbmFtZSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiIGlkOiAiICsgaWQgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiByZXN1bHQ6ICIgKyByZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIEdldFRocmVhZCBleHRlbmRzIFRlc3RUaHJlYWQgeworICAgICAgICBwcml2YXRlIFN0cmluZ1tdIGFjdHVhbElEOworCisgICAgICAgIEdldFRocmVhZChTdHJpbmcgbmFtZSwgSUNVU2VydmljZSBzZXJ2aWNlLCBsb25nIGRlbGF5LCBUZXN0TG9nIGxvZykgeworICAgICAgICAgICAgc3VwZXIoIkdFVCAiICsgbmFtZSwgc2VydmljZSwgZGVsYXksIGxvZyk7CisKKyAgICAgICAgICAgIGFjdHVhbElEID0gbmV3IFN0cmluZ1sxXTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGl0ZXJhdGUoKSB7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSBnZXRDTFYoKTsKKyAgICAgICAgICAgIE9iamVjdCBvID0gc2VydmljZS5nZXQoaWQsIGFjdHVhbElEKTsKKyAgICAgICAgICAgIGlmIChvICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsb2cubG9nbG4oIiBpZDogIiArIGlkICsgIiBhY3R1YWw6ICIgKyBhY3R1YWxJRFswXSArICIgcmVzdWx0OiAiICsgbyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgR2V0TGlzdFRocmVhZCBleHRlbmRzIFRlc3RUaHJlYWQgeworICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZ1tdIGxpc3Q7CisgICAgICAgIHByaXZhdGUgaW50IG47CisKKyAgICAgICAgR2V0TGlzdFRocmVhZChTdHJpbmcgbmFtZSwgSUNVU2VydmljZSBzZXJ2aWNlLCBsb25nIGRlbGF5LCBTdHJpbmdbXSBsaXN0LCBUZXN0TG9nIGxvZykgeworICAgICAgICAgICAgc3VwZXIoIkdFVEwgIiArIG5hbWUsIHNlcnZpY2UsIGRlbGF5LCBsb2cpOworCisgICAgICAgICAgICB0aGlzLmxpc3QgPSBsaXN0OworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaXRlcmF0ZSgpIHsKKyAgICAgICAgICAgIGlmICgtLW4gPCAwKSB7CisgICAgICAgICAgICAgICAgbiA9IGxpc3QubGVuZ3RoIC0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBpZCA9IGxpc3Rbbl07CisgICAgICAgICAgICBPYmplY3QgbyA9IHNlcnZpY2UuZ2V0KGlkKTsKKyAgICAgICAgICAgIGxvZy5sb2dsbigiIGlkOiAiICsgaWQgKyAiIHJlc3VsdDogIiArIG8pOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gcmV0dXJuIGEgY29sbGVjdGlvbiBvZiB1bmlxdWUgZmFjdG9yaWVzLCBtaWdodCBiZSBmZXdlciB0aGFuIHJlcXVlc3RlZAorICAgIENvbGxlY3Rpb24gZ2V0RmFjdG9yeUNvbGxlY3Rpb24oaW50IHJlcXVlc3RlZCkgeworICAgICAgICBTZXQgbG9jYWxlcyA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVxdWVzdGVkOyArK2kpIHsKKyAgICAgICAgICAgIGxvY2FsZXMuYWRkKGdldENMVigpKTsKKyAgICAgICAgfQorICAgICAgICBMaXN0IGZhY3RvcmllcyA9IG5ldyBBcnJheUxpc3QobG9jYWxlcy5zaXplKCkpOworICAgICAgICBJdGVyYXRvciBpdGVyID0gbG9jYWxlcy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIGZhY3Rvcmllcy5hZGQobmV3IFRlc3RGYWN0b3J5KChTdHJpbmcpaXRlci5uZXh0KCkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFjdG9yaWVzOworICAgIH0KKworICAgIHZvaWQgcmVnaXN0ZXJGYWN0b3JpZXMoSUNVU2VydmljZSBzZXJ2aWNlLCBDb2xsZWN0aW9uIGMpIHsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IGMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeSgoRmFjdG9yeSlpdGVyLm5leHQoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBJQ1VTZXJ2aWNlIHN0YWJsZVNlcnZpY2UoKSB7CisgICAgICAgIGlmIChzdGFibGVTZXJ2aWNlID09IG51bGwpIHsKKyAgICAgICAgICAgIHN0YWJsZVNlcnZpY2UgPSBuZXcgSUNVTG9jYWxlU2VydmljZSgpOworICAgICAgICAgICAgcmVnaXN0ZXJGYWN0b3JpZXMoc3RhYmxlU2VydmljZSwgZ2V0RmFjdG9yeUNvbGxlY3Rpb24oNTApKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RhYmxlU2VydmljZTsKKyAgICB9CisgICAgcHJpdmF0ZSBJQ1VTZXJ2aWNlIHN0YWJsZVNlcnZpY2U7CisKKyAgICAvLyBydW4gbXVsdGlwbGUgZ2V0IG9uIGEgc3RhYmxlIHNlcnZpY2UKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDBfQ29uY3VycmVudEdldCgpIHsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICAgICAgICAgIG5ldyBHZXRUaHJlYWQoIlsiICsgSW50ZWdlci50b1N0cmluZyhpKSArICJdIiwgIHN0YWJsZVNlcnZpY2UoKSwgMCwgdGhpcykuc3RhcnQoKTsKKyAgICAgICAgfQorICAgICAgICBydW5UaHJlYWRzKCk7CisgICAgICAgIGlmIChQUklOVFNUQVRTKSBTeXN0ZW0ub3V0LnByaW50bG4oc3RhYmxlU2VydmljZS5zdGF0cygpKTsKKyAgICB9CisKKyAgICAvLyBydW4gbXVsdGlwbGUgZ2V0VmlzaWJsZUlEIG9uIGEgc3RhYmxlIHNlcnZpY2UKKyAgICBwdWJsaWMgdm9pZCBUZXN0MDFfQ29uY3VycmVudEdldFZpc2libGUoKSB7CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgICAgICAgICBuZXcgR2V0VmlzaWJsZVRocmVhZCgiWyIgKyBJbnRlZ2VyLnRvU3RyaW5nKGkpICsgIl0iLCAgc3RhYmxlU2VydmljZSgpLCAwLCB0aGlzKS5zdGFydCgpOworICAgICAgICB9CisgICAgICAgIHJ1blRocmVhZHMoKTsKKyAgICAgICAgaWYgKFBSSU5UU1RBVFMpIFN5c3RlbS5vdXQucHJpbnRsbihzdGFibGVTZXJ2aWNlLnN0YXRzKCkpOworICAgIH0KKworICAgIC8vIHJ1biBtdWx0aXBsZSBnZXREaXNwbGF5TmFtZSBvbiBhIHN0YWJsZSBzZXJ2aWNlCisgICAgcHVibGljIHZvaWQgVGVzdDAyX0NvbmN1cnJlbnRHZXREaXNwbGF5KCkgeworICAgICAgICBTdHJpbmdbXSBsb2NhbGVOYW1lcyA9IHsKKyAgICAgICAgICAgICJlbiIsICJlcyIsICJkZSIsICJmciIsICJ6aCIsICJpdCIsICJubyIsICJzdiIKKyAgICAgICAgfTsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGxvY2FsZU5hbWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgbG9jYWxlID0gbG9jYWxlTmFtZXNbaV07CisgICAgICAgICAgICBuZXcgR2V0RGlzcGxheVRocmVhZCgiWyIgKyBsb2NhbGUgKyAiXSIsICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWJsZVNlcnZpY2UoKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVMb2NhbGUobG9jYWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMpLnN0YXJ0KCk7CisgICAgICAgIH0KKyAgICAgICAgcnVuVGhyZWFkcygpOworICAgICAgICBpZiAoUFJJTlRTVEFUUykgU3lzdGVtLm91dC5wcmludGxuKHN0YWJsZVNlcnZpY2Uuc3RhdHMoKSk7CisgICAgfQorCisgICAgLy8gcnVuIHJlZ2lzdGVyL3VucmVnaXN0ZXIgb24gYSBzZXJ2aWNlCisgICAgcHVibGljIHZvaWQgVGVzdDAzX0NvbmN1cnJlbnRSZWdVbnJlZygpIHsKKyAgICAgICAgSUNVU2VydmljZSBzZXJ2aWNlID0gbmV3IElDVUxvY2FsZVNlcnZpY2UoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA1OyArK2kpIHsKKyAgICAgICAgICAgIG5ldyBSZWdpc3RlckZhY3RvcnlUaHJlYWQoIlsiICsgaSArICJdIiwgc2VydmljZSwgMCwgdGhpcykuc3RhcnQoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDU7ICsraSkgeworICAgICAgICAgICAgbmV3IFVucmVnaXN0ZXJGYWN0b3J5VGhyZWFkKCJbIiArIGkgKyAiXSIsIHNlcnZpY2UsIDAsIHRoaXMpLnN0YXJ0KCk7CisgICAgICAgIH0KKyAgICAgICAgcnVuVGhyZWFkcygpOworICAgICAgICBpZiAoUFJJTlRTVEFUUykgU3lzdGVtLm91dC5wcmludGxuKHNlcnZpY2Uuc3RhdHMoKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3QwNF9XaXRoZXJpbmdTZXJ2aWNlKCkgeworICAgICAgICBJQ1VTZXJ2aWNlIHNlcnZpY2UgPSBuZXcgSUNVTG9jYWxlU2VydmljZSgpOworCisgICAgICAgIENvbGxlY3Rpb24gZmMgPSBnZXRGYWN0b3J5Q29sbGVjdGlvbig1MCk7CisgICAgICAgIHJlZ2lzdGVyRmFjdG9yaWVzKHNlcnZpY2UsIGZjKTsKKworICAgICAgICBGYWN0b3J5W10gZmFjdG9yaWVzID0gKEZhY3RvcnlbXSlmYy50b0FycmF5KG5ldyBGYWN0b3J5W2ZjLnNpemUoKV0pOworICAgICAgICBDb21wYXJhdG9yIGNvbXAgPSBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGhzLnRvU3RyaW5nKCkuY29tcGFyZVRvKHJocy50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICBBcnJheXMuc29ydChmYWN0b3JpZXMsIGNvbXApOworCisgICAgICAgIG5ldyBHZXRUaHJlYWQoIiIsIHNlcnZpY2UsIDAsIHRoaXMpLnN0YXJ0KCk7CisgICAgICAgIG5ldyBVbnJlZ2lzdGVyRmFjdG9yeUxpc3RUaHJlYWQoIiIsIHNlcnZpY2UsIDMsIGZhY3RvcmllcywgdGhpcykuc3RhcnQoKTsKKworICAgICAgICBydW5UaHJlYWRzKDIwMDApOworICAgICAgICBpZiAoUFJJTlRTVEFUUykgU3lzdGVtLm91dC5wcmludGxuKHNlcnZpY2Uuc3RhdHMoKSk7CisgICAgfQorICAgIAorICAgIC8vICJhbGwgaGVsbCBicmVha3MgbG9vc2UiCisgICAgLy8gb25lIHJlZ2lzdGVyIGFuZCBvbmUgdW5yZWdpc3RlciB0aHJlYWQsIGRlbGF5IDUwMG1zCisgICAgLy8gdHdvIGRpc3BsYXkgdGhyZWFkcyB3aXRoIGRpZmZlcmVudCBsb2NhbGVzLCBkZWxheSA1MDBtczsKKyAgICAvLyBvbmUgdmlzaWJsZSBpZCB0aHJlYWQsIGRlbGF5IDUwbXMKKyAgICAvLyBmaWZ0ZWVuIGdldCB0aHJlYWRzLCBkZWxheSAwCisgICAgLy8gcnVuIGZvciB0ZW4gc2Vjb25kcworICAgIHB1YmxpYyB2b2lkIFRlc3QwNV9Db25jdXJyZW50RXZlcnl0aGluZygpIHsKKyAgICAgICAgSUNVU2VydmljZSBzZXJ2aWNlID0gbmV3IElDVUxvY2FsZVNlcnZpY2UoKTsKKworICAgICAgICBuZXcgUmVnaXN0ZXJGYWN0b3J5VGhyZWFkKCIiLCBzZXJ2aWNlLCA1MDAsIHRoaXMpLnN0YXJ0KCk7CisKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IDE1OyArK2kpIHsKKyAgICAgICAgICAgIG5ldyBHZXRUaHJlYWQoIlsiICsgSW50ZWdlci50b1N0cmluZyhpKSArICJdIiwgc2VydmljZSwgMCwgdGhpcykuc3RhcnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIG5ldyBHZXRWaXNpYmxlVGhyZWFkKCIiLCAgc2VydmljZSwgNTAsIHRoaXMpLnN0YXJ0KCk7CisKKyAgICAgICAgU3RyaW5nW10gbG9jYWxlTmFtZXMgPSB7CisgICAgICAgICAgICAiZW4iLCAiZGUiCisgICAgICAgIH07CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBsb2NhbGVOYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGxvY2FsZSA9IGxvY2FsZU5hbWVzW2ldOworICAgICAgICAgICAgbmV3IEdldERpc3BsYXlUaHJlYWQoIlsiICsgbG9jYWxlICsgIl0iLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFibGVTZXJ2aWNlKCksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFVMb2NhbGUobG9jYWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMpLnN0YXJ0KCk7CisgICAgICAgIH0KKworICAgICAgICBuZXcgVW5yZWdpc3RlckZhY3RvcnlUaHJlYWQoIiIsIHNlcnZpY2UsIDUwMCwgdGhpcykuc3RhcnQoKTsKKworICAgICAgICAvLyB5b3dlZWUhISEKKyAgICAgICAgcnVuVGhyZWFkcygxMDAwMCk7CisgICAgICAgIGlmIChQUklOVFNUQVRTKSBTeXN0ZW0ub3V0LnByaW50bG4oc2VydmljZS5zdGF0cygpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9MUlVNYXBUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9MUlVNYXBUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUwYTdjNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0xSVU1hcFRlc3QuamF2YQpAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5MUlVNYXA7CisKK3B1YmxpYyBjbGFzcyBMUlVNYXBUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBMUlVNYXBUZXN0IHRlc3QgPSBuZXcgTFJVTWFwVGVzdCgpOworICAgICAgICB0ZXN0LnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0TFJVTWFwKCkgeworICAgICAgICAvLyBEZWZhdWx0IHNpemUgLSBtYXggNjQKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgTFJVTWFwIHdpdGggdGhlIGRlZmF1bHQgc2l6ZSIpOworICAgICAgICBMUlVNYXAgbWFwID0gbmV3IExSVU1hcCgpOworICAgICAgICBleGVjdXRlKG1hcCwgNjQpOworCisgICAgICAgIC8vIG1heCBzaXplIC0gMTYKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgTFJVTWFwIHdpdGggaW5pdGlhbC9tYXggc2l6ZSAtIDQvMTYiKTsKKyAgICAgICAgbWFwID0gbmV3IExSVU1hcCg0LCAxNik7CisgICAgICAgIGV4ZWN1dGUobWFwLCAxNik7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGV4ZWN1dGUoTFJVTWFwIG1hcCwgaW50IG1heFNpemUgLyogbWF4U2l6ZSA+IDYgKi8pIHsKKyAgICAgICAgSW50ZWdlciBudW07CisgICAgICAgIFN0cmluZyBudW1TdHI7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbWF4U2l6ZTsgaSsrKSB7CisgICAgICAgICAgICBudW0gPSBuZXcgSW50ZWdlcihpKTsKKyAgICAgICAgICAgIG51bVN0ciA9IG51bS50b1N0cmluZygpOworICAgICAgICAgICAgbWFwLnB1dChudW1TdHIsIG51bSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlIGZpcnN0IGtleS92YWx1ZSBzaG91bGQgYmUgcmVtb3ZlZCwgYmVjYXVzZQorICAgICAgICAvLyB3ZSBhbHJlYWR5IHB1dCA2NSBlbnRyaWVzCisgICAgICAgIG51bSA9IChJbnRlZ2VyKW1hcC5nZXQoIjAiKTsKKyAgICAgICAgaWYgKG51bSA9PSBudWxsKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IFRoZSBlbnRyeSAnMCcgd2FzIHJlbW92ZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIGVudHJ5ICcwJyBpcyBzdGlsbCBhdmFpbGFibGUuIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gQWNjZXNzIHRoZSBzZWNvbmQgZW50cnkgJzEnLCB3aGljaCBpcyBjdXJyZW50bHkKKyAgICAgICAgLy8gdGhlIGVsZGVzdC4KKyAgICAgICAgbnVtID0gKEludGVnZXIpbWFwLmdldCgiMSIpOworICAgICAgICBpZiAobnVtID09IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgZWxkZXN0IGVudHJ5ICcxJyB3YXMgcmVtb3ZlZC4iKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogVGhlIGVsZGVzdCBlbnRyeSAnMScgaXMgYXZhaWxhYmxlLiIpOworICAgICAgICB9CisgICAgICAgIC8vIFB1dCBhbm90aGVyIGVudHJ5IC0gYmVjYXVzZSB0aGUgZW50cnkgJzEnIHdhcworICAgICAgICAvLyBhY2Nlc3NlZCBhYm92ZSwgdGhlIGVudHJ5ICcyJyBpcyB0aGUgZWxkZXN0IGFuZAorICAgICAgICAvLyBwdXR0aW5nIG5ldyBlbnRyeSBzaG91bGQgcmVtb3ZlIHRoZSBlbnRyeS4KKyAgICAgICAgbnVtID0gbmV3IEludGVnZXIobWF4U2l6ZSArIDEpOworICAgICAgICBtYXAucHV0KG51bS50b1N0cmluZygpLCBudW0pOworICAgICAgICBudW0gPSAoSW50ZWdlciltYXAuZ2V0KCIyIik7CisgICAgICAgIGlmIChudW0gPT0gbnVsbCkgeworICAgICAgICAgICAgbG9nbG4oIk9LOiBUaGUgZW50cnkgJzInIHdhcyByZW1vdmVkLiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZXJybG4oIlRoZSBlbnRyeSAnMicgaXMgc3RpbGwgYXZhaWxhYmxlLiIpOworICAgICAgICB9CisgICAgICAgIC8vIFRoZSBlbnRyeSAnMycgaXMgdGhlIGVsZGVzdCBmb3Igbm93LgorICAgICAgICBib29sZWFuIGIgPSBtYXAuY29udGFpbnNLZXkoIjMiKTsKKyAgICAgICAgaWYgKGIpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogVGhlIGVsZGVzdCBlbnRyeSAnMycgaXMgYXZhaWxhYmxlLiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZXJybG4oIlRoZSBlbGRlc3QgZW50cnkgJzMnIHdhcyByZW1vdmVkLiIpOworICAgICAgICB9CisgICAgICAgIC8vIGNvbnRhbnNLZXkgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIGFjY2VzcyBvcmRlcgorICAgICAgICBudW0gPSBuZXcgSW50ZWdlcihtYXhTaXplICsgMik7CisgICAgICAgIG1hcC5wdXQobnVtLnRvU3RyaW5nKCksIG51bSk7CisgICAgICAgIG51bSA9IChJbnRlZ2VyKW1hcC5nZXQoIjMiKTsKKyAgICAgICAgaWYgKG51bSA9PSBudWxsKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IFRoZSBlbnRyeSAnMycgd2FzIHJlbW92ZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIGVudHJ5ICczJyBpcyBzdGlsbCBhdmFpbGFibGUuIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gUHV0dGluZyBleGlzdGluZyBlbnRyeSB3aXRoIG5ldyB2YWx1ZQorICAgICAgICBudW0gPSAoSW50ZWdlciltYXAucHV0KCI0IiwgbmV3IEludGVnZXIoLTQpKTsKKyAgICAgICAgaWYgKG51bSA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIGVudHJ5ICc0JyBubyBsb25nZXIgZXhpc3RzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG51bS5pbnRWYWx1ZSgpICE9IDQpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgdmFsdWUgZm9yICc0JyB3YXMgbm90IDQiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBUaGUgZW50cnkgJzUnIGlzIHRoZSBlbGRlc3QgZm9yIG5vdywgYmVjYXVzZQorICAgICAgICAvLyB0aGUgZW50cnkgJzQnIHdhcyB1cGRhdGVkIGFib3ZlLgorICAgICAgICBudW0gPSBuZXcgSW50ZWdlcihtYXhTaXplICsgMyk7CisgICAgICAgIG1hcC5wdXQobnVtLnRvU3RyaW5nKCksIG51bSk7CisgICAgICAgIG51bSA9IChJbnRlZ2VyKW1hcC5nZXQoIjUiKTsKKyAgICAgICAgaWYgKG51bSA9PSBudWxsKSB7CisgICAgICAgICAgICBsb2dsbigiT0s6IFRoZSBlbnRyeSAnNScgd2FzIHJlbW92ZWQuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIGVudHJ5ICc1JyBpcyBzdGlsbCBhdmFpbGFibGUuIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gQ2xlYXIgdGhlIG1hcAorICAgICAgICBtYXAuY2xlYXIoKTsKKyAgICAgICAgbnVtID0gKEludGVnZXIpbWFwLmdldCgiNiIpOworICAgICAgICBpZiAobnVtID09IG51bGwpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJPSzogVGhlIGVudHJ5ICc2JyB3YXMgcmVtb3ZlZC4iKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgZW50cnkgJzYnIGlzIHN0aWxsIGF2YWlsYWJsZS4iKTsKKyAgICAgICAgfSAgICAgICAgCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvTG9jYWxlQWxpYXNUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Mb2NhbGVBbGlhc1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODM2NWZlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvTG9jYWxlQWxpYXNUZXN0LmphdmEKQEAgLTAsMCArMSwyMzMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKgorICogTmV3IGFkZGVkLCAyMDA1LTUtMTAgW1RlcnJ5L1NHTF0KKyAqIE1ham9yIG1vZGlmaWNhdGlvbiBieSBSYW0KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBMb2NhbGVBbGlhc1Rlc3QgZXh0ZW5kcyBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13ayB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVUxvY2FsZVtdW10gX0xPQ0FMRVMgPSB7CisKKyAgICAgICAgICAgIHtuZXcgVUxvY2FsZSgiZW4iLCAiUkgiKSwgbmV3IFVMb2NhbGUoImVuIiwgIlpXIil9LAorICAgICAgICAgICAge25ldyBVTG9jYWxlKCJpbiIpLCBuZXcgVUxvY2FsZSgiaWQiKX0sCisgICAgICAgICAgICB7bmV3IFVMb2NhbGUoImluIiwgIklEIiksIG5ldyBVTG9jYWxlKCJpZCIsICJJRCIpfSwKKyAgICAgICAgICAgIHtuZXcgVUxvY2FsZSgiaXciKSwgbmV3IFVMb2NhbGUoImhlIil9LAorICAgICAgICAgICAge25ldyBVTG9jYWxlKCJpdyIsICJJTCIpLCBuZXcgVUxvY2FsZSgiaGUiLCAiSUwiKX0sCisgICAgICAgICAgICB7bmV3IFVMb2NhbGUoImppIiksIG5ldyBVTG9jYWxlKCJ5aSIpfSwKKyAgICAgICAgICAgIAorICAgICAgICAgICAge25ldyBVTG9jYWxlKCJlbiIsICJCVSIpLCBuZXcgVUxvY2FsZSgiZW4iLCAiTU0iKX0sCisgICAgICAgICAgICB7bmV3IFVMb2NhbGUoImVuIiwgIkRZIiksIG5ldyBVTG9jYWxlKCJlbiIsICJCSiIpfSwKKyAgICAgICAgICAgIHtuZXcgVUxvY2FsZSgiZW4iLCAiSFYiKSwgbmV3IFVMb2NhbGUoImVuIiwgIkJGIil9LAorICAgICAgICAgICAge25ldyBVTG9jYWxlKCJlbiIsICJOSCIpLCBuZXcgVUxvY2FsZSgiZW4iLCAiVlUiKX0sCisgICAgICAgICAgICB7bmV3IFVMb2NhbGUoImVuIiwgIlRQIiksIG5ldyBVTG9jYWxlKCJlbiIsICJUTCIpfSwKKyAgICAgICAgICAgIHtuZXcgVUxvY2FsZSgiZW4iLCAiWlIiKSwgbmV3IFVMb2NhbGUoImVuIiwgIkNEIil9CisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgX0xPQ0FMRV9OVU1CRVIgPSBfTE9DQUxFUy5sZW5ndGg7CisgICAgcHJpdmF0ZSBzdGF0aWMgVUxvY2FsZVtdIGF2YWlsYWJsZSA9IG51bGw7CisgICAgcHJpdmF0ZSBIYXNoTWFwIGF2YWlsYWJsZU1hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVUxvY2FsZSBfREVGQVVMVF9MT0NBTEUgPSBVTG9jYWxlLlVTOworICAgIAorICAgIHB1YmxpYyBMb2NhbGVBbGlhc1Rlc3QoKXsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpeworICAgICAgICBhdmFpbGFibGUgPSBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8YXZhaWxhYmxlLmxlbmd0aDtpKyspeworICAgICAgICAgICAgYXZhaWxhYmxlTWFwLnB1dChhdmFpbGFibGVbaV0udG9TdHJpbmcoKSwiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBuZXcgTG9jYWxlQWxpYXNUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2FsZW5kYXIoKSB7CisgICAgICAgIFVMb2NhbGUgZGVmTG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChfREVGQVVMVF9MT0NBTEUpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8X0xPQ0FMRV9OVU1CRVI7IGkrKykgeworICAgICAgICAgICAgVUxvY2FsZSBvbGRMb2MgPSBfTE9DQUxFU1tpXVswXTsKKyAgICAgICAgICAgIFVMb2NhbGUgbmV3TG9jID0gX0xPQ0FMRVNbaV1bMV07CisgICAgICAgICAgICBpZihhdmFpbGFibGVNYXAuZ2V0KF9MT0NBTEVTW2ldWzFdKT09bnVsbCl7CisgICAgICAgICAgICAgICAgbG9nbG4oX0xPQ0FMRVNbaV1bMV0rIiBpcyBub3QgYXZhaWxhYmxlLiBTa2lwcGluZyEiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENhbGVuZGFyIGMxID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2Uob2xkTG9jKTsKKyAgICAgICAgICAgIENhbGVuZGFyIGMyID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UobmV3TG9jKTsKKyAgICAgICAgICAgIGMxLnNldFRpbWUoYzIuZ2V0VGltZSgpKTsKKyAgICAgICAgICAgIC8vVGVzdCBmdW5jdGlvbiAiZ2V0Rmlyc3REYXlPZldlZWsiCisgICAgLy8gICAgICAgIGludCBmaXJzdERheU9mV2VlazEgPSBjMS5nZXRGaXJzdERheU9mV2VlaygpOworICAgIC8vICAgICAgICBpbnQgZmlyc3REYXlPZldlZWsyID0gYzIuZ2V0Rmlyc3REYXlPZldlZWsoKTsKKyAgICAvLyAgICAgICAgaWYgKGZpcnN0RGF5T2ZXZWVrMSAhPSBmaXJzdERheU9mV2VlazIpIHsKKyAgICAvLyAgICAgICAgICAgIHRoaXMubG9nbG4oIkNhbGVuZGFyKGdldEZpcnN0RGF5T2ZXZWVrKSBvbGQ6IgorICAgIC8vICAgICAgICAgICAgICAgICAgICArZmlyc3REYXlPZldlZWsxKyIgICBuZXc6IitmaXJzdERheU9mV2VlazIpOworICAgIC8vICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgIC8vICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy9UZXN0IGZ1bmN0aW9uICJnZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpIgorICAgICAgICAgICAgVUxvY2FsZSBsMSA9IGMxLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSk7CisgICAgICAgICAgICBVTG9jYWxlIGwyID0gYzIuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICAgICAgICAgIGlmICghbmV3TG9jLmVxdWFscyhsMSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ2FsZW5kYXJUZXN0OiBuZXdMb2MhPWwxOiBuZXdMb2M9ICIrbmV3TG9jICsiIGwxPSAiK2wxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbDEuZXF1YWxzKGwyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhclRlc3Q6IGwxIT1sMjogbDE9ICIrbDEgKyIgbDI9ICIrbDIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoIWMxLmVxdWFscyhjMikpeworICAgICAgICAgICAgICAgIGVycmxuKCJDYWxlbmRhclRlc3Q6IGMxIT1jMi4gIG5ld0xvYz0gIituZXdMb2MgKyIgb2xkTG9jPSAiK29sZExvYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiQ2FsZW5kYXIoZ2V0TG9jYWxlKSBvbGQ6IitsMSsiICAgbmV3OiIrbDIpOyAgICAKKyAgICAgICAgfQorCisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkICBUZXN0RGF0ZUZvcm1hdCgpIHsKKyAgICAgICAgVUxvY2FsZSBkZWZMb2MgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KF9ERUZBVUxUX0xPQ0FMRSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxfTE9DQUxFX05VTUJFUjsgaSsrKSB7CisgICAgICAgICAgICBVTG9jYWxlIG9sZExvYyA9IF9MT0NBTEVTW2ldWzBdOworICAgICAgICAgICAgVUxvY2FsZSBuZXdMb2MgPSBfTE9DQUxFU1tpXVsxXTsKKyAgICAgICAgICAgIGlmKGF2YWlsYWJsZU1hcC5nZXQoX0xPQ0FMRVNbaV1bMV0pPT1udWxsKXsKKyAgICAgICAgICAgICAgICBsb2dsbihfTE9DQUxFU1tpXVsxXSsiIGlzIG5vdCBhdmFpbGFibGUuIFNraXBwaW5nISIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZjEgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIG9sZExvYyk7CisgICAgICAgICAgICBEYXRlRm9ybWF0IGRmMiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgbmV3TG9jKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9UZXN0IGZ1bmN0aW9uICJnZXRMb2NhbGUiCisgICAgICAgICAgICBVTG9jYWxlIGwxID0gZGYxLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSk7CisgICAgICAgICAgICBVTG9jYWxlIGwyID0gZGYyLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSk7CisgICAgICAgICAgICBpZiAoIW5ld0xvYy5lcXVhbHMobDEpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkRhdGVGb3JtYXRUZXN0OiBuZXdMb2MhPWwxOiBuZXdMb2M9ICIrbmV3TG9jICsiIGwxPSAiK2wxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbDEuZXF1YWxzKGwyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJEYXRlRm9ybWF0VGVzdDogbDEhPWwyOiBsMT0gIitsMSArIiBsMj0gIitsMik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWRmMS5lcXVhbHMoZGYyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJEYXRlRm9ybWF0VGVzdDogZGYxIT1kZjI6IG5ld0xvYz0gIituZXdMb2MgKyIgb2xkTG9jPSAiK29sZExvYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLmxvZ2xuKCJEYXRlRm9ybWF0KGdldExvY2FsZSkgb2xkOiIrbDErIiAgIG5ldzoiK2wyKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9UZXN0IGZ1bmN0aW9uICJmb3JtYXQiCisgICAgLy8gICAgICAgIERhdGUgZCA9IG5ldyBEYXRlKCk7CisgICAgLy8gICAgICAgIFN0cmluZyBkMSA9IGRmMS5mb3JtYXQoZCk7CisgICAgLy8gICAgICAgIFN0cmluZyBkMiA9IGRmMi5mb3JtYXQoZCk7CisgICAgLy8gICAgICAgIGlmICghZDEuZXF1YWxzKGQyKSkgeworICAgIC8vICAgICAgICAgICAgcGFzcyA9IGZhbHNlOworICAgIC8vICAgICAgICB9CisgICAgLy8gICAgICAgIHRoaXMubG9nbG4oIkRhdGVGb3JtYXQoZm9ybWF0KSBvbGQ6IitkMSsiICAgbmV3OiIrZDIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RDb2xsYXRpb24oKSB7CisgICAgICAgIFVMb2NhbGUgZGVmTG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChfREVGQVVMVF9MT0NBTEUpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8X0xPQ0FMRV9OVU1CRVI7IGkrKykgeworICAgICAgICAgICAgVUxvY2FsZSBvbGRMb2MgPSBfTE9DQUxFU1tpXVswXTsKKyAgICAgICAgICAgIFVMb2NhbGUgbmV3TG9jID0gX0xPQ0FMRVNbaV1bMV07CisgICAgICAgICAgICBpZihhdmFpbGFibGVNYXAuZ2V0KF9MT0NBTEVTW2ldWzFdKT09bnVsbCl7CisgICAgICAgICAgICAgICAgbG9nbG4oX0xPQ0FMRVNbaV1bMV0rIiBpcyBub3QgYXZhaWxhYmxlLiBTa2lwcGluZyEiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENvbGxhdG9yIGMxID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2Uob2xkTG9jKTsKKyAgICAgICAgICAgIENvbGxhdG9yIGMyID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3TG9jKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCFjMS5lcXVhbHMoYzIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvbGxhdGlvblRlc3Q6IGMxIT1jMjogbmV3TG9jPSAiK25ld0xvYyArIiBvbGRMb2M9ICIrb2xkTG9jKTsKKyAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgIGxvZ2xuKCJDb2xsYXRpb24gb2xkOiIrb2xkTG9jKyIgICBuZXc6IituZXdMb2MpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RVTG9jYWxlKCkgeworICAgICAgICBVTG9jYWxlIGRlZkxvYyA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBVTG9jYWxlLnNldERlZmF1bHQoX0RFRkFVTFRfTE9DQUxFKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPF9MT0NBTEVfTlVNQkVSOyBpKyspIHsKKyAgICAgICAgICAgIFVMb2NhbGUgb2xkTG9jID0gX0xPQ0FMRVNbaV1bMF07CisgICAgICAgICAgICBVTG9jYWxlIG5ld0xvYyA9IF9MT0NBTEVTW2ldWzFdOworICAgICAgICAgICAgaWYoYXZhaWxhYmxlTWFwLmdldChfTE9DQUxFU1tpXVsxXSk9PW51bGwpeworICAgICAgICAgICAgICAgIGxvZ2xuKF9MT0NBTEVTW2ldWzFdKyIgaXMgbm90IGF2YWlsYWJsZS4gU2tpcHBpbmchIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVTG9jYWxlIHVsMSA9IG5ldyBVTG9jYWxlKG9sZExvYy50b1N0cmluZygpKTsKKyAgICAgICAgICAgIFVMb2NhbGUgdWwyID0gbmV3IFVMb2NhbGUobmV3TG9jLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgbmFtZTEgPSB1bDEuZ2V0RGlzcGxheU5hbWUoKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lMiA9IHVsMi5nZXREaXNwbGF5TmFtZSgpOworICAgICAgICAgICAgaWYgKCFuYW1lMS5lcXVhbHMobmFtZTIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIm5hbWUxIT1uYW1lMi4gbmFtZTEgPSAiICsgbmFtZTEgKyIgbmFtZTIgPSAiICtuYW1lMik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiVUxvY2FsZShnZXREaXNwbGF5TmFtZSkgb2xkOiIrbmFtZTErIiAgIG5ldzoiK25hbWUyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGlzcGxheU5hbWUoKSB7CisgICAgICAgIFVMb2NhbGUgZGVmTG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIFVMb2NhbGUuc2V0RGVmYXVsdChfREVGQVVMVF9MT0NBTEUpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8X0xPQ0FMRV9OVU1CRVI7IGkrKykgeworICAgICAgICAgICAgVUxvY2FsZSBvbGRMb2MgPSBfTE9DQUxFU1tpXVswXTsKKyAgICAgICAgICAgIFVMb2NhbGUgbmV3TG9jID0gX0xPQ0FMRVNbaV1bMV07CisKKyAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqPGF2YWlsYWJsZS5sZW5ndGg7IGorKyl7CisgICAgICAgICAgICAgICBTdHJpbmcgb2xkQ291bnRyeSA9IG9sZExvYy5nZXREaXNwbGF5Q291bnRyeShhdmFpbGFibGVbal0pOworICAgICAgICAgICAgICAgU3RyaW5nIG5ld0NvdW50cnkgPSBuZXdMb2MuZ2V0RGlzcGxheUNvdW50cnkoYXZhaWxhYmxlW2pdKTsKKyAgICAgICAgICAgICAgIFN0cmluZyBvbGRMYW5nID0gb2xkTG9jLmdldERpc3BsYXlMYW5ndWFnZShhdmFpbGFibGVbal0pOworICAgICAgICAgICAgICAgU3RyaW5nIG5ld0xhbmcgPSBuZXdMb2MuZ2V0RGlzcGxheUxhbmd1YWdlKGF2YWlsYWJsZVtqXSk7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIC8vIGlzICB0aGVyZSAgZGlzcGxheSBuYW1lIGZvciB0aGUgY3VycmVudCBjb3VudHJ5IElEICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICBpZighbmV3Q291bnRyeS5lcXVhbHMobmV3TG9jLmdldENvdW50cnkoKSkpeworICAgICAgICAgICAgICAgICAgIGlmKCFvbGRDb3VudHJ5LmVxdWFscyhuZXdDb3VudHJ5KSl7CisgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJnZXRDb3VudHJ5KCkgZmFpbGVkIGZvciAiKyBvbGRMb2MgKyIgb2xkQ291bnRyeT0gIisgcHJldHRpZnkob2xkQ291bnRyeSkgKyIgbmV3Q291bnRyeSA9ICIrcHJldHRpZnkobmV3Q291bnRyeSkrICIgaW4gZGlzcGxheSBsb2NhbGUgIisgYXZhaWxhYmxlW2pdLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIC8vdGhlcmUgaXMgYSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBjdXJyZW50IGxhbmcgSUQgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIGlmKCFuZXdMYW5nLmVxdWFscyhuZXdMb2MuZ2V0TGFuZ3VhZ2UoKSkpeworICAgICAgICAgICAgICAgICAgIGlmKCFvbGRMYW5nLmVxdWFscyhuZXdMYW5nKSl7CisgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJnZXRMYW5ndWFnZSgpIGZhaWxlZCBmb3IgIiArIG9sZExvYyArICIgb2xkTGFuZyA9ICIrIHByZXR0aWZ5KG9sZExhbmcpICsiIG5ld0xhbmcgPSAiK3ByZXR0aWZ5KG5ld0xhbmcpKyAiIGluIGRpc3BsYXkgbG9jYWxlICIrIGF2YWlsYWJsZVtqXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFVSZXNvdXJjZUJ1bmRsZSgpIHsKKyAgICAgICAgVUxvY2FsZSBkZWZMb2MgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgVUxvY2FsZS5zZXREZWZhdWx0KF9ERUZBVUxUX0xPQ0FMRSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxfTE9DQUxFX05VTUJFUjsgaSsrKSB7CisgICAgICAgICAgICBpZihhdmFpbGFibGVNYXAuZ2V0KF9MT0NBTEVTW2ldWzFdKT09bnVsbCl7CisgICAgICAgICAgICAgICAgbG9nbG4oX0xPQ0FMRVNbaV1bMV0rIiBpcyBub3QgYXZhaWxhYmxlLiBTa2lwcGluZyEiKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVMb2NhbGUgb2xkTG9jID0gX0xPQ0FMRVNbaV1bMF07CisgICAgICAgICAgICBVTG9jYWxlIG5ld0xvYyA9IF9MT0NBTEVTW2ldWzFdOworICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlIHVyYjEgPSBudWxsOworICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlIHVyYjIgPSBudWxsOworICAgICAgICAgICAgCisgICAgCSAgICB1cmIxID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIG9sZExvYyk7CisgICAgCSAgICB1cmIyID0gVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIG5ld0xvYyk7CisgICAgICAgICAgICBVTG9jYWxlIGwxID0gdXJiMS5nZXRVTG9jYWxlKCk7CisgICAgICAgICAgICBVTG9jYWxlIGwyID0gdXJiMi5nZXRVTG9jYWxlKCk7ICAgICAgICAKKyAgICAgICAgICAgIGlmICghbmV3TG9jLmVxdWFscyhsMSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUmVzb3VyY2VCdW5kbGVUZXN0OiBuZXdMb2MhPWwxOiBuZXdMb2M9ICIrbmV3TG9jICsiIGwxPSAiK2wxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbDEuZXF1YWxzKGwyKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSZXNvdXJjZUJ1bmRsZVRlc3Q6IGwxIT1sMjogbDE9ICIrbDEgKyIgbDI9ICIrbDIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5sb2dsbigiVVJlc291cmNlQnVuZGxlIG9sZDoiK2wxKyIgICBuZXc6IitsMik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Mb2NhbGVEYXRhVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvTG9jYWxlRGF0YVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWRmZjg0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvTG9jYWxlRGF0YVRlc3QuamF2YQpAQCAtMCwwICsxLDI0NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0SXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Mb2NhbGVEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiBAYXV0aG9yIHJhbQorICoKKyAqIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uPkNvZGUgYW5kIENvbW1lbnRzCisgKi8KK3B1YmxpYyBjbGFzcyBMb2NhbGVEYXRhVGVzdCBleHRlbmRzIFRlc3RGbXdreworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbnsKKyAgICAgICAgbmV3IExvY2FsZURhdGFUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFVMb2NhbGVbXSBhdmFpbGFibGVMb2NhbGVzID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgTG9jYWxlRGF0YVRlc3QoKXsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdCgpeworICAgICAgICBhdmFpbGFibGVMb2NhbGVzID0gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RQYXBlclNpemUoKXsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGF2YWlsYWJsZUxvY2FsZXMubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUgPSBhdmFpbGFibGVMb2NhbGVzW2ldOworICAgICAgICAgICAgTG9jYWxlRGF0YS5QYXBlclNpemUgcGFwZXJTaXplID0gTG9jYWxlRGF0YS5nZXRQYXBlclNpemUobG9jYWxlKTsKKyAgICAgICAgICAgIC8vIHNraXAgdGVzdGluZyBvZiAiaW4iIC4uIGRlcHJlY2F0ZWQgY29kZSBmb3IgSW5kb25lc2lhbgorICAgICAgICAgICAgU3RyaW5nIGxhbmcgPSBsb2NhbGUuZ2V0TGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgIGlmKGxhbmcuZXF1YWxzKCJpbiIpKXsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGxvY2FsZS50b1N0cmluZygpLmluZGV4T2YoIl9VUyIpID49IDApeworICAgICAgICAgICAgICAgIGlmKHBhcGVyU2l6ZS5nZXRIZWlnaHQoKSE9IDI3OSB8fCBwYXBlclNpemUuZ2V0V2lkdGgoKSAhPSAyMTYgKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlBhcGVyU2l6ZSBkaWQgbm90IHJldHVybiB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGxvY2FsZSAiKyBsb2NhbGUrCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgRXhwZWN0ZWQgaGVpZ2h0OiAyNzkgd2lkdGg6IDIxNi4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIEdvdCBoZWlnaHQ6ICIrcGFwZXJTaXplLmdldEhlaWdodCgpKyIgd2lkdGg6ICIrcGFwZXJTaXplLmdldFdpZHRoKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJQYXBlclNpemUgcmV0dXJuZWQgdGhlIGV4cGVjdGVkIHZhbHVlcyBmb3IgbG9jYWxlICIgKyBsb2NhbGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGlmKHBhcGVyU2l6ZS5nZXRIZWlnaHQoKSE9IDI5NyB8fCBwYXBlclNpemUuZ2V0V2lkdGgoKSAhPSAyMTAgKXsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIlBhcGVyU2l6ZSBkaWQgbm90IHJldHVybiB0aGUgZXhwZWN0ZWQgdmFsdWUgZm9yIGxvY2FsZSAiKyBsb2NhbGUgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIEV4cGVjdGVkIGhlaWdodDogMjk3IHdpZHRoOiAyMTAuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIiBHb3QgaGVpZ2h0OiAiK3BhcGVyU2l6ZS5nZXRIZWlnaHQoKSArIiB3aWR0aDogIitwYXBlclNpemUuZ2V0V2lkdGgoKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJQYXBlclNpemUgcmV0dXJuZWQgdGhlIGV4cGVjdGVkIHZhbHVlcyBmb3IgbG9jYWxlICIgKyBsb2NhbGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0TWVhc3VyZW1lbnRTeXN0ZW0oKXsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8YXZhaWxhYmxlTG9jYWxlcy5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSA9IGF2YWlsYWJsZUxvY2FsZXNbaV07CisgICAgICAgICAgICBMb2NhbGVEYXRhLk1lYXN1cmVtZW50U3lzdGVtIG1zID0gTG9jYWxlRGF0YS5nZXRNZWFzdXJlbWVudFN5c3RlbShsb2NhbGUpOworICAgICAgICAgICAgLy8gc2tpcCB0ZXN0aW5nIG9mICJpbiIgLi4gZGVwcmVjYXRlZCBjb2RlIGZvciBJbmRvbmVzaWFuCisgICAgICAgICAgICBTdHJpbmcgbGFuZyA9IGxvY2FsZS5nZXRMYW5ndWFnZSgpOworICAgICAgICAgICAgaWYobGFuZy5lcXVhbHMoImluIikpeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfSAgICAgICAgICAgCisgICAgICAgICAgICBpZihsb2NhbGUudG9TdHJpbmcoKS5pbmRleE9mKCJfVVMiKSA+PSAwKXsKKyAgICAgICAgICAgICAgICBpZihtcyA9PSBMb2NhbGVEYXRhLk1lYXN1cmVtZW50U3lzdGVtLlVTKXsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIkdvdCB0aGUgZXhwZWN0ZWQgbWVhc3VyZW1lbnQgc3lzdGVtIGZvciBsb2NhbGU6ICIgKyBsb2NhbGUpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGV4cGVjdGVkIG1lYXN1cmVtZW50IHN5c3RlbSBmb3IgbG9jYWxlOiAiKyBsb2NhbGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGlmKG1zID09IExvY2FsZURhdGEuTWVhc3VyZW1lbnRTeXN0ZW0uU0kpeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiR290IHRoZSBleHBlY3RlZCBtZWFzdXJlbWVudCBzeXN0ZW0gZm9yIGxvY2FsZTogIiArIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgbWVhc3VyZW1lbnQgc3lzdGVtIGZvciBsb2NhbGU6ICIrIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0RXhlbXBsYXJTZXQoKXsKKyAgICAgICAgaW50IGVxdWFsQ291bnQgPSAwOworICAgICAgICBmb3IoaW50IGk9MDsgaTxhdmFpbGFibGVMb2NhbGVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gYXZhaWxhYmxlTG9jYWxlc1tpXTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgZXhlbXBsYXJTZXRzW10gPSBuZXcgVW5pY29kZVNldFsyXTsKKyAgICAgICAgICAgIGZvciAoaW50IGs9MDsgazwyOyArK2spIHsKKyAgICAgICAgICAgICAgICBpbnQgb3B0aW9uID0gKGs9PTApID8gMCA6IFVuaWNvZGVTZXQuQ0FTRTsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IGV4ZW1wbGFyU2V0ID0gTG9jYWxlRGF0YS5nZXRFeGVtcGxhclNldChsb2NhbGUsIG9wdGlvbik7CisgICAgICAgICAgICAgICAgZXhlbXBsYXJTZXRzW2tdID0gZXhlbXBsYXJTZXQ7CisgICAgICAgICAgICAgICAgaW50W10gY29kZSA9IFVTY3JpcHQuZ2V0Q29kZShsb2NhbGUpOworICAgICAgICAgICAgICAgIGlmKGNvZGUgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXRbXSBzZXRzID0gbmV3IFVuaWNvZGVTZXRbY29kZS5sZW5ndGhdOworICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgdGhlIFVuaWNvZGVTZXRzIGZvciB0aGUgc2NyaXB0CisgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqIDwgY29kZS5sZW5ndGg7IGorKyl7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRzW2pdID0gbmV3IFVuaWNvZGVTZXQoIls6IiArIFVTY3JpcHQuZ2V0U2hvcnROYW1lKGNvZGVbal0pICsgIjpdIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBleGlzdHNJblNjcmlwdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgaXRlciA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3IoZXhlbXBsYXJTZXQpOworICAgICAgICAgICAgICAgICAgICAvLyBpdGVyYXRlIG92ZXIgdGhlIAorICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWV4aXN0c0luU2NyaXB0ICYmIGl0ZXIubmV4dFJhbmdlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVyLmNvZGVwb2ludCAhPSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8c2V0cy5sZW5ndGg7IGorKyl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNldHNbal0uY29udGFpbnMoaXRlci5jb2RlcG9pbnQsIGl0ZXIuY29kZXBvaW50RW5kKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdHNJblNjcmlwdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8c2V0cy5sZW5ndGg7IGorKyl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNldHNbal0uY29udGFpbnMoaXRlci5zdHJpbmcpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0c0luU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmKGV4aXN0c0luU2NyaXB0ID09IGZhbHNlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJFeGVtcGxhclNldCBjb250YWlubWVudCBmYWlsZWQgZm9yIGxvY2FsZSA6ICIrIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgLy8gSSBoYXRlIHRoZSBKREsncyBzb2x1dGlvbiBmb3IgZGVwcmVjYXRlZCBsYW5ndWFnZSBjb2Rlcy4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2h5IGRvZXMgdGhlIExvY2FsZSBjb25zdHJ1Y3RvciBjaGFuZ2UgdGhlIHN0cmluZyBJIHBhc3NlZCB0byBpdCA/CisgICAgICAgICAgICAgICAgICAgIC8vIHN1Y2ggYSBicm9rZW4gaGFjayAhISEhIQorICAgICAgICAgICAgICAgICAgICAvLyBzbyBpbiBlZmZlY3QgSSBjYW4gbmV2ZXIgdGVzdCB0aGUgc2NyaXB0IGNvZGUgZm9yIEluZG9uZXNpYW4gOigKKyAgICAgICAgICAgICAgICAgICAgaWYobG9jYWxlLnRvU3RyaW5nKCkuaW5kZXhPZigoImluIikpPDApeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVTY3JpcHQuZ2V0Q29kZSByZXR1cm5lZCBudWxsIGZvciBsb2NhbGU6ICIgKyBsb2NhbGUpOyAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFRoaXMgaXMgZXhwZW5zaXZlLCBzbyBvbmx5IGRvIGl0IGlmIGl0IHdpbGwgYmUgdmlzaWJsZQorICAgICAgICAgICAgaWYgKGlzVmVyYm9zZSgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4obG9jYWxlLnRvU3RyaW5nKCkgKyAiIGV4ZW1wbGFyICIgKyBleGVtcGxhclNldHNbMF0pOworICAgICAgICAgICAgICAgIGxvZ2xuKGxvY2FsZS50b1N0cmluZygpICsgIiBleGVtcGxhcihjYXNlLWZvbGRlZCkgIiArIGV4ZW1wbGFyU2V0c1sxXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhc3NlcnRUcnVlKGxvY2FsZS50b1N0cmluZygpICsgIiBjYXNlLWZvbGRlZCBpcyBhIHN1cGVyc2V0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgZXhlbXBsYXJTZXRzWzFdLmNvbnRhaW5zQWxsKGV4ZW1wbGFyU2V0c1swXSkpOworICAgICAgICAgICAgaWYgKGV4ZW1wbGFyU2V0c1sxXS5lcXVhbHMoZXhlbXBsYXJTZXRzWzBdKSkgeworICAgICAgICAgICAgICAgICsrZXF1YWxDb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBOb3RlOiBUaGUgY2FzZS1mb2xkZWQgc2V0IHNob3VsZCBzb21ldGltZXMgYmUgYSBzdHJpY3Qgc3VwZXJzZXQKKyAgICAgICAgLy8gYW5kIHNvbWV0aW1lcyBiZSBlcXVhbC4KKyAgICAgICAgYXNzZXJ0VHJ1ZSgiY2FzZS1mb2xkZWQgaXMgc29tZXRpbWVzIGEgc3RyaWN0IHN1cGVyc2V0LCBhbmQgc29tZXRpbWVzIGVxdWFsIiwKKyAgICAgICAgICAgICAgICAgICBlcXVhbENvdW50ID4gMCAmJiBlcXVhbENvdW50IDwgYXZhaWxhYmxlTG9jYWxlcy5sZW5ndGgpOworICAgIH0KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIFRlc3RFeGVtcGxhclNldDIoKXsKKyAgICAgICAgaW50IGVxdWFsQ291bnQgPSAwOworICAgICAgICBmb3IoaW50IGk9MDsgaTxhdmFpbGFibGVMb2NhbGVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gYXZhaWxhYmxlTG9jYWxlc1tpXTsKKyAgICAgICAgICAgIExvY2FsZURhdGEgbGQgPSBMb2NhbGVEYXRhLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgICAgICAgICBVbmljb2RlU2V0IGV4ZW1wbGFyU2V0c1tdID0gbmV3IFVuaWNvZGVTZXRbNF07CisKKyAgICAgICAgICAgIGZvciAoaW50IGs9MDsgazwyOyArK2spIHsKKyAgICAgICAgICAgICAgICBpbnQgb3B0aW9uID0gKGs9PTApID8gMCA6IFVuaWNvZGVTZXQuQ0FTRTsKKyAgICAgICAgICAgICAgICBmb3IoaW50IGg9MDsgaDwyOyArK2gpeworICAgICAgICAgICAgICAgICAgICBpbnQgdHlwZSA9IChoPT0wKSA/IExvY2FsZURhdGEuRVNfU1RBTkRBUkQgOiBMb2NhbGVEYXRhLkVTX0FVWElMSUFSWTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgZXhlbXBsYXJTZXQgPSBsZC5nZXRFeGVtcGxhclNldChvcHRpb24sIHR5cGUpOworICAgICAgICAgICAgICAgICAgICBleGVtcGxhclNldHNbayoyK2hdID0gZXhlbXBsYXJTZXQ7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpbnRbXSBjb2RlID0gVVNjcmlwdC5nZXRDb2RlKGxvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIGlmKGNvZGUgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0W10gc2V0cyA9IG5ldyBVbmljb2RlU2V0W2NvZGUubGVuZ3RoXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSB0aGUgVW5pY29kZVNldHMgZm9yIHRoZSBzY3JpcHQKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqIDwgY29kZS5sZW5ndGg7IGorKyl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0c1tqXSA9IG5ldyBVbmljb2RlU2V0KCJbOiIgKyBVU2NyaXB0LmdldFNob3J0TmFtZShjb2RlW2pdKSArICI6XSIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBleGlzdHNJblNjcmlwdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ZXIgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGV4ZW1wbGFyU2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0ZXJhdGUgb3ZlciB0aGUgCisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWV4aXN0c0luU2NyaXB0ICYmIGl0ZXIubmV4dFJhbmdlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlci5jb2RlcG9pbnQgIT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGo9MDsgajxzZXRzLmxlbmd0aDsgaisrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNldHNbal0uY29udGFpbnMoaXRlci5jb2RlcG9pbnQsIGl0ZXIuY29kZXBvaW50RW5kKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RzSW5TY3JpcHQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8c2V0cy5sZW5ndGg7IGorKyl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzZXRzW2pdLmNvbnRhaW5zKGl0ZXIuc3RyaW5nKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RzSW5TY3JpcHQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogSG93IHRvIHZlcmlmeSBMb2NhbGVEYXRhLkVTX0FVWElMSUFSWSA/Pz8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGV4aXN0c0luU2NyaXB0ID09IGZhbHNlICYmIGggPT0gMCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkV4ZW1wbGFyU2V0IGNvbnRhaW5tZW50IGZhaWxlZCBmb3IgbG9jYWxlLG9wdGlvbix0eXBlIDogIisgbG9jYWxlICsgIiwgIiArIG9wdGlvbiArICIsICIgKyB0eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihsb2NhbGUudG9TdHJpbmcoKS5pbmRleE9mKCgiaW4iKSk8MCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlVTY3JpcHQuZ2V0Q29kZSByZXR1cm5lZCBudWxsIGZvciBsb2NhbGUsb3B0aW9uLHR5cGUgOiAiKyBsb2NhbGUgKyAiLCAiICsgb3B0aW9uICsgIiwgIiArIHR5cGUpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gVGhpcyBpcyBleHBlbnNpdmUsIHNvIG9ubHkgZG8gaXQgaWYgaXQgd2lsbCBiZSB2aXNpYmxlCisgICAgICAgICAgICBpZiAoaXNWZXJib3NlKCkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbihsb2NhbGUudG9TdHJpbmcoKSArICIgZXhlbXBsYXIoRVNfU1RBTkRBUkQpIiArIGV4ZW1wbGFyU2V0c1swXSk7CisgICAgICAgICAgICAgICAgbG9nbG4obG9jYWxlLnRvU3RyaW5nKCkgKyAiIGV4ZW1wbGFyKEVTX0FVWElMSUFSWSkgIiArIGV4ZW1wbGFyU2V0c1sxXSk7CisgICAgICAgICAgICAgICAgbG9nbG4obG9jYWxlLnRvU3RyaW5nKCkgKyAiIGV4ZW1wbGFyKGNhc2UtZm9sZGVkLEVTX1NUQU5EQVJEKSAiICsgZXhlbXBsYXJTZXRzWzJdKTsKKyAgICAgICAgICAgICAgICBsb2dsbihsb2NhbGUudG9TdHJpbmcoKSArICIgZXhlbXBsYXIoY2FzZS1mb2xkZWQsRVNfQVVYSUxJQVJZKSAiICsgZXhlbXBsYXJTZXRzWzNdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFzc2VydFRydWUobG9jYWxlLnRvU3RyaW5nKCkgKyAiIGNhc2UtZm9sZGVkIGlzIGEgc3VwZXJzZXQiLAorICAgICAgICAgICAgICAgICAgICAgICBleGVtcGxhclNldHNbMl0uY29udGFpbnNBbGwoZXhlbXBsYXJTZXRzWzBdKSk7CisgICAgICAgICAgICBhc3NlcnRUcnVlKGxvY2FsZS50b1N0cmluZygpICsgIiBjYXNlLWZvbGRlZCBpcyBhIHN1cGVyc2V0IiwKKyAgICAgICAgICAgICAgICAgICAgZXhlbXBsYXJTZXRzWzNdLmNvbnRhaW5zQWxsKGV4ZW1wbGFyU2V0c1sxXSkpOworICAgICAgICAgICAgaWYgKGV4ZW1wbGFyU2V0c1syXS5lcXVhbHMoZXhlbXBsYXJTZXRzWzBdKSkgeworICAgICAgICAgICAgICAgICsrZXF1YWxDb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChleGVtcGxhclNldHNbM10uZXF1YWxzKGV4ZW1wbGFyU2V0c1sxXSkpIHsKKyAgICAgICAgICAgICAgICArK2VxdWFsQ291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gTm90ZTogVGhlIGNhc2UtZm9sZGVkIHNldCBzaG91bGQgc29tZXRpbWVzIGJlIGEgc3RyaWN0IHN1cGVyc2V0CisgICAgICAgIC8vIGFuZCBzb21ldGltZXMgYmUgZXF1YWwuCisgICAgICAgIGFzc2VydFRydWUoImNhc2UtZm9sZGVkIGlzIHNvbWV0aW1lcyBhIHN0cmljdCBzdXBlcnNldCwgYW5kIHNvbWV0aW1lcyBlcXVhbCIsCisgICAgICAgICAgICAgICAgICAgZXF1YWxDb3VudCA+IDAgJiYgZXF1YWxDb3VudCA8IGF2YWlsYWJsZUxvY2FsZXMubGVuZ3RoICogMik7CisgICAgfQorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCl7CisgICAgICAgIExvY2FsZURhdGEgbGQgPSBMb2NhbGVEYXRhLmdldEluc3RhbmNlKCk7CisgICAgICAgIGJvb2xlYW4gdCA9IGxkLmdldE5vU3Vic3RpdHV0ZSgpOworICAgICAgICBsZC5zZXROb1N1YnN0aXR1dGUodCk7CisgICAgICAgIGFzc2VydEVxdWFscygiTG9jYWxlRGF0YSBnZXQvc2V0IE5vU3Vic3RpdHV0ZSIsCisgICAgICAgICAgICAgICAgdCwKKyAgICAgICAgICAgICAgICBsZC5nZXROb1N1YnN0aXR1dGUoKSk7CisgICAgCisgICAgICAgIGxvZ2xuKGxkLmdldERlbGltaXRlcihMb2NhbGVEYXRhLlFVT1RBVElPTl9TVEFSVCkpOworICAgICAgICBsb2dsbihsZC5nZXREZWxpbWl0ZXIoTG9jYWxlRGF0YS5RVU9UQVRJT05fRU5EKSk7CisgICAgICAgIGxvZ2xuKGxkLmdldERlbGltaXRlcihMb2NhbGVEYXRhLkFMVF9RVU9UQVRJT05fU1RBUlQpKTsKKyAgICAgICAgbG9nbG4obGQuZ2V0RGVsaW1pdGVyKExvY2FsZURhdGEuQUxUX1FVT1RBVElPTl9FTkQpKTsgICAgCQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL0xvY2thYmxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Mb2NrYWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMzU5YmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Mb2NrYWJsZS5qYXZhCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCisvKioKKyAqIFByb3ZpZGVzIGEgZmxleGlibGUgbWVjaGFuaXNtIGZvciBjb250cm9sbGluZyBhY2Nlc3MsIHdpdGhvdXQgcmVxdWlyaW5nIHRoYXQgYSBjbGFzcyBiZSBpbW11dGFibGUuCisgKiBPbmNlIGxvY2tlZCwgYW4gb2JqZWN0IGNhbiBuZXZlciBiZSB1bmxvY2tlZCwgc28gaXQgaXMgdGhyZWFkLXNhZmUgZnJvbSB0aGF0IHBvaW50IG9ud2FyZC4KKyAqIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBib3RoIG1ldGhvZHMgbXVzdCBiZSBzeW5jaHJvbml6ZWQuCisgKiBPbmNlIHRoZSBvYmplY3QgaGFzIGJlZW4gbG9ja2VkLCBpdCBtdXN0IGd1YXJhbnRlZSB0aGF0IG5vIGNoYW5nZXMgY2FuIGJlIG1hZGUgdG8gaXQuCisgKiBBbnkgYXR0ZW1wdCB0byBhbHRlciBpdCBtdXN0IHJhaXNlIGFuIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIGV4Y2VwdGlvbi4KKyAqIFRoaXMgbWVhbnMgdGhhdCB3aGVuIHRoZSBvYmplY3QgcmV0dXJucyBpbnRlcm5hbCBvYmplY3RzLAorICogb3IgaWYgYW55b25lIGhhcyByZWZlcmVuY2VzIHRvIHRob3NlIGludGVybmFsIG9iamVjdHMsIHRoYXQgdGhvc2UgaW50ZXJuYWwgb2JqZWN0cyBtdXN0IGVpdGhlciBiZSBpbW11dGFibGUsCisgKiBvciBtdXN0IGFsc28gcmFpc2UgZXhjZXB0aW9ucyBpZiBhbnkgYXR0ZW1wdCB0byBtb2RpZnkgdGhlbSBpcyBtYWRlLiBPZiBjb3Vyc2UsIHRoZSBvYmplY3QgY2FuIHJldHVybiBjbG9uZXMKKyAqIG9mIGludGVybmFsIG9iamVjdHMsIHNpbmNlIHRob3NlIGFyZSBzYWZlLiAqIEBhdXRob3IgZGF2aXMKKyAqLworcHVibGljIGludGVyZmFjZSBMb2NrYWJsZSBleHRlbmRzIENsb25lYWJsZSB7CisJLyoqCisJICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBvYmplY3QgaGFzIGJlZW4gbG9ja2VkIG9yIG5vdC4KKwkgKi8KKwlwdWJsaWMgYm9vbGVhbiBpc0xvY2tlZCgpOworCS8qKgorCSAqIExvY2tzIHRoZSBvYmplY3QuCisJICogQHJldHVybiB0aGUgb2JqZWN0IGl0c2VsZi4KKwkgKi8KKwlwdWJsaWMgT2JqZWN0IGxvY2soKTsKKwkvKioKKwkgKiBQcm92aWRlcyBmb3IgdGhlIGNsb25lIG9wZXJhdGlvbi4gQW55IGNsb25lIGlzIGluaXRpYWxseSB1bmxvY2tlZC4KKwkgKi8KKwlwdWJsaWMgT2JqZWN0IGNsb25lKCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvUGljay5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvUGljay5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkNWZlMzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9QaWNrLmphdmEKQEAgLTAsMCArMSw3OTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworCithYnN0cmFjdCBwdWJsaWMgY2xhc3MgUGljayB7CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIAorICAgIC8vIGZvciB1c2luZyB0byBnZXQgc3RyaW5ncworICAgIAorICAgIHN0YXRpYyBjbGFzcyBUYXJnZXQgeworICAgICAgICBwcml2YXRlIFBpY2sgcGljazsKKyAgICAgICAgcHJpdmF0ZSBSYW5kb20gcmFuZG9tOworICAgICAgICBwcml2YXRlIFF1b3RlciBxdW90ZXI7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIFRhcmdldCBtYWtlKFBpY2sgcGljaywgUmFuZG9tIHJhbmRvbSwgUXVvdGVyIHF1b3RlcikgeworICAgICAgICAgICAgVGFyZ2V0IHJlc3VsdCA9IG5ldyBUYXJnZXQoKTsKKyAgICAgICAgICAgIHJlc3VsdC5waWNrID0gcGljazsKKyAgICAgICAgICAgIHJlc3VsdC5yYW5kb20gPSByYW5kb207CisgICAgICAgICAgICByZXN1bHQucXVvdGVyID0gcXVvdGVyOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIG5leHQoKSB7CisgICAgICAgICAgICBxdW90ZXIuY2xlYXIoKTsKKyAgICAgICAgICAgIHBpY2suYWRkVG8odGhpcyk7CisgICAgICAgICAgICByZXR1cm4gZ2V0KCk7CisgICAgICAgIH0gICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldCgpIHsKKyAgICAgICAgICAgIHJldHVybiBxdW90ZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIHZvaWQgY29weVN0YXRlKFRhcmdldCBvdGhlcikgeworICAgICAgICAgICAgcmFuZG9tID0gb3RoZXIucmFuZG9tOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgICAgIHF1b3Rlci5jbGVhcigpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgaW50IGxlbmd0aCgpIHsKKyAgICAgICAgICAgIHJldHVybiBxdW90ZXIubGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBUYXJnZXQgYXBwZW5kKGludCBjb2RlcG9pbnQpIHsKKyAgICAgICAgICAgIHF1b3Rlci5hcHBlbmQoY29kZXBvaW50KTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgVGFyZ2V0IGFwcGVuZChTdHJpbmcgcykgeworICAgICAgICAgICAgcXVvdGVyLmFwcGVuZChzKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgICAgIC8vIG11c3QgcmV0dXJuIHZhbHVlIGJldHdlZW4gMCAoaW5jKSBhbmQgMSAoZXhjKQorICAgICAgICBwcml2YXRlIGRvdWJsZSBuZXh0RG91YmxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHJhbmRvbS5uZXh0RG91YmxlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBmb3IgQnVpbGRpbmcKKyAgICAKKyAgICBwdWJsaWMgUGljayByZXBsYWNlKFN0cmluZyB0b1JlcGxhY2UsIFBpY2sgcmVwbGFjZW1lbnQpIHsKKyAgICAgICBSZXBsYWNlciB2aXNpdG9yID0gbmV3IFJlcGxhY2VyKHRvUmVwbGFjZSwgcmVwbGFjZW1lbnQpOworICAgICAgIHJldHVybiB2aXNpdCh2aXNpdG9yKTsKKyAgICB9CisKKyAgICBwdWJsaWMgUGljayBuYW1lKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIFBpY2suU2VxdWVuY2UgbWFrZVNlcXVlbmNlKCkgeworICAgICAgICByZXR1cm4gbmV3IFNlcXVlbmNlKCk7CisgICAgfQorICAgIHN0YXRpYyBwdWJsaWMgUGljay5BbHRlcm5hdGlvbiBtYWtlQWx0ZXJuYXRpb24oKSB7CisgICAgICAgIHJldHVybiBuZXcgQWx0ZXJuYXRpb24oKTsKKyAgICB9CisgICAgLyoKKyAgICBzdGF0aWMgcHVibGljIFBpY2suU2VxdWVuY2UgYW5kKE9iamVjdCBpdGVtKSB7CisgICAgICAgIHJldHVybiBuZXcgU2VxdWVuY2UoKS5hbmQyKGl0ZW0pOworICAgIH0KKyAgICBzdGF0aWMgcHVibGljIFBpY2suU2VxdWVuY2UgYW5kKE9iamVjdFtdIGl0ZW1zKSB7CisgICAgICAgIHJldHVybiBuZXcgU2VxdWVuY2UoKS5hbmQyKGl0ZW1zKTsKKyAgICB9CisgICAgc3RhdGljIHB1YmxpYyBQaWNrLkFsdGVybmF0aW9uIG9yKGludCBpdGVtV2VpZ2h0LCBPYmplY3QgaXRlbSkgeworICAgICAgICByZXR1cm4gbmV3IEFsdGVybmF0aW9uKCkub3IyKGl0ZW1XZWlnaHQsIGl0ZW0pOworICAgIH0KKyAgICBzdGF0aWMgcHVibGljIFBpY2suQWx0ZXJuYXRpb24gb3IoT2JqZWN0W10gaXRlbXMpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBBbHRlcm5hdGlvbigpLm9yMigxLCBpdGVtcyk7CisgICAgfQorICAgIHN0YXRpYyBwdWJsaWMgUGljay5BbHRlcm5hdGlvbiBvcihpbnQgaXRlbVdlaWdodCwgT2JqZWN0W10gaXRlbXMpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBBbHRlcm5hdGlvbigpLm9yMihpdGVtV2VpZ2h0LCBpdGVtcyk7CisgICAgfQorICAgIHN0YXRpYyBwdWJsaWMgUGljay5BbHRlcm5hdGlvbiBvcihpbnRbXSBpdGVtV2VpZ2h0cywgT2JqZWN0W10gaXRlbXMpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBBbHRlcm5hdGlvbigpLm9yMihpdGVtV2VpZ2h0cywgaXRlbXMpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIFBpY2sgbWF5YmUoaW50IHBlcmNlbnQsIE9iamVjdCBpdGVtKSB7CisgICAgICAgIHJldHVybiBuZXcgUmVwZWF0KDAsIDEsIG5ldyBpbnRbXXsxMDAtcGVyY2VudCwgcGVyY2VudH0sIGl0ZW0pOworICAgICAgICAvL3JldHVybiBQaWNrLm9yKDEuMC1wZXJjZW50LCBOT1RISU5HKS5vcjIocGVyY2VudCwgaXRlbSk7CisgICAgfQorICAgIHN0YXRpYyBwdWJsaWMgUGljayByZXBlYXQoaW50IG1pbkNvdW50LCBpbnQgbWF4Q291bnQsIGludCBpdGVtV2VpZ2h0cywgT2JqZWN0IGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXBlYXQobWluQ291bnQsIG1heENvdW50LCBpdGVtV2VpZ2h0cywgaXRlbSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwdWJsaWMgUGljayBjb2RlUG9pbnQoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICByZXR1cm4gbmV3IENvZGVQb2ludChuZXcgVW5pY29kZVNldChzb3VyY2UpKTsKKyAgICB9CisgICAgKi8KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIFBpY2sgcmVwZWF0KGludCBtaW5Db3VudCwgaW50IG1heENvdW50LCBpbnRbXSBpdGVtV2VpZ2h0cywgUGljayBpdGVtKSB7CisgICAgICAgIHJldHVybiBuZXcgUmVwZWF0KG1pbkNvdW50LCBtYXhDb3VudCwgaXRlbVdlaWdodHMsIGl0ZW0pOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIFBpY2sgY29kZVBvaW50KFVuaWNvZGVTZXQgc291cmNlKSB7CisgICAgICAgIHJldHVybiBuZXcgQ29kZVBvaW50KHNvdXJjZSk7CisgICAgfQorICAgIHN0YXRpYyBwdWJsaWMgUGljayBzdHJpbmcoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICByZXR1cm4gbmV3IExpdGVyYWwoc291cmNlKTsKKyAgICB9CisgICAgLyoKKyAgICBzdGF0aWMgcHVibGljIFBpY2sgdW5xdW90ZWQoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICByZXR1cm4gbmV3IExpdGVyYWwoc291cmNlKTsKKyAgICB9CisgICAgc3RhdGljIHB1YmxpYyBQaWNrIHN0cmluZyhpbnQgbWluTGVuZ3RoLCBpbnQgbWF4TGVuZ3RoLCBQaWNrIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuIG5ldyBNb3JwaChpdGVtLCBtaW5MZW5ndGgsIG1heExlbmd0aCk7CisgICAgfQorICAgICovCisgICAgCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZyBnZXRJbnRlcm5hbChpbnQgZGVwdGgsIFNldCBhbHJlYWR5U2Vlbik7CisgICAgLy8gSW50ZXJuYWxzCisgICAKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIG5hbWU7CisgICAgCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgYWRkVG8oVGFyZ2V0IHRhcmdldCk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IGJvb2xlYW4gbWF0Y2goU3RyaW5nIGlucHV0LCBQb3NpdGlvbiBwKTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFNlcXVlbmNlIGV4dGVuZHMgTGlzdFBpY2sgeworICAgICAgICBwdWJsaWMgU2VxdWVuY2UgYW5kMiAoUGljayBpdGVtKSB7CisgICAgICAgICAgICBhZGRJbnRlcm5hbChuZXcgUGlja1tdIHtpdGVtfSk7IC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgcGVyZgorICAgICAgICAgICAgcmV0dXJuIHRoaXM7IC8vIGZvciBjaGFpbmluZworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTZXF1ZW5jZSBhbmQyIChQaWNrW10gaXRlbXMpIHsKKyAgICAgICAgICAgIGFkZEludGVybmFsKGl0ZW1zKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOyAvLyBmb3IgY2hhaW5pbmcKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBhZGRUbyhUYXJnZXQgdGFyZ2V0KSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaXRlbXNbaV0uYWRkVG8odGFyZ2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEludGVybmFsKGludCBkZXB0aCwgU2V0IGFscmVhZHlTZWVuKSB7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gY2hlY2tOYW1lKG5hbWUsIGFscmVhZHlTZWVuKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhcnRzV2l0aCgiJCIpKSByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0ID0gaW5kZW50KGRlcHRoKSArIHJlc3VsdCArICJTRVEoIjsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKSByZXN1bHQgKz0gIiwgIjsKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gaXRlbXNbaV0uZ2V0SW50ZXJuYWwoZGVwdGgrMSwgYWxyZWFkeVNlZW4pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0ICs9ICIpIjsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgLy8ga2VlcCBwcml2YXRlCisgICAgICAgIHByaXZhdGUgU2VxdWVuY2UoKSB7fQorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtYXRjaChTdHJpbmcgaW5wdXQsIFBvc2l0aW9uIHApIHsKKyAgICAgICAgICAgIGludCBvcmlnaW5hbEluZGV4ID0gcC5pbmRleDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWl0ZW1zW2ldLm1hdGNoKGlucHV0LCBwKSkgeworICAgICAgICAgICAgICAgICAgICBwLmluZGV4ID0gb3JpZ2luYWxJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIFN0cmluZyBjaGVja05hbWUoU3RyaW5nIG5hbWUsIFNldCBhbHJlYWR5U2VlbikgeworICAgICAgICBpZiAobmFtZSA9PSBudWxsKSByZXR1cm4gIiI7CisgICAgICAgIGlmIChhbHJlYWR5U2Vlbi5jb250YWlucyhuYW1lKSkgcmV0dXJuIG5hbWU7CisgICAgICAgIGFscmVhZHlTZWVuLmFkZChuYW1lKTsKKyAgICAgICAgcmV0dXJuICJ7IiArIG5hbWUgKyAiPX0iOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgQWx0ZXJuYXRpb24gZXh0ZW5kcyBMaXN0UGljayB7CisgICAgICAgIHByaXZhdGUgV2VpZ2h0ZWRJbmRleCB3ZWlnaHRlZEluZGV4ID0gbmV3IFdlaWdodGVkSW5kZXgoMCk7CisgICAgICAgICAgIAorICAgICAgICBwdWJsaWMgQWx0ZXJuYXRpb24gb3IyIChQaWNrW10gbmV3SXRlbXMpIHsKKyAgICAgICAgICAgIHJldHVybiBvcjIoMSwgbmV3SXRlbXMpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBBbHRlcm5hdGlvbiBvcjIgKGludCBpdGVtV2VpZ2h0LCBQaWNrIGl0ZW0pIHsKKyAgICAgICAgICAgIHJldHVybiBvcjIoaXRlbVdlaWdodCwgbmV3IFBpY2tbXSB7aXRlbX0pOyAvLyB3ZSBkb24ndCBjYXJlIGFib3V0IHBlcmYKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgQWx0ZXJuYXRpb24gb3IyIChpbnQgaXRlbVdlaWdodCwgUGlja1tdIG5ld0l0ZW1zKSB7CisgICAgICAgICAgICBpbnRbXSBpdGVtV2VpZ2h0cyA9IG5ldyBpbnRbbmV3SXRlbXMubGVuZ3RoXTsKKyAgICAgICAgICAgIEFycmF5cy5maWxsKGl0ZW1XZWlnaHRzLGl0ZW1XZWlnaHQpOworICAgICAgICAgICAgcmV0dXJuIG9yMihpdGVtV2VpZ2h0cywgbmV3SXRlbXMpOyAvLyB3ZSBkb24ndCBjYXJlIGFib3V0IHBlcmYKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgQWx0ZXJuYXRpb24gb3IyIChpbnRbXSBpdGVtV2VpZ2h0cywgUGlja1tdIG5ld0l0ZW1zKSB7CisgICAgICAgICAgICBpZiAobmV3SXRlbXMubGVuZ3RoICE9IGl0ZW1XZWlnaHRzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICJvciBsZW5ndGhzIG11c3QgYmUgZXF1YWw6ICIgKyBuZXdJdGVtcy5sZW5ndGggKyAiICE9ICIgKyBpdGVtV2VpZ2h0cy5sZW5ndGgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAvLyBpbnQgbGFzdExlbiA9IHRoaXMuaXRlbXMubGVuZ3RoOworICAgICAgICAgICAgYWRkSW50ZXJuYWwobmV3SXRlbXMpOworICAgICAgICAgICAgd2VpZ2h0ZWRJbmRleC5hZGQoaXRlbVdlaWdodHMpOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7IC8vIGZvciBjaGFpbmluZworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCB2b2lkIGFkZFRvKFRhcmdldCB0YXJnZXQpIHsKKyAgICAgICAgICAgIGl0ZW1zW3dlaWdodGVkSW5kZXgudG9JbmRleCh0YXJnZXQubmV4dERvdWJsZSgpKV0uYWRkVG8odGFyZ2V0KTsKKyAgICAgICAgfSAgICAKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW50ZXJuYWwoaW50IGRlcHRoLCBTZXQgYWxyZWFkeVNlZW4pIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBjaGVja05hbWUobmFtZSwgYWxyZWFkeVNlZW4pOworICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGFydHNXaXRoKCIkIikpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICByZXN1bHQgPSBpbmRlbnQoZGVwdGgpICsgcmVzdWx0ICsgIk9SKCI7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgIT0gMCkgcmVzdWx0ICs9ICIsICI7CisgICAgICAgICAgICAgICAgcmVzdWx0ICs9IGl0ZW1zW2ldLmdldEludGVybmFsKGRlcHRoKzEsIGFscmVhZHlTZWVuKSArICIvIiArIHdlaWdodGVkSW5kZXgud2VpZ2h0c1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAiKSI7CisgICAgICAgIH0KKyAgICAgICAgLy8ga2VlcCBwcml2YXRlCisgICAgICAgIHByaXZhdGUgQWx0ZXJuYXRpb24oKSB7fQorICAgICAgICAvLyB0YWtlIGZpcnN0IG1hdGNoaW5nIG9wdGlvbgorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtYXRjaChTdHJpbmcgaW5wdXQsIFBvc2l0aW9uIHApIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgd2VpZ2h0ZWRJbmRleC53ZWlnaHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHAuaXNGYWlsdXJlKHRoaXMsaSkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS5tYXRjaChpbnB1dCwgcCkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIHAuc2V0RmFpbHVyZSh0aGlzLCBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgaW5kZW50KGludCBkZXB0aCkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gIlxyXG4iOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlcHRoOyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdCArPSAiICI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgUmVwZWF0IGV4dGVuZHMgSXRlbVBpY2sgeworICAgICAgICBXZWlnaHRlZEluZGV4IHdlaWdodGVkSW5kZXg7CisgICAgICAgIGludCBtaW5Db3VudCA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBSZXBlYXQoaW50IG1pbkNvdW50LCBpbnQgbWF4Q291bnQsIGludFtdIGl0ZW1XZWlnaHRzLCBQaWNrIGl0ZW0pIHsKKyAgICAgICAgICAgIHN1cGVyKGl0ZW0pOworICAgICAgICAgICAgd2VpZ2h0ZWRJbmRleCA9IG5ldyBXZWlnaHRlZEluZGV4KG1pbkNvdW50KS5hZGQobWF4Q291bnQtbWluQ291bnQrMSwgaXRlbVdlaWdodHMpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgUmVwZWF0KGludCBtaW5Db3VudCwgaW50IG1heENvdW50LCBpbnQgaXRlbVdlaWdodCwgUGljayBpdGVtKSB7CisgICAgICAgICAgICBzdXBlcihpdGVtKTsKKyAgICAgICAgICAgIHdlaWdodGVkSW5kZXggPSBuZXcgV2VpZ2h0ZWRJbmRleChtaW5Db3VudCkuYWRkKG1heENvdW50LW1pbkNvdW50KzEsIGl0ZW1XZWlnaHQpOworICAgICAgICB9CisgICAgICAgIC8qCisgICAgICAgIHByaXZhdGUgUmVwZWF0KGludCBtaW5Db3VudCwgaW50IG1heENvdW50LCBPYmplY3QgaXRlbSkgeworICAgICAgICAgICAgdGhpcy5pdGVtID0gY29udmVydChpdGVtKTsKKyAgICAgICAgICAgIHdlaWdodGVkSW5kZXggPSBuZXcgV2VpZ2h0ZWRJbmRleChtaW5Db3VudCkuYWRkKG1heENvdW50LW1pbkNvdW50KzEsIDEpOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGFkZFRvKFRhcmdldCB0YXJnZXQpIHsKKyAgICAgICAgICAgIC8vaW50IGNvdW50IDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSB3ZWlnaHRlZEluZGV4LnRvSW5kZXgodGFyZ2V0Lm5leHREb3VibGUoKSk7IGkgPiAwOyAtLWkpIHsKKyAgICAgICAgICAgICAgICBpdGVtLmFkZFRvKHRhcmdldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRJbnRlcm5hbChpbnQgZGVwdGgsIFNldCBhbHJlYWR5U2VlbikgeworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGNoZWNrTmFtZShuYW1lLCBhbHJlYWR5U2Vlbik7CisgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXJ0c1dpdGgoIiQiKSkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIHJlc3VsdCA9IGluZGVudChkZXB0aCkgKyByZXN1bHQgKyAiUkVQRUFUKCIgKyB3ZWlnaHRlZEluZGV4CisgICAgICAgICAgICArICI7ICIrIGl0ZW0uZ2V0SW50ZXJuYWwoZGVwdGgrMSwgYWxyZWFkeVNlZW4pIAorICAgICAgICAgICAgKyAiKSI7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBtYXRjaCBsb25nZXN0LCBlLmcuIHVwIHRvIGp1c3QgYmVmb3JlIGEgZmFpbHVyZQorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtYXRjaChTdHJpbmcgaW5wdXQsIFBvc2l0aW9uIHApIHsKKyAgICAgICAgICAgIGludCBiZXN0TWF0Y2ggPSBwLmluZGV4OworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgd2VpZ2h0ZWRJbmRleC53ZWlnaHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHAuaXNGYWlsdXJlKHRoaXMsaSkpIGJyZWFrOworICAgICAgICAgICAgICAgIGlmICghaXRlbS5tYXRjaChpbnB1dCwgcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcC5zZXRGYWlsdXJlKHRoaXMsaSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgYmVzdE1hdGNoID0gcC5pbmRleDsKKyAgICAgICAgICAgICAgICBjb3VudCsrOyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNvdW50ID49IG1pbkNvdW50KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBUT0RPIGZpeCBmYWlsdXJlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ29kZVBvaW50IGV4dGVuZHMgRmluYWxQaWNrIHsKKyAgICAgICAgcHJpdmF0ZSBVbmljb2RlU2V0IHNvdXJjZTsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgQ29kZVBvaW50KFVuaWNvZGVTZXQgc291cmNlKSB7CisgICAgICAgICAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBhZGRUbyhUYXJnZXQgdGFyZ2V0KSB7CisgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKHNvdXJjZS5jaGFyQXQocGljayh0YXJnZXQucmFuZG9tLDAsc291cmNlLnNpemUoKS0xKSkpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIG1hdGNoKFN0cmluZyBzLCBQb3NpdGlvbiBwKSB7CisgICAgICAgICAgICBpbnQgY3AgPSBVVEYxNi5jaGFyQXQocywgcC5pbmRleCk7CisgICAgICAgICAgICBpZiAoc291cmNlLmNvbnRhaW5zKGNwKSkgeworICAgICAgICAgICAgICAgIHAuaW5kZXggKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHAuc2V0TWF4KCJjb2RlUG9pbnQiKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEludGVybmFsKGludCBkZXB0aCwgU2V0IGFscmVhZHlTZWVuKSB7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gY2hlY2tOYW1lKG5hbWUsIGFscmVhZHlTZWVuKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhcnRzV2l0aCgiJCIpKSByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIE1vcnBoIGV4dGVuZHMgSXRlbVBpY2sgeworICAgICAgICBNb3JwaChQaWNrIGl0ZW0pIHsKKyAgICAgICAgICAgIHN1cGVyKGl0ZW0pOworICAgICAgICB9CisgICAgCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGxhc3RWYWx1ZSA9IG51bGw7CisgICAgICAgIHByaXZhdGUgVGFyZ2V0IGFkZEJ1ZmZlciA9IFRhcmdldC5tYWtlKHRoaXMsIG51bGwsIG5ldyBRdW90ZXIuUnVsZVF1b3RlcigpKTsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbWVyZ2VCdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT1BZX05FVyA9IDAsIENPUFlfQk9USCA9IDEsIENPUFlfTEFTVCA9IDMsIFNLSVAgPSA0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVBU1RfU0tJUCA9IDQ7CisgICAgICAgIC8vIGdpdmUgd2VpZ2h0cyB0byB0aGUgYWJvdmUuIG1ha2Ugc3VyZSB3ZSBkZWxldGUgYWJvdXQgdGhlIHNhbWUgYXMgd2UgaW5zZXJ0CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFdlaWdodGVkSW5kZXggY2hvaWNlID0gbmV3IFdlaWdodGVkSW5kZXgoMCkKKyAgICAgICAgICAgIC5hZGQobmV3IGludFtdIHsxMCwgMTAsIDEwMCwgMTB9KTsKKyAgICAgICAgCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGFkZFRvKFRhcmdldCB0YXJnZXQpIHsKKyAgICAgICAgICAgIC8vIGdldCBjb250ZW50cyBpbnRvIHNlcGFyYXRlIGJ1ZmZlcgorICAgICAgICAgICAgYWRkQnVmZmVyLmNvcHlTdGF0ZSh0YXJnZXQpOworICAgICAgICAgICAgYWRkQnVmZmVyLmNsZWFyKCk7CisgICAgICAgICAgICBpdGVtLmFkZFRvKGFkZEJ1ZmZlcik7CisgICAgICAgICAgICBTdHJpbmcgbmV3VmFsdWUgPSBhZGRCdWZmZXIuZ2V0KCk7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiT2xkOiAiICsgbGFzdFZhbHVlICsgIiwgTmV3OiIgKyBuZXdWYWx1ZSk7CisKKyAgICAgICAgICAgIC8vIGlmIG5vdCBmaXJzdCBvbmUsIG1lcmdlIHdpdGggb2xkCisgICAgICAgICAgICBpZiAobGFzdFZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtZXJnZUJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgaW50IGxhc3RJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgaW50IG5ld0luZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAvLyB0aGUgbmV3IGxlbmd0aCBpcyBhIHJhbmRvbSB2YWx1ZSBiZXR3ZWVuIG9sZCBhbmQgbmV3LgorICAgICAgICAgICAgICAgIGludCBuZXdMZW5MaW1pdCA9IChpbnQpIHBpY2sodGFyZ2V0LnJhbmRvbSwgbGFzdFZhbHVlLmxlbmd0aCgpLCBuZXdWYWx1ZS5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgd2hpbGUgKG1lcmdlQnVmZmVyLmxlbmd0aCgpIDwgbmV3TGVuTGltaXQKKyAgICAgICAgICAgICAgICAgICYmIG5ld0luZGV4IDwgbmV3VmFsdWUubGVuZ3RoKCkKKyAgICAgICAgICAgICAgICAgICYmIGxhc3RJbmRleCA8IGxhc3RWYWx1ZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgYyA9IGNob2ljZS50b0luZGV4KHRhcmdldC5uZXh0RG91YmxlKCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSBDT1BZX05FVyB8fCBjID09IENPUFlfQk9USCB8fCBjID09IFNLSVApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld0luZGV4ID0gZ2V0Q2hhcihuZXdWYWx1ZSwgbmV3SW5kZXgsIG1lcmdlQnVmZmVyLCBjIDwgTEVBU1RfU0tJUCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVyZ2VCdWZmZXIubGVuZ3RoKCkgPj0gbmV3TGVuTGltaXQpIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChjID09IENPUFlfTEFTVCB8fCBjID09IENPUFlfQk9USCB8fCBjID09IFNLSVApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IGdldENoYXIobGFzdFZhbHVlLCBsYXN0SW5kZXgsIG1lcmdlQnVmZmVyLCBjIDwgTEVBU1RfU0tJUCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmV3VmFsdWUgPSBtZXJnZUJ1ZmZlci50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdFZhbHVlID0gbmV3VmFsdWU7CisgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKG5ld1ZhbHVlKTsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJSZXN1bHQ6ICIgKyBuZXdWYWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEludGVybmFsKGludCBkZXB0aCwgU2V0IGFscmVhZHlTZWVuKSB7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gY2hlY2tOYW1lKG5hbWUsIGFscmVhZHlTZWVuKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhcnRzV2l0aCgiJCIpKSByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgcmV0dXJuIGluZGVudChkZXB0aCkgKyByZXN1bHQgKyAiTU9SUEgoIgorICAgICAgICAgICAgICAgICsgaXRlbS5nZXRJbnRlcm5hbChkZXB0aCsxLCBhbHJlYWR5U2VlbikKKyAgICAgICAgICAgICAgICArICIpIjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgICAgICogQHNlZSBQaWNrI21hdGNoKGphdmEubGFuZy5TdHJpbmcsIFBpY2suUG9zaXRpb24pCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtYXRjaChTdHJpbmcgaW5wdXQsIFBvc2l0aW9uIHApIHsKKyAgICAgICAgICAgIC8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiBBZGQgY2hhcmFjdGVyIGlmIHdlIGNhbgorICAgICAqLworICAgIHN0YXRpYyBpbnQgZ2V0Q2hhcihTdHJpbmcgbmV3VmFsdWUsIGludCBuZXdJbmRleCwgU3RyaW5nQnVmZmVyIG1lcmdlQnVmZmVyLCBib29sZWFuIGNvcHkpIHsKKyAgICAgICAgaWYgKG5ld0luZGV4ID49IG5ld1ZhbHVlLmxlbmd0aCgpKSByZXR1cm4gbmV3SW5kZXg7CisgICAgICAgIGludCBjcCA9IFVURjE2LmNoYXJBdChuZXdWYWx1ZSxuZXdJbmRleCk7CisgICAgICAgIGlmIChjb3B5KSBVVEYxNi5hcHBlbmQobWVyZ2VCdWZmZXIsIGNwKTsKKyAgICAgICAgcmV0dXJuIG5ld0luZGV4ICsgVVRGMTYuZ2V0Q2hhckNvdW50KGNwKTsKKyAgICB9CisKKyAgICAvKiAgIAorICAgICAgICAgICAgLy8gcXVvdGVkIGFkZAorICAgICAgICAgICAgYXBwZW5kUXVvdGVkKHRhcmdldCwgYWRkQnVmZmVyLnRvU3RyaW5nKCksIHF1b3RlQnVmZmVyKTsKKyAgICAgICAgICAgIC8vIGZpeCBidWZmZXJzCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc3dhcFRlbXAgPSBhZGRCdWZmZXI7CisgICAgICAgICAgICBhZGRCdWZmZXIgPSBzb3VyY2U7CisgICAgICAgICAgICBzb3VyY2UgPSBzd2FwVGVtcDsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLworCisKKyAgICBzdGF0aWMgY2xhc3MgUXVvdGUgZXh0ZW5kcyBJdGVtUGljayB7CisgICAgICAgIFF1b3RlKFBpY2sgaXRlbSkgeworICAgICAgICAgICAgc3VwZXIoaXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgYWRkVG8oVGFyZ2V0IHRhcmdldCkgeworICAgICAgICAgICAgdGFyZ2V0LnF1b3Rlci5zZXRRdW90aW5nKHRydWUpOworICAgICAgICAgICAgaXRlbS5hZGRUbyh0YXJnZXQpOworICAgICAgICAgICAgdGFyZ2V0LnF1b3Rlci5zZXRRdW90aW5nKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gbWF0Y2goU3RyaW5nIHMsIFBvc2l0aW9uIHApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW50ZXJuYWwoaW50IGRlcHRoLCBTZXQgYWxyZWFkeVNlZW4pIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBjaGVja05hbWUobmFtZSwgYWxyZWFkeVNlZW4pOworICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGFydHNXaXRoKCIkIikpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICByZXR1cm4gaW5kZW50KGRlcHRoKSArIHJlc3VsdCArICJRVU9URSgiICsgaXRlbS5nZXRJbnRlcm5hbChkZXB0aCsxLCBhbHJlYWR5U2VlbikKKyAgICAgICAgICAgICAgICArICIpIjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBMaXRlcmFsIGV4dGVuZHMgRmluYWxQaWNrIHsKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBuYW1lOyAgICAgCisgICAgICAgIH0gICAgICAgIAorICAgICAgICBwcml2YXRlIExpdGVyYWwoU3RyaW5nIHNvdXJjZSkgeyAgCisgICAgICAgICAgICB0aGlzLm5hbWUgPSBzb3VyY2U7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgYWRkVG8oVGFyZ2V0IHRhcmdldCkgeworICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZChuYW1lKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtYXRjaChTdHJpbmcgaW5wdXQsIFBvc2l0aW9uIHApIHsKKyAgICAgICAgICAgIGludCBsZW4gPSBuYW1lLmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKGlucHV0LnJlZ2lvbk1hdGNoZXMocC5pbmRleCwgbmFtZSwgMCwgbGVuKSkgeworICAgICAgICAgICAgICAgIHAuaW5kZXggKz0gbGVuOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcC5zZXRNYXgoImxpdGVyYWwiKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEludGVybmFsKGludCBkZXB0aCwgU2V0IGFscmVhZHlTZWVuKSB7CisgICAgICAgICAgICByZXR1cm4gIiciICsgbmFtZSArICInIjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFBvc2l0aW9uIHsKKyAgICAgICAgcHVibGljIEFycmF5TGlzdCBmYWlsdXJlcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgcHVibGljIGludCBpbmRleDsKKyAgICAgICAgcHVibGljIGludCBtYXhJbnQ7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgbWF4VHlwZTsKKyAgICAgICAgcHVibGljIHZvaWQgc2V0TWF4KFN0cmluZyB0eXBlKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gbWF4SW50KSB7CisgICAgICAgICAgICAgICAgbWF4VHlwZSA9IHR5cGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiAiaW5kZXg7ICIgKyBpbmRleAorICAgICAgICAgICAgICAgICsgIiwgbWF4SW50OiIgKyBtYXhJbnQKKyAgICAgICAgICAgICAgICArICIsIG1heFR5cGU6ICIgKyBtYXhUeXBlOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdCBCQUQgPSBuZXcgT2JqZWN0KCk7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdCBHT09EID0gbmV3IE9iamVjdCgpOworICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNGYWlsdXJlKFBpY2sgcGljaywgaW50IGl0ZW0pIHsKKyAgICAgICAgICAgIEFycmF5TGlzdCB2YWwgPSAoQXJyYXlMaXN0KWZhaWx1cmVzLmdldChpbmRleCk7CisgICAgICAgICAgICBpZiAodmFsID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIFNldCBzZXQgPSAoU2V0KXZhbC5nZXQoaXRlbSk7CisgICAgICAgICAgICBpZiAoc2V0ID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiAhc2V0LmNvbnRhaW5zKHBpY2spOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHNldEZhaWx1cmUoUGljayBwaWNrLCBpbnQgaXRlbSkgeworICAgICAgICAgICAgQXJyYXlMaXN0IHZhbCA9IChBcnJheUxpc3QpZmFpbHVyZXMuZ2V0KGluZGV4KTsKKyAgICAgICAgICAgIGlmICh2YWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHZhbCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICBmYWlsdXJlcy5zZXQoaW5kZXgsIHZhbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTZXQgc2V0ID0gKFNldCl2YWwuZ2V0KGl0ZW0pOworICAgICAgICAgICAgaWYgKHNldCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc2V0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgICAgICAgICB2YWwuc2V0KGl0ZW0sIHNldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXQuYWRkKHBpY2spOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBQaWNrIE5PVEhJTkcgPSBuZXcgTm90aGluZygpOworICAgIAorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgTm90aGluZyBleHRlbmRzIEZpbmFsUGljayB7CisgICAgICAgIHByb3RlY3RlZCB2b2lkIGFkZFRvKFRhcmdldCB0YXJnZXQpIHt9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIG1hdGNoKFN0cmluZyBpbnB1dCwgUG9zaXRpb24gcCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRJbnRlcm5hbChpbnQgZGVwdGgsIFNldCBhbHJlYWR5U2VlbikgeworICAgICAgICAgICAgcmV0dXJuIGluZGVudChkZXB0aCkgKyAiXHUwMEY4IjsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLworICAgIAorICAgIC8vIGludGVybWVkaWF0ZXMKKyAgICAKKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgVmlzaXRvciB7CisgICAgICAgIFNldCBhbHJlYWR5ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgLy8gTm90ZTogZWFjaCB2aXNpdG9yIHNob3VsZCByZXR1cm4gdGhlIFBpY2sgdGhhdCB3aWxsIHJlcGxhY2UgYSAob3IgYSBpdHNlbGYpCisgICAgICAgIGFic3RyYWN0IFBpY2sgaGFuZGxlKFBpY2sgYSk7CisgICAgICAgIGJvb2xlYW4gYWxyZWFkeUVudGVyZWQoUGljayBpdGVtKSB7CisgICAgICAgICAgICBib29sZWFuIHJlc3VsdCA9IGFscmVhZHkuY29udGFpbnMoaXRlbSk7CisgICAgICAgICAgICBhbHJlYWR5LmFkZChpdGVtKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgdm9pZCByZXNldCgpIHsKKyAgICAgICAgICAgIGFscmVhZHkuY2xlYXIoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgUGljayB2aXNpdChWaXNpdG9yIHZpc2l0b3IpOworICAgIAorICAgIHN0YXRpYyBjbGFzcyBSZXBsYWNlciBleHRlbmRzIFZpc2l0b3IgeworICAgICAgICBTdHJpbmcgdG9SZXBsYWNlOworICAgICAgICBQaWNrIHJlcGxhY2VtZW50OworICAgICAgICBSZXBsYWNlcihTdHJpbmcgdG9SZXBsYWNlLCBQaWNrIHJlcGxhY2VtZW50KSB7CisgICAgICAgICAgICB0aGlzLnRvUmVwbGFjZSA9IHRvUmVwbGFjZTsKKyAgICAgICAgICAgIHRoaXMucmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgUGljayBoYW5kbGUoUGljayBhKSB7CisgICAgICAgICAgICBpZiAodG9SZXBsYWNlLmVxdWFscyhhLm5hbWUpKSB7CisgICAgICAgICAgICAgICAgYSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgIH0KKyAgICB9CisKKyAgICBhYnN0cmFjdCBwcml2YXRlIHN0YXRpYyBjbGFzcyBGaW5hbFBpY2sgZXh0ZW5kcyBQaWNrIHsKKyAgICAgICAgcHVibGljIFBpY2sgdmlzaXQoVmlzaXRvciB2aXNpdG9yKSB7CisgICAgICAgICAgICByZXR1cm4gdmlzaXRvci5oYW5kbGUodGhpcyk7CisgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBJdGVtUGljayBleHRlbmRzIFBpY2sgeworICAgICAgIHByb3RlY3RlZCBQaWNrIGl0ZW07CisgICAgICAgCisgICAgICAgSXRlbVBpY2sgKFBpY2sgaXRlbSkgeworICAgICAgICAgICB0aGlzLml0ZW0gPSBpdGVtOworICAgICAgIH0KKyAgICAgICAKKyAgICAgICBwdWJsaWMgUGljayB2aXNpdChWaXNpdG9yIHZpc2l0b3IpIHsKKyAgICAgICAgICAgUGljayByZXN1bHQgPSB2aXNpdG9yLmhhbmRsZSh0aGlzKTsKKyAgICAgICAgICAgaWYgKHZpc2l0b3IuYWxyZWFkeUVudGVyZWQodGhpcykpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgIGlmIChpdGVtICE9IG51bGwpIGl0ZW0gPSBpdGVtLnZpc2l0KHZpc2l0b3IpOworICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIH0KKyAgICB9CisgICAKKyAgICBwcml2YXRlIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBMaXN0UGljayBleHRlbmRzIFBpY2sgeworICAgICAgICBwcm90ZWN0ZWQgUGlja1tdIGl0ZW1zID0gbmV3IFBpY2tbMF07CisgICAgICAgIAorICAgICAgICBQaWNrIHNpbXBsaWZ5KCkgeworICAgICAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA+IDEpIHJldHVybiB0aGlzOworICAgICAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PSAxKSByZXR1cm4gaXRlbXNbMF07CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IHNpemUoKSB7CisgICAgICAgICAgICByZXR1cm4gaXRlbXMubGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgUGljayBnZXRMYXN0KCkgeworICAgICAgICAgICAgcmV0dXJuIGl0ZW1zW2l0ZW1zLmxlbmd0aC0xXTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgc2V0TGFzdChQaWNrIG5ld09uZSkgeworICAgICAgICAgICAgaXRlbXNbaXRlbXMubGVuZ3RoLTFdID0gbmV3T25lOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgYWRkSW50ZXJuYWwoUGlja1tdIG9ianMpIHsKKyAgICAgICAgICAgIGludCBsYXN0TGVuID0gaXRlbXMubGVuZ3RoOworICAgICAgICAgICAgaXRlbXMgPSByZWFsbG9jKGl0ZW1zLCBpdGVtcy5sZW5ndGggKyBvYmpzLmxlbmd0aCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG9ianMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpdGVtc1tsYXN0TGVuICsgaV0gPSBvYmpzW2ldOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFBpY2sgdmlzaXQoVmlzaXRvciB2aXNpdG9yKSB7CisgICAgICAgICAgICBQaWNrIHJlc3VsdCA9IHZpc2l0b3IuaGFuZGxlKHRoaXMpOworICAgICAgICAgICAgaWYgKHZpc2l0b3IuYWxyZWFkeUVudGVyZWQodGhpcykpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaXRlbXNbaV0gPSBpdGVtc1tpXS52aXNpdCh2aXNpdG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2ltcGxlIGNsYXNzIHRvIGRpc3RyaWJ1dGUgYSBudW1iZXIgYmV0d2VlbiAwIChpbmNsdXNpdmUpIGFuZCAxIChleGNsdXNpdmUpIGFtb25nCisgICAgICogYSBudW1iZXIgb2YgaW5kaWNlcywgd2hlcmUgZWFjaCBpbmRleCBpcyB3ZWlnaHRlZC4KKyAgICAgKiBJdGVtIHdlaWdodHMgbWF5IGJlIHplcm8sIGJ1dCBjYW5ub3QgYmUgbmVnYXRpdmUuCisgICAgICogQGF1dGhvciBEYXZpcworICAgICAqLworICAgIC8vIEFzIGluIG90aGVyIGNhc2UsIHdlIHVzZSBhbiBhcnJheSBmb3IgcnVudGltZSBzcGVlZDsgZG9uJ3QgY2FyZSBhYm91dCBidWlsZHNwZWVkLgorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgV2VpZ2h0ZWRJbmRleCB7CisgICAgICAgIHByaXZhdGUgaW50W10gd2VpZ2h0cyA9IG5ldyBpbnRbMF07CisgICAgICAgIHByaXZhdGUgaW50IG1pbkNvdW50ID0gMDsKKyAgICAgICAgcHJpdmF0ZSBkb3VibGUgdG90YWw7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgV2VpZ2h0ZWRJbmRleChpbnQgbWluQ291bnQpIHsKKyAgICAgICAgICAgIHRoaXMubWluQ291bnQgPSBtaW5Db3VudDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFdlaWdodGVkSW5kZXggYWRkKGludCBjb3VudCwgaW50IGl0ZW1XZWlnaHRzKSB7CisgICAgICAgICAgICBpZiAoY291bnQgPiAwKSB7CisgICAgICAgICAgICAgICAgaW50W10gbmV3V2VpZ2h0cyA9IG5ldyBpbnRbY291bnRdOworICAgICAgICAgICAgICAgIGlmIChpdGVtV2VpZ2h0cyA8IDEpIGl0ZW1XZWlnaHRzID0gMTsKKyAgICAgICAgICAgICAgICBBcnJheXMuZmlsbChuZXdXZWlnaHRzLCAwLCBjb3VudCwgaXRlbVdlaWdodHMpOworICAgICAgICAgICAgICAgIGFkZCgxLCBuZXdXZWlnaHRzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0aGlzOyAvLyBmb3IgY2hhaW5pbmcKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBXZWlnaHRlZEluZGV4IGFkZChpbnRbXSBuZXdXZWlnaHRzKSB7CisgICAgICAgICAgICByZXR1cm4gYWRkKG5ld1dlaWdodHMubGVuZ3RoLCBuZXdXZWlnaHRzKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFdlaWdodGVkSW5kZXggYWRkKGludCBtYXhDb3VudCwgaW50W10gbmV3V2VpZ2h0cykgeworICAgICAgICAgICAgaWYgKG5ld1dlaWdodHMgPT0gbnVsbCkgbmV3V2VpZ2h0cyA9IG5ldyBpbnRbXXsxfTsKKyAgICAgICAgICAgIGludCBvbGRMZW4gPSB3ZWlnaHRzLmxlbmd0aDsKKyAgICAgICAgICAgIGlmIChtYXhDb3VudCA8IG5ld1dlaWdodHMubGVuZ3RoKSBtYXhDb3VudCA9IG5ld1dlaWdodHMubGVuZ3RoOworICAgICAgICAgICAgd2VpZ2h0cyA9IChpbnRbXSkgcmVhbGxvYyh3ZWlnaHRzLCB3ZWlnaHRzLmxlbmd0aCArIG1heENvdW50KTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobmV3V2VpZ2h0cywgMCwgd2VpZ2h0cywgb2xkTGVuLCBuZXdXZWlnaHRzLmxlbmd0aCk7CisgICAgICAgICAgICBpbnQgbGFzdFdlaWdodCA9IHdlaWdodHNbb2xkTGVuICsgbmV3V2VpZ2h0cy5sZW5ndGgtMV07CisgICAgICAgICAgICBmb3IgKGludCBpID0gb2xkTGVuICsgbmV3V2VpZ2h0cy5sZW5ndGg7IGkgPCBtYXhDb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgd2VpZ2h0c1tpXSA9IGxhc3RXZWlnaHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0b3RhbCA9IDA7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHdlaWdodHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAod2VpZ2h0c1tpXSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIm9ubHkgcG9zaXRpdmUgd2VpZ2h0czogIiArIGkpOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgdG90YWwgKz0gd2VpZ2h0c1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0aGlzOyAvLyBmb3IgY2hhaW5pbmcKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gVE9ETywgbWFrZSB0aGlzIG1vcmUgZWZmaWNpZW50CisgICAgICAgIHB1YmxpYyBpbnQgdG9JbmRleChkb3VibGUgemVyb1RvT25lKSB7CisgICAgICAgICAgICBkb3VibGUgd2VpZ2h0ID0gemVyb1RvT25lKnRvdGFsOworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgd2VpZ2h0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHdlaWdodCAtPSB3ZWlnaHRzW2ldOworICAgICAgICAgICAgICAgIGlmICh3ZWlnaHQgPD0gMCkgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gaSArIG1pbkNvdW50OworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gIiI7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1pbkNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCgpICE9IDApIHJlc3VsdCArPSAiLCI7CisgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIwIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgd2VpZ2h0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgIT0gMCkgcmVzdWx0ICs9ICIsIjsKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2VpZ2h0c1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoKKyAgICBwcml2YXRlIHN0YXRpYyBQaWNrIGNvbnZlcnQoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgUGljaykgcmV0dXJuIChQaWNrKW9iajsKKyAgICAgICAgcmV0dXJuIG5ldyBMaXRlcmFsKG9iai50b1N0cmluZygpLCBmYWxzZSk7CisgICAgfQorICAgICovCisgICAgLy8gVXNlZnVsIHN0YXRpY3MKKyAgICAKKyAgICBzdGF0aWMgcHVibGljIGludCBwaWNrKFJhbmRvbSByYW5kb20sIGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICByZXR1cm4gc3RhcnQgKyAoaW50KShyYW5kb20ubmV4dERvdWJsZSgpICogKGVuZCArIDEgLSBzdGFydCkpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIGRvdWJsZSBwaWNrKFJhbmRvbSByYW5kb20sIGRvdWJsZSBzdGFydCwgZG91YmxlIGVuZCkgeworICAgICAgICByZXR1cm4gc3RhcnQgKyAocmFuZG9tLm5leHREb3VibGUoKSAqIChlbmQgKyAxIC0gc3RhcnQpKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHB1YmxpYyBib29sZWFuIHBpY2soUmFuZG9tIHJhbmRvbSwgZG91YmxlIHBlcmNlbnQpIHsKKyAgICAgICAgcmV0dXJuIHJhbmRvbS5uZXh0RG91YmxlKCkgPD0gcGVyY2VudDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHB1YmxpYyBpbnQgcGljayhSYW5kb20gcmFuZG9tLCBVbmljb2RlU2V0IHMpIHsKKyAgICAgICAgcmV0dXJuIHMuY2hhckF0KHBpY2socmFuZG9tLCAwLHMuc2l6ZSgpLTEpKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgcGljayhSYW5kb20gcmFuZG9tLCBTdHJpbmdbXSBzb3VyY2UpIHsKKyAgICAgICAgcmV0dXJuIHNvdXJjZVtwaWNrKHJhbmRvbSwgMCwgc291cmNlLmxlbmd0aC0xKV07CisgICAgfQorICAgIAorICAgIC8vIHRoZXNlIHV0aWxpdGllcyByZWFsbHkgb3VnaHQgdG8gYmUgaW4gSmF2YQorICAgIAorcHVibGljIHN0YXRpYyBkb3VibGVbXSByZWFsbG9jKGRvdWJsZVtdIHNvdXJjZSwgaW50IG5ld1NpemUpIHsKKyAgICBkb3VibGVbXSB0ZW1wID0gbmV3IGRvdWJsZVtuZXdTaXplXTsKKyAgICBpZiAobmV3U2l6ZSA+IHNvdXJjZS5sZW5ndGgpIG5ld1NpemUgPSBzb3VyY2UubGVuZ3RoOworICAgIGlmIChuZXdTaXplICE9IDApIFN5c3RlbS5hcnJheWNvcHkoc291cmNlLDAsdGVtcCwwLG5ld1NpemUpOworICAgIHJldHVybiB0ZW1wOworfQorICAgIAorcHVibGljIHN0YXRpYyBpbnRbXSByZWFsbG9jKGludFtdIHNvdXJjZSwgaW50IG5ld1NpemUpIHsKKyAgICBpbnRbXSB0ZW1wID0gbmV3IGludFtuZXdTaXplXTsKKyAgICBpZiAobmV3U2l6ZSA+IHNvdXJjZS5sZW5ndGgpIG5ld1NpemUgPSBzb3VyY2UubGVuZ3RoOworICAgIGlmIChuZXdTaXplICE9IDApIFN5c3RlbS5hcnJheWNvcHkoc291cmNlLDAsdGVtcCwwLG5ld1NpemUpOworICAgIHJldHVybiB0ZW1wOworfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgUGlja1tdIHJlYWxsb2MoUGlja1tdIHNvdXJjZSwgaW50IG5ld1NpemUpIHsKKyAgICAgICAgUGlja1tdIHRlbXAgPSBuZXcgUGlja1tuZXdTaXplXTsKKyAgICAgICAgaWYgKG5ld1NpemUgPiBzb3VyY2UubGVuZ3RoKSBuZXdTaXplID0gc291cmNlLmxlbmd0aDsKKyAgICAgICAgaWYgKG5ld1NpemUgIT0gMCkgU3lzdGVtLmFycmF5Y29weShzb3VyY2UsMCx0ZW1wLDAsbmV3U2l6ZSk7CisgICAgICAgIHJldHVybiB0ZW1wOworICAgIH0KKyAgICAKKyAgICAvLyB0ZXN0IHV0aWxpdGllcworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYXBwZW5kKFN0cmluZ0J1ZmZlciB0YXJnZXQsIFN0cmluZyB0b0FkZCwgU3RyaW5nQnVmZmVyIHF1b3RlQnVmZmVyKSB7CisgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHRhcmdldCwgKGludCktMSwgdHJ1ZSwgZmFsc2UsIHF1b3RlQnVmZmVyKTsgLy8gY2xvc2UgcHJldmlvdXMgcXVvdGUKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlwiIiArIHRvQWRkICsgIlwiIik7CisgICAgICAgIHRhcmdldC5hcHBlbmQodG9BZGQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYXBwZW5kUXVvdGVkKFN0cmluZ0J1ZmZlciB0YXJnZXQsIFN0cmluZyB0b0FkZCwgU3RyaW5nQnVmZmVyIHF1b3RlQnVmZmVyKSB7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJcIiIgKyB0b0FkZCArICJcIiIpOworICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZSh0YXJnZXQsIHRvQWRkLCBmYWxzZSwgZmFsc2UsIHF1b3RlQnVmZmVyKTsKKyAgICB9CisKKyAgICAvKgorICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgTWF0Y2hIYW5kbGVyIHsKKyAgICAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgaGFuZGxlU3RyaW5nKFN0cmluZyBzb3VyY2UsIGludCBzdGFydCwgaW50IGxpbWl0KTsKKyAgICAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgaGFuZGxlU2VxdWVuY2UoU3RyaW5nIHNvdXJjZSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpOworICAgICAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBoYW5kbGVBbHRlcm5hdGlvbihTdHJpbmcgc291cmNlLCBpbnQgc3RhcnQsIGludCBsaW1pdCk7CisgICAgICAgICAgICAKKyAgICB9CisgICAgKi8KKyAgICAvKgorICAgIC8vIHJlZGlzdHJpYnV0ZXMgcmFuZG9tIHZhbHVlCisgICAgLy8gdmFsdWVzIGFyZSBzdGlsbCBiZXR3ZWVuIDAgYW5kIDEsIGJ1dCB3aXRoIGEgZGlmZmVyZW50IGRpc3RyaWJ1dGlvbgorICAgIHB1YmxpYyBpbnRlcmZhY2UgU3ByZWFkIHsKKyAgICAgICAgcHVibGljIGRvdWJsZSBzcHJlYWQoZG91YmxlIHZhbHVlKTsKKyAgICB9CisgICAgCisgICAgLy8gZ2l2ZSB0aGUgd2VpZ2h0IGZvciB0aGUgaGlnaCBlbmQuCisgICAgLy8gdmFsdWVzIGFyZSBsaW5lYXJseSBzY2FsZWQgYWNjb3JkaW5nIHRvIHRoZSB3ZWlnaHQuCisgICAgc3RhdGljIHB1YmxpYyBjbGFzcyBTaW1wbGVTcHJlYWQgaW1wbGVtZW50cyBTcHJlYWQgeworICAgICAgICBzdGF0aWMgZmluYWwgU3ByZWFkIEZMQVQgPSBuZXcgU2ltcGxlU3ByZWFkKDEuMCk7CisgICAgICAgIGJvb2xlYW4gZmxhdCA9IGZhbHNlOworICAgICAgICBkb3VibGUgYWEsIGJiLCBjYzsKKyAgICAgICAgcHVibGljIFNpbXBsZVNwcmVhZChkb3VibGUgbWF4V2VpZ2h0KSB7ICAgCisgICAgICAgICAgICBpZiAobWF4V2VpZ2h0ID4gMC45OTkgJiYgbWF4V2VpZ2h0IDwgMS4wMDEpIHsKKyAgICAgICAgICAgICAgICBmbGF0ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7IAorICAgICAgICAgICAgICAgIGRvdWJsZSBxID0gKG1heFdlaWdodCAtIDEuMCk7CisgICAgICAgICAgICAgICAgYWEgPSAtMS9xOworICAgICAgICAgICAgICAgIGJiID0gMS8ocSpxKTsKKyAgICAgICAgICAgICAgICBjYyA9ICgyLjArcSkvcTsKKyAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGRvdWJsZSBzcHJlYWQoZG91YmxlIHZhbHVlKSB7CisgICAgICAgICAgICBpZiAoZmxhdCkgcmV0dXJuIHZhbHVlOworICAgICAgICAgICAgdmFsdWUgPSBhYSArIE1hdGguc3FydChiYiArIGNjKnZhbHVlKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IDAuMCkgcmV0dXJuIDAuMDsgICAgLy8gY2F0Y2ggbWF0aCBnb3JwCisgICAgICAgICAgICBpZiAodmFsdWUgPj0gMS4wKSByZXR1cm4gMS4wOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyBwdWJsaWMgaW50IHBpY2soU3ByZWFkIHNwcmVhZCwgUmFuZG9tIHJhbmRvbSwgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIHJldHVybiBzdGFydCArIChpbnQpKHNwcmVhZC5zcHJlYWQocmFuZG9tLm5leHREb3VibGUoKSkgKiAoZW5kICsgMSAtIHN0YXJ0KSk7CisgICAgfQorICAgIAorICAgKi8KKyAgICAKKworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1F1b3Rlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvUXVvdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhkNmFiMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1F1b3Rlci5qYXZhCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIFF1b3RlciB7CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIAorICAgIHByb3RlY3RlZCBib29sZWFuIHF1b3RpbmcgPSBmYWxzZTsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nQnVmZmVyIG91dHB1dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRRdW90aW5nKGJvb2xlYW4gdmFsdWUpIHsKKyAgICAgICAgcXVvdGluZyA9IHZhbHVlOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1F1b3RpbmcoKSB7CisgICAgICAgIHJldHVybiBxdW90aW5nOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgcXVvdGluZyA9IGZhbHNlOworICAgICAgICBvdXRwdXQuc2V0TGVuZ3RoKDApOworICAgIH0KKyAgICBwdWJsaWMgaW50IGxlbmd0aCgpIHsKKyAgICAgICAgcmV0dXJuIG91dHB1dC5sZW5ndGgoKTsKKyAgICB9CisgICAgcHVibGljIFF1b3RlciBhcHBlbmQoU3RyaW5nIHN0cmluZykgeworICAgICAgICBvdXRwdXQuYXBwZW5kKHN0cmluZyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICBwdWJsaWMgUXVvdGVyIGFwcGVuZChpbnQgY29kZXBvaW50KSB7CisgICAgICAgIHJldHVybiBhcHBlbmQoVVRGMTYudmFsdWVPZihjb2RlcG9pbnQpKTsKKyAgICB9CisgICAgLy8gd2FybmluZywgYWxsb3dzIGFjY2VzcyB0byBpbnRlcm5hbHMKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBzZXRRdW90aW5nKGZhbHNlKTsgLy8gZmluaXNoIHF1b3RpbmcKKyAgICAgICAgcmV0dXJuIG91dHB1dC50b1N0cmluZygpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHN0YW5kYXJkIElDVSBydWxlIHF1b3RpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFJ1bGVRdW90ZXIgZXh0ZW5kcyBRdW90ZXIgeworICAgICAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBxdW90ZUJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcHVibGljIHZvaWQgc2V0UXVvdGluZyhib29sZWFuIHZhbHVlKSB7CisgICAgICAgICAgICBpZiAocXVvdGluZyA9PSB2YWx1ZSkgcmV0dXJuOworICAgICAgICAgICAgaWYgKHF1b3RpbmcpIHsgLy8gc3RvcCBxdW90aW5nCisgICAgICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUob3V0cHV0LCAoaW50KS0xLCB0cnVlLCBmYWxzZSwgcXVvdGVCdWZmZXIpOyAvLyBjbG9zZSBwcmV2aW91cyBxdW90ZQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcXVvdGluZyA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBRdW90ZXIgYXBwZW5kKFN0cmluZyBzKSB7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiXCIiICsgcyArICJcIiIpOworICAgICAgICAgICAgaWYgKHF1b3RpbmcpIHsKKyAgICAgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShvdXRwdXQsIHMsIGZhbHNlLCBmYWxzZSwgcXVvdGVCdWZmZXIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvUmVsYXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1JlbGF0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTNmMDk2NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1JlbGF0aW9uLmphdmEKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IE1hcmsgRGF2aXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CisKKy8qKgorICogQSBSZWxhdGlvbiBpcyBhIHNldCBvZiBtYXBwaW5ncyBmcm9tIGtleXMgdG8gdmFsdWVzLgorICogVW5saWtlIE1hcCwgdGhlcmUgaXMgbm90IGd1YXJhbnRlZWQgdG8gYmUgYSBzaW5nbGUgdmFsdWUgcGVyIGtleS4KKyAqIFRoZSBNYXAtbGlrZSBBUElzIHJldHVybiBjb2xsZWN0aW9ucyBmb3IgdmFsdWVzLgorICogQGF1dGhvciBtZWRhdmlzCisgKgorICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdyAtIFByZWZlcmVuY2VzIC0gSmF2YSAtIENvZGUgU3R5bGUgLSBDb2RlIFRlbXBsYXRlcworICovCitwdWJsaWMgY2xhc3MgUmVsYXRpb24geworICAgIHByaXZhdGUgTWFwIG07CisgICAgcHJpdmF0ZSBDb2xsZWN0aW9uRmFjdG9yeSBzdWJjb2xsZWN0aW9uOworCisgICAgcHVibGljIFJlbGF0aW9uKE1hcCBtYWluTWFwLCBDb2xsZWN0aW9uRmFjdG9yeSBzdWJjb2xsZWN0aW9uKSB7CisgICAgICAgIG0gPSBtYWluTWFwOworICAgICAgICBpZiAoc3ViY29sbGVjdGlvbiA9PSBudWxsKSBzdWJjb2xsZWN0aW9uID0gbmV3IENvbGxlY3Rpb25NYWtlcihudWxsKTsKKyAgICAgICAgdGhpcy5zdWJjb2xsZWN0aW9uID0gc3ViY29sbGVjdGlvbjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgbS5jbGVhcigpOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc0tleShPYmplY3Qga2V5KSB7CisgICAgICAgIHJldHVybiBtLmNvbnRhaW5zS2V5KGtleSk7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zVmFsdWUoT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIHJldHVybiBtLmNvbnRhaW5zVmFsdWUodmFsdWUpOworICAgIH0KKyAgICBwdWJsaWMgU2V0IGVudHJ5U2V0KCkgeworICAgICAgICByZXR1cm4gbS5lbnRyeVNldCgpOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICByZXR1cm4gbS5lcXVhbHMob2JqKTsKKyAgICB9CisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIG0uaGFzaENvZGUoKTsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpIHsKKyAgICAgICAgcmV0dXJuIG0uaXNFbXB0eSgpOworICAgIH0KKyAgICBwdWJsaWMgT2JqZWN0IHJlbW92ZShPYmplY3Qga2V5KSB7CisgICAgICAgIHJldHVybiBtLnJlbW92ZShrZXkpOworICAgIH0KKyAgICBwdWJsaWMgaW50IHNpemUoKSB7CisgICAgICAgIHJldHVybiBtLnNpemUoKTsKKyAgICB9CisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIG0udG9TdHJpbmcoKTsKKyAgICB9CisgICAgcHVibGljIFNldCBrZXlTZXQoKSB7CisgICAgICAgIHJldHVybiBtLmtleVNldCgpOworICAgIH0KKyAgICAvKgorICAgIHB1YmxpYyB2b2lkIGFkZEFsbChSZWxhdGlvbiB0KSB7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSB0LmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIE9iamVjdCBrZXkgPSBpdC5uZXh0KCk7CisgICAgICAgICAgICBhZGQoa2V5LCB0LmdldChrZXkpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAqLworICAgIHB1YmxpYyBDb2xsZWN0aW9uIHZhbHVlcygpIHsKKyAgICAgICAgcmV0dXJuIG0udmFsdWVzKCk7CisgICAgfQorICAgIHB1YmxpYyBDb2xsZWN0aW9uIGdldChPYmplY3Qga2V5LCBDb2xsZWN0aW9uIG91dHB1dCkgeworICAgICAgICBvdXRwdXQuYWRkQWxsKChDb2xsZWN0aW9uKW0uZ2V0KGtleSkpOworICAgICAgICByZXR1cm4gb3V0cHV0OworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBhZGQoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIENvbGxlY3Rpb24gbyA9IChDb2xsZWN0aW9uKSBtLmdldChrZXkpOworICAgICAgICBpZiAobyA9PSBudWxsKSBtLnB1dChrZXksIG8gPSBzdWJjb2xsZWN0aW9uLm1ha2UoKSk7CisgICAgICAgIG8uYWRkKHZhbHVlKTsKKyAgICB9CisgICAgcHVibGljIEl0ZXJhdG9yIGl0ZXJhdG9yKCkgeworICAgICAgICByZXR1cm4gbS5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgIH0KKyAgICBwdWJsaWMgaW50ZXJmYWNlIENvbGxlY3Rpb25GYWN0b3J5IHsKKyAgICAgICAgQ29sbGVjdGlvbiBtYWtlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBpcyBqdXN0IHRlbXBvcmFyeSwgYW5kIG1heSBjaGFuZ2UhIQorICAgICAqIEBhdXRob3IgbWVkYXZpcworICAgICAqCisgICAgICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAgICAgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIENvbGxlY3Rpb25NYWtlciBpbXBsZW1lbnRzIENvbGxlY3Rpb25GYWN0b3J5IHsKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFTSCA9IDAsIFRSRUUgPSAxOworICAgICAgICBwcml2YXRlIENvbXBhcmF0b3IgY29tcGFyYXRvciA9IG51bGw7CisgICAgICAgIHByaXZhdGUgaW50IHR5cGUgPSBIQVNIOworCisgICAgICAgIHB1YmxpYyBDb2xsZWN0aW9uTWFrZXIoaW50IHR5cGUpIHsKKyAgICAgICAgICAgIHRoaXMudHlwZSA9IHR5cGU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIENvbGxlY3Rpb25NYWtlcihDb21wYXJhdG9yIGNvbXBhcmF0b3IpIHsKKyAgICAgICAgICAgIHRoaXMuY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIENvbGxlY3Rpb24gbWFrZSgpIHsKKyAgICAgICAgICAgIGlmIChjb21wYXJhdG9yICE9IG51bGwpIHJldHVybiBuZXcgVHJlZVNldChjb21wYXJhdG9yKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gSEFTSCkgcmV0dXJuIG5ldyBIYXNoU2V0KCk7CisgICAgICAgICAgICBlbHNlIHJldHVybiBuZXcgVHJlZVNldCgpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1NvcnRlZEJhZy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvU29ydGVkQmFnLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZhNDAxYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1NvcnRlZEJhZy5qYXZhCkBAIC0wLDAgKzEsMTQ1IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBNYXJrIERhdmlzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqL3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLk5vU3VjaEVsZW1lbnRFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKKworLyoqCisgKiBBIGNvbGxlY3Rpb24gdGhhdCBpcyBsaWtlIGEgc29ydGVkIHNldCwgZXhjZXB0IHRoYXQgaXQgYWxsb3dzCisgKiBtdWx0aXBsZSBlbGVtZW50cyB0aGF0IGNvbXBhcmUgYXMgZXF1YWwKKyAqIEBhdXRob3IgbWVkYXZpcworICovCisvLyBUT0RPIHJlcGxhY2UgdXNlIG9mIFNldCB3aXRoIGEgY29sbGVjdGlvbiB0aGF0IHRha2VzIGFuIEVxdWF0b3IKK3B1YmxpYyBjbGFzcyBTb3J0ZWRCYWcgaW1wbGVtZW50cyBDb2xsZWN0aW9uIHsKKyAgICAvKioKKyAgICAgKiBBIG1hcCBvZiBzZXRzLCB3aGVyZSBlYWNoIGNvcnJlc3BvbmRzIHRvIG9uZSBzb3J0ZWQgZWxlbWVudC4KKyAgICAgKiBUaGUgc2V0cyBhcmUgbmV2ZXIgZW1wdHkKKyAgICAgKi8KKyAgICBwcml2YXRlIE1hcCBtOworICAgIHByaXZhdGUgaW50IHNpemU7CisKKyAgICBwdWJsaWMgU29ydGVkQmFnKENvbXBhcmF0b3IgYykgeworICAgICAgICBtID0gbmV3IFRyZWVNYXAoYyk7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGFkZChPYmplY3QgcykgeworICAgICAgICBTZXQgbyA9IChTZXQpbS5nZXQocyk7CisgICAgICAgIGlmIChvID09IG51bGwpIHsKKyAgICAgICAgICAgIG8gPSBuZXcgSGFzaFNldCgxKTsKKyAgICAgICAgICAgIG0ucHV0KHMsbyk7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBvLmFkZChzKTsKKyAgICAgICAgaWYgKHJlc3VsdCkgc2l6ZSsrOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBwdWJsaWMgSXRlcmF0b3IgaXRlcmF0b3IoKSB7CisgICAgICAgIHJldHVybiBuZXcgTXlJdGVyYXRvcigpOworICAgIH0KKyAgICBzdGF0aWMgSXRlcmF0b3IgRU1QVFlfSVRFUkFUT1IgPSBuZXcgSGFzaFNldCgpLml0ZXJhdG9yKCk7CisgICAgcHJpdmF0ZSBjbGFzcyBNeUl0ZXJhdG9yIGltcGxlbWVudHMgSXRlcmF0b3IgeworICAgICAgICBwcml2YXRlIEl0ZXJhdG9yIG1hcEl0ZXJhdG9yID0gbS5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICBwcml2YXRlIEl0ZXJhdG9yIHNldEl0ZXJhdG9yID0gbnVsbDsKKworICAgICAgICBwcml2YXRlIE15SXRlcmF0b3IoKSB7CisgICAgICAgICAgICBtYXBJdGVyYXRvciA9IG0ua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHNldEl0ZXJhdG9yID0gZ2V0U2V0SXRlcmF0b3IoKTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIEl0ZXJhdG9yIGdldFNldEl0ZXJhdG9yKCkgeworICAgICAgICAgICAgaWYgKCFtYXBJdGVyYXRvci5oYXNOZXh0KCkpIHJldHVybiBFTVBUWV9JVEVSQVRPUjsKKyAgICAgICAgICAgIHJldHVybiAoKFNldCltLmdldChtYXBJdGVyYXRvci5uZXh0KCkpKS5pdGVyYXRvcigpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc05leHQoKSB7CisgICAgICAgICAgICByZXR1cm4gc2V0SXRlcmF0b3IuaGFzTmV4dCgpIHx8IG1hcEl0ZXJhdG9yLmhhc05leHQoKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgT2JqZWN0IG5leHQoKSB7CisgICAgICAgICAgICBpZiAoIXNldEl0ZXJhdG9yLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIHNldEl0ZXJhdG9yID0gZ2V0U2V0SXRlcmF0b3IoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzZXRJdGVyYXRvci5uZXh0KCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgcmVtb3ZlKCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICoKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgbS5jbGVhcigpOworICAgIH0KKyAgICBwdWJsaWMgaW50IHNpemUoKSB7CisgICAgICAgIHJldHVybiBzaXplOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0VtcHR5KCkgeworICAgICAgICByZXR1cm4gc2l6ZSA9PSAwOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhPYmplY3QgbykgeworICAgICAgICBTZXQgc2V0ID0gKFNldCltLmdldChvKTsKKyAgICAgICAgaWYgKHNldCA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBzZXQuY29udGFpbnMobyk7CisgICAgfQorICAgIHB1YmxpYyBPYmplY3RbXSB0b0FycmF5KCkgeworICAgICAgICByZXR1cm4gdG9BcnJheShuZXcgT2JqZWN0W3NpemVdKTsKKyAgICB9CisgICAgcHVibGljIE9iamVjdFtdIHRvQXJyYXkoT2JqZWN0W10gYSkgeworICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgYVtjb3VudCsrXSA9IGl0Lm5leHQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYTsKKyAgICB9CisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgamF2YS51dGlsLkNvbGxlY3Rpb24jcmVtb3ZlKGphdmEubGFuZy5PYmplY3QpCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcmVtb3ZlKE9iamVjdCBvKSB7CisgICAgICAgIFNldCBzZXQgPSAoU2V0KW0uZ2V0KG8pOworICAgICAgICBpZiAoc2V0ID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFzZXQucmVtb3ZlKG8pKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChzZXQuc2l6ZSgpID09IDApIG0ucmVtb3ZlKG8pOworICAgICAgICBzaXplLS07CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc0FsbChDb2xsZWN0aW9uIGMpIHsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOyApIHsKKyAgICAgICAgICAgIGlmICghY29udGFpbnMoaXQubmV4dCgpKSkgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBhZGRBbGwoQ29sbGVjdGlvbiBjKSB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gZmFsc2U7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTsgKSB7CisgICAgICAgICAgICBpZiAoYWRkKGl0Lm5leHQoKSkpIHJlc3VsdCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gcmVtb3ZlQWxsKENvbGxlY3Rpb24gYykgeworICAgICAgICBib29sZWFuIHJlc3VsdCA9IGZhbHNlOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7ICkgeworICAgICAgICAgICAgaWYgKHJlbW92ZShpdC5uZXh0KCkpKSByZXN1bHQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIHJldGFpbkFsbChDb2xsZWN0aW9uIGMpIHsKKyAgICAgICAgLy8gV0FSTklORzogdGhpcyBtYXkgbm90IHdvcmsgaWYgdGhlIGNvbXBhcmF0b3IgZG9lcyBub3QgZGlzdGluZ3Vpc2gKKyAgICAgICAgLy8gYWxsIGl0ZW1zIHRoYXQgYXJlIGVxdWFscygpLgorICAgICAgICBTZXQgc3R1ZmZUb1JlbW92ZSA9IG5ldyBIYXNoU2V0KCk7IC8vIGhhdmUgdG8gZG8gdGhpcyBzaW5jZSBpdGVyYXRvciBtYXkgbm90IGFsbG93IHJlbW92YWwhCisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBpdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7ICkgeworICAgICAgICAgICAgT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisgICAgICAgICAgICBpZiAoIWMuY29udGFpbnMoaXRlbSkpIHN0dWZmVG9SZW1vdmUuYWRkKGl0ZW0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZW1vdmVBbGwoc3R1ZmZUb1JlbW92ZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvU3RyaW5nVG9rZW5pemVyVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvU3RyaW5nVG9rZW5pemVyVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlNGZlZTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9TdHJpbmdUb2tlbml6ZXJUZXN0LmphdmEKQEAgLTAsMCArMSw1MTggQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TdHJpbmdUb2tlbml6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCisvKioKKyogVGVzdGluZyBjbGFzcyBmb3IgU3RyaW5nVG9rZW5pemVyIGNsYXNzCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSBvY3QgMjYgMjAwMgorKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBTdHJpbmdUb2tlbml6ZXJUZXN0IGV4dGVuZHMgVGVzdEZtd2sKK3sgCisgICAgICAvLyBjb25zdHJ1Y3RvciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgICAgICAvKioKKyAgICAgICogQ29uc3RydWN0b3IKKyAgICAgICovCisgICAgICBwdWJsaWMgU3RyaW5nVG9rZW5pemVyVGVzdCgpCisgICAgICB7CisgICAgICB9CisgIAorICAgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIGNvbnN0cnVjdG9ycworICAgICAqLworICAgIHB1YmxpYyB2b2lkIFRlc3RDb25zdHJ1Y3RvcnMoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHN0ciA9ICJ0aGlzXHRpc1xuYVxyc3RyaW5nXGZ0ZXN0aW5nXHRTdHJpbmdUb2tlbml6ZXJcbmNvbnN0cnVjdG9ycyEiOworICAgICAgICBTdHJpbmcgZGVsaW1pdGVyID0gIiBcdFxuXHJcZiI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFtdID0geyJ0aGlzIiwgImlzIiwgImEiLCAic3RyaW5nIiwgInRlc3RpbmciLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0cmluZ1Rva2VuaXplciIsICJjb25zdHJ1Y3RvcnMhIn07CisgICAgICAgIFN0cmluZ1Rva2VuaXplciBkZWZhdWx0c3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0cik7CisgICAgICAgIFN0cmluZ1Rva2VuaXplciBzdGRlbGltaXRlciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXIpOworICAgICAgICBTdHJpbmdUb2tlbml6ZXIgc3RkZWxpbWl0ZXJyZXR1cm4gPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyAgICAgICAgVW5pY29kZVNldCBkZWxpbWl0ZXJzZXQgPSBuZXcgVW5pY29kZVNldCgiWyIgKyBkZWxpbWl0ZXIgKyAiXSIsIGZhbHNlKTsKKyAgICAgICAgU3RyaW5nVG9rZW5pemVyIHN0ZGVsaW1pdGVyc2V0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlcnNldCk7CisgICAgICAgIFN0cmluZ1Rva2VuaXplciBzdGRlbGltaXRlcnNldHJldHVybiA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxpbWl0ZXJzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKCEoZGVmYXVsdHN0Lm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkW2ldKSAKKyAgICAgICAgICAgICAgICAgICYmIHN0ZGVsaW1pdGVyLm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkW2ldKQorICAgICAgICAgICAgICAgICAgJiYgc3RkZWxpbWl0ZXJyZXR1cm4ubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWRbaV0pCisgICAgICAgICAgICAgICAgICAmJiBzdGRlbGltaXRlcnNldC5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZFtpXSkKKyAgICAgICAgICAgICAgICAgICYmIHN0ZGVsaW1pdGVyc2V0cmV0dXJuLm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkW2ldKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ29uc3RydWN0b3Igd2l0aCBkZWZhdWx0IGRlbGltaXRlciBnaXZlcyB3cm9uZyByZXN1bHRzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZyBleHBlY3RlZDFbXSA9IHsidGhpcyIsICJcdCIsICJpcyIsICJcbiIsICJhIiwgIlxyIiwgInN0cmluZyIsICJcZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RpbmciLCAiXHQiLCAiU3RyaW5nVG9rZW5pemVyIiwgIlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uc3RydWN0b3JzISJ9OworICAgICAgICBzdGRlbGltaXRlcnJldHVybiA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXIsIHRydWUpOworICAgICAgICBzdGRlbGltaXRlcnNldHJldHVybiA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXJzZXQsIHRydWUpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGV4cGVjdGVkMS5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGlmICghKHN0ZGVsaW1pdGVycmV0dXJuLm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkMVtpXSkKKyAgICAgICAgICAgICAgICAgICYmIHN0ZGVsaW1pdGVyc2V0cmV0dXJuLm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkMVtpXSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvbnN0cnVjdG9yIHdpdGggZGVmYXVsdCBkZWxpbWl0ZXIgYW5kIGRlbGltaXRlciB0b2tlbnMgZ2l2ZXMgd3JvbmcgcmVzdWx0cyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHN0ZGVsaW1pdGVyID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIChTdHJpbmcpbnVsbCk7CisgICAgICAgIHN0ZGVsaW1pdGVycmV0dXJuID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIChTdHJpbmcpbnVsbCwgZmFsc2UpOworICAgICAgICBkZWxpbWl0ZXJzZXQgPSBudWxsOworICAgICAgICBzdGRlbGltaXRlcnNldCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXJzZXQpOworICAgICAgICBzdGRlbGltaXRlcnNldHJldHVybiA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXJzZXQsIGZhbHNlKTsKKyAgICAgICAgCisgICAgICAgIGlmICghKHN0ZGVsaW1pdGVyLm5leHRFbGVtZW50KCkuZXF1YWxzKHN0cikKKyAgICAgICAgICAgICAgJiYgc3RkZWxpbWl0ZXJyZXR1cm4ubmV4dEVsZW1lbnQoKS5lcXVhbHMoc3RyKQorICAgICAgICAgICAgICAmJiBzdGRlbGltaXRlcnNldC5uZXh0RWxlbWVudCgpLmVxdWFscyhzdHIpCisgICAgICAgICAgICAgICYmIHN0ZGVsaW1pdGVyc2V0cmV0dXJuLm5leHRFbGVtZW50KCkuZXF1YWxzKHN0cikpKSB7CisgICAgICAgICAgICBlcnJsbigiQ29uc3RydWN0b3Igd2l0aCBudWxsIGRlbGltaXRlciBnaXZlcyB3cm9uZyByZXN1bHRzIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGRlbGltaXRlciA9ICIiOworICAgICAgICBzdGRlbGltaXRlciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXIpOworICAgICAgICBzdGRlbGltaXRlcnJldHVybiA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXIsIGZhbHNlKTsKKyAgICAgICAgZGVsaW1pdGVyc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgc3RkZWxpbWl0ZXJzZXQgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyc2V0KTsKKyAgICAgICAgc3RkZWxpbWl0ZXJzZXRyZXR1cm4gPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyc2V0LCBmYWxzZSk7CisgICAgICAgIAorICAgICAgICBpZiAoIShzdGRlbGltaXRlci5uZXh0RWxlbWVudCgpLmVxdWFscyhzdHIpCisgICAgICAgICAgICAgICYmIHN0ZGVsaW1pdGVycmV0dXJuLm5leHRFbGVtZW50KCkuZXF1YWxzKHN0cikKKyAgICAgICAgICAgICAgJiYgc3RkZWxpbWl0ZXJzZXQubmV4dEVsZW1lbnQoKS5lcXVhbHMoc3RyKQorICAgICAgICAgICAgICAmJiBzdGRlbGltaXRlcnNldHJldHVybi5uZXh0RWxlbWVudCgpLmVxdWFscyhzdHIpKSkgeworICAgICAgICAgICAgZXJybG4oIkNvbnN0cnVjdG9yIHdpdGggZW1wdHkgZGVsaW1pdGVyIGdpdmVzIHdyb25nIHJlc3VsdHMiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRlZmF1bHRzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIobnVsbCk7CisgICAgICAgICAgICBlcnJsbigibnVsbCBzdHJpbmcgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IENvbnN0cnVjdG9yIHdpdGggbnVsbCBzdHJpbmcgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0ZGVsaW1pdGVyID0gbmV3IFN0cmluZ1Rva2VuaXplcihudWxsLCBkZWxpbWl0ZXIpOworICAgICAgICAgICAgZXJybG4oIm51bGwgc3RyaW5nIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBDb25zdHJ1Y3RvciB3aXRoIG51bGwgc3RyaW5nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdGRlbGltaXRlcnJldHVybiA9IG5ldyBTdHJpbmdUb2tlbml6ZXIobnVsbCwgZGVsaW1pdGVyLCBmYWxzZSk7CisgICAgICAgICAgICBlcnJsbigibnVsbCBzdHJpbmcgc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IENvbnN0cnVjdG9yIHdpdGggbnVsbCBzdHJpbmcgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0ZGVsaW1pdGVyc2V0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihudWxsLCBkZWxpbWl0ZXJzZXQpOworICAgICAgICAgICAgZXJybG4oIm51bGwgc3RyaW5nIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBDb25zdHJ1Y3RvciB3aXRoIG51bGwgc3RyaW5nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzdGRlbGltaXRlcnNldHJldHVybiA9IG5ldyBTdHJpbmdUb2tlbml6ZXIobnVsbCwgZGVsaW1pdGVyc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyAgICAgICAgICAgIGVycmxuKCJudWxsIHN0cmluZyBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogQ29uc3RydWN0b3Igd2l0aCBudWxsIHN0cmluZyBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIHN1cHBsZW1lbnRhcnkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0U3VwcGxlbWVudGFyeSgpCisgICAgeworICAgICAgICBTdHJpbmcgc3RyID0gImJtcCBzdHJpbmcgXHVkODAwIHdpdGggYSB1bm1hdGNoZWQgc3Vycm9nYXRlIGNoYXJhY3RlciI7CisgICAgICAgIFN0cmluZyBkZWxpbWl0ZXIgPSAiXHVkODAwXHVkYzAwIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkW10gPSB7c3RyfTsKKyAgICAgICAgICAgIAorICAgICAgICBTdHJpbmdUb2tlbml6ZXIgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlcik7CisgICAgICAgIGlmICghdG9rZW5pemVyLm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkWzBdKSkgeworICAgICAgICAgICAgZXJybG4oIkVycm9yIHBhcnNpbmcgXCIiICsgVXRpbGl0eS5oZXgoc3RyKSArICJcIiIpOworICAgICAgICB9CisgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJOdW1iZXIgb2YgdG9rZW5zIGV4Y2VlZGVkIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgZGVsaW1pdGVyID0gIlx1ZDgwMCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZDFbXSA9IHsiYm1wIHN0cmluZyAiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgd2l0aCBhIHVubWF0Y2hlZCBzdXJyb2dhdGUgY2hhcmFjdGVyIn07CisgICAgICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXIpOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIHdoaWxlICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGlmICghdG9rZW5pemVyLm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkMVtpICsrXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRXJyb3IgcGFyc2luZyBcIiIgKyBVdGlsaXR5LmhleChzdHIpICsgIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgZXJybG4oIk51bWJlciBvZiB0b2tlbnMgZXhjZWVkZWQgZXhwZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RyID0gInN0cmluZyBcdWQ4MDBcdWRjMDAgd2l0aCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciI7CisgICAgICAgIGRlbGltaXRlciA9ICJcdWQ4MDAiOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQyW10gPSB7c3RyfTsKKyAgICAgICAgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlcik7CisgICAgICAgIGlmICghdG9rZW5pemVyLm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkMlswXSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFcnJvciBwYXJzaW5nIFwiIiArIFV0aWxpdHkuaGV4KHN0cikgKyAiXCIiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBlcnJsbigiTnVtYmVyIG9mIHRva2VucyBleGNlZWRlZCBleHBlY3RlZCIpOworICAgICAgICB9CisgIAorICAgICAgICBkZWxpbWl0ZXIgPSAiXHVkODAwXHVkYzAwIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkM1tdID0geyJzdHJpbmcgIiwgIiB3aXRoIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIn07CisgICAgICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbWl0ZXIpOworICAgICAgICBpID0gMDsKKyAgICAgICAgd2hpbGUgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgaWYgKCF0b2tlbml6ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWQzW2kgKytdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBwYXJzaW5nIFwiIiArIFV0aWxpdHkuaGV4KHN0cikgKyAiXCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBlcnJsbigiTnVtYmVyIG9mIHRva2VucyBleGNlZWRlZCBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzdHIgPSAiXHVkODAwIFx1ZDgwMFx1ZGMwMCBcdWQ4MDAgXHVkODAwXHVkYzAwIjsKKyAgICAgICAgZGVsaW1pdGVyID0gIlx1ZDgwMCI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZDRbXSA9IHsiIFx1ZDgwMFx1ZGMwMCAiLCAiIFx1ZDgwMFx1ZGMwMCJ9OworICAgICAgICBpID0gMDsKKyAgICAgICAgd2hpbGUgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgaWYgKCF0b2tlbml6ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoZXhwZWN0ZWQ0W2kgKytdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFcnJvciBwYXJzaW5nIFwiIiArIFV0aWxpdHkuaGV4KHN0cikgKyAiXCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBlcnJsbigiTnVtYmVyIG9mIHRva2VucyBleGNlZWRlZCBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBkZWxpbWl0ZXIgPSAiXHVkODAwXHVkYzAwIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkNVtdID0geyJcdWQ4MDAgIiwgIiBcdWQ4MDAgIn07CisgICAgICAgIGkgPSAwOworICAgICAgICB3aGlsZSAodG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBpZiAoIXRva2VuaXplci5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZDVbaSArK10pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHBhcnNpbmcgXCIiICsgVXRpbGl0eS5oZXgoc3RyKSArICJcIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJOdW1iZXIgb2YgdG9rZW5zIGV4Y2VlZGVkIGV4cGVjdGVkIik7CisgICAgICAgIH0KKyAgICB9CisgIAorICAgICAgLyoqCisgICAgICAqIFRlc3RpbmcgbmV4dCBhcGkKKyAgICAgICovCisgICAgICBwdWJsaWMgdm9pZCBUZXN0TmV4dE5vbkRlbGltaXRlclRva2VuKCkKKyAgICAgIHsKKyAgICAgICAgU3RyaW5nIHN0ciA9ICIgICwgIDEgMiAzICBBSEhISEghIDUuNSA2IDcgICAgLCAgICAgICAgOFxuIjsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkW10gPSB7IiwiLCAiMSIsICIyIiwgIjMiLCAiQUhISEhIISIsICI1LjUiLCAiNiIsICI3IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIiwgIjhcbiJ9OworICAgICAgICBTdHJpbmcgZGVsaW1pdGVyID0gIiAiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIFN0cmluZ1Rva2VuaXplciB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyKTsKKyAgICAgICAgaW50IGN1cnJ0b2tlbiA9IDA7CisgICAgICAgIHdoaWxlICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGlmICghdG9rZW5pemVyLm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkW2N1cnJ0b2tlbl0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHRva2VuIG1pc21hdGNoLCBleHBlY3RlZCAiICsgZXhwZWN0ZWRbY3VycnRva2VuXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJydG9rZW4gKys7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY3VycnRva2VuICE9IGV4cGVjdGVkLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkRpZG4ndCBnZXQgY29ycmVjdCBudW1iZXIgb2YgdG9rZW5zIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoIiIsIGRlbGltaXRlcik7CisgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFbXB0eSBzdHJpbmcgc2hvdWxkIG5vdCBoYXZlIGFueSB0b2tlbnMiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgdG9rZW5pemVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBlcnJsbigiRW1wdHkgc3RyaW5nIHNob3VsZCBub3QgaGF2ZSBhbnkgdG9rZW5zIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogZW1wdHkgc3RyaW5nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKCIsICwiLCAiLCAiKTsKKyAgICAgICAgaWYgKHRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgZXJybG4oIlN0cmluZyB3aXRoIG9ubHkgZGVsaW1pdGVycyBzaG91bGQgbm90IGhhdmUgYW55IHRva2VucyIpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0b2tlbml6ZXIubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmcgd2l0aCBvbmx5IGRlbGltaXRlcnMgc2hvdWxkIG5vdCBoYXZlIGFueSB0b2tlbnMiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgCWxvZ2xuKCJQQVNTOiBTdHJpbmcgd2l0aCBvbmx5IGRlbGltaXRlcnMgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKworICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKCJxLCAsIiwgIiwgIik7CisgICAgICAgIGlmICghdG9rZW5pemVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nIHRoYXQgZG9lcyBub3QgYmVnaW4gd2l0aCBkZWxpbWl0ZXJzIHNob3VsZCBoYXZlIHNvbWUgdG9rZW5zIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0b2tlbml6ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoInEiKSkgeworICAgICAgICAgICAgZXJybG4oIlN0cmluZyB0aGF0IGRvZXMgbm90IGJlZ2luIHdpdGggZGVsaW1pdGVycyBzaG91bGQgaGF2ZSBzb21lIHRva2VucyIpOworICAgICAgICB9IAorICAgICAgICB0cnkgeworICAgICAgICAgICAgdG9rZW5pemVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nIGhhcyBvbmx5IG9uZSB0b2tlbiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFN0cmluZyB3aXRoIG9ubHkgb25lIHRva2VuIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIobnVsbCwgZGVsaW1pdGVyKTsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmdUb2tlbml6ZXIgY29uc3RydWN0ZWQgd2l0aCBudWxsIHNvdXJjZSBzaG91bGQgdGhyb3cgYSBudWxscG9pbnRlcmV4Y2VwdGlvbiIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAJbG9nbG4oIlBBU1M6IFN0cmluZ1Rva2VuaXplciBjb25zdHJ1Y3RlZCB3aXRoIG51bGwgc291cmNlIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisKKyAgICAgICAgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsICJxIik7CisgICAgICAgIGlmICghdG9rZW5pemVyLm5leHRFbGVtZW50KCkuZXF1YWxzKHN0cikpIHsKKyAgICAgICAgICAgIGVycmxuKCJTaG91bGQgaGF2ZSByZWNlaXZlZCB0aGUgc2FtZSBzdHJpbmcgd2hlbiB0aGVyZSBhcmUgbm8gZGVsaW1pdGVycyIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCBqYXZhIGNvbXBhdGliaWxpdHksIGV4Y2VwdCB3ZSBzdXBwb3J0IHN1cnJvZ2F0ZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE5vQ29hbGVzY2UoKSB7CisgICAgICAgIFN0cmluZyBzdHIgPSAiVGhpcyBpcyAgIGEgdGVzdFxydG8gc2VlIGlmXG53aGl0ZXNwYWNlIGlzIGhhbmRsZWQgXG5cciB1bnVzdWFsbHlcclxuIGJ5IG91ciB0b2tlbml6ZXJcblxuXG4hISFwbHVzIHNvbWUgb3RoZXIgb2RkIG9uZXMgbGlrZSBcdHRhYlx0dGFiXHR0YWJcbmFuZCBmb3JtXGZmZWVkXGZmb28uXG4iOworICAgICAgICBTdHJpbmcgZGVsaW1zID0gIiBcdFxuXHJcZlx1ZDgwMFx1ZGMwMCI7CisKKyAgICAgICAgamF2YS51dGlsLlN0cmluZ1Rva2VuaXplciBqdCA9IG5ldyBqYXZhLnV0aWwuU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1zLCB0cnVlKTsKKyAgICAgICAgY29tLmlibS5pY3UudXRpbC5TdHJpbmdUb2tlbml6ZXIgaXQgPSBuZXcgY29tLmlibS5pY3UudXRpbC5TdHJpbmdUb2tlbml6ZXIoc3RyLCBkZWxpbXMsIHRydWUpOworICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgIHdoaWxlIChqdC5oYXNNb3JlVG9rZW5zKCkgJiYgaXQuaGFzTW9yZVRva2VucygpKSB7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIlsiICsgU3RyaW5nLnZhbHVlT2YobisrKSArICJdIiwganQubmV4dFRva2VuKCksIGl0Lm5leHRUb2tlbigpKTsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnRGYWxzZSgiamF2YSB0b2tlbml6ZXIgaGFzIG5vIG1vcmUgdG9rZW5zIiwganQuaGFzTW9yZVRva2VucygpKTsKKyAgICAgICAgYXNzZXJ0RmFsc2UoImljdSB0b2tlbml6ZXIgaGFzIG5vIG1vcmUgdG9rZW5zIiwgaXQuaGFzTW9yZVRva2VucygpKTsKKworICAgICAgICBTdHJpbmcgc3VyID0gIkV2ZW5cdWQ4MDBcdWRjMDAgd29ya3MuXG5cbiI7CisgICAgICAgIGl0ID0gbmV3IGNvbS5pYm0uaWN1LnV0aWwuU3RyaW5nVG9rZW5pemVyKHN1ciwgZGVsaW1zLCB0cnVlKTsgLy8gbm8gY29hbGVzY2UKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJzdXIxIiwgaXQubmV4dFRva2VuKCksICJFdmVuIik7CisgICAgICAgIGFzc2VydEVxdWFscygic3VyMiIsIGl0Lm5leHRUb2tlbigpLCAiXHVkODAwXHVkYzAwIik7CisgICAgICAgIGFzc2VydEVxdWFscygic3VyMyIsIGl0Lm5leHRUb2tlbigpLCAiICIpOworICAgICAgICBhc3NlcnRFcXVhbHMoInN1cjQiLCBpdC5uZXh0VG9rZW4oKSwgIndvcmtzLiIpOworICAgICAgICBhc3NlcnRFcXVhbHMoInN1cjUiLCBpdC5uZXh0VG9rZW4oKSwgIlxuIik7CisgICAgICAgIGFzc2VydEVxdWFscygic3VyNiIsIGl0Lm5leHRUb2tlbigpLCAiXG4iKTsKKyAgICAgICAgYXNzZXJ0RmFsc2UoInN1cjciLCBpdC5oYXNNb3JlVG9rZW5zKCkpOworICAgIH0KKworICAgIC8qKgorICAgICogVGVzdGluZyBuZXh0IGFwaQorICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE5leHREZWxpbWl0ZXJUb2tlbigpCisgICAgeworICAgICAgICBTdHJpbmcgc3RyID0gIiAgLCAgMSAyIDMgIEFISEhISCEgNS41IDYgNyAgICAsICAgICAgICA4XG4iOworICAgICAgICBTdHJpbmcgZXhwZWN0ZWRbXSA9IHsiICAiLCAiLCIsICIgICIsICIxIiwgIiAiLCAiMiIsICIgIiwgIjMiLCAiICAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQUhISEhIISIsICIgIiwgIjUuNSIsICIgIiwgIjYiLCAiICIsICI3IiwgIiAgICAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCIsICIgICAgICAgICIsICI4XG4ifTsKKyAgICAgICAgU3RyaW5nIGRlbGltaXRlciA9ICIgIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBTdHJpbmdUb2tlbml6ZXIgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlciwgdHJ1ZSwgdHJ1ZSk7CisKKyAgICAgICAgaW50IGN1cnJ0b2tlbiA9IDA7CisgICAgICAgIHdoaWxlICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGlmICghdG9rZW5pemVyLm5leHRFbGVtZW50KCkuZXF1YWxzKGV4cGVjdGVkW2N1cnJ0b2tlbl0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVycm9yIHRva2VuIG1pc21hdGNoLCBleHBlY3RlZCAiICsgZXhwZWN0ZWRbY3VycnRva2VuXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJydG9rZW4gKys7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY3VycnRva2VuICE9IGV4cGVjdGVkLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkRpZG4ndCBnZXQgY29ycmVjdCBudW1iZXIgb2YgdG9rZW5zIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRva2VuaXplciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoIiIsIGRlbGltaXRlciwgdHJ1ZSk7CisgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJFbXB0eSBzdHJpbmcgc2hvdWxkIG5vdCBoYXZlIGFueSB0b2tlbnMiKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgdG9rZW5pemVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBlcnJsbigiRW1wdHkgc3RyaW5nIHNob3VsZCBub3QgaGF2ZSBhbnkgdG9rZW5zIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogRW1wdHkgc3RyaW5nIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKCIsICwiLCAiLCAiLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgaWYgKCF0b2tlbml6ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHJpbmcgd2l0aCBvbmx5IGRlbGltaXRlcnMgc2hvdWxkIGhhdmUgdG9rZW5zIHdoZW4gZGVsaW1pdGVyIGlzIHRyZWF0ZWQgYXMgdG9rZW5zIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0b2tlbml6ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoIiwgLCIpKSB7CisgICAgICAgICAgICBlcnJsbigiU3RyaW5nIHdpdGggb25seSBkZWxpbWl0ZXJzIHNob3VsZCByZXR1cm4gaXRzZWxmIHdoZW4gZGVsaW1pdGVyIGlzIHRyZWF0ZWQgYXMgdG9rZW5zIik7CisgICAgICAgIH0KKworICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKCJxLCAsIiwgIiwgIiwgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgIAorICAgICAgICBpZiAoIXRva2VuaXplci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgZXJybG4oIlN0cmluZyBzaG91bGQgaGF2ZSBzb21lIHRva2VucyIpOworICAgICAgICB9CisgICAgICAgIGlmICghdG9rZW5pemVyLm5leHRFbGVtZW50KCkuZXF1YWxzKCJxIikgCisgICAgICAgICAgICB8fCAhdG9rZW5pemVyLm5leHRFbGVtZW50KCkuZXF1YWxzKCIsICwiKSkgeworICAgICAgICAgICAgZXJybG4oIlN0cmluZyB0b2tlbnMgZG8gbm90IG1hdGNoIGV4cGVjdGVkIHJlc3VsdHMiKTsKKyAgICAgICAgfSAKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgdG9rZW5pemVyID0gbmV3IFN0cmluZ1Rva2VuaXplcihudWxsLCBkZWxpbWl0ZXIsIHRydWUpOworICAgICAgICAgICAgZXJybG4oIlN0cmluZ1Rva2VuaXplciBjb25zdHJ1Y3RlZCB3aXRoIG51bGwgc291cmNlIHNob3VsZCB0aHJvdyBhIG51bGxwb2ludGVyZXhjZXB0aW9uIik7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIAlsb2dsbigiUEFTUzogU3RyaW5nVG9rZW5pemVyIGNvbnN0cnVjdGVkIHdpdGggbnVsbCBzb3VyY2UgZmFpbGVkIGFzIGV4cGVjdGVkIik7CisgICAgICAgIH0KKworICAgICAgICB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgInEiLCB0cnVlKTsKKyAgICAgICAgaWYgKCF0b2tlbml6ZXIubmV4dEVsZW1lbnQoKS5lcXVhbHMoc3RyKSkgeworICAgICAgICAgICAgZXJybG4oIlNob3VsZCBoYXZlIHJlY2lldmVkIHRoZSBzYW1lIHN0cmluZyB3aGVuIHRoZXJlIGFyZSBubyBkZWxpbWl0ZXJzIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdGluZyBjb3VudCB0b2tlbnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q291bnRUb2tlbnMoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHN0ciA9ICJ0aGlzXHRpc1xuYVxyc3RyaW5nXGZ0ZXN0aW5nXHRTdHJpbmdUb2tlbml6ZXJcbmNvbnN0cnVjdG9ycyEiOworICAgICAgICBTdHJpbmcgZGVsaW1pdGVyID0gIiBcdFxuXHJcZiI7CisgICAgICAgIFN0cmluZyBleHBlY3RlZFtdID0geyJ0aGlzIiwgImlzIiwgImEiLCAic3RyaW5nIiwgInRlc3RpbmciLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0cmluZ1Rva2VuaXplciIsICJjb25zdHJ1Y3RvcnMhIn07CisgICAgICAgIFN0cmluZyBleHBlY3RlZHJldHVybltdID0geyJ0aGlzIiwgIlx0IiwgImlzIiwgIlxuIiwgImEiLCAiXHIiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmluZyIsICJcZiIsICJ0ZXN0aW5nIiwgIlx0IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdHJpbmdUb2tlbml6ZXIiLCAiXG4iLCAiY29uc3RydWN0b3JzISJ9OworICAgICAgICBTdHJpbmdUb2tlbml6ZXIgc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0ciwgZGVsaW1pdGVyKTsKKyAgICAgICAgU3RyaW5nVG9rZW5pemVyIHN0cmV0dXJuID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIsIGRlbGltaXRlciwgdHJ1ZSk7CisgICAgICAgIGlmIChzdC5jb3VudFRva2VucygpICE9IGV4cGVjdGVkLmxlbmd0aCkgeworICAgICAgICAgICAgZXJybG4oIkNvdW50VG9rZW5zIGZhaWxlZCBmb3Igbm9uLWRlbGltaXRlciB0b2tlbnMiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RyZXR1cm4uY291bnRUb2tlbnMoKSAhPSBleHBlY3RlZHJldHVybi5sZW5ndGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJDb3VudFRva2VucyBmYWlsZWQgZm9yIGRlbGltaXRlciB0b2tlbnMiKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKCFzdC5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZFtpXSkKKyAgICAgICAgICAgICAgICB8fCBzdC5jb3VudFRva2VucygpICE9IGV4cGVjdGVkLmxlbmd0aCAtIGkgLSAxKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvdW50VG9rZW5zIGRlZmF1bHQgZGVsaW1pdGVyIGdpdmVzIHdyb25nIHJlc3VsdHMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGV4cGVjdGVkcmV0dXJuLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKCFzdHJldHVybi5uZXh0RWxlbWVudCgpLmVxdWFscyhleHBlY3RlZHJldHVybltpXSkKKyAgICAgICAgICAgICAgICB8fCBzdHJldHVybi5jb3VudFRva2VucygpICE9IGV4cGVjdGVkcmV0dXJuLmxlbmd0aCAtIGkgLSAxKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkNvdW50VG9rZW5zIHdpdGggZGVmYXVsdCBkZWxpbWl0ZXIgYW5kIGRlbGltaXRlciB0b2tlbnMgZ2l2ZXMgd3JvbmcgcmVzdWx0cyIpOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgIAorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogTmV4dCB0b2tlbiB3aXRoIG5ldyBkZWxpbWl0ZXJzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdE5leHROZXdEZWxpbWl0ZXJzKCkKKyAgICB7CisgICAgICAgIFN0cmluZyBzdHIgPSAiYWJjMGRlZjFnaGkyamtsM21ubzRwcXIwc3R1MXZ3eDJ5emEzYmNkNGVmZzBoaWoxa2xtMm5vcDNxcnM0dHV2IjsKKyAgICAgICAgU3RyaW5nIGRlbGltaXRlcltdID0geyIwIiwgIjEiLCAiMiIsICIzIiwgIjQifTsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkW11bXSA9IHt7ImFiYyIsICJwcXIiLCAiZWZnIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJkZWYiLCAic3R1IiwgImhpaiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiZ2hpIiwgInZ3eCIsICJrbG0ifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImprbCIsICJ5emEiLCAibm9wIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJtbm8iLCAiYmNkIiwgInFycyJ9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICBTdHJpbmdUb2tlbml6ZXIgc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHN0cik7CisgICAgICAgIGludCBzaXplID0gZXhwZWN0ZWRbMF0ubGVuZ3RoOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgZGVsaW1pdGVyLmxlbmd0aDsgaiArKykgeworICAgICAgICAgICAgICAgIGlmICghc3QubmV4dFRva2VuKGRlbGltaXRlcltqXSkuZXF1YWxzKGV4cGVjdGVkW2pdW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigibmV4dFRva2VuKCkgd2l0aCBkZWxpbWl0ZXJzIGVycm9yICIgKyBpICsgIiAiICsgaik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzdC5jb3VudFRva2VucygpICE9IGV4cGVjdGVkW2pdLmxlbmd0aCAtIGkpIHsgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImNvdW50VG9rZW5zKCkgYWZ0ZXIgbmV4dFRva2VuKCkgd2l0aCBkZWxpbWl0ZXJzIGVycm9yIgorICAgICAgICAgICAgICAgICAgICAgICAgICArIGkgKyAiICIgKyBqKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgCisgICAgICAgIHN0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdHIpOworICAgICAgICBTdHJpbmcgZGVsaW1pdGVyMVtdID0geyIwIiwgIjIiLCAiNCJ9OworICAgICAgICBTdHJpbmcgZXhwZWN0ZWQxW10gPSB7ImFiYyIsICJkZWYxZ2hpIiwgImprbDNtbm8iLCAicHFyIiwgInN0dTF2d3giLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ5emEzYmNkIiwgImVmZyIsICJoaWoxa2xtIiwgIm5vcDNxcnMiLCAidHV2In07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXhwZWN0ZWQxLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgaWYgKCFzdC5uZXh0VG9rZW4oZGVsaW1pdGVyMVtpICUgZGVsaW1pdGVyMS5sZW5ndGhdKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDFbaV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIm5leHRUb2tlbigpIHdpdGggZGVsaW1pdGVycyBlcnJvciAiICsgaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEJ1ZzQ0MjMoKQorICAgIHsKKyAgICAgICAgLy8gYnVnIDQ0MjM6ICBhIGJhZCBpbnRlcmFjdGlvbiBiZXR3ZWVuIGNvdW50VG9rZW5zKCkgYW5kIGhhc01vcmVUb2tlbnMoKS4KKyAgICAgICAgLy8KKyAgICAgICAgU3RyaW5nIHMxID0gIlRoaXMgaXMgYSB0ZXN0IjsKKyAgICAgICAgU3RyaW5nVG9rZW5pemVyIHR6ciA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoczEpOworICAgICAgICBpbnQgIHRva2VuQ291bnQgPSAwOworICAgICAgICAKKyAgICAgICAgaW50IHQgPSB0enIuY291bnRUb2tlbnMoKTsKKyAgICAgICAgaWYgKHQhPSA0KSB7CisgICAgICAgICAgICBlcnJsbigidHpyLmNvdW50VG9rZW5zKCkgcmV0dXJuZWQgIiArIHQgKyAiLiAgRXhwZWN0ZWQgNCIpOworICAgICAgICB9CisgICAgICAgIHdoaWxlICh0enIuaGFzTW9yZVRva2VucygpKSB7CisgICAgICAgICAgICBTdHJpbmcgIHRvayA9IHR6ci5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIGlmICh0b2subGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ0b2tlbiB3aXRoIGxlbmd0aCA9PSAwIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0b2tlbkNvdW50Kys7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRva2VuQ291bnQgIT0gNCkgeworICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCBudW1iZXIgb2YgdG9rZW5zIGZvdW5kID0gIiArIHRva2VuQ291bnQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBQcmVjb21wdXRlZCB0b2tlbnMgYXJyYXlzIGNhbiBncm93LiAgQ2hlY2sgZm9yIGVkZ2UgY2FzZXMgYXJvdW5kCisgICAgICAgIC8vICBib3VuZGFyeSB3aGVyZSBncm93dGggaXMgZm9yY2VkLiAgQXJyYXkgZ3Jvd3MgaW4gaW5jcmVtZW50cyBvZiAxMDAgdG9rZW5zLgorICAgICAgICBTdHJpbmcgczIgPSAiIjsKKyAgICAgICAgZm9yIChpbnQgaT0xOyBpPDI1MDsgaSsrKSB7CisgICAgICAgICAgICBzMiA9IHMyICsgIiAiICsgaTsKKyAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplciB0emIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHMyKTsKKyAgICAgICAgICAgIGludCB0MiA9IHR6Yi5jb3VudFRva2VucygpOworICAgICAgICAgICAgaWYgKHQyICE9IGkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigidHpiLmNvdW50VG9rZW5zKCkgcmV0dXJuZWQgIiArIHQgKyAiLiAgRXhwZWN0ZWQgIiArIGkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGogPSAwOworICAgICAgICAgICAgd2hpbGUgKHR6Yi5oYXNNb3JlVG9rZW5zKCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdG9rID0gdHpiLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgIGorKzsKKyAgICAgICAgICAgICAgICBpZiAodG9rLmVxdWFscyhJbnRlZ2VyLnRvU3RyaW5nKGopKSA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiV3JvbmcgdG9rZW4gc3RyaW5nLiAgRXhwZWN0ZWQgXCIiICsgaiArICJcIiwgZ290IFwiIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdG9rICsgIlwiLiIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaiAhPSBpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIldyb25nIG51bWJlciBvZiB0b2tlbnMuICBFeHBlY3RlZCAiICsgaSArICIuICBHb3QgIiArIGoKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIi4iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJnKQorICAgIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplclRlc3QgdGVzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXJUZXN0KCk7CisgICAgICAgICAgICB0ZXN0LnJ1bihhcmcpOworICAgICAgICAgICAgLy8gdGVzdC5UZXN0Q2FzZUNvbXBhcmUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RhYmJlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGFiYmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWMxZDJlZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RhYmJlci5qYXZhCkBAIC0wLDAgKzEsMjAwIEBACisKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVGFiYmVyIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTEVGVCA9IDAsIENFTlRFUiA9IDEsIFJJR0hUID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBBTElHTk1FTlRfTkFNRVMgPSB7IkxlZnQiLCAiQ2VudGVyIiwgIlJpZ2h0In07CisgICAgCisgICAgLyoqCisgICAgICogUmVwZWF0cyBhIHN0cmluZyBuIHRpbWVzCisgICAgICogQHBhcmFtIHNvdXJjZQorICAgICAqIEBwYXJhbSB0aW1lcworICAgICAqLworICAgIC8vIFRPRE8gLSBvcHRpbWl6ZSByZXBlYXRzIHVzaW5nIGRvdWJsaW5nPworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGVhdChTdHJpbmcgc291cmNlLCBpbnQgdGltZXMpIHsKKyAgICAgICAgaWYgKHRpbWVzIDw9IDApIHJldHVybiAiIjsKKyAgICAgICAgaWYgKHRpbWVzID09IDEpIHJldHVybiBzb3VyY2U7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoOyB0aW1lcyA+IDA7IC0tdGltZXMpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc291cmNlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgcHJvY2VzcyhTdHJpbmcgc291cmNlKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBsYXN0UG9zID0gMDsKKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBsYXN0UG9zIDwgc291cmNlLmxlbmd0aCgpOyArK2NvdW50KSB7CisgICAgICAgICAgICBpbnQgcG9zID0gc291cmNlLmluZGV4T2YoJ1x0JywgbGFzdFBvcyk7CisgICAgICAgICAgICBpZiAocG9zIDwgMCkgcG9zID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICAgICAgcHJvY2Vzc19maWVsZChjb3VudCwgc291cmNlLCBsYXN0UG9zLCBwb3MsIHJlc3VsdCk7CisgICAgICAgICAgICBsYXN0UG9zID0gcG9zKzE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHByZWZpeCArIHJlc3VsdC50b1N0cmluZygpICsgcG9zdGZpeDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgcHJlZml4ID0gIiI7CisgICAgcHJpdmF0ZSBTdHJpbmcgcG9zdGZpeCA9ICIiOworICAgIAorICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHByb2Nlc3NfZmllbGQoaW50IGNvdW50LCBTdHJpbmcgc291cmNlLCBpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nQnVmZmVyIG91dHB1dCk7CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE1vbm9UYWJiZXIgZXh0ZW5kcyBUYWJiZXIgeworICAgICAgICBpbnQgbWluR2FwID0gMDsKKyAgICAKKyAgICAgICAgcHJpdmF0ZSBMaXN0IHN0b3BzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBwcml2YXRlIExpc3QgdHlwZXMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RvcHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKSBidWZmZXIuYXBwZW5kKCI7ICIpOworICAgICAgICAgICAgICAgIGJ1ZmZlcgorICAgICAgICAgICAgICAgIC5hcHBlbmQoQUxJR05NRU5UX05BTUVTWygoSW50ZWdlcil0eXBlcy5nZXQoaSkpLmludFZhbHVlKCldKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoIiwiKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoc3RvcHMuZ2V0KGkpKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkZHMgdGFiIHN0b3AgYW5kIGhvdyB0byBhbGlnbiB0aGUgdGV4dCBVUCBUTyB0aGF0IHN0b3AKKyAgICAgICAgICogQHBhcmFtIHRhYlBvcworICAgICAgICAgKiBAcGFyYW0gdHlwZQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIE1vbm9UYWJiZXIgYWRkQWJzb2x1dGUoaW50IHRhYlBvcywgaW50IHR5cGUpIHsKKyAgICAgICAgICAgIHN0b3BzLmFkZChuZXcgSW50ZWdlcih0YWJQb3MpKTsKKyAgICAgICAgICAgIHR5cGVzLmFkZChuZXcgSW50ZWdlcih0eXBlKSk7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQWRkcyByZWxhdGl2ZSB0YWIgc3RvcCBhbmQgaG93IHRvIGFsaWduIHRoZSB0ZXh0IFVQIFRPIHRoYXQgc3RvcAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIE1vbm9UYWJiZXIgYWRkKGludCBmaWVsZFdpZHRoLCBieXRlIHR5cGUpIHsKKyAgICAgICAgICAgIGludCBsYXN0ID0gZ2V0U3RvcChzdG9wcy5zaXplKCktMSk7CisgICAgICAgICAgICBzdG9wcy5hZGQobmV3IEludGVnZXIobGFzdCArIGZpZWxkV2lkdGgpKTsKKyAgICAgICAgICAgIHR5cGVzLmFkZChuZXcgSW50ZWdlcih0eXBlKSk7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRTdG9wKGludCBmaWVsZE51bWJlcikgeworICAgICAgICAgICAgaWYgKGZpZWxkTnVtYmVyIDwgMCkgcmV0dXJuIDA7CisgICAgICAgICAgICBpZiAoZmllbGROdW1iZXIgPj0gc3RvcHMuc2l6ZSgpKSBmaWVsZE51bWJlciA9IHN0b3BzLnNpemUoKSAtIDE7CisgICAgICAgICAgICByZXR1cm4gKChJbnRlZ2VyKXN0b3BzLmdldChmaWVsZE51bWJlcikpLmludFZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGludCBnZXRUeXBlKGludCBmaWVsZE51bWJlcikgeworICAgICAgICAgICAgaWYgKGZpZWxkTnVtYmVyIDwgMCkgcmV0dXJuIExFRlQ7CisgICAgICAgICAgICBpZiAoZmllbGROdW1iZXIgPj0gc3RvcHMuc2l6ZSgpKSByZXR1cm4gTEVGVDsKKyAgICAgICAgICAgIHJldHVybiAoKEludGVnZXIpdHlwZXMuZ2V0KGZpZWxkTnVtYmVyKSkuaW50VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICAvKgorICAgICAgICBwdWJsaWMgU3RyaW5nIHByb2Nlc3MoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBsYXN0UG9zID0gMDsKKyAgICAgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgICAgICBmb3IgKGNvdW50ID0gMDsgbGFzdFBvcyA8IHNvdXJjZS5sZW5ndGgoKSAmJiBjb3VudCA8IHN0b3BzLnNpemUoKTsgY291bnQrKykgeworICAgICAgICAgICAgICAgIGludCBwb3MgPSBzb3VyY2UuaW5kZXhPZignXHQnLCBsYXN0UG9zKTsKKyAgICAgICAgICAgICAgICBpZiAocG9zIDwgMCkgcG9zID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBwaWVjZSA9IHNvdXJjZS5zdWJzdHJpbmcobGFzdFBvcywgcG9zKTsKKyAgICAgICAgICAgICAgICBpbnQgc3RvcFBvcyA9IGdldFN0b3AoY291bnQpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgPCBzdG9wUG9zKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocmVwZWF0KCIgIiwgc3RvcFBvcyAtIHJlc3VsdC5sZW5ndGgoKSkpOworICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIGZpeCB0eXBlCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocGllY2UpOworICAgICAgICAgICAgICAgIGxhc3RQb3MgPSBwb3MrMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsYXN0UG9zIDwgc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzb3VyY2Uuc3Vic3RyaW5nKGxhc3RQb3MpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICAqLworICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgcHJvY2Vzc19maWVsZChpbnQgY291bnQsIFN0cmluZyBzb3VyY2UsIGludCBzdGFydCwgaW50IGxpbWl0LCBTdHJpbmdCdWZmZXIgb3V0cHV0KSB7CisgICAgICAgICAgICBTdHJpbmcgcGllY2UgPSBzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LCBsaW1pdCk7CisgICAgICAgICAgICBpbnQgc3RhcnRQb3MgPSBnZXRTdG9wKGNvdW50LTEpOworICAgICAgICAgICAgaW50IGVuZFBvcyA9IGdldFN0b3AoY291bnQpIC0gbWluR2FwOworICAgICAgICAgICAgaW50IHR5cGUgPSBnZXRUeXBlKGNvdW50KTsKKyAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgICAgIGNhc2UgTEVGVDogCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgUklHSFQ6IAorICAgICAgICAgICAgICAgICAgICBzdGFydFBvcyA9IGVuZFBvcyAtIHBpZWNlLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENFTlRFUjogCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0UG9zID0gKHN0YXJ0UG9zICsgZW5kUG9zIC0gcGllY2UubGVuZ3RoKCkgKyAxKS8yOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IGdhcCA9IHN0YXJ0UG9zIC0gb3V0cHV0Lmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKGNvdW50ICE9IDAgJiYgZ2FwIDwgbWluR2FwKSBnYXAgPSBtaW5HYXA7CisgICAgICAgICAgICBpZiAoZ2FwID4gMCkgb3V0cHV0LmFwcGVuZChyZXBlYXQoIiAiLCBnYXApKTsKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQocGllY2UpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIEhUTUxUYWJiZXIgZXh0ZW5kcyBUYWJiZXIgeworICAgICAgICBwcml2YXRlIExpc3QgcGFyYW1ldGVycyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgeworICAgICAgICAgICAgc2V0UHJlZml4KCI8dHI+Iik7CisgICAgICAgICAgICBzZXRQb3N0Zml4KCI8L3RyPiIpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHNldFBhcmFtZXRlcnMoaW50IGNvdW50LCBTdHJpbmcgcGFyYW1zKSB7CisgICAgICAgIAl3aGlsZSAoY291bnQgPj0gcGFyYW1ldGVycy5zaXplKCkpIHBhcmFtZXRlcnMuYWRkKG51bGwpOworICAgICAgICAgICAgcGFyYW1ldGVycy5zZXQoY291bnQscGFyYW1zKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgcHJvY2Vzc19maWVsZChpbnQgY291bnQsIFN0cmluZyBzb3VyY2UsIGludCBzdGFydCwgaW50IGxpbWl0LCBTdHJpbmdCdWZmZXIgb3V0cHV0KSB7CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKCI8dGQiKTsKKyAgICAgICAgICAgIFN0cmluZyBwYXJhbXMgPSBudWxsOworICAgICAgICAgICAgaWYgKGNvdW50IDwgcGFyYW1ldGVycy5zaXplKCkpIHBhcmFtcyA9IChTdHJpbmcpIHBhcmFtZXRlcnMuZ2V0KGNvdW50KTsKKyAgICAgICAgICAgIGlmIChwYXJhbXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKHBhcmFtcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKCI+Iik7CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsIGxpbWl0KSk7CisgICAgICAgICAgICAvLyBUT0RPIFF1b3RlIHN0cmluZworICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCgiPC90ZD4iKTsgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBvc3RmaXgoKSB7CisgICAgICAgIHJldHVybiBwb3N0Zml4OworICAgIH0KKworICAgIC8qKgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJlZml4KCkgeworICAgICAgICByZXR1cm4gcHJlZml4OworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgVGFiYmVyIHNldFBvc3RmaXgoU3RyaW5nIHN0cmluZykgeworICAgICAgICBwb3N0Zml4ID0gc3RyaW5nOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3RyaW5nCisgICAgICovCisgICAgcHVibGljIFRhYmJlciBzZXRQcmVmaXgoU3RyaW5nIHN0cmluZykgeworICAgICAgICBwcmVmaXggPSBzdHJpbmc7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdEFsbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1Y2QzM2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0QWxsLmphdmEKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrLlRlc3RHcm91cDsKKworLyoqCisgKiBUb3AgbGV2ZWwgdGVzdCB1c2VkIHRvIHJ1biBhbGwgb3RoZXIgdGVzdHMgYXMgYSBiYXRjaC4KKyAqLworcHVibGljIGNsYXNzIFRlc3RBbGwgZXh0ZW5kcyBUZXN0R3JvdXAgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdEFsbCgpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIoCisgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiVmVyc2lvbkluZm9UZXN0IiwKKyAgICAgICAgICAgIC8vICJJQ1VMaXN0UmVzb3VyY2VCdW5kbGVUZXN0IiwKKyAgICAgICAgICAgIC8vIHRoZXNlIHRlc3RzIGZhaWwgc2luY2UgdGhlcmUgaXMgbm8gSUNVTG9jYWxlRGF0YS5qYXIgdG8gc3VwcG9ydCBpdAorICAgICAgICAgICAgLy8gSUNVUmVzb3VyZUJ1bmRsZVRlc3Qgc3VwZXJjZWRlcyB0aGUgSUNVTGlzdFJlc291cmNlQnVuZGxlVGVzdAorICAgICAgICAgICAgIklDVVJlc291cmNlQnVuZGxlVGVzdCIsCisgICAgICAgICAgICAiQ29tcGFjdEFycmF5VGVzdCIsCisgICAgICAgICAgICAiU3RyaW5nVG9rZW5pemVyVGVzdCIsCisgICAgICAgICAgICAiQ3VycmVuY3lUZXN0IiwKKyAgICAgICAgICAgICJVdGlsaXR5VGVzdCIsCisgICAgICAgICAgICAiVHJpZVRlc3QiLAorICAgICAgICAgICAgIkxvY2FsZURhdGFUZXN0IiwKKyAgICAgICAgICAgICJVTG9jYWxlVGVzdCIsCisgICAgICAgICAgICAiTG9jYWxlQWxpYXNUZXN0IgorICAgICAgICB9LAorICAgICAgICAgICAgICAiVGVzdCBtaXNjZWxsYW5lb3VzIHB1YmxpYyB1dGlsaXRpZXMiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEFTU19UQVJHRVRfTkFNRSA9ICJVdGlsIjsKK30KKworCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0Qk5GLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0Qk5GLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTMyM2M4NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RCTkYuamF2YQpAQCAtMCwwICsxLDI0NCBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworCisvL1RPRE8gaW50ZWdyYXRlIHRoaXMgaW50byB0aGUgdGVzdCBmcmFtZXdvcmsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworcHVibGljIGNsYXNzIFRlc3RCTkYgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSB0ZXN0UnVsZXMgPSB7CisgICAgICAgICIkcm9vdCA9IFthYl17M307IiwKKyAgICAgICAgCisgICAgICAgICIkcm9vdCA9IFthYl17Myx9OyIsCisgICAgICAgIAorICAgICAgICAiJHJvb3QgPSBbYWJdezMsNX07IiwKKyAgICAgICAgCisgICAgICAgICIkcm9vdCA9IFthYl0qOyIsCisgICAgICAgIAorICAgICAgICAiJHJvb3QgPSBbYWJdPzsiLAorICAgICAgICAKKyAgICAgICAgIiRyb290ID0gW2FiXSs7IiwKKyAgICAgICAgCisgICAgICAgICIkdXMgPSBbYS16XTsiICsKKyAgICAgICAgIiRyb290ID0gWzAtOSR1c107IiwKKyAgICAgICAgCisgICAgICAgICIkcm9vdCA9IGEgJGZvbyBiPyAyNSUgZW5kIDMwJSB8ICRmb28gNTAlO1xyXG4iICsKKyAgICAgICAgIiRmb28gPSBjezEsNX0gMjAlOyIsCisgICAgICAgIAorICAgICAgICAiJHJvb3QgPSBbYS16XXsxLDV9fjsiLAorICAgICAgICAKKyAgICAgICAgIiRyb290ID0gW2Etel17NX1+OyIsCisgICAgICAgIAorICAgICAgICAiJHJvb3QgPSAnXFwnICh1IHwgVTAwMTAgfCBVMDAwICRoZXgpICRoZXh7NH0gO1xyXG4iICsKKyAgICAgICAgIiRoZXggPSBbMC05QS1GYS1mXTsiLAorICAgIH07CisgICAgICAgIAorICAgIHN0YXRpYyBTdHJpbmcgdW5pY29kZVNldEJORiA9ICIiICsKKyAgICAiJHJvb3QgPSAkbGVhZiB8ICdbJyAkcyAkcm9vdDIgJHMgJ10nIDtcclxuIiArCisgICAgIiRyb290MiA9ICRsZWFmIHwgJ1snICRzICRyb290MyAkcyAnXScgfCAoJHJvb3QzICRzICgkb3AgJHJvb3QzICRzKXswLDN9KSA7XHJcbiIgKworICAgICIkcm9vdDMgPSAkbGVhZiB8ICdbJyAkcyAkcm9vdDQgJHMgJ10nIHwgKCRyb290NCAkcyAoJG9wICRyb290NCAkcyl7MCwzfSkgO1xyXG4iICsKKyAgICAiJHJvb3Q0ID0gJGxlYWYgfCAoJGxlYWYgJHMgKCRvcCAkbGVhZiAkcyl7MCwzfSkgO1xyXG4iICsKKyAgICAiJG9wID0gKCgnJicgfCAnLScpICRzKT8gNzAlOyIgKworICAgICIkbGVhZiA9ICdbJyAkcyAkbGlzdCAkcyAnXScgfCAkcHJvcDtcclxuIiArCisgICAgIiRsaXN0ID0gKCRjaGFyICRzICgnLScgJHMgJGNoYXIgJHMpPyAzMCUpezEsNX0gO1xyXG4iICsKKyAgICAiJHByb3AgPSAnXFwnIChwIHwgUCkgJ3snICRzICRwcm9wTmFtZSAkcyAnfScgfCAnWzonICdeJz8gJHMgJHByb3BOYW1lICRzICc6XSc7XHJcbiIgKworICAgICIkbmVlZHNRdW90ZSA9IFtcXC1cXF1bOndoaXRlc3BhY2U6XVs6Y29udHJvbDpdXSA7XHJcbiIgKworICAgICIkY2hhciA9IFtbXFx1MDAwMC1cXFUwMDAxMEZGRkZdLSRuZWVkc1F1b3RlXSB8ICRxdW90ZWQgO1xyXG4iICsKKyAgICAiJHF1b3RlZCA9ICdcXCcgKCd1JyB8ICdVMDAxMCcgfCAnVTAwMCcgJGhleCkgJGhleHs0fSA7XHJcbiIgKworICAgICIkaGV4ID0gWzAtOUEtRmEtZl07XHJcbiIgKworICAgICIkcyA9ICcgJz8gMjAlO1xyXG4iICsKKyAgICAiJHByb3BOYW1lID0gKHdoaXRlc3BhY2UgfCB3cykgfCAodXBwZXJjYXNlIHwgdWMpIHwgKGxvd2VyY2FzZSB8IGxjKSB8ICRjYXRlZ29yeTtcclxuIiArCisgICAgIiRjYXRlZ29yeSA9ICgoZ2VuZXJhbCB8IGdjKSAkcyAnPScgJHMpPyAkY2F0dmFsdWU7XHJcbiIgKworICAgICIkY2F0dmFsdWUgPSAoQyB8IE90aGVyIHwgQ2MgfCBDb250cm9sIHwgQ2YgfCBGb3JtYXQgfCBDbiB8IFVuYXNzaWduZWQgfCBMIHwgTGV0dGVyKTtcclxuIjsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIHRlc3RUb2tlbml6ZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0UnVsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHRlc3RCTkYodGVzdFJ1bGVzW2ldLCBudWxsLCAyMCk7ICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0ZXN0Qk5GKHVuaWNvZGVTZXRCTkYsIG51bGwsIDIwKTsKKyAgICAgICAgLy90ZXN0UGFyc2VyKCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIHRlc3RCTkYoU3RyaW5nIHJ1bGVzLCBVbmljb2RlU2V0IGNoYXJzLCBpbnQgY291bnQpIHsKKyAgICAgICAgQk5GIGJuZiA9IG5ldyBCTkYobmV3IFJhbmRvbSgwKSwgbmV3IFF1b3Rlci5SdWxlUXVvdGVyKCkpCisgICAgICAgIC5hZGRTZXQoIiRjaGFycyIsIGNoYXJzKQorICAgICAgICAuYWRkUnVsZXMocnVsZXMpCisgICAgICAgIC5jb21wbGV0ZSgpOworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQk5GIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihydWxlcyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihibmYuZ2V0SW50ZXJuYWwoKSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGkgKyAiOiAiICsgYm5mLm5leHQoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICBwdWJsaWMgc3RhdGljIHRlc3RNYW51YWwoKSB7CisgICAgICAgIFBpY2sgcCA9IFBpY2subWF5YmUoNzUsUGljay51bnF1b3RlZCgiYSIpKTsKKyAgICAgICAgdGVzdE9yKHAsIDEpOworICAgICAgICBwID0gUGljay5vcihuZXcgU3RyaW5nW117IiIsICJhIiwgImJiIiwgImNjYyJ9KTsKKyAgICAgICAgdGVzdE9yKHAsIDMpOworICAgICAgICBwID0gUGljay5yZXBlYXQoMywgNSwgbmV3IGludFtdezIwLCAzMCwgMjB9LCAiYSIpOworICAgICAgICB0ZXN0T3IocCwgNSk7ICAgICAgICAKKyAgICAgICAgcCA9IFBpY2suY29kZVBvaW50KCJbYS1jZV0iKTsKKyAgICAgICAgdGVzdENvZGVQb2ludHMocCk7ICAgICAgICAKKyAgICAgICAgcCA9IFBpY2suY29kZVBvaW50KCJbYS1jZV0iKTsKKyAgICAgICAgdGVzdENvZGVQb2ludHMocCk7ICAgICAgICAKKyAgICAgICAgcCA9IFBpY2suc3RyaW5nKDIsIDgsIHApOworICAgICAgICB0ZXN0T3IocCwxMCk7CisgICAgICAgIAorICAgICAgICBwID0gUGljay5vcihuZXcgU3RyaW5nW117IiIsICJhIiwgImJiIiwgImNjYyJ9KTsKKyAgICAgICAgcCA9IFBpY2suYW5kKHApLmFuZDIocCkuYW5kMigiJiIpOworICAgICAgICB0ZXN0TWF0Y2gocCwgImFiYiYiKTsKKyAgICAgICAgdGVzdE1hdGNoKHAsICJiYmEiKTsKKyAgICAgICAgCisgICAgICAgIC8vIHRlc3RFbmdsaXNoKCk7ICAgICAgICAKKyAgICB9CisgICAgKi8KKyAgICAKKyAgICBzdGF0aWMgdm9pZCB0ZXN0TWF0Y2goUGljayBwLCBTdHJpbmcgc291cmNlKSB7CisgICAgICAgIFBpY2suUG9zaXRpb24gcHAgPSBuZXcgUGljay5Qb3NpdGlvbigpOworICAgICAgICBib29sZWFuIHZhbHVlID0gcC5tYXRjaChzb3VyY2UsIHBwKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJNYXRjaDogIiArIHZhbHVlICsgIiwgIiArIHBwKTsgICAgICAKKyAgICB9CisgICAgLyoKKyAgICBzdGF0aWMgdm9pZCB0ZXN0UGFyc2VyKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUGljay5UYXJnZXQgdGFyZ2V0ID0gbmV3IFBpY2suVGFyZ2V0KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0LmFkZFJ1bGUocnVsZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrCisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorICAgICovCisgICAgCisgICAgc3RhdGljIGNsYXNzIENvdW50cyB7CisgICAgICAgIGludFtdIGNvdW50czsgICAgICAgCisgICAgICAgIENvdW50cyhpbnQgbWF4KSB7CisgICAgICAgICAgICBjb3VudHMgPSBuZXcgaW50W21heCsxXTsKKyAgICAgICAgfQorICAgICAgICB2b2lkIGluYyhpbnQgaW5kZXgpIHsKKyAgICAgICAgICAgIGNvdW50c1tpbmRleF0rKzsKKyAgICAgICAgfQorICAgICAgICB2b2lkIHNob3coKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlByaW50aW5nIENvdW50cyIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoY291bnRzW2ldID09IDApIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihpICsgIjogIiArIGNvdW50c1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gcnVsZXMgPSB7CisgICAgICAgICIkcyA9ICcgJzsiLAorICAgICAgICAiJG5vdW4gPSBkb2cgfCBob3VzZSB8IGdvdmVybm1lbnQgfCB3YWxsIHwgc3RyZWV0IHwgemVicmE7IiwKKyAgICAgICAgIiRhZGplY3RpdmUgPSByZWQgfCBnbG9yaW91cyB8IHNpbXBsZSB8IG5hc3R5IHwgaGVhdnkgfCBjbGVhbjsiLAorICAgICAgICAiJGFydGljbGUgPSBxdWlja2x5IHwgb2RkbHkgfCBzaWxlbnRseSB8IGJvbGRseTsiLAorICAgICAgICAiJGFkamVjdGl2ZVBocmFzZSA9ICgkYWR2ZXJiICRzKT8gNTAlICRhZGplY3RpdmUqIDAlIDMwJSAyMCUgMTAlOyIsCisgICAgICAgICIkbm91blBocmFzZSA9ICRhcnRpY2xlcyAkcyAoJGFkamVjdGl2ZVBocmFzZSAkcyk/IDMwJSAkbm91bjsiLAorICAgICAgICAiJHZlcmIgPSBnb2VzIHwgZmlzaGVzIHwgd2Fsa3MgfCBzbGVlcHM7IiwKKyAgICAgICAgIiR0dmVyYiA9IGNhcnJpZXMgfCBsaWZ0cyB8IG92ZXJ0dXJucyB8IGhpdHMgfCBqdW1wcyBvbjsiLAorICAgICAgICAiJGNvcHVsYSA9IGlzIDMwJSB8IHNlZW1zIDEwJTsiLAorICAgICAgICAiJHNlbnRlbmNlMSA9ICRub3VuUGhyYXNlICRzICR2ZXJiICRzICgkcyAkYWR2ZXJiKT8gMzAlOyIsCisgICAgICAgICIkc2VudGVuY2UyID0gJG5vdW5QaHJhc2UgJHMgJHR2ZXJiICRzICRub3VuUGhyYXNlICgkcyAkYWR2ZXJiKT8gMzAlOyIsCisgICAgICAgICIkc2VudGVuY2UzID0gJG5vdW5QaHJhc2UgJHMgJGNvcHVsYSAkcyAkYWRqZWN0aXZlUGhyYXNlOyIsCisgICAgICAgICIkY29uaiA9IGJ1dCB8IGFuZCB8IG9yOyIsCisgICAgICAgICIkc2VudGVuY2U0ID0gJHNlbnRlbmNlMSB8ICRzZW50ZW5jZTIgfCAkc2VudGVuY2UzIDIwJSB8ICRzZW50ZW5jZTQgJGNvbmogJHNlbnRlbmNlNCAyMCU7IiwKKyAgICAgICAgIiRzZW50ZW5jZSA9ICRzZW50ZW5jZTQgJy4nOyJ9OworICAgIC8qCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB0ZXN0RW5nbGlzaCgpIHsKKyAgICAgICAgUGljayBzID0gUGljay51bnF1b3RlZCgiICIpOworICAgICAgICBQaWNrIHZlcmJzID0gUGljay5vcihuZXcgU3RyaW5nW117ImdvZXMiLCAiZmlzaGVzIiwgIndhbGtzIiwgInNsZWVwcyJ9KTsKKyAgICAgICAgUGljayB0cmFuc2l0aXZlID0gUGljay5vcihuZXcgU3RyaW5nW117ImNhcnJpZXMiLCAibGlmdHMiLCAib3ZlcnR1cm5zIiwgImhpdHMiLCAianVtcHMgb24ifSk7CisgICAgICAgIFBpY2sgbm91bnMgPSBQaWNrLm9yKG5ldyBTdHJpbmdbXXsiZG9nIiwgImhvdXNlIiwgImdvdmVybm1lbnQiLCAid2FsbCIsICJzdHJlZXQiLCAiemVicmEifSk7CisgICAgICAgIFBpY2sgYWRqZWN0aXZlcyA9IFBpY2sub3IobmV3IFN0cmluZ1tdeyJyZWQiLCAiZ2xvcmlvdXMiLCAic2ltcGxlIiwgIm5hc3R5IiwgImhlYXZ5IiwgImNsZWFuIn0pOworICAgICAgICBQaWNrIGFydGljbGVzID0gUGljay5vcihuZXcgU3RyaW5nW117InRoZSIsICJhIn0pOworICAgICAgICBQaWNrIGFkdmVyYnMgPSBQaWNrLm9yKG5ldyBTdHJpbmdbXXsicXVpY2tseSIsICJvZGRseSIsICJzaWxlbnRseSIsICJib2xkbHkifSk7CisgICAgICAgIFBpY2sgYWRqZWN0aXZlUGhyYXNlID0gUGljay5hbmQoMC41LCBQaWNrLmFuZChhZHZlcmJzKS5hbmQyKHMpKS5hbmQyKGFkamVjdGl2ZXMpOworICAgICAgICBQaWNrIG5vdW5QaHJhc2UgPSBQaWNrLmFuZChhcnRpY2xlcykuYW5kMihzKQorICAgICAgICAgICAgLmFuZDIoMC4zLCBQaWNrLmFuZChhZGplY3RpdmVQaHJhc2UpLmFuZDIocykpCisgICAgICAgICAgICAuYW5kMihub3Vucyk7CisgICAgICAgIFBpY2sgY29wdWxhID0gUGljay5vcihuZXcgU3RyaW5nW117ImlzIiwgInNlZW1zIn0pOworICAgICAgICBQaWNrIHNlbnRlbmNlMSA9IFBpY2suYW5kKG5vdW5QaHJhc2UpLmFuZDIocykuYW5kMih2ZXJicykKKyAgICAgICAgICAgIC5hbmQyKDAuMywgUGljay5hbmQocykuYW5kMihhZHZlcmJzKSkubmFtZSgiczEiKTsKKyAgICAgICAgUGljayBzZW50ZW5jZTIgPSBQaWNrLmFuZChub3VuUGhyYXNlKS5hbmQyKHMpLmFuZDIodHJhbnNpdGl2ZSkuYW5kMihzKS5hbmQyKG5vdW5QaHJhc2UpCisgICAgICAgICAgICAuYW5kMigwLjMsIFBpY2suYW5kKHMpLmFuZDIoYWR2ZXJicykpLm5hbWUoInMyIik7CisgICAgICAgIFBpY2sgc2VudGVuY2UzID0gUGljay5hbmQobm91blBocmFzZSkuYW5kMihzKS5hbmQyKGNvcHVsYSkuYW5kMihzKS5hbmQyKGFkamVjdGl2ZVBocmFzZSkubmFtZSgiczMiKTsKKyAgICAgICAgUGljayBjb25qID0gUGljay5vcihuZXcgU3RyaW5nW117IiwgYnV0IiwgIiwgYW5kIiwgIiwgb3IifSk7CisgICAgICAgIFBpY2sgZm9yd2FyZCA9IFBpY2sudW5xdW90ZWQoImZvcndhcmQiKTsKKyAgICAgICAgUGljayBwYWlyID0gUGljay5hbmQoZm9yd2FyZCkuYW5kMihjb25qKS5hbmQyKHMpLmFuZDIoZm9yd2FyZCkubmFtZSgicGFydCIpOworICAgICAgICBQaWNrIHNlbnRlbmNlQmFzZSA9IFBpY2sub3Ioc2VudGVuY2UxKS5vcjIoc2VudGVuY2UyKS5vcjIoc2VudGVuY2UzKS5vcjIoMC42NjY2LCBwYWlyKS5uYW1lKCJzZW50ZW5jZSIpOworICAgICAgICBzZW50ZW5jZUJhc2UucmVwbGFjZShmb3J3YXJkLCBzZW50ZW5jZUJhc2UpOworICAgICAgICBQaWNrIHNlbnRlbmNlID0gUGljay5hbmQoc2VudGVuY2VCYXNlKS5hbmQyKFBpY2sudW5xdW90ZWQoIi4iKSk7CisgICAgICAgIFBpY2suVGFyZ2V0IHRhcmdldCA9IFBpY2suVGFyZ2V0Lm1ha2Uoc2VudGVuY2UpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDUwOyArK2kpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihpICsgIjogIiArIHRhcmdldC5uZXh0KCkpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdGVzdE9yKFBpY2sgcCwgaW50IGNvdW50KSB7CisgICAgICAgIFBpY2suVGFyZ2V0IHRhcmdldCA9IFBpY2suVGFyZ2V0Lm1ha2UocCk7CisgICAgICAgIENvdW50cyBjb3VudHMgPSBuZXcgQ291bnRzKGNvdW50ICsgMTApOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSB0YXJnZXQubmV4dCgpOworICAgICAgICAgICAgY291bnRzLmluYyhzLmxlbmd0aCgpKTsKKyAgICAgICAgfQorICAgICAgICBjb3VudHMuc2hvdygpOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHRlc3RDb2RlUG9pbnRzKFBpY2sgcCkgeworICAgICAgICBQaWNrLlRhcmdldCB0YXJnZXQgPSBQaWNrLlRhcmdldC5tYWtlKHApOworICAgICAgICBDb3VudHMgY291bnRzID0gbmV3IENvdW50cygxMjgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBzID0gdGFyZ2V0Lm5leHQoKTsKKyAgICAgICAgICAgIGNvdW50cy5pbmMocy5jaGFyQXQoMCkpOworICAgICAgICB9CisgICAgICAgIGNvdW50cy5zaG93KCk7CisgICAgfQorICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHByaW50UmFuZG9tcygpIHsKKyAgICAgICAgQk5GIGJuZiA9IG5ldyBCTkYobmV3IFJhbmRvbSgwKSwgbmV3IFF1b3Rlci5SdWxlUXVvdGVyKCkpCisgICAgICAgIC5hZGRSdWxlcygiW2Etel17Miw1fSIpLmNvbXBsZXRlKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RhcnQiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDA7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBibmYubmV4dCgpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGkgKyAiKVx0IiArIHRlbXApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0VG9rZW5pemVyKCkgeworICAgICAgICBUb2tlbml6ZXIgdCA9IG5ldyBUb2tlbml6ZXIoKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIHNhbXBsZXMgPSB7ImEnYidjIGQgI2FiY1xyIGUiLCAiJ2EgJzEyMyAzMjEiLCAKKyAgICAgICAgICAgICJcXFxcIiwgImEnYiIsICJhJyIsICJhYmMgZGVmJT9naGkiLCAiJSIsICJhIiwgIlxcIGEiLCAiYScnJydiIn07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2FtcGxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdC5zZXRTb3VyY2Uoc2FtcGxlc1tpXSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSW5wdXQ6ICIgKyB0LmdldFNvdXJjZSgpKTsKKyAgICAgICAgICAgIGludCB0eXBlID0gMDsKKyAgICAgICAgICAgIHdoaWxlICh0eXBlICE9IFRva2VuaXplci5ET05FKSB7CisgICAgICAgICAgICAgICAgdHlwZSA9IHQubmV4dCgpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0LnRvU3RyaW5nKHR5cGUsIGZhbHNlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKK30KKworLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RCYWdGb3JtYXR0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3RCYWdGb3JtYXR0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDk5NjY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdEJhZ0Zvcm1hdHRlci5qYXZhCkBAIC0wLDAgKzEsMjQ2IEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworLy8gVE9ETyBpbnRlZ3JhdGUgdGhpcyBpbnRvIHRoZSB0ZXN0IGZyYW1ld29yaworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VU2NyaXB0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCisvLyBUT0RPIGNoYW5nZSB0byB1c2UgdGVzdCBmcmFtZXdvcmsKK3B1YmxpYyBjbGFzcyBUZXN0QmFnRm9ybWF0dGVyIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgdm9pZCBnZW5lcmF0ZVByb3BlcnR5QWxpYXNlcyhib29sZWFuIHNob3dWYWx1ZXMpIHsKKyAgICAgICAgZ2VuZXJhdGVQcm9wZXJ0eUFsaWFzZXMoc2hvd1ZhbHVlcywgSUNVUHJvcGVydHlGYWN0b3J5Lm1ha2UoKSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCB2b2lkIGdlbmVyYXRlUHJvcGVydHlBbGlhc2VzKGJvb2xlYW4gc2hvd1ZhbHVlcywgVW5pY29kZVByb3BlcnR5LkZhY3RvcnkgdXBzKSB7CisgICAgICAgIENvbGxhdG9yIG9yZGVyID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBUcmVlU2V0IHByb3BzID0gbmV3IFRyZWVTZXQob3JkZXIpOworICAgICAgICBUcmVlU2V0IHZhbHVlcyA9IG5ldyBUcmVlU2V0KG9yZGVyKTsKKyAgICAgICAgQmFnRm9ybWF0dGVyIGJmID0gbmV3IEJhZ0Zvcm1hdHRlcigpOworICAgICAgICBwcm9wcy5hZGRBbGwodXBzLmdldEF2YWlsYWJsZU5hbWVzKCkpOworICAgICAgICBmb3IgKGludCBpID0gVW5pY29kZVByb3BlcnR5LkJJTkFSWTsgaSA8IFVuaWNvZGVQcm9wZXJ0eS5MSU1JVF9UWVBFOyArK2kpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihVbmljb2RlUHJvcGVydHkuZ2V0VHlwZU5hbWUoaSkpOworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBwcm9wcy5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBwcm9wQWxpYXMgPSAoU3RyaW5nKWl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBVbmljb2RlUHJvcGVydHkgdXAgPSB1cHMuZ2V0UHJvcGVydHkocHJvcEFsaWFzKTsKKyAgICAgICAgICAgICAgICBpbnQgdHlwZSA9IHVwLmdldFR5cGUoKTsKKyAgICAgICAgICAgICAgICBpZiAodHlwZSAhPSBpKSBjb250aW51ZTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHByb3BBbGlhcyArICJcdCIgKyBiZi5qb2luKHVwLmdldE5hbWVBbGlhc2VzKCkpKTsKKyAgICAgICAgICAgICAgICBpZiAoIXNob3dWYWx1ZXMpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIHZhbHVlcy5jbGVhcigpOworICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFVuaWNvZGVQcm9wZXJ0eS5OVU1FUklDIHx8IHR5cGUgPT0gVW5pY29kZVByb3BlcnR5LkVYVEVOREVEX05VTUVSSUMpIHsKKyAgICAgICAgICAgICAgICAgICAgVW5pY29kZU1hcCB1bSA9IG5ldyBVbmljb2RlTWFwKCk7CisgICAgICAgICAgICAgICAgICAgIHVtLnB1dEFsbCh1cCk7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih1bS50b1N0cmluZyhuZXcgTnVtYmVyQ29tcGFyYXRvcigpKSk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YWx1ZXMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYWRkQWxsKHVwLmdldEF2YWlsYWJsZVZhbHVlcygpKTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBpdDIgPSB2YWx1ZXMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXQyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWVBbGlhcyA9IChTdHJpbmcpaXQyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcdCIgKyBiZi5qb2luKHZhbHVlQWxpYXMgKyAiXHQiICsgdXAuZ2V0VmFsdWVBbGlhc2VzKHZhbHVlQWxpYXMpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBOdW1iZXJDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgbzEsIE9iamVjdCBvMikgeworICAgICAgICAgICAgaWYgKG8xID09IG8yKSByZXR1cm4gMDsKKyAgICAgICAgICAgIGlmIChvMSA9PSBudWxsKSByZXR1cm4gMTsKKyAgICAgICAgICAgIGlmIChvMiA9PSBudWxsKSByZXR1cm4gLTE7CisgICAgICAgICAgICBkb3VibGUgbjEgPSBEb3VibGUucGFyc2VEb3VibGUoKFN0cmluZylvMSk7CisgICAgICAgICAgICBkb3VibGUgbjIgPSBEb3VibGUucGFyc2VEb3VibGUoKFN0cmluZylvMik7CisgICAgICAgICAgICByZXR1cm4gbjEgPCBuMiA/IC0xIDogbjEgPiBuMiA/IDEgOiAwOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RhcnQiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vcmVhZENoYXJhY3RlcnMoKTsKKyAgICAgICAgICAgIFVuaWNvZGVQcm9wZXJ0eSBwcm9wID0gSUNVUHJvcGVydHlGYWN0b3J5Lm1ha2UoKS5nZXRQcm9wZXJ0eSgiQ2Fub25pY2FsY29tYmluaW5nY2xhc3MiKTsKKyAgICAgICAgICAgIHByb3AuZ2V0QXZhaWxhYmxlVmFsdWVzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdlbmVyYXRlUHJvcGVydHlBbGlhc2VzKHRydWUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBCYWdGb3JtYXR0ZXIgYmYgPSBuZXcgQmFnRm9ybWF0dGVyKCk7CisKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgdXMgPSBuZXcgVW5pY29kZVNldCgiWzpnYz1uZDpdIik7ICAKKyAgICAgICAgICAgIEJhZ0Zvcm1hdHRlci5DT05TT0xFLnByaW50bG4oIls6Z2M9bmQ6XSIpOworICAgICAgICAgICAgYmYuc2hvd1NldE5hbWVzKEJhZ0Zvcm1hdHRlci5DT05TT0xFLHVzKTsKKworICAgICAgICAgICAgdXMgPSBuZXcgVW5pY29kZVNldCgiWzpudW1lcmljX3ZhbHVlPTI6XSIpOyAgCisgICAgICAgICAgICBCYWdGb3JtYXR0ZXIuQ09OU09MRS5wcmludGxuKCJbOm51bWVyaWNfdmFsdWU9MjpdIik7CisgICAgICAgICAgICBiZi5zaG93U2V0TmFtZXMoQmFnRm9ybWF0dGVyLkNPTlNPTEUsdXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICB1cyA9IG5ldyBVbmljb2RlU2V0KCJbOm51bWVyaWNfdHlwZT1udW1lcmljOl0iKTsgICAKKyAgICAgICAgICAgIEJhZ0Zvcm1hdHRlci5DT05TT0xFLnByaW50bG4oIls6bnVtZXJpY190eXBlPW51bWVyaWM6XSIpOworICAgICAgICAgICAgYmYuc2hvd1NldE5hbWVzKEJhZ0Zvcm1hdHRlci5DT05TT0xFLHVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVW5pY29kZVByb3BlcnR5LkZhY3RvcnkgdXBzID0gSUNVUHJvcGVydHlGYWN0b3J5Lm1ha2UoKTsKKyAgICAgICAgICAgIHVzID0gdXBzLmdldFNldCgiZ2M9bW4iLCBudWxsLCBudWxsKTsgCisgICAgICAgICAgICBCYWdGb3JtYXR0ZXIuQ09OU09MRS5wcmludGxuKCJnYz1tbiIpOworICAgICAgICAgICAgYmYuc2hvd1NldE5hbWVzKEJhZ0Zvcm1hdHRlci5DT05TT0xFLCB1cyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0cnVlKSByZXR1cm47CisgICAgICAgICAgICAvL3Nob3dOYW1lcygiTmFtZSIsICIuKk1BUksuKiIpOworICAgICAgICAgICAgLy9zaG93TmFtZXMoIk5GRCIsICJhLisiKTsKKyAgICAgICAgICAgIC8vc2hvd05hbWVzKCJORkQiLCBmYWxzZSk7CisgICAgICAgICAgICAvL3Nob3dOYW1lcygiTG93ZXJjYXNlX01hcHBpbmciLCBmYWxzZSk7CisgICAgICAgICAgICAvL1Rlc3RVbmljb2RlUHJvcGVydHlTb3VyY2UudGVzdCh0cnVlKTsKKyAgICAgICAgICAgIC8vc2hvd05hbWVzKCIuKlxcIFxcLS4qIik7CisKKworICAgICAgICAgICAgLy9jaGVja0hUTUwoKTsKKyAgICAgICAgICAgIC8vdGVzdElzUlRMKCk7CisgICAgICAgICAgIAorICAgICAgICAgICAgLy9UZXN0VG9rZW5pemVyLnRlc3QoKTsKKyAgICAgICAgICAgIC8vUmFuZG9tQ29sbGF0b3IuZ2VuZXJhdGUoImNvbGxhdGlvblRlc3QudHh0IiwgbnVsbCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vVGVzdFBpY2sudGVzdCgpOworICAgICAgICAgICAgLy9wcmludFJhbmRvbXMoKTsKKyAgICAgICAgICAgIC8vaWYgKHRydWUpIHJldHVybjsKKyAgICAgICAgICAgIC8vdGVzdExvY2FsZXMoKTsKKyAgICAgICAgICAgIC8vaWYgKHRydWUpIHJldHVybjsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICBUZXN0Q29sbGF0b3IgdGMgPSBuZXcgVGVzdENvbGxhdG9yKCk7CisgICAgICAgICAgICB0Yy50ZXN0KFJ1bGVCYXNlZENvbGxhdG9yLmdldEluc3RhbmNlKCksMTAwMCk7CisgICAgICAgICAgICAqLworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICAgICAgICAgICAgICBzYi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgcmMubmV4dFJ1bGUoc2IpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzYik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAqLworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbmQiKTsKKyAgICAgICB9CisKKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgdGVzdExvY2FsZXMoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0gQ29sbGF0b3IuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBTZXQgcyA9IG5ldyBUcmVlU2V0KENvbGxhdG9yLmdldEluc3RhbmNlKCkpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBsYW5nID0gbG9jYWxlc1tpXS5nZXRMYW5ndWFnZSgpOworICAgICAgICAgICAgU3RyaW5nIGRsYW5nID0gbG9jYWxlc1tpXS5nZXREaXNwbGF5TGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgIFN0cmluZyBjb3VudHJ5ID0gbG9jYWxlc1tpXS5nZXRDb3VudHJ5KCk7CisgICAgICAgICAgICBTdHJpbmcgZGNvdW50cnkgPSBsb2NhbGVzW2ldLmdldERpc3BsYXlDb3VudHJ5KCk7CisgICAgICAgICAgICBpZiAoY291bnRyeS5lcXVhbHMoIiIpKSBjb250aW51ZTsKKyAgICAgICAgICAgIHMuYWRkKCIiCisgICAgICAgICAgICAgICAgKyAiXHQiICsgZGNvdW50cnkgCisgICAgICAgICAgICAgICAgKyAiXHQiICsgY291bnRyeSAKKyAgICAgICAgICAgICAgICArICJcdCIgKyBkbGFuZworICAgICAgICAgICAgICAgICsgIlx0IiArIGxhbmcgCisgICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIC8vQ29sbGVjdGlvbkZvcm1hdHRlciBjZiA9IG5ldyBDb2xsZWN0aW9uRm9ybWF0dGVyKCk7CisgICAgICAgIFByaW50V3JpdGVyIHB3ID0gQmFnRm9ybWF0dGVyLm9wZW5VVEY4V3JpdGVyKCIiLCAiY291bnRyaWVzLnR4dCIpOworICAgICAgICBJdGVyYXRvciBpdCA9IHMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgcHcucHJpbnRsbihpdC5uZXh0KCkpOworICAgICAgICB9CisgICAgICAgIHB3LmNsb3NlKCk7CisgICAgfQorICAgIAorICAgIAorICAgIC8qCisgICAgICogVXNlIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIHRvIHJvdW5kIGdldCBhIHJvdW5kaW5nIHZhbHVlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgTE9HMTAgPSBNYXRoLmxvZygxMCk7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIHVzZVNpZ25pZmljYW50RGlnaXRzKGRvdWJsZSB2YWx1ZSwgaW50IGRpZ2l0cykgeworICAgICAgICBkb3VibGUgbG9nMTAgPSBNYXRoLmxvZyh2YWx1ZSkvTE9HMTA7IC8vIGxvZ1tlXQorICAgICAgICAKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgUlRMID0gbmV3IFVuaWNvZGVTZXQoIltbOkw6XSZbWzpiaWRpIGNsYXNzPVI6XVs6YmlkaSBjbGFzcz1BTDpdXV0iKTsKKyAgICAKKyAgICBzdGF0aWMgYm9vbGVhbiBpc1JUTChMb2NhbGUgbG9jKSB7ICAgICAgICAKKyAgICAgICAgLy8gaW4gMi44IHdlIGNhbiB1c2UgdGhlIGV4ZW1wbGFyIGNoYXJhY3RlcnMsIGJ1dCBmb3IgMi42IHdlIGhhdmUgdG8gd29yayBhcm91bmQgaXQKKyAgICAgICAgaW50W10gc2NyaXB0cyA9IFVTY3JpcHQuZ2V0Q29kZShsb2MpOworICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVTZXQoKQorICAgICAgICAgICAgLmFwcGx5SW50UHJvcGVydHlWYWx1ZShVUHJvcGVydHkuU0NSSVBULCBzY3JpcHRzID09IG51bGwgPyBVU2NyaXB0LkxBVElOIDogc2NyaXB0c1swXSkKKyAgICAgICAgICAgIC5yZXRhaW5BbGwoUlRMKS5zaXplKCkgIT0gMDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgdGVzdElzUlRMKCkgeworICAgICAgICBMb2NhbGVbXSBsb2NhbGVzID0gTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgU2V0IHMgPSBuZXcgVHJlZVNldCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHMuYWRkKChpc1JUTChsb2NhbGVzW2ldKSA/ICJSICIgOiAiTCAiKSArIGxvY2FsZXNbaV0uZ2V0RGlzcGxheU5hbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgSXRlcmF0b3IgaXQgPSBzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihpdC5uZXh0KCkpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIFRyYW5zbGl0ZXJhdG9yIHRvSFRNTCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygKKyAgICAgICAgImFueS1odG1sIiwgICAgICAgIAorICAgICAgICAgICAgIic8JyA+ICcmbHQ7JyA7IiArCisgICAgICAgICAgICAiJyYnID4gJyZhbXA7JyA7IiArCisgICAgICAgICAgICAiJz4nID4gJyZndDsnIDsiICsKKyAgICAgICAgICAgICInXCInID4gJyZxdW90OycgOyAiLAorICAgICAgICBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKTsKKyAgICBzdGF0aWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgZnJvbUhUTUwgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoCisgICAgICAgICJodG1sLWFueSIsICAgICAgICAKKyAgICAgICAgICAgICInPCcgPCAnJidbbExdW1R0XSc7JyA7IiArCisgICAgICAgICAgICAiJyYnIDwgJyYnW2FBXVttTV1bcFBdJzsnIDsiICsKKyAgICAgICAgICAgICInPicgPCAnJidbZ0ddW3RUXSc7JyA7IiArCisgICAgICAgICAgICAiJ1wiJyA8ICcmJ1txUV1bdVVdW29PXVt0VF0nOycgOyAiLAorICAgICAgICBUcmFuc2xpdGVyYXRvci5SRVZFUlNFKTsKKyAgICAgICAgCisgICAgc3RhdGljIHZvaWQgY2hlY2tIVE1MKCkgeworICAgICAgICBTdHJpbmcgZm9vID0gIiYgbiA8IGIgPCBcImFiXCIiOworICAgICAgICBTdHJpbmcgZmlpID0gdG9IVE1MLnRyYW5zbGl0ZXJhdGUoZm9vKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJpbjogIiArIGZvbyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigib3V0OiAiICsgZmlpKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJpbio6ICIgKyBmcm9tSFRNTC50cmFuc2xpdGVyYXRlKGZpaSkpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIklOKjogIiArIGZyb21IVE1MLnRyYW5zbGl0ZXJhdGUoZmlpLnRvVXBwZXJDYXNlKCkpKTsKKyAgICB9CisgICAgLyoKKyAgICBzdGF0aWMgdm9pZCBzaG93TmFtZXMoU3RyaW5nIHByb3BBbGlhcywgYm9vbGVhbiBtYXRjaGVzKSB7CisgICAgICAgIEJhZ0Zvcm1hdHRlciBiZiA9IG5ldyBCYWdGb3JtYXR0ZXIoKTsKKyAgICAgICAgVW5pY29kZVNldCBzdHVmZjsKKyAgICAgICAgc3R1ZmYgPSBuZXcgVW5pY29kZVByb3BlcnR5U291cmNlLklDVSgpCisgICAgICAgICAgICAuc2V0UHJvcGVydHlBbGlhcyhwcm9wQWxpYXMpCisgICAgICAgICAgICAuZ2V0UHJvcGVydHlTZXQobWF0Y2hlcywgbnVsbCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihiZi5zaG93U2V0TmFtZXMocHJvcEFsaWFzICsgIiB3aXRoICIgKyBtYXRjaGVzLCBzdHVmZikpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCBzaG93TmFtZXMoU3RyaW5nIHByb3BBbGlhcywgU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgQmFnRm9ybWF0dGVyIGJmID0gbmV3IEJhZ0Zvcm1hdHRlcigpOworICAgICAgICBVbmljb2RlU2V0IHN0dWZmOworICAgICAgICBzdHVmZiA9IG5ldyBVbmljb2RlUHJvcGVydHlTb3VyY2UuSUNVKCkKKyAgICAgICAgICAgIC5zZXRQcm9wZXJ0eUFsaWFzKHByb3BBbGlhcykKKyAgICAgICAgICAgIC5nZXRQcm9wZXJ0eVNldChQYXR0ZXJuLmNvbXBpbGUocGF0dGVybikubWF0Y2hlcigiIiksIG51bGwpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oYmYuc2hvd1NldE5hbWVzKHByb3BBbGlhcyArICJ3aXRoICIgKyBwYXR0ZXJuLCBzdHVmZikpOworICAgIH0KKyAgICAqLworfQorLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3REYXRhX2VuLmpwcCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3REYXRhX2VuLmpwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTJmOTgzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdERhdGFfZW4uanBwCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMaXN0UmVzb3VyY2VCdW5kbGU7CisvKgorICogRWNsaXBzZSBleHBlY3RzIHRoZSBqYXZhIGZpbGVzIGluIGEgcGFja2FnZS1saWtlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgdG8gaGF2ZSBhIHBhY2thZ2UgZGVjbGFyYXRpb24gYXQgdGhlIHRvcCBvZiB0aGUgZmlsZS4KKyAqIFRvIGZvb2wgRWNsaXBzZSB0aGlzIGZpbGUgaGFzIGFuICJqcHAiIGV4dGVuc2lvbi4gVGhlIGFudCBidWlsZCBzY3JpcHQgY29waWVzIHRoaXMgZmlsZSB0byB0aGUgZGVmYXVsdCBwYWNrYWdlIGFuZCByZW5hbWVzIGl0CisgKiBiZWZvcmUgYnVpbGRpbmcuCisgKi8gCisvKioKKyAqIEBhdXRob3IgcmFtCisgKi8KKworcHVibGljIGNsYXNzIFRlc3REYXRhX2VuIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBwdWJsaWMgVGVzdERhdGFfZW4oKSB7CisgICAgICAgIAorICB9CisgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdW10gZGF0YSA9IG5ldyBPYmplY3RbXVtdIHsgCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICJhYWEiLAorICAgICAgICAgICAgICAgICAidGVzdGNpcmN1bGFyYWxpYXMvYWFiIiwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgImFhYiIsCisgICAgICAgICAgICAgICAgICAidGVzdGNpcmN1bGFyYWxpYXMvYWFjIiwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgImFhYyIsCisgICAgICAgICAgICAgICAgICAidGVzdGNpcmN1bGFyYWxpYXMvYWFhIiwKKyAgICAgICAgICAgICAgfSAKKyAgfTsKKyAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKXsKKyAgICAgIHJldHVybiBkYXRhOworICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0RGVmYXVsdFBhY2thZ2VMb2FkaW5nLmpwcCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rlc3REZWZhdWx0UGFja2FnZUxvYWRpbmcuanBwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzMTJkZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0RGVmYXVsdFBhY2thZ2VMb2FkaW5nLmpwcApAQCAtMCwwICsxLDU4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CisvKgorICogRWNsaXBzZSBleHBlY3RzIHRoZSBqYXZhIGZpbGVzIGluIGEgcGFja2FnZS1saWtlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgdG8gaGF2ZSBhIHBhY2thZ2UgZGVjbGFyYXRpb24gYXQgdGhlIHRvcCBvZiB0aGUgZmlsZS4KKyAqIFRvIGZvb2wgRWNsaXBzZSB0aGlzIGZpbGUgaGFzIGFuICJqcHAiIGV4dGVuc2lvbi4gVGhlIGFudCBidWlsZCBzY3JpcHQgY29waWVzIHRoaXMgZmlsZSB0byB0aGUgZGVmYXVsdCBwYWNrYWdlIGFuZCByZW5hbWVzIGl0CisgKiBiZWZvcmUgYnVpbGRpbmcuCisgKi8gCisvKioKKyAqIEBhdXRob3IgcmFtCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0RGVmYXVsdFBhY2thZ2VMb2FkaW5nIGV4dGVuZHMgVGVzdEZtd2t7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncyl7CisgICAgICAgIG5ldyBUZXN0RGVmYXVsdFBhY2thZ2VMb2FkaW5nKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0UmVzb3VyY2VCdW5kbGVMb2FkaW5nKCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoIlRlc3REYXRhIiwgImVuIik7CisgICAgICAgICAgICBTdHJpbmcgYWFhID0gYnVuZGxlLmdldFN0cmluZygiYWFhIik7CisgICAgICAgICAgICBpZighYWFhLmVxdWFscygidGVzdGNpcmN1bGFyYWxpYXMvYWFiIikpeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgZGF0YSIpOworICAgICAgICAgICAgfQorICAgICAgICB9Y2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICBlcnJsbigiY291bGQgbm90IGxvYWQgZGF0YSAiK2V4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFJlc0ZpbGVMb2FkaW5nKCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoIiIsICJ0ZSIpOworICAgICAgICAgICAgU3RyaW5nIGFhYSA9IGJ1bmRsZS5nZXRTdHJpbmcoInN0cmluZ19vbmx5X2luX3RlIik7CisgICAgICAgICAgICBpZighYWFhLmVxdWFscygiVEUiKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBkYXRhIik7CisgICAgICAgICAgICB9CisgICAgICAgIH1jYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgIGVycmxuKCJjb3VsZCBub3QgbG9hZCBkYXRhICIrZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0SkIzNzY3KCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImNvbS5pYm0uaWN1LmRldi5kYXRhLlRlc3REYXRhIiwgImJnZSIpOworICAgICAgICAgICAgU3RyaW5nIGFhYSA9IGJ1bmRsZS5nZXRTdHJpbmcoInN0cmluZ19vbmx5X2luX3RlIik7CisgICAgICAgICAgICBpZighYWFhLmVxdWFscygiVEUiKSl7CisgICAgICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBkYXRhIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2dsbigiR290IDogIiArIGJ1bmRsZS5nZXRVTG9jYWxlKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgfWNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgZXJybG4oImNvdWxkIG5vdCBsb2FkIGRhdGEgIitleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdFV0aWxpdGllcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGVzdFV0aWxpdGllcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3N2UzZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UZXN0VXRpbGl0aWVzLmphdmEKQEAgLTAsMCArMSw0NzAgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisvLyNpZm5kZWYgRk9VTkRBVElPTgorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgamF2YS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlJhbmRvbTsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5Tb3J0ZWRTZXQ7CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Qm9pbGVycGxhdGU7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Db2xsZWN0aW9uVXRpbGl0aWVzOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCitwdWJsaWMgY2xhc3MgVGVzdFV0aWxpdGllcyBleHRlbmRzIFRlc3RGbXdrIHsKKyAgICBzdGF0aWMgZmluYWwgaW50IExJTUlUID0gMHgxNTsgLy8gbGltaXQgdG8gbWFrZSB0ZXN0aW5nIG1vcmUgcmVhbGlzdGljIGluIHRlcm1zIG9mIGNvbGxpc2lvbnMKKyAgICBzdGF0aWMgZmluYWwgaW50IElURVJBVElPTlMgPSAxMDAwMDAwOworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIFNIT1dfUFJPR1JFU1MgPSBmYWxzZTsKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVGVzdFV0aWxpdGllcygpLnJ1bihhcmdzKTsKKyAgICB9CisgICAgCisgICAgVW5pY29kZU1hcCBtYXAxID0gbmV3IFVuaWNvZGVNYXAoKTsKKyAgICBNYXAgbWFwMiA9IG5ldyBIYXNoTWFwKCk7CisgICAgTWFwIG1hcDMgPSBuZXcgVHJlZU1hcCgpOworICAgIFNvcnRlZFNldCBsb2cgPSBuZXcgVHJlZVNldCgpOworICAgIHN0YXRpYyBTdHJpbmdbXSBURVNUX1ZBTFVFUyA9IHtudWxsLCAiQSIsICJCIiwgIkMiLCAiRCIsICJFIiwgIkYifTsKKyAgICBzdGF0aWMgUmFuZG9tIHJhbmRvbSA9IG5ldyBSYW5kb20oMTIzNDUpOworICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RVbmljb2RlTWFwKCkgeworICAgICAgICByYW5kb20uc2V0U2VlZCgxMjM0NSk7CisgICAgICAgIC8vIGRvIHJhbmRvbSBjaGFuZ2UgdG8gYm90aCwgdGhlbiBjb21wYXJlCisgICAgICAgIGxvZ2xuKCJDb21wYXJpbmcgYWdhaW5zdCBIYXNoTWFwIik7CisgICAgICAgIGZvciAoaW50IGNvdW50ZXIgPSAwOyBjb3VudGVyIDwgSVRFUkFUSU9OUzsgKytjb3VudGVyKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSByYW5kb20ubmV4dEludChMSU1JVCk7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBURVNUX1ZBTFVFU1tyYW5kb20ubmV4dEludChURVNUX1ZBTFVFUy5sZW5ndGgpXTsKKyAgICAgICAgICAgIFN0cmluZyBsb2dsaW5lID0gVXRpbGl0eS5oZXgoc3RhcnQpICsgIlx0IiArIHZhbHVlOworICAgICAgICAgICAgaWYgKFNIT1dfUFJPR1JFU1MpIGxvZ2xuKGNvdW50ZXIgKyAiXHQiICsgbG9nbGluZSk7CisgICAgICAgICAgICBsb2cuYWRkKGxvZ2xpbmUpOworICAgICAgICAgICAgaWYgKERFQlVHICYmIGNvdW50ZXIgPT0gMTQ0KSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgZGVidWciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1hcDEucHV0KHN0YXJ0LCB2YWx1ZSk7CisgICAgICAgICAgICBtYXAyLnB1dChuZXcgSW50ZWdlcihzdGFydCksIHZhbHVlKTsKKyAgICAgICAgICAgIGNoZWNrKGNvdW50ZXIpOworICAgICAgICB9CisgICAgICAgIGNoZWNrTmV4dChMSU1JVCk7CisgICAgICAgIAorICAgICAgICBsb2dsbigiU2V0dGluZyBHZW5lcmFsIENhdGVnb3J5Iik7CisgICAgICAgIG1hcDEgPSBuZXcgVW5pY29kZU1hcCgpOworICAgICAgICBtYXAyID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgZm9yIChpbnQgY3AgPSAwOyBjcCA8PSBTRVRfTElNSVQ7ICsrY3ApIHsKKyAgICAgICAgICAgICAgaW50IGVudW1WYWx1ZSA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjcCwgcHJvcEVudW0pOworICAgICAgICAgICAgICAvL2lmIChlbnVtVmFsdWUgPD0gMCkgY29udGludWU7IC8vIGZvciBzbWFsbGVyIHNldAorICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BFbnVtLGVudW1WYWx1ZSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyk7CisgICAgICAgICAgICAgIG1hcDEucHV0KGNwLCB2YWx1ZSk7CisgICAgICAgICAgICAgIG1hcDIucHV0KG5ldyBJbnRlZ2VyKGNwKSwgdmFsdWUpOworICAgICAgICB9ICAgICAgIAorICAgICAgICBjaGVja05leHQoSW50ZWdlci5NQVhfVkFMVUUpOworCisKKyAgICAgICAgbG9nbG4oIkNvbXBhcmluZyBHZW5lcmFsIENhdGVnb3J5Iik7CisgICAgICAgIGNoZWNrKC0xKTsKKyAgICAgICAgbG9nbG4oIkNvbXBhcmluZyBWYWx1ZXMiKTsKKyAgICAgICAgU2V0IHZhbHVlczEgPSAoU2V0KSBtYXAxLmdldEF2YWlsYWJsZVZhbHVlcyhuZXcgVHJlZVNldCgpKTsKKyAgICAgICAgU2V0IHZhbHVlczIgPSBuZXcgVHJlZVNldChtYXAyLnZhbHVlcygpKTsKKyAgICAgICAgU2V0IHRlbXA7CisgICAgICAgIGlmICghVGVzdEJvaWxlcnBsYXRlLnZlcmlmeVNldHNJZGVudGljYWwodGhpcywgdmFsdWVzMSwgdmFsdWVzMikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkhhbHRpbmciKTsKKyAgICAgICAgfQorICAgICAgICBsb2dsbigiQ29tcGFyaW5nIFNldHMiKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IHZhbHVlczEuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gaXQubmV4dCgpOworICAgICAgICAgICAgbG9nbG4odmFsdWUgPT0gbnVsbCA/ICJudWxsIiA6IHZhbHVlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgVW5pY29kZVNldCBzZXQxID0gbWFwMS5nZXRTZXQodmFsdWUpOworICAgICAgICAgICAgVW5pY29kZVNldCBzZXQyID0gVGVzdEJvaWxlcnBsYXRlLmdldFNldChtYXAyLCB2YWx1ZSk7CisgICAgICAgICAgICBpZiAoIVRlc3RCb2lsZXJwbGF0ZS52ZXJpZnlTZXRzSWRlbnRpY2FsKHRoaXMsIHNldDEsIHNldDIpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSGFsdGluZyIpOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICAKKyAgICAgICAgbG9nbG4oIkdldHRpbmcgU2NyaXB0cyIpOworICAgICAgICBVbmljb2RlTWFwIHNjcmlwdHMgPSBJQ1VQcm9wZXJ0eUZhY3RvcnkubWFrZSgpLmdldFByb3BlcnR5KCJzY3JpcHQiKS5nZXRVbmljb2RlTWFwX2ludGVybmFsKCk7CisgICAgICAgIFVuaWNvZGVNYXAuQ29tcG9zZXIgY29tcG9zZXIgPSBuZXcgVW5pY29kZU1hcC5Db21wb3NlcigpIHsKKwkJCXB1YmxpYyBPYmplY3QgY29tcG9zZShpbnQgY29kZVBvaW50LCBPYmplY3QgYSwgT2JqZWN0IGIpIHsKKwkJCQlyZXR1cm4gYS50b1N0cmluZygpICsgIl8iICsgYi50b1N0cmluZygpOworCQkJfSAgICAgICAJCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBsb2dsbigiVHJ5aW5nIENvbXBvc2UiKTsKKyAgICAgICAgVW5pY29kZU1hcCBjb21wb3NlZCA9ICgoVW5pY29kZU1hcClzY3JpcHRzLmNsb25lQXNUaGF3ZWQoKSkuY29tcG9zZVdpdGgobWFwMSwgY29tcG9zZXIpOworICAgICAgICBPYmplY3QgbGFzdCA9ICIiOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgCU9iamVjdCBjb21wID0gY29tcG9zZWQuZ2V0VmFsdWUoaSk7CisgICAgICAgIAlPYmplY3QgZ2MgPSBtYXAxLmdldFZhbHVlKGkpOworICAgICAgICAJT2JqZWN0IHNjID0gc2NyaXB0cy5nZXRWYWx1ZShpKTsKKyAgICAgICAgCWlmICghY29tcC5lcXVhbHMoY29tcG9zZXIuY29tcG9zZShpLCBnYywgc2MpKSkgeworICAgICAgICAJCWVycmxuKCJGYWlsZWQgY29tcG9zZSBhdDogIiArIGkpOworICAgICAgICAJfQorICAgICAgICAJaWYgKCFsYXN0LmVxdWFscyhjb21wKSkgeworICAgICAgICAJCWxvZ2xuKFV0aWxpdHkuaGV4KGkpICsgIlx0IiArIGNvbXApOworICAgICAgICAJCWxhc3QgPSBjb21wOworICAgICAgICAJfQorICAgICAgICB9CisKKyAgICAgICAgLy8gY2hlY2sgYm9pbGVycGxhdGUKKyAgICAgICAgTGlzdCBhcmdMaXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBhcmdMaXN0LmFkZCgiVGVzdE1haW4iKTsKKyAgICAgICAgaWYgKHBhcmFtcy5ub3Rocm93KSBhcmdMaXN0LmFkZCgiLW5vdGhyb3ciKTsKKyAgICAgICAgaWYgKHBhcmFtcy52ZXJib3NlKSBhcmdMaXN0LmFkZCgiLXZlcmJvc2UiKTsKKyAgICAgICAgU3RyaW5nW10gYXJncyA9IG5ldyBTdHJpbmdbYXJnTGlzdC5zaXplKCldOworICAgICAgICBhcmdMaXN0LnRvQXJyYXkoYXJncyk7CisgICAgICAgIG5ldyBVbmljb2RlTWFwQm9pbGVycGxhdGUoKS5ydW4oYXJncyk7CisgICAgICAgICAvLyBUT0RPOiB0aGUgZm9sbG93aW5nIGlzIG5vdCBiZWluZyByZWFjaGVkCisgICAgICAgIG5ldyBVbmljb2RlU2V0Qm9pbGVycGxhdGUoKS5ydW4oYXJncyk7ICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29sbGVjdGlvblV0aWxpdHlTcGVlZCgpIHsKKyAgICAgICAgSGFzaFNldCBoczEgPSBuZXcgSGFzaFNldCgpOworICAgICAgICBIYXNoU2V0IGhzMiA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgIGludCBzaXplID0gMTAwMDAwOworICAgICAgICBpbnQgaXRlcmF0aW9ucyA9IDEwMDsKKyAgICAgICAgU3RyaW5nIHByZWZpeCA9ICJhYmNkZSI7CisgICAgICAgIFN0cmluZyBwb3N0Zml4ID0gImFiY2RlIjsKKyAgICAgICAgaW50IHN0YXJ0MSA9IDA7IC8vIDEgZm9yIHNvbWUsIDAgZm9yIGFsbAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKz0gMikgaHMxLmFkZChwcmVmaXggKyBTdHJpbmcudmFsdWVPZihpKSArIHBvc3RmaXgpOworICAgICAgICBmb3IgKGludCBpID0gc3RhcnQxOyBpIDwgc2l6ZTsgaSArPSAyKSBoczIuYWRkKHByZWZpeCArIFN0cmluZy52YWx1ZU9mKGkpICsgcG9zdGZpeCk7CisgICAgICAgIFRyZWVTZXQgdHMxID0gbmV3IFRyZWVTZXQoaHMxKTsKKyAgICAgICAgVHJlZVNldCB0czIgPSBuZXcgVHJlZVNldChoczIpOworICAgICAgICBDb2xsZWN0aW9uVXRpbGl0aWVzLmNvbnRhaW5zQWxsKGhzMSwgaHMyKTsKKyAgICAgICAgQ29sbGVjdGlvblV0aWxpdGllcy5jb250YWluc0FsbCh0czEsIHRzMik7CisgICAgICAgIGxvbmcgc3RhcnQsIGVuZDsKKyAgICAgICAgYm9vbGVhbiB0ZW1wID0gZmFsc2U7CisgICAgICAgIHN0YXJ0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcmF0aW9uczsgKytpKSB0ZW1wID0gQ29sbGVjdGlvblV0aWxpdGllcy5jb250YWluc0FsbChoczEsIGhzMik7CisgICAgICAgIGVuZCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBsb2dsbih0ZW1wICsgIiAiICsgKGVuZCAtIHN0YXJ0KS8xMDAwLjApOworICAgICAgICBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgdGVtcCA9IENvbGxlY3Rpb25VdGlsaXRpZXMuY29udGFpbnNBbGwodHMxLCB0czIpOworICAgICAgICBlbmQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgbG9nbG4odGVtcCArICIgIiArIChlbmQgLSBzdGFydCkvMTAwMC4wKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdENvbGxlY3Rpb25VdGlsaXRpZXMoKSB7CisJCVN0cmluZ1tdW10gdGVzdCA9IHt7ImEiLCAiYyIsICJlIiwgImciLCAiaCIsICJ6In0sIHsiYiIsICJkIiwgImYiLCAiaCIsICJ3In0sIHsgImEiLCAiYiIgfSwgeyAiYSIsICJkIiB9LCB7ImQifSwge319OyAvLyAKKyAgICAgICAgaW50IHJlc3VsdE1hc2sgPSAwOworCQlmb3IgKGludCBpID0gMDsgaSA8IHRlc3QubGVuZ3RoOyArK2kpIHsKKwkJCUNvbGxlY3Rpb24gYSA9IG5ldyBUcmVlU2V0KEFycmF5cy5hc0xpc3QodGVzdFtpXSkpOworCQkJZm9yIChpbnQgaiA9IDA7IGogPCB0ZXN0Lmxlbmd0aDsgKytqKSB7CisJCQkJQ29sbGVjdGlvbiBiID0gbmV3IFRyZWVTZXQoQXJyYXlzLmFzTGlzdCh0ZXN0W2pdKSk7CisJCQkJaW50IHJlbGF0aW9uID0gQ29sbGVjdGlvblV0aWxpdGllcy5nZXRDb250YWlubWVudFJlbGF0aW9uKGEsIGIpOworICAgICAgICAgICAgICAgIHJlc3VsdE1hc2sgfD0gKDEgPDwgcmVsYXRpb24pOworCQkJCXN3aXRjaCAocmVsYXRpb24pIHsKKwkJCQljYXNlIENvbGxlY3Rpb25VdGlsaXRpZXMuQUxMX0VNUFRZOgorCQkJCQljaGVja0NvbnRhaW5tZW50KGEuc2l6ZSgpID09IDAgJiYgYi5zaXplKCkgPT0gMCwgYSwgcmVsYXRpb24sIGIpOworCQkJCQlicmVhazsKKwkJCQljYXNlIENvbGxlY3Rpb25VdGlsaXRpZXMuTk9UX0FfU1VQRVJTRVRfQjoKKwkJCQkJY2hlY2tDb250YWlubWVudChhLnNpemUoKSA9PSAwICYmIGIuc2l6ZSgpICE9IDAsIGEsIHJlbGF0aW9uLCBiKTsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBDb2xsZWN0aW9uVXRpbGl0aWVzLk5PVF9BX0RJU0pPSU5UX0I6CisJCQkJCWNoZWNrQ29udGFpbm1lbnQoYS5lcXVhbHMoYikgJiYgYS5zaXplKCkgIT0gMCwgYSwgcmVsYXRpb24sIGIpOworCQkJCQlicmVhazsKKwkJCQljYXNlIENvbGxlY3Rpb25VdGlsaXRpZXMuTk9UX0FfU1VCU0VUX0I6CisJCQkJCWNoZWNrQ29udGFpbm1lbnQoYS5zaXplKCkgIT0gMCAmJiBiLnNpemUoKSA9PSAwLCBhLCByZWxhdGlvbiwgYik7CisJCQkJCWJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ29sbGVjdGlvblV0aWxpdGllcy5BX1BST1BFUl9TVUJTRVRfT0ZfQjoKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tDb250YWlubWVudChiLmNvbnRhaW5zQWxsKGEpICYmICFhLmVxdWFscyhiKSwgYSwgcmVsYXRpb24sIGIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENvbGxlY3Rpb25VdGlsaXRpZXMuTk9UX0FfRVFVQUxTX0I6CisgICAgICAgICAgICAgICAgICAgIGNoZWNrQ29udGFpbm1lbnQoIUNvbGxlY3Rpb25VdGlsaXRpZXMuY29udGFpbnNTb21lKGEsIGIpICYmIGEuc2l6ZSgpICE9IDAgJiYgYi5zaXplKCkgIT0gMCwgYSwgcmVsYXRpb24sIGIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENvbGxlY3Rpb25VdGlsaXRpZXMuQV9QUk9QRVJfU1VQRVJTRVRfQjoKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tDb250YWlubWVudChhLmNvbnRhaW5zQWxsKGIpICYmICFhLmVxdWFscyhiKSwgYSwgcmVsYXRpb24sIGIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ29sbGVjdGlvblV0aWxpdGllcy5BX1BST1BFUl9PVkVSTEFQU19COgorICAgICAgICAgICAgICAgICAgICBjaGVja0NvbnRhaW5tZW50KCFiLmNvbnRhaW5zQWxsKGEpICYmICFhLmNvbnRhaW5zQWxsKGIpICYmIENvbGxlY3Rpb25VdGlsaXRpZXMuY29udGFpbnNTb21lKGEsIGIpLCBhLCByZWxhdGlvbiwgYik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisJCQkJfQorCQkJfQorCQl9CisgICAgICAgIGlmIChyZXN1bHRNYXNrICE9IDB4RkYpIHsKKyAgICAgICAgICAgIFN0cmluZyBtaXNzaW5nID0gIiI7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDg7ICsraSkgeworICAgICAgICAgICAgCWlmICgocmVzdWx0TWFzayAmICgxIDw8IGkpKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtaXNzaW5nLmxlbmd0aCgpICE9IDApIG1pc3NpbmcgKz0gIiwgIjsKKyAgICAgICAgICAgICAgICAgICAgbWlzc2luZyArPSBSZWxhdGlvbk5hbWVbaV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZXJybG4oIk5vdCBhbGwgQ29udGFpbm1lbnRSZWxhdGlvbnMgY2hlY2tlZDogIiArIG1pc3NpbmcpOworICAgICAgICB9CisJfQorCisgICAgc3RhdGljIGZpbmFsIFN0cmluZ1tdIFJlbGF0aW9uTmFtZSA9IHsiQUxMX0VNUFRZIiwKKyAgICAJCSJOT1RfQV9TVVBFUlNFVF9CIiwKKyAgICAgICAgICAgICJOT1RfQV9ESVNKT0lOVF9CIiwKKyAgICAgICAgICAgICJOT1RfQV9TVUJTRVRfQiIsCisgICAgICAgICAgICAiQV9QUk9QRVJfU1VCU0VUX09GX0IiLAorICAgICAgICAgICAgIkFfUFJPUEVSX0RJU0pPSU5UX0IiLAorICAgICAgICAgICAgIkFfUFJPUEVSX1NVUEVSU0VUX0IiLAorICAgICAgICAgICAgIkFfUFJPUEVSX09WRVJMQVBTX0IifTsKKworICAgIC8qKgorCSAqICAKKwkgKi8KKwlwcml2YXRlIHZvaWQgY2hlY2tDb250YWlubWVudChib29sZWFuIGMsIENvbGxlY3Rpb24gYSwgaW50IHJlbGF0aW9uLCBDb2xsZWN0aW9uIGIpIHsKKwkJaWYgKCFjKSB7CisJCQllcnJsbigiRmFpbHMgcmVsYXRpb246ICIgKyBhICsgIiBcdCIgKyBSZWxhdGlvbk5hbWVbcmVsYXRpb25dICsgIiBcdCIgKyBiKTsKKyAgICAgICAgfQkJCisJfQorCisJcHJpdmF0ZSB2b2lkIGNoZWNrTmV4dChpbnQgbGltaXQpIHsKKyAgICAgICAgbG9nbG4oIkNvbXBhcmluZyBuZXh0UmFuZ2UiKTsKKyAgICAgICAgVW5pY29kZU1hcC5NYXBJdGVyYXRvciBtaSA9IG5ldyBVbmljb2RlTWFwLk1hcEl0ZXJhdG9yKG1hcDEpOworICAgICAgICBNYXAgbWFwMyA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIHdoaWxlIChtaS5uZXh0UmFuZ2UoKSkgeworICAgICAgICAgICAgbG9nbG4oVXRpbGl0eS5oZXgobWkuY29kZXBvaW50KSArICIuLiIgKyBVdGlsaXR5LmhleChtaS5jb2RlcG9pbnRFbmQpICsgIiA9PiAiICsgbWkudmFsdWUpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IG1pLmNvZGVwb2ludDsgaSA8PSBtaS5jb2RlcG9pbnRFbmQ7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpID49IGxpbWl0KSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBtYXAzLnB1dChuZXcgSW50ZWdlcihpKSwgbWkudmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNoZWNrTWFwKG1hcDIsIG1hcDMpOworICAgICAgICAKKyAgICAgICAgbG9nbG4oIkNvbXBhcmluZyBuZXh0Iik7CisgICAgICAgIG1pLnJlc2V0KCk7CisgICAgICAgIG1hcDMgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICBPYmplY3QgbGFzdFZhbHVlID0gbmV3IE9iamVjdCgpOworICAgICAgICB3aGlsZSAobWkubmV4dCgpKSB7CisgICAgICAgICAgICBpZiAoIVVuaWNvZGVNYXAuYXJlRXF1YWwobGFzdFZhbHVlLCBtaS52YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oIkNoYW5nZTogIiArIFV0aWxpdHkuaGV4KG1pLmNvZGVwb2ludCkgKyAiID0+ICIgKyBtaS52YWx1ZSk7CisgICAgICAgICAgICAgICAgbGFzdFZhbHVlID0gbWkudmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobWkuY29kZXBvaW50ID49IGxpbWl0KSBjb250aW51ZTsKKyAgICAgICAgICAgIG1hcDMucHV0KG5ldyBJbnRlZ2VyKG1pLmNvZGVwb2ludCksIG1pLnZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBjaGVja01hcChtYXAyLCBtYXAzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgY2hlY2soaW50IGNvdW50ZXIpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBMSU1JVDsgKytpKSB7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUxID0gbWFwMS5nZXRWYWx1ZShpKTsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZTIgPSBtYXAyLmdldChuZXcgSW50ZWdlcihpKSk7CisgICAgICAgICAgICBpZiAoIVVuaWNvZGVNYXAuYXJlRXF1YWwodmFsdWUxLCB2YWx1ZTIpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oY291bnRlciArICIgRGlmZmVyZW5jZSBhdCAiICsgVXRpbGl0eS5oZXgoaSkKKyAgICAgICAgICAgICAgICAgICAgICsgIlx0IFVuaWNvZGVNYXA6ICIgKyB2YWx1ZTEKKyAgICAgICAgICAgICAgICAgICAgICsgIlx0IEhhc2hNYXA6ICIgKyB2YWx1ZTIpOworICAgICAgICAgICAgICAgIGVycmxuKCJVbmljb2RlTWFwOiAiICsgbWFwMSk7CisgICAgICAgICAgICAgICAgZXJybG4oIkxvZzogIiArIFRlc3RCb2lsZXJwbGF0ZS5zaG93KGxvZykpOworICAgICAgICAgICAgICAgIGVycmxuKCJIYXNoTWFwOiAiICsgVGVzdEJvaWxlcnBsYXRlLnNob3cobWFwMikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZvaWQgY2hlY2tNYXAoTWFwIG0xLCBNYXAgbTIpIHsKKyAgICAgICAgaWYgKG0xLmVxdWFscyhtMikpIHJldHVybjsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU2V0IG0xZW50cmllcyA9IG0xLmVudHJ5U2V0KCk7CisgICAgICAgIFNldCBtMmVudHJpZXMgPSBtMi5lbnRyeVNldCgpOworICAgICAgICBnZXRFbnRyaWVzKCJcclxuSW4gRmlyc3QsIGFuZCBub3QgU2Vjb25kIiwgbTFlbnRyaWVzLCBtMmVudHJpZXMsIGJ1ZmZlciwgMjApOworICAgICAgICBnZXRFbnRyaWVzKCJcclxuSW4gU2Vjb25kLCBhbmQgbm90IEZpcnN0IiwgbTJlbnRyaWVzLCBtMWVudHJpZXMsIGJ1ZmZlciwgMjApOworICAgICAgICBlcnJsbihidWZmZXIudG9TdHJpbmcoKSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBDb21wYXJhdG9yIEVOVFJZX0NPTVBBUkFUT1IgPSBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBvMSwgT2JqZWN0IG8yKSB7CisgICAgICAgICAgICBpZiAobzEgPT0gbzIpIHJldHVybiAwOworICAgICAgICAgICAgaWYgKG8xID09IG51bGwpIHJldHVybiAtMTsKKyAgICAgICAgICAgIGlmIChvMiA9PSBudWxsKSByZXR1cm4gMTsKKyAgICAgICAgICAgIE1hcC5FbnRyeSBhID0gKE1hcC5FbnRyeSkgbzE7CisgICAgICAgICAgICBNYXAuRW50cnkgYiA9IChNYXAuRW50cnkpIG8yOworICAgICAgICAgICAgaW50IHJlc3VsdCA9IGNvbXBhcmUyKGEuZ2V0S2V5KCksIGIuZ2V0S2V5KCkpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmUyKGEuZ2V0VmFsdWUoKSwgYi5nZXRWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIGludCBjb21wYXJlMihPYmplY3QgbzEsIE9iamVjdCBvMikgeworICAgICAgICAgICAgaWYgKG8xID09IG8yKSByZXR1cm4gMDsKKyAgICAgICAgICAgIGlmIChvMSA9PSBudWxsKSByZXR1cm4gLTE7CisgICAgICAgICAgICBpZiAobzIgPT0gbnVsbCkgcmV0dXJuIDE7CisgICAgICAgICAgICByZXR1cm4gKChDb21wYXJhYmxlKW8xKS5jb21wYXJlVG8obzIpOworICAgICAgICB9CisgICAgfTsKKworICAgIHByaXZhdGUgdm9pZCBnZXRFbnRyaWVzKFN0cmluZyB0aXRsZSwgU2V0IG0xZW50cmllcywgU2V0IG0yZW50cmllcywgU3RyaW5nQnVmZmVyIGJ1ZmZlciwgaW50IGxpbWl0KSB7CisgICAgICAgIFNldCBtMV9tMiA9IG5ldyBUcmVlU2V0KEVOVFJZX0NPTVBBUkFUT1IpOworICAgICAgICBtMV9tMi5hZGRBbGwobTFlbnRyaWVzKTsKKyAgICAgICAgbTFfbTIucmVtb3ZlQWxsKG0yZW50cmllcyk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQodGl0bGUgKyAiOiAiICsgbTFfbTIuc2l6ZSgpICsgIlxyXG4iKTsKKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IG0xX20yLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIGlmIChsaW1pdC0tIDwgMCkgcmV0dXJuOworICAgICAgICAgICAgTWFwLkVudHJ5IGVudHJ5ID0gKE1hcC5FbnRyeSkgaXQubmV4dCgpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChlbnRyeS5nZXRLZXkoKSkuYXBwZW5kKCIgPT4gIikKKyAgICAgICAgICAgICAuYXBwZW5kKGVudHJ5LmdldFZhbHVlKCkpLmFwcGVuZCgiXHJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgU0VUX0xJTUlUID0gMHgxMEZGRkY7CisgICAgc3RhdGljIGZpbmFsIGludCBDSEVDS19MSU1JVCA9IDB4RkZGRjsKKyAgICBzdGF0aWMgZmluYWwgTnVtYmVyRm9ybWF0IHBmID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZSgpOworICAgIHN0YXRpYyBmaW5hbCBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0VGltZSgpIHsKKyAgICAgICAgZG91YmxlIGhhc2hUaW1lLCB1bVRpbWUsIGljdVRpbWUsIHRyZWVUaW1lOworICAgICAgICB1bVRpbWUgPSBjaGVja1NldFRpbWUoMjAsIDApOworICAgICAgICBoYXNoVGltZSA9IGNoZWNrU2V0VGltZSgyMCwgMSk7CisgICAgICAgIGxvZ2xuKCJQZXJjZW50YWdlOiAiICsgcGYuZm9ybWF0KGhhc2hUaW1lL3VtVGltZSkpOworICAgICAgICB0cmVlVGltZSA9IGNoZWNrU2V0VGltZSgyMCwgMyk7CisgICAgICAgIGxvZ2xuKCJQZXJjZW50YWdlOiAiICsgcGYuZm9ybWF0KHRyZWVUaW1lL3VtVGltZSkpOworICAgICAgICAvL2xvZ2xuKG1hcDEudG9TdHJpbmcoKSk7CisgICAgICAgIAorICAgICAgICB1bVRpbWUgPSBjaGVja0dldFRpbWUoMTAwMCwgMCk7CisgICAgICAgIGhhc2hUaW1lID0gY2hlY2tHZXRUaW1lKDEwMDAsIDEpOworICAgICAgICBsb2dsbigiUGVyY2VudGFnZTogIiArIHBmLmZvcm1hdChoYXNoVGltZS91bVRpbWUpKTsKKyAgICAgICAgaWN1VGltZSA9IGNoZWNrR2V0VGltZSgxMDAwLCAyKTsKKyAgICAgICAgbG9nbG4oIlBlcmNlbnRhZ2U6ICIgKyBwZi5mb3JtYXQoaWN1VGltZS91bVRpbWUpKTsKKyAgICAgICAgdHJlZVRpbWUgPSBjaGVja0dldFRpbWUoMTAwMCwgMyk7CisgICAgICAgIGxvZ2xuKCJQZXJjZW50YWdlOiAiICsgcGYuZm9ybWF0KHRyZWVUaW1lL3VtVGltZSkpOworICAgIH0KKyAgICAKKyAgICBpbnQgcHJvcEVudW0gPSBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWTsKKyAgICAKKyAgICBkb3VibGUgY2hlY2tTZXRUaW1lKGludCBpdGVyYXRpb25zLCBpbnQgdHlwZSkgeworICAgICAgICBfY2hlY2tTZXRUaW1lKDEsdHlwZSk7CisgICAgICAgIGRvdWJsZSByZXN1bHQgPSBfY2hlY2tTZXRUaW1lKGl0ZXJhdGlvbnMsIHR5cGUpOworICAgICAgICBsb2dsbigodHlwZSA9PSAwID8gIlVuaWNvZGVNYXAiIDogdHlwZSA9PSAxID8gIkhhc2hNYXAiIDogdHlwZSA9PSAyID8gIklDVSIgOiAiVHJlZU1hcCIpICsgIlx0IiArIG5mLmZvcm1hdChyZXN1bHQpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgZG91YmxlIF9jaGVja1NldFRpbWUoaW50IGl0ZXJhdGlvbnMsIGludCB0eXBlKSB7CisgICAgICAgIG1hcDEgPSBuZXcgVW5pY29kZU1hcCgpOworICAgICAgICBtYXAyID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgU3lzdGVtLmdjKCk7CisgICAgICAgIGRvdWJsZSBzdGFydCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGl0ZXJhdGlvbnM7ICsraikKKyAgICAgICAgICBmb3IgKGludCBjcCA9IDA7IGNwIDw9IFNFVF9MSU1JVDsgKytjcCkgeworICAgICAgICAgICAgaW50IGVudW1WYWx1ZSA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjcCwgcHJvcEVudW0pOworICAgICAgICAgICAgaWYgKGVudW1WYWx1ZSA8PSAwKSBjb250aW51ZTsgLy8gZm9yIHNtYWxsZXIgc2V0CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BFbnVtLGVudW1WYWx1ZSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyk7CisgICAgICAgICAgICBzd2l0Y2godHlwZSkgeworICAgICAgICAgICAgY2FzZSAwOiBtYXAxLnB1dChjcCwgdmFsdWUpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTogbWFwMi5wdXQobmV3IEludGVnZXIoY3ApLCB2YWx1ZSk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAzOiBtYXAzLnB1dChuZXcgSW50ZWdlcihjcCksIHZhbHVlKTsgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZG91YmxlIGVuZCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOworICAgICAgICByZXR1cm4gKGVuZC1zdGFydCkvMTAwMC9pdGVyYXRpb25zOworICAgIH0KKyAgICAKKyAgICBkb3VibGUgY2hlY2tHZXRUaW1lKGludCBpdGVyYXRpb25zLCBpbnQgdHlwZSkgeworICAgICAgICBfY2hlY2tHZXRUaW1lKDEsdHlwZSk7CisgICAgICAgIGRvdWJsZSByZXN1bHQgPSBfY2hlY2tHZXRUaW1lKGl0ZXJhdGlvbnMsIHR5cGUpOworICAgICAgICBsb2dsbigodHlwZSA9PSAwID8gIlVuaWNvZGVNYXAiIDogdHlwZSA9PSAxID8gIkhhc2hNYXAiIDogdHlwZSA9PSAyID8gIklDVSIgOiAiVHJlZU1hcCIpICsgIlx0IiArIG5mLmZvcm1hdChyZXN1bHQpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgZG91YmxlIF9jaGVja0dldFRpbWUoaW50IGl0ZXJhdGlvbnMsIGludCB0eXBlKSB7CisgICAgICAgIFN5c3RlbS5nYygpOworICAgICAgICBkb3VibGUgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBpdGVyYXRpb25zOyArK2opCisgICAgICAgICAgZm9yIChpbnQgY3AgPSAwOyBjcCA8IENIRUNLX0xJTUlUOyArK2NwKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgMDogbWFwMS5nZXRWYWx1ZShjcCk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOiBtYXAyLmdldChuZXcgSW50ZWdlcihjcCkpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICBpbnQgZW51bVZhbHVlID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGNwLCBwcm9wRW51bSk7CisgICAgICAgICAgICAgICAgLy9pZiAoZW51bVZhbHVlIDw9IDApIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcEVudW0sZW51bVZhbHVlLCBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIDM6IG1hcDMuZ2V0KG5ldyBJbnRlZ2VyKGNwKSk7IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRvdWJsZSBlbmQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgcmV0dXJuIChlbmQtc3RhcnQpLzEwMDAvaXRlcmF0aW9uczsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIFVuaWNvZGVNYXBCb2lsZXJwbGF0ZSBleHRlbmRzIFRlc3RCb2lsZXJwbGF0ZSB7CisKKyAgICAgICAgLyogCisgICAgICAgICAqIEBzZWUgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEJvaWxlcnBsYXRlI19oYXNTYW1lQmVoYXZpb3IoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIF9oYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgICAgICAvLyB3ZSBhcmUgcHJldHR5IGNvbmZpZGVudCBpbiB0aGUgZXF1YWxzIG1ldGhvZCwgc28gd29uJ3QgYm90aGVyIHdpdGggdGhpcyByaWdodCBub3cuCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIEBzZWUgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEJvaWxlcnBsYXRlI19jcmVhdGVUZXN0T2JqZWN0KCkKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIF9hZGRUZXN0T2JqZWN0KExpc3QgbGlzdCkgeworICAgICAgICAgICAgaWYgKGxpc3Quc2l6ZSgpID4gMzApIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIFVuaWNvZGVNYXAgcmVzdWx0ID0gbmV3IFVuaWNvZGVNYXAoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTA7ICsraSkgeworICAgICAgICAgICAgICAgIGludCBzdGFydCA9IHJhbmRvbS5uZXh0SW50KDI1KTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBURVNUX1ZBTFVFU1tyYW5kb20ubmV4dEludChURVNUX1ZBTFVFUy5sZW5ndGgpXTsKKyAgICAgICAgICAgICAgICByZXN1bHQucHV0KHN0YXJ0LCB2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsaXN0LmFkZChyZXN1bHQpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIFN0cmluZ0JvaWxlcnBsYXRlIGV4dGVuZHMgVGVzdEJvaWxlcnBsYXRlIHsKKworICAgICAgICAvKiAKKyAgICAgICAgICogQHNlZSBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Qm9pbGVycGxhdGUjX2hhc1NhbWVCZWhhdmlvcihqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KQorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gX2hhc1NhbWVCZWhhdmlvcihPYmplY3QgYSwgT2JqZWN0IGIpIHsKKyAgICAgICAgICAgIC8vIHdlIGFyZSBwcmV0dHkgY29uZmlkZW50IGluIHRoZSBlcXVhbHMgbWV0aG9kLCBzbyB3b24ndCBib3RoZXIgd2l0aCB0aGlzIHJpZ2h0IG5vdy4KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogQHNlZSBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Qm9pbGVycGxhdGUjX2NyZWF0ZVRlc3RPYmplY3QoKQorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gX2FkZFRlc3RPYmplY3QoTGlzdCBsaXN0KSB7CisgICAgICAgICAgICBpZiAobGlzdC5zaXplKCkgPiAzMSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTA7ICsraSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpcmFuZG9tLm5leHRJbnQoMHhGRikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGlzdC5hZGQocmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIFVuaWNvZGVTZXRCb2lsZXJwbGF0ZSBleHRlbmRzIFRlc3RCb2lsZXJwbGF0ZSB7CisKKyAgICAgICAgLyogCisgICAgICAgICAqIEBzZWUgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEJvaWxlcnBsYXRlI19oYXNTYW1lQmVoYXZpb3IoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIF9oYXNTYW1lQmVoYXZpb3IoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgICAgICAvLyB3ZSBhcmUgcHJldHR5IGNvbmZpZGVudCBpbiB0aGUgZXF1YWxzIG1ldGhvZCwgc28gd29uJ3QgYm90aGVyIHdpdGggdGhpcyByaWdodCBub3cuCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIEBzZWUgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEJvaWxlcnBsYXRlI19jcmVhdGVUZXN0T2JqZWN0KCkKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIF9hZGRUZXN0T2JqZWN0KExpc3QgbGlzdCkgeworICAgICAgICAgICAgaWYgKGxpc3Quc2l6ZSgpID4gMzIpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTA7ICsraSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQocmFuZG9tLm5leHRJbnQoMTAwKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsaXN0LmFkZChyZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworfQorLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RleHRUcmllTWFwVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVGV4dFRyaWVNYXBUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NiMjMwZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RleHRUcmllTWFwVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTgwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRleHRUcmllTWFwOworCitwdWJsaWMgY2xhc3MgVGV4dFRyaWVNYXBUZXN0IGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSW50ZWdlciBTVU4gPSBuZXcgSW50ZWdlcigxKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIE1PTiA9IG5ldyBJbnRlZ2VyKDIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEludGVnZXIgVFVFID0gbmV3IEludGVnZXIoMyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSW50ZWdlciBXRUQgPSBuZXcgSW50ZWdlcig0KTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIFRIVSA9IG5ldyBJbnRlZ2VyKDUpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEludGVnZXIgRlJJID0gbmV3IEludGVnZXIoNik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSW50ZWdlciBTQVQgPSBuZXcgSW50ZWdlcig3KTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEludGVnZXIgRk9PID0gbmV3IEludGVnZXIoLTEpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEludGVnZXIgQkFSID0gbmV3IEludGVnZXIoLTIpOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gVEVTVERBVEEgPSB7CisgICAgICAgIHsiU3VuZGF5IiwgU1VOfSwKKyAgICAgICAgeyJNb25kYXkiLCBNT059LAorICAgICAgICB7IlR1ZXNkYXkiLCBUVUV9LAorICAgICAgICB7IldlZG5lc2RheSIsIFdFRH0sCisgICAgICAgIHsiVGh1cnNkYXkiLCBUSFV9LAorICAgICAgICB7IkZyaWRheSIsIEZSSX0sCisgICAgICAgIHsiU2F0dXJkYXkiLCBTQVR9LAorICAgICAgICB7IlN1biIsIFNVTn0sCisgICAgICAgIHsiTW9uIiwgTU9OfSwKKyAgICAgICAgeyJUdWUiLCBUVUV9LAorICAgICAgICB7IldlZCIsIFdFRH0sCisgICAgICAgIHsiVGh1IiwgVEhVfSwKKyAgICAgICAgeyJGcmkiLCBGUkl9LAorICAgICAgICB7IlNhdCIsIFNBVH0sCisgICAgICAgIHsiUyIsIFNVTn0sCisgICAgICAgIHsiTSIsIE1PTn0sCisgICAgICAgIHsiVCIsIFRVRX0sCisgICAgICAgIHsiVyIsIFdFRH0sCisgICAgICAgIHsiVCIsIFRIVX0sCisgICAgICAgIHsiRiIsIEZSSX0sCisgICAgICAgIHsiUyIsIFNBVH0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0W11bXSBURVNUQ0FTRVMgPSB7CisgICAgICAgIHsiU3VuZGF5IiwgU1VOLCBTVU59LAorICAgICAgICB7InN1bmRheSIsIG51bGwsIFNVTn0sCisgICAgICAgIHsiTW8iLCBNT04sIE1PTn0sCisgICAgICAgIHsibW8iLCBudWxsLCBNT059LAorICAgICAgICB7IlRodXJzZGF5IEZyaWRheSIsIFRIVSwgVEhVfSwKKyAgICAgICAgeyJUIiwgVEhVLCBUSFV9LAorICAgICAgICB7IlRFU1QiLCBUSFUsIFRIVX0sCisgICAgICAgIHsiU1VOIiwgU0FULCBTVU59LAorICAgICAgICB7InN1cGVyIiwgbnVsbCwgU0FUfSwKKyAgICAgICAgeyJOTyIsIG51bGwsIG51bGx9CisgICAgfTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVGV4dFRyaWVNYXBUZXN0IHRlc3QgPSBuZXcgVGV4dFRyaWVNYXBUZXN0KCk7CisgICAgICAgIHRlc3QucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDYXNlU2Vuc2l0aXZlKCkgeworICAgICAgICBUZXh0VHJpZU1hcCBtYXAgPSBuZXcgVGV4dFRyaWVNYXAoZmFsc2UpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFRFU1REQVRBLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBtYXAucHV0KChTdHJpbmcpVEVTVERBVEFbaV1bMF0sIFRFU1REQVRBW2ldWzFdKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZ2xuKCJUZXN0IGZvciBnZXQoU3RyaW5nKSIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFRFU1RDQVNFUy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gbWFwLmdldCgoU3RyaW5nKVRFU1RDQVNFU1tpXVswXSk7CisgICAgICAgICAgICBpZiAoIWVxbCh2YWx1ZSwgVEVTVENBU0VTW2ldWzFdKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJJbnZhbGlkIHNlYXJjaCByZXN1bHRzIC0gRXhwZWN0ZWQ6IiArIFRFU1RDQVNFU1tpXVsxXSArICIgQWN0dWFsOiIgKyB2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigiVGVzdCBmb3IgZ2V0KFN0cmluZywgaW50KSIpOworICAgICAgICBTdHJpbmdCdWZmZXIgdGV4dEJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBURVNUQ0FTRVMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRleHRCdWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBpOyBqKyspIHsKKyAgICAgICAgICAgICAgICB0ZXh0QnVmLmFwcGVuZCgnWCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dEJ1Zi5hcHBlbmQoVEVTVENBU0VTW2ldWzBdKTsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IG1hcC5nZXQodGV4dEJ1Zi50b1N0cmluZygpLCBpKTsKKyAgICAgICAgICAgIGlmICghZXFsKHZhbHVlLCBURVNUQ0FTRVNbaV1bMV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkludmFsaWQgc2VhcmNoIHJlc3VsdHMgLSBFeHBlY3RlZDoiICsgVEVTVENBU0VTW2ldWzFdICsgIiBBY3R1YWw6IiArIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEFkZCBkdXBsaWNhdGVkIGVudHJ5CisgICAgICAgIE9iamVjdCBwcmV2ID0gbWFwLnB1dCgiU3VuZGF5IiwgRk9PKTsKKyAgICAgICAgaWYgKCFlcWwocHJldiwgU1VOKSkgeworICAgICAgICAgICAgZXJybG4oIlRoZSBwcmV2aW91cyB2YWx1ZSBvZiBkdXBsaWNhdGVkIGVudHJ5IGlzIG5vdCB2YWxpZCAtIEV4cGVjdGVkOiIgKyBTVU4gKyAiIEFjdHVhbDoiICsgcHJldik7CisgICAgICAgIH0KKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSB2YWx1ZSBpcyB1cGRhdGVkCisgICAgICAgIE9iamVjdCB2YWx1ZSA9IG1hcC5nZXQoIlN1bmRheSIpOworICAgICAgICBpZiAoIWVxbCh2YWx1ZSwgRk9PKSkgeworICAgICAgICAgICAgZXJybG4oIlRoZSBtYXAgdmFsdWUgaXMgbm90IHZhbGlkIC0gRXhwZWN0ZWQ6IiArIEZPTyArICIgQWN0dWFsOiIgKyB2YWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBBZGQgZHVwbGljYXRlZCBlbnRyeSB3aXRoIGRpZmZlcmVudCBjYXNpbmcKKyAgICAgICAgcHJldiA9IG1hcC5wdXQoInN1bmRheSIsIEJBUik7CisgICAgICAgIGlmICghZXFsKHByZXYsIG51bGwpKSB7CisgICAgICAgICAgICBlcnJsbigiVGhlIHZhbHVlIHNob3VsZCBiZSBuZXcgaW4gdGhlIHRyaWUgbWFwIC0gRXhwZWN0ZWQ6bnVsbCIgKyAiIEFjdHVhbDoiICsgcHJldik7CisgICAgICAgIH0KKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSB2YWx1ZSBpcyB2YWxpZAorICAgICAgICB2YWx1ZSA9IG1hcC5nZXQoInN1bmRheSIpOworICAgICAgICBpZiAoIWVxbCh2YWx1ZSwgQkFSKSkgeworICAgICAgICAgICAgZXJybG4oIlRoZSBtYXAgdmFsdWUgaXMgbm90IHZhbGlkIC0gRXhwZWN0ZWQ6IiArIEJBUiArICIgQWN0dWFsOiIgKyB2YWx1ZSk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDYXNlSW5zZW5zaXRpdmUoKSB7CisgICAgICAgIFRleHRUcmllTWFwIG1hcCA9IG5ldyBUZXh0VHJpZU1hcCh0cnVlKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBURVNUREFUQS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbWFwLnB1dCgoU3RyaW5nKVRFU1REQVRBW2ldWzBdLCBURVNUREFUQVtpXVsxXSk7CisgICAgICAgIH0KKworICAgICAgICBsb2dsbigiVGVzdCBmb3IgZ2V0KFN0cmluZykiKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBURVNUQ0FTRVMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IG1hcC5nZXQoKFN0cmluZylURVNUQ0FTRVNbaV1bMF0pOworICAgICAgICAgICAgaWYgKCFlcWwodmFsdWUsIFRFU1RDQVNFU1tpXVsyXSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiSW52YWxpZCBzZWFyY2ggcmVzdWx0cyAtIEV4cGVjdGVkOiIgKyBURVNUQ0FTRVNbaV1bMl0gKyAiIEFjdHVhbDoiICsgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBsb2dsbigiVGVzdCBmb3IgZ2V0KFN0cmluZywgaW50KSIpOworICAgICAgICBTdHJpbmdCdWZmZXIgdGV4dEJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBURVNUQ0FTRVMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHRleHRCdWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBpOyBqKyspIHsKKyAgICAgICAgICAgICAgICB0ZXh0QnVmLmFwcGVuZCgnWCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dEJ1Zi5hcHBlbmQoVEVTVENBU0VTW2ldWzBdKTsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IG1hcC5nZXQodGV4dEJ1Zi50b1N0cmluZygpLCBpKTsKKyAgICAgICAgICAgIGlmICghZXFsKHZhbHVlLCBURVNUQ0FTRVNbaV1bMl0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkludmFsaWQgc2VhcmNoIHJlc3VsdHMgLSBFeHBlY3RlZDoiICsgVEVTVENBU0VTW2ldWzJdICsgIiBBY3R1YWw6IiArIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEFkZCBkdXBsaWNhdGVkIGVudHJ5CisgICAgICAgIE9iamVjdCBwcmV2ID0gbWFwLnB1dCgiU3VuZGF5IiwgRk9PKTsKKyAgICAgICAgaWYgKCFlcWwocHJldiwgU1VOKSkgeworICAgICAgICAgICAgZXJybG4oIlRoZSBwcmV2aW91cyB2YWx1ZSBvZiBkdXBsaWNhdGVkIGVudHJ5IGlzIG5vdCB2YWxpZCAtIEV4cGVjdGVkOiIgKyBTVU4gKyAiIEFjdHVhbDoiICsgcHJldik7CisgICAgICAgIH0KKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSB2YWx1ZSBpcyB1cGRhdGVkCisgICAgICAgIE9iamVjdCB2YWx1ZSA9IG1hcC5nZXQoIlN1bmRheSIpOworICAgICAgICBpZiAoIWVxbCh2YWx1ZSwgRk9PKSkgeworICAgICAgICAgICAgZXJybG4oIlRoZSBtYXAgdmFsdWUgaXMgbm90IHZhbGlkIC0gRXhwZWN0ZWQ6IiArIEZPTyArICIgQWN0dWFsOiIgKyB2YWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBBZGQgZHVwbGljYXRlZCBlbnRyeSB3aXRoIGRpZmZlcmVudCBjYXNpbmcKKyAgICAgICAgcHJldiA9IG1hcC5wdXQoInN1bmRheSIsIEJBUik7CisgICAgICAgIGlmICghZXFsKHByZXYsIEZPTykpIHsKKyAgICAgICAgICAgIGVycmxuKCJUaGUgdmFsdWUgc2hvdWxkIGJlIG5ldyBpbiB0aGUgdHJpZSBtYXAgLSBFeHBlY3RlZDoiICsgRk9PICsgIiBBY3R1YWw6IiArIHByZXYpOworICAgICAgICB9CisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgdmFsdWUgaXMgdXBkYXRlZAorICAgICAgICB2YWx1ZSA9IG1hcC5nZXQoInN1bmRheSIpOworICAgICAgICBpZiAoIWVxbCh2YWx1ZSwgQkFSKSkgeworICAgICAgICAgICAgZXJybG4oIlRoZSBtYXAgdmFsdWUgaXMgbm90IHZhbGlkIC0gRXhwZWN0ZWQ6IiArIEJBUiArICIgQWN0dWFsOiIgKyB2YWx1ZSk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBlcWwoT2JqZWN0IG8xLCBPYmplY3QgbzIpIHsKKyAgICAgICAgaWYgKG8xID09IG51bGwgfHwgbzIgPT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKG8xID09IG51bGwgJiYgbzIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvMS5lcXVhbHMobzIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rva2VuaXplci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVG9rZW5pemVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFkNmFiNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1Rva2VuaXplci5qYXZhCkBAIC0wLDAgKzEsMzIyIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKKworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworcHVibGljIGNsYXNzIFRva2VuaXplciB7CisgICAgcHJvdGVjdGVkIFN0cmluZyBzb3VyY2U7CisgICAgCisgICAgcHJvdGVjdGVkIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgcHJvdGVjdGVkIGxvbmcgbnVtYmVyOworICAgIHByb3RlY3RlZCBVbmljb2RlU2V0IHVuaWNvZGVTZXQgPSBudWxsOworICAgIHByb3RlY3RlZCBpbnQgaW5kZXg7CisgICAgYm9vbGVhbiBiYWNrZWR1cCA9IGZhbHNlOworICAgIHByb3RlY3RlZCBpbnQgbGFzdEluZGV4ID0gLTE7CisgICAgcHJvdGVjdGVkIGludCBuZXh0SW5kZXg7CisgICAgaW50IGxhc3RWYWx1ZSA9IEJBQ0tFRFVQX1RPT19GQVI7CisgICAgVG9rZW5TeW1ib2xUYWJsZSBzeW1ib2xUYWJsZSA9IG5ldyBUb2tlblN5bWJvbFRhYmxlKCk7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyCisgICAgICAgIFFVT1RFID0gJ1wnJywKKyAgICAgICAgQlNMQVNIID0gJ1xcJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IFFVT1RFUlMgPSBuZXcgVW5pY29kZVNldCgpLmFkZChRVU9URSkuYWRkKEJTTEFTSCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBXSElURVNQQUNFID0gbmV3IFVuaWNvZGVTZXQoIlsiICsKKyAgICAgICAgIlxcdTAwMDktXFx1MDAwRFxcdTAwMjBcXHUwMDg1XFx1MjAwRVxcdTIwMEZcXHUyMDI4XFx1MjAyOSIgKworICAgICAgICAiXSIpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgU1lOVEFYID0gbmV3IFVuaWNvZGVTZXQoIlsiICsKKyAgICAgICAgIlxcdTAwMjEtXFx1MDAyRlxcdTAwM0EtXFx1MDA0MFxcdTAwNUItXFx1MDA2MFxcdTAwN0ItXFx1MDA3RSIgKworICAgICAgICAiXFx1MDBBMS1cXHUwMEE3XFx1MDBBOVxcdTAwQUItXFx1MDBBQ1xcdTAwQUUiICsKKyAgICAgICAgIlxcdTAwQjAtXFx1MDBCMVxcdTAwQjZcXHUwMEI3XFx1MDBCQlxcdTAwQkZcXHUwMEQ3XFx1MDBGNyIgKworICAgICAgICAiXFx1MjAxMC1cXHUyMDI3XFx1MjAzMC1cXHUyMDVFXFx1MjE5MC1cXHUyQkZGIiArCisgICAgICAgICJcXHUzMDAxXFx1MzAwM1xcdTMwMDgtXFx1MzAyMFxcdTMwMzAiICsKKyAgICAgICAgIlxcdUZEM0VcXHVGRDNGXFx1RkU0NVxcdUZFNDYiICsKKyAgICAgICAgIl0iKS5yZW1vdmVBbGwoUVVPVEVSUykucmVtb3ZlKCckJyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBORVdMSU5FID0gbmV3IFVuaWNvZGVTZXQoIltcXHUwMDBBXFx1MDAwRFxcdTAwODVcXHUyMDI4XFx1MjAyOV0iKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IERFQ0lNQUwgPSBuZXcgVW5pY29kZVNldCgiWzpOZDpdIik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBOT05fU1RSSU5HID0gbmV3IFVuaWNvZGVTZXQoKQorICAgICAgICAuYWRkQWxsKFdISVRFU1BBQ0UpCisgICAgICAgIC5hZGRBbGwoU1lOVEFYKTsKKyAgICAgICAgICAgCisgICAgcHJvdGVjdGVkIFVuaWNvZGVTZXQgd2hpdGVTcGFjZSA9IFdISVRFU1BBQ0U7CisgICAgcHJvdGVjdGVkIFVuaWNvZGVTZXQgc3ludGF4ID0gU1lOVEFYOworICAgIHByaXZhdGUgVW5pY29kZVNldCBub25fc3RyaW5nID0gTk9OX1NUUklORzsKKworICAgIHByaXZhdGUgdm9pZCBmaXhTZXRzKCkgeworICAgICAgICBpZiAoc3ludGF4LmNvbnRhaW5zU29tZShRVU9URVJTKSB8fCBzeW50YXguY29udGFpbnNTb21lKHdoaXRlU3BhY2UpKSB7CisgICAgICAgICAgICBzeW50YXggPSAoKFVuaWNvZGVTZXQpc3ludGF4LmNsb25lKCkpLnJlbW92ZUFsbChRVU9URVJTKS5yZW1vdmVBbGwod2hpdGVTcGFjZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHdoaXRlU3BhY2UuY29udGFpbnNTb21lKFFVT1RFUlMpKSB7CisgICAgICAgICAgICB3aGl0ZVNwYWNlID0gKChVbmljb2RlU2V0KXdoaXRlU3BhY2UuY2xvbmUoKSkucmVtb3ZlQWxsKFFVT1RFUlMpOworICAgICAgICB9CisgICAgICAgIG5vbl9zdHJpbmcgPSBuZXcgVW5pY29kZVNldChzeW50YXgpCisgICAgICAgICAgICAuYWRkQWxsKHdoaXRlU3BhY2UpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVG9rZW5pemVyIHNldFNvdXJjZShTdHJpbmcgc291cmNlKSB7CisgICAgICAgIHRoaXMuc291cmNlID0gc291cmNlOworICAgICAgICB0aGlzLmluZGV4ID0gMDsKKyAgICAgICAgcmV0dXJuIHRoaXM7IC8vIGZvciBjaGFpbmluZworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVG9rZW5pemVyIHNldEluZGV4KGludCBpbmRleCkgeworICAgICAgICB0aGlzLmluZGV4ID0gaW5kZXg7CisgICAgICAgIHJldHVybiB0aGlzOyAvLyBmb3IgY2hhaW5pbmcKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgCisgICAgICAgIERPTkUgPSAtMSwgCisgICAgICAgIE5VTUJFUiA9IC0yLCAKKyAgICAgICAgU1RSSU5HID0gLTMsIAorICAgICAgICBVTklDT0RFU0VUID0gLTQsIAorICAgICAgICBVTlRFUk1JTkFURURfUVVPVEUgPSAtNSwKKyAgICAgICAgQkFDS0VEVVBfVE9PX0ZBUiA9IC02OworICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQKKyAgICAgICAgRklSU1QgPSAwLAorICAgICAgICBJTl9OVU1CRVIgPSAxLAorICAgICAgICBJTl9TUEFDRSA9IDIsCisgICAgICAgIEFGVEVSX1FVT1RFID0gMywgICAgLy8gd2FybmluZzogb3JkZXIgaXMgaW1wb3J0YW50IGZvciBzd2l0Y2ggc3RhdGVtZW50CisgICAgICAgIElOX1NUUklORyA9IDQsIAorICAgICAgICBBRlRFUl9CU0xBU0ggPSA1LCAKKyAgICAgICAgSU5fUVVPVEUgPSA2OworICAgCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhpbnQgdHlwZSwgYm9vbGVhbiBiYWNrZWR1cEJlZm9yZSkgeworICAgICAgICBTdHJpbmcgcyA9IGJhY2tlZHVwID8gIkAiIDogIioiOworICAgICAgICBzd2l0Y2godHlwZSkgeworICAgICAgICAgICAgY2FzZSBET05FOiAKKyAgICAgICAgICAgICAgICByZXR1cm4gcysiRG9uZSIrczsKKyAgICAgICAgICAgIGNhc2UgQkFDS0VEVVBfVE9PX0ZBUjoKKyAgICAgICAgICAgICAgICByZXR1cm4gcysiSWxsZWdhbCBCYWNrdXAiK3M7CisgICAgICAgICAgICBjYXNlIFVOVEVSTUlOQVRFRF9RVU9URTogCisgICAgICAgICAgICAgICAgcmV0dXJuIHMrIlVudGVybWluYXRlZCBRdW90ZT0iICsgZ2V0U3RyaW5nKCkgKyBzOworICAgICAgICAgICAgY2FzZSBTVFJJTkc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHMrInM9IiArIGdldFN0cmluZygpICsgczsKKyAgICAgICAgICAgIGNhc2UgTlVNQkVSOgorICAgICAgICAgICAgICAgIHJldHVybiBzKyJuPSIgKyBnZXROdW1iZXIoKSArIHM7CisgICAgICAgICAgICBjYXNlIFVOSUNPREVTRVQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHMrIm49IiArIGdldFVuaWNvZGVTZXQoKSArIHM7ICAgICAgICAgICAKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHMrImM9IiArIHVzZi5nZXROYW1lKHR5cGUsdHJ1ZSkgKyBzOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEJhZ0Zvcm1hdHRlciB1c2YgPSBuZXcgQmFnRm9ybWF0dGVyKCk7CisgICAgCisgICAgcHVibGljIHZvaWQgYmFja3VwKCkgeworICAgICAgICBpZiAoYmFja2VkdXApIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJhY2t1cCB0b28gZmFyIik7CisgICAgICAgIGJhY2tlZHVwID0gdHJ1ZTsKKyAgICAgICAgbmV4dEluZGV4ID0gaW5kZXg7CisgICAgICAgIGluZGV4ID0gbGFzdEluZGV4OworICAgIH0KKyAgICAKKyAgICAvKgorICAgIHB1YmxpYyBpbnQgbmV4dDIoKSB7CisgICAgICAgIGJvb2xlYW4gYmFja2VkdXBCZWZvcmUgPSBiYWNrZWR1cDsKKyAgICAgICAgaW50IHJlc3VsdCA9IG5leHQoKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHRvU3RyaW5nKHJlc3VsdCwgYmFja2VkdXBCZWZvcmUpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9ICAgIAorICAgICovCisgICAgCisgICAgcHVibGljIGludCBuZXh0KCkgeworICAgICAgICBpZiAoYmFja2VkdXApIHsKKyAgICAgICAgICAgIGJhY2tlZHVwID0gZmFsc2U7CisgICAgICAgICAgICBpbmRleCA9IG5leHRJbmRleDsKKyAgICAgICAgICAgIHJldHVybiBsYXN0VmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgaW50IGNwID0gMDsKKyAgICAgICAgYm9vbGVhbiBpbkNvbW1lbnQgPSBmYWxzZTsKKyAgICAgICAgLy8gY2xlYW4gb2ZmIGFueSBsZWFkaW5nIHdoaXRlc3BhY2Ugb3IgY29tbWVudHMKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA+PSBzb3VyY2UubGVuZ3RoKCkpIHJldHVybiBsYXN0VmFsdWUgPSBET05FOworICAgICAgICAgICAgY3AgPSBuZXh0Q2hhcigpOworICAgICAgICAgICAgaWYgKGluQ29tbWVudCkgeworICAgICAgICAgICAgICAgIGlmIChORVdMSU5FLmNvbnRhaW5zKGNwKSkgaW5Db21tZW50ID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjcCA9PSAnIycpIGluQ29tbWVudCA9IHRydWU7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoIXdoaXRlU3BhY2UuY29udGFpbnMoY3ApKSBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyByZWNvcmQgdGhlIGxhc3QgaW5kZXggaW4gY2FzZSB3ZSBoYXZlIHRvIGJhY2t1cAorICAgICAgICBsYXN0SW5kZXggPSBpbmRleDsKKyAgICAgICAgCisgICAgICAgIGlmIChjcCA9PSAnWycpIHsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oaW5kZXgtMSk7CisgICAgICAgICAgICB1bmljb2RlU2V0ID0gbmV3IFVuaWNvZGVTZXQoc291cmNlLHBvcyxzeW1ib2xUYWJsZSk7CisgICAgICAgICAgICBpbmRleCA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgcmV0dXJuIGxhc3RWYWx1ZSA9IFVOSUNPREVTRVQ7CisgICAgICAgIH0KKyAgICAgICAgLy8gZ2V0IHN5bnRheCBjaGFyYWN0ZXIKKyAgICAgICAgaWYgKHN5bnRheC5jb250YWlucyhjcCkpIHJldHVybiBsYXN0VmFsdWUgPSBjcDsKKyAgICAgICAgCisgICAgICAgIC8vIGdldCBudW1iZXIsIGlmIHRoZXJlIGlzIG9uZQorICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRUeXBlKGNwKSA9PSBDaGFyYWN0ZXIuREVDSU1BTF9ESUdJVF9OVU1CRVIpIHsKKyAgICAgICAgICAgIG51bWJlciA9IFVDaGFyYWN0ZXIuZ2V0TnVtZXJpY1ZhbHVlKGNwKTsKKyAgICAgICAgICAgIHdoaWxlIChpbmRleCA8IHNvdXJjZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGNwID0gbmV4dENoYXIoKTsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRUeXBlKGNwKSAhPSBDaGFyYWN0ZXIuREVDSU1BTF9ESUdJVF9OVU1CRVIpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggLT0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKTsgLy8gQkFDS1VQIQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbnVtYmVyICo9IDEwOworICAgICAgICAgICAgICAgIG51bWJlciArPSBVQ2hhcmFjdGVyLmdldE51bWVyaWNWYWx1ZShjcCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbGFzdFZhbHVlID0gIE5VTUJFUjsKKyAgICAgICAgfQorICAgICAgICBidWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICBpbnQgc3RhdHVzID0gSU5fU1RSSU5HOworICAgICAgICBtYWluOgorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgc3dpdGNoIChzdGF0dXMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIEFGVEVSX1FVT1RFOiAvLyBjaGVjayBmb3IgZG91YmxlICcnPworICAgICAgICAgICAgICAgICAgICBpZiAoY3AgPT0gUVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWZmZXIsIFFVT1RFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IElOX1FVT1RFOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gT1RIRVJXSVNFIEZBTEwgVEhST1VHSCEhIQorICAgICAgICAgICAgICAgIGNhc2UgSU5fU1RSSU5HOiAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNwID09IFFVT1RFKSBzdGF0dXMgPSBJTl9RVU9URTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY3AgPT0gQlNMQVNIKSBzdGF0dXMgPSBBRlRFUl9CU0xBU0g7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG5vbl9zdHJpbmcuY29udGFpbnMoY3ApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCAtPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApOyAvLyBCQUNLVVAhCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgVVRGMTYuYXBwZW5kKGJ1ZmZlcixjcCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgSU5fUVVPVEU6CisgICAgICAgICAgICAgICAgICAgIGlmIChjcCA9PSBRVU9URSkgc3RhdHVzID0gQUZURVJfUVVPVEU7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgVVRGMTYuYXBwZW5kKGJ1ZmZlcixjcCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQUZURVJfQlNMQVNIOgorICAgICAgICAgICAgICAgICAgICBzd2l0Y2goY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ24nOiBjcCA9ICdcbic7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncic6IGNwID0gJ1xyJzsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICd0JzogY3AgPSAnXHQnOyBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmZmVyLGNwKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gSU5fU1RSSU5HOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnRlcm5hbCBFcnJvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGluZGV4ID49IHNvdXJjZS5sZW5ndGgoKSkgYnJlYWs7CisgICAgICAgICAgICBjcCA9IG5leHRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXR1cyA+IElOX1NUUklORykgcmV0dXJuIGxhc3RWYWx1ZSA9IFVOVEVSTUlOQVRFRF9RVU9URTsKKyAgICAgICAgcmV0dXJuIGxhc3RWYWx1ZSA9ICBTVFJJTkc7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKCkgeworICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBzb3VyY2Uuc3Vic3RyaW5nKDAsaW5kZXgpICsgIiQkJCIgKyBzb3VyY2Uuc3Vic3RyaW5nKGluZGV4KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGxvbmcgZ2V0TnVtYmVyKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRVbmljb2RlU2V0KCkgeworICAgICAgICByZXR1cm4gdW5pY29kZVNldDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgbmV4dENoYXIoKSB7CisgICAgICAgIGludCBjcCA9IFVURjE2LmNoYXJBdChzb3VyY2UsaW5kZXgpOworICAgICAgICBpbmRleCArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApOworICAgICAgICByZXR1cm4gY3A7CisgICAgfQorICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKSB7CisgICAgICAgIHJldHVybiBpbmRleDsKKyAgICB9CisgICAgcHVibGljIFN0cmluZyBnZXRTb3VyY2UoKSB7CisgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgfQorICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFN5bnRheCgpIHsKKyAgICAgICAgcmV0dXJuIHN5bnRheDsKKyAgICB9CisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0V2hpdGVTcGFjZSgpIHsKKyAgICAgICAgcmV0dXJuIHdoaXRlU3BhY2U7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIHNldFN5bnRheChVbmljb2RlU2V0IHNldCkgeworICAgICAgICBzeW50YXggPSBzZXQ7CisgICAgICAgIGZpeFNldHMoKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgc2V0V2hpdGVTcGFjZShVbmljb2RlU2V0IHNldCkgeworICAgICAgICB3aGl0ZVNwYWNlID0gc2V0OworICAgICAgICBmaXhTZXRzKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTZXQgZ2V0TG9va2VkVXBJdGVtcygpIHsKKyAgICAgICAgcmV0dXJuIHN5bWJvbFRhYmxlLml0ZW1zTG9va2VkVXA7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGFkZFN5bWJvbChTdHJpbmcgdmFyLCBTdHJpbmcgdmFsdWUsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIC8vIHRoZSBsaW1pdCBpcyBhZnRlciB0aGUgJzsnLCBzbyByZW1vdmUgaXQKKyAgICAgICAgLS1saW1pdDsKKyAgICAgICAgY2hhcltdIGJvZHkgPSBuZXcgY2hhcltsaW1pdCAtIHN0YXJ0XTsKKyAgICAgICAgdmFsdWUuZ2V0Q2hhcnMoc3RhcnQsIGxpbWl0LCBib2R5LCAwKTsKKyAgICAgICAgc3ltYm9sVGFibGUuYWRkKHZhciwgYm9keSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBjbGFzcyBUb2tlblN5bWJvbFRhYmxlIGltcGxlbWVudHMgU3ltYm9sVGFibGUgeworICAgICAgICBNYXAgY29udGVudHMgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBTZXQgaXRlbXNMb29rZWRVcCA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgYWRkKFN0cmluZyB2YXIsIGNoYXJbXSBib2R5KSB7CisgICAgICAgICAgICAvLyBzdGFydCBmcm9tIDEgdG8gYXZvaWQgdGhlICQKKyAgICAgICAgICAgIGNvbnRlbnRzLnB1dCh2YXIuc3Vic3RyaW5nKDEpLCBib2R5KTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgICAgICogQHNlZSBjb20uaWJtLmljdS50ZXh0LlN5bWJvbFRhYmxlI2xvb2t1cChqYXZhLmxhbmcuU3RyaW5nKQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGNoYXJbXSBsb29rdXAoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIGl0ZW1zTG9va2VkVXAuYWRkKCckJyArIHMpOworICAgICAgICAgICAgcmV0dXJuIChjaGFyW10pY29udGVudHMuZ2V0KHMpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgICAgICogQHNlZSBjb20uaWJtLmljdS50ZXh0LlN5bWJvbFRhYmxlI2xvb2t1cE1hdGNoZXIoaW50KQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFVuaWNvZGVNYXRjaGVyIGxvb2t1cE1hdGNoZXIoaW50IGNoKSB7CisgICAgICAgICAgICAvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICAgICAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5TeW1ib2xUYWJsZSNwYXJzZVJlZmVyZW5jZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbiwgaW50KQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBwYXJzZVJlZmVyZW5jZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MsIGludCBsaW1pdCkgeworICAgICAgICAgICAgaW50IGNwOworICAgICAgICAgICAgaW50IHN0YXJ0ID0gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgbGltaXQ7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHRleHQsIGkpOworICAgICAgICAgICAgICAgIGlmICghY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KGNwKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3Muc2V0SW5kZXgoaSk7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcoc3RhcnQsaSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorfQorCisvLyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVHJhbnNsaXRlcmF0b3JVdGlsaXRpZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RyYW5zbGl0ZXJhdG9yVXRpbGl0aWVzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE2ZDI4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1RyYW5zbGl0ZXJhdG9yVXRpbGl0aWVzLmphdmEKQEAgLTAsMCArMSwxNTIgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlRyYW5zbGl0ZXJhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdFV0aWw7CisKK3B1YmxpYyBjbGFzcyBUcmFuc2xpdGVyYXRvclV0aWxpdGllcyB7CisJcHVibGljIHN0YXRpYyBib29sZWFuIERFQlVHID0gZmFsc2U7CisJCisJcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyVHJhbnNsaXRlcmF0b3JGcm9tRmlsZShTdHJpbmcgZGlyLCBTdHJpbmcgaWQpIHsKKwkJdHJ5IHsKKwkJCVN0cmluZyBmaWxlbmFtZSA9IGlkLnJlcGxhY2UoJy0nLCAnXycpICsgICIudHh0IjsKKwkJCVN0cmluZyBydWxlcyA9IGdldEZpbGVDb250ZW50cyhkaXIsIGZpbGVuYW1lKTsKKwkJCVRyYW5zbGl0ZXJhdG9yIHQ7CisJCQlpbnQgcG9zID0gaWQuaW5kZXhPZignLScpOworCQkJU3RyaW5nIHJpZDsKKwkJCWlmIChwb3MgPCAwKSB7CisJCQkJcmlkID0gaWQgKyAiLUFueSI7CisJCQkJaWQgPSAiQW55LSIgKyBpZDsKKwkJCX0gZWxzZSB7CisJCQkJcmlkID0gaWQuc3Vic3RyaW5nKHBvcysxKSArICItIiArIGlkLnN1YnN0cmluZygwLCBwb3MpOworCQkJfQorCQkJdCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcyhpZCwgcnVsZXMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworCQkJVHJhbnNsaXRlcmF0b3IudW5yZWdpc3RlcihpZCk7CisJCQlUcmFuc2xpdGVyYXRvci5yZWdpc3Rlckluc3RhbmNlKHQpOworCisJCQkvKlN0cmluZyB0ZXN0ID0gIlx1MDQ5QVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ5QiI7CisJCQlTeXN0ZW0ub3V0LnByaW50bG4odC50cmFuc2xpdGVyYXRlKHRlc3QpKTsKKwkJCXQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShpZCk7CisJCQlTeXN0ZW0ub3V0LnByaW50bG4odC50cmFuc2xpdGVyYXRlKHRlc3QpKTsKKwkJCSovCisKKwkJCXQgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMocmlkLCBydWxlcywgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisJCQlUcmFuc2xpdGVyYXRvci51bnJlZ2lzdGVyKHJpZCk7CisJCQlUcmFuc2xpdGVyYXRvci5yZWdpc3Rlckluc3RhbmNlKHQpOworCQkJaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlJlZ2lzdGVyZWQgbmV3IFRyYW5zbGl0ZXJhdG9yOiAiICsgaWQgKyAiLCAiICsgcmlkKTsKKwkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJCXRocm93IChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24pIG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbid0IG9wZW4gIiArIGRpciArICIsICIgKyBpZCkuaW5pdENhdXNlKGUpOworLy8jZWxzZQorLy8jIyAgICAgICAgdGhyb3cgKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbikgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2FuJ3Qgb3BlbiAiICsgZGlyICsgIiwgIiArIGlkKyIgIisgZS5nZXRNZXNzYWdlKCkpOworLy8jZW5kaWYKKwkJfQorCX0KKworCS8qKgorCSAqIAorCSAqLworCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldEZpbGVDb250ZW50cyhTdHJpbmcgZGlyLCBTdHJpbmcgZmlsZW5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorCQlCdWZmZXJlZFJlYWRlciBiciA9IEJhZ0Zvcm1hdHRlci5vcGVuVVRGOFJlYWRlcihkaXIsIGZpbGVuYW1lKTsKKy8vI2Vsc2UKKy8vIyMgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gVGVzdFV0aWwub3BlblVURjhSZWFkZXIoZGlyLCBmaWxlbmFtZSk7CisvLyNlbmRpZiAKKwkJU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKwkJd2hpbGUgKHRydWUpIHsKKwkJCVN0cmluZyBsaW5lID0gYnIucmVhZExpbmUoKTsKKwkJCWlmIChsaW5lID09IG51bGwpIGJyZWFrOworCQkJaWYgKGxpbmUubGVuZ3RoKCkgPiAwICYmIGxpbmUuY2hhckF0KDApID09ICdcdUZFRkYnKSBsaW5lID0gbGluZS5zdWJzdHJpbmcoMSk7CisJCQlidWZmZXIuYXBwZW5kKGxpbmUpLmFwcGVuZCgiXHJcbiIpOworCQl9CisJCWJyLmNsb3NlKCk7CisJCXJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgIAorCX0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCQVNFX1JVTEVTID0KKwkgICAgIjo6IChoZXgtYW55L3htbCk7IiArCisJICAgICI6OiAoaGV4LWFueS94bWwxMCk7IiArIAorCSAgCSInPCcgPiAnJmx0OycgOyIgKworCSAgICAiJzwnIDwgJyYnW2xMXVtUdF0nOycgOyIgKworCSAgICAiJyYnID4gJyZhbXA7JyA7IiArCisJICAgICInJicgPCAnJidbYUFdW21NXVtwUF0nOycgOyIgKworCSAgICAiJz4nIDwgJyYnW2dHXVt0VF0nOycgOyIgKworCSAgICAiJ1wiJyA8ICcmJ1txUV1bdVVdW29PXVt0VF0nOycgOyAiICsKKwkgICAgIicnIDwgJyYnW2FBXVtwUF1bb09dW3NTXSc7JyA7ICI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09OVEVOVF9SVUxFUyA9CisgICAgICAgICInPicgPiAnJmd0OycgOyI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSFRNTF9SVUxFUyA9IEJBU0VfUlVMRVMgKyBDT05URU5UX1JVTEVTICsgCisgICAgCSInXCInID4gJyZxdW90OycgOyAiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhUTUxfUlVMRVNfQ09OVFJPTFMgPSBIVE1MX1JVTEVTICsgCisgICAgCSI6OiBbWzpDOl1bOlo6XVs6d2hpdGVzcGFjZTpdWzpEZWZhdWx0X0lnbm9yYWJsZV9Db2RlX1BvaW50Ol1dIGhleC91bmljb2RlIDsgIjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBIVE1MX1JVTEVTX0FTQ0lJID0gSFRNTF9SVUxFUyArIAorICAgIAkiOjogW1s6QzpdWzpeQVNDSUk6XV0gYW55LWhleC94bWwgOyAiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFhNTF9SVUxFUyA9IEhUTUxfUlVMRVMgKworCSAgICAiJycgPiAnJmFwb3M7JyA7ICIKKzsKKyAgICAKKyAgICAvKgorVGhlIGFtcGVyc2FuZCBjaGFyYWN0ZXIgKCYpIGFuZCB0aGUgbGVmdCBhbmdsZSBicmFja2V0ICg8KSBNVVNUIE5PVCBhcHBlYXIgCisKK2luIHRoZWlyIGxpdGVyYWwgZm9ybSwgZXhjZXB0IHdoZW4gdXNlZCBhcyBtYXJrdXAgZGVsaW1pdGVycywgb3Igd2l0aGluIGEgCisKK2NvbW1lbnQsIGEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiwgb3IgYSBDREFUQSBzZWN0aW9uLiBJZiB0aGV5IGFyZSBuZWVkZWQgCisKK2Vsc2V3aGVyZSwgdGhleSBNVVNUIGJlIGVzY2FwZWQgdXNpbmcgZWl0aGVyIG51bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZXMgb3IgCisKK3RoZSBzdHJpbmdzICImYW1wOyIgYW5kICImbHQ7IiByZXNwZWN0aXZlbHkuIFRoZSByaWdodCBhbmdsZSBicmFja2V0ICg+KSBNQVkgCisKK2JlIHJlcHJlc2VudGVkIHVzaW5nIHRoZSBzdHJpbmcgIiZndDsiLCBhbmQgTVVTVCwgZm9yIGNvbXBhdGliaWxpdHksIGJlIAorCitlc2NhcGVkIHVzaW5nIGVpdGhlciAiJmd0OyIgb3IgYSBjaGFyYWN0ZXIgcmVmZXJlbmNlIHdoZW4gaXQgYXBwZWFycyBpbiB0aGUgc3RyaW5nIAorCisiXV0+IiBpbiBjb250ZW50LCB3aGVuIHRoYXQgc3RyaW5nIGlzIG5vdCBtYXJraW5nIHRoZSBlbmQgb2YgYSBDREFUQSBzZWN0aW9uLgorCitJbiB0aGUgY29udGVudCBvZiBlbGVtZW50cywgY2hhcmFjdGVyIGRhdGEgaXMgYW55IHN0cmluZyBvZiBjaGFyYWN0ZXJzIHdoaWNoIGRvZXMgCisKK25vdCBjb250YWluIHRoZSBzdGFydC1kZWxpbWl0ZXIgb2YgYW55IG1hcmt1cCBhbmQgZG9lcyBub3QgaW5jbHVkZSB0aGUgCisKK0NEQVRBLXNlY3Rpb24tY2xvc2UgZGVsaW1pdGVyLCAiXV0+Ii4gSW4gYSBDREFUQSBzZWN0aW9uLCBjaGFyYWN0ZXIgZGF0YSBpcyAKKworYW55IHN0cmluZyBvZiBjaGFyYWN0ZXJzIG5vdCBpbmNsdWRpbmcgdGhlIENEQVRBLXNlY3Rpb24tY2xvc2UgZGVsaW1pdGVyLCAKKworIl1dPiIuCisKK1RvIGFsbG93IGF0dHJpYnV0ZSB2YWx1ZXMgdG8gY29udGFpbiBib3RoIHNpbmdsZSBhbmQgZG91YmxlIHF1b3RlcywgdGhlIAorCithcG9zdHJvcGhlIG9yIHNpbmdsZS1xdW90ZSBjaGFyYWN0ZXIgKCcpIE1BWSBiZSByZXByZXNlbnRlZCBhcyAiJmFwb3M7IiwgYW5kIAorCit0aGUgZG91YmxlLXF1b3RlIGNoYXJhY3RlciAoIikgYXMgIiZxdW90OyIuCisKKworICAgICAqLworICAgIAorCXB1YmxpYyBzdGF0aWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgdG9YTUwgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoCisJImFueS14bWwiLCBYTUxfUlVMRVMsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworCXB1YmxpYyBzdGF0aWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgZnJvbVhNTCA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygKKwkieG1sLWFueSIsIFhNTF9SVUxFUywgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisJcHVibGljIHN0YXRpYyBmaW5hbCBUcmFuc2xpdGVyYXRvciB0b0hUTUwgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoCisJImFueS1odG1sIiwgSFRNTF9SVUxFUywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisJcHVibGljIHN0YXRpYyBmaW5hbCBUcmFuc2xpdGVyYXRvciB0b0hUTUxDb250cm9sID0gVHJhbnNsaXRlcmF0b3IuY3JlYXRlRnJvbVJ1bGVzKAorCQkJImFueS1odG1sIiwgSFRNTF9SVUxFU19DT05UUk9MUywgVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCk7CisJcHVibGljIHN0YXRpYyBmaW5hbCBUcmFuc2xpdGVyYXRvciB0b0hUTUxBc2NpaSA9IFRyYW5zbGl0ZXJhdG9yLmNyZWF0ZUZyb21SdWxlcygKKwkJCSJhbnktaHRtbCIsIEhUTUxfUlVMRVNfQVNDSUksIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworCXB1YmxpYyBzdGF0aWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgZnJvbUhUTUwgPSBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoCisJImh0bWwtYW55IiwgSFRNTF9SVUxFUywgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9UcmllVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVHJpZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NTRkY2UzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVHJpZVRlc3QuamF2YQpAQCAtMCwwICsxLDU3MyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRyaWU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JbnRUcmllOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2hhclRyaWU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UcmllQnVpbGRlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkludFRyaWVCdWlsZGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVHJpZUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5SYW5nZVZhbHVlSXRlcmF0b3I7CisKKy8qKgorKiBUZXN0aW5nIGNsYXNzIGZvciBUcmllLiBUZXN0cyBoZXJlIHdpbGwgYmUgc2ltcGxlLCBzaW5jZSBib3RoIENoYXJUcmllIGFuZCAKKyogSW50VHJpZSBhcmUgdmVyeSBzaW1pbGFyIGFuZCBhcmUgaGVhdmlseSB1c2VkIGluIG90aGVyIHBhcnRzIG9mIElDVTRKLgorKiBDb2RlcyB1c2luZyBUcmllcyBhcmUgZXhwZWN0ZWQgdG8gaGF2ZSBkZXRhaWxlZCB0ZXN0cy4KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIHJlbGVhc2UgMi4xIEphbiAwMSAyMDAyCisqLworcHVibGljIGZpbmFsIGNsYXNzIFRyaWVUZXN0IGV4dGVuZHMgVGVzdEZtd2sgCit7IAorICAgIC8vIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdG9yCisgICAgKi8KKyAgICBwdWJsaWMgVHJpZVRlc3QoKQorICAgIHsKKyAgICB9CisgICAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdbXSkgCisgICAgeworICAgICAgICBUcmllVGVzdCB0ZXN0ID0gbmV3IFRyaWVUZXN0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0ZXN0LnJ1bihhcmcpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGVzdC5lcnJsbigiRXJyb3IgdGVzdGluZyB0cmlldGVzdCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBWYWx1ZXMgZm9yIHNldHRpbmcgcG9zc2libHkgb3ZlcmxhcHBpbmcsIG91dC1vZi1vcmRlciByYW5nZXMgb2YgdmFsdWVzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgU2V0UmFuZ2UgCisgICAgeworICAgICAgICBTZXRSYW5nZShpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IHZhbHVlLCBib29sZWFuIG92ZXJ3cml0ZSkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy5zdGFydCA9IHN0YXJ0OworICAgICAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgICAgICAgICAgdGhpcy5vdmVyd3JpdGUgPSBvdmVyd3JpdGU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBzdGFydCwgbGltaXQ7CisgICAgICAgIGludCB2YWx1ZTsKKyAgICAgICAgYm9vbGVhbiBvdmVyd3JpdGU7CisgICAgfTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZXMgZm9yIHRlc3Rpbmc6CisgICAgICogdmFsdWUgaXMgc2V0IGZyb20gdGhlIHByZXZpb3VzIGJvdW5kYXJ5J3MgbGltaXQgdG8gYmVmb3JlCisgICAgICogdGhpcyBib3VuZGFyeSdzIGxpbWl0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgQ2hlY2tSYW5nZSAKKyAgICB7CisgICAgICAgIENoZWNrUmFuZ2UoaW50IGxpbWl0LCBpbnQgdmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKyAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGxpbWl0OworICAgICAgICBpbnQgdmFsdWU7CisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBzdG9yYWdlSG9sZGVyCisgICAgeworICAgICAgICBkb3VibGUgYm9ndXM7IC8vIG5lZWRlZCBmb3IgYWxpZ2luaW5nIHRoZSBzdG9yYWdlCisgICAgICAgIGJ5dGUgc3RvcmFnZVtdID0gbmV3IGJ5dGVbMTAwMDAwMDBdOworICAgIH07CisgICAgCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgX3Rlc3RGb2xkZWRWYWx1ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBsZW1lbnRzIFRyaWVCdWlsZGVyLkRhdGFNYW5pcHVsYXRlICAKKyAgICB7CisgICAgICAgIHB1YmxpYyBfdGVzdEZvbGRlZFZhbHVlKEludFRyaWVCdWlsZGVyIGJ1aWxkZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fYnVpbGRlcl8gPSBidWlsZGVyOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldEZvbGRlZFZhbHVlKGludCBzdGFydCwgaW50IG9mZnNldCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGZvbGRlZFZhbHVlID0gMDsKKyAgICAgICAgICAgIGludCBsaW1pdCA9IHN0YXJ0ICsgMHg0MDA7CisgICAgICAgICAgICB3aGlsZSAoc3RhcnQgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIGludCB2YWx1ZSA9IG1fYnVpbGRlcl8uZ2V0VmFsdWUoc3RhcnQpOworICAgICAgICAgICAgICAgIGlmIChtX2J1aWxkZXJfLmlzSW5aZXJvQmxvY2soc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IFRyaWVCdWlsZGVyLkRBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZvbGRlZFZhbHVlIHw9IHZhbHVlOworICAgICAgICAgICAgICAgICAgICArKyBzdGFydDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaWYgKGZvbGRlZFZhbHVlICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKG9mZnNldCA8PCAxNikgfCBmb2xkZWRWYWx1ZTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBJbnRUcmllQnVpbGRlciBtX2J1aWxkZXJfOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBfdGVzdEZvbGRpbmdPZmZzZXQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBsZW1lbnRzIFRyaWUuRGF0YU1hbmlwdWxhdGUgCisgICAgeworICAgICAgICBwdWJsaWMgaW50IGdldEZvbGRpbmdPZmZzZXQoaW50IHZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWUgPj4+IDE2OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIF90ZXN0RW51bVZhbHVlIGV4dGVuZHMgVHJpZUl0ZXJhdG9yCisgICAgeworICAgICAgICBwdWJsaWMgX3Rlc3RFbnVtVmFsdWUoVHJpZSBkYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlcihkYXRhKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIGludCBleHRyYWN0KGludCB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlIF4gMHg1NTU1OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBfdGVzdFRyaWVJdGVyYXRpb24oSW50VHJpZSB0cmllLCBDaGVja1JhbmdlIGNoZWNrUmFuZ2VzW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY291bnRDaGVja1JhbmdlcykgCisgICAgeworICAgICAgICAvLyB3cml0ZSBhIHN0cmluZworICAgICAgICBpbnQgY291bnRWYWx1ZXMgPSAwOworICAgICAgICBTdHJpbmdCdWZmZXIgcyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHZhbHVlc1tdID0gbmV3IGludFszMF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnRDaGVja1JhbmdlczsgKysgaSkgeworICAgICAgICAgICAgaW50IGMgPSBjaGVja1Jhbmdlc1tpXS5saW1pdDsKKyAgICAgICAgICAgIGlmIChjICE9IDApIHsKKyAgICAgICAgICAgICAgICAtLSBjOworICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChzLCBjKTsKKyAgICAgICAgICAgICAgICB2YWx1ZXNbY291bnRWYWx1ZXMgKytdID0gY2hlY2tSYW5nZXNbaV0udmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW50IGxpbWl0ID0gcy5sZW5ndGgoKTsKKyAgICAgICAgLy8gdHJ5IGZvcndhcmQKKyAgICAgICAgaW50IHAgPSAwOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIHdoaWxlKHAgPCBsaW1pdCkgeworICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQocywgcCk7CisgICAgICAgICAgICBwICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgIGludCB2YWx1ZSA9IHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgICAgICBpZiAodmFsdWUgIT0gdmFsdWVzW2ldKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIndyb25nIHZhbHVlIGZyb20gVVRSSUVfTkVYVChVKyIgCisgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGMpICsgIik6IDB4IiAKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodmFsdWUpICsgIiBpbnN0ZWFkIG9mIDB4IgorICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyh2YWx1ZXNbaV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHVubGlrZSB0aGUgYyB2ZXJzaW9uIGxlYWQgaXMgMCBpZiBjIGlzIG5vbi1zdXBwbGVtZW50YXJ5CisgICAgICAgICAgICBjaGFyIGxlYWQgPSBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGMpOworICAgICAgICAgICAgY2hhciB0cmFpbCA9IFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGMpOyAKKyAgICAgICAgICAgIGlmIChsZWFkID09IDAgCisgICAgICAgICAgICAgICAgPyB0cmFpbCAhPSBzLmNoYXJBdChwIC0gMSkgCisgICAgICAgICAgICAgICAgOiAhVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGxlYWQpIAorICAgICAgICAgICAgICAgICAgfHwgIVVURjE2LmlzVHJhaWxTdXJyb2dhdGUodHJhaWwpIHx8IGxlYWQgIT0gcy5jaGFyQXQocCAtIDIpIAorICAgICAgICAgICAgICAgICAgfHwgdHJhaWwgIT0gcy5jaGFyQXQocCAtIDEpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIndyb25nIChsZWFkLCB0cmFpbCkgZnJvbSBVVFJJRV9ORVhUKFUrIiAKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoYykpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxlYWQgIT0gMCkgeworICAgICAgICAgICAgICAgIHZhbHVlID0gdHJpZS5nZXRMZWFkVmFsdWUobGVhZCk7CisgICAgICAgICAgICAgICAgdmFsdWUgPSB0cmllLmdldFRyYWlsVmFsdWUodmFsdWUsIHRyYWlsKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gdHJpZS5nZXRTdXJyb2dhdGVWYWx1ZShsZWFkLCB0cmFpbCkKKyAgICAgICAgICAgICAgICAgICAgJiYgdmFsdWUgIT0gdmFsdWVzW2ldKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJ3cm9uZyB2YWx1ZSBmcm9tIGdldHRpbmcgc3VwcGxlbWVudGFyeSAiIAorICAgICAgICAgICAgICAgICAgICAgICAgICArICJ2YWx1ZXMgKFUrIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGMpICsgIik6IDB4IgorICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodmFsdWUpICsgIiBpbnN0ZWFkIG9mIDB4IgorICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodmFsdWVzW2ldKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgKysgaTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RUcmllUmFuZ2VzKFNldFJhbmdlIHNldFJhbmdlc1tdLCBpbnQgY291bnRTZXRSYW5nZXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hlY2tSYW5nZSBjaGVja1Jhbmdlc1tdLCBpbnQgY291bnRDaGVja1JhbmdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbGF0aW4xTGluZWFyKSAKKyAgICB7CisgICAgICAgIEludFRyaWVCdWlsZGVyIG5ld1RyaWUgPSBuZXcgSW50VHJpZUJ1aWxkZXIobnVsbCwgMjAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Jhbmdlc1swXS52YWx1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tSYW5nZXNbMF0udmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0aW4xTGluZWFyKTsKKyAgICAKKyAgICAgICAgLy8gc2V0IHZhbHVlcyBmcm9tIHNldFJhbmdlc1tdCisgICAgICAgIGJvb2xlYW4gb2sgPSB0cnVlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50U2V0UmFuZ2VzOyArKyBpKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBzZXRSYW5nZXNbaV0uc3RhcnQ7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBzZXRSYW5nZXNbaV0ubGltaXQ7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSBzZXRSYW5nZXNbaV0udmFsdWU7CisgICAgICAgICAgICBib29sZWFuIG92ZXJ3cml0ZSA9IHNldFJhbmdlc1tpXS5vdmVyd3JpdGU7CisgICAgICAgICAgICBpZiAoKGxpbWl0IC0gc3RhcnQpID09IDEgJiYgb3ZlcndyaXRlKSB7CisgICAgICAgICAgICAgICAgb2sgJj0gbmV3VHJpZS5zZXRWYWx1ZShzdGFydCwgdmFsdWUpOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG9rICY9IG5ld1RyaWUuc2V0UmFuZ2Uoc3RhcnQsIGxpbWl0LCB2YWx1ZSwgb3ZlcndyaXRlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIW9rKSB7CisgICAgICAgICAgICBlcnJsbigic2V0dGluZyB2YWx1ZXMgaW50byBhIHRyaWUgZmFpbGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gdmVyaWZ5IHRoYXQgYWxsIHRoZXNlIHZhbHVlcyBhcmUgaW4gdGhlIG5ldyBUcmllCisgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnRDaGVja1JhbmdlczsgKysgaSkgeworICAgICAgICAgICAgaW50IGxpbWl0ID0gY2hlY2tSYW5nZXNbaV0ubGltaXQ7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSBjaGVja1Jhbmdlc1tpXS52YWx1ZTsKKyAgICAKKyAgICAgICAgICAgIHdoaWxlIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IG5ld1RyaWUuZ2V0VmFsdWUoc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJuZXdUcmllIFtVKyIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhzdGFydCkgKyAiXT09MHgiIAorICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcobmV3VHJpZS5nZXRWYWx1ZShzdGFydCkpIAorICAgICAgICAgICAgICAgICAgICAgICAgICArICIgaW5zdGVhZCBvZiAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHZhbHVlKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICsrIHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIEludFRyaWUgdHJpZSA9IG5ld1RyaWUuc2VyaWFsaXplKG5ldyBfdGVzdEZvbGRlZFZhbHVlKG5ld1RyaWUpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IF90ZXN0Rm9sZGluZ09mZnNldCgpKTsKKyAgICAKKyAgICAgICAgLy8gdGVzdCBsaW5lYXIgTGF0aW4tMSByYW5nZSBmcm9tIHV0cmllX2dldERhdGEoKQorICAgICAgICBpZiAobGF0aW4xTGluZWFyKSB7CisgICAgICAgICAgICBzdGFydCA9IDA7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50Q2hlY2tSYW5nZXMgJiYgc3RhcnQgPD0gMHhmZjsgKysgaSkgeworICAgICAgICAgICAgICAgIGludCBsaW1pdCA9IGNoZWNrUmFuZ2VzW2ldLmxpbWl0OworICAgICAgICAgICAgICAgIGludCB2YWx1ZSA9IGNoZWNrUmFuZ2VzW2ldLnZhbHVlOworICAgIAorICAgICAgICAgICAgICAgIHdoaWxlIChzdGFydCA8IGxpbWl0ICYmIHN0YXJ0IDw9IDB4ZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IHRyaWUuZ2V0TGF0aW4xTGluZWFyVmFsdWUoKGNoYXIpc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiSW50VHJpZS5nZXRMYXRpbjFMaW5lYXJWYWx1ZVtVKyIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoc3RhcnQpICsgIl09PTB4IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWUuZ2V0TGF0aW4xTGluZWFyVmFsdWUoKGNoYXIpIHN0YXJ0KSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgaW5zdGVhZCBvZiAweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHZhbHVlKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKysgc3RhcnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChsYXRpbjFMaW5lYXIgIT0gdHJpZS5pc0xhdGluMUxpbmVhcigpKSB7CisgICAgICAgICAgICBlcnJsbigidHJpZSBzZXJpYWxpemF0aW9uIGRpZCBub3QgcHJlc2VydmUgIgorICAgICAgICAgICAgICAgICAgKyAiTGF0aW4tMS1saW5lYXJpdHkiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyB2ZXJpZnkgdGhhdCBhbGwgdGhlc2UgdmFsdWVzIGFyZSBpbiB0aGUgc2VyaWFsaXplZCBUcmllCisgICAgICAgIHN0YXJ0ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudENoZWNrUmFuZ2VzOyArKyBpKSB7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBjaGVja1Jhbmdlc1tpXS5saW1pdDsKKyAgICAgICAgICAgIGludCB2YWx1ZSA9IGNoZWNrUmFuZ2VzW2ldLnZhbHVlOworICAgIAorICAgICAgICAgICAgaWYgKHN0YXJ0ID09IDB4ZDgwMCkgeworICAgICAgICAgICAgICAgIC8vIHNraXAgc3Vycm9nYXRlcworICAgICAgICAgICAgICAgIHN0YXJ0ID0gbGltaXQ7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICB3aGlsZSAoc3RhcnQgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIGlmIChzdGFydCA8PSAweGZmZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHZhbHVlMiA9IHRyaWUuZ2V0Qk1QVmFsdWUoKGNoYXIpc3RhcnQpOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gdmFsdWUyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigic2VyaWFsaXplZCB0cmllLmdldEJNUFZhbHVlKFUrIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHN0YXJ0KSArICIgPT0gMHgiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHZhbHVlMikgKyAiIGluc3RlYWQgb2YgMHgiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcodmFsdWUpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIVVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhcilzdGFydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlMiA9IHRyaWUuZ2V0TGVhZFZhbHVlKChjaGFyKXN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigic2VyaWFsaXplZCB0cmllLmdldExlYWRWYWx1ZShVKyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhzdGFydCkgKyAiID09IDB4IiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyh2YWx1ZTIpICsgIiBpbnN0ZWFkIG9mIDB4IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHZhbHVlKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IHZhbHVlMiA9IHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoc3RhcnQpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZTIpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oInNlcmlhbGl6ZWQgdHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShVKyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHN0YXJ0KSArICIpPT0weCIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyh2YWx1ZTIpICsgIiBpbnN0ZWFkIG9mIDB4IiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHZhbHVlKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICsrIHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIC8vIGVudW1lcmF0ZSBhbmQgdmVyaWZ5IGFsbCByYW5nZXMKKyAgICAgICAgCisgICAgICAgIGludCBlbnVtUmFuZ2VzID0gMTsKKyAgICAgICAgVHJpZUl0ZXJhdG9yIGl0ZXIgID0gbmV3IF90ZXN0RW51bVZhbHVlKHRyaWUpOworICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCByZXN1bHQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIubmV4dChyZXN1bHQpKSB7CisgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXJ0ICE9IGNoZWNrUmFuZ2VzW2VudW1SYW5nZXMgLTFdLmxpbWl0IAorICAgICAgICAgICAgICAgIHx8IHJlc3VsdC5saW1pdCAhPSBjaGVja1Jhbmdlc1tlbnVtUmFuZ2VzXS5saW1pdAorICAgICAgICAgICAgICAgIHx8IChyZXN1bHQudmFsdWUgXiAweDU1NTUpICE9IGNoZWNrUmFuZ2VzW2VudW1SYW5nZXNdLnZhbHVlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInV0cmllX2VudW0oKSBkZWxpdmVycyB3cm9uZyByYW5nZSBbVSsiCisgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHJlc3VsdC5zdGFydCkgKyAiLi5VKyIgCisgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHJlc3VsdC5saW1pdCkgKyAiXS4weCIgCisgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHJlc3VsdC52YWx1ZSBeIDB4NTU1NSkgCisgICAgICAgICAgICAgICAgICAgICAgKyAiIGluc3RlYWQgb2YgW1UrIgorICAgICAgICAgICAgICAgICAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhjaGVja1Jhbmdlc1tlbnVtUmFuZ2VzIC0xXS5saW1pdCkgCisgICAgICAgICAgICAgICAgICAgICAgKyAiLi5VKyIgCisgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNoZWNrUmFuZ2VzW2VudW1SYW5nZXNdLmxpbWl0KSAKKyAgICAgICAgICAgICAgICAgICAgICArICJdLjB4IiAKKyAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoY2hlY2tSYW5nZXNbZW51bVJhbmdlc10udmFsdWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVudW1SYW5nZXMgKys7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gdGVzdCBsaW5lYXIgTGF0aW4tMSByYW5nZQorICAgICAgICBpZiAodHJpZS5pc0xhdGluMUxpbmVhcigpKSB7CisgICAgICAgICAgICBmb3IgKHN0YXJ0ID0gMDsgc3RhcnQgPCAweDEwMDsgKysgc3RhcnQpIHsKKyAgICAgICAgICAgICAgICBpZiAodHJpZS5nZXRMYXRpbjFMaW5lYXJWYWx1ZSgoY2hhcilzdGFydCkgCisgICAgICAgICAgICAgICAgICAgICE9IHRyaWUuZ2V0TGVhZFZhbHVlKChjaGFyKXN0YXJ0KSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigidHJpZS5nZXRMYXRpbjFMaW5lYXJWYWx1ZVtVKyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHN0YXJ0KSArICJdPTB4IgorICAgICAgICAgICAgICAgICAgICAgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZS5nZXRMYXRpbjFMaW5lYXJWYWx1ZSgoY2hhcilzdGFydCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBpbnN0ZWFkIG9mIDB4IiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWUuZ2V0TGVhZFZhbHVlKChjaGFyKXN0YXJ0KSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBfdGVzdFRyaWVJdGVyYXRpb24odHJpZSwgY2hlY2tSYW5nZXMsIGNvdW50Q2hlY2tSYW5nZXMpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RUcmllUmFuZ2VzMihTZXRSYW5nZSBzZXRSYW5nZXNbXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50U2V0UmFuZ2VzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGVja1JhbmdlIGNoZWNrUmFuZ2VzW10sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb3VudENoZWNrUmFuZ2VzKSAKKyAgICB7CisgICAgICAgIF90ZXN0VHJpZVJhbmdlcyhzZXRSYW5nZXMsIGNvdW50U2V0UmFuZ2VzLCBjaGVja1JhbmdlcywgY291bnRDaGVja1JhbmdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyAgICAgICAgCisgICAgICAgIF90ZXN0VHJpZVJhbmdlcyhzZXRSYW5nZXMsIGNvdW50U2V0UmFuZ2VzLCBjaGVja1JhbmdlcywgY291bnRDaGVja1JhbmdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RUcmllUmFuZ2VzNChTZXRSYW5nZSBzZXRSYW5nZXNbXSwgaW50IGNvdW50U2V0UmFuZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoZWNrUmFuZ2UgY2hlY2tSYW5nZXNbXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50Q2hlY2tSYW5nZXMpIAorICAgIHsKKyAgICAgICAgX3Rlc3RUcmllUmFuZ2VzMihzZXRSYW5nZXMsIGNvdW50U2V0UmFuZ2VzLCBjaGVja1JhbmdlcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRDaGVja1Jhbmdlcyk7CisgICAgfQorICAgIAorICAgIC8vIHRlc3QgZGF0YSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKiogCisgICAgICogc2V0IGNvbnNlY3V0aXZlIHJhbmdlcywgZXZlbiB3aXRoIHZhbHVlIDAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTZXRSYW5nZSBzZXRSYW5nZXMxW109eworICAgICAgICBuZXcgU2V0UmFuZ2UoMCwgICAgICAweDIwLCAgICAgICAwLCAgICAgIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4MjAsICAgMHhhNywgICAgICAgMHgxMjM0LCBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweGE3LCAgIDB4MzQwMCwgICAgIDAsICAgICAgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHgzNDAwLCAweDlmYTYsICAgICAweDYxNjIsIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4OWZhNiwgMHhkYTllLCAgICAgMHgzMTMyLCBmYWxzZSksCisgICAgICAgIC8vIHRyeSB0byBkaXNydXB0IF90ZXN0Rm9sZGluZ09mZnNldDE2KCkKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4ZGFkYSwgMHhlZWVlLCAgICAgMHg4N2ZmLCBmYWxzZSksIAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHhlZWVlLCAweDExMTExLCAgICAxLCAgICAgIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4MTExMTEsIDB4NDQ0NDQsICAgMHg2MTYyLCBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweDQ0NDQ0LCAweDYwMDAzLCAgIDAsICAgICAgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHhmMDAwMywgMHhmMDAwNCwgICAweGYsICAgIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4ZjAwMDQsIDB4ZjAwMDYsICAgMHgxMCwgICBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweGYwMDA2LCAweGYwMDA3LCAgIDB4MTEsICAgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHhmMDAwNywgMHhmMDAyMCwgICAweDEyLCAgIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4ZjAwMjAsIDB4MTEwMDAwLCAgMCwgICAgICBmYWxzZSkKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIENoZWNrUmFuZ2UgY2hlY2tSYW5nZXMxW109eworICAgICAgICBuZXcgQ2hlY2tSYW5nZSgwLCAgICAgIDApLCAvLyBkdW1teSBzdGFydCByYW5nZSB0byBtYWtlIF90ZXN0RW51bVJhbmdlKCkgc2ltcGxlcgorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDIwLCAgIDApLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweGE3LCAgIDB4MTIzNCksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MzQwMCwgMCksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4OWZhNiwgMHg2MTYyKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHhkYTllLCAweDMxMzIpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweGRhZGEsIDApLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweGVlZWUsIDB4ODdmZiksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4MTExMTEsMSksCisgICAgICAgIG5ldyBDaGVja1JhbmdlKDB4NDQ0NDQsMHg2MTYyKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHhmMDAwMywwKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHhmMDAwNCwweGYpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweGYwMDA2LDB4MTApLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweGYwMDA3LDB4MTEpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweGYwMDIwLDB4MTIpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDExMDAwMCwgMCkKKyAgICB9OworICAgIAorICAgIC8qKiAKKyAgICAgKiBzZXQgc29tZSBpbnRlcmVzdGluZyBvdmVybGFwcGluZyByYW5nZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTZXRSYW5nZSBzZXRSYW5nZXMyW109eworICAgICAgICBuZXcgU2V0UmFuZ2UoMHgyMSwgICAweDdmLCAgICAgICAweDU1NTUsIHRydWUpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHgyZjgwMCwweDJmZWRjLCAgICAweDdhLCAgIHRydWUpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHg3MiwgICAweGRkLCAgICAgICAzLCAgICAgIHRydWUpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHhkZCwgICAweGRlLCAgICAgICA0LCAgICAgIGZhbHNlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4MmY5ODcsMHgyZmE5OCwgICAgNSwgICAgICB0cnVlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4MmY3NzcsMHgyZjgzMywgICAgMCwgICAgICB0cnVlKSwKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4MmY5MDAsMHgyZmZlZSwgICAgMSwgICAgICBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweDJmZmVlLDB4MmZmZWYsICAgIDIsICAgICAgdHJ1ZSkKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIENoZWNrUmFuZ2UgY2hlY2tSYW5nZXMyW109eworICAgICAgICAvLyBkdW1teSBzdGFydCByYW5nZSB0byBtYWtlIF90ZXN0RW51bVJhbmdlKCkgc2ltcGxlcgorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgwLCAgICAgIDApLCAgICAgICAKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHgyMSwgICAwKSwKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMHg3MiwgICAweDU1NTUpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweGRkLCAgIDMpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweGRlLCAgIDQpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDJmODMzLDApLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDJmOTg3LDB4N2EpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDJmYTk4LDUpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDJmZWRjLDB4N2EpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDJmZmVlLDEpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDJmZmVmLDIpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDExMDAwMCwgMCkKKyAgICB9OworICAgIAorICAgIC8qKiAKKyAgICAgKiB1c2UgYSBub24temVybyBpbml0aWFsIHZhbHVlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU2V0UmFuZ2Ugc2V0UmFuZ2VzM1tdPXsKKyAgICAgICAgbmV3IFNldFJhbmdlKDB4MzEsICAgMHhhNCwgICAxLCAgZmFsc2UpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHgzNDAwLCAweDY3ODksIDIsICBmYWxzZSksCisgICAgICAgIG5ldyBTZXRSYW5nZSgweDMwMDAwLDB4MzQ1NjcsOSwgIHRydWUpLAorICAgICAgICBuZXcgU2V0UmFuZ2UoMHg0NTY3OCwweDU2Nzg5LDMsICB0cnVlKQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2hlY2tSYW5nZSBjaGVja1JhbmdlczNbXT17CisgICAgICAgIC8vIGR1bW15IHN0YXJ0IHJhbmdlLCBhbHNvIGNhcnJpZXMgdGhlIGluaXRpYWwgdmFsdWUKKyAgICAgICAgbmV3IENoZWNrUmFuZ2UoMCwgICAgICA5KSwgIAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDMxLCAgIDkpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweGE0LCAgIDEpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDM0MDAsIDkpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDY3ODksIDIpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDQ1Njc4LDkpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDU2Nzg5LDMpLAorICAgICAgICBuZXcgQ2hlY2tSYW5nZSgweDExMDAwMCw5KQorICAgIH07CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEludFRyaWUoKSAKKyAgICB7CisgICAgICAgIF90ZXN0VHJpZVJhbmdlczQoc2V0UmFuZ2VzMSwgc2V0UmFuZ2VzMS5sZW5ndGgsIGNoZWNrUmFuZ2VzMSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tSYW5nZXMxLmxlbmd0aCk7CisgICAgICAgIF90ZXN0VHJpZVJhbmdlczQoc2V0UmFuZ2VzMiwgc2V0UmFuZ2VzMi5sZW5ndGgsIGNoZWNrUmFuZ2VzMiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tSYW5nZXMyLmxlbmd0aCk7IAorICAgICAgICBfdGVzdFRyaWVSYW5nZXM0KHNldFJhbmdlczMsIHNldFJhbmdlczMubGVuZ3RoLCBjaGVja1JhbmdlczMsIAorICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrUmFuZ2VzMy5sZW5ndGgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2hhclZhbHVlcygpCisgICAgeworICAgICAgICBDaGFyVHJpZSB0cmllID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICB0cmllID0gVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCkubV90cmllXzsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHdhcm5sbigiRXJyb3IgY3JlYXRpbmcgdWNoYXJhY3RlciB0cmllIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMHhGRkZGOyBpICsrKSB7CisgICAgICAgICAgICBpZiAoaSA8IDB4RkYgCisgICAgICAgICAgICAgICAgJiYgdHJpZS5nZXRCTVBWYWx1ZSgoY2hhcilpKSAKKyAgICAgICAgICAgICAgICAgICAgIT0gdHJpZS5nZXRMYXRpbjFMaW5lYXJWYWx1ZSgoY2hhcilpKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGb3IgbGF0aW4gMSBjb2RlcG9pbnQsIGdldEJNUFZhbHVlIHNob3VsZCBiZSB0aGUgc2FtZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgImFzIGdldExhdGluMUxpbmVhclZhbHVlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodHJpZS5nZXRCTVBWYWx1ZSgoY2hhcilpKSAhPSB0cmllLmdldENvZGVQb2ludFZhbHVlKGkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZvciBCTVAgY29kZXBvaW50LCBnZXRCTVBWYWx1ZSBzaG91bGQgYmUgdGhlIHNhbWUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICJhcyBnZXRDb2RlcG9pbnRWYWx1ZSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAweDEwMDAwOyBpIDwgMHgxMGZmZmY7IGkgKyspIHsKKyAgICAgICAgICAgIGNoYXIgbGVhZCA9IFVURjE2LmdldExlYWRTdXJyb2dhdGUoaSk7CisgICAgICAgICAgICBjaGFyIHRyYWlsID0gVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoaSk7CisgICAgICAgICAgICBjaGFyIHZhbHVlID0gdHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShpKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSAhPSB0cmllLmdldFN1cnJvZ2F0ZVZhbHVlKGxlYWQsIHRyYWlsKSB8fAorICAgICAgICAgICAgICAgIHZhbHVlICE9IHRyaWUuZ2V0VHJhaWxWYWx1ZSh0cmllLmdldExlYWRWYWx1ZShsZWFkKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWlsKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJGb3IgTm9uLUJNUCBjb2RlcG9pbnRzLCBnZXRTdXJyb2dhdGVWYWx1ZSBzaG91bGQgYmUgIgorICAgICAgICAgICAgICAgICAgICAgICsgInRoZSBzYW1lIHMgZ2V0Q29kZXBvaW50VmFsdWUgYW5kIGdldFRyYWlsVmFsdWUiKTsKKyAgICAgICAgICAgIH0gICAgICAgIAorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgRHVtbXlHZXRGb2xkaW5nT2Zmc2V0IGltcGxlbWVudHMgVHJpZS5EYXRhTWFuaXB1bGF0ZSB7CisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Rm9sZGluZ09mZnNldChpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsgLyogbmV2ZXIgZ2V0IG5vbi1pbml0aWFsVmFsdWUgZGF0YSBmb3Igc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAqLworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdER1bW15Q2hhclRyaWUoKSB7CisgICAgICAgIENoYXJUcmllIHRyaWU7CisgICAgICAgIGZpbmFsIGludCBpbml0aWFsVmFsdWU9MHgzMTMsIGxlYWRVbml0VmFsdWU9MHhhZmZlOyAKKyAgICAgICAgaW50IHZhbHVlOworICAgICAgICBpbnQgYzsKKyAgICAgICAgdHJpZT1uZXcgQ2hhclRyaWUoaW5pdGlhbFZhbHVlLCBsZWFkVW5pdFZhbHVlLCBuZXcgRHVtbXlHZXRGb2xkaW5nT2Zmc2V0KCkpOworCisgICAgICAgIC8qIHRlc3QgdGhhdCBhbGwgY29kZSBwb2ludHMgaGF2ZSBpbml0aWFsVmFsdWUgKi8KKyAgICAgICAgZm9yKGM9MDsgYzw9MHgxMGZmZmY7ICsrYykgeworICAgICAgICAgICAgdmFsdWU9dHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgICAgIGlmKHZhbHVlIT1pbml0aWFsVmFsdWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQ2hhclRyaWUvZHVtbXkuZ2V0Q29kZVBvaW50VmFsdWUoYykoVSsiK2hleChjKSsiKT0weCIraGV4KHZhbHVlKSsiIGluc3RlYWQgb2YgMHgiK2hleChpbml0aWFsVmFsdWUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qIHRlc3QgdGhhdCB0aGUgbGVhZCBzdXJyb2dhdGUgY29kZSB1bml0cyBoYXZlIGxlYWRVbml0VmFsdWUgKi8KKyAgICAgICAgZm9yKGM9MHhkODAwOyBjPD0weGRiZmY7ICsrYykgeworICAgICAgICAgICAgdmFsdWU9dHJpZS5nZXRMZWFkVmFsdWUoKGNoYXIpYyk7CisgICAgICAgICAgICBpZih2YWx1ZSE9bGVhZFVuaXRWYWx1ZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyVHJpZS9kdW1teS5nZXRMZWFkVmFsdWUoYykoVSsiK2hleChjKSsiKT0weCIraGV4KHZhbHVlKSsiIGluc3RlYWQgb2YgMHgiK2hleChsZWFkVW5pdFZhbHVlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RHVtbXlJbnRUcmllKCkgeworICAgICAgICBJbnRUcmllIHRyaWU7CisgICAgICAgIGZpbmFsIGludCBpbml0aWFsVmFsdWU9MHgwMTIzNDU2NywgbGVhZFVuaXRWYWx1ZT0weDg5YWJjZGVmOyAKKyAgICAgICAgaW50IHZhbHVlOworICAgICAgICBpbnQgYzsKKyAgICAgICAgdHJpZT1uZXcgSW50VHJpZShpbml0aWFsVmFsdWUsIGxlYWRVbml0VmFsdWUsIG5ldyBEdW1teUdldEZvbGRpbmdPZmZzZXQoKSk7CisKKyAgICAgICAgLyogdGVzdCB0aGF0IGFsbCBjb2RlIHBvaW50cyBoYXZlIGluaXRpYWxWYWx1ZSAqLworICAgICAgICBmb3IoYz0wOyBjPD0weDEwZmZmZjsgKytjKSB7CisgICAgICAgICAgICB2YWx1ZT10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICAgICAgaWYodmFsdWUhPWluaXRpYWxWYWx1ZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJJbnRUcmllL2R1bW15LmdldENvZGVQb2ludFZhbHVlKGMpKFUrIitoZXgoYykrIik9MHgiK2hleCh2YWx1ZSkrIiBpbnN0ZWFkIG9mIDB4IitoZXgoaW5pdGlhbFZhbHVlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiB0ZXN0IHRoYXQgdGhlIGxlYWQgc3Vycm9nYXRlIGNvZGUgdW5pdHMgaGF2ZSBsZWFkVW5pdFZhbHVlICovCisgICAgICAgIGZvcihjPTB4ZDgwMDsgYzw9MHhkYmZmOyArK2MpIHsKKyAgICAgICAgICAgIHZhbHVlPXRyaWUuZ2V0TGVhZFZhbHVlKChjaGFyKWMpOworICAgICAgICAgICAgaWYodmFsdWUhPWxlYWRVbml0VmFsdWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiSW50VHJpZS9kdW1teS5nZXRMZWFkVmFsdWUoYykoVSsiK2hleChjKSsiKT0weCIraGV4KHZhbHVlKSsiIGluc3RlYWQgb2YgMHgiK2hleChsZWFkVW5pdFZhbHVlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9VTG9jYWxlVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVUxvY2FsZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOWU0MmJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVUxvY2FsZVRlc3QuamF2YQpAQCAtMCwwICsxLDEzMDcgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IEphbnVhcnkgMTQgMjAwNAorKiBTaW5jZTogSUNVIDIuOAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworCitwdWJsaWMgY2xhc3MgVUxvY2FsZVRlc3QgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgbmV3IFVMb2NhbGVUZXN0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RDYWxlbmRhcigpIHsKKyAgICAgICAgLy8gVE9ETyBUaGUgQ2FsZW5kYXJGYWN0b3J5IG1lY2hhbmlzbSBpcyBub3QgcHVibGljLAorICAgICAgICAvLyBzbyB3ZSBjYW4ndCB0ZXN0IGl0IHlldC4gIElmIGl0IGJlY29tZXMgcHVibGljLAorICAgICAgICAvLyBlbmFibGUgdGhpcyBjb2RlLgorCisgICAgICAgIC8vIGNsYXNzIENGYWN0b3J5IGltcGxlbWVudHMgQ2FsZW5kYXJGYWN0b3J5IHsKKyAgICAgICAgLy8gICAgIExvY2FsZSBsb2M7CisgICAgICAgIC8vICAgICBDYWxlbmRhciBwcm90bzsKKyAgICAgICAgLy8gICAgIHB1YmxpYyBDRmFjdG9yeShMb2NhbGUgbG9jYWxlLCBDYWxlbmRhciBwcm90b3R5cGUpIHsKKyAgICAgICAgLy8gICAgICAgICBsb2MgPSBsb2NhbGU7CisgICAgICAgIC8vICAgICAgICAgcHJvdG8gPSBwcm90b3R5cGU7CisgICAgICAgIC8vICAgICB9CisgICAgICAgIC8vICAgICBwdWJsaWMgQ2FsZW5kYXIgY3JlYXRlKFRpbWVab25lIHR6LCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIC8vICAgICAgICAgLy8gaWdub3JlIHR6IC0tIG5vdCByZWxldmFudCB0byB0aGlzIHRlc3QKKyAgICAgICAgLy8gICAgICAgICByZXR1cm4gbG9jYWxlLmVxdWFscyhsb2MpID8KKyAgICAgICAgLy8gICAgICAgICAgICAgKENhbGVuZGFyKSBwcm90by5jbG9uZSgpIDogbnVsbDsKKyAgICAgICAgLy8gICAgIH0KKyAgICAgICAgLy8gICAgIHB1YmxpYyBTdHJpbmcgZmFjdG9yeU5hbWUoKSB7CisgICAgICAgIC8vICAgICAgICAgcmV0dXJuICJDRmFjdG9yeSI7CisgICAgICAgIC8vICAgICB9CisgICAgICAgIC8vIH07CisKKyAgICAgICAgY2hlY2tTZXJ2aWNlKCJlbl9VU19CUk9PS0xZTiIsIG5ldyBTZXJ2aWNlRmFjYWRlKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKFVMb2NhbGUgcmVxKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDYWxlbmRhci5nZXRJbnN0YW5jZShyZXEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyB9LCBudWxsLCBuZXcgUmVnaXN0cmFyKCkgeworICAgICAgICAgICAgICAgIC8vICAgICBwdWJsaWMgT2JqZWN0IHJlZ2lzdGVyKFVMb2NhbGUgbG9jLCBPYmplY3QgcHJvdG90eXBlKSB7CisgICAgICAgICAgICAgICAgLy8gICAgICAgICBDRmFjdG9yeSBmID0gbmV3IENGYWN0b3J5KGxvYywgKENhbGVuZGFyKSBwcm90b3R5cGUpOworICAgICAgICAgICAgICAgIC8vICAgICAgICAgcmV0dXJuIENhbGVuZGFyLnJlZ2lzdGVyKGYsIGxvYyk7CisgICAgICAgICAgICAgICAgLy8gICAgIH0KKyAgICAgICAgICAgICAgICAvLyAgICAgcHVibGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3Qga2V5KSB7CisgICAgICAgICAgICAgICAgLy8gICAgICAgICByZXR1cm4gQ2FsZW5kYXIudW5yZWdpc3RlcihrZXkpOworICAgICAgICAgICAgICAgIC8vICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvLyBDdXJyZW5jeSBnZXRMb2NhbGUgQVBJIGlzIG9ic29sZXRlIGluIDMuMi4gIFNpbmNlIGl0IG5vdyByZXR1cm5zIFVMb2NhbGUuUk9PVCwKKyAgICAvLyBhbmQgdGhpcyBpcyBub3QgZXF1YWwgdG8gdGhlIHJlcXVlc3RlZCBsb2NhbGUgemhfVFdfVEFJUEVJLCB0aGUKKyAgICAvLyBjaGVja1NlcnZpY2UgY2FsbCB3b3VsZCBhbHdheXMgZmFpbC4gIFNvIHdlIG5vdyBvbWl0IHRoZSB0ZXN0LgorICAgIC8qCisgICAgcHVibGljIHZvaWQgVGVzdEN1cnJlbmN5KCkgeworICAgICAgICBjaGVja1NlcnZpY2UoInpoX1RXX1RBSVBFSSIsIG5ldyBTZXJ2aWNlRmFjYWRlKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKFVMb2NhbGUgcmVxKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDdXJyZW5jeS5nZXRJbnN0YW5jZShyZXEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sIG51bGwsIG5ldyBSZWdpc3RyYXIoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgcmVnaXN0ZXIoVUxvY2FsZSBsb2MsIE9iamVjdCBwcm90b3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDdXJyZW5jeS5yZWdpc3Rlckluc3RhbmNlKChDdXJyZW5jeSkgcHJvdG90eXBlLCBsb2MpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IGtleSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEN1cnJlbmN5LnVucmVnaXN0ZXIoa2V5KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgIH0KKyAgICAqLworCisgICAgcHVibGljIHZvaWQgVGVzdEJyZWFrSXRlcmF0b3IoKSB7CisgICAgICAgIGNoZWNrU2VydmljZSgiaGlfSU5fQkhPUEFMIiwgbmV3IFNlcnZpY2VGYWNhZGUoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBjcmVhdGUoVUxvY2FsZSByZXEpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKHJlcSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwgbnVsbCwgbmV3IFJlZ2lzdHJhcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCByZWdpc3RlcihVTG9jYWxlIGxvYywgT2JqZWN0IHByb3RvdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJyZWFrSXRlcmF0b3IucmVnaXN0ZXJJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJyZWFrSXRlcmF0b3IpIHByb3RvdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jLCBCcmVha0l0ZXJhdG9yLktJTkRfV09SRCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3Qga2V5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQnJlYWtJdGVyYXRvci51bnJlZ2lzdGVyKGtleSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29sbGF0b3IoKSB7CisgICAgICAgIGNoZWNrU2VydmljZSgiamFfSlBfWU9LT0hBTUEiLCBuZXcgU2VydmljZUZhY2FkZSgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShVTG9jYWxlIHJlcSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29sbGF0b3IuZ2V0SW5zdGFuY2UocmVxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LCBudWxsLCBuZXcgUmVnaXN0cmFyKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IHJlZ2lzdGVyKFVMb2NhbGUgbG9jLCBPYmplY3QgcHJvdG90eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29sbGF0b3IucmVnaXN0ZXJJbnN0YW5jZSgoQ29sbGF0b3IpIHByb3RvdHlwZSwgbG9jKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCBrZXkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb2xsYXRvci51bnJlZ2lzdGVyKGtleSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGF0ZUZvcm1hdCgpIHsKKyAgICAgICAgY2hlY2tTZXJ2aWNlKCJkZV9DSF9aVVJJQ0giLCBuZXcgU2VydmljZUZhY2FkZSgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShVTG9jYWxlIHJlcSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCByZXEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sIG5ldyBTdWJvYmplY3QoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0KE9iamVjdCBwYXJlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoKFNpbXBsZURhdGVGb3JtYXQpIHBhcmVudCkuZ2V0RGF0ZUZvcm1hdFN5bWJvbHMoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sIG51bGwpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3ROdW1iZXJGb3JtYXQoKSB7CisgICAgICAgIGNsYXNzIE5GYWN0b3J5IGV4dGVuZHMgU2ltcGxlTnVtYmVyRm9ybWF0RmFjdG9yeSB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgcHJvdG87CisgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZTsKKyAgICAgICAgICAgIHB1YmxpYyBORmFjdG9yeShVTG9jYWxlIGxvYywgTnVtYmVyRm9ybWF0IGZtdCkgeworICAgICAgICAgICAgICAgIHN1cGVyKGxvYyk7CisgICAgICAgICAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2M7CisgICAgICAgICAgICAgICAgdGhpcy5wcm90byA9IGZtdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyBOdW1iZXJGb3JtYXQgY3JlYXRlRm9ybWF0KFVMb2NhbGUgbG9jLCBpbnQgZm9ybWF0VHlwZSkgeworICAgICAgICAgICAgICAgIHJldHVybiAoTnVtYmVyRm9ybWF0KSAobG9jYWxlLmVxdWFscyhsb2MpID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvLmNsb25lKCkgOiBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICBjaGVja1NlcnZpY2UoImZyX0ZSX05JQ0UiLCBuZXcgU2VydmljZUZhY2FkZSgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGNyZWF0ZShVTG9jYWxlIHJlcSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKHJlcSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwgbmV3IFN1Ym9iamVjdCgpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBnZXQoT2JqZWN0IHBhcmVudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoRGVjaW1hbEZvcm1hdCkgcGFyZW50KS5nZXREZWNpbWFsRm9ybWF0U3ltYm9scygpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwgbmV3IFJlZ2lzdHJhcigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgcmVnaXN0ZXIoVUxvY2FsZSBsb2MsIE9iamVjdCBwcm90b3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBORmFjdG9yeSBmID0gbmV3IE5GYWN0b3J5KGxvYywgKE51bWJlckZvcm1hdCkgcHJvdG90eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyRm9ybWF0LnJlZ2lzdGVyRmFjdG9yeShmKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IGtleSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXJGb3JtYXQudW5yZWdpc3RlcihrZXkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0U2V0VUxvY2FsZUtleXdvcmRzKCkgeworICAgICAgICBVTG9jYWxlIHVsb2MgPSBuZXcgVUxvY2FsZSgiZW5fTGF0bl9VUyIpOworICAgICAgICB1bG9jID0gdWxvYy5zZXRLZXl3b3JkVmFsdWUoIkZvbyIsICJGb29WYWx1ZSIpOworICAgICAgICBpZiAoISJlbl9MYXRuX1VTQGZvbz1Gb29WYWx1ZSIuZXF1YWxzKHVsb2MuZ2V0TmFtZSgpKSkgeworICAgICAgICAgICAgZXJybG4oImZhaWxlZCB0byBhZGQgZm9vIGtleXdvcmQsIGdvdDogIiArIHVsb2MuZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorICAgICAgICB1bG9jID0gdWxvYy5zZXRLZXl3b3JkVmFsdWUoIkJhciIsICJCYXJWYWx1ZSIpOworICAgICAgICBpZiAoISJlbl9MYXRuX1VTQGJhcj1CYXJWYWx1ZTtmb289Rm9vVmFsdWUiLmVxdWFscyh1bG9jLmdldE5hbWUoKSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJmYWlsZWQgdG8gYWRkIGJhciBrZXl3b3JkLCBnb3Q6ICIgKyB1bG9jLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICAgICAgdWxvYyA9IHVsb2Muc2V0S2V5d29yZFZhbHVlKCJCQVIiLCAiTmV3QmFyVmFsdWUiKTsKKyAgICAgICAgaWYgKCEiZW5fTGF0bl9VU0BiYXI9TmV3QmFyVmFsdWU7Zm9vPUZvb1ZhbHVlIi5lcXVhbHModWxvYy5nZXROYW1lKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiZmFpbGVkIHRvIGNoYW5nZSBiYXIga2V5d29yZCwgZ290OiAiICsgdWxvYy5nZXROYW1lKCkpOworICAgICAgICB9CisgICAgICAgIHVsb2MgPSB1bG9jLnNldEtleXdvcmRWYWx1ZSgiQmFSIiwgbnVsbCk7CisgICAgICAgIGlmICghImVuX0xhdG5fVVNAZm9vPUZvb1ZhbHVlIi5lcXVhbHModWxvYy5nZXROYW1lKCkpKSB7CisgICAgICAgICAgICBlcnJsbigiZmFpbGVkIHRvIGRlbGV0ZSBiYXIga2V5d29yZCwgZ290OiAiICsgdWxvYy5nZXROYW1lKCkpOworICAgICAgICB9CisgICAgICAgIHVsb2MgPSB1bG9jLnNldEtleXdvcmRWYWx1ZShudWxsLCBudWxsKTsKKyAgICAgICAgaWYgKCEiZW5fTGF0bl9VUyIuZXF1YWxzKHVsb2MuZ2V0TmFtZSgpKSkgeworICAgICAgICAgICAgZXJybG4oImZhaWxlZCB0byBkZWxldGUgYWxsIGtleXdvcmRzLCBnb3Q6ICIgKyB1bG9jLmdldE5hbWUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PSBJbmZyYXN0cnVjdHVyZSA9PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gbG9jYWxlIElEcy4gIElmIHRoZXkgYXJlIGVxdWFsLCByZXR1cm4gMC4gIElmIGBzdHJpbmcnCisgICAgICogc3RhcnRzIHdpdGggYHByZWZpeCcgcGx1cyBhbiBhZGRpdGlvbmFsIGVsZW1lbnQsIHRoYXQgaXMsIHN0cmluZyA9PQorICAgICAqIHByZWZpeCArICdfJyArIHgsIHRoZW4gcmV0dXJuIDEuICBPdGhlcndpc2UgcmV0dXJuIGEgdmFsdWUgPCAwLgorICAgICAqLworICAgIHN0YXRpYyBpbnQgbG9jY21wKFN0cmluZyBzdHJpbmcsIFN0cmluZyBwcmVmaXgpIHsKKyAgICAgICAgaW50IHNsZW4gPSBzdHJpbmcubGVuZ3RoKCksCisgICAgICAgICAgICBwbGVuID0gcHJlZml4Lmxlbmd0aCgpOworICAgICAgICAvKiAncm9vdCcgaXMgImxlc3MgdGhhbiIgZXZlcnl0aGluZyAqLworICAgICAgICBpZiAocHJlZml4LmVxdWFscygicm9vdCIpKSB7CisgICAgICAgICAgICByZXR1cm4gc3RyaW5nLmVxdWFscygicm9vdCIpID8gMCA6IDE7CisgICAgICAgIH0KKyAgICAgICAgLy8gT04gSkFWQSAob25seSAtLSBub3Qgb24gQyAtLSBzb21lb25lIGNvcnJlY3QgbWUgaWYgSSdtIHdyb25nKQorICAgICAgICAvLyBjb25zaWRlciAiIiB0byBiZSBhbiBhbHRlcm5hdGUgbmFtZSBmb3IgInJvb3QiLgorICAgICAgICBpZiAocGxlbiA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gc2xlbiA9PSAwID8gMCA6IDE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFzdHJpbmcuc3RhcnRzV2l0aChwcmVmaXgpKSByZXR1cm4gLTE7IC8qIG1pc21hdGNoICovCisgICAgICAgIGlmIChzbGVuID09IHBsZW4pIHJldHVybiAwOworICAgICAgICBpZiAoc3RyaW5nLmNoYXJBdChwbGVuKSA9PSAnXycpIHJldHVybiAxOworICAgICAgICByZXR1cm4gLTI7IC8qIGZhbHNlIG1hdGNoLCBlLmcuICJlbl9VU1giIGNtcCAiZW5fVVMiICovCisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHJlcXVlc3RlZCBsb2NhbGVzLCBhbmQgcmVwb3J0IHByb2JsZW1zLgorICAgICAqIFRoZSBjYWxsZXIgc3BlY2lmaWVzIHRoZSBleHBlY3RlZCByZWxhdGlvbnNoaXBzIGJldHdlZW4gcmVxdWVzdGVkCisgICAgICogYW5kIHZhbGlkIChleHBSZXFWYWxpZCkgYW5kIGJldHdlZW4gdmFsaWQgYW5kIGFjdHVhbCAoZXhwVmFsaWRBY3R1YWwpLgorICAgICAqIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisgICAgICogImd0IiBzdHJpY3RseSBncmVhdGVyIHRoYW4sIGUuZy4sIGVuX1VTID4gZW4KKyAgICAgKiAiZ2UiIGdyZWF0ZXIgb3IgZXF1YWwsICAgICAgZS5nLiwgZW4gPj0gZW4KKyAgICAgKiAiZXEiIGVxdWFsLCAgICAgICAgICAgICAgICAgZS5nLiwgZW4gPT0gZW4KKyAgICAgKi8KKyAgICB2b2lkIGNoZWNrbG9jcyhTdHJpbmcgbGFiZWwsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJlcSwKKyAgICAgICAgICAgICAgICAgICBMb2NhbGUgdmFsaWRMb2MsCisgICAgICAgICAgICAgICAgICAgTG9jYWxlIGFjdHVhbExvYywKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgZXhwUmVxVmFsaWQsCisgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cFZhbGlkQWN0dWFsKSB7CisgICAgICAgIFN0cmluZyB2YWxpZCA9IHZhbGlkTG9jLnRvU3RyaW5nKCk7CisgICAgICAgIFN0cmluZyBhY3R1YWwgPSBhY3R1YWxMb2MudG9TdHJpbmcoKTsKKyAgICAgICAgaW50IHJlcVZhbGlkID0gbG9jY21wKHJlcSwgdmFsaWQpOworICAgICAgICBpbnQgdmFsaWRBY3R1YWwgPSBsb2NjbXAodmFsaWQsIGFjdHVhbCk7CisgICAgYm9vbGVhbiByZXFPSyA9IChleHBSZXFWYWxpZC5lcXVhbHMoImd0IikgJiYgcmVxVmFsaWQgPiAwKSB8fAorICAgICAgICAoZXhwUmVxVmFsaWQuZXF1YWxzKCJnZSIpICYmIHJlcVZhbGlkID49IDApIHx8CisgICAgICAgIChleHBSZXFWYWxpZC5lcXVhbHMoImVxIikgJiYgcmVxVmFsaWQgPT0gMCk7CisgICAgYm9vbGVhbiB2YWxPSyA9IChleHBWYWxpZEFjdHVhbC5lcXVhbHMoImd0IikgJiYgdmFsaWRBY3R1YWwgPiAwKSB8fAorICAgICAgICAoZXhwVmFsaWRBY3R1YWwuZXF1YWxzKCJnZSIpICYmIHZhbGlkQWN0dWFsID49IDApIHx8CisgICAgICAgIChleHBWYWxpZEFjdHVhbC5lcXVhbHMoImVxIikgJiYgdmFsaWRBY3R1YWwgPT0gMCk7CisgICAgICAgIGlmIChyZXFPSyAmJiB2YWxPSykgeworICAgICAgICAgICAgbG9nbG4oIk9rOiAiICsgbGFiZWwgKyAiOyByZXE9IiArIHJlcSArICIsIHZhbGlkPSIgKyB2YWxpZCArCisgICAgICAgICAgICAgICAgICAiLCBhY3R1YWw9IiArIGFjdHVhbCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogIiArIGxhYmVsICsgIjsgcmVxPSIgKyByZXEgKyAiLCB2YWxpZD0iICsgdmFsaWQgKworICAgICAgICAgICAgICAgICAgIiwgYWN0dWFsPSIgKyBhY3R1YWwgKworICAgICAgICAgIChyZXFPSyA/ICIiIDogIlxuICByZXEgISIgKyBleHBSZXFWYWxpZCArICIgdmFsaWQiKSArCisgICAgICAgICAgKHZhbE9LID8gIiIgOiAiXG4gIHZhbCAhIiArIGV4cFZhbGlkQWN0dWFsICsgIiBhY3R1YWwiKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnRlcmZhY2UgdXNlZCBieSBjaGVja1NlcnZpY2UgZGVmaW5pbmcgYSBwcm90b2NvbCB0byBjcmVhdGUgYW4KKyAgICAgKiBvYmplY3QsIGdpdmVuIGEgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKi8KKyAgICBpbnRlcmZhY2UgU2VydmljZUZhY2FkZSB7CisgICAgICAgIE9iamVjdCBjcmVhdGUoVUxvY2FsZSByZXF1ZXN0ZWRMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVyZmFjZSB1c2VkIGJ5IGNoZWNrU2VydmljZSBkZWZpbmluZyBhIHByb3RvY29sIHRvIGdldCBhCisgICAgICogY29udGFpbmVkIHN1Ym9iamVjdCwgZ2l2ZW4gaXRzIHBhcmVudCBvYmplY3QuCisgICAgICovCisgICAgaW50ZXJmYWNlIFN1Ym9iamVjdCB7CisgICAgICAgIE9iamVjdCBnZXQoT2JqZWN0IHBhcmVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJmYWNlIHVzZWQgYnkgY2hlY2tTZXJ2aWNlIGRlZmluaW5nIGEgcHJvdG9jb2wgdG8gcmVnaXN0ZXIKKyAgICAgKiBhbmQgdW5yZWdpc3RlciBhIHNlcnZpY2Ugb2JqZWN0IHByb3RvdHlwZS4KKyAgICAgKi8KKyAgICBpbnRlcmZhY2UgUmVnaXN0cmFyIHsKKyAgICAgICAgT2JqZWN0IHJlZ2lzdGVyKFVMb2NhbGUgbG9jLCBPYmplY3QgcHJvdG90eXBlKTsKKyAgICAgICAgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCBrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVzZSByZWZsZWN0aW9uIHRvIGNhbGwgZ2V0TG9jYWxlKCkgb24gdGhlIGdpdmVuIG9iamVjdCB0bworICAgICAqIGRldGVybWluZSBib3RoIHRoZSB2YWxpZCBhbmQgdGhlIGFjdHVhbCBsb2NhbGUuICBWZXJpZnkgdGhlc2UKKyAgICAgKiBmb3IgY29ycmVjdG5lc3MuCisgICAgICovCisgICAgdm9pZCBjaGVja09iamVjdChTdHJpbmcgcmVxdWVzdGVkTG9jYWxlLCBPYmplY3Qgb2JqLAorICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGV4cFJlcVZhbGlkLCBTdHJpbmcgZXhwVmFsaWRBY3R1YWwpIHsKKyAgICAgICAgQ2xhc3NbXSBwYXJhbXMgPSBuZXcgQ2xhc3NbXSB7IFVMb2NhbGUuVHlwZS5jbGFzcyB9OworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ2xhc3MgY2xzID0gb2JqLmdldENsYXNzKCk7CisgICAgICAgICAgICBNZXRob2QgZ2V0TG9jYWxlID0gY2xzLmdldE1ldGhvZCgiZ2V0TG9jYWxlIiwgcGFyYW1zKTsKKyAgICAgICAgICAgIFVMb2NhbGUgdmFsaWQgPSAoVUxvY2FsZSkgZ2V0TG9jYWxlLmludm9rZShvYmosIG5ldyBPYmplY3RbXSB7CisgICAgICAgICAgICAgICAgVUxvY2FsZS5WQUxJRF9MT0NBTEUgfSk7CisgICAgICAgICAgICBVTG9jYWxlIGFjdHVhbCA9IChVTG9jYWxlKSBnZXRMb2NhbGUuaW52b2tlKG9iaiwgbmV3IE9iamVjdFtdIHsKKyAgICAgICAgICAgICAgICBVTG9jYWxlLkFDVFVBTF9MT0NBTEUgfSk7CisgICAgICAgICAgICBjaGVja2xvY3MoY2xzLmdldE5hbWUoKSwgcmVxdWVzdGVkTG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgIHZhbGlkLnRvTG9jYWxlKCksIGFjdHVhbC50b0xvY2FsZSgpLAorICAgICAgICAgICAgICAgICAgICAgIGV4cFJlcVZhbGlkLCBleHBWYWxpZEFjdHVhbCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBNYWtlIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9ucyBfc3BlY2lmaWNfIC0tIGRvIG5vdAorICAgICAgICAvLyBjYXRjaChFeGNlcHRpb24pLCBzaW5jZSB0aGF0IHdpbGwgY2F0Y2ggdGhlIGV4Y2VwdGlvbgorICAgICAgICAvLyB0aGF0IGVycmxuIHRocm93cy4KKyAgICAgICAgY2F0Y2goTm9TdWNoTWV0aG9kRXhjZXB0aW9uIGUxKSB7CisgICAgICAgIC8vIG5vIGxvbmdlciBhbiBlcnJvciwgQ3VycmVuY3kgaGFzIG5vIGdldExvY2FsZQorICAgICAgICAgICAgLy8gZXJybG4oIkZBSUw6IHJlZmxlY3Rpb24gZmFpbGVkOiAiICsgZTEpOworICAgICAgICB9IGNhdGNoKFNlY3VyaXR5RXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogcmVmbGVjdGlvbiBmYWlsZWQ6ICIgKyBlMik7CisgICAgICAgIH0gY2F0Y2goSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBlMykgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHJlZmxlY3Rpb24gZmFpbGVkOiAiICsgZTMpOworICAgICAgICB9IGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlNCkgeworICAgICAgICAgICAgZXJybG4oIkZBSUw6IHJlZmxlY3Rpb24gZmFpbGVkOiAiICsgZTQpOworICAgICAgICB9IGNhdGNoKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZTUpIHsKKyAgICAgICAgLy8gbm8gbG9uZ2VyIGFuIGVycm9yLCBDdXJyZW5jeSBoYXMgbm8gZ2V0TG9jYWxlCisgICAgICAgICAgICAvLyBlcnJsbigiRkFJTDogcmVmbGVjdGlvbiBmYWlsZWQ6ICIgKyBlNSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWZXJpZnkgdGhlIGNvcnJlY3QgZ2V0TG9jYWxlKCkgYmVoYXZpb3IgZm9yIHRoZSBnaXZlbiBzZXJ2aWNlLgorICAgICAqIEBwYXJhbSByZXF1ZXN0ZWRMb2NhbGUgdGhlIGxvY2FsZSB0byByZXF1ZXN0LiAgVGhpcyBNVVNUIEJFCisgICAgICogRkFLRS4gIEluIG90aGVyIHdvcmRzLCBpdCBzaG91bGQgYmUgc29tZXRoaW5nIGxpa2UKKyAgICAgKiBlbl9VU19GQUtFVkFSSUFOVCBzbyB0aGlzIG1ldGhvZCBjYW4gdmVyaWZ5IGNvcnJlY3QgZmFsbGJhY2sKKyAgICAgKiBiZWhhdmlvci4KKyAgICAgKiBAcGFyYW0gc3ZjIGEgZmFjdG9yeSBvYmplY3QgdGhhdCBjYW4gY3JlYXRlIHRoZSBvYmplY3QgdG8gYmUKKyAgICAgKiB0ZXN0ZWQuICBUaGlzIGlzbid0IG5lY2Vzc2FyeSBoZXJlIChvbmUgY291bGQganVzdCBwYXNzIGluIHRoZQorICAgICAqIG9iamVjdCkgYnV0IGlzIHJlcXVpcmVkIGZvciB0aGUgb3ZlcmxvYWQgb2YgdGhpcyBtZXRob2QgdGhhdAorICAgICAqIHRha2VzIGEgUmVnaXN0cmFyLgorICAgICAqLworICAgIHZvaWQgY2hlY2tTZXJ2aWNlKFN0cmluZyByZXF1ZXN0ZWRMb2NhbGUsIFNlcnZpY2VGYWNhZGUgc3ZjKSB7CisgICAgICAgIGNoZWNrU2VydmljZShyZXF1ZXN0ZWRMb2NhbGUsIHN2YywgbnVsbCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVmVyaWZ5IHRoZSBjb3JyZWN0IGdldExvY2FsZSgpIGJlaGF2aW9yIGZvciB0aGUgZ2l2ZW4gc2VydmljZS4KKyAgICAgKiBAcGFyYW0gcmVxdWVzdGVkTG9jYWxlIHRoZSBsb2NhbGUgdG8gcmVxdWVzdC4gIFRoaXMgTVVTVCBCRQorICAgICAqIEZBS0UuICBJbiBvdGhlciB3b3JkcywgaXQgc2hvdWxkIGJlIHNvbWV0aGluZyBsaWtlCisgICAgICogZW5fVVNfRkFLRVZBUklBTlQgc28gdGhpcyBtZXRob2QgY2FuIHZlcmlmeSBjb3JyZWN0IGZhbGxiYWNrCisgICAgICogYmVoYXZpb3IuCisgICAgICogQHBhcmFtIHN2YyBhIGZhY3Rvcnkgb2JqZWN0IHRoYXQgY2FuIGNyZWF0ZSB0aGUgb2JqZWN0IHRvIGJlCisgICAgICogdGVzdGVkLgorICAgICAqIEBwYXJhbSBzdWIgYW4gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gcmV0cmlldmUgYSBzdWJvYmplY3QKKyAgICAgKiB3aGljaCBzaG91bGQgYWxzbyBiZSB0ZXN0ZWQuICBNYXkgYmUgbnVsbC4KKyAgICAgKiBAcGFyYW0gcmVnIGFuIG9iamVjdCB0aGF0IHN1cHBsaWVzIHRoZSByZWdpc3RyYXRpb24gYW5kCisgICAgICogdW5yZWdpc3RyYXRpb24gZnVuY3Rpb25hbGl0eSB0byBiZSB0ZXN0ZWQuICBNYXkgYmUgbnVsbC4KKyAgICAgKi8KKyAgICB2b2lkIGNoZWNrU2VydmljZShTdHJpbmcgcmVxdWVzdGVkTG9jYWxlLCBTZXJ2aWNlRmFjYWRlIHN2YywKKyAgICAgICAgICAgICAgICAgICAgICBTdWJvYmplY3Qgc3ViLCBSZWdpc3RyYXIgcmVnKSB7CisgICAgICAgIFVMb2NhbGUgcmVxID0gbmV3IFVMb2NhbGUocmVxdWVzdGVkTG9jYWxlKTsKKyAgICAgICAgT2JqZWN0IG9iaiA9IHN2Yy5jcmVhdGUocmVxKTsKKyAgICAgICAgY2hlY2tPYmplY3QocmVxdWVzdGVkTG9jYWxlLCBvYmosICJndCIsICJnZSIpOworICAgICAgICBpZiAoc3ViICE9IG51bGwpIHsKKyAgICAgICAgICAgIE9iamVjdCBzdWJvYmogPSBzdWIuZ2V0KG9iaik7CisgICAgICAgICAgICBjaGVja09iamVjdChyZXF1ZXN0ZWRMb2NhbGUsIHN1Ym9iaiwgImd0IiwgImdlIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlZyAhPSBudWxsKSB7CisgICAgICAgICAgICBsb2dsbigiSW5mbzogUmVnaXN0ZXJpbmcgc2VydmljZSIpOworICAgICAgICAgICAgT2JqZWN0IGtleSA9IHJlZy5yZWdpc3RlcihyZXEsIG9iaik7CisgICAgICAgICAgICBPYmplY3Qgb2JqUmVnID0gc3ZjLmNyZWF0ZShyZXEpOworICAgICAgICAgICAgY2hlY2tPYmplY3QocmVxdWVzdGVkTG9jYWxlLCBvYmpSZWcsICJlcSIsICJlcSIpOworICAgICAgICAgICAgaWYgKHN1YiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IHN1Ym9iaiA9IHN1Yi5nZXQob2JqKTsKKyAgICAgICAgICAgICAgICAvLyBBc3N1bWUgc3Vib2JqZWN0cyBkb24ndCBjb21lIGZyb20gc2VydmljZXMsIHNvCisgICAgICAgICAgICAgICAgLy8gdGhlaXIgbWV0YWRhdGEgc2hvdWxkIGJlIHN0cnVjdHVyZWQgbm9ybWFsbHkuCisgICAgICAgICAgICAgICAgY2hlY2tPYmplY3QocmVxdWVzdGVkTG9jYWxlLCBzdWJvYmosICJndCIsICJnZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nbG4oIkluZm86IFVucmVnaXN0ZXJpbmcgc2VydmljZSIpOworICAgICAgICAgICAgaWYgKCFyZWcudW5yZWdpc3RlcihrZXkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IHVucmVnaXN0ZXIgZmFpbGVkIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBPYmplY3Qgb2JqVW5yZWcgPSBzdmMuY3JlYXRlKHJlcSk7CisgICAgICAgICAgICBjaGVja09iamVjdChyZXF1ZXN0ZWRMb2NhbGUsIG9ialVucmVnLCAiZ3QiLCAiZ2UiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9DQUxFX1NJWkUgPSA5OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdW10gcmF3RGF0YTIgPSBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgLyogbGFuZ3VhZ2UgY29kZSAqLworICAgICAgICB7ICAgImVuIiwgICAiZnIiLCAgICJjYSIsICAgImVsIiwgICAibm8iLCAgICJ6aCIsICAgImRlIiwgICAiZXMiLCAgImphIiAgICB9LAorICAgICAgICAvKiBzY3JpcHQgY29kZSAqLworICAgICAgICB7ICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICJIYW5zIiwgIiIsICIiLCAiIiAgfSwKKyAgICAgICAgLyogY291bnRyeSBjb2RlICovCisgICAgICAgIHsgICAiVVMiLCAgICJGUiIsICAgIkVTIiwgICAiR1IiLCAgICJOTyIsICAgIkNOIiwgIkRFIiwgIiIsICJKUCIgICAgfSwKKyAgICAgICAgLyogdmFyaWFudCBjb2RlICovCisgICAgICAgIHsgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICJOWSIsICAgIiIsICIiLCAiIiwgIiIgICAgICB9LAorICAgICAgICAvKiBmdWxsIG5hbWUgKi8KKyAgICAgICAgeyAgICJlbl9VUyIsICAgICJmcl9GUiIsICAgICJjYV9FUyIsCisgICAgICAgICAgICAiZWxfR1IiLCAgICAibm9fTk9fTlkiLCAiemhfSGFuc19DTiIsCisgICAgICAgICAgICAiZGVfREVAY29sbGF0aW9uPXBob25lYm9vayIsICJlc0Bjb2xsYXRpb249dHJhZGl0aW9uYWwiLCAgImphX0pQQGNhbGVuZGFyPWphcGFuZXNlIiB9LAorICAgICAgICAvKiBJU08tMyBsYW5ndWFnZSAqLworICAgICAgICB7ICAgImVuZyIsICAiZnJhIiwgICJjYXQiLCAgImVsbCIsICAibm9yIiwgICJ6aG8iLCAiZGV1IiwgInNwYSIsICJqcG4iICAgfSwKKyAgICAgICAgLyogSVNPLTMgY291bnRyeSAqLworICAgICAgICB7ICAgIlVTQSIsICAiRlJBIiwgICJFU1AiLCAgIkdSQyIsICAiTk9SIiwgICJDSE4iLCAiREVVIiwgIiIsICJKUE4iICAgfSwKKyAgICAgICAgLyogTENJRCAqLworICAgICAgICB7ICAgIjQwOSIsICI0MGMiLCAiNDAzIiwgIjQwOCIsICI4MTQiLCAgIjgwNCIsICI0MDciLCAiYSIsICI0MTEiICAgICB9LAorCisgICAgICAgIC8qIGRpc3BsYXkgbGFuZ3VhZ2UgKEVuZ2xpc2gpICovCisgICAgICAgIHsgICAiRW5nbGlzaCIsICAiRnJlbmNoIiwgICAiQ2F0YWxhbiIsICJHcmVlayIsICAgICJOb3J3ZWdpYW4iLCAiQ2hpbmVzZSIsICJHZXJtYW4iLCAiU3BhbmlzaCIsICJKYXBhbmVzZSIgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSBzY3JpcHQgY29kZSAoRW5nbGlzaCkgKi8KKyAgICAgICAgeyAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiU2ltcGxpZmllZCBIYW4iLCAiIiwgIiIsICIiICAgICAgIH0sCisgICAgICAgIC8qIGRpc3BsYXkgY291bnRyeSAoRW5nbGlzaCkgKi8KKyAgICAgICAgeyAgICJVbml0ZWQgU3RhdGVzIiwgICAgIkZyYW5jZSIsICAgIlNwYWluIiwgICJHcmVlY2UiLCAgICJOb3J3YXkiLCAiQ2hpbmEiLCAiR2VybWFueSIsICIiLCAiSmFwYW4iICAgICAgIH0sCisgICAgICAgIC8qIGRpc3BsYXkgdmFyaWFudCAoRW5nbGlzaCkgKi8KKyAgICAgICAgeyAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIk5ZIiwgICIiLCAiIiwgIiIsICIiICAgICAgIH0sCisgICAgICAgIC8qIGRpc3BsYXkgbmFtZSAoRW5nbGlzaCkgKi8KKyAgICAgICAgeyAgICJFbmdsaXNoIChVbml0ZWQgU3RhdGVzKSIsICJGcmVuY2ggKEZyYW5jZSkiLCAiQ2F0YWxhbiAoU3BhaW4pIiwKKyAgICAgICAgICAgICJHcmVlayAoR3JlZWNlKSIsICJOb3J3ZWdpYW4gKE5vcndheSwgTlkpIiwgIkNoaW5lc2UgKFNpbXBsaWZpZWQgSGFuLCBDaGluYSkiLAorICAgICAgICAgICAgIkdlcm1hbiAoR2VybWFueSwgQ29sbGF0aW9uPVBob25lYm9vayBPcmRlcikiLCAiU3BhbmlzaCAoQ29sbGF0aW9uPVRyYWRpdGlvbmFsKSIsICJKYXBhbmVzZSAoSmFwYW4sIENhbGVuZGFyPUphcGFuZXNlIENhbGVuZGFyKSIgfSwKKworICAgICAgICAvKiBkaXNwbGF5IGxhbmd1YWdlIChGcmVuY2gpICovCisgICAgICAgIHsgICAiYW5nbGFpcyIsICAiZnJhblxcdTAwRTdhaXMiLCAgICJjYXRhbGFuIiwgImdyZWMiLCAgICAibm9ydlxcdTAwRTlnaWVuIiwgICAgImNoaW5vaXMiLCAiYWxsZW1hbmQiLCAiZXNwYWdub2wiLCAiamFwb25haXMiICAgICB9LAorICAgICAgICAvKiBkaXNwbGF5IHNjcmlwdCBjb2RlIChGcmVuY2gpICovCisgICAgICAgIHsgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIkhhbnMiLCAiIiwgIiIsICIiICAgICAgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSBjb3VudHJ5IChGcmVuY2gpICovCisgICAgICAgIHsgICAiXFx1MDBDOXRhdHMtVW5pcyIsICAgICJGcmFuY2UiLCAgICJFc3BhZ25lIiwgICJHclxcdTAwRThjZSIsICAgIk5vcnZcXHUwMEU4Z2UiLCAgICAiQ2hpbmUiLCAiQWxsZW1hZ25lIiwgIiIsICJKYXBvbiIgICAgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSB2YXJpYW50IChGcmVuY2gpICovCisgICAgICAgIHsgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICJOWSIsICAgIiIsICIiLCAiIiwgIiIgICAgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSBuYW1lIChGcmVuY2gpICovCisgICAgICAgIHsgICAiYW5nbGFpcyAoXFx1MDBDOXRhdHMtVW5pcykiLCAiZnJhblxcdTAwRTdhaXMgKEZyYW5jZSkiLCAiY2F0YWxhbiAoRXNwYWduZSkiLAorICAgICAgICAgICAgImdyZWMgKEdyXFx1MDBFOGNlKSIsICJub3J2XFx1MDBFOWdpZW4gKE5vcnZcXHUwMEU4Z2UsIE5ZKSIsICAiY2hpbm9pcyAoSGFucywgQ2hpbmUpIiwKKyAgICAgICAgICAgICJhbGxlbWFuZCAoQWxsZW1hZ25lLCBPcmRvbm5hbmNlbWVudD1PcmRyZSBkZSBsJ2FubnVhaXJlKSIsICJlc3BhZ25vbCAoT3Jkb25uYW5jZW1lbnQ9T3JkcmUgdHJhZGl0aW9ubmVsKSIsICJqYXBvbmFpcyAoSmFwb24sIENhbGVuZHJpZXI9Q2FsZW5kcmllciBqYXBvbmFpcykiIH0sCisKKyAgICAgICAgLyogZGlzcGxheSBsYW5ndWFnZSAoQ2F0YWxhbikgKi8KKyAgICAgICAgeyAgICJhbmdsXFx1MDBFOHMiLCAiZnJhbmNcXHUwMEU4cyIsICJjYXRhbFxcdTAwRTAiLCAiZ3JlYyIsICAibm9ydWVjIiwgInhpblxcdTAwRTlzIiwgImFsZW1hbnkiLCAiZXNwYW55b2wiLCAiamFwb25cXHUwMEU4cyIgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSBzY3JpcHQgY29kZSAoQ2F0YWxhbikgKi8KKyAgICAgICAgeyAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiSGFucyIsICIiLCAiIiwgIiIgICAgICAgICB9LAorICAgICAgICAvKiBkaXNwbGF5IGNvdW50cnkgKENhdGFsYW4pICovCisgICAgICAgIHsgICAiRXN0YXRzIFVuaXRzIiwgIkZyYW5cXHUwMEU3YSIsICJFc3BhbnlhIiwgICJHclxcdTAwRThjaWEiLCAiTm9ydWVnYSIsICAiWGluYSIsICJBbGVtYW55YSIsICIiLCAiSmFwXFx1MDBGMyIgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSB2YXJpYW50IChDYXRhbGFuKSAqLworICAgICAgICB7ICAgIiIsICIiLCAiIiwgICAgICAgICAgICAgICAgICAgICIiLCAiTlkiLCAgICAiIiwgIiIsICIiLCAiIiAgICB9LAorICAgICAgICAvKiBkaXNwbGF5IG5hbWUgKENhdGFsYW4pICovCisgICAgICAgIHsgICAiYW5nbFxcdTAwRThzIChFc3RhdHMgVW5pdHMpIiwgImZyYW5jXFx1MDBFOHMgKEZyYW5cXHUwMEU3YSkiLCAiY2F0YWxcXHUwMEUwIChFc3BhbnlhKSIsCisgICAgICAgICAgICAiZ3JlYyAoR3JcXHUwMEU4Y2lhKSIsICJub3J1ZWMgKE5vcnVlZ2EsIE5ZKSIsICJ4aW5cXHUwMEU5cyAoSGFucywgWGluYSkiLAorICAgICAgICAgICAgImFsZW1hbnkgKEFsZW1hbnlhLCBDT0xMQVRJT049UEhPTkVCT09LKSIsICJlc3BhbnlvbCAoQ09MTEFUSU9OPVRSQURJVElPTkFMKSIsICJqYXBvblxcdTAwRThzIChKYXBcXHUwMEYzLCBDQUxFTkRBUj1KQVBBTkVTRSkiIH0sCisKKyAgICAgICAgLyogZGlzcGxheSBsYW5ndWFnZSAoR3JlZWspICovCisgICAgICAgIHsKKyAgICAgICAgICAgICJcXHUwMzkxXFx1MDNiM1xcdTAzYjNcXHUwM2JiXFx1MDNiOVxcdTAzYmFcXHUwM2FjIiwKKyAgICAgICAgICAgICJcXHUwMzkzXFx1MDNiMVxcdTAzYmJcXHUwM2JiXFx1MDNiOVxcdTAzYmFcXHUwM2FjIiwKKyAgICAgICAgICAgICJcXHUwMzlhXFx1MDNiMVxcdTAzYzRcXHUwM2IxXFx1MDNiYlxcdTAzYjFcXHUwM2JkXFx1MDNiOVxcdTAzYmFcXHUwM2FjIiwKKyAgICAgICAgICAgICJcXHUwMzk1XFx1MDNiYlxcdTAzYmJcXHUwM2I3XFx1MDNiZFxcdTAzYjlcXHUwM2JhXFx1MDNhYyIsCisgICAgICAgICAgICAiXFx1MDM5ZFxcdTAzYmZcXHUwM2MxXFx1MDNiMlxcdTAzYjdcXHUwM2IzXFx1MDNiOVxcdTAzYmFcXHUwM2FjIiwKKyAgICAgICAgICAgICJcXHUwMzlBXFx1MDNCOVxcdTAzQkRcXHUwM0I1XFx1MDNCNlxcdTAzQjlcXHUwM0JBXFx1MDNBQyIsCisgICAgICAgICAgICAiXFx1MDM5M1xcdTAzQjVcXHUwM0MxXFx1MDNCQ1xcdTAzQjFcXHUwM0JEXFx1MDNCOVxcdTAzQkFcXHUwM0FDIiwKKyAgICAgICAgICAgICJcXHUwMzk5XFx1MDNDM1xcdTAzQzBcXHUwM0IxXFx1MDNCRFxcdTAzQjlcXHUwM0JBXFx1MDNBQyIsCisgICAgICAgICAgICAiXFx1MDM5OVxcdTAzQjFcXHUwM0MwXFx1MDNDOVxcdTAzQkRcXHUwM0I5XFx1MDNCQVxcdTAzQUMiCisgICAgICAgIH0sCisgICAgICAgIC8qIGRpc3BsYXkgc2NyaXB0IGNvZGUgKEdyZWVrKSAqLworICAgICAgICB7ICAgIiIsICAgICAiIiwgICAgICIiLCAgICAgIiIsICAgICAiIiwgICAgICJIYW5zIiwgIiIsICIiLCAiIiAgICAgICAgIH0sCisgICAgICAgIC8qIGRpc3BsYXkgY291bnRyeSAoR3JlZWspICovCisgICAgICAgIHsKKyAgICAgICAgICAgICJcXHUwMzk3XFx1MDNiZFxcdTAzYzlcXHUwM2JjXFx1MDNhZFxcdTAzYmRcXHUwM2I1XFx1MDNjMiBcXHUwM2EwXFx1MDNiZlxcdTAzYmJcXHUwM2I5XFx1MDNjNFxcdTAzYjVcXHUwM2FmXFx1MDNiNVxcdTAzYzIiLAorICAgICAgICAgICAgIlxcdTAzOTNcXHUwM2IxXFx1MDNiYlxcdTAzYmJcXHUwM2FmXFx1MDNiMSIsCisgICAgICAgICAgICAiXFx1MDM5OVxcdTAzYzNcXHUwM2MwXFx1MDNiMVxcdTAzYmRcXHUwM2FmXFx1MDNiMSIsCisgICAgICAgICAgICAiXFx1MDM5NVxcdTAzYmJcXHUwM2JiXFx1MDNhY1xcdTAzYjRcXHUwM2IxIiwKKyAgICAgICAgICAgICJcXHUwMzlkXFx1MDNiZlxcdTAzYzFcXHUwM2IyXFx1MDNiN1xcdTAzYjNcXHUwM2FmXFx1MDNiMSIsCisgICAgICAgICAgICAiXFx1MDM5QVxcdTAzQUZcXHUwM0JEXFx1MDNCMSIsCisgICAgICAgICAgICAiXFx1MDM5M1xcdTAzQjVcXHUwM0MxXFx1MDNCQ1xcdTAzQjFcXHUwM0JEXFx1MDNBRlxcdTAzQjEiLAorICAgICAgICAgICAgIiIsCisgICAgICAgICAgICAiXFx1MDM5OVxcdTAzQjFcXHUwM0MwXFx1MDNDOVxcdTAzQkRcXHUwM0FGXFx1MDNCMSIKKyAgICAgICAgfSwKKyAgICAgICAgLyogZGlzcGxheSB2YXJpYW50IChHcmVlaykgKi8KKyAgICAgICAgeyAgICIiLCAiIiwgIiIsICIiLCAiTlkiLCAiIiwgIiIsICIiLCAiIiAgICB9LCAvKiBUT0RPOiBjdXJyZW50bHkgdGhlcmUgaXMgbm8gdHJhbnNsYXRpb24gZm9yIE5ZIGluIEdyZWVrIGZpeCB0aGlzIHRlc3Qgd2hlbiB3ZSBoYXZlIGl0ICovCisgICAgICAgIC8qIGRpc3BsYXkgbmFtZSAoR3JlZWspICovCisgICAgICAgIHsKKyAgICAgICAgICAgICJcXHUwMzkxXFx1MDNiM1xcdTAzYjNcXHUwM2JiXFx1MDNiOVxcdTAzYmFcXHUwM2FjIChcXHUwMzk3XFx1MDNiZFxcdTAzYzlcXHUwM2JjXFx1MDNhZFxcdTAzYmRcXHUwM2I1XFx1MDNjMiBcXHUwM2EwXFx1MDNiZlxcdTAzYmJcXHUwM2I5XFx1MDNjNFxcdTAzYjVcXHUwM2FmXFx1MDNiNVxcdTAzYzIpIiwKKyAgICAgICAgICAgICJcXHUwMzkzXFx1MDNiMVxcdTAzYmJcXHUwM2JiXFx1MDNiOVxcdTAzYmFcXHUwM2FjIChcXHUwMzkzXFx1MDNiMVxcdTAzYmJcXHUwM2JiXFx1MDNhZlxcdTAzYjEpIiwKKyAgICAgICAgICAgICJcXHUwMzlhXFx1MDNiMVxcdTAzYzRcXHUwM2IxXFx1MDNiYlxcdTAzYjFcXHUwM2JkXFx1MDNiOVxcdTAzYmFcXHUwM2FjIChcXHUwMzk5XFx1MDNjM1xcdTAzYzBcXHUwM2IxXFx1MDNiZFxcdTAzYWZcXHUwM2IxKSIsCisgICAgICAgICAgICAiXFx1MDM5NVxcdTAzYmJcXHUwM2JiXFx1MDNiN1xcdTAzYmRcXHUwM2I5XFx1MDNiYVxcdTAzYWMgKFxcdTAzOTVcXHUwM2JiXFx1MDNiYlxcdTAzYWNcXHUwM2I0XFx1MDNiMSkiLAorICAgICAgICAgICAgIlxcdTAzOWRcXHUwM2JmXFx1MDNjMVxcdTAzYjJcXHUwM2I3XFx1MDNiM1xcdTAzYjlcXHUwM2JhXFx1MDNhYyAoXFx1MDM5ZFxcdTAzYmZcXHUwM2MxXFx1MDNiMlxcdTAzYjdcXHUwM2IzXFx1MDNhZlxcdTAzYjEsIE5ZKSIsCisgICAgICAgICAgICAiXFx1MDM5QVxcdTAzQjlcXHUwM0JEXFx1MDNCNVxcdTAzQjZcXHUwM0I5XFx1MDNCQVxcdTAzQUMgKEhhbnMsIFxcdTAzOUFcXHUwM0FGXFx1MDNCRFxcdTAzQjEpIiwKKyAgICAgICAgICAgICJcXHUwMzkzXFx1MDNCNVxcdTAzQzFcXHUwM0JDXFx1MDNCMVxcdTAzQkRcXHUwM0I5XFx1MDNCQVxcdTAzQUMgKFxcdTAzOTNcXHUwM0I1XFx1MDNDMVxcdTAzQkNcXHUwM0IxXFx1MDNCRFxcdTAzQUZcXHUwM0IxLCBDT0xMQVRJT049UEhPTkVCT09LKSIsCisgICAgICAgICAgICAiXFx1MDM5OVxcdTAzQzNcXHUwM0MwXFx1MDNCMVxcdTAzQkRcXHUwM0I5XFx1MDNCQVxcdTAzQUMgKENPTExBVElPTj1UUkFESVRJT05BTCkiLAorICAgICAgICAgICAgIlxcdTAzOTlcXHUwM0IxXFx1MDNDMFxcdTAzQzlcXHUwM0JEXFx1MDNCOVxcdTAzQkFcXHUwM0FDIChcXHUwMzk5XFx1MDNCMVxcdTAzQzBcXHUwM0M5XFx1MDNCRFxcdTAzQUZcXHUwM0IxLCBDQUxFTkRBUj1KQVBBTkVTRSkiCisgICAgICAgIH0KKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFTkdMSVNIID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlJFTkNIID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0FUQUxBTiA9IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdSRUVLID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9SV0VHSUFOID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFORyA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNDUklQVCA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENUUlkgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBWQVIgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOQU1FID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFORzMgPSA1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVFJZMyA9IDY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExDSUQgPSA3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBETEFOR19FTiA9IDg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERTQ1JJUFRfRU4gPSA5OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQ1RSWV9FTiA9IDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEVkFSX0VOID0gMTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEROQU1FX0VOID0gMTI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERMQU5HX0ZSID0gMTM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERTQ1JJUFRfRlIgPSAxNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRENUUllfRlIgPSAxNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRFZBUl9GUiA9IDE2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBETkFNRV9GUiA9IDE3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBETEFOR19DQSA9IDE4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEU0NSSVBUX0NBID0gMTk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERDVFJZX0NBID0gMjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERWQVJfQ0EgPSAyMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRE5BTUVfQ0EgPSAyMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRExBTkdfRUwgPSAyMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRFNDUklQVF9FTCA9IDI0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQ1RSWV9FTCA9IDI1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEVkFSX0VMID0gMjY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEROQU1FX0VMID0gMjc7CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0QmFzaWNHZXR0ZXJzKCkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgbG9nbG4oIlRlc3RpbmcgQmFzaWMgR2V0dGVyc1xuIik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBMT0NBTEVfU0laRTsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgdGVzdExvY2FsZT0ocmF3RGF0YTJbTkFNRV1baV0pOworICAgICAgICAgICAgbG9nbG4oIlRlc3RpbmcgIisgdGVzdExvY2FsZSsiLi4uLi5cbiIpOworCisgICAgICAgICAgICBTdHJpbmcgbGFuZyA9VUxvY2FsZS5nZXRMYW5ndWFnZSh0ZXN0TG9jYWxlKTsKKyAgICAgICAgICAgIGlmICgwICE9bGFuZy5jb21wYXJlVG8ocmF3RGF0YTJbTEFOR11baV0pKSAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgTGFuZ3VhZ2UgY29kZSBtaXNtYXRjaDogIitsYW5nKyIgdmVyc3VzICIrICByYXdEYXRhMltMQU5HXVtpXSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBjdHJ5PVVMb2NhbGUuZ2V0Q291bnRyeSh0ZXN0TG9jYWxlKTsKKyAgICAgICAgICAgIGlmICgwICE9Y3RyeS5jb21wYXJlVG8ocmF3RGF0YTJbQ1RSWV1baV0pKSAgICB7CisgICAgICAgICAgICAgICAgZXJybG4oIiAgQ291bnRyeSBjb2RlIG1pc21hdGNoOiAiK2N0cnkrIiB2ZXJzdXMgIisgIHJhd0RhdGEyW0NUUlldW2ldKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIHZhcj1VTG9jYWxlLmdldFZhcmlhbnQodGVzdExvY2FsZSk7CisgICAgICAgICAgICBpZiAoMCAhPXZhci5jb21wYXJlVG8ocmF3RGF0YTJbVkFSXVtpXSkpICAgIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiICBWYXJpYW50IGNvZGUgbWlzbWF0Y2g6ICIrdmFyKyIgdmVyc3VzICIrICByYXdEYXRhMltWQVJdW2ldKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBVTG9jYWxlLmdldE5hbWUodGVzdExvY2FsZSk7CisgICAgICAgICAgICBpZiAoMCAhPW5hbWUuY29tcGFyZVRvKHJhd0RhdGEyW05BTUVdW2ldKSkgICAgeworICAgICAgICAgICAgICAgIGVycmxuKCIgIE5hbWUgbWlzbWF0Y2g6ICIrbmFtZSsiIHZlcnN1cyAiKyAgcmF3RGF0YTJbTkFNRV1baV0pOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0UHJlZml4ZXMoKSB7CisgICAgICAgIC8vIFBPU0lYIGlkcyBhcmUgbm8gbG9uZ2VyIGhhbmRsZWQgYnkgZ2V0TmFtZSwgc28gUE9TSVggZmFpbHVyZXMgYXJlIGlnbm9yZWQKKyAgICAgICAgZmluYWwgU3RyaW5nIFtdW10gdGVzdERhdGEgPSBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgICAgIC8qIG51bGwgY2Fub25pY2FsaXplKCkgY29sdW1uIG1lYW5zICJleHBlY3Qgc2FtZSBhcyBnZXROYW1lKCkiICovCisgICAgICAgICAgICB7InN2IiwgIiIsICJGSSIsICJBTCIsICJzdi1maS1hbCIsICJzdl9GSV9BTCIsIG51bGx9LAorICAgICAgICAgICAgeyJlbiIsICIiLCAiR0IiLCAiIiwgImVuLWdiIiwgImVuX0dCIiwgbnVsbH0sCisgICAgICAgICAgICB7ImktaGFra2EiLCAiIiwgIk1UIiwgIlhFTVhJSkEiLCAiaS1oYWtrYV9NVF9YRU1YSUpBIiwgImktaGFra2FfTVRfWEVNWElKQSIsIG51bGx9LAorICAgICAgICAgICAgeyJpLWhha2thIiwgIiIsICJDTiIsICIiLCAiaS1oYWtrYV9DTiIsICJpLWhha2thX0NOIiwgbnVsbH0sCisgICAgICAgICAgICB7ImktaGFra2EiLCAiIiwgIk1YIiwgIiIsICJJLWhha2thX01YIiwgImktaGFra2FfTVgiLCBudWxsfSwKKyAgICAgICAgICAgIHsieC1rbGluZ29uIiwgIiIsICJVUyIsICJTQU5KT1NFIiwgIlgtS0xJTkdPTl91c19TQU5KT1NFIiwgIngta2xpbmdvbl9VU19TQU5KT1NFIiwgbnVsbH0sCisKKyAgICAgICAgICAgIHsibXIiLCAiIiwgIiIsICIiLCAibXIudXRmOCIsICJtci51dGY4IiwgIm1yIn0sCisgICAgICAgICAgICB7ImRlIiwgIiIsICJUViIsICIiLCAiZGUtdHYua29pOHIiLCAiZGVfVFYua29pOHIiLCAiZGVfVFYifSwKKyAgICAgICAgICAgIHsieC1waWdsYXRpbiIsICIiLCAiTUwiLCAiIiwgIngtcGlnbGF0aW5fTUwuTUJFIiwgIngtcGlnbGF0aW5fTUwuTUJFIiwgIngtcGlnbGF0aW5fTUwifSwgIC8qIE11bHRpYnl0ZSBFbmdsaXNoICovCisgICAgICAgICAgICB7ImktY2hlcm9rZWUiLCAiIiwiVVMiLCAiIiwgImktQ2hlcm9rZWVfVVMudXRmNyIsICJpLWNoZXJva2VlX1VTLnV0ZjciLCAiaS1jaGVyb2tlZV9VUyJ9LAorICAgICAgICAgICAgeyJ4LWZpbGZsaSIsICIiLCAiTVQiLCAiRklMRkxBIiwgIngtZmlsZmxpX01UX0ZJTEZMQS5nYi0xODAzMCIsICJ4LWZpbGZsaV9NVF9GSUxGTEEuZ2ItMTgwMzAiLCAieC1maWxmbGlfTVRfRklMRkxBIn0sCisgICAgICAgICAgICB7Im5vIiwgIiIsICJOTyIsICJOWV9CIiwgIm5vLW5vLW55LnV0ZjMyQEIiLCAibm9fTk9fTlkudXRmMzJAQiIsICJub19OT19OWV9CIn0sCisgICAgICAgICAgICB7Im5vIiwgIiIsICJOTyIsICJCIiwgICJuby1uby51dGYzMkBCIiwgIm5vX05PLnV0ZjMyQEIiLCAibm9fTk9fQiJ9LAorICAgICAgICAgICAgeyJubyIsICIiLCAiIiwgICAiTlkiLCAibm9fX255IiwgIm5vX19OWSIsIG51bGx9LAorICAgICAgICAgICAgeyJubyIsICIiLCAiIiwgICAiTlkiLCAibm9AbnkiLCAibm9AbnkiLCAibm9fX05ZIn0sCisgICAgICAgICAgICB7ImVsIiwgIkxhdG4iLCAiIiwgIiIsICJlbC1sYXRuIiwgImVsX0xhdG4iLCBudWxsfSwKKyAgICAgICAgICAgIHsiZW4iLCAiQ3lybCIsICJSVSIsICIiLCAiZW4tY3lybC1ydSIsICJlbl9DeXJsX1JVIiwgbnVsbH0sCisgICAgICAgICAgICB7InpoIiwgIkhhbnQiLCAiVFciLCAiU1RST0tFIiwgInpoLWhhbnRfVFdfU1RST0tFIiwgInpoX0hhbnRfVFdfU1RST0tFIiwgbnVsbH0sCisgICAgICAgICAgICB7InFxIiwgIlFxcXEiLCAiUVEiLCAiUVEiLCAicXFfUXFxcV9RUV9RUSIsICJxcV9RcXFxX1FRX1FRIiwgbnVsbH0sCisgICAgICAgICAgICB7InFxIiwgIlFxcXEiLCAiIiwgIlFRIiwgInFxX1FxcXFfX1FRIiwgInFxX1FxcXFfX1FRIiwgbnVsbH0sCisgICAgICAgICAgICB7IjEyIiwgIjM0NTYiLCAiNzgiLCAiOTAiLCAiMTJfMzQ1Nl83OF85MCIsICIxMl8zNDU2Xzc4XzkwIiwgbnVsbH0sIC8qIHRvdGFsIGdhcmJhZ2UgKi8KKworICAgICAgICAgICAgLy8gb2RkIGNhc2VzCisgICAgICAgICAgICB7IiIsICIiLCAiIiwgIiIsICJARk9PPWJhciIsICJAZm9vPWJhciIsIG51bGx9LAorICAgICAgICAgICAgeyIiLCAiIiwgIiIsICIiLCAiX0BGT089YmFyIiwgIkBmb289YmFyIiwgbnVsbH0sCisgICAgICAgICAgICB7IiIsICIiLCAiIiwgIiIsICJfX0BGT089YmFyIiwgIkBmb289YmFyIiwgbnVsbH0sCisgICAgICAgICAgICB7IiIsICIiLCAiIiwgIkZPTyIsICJfX2Zvb0BGT089YmFyIiwgIl9fRk9PQGZvbz1iYXIiLCBudWxsfSwgLy8gd2UgaGF2ZSBzb21lIG9mIHRoZXNlIHByZWZpeGVzCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nIGxvYywgYnVmLGJ1ZjE7CisgICAgICAgIGZpbmFsIFN0cmluZyBbXSB0ZXN0VGl0bGVzID0geworICAgICAgICAgICAgIlVMb2NhbGUuZ2V0TGFuZ3VhZ2UoKSIsCisgICAgICAgICAgICAiVUxvY2FsZS5nZXRTY3JpcHQoKSIsCisgICAgICAgICAgICAiVUxvY2FsZS5nZXRDb3VudHJ5KCkiLAorICAgICAgICAgICAgIlVMb2NhbGUuZ2V0VmFyaWFudCgpIiwKKyAgICAgICAgICAgICJuYW1lIiwKKyAgICAgICAgICAgICJVTG9jYWxlLmdldE5hbWUoKSIsCisgICAgICAgICAgICAiY2Fub25pY2FsaXplKCkiLAorICAgICAgICB9OworICAgICAgICBVTG9jYWxlIHVsb2M7CisKKyAgICAgICAgZm9yKGludCByb3c9MDtyb3c8dGVzdERhdGEubGVuZ3RoO3JvdysrKSB7CisgICAgICAgICAgICBsb2MgPSB0ZXN0RGF0YVtyb3ddW05BTUVdOworICAgICAgICAgICAgbG9nbG4oIlRlc3QgIyIrcm93KyI6ICIrbG9jKTsKKworICAgICAgICAgICAgdWxvYyA9IG5ldyBVTG9jYWxlKGxvYyk7CisKKyAgICAgICAgICAgIGZvcihpbnQgbj0wO248PShOQU1FKzIpO24rKykgeworICAgICAgICAgICAgICAgIGlmKG49PU5BTUUpIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgc3dpdGNoKG4pIHsKKyAgICAgICAgICAgICAgICBjYXNlIExBTkc6CisgICAgICAgICAgICAgICAgICAgIGJ1ZiAgPSBVTG9jYWxlLmdldExhbmd1YWdlKGxvYyk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZjEgPSB1bG9jLmdldExhbmd1YWdlKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSBTQ1JJUFQ6CisgICAgICAgICAgICAgICAgICAgIGJ1ZiAgPSBVTG9jYWxlLmdldFNjcmlwdChsb2MpOworICAgICAgICAgICAgICAgICAgICBidWYxID0gdWxvYy5nZXRTY3JpcHQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBjYXNlIENUUlk6CisgICAgICAgICAgICAgICAgICAgIGJ1ZiAgPSBVTG9jYWxlLmdldENvdW50cnkobG9jKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmMSA9IHVsb2MuZ2V0Q291bnRyeSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2UgVkFSOgorICAgICAgICAgICAgICAgICAgICBidWYgID0gVUxvY2FsZS5nZXRWYXJpYW50KGxvYyk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZjEgPSBidWY7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSBOQU1FKzE6CisgICAgICAgICAgICAgICAgICAgIGJ1ZiAgPSBVTG9jYWxlLmdldE5hbWUobG9jKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmMSA9IHVsb2MuZ2V0TmFtZSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2UgTkFNRSsyOgorICAgICAgICAgICAgICAgICAgICBidWYgPSBVTG9jYWxlLmNhbm9uaWNhbGl6ZShsb2MpOworICAgICAgICAgICAgICAgICAgICBidWYxID0gVUxvY2FsZS5jcmVhdGVDYW5vbmljYWwobG9jKS5nZXROYW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgYnVmID0gIioqPz8iOworICAgICAgICAgICAgICAgICAgICBidWYxID0gYnVmOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGxvZ2xuKCIjIityb3crIjogIit0ZXN0VGl0bGVzW25dKyIgb24gIitsb2MrIjogLT4gWyIrYnVmKyJdIik7CisKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXhwZWN0ZWQgPSB0ZXN0RGF0YVtyb3ddW25dOworICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZCA9PSBudWxsICYmIG4gPT0gKE5BTUUrMikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSB0ZXN0RGF0YVtyb3ddW05BTUUrMV07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gaWdub3JlIFBPU0lYIGZhaWx1cmVzIGluIGdldE5hbWUsIHdlIGRvbid0IHNwZWMgYmVoYXZpb3IgaW4gdGhpcyBjYXNlCisgICAgICAgICAgICAgICAgaWYgKG4gPT0gTkFNRSsxICYmCisgICAgICAgICAgICAgICAgICAgIChleHBlY3RlZC5pbmRleE9mKCcuJykgIT0gLTEgfHwKKyAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkLmluZGV4T2YoJ0AnKSAhPSAtMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYoYnVmLmNvbXBhcmVUbyhleHBlY3RlZCkhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIiMiK3JvdysiOiAiK3Rlc3RUaXRsZXNbbl0rIiBvbiAiK2xvYysiOiAtPiBbIitidWYrIl0gKGV4cGVjdGVkICciK2V4cGVjdGVkKyInISkiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoYnVmMS5jb21wYXJlVG8oZXhwZWN0ZWQpIT0wKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCIjIityb3crIjogIit0ZXN0VGl0bGVzW25dKyIgb24gVUxvY2FsZSBvYmplY3QgIitsb2MrIjogLT4gWyIrYnVmMSsiXSAoZXhwZWN0ZWQgJyIrZXhwZWN0ZWQrIichKSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RPYnNvbGV0ZU5hbWVzKCl7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gdGVzdHMgPSBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgICAgIC8qIGxvY2FsZSwgbGFuZ3VhZ2UzLCBsYW5ndWFnZTIsIENvdW50cnkzLCBjb3VudHJ5MiAqLworICAgICAgICAgICAgeyAiZW5nX1VTQSIsICJlbmciLCAiZW4iLCAiVVNBIiwgIlVTIiB9LAorICAgICAgICAgICAgeyAia29rIiwgICJrb2siLCAia29rIiwgIiIsICIiIH0sCisgICAgICAgICAgICB7ICJpbiIsICAiaW5kIiwgImluIiwgIiIsICIiIH0sCisgICAgICAgICAgICB7ICJpZCIsICAiaW5kIiwgImlkIiwgIiIsICIiIH0sIC8qIE5PIGFsaWFzaW5nICovCisgICAgICAgICAgICB7ICJzaCIsICAic3JwIiwgInNoIiwgIiIsICIiIH0sCisgICAgICAgICAgICB7ICJ6el9GWCIsICAiIiwgInp6IiwgIkZYWCIsICJGWCIgfSwKKyAgICAgICAgICAgIHsgInp6X1JPIiwgICIiLCAienoiLCAiUk9VIiwgIlJPIiB9LAorICAgICAgICAgICAgeyAienpfVFAiLCAgIiIsICJ6eiIsICJUTVAiLCAiVFAiIH0sCisgICAgICAgICAgICB7ICJ6el9UTCIsICAiIiwgInp6IiwgIlRMUyIsICJUTCIgfSwKKyAgICAgICAgICAgIHsgInp6X1pSIiwgICIiLCAienoiLCAiWkFSIiwgIlpSIiB9LAorICAgICAgICAgICAgeyAienpfRlhYIiwgICIiLCAienoiLCAiRlhYIiwgIkZYIiB9LCAvKiBubyBhbGlhc2luZy4gRG9lc24ndCBnbyB0byBQUyhQU0UpLiAqLworICAgICAgICAgICAgeyAienpfUk9NIiwgICIiLCAienoiLCAiUk9VIiwgIlJPIiB9LAorICAgICAgICAgICAgeyAienpfUk9VIiwgICIiLCAienoiLCAiUk9VIiwgIlJPIiB9LAorICAgICAgICAgICAgeyAienpfWkFSIiwgICIiLCAienoiLCAiWkFSIiwgIlpSIiB9LAorICAgICAgICAgICAgeyAienpfVE1QIiwgICIiLCAienoiLCAiVE1QIiwgIlRQIiB9LAorICAgICAgICAgICAgeyAienpfVExTIiwgICIiLCAienoiLCAiVExTIiwgIlRMIiB9LAorICAgICAgICAgICAgeyAibWx0X1BTRSIsICJtbHQiLCAibXQiLCAiUFNFIiwgIlBTIiB9LAorICAgICAgICAgICAgeyAiaXciLCAiaGViIiwgIml3IiwgIiIsICIiIH0sCisgICAgICAgICAgICB7ICJqaSIsICJ5aWQiLCAiamkiLCAiIiwgIiIgfSwKKyAgICAgICAgICAgIHsgImp3IiwgImphdyIsICJqdyIsICIiLCAiIiB9LAorICAgICAgICAgICAgeyAic2giLCAic3JwIiwgInNoIiwgIiIsICIiIH0sCisgICAgICAgICAgICB7ICIiLCAiIiwgIiIsICIiLCAiIiB9CisgICAgICAgIH07CisKKyAgICAgICAgZm9yKGludCBpPTA7aTx0ZXN0cy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIFN0cmluZyBsb2NhbGUgPSB0ZXN0c1tpXVswXTsKKyAgICAgICAgICAgIGxvZ2xuKCIqKiBUZXN0aW5nIDogIisgbG9jYWxlKTsKKyAgICAgICAgICAgIFN0cmluZyBidWZmLCBidWZmMTsKKyAgICAgICAgICAgIFVMb2NhbGUgdWxvYyAgPSBuZXcgVUxvY2FsZShsb2NhbGUpOworCisgICAgICAgICAgICBidWZmID0gVUxvY2FsZS5nZXRJU08zTGFuZ3VhZ2UobG9jYWxlKTsKKyAgICAgICAgICAgIGlmKGJ1ZmYuY29tcGFyZVRvKHRlc3RzW2ldWzFdKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVMb2NhbGUuZ2V0SVNPM0xhbmd1YWdlKCIrbG9jYWxlKyIpPT0iKworICAgICAgICAgICAgICAgICAgICAgIGJ1ZmYrIixcdCBleHBlY3RlZCAiK3Rlc3RzW2ldWzFdKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvZ2xuKCIgICBVTG9jYWxlLmdldElTTzNMYW5ndWFnZSgiK2xvY2FsZSsiKT09IitidWZmKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYnVmZjEgPSB1bG9jLmdldElTTzNMYW5ndWFnZSgpOworICAgICAgICAgICAgaWYoYnVmZjEuY29tcGFyZVRvKHRlc3RzW2ldWzFdKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVMb2NhbGUuZ2V0SVNPM0xhbmd1YWdlKCIrbG9jYWxlKyIpPT0iKworICAgICAgICAgICAgICAgICAgICAgIGJ1ZmYrIixcdCBleHBlY3RlZCAiK3Rlc3RzW2ldWzFdKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvZ2xuKCIgICBVTG9jYWxlLmdldElTTzNMYW5ndWFnZSgiK2xvY2FsZSsiKT09IitidWZmKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYnVmZiA9IFVMb2NhbGUuZ2V0TGFuZ3VhZ2UobG9jYWxlKTsKKyAgICAgICAgICAgIGlmKGJ1ZmYuY29tcGFyZVRvKHRlc3RzW2ldWzJdKSE9MCl7CisgICAgICAgICAgICAgICAgZXJybG4oIkZBSUw6IFVMb2NhbGUuZ2V0TGFuZ3VhZ2UoIitsb2NhbGUrIik9PSIrCisgICAgICAgICAgICAgICAgICAgICAgYnVmZisiLFx0IGV4cGVjdGVkICIrdGVzdHNbaV1bMl0pOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgIFVMb2NhbGUuZ2V0TGFuZ3VhZ2UoIitsb2NhbGUrIik9PSIrYnVmZik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJ1ZmYgPSBVTG9jYWxlLmdldElTTzNDb3VudHJ5KGxvY2FsZSk7CisgICAgICAgICAgICBpZihidWZmLmNvbXBhcmVUbyh0ZXN0c1tpXVszXSkhPTApeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVTG9jYWxlLmdldElTTzNDb3VudHJ5KCIrbG9jYWxlKyIpPT0iKworICAgICAgICAgICAgICAgICAgICAgIGJ1ZmYrIixcdCBleHBlY3RlZCAiK3Rlc3RzW2ldWzNdKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvZ2xuKCIgICBVTG9jYWxlLmdldElTTzNDb3VudHJ5KCIrbG9jYWxlKyIpPT0iK2J1ZmYpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBidWZmMSA9IHVsb2MuZ2V0SVNPM0NvdW50cnkoKTsKKyAgICAgICAgICAgIGlmKGJ1ZmYxLmNvbXBhcmVUbyh0ZXN0c1tpXVszXSkhPTApeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVTG9jYWxlLmdldElTTzNDb3VudHJ5KCIrbG9jYWxlKyIpPT0iKworICAgICAgICAgICAgICAgICAgICAgIGJ1ZmYrIixcdCBleHBlY3RlZCAiK3Rlc3RzW2ldWzNdKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvZ2xuKCIgICBVTG9jYWxlLmdldElTTzNDb3VudHJ5KCIrbG9jYWxlKyIpPT0iK2J1ZmYpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBidWZmID0gVUxvY2FsZS5nZXRDb3VudHJ5KGxvY2FsZSk7CisgICAgICAgICAgICBpZihidWZmLmNvbXBhcmVUbyh0ZXN0c1tpXVs0XSkhPTApeworICAgICAgICAgICAgICAgIGVycmxuKCJGQUlMOiBVTG9jYWxlLmdldENvdW50cnkoIitsb2NhbGUrIik9PSIrCisgICAgICAgICAgICAgICAgICAgICAgYnVmZisiLFx0IGV4cGVjdGVkICIrdGVzdHNbaV1bNF0pOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgbG9nbG4oIiAgIFVMb2NhbGUuZ2V0Q291bnRyeSgiK2xvY2FsZSsiKT09IitidWZmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChVTG9jYWxlLmdldExhbmd1YWdlKCJpd19JTCIpLmNvbXBhcmVUbyggVUxvY2FsZS5nZXRMYW5ndWFnZSgiaGVfSUwiKSk9PTApIHsKKyAgICAgICAgICAgIGVycmxuKCJoZSxpdyBVTG9jYWxlLmdldExhbmd1YWdlIG1pc21hdGNoIik7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgYnVmZiA9IFVMb2NhbGUuZ2V0TGFuZ3VhZ2UoImtva19JTiIpOworICAgICAgICBpZihidWZmLmNvbXBhcmVUbygia29rIikhPTApeworICAgICAgICAgICAgZXJybG4oIlVMb2NhbGUuZ2V0TGFuZ3VhZ2UoXCJrb2tcIikgZmFpbGVkLiBFeHBlY3RlZDoga29rIEdvdDogIitidWZmKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q2Fub25pY2FsaXphdGlvbigpeworICAgICAgICBmaW5hbCBTdHJpbmdbXVtddGVzdENhc2VzID0gbmV3IFN0cmluZ1tdW117CisgICAgICAgICAgICB7ICJjYV9FU19QUkVFVVJPIiwgImNhX0VTX1BSRUVVUk8iLCAiY2FfRVNAY3VycmVuY3k9RVNQIiB9LAorICAgICAgICAgICAgeyAiZGVfQVRfUFJFRVVSTyIsICJkZV9BVF9QUkVFVVJPIiwgImRlX0FUQGN1cnJlbmN5PUFUUyIgfSwKKyAgICAgICAgICAgIHsgImRlX0RFX1BSRUVVUk8iLCAiZGVfREVfUFJFRVVSTyIsICJkZV9ERUBjdXJyZW5jeT1ERU0iIH0sCisgICAgICAgICAgICB7ICJkZV9MVV9QUkVFVVJPIiwgImRlX0xVX1BSRUVVUk8iLCAiZGVfTFVAY3VycmVuY3k9RVVSIiB9LAorICAgICAgICAgICAgeyAiZWxfR1JfUFJFRVVSTyIsICJlbF9HUl9QUkVFVVJPIiwgImVsX0dSQGN1cnJlbmN5PUdSRCIgfSwKKyAgICAgICAgICAgIHsgImVuX0JFX1BSRUVVUk8iLCAiZW5fQkVfUFJFRVVSTyIsICJlbl9CRUBjdXJyZW5jeT1CRUYiIH0sCisgICAgICAgICAgICB7ICJlbl9JRV9QUkVFVVJPIiwgImVuX0lFX1BSRUVVUk8iLCAiZW5fSUVAY3VycmVuY3k9SUVQIiB9LAorICAgICAgICAgICAgeyAiZXNfRVNfUFJFRVVSTyIsICJlc19FU19QUkVFVVJPIiwgImVzX0VTQGN1cnJlbmN5PUVTUCIgfSwKKyAgICAgICAgICAgIHsgImV1X0VTX1BSRUVVUk8iLCAiZXVfRVNfUFJFRVVSTyIsICJldV9FU0BjdXJyZW5jeT1FU1AiIH0sCisgICAgICAgICAgICB7ICJmaV9GSV9QUkVFVVJPIiwgImZpX0ZJX1BSRUVVUk8iLCAiZmlfRklAY3VycmVuY3k9RklNIiB9LAorICAgICAgICAgICAgeyAiZnJfQkVfUFJFRVVSTyIsICJmcl9CRV9QUkVFVVJPIiwgImZyX0JFQGN1cnJlbmN5PUJFRiIgfSwKKyAgICAgICAgICAgIHsgImZyX0ZSX1BSRUVVUk8iLCAiZnJfRlJfUFJFRVVSTyIsICJmcl9GUkBjdXJyZW5jeT1GUkYiIH0sCisgICAgICAgICAgICB7ICJmcl9MVV9QUkVFVVJPIiwgImZyX0xVX1BSRUVVUk8iLCAiZnJfTFVAY3VycmVuY3k9TFVGIiB9LAorICAgICAgICAgICAgeyAiZ2FfSUVfUFJFRVVSTyIsICJnYV9JRV9QUkVFVVJPIiwgImdhX0lFQGN1cnJlbmN5PUlFUCIgfSwKKyAgICAgICAgICAgIHsgImdsX0VTX1BSRUVVUk8iLCAiZ2xfRVNfUFJFRVVSTyIsICJnbF9FU0BjdXJyZW5jeT1FU1AiIH0sCisgICAgICAgICAgICB7ICJpdF9JVF9QUkVFVVJPIiwgIml0X0lUX1BSRUVVUk8iLCAiaXRfSVRAY3VycmVuY3k9SVRMIiB9LAorICAgICAgICAgICAgeyAibmxfQkVfUFJFRVVSTyIsICJubF9CRV9QUkVFVVJPIiwgIm5sX0JFQGN1cnJlbmN5PUJFRiIgfSwKKyAgICAgICAgICAgIHsgIm5sX05MX1BSRUVVUk8iLCAibmxfTkxfUFJFRVVSTyIsICJubF9OTEBjdXJyZW5jeT1OTEciIH0sCisgICAgICAgICAgICB7ICJwdF9QVF9QUkVFVVJPIiwgInB0X1BUX1BSRUVVUk8iLCAicHRfUFRAY3VycmVuY3k9UFRFIiB9LAorICAgICAgICAgICAgeyAiZGVfX1BIT05FQk9PSyIsICJkZV9fUEhPTkVCT09LIiwgImRlQGNvbGxhdGlvbj1waG9uZWJvb2siIH0sCisgICAgICAgICAgICB7ICJlbl9HQl9FVVJPIiwgImVuX0dCX0VVUk8iLCAiZW5fR0JAY3VycmVuY3k9RVVSIiB9LAorICAgICAgICAgICAgeyAiZW5fR0JARVVSTyIsIG51bGwsICJlbl9HQkBjdXJyZW5jeT1FVVIiIH0sIC8qIFBPU0lYIElEICovCisgICAgICAgICAgICB7ICJlc19fVFJBRElUSU9OQUwiLCAiZXNfX1RSQURJVElPTkFMIiwgImVzQGNvbGxhdGlvbj10cmFkaXRpb25hbCIgfSwKKyAgICAgICAgICAgIHsgImhpX19ESVJFQ1QiLCAiaGlfX0RJUkVDVCIsICJoaUBjb2xsYXRpb249ZGlyZWN0IiB9LAorICAgICAgICAgICAgeyAiamFfSlBfVFJBRElUSU9OQUwiLCAiamFfSlBfVFJBRElUSU9OQUwiLCAiamFfSlBAY2FsZW5kYXI9amFwYW5lc2UiIH0sCisgICAgICAgICAgICB7ICJ0aF9USF9UUkFESVRJT05BTCIsICJ0aF9USF9UUkFESVRJT05BTCIsICJ0aF9USEBjYWxlbmRhcj1idWRkaGlzdCIgfSwKKyAgICAgICAgICAgIHsgInpoX1RXX1NUUk9LRSIsICJ6aF9UV19TVFJPS0UiLCAiemhfVFdAY29sbGF0aW9uPXN0cm9rZSIgfSwKKyAgICAgICAgICAgIHsgInpoX19QSU5ZSU4iLCAiemhfX1BJTllJTiIsICJ6aEBjb2xsYXRpb249cGlueWluIiB9LAorICAgICAgICAgICAgeyAiemhAY29sbGF0aW9uPXBpbnlpbiIsICJ6aEBjb2xsYXRpb249cGlueWluIiwgInpoQGNvbGxhdGlvbj1waW55aW4iIH0sCisgICAgICAgICAgICB7ICJ6aF9DTkBjb2xsYXRpb249cGlueWluIiwgInpoX0NOQGNvbGxhdGlvbj1waW55aW4iLCAiemhfQ05AY29sbGF0aW9uPXBpbnlpbiIgfSwKKyAgICAgICAgICAgIHsgInpoX0NOX0NBQGNvbGxhdGlvbj1waW55aW4iLCAiemhfQ05fQ0FAY29sbGF0aW9uPXBpbnlpbiIsICJ6aF9DTl9DQUBjb2xsYXRpb249cGlueWluIiB9LAorICAgICAgICAgICAgeyAiZW5fVVNfUE9TSVgiLCAiZW5fVVNfUE9TSVgiLCAiZW5fVVNfUE9TSVgiIH0sCisgICAgICAgICAgICB7ICJoeV9BTV9SRVZJU0VEIiwgImh5X0FNX1JFVklTRUQiLCAiaHlfQU1fUkVWSVNFRCIgfSwKKyAgICAgICAgICAgIHsgIm5vX05PX05ZIiwgIm5vX05PX05ZIiwgIm5vX05PX05ZIiAvKiBub3Q6ICJubl9OTyIgW2FsYW4gSUNVMy4wXSAqLyB9LAorICAgICAgICAgICAgeyAibm9AbnkiLCBudWxsLCAibm9fX05ZIiAvKiBub3Q6ICJubiIgW2FsYW4gSUNVMy4wXSAqLyB9LCAvKiBQT1NJWCBJRCAqLworICAgICAgICAgICAgeyAibm8tbm8udXRmMzJAQiIsIG51bGwsICJub19OT19CIiAvKiBub3Q6ICJuYl9OT19CIiBbYWxhbiBJQ1UzLjBdICovIH0sIC8qIFBPU0lYIElEICovCisgICAgICAgICAgICB7ICJxei1xekBFdXJvIiwgbnVsbCwgInF6X1FaQGN1cnJlbmN5PUVVUiIgfSwgLyogcXotcXogdXNlcyBwcml2YXRlIHVzZSBpc28gY29kZXMgKi8KKyAgICAgICAgICAgIHsgImVuLUJPT05UIiwgImVuX0JPT05UIiwgImVuX19CT09OVCIgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICB7ICJkZS0xOTAxIiwgImRlXzE5MDEiLCAiZGVfXzE5MDEiIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgeyAiZGUtMTkwNiIsICJkZV8xOTA2IiwgImRlX18xOTA2IiB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgIHsgInNyLVNQLUN5cmwiLCAic3JfU1BfQ1lSTCIsICJzcl9DeXJsX0NTIiB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgIHsgInNyLVNQLUxhdG4iLCAic3JfU1BfTEFUTiIsICJzcl9MYXRuX0NTIiB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgIHsgInNyX1lVX0NZUklMTElDIiwgInNyX1lVX0NZUklMTElDIiwgInNyX0N5cmxfQ1MiIH0sIC8qIExpbnV4IG5hbWUgKi8KKyAgICAgICAgICAgIHsgInV6LVVaLUN5cmwiLCAidXpfVVpfQ1lSTCIsICJ1el9DeXJsX1VaIiB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgIHsgInV6LVVaLUxhdG4iLCAidXpfVVpfTEFUTiIsICJ1el9MYXRuX1VaIiB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgIHsgInpoLUNIUyIsICJ6aF9DSFMiLCAiemhfSGFucyIgfSwgLyogLk5FVCBuYW1lICovCisgICAgICAgICAgICB7ICJ6aC1DSFQiLCAiemhfQ0hUIiwgInpoX0hhbnQiIH0sIC8qIC5ORVQgbmFtZSBUaGlzIG1heSBjaGFuZ2UgYmFjayB0byB6aF9IYW50ICovCisKKyAgICAgICAgICAgIC8qIHBvc2l4IGJlaGF2aW9yIHRoYXQgdXNlZCB0byBiZSBwZXJmb3JtZWQgYnkgZ2V0TmFtZSAqLworICAgICAgICAgICAgeyAibXIudXRmOCIsIG51bGwsICJtciIgfSwKKyAgICAgICAgICAgIHsgImRlLXR2LmtvaThyIiwgbnVsbCwgImRlX1RWIiB9LAorICAgICAgICAgICAgeyAieC1waWdsYXRpbl9NTC5NQkUiLCBudWxsLCAieC1waWdsYXRpbl9NTCIgfSwKKyAgICAgICAgICAgIHsgImktY2hlcm9rZWVfVVMudXRmNyIsIG51bGwsICJpLWNoZXJva2VlX1VTIiB9LAorICAgICAgICAgICAgeyAieC1maWxmbGlfTVRfRklMRkxBLmdiLTE4MDMwIiwgbnVsbCwgIngtZmlsZmxpX01UX0ZJTEZMQSIgfSwKKyAgICAgICAgICAgIHsgIm5vLW5vLW55LnV0ZjhAQiIsIG51bGwsICJub19OT19OWV9CIiAvKiBub3Q6ICJubl9OTyIgW2FsYW4gSUNVMy4wXSAqLyB9LCAvKiBAIGlnbm9yZWQgdW5sZXNzIHZhcmlhbnQgaXMgZW1wdHkgKi8KKworICAgICAgICAgICAgLyogZmxlc2hpbmcgb3V0IGNhbm9uaWNhbGl6YXRpb24gKi8KKyAgICAgICAgICAgIC8qIHNvcnQga2V5d29yZHMsICc7JyBpcyBzZXBhcmF0b3Igc28gbm90IHByZXNlbnQgYXQgZW5kIGluIGNhbm9uaWNhbCBmb3JtICovCisgICAgICAgICAgICB7ICJlbl9IYW50X0lMX1ZBTExFWV9HSVJMQGN1cnJlbmN5PUVVUjtjYWxlbmRhcj1KYXBhbmVzZTsiLCAiZW5fSGFudF9JTF9WQUxMRVlfR0lSTEBjYWxlbmRhcj1KYXBhbmVzZTtjdXJyZW5jeT1FVVIiLCAiZW5fSGFudF9JTF9WQUxMRVlfR0lSTEBjYWxlbmRhcj1KYXBhbmVzZTtjdXJyZW5jeT1FVVIiIH0sCisgICAgICAgICAgICAvKiBhbHJlYWR5LWNhbm9uaWNhbCBpZHMgYXJlIG5vdCBjaGFuZ2VkICovCisgICAgICAgICAgICB7ICJlbl9IYW50X0lMX1ZBTExFWV9HSVJMQGNhbGVuZGFyPUphcGFuZXNlO2N1cnJlbmN5PUVVUiIsICJlbl9IYW50X0lMX1ZBTExFWV9HSVJMQGNhbGVuZGFyPUphcGFuZXNlO2N1cnJlbmN5PUVVUiIsICJlbl9IYW50X0lMX1ZBTExFWV9HSVJMQGNhbGVuZGFyPUphcGFuZXNlO2N1cnJlbmN5PUVVUiIgfSwKKyAgICAgICAgICAgIC8qIFBSRV9FVVJPIGFuZCBFVVJPIGNvbnZlcnNpb25zIGRvbid0IGFmZmVjdCBvdGhlciBrZXl3b3JkcyAqLworICAgICAgICAgICAgLyogbm90IGluIHNwZWMKKyAgICAgICAgICAgICAgIHsgImVzX0VTX1BSRUVVUk9AQ0FMZW5kYXI9SmFwYW5lc2UiLCAiZXNfRVNfUFJFRVVST0BjYWxlbmRhcj1KYXBhbmVzZSIsICJlc19FU0BjYWxlbmRhcj1KYXBhbmVzZTtjdXJyZW5jeT1FU1AiIH0sCisgICAgICAgICAgICAgICB7ICJlc19FU19FVVJPQFNIT1VUPXppcGVlZGVlZG9vZGFoIiwgImVzX0VTX0VVUk9Ac2hvdXQ9emlwZWVkZWVkb29kYWgiLCAiZXNfRVNAY3VycmVuY3k9RVVSO3Nob3V0PXppcGVlZGVlZG9vZGFoIiB9LAorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIC8qIGN1cnJlbmN5IGtleXdvcmQgb3ZlcnJpZGVzIFBSRV9FVVJPIGFuZCBFVVJPIGN1cnJlbmN5ICovCisgICAgICAgICAgICAvKiBub3QgaW4gc3BlYworICAgICAgICAgICAgICAgeyAiZXNfRVNfUFJFRVVST0BjdXJyZW5jeT1FVVIiLCAiZXNfRVNfUFJFRVVST0BjdXJyZW5jeT1FVVIiLCAiZXNfRVNAY3VycmVuY3k9RVVSIiB9LAorICAgICAgICAgICAgICAgeyAiZXNfRVNfRVVST0BjdXJyZW5jeT1FU1AiLCAiZXNfRVNfRVVST0BjdXJyZW5jeT1FU1AiLCAiZXNfRVNAY3VycmVuY3k9RVNQIiB9LAorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIC8qIG5vcndlZ2lhbiBpcyBqdXN0IHRvbyB3ZWlyZCwgaWYgd2UgaGFuZGxlIHRoaW5ncyBpbiB0aGVpciBmdWxsIGdlbmVyYWxpdHkgKi8KKyAgICAgICAgICAgIC8qIHRoaXMgaXMgYSBuZWdhdGl2ZSB0ZXN0IHRvIHNob3cgdGhhdCB3ZSBETyBOT1QgaGFuZGxlICdsYW5nPW5vLHZhcj1OWScgc3BlY2lhbGx5LiAqLworICAgICAgICAgICAgeyAibm8tSGFudC1HQl9OWUBjdXJyZW5jeT0kJCQiLCAibm9fSGFudF9HQl9OWUBjdXJyZW5jeT0kJCQiLCAibm9fSGFudF9HQl9OWUBjdXJyZW5jeT0kJCQiIC8qIG5vdDogIm5uX0hhbnRfR0JAY3VycmVuY3k9JCQkIiBbYWxhbiBJQ1UzLjBdICovIH0sCisKKyAgICAgICAgICAgIC8qIHRlc3QgY2FzZXMgcmVmbGVjdGluZyBpbnRlcm5hbCByZXNvdXJjZSBidW5kbGUgdXNhZ2UgKi8KKyAgICAgICAgICAgIC8qIHJvb3QgaXMganVzdCBhIGxhbmd1YWdlICovCisgICAgICAgICAgICB7ICJyb290QGt3PWZvbyIsICJyb290QGt3PWZvbyIsICJyb290QGt3PWZvbyIgfSwKKyAgICAgICAgICAgIC8qIGxldmVsIDIgY2Fub25pY2FsaXphdGlvbiBzaG91bGQgbm90IHRvdWNoIGJhc2VuYW1lIHdoZW4gdGhlcmUgYXJlIGtleXdvcmRzIGFuZCBpdCBpcyBudWxsICovCisgICAgICAgICAgICB7ICJAY2FsZW5kYXI9Z3JlZ29yaWFuIiwgIkBjYWxlbmRhcj1ncmVnb3JpYW4iLCAiQGNhbGVuZGFyPWdyZWdvcmlhbiIgfSwKKyAgICAgICAgfTsKKworICAgICAgICBmb3IoaW50IGkgPSAwOyBpPCB0ZXN0Q2FzZXMubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBTdHJpbmdbXSB0ZXN0Q2FzZSA9IHRlc3RDYXNlc1tpXTsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2UgPSB0ZXN0Q2FzZVswXTsKKyAgICAgICAgICAgIFN0cmluZyBsZXZlbDFFeHBlY3RlZCA9IHRlc3RDYXNlWzFdOworICAgICAgICAgICAgU3RyaW5nIGxldmVsMkV4cGVjdGVkID0gdGVzdENhc2VbMl07CisKKyAgICAgICAgICAgIGlmIChsZXZlbDFFeHBlY3RlZCAhPSBudWxsKSB7IC8vIG51bGwgbWVhbnMgd2UgaGF2ZSBubyBleHBlY3RhdGlvbnMgZm9yIGhvdyB0aGlzIGNhc2UgaXMgaGFuZGxlZAorICAgICAgICAgICAgICAgIFN0cmluZyBsZXZlbDEgPSBVTG9jYWxlLmdldE5hbWUoc291cmNlKTsKKyAgICAgICAgICAgICAgICBpZiAoIWxldmVsMS5lcXVhbHMobGV2ZWwxRXhwZWN0ZWQpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJVTG9jYWxlLmdldE5hbWUgZXJyb3IgZm9yOiAnIiArIHNvdXJjZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICInIGV4cGVjdGVkOiAnIiArIGxldmVsMUV4cGVjdGVkICsgIicgYnV0IGdvdDogJyIgKyBsZXZlbDEgKyAiJyIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJVbG9jYWxlLmdldE5hbWUgZm9yOiAnIiArIHNvdXJjZSArICInIHJldHVybmVkOiAnIiArIGxldmVsMSArICInIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiVUxvY2FsZS5nZXROYW1lIHNraXBwZWQ6ICciICsgc291cmNlICsgIiciKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGxldmVsMkV4cGVjdGVkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbGV2ZWwyID0gVUxvY2FsZS5jYW5vbmljYWxpemUoc291cmNlKTsKKyAgICAgICAgICAgICAgICBpZighbGV2ZWwyLmVxdWFscyhsZXZlbDJFeHBlY3RlZCkpeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiVUxvY2FsZS5nZXROYW1lIGVycm9yIGZvcjogJyIgKyBzb3VyY2UgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiJyBleHBlY3RlZDogJyIgKyBsZXZlbDJFeHBlY3RlZCArICInIGJ1dCBnb3Q6ICciICsgbGV2ZWwyICsgIiciKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiVWxvY2FsZS5jYW5vbmljYWxpemUgZm9yOiAnIiArIHNvdXJjZSArICInIHJldHVybmVkOiAnIiArIGxldmVsMiArICInIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiVUxvY2FsZS5jYW5vbmljYWxpemUgc2tpcHBlZDogJyIgKyBzb3VyY2UgKyAiJyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdEdldEF2YWlsYWJsZSgpeworICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBpZihsb2NhbGVzLmxlbmd0aDwxMCl7CisgICAgICAgICAgICBlcnJsbigiRGlkIG5vdCBnZXQgdGhlIGNvcnJlY3QgcmVzdWx0IGZyb20gZ2V0QXZhaWxhYmxlTG9jYWxlcyIpOworICAgICAgICB9CisgICAgICAgIGlmKCFsb2NhbGVzW2xvY2FsZXMubGVuZ3RoLTFdLmVxdWFscygiemhfSGFudF9UVyIpKXsKKyAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCB0aGUgZXhwZWN0ZWQgcmVzdWx0Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBUZXN0RGlzcGxheU5hbWVzKCkgeworICAgICAgICAvLyBjb25zaXN0ZW5jeSBjaGVjaywgYWxzbyBjaGVjayB0aGF0IGFsbCBkYXRhIGlzIGF2YWlsYWJsZQorICAgICAgICB7CisgICAgICAgICAgICBVTG9jYWxlW10gbG9jYWxlcyA9IFVMb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgVUxvY2FsZSBsID0gbG9jYWxlc1tpXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGwuZ2V0RGlzcGxheU5hbWUoKTsKKworICAgICAgICAgICAgICAgIGxvZ2xuKGwgKyAiIC0tPiAiICsgbmFtZSArCisgICAgICAgICAgICAgICAgICAgICAgIiwgIiArIGwuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5HRVJNQU4pICsKKyAgICAgICAgICAgICAgICAgICAgICAiLCAiICsgbC5nZXREaXNwbGF5TmFtZShVTG9jYWxlLkZSQU5DRSkpOworCisgICAgICAgICAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbC5nZXREaXNwbGF5TGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc2NyaXB0ID0gbC5nZXREaXNwbGF5U2NyaXB0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNvdW50cnkgPSBsLmdldERpc3BsYXlDb3VudHJ5KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSBsLmdldERpc3BsYXlWYXJpYW50KCk7CisKKyAgICAgICAgICAgICAgICBjaGVja05hbWUobmFtZSwgbGFuZ3VhZ2UsIHNjcmlwdCwgY291bnRyeSwgdmFyaWFudCk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGxvY2FsZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBkbCA9IGxvY2FsZXNbal07CisKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGwuZ2V0RGlzcGxheU5hbWUoZGwpOworICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZSA9IGwuZ2V0RGlzcGxheUxhbmd1YWdlKGRsKTsKKyAgICAgICAgICAgICAgICAgICAgc2NyaXB0ID0gbC5nZXREaXNwbGF5U2NyaXB0KGRsKTsKKyAgICAgICAgICAgICAgICAgICAgY291bnRyeSA9IGwuZ2V0RGlzcGxheUNvdW50cnkoZGwpOworICAgICAgICAgICAgICAgICAgICB2YXJpYW50ID0gbC5nZXREaXNwbGF5VmFyaWFudChkbCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGVja05hbWUobmFtZSwgbGFuZ3VhZ2UsIHNjcmlwdCwgY291bnRyeSwgdmFyaWFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHNwb3QgY2hlY2sKKyAgICAgICAgeworICAgICAgICAgICAgVUxvY2FsZVtdIGxvY2FsZXMgPSB7CisgICAgICAgICAgICAgICAgVUxvY2FsZS5VUywgVUxvY2FsZS5HRVJNQU5ZLCBVTG9jYWxlLkZSQU5DRQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIFN0cmluZ1tdIG5hbWVzID0geworICAgICAgICAgICAgICAgICJDaGluZXNlIChDaGluYSkiLCAiQ2hpbmVzaXNjaCAoQ2hpbmEpIiwgImNoaW5vaXMgKENoaW5lKSIKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSA9IG5ldyBVTG9jYWxlKCJ6aF9DTiIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBsb2NhbGUuZ2V0RGlzcGxheU5hbWUobG9jYWxlc1tpXSk7CisgICAgICAgICAgICAgICAgaWYgKCFuYW1lc1tpXS5lcXVhbHMobmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oImV4cGVjdGVkICciICsgbmFtZXNbaV0gKyAiJyBidXQgZ290ICciICsgbmFtZSArICInIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGNoZWNrTmFtZShTdHJpbmcgbmFtZSwgU3RyaW5nIGxhbmd1YWdlLCBTdHJpbmcgc2NyaXB0LCBTdHJpbmcgY291bnRyeSwgU3RyaW5nIHZhcmlhbnQpIHsKKyAgICAgICAgaWYgKGxhbmd1YWdlLmxlbmd0aCgpID4gMCAmJiBuYW1lLmluZGV4T2YobGFuZ3VhZ2UpID09IC0xKSB7CisgICAgICAgICAgICBlcnJsbigibmFtZSAnIiArIG5hbWUgKyAiJyBkb2VzIG5vdCBjb250YWluIGxhbmd1YWdlICciICsgbGFuZ3VhZ2UgKyAiJyIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChzY3JpcHQubGVuZ3RoKCkgPiAwICYmIG5hbWUuaW5kZXhPZihzY3JpcHQpID09IC0xKSB7CisgICAgICAgICAgICBlcnJsbigibmFtZSAnIiArIG5hbWUgKyAiJyBkb2VzIG5vdCBjb250YWluIHNjcmlwdCAnIiArIHNjcmlwdCArICInIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50cnkubGVuZ3RoKCkgPiAwICYmIG5hbWUuaW5kZXhPZihjb3VudHJ5KSA9PSAtMSkgeworICAgICAgICAgICAgZXJybG4oIm5hbWUgJyIgKyBuYW1lICsgIicgZG9lcyBub3QgY29udGFpbiBjb3VudHJ5ICciICsgY291bnRyeSArICInIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgPiAwICYmIG5hbWUuaW5kZXhPZih2YXJpYW50KSA9PSAtMSkgeworICAgICAgICAgICAgZXJybG4oIm5hbWUgJyIgKyBuYW1lICsgIicgZG9lcyBub3QgY29udGFpbiB2YXJpYW50ICciICsgdmFyaWFudCArICInIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdENvdmVyYWdlKCkgeworICAgICAgICB7CisgICAgICAgICAgICAvL0NvdmVyIGRpc3BsYXlYWFgKKyAgICAgICAgICAgIGludCBpLCBqOworICAgICAgICAgICAgU3RyaW5nIGxvY2FsZUlEPSJ6aF9DTiI7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSwgbGFuZ3VhZ2UsIHNjcmlwdCwgY291bnRyeSwgdmFyaWFudDsKKyAgICAgICAgICAgIGxvZ2xuKCJDb3ZlcmluZyBBUElzIHdpdGggc2lnbmF0dXJlIGRpc3BsYXlYWFgoU3RyaW5nLCBTdHJpbmcpIik7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgTE9DQUxFX1NJWkU7IGkrKykgeworICAgICAgICAgICAgICAgIC8vbG9jYWxlSUQgU3RyaW5nCisgICAgICAgICAgICAgICAgU3RyaW5nIHRlc3RMb2NhbGU9KHJhd0RhdGEyW05BTUVdW2ldKTsKKworICAgICAgICAgICAgICAgIGxvZ2xuKCJUZXN0aW5nICIrIHRlc3RMb2NhbGUrIi4uLi4uIik7CisgICAgICAgICAgICAgICAgbmFtZSA9IFVMb2NhbGUuZ2V0RGlzcGxheU5hbWUobG9jYWxlSUQsIHRlc3RMb2NhbGUpOworICAgICAgICAgICAgICAgIGxhbmd1YWdlID0gVUxvY2FsZS5nZXREaXNwbGF5TGFuZ3VhZ2UobG9jYWxlSUQsIHRlc3RMb2NhbGUpOworICAgICAgICAgICAgICAgIHNjcmlwdCA9IFVMb2NhbGUuZ2V0RGlzcGxheVNjcmlwdChsb2NhbGVJRCwgdGVzdExvY2FsZSk7CisgICAgICAgICAgICAgICAgY291bnRyeSA9IFVMb2NhbGUuZ2V0RGlzcGxheUNvdW50cnkobG9jYWxlSUQsIHRlc3RMb2NhbGUpOworICAgICAgICAgICAgICAgIHZhcmlhbnQgPSBVTG9jYWxlLmdldERpc3BsYXlWYXJpYW50KGxvY2FsZUlELCB0ZXN0TG9jYWxlKTsKKworICAgICAgICAgICAgICAgIGlmICghY2hlY2tOYW1lKG5hbWUsIGxhbmd1YWdlLCBzY3JpcHQsIGNvdW50cnksIHZhcmlhbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nbG4oIkNvdmVyaW5nIEFQSXMgd2l0aCBzaWduYXR1cmUgZGlzcGxheVhYWChTdHJpbmcsIFVMb2NhbGUpXG4iKTsKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBMT0NBTEVfU0laRTsgaisrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRlc3RMb2NhbGU9KHJhd0RhdGEyW05BTUVdW2pdKTsKKyAgICAgICAgICAgICAgICBVTG9jYWxlIGxvYyA9IG5ldyBVTG9jYWxlKHRlc3RMb2NhbGUpOworCisgICAgICAgICAgICAgICAgbG9nbG4oIlRlc3RpbmcgIisgdGVzdExvY2FsZSsiLi4uLi4iKTsKKyAgICAgICAgICAgICAgICBuYW1lID0gVUxvY2FsZS5nZXREaXNwbGF5TmFtZShsb2NhbGVJRCwgbG9jKTsKKyAgICAgICAgICAgICAgICBsYW5ndWFnZSA9IFVMb2NhbGUuZ2V0RGlzcGxheUxhbmd1YWdlKGxvY2FsZUlELCBsb2MpOworICAgICAgICAgICAgICAgIHNjcmlwdCA9IFVMb2NhbGUuZ2V0RGlzcGxheVNjcmlwdChsb2NhbGVJRCwgbG9jKTsKKyAgICAgICAgICAgICAgICBjb3VudHJ5ID0gVUxvY2FsZS5nZXREaXNwbGF5Q291bnRyeShsb2NhbGVJRCwgbG9jKTsKKyAgICAgICAgICAgICAgICB2YXJpYW50ID0gVUxvY2FsZS5nZXREaXNwbGF5VmFyaWFudChsb2NhbGVJRCwgbG9jKTsKKworICAgICAgICAgICAgICAgIGlmICghY2hlY2tOYW1lKG5hbWUsIGxhbmd1YWdlLCBzY3JpcHQsIGNvdW50cnksIHZhcmlhbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBVTG9jYWxlIGxvYzEgPSBuZXcgVUxvY2FsZSgiZW5fVVNfQlJPT0tMWU4iKTsKKyAgICAgICAgVUxvY2FsZSBsb2MyID0gbmV3IFVMb2NhbGUoImVuIiwiVVMiLCJCUk9PS0xZTiIpOworICAgICAgICBpZiAoIWxvYzIuZXF1YWxzKGxvYzEpKXsKKyAgICAgICAgICAgIGVycmxuKCJVTG9jYWxlLlVMb2NhbGUoU3RyaW5nIGEsIFN0cmluZyBiLCBTdHJpbmcgYykiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVUxvY2FsZSBsb2MzID0gbmV3IFVMb2NhbGUoImVuX1VTIik7CisgICAgICAgIFVMb2NhbGUgbG9jNCA9IG5ldyBVTG9jYWxlKCJlbiIsIlVTIik7CisgICAgICAgIGlmICghbG9jNC5lcXVhbHMobG9jMykpeworICAgICAgICAgICAgZXJybG4oIlVMb2NhbGUuVUxvY2FsZShTdHJpbmcgYSwgU3RyaW5nIGIpIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFVMb2NhbGUgbG9jNSA9IChVTG9jYWxlKSBsb2M0LmNsb25lKCk7CisgICAgICAgIGlmICghbG9jNS5lcXVhbHMobG9jNCkpeworICAgICAgICAgICAgZXJybG4oIlVMb2NhbGUuY2xvbmUgc2hvdWxkIGdldCB0aGUgc2FtZSBVTG9jYWxlIik7CisgICAgICAgIH0KKyAgICAgICAgVUxvY2FsZS5nZXRJU09Db3VudHJpZXMoKTsJLy8gVG8gY2hlY2sgdGhlIHJlc3VsdCA/IQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3RCYW1CbSgpIHsKKyAgICAgICAgLy8gImJhbSIgc2hvdWxkbid0IGJlIHRoZXJlIHNpbmNlIHRoZSBvZmZpY2lhbCBjb2RlIGlzICdibScKKyAgICAgICAgU3RyaW5nW10gaXNvTGFuZ3VhZ2VzID0gVUxvY2FsZS5nZXRJU09MYW5ndWFnZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpc29MYW5ndWFnZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICgiYmFtIi5lcXVhbHMoaXNvTGFuZ3VhZ2VzW2ldKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJmb3VuZCBiYW0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpID4gMCAmJiBpc29MYW5ndWFnZXNbaV0uY29tcGFyZVRvKGlzb0xhbmd1YWdlc1tpLTFdKSA8PSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImxhbmd1YWdlIGxpc3Qgb3V0IG9mIG9yZGVyOiAnIiArIGlzb0xhbmd1YWdlc1tpXSArICIgPD0gIiArIGlzb0xhbmd1YWdlc1tpLTFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIFRlc3REaXNwbGF5S2V5d29yZCgpIHsKKyAgICAgICAgLy9wcmVwYXJlIHRlc3RpbmcgZGF0YQorICAgICAgICBpbml0SGFzaHRhYmxlKCk7CisgICAgICAgIFN0cmluZ1tdIGRhdGEgPSB7ImVuX1VTQGNvbGxhdGlvbj1kaXJlY3Q7Y2FsZW5kYXI9aXNsYW1pYy1jaXZpbCIsCisgICAgICAgICAgICAgInpoX0hhbnNAY29sbGF0aW9uPXBpbnlpbjtjYWxlbmRhcj1jaGluZXNlIiwKKyAgICAgICAgICAgICAiZm9vX0Jhcl9CQVpAY29sbGF0aW9uPXRyYWRpdGlvbmFsO2NhbGVuZGFyPWJ1ZGRoaXN0In07CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBTdHJpbmcgbG9jYWxlSUQgPSBkYXRhW2ldOworICAgICAgICAgICAgbG9nbG4oIiIpOworICAgICAgICAgICAgbG9nbG4oIlRlc3RpbmcgbG9jYWxlICIgKyBsb2NhbGVJRCArICIgLi4uIik7CisgICAgICAgICAgICBVTG9jYWxlIGxvYyA9IG5ldyBVTG9jYWxlKGxvY2FsZUlEKTsKKworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBsb2MuZ2V0S2V5d29yZHMoKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0MiA9IFVMb2NhbGUuZ2V0S2V5d29yZHMobG9jYWxlSUQpOworICAgICAgICAgICAgLy9pdCBhbmQgaXQyIGFyZSBub3QgZXF1YWwgaGVyZS4gTm8gd2F5IHRvIHZlcmlmeSB0aGVpciBlcXVpdmFsZW5jZSB5ZXQuCisgICAgICAgICAgICB3aGlsZShpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZylpdC5uZXh0KCk7CisKKyAgICAgICAgICAgICAgICAvL1RvIHZlcmlmeSBkaXNwbGF5IG9mIEtleXdvcmQKKyAgICAgICAgICAgICAgICAvLyBkaXNwbGF5IHRoZSBhYm92ZSBrZXkgaW4gRW5nbGlzaAorICAgICAgICAgICAgICAgIFN0cmluZyBzMCA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmQoa2V5KTsgLy9kaXNwbGF5IGluIGRlZmF1bHQgbG9jYWxlCisgICAgICAgICAgICAgICAgU3RyaW5nIHMxID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZChrZXksIFVMb2NhbGUuVVMpOworICAgICAgICAgICAgICAgIFN0cmluZyBzMiA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmQoa2V5LCAiZW5fVVMiKTsKKyAgICAgICAgICAgICAgICBpZiAoIXMxLmVxdWFscyhzMikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4gKCJGQUlMOiBvbmUgb2YgdGhlIGdldERpc3BsYXlLZXl3b3JkIG1ldGhvZHMgZmFpbGVkLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXMxLmVxdWFscyhoWzBdLmdldChrZXkpKSkgeworICAgICAgICAgICAgICAgICAgICB3YXJubG4oIkxvY2FsZSAiICsgbG9jYWxlSUQgKyAiIGdldERpc3BsYXlLZXl3b3JkIGZvciBrZXk6ICIgKyBrZXkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIGluIEVuZ2xpc2ggZXhwZWN0ZWQgXCIiICsgaFswXS5nZXQoa2V5KSArICJcIiBzYXcgXCIiICsgczEgKyAiXCIgaW5zdGVhZCIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogZ2V0RGlzcGxheUtleXdvcmQgZm9yIGtleTogIiArIGtleSArICIgaW4gRW5nbGlzaCBnb3QgIiArIHMxKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBkaXNwbGF5IHRoZSBrZXkgaW4gUy1DaGluZXNlCisgICAgICAgICAgICAgICAgczEgPSBVTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkKGtleSwgVUxvY2FsZS5DSElOQSk7CisgICAgICAgICAgICAgICAgczIgPSBVTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkKGtleSwgInpoX0hhbnMiKTsKKyAgICAgICAgICAgICAgICBpZiAoIXMxLmVxdWFscyhzMikpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4gKCJvbmUgb2YgdGhlIGdldERpc3BsYXlLZXl3b3JkIG1ldGhvZHMgZmFpbGVkLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXMxLmVxdWFscyhoWzFdLmdldChrZXkpKSkgeworICAgICAgICAgICAgICAgICAgICB3YXJubG4oIkxvY2FsZSAiICsgbG9jYWxlSUQgKyAiIGdldERpc3BsYXlLZXl3b3JkIGZvciBrZXk6ICIgKyBrZXkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIGluIENoaW5lc2UgZXhwZWN0ZWQgXCIiICsgaFsxXS5nZXQoa2V5KSArICJcIiBzYXcgXCIiICsgczEgKyAiXCIgaW5zdGVhZCIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJPSzogZ2V0RGlzcGxheUtleXdvcmQgZm9yIGtleTogIiArIGtleSArICIgaW4gQ2hpbmVzZSBnb3QgIiArIHMxKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvL1RvIHZlcmlmeSBkaXNwbGF5IG9mIEtleXdvcmQgdmFsdWVzCisgICAgICAgICAgICAgICAgU3RyaW5nIHR5cGUgPSBsb2MuZ2V0S2V5d29yZFZhbHVlKGtleSk7CisgICAgICAgICAgICAgICAgLy8gZGlzcGxheSB0eXBlIGluIEVuZ2xpc2gKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3MwID0gbG9jLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoa2V5KTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3MxID0gbG9jLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoa2V5LCBVTG9jYWxlLlVTKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3MyID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZFZhbHVlKGxvY2FsZUlELCBrZXksICJlbl9VUyIpOworICAgICAgICAgICAgICAgIFN0cmluZyBzczMgPSBVTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkVmFsdWUobG9jYWxlSUQsIGtleSwgVUxvY2FsZS5VUyk7CisgICAgICAgICAgICAgICAgaWYgKCFzczEuZXF1YWxzKHNzMikgfHwgIXNzMS5lcXVhbHMoc3MzKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbiAoIkZBSUw6IG9uZSBvZiB0aGUgZ2V0RGlzcGxheUtleXdvcmRWYWx1ZSBtZXRob2RzIGZhaWxlZC4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFzczEuZXF1YWxzKGhbMF0uZ2V0KHR5cGUpKSkgeworICAgICAgICAgICAgICAgICAgICB3YXJubG4oIiBMb2NhbGUgIiArIGxvY2FsZUlEICsgIiBnZXREaXNwbGF5S2V5d29yZFZhbHVlIGZvciBrZXk6ICIgKyBrZXkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiIGluIEVuZ2xpc2ggZXhwZWN0ZWQgXCIiICsgaFswXS5nZXQodHlwZSkgKyAiXCIgc2F3IFwiIiArIHNzMSArICJcIiBpbnN0ZWFkIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nbG4oIk9LOiBnZXREaXNwbGF5S2V5d29yZFZhbHVlIGZvciBrZXk6ICIgKyBrZXkgKyAiIGluIEVuZ2xpc2ggZ290ICIgKyBzczEpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGRpc3BsYXkgdHlwZSBpbiBDaGluZXNlCisgICAgICAgICAgICAgICAgc3MwID0gbG9jLmdldERpc3BsYXlLZXl3b3JkVmFsdWUoa2V5KTsKKyAgICAgICAgICAgICAgICBzczEgPSBsb2MuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShrZXksIFVMb2NhbGUuQ0hJTkEpOworICAgICAgICAgICAgICAgIHNzMiA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShsb2NhbGVJRCwga2V5LCAiemhfSGFucyIpOworICAgICAgICAgICAgICAgIHNzMyA9IFVMb2NhbGUuZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShsb2NhbGVJRCwga2V5LCBVTG9jYWxlLkNISU5BKTsKKyAgICAgICAgICAgICAgICBpZiAoIXNzMS5lcXVhbHMoc3MyKSB8fCAhc3MxLmVxdWFscyhzczMpKSB7CisgICAgICAgICAgICAgICAgICAgIHdhcm5sbiAoIm9uZSBvZiB0aGUgZ2V0RGlzcGxheUtleXdvcmRWYWx1ZSBtZXRob2RzIGZhaWxlZC4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFzczEuZXF1YWxzKGhbMV0uZ2V0KHR5cGUpKSkgeworICAgICAgICAgICAgICAgICAgICB3YXJubG4oIkxvY2FsZSAiICsgbG9jYWxlSUQgKyAiIGdldERpc3BsYXlLZXl3b3JkVmFsdWUgZm9yIGtleTogIiArIGtleSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgaW4gQ2hpbmVzZSBleHBlY3RlZCBcIiIgKyBoWzFdLmdldCh0eXBlKSArICJcIiBzYXcgXCIiICsgc3MxICsgIlwiIGluc3RlYWQiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2dsbigiT0s6IGdldERpc3BsYXlLZXl3b3JkVmFsdWUgZm9yIGtleTogIiArIGtleSArICIgaW4gQ2hpbmVzZSBnb3QgIiArIHNzMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBpbml0SGFzaHRhYmxlKCkgeworICAgICAgICBoWzBdID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBoWzFdID0gbmV3IEhhc2h0YWJsZSgpOworCisgICAgICAgIC8vZGlzcGxheSBpbiBFbmdsaXNoCisgICAgICAgIGhbMF0ucHV0KCJjb2xsYXRpb24iLCAiQ29sbGF0aW9uIik7CisgICAgICAgIGhbMF0ucHV0KCJjYWxlbmRhciIsICJDYWxlbmRhciIpOworICAgICAgICBoWzBdLnB1dCgiY3VycmVuY3kiLCAiQ3VycmVuY3kiKTsKKyAgICAgICAgaFswXS5wdXQoInBob25lYm9vayIsICJQaG9uZWJvb2sgT3JkZXIiKTsKKyAgICAgICAgaFswXS5wdXQoInBpbnlpbiIsICJQaW55aW4gT3JkZXIiKTsKKyAgICAgICAgaFswXS5wdXQoInRyYWRpdGlvbmFsIiwgIlRyYWRpdGlvbmFsIik7CisgICAgICAgIGhbMF0ucHV0KCJzdHJva2UiLCAiU3Ryb2tlIE9yZGVyIik7CisgICAgICAgIGhbMF0ucHV0KCJkaXJlY3QiLCAiRGlyZWN0IE9yZGVyIik7CisgICAgICAgIGhbMF0ucHV0KCJqYXBhbmVzZSIsICJKYXBhbmVzZSBDYWxlbmRhciIpOworICAgICAgICBoWzBdLnB1dCgiYnVkZGhpc3QiLCAiQnVkZGhpc3QgQ2FsZW5kYXIiKTsKKyAgICAgICAgaFswXS5wdXQoImlzbGFtaWMiLCAiSXNsYW1pYyBDYWxlbmRhciIpOworICAgICAgICBoWzBdLnB1dCgiaXNsYW1pYy1jaXZpbCIsICJJc2xhbWljLUNpdmlsIENhbGVuZGFyIiApOworICAgICAgICBoWzBdLnB1dCgiaGVicmV3IiwgIkhlYnJldyBDYWxlbmRhciIpOworICAgICAgICBoWzBdLnB1dCgiY2hpbmVzZSIsICJDaGluZXNlIENhbGVuZGFyIik7CisgICAgICAgIGhbMF0ucHV0KCJncmVnb3JpYW4iLCAiR3JlZ29yaWFuIENhbGVuZGFyIiApOworCisgICAgICAgIC8vZGlzcGxheSBpbiBTLUNoaW5lc2UKKyAgICAgICAgaFsxXS5wdXQoImNvbGxhdGlvbiIsICJcdTVCRjlcdTcxNjciKTsKKyAgICAgICAgaFsxXS5wdXQoImNhbGVuZGFyIiwgIlx1NjVFNVx1NTM4NiIpOworICAgICAgICBoWzFdLnB1dCgiY3VycmVuY3kiLCAiXHU4RDI3XHU1RTAxIik7CisgICAgICAgIGhbMV0ucHV0KCJkaXJlY3QiLCAiXHU5ODdBXHU1RThGIik7CisgICAgICAgIGhbMV0ucHV0KCJwaG9uZWJvb2siLCAiXHU3NTM1XHU4QkREXHU3QzNGXHU5ODdBXHU1RThGIik7CisgICAgICAgIGhbMV0ucHV0KCJwaW55aW4iLCAiXHU2MkZDXHU5N0YzXHU5ODdhXHU1ZThmIik7CisgICAgICAgIGhbMV0ucHV0KCJzdHJva2UiLCAiXHU3QjE0XHU1MjEyXHU5ODdBXHU1RThGIik7CisgICAgICAgIGhbMV0ucHV0KCJ0cmFkaXRpb25hbCIsICJcdTRGMjBcdTdFREZcdTUzODZcdTZDRDUiKTsKKyAgICAgICAgaFsxXS5wdXQoImphcGFuZXNlIiwgIlx1NjVFNVx1NjcyQ1x1NjVFNVx1NTM4NiIpOworICAgICAgICBoWzFdLnB1dCgiYnVkZGhpc3QiLCAiXHU0RjVCXHU2NTU5XHU2NUU1XHU1Mzg2Iik7CisgICAgICAgIGhbMV0ucHV0KCJpc2xhbWljIiwgIlx1NEYwQVx1NjVBRlx1NTE3MFx1NjVFNVx1NTM4NiIpOworICAgICAgICBoWzFdLnB1dCgiaXNsYW1pYy1jaXZpbCIsICJcdTRGMEFcdTY1QUZcdTUxNzBcdTVFMENcdTU0MDlcdTY3NjVcdTUzODYiKTsKKyAgICAgICAgaFsxXS5wdXQoImhlYnJldyIsICJcdTVFMENcdTRGMkZcdTY3NjVcdTY1RTVcdTUzODYiKTsKKyAgICAgICAgaFsxXS5wdXQoImNoaW5lc2UiLCAiXHU1MTlDXHU1Mzg2Iik7CisgICAgICAgIGhbMV0ucHV0KCJncmVnb3JpYW4iLCAiXHU1MTZDXHU1Mzg2Iik7CisgICAgfQorCisgICAgLy9IYXNodGFibGVzIGZvciBzdG9yaW5nIGV4cGVjdGVkIGRpc3BsYXkgb2Yga2V5cy90eXBlcyBvZiBsb2NhbGUgaW4gRW5nbGlzaCBhbmQgQ2hpbmVzZQorICAgIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZVtdIGggPSBuZXcgSGFzaHRhYmxlWzJdOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBQ0NFUFRfTEFOR1VBR0VfVEVTVFNbXVtdICA9ICB7CisgICAgLyojICAgICAgcmVzdWx0ICBmYWxsYmFjaz8gKi8KKyAgICAvKjAqLyB7ICJtdF9NVCIsICJmYWxzZSIgfSwKKyAgICAvKjEqLyB7ICJlbiIsICJmYWxzZSIgfSwKKyAgICAvKjIqLyB7ICJlbiIsICJ0cnVlIiB9LCAvLyBmZWxsIGJhY2sgZnJvbSBlbi16enogdG8gZW4KKyAgICAvKjMqLyB7ICBudWxsLCAidHJ1ZSIgfSwKKyAgICAvKjQqLyB7ICAiZXMiLCAiZmFsc2UiIH0sIAorICAgIC8qNSovIHsgImRlIiwgImZhbHNlIiB9fTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUNDRVBUX0xBTkdVQUdFX0hUVFBbXSA9IHsgCisgICAgICAgICAgICAgICAgICAgIC8qMCovICJtdC1tdCwgamE7cT0wLjc2LCBlbi11cztxPTAuOTUsIGVuO3E9MC45MiwgZW4tZ2I7cT0wLjg5LCBmcjtxPTAuODcsIGl1LWNhO3E9MC44NCwgaXU7cT0wLjgyLCBqYS1qcDtxPTAuNzksIG10O3E9MC45NywgZGUtZGU7cT0wLjc0LCBkZTtxPTAuNzEsIGVzO3E9MC42OCwgaXQtaXQ7cT0wLjY2LCBpdDtxPTAuNjMsIHZpLXZuO3E9MC42MSwgdmk7cT0wLjU4LCBubC1ubDtxPTAuNTUsIG5sO3E9MC41MywgdGgtdGgtdHJhZGl0aW9uYWw7cT0uMDEiLAorICAgICAgICAgICAgICAgICAgICAvKjEqLyAiamE7cT0wLjUsIGVuO3E9MC44LCB0bGgiLAorICAgICAgICAgICAgICAgICAgICAvKjIqLyAiZW4tenp6LCBkZS1seDtxPTAuOCIsCisgICAgICAgICAgICAgICAgICAgIC8qMyovICJtZ2EtaWU7cT0wLjksIHRsaCIsCisgICAgICAgICAgICAgICAgICAgIC8qNCovICJ4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCB4eHgteXl5O3E9LjAxLCAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgeHh4LXl5eTtxPS4wMSwgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgLyo1Ki8gImRlO3E9LjksIGZyO3E9LjksIHh4eC15eXksIHNyO3E9LjgifTsKKyAgICAKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0QWNjZXB0TGFuZ3VhZ2UoKSB7CisgICAgICAgIGZvcihpbnQgaSA9IDAgOyBpIDwgKEFDQ0VQVF9MQU5HVUFHRV9IVFRQLmxlbmd0aCk7IGkrKykgeworICAgICAgICAgICAgQm9vbGVhbiBleHBlY3RCb29sZWFuID0gbmV3IEJvb2xlYW4oQUNDRVBUX0xBTkdVQUdFX1RFU1RTW2ldWzFdKTsKKyAgICAgICAgICAgIFN0cmluZyBleHBlY3RMb2NhbGU9QUNDRVBUX0xBTkdVQUdFX1RFU1RTW2ldWzBdOworICAgICAgICAgICAgCisgICAgICAgICAgIGxvZ2xuKCIjIiArIGkgKyAiOiBleHBlY3Rpbmc6ICIgKyBleHBlY3RMb2NhbGUgKyAiICgiICsgZXhwZWN0Qm9vbGVhbiArICIpIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJvb2xlYW4gcltdID0geyBmYWxzZSB9OworICAgICAgICAgICAgVUxvY2FsZSBuID0gVUxvY2FsZS5hY2NlcHRMYW5ndWFnZShBQ0NFUFRfTEFOR1VBR0VfSFRUUFtpXSwgcik7CisgICAgICAgICAgICBpZigobj09bnVsbCkmJihleHBlY3RMb2NhbGUhPW51bGwpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInJlc3VsdCB3YXMgbnVsbCEgbGluZSAjIiArIGkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoKChuPT1udWxsKSYmKGV4cGVjdExvY2FsZT09bnVsbCkpIHx8IChuLnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdExvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIiBsb2NhbGU6IE9LLiIgKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oImV4cGVjdGVkICIgKyBleHBlY3RMb2NhbGUgKyAiIGJ1dCBnb3QgIiArIG4udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RCb29sZWFuLmVxdWFscyhuZXcgQm9vbGVhbihyWzBdKSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiIGJvb2w6IE9LLiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiYm9vbDogbm90IE9LLCB3YXMgIiArIG5ldyBCb29sZWFuKHJbMF0pLnRvU3RyaW5nKCkgKyAiIGV4cGVjdGVkICIgKyBleHBlY3RCb29sZWFuLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgVUxvY2FsZVtdIFN0cmluZ1RvVUxvY2FsZUFycmF5KFN0cmluZyBhY2NlcHRMYW5ndWFnZUxpc3QpeworICAgICAgICAvL2ZvbGxvd2luZyBjb2RlIGlzIGNvcGllZCBmcm9tIAorICAgICAgICAvL1VMb2NhbGUuYWNjZXB0TGFuZ3VhZ2UoU3RyaW5nIGFjY2VwdExhbmd1YWdlTGlzdCwgVUxvY2FsZVtdIGF2YWlsYWJsZUxvY2FsZXMsIGJvb2xlYW5bXSBmYWxsYmFjaykKKyAgICAgICAgY2xhc3MgVUxvY2FsZUFjY2VwdExhbmd1YWdlUSBpbXBsZW1lbnRzIENvbXBhcmFibGUgeworICAgICAgICAgICAgcHJpdmF0ZSBkb3VibGUgcTsKKyAgICAgICAgICAgIHByaXZhdGUgZG91YmxlIHNlcmlhbDsKKyAgICAgICAgICAgIHB1YmxpYyBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRKGRvdWJsZSB0aGVxLCBpbnQgdGhlc2VyaWFsKSB7CisgICAgICAgICAgICAgICAgcSA9IHRoZXE7CisgICAgICAgICAgICAgICAgc2VyaWFsID0gdGhlc2VyaWFsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IG8pIHsKKyAgICAgICAgICAgICAgICBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRIG90aGVyID0gKFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEpIG87CisgICAgICAgICAgICAgICAgaWYocSA+IG90aGVyLnEpIHsgLy8gcmV2ZXJzZSAtIHRvIHNvcnQgaW4gZGVzY2VuZGluZyBvcmRlcgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHEgPCBvdGhlci5xKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihzZXJpYWwgPCBvdGhlci5zZXJpYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihzZXJpYWwgPiBvdGhlci5zZXJpYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8vIHNhbWUgb2JqZWN0CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gMXN0OiBwYXJzZSBvdXQgdGhlIGFjY2VwdExhbmd1YWdlTGlzdCBpbnRvIGFuIGFycmF5CisgICAgICAgIAorICAgICAgICBUcmVlTWFwIG1hcCA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIAorICAgICAgICBmaW5hbCBpbnQgbCA9IGFjY2VwdExhbmd1YWdlTGlzdC5sZW5ndGgoKTsKKyAgICAgICAgaW50IG47CisgICAgICAgIGludCBsYXN0PS0xOworICAgICAgICBmb3Iobj0wO248bDtuKyspIHsKKyAgICAgICAgICAgIGludCBpdGVtRW5kID0gYWNjZXB0TGFuZ3VhZ2VMaXN0LmluZGV4T2YoJywnLG4pOworICAgICAgICAgICAgaWYoaXRlbUVuZCA9PSAtMSkgeworICAgICAgICAgICAgICAgIGl0ZW1FbmQgPSBsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHBhcmFtRW5kID0gYWNjZXB0TGFuZ3VhZ2VMaXN0LmluZGV4T2YoJzsnLG4pOworICAgICAgICAgICAgZG91YmxlIHEgPSAxLjA7CisgCisgICAgICAgICAgICBpZigocGFyYW1FbmQgIT0gLTEpICYmIChwYXJhbUVuZCA8IGl0ZW1FbmQpKSB7CisgICAgICAgICAgICAgICAgLyogc2VtaWNvbG9uICg7KSBpcyBjbG9zZXIgdGhhbiBlbmQgKCwpICovCisgICAgICAgICAgICAgICAgaW50IHQgPSBwYXJhbUVuZCArIDE7CisgICAgICAgICAgICAgICAgd2hpbGUoQ2hhcmFjdGVyLmlzU3BhY2UoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihhY2NlcHRMYW5ndWFnZUxpc3QuY2hhckF0KHQpPT0ncScpIHsKKyAgICAgICAgICAgICAgICAgICAgdCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZShDaGFyYWN0ZXIuaXNTcGFjZShhY2NlcHRMYW5ndWFnZUxpc3QuY2hhckF0KHQpKSkgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCk9PSc9JykgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlKENoYXJhY3Rlci5pc1NwYWNlKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbCA9IGFjY2VwdExhbmd1YWdlTGlzdC5zdWJzdHJpbmcodCxpdGVtRW5kKS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgIHEgPSBEb3VibGUucGFyc2VEb3VibGUodmFsKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gbmZlKSB7CisgICAgICAgICAgICAgICAgICAgIHEgPSAxLjA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBxID0gMS4wOyAvL2RlZmF1bHQKKyAgICAgICAgICAgICAgICBwYXJhbUVuZCA9IGl0ZW1FbmQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBsb2MgPSBhY2NlcHRMYW5ndWFnZUxpc3Quc3Vic3RyaW5nKG4scGFyYW1FbmQpLnRyaW0oKTsKKyAgICAgICAgICAgIGludCBzZXJpYWwgPSBtYXAuc2l6ZSgpOworICAgICAgICAgICAgVUxvY2FsZUFjY2VwdExhbmd1YWdlUSBlbnRyeSA9IG5ldyBVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRKHEsc2VyaWFsKTsKKyAgICAgICAgICAgIG1hcC5wdXQoZW50cnksIG5ldyBVTG9jYWxlKFVMb2NhbGUuY2Fub25pY2FsaXplKGxvYykpKTsgLy8gc29ydCBpbiByZXZlcnNlIG9yZGVyLi4gICAxLjAsIDAuOSwgMC44IC4uIGV0YworICAgICAgICAgICAgbiA9IGl0ZW1FbmQ7IC8vIGdldCBuZXh0IGl0ZW0uIChuKysgd2lsbCBza2lwIG92ZXIgZGVsaW1pdGVyKQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyAyLiBwdWxsIG91dCB0aGUgbWFwIAorICAgICAgICBVTG9jYWxlIGFjY2VwdExpc3RbXSA9IChVTG9jYWxlW10pbWFwLnZhbHVlcygpLnRvQXJyYXkobmV3IFVMb2NhbGVbbWFwLnNpemUoKV0pOworICAgICAgICByZXR1cm4gYWNjZXB0TGlzdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgVGVzdEFjY2VwdExhbmd1YWdlMigpIHsKKyAgICAgICAgZm9yKGludCBpID0gMCA7IGkgPCAoQUNDRVBUX0xBTkdVQUdFX0hUVFAubGVuZ3RoKTsgaSsrKSB7CisgICAgICAgICAgICBCb29sZWFuIGV4cGVjdEJvb2xlYW4gPSBuZXcgQm9vbGVhbihBQ0NFUFRfTEFOR1VBR0VfVEVTVFNbaV1bMV0pOworICAgICAgICAgICAgU3RyaW5nIGV4cGVjdExvY2FsZT1BQ0NFUFRfTEFOR1VBR0VfVEVTVFNbaV1bMF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgbG9nbG4oIiMiICsgaSArICI6IGV4cGVjdGluZzogIiArIGV4cGVjdExvY2FsZSArICIgKCIgKyBleHBlY3RCb29sZWFuICsgIikiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYm9vbGVhbiByW10gPSB7IGZhbHNlIH07CisgICAgICAgICAgICBVTG9jYWxlIG4gPSBVTG9jYWxlLmFjY2VwdExhbmd1YWdlKFN0cmluZ1RvVUxvY2FsZUFycmF5KEFDQ0VQVF9MQU5HVUFHRV9IVFRQW2ldKSwgcik7CisgICAgICAgICAgICBpZigobj09bnVsbCkmJihleHBlY3RMb2NhbGUhPW51bGwpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInJlc3VsdCB3YXMgbnVsbCEgbGluZSAjIiArIGkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoKChuPT1udWxsKSYmKGV4cGVjdExvY2FsZT09bnVsbCkpIHx8IChuLnRvU3RyaW5nKCkuZXF1YWxzKGV4cGVjdExvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIiBsb2NhbGU6IE9LLiIgKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJybG4oImV4cGVjdGVkICIgKyBleHBlY3RMb2NhbGUgKyAiIGJ1dCBnb3QgIiArIG4udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBlY3RCb29sZWFuLmVxdWFscyhuZXcgQm9vbGVhbihyWzBdKSkpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiIGJvb2w6IE9LLiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiYm9vbDogbm90IE9LLCB3YXMgIiArIG5ldyBCb29sZWFuKHJbMF0pLnRvU3RyaW5nKCkgKyAiIGV4cGVjdGVkICIgKyBleHBlY3RCb29sZWFuLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyB2b2lkIFRlc3RKQjM5NjIoKXsKKyAgICAgICAgVUxvY2FsZSBsb2MgPSBuZXcgVUxvY2FsZSgiZGVfQ0giKTsKKyAgICAgICAgU3RyaW5nIGRpc3AgPSBsb2MuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5HRVJNQU4pOworICAgICAgICBpZighZGlzcC5lcXVhbHMoIkRldXRzY2ggKFNjaHdlaXopIikpeworICAgICAgICAgICAgZXJybG4oIkRpZCBub3QgZ2V0IHRoZSBleHBlY3RlZCBkaXNwbGF5IG5hbWUgZm9yIGRlX0NIIGxvY2FsZS4gR290OiAiKyBwcmV0dGlmeShkaXNwKSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Vbmljb2RlTGFiZWwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVMYWJlbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkNzVkNWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9Vbmljb2RlTGFiZWwuamF2YQpAQCAtMCwwICsxLDU2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBVbmljb2RlTGFiZWwgeworICAgIAorICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmcgZ2V0VmFsdWUoaW50IGNvZGVwb2ludCwgYm9vbGVhbiBpc1Nob3J0KTsKKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFZhbHVlKFN0cmluZyBzLCBTdHJpbmcgc2VwYXJhdG9yLCBib29sZWFuIHdpdGhDb2RlUG9pbnQpIHsKKyAgICAgICAgaWYgKHMubGVuZ3RoKCkgPT0gMSkgeyAvLyBvcHRpbWl6ZSBzaW1wbGUgY2FzZQorICAgICAgICAgICAgcmV0dXJuIGdldFZhbHVlKHMuY2hhckF0KDApLCB3aXRoQ29kZVBvaW50KTsgCisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgY3A7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSs9VVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQocyxpKTsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHNiLmFwcGVuZChzZXBhcmF0b3IpOworICAgICAgICAgICAgc2IuYXBwZW5kKGdldFZhbHVlKGNwLCB3aXRoQ29kZVBvaW50KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0TWF4V2lkdGgoYm9vbGVhbiBpc1Nob3J0KSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBIZXggZXh0ZW5kcyBVbmljb2RlTGFiZWwgeworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFZhbHVlKGludCBjb2RlcG9pbnQsIGJvb2xlYW4gaXNTaG9ydCkgeworICAgICAgICAgICAgaWYgKGlzU2hvcnQpIHJldHVybiBVdGlsaXR5LmhleChjb2RlcG9pbnQsNCk7CisgICAgICAgICAgICByZXR1cm4gIlUrIiArIFV0aWxpdHkuaGV4KGNvZGVwb2ludCw0KTsKKyAgICAgICAgfSAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBDb25zdGFudCBleHRlbmRzIFVuaWNvZGVMYWJlbCB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHZhbHVlOworICAgICAgICBwdWJsaWMgQ29uc3RhbnQoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgdmFsdWUgPSAiIjsKKyAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFZhbHVlKGludCBjb2RlcG9pbnQsIGJvb2xlYW4gaXNTaG9ydCkgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBpbnQgZ2V0TWF4V2lkdGgoYm9vbGVhbiBpc1Nob3J0KSB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWUubGVuZ3RoKCk7ICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlTGFiZWwgTlVMTCA9IG5ldyBDb25zdGFudCgiIik7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlTGFiZWwgSEVYID0gbmV3IEhleCgpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVNYXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVNYXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMzEyN2NiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVW5pY29kZU1hcC5qYXZhCkBAIC0wLDAgKzEsODgzIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0OworaW1wb3J0IGphdmEuaW8uRGF0YU91dHB1dDsKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5PdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpbmtlZEhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkxpbmtlZEhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldEl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuRnJlZXphYmxlOworLyoqCisgKiBDbGFzcyBmb3IgbWFwcGluZyBVbmljb2RlIGNoYXJhY3RlcnMgdG8gdmFsdWVzCisgKiBNdWNoIHNtYWxsZXIgc3RvcmFnZSB0aGFuIHVzaW5nIEhhc2hNYXAsIGFuZCBtdWNoIGZhc3RlciBhbmQgbW9yZSBjb21wYWN0IHRoYW4KKyAqIGEgbGlzdCBvZiBVbmljb2RlU2V0cy4KKyAqIEBhdXRob3IgRGF2aXMKKyAqLworCitwdWJsaWMgZmluYWwgY2xhc3MgVW5pY29kZU1hcCBpbXBsZW1lbnRzIENsb25lYWJsZSwgRnJlZXphYmxlLCBFeHRlcm5hbGl6YWJsZSB7CisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gQVNTRVJUSU9OUyA9IGZhbHNlOworICAgIHN0YXRpYyBmaW5hbCBsb25nIEdST1dUSF9QRVJDRU5UID0gMjAwOyAvLyAxMDAgaXMgbm8gZ3Jvd3RoIQorICAgIHN0YXRpYyBmaW5hbCBsb25nIEdST1dUSF9HQVAgPSAxMDsgLy8gZXh0cmEgYnVtcCEKKworICAgIHByaXZhdGUgaW50IGxlbmd0aDsKKyAgICAvLyB0d28gcGFyYWxsZWwgYXJyYXlzIHRvIHNhdmUgbWVtb3J5LiBXaXNoIEphdmEgaGFkIHN0cnVjdHMuCisgICAgcHJpdmF0ZSBpbnRbXSB0cmFuc2l0aW9uczsKKyAgICBwcml2YXRlIE9iamVjdFtdIHZhbHVlczsKKyAgICAKKyAgICBwcml2YXRlIExpbmtlZEhhc2hTZXQgYXZhaWxhYmxlVmFsdWVzID0gbmV3IExpbmtlZEhhc2hTZXQoKTsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIHN0YWxlQXZhaWxhYmxlVmFsdWVzOworCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBlcnJvck9uUmVzZXQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBsb2NrZWQ7CisgICAgcHJpdmF0ZSBpbnQgbGFzdEluZGV4OworICAgIAorICAgIHsgY2xlYXIoKTsgfQorICAgIAorICAgIHB1YmxpYyBVbmljb2RlTWFwIGNsZWFyKCkgeworICAgICAgICBpZiAobG9ja2VkKSB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGxvY2tlZCBvYmplY3QiKTsKKyAgICAgICAgbGVuZ3RoID0gMjsKKyAgICAgICAgdHJhbnNpdGlvbnMgPSBuZXcgaW50W10gezAsMHgxMTAwMDAsMCwwLDAsMCwwLDAsMCwwfTsKKyAgICAgICAgdmFsdWVzID0gbmV3IE9iamVjdFsxMF07CisgICAgICAgIAorICAgICAgICBhdmFpbGFibGVWYWx1ZXMuY2xlYXIoKTsKKyAgICAgICAgc3RhbGVBdmFpbGFibGVWYWx1ZXMgPSBmYWxzZTsKKworICAgICAgICBlcnJvck9uUmVzZXQgPSBmYWxzZTsKKyAgICAgICAgbGFzdEluZGV4ID0gMDsKKyAgICAJcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIC8qIEJvaWxlcnBsYXRlICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvdGhlcikgeworICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgVW5pY29kZU1hcCB0aGF0ID0gKFVuaWNvZGVNYXApIG90aGVyOworICAgICAgICAgICAgaWYgKGxlbmd0aCAhPSB0aGF0Lmxlbmd0aCkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGgtMTsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHRyYW5zaXRpb25zW2ldICE9IHRoYXQudHJhbnNpdGlvbnNbaV0pIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAoIWFyZUVxdWFsKHZhbHVlc1tpXSwgdGhhdC52YWx1ZXNbaV0pKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldEhhc2hDb2RlKE9iamVjdCBvKSB7CisgICAgCXJldHVybiBvLmhhc2hDb2RlKCk7CisgICAgCS8vZXF1YXRvci5nZXRIYXNoQ29kZQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gYXJlRXF1YWwoT2JqZWN0IGEgLCBPYmplY3QgYikgeworICAgIAlpZiAoYSA9PSBiKSByZXR1cm4gdHJ1ZTsKKyAgICAJaWYgKGEgPT0gbnVsbCB8fCBiID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAJcmV0dXJuIGEuZXF1YWxzKGIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICBpbnQgcmVzdWx0ID0gbGVuZ3RoOworICAgICAgICAvLyBUT0RPIG1pZ2h0IHdhbnQgdG8gYWJicmV2aWF0ZSB0aGlzIGZvciBzcGVlZC4KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGgtMTsgKytpKSB7CisgICAgICAgICAgICByZXN1bHQgPSAzNypyZXN1bHQgKyB0cmFuc2l0aW9uc1tpXTsKKyAgICAgICAgICAgIHJlc3VsdCA9IDM3KnJlc3VsdCArIGdldEhhc2hDb2RlKHZhbHVlc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU3RhbmRhcmQgY2xvbmUuIFdhcm5pbmcsIGFzIHdpdGggQ29sbGVjdGlvbnMsIGRvZXMgbm90IGRvIGRlZXAgY2xvbmUuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZUFzVGhhd2VkKCkgeworICAgICAgICBVbmljb2RlTWFwIHRoYXQgPSBuZXcgVW5pY29kZU1hcCgpOworICAgICAgICB0aGF0Lmxlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgdGhhdC50cmFuc2l0aW9ucyA9IChpbnRbXSkgdHJhbnNpdGlvbnMuY2xvbmUoKTsKKyAgICAgICAgdGhhdC52YWx1ZXMgPSAoT2JqZWN0W10pIHZhbHVlcy5jbG9uZSgpOworICAgICAgICB0aGF0LmF2YWlsYWJsZVZhbHVlcyA9IG5ldyBMaW5rZWRIYXNoU2V0KGF2YWlsYWJsZVZhbHVlcyk7CisgICAgICAgIHRoYXQubG9ja2VkID0gZmFsc2U7CisgICAgICAgIHJldHVybiB0aGF0OworICAgIH0KKyAgICAKKyAgICAvKiBmb3IgaW50ZXJuYWwgY29uc2lzdGVuY3kgY2hlY2tpbmcgKi8KKyAgICAKKyAgICB2b2lkIF9jaGVja0ludmFyaWFudHMoKSB7CisgICAgICAgIGlmIChsZW5ndGggPCAyCisgICAgICAgICAgfHwgbGVuZ3RoID4gdHJhbnNpdGlvbnMubGVuZ3RoCisgICAgICAgICAgfHwgdHJhbnNpdGlvbnMubGVuZ3RoICE9IHZhbHVlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YXJpYW50IGZhaWxlZDogTGVuZ3RocyBiYWQiKTsKKyAgICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbGVuZ3RoLTE7ICsraSkgeworICAgICAgICAgICAgaWYgKGFyZUVxdWFsKHZhbHVlc1tpLTFdLCB2YWx1ZXNbaV0pKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YXJpYW50IGZhaWxlZDogdmFsdWVzIHNoYXJlZCBhdCAiIAorICAgICAgICAgICAgICAgICAgICArICJcdCIgKyBVdGlsaXR5LmhleChpLTEpICsgIjogPCIgKyB2YWx1ZXNbaS0xXSArICI+IgorICAgICAgICAgICAgICAgICAgICArICJcdCIgKyBVdGlsaXR5LmhleChpKSArICI6IDwiICsgdmFsdWVzW2ldICsgIj4iCisgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRyYW5zaXRpb25zWzBdICE9IDAgfHwgdHJhbnNpdGlvbnNbbGVuZ3RoLTFdICE9IDB4MTEwMDAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhcmlhbnQgZmFpbGVkOiBib3VuZHMgc2V0IHdyb25nIik7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBsZW5ndGgtMTsgKytpKSB7CisgICAgICAgICAgICBpZiAodHJhbnNpdGlvbnNbaS0xXSA+PSB0cmFuc2l0aW9uc1tpXSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFyaWFudCBmYWlsZWQ6IG5vdCBtb25vdG9uaWMiCisgICAgICAgICAgICAgICAgKyAiXHQiICsgVXRpbGl0eS5oZXgoaS0xKSArICI6ICIgKyB0cmFuc2l0aW9uc1tpLTFdCisgICAgICAgICAgICAgICAgKyAiXHQiICsgVXRpbGl0eS5oZXgoaSkgKyAiOiAiICsgdHJhbnNpdGlvbnNbaV0KKyAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBGaW5kcyBhbiBpbmRleCBzdWNoIHRoYXQgaW52ZXJzaW9uTGlzdFtpXSA8PSBjb2RlcG9pbnQgPCBpbnZlcnNpb25MaXN0W2krMV0KKyAgICAgKiBBc3N1bWVzIHRoYXQgMCA8PSBjb2RlcG9pbnQgPD0gMHgxMEZGRkYKKyAgICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAgICogQHJldHVybiB0aGUgaW5kZXgKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBfZmluZEluZGV4KGludCBjKSB7CisgICAgICAgIGludCBsbyA9IDA7CisgICAgICAgIGludCBoaSA9IGxlbmd0aCAtIDE7CisgICAgICAgIGludCBpID0gKGxvICsgaGkpID4+PiAxOworICAgICAgICAvLyBpbnZhcmlhbnQ6IGMgPj0gbGlzdFtsb10KKyAgICAgICAgLy8gaW52YXJpYW50OiBjIDwgbGlzdFtoaV0KKyAgICAgICAgd2hpbGUgKGkgIT0gbG8pIHsKKyAgICAgICAgICAgIGlmIChjIDwgdHJhbnNpdGlvbnNbaV0pIHsKKyAgICAgICAgICAgICAgICBoaSA9IGk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvID0gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGkgPSAobG8gKyBoaSkgPj4+IDE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKEFTU0VSVElPTlMpIF9jaGVja0ZpbmQoYywgbG8pOworICAgICAgICByZXR1cm4gbG87CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBfY2hlY2tGaW5kKGludCBjb2RlcG9pbnQsIGludCB2YWx1ZSkgeworICAgICAgICBpbnQgb3RoZXIgPSBfX2ZpbmRJbmRleChjb2RlcG9pbnQpOworICAgICAgICBpZiAob3RoZXIgIT0gdmFsdWUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFyaWFudCBmYWlsZWQ6IGJpbmFyeSBzZWFyY2giCisgICAgICAgICAgICAgICAgKyAiXHQiICsgVXRpbGl0eS5oZXgoY29kZXBvaW50KSArICI6ICIgKyB2YWx1ZQorICAgICAgICAgICAgICAgICsgIlx0c2hvdWxkIGJlOiAiICsgb3RoZXIpOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50IF9fZmluZEluZGV4KGludCBjb2RlcG9pbnQpIHsKKyAgICAgICAgLy8gVE9ETyB1c2UgYmluYXJ5IHNlYXJjaAorICAgICAgICBmb3IgKGludCBpID0gbGVuZ3RoLTE7IGkgPiAwOyAtLWkpIHsKKyAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uc1tpXSA8PSBjb2RlcG9pbnQpIHJldHVybiBpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIFRyeSBpbmRleGVkIGxvb2t1cAorICAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFNISUZUID0gODsKKyAgICBpbnRbXSBzdGFydHMgPSBuZXcgaW50WzB4MTBGRkZGPj5TSElGVF07IC8vIGxvd2VzdCB0cmFuc2l0aW9uIGluZGV4IHdoZXJlIGNvZGVwb2ludD4+eCBjYW4gYmUgZm91bmQKKyAgICBib29sZWFuIHN0YXJ0c1ZhbGlkID0gZmFsc2U7CisgICAgcHJpdmF0ZSBpbnQgZmluZEluZGV4KGludCBjb2RlcG9pbnQpIHsKKyAgICAgICAgaWYgKCFzdGFydHNWYWxpZCkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gbGVuZ3RoLTE7IGkgPiAwOyAtLWkpIHsKKyAgICAgICAgICAgaWYgKHRyYW5zaXRpb25zW2ldIDw9IGNvZGVwb2ludCkgcmV0dXJuIGk7CisgICAgICAgfQorICAgICAgIHJldHVybiAwOworICAgfQorICAgKi8KKyAgIAorICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgaXRlbXMgZnJvbSBpbmRleCB0aHJvdWdoIGluZGV4K2NvdW50LTEuCisgICAgICogTG9naWNhbGx5IHJlZHVjZXMgdGhlIHNpemUgb2YgdGhlIGludGVybmFsIGFycmF5cy4KKyAgICAgKiBAcGFyYW0gaW5kZXgKKyAgICAgKiBAcGFyYW0gY291bnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgX3JlbW92ZUF0KGludCBpbmRleCwgaW50IGNvdW50KSB7CisgICAgICAgIGZvciAoaW50IGkgPSBpbmRleCArIGNvdW50OyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHRyYW5zaXRpb25zW2ktY291bnRdID0gdHJhbnNpdGlvbnNbaV07CisgICAgICAgICAgICB2YWx1ZXNbaS1jb3VudF0gPSB2YWx1ZXNbaV07CisgICAgICAgIH0KKyAgICAgICAgbGVuZ3RoIC09IGNvdW50OworICAgIH0KKyAgICAvKioKKyAgICAgKiBBZGQgYSBnYXAgZnJvbSBpbmRleCB0byBpbmRleCtjb3VudC0xLgorICAgICAqIFRoZSB2YWx1ZXMgdGhlcmUgYXJlIHVuZGVmaW5lZCwgYW5kIG11c3QgYmUgc2V0LgorICAgICAqIExvZ2ljYWxseSBncm93cyBhcnJheXMgdG8gYWNjb21vZGF0ZS4gQWN0dWFsIGdyb3d0aCBpcyBsaW1pdGVkCisgICAgICogQHBhcmFtIGluZGV4CisgICAgICogQHBhcmFtIGNvdW50CisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIF9pbnNlcnRHYXBBdChpbnQgaW5kZXgsIGludCBjb3VudCkgeworICAgICAgICBpbnQgbmV3TGVuZ3RoID0gbGVuZ3RoICsgY291bnQ7CisgICAgICAgIGludFtdIG9sZHRyYW5zaXRpb25zID0gdHJhbnNpdGlvbnM7CisgICAgICAgIE9iamVjdFtdIG9sZHZhbHVlcyA9IHZhbHVlczsKKyAgICAgICAgaWYgKG5ld0xlbmd0aCA+IHRyYW5zaXRpb25zLmxlbmd0aCkgeworICAgICAgICAgICAgaW50IGFsbG9jYXRpb24gPSAoaW50KSAoR1JPV1RIX0dBUCArIChuZXdMZW5ndGggKiBHUk9XVEhfUEVSQ0VOVCkgLyAxMDApOworICAgICAgICAgICAgdHJhbnNpdGlvbnMgPSBuZXcgaW50W2FsbG9jYXRpb25dOworICAgICAgICAgICAgdmFsdWVzID0gbmV3IE9iamVjdFthbGxvY2F0aW9uXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kZXg7ICsraSkgeworICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zW2ldID0gb2xkdHJhbnNpdGlvbnNbaV07CisgICAgICAgICAgICAgICAgdmFsdWVzW2ldID0gb2xkdmFsdWVzW2ldOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBmb3IgKGludCBpID0gbGVuZ3RoIC0gMTsgaSA+PSBpbmRleDsgLS1pKSB7CisgICAgICAgICAgICB0cmFuc2l0aW9uc1tpK2NvdW50XSA9IG9sZHRyYW5zaXRpb25zW2ldOworICAgICAgICAgICAgdmFsdWVzW2krY291bnRdID0gb2xkdmFsdWVzW2ldOworICAgICAgICB9CisgICAgICAgIGxlbmd0aCA9IG5ld0xlbmd0aDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQXNzb2NpYXRlcyBjb2RlIHBvaW50IHdpdGggdmFsdWUuIFJlbW92ZXMgYW55IHByZXZpb3VzIGFzc29jaWF0aW9uLgorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQKKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqLworICAgIHByaXZhdGUgVW5pY29kZU1hcCBfcHV0KGludCBjb2RlcG9pbnQsIE9iamVjdCB2YWx1ZSkgeworICAgICAgICAvLyBXYXJuaW5nOiBiYXNlSW5kZXggaXMgYW4gaW52YXJpYW50OyBtdXN0CisgICAgICAgIC8vIGJlIGRlZmluZWQgc3VjaCB0aGF0IHRyYW5zaXRpb25zW2Jhc2VJbmRleF0gPCBjb2RlcG9pbnQKKyAgICAgICAgLy8gYXQgZW5kIG9mIHRoaXMgcm91dGluZS4KKyAgICAgICAgaW50IGJhc2VJbmRleDsKKyAgICAgICAgaWYgKHRyYW5zaXRpb25zW2xhc3RJbmRleF0gPD0gY29kZXBvaW50IAorICAgICAgICAgICYmIGNvZGVwb2ludCA8IHRyYW5zaXRpb25zW2xhc3RJbmRleCsxXSkgeworICAgICAgICAgICAgYmFzZUluZGV4ID0gbGFzdEluZGV4OworICAgICAgICB9IGVsc2UgeyAKKyAgICAgICAgICAgIGJhc2VJbmRleCA9IF9maW5kSW5kZXgoY29kZXBvaW50KTsKKyAgICAgICAgfQorICAgICAgICBpbnQgbGltaXRJbmRleCA9IGJhc2VJbmRleCArIDE7CisgICAgICAgIC8vIGNhc2VzIGFyZSAoYSkgdmFsdWUgaXMgYWxyZWFkeSBzZXQKKyAgICAgICAgaWYgKGFyZUVxdWFsKHZhbHVlc1tiYXNlSW5kZXhdLCB2YWx1ZSkpIHJldHVybiB0aGlzOworICAgICAgICBpZiAobG9ja2VkKSB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGxvY2tlZCBvYmplY3QiKTsKKyAgICAgICAgaWYgKGVycm9yT25SZXNldCAmJiB2YWx1ZXNbYmFzZUluZGV4XSAhPSBudWxsKSB7CisgICAgICAgIAl0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJBdHRlbXB0IHRvIHJlc2V0IHZhbHVlIGZvciAiICsgVXRpbGl0eS5oZXgoY29kZXBvaW50KQorICAgICAgICAJCQkrICIgd2hlbiB0aGF0IGlzIGRpc2FsbG93ZWQuIE9sZDogIiArIHZhbHVlc1tiYXNlSW5kZXhdICsgIjsgTmV3OiAiICsgdmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgLy8gYWRqdXN0IHRoZSBhdmFpbGFibGUgdmFsdWVzCisgICAgICAgIHN0YWxlQXZhaWxhYmxlVmFsdWVzID0gdHJ1ZTsKKyAgICAgICAgYXZhaWxhYmxlVmFsdWVzLmFkZCh2YWx1ZSk7IC8vIGFkZCBpZiBub3QgdGhlcmUgYWxyZWFkeSAgICAgIAorCisgICAgICAgIGludCBiYXNlQ1AgPSB0cmFuc2l0aW9uc1tiYXNlSW5kZXhdOworICAgICAgICBpbnQgbGltaXRDUCA9IHRyYW5zaXRpb25zW2xpbWl0SW5kZXhdOworICAgICAgICAvLyB3ZSBub3cgc3RhcnQgd2Fsa2luZyB0aHJvdWdoIHRoZSBkaWZmZXJlbmNlIGNhc2UsCisgICAgICAgIC8vIGJhc2VkIG9uIHdoZXRoZXIgd2UgYXJlIGF0IHRoZSBzdGFydCBvciBlbmQgb2YgcmFuZ2UKKyAgICAgICAgLy8gYW5kIHdoZXRoZXIgdGhlIHJhbmdlIGlzIGEgc2luZ2xlIGNoYXJhY3RlciBvciBtdWx0aXBsZQorICAgICAgICAKKyAgICAgICAgaWYgKGJhc2VDUCA9PSBjb2RlcG9pbnQpIHsKKyAgICAgICAgICAgIC8vIENBU0U6IEF0IHZlcnkgc3RhcnQgb2YgcmFuZ2UKKyAgICAgICAgICAgIGJvb2xlYW4gY29ubmVjdHNXaXRoUHJldmlvdXMgPSAKKyAgICAgICAgICAgICAgICBiYXNlSW5kZXggIT0gMCAmJiBhcmVFcXVhbCh2YWx1ZSwgdmFsdWVzW2Jhc2VJbmRleC0xXSk7ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobGltaXRDUCA9PSBjb2RlcG9pbnQgKyAxKSB7CisgICAgICAgICAgICAgICAgLy8gQ0FTRTogU2luZ2xlIGNvZGVwb2ludCByYW5nZQorICAgICAgICAgICAgICAgIGJvb2xlYW4gY29ubmVjdHNXaXRoRm9sbG93aW5nID0KKyAgICAgICAgICAgICAgICAgICAgYmFzZUluZGV4IDwgbGVuZ3RoIC0gMSAmJiBhcmVFcXVhbCh2YWx1ZSwgdmFsdWVzW2xpbWl0SW5kZXhdKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoY29ubmVjdHNXaXRoUHJldmlvdXMpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQTFhIGNvbm5lY3RzIHdpdGggcHJldmlvdXMgJiBmb2xsb3dpbmcsIHNvIHJlbW92ZSBpbmRleAorICAgICAgICAgICAgICAgICAgICBpZiAoY29ubmVjdHNXaXRoRm9sbG93aW5nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBfcmVtb3ZlQXQoYmFzZUluZGV4LCAyKTsKKyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBfcmVtb3ZlQXQoYmFzZUluZGV4LCAxKTsgLy8gZXh0ZW5kIHByZXZpb3VzCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLS1iYXNlSW5kZXg7IC8vIGZpeCB1cAorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29ubmVjdHNXaXRoRm9sbG93aW5nKSB7CisgICAgICAgICAgICAgICAgICAgIF9yZW1vdmVBdChiYXNlSW5kZXgsIDEpOyAvLyBleHRlbmQgZm9sbG93aW5nIGJhY2t3YXJkcworICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uc1tiYXNlSW5kZXhdID0gY29kZXBvaW50OyAKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBkb2Vzbid0IGNvbm5lY3Qgb24gZWl0aGVyIHNpZGUsIGp1c3QgcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzW2Jhc2VJbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbm5lY3RzV2l0aFByZXZpb3VzKSB7ICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQS4xOiBzdGFydCBvZiBtdWx0aSBjb2RlcG9pbnQgcmFuZ2UKKyAgICAgICAgICAgIC8vIGlmIGNvbm5lY3RzCisgICAgICAgICAgICAgICAgKyt0cmFuc2l0aW9uc1tiYXNlSW5kZXhdOyAvLyBleHRlbmQgcHJldmlvdXMKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGluc2VydCBuZXcgdHJhbnNpdGlvbgorICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zW2Jhc2VJbmRleF0gPSBjb2RlcG9pbnQrMTsgLy8gZml4IGZvbGxvd2luZyByYW5nZQorICAgICAgICAgICAgICAgIF9pbnNlcnRHYXBBdChiYXNlSW5kZXgsIDEpOworICAgICAgICAgICAgICAgIHZhbHVlc1tiYXNlSW5kZXhdID0gdmFsdWU7CisgICAgICAgICAgICAgICAgdHJhbnNpdGlvbnNbYmFzZUluZGV4XSA9IGNvZGVwb2ludDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChsaW1pdENQID09IGNvZGVwb2ludCArIDEpIHsKKyAgICAgICAgICAgIC8vIENBU0U6IGF0IGVuZCBvZiByYW5nZSAgICAgICAgCisgICAgICAgICAgICAvLyBpZiBjb25uZWN0cywganVzdCBiYWNrIHVwIHJhbmdlCisgICAgICAgICAgICBib29sZWFuIGNvbm5lY3RzV2l0aEZvbGxvd2luZyA9CisgICAgICAgICAgICAgICAgYmFzZUluZGV4IDwgbGVuZ3RoIC0gMSAmJiBhcmVFcXVhbCh2YWx1ZSwgdmFsdWVzW2xpbWl0SW5kZXhdKTsKKworICAgICAgICAgICAgaWYgKGNvbm5lY3RzV2l0aEZvbGxvd2luZykgeworICAgICAgICAgICAgICAgIC0tdHJhbnNpdGlvbnNbbGltaXRJbmRleF07IAorICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgX2luc2VydEdhcEF0KGxpbWl0SW5kZXgsIDEpOworICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zW2xpbWl0SW5kZXhdID0gY29kZXBvaW50OworICAgICAgICAgICAgICAgIHZhbHVlc1tsaW1pdEluZGV4XSA9IHZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gQ0FTRTogaW4gbWlkZGxlIG9mIHJhbmdlCisgICAgICAgICAgICAvLyBpbnNlcnQgZ2FwLCB0aGVuIHNldCB0aGUgbmV3IHJhbmdlCisgICAgICAgICAgICBfaW5zZXJ0R2FwQXQoKytiYXNlSW5kZXgsMik7CisgICAgICAgICAgICB0cmFuc2l0aW9uc1tiYXNlSW5kZXhdID0gY29kZXBvaW50OworICAgICAgICAgICAgdmFsdWVzW2Jhc2VJbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgICAgIHRyYW5zaXRpb25zW2Jhc2VJbmRleCsxXSA9IGNvZGVwb2ludCArIDE7CisgICAgICAgICAgICB2YWx1ZXNbYmFzZUluZGV4KzFdID0gdmFsdWVzW2Jhc2VJbmRleC0xXTsgLy8gY29weSBsb3dlciByYW5nZSB2YWx1ZXMKKyAgICAgICAgfQorICAgICAgICBsYXN0SW5kZXggPSBiYXNlSW5kZXg7IC8vIHN0b3JlIGZvciBuZXh0IHRpbWUKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIHByaXZhdGUgVW5pY29kZU1hcCBfcHV0QWxsKGludCBzdGFydENvZGVQb2ludCwgaW50IGVuZENvZGVQb2ludCwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydENvZGVQb2ludDsgaSA8PSBlbmRDb2RlUG9pbnQ7ICsraSkgeworICAgICAgICAgICAgX3B1dChpLCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGNvZGVwb2ludCB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHJldHVybiB0aGlzIChmb3IgY2hhaW5pbmcpCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVNYXAgcHV0KGludCBjb2RlcG9pbnQsIE9iamVjdCB2YWx1ZSkgeworICAgICAgICBpZiAoY29kZXBvaW50IDwgMCB8fCBjb2RlcG9pbnQgPiAweDEwRkZGRikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ29kZXBvaW50IG91dCBvZiByYW5nZTogIiArIGNvZGVwb2ludCk7CisgICAgICAgIH0KKyAgICAgICAgX3B1dChjb2RlcG9pbnQsIHZhbHVlKTsKKyAgICAgICAgaWYgKEFTU0VSVElPTlMpIF9jaGVja0ludmFyaWFudHMoKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIC8qKgorICAgICAqIEFkZHMgYnVuY2ggbycgY29kZXBvaW50czsgb3RoZXJ3aXNlIGxpa2UgcHV0LgorICAgICAqIEBwYXJhbSBjb2RlcG9pbnRzCisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHJldHVybiB0aGlzIChmb3IgY2hhaW5pbmcpCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVNYXAgcHV0QWxsKFVuaWNvZGVTZXQgY29kZXBvaW50cywgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIC8vIFRPRE8gb3B0aW1pemUKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihjb2RlcG9pbnRzKTsKKyAgICAgICAgd2hpbGUgKGl0Lm5leHRSYW5nZSgpKSB7CisgICAgICAgICAgICBfcHV0QWxsKGl0LmNvZGVwb2ludCwgaXQuY29kZXBvaW50RW5kLCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkZHMgYnVuY2ggbycgY29kZXBvaW50czsgb3RoZXJ3aXNlIGxpa2UgYWRkLgorICAgICAqIEBwYXJhbSBzdGFydENvZGVQb2ludAorICAgICAqIEBwYXJhbSBlbmRDb2RlUG9pbnQKKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKiBAcmV0dXJuIHRoaXMgKGZvciBjaGFpbmluZykKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZU1hcCBwdXRBbGwoaW50IHN0YXJ0Q29kZVBvaW50LCBpbnQgZW5kQ29kZVBvaW50LCBPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgaWYgKHN0YXJ0Q29kZVBvaW50IDwgMCB8fCBlbmRDb2RlUG9pbnQgPiAweDEwRkZGRikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ29kZXBvaW50IG91dCBvZiByYW5nZTogIgorICAgICAgICAgICAgICsgVXRpbGl0eS5oZXgoc3RhcnRDb2RlUG9pbnQpICsgIi4uIiArIFV0aWxpdHkuaGV4KGVuZENvZGVQb2ludCkpOworICAgICAgICB9CisgICAgICAgIC8vIFRPRE8gb3B0aW1pemUKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0Q29kZVBvaW50OyBpIDw9IGVuZENvZGVQb2ludDsgKytpKSB7CisgICAgICAgICAgICBfcHV0KGksIHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgLyoqCisgICAgICogQWRkIGFsbCB0aGUgKG1haW4pIHZhbHVlcyBmcm9tIGEgVW5pY29kZSBwcm9wZXJ0eQorICAgICAqIEBwYXJhbSBwcm9wIHRoZSBwcm9wZXJ0eSB0byBhZGQgdG8gdGhlIG1hcAorICAgICAqIEByZXR1cm4gdGhpcyAoZm9yIGNoYWluaW5nKQorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlTWFwIHB1dEFsbChVbmljb2RlUHJvcGVydHkgcHJvcCkgeworICAgICAgICAvLyBUT0RPIG9wdGltaXplCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgIF9wdXQoaSwgcHJvcC5nZXRWYWx1ZShpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGFsbCB0aGUgKG1haW4pIHZhbHVlcyBmcm9tIGEgVW5pY29kZSBwcm9wZXJ0eQorICAgICAqIEBwYXJhbSBwcm9wIHRoZSBwcm9wZXJ0eSB0byBhZGQgdG8gdGhlIG1hcAorICAgICAqIEByZXR1cm4gdGhpcyAoZm9yIGNoYWluaW5nKQorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlTWFwIHB1dEFsbChVbmljb2RlTWFwIHByb3ApIHsKKyAgICAgICAgLy8gVE9ETyBvcHRpbWl6ZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSAweDEwRkZGRjsgKytpKSB7CisgICAgICAgICAgICBfcHV0KGksIHByb3AuZ2V0VmFsdWUoaSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY3VycmVudGx5IHVubWFwcGVkIFVuaWNvZGUgY29kZSBwb2ludHMgdG8gdGhlIGdpdmVuIHZhbHVlLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gc2V0CisgICAgICogQHJldHVybiB0aGlzIChmb3IgY2hhaW5pbmcpCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVNYXAgc2V0TWlzc2luZyhPYmplY3QgdmFsdWUpIHsKKyAgICAJLy8gZmFzdCBwYXRoLCBpZiB2YWx1ZSBub3QgeWV0IHByZXNlbnQKKyAgICAJaWYgKCFnZXRBdmFpbGFibGVWYWx1ZXMoKS5jb250YWlucyh2YWx1ZSkpIHsKKyAgICAgICAgCXN0YWxlQXZhaWxhYmxlVmFsdWVzID0gdHJ1ZTsKKwkgICAgCWF2YWlsYWJsZVZhbHVlcy5hZGQodmFsdWUpOworCSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworCSAgICAgICAgICAgIGlmICh2YWx1ZXNbaV0gPT0gbnVsbCkgdmFsdWVzW2ldID0gdmFsdWU7CisJICAgICAgICB9CisJICAgICAgICByZXR1cm4gdGhpczsKKwkgICAgfSBlbHNlIHsKKwkgICAgCXJldHVybiBwdXRBbGwoZ2V0U2V0KG51bGwpLCB2YWx1ZSk7CisJICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2V0IGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIHZhbHVlLiBEZXBvc2l0cyBpbnRvCisgICAgICogcmVzdWx0IGlmIGl0IGlzIG5vdCBudWxsLiBSZW1lbWJlciB0byBjbGVhciBpZiB5b3UganVzdCB3YW50CisgICAgICogdGhlIG5ldyB2YWx1ZXMuCisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHBhcmFtIHJlc3VsdAorICAgICAqIEByZXR1cm4gcmVzdWx0CisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0U2V0KE9iamVjdCB2YWx1ZSwgVW5pY29kZVNldCByZXN1bHQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aCAtIDE7ICsraSkgeworICAgICAgICAgICAgaWYgKGFyZUVxdWFsKHZhbHVlLCB2YWx1ZXNbaV0pKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCh0cmFuc2l0aW9uc1tpXSwgdHJhbnNpdGlvbnNbaSsxXS0xKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0U2V0KE9iamVjdCB2YWx1ZSkgeworICAgICAgICByZXR1cm4gZ2V0U2V0KHZhbHVlLG51bGwpOworICAgIH0KKworICAgIHB1YmxpYyBVbmljb2RlU2V0IGtleVNldCgpIHsKKyAgICAgICAgcmV0dXJuIGdldFNldChudWxsLG51bGwpLmNvbXBsZW1lbnQoKTsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBwb3NzaWJsZSB2YWx1ZXMuIERlcG9zaXRzIGVhY2ggbm9uLW51bGwgdmFsdWUgaW50bworICAgICAqIHJlc3VsdC4gQ3JlYXRlcyByZXN1bHQgaWYgaXQgaXMgbnVsbC4gUmVtZW1iZXIgdG8gY2xlYXIgcmVzdWx0IGlmCisgICAgICogeW91IGFyZSBub3QgYXBwZW5kaW5nIHRvIGV4aXN0aW5nIGNvbGxlY3Rpb24uCisgICAgICogQHBhcmFtIHJlc3VsdAorICAgICAqIEByZXR1cm4gcmVzdWx0CisgICAgICovCisgICAgcHVibGljIENvbGxlY3Rpb24gZ2V0QXZhaWxhYmxlVmFsdWVzKENvbGxlY3Rpb24gcmVzdWx0KSB7CisgICAgCWlmIChzdGFsZUF2YWlsYWJsZVZhbHVlcykgeworICAgIAkJLy8gY29sbGVjdCBhbGwgdGhlIGN1cnJlbnQgdmFsdWVzCisgICAgCQkvLyByZXRhaW4gdGhlbSBpbiB0aGUgYXZhaWxhYmxlVmFsdWVzCisgICAgCQlTZXQgdGVtcCA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aCAtIDE7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZXNbaV0gIT0gbnVsbCkgdGVtcC5hZGQodmFsdWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGF2YWlsYWJsZVZhbHVlcy5yZXRhaW5BbGwodGVtcCk7CisgICAgICAgICAgICBzdGFsZUF2YWlsYWJsZVZhbHVlcyA9IGZhbHNlOworICAgIAl9CisgICAgCWlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gbmV3IEFycmF5TGlzdChhdmFpbGFibGVWYWx1ZXMuc2l6ZSgpKTsKKyAgICAgICAgcmVzdWx0LmFkZEFsbChhdmFpbGFibGVWYWx1ZXMpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGVjdGlvbiBnZXRBdmFpbGFibGVWYWx1ZXMoKSB7CisgICAgICAgIHJldHVybiBnZXRBdmFpbGFibGVWYWx1ZXMobnVsbCk7CisgICAgfQorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIGNvZGUgcG9pbnQuCisgICAgICogUmV0dXJucyBudWxsLCBpZiB0aGVyZSBpcyBubyBzdWNoIHZhbHVlLgorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQKKyAgICAgKiBAcmV0dXJuIHRoZSB2YWx1ZQorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0VmFsdWUoaW50IGNvZGVwb2ludCkgeworICAgICAgICBpZiAoY29kZXBvaW50IDwgMCB8fCBjb2RlcG9pbnQgPiAweDEwRkZGRikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ29kZXBvaW50IG91dCBvZiByYW5nZTogIiArIGNvZGVwb2ludCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlc1tfZmluZEluZGV4KGNvZGVwb2ludCldOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50ZXJmYWNlIENvbXBvc2VyIHsKKyAgICAJT2JqZWN0IGNvbXBvc2UoaW50IGNvZGVQb2ludCwgT2JqZWN0IGEsIE9iamVjdCBiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFVuaWNvZGVNYXAgY29tcG9zZVdpdGgoVW5pY29kZU1hcCBvdGhlciwgQ29tcG9zZXIgY29tcG9zZXIpIHsKKyAgICAJZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgIAkJT2JqZWN0IHYxID0gZ2V0VmFsdWUoaSk7CisgICAgCQlPYmplY3QgdjIgPSBvdGhlci5nZXRWYWx1ZShpKTsKKyAgICAJCU9iamVjdCB2MyA9IGNvbXBvc2VyLmNvbXBvc2UoaSwgdjEsIHYyKTsKKyAgICAJCWlmICh2MSAhPSB2MyAmJiAodjEgPT0gbnVsbCB8fCAhdjEuZXF1YWxzKHYzKSkpIHB1dChpLCB2Myk7CisgICAgCX0KKyAgICAJcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZvbGxvdyB0aGUgc3R5bGUgdXNlZCBieSBVbmljb2RlU2V0SXRlcmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIE1hcEl0ZXJhdG9yIHsKKyAgICAgICAgcHVibGljIGludCBjb2RlcG9pbnQ7CisgICAgICAgIHB1YmxpYyBpbnQgY29kZXBvaW50RW5kOworICAgICAgICBwdWJsaWMgT2JqZWN0IHZhbHVlOworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBVbmljb2RlTWFwIG1hcDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgaW5kZXg7CisgICAgICAgIHByaXZhdGUgaW50IHN0YXJ0UmFuZ2U7CisgICAgICAgIHByaXZhdGUgaW50IGVuZFJhbmdlOworICAgICAgICBwcml2YXRlIE9iamVjdCBsYXN0VmFsdWU7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgTWFwSXRlcmF0b3IoVW5pY29kZU1hcCBtYXApIHsKKyAgICAgICAgICAgIHJlc2V0KG1hcCk7CisgICAgICAgIH0KKyAgICAgICAgLy8gbm90ZTogbGVuZ3RoIG9mIDIgbWVhbnMgezAsIDExMDAwMH0uIE9ubHkgd2FudCB0byBpbmRleCB1cCB0byAwIQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBuZXh0UmFuZ2UoKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IG1hcC5sZW5ndGggLSAxKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB2YWx1ZSA9IG1hcC52YWx1ZXNbaW5kZXhdOworICAgICAgICAgICAgY29kZXBvaW50ID0gc3RhcnRSYW5nZSA9IG1hcC50cmFuc2l0aW9uc1tpbmRleCsrXTsKKyAgICAgICAgICAgIGNvZGVwb2ludEVuZCA9IGVuZFJhbmdlID0gbWFwLnRyYW5zaXRpb25zW2luZGV4XSAtIDE7IC8vIC0xIHRvIG1ha2UgbGltaXQgaW50byBlbmQKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIG5leHQoKSB7CisgICAgICAgICAgICBpZiAoc3RhcnRSYW5nZSA+IGVuZFJhbmdlKSB7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIioqKiIgKyBVdGlsaXR5LmhleChzdGFydFJhbmdlKSArICIuLiIgKyBVdGlsaXR5LmhleChlbmRSYW5nZSkpOworICAgICAgICAgICAgICAgIGlmICghbmV4dFJhbmdlKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAvLyBpbmRleCBub3cgcG9pbnRzIEFGVEVSIHRoZSBzdGFydCBvZiB0aGUgcmFuZ2UKKyAgICAgICAgICAgICAgICBsYXN0VmFsdWUgPSBtYXAudmFsdWVzW2luZGV4LTFdOworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCIqKioiICsgVXRpbGl0eS5oZXgoY29kZXBvaW50KSArICIuLiIgKyBVdGlsaXR5LmhleChjb2RlcG9pbnRFbmQpICsgIiA9PiAiICsgbGFzdFZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhbHVlID0gbGFzdFZhbHVlOworICAgICAgICAgICAgY29kZXBvaW50ID0gY29kZXBvaW50RW5kID0gc3RhcnRSYW5nZSsrOyAvLyBzZXQgdG8gZmlyc3QsIGFuZCBpdGVyYXRlCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBNYXBJdGVyYXRvciByZXNldCgpIHsKKyAgICAgICAgICAgIGluZGV4ID0gMDsKKyAgICAgICAgICAgIHN0YXJ0UmFuZ2UgPSAwOworICAgICAgICAgICAgZW5kUmFuZ2UgPSAtMTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBNYXBJdGVyYXRvciByZXNldChVbmljb2RlTWFwIG1hcCkgeworICAgICAgICAgICAgdGhpcy5tYXAgPSBtYXA7CisgICAgICAgICAgICByZXR1cm4gcmVzZXQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gdG9TdHJpbmcobnVsbCk7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoQ29tcGFyYXRvciBjb2xsZWN0ZWQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsgICAgICAgCisgICAgICAgIGlmIChjb2xsZWN0ZWQgPT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGgtMTsgKytpKSB7CisgICAgICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gdmFsdWVzW2ldOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSB0cmFuc2l0aW9uc1tpXTsKKyAgICAgICAgICAgICAgICBpbnQgZW5kID0gdHJhbnNpdGlvbnNbaSsxXS0xOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoVXRpbGl0eS5oZXgoc3RhcnQpKTsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnQgIT0gZW5kKSByZXN1bHQuYXBwZW5kKCIuLiIpCisgICAgICAgICAgICAgICAgLmFwcGVuZChVdGlsaXR5LmhleChlbmQpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJcdD0+ICIpCisgICAgICAgICAgICAgICAgLmFwcGVuZCh2YWx1ZXNbaV0gPT0gbnVsbCA/ICJudWxsIiA6IHZhbHVlc1tpXS50b1N0cmluZygpKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoIlxyXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFNldCBzZXQgPSAoU2V0KSBnZXRBdmFpbGFibGVWYWx1ZXMobmV3IFRyZWVTZXQoY29sbGVjdGVkKSk7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gc2V0Lml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgVW5pY29kZVNldCBzID0gZ2V0U2V0KHZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHZhbHVlKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoIlx0PT4gIikKKyAgICAgICAgICAgICAgICAuYXBwZW5kKHMudG9QYXR0ZXJuKHRydWUpKQorICAgICAgICAgICAgICAgIC5hcHBlbmQoIlxyXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCS8qKgorCSAqIEByZXR1cm4gUmV0dXJucyB0aGUgZXJyb3JPblJlc2V0LgorCSAqLworCXB1YmxpYyBib29sZWFuIGdldEVycm9yT25SZXNldCgpIHsKKwkJcmV0dXJuIGVycm9yT25SZXNldDsKKwl9CisJLyoqCisJICogQHBhcmFtIGVycm9yT25SZXNldCBUaGUgZXJyb3JPblJlc2V0IHRvIHNldC4KKwkgKi8KKwlwdWJsaWMgdm9pZCBzZXRFcnJvck9uUmVzZXQoYm9vbGVhbiBlcnJvck9uUmVzZXQpIHsKKwkJdGhpcy5lcnJvck9uUmVzZXQgPSBlcnJvck9uUmVzZXQ7CisJfQorCisJLyogKG5vbi1KYXZhZG9jKQorCSAqIEBzZWUgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbC5Mb2NrYWJsZSNpc0xvY2tlZCgpCisJICovCisJcHVibGljIGJvb2xlYW4gaXNGcm96ZW4oKSB7CisJCS8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWIKKwkJcmV0dXJuIGxvY2tlZDsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsLkxvY2thYmxlI2xvY2soKQorCSAqLworCXB1YmxpYyBPYmplY3QgZnJlZXplKCkgeworCQlsb2NrZWQgPSB0cnVlOworCQlyZXR1cm4gdGhpczsKKwl9CisgICAgCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUdfV1JJVEUgPSBmYWxzZTsKKyAgICAKKyAgICAvLyBUT0RPIEZpeCB0byBzZXJpYWxpemUgbW9yZSB0aGFuIGp1c3Qgc3RyaW5ncy4KKyAgICAvLyBPbmx5IGlmIGFsbCB0aGUgaXRlbXMgYXJlIHN0cmluZ3Mgd2lsbCB3ZSBkbyB0aGUgZm9sbG93aW5nIGNvbXByZXNzaW9uCisgICAgLy8gT3RoZXJ3aXNlIHdlJ2xsIGp1c3QgdXNlIEphdmEgU2VyaWFsaXphdGlvbiwgYnVsa3kgYXMgaXQgaXMKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUV4dGVybmFsKE9iamVjdE91dHB1dCBvdXQxKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBEYXRhT3V0cHV0Q29tcHJlc3NvciBzYyA9IG5ldyBEYXRhT3V0cHV0Q29tcHJlc3NvcihvdXQxKTsKKyAgICAgICAgLy8gaWYgYWxsIG9iamVjdHMgYXJlIHN0cmluZ3MKKyAgICAgICAgQ29sbGVjdGlvbiBhdmFpbGFibGVWYWx1ZXMgPSBnZXRBdmFpbGFibGVWYWx1ZXMoKTsKKyAgICAgICAgYm9vbGVhbiBhbGxTdHJpbmdzID0gYWxsQXJlU3RyaW5nKGF2YWlsYWJsZVZhbHVlcyk7CisgICAgICAgIHNjLndyaXRlQm9vbGVhbihhbGxTdHJpbmdzKTsKKyAgICAgICAgTWFwIG9iamVjdF9pbmRleCA9IG5ldyBMaW5rZWRIYXNoTWFwKCk7CisgICAgICAgIGlmIChhbGxBcmVTdHJpbmcoYXZhaWxhYmxlVmFsdWVzKSkgeworICAgICAgICAgICAgc2Mud3JpdGVTdHJpbmdTZXQobmV3IFRyZWVTZXQoYXZhaWxhYmxlVmFsdWVzKSwgb2JqZWN0X2luZGV4KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNjLndyaXRlQ29sbGVjdGlvbihhdmFpbGFibGVWYWx1ZXMsIG9iamVjdF9pbmRleCk7ICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBzYy53cml0ZVVJbnQobGVuZ3RoKTsKKyAgICAgICAgaW50IGxhc3RUcmFuc2l0aW9uID0gLTE7CisgICAgICAgIGludCBsYXN0VmFsdWVOdW1iZXIgPSAwOworICAgICAgICBpZiAoREVCVUdfV1JJVEUpIFN5c3RlbS5vdXQucHJpbnRsbigiVHJhbnMgY291bnQ6ICIgKyBsZW5ndGgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgdmFsdWVOdW1iZXIgPSAoKEludGVnZXIpb2JqZWN0X2luZGV4LmdldCh2YWx1ZXNbaV0pKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgaWYgKERFQlVHX1dSSVRFKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRyYW5zOiAiICsgdHJhbnNpdGlvbnNbaV0gKyAiLFx0IiArIHZhbHVlTnVtYmVyKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGRlbHRhVHJhbnNpdGlvbiA9IHRyYW5zaXRpb25zW2ldIC0gbGFzdFRyYW5zaXRpb247CisgICAgICAgICAgICBsYXN0VHJhbnNpdGlvbiA9IHRyYW5zaXRpb25zW2ldOworICAgICAgICAgICAgaW50IGRlbHRhVmFsdWVOdW1iZXIgPSB2YWx1ZU51bWJlciAtIGxhc3RWYWx1ZU51bWJlcjsKKyAgICAgICAgICAgIGxhc3RWYWx1ZU51bWJlciA9IHZhbHVlTnVtYmVyOworICAgICAgICAgICAgCisgICAgICAgICAgICBkZWx0YVZhbHVlTnVtYmVyIDw8PSAxOyAvLyBtYWtlIHJvb20gZm9yIG9uZSBiaXQKKyAgICAgICAgICAgIGJvb2xlYW4gY2FuQ29tYmluZSA9IGRlbHRhVHJhbnNpdGlvbiA9PSAxOworICAgICAgICAgICAgaWYgKGNhbkNvbWJpbmUpIGRlbHRhVmFsdWVOdW1iZXIgfD0gMTsKKyAgICAgICAgICAgIHNjLndyaXRlSW50KGRlbHRhVmFsdWVOdW1iZXIpOworICAgICAgICAgICAgaWYgKERFQlVHX1dSSVRFKSBTeXN0ZW0ub3V0LnByaW50bG4oImRlbHRhVmFsdWVOdW1iZXI6ICIgKyBkZWx0YVZhbHVlTnVtYmVyKTsKKyAgICAgICAgICAgIGlmICghY2FuQ29tYmluZSkgeworICAgICAgICAgICAgCXNjLndyaXRlVUludChkZWx0YVRyYW5zaXRpb24pOyAgICAgICAgICAgCQorICAgICAgICAgICAgCWlmIChERUJVR19XUklURSkgU3lzdGVtLm91dC5wcmludGxuKCJkZWx0YVRyYW5zaXRpb246ICIgKyBkZWx0YVRyYW5zaXRpb24pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNjLmZsdXNoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGFsbEFyZVN0cmluZyhDb2xsZWN0aW9uIGF2YWlsYWJsZVZhbHVlczIpIHsKKyAgICAgICAgLy9pZiAodHJ1ZSkgcmV0dXJuIGZhbHNlOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYXZhaWxhYmxlVmFsdWVzMi5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBpZiAoIShpdC5uZXh0KCkgaW5zdGFuY2VvZiBTdHJpbmcpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVhZEV4dGVybmFsKE9iamVjdElucHV0IGluMSkgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKyAgICAgICAgRGF0YUlucHV0Q29tcHJlc3NvciBzYyA9IG5ldyBEYXRhSW5wdXRDb21wcmVzc29yKGluMSk7CisgICAgICAgIGJvb2xlYW4gYWxsU3RyaW5ncyA9IHNjLnJlYWRCb29sZWFuKCk7CisgICAgICAgIE9iamVjdFtdIHZhbHVlc0xpc3Q7CisgICAgICAgIGF2YWlsYWJsZVZhbHVlcyA9IG5ldyBMaW5rZWRIYXNoU2V0KCk7CisgICAgICAgIGlmIChhbGxTdHJpbmdzKSB7CisgICAgICAgICAgICB2YWx1ZXNMaXN0ID0gc2MucmVhZFN0cmluZ1NldChhdmFpbGFibGVWYWx1ZXMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdmFsdWVzTGlzdCA9IHNjLnJlYWRDb2xsZWN0aW9uKGF2YWlsYWJsZVZhbHVlcyk7ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgbGVuZ3RoID0gc2MucmVhZFVJbnQoKTsKKyAgICAgICAgdHJhbnNpdGlvbnMgPSBuZXcgaW50W2xlbmd0aF07CisgICAgICAgIGlmIChERUJVR19XUklURSkgU3lzdGVtLm91dC5wcmludGxuKCJUcmFucyBjb3VudDogIiArIGxlbmd0aCk7CisgICAgICAgIHZhbHVlcyA9IG5ldyBPYmplY3RbbGVuZ3RoXTsKKyAgICAgICAgaW50IGN1cnJlbnRUcmFuc2l0aW9uID0gLTE7CisgICAgICAgIGludCBjdXJyZW50VmFsdWUgPSAwOworICAgICAgICBpbnQgZGVsdGFUcmFuc2l0aW9uOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgdGVtcCA9IHNjLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIGlmIChERUJVR19XUklURSkgU3lzdGVtLm91dC5wcmludGxuKCJkZWx0YVZhbHVlTnVtYmVyOiAiICsgdGVtcCk7CisgICAgICAgICAgICBib29sZWFuIGNvbWJpbmVkID0gKHRlbXAgJiAxKSAhPSAwOworICAgICAgICAgICAgdGVtcCA+Pj0gMTsKKyAgICAgICAgICAgIHZhbHVlc1tpXSA9IHZhbHVlc0xpc3RbY3VycmVudFZhbHVlICs9IHRlbXBdOworICAgICAgICAgICAgaWYgKCFjb21iaW5lZCkgeworICAgICAgICAgICAgICAgIGRlbHRhVHJhbnNpdGlvbiA9IHNjLnJlYWRVSW50KCk7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHX1dSSVRFKSBTeXN0ZW0ub3V0LnByaW50bG4oImRlbHRhVHJhbnNpdGlvbjogIiArIGRlbHRhVHJhbnNpdGlvbik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRlbHRhVHJhbnNpdGlvbiA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cmFuc2l0aW9uc1tpXSA9IGN1cnJlbnRUcmFuc2l0aW9uICs9IGRlbHRhVHJhbnNpdGlvbjsgLy8gZGVsdGEgdmFsdWUKKyAgICAgICAgICAgIGlmIChERUJVR19XUklURSkgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuczogIiArIHRyYW5zaXRpb25zW2ldICsgIixcdCIgKyBjdXJyZW50VmFsdWUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogCisgICAgICovCisgICAgc3RhdGljIGludCBmaW5kQ29tbW9uKFN0cmluZyBsYXN0LCBTdHJpbmcgcykgeworICAgICAgICBpbnQgbWluTGVuID0gTWF0aC5taW4obGFzdC5sZW5ndGgoKSwgcy5sZW5ndGgoKSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWluTGVuOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChsYXN0LmNoYXJBdChpKSAhPSBzLmNoYXJBdChpKSkgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1pbkxlbjsKKyAgICB9CisKKworLy8gICAgLyoqCisvLyAgICAgKiBAcGFyYW0gc2MKKy8vICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKy8vICAgICAqIAorLy8gICAgICovCisvLyAgICBwcml2YXRlIHZvaWQgc2hvd1NpemUoU3RyaW5nIHRpdGxlLCBPYmplY3RPdXRwdXQgb3V0LCBTdHJlYW1Db21wcmVzc29yIHNjKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8gICAgICAgIHNjLnNob3dTaXplKHRoaXMsIHRpdGxlLCBvdXQpOworLy8gICAgfQorLy8gICAgLy9wdWJsaWMgdm9pZCByZWFkT2JqZWN0KE9iamVjdElucHV0U3RyZWFtIGluKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8gICAgcHVibGljIHN0YXRpYyBjbGFzcyBTdHJlYW1Db21wcmVzc29yIHsKKy8vICAgIAl0cmFuc2llbnQgYnl0ZVtdIGJ1ZmZlciA9IG5ldyBieXRlWzFdOworLy8gICAgICAgIHRyYW5zaWVudCBTdHJpbmdCdWZmZXIgc3RyaW5nQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworLy8gICAgICAgIAorLy8gICAgICAgIHRyYW5zaWVudCBieXRlW10gcmVhZFdyaXRlQnVmZmVyID0gbmV3IGJ5dGVbOF07CisvLyAgICAgICAgaW50IHBvc2l0aW9uID0gMDsKKy8vICAgICAgICBEYXRhT3V0cHV0IG91dDsKKy8vICAgICAgICBEYXRhSW5wdXQgaW47CisvLworLy8gICAgICAgIC8qKgorLy8gICAgICAgICAqIEZvcm1hdCBpczoKKy8vICAgICAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisvLyAgICAgICAgICovCisvLyAgICAgICAgcHVibGljIHZvaWQgd3JpdGVJbnQoaW50IGkpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisvLyAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPT0gcmVhZFdyaXRlQnVmZmVyLmxlbmd0aCkgeworLy8gICAgICAgICAgICAgICAgCW91dC53cml0ZShyZWFkV3JpdGVCdWZmZXIpOworLy8gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gMDsKKy8vICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgCWlmICgoaSAmIH4weDdGKSA9PSAwKSB7CisvLyAgICAgICAgICAgICAgICAgICAgcmVhZFdyaXRlQnVmZmVyW3Bvc2l0aW9uKytdID0gKGJ5dGUpaTsKKy8vICAgICAgICAgICAgICAgICAgICBicmVhazsKKy8vICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgIHJlYWRXcml0ZUJ1ZmZlcltwb3NpdGlvbisrXSA9IChieXRlKSgweDgwIHwgaSk7CisvLyAgICAgICAgICAgICAgICBpID4+Pj0gNzsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0KKy8vCQkvKioKKy8vCQkgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisvLwkJICogCisvLwkJICovCisvLwkJcHVibGljIGludCByZWFkTkludChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKy8vCQkJaW50IHJlc3VsdCA9IHJlYWRJbnQoaW4pOworLy8gICAgICAgICAgICBib29sZWFuIG5lZ2F0aXZlID0gKHJlc3VsdCAmIDEpICE9IDA7CisvLyAgICAgICAgICAgIHJlc3VsdCA+Pj49IDE7CisvLyAgICAgICAgICAgIGlmIChuZWdhdGl2ZSkgcmVzdWx0ID0gfnJlc3VsdDsKKy8vICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKy8vCQl9CisvLwkJLyoqCisvLwkJICogQHRocm93cyBJT0V4Y2VwdGlvbgorLy8JCSAqIAorLy8JCSAqLworLy8JCXB1YmxpYyB2b2lkIHdyaXRlTkludChpbnQgaW5wdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyAgICAgICAgICAgIGludCBmbGFnID0gMDsKKy8vICAgICAgICAgICAgaWYgKGlucHV0IDwgMCkgeworLy8gICAgICAgICAgICAgICAgaW5wdXQgPSB+aW5wdXQ7CisvLyAgICAgICAgICAgICAgICBmbGFnID0gMTsKKy8vICAgICAgICAgICAgfQorLy8JCQlpbnB1dCA9IChpbnB1dCA8PCAxKSB8IGZsYWc7CisvLwkJCXdyaXRlSW50KG91dCwgaW5wdXQpOworLy8JCX0KKy8vCQkvKioKKy8vCQkgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisvLwkJICogCisvLwkJICovCisvLwkJcHVibGljIHZvaWQgZmx1c2goKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8gICAgICAgICAgICBvdXQud3JpdGUocmVhZFdyaXRlQnVmZmVyKTsKKy8vICAgICAgICAgICAgcG9zaXRpb24gPSAwOworLy8JCX0KKy8vICAgICAgICAKKy8vICAgICAgICBpbnQgcmVhZFBvc2l0aW9uID0gcmVhZFdyaXRlQnVmZmVyLmxlbmd0aDsKKy8vICAgICAgICAKKy8vCQlwdWJsaWMgaW50IHJlYWRJbnQoT2JqZWN0SW5wdXQgaW4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOworLy8gICAgICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKy8vICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKy8vICAgICAgICAgICAgICAgIGlmIChyZWFkUG9zaXRpb24gPT0gcmVhZFdyaXRlQnVmZmVyLmxlbmd0aCkgeworLy8gICAgICAgICAgICAgICAgCWluLnJlYWQocmVhZFdyaXRlQnVmZmVyKTsKKy8vICAgICAgICAgICAgICAgICAgICByZWFkUG9zaXRpb24gPSAwOworLy8gICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgLy9pbi5yZWFkKGJ1ZmZlcik7CisvLyAgICAgICAgICAgICAgICBpbnQgaW5wdXQgPSByZWFkV3JpdGVCdWZmZXJbcmVhZFBvc2l0aW9uKytdOyAvLyBidWZmZXJbMF07CisvLyAgICAgICAgICAgICAgICByZXN1bHQgfD0gKGlucHV0ICYgMHg3RikgPDwgb2Zmc2V0OworLy8gICAgICAgICAgICAgICAgaWYgKChpbnB1dCAmIDB4ODApID09IDApIHsKKy8vICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworLy8gICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDc7CisvLyAgICAgICAgICAgIH0gIAorLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgLyoqCisvLyAgICAgICAgICogQHRocm93cyBJT0V4Y2VwdGlvbgorLy8gICAgICAgICAqIAorLy8gICAgICAgICAqLworLy8gICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlU3RyaW5nKFN0cmluZyBzKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8gICAgICAgICAgICB3cml0ZUludChVVEYxNi5jb3VudENvZGVQb2ludChzKSk7CisvLyAgICAgICAgICAgIHdyaXRlQ29kZVBvaW50cyhzKTsKKy8vICAgICAgICB9CisvLyAgICAgICAgLyoqCisvLwkJICogCisvLwkJICovCisvLwkJcHJpdmF0ZSB2b2lkIHdyaXRlQ29kZVBvaW50cyhTdHJpbmcgcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKy8vCQkJaW50IGNwID0gMDsKKy8vICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKy8vICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHMsIGkpOworLy8gICAgICAgICAgICAgICAgd3JpdGVJbnQoY3ApOworLy8gICAgICAgICAgICB9CisvLwkJfQorLy8JCS8qKgorLy8gICAgICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKy8vICAgICAgICAgKiAKKy8vICAgICAgICAgKi8KKy8vICAgICAgICBwdWJsaWMgU3RyaW5nIHJlYWRTdHJpbmcoKSB0aHJvd3MgSU9FeGNlcHRpb24geworLy8gICAgICAgICAgICBpbnQgbGVuID0gcmVhZEludChpbik7CisvLyAgICAgICAgICAgIHJldHVybiByZWFkQ29kZVBvaW50cyhpbiwgbGVuKTsKKy8vICAgICAgICB9CisvLwkJLyoqCisvLwkJICogCisvLwkJICovCisvLwkJcHJpdmF0ZSBTdHJpbmcgcmVhZENvZGVQb2ludHMoaW50IGxlbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKy8vCQkJc3RyaW5nQnVmZmVyLnNldExlbmd0aCgwKTsKKy8vICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47ICsraSkgeworLy8gICAgICAgICAgICAJaW50IGNwID0gcmVhZEludChpbik7CisvLyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoc3RyaW5nQnVmZmVyLCBjcCk7CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgcmV0dXJuIHN0cmluZ0J1ZmZlci50b1N0cmluZygpOworLy8JCX0KKy8vCQkvKioKKy8vCQkgKiBAcGFyYW0gdGhpcworLy8JCSAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKy8vCQkgKiAKKy8vCQkgKi8KKy8vCQlwcml2YXRlIHZvaWQgc2hvd1NpemUoVW5pY29kZU1hcCBtYXAsIFN0cmluZyB0aXRsZSwgT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKy8vCQkgICAgb3V0LmZsdXNoKCk7CisvLwkJCVN5c3RlbS5vdXQucHJpbnRsbih0aXRsZSArICI6ICIgKyAobWFwLmRlYnVnT3V0LnNpemUoKSArIHBvc2l0aW9uKSk7CisvLwkJfQorLy8gICAgfQorfQorLy8jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVQcm9wZXJ0eS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVW5pY29kZVByb3BlcnR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU5NWE1MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVQcm9wZXJ0eS5qYXZhCkBAIC0wLDAgKzEsMTA4NyBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuaW8uU3RyaW5nV3JpdGVyOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CitpbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Db2xsZWN0aW9uVXRpbGl0aWVzLkludmVyc2VNYXRjaGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ29sbGVjdGlvblV0aWxpdGllcy5PYmplY3RNYXRjaGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3ltYm9sVGFibGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVNYXRjaGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIFVuaWNvZGVQcm9wZXJ0eSBleHRlbmRzIFVuaWNvZGVMYWJlbCB7CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBDSEVDS19OQU1FID0gIkZDX05GS0NfQ2xvc3VyZSI7CisgICAgcHVibGljIHN0YXRpYyBpbnQgQ0hFQ0tfVkFMVUUgPSAweDAzN0E7CisKKyAgICBwcml2YXRlIFN0cmluZyBuYW1lOworICAgIHByaXZhdGUgU3RyaW5nIGZpcnN0TmFtZUFsaWFzID0gbnVsbDsKKyAgICBwcml2YXRlIGludCB0eXBlOworICAgIHByaXZhdGUgTWFwIHZhbHVlVG9GaXJzdFZhbHVlQWxpYXMgPSBudWxsOworICAgIAorICAgIC8qCitOYW1lOiBVbmljb2RlXzFfTmFtZQorTmFtZTogSVNPX0NvbW1lbnQKK05hbWU6IE5hbWUKK05hbWU6IFVuaWNvZGVfMV9OYW1lCisgICAgICoKKyAgICAgKi8KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOS05PV04gPSAwLAorICAgICAgICBCSU5BUlkgPSAyLCBFWFRFTkRFRF9CSU5BUlkgPSAzLAorICAgICAgICBFTlVNRVJBVEVEID0gNCwgRVhURU5ERURfRU5VTUVSQVRFRCA9IDUsCisgICAgICAgIENBVEFMT0cgPSA2LCBFWFRFTkRFRF9DQVRBTE9HID0gNywKKyAgICAgICAgTUlTQyA9IDgsIEVYVEVOREVEX01JU0MgPSA5LAorICAgICAgICBTVFJJTkcgPSAxMCwgRVhURU5ERURfU1RSSU5HID0gMTEsCisgICAgICAgIE5VTUVSSUMgPSAxMiwgRVhURU5ERURfTlVNRVJJQyA9IDEzLAorICAgICAgICBTVEFSVF9UWVBFID0gMiwKKyAgICAgICAgTElNSVRfVFlQRSA9IDE0LAorICAgICAgICBFWFRFTkRFRF9NQVNLID0gMSwKKyAgICAgICAgQ09SRV9NQVNLID0gfkVYVEVOREVEX01BU0ssCisgICAgICAgIEJJTkFSWV9NQVNLID0gKDE8PEJJTkFSWSkgfCAoMTw8RVhURU5ERURfQklOQVJZKSwKKyAgICAgICAgU1RSSU5HX01BU0sgPSAoMTw8U1RSSU5HKSB8ICgxPDxFWFRFTkRFRF9TVFJJTkcpLAorICAgICAgICBTVFJJTkdfT1JfTUlTQ19NQVNLID0gKDE8PFNUUklORykgfCAoMTw8RVhURU5ERURfU1RSSU5HKQorICAgICAgICAgICAgfCAoMTw8TUlTQykgfCAoMTw8RVhURU5ERURfTUlTQyksCisgICAgICAgIEVOVU1FUkFURURfT1JfQ0FUQUxPR19NQVNLID0gKDE8PEVOVU1FUkFURUQpIHwgKDE8PEVYVEVOREVEX0VOVU1FUkFURUQpCisgICAgICAgICAgICB8ICgxPDxDQVRBTE9HKSB8ICgxPDxFWFRFTkRFRF9DQVRBTE9HKTsKKworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gVFlQRV9OQU1FUyA9IHsKKyAgICAgICAgIlVua25vd24iLAorICAgICAgICAiVW5rbm93biIsCisgICAgICAgICJCaW5hcnkiLAorICAgICAgICAiRXh0ZW5kZWQgQmluYXJ5IiwKKyAgICAgICAgIkVudW1lcmF0ZWQiLAorICAgICAgICAiRXh0ZW5kZWQgRW51bWVyYXRlZCIsCisgICAgICAgICJDYXRhbG9nIiwKKyAgICAgICAgIkV4dGVuZGVkIENhdGFsb2ciLAorICAgICAgICAiTWlzY2VsbGFuZW91cyIsCisgICAgICAgICJFeHRlbmRlZCBNaXNjZWxsYW5lb3VzIiwKKyAgICAgICAgIlN0cmluZyIsCisgICAgICAgICJFeHRlbmRlZCBTdHJpbmciLAorICAgICAgICAiTnVtZXJpYyIsCisgICAgICAgICJFeHRlbmRlZCBOdW1lcmljIiwKKyAgICB9OworCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0VHlwZU5hbWUoaW50IHByb3BUeXBlKSB7CisgICAgICAgIHJldHVybiBUWVBFX05BTUVTW3Byb3BUeXBlXTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgIHJldHVybiBuYW1lOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0VHlwZSgpIHsKKyAgICAgICAgcmV0dXJuIHR5cGU7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gaXNUeXBlKGludCBtYXNrKSB7CisgICAgICAgIHJldHVybiAoKDE8PHR5cGUpICYgbWFzaykgIT0gMDsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBzZXROYW1lKFN0cmluZyBzdHJpbmcpIHsKKyAgICAgICAgaWYgKHN0cmluZyA9PSBudWxsKSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJOYW1lIG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgbmFtZSA9IHN0cmluZzsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBzZXRUeXBlKGludCBpKSB7CisgICAgICAgIHR5cGUgPSBpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VmVyc2lvbigpIHsKKyAgICAgICAgcmV0dXJuIF9nZXRWZXJzaW9uKCk7CisgICAgfQorICAgIHB1YmxpYyBTdHJpbmcgZ2V0VmFsdWUoaW50IGNvZGVwb2ludCkgeworICAgICAgICBpZiAoREVCVUcgJiYgQ0hFQ0tfVkFMVUUgPT0gY29kZXBvaW50ICYmIENIRUNLX05BTUUuZXF1YWxzKGdldE5hbWUoKSkpIHsKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IF9nZXRWYWx1ZShjb2RlcG9pbnQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGdldE5hbWUoKSArICIoIiArIFV0aWxpdHkuaGV4KGNvZGVwb2ludCkgKyAiKToiICsKKyAgICAgICAgICAgICAgICAoZ2V0VHlwZSgpID09IFNUUklORyA/IFV0aWxpdHkuaGV4KHZhbHVlKSA6IHZhbHVlKSk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIF9nZXRWYWx1ZShjb2RlcG9pbnQpOworICAgIH0KKworICAgIC8vcHVibGljIFN0cmluZyBnZXRWYWx1ZShpbnQgY29kZXBvaW50LCBib29sZWFuIGlzU2hvcnQpIHsKKyAgICAvLwlyZXR1cm4gZ2V0VmFsdWUoY29kZXBvaW50KTsKKyAgICAvL30KKyAgICAKKyAgICBwdWJsaWMgTGlzdCBnZXROYW1lQWxpYXNlcyhMaXN0IHJlc3VsdCkgeworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoMSk7CisgICAgICAgIHJldHVybiBfZ2V0TmFtZUFsaWFzZXMocmVzdWx0KTsKKyAgICB9CisgICAgcHVibGljIExpc3QgZ2V0VmFsdWVBbGlhc2VzKFN0cmluZyB2YWx1ZUFsaWFzLCBMaXN0IHJlc3VsdCkgeworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoMSk7CisgICAgICAgIHJlc3VsdCA9IF9nZXRWYWx1ZUFsaWFzZXModmFsdWVBbGlhcywgcmVzdWx0KTsKKyAgICAgICAgaWYgKCFyZXN1bHQuY29udGFpbnModmFsdWVBbGlhcykgKSB7IC8vIEZJWCAmJiB0eXBlIDwgTlVNRVJJQyAKKyAgICAgICAgCXJlc3VsdCA9IF9nZXRWYWx1ZUFsaWFzZXModmFsdWVBbGlhcywgcmVzdWx0KTsgLy8gZm9yIGRlYnVnZ2luZworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiSW50ZXJuYWwgZXJyb3I6ICIgKyBnZXROYW1lKCkgKyAiIGRvZXNuJ3QgY29udGFpbiAiICsgdmFsdWVBbGlhcworICAgICAgICAgICAgICAgICsgIjogIiArIG5ldyBCYWdGb3JtYXR0ZXIoKS5qb2luKHJlc3VsdCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIHB1YmxpYyBMaXN0IGdldEF2YWlsYWJsZVZhbHVlcyhMaXN0IHJlc3VsdCkgeworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoMSk7CisgICAgICAgIHJldHVybiBfZ2V0QXZhaWxhYmxlVmFsdWVzKHJlc3VsdCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IFN0cmluZyBfZ2V0VmVyc2lvbigpOworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBTdHJpbmcgX2dldFZhbHVlKGludCBjb2RlcG9pbnQpOworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBMaXN0IF9nZXROYW1lQWxpYXNlcyhMaXN0IHJlc3VsdCk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IExpc3QgX2dldFZhbHVlQWxpYXNlcyhTdHJpbmcgdmFsdWVBbGlhcywgTGlzdCByZXN1bHQpOworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBMaXN0IF9nZXRBdmFpbGFibGVWYWx1ZXMoTGlzdCByZXN1bHQpOworCisgICAgLy8gY29udmVuaWVuY2VzCisgICAgcHVibGljIGZpbmFsIExpc3QgZ2V0TmFtZUFsaWFzZXMoKSB7CisgICAgICAgIHJldHVybiBnZXROYW1lQWxpYXNlcyhudWxsKTsKKyAgICB9CisgICAgcHVibGljIGZpbmFsIExpc3QgZ2V0VmFsdWVBbGlhc2VzKFN0cmluZyB2YWx1ZUFsaWFzKSB7CisgICAgICAgIHJldHVybiBnZXRWYWx1ZUFsaWFzZXModmFsdWVBbGlhcywgbnVsbCk7CisgICAgfQorICAgIHB1YmxpYyBmaW5hbCBMaXN0IGdldEF2YWlsYWJsZVZhbHVlcygpIHsKKyAgICAgICAgcmV0dXJuIGdldEF2YWlsYWJsZVZhbHVlcyhudWxsKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBnZXRWYWx1ZShpbnQgY29kZXBvaW50LCBib29sZWFuIGdldFNob3J0ZXN0KSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBnZXRWYWx1ZShjb2RlcG9pbnQpOworICAgICAgICBpZiAodHlwZSA+PSBNSVNDIHx8IHJlc3VsdCA9PSBudWxsIHx8ICFnZXRTaG9ydGVzdCkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgcmV0dXJuIGdldEZpcnN0VmFsdWVBbGlhcyhyZXN1bHQpOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0Rmlyc3ROYW1lQWxpYXMoKSB7CisgICAgICAgIGlmIChmaXJzdE5hbWVBbGlhcyA9PSBudWxsKSB7CisgICAgICAgICAgICBmaXJzdE5hbWVBbGlhcyA9IChTdHJpbmcpIGdldE5hbWVBbGlhc2VzKCkuZ2V0KDApOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmaXJzdE5hbWVBbGlhczsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGdldEZpcnN0VmFsdWVBbGlhcyhTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgaWYgKHZhbHVlVG9GaXJzdFZhbHVlQWxpYXMgPT0gbnVsbCkgX2dldEZpcnN0VmFsdWVBbGlhc0NhY2hlKCk7CisgICAgICAgIHJldHVybiAoU3RyaW5nKXZhbHVlVG9GaXJzdFZhbHVlQWxpYXMuZ2V0KHZhbHVlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX2dldEZpcnN0VmFsdWVBbGlhc0NhY2hlKCkgeworICAgICAgICBtYXhWYWx1ZVdpZHRoID0gMDsKKyAgICAgICAgbWF4Rmlyc3RWYWx1ZUFsaWFzV2lkdGggPSAwOworICAgICAgICB2YWx1ZVRvRmlyc3RWYWx1ZUFsaWFzID0gbmV3IEhhc2hNYXAoMSk7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gZ2V0QXZhaWxhYmxlVmFsdWVzKCkuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gKFN0cmluZylpdC5uZXh0KCk7CisgICAgICAgICAgICBTdHJpbmcgZmlyc3QgPSAoU3RyaW5nKSBnZXRWYWx1ZUFsaWFzZXModmFsdWUpLmdldCgwKTsKKyAgICAgICAgICAgIGlmIChmaXJzdCA9PSBudWxsKSB7IC8vIGludGVybmFsIGVycm9yCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVmFsdWUgbm90IGluIHZhbHVlIGFsaWFzZXM6ICIgKyB2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoREVCVUcgJiYgQ0hFQ0tfTkFNRS5lcXVhbHMoZ2V0TmFtZSgpKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRmlyc3QgQWxpYXM6ICIgKyBnZXROYW1lKCkgKyAiOiAiICsgdmFsdWUgKyAiID0+ICIKKyAgICAgICAgICAgICAgICAgKyBmaXJzdCArIG5ldyBCYWdGb3JtYXR0ZXIoKS5qb2luKGdldFZhbHVlQWxpYXNlcyh2YWx1ZSkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhbHVlVG9GaXJzdFZhbHVlQWxpYXMucHV0KHZhbHVlLGZpcnN0KTsKKyAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGgoKSA+IG1heFZhbHVlV2lkdGgpIHsKKyAgICAgICAgICAgICAgICBtYXhWYWx1ZVdpZHRoID0gdmFsdWUubGVuZ3RoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmlyc3QubGVuZ3RoKCkgPiBtYXhGaXJzdFZhbHVlQWxpYXNXaWR0aCkgeworICAgICAgICAgICAgICAgIG1heEZpcnN0VmFsdWVBbGlhc1dpZHRoID0gZmlyc3QubGVuZ3RoKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBtYXhWYWx1ZVdpZHRoID0gLTE7CisgICAgcHJpdmF0ZSBpbnQgbWF4Rmlyc3RWYWx1ZUFsaWFzV2lkdGggPSAtMTsKKworICAgIHB1YmxpYyBpbnQgZ2V0TWF4V2lkdGgoYm9vbGVhbiBnZXRTaG9ydGVzdCkgeworICAgICAgICBpZiAobWF4VmFsdWVXaWR0aCA8IDApIF9nZXRGaXJzdFZhbHVlQWxpYXNDYWNoZSgpOworICAgICAgICBpZiAoZ2V0U2hvcnRlc3QpIHJldHVybiBtYXhGaXJzdFZhbHVlQWxpYXNXaWR0aDsKKyAgICAgICAgcmV0dXJuIG1heFZhbHVlV2lkdGg7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgZ2V0U2V0KFN0cmluZyBwcm9wZXJ0eVZhbHVlKSB7CisgICAgICAgIHJldHVybiBnZXRTZXQocHJvcGVydHlWYWx1ZSxudWxsKTsKKyAgICB9CisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgZ2V0U2V0KFBhdHRlcm5NYXRjaGVyIG1hdGNoZXIpIHsKKyAgICAgICAgcmV0dXJuIGdldFNldChtYXRjaGVyLG51bGwpOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGdldFNldChTdHJpbmcgcHJvcGVydHlWYWx1ZSwgVW5pY29kZVNldCByZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuIGdldFNldChuZXcgU2ltcGxlTWF0Y2hlcihwcm9wZXJ0eVZhbHVlLAorICAgICAgICAgICAgaXNUeXBlKFNUUklOR19PUl9NSVNDX01BU0spID8gbnVsbCA6IFBST1BFUlRZX0NPTVBBUkFUT1IpLAorICAgICAgICAgIHJlc3VsdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBVbmljb2RlTWFwIHVuaWNvZGVNYXAgPSBudWxsOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVU5VU0VEID0gIj8/IjsKKworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGdldFNldChQYXR0ZXJuTWF0Y2hlciBtYXRjaGVyLCBVbmljb2RlU2V0IHJlc3VsdCkgeworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGlmIChpc1R5cGUoU1RSSU5HX09SX01JU0NfTUFTSykpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRWYWx1ZShpKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiBtYXRjaGVyLm1hdGNoZXModmFsdWUpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICBMaXN0IHRlbXAgPSBuZXcgQXJyYXlMaXN0KDEpOyAvLyB0byBhdm9pZCByZWFsbG9jYXRpbmcuLi4KKyAgICAgICAgVW5pY29kZU1hcCB1bSA9IGdldFVuaWNvZGVNYXBfaW50ZXJuYWwoKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSB1bS5nZXRBdmFpbGFibGVWYWx1ZXMobnVsbCkuaXRlcmF0b3IoKTsKKyAgICAgICAgbWFpbjoKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gKFN0cmluZylpdC5uZXh0KCk7CisgICAgICAgICAgICB0ZW1wLmNsZWFyKCk7CisgICAgICAgICAgICBJdGVyYXRvciBpdDIgPSBnZXRWYWx1ZUFsaWFzZXModmFsdWUsdGVtcCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdDIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlMiA9IChTdHJpbmcpaXQyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiVmFsdWVzOiIgKyB2YWx1ZTIpOworICAgICAgICAgICAgICAgIGlmIChtYXRjaGVyLm1hdGNoZXModmFsdWUyKQorICAgICAgICAgICAgICAgICAgfHwgbWF0Y2hlci5tYXRjaGVzKHRvU2tlbGV0b24odmFsdWUyKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdW0uZ2V0U2V0KHZhbHVlLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBtYWluOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0TWF0Y2hTZXQoVW5pY29kZVNldCByZXN1bHQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBhZGRBbGwobWF0Y2hJdGVyYXRvciwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRNYXRjaFNldChVbmljb2RlU2V0IHNldCkgeworICAgICAgICBtYXRjaEl0ZXJhdG9yID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzZXQpOworICAgIH0KKyAgICAqLworCisgICAgLyoqCisgICAgICogVXRpbGl0eSBmb3IgZGVidWdnaW5nCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0U3RhY2soKSB7CisgICAgICAgIEV4Y2VwdGlvbiBlID0gbmV3IEV4Y2VwdGlvbigpOworICAgICAgICBTdHJpbmdXcml0ZXIgc3cgPSBuZXcgU3RyaW5nV3JpdGVyKCk7CisgICAgICAgIFByaW50V3JpdGVyIHB3ID0gbmV3IFByaW50V3JpdGVyKHN3KTsKKyAgICAgICAgZS5wcmludFN0YWNrVHJhY2UocHcpOworICAgICAgICBwdy5mbHVzaCgpOworICAgICAgICByZXR1cm4gIlNob3dpbmcgU3RhY2sgd2l0aCBmYWtlICIgKyBzdy5nZXRCdWZmZXIoKS50b1N0cmluZygpOworICAgIH0KKworICAgIC8vIFRPRE8gdXNlIHRoaXMgaW5zdGVhZCBvZiBwbGFpbiBzdHJpbmdzCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBOYW1lIGltcGxlbWVudHMgQ29tcGFyYWJsZSB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIE1hcCBza2VsZXRvbkNhY2hlOworICAgICAgICBwcml2YXRlIFN0cmluZyBza2VsZXRvbjsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgcHJldHR5OworICAgICAgICBwdWJsaWMgZmluYWwgaW50IFJBVyA9IDAsIFRJVExFID0gMSwgTk9STUFMID0gMjsKKyAgICAgICAgcHVibGljIE5hbWUoU3RyaW5nIG5hbWUsIGludCBzdHlsZSkgeworICAgICAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCkgbmFtZSA9ICIiOworICAgICAgICAgICAgaWYgKHN0eWxlID09IFJBVykgeworICAgICAgICAgICAgICAgIHNrZWxldG9uID0gcHJldHR5ID0gbmFtZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJldHR5ID0gcmVndWxhcml6ZShuYW1lLCBzdHlsZSA9PSBUSVRMRSk7CisgICAgICAgICAgICAgICAgc2tlbGV0b24gPSB0b1NrZWxldG9uKHByZXR0eSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIHJldHVybiBza2VsZXRvbi5jb21wYXJlVG8oKChOYW1lKW8pLnNrZWxldG9uKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIHJldHVybiBza2VsZXRvbi5lcXVhbHMoKChOYW1lKW8pLnNrZWxldG9uKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICAgICAgcmV0dXJuIHNrZWxldG9uLmhhc2hDb2RlKCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBwcmV0dHk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRoZSB1bmljb2RlIG1hcAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlTWFwIGdldFVuaWNvZGVNYXAoKSB7CisgICAgICAgIHJldHVybiBnZXRVbmljb2RlTWFwKGZhbHNlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQHJldHVybiB0aGUgdW5pY29kZSBtYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZU1hcCBnZXRVbmljb2RlTWFwKGJvb2xlYW4gZ2V0U2hvcnRlc3QpIHsKKyAgICAJaWYgKCFnZXRTaG9ydGVzdCkgcmV0dXJuIChVbmljb2RlTWFwKSBnZXRVbmljb2RlTWFwX2ludGVybmFsKCkuY2xvbmVBc1RoYXdlZCgpOworICAgICAgICBVbmljb2RlTWFwIHJlc3VsdCA9IG5ldyBVbmljb2RlTWFwKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgIC8vaWYgKERFQlVHICYmIGkgPT0gMHg0MSkgU3lzdGVtLm91dC5wcmludGxuKGkgKyAiXHQiICsgZ2V0VmFsdWUoaSkpOworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gZ2V0VmFsdWUoaSx0cnVlKTsKKyAgICAgICAgICAgIHJlc3VsdC5wdXQoaSwgdmFsdWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRoZSB1bmljb2RlIG1hcAorICAgICAqLworICAgIHByb3RlY3RlZCBVbmljb2RlTWFwIGdldFVuaWNvZGVNYXBfaW50ZXJuYWwoKSB7CisgICAgICAgIGlmICh1bmljb2RlTWFwID09IG51bGwpIHVuaWNvZGVNYXAgPSBfZ2V0VW5pY29kZU1hcCgpOworICAgICAgICByZXR1cm4gdW5pY29kZU1hcDsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgVW5pY29kZU1hcCBfZ2V0VW5pY29kZU1hcCgpIHsKKyAgICAgICAgVW5pY29kZU1hcCByZXN1bHQgPSBuZXcgVW5pY29kZU1hcCgpOworICAgICAgICBIYXNoTWFwIG15SW50ZXJuID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgICAgICAgICAgLy9pZiAoREVCVUcgJiYgaSA9PSAweDQxKSBTeXN0ZW0ub3V0LnByaW50bG4oaSArICJcdCIgKyBnZXRWYWx1ZShpKSk7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBnZXRWYWx1ZShpKTsKKyAgICAgICAgICAgIFN0cmluZyBpVmFsdWUgPSAoU3RyaW5nKSBteUludGVybi5nZXQodmFsdWUpOworICAgICAgICAgICAgaWYgKGlWYWx1ZSA9PSBudWxsKSBteUludGVybi5wdXQodmFsdWUsIGlWYWx1ZSA9IHZhbHVlKTsKKyAgICAgICAgICAgIHJlc3VsdC5wdXQoaSwgaVZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoREVCVUcgJiYgQ0hFQ0tfTkFNRS5lcXVhbHMoZ2V0TmFtZSgpKSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGdldE5hbWUoKSArICI6XHQiICsgZ2V0Q2xhc3MoKS5nZXROYW1lKCkKKyAgICAgICAgICAgICAgICAgKyAiXHQiICsgZ2V0VmVyc2lvbigpKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihnZXRTdGFjaygpKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihyZXN1bHQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlYWxseSBvdWdodCB0byBjcmVhdGUgYSBDb2xsZWN0aW9uIFVuaXF1ZUxpc3QsIHRoYXQgZm9yY2VzIHVuaXF1ZW5lc3MuIEJ1dCBmb3Igbm93Li4uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBDb2xsZWN0aW9uIGFkZFVuaXF1ZShPYmplY3Qgb2JqLCBDb2xsZWN0aW9uIHJlc3VsdCkgeworICAgICAgICBpZiAob2JqICE9IG51bGwgJiYgIXJlc3VsdC5jb250YWlucyhvYmopKSByZXN1bHQuYWRkKG9iaik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXRpbGl0eSBmb3IgbWFuYWdpbmcgcHJvcGVydHkgJiBub24tc3RyaW5nIHZhbHVlIGFsaWFzZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbXBhcmF0b3IgUFJPUEVSVFlfQ09NUEFSQVRPUiA9IG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IG8xLCBPYmplY3QgbzIpIHsKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlTmFtZXMoKFN0cmluZylvMSwgKFN0cmluZylvMik7CisgICAgICAgIH0KKyAgICB9OworCisgICAgLyoqCisgICAgICogVXRpbGl0eSBmb3IgbWFuYWdpbmcgcHJvcGVydHkgJiBub24tc3RyaW5nIHZhbHVlIGFsaWFzZXMKKyAgICAgKgorICAgICAqLworICAgIC8vIFRPRE8gb3B0aW1pemUKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZXF1YWxOYW1lcyhTdHJpbmcgYSwgU3RyaW5nIGIpIHsKKyAgICAgICAgaWYgKGEgPT0gYikgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChhID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgIHJldHVybiB0b1NrZWxldG9uKGEpLmVxdWFscyh0b1NrZWxldG9uKGIpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGZvciBtYW5hZ2luZyBwcm9wZXJ0eSAmIG5vbi1zdHJpbmcgdmFsdWUgYWxpYXNlcworICAgICAqLworICAgIC8vIFRPRE8gb3B0aW1pemUKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlTmFtZXMoU3RyaW5nIGEsIFN0cmluZyBiKSB7CisgICAgICAgIGlmIChhID09IGIpIHJldHVybiAwOworICAgICAgICBpZiAoYSA9PSBudWxsKSByZXR1cm4gLTE7CisgICAgICAgIGlmIChiID09IG51bGwpIHJldHVybiAxOworICAgICAgICByZXR1cm4gdG9Ta2VsZXRvbihhKS5jb21wYXJlVG8odG9Ta2VsZXRvbihiKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXRpbGl0eSBmb3IgbWFuYWdpbmcgcHJvcGVydHkgJiBub24tc3RyaW5nIHZhbHVlIGFsaWFzZXMKKyAgICAgKi8KKyAgICAvLyBUT0RPIGFjY291bnQgZm9yIHNwZWNpYWwgbmFtZXMsIHRpYmV0YW4sIGhhbmd1bAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvU2tlbGV0b24oU3RyaW5nIHNvdXJjZSkgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiBudWxsOworICAgICAgICBTdHJpbmdCdWZmZXIgc2tlbGV0b25CdWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJvb2xlYW4gZ290T25lID0gZmFsc2U7CisgICAgICAgIC8vIHJlbW92ZSBzcGFjZXMsICdfJywgJy0nCisgICAgICAgIC8vIHdlIGNhbiBkbyB0aGlzIHdpdGggY2hhciwgc2luY2Ugbm8gc3Vycm9nYXRlcyBhcmUgaW52b2x2ZWQKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjaCA9IHNvdXJjZS5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoaSA+IDAgJiYgKGNoID09ICdfJyB8fCBjaCA9PSAnICcgfHwgY2ggPT0gJy0nKSkgeworICAgICAgICAgICAgICAgIGdvdE9uZSA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNoYXIgY2gyID0gQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGNoKTsKKyAgICAgICAgICAgICAgICBpZiAoY2gyICE9IGNoKSB7CisgICAgICAgICAgICAgICAgICAgIGdvdE9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIHNrZWxldG9uQnVmZmVyLmFwcGVuZChjaDIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNrZWxldG9uQnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghZ290T25lKSByZXR1cm4gc291cmNlOyAvLyBhdm9pZCBzdHJpbmcgY3JlYXRpb24KKyAgICAgICAgcmV0dXJuIHNrZWxldG9uQnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLy8gZ2V0IHRoZSBuYW1lIHNrZWxldG9uCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9OYW1lU2tlbGV0b24oU3RyaW5nIHNvdXJjZSkgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiBudWxsOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAvLyByZW1vdmUgc3BhY2VzLCBtZWRpYWwgJy0nCisgICAgICAgIC8vIHdlIGNhbiBkbyB0aGlzIHdpdGggY2hhciwgc2luY2Ugbm8gc3Vycm9nYXRlcyBhcmUgaW52b2x2ZWQKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjaCA9IHNvdXJjZS5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoKCcwJyA8PSBjaCAmJiBjaCA8PSAnOScpIHx8ICgnQScgPD0gY2ggJiYgY2ggPD0gJ1onKSB8fCBjaCA9PSAnPCcgfHwgY2ggPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjaCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09ICcgJykgeworICAgICAgICAgICAgICAgIC8vIGRvbid0IGNvcHkgZXZlcgorICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSAnLScpIHsKKyAgICAgICAgICAgICAgICAvLyBvbmx5IGNvcHkgbm9uLW1lZGlhbHMgQU5EIHRyYWlsaW5nIE8tRQorICAgICAgICAgICAgICAgIGlmICgwID09IGkKKyAgICAgICAgICAgICAgICAgICAgfHwgaSA9PSBzb3VyY2UubGVuZ3RoKCkgLSAxCisgICAgICAgICAgICAgICAgICAgIHx8IHNvdXJjZS5jaGFyQXQoaS0xKSA9PSAnICcKKyAgICAgICAgICAgICAgICAgICAgfHwgc291cmNlLmNoYXJBdChpKzEpID09ICcgJworICAgICAgICAgICAgICAgICAgICB8fCAoaSA9PSBzb3VyY2UubGVuZ3RoKCkgLSAyCisgICAgICAgICAgICAgICAgICAgICAgICAmJiBzb3VyY2UuY2hhckF0KGktMSkgPT0gJ08nCisgICAgICAgICAgICAgICAgICAgICAgICAmJiBzb3VyY2UuY2hhckF0KGkrMSkgPT0gJ0UnKSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIioqKioqKiBFWENFUFRJT04gIiArIHNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UgZG9uJ3QgY29weQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIE5hbWUgQ2hhcjogVSsiICsgVXRpbGl0eS5oZXgoY2gpICsgIiwgIiArIGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlc2Ugcm91dGluZXMgdXNlIHRoZSBKYXZhIGZ1bmN0aW9ucywgYmVjYXVzZSB0aGV5IG9ubHkgbmVlZCB0byBhY3Qgb24gQVNDSUkKKyAgICAgKiBDaGFuZ2VzIHNwYWNlLCAtIGludG8gXywgaW5zZXJ0cyBfIGJldHdlZW4gbG93ZXIgYW5kIFVQUEVSLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlZ3VsYXJpemUoU3RyaW5nIHNvdXJjZSwgYm9vbGVhbiB0aXRsZWNhc2VTdGFydCkgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiBzb3VyY2U7CisgICAgICAgIC8qaWYgKHNvdXJjZS5lcXVhbHMoIm5vQnJlYWsiKSkgeyAvLyBIQUNLCisgICAgICAgICAgICBpZiAodGl0bGVjYXNlU3RhcnQpIHJldHVybiAiTm9CcmVhayI7CisgICAgICAgICAgICByZXR1cm4gc291cmNlOworICAgICAgICB9CisgICAgICAgICovCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBsYXN0Q2F0ID0gLTE7CisgICAgICAgIGJvb2xlYW4gaGF2ZUZpcnN0Q2FzZWQgPSB0cnVlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBzb3VyY2UuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJy0nIHx8IGMgPT0gJ18nKSB7CisgICAgICAgICAgICAgICAgYyA9ICdfJzsKKyAgICAgICAgICAgICAgICBoYXZlRmlyc3RDYXNlZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYyA9PSAnPScpIGhhdmVGaXJzdENhc2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIGludCBjYXQgPSBDaGFyYWN0ZXIuZ2V0VHlwZShjKTsKKyAgICAgICAgICAgIGlmIChsYXN0Q2F0ID09IENoYXJhY3Rlci5MT1dFUkNBU0VfTEVUVEVSICYmIGNhdCA9PSBDaGFyYWN0ZXIuVVBQRVJDQVNFX0xFVFRFUikgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ18nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChoYXZlRmlyc3RDYXNlZCAmJiAoY2F0ID09IENoYXJhY3Rlci5MT1dFUkNBU0VfTEVUVEVSCisgICAgICAgICAgICAgICAgICAgIHx8IGNhdCA9PSBDaGFyYWN0ZXIuVElUTEVDQVNFX0xFVFRFUiB8fCBjYXQgPT0gQ2hhcmFjdGVyLlVQUEVSQ0FTRV9MRVRURVIpKSB7CisgICAgICAgICAgICAgICAgaWYgKHRpdGxlY2FzZVN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgIGMgPSBDaGFyYWN0ZXIudG9VcHBlckNhc2UoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGhhdmVGaXJzdENhc2VkID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpOworICAgICAgICAgICAgbGFzdENhdCA9IGNhdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXRpbGl0eSBmdW5jdGlvbiBmb3IgY29tcGFyaW5nIGNvZGVwb2ludCB0byBzdHJpbmcgd2l0aG91dAorICAgICAqIGdlbmVyYXRpbmcgbmV3IHN0cmluZy4KKyAgICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAgICogQHBhcmFtIG90aGVyCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb2RlcG9pbnQgZXF1YWxzIHRoZSBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gZXF1YWxzKGludCBjb2RlcG9pbnQsIFN0cmluZyBvdGhlcikgeworICAgICAgICBpZiAob3RoZXIubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgcmV0dXJuIGNvZGVwb2ludCA9PSBvdGhlci5jaGFyQXQoMCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG90aGVyLmxlbmd0aCgpID09IDIpIHsKKyAgICAgICAgICAgIHJldHVybiBvdGhlci5lcXVhbHMoVVRGMTYudmFsdWVPZihjb2RlcG9pbnQpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXRpbGl0eSB0aGF0IHNob3VsZCBiZSBvbiBVbmljb2RlU2V0CisgICAgICogQHBhcmFtIHNvdXJjZQorICAgICAqIEBwYXJhbSByZXN1bHQKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIHZvaWQgYWRkQWxsKFVuaWNvZGVTZXRJdGVyYXRvciBzb3VyY2UsIFVuaWNvZGVTZXQgcmVzdWx0KSB7CisgICAgICAgIHdoaWxlIChzb3VyY2UubmV4dFJhbmdlKCkpIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2UuY29kZXBvaW50ID09IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYWRkKHNvdXJjZS5zdHJpbmcpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYWRkKHNvdXJjZS5jb2RlcG9pbnQsIHNvdXJjZS5jb2RlcG9pbnRFbmQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVhbGx5IG91Z2h0IHRvIGNyZWF0ZSBhIENvbGxlY3Rpb24gVW5pcXVlTGlzdCwgdGhhdCBmb3JjZXMgdW5pcXVlbmVzcy4gQnV0IGZvciBub3cuLi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIENvbGxlY3Rpb24gYWRkQWxsVW5pcXVlKENvbGxlY3Rpb24gc291cmNlLCBDb2xsZWN0aW9uIHJlc3VsdCkgeworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gc291cmNlLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIGFkZFVuaXF1ZShpdC5uZXh0KCksIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFsbHkgb3VnaHQgdG8gY3JlYXRlIGEgQ29sbGVjdGlvbiBVbmlxdWVMaXN0LCB0aGF0IGZvcmNlcyB1bmlxdWVuZXNzLiBCdXQgZm9yIG5vdy4uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQ29sbGVjdGlvbiBhZGRBbGxVbmlxdWUoT2JqZWN0W10gc291cmNlLCBDb2xsZWN0aW9uIHJlc3VsdCkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgYWRkVW5pcXVlKHNvdXJjZVtpXSwgcmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHVibGljIGNsYXNzIEZhY3RvcnkgeworICAgICAgICBzdGF0aWMgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCisgICAgICAgIE1hcCBjYW5vbmljYWxOYW1lcyA9IG5ldyBUcmVlTWFwKCk7CisgICAgICAgIE1hcCBza2VsZXRvbk5hbWVzID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgTWFwIHByb3BlcnR5Q2FjaGUgPSBuZXcgSGFzaE1hcCgxKTsKKworICAgICAgICBwdWJsaWMgZmluYWwgRmFjdG9yeSBhZGQoVW5pY29kZVByb3BlcnR5IHNwKSB7CisgICAgICAgICAgICBjYW5vbmljYWxOYW1lcy5wdXQoc3AuZ2V0TmFtZSgpLCBzcCk7CisgICAgICAgICAgICBMaXN0IGMgPSBzcC5nZXROYW1lQWxpYXNlcyhuZXcgQXJyYXlMaXN0KDEpKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIHNrZWxldG9uTmFtZXMucHV0KHRvU2tlbGV0b24oKFN0cmluZylpdC5uZXh0KCkpLCBzcCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlUHJvcGVydHkgZ2V0UHJvcGVydHkoU3RyaW5nIHByb3BlcnR5QWxpYXMpIHsKKyAgICAgICAgICAgIHJldHVybiAoVW5pY29kZVByb3BlcnR5KSBza2VsZXRvbk5hbWVzLmdldCh0b1NrZWxldG9uKHByb3BlcnR5QWxpYXMpKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBmaW5hbCBMaXN0IGdldEF2YWlsYWJsZU5hbWVzKCkgeworICAgICAgICAgICAgcmV0dXJuIGdldEF2YWlsYWJsZU5hbWVzKG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGZpbmFsIExpc3QgZ2V0QXZhaWxhYmxlTmFtZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gbmV3IEFycmF5TGlzdCgxKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gY2Fub25pY2FsTmFtZXMua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBhZGRVbmlxdWUoaXQubmV4dCgpLCByZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBmaW5hbCBMaXN0IGdldEF2YWlsYWJsZU5hbWVzKGludCBwcm9wZXJ0eVR5cGVNYXNrKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0QXZhaWxhYmxlTmFtZXMocHJvcGVydHlUeXBlTWFzaywgbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgZmluYWwgTGlzdCBnZXRBdmFpbGFibGVOYW1lcyhpbnQgcHJvcGVydHlUeXBlTWFzaywgTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gbmV3IEFycmF5TGlzdCgxKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gY2Fub25pY2FsTmFtZXMua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IChTdHJpbmcpaXQubmV4dCgpOworICAgICAgICAgICAgICAgIFVuaWNvZGVQcm9wZXJ0eSBwcm9wZXJ0eSA9IGdldFByb3BlcnR5KGl0ZW0pOworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJQcm9wZXJ0aWVzOiAiICsgaXRlbSArICIsIiArIHByb3BlcnR5LmdldFR5cGUoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eS5pc1R5cGUocHJvcGVydHlUeXBlTWFzaykpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIk1hc2tpbmc6ICIgKyBwcm9wZXJ0eS5nZXRUeXBlKCkgKyAiLCIgKyBwcm9wZXJ0eVR5cGVNYXNrKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFkZFVuaXF1ZShwcm9wZXJ0eS5nZXROYW1lKCksIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIEludmVyc2VQYXR0ZXJuTWF0Y2hlciBpbnZlcnNlTWF0Y2hlciA9IG5ldyBJbnZlcnNlUGF0dGVybk1hdGNoZXIoKTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZvcm1hdCBpczoKKyAgICAgICAgICogICAgcHJvcG5hbWUgKCc9JyB8ICchPScpIHByb3B2YWx1ZSAoICd8JyBwcm9wVmFsdWUgKSoKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGdldFNldChTdHJpbmcgcHJvcEFuZFZhbHVlLCBQYXR0ZXJuTWF0Y2hlciBtYXRjaGVyLCBVbmljb2RlU2V0IHJlc3VsdCkgeworICAgICAgICAgICAgaW50IGVxdWFsUG9zID0gcHJvcEFuZFZhbHVlLmluZGV4T2YoJz0nKTsKKyAgICAgICAgICAgIFN0cmluZyBwcm9wID0gcHJvcEFuZFZhbHVlLnN1YnN0cmluZygwLGVxdWFsUG9zKTsKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IHByb3BBbmRWYWx1ZS5zdWJzdHJpbmcoZXF1YWxQb3MrMSk7CisgICAgICAgICAgICBib29sZWFuIG5lZ2F0aXZlID0gZmFsc2U7CisgICAgICAgICAgICBpZiAocHJvcC5lbmRzV2l0aCgiISIpKSB7CisgICAgICAgICAgICAgICAgcHJvcCA9IHByb3Auc3Vic3RyaW5nKDAscHJvcC5sZW5ndGgoKS0xKTsKKyAgICAgICAgICAgICAgICBuZWdhdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm9wID0gcHJvcC50cmltKCk7CisgICAgICAgICAgICBVbmljb2RlUHJvcGVydHkgdXAgPSBnZXRQcm9wZXJ0eShwcm9wKTsKKyAgICAgICAgICAgIGlmIChtYXRjaGVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtYXRjaGVyID0gbmV3IFNpbXBsZU1hdGNoZXIodmFsdWUsCisgICAgICAgICAgICAgICAgdXAuaXNUeXBlKFNUUklOR19PUl9NSVNDX01BU0spID8gbnVsbCA6IFBST1BFUlRZX0NPTVBBUkFUT1IpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG5lZ2F0aXZlKSB7CisgICAgICAgICAgICAgICAgaW52ZXJzZU1hdGNoZXIuc2V0KG1hdGNoZXIpOworICAgICAgICAgICAgICAgIG1hdGNoZXIgPSBpbnZlcnNlTWF0Y2hlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB1cC5nZXRTZXQobWF0Y2hlci5zZXQodmFsdWUpLCByZXN1bHQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgZ2V0U2V0KFN0cmluZyBwcm9wQW5kVmFsdWUsIFBhdHRlcm5NYXRjaGVyIG1hdGNoZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRTZXQocHJvcEFuZFZhbHVlLCBtYXRjaGVyLCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBnZXRTZXQoU3RyaW5nIHByb3BBbmRWYWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGdldFNldChwcm9wQW5kVmFsdWUsIG51bGwsIG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGZpbmFsIFN5bWJvbFRhYmxlIGdldFN5bWJvbFRhYmxlKFN0cmluZyBwcmVmaXgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvcGVydHlTeW1ib2xUYWJsZShwcmVmaXgpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBjbGFzcyBQcm9wZXJ0eVN5bWJvbFRhYmxlIGltcGxlbWVudHMgU3ltYm9sVGFibGUgIHsKKyAgICAgICAgCXN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisgICAgICAgICAgICBwcml2YXRlIFN0cmluZyBwcmVmaXg7CisgICAgICAgICAgICBSZWdleE1hdGNoZXIgcmVnZXhNYXRjaGVyID0gbmV3IFJlZ2V4TWF0Y2hlcigpOworCisgICAgICAgICAgICBQcm9wZXJ0eVN5bWJvbFRhYmxlIChTdHJpbmcgcHJlZml4KSB7CisgICAgICAgICAgICAgICAgdGhpcy5wcmVmaXggPSBwcmVmaXg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBjaGFyW10gbG9va3VwKFN0cmluZyBzKSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlx0KCIgKyBwcmVmaXggKyAiKUxvb2tpbmcgdXAgIiArIHMpOworICAgICAgICAgICAgICAgIC8vIGVuc3VyZSwgYWdhaW4sIHRoYXQgcHJlZml4IG1hdGNoZXMKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBwcmVmaXgubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgaWYgKCFzLnJlZ2lvbk1hdGNoZXModHJ1ZSwgMCwgcHJlZml4LCAwLCBzdGFydCkpIHJldHVybiBudWxsOworCisgICAgICAgICAgICAgICAgaW50IHBvcyA9IHMuaW5kZXhPZignOicsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICBpZiAocG9zIDwgMCkgeyAvLyBzaG91bGQgbmV2ZXIgaGFwcGVuCisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludGVybmFsIEVycm9yOiBtaXNzaW5nID06ICIgKyBzICsgIlxyXG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVW5pY29kZVByb3BlcnR5IHByb3AgPSBnZXRQcm9wZXJ0eShzLnN1YnN0cmluZyhzdGFydCxwb3MpKTsKKyAgICAgICAgICAgICAgICBpZiAocHJvcCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgUHJvcGVydHkgaW46ICIgKyBzICsgIlxyXG5Vc2UgIgorICAgICAgICAgICAgICAgICAgICAgKyBzaG93U2V0KGdldEF2YWlsYWJsZU5hbWVzKCkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gcy5zdWJzdHJpbmcocG9zKzEpOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0OworICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKCJcdTAwQUIiKSkgeyAgIC8vIHJlZ2V4IQorICAgICAgICAgICAgICAgICAgICBzZXQgPSBwcm9wLmdldFNldChyZWdleE1hdGNoZXIuc2V0KHZhbHVlLnN1YnN0cmluZygxLCB2YWx1ZS5sZW5ndGgoKS0xKSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHNldCA9IHByb3AuZ2V0U2V0KHZhbHVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHNldC5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJFbXB0eSBQcm9wZXJ0eS1WYWx1ZSBpbjogIiArIHMgKyAiXHJcblVzZSAiCisgICAgICAgICAgICAgICAgICAgICAgICArIHNob3dTZXQocHJvcC5nZXRBdmFpbGFibGVWYWx1ZXMoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiXHQoIiArIHByZWZpeCArICIpUmV0dXJuaW5nICIgKyBzZXQudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2V0LnRvUGF0dGVybih0cnVlKS50b0NoYXJBcnJheSgpOyAvLyByZWFsbHkgdWdseQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcml2YXRlIFN0cmluZyBzaG93U2V0KExpc3QgbGlzdCkgeworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCJbIik7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBmaXJzdCA9IHRydWU7CisgICAgICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGxpc3QuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWZpcnN0KSByZXN1bHQuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIGZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaXQubmV4dCgpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJdIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdWJsaWMgVW5pY29kZU1hdGNoZXIgbG9va3VwTWF0Y2hlcihpbnQgY2gpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIFN0cmluZyBwYXJzZVJlZmVyZW5jZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MsIGludCBsaW1pdCkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJcdCgiICsgcHJlZml4ICsgIilQYXJzaW5nIDwiICsgdGV4dC5zdWJzdHJpbmcocG9zLmdldEluZGV4KCksbGltaXQpICsgIj4iKTsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICBpbnQgdmVyeVN0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgLy8gZW5zdXJlIHRoYXQgaXQgc3RhcnRzIHdpdGggJ3ByZWZpeCcKKyAgICAgICAgICAgICAgICBpZiAoIXRleHQucmVnaW9uTWF0Y2hlcyh0cnVlLCBzdGFydCwgcHJlZml4LCAwLCBwcmVmaXgubGVuZ3RoKCkpKSByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICBzdGFydCArPSBwcmVmaXgubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgLy8gbm93IHNlZSBpZiBpdCBpcyBvZiB0aGUgZm9ybSBpZGVudGlmaWVyOmlkZW50aWZpZXIKKyAgICAgICAgICAgICAgICBpbnQgaSA9IGdldElkZW50aWZpZXIodGV4dCwgc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICBpZiAoaSA9PSBzdGFydCkgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgU3RyaW5nIHByb3AgPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgaSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gInRydWUiOworICAgICAgICAgICAgICAgIGlmIChpIDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRleHQuY2hhckF0KGkpID09ICc6JykgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGV4dC5jaGFyQXQoaSsxKSA9PSAnXHUwMEFCJykgeyAvLyByZWd1bGFyIGV4cHJlc3Npb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqID0gdGV4dC5pbmRleE9mKCdcdTAwQkInLCBpKzIpICsgMTsgLy8gaW5jbHVkZSBsYXN0IGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqIDw9IDApIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqID0gZ2V0SWRlbnRpZmllcih0ZXh0LCBpKzEsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGV4dC5zdWJzdHJpbmcoaSsxLCBqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBqOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleChpKTsKKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiXHQoIiArIHByZWZpeCArICIpUGFyc2VkIDwiICsgcHJvcCArICI+PTwiICsgdmFsdWUgKyAiPiIpOworICAgICAgICAgICAgICAgIHJldHVybiBwcmVmaXggKyBwcm9wICsgIjoiICsgdmFsdWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHByaXZhdGUgaW50IGdldElkZW50aWZpZXIoU3RyaW5nIHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlx0R2V0SUQgPCIgKyB0ZXh0LnN1YnN0cmluZyhzdGFydCxsaW1pdCkgKyAiPiIpOworICAgICAgICAgICAgICAgIGludCBjcCA9IDA7CisgICAgICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICAgICAgZm9yIChpID0gc3RhcnQ7IGkgPCBsaW1pdDsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHRleHQsIGkpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydChjcCkgJiYgY3AgIT0gJy4nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiXHRHb3RJRCA8IiArIHRleHQuc3Vic3RyaW5nKHN0YXJ0LGkpICsgIj4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisKKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRmlsdGVyZWRQcm9wZXJ0eSBleHRlbmRzIFVuaWNvZGVQcm9wZXJ0eSB7CisgICAgICAgIHByaXZhdGUgVW5pY29kZVByb3BlcnR5IHByb3BlcnR5OworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nRmlsdGVyIGZpbHRlcjsKKyAgICAgICAgcHJvdGVjdGVkIFVuaWNvZGVTZXRJdGVyYXRvciBtYXRjaEl0ZXJhdG9yID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihuZXcgVW5pY29kZVNldCgwLDB4MTBGRkZGKSk7CisgICAgICAgIHByb3RlY3RlZCBIYXNoTWFwIGJhY2ttYXA7CisgICAgICAgIGJvb2xlYW4gYWxsb3dWYWx1ZUFsaWFzQ29sbGlzaW9ucyA9IGZhbHNlOworCisgICAgICAgIHB1YmxpYyBGaWx0ZXJlZFByb3BlcnR5KFVuaWNvZGVQcm9wZXJ0eSBwcm9wZXJ0eSwgU3RyaW5nRmlsdGVyIGZpbHRlcikgeworICAgICAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5OworICAgICAgICAgICAgdGhpcy5maWx0ZXIgPSBmaWx0ZXI7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nRmlsdGVyIGdldEZpbHRlcigpIHsKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXI7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVW5pY29kZVByb3BlcnR5IHNldEZpbHRlcihTdHJpbmdGaWx0ZXIgZmlsdGVyKSB7CisgICAgICAgICAgICB0aGlzLmZpbHRlciA9IGZpbHRlcjsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAgICAgTGlzdCB0ZW1wID0gbmV3IEFycmF5TGlzdCgxKTsKKworICAgICAgICBwdWJsaWMgTGlzdCBfZ2V0QXZhaWxhYmxlVmFsdWVzKExpc3QgcmVzdWx0KSB7CisgICAgICAgICAgICB0ZW1wLmNsZWFyKCk7CisgICAgICAgICAgICByZXR1cm4gZmlsdGVyLmFkZFVuaXF1ZShwcm9wZXJ0eS5nZXRBdmFpbGFibGVWYWx1ZXModGVtcCksIHJlc3VsdCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgTGlzdCBfZ2V0TmFtZUFsaWFzZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgIHRlbXAuY2xlYXIoKTsKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXIuYWRkVW5pcXVlKAorICAgICAgICAgICAgICAgIHByb3BlcnR5LmdldE5hbWVBbGlhc2VzKHRlbXApLCByZXN1bHQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBfZ2V0VmFsdWUoaW50IGNvZGVwb2ludCkgeworICAgICAgICAgICAgcmV0dXJuIGZpbHRlci5yZW1hcChwcm9wZXJ0eS5nZXRWYWx1ZShjb2RlcG9pbnQpKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBMaXN0IF9nZXRWYWx1ZUFsaWFzZXMoU3RyaW5nIHZhbHVlQWxpYXMsIExpc3QgcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAoYmFja21hcCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgYmFja21hcCA9IG5ldyBIYXNoTWFwKDEpOworICAgICAgICAgICAgICAgIHRlbXAuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBpdCA9IHByb3BlcnR5LmdldEF2YWlsYWJsZVZhbHVlcyh0ZW1wKS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGl0ZW0gPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtYXBwZWRJdGVtID0gZmlsdGVyLnJlbWFwKGl0ZW0pOworICAgICAgICAgICAgICAgICAgICBpZiAoYmFja21hcC5nZXQobWFwcGVkSXRlbSkgIT0gbnVsbCAmJiAhYWxsb3dWYWx1ZUFsaWFzQ29sbGlzaW9ucykgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRmlsdGVyIG1ha2VzIHZhbHVlcyBjb2xsaWRlISAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBpdGVtICsgIiwgIiArIG1hcHBlZEl0ZW0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJhY2ttYXAucHV0KG1hcHBlZEl0ZW0sIGl0ZW0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhbHVlQWxpYXMgPSAoU3RyaW5nKSBiYWNrbWFwLmdldCh2YWx1ZUFsaWFzKTsKKyAgICAgICAgICAgIHRlbXAuY2xlYXIoKTsKKyAgICAgICAgICAgIHJldHVybiBmaWx0ZXIuYWRkVW5pcXVlKHByb3BlcnR5LmdldFZhbHVlQWxpYXNlcyh2YWx1ZUFsaWFzLCB0ZW1wKSwgcmVzdWx0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgX2dldFZlcnNpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gcHJvcGVydHkuZ2V0VmVyc2lvbigpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNBbGxvd1ZhbHVlQWxpYXNDb2xsaXNpb25zKCkgeworICAgICAgICAgICAgcmV0dXJuIGFsbG93VmFsdWVBbGlhc0NvbGxpc2lvbnM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgRmlsdGVyZWRQcm9wZXJ0eSBzZXRBbGxvd1ZhbHVlQWxpYXNDb2xsaXNpb25zKGJvb2xlYW4gYikgeworICAgICAgICAgICAgYWxsb3dWYWx1ZUFsaWFzQ29sbGlzaW9ucyA9IGI7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBTdHJpbmdGaWx0ZXIgaW1wbGVtZW50cyBDbG9uZWFibGUgeworICAgICAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nIHJlbWFwKFN0cmluZyBvcmlnaW5hbCk7CisKKyAgICAgICAgcHVibGljIGZpbmFsIExpc3QgYWRkVW5pcXVlKENvbGxlY3Rpb24gc291cmNlLCBMaXN0IHJlc3VsdCkgeworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgQXJyYXlMaXN0KDEpOworICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBzb3VyY2UuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBVbmljb2RlUHJvcGVydHkuYWRkVW5pcXVlKAorICAgICAgICAgICAgICAgICAgICByZW1hcCgoU3RyaW5nKSBpdC5uZXh0KCkpLCByZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAvKgorICAgICAgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiU2hvdWxkIG5ldmVyIGhhcHBlbi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAqLworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTWFwRmlsdGVyIGV4dGVuZHMgU3RyaW5nRmlsdGVyIHsKKyAgICAgICAgcHJpdmF0ZSBNYXAgdmFsdWVNYXA7CisgICAgICAgIHB1YmxpYyBNYXBGaWx0ZXIoTWFwIHZhbHVlTWFwKXsKKyAgICAgICAgICAgIHRoaXMudmFsdWVNYXAgPSB2YWx1ZU1hcDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIHJlbWFwKFN0cmluZyBvcmlnaW5hbCkgeworICAgICAgICAgICAgT2JqZWN0IGNoYW5nZWQgPSB2YWx1ZU1hcC5nZXQob3JpZ2luYWwpOworICAgICAgICAgICAgcmV0dXJuIGNoYW5nZWQgPT0gbnVsbCA/IG9yaWdpbmFsIDogKFN0cmluZykgY2hhbmdlZDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgTWFwIGdldE1hcCgpIHsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZU1hcDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnRlcmZhY2UgUGF0dGVybk1hdGNoZXIgZXh0ZW5kcyBPYmplY3RNYXRjaGVyIHsKKyAgICAgICAgcHVibGljIFBhdHRlcm5NYXRjaGVyIHNldChTdHJpbmcgcGF0dGVybik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBJbnZlcnNlUGF0dGVybk1hdGNoZXIgZXh0ZW5kcyBJbnZlcnNlTWF0Y2hlciBpbXBsZW1lbnRzIFBhdHRlcm5NYXRjaGVyIHsKKyAgICAgICAgUGF0dGVybk1hdGNoZXIgb3RoZXI7CisgICAgICAgIHB1YmxpYyBQYXR0ZXJuTWF0Y2hlciBzZXQoUGF0dGVybk1hdGNoZXIgdG9JbnZlcnNlKSB7CisgICAgICAgICAgICBvdGhlciA9IHRvSW52ZXJzZTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIG1hdGNoZXMoT2JqZWN0IHZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gIW90aGVyLm1hdGNoZXModmFsdWUpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBQYXR0ZXJuTWF0Y2hlciBzZXQoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgICAgIG90aGVyLnNldChwYXR0ZXJuKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBTaW1wbGVNYXRjaGVyIGltcGxlbWVudHMgUGF0dGVybk1hdGNoZXIgeworICAgICAgICBDb21wYXJhdG9yIGNvbXBhcmF0b3I7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuOworICAgICAgICBwdWJsaWMgU2ltcGxlTWF0Y2hlcihTdHJpbmcgcGF0dGVybiwgQ29tcGFyYXRvciBjb21wYXJhdG9yKSB7CisgICAgICAgICAgICB0aGlzLmNvbXBhcmF0b3IgPSBjb21wYXJhdG9yOworICAgICAgICAgICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBtYXRjaGVzKE9iamVjdCB2YWx1ZSkgeworICAgICAgICAgICAgaWYgKGNvbXBhcmF0b3IgPT0gbnVsbCkgcmV0dXJuIHBhdHRlcm4uZXF1YWxzKHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJhdG9yLmNvbXBhcmUocGF0dGVybiwgdmFsdWUpID09IDA7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFBhdHRlcm5NYXRjaGVyIHNldChTdHJpbmcgcGF0dGVybikgeworICAgICAgICAgICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBSZWdleE1hdGNoZXIgaW1wbGVtZW50cyBVbmljb2RlUHJvcGVydHkuUGF0dGVybk1hdGNoZXIgeworICAgICAgICBwcml2YXRlIGphdmEudXRpbC5yZWdleC5NYXRjaGVyIG1hdGNoZXI7CisKKyAgICAgICAgcHVibGljIFVuaWNvZGVQcm9wZXJ0eS5QYXR0ZXJuTWF0Y2hlciBzZXQoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgICAgIG1hdGNoZXIgPSBQYXR0ZXJuLmNvbXBpbGUocGF0dGVybikubWF0Y2hlcigiIik7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBtYXRjaGVzKE9iamVjdCB2YWx1ZSkgeworICAgICAgICAgICAgbWF0Y2hlci5yZXNldCh2YWx1ZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaGVyLm1hdGNoZXMoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGFic3RyYWN0IGNsYXNzIEJhc2VQcm9wZXJ0eSBleHRlbmRzIFVuaWNvZGVQcm9wZXJ0eSB7CisgICAgICAgIHByb3RlY3RlZCBMaXN0IHByb3BlcnR5QWxpYXNlcyA9IG5ldyBBcnJheUxpc3QoMSk7CisgICAgICAgIHByb3RlY3RlZCBNYXAgdG9WYWx1ZUFsaWFzZXM7CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgdmVyc2lvbjsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBCYXNlUHJvcGVydHkgc2V0TWFpbihTdHJpbmcgYWxpYXMsIFN0cmluZyBzaG9ydEFsaWFzLCBpbnQgcHJvcGVydHlUeXBlLAorICAgICAgICAgICAgICAgIFN0cmluZyB2ZXJzaW9uKSB7CisgICAgICAgICAgICAgICAgICBzZXROYW1lKGFsaWFzKTsKKyAgICAgICAgICAgICAgICAgIHNldFR5cGUocHJvcGVydHlUeXBlKTsKKyAgICAgICAgICAgICAgICAgIHByb3BlcnR5QWxpYXNlcy5hZGQoc2hvcnRBbGlhcyk7CisgICAgICAgICAgICAgICAgICBwcm9wZXJ0eUFsaWFzZXMuYWRkKGFsaWFzKTsKKyAgICAgICAgICAgICAgICAgIHRoaXMudmVyc2lvbiA9IHZlcnNpb247CisgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfSAgICAJCisgICAgICAgIHB1YmxpYyBTdHJpbmcgX2dldFZlcnNpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gdmVyc2lvbjsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgTGlzdCBfZ2V0TmFtZUFsaWFzZXMoTGlzdCByZXN1bHQpIHsKKyAgICAgICAgICAgIGFkZEFsbFVuaXF1ZShwcm9wZXJ0eUFsaWFzZXMsIHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBCYXNlUHJvcGVydHkgYWRkVmFsdWVBbGlhc2VzKFN0cmluZ1tdW10gdmFsdWVBbmRBbHRlcm5hdGVzLCBib29sZWFuIGVycm9ySWZDYW50KSB7CisgICAgICAgIAlpZiAodG9WYWx1ZUFsaWFzZXMgPT0gbnVsbCkgX2ZpeFZhbHVlQWxpYXNlcygpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZUFuZEFsdGVybmF0ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIAlmb3IgKGludCBqID0gMTsgaiA8IHZhbHVlQW5kQWx0ZXJuYXRlc1swXS5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgCQlhZGRWYWx1ZUFsaWFzKHZhbHVlQW5kQWx0ZXJuYXRlc1tpXVswXSwgdmFsdWVBbmRBbHRlcm5hdGVzW2ldW2pdLCBlcnJvcklmQ2FudCk7CisgICAgICAgICAgICAJfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKwkJcHVibGljIHZvaWQgYWRkVmFsdWVBbGlhcyhTdHJpbmcgdmFsdWUsIFN0cmluZyB2YWx1ZUFsaWFzLCBib29sZWFuIGVycm9ySWZDYW50KSB7CisgICAgCQlMaXN0IHJlc3VsdCA9IChMaXN0KSB0b1ZhbHVlQWxpYXNlcy5nZXQodmFsdWUpOworICAgIAkJaWYgKHJlc3VsdCA9PSBudWxsICYmICFlcnJvcklmQ2FudCkgcmV0dXJuOworICAgIAkJYWRkVW5pcXVlKHZhbHVlLCByZXN1bHQpOworICAgIAkJYWRkVW5pcXVlKHZhbHVlQWxpYXMsIHJlc3VsdCk7CisJCX0KKwkJcHJvdGVjdGVkIExpc3QgX2dldFZhbHVlQWxpYXNlcyhTdHJpbmcgdmFsdWVBbGlhcywgTGlzdCByZXN1bHQpIHsKKwkJCWlmICh0b1ZhbHVlQWxpYXNlcyA9PSBudWxsKSBfZml4VmFsdWVBbGlhc2VzKCk7CisgICAgICAgICAgICBMaXN0IGEgPSAoTGlzdCkgdG9WYWx1ZUFsaWFzZXMuZ2V0KHZhbHVlQWxpYXMpOworICAgICAgICAgICAgaWYgKGEgIT0gbnVsbCkgYWRkQWxsVW5pcXVlKGEsIHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKwkJcHJvdGVjdGVkIHZvaWQgX2ZpeFZhbHVlQWxpYXNlcygpIHsKKwkJCWlmICh0b1ZhbHVlQWxpYXNlcyA9PSBudWxsKSB0b1ZhbHVlQWxpYXNlcyA9IG5ldyBIYXNoTWFwKDEpOworCQkJZm9yIChJdGVyYXRvciBpdCA9IGdldEF2YWlsYWJsZVZhbHVlcygpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCQlPYmplY3QgdmFsdWUgPSBpdC5uZXh0KCk7CisJCQkJTGlzdCByZXN1bHQ7CisJCQkJX2Vuc3VyZVZhbHVlSW5BbGlhc2VzKHZhbHVlKTsKKwkJCX0KKwkJfQorCQlwcm90ZWN0ZWQgdm9pZCBfZW5zdXJlVmFsdWVJbkFsaWFzZXMoT2JqZWN0IHZhbHVlKSB7CisJCQlMaXN0IHJlc3VsdCA9IChMaXN0KSB0b1ZhbHVlQWxpYXNlcy5nZXQodmFsdWUpOworCQkJaWYgKHJlc3VsdCA9PSBudWxsKSB0b1ZhbHVlQWxpYXNlcy5wdXQodmFsdWUsIHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoMSkpOworCQkJYWRkVW5pcXVlKHZhbHVlLCByZXN1bHQpOworCQl9CisgICAgICAgIHB1YmxpYyBCYXNlUHJvcGVydHkgc3dhcEZpcnN0MlZhbHVlQWxpYXNlcygpIHsKKyAgICAgICAgCWZvciAoSXRlcmF0b3IgaXQgPSB0b1ZhbHVlQWxpYXNlcy5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgIAkJTGlzdCBsaXN0ID0gKExpc3QpIHRvVmFsdWVBbGlhc2VzLmdldChpdC5uZXh0KCkpOworICAgICAgICAJCWlmIChsaXN0LnNpemUoKSA8IDIpIGNvbnRpbnVlOworICAgICAgICAJCU9iamVjdCBmaXJzdCA9IGxpc3QuZ2V0KDApOworICAgICAgICAJCWxpc3Quc2V0KDAsIGxpc3QuZ2V0KDEpKTsKKyAgICAgICAgCQlsaXN0LnNldCgxLCBmaXJzdCk7CisgICAgICAgIAl9CisgICAgICAgIAlyZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBTaW1wbGVQcm9wZXJ0eSBleHRlbmRzIEJhc2VQcm9wZXJ0eSB7CisgICAgICAgIExpc3QgdmFsdWVzOworCisgICAgICAgIHB1YmxpYyBTaW1wbGVQcm9wZXJ0eSBhZGROYW1lKFN0cmluZyBhbGlhcykgeworICAgICAgICAgICAgcHJvcGVydHlBbGlhc2VzLmFkZChhbGlhcyk7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTaW1wbGVQcm9wZXJ0eSBzZXRWYWx1ZXMoU3RyaW5nIHZhbHVlQWxpYXMpIHsKKyAgICAgICAgICAgIF9hZGRUb1ZhbHVlcyh2YWx1ZUFsaWFzLCBudWxsKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFNpbXBsZVByb3BlcnR5IHNldFZhbHVlcyhTdHJpbmdbXSB2YWx1ZUFsaWFzZXMsIFN0cmluZ1tdIGFsdGVybmF0ZVZhbHVlQWxpYXNlcykgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZUFsaWFzZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWVBbGlhc2VzW2ldLmVxdWFscyhVTlVTRUQpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBfYWRkVG9WYWx1ZXModmFsdWVBbGlhc2VzW2ldLAorICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGVWYWx1ZUFsaWFzZXMgIT0gbnVsbCA/IGFsdGVybmF0ZVZhbHVlQWxpYXNlc1tpXSA6IG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTaW1wbGVQcm9wZXJ0eSBzZXRWYWx1ZXMoTGlzdCB2YWx1ZUFsaWFzZXMpIHsKKyAgICAgICAgICAgIHRoaXMudmFsdWVzID0gbmV3IEFycmF5TGlzdCh2YWx1ZUFsaWFzZXMpOworICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IHRoaXMudmFsdWVzLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTsgKSB7CisgICAgICAgICAgICAgICAgX2FkZFRvVmFsdWVzKChTdHJpbmcpaXQubmV4dCgpLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIExpc3QgX2dldEF2YWlsYWJsZVZhbHVlcyhMaXN0IHJlc3VsdCkgeworICAgICAgICAgICAgaWYgKHZhbHVlcyA9PSBudWxsKSBfZmlsbFZhbHVlcygpOworICAgICAgICAgICAgcmVzdWx0LmFkZEFsbCh2YWx1ZXMpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgX2ZpbGxWYWx1ZXMoKSB7CisgICAgICAgICAgICBMaXN0IG5ld3ZhbHVlcyA9IChMaXN0KSBnZXRVbmljb2RlTWFwX2ludGVybmFsKCkuZ2V0QXZhaWxhYmxlVmFsdWVzKG5ldyBBcnJheUxpc3QoKSk7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gbmV3dmFsdWVzLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBfYWRkVG9WYWx1ZXMoKFN0cmluZylpdC5uZXh0KCksIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHZvaWQgX2FkZFRvVmFsdWVzKFN0cmluZyBpdGVtLCBTdHJpbmcgYWxpYXMpIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZXMgPT0gbnVsbCkgdmFsdWVzID0gbmV3IEFycmF5TGlzdCgxKTsKKyAgICAgICAgICAgIGlmICh0b1ZhbHVlQWxpYXNlcyA9PSBudWxsKSBfZml4VmFsdWVBbGlhc2VzKCk7CisgICAgICAgICAgICBhZGRVbmlxdWUoaXRlbSwgdmFsdWVzKTsKKyAgICAgICAgICAgIF9lbnN1cmVWYWx1ZUluQWxpYXNlcyhpdGVtKTsKKyAgICAgICAgICAgIGFkZFZhbHVlQWxpYXMoaXRlbSwgYWxpYXMsIHRydWUpOworICAgICAgICB9CisvKiAgICAgICAgcHVibGljIFN0cmluZyBfZ2V0VmVyc2lvbigpIHsKKyAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uOworICAgICAgICB9CisqLyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBVbmljb2RlTWFwUHJvcGVydHkgZXh0ZW5kcyBCYXNlUHJvcGVydHkgeworICAgIAkvKgorICAgIAkgKiBFeGFtcGxlIG9mIHVzYWdlOgorICAgIAkgKiBuZXcgVW5pY29kZVByb3BlcnR5LlVuaWNvZGVNYXBQcm9wZXJ0eSgpIHsKKyAgICAgICAgCXsKKyAgICAgICAgCQl1bmljb2RlTWFwID0gbmV3IFVuaWNvZGVNYXAoKTsKKyAgICAgICAgCQl1bmljb2RlTWFwLnNldEVycm9yT25SZXNldCh0cnVlKTsKKyAgICAgICAgCQl1bmljb2RlTWFwLnB1dCgweEQsICJDUiIpOworICAgICAgICAJCXVuaWNvZGVNYXAucHV0KDB4QSwgIkxGIik7CisgICAgICAgIAkJVW5pY29kZVByb3BlcnR5IGNhdCA9IGdldFByb3BlcnR5KCJHZW5lcmFsX0NhdGVnb3J5Iik7CisgICAgICAgIAkJVW5pY29kZVNldCB0ZW1wID0gY2F0LmdldFNldCgiTGluZV9TZXBhcmF0b3IiKQorCQkJCS5hZGRBbGwoY2F0LmdldFNldCgiUGFyYWdyYXBoX1NlcGFyYXRvciIpKQorCQkJCS5hZGRBbGwoY2F0LmdldFNldCgiQ29udHJvbCIpKQorCQkJCS5hZGRBbGwoY2F0LmdldFNldCgiRm9ybWF0IikpCisJCQkJLnJlbW92ZSgweEQpLnJlbW92ZSgweEEpLnJlbW92ZSgweDIwMEMpLnJlbW92ZSgweDIwMEQpOworICAgICAgICAJCXVuaWNvZGVNYXAucHV0QWxsKHRlbXAsICJDb250cm9sIik7CisgICAgICAgIAkJVW5pY29kZVNldCBncmFwaGVtZUV4dGVuZCA9IGdldFByb3BlcnR5KCJHcmFwaGVtZV9FeHRlbmQiKS5nZXRTZXQoInRydWUiKTsKKyAgICAgICAgCQl1bmljb2RlTWFwLnB1dEFsbChncmFwaGVtZUV4dGVuZCwiRXh0ZW5kIik7CisgICAgICAgIAkJVW5pY29kZVByb3BlcnR5IGhhbmd1bCA9IGdldFByb3BlcnR5KCJIYW5ndWxfU3lsbGFibGVfVHlwZSIpOworICAgICAgICAJCXVuaWNvZGVNYXAucHV0QWxsKGhhbmd1bC5nZXRTZXQoIkwiKSwiTCIpOworICAgICAgICAJCXVuaWNvZGVNYXAucHV0QWxsKGhhbmd1bC5nZXRTZXQoIlYiKSwiViIpOworICAgICAgICAJCXVuaWNvZGVNYXAucHV0QWxsKGhhbmd1bC5nZXRTZXQoIlQiKSwiVCIpOworICAgICAgICAJCXVuaWNvZGVNYXAucHV0QWxsKGhhbmd1bC5nZXRTZXQoIkxWIiksIkxWIik7CisgICAgICAgIAkJdW5pY29kZU1hcC5wdXRBbGwoaGFuZ3VsLmdldFNldCgiTFZUIiksIkxWVCIpOworICAgICAgICAJCXVuaWNvZGVNYXAuc2V0TWlzc2luZygiT3RoZXIiKTsKKyAgICAgICAgCX0KKyAgICAgICAgfS5zZXRNYWluKCJHcmFwaGVtZV9DbHVzdGVyX0JyZWFrIiwgIkdDQiIsIFVuaWNvZGVQcm9wZXJ0eS5FTlVNRVJBVEVELCB2ZXJzaW9uKQorICAgIAkgKi8KKyAgICAgICAgcHJvdGVjdGVkIFVuaWNvZGVNYXAgdW5pY29kZU1hcDsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBVbmljb2RlTWFwUHJvcGVydHkgc2V0KFVuaWNvZGVNYXAgbWFwKSB7CisgICAgICAgIAl1bmljb2RlTWFwID0gbWFwOworICAgICAgICAJcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIF9nZXRWYWx1ZShpbnQgY29kZXBvaW50KSB7CisgICAgICAgICAgICByZXR1cm4gKFN0cmluZykgdW5pY29kZU1hcC5nZXRWYWx1ZShjb2RlcG9pbnQpOworICAgICAgICB9CisvKgkJcHJvdGVjdGVkIExpc3QgX2dldFZhbHVlQWxpYXNlcyhTdHJpbmcgdmFsdWVBbGlhcywgTGlzdCByZXN1bHQpIHsKKwkJCWlmICghdW5pY29kZU1hcC5nZXRBdmFpbGFibGVWYWx1ZXMoKS5jb250YWlucyh2YWx1ZUFsaWFzKSkgcmV0dXJuIHJlc3VsdDsKKwkJCXJlc3VsdC5hZGQodmFsdWVBbGlhcyk7CisJCQlyZXR1cm4gcmVzdWx0OyAvLyBubyBvdGhlciBhbGlhc2VzCisJCX0KKyovCQlwcm90ZWN0ZWQgTGlzdCBfZ2V0QXZhaWxhYmxlVmFsdWVzKExpc3QgcmVzdWx0KSB7CisJCQlyZXR1cm4gKExpc3QpIHVuaWNvZGVNYXAuZ2V0QXZhaWxhYmxlVmFsdWVzKHJlc3VsdCk7CisJCX0KKyAgICB9Cit9CisvLyNlbmRpZgorCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVQcm9wZXJ0eVNvdXJjZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVW5pY29kZVByb3BlcnR5U291cmNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmY1YjYyYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1VuaWNvZGVQcm9wZXJ0eVNvdXJjZS5qYXZhCkBAIC0wLDAgKzEsMzIxIEBACisKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKKworCisvKioKKyAqIFByb3ZpZGVzIGEgZ2VuZXJhbCBpbnRlcmZhY2UgZm9yIFVuaWNvZGUgUHJvcGVydGllcywgYW5kCisgKiBleHRyYWN0aW5nIHNldHMgYmFzZWQgb24gdGhvc2UgdmFsdWVzLgorICogQGF1dGhvciBEYXZpcworICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVW5pY29kZVByb3BlcnR5U291cmNlIGltcGxlbWVudHMgQ2xvbmVhYmxlIHsKKyAgICAKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHByb3BlcnR5QWxpYXM7CisgICAgcHJvdGVjdGVkIGludCBuYW1lQ2hvaWNlID0gVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORzsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nRmlsdGVyIGZpbHRlciA9IG5ldyBTdHJpbmdGaWx0ZXIoKTsKKyAgICBwcm90ZWN0ZWQgVW5pY29kZVNldEl0ZXJhdG9yIG1hdGNoSXRlcmF0b3IgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKG5ldyBVbmljb2RlU2V0KDAsMHgxMEZGRkYpKTsKKyAgICAKKyAgICBhYnN0cmFjdCBwdWJsaWMgU3RyaW5nIGdldFByb3BlcnR5VmFsdWUoaW50IGNvZGVwb2ludCk7CisgICAgYWJzdHJhY3QgcHVibGljIFNldCBnZXRBdmFpbGFibGVQcm9wZXJ0eUFsaWFzZXMoU2V0IHJlc3VsdCk7CisgICAgYWJzdHJhY3QgcHVibGljIFNldCBnZXRBdmFpbGFibGVQcm9wZXJ0eVZhbHVlQWxpYXNlcyhTZXQgcmVzdWx0KTsKKworICAgIGFic3RyYWN0IHB1YmxpYyBTdHJpbmcgZ2V0UHJvcGVydHlBbGlhcyhpbnQgbmFtZUNob2ljZSk7CisgICAgYWJzdHJhY3QgcHVibGljIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlQWxpYXMoU3RyaW5nIHZhbHVlQWxpYXMsIGludCBuYW1lQ2hvaWNlKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZQorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVbmljb2RlUHJvcGVydHlTb3VyY2UgcmVzdWx0ID0gKFVuaWNvZGVQcm9wZXJ0eVNvdXJjZSlzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgcmVzdWx0LmZpbHRlciA9IChTdHJpbmdGaWx0ZXIpZmlsdGVyLmNsb25lKCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OyAgICAgICAgICAgICAKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiU2hvdWxkIG5ldmVyIGhhcHBlbi4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVW5pY29kZVByb3BlcnR5U291cmNlIHNldFByb3BlcnR5QWxpYXMoU3RyaW5nIHByb3BlcnR5QWxpYXMpIHsKKyAgICAgICAgdGhpcy5wcm9wZXJ0eUFsaWFzID0gcHJvcGVydHlBbGlhczsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJvcGVydHlBbGlhcygpIHsKKyAgICAgICAgcmV0dXJuIHByb3BlcnR5QWxpYXM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBlcXVhbHMoaW50IGNvZGVwb2ludCwgU3RyaW5nIG90aGVyKSB7CisgICAgICAgIGlmIChvdGhlci5sZW5ndGgoKSA9PSAxKSB7CisgICAgICAgICAgICByZXR1cm4gY29kZXBvaW50ID09IG90aGVyLmNoYXJBdCgwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb3RoZXIuZXF1YWxzKFVURjE2LnZhbHVlT2YoY29kZXBvaW50KSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFByb3BlcnR5U2V0KGJvb2xlYW4gY2hhckVxdWFsc1ZhbHVlLCBVbmljb2RlU2V0IHJlc3VsdCl7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgbWF0Y2hJdGVyYXRvci5yZXNldCgpOworICAgICAgICB3aGlsZSAobWF0Y2hJdGVyYXRvci5uZXh0KCkpIHsKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGZpbHRlci5yZW1hcChnZXRQcm9wZXJ0eVZhbHVlKG1hdGNoSXRlcmF0b3IuY29kZXBvaW50KSk7CisgICAgICAgICAgICBpZiAoZXF1YWxzKG1hdGNoSXRlcmF0b3IuY29kZXBvaW50LCB2YWx1ZSkgPT0gY2hhckVxdWFsc1ZhbHVlKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChtYXRjaEl0ZXJhdG9yLmNvZGVwb2ludCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRQcm9wZXJ0eVNldChTdHJpbmcgcHJvcGVydHlWYWx1ZSwgVW5pY29kZVNldCByZXN1bHQpeworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIG1hdGNoSXRlcmF0b3IucmVzZXQoKTsKKyAgICAgICAgd2hpbGUgKG1hdGNoSXRlcmF0b3IubmV4dCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBmaWx0ZXIucmVtYXAoZ2V0UHJvcGVydHlWYWx1ZShtYXRjaEl0ZXJhdG9yLmNvZGVwb2ludCkpOworICAgICAgICAgICAgaWYgKHByb3BlcnR5VmFsdWUuZXF1YWxzKHZhbHVlKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQobWF0Y2hJdGVyYXRvci5jb2RlcG9pbnQpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFByb3BlcnR5U2V0KE1hdGNoZXIgbWF0Y2hlciwgVW5pY29kZVNldCByZXN1bHQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSByZXN1bHQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBtYXRjaEl0ZXJhdG9yLnJlc2V0KCk7CisgICAgICAgIHdoaWxlIChtYXRjaEl0ZXJhdG9yLm5leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gZmlsdGVyLnJlbWFwKGdldFByb3BlcnR5VmFsdWUobWF0Y2hJdGVyYXRvci5jb2RlcG9pbnQpKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKG1hdGNoZXIubWF0Y2hlcyh2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYWRkKG1hdGNoSXRlcmF0b3IuY29kZXBvaW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50ZXJmYWNlIE1hdGNoZXIgeworICAgICAgICBwdWJsaWMgYm9vbGVhbiBtYXRjaGVzKFN0cmluZyB2YWx1ZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0TmFtZUNob2ljZSgpIHsKKyAgICAgICAgcmV0dXJuIG5hbWVDaG9pY2U7CisgICAgfQorCisgICAgcHVibGljIFVuaWNvZGVQcm9wZXJ0eVNvdXJjZSBzZXROYW1lQ2hvaWNlKGludCBjaG9pY2UpIHsKKyAgICAgICAgbmFtZUNob2ljZSA9IGNob2ljZTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgU3RyaW5nRmlsdGVyIGltcGxlbWVudHMgQ2xvbmVhYmxlIHsKKyAgICAgICAgcHVibGljIFN0cmluZyByZW1hcChTdHJpbmcgb3JpZ2luYWwpIHsKKyAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJTaG91bGQgbmV2ZXIgaGFwcGVuLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTWFwRmlsdGVyIGV4dGVuZHMgU3RyaW5nRmlsdGVyIHsKKyAgICAgICAgTWFwIHZhbHVlTWFwOworICAgICAgICBwdWJsaWMgU3RyaW5nIHJlbWFwKFN0cmluZyBvcmlnaW5hbCkgeworICAgICAgICAgICAgT2JqZWN0IGNoYW5nZWQgPSB2YWx1ZU1hcC5nZXQob3JpZ2luYWwpOworICAgICAgICAgICAgcmV0dXJuIGNoYW5nZWQgPT0gbnVsbCA/IG9yaWdpbmFsIDogKFN0cmluZykgY2hhbmdlZDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgTWFwIGdldE1hcCgpIHsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZU1hcDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBNYXBGaWx0ZXIgc2V0TWFwKE1hcCBtYXApIHsKKyAgICAgICAgICAgIHZhbHVlTWFwID0gbWFwOworICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgcHVibGljIGNsYXNzIElDVSBleHRlbmRzIFVuaWNvZGVQcm9wZXJ0eVNvdXJjZSB7CisgICAgICAgIHByb3RlY3RlZCBpbnQgcHJvcEVudW0gPSBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAgICAgeworICAgICAgICAgICAgbWF0Y2hJdGVyYXRvciA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3IoCisgICAgICAgICAgICAgICAgbmV3IFVuaWNvZGVTZXQoIlteWzpDbjpdLVs6RGVmYXVsdF9JZ25vcmFibGVfQ29kZV9Qb2ludDpdXSIpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIFVuaWNvZGVQcm9wZXJ0eVNvdXJjZSBzZXRQcm9wZXJ0eUFsaWFzKFN0cmluZyBwcm9wZXJ0eUFsaWFzKSB7CisgICAgICAgICAgICBzdXBlci5zZXRQcm9wZXJ0eUFsaWFzKHByb3BlcnR5QWxpYXMpOworICAgICAgICAgICAgaW50IGV4dHJhUG9zaXRpb24gPSBFeHRyYXMuaW5kZXhPZihwcm9wZXJ0eUFsaWFzKTsKKyAgICAgICAgICAgIGlmIChleHRyYVBvc2l0aW9uID49IDApIHsKKyAgICAgICAgICAgICAgICBwcm9wRW51bSA9IEVYVFJBX1NUQVJUICsgZXh0cmFQb3NpdGlvbjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJvcEVudW0gPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5RW51bShwcm9wZXJ0eUFsaWFzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKGludCBjb2RlUG9pbnQpIHsKKyAgICAgICAgICAgIGlmIChwcm9wRW51bSA8IFVQcm9wZXJ0eS5JTlRfTElNSVQpIHsKKyAgICAgICAgICAgICAgICBpbnQgZW51bVZhbHVlID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGNvZGVQb2ludCwgcHJvcEVudW0pOworICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BFbnVtLGVudW1WYWx1ZSwgKGludCluYW1lQ2hvaWNlKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcEVudW0gPCBVUHJvcGVydHkuRE9VQkxFX0xJTUlUKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIERvdWJsZS50b1N0cmluZyhVQ2hhcmFjdGVyLmdldFVuaWNvZGVOdW1lcmljVmFsdWUoY29kZVBvaW50KSk7CisgICAgICAgICAgICAgICAgLy8gVE9ETzogRml4IEhBQ0sgLS0gQVBJIGRlZmljaWVudAorICAgICAgICAgICAgfSBlbHNlIHN3aXRjaChwcm9wRW51bSkgeworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkFHRTogcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0QWdlKGNvZGVQb2ludCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CSURJX01JUlJPUklOR19HTFlQSDogcmV0dXJuIFVURjE2LnZhbHVlT2YoVUNoYXJhY3Rlci5nZXRNaXJyb3IoY29kZVBvaW50KSk7CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQ0FTRV9GT0xESU5HOiByZXR1cm4gVUNoYXJhY3Rlci5mb2xkQ2FzZShVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCksdHJ1ZSk7CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuSVNPX0NPTU1FTlQ6IHJldHVybiBVQ2hhcmFjdGVyLmdldElTT0NvbW1lbnQoY29kZVBvaW50KTsKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MT1dFUkNBU0VfTUFQUElORzogcmV0dXJuIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gsVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5OQU1FOiByZXR1cm4gVUNoYXJhY3Rlci5nZXROYW1lKGNvZGVQb2ludCk7CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX0NBU0VfRk9MRElORzogcmV0dXJuIFVURjE2LnZhbHVlT2YoVUNoYXJhY3Rlci5mb2xkQ2FzZShjb2RlUG9pbnQsdHJ1ZSkpOworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9MT1dFUkNBU0VfTUFQUElORzogcmV0dXJuIFVURjE2LnZhbHVlT2YoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfVElUTEVDQVNFX01BUFBJTkc6IHJldHVybiBVVEYxNi52YWx1ZU9mKFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoY29kZVBvaW50KSk7CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1VQUEVSQ0FTRV9NQVBQSU5HOiByZXR1cm4gVVRGMTYudmFsdWVPZihVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGNvZGVQb2ludCkpOworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlRJVExFQ0FTRV9NQVBQSU5HOiByZXR1cm4gVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShMb2NhbGUuRU5HTElTSCxVVEYxNi52YWx1ZU9mKGNvZGVQb2ludCksbnVsbCk7CisgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuVU5JQ09ERV8xX05BTUU6IHJldHVybiBVQ2hhcmFjdGVyLmdldE5hbWUxXzAoY29kZVBvaW50KTsKKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5VUFBFUkNBU0VfTUFQUElORzogcmV0dXJuIFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoTG9jYWxlLkVOR0xJU0gsVVRGMTYudmFsdWVPZihjb2RlUG9pbnQpKTsKKyAgICAgICAgICAgICAgICBjYXNlIE5GQzogcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgICAgIGNhc2UgTkZEOiByZXR1cm4gTm9ybWFsaXplci5ub3JtYWxpemUoY29kZVBvaW50LCBOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICAgICAgY2FzZSBORktDOiByZXR1cm4gTm9ybWFsaXplci5ub3JtYWxpemUoY29kZVBvaW50LCBOb3JtYWxpemVyLk5GS0MpOworICAgICAgICAgICAgICAgIGNhc2UgTkZLRDogcmV0dXJuIE5vcm1hbGl6ZXIubm9ybWFsaXplKGNvZGVQb2ludCwgTm9ybWFsaXplci5ORktEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzdGF0aWMgZmluYWwgTGlzdCBFeHRyYXMgPSBBcnJheXMuYXNMaXN0KG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiTkZDIiwgIk5GRCIsICJORktDIiwgIk5LRkQiCisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgc3RhdGljIGZpbmFsIGludCAKKyAgICAgICAgICAgIE5GQyAgPSAweDgwMDAsCisgICAgICAgICAgICBORkQgID0gMHg4MDAxLAorICAgICAgICAgICAgTkZLQyA9IDB4ODAwMiwKKyAgICAgICAgICAgIE5GS0QgPSAweDgwMDMsCisgICAgICAgICAgICBFWFRSQV9TVEFSVCA9IE5GQywKKyAgICAgICAgICAgIEVYVFJBX0xJTUlUID0gTkZLRCsxOworCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnRbXVtdIHJhbmdlcyA9IHsKKyAgICAgICAgICAgIHtVUHJvcGVydHkuQklOQVJZX1NUQVJULCAgICBVUHJvcGVydHkuQklOQVJZX0xJTUlUfSwKKyAgICAgICAgICAgIHtVUHJvcGVydHkuSU5UX1NUQVJULCAgICAgICBVUHJvcGVydHkuSU5UX0xJTUlUfSwKKyAgICAgICAgICAgIHtVUHJvcGVydHkuRE9VQkxFX1NUQVJULCAgICBVUHJvcGVydHkuRE9VQkxFX0xJTUlUfSwKKyAgICAgICAgICAgIHtVUHJvcGVydHkuU1RSSU5HX1NUQVJULCAgICBVUHJvcGVydHkuU1RSSU5HX0xJTUlUfSwKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU2V0IGdldEF2YWlsYWJsZVByb3BlcnR5QWxpYXNlcyhTZXQgcmVzdWx0KSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSByYW5nZXNbaV1bMF07IGogPCByYW5nZXNbaV1bMV07ICsraikgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkKFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlOYW1lKGosIG5hbWVDaG9pY2UpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYWRkQWxsKEV4dHJhcyk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFNldCBnZXRBdmFpbGFibGVQcm9wZXJ0eVZhbHVlQWxpYXNlcyhTZXQgcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAocHJvcEVudW0gPCBVUHJvcGVydHkuSU5UX0xJTUlUKSB7CisgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKHByb3BFbnVtKTsKKyAgICAgICAgICAgICAgICBpbnQgZW5kID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKHByb3BFbnVtKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gc3RhcnQ7IGkgPD0gZW5kOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChnZXRGaXhlZFZhbHVlQWxpYXMobnVsbCwgaSxuYW1lQ2hvaWNlKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYWRkKGdldEZpeGVkVmFsdWVBbGlhcyhudWxsLCAtMSxuYW1lQ2hvaWNlKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHZhbHVlQWxpYXMgbnVsbCBpZiB1bnVzZWQuCisgICAgICAgICAqIEBwYXJhbSB2YWx1ZUVudW0gLTEgaWYgdW51c2VkCisgICAgICAgICAqIEBwYXJhbSBuYW1lQ2hvaWNlCisgICAgICAgICAqIEByZXR1cm4gdGhlIGFsaWFzCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIFN0cmluZyBnZXRGaXhlZFZhbHVlQWxpYXMoU3RyaW5nIHZhbHVlQWxpYXMsIGludCB2YWx1ZUVudW0sIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgICAgICBpZiAocHJvcEVudW0gPj0gVVByb3BlcnR5LlNUUklOR19TVEFSVCkgeworICAgICAgICAgICAgICAgIHJldHVybiAiPHN0cmluZz4iOworICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wRW51bSA+PSBVUHJvcGVydHkuRE9VQkxFX1NUQVJUKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICI8ZG91YmxlPiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodmFsdWVBbGlhcyAhPSBudWxsICYmICF2YWx1ZUFsaWFzLmVxdWFscygiPGludGVnZXI+IikpIHsKKyAgICAgICAgICAgICAgICB2YWx1ZUVudW0gPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVFbnVtKHByb3BFbnVtLHZhbHVlQWxpYXMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGZpeGVkR2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcEVudW0sIHZhbHVlRW51bSwgbmFtZUNob2ljZSk7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAvLyB0cnkgb3RoZXIgbmFtZWNob2ljZQorICAgICAgICAgICAgcmVzdWx0ID0gZml4ZWRHZXRQcm9wZXJ0eVZhbHVlTmFtZShwcm9wRW51bSx2YWx1ZUVudW0sCisgICAgICAgICAgICAgICAgbmFtZUNob2ljZSA9PSBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HID8gVVByb3BlcnR5Lk5hbWVDaG9pY2UuU0hPUlQgOiBVUHJvcGVydHkuTmFtZUNob2ljZS5MT05HKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIHJldHVybiAiPGludGVnZXI+IjsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBmaXhlZEdldFByb3BlcnR5VmFsdWVOYW1lKGludCBwcm9wRW51bSwgaW50IHZhbHVlRW51bSwgaW50IG5hbWVDaG9pY2UpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcEVudW0sdmFsdWVFbnVtLG5hbWVDaG9pY2UpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJvcGVydHlBbGlhcyhpbnQgbmFtZUNob2ljZSkgeworICAgICAgICAgICAgaWYgKHByb3BFbnVtIDwgRVhUUkFfU1RBUlQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eU5hbWUocHJvcEVudW0sIG5hbWVDaG9pY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIChTdHJpbmcpRXh0cmFzLmdldChwcm9wRW51bS1FWFRSQV9TVEFSVCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFByb3BlcnR5VmFsdWVBbGlhcyhTdHJpbmcgdmFsdWVBbGlhcywgaW50IG5hbWVDaG9pY2UpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRGaXhlZFZhbHVlQWxpYXModmFsdWVBbGlhcywgLTEsIG5hbWVDaG9pY2UpOworICAgICAgICB9CisgICAgfQorICAgIC8vIFRPRE8gZmlsZSBidWcgb24gZ2V0UHJvcGVydHlWYWx1ZU5hbWUgZm9yIENhbm9uaWNhbF9Db21iaW5pbmdfQ2xhc3MKKworICAgIHB1YmxpYyBTdHJpbmdGaWx0ZXIgZ2V0RmlsdGVyKCkgeworICAgICAgICByZXR1cm4gZmlsdGVyOworICAgIH0KKworCisgICAgcHVibGljIFVuaWNvZGVQcm9wZXJ0eVNvdXJjZSBzZXRGaWx0ZXIoU3RyaW5nRmlsdGVyIGZpbHRlcikgeworICAgICAgICB0aGlzLmZpbHRlciA9IGZpbHRlcjsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyB2b2lkIGFkZEFsbChVbmljb2RlU2V0SXRlcmF0b3Igc291cmNlLCBVbmljb2RlU2V0IHJlc3VsdCkgeworICAgICAgICB3aGlsZSAoc291cmNlLm5leHRSYW5nZSgpKSB7CisgICAgICAgICAgICBpZiAoc291cmNlLmNvZGVwb2ludCA9PSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChzb3VyY2Uuc3RyaW5nKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChzb3VyY2UuY29kZXBvaW50LCBzb3VyY2UuY29kZXBvaW50RW5kKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRNYXRjaFNldChVbmljb2RlU2V0IHJlc3VsdCkgeworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGFkZEFsbChtYXRjaEl0ZXJhdG9yLCByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBzZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNYXRjaFNldChVbmljb2RlU2V0IHNldCkgeworICAgICAgICBtYXRjaEl0ZXJhdG9yID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzZXQpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVXRpbGl0eVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1V0aWxpdHlUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU5NzJjYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1V0aWxpdHlUZXN0LmphdmEKQEAgLTAsMCArMSwxNzMgQEAKKy8vIyNoZWFkZXIKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMy0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IE1hcmNoIDggMjAwMworKiBTaW5jZTogSUNVIDIuNgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQnl0ZUFycmF5V3JhcHBlcjsKKworLyoqCisgKiBAdGVzdAorICogQHN1bW1hcnkgVGVzdCBvZiBpbnRlcm5hbCBVdGlsaXR5IGNsYXNzCisgKi8KK3B1YmxpYyBjbGFzcyBVdGlsaXR5VGVzdCBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBuZXcgVXRpbGl0eVRlc3QoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgVGVzdFVuZXNjYXBlKCkgeworICAgICAgICBmaW5hbCBTdHJpbmcgaW5wdXQgPQorICAgICAgICAgICAgIlNjaFxcdTAwZjZuZXMgQXV0bzogXFx1MjBhYyAxMTI0MC5cXGZQcml2YXRlcyBaZWljaGVuOiBcXFUwMDEwMjM0NVxcZVxcY0NcXG4gXFx4MWJcXHh7MjYzYX0iOworCisgICAgICAgIGZpbmFsIFN0cmluZyBleHBlY3QgPSAKKyAgICAgICAgICAgICJTY2hcdTAwRjZuZXMgQXV0bzogXHUyMEFDIDExMjQwLlx1MDAwQ1ByaXZhdGVzIFplaWNoZW46IFx1REJDOFx1REY0NVx1MDAxQlx1MDAwM1wwMTIgXHUwMDFCXHUyNjNBIjsKKworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gVXRpbGl0eS51bmVzY2FwZShpbnB1dCk7CisgICAgICAgIGlmICghcmVzdWx0LmVxdWFscyhleHBlY3QpKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogVXRpbGl0eS51bmVzY2FwZSgpIHJldHVybmVkICIgKyByZXN1bHQgKyAiLCBleHAuICIgKyBleHBlY3QpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIFRlc3RGb3JtYXQoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIGRhdGFbXSA9IHsKKyAgICAgICAgICAgICJ0aGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nIiwKKyAgICAgICAgICAgIC8vIHJlc3VsdCBvZiB0aGlzIGNvbnZlcnNpb24gd2lsbCBleGNlZWQgdGhlIG9yaWdpbmFsIGxlbmd0aCBhbmQKKyAgICAgICAgICAgIC8vIGNhdXNlIGEgbmV3bGluZSB0byBiZSBpbnNlcnRlZAorICAgICAgICAgICAgInRlc3Rpbmcgc3BhY2UgLCBxdW90YXRpb25zIFwiIiwKKyAgICAgICAgICAgICJ0ZXN0aW5nIHdlaXJkIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyBcdWQ4MDBcdWRjMDAiLAorICAgICAgICAgICAgInRlc3RpbmcgY29udHJvbCBjaGFyYWN0ZXJzIFx1MDAwMSBhbmQgbGluZSBicmVha2luZyEhIFxuIGFyZSB3ZSBkb25lIHlldD8iCisgICAgICAgIH07CisgICAgICAgIFN0cmluZyByZXN1bHRbXSA9IHsKKyAgICAgICAgICAgICIgICAgICAgIFwidGhlIHF1aWNrIGJyb3duIGZveCBqdW1wcyBvdmVyIHRoZSBsYXp5IGRvZ1wiIiwKKyAgICAgICAgICAgICIgICAgICAgIFwidGVzdGluZyBzcGFjZSAsIHF1b3RhdGlvbnMgXFwwNDJcIiIsCisgICAgICAgICAgICAiICAgICAgICBcInRlc3Rpbmcgd2VpcmQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIFxcdUQ4MDBcXHVEQzAwXCIiLAorICAgICAgICAgICAgIiAgICAgICAgXCJ0ZXN0aW5nIGNvbnRyb2wgY2hhcmFjdGVycyBcXDAwMSBhbmQgbGluZSBicmVha2luZyEhIFxcbiBhcmUgd2UgZG9uZSB5ZVwiKyIKKyAgICAgICAgICAgICAgICAgICAgICsgVXRpbGl0eS5MSU5FX1NFUEFSQVRPUiArICIgICAgICAgIFwidD9cIiIKKyAgICAgICAgfTsKKyAgICAgICAgU3RyaW5nIHJlc3VsdDFbXSA9IHsKKyAgICAgICAgICAgICJcInRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2dcIiIsCisgICAgICAgICAgICAiXCJ0ZXN0aW5nIHNwYWNlICwgcXVvdGF0aW9ucyBcXDA0MlwiIiwKKyAgICAgICAgICAgICJcInRlc3Rpbmcgd2VpcmQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIFxcdUQ4MDBcXHVEQzAwXCIiLAorICAgICAgICAgICAgIlwidGVzdGluZyBjb250cm9sIGNoYXJhY3RlcnMgXFwwMDEgYW5kIGxpbmUgYnJlYWtpbmchISBcXG4gYXJlIHdlIGRvbmUgeWV0P1wiIgorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJmb3JtYXRGb3JTb3VyY2UoXCIiICsgZGF0YVtpXSArICJcIikiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtpXSwgVXRpbGl0eS5mb3JtYXRGb3JTb3VyY2UoZGF0YVtpXSkpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiZm9ybWF0MUZvclNvdXJjZShcIiIgKyBkYXRhW2ldICsgIlwiKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0MVtpXSwgVXRpbGl0eS5mb3JtYXQxRm9yU291cmNlKGRhdGFbaV0pKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0SGlnaEJpdCgpCisgICAgeworICAgICAgICBpbnQgZGF0YVtdID0gey0xLCAtMTI3NiwgMCwgMHhGRkZGLCAweDEyMzR9OworICAgICAgICBieXRlIHJlc3VsdFtdID0gey0xLCAtMSwgLTEsIDE1LCAxMn07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIGlmIChVdGlsaXR5LmhpZ2hCaXQoZGF0YVtpXSkgIT0gcmVzdWx0W2ldKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkZhaWw6IEhpZ2hlc3QgYml0IG9mIFxcdSIgCisgICAgICAgICAgICAgICAgICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGRhdGFbaV0pICsgIiBzaG91bGQgYmUgIgorICAgICAgICAgICAgICAgICAgICAgICsgcmVzdWx0W2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGFyZVVuc2lnbmVkKCkKKyAgICB7CisgICAgICAgIGludCBkYXRhW10gPSB7MCwgMSwgMHg4ZmZmZmZmZiwgLTEsIEludGVnZXIuTUFYX1ZBTFVFLCAKKyAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLk1JTl9WQUxVRSwgMjM0MjQyMywgLTIzNDI0MjN9OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGRhdGEubGVuZ3RoOyBqICsrKSB7CisgICAgICAgICAgICAgICAgaWYgKFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKGRhdGFbaV0sIGRhdGFbal0pIAorICAgICAgICAgICAgICAgICAgICAhPSBjb21wYXJlTG9uZ1Vuc2lnbmVkKGRhdGFbaV0sIGRhdGFbal0pKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJGYWlsOiBVbnNpZ25lZCBjb21wYXJpc29uIGZhaWxlZCB3aXRoICIgKyBkYXRhW2ldIAorICAgICAgICAgICAgICAgICAgICAgICAgICArICIgIiArIGRhdGFbaSArIDFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBUaGlzIHRlc3QgaW5kZW5kcyB0byB0ZXN0IHRoZSB1dGlsaXR5IGNsYXNzIEJ5dGVBcnJheVdyYXBwZXIKKyAgICAvLyBTZWVtcyB0aGF0IHRoZSBjbGFzcyBpcyBzb21ld2hhdCBpbmNvbXBsZXRlLCBmb3IgZXhhbXBsZQorICAgIC8vICAgICAgLSBnZXRIYXNoQ29kZShPYmplY3QpIGlzIHdlaXJkCisgICAgLy8gICAgICAtIFBhdHRlcm5NYXRjaCBmZWF0dXJlKHNlYXJjaCBwYXJ0IG9mIGFycmF5IHdpdGhpbiB0aGUgd2hvbGUgb25lKSBsYWNrcworICAgIHB1YmxpYyB2b2lkIFRlc3RCeXRlQXJyYXlXcmFwcGVyKCkKKyAgICB7CisgICAgICAgIGJ5dGVbXSBiYSA9IHsweDAwLCAweDAxLCAweDAyfTsKKyAgICAgICAgYnl0ZVtdIGJiID0gezB4MDAsIDB4MDEsIDB4MDIsIC0xfTsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIGphdmEubmlvLkJ5dGVCdWZmZXIgYnVmZmVyID0gamF2YS5uaW8uQnl0ZUJ1ZmZlci53cmFwKGJhKTsKKy8vI2Vsc2UKKy8vIyMgICAgICAgIGNvbS5pYm0uaWN1LmltcGwuQnl0ZUJ1ZmZlciBidWZmZXIgPSBjb20uaWJtLmljdS5pbXBsLkJ5dGVCdWZmZXIud3JhcChiYSk7CisvLyNlbmRpZgorICAgICAgICBCeXRlQXJyYXlXcmFwcGVyIHggPSBuZXcgQnl0ZUFycmF5V3JhcHBlcihidWZmZXIpOworICAgICAgICAKKyAgICAgICAgQnl0ZUFycmF5V3JhcHBlciB5ID0gbmV3IEJ5dGVBcnJheVdyYXBwZXIoYmEsIDMpOworICAgICAgICBCeXRlQXJyYXlXcmFwcGVyIHogPSBuZXcgQnl0ZUFycmF5V3JhcHBlcihiYiwgMyk7CisKKyAgICAgICAgCisgICAgICAgIGlmICgheS50b1N0cmluZygpLmVxdWFscygiMDAgMDEgMDIiKSl7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogdGVzdCB0b1N0cmluZyA6IEZhaWxlZCEiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gdGVzdCBlcXVhbGl0eQorICAgICAgICBpZiAoIXguZXF1YWxzKHkpIHx8ICF4LmVxdWFscyh6KSkKKyAgICAgICAgICAgIGVycmxuKCJGQUlMOiB0ZXN0IChvcGVyYXRvciA9PSk6IEZhaWxlZCEiKTsKKyAgICAgICAgaWYgKHguaGFzaENvZGUoKSE9eS5oYXNoQ29kZSgpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IGlkZW50aWNhbCBvYmplY3RzIGhhdmUgZGlmZmVyZW50IGhhc2ggY29kZXMuIik7CisKKyAgICAgICAgLy8gdGVzdCBub24tZXF1YWxpdHkKKyAgICAgICAgeSA9IG5ldyBCeXRlQXJyYXlXcmFwcGVyKGJiLCA0KTsKKyAgICAgICAgaWYgKHguZXF1YWxzKHkpKQorICAgICAgICAgICAgZXJybG4oIkZBSUw6IHRlc3QgKG9wZXJhdG9yICE9KTogRmFpbGVkISIpOworCisgICAgICAgIC8vIHRlc3Qgc2lnbiBvZiB1bmVxdWFsIGNvbXBhcmlzb24KKyAgICAgICAgaWYgKCh4LmNvbXBhcmVUbyh5KSA+IDApICE9ICh5LmNvbXBhcmVUbyh4KSA8IDApKSB7CisgICAgICAgICAgICBlcnJsbigiRkFJTDogY29tcGFyaXNvbnMgbm90IG9wcG9zaXRlIHNpZ24iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgaW50IGNvbXBhcmVMb25nVW5zaWduZWQoaW50IHgsIGludCB5KQorICAgIHsKKyAgICAgICAgbG9uZyB4MSA9IHggJiAweEZGRkZGRkZGbDsKKyAgICAgICAgbG9uZyB5MSA9IHkgJiAweEZGRkZGRkZGbDsKKyAgICAgICAgaWYgKHgxIDwgeTEpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICh4MSA+IHkxKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcHVibGljIHZvaWQgVGVzdFVuaWNvZGVTZXQoKXsKKyAgICAgICAgU3RyaW5nW10gYXJyYXkgPSBuZXcgU3RyaW5nW117ImEiLCAiYiIsICJjIiwgIntkZX0ifTsKKyAgICAgICAgTGlzdCBsaXN0ID0gQXJyYXlzLmFzTGlzdChhcnJheSk7CisgICAgICAgIFNldCBhc2V0ID0gbmV3IEhhc2hTZXQobGlzdCk7CisgICAgICAgIGxvZ2xuKCIgKioqIFRoZSBzb3VyY2Ugc2V0J3Mgc2l6ZSBpczogIiArIGFzZXQuc2l6ZSgpKTsKKyAgICAvL1RoZSBzaXplIHJlYWRzIDQKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBzZXQuY2xlYXIoKTsKKyAgICAgICAgc2V0LmFkZEFsbChhc2V0KTsKKyAgICAgICAgbG9nbG4oIiAqKiogQWZ0ZXIgYWRkQWxsLCB0aGUgVW5pY29kZVNldCBzaXplIGlzOiAiICsgc2V0LnNpemUoKSk7CisgICAgLy9UaGUgc2l6ZSBzaG91bGQgYWxzbyByZWFkIDQsIGJ1dCAwIGlzIHNlZW4gaW5zdGVhZAorCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVmFyaWFibGVSZXBsYWNlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVmFyaWFibGVSZXBsYWNlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxY2IxYjYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVmFyaWFibGVSZXBsYWNlci5qYXZhCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7aW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKKworcHVibGljIGNsYXNzIFZhcmlhYmxlUmVwbGFjZXIgeworCS8vIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBmb3Igbm93CisJcHJpdmF0ZSBDb21wYXJhdG9yIGM7CisJcHJpdmF0ZSBNYXAgbSA9IG5ldyBUcmVlTWFwKENvbGxlY3Rpb25zLnJldmVyc2VPcmRlcigpKTsKKwkKKwkvLyBUT0RPIC0gZml4IHRvIGRvIHN0cmVhbXMgYWxzbywgY2xlYW4gdXAgaW1wbGVtZW50YXRpb24KKwkKKwlwdWJsaWMgVmFyaWFibGVSZXBsYWNlciBhZGQoU3RyaW5nIHZhcmlhYmxlLCBTdHJpbmcgdmFsdWUpIHsKKwkJbS5wdXQodmFyaWFibGUsIHZhbHVlKTsKKwkJcmV0dXJuIHRoaXM7CisJfQorCXB1YmxpYyBTdHJpbmcgcmVwbGFjZShTdHJpbmcgc291cmNlKSB7CisJCVN0cmluZyBvbGRTb3VyY2U7CisJCWRvIHsKKwkJCW9sZFNvdXJjZSA9IHNvdXJjZTsKKwkJCWZvciAoSXRlcmF0b3IgaXQgPSBtLmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCQlTdHJpbmcgdmFyaWFibGUgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisJCQkJU3RyaW5nIHZhbHVlID0gKFN0cmluZykgbS5nZXQodmFyaWFibGUpOworCQkJCXNvdXJjZSA9IHJlcGxhY2VBbGwoc291cmNlLCB2YXJpYWJsZSwgdmFsdWUpOworCQkJfQorCQl9IHdoaWxlICghc291cmNlLmVxdWFscyhvbGRTb3VyY2UpKTsKKwkJcmV0dXJuIHNvdXJjZTsKKwl9CisJcHVibGljIFN0cmluZyByZXBsYWNlQWxsKFN0cmluZyBzb3VyY2UsIFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSkgeworCQl3aGlsZSAodHJ1ZSkgeworCQkJaW50IHBvcyA9IHNvdXJjZS5pbmRleE9mKGtleSk7CisJCQlpZiAocG9zIDwgMCkgcmV0dXJuIHNvdXJjZTsKKwkJCXNvdXJjZSA9IHNvdXJjZS5zdWJzdHJpbmcoMCxwb3MpICsgdmFsdWUgKyBzb3VyY2Uuc3Vic3RyaW5nKHBvcytrZXkubGVuZ3RoKCkpOworCQl9CisJfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9WZXJzaW9uSW5mb1Rlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1ZlcnNpb25JbmZvVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiYjZiN2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9WZXJzaW9uSW5mb1Rlc3QuamF2YQpAQCAtMCwwICsxLDMyNSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudGVzdC51dGlsOworCisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworCisKKy8qKgorKiBUZXN0aW5nIGNsYXNzIGZvciBWZXJzaW9uSW5mbworKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjEgTWFyY2ggMDEgMjAwMgorKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBWZXJzaW9uSW5mb1Rlc3QgZXh0ZW5kcyBUZXN0Rm13ayAKK3sgCisgICAgLy8gY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIC8qKgorICAgICogQ29uc3RydWN0b3IKKyAgICAqLworICAgIHB1YmxpYyBWZXJzaW9uSW5mb1Rlc3QoKQorICAgIHsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdbXSkgCisgICAgeworICAgICAgICBWZXJzaW9uSW5mb1Rlc3QgdGVzdCA9IG5ldyBWZXJzaW9uSW5mb1Rlc3QoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRlc3QucnVuKGFyZyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0ZXN0LmVycmxuKCJFcnJvciB0ZXN0aW5nIFZlcnNpb25JbmZvIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGVzdCB0aGF0IHRoZSBpbnN0YW50aWF0aW9uIHdvcmtzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSU5TVEFOQ0VfSU5WQUxJRF9TVFJJTkdfLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIAlWZXJzaW9uSW5mbyB2ZXJzaW9uID0gCisgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShJTlNUQU5DRV9JTlZBTElEX1NUUklOR19baV0pOworICAgICAgICAgICAgICAgIGVycmxuKCJcIiIgKyBJTlNUQU5DRV9JTlZBTElEX1NUUklOR19baV0gKyAKKyAgICAgICAgICAgICAgICAgICAgICAiXCIgc2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uIik7CisgICAgICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIAlsb2dsbigiUEFTUzogXCIiICsgSU5TVEFOQ0VfSU5WQUxJRF9TVFJJTkdfW2ldICsgCisgICAgICAgICAgICAgICAgICAgICAgIlwiIGZhaWxlZCBhcyBleHBlY3RlZCIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSU5TVEFOQ0VfVkFMSURfU1RSSU5HXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAJVmVyc2lvbkluZm8gdmVyc2lvbiA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKElOU1RBTkNFX1ZBTElEX1NUUklOR19baV0pOworICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlwiIiArIElOU1RBTkNFX1ZBTElEX1NUUklOR19baV0gKyAKKyAgICAgICAgICAgICAgICAgICAgICAiXCIgc2hvdWxkIHByb2R1Y2UgYW4gdmFsaWQgdmVyc2lvbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSU5TVEFOQ0VfSU5WQUxJRF9JTlRfLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIAlWZXJzaW9uSW5mbyB2ZXJzaW9uID0gZ2V0SW5zdGFuY2UoSU5TVEFOQ0VfSU5WQUxJRF9JTlRfW2ldKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiaW52YWxpZCBpbnRzIHNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAJbG9nbG4oIlBBU1M6IFwiIiArIElOU1RBTkNFX0lOVkFMSURfSU5UX1tpXSArIAorICAgICAgICAgICAgICAgIAkgICJcIiBmYWlsZWQgYXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IElOU1RBTkNFX1ZBTElEX0lOVF8ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgCVZlcnNpb25JbmZvIHZlcnNpb24gPSBnZXRJbnN0YW5jZShJTlNUQU5DRV9WQUxJRF9JTlRfW2ldKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ2YWxpZCBpbnRzIHNob3VsZCBub3QgcHJvZHVjZSBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRoYXQgdGhlIGNvbXBhcmlzb24gd29ya3MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0Q29tcGFyZSgpCisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IENPTVBBUkVfTk9UX0VRVUFMX1NUUklOR18ubGVuZ3RoOyBpICs9IDIpIHsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYxID0gCisgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShDT01QQVJFX05PVF9FUVVBTF9TVFJJTkdfW2ldKTsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYyID0gCisgICAgICAgICAgICAgICAgICAgIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKENPTVBBUkVfTk9UX0VRVUFMX1NUUklOR19baSArIDFdKTsKKyAgICAgICAgICAgIGlmICh2MS5jb21wYXJlVG8odjIpID09IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbihDT01QQVJFX05PVF9FUVVBTF9TVFJJTkdfW2ldICsgIiBzaG91bGQgbm90IGVxdWFsICIgKworICAgICAgICAgICAgICAgICAgICAgIENPTVBBUkVfTk9UX0VRVUFMX1NUUklOR19baSArIDFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IENPTVBBUkVfTk9UX0VRVUFMX0lOVF8ubGVuZ3RoOyBpICs9IDIpIHsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYxID0gZ2V0SW5zdGFuY2UoQ09NUEFSRV9OT1RfRVFVQUxfSU5UX1tpXSk7CisgICAgICAgICAgICBWZXJzaW9uSW5mbyB2MiA9IGdldEluc3RhbmNlKENPTVBBUkVfTk9UX0VRVUFMX0lOVF9baSArIDFdKTsKKyAgICAgICAgICAgIGlmICh2MS5jb21wYXJlVG8odjIpID09IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbihDT01QQVJFX05PVF9FUVVBTF9JTlRfW2ldICsgIiBzaG91bGQgbm90IGVxdWFsICIgKworICAgICAgICAgICAgICAgICAgICAgIENPTVBBUkVfTk9UX0VRVUFMX0lOVF9baSArIDFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IENPTVBBUkVfRVFVQUxfU1RSSU5HXy5sZW5ndGggLSAxOyBpICsrKSB7CisgICAgICAgICAgICBWZXJzaW9uSW5mbyB2MSA9IAorICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoQ09NUEFSRV9FUVVBTF9TVFJJTkdfW2ldKTsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYyID0gCisgICAgICAgICAgICAgICAgICAgIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKENPTVBBUkVfRVFVQUxfU1RSSU5HX1tpICsgMV0pOworICAgICAgICAgICAgaWYgKHYxLmNvbXBhcmVUbyh2MikgIT0gMCkgeworICAgICAgICAgICAgICAgIGVycmxuKENPTVBBUkVfRVFVQUxfU1RSSU5HX1tpXSArICIgc2hvdWxkIGVxdWFsICIgKworICAgICAgICAgICAgICAgICAgICAgIENPTVBBUkVfRVFVQUxfU1RSSU5HX1tpICsgMV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQ09NUEFSRV9FUVVBTF9JTlRfLmxlbmd0aCAtIDE7IGkgKyspIHsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYxID0gZ2V0SW5zdGFuY2UoQ09NUEFSRV9FUVVBTF9JTlRfW2ldKTsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYyID0gZ2V0SW5zdGFuY2UoQ09NUEFSRV9FUVVBTF9JTlRfW2kgKyAxXSk7CisgICAgICAgICAgICBpZiAodjEuY29tcGFyZVRvKHYyKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oQ09NUEFSRV9FUVVBTF9JTlRfW2ldICsgIiBzaG91bGQgZXF1YWwgIiArCisgICAgICAgICAgICAgICAgICAgICAgQ09NUEFSRV9FUVVBTF9JTlRfW2kgKyAxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBDT01QQVJFX0xFU1NfLmxlbmd0aCAtIDE7IGkgKyspIHsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYxID0gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoQ09NUEFSRV9MRVNTX1tpXSk7CisgICAgICAgICAgICBWZXJzaW9uSW5mbyB2MiA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKENPTVBBUkVfTEVTU19baSArIDFdKTsKKyAgICAgICAgICAgIGlmICh2MS5jb21wYXJlVG8odjIpID49IDApIHsKKyAgICAgICAgICAgICAgICBlcnJsbihDT01QQVJFX0xFU1NfW2ldICsgIiBzaG91bGQgYmUgbGVzcyB0aGFuICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICBDT01QQVJFX0xFU1NfW2kgKyAxXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodjIuY29tcGFyZVRvKHYxKSA8PSAwKSB7CisgICAgICAgICAgICAgICAgZXJybG4oQ09NUEFSRV9MRVNTX1tpICsgMV0gKyAiIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gIiArIAorICAgICAgICAgICAgICAgICAgICAgIENPTVBBUkVfTEVTU19baV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhhdCB0aGUgZ2V0dGVyIGZ1bmN0aW9uIHdvcmtzCisgICAgICovCisgICAgcHVibGljIHZvaWQgVGVzdEdldHRlcigpCisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEdFVF9TVFJJTkdfLmxlbmd0aDsgaSArKykgeworICAgICAgICAgICAgVmVyc2lvbkluZm8gdiA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKEdFVF9TVFJJTkdfW2ldKTsKKyAgICAgICAgICAgIGlmICh2LmdldE1ham9yKCkgIT0gR0VUX1JFU1VMVF9baSA8PCAyXSB8fAorICAgICAgICAgICAgICAgIHYuZ2V0TWlub3IoKSAhPSBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDFdIHx8CisgICAgICAgICAgICAgICAgdi5nZXRNaWxsaSgpICE9IEdFVF9SRVNVTFRfWyhpIDw8IDIpICsgMl0gfHwKKyAgICAgICAgICAgICAgICB2LmdldE1pY3JvKCkgIT0gR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAzXSkgeworICAgICAgICAgICAgICAgIGVycmxuKEdFVF9TVFJJTkdfW2ldICsgIiBzaG91bGQgcmV0dXJuIG1ham9yPSIgKyAKKyAgICAgICAgICAgICAgICAgICAgICBHRVRfUkVTVUxUX1tpIDw8IDJdICsgIiBtaW5vcj0iICsgCisgICAgICAgICAgICAgICAgICAgICAgR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAxXSArICIgbWlsbGk9IiArIAorICAgICAgICAgICAgICAgICAgICAgIEdFVF9SRVNVTFRfWyhpIDw8IDIpICsgMl0gKyAiIG1pY3JvPSIgKworICAgICAgICAgICAgICAgICAgICAgIEdFVF9SRVNVTFRfWyhpIDw8IDIpICsgM10pOyAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICB2ID0gZ2V0SW5zdGFuY2UoR0VUX0lOVF9baV0pOworICAgICAgICAgICAgaWYgKHYuZ2V0TWFqb3IoKSAhPSBHRVRfUkVTVUxUX1tpIDw8IDJdIHx8CisgICAgICAgICAgICAgICAgdi5nZXRNaW5vcigpICE9IEdFVF9SRVNVTFRfWyhpIDw8IDIpICsgMV0gfHwKKyAgICAgICAgICAgICAgICB2LmdldE1pbGxpKCkgIT0gR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAyXSB8fAorICAgICAgICAgICAgICAgIHYuZ2V0TWljcm8oKSAhPSBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDNdKSB7CisgICAgICAgICAgICAgICAgZXJybG4oR0VUX1NUUklOR19baV0gKyAiIHNob3VsZCByZXR1cm4gbWFqb3I9IiArIAorICAgICAgICAgICAgICAgICAgICAgIEdFVF9SRVNVTFRfW2kgPDwgMl0gKyAiIG1pbm9yPSIgKyAKKyAgICAgICAgICAgICAgICAgICAgICBHRVRfUkVTVUxUX1soaSA8PCAyKSArIDFdICsgIiBtaWxsaT0iICsgCisgICAgICAgICAgICAgICAgICAgICAgR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAyXSArICIgbWljcm89IiArCisgICAgICAgICAgICAgICAgICAgICAgR0VUX1JFU1VMVF9bKGkgPDwgMikgKyAzXSk7ICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRvU3RyaW5nKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBUZXN0dG9TdHJpbmcoKSAKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVE9TVFJJTkdfU1RSSU5HXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYgPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShUT1NUUklOR19TVFJJTkdfW2ldKTsKKyAgICAgICAgICAgIGlmICghdi50b1N0cmluZygpLmVxdWFscyhUT1NUUklOR19SRVNVTFRfW2ldKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJ0b1N0cmluZygpIGZvciAiICsgVE9TVFJJTkdfU1RSSU5HX1tpXSArIAorICAgICAgICAgICAgICAgICAgICAgICIgc2hvdWxkIHByb2R1Y2UgIiArIFRPU1RSSU5HX1JFU1VMVF9baV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdiA9IGdldEluc3RhbmNlKFRPU1RSSU5HX0lOVF9baV0pOworICAgICAgICAgICAgaWYgKCF2LnRvU3RyaW5nKCkuZXF1YWxzKFRPU1RSSU5HX1JFU1VMVF9baV0pKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInRvU3RyaW5nKCkgZm9yICIgKyBUT1NUUklOR19JTlRfW2ldICsgCisgICAgICAgICAgICAgICAgICAgICAgIiBzaG91bGQgcHJvZHVjZSAiICsgVE9TVFJJTkdfUkVTVUxUX1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogaW50IGFycmF5IHZlcnNpb25pbmZvIGNyZWF0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0SW5zdGFuY2UoaW50IGRhdGFbXSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoZGF0YS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICByZXR1cm4gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoZGF0YVswXSk7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgcmV0dXJuIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKGRhdGFbMF0sIGRhdGFbMV0pOworICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzNdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgaW5zdGFuY2UgZGF0YQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTlNUQU5DRV9JTlZBTElEX1NUUklOR19bXSA9IHsKKyAgICAgICAgImEiLAorICAgICAgICAiLTEiLAorICAgICAgICAiLTEuMCIsCisgICAgICAgICItMS4wLjAiLAorICAgICAgICAiLTEuMC4wLjAiLAorICAgICAgICAiMC4tMSIsCisgICAgICAgICIwLjAuLTEiLAorICAgICAgICAiMC4wLjAuLTEiLAorICAgICAgICAiMjU2IiwKKyAgICAgICAgIjI1Ni4wIiwKKyAgICAgICAgIjI1Ni4wLjAiLAorICAgICAgICAiMjU2LjAuMC4wIiwKKyAgICAgICAgIjAuMjU2IiwKKyAgICAgICAgIjAuMC4yNTYiLAorICAgICAgICAiMC4wLjAuMjU2IiwKKyAgICAgICAgIjEuMi4zLjQuNSIKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJTlNUQU5DRV9WQUxJRF9TVFJJTkdfW10gPSB7CisgICAgICAgICIyNTUiLAorICAgICAgICAiMjU1LjI1NSIsCisgICAgICAgICIyNTUuMjU1LjI1NSIsCisgICAgICAgICIyNTUuMjU1LjI1NS4yNTUiCisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5TVEFOQ0VfSU5WQUxJRF9JTlRfW11bXSA9IHsKKyAgICAgICAgey0xfSwKKyAgICAgICAgey0xLCAwfSwKKyAgICAgICAgey0xLCAwLCAwfSwKKyAgICAgICAgey0xLCAwLCAwLCAwfSwKKyAgICAgICAgezAsIC0xfSwKKyAgICAgICAgezAsIDAsIC0xfSwKKyAgICAgICAgezAsIDAsIDAsIC0xfSwKKyAgICAgICAgezI1Nn0sCisgICAgICAgIHsyNTYsIDB9LAorICAgICAgICB7MjU2LCAwLCAwfSwKKyAgICAgICAgezI1NiwgMCwgMCwgMH0sCisgICAgICAgIHswLCAyNTZ9LAorICAgICAgICB7MCwgMCwgMjU2fSwKKyAgICAgICAgezAsIDAsIDAsIDI1Nn0sCisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5TVEFOQ0VfVkFMSURfSU5UX1tdW10gPSB7CisgICAgICAgIHsyNTV9LAorICAgICAgICB7MjU1LCAyNTV9LAorICAgICAgICB7MjU1LCAyNTUsIDI1NX0sCisgICAgICAgIHsyNTUsIDI1NSwgMjU1LCAyNTV9CisgICAgfTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IGNvbXBhcmUgZGF0YQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT01QQVJFX05PVF9FUVVBTF9TVFJJTkdfW10gPSB7CisgICAgICAgICIyLjAuMC4wIiwgIjMuMC4wLjAiCisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFSRV9OT1RfRVFVQUxfSU5UX1tdW10gPSB7CisgICAgICAgIHsyLCAwLCAwLCAwfSwgezMsIDAsIDAsIDB9CisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09NUEFSRV9FUVVBTF9TVFJJTkdfW10gPSB7CisgICAgICAgICIyLjAuMC4wIiwgIjIuMC4wIiwgIjIuMCIsICIyIgorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTVBBUkVfRVFVQUxfSU5UX1tdW10gPSB7CisgICAgICAgIHsyfSwgezIsIDB9LCB7MiwgMCwgMH0sIHsyLCAwLCAwLCAwfSAgICAKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT01QQVJFX0xFU1NfW10gPSB7CisgICAgICAgICIwIiwgIjAuMC4wLjEiLCAiMC4wLjEiLCAiMC4xIiwgIjEiLCAiMiIsICIyLjEiLCAiMi4xLjEiLCAiMi4xLjEuMSIKKyAgICB9OworICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgR2V0dGVyIGRhdGEKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgR0VUX1NUUklOR19bXSA9IHsKKyAgICAgICAgIjAiLAorICAgICAgICAiMS4xIiwKKyAgICAgICAgIjIuMS4yNTUiLAorICAgICAgICAiMy4xLjI1NS4xMDAiCisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR0VUX0lOVF9bXVtdID0geworICAgICAgICB7MH0sCisgICAgICAgIHsxLCAxfSwKKyAgICAgICAgezIsIDEsIDI1NX0sCisgICAgICAgIHszLCAxLCAyNTUsIDEwMH0KKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHRVRfUkVTVUxUX1tdID0geworICAgICAgICAwLCAwLCAwLCAwLAorICAgICAgICAxLCAxLCAwLCAwLAorICAgICAgICAyLCAxLCAyNTUsIDAsCisgICAgICAgIDMsIDEsIDI1NSwgMTAwCisgICAgfTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0IHRvU3RyaW5nIGRhdGEKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVE9TVFJJTkdfU1RSSU5HX1tdID0geworICAgICAgICAiMCIsCisgICAgICAgICIxLjEiLAorICAgICAgICAiMi4xLjI1NSIsCisgICAgICAgICIzLjEuMjU1LjEwMCIgICAgCisgICAgfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9TVFJJTkdfSU5UX1tdW10gPSB7CisgICAgICAgIHswfSwKKyAgICAgICAgezEsIDF9LAorICAgICAgICB7MiwgMSwgMjU1fSwKKyAgICAgICAgezMsIDEsIDI1NSwgMTAwfQorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRPU1RSSU5HX1JFU1VMVF9bXSA9IHsKKyAgICAgICAgIjAuMC4wLjAiLAorICAgICAgICAiMS4xLjAuMCIsCisgICAgICAgICIyLjEuMjU1LjAiLAorICAgICAgICAiMy4xLjI1NS4xMDAiICAgIAorICAgIH07Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVmlzaXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvVmlzaXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiY2RhMGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9WaXNpdG9yLmphdmEKQEAgLTAsMCArMSwxMzEgQEAKKworLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIFZpc2l0b3IgeworICAgIAorICAgIHB1YmxpYyB2b2lkIGRvQXQoT2JqZWN0IGl0ZW0pIHsKKyAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICBkb0F0KChDb2xsZWN0aW9uKSBpdGVtKTsKKyAgICAgICAgfSBlbHNlIGlmIChpdGVtIGluc3RhbmNlb2YgTWFwKSB7CisgICAgICAgICAgICBkb0F0KChNYXApIGl0ZW0pOworICAgICAgICB9IGVsc2UgaWYgKGl0ZW0gaW5zdGFuY2VvZiBPYmplY3RbXSkgeworICAgICAgICAgICAgZG9BdCgoT2JqZWN0W10pIGl0ZW0pOworICAgICAgICB9IGVsc2UgaWYgKGl0ZW0gaW5zdGFuY2VvZiBVbmljb2RlU2V0KSB7CisgICAgICAgICAgICBkb0F0KChVbmljb2RlU2V0KSBpdGVtKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvU2ltcGxlQXQoaXRlbSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGNvdW50KE9iamVjdCBpdGVtKSB7CisgICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQ29sbGVjdGlvbikgeworICAgICAgICAgICAgcmV0dXJuICgoQ29sbGVjdGlvbikgaXRlbSkuc2l6ZSgpOworICAgICAgICB9IGVsc2UgaWYgKGl0ZW0gaW5zdGFuY2VvZiBNYXApIHsKKyAgICAgICAgICAgIHJldHVybiAoKE1hcCkgaXRlbSkuc2l6ZSgpOworICAgICAgICB9IGVsc2UgaWYgKGl0ZW0gaW5zdGFuY2VvZiBPYmplY3RbXSkgeworICAgICAgICAgICAgcmV0dXJuICgoT2JqZWN0W10pIGl0ZW0pLmxlbmd0aDsKKyAgICAgICAgfSBlbHNlIGlmIChpdGVtIGluc3RhbmNlb2YgVW5pY29kZVNldCkgeworICAgICAgICAgICAgcmV0dXJuICgoVW5pY29kZVNldCkgaXRlbSkuc2l6ZSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBib3hpbmcKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBkb0F0KGludCBvKSB7CisgICAgICAgIGRvU2ltcGxlQXQobmV3IEludGVnZXIobykpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBkb0F0KGRvdWJsZSBvKSB7CisgICAgICAgIGRvU2ltcGxlQXQobmV3IERvdWJsZShvKSk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGRvQXQoY2hhciBvKSB7CisgICAgICAgIGRvU2ltcGxlQXQobmV3IENoYXJhY3RlcihvKSk7CisgICAgfQorICAgIAorICAgIC8vIGZvciBzdWJjbGFzc2luZworICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGRvQXQgKENvbGxlY3Rpb24gYykgeworICAgICAgICBpZiAoYy5zaXplKCkgPT0gMCkgZG9CZWZvcmUoYywgbnVsbCk7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOworICAgICAgICBib29sZWFuIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgT2JqZWN0IGxhc3QgPSBudWxsOworICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBPYmplY3QgaXRlbSA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgIGlmIChmaXJzdCkgeworICAgICAgICAgICAgICAgIGRvQmVmb3JlKGMsIGl0ZW0pOworICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRvQmV0d2VlbihjLCBsYXN0LCBpdGVtKTsKKyAgICAgICAgICAgIH0gICAgCisgICAgICAgICAgICBkb0F0KGxhc3Q9aXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgZG9BZnRlcihjLCBsYXN0KTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBkb0F0IChNYXAgYykgeworICAgICAgICBkb0F0KGMuZW50cnlTZXQoKSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgZG9BdCAoVW5pY29kZVNldCBjKSB7CisgICAgICAgIGlmIChjLnNpemUoKSA9PSAwKSBkb0JlZm9yZShjLCBudWxsKTsKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihjKTsKKyAgICAgICAgYm9vbGVhbiBmaXJzdCA9IHRydWU7CisgICAgICAgIE9iamVjdCBsYXN0ID0gbnVsbDsKKyAgICAgICAgT2JqZWN0IGl0ZW07CisgICAgICAgIENvZGVQb2ludFJhbmdlIGNwcjAgPSBuZXcgQ29kZVBvaW50UmFuZ2UoKTsKKyAgICAgICAgQ29kZVBvaW50UmFuZ2UgY3ByMSA9IG5ldyBDb2RlUG9pbnRSYW5nZSgpOworICAgICAgICBDb2RlUG9pbnRSYW5nZSBjcHI7CisgICAgICAgIAorICAgICAgICB3aGlsZShpdC5uZXh0UmFuZ2UoKSkgeworICAgICAgICAgICAgaWYgKGl0LmNvZGVwb2ludCA9PSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKSB7CisgICAgICAgICAgICAgICAgaXRlbSA9IGl0LnN0cmluZzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY3ByID0gbGFzdCA9PSBjcHIwID8gY3ByMSA6IGNwcjA7ICAgLy8gbWFrZSBzdXJlIHdlIGRvbid0IG92ZXJyaWRlIGxhc3QKKyAgICAgICAgICAgICAgICBjcHIuY29kZXBvaW50ID0gaXQuY29kZXBvaW50OworICAgICAgICAgICAgICAgIGNwci5jb2RlcG9pbnRFbmQgPSBpdC5jb2RlcG9pbnRFbmQ7CisgICAgICAgICAgICAgICAgaXRlbSA9IGNwcjsKKyAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCFmaXJzdCkgeworICAgICAgICAgICAgICAgIGRvQmVmb3JlKGMsIGl0ZW0pOworICAgICAgICAgICAgICAgIGZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZG9CZXR3ZWVuKGMsIGxhc3QsIGl0ZW0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZG9BdChsYXN0ID0gaXRlbSk7CisgICAgICAgIH0KKyAgICAgICAgZG9BZnRlcihjLCBsYXN0KTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgZG9BdCAoT2JqZWN0W10gYykgeworICAgICAgICBkb0JlZm9yZShjLCBjLmxlbmd0aCA9PSAwID8gbnVsbCA6IGNbMF0pOworICAgICAgICBPYmplY3QgbGFzdCA9IG51bGw7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGkgIT0gMCkgZG9CZXR3ZWVuKGMsIGxhc3QsIGNbaV0pOworICAgICAgICAgICAgZG9BdChsYXN0ID0gY1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgZG9BZnRlcihjLCBsYXN0KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBDb2RlUG9pbnRSYW5nZXsKKyAgICAgICAgcHVibGljIGludCBjb2RlcG9pbnQsIGNvZGVwb2ludEVuZDsKKyAgICB9CisgICAgCisgICAgLy8gPT09PT0gTVVTVCBCRSBPVkVSUklERU4gPT09PT0KKyAgICAKKyAgICBhYnN0cmFjdCBwcm90ZWN0ZWQgdm9pZCBkb0JlZm9yZShPYmplY3QgY29udGFpbmVyLCBPYmplY3QgaXRlbSk7CisgICAgYWJzdHJhY3QgcHJvdGVjdGVkIHZvaWQgZG9CZXR3ZWVuKE9iamVjdCBjb250YWluZXIsIE9iamVjdCBsYXN0SXRlbSwgT2JqZWN0IG5leHRJdGVtKTsKKyAgICBhYnN0cmFjdCBwcm90ZWN0ZWQgdm9pZCBkb0FmdGVyKE9iamVjdCBjb250YWluZXIsIE9iamVjdCBpdGVtKTsgICAKKyAgICBhYnN0cmFjdCBwcm90ZWN0ZWQgdm9pZCBkb1NpbXBsZUF0KE9iamVjdCBvKTsKKyAgICAKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvdXRpbC9YRXF1aXZhbGVuY2VDbGFzcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvWEVxdWl2YWxlbmNlQ2xhc3MuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTBiZGEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvWEVxdWl2YWxlbmNlQ2xhc3MuamF2YQpAQCAtMCwwICsxLDI2OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRlc3QudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKK3B1YmxpYyBjbGFzcyBYRXF1aXZhbGVuY2VDbGFzcyB7CisJCisJLy8gcXVpY2sgdGVzdAorCXN0YXRpYyBwdWJsaWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKwkJWEVxdWl2YWxlbmNlQ2xhc3MgZm9vMSA9IG5ldyBYRXF1aXZhbGVuY2VDbGFzcygiTk9ORSIpOworCQlTdHJpbmdbXVtdIHRlc3RzID0ge3siYiIsImExIn0sIHsiYiIsICJjIn0sIHsiYTEiLCAiYyJ9LCB7ImQiLCAiZSJ9LCB7ImUiLCAiZiJ9LCB7ImMiLCAiZCJ9fTsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkgeworCQkJU3lzdGVtLm91dC5wcmludGxuKCJBZGRpbmc6ICIgKyB0ZXN0c1tpXVswXSArICIsICIgKyB0ZXN0c1tpXVsxXSk7CisJCQlmb28xLmFkZCh0ZXN0c1tpXVswXSwgdGVzdHNbaV1bMV0sIG5ldyBJbnRlZ2VyKGkpKTsKKwkJCWZvciAoSXRlcmF0b3IgaXQgPSBmb28xLmdldEV4cGxpY2l0SXRlbXMoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisJCQkJT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisJCQkJU3lzdGVtLm91dC5wcmludGxuKCJcdCIgKyBpdGVtICArICI7XHQiICsgZm9vMS5nZXRTYW1wbGUoaXRlbSkgKyAiO1x0IiArIGZvbzEuZ2V0RXF1aXZhbGVuY2VzKGl0ZW0pKTsKKwkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlx0XHQiICsgZm9vMS5nZXRSZWFzb25zKGl0ZW0sIGZvbzEuZ2V0U2FtcGxlKGl0ZW0pKSk7CisJCQl9CisJCX0KKwl9CisJCisJcHJpdmF0ZSBNYXAgdG9QYXJ0aXRpb25TZXQgPSBuZXcgSGFzaE1hcCgpOworCXByaXZhdGUgTWFwIG9ial9vYmpfcmVhc29ucyA9IG5ldyBIYXNoTWFwKCk7CisJcHJpdmF0ZSBPYmplY3QgZGVmYXVsdFJlYXNvbjsKKwkKKwkvKioKKwkgKiBlbXB0eSwgYXMgaWYganVzdCBjcmVhdGVkCisJICovCisJcHVibGljIFhFcXVpdmFsZW5jZUNsYXNzIGNsZWFyKE9iamVjdCBkZWZhdWx0UmVhc29uKSB7CisJCXRvUGFydGl0aW9uU2V0LmNsZWFyKCk7CisJCW9ial9vYmpfcmVhc29ucy5jbGVhcigpOworCQl0aGlzLmRlZmF1bHRSZWFzb24gPSBkZWZhdWx0UmVhc29uOworCQlyZXR1cm4gdGhpczsKKwl9CisJCisJLyoqCisJICogQ3JlYXRlIGNsYXNzIHdpdGggY29tcGFyYXRvciwgYW5kIGRlZmF1bHQgcmVhc29uLgorCSAqCisJICovCisJcHVibGljIFhFcXVpdmFsZW5jZUNsYXNzKE9iamVjdCBkZWZhdWx0UmVhc29uKSB7CisJCXRoaXMuZGVmYXVsdFJlYXNvbiA9IGRlZmF1bHRSZWFzb247CisJfQorCQorCS8qKgorCSAqIEFkZCB0d28gZXF1aXZhbGVudCBpdGVtcywgd2l0aCBOT19SRUFTT04gZm9yIHRoZSByZWFzb24uCisJICovCisJcHVibGljIFhFcXVpdmFsZW5jZUNsYXNzIGFkZChPYmplY3QgYSwgT2JqZWN0IGIpIHsKKwkJcmV0dXJuIGFkZChhLGIsbnVsbCk7CisJfQorCQorCS8qKgorCSAqIEFkZCB0d28gZXF1aXZhbGVudCBpdGVtcywgcGx1cyBhIHJlYXNvbi4gVGhlIHJlYXNvbiBpcyBvbmx5IHVzZWQgZm9yIGdldFJlYXNvbnMKKwkgKi8KKwlwdWJsaWMgWEVxdWl2YWxlbmNlQ2xhc3MgYWRkKE9iamVjdCBhLCBPYmplY3QgYiwgT2JqZWN0IHJlYXNvbikgeworCQlpZiAoYS5lcXVhbHMoYikpIHJldHVybiB0aGlzOworCQlpZiAocmVhc29uID09IG51bGwpIHJlYXNvbiA9IGRlZmF1bHRSZWFzb247CisJCWFkZFJlYXNvbihhLGIscmVhc29uKTsKKwkJYWRkUmVhc29uKGIsYSxyZWFzb24pOworCQlTZXQgYVBhcnRpdGlvblNldCA9IChTZXQpIHRvUGFydGl0aW9uU2V0LmdldChhKTsKKwkJU2V0IGJQYXJ0aXRpb25TZXQgPSAoU2V0KSB0b1BhcnRpdGlvblNldC5nZXQoYik7CisJCWlmIChhUGFydGl0aW9uU2V0ID09IG51bGwpIHsKKwkJCWlmIChiUGFydGl0aW9uU2V0ID09IG51bGwpIHsgLy8gYm90aCBudWxsLCBzZXQgdXAgYlNldAorCQkJCWJQYXJ0aXRpb25TZXQgPSBuZXcgSGFzaFNldCgpOworCQkJCWJQYXJ0aXRpb25TZXQuYWRkKGIpOworCQkJCXRvUGFydGl0aW9uU2V0LnB1dChiLCBiUGFydGl0aW9uU2V0KTsJCQkJCisJCQl9CisJCQliUGFydGl0aW9uU2V0LmFkZChhKTsKKwkJCXRvUGFydGl0aW9uU2V0LnB1dChhLCBiUGFydGl0aW9uU2V0KTsJCQkJCisJCX0gZWxzZSBpZiAoYlBhcnRpdGlvblNldCA9PSBudWxsKSB7IC8vIGFTZXQgaXMgbm90IG51bGwsIGJTZXQgbnVsbAorCQkJYVBhcnRpdGlvblNldC5hZGQoYik7CisJCQl0b1BhcnRpdGlvblNldC5wdXQoYiwgYVBhcnRpdGlvblNldCk7CQkJCQkJCQorCQl9IGVsc2UgaWYgKGFQYXJ0aXRpb25TZXQgIT0gYlBhcnRpdGlvblNldCkgeyAgLy8gYm90aCBub24tbnVsbCwgbm90IGVxdWFsLCBtZXJnZS4gIEVxdWFsaXR5IGNoZWNrIG9rIGhlcmUKKwkJCWFQYXJ0aXRpb25TZXQuYWRkQWxsKGJQYXJ0aXRpb25TZXQpOworCQkJLy8gcmVtYXAgZXZlcnkgeCB0aGF0IGhhZCB4ID0+IGJQYXJ0aXRpb25TZXQKKwkJCWZvciAoSXRlcmF0b3IgaXQgPSBiUGFydGl0aW9uU2V0Lml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCQl0b1BhcnRpdGlvblNldC5wdXQoaXQubmV4dCgpLCBhUGFydGl0aW9uU2V0KTsJCisJCQl9CisJCX0KKwkJcmV0dXJuIHRoaXM7CisJfQorCQorCS8qKgorCSAqIEFkZCBhbGwgdGhlIGluZm9ybWF0aW9uIGZyb20gdGhlIG90aGVyIGNsYXNzCisJICoKKwkgKi8KKwlwdWJsaWMgWEVxdWl2YWxlbmNlQ2xhc3MgYWRkQWxsKFhFcXVpdmFsZW5jZUNsYXNzIG90aGVyKSB7CisJCS8vIEZvciBub3csIGRvZXMgdGhlIHNpbXBsZSwgbm90IG9wdGltaXplZCB2ZXJzaW9uCisJCWZvciAoSXRlcmF0b3IgaXQgPSBvdGhlci5vYmpfb2JqX3JlYXNvbnMua2V5U2V0KCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJT2JqZWN0IGEgPSBpdC5uZXh0KCk7CisJCQlNYXAgb2JqX3JlYXNvbnMgPSAoTWFwKSBvdGhlci5vYmpfb2JqX3JlYXNvbnMuZ2V0KGEpOworCQkJZm9yIChJdGVyYXRvciBpdDIgPSBvYmpfcmVhc29ucy5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdDIuaGFzTmV4dCgpOykgeworCQkJCU9iamVjdCBiID0gaXQyLm5leHQoKTsKKwkJCQlTZXQgcmVhc29ucyA9IChTZXQpIG9ial9yZWFzb25zLmdldChiKTsKKwkJCQlmb3IgKEl0ZXJhdG9yIGl0MyA9IHJlYXNvbnMuaXRlcmF0b3IoKTsgaXQzLmhhc05leHQoKTspIHsKKwkJCQkJT2JqZWN0IHJlYXNvbiA9IGl0My5uZXh0KCk7CisJCQkJCWFkZChhLCBiLCByZWFzb24pOworCQkJCX0KKwkJCX0KKwkJfQorCQlyZXR1cm4gdGhpczsKKwl9CisJCisJLyoqCisJICogCisJICovCisJcHJpdmF0ZSB2b2lkIGFkZFJlYXNvbihPYmplY3QgYSwgT2JqZWN0IGIsIE9iamVjdCByZWFzb24pIHsKKwkJTWFwIG9ial9yZWFzb25zID0gKE1hcCkgb2JqX29ial9yZWFzb25zLmdldChhKTsKKwkJaWYgKG9ial9yZWFzb25zID09IG51bGwpIG9ial9vYmpfcmVhc29ucy5wdXQoYSwgb2JqX3JlYXNvbnMgPSBuZXcgSGFzaE1hcCgpKTsKKwkJU2V0IHJlYXNvbnMgPSAoU2V0KSBvYmpfcmVhc29ucy5nZXQoYik7CisJCWlmIChyZWFzb25zID09IG51bGwpIG9ial9yZWFzb25zLnB1dChiLCByZWFzb25zID0gbmV3IEhhc2hTZXQoKSk7CisJCXJlYXNvbnMuYWRkKHJlYXNvbik7CisJfQorCisJLyoqCisJICogUmV0dXJucyBhIHNldCBvZiBhbGwgdGhlIGV4cGxpY2l0IGl0ZW1zIGluIHRoZSBlcXVpdmFsZW5jZSBzZXQuIChBbnkgbm9uLWV4cGxpY2l0IGl0ZW1zIG9ubHkKKwkgKiBoYXZlIHRoZW1zZWx2ZXMgYXMgZXF1aXZhbGVuY2VzLikKKwkgKgorCSAqLworCXB1YmxpYyBTZXQgZ2V0RXhwbGljaXRJdGVtcygpIHsKKwkJcmV0dXJuIENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldCh0b1BhcnRpdGlvblNldC5rZXlTZXQoKSk7CisJfQorCQorCS8qKgorCSAqIFJldHVybnMgYW4gdW5tb2RpZmlhYmxlIHNldCBvZiBhbGwgdGhlIGVxdWl2YWxlbnQgb2JqZWN0cworCSAqCisJICovCisJcHVibGljIFNldCBnZXRFcXVpdmFsZW5jZXMoT2JqZWN0IGEpIHsKKwkJU2V0IGFQYXJ0aXRpb25TZXQgPSAoU2V0KSB0b1BhcnRpdGlvblNldC5nZXQoYSk7CisJCWlmIChhUGFydGl0aW9uU2V0ID09IG51bGwpIHsgLy8gbWFudWZhY3R1cmUgYW4gZXF1aXZhbGVuY2UKKwkJCWFQYXJ0aXRpb25TZXQgPSBuZXcgSGFzaFNldCgpOworCQkJYVBhcnRpdGlvblNldC5hZGQoYSk7IAorCQl9CisJCXJldHVybiBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVTZXQoYVBhcnRpdGlvblNldCk7CisJfQorCQorCXB1YmxpYyBTZXQgZ2V0RXF1aXZhbGVuY2VTZXRzKCkgeworCQlTZXQgcmVzdWx0ID0gbmV3IEhhc2hTZXQoKTsKKwkJZm9yIChJdGVyYXRvciBpdCA9IHRvUGFydGl0aW9uU2V0LmtleVNldCgpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCU9iamVjdCBpdGVtID0gaXQubmV4dCgpOworCQkJU2V0IHBhcnRpdGlvbiA9IChTZXQpIHRvUGFydGl0aW9uU2V0LmdldChpdGVtKTsKKwkJCXJlc3VsdC5hZGQoQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU2V0KHBhcnRpdGlvbikpOworCQl9CisJCXJldHVybiByZXN1bHQ7CQorCX0KKwkvKioKKwkgKiByZXR1cm5zIHRydWUgaWZmIGEgaXMgZXF1aXZhbGVudCB0byBiIChvciBhLmVxdWFscyBiKQorCSAqCisJICovCisJcHVibGljIGJvb2xlYW4gaXNFcXVpdmFsZW50KE9iamVjdCBhLCBPYmplY3QgYikgeworCQlpZiAoYS5lcXVhbHMoYikpIHJldHVybiB0cnVlOworCQlTZXQgYVBhcnRpdGlvblNldCA9IChTZXQpIHRvUGFydGl0aW9uU2V0LmdldChhKTsKKwkJaWYgKGFQYXJ0aXRpb25TZXQgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworCQlyZXR1cm4gYVBhcnRpdGlvblNldC5jb250YWlucyhiKTsKKwl9CisJCisJLyoqCisJICogR2V0cyBhIHNhbXBsZSBvYmplY3QgaW4gdGhlIGVxdWl2YWxlbmNlIHNldCBmb3IgYS4gCisJICoKKwkgKi8KKwlwdWJsaWMgT2JqZWN0IGdldFNhbXBsZShPYmplY3QgYSkgeworCQlTZXQgYVBhcnRpdGlvblNldCA9IChTZXQpIHRvUGFydGl0aW9uU2V0LmdldChhKTsKKwkJaWYgKGFQYXJ0aXRpb25TZXQgPT0gbnVsbCkgcmV0dXJuIGE7IC8vIHNpbmdsZXRvbgorCQlyZXR1cm4gYVBhcnRpdGlvblNldC5pdGVyYXRvcigpLm5leHQoKTsKKwl9CisJCisJcHVibGljIGludGVyZmFjZSBGaWx0ZXIgeworCQlib29sZWFuIG1hdGNoZXMoT2JqZWN0IG8pOworCX0KKwkKKwlwdWJsaWMgT2JqZWN0IGdldFNhbXBsZShPYmplY3QgYSwgRmlsdGVyIGYpIHsKKwkJU2V0IGFQYXJ0aXRpb25TZXQgPSAoU2V0KSB0b1BhcnRpdGlvblNldC5nZXQoYSk7CisJCWlmIChhUGFydGl0aW9uU2V0ID09IG51bGwpIHJldHVybiBhOyAvLyBzaW5nbGV0b24KKwkJZm9yIChJdGVyYXRvciBpdCA9IGFQYXJ0aXRpb25TZXQuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJT2JqZWN0IG9iaiA9IGl0Lm5leHQoKTsKKwkJCWlmIChmLm1hdGNoZXMob2JqKSkgcmV0dXJuIG9iajsKKwkJfQorCQlyZXR1cm4gYTsKKwl9CisKKwkvKioKKwkgKiBnZXRzIHRoZSBzZXQgb2YgYWxsIHRoZSBzYW1wbGVzLCBvbmUgZnJvbSBlYWNoIGVxdWl2YWxlbmNlIGNsYXNzLiAKKwkgKgorCSAqLworCXB1YmxpYyBTZXQgZ2V0U2FtcGxlcygpIHsKKwkJU2V0IHNlZW5BbHJlYWR5ID0gbmV3IEhhc2hTZXQoKTsKKwkJU2V0IHJlc3VsdCA9IG5ldyBIYXNoU2V0KCk7CisJCWZvciAoSXRlcmF0b3IgaXQgPSB0b1BhcnRpdGlvblNldC5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisJCQlPYmplY3QgaXRlbSA9IGl0Lm5leHQoKTsKKwkJCWlmIChzZWVuQWxyZWFkeS5jb250YWlucyhpdGVtKSkgY29udGludWU7CisJCQlTZXQgcGFydGl0aW9uID0gKFNldCkgdG9QYXJ0aXRpb25TZXQuZ2V0KGl0ZW0pOworCQkJcmVzdWx0LmFkZChwYXJ0aXRpb24uaXRlcmF0b3IoKS5uZXh0KCkpOworCQkJc2VlbkFscmVhZHkuYWRkQWxsKHBhcnRpdGlvbik7CisJCX0KKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisJCisKKwkvKioKKwkgKiBSZXR1cm5zIGEgbGlzdCBvZiBsaXN0cy4gRWFjaCBzdWJsaXN0IGlzIGluIHRoZSBmb3JtIFtyZWFzb25zLCBvYmosIHJlYXNvbnMsIG9iaiwuLi4sIHJlYXNvbnNdCisJICogd2hlcmUgZWFjaCByZWFzb25zIGlzIGEgc2V0IG9mIHJlYXNvbnMgdG8gZ28gZnJvbSBvbmUgb2JqIHRvIHRoZSBuZXh0Ljxicj4KKwkgKiBSZXR1cm5zIG51bGwgaWYgdGhlcmUgaXMgbm8gY29ubmVjdGlvbi4KKwkgKi8KKwlwdWJsaWMgTGlzdCBnZXRSZWFzb25zKE9iamVjdCBhLCBPYmplY3QgYikgeworCQkvLyB1c2UgZHVtYiBhbGdvcml0aG0gZm9yIGdldHRpbmcgc2hvcnRlc3QgcGF0aAorCQkvLyBkb24ndCBib3RoZXIgd2l0aCBvcHRpbWl6YXRpb24KKwkJU2V0IGFQYXJ0aXRpb25TZXQgPSAoU2V0KSB0b1BhcnRpdGlvblNldC5nZXQoYSk7CisJCVNldCBiUGFydGl0aW9uU2V0ID0gKFNldCkgdG9QYXJ0aXRpb25TZXQuZ2V0KGIpOworCQkKKwkJLy8gc2VlIGlmIHRoZXkgY29ubmVjdAorCQlpZiAoYVBhcnRpdGlvblNldCA9PSBudWxsIHx8IGJQYXJ0aXRpb25TZXQgPT0gbnVsbCB8fCBhUGFydGl0aW9uU2V0ICE9IGJQYXJ0aXRpb25TZXQgfHwgYS5lcXVhbHMoYikpIHJldHVybiBudWxsOworCQkKKwkJQXJyYXlMaXN0IGxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisJCWxpc3QuYWRkKGEpOworCQlBcnJheUxpc3QgbGlzdHMgPSBuZXcgQXJyYXlMaXN0KCk7CisJCWxpc3RzLmFkZChsaXN0KTsKKworCQkvLyB0aGlzIHdpbGwgY29udGFpbiB0aGUgcmVzdWx0cworCQlMaXN0IGZvdW5kTGlzdHMgPSBuZXcgQXJyYXlMaXN0KCk7CisJCVNldCBzYXdMYXN0VGltZSA9IG5ldyBIYXNoU2V0KCk7CisJCXNhd0xhc3RUaW1lLmFkZChhKTsKKwkJCisJCS8vIGVhY2ggdGltZSwgd2UgZXh0ZW5kIHRoZSBsaXN0cyBieSBvbmUgKGFkZGluZyBtdWx0aXBsZSBvdGhlciBsaXN0cykKKwkJd2hpbGUgKGZvdW5kTGlzdHMuc2l6ZSgpID09IDApIHsKKwkJCUFycmF5TGlzdCBleHRlbmRlZExpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisJCQlTZXQgc2F3VGhpc1RpbWUgPSBuZXcgSGFzaFNldCgpOworCQkJZm9yIChJdGVyYXRvciBpdCA9IGxpc3RzLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCQlBcnJheUxpc3QgbGlzdGEgPSAoQXJyYXlMaXN0KSBpdC5uZXh0KCk7CisJCQkJT2JqZWN0IGxhc3QgPSBsaXN0YS5nZXQobGlzdGEuc2l6ZSgpLTEpOworCQkJCU1hcCBvYmpfcmVhc29ucyA9IChNYXApIG9ial9vYmpfcmVhc29ucy5nZXQobGFzdCk7CisJCQkJZm9yIChJdGVyYXRvciBpdDIgPSBvYmpfcmVhc29ucy5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdDIuaGFzTmV4dCgpOykgeworCQkJCQlPYmplY3QgaXRlbSA9IGl0Mi5uZXh0KCk7CisJCQkJCWlmIChzYXdMYXN0VGltZS5jb250YWlucyhpdGVtKSkgeworCQkJCQkJY29udGludWU7IC8vIHNraXAgc2luY2Ugd2UgaGF2ZSBzaG9ydGVyCisJCQkJCX0KKwkJCQkJc2F3VGhpc1RpbWUuYWRkKGl0ZW0pOworCQkJCQlTZXQgcmVhc29ucyA9IChTZXQpIG9ial9yZWFzb25zLmdldChpdGVtKTsKKwkJCQkJQXJyYXlMaXN0IGxpc3RhMiA9IChBcnJheUxpc3QpbGlzdGEuY2xvbmUoKTsKKwkJCQkJbGlzdGEyLmFkZChyZWFzb25zKTsKKwkJCQkJbGlzdGEyLmFkZChpdGVtKTsKKwkJCQkJZXh0ZW5kZWRMaXN0LmFkZChsaXN0YTIpOworCQkJCQlpZiAoaXRlbS5lcXVhbHMoYikpIHsKKwkJCQkJCS8vIHJlbW92ZSBmaXJzdCBhbmQgbGFzdAorCQkJCQkJQXJyYXlMaXN0IGZvdW5kID0gKEFycmF5TGlzdClsaXN0YTIuY2xvbmUoKTsKKwkJCQkJCWZvdW5kLnJlbW92ZSgwKTsKKwkJCQkJCWZvdW5kLnJlbW92ZShmb3VuZC5zaXplKCktMSk7CisJCQkJCQlmb3VuZExpc3RzLmFkZChmb3VuZCk7CisJCQkJCX0KKwkJCQl9CisJCQl9CisJCQlsaXN0cyA9IGV4dGVuZGVkTGlzdDsKKwkJCXNhd0xhc3RUaW1lLmFkZEFsbChzYXdUaGlzVGltZSk7CisJCX0KKwkJcmV0dXJuIGZvdW5kTGlzdHM7CisJfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1hFcXVpdmFsZW5jZU1hcC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvWEVxdWl2YWxlbmNlTWFwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTljMGM0ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL1hFcXVpdmFsZW5jZU1hcC5qYXZhCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50ZXN0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKKy8qKgorICogRXZlcnl0aGluZyB0aGF0IG1hcHMgdG8gdGhlIHNhbWUgdmFsdWUgaXMgcGFydCBvZiB0aGUgc2FtZSBlcXVpdmFsZW5jZSBjbGFzcworICogQGF1dGhvciBkYXZpcworICoKKyAqLworcHVibGljIGNsYXNzIFhFcXVpdmFsZW5jZU1hcCB7CisJSGFzaE1hcCBzb3VyY2VfdGFyZ2V0ID0gbmV3IEhhc2hNYXAoKTsKKwlIYXNoTWFwIHRhcmdldF9zb3VyY2VTZXQgPSBuZXcgSGFzaE1hcCgpOworCUhhc2hNYXAgc291cmNlX1NldCA9IG5ldyBIYXNoTWFwKCk7CisJcHVibGljIFhFcXVpdmFsZW5jZU1hcCBjbGVhcigpIHsKKwkJc291cmNlX3RhcmdldC5jbGVhcigpOworCQl0YXJnZXRfc291cmNlU2V0LmNsZWFyKCk7CisJCXNvdXJjZV9TZXQuY2xlYXIoKTsKKwkJcmV0dXJuIHRoaXM7CisJfQorCXB1YmxpYyBYRXF1aXZhbGVuY2VNYXAgYWRkKE9iamVjdCBzb3VyY2UsIE9iamVjdCB0YXJnZXQpIHsKKwkJT2JqZWN0IG90aGVyVGFyZ2V0ID0gc291cmNlX3RhcmdldC5nZXQoc291cmNlKTsKKwkJaWYgKG90aGVyVGFyZ2V0ICE9IG51bGwpIHsKKwkJCWlmIChvdGhlclRhcmdldC5lcXVhbHModGFyZ2V0KSkgcmV0dXJuIHRoaXM7CisJCQl0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJTYW1lIHNvdXJjZSBtYXBwaW5nIHRvIGRpZmZlcmVudCB0YXJnZXRzOiAiCisJCQkJCSsgc291cmNlICsgIiA9PiAiICsgb3RoZXJUYXJnZXQgKyAiICYgIiArIHRhcmdldCk7CisJCX0KKwkJc291cmNlX3RhcmdldC5wdXQoc291cmNlLCB0YXJnZXQpOworCQlTZXQgcyA9IChTZXQpIHRhcmdldF9zb3VyY2VTZXQuZ2V0KHRhcmdldCk7CisJCWlmIChzID09IG51bGwpIHRhcmdldF9zb3VyY2VTZXQucHV0KHRhcmdldCwgcyA9IG5ldyBIYXNoU2V0KCkpOworCQlzLmFkZChzb3VyY2UpOworCQlzb3VyY2VfU2V0LnB1dChzb3VyY2UsIHMpOworCQlyZXR1cm4gdGhpczsKKwl9CisJcHVibGljIFNldCBnZXRFcXVpdmFsZW5jZXMgKE9iamVjdCBzb3VyY2UpIHsKKwkJU2V0IHMgPSAoU2V0KSBzb3VyY2VfU2V0LmdldChzb3VyY2UpOworCQlpZiAocyA9PSBudWxsKSByZXR1cm4gbnVsbDsKKwkJcmV0dXJuIENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChzKTsKKwl9CisJcHVibGljIGJvb2xlYW4gYXJlRXF1aXZhbGVudCAoT2JqZWN0IHNvdXJjZTEsIE9iamVjdCBzb3VyY2UyKSB7CisJCVNldCBzID0gKFNldCkgc291cmNlX1NldC5nZXQoc291cmNlMSk7CisJCWlmIChzID09IG51bGwpIHJldHVybiBmYWxzZTsKKwkJcmV0dXJuIHMuY29udGFpbnMoc291cmNlMik7CisJfQorCXB1YmxpYyBPYmplY3QgZ2V0VGFyZ2V0KE9iamVjdCBzb3VyY2UpIHsKKwkJcmV0dXJuIHNvdXJjZV90YXJnZXQuZ2V0KHNvdXJjZSk7CisJfQorCXB1YmxpYyBTZXQgZ2V0U291cmNlcyhPYmplY3QgdGFyZ2V0KSB7CisJCVNldCBzID0gKFNldCkgdGFyZ2V0X3NvdXJjZVNldC5nZXQodGFyZ2V0KTsKKwkJcmV0dXJuIENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChzKTsKKwl9CisJcHVibGljIEl0ZXJhdG9yIGl0ZXJhdG9yKCkgeworCQlNeUl0ZXJhdG9yIHJlc3VsdCA9IG5ldyBNeUl0ZXJhdG9yKCk7CisJCXJlc3VsdC50YXJnZXRfc291cmNlU2V0X2l0ZXJhdG9yID0gdGFyZ2V0X3NvdXJjZVNldC5rZXlTZXQoKS5pdGVyYXRvcigpOworCQlyZXR1cm4gcmVzdWx0OworCX0KKwlwdWJsaWMgaW50IHNpemUoKSB7CisJCXJldHVybiB0YXJnZXRfc291cmNlU2V0LnNpemUoKTsKKwl9CisJcHJpdmF0ZSBjbGFzcyBNeUl0ZXJhdG9yIGltcGxlbWVudHMgSXRlcmF0b3IgeworCQlwcml2YXRlIEl0ZXJhdG9yIHRhcmdldF9zb3VyY2VTZXRfaXRlcmF0b3I7CisJCXB1YmxpYyB2b2lkIHJlbW92ZSgpIHsKKwkJCXRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigpOworCQl9CisJCXB1YmxpYyBib29sZWFuIGhhc05leHQoKSB7CisJCQlyZXR1cm4gdGFyZ2V0X3NvdXJjZVNldF9pdGVyYXRvci5oYXNOZXh0KCk7CisJCX0KKwkJcHVibGljIE9iamVjdCBuZXh0KCkgeworCQkJcmV0dXJuIGdldFNvdXJjZXModGFyZ2V0X3NvdXJjZVNldF9pdGVyYXRvci5uZXh0KCkpOworCQl9CQkKKwl9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90ZXN0L3V0aWwvbWFuaWZlc3QuY2xkcnV0aWwuc3R1YiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL21hbmlmZXN0LmNsZHJ1dGlsLnN0dWIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNlN2Q0OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC91dGlsL21hbmlmZXN0LmNsZHJ1dGlsLnN0dWIKQEAgLTAsMCArMSwxNCBAQAorTWFuaWZlc3QtVmVyc2lvbjogMS4wCitDbGFzcy1QYXRoOiB1dGlsaXRpZXMuamFyCitNYWluLUNsYXNzOiBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsCisKK05hbWU6IGNvbS9pYm0vaWN1LworU3BlY2lmaWNhdGlvbi1UaXRsZTogVXRpbGl0aWVzIGZvciBDTERSIAorU3BlY2lmaWNhdGlvbi1WZXJzaW9uOiAzLjQKK1NwZWNpZmljYXRpb24tVmVuZG9yOiBJQ1UKK0ltcGxlbWVudGF0aW9uLVRpdGxlOiBVdGlsaXRpZXMgZm9yIENMRFIKK0ltcGxlbWVudGF0aW9uLVZlcnNpb246IDMuNC4wCitJbXBsZW1lbnRhdGlvbi1WZW5kb3I6IElCTSBDb3Jwb3JhdGlvbgorSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkOiBjb20uaWJtCitDb3B5cmlnaHQtSW5mbzogQ29weXJpZ2h0IChjKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorU2VhbGVkOiBmYWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL1VPcHRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9VT3B0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDVhMTI2OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9VT3B0aW9uLmphdmEKQEAgLTAsMCArMSwyNzUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IE5vdmVtYmVyIDE1IDIwMDIKKyogU2luY2U6IElDVSAyLjQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sOworCisvKioKKyAqIEEgY29tbWFuZC1saW5lIG9wdGlvbi4gIEEgVU9wdGlvbiBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgYW4gb3B0aW9uCisgKiBhbmQgd2hldGhlciBvciBub3QgaXQgdGFrZXMgYW4gYXJndW1lbnQuICBJdCBpcyBhIG11dGFibGUgb2JqZWN0CisgKiB0aGF0IGxhdGVyIGNvbnRhaW5zIHRoZSBvcHRpb24gYXJndW1lbnQsIGlmIGFueSwgYW5kIGEgYm9vbGVhbgorICogZmxhZyBzdGF0aW5nIHdoZXRoZXIgdGhlIG9wdGlvbiB3YXMgc2VlbiBvciBub3QuCisgKgorICogVGhlIHN0YXRpYyBtZXRob2QgcGFyc2VBcmdzKCkgdGFrZXMgYW4gYXJyYXkgb2YgY29tbWFuZC1saW5lCisgKiBhcmd1bWVudHMgYW5kIGFuIGFycmF5IG9mIFVPcHRpb25zIGFuZCBwYXJzZXMgdGhlIGNvbW1hbmQtbGluZQorICogYXJndW1lbnRzLgorICoKKyAqIFRoaXMgZGVsaWJlcmF0ZWx5IHJlc2VtYmxlcyB0aGUgaWN1NGMgZmlsZSB1b3B0aW9uLltjaF0uCisgKi8KK3B1YmxpYyBjbGFzcyBVT3B0aW9uIHsKKworICAgIC8vIERlbGliZXJhdGVkIHB1YmxpYyBkYXRhIG1lbWJlcnMKKyAgICBwdWJsaWMgU3RyaW5nICBsb25nTmFtZTsKKyAgICBwdWJsaWMgU3RyaW5nICB2YWx1ZTsKKyAgICBwdWJsaWMgRm4gICAgICBvcHRpb25GbjsKKyAgICBwdWJsaWMgT2JqZWN0ICBjb250ZXh0OworICAgIHB1YmxpYyBjaGFyICAgIHNob3J0TmFtZTsKKyAgICBwdWJsaWMgaW50ICAgICBoYXNBcmc7CisgICAgcHVibGljIGJvb2xlYW4gZG9lc09jY3VyOworCisgICAgLy8gVmFsdWVzIG9mIGhhc0FyZworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PX0FSRyAgICAgICA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkVRVUlSRVNfQVJHID0gMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPUFRJT05BTF9BUkcgPSAyOworCisgICAgLy8gQW5hbG9nIG9mIFVPcHRpb25Gbi4gIFdlIGRvbid0IHBhc3MgaW4gdGhlIGNvbnRleHQgYmVjYXVzZSB0aGUKKyAgICAvLyBmdW5jdG9yIGNhbiBnZXQgaXQgZnJvbSB0aGUgVU9wdGlvbi4KKyAgICBwdWJsaWMgaW50ZXJmYWNlIEZuIHsKKyAgICAgICAgaW50IGhhbmRsZShVT3B0aW9uIG9wdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVU9wdGlvbiB3aXRoIHRoZSBnaXZlbiBhdHRyaWJ1dGVzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBjcmVhdGUoU3RyaW5nIGFMb25nTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBhU2hvcnROYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGFzQXJndW1lbnQpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBVT3B0aW9uKGFMb25nTmFtZSwgYVNob3J0TmFtZSwgaGFzQXJndW1lbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFVPcHRpb24gd2l0aCB0aGUgZ2l2ZW4gYXR0cmlidXRlcy4KKyAgICAgKiBTeW5vbnltIGZvciBjcmVhdGUoKSwgZm9yIEMgY29tcGF0aWJpbGl0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVPcHRpb24gREVGKFN0cmluZyBhTG9uZ05hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGFTaG9ydE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaGFzQXJndW1lbnQpIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShhTG9uZ05hbWUsIGFTaG9ydE5hbWUsIGhhc0FyZ3VtZW50KTsKKyAgICB9CisKKyAgICAvLyBTdGFuZGFyZCBjYW5uZWQgb3B0aW9ucy4gIFRoZXNlIGNyZWF0ZSBhIG5ldyBvYmplY3Qgd2hlbgorICAgIC8vIGNhbGxlZC4gIFNpbmNlIHRoZSBVT3B0aW9uIG9iamVjdCBpcyBtdXRhYmxlLCB3ZSBjYW5ub3QgdXNlCisgICAgLy8gc3RhdGljIGZpbmFsIGluc3RhbmNlcy4KKyAgICBwdWJsaWMgc3RhdGljIFVPcHRpb24gSEVMUF9IKCkgICAgICAgICAgICAgeyByZXR1cm4gY3JlYXRlKCJoZWxwIiwgJ2gnLCBOT19BUkcpOyB9CisgICAgcHVibGljIHN0YXRpYyBVT3B0aW9uIEhFTFBfUVVFU1RJT05fTUFSSygpIHsgcmV0dXJuIGNyZWF0ZSgiaGVscCIsICc/JywgTk9fQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBWRVJCT1NFKCkgICAgICAgICAgICB7IHJldHVybiBjcmVhdGUoInZlcmJvc2UiLCAndicsIE5PX0FSRyk7IH0KKyAgICBwdWJsaWMgc3RhdGljIFVPcHRpb24gUVVJRVQoKSAgICAgICAgICAgICAgeyByZXR1cm4gY3JlYXRlKCJxdWlldCIsICdxJywgTk9fQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBWRVJTSU9OKCkgICAgICAgICAgICB7IHJldHVybiBjcmVhdGUoInZlcnNpb24iLCAnVicsIE5PX0FSRyk7IH0KKyAgICBwdWJsaWMgc3RhdGljIFVPcHRpb24gQ09QWVJJR0hUKCkgICAgICAgICAgeyByZXR1cm4gY3JlYXRlKCJjb3B5cmlnaHQiLCAnYycsIE5PX0FSRyk7IH0KKworICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBERVNURElSKCkgICAgICAgICAgICB7IHJldHVybiBjcmVhdGUoImRlc3RkaXIiLCAnZCcsIFJFUVVJUkVTX0FSRyk7IH0KKyAgICBwdWJsaWMgc3RhdGljIFVPcHRpb24gU09VUkNFRElSKCkgICAgICAgICAgeyByZXR1cm4gY3JlYXRlKCJzb3VyY2VkaXIiLCAncycsIFJFUVVJUkVTX0FSRyk7IH0KKyAgICBwdWJsaWMgc3RhdGljIFVPcHRpb24gRU5DT0RJTkcoKSAgICAgICAgICAgeyByZXR1cm4gY3JlYXRlKCJlbmNvZGluZyIsICdlJywgUkVRVUlSRVNfQVJHKTsgfQorICAgIHB1YmxpYyBzdGF0aWMgVU9wdGlvbiBJQ1VEQVRBRElSKCkgICAgICAgICB7IHJldHVybiBjcmVhdGUoImljdWRhdGFkaXIiLCAnaScsIFJFUVVJUkVTX0FSRyk7IH0KKyAgICBwdWJsaWMgc3RhdGljIFVPcHRpb24gUEFDS0FHRV9OQU1FKCkgICAgICAgeyByZXR1cm4gY3JlYXRlKCJwYWNrYWdlLW5hbWUiLCAncCcsIFJFUVVJUkVTX0FSRyk7IH0KKyAgICBwdWJsaWMgc3RhdGljIFVPcHRpb24gQlVORExFX05BTUUoKSAgICAgICAgeyByZXR1cm4gY3JlYXRlKCJidW5kbGUtbmFtZSIsICdiJywgUkVRVUlSRVNfQVJHKTsgfQorCisgICAgLyoqCisgICAgICogSmF2YSBDb21tYW5kIGxpbmUgYXJndW1lbnQgcGFyc2VyLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgYXJndltdIGNvbW1hbmQgbGluZSBhbmQgYSBkZXNjcmlwdGlvbiBvZgorICAgICAqIHRoZSBwcm9ncmFtJ3Mgb3B0aW9ucyBpbiBmb3JtIG9mIGFuIGFycmF5IG9mIFVPcHRpb24gc3RydWN0dXJlcy4KKyAgICAgKiBFYWNoIFVPcHRpb24gZGVmaW5lcyBhIGxvbmcgYW5kIGEgc2hvcnQgbmFtZSAoYSBzdHJpbmcgYW5kIGEgY2hhcmFjdGVyKQorICAgICAqIGZvciBvcHRpb25zIGxpa2UgIi0tZm9vIiBhbmQgIi1mIi4KKyAgICAgKgorICAgICAqIEVhY2ggb3B0aW9uIGlzIG1hcmtlZCB3aXRoIHdoZXRoZXIgaXQgZG9lcyBub3QgdGFrZSBhbiBhcmd1bWVudCwKKyAgICAgKiByZXF1aXJlcyBvbmUsIG9yIG9wdGlvbmFsbHkgdGFrZXMgb25lLiBUaGUgYXJndW1lbnQgbWF5IGZvbGxvdyBpbgorICAgICAqIHRoZSBzYW1lIGFyZ3ZbXSBlbnRyeSBmb3Igc2hvcnQgb3B0aW9ucywgb3IgaXQgbWF5IGFsd2F5cyBmb2xsb3cKKyAgICAgKiBpbiB0aGUgbmV4dCBhcmd2W10gZW50cnkuCisgICAgICoKKyAgICAgKiBBbiBhcmd1bWVudCBpcyBpbiB0aGUgbmV4dCBhcmd2W10gZW50cnkgZm9yIGJvdGggbG9uZyBhbmQgc2hvcnQgbmFtZQorICAgICAqIG9wdGlvbnMsIGV4Y2VwdCBpdCBpcyB0YWtlbiBmcm9tIGRpcmVjdGx5IGJlaGluZCB0aGUgc2hvcnQgbmFtZSBpbgorICAgICAqIGl0cyBvd24gYXJndltdIGVudHJ5IGlmIHRoZXJlIGFyZSBjaGFyYWN0ZXJzIGZvbGxvd2luZyB0aGUgb3B0aW9uIGxldHRlci4KKyAgICAgKiBBbiBhcmd1bWVudCBpbiBpdHMgb3duIGFyZ3ZbXSBlbnRyeSBtdXN0IG5vdCBiZWdpbiB3aXRoIGEgJy0nCisgICAgICogdW5sZXNzIGl0IGlzIG9ubHkgdGhlICctJyBpdHNlbGYuIFRoZXJlIGlzIG5vIHJlc3RyaWN0aW9uIG9mIHRoZQorICAgICAqIGFyZ3VtZW50IGZvcm1hdCBpZiBpdCBpcyBwYXJ0IG9mIHRoZSBzaG9ydCBuYW1lIG9wdGlvbnMncyBhcmd2W10gZW50cnkuCisgICAgICoKKyAgICAgKiBUaGUgYXJndW1lbnQgaXMgc3RvcmVkIGluIHRoZSB2YWx1ZSBmaWVsZCBvZiB0aGUgY29ycmVzcG9uZGluZworICAgICAqIFVPcHRpb24gZW50cnksIGFuZCB0aGUgZG9lc09jY3VyIGZpZWxkIGlzIHNldCB0byAxIGlmIHRoZSBvcHRpb24KKyAgICAgKiBpcyBmb3VuZCBhdCBhbGwuCisgICAgICoKKyAgICAgKiBTaG9ydCBuYW1lIG9wdGlvbnMgd2l0aG91dCBhcmd1bWVudHMgY2FuIGJlIGNvbGxhcHNlZCBpbnRvIGEgc2luZ2xlCisgICAgICogYXJndltdIGVudHJ5LiBBZnRlciBhbiBvcHRpb24gbGV0dGVyIHRha2VzIGFuIGFyZ3VtZW50LCBmb2xsb3dpbmcKKyAgICAgKiBsZXR0ZXJzIHdpbGwgYmUgdGFrZW4gYXMgaXRzIGFyZ3VtZW50LgorICAgICAqCisgICAgICogSWYgdGhlIHNhbWUgb3B0aW9uIGlzIGZvdW5kIHNldmVyYWwgdGltZXMsIHRoZW4gdGhlIGxhc3QKKyAgICAgKiBhcmd1bWVudCB2YWx1ZSB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgdmFsdWUgZmllbGQuCisgICAgICoKKyAgICAgKiBGb3IgZWFjaCBvcHRpb24sIGEgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZC4gVGhpcyBjb3VsZCBiZSB1c2VkCisgICAgICogZm9yIG9wdGlvbnMgdGhhdCBvY2N1ciBtdWx0aXBsZSB0aW1lcyBhbmQgYWxsIGFyZ3VtZW50cyBhcmUgdG8KKyAgICAgKiBiZSBjb2xsZWN0ZWQuCisgICAgICoKKyAgICAgKiBBbGwgb3B0aW9ucyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBhcmd2W10gYXJyYXkgaXRzZWxmLiBJZiB0aGUgcGFyc2VyCisgICAgICogaXMgc3VjY2Vzc2Z1bCwgdGhlbiBpdCByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVtYWluaW5nIG5vbi1vcHRpb24KKyAgICAgKiBzdHJpbmdzLiAgKFVubGlrZSBDLCB0aGUgSmF2YSBhcmd2W10gYXJyYXkgZG9lcyBOT1QgY29udGFpbgorICAgICAqIHRoZSBwcm9ncmFtIG5hbWUgaW4gYXJndlswXS4pCisgICAgICoKKyAgICAgKiBBbiBvcHRpb24gIi0tIiBlbmRzIG9wdGlvbiBwcm9jZXNzaW5nOyBldmVyeXRoaW5nIGFmdGVyIHRoaXMKKyAgICAgKiByZW1haW5zIGluIHRoZSBhcmd2W10gYXJyYXkuCisgICAgICoKKyAgICAgKiBBbiBvcHRpb24gc3RyaW5nICItIiBhbG9uZSBpcyB0cmVhdGVkIGFzIGEgbm9uLW9wdGlvbi4KKyAgICAgKgorICAgICAqIElmIGFuIG9wdGlvbiBpcyBub3QgcmVjb2duaXplZCBvciBhbiBhcmd1bWVudCBtaXNzaW5nLCB0aGVuCisgICAgICogdGhlIHBhcnNlciByZXR1cm5zIHdpdGggdGhlIG5lZ2F0aXZlIGluZGV4IG9mIHRoZSBhcmd2W10gZW50cnkKKyAgICAgKiB3aGVyZSB0aGUgZXJyb3Igd2FzIGRldGVjdGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGFyZ3YgdGhpcyBwYXJhbWV0ZXIgaXMgbW9kaWZpZWQKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGZpcnN0IGFyZ3VtZW50IGluIGFyZ3ZbXSB0byBleGFtaW5lLiAgTXVzdCBiZQorICAgICAqIDAuLmFyZ3YubGVuZ3RoLTEuICBBcmd1bWVudHMgZnJvbSAwLi5zdGFydC0xIGFyZSBpZ25vcmVkLgorICAgICAqIEBwYXJhbSBvcHRpb25zIHRoaXMgcGFyYW1ldGVyIGlzIG1vZGlmaWVkCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIHVucHJvY2Vzc2VkIGFyZ3VtZW50cyBpbiBhcmd2W10sIGluY2x1ZGluZworICAgICAqIGFyZ3VtZW50cyAwLi5zdGFydC0xLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHBhcnNlQXJncyhTdHJpbmcgYXJndltdLCBpbnQgc3RhcnQsIFVPcHRpb24gb3B0aW9uc1tdKSB7CisgICAgICAgIFN0cmluZyBhcmc7CisgICAgICAgIGludCBpPXN0YXJ0LCByZW1haW5pbmc9c3RhcnQ7CisgICAgICAgIGNoYXIgYzsKKyAgICAgICAgYm9vbGVhbiBzdG9wT3B0aW9ucz1mYWxzZTsKKworICAgICAgICB3aGlsZShpPGFyZ3YubGVuZ3RoKSB7CisgICAgICAgICAgICBhcmc9YXJndltpXTsKKyAgICAgICAgICAgIGlmKCFzdG9wT3B0aW9ucyAmJiBhcmcubGVuZ3RoKCk+MSAmJiBhcmcuY2hhckF0KDApPT0nLScpIHsKKyAgICAgICAgICAgICAgICAvKiBwcm9jZXNzIGFuIG9wdGlvbiAqLworICAgICAgICAgICAgICAgIGM9YXJnLmNoYXJBdCgxKTsKKyAgICAgICAgICAgICAgICBVT3B0aW9uIG9wdGlvbj1udWxsOworICAgICAgICAgICAgICAgIGFyZz1hcmcuc3Vic3RyaW5nKDIpOworICAgICAgICAgICAgICAgIGlmKGM9PSctJykgeworICAgICAgICAgICAgICAgICAgICAvKiBwcm9jZXNzIGEgbG9uZyBvcHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoYXJnLmxlbmd0aCgpPT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBzdG9wIHByb2Nlc3Npbmcgb3B0aW9ucyBhZnRlciAiLS0iICovCisgICAgICAgICAgICAgICAgICAgICAgICBzdG9wT3B0aW9ucz10cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogc2VhcmNoIGZvciB0aGUgb3B0aW9uIHN0cmluZyAqLworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3Ioaj0wOyBqPG9wdGlvbnMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvcHRpb25zW2pdLmxvbmdOYW1lICE9IG51bGwgJiYgYXJnLmVxdWFscyhvcHRpb25zW2pdLmxvbmdOYW1lKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb249b3B0aW9uc1tqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYob3B0aW9uPT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbm8gb3B0aW9uIG1hdGNoZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiVW5rbm93biBvcHRpb24gIiArIGFyZ3ZbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmRvZXNPY2N1cj10cnVlOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZihvcHRpb24uaGFzQXJnIT1OT19BUkcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwYXJzZSB0aGUgYXJndW1lbnQgZm9yIHRoZSBvcHRpb24sIGlmIGFueSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGkrMTxhcmd2Lmxlbmd0aCAmJiAhKGFyZ3ZbaSsxXS5sZW5ndGgoKT4xICYmIGFyZ3ZbaSsxXS5jaGFyQXQoMCk9PSctJykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYXJndW1lbnQgaW4gdGhlIG5leHQgYXJndltdLCBhbmQgdGhlcmUgaXMgbm90IGFuIG9wdGlvbiBpbiB0aGVyZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24udmFsdWU9YXJndlsrK2ldOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihvcHRpb24uaGFzQXJnPT1SRVFVSVJFU19BUkcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhlcmUgaXMgbm8gYXJndW1lbnQsIGJ1dCBvbmUgaXMgcmVxdWlyZWQ6IHJldHVybiB3aXRoIGVycm9yICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJPcHRpb24gIiArIGFyZ3ZbaV0gKyAiIGxhY2tzIHJlcXVpcmVkIGFyZ3VtZW50Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogcHJvY2VzcyBvbmUgb3IgbW9yZSBzaG9ydCBvcHRpb25zICovCisgICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNlYXJjaCBmb3IgdGhlIG9wdGlvbiBsZXR0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBqOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGo9MDsgajxvcHRpb25zLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYz09b3B0aW9uc1tqXS5zaG9ydE5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPW9wdGlvbnNbal07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9wdGlvbj09bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vIG9wdGlvbiBtYXRjaGVzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIlVua25vd24gb3B0aW9uICciICsgYyArICInIGluICIgKyBhcmd2W2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5kb2VzT2NjdXI9dHJ1ZTsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYob3B0aW9uLmhhc0FyZyE9Tk9fQVJHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcGFyc2UgdGhlIGFyZ3VtZW50IGZvciB0aGUgb3B0aW9uLCBpZiBhbnkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhcmcubGVuZ3RoKCkhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYXJndW1lbnQgZm9sbG93aW5nIGluIHRoZSBzYW1lIGFyZ3ZbXSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24udmFsdWU9YXJnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBkbyBub3QgcHJvY2VzcyB0aGUgcmVzdCBvZiB0aGlzIGFyZyBhcyBvcHRpb24gbGV0dGVycyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoaSsxPGFyZ3YubGVuZ3RoICYmICEoYXJndltpKzFdLmxlbmd0aCgpPjEgJiYgYXJndltpKzFdLmNoYXJBdCgwKT09Jy0nKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBhcmd2W10sIGFuZCB0aGVyZSBpcyBub3QgYW4gb3B0aW9uIGluIHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi52YWx1ZT1hcmd2WysraV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgYnJlYWsgaXMgcmVkdW5kYW50IGJlY2F1c2Ugd2Uga25vdyB0aGF0ICphcmc9PTAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKG9wdGlvbi5oYXNBcmc9PVJFUVVJUkVTX0FSRykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGVyZSBpcyBubyBhcmd1bWVudCwgYnV0IG9uZSBpcyByZXF1aXJlZDogcmV0dXJuIHdpdGggZXJyb3IgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk9wdGlvbiAtIiArIGMgKyAiIGxhY2tzIHJlcXVpcmVkIGFyZ3VtZW50Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBnZXQgdGhlIG5leHQgb3B0aW9uIGxldHRlciAqLworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPW51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXJnLmxlbmd0aCgpPT0wKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGM9YXJnLmNoYXJBdCgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZz1hcmcuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYob3B0aW9uIT1udWxsICYmIG9wdGlvbi5vcHRpb25GbiE9bnVsbCAmJiBvcHRpb24ub3B0aW9uRm4uaGFuZGxlKG9wdGlvbik8MCkgeworICAgICAgICAgICAgICAgICAgICAvKiB0aGUgb3B0aW9uIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYW5kIHJldHVybmVkIGFuIGVycm9yICovCisgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJPcHRpb24gaGFuZGxlciBmYWlsZWQgZm9yICIgKyBhcmd2W2ldKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvKiBnbyB0byBuZXh0IGFyZ3ZbXSAqLworICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogbW92ZSBhIG5vbi1vcHRpb24gdXAgaW4gYXJndltdICovCisgICAgICAgICAgICAgICAgYXJndltyZW1haW5pbmcrK109YXJnOworICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVtYWluaW5nOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFsbG93cyB0aGUgZGVmYXVsdCB0byBiZSBzZXQgaW4gYW4gb3B0aW9uIGxpc3QuCisgICAgICogQHBhcmFtIHMKKyAgICAgKiBAcmV0dXJuIHRoaXMKKyAgICAgKi9wdWJsaWMgVU9wdGlvbiBzZXREZWZhdWx0KFN0cmluZyBzKSB7CisgICAgICAgIHZhbHVlID0gczsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVudCBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgcGFyc2VBcmdzKFN0cmluZyBhcmd2W10sIFVPcHRpb24gb3B0aW9uc1tdKSB7CisgICAgICAgIHJldHVybiBwYXJzZUFyZ3MoYXJndiwgMCwgb3B0aW9ucyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBVT3B0aW9uKFN0cmluZyBhTG9uZ05hbWUsCisgICAgICAgICAgICAgICAgICAgIGNoYXIgYVNob3J0TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgaW50IGhhc0FyZ3VtZW50KSB7CisgICAgICAgIGxvbmdOYW1lID0gYUxvbmdOYW1lOworICAgICAgICBzaG9ydE5hbWUgPSBhU2hvcnROYW1lOworICAgICAgICBoYXNBcmcgPSBoYXNBcmd1bWVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvdyBhbiBleGNlcHRpb24gaW5kaWNhdGluZyBhIHN5bnRheCBlcnJvci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHN5bnRheEVycm9yKFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkVycm9yIGluIGFyZ3VtZW50IGxpc3Q6ICIgKyBtZXNzYWdlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL0NoZWNrZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L3NiY3MvQ2hlY2tlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjMjRkYzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL0NoZWNrZXIuamF2YQpAQCAtMCwwICsxLDE4OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmNoYXJzZXRkZXQuc2JjczsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOworCisvKioKKyAqIEBhdXRob3IgZW1hZGVyCisgKgorICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdyAtIFByZWZlcmVuY2VzIC0gSmF2YSAtIENvZGUgU3R5bGUgLSBDb2RlIFRlbXBsYXRlcworICovCitwdWJsaWMgY2xhc3MgQ2hlY2tlciBpbXBsZW1lbnRzIE5HcmFtUGFyc2VyLk5HcmFtUGFyc2VyQ2xpZW50Cit7CisgICAgcHJpdmF0ZSBOR3JhbUxpc3QgbmdyYW1zOworICAgIHByaXZhdGUgaW50IHRvdGFsTkdyYW1zOworICAgIHByaXZhdGUgaW50IHRvdGFsSGl0czsKKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBsYW5ndWFnZTsKKyAgICBwcml2YXRlIFN0cmluZyBlbmNvZGluZzsKKyAgICAKKyAgICBwcml2YXRlIGludFtdIGhpc3RvZ3JhbTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCVUZGRVJfU0laRSA9IDEwMjQ7CisgICAgCisgICAgcHJpdmF0ZSBjaGFyW10gYnVmZmVyOworICAgIHByaXZhdGUgaW50IGJ1ZkluZGV4OworICAgIHByaXZhdGUgaW50IGJ1Zk1heDsKKworICAgIHByaXZhdGUgTkdyYW1QYXJzZXIgcGFyc2VyOworCisgICAgLyoqCisgICAgICogVE9ETyBUaGlzIHNob3VsZCB0YWtlIGN1bXVsYXRpdmUgcGVyY2VudCBhbmQgdGhlIG5hbWUuLi4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hlY2tlcihOR3JhbUxpc3QgbGlzdCwgSW5wdXRGaWxlIGRhdGFGaWxlKQorICAgIHsKKyAgICAgICAgbmdyYW1zID0gbGlzdDsKKyAgICAgICAgbmdyYW1zLnNldE1hcHBlcihkYXRhRmlsZSk7CisgICAgICAgIAorICAgICAgICBsYW5ndWFnZSA9IGxhbmd1YWdlTmFtZShkYXRhRmlsZS5nZXRGaWxlbmFtZSgpKTsKKyAgICAgICAgZW5jb2RpbmcgPSBkYXRhRmlsZS5nZXRFbmNvZGluZygpOworICAgICAgICAKKyAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbQlVGRkVSX1NJWkVdOworICAgICAgICBwYXJzZXIgPSBuZXcgTkdyYW1QYXJzZXIodGhpcyk7CisgICAgICAgIHJlc2V0Q291bnRzKCk7CisgICAgICAgIAorICAgICAgICBoaXN0b2dyYW0gPSBuZXcgaW50WzEwMF07CisgICAgICAgIHJlc2V0SGlzdG9ncmFtKCk7CisgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgaGFuZGxlTkdyYW0oU3RyaW5nIGtleSkKKyAgICB7CisgICAgICAgIE5HcmFtTGlzdC5OR3JhbSBuZ3JhbSA9IG5ncmFtcy5nZXQoa2V5KTsKKyAgICAgICAgCisgICAgICAgIHRvdGFsTkdyYW1zICs9IDE7CisgICAgICAgIAorICAgICAgICBpZiAobmdyYW0gIT0gbnVsbCkgeworICAgICAgICAgICAgdG90YWxIaXRzICs9IDE7CisgICAgICAgICAgICAvL25ncmFtLmluY3JlbWVudFJlZkNvdW50KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlc2V0Q291bnRzKCkKKyAgICB7CisgICAgICAgIGJ1ZkluZGV4ID0gMDsKKyAgICAgICAgdG90YWxOR3JhbXMgPSB0b3RhbEhpdHMgPSAwOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcmVzZXRIaXN0b2dyYW0oKQorICAgIHsKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IDEwMDsgaSArPSAxKSB7CisgICAgICAgICAgICBoaXN0b2dyYW1baV0gPSAwOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGV4Y2VwdGlvbkVycm9yKEV4Y2VwdGlvbiBlKQorICAgIHsKKyAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJpb0Vycm9yOiAiICsgZS50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgbGFuZ3VhZ2VOYW1lKFN0cmluZyBmaWxlbmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiBmaWxlbmFtZS5zdWJzdHJpbmcoMCwgZmlsZW5hbWUuaW5kZXhPZignLicpKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIG5leHRCdWZmZXIoSW5wdXRGaWxlIGlucHV0RmlsZSkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBidWZNYXggPSBpbnB1dEZpbGUucmVhZChidWZmZXIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgYnVmTWF4ID0gLTE7CisgICAgICAgICAgICBleGNlcHRpb25FcnJvcihlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBidWZJbmRleCA9IDA7CisgICAgICAgIAorICAgICAgICByZXR1cm4gYnVmTWF4ID49IDA7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBwYXJzZUJ1ZmZlcigpCisgICAgeworICAgICAgICByZXNldENvdW50cygpOworICAgICAgICBwYXJzZXIucmVzZXQoKTsKKyAgICAgICAgcGFyc2VyLnBhcnNlKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBjaGFyIG5leHRDaGFyKCkKKyAgICB7CisgICAgICAgIGlmIChidWZJbmRleCA+PSBidWZNYXgpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gYnVmZmVyW2J1ZkluZGV4KytdOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBsYW5ndWFnZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0TWFwcGVyKElucHV0RmlsZSBmaWxlKQorICAgIHsKKyAgICAgICAgbmdyYW1zLnNldE1hcHBlcihmaWxlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBjaGVja0J1ZmZlcihjaGFyW10gdGhlQnVmZmVyLCBpbnQgY2hhckNvdW50KQorICAgIHsKKyAgICAgICAgYnVmZmVyID0gdGhlQnVmZmVyOworICAgICAgICBidWZNYXggPSBjaGFyQ291bnQ7CisgICAgICAgIAorICAgICAgICBwYXJzZUJ1ZmZlcigpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRvdGFsSGl0czsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgY2hlY2soSW5wdXRGaWxlIGRhdGFGaWxlKQorICAgIHsKKyAgICAgICAgaW50IG1pbkhpc3QgPSAxMDEsIG1heEhpc3QgPSAtMTsKKyAgICAgICAgCisgICAgICAgIGRhdGFGaWxlLm9wZW4oKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBkYXRhRmlsZW5hbWUgPSBkYXRhRmlsZS5nZXRGaWxlbmFtZSgpOworICAgICAgICBTdHJpbmcgZmlsZUVuY29kaW5nID0gZGF0YUZpbGUuZ2V0RW5jb2RpbmcoKTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihsYW5ndWFnZSArICIoIiArIGVuY29kaW5nICsgIikgc3RhdHMsICIgKyBsYW5ndWFnZU5hbWUoZGF0YUZpbGVuYW1lKSArICIoIiArIGZpbGVFbmNvZGluZyArICIpIGRhdGE6Iik7CisgICAgICAgIAorICAgICAgICBzZXRNYXBwZXIoZGF0YUZpbGUpOworICAgICAgICByZXNldEhpc3RvZ3JhbSgpOworCisgICAgICAgIHdoaWxlIChuZXh0QnVmZmVyKGRhdGFGaWxlKSkgeworICAgICAgICAgICAgcGFyc2VCdWZmZXIoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZG91YmxlIHBlcmNlbnRIaXRzID0gKGRvdWJsZSkgdG90YWxIaXRzIC8gdG90YWxOR3JhbXMgKiAxMDAuMDsKKyAgICAgICAgICAgIGludCBwaCA9IChpbnQpIHBlcmNlbnRIaXRzOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAocGggPCBtaW5IaXN0KSB7CisgICAgICAgICAgICAgICAgbWluSGlzdCA9IHBoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAocGggPiBtYXhIaXN0KSB7CisgICAgICAgICAgICAgICAgbWF4SGlzdCA9IHBoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBoaXN0b2dyYW1bcGhdICs9IDE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvcihpbnQgcGggPSBtaW5IaXN0OyBwaCA8PSBtYXhIaXN0OyBwaCArPSAxKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGggKyAiXHQiICsgaGlzdG9ncmFtW3BoXSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAKKyAgICAgICAgZGF0YUZpbGUuY2xvc2UoKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL0lucHV0RmlsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9JbnB1dEZpbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmQ5NzNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9JbnB1dEZpbGUuamF2YQpAQCAtMCwwICsxLDE3NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmNoYXJzZXRkZXQuc2JjczsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOworaW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CitpbXBvcnQgamF2YS5uaW8uQ2hhckJ1ZmZlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJhY3RlckNvZGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXQ7CitpbXBvcnQgamF2YS5uaW8uY2hhcnNldC5DaGFyc2V0RGVjb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5jaGFyc2V0LkNoYXJzZXRFbmNvZGVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuQ29kaW5nRXJyb3JBY3Rpb247CisKKy8qKgorICogQGF1dGhvciBlbWFkZXIKKyAqCisgKiBUT0RPIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93IC0gUHJlZmVyZW5jZXMgLSBKYXZhIC0gQ29kZSBTdHlsZSAtIENvZGUgVGVtcGxhdGVzCisgKi8KK3B1YmxpYyBjbGFzcyBJbnB1dEZpbGUgaW1wbGVtZW50cyBOR3JhbUxpc3QuTkdyYW1LZXlNYXBwZXIKK3sKKworICAgIHByaXZhdGUgRmlsZSBmaWxlOworICAgIHByaXZhdGUgRmlsZUlucHV0U3RyZWFtIGZpbGVTdHJlYW07CisgICAgcHJpdmF0ZSBJbnB1dFN0cmVhbVJlYWRlciBpbnB1dFN0cmVhbTsKKworICAgIHByaXZhdGUgQ2hhcnNldCBjaGFyc2V0OworICAgIHByaXZhdGUgQ2hhcnNldERlY29kZXIgZGVjb2RlcjsKKyAgICBwcml2YXRlIENoYXJzZXRFbmNvZGVyIGVuY29kZXI7CisgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIHZpc3VhbE9yZGVyOworCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBleGNlcHRpb25FcnJvcihFeGNlcHRpb24gZSkKKyAgICB7CisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiaW9FcnJvcjogIiArIGUudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogCisgICAgICovCisgICAgcHVibGljIElucHV0RmlsZShTdHJpbmcgZmlsZW5hbWUsIFN0cmluZyBlbmNvZGluZywgYm9vbGVhbiB2aXN1YWwpCisgICAgeworICAgICAgICBmaWxlID0gbmV3IEZpbGUoZmlsZW5hbWUpOworICAgICAgICBzZXRFbmNvZGluZyhlbmNvZGluZyk7CisgICAgICAgIHZpc3VhbE9yZGVyID0gdmlzdWFsOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBvcGVuKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmaWxlU3RyZWFtID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlKTsgICAgICAgICAgCisgICAgICAgICAgICBpbnB1dFN0cmVhbSA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaWxlU3RyZWFtLCAiVVRGOCIpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXhjZXB0aW9uRXJyb3IoZSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBjbG9zZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5wdXRTdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgIGZpbGVTdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIGRvbid0IHJlYWxseSBjYXJlIGlmIHRoaXMgZmFpbHMuLi4KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldEZpbGVuYW1lKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmaWxlLmdldE5hbWUoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXRQYXJlbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZpbGUuZ2V0UGFyZW50KCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGF0aCgpCisgICAgeworICAgICAgICByZXR1cm4gZmlsZS5nZXRQYXRoKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgcmVhZChjaGFyW10gYnVmZmVyKQorICAgIHsKKyAgICAgICAgaW50IGNoYXJzUmVhZCA9IC0xOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNoYXJzUmVhZCA9IGlucHV0U3RyZWFtLnJlYWQoYnVmZmVyLCAwLCBidWZmZXIubGVuZ3RoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGV4Y2VwdGlvbkVycm9yKGUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gY2hhcnNSZWFkOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRFbmNvZGluZyhTdHJpbmcgZW5jb2RpbmcpCisgICAgeworICAgICAgICBjaGFyc2V0ID0gQ2hhcnNldC5mb3JOYW1lKGVuY29kaW5nKTsKKyAgICAgICAgZGVjb2RlciA9IGNoYXJzZXQubmV3RGVjb2RlcigpOworICAgICAgICBlbmNvZGVyID0gY2hhcnNldC5uZXdFbmNvZGVyKCk7CisgICAgICAgIAorICAgICAgICBlbmNvZGVyLm9uVW5tYXBwYWJsZUNoYXJhY3RlcihDb2RpbmdFcnJvckFjdGlvbi5SRVBMQUNFKTsKKyAgICAgICAgZW5jb2Rlci5vbk1hbGZvcm1lZElucHV0KENvZGluZ0Vycm9yQWN0aW9uLlJFUExBQ0UpOworICAgICAgICAKKyAgICAgICAgZGVjb2Rlci5vblVubWFwcGFibGVDaGFyYWN0ZXIoQ29kaW5nRXJyb3JBY3Rpb24uUkVQTEFDRSk7CisgICAgICAgIGRlY29kZXIub25NYWxmb3JtZWRJbnB1dChDb2RpbmdFcnJvckFjdGlvbi5SRVBMQUNFKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXRFbmNvZGluZygpCisgICAgeworICAgICAgICByZXR1cm4gY2hhcnNldC5kaXNwbGF5TmFtZSgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRWaXN1YWxPcmRlcigpCisgICAgeworICAgICAgICByZXR1cm4gdmlzdWFsT3JkZXI7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBPYmplY3QgbWFwS2V5KFN0cmluZyBrZXkpCisgICAgeworICAgICAgICBieXRlW10gYnl0ZXMgPSBlbmNvZGUoa2V5LnRvQ2hhckFycmF5KCkpOworICAgICAgICBpbnQgbGVuZ3RoICAgPSBrZXkubGVuZ3RoKCk7CisgICAgICAgIGludCB2YWx1ZSAgICA9IDA7CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGIgPSAwOyBiIDwgbGVuZ3RoOyBiICs9IDEpIHsKKyAgICAgICAgICAgIHZhbHVlIDw8PSA4OworICAgICAgICAgICAgdmFsdWUgKz0gKGJ5dGVzW2JdICYgMHhGRik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEludGVnZXIodmFsdWUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYnl0ZVtdIGVuY29kZShjaGFyW10gY2hhcnMpCisgICAgeworICAgICAgICBpbnQgbGVuZ3RoICAgID0gY2hhcnMubGVuZ3RoOworICAgICAgICBDaGFyQnVmZmVyIGNiID0gQ2hhckJ1ZmZlci53cmFwKGNoYXJzKTsKKyAgICAgICAgQnl0ZUJ1ZmZlciBiYjsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBiYiA9IGVuY29kZXIuZW5jb2RlKGNiKTsKKyAgICAgICAgfSBjYXRjaCAoQ2hhcmFjdGVyQ29kaW5nRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIGRvbid0IGV4cGVjdCB0byBnZXQgYW55IGV4Y2VwdGlvbnMgaW4gbm9ybWFsIHVzYWdlLi4uCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBiYi5hcnJheSgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgY2hhcltdIGRlY29kZShieXRlW10gYnl0ZXMpCisgICAgeworICAgICAgICBpbnQgbGVuZ3RoICAgID0gYnl0ZXMubGVuZ3RoOworICAgICAgICBCeXRlQnVmZmVyIGJiID0gQnl0ZUJ1ZmZlci53cmFwKGJ5dGVzKTsKKyAgICAgICAgQ2hhckJ1ZmZlciBjYjsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBjYiA9IGRlY29kZXIuZGVjb2RlKGJiKTsKKyAgICAgICAgfSBjYXRjaCAoQ2hhcmFjdGVyQ29kaW5nRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIGRvbid0IGV4cGVjdCB0byBnZXQgYW55IGV4Y2VwdGlvbnMgaW4gbm9ybWFsIHVzYWdlLi4uCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGNiLmFycmF5KCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9OR3JhbUxpc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L3NiY3MvTkdyYW1MaXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZkM2UyZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L3NiY3MvTkdyYW1MaXN0LmphdmEKQEAgLTAsMCArMSwxNDQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5jaGFyc2V0ZGV0LnNiY3M7CisKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworLyoqCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqIFRPRE8gVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdHlwZSBjb21tZW50IGdvIHRvCisgKiBXaW5kb3cgLSBQcmVmZXJlbmNlcyAtIEphdmEgLSBDb2RlIFN0eWxlIC0gQ29kZSBUZW1wbGF0ZXMKKyAqLworcHVibGljIGNsYXNzIE5HcmFtTGlzdAoreworICAgIHB1YmxpYyBpbnRlcmZhY2UgTkdyYW1LZXlNYXBwZXIKKyAgICB7CisgICAgICAgIE9iamVjdCBtYXBLZXkoU3RyaW5nIGtleSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgTkdyYW0gaW1wbGVtZW50cyBDb21wYXJhYmxlCisgICAgeworICAgICAgICBwcml2YXRlIFN0cmluZyB2YWx1ZTsKKyAgICAgICAgcHJpdmF0ZSBpbnQgcmVmQ291bnQ7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgTkdyYW0oU3RyaW5nIHRoZVZhbHVlLCBpbnQgdGhlUmVmQ291bnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhbHVlICAgID0gdGhlVmFsdWU7CisgICAgICAgICAgICByZWZDb3VudCA9IHRoZVJlZkNvdW50OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgTkdyYW0oU3RyaW5nIHRoZVZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzKHRoZVZhbHVlLCAxKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIE5HcmFtKE5HcmFtIG90aGVyKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzKG90aGVyLmdldFZhbHVlKCksIG90aGVyLmdldFJlZkNvdW50KCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGdldFZhbHVlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgZmluYWwgaW50IGdldFJlZkNvdW50KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHJlZkNvdW50OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgZmluYWwgdm9pZCBpbmNyZW1lbnRSZWZDb3VudCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJlZkNvdW50ICs9IDE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIE5vdGU6IFRoaXMgbWFrZXMgaGlnaGVyIHJlZkNvdW50cyBjb21lICpiZWZvcmUqIGxvd2VyIHJlZkNvdW50cy4uLgorICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3QgbykKKyAgICAgICAgeworICAgICAgICAgICAgTkdyYW0gbmcgPSAoTkdyYW0pIG87CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBuZy5nZXRSZWZDb3VudCgpIC0gcmVmQ291bnQ7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIFRyZWVNYXAgbmdyYW1zOworICAgIHByb3RlY3RlZCBpbnQgdG90YWxOR3JhbXM7CisgICAgcHJvdGVjdGVkIGludCB1bmlxdWVOR3JhbXM7CisKKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IE5fR1JBTV9TSVpFID0gMzsKKyAgICAKKyAgICBwcml2YXRlIE5HcmFtS2V5TWFwcGVyIGtleU1hcHBlcjsKKworICAgIC8qKgorICAgICAqIAorICAgICAqLworICAgIHB1YmxpYyBOR3JhbUxpc3QoTkdyYW1LZXlNYXBwZXIgdGhlTWFwcGVyKQorICAgIHsKKyAgICAgICAga2V5TWFwcGVyID0gdGhlTWFwcGVyOworICAgICAgICAKKyAgICAgICAgbmdyYW1zID0gbmV3IFRyZWVNYXAoKTsKKyAgICAgICAgdG90YWxOR3JhbXMgPSB1bmlxdWVOR3JhbXMgPSAwOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRNYXBwZXIoTkdyYW1LZXlNYXBwZXIgbkdyYW1LZXlNYXBwZXIpCisgICAgeworICAgICAgICBrZXlNYXBwZXIgPSBuR3JhbUtleU1hcHBlcjsKKyAgICB9CisgICAgCisgICAgcHVibGljIE5HcmFtIGdldChPYmplY3QgbWFwcGVkS2V5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIChOR3JhbSkgbmdyYW1zLmdldChtYXBwZWRLZXkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgTkdyYW0gZ2V0KFN0cmluZyBrZXkpCisgICAgeworICAgICAgICBPYmplY3QgbWFwcGVkS2V5ID0ga2V5TWFwcGVyLm1hcEtleShrZXkpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGdldChtYXBwZWRLZXkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBwdXQoU3RyaW5nIGtleSkKKyAgICB7CisgICAgICAgIE9iamVjdCBtYXBwZWRLZXkgPSBrZXlNYXBwZXIubWFwS2V5KGtleSk7CisgICAgICAgIE5HcmFtIG5ncmFtID0gZ2V0KG1hcHBlZEtleSk7CisgICAgICAgIAorICAgICAgICB0b3RhbE5HcmFtcyArPSAxOworICAgICAgICAKKyAgICAgICAgaWYgKG5ncmFtID09IG51bGwpIHsKKyAgICAgICAgICAgIHVuaXF1ZU5HcmFtcyArPSAxOworICAgICAgICAgICAgbmdyYW1zLnB1dChtYXBwZWRLZXksIG5ldyBOR3JhbShrZXkpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5ncmFtLmluY3JlbWVudFJlZkNvdW50KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIENvbGxlY3Rpb24gdmFsdWVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZ3JhbXMudmFsdWVzKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBDb2xsZWN0aW9uIGtleXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ncmFtcy5rZXlTZXQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRUb3RhbE5HcmFtcygpCisgICAgeworICAgICAgICByZXR1cm4gdG90YWxOR3JhbXM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0VW5pcXVlTkdyYW1zKCkKKyAgICB7CisgICAgICAgIHJldHVybiB1bmlxdWVOR3JhbXM7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9OR3JhbVBhcnNlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NoYXJzZXRkZXQvc2Jjcy9OR3JhbVBhcnNlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwZjdiMzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL05HcmFtUGFyc2VyLmphdmEKQEAgLTAsMCArMSwxNjEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5jaGFyc2V0ZGV0LnNiY3M7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKKy8qKgorICogQGF1dGhvciBlbWFkZXIKKyAqCisgKiBUT0RPIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93IC0gUHJlZmVyZW5jZXMgLSBKYXZhIC0gQ29kZSBTdHlsZSAtIENvZGUgVGVtcGxhdGVzCisgKi8KK3B1YmxpYyBjbGFzcyBOR3JhbVBhcnNlcgoreworCisgICAgcHVibGljIGludGVyZmFjZSBOR3JhbVBhcnNlckNsaWVudAorICAgIHsKKyAgICAgICAgY2hhciBuZXh0Q2hhcigpOworICAgICAgICB2b2lkIGhhbmRsZU5HcmFtKFN0cmluZyBrZXkpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQV9OVUxMID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQV9BRERDID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQV9BRERTID0gMjsKKyAgICAKKyAgICAvKgorICAgICAqIENoYXJhY3RlciBjbGFzc2VzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ19JR05PUkUgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENfTEVUVEVSID0gMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDX1BVTkNUICA9IDI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNfU1RBUlQgID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU19MRVRURVIgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTX1BVTkNUICA9IDI7CisKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgU3RhdGVFbnRyeQorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbmV3U3RhdGU7CisgICAgICAgIHByaXZhdGUgaW50IGFjdGlvbjsKKyAgICAgICAgCisgICAgICAgIFN0YXRlRW50cnkoaW50IHRoZVN0YXRlLCBpbnQgdGhlQWN0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICBuZXdTdGF0ZSA9IHRoZVN0YXRlOworICAgICAgICAgICAgYWN0aW9uICAgPSB0aGVBY3Rpb247CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0TmV3U3RhdGUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0QWN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFjdGlvbjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0YXRlRW50cnlbXVtdIHN0YXRlVGFibGUgPSB7CisgICAgICAgICAgICB7bmV3IFN0YXRlRW50cnkoU19TVEFSVCwgIEFfTlVMTCksIG5ldyBTdGF0ZUVudHJ5KFNfTEVUVEVSLCBBX0FEREMpLCBuZXcgU3RhdGVFbnRyeShTX1BVTkNULCAgQV9BRERTKX0sCisgICAgICAgICAgICB7bmV3IFN0YXRlRW50cnkoU19MRVRURVIsIEFfTlVMTCksIG5ldyBTdGF0ZUVudHJ5KFNfTEVUVEVSLCBBX0FEREMpLCBuZXcgU3RhdGVFbnRyeShTX1BVTkNULCAgQV9BRERTKX0sCisgICAgICAgICAgICB7bmV3IFN0YXRlRW50cnkoU19QVU5DVCwgIEFfTlVMTCksIG5ldyBTdGF0ZUVudHJ5KFNfTEVUVEVSLCBBX0FEREMpLCBuZXcgU3RhdGVFbnRyeShTX1BVTkNULCAgQV9OVUxMKX0KKyAgICB9OworCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBOX0dSQU1fU0laRSA9IDM7CisgICAgCisgICAgcHJpdmF0ZSBjaGFyW10gbGV0dGVycyA9IG5ldyBjaGFyW05fR1JBTV9TSVpFXTsKKyAgICBwcml2YXRlIGludCBsZXR0ZXJDb3VudDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IGxldHRlclNldCA9IG5ldyBVbmljb2RlU2V0KCJbOmxldHRlcjpdIik7CisKKyAgICBwcml2YXRlIE5HcmFtUGFyc2VyQ2xpZW50IGNsaWVudDsKKworICAgIC8qKgorICAgICAqIAorICAgICAqLworICAgIHB1YmxpYyBOR3JhbVBhcnNlcihOR3JhbVBhcnNlckNsaWVudCB0aGVDbGllbnQpCisgICAgeworICAgICAgICBjbGllbnQgPSB0aGVDbGllbnQ7CisgICAgICAgIGxldHRlckNvdW50ID0gMDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0Q2xpZW50KE5HcmFtUGFyc2VyQ2xpZW50IHRoZUNsaWVudCkKKyAgICB7CisgICAgICAgIGNsaWVudCA9IHRoZUNsaWVudDsKKyAgICB9CisgICAgCisgICAgLy8gVE9ETyBJcyB0aGlzIGdvb2QgZW5vdWdoLCBvciBhcmUgdGhlcmUgb3RoZXIgQ19JR05PUkUgY2hhcmFjdGVycz8KKyAgICAvLyBUT0RPIENvdWxkIHRoaXMgbWFrZSBMYXRpbiBsZXR0ZXJzIENfUFVOQ1QgZm9yIG5vbi1MYXRpbiBzY3JpcHRzPworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENoYXJDbGFzcyhjaGFyIGNoKQorICAgIHsKKyAgICAgICAgaWYgKGNoID09ICdcJycgfHwgY2ggPT0gJ1x1RkVGRicpIHsKKyAgICAgICAgICAgIHJldHVybiBDX0lHTk9SRTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGxldHRlclNldC5jb250YWlucyhjaCkpIHsKKyAgICAgICAgICAgIHJldHVybiBDX0xFVFRFUjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIENfUFVOQ1Q7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIGxldHRlckNvdW50ID0gMDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYWRkTGV0dGVyKGNoYXIgbGV0dGVyKQorICAgIHsKKyAgICAgICAgLy8gc29tZXdoYXQgY2xldmVyIHN0dWZmIGdvZXMgaGVyZS4uLiAgICAgICAgCisgICAgICAgIGxldHRlcnNbbGV0dGVyQ291bnQrK10gPSBsZXR0ZXI7CisgICAgICAgIAorICAgICAgICBpZiAobGV0dGVyQ291bnQgPj0gTl9HUkFNX1NJWkUpIHsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSBuZXcgU3RyaW5nKGxldHRlcnMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBjbGllbnQuaGFuZGxlTkdyYW0oa2V5KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGV0dGVyQ291bnQgPSBOX0dSQU1fU0laRSAtIDE7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxldHRlckNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBsZXR0ZXJzW2ldID0gbGV0dGVyc1tpICsgMV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgcGFyc2UoKQorICAgIHsKKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgaW50IHN0YXRlID0gMDsKKworICAgICAgICAvLyB0aGlzIGlzIHdoZXJlIHRoZSBjbGV2ZXIgc3R1ZmYgZ29lcy4uLgorICAgICAgICB3aGlsZSAoKGNoID0gY2xpZW50Lm5leHRDaGFyKCkpICE9IDApIHsKKyAgICAgICAgICAgIGludCBjaGFyQ2xhc3MgPSBnZXRDaGFyQ2xhc3MoY2gpOworICAgICAgICAgICAgU3RhdGVFbnRyeSBlbnRyeSA9IHN0YXRlVGFibGVbc3RhdGVdW2NoYXJDbGFzc107CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN0YXRlID0gZW50cnkuZ2V0TmV3U3RhdGUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3dpdGNoIChlbnRyeS5nZXRBY3Rpb24oKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGNhc2UgQV9BRERDOgorICAgICAgICAgICAgICAgIGFkZExldHRlcihDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2gpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgQV9BRERTOgorICAgICAgICAgICAgICAgIGFkZExldHRlcignICcpOworICAgICAgICAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgICAgY2FzZSBBX05VTEw6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBhZGRMZXR0ZXIoJyAnKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL1N0YXRpc3RpY3NUb29sLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY2hhcnNldGRldC9zYmNzL1N0YXRpc3RpY3NUb29sLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQ3Mjg0ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jaGFyc2V0ZGV0L3NiY3MvU3RhdGlzdGljc1Rvb2wuamF2YQpAQCAtMCwwICsxLDQzMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmNoYXJzZXRkZXQuc2JjczsKKworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIEBhdXRob3IgZW1hZGVyCisgKgorICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdyAtIFByZWZlcmVuY2VzIC0gSmF2YSAtIENvZGUgU3R5bGUgLSBDb2RlIFRlbXBsYXRlcworICovCitwdWJsaWMgY2xhc3MgU3RhdGlzdGljc1Rvb2wgaW1wbGVtZW50cyBOR3JhbVBhcnNlci5OR3JhbVBhcnNlckNsaWVudCwgTkdyYW1MaXN0Lk5HcmFtS2V5TWFwcGVyCit7CisgICAgLyogVE9ETyBNYWtlIHRoaXMgdXNhZ2Ugc3RyaW5nIG1vcmUgc2FuZS4gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgdXNhZ2VTdHJpbmcgPSAKKyAgICAgICAgIlxuVXNhZ2U6IFN0YXRpc3RpY3NUb29sIFtPUFRJT05TXSBbRklMRVNdXG5cbiIgKworICAgICAgICAiVGhpcyBwcm9ncmFtIHdpbGwgcmVhZCBpbiBhIFVuaWNvZGUgdGV4dCBmaWxlIG9mIHRleHQgaW4gYSBwYXJ0aWN1bGFyIGxhbmd1YWdlXG4iICsKKyAgICAgICAgImFuZCBjb21wdXRlIHRoZSBzdGF0aXN0aWNzIG5lZWRlZCB0byBkZXRlY3RlZCB0aGF0IGxhbmd1YWdlIGFuZCBjaGFyYWN0ZXIgc2V0LlxuICIgKworICAgICAgICAiT3B0aW9uczpcbiIgKworICAgICAgICAiLWUgICAgICAgc3BlY2lmeSB0aGUgdGFyZ2V0IGVuY29kaW5nXG4iICsKKyAgICAgICAgIi1oIG9yIC0/IHByaW50IHRoaXMgdXNhZ2UgdGV4dC5cbiIgKworICAgICAgICAiLXYgICAgICAgYWxzbyBnZW5lcmF0ZSBzdGF0aXN0aWNzIGZvciB2aXN1YWwgb3JkZXIuXG4iICsKKyAgICAgICAgIi1sICAgICAgIG9ubHkgZ2VuZXJhdGUgc3RhdGlzdGljcyBmb3IgbG9naWNhbCBvcmRlciAoY2FuY2VsIC12KS4iICsKKyAgICAgICAgIi1jICAgICAgIHJ1biB0aGUgY2hlY2tlci5cbiIgKworICAgICAgICAiLXQgICAgICAgcnVuIHRoZSBlbmNvZGluZyB0ZXN0LlxuIiArCisgICAgICAgICJleGFtcGxlOiBjb20uaWJtLmljdS5kZXYudG9vbC5jaGFyc2V0LlN0YXRpc3RpY3NUb29sIC1lIDg4NTktMSBTcGFuaXNoLnR4dCI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQlVGRkVSX1NJWkUgPSAxMDI0OworICAgIAorICAgIHByaXZhdGUgY2hhcltdIGJ1ZmZlcjsKKyAgICBwcml2YXRlIGludCBidWZJbmRleDsKKyAgICBwcml2YXRlIGludCBidWZNYXg7CisKKyAgICBwcml2YXRlIElucHV0RmlsZSBpbnB1dEZpbGU7CisgICAgCisgICAgcHJpdmF0ZSBOR3JhbUxpc3QgbmdyYW1zOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSBhbGxCeXRlcyA9IHsKKyAgICAgICAgICAgIChieXRlKSAweDAwLCAoYnl0ZSkgMHgwMSwgKGJ5dGUpIDB4MDIsIChieXRlKSAweDAzLCAoYnl0ZSkgMHgwNCwgKGJ5dGUpIDB4MDUsIChieXRlKSAweDA2LCAoYnl0ZSkgMHgwNywKKyAgICAgICAgICAgIChieXRlKSAweDA4LCAoYnl0ZSkgMHgwOSwgKGJ5dGUpIDB4MEEsIChieXRlKSAweDBCLCAoYnl0ZSkgMHgwQywgKGJ5dGUpIDB4MEQsIChieXRlKSAweDBFLCAoYnl0ZSkgMHgwRiwKKyAgICAgICAgICAgIChieXRlKSAweDEwLCAoYnl0ZSkgMHgxMSwgKGJ5dGUpIDB4MTIsIChieXRlKSAweDEzLCAoYnl0ZSkgMHgxNCwgKGJ5dGUpIDB4MTUsIChieXRlKSAweDE2LCAoYnl0ZSkgMHgxNywKKyAgICAgICAgICAgIChieXRlKSAweDE4LCAoYnl0ZSkgMHgxOSwgKGJ5dGUpIDB4MUEsIChieXRlKSAweDFCLCAoYnl0ZSkgMHgxQywgKGJ5dGUpIDB4MUQsIChieXRlKSAweDFFLCAoYnl0ZSkgMHgxRiwKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMSwgKGJ5dGUpIDB4MjIsIChieXRlKSAweDIzLCAoYnl0ZSkgMHgyNCwgKGJ5dGUpIDB4MjUsIChieXRlKSAweDI2LCAoYnl0ZSkgMHgyNywKKyAgICAgICAgICAgIChieXRlKSAweDI4LCAoYnl0ZSkgMHgyOSwgKGJ5dGUpIDB4MkEsIChieXRlKSAweDJCLCAoYnl0ZSkgMHgyQywgKGJ5dGUpIDB4MkQsIChieXRlKSAweDJFLCAoYnl0ZSkgMHgyRiwKKyAgICAgICAgICAgIChieXRlKSAweDMwLCAoYnl0ZSkgMHgzMSwgKGJ5dGUpIDB4MzIsIChieXRlKSAweDMzLCAoYnl0ZSkgMHgzNCwgKGJ5dGUpIDB4MzUsIChieXRlKSAweDM2LCAoYnl0ZSkgMHgzNywKKyAgICAgICAgICAgIChieXRlKSAweDM4LCAoYnl0ZSkgMHgzOSwgKGJ5dGUpIDB4M0EsIChieXRlKSAweDNCLCAoYnl0ZSkgMHgzQywgKGJ5dGUpIDB4M0QsIChieXRlKSAweDNFLCAoYnl0ZSkgMHgzRiwKKyAgICAgICAgICAgIChieXRlKSAweDQwLCAoYnl0ZSkgMHg0MSwgKGJ5dGUpIDB4NDIsIChieXRlKSAweDQzLCAoYnl0ZSkgMHg0NCwgKGJ5dGUpIDB4NDUsIChieXRlKSAweDQ2LCAoYnl0ZSkgMHg0NywKKyAgICAgICAgICAgIChieXRlKSAweDQ4LCAoYnl0ZSkgMHg0OSwgKGJ5dGUpIDB4NEEsIChieXRlKSAweDRCLCAoYnl0ZSkgMHg0QywgKGJ5dGUpIDB4NEQsIChieXRlKSAweDRFLCAoYnl0ZSkgMHg0RiwKKyAgICAgICAgICAgIChieXRlKSAweDUwLCAoYnl0ZSkgMHg1MSwgKGJ5dGUpIDB4NTIsIChieXRlKSAweDUzLCAoYnl0ZSkgMHg1NCwgKGJ5dGUpIDB4NTUsIChieXRlKSAweDU2LCAoYnl0ZSkgMHg1NywKKyAgICAgICAgICAgIChieXRlKSAweDU4LCAoYnl0ZSkgMHg1OSwgKGJ5dGUpIDB4NUEsIChieXRlKSAweDVCLCAoYnl0ZSkgMHg1QywgKGJ5dGUpIDB4NUQsIChieXRlKSAweDVFLCAoYnl0ZSkgMHg1RiwKKyAgICAgICAgICAgIChieXRlKSAweDYwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDdCLCAoYnl0ZSkgMHg3QywgKGJ5dGUpIDB4N0QsIChieXRlKSAweDdFLCAoYnl0ZSkgMHg3RiwKKyAgICAgICAgICAgIChieXRlKSAweDgwLCAoYnl0ZSkgMHg4MSwgKGJ5dGUpIDB4ODIsIChieXRlKSAweDgzLCAoYnl0ZSkgMHg4NCwgKGJ5dGUpIDB4ODUsIChieXRlKSAweDg2LCAoYnl0ZSkgMHg4NywKKyAgICAgICAgICAgIChieXRlKSAweDg4LCAoYnl0ZSkgMHg4OSwgKGJ5dGUpIDB4OEEsIChieXRlKSAweDhCLCAoYnl0ZSkgMHg4QywgKGJ5dGUpIDB4OEQsIChieXRlKSAweDhFLCAoYnl0ZSkgMHg4RiwKKyAgICAgICAgICAgIChieXRlKSAweDkwLCAoYnl0ZSkgMHg5MSwgKGJ5dGUpIDB4OTIsIChieXRlKSAweDkzLCAoYnl0ZSkgMHg5NCwgKGJ5dGUpIDB4OTUsIChieXRlKSAweDk2LCAoYnl0ZSkgMHg5NywKKyAgICAgICAgICAgIChieXRlKSAweDk4LCAoYnl0ZSkgMHg5OSwgKGJ5dGUpIDB4OUEsIChieXRlKSAweDlCLCAoYnl0ZSkgMHg5QywgKGJ5dGUpIDB4OUQsIChieXRlKSAweDlFLCAoYnl0ZSkgMHg5RiwKKyAgICAgICAgICAgIChieXRlKSAweEEwLCAoYnl0ZSkgMHhBMSwgKGJ5dGUpIDB4QTIsIChieXRlKSAweEEzLCAoYnl0ZSkgMHhBNCwgKGJ5dGUpIDB4QTUsIChieXRlKSAweEE2LCAoYnl0ZSkgMHhBNywKKyAgICAgICAgICAgIChieXRlKSAweEE4LCAoYnl0ZSkgMHhBOSwgKGJ5dGUpIDB4QUEsIChieXRlKSAweEFCLCAoYnl0ZSkgMHhBQywgKGJ5dGUpIDB4QUQsIChieXRlKSAweEFFLCAoYnl0ZSkgMHhBRiwKKyAgICAgICAgICAgIChieXRlKSAweEIwLCAoYnl0ZSkgMHhCMSwgKGJ5dGUpIDB4QjIsIChieXRlKSAweEIzLCAoYnl0ZSkgMHhCNCwgKGJ5dGUpIDB4QjUsIChieXRlKSAweEI2LCAoYnl0ZSkgMHhCNywKKyAgICAgICAgICAgIChieXRlKSAweEI4LCAoYnl0ZSkgMHhCOSwgKGJ5dGUpIDB4QkEsIChieXRlKSAweEJCLCAoYnl0ZSkgMHhCQywgKGJ5dGUpIDB4QkQsIChieXRlKSAweEJFLCAoYnl0ZSkgMHhCRiwKKyAgICAgICAgICAgIChieXRlKSAweEMwLCAoYnl0ZSkgMHhDMSwgKGJ5dGUpIDB4QzIsIChieXRlKSAweEMzLCAoYnl0ZSkgMHhDNCwgKGJ5dGUpIDB4QzUsIChieXRlKSAweEM2LCAoYnl0ZSkgMHhDNywKKyAgICAgICAgICAgIChieXRlKSAweEM4LCAoYnl0ZSkgMHhDOSwgKGJ5dGUpIDB4Q0EsIChieXRlKSAweENCLCAoYnl0ZSkgMHhDQywgKGJ5dGUpIDB4Q0QsIChieXRlKSAweENFLCAoYnl0ZSkgMHhDRiwKKyAgICAgICAgICAgIChieXRlKSAweEQwLCAoYnl0ZSkgMHhEMSwgKGJ5dGUpIDB4RDIsIChieXRlKSAweEQzLCAoYnl0ZSkgMHhENCwgKGJ5dGUpIDB4RDUsIChieXRlKSAweEQ2LCAoYnl0ZSkgMHhENywKKyAgICAgICAgICAgIChieXRlKSAweEQ4LCAoYnl0ZSkgMHhEOSwgKGJ5dGUpIDB4REEsIChieXRlKSAweERCLCAoYnl0ZSkgMHhEQywgKGJ5dGUpIDB4REQsIChieXRlKSAweERFLCAoYnl0ZSkgMHhERiwKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwKKyAgICAgICAgICAgIChieXRlKSAweEYwLCAoYnl0ZSkgMHhGMSwgKGJ5dGUpIDB4RjIsIChieXRlKSAweEYzLCAoYnl0ZSkgMHhGNCwgKGJ5dGUpIDB4RjUsIChieXRlKSAweEY2LCAoYnl0ZSkgMHhGNywKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4RkQsIChieXRlKSAweEZFLCAoYnl0ZSkgMHhGRgorICAgIH07CisgICAgCisgICAgLyoqCisgICAgICogCisgICAgICovCisgICAgcHVibGljIFN0YXRpc3RpY3NUb29sKCkKKyAgICB7CisgICAgICAgIGJ1ZmZlciA9IG5ldyBjaGFyW0JVRkZFUl9TSVpFXTsKKyAgICAgICAgCisgICAgICAgIGJ1ZmZlclswXSA9ICcgJzsKKyAgICAgICAgYnVmSW5kZXggPSAwOworICAgICAgICBidWZNYXggPSAxOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHVzYWdlKCkKKyAgICB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih1c2FnZVN0cmluZyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZXhjZXB0aW9uRXJyb3IoRXhjZXB0aW9uIGUpCisgICAgeworICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oImlvRXJyb3I6ICIgKyBlLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHByaXZhdGUgaW50IG5leHRCdWZmZXIoSW5wdXRGaWxlIGlucHV0RmlsZSkKKyAgICB7CisgICAgICAgIGJ1ZkluZGV4ID0gMDsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBpbnB1dEZpbGUucmVhZChidWZmZXIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgY2hhciBuZXh0Q2hhcigpCisgICAgeworICAgICAgICBpZiAoYnVmSW5kZXggPj0gYnVmTWF4KSB7CisgICAgICAgICAgICBidWZNYXggPSBuZXh0QnVmZmVyKGlucHV0RmlsZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChidWZNYXggPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGJ1ZmZlcltidWZJbmRleCsrXTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgaGFuZGxlTkdyYW0oU3RyaW5nIGtleSkKKyAgICB7CisgICAgICAgIG5ncmFtcy5wdXQoa2V5KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIE9iamVjdCBtYXBLZXkoU3RyaW5nIGtleSkKKyAgICB7CisgICAgICAgIHJldHVybiBrZXk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTkdyYW1MaXN0IGR1bXBOR3JhbXMoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gaW5wdXRGaWxlLmdldFBhdGgoKTsKKyAgICAgICAgaW50IGV4dGVuc2lvbiA9IGZpbGVuYW1lLmxhc3RJbmRleE9mKCIuIik7CisgICAgICAgIFN0cmluZyBvdXRwdXRGaWxlTmFtZSA9IGZpbGVuYW1lLnN1YnN0cmluZygwLCBleHRlbnNpb24pICsgIi5yYXciICsgZmlsZW5hbWUuc3Vic3RyaW5nKGV4dGVuc2lvbik7CisgICAgICAgIFByaW50U3RyZWFtIG91dHB1dDsKKyAgICAgICAgZG91YmxlIGN1bXVsYXRpdmUgPSAwOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG91dHB1dCA9IG5ldyBQcmludFN0cmVhbSgKKyAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRwdXRGaWxlTmFtZSksIHRydWUsICJVVEY4Iik7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPyBDb3VsZCBub3Qgb3BlbiAiICsgb3V0cHV0RmlsZU5hbWUgKyAiIGZvciB3cml0aW5nLiIpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihpbnB1dEZpbGUuZ2V0RmlsZW5hbWUoKSArICI6ICIgKyBuZ3JhbXMuZ2V0VW5pcXVlTkdyYW1zKCkgKyAiLyIgKyBuZ3JhbXMuZ2V0VG90YWxOR3JhbXMoKSk7CisgICAgICAgIAorICAgICAgICBBcnJheUxpc3QgYXJyYXkgPSBuZXcgQXJyYXlMaXN0KG5ncmFtcy52YWx1ZXMoKSk7CisgICAgICAgIAorICAgICAgICBDb2xsZWN0aW9ucy5zb3J0KGFycmF5KTsKKyAgICAgICAgCisgICAgICAgIE5HcmFtTGlzdCBzdGF0cyA9IG5ldyBOR3JhbUxpc3QoaW5wdXRGaWxlKTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgaW50IHRvdGFsTkdyYW1zID0gbmdyYW1zLmdldFRvdGFsTkdyYW1zKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYXJyYXkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOyBjb3VudCArPSAxKSB7CisgICAgICAgICAgICBOR3JhbUxpc3QuTkdyYW0gbmdyYW0gID0gKE5HcmFtTGlzdC5OR3JhbSkgaXQubmV4dCgpOworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gbmdyYW0uZ2V0VmFsdWUoKTsKKyAgICAgICAgICAgIGludCByZWZDb3VudCA9IG5ncmFtLmdldFJlZkNvdW50KCk7CisgICAgICAgICAgICBkb3VibGUgcmF0aW8gID0gKGRvdWJsZSkgcmVmQ291bnQgLyB0b3RhbE5HcmFtcyAqIDEwMC4wOworICAgICAgICAgICAgCisgICAgICAgICAgICBjdW11bGF0aXZlICs9IHJhdGlvOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBUT0RPIGNoZWNrIHNob3VsZCBiZSBjb3VudCA8IG1heCAmJiBjdW11bGF0aXZlIDwgbWF4UGVyY2VudAorICAgICAgICAgICAgaWYgKGNvdW50IDwgNjQpIHsKKyAgICAgICAgICAgICAgICBzdGF0cy5wdXQodmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbih2YWx1ZSArICJcdCIgKyByZWZDb3VudCArICJcdCIgKyByYXRpbyArICIlXHQiICsgY3VtdWxhdGl2ZSArICIlIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dHB1dC5jbG9zZSgpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHN0YXRzOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgd3JpdGVTdGF0aXN0aWNzKEFycmF5TGlzdCBrZXlMaXN0LCBib29sZWFuIHZpc3VhbCkKKyAgICB7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IGlucHV0RmlsZS5nZXRQYXRoKCk7CisgICAgICAgIGludCBleHRlbnNpb24gPSBmaWxlbmFtZS5sYXN0SW5kZXhPZigiLiIpOworICAgICAgICBTdHJpbmcgb3V0cHV0RmlsZU5hbWUgPSBmaWxlbmFtZS5zdWJzdHJpbmcoMCwgZXh0ZW5zaW9uKSArICItIiArIGlucHV0RmlsZS5nZXRFbmNvZGluZygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aXN1YWw/ICItdmlzdWFsLmRhdCIgOiAiLmRhdCIpOworICAgICAgICBQcmludFN0cmVhbSBvdXRwdXQ7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgb3V0cHV0ID0gbmV3IFByaW50U3RyZWFtKAorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dHB1dEZpbGVOYW1lKSwgdHJ1ZSwgIkFTQ0lJIik7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPyBDb3VsZCBub3Qgb3BlbiAiICsgb3V0cHV0RmlsZU5hbWUgKyAiIGZvciB3cml0aW5nLiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnQoIiAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7Iik7CisgICAgICAgIAorICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0ga2V5TGlzdC5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7IGkgKz0gMSkgeworICAgICAgICAgICAgSW50ZWdlciBuZ3JhbSA9IChJbnRlZ2VyKSBpdC5uZXh0KCk7CisgICAgICAgIAorICAgICAgICAgICAgaWYgKGkgJSAxNiA9PSAwKSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCJcbiAgICAgICAgIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiMHgiICsgVXRpbGl0eS5oZXgobmdyYW0uaW50VmFsdWUoKSwgNikgKyAiLCAiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4oIlxuICAgIH07XG4iKTsKKyAgICAgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIEdlbmVyYXRlIHRoZSBieXRlIG1hcAorICAgICAgICAgKi8KKyAgICAgICAgY2hhcltdIHVuaWNvZGVzID0gaW5wdXRGaWxlLmRlY29kZShhbGxCeXRlcyk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBiID0gMDsgYiA8IDI1NjsgYiArPSAxKSB7CisgICAgICAgICAgICBjaGFyIHVuaWNvZGUgID0gdW5pY29kZXNbYl07CisgICAgICAgICAgICBpbnQgY2hhckNsYXNzID0gTkdyYW1QYXJzZXIuZ2V0Q2hhckNsYXNzKHVuaWNvZGUpOworICAgICAgICAKKyAgICAgICAgICAgIHN3aXRjaCAoY2hhckNsYXNzKSB7CisgICAgICAgICAgICBjYXNlIE5HcmFtUGFyc2VyLkNfTEVUVEVSOgorICAgICAgICAgICAgICAgIHVuaWNvZGVzW2JdID0gQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKHVuaWNvZGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgTkdyYW1QYXJzZXIuQ19QVU5DVDoKKyAgICAgICAgICAgICAgICB1bmljb2Rlc1tiXSA9ICcgJzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgCisgICAgICAgICAgICBjYXNlIE5HcmFtUGFyc2VyLkNfSUdOT1JFOgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB1bmljb2Rlc1tiXSA9ICdcMCc7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGJ5dGVbXSBieXRlTWFwID0gaW5wdXRGaWxlLmVuY29kZSh1bmljb2Rlcyk7CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnQoIiAgICBwcml2YXRlIHN0YXRpYyBieXRlW10gYnl0ZU1hcCA9IHsiKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGIgPSAwOyBiIDwgMjU2OyBiICs9IDEpIHsKKyAgICAgICAgICAgIGlmIChiICUgOCA9PSAwKSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCJcbiAgICAgICAgIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiKGJ5dGUpIDB4IiArIFV0aWxpdHkuaGV4KGJ5dGVNYXBbYl0gJiAweEZGLCAyKSArICIsICIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbigiXG4gICAgfTsiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIE5HcmFtTGlzdCBjb2xsZWN0U3RhdGlzdGljcyhJbnB1dEZpbGUgZmlsZSkKKyAgICB7CisgICAgICAgIGlmICghZmlsZS5vcGVuKCkpIHs7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW5wdXRGaWxlID0gZmlsZTsKKyAgICAgICAgCisgICAgICAgIE5HcmFtUGFyc2VyIHBhcnNlciA9IG5ldyBOR3JhbVBhcnNlcih0aGlzKTsKKyAgICAgICAgCisgICAgICAgIG5ncmFtcyA9IG5ldyBOR3JhbUxpc3QodGhpcyk7CisgICAgICAgIHBhcnNlci5wYXJzZSgpOworICAgICAgICAKKyAgICAgICAgZmlsZS5jbG9zZSgpOworICAgICAgICAKKyAgICAgICAgTkdyYW1MaXN0IHN0YXRzICAgID0gZHVtcE5HcmFtcygpOworICAgICAgICBBcnJheUxpc3Qgc3RhdEtleXMgPSBuZXcgQXJyYXlMaXN0KHN0YXRzLmtleXMoKSk7CisgICAgICAgIAorICAgICAgICBDb2xsZWN0aW9ucy5zb3J0KHN0YXRLZXlzKTsKKyAgICAgICAgd3JpdGVTdGF0aXN0aWNzKHN0YXRLZXlzLCBmYWxzZSk7CisgICAgICAgIAorICAgICAgICBpZiAoaW5wdXRGaWxlLmdldFZpc3VhbE9yZGVyKCkpIHsKKyAgICAgICAgICAgIEFycmF5TGlzdCByZXZlcnNlZCA9IG5ldyBBcnJheUxpc3Qoc3RhdEtleXMuc2l6ZSgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IHN0YXRLZXlzLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBJbnRlZ2VyIGtleSA9IChJbnRlZ2VyKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgaW50IGsgPSBrZXkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBpbnQgciA9IDA7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgd2hpbGUgKGsgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICByID0gKHIgPDwgOCkgfCAoayAmIDB4RkYpOworICAgICAgICAgICAgICAgICAgICBrID4+PSA4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICByZXZlcnNlZC5hZGQobmV3IEludGVnZXIocikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBDb2xsZWN0aW9ucy5zb3J0KHJldmVyc2VkKTsKKyAgICAgICAgICAgIHdyaXRlU3RhdGlzdGljcyhyZXZlcnNlZCwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBzdGF0czsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIExpc3QgbGlzdCA9IEFycmF5cy5hc0xpc3QoYXJncyk7CisgICAgICAgIElucHV0RmlsZVtdIGlucHV0X2ZpbGVzID0gbmV3IElucHV0RmlsZVthcmdzLmxlbmd0aF07CisgICAgICAgIGludCBmaWxlX2NvdW50ID0gMDsKKyAgICAgICAgU3RyaW5nIGVuY29kaW5nID0gbnVsbDsKKyAgICAgICAgYm9vbGVhbiBydW5fY2hlY2tlciA9IGZhbHNlOworICAgICAgICBib29sZWFuIGVuY29kaW5nX3Rlc3QgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiB2aXN1YWxfb3JkZXIgPSBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBsaXN0Lml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTsgLyphbnl0aGluZz8qLykgeworICAgICAgICAgICAgU3RyaW5nIGFyZyA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGFyZy5lcXVhbHMoIi12IikpIHsKKyAgICAgICAgICAgICAgICB2aXN1YWxfb3JkZXIgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItbCIpKSB7CisgICAgICAgICAgICAgICAgdmlzdWFsX29yZGVyID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1jIikpIHsKKyAgICAgICAgICAgICAgICBydW5fY2hlY2tlciA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi10IikpIHsKKyAgICAgICAgICAgICAgICBlbmNvZGluZ190ZXN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWUiKSkgeworICAgICAgICAgICAgICAgIGlmIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZW5jb2RpbmcgPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFcnJvcjogbWlzc2luZyBlbmNvZGluZy4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoISAoYXJnLmVxdWFscygiLWgiKSB8fCBhcmcuZXF1YWxzKCItPyIpKSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVycm9yOiB1bmtub3duIG9wdGlvbiAiICsgYXJnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW5wdXRfZmlsZXNbZmlsZV9jb3VudCsrXSA9IG5ldyBJbnB1dEZpbGUoYXJnLCBlbmNvZGluZywgdmlzdWFsX29yZGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmKGZpbGVfY291bnQgPT0gMCl7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVycm9yOiB0aGVyZSBhcmUgbm8gZmlsZXMgdG8gcHJvY2Vzcy4iKTsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0YXRpc3RpY3NUb29sIHRvb2wgPSBuZXcgU3RhdGlzdGljc1Rvb2woKTsKKyAgICAgICAgQ2hlY2tlcltdIGNoZWNrZXJzICA9IG5ldyBDaGVja2VyW2ZpbGVfY291bnRdOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGZpbGVfY291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgSW5wdXRGaWxlIGZpbGUgPSBpbnB1dF9maWxlc1tpXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2hlY2tlcnNbaV0gPSBuZXcgQ2hlY2tlcih0b29sLmNvbGxlY3RTdGF0aXN0aWNzKGZpbGUpLCBmaWxlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQ2hlY2tlcnMKKyAgICAgICAgICovCisgICAgICAgIGlmIChydW5fY2hlY2tlcikgeworICAgICAgICAgICAgZm9yKGludCBjID0gMDsgYyA8IGZpbGVfY291bnQ7IGMgKz0gMSkgeworICAgICAgICAgICAgICAgIENoZWNrZXIgY2hlY2tlciA9IGNoZWNrZXJzW2NdOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvcihpbnQgZiA9IDA7IGYgPCBmaWxlX2NvdW50OyBmICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tlci5jaGVjayhpbnB1dF9maWxlc1tmXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBEZXRlY3Rpb24gdGVzdAorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGVuY29kaW5nX3Rlc3QpIHsKKyAgICAgICAgICAgIGNoYXJbXSBidWZmZXIgICA9IG5ldyBjaGFyWzEyOF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRGV0ZWN0aW9uIHRlc3QiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgZiA9IDA7IGYgPCBmaWxlX2NvdW50OyBmICs9IDEpIHsKKyAgICAgICAgICAgICAgICBJbnB1dEZpbGUgZmlsZSA9IGlucHV0X2ZpbGVzW2ZdOworICAgICAgICAgICAgICAgIGludFtdIGhpc3RvZ3JhbSA9IG5ldyBpbnRbZmlsZV9jb3VudF07CisgICAgICAgICAgICAgICAgaW50IGNoYXJDb3VudCwgbWlzc2VzID0gMDsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZmlsZS5nZXRGaWxlbmFtZSgpICsgIigiICsgZmlsZS5nZXRFbmNvZGluZygpICsgIik6Iik7CisgICAgICAgICAgICAgICAgZmlsZS5vcGVuKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPCBmaWxlX2NvdW50OyBjICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tlcnNbY10uc2V0TWFwcGVyKGZpbGUpOyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gZm9yIGVhY2ggYnVmZmVyCisgICAgICAgICAgICAgICAgLy8gICAgIGZvciBlYWNoIGNoZWNrZXIKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgIGNhbGwgY2hlY2tCdWZmZXIsIHNhdmUgc2NvcmUKKyAgICAgICAgICAgICAgICAvLyAgICAgZmluZCBoaWdoZXN0IHNjb3JlLCB1cGRhdGUgaGlzdG9ncmFtIGZvciB0aGF0IGNoZWNrZXIKKyAgICAgICAgICAgICAgICAvLyBzaG93IGNoZWNrZXIgaGlzdG9ncmFtCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgd2hpbGUgKChjaGFyQ291bnQgPSBmaWxlLnJlYWQoYnVmZmVyKSkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGludFtdIHNjb3JlcyA9IG5ldyBpbnRbZmlsZV9jb3VudF07CisgICAgICAgICAgICAgICAgICAgIGludCBiZXN0Rml0ID0gLTEsIG1heFNjb3JlID0gMDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgZmlsZV9jb3VudDsgYyArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzY29yZXNbY10gPSBjaGVja2Vyc1tjXS5jaGVja0J1ZmZlcihidWZmZXIsIGNoYXJDb3VudCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgZmlsZV9jb3VudDsgYyArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2NvcmUgPSBzY29yZXNbY107CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY29yZSA+IG1heFNjb3JlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4U2NvcmUgPSBzY29yZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXN0Rml0ID0gYzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJlc3RGaXQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGlzdG9ncmFtW2Jlc3RGaXRdICs9IDE7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1pc3NlcyArPSAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgZmlsZV9jb3VudDsgYyArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAgICIgKyBjaGVja2Vyc1tjXS5nZXRMYW5ndWFnZSgpICsgIjogIiArIGhpc3RvZ3JhbVtjXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChtaXNzZXMgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAgIE5PTkU6ICIgKyBtaXNzZXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIH0gICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jb21wcmVzc2lvbi9Db21wcmVzc2lvblRhYmxlR2VuZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY29tcHJlc3Npb24vQ29tcHJlc3Npb25UYWJsZUdlbmVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBmNGZkN2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvY29tcHJlc3Npb24vQ29tcHJlc3Npb25UYWJsZUdlbmVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMjIzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5jb21wcmVzc2lvbjsKKworCisvKioKKyAqIFV0aWxpdHkgY2xhc3MgdG8gZ2VuZXJhdGUgdGhlIHRhYmxlcyB1c2VkIGJ5IHRoZSBTQ1NVIGludGVyZmFjZSBhbmQKKyAqIHRoZSBVbmljb2RlQ29tcHJlc3NvciBjbGFzcy4KKyAqCisgKiBAYXV0aG9yIFN0ZXBoZW4gRi4gQm9vdGgKKyAqIEB2ZXJzaW9uIDEuMCAwOCBNYXIgOTkKKyAqLworY2xhc3MgQ29tcHJlc3Npb25UYWJsZUdlbmVyYXRvcgoreworICAgIC8vIGR1cGxpY2F0ZSBvZiBjb25zdGFudHMgaW4gU0NTVQorCisgICAgZmluYWwgc3RhdGljIGludCBMQVRJTklOREVYICAgICAgICAgICAgICAgICAgPSAweEY5OworICAgIGZpbmFsIHN0YXRpYyBpbnQgSVBBRVhURU5TSU9OSU5ERVggICAgICAgICAgID0gMHhGQTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IEdSRUVLSU5ERVggICAgICAgICAgICAgICAgICA9IDB4RkI7CisgICAgZmluYWwgc3RhdGljIGludCBBUk1FTklBTklOREVYICAgICAgICAgICAgICAgPSAweEZDOworICAgIGZpbmFsIHN0YXRpYyBpbnQgSElSQUdBTkFJTkRFWCAgICAgICAgICAgICAgID0gMHhGRDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IEtBVEFLQU5BSU5ERVggICAgICAgICAgICAgICA9IDB4RkU7CisgICAgZmluYWwgc3RhdGljIGludCBIQUxGV0lEVEhLQVRBS0FOQUlOREVYICAgICAgPSAweEZGOworCisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FWCAgICAgICAgICAgICAgICAgICAgPSAweDBCOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1JFU0VSVkVEICAgICAgICAgICAgICAgICAgID0gMHgwQzsgIC8vIHJlc2VydmVkIHZhbHVlCisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEVVICAgICAgICAgICAgICAgICAgICAgPSAweDBFOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRVUgICAgICAgICAgICAgICAgICAgID0gMHgwRjsKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMCAgICAgICAgICAgICAgICAgICAgID0gMHgwMTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTEgICAgICAgICAgICAgICAgICAgICA9IDB4MDI7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEUyICAgICAgICAgICAgICAgICAgICAgPSAweDAzOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMyAgICAgICAgICAgICAgICAgICAgID0gMHgwNDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTQgICAgICAgICAgICAgICAgICAgICA9IDB4MDU7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEU1ICAgICAgICAgICAgICAgICAgICAgPSAweDA2OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNiAgICAgICAgICAgICAgICAgICAgID0gMHgwNzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTcgICAgICAgICAgICAgICAgICAgICA9IDB4MDg7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0UwICAgICAgICAgICAgICAgICAgICA9IDB4MTA7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFMSAgICAgICAgICAgICAgICAgICAgPSAweDExOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTIgICAgICAgICAgICAgICAgICAgID0gMHgxMjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0UzICAgICAgICAgICAgICAgICAgICA9IDB4MTM7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFNCAgICAgICAgICAgICAgICAgICAgPSAweDE0OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTUgICAgICAgICAgICAgICAgICAgID0gMHgxNTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0U2ICAgICAgICAgICAgICAgICAgICA9IDB4MTY7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFNyAgICAgICAgICAgICAgICAgICAgPSAweDE3OworCisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FMCAgICAgICAgICAgICAgICAgICAgPSAweDE4OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTEgICAgICAgICAgICAgICAgICAgID0gMHgxOTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUyICAgICAgICAgICAgICAgICAgICA9IDB4MUE7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FMyAgICAgICAgICAgICAgICAgICAgPSAweDFCOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTQgICAgICAgICAgICAgICAgICAgID0gMHgxQzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU1ICAgICAgICAgICAgICAgICAgICA9IDB4MUQ7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FNiAgICAgICAgICAgICAgICAgICAgPSAweDFFOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTcgICAgICAgICAgICAgICAgICAgID0gMHgxRjsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBVbmljb2RlIG1vZGUgdGFncworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0UwICAgICAgICAgICAgICAgICAgICA9IDB4RTA7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFMSAgICAgICAgICAgICAgICAgICAgPSAweEUxOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTIgICAgICAgICAgICAgICAgICAgID0gMHhFMjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0UzICAgICAgICAgICAgICAgICAgICA9IDB4RTM7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFNCAgICAgICAgICAgICAgICAgICAgPSAweEU0OworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTUgICAgICAgICAgICAgICAgICAgID0gMHhFNTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0U2ICAgICAgICAgICAgICAgICAgICA9IDB4RTY7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFNyAgICAgICAgICAgICAgICAgICAgPSAweEU3OworCisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FMCAgICAgICAgICAgICAgICAgICAgPSAweEU4OworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTEgICAgICAgICAgICAgICAgICAgID0gMHhFOTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUyICAgICAgICAgICAgICAgICAgICA9IDB4RUE7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FMyAgICAgICAgICAgICAgICAgICAgPSAweEVCOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTQgICAgICAgICAgICAgICAgICAgID0gMHhFQzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU1ICAgICAgICAgICAgICAgICAgICA9IDB4RUQ7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FNiAgICAgICAgICAgICAgICAgICAgPSAweEVFOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTcgICAgICAgICAgICAgICAgICAgID0gMHhFRjsKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgVVFVT1RFVSAgICAgICAgICAgICAgICAgICAgID0gMHhGMDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkVYICAgICAgICAgICAgICAgICAgICA9IDB4RjE7CisgICAgZmluYWwgc3RhdGljIGludCBVUkVTRVJWRUQgICAgICAgICAgICAgICAgICAgPSAweEYyOyAgLy8gcmVzZXJ2ZWQgdmFsdWUKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgQkxPQ0tTSVpFID0gMHhGRjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZSB0aGUgdGFibGUgdXNlZCBhcyBzT2Zmc2V0VGFibGUgaW4gU0NTVS4KKyAgICAgKiBUaGlzIHRhYmxlIGNvbnRhaW5zIHByZWZvcm1lZCBpbmRpY2VzIHNvIHdlIGNhbiBkbyBhcnJheSBsb29rdXBzIAorICAgICAqIGluc3RlYWQgb2YgY2FsY3VsYXRpb25zIGZvciBzcGVlZCBkdXJpbmcgZGVjb21wcmVzc2lvbi4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBwcmludE9mZnNldFRhYmxlKCkKKyAgICB7CisgICAgICAgIGludCAgICAgaSAgICAgICAgICAgPSAwOworICAgIGludCBbXSAgICBvZmZzZXRUYWJsZSA9IG5ldyBpbnQgWyBCTE9DS1NJWkUgKyAxIF07CisKKyAgICAgICAgLy8gMHgwMCBpcyByZXNlcnZlZAorCisgICAgICAgIC8vIGhhbGYgYmxvY2tzIGZyb20gVSswMDgwIHRvIFUrMzM4MAorICAgICAgICBmb3IoIGkgPSAweDAxOyBpIDwgMHg2ODsgaSsrICkKKyAgICAgICAgICAgIG9mZnNldFRhYmxlW2ldID0gaSAqIDB4ODA7CisgICAgCisgICAgICAgIC8vIGhhbGYgYmxvY2tzIGZyb20gVStFMDAwIHRvIFUrRkY4MAorICAgICAgICBmb3IoIGkgPSAweDY4OyBpIDwgMHhBODsgaSsrICkKKyAgICAgICAgICAgIG9mZnNldFRhYmxlW2ldID0gKGkgKiAweDgwKSArIDB4QUMwMDsKKyAgICAKKyAgICAgICAgLy8gMHhBOC4uMHhGOCBpcyByZXNlcnZlZAorIAorICAgICAgICBvZmZzZXRUYWJsZVsgTEFUSU5JTkRFWCBdID0gMHgwMEMwOworICAgICAgICBvZmZzZXRUYWJsZVsgSVBBRVhURU5TSU9OSU5ERVggXSA9IDB4MDI1MDsKKyAgICAgICAgb2Zmc2V0VGFibGVbIEdSRUVLSU5ERVggXSA9IDB4MDM3MDsKKyAgICAgICAgb2Zmc2V0VGFibGVbIEFSTUVOSUFOSU5ERVggXSA9IDB4MDUzMDsKKyAgICAgICAgb2Zmc2V0VGFibGVbIEhJUkFHQU5BSU5ERVggXSA9IDB4MzA0MDsKKyAgICAgICAgb2Zmc2V0VGFibGVbIEtBVEFLQU5BSU5ERVggXSA9IDB4MzBBMDsKKyAgICAgICAgb2Zmc2V0VGFibGVbIEhBTEZXSURUSEtBVEFLQU5BSU5ERVggXSA9IDB4RkY2MDsKKworICAgICAgICAvLyBkdW1wIHRoZSBnZW5lcmF0ZWQgdGFibGUKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oInN0YXRpYyBpbnQgW10gc09mZnNldFRhYmxlID0geyIpOworICAgICAgICBmb3IoaSA9IDA7IGkgPCBvZmZzZXRUYWJsZS5sZW5ndGggLSAxOyBpKyspCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIweCIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9mZnNldFRhYmxlW2ldKQorICAgICAgICAgICAgICAgICArICIsICIpOworICAgICAgICBmb3IoaSA9IG9mZnNldFRhYmxlLmxlbmd0aCAtIDE7IGkgPCBvZmZzZXRUYWJsZS5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIjB4IiArIEludGVnZXIudG9IZXhTdHJpbmcob2Zmc2V0VGFibGVbaV0pKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigifTsiKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgdGhlIHRhYmxlIHVzZWQgYXMgc1NpbmdsZVRhZ1RhYmxlIGluIFVuaWNvZGVDb21wcmVzc29yLgorICAgICAqIFRoaXMgdGFibGUgY29udGFpbnMgYm9vbGVhbiB2YWx1ZXMgaW5kaWNhdGluZyBpZiBhIGJ5dGUgaXMgYQorICAgICAqIHNpbmdsZS1ieXRlIG1vZGUgdGFnLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHByaW50U2luZ2xlVGFnVGFibGUoKQorICAgIHsKKyAgICAgICAgaW50ICAgICAgICBpICAgICAgICAgICAgICA9IDA7CisgICAgYm9vbGVhbiBbXSBzaW5nbGVUYWdUYWJsZSA9IG5ldyBib29sZWFuICBbIEJMT0NLU0laRSArIDEgXTsKKworICAgICAgICBmb3IoIGkgPSAweDAwOyBpIDw9IEJMT0NLU0laRTsgaSsrICkgeworICAgICAgICAgICAgc3dpdGNoKCBpICkgeworICAgICAgICAKKyAgICAgICAgY2FzZSBTUVVPVEVVOiAgY2FzZSBTQ0hBTkdFVTogCisgICAgICAgIGNhc2UgU0RFRklORVg6IGNhc2UgU1JFU0VSVkVEOgorICAgICAgICBjYXNlIFNRVU9URTA6ICBjYXNlIFNRVU9URTE6ICAKKyAgICAgICAgY2FzZSBTUVVPVEUyOiAgY2FzZSBTUVVPVEUzOgorICAgICAgICBjYXNlIFNRVU9URTQ6ICBjYXNlIFNRVU9URTU6ICAKKyAgICAgICAgY2FzZSBTUVVPVEU2OiAgY2FzZSBTUVVPVEU3OgorICAgICAgICBjYXNlIFNDSEFOR0UwOiBjYXNlIFNDSEFOR0UxOiAKKyAgICAgICAgY2FzZSBTQ0hBTkdFMjogY2FzZSBTQ0hBTkdFMzoKKyAgICAgICAgY2FzZSBTQ0hBTkdFNDogY2FzZSBTQ0hBTkdFNTogCisgICAgICAgIGNhc2UgU0NIQU5HRTY6IGNhc2UgU0NIQU5HRTc6CisgICAgICAgIGNhc2UgU0RFRklORTA6IGNhc2UgU0RFRklORTE6IAorICAgICAgICBjYXNlIFNERUZJTkUyOiBjYXNlIFNERUZJTkUzOgorICAgICAgICBjYXNlIFNERUZJTkU0OiBjYXNlIFNERUZJTkU1OiAKKyAgICAgICAgY2FzZSBTREVGSU5FNjogY2FzZSBTREVGSU5FNzoKKyAgICAgICAgc2luZ2xlVGFnVGFibGVbaV0gPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgc2luZ2xlVGFnVGFibGVbaV0gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBkdW1wIHRoZSBnZW5lcmF0ZWQgdGFibGUKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJwcml2YXRlIHN0YXRpYyBib29sZWFuIFtdIHNTaW5nbGVUYWdUYWJsZSA9IHsiKTsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgc2luZ2xlVGFnVGFibGUubGVuZ3RoIC0gMTsgaSsrKQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChzaW5nbGVUYWdUYWJsZVtpXSArICIsICIpOworICAgICAgICBmb3IoaSA9IHNpbmdsZVRhZ1RhYmxlLmxlbmd0aCAtIDE7IGkgPCBzaW5nbGVUYWdUYWJsZS5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoc2luZ2xlVGFnVGFibGVbaV0pOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ9OyIpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZSB0aGUgdGFibGUgdXNlZCBhcyBzVW5pY29kZVRhZ1RhYmxlIGluIAorICAgICAqIFRoaXMgdGFibGUgY29udGFpbnMgYm9vbGVhbiB2YWx1ZXMgaW5kaWNhdGluZyBpZiBhIGJ5dGUgaXMgYQorICAgICAqIHVuaWNvZGUgbW9kZSB0YWcuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcHJpbnRVbmljb2RlVGFnVGFibGUoKQorICAgIHsKKyAgICAgICAgaW50ICAgICAgICBpICAgICAgICAgICAgICAgPSAwOworICAgIGJvb2xlYW4gW10gdW5pY29kZVRhZ1RhYmxlID0gbmV3IGJvb2xlYW4gIFsgQkxPQ0tTSVpFICsgMSBdOworCisgICAgICAgIGZvciggaSA9IDB4MDA7IGkgPD0gQkxPQ0tTSVpFOyBpKysgKSB7CisgICAgICAgICAgICBzd2l0Y2goIGkgKSB7CisgICAgICAgIGNhc2UgVVFVT1RFVTogIGNhc2UgVURFRklORVg6IAorICAgICAgICBjYXNlIFVSRVNFUlZFRDoKKyAgICAgICAgY2FzZSBVQ0hBTkdFMDogY2FzZSBVQ0hBTkdFMTogCisgICAgICAgIGNhc2UgVUNIQU5HRTI6IGNhc2UgVUNIQU5HRTM6CisgICAgICAgIGNhc2UgVUNIQU5HRTQ6IGNhc2UgVUNIQU5HRTU6IAorICAgICAgICBjYXNlIFVDSEFOR0U2OiBjYXNlIFVDSEFOR0U3OgorICAgICAgICBjYXNlIFVERUZJTkUwOiBjYXNlIFVERUZJTkUxOiAKKyAgICAgICAgY2FzZSBVREVGSU5FMjogY2FzZSBVREVGSU5FMzoKKyAgICAgICAgY2FzZSBVREVGSU5FNDogY2FzZSBVREVGSU5FNTogCisgICAgICAgIGNhc2UgVURFRklORTY6IGNhc2UgVURFRklORTc6CisgICAgICAgIHVuaWNvZGVUYWdUYWJsZVtpXSA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIAorICAgICAgICBkZWZhdWx0OgorICAgICAgICB1bmljb2RlVGFnVGFibGVbaV0gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBkdW1wIHRoZSBnZW5lcmF0ZWQgdGFibGUKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJwcml2YXRlIHN0YXRpYyBib29sZWFuIFtdIHNVbmljb2RlVGFnVGFibGUgPSB7Iik7CisgICAgICAgIGZvcihpID0gMDsgaSA8IHVuaWNvZGVUYWdUYWJsZS5sZW5ndGggLSAxOyBpKyspCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHVuaWNvZGVUYWdUYWJsZVtpXSArICIsICIpOworICAgICAgICBmb3IoaSA9IHVuaWNvZGVUYWdUYWJsZS5sZW5ndGggLSAxOyBpIDwgdW5pY29kZVRhZ1RhYmxlLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCh1bmljb2RlVGFnVGFibGVbaV0pOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ9OyIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmd2KQorICAgIHsKKyAgICAgICAgcHJpbnRPZmZzZXRUYWJsZSgpOworICAgICAgICBwcmludFNpbmdsZVRhZ1RhYmxlKCk7CisgICAgICAgIHByaW50VW5pY29kZVRhZ1RhYmxlKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2NvbXByZXNzaW9uL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jb21wcmVzc2lvbi9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjRhM2VjOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9jb21wcmVzc2lvbi9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzwhLS0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKy0tPgorPC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorVG9vbCB1c2VkIHRvIHJlYnVpbGQgdGFibGVzIHVzZWQgYnkgdGhlIFVuaWNvZGUgY29tcHJlc3Npb24gY2xhc3Nlcy4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9BUElEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9BUElEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTllYTMxYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0FQSURhdGEuamF2YQpAQCAtMCwwICsxLDEzNyBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisvKioKKyAqIFJlcHJlc2VudCBhIGZpbGUgb2YgQVBJSW5mbyByZWNvcmRzLgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jczsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuemlwLio7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBBUElEYXRhIHsKKyAgICBpbnQgdmVyc2lvbjsKKyAgICBTdHJpbmcgbmFtZTsKKyAgICBTdHJpbmcgYmFzZTsKKyAgICBUcmVlU2V0IHNldDsKKworICAgIHN0YXRpYyBBUElEYXRhIHJlYWQoQnVmZmVyZWRSZWFkZXIgYnIpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEFQSURhdGEgZGF0YSA9IG5ldyBBUElEYXRhKCk7CisKKyAgICAgICAgICAgIGRhdGEudmVyc2lvbiA9IEludGVnZXIucGFyc2VJbnQoQVBJSW5mby5yZWFkVG9rZW4oYnIpKTsgLy8gdmVyc2lvbgorICAgICAgICAgICAgZGF0YS5uYW1lID0gQVBJSW5mby5yZWFkVG9rZW4oYnIpOworICAgICAgICAgICAgZGF0YS5iYXNlID0gQVBJSW5mby5yZWFkVG9rZW4oYnIpOyAvLyBiYXNlCisgICAgICAgICAgICBici5yZWFkTGluZSgpOworCisgICAgICAgICAgICBkYXRhLnNldCA9IG5ldyBUcmVlU2V0KEFQSUluZm8uZGVmYXVsdENvbXBhcmF0b3IoKSk7CisgICAgICAgICAgICBmb3IgKEFQSUluZm8gaW5mbyA9IG5ldyBBUElJbmZvKCk7IGluZm8ucmVhZChicik7IGluZm8gPSBuZXcgQVBJSW5mbygpKSB7CisgICAgICAgICAgICAgICAgZGF0YS5zZXQuYWRkKGluZm8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbigiZXJyb3IgcmVhZGluZyBhcGkgZGF0YSIpOworICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgQVBJRGF0YSByZWFkKEZpbGUgZmlsZSkgeworICAgICAgICBTdHJpbmcgZmlsZU5hbWUgPSBmaWxlLmdldE5hbWUoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIElucHV0U3RyZWFtIGlzOworICAgICAgICAgICAgaWYgKGZpbGVOYW1lLmVuZHNXaXRoKCIuemlwIikpIHsKKyAgICAgICAgICAgICAgICBaaXBGaWxlIHpmID0gbmV3IFppcEZpbGUoZmlsZSk7CisgICAgICAgICAgICAgICAgRW51bWVyYXRpb24gZW50cnlFbnVtID0gemYuZW50cmllcygpOworICAgICAgICAgICAgICAgIGlmIChlbnRyeUVudW0uaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgWmlwRW50cnkgZW50cnkgPSAoWmlwRW50cnkpZW50cnlFbnVtLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGlzID0gemYuZ2V0SW5wdXRTdHJlYW0oZW50cnkpOworICAgICAgICAgICAgICAgICAgICAvLyB3ZSBvbmx5IGhhbmRsZSBvbmUhISEKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oInppcCBmaWxlIGlzIGVtcHR5Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpcyA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICAgICAgaWYgKGZpbGVOYW1lLmVuZHNXaXRoKCIuZ3oiKSkgeworICAgICAgICAgICAgICAgICAgICBpcyA9IG5ldyBHWklQSW5wdXRTdHJlYW0oaXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcyk7CisgICAgICAgICAgICByZXR1cm4gcmVhZChuZXcgQnVmZmVyZWRSZWFkZXIoaXNyKSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbigiZXJyb3IgZ2V0dGluZyBpbmZvIHN0cmVhbTogIiArIGZpbGVOYW1lKTsKKyAgICAgICAgICAgIHJlLmluaXRDYXVzZShlKTsKKyAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIEFQSURhdGEgcmVhZChTdHJpbmcgZmlsZU5hbWUpIHsKKyAgICAgICAgcmV0dXJuIHJlYWQobmV3IEZpbGUoZmlsZU5hbWUpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBzdGFuYW1lcyA9IHsgImRyYWZ0IiwgInN0YWJsZSIsICJkZXByZWNhdGVkIiwgIm9ic29sZXRlIiB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGNhdG5hbWVzID0geyAiY2xhc3NlcyIsICJmaWVsZHMiLCAiY29uc3RydWN0b3JzIiwgIm1ldGhvZHMiIH07CisKKyAgICBwdWJsaWMgdm9pZCBwcmludFN0YXRzKFByaW50V3JpdGVyIHB3KSB7CisgICAgICAgIC8vIGNsYXNzZXMsIG1ldGhvZHMsIGZpZWxkcworICAgICAgICAvLyBkcmFmdCwgc3RhYmxlLCBvdGhlcgorCisgICAgICAgIGludFtdIHN0YXRzID0gbmV3IGludFsxNl07CisKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHNldC5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIEFQSUluZm8gaW5mbyA9IChBUElJbmZvKWl0ZXIubmV4dCgpOworCisgICAgICAgICAgICBpZiAoaW5mby5pc1B1YmxpYygpIHx8IGluZm8uaXNQcm90ZWN0ZWQoKSkgeworICAgICAgICAgICAgICAgIGludCBzdGEgPSBpbmZvLmdldFZhbChBUElJbmZvLlNUQSk7CisgICAgICAgICAgICAgICAgaW50IGNhdCA9IGluZm8uZ2V0VmFsKEFQSUluZm8uQ0FUKTsKKyAgICAgICAgICAgICAgICBzdGF0c1tjYXQgKiA0ICsgc3RhXSArPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaW50IHR0ID0gMDsKKyAgICAgICAgZm9yIChpbnQgY2F0ID0gMDsgY2F0IDwgNDsgKytjYXQpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oY2F0bmFtZXNbY2F0XSk7CisgICAgICAgICAgICBpbnQgdCA9IDA7CisgICAgICAgICAgICBmb3IgKGludCBzdGEgPSAwOyBzdGEgPCA0OyArK3N0YSkgeworICAgICAgICAgICAgICAgIGludCB2ID0gc3RhdHNbY2F0ICogNCArIHN0YV07CisgICAgICAgICAgICAgICAgdCArPSB2OworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIiAgICIgKyBzdGFuYW1lc1tzdGFdICsgIjogIiArIHYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHQgKz0gdDsKKyAgICAgICAgICAgIHB3LnByaW50bG4oInRvdGFsOiAiICsgdCk7CisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICAgICAgcHcucHJpbnRsbigidG90YWwgYXBpczogIiArIHR0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIFByaW50V3JpdGVyIHB3ID0gbmV3IFByaW50V3JpdGVyKFN5c3RlbS5vdXQpOworCisgICAgICAgIFN0cmluZyBwYXRoID0gInNyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzLyI7CisgICAgICAgIFN0cmluZyBmbiA9ICJpY3U0ajM0MS5hcGkuZ3oiOworICAgICAgICBpZiAoYXJncy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgYXJncyA9IG5ldyBTdHJpbmdbXSB7ICItZmlsZSIsIGZuIH07CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgYXJnID0gYXJnc1tpXTsKKyAgICAgICAgICAgIGlmIChhcmcuZXF1YWxzKCItcGF0aCIpKSB7CisgICAgICAgICAgICAgICAgcGF0aCA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLWZpbGUiKSkgeworICAgICAgICAgICAgICAgIGZuID0gYXJnc1srK2ldOworCisgICAgICAgICAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUocGF0aCwgZm4pOworICAgICAgICAgICAgICAgIHJlYWQoZikucHJpbnRTdGF0cyhwdyk7CisgICAgICAgICAgICAgICAgcHcuZmx1c2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0FQSUluZm8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0FQSUluZm8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2IxZjVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQVBJSW5mby5qYXZhCkBAIC0wLDAgKzEsNDk5IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKy8qKgorICogUmVwcmVzZW50cyB0aGUgQVBJIGluZm9ybWF0aW9uIG9uIGEgZG9jIGVsZW1lbnQuCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitjbGFzcyBBUElJbmZvIHsKKyAgICAvLyB2ZXJzaW9uIGlkIGZvciB0aGUgZm9ybWF0IG9mIHRoZSBBUElJbmZvIGRhdGEKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZFUlNJT04gPSAxOworCisgICAgLy8gcHVibGljIGtleXMgYW5kIHZhbHVlcyBmb3IgcXVlcmllcyBvbiBpbmZvCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVEEgPSAwLCBTVEFfRFJBRlQgPSAwLCBTVEFfU1RBQkxFID0gMSwgU1RBX0RFUFJFQ0FURUQgPSAyLCBTVEFfT0JTT0xFVEUgPSAzOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZJUyA9IDEsIFZJU19QQUNLQUdFID0gMCwgVklTX1BVQkxJQz0gMSwgVklTX1BST1RFQ1RFRCA9IDIsIFZJU19QUklWQVRFID0gMzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVEsgPSAyLCBTVEtfU1RBVElDID0gMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGSU4gPSAzLCBGSU5fRklOQUwgPSAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNZTiA9IDQsIFNZTl9TWU5DSFJPTklaRUQgPSAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFCUyA9IDUsIEFCU19BQlNUUkFDVCA9IDE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0FUID0gNiwgQ0FUX0NMQVNTID0gMCwgQ0FUX0ZJRUxEID0gMSwgQ0FUX0NPTlNUUlVDVE9SID0gMiwgQ0FUX01FVEhPRCA9IDM7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFLID0gNzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDTFMgPSA4OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5BTSA9IDk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lHID0gMTA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhDID0gMTE7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlVNX1RZUEVTID0gMTE7CisKKyAgICAvLyB0aGUgc2VwYXJhdG9yIGJldHdlZW4gdG9rZW5zIGluIHRoZSBkYXRhIGZpbGUKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBTRVAgPSAnOyc7CisKKyAgICAvLyBpbnRlcm5hbCBzdGF0ZQorICAgIHByaXZhdGUgaW50ICAgIGluZm87IC8vIGluZm9ybWF0aW9uIGFib3V0IG51bWVyaWMgdmFsdWVzIHBhY2tlZCBpbnRvIGFuIGludCBhcyAyLWJpdCBuaWJibGVzCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFjayA9ICIiOyAvLyBwYWNrYWdlCisgICAgcHJpdmF0ZSBTdHJpbmcgY2xzICA9ICIiOyAgLy8gZW5jbG9zaW5nIGNsYXNzCisgICAgcHJpdmF0ZSBTdHJpbmcgbmFtZSA9ICIiOyAvLyBuYW1lCisgICAgcHJpdmF0ZSBTdHJpbmcgc2lnICA9ICIiOyAgLy8gc2lnbmF0dXJlLCBjbGFzczogaW5oZXJpdGFuY2UsIG1ldGhvZDogc2lnbmF0dXJlLCBmaWVsZDogdHlwZSwgY29uc3Q6IHNpZ25hdHVyZQorICAgIHByaXZhdGUgU3RyaW5nIGV4YyAgPSAiIjsgIC8vIHRocm93cworCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuICgoKHBhY2suaGFzaENvZGUoKSA8PCAzKSBeIGNscy5oYXNoQ29kZSgpKSA8PCAzKSBeIG5hbWUuaGFzaENvZGUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykgeworICAgICAgICBpZiAocmhzID09IHRoaXMpIHJldHVybiB0cnVlOworICAgICAgICBpZiAocmhzID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEFQSUluZm8gdGhhdCA9IChBUElJbmZvKXJoczsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmluZm8gPT0gdGhhdC5pbmZvICYmCisgICAgICAgICAgICAgICAgdGhpcy5wYWNrLmVxdWFscyh0aGF0LnBhY2spICYmCisgICAgICAgICAgICAgICAgdGhpcy5jbHMuZXF1YWxzKHRoYXQuY2xzKSAmJgorICAgICAgICAgICAgICAgIHRoaXMubmFtZS5lcXVhbHModGhhdC5uYW1lKSAmJgorICAgICAgICAgICAgICAgIHRoaXMuc2lnLmVxdWFscyh0aGF0LnNpZykgJiYKKyAgICAgICAgICAgICAgICB0aGlzLmV4Yy5lcXVhbHModGhhdC5leGMpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RHJhZnQoKSB7IHNldFR5cGUoU1RBLCBTVEFfRFJBRlQpOyB9CisgICAgcHVibGljIHZvaWQgc2V0U3RhYmxlKCkgeyBzZXRUeXBlKFNUQSwgU1RBX1NUQUJMRSk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXREZXByZWNhdGVkKCkgeyBzZXRUeXBlKFNUQSwgU1RBX0RFUFJFQ0FURUQpOyB9CisgICAgcHVibGljIHZvaWQgc2V0T2Jzb2xldGUoKSB7IHNldFR5cGUoU1RBLCBTVEFfT0JTT0xFVEUpOyB9CisgICAgcHVibGljIHZvaWQgc2V0UGFja2FnZSgpIHsgc2V0VHlwZShWSVMsIFZJU19QQUNLQUdFKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldFB1YmxpYygpIHsgc2V0VHlwZShWSVMsIFZJU19QVUJMSUMpOyB9CisgICAgcHVibGljIHZvaWQgc2V0UHJvdGVjdGVkKCkgeyBzZXRUeXBlKFZJUywgVklTX1BST1RFQ1RFRCk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXRQcml2YXRlKCkgeyBzZXRUeXBlKFZJUywgVklTX1BSSVZBVEUpOyB9CisgICAgcHVibGljIHZvaWQgc2V0U3RhdGljKCkgeyBzZXRUeXBlKFNUSywgU1RLX1NUQVRJQyk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXRGaW5hbCgpIHsgc2V0VHlwZShGSU4sIEZJTl9GSU5BTCk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXRTeW5jaHJvbml6ZWQoKSB7IHNldFR5cGUoU1lOLCBTWU5fU1lOQ0hST05JWkVEKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldEFic3RyYWN0KCkgeyBzZXRUeXBlKEFCUywgQUJTX0FCU1RSQUNUKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldENsYXNzKCkgeyBzZXRUeXBlKENBVCwgQ0FUX0NMQVNTKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldEZpZWxkKCkgeyBzZXRUeXBlKENBVCwgQ0FUX0ZJRUxEKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldENvbnN0cnVjdG9yKCkgeyBzZXRUeXBlKENBVCwgQ0FUX0NPTlNUUlVDVE9SKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldE1ldGhvZCgpIHsgc2V0VHlwZShDQVQsIENBVF9NRVRIT0QpOyB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRQYWNrYWdlKFN0cmluZyB2YWwpIHsgc2V0VHlwZShQQUssIHZhbCk7IH0KKyAgICBwdWJsaWMgdm9pZCBzZXRDbGFzc05hbWUoU3RyaW5nIHZhbCkgeyBzZXRUeXBlKENMUywgdmFsKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldE5hbWUoU3RyaW5nIHZhbCkgeyBzZXRUeXBlKE5BTSwgdmFsKTsgfQorICAgIHB1YmxpYyB2b2lkIHNldFNpZ25hdHVyZShTdHJpbmcgdmFsKSB7IHNldFR5cGUoU0lHLCB2YWwpOyB9CisgICAgcHVibGljIHZvaWQgc2V0RXhjZXB0aW9ucyhTdHJpbmcgdmFsKSB7IHNldFR5cGUoRVhDLCB2YWwpOyB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RyYWZ0KCkgeyByZXR1cm4gZ2V0VmFsKFNUQSkgPT0gU1RBX0RSQUZUOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNTdGFibGUoKSB7IHJldHVybiBnZXRWYWwoU1RBKSA9PSBTVEFfU1RBQkxFOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNEZXByZWNhdGVkKCkgeyByZXR1cm4gZ2V0VmFsKFNUQSkgPT0gU1RBX0RFUFJFQ0FURUQ7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc09ic29sZXRlKCkgeyByZXR1cm4gZ2V0VmFsKFNUQSkgPT0gU1RBX09CU09MRVRFOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNQYWNrYWdlKCkgeyByZXR1cm4gZ2V0VmFsKFZJUykgPT0gVklTX1BBQ0tBR0U7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1B1YmxpYygpIHsgcmV0dXJuIGdldFZhbChWSVMpID09IFZJU19QVUJMSUM7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1Byb3RlY3RlZCgpIHsgcmV0dXJuIGdldFZhbChWSVMpID09IFZJU19QUk9URUNURUQ7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1ByaXZhdGUoKSB7IHJldHVybiBnZXRWYWwoVklTKSA9PSBWSVNfUFJJVkFURTsgfQorICAgIHB1YmxpYyBib29sZWFuIGlzU3RhdGljKCkgeyByZXR1cm4gZ2V0VmFsKFNUSykgPT0gU1RLX1NUQVRJQzsgfQorICAgIHB1YmxpYyBib29sZWFuIGlzRmluYWwoKSB7IHJldHVybiBnZXRWYWwoRklOKSA9PSBGSU5fRklOQUw7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1N5bmNocm9uaXplZCgpIHsgcmV0dXJuIGdldFZhbChTWU4pID09IFNZTl9TWU5DSFJPTklaRUQ7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0Fic3RyYWN0KCkgeyByZXR1cm4gZ2V0VmFsKEFCUykgPT0gQUJTX0FCU1RSQUNUOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNDbGFzcygpIHsgcmV0dXJuIGdldFZhbChDQVQpID09IENBVF9DTEFTUzsgfQorICAgIHB1YmxpYyBib29sZWFuIGlzRmllbGQoKSB7IHJldHVybiBnZXRWYWwoQ0FUKSA9PSBDQVRfRklFTEQ7IH0KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0NvbnN0cnVjdG9yKCkgeyByZXR1cm4gZ2V0VmFsKENBVCkgPT0gQ0FUX0NPTlNUUlVDVE9SOyB9CisgICAgcHVibGljIGJvb2xlYW4gaXNNZXRob2QoKSB7IHJldHVybiBnZXRWYWwoQ0FUKSA9PSBDQVRfTUVUSE9EOyB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhY2thZ2VOYW1lKCkgeyByZXR1cm4gZ2V0KFBBSywgdHJ1ZSk7IH0KKyAgICBwdWJsaWMgU3RyaW5nIGdldENsYXNzTmFtZSgpIHsgcmV0dXJuIGdldChDTFMsIHRydWUpOyB9CisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeyByZXR1cm4gZ2V0KE5BTSwgdHJ1ZSk7IH0KKyAgICBwdWJsaWMgU3RyaW5nIGdldFNpZ25hdHVyZSgpIHsgcmV0dXJuIGdldChTSUcsIHRydWUpOyB9CisgICAgcHVibGljIFN0cmluZyBnZXRFeGNlcHRpb25zKCkgeyByZXR1cm4gZ2V0KEVYQywgdHJ1ZSk7IH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW50ZWdlciB2YWx1ZSBmb3IgdGhlIHByb3ZpZGVkIHR5cGUuICBUaGUgdHlwZQorICAgICAqIG11c3QgYmUgb25lIG9mIHRoZSBkZWZpbmVkIHR5cGUgbmFtZXMuICBUaGUgcmV0dXJuIHZhbHVlCisgICAgICogd2lsbCBiZSBvbmUgb2YgY29ycmVzcG9uZGluZyB2YWx1ZXMgZm9yIHRoYXQgdHlwZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFZhbChpbnQgdHlwKSB7CisgICAgICAgIHZhbGlkYXRlVHlwZSh0eXApOworICAgICAgICByZXR1cm4gKGluZm8gPj4gKHR5cCoyKSkgJiAweDM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdHJpbmcgdmFsdWUgZm9yIHRoZSBwcm92aWRlZCB0eXBlLiAgVGhlIHR5cGUKKyAgICAgKiBtdXN0IGJlIG9uZSBvZiB0aGUgZGVmaW5lZCB0eXBlIG5hbWVzLiAgVGhlIHJldHVybiB2YWx1ZQorICAgICAqIHdpbGwgYmUgb25lIG9mIGNvcnJlc3BvbmRpbmcgdmFsdWVzIGZvciB0aGF0IHR5cGUuICBCcmllZgorICAgICAqIHNob3VsZCBiZSB0cnVlIGZvciB3cml0aW5nIGRhdGEgZmlsZXMsIGZhbHNlIGZvciBwcmVzZW50aW5nCisgICAgICogaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXQoaW50IHR5cCwgYm9vbGVhbiBicmllZikgeworICAgICAgICB2YWxpZGF0ZVR5cGUodHlwKTsKKyAgICAgICAgU3RyaW5nW10gdmFscyA9IGJyaWVmID8gc2hvcnROYW1lc1t0eXBdIDogbmFtZXNbdHlwXTsKKyAgICAgICAgaWYgKHZhbHMgPT0gbnVsbCkgeworICAgICAgICAgICAgc3dpdGNoICh0eXApIHsKKyAgICAgICAgICAgIGNhc2UgUEFLOiByZXR1cm4gcGFjazsKKyAgICAgICAgICAgIGNhc2UgQ0xTOiByZXR1cm4gY2xzOworICAgICAgICAgICAgY2FzZSBOQU06IHJldHVybiBuYW1lOworICAgICAgICAgICAgY2FzZSBTSUc6IHJldHVybiBzaWc7CisgICAgICAgICAgICBjYXNlIEVYQzogcmV0dXJuIGV4YzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnQgdmFsID0gKGluZm8gPj4gKHR5cCoyKSkgJiAweDM7CisgICAgICAgIHJldHVybiB2YWxzW3ZhbF07CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBudW1lcmljIHZhbHVlIGZvciB0aGUgdHlwZS4gIFRoZSB2YWx1ZSBzaG91bGQgYmUgYQorICAgICAqIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHR5cGUuICBPbmx5IHRoZSBsb3dlciB0d28gYml0cworICAgICAqIG9mIHRoZSB2YWx1ZSBhcmUgdXNlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUeXBlKGludCB0eXAsIGludCB2YWwpIHsKKyAgICAgICAgdmFsaWRhdGVUeXBlKHR5cCk7CisgICAgICAgIGluZm8gJj0gfigweDMgPDwgKHR5cCoyKSk7CisgICAgICAgIGluZm8gfD0gKHZhbCYweDMpIDw8ICh0eXAgKiAyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHN0cmluZyB2YWx1ZSBmb3IgdGhlIHR5cGUuICBGb3IgbnVtZXJpYyB0eXBlcywKKyAgICAgKiB0aGUgdmFsdWUgc2hvdWxkIGJlIGEgc3RyaW5nIGluICdicmllZicgZm9ybWF0LiAgRm9yCisgICAgICogbm9uLW51bWVyaWMgdHlwZXMsIHRoZSB2YWx1ZSBjYW4gYmUgYW55CisgICAgICogc3RyaW5nLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXRUeXBlKGludCB0eXAsIFN0cmluZyB2YWwpIHsKKyAgICAgICAgdmFsaWRhdGVUeXBlKHR5cCk7CisgICAgICAgIFN0cmluZ1tdIHZhbHMgPSBzaG9ydE5hbWVzW3R5cF07CisgICAgICAgIGlmICh2YWxzID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmICh2YWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHZhbCA9ICIiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3dpdGNoICh0eXApIHsKKyAgICAgICAgICAgIGNhc2UgUEFLOiBwYWNrID0gdmFsOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ0xTOiBjbHMgPSB2YWw7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBOQU06IG5hbWUgPSB2YWw7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBTSUc6IHNpZyA9IHZhbDsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEVYQzogZXhjID0gdmFsOyBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFscy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKHZhbHNbaV0pKSB7CisgICAgICAgICAgICAgICAgaW5mbyAmPSB+KDB4MyA8PCAodHlwKjIpKTsKKyAgICAgICAgICAgICAgICBpbmZvIHw9IGkgPDwgKHR5cCoyKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJ1bnJlY29nbml6ZWQgdmFsdWUgJyIgKyB2YWwgKyAiJyBmb3IgdHlwZSAnIiArIHR5cGVOYW1lc1t0eXBdICsgIiciKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXcml0ZSB0aGUgaW5mb3JtYXRpb24gb3V0IGFzIGEgc2luZ2xlIGxpbmUgaW4gYnJpZWYgZm9ybWF0LgorICAgICAqIElmIHRoZXJlIGFyZSBJTyBlcnJvcnMsIHRocm93cyBhIFJ1bnRpbWVFeGNlcHRpb24uCisgICAgICovCisgICAgcHVibGljIHZvaWQgd3JpdGVsbihCdWZmZXJlZFdyaXRlciB3KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE5VTV9UWVBFUzsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHMgPSBnZXQoaSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKHMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB3LndyaXRlKHMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3LndyaXRlKFNFUCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJJTyBFcnJvciIpOworICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkIGEgcmVjb3JkIGZyb20gdGhlIGlucHV0IGFuZCBpbml0aWFsaXplIHRoaXMgQVBJSW5mby4KKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiBzdWNjZXNzZnVsZSwgZmFsc2UgaWYgRU9GLCBvdGhlcndpc2UgdGhyb3cKKyAgICAgKiBhIFJ1bnRpbWVFeGNlcHRpb24uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcmVhZChCdWZmZXJlZFJlYWRlciByKSB7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvciAoOyBpIDwgTlVNX1RZUEVTOyArK2kpIHsKKyAgICAgICAgICAgICAgICBzZXRUeXBlKGksIHJlYWRUb2tlbihyKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByLnJlYWRMaW5lKCk7IC8vIHN3YWxsb3cgbGluZSBlbmQgc2VxdWVuY2UKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaWYgKGkgPT0gMCkgeyAvLyBhc3N1bWUgaWYgZmlyc3QgcmVhZCByZXR1cm5zIGVycm9yLCB3ZSBoYXZlIHJlYWNoZWQgZW5kIG9mIGlucHV0CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJJTyBFcnJvciIpOworICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkIG9uZSB0b2tlbiBmcm9tIGlucHV0LCB3aGljaCBzaG91bGQgaGF2ZSBiZWVuIHdyaXR0ZW4gYnkKKyAgICAgKiBBUElJbmZvLiAgVGhyb3dzIElPRXhjZXB0aW9uIGlmIEVPRiBpcyBlbmNvdW50ZXJlZCBiZWZvcmUgdGhlCisgICAgICogdG9rZW4gaXMgY29tcGxldGUgKGkuZS4gYmVmb3JlIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyIGlzCisgICAgICogZW5jb3VudGVyZWQpIG9yIGlmIHRoZSB0b2tlbiBleGNlZWRzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZgorICAgICAqIDI1NSBjaGFycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZWFkVG9rZW4oQnVmZmVyZWRSZWFkZXIgcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgY2hhcltdIGJ1ZiA9IG5ldyBjaGFyWzI1Nl07CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgZm9yICg7IGkgPCBidWYubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGludCBjID0gci5yZWFkKCk7CisgICAgICAgICAgICBpZiAoYyA9PSAtMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigidW5leHBlY3RlZCBFT0YiKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSBTRVApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1ZltpXSA9IChjaGFyKWM7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0gYnVmLmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJ1bnRlcm1pbmF0ZWQgdG9rZW4iICsgbmV3IFN0cmluZyhidWYpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1ZiwgMCwgaSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgY29tcGFyYXRvciBmb3IgQVBJSW5mby4gIFRoaXMgY29tcGFyZXMgcGFja2FnZXMsIGNsYXNzL25hbWUKKyAgICAgKiAoYXMgdGhlIGluZm8gcmVwcmVzZW50cyBhIGNsYXNzIG9yIG90aGVyIG9iamVjdCksIGNhdGVnb3J5LCBuYW1lLAorICAgICAqIGFuZCBzaWduYXR1cmUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBDb21wYXJhdG9yIGRlZmF1bHRDb21wYXJhdG9yKCkgeworICAgICAgICBmaW5hbCBDb21wYXJhdG9yIGMgPSBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICBBUElJbmZvIGxoaSA9IChBUElJbmZvKWxoczsKKyAgICAgICAgICAgICAgICAgICAgQVBJSW5mbyByaGkgPSAoQVBJSW5mbylyaHM7CisgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBsaGkucGFjay5jb21wYXJlVG8ocmhpLnBhY2spOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChsaGkuZ2V0VmFsKENBVCkgPT0gQ0FUX0NMQVNTID8gbGhpLm5hbWUgOiBsaGkuY2xzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb21wYXJlVG8ocmhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUyA/IHJoaS5uYW1lIDogcmhpLmNscyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuZ2V0VmFsKENBVCktIHJoaS5nZXRWYWwoQ0FUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLm5hbWUuY29tcGFyZVRvKHJoaS5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuc2lnLmNvbXBhcmVUbyhyaGkuc2lnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgY29tcGFyZXMgdHdvIEFQSUluZm9zIGJ5IHBhY2thZ2UsIGNsYXNzL25hbWUsIGNhdGVnb3J5LCBuYW1lLCBhbmQgdGhlbiBpZgorICAgICAqIHRoZSBBUElJbmZvIGRvZXMgbm90IHJlcHJlc2VudCBhIGNsYXNzLCBieSBzaWduYXR1cmUuICBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuCisgICAgICogdGhpcyBhbmQgdGhlIGRlZmF1bHQgY29tcGFyYXRvciBpcyB0aGF0IEFQSUluZm9zIHJlcHJlc2VudGluZyBjbGFzc2VzIGFyZSBjb25zaWRlcmVkCisgICAgICogZXF1YWwgcmVnYXJkbGVzcyBvZiB0aGVpciBzaWduYXR1cmVzICh3aGljaCByZXByZXNlbnQgaW5oZXJpdGFuY2UgZm9yIGNsYXNzZXMpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQ29tcGFyYXRvciBjaGFuZ2VkQ29tcGFyYXRvcigpIHsKKyAgICAgICAgZmluYWwgQ29tcGFyYXRvciBjID0gbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgQVBJSW5mbyBsaGkgPSAoQVBJSW5mbylsaHM7CisgICAgICAgICAgICAgICAgICAgIEFQSUluZm8gcmhpID0gKEFQSUluZm8pcmhzOworICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gbGhpLnBhY2suY29tcGFyZVRvKHJoaS5wYWNrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAobGhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUyA/IGxoaS5uYW1lIDogbGhpLmNscykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29tcGFyZVRvKHJoaS5nZXRWYWwoQ0FUKSA9PSBDQVRfQ0xBU1MgPyByaGkubmFtZSA6IHJoaS5jbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLmdldFZhbChDQVQpLSByaGkuZ2V0VmFsKENBVCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5uYW1lLmNvbXBhcmVUbyhyaGkubmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCAmJiBsaGkuZ2V0VmFsKENBVCkgIT0gQ0FUX0NMQVNTKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaWduYXR1cmUgY2hhbmdlIG9uIGZpZWxkcyBpZ25vcmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGhpLmdldFZhbChDQVQpICE9IENBVF9GSUVMRCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5zaWcuY29tcGFyZVRvKHJoaS5zaWcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBjb21wYXJlcyB0d28gQVBJSW5mb3MgYnkgcGFja2FnZSwgdGhlbiBzb3J0cyBjbGFzc2VzIGJlZm9yZSBub24tY2xhc3NlcywgdGhlbgorICAgICAqIGJ5IGNsYXNzL25hbWUsIGNhdGVnb3J5LCBuYW1lLCBhbmQgc2lnbmF0dXJlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQ29tcGFyYXRvciBjbGFzc0ZpcnN0Q29tcGFyYXRvcigpIHsKKyAgICAgICAgZmluYWwgQ29tcGFyYXRvciBjID0gbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAgICAgICAgICAgICAgICAgQVBJSW5mbyBsaGkgPSAoQVBJSW5mbylsaHM7CisgICAgICAgICAgICAgICAgICAgIEFQSUluZm8gcmhpID0gKEFQSUluZm8pcmhzOworICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gbGhpLnBhY2suY29tcGFyZVRvKHJoaS5wYWNrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGxjbHMgPSBsaGkuZ2V0VmFsKENBVCkgPT0gQ0FUX0NMQVNTOworICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiByY2xzID0gcmhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxjbHMgPT0gcmNscyA/IDAgOiAobGNscyA/IC0xIDogMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAobGNscyA/IGxoaS5uYW1lIDogbGhpLmNscykuY29tcGFyZVRvKHJjbHMgPyByaGkubmFtZSA6IHJoaS5jbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuZ2V0VmFsKENBVCktIHJoaS5nZXRWYWwoQ0FUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkubmFtZS5jb21wYXJlVG8ocmhpLm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwICYmICFsY2xzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLnNpZy5jb21wYXJlVG8ocmhpLnNpZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXcml0ZSB0aGUgZGF0YSBpbiByZXBvcnQgZm9ybWF0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHByaW50KFByaW50V3JpdGVyIHB3LCBib29sZWFuIGRldGFpbCwgYm9vbGVhbiBodG1sKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy8gcmVtb3ZlIGFsbCBvY2N1cnJlbmNlcyBvZiBpY3UgcGFja2FnZXMgZnJvbSB0aGUgcGFyYW0gc3RyaW5nCisgICAgICAgIC8vIGZvcnR1bmF0ZWx5LCBhbGwgdGhlIHBhY2thZ2VzIGhhdmUgNCBjaGFycyAobGFuZywgbWF0aCwgdGV4dCwgdXRpbCkuCisgICAgICAgIFN0cmluZyB4c2lnID0gc2lnOworICAgICAgICBpZiAoIWRldGFpbCkgeworICAgICAgICAgICAgZmluYWwgU3RyaW5nIElDVVBBQ0sgPSAiY29tLmlibS5pY3UuIjsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0YnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaWcubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICAgICAgaW50IG4gPSBzaWcuaW5kZXhPZihJQ1VQQUNLLCBpKTsKKyAgICAgICAgICAgICAgICBpZiAobiA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICB0YnVmLmFwcGVuZChzaWcuc3Vic3RyaW5nKGkpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRidWYuYXBwZW5kKHNpZy5zdWJzdHJpbmcoaSwgbikpOworICAgICAgICAgICAgICAgIGkgPSBuICsgSUNVUEFDSy5sZW5ndGgoKSArIDU7IC8vIHRyYWlsaW5nICd4eHh4LicKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHhzaWcgPSB0YnVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBjb25zdHJ1Y3Qgc2lnbmF0dXJlCisgICAgICAgIGZvciAoaW50IGkgPSBTVEE7IGkgPCBDQVQ7ICsraSkgeyAvLyBpbmNsdWRlIHN0YXR1cworICAgICAgICAgICAgU3RyaW5nIHMgPSBnZXQoaSwgZmFsc2UpOworICAgICAgICAgICAgaWYgKHMgIT0gbnVsbCAmJiBzLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocyk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnICcpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaW50IHZhbCA9IGdldFZhbChDQVQpOworICAgICAgICBzd2l0Y2ggKHZhbCkgeworICAgICAgICBjYXNlIENBVF9DTEFTUzoKKyAgICAgICAgICAgIGlmIChzaWcuaW5kZXhPZigiZXh0ZW5kcyIpID09IC0xKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiaW50ZXJmYWNlICIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJjbGFzcyAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgYnVmLmFwcGVuZCgiPGk+Iik7CisgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjbHMubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChjbHMpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJy4nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQobmFtZSk7CisgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgIGJ1Zi5hcHBlbmQoIjwvaT4iKTsKKyAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRldGFpbCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHNpZyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIENBVF9GSUVMRDoKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoeHNpZyk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICBidWYuYXBwZW5kKG5hbWUpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBDQVRfTUVUSE9EOgorICAgICAgICBjYXNlIENBVF9DT05TVFJVQ1RPUjoKKyAgICAgICAgICAgIGludCBuID0geHNpZy5pbmRleE9mKCcoJyk7CisgICAgICAgICAgICBpZiAobiA+IDApIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHhzaWcuc3Vic3RyaW5nKDAsIG4pKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG4gPSAwOworICAgICAgICAgICAgfQorICAgICAgICBpZiAoaHRtbCkgeworICAgICAgICBidWYuYXBwZW5kKCI8aT4iICsgbmFtZSArICI8L2k+Iik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgIGJ1Zi5hcHBlbmQobmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoeHNpZy5zdWJzdHJpbmcobikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBwdy5wcmludChidWYudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcHJpbnRsbihQcmludFdyaXRlciBwdywgYm9vbGVhbiBkZXRhaWwsIGJvb2xlYW4gaHRtbCkgeworICAgICAgICBwcmludChwdywgZGV0YWlsLCBodG1sKTsKKyAgICAgICAgcHcucHJpbnRsbigpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHR5cGVOYW1lcyA9IHsKKyAgICAgICAgInN0YXR1cyIsICJ2aXNpYmlsaXR5IiwgInN0YXRpYyIsICJmaW5hbCIsICJzeW5jaHJvbml6ZWQiLAorICAgICAgICAiYWJzdHJhY3QiLCAiY2F0ZWdvcnkiLCAicGFja2FnZSIsICJjbGFzcyIsICJuYW1lIiwgInNpZ25hdHVyZSIKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW11bXSBuYW1lcyA9IHsKKyAgICAgICAgeyAiKGRyYWZ0KSAgICAgIiwgIihzdGFibGUpICAgICIsICIoZGVwcmVjYXRlZCkiLCAiKG9ic29sZXRlKSAgIiB9LAorICAgICAgICB7ICJwYWNrYWdlIiwgInB1YmxpYyIsICJwcm90ZWN0ZWQiLCAicHJpdmF0ZSIgfSwKKyAgICAgICAgeyAiIiwgInN0YXRpYyIgfSwKKyAgICAgICAgeyAiIiwgImZpbmFsIiB9LAorICAgICAgICB7ICIiLCAic3luY2hyb25pemVkIiB9LAorICAgICAgICB7ICIiLCAiYWJzdHJhY3QiIH0sCisgICAgICAgIHsgImNsYXNzIiwgImZpZWxkIiwgImNvbnN0cnVjdG9yIiwgIm1ldGhvZCIgIH0sCisgICAgICAgIG51bGwsCisgICAgICAgIG51bGwsCisgICAgICAgIG51bGwsCisgICAgICAgIG51bGwsCisgICAgICAgIG51bGwKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW11bXSBzaG9ydE5hbWVzID0geworICAgICAgICB7ICJEUiIsICJTVCIsICJEUCIsICJPQiIgfSwKKyAgICAgICAgeyAiUEsiLCAiUEIiLCAiUFQiLCAiUFIiIH0sCisgICAgICAgIHsgIk5TIiwgIlNUIiB9LAorICAgICAgICB7ICJORiIsICJGTiIgfSwKKyAgICAgICAgeyAiTlMiLCAiU1kiIH0sCisgICAgICAgIHsgIk5BIiwgIkFCIiB9LAorICAgICAgICB7ICJMIiwgIkYiLCAiQyIsICJNIiB9LAorICAgICAgICBudWxsLAorICAgICAgICBudWxsLAorICAgICAgICBudWxsLAorICAgICAgICBudWxsLAorICAgICAgICBudWxsCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdmFsaWRhdGVUeXBlKGludCB0eXApIHsKKyAgICAgICAgaWYgKHR5cCA8IDAgfHwgdHlwID4gTlVNX1RZUEVTKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJiYWQgdHlwZSBpbmRleDogIiArIHR5cCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gZ2V0KE5BTSwgdHJ1ZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQ2hlY2tBUEkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0NoZWNrQVBJLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVhNjViMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0NoZWNrQVBJLmphdmEKQEAgLTAsMCArMSwxMDI3IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworLyoqCisgKiBHZW5lcmF0ZSBhIGxpc3Qgb2YgSUNVJ3MgcHVibGljIEFQSXMsIHNvcnRlZCBieSBxdWFsaWZpZWQgbmFtZSBhbmQgc2lnbmF0dXJlCisgKiBwdWJsaWMgQVBJcyBhcmUgYWxsIG5vbi1pbnRlcm5hbCwgbm9uLXBhY2thZ2UgYXBpcyBpbiBjb20uaWJtLmljdS5bbGFuZ3xtYXRofHRleHR8dXRpbF0uCisgKiBGb3IgZWFjaCBBUEksIGxpc3QKKyAqIC0gcHVibGljLCBwYWNrYWdlLCBwcm90ZWN0ZWQsIG9yIHByaXZhdGUgKFBCIFBLIFBUIFBSKQorICogLSBzdGF0aWMgb3Igbm9uLXN0YXRpYyAoU1RLIE5TVCkKKyAqIC0gZmluYWwgb3Igbm9uLWZpbmFsIChGTiBORikKKyAqIC0gc3luY2hyb25pemVkIG9yIG5vbi1zeW5jaHJvbml6ZWQgKFNZTiBOU1kpCisgKiAtIHN0YWJsZSwgZHJhZnQsIGRlcHJlY2F0ZWQsIG9ic29sZXRlIChTVCBEUiBEUCBPQikKKyAqIC0gYWJzdHJhY3Qgb3Igbm9uLWFic3RyYWN0IChBQiBOQSkKKyAqIC0gY29uc3RydWN0b3IsIG1lbWJlciwgZmllbGQgKEMgTSBGKQorICoKKyAqIFJlcXVpcmVzIEpESyAxLjQuMiBvciBsYXRlcgorICogCisgKiBTYW1wbGUgaW52b2NhdGlvbjoKKyAqIGM6L2oyc2RrMS40LjIvYmluL2phdmFkb2MgCisgKiAgIC1jbGFzc3BhdGggYzovamQyc2sxLjQuMi9saWIvdG9vbHMuamFyIAorICogICAtZG9jbGV0IGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuQ2hlY2tBUEkgCisgKiAgIC1kb2NsZXRwYXRoIGM6L2RvdWcvY3ZzcHJvai9pY3U0ai9zcmMgCisgKiAgIC1zb3VyY2VwYXRoIGM6L2VjbGlwc2UyLjEvd29ya3NwYWNlMi9pY3U0ai9zcmMgCisgKiAgIC1jb21wYXJlIGM6L2RvdWcvY3ZzcHJvai9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9hcGkyXzZfMS50eHQgCisgKiAgIC1vdXRwdXQgZm9vIAorICogICBjb20uaWJtLmljdS50ZXh0CisgKgorICogdG9kbzogc2VwYXJhdGUgZ2VuZXJhdGlvbiBvZiBkYXRhIGZpbGVzICh3aGljaCByZXF1aXJlcyB0YWdsZXQpIGZyb20gCisgKiBjb21wYXJpc29uIGFuZCByZXBvcnQgZ2VuZXJhdGlvbiAod2hpY2ggZG9lcyBub3QgcmVxdWlyZSBpdCkKKyAqIHRvZG86IHByb3ZpZGUgY29tbWFuZC1saW5lIGNvbnRyb2wgb2YgZmlsdGVycyBvZiB3aGljaCBzdWJjbGFzc2VzL3BhY2thZ2VzIHRvIHByb2Nlc3MKKyAqIHRvZG86IHJlY29yZCBmdWxsIGluaGVyaXRhbmNlIGhlaXJhcmNoeSwgbm90IGp1c3QgaW1tZWRpYXRlIGluaGVyaXRhbmNlIAorICogdG9kbzogYWxsb3cgZm9yIGFsaWFzaW5nIGNvbXBhcmlzb25zIChmb3JjZSAocGtnLikqY2xhc3MgdG8gYmUgdHJlYXRlZCBhcyB0aG91Z2ggaXQgCisgKiB3ZXJlIGluIGEgZGlmZmVyZW50IHBrZy9jbGFzcyBoZWlyYXJjaHkgKGZhY2lsaXRhdGVzIGNvbXBhcmlzb24gb2YgaWN1NGogYW5kIGphdmEpCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzOworCitpbXBvcnQgY29tLnN1bi5qYXZhZG9jLio7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgQ2hlY2tBUEkgeworICAgIFJvb3REb2Mgcm9vdDsKKyAgICBTdHJpbmcgY29tcGFyZTsgLy8gZmlsZQorICAgIFN0cmluZyBjb21wYXJlTmFtZTsKKyAgICBUcmVlU2V0IGNvbXBhcmVTZXQ7CisgICAgVHJlZVNldCByZXN1bHRzOworICAgIGJvb2xlYW4gaHRtbDsKKyAgICBTdHJpbmcgc3JjTmFtZSA9ICJDdXJyZW50IjsgLy8gZGVmYXVsdCBzb3VyY2UgbmFtZQorICAgIFN0cmluZyBvdXRwdXQ7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERBVEFfRklMRV9WRVJTSU9OID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFNFUCA9ICc7JzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEEgPSAwLCBTVEFfRFJBRlQgPSAwLCBTVEFfU1RBQkxFID0gMSwgU1RBX0RFUFJFQ0FURUQgPSAyLCBTVEFfT0JTT0xFVEUgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBWSVMgPSAxLCBWSVNfUEFDS0FHRSA9IDAsIFZJU19QVUJMSUM9IDEsIFZJU19QUk9URUNURUQgPSAyLCBWSVNfUFJJVkFURSA9IDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUSyA9IDIsIFNUS19TVEFUSUMgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSU4gPSAzLCBGSU5fRklOQUwgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTWU4gPSA0LCBTWU5fU1lOQ0hST05JWkVEID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUJTID0gNSwgQUJTX0FCU1RSQUNUID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0FUID0gNiwgQ0FUX0NMQVNTID0gMCwgQ0FUX0ZJRUxEID0gMSwgQ0FUX0NPTlNUUlVDVE9SID0gMiwgQ0FUX01FVEhPRCA9IDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFBBSyA9IDc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENMUyA9IDg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5BTSA9IDk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNJRyA9IDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWEMgPSAxMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTlVNX1RZUEVTID0gMTE7CisKKyAgICBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgQVBJSW5mbyB7CisgICAgICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0VmFsKGludCB0eXApOworICAgICAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nIGdldChpbnQgdHlwLCBib29sZWFuIGJyaWVmKTsKKyAgICAgICAgcHVibGljIGFic3RyYWN0IHZvaWQgd3JpdGUoQnVmZmVyZWRXcml0ZXIgdywgYm9vbGVhbiBicmllZiwgYm9vbGVhbiBodG1sLCBib29sZWFuIGRldGFpbCk7CisgICAgfQorICAgICAgICAKKyAgICBmaW5hbCBzdGF0aWMgY2xhc3MgSW5mbyBleHRlbmRzIEFQSUluZm8geworICAgICAgICBwcml2YXRlIGludCAgICBpbmZvOworICAgICAgICBwcml2YXRlIFN0cmluZyBwYWNrOyAvLyBwYWNrYWdlCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGNsczsgLy8gZW5jbG9zaW5nIGNsYXNzCisgICAgICAgIHByaXZhdGUgU3RyaW5nIG5hbWU7IC8vIG5hbWUKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgc2lnOyAgLy8gc2lnbmF0dXJlLCBjbGFzczogaW5oZXJpdGFuY2UsIG1ldGhvZDogc2lnbmF0dXJlLCBmaWVsZDogdHlwZSwgY29uc3Q6IHNpZ25hdHVyZQorICAgICAgICBwcml2YXRlIFN0cmluZyBleGM7ICAvLyB0aHJvd3MgCisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldFZhbChpbnQgdHlwKSB7CisgICAgICAgICAgICB2YWxpZGF0ZVR5cGUodHlwKTsKKyAgICAgICAgICAgIHJldHVybiAoaW5mbyA+PiAodHlwKjIpKSAmIDB4MzsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KGludCB0eXAsIGJvb2xlYW4gYnJpZWYpIHsKKyAgICAgICAgICAgIHZhbGlkYXRlVHlwZSh0eXApOworICAgICAgICAgICAgU3RyaW5nW10gdmFscyA9IGJyaWVmID8gc2hvcnROYW1lc1t0eXBdIDogbmFtZXNbdHlwXTsKKyAgICAgICAgICAgIGlmICh2YWxzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cCkgeworICAgICAgICAgICAgICAgIGNhc2UgUEFLOiByZXR1cm4gcGFjazsKKyAgICAgICAgICAgICAgICBjYXNlIENMUzogcmV0dXJuIGNsczsKKyAgICAgICAgICAgICAgICBjYXNlIE5BTTogcmV0dXJuIG5hbWU7CisgICAgICAgICAgICAgICAgY2FzZSBTSUc6IHJldHVybiBzaWc7CisgICAgICAgICAgICAgICAgY2FzZSBFWEM6IHJldHVybiBleGM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHZhbCA9IChpbmZvID4+ICh0eXAqMikpICYgMHgzOworICAgICAgICAgICAgcmV0dXJuIHZhbHNbdmFsXTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCBzZXRUeXBlKGludCB0eXAsIGludCB2YWwpIHsKKyAgICAgICAgICAgIHZhbGlkYXRlVHlwZSh0eXApOworICAgICAgICAgICAgaW5mbyAmPSB+KDB4MyA8PCAodHlwKjIpKTsKKyAgICAgICAgICAgIGluZm8gfD0gKHZhbCYweDMpIDw8ICh0eXAgKiAyKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCBzZXRUeXBlKGludCB0eXAsIFN0cmluZyB2YWwpIHsKKyAgICAgICAgICAgIHZhbGlkYXRlVHlwZSh0eXApOworICAgICAgICAgICAgU3RyaW5nW10gdmFscyA9IHNob3J0TmFtZXNbdHlwXTsKKyAgICAgICAgICAgIGlmICh2YWxzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cCkgeworICAgICAgICAgICAgICAgIGNhc2UgUEFLOiBwYWNrID0gdmFsOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENMUzogY2xzID0gdmFsOyBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIE5BTTogbmFtZSA9IHZhbDsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBTSUc6IHNpZyA9IHZhbDsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBFWEM6IGV4YyA9IHZhbDsgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWxzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbC5lcXVhbHNJZ25vcmVDYXNlKHZhbHNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGluZm8gJj0gfigweDMgPDwgKHR5cCoyKSk7CisgICAgICAgICAgICAgICAgICAgIGluZm8gfD0gaSA8PCAodHlwKjIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJ1bnJlY29nbml6ZWQgdmFsdWUgJyIgKyB2YWwgKyAiJyBmb3IgdHlwZSAnIiArIHR5cGVOYW1lc1t0eXBdICsgIiciKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKEJ1ZmZlcmVkV3JpdGVyIHcsIGJvb2xlYW4gYnJpZWYsIGJvb2xlYW4gaHRtbCwgYm9vbGVhbiBkZXRhaWwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKGJyaWVmKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVNX1RZUEVTOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzID0gZ2V0KGksIHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUocyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKFNFUCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgYWxsIG9jY3VycmVuY2VzIG9mIGljdSBwYWNrYWdlcyBmcm9tIHRoZSBwYXJhbSBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9ydHVuYXRlbHksIGFsbCB0aGUgcGFja2FnZXMgaGF2ZSA0IGNoYXJzIChsYW5nLCBtYXRoLCB0ZXh0LCB1dGlsKS4KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHhzaWcgPSBzaWc7CisgICAgICAgICAgICAgICAgICAgIGlmICghZGV0YWlsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgSUNVUEFDSyA9ICJjb20uaWJtLmljdS4iOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2lnLmxlbmd0aCgpOykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuID0gc2lnLmluZGV4T2YoSUNVUEFDSywgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG4gPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChzaWcuc3Vic3RyaW5nKGkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc2lnLnN1YnN0cmluZyhpLCBuKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSA9IG4gKyBJQ1VQQUNLLmxlbmd0aCgpICsgNTsgLy8gdHJhaWxpbmcgJ3h4eHguJworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgeHNpZyA9IGJ1Zi50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gY29uc3RydWN0IHNpZ25hdHVyZQorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gU1RBOyBpIDwgQ0FUOyArK2kpIHsgLy8gaW5jbHVkZSBzdGF0dXMKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzID0gZ2V0KGksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzICE9IG51bGwgJiYgcy5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PSBTVEEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgnKCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCcpJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZShzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgnICcpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaW50IHZhbCA9IGdldFZhbChDQVQpOworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIENBVF9DTEFTUzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzaWcuaW5kZXhPZigiZXh0ZW5kcyIpID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiaW50ZXJmYWNlICIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCJjbGFzcyAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjbHMubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZShjbHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoJy4nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUobmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGV0YWlsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgnICcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoc2lnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQ0FUX0ZJRUxEOgorICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSh4c2lnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoJyAnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUobmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIENBVF9NRVRIT0Q6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQ0FUX0NPTlNUUlVDVE9SOgorICAgICAgICAgICAgICAgICAgICAgICAgaW50IG4gPSB4c2lnLmluZGV4T2YoJygnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoeHNpZy5zdWJzdHJpbmcoMCwgbikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoJyAnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKG5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSh4c2lnLnN1YnN0cmluZyhuKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJJTyBFcnJvciIpOworICAgICAgICAgICAgICAgIHJlLmluaXRDYXVzZShlKTsKKyAgICAgICAgICAgICAgICB0aHJvdyByZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIHJlYWQoQnVmZmVyZWRSZWFkZXIgcikgeworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBmb3IgKDsgaSA8IE5VTV9UWVBFUzsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHNldFR5cGUoaSwgcmVhZFRva2VuKHIpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgci5yZWFkTGluZSgpOyAvLyBzd2FsbG93IGxpbmUgZW5kIHNlcXVlbmNlCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChpID09IDApIHsgLy8gYXNzdW1lIGlmIGZpcnN0IHJlYWQgcmV0dXJucyBlcnJvciwgd2UgaGF2ZSByZWFjaGVkIGVuZCBvZiBpbnB1dAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbigiSU8gRXJyb3IiKTsKKyAgICAgICAgICAgICAgICByZS5pbml0Q2F1c2UoZSk7CisgICAgICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gcmVhZChQcm9ncmFtRWxlbWVudERvYyBkb2MpIHsKKworICAgICAgICAgICAgLy8gRG9jLiBuYW1lCisgICAgICAgICAgICAvLyBEb2MuIGlzRmllbGQsIGlzTWV0aG9kLCBpc0NvbnN0cnVjdG9yLCBpc0NsYXNzLCBpc0ludGVyZmFjZQorICAgICAgICAgICAgLy8gUHJvZ3JhbUVsZW1lbnREb2MuIGNvbnRhaW5pbmdDbGFzcywgY29udGFpbmluZ1BhY2thZ2UKKyAgICAgICAgICAgIC8vIFByb2dyYW1FbGVtZW50RG9jLiBpc1B1YmxpYywgaXNQcm90ZWN0ZWQsIGlzUHJpdmF0ZSwgaXNQYWNrYWdlUHJpdmF0ZQorICAgICAgICAgICAgLy8gUHJvZ3JhbUVsZW1lbnREb2MuIGlzU3RhdGljLCBpc0ZpbmFsCisgICAgICAgICAgICAvLyBNZW1iZXJEb2MuaXNTeW50aGV0aWMKKyAgICAgICAgICAgIC8vIEV4ZWN1dGFibGVNZW1iZXJEb2MgaXNTeW5jaHJvbml6ZWQsIHNpZ25hdHVyZQorICAgICAgICAgICAgLy8gVHlwZS50b1N0cmluZygpIC8vIGUuZy4gIlN0cmluZ1tdW10iCisgICAgICAgICAgICAvLyBDbGFzc0RvYy5pc0Fic3RyYWN0LCBzdXBlckNsYXNzLCBpbnRlcmZhY2VzLCBmaWVsZHMsIG1ldGhvZHMsIGNvbnN0cnVjdG9ycywgaW5uZXJDbGFzc2VzCisgICAgICAgICAgICAvLyBGaWVsZERvYyB0eXBlCisgICAgICAgICAgICAvLyBDb25zdHJ1Y3RvckRvYyBxdWFsaWZpZWROYW1lCisgICAgICAgICAgICAvLyBNZXRob2REb2MgaXNBYnN0cmFjdCwgcmV0dXJuVHlwZQorCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHN0YXR1cworICAgICAgICAgICAgc2V0VHlwZShTVEEsIHRhZ1N0YXR1cyhkb2MpKTsKKworICAgICAgICAgICAgLy8gdmlzaWJpbGl0eQorICAgICAgICAgICAgaWYgKGRvYy5pc1B1YmxpYygpKSB7CisgICAgICAgICAgICAgICAgc2V0VHlwZShWSVMsIFZJU19QVUJMSUMpOworICAgICAgICAgICAgfSBlbHNlIGlmIChkb2MuaXNQcm90ZWN0ZWQoKSkgeworICAgICAgICAgICAgICAgIHNldFR5cGUoVklTLCBWSVNfUFJPVEVDVEVEKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9jLmlzUHJpdmF0ZSgpKSB7CisgICAgICAgICAgICAgICAgc2V0VHlwZShWSVMsIFZJU19QUklWQVRFKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCBpcyBwYWNrYWdlCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHN0YXRpYworICAgICAgICAgICAgaWYgKGRvYy5pc1N0YXRpYygpKSB7CisgICAgICAgICAgICAgICAgc2V0VHlwZShTVEssIFNUS19TVEFUSUMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IGlzIG5vbi1zdGF0aWMKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gZmluYWwKKyAgICAgICAgICAgIGlmIChkb2MuaXNGaW5hbCgpKSB7CisgICAgICAgICAgICAgICAgc2V0VHlwZShGSU4sIEZJTl9GSU5BTCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgaXMgbm9uLWZpbmFsCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHR5cGUKKyAgICAgICAgICAgIGlmIChkb2MuaXNGaWVsZCgpKSB7CisgICAgICAgICAgICAgICAgc2V0VHlwZShDQVQsIENBVF9GSUVMRCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc01ldGhvZCgpKSB7CisgICAgICAgICAgICAgICAgc2V0VHlwZShDQVQsIENBVF9NRVRIT0QpOworICAgICAgICAgICAgfSBlbHNlIGlmIChkb2MuaXNDb25zdHJ1Y3RvcigpKSB7CisgICAgICAgICAgICAgICAgc2V0VHlwZShDQVQsIENBVF9DT05TVFJVQ1RPUik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc0NsYXNzKCkgfHwgZG9jLmlzSW50ZXJmYWNlKCkpIHsKKyAgICAgICAgICAgICAgICBzZXRUeXBlKENBVCwgQ0FUX0NMQVNTKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc2V0VHlwZShQQUssIGRvYy5jb250YWluaW5nUGFja2FnZSgpLm5hbWUoKSk7CisgICAgICAgICAgICBzZXRUeXBlKENMUywgKGRvYy5pc0NsYXNzKCkgfHwgZG9jLmlzSW50ZXJmYWNlKCkgfHwgKGRvYy5jb250YWluaW5nQ2xhc3MoKSA9PSBudWxsKSkgPyAiIiA6IGRvYy5jb250YWluaW5nQ2xhc3MoKS5uYW1lKCkpOworICAgICAgICAgICAgc2V0VHlwZShOQU0sIGRvYy5uYW1lKCkpOworCisgICAgICAgICAgICBpZiAoZG9jIGluc3RhbmNlb2YgRmllbGREb2MpIHsKKyAgICAgICAgICAgICAgICBGaWVsZERvYyBmZG9jID0gKEZpZWxkRG9jKWRvYzsKKyAgICAgICAgICAgICAgICBzZXRUeXBlKFNJRywgZmRvYy50eXBlKCkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGRvYyBpbnN0YW5jZW9mIENsYXNzRG9jKSB7CisgICAgICAgICAgICAgICAgQ2xhc3NEb2MgY2RvYyA9IChDbGFzc0RvYylkb2M7CisKKyAgICAgICAgICAgICAgICBpZiAoY2RvYy5pc0NsYXNzKCkgJiYgY2RvYy5pc0Fic3RyYWN0KCkpIHsgLy8gaW50ZXJmYWNlcyBhcmUgYWJzdHJhY3QgYnkgZGVmYXVsdCwgZG9uJ3QgbWFyayB0aGVtIGFzIGFic3RyYWN0CisgICAgICAgICAgICAgICAgICAgIHNldFR5cGUoQUJTLCBBQlNfQUJTVFJBQ1QpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgaWYgKGNkb2MuaXNDbGFzcygpKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoImV4dGVuZHMgIik7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY2RvYy5zdXBlcmNsYXNzKCkucXVhbGlmaWVkTmFtZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgQ2xhc3NEb2NbXSBpbXAgPSBjZG9jLmludGVyZmFjZXMoKTsKKyAgICAgICAgICAgICAgICBpZiAoaW1wICE9IG51bGwgJiYgaW1wLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJpbXBsZW1lbnRzIik7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW1wLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiICIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChpbXBbaV0ucXVhbGlmaWVkTmFtZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXRUeXBlKFNJRywgYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBFeGVjdXRhYmxlTWVtYmVyRG9jIGVtZG9jID0gKEV4ZWN1dGFibGVNZW1iZXJEb2MpZG9jOworICAgICAgICAgICAgICAgIGlmIChlbWRvYy5pc1N5bmNocm9uaXplZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHNldFR5cGUoU1lOLCBTWU5fU1lOQ0hST05JWkVEKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoZG9jIGluc3RhbmNlb2YgTWV0aG9kRG9jKSB7CisgICAgICAgICAgICAgICAgICAgIE1ldGhvZERvYyBtZG9jID0gKE1ldGhvZERvYylkb2M7CisgICAgICAgICAgICAgICAgICAgIGlmIChtZG9jLmlzQWJzdHJhY3QoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0VHlwZShBQlMsIEFCU19BQlNUUkFDVCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc2V0VHlwZShTSUcsIG1kb2MucmV0dXJuVHlwZSgpLnRvU3RyaW5nKCkgKyBlbWRvYy5zaWduYXR1cmUoKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gY29uc3RydWN0b3IKKyAgICAgICAgICAgICAgICAgICAgc2V0VHlwZShTSUcsIGVtZG9jLnNpZ25hdHVyZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBDb21wYXJhdG9yIGRlZmF1bHRDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgZmluYWwgQ29tcGFyYXRvciBjID0gbmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbmZvIGxoaSA9IChJbmZvKWxoczsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluZm8gcmhpID0gKEluZm8pcmhzOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IGxoaS5wYWNrLmNvbXBhcmVUbyhyaGkucGFjayk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAobGhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUyA/IGxoaS5uYW1lIDogbGhpLmNscykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbXBhcmVUbyhyaGkuZ2V0VmFsKENBVCkgPT0gQ0FUX0NMQVNTID8gcmhpLm5hbWUgOiByaGkuY2xzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLmdldFZhbChDQVQpLSByaGkuZ2V0VmFsKENBVCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLm5hbWUuY29tcGFyZVRvKHJoaS5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5zaWcuY29tcGFyZVRvKHJoaS5zaWcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdGF0aWMgQ29tcGFyYXRvciBjaGFuZ2VkQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgIGZpbmFsIENvbXBhcmF0b3IgYyA9IG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5mbyBsaGkgPSAoSW5mbylsaHM7CisgICAgICAgICAgICAgICAgICAgICAgICBJbmZvIHJoaSA9IChJbmZvKXJoczsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBsaGkucGFjay5jb21wYXJlVG8ocmhpLnBhY2spOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKGxoaS5nZXRWYWwoQ0FUKSA9PSBDQVRfQ0xBU1MgPyBsaGkubmFtZSA6IGxoaS5jbHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb21wYXJlVG8ocmhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUyA/IHJoaS5uYW1lIDogcmhpLmNscyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5nZXRWYWwoQ0FUKS0gcmhpLmdldFZhbChDQVQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5uYW1lLmNvbXBhcmVUbyhyaGkubmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDAgJiYgbGhpLmdldFZhbChDQVQpICE9IENBVF9DTEFTUykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxoaS5zaWcuY29tcGFyZVRvKHJoaS5zaWcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdGF0aWMgQ29tcGFyYXRvciBjbGFzc0ZpcnN0Q29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgIGZpbmFsIENvbXBhcmF0b3IgYyA9IG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5mbyBsaGkgPSAoSW5mbylsaHM7CisgICAgICAgICAgICAgICAgICAgICAgICBJbmZvIHJoaSA9IChJbmZvKXJoczsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBsaGkucGFjay5jb21wYXJlVG8ocmhpLnBhY2spOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBsY2xzID0gbGhpLmdldFZhbChDQVQpID09IENBVF9DTEFTUzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHJjbHMgPSByaGkuZ2V0VmFsKENBVCkgPT0gQ0FUX0NMQVNTOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxjbHMgPT0gcmNscyA/IDAgOiAobGNscyA/IC0xIDogMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChsY2xzID8gbGhpLm5hbWUgOiBsaGkuY2xzKS5jb21wYXJlVG8ocmNscyA/IHJoaS5uYW1lIDogcmhpLmNscyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbGhpLmdldFZhbChDQVQpLSByaGkuZ2V0VmFsKENBVCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkubmFtZS5jb21wYXJlVG8ocmhpLm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gMCAmJiAhbGNscykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBsaGkuc2lnLmNvbXBhcmVUbyhyaGkuc2lnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJldHVybiBjOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gdHlwZU5hbWVzID0geworICAgICAgICAgICAgInN0YXR1cyIsICJ2aXNpYmlsaXR5IiwgInN0YXRpYyIsICJmaW5hbCIsICJzeW5jaHJvbml6ZWQiLCAKKyAgICAgICAgICAgICJhYnN0cmFjdCIsICJjYXRlZ29yeSIsICJwYWNrYWdlIiwgImNsYXNzIiwgIm5hbWUiLCAic2lnbmF0dXJlIgorICAgICAgICB9OworCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdW10gbmFtZXMgPSB7CisgICAgICAgICAgICB7ICJkcmFmdCAgICAgIiwgInN0YWJsZSAgICAiLCAiZGVwcmVjYXRlZCIsICJvYnNvbGV0ZSAgIiB9LAorICAgICAgICAgICAgeyAicGFja2FnZSIsICJwdWJsaWMiLCAicHJvdGVjdGVkIiwgInByaXZhdGUiIH0sCisgICAgICAgICAgICB7ICIiLCAic3RhdGljIiB9LAorICAgICAgICAgICAgeyAiIiwgImZpbmFsIiB9LAorICAgICAgICAgICAgeyAiIiwgInN5bmNocm9uaXplZCIgfSwKKyAgICAgICAgICAgIHsgIiIsICJhYnN0cmFjdCIgfSwKKyAgICAgICAgICAgIHsgImNsYXNzIiwgImZpZWxkIiwgImNvbnN0cnVjdG9yIiwgIm1ldGhvZCIgIH0sCisgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgbnVsbAorICAgICAgICB9OworCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdW10gc2hvcnROYW1lcyA9IHsKKyAgICAgICAgICAgIHsgIkRSIiwgIlNUIiwgIkRQIiwgIk9CIiB9LAorICAgICAgICAgICAgeyAiUEsiLCAiUEIiLCAiUFQiLCAiUFIiIH0sCisgICAgICAgICAgICB7ICJOUyIsICJTVCIgfSwKKyAgICAgICAgICAgIHsgIk5GIiwgIkZOIiB9LAorICAgICAgICAgICAgeyAiTlMiLCAiU1kiIH0sCisgICAgICAgICAgICB7ICJOQSIsICJBQiIgfSwKKyAgICAgICAgICAgIHsgIkwiLCAiRiIsICJDIiwgIk0iIH0sCisgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgbnVsbAorICAgICAgICB9OworCisgICAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdmFsaWRhdGVUeXBlKGludCB0eXApIHsKKyAgICAgICAgICAgIGlmICh0eXAgPCAwIHx8IHR5cCA+IE5VTV9UWVBFUykgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJhZCB0eXBlIGluZGV4OiAiICsgdHlwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0KE5BTSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgRGVsdGFJbmZvIGV4dGVuZHMgQVBJSW5mbyB7CisgICAgICAgIHByaXZhdGUgSW5mbyBhOworICAgICAgICBwcml2YXRlIEluZm8gYjsKKworICAgICAgICBEZWx0YUluZm8oSW5mbyBhLCBJbmZvIGIpIHsKKyAgICAgICAgICAgIHRoaXMuYSA9IGE7CisgICAgICAgICAgICB0aGlzLmIgPSBiOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRWYWwoaW50IHR5cCkgeworICAgICAgICAgICAgcmV0dXJuIGEuZ2V0VmFsKHR5cCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldChpbnQgdHlwLCBib29sZWFuIGJyaWVmKSB7CisgICAgICAgICAgICByZXR1cm4gYS5nZXQodHlwLCBicmllZik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShCdWZmZXJlZFdyaXRlciB3LCBib29sZWFuIGJyaWVmLCBib29sZWFuIGh0bWwsIGJvb2xlYW4gZGV0YWlsKSB7CisgICAgICAgICAgICBhLndyaXRlKHcsIGJyaWVmLCBodG1sLCBkZXRhaWwpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoaHRtbCkgeworICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCI8YnI+Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHcubmV3TGluZSgpOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgYi53cml0ZSh3LCBicmllZiwgaHRtbCwgZGV0YWlsKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gYS5nZXQoTkFNLCB0cnVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgaW50IG9wdGlvbkxlbmd0aChTdHJpbmcgb3B0aW9uKSB7CisgICAgICAgIGlmIChvcHRpb24uZXF1YWxzKCItaHRtbCIpKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCItbmFtZSIpKSB7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCItb3V0cHV0IikpIHsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbi5lcXVhbHMoIi1jb21wYXJlIikpIHsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBzdGFydChSb290RG9jIHJvb3QpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGVja0FQSShyb290KS5ydW4oKTsKKyAgICB9CisKKyAgICBDaGVja0FQSShSb290RG9jIHJvb3QpIHsKKyAgICAgICAgdGhpcy5yb290ID0gcm9vdDsKKworICAgICAgICAvLyAgICAgIHRoaXMuY29tcGFyZSA9ICJjOi9kb3VnL2N2c3Byb2ovaWN1NGovc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvYXBpMl84LnR4dCI7CisKKyAgICAgICAgU3RyaW5nW11bXSBvcHRpb25zID0gcm9vdC5vcHRpb25zKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3B0aW9ucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIG9wdCA9IG9wdGlvbnNbaV1bMF07CisgICAgICAgICAgICBpZiAob3B0LmVxdWFscygiLWh0bWwiKSkgeworICAgICAgICAgICAgICAgIHRoaXMuaHRtbCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHMoIi1uYW1lIikpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnNyY05hbWUgPSBvcHRpb25zW2ldWzFdOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCItb3V0cHV0IikpIHsKKyAgICAgICAgICAgICAgICB0aGlzLm91dHB1dCA9IG9wdGlvbnNbaV1bMV07CisgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHMoIi1jb21wYXJlIikpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmNvbXBhcmUgPSBvcHRpb25zW2ldWzFdOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGNvbXBhcmUgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBVUkwgdXJsID0gbmV3IFVSTChjb21wYXJlKTsKKyAgICAgICAgICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZShjb21wYXJlKTsKKyAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZik7CisgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGlzKTsKKyAgICAgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihpc3IpOworCisgICAgICAgICAgICAgICAgLy8gcmVhZCBoZWFkZXIgbGluZQorICAgICAgICAgICAgICAgIGludCB2ZXJzaW9uID0gSW50ZWdlci5wYXJzZUludChyZWFkVG9rZW4oYnIpKTsKKyAgICAgICAgICAgICAgICAvLyBjaGVjayB2ZXJzaW9uIGlmIHdlIGNoYW5nZSBpdCBsYXRlciwgcHJvYmFibHkgY2FuIGp1c3QgcmVidWlsZCB0aG91Z2gKKyAgICAgICAgICAgICAgICB0aGlzLmNvbXBhcmVOYW1lID0gcmVhZFRva2VuKGJyKTsKKyAgICAgICAgICAgICAgICBici5yZWFkTGluZSgpOworCisgICAgICAgICAgICAgICAgLy8gcmVhZCBkYXRhCisgICAgICAgICAgICAgICAgdGhpcy5jb21wYXJlU2V0ID0gbmV3IFRyZWVTZXQoSW5mby5kZWZhdWx0Q29tcGFyYXRvcigpKTsKKyAgICAgICAgICAgICAgICBmb3IgKEluZm8gaW5mbyA9IG5ldyBJbmZvKCk7IGluZm8ucmVhZChicik7IGluZm8gPSBuZXcgSW5mbygpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBhcmVTZXQuYWRkKGluZm8pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbigiZXJyb3IgcmVhZGluZyAiICsgY29tcGFyZSk7CisgICAgICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgcmVzdWx0cyA9IG5ldyBUcmVlU2V0KEluZm8uZGVmYXVsdENvbXBhcmF0b3IoKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIHJ1bigpIHsKKyAgICAgICAgZG9Eb2NzKHJvb3QuY2xhc3NlcygpKTsKKworICAgICAgICBPdXRwdXRTdHJlYW0gb3MgPSBTeXN0ZW0ub3V0OworICAgICAgICBpZiAob3V0cHV0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgb3MgPSBuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRwdXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICByZS5pbml0Q2F1c2UoZSk7CisgICAgICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBCdWZmZXJlZFdyaXRlciBidyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBPdXRwdXRTdHJlYW1Xcml0ZXIgb3N3ID0gbmV3IE91dHB1dFN0cmVhbVdyaXRlcihvcywgIlVURi04Iik7CisgICAgICAgICAgICBidyA9IG5ldyBCdWZmZXJlZFdyaXRlcihvc3cpOworCisgICAgICAgICAgICBpZiAoY29tcGFyZVNldCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gd3JpdGluZyBkYXRhIGZpbGUKKyAgICAgICAgICAgICAgICBidy53cml0ZShTdHJpbmcudmFsdWVPZihEQVRBX0ZJTEVfVkVSU0lPTikgKyBTRVApOyAvLyBoZWFkZXIgdmVyc2lvbgorICAgICAgICAgICAgICAgIGJ3LndyaXRlKHNyY05hbWUgKyBTRVApOyAvLyBzb3VyY2UgbmFtZQorICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICB3cml0ZVJlc3VsdHMocmVzdWx0cywgYncsIHRydWUsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIHdyaXRpbmcgY29tcGFyaXNvbiBpbmZvCisgICAgICAgICAgICAgICAgVHJlZVNldCByZW1vdmVkID0gKFRyZWVTZXQpY29tcGFyZVNldC5jbG9uZSgpOworICAgICAgICAgICAgICAgIHJlbW92ZWQucmVtb3ZlQWxsKHJlc3VsdHMpOworCisgICAgICAgICAgICAgICAgVHJlZVNldCBhZGRlZCA9IChUcmVlU2V0KXJlc3VsdHMuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICBhZGRlZC5yZW1vdmVBbGwoY29tcGFyZVNldCk7CisKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBhaSA9IGFkZGVkLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgSXRlcmF0b3IgcmkgPSByZW1vdmVkLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgQXJyYXlMaXN0IGNoYW5nZWQgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAgICAgQ29tcGFyYXRvciBjID0gSW5mby5jaGFuZ2VkQ29tcGFyYXRvcigpOworICAgICAgICAgICAgICAgIEluZm8gYSA9IG51bGwsIHIgPSBudWxsOworICAgICAgICAgICAgICAgIHdoaWxlIChhaS5oYXNOZXh0KCkgJiYgcmkuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhID09IG51bGwpIGEgPSAoSW5mbylhaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyID09IG51bGwpIHIgPSAoSW5mbylyaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBjLmNvbXBhcmUoYSwgcik7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQuYWRkKG5ldyBEZWx0YUluZm8oYSwgcikpOworICAgICAgICAgICAgICAgICAgICAgICAgYSA9IG51bGw7IGFpLnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgciA9IG51bGw7IHJpLnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYWRkZWQgPSBzdHJpcEFuZFJlc29ydChhZGRlZCk7CisgICAgICAgICAgICAgICAgcmVtb3ZlZCA9IHN0cmlwQW5kUmVzb3J0KHJlbW92ZWQpOworCisgICAgICAgICAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlID0gIklDVTRKIEFQSSBDb21wYXJpc29uOiAiICsgc3JjTmFtZSArICIgd2l0aCAiICsgY29tcGFyZU5hbWU7CisKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjwhRE9DVFlQRSBIVE1MIFBVQkxJQyBcIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOXCI+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjxodG1sPiIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8aGVhZD4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPG1ldGEgaHR0cC1lcXVpdj1cIkNvbnRlbnQtVHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLThcIj4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPHRpdGxlPiIpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSh0aXRsZSk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8L3RpdGxlPiIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8Ym9keT4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworCisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8aDE+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKHRpdGxlKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjwvaDE+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGhyLz4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGgyPiIpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiUmVtb3ZlZCBmcm9tICIgKyBjb21wYXJlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8L2gyPiIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlbW92ZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVSZXN1bHRzKHJlbW92ZWQsIGJ3LCBmYWxzZSwgdHJ1ZSwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjxwPihubyBBUEkgcmVtb3ZlZCk8L3A+Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworCisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8aHIvPiIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8aDI+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCJDaGFuZ2VkIGluICIgKyBzcmNOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjwvaDI+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoY2hhbmdlZC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZVJlc3VsdHMoY2hhbmdlZCwgYncsIGZhbHNlLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8cD4obm8gQVBJIGNoYW5nZWQpPC9wPiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGhyLz4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPGgyPiIpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiQWRkZWQgaW4gIiArIHNyY05hbWUpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPC9oMj4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChhZGRlZC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZVJlc3VsdHMoYWRkZWQsIGJ3LCBmYWxzZSwgdHJ1ZSwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjxwPihubyBBUEkgYWRkZWQpPC9wPiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8aHIvPiIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8cD48aT5Db250ZW50cyBnZW5lcmF0ZWQgYnkgQ2hlY2tBUEkgdG9vbC48YnIvPkNvcHlyaWdodCAoQykgMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiwgQWxsIFJpZ2h0cyBSZXNlcnZlZC48L2k+PC9wPiIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI8L2JvZHk+Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIjwvaHRtbD4iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCJDb21wYXJpbmcgIiArIHNyY05hbWUgKyAiIHdpdGggIiArIGNvbXBhcmVOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPT09IFJlbW92ZWQgZnJvbSAiICsgY29tcGFyZU5hbWUgKyAiID09PSIpOworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZW1vdmVkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlUmVzdWx0cyhyZW1vdmVkLCBidywgZmFsc2UsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiKG5vIEFQSSByZW1vdmVkKSIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKworICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgIGJ3LndyaXRlKCI9PT0gQ2hhbmdlZCBpbiAiICsgc3JjTmFtZSArICIgPT09Iik7CisgICAgICAgICAgICAgICAgICAgIGJ3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoYW5nZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVSZXN1bHRzKGNoYW5nZWQsIGJ3LCBmYWxzZSwgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYncud3JpdGUoIihubyBBUEkgY2hhbmdlZCkiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiPT09IEFkZGVkIGluICIgKyBzcmNOYW1lICsgIiA9PT0iKTsKKyAgICAgICAgICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAoYWRkZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVSZXN1bHRzKGFkZGVkLCBidywgZmFsc2UsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidy53cml0ZSgiKG5vIEFQSSBhZGRlZCkiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBidy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBidy5jbG9zZSgpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0cnkgeyBidy5jbG9zZSgpOyB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlMikge30KKyAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbigid3JpdGUgZXJyb3I6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZS5pbml0Q2F1c2UoZSk7CisgICAgICAgICAgICB0aHJvdyByZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9Eb2NzKFByb2dyYW1FbGVtZW50RG9jW10gZG9jcykgeworICAgICAgICBpZiAoZG9jcyAhPSBudWxsICYmIGRvY3MubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkb2NzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgZG9Eb2MoZG9jc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9Eb2MoUHJvZ3JhbUVsZW1lbnREb2MgZG9jKSB7CisgICAgICAgIGlmIChpZ25vcmUoZG9jKSkgcmV0dXJuOworCisgICAgICAgIGlmIChkb2MuaXNDbGFzcygpIHx8IGRvYy5pc0ludGVyZmFjZSgpKSB7CisgICAgICAgICAgICBDbGFzc0RvYyBjZG9jID0gKENsYXNzRG9jKWRvYzsKKyAgICAgICAgICAgIGRvRG9jcyhjZG9jLmZpZWxkcygpKTsKKyAgICAgICAgICAgIGRvRG9jcyhjZG9jLmNvbnN0cnVjdG9ycygpKTsKKyAgICAgICAgICAgIGRvRG9jcyhjZG9jLm1ldGhvZHMoKSk7CisgICAgICAgICAgICBkb0RvY3MoY2RvYy5pbm5lckNsYXNzZXMoKSk7CisgICAgICAgIH0KKworICAgICAgICBJbmZvIGluZm8gPSBuZXcgSW5mbygpOworICAgICAgICBpZiAoaW5mby5yZWFkKGRvYykpIHsKKyAgICAgICAgICAgIHJlc3VsdHMuYWRkKGluZm8pOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGlnbm9yZShQcm9ncmFtRWxlbWVudERvYyBkb2MpIHsKKyAgICAgICAgaWYgKGRvYyA9PSBudWxsKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGRvYy5pc1ByaXZhdGUoKSB8fCBkb2MuaXNQYWNrYWdlUHJpdmF0ZSgpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGRvYyBpbnN0YW5jZW9mIENvbnN0cnVjdG9yRG9jICYmICgoQ29uc3RydWN0b3JEb2MpZG9jKS5pc1N5bnRoZXRpYygpKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGRvYy5xdWFsaWZpZWROYW1lKCkuaW5kZXhPZigiLm1pc2MiKSAhPSAtMSkgcmV0dXJuIHRydWU7CisgICAgICAgIFRhZ1tdIHRhZ3MgPSBkb2MudGFncygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0YWdLaW5kSW5kZXgodGFnc1tpXS5raW5kKCkpID09IElOVEVSTkFMKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHdyaXRlUmVzdWx0cyhDb2xsZWN0aW9uIGMsIEJ1ZmZlcmVkV3JpdGVyIHcsIGJvb2xlYW4gYnJpZWYsIGJvb2xlYW4gaHRtbCwgYm9vbGVhbiBkZXRhaWwpIHsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IGMuaXRlcmF0b3IoKTsKKyAgICAgICAgU3RyaW5nIHBhY2sgPSBudWxsOworICAgICAgICBTdHJpbmcgY2xhcyA9IG51bGw7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgQVBJSW5mbyBpbmZvID0gKEFQSUluZm8paXRlci5uZXh0KCk7CisgICAgICAgICAgICBpZiAoYnJpZWYpIHsKKyAgICAgICAgICAgICAgICBpbmZvLndyaXRlKHcsIGJyaWVmLCBmYWxzZSwgZGV0YWlsKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHAgPSBpbmZvLmdldChQQUssIHRydWUpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXAuZXF1YWxzKHBhY2spKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNsYXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCI8L3VsPiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhY2sgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCI8L3VsPiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPGgzPlBhY2thZ2UgIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZShwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCI8L2gzPiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIjx1bD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiUGFja2FnZSAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKHApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoJzonKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHcubmV3TGluZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhY2sgPSBwOworICAgICAgICAgICAgICAgICAgICAgICAgY2xhcyA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoaW5mby5nZXRWYWwoQ0FUKSAhPSBDQVRfQ0xBU1MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gaW5mby5nZXQoQ0xTLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbmFtZS5lcXVhbHMoY2xhcykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2xhcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCI8L3VsPiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIjxsaT4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy53cml0ZShuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIjx1bD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKG5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Lm5ld0xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhcyA9IG5hbWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCIgICAgIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIjxsaT4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZm8ud3JpdGUodywgYnJpZWYsIGh0bWwsIGRldGFpbCk7CisgICAgICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCI8L2xpPiIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaW5mby53cml0ZSh3LCBicmllZiwgaHRtbCwgZGV0YWlsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIklPRXhjZXB0aW9uICIgKyBlLmdldE1lc3NhZ2UoKSArICIgd3JpdGluZyAiICsgaW5mbyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmIChjbGFzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPC91bD4iKTsKKyAgICAgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChwYWNrICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdy53cml0ZSgiPC91bD4iKTsKKyAgICAgICAgICAgICAgICAgICAgdy5uZXdMaW5lKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgcmVhZFRva2VuKEJ1ZmZlcmVkUmVhZGVyIHIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGNoYXJbXSBidWYgPSBuZXcgY2hhclsyNTZdOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIGZvciAoOyBpIDwgYnVmLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgYyA9IHIucmVhZCgpOworICAgICAgICAgICAgaWYgKGMgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oInVuZXhwZWN0ZWQgRU9GIik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gU0VQKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWZbaV0gPSAoY2hhciljOworICAgICAgICB9CisgICAgICAgIGlmIChpID09IGJ1Zi5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigidW50ZXJtaW5hdGVkIHRva2VuIiArIG5ldyBTdHJpbmcoYnVmKSk7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhidWYsIDAsIGkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFRyZWVTZXQgc3RyaXBBbmRSZXNvcnQoVHJlZVNldCB0KSB7CisgICAgICAgIHN0cmlwQ2xhc3NJbmZvKHQpOworICAgICAgICBUcmVlU2V0IHIgPSBuZXcgVHJlZVNldChJbmZvLmNsYXNzRmlyc3RDb21wYXJhdG9yKCkpOworICAgICAgICByLmFkZEFsbCh0KTsKKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBzdHJpcENsYXNzSW5mbyhDb2xsZWN0aW9uIGMpIHsKKyAgICAgICAgLy8gYyBpcyBzb3J0ZWQgd2l0aCBjbGFzcyBpbmZvIGZpcnN0CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBjLml0ZXJhdG9yKCk7CisgICAgICAgIFN0cmluZyBjbmFtZSA9IG51bGw7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgSW5mbyBpbmZvID0gKEluZm8paXRlci5uZXh0KCk7CisgICAgICAgICAgICBTdHJpbmcgY2xzID0gaW5mby5nZXQoQ0xTLCB0cnVlKTsKKyAgICAgICAgICAgIGlmIChjbmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKGNuYW1lLmVxdWFscyhjbHMpKSB7CisgICAgICAgICAgICAgICAgICAgIGl0ZXIucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjbmFtZSA9IG51bGw7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgaWYgKGluZm8uZ2V0VmFsKENBVCkgPT0gQ0FUX0NMQVNTKSB7CisgICAgICAgICAgICAgICAgY25hbWUgPSBpbmZvLmdldChOQU0sIHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHRhZ1N0YXR1cyhmaW5hbCBEb2MgZG9jKSB7CisgICAgICAgIGNsYXNzIFJlc3VsdCB7CisgICAgICAgICAgICBpbnQgcmVzID0gLTE7CisgICAgICAgICAgICB2b2lkIHNldChpbnQgdmFsKSB7IGlmIChyZXMgIT0gLTEpIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJiYWQgZG9jOiAiICsgZG9jKTsgcmVzID0gdmFsOyB9CisgICAgICAgICAgICBpbnQgZ2V0KCkgeworICAgICAgICAgICAgICAgIGlmIChyZXMgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJ3YXJuaW5nOiBubyB0YWcgZm9yICIgKyBkb2MpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFRhZ1tdIHRhZ3MgPSBkb2MudGFncygpOworICAgICAgICBSZXN1bHQgcmVzdWx0ID0gbmV3IFJlc3VsdCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFRhZyB0YWcgPSB0YWdzW2ldOworCisgICAgICAgICAgICBTdHJpbmcga2luZCA9IHRhZy5raW5kKCk7CisgICAgICAgICAgICBpbnQgaXggPSB0YWdLaW5kSW5kZXgoa2luZCk7CisKKyAgICAgICAgICAgIHN3aXRjaCAoaXgpIHsKKyAgICAgICAgICAgIGNhc2UgSU5URVJOQUw6CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldCgtMik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgRFJBRlQ6CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldChTVEFfRFJBRlQpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFNUQUJMRToKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0KFNUQV9TVEFCTEUpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERFUFJFQ0FURUQ6CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldChTVEFfREVQUkVDQVRFRCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgT0JTT0xFVEU6CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldChTVEFfT0JTT0xFVEUpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFNJTkNFOgorICAgICAgICAgICAgY2FzZSBFWENFUFRJT046CisgICAgICAgICAgICBjYXNlIFZFUlNJT046CisgICAgICAgICAgICBjYXNlIFVOS05PV046CisgICAgICAgICAgICBjYXNlIEFVVEhPUjoKKyAgICAgICAgICAgIGNhc2UgU0VFOgorICAgICAgICAgICAgY2FzZSBQQVJBTToKKyAgICAgICAgICAgIGNhc2UgUkVUVVJOOgorICAgICAgICAgICAgY2FzZSBUSFJPV1M6CisgICAgICAgICAgICBjYXNlIFNFUklBTDoKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigidW5rbm93biBpbmRleCAiICsgaXggKyAiIGZvciB0YWc6ICIgKyBraW5kKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQuZ2V0KCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOS05PV04gPSAtMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5URVJOQUwgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEUkFGVCA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUQUJMRSA9IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNJTkNFID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVQUkVDQVRFRCA9IDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVVEhPUiA9IDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNFRSA9IDY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFZFUlNJT04gPSA3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBQQVJBTSA9IDg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJFVFVSTiA9IDk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRIUk9XUyA9IDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPQlNPTEVURSA9IDExOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENFUFRJT04gPSAxMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0VSSUFMID0gMTM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgdGFnS2luZEluZGV4KFN0cmluZyBraW5kKSB7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIHRhZ0tpbmRzID0geworICAgICAgICAgICAgIkBpbnRlcm5hbCIsICJAZHJhZnQiLCAiQHN0YWJsZSIsICJAc2luY2UiLCAiQGRlcHJlY2F0ZWQiLCAiQGF1dGhvciIsICJAc2VlIiwgIkB2ZXJzaW9uIiwKKyAgICAgICAgICAgICJAcGFyYW0iLCAiQHJldHVybiIsICJAdGhyb3dzIiwgIkBvYnNvbGV0ZSIsICJAZXhjZXB0aW9uIiwgIkBzZXJpYWwiCisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdLaW5kcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGtpbmQuZXF1YWxzKHRhZ0tpbmRzW2ldKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBVTktOT1dOOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0NoZWNrVGFncy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvQ2hlY2tUYWdzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ3OWZkZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0NoZWNrVGFncy5qYXZhCkBAIC0wLDAgKzEsNDE4IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisvKioKKyAqIFRoaXMgaXMgYSB0b29sIHRvIGNoZWNrIHRoZSB0YWdzIG9uIElDVTRKIGZpbGVzLiAgSW4gcGFydGljdWxhciwgd2UncmUgbG9va2luZyBmb3I6CisgKgorICogLSBtZXRob2RzIHRoYXQgaGF2ZSBubyB0YWdzCisgKiAtIGN1c3RvbSB0YWdzOiBAZHJhZnQsIEBzdGFibGUsIEBpbnRlcm5hbD8KKyAqIC0gc3RhbmRhcmQgdGFnczogQHNpbmNlLCBAZGVwcmVjYXRlZAorICoKKyAqIFN5bnRheCBvZiB0YWdzOgorICogJ0BkcmFmdCBJQ1UgWC5YLlgnCisgKiAnQHN0YWJsZSBJQ1UgWC5YLlgnCisgKiAnQGludGVybmFsJworICogJ0BzaW5jZSAgKGRvbid0IHVzZSknCisgKiAnQG9ic29sZXRlIElDVSBYLlguWCcKKyAqICdAZGVwcmVjYXRlZCB0byBiZSByZW1vdmVkIGluIElDVSBYLlguIFtVc2UgLi4uXScKKyAqCisgKiBmbGFncyBuYW1lcyBvZiBjbGFzc2VzIGFuZCB0aGVpciBtZW1iZXJzIHRoYXQgaGF2ZSBubyB0YWdzIG9yIGluY29ycmVjdCBzeW50YXguCisgKgorICogUmVxdWlyZXMgSkRLIDEuNCBvciBsYXRlcgorICoKKyAqIFVzZSBidWlsZC54bWwgJ2NoZWNrdGFncycgYW50IHRhcmdldCwgb3IKKyAqIHJ1biBmcm9tIGRpcmVjdG9yeSBjb250YWluaW5nIENoZWNrVGFncy5jbGFzcyBhcyBmb2xsb3dzOgorICogamF2YWRvYyAtY2xhc3NwYXRoICR7SkFWQV9IT01FfS9saWIvdG9vbHMuamFyIC1kb2NsZXQgQ2hlY2tUYWdzIC1zb3VyY2VwYXRoICR7SUNVNEpfc3JjfSBbcGFja2FnZW5hbWVzXQorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jczsKKworaW1wb3J0IGNvbS5zdW4uamF2YWRvYy4qOworCitwdWJsaWMgY2xhc3MgQ2hlY2tUYWdzIHsKKyAgICBSb290RG9jIHJvb3Q7CisgICAgYm9vbGVhbiBsb2c7CisgICAgYm9vbGVhbiBicmllZjsKKyAgICBib29sZWFuIGlzU2hvcnQ7CisgICAgRG9jU3RhY2sgc3RhY2sgPSBuZXcgRG9jU3RhY2soKTsKKworICAgIGNsYXNzIERvY05vZGUgeworICAgICAgICBwcml2YXRlIFN0cmluZyBoZWFkZXI7CisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBwcmludGVkOworICAgICAgICBwcml2YXRlIGJvb2xlYW4gcmVwb3J0RXJyb3I7CisgICAgICAgIHByaXZhdGUgaW50IGVycm9yQ291bnQ7CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoU3RyaW5nIGhlYWRlciwgYm9vbGVhbiByZXBvcnRFcnJvcikgeworICAgICAgICAgICAgdGhpcy5oZWFkZXIgPSBoZWFkZXI7CisgICAgICAgICAgICB0aGlzLnByaW50ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JDb3VudCA9IDA7CisgICAgICAgICAgICB0aGlzLnJlcG9ydEVycm9yID0gcmVwb3J0RXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBoZWFkZXIgKworICAgICAgICAgICAgICAgICIgcHJpbnRlZDogIiArIHByaW50ZWQgKworICAgICAgICAgICAgICAgICIgcmVwb3J0RXJyb3I6ICIgKyByZXBvcnRFcnJvciArCisgICAgICAgICAgICAgICAgIiBlcnJvckNvdW50OiAiICsgZXJyb3JDb3VudDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGNsYXNzIERvY1N0YWNrIHsKKyAgICAgICAgcHJpdmF0ZSBEb2NOb2RlW10gc3RhY2s7CisgICAgICAgIHByaXZhdGUgaW50IGluZGV4OworICAgICAgICBwcml2YXRlIGJvb2xlYW4gbmV3bGluZTsKKworICAgICAgICBwdWJsaWMgdm9pZCBwdXNoKFN0cmluZyBoZWFkZXIsIGJvb2xlYW4gcmVwb3J0RXJyb3IpIHsKKyAgICAgICAgICAgIGlmIChzdGFjayA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3RhY2sgPSBuZXcgRG9jTm9kZVs1XTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09IHN0YWNrLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBEb2NOb2RlW10gdGVtcCA9IG5ldyBEb2NOb2RlW3N0YWNrLmxlbmd0aCAqIDJdOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHN0YWNrLCAwLCB0ZW1wLCAwLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrID0gdGVtcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RhY2tbaW5kZXhdID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdGFja1tpbmRleF0gPSBuZXcgRG9jTm9kZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gIFN5c3RlbS5vdXQucHJpbnRsbigicmVzZXQgWyIgKyBpbmRleCArICJdIGhlYWRlcjogIiArIGhlYWRlciArICIgcmVwb3J0OiAiICsgcmVwb3J0RXJyb3IpOworICAgICAgICAgICAgc3RhY2tbaW5kZXgrK10ucmVzZXQoaGVhZGVyLCByZXBvcnRFcnJvcik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBwb3AoKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPT0gMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAtLWluZGV4OworCisgICAgICAgICAgICBpbnQgZWMgPSBzdGFja1tpbmRleF0uZXJyb3JDb3VudDsgLy8gaW5kZXggYWxyZWFkeSBkZWNyZW1lbnRlZAorICAgICAgICAgICAgaWYgKGVjID4gMCB8fCBpbmRleCA9PSAwKSB7IC8vIGFsd2F5cyByZXBvcnQgZm9yIG91dGVybW9zdCBlbGVtZW50CisgICAgICAgICAgICAgICAgaWYgKHN0YWNrW2luZGV4XS5yZXBvcnRFcnJvcikgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQoIigiICsgZWMgKyAoZWMgPT0gMSA/ICIgZXJyb3IiIDogIiBlcnJvcnMiKSArICIpIiwgZmFsc2UsIHRydWUsIGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBwcm9wYWdhdGUgdG8gcGFyZW50CisgICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gMCkgeworICAgICAgICAgICAgICAgICAgICBzdGFja1tpbmRleC0xXS5lcnJvckNvdW50ICs9IGVjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpbmRleCA9PSAwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7IC8vIGFsd2F5cyBzaW5jZSB3ZSBhbHdheXMgcmVwb3J0IG51bWJlciBvZiBlcnJvcnMKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIG91dHB1dChTdHJpbmcgbXNnLCBib29sZWFuIGVycm9yLCBib29sZWFuIG5ld2xpbmUpIHsKKyAgICAgICAgICAgIG91dHB1dChtc2csIGVycm9yLCBuZXdsaW5lLCBpbmRleC0xKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgb3V0cHV0KFN0cmluZyBtc2csIGJvb2xlYW4gZXJyb3IsIGJvb2xlYW4gbmV3bGluZSwgaW50IGl4KSB7CisgICAgICAgICAgICBEb2NOb2RlIGxhc3QgPSBzdGFja1tpeF07CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBsYXN0LmVycm9yQ291bnQgKz0gMTsKKwkgICAgfQorCisgICAgICAgICAgICBib29sZWFuIHNob3cgPSAhYnJpZWYgfHwgbGFzdC5yZXBvcnRFcnJvcjsKKyAgICAgICAgICAgIC8vIGJvb2xlYW4gbm9tc2cgPSBzaG93ICYmIGJyaWVmICYmIGVycm9yOworICAgICAgICAgICAgLy8gICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj4+PiAiICsgbGFzdCArICIgZXJyb3I6ICIgKyBlcnJvciArICIgc2hvdzogIiArIHNob3cgKyAiIG5vbXNnOiAiICsgbm9tc2cpOworCisgICAgICAgICAgICBpZiAoc2hvdykgeworICAgICAgICAgICAgICAgIGlmIChpc1Nob3J0IHx8IChicmllZiAmJiBlcnJvcikpIHsKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gbnVsbDsgLy8gbnVrZSBlcnJvciBtZXNzYWdlcyBpZiB3ZSdyZSBicmllZiwganVzdCByZXBvcnQgaGVhZGVycyBhbmQgdG90YWxzCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IGl4OykgeworICAgICAgICAgICAgICAgICAgICBEb2NOb2RlIG4gPSBzdGFja1tpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG4ucHJpbnRlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1zZyAhPSBudWxsIHx8ICFsYXN0LnByaW50ZWQpIHsgLy8gc2luY2UgaW5kZXggPiAwIGxhc3QgaXMgbm90IG51bGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5uZXdsaW5lICYmIGkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXdsaW5lID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KG4uaGVhZGVyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG4ucHJpbnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5ld2xpbmUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgaSA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobXNnICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09IDAgJiYgdGhpcy5uZXdsaW5lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIioqKiAiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KG1zZyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0aGlzLm5ld2xpbmUgPSBuZXdsaW5lOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIHN0YXJ0KFJvb3REb2Mgcm9vdCkgeworICAgICAgICByZXR1cm4gbmV3IENoZWNrVGFncyhyb290KS5ydW4oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGludCBvcHRpb25MZW5ndGgoU3RyaW5nIG9wdGlvbikgeworICAgICAgICBpZiAob3B0aW9uLmVxdWFscygiLWxvZyIpKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCItYnJpZWYiKSkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLmVxdWFscygiLXNob3J0IikpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIENoZWNrVGFncyhSb290RG9jIHJvb3QpIHsKKyAgICAgICAgdGhpcy5yb290ID0gcm9vdDsKKworICAgICAgICBTdHJpbmdbXVtdIG9wdGlvbnMgPSByb290Lm9wdGlvbnMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgb3B0ID0gb3B0aW9uc1tpXVswXTsKKyAgICAgICAgICAgIGlmIChvcHQuZXF1YWxzKCItbG9nIikpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmxvZyA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHMoIi1icmllZiIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5icmllZiA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHMoIi1zaG9ydCIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5pc1Nob3J0ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGJvb2xlYW4gcnVuKCkgeworICAgICAgICBkb0RvY3Mocm9vdC5jbGFzc2VzKCksICJQYWNrYWdlIiwgdHJ1ZSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gdGFnS2luZHMgPSB7CisgICAgICAgICJAaW50ZXJuYWwiLCAiQGRyYWZ0IiwgIkBzdGFibGUiLCAiQHNpbmNlIiwgIkBkZXByZWNhdGVkIiwgIkBhdXRob3IiLCAiQHNlZSIsICJAdmVyc2lvbiIsCisgICAgICAgICJAcGFyYW0iLCAiQHJldHVybiIsICJAdGhyb3dzIiwgIkBvYnNvbGV0ZSIsICJAZXhjZXB0aW9uIiwgIkBzZXJpYWwiCisgICAgfTsKKworICAgIHN0YXRpYyBmaW5hbCBpbnQgVU5LTk9XTiA9IC0xOworICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5URVJOQUwgPSAwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgRFJBRlQgPSAxOworICAgIHN0YXRpYyBmaW5hbCBpbnQgU1RBQkxFID0gMjsKKyAgICBzdGF0aWMgZmluYWwgaW50IFNJTkNFID0gMzsKKyAgICBzdGF0aWMgZmluYWwgaW50IERFUFJFQ0FURUQgPSA0OworICAgIHN0YXRpYyBmaW5hbCBpbnQgQVVUSE9SID0gNTsKKyAgICBzdGF0aWMgZmluYWwgaW50IFNFRSA9IDY7CisgICAgc3RhdGljIGZpbmFsIGludCBWRVJTSU9OID0gNzsKKyAgICBzdGF0aWMgZmluYWwgaW50IFBBUkFNID0gODsKKyAgICBzdGF0aWMgZmluYWwgaW50IFJFVFVSTiA9IDk7CisgICAgc3RhdGljIGZpbmFsIGludCBUSFJPV1MgPSAxMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IE9CU09MRVRFID0gMTE7CisgICAgc3RhdGljIGZpbmFsIGludCBFWENFUFRJT04gPSAxMjsKKyAgICBzdGF0aWMgZmluYWwgaW50IFNFUklBTCA9IDEzOworCisgICAgc3RhdGljIGludCB0YWdLaW5kSW5kZXgoU3RyaW5nIGtpbmQpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWdLaW5kcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGtpbmQuZXF1YWxzKHRhZ0tpbmRzW2ldKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBVTktOT1dOOworICAgIH0KKworICAgIGJvb2xlYW4gbmV3bGluZSA9IGZhbHNlOworCisgICAgdm9pZCBvdXRwdXQoU3RyaW5nIG1zZywgYm9vbGVhbiBlcnJvciwgYm9vbGVhbiBuZXdsaW5lKSB7CisgICAgICAgIHN0YWNrLm91dHB1dChtc2csIGVycm9yLCBuZXdsaW5lKTsKKyAgICB9CisKKyAgICB2b2lkIGxvZygpIHsKKyAgICAgICAgb3V0cHV0KG51bGwsIGZhbHNlLCBmYWxzZSk7CisgICAgfQorCisgICAgdm9pZCBsb2dsbigpIHsKKyAgICAgICAgb3V0cHV0KG51bGwsIGZhbHNlLCB0cnVlKTsKKyAgICB9CisKKyAgICB2b2lkIGxvZyhTdHJpbmcgbXNnKSB7CisgICAgICAgIG91dHB1dChtc2csIGZhbHNlLCBmYWxzZSk7CisgICAgfQorCisgICAgdm9pZCBsb2dsbihTdHJpbmcgbXNnKSB7CisgICAgICAgIG91dHB1dChtc2csIGZhbHNlLCB0cnVlKTsKKyAgICB9CisKKyAgICB2b2lkIGVycihTdHJpbmcgbXNnKSB7CisgICAgICAgIG91dHB1dChtc2csIHRydWUsIGZhbHNlKTsKKyAgICB9CisKKyAgICB2b2lkIGVycmxuKFN0cmluZyBtc2cpIHsKKyAgICAgICAgb3V0cHV0KG1zZywgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgdm9pZCB0YWdFcnIoVGFnIHRhZykgeworICAgICAgICAvLyBUYWcucG9zaXRpb24oKSByZXF1aXJlcyBKREsgMS40LCBidWlsZC54bWwgdGVzdHMgZm9yIHRoaXMKKyAgICAgICAgZXJybG4odGFnLnRvU3RyaW5nKCkgKyAiIFsiICsgdGFnLnBvc2l0aW9uKCkgKyAiXSIpOworICAgIH0KKworICAgIHZvaWQgZG9Eb2NzKFByb2dyYW1FbGVtZW50RG9jW10gZG9jcywgU3RyaW5nIGhlYWRlciwgYm9vbGVhbiByZXBvcnRFcnJvcikgeworICAgICAgICBpZiAoZG9jcyAhPSBudWxsICYmIGRvY3MubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgc3RhY2sucHVzaChoZWFkZXIsIHJlcG9ydEVycm9yKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZG9jcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGRvRG9jKGRvY3NbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RhY2sucG9wKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGRvRG9jKFByb2dyYW1FbGVtZW50RG9jIGRvYykgeworICAgICAgICBpZiAoZG9jICE9IG51bGwgJiYgKGRvYy5pc1B1YmxpYygpIHx8IGRvYy5pc1Byb3RlY3RlZCgpKQorICAgICAgICAgICAgJiYgIShkb2MgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvckRvYyAmJiAoKENvbnN0cnVjdG9yRG9jKWRvYykuaXNTeW50aGV0aWMoKSkpIHsKKworICAgICAgICAgICAgLy8gdW5mb3J0dW5hdGVseSwgaW4gSkRLIDEuNC4xIE1lbWJlckRvYy5pc1N5bnRoZXRpYyBpcyBub3QgcHJvcGVybHkgaW1wbGVtZW50ZWQgZm9yCisgICAgICAgICAgICAvLyBzeW50aGV0aWMgY29uc3RydWN0b3JzLiAgU28geW91J2xsIGhhdmUgdG8gbGl2ZSB3aXRoIHNwdXJpb3VzIGVycm9ycyBvciAnaW1wbGVtZW50JworICAgICAgICAgICAgLy8gdGhlIHN5bnRoZXRpYyBjb25zdHJ1Y3RvcnMuLi4KKworICAgICAgICAgICAgYm9vbGVhbiBpc0NsYXNzID0gZG9jLmlzQ2xhc3MoKSB8fCBkb2MuaXNJbnRlcmZhY2UoKTsKKyAgICAgICAgICAgIFN0cmluZyBoZWFkZXI7CisgICAgICAgICAgICBpZiAoIWlzU2hvcnQgfHwgaXNDbGFzcykgeworICAgICAgICAgICAgICAgIGhlYWRlciA9ICItLS0gIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaGVhZGVyID0gIiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBoZWFkZXIgKz0gKGlzQ2xhc3MgPyBkb2MucXVhbGlmaWVkTmFtZSgpIDogZG9jLm5hbWUoKSk7CisgICAgICAgICAgICBpZiAoZG9jIGluc3RhbmNlb2YgRXhlY3V0YWJsZU1lbWJlckRvYykgeworICAgICAgICAgICAgICAgIGhlYWRlciArPSAoKEV4ZWN1dGFibGVNZW1iZXJEb2MpZG9jKS5mbGF0U2lnbmF0dXJlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWlzU2hvcnQgfHwgaXNDbGFzcykgeworICAgICAgICAgICAgICAgIGhlYWRlciArPSAiIC0tLSI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFjay5wdXNoKGhlYWRlciwgaXNDbGFzcyk7CisgICAgICAgICAgICBpZiAobG9nKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJvb2xlYW4gcmVjdXJzZSA9IGRvVGFncyhkb2MpOworICAgICAgICAgICAgaWYgKHJlY3Vyc2UgJiYgaXNDbGFzcykgeworICAgICAgICAgICAgICAgIENsYXNzRG9jIGNkb2MgPSAoQ2xhc3NEb2MpZG9jOworICAgICAgICAgICAgICAgIGRvRG9jcyhjZG9jLmZpZWxkcygpLCAiRmllbGRzIiwgIWJyaWVmKTsKKyAgICAgICAgICAgICAgICBkb0RvY3MoY2RvYy5jb25zdHJ1Y3RvcnMoKSwgIkNvbnN0cnVjdG9ycyIsICFicmllZik7CisgICAgICAgICAgICAgICAgZG9Eb2NzKGNkb2MubWV0aG9kcygpLCAiTWV0aG9kcyIsICFicmllZik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFjay5wb3AoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKiBSZXR1cm4gdHJ1ZSBpZiBzdWJlbGVtZW50cyBvZiB0aGlzIGRvYyBzaG91bGQgYmUgY2hlY2tlZCAqLworICAgIGJvb2xlYW4gZG9UYWdzKFByb2dyYW1FbGVtZW50RG9jIGRvYykgeworICAgICAgICBUYWdbXSB0YWdzID0gZG9jLnRhZ3MoKTsKKyAgICAgICAgYm9vbGVhbiBmb3VuZFJlcXVpcmVkVGFnID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gZm91bmREcmFmdFRhZyA9IGZhbHNlOworICAgICAgICBib29sZWFuIGZvdW5kRGVwcmVjYXRlZFRhZyA9IGZhbHNlOworICAgICAgICBib29sZWFuIGZvdW5kT2Jzb2xldGVUYWcgPSBmYWxzZTsKKwlib29sZWFuIGZvdW5kSW50ZXJuYWxUYWcgPSBmYWxzZTsKKwlib29sZWFuIGZvdW5kU3RhYmxlVGFnID0gZmFsc2U7CisJYm9vbGVhbiByZXRhaW5BbGwgPSBmYWxzZTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFRhZyB0YWcgPSB0YWdzW2ldOworCisgICAgICAgICAgICBTdHJpbmcga2luZCA9IHRhZy5raW5kKCk7CisgICAgICAgICAgICBpbnQgaXggPSB0YWdLaW5kSW5kZXgoa2luZCk7CisKKyAgICAgICAgICAgIHN3aXRjaCAoaXgpIHsKKyAgICAgICAgICAgIGNhc2UgVU5LTk9XTjoKKyAgICAgICAgICAgICAgICBlcnJsbigidW5rbm93biBraW5kOiAiICsga2luZCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgSU5URVJOQUw6CisgICAgICAgICAgICAgICAgZm91bmRSZXF1aXJlZFRhZyA9IHRydWU7CisJCWZvdW5kSW50ZXJuYWxUYWcgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERSQUZUOgorICAgICAgICAgICAgICAgIGZvdW5kUmVxdWlyZWRUYWcgPSB0cnVlOworICAgICAgICAgICAgICAgIGZvdW5kRHJhZnRUYWcgPSB0cnVlOworICAgICAgICAgICAgICAgIGlmICh0YWcudGV4dCgpLmluZGV4T2YoIklDVSAyLjgiKSAhPSAtMSAmJgorCQkgICAgdGFnLnRleHQoKS5pbmRleE9mKCIocmV0YWluIikgPT0gLTEpIHsgLy8gY2F0Y2ggYm90aCByZXRhaW4gYW5kIHJldGFpbkFsbAorICAgICAgICAgICAgICAgICAgICB0YWdFcnIodGFnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0YWcudGV4dCgpLmluZGV4T2YoIklDVSIpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGFnRXJyKHRhZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKwkJcmV0YWluQWxsIHw9ICh0YWcudGV4dCgpLmluZGV4T2YoIihyZXRhaW5BbGwpIikgIT0gLTEpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERFUFJFQ0FURUQ6CisgICAgICAgICAgICAgICAgZm91bmREZXByZWNhdGVkVGFnID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAodGFnLnRleHQoKS5pbmRleE9mKCJJQ1UiKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kUmVxdWlyZWRUYWcgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodGFnLnRleHQoKS50cmltKCkubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0YWdFcnIodGFnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgT0JTT0xFVEU6CisgICAgICAgICAgICAgICAgaWYgKHRhZy50ZXh0KCkuaW5kZXhPZigiSUNVIikgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0YWdFcnIodGFnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm91bmRPYnNvbGV0ZVRhZyA9IHRydWU7CisgICAgICAgICAgICAgICAgZm91bmRSZXF1aXJlZFRhZyA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgU1RBQkxFOgorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRleHQgPSB0YWcudGV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSAhPSAwICYmIHRleHQuaW5kZXhPZigiSUNVIikgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFnRXJyKHRhZyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZm91bmRSZXF1aXJlZFRhZyA9IHRydWU7CisJCSAgICBmb3VuZFN0YWJsZVRhZyA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFNJTkNFOgorICAgICAgICAgICAgICAgIHRhZ0Vycih0YWcpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIEVYQ0VQVElPTjoKKyAgICAgICAgICAgICAgICBsb2dsbigiWW91IHJlYWxseSBvdWdodCB0byB1c2UgQHRocm93cywgeW91IGtub3cuLi4gOi0pIik7CisKKyAgICAgICAgICAgIGNhc2UgQVVUSE9SOgorICAgICAgICAgICAgY2FzZSBTRUU6CisgICAgICAgICAgICBjYXNlIFBBUkFNOgorICAgICAgICAgICAgY2FzZSBSRVRVUk46CisgICAgICAgICAgICBjYXNlIFRIUk9XUzoKKyAgICAgICAgICAgIGNhc2UgU0VSSUFMOgorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFZFUlNJT046CisgICAgICAgICAgICAgICAgdGFnRXJyKHRhZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgZXJybG4oInVua25vd24gaW5kZXg6ICIgKyBpeCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmb3VuZFJlcXVpcmVkVGFnKSB7CisgICAgICAgICAgICBlcnJsbigibWlzc2luZyByZXF1aXJlZCB0YWcgWyIgKyBkb2MucG9zaXRpb24oKSArICJdIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZvdW5kSW50ZXJuYWxUYWcgJiYgIWZvdW5kRGVwcmVjYXRlZFRhZykgeworICAgICAgICAgICAgZXJybG4oImludGVybmFsIHRhZyBtaXNzaW5nIGRlcHJlY2F0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZm91bmREcmFmdFRhZyAmJiAhZm91bmREZXByZWNhdGVkVGFnKSB7CisgICAgICAgICAgICBlcnJsbigiZHJhZnQgdGFnIG1pc3NpbmcgZGVwcmVjYXRlZCIpOworICAgICAgICB9CisgICAgICAgIGlmIChmb3VuZE9ic29sZXRlVGFnICYmICFmb3VuZERlcHJlY2F0ZWRUYWcpIHsKKyAgICAgICAgICAgIGVycmxuKCJvYnNvbGV0ZSB0YWcgbWlzc2luZyBkZXByZWNhdGVkIik7CisgICAgICAgIH0KKwlpZiAoZm91bmRTdGFibGVUYWcgJiYgZm91bmREZXByZWNhdGVkVGFnKSB7CisJICAgIGxvZ2xuKCJzdGFibGUgZGVwcmVjYXRlZCIpOworCX0KKworCXJldHVybiAhcmV0YWluQWxsOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0NvZGVNYW5nbGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9Db2RlTWFuZ2xlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0YjI2MGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9Db2RlTWFuZ2xlci5qYXZhCkBAIC0wLDAgKzEsODQxIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5GaWxlbmFtZUZpbHRlcjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5QcmludFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworLy8gaW1wb3J0IGphdmEudXRpbC5yZWdleC4qOworCisvKioKKyAqIEEgc2ltcGxlIGZhY2lsaXR5IGZvciBhZGRpbmcgQy1saWtlIHByZXByb2Nlc3NpbmcgdG8gLmphdmEgZmlsZXMuCisgKiBUaGlzIG9ubHkgdW5kZXJzdGFuZHMgYSBzdWJzZXQgb2YgdGhlIEMgcHJlcHJvY2Vzc2luZyBzeW50YXguCisgKiBJdHMgdXNlZCB0byBtYW5hZ2UgZmlsZXMgdGhhdCB3aXRoIG9ubHkgc21hbGwgZGlmZmVyZW5jZXMgY2FuIGJlCisgKiBjb21waWxlZCBmb3IgZGlmZmVyZW50IEpWTXMuICBUaGlzIGNoYW5nZXMgZmlsZXMgaW4gcGxhY2UsIAorICogY29tbWVudGluZyBvdXQgbGluZXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgZmxhZyBzZXR0aW5ncy4KKyAqLworcHVibGljIGNsYXNzIENvZGVNYW5nbGVyIHsKKyAgICBwcml2YXRlIEZpbGUgaW5kaXI7ICAgICAgICAvLyByb290IG9mIGlucHV0CisgICAgcHJpdmF0ZSBGaWxlIG91dGRpcjsgICAgICAgLy8gcm9vdCBvZiBvdXRwdXQKKyAgICBwcml2YXRlIFN0cmluZyBzdWZmaXg7ICAgICAvLyBzdWZmaXggdG8gcHJvY2VzcywgZGVmYXVsdCAnLmpwcCcKKyAgICBwcml2YXRlIGJvb2xlYW4gcmVjdXJzZTsgICAvLyB0cnVlIGlmIHJlY3Vyc2Ugb24gZGlyZWN0b3JpZXMKKyAgICBwcml2YXRlIGJvb2xlYW4gZm9yY2U7ICAgICAvLyB0cnVlIGlmIGZvcmNlIHJlcHJvY2VzcyBvZiBmaWxlcworICAgIHByaXZhdGUgYm9vbGVhbiBjbGVhbjsgICAgIC8vIHRydWUgaWYgb3V0cHV0IGlzIHRvIGJlIGNsZWFuZWQKKyAgICBwcml2YXRlIGJvb2xlYW4gdGltZXN0YW1wOyAvLyB0cnVlIGlmIHdlIHJlYWQvd3JpdGUgdGltZXN0YW1wCisgICAgcHJpdmF0ZSBIYXNoTWFwIG1hcDsgICAgICAgLy8gZGVmaW5lcworICAgIHByaXZhdGUgQXJyYXlMaXN0IG5hbWVzOyAgIC8vIGZpbGVzL2RpcmVjdG9yaWVzIHRvIHByb2Nlc3MKKyAgICBwcml2YXRlIFN0cmluZyBoZWFkZXI7ICAgICAvLyBzb3J0ZWQgbGlzdCBvZiBkZWZpbmVzIHBhc3NlZCBpbgorCisgICAgcHJpdmF0ZSBib29sZWFuIHZlcmJvc2U7IC8vIHRydWUgaWYgd2UgZW1pdCBkZWJ1ZyBvdXRwdXQKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJR05PUkVfUFJFRklYID0gIi8vIyMiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBIRUFERVJfUFJFRklYID0gIi8vIyNoZWFkZXIiOworCisvLyAgICAgc3RhdGljIGZpbmFsIFBhdHRlcm4gcGF0ID0gUGF0dGVybi5jb21waWxlKAorLy8gICAgICAgICAiKD9pKV4oXFxzKig/Oi8vKyk/P1xccyopIyhpZmRlZlxcc3xpZm5kZWZcXHN8ZWxzZXxlbmRpZnx1bmRlZlxcc3xkZWZpbmVcXHN8aWZcXHN8ZWxpZlxccylcXHMqKC4qKSQiKTsKKy8vICAgICAvLyBzdGF0aWMgZmluYWwgUGF0dGVybiBwYXQyID0gUGF0dGVybi5jb21waWxlKCIoW149IV0rKVxccyooWyE9XT89KT8/XFxzKihcXHcrKSIpOworLy8gICAgIHN0YXRpYyBmaW5hbCBQYXR0ZXJuIHBhdDIgPSBQYXR0ZXJuLmNvbXBpbGUoIlxccyooXFx3KylcXHMqKFshPV0/PSk/P1xccyooW15cXHNdPy4qJCkiKTsKKy8vICAgICBzdGF0aWMgZmluYWwgUGF0dGVybiBwYXQzID0gUGF0dGVybi5jb21waWxlKCJeKFxccyovLyMjKS4qIik7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisvLyAgICAgICAgIHRlc3QoKTsKKyAgICAgICAgbmV3IENvZGVNYW5nbGVyKGFyZ3MpLnJ1bigpOworICAgIH0KKworLy8gICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgdGVzdCgpIHsKKy8vICAgICAgICAgdGVzdFBhdCgpOworLy8gICAgICAgICB0ZXN0UGF0MigpOworLy8gICAgICAgICB0ZXN0UGF0MygpOworLy8gICAgIH0KKy8vICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIHRlc3RQYXQoKSB7CisvLyAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigidGVzdCBwYXQiKTsKKy8vICAgICAgICAgU3RyaW5nW10gdGVzdHMgPSB7CisvLyAgICAgICAgICAgICAiIiwKKy8vICAgICAgICAgICAgICIgIiwKKy8vICAgICAgICAgICAgICIjZW5kaWYiLAorLy8gICAgICAgICAgICAgIiMgZW5kaWYiLAorLy8gICAgICAgICAgICAgIiNFTkRJRiIsCisvLyAgICAgICAgICAgICAiI2VOZElmIiwKKy8vICAgICAgICAgICAgICIvLyNlbmRpZiIsCisvLyAgICAgICAgICAgICAiLy8gI2VuZGlmIiwKKy8vICAgICAgICAgICAgICIvLyAjIGVuZGlmIiwKKy8vICAgICAgICAgICAgICIgIC8vICAjaWZkZWYgZm9vIiwKKy8vICAgICAgICAgICAgICIgIC8vICAjaWZuZGVmIGZvbyIsCisvLyAgICAgICAgICAgICAiICAvLyAgI2Vsc2UiLAorLy8gICAgICAgICAgICAgIiAgLy8gICNlbmRpZiIsCisvLyAgICAgICAgICAgICAiICAvLyAgI3VuZGVmIGZvbyIsCisvLyAgICAgICAgICAgICAiICAvLyAgI2RlZmluZSBmb28gYmFyIiwKKy8vICAgICAgICAgICAgICIgIC8vICAjaWYgZm9vID09IGJhciIsCisvLyAgICAgICAgICAgICAiICAvLyAgI2VsaWYgYmFyICE9IGJheiIsCisvLyAgICAgICAgIH07CisvLyAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpIHsKKy8vICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoInBhdCAnIiArIHRlc3RzW2ldICsgIicgLS0+ICIpOworLy8gICAgICAgICAgICAgTWF0Y2hlciBtID0gcGF0Lm1hdGNoZXIodGVzdHNbaV0pOworLy8gICAgICAgICAgICAgaWYgKG0uZmluZCgpKSB7CisvLyAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCInIiArIG0uZ3JvdXAoMSkgKyAiJyAnIiArIG0uZ3JvdXAoMikgKyAiJyAnIiArIG0uZ3JvdXAoMykgKyAiJyIpOworLy8gICAgICAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRpZG4ndCBtYXRjaCIpOworLy8gICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiZHVnICciICsgdGVzdHNbaV0gKyAiJyAtLT4gIik7CisvLyAgICAgICAgICAgICBTdHJpbmdbXSByZXMgPSBuZXcgU3RyaW5nWzNdOworLy8gICAgICAgICAgICAgaWYgKHBhdE1hdGNoKHRlc3RzW2ldLCByZXMpKSB7CisvLyAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCInIiArIHJlc1swXSArICInICciICsgcmVzWzFdICsgIicgJyIgKyByZXNbMl0gKyAiJyIpOworLy8gICAgICAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRpZG4ndCBtYXRjaCIpOworLy8gICAgICAgICAgICAgfQorLy8gICAgICAgICB9CisvLyAgICAgfQorCisvLyAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCB0ZXN0UGF0MigpIHsKKy8vICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ0ZXN0IHBhdDIiKTsKKy8vICAgICAgICAgU3RyaW5nW10gdGVzdHMgPSB7CisvLyAgICAgICAgICAgICAiIiwKKy8vICAgICAgICAgICAgICIgIiwKKy8vICAgICAgICAgICAgICJ0ZXN0IiwKKy8vICAgICAgICAgICAgICIgdGVzdCIsCisvLyAgICAgICAgICAgICAidGVzdCAiLAorLy8gICAgICAgICAgICAgIiB0ZXN0ICIsCisvLyAgICAgICAgICAgICAiIHRlc3QgPT0iLAorLy8gICAgICAgICAgICAgIiAhPSIsCisvLyAgICAgICAgICAgICAiICE9Zm9vIiwKKy8vICAgICAgICAgICAgICJmb289PWJhciIsCisvLyAgICAgICAgICAgICAiZm9vID09YmFyIiwKKy8vICAgICAgICAgICAgICJmb289PSBiYXIiLAorLy8gICAgICAgICAgICAgImZvbyA9PSBiYXIiLAorLy8gICAgICAgICAgICAgImZvbyBiYXIgYmF6LCB3b21wZiIsCisvLyAgICAgICAgICAgICAiZm9vPWJhcj1iYXosIHdvbXBmIGEgbG9vIiwKKy8vICAgICAgICAgfTsKKy8vICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkgeworLy8gICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgicGF0ICciICsgdGVzdHNbaV0gKyAiJyAtLT4gIik7CisvLyAgICAgICAgICAgICBNYXRjaGVyIG0yID0gcGF0Mi5tYXRjaGVyKHRlc3RzW2ldKTsKKy8vICAgICAgICAgICAgIGlmIChtMi5maW5kKCkpIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiciICsgbTIuZ3JvdXAoMSkgKyAiJyAnIiArIG0yLmdyb3VwKDIpICsgIicgJyIgKyBtMi5ncm91cCgzKSArICInIik7CisvLyAgICAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGlkbid0IG1hdGNoIik7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJkdWcgJyIgKyB0ZXN0c1tpXSArICInIC0tPiAiKTsKKy8vICAgICAgICAgICAgIFN0cmluZ1tdIHJlcyA9IG5ldyBTdHJpbmdbM107CisvLyAgICAgICAgICAgICBpZiAocGF0Mk1hdGNoKHRlc3RzW2ldLCByZXMpKSB7CisvLyAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCInIiArIHJlc1swXSArICInICciICsgcmVzWzFdICsgIicgJyIgKyByZXNbMl0gKyAiJyIpOworLy8gICAgICAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRpZG4ndCBtYXRjaCIpOworLy8gICAgICAgICAgICAgfQorLy8gICAgICAgICB9CisvLyAgICAgfQorLy8gICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgdGVzdFBhdDMoKSB7CisvLyAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigidGVzdCBwYXQzIik7CisvLyAgICAgICAgIFN0cmluZ1tdIHRlc3RzID0geworLy8gICAgICAgICAgICAgIiIsCisvLyAgICAgICAgICAgICAiICIsCisvLyAgICAgICAgICAgICAiIC8vIyIsCisvLyAgICAgICAgICAgICAiIC8jIyIsCisvLyAgICAgICAgICAgICAiLy8jIyIsCisvLyAgICAgICAgICAgICAiIC8vIyMiLAorLy8gICAgICAgICAgICAgIiAvLyMjLy8iLAorLy8gICAgICAgICAgICAgIiAvLy8vLyMjIiwKKy8vICAgICAgICAgfTsKKy8vICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkgeworLy8gICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgicGF0ICciICsgdGVzdHNbaV0gKyAiJyAtLT4gIik7CisvLyAgICAgICAgICAgICBNYXRjaGVyIG0gPSBwYXQzLm1hdGNoZXIodGVzdHNbaV0pOworLy8gICAgICAgICAgICAgaWYgKG0uZmluZCgpKSB7CisvLyAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCInIiArIG0uZ3JvdXAoMSkgKyAiJyIpOworLy8gICAgICAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRpZG4ndCBtYXRjaCIpOworLy8gICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiZHVnICciICsgdGVzdHNbaV0gKyAiJyAtLT4gIik7CisvLyAgICAgICAgICAgICBTdHJpbmcgbWF0Y2ggPSBwYXQzTWF0Y2godGVzdHNbaV0pOworLy8gICAgICAgICAgICAgaWYgKG1hdGNoICE9IG51bGwpIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiciICsgbWF0Y2ggKyAiJyIpOworLy8gICAgICAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRpZG4ndCBtYXRjaCIpOworLy8gICAgICAgICAgICAgfQorLy8gICAgICAgICB9CisvLyAgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHVzYWdlID0gIlVzYWdlOlxuIiArCisgICAgICAgICIgICAgQ29kZU1hbmdsZXIgW2ZsYWdzXSBmaWxlLi4uIGRpci4uLiBAYXJnZmlsZS4uLiBcbiIgKworICAgICAgICAiLWluW2Rpcl0gcGF0aCAgICAgICAgICAtIHJvb3QgZGlyZWN0b3J5IG9mIGlucHV0IGZpbGVzLCBvdGhlcndpc2UgdXNlIGN1cnJlbnQgZGlyZWN0b3J5XG4iICsKKyAgICAgICAgIi1vdXRbZGlyXSBwYXRoICAgICAgICAgLSByb290IGRpcmVjdG9yeSBvZiBvdXRwdXQgZmlsZXMsIG90aGVyd2lzZSB1c2UgaW5wdXQgZGlyZWN0b3J5XG4iICsKKyAgICAgICAgIi1zW3VmZml4XSBzdHJpbmcgICAgICAgLSBzdWZmaXggb2YgaW5wdXRmaWxlcyB0byBwcm9jZXNzLCBvdGhlcndpc2UgdXNlICcuamF2YScgKGRpcmVjdG9yaWVzIG9ubHkpXG4iICsKKyAgICAgICAgIi1jW2xlYW5dICAgICAgICAgICAgICAgLSByZW1vdmUgYWxsIGNvbnRyb2wgZmxhZ3MgZnJvbSBjb2RlIG9uIG91dHB1dCAoZG9lcyBub3QgcHJvY2VlZCBpZiBvdmVyd3JpdGluZylcbiIgKworICAgICAgICAiLXJbZWN1cnNlXSAgICAgICAgICAgICAtIGlmIHByZXNlbnQsIHJlY3Vyc2l2ZWx5IHByb2Nlc3Mgc3ViZGlyZWN0b3JpZXNcbiIgKworICAgICAgICAiLWZbb3JjZV0gICAgICAgICAgICAgICAtIGZvcmNlIHJlcHJvY2Vzc2luZyBvZiBmaWxlcyBldmVuIGlmIHRpbWVzdGFtcCBhbmQgaGVhZGVycyBtYXRjaFxuIiArCisgICAgICAgICItdFtpbWVzdGFtcF0gICAgICAgICAgIC0gZXhwZWN0L3dyaXRlIHRpbWVzdGFtcCBpbiBoZWFkZXJcbiIgKworICAgICAgICAiLWROQU1FWz1WQUxVRV0gICAgICAgICAtIGRlZmluZSBOQU1FIHdpdGggb3B0aW9uYWwgdmFsdWUgVkFMVUVcbiIgKworICAgICAgICAiICAob3IgLWQgTkFNRVs9VkFMVUVdKVxuIiArCisgICAgICAgICItaGVscCAgICAgICAgICAgICAgICAgIC0gcHJpbnQgdGhpcyB1c2FnZSBtZXNzYWdlIGFuZCBleGl0LlxuIiArCisgICAgICAgICJcbiIgKworICAgICAgICAiRm9yIGZpbGUgYXJndW1lbnRzLCBvdXRwdXQgJy5qYXZhJyBmaWxlcyB1c2luZyB0aGUgc2FtZSBwYXRoL25hbWUgdW5kZXIgdGhlIG91dHB1dCBkaXJlY3RvcnkuXG4iICsKKyAgICAgICAgIkZvciBkaXJlY3RvcnkgYXJndW1lbnRzLCBwcm9jZXNzIGFsbCBmaWxlcyB3aXRoIHRoZSBkZWZpbmVkIHN1ZmZpeCBpbiB0aGUgZGlyZWN0b3J5LlxuIiArCisgICAgICAgICIgIChpZiByZWN1cnNpbmcsIGRvIHRoZSBzYW1lIGZvciBhbGwgZmlsZXMgcmVjdXJzaXZlbHkgdW5kZXIgZWFjaCBkaXJlY3RvcnkpXG4iICsKKyAgICAgICAgIkZvciBAYXJnZmlsZSBhcmd1bWVudHMsIHJlYWQgdGhlIHNwZWNpZmllZCB0ZXh0IGZpbGUgKHN0cmlwIHRoZSAnQCcpLCBhbmQgcHJvY2VzcyBlYWNoIGxpbmUgb2YgdGhhdCBmaWxlIGFzIFxuIiArCisgICAgICAgICJhbiBhcmd1bWVudC5cbiIgKworICAgICAgICAiXG4iICsKKyAgICAgICAgIkRpcmVjdGl2ZXMgYXJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOlxuIiArCisgICAgICAgICIgICNpZmRlZiwgI2lmbmRlZiwgI2Vsc2UsICNlbmRpZiwgI2lmLCAjZWxpZiwgI2RlZmluZSwgI3VuZGVmXG4iICsKKyAgICAgICAgIlRoZXNlIG1heSBvcHRpb25hbGx5IGJlIHByZWNlZWRlZCBieSB3aGl0ZXNwYWNlIG9yIC8vLlxuIiArCisgICAgICAgICIjaWYsICNlbGlmIGFyZ3MgYXJlIG9mIHRoZSBmb3JtICdrZXkgPT0gdmFsdWUnIG9yICdrZXkgIT0gdmFsdWUnLlxuIiArCisgICAgICAgICJPbmx5IGV4YWN0IGNoYXJhY3RlciBtYXRjaCBrZXkgd2l0aCB2YWx1ZSBpcyBwZXJmb3JtZWQuXG4iICsKKyAgICAgICAgIiNkZWZpbmUgYXJncyBhcmUgJ2tleSBbPT1dIHZhbHVlJywgdGhlICc9PScgaXMgb3B0aW9uYWwuXG4iOworCisgICAgQ29kZU1hbmdsZXIoU3RyaW5nW10gYXJncykgeworICAgICAgICBtYXAgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBuYW1lcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgc3VmZml4ID0gIi5qYXZhIjsKKyAgICAgICAgY2xlYW4gPSBmYWxzZTsKKyAgICAgICAgdGltZXN0YW1wID0gZmFsc2U7CisKKyAgICAgICAgU3RyaW5nIGlubmFtZSA9IG51bGw7CisgICAgICAgIFN0cmluZyBvdXRuYW1lID0gbnVsbDsKKyAgICAgICAgYm9vbGVhbiBwcm9jZXNzQXJncyA9IHRydWU7CisgICAgICAgIFN0cmluZyBhcmcgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYXJnID0gYXJnc1tpXTsKKyAgICAgICAgICAgICAgICBpZiAoIi0tIi5lcXVhbHMoYXJnKSkgeworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzQXJncyA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzc0FyZ3MgJiYgYXJnLmNoYXJBdCgwKSA9PSAnLScpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyZy5zdGFydHNXaXRoKCItaW4iKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW5uYW1lID0gYXJnc1srK2ldOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItb3V0IikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dG5hbWUgPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1kIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IGFyZy5zdWJzdHJpbmcoMik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWQubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gYXJnc1srK2ldOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbCA9ICIiOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl4ID0gaWQuaW5kZXhPZignPScpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl4ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBpZC5zdWJzdHJpbmcoaXgrMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSBpZC5zdWJzdHJpbmcoMCxpeCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtYXAucHV0KGlkLCB2YWwpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItcyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXggPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1yIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY3Vyc2UgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItZiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoIi1jIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLXQiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuc3RhcnRzV2l0aCgiLWgiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCh1c2FnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgLy8gc3RvcCBiZWZvcmUgcHJvY2Vzc2luZyBhcmd1bWVudHMsIHNvIHdlIHdpbGwgZG8gbm90aGluZworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5zdGFydHNXaXRoKCItdiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXJyb3I6IHVucmVjb2duaXplZCBhcmd1bWVudCAnIiArIGFyZyArICInIik7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4odXNhZ2UpOworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihhcmcpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyZy5jaGFyQXQoMCkgPT0gJ0AnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIGFyZ2ZpbGUgPSBuZXcgRmlsZShhcmcuc3Vic3RyaW5nKDEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmdmaWxlLmV4aXN0cygpICYmICFhcmdmaWxlLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIobmV3IEZpbGVJbnB1dFN0cmVhbShhcmdmaWxlKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcnJheUxpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBhcmdzLmxlbmd0aDsgKyt4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LmFkZChhcmdzW3hdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbGluZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG51bGwgIT0gKGxpbmUgPSBici5yZWFkTGluZSgpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgPiAwICYmIGxpbmUuY2hhckF0KDApICE9ICcjJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSBTeXN0ZW0ub3V0LnByaW50bG4oImFkZGluZyBhcmd1bWVudDogIiArIGxpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QuYWRkKGxpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSAoU3RyaW5nW10pbGlzdC50b0FycmF5KG5ldyBTdHJpbmdbbGlzdC5zaXplKCldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJlcnJvciByZWFkaW5nIGFyZyBmaWxlOiAiICsgZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXMuYWRkKGFyZyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3RyaW5nIG1zZyA9ICJFcnJvcjogYXJndW1lbnQgJyIgKyBhcmcgKyAiJyBtaXNzaW5nIHZhbHVlIjsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihtc2cpOworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKHVzYWdlKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24obXNnKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyB1c2VybmFtZSA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgidXNlci5kaXIiKTsKKyAgICAgICAgaWYgKGlubmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICBpbm5hbWUgPSB1c2VybmFtZTsKKyAgICAgICAgfSBlbHNlIGlmICghKGlubmFtZS5zdGFydHNXaXRoKCJcXCIpIHx8IGlubmFtZS5zdGFydHNXaXRoKCIvIikpKSB7CisgICAgICAgICAgICBpbm5hbWUgPSB1c2VybmFtZSArIEZpbGUuc2VwYXJhdG9yICsgaW5uYW1lOworICAgICAgICB9CisgICAgICAgIGluZGlyID0gbmV3IEZpbGUoaW5uYW1lKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGluZGlyID0gaW5kaXIuZ2V0Q2Fub25pY2FsRmlsZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyBjb250aW51ZSwgYnV0IG1vc3QgbGlrZWx5IHdlJ2xsIGZhaWwgbGF0ZXIKKyAgICAgICAgfQorICAgICAgICBpZiAoIWluZGlyLmV4aXN0cygpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnB1dCBkaXJlY3RvcnkgJyIgKyBpbmRpci5nZXRBYnNvbHV0ZVBhdGgoKSArICInIGRvZXMgbm90IGV4aXN0LiIpOworICAgICAgICB9IGVsc2UgaWYgKCFpbmRpci5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnB1dCBwYXRoICciICsgaW5kaXIuZ2V0QWJzb2x1dGVQYXRoKCkgKyAiJyBpcyBub3QgYSBkaXJlY3RvcnkuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigiaW5kaXI6ICIgKyBpbmRpci5nZXRBYnNvbHV0ZVBhdGgoKSk7CisKKyAgICAgICAgaWYgKG91dG5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgb3V0bmFtZSA9IGlubmFtZTsKKyAgICAgICAgfSBlbHNlIGlmICghKG91dG5hbWUuc3RhcnRzV2l0aCgiXFwiKSB8fCBvdXRuYW1lLnN0YXJ0c1dpdGgoIi8iKSkpIHsKKyAgICAgICAgICAgIG91dG5hbWUgPSB1c2VybmFtZSArIEZpbGUuc2VwYXJhdG9yICsgb3V0bmFtZTsKKyAgICAgICAgfQorICAgICAgICBvdXRkaXIgPSBuZXcgRmlsZShvdXRuYW1lKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG91dGRpciA9IG91dGRpci5nZXRDYW5vbmljYWxGaWxlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIGNvbnRpbnVlLCBidXQgbW9zdCBsaWtlbHkgd2UnbGwgZmFpbCBsYXRlcgorICAgICAgICB9CisgICAgICAgIGlmICghb3V0ZGlyLmV4aXN0cygpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPdXRwdXQgZGlyZWN0b3J5ICciICsgb3V0ZGlyLmdldEFic29sdXRlUGF0aCgpICsgIicgZG9lcyBub3QgZXhpc3QuIik7CisgICAgICAgIH0gZWxzZSBpZiAoIW91dGRpci5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPdXRwdXQgcGF0aCAnIiArIG91dGRpci5nZXRBYnNvbHV0ZVBhdGgoKSArICInIGlzIG5vdCBhIGRpcmVjdG9yeS4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodmVyYm9zZSkgU3lzdGVtLm91dC5wcmludGxuKCJvdXRkaXI6ICIgKyBvdXRkaXIuZ2V0QWJzb2x1dGVQYXRoKCkpOworCisgICAgICAgIGlmIChjbGVhbiAmJiBzdWZmaXguZXF1YWxzKCIuamF2YSIpKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmIChvdXRkaXIuZ2V0Q2Fub25pY2FsUGF0aCgpLmVxdWFscyhpbmRpci5nZXRDYW5vbmljYWxQYXRoKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbm5vdCB1c2UgJ2NsZWFuJyB0byBvdmVyd3JpdGUgLmphdmEgZmlsZXMgaW4gc2FtZSBkaXJlY3RvcnkgdHJlZSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJwb3NzaWJsZSBvdmVyd3JpdGUsIGVycm9yOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbm5vdCB1c2UgJ2NsZWFuJyB0byBvdmVycndyaXRlIC5qYXZhIGZpbGVzIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAobmFtZXMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBuYW1lcy5hZGQoIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIFRyZWVNYXAgc29ydCA9IG5ldyBUcmVlTWFwKFN0cmluZy5DQVNFX0lOU0VOU0lUSVZFX09SREVSKTsKKyAgICAgICAgc29ydC5wdXRBbGwobWFwKTsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHNvcnQuZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE1hcC5FbnRyeSBlID0gKE1hcC5FbnRyeSlpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZS5nZXRLZXkoKSk7CisgICAgICAgICAgICBTdHJpbmcgdiA9IChTdHJpbmcpZS5nZXRWYWx1ZSgpOworICAgICAgICAgICAgaWYgKHYgIT0gbnVsbCAmJiB2Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJz0nKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGhlYWRlciA9IGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgcnVuKCkgeworICAgICAgICByZXR1cm4gcHJvY2VzcygiIiwgKFN0cmluZ1tdKW5hbWVzLnRvQXJyYXkobmV3IFN0cmluZ1tuYW1lcy5zaXplKCldKSk7CisgICAgfQorCisgICAgcHVibGljIGludCBwcm9jZXNzKFN0cmluZyBwYXRoLCBTdHJpbmdbXSBmaWxlbmFtZXMpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigicGF0aDogJyIgKyBwYXRoICsgIiciKTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKSBTeXN0ZW0ub3V0LnByaW50bG4oIm5hbWUgIiArIGkgKyAiIG9mICIgKyBmaWxlbmFtZXMubGVuZ3RoICsgIjogJyIgKyBmaWxlbmFtZXNbaV0gKyAiJyIpOworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBwYXRoICsgZmlsZW5hbWVzW2ldOworICAgICAgICAgICAgRmlsZSBmaW4gPSBuZXcgRmlsZShpbmRpciwgbmFtZSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZpbiA9IGZpbi5nZXRDYW5vbmljYWxGaWxlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFmaW4uZXhpc3RzKCkpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkZpbGUgIiArIGZpbi5nZXRBYnNvbHV0ZVBhdGgoKSArICIgZG9lcyBub3QgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmluLmlzRmlsZSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigicHJvY2Vzc2luZyBmaWxlOiAnIiArIGZpbi5nZXRBYnNvbHV0ZVBhdGgoKSArICInIik7CisgICAgICAgICAgICAgICAgU3RyaW5nIG9uYW1lOworICAgICAgICAgICAgICAgIGludCBpeCA9IG5hbWUubGFzdEluZGV4T2YoIi4iKTsKKyAgICAgICAgICAgICAgICBpZiAoaXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgb25hbWUgPSBuYW1lLnN1YnN0cmluZygwLCBpeCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgb25hbWUgPSBuYW1lOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvbmFtZSArPSAiLmphdmEiOworICAgICAgICAgICAgICAgIEZpbGUgZm91dCA9IG5ldyBGaWxlKG91dGRpciwgb25hbWUpOworICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzRmlsZShmaW4sIGZvdXQpKSB7CisgICAgICAgICAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChmaW4uaXNEaXJlY3RvcnkoKSkgeworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSBTeXN0ZW0ub3V0LnByaW50bG4oInJlY3Vyc2luZyBvbiBkaXJlY3RvcnkgJyIgKyBmaW4uZ2V0QWJzb2x1dGVQYXRoKCkgKyAiJyIpOworICAgICAgICAgICAgICAgIFN0cmluZyBucGF0aCA9ICIuIi5lcXVhbHMobmFtZSkgPyBwYXRoIDogcGF0aCArIGZpbi5nZXROYW1lKCkgKyBGaWxlLnNlcGFyYXRvcjsKKyAgICAgICAgICAgICAgICBjb3VudCArPSBwcm9jZXNzKG5wYXRoLCBmaW4ubGlzdChmaWx0ZXIpKTsgLy8gcmVjdXJzaXZlIGNhbGwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY291bnQ7CisgICAgfQorCisgICAgICAgICAgICAgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBGaWxlbmFtZUZpbHRlciBmaWx0ZXIgPSBuZXcgRmlsZW5hbWVGaWx0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHQoRmlsZSBkaXIsIFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUoZGlyLCBuYW1lKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGYuaXNGaWxlKCkgJiYgbmFtZS5lbmRzV2l0aChzdWZmaXgpKSB8fCAoZi5pc0RpcmVjdG9yeSgpICYmIHJlY3Vyc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgcHVibGljIGJvb2xlYW4gcHJvY2Vzc0ZpbGUoRmlsZSBpbmZpbGUsIEZpbGUgb3V0ZmlsZSkgeworICAgICAgICBGaWxlIGJhY2t1cCA9IG51bGw7CisKKyAgICAgICAgY2xhc3MgU3RhdGUgeworICAgICAgICAgICAgaW50IGxjOworICAgICAgICAgICAgU3RyaW5nIGxpbmU7CisgICAgICAgICAgICBib29sZWFuIGVtaXQgPSB0cnVlOworICAgICAgICAgICAgYm9vbGVhbiB0cmlwcGVkOworICAgICAgICAgICAgcHJpdmF0ZSBTdGF0ZSBuZXh0OworCisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgICAgIHJldHVybiAibGluZSAiICsgbGMgCisgICAgICAgICAgICAgICAgICAgICsgIjogJyIgKyBsaW5lIAorICAgICAgICAgICAgICAgICAgICArICInIChlbWl0OiAiICsgZW1pdCAKKyAgICAgICAgICAgICAgICAgICAgKyAiIHRyaXBwZWQ6ICIgKyB0cmlwcGVkIAorICAgICAgICAgICAgICAgICAgICArICIpIjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdm9pZCB0cmlwKGJvb2xlYW4gdHJpcCkgeworICAgICAgICAgICAgICAgIGlmICghdHJpcHBlZCAmIHRyaXApIHsKKyAgICAgICAgICAgICAgICAgICAgdHJpcHBlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGVtaXQgPSBuZXh0ICE9IG51bGwgPyBuZXh0LmVtaXQgOiB0cnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVtaXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0YXRlIHB1c2goaW50IGxjLCBTdHJpbmcgbGluZSwgYm9vbGVhbiB0cmlwKSB7CisgICAgICAgICAgICAgICAgdGhpcy5sYyA9IGxjOworICAgICAgICAgICAgICAgIHRoaXMubGluZSA9IGxpbmU7CisgICAgICAgICAgICAgICAgU3RhdGUgcmV0ID0gbmV3IFN0YXRlKCk7CisgICAgICAgICAgICAgICAgcmV0Lm5leHQgPSB0aGlzOworICAgICAgICAgICAgICAgIHJldC5lbWl0ID0gdGhpcy5lbWl0ICYgdHJpcDsKKyAgICAgICAgICAgICAgICByZXQudHJpcHBlZCA9IHRyaXA7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RhdGUgcG9wKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXh0OworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAgIAorICAgICAgICBIYXNoTWFwIG9sZE1hcCA9IG51bGw7CisgICAgICAgIAorICAgICAgICBsb25nIG91dE1vZFRpbWUgPSAwOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBQcmludFN0cmVhbSBvdXRzdHJlYW0gPSBudWxsOworICAgICAgICAgICAgSW5wdXRTdHJlYW0gaW5zdHJlYW0gPSBuZXcgRmlsZUlucHV0U3RyZWFtKGluZmlsZSk7CisKKyAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIHJlYWRlciA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaW5zdHJlYW0pKTsKKyAgICAgICAgICAgIGludCBsYyA9IDA7CisgICAgICAgICAgICBTdGF0ZSBzdGF0ZSA9IG5ldyBTdGF0ZSgpOworICAgICAgICAgICAgU3RyaW5nIGxpbmU7CisgICAgICAgICAgICB3aGlsZSAoKGxpbmUgPSByZWFkZXIucmVhZExpbmUoKSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChsYyA9PSAwKSB7IC8vIGNoZWNrIGFuZCB3cml0ZSBoZWFkZXIgZm9yIG91dHB1dCBmaWxlIGlmIG5lZWRlZAorICAgICAgICAgICAgICAgICAgICBib29sZWFuIGhhc0hlYWRlciA9IGxpbmUuc3RhcnRzV2l0aChIRUFERVJfUFJFRklYKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhc0hlYWRlciAmJiAhZm9yY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZXhwZWN0TGFzdE1vZGlmaWVkID0gKChpbmZpbGUubGFzdE1vZGlmaWVkKCkgKyA5OTkpLzEwMDApKjEwMDA7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaGVhZGVybGluZSA9IEhFQURFUl9QUkVGSVggKyAnICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aW1lc3RhbXAgPyBTdHJpbmcudmFsdWVPZihleHBlY3RMYXN0TW9kaWZpZWQpIDogIiIpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgJyAnICsgaGVhZGVyOworICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVybGluZSA9IGhlYWRlcmxpbmUudHJpbSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmUuZXF1YWxzKGhlYWRlcmxpbmUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigibm8gY2hhbmdlcyBuZWNlc3NhcnkgdG8gIiArIGluZmlsZS5nZXRDYW5vbmljYWxQYXRoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBub3RoaW5nIHRvIGRvCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICBvbGQgaGVhZGVyOiAgIiArIGxpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAhPSBleHBlY3RlZDogIiArIGhlYWRlcmxpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIG91dHB1dCBmaWxlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG91dHBuYW1lID0gb3V0ZmlsZS5nZXRQYXJlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG91dHBuYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEZpbGUgb3V0cCA9IG5ldyBGaWxlKG91dHBuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKG91dHAuZXhpc3RzKCkgfHwgb3V0cC5ta2RpcnMoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oImNvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5OiAnIiArIG91dHBuYW1lICsgIiciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSdyZSBvdmVyd3JpdGluZywgdXNlIGEgdGVtcG9yYXJ5IGZpbGUKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN1ZmZpeC5lcXVhbHMoIi5qYXZhIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhY2t1cCA9IG91dGZpbGU7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGZpbGUgPSBGaWxlLmNyZWF0ZVRlbXBGaWxlKG91dGZpbGUuZ2V0TmFtZSgpLCBudWxsLCBvdXRmaWxlLmdldFBhcmVudEZpbGUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBvdXRNb2RUaW1lID0gKChvdXRmaWxlLmxhc3RNb2RpZmllZCgpKzk5OSkvMTAwMCkqMTAwMDsgLy8gcm91bmQgdXAKKyAgICAgICAgICAgICAgICAgICAgb3V0c3RyZWFtID0gbmV3IFByaW50U3RyZWFtKG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dGZpbGUpKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGhlYWRlcmxpbmUgPSBIRUFERVJfUFJFRklYICsgJyAnICsgCisgICAgICAgICAgICAgICAgICAgICAgICAodGltZXN0YW1wID8gU3RyaW5nLnZhbHVlT2Yob3V0TW9kVGltZSkgOiAiIikKKyAgICAgICAgICAgICAgICAgICAgICAgICsgJyAnICsgaGVhZGVyOworICAgICAgICAgICAgICAgICAgICBoZWFkZXJsaW5lID0gaGVhZGVybGluZS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgIG91dHN0cmVhbS5wcmludGxuKGhlYWRlcmxpbmUpOworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgU3lzdGVtLm91dC5wcmludGxuKCJoZWFkZXI6ICIgKyBoZWFkZXJsaW5lKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBkaXNjYXJkIHRoZSBvbGQgaGVhZGVyIGlmIHdlIGhhZCBvbmUsIG90aGVyd2lzZSBtYXRjaCB0aGlzIGxpbmUgbGlrZSBhbnkgb3RoZXIKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhc0hlYWRlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgKytsYzsgLy8gbWFyayBhcyBoYXZpbmcgcmVhZCBhIGxpbmUgc28gd2UgbmV2ZXIgcmVleGVjdXRlIHRoaXMgYmxvY2sKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFN0cmluZ1tdIHJlcyA9IG5ldyBTdHJpbmdbM107CisgICAgICAgICAgICAgICAgaWYgKHBhdE1hdGNoKGxpbmUsIHJlcykpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxlYWQgPSByZXNbMF07CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSByZXNbMV07CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWwgPSByZXNbMl07CisKKy8vICAgICAgICAgICAgICAgICBNYXRjaGVyIG0gPSBwYXQubWF0Y2hlcihsaW5lKTsKKy8vICAgICAgICAgICAgICAgICBpZiAobS5maW5kKCkpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGxlYWQgPSBtLmdyb3VwKDEpOworLy8gICAgICAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gbS5ncm91cCgyKS50b0xvd2VyQ2FzZSgpLnRyaW0oKTsKKy8vICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbCA9IG0uZ3JvdXAoMykudHJpbSgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgU3lzdGVtLm91dC5wcmludGxuKCJkaXJlY3RpdmU6ICIgKyBsaW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIGtleTogJyIgKyBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInIHZhbDogJyIgKyB2YWwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyAiICsgc3RhdGUpOworICAgICAgICAgICAgICAgICAgICBpZiAoa2V5LmVxdWFscygiaWZkZWYiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZS5wdXNoKGxjLCBsaW5lLCBtYXAuZ2V0KHZhbCkgIT0gbnVsbCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5LmVxdWFscygiaWZuZGVmIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gc3RhdGUucHVzaChsYywgbGluZSwgbWFwLmdldCh2YWwpID09IG51bGwpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5lcXVhbHMoImVsc2UiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUudHJpcCh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkuZXF1YWxzKCJlbmRpZiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHN0YXRlLnBvcCgpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5lcXVhbHMoInVuZGVmIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5lbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9sZE1hcCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZE1hcCA9IChIYXNoTWFwKW1hcC5jbG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAucmVtb3ZlKHZhbCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vICNkZWZpbmUsICNpZiwgI2VsaWYKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXQyTWF0Y2godmFsLCByZXMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGtleTIgPSByZXNbMF07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBuZXEgPSAiIT0iLmVxdWFscyhyZXNbMV0pOyAvLyBvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWwyID0gcmVzWzJdOworCisvLyAgICAgICAgICAgICAgICAgICAgICAgICBNYXRjaGVyIG0yID0gcGF0Mi5tYXRjaGVyKHZhbCk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobTIuZmluZCgpKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGtleTIgPSBtMi5ncm91cCgxKS50cmltKCk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBuZXEgPSAiIT0iLmVxdWFscyhtMi5ncm91cCgyKSk7IC8vIG9wdGlvbmFsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbDIgPSBtMi5ncm91cCgzKS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIFN5c3RlbS5vdXQucHJpbnRsbigidmFsMjogJyIgKyB2YWwyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyBuZXE6ICciICsgbmVxIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyBrZXkyOiAnIiArIGtleTIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleS5lcXVhbHMoImlmIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZS5wdXNoKGxjLCBsaW5lLCB2YWwyLmVxdWFscyhtYXAuZ2V0KGtleTIpKSAhPSBuZXEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5LmVxdWFscygiZWxpZiIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnRyaXAodmFsMi5lcXVhbHMobWFwLmdldChrZXkyKSkgIT0gbmVxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5lcXVhbHMoImRlZmluZSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5lbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2xkTWFwID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRNYXAgPSAoSGFzaE1hcCltYXAuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5wdXQoa2V5MiwgdmFsMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjbGVhbikgeworICAgICAgICAgICAgICAgICAgICAgICAgbGMrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbGVhZC5lcXVhbHMoIi8vIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRzdHJlYW0ucHJpbnQoIi8vIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKGxlYWQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgb3V0c3RyZWFtLnByaW50bG4obGluZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbGMrKzsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZm91bmQgPSBwYXQzTWF0Y2gobGluZSk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBoYXNJZ25vcmUgPSBmb3VuZCAhPSBudWxsOworICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5lbWl0ID09IGhhc0lnbm9yZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGUuZW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuc3Vic3RyaW5nKGZvdW5kLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBJR05PUkVfUFJFRklYICsgbGluZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaGFzSWdub3JlICYmICFmb3VuZC5lcXVhbHMoSUdOT1JFX1BSRUZJWCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGluZSA9IElHTk9SRV9QUkVGSVggKyBsaW5lLnN1YnN0cmluZyhmb3VuZC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgIG0gPSBwYXQzLm1hdGNoZXIobGluZSk7CisvLyAgICAgICAgICAgICAgICAgYm9vbGVhbiBoYXNJZ25vcmUgPSBtLmZpbmQoKTsKKy8vICAgICAgICAgICAgICAgICBpZiAoc3RhdGUuZW1pdCA9PSBoYXNJZ25vcmUpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLmVtaXQpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN1YnN0cmluZyhtLmdyb3VwKDEpLmxlbmd0aCgpKTsKKy8vICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBJR05PUkVfUFJFRklYICsgbGluZTsKKy8vICAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaGFzSWdub3JlICYmICFtLmdyb3VwKDEpLmVxdWFscyhJR05PUkVfUFJFRklYKSkgeworLy8gICAgICAgICAgICAgICAgICAgICBsaW5lID0gSUdOT1JFX1BSRUZJWCArIGxpbmUuc3Vic3RyaW5nKG0uZ3JvdXAoMSkubGVuZ3RoKCkpOworLy8gICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIWNsZWFuIHx8IHN0YXRlLmVtaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgb3V0c3RyZWFtLnByaW50bG4obGluZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdGF0ZSA9IHN0YXRlLnBvcCgpOworICAgICAgICAgICAgaWYgKHN0YXRlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVycm9yOiB1bmNsb3NlZCBkaXJlY3RpdmUocyk6Iik7CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oc3RhdGUpOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKChzdGF0ZSA9IHN0YXRlLnBvcCgpKSAhPSBudWxsKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIiBpbiBmaWxlOiAiICsgb3V0ZmlsZS5nZXRDYW5vbmljYWxQYXRoKCkpOworICAgICAgICAgICAgICAgIGlmIChvbGRNYXAgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBtYXAgPSBvbGRNYXA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG91dHN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgaW5zdHJlYW0uY2xvc2UoKTsKKworICAgICAgICAgICAgaWYgKGJhY2t1cCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKGJhY2t1cC5leGlzdHMoKSkgeworICAgICAgICAgICAgICAgICAgICBiYWNrdXAuZGVsZXRlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG91dGZpbGUucmVuYW1lVG8oYmFja3VwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRpbWVzdGFtcCkgeworICAgICAgICAgICAgICAgIG91dGZpbGUuc2V0TGFzdE1vZGlmaWVkKG91dE1vZFRpbWUpOyAvLyBzeW5jaCB3aXRoIHRpbWVzdGFtcAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAob2xkTWFwICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtYXAgPSBvbGRNYXA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihlKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gc2FtZSBvcGVyYXRpb24gYXMgbWF0Y2hpbmcgb24gcGF0LiAgb24gZXhpdAorICAgICAqIGxlYWRLZXlWYWx1ZSBjb250YWlucyB0aGUgdGhyZWUgc3RyaW5ncyBsZWFkLCBrZXksIGFuZCB2YWx1ZS4KKyAgICAgKiAnbGVhZCcgaXMgdGhlIHBvcnRpb24gYmVmb3JlIHRoZSAjaWZkZWYgZGlyZWN0aXZlLiAgJ2tleScgaXMKKyAgICAgKiB0aGUgZGlyZWN0aXZlLiAgJ3ZhbHVlJyBpcyB0aGUgcG9ydGlvbiBhZnRlciB0aGUgZGlyZWN0aXZlLiAgaWYKKyAgICAgKiB0aGVyZSBpcyBhIG1hdGNoLCByZXR1cm4gdHJ1ZSwgZWxzZSByZXR1cm4gZmFsc2UuCisgICAgICovCisgICAgc3RhdGljIGJvb2xlYW4gcGF0TWF0Y2goU3RyaW5nIGxpbmUsIFN0cmluZ1tdIGxlYWRLZXlWYWx1ZSkgeworLy8gICAgICAgZmluYWwgUGF0dGVybiBwYXQgPSBQYXR0ZXJuLmNvbXBpbGUoCisvLyAgICAgICAgICIoP2kpXihcXHMqKD86Ly8rKT8/XFxzKikjKGlmZGVmXFxzfGlmbmRlZlxcc3xlbHNlfGVuZGlmfHVuZGVmXFxzfGRlZmluZVxcc3xpZlxcc3xlbGlmXFxzKVxccyooLiopJCIpOworCisgICAgICAgIGlmIChsaW5lLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWxpbmUuZW5kc1dpdGgoIlxuIikpIHsKKyAgICAgICAgICAgIGxpbmUgPSBsaW5lICsgJ1xuJzsKKyAgICAgICAgfQorICAgICAgICBpbnQgbWFyayA9IDA7CisgICAgICAgIGludCBzdGF0ZSA9IDA7CisgICAgICAgIGxvb3A6IGZvciAoaW50IGkgPSAwOyBpIDwgbGluZS5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBsaW5lLmNoYXJBdChpKTsKKyAgICAgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICAgICAgICAgIGNhc2UgMDogLy8gYXQgc3RhcnQgb2YgbGluZSwgaGF2ZW4ndCBzZWVuIGFueXRoaW5nIGJ1dCB3aGl0ZXNwYWNlIHlldAorICAgICAgICAgICAgICAgIGlmIChjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXHInKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnLycpIHsgc3RhdGUgPSAxOyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIGlmIChjID09ICcjJykgeyBzdGF0ZSA9IDQ7IGNvbnRpbnVlOyB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY2FzZSAxOiAvLyBoYXZlIHNlZW4gYSBzaW5nbGUgc2xhc2ggYWZ0ZXIgc3RhcnQgb2YgbGluZQorICAgICAgICAgICAgICAgIGlmIChjID09ICcvJykgeyBzdGF0ZSA9IDI7IGNvbnRpbnVlOyB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY2FzZSAyOiAvLyBoYXZlIHNlZW4gdHdvIG9yIG1vcmUgc2xhc2hlcworICAgICAgICAgICAgICAgIGlmIChjID09ICcvJykgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdccicpIHsgc3RhdGUgPSAzOyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIGlmIChjID09ICcjJykgeyBzdGF0ZSA9IDQ7IGNvbnRpbnVlOyB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY2FzZSAzOiAvLyBoYXZlIHNlZW4gYSBzcGFjZSBhZnRlciB0d28gb3IgbW9yZSBzbGFzaGVzCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyAnIHx8IGMgPT0gJ1x0JyB8fCBjID09ICdccicpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChjID09ICcjJykgeyBzdGF0ZSA9IDQ7IGNvbnRpbnVlOyB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY2FzZSA0OiAvLyBoYXZlIHNlZW4gYSAnIycgCisgICAgICAgICAgICAgICAgbGVhZEtleVZhbHVlWzBdID0gbGluZS5zdWJzdHJpbmcobWFyaywgaS0xKTsKKyAgICAgICAgICAgICAgICBpZiAoKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSB8fCAoYyA+PSAnQScgJiYgYyA8PSAnWicpKSB7IG1hcmsgPSBpOyBzdGF0ZSA9IDU7IGNvbnRpbnVlOyB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgY2FzZSA1OiAvLyBhbiBhc2NpaSBjaGFyIGZvbGxvd2VkIHRoZSAnIycKKyAgICAgICAgICAgICAgICBpZiAoKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSB8fCAoYyA+PSAnQScgJiYgYyA8PSAnWicpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xuJykgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gbGluZS5zdWJzdHJpbmcobWFyaywgaSkudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGtleS5lcXVhbHMoImlmZGVmIikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleS5lcXVhbHMoImlmbmRlZiIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBrZXkuZXF1YWxzKCJlbHNlIikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleS5lcXVhbHMoImVuZGlmIikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleS5lcXVhbHMoInVuZGVmIikgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleS5lcXVhbHMoImRlZmluZSIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBrZXkuZXF1YWxzKCJpZiIpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBrZXkuZXF1YWxzKCJlbGlmIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRLZXlWYWx1ZVsxXSA9IGtleTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hcmsgPSBpOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSA2OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbG9vcDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhdGUgPT0gNikgeworICAgICAgICAgICAgbGVhZEtleVZhbHVlWzJdID0gbGluZS5zdWJzdHJpbmcobWFyaywgbGluZS5sZW5ndGgoKSkudHJpbSgpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBuZXZlciByZWFjaGVkLCBkb2VzIHRoZSBjb21waWxlciBrbm93IHRoaXM/CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybSBzYW1lIG9wZXJhdGlvbiBhcyBtYXRjaGluZyBvbiBwYXQyLiAgb24gZXhpdAorICAgICAqIGtleVJlbFZhbHVlIGNvbnRhaW5zIHRoZSB0aHJlZSBzdHJpbmdzIGtleSwgcmVsLCBhbmQgdmFsdWUuCisgICAgICogJ2tleScgaXMgdGhlIHBvcnRpb24gYmVmb3JlIHRoZSByZWxhdGlvbiAob3IgZmluYWwgd29yZCkuICAncmVsJyBpcworICAgICAqIHRoZSByZWxhdGlvbiwgaWYgcHJlc2VudCwgZWl0aGVyID09IG9yICE9LiAgJ3ZhbHVlJyBpcyB0aGUgZmluYWwKKyAgICAgKiB3b3JkLiAgaWYgdGhlcmUgaXMgYSBtYXRjaCwgcmV0dXJuIHRydWUsIGVsc2UgcmV0dXJuIGZhbHNlLgorICAgICAqLworICAgIHN0YXRpYyBib29sZWFuIHBhdDJNYXRjaChTdHJpbmcgbGluZSwgU3RyaW5nW10ga2V5UmVsVmFsKSB7CisvLyAgICAgICBmaW5hbCBQYXR0ZXJuIHBhdDIgPSBQYXR0ZXJuLmNvbXBpbGUoIihbXj0hXSspXFxzKihbIT1dPz0pPz9cXHMqKFxcdyspIik7CisvLyBobW1tLCB0aGlzIHBhdHRlcm4gZG9lc24ndCBsb29rIHJpZ2h0LiAgYSBwYXR0ZXJuIGNvbnNpc3Rpbmcgb2YgJ2FiY2QnIHNob3VsZAorLy8gcmV0dXJuIHsiYWJjZCIsICIiLCAiIn0gYnV0IGl0IGxvb2tzIGxpa2UgaXQgcmV0dXJucyB7IiIsICIiLCAiYWJjZCJ9LgorCisgICAgICAgIGlmIChsaW5lLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBrZXlSZWxWYWxbMF0gPSBrZXlSZWxWYWxbMV0gPSBrZXlSZWxWYWxbMl0gPSAiIjsKKyAgICAgICAgaW50IG1hcmsgPSAwOworICAgICAgICBpbnQgc3RhdGUgPSAwOworICAgICAgICBsb29wOiBmb3IgKGludCBpID0gMDsgaSA8IGxpbmUubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gbGluZS5jaGFyQXQoaSk7CisgICAgICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgICAgICAgICBjYXNlIDA6IC8vIHNhdyBiZWdpbm5pbmcgb3Igc3BhY2UsIG5vIHJlbCB5ZXQKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xuJykgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKChjID09ICchJyB8fCBjID09ICc9JykpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzdGF0ZSA9IDE7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBjYXNlIDE6IC8vIHNhdyBzdGFydCBvZiBhIHdvcmQKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gMjsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSAnIScgfHwgYyA9PSAnPScpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGNhc2UgMjogLy8gc2F3IGVuZCBvZiB3b3JkLCBhbmQgc3BhY2UKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChjID09ICchJyB8fCBjID09ICc9JykgeworICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDM7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBrZXlSZWxWYWxbMF0gPSBsaW5lLnN1YnN0cmluZygwLCBpLTEpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICBtYXJrID0gaTsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IDQ7CisgICAgICAgICAgICAgICAgYnJlYWsgbG9vcDsKKyAgICAgICAgICAgIGNhc2UgMzogLy8gc2F3IGVuZCBvZiB3b3JkLCBhbmQgJyEnIG9yICc9JworICAgICAgICAgICAgICAgIGlmIChjID09ICc9JykgeworICAgICAgICAgICAgICAgICAgICBrZXlSZWxWYWxbMF0gPSBsaW5lLnN1YnN0cmluZygwLCBpLTEpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAga2V5UmVsVmFsWzFdID0gbGluZS5zdWJzdHJpbmcoaS0xLCBpKzEpOworICAgICAgICAgICAgICAgICAgICBtYXJrID0gaSsxOworICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IDQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChzdGF0ZSkgeworICAgICAgICBjYXNlIDA6IAorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBmb3VuZCBub3RoaW5nCisgICAgICAgIGNhc2UgMTogCisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGtleVJlbFZhbFswXSA9IGxpbmUudHJpbSgpOyBicmVhazsgLy8gZm91bmQgb25seSBhIHdvcmQKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBmb3VuZCBhIHdvcmQgYW5kICchJyBvciAnPSIgdGhlbiBlbmQgb2YgbGluZSwgaW5jb21wbGV0ZQorICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICBrZXlSZWxWYWxbMl0gPSBsaW5lLnN1YnN0cmluZyhtYXJrKS50cmltKCk7IGJyZWFrOyAvLyBmb3VuZCBhIHdvcmQsIHBvc3NpYmxlIHJlbCwgYW5kIHdobyBrbm93cyB3aGF0CisgICAgICAgIGRlZmF1bHQ6IAorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHN0YXRpYyBTdHJpbmcgcGF0M01hdGNoKFN0cmluZyBsaW5lKSB7CisgICAgICAgIGludCBzdGF0ZSA9IDA7CisgICAgICAgIGxvb3A6IGZvciAoaW50IGkgPSAwOyBpIDwgbGluZS5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBsaW5lLmNoYXJBdChpKTsKKyAgICAgICAgICAgIHN3aXRjaChzdGF0ZSkgeworICAgICAgICAgICAgY2FzZSAwOiBpZiAoYyA9PSAnICcgfHwgYyA9PSAnXHQnKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnLycpIHsgc3RhdGUgPSAxOyBjb250aW51ZTsgfQorICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJy8nKSB7IHN0YXRlID0gMjsgY29udGludWU7IH0KKyAgICAgICAgICAgICAgICBicmVhayBsb29wOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIGlmIChjID09ICcjJykgeyBzdGF0ZSA9IDM7IGNvbnRpbnVlOyB9CisgICAgICAgICAgICAgICAgYnJlYWsgbG9vcDsKKyAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnIycpIHJldHVybiBsaW5lLnN1YnN0cmluZygwLCBpKzEpOworICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgICAgIAorLy8gICAgICAgZmluYWwgUGF0dGVybiBwYXQzID0gUGF0dGVybi5jb21waWxlKCJeKFxccyovLyMjKS4qIik7CisgICAgICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvRGVwcmVjYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvRGVwcmVjYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzMGY3ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9EZXByZWNhdG9yLmphdmEKQEAgLTAsMCArMSwxOTMgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5kb2NzOworCitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEuaW8uRmlsZW5hbWVGaWx0ZXI7CitpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS51dGlsLnJlZ2V4Lio7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBEZXByZWNhdG9yIHsKKyAgICBwcml2YXRlIGJvb2xlYW4gdW5kZXA7CisgICAgcHJpdmF0ZSBpbnQgbG9nOworCisgICAgRGVwcmVjYXRvcihib29sZWFuIHVuZGVwLCBpbnQgbG9nKSB7CisgICAgICAgIHRoaXMudW5kZXAgPSB1bmRlcDsKKyAgICAgICAgdGhpcy5sb2cgPSBsb2c7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBTdHJpbmcgc3JjUGF0aCA9IG51bGw7CisgICAgICAgIFN0cmluZyBkc3RQYXRoID0gbnVsbDsKKyAgICAgICAgYm9vbGVhbiB1bmRlcCA9IGZhbHNlOworCisgICAgICAgIGludCBsb2cgPSAxOworICAgICAgICBib29sZWFuIGhlbHAgPSBmYWxzZTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGVyciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBhcmcgPSBhcmdzW2ldOworICAgICAgICAgICAgaWYgKGFyZy5lcXVhbHMoIi1zcmMiKSkgeworICAgICAgICAgICAgICAgIHNyY1BhdGggPSBhcmdzWysraV07CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1kc3QiKSkgeworICAgICAgICAgICAgICAgIGRzdFBhdGggPSBhcmdzWysraV07CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi11bmRlcCIpKSB7CisgICAgICAgICAgICAgICAgdW5kZXAgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItaGVscCIpKSB7CisgICAgICAgICAgICAgICAgaGVscCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1zaWxlbnQiKSkgeworICAgICAgICAgICAgICAgIGxvZyA9IDA7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1sb2ciKSkgeworICAgICAgICAgICAgICAgIGxvZyA9IDI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1sb2dmaWxlcyIpKSB7CisgICAgICAgICAgICAgICAgbG9nID0gMzsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLXZlcmJvc2UiKSkgeworICAgICAgICAgICAgICAgIGxvZyA9IDQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVyci5hcHBlbmQoIlxudW5yZWNvZ25pemVkIGFyZ3VtZW50OiAiICsgYXJnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIEZpbGUgc3JjRGlyID0gbnVsbDsKKyAgICAgICAgRmlsZSBkc3REaXIgPSBudWxsOworCisgICAgICAgIGlmIChzcmNQYXRoID09IG51bGwpIHsKKyAgICAgICAgICAgIGVyci5hcHBlbmQoIlxuc3JjIG11c3QgYmUgZGVmaW5lZCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc3JjRGlyID0gbmV3IEZpbGUoc3JjUGF0aCk7CisgICAgICAgICAgICBpZiAoIShzcmNEaXIuZXhpc3RzKCkgJiYgc3JjRGlyLmlzRGlyZWN0b3J5KCkpKSB7CisgICAgICAgICAgICAgICAgZXJyLmFwcGVuZCgiXG5zcmMgbXVzdCBiZSBhbiBleGlzdGluZyBkaXJlY3Rvcnk6ICciICsgc3JjUGF0aCArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRzdFBhdGggPT0gbnVsbCkgeworICAgICAgICAgICAgZXJyLmFwcGVuZCgiXG5kc3QgbXVzdCBiZSBkZWZpbmVkIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkc3REaXIgPSBuZXcgRmlsZShkc3RQYXRoKTsKKyAgICAgICAgICAgIGlmICghZHN0RGlyLmV4aXN0cygpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFkc3REaXIubWtkaXJzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJyLmFwcGVuZCgiXG51bmFibGUgdG8gY3JlYXRlIGRzdDogJyIgKyBkc3RQYXRoICsgIiciKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKCFkc3REaXIuaXNEaXJlY3RvcnkoKSkgeworICAgICAgICAgICAgICAgIGVyci5hcHBlbmQoIlxuZHN0IGV4aXN0cyBidXQgaXMgbm90IGRpcmVjdG9yeTogJyIgKyBkc3RQYXRoICsgIiciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChoZWxwIHx8IGVyci5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGlmICghaGVscCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXJyb3I6ICIgKyBlcnIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmIChsb2cgPiAwKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJzcmM6ICIgKyBzcmNEaXIuZ2V0Q2Fub25pY2FsUGF0aCgpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRzdDogIiArIGRzdERpci5nZXRDYW5vbmljYWxQYXRoKCkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigidW5kZXA6ICIgKyB1bmRlcCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5mbHVzaCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBuZXcgRGVwcmVjYXRvcih1bmRlcCwgbG9nKS5wcm9jZXNzKHNyY0RpciwgZHN0RGlyKTsKKworICAgICAgICAgICAgaWYgKGxvZyA+IDApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRvbmUiKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LmZsdXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVW5leHBlY3RlZCBlcnJvcjogIiArIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgdXNhZ2UoKSB7CisgICAgICAgIFByaW50V3JpdGVyIHB3ID0gbmV3IFByaW50V3JpdGVyKFN5c3RlbS5vdXQpOworICAgICAgICBwdy5wcmludGxuKCJVc2FnZTogRGVwcmVjYXRvciAtc3JjIHBhdGggLWRzdCBwYXRoIFstaGVscF0iKTsKKyAgICAgICAgcHcucHJpbnRsbigiICAtc3JjIHBhdGggOiB0aGUgcm9vdCBvZiB0aGUgdHJlZSBvZiBmaWxlcyB0byB3b3JrIG9uIik7CisgICAgICAgIHB3LnByaW50bG4oIiAgLWRzdCBwYXRoIDogdGhlIHJvb3Qgb2YgdGhlIHRyZWUgdG8gcHV0IHRoZSByZXN1bHRpbmcgZmlsZXMiKTsKKyAgICAgICAgcHcucHJpbnRsbigiICAtaGVscCAgICAgOiBwcmludCB0aGlzIHVzYWdlIG1lc3NhZ2UgYW5kIGV4aXQsIGRvaW5nIG5vdGhpbmciKTsKKyAgICAgICAgcHcucHJpbnRsbigiICAtdW5kZXAgICAgOiByZW1vdmUgZGVwcmVjYXRpb24gdGFncyBpZiBwcmVzZW50IChkZWZhdWx0IGZhbHNlKSIpOworICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgIHB3LnByaW50bG4oIiAgQWRkIG9yIHJlbW92ZSB3YXJuaW5nIGRlcHJlY2F0aW9ucyBmb3IgSUNVIEBkcmFmdCBhbmQgQGludGVybmFsIEFQSXMiKTsKKyAgICAgICAgcHcuZmx1c2goKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIHN0b3BsaXN0ID0gIiFDVlMiOworICAgIHN0YXRpYyBmaW5hbCBGaWxlbmFtZUZpbHRlciBmZiA9IG5ldyBGaWxlbmFtZUZpbHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdChGaWxlIGRpciwgU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgICAgICBpZiAobmFtZS5lbmRzV2l0aCgiLmphdmEiKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgaWYgKG5ldyBGaWxlKGRpciwgbmFtZSkuaXNEaXJlY3RvcnkoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3RvcGxpc3QuaW5kZXhPZigiISIrbmFtZSkgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgICAgIAorICAgIHZvaWQgcHJvY2VzcyhGaWxlIHNyY0RpciwgRmlsZSBkc3REaXIpIHsKKyAgICAgICAgRmlsZVtdIGZpbGVzID0gc3JjRGlyLmxpc3RGaWxlcyhmZik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIEZpbGUgZiA9IGZpbGVzW2ldOworICAgICAgICAgICAgRmlsZSBkID0gbmV3IEZpbGUoZHN0RGlyLCBmLmdldE5hbWUoKSk7CisgICAgICAgICAgICBpZiAoZi5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFkLmV4aXN0cygpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghZC5ta2RpcigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oImNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5OiAiICsgZC5nZXRQYXRoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFkLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJmaWxlIGFscmVhZHkgZXhpc3RzIGJ1dCBpcyBub3QgZGlyZWN0b3J5OiAiICsgZC5nZXRQYXRoKCkpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxvZyA+IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJwcm9jZXNzIGRpcjogIiArIGYuZ2V0UGF0aCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJvY2VzcyhmLCBkKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJvY2Vzc0ZpbGUoZiwgZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorIEAgZGVwcmVjYXRlZAorICoqKiBAZGVwcmVjYXRlZAorICoqICoqICoqIEBkZXByZWNhdGVkCisgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgUGF0dGVybiBwYXQgPSBQYXR0ZXJuLmNvbXBpbGUoIl5bXFxzKl0qQFxccypkZXByZWNhdGVkLioiKTsKKworICAgIHZvaWQgcHJvY2Vzc0ZpbGUoRmlsZSBzcmNGaWxlLCBGaWxlIGRzdEZpbGUpIHsKKyAgICAgICAgaWYgKGxvZyA+IDIpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicHJvY2VzcyAnIiArIHNyY0ZpbGUuZ2V0UGF0aCgpICsgIiciKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciByID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihuZXcgRmlsZUlucHV0U3RyZWFtKHNyY0ZpbGUpKSk7CisgICAgICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgICAgICBTdHJpbmcgbGluZSA9IG51bGw7CisgICAgICAgICAgICB3aGlsZSAobnVsbCAhPSAobGluZSA9IHIucmVhZExpbmUoKSkpIHsKKyAgICAgICAgICAgICAgICArK247CisgICAgICAgICAgICAgICAgTWF0Y2hlciBtID0gcGF0Lm1hdGNoZXIobGluZSk7CisgICAgICAgICAgICAgICAgaWYgKG0ubWF0Y2hlcygpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChsb2cgPiAzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oU3RyaW5nLnZhbHVlT2YobikgKyAiOiAiICsgbGluZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByLmNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LmZsdXNoKCk7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oImNhdWdodCBleGNlcHRpb246ICIgKyBlKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0dhdGhlckFQSURhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0dhdGhlckFQSURhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWQ3YWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvR2F0aGVyQVBJRGF0YS5qYXZhCkBAIC0wLDAgKzEsNDM3IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqCisgKiBHZW5lcmF0ZSBhIGxpc3Qgb2YgSUNVJ3MgcHVibGljIEFQSXMsIHNvcnRlZCBieSBxdWFsaWZpZWQgbmFtZSBhbmQgc2lnbmF0dXJlCisgKiBwdWJsaWMgQVBJcyBhcmUgYWxsIG5vbi1pbnRlcm5hbCwgbm9uLXBhY2thZ2UgYXBpcyBpbiBjb20uaWJtLmljdS5bbGFuZ3xtYXRofHRleHR8dXRpbF0uCisgKiBGb3IgZWFjaCBBUEksIGxpc3QKKyAqIC0gcHVibGljLCBwYWNrYWdlLCBwcm90ZWN0ZWQsIG9yIHByaXZhdGUgKFBCIFBLIFBUIFBSKQorICogLSBzdGF0aWMgb3Igbm9uLXN0YXRpYyAoU1RLIE5TVCkKKyAqIC0gZmluYWwgb3Igbm9uLWZpbmFsIChGTiBORikKKyAqIC0gc3luY2hyb25pemVkIG9yIG5vbi1zeW5jaHJvbml6ZWQgKFNZTiBOU1kpCisgKiAtIHN0YWJsZSwgZHJhZnQsIGRlcHJlY2F0ZWQsIG9ic29sZXRlIChTVCBEUiBEUCBPQikKKyAqIC0gYWJzdHJhY3Qgb3Igbm9uLWFic3RyYWN0IChBQiBOQSkKKyAqIC0gY29uc3RydWN0b3IsIG1lbWJlciwgZmllbGQgKEMgTSBGKQorICoKKyAqIFJlcXVpcmVzIEpESyAxLjQuMiBvciBsYXRlcgorICogCisgKiBTYW1wbGUgY29tcGlsYXRpb246CisgKiBjOi9kb3VnL2phdmEvamRrMS40LjIvYnVpbGQvd2luZG93cy1pNTg2L2Jpbi9qYXZhYyAqLmphdmEKKyAqCisgKiBTYW1wbGUgZXhlY3V0aW9uCisgKiBjOi9qMnNkazEuNC4yL2Jpbi9qYXZhZG9jCisgKiAgIC1jbGFzc3BhdGggYzovamQyc2sxLjQuMi9saWIvdG9vbHMuamFyIAorICogICAtZG9jbGV0IGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuR2F0aGVyQVBJRGF0YQorICogICAtZG9jbGV0cGF0aCBjOi9kb3VnL2N2c3Byb2ovaWN1NGovc3JjIAorICogICAtc291cmNlcGF0aCBjOi9kb3VnL2N2c3Byb2ovaWN1NGovc3JjIAorICogICAtbmFtZSAiSUNVNEogMy4wIgorICogICAtb3V0cHV0IGljdTRqMzAuYXBpCisgKiAgIC1nemlwCisgKiAgIC1zb3VyY2UgMS40CisgKiAgIGNvbS5pYm0uaWN1LmxhbmcgY29tLmlibS5pY3UubWF0aCBjb20uaWJtLmljdS50ZXh0IGNvbS5pYm0uaWN1LnV0aWwKKyAqCisgKiB0b2RvOiBzZXBhcmF0ZSBnZW5lcmF0aW9uIG9mIGRhdGEgZmlsZXMgKHdoaWNoIHJlcXVpcmVzIHRhZ2xldCkgZnJvbSAKKyAqICAgICAgIGNvbXBhcmlzb24gYW5kIHJlcG9ydCBnZW5lcmF0aW9uICh3aGljaCBkb2VzIG5vdCByZXF1aXJlIGl0KQorICogdG9kbzogcHJvdmlkZSBjb21tYW5kLWxpbmUgY29udHJvbCBvZiBmaWx0ZXJzIG9mIHdoaWNoIHN1YmNsYXNzZXMvcGFja2FnZXMgdG8gcHJvY2VzcworICogdG9kbzogcmVjb3JkIGZ1bGwgaW5oZXJpdGFuY2UgaGVpcmFyY2h5LCBub3QganVzdCBpbW1lZGlhdGUgaW5oZXJpdGFuY2UgCisgKiB0b2RvOiBhbGxvdyBmb3IgYWxpYXNpbmcgY29tcGFyaXNvbnMgKGZvcmNlIChwa2cuKSpjbGFzcyB0byBiZSB0cmVhdGVkIGFzIHRob3VnaCBpdCAKKyAqICAgICAgIHdlcmUgaW4gYSBkaWZmZXJlbnQgcGtnL2NsYXNzIGhlaXJhcmNoeSAoZmFjaWxpdGF0ZXMgY29tcGFyaXNvbiBvZiBpY3U0aiBhbmQgamF2YSkKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKKy8vIHN0YW5kYXJkIHJlbGVhc2Ugc2RrIHdvbid0IHdvcmssIG5lZWQgaW50ZXJuYWwgYnVpbGQgdG8gZ2V0IGFjY2VzcyB0byBqYXZhZG9jCitpbXBvcnQgY29tLnN1bi5qYXZhZG9jLio7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5yZWdleC4qOworaW1wb3J0IGphdmEudXRpbC56aXAuR1pJUE91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuemlwLlppcEVudHJ5OworaW1wb3J0IGphdmEudXRpbC56aXAuWmlwT3V0cHV0U3RyZWFtOworCitwdWJsaWMgY2xhc3MgR2F0aGVyQVBJRGF0YSB7CisgICAgUm9vdERvYyByb290OworICAgIFRyZWVTZXQgcmVzdWx0czsKKyAgICBTdHJpbmcgc3JjTmFtZSA9ICJDdXJyZW50IjsgLy8gZGVmYXVsdCBzb3VyY2UgbmFtZQorICAgIFN0cmluZyBvdXRwdXQ7IC8vIG5hbWUgb2Ygb3V0cHV0IGZpbGUgdG8gd3JpdGUKKyAgICBTdHJpbmcgYmFzZTsgLy8gc3RyaXAgdGhpcyBwcmVmaXgKKyAgICBQYXR0ZXJuIHBhdDsKKyAgICBib29sZWFuIHppcDsKKyAgICBib29sZWFuIGd6aXA7CisKKyAgICBwdWJsaWMgc3RhdGljIGludCBvcHRpb25MZW5ndGgoU3RyaW5nIG9wdGlvbikgeworICAgICAgICBpZiAob3B0aW9uLmVxdWFscygiLW5hbWUiKSkgeworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLmVxdWFscygiLW91dHB1dCIpKSB7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCItYmFzZSIpKSB7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfSBlbHNlIGlmIChvcHRpb24uZXF1YWxzKCItZmlsdGVyIikpIHsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbi5lcXVhbHMoIi16aXAiKSkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0gZWxzZSBpZiAob3B0aW9uLmVxdWFscygiLWd6aXAiKSkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIHN0YXJ0KFJvb3REb2Mgcm9vdCkgeworICAgICAgICByZXR1cm4gbmV3IEdhdGhlckFQSURhdGEocm9vdCkucnVuKCk7CisgICAgfQorCisgICAgR2F0aGVyQVBJRGF0YShSb290RG9jIHJvb3QpIHsKKyAgICAgICAgdGhpcy5yb290ID0gcm9vdDsKKworICAgICAgICBTdHJpbmdbXVtdIG9wdGlvbnMgPSByb290Lm9wdGlvbnMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvcHRpb25zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgb3B0ID0gb3B0aW9uc1tpXVswXTsKKyAgICAgICAgICAgIGlmIChvcHQuZXF1YWxzKCItbmFtZSIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5zcmNOYW1lID0gb3B0aW9uc1tpXVsxXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0LmVxdWFscygiLW91dHB1dCIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5vdXRwdXQgPSBvcHRpb25zW2ldWzFdOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCItYmFzZSIpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5iYXNlID0gb3B0aW9uc1tpXVsxXTsgLy8gc2hvdWxkIG5vdCBpbmNsdWRlICcuJworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCItZmlsdGVyIikpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnBhdCA9IFBhdHRlcm4uY29tcGlsZShvcHRpb25zW2ldWzFdLCBQYXR0ZXJuLkNBU0VfSU5TRU5TSVRJVkUpOworICAgICAgICAgICAgfSBlbHNlIGlmIChvcHQuZXF1YWxzKCItemlwIikpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnppcCA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG9wdC5lcXVhbHMoIi1nemlwIikpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmd6aXAgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0cyA9IG5ldyBUcmVlU2V0KEFQSUluZm8uZGVmYXVsdENvbXBhcmF0b3IoKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIHJ1bigpIHsKKyAgICAgICAgZG9Eb2NzKHJvb3QuY2xhc3NlcygpKTsKKworICAgICAgICBPdXRwdXRTdHJlYW0gb3MgPSBTeXN0ZW0ub3V0OworICAgICAgICBpZiAob3V0cHV0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKHppcCkgeworICAgICAgICAgICAgICAgICAgICBaaXBPdXRwdXRTdHJlYW0gem9zID0gbmV3IFppcE91dHB1dFN0cmVhbShuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRwdXQgKyAiLnppcCIpKTsKKyAgICAgICAgICAgICAgICAgICAgem9zLnB1dE5leHRFbnRyeShuZXcgWmlwRW50cnkob3V0cHV0KSk7CisgICAgICAgICAgICAgICAgICAgIG9zID0gem9zOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZ3ppcCkgeworICAgICAgICAgICAgICAgICAgICBvcyA9IG5ldyBHWklQT3V0cHV0U3RyZWFtKG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dHB1dCArICIuZ3oiKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgb3MgPSBuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRwdXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICByZS5pbml0Q2F1c2UoZSk7CisgICAgICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBCdWZmZXJlZFdyaXRlciBidyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBPdXRwdXRTdHJlYW1Xcml0ZXIgb3N3ID0gbmV3IE91dHB1dFN0cmVhbVdyaXRlcihvcywgIlVURi04Iik7CisgICAgICAgICAgICBidyA9IG5ldyBCdWZmZXJlZFdyaXRlcihvc3cpOworCisgICAgICAgICAgICAvLyB3cml0aW5nIGRhdGEgZmlsZQorICAgICAgICAgICAgYncud3JpdGUoU3RyaW5nLnZhbHVlT2YoQVBJSW5mby5WRVJTSU9OKSArIEFQSUluZm8uU0VQKTsgLy8gaGVhZGVyIHZlcnNpb24KKyAgICAgICAgICAgIGJ3LndyaXRlKHNyY05hbWUgKyBBUElJbmZvLlNFUCk7IC8vIHNvdXJjZSBuYW1lCisgICAgICAgICAgICBidy53cml0ZSgoYmFzZSA9PSBudWxsID8gIiIgOiBiYXNlKSArIEFQSUluZm8uU0VQKTsgLy8gYmFzZQorICAgICAgICAgICAgYncubmV3TGluZSgpOworICAgICAgICAgICAgd3JpdGVSZXN1bHRzKHJlc3VsdHMsIGJ3KTsKKyAgICAgICAgICAgIGJ3LmNsb3NlKCk7IC8vIHNob3VsZCBmbHVzaCwgY2xvc2UgYWxsLCBldGMKKyAgICAgICAgICAgIC8vICAgICAgICAgIGlmICh6aXApIHsKKyAgICAgICAgICAgIC8vICAgICAgICAgICgoWmlwT3V0cHV0U3RyZWFtKW9zKS5maW5pc2goKTsKKyAgICAgICAgICAgIC8vICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdHJ5IHsgYncuY2xvc2UoKTsgfSBjYXRjaCAoSU9FeGNlcHRpb24gZTIpIHt9CisgICAgICAgICAgICBSdW50aW1lRXhjZXB0aW9uIHJlID0gbmV3IFJ1bnRpbWVFeGNlcHRpb24oIndyaXRlIGVycm9yOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgcmUuaW5pdENhdXNlKGUpOworICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvRG9jcyhQcm9ncmFtRWxlbWVudERvY1tdIGRvY3MpIHsKKyAgICAgICAgaWYgKGRvY3MgIT0gbnVsbCAmJiBkb2NzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZG9jcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGRvRG9jKGRvY3NbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvRG9jKFByb2dyYW1FbGVtZW50RG9jIGRvYykgeworICAgICAgICBpZiAoaWdub3JlKGRvYykpIHJldHVybjsKKworICAgICAgICBpZiAoZG9jLmlzQ2xhc3MoKSB8fCBkb2MuaXNJbnRlcmZhY2UoKSkgeworICAgICAgICAgICAgQ2xhc3NEb2MgY2RvYyA9IChDbGFzc0RvYylkb2M7CisgICAgICAgICAgICBkb0RvY3MoY2RvYy5maWVsZHMoKSk7CisgICAgICAgICAgICBkb0RvY3MoY2RvYy5jb25zdHJ1Y3RvcnMoKSk7CisgICAgICAgICAgICBkb0RvY3MoY2RvYy5tZXRob2RzKCkpOworICAgICAgICAgICAgZG9Eb2NzKGNkb2MuaW5uZXJDbGFzc2VzKCkpOworICAgICAgICB9CisKKyAgICAgICAgQVBJSW5mbyBpbmZvID0gY3JlYXRlSW5mbyhkb2MpOworICAgICAgICBpZiAoaW5mbyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHRzLmFkZChpbmZvKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBpZ25vcmUoUHJvZ3JhbUVsZW1lbnREb2MgZG9jKSB7CisgICAgICAgIGlmIChkb2MgPT0gbnVsbCkgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChkb2MuaXNQcml2YXRlKCkgfHwgZG9jLmlzUGFja2FnZVByaXZhdGUoKSkgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChkb2MgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvckRvYyAmJiAoKENvbnN0cnVjdG9yRG9jKWRvYykuaXNTeW50aGV0aWMoKSkgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChkb2MucXVhbGlmaWVkTmFtZSgpLmluZGV4T2YoIi5taXNjIikgIT0gLTEpIHsgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm1pc2M6ICIgKyBkb2MucXVhbGlmaWVkTmFtZSgpKTsgcmV0dXJuIHRydWU7IAorICAgICAgICB9CisgICAgICAgIFRhZ1tdIHRhZ3MgPSBkb2MudGFncygpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICh0YWdLaW5kSW5kZXgodGFnc1tpXS5raW5kKCkpID09IElOVEVSTkFMKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAocGF0ICE9IG51bGwgJiYgKGRvYy5pc0NsYXNzKCkgfHwgZG9jLmlzSW50ZXJmYWNlKCkpKSB7CisgICAgICAgICAgICBpZiAoIXBhdC5tYXRjaGVyKGRvYy5uYW1lKCkpLm1hdGNoZXMoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHdyaXRlUmVzdWx0cyhDb2xsZWN0aW9uIGMsIEJ1ZmZlcmVkV3JpdGVyIHcpIHsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IGMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBBUElJbmZvIGluZm8gPSAoQVBJSW5mbylpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIGluZm8ud3JpdGVsbih3KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIHRyaW1CYXNlKFN0cmluZyBhcmcpIHsKKyAgICAgICAgaWYgKGJhc2UgIT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgbiA9IGFyZy5pbmRleE9mKGJhc2UpOyBuICE9IC0xOyBuID0gYXJnLmluZGV4T2YoYmFzZSwgbikpIHsKKyAgICAgICAgICAgICAgICBhcmcgPSBhcmcuc3Vic3RyaW5nKDAsIG4pICsgYXJnLnN1YnN0cmluZyhuK2Jhc2UubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBhcmc7CisgICAgfQorCisgICAgcHVibGljIEFQSUluZm8gY3JlYXRlSW5mbyhQcm9ncmFtRWxlbWVudERvYyBkb2MpIHsKKworICAgICAgICAvLyBEb2MuIG5hbWUKKyAgICAgICAgLy8gRG9jLiBpc0ZpZWxkLCBpc01ldGhvZCwgaXNDb25zdHJ1Y3RvciwgaXNDbGFzcywgaXNJbnRlcmZhY2UKKyAgICAgICAgLy8gUHJvZ3JhbUVsZW1lbnREb2MuIGNvbnRhaW5pbmdDbGFzcywgY29udGFpbmluZ1BhY2thZ2UKKyAgICAgICAgLy8gUHJvZ3JhbUVsZW1lbnREb2MuIGlzUHVibGljLCBpc1Byb3RlY3RlZCwgaXNQcml2YXRlLCBpc1BhY2thZ2VQcml2YXRlCisgICAgICAgIC8vIFByb2dyYW1FbGVtZW50RG9jLiBpc1N0YXRpYywgaXNGaW5hbAorICAgICAgICAvLyBNZW1iZXJEb2MuaXNTeW50aGV0aWMKKyAgICAgICAgLy8gRXhlY3V0YWJsZU1lbWJlckRvYyBpc1N5bmNocm9uaXplZCwgc2lnbmF0dXJlCisgICAgICAgIC8vIFR5cGUudG9TdHJpbmcoKSAvLyBlLmcuICJTdHJpbmdbXVtdIgorICAgICAgICAvLyBDbGFzc0RvYy5pc0Fic3RyYWN0LCBzdXBlckNsYXNzLCBpbnRlcmZhY2VzLCBmaWVsZHMsIG1ldGhvZHMsIGNvbnN0cnVjdG9ycywgaW5uZXJDbGFzc2VzCisgICAgICAgIC8vIEZpZWxkRG9jIHR5cGUKKyAgICAgICAgLy8gQ29uc3RydWN0b3JEb2MgcXVhbGlmaWVkTmFtZQorICAgICAgICAvLyBNZXRob2REb2MgaXNBYnN0cmFjdCwgcmV0dXJuVHlwZQorCisgICAgICAgIEFQSUluZm8gaW5mbyA9IG5ldyBBUElJbmZvKCk7CisgICAgICAgICAgICAKKyAgICAgICAgLy8gc3RhdHVzCisgICAgICAgIGluZm8uc2V0VHlwZShBUElJbmZvLlNUQSwgdGFnU3RhdHVzKGRvYykpOworCisgICAgICAgIC8vIHZpc2liaWxpdHkKKyAgICAgICAgaWYgKGRvYy5pc1B1YmxpYygpKSB7CisgICAgICAgICAgICBpbmZvLnNldFB1YmxpYygpOworICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc1Byb3RlY3RlZCgpKSB7CisgICAgICAgICAgICBpbmZvLnNldFByb3RlY3RlZCgpOworICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc1ByaXZhdGUoKSkgeworICAgICAgICAgICAgaW5mby5zZXRQcml2YXRlKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBkZWZhdWx0IGlzIHBhY2thZ2UKKyAgICAgICAgfQorCisgICAgICAgIC8vIHN0YXRpYworICAgICAgICBpZiAoZG9jLmlzU3RhdGljKCkpIHsKKyAgICAgICAgICAgIGluZm8uc2V0U3RhdGljKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBkZWZhdWx0IGlzIG5vbi1zdGF0aWMKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZpbmFsCisgICAgICAgIGlmIChkb2MuaXNGaW5hbCgpKSB7CisgICAgICAgICAgICBpbmZvLnNldEZpbmFsKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBkZWZhdWx0IGlzIG5vbi1maW5hbAorICAgICAgICB9CisKKyAgICAgICAgLy8gdHlwZQorICAgICAgICBpZiAoZG9jLmlzRmllbGQoKSkgeworICAgICAgICAgICAgaW5mby5zZXRGaWVsZCgpOworICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc01ldGhvZCgpKSB7CisgICAgICAgICAgICBpbmZvLnNldE1ldGhvZCgpOworICAgICAgICB9IGVsc2UgaWYgKGRvYy5pc0NvbnN0cnVjdG9yKCkpIHsKKyAgICAgICAgICAgIGluZm8uc2V0Q29uc3RydWN0b3IoKTsKKyAgICAgICAgfSBlbHNlIGlmIChkb2MuaXNDbGFzcygpIHx8IGRvYy5pc0ludGVyZmFjZSgpKSB7CisgICAgICAgICAgICBpbmZvLnNldENsYXNzKCk7CisgICAgICAgIH0KKworICAgICAgICBpbmZvLnNldFBhY2thZ2UodHJpbUJhc2UoZG9jLmNvbnRhaW5pbmdQYWNrYWdlKCkubmFtZSgpKSk7CisgICAgICAgIGluZm8uc2V0Q2xhc3NOYW1lKChkb2MuaXNDbGFzcygpIHx8IGRvYy5pc0ludGVyZmFjZSgpIHx8IChkb2MuY29udGFpbmluZ0NsYXNzKCkgPT0gbnVsbCkpIAorICAgICAgICAgICAgICAgICAgICAgICAgICA/ICIiIAorICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRyaW1CYXNlKGRvYy5jb250YWluaW5nQ2xhc3MoKS5uYW1lKCkpKTsKKyAgICAgICAgaW5mby5zZXROYW1lKHRyaW1CYXNlKGRvYy5uYW1lKCkpKTsKKyAgICAKKyAgICAgICAgaWYgKGRvYyBpbnN0YW5jZW9mIEZpZWxkRG9jKSB7CisgICAgICAgICAgICBGaWVsZERvYyBmZG9jID0gKEZpZWxkRG9jKWRvYzsKKyAgICAgICAgICAgIGluZm8uc2V0U2lnbmF0dXJlKHRyaW1CYXNlKGZkb2MudHlwZSgpLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgfSBlbHNlIGlmIChkb2MgaW5zdGFuY2VvZiBDbGFzc0RvYykgeworICAgICAgICAgICAgQ2xhc3NEb2MgY2RvYyA9IChDbGFzc0RvYylkb2M7CisKKyAgICAgICAgICAgIGlmIChjZG9jLmlzQ2xhc3MoKSAmJiBjZG9jLmlzQWJzdHJhY3QoKSkgeyAKKyAgICAgICAgICAgICAgICAvLyBpbnRlcmZhY2VzIGFyZSBhYnN0cmFjdCBieSBkZWZhdWx0LCBkb24ndCBtYXJrIHRoZW0gYXMgYWJzdHJhY3QKKyAgICAgICAgICAgICAgICBpbmZvLnNldEFic3RyYWN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpZiAoY2RvYy5pc0NsYXNzKCkpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJleHRlbmRzICIpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoY2RvYy5zdXBlcmNsYXNzKCkucXVhbGlmaWVkTmFtZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENsYXNzRG9jW10gaW1wID0gY2RvYy5pbnRlcmZhY2VzKCk7CisgICAgICAgICAgICBpZiAoaW1wICE9IG51bGwgJiYgaW1wLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIgIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoImltcGxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGltcC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIsIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiICIpOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGltcFtpXS5xdWFsaWZpZWROYW1lKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZm8uc2V0U2lnbmF0dXJlKHRyaW1CYXNlKGJ1Zi50b1N0cmluZygpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBFeGVjdXRhYmxlTWVtYmVyRG9jIGVtZG9jID0gKEV4ZWN1dGFibGVNZW1iZXJEb2MpZG9jOworICAgICAgICAgICAgaWYgKGVtZG9jLmlzU3luY2hyb25pemVkKCkpIHsKKyAgICAgICAgICAgICAgICBpbmZvLnNldFN5bmNocm9uaXplZCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZG9jIGluc3RhbmNlb2YgTWV0aG9kRG9jKSB7CisgICAgICAgICAgICAgICAgTWV0aG9kRG9jIG1kb2MgPSAoTWV0aG9kRG9jKWRvYzsKKyAgICAgICAgICAgICAgICBpZiAobWRvYy5pc0Fic3RyYWN0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5mby5zZXRBYnN0cmFjdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbmZvLnNldFNpZ25hdHVyZSh0cmltQmFzZShtZG9jLnJldHVyblR5cGUoKS50b1N0cmluZygpICsgZW1kb2Muc2lnbmF0dXJlKCkpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gY29uc3RydWN0b3IKKyAgICAgICAgICAgICAgICBpbmZvLnNldFNpZ25hdHVyZSh0cmltQmFzZShlbWRvYy5zaWduYXR1cmUoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGluZm87CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHRhZ1N0YXR1cyhmaW5hbCBEb2MgZG9jKSB7CisgICAgICAgIGNsYXNzIFJlc3VsdCB7CisgICAgICAgICAgICBpbnQgcmVzID0gLTE7CisgICAgICAgICAgICB2b2lkIHNldChpbnQgdmFsKSB7IAorICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA9PSBBUElJbmZvLlNUQV9ERVBSRUNBVEVEKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvayB0byBoYXZlIGJvdGggYSAnc3RhbmRhcmQnIHRhZyBhbmQgZGVwcmVjYXRlZAorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlcyAhPSBBUElJbmZvLlNUQV9ERVBSRUNBVEVEKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiBhbHJlYWR5IG5vdCBkZXByZWNhdGVkLCB0aGlzIGlzIGFuIGVycm9yCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiYmFkIGRvYzogIiArIGRvYyArICIgb2xkOiAiICsgcmVzICsgIiBuZXc6ICIgKyB2YWwpOyAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBvayB0byByZXBsYWNlIHdpdGggbmV3IHRhZworICAgICAgICAgICAgICAgIHJlcyA9IHZhbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBnZXQoKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlcyA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIndhcm5pbmc6IG5vIHRhZyBmb3IgIiArIGRvYyk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgVGFnW10gdGFncyA9IGRvYy50YWdzKCk7CisgICAgICAgIFJlc3VsdCByZXN1bHQgPSBuZXcgUmVzdWx0KCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFncy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgVGFnIHRhZyA9IHRhZ3NbaV07CisKKyAgICAgICAgICAgIFN0cmluZyBraW5kID0gdGFnLmtpbmQoKTsKKyAgICAgICAgICAgIGludCBpeCA9IHRhZ0tpbmRJbmRleChraW5kKTsKKworICAgICAgICAgICAgc3dpdGNoIChpeCkgeworICAgICAgICAgICAgY2FzZSBJTlRFUk5BTDoKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0KC0yKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBEUkFGVDoKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0KEFQSUluZm8uU1RBX0RSQUZUKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBTVEFCTEU6CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldChBUElJbmZvLlNUQV9TVEFCTEUpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERFUFJFQ0FURUQ6CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldChBUElJbmZvLlNUQV9ERVBSRUNBVEVEKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBPQlNPTEVURToKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0KEFQSUluZm8uU1RBX09CU09MRVRFKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBTSU5DRToKKyAgICAgICAgICAgIGNhc2UgRVhDRVBUSU9OOgorICAgICAgICAgICAgY2FzZSBWRVJTSU9OOgorICAgICAgICAgICAgY2FzZSBVTktOT1dOOgorICAgICAgICAgICAgY2FzZSBBVVRIT1I6CisgICAgICAgICAgICBjYXNlIFNFRToKKyAgICAgICAgICAgIGNhc2UgUEFSQU06CisgICAgICAgICAgICBjYXNlIFJFVFVSTjoKKyAgICAgICAgICAgIGNhc2UgVEhST1dTOgorICAgICAgICAgICAgY2FzZSBTRVJJQUw6CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oInVua25vd24gaW5kZXggIiArIGl4ICsgIiBmb3IgdGFnOiAiICsga2luZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0LmdldCgpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTktOT1dOID0gLTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOVEVSTkFMID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRFJBRlQgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFCTEUgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTSU5DRSA9IDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFUFJFQ0FURUQgPSA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBVVRIT1IgPSA1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRUUgPSA2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBWRVJTSU9OID0gNzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUEFSQU0gPSA4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBSRVRVUk4gPSA5OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUSFJPV1MgPSAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT0JTT0xFVEUgPSAxMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDRVBUSU9OID0gMTI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNFUklBTCA9IDEzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHRhZ0tpbmRJbmRleChTdHJpbmcga2luZCkgeworICAgICAgICBmaW5hbCBTdHJpbmdbXSB0YWdLaW5kcyA9IHsKKyAgICAgICAgICAgICJAaW50ZXJuYWwiLCAiQGRyYWZ0IiwgIkBzdGFibGUiLCAiQHNpbmNlIiwgIkBkZXByZWNhdGVkIiwgIkBhdXRob3IiLCAiQHNlZSIsICJAdmVyc2lvbiIsCisgICAgICAgICAgICAiQHBhcmFtIiwgIkByZXR1cm4iLCAiQHRocm93cyIsICJAb2Jzb2xldGUiLCAiQGV4Y2VwdGlvbiIsICJAc2VyaWFsIgorICAgICAgICB9OworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFnS2luZHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChraW5kLmVxdWFscyh0YWdLaW5kc1tpXSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gVU5LTk9XTjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9JQ1VKREtDb21wYXJlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9JQ1VKREtDb21wYXJlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmUxMGJhNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL0lDVUpES0NvbXBhcmUuamF2YQpAQCAtMCwwICsxLDc4NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jczsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC4qOworaW1wb3J0IGphdmEudXRpbC4qOworCisvKioKKyAqIENvbXBhcmUgSUNVNEogYW5kIEpESyBBUElTLgorICoKKyAqIFRPRE86IGNvbXBhcmUgcHJvdGVjdGVkIEFQSXMuICBSZWZsZWN0aW9uIG9uIENsYXNzIGFsbG93cyB5b3UKKyAqIHRvIGVpdGhlciBnZXQgYWxsIGluaGVyaXRlZCBtZXRob2RzIHdpdGggcHVibGljIGFjY2Vzcywgb3IgZ2V0IG1ldGhvZHMKKyAqIG9uIHRoZSBwYXJ0aWN1bGFyIGNsYXNzIHdpdGggYW55IGFjY2VzcywgYnV0IG5vIHdheSB0byBnZXQgYWxsCisgKiBpbmhlcml0ZWQgbWV0aG9kcyB3aXRoIGFueSBhY2Nlc3MuICBHbyBmaWd1cmUuCisgKi8KK3B1YmxpYyBjbGFzcyBJQ1VKREtDb21wYXJlIHsKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCisgICAgLy8gc2V0IHVwIGRlZmF1bHRzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGtTcmNQcmVmaXggPSAiamF2YS4iOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBrVHJnUHJlZml4ID0gImNvbS5pYm0uaWN1LiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10ga1BhaXJJbmZvID0geworICAgICAgICAibGFuZy5DaGFyYWN0ZXIvVUNoYXJhY3RlciIsCisgICAgICAgICJsYW5nLkNoYXJhY3RlciRVbmljb2RlQmxvY2svVUNoYXJhY3RlciRVbmljb2RlQmxvY2siLAorICAgICAgICAidGV4dC5CcmVha0l0ZXJhdG9yIiwKKyAgICAgICAgInRleHQuQ29sbGF0b3IiLAorICAgICAgICAidGV4dC5EYXRlRm9ybWF0IiwKKyAgICAgICAgInRleHQuRGF0ZUZvcm1hdFN5bWJvbHMiLAorICAgICAgICAidGV4dC5EZWNpbWFsRm9ybWF0IiwKKyAgICAgICAgInRleHQuRGVjaW1hbEZvcm1hdFN5bWJvbHMiLAorICAgICAgICAidGV4dC5Gb3JtYXQvVUZvcm1hdCIsCisgICAgICAgICJ0ZXh0Lk1lc3NhZ2VGb3JtYXQiLAorICAgICAgICAidGV4dC5OdW1iZXJGb3JtYXQiLAorICAgICAgICAidGV4dC5TaW1wbGVEYXRlRm9ybWF0IiwKKyAgICAgICAgInV0aWwuQ2FsZW5kYXIiLAorICAgICAgICAidXRpbC5DdXJyZW5jeSIsCisgICAgICAgICJ1dGlsLkdyZWdvcmlhbkNhbGVuZGFyIiwKKyAgICAgICAgInV0aWwuU2ltcGxlVGltZVpvbmUiLAorICAgICAgICAidXRpbC5UaW1lWm9uZSIsCisgICAgICAgICJ1dGlsLkxvY2FsZS9VTG9jYWxlIiwKKyAgICAgICAgInV0aWwuUmVzb3VyY2VCdW5kbGUvVVJlc291cmNlQnVuZGxlIiwKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10ga0lnbm9yZSA9IG5ldyBTdHJpbmdbXSB7CisgICAgICAgICJsYW5nLkNoYXJhY3RlciA8aW5pdD4gY2hhclZhbHVlIGNvbXBhcmVUbyBNQVhfVkFMVUUgTUlOX1ZBTFVFIFRZUEUiLAorICAgICAgICAibGFuZy5DaGFyYWN0ZXIkVW5pY29kZUJsb2NrIFNVUlJPR0FURVNfQVJFQSIsCisgICAgICAgICJ1dGlsLkNhbGVuZGFyIEZJRUxEX0NPVU5UIiwKKyAgICAgICAgInV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIgRklFTERfQ09VTlQiLAorICAgICAgICAidXRpbC5TaW1wbGVUaW1lWm9uZSBTVEFOREFSRF9USU1FIFVUQ19USU1FIFdBTExfVElNRSIsCisgICAgfTsKKworICAgIHByaXZhdGUgUHJpbnRXcml0ZXIgcHc7CisgICAgcHJpdmF0ZSBTdHJpbmcgc3JjUHJlZml4OworICAgIHByaXZhdGUgU3RyaW5nIHRyZ1ByZWZpeDsKKyAgICBwcml2YXRlIENsYXNzW10gY2xhc3NQYWlyczsKKyAgICBwcml2YXRlIFN0cmluZ1tdIG5hbWVQYWlyczsKKyAgICBwcml2YXRlIFN0cmluZ1tdIGlnbm9yZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gc3dhcDsKKyAgICBwcml2YXRlIGJvb2xlYW4gc2lnbmF0dXJlOworCisgICAgLy8gY2FsbCBTeXN0ZW0uZXhpdCB3aXRoIG5vbi16ZXJvIGlmIHRoZXJlIHdlcmUgc29tZSBtaXNzaW5nIEFQSXMKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIFN5c3RlbS5leGl0KGRvTWFpbihhcmdzKSk7CisgICAgfQorCisgICAgLy8gcmV0dXJuIG5vbi16ZXJvIGlmIHRoZXJlIHdlcmUgc29tZSBtaXNzaW5nIEFQSXMKKyAgICBwdWJsaWMgc3RhdGljIGludCBkb01haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBJQ1VKREtDb21wYXJlIHAgPSBuZXcgSUNVSkRLQ29tcGFyZSgpOworICAgICAgICBwLnNldE91dHB1dFdyaXRlcihuZXcgUHJpbnRXcml0ZXIoU3lzdGVtLm91dCkpOworICAgICAgICBwLnNldHVwKGFyZ3MpOworICAgICAgICByZXR1cm4gcC5wcm9jZXNzKCk7CisgICAgfQorCisgICAgLy8gc2V0dGVycworICAgIHB1YmxpYyBJQ1VKREtDb21wYXJlIHNldE91dHB1dFdyaXRlcihQcmludFdyaXRlciBwdykgeworICAgICAgICB0aGlzLnB3ID0gcHc7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIHB1YmxpYyBJQ1VKREtDb21wYXJlIHNldFNyY1ByZWZpeChTdHJpbmcgc3JjUHJlZml4KSB7CisgICAgICAgIHRoaXMuc3JjUHJlZml4ID0gc3JjUHJlZml4OworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBwdWJsaWMgSUNVSkRLQ29tcGFyZSBzZXRUcmdQcmVmaXgoU3RyaW5nIHRyZ1ByZWZpeCkgeworICAgICAgICB0aGlzLnRyZ1ByZWZpeCA9IHRyZ1ByZWZpeDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIElDVUpES0NvbXBhcmUgc2V0Q2xhc3NQYWlycyhDbGFzc1tdIGNsYXNzUGFpcnMpIHsKKyAgICAgICAgdGhpcy5jbGFzc1BhaXJzID0gY2xhc3NQYWlyczsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIElDVUpES0NvbXBhcmUgc2V0TmFtZVBhaXJzKFN0cmluZ1tdIG5hbWVQYWlycykgeworICAgICAgICB0aGlzLm5hbWVQYWlycyA9IG5hbWVQYWlyczsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIElDVUpES0NvbXBhcmUgc2V0SWdub3JlKFN0cmluZ1tdIGlnbm9yZSkgeworICAgICAgICB0aGlzLmlnbm9yZSA9IGlnbm9yZTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIElDVUpES0NvbXBhcmUgc2V0U3dhcChib29sZWFuIHN3YXApIHsKKyAgICAgICAgdGhpcy5zd2FwID0gc3dhcDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHVibGljIElDVUpES0NvbXBhcmUgc2V0dXAoU3RyaW5nW10gYXJncykgeworICAgICAgICBTdHJpbmcgbmFtZWxpc3QgPSBudWxsOworICAgICAgICBTdHJpbmcgaWdub3JlbGlzdCA9IG51bGw7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIGFyZyA9IGFyZ3NbaV07CisgICAgICAgICAgICBpZiAoYXJnLmVxdWFscygiLXN3YXAiKSkgeworICAgICAgICAgICAgICAgIHN3YXAgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItc3JjUHJlZml4OiIpKSB7CisgICAgICAgICAgICAgICAgc3JjUHJlZml4ID0gYXJnc1srK2ldOworICAgICAgICAgICAgICAgIGlmICghc3JjUHJlZml4LmVuZHNXaXRoKCIuIikpIHsKKyAgICAgICAgICAgICAgICAgICAgc3JjUHJlZml4ICs9ICcuJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi10cmdQcmVmaXg6IikpIHsKKyAgICAgICAgICAgICAgICB0cmdQcmVmaXggPSBhcmdzWysraV07CisgICAgICAgICAgICAgICAgaWYgKCF0cmdQcmVmaXguZW5kc1dpdGgoIi4iKSkgeworICAgICAgICAgICAgICAgICAgICB0cmdQcmVmaXggKz0gJy4nOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLW5hbWVzOiIpKSB7CisgICAgICAgICAgICAgICAgbmFtZWxpc3QgPSBhcmdzWysraV07CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1pZ25vcmU6IikpIHsKKyAgICAgICAgICAgICAgICBpZ25vcmVsaXN0ID0gYXJnc1srK2ldOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oInVucmVjb2duaXplZCBhcmd1bWVudDogIiArIGFyZyk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGlnbm9yZWxpc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKGlnbm9yZWxpc3QuY2hhckF0KDApID09ICdAJykgeyAvLyBhIGZpbGUgY29udGFpbmluZyBpZ25vcmVpbmZvCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgQXJyYXlMaXN0IG5sID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZShuYW1lbGlzdC5zdWJzdHJpbmcoMSkpOworICAgICAgICAgICAgICAgICAgICBGaWxlSW5wdXRTdHJlYW0gZmlzID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmKTsKKyAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpcyk7CisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGlzcik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG51bGwgIT0gKGxpbmUgPSBici5yZWFkTGluZSgpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmwuYWRkKGxpbmUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlnbm9yZSA9IChTdHJpbmdbXSlubC50b0FycmF5KG5ldyBTdHJpbmdbbmwuc2l6ZSgpXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oZSk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeyAvLyBhIGxpc3Qgb2YgaWdub3JlaW5mbyBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucworICAgICAgICAgICAgICAgIGlnbm9yZSA9IGlnbm9yZWxpc3Quc3BsaXQoIlxccyo7XFxzKiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG5hbWVsaXN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZ1tdIG5hbWVzID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChuYW1lbGlzdC5jaGFyQXQoMCkgPT0gJ0AnKSB7IC8vIGEgZmlsZQorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIEFycmF5TGlzdCBubCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgRmlsZSBmID0gbmV3IEZpbGUobmFtZWxpc3Quc3Vic3RyaW5nKDEpKTsKKyAgICAgICAgICAgICAgICAgICAgRmlsZUlucHV0U3RyZWFtIGZpcyA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZik7CisgICAgICAgICAgICAgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaXMpOworICAgICAgICAgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihpc3IpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbGluZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChudWxsICE9IChsaW5lID0gYnIucmVhZExpbmUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5sLmFkZChsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBuYW1lcyA9IChTdHJpbmdbXSlubC50b0FycmF5KG5ldyBTdHJpbmdbbmwuc2l6ZSgpXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oZSk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeyAvLyBhIGxpc3Qgb2YgbmFtZXMgc2VwYXJhdGVkIGJ5IHNlbWljb2xvbnMKKyAgICAgICAgICAgICAgICBuYW1lcyA9IG5hbWVsaXN0LnNwbGl0KCJcXHMqO1xccyoiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHJvY2Vzc1BhaXJJbmZvKG5hbWVzKTsKKyAgICAgICAgfQorCisgICAgICAgIHB3LmZsdXNoKCk7CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByb2Nlc3NQYWlySW5mbyhTdHJpbmdbXSBuYW1lcykgeworICAgICAgICBBcnJheUxpc3QgY2wgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIEFycmF5TGlzdCBubCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBuYW1lc1tpXTsKKyAgICAgICAgICAgIFN0cmluZyBzcmNOYW1lID0gc3JjUHJlZml4OworICAgICAgICAgICAgU3RyaW5nIHRyZ05hbWUgPSB0cmdQcmVmaXg7CisKKyAgICAgICAgICAgIGludCBuID0gbmFtZS5pbmRleE9mKCcvJyk7CisgICAgICAgICAgICBpZiAobiA9PSAtMSkgeworICAgICAgICAgICAgICAgIHNyY05hbWUgKz0gbmFtZTsKKyAgICAgICAgICAgICAgICB0cmdOYW1lICs9IG5hbWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFN0cmluZyBzcmNTdWZmaXggPSBuYW1lLnN1YnN0cmluZygwLCBuKS50cmltKCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRyZ1N1ZmZpeCA9IG5hbWUuc3Vic3RyaW5nKG4rMSkudHJpbSgpOworICAgICAgICAgICAgICAgIGludCBqeCA9IHNyY1N1ZmZpeC5sZW5ndGgoKSsxOworICAgICAgICAgICAgICAgIGludCBpeCA9IHRyZ1N1ZmZpeC5sZW5ndGgoKSsxOworICAgICAgICAgICAgICAgIHdoaWxlIChpeCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBqeCA9IHNyY1N1ZmZpeC5sYXN0SW5kZXhPZignLicsIGp4LTEpOworICAgICAgICAgICAgICAgICAgICBpeCA9IHRyZ1N1ZmZpeC5sYXN0SW5kZXhPZignLicsIGl4LTEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzcmNOYW1lICs9IHNyY1N1ZmZpeDsKKyAgICAgICAgICAgICAgICB0cmdOYW1lICs9IHNyY1N1ZmZpeC5zdWJzdHJpbmcoMCwgangrMSkgKyB0cmdTdWZmaXg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQ2xhc3MgamMgPSBDbGFzcy5mb3JOYW1lKHNyY05hbWUpOworICAgICAgICAgICAgICAgIENsYXNzIGljID0gQ2xhc3MuZm9yTmFtZSh0cmdOYW1lKTsKKyAgICAgICAgICAgICAgICBjbC5hZGQoaWMpOworICAgICAgICAgICAgICAgIGNsLmFkZChqYyk7CisgICAgICAgICAgICAgICAgbmwuYWRkKGljLmdldE5hbWUoKSk7CisgICAgICAgICAgICAgICAgbmwuYWRkKGpjLmdldE5hbWUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5lcnIucHJpbnRsbigiY2FuJ3QgbG9hZCBjbGFzczogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjbGFzc1BhaXJzID0gKENsYXNzW10pY2wudG9BcnJheShuZXcgQ2xhc3NbY2wuc2l6ZSgpXSk7CisgICAgICAgIG5hbWVQYWlycyA9IChTdHJpbmdbXSlubC50b0FycmF5KG5ldyBTdHJpbmdbbmwuc2l6ZSgpXSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByaW50bG4oU3RyaW5nIHMpIHsKKyAgICAgICAgaWYgKHB3ICE9IG51bGwpIHB3LnByaW50bG4ocyk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGZsdXNoKCkgeworICAgICAgICBpZiAocHcgIT0gbnVsbCkgcHcuZmx1c2goKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHByb2Nlc3MoKSB7CisgICAgICAgIC8vIHNldCBkZWZhdWx0cworICAgICAgICBpZiAoc3JjUHJlZml4ID09IG51bGwpIHsKKyAgICAgICAgICAgIHNyY1ByZWZpeCA9IGtTcmNQcmVmaXg7CisgICAgICAgIH0KKworICAgICAgICBpZiAodHJnUHJlZml4ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRyZ1ByZWZpeCA9IGtUcmdQcmVmaXg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChjbGFzc1BhaXJzID09IG51bGwpIHsKKyAgICAgICAgICAgIHByb2Nlc3NQYWlySW5mbyhrUGFpckluZm8pOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGlnbm9yZSA9PSBudWxsKSB7CisgICAgICAgICAgICBpZ25vcmUgPSBrSWdub3JlOworICAgICAgICB9CisKKyAgICAgICAgcHJpbnRsbigiSUNVIGFuZCBKYXZhIEFQSSBDb21wYXJpc29uIik7CisgICAgICAgIFN0cmluZyBJQ1VfVkVSU0lPTiA9ICJ1bmtub3duIjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENsYXNzIGNscyA9IENsYXNzLmZvck5hbWUoImNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm8iKTsKKyAgICAgICAgICAgIEZpZWxkIGZsZCA9IGNscy5nZXRGaWVsZCgiSUNVX1ZFUlNJT04iKTsKKyAgICAgICAgICAgIElDVV9WRVJTSU9OID0gZmxkLmdldChudWxsKS50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0uZXJyLnByaW50bG4oImNhbid0IGdldCBWZXJzaW9uSW5mbzogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgICAgICBwcmludGxuKCJJQ1UgVmVyc2lvbiAiICsgSUNVX1ZFUlNJT04pOworICAgICAgICBwcmludGxuKCJKREsgVmVyc2lvbiAiICsgU3lzdGVtLmdldFByb3BlcnR5KCJqYXZhLnZlcnNpb24iKSk7CisKKyAgICAgICAgaW50IGVycm9yQ291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNsYXNzUGFpcnMubGVuZ3RoOyBpICs9IDIpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKHN3YXApIHsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JDb3VudCArPSBjb21wYXJlKGNsYXNzUGFpcnNbaSsxXSwgY2xhc3NQYWlyc1tpXSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JDb3VudCArPSBjb21wYXJlKGNsYXNzUGFpcnNbaV0sIGNsYXNzUGFpcnNbaSsxXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJleGNlcHRpb246ICIgKyBlKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oImJldHdlZW4gIiArIG5hbWVQYWlyc1tpXSArICIgYW5kICIgKyBuYW1lUGFpcnNbaSsxXSk7CisgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICBlcnJvckNvdW50ICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVycm9yQ291bnQ7CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIE1vckMgeworICAgICAgICBwcml2YXRlIE1ldGhvZCBtcmVmOworICAgICAgICBwcml2YXRlIENvbnN0cnVjdG9yIGNyZWY7CisKKyAgICAgICAgTW9yQyhNZXRob2QgbSkgeworICAgICAgICAgICAgbXJlZiA9IG07CisgICAgICAgIH0KKworICAgICAgICBNb3JDKENvbnN0cnVjdG9yIGMpIHsKKyAgICAgICAgICAgIGNyZWYgPSBjOworICAgICAgICB9CisKKyAgICAgICAgaW50IGdldE1vZGlmaWVycygpIHsKKyAgICAgICAgICAgIHJldHVybiBtcmVmID09IG51bGwgPyBjcmVmLmdldE1vZGlmaWVycygpIDogbXJlZi5nZXRNb2RpZmllcnMoKTsKKyAgICAgICAgfQorCisgICAgICAgIENsYXNzIGdldFJldHVyblR5cGUoKSB7CisgICAgICAgICAgICByZXR1cm4gbXJlZiA9PSBudWxsID8gdm9pZC5jbGFzcyA6IG1yZWYuZ2V0UmV0dXJuVHlwZSgpOworICAgICAgICB9CisKKyAgICAgICAgQ2xhc3NbXSBnZXRQYXJhbWV0ZXJUeXBlcygpIHsKKyAgICAgICAgICAgIHJldHVybiBtcmVmID09IG51bGwgPyBjcmVmLmdldFBhcmFtZXRlclR5cGVzKCkgOiBtcmVmLmdldFBhcmFtZXRlclR5cGVzKCk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBtcmVmID09IG51bGwgPyAiPGluaXQ+IiA6IG1yZWYuZ2V0TmFtZSgpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGdldFNpZ25hdHVyZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBtcmVmID09IG51bGwgPyBjcmVmLnRvU3RyaW5nKCkgOiBtcmVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBjb21wYXJlKENsYXNzIGNsYXNzMSwgQ2xhc3MgY2xhc3MyKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgU3RyaW5nIG4xID0gY2xhc3MxLmdldE5hbWUoKTsKKyAgICAgICAgU3RyaW5nIG4yID0gY2xhc3MyLmdldE5hbWUoKTsKKworICAgICAgICBwcmludGxuKCJcbmNvbXBhcmUgIiArIG4xICsgIiA8PiAiICsgbjIpOworCisgICAgICAgIE1vckNbXSBjb25zczEgPSBnZXRNb3JDQXJyYXkoY2xhc3MxLmdldENvbnN0cnVjdG9ycygpKTsKKyAgICAgICAgTW9yQ1tdIGNvbnNzMiA9IGdldE1vckNBcnJheShjbGFzczIuZ2V0Q29uc3RydWN0b3JzKCkpOworCisgICAgICAgIE1hcCBjbWFwMSA9IGdldE1ldGhvZE1hcChjb25zczEpOworICAgICAgICBNYXAgY21hcDIgPSBnZXRNZXRob2RNYXAoY29uc3MyKTsKKworICAgICAgICBNb3JDW10gbWV0aHMxID0gZ2V0TW9yQ0FycmF5KGNsYXNzMS5nZXRNZXRob2RzKCkpOworICAgICAgICBNb3JDW10gbWV0aHMyID0gZ2V0TW9yQ0FycmF5KGNsYXNzMi5nZXRNZXRob2RzKCkpOworCisgICAgICAgIE1hcCBtYXAxID0gZ2V0TWV0aG9kTWFwKG1ldGhzMSk7CisgICAgICAgIE1hcCBtYXAyID0gZ2V0TWV0aG9kTWFwKG1ldGhzMik7CisKKyAgICAgICAgRmllbGRbXSBmaWVsZHMxID0gY2xhc3MxLmdldEZpZWxkcygpOworICAgICAgICBGaWVsZFtdIGZpZWxkczIgPSBjbGFzczIuZ2V0RmllbGRzKCk7CisKKyAgICAgICAgU2V0IHNldDEgPSBnZXRGaWVsZFNldChmaWVsZHMxKTsKKyAgICAgICAgU2V0IHNldDIgPSBnZXRGaWVsZFNldChmaWVsZHMyKTsKKworICAgICAgICBNYXAgZGlmZkNvbnNzID0gZGlmZk1ldGhvZE1hcHMoY21hcDIsIGNtYXAxKTsKKyAgICAgICAgTWFwIGRpZmZNZXRocyA9IGRpZmZNZXRob2RNYXBzKG1hcDIsIG1hcDEpOworICAgICAgICBTZXQgZGlmZkZpZWxkcyA9IGRpZmZGaWVsZFNldHMoc2V0Miwgc2V0MSk7CisKKyAgICAgICAgZGlmZkNvbnNzID0gcmVtb3ZlSWdub3JlZChuMiwgZGlmZkNvbnNzKTsKKyAgICAgICAgZGlmZk1ldGhzID0gcmVtb3ZlSWdub3JlZChuMiwgZGlmZk1ldGhzKTsKKyAgICAgICAgZGlmZkZpZWxkcyA9IHJlbW92ZUlnbm9yZWQobjIsIGRpZmZGaWVsZHMpOworCisgICAgICAgIGludCByZXN1bHQgPSBkaWZmQ29uc3Muc2l6ZSgpICsgZGlmZk1ldGhzLnNpemUoKSArIGRpZmZGaWVsZHMuc2l6ZSgpOworICAgICAgICBpZiAocmVzdWx0ID4gMCAmJiBwdyAhPSBudWxsKSB7CisgICAgICAgICAgICBwdy5wcmludGxuKCJQdWJsaWMgQVBJIGluICIgKyBuMiArICIgYnV0IG5vdCBpbiAiICsgbjEpOworICAgICAgICAgICAgaWYgKGRpZmZDb25zcy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiQ09OU1RSVUNUT1JTIik7CisgICAgICAgICAgICAgICAgZHVtcE1ldGhvZE1hcChkaWZmQ29uc3MsIHB3KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkaWZmTWV0aHMuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIk1FVEhPRFMiKTsKKyAgICAgICAgICAgICAgICBkdW1wTWV0aG9kTWFwKGRpZmZNZXRocywgcHcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRpZmZGaWVsZHMuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIkZJRUxEUyIpOworICAgICAgICAgICAgICAgIGR1bXBGaWVsZFNldChkaWZmRmllbGRzLCBwdyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmbHVzaCgpOworCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgZmluYWwgY2xhc3MgTWV0aG9kUmVjb3JkIHsKKyAgICAgICAgTW9yQ1tdIG92ZXJyaWRlczsKKworICAgICAgICBNZXRob2RSZWNvcmQoTW9yQyBtKSB7CisgICAgICAgICAgICBvdmVycmlkZXMgPSBuZXcgTW9yQ1tdIHsgbSB9OworICAgICAgICB9CisKKyAgICAgICAgTWV0aG9kUmVjb3JkKE1vckNbXSBtcykgeworICAgICAgICAgICAgb3ZlcnJpZGVzID0gbXM7CisgICAgICAgIH0KKworICAgICAgICBNZXRob2RSZWNvcmQgY29weSgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTWV0aG9kUmVjb3JkKChNb3JDW10pb3ZlcnJpZGVzLmNsb25lKCkpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGNvdW50KCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvdmVycmlkZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAob3ZlcnJpZGVzW2ldID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlcy5sZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGFkZChNb3JDIG0pIHsKKyAgICAgICAgICAgIE1vckNbXSB0ZW1wID0gbmV3IE1vckNbb3ZlcnJpZGVzLmxlbmd0aCArIDFdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvdmVycmlkZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB0ZW1wW2ldID0gb3ZlcnJpZGVzW2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGVtcFtvdmVycmlkZXMubGVuZ3RoXSA9IG07CisgICAgICAgICAgICBvdmVycmlkZXMgPSB0ZW1wOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCByZW1vdmUoaW50IGluZGV4KSB7CisgICAgICAgICAgICBpbnQgaSA9IGluZGV4OworICAgICAgICAgICAgd2hpbGUgKG92ZXJyaWRlc1tpXSAhPSBudWxsICYmIGkgPCBvdmVycmlkZXMubGVuZ3RoLTEpIHsKKyAgICAgICAgICAgICAgICBvdmVycmlkZXNbaV0gPSBvdmVycmlkZXNbaSsxXTsKKyAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdmVycmlkZXNbaV0gPSBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgYSBjYWxsIHRvIGEgbWV0aG9kIGNhbiBiZSBoYW5kbGVkIGJ5IGEgY2FsbCB0byB0LCByZW1vdmUgdGhlCisgICAgICAgIC8vIG1ldGhvZCBmcm9tIG91ciBsaXN0LCBhbmQgcmV0dXJuIHRydWUKKyAgICAgICAgYm9vbGVhbiByZW1vdmVPdmVycmlkZGVuKE1vckMgdCkgeworICAgICAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChpIDwgb3ZlcnJpZGVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIE1vckMgbSA9IG92ZXJyaWRlc1tpXTsKKyAgICAgICAgICAgICAgICBpZiAobSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaGFuZGxlcyh0LCBtKSkgeworICAgICAgICAgICAgICAgICAgICByZW1vdmUoaSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvLyByZW1vdmUgYWxsIG1ldGhvZHMgaGFuZGxlZCBieSBhbnkgbWV0aG9kIG9mIG1yCisgICAgICAgIGJvb2xlYW4gcmVtb3ZlT3ZlcnJpZGRlbihNZXRob2RSZWNvcmQgbXIpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1yLm92ZXJyaWRlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIE1vckMgdCA9IG1yLm92ZXJyaWRlc1tpXTsKKyAgICAgICAgICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkbid0IGhhcHBlbiwgYXMgdGhlIHRhcmdldCByZWNvcmQgc2hvdWxkIG5vdCBoYXZlIGJlZW4gbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocmVtb3ZlT3ZlcnJpZGRlbih0KSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGRlYnVnbXNnKE1vckMgdCwgTW9yQyBtLCBTdHJpbmcgbXNnKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgYnVmLmFwcGVuZCh0LmdldE5hbWUoKSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIgIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKG1zZyk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCJcbiAgICIpOworICAgICAgICAgICAgdG9TdHJpbmcodCwgYnVmKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxuICAgIik7CisgICAgICAgICAgICB0b1N0cmluZyhtLCBidWYpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gaGFuZGxlcyhNb3JDIHQsIE1vckMgbSkgeworICAgICAgICAgICAgLy8gcmVsZXZhbnQgbW9kaWZpZXJzIG11c3QgbWF0Y2gKKyAgICAgICAgICAgIGlmICgodC5nZXRNb2RpZmllcnMoKSAmIE1PRF9NQVNLKSAhPSAobS5nZXRNb2RpZmllcnMoKSAmIE1PRF9NQVNLKSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgZGVidWdtc2codCwgbSwgIm1vZGlmaWVyIG1pc21hdGNoIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBDbGFzcyB0ciA9IHBhaXJDbGFzc0VxdWl2YWxlbnQodC5nZXRSZXR1cm5UeXBlKCkpOworICAgICAgICAgICAgQ2xhc3MgbXIgPSBwYWlyQ2xhc3NFcXVpdmFsZW50KG0uZ2V0UmV0dXJuVHlwZSgpKTsKKyAgICAgICAgICAgIGlmICghYXNzaWduYWJsZUZyb20obXIsIHRyKSkgeyAvLyB0IHJldHVybiB0eXBlIG11c3QgYmUgc2FtZSBvciBuYXJyb3dlciB0aGFuIG0KKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIGRlYnVnbXNnKHQsIG0sICJyZXR1cm4gdmFsdWUgbWlzbWF0Y2giKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBDbGFzc1tdIHR0cyA9IHQuZ2V0UGFyYW1ldGVyVHlwZXMoKTsKKyAgICAgICAgICAgIENsYXNzW10gbXRzID0gbS5nZXRQYXJhbWV0ZXJUeXBlcygpOworICAgICAgICAgICAgaWYgKHR0cy5sZW5ndGggIT0gbXRzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgZGVidWdtc2codCwgbSwgInBhcmFtIGNvdW50IG1pc21hdGNoIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHR0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIENsYXNzIHRjID0gcGFpckNsYXNzRXF1aXZhbGVudCh0dHNbaV0pOworICAgICAgICAgICAgICAgIENsYXNzIG1jID0gcGFpckNsYXNzRXF1aXZhbGVudChtdHNbaV0pOworICAgICAgICAgICAgICAgIGlmICghYXNzaWduYWJsZUZyb20odGMsIG1jKSkgeyAvLyBtIHBhcmFtIG11c3QgYmUgc2FtZSBvciBuYXJyb3dlciB0aGFuIHQKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBkZWJ1Z21zZyh0LCBtLCAicGFyYW1ldGVyICIgKyBpICsgIiBtaXNtYXRjaCwgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR0c1tpXS5nZXROYW1lKCkgKyAiIG5vdCBhc3NpZ25hYmxlIGZyb20gIiArIG10c1tpXS5nZXROYW1lKCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCB0b1N0cmluZyhNb3JDIG0sIFN0cmluZ0J1ZmZlciBidWYpIHsKKyAgICAgICAgICAgIGludCBtb2QgPSBtLmdldE1vZGlmaWVycygpOworICAgICAgICAgICAgaWYgKG1vZCAhPSAwKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChNb2RpZmllci50b1N0cmluZyhtb2QpICsgIiAiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQobmFtZU9mKG0uZ2V0UmV0dXJuVHlwZSgpKSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIgIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKG0uZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIigiKTsKKyAgICAgICAgICAgIENsYXNzW10gcHR5cGVzID0gbS5nZXRQYXJhbWV0ZXJUeXBlcygpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBwdHlwZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBpZiAoaiA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChuYW1lT2YocHR5cGVzW2pdKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKCcpJyk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQob3ZlcnJpZGVzWzBdLmdldE5hbWUoKSk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG92ZXJyaWRlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIE1vckMgbSA9IG92ZXJyaWRlc1tpXTsKKyAgICAgICAgICAgICAgICBpZiAobSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCJcbiAgICIpOworICAgICAgICAgICAgICAgIHRvU3RyaW5nKG0sIGJ1Zik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBuYW1lT2YoQ2xhc3MgYykgeworICAgICAgICBpZiAoYy5pc0FycmF5KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBuYW1lT2YoYy5nZXRDb21wb25lbnRUeXBlKCkpICsgIltdIjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgbmFtZSA9IGMuZ2V0TmFtZSgpOworICAgICAgICByZXR1cm4gbmFtZS5zdWJzdHJpbmcobmFtZS5sYXN0SW5kZXhPZignLicpICsgMSk7CisgICAgfQorCisgICAgc3RhdGljIE1vckNbXSBnZXRNb3JDQXJyYXkoQ29uc3RydWN0b3JbXSBjb25zKSB7CisgICAgICAgIE1vckNbXSByZXN1bHQgPSBuZXcgTW9yQ1tjb25zLmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwIDsgaSA8IGNvbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdFtpXSA9IG5ldyBNb3JDKGNvbnNbaV0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgc3RhdGljIE1vckNbXSBnZXRNb3JDQXJyYXkoTWV0aG9kW10gbWV0aHMpIHsKKyAgICAgICAgTW9yQ1tdIHJlc3VsdCA9IG5ldyBNb3JDW21ldGhzLmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwIDsgaSA8IG1ldGhzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICByZXN1bHRbaV0gPSBuZXcgTW9yQyhtZXRoc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIE1hcCBnZXRNZXRob2RNYXAoTW9yQ1tdIG1ldGhzKSB7CisgICAgICAgIE1hcCByZXN1bHQgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1ldGhzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBNb3JDIG0gPSBtZXRoc1tpXTsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSBtLmdldE5hbWUoKTsKKyAgICAgICAgICAgIE1ldGhvZFJlY29yZCBtciA9IChNZXRob2RSZWNvcmQpcmVzdWx0LmdldChrZXkpOworICAgICAgICAgICAgaWYgKG1yID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtciA9IG5ldyBNZXRob2RSZWNvcmQobSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LnB1dChrZXksIG1yKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbXIuYWRkKG0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGR1bXBNZXRob2RNYXAoTWFwIG0sIFByaW50V3JpdGVyIHB3KSB7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBtLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBkdW1wTWV0aG9kUmVjb3JkKChNZXRob2RSZWNvcmQpKChNYXAuRW50cnkpaXRlci5uZXh0KCkpLmdldFZhbHVlKCkpOworICAgICAgICB9CisgICAgICAgIHB3LmZsdXNoKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGR1bXBNZXRob2RSZWNvcmQoTWV0aG9kUmVjb3JkIG1yKSB7CisgICAgICAgIHB3LnByaW50bG4obXIudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgc3RhdGljIE1hcCBkaWZmTWV0aG9kTWFwcyhNYXAgbTEsIE1hcCBtMikgeworICAgICAgICAvLyBnZXQgYWxsIHRoZSBtZXRob2RzIGluIG0xIHRoYXQgYXJlbid0IG1lbnRpb25lZCBpbiBtMiBhdCBhbGwKKyAgICAgICAgTWFwIHJlc3VsdCA9IChNYXApKChUcmVlTWFwKW0xKS5jbG9uZSgpOworICAgICAgICByZXN1bHQua2V5U2V0KCkucmVtb3ZlQWxsKG0yLmtleVNldCgpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwcml2YXRlIE1hcCByZW1vdmVJZ25vcmVkKFN0cmluZyBuYW1lLCBNYXAgbTEpIHsKKyAgICAgICAgaWYgKGlnbm9yZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbTE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aChzcmNQcmVmaXgpKSB7CisgICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoc3JjUHJlZml4Lmxlbmd0aCgpKTsKKyAgICAgICAgfQorICAgICAgICBuYW1lICs9ICIgIjsgLy8gdG8gYXZvaWQgYWNjaWRlbnRhbCBwcmVmaXggb2YgbmVzdGVkIGNsYXNzIG5hbWUKKworICAgICAgICAvLyBwcnVuZSBpZ25vcmUgbGlzdCB0byByZWxldmFudCBpdGVtcworICAgICAgICBBcnJheUxpc3QgaWwgPSBudWxsOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlnbm9yZS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHMgPSBpZ25vcmVbaV07CisgICAgICAgICAgICBpZiAocy5zdGFydHNXaXRoKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlsID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWwgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlsLmFkZChzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaWwgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG0xOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgTWFwIHJlc3VsdCA9IG5ldyBUcmVlTWFwKCgoVHJlZU1hcCltMSkuY29tcGFyYXRvcigpKTsKKyAgICAgICAgcmVzdWx0LnB1dEFsbChtMSk7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSByZXN1bHQuZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICBsb29wOiB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE1hcC5FbnRyeSBlID0gKE1hcC5FbnRyeSlpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKWUuZ2V0S2V5KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlsLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlnID0gKFN0cmluZylpbC5nZXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKGlnLmluZGV4T2YoIiAiICsga2V5KSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGl0ZXIucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGxvb3A7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHJpdmF0ZSBTZXQgcmVtb3ZlSWdub3JlZChTdHJpbmcgbmFtZSwgU2V0IHMxKSB7CisgICAgICAgIGlmIChpZ25vcmUgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHMxOworICAgICAgICB9CisgICAgICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoc3JjUHJlZml4KSkgeworICAgICAgICAgICAgbmFtZSA9IG5hbWUuc3Vic3RyaW5nKHNyY1ByZWZpeC5sZW5ndGgoKSk7CisgICAgICAgIH0KKyAgICAgICAgbmFtZSArPSAiICI7IC8vIHRvIGF2b2lkIGFjY2lkZW50YWwgcHJlZml4IG9mIG5lc3RlZCBjbGFzcyBuYW1lCisKKyAgICAgICAgLy8gcHJ1bmUgaWdub3JlIGxpc3QgdG8gcmVsZXZhbnQgaXRlbXMKKyAgICAgICAgQXJyYXlMaXN0IGlsID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpZ25vcmUubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBzID0gaWdub3JlW2ldOworICAgICAgICAgICAgaWYgKHMuc3RhcnRzV2l0aChuYW1lKSkgeworICAgICAgICAgICAgICAgIGlmIChpbCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlsID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbC5hZGQocyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlsID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBzMTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIFNldCByZXN1bHQgPSAoU2V0KSgoVHJlZVNldClzMSkuY2xvbmUoKTsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHJlc3VsdC5pdGVyYXRvcigpOworICAgICAgICBsb29wOiB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOworICAgICAgICAgICAgU3RyaW5nIGZpZWxkbmFtZSA9IGtleS5zdWJzdHJpbmcoMCwga2V5LmluZGV4T2YoJyAnKSk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlsLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlnID0gKFN0cmluZylpbC5nZXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKGlnLmluZGV4T2YoIiAiICsgZmllbGRuYW1lKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGl0ZXIucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGxvb3A7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW5bXVtdIGFzc2lnbm1lbnRNYXAgPSB7CisgICAgICAgIC8vIGJvb2wgICBjaGFyICAgYnl0ZSAgc2hvcnQgICAgaW50ICAgbG9uZyAgZmxvYXQgZG91YmxlICAgdm9pZAorICAgICAgICB7ICB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UgfSwgLy8gYm9vbGVhbgorICAgICAgICB7IGZhbHNlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UgfSwgLy8gY2hhcgorICAgICAgICB7IGZhbHNlLCBmYWxzZSwgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UgfSwgLy8gYnl0ZQorICAgICAgICB7IGZhbHNlLCBmYWxzZSwgIHRydWUsICB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UgfSwgLy8gc2hvcnQKKyAgICAgICAgeyBmYWxzZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlIH0sIC8vIGludAorICAgICAgICB7IGZhbHNlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UgfSwgLy8gbG9uZworICAgICAgICB7IGZhbHNlLCAgdHJ1ZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgZmFsc2UsICB0cnVlLCBmYWxzZSwgZmFsc2UgfSwgLy8gZmxvYXQKKyAgICAgICAgeyBmYWxzZSwgIHRydWUsICB0cnVlLCAgdHJ1ZSwgIHRydWUsIGZhbHNlLCAgdHJ1ZSwgIHRydWUsIGZhbHNlIH0sIC8vIGRvdWJsZQorICAgICAgICB7IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgIHRydWUgfSwgLy8gdm9pZAorICAgIH07CisKKyAgICBzdGF0aWMgZmluYWwgQ2xhc3NbXSBwcmltcyA9IHsKKyAgICAgICAgYm9vbGVhbi5jbGFzcywgY2hhci5jbGFzcywgYnl0ZS5jbGFzcywgc2hvcnQuY2xhc3MsCisgICAgICAgIGludC5jbGFzcywgbG9uZy5jbGFzcywgZmxvYXQuY2xhc3MsIGRvdWJsZS5jbGFzcywgdm9pZC5jbGFzcworICAgIH07CisKKyAgICBzdGF0aWMgaW50IHByaW1JbmRleChDbGFzcyBjbHMpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwcmltcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGNscyA9PSBwcmltc1tpXSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oImNvdWxkIG5vdCBmaW5kIHByaW1pdGl2ZSBjbGFzczogIiArIGNscyk7CisgICAgfQorCisgICAgc3RhdGljIGJvb2xlYW4gYXNzaWduYWJsZUZyb20oQ2xhc3MgbGhzLCBDbGFzcyByaHMpIHsKKyAgICAgICAgaWYgKGxocyA9PSByaHMpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChsaHMuaXNQcmltaXRpdmUoKSkgeworICAgICAgICAgICAgaWYgKCFyaHMuaXNQcmltaXRpdmUoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBsaHN4ID0gcHJpbUluZGV4KGxocyk7CisgICAgICAgICAgICBpbnQgcmhzeCA9IHByaW1JbmRleChyaHMpOworICAgICAgICAgICAgcmV0dXJuIGFzc2lnbm1lbnRNYXBbbGhzeF1bcmhzeF07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxocy5pc0Fzc2lnbmFibGVGcm9tKHJocyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgdG9TdHJpbmcoRmllbGQgZikgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcihmLmdldE5hbWUoKSk7CisgICAgICAgIGludCBtb2QgPSBmLmdldE1vZGlmaWVycygpICYgTU9EX01BU0s7CisgICAgICAgIGlmIChtb2QgIT0gMCkgeworICAgICAgICAgICAgYnVmLmFwcGVuZCgiICIgKyBNb2RpZmllci50b1N0cmluZyhtb2QpKTsKKyAgICAgICAgfQorICAgICAgICBidWYuYXBwZW5kKCIgIik7CisgICAgICAgIFN0cmluZyBuID0gcGFpckVxdWl2YWxlbnQoZi5nZXRUeXBlKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgbiA9IG4uc3Vic3RyaW5nKG4ubGFzdEluZGV4T2YoJy4nKSArIDEpOworICAgICAgICBidWYuYXBwZW5kKG4pOworICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBTZXQgZ2V0RmllbGRTZXQoRmllbGRbXSBmcykgeworICAgICAgICBTZXQgc2V0ID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgc2V0LmFkZCh0b1N0cmluZyhmc1tpXSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzZXQ7CisgICAgfQorCisgICAgc3RhdGljIFNldCBkaWZmRmllbGRTZXRzKFNldCBzMSwgU2V0IHMyKSB7CisgICAgICAgIFNldCByZXN1bHQgPSAoU2V0KSgoVHJlZVNldClzMSkuY2xvbmUoKTsKKyAgICAgICAgcmVzdWx0LnJlbW92ZUFsbChzMik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGR1bXBGaWVsZFNldChTZXQgcywgUHJpbnRXcml0ZXIgcHcpIHsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBwdy5wcmludGxuKGl0ZXIubmV4dCgpKTsKKyAgICAgICAgfQorICAgICAgICBwdy5mbHVzaCgpOworICAgIH0KKworICAgIC8vIGdpdmVuIGEgdGFyZ2V0IHN0cmluZywgaWYgaXQgbWF0Y2hlcyB0aGUgZmlyc3Qgb2Ygb25lIG9mIG91ciBwYWlycywgcmV0dXJuIHRoZSBzZWNvbmQKKyAgICAvLyBvciB2aWNlLXZlcnNhIGlmIHN3YXAgaXMgdHJ1ZQorICAgIHByaXZhdGUgU3RyaW5nIHBhaXJFcXVpdmFsZW50KFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYW1lUGFpcnMubGVuZ3RoOyBpICs9IDIpIHsKKyAgICAgICAgICAgIGlmIChzd2FwKSB7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5lcXVhbHMobmFtZVBhaXJzW2krMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lUGFpcnNbaV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LmVxdWFscyhuYW1lUGFpcnNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lUGFpcnNbaSsxXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisKKyAgICBwcml2YXRlIENsYXNzIHBhaXJDbGFzc0VxdWl2YWxlbnQoQ2xhc3MgdGFyZ2V0KSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2xhc3NQYWlycy5sZW5ndGg7IGkgKz0gMikgeworICAgICAgICAgICAgaWYgKHRhcmdldC5lcXVhbHMoY2xhc3NQYWlyc1tpXSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2xhc3NQYWlyc1tpKzFdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGludCBNT0RfTUFTSyA9IH4oTW9kaWZpZXIuRklOQUx8TW9kaWZpZXIuU1lOQ0hST05JWkVEfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZGlmaWVyLlZPTEFUSUxFfE1vZGlmaWVyLlRSQU5TSUVOVHxNb2RpZmllci5OQVRJVkUpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvSUNVVGFnbGV0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9JQ1VUYWdsZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDA3ZjIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvSUNVVGFnbGV0LmphdmEKQEAgLTAsMCArMSwyOTMgQEAKKy8vIyNoZWFkZXIgIFZFUlNJT05fMS40CisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKy8qKgorICogUHJlcHJvY2VzcyB3aXRoIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3MuQ29kZU1hbmdsZXIgdG8gZ2VuZXJhdGUKKyAqIGVpdGhlciBhIEpESyAxLjQgb3IgSkRLIDEuNSB2ZXJzaW9uLiAgRm9yIHRoZSAxLjUgdmVyc2lvbiwgZGVmaW5lCisgKiBWRVJTSU9OXzEuNS4KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKK2ltcG9ydCBjb20uc3VuLmphdmFkb2MuKjsKK2ltcG9ydCBjb20uc3VuLnRvb2xzLmRvY2xldHMuKjsKKy8vI2lmZGVmIFZFUlNJT05fMS41CisvLyMjCisvLyMjaW1wb3J0IGNvbS5zdW4udG9vbHMuZG9jbGV0cy5pbnRlcm5hbC50b29sa2l0LnRhZ2xldHMuKjsKKy8vIyNpbXBvcnQgY29tLnN1bi50b29scy5kb2NsZXRzLmludGVybmFsLnRvb2xraXQudGFnbGV0cy5UYWdsZXQ7CisvLyMjCisvLyMjLy8gamRrIDEuNSBjb250YWlucyBib3RoIGNvbS5zdW4udG9vbHMuZG9jbGV0cy5UYWdsZXQgYW5kCisvLyMjLy8gY29tLnN1bi50b29scy5kb2NsZXRzLmludGVybmFsLnRvb2xraXQudGFnbGV0cy5UYWdsZXQuCisvLyMjLy8gVGhlaXIgcmVnaXN0cmF0aW9uIGNvZGUgY2FzdHMgdG8gdGhlIHNlY29uZCwgbm90IHRoZSBmaXJzdCwgYW5kIHRoZQorLy8jIy8vIHNlY29uZCBkb2Vzbid0IGltcGxlbWVudCB0aGUgZmlyc3QsIHNvIGlmIHlvdSBqdXN0IGltcGxlbWVudCB0aGUKKy8vIyMvLyBmaXJzdCwgeW91IGRpZS4KKy8vI2VuZGlmCisKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBJQ1VUYWdsZXQgaW1wbGVtZW50cyBUYWdsZXQgeworICAgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgbmFtZTsKKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IG1hc2s7CisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVNLX0ZJRUxEID0gMTsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVNLX0NPTlNUUlVDVE9SID0gMjsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVNLX01FVEhPRCA9IDQ7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFTS19PVkVSVklFVyA9IDg7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFTS19QQUNLQUdFID0gMTY7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFTS19UWVBFID0gMzI7CisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFTS19JTkxJTkUgPSA2NDsKKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BU0tfREVGQVVMVCA9IDB4MDAzZjsgLy8gbm8gaW5saW5lCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFTS19WQUxJRCA9IDB4MDA3ZjsgLy8gaW5jbHVkZXMgaW5saW5lCisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXIoTWFwIHRhZ2xldHMpIHsKKyAgICAgICAgSUNVSW50ZXJuYWxUYWdsZXQucmVnaXN0ZXIodGFnbGV0cyk7CisgICAgICAgIElDVURyYWZ0VGFnbGV0LnJlZ2lzdGVyKHRhZ2xldHMpOworICAgICAgICBJQ1VTdGFibGVUYWdsZXQucmVnaXN0ZXIodGFnbGV0cyk7CisvLyNpZm5kZWYgVkVSU0lPTl8xLjUKKyAgICAgICAgSUNVRGVwcmVjYXRlZFRhZ2xldC5yZWdpc3Rlcih0YWdsZXRzKTsKKy8vI2VuZGlmCisgICAgICAgIElDVVByb3Zpc2lvbmFsVGFnbGV0LnJlZ2lzdGVyKHRhZ2xldHMpOworICAgICAgICBJQ1VPYnNvbGV0ZVRhZ2xldC5yZWdpc3Rlcih0YWdsZXRzKTsKKyAgICAgICAgSUNVSWdub3JlVGFnbGV0LnJlZ2lzdGVyKHRhZ2xldHMpOworICAgIH0KKworICAgIHByb3RlY3RlZCBJQ1VUYWdsZXQoU3RyaW5nIG5hbWUsIGludCBtYXNrKSB7CisgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIHRoaXMubWFzayA9IG1hc2sgJiBNQVNLX1ZBTElEOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGluRmllbGQoKSB7CisgICAgICAgIHJldHVybiAobWFzayAmIE1BU0tfRklFTEQpICE9IDA7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaW5Db25zdHJ1Y3RvcigpIHsKKyAgICAgICAgcmV0dXJuIChtYXNrICYgTUFTS19DT05TVFJVQ1RPUikgIT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpbk1ldGhvZCgpIHsKKyAgICAgICAgcmV0dXJuIChtYXNrICYgTUFTS19NRVRIT0QpICE9IDA7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaW5PdmVydmlldygpIHsKKyAgICAgICAgcmV0dXJuIChtYXNrICYgTUFTS19PVkVSVklFVykgIT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpblBhY2thZ2UoKSB7CisgICAgICAgIHJldHVybiAobWFzayAmIE1BU0tfUEFDS0FHRSkgIT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpblR5cGUoKSB7CisgICAgICAgIHJldHVybiAobWFzayAmIE1BU0tfVFlQRSkgIT0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0lubGluZVRhZygpIHsKKyAgICAgICAgcmV0dXJuIChtYXNrICYgTUFTS19JTkxJTkUpICE9IDA7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKFRhZyB0YWcpIHsKKyAgICAgICAgcmV0dXJuIHRhZy50ZXh0KCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhUYWdbXSB0YWdzKSB7CisgICAgICAgIGlmICh0YWdzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICh0YWdzLmxlbmd0aCA+IDEpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbXNnID0gIlNob3VsZCBub3QgaGF2ZSBtb3JlIHRoYW4gb25lIElDVSB0YWcgcGVyIGVsZW1lbnQ6XG4iOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFncy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBtc2cgKz0gIiAgWyIgKyBpICsgIl0gIiArIHRhZ3NbaV0gKyAiXG4iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKG1zZyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRhZ3MubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0b1N0cmluZyh0YWdzWzBdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisvLyNpZmRlZiBWRVJTSU9OXzEuNQorLy8jIworLy8jIyAgICBwdWJsaWMgVGFnbGV0T3V0cHV0IGdldFRhZ2xldE91dHB1dChUYWcgdGFnLCBUYWdsZXRXcml0ZXIgd3JpdGVyKSB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHsKKy8vIyMJVGFnbGV0T3V0cHV0IG91dCA9IHdyaXRlci5nZXRUYWdsZXRPdXRwdXRJbnN0YW5jZSgpOworLy8jIwlvdXQuc2V0T3V0cHV0KHRvU3RyaW5nKHRhZykpOworLy8jIwlyZXR1cm4gb3V0OworLy8jIyAgICB9CisvLyMjCisvLyMjICAgIHB1YmxpYyBUYWdsZXRPdXRwdXQgZ2V0VGFnbGV0T3V0cHV0KERvYyBob2xkZXIsIFRhZ2xldFdyaXRlciB3cml0ZXIpIHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geworLy8jIyAJVGFnbGV0T3V0cHV0IG91dCA9IHdyaXRlci5nZXRUYWdsZXRPdXRwdXRJbnN0YW5jZSgpOworLy8jIwlUYWdbXSB0YWdzID0gaG9sZGVyLnRhZ3MoZ2V0TmFtZSgpKTsKKy8vIyMJaWYgKHRhZ3MubGVuZ3RoID09IDApIHsKKy8vIyMJICAgIHJldHVybiBudWxsOworLy8jIwl9CisvLyMjIAlvdXQuc2V0T3V0cHV0KHRvU3RyaW5nKHRhZ3NbMF0pKTsKKy8vIyMgCXJldHVybiBvdXQ7CisvLyMjICAgIH0KKy8vI2VuZGlmCisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIFN0cmluZyBTVEFUVVMgPSAiPGR0PjxiPlN0YXR1czo8L2I+PC9kdD4iOworCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBJQ1VJbnRlcm5hbFRhZ2xldCBleHRlbmRzIElDVVRhZ2xldCB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOQU1FID0gImludGVybmFsIjsKKworICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXIoTWFwIHRhZ2xldHMpIHsKKyAgICAgICAgICAgIHRhZ2xldHMucHV0KE5BTUUsIG5ldyBJQ1VJbnRlcm5hbFRhZ2xldCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgSUNVSW50ZXJuYWxUYWdsZXQoKSB7CisgICAgICAgICAgICBzdXBlcihOQU1FLCBNQVNLX0RFRkFVTFQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhUYWcgdGFnKSB7CisgICAgICAgICAgICByZXR1cm4gU1RBVFVTICsgIjxkZD48ZW0+SW50ZXJuYWw8L2VtPi4gPGZvbnQgY29sb3I9J3JlZCc+VGhpcyBBUEkgaXMgPGVtPklDVSBpbnRlcm5hbCBvbmx5PC9lbT4uPC9mb250PjwvZGQ+IjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgSUNVRHJhZnRUYWdsZXQgZXh0ZW5kcyBJQ1VUYWdsZXQgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTkFNRSA9ICJkcmFmdCI7CisKKyAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKE1hcCB0YWdsZXRzKSB7CisgICAgICAgICAgICB0YWdsZXRzLnB1dChOQU1FLCBuZXcgSUNVRHJhZnRUYWdsZXQoKSk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIElDVURyYWZ0VGFnbGV0KCkgeworICAgICAgICAgICAgc3VwZXIoTkFNRSwgTUFTS19ERUZBVUxUKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoVGFnIHRhZykgeworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSB0YWcudGV4dCgpOworICAgICAgICAgICAgaWYgKHRleHQubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiV2FybmluZzogZW1wdHkgZHJhZnQgdGFnIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gU1RBVFVTICsgIjxkZD5EcmFmdCAiICsgdGFnLnRleHQoKSArICIuPC9kZD4iOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBJQ1VTdGFibGVUYWdsZXQgZXh0ZW5kcyBJQ1VUYWdsZXQgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTkFNRSA9ICJzdGFibGUiOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlcihNYXAgdGFnbGV0cykgeworICAgICAgICAgICAgdGFnbGV0cy5wdXQoTkFNRSwgbmV3IElDVVN0YWJsZVRhZ2xldCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgSUNVU3RhYmxlVGFnbGV0KCkgeworICAgICAgICAgICAgc3VwZXIoTkFNRSwgTUFTS19ERUZBVUxUKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoVGFnIHRhZykgeworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSB0YWcudGV4dCgpOworICAgICAgICAgICAgaWYgKHRleHQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNUQVRVUyArICI8ZGQ+U3RhYmxlICIgKyB0ZXh0ICsgIi48L2RkPiI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBTVEFUVVMgKyAiPGRkPlN0YWJsZS48L2RkPiI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisvLyNpZm5kZWYgVkVSU0lPTl8xLjUKKworICAgIC8qCisgICAgICogc2lnaCwgaW4gSkRLIDEuNSB3ZSBjYW4ndCBvdmVycmlkZSB0aGUgc3RhbmRhcmQgZGVwcmVjYXRlZCB0YWdsZXQKKyAgICAgKiBzbyBlYXNpbHkuICBJJ20gbm90IGltcHJlc3NlZCB3aXRoIHRoZSBqYXZhZG9jIGNvZGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBJQ1VEZXByZWNhdGVkVGFnbGV0IGV4dGVuZHMgSUNVVGFnbGV0IHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUUgPSAiZGVwcmVjYXRlZCI7CisKKyAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKE1hcCB0YWdsZXRzKSB7CisJICAgIHRhZ2xldHMucmVtb3ZlKE5BTUUpOyAvLyBvdmVycmlkZSBzdGFuZGFyZCBkZXByZWNhdGVkIHRhZ2xldAorICAgICAgICAgICAgdGFnbGV0cy5wdXQoTkFNRSwgbmV3IElDVURlcHJlY2F0ZWRUYWdsZXQoKSk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIElDVURlcHJlY2F0ZWRUYWdsZXQoKSB7CisgICAgICAgICAgICBzdXBlcihOQU1FLCBNQVNLX0RFRkFVTFQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhUYWcgdGFnKSB7CisgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIGJpID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZS5VUyk7CisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IHRhZy50ZXh0KCk7CisgICAgICAgICAgICBiaS5zZXRUZXh0KHRleHQpOworICAgICAgICAgICAgaW50IGZpcnN0ID0gYmkuZmlyc3QoKTsKKyAgICAgICAgICAgIGludCBuZXh0ID0gYmkubmV4dCgpOworICAgICAgICAgICAgaWYgKGZpcnN0ID09IC0xIHx8IG5leHQgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldhcm5pbmc6IGJhZCBkZXByZWNhdGVkIHRhZyAnIiArIHRleHQgKyAiJyIpOworICAgICAgICAgICAgICAgIHJldHVybiAiPGRkPjxlbT5Ob3RlPC9lbT4uICIgKyB0ZXh0ICsgIjwvZGQ+IjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKCJUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4iLmVxdWFscyh0ZXh0KSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuICI8ZGQ+PGVtPk5vdGUsICIgKyB0ZXh0LnN1YnN0cmluZyhmaXJzdCwgbmV4dCkgKyAiPC9lbT4uICIgKyB0ZXh0LnN1YnN0cmluZyhuZXh0KSArICI8L2RkPiI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisvLyNlbmRpZgorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBJQ1VQcm92aXNpb25hbFRhZ2xldCBleHRlbmRzIElDVVRhZ2xldCB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOQU1FID0gInByb3Zpc2lvbmFsIjsKKworICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXIoTWFwIHRhZ2xldHMpIHsKKwkgICAgdGFnbGV0cy5yZW1vdmUoTkFNRSk7IC8vIG92ZXJyaWRlIHN0YW5kYXJkIGRlcHJlY2F0ZWQgdGFnbGV0CisgICAgICAgICAgICB0YWdsZXRzLnB1dChOQU1FLCBuZXcgSUNVUHJvdmlzaW9uYWxUYWdsZXQoKSk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIElDVVByb3Zpc2lvbmFsVGFnbGV0KCkgeworICAgICAgICAgICAgc3VwZXIoTkFNRSwgTUFTS19ERUZBVUxUKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoVGFnIHRhZykgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIElDVU9ic29sZXRlVGFnbGV0IGV4dGVuZHMgSUNVVGFnbGV0IHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUUgPSAib2Jzb2xldGUiOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3RlcihNYXAgdGFnbGV0cykgeworICAgICAgICAgICAgdGFnbGV0cy5wdXQoTkFNRSwgbmV3IElDVU9ic29sZXRlVGFnbGV0KCkpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBJQ1VPYnNvbGV0ZVRhZ2xldCgpIHsKKyAgICAgICAgICAgIHN1cGVyKE5BTUUsIE1BU0tfREVGQVVMVCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKFRhZyB0YWcpIHsKKyAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoTG9jYWxlLlVTKTsKKyAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gdGFnLnRleHQoKTsKKyAgICAgICAgICAgIGJpLnNldFRleHQodGV4dCk7CisgICAgICAgICAgICBpbnQgZmlyc3QgPSBiaS5maXJzdCgpOworICAgICAgICAgICAgaW50IG5leHQgPSBiaS5uZXh0KCk7CisgICAgICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZmlyc3QgPSBuZXh0ID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBTVEFUVVMgKyAiPGRkPjxlbT5PYnNvbGV0ZS48L2VtPiA8Zm9udCBjb2xvcj0ncmVkJz5XaWxsIGJlIHJlbW92ZWQgaW4gIiArIHRleHQuc3Vic3RyaW5nKGZpcnN0LCBuZXh0KSArICI8L2ZvbnQ+LiAiICsgdGV4dC5zdWJzdHJpbmcobmV4dCkgKyAiPC9kZD4iOworCisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIElDVUlnbm9yZVRhZ2xldCBleHRlbmRzIElDVVRhZ2xldCB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIElDVVRhZ2xldCBzaW5nbGV0b247CisKKyAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKE1hcCB0YWdsZXRzKSB7CisgICAgICAgICAgICBpZiAoc2luZ2xldG9uID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzaW5nbGV0b24gPSBuZXcgSUNVSWdub3JlVGFnbGV0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0YWdsZXRzLnB1dCgiYnVnIiwgc2luZ2xldG9uKTsKKyAgICAgICAgICAgIHRhZ2xldHMucHV0KCJ0ZXN0Iiwgc2luZ2xldG9uKTsKKyAgICAgICAgICAgIHRhZ2xldHMucHV0KCJzdW1tYXJ5Iiwgc2luZ2xldG9uKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgSUNVSWdub3JlVGFnbGV0KCkgeworICAgICAgICAgICAgc3VwZXIoIi5pZ25vcmUiLCBNQVNLX0RFRkFVTFQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZyhUYWcgdGFnKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL1JFQURNRS50eHQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9SRUFETUUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzN2YxNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9SRUFETUUudHh0CkBAIC0wLDAgKzEsOTUgQEAKK0NvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitVc2luZyB0aGUgR2F0aGVyQVBJRGF0YSBhbmQgUmVwb3J0QVBJIHRvb2xzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZXNlIHR3byB0b29scyBhcmUgdXNlZCB0b2dldGhlciB0byBnZW5lcmF0ZSByZXBvcnRzIGFib3V0IGNoYW5nZXMgaW4KK3N1cHBvcnRlZCBBUEkgYmV0d2VlbiB2ZXJzaW9ucyBvZiBJQ1U0Si4KKworCitHYXRoZXJBUElEYXRhIAorCitHYXRoZXJBUElEYXRhIHVzZXMgamF2YWRvYyB0byBwcm9jZXNzIHRoZSBJQ1U0SiBzb3VyY2UgZmlsZXMgYW5kCitnZW5lcmF0ZSBhIGZpbGUgbGlzdGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHVibGljIEFQSSwgaW5jbHVkaW5nCit0aGUgSUNVNEogc3RhdHVzIChkcmFmdCwgc3RhYmxlLCBkZXByZWNhdGVkLCBvYnNvbGV0ZSkuICBJdCBleGNsdWRlcworcHJpdmF0ZSBBUEksIEFQSSBtYXJrZWQgQGludGVybmFsLiAgVGhlIGZpbGUgaXMgd3JpdHRlbiBhcyB0ZXh0LCBzbyBpdAoraXMgaHVtYW4tcmVhZGFibGUsIGJ1dCBpdCBpcyBhIGJpdCB2ZXJib3NlLiAgVG8gc2F2ZSBzcGFjZSwgdGhlIGZpbGUKK2NhbiBiZSB6aXAnZCBvciBnemlwJ2QgKHVzaW5nIGZsYWdzIHBhc3NlZCB0byB0aGUgdG9vbCksIHdoaWNoIHdpbGwKK3JlZHVjZSB0aGUgc2l6ZSBieSBhYm91dCBhIGZhY3RvciBvZiAxMC4KKworR2F0aGVyQVBJRGF0YSByZXF1aXJlcyBqYXZhZG9jIGFuZCBpcyBjdXJyZW50bHkgYmFzZWQgb24gc3VuIGpkaworMS40LjIuICBKYXZhRG9jIGlzIGludGVybmFsIChJIGJlbGlldmUpIHNvIHlvdSBuZWVkIGEgcmVmZXJlbmNlIGp2bQorZnJvbSBTdW4gdG8gY29tcGlsZSB0aGUgdG9vbCwgYnV0IGl0IGNhbiBiZSBydW4gYWdhaW5zdCBhbnkgMS40IEpESworKGF0IGxlYXN0LCB0aG9zZSBmcm9tIFN1bikuICBJbnN0cnVjdGlvbnMgaW4gdGhlIHNvdXJjZSBmaWxlIHNob3cgaG93CitpdCBjYW4gYmUgaW52b2tlZC4KKworR2F0aGVyQVBJRGF0YSBzaG91bGQgYmUgcGFzc2VkIGFsbCB0aGUgcGFja2FnZXMgdGhhdCBuZWVkIHJlcG9ydGluZy4KK0N1cnJlbnRseSwgcHVibGljIGFwaSBpcyBvbmx5IGluIHRoZSBsYW5nLCBtYXRoLCB0ZXh0LCBhbmQgdXRpbAorc3VicGFja2FnZXMgb2YgY29tLmlibS5pY3UuCisKKworUmVwb3J0QVBJIAorCitSZXBvcnRBUEkgdGFrZXMgdHdvIGFwaSBmaWxlcyBnZW5lcmF0ZWQgYnkgR2F0aGVyQVBJRGF0YSBhbmQgcmVwb3J0cworb24gcmVtb3ZhbHMsIGNoYW5nZXMsIGFuZCBhZGRpdGlvbnMgdG8gdGhlIEFQSS4gIEl0IGRvZXMgdGhpcyBieQorY29tcGFyaW5nIHRoZSBBUEkgaW5mb3JtYXRpb24gaW4gdGhlIHR3byBBUEkgZmlsZXMuICBXaGVuIG5ldyBjbGFzc2VzCithcmUgYWRkZWQsIG9ubHkgdGhlIGNsYXNzIGlzIGxpc3RlZCwgbm90IGl0cyBlbnRpcmUgQVBJLCBhbmQgc2ltaWxhcmx5Cit3aGVuIGEgY2xhc3MgaXMgZGVsZXRlZC4gIFdoZW4gQVBJcyB3aXRoIHRoZSBzYW1lIG5hbWUgYW5kIHNpZ25hdHVyZQorYXJlIGNoYW5nZWQgKHZpc2liaWxpdHksIHN0YXR1cywgaW5oZXJpdGFuY2UpIHRoZXNlIGNoYW5nZXMgYXJlIGxpc3RlZAorYnkgc2hvd2luZyB0aGUgb2xkIGFuZCBuZXcgdmVyc2lvbnMgb2YgdGhlIEFQSS4KKworUmVwb3J0QVBJIGlzIG5vdCBwYXJ0aWN1bGFybHkgc21hcnQsIGFuZCBpbiBwYXJ0aWN1bGFyLCBkb2VzIG5vdCBrbm93CithYm91dCBpbmhlcml0ZWQgQVBJLiAgU28gZm9yIGV4YW1wbGUsIG1vdmluZyBwdWJsaWMgQVBJIGZyb20gYSBjbGFzcwordG8gYSBiYXNlIGNsYXNzIGlzIHJlcG9ydGVkIGFzIGEgZGVsZXRpb24gb2YgQVBJIGZyb20gdGhlIG9yaWdpbmFsCitjbGFzcywgZXZlbiB0aG91Z2ggdGhlIGVmZmVjdGl2ZSBBUEkgb24gdGhlIG9yaWdpbmFsIGNsYXNzIGlzCit1bmNoYW5nZWQgYnkgdGhpcy4KKworUmVwb3J0QVBJIGFsc28gZG9lcyBub3Qga25vdyBhYm91dCBKYXZhIGNsYXNzIGZpbGVzLCBzbyBmb3IgZXhhbXBsZSBpdAorY2Fubm90IGJlIHVzZWQgdG8gY29tcGFyZSBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXIgYWdhaW5zdAoramF2YS5sYW5nLkNoYXJhY3Rlci4gIFRoaXMgbWlnaHQgYmUgcHJvdmlkZWQgaW4gYSBsYXRlciByZWxlYXNlLgorCitGb3IgdGhlc2UgcmVhc29ucywgaW4gZ2VuZXJhbCBpdCBpcyBiZXN0IHRvIGNvbXBhcmUgdHdvIHN1Y2Nlc3NpdmUKK3ZlcnNpb25zIG9mIElDVTRKIGFnYWluc3QgZWFjaCBvdGhlciwgcmF0aGVyIHRoYW4gcmFkaWNhbGx5IGRpZmZlcmVudAordmVyc2lvbnMuICBBIGxhcmdlIG51bWJlciBvZiBjaGFuZ2VzIGNhbiBzaG93IHVwLCBtYW55IG9mIHdoaWNoIG1pZ2h0CitmYWxsIGludG8gdGhlc2UgJ2lubm9jdW91cycgY2F0ZWdvcmllcy4KKworUmVwb3J0QVBJIGNhbiBnZW5lcmF0ZSBlaXRoZXIgcGxhaW4gdGV4dCBvciBodG1sIHJlcG9ydHMuICBTaW5jZSBpdAorb25seSByZXF1aXJlcyB0aGUgZGF0YSBmaWxlcyBhbmQgZG9lcyBub3QgcmVseSBvbiBKYXZhRG9jLCBpdCBpcyBtb3JlCitzdHJhaWdodGZvcndhcmQgdG8gaW52b2tlLgorCitSZXBvcnRBUEkgdXNlcyB0aGUgZmlsZSBleHRlbnNpb24gdG8gZGV0ZXJtaW5lIGhvdyB0byB1bmNvbXByZXNzIHRoZQorYXBpIGRhdGEgZmlsZXMuICBJdCBleHBlY3RzICcuemlwJyBmb3IgZmlsZXMgdGhhdCBoYXZlIGJlZW4gY29tcHJlc3NlZAordXNpbmcgemlwLCBhbmQgJy5neicgZm9yIGZpbGVzIHRoYXQgaGF2ZSBiZWVuIGNvbXByZXNzZWQgdXNpbmcgZ3ppcC4KK1RoZSBHYXRoZXJBUElEYXRhIHV0aWxpdHkgYXV0b21hdGljYWxseSBhcHBlbmRzIHRoZXNlIGV4dGVuc2lvbnMgd2hlbgorY29tcHJlc3Npb24gaXMgdXNlZC4KKworQVBJIERhdGEgRmlsZXMKKworQVBJIERhdGEgZmlsZXMgZm9yIElDVTRKIDIuOCBhbmQgMy4wIGFyZSBpbiB0aGlzIGRpcmVjdG9yeS4gIFRoZQoraW50ZW50IGlzIHRvIHN0b3JlIGRhdGEgZmlsZXMgZm9yIGVhY2ggcmVsZWFzZSB2ZXJzaW9uIG9mIElDVTRKLCB0bworZmFjaWxpdGF0ZSBjb21wYXJpc29uIHVzaW5nIHRoZSBSZXBvcnRBUEkgdG9vbC4gIE9mIGNvdXJzZSwgdGhleSBjYW4KK2Fsd2F5cyBiZSByZWdlbmVyYXRlZCB1c2luZyB0aGUgR2VuZXJhdGVBUEkgYW5kIHRoZSBzb3VyY2VzIG9mIGEKK3BhcnRpY3VsYXIgSUNVNEogcmVsZWFzZS4KKworVGhlIGZvcm1hdCBvZiB0aGUgQVBJIGRhdGEgZmlsZSBpcyBzdHJhaWdodGZvcndhcmQuICBUaGUgZmlyc3QgbGluZSBvZgordGhlIGZpbGUgaXMgdGhlIGhlYWRlciwgc3VjY2Vzc2l2ZSBsaW5lcyBhcmUgdGhlIGFwaSBpbmZvcm1hdGlvbi4KK0VhY2ggbGluZSBjb25zaXN0cyBvZiBhIG51bWJlciBvZiB0b2tlbnMsIGVhY2ggZm9sbG93ZWQgYnkgYQorc2VtaS1jb2xvbiAoaW5jdWRpbmcgdGhlIGxhc3QgdG9rZW4gb24gdGhlIGxpbmUpLgorCitUaGUgaGVhZGVyIGxpbmUgY29udGFpbnMgdGhlIHZlcnNpb24gbnVtYmVyLCB0aGUgJ25hbWUnIG9mIHRoZSB2ZXJzaW9uCitvZiBJQ1U0SiByZXByZXNlbnRlZCBieSB0aGUgZmlsZSwgYW5kIGEgJ2Jhc2UgZGlyZWN0b3J5JyBmaWVsZAorKGN1cnJlbnRseSBub3QgZnVsbHkgaW1wbGVtZW50ZWQpLgorCitUaGUgZm9sbG93aW5nIGxpbmVzIGNvbnRhaW4gZGF0YSBnZW5lcmF0ZWQgYnkgdGhlIEFQSUluZm8gY2xhc3MsIG9uZQorbGluZSBwZXIgY2xhc3Mgb3IgbWV0aG9kLiAgVGhlIHRva2VucyBhcmUgc3RhdHVzLCB2aXNpYmlsaXR5LCBzdGF0aWMsCitmaW5hbCwgc3luY2hyb25pemVkLCBhYnN0cmFjdCwgdHlwZSwgcGFja2FnZSwgY29udGFpbmluZyBjbGFzcywgbmFtZSwKK2FuZCAnc2lnbmF0dXJlJyAod2hpY2ggdmFyaWVzIGJ5IHRoZSB0eXBlIG9mIG9iamVjdCkuICBGb3IgY2xhc3NlcywKK3RoZSAnc2lnbmF0dXJlJyBpcyB0aGUgaW1tZWRpYXRlIGluaGVyaXRhbmNlIG9mIHRoZSBjbGFzcy4gIEZvcgorZmllbGRzLCB0aGUgJ3NpZ25hdHVyZScgaXMgdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiAgRm9yIG1ldGhvZHMsIHRoZQorJ3NpZ25hdHVyZScgaXMgdGhlIGZ1bmN0aW9uIHNpZ25hdHVyZS4gQWxsIGZpZWxkcyBhcmUgYWx3YXlzIHByZXNlbnQuCisKK0ZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIEFQSUluZm8uamF2YS4KKworLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvUmVwb3J0QVBJLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9SZXBvcnRBUEkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzE4ZDdhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvUmVwb3J0QVBJLmphdmEKQEAgLTAsMCArMSw0ODggQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworLyoqCisgKiBDb21wYXJlIHR3byBBUEkgZmlsZXMgKGdlbmVyYXRlZCBieSBHYXRoZXJBUElEYXRhKSBhbmQgZ2VuZXJhdGUgYSByZXBvcnQKKyAqIG9uIHRoZSBkaWZmZXJlbmNlcy4KKyAqCisgKiBTYW1wbGUgaW52b2NhdGlvbjoKKyAqIGphdmEgLW9sZDogaWN1NGoyOC5hcGkuemlwIC1uZXc6IGljdTRqMzAuYXBpIC1odG1sIC1vdXQ6IGljdTRqX2NvbXBhcmVfMjhfMzAuaHRtbAorICoKKyAqIFRPRE86CisgKiAtIG1ha2UgJ2NoYW5nZWQgYXBpcycgc21hcnRlciAtIGRldGVjdCBtZXRob2QgcGFyYW1ldGVyIG9yIHJldHVybiB0eXBlIGNoYW5nZQorICogICBmb3IgdGhpcywgdGhlIHNlcXVlbnRpYWwgc2VhcmNoIHRocm91Z2ggbWV0aG9kcyBvcmRlcmVkIGJ5IHNpZ25hdHVyZSB3b24ndCBkby4KKyAqICAgICBXZSBuZWVkIHRvIGdhdGhlciBhbGwgYWRkZWQgYW5kIHJlbW92ZWQgb3ZlcmxvYWRzIGZvciBhIG1ldGhvZCwgYW5kIHRoZW4KKyAqICAgICBjb21wYXJlIGFsbCBhZGRlZCBhZ2FpbnN0IGFsbCByZW1vdmVkIGluIG9yZGVyIHRvIGlkZW50aWZ5IHRoaXMga2luZCBvZgorICogICAgIGNoYW5nZS4KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmRvY3M7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgamF2YS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLnppcC4qOworCitwdWJsaWMgY2xhc3MgUmVwb3J0QVBJIHsKKyAgICBBUElEYXRhIG9sZERhdGE7CisgICAgQVBJRGF0YSBuZXdEYXRhOworICAgIGJvb2xlYW4gaHRtbDsKKyAgICBTdHJpbmcgb3V0cHV0RmlsZTsKKworICAgIFRyZWVTZXQgYWRkZWQ7CisgICAgVHJlZVNldCByZW1vdmVkOworICAgIFRyZWVTZXQgcHJvbW90ZWQ7CisgICAgVHJlZVNldCBvYnNvbGV0ZWQ7CisgICAgQXJyYXlMaXN0IGNoYW5nZWQ7CisKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgRGVsdGFJbmZvIGV4dGVuZHMgQVBJSW5mbyB7CisgICAgICAgIEFQSUluZm8gYWRkZWQ7CisgICAgICAgIEFQSUluZm8gcmVtb3ZlZDsKKworICAgICAgICBEZWx0YUluZm8oQVBJSW5mbyBhZGRlZCwgQVBJSW5mbyByZW1vdmVkKSB7CisgICAgICAgICAgICB0aGlzLmFkZGVkID0gYWRkZWQ7CisgICAgICAgICAgICB0aGlzLnJlbW92ZWQgPSByZW1vdmVkOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRWYWwoaW50IHR5cCkgeworICAgICAgICAgICAgcmV0dXJuIGFkZGVkLmdldFZhbCh0eXApOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXQoaW50IHR5cCwgYm9vbGVhbiBicmllZikgeworICAgICAgICAgICAgcmV0dXJuIGFkZGVkLmdldCh0eXAsIGJyaWVmKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHByaW50KFByaW50V3JpdGVyIHB3LCBib29sZWFuIGRldGFpbCwgYm9vbGVhbiBodG1sKSB7CisgICAgICAgICAgICBwdy5wcmludCgiICAgICIpOworICAgICAgICAgICAgcmVtb3ZlZC5wcmludChwdywgZGV0YWlsLCBodG1sKTsKKyAgICAgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPC9icj4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgICAgIHB3LnByaW50KCItLT4gIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhZGRlZC5wcmludChwdywgZGV0YWlsLCBodG1sKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgU3RyaW5nIG9sZEZpbGUgPSBudWxsOworICAgICAgICBTdHJpbmcgbmV3RmlsZSA9IG51bGw7CisgICAgICAgIFN0cmluZyBvdXRGaWxlID0gbnVsbDsKKyAgICAgICAgYm9vbGVhbiBodG1sID0gZmFsc2U7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBTdHJpbmcgYXJnID0gYXJnc1tpXTsKKyAgICAgICAgICAgIGlmIChhcmcuZXF1YWxzKCItb2xkOiIpKSB7CisgICAgICAgICAgICAgICAgb2xkRmlsZSA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnLmVxdWFscygiLW5ldzoiKSkgeworICAgICAgICAgICAgICAgIG5ld0ZpbGUgPSBhcmdzWysraV07CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZy5lcXVhbHMoIi1vdXQ6IikpIHsKKyAgICAgICAgICAgICAgICBvdXRGaWxlID0gYXJnc1srK2ldOworICAgICAgICAgICAgfSBlbHNlIGlmIChhcmcuZXF1YWxzKCItaHRtbCIpKSB7CisgICAgICAgICAgICAgICAgaHRtbCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBuZXcgUmVwb3J0QVBJKG9sZEZpbGUsIG5ld0ZpbGUpLndyaXRlUmVwb3J0KG91dEZpbGUsIGh0bWwpOworICAgIH0KKworICAgIC8qCisgICAgICB3aGlsZSB0aGUgYm90aCBhcmUgbWV0aG9kcyBhbmQgdGhlIGNsYXNzIGFuZCBtZXRob2QgbmFtZXMgYXJlIHRoZSBzYW1lLCBjb2xsZWN0CisgICAgICBvdmVybG9hZHMuICB3aGVuIHlvdSBoaXQgYSBuZXcgbWV0aG9kIG9yIGNsYXNzLCBjb21wYXJlIHRoZSBvdmVybG9hZHMKKyAgICAgIGxvb2tpbmcgZm9yIHRoZSBzYW1lICMgb2YgcGFyYW1zIGFuZCBzaW1wbGUgcGFyYW0gY2hhbmdlcy4gIGlkZWFsbHkKKyAgICAgIHRoZXJlIGFyZSBqdXN0IGEgZmV3LgorCisgICAgICBTdHJpbmcgb2xkQSA9IG51bGw7CisgICAgICBTdHJpbmcgb2xkUiA9IG51bGw7CisgICAgICBpZiAoIWEuaXNNZXRob2QoKSkgeworICAgICAgcmVtb3ZlIGFuZCBjb250aW51ZQorICAgICAgfQorICAgICAgU3RyaW5nIGFtID0gYS5nZXRDbGFzc05hbWUoKSArICIuIiArIGEuZ2V0TmFtZSgpOworICAgICAgU3RyaW5nIHJtID0gci5nZXRDbGFzc05hbWUoKSArICIuIiArIHIuZ2V0TmFtZSgpOworICAgICAgaW50IGNvbXAgPSBhbS5jb21wYXJlKHJtKTsKKyAgICAgIGlmIChjb21wID09IDAgJiYgYS5pc01ldGhvZCgpICYmIHIuaXNNZXRob2QoKSkKKworICAgICovCisKKyAgICBSZXBvcnRBUEkoU3RyaW5nIG9sZEZpbGUsIFN0cmluZyBuZXdGaWxlKSB7CisgICAgICAgIG9sZERhdGEgPSBBUElEYXRhLnJlYWQob2xkRmlsZSk7CisgICAgICAgIG5ld0RhdGEgPSBBUElEYXRhLnJlYWQobmV3RmlsZSk7CisKKyAgICAgICAgcmVtb3ZlZCA9IChUcmVlU2V0KW9sZERhdGEuc2V0LmNsb25lKCk7CisgICAgICAgIHJlbW92ZWQucmVtb3ZlQWxsKG5ld0RhdGEuc2V0KTsKKworICAgICAgICBhZGRlZCA9IChUcmVlU2V0KW5ld0RhdGEuc2V0LmNsb25lKCk7CisgICAgICAgIGFkZGVkLnJlbW92ZUFsbChvbGREYXRhLnNldCk7CisKKyAgICAgICAgY2hhbmdlZCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgSXRlcmF0b3IgYWkgPSBhZGRlZC5pdGVyYXRvcigpOworICAgICAgICBJdGVyYXRvciByaSA9IHJlbW92ZWQuaXRlcmF0b3IoKTsKKyAgICAgICAgQ29tcGFyYXRvciBjID0gQVBJSW5mby5jaGFuZ2VkQ29tcGFyYXRvcigpOworCisgICAgICAgIEFycmF5TGlzdCBhbXMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIEFycmF5TGlzdCBybXMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIFByaW50V3JpdGVyIG91dHB3ID0gbmV3IFByaW50V3JpdGVyKFN5c3RlbS5vdXQpOworCisgICAgICAgIEFQSUluZm8gYSA9IG51bGwsIHIgPSBudWxsOworICAgICAgICB3aGlsZSAoYWkuaGFzTmV4dCgpICYmIHJpLmhhc05leHQoKSkgeworICAgICAgICAgICAgaWYgKGEgPT0gbnVsbCkgYSA9IChBUElJbmZvKWFpLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChyID09IG51bGwpIHIgPSAoQVBJSW5mbylyaS5uZXh0KCk7CisKKyAgICAgICAgICAgIFN0cmluZyBhbSA9IGEuZ2V0Q2xhc3NOYW1lKCkgKyAiLiIgKyBhLmdldE5hbWUoKTsKKyAgICAgICAgICAgIFN0cmluZyBybSA9IHIuZ2V0Q2xhc3NOYW1lKCkgKyAiLiIgKyByLmdldE5hbWUoKTsKKyAgICAgICAgICAgIGludCBjb21wID0gYW0uY29tcGFyZVRvKHJtKTsKKyAgICAgICAgICAgIGlmIChjb21wID09IDAgJiYgYS5pc01ldGhvZCgpICYmIHIuaXNNZXRob2QoKSkgeyAvLyBjb2xsZWN0IG92ZXJsb2FkcworICAgICAgICAgICAgICAgIGFtcy5hZGQoYSk7IGEgPSBudWxsOworICAgICAgICAgICAgICAgIHJtcy5hZGQocik7IHIgPSBudWxsOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWFtcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAvLyBzaW1wbGVzdCBjYXNlIGZpcnN0CisgICAgICAgICAgICAgICAgaWYgKGFtcy5zaXplKCkgPT0gMSAmJiBybXMuc2l6ZSgpID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZC5hZGQobmV3IERlbHRhSW5mbygoQVBJSW5mbylhbXMuZ2V0KDApLCAoQVBJSW5mbylybXMuZ2V0KDApKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZGFuZywgd2hhdCB0byBkbyBub3c/CisgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IG1vZGlmeSBkZWx0YWluZm8gdG8gZGVhbCB3aXRoIGxpc3RzIG9mIGFkZGVkIGFuZCByZW1vdmVkCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFtcy5jbGVhcigpOworICAgICAgICAgICAgICAgIHJtcy5jbGVhcigpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gYy5jb21wYXJlKGEsIHIpOworICAgICAgICAgICAgaWYgKHJlc3VsdCA8IDApIHsKKyAgICAgICAgICAgICAgICBhID0gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0ID4gMCkgeworICAgICAgICAgICAgICAgIHIgPSBudWxsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjaGFuZ2VkLmFkZChuZXcgRGVsdGFJbmZvKGEsIHIpKTsKKyAgICAgICAgICAgICAgICBhID0gbnVsbDsKKyAgICAgICAgICAgICAgICByID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIG5vdyBjbGVhbiB1cCBhZGRlZCBhbmQgcmVtb3ZlZCBieSBjbGVhbmluZyBvdXQgdGhlIGNoYW5nZWQgbWVtYmVycworICAgICAgICBJdGVyYXRvciBjaSA9IGNoYW5nZWQuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGNpLmhhc05leHQoKSkgeworICAgICAgICAgICAgRGVsdGFJbmZvIGRpID0gKERlbHRhSW5mbyljaS5uZXh0KCk7CisgICAgICAgICAgICBhZGRlZC5yZW1vdmUoZGkuYWRkZWQpOworICAgICAgICAgICAgcmVtb3ZlZC5yZW1vdmUoZGkucmVtb3ZlZCk7CisgICAgICAgIH0KKworICAgICAgICBTZXQgdGVtcEFkZGVkID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgdGVtcEFkZGVkLmFkZEFsbChuZXdEYXRhLnNldCk7CisgICAgICAgIHRlbXBBZGRlZC5yZW1vdmVBbGwocmVtb3ZlZCk7CisgICAgICAgIFRyZWVTZXQgY2hhbmdlZEFkZGVkID0gbmV3IFRyZWVTZXQoQVBJSW5mby5kZWZhdWx0Q29tcGFyYXRvcigpKTsKKyAgICAgICAgY2hhbmdlZEFkZGVkLmFkZEFsbCh0ZW1wQWRkZWQpOworCisgICAgICAgIFNldCB0ZW1wUmVtb3ZlZCA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgIHRlbXBSZW1vdmVkLmFkZEFsbChvbGREYXRhLnNldCk7CisgICAgICAgIHRlbXBSZW1vdmVkLnJlbW92ZUFsbChhZGRlZCk7CisgICAgICAgIFRyZWVTZXQgY2hhbmdlZFJlbW92ZWQgPSBuZXcgVHJlZVNldChBUElJbmZvLmRlZmF1bHRDb21wYXJhdG9yKCkpOworICAgICAgICBjaGFuZ2VkUmVtb3ZlZC5hZGRBbGwodGVtcFJlbW92ZWQpOworCisgICAgICAgIHByb21vdGVkID0gbmV3IFRyZWVTZXQoQVBJSW5mby5kZWZhdWx0Q29tcGFyYXRvcigpKTsKKyAgICAgICAgb2Jzb2xldGVkID0gbmV3IFRyZWVTZXQoQVBJSW5mby5kZWZhdWx0Q29tcGFyYXRvcigpKTsKKyAgICAgICAgYWkgPSBjaGFuZ2VkQWRkZWQuaXRlcmF0b3IoKTsKKyAgICAgICAgcmkgPSBjaGFuZ2VkUmVtb3ZlZC5pdGVyYXRvcigpOworICAgICAgICBhID0gciA9IG51bGw7CisgICAgICAgIHdoaWxlIChhaS5oYXNOZXh0KCkgJiYgcmkuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBpZiAoYSA9PSBudWxsKSBhID0gKEFQSUluZm8pYWkubmV4dCgpOworICAgICAgICAgICAgaWYgKHIgPT0gbnVsbCkgciA9IChBUElJbmZvKXJpLm5leHQoKTsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBjLmNvbXBhcmUoYSwgcik7CisgICAgICAgICAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICAgICAgICAgIGEgPSBudWxsOworICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPiAwKSB7CisgICAgICAgICAgICAgICAgciA9IG51bGw7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGludCBjaGFuZ2UgPSBzdGF0dXNDaGFuZ2UoYSwgcik7CisgICAgICAgICAgICAgICAgaWYgKGNoYW5nZSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcHJvbW90ZWQuYWRkKGEpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBvYnNvbGV0ZWQuYWRkKGEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhID0gbnVsbDsKKyAgICAgICAgICAgICAgICByID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGFkZGVkID0gc3RyaXBBbmRSZXNvcnQoYWRkZWQpOworICAgICAgICByZW1vdmVkID0gc3RyaXBBbmRSZXNvcnQocmVtb3ZlZCk7CisgICAgICAgIHByb21vdGVkID0gc3RyaXBBbmRSZXNvcnQocHJvbW90ZWQpOworICAgICAgICBvYnNvbGV0ZWQgPSBzdHJpcEFuZFJlc29ydChvYnNvbGV0ZWQpOworICAgIH0KKworICAgIHByaXZhdGUgaW50IHN0YXR1c0NoYW5nZShBUElJbmZvIGxocywgQVBJSW5mbyByaHMpIHsgLy8gbmV3LiBvbGQKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBBUElJbmZvLk5VTV9UWVBFUzsgKytpKSB7CisgICAgICAgICAgICBpZiAobGhzLmdldChpLCB0cnVlKS5lcXVhbHMocmhzLmdldChpLCB0cnVlKSkgPT0gKGkgPT0gQVBJSW5mby5TVEEpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW50IGxzdGF0dXMgPSBsaHMuZ2V0VmFsKEFQSUluZm8uU1RBKTsKKyAgICAgICAgaWYgKGxzdGF0dXMgPT0gQVBJSW5mby5TVEFfT0JTT0xFVEUgfHwgbHN0YXR1cyA9PSBBUElJbmZvLlNUQV9ERVBSRUNBVEVEKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIHdyaXRlUmVwb3J0KFN0cmluZyBvdXRGaWxlLCBib29sZWFuIGh0bWwpIHsKKyAgICAgICAgT3V0cHV0U3RyZWFtIG9zID0gU3lzdGVtLm91dDsKKyAgICAgICAgaWYgKG91dEZpbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBvcyA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKG91dEZpbGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICByZS5pbml0Q2F1c2UoZSk7CisgICAgICAgICAgICAgICAgdGhyb3cgcmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBQcmludFdyaXRlciBwdyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBwdyA9IG5ldyBQcmludFdyaXRlcihuZXcgQnVmZmVyZWRXcml0ZXIobmV3IE91dHB1dFN0cmVhbVdyaXRlcihvcywgIlVURi04IikpKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7IC8vIFVURi04IHNob3VsZCBhbHdheXMgYmUgc3VwcG9ydGVkCisgICAgICAgIH0KKworICAgICAgICBEYXRlRm9ybWF0IGZtdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ5eXl5Iik7CisgICAgICAgIFN0cmluZyB5ZWFyID0gZm10LmZvcm1hdChuZXcgRGF0ZSgpKTsKKyAgICAgICAgU3RyaW5nIHRpdGxlID0gIklDVTRKIEFQSSBDb21wYXJpc29uOiAiICsgb2xkRGF0YS5uYW1lICsgIiB3aXRoICIgKyBuZXdEYXRhLm5hbWU7CisgICAgICAgIFN0cmluZyBpbmZvID0gIkNvbnRlbnRzIGdlbmVyYXRlZCBieSBSZXBvcnRBUEkgdG9vbCBvbiAiICsgbmV3IERhdGUoKS50b1N0cmluZygpOworICAgICAgICBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCAoQykgIiArIHllYXIgKyAiLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uLCBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisKKyAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjwhRE9DVFlQRSBIVE1MIFBVQkxJQyBcIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOXCI+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aHRtbD4iKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxoZWFkPiIpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPG1ldGEgaHR0cC1lcXVpdj1cIkNvbnRlbnQtVHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLThcIj4iKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjx0aXRsZT4iICsgdGl0bGUgKyAiPC90aXRsZT4iKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjwhLS0gQ29weXJpZ2h0ICIgKyB5ZWFyICsgIiwgSUJNLCBBbGwgUmlnaHRzIFJlc2VydmVkLiAtLT4iKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjwvaGVhZD4iKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxib2R5PiIpOworCisgICAgICAgICAgICBwdy5wcmludGxuKCI8aDE+IiArIHRpdGxlICsgIjwvaDE+Iik7CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxoci8+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aDI+UmVtb3ZlZCBmcm9tICIgKyBvbGREYXRhLm5hbWUgKyI8L2gyPiIpOworICAgICAgICAgICAgaWYgKHJlbW92ZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIHByaW50UmVzdWx0cyhyZW1vdmVkLCBwdywgdHJ1ZSwgZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8cD4obm8gQVBJIHJlbW92ZWQpPC9wPiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aHIvPiIpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPGgyPkRlcHJlY2F0ZWQgb3IgT2Jzb2xldGVkIGluICIgKyBuZXdEYXRhLm5hbWUgKyAiPC9oMj4iKTsKKyAgICAgICAgICAgIGlmIChvYnNvbGV0ZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIHByaW50UmVzdWx0cyhvYnNvbGV0ZWQsIHB3LCB0cnVlLCBmYWxzZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjxwPihubyBBUEkgb2Jzb2xldGVkKTwvcD4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPGhyLz4iKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxoMj5DaGFuZ2VkIGluICIgKyBuZXdEYXRhLm5hbWUgKyAiIChvbGQsIG5ldyk8L2gyPiIpOworICAgICAgICAgICAgaWYgKGNoYW5nZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIHByaW50UmVzdWx0cyhjaGFuZ2VkLCBwdywgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjxwPihubyBBUEkgY2hhbmdlZCk8L3A+Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxoci8+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8aDI+UHJvbW90ZWQgdG8gc3RhYmxlIGluICIgKyBuZXdEYXRhLm5hbWUgKyAiPC9oMj4iKTsKKyAgICAgICAgICAgIGlmIChwcm9tb3RlZC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcHJpbnRSZXN1bHRzKHByb21vdGVkLCBwdywgdHJ1ZSwgZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8cD4obm8gQVBJIHByb21vdGVkKTwvcD4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPGhyLz4iKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxoMj5BZGRlZCBpbiAiICsgbmV3RGF0YS5uYW1lICsgIjwvaDI+Iik7CisgICAgICAgICAgICBpZiAoYWRkZWQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIHByaW50UmVzdWx0cyhhZGRlZCwgcHcsIHRydWUsIGZhbHNlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPHA+KG5vIEFQSSBhZGRlZCk8L3A+Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oIjxoci8+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8cD48aT48Zm9udCBzaXplPVwiLTFcIj4iICsgaW5mbyArICI8YnIvPiIgKyBjb3B5cmlnaHQgKyAiPC9mb250PjwvaT48L3A+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8L2JvZHk+Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKCI8L2h0bWw+Iik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdy5wcmludGxuKHRpdGxlKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKworICAgICAgICAgICAgcHcucHJpbnRsbigiPT09IFJlbW92ZWQgZnJvbSAiICsgb2xkRGF0YS5uYW1lICsgIiA9PT0iKTsKKyAgICAgICAgICAgIGlmIChyZW1vdmVkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBwcmludFJlc3VsdHMocmVtb3ZlZCwgcHcsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIihubyBBUEkgcmVtb3ZlZCkiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPT09IERlcHJlY2F0ZCBvciBPYnNvbGV0ZWQgaW4gIiArIG5ld0RhdGEubmFtZSArICIgPT09Iik7CisgICAgICAgICAgICBpZiAob2Jzb2xldGVkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBwcmludFJlc3VsdHMob2Jzb2xldGVkLCBwdywgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiKG5vIEFQSSBvYnNvbGV0ZWQpIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oIj09PSBDaGFuZ2VkIGluICIgKyBuZXdEYXRhLm5hbWUgKyAiIChvbGQsIG5ldykgPT09Iik7CisgICAgICAgICAgICBpZiAoY2hhbmdlZC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcHJpbnRSZXN1bHRzKGNoYW5nZWQsIHB3LCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIihubyBBUEkgY2hhbmdlZCkiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPT09IFByb21vdGVkIHRvIHN0YWJsZSBpbiAiICsgbmV3RGF0YS5uYW1lICsgIiA9PT0iKTsKKyAgICAgICAgICAgIGlmIChwcm9tb3RlZC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgcHJpbnRSZXN1bHRzKHByb21vdGVkLCBwdywgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiKG5vIEFQSSBwcm9tb3RlZCkiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigiPT09IEFkZGVkIGluICIgKyBuZXdEYXRhLm5hbWUgKyAiID09PSIpOworICAgICAgICAgICAgaWYgKGFkZGVkLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBwcmludFJlc3VsdHMoYWRkZWQsIHB3LCBmYWxzZSwgZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludGxuKCIobm8gQVBJIGFkZGVkKSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICBwdy5wcmludGxuKCI9PT09PT09PT09PT09PT09Iik7CisgICAgICAgICAgICBwdy5wcmludGxuKGluZm8pOworICAgICAgICAgICAgcHcucHJpbnRsbihjb3B5cmlnaHQpOworICAgICAgICB9CisgICAgICAgIHB3LmNsb3NlKCk7CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgcHJpbnRSZXN1bHRzKENvbGxlY3Rpb24gYywgUHJpbnRXcml0ZXIgcHcsIGJvb2xlYW4gaHRtbCwgYm9vbGVhbiBpc0NoYW5nZWRBUElzKSB7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBjLml0ZXJhdG9yKCk7CisgICAgICAgIFN0cmluZyBwYWNrID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGNsYXMgPSBudWxsOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIEFQSUluZm8gaW5mbyA9IChBUElJbmZvKWl0ZXIubmV4dCgpOworCisgICAgICAgICAgICBTdHJpbmcgcGFja2FnZU5hbWUgPSBpbmZvLmdldFBhY2thZ2VOYW1lKCk7CisgICAgICAgICAgICBpZiAoIXBhY2thZ2VOYW1lLmVxdWFscyhwYWNrKSkgeworICAgICAgICAgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjbGFzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjwvdWw+Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhY2sgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPC91bD4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjxoMz5QYWNrYWdlICIgKyBwYWNrYWdlTmFtZSArICI8L2gzPiIpOworICAgICAgICAgICAgICAgICAgICBwdy5wcmludCgiPHVsPiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChwYWNrICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCk7CisgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIlBhY2thZ2UgIiArIHBhY2thZ2VOYW1lICsgIjoiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigpOworCisgICAgICAgICAgICAgICAgcGFjayA9IHBhY2thZ2VOYW1lOworICAgICAgICAgICAgICAgIGNsYXMgPSBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWluZm8uaXNDbGFzcygpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNsYXNzTmFtZSA9IGluZm8uZ2V0Q2xhc3NOYW1lKCk7CisgICAgICAgICAgICAgICAgaWYgKCFjbGFzc05hbWUuZXF1YWxzKGNsYXMpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChodG1sKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2xhcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPC91bD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oY2xhc3NOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjx1bD4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oY2xhc3NOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjbGFzID0gY2xhc3NOYW1lOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgcHcucHJpbnQoIiAgICAiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGh0bWwpIHsKKyAgICAgICAgICAgICAgICBwdy5wcmludCgiPGxpPiIpOworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICBpZiAoaW5mbyBpbnN0YW5jZW9mIERlbHRhSW5mbykgeworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgRGVsdGFJbmZvIGRpbmZvID0gKERlbHRhSW5mbylpbmZvOworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgZGluZm8ucmVtb3ZlZC5wcmludChwdywgaXNDaGFuZ2VkQVBJcywgaHRtbCk7CisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCI8L2JyPiIpOworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgZGluZm8uYWRkZWQucHJpbnQocHcsIGlzQ2hhbmdlZEFQSXMsIGh0bWwpOworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGluZm8ucHJpbnQocHcsIGlzQ2hhbmdlZEFQSXMsIGh0bWwpOworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPC9saT4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgIGlmIChpbmZvIGluc3RhbmNlb2YgRGVsdGFJbmZvKSB7CisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBEZWx0YUluZm8gZGluZm8gPSAoRGVsdGFJbmZvKWluZm87CisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBkaW5mby5yZW1vdmVkLnByaW50bG4ocHcsIGlzQ2hhbmdlZEFQSXMsIGh0bWwpOworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgcHcucHJpbnQoIiAgICAtLT4gIik7CisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICBkaW5mby5hZGRlZC5wcmludGxuKHB3LCBpc0NoYW5nZWRBUElzLCBodG1sKTsKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbmZvLnByaW50bG4ocHcsIGlzQ2hhbmdlZEFQSXMsIGh0bWwpOworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaHRtbCkgeworICAgICAgICAgICAgaWYgKGNsYXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIjwvdWw+Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocGFjayAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigiPC91bD4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdy5wcmludGxuKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgVHJlZVNldCBzdHJpcEFuZFJlc29ydChUcmVlU2V0IHQpIHsKKyAgICAgICAgc3RyaXBDbGFzc0luZm8odCk7CisgICAgICAgIFRyZWVTZXQgciA9IG5ldyBUcmVlU2V0KEFQSUluZm8uY2xhc3NGaXJzdENvbXBhcmF0b3IoKSk7CisgICAgICAgIHIuYWRkQWxsKHQpOworICAgICAgICByZXR1cm4gcjsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHN0cmlwQ2xhc3NJbmZvKENvbGxlY3Rpb24gYykgeworICAgICAgICAvLyBjIGlzIHNvcnRlZCB3aXRoIGNsYXNzIGluZm8gZmlyc3QKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IGMuaXRlcmF0b3IoKTsKKyAgICAgICAgU3RyaW5nIGNuYW1lID0gbnVsbDsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBBUElJbmZvIGluZm8gPSAoQVBJSW5mbylpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIFN0cmluZyBjbGFzc05hbWUgPSBpbmZvLmdldENsYXNzTmFtZSgpOworICAgICAgICAgICAgaWYgKGNuYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoY25hbWUuZXF1YWxzKGNsYXNzTmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaXRlci5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNuYW1lID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpbmZvLmlzQ2xhc3MoKSkgeworICAgICAgICAgICAgICAgIGNuYW1lID0gaW5mby5nZXROYW1lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9Td2F0RGVwcmVjYXRlZC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvU3dhdERlcHJlY2F0ZWQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGFhZWEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2RvY3MvU3dhdERlcHJlY2F0ZWQuamF2YQpAQCAtMCwwICsxLDMyOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuZG9jczsKKworaW1wb3J0IGphdmEuaW8uKjsKKworcHVibGljIGNsYXNzIFN3YXREZXByZWNhdGVkIHsKKyAgICBwcml2YXRlIEZpbGUgc3JjRmlsZTsKKyAgICBwcml2YXRlIEZpbGUgZHN0RmlsZTsKKyAgICBwcml2YXRlIGludCBtYXhMZW5ndGggPSA4NTsKKyAgICBwcml2YXRlIFN0cmluZyBzcmNQcmVmaXg7CisgICAgcHJpdmF0ZSBTdHJpbmcgZHN0UHJlZml4OworICAgIHByaXZhdGUgU3RyaW5nIHNyY1RhZzsKKyAgICBwcml2YXRlIFN0cmluZyB0cmdUYWc7CisgICAgcHJpdmF0ZSBib29sZWFuIG92ZXJ3cml0ZTsKKyAgICBwcml2YXRlIGludCB2ZXJib3NpdHk7CisgICAgcHJpdmF0ZSBpbnQgY2M7IC8vIGNoYW5nZWQgZmlsZSBjb3VudAorICAgIHByaXZhdGUgYm9vbGVhbiBpblBsYWNlOworCisgICAgcHJpdmF0ZSBQcmludFdyaXRlciBwdyA9IG5ldyBQcmludFdyaXRlcihTeXN0ZW0ub3V0KTsKKworICAgIHByaXZhdGUgc3RhdGljIEZpbGVuYW1lRmlsdGVyIGZmID0gbmV3IEZpbGVuYW1lRmlsdGVyKCkgeworICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0KEZpbGUgZGlyLCBTdHJpbmcgbmFtZSkgeworICAgICAgICAgICAgICAgIHJldHVybiAobmV3IEZpbGUoZGlyLCBuYW1lKS5pc0RpcmVjdG9yeSgpICYmICEiQ1ZTIi5lcXVhbHMobmFtZSkpIHx8CisgICAgICAgICAgICAgICAgICAgICghbmFtZS5lcXVhbHMoIlN3YXREZXByZWNhdGVkLmphdmEiKSAmJiBuYW1lLmVuZHNXaXRoKCIuamF2YSIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgU3RyaW5nIHNyYyA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgidXNlci5kaXIiKTsKKyAgICAgICAgU3RyaW5nIGRzdCA9IHNyYzsKKyAgICAgICAgYm9vbGVhbiBkZXAgPSB0cnVlOworICAgICAgICBib29sZWFuIG92ciA9IGZhbHNlOworICAgICAgICBpbnQgdnJiID0gMTsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZyBhcmcgPSBhcmdzW2ldLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICBpZiAoYXJnLmNoYXJBdCgwKSA9PSAnLScpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXJnLmVxdWFscygiLXNyYyIpKSB7CisgICAgICAgICAgICAgICAgICAgIHNyYyA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnLmVxdWFscygiLWRzdCIpKSB7CisgICAgICAgICAgICAgICAgICAgIGRzdCA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnLmVxdWFscygiLWRlcCIpKSB7CisgICAgICAgICAgICAgICAgICAgIGRlcCA9IHRydWU7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChhcmcuZXF1YWxzKCItcHJvdiIpKSB7CisgICAgICAgICAgICAgICAgICAgIGRlcCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChhcmcuZXF1YWxzKCItb3ZlcndyaXRlIikpIHsKKyAgICAgICAgICAgICAgICAgICAgb3ZyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnLmVxdWFscygiLXNpbGVudCIpKSB7IC8vIG5vIG91dHB1dAorICAgICAgICAgICAgICAgICAgICB2cmIgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChhcmcuZXF1YWxzKCItcXVpZXQiKSkgeyAvLyBvdXRwdXQgcGFyYW1ldGVycyBhbmQgY291bnQgb2YgY2hhbmdlZCBmaWxlcyAoZGVmYXVsdCkKKyAgICAgICAgICAgICAgICAgICAgdnJiID0gMTsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFyZy5lcXVhbHMoIi12ZXJib3NlIikpIHsgLy8gb3V0cHV0IG5hbWVzIG9mIG1vZGlmaWVkIGZpbGVzCisgICAgICAgICAgICAgICAgICAgIHZyYiA9IDI7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChhcmcuZXF1YWxzKCItbm9pc3kiKSkgeyAvLyBvdXRwdXQgbmFtZXMgb2YgZmlsZXMgbm90IG1vZGlmaWVkCisgICAgICAgICAgICAgICAgICAgIHZyYiA9IDM7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChhcmcuZXF1YWxzKCItY29weWRlYnVnIikpIHsgLy8gb3V0cHV0IGNvcHlyaWdodCBkZWJ1Z2dpbmcKKyAgICAgICAgICAgICAgICAgICAgdnJiID0gNDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnLmVxdWFscygiLWRlYnVnIikpIHsgLy8gb3V0cHV0IGFsbCBkZWJ1Z2dpbmcKKyAgICAgICAgICAgICAgICAgICAgdnJiID0gNTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBuZXcgU3dhdERlcHJlY2F0ZWQoc3JjLCBkc3QsIGRlcCwgb3ZyLCB2cmIpLnJ1bigpOworICAgIH0KKworICAgIHB1YmxpYyBTd2F0RGVwcmVjYXRlZChTdHJpbmcgc3JjLCBTdHJpbmcgZHN0LCBib29sZWFuIGRlcCwgYm9vbGVhbiBvdmVyd3JpdGUsIGludCB2ZXJib3NpdHkpIHsKKyAgICAgICAgdGhpcy5zcmNGaWxlID0gbmV3IEZpbGUoc3JjKTsKKyAgICAgICAgdGhpcy5kc3RGaWxlID0gbmV3IEZpbGUoZHN0KTsKKyAgICAgICAgdGhpcy5vdmVyd3JpdGUgPSBvdmVyd3JpdGU7CisgICAgICAgIHRoaXMudmVyYm9zaXR5ID0gdmVyYm9zaXR5OworCisgICAgICAgIHRoaXMuc3JjVGFnID0gIkBkZXByZWNhdGVkIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4iOworICAgICAgICB0aGlzLnRyZ1RhZyA9ICJAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4iOworICAgICAgICBpZiAoIWRlcCkgeworICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBzcmNUYWc7CisgICAgICAgICAgICBzcmNUYWcgPSB0cmdUYWc7CisgICAgICAgICAgICB0cmdUYWcgPSB0ZW1wOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0aGlzLnNyY1ByZWZpeCA9IHNyY0ZpbGUuZ2V0Q2Fub25pY2FsUGF0aCgpOworICAgICAgICAgICAgdGhpcy5kc3RQcmVmaXggPSBkc3RGaWxlLmdldENhbm9uaWNhbFBhdGgoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgUnVudGltZUV4Y2VwdGlvbiByZSA9IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIHJlLmluaXRDYXVzZShlKTsKKyAgICAgICAgICAgIHRocm93IHJlOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5pblBsYWNlID0gc3JjUHJlZml4LmVxdWFscyhkc3RQcmVmaXgpOworICAgICAgICB0aGlzLmNjID0gMDsKKworICAgICAgICBpZiAodmVyYm9zaXR5ID49IDEpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oInJlcGxhY2luZyAnIiArIHNyY1RhZyArICInIik7CisgICAgICAgICAgICBwdy5wcmludGxuKCIgICAgIHdpdGggJyIgKyB0cmdUYWcgKyAiJyIpOworICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgcHcucHJpbnRsbigiICAgICBzb3VyY2U6ICciICsgc3JjUHJlZml4ICsgIiciKTsKKyAgICAgICAgICAgIHB3LnByaW50bG4oImRlc3RpbmF0aW9uOiAnIiArIGRzdFByZWZpeCArICInIik7CisgICAgICAgICAgICBwdy5wcmludGxuKCIgIG92ZXJ3cml0ZTogIiArIG92ZXJ3cml0ZSk7CisgICAgICAgICAgICBwdy5wcmludGxuKCIgIHZlcmJvc2l0eTogIiArIHZlcmJvc2l0eSk7CisgICAgICAgICAgICBwdy5mbHVzaCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcnVuKCkgeworICAgICAgICBpZiAoIXNyY0ZpbGUuZXhpc3RzKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJmaWxlICIgKyBzcmNGaWxlLmdldFBhdGgoKSArICIgZG9lcyBub3QgZXhpc3QuIik7CisgICAgICAgIH0KKyAgICAgICAgZG9MaXN0KHNyY0ZpbGUpOworICAgICAgICBpZiAodmVyYm9zaXR5ID49IDEpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oImNoYW5nZWQgIiArIGNjICsgIiBmaWxlKHMpIik7CisgICAgICAgICAgICBwdy5mbHVzaCgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZG9MaXN0KEZpbGUgZmlsZSkgeworICAgICAgICBTdHJpbmdbXSBmaWxlbmFtZXMgPSBmaWxlLmxpc3QoZmYpOworICAgICAgICBpZiAodmVyYm9zaXR5ID49IDUpIHsKKyAgICAgICAgICAgIHB3LnByaW50bG4oZmlsZS5nZXRQYXRoKCkpOworICAgICAgICAgICAgZHVtcExpc3QoZmlsZW5hbWVzKTsKKyAgICAgICAgICAgIHB3LmZsdXNoKCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKGZpbGUsIGZpbGVuYW1lc1tpXSk7CisgICAgICAgICAgICBpZiAoZi5pc0RpcmVjdG9yeSgpKSB7CisgICAgICAgICAgICAgICAgZG9MaXN0KGYpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9jZXNzRmlsZShmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHByb2Nlc3NGaWxlKEZpbGUgaW5GaWxlKSB7CisgICAgICAgIEZpbGUgYmFrRmlsZSA9IG51bGw7CisgICAgICAgIEZpbGUgb2xkRmlsZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgaW5QYXRoID0gaW5GaWxlLmdldENhbm9uaWNhbFBhdGgoKTsKKyAgICAgICAgICAgIGlmICh2ZXJib3NpdHkgPj0gNSkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oInByb2Nlc3NGaWxlOiAiICsgaW5QYXRoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIG91dFBhdGggPSBkc3RQcmVmaXggKyBpblBhdGguc3Vic3RyaW5nKHNyY1ByZWZpeC5sZW5ndGgoKSk7CisgICAgICAgICAgICBGaWxlIG91dEZpbGUgPSBuZXcgRmlsZShvdXRQYXRoKTsKKworICAgICAgICAgICAgRmlsZSB0bXBGaWxlID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChvdXRGaWxlLmV4aXN0cygpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFvdmVyd3JpdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIm5vIHBlcm1pc3Npb24gdG8gb3ZlcndyaXRlIGZpbGU6ICIgKyBvdXRQYXRoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBiYWtGaWxlID0gb3V0RmlsZTsKKyAgICAgICAgICAgICAgICAgICAgdG1wRmlsZSA9IEZpbGUuY3JlYXRlVGVtcEZpbGUoaW5GaWxlLmdldE5hbWUoKSwgbnVsbCwgaW5GaWxlLmdldFBhcmVudEZpbGUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0bXBGaWxlID0gb3V0RmlsZTsKKyAgICAgICAgICAgICAgICBGaWxlIHBhcmVudCA9IHRtcEZpbGUuZ2V0UGFyZW50RmlsZSgpOworICAgICAgICAgICAgICAgIHBhcmVudC5ta2RpcnMoKTsKKyAgICAgICAgICAgICAgICB0bXBGaWxlLmNyZWF0ZU5ld0ZpbGUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIHRtcFBhdGggPSB0bXBGaWxlLmdldFBhdGgoKTsKKyAgICAgICAgICAgIGlmICh2ZXJib3NpdHkgPj0gNSkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oInRtcEZpbGU6ICIgKyB0bXBQYXRoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBuZXcgRmlsZUlucHV0U3RyZWFtKGluRmlsZSk7CisgICAgICAgICAgICBPdXRwdXRTdHJlYW0gb3MgPSBuZXcgRmlsZU91dHB1dFN0cmVhbSh0bXBGaWxlKTsKKworICAgICAgICAgICAgUHJpbnRTdHJlYW0gcHMgPSBuZXcgUHJpbnRTdHJlYW0ob3MpOworICAgICAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnIgPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IElucHV0U3RyZWFtUmVhZGVyKGlzKSk7CisKKyAgICAgICAgICAgIFN0cmluZyBsaW5lOworICAgICAgICAgICAgaW50IG4gPSAwOworICAgICAgICAgICAgaW50IHRjID0gMDsKKyAgICAgICAgICAgIGJvb2xlYW4gZGVidWcgPSBmYWxzZTsKKyAgICAgICAgICAgIHdoaWxlIChudWxsICE9IChsaW5lID0gYnIucmVhZExpbmUoKSkpIHsKKyAgICAgICAgICAgICAgICAvLyBpbnQgdGVtcCA9IGxpbmUuaW5kZXhPZigiQGRlcHJlY2F0ZWQiKTsKKyAgICAgICAgICAgICAgICBpbnQgaXggPSBsaW5lLmluZGV4T2Yoc3JjVGFnKTsKKy8vICAgICAgICAgICAgICAgICBpZiAodGVtcCAhPSAtMSAmJiBpeCA9PSAtMSkgeworLy8gICAgICAgICAgICAgICAgICAgICBpZiAoZGVidWcgPT0gZmFsc2UpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnID0gdHJ1ZTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oImZpbGU6ICIgKyBuYW1lKTsKKy8vICAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCJbIiArIG4gKyAiXSAiICsgbGluZSk7CisvLyAgICAgICAgICAgICAgICAgICAgIHB3LmZsdXNoKCk7CisvLyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpeCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zaXR5ID49IDUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIlsiICsgbiArICJdICIgKyBsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN1YnN0cmluZygwLGl4KSArIHRyZ1RhZzsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICsrdGM7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChuIDwgMjApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc3dhdCBjb3B5cmlnaHRzIHdoaWxlIHdlJ3JlIGF0IGl0CisgICAgICAgICAgICAgICAgICAgIGl4ID0gbGluZS5pbmRleE9mKCJvcHlyaWdodCIpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBubGluZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2l0eSA9PSA0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIlsiICsgbiArICJdICIgKyBsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXggPSBsaW5lLmluZGV4T2YoIi0yMDAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBpeCkgKyAiLTIwMDYiICsgbGluZS5zdWJzdHJpbmcoaXgrNSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpeCA9IGxpbmUuaW5kZXhPZigiLSAyMDAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBpeCkgKyAiLTIwMDYiICsgbGluZS5zdWJzdHJpbmcoaXgrNik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpeCA9IGxpbmUuaW5kZXhPZigiLTE5OSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpeCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBubGluZSA9IGxpbmUuc3Vic3RyaW5nKDAsIGl4KSArICItMjAwNiIgKyBsaW5lLnN1YnN0cmluZyhpeCs1KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl4ID0gbGluZS5pbmRleE9mKCIyMDAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBpeCkgKyAiMjAwNiIgKyBsaW5lLnN1YnN0cmluZyhpeCs0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl4ID0gbGluZS5pbmRleE9mKCIxOTkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmxpbmUgPSBsaW5lLnN1YnN0cmluZygwLCBpeCkgKyAiMjAwNiIgKyBsaW5lLnN1YnN0cmluZyhpeCs0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoZmFsc2UpOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmxpbmUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NpdHkgPj0gNCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCIgIC0tPiAiICsgbmxpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gbmxpbmU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHMucHJpbnRsbihsaW5lKTsKKyAgICAgICAgICAgICAgICArK247CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcy5mbHVzaCgpOworICAgICAgICAgICAgaXMuY2xvc2UoKTsKKyAgICAgICAgICAgIG9zLmNsb3NlKCk7CisKKyAgICAgICAgICAgIGlmICh0YyA9PSAwKSB7IC8vIG5vdGhpbmcgY2hhbmdlZCwgZm9yZ2V0IHRoaXMgZmlsZQorICAgICAgICAgICAgICAgIGlmICh2ZXJib3NpdHkgPj0gMykgeworICAgICAgICAgICAgICAgICAgICBwdy5wcmludGxuKCJubyBjaGFuZ2VzIGluIGZpbGU6ICIgKyBpblBhdGgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXRtcEZpbGUuZGVsZXRlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oInVuYWJsZSB0byBkZWxldGUgdW5uZWVkZWQgdGVtcG9yYXJ5IGZpbGU6ICIgKyB0bXBQYXRoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChiYWtGaWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoYmFrRmlsZS5leGlzdHMoKSkgeworICAgICAgICAgICAgICAgICAgICBiYWtGaWxlLmRlbGV0ZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXRtcEZpbGUucmVuYW1lVG8oYmFrRmlsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcHcucHJpbnRsbigid2FybmluZzogY291bGRuJ3QgcmVuYW1lIHRlbXAgZmlsZSB0bzogIiArIG91dFBhdGgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgb3V0RmlsZS5zZXRMYXN0TW9kaWZpZWQoaW5GaWxlLmxhc3RNb2RpZmllZCgpKTsKKworICAgICAgICAgICAgaWYgKHZlcmJvc2l0eSA+PSAyKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbihpblBhdGgpOworICAgICAgICAgICAgICAgIHB3LmZsdXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFJ1bnRpbWVFeGNlcHRpb24gcmUgPSBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICByZS5pbml0Q2F1c2UoZSk7CisgICAgICAgICAgICB0aHJvdyByZTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIHB3LmZsdXNoKCk7CisgICAgICAgIH0KKworICAgICAgICArK2NjOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGR1bXBMaXN0KFN0cmluZ1tdIG5hbWVzKSB7CisgICAgICAgIGlmIChuYW1lcyA9PSBudWxsKSB7CisgICAgICAgICAgICBwdy5wcmludCgibnVsbCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHcucHJpbnQoInsiKTsKKyAgICAgICAgICAgIGludCBsYyA9IDA7CisgICAgICAgICAgICBpZiAobmFtZXMubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIHB3LnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICBwdy5wcmludCgiICAgICIpOworICAgICAgICAgICAgICAgIGxjID0gNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IG5hbWVzW2ldOworICAgICAgICAgICAgICAgIGludCBubCA9IG5hbWUubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgaWYgKGxjICsgbmwgPiBtYXhMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgICAgICAgICBwdy5wcmludCgiICAgICIpOworICAgICAgICAgICAgICAgICAgICBsYyA9IDQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHB3LnByaW50KG5hbWUpOworICAgICAgICAgICAgICAgIHB3LnByaW50KCIsICIpOworICAgICAgICAgICAgICAgIGxjICs9IG5sICsgMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChuYW1lcy5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICAgICAgcHcucHJpbnRsbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHcucHJpbnQoIn0gIik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajI4LmFwaS5neiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMjguYXBpLmd6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5NWY1MmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajI4LmFwaS5negpAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo3NzJhMWU1MTk1YmJkY2QyYWM1ZmRmNzE1M2FmNzFjYTBhOWRkOTM0MTE4YmZiZGIxN2E0Mzg4YzRlM2FmNmRhCitzaXplIDE5NTY2CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajMwLmFwaS5neiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzAuYXBpLmd6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5OWRiMWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajMwLmFwaS5negpAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjpkNzlmY2FjMTdlMzI1YTAxOWE1MmZmZGZiOGUxZmRkOGVjYTQwNzlmYWYwNTE0OWE4NzEwNzUxZDc3OTM0YTczCitzaXplIDIwNjcyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajMyLmFwaS5neiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzIuYXBpLmd6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwOTljMDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajMyLmFwaS5negpAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1Njo1MzVlMDVmNjYyNGYzNzJmZDI0MWIxZjJlNWQ0ZmViOTBjY2ZmNWZkYWY3MzJlYjBkZjUyYWNhYzlmNWQxZjI5CitzaXplIDIxNDE2CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajM0LmFwaS5neiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQuYXBpLmd6Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlYzI3ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajM0LmFwaS5negpAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjpmODA3ODQzYWM1ZmI4YjMyYTliN2YxM2E4OTc3OWQzYWE3MTI1MjFhOWMzNWQyM2MyMzUyYmM3ODM1ZWU5MDUwCitzaXplIDIzMTAzCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajM0MS5hcGkuZ3ogYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajM0MS5hcGkuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQ3MjYxNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQxLmFwaS5negpAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjowNDRmMjQ4ODNmNTUzNjFiZjRkNzhlNjMxOTFmMTYwMGQ2NDQ1M2I3NDA1ZjkzOTc4ZmJlNjNhNTcyMmZlMWIzCitzaXplIDIzMTA2CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajM0Mi5hcGkuZ3ogYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajM0Mi5hcGkuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdjOTc0MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQyLmFwaS5negpAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjpmNzZmNTE0ZmQxMzQ0YTQyMTZiMjQwMzQ1ZGJmMWU5MzYyNWU3YTNjOWY0MGM5ZTc1OTM5OTU0YzE5NTI2NDYyCitzaXplIDIzMTM0CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajM0My5hcGkuZ3ogYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvZG9jcy9pY3U0ajM0My5hcGkuZ3oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDBkYWQ4ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9kb2NzL2ljdTRqMzQzLmFwaS5negpAQCAtMCwwICsxLDMgQEAKK3ZlcnNpb24gaHR0cHM6Ly9naXQtbGZzLmdpdGh1Yi5jb20vc3BlYy92MQorb2lkIHNoYTI1NjozYWY2MGE1NWI5Y2RjOTQzOTUyODMyZjdhMTQyZWFlYWMyMWM1MWQ0YjE2ZmIyY2Y5NzcyNDQ1NTMyNDhmZDA4CitzaXplIDIzMTMyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL0lNRVRlc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvSU1FVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2MTIzNTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL0lNRVRlc3QuamF2YQpAQCAtMCwwICsxLDM1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lOworCitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworaW1wb3J0IGphdmF4LnN3aW5nLkJveDsKK2ltcG9ydCBqYXZheC5zd2luZy5KRnJhbWU7CitpbXBvcnQgamF2YXguc3dpbmcuSlRleHRGaWVsZDsKK2ltcG9ydCBqYXZheC5zd2luZy5XaW5kb3dDb25zdGFudHM7CisKK3B1YmxpYyBjbGFzcyBJTUVUZXN0IHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgU3RyaW5nIHNhbXBsZVRleHQgPSAiVGhpcyBpcyBhIHNhbXBsZVxudG8gcHV0IGludG8gdGhlIGZpZWxkLiI7CisgICAgUmVjdGFuZ2xlIGxvYyA9IG5ldyBSZWN0YW5nbGUoMTAwLCAxMDAsIDMwMCwgMzAwKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7ICsraSkgeworICAgICAgICBKRnJhbWUgamYgPSBuZXcgSkZyYW1lKCJUZXN0IFdpbmRvdyAiICsgaSk7CisgICAgICAgIGpmLnNldERlZmF1bHRDbG9zZU9wZXJhdGlvbihXaW5kb3dDb25zdGFudHMuRElTUE9TRV9PTl9DTE9TRSk7CisgICAgICAgIEJveCBib3ggPSBCb3guY3JlYXRlVmVydGljYWxCb3goKTsKKyAgICAgICAgYm94LmFkZChuZXcgSlRleHRGaWVsZChzYW1wbGVUZXh0KSk7CisgICAgICAgIGJveC5hZGQobmV3IEpUZXh0RmllbGQoc2FtcGxlVGV4dCkpOworICAgICAgICBqZi5nZXRDb250ZW50UGFuZSgpLmFkZChib3gpOworICAgICAgICBqZi5zZXRCb3VuZHMobG9jKTsKKyAgICAgICAgCisgICAgICAgIGpmLnNldFZpc2libGUodHJ1ZSk7CisgICAgICAgIAorICAgICAgICBsb2MueCArPSA1MDsKKyAgICAgICAgbG9jLnkgKz0gNTA7CisgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvQmVuZ2FsaUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9CZW5nYWxpSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWViYWE0MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvQmVuZ2FsaUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCkBAIC0wLDAgKzEsMjE2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBCZW5nYWxpSW5wdXRNZXRob2REZXNjcmlwdG9yIGV4dGVuZHMgSW5kaWNJTURlc2NyaXB0b3IKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgQkVOR0FMSSA9IG5ldyBMb2NhbGUoImJuIiwgIklOIik7CisKKyAgICBwdWJsaWMgQmVuZ2FsaUlucHV0TWV0aG9kRGVzY3JpcHRvcigpIHsKKyAgICBzdXBlcihCRU5HQUxJLCAiQmVuZ2FsaSIpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10ga2V5Ym9hcmRNYXA7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdW10gc3Vic3RpdHV0aW9uVGFibGU7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGpvaW5XaXRoTnVrdGE7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIG51a3RhRm9ybTsKKworICAgIHByb3RlY3RlZCBJbmRpY0lucHV0TWV0aG9kSW1wbCBnZXRJbXBsKCkgIHsKKyAgICBpZiAoa2V5Ym9hcmRNYXAgPT0gbnVsbCkgeworICAgICAgICBrZXlib2FyZE1hcCA9IG5ldyBjaGFyW10geworICAgICAgICAvKiAwMCAqLyAnXHUwMDAwJywKKyAgICAgICAgLyogMDEgKi8gJ1x1MDAwMScsCisgICAgICAgIC8qIDAyICovICdcdTAwMDInLAorICAgICAgICAvKiAwMyAqLyAnXHUwMDAzJywKKyAgICAgICAgLyogMDQgKi8gJ1x1MDAwNCcsCisgICAgICAgIC8qIDA1ICovICdcdTAwMDUnLAorICAgICAgICAvKiAwNiAqLyAnXHUwMDA2JywKKyAgICAgICAgLyogMDcgKi8gJ1x1MDAwNycsCisgICAgICAgIC8qIDA4ICovICdcdTAwMDgnLAorICAgICAgICAvKiAwOSAqLyAnXHUwMDA5JywKKyAgICAgICAgLyogMEEgKi8gJ1wwMTInLAorICAgICAgICAvKiAwQiAqLyAnXHUwMDBCJywKKyAgICAgICAgLyogMEMgKi8gJ1x1MDAwQycsCisgICAgICAgIC8qIDBEICovICdcMDE1JywKKyAgICAgICAgLyogMEUgKi8gJ1x1MDAwRScsCisgICAgICAgIC8qIDBGICovICdcdTAwMEYnLAorICAgICAgICAvKiAxMCAqLyAnXHUwMDEwJywKKyAgICAgICAgLyogMTEgKi8gJ1x1MDAxMScsCisgICAgICAgIC8qIDEyICovICdcdTAwMTInLAorICAgICAgICAvKiAxMyAqLyAnXHUwMDEzJywKKyAgICAgICAgLyogMTQgKi8gJ1x1MDAxNCcsCisgICAgICAgIC8qIDE1ICovICdcdTAwMTUnLAorICAgICAgICAvKiAxNiAqLyAnXHUwMDE2JywKKyAgICAgICAgLyogMTcgKi8gJ1x1MDAxNycsCisgICAgICAgIC8qIDE4ICovICdcdTAwMTgnLAorICAgICAgICAvKiAxOSAqLyAnXHUwMDE5JywKKyAgICAgICAgLyogMUEgKi8gJ1x1MDAxQScsCisgICAgICAgIC8qIDFCICovICdcdTAwMUInLAorICAgICAgICAvKiAxQyAqLyAnXHUwMDFDJywKKyAgICAgICAgLyogMUQgKi8gJ1x1MDAxRCcsCisgICAgICAgIC8qIDFFICovICdcdTAwMUUnLAorICAgICAgICAvKiAxRiAqLyAnXHUwMDFGJywKKyAgICAgICAgLyogMjAgKi8gJ1x1MDAyMCcsCisgICAgICAgIC8qIDIxICovICdcdUZGRkYnLCAgIC8vICchJworICAgICAgICAvKiAyMiAqLyAnXHUwOUEwJywgICAvLyAnIicKKyAgICAgICAgLyogMjMgKi8gJ1x1RkYwMCcsICAgLy8gJyMnCisgICAgICAgIC8qIDI0ICovICdcdUZGMDEnLCAgIC8vICckJworICAgICAgICAvKiAyNSAqLyAnXHVGRjAyJywgICAvLyAnJScKKyAgICAgICAgLyogMjYgKi8gJ1x1RkYwNCcsICAgLy8gJyYnCisgICAgICAgIC8qIDI3ICovICdcdTA5OUYnLCAgIC8vICcnJworICAgICAgICAvKiAyOCAqLyAnXHUwMDI4JywgICAvLyAnKCcKKyAgICAgICAgLyogMjkgKi8gJ1x1MDAyOScsICAgLy8gJyknCisgICAgICAgIC8qIDJBICovICdcdUZGMDUnLCAgIC8vICcqJworICAgICAgICAvKiAyQiAqLyAnXHUwOThCJywgICAvLyAnKycKKyAgICAgICAgLyogMkMgKi8gJ1x1MDAyQycsICAgLy8gJywnCisgICAgICAgIC8qIDJEICovICdcdTAwMkQnLCAgIC8vICctJworICAgICAgICAvKiAyRSAqLyAnXHUwMDJFJywgICAvLyAnLicKKyAgICAgICAgLyogMkYgKi8gJ1x1MDlERicsICAgLy8gJy8nCisgICAgICAgIC8qIDMwICovICdcdTA5RTYnLCAgIC8vICcwJworICAgICAgICAvKiAzMSAqLyAnXHUwOUU3JywgICAvLyAnMScKKyAgICAgICAgLyogMzIgKi8gJ1x1MDlFOCcsICAgLy8gJzInCisgICAgICAgIC8qIDMzICovICdcdTA5RTknLCAgIC8vICczJworICAgICAgICAvKiAzNCAqLyAnXHUwOUVBJywgICAvLyAnNCcKKyAgICAgICAgLyogMzUgKi8gJ1x1MDlFQicsICAgLy8gJzUnCisgICAgICAgIC8qIDM2ICovICdcdTA5RUMnLCAgIC8vICc2JworICAgICAgICAvKiAzNyAqLyAnXHUwOUVEJywgICAvLyAnNycKKyAgICAgICAgLyogMzggKi8gJ1x1MDlFRScsICAgLy8gJzgnCisgICAgICAgIC8qIDM5ICovICdcdTA5RUYnLCAgIC8vICc5JworICAgICAgICAvKiAzQSAqLyAnXHUwOTlCJywgICAvLyAnOicKKyAgICAgICAgLyogM0IgKi8gJ1x1MDk5QScsICAgLy8gJzsnCisgICAgICAgIC8qIDNDICovICdcdTA5QjcnLCAgIC8vICc8JworICAgICAgICAvKiAzRCAqLyAnXHUwOUMzJywgICAvLyAnPScKKyAgICAgICAgLyogM0UgKi8gJ1x1MDk2NCcsICAgLy8gJz4nICAoRGV2YW5hZ2FyaSBkYW5kYSkKKyAgICAgICAgLyogM0YgKi8gJ1x1MDlBRicsICAgLy8gJz8nCisgICAgICAgIC8qIDQwICovICdcdUZGRkYnLCAgIC8vICdAJworICAgICAgICAvKiA0MSAqLyAnXHUwOTkzJywgICAvLyAnQScKKyAgICAgICAgLyogNDIgKi8gJ1x1RkZGRicsICAgLy8gJ0InCisgICAgICAgIC8qIDQzICovICdcdTA5QTMnLCAgIC8vICdDJworICAgICAgICAvKiA0NCAqLyAnXHUwOTg1JywgICAvLyAnRCcKKyAgICAgICAgLyogNDUgKi8gJ1x1MDk4NicsICAgLy8gJ0UnCisgICAgICAgIC8qIDQ2ICovICdcdTA5ODcnLCAgIC8vICdGJworICAgICAgICAvKiA0NyAqLyAnXHUwOTg5JywgICAvLyAnRycKKyAgICAgICAgLyogNDggKi8gJ1x1MDlBQicsICAgLy8gJ0gnCisgICAgICAgIC8qIDQ5ICovICdcdTA5OTgnLCAgIC8vICdJJworICAgICAgICAvKiA0QSAqLyAnXHVGRkZGJywgICAvLyAnSicKKyAgICAgICAgLyogNEIgKi8gJ1x1MDk5NicsICAgLy8gJ0snCisgICAgICAgIC8qIDRDICovICdcdTA5QTUnLCAgIC8vICdMJworICAgICAgICAvKiA0RCAqLyAnXHUwOUI2JywgICAvLyAnTScKKyAgICAgICAgLyogNEUgKi8gJ1x1RkZGRicsICAgLy8gJ04nCisgICAgICAgIC8qIDRGICovICdcdTA5QTcnLCAgIC8vICdPJworICAgICAgICAvKiA1MCAqLyAnXHUwOTlEJywgICAvLyAnUCcKKyAgICAgICAgLyogNTEgKi8gJ1x1MDk5NCcsICAgLy8gJ1EnCisgICAgICAgIC8qIDUyICovICdcdTA5ODgnLCAgIC8vICdSJworICAgICAgICAvKiA1MyAqLyAnXHUwOThGJywgICAvLyAnUycKKyAgICAgICAgLyogNTQgKi8gJ1x1MDk4QScsICAgLy8gJ1QnCisgICAgICAgIC8qIDU1ICovICdcdTA5OTknLCAgIC8vICdVJworICAgICAgICAvKiA1NiAqLyAnXHVGRkZGJywgICAvLyAnVicKKyAgICAgICAgLyogNTcgKi8gJ1x1MDk5MCcsICAgLy8gJ1cnCisgICAgICAgIC8qIDU4ICovICdcdTA5ODEnLCAgIC8vICdYJworICAgICAgICAvKiA1OSAqLyAnXHUwOUFEJywgICAvLyAnWScKKyAgICAgICAgLyogNUEgKi8gJ1x1RkZGRicsICAgLy8gJ1onCisgICAgICAgIC8qIDVCICovICdcdTA5QTEnLCAgIC8vICdbJworICAgICAgICAvKiA1QyAqLyAnXHVGRkZGJywgICAvLyAnXCcKKyAgICAgICAgLyogNUQgKi8gJ1x1MDlCQycsICAgLy8gJ10nCisgICAgICAgIC8qIDVFICovICdcdUZGMDMnLCAgIC8vICdeJworICAgICAgICAvKiA1RiAqLyAnXHUwOTgzJywgICAvLyAnXycKKyAgICAgICAgLyogNjAgKi8gJ1x1RkZGRicsICAgLy8gJ2AnCisgICAgICAgIC8qIDYxICovICdcdTA5Q0InLCAgIC8vICdhJworICAgICAgICAvKiA2MiAqLyAnXHUwOUFDJywgICAvLyAnYicgKHRoaXMgaXMgYSBCQSBpbnN0ZWFkIG9mIGEgVkEpCisgICAgICAgIC8qIDYzICovICdcdTA5QUUnLCAgIC8vICdjJworICAgICAgICAvKiA2NCAqLyAnXHUwOUNEJywgICAvLyAnZCcKKyAgICAgICAgLyogNjUgKi8gJ1x1MDlCRScsICAgLy8gJ2UnCisgICAgICAgIC8qIDY2ICovICdcdTA5QkYnLCAgIC8vICdmJworICAgICAgICAvKiA2NyAqLyAnXHUwOUMxJywgICAvLyAnZycKKyAgICAgICAgLyogNjggKi8gJ1x1MDlBQScsICAgLy8gJ2gnCisgICAgICAgIC8qIDY5ICovICdcdTA5OTcnLCAgIC8vICdpJworICAgICAgICAvKiA2QSAqLyAnXHUwOUIwJywgICAvLyAnaicKKyAgICAgICAgLyogNkIgKi8gJ1x1MDk5NScsICAgLy8gJ2snCisgICAgICAgIC8qIDZDICovICdcdTA5QTQnLCAgIC8vICdsJworICAgICAgICAvKiA2RCAqLyAnXHUwOUI4JywgICAvLyAnbScKKyAgICAgICAgLyogNkUgKi8gJ1x1MDlCMicsICAgLy8gJ24nCisgICAgICAgIC8qIDZGICovICdcdTA5QTYnLCAgIC8vICdvJworICAgICAgICAvKiA3MCAqLyAnXHUwOTlDJywgICAvLyAncCcKKyAgICAgICAgLyogNzEgKi8gJ1x1MDlDQycsICAgLy8gJ3EnCisgICAgICAgIC8qIDcyICovICdcdTA5QzAnLCAgIC8vICdyJworICAgICAgICAvKiA3MyAqLyAnXHUwOUM3JywgICAvLyAncycKKyAgICAgICAgLyogNzQgKi8gJ1x1MDlDMicsICAgLy8gJ3QnCisgICAgICAgIC8qIDc1ICovICdcdTA5QjknLCAgIC8vICd1JworICAgICAgICAvKiA3NiAqLyAnXHUwOUE4JywgICAvLyAndicKKyAgICAgICAgLyogNzcgKi8gJ1x1MDlDOCcsICAgLy8gJ3cnCisgICAgICAgIC8qIDc4ICovICdcdTA5ODInLCAgIC8vICd4JworICAgICAgICAvKiA3OSAqLyAnXHUwOUFDJywgICAvLyAneScgKHRoaXMgaXMgYWxzbyBhIEJBLi4uKQorICAgICAgICAvKiA3QSAqLyAnXHVGRkZGJywgICAvLyAneicKKyAgICAgICAgLyogN0IgKi8gJ1x1MDlBMicsICAgLy8gJ3snCisgICAgICAgIC8qIDdDICovICdcdUZGRkYnLCAgIC8vICd8JworICAgICAgICAvKiA3RCAqLyAnXHUwOTlFJywgICAvLyAnfScKKyAgICAgICAgLyogN0UgKi8gJ1x1RkZGRicsICAgLy8gJ34nCisgICAgICAgIC8qIDdGICovICdcdTAwN0YnICAgIC8vICd/JworICAgICAgICB9OworCisgICAgICAgIGNoYXJbXSBSQV9TVUIgPSB7J1x1MDlDRCcsICdcdTA5QjAnfTsKKyAgICAgICAgY2hhcltdIFJBX1NVUCA9IHsnXHUwOUIwJywgJ1x1MDlDRCd9OworICAgICAgICBjaGFyW10gQ09OSl9KQV9OWUEgPSB7J1x1MDk5QycsICdcdTA5Q0QnLCAnXHUwOTlFJ307CisgICAgICAgIGNoYXJbXSBDT05KX1RBX1JBID0geydcdTA5QTQnLCAnXHUwOUNEJywgJ1x1MDlCMCd9OworICAgICAgICBjaGFyW10gQ09OSl9LQV9TU0EgPSB7J1x1MDk5NScsICdcdTA5Q0QnLCAnXHUwOUI3J307CisgICAgICAgIGNoYXJbXSBDT05KX1NIQV9SQSA9IHsnXHUwOUI2JywgJ1x1MDlDRCcsICdcdTA5QjAnfTsKKworICAgICAgICBzdWJzdGl0dXRpb25UYWJsZSA9IG5ldyBjaGFyW11bXSB7CisgICAgICAgIFJBX1NVQiwgUkFfU1VQLCBDT05KX0pBX05ZQSwgQ09OSl9UQV9SQSwgQ09OSl9LQV9TU0EsIENPTkpfU0hBX1JBCisgICAgICAgIH07CisKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGZvbGxvd2VkIGJ5IE51a3RhIHNob3VsZCBiZSByZXBsYWNlZAorICAgICAgICAvLyBieSB0aGUgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXIgYXMgZGVmaW5lZCBpbiBJU0NJSTkxCisgICAgICAgIGNoYXIgTEVUVEVSX0kgICAgICAgICAgICAgID0gJ1x1MDk4Nyc7CisgICAgICAgIGNoYXIgTEVUVEVSX0lJICAgICAgICAgICAgID0gJ1x1MDk4OCc7CisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfUiAgICAgID0gJ1x1MDk4Qic7CisgICAgICAgIGNoYXIgTEVUVEVSX0REQSAgICAgICAgICAgID0gJ1x1MDlBMSc7CisgICAgICAgIGNoYXIgTEVUVEVSX0RESEEgICAgICAgICAgID0gJ1x1MDlBMic7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9JICAgICAgICAgID0gJ1x1MDlCRic7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9JSSAgICAgICAgID0gJ1x1MDlDMCc7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9WT0NBTElDX1IgID0gJ1x1MDlDMyc7CisKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIHJlcGxhY2UgdGhlIGFib3ZlIGNoYXJhY3RlcnMgZm9sbG93ZWQgYnkgTnVrdGEuIFRoZXNlCisgICAgICAgIC8vIGFyZSBkZWZpbmVkIGluIG9uZSB0byBvbmUgY29ycmVzcG9uZGVuY2Ugb3JkZXIuCisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfTCAgICAgID0gJ1x1MDk4Qyc7CisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfTEwgICAgID0gJ1x1MDlFMSc7CisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfUlIgICAgID0gJ1x1MDlFMCc7CisgICAgICAgIGNoYXIgTEVUVEVSX0REREhBICAgICAgICAgID0gJ1x1MDlEQyc7CisgICAgICAgIGNoYXIgTEVUVEVSX1JIQSAgICAgICAgICAgID0gJ1x1MDlERCc7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9WT0NBTElDX0wgID0gJ1x1MDlFMic7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9WT0NBTElDX0xMID0gJ1x1MDlFMyc7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9WT0NBTElDX1JSID0gJ1x1MDlDNCc7CisKKyAgICAgICAgam9pbldpdGhOdWt0YSA9IG5ldyBjaGFyW10geworICAgICAgICBMRVRURVJfSSwKKyAgICAgICAgTEVUVEVSX0lJLAorICAgICAgICBMRVRURVJfVk9DQUxJQ19SLAorICAgICAgICBMRVRURVJfRERBLAorICAgICAgICBMRVRURVJfRERIQSwKKyAgICAgICAgVk9XRUxfU0lHTl9JLAorICAgICAgICBWT1dFTF9TSUdOX0lJLAorICAgICAgICBWT1dFTF9TSUdOX1ZPQ0FMSUNfUgorICAgICAgICB9OworICAgIAorICAgICAgICBudWt0YUZvcm0gPSBuZXcgY2hhcltdIHsKKyAgICAgICAgTEVUVEVSX1ZPQ0FMSUNfTCwKKyAgICAgICAgTEVUVEVSX1ZPQ0FMSUNfTEwsCisgICAgICAgIExFVFRFUl9WT0NBTElDX1JSLAorICAgICAgICBMRVRURVJfRERESEEsCisgICAgICAgIExFVFRFUl9SSEEsCisgICAgICAgIFZPV0VMX1NJR05fVk9DQUxJQ19MLAorICAgICAgICBWT1dFTF9TSUdOX1ZPQ0FMSUNfTEwsCisgICAgICAgIFZPV0VMX1NJR05fVk9DQUxJQ19SUgorICAgICAgICB9OworICAgIH0KKworICAgIHJldHVybiBuZXcgSW5kaWNJbnB1dE1ldGhvZEltcGwoa2V5Ym9hcmRNYXAsIGpvaW5XaXRoTnVrdGEsIG51a3RhRm9ybSwgc3Vic3RpdHV0aW9uVGFibGUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvRGV2YW5hZ2FyaUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9EZXZhbmFnYXJpSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc1MWU1OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvRGV2YW5hZ2FyaUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCkBAIC0wLDAgKzEsMjQ2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBEZXZhbmFnYXJpSW5wdXRNZXRob2REZXNjcmlwdG9yIGV4dGVuZHMgSW5kaWNJTURlc2NyaXB0b3IKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgREVWQU5BR0FSSSA9IG5ldyBMb2NhbGUoImhpIiwgIklOIik7CisKKyAgICBwdWJsaWMgRGV2YW5hZ2FyaUlucHV0TWV0aG9kRGVzY3JpcHRvcigpIHsKKyAgICBzdXBlcihERVZBTkFHQVJJLCAiRGV2YW5hZ2FyaSIpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBrZXlib2FyZE1hcDsKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSBzdWJzdGl0dXRpb25UYWJsZTsKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gam9pbldpdGhOdWt0YTsKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gbnVrdGFGb3JtOworCisgICAgcHJvdGVjdGVkIEluZGljSW5wdXRNZXRob2RJbXBsIGdldEltcGwoKSAgeworICAgIGlmIChrZXlib2FyZE1hcCA9PSBudWxsKSB7CisgICAgICAgIGtleWJvYXJkTWFwID0gbmV3IGNoYXJbXSB7CisgICAgICAgIC8qIDAwICovICdcdTAwMDAnLAorICAgICAgICAvKiAwMSAqLyAnXHUwMDAxJywKKyAgICAgICAgLyogMDIgKi8gJ1x1MDAwMicsCisgICAgICAgIC8qIDAzICovICdcdTAwMDMnLAorICAgICAgICAvKiAwNCAqLyAnXHUwMDA0JywKKyAgICAgICAgLyogMDUgKi8gJ1x1MDAwNScsCisgICAgICAgIC8qIDA2ICovICdcdTAwMDYnLAorICAgICAgICAvKiAwNyAqLyAnXHUwMDA3JywKKyAgICAgICAgLyogMDggKi8gJ1x1MDAwOCcsCisgICAgICAgIC8qIDA5ICovICdcdTAwMDknLAorICAgICAgICAvKiAwQSAqLyAnXDAxMicsCisgICAgICAgIC8qIDBCICovICdcdTAwMEInLAorICAgICAgICAvKiAwQyAqLyAnXHUwMDBDJywKKyAgICAgICAgLyogMEQgKi8gJ1wwMTUnLAorICAgICAgICAvKiAwRSAqLyAnXHUwMDBFJywKKyAgICAgICAgLyogMEYgKi8gJ1x1MDAwRicsCisgICAgICAgIC8qIDEwICovICdcdTAwMTAnLAorICAgICAgICAvKiAxMSAqLyAnXHUwMDExJywKKyAgICAgICAgLyogMTIgKi8gJ1x1MDAxMicsCisgICAgICAgIC8qIDEzICovICdcdTAwMTMnLAorICAgICAgICAvKiAxNCAqLyAnXHUwMDE0JywKKyAgICAgICAgLyogMTUgKi8gJ1x1MDAxNScsCisgICAgICAgIC8qIDE2ICovICdcdTAwMTYnLAorICAgICAgICAvKiAxNyAqLyAnXHUwMDE3JywKKyAgICAgICAgLyogMTggKi8gJ1x1MDAxOCcsCisgICAgICAgIC8qIDE5ICovICdcdTAwMTknLAorICAgICAgICAvKiAxQSAqLyAnXHUwMDFBJywKKyAgICAgICAgLyogMUIgKi8gJ1x1MDAxQicsCisgICAgICAgIC8qIDFDICovICdcdTAwMUMnLAorICAgICAgICAvKiAxRCAqLyAnXHUwMDFEJywKKyAgICAgICAgLyogMUUgKi8gJ1x1MDAxRScsCisgICAgICAgIC8qIDFGICovICdcdTAwMUYnLAorICAgICAgICAvKiAyMCAqLyAnXHUwMDIwJywKKyAgICAgICAgLyogMjEgKi8gJ1x1MDkwRCcsICAgLy8gJyEnCisgICAgICAgIC8qIDIyICovICdcdTA5MjAnLCAgIC8vICciJworICAgICAgICAvKiAyMyAqLyAnXHVGRjAwJywgICAvLyAnIycKKyAgICAgICAgLyogMjQgKi8gJ1x1RkYwMScsICAgLy8gJyQnCisgICAgICAgIC8qIDI1ICovICdcdUZGMDInLCAgIC8vICclJworICAgICAgICAvKiAyNiAqLyAnXHVGRjA0JywgICAvLyAnJicKKyAgICAgICAgLyogMjcgKi8gJ1x1MDkxRicsICAgLy8gJycnCisgICAgICAgIC8qIDI4ICovICdcdTAwMjgnLCAgIC8vICcoJworICAgICAgICAvKiAyOSAqLyAnXHUwMDI5JywgICAvLyAnKScKKyAgICAgICAgLyogMkEgKi8gJ1x1RkYwNScsICAgLy8gJyonCisgICAgICAgIC8qIDJCICovICdcdTA5MEInLCAgIC8vICcrJworICAgICAgICAvKiAyQyAqLyAnXHUwMDJDJywgICAvLyAnLCcKKyAgICAgICAgLyogMkQgKi8gJ1x1MDAyRCcsICAgLy8gJy0nCisgICAgICAgIC8qIDJFICovICdcdTAwMkUnLCAgIC8vICcuJworICAgICAgICAvKiAyRiAqLyAnXHUwOTJGJywgICAvLyAnLycKKyAgICAgICAgLyogMzAgKi8gJ1x1MDk2NicsICAgLy8gJzAnCisgICAgICAgIC8qIDMxICovICdcdTA5NjcnLCAgIC8vICcxJworICAgICAgICAvKiAzMiAqLyAnXHUwOTY4JywgICAvLyAnMicKKyAgICAgICAgLyogMzMgKi8gJ1x1MDk2OScsICAgLy8gJzMnCisgICAgICAgIC8qIDM0ICovICdcdTA5NkEnLCAgIC8vICc0JworICAgICAgICAvKiAzNSAqLyAnXHUwOTZCJywgICAvLyAnNScKKyAgICAgICAgLyogMzYgKi8gJ1x1MDk2QycsICAgLy8gJzYnCisgICAgICAgIC8qIDM3ICovICdcdTA5NkQnLCAgIC8vICc3JworICAgICAgICAvKiAzOCAqLyAnXHUwOTZFJywgICAvLyAnOCcKKyAgICAgICAgLyogMzkgKi8gJ1x1MDk2RicsICAgLy8gJzknCisgICAgICAgIC8qIDNBICovICdcdTA5MUInLCAgIC8vICc6JworICAgICAgICAvKiAzQiAqLyAnXHUwOTFBJywgICAvLyAnOycKKyAgICAgICAgLyogM0MgKi8gJ1x1MDkzNycsICAgLy8gJzwnCisgICAgICAgIC8qIDNEICovICdcdTA5NDMnLCAgIC8vICc9JworICAgICAgICAvKiAzRSAqLyAnXHUwOTY0JywgICAvLyAnPicKKyAgICAgICAgLyogM0YgKi8gJ1x1MDk1RicsICAgLy8gJz8nCisgICAgICAgIC8qIDQwICovICdcdTA5NDUnLCAgIC8vICdAJworICAgICAgICAvKiA0MSAqLyAnXHUwOTEzJywgICAvLyAnQScKKyAgICAgICAgLyogNDIgKi8gJ1x1MDkzNCcsICAgLy8gJ0InCisgICAgICAgIC8qIDQzICovICdcdTA5MjMnLCAgIC8vICdDJworICAgICAgICAvKiA0NCAqLyAnXHUwOTA1JywgICAvLyAnRCcKKyAgICAgICAgLyogNDUgKi8gJ1x1MDkwNicsICAgLy8gJ0UnCisgICAgICAgIC8qIDQ2ICovICdcdTA5MDcnLCAgIC8vICdGJworICAgICAgICAvKiA0NyAqLyAnXHUwOTA5JywgICAvLyAnRycKKyAgICAgICAgLyogNDggKi8gJ1x1MDkyQicsICAgLy8gJ0gnCisgICAgICAgIC8qIDQ5ICovICdcdTA5MTgnLCAgIC8vICdJJworICAgICAgICAvKiA0QSAqLyAnXHUwOTMxJywgICAvLyAnSicKKyAgICAgICAgLyogNEIgKi8gJ1x1MDkxNicsICAgLy8gJ0snCisgICAgICAgIC8qIDRDICovICdcdTA5MjUnLCAgIC8vICdMJworICAgICAgICAvKiA0RCAqLyAnXHUwOTM2JywgICAvLyAnTScKKyAgICAgICAgLyogNEUgKi8gJ1x1MDkzMycsICAgLy8gJ04nCisgICAgICAgIC8qIDRGICovICdcdTA5MjcnLCAgIC8vICdPJworICAgICAgICAvKiA1MCAqLyAnXHUwOTFEJywgICAvLyAnUCcKKyAgICAgICAgLyogNTEgKi8gJ1x1MDkxNCcsICAgLy8gJ1EnCisgICAgICAgIC8qIDUyICovICdcdTA5MDgnLCAgIC8vICdSJworICAgICAgICAvKiA1MyAqLyAnXHUwOTBGJywgICAvLyAnUycKKyAgICAgICAgLyogNTQgKi8gJ1x1MDkwQScsICAgLy8gJ1QnCisgICAgICAgIC8qIDU1ICovICdcdTA5MTknLCAgIC8vICdVJworICAgICAgICAvKiA1NiAqLyAnXHUwOTI5JywgICAvLyAnVicKKyAgICAgICAgLyogNTcgKi8gJ1x1MDkxMCcsICAgLy8gJ1cnCisgICAgICAgIC8qIDU4ICovICdcdTA5MDEnLCAgIC8vICdYJworICAgICAgICAvKiA1OSAqLyAnXHUwOTJEJywgICAvLyAnWScKKyAgICAgICAgLyogNUEgKi8gJ1x1MDkwRScsICAgLy8gJ1onCisgICAgICAgIC8qIDVCICovICdcdTA5MjEnLCAgIC8vICdbJworICAgICAgICAvKiA1QyAqLyAnXHUwOTQ5JywgICAvLyAnXCcKKyAgICAgICAgLyogNUQgKi8gJ1x1MDkzQycsICAgLy8gJ10nCisgICAgICAgIC8qIDVFICovICdcdUZGMDMnLCAgIC8vICdeJworICAgICAgICAvKiA1RiAqLyAnXHUwOTAzJywgICAvLyAnXycKKyAgICAgICAgLyogNjAgKi8gJ1x1MDk0QScsICAgLy8gJ2AnCisgICAgICAgIC8qIDYxICovICdcdTA5NEInLCAgIC8vICdhJworICAgICAgICAvKiA2MiAqLyAnXHUwOTM1JywgICAvLyAnYicKKyAgICAgICAgLyogNjMgKi8gJ1x1MDkyRScsICAgLy8gJ2MnCisgICAgICAgIC8qIDY0ICovICdcdTA5NEQnLCAgIC8vICdkJworICAgICAgICAvKiA2NSAqLyAnXHUwOTNFJywgICAvLyAnZScKKyAgICAgICAgLyogNjYgKi8gJ1x1MDkzRicsICAgLy8gJ2YnCisgICAgICAgIC8qIDY3ICovICdcdTA5NDEnLCAgIC8vICdnJworICAgICAgICAvKiA2OCAqLyAnXHUwOTJBJywgICAvLyAnaCcKKyAgICAgICAgLyogNjkgKi8gJ1x1MDkxNycsICAgLy8gJ2knCisgICAgICAgIC8qIDZBICovICdcdTA5MzAnLCAgIC8vICdqJworICAgICAgICAvKiA2QiAqLyAnXHUwOTE1JywgICAvLyAnaycKKyAgICAgICAgLyogNkMgKi8gJ1x1MDkyNCcsICAgLy8gJ2wnCisgICAgICAgIC8qIDZEICovICdcdTA5MzgnLCAgIC8vICdtJworICAgICAgICAvKiA2RSAqLyAnXHUwOTMyJywgICAvLyAnbicKKyAgICAgICAgLyogNkYgKi8gJ1x1MDkyNicsICAgLy8gJ28nCisgICAgICAgIC8qIDcwICovICdcdTA5MUMnLCAgIC8vICdwJworICAgICAgICAvKiA3MSAqLyAnXHUwOTRDJywgICAvLyAncScKKyAgICAgICAgLyogNzIgKi8gJ1x1MDk0MCcsICAgLy8gJ3InCisgICAgICAgIC8qIDczICovICdcdTA5NDcnLCAgIC8vICdzJworICAgICAgICAvKiA3NCAqLyAnXHUwOTQyJywgICAvLyAndCcKKyAgICAgICAgLyogNzUgKi8gJ1x1MDkzOScsICAgLy8gJ3UnCisgICAgICAgIC8qIDc2ICovICdcdTA5MjgnLCAgIC8vICd2JworICAgICAgICAvKiA3NyAqLyAnXHUwOTQ4JywgICAvLyAndycKKyAgICAgICAgLyogNzggKi8gJ1x1MDkwMicsICAgLy8gJ3gnCisgICAgICAgIC8qIDc5ICovICdcdTA5MkMnLCAgIC8vICd5JworICAgICAgICAvKiA3QSAqLyAnXHUwOTQ2JywgICAvLyAneicKKyAgICAgICAgLyogN0IgKi8gJ1x1MDkyMicsICAgLy8gJ3snCisgICAgICAgIC8qIDdDICovICdcdTA5MTEnLCAgIC8vICd8JworICAgICAgICAvKiA3RCAqLyAnXHUwOTFFJywgICAvLyAnfScKKyAgICAgICAgLyogN0UgKi8gJ1x1MDkxMicsICAgLy8gJ34nCisgICAgICAgIC8qIDdGICovICdcdTAwN0YnICAgIC8vICd/JworICAgICAgICB9OworICAgIAorICAgICAgICAvLyB0aGUgY2hhcmFjdGVyIHN1YnN0aXR1dGlvbnMgZm9yIHRoZSBtZXRhIGNoYXJhY3RlcnMuCisgICAgICAgIGNoYXJbXSBSQV9TVUIgPSB7J1x1MDk0RCcsICdcdTA5MzAnfTsKKyAgICAgICAgY2hhcltdIFJBX1NVUCA9IHsnXHUwOTMwJywgJ1x1MDk0RCd9OworICAgICAgICBjaGFyW10gQ09OSl9KQV9OWUEgPSB7J1x1MDkxQycsICdcdTA5NEQnLCAnXHUwOTFFJ307CisgICAgICAgIGNoYXJbXSBDT05KX1RBX1JBID0geydcdTA5MjQnLCAnXHUwOTREJywgJ1x1MDkzMCd9OworICAgICAgICBjaGFyW10gQ09OSl9LQV9TU0EgPSB7J1x1MDkxNScsICdcdTA5NEQnLCAnXHUwOTM3J307CisgICAgICAgIGNoYXJbXSBDT05KX1NIQV9SQSA9IHsnXHUwOTM2JywgJ1x1MDk0RCcsICdcdTA5MzAnfTsKKworICAgICAgICBzdWJzdGl0dXRpb25UYWJsZSA9IG5ldyBjaGFyW11bXSB7CisgICAgICAgIFJBX1NVQiwgUkFfU1VQLCBDT05KX0pBX05ZQSwgQ09OSl9UQV9SQSwgQ09OSl9LQV9TU0EsIENPTkpfU0hBX1JBCisgICAgICAgIH07CisKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGZvbGxvd2VkIGJ5IE51a3RhIHNob3VsZCBiZSByZXBsYWNlZAorICAgICAgICAvLyBieSB0aGUgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXIgYXMgZGVmaW5lZCBpbiBJU0NJSTkxCisgICAgICAgIGNoYXIgU0lHTl9DQU5EUkFCSU5EVSAgICAgID0gJ1x1MDkwMSc7CisgICAgICAgIGNoYXIgTEVUVEVSX0kgICAgICAgICAgICAgID0gJ1x1MDkwNyc7CisgICAgICAgIGNoYXIgTEVUVEVSX0lJICAgICAgICAgICAgID0gJ1x1MDkwOCc7CisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfUiAgICAgID0gJ1x1MDkwQic7CisgICAgICAgIGNoYXIgTEVUVEVSX0tBICAgICAgICAgICAgID0gJ1x1MDkxNSc7CisgICAgICAgIGNoYXIgTEVUVEVSX0tIQSAgICAgICAgICAgID0gJ1x1MDkxNic7CisgICAgICAgIGNoYXIgTEVUVEVSX0dBICAgICAgICAgICAgID0gJ1x1MDkxNyc7CisgICAgICAgIGNoYXIgTEVUVEVSX0pBICAgICAgICAgICAgID0gJ1x1MDkxQyc7CisgICAgICAgIGNoYXIgTEVUVEVSX0REQSAgICAgICAgICAgID0gJ1x1MDkyMSc7CisgICAgICAgIGNoYXIgTEVUVEVSX0RESEEgICAgICAgICAgID0gJ1x1MDkyMic7CisgICAgICAgIGNoYXIgTEVUVEVSX1BIQSAgICAgICAgICAgID0gJ1x1MDkyQic7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9JICAgICAgICAgID0gJ1x1MDkzRic7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9JSSAgICAgICAgID0gJ1x1MDk0MCc7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9WT0NBTElDX1IgID0gJ1x1MDk0Myc7CisgICAgICAgIGNoYXIgREFOREEgICAgICAgICAgICAgICAgID0gJ1x1MDk2NCc7CisKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIHJlcGxhY2UgdGhlIGFib3ZlIGNoYXJhY3RlcnMgZm9sbG93ZWQgYnkgTnVrdGEuIFRoZXNlCisgICAgICAgIC8vIGFyZSBkZWZpbmVkIGluIG9uZSB0byBvbmUgY29ycmVzcG9uZGVuY2Ugb3JkZXIuCisgICAgICAgIGNoYXIgU0lHTl9PTSAgICAgICAgICAgICAgID0gJ1x1MDk1MCc7CisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfTCAgICAgID0gJ1x1MDkwQyc7CisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfTEwgICAgID0gJ1x1MDk2MSc7CisgICAgICAgIGNoYXIgTEVUVEVSX1ZPQ0FMSUNfUlIgICAgID0gJ1x1MDk2MCc7CisgICAgICAgIGNoYXIgTEVUVEVSX1FBICAgICAgICAgICAgID0gJ1x1MDk1OCc7CisgICAgICAgIGNoYXIgTEVUVEVSX0tISEEgICAgICAgICAgID0gJ1x1MDk1OSc7CisgICAgICAgIGNoYXIgTEVUVEVSX0dISEEgICAgICAgICAgID0gJ1x1MDk1QSc7CisgICAgICAgIGNoYXIgTEVUVEVSX1pBICAgICAgICAgICAgID0gJ1x1MDk1Qic7CisgICAgICAgIGNoYXIgTEVUVEVSX0REREhBICAgICAgICAgID0gJ1x1MDk1Qyc7CisgICAgICAgIGNoYXIgTEVUVEVSX1JIQSAgICAgICAgICAgID0gJ1x1MDk1RCc7CisgICAgICAgIGNoYXIgTEVUVEVSX0ZBICAgICAgICAgICAgID0gJ1x1MDk1RSc7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9WT0NBTElDX0wgID0gJ1x1MDk2Mic7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9WT0NBTElDX0xMID0gJ1x1MDk2Myc7CisgICAgICAgIGNoYXIgVk9XRUxfU0lHTl9WT0NBTElDX1JSID0gJ1x1MDk0NCc7CisgICAgICAgIGNoYXIgU0lHTl9BVkFHUkFIQSAgICAgICAgID0gJ1x1MDkzRCc7CisKKyAgICAgICAgam9pbldpdGhOdWt0YSA9IG5ldyBjaGFyW10geworICAgICAgICBTSUdOX0NBTkRSQUJJTkRVLAorICAgICAgICBMRVRURVJfSSwKKyAgICAgICAgTEVUVEVSX0lJLAorICAgICAgICBMRVRURVJfVk9DQUxJQ19SICwKKyAgICAgICAgTEVUVEVSX0tBLAorICAgICAgICBMRVRURVJfS0hBLAorICAgICAgICBMRVRURVJfR0EsCisgICAgICAgIExFVFRFUl9KQSwKKyAgICAgICAgTEVUVEVSX0REQSwKKyAgICAgICAgTEVUVEVSX0RESEEsCisgICAgICAgIExFVFRFUl9QSEEsCisgICAgICAgIFZPV0VMX1NJR05fSSwKKyAgICAgICAgVk9XRUxfU0lHTl9JSSwKKyAgICAgICAgVk9XRUxfU0lHTl9WT0NBTElDX1IsCisgICAgICAgIERBTkRBCisgICAgICAgIH07CisgICAgCisgICAgICAgIG51a3RhRm9ybSA9IG5ldyBjaGFyW10geworICAgICAgICBTSUdOX09NLAorICAgICAgICBMRVRURVJfVk9DQUxJQ19MLAorICAgICAgICBMRVRURVJfVk9DQUxJQ19MTCwKKyAgICAgICAgTEVUVEVSX1ZPQ0FMSUNfUlIsCisgICAgICAgIExFVFRFUl9RQSwKKyAgICAgICAgTEVUVEVSX0tISEEsCisgICAgICAgIExFVFRFUl9HSEhBLAorICAgICAgICBMRVRURVJfWkEsCisgICAgICAgIExFVFRFUl9ERERIQSwKKyAgICAgICAgTEVUVEVSX1JIQSwKKyAgICAgICAgTEVUVEVSX0ZBLAorICAgICAgICBWT1dFTF9TSUdOX1ZPQ0FMSUNfTCwKKyAgICAgICAgVk9XRUxfU0lHTl9WT0NBTElDX0xMLAorICAgICAgICBWT1dFTF9TSUdOX1ZPQ0FMSUNfUlIsCisgICAgICAgIFNJR05fQVZBR1JBSEEKKyAgICAgICAgfTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgSW5kaWNJbnB1dE1ldGhvZEltcGwoa2V5Ym9hcmRNYXAsIGpvaW5XaXRoTnVrdGEsIG51a3RhRm9ybSwgc3Vic3RpdHV0aW9uVGFibGUpOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9EaXNwbGF5TmFtZXMucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvRGlzcGxheU5hbWVzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBlNWIxZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvRGlzcGxheU5hbWVzLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxOCBAQAorIworIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisjKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMKKyMgRGVmYXVsdCBJbnB1dCBtZXRob2QgZGlzcGxheSBuYW1lcyBmb3IgSW5kaWMgaW5wdXQgbWV0aG9kcworIworCitEaXNwbGF5TmFtZS5CZW5nYWxpICAgICA9IEJlbmdhbGkgSW5wdXQgTWV0aG9kCitEaXNwbGF5TmFtZS5EZXZhbmFnYXJpICA9IERldmFuYWdhcmkgSW5wdXQgTWV0aG9kCitEaXNwbGF5TmFtZS5HdWphcmF0aSAgICA9IEd1amFyYXRpIElucHV0IE1ldGhvZAorRGlzcGxheU5hbWUuR3VybXVraGkgICAgPSBHdXJtdWtoaSBJbnB1dCBNZXRob2QKK0Rpc3BsYXlOYW1lLkthbm5hZGEgICAgID0gS2FubmFkYSBJbnB1dCBNZXRob2QKK0Rpc3BsYXlOYW1lLk1hbGF5YWxhbSAgID0gTWFsYXlhbGFtIElucHV0IE1ldGhvZAorRGlzcGxheU5hbWUuT3JpeWEgICAgICAgPSBPcml5YSBJbnB1dCBNZXRob2QKK0Rpc3BsYXlOYW1lLlRhbWlsICAgICAgID0gVGFtaWwgSW5wdXQgTWV0aG9kCitEaXNwbGF5TmFtZS5UZWx1Z3UgICAgICA9IFRlbHVndSBJbnB1dCBNZXRob2QKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvR3VqYXJhdGlJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvR3VqYXJhdGlJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDMxZTc4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9HdWphcmF0aUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCkBAIC0wLDAgKzEsMTcxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK3B1YmxpYyBjbGFzcyBHdWphcmF0aUlucHV0TWV0aG9kRGVzY3JpcHRvciBleHRlbmRzIEluZGljSU1EZXNjcmlwdG9yCit7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9jYWxlIEdVSkFSQVRJID0gbmV3IExvY2FsZSgiZ3UiLCAiSU4iKTsKKworICAgIHB1YmxpYyBHdWphcmF0aUlucHV0TWV0aG9kRGVzY3JpcHRvcigpIHsKKyAgICBzdXBlcihHVUpBUkFUSSwgIkd1amFyYXRpIik7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGtleWJvYXJkTWFwOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHN1YnN0aXR1dGlvblRhYmxlOworCisgICAgcHJvdGVjdGVkIEluZGljSW5wdXRNZXRob2RJbXBsIGdldEltcGwoKSB7CisgICAgaWYgKGtleWJvYXJkTWFwID09IG51bGwpIHsKKyAgICAgICAga2V5Ym9hcmRNYXAgPSBuZXcgY2hhcltdIHsKKyAgICAgICAgLyogMDAgKi8gJ1x1MDAwMCcsCisgICAgICAgIC8qIDAxICovICdcdTAwMDEnLAorICAgICAgICAvKiAwMiAqLyAnXHUwMDAyJywKKyAgICAgICAgLyogMDMgKi8gJ1x1MDAwMycsCisgICAgICAgIC8qIDA0ICovICdcdTAwMDQnLAorICAgICAgICAvKiAwNSAqLyAnXHUwMDA1JywKKyAgICAgICAgLyogMDYgKi8gJ1x1MDAwNicsCisgICAgICAgIC8qIDA3ICovICdcdTAwMDcnLAorICAgICAgICAvKiAwOCAqLyAnXHUwMDA4JywKKyAgICAgICAgLyogMDkgKi8gJ1x1MDAwOScsCisgICAgICAgIC8qIDBBICovICdcMDEyJywKKyAgICAgICAgLyogMEIgKi8gJ1x1MDAwQicsCisgICAgICAgIC8qIDBDICovICdcdTAwMEMnLAorICAgICAgICAvKiAwRCAqLyAnXDAxNScsCisgICAgICAgIC8qIDBFICovICdcdTAwMEUnLAorICAgICAgICAvKiAwRiAqLyAnXHUwMDBGJywKKyAgICAgICAgLyogMTAgKi8gJ1x1MDAxMCcsCisgICAgICAgIC8qIDExICovICdcdTAwMTEnLAorICAgICAgICAvKiAxMiAqLyAnXHUwMDEyJywKKyAgICAgICAgLyogMTMgKi8gJ1x1MDAxMycsCisgICAgICAgIC8qIDE0ICovICdcdTAwMTQnLAorICAgICAgICAvKiAxNSAqLyAnXHUwMDE1JywKKyAgICAgICAgLyogMTYgKi8gJ1x1MDAxNicsCisgICAgICAgIC8qIDE3ICovICdcdTAwMTcnLAorICAgICAgICAvKiAxOCAqLyAnXHUwMDE4JywKKyAgICAgICAgLyogMTkgKi8gJ1x1MDAxOScsCisgICAgICAgIC8qIDFBICovICdcdTAwMUEnLAorICAgICAgICAvKiAxQiAqLyAnXHUwMDFCJywKKyAgICAgICAgLyogMUMgKi8gJ1x1MDAxQycsCisgICAgICAgIC8qIDFEICovICdcdTAwMUQnLAorICAgICAgICAvKiAxRSAqLyAnXHUwMDFFJywKKyAgICAgICAgLyogMUYgKi8gJ1x1MDAxRicsCisgICAgICAgIC8qIDIwICovICdcdTAwMjAnLAorICAgICAgICAvKiAyMSAqLyAnXHUwQThEJywgICAvLyAnIScKKyAgICAgICAgLyogMjIgKi8gJ1x1MEFBMCcsICAgLy8gJyInCisgICAgICAgIC8qIDIzICovICdcdUZGMDAnLCAgIC8vICcjJworICAgICAgICAvKiAyNCAqLyAnXHVGRjAxJywgICAvLyAnJCcKKyAgICAgICAgLyogMjUgKi8gJ1x1RkYwMicsICAgLy8gJyUnCisgICAgICAgIC8qIDI2ICovICdcdUZGMDQnLCAgIC8vICcmJworICAgICAgICAvKiAyNyAqLyAnXHUwQTlGJywgICAvLyAnJycKKyAgICAgICAgLyogMjggKi8gJ1x1MDAyOCcsICAgLy8gJygnCisgICAgICAgIC8qIDI5ICovICdcdTAwMjknLCAgIC8vICcpJworICAgICAgICAvKiAyQSAqLyAnXHVGRjA1JywgICAvLyAnKicKKyAgICAgICAgLyogMkIgKi8gJ1x1MEE4QicsICAgLy8gJysnCisgICAgICAgIC8qIDJDICovICdcdTAwMkMnLCAgIC8vICcsJworICAgICAgICAvKiAyRCAqLyAnXHUwMDJEJywgICAvLyAnLScKKyAgICAgICAgLyogMkUgKi8gJ1x1MDAyRScsICAgLy8gJy4nCisgICAgICAgIC8qIDJGICovICdcdTBBQUYnLCAgIC8vICcvJworICAgICAgICAvKiAzMCAqLyAnXHUwQUU2JywgICAvLyAnMCcKKyAgICAgICAgLyogMzEgKi8gJ1x1MEFFNycsICAgLy8gJzEnCisgICAgICAgIC8qIDMyICovICdcdTBBRTgnLCAgIC8vICcyJworICAgICAgICAvKiAzMyAqLyAnXHUwQUU5JywgICAvLyAnMycKKyAgICAgICAgLyogMzQgKi8gJ1x1MEFFQScsICAgLy8gJzQnCisgICAgICAgIC8qIDM1ICovICdcdTBBRUInLCAgIC8vICc1JworICAgICAgICAvKiAzNiAqLyAnXHUwQUVDJywgICAvLyAnNicKKyAgICAgICAgLyogMzcgKi8gJ1x1MEFFRCcsICAgLy8gJzcnCisgICAgICAgIC8qIDM4ICovICdcdTBBRUUnLCAgIC8vICc4JworICAgICAgICAvKiAzOSAqLyAnXHUwQUVGJywgICAvLyAnOScKKyAgICAgICAgLyogM0EgKi8gJ1x1MEE5QicsICAgLy8gJzonCisgICAgICAgIC8qIDNCICovICdcdTBBOUEnLCAgIC8vICc7JworICAgICAgICAvKiAzQyAqLyAnXHUwQUI3JywgICAvLyAnPCcKKyAgICAgICAgLyogM0QgKi8gJ1x1MEFDMycsICAgLy8gJz0nCisgICAgICAgIC8qIDNFICovICdcdTA5NjQnLCAgIC8vICc+JyAgKERldmFuYWdhcmkgZGFuZGEpCisgICAgICAgIC8qIDNGICovICdcdUZGRkYnLCAgIC8vICc/JworICAgICAgICAvKiA0MCAqLyAnXHUwQUM1JywgICAvLyAnQCcKKyAgICAgICAgLyogNDEgKi8gJ1x1MEE5MycsICAgLy8gJ0EnCisgICAgICAgIC8qIDQyICovICdcdUZGRkYnLCAgIC8vICdCJworICAgICAgICAvKiA0MyAqLyAnXHUwQUEzJywgICAvLyAnQycKKyAgICAgICAgLyogNDQgKi8gJ1x1MEE4NScsICAgLy8gJ0QnCisgICAgICAgIC8qIDQ1ICovICdcdTBBODYnLCAgIC8vICdFJworICAgICAgICAvKiA0NiAqLyAnXHUwQTg3JywgICAvLyAnRicKKyAgICAgICAgLyogNDcgKi8gJ1x1MEE4OScsICAgLy8gJ0cnCisgICAgICAgIC8qIDQ4ICovICdcdTBBQUInLCAgIC8vICdIJworICAgICAgICAvKiA0OSAqLyAnXHUwQTk4JywgICAvLyAnSScKKyAgICAgICAgLyogNEEgKi8gJ1x1RkZGRicsICAgLy8gJ0onCisgICAgICAgIC8qIDRCICovICdcdTBBOTYnLCAgIC8vICdLJworICAgICAgICAvKiA0QyAqLyAnXHUwQUE1JywgICAvLyAnTCcKKyAgICAgICAgLyogNEQgKi8gJ1x1MEFCNicsICAgLy8gJ00nCisgICAgICAgIC8qIDRFICovICdcdTBBQjMnLCAgIC8vICdOJworICAgICAgICAvKiA0RiAqLyAnXHUwQUE3JywgICAvLyAnTycKKyAgICAgICAgLyogNTAgKi8gJ1x1MEE5RCcsICAgLy8gJ1AnCisgICAgICAgIC8qIDUxICovICdcdTBBOTQnLCAgIC8vICdRJworICAgICAgICAvKiA1MiAqLyAnXHUwQTg4JywgICAvLyAnUicKKyAgICAgICAgLyogNTMgKi8gJ1x1MEE4RicsICAgLy8gJ1MnCisgICAgICAgIC8qIDU0ICovICdcdTBBOEEnLCAgIC8vICdUJworICAgICAgICAvKiA1NSAqLyAnXHUwQTk5JywgICAvLyAnVScKKyAgICAgICAgLyogNTYgKi8gJ1x1RkZGRicsICAgLy8gJ1YnCisgICAgICAgIC8qIDU3ICovICdcdTBBOTAnLCAgIC8vICdXJworICAgICAgICAvKiA1OCAqLyAnXHUwQTgxJywgICAvLyAnWCcKKyAgICAgICAgLyogNTkgKi8gJ1x1MEFBRCcsICAgLy8gJ1knCisgICAgICAgIC8qIDVBICovICdcdUZGRkYnLCAgIC8vICdaJworICAgICAgICAvKiA1QiAqLyAnXHUwQUExJywgICAvLyAnWycKKyAgICAgICAgLyogNUMgKi8gJ1x1MEFDOScsICAgLy8gJ1wnCisgICAgICAgIC8qIDVEICovICdcdTBBQkMnLCAgIC8vICddJworICAgICAgICAvKiA1RSAqLyAnXHVGRjAzJywgICAvLyAnXicKKyAgICAgICAgLyogNUYgKi8gJ1x1MEE4MycsICAgLy8gJ18nCisgICAgICAgIC8qIDYwICovICdcdUZGRkYnLCAgIC8vICdgJworICAgICAgICAvKiA2MSAqLyAnXHUwQUNCJywgICAvLyAnYScKKyAgICAgICAgLyogNjIgKi8gJ1x1MEFCNScsICAgLy8gJ2InCisgICAgICAgIC8qIDYzICovICdcdTBBQUUnLCAgIC8vICdjJworICAgICAgICAvKiA2NCAqLyAnXHUwQUNEJywgICAvLyAnZCcKKyAgICAgICAgLyogNjUgKi8gJ1x1MEFCRScsICAgLy8gJ2UnCisgICAgICAgIC8qIDY2ICovICdcdTBBQkYnLCAgIC8vICdmJworICAgICAgICAvKiA2NyAqLyAnXHUwQUMxJywgICAvLyAnZycKKyAgICAgICAgLyogNjggKi8gJ1x1MEFBQScsICAgLy8gJ2gnCisgICAgICAgIC8qIDY5ICovICdcdTBBOTcnLCAgIC8vICdpJworICAgICAgICAvKiA2QSAqLyAnXHUwQUIwJywgICAvLyAnaicKKyAgICAgICAgLyogNkIgKi8gJ1x1MEE5NScsICAgLy8gJ2snCisgICAgICAgIC8qIDZDICovICdcdTBBQTQnLCAgIC8vICdsJworICAgICAgICAvKiA2RCAqLyAnXHUwQUI4JywgICAvLyAnbScKKyAgICAgICAgLyogNkUgKi8gJ1x1MEFCMicsICAgLy8gJ24nCisgICAgICAgIC8qIDZGICovICdcdTBBQTYnLCAgIC8vICdvJworICAgICAgICAvKiA3MCAqLyAnXHUwQTlDJywgICAvLyAncCcKKyAgICAgICAgLyogNzEgKi8gJ1x1MEFDQycsICAgLy8gJ3EnCisgICAgICAgIC8qIDcyICovICdcdTBBQzAnLCAgIC8vICdyJworICAgICAgICAvKiA3MyAqLyAnXHUwQUM3JywgICAvLyAncycKKyAgICAgICAgLyogNzQgKi8gJ1x1MEFDMicsICAgLy8gJ3QnCisgICAgICAgIC8qIDc1ICovICdcdTBBQjknLCAgIC8vICd1JworICAgICAgICAvKiA3NiAqLyAnXHUwQUE4JywgICAvLyAndicKKyAgICAgICAgLyogNzcgKi8gJ1x1MEFDOCcsICAgLy8gJ3cnCisgICAgICAgIC8qIDc4ICovICdcdTBBODInLCAgIC8vICd4JworICAgICAgICAvKiA3OSAqLyAnXHUwQUFDJywgICAvLyAneScKKyAgICAgICAgLyogN0EgKi8gJ1x1RkZGRicsICAgLy8gJ3onCisgICAgICAgIC8qIDdCICovICdcdTBBQTInLCAgIC8vICd7JworICAgICAgICAvKiA3QyAqLyAnXHUwQTkxJywgICAvLyAnfCcKKyAgICAgICAgLyogN0QgKi8gJ1x1MEE5RScsICAgLy8gJ30nCisgICAgICAgIC8qIDdFICovICdcdUZGRkYnLCAgIC8vICd+JworICAgICAgICAvKiA3RiAqLyAnXHUwMDdGJyAgICAvLyAnfycKKyAgICAgICAgfTsKKworICAgICAgICBjaGFyW10gUkFfU1VCID0geydcdTBBQ0QnLCAnXHUwQUIwJ307CisgICAgICAgIGNoYXJbXSBSQV9TVVAgPSB7J1x1MEFCMCcsICdcdTBBQ0QnfTsKKyAgICAgICAgY2hhcltdIENPTkpfSkFfTllBID0geydcdTBBOUMnLCAnXHUwQUNEJywgJ1x1MEE5RSd9OworICAgICAgICBjaGFyW10gQ09OSl9UQV9SQSA9IHsnXHUwQUE0JywgJ1x1MEFDRCcsICdcdTBBQjAnfTsKKyAgICAgICAgY2hhcltdIENPTkpfS0FfU1NBID0geydcdTBBOTUnLCAnXHUwQUNEJywgJ1x1MEFCNyd9OworICAgICAgICBjaGFyW10gQ09OSl9TSEFfUkEgPSB7J1x1MEFCNicsICdcdTBBQ0QnLCAnXHUwQUIwJ307CisKKyAgICAgICAgc3Vic3RpdHV0aW9uVGFibGUgPSBuZXcgY2hhcltdW10geworICAgICAgICBSQV9TVUIsIFJBX1NVUCwgQ09OSl9KQV9OWUEsIENPTkpfVEFfUkEsIENPTkpfS0FfU1NBLCBDT05KX1NIQV9SQQorICAgICAgICB9OworICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEluZGljSW5wdXRNZXRob2RJbXBsKGtleWJvYXJkTWFwLCBudWxsLCBudWxsLCBzdWJzdGl0dXRpb25UYWJsZSk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0d1cm11a2hpSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0d1cm11a2hpSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTEwYjNiYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvR3VybXVraGlJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpAQCAtMCwwICsxLDIwMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgR3VybXVraGlJbnB1dE1ldGhvZERlc2NyaXB0b3IgZXh0ZW5kcyBJbmRpY0lNRGVzY3JpcHRvcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBHVVJNVUtISSA9IG5ldyBMb2NhbGUoInBhIiwgIklOIik7IC8vIHBhID0gUHVuamFiaQorCisgICAgcHVibGljIEd1cm11a2hpSW5wdXRNZXRob2REZXNjcmlwdG9yKCkgeworICAgIHN1cGVyKEdVUk1VS0hJLCAiR3VybXVraGkiKTsgCisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGtleWJvYXJkTWFwOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHN1YnN0aXR1dGlvblRhYmxlOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBqb2luV2l0aE51a3RhOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBudWt0YUZvcm07CisKKyAgICBwcm90ZWN0ZWQgSW5kaWNJbnB1dE1ldGhvZEltcGwgZ2V0SW1wbCgpIHsKKyAgICBpZiAoa2V5Ym9hcmRNYXAgPT0gbnVsbCkgeworICAgICAgICBrZXlib2FyZE1hcCA9IG5ldyBjaGFyW10geworICAgICAgICAvKiAwMCAqLyAnXHUwMDAwJywKKyAgICAgICAgLyogMDEgKi8gJ1x1MDAwMScsCisgICAgICAgIC8qIDAyICovICdcdTAwMDInLAorICAgICAgICAvKiAwMyAqLyAnXHUwMDAzJywKKyAgICAgICAgLyogMDQgKi8gJ1x1MDAwNCcsCisgICAgICAgIC8qIDA1ICovICdcdTAwMDUnLAorICAgICAgICAvKiAwNiAqLyAnXHUwMDA2JywKKyAgICAgICAgLyogMDcgKi8gJ1x1MDAwNycsCisgICAgICAgIC8qIDA4ICovICdcdTAwMDgnLAorICAgICAgICAvKiAwOSAqLyAnXHUwMDA5JywKKyAgICAgICAgLyogMEEgKi8gJ1wwMTInLAorICAgICAgICAvKiAwQiAqLyAnXHUwMDBCJywKKyAgICAgICAgLyogMEMgKi8gJ1x1MDAwQycsCisgICAgICAgIC8qIDBEICovICdcMDE1JywKKyAgICAgICAgLyogMEUgKi8gJ1x1MDAwRScsCisgICAgICAgIC8qIDBGICovICdcdTAwMEYnLAorICAgICAgICAvKiAxMCAqLyAnXHUwMDEwJywKKyAgICAgICAgLyogMTEgKi8gJ1x1MDAxMScsCisgICAgICAgIC8qIDEyICovICdcdTAwMTInLAorICAgICAgICAvKiAxMyAqLyAnXHUwMDEzJywKKyAgICAgICAgLyogMTQgKi8gJ1x1MDAxNCcsCisgICAgICAgIC8qIDE1ICovICdcdTAwMTUnLAorICAgICAgICAvKiAxNiAqLyAnXHUwMDE2JywKKyAgICAgICAgLyogMTcgKi8gJ1x1MDAxNycsCisgICAgICAgIC8qIDE4ICovICdcdTAwMTgnLAorICAgICAgICAvKiAxOSAqLyAnXHUwMDE5JywKKyAgICAgICAgLyogMUEgKi8gJ1x1MDAxQScsCisgICAgICAgIC8qIDFCICovICdcdTAwMUInLAorICAgICAgICAvKiAxQyAqLyAnXHUwMDFDJywKKyAgICAgICAgLyogMUQgKi8gJ1x1MDAxRCcsCisgICAgICAgIC8qIDFFICovICdcdTAwMUUnLAorICAgICAgICAvKiAxRiAqLyAnXHUwMDFGJywKKyAgICAgICAgLyogMjAgKi8gJ1x1MDAyMCcsCisgICAgICAgIC8qIDIxICovICdcdTBBMEQnLCAgIC8vICchJworICAgICAgICAvKiAyMiAqLyAnXHUwQTIwJywgICAvLyAnIicKKyAgICAgICAgLyogMjMgKi8gJ1x1RkYwMCcsICAgLy8gJyMnCisgICAgICAgIC8qIDI0ICovICdcdUZGRkYnLCAgIC8vICckJworICAgICAgICAvKiAyNSAqLyAnXHVGRkZGJywgICAvLyAnJScKKyAgICAgICAgLyogMjYgKi8gJ1x1RkZGRicsICAgLy8gJyYnCisgICAgICAgIC8qIDI3ICovICdcdTBBMUYnLCAgIC8vICcnJworICAgICAgICAvKiAyOCAqLyAnXHUwMDI4JywgICAvLyAnKCcKKyAgICAgICAgLyogMjkgKi8gJ1x1MDAyOScsICAgLy8gJyknCisgICAgICAgIC8qIDJBICovICdcdUZGRkYnLCAgIC8vICcqJworICAgICAgICAvKiAyQiAqLyAnXHUwQTBCJywgICAvLyAnKycKKyAgICAgICAgLyogMkMgKi8gJ1x1MDAyQycsICAgLy8gJywnCisgICAgICAgIC8qIDJEICovICdcdTAwMkQnLCAgIC8vICctJworICAgICAgICAvKiAyRSAqLyAnXHUwMDJFJywgICAvLyAnLicKKyAgICAgICAgLyogMkYgKi8gJ1x1MEEyRicsICAgLy8gJy8nCisgICAgICAgIC8qIDMwICovICdcdTBBNjYnLCAgIC8vICcwJworICAgICAgICAvKiAzMSAqLyAnXHUwQTY3JywgICAvLyAnMScKKyAgICAgICAgLyogMzIgKi8gJ1x1MEE2OCcsICAgLy8gJzInCisgICAgICAgIC8qIDMzICovICdcdTBBNjknLCAgIC8vICczJworICAgICAgICAvKiAzNCAqLyAnXHUwQTZBJywgICAvLyAnNCcKKyAgICAgICAgLyogMzUgKi8gJ1x1MEE2QicsICAgLy8gJzUnCisgICAgICAgIC8qIDM2ICovICdcdTBBNkMnLCAgIC8vICc2JworICAgICAgICAvKiAzNyAqLyAnXHUwQTZEJywgICAvLyAnNycKKyAgICAgICAgLyogMzggKi8gJ1x1MEE2RScsICAgLy8gJzgnCisgICAgICAgIC8qIDM5ICovICdcdTBBNkYnLCAgIC8vICc5JworICAgICAgICAvKiAzQSAqLyAnXHUwQTFCJywgICAvLyAnOicKKyAgICAgICAgLyogM0IgKi8gJ1x1MEExQScsICAgLy8gJzsnCisgICAgICAgIC8qIDNDICovICdcdTBBMzcnLCAgIC8vICc8JworICAgICAgICAvKiAzRCAqLyAnXHUwQTQzJywgICAvLyAnPScKKyAgICAgICAgLyogM0UgKi8gJ1x1MDk2NCcsICAgLy8gJz4nICAoRGV2YW5hZ2FyaSBkYW5kYSkKKyAgICAgICAgLyogM0YgKi8gJ1x1MEE1RicsICAgLy8gJz8nCisgICAgICAgIC8qIDQwICovICdcdTBBNDUnLCAgIC8vICdAJworICAgICAgICAvKiA0MSAqLyAnXHUwQTEzJywgICAvLyAnQScKKyAgICAgICAgLyogNDIgKi8gJ1x1MEEzNCcsICAgLy8gJ0InCisgICAgICAgIC8qIDQzICovICdcdTBBMjMnLCAgIC8vICdDJworICAgICAgICAvKiA0NCAqLyAnXHUwQTA1JywgICAvLyAnRCcKKyAgICAgICAgLyogNDUgKi8gJ1x1MEEwNicsICAgLy8gJ0UnCisgICAgICAgIC8qIDQ2ICovICdcdTBBMDcnLCAgIC8vICdGJworICAgICAgICAvKiA0NyAqLyAnXHUwQTA5JywgICAvLyAnRycKKyAgICAgICAgLyogNDggKi8gJ1x1MEEyQicsICAgLy8gJ0gnCisgICAgICAgIC8qIDQ5ICovICdcdTBBMTgnLCAgIC8vICdJJworICAgICAgICAvKiA0QSAqLyAnXHUwQTMxJywgICAvLyAnSicKKyAgICAgICAgLyogNEIgKi8gJ1x1MEExNicsICAgLy8gJ0snCisgICAgICAgIC8qIDRDICovICdcdTBBMjUnLCAgIC8vICdMJworICAgICAgICAvKiA0RCAqLyAnXHUwQTM2JywgICAvLyAnTScKKyAgICAgICAgLyogNEUgKi8gJ1x1MEEzMycsICAgLy8gJ04nCisgICAgICAgIC8qIDRGICovICdcdTBBMjcnLCAgIC8vICdPJworICAgICAgICAvKiA1MCAqLyAnXHUwQTFEJywgICAvLyAnUCcKKyAgICAgICAgLyogNTEgKi8gJ1x1MEExNCcsICAgLy8gJ1EnCisgICAgICAgIC8qIDUyICovICdcdTBBMDgnLCAgIC8vICdSJworICAgICAgICAvKiA1MyAqLyAnXHUwQTBGJywgICAvLyAnUycKKyAgICAgICAgLyogNTQgKi8gJ1x1MEEwQScsICAgLy8gJ1QnCisgICAgICAgIC8qIDU1ICovICdcdTBBMTknLCAgIC8vICdVJworICAgICAgICAvKiA1NiAqLyAnXHUwQTI5JywgICAvLyAnVicKKyAgICAgICAgLyogNTcgKi8gJ1x1MEExMCcsICAgLy8gJ1cnCisgICAgICAgIC8qIDU4ICovICdcdTBBMDEnLCAgIC8vICdYJworICAgICAgICAvKiA1OSAqLyAnXHUwQTJEJywgICAvLyAnWScKKyAgICAgICAgLyogNUEgKi8gJ1x1MEEwRScsICAgLy8gJ1onCisgICAgICAgIC8qIDVCICovICdcdTBBMjEnLCAgIC8vICdbJworICAgICAgICAvKiA1QyAqLyAnXHUwQTQ5JywgICAvLyAnXCcKKyAgICAgICAgLyogNUQgKi8gJ1x1MEEzQycsICAgLy8gJ10nCisgICAgICAgIC8qIDVFICovICdcdUZGRkYnLCAgIC8vICdeJworICAgICAgICAvKiA1RiAqLyAnXHUwQTAzJywgICAvLyAnXycKKyAgICAgICAgLyogNjAgKi8gJ1x1MEE0QScsICAgLy8gJ2AnCisgICAgICAgIC8qIDYxICovICdcdTBBNEInLCAgIC8vICdhJworICAgICAgICAvKiA2MiAqLyAnXHUwQTM1JywgICAvLyAnYicKKyAgICAgICAgLyogNjMgKi8gJ1x1MEEyRScsICAgLy8gJ2MnCisgICAgICAgIC8qIDY0ICovICdcdTBBNEQnLCAgIC8vICdkJworICAgICAgICAvKiA2NSAqLyAnXHUwQTNFJywgICAvLyAnZScKKyAgICAgICAgLyogNjYgKi8gJ1x1MEEzRicsICAgLy8gJ2YnCisgICAgICAgIC8qIDY3ICovICdcdTBBNDEnLCAgIC8vICdnJworICAgICAgICAvKiA2OCAqLyAnXHUwQTJBJywgICAvLyAnaCcKKyAgICAgICAgLyogNjkgKi8gJ1x1MEExNycsICAgLy8gJ2knCisgICAgICAgIC8qIDZBICovICdcdTBBMzAnLCAgIC8vICdqJworICAgICAgICAvKiA2QiAqLyAnXHUwQTE1JywgICAvLyAnaycKKyAgICAgICAgLyogNkMgKi8gJ1x1MEEyNCcsICAgLy8gJ2wnCisgICAgICAgIC8qIDZEICovICdcdTBBMzgnLCAgIC8vICdtJworICAgICAgICAvKiA2RSAqLyAnXHUwQTMyJywgICAvLyAnbicKKyAgICAgICAgLyogNkYgKi8gJ1x1MEEyNicsICAgLy8gJ28nCisgICAgICAgIC8qIDcwICovICdcdTBBMUMnLCAgIC8vICdwJworICAgICAgICAvKiA3MSAqLyAnXHUwQTRDJywgICAvLyAncScKKyAgICAgICAgLyogNzIgKi8gJ1x1MEE0MCcsICAgLy8gJ3InCisgICAgICAgIC8qIDczICovICdcdTBBNDcnLCAgIC8vICdzJworICAgICAgICAvKiA3NCAqLyAnXHUwQTQyJywgICAvLyAndCcKKyAgICAgICAgLyogNzUgKi8gJ1x1MEEzOScsICAgLy8gJ3UnCisgICAgICAgIC8qIDc2ICovICdcdTBBMjgnLCAgIC8vICd2JworICAgICAgICAvKiA3NyAqLyAnXHUwQTQ4JywgICAvLyAndycKKyAgICAgICAgLyogNzggKi8gJ1x1MEE3MCcsICAgLy8gJ3gnIChHdXJtdWtoaSBUSVBQSSByYXRoZXIgdGhhbiBCSU5ESSkKKyAgICAgICAgLyogNzkgKi8gJ1x1MEEyQycsICAgLy8gJ3knCisgICAgICAgIC8qIDdBICovICdcdTBBNDYnLCAgIC8vICd6JworICAgICAgICAvKiA3QiAqLyAnXHUwQTIyJywgICAvLyAneycKKyAgICAgICAgLyogN0MgKi8gJ1x1MEExMScsICAgLy8gJ3wnCisgICAgICAgIC8qIDdEICovICdcdTBBMUUnLCAgIC8vICd9JworICAgICAgICAvKiA3RSAqLyAnXHUwQTEyJywgICAvLyAnficKKyAgICAgICAgLyogN0YgKi8gJ1x1MDA3RicgICAgLy8gJ38nCisgICAgICAgIH07CisKKyAgICAgICAgY2hhcltdIFJBX1NVQiA9IHsnXHUwQTREJywgJ1x1MEEzMCd9OworCisgICAgICAgIHN1YnN0aXR1dGlvblRhYmxlID0gbmV3IGNoYXJbXVtdIHsKKyAgICAgICAgUkFfU1VCCisgICAgICAgIH07CisKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGZvbGxvd2VkIGJ5IE51a3RhIHNob3VsZCBiZSByZXBsYWNlZAorICAgICAgICAvLyBieSB0aGUgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXIgYXMgZGVmaW5lZCBpbiBJU0NJSTkxCisgICAgICAgIGNoYXIgTEVUVEVSX0tIQSAgICAgICAgICAgID0gJ1x1MEExNic7CisgICAgICAgIGNoYXIgTEVUVEVSX0dBICAgICAgICAgICAgID0gJ1x1MEExNyc7CisgICAgICAgIGNoYXIgTEVUVEVSX0pBICAgICAgICAgICAgID0gJ1x1MEExQyc7CisgICAgICAgIGNoYXIgTEVUVEVSX0REQSAgICAgICAgICAgID0gJ1x1MEEyMSc7CisgICAgICAgIGNoYXIgTEVUVEVSX1BIQSAgICAgICAgICAgID0gJ1x1MEEyQic7CisKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIHJlcGxhY2UgdGhlIGFib3ZlIGNoYXJhY3RlcnMgZm9sbG93ZWQgYnkgTnVrdGEuIFRoZXNlCisgICAgICAgIC8vIGFyZSBkZWZpbmVkIGluIG9uZSB0byBvbmUgY29ycmVzcG9uZGVuY2Ugb3JkZXIuCisgICAgICAgIC8vIE5PVEU6IHRoZSBpbnNjcmlwdCBrZXlib2FyZCBkb2MuIGxpc3RzIGEgS0EgKyBOVUtUQSBhbmQgYSBEREhBICsgTlVLVEEKKyAgICAgICAgLy8gbmVpdGhlciBvZiB3aGljaCBzZWVtIHRvIGhhdmUgVW5pY29kZSBjb2RlIHBvaW50cy4uLgorICAgICAgICBjaGFyIExFVFRFUl9LSEhBICAgICAgICAgICA9ICdcdTBBNTknOworICAgICAgICBjaGFyIExFVFRFUl9HSEhBICAgICAgICAgICA9ICdcdTBBNUEnOworICAgICAgICBjaGFyIExFVFRFUl9aQSAgICAgICAgICAgICA9ICdcdTBBNUInOworICAgICAgICBjaGFyIExFVFRFUl9SUkEgICAgICAgICAgICA9ICdcdTBBNUMnOworICAgICAgICBjaGFyIExFVFRFUl9GQSAgICAgICAgICAgICA9ICdcdTBBNUUnOworCisgICAgICAgIGpvaW5XaXRoTnVrdGEgPSBuZXcgY2hhcltdIHsKKyAgICAgICAgTEVUVEVSX0tIQSwKKyAgICAgICAgTEVUVEVSX0dBLAorICAgICAgICBMRVRURVJfSkEsCisgICAgICAgIExFVFRFUl9EREEsCisgICAgICAgIExFVFRFUl9QSEEKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgbnVrdGFGb3JtID0gbmV3IGNoYXJbXSB7CisgICAgICAgIExFVFRFUl9LSEhBLAorICAgICAgICBMRVRURVJfR0hIQSwKKyAgICAgICAgTEVUVEVSX1pBLAorICAgICAgICBMRVRURVJfUlJBLAorICAgICAgICBMRVRURVJfRkEKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBJbmRpY0lucHV0TWV0aG9kSW1wbChrZXlib2FyZE1hcCwgam9pbldpdGhOdWt0YSwgbnVrdGFGb3JtLCBzdWJzdGl0dXRpb25UYWJsZSk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0luZGljSU1EZXNjcmlwdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0luZGljSU1EZXNjcmlwdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMzODBiNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvSW5kaWNJTURlc2NyaXB0b3IuamF2YQpAQCAtMCwwICsxLDU3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYzsKKworaW1wb3J0IGphdmEuYXd0LkltYWdlOworaW1wb3J0IGphdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZDsKK2ltcG9ydCBqYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2REZXNjcmlwdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgSW5kaWNJTURlc2NyaXB0b3IgaW1wbGVtZW50cyBJbnB1dE1ldGhvZERlc2NyaXB0b3IgeworICAgIHByaXZhdGUgZmluYWwgTG9jYWxlIGxvY2FsZTsKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBuYW1lOworCisgICAgcHJvdGVjdGVkIEluZGljSU1EZXNjcmlwdG9yKExvY2FsZSBsb2NhbGUsIFN0cmluZyBuYW1lKSB7CisgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisgICAgdGhpcy5uYW1lID0gbmFtZTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgSW5kaWNJbnB1dE1ldGhvZEltcGwgZ2V0SW1wbCgpOworCisgICAgcHVibGljIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIHJldHVybiBuZXcgTG9jYWxlW10geyBsb2NhbGUgfTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNEeW5hbWljTG9jYWxlTGlzdCgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgU3RyaW5nIGdldElucHV0TWV0aG9kRGlzcGxheU5hbWUoTG9jYWxlIGlucHV0TG9jYWxlLCBMb2NhbGUgZGlzcGxheUxhbmd1YWdlKSB7CisgICAgdHJ5IHsKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgcmIgPSBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUoImNvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYy5EaXNwbGF5TmFtZXMiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUxhbmd1YWdlKTsKKyAgICAgICAgcmV0dXJuIHJiLmdldFN0cmluZygiRGlzcGxheU5hbWUuIiArIG5hbWUpOworICAgIH0KKyAgICBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBJbWFnZSBnZXRJbnB1dE1ldGhvZEljb24oTG9jYWxlIGlucHV0TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBJbnB1dE1ldGhvZCBjcmVhdGVJbnB1dE1ldGhvZCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICByZXR1cm4gbmV3IEluZGljSW5wdXRNZXRob2QobG9jYWxlLCBnZXRJbXBsKCkpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgcmV0dXJuIG5hbWU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9JbmRpY0lucHV0TWV0aG9kLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0luZGljSW5wdXRNZXRob2QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzNhYTIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9JbmRpY0lucHV0TWV0aG9kLmphdmEKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWM7CisKK2ltcG9ydCBqYXZhLmF3dC5BV1RFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuaW0uc3BpLklucHV0TWV0aG9kOworaW1wb3J0IGphdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZENvbnRleHQ7CitpbXBvcnQgamF2YS5sYW5nLkNoYXJhY3Rlci5TdWJzZXQ7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBUaGlzIHN0dWIgZGVsZWdhdGVzIHRvIHRoZSBzaW1wbGVyIEluZGljSW5wdXRNZXRob2RJbXBsLgorICovCitjbGFzcyBJbmRpY0lucHV0TWV0aG9kIGltcGxlbWVudHMgSW5wdXRNZXRob2QgeworICAgIHByaXZhdGUgSW5kaWNJbnB1dE1ldGhvZEltcGwgaW1wbDsKKyAgICBwcml2YXRlIExvY2FsZSBsb2NhbGU7CisgICAgCisgICAgSW5kaWNJbnB1dE1ldGhvZChMb2NhbGUgdGhlTG9jYWxlLCBJbmRpY0lucHV0TWV0aG9kSW1wbCB0aGVJbXBsZW1lbnRhdGlvbikgeworICAgICAgICBsb2NhbGUgPSB0aGVMb2NhbGU7CisgICAgICAgIGltcGwgPSB0aGVJbXBsZW1lbnRhdGlvbjsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0SW5wdXRNZXRob2RDb250ZXh0KElucHV0TWV0aG9kQ29udGV4dCBjb250ZXh0KSB7CisgICAgICAgIGltcGwuc2V0SW5wdXRNZXRob2RDb250ZXh0KGNvbnRleHQpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIHNldExvY2FsZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBsb2NhbGUuZ2V0TGFuZ3VhZ2UoKS5lcXVhbHModGhpcy5sb2NhbGUuZ2V0TGFuZ3VhZ2UoKSk7CisgICAgfQorCisgICAgcHVibGljIExvY2FsZSBnZXRMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiBsb2NhbGU7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldENoYXJhY3RlclN1YnNldHMoU3Vic2V0W10gc3Vic2V0cykgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldENvbXBvc2l0aW9uRW5hYmxlZChib29sZWFuIGVuYWJsZSkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0NvbXBvc2l0aW9uRW5hYmxlZCgpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVjb252ZXJ0KCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIlRoaXMgaW5wdXQgbWV0aG9kIGRvZXMgbm90IHJlY29udmVydC4iKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkaXNwYXRjaEV2ZW50KEFXVEV2ZW50IGV2ZW50KSB7CisgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEtleUV2ZW50KSB7CisgICAgICAgICAgICBLZXlFdmVudCBrZXlFdmVudCA9IChLZXlFdmVudCkgZXZlbnQ7CisgICAgICAgICAgICBpZiAoZXZlbnQuZ2V0SUQoKSA9PSBLZXlFdmVudC5LRVlfVFlQRUQpIHsKKyAgICAgICAgICAgICAgICBpbXBsLmhhbmRsZUtleVR5cGVkKGtleUV2ZW50KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbm90aWZ5Q2xpZW50V2luZG93Q2hhbmdlKFJlY3RhbmdsZSBib3VuZHMpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhY3RpdmF0ZSgpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkZWFjdGl2YXRlKGJvb2xlYW4gaXNUZW1wb3JhcnkpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBoaWRlV2luZG93cygpIHsKKyAgICB9CisgIAorICAgIHB1YmxpYyB2b2lkIHJlbW92ZU5vdGlmeSgpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBlbmRDb21wb3NpdGlvbigpIHsKKyAgICAgICAgaW1wbC5lbmRDb21wb3NpdGlvbigpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRpc3Bvc2UoKSB7CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBnZXRDb250cm9sT2JqZWN0KCkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0luZGljSW5wdXRNZXRob2RJbXBsLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0luZGljSW5wdXRNZXRob2RJbXBsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVlNGYzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvSW5kaWNJbnB1dE1ldGhvZEltcGwuamF2YQpAQCAtMCwwICsxLDQzOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWM7CisKK2ltcG9ydCBqYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2RDb250ZXh0OworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSW5wdXRNZXRob2RFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGU7CitpbXBvcnQgamF2YS5hd3QuZm9udC5UZXh0SGl0SW5mbzsKK2ltcG9ydCBqYXZhLnRleHQuQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCitjbGFzcyBJbmRpY0lucHV0TWV0aG9kSW1wbCB7CisgICAgCisgICAgcHJvdGVjdGVkIGNoYXJbXSBLQkRfTUFQOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgU1VCU1RJVFVUSU9OX0JBU0UgPSAnXHVmZjAwJzsKKworICAgIC8vIEluZGV4ZWQgYnkgbWFwIHZhbHVlIC0gU1VCU1RJVFVUSU9OX0JBU0UKKyAgICBwcm90ZWN0ZWQgY2hhcltdW10gU1VCU1RJVFVUSU9OX1RBQkxFOworCisgICAgLy8gSW52YWxpZCBjaGFyYWN0ZXIuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBJTlZBTElEX0NIQVIgICAgICAgICAgICAgID0gJ1x1ZmZmZic7CisKKyAgICAvLyBVbm1hcHBlZCB2ZXJzaW9ucyBvZiBzb21lIGludGVyZXN0aW5nIGNoYXJhY3RlcnMuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBLRVlfU0lHTl9WSVJBTUEgICAgICAgICAgID0gJ1x1MDA2NCc7IC8vIG9yIGp1c3QgJ2QnPz8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEtFWV9TSUdOX05VS1RBICAgICAgICAgICAgPSAnXHUwMDVkJzsgIC8vIG9yIGp1c3QgJ10nPz8KKworICAgIC8vIFR3byBzdWNjZWVkaW5nIHZpcmFtYXMgYXJlIHJlcGxhY2VkIGJ5IG9uZSB2aXJhbWEgYW5kIG9uZSBaV05KLgorICAgIC8vIFZpcmFtIGZvbGxvd2VkIGJ5IE51a3RhIGlzIHJlcGxhY2VkIGJ5IG9uZSBWSVJBTUEgYW5kIG9uZSBaV0oKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFpXSiAgICAgICAgICAgICAgICAgICAgICAgPSAnXHUyMDBkJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFpXTkogICAgICAgICAgICAgICAgICAgICAgPSAnXHUyMDBjJzsKKyAgICAKKyAgICAvLyBCYWNrc3BhY2UKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEJBQ0tTUEFDRSAgICAgICAgICAgICAgICAgPSAnXHUwMDA4JzsKKworICAgIC8vIFNvcnRlZCBsaXN0IG9mIGNoYXJhY3RlcnMgd2hpY2ggY2FuIGJlIGZvbGxvd2VkIGJ5IE51a3RhCisgICAgcHJvdGVjdGVkIGNoYXJbXSBKT0lOX1dJVEhfTlVLVEE7CisgICAgCisgICAgLy8gTnVrdGEgZm9ybSBvZiB0aGUgYWJvdmUgY2hhcmFjdGVycworICAgIHByb3RlY3RlZCBjaGFyW10gTlVLVEFfRk9STTsKKyAgICAgICAgCisgICAgcHJpdmF0ZSBpbnQgbG9nMjsKKyAgICBwcml2YXRlIGludCBwb3dlcjsKKyAgICBwcml2YXRlIGludCBleHRyYTsKKworICAgIC8vIGNhY2hlZCBUZXh0SGl0SW5mby4gT25seSBvbmUgdHlwZSBvZiBUZXh0SGl0SW5mbyBpcyByZXF1aXJlZC4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBUZXh0SGl0SW5mbyBaRVJPX1RSQUlMSU5HX0hJVF9JTkZPID0gVGV4dEhpdEluZm8udHJhaWxpbmcoMCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZ2l2ZW4gY2hhcmFjdGVyIGluIHRoZSBKT0lOX1dJVEhfTlVLVEEgYXJyYXkuCisgICAgICogSWYgY2hhcmFjdGVyIGlzIG5vdCBmb3VuZCwgLTEgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbnVrdGFJbmRleChjaGFyIGNoKSB7CisgICAgICAgIGlmIChKT0lOX1dJVEhfTlVLVEEgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgcHJvYmUgPSBwb3dlcjsKKyAgICAgICAgaW50IGluZGV4ID0gMDsKKworICAgICAgICBpZiAoSk9JTl9XSVRIX05VS1RBW2V4dHJhXSA8PSBjaCkgeworICAgICAgICAgICAgaW5kZXggPSBleHRyYTsKKyAgICAgICAgfQorICAgICAgICAgCisgICAgICAgIHdoaWxlIChwcm9iZSA+ICgxIDw8IDApKSB7CisgICAgICAgICAgICBwcm9iZSA+Pj0gMTsKKworICAgICAgICAgICAgaWYgKEpPSU5fV0lUSF9OVUtUQVtpbmRleCArIHByb2JlXSA8PSBjaCkgeworICAgICAgICAgICAgICAgIGluZGV4ICs9IHByb2JlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKEpPSU5fV0lUSF9OVUtUQVtpbmRleF0gIT0gY2gpIHsKKyAgICAgICAgICAgIGluZGV4ID0gLTE7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGVxdWl2YWxlbnQgY2hhcmFjdGVyIGZvciBoaW5kaSBsb2NhbGUuCisgICAgICogQHBhcmFtIG9yaWdpbmFsQ2hhciBUaGUgb3JpZ2luYWwgY2hhcmFjdGVyLgorICAgICAqLworICAgIHByaXZhdGUgY2hhciBnZXRNYXBwZWRDaGFyKGNoYXIgb3JpZ2luYWxDaGFyKSB7CisgICAgICAgIGlmIChvcmlnaW5hbENoYXIgPD0gS0JEX01BUC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiBLQkRfTUFQW29yaWdpbmFsQ2hhcl07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBvcmlnaW5hbENoYXI7CisgICAgfQorICAgIAorICAgIC8vIEFycmF5IHVzZWQgdG8gaG9sZCB0aGUgdGV4dCB0byBiZSBzZW50LgorICAgIC8vIElmIHRoZSBsYXN0IGNoYXJhY3RlciB3YXMgbm90IGNvbW1pdHRlZCBpdCBpcyBzdG9yZWQgaW4gdGV4dFswXS4KKyAgICAvLyBUaGUgdmFyaWFibGUgdG90YWxDaGFycyBnaXZlIGFuIGluZGljYXRpb24gb2Ygd2hldGhlciB0aGUgbGFzdAorICAgIC8vIGNoYXJhY3RlciB3YXMgY29tbWl0dGVkIG9yIG5vdC4gSWYgYXQgYW55IHRpbWUgKCBidXQgbm90IHdpdGhpbiBhCisgICAgLy8gYSBjYWxsIHRvIGRpc3BhdGNoRXZlbnQgKSB0b3RhbENoYXJzIGlzIG5vdCBlcXVhbCB0byAwICggaXQgY2FuCisgICAgLy8gb25seSBiZSAxIG90aGVyd2lzZSApIHRoZSBsYXN0IGNoYXJhY3RlciB3YXMgbm90IGNvbW1pdHRlZC4KKyAgICBwcml2YXRlIGNoYXIgW10gdGV4dCA9IG5ldyBjaGFyWzRdOworCisgICAgLy8gdGhpcyBpcyBhbHdheXMgMCBiZWZvcmUgYW5kIGFmdGVyIGNhbGwgdG8gZGlzcGF0Y2hFdmVudC4gVGhpcyBjaGFyYWN0ZXIgYXNzdW1lcworICAgIC8vIHNpZ25pZmljYW5jZSBvbmx5IHdpdGhpbiBhIGNhbGwgdG8gZGlzcGF0Y2hFdmVudC4KKyAgICBwcml2YXRlIGludCBjb21taXR0ZWRDaGFycyA9IDA7Ly8gbnVtYmVyIG9mIGNvbW1pdHRlZCBjaGFyYWN0ZXJzCisKKyAgICAvLyB0aGUgdG90YWwgdmFsaWQgY2hhcmFjdGVycyBpbiB2YXJpYWJsZSB0ZXh0IGN1cnJlbnRseS4KKyAgICBwcml2YXRlIGludCB0b3RhbENoYXJzID0gMDsvL251bWJlciBvZiB0b3RhbCBjaGFyYWN0ZXJzICggY29tbWl0dGVkICsgY29tcG9zZWQgKQorCisgICAgcHJpdmF0ZSBib29sZWFuIGxhc3RDaGFyV2FzVmlyYW1hID0gZmFsc2U7CisgICAgCisgICAgcHJpdmF0ZSBJbnB1dE1ldGhvZENvbnRleHQgY29udGV4dDsKKworICAgIC8vCisgICAgLy8gRmluZHMgdGhlIGhpZ2ggYml0IGJ5IGJpbmFyeSBzZWFyY2hpbmcKKyAgICAvLyB0aHJvdWdoIHRoZSBiaXRzIGluIG4uCisgICAgLy8KKyAgICBwcml2YXRlIHN0YXRpYyBieXRlIGhpZ2hCaXQoaW50IG4pIHsKKyAgICAgICAgaWYgKG4gPD0gMCkgeworICAgICAgICAgICAgcmV0dXJuIC0zMjsKKyAgICAgICAgfQorCisgICAgICAgIGJ5dGUgYml0ID0gMDsKKworICAgICAgICBpZiAobiA+PSAxIDw8IDE2KSB7CisgICAgICAgICAgICBuID4+PSAxNjsKKyAgICAgICAgICAgIGJpdCArPSAxNjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID49IDEgPDwgOCkgeworICAgICAgICAgICAgbiA+Pj0gODsKKyAgICAgICAgICAgIGJpdCArPSA4OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCA0KSB7CisgICAgICAgICAgICBuID4+PSA0OworICAgICAgICAgICAgYml0ICs9IDQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAobiA+PSAxIDw8IDIpIHsKKyAgICAgICAgICAgIG4gPj49IDI7CisgICAgICAgICAgICBiaXQgKz0gMjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID49IDEgPDwgMSkgeworICAgICAgICAgICAgbiA+Pj0gMTsKKyAgICAgICAgICAgIGJpdCArPSAxOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGJpdDsKKyAgICB9CisKKyAgICBJbmRpY0lucHV0TWV0aG9kSW1wbChjaGFyW10ga2V5Ym9hcmRNYXAsIGNoYXJbXSBqb2luV2l0aE51a3RhLCBjaGFyW10gbnVrdGFGb3JtLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW11bXSBzdWJzdGl0dXRpb25UYWJsZSkgeworICAgICAgICBLQkRfTUFQID0ga2V5Ym9hcmRNYXA7CisgICAgICAgIEpPSU5fV0lUSF9OVUtUQSA9IGpvaW5XaXRoTnVrdGE7CisgICAgICAgIE5VS1RBX0ZPUk0gPSBudWt0YUZvcm07CisgICAgICAgIFNVQlNUSVRVVElPTl9UQUJMRSA9IHN1YnN0aXR1dGlvblRhYmxlOworICAgICAgICAKKyAgICAgICAgaWYgKEpPSU5fV0lUSF9OVUtUQSAhPSBudWxsKSB7CisgICAgICAgICAgICBpbnQgbG9nMiA9IGhpZ2hCaXQoSk9JTl9XSVRIX05VS1RBLmxlbmd0aCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHBvd2VyID0gMSA8PCBsb2cyOworICAgICAgICAgICAgZXh0cmEgPSBKT0lOX1dJVEhfTlVLVEEubGVuZ3RoIC0gcG93ZXI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwb3dlciA9IGV4dHJhID0gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9CisgICAgCisgICAgdm9pZCBzZXRJbnB1dE1ldGhvZENvbnRleHQoSW5wdXRNZXRob2RDb250ZXh0IGNvbnRleHQpIHsKKyAgICAgICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDsKKyAgICB9CisgICAgCisgICAgdm9pZCBoYW5kbGVLZXlUeXBlZChLZXlFdmVudCBrZXZlbnQpIHsKKyAgICAgICAgY2hhciBrZXlDaGFyID0ga2V2ZW50LmdldEtleUNoYXIoKTsKKyAgICAgICAgY2hhciBjdXJyZW50Q2hhciA9IGdldE1hcHBlZENoYXIoa2V5Q2hhcik7CisgICAgICAgIAorICAgICAgICAvLyBUaGUgRXhwbGljaXQgYW5kIFNvZnQgSGFsYW50YSBjYXNlLgorICAgICAgICBpZiAoIGxhc3RDaGFyV2FzVmlyYW1hICkgeworICAgICAgICAgICAgc3dpdGNoIChrZXlDaGFyKSB7CisgICAgICAgICAgICBjYXNlIEtFWV9TSUdOX05VS1RBOgorICAgICAgICAgICAgICAgIGN1cnJlbnRDaGFyID0gWldKOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLRVlfU0lHTl9WSVJBTUE6CisgICAgICAgICAgICAgICAgY3VycmVudENoYXIgPSBaV05KOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIH0vL2VuZFN3aXRjaAorICAgICAgICB9Ly9lbmRpZgorCisgICAgICAgIGlmIChjdXJyZW50Q2hhciA9PSBJTlZBTElEX0NIQVIpIHsKKyAgICAgICAgICAgIGtldmVudC5jb25zdW1lKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoY3VycmVudENoYXIgPT0gQkFDS1NQQUNFKSB7CisgICAgICAgICAgICBsYXN0Q2hhcldhc1ZpcmFtYSA9IGZhbHNlOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodG90YWxDaGFycyA+IDApIHsKKyAgICAgICAgICAgICAgICB0b3RhbENoYXJzID0gY29tbWl0dGVkQ2hhcnMgPSAwOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGtleUNoYXIgPT0gS0VZX1NJR05fTlVLVEEpIHsKKyAgICAgICAgICAgIGludCBudWt0YUluZGV4ID0gbnVrdGFJbmRleCh0ZXh0WzBdKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG51a3RhSW5kZXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICB0ZXh0WzBdID0gTlVLVEFfRk9STVtudWt0YUluZGV4XTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gdGhlIGxhc3QgY2hhcmFjdGVyIHdhcyBjb21taXR0ZWQsIGNvbW1pdCBqdXN0IE51a3RhLgorICAgICAgICAgICAgICAgIC8vIE5vdGUgOiB0aGUgbGFzdENoYXIgbXVzdCBoYXZlIGJlZW4gY29tbWl0dGVkIGlmIGl0IGlzIG5vdCBvbmUgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgY2hhcmFjdGVycyB3aGljaCBjb21iaW5lIHdpdGggbnVrdGEuCisgICAgICAgICAgICAgICAgLy8gdGhlIHN0YXRlIG11c3QgYmUgdG90YWxDaGFycyA9IGNvbW1pdHRlZENoYXJzID0gMDsKKyAgICAgICAgICAgICAgICB0ZXh0W3RvdGFsQ2hhcnMrK10gPSBjdXJyZW50Q2hhcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgY29tbWl0dGVkQ2hhcnMgKz0gMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGludCBudWt0YUluZGV4ID0gbnVrdGFJbmRleChjdXJyZW50Q2hhcik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChudWt0YUluZGV4ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgLy8gQ29tbWl0IGV2ZXJ5dGhpbmcgYnV0IGN1cnJlbnRDaGFyCisgICAgICAgICAgICAgICAgdGV4dFt0b3RhbENoYXJzKytdID0gY3VycmVudENoYXI7CisgICAgICAgICAgICAgICAgY29tbWl0dGVkQ2hhcnMgPSB0b3RhbENoYXJzLTE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Q2hhciA+PSBTVUJTVElUVVRJT05fQkFTRSkgeworICAgICAgICAgICAgICAgICAgICBjaGFyW10gc3ViID0gU1VCU1RJVFVUSU9OX1RBQkxFW2N1cnJlbnRDaGFyIC0gU1VCU1RJVFVUSU9OX0JBU0VdOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzdWIsIDAsIHRleHQsIHRvdGFsQ2hhcnMsIHN1Yi5sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICB0b3RhbENoYXJzICs9IHN1Yi5sZW5ndGg7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dFt0b3RhbENoYXJzKytdID0gY3VycmVudENoYXI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNvbW1pdHRlZENoYXJzID0gdG90YWxDaGFyczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQUNJVGV4dCBhVGV4dCA9IG5ldyBBQ0lUZXh0KCB0ZXh0LCAwLCB0b3RhbENoYXJzLCBjb21taXR0ZWRDaGFycyApOworICAgICAgICBpbnQgY29tcG9zZWRDaGFyTGVuZ3RoID0gdG90YWxDaGFycyAtIGNvbW1pdHRlZENoYXJzOworICAgICAgICBUZXh0SGl0SW5mbyBjYXJldD1udWxsLHZpc2libGVQb3NpdGlvbj1udWxsOworICAgICAgICBzd2l0Y2goIGNvbXBvc2VkQ2hhckxlbmd0aCApIHsKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICB2aXNpYmxlUG9zaXRpb24gPSBjYXJldCA9IFpFUk9fVFJBSUxJTkdfSElUX0lORk87CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIC8vIFRoZSBjb2RlIHNob3VsZCBub3QgcmVhY2ggaGVyZS4gVGhlcmUgaXMgbm8gY2FzZSB3aGVyZSB0aGVyZSBjYW4gYmUKKyAgICAgICAgICAgICAgICAvLyBtb3JlIHRoYW4gb25lIGNoYXJhY3RlciBwZW5kaW5nLgorICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgY29udGV4dC5kaXNwYXRjaElucHV0TWV0aG9kRXZlbnQoSW5wdXRNZXRob2RFdmVudC5JTlBVVF9NRVRIT0RfVEVYVF9DSEFOR0VELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWl0dGVkQ2hhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlUG9zaXRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAodG90YWxDaGFycyA9PSAwKSB7CisgICAgICAgICAgICB0ZXh0WzBdID0gSU5WQUxJRF9DSEFSOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGV4dFswXSA9IHRleHRbdG90YWxDaGFycyAtIDFdOy8vIG1ha2UgdGV4dFswXSBob2xkIHRoZSBsYXN0IGNoYXJhY3RlcgorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBsYXN0Q2hhcldhc1ZpcmFtYSA9ICBrZXlDaGFyID09IEtFWV9TSUdOX1ZJUkFNQSAmJiAhbGFzdENoYXJXYXNWaXJhbWE7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB0b3RhbENoYXJzIC09IGNvbW1pdHRlZENoYXJzOworICAgICAgICBjb21taXR0ZWRDaGFycyA9IDA7CisgICAgICAgIC8vIHN0YXRlIG5vdyB0ZXh0WzBdID0gbGFzdCBjaGFyYWN0ZXIKKyAgICAgICAgLy8gdG90YWxDaGFycyA9ICggbGFzdCBjaGFyYWN0ZXIgY29tbWl0dGVkICk/IDAgOiAxOworICAgICAgICAvLyBjb21taXR0ZWRDaGFycyA9IDA7CisKKyAgICAgICAga2V2ZW50LmNvbnN1bWUoKTsvLyBwcmV2ZW50IGNsaWVudCBmcm9tIGdldHRpbmcgdGhpcyBldmVudC4KKyAgICB9CisKKyAgICB2b2lkIGVuZENvbXBvc2l0aW9uKCkgeworICAgICAgICBpZiggdG90YWxDaGFycyAhPSAwICkgey8vIGlmIHNvbWUgY2hhcmFjdGVyIGlzIG5vdCBjb21taXR0ZWQuCisgICAgICAgICAgICBBQ0lUZXh0IGFUZXh0ID0gbmV3IEFDSVRleHQoIHRleHQsIDAsIHRvdGFsQ2hhcnMsIHRvdGFsQ2hhcnMgKTsKKyAgICAgICAgICAgIGNvbnRleHQuZGlzcGF0Y2hJbnB1dE1ldGhvZEV2ZW50KCBJbnB1dE1ldGhvZEV2ZW50LklOUFVUX01FVEhPRF9URVhUX0NIQU5HRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFUZXh0LCB0b3RhbENoYXJzLCBudWxsLCBudWxsICk7CisgICAgICAgICAgICB0b3RhbENoYXJzID0gY29tbWl0dGVkQ2hhcnMgPSAwOworICAgICAgICAgICAgdGV4dFswXSA9IElOVkFMSURfQ0hBUjsKKyAgICAgICAgICAgIGxhc3RDaGFyV2FzVmlyYW1hID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gY3VzdG9tIEF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvciAtLSBtdWNoIGxpZ2h0d2VpZ2h0IHNpbmNlIGN1cnJlbnRseSB0aGVyZSBpcyBubworICAgIC8vIGF0dHJpYnV0ZSBkZWZpbmVkIG9uIHRoZSB0ZXh0IGJlaW5nIGdlbmVyYXRlZCBieSB0aGUgaW5wdXQgbWV0aG9kLgorICAgIHByaXZhdGUgY2xhc3MgQUNJVGV4dCBpbXBsZW1lbnRzIEF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvciB7CisgICAgICAgIHByaXZhdGUgY2hhciBbXSB0ZXh0ID0gbnVsbDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgY29tbWl0dGVkID0gMDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgaW5kZXggPSAwOworCisgICAgICAgIEFDSVRleHQoIGNoYXIgW10gY2hBcnJheSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCwgaW50IGNvbW1pdHRlZCApIHsKKyAgICAgICAgICAgIHRoaXMudGV4dCA9IG5ldyBjaGFyW2xlbmd0aF07CisgICAgICAgICAgICB0aGlzLmNvbW1pdHRlZCA9IGNvbW1pdHRlZDsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoIGNoQXJyYXksIG9mZnNldCwgdGV4dCwgMCwgbGVuZ3RoICk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGFyYWN0ZXJJdGVyYXRvciBtZXRob2RzLgorICAgICAgICBwdWJsaWMgY2hhciBmaXJzdCgpIHsKKyAgICAgICAgICAgIHJldHVybiBfc2V0SW5kZXgoIDAgKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjaGFyIGxhc3QoKSB7CisgICAgICAgICAgICBpZiggdGV4dC5sZW5ndGggPT0gMCApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gX3NldEluZGV4KCB0ZXh0Lmxlbmd0aCApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIF9zZXRJbmRleCggdGV4dC5sZW5ndGggLSAxICk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgY2hhciBjdXJyZW50KCkgeworICAgICAgICAgICAgaWYoIGluZGV4ID09IHRleHQubGVuZ3RoICkKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0W2luZGV4XTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjaGFyIG5leHQoKSB7CisgICAgICAgICAgICBpZiggaW5kZXggPT0gdGV4dC5sZW5ndGggKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gX3NldEluZGV4KCBpbmRleCArIDEgKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjaGFyIHByZXZpb3VzKCkgeworICAgICAgICAgICAgaWYoIGluZGV4ID09IDAgKQorICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgcmV0dXJuIF9zZXRJbmRleCggaW5kZXggLSAxICk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgY2hhciBzZXRJbmRleChpbnQgcG9zaXRpb24pIHsKKyAgICAgICAgICAgIGlmKCBwb3NpdGlvbiA8IDAgfHwgcG9zaXRpb24gPiB0ZXh0Lmxlbmd0aCApIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gX3NldEluZGV4KCBwb3NpdGlvbiApOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRCZWdpbkluZGV4KCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldEVuZEluZGV4KCkgeworICAgICAgICAgICAgcmV0dXJuIHRleHQubGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRJbmRleCgpIHsKKyAgICAgICAgICAgIHJldHVybiBpbmRleDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIEFDSVRleHQgY2xvbmUgPSAoQUNJVGV4dCkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2xvbmU7CisgICAgICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIG1ldGhvZHMuCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0UnVuU3RhcnQoKSB7CisgICAgICAgICAgICByZXR1cm4gaW5kZXggPj0gY29tbWl0dGVkID8gY29tbWl0dGVkIDogMDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0UnVuU3RhcnQoQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yLkF0dHJpYnV0ZSBhdHRyaWJ1dGUpIHsKKyAgICAgICAgICAgIHJldHVybiAoaW5kZXggPj0gY29tbWl0dGVkICYmCisgICAgICAgICAgICAgICAgYXR0cmlidXRlID09IFRleHRBdHRyaWJ1dGUuSU5QVVRfTUVUSE9EX1VOREVSTElORSkgPyBjb21taXR0ZWQgOiAwOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRSdW5TdGFydChTZXQgYXR0cmlidXRlcykgeworICAgICAgICAgICAgcmV0dXJuIChpbmRleCA+PSBjb21taXR0ZWQgJiYKKyAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcy5jb250YWlucyhUZXh0QXR0cmlidXRlLklOUFVUX01FVEhPRF9VTkRFUkxJTkUpKSA/IGNvbW1pdHRlZCA6IDA7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldFJ1bkxpbWl0KCkgeworICAgICAgICAgICAgcmV0dXJuIGluZGV4IDwgY29tbWl0dGVkID8gY29tbWl0dGVkIDogdGV4dC5sZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldFJ1bkxpbWl0KEF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvci5BdHRyaWJ1dGUgYXR0cmlidXRlKSB7CisgICAgICAgICAgICByZXR1cm4gKGluZGV4IDwgY29tbWl0dGVkICYmIAorICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgPT0gVGV4dEF0dHJpYnV0ZS5JTlBVVF9NRVRIT0RfVU5ERVJMSU5FKSA/IGNvbW1pdHRlZCA6IHRleHQubGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRSdW5MaW1pdChTZXQgYXR0cmlidXRlcykgeworICAgICAgICAgICAgcmV0dXJuIChpbmRleCA8IGNvbW1pdHRlZCAmJgorICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLmNvbnRhaW5zKFRleHRBdHRyaWJ1dGUuSU5QVVRfTUVUSE9EX1VOREVSTElORSkpID8gY29tbWl0dGVkIDogdGV4dC5sZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgTWFwIGdldEF0dHJpYnV0ZXMoKSB7CisgICAgICAgICAgICBIYXNodGFibGUgcmVzdWx0ID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAgICAgaWYgKGluZGV4ID49IGNvbW1pdHRlZCAmJiBjb21taXR0ZWQgPCB0ZXh0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5wdXQoVGV4dEF0dHJpYnV0ZS5JTlBVVF9NRVRIT0RfVU5ERVJMSU5FLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FX0xPV19PTkVfUElYRUwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0QXR0cmlidXRlKEF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvci5BdHRyaWJ1dGUgYXR0cmlidXRlKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gY29tbWl0dGVkICYmIAorICAgICAgICAgICAgICAgIGNvbW1pdHRlZCA8IHRleHQubGVuZ3RoICYmCisgICAgICAgICAgICAgICAgYXR0cmlidXRlID09IFRleHRBdHRyaWJ1dGUuSU5QVVRfTUVUSE9EX1VOREVSTElORSkgeworCisgICAgICAgICAgICAgICAgcmV0dXJuIFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FX0xPV19PTkVfUElYRUw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTZXQgZ2V0QWxsQXR0cmlidXRlS2V5cygpIHsKKyAgICAgICAgICAgIEhhc2hTZXQgcmVzdWx0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgICAgIGlmIChjb21taXR0ZWQgPCB0ZXh0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoVGV4dEF0dHJpYnV0ZS5JTlBVVF9NRVRIT0RfVU5ERVJMSU5FKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBwcml2YXRlIG1ldGhvZHMKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBpcyBhbHdheXMgY2FsbGVkIHdpdGggdmFsaWQgaSAoIDAgPCBpIDw9IHRleHQubGVuZ3RoICkKKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgY2hhciBfc2V0SW5kZXgoIGludCBpICkgeworICAgICAgICAgICAgaW5kZXggPSBpOworICAgICAgICAgICAgaWYoIGkgPT0gdGV4dC5sZW5ndGggKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdGV4dFtpXTsKKyAgICAgICAgfQorCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9LYW5uYWRhSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL0thbm5hZGFJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDgxMTI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9LYW5uYWRhSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKQEAgLTAsMCArMSwxNzAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIEthbm5hZGFJbnB1dE1ldGhvZERlc2NyaXB0b3IgZXh0ZW5kcyBJbmRpY0lNRGVzY3JpcHRvcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBLQU5OQURBID0gbmV3IExvY2FsZSgia24iLCAiSU4iKTsKKworICAgIHB1YmxpYyBLYW5uYWRhSW5wdXRNZXRob2REZXNjcmlwdG9yKCkgeworICAgIHN1cGVyKEtBTk5BREEsICJLYW5uYWRhIik7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGtleWJvYXJkTWFwOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHN1YnN0aXR1dGlvblRhYmxlOworCisgICAgcHJvdGVjdGVkIEluZGljSW5wdXRNZXRob2RJbXBsIGdldEltcGwoKSB7CisgICAgaWYgKGtleWJvYXJkTWFwID09IG51bGwpIHsKKyAgICAgICAga2V5Ym9hcmRNYXAgPSBuZXcgY2hhcltdIHsKKyAgICAgICAgLyogMDAgKi8gJ1x1MDAwMCcsCisgICAgICAgIC8qIDAxICovICdcdTAwMDEnLAorICAgICAgICAvKiAwMiAqLyAnXHUwMDAyJywKKyAgICAgICAgLyogMDMgKi8gJ1x1MDAwMycsCisgICAgICAgIC8qIDA0ICovICdcdTAwMDQnLAorICAgICAgICAvKiAwNSAqLyAnXHUwMDA1JywKKyAgICAgICAgLyogMDYgKi8gJ1x1MDAwNicsCisgICAgICAgIC8qIDA3ICovICdcdTAwMDcnLAorICAgICAgICAvKiAwOCAqLyAnXHUwMDA4JywKKyAgICAgICAgLyogMDkgKi8gJ1x1MDAwOScsCisgICAgICAgIC8qIDBBICovICdcMDEyJywKKyAgICAgICAgLyogMEIgKi8gJ1x1MDAwQicsCisgICAgICAgIC8qIDBDICovICdcdTAwMEMnLAorICAgICAgICAvKiAwRCAqLyAnXDAxNScsCisgICAgICAgIC8qIDBFICovICdcdTAwMEUnLAorICAgICAgICAvKiAwRiAqLyAnXHUwMDBGJywKKyAgICAgICAgLyogMTAgKi8gJ1x1MDAxMCcsCisgICAgICAgIC8qIDExICovICdcdTAwMTEnLAorICAgICAgICAvKiAxMiAqLyAnXHUwMDEyJywKKyAgICAgICAgLyogMTMgKi8gJ1x1MDAxMycsCisgICAgICAgIC8qIDE0ICovICdcdTAwMTQnLAorICAgICAgICAvKiAxNSAqLyAnXHUwMDE1JywKKyAgICAgICAgLyogMTYgKi8gJ1x1MDAxNicsCisgICAgICAgIC8qIDE3ICovICdcdTAwMTcnLAorICAgICAgICAvKiAxOCAqLyAnXHUwMDE4JywKKyAgICAgICAgLyogMTkgKi8gJ1x1MDAxOScsCisgICAgICAgIC8qIDFBICovICdcdTAwMUEnLAorICAgICAgICAvKiAxQiAqLyAnXHUwMDFCJywKKyAgICAgICAgLyogMUMgKi8gJ1x1MDAxQycsCisgICAgICAgIC8qIDFEICovICdcdTAwMUQnLAorICAgICAgICAvKiAxRSAqLyAnXHUwMDFFJywKKyAgICAgICAgLyogMUYgKi8gJ1x1MDAxRicsCisgICAgICAgIC8qIDIwICovICdcdTAwMjAnLAorICAgICAgICAvKiAyMSAqLyAnXHVGRkZGJywgICAvLyAnIScKKyAgICAgICAgLyogMjIgKi8gJ1x1MENBMCcsICAgLy8gJyInCisgICAgICAgIC8qIDIzICovICdcdUZGMDAnLCAgIC8vICcjJworICAgICAgICAvKiAyNCAqLyAnXHVGRkZGJywgICAvLyAnJCcKKyAgICAgICAgLyogMjUgKi8gJ1x1RkYwMScsICAgLy8gJyUnCisgICAgICAgIC8qIDI2ICovICdcdUZGMDMnLCAgIC8vICcmJworICAgICAgICAvKiAyNyAqLyAnXHUwQzlGJywgICAvLyAnJycKKyAgICAgICAgLyogMjggKi8gJ1x1MDAyOCcsICAgLy8gJygnCisgICAgICAgIC8qIDI5ICovICdcdTAwMjknLCAgIC8vICcpJworICAgICAgICAvKiAyQSAqLyAnXHVGRjA0JywgICAvLyAnKicKKyAgICAgICAgLyogMkIgKi8gJ1x1MEM4QicsICAgLy8gJysnCisgICAgICAgIC8qIDJDICovICdcdTAwMkMnLCAgIC8vICcsJworICAgICAgICAvKiAyRCAqLyAnXHUwMDJEJywgICAvLyAnLScKKyAgICAgICAgLyogMkUgKi8gJ1x1MDAyRScsICAgLy8gJy4nCisgICAgICAgIC8qIDJGICovICdcdTBDQUYnLCAgIC8vICcvJworICAgICAgICAvKiAzMCAqLyAnXHUwQ0U2JywgICAvLyAnMCcKKyAgICAgICAgLyogMzEgKi8gJ1x1MENFNycsICAgLy8gJzEnCisgICAgICAgIC8qIDMyICovICdcdTBDRTgnLCAgIC8vICcyJworICAgICAgICAvKiAzMyAqLyAnXHUwQ0U5JywgICAvLyAnMycKKyAgICAgICAgLyogMzQgKi8gJ1x1MENFQScsICAgLy8gJzQnCisgICAgICAgIC8qIDM1ICovICdcdTBDRUInLCAgIC8vICc1JworICAgICAgICAvKiAzNiAqLyAnXHUwQ0VDJywgICAvLyAnNicKKyAgICAgICAgLyogMzcgKi8gJ1x1MENFRCcsICAgLy8gJzcnCisgICAgICAgIC8qIDM4ICovICdcdTBDRUUnLCAgIC8vICc4JworICAgICAgICAvKiAzOSAqLyAnXHUwQ0VGJywgICAvLyAnOScKKyAgICAgICAgLyogM0EgKi8gJ1x1MEM5QicsICAgLy8gJzonCisgICAgICAgIC8qIDNCICovICdcdTBDOUEnLCAgIC8vICc7JworICAgICAgICAvKiAzQyAqLyAnXHUwQ0I3JywgICAvLyAnPCcKKyAgICAgICAgLyogM0QgKi8gJ1x1MENDMycsICAgLy8gJz0nCisgICAgICAgIC8qIDNFICovICdcdUZGRkYnLCAgIC8vICc+JworICAgICAgICAvKiAzRiAqLyAnXHVGRkZGJywgICAvLyAnPycKKyAgICAgICAgLyogNDAgKi8gJ1x1RkZGRicsICAgLy8gJ0AnCisgICAgICAgIC8qIDQxICovICdcdTBDOTMnLCAgIC8vICdBJworICAgICAgICAvKiA0MiAqLyAnXHVGRkZGJywgICAvLyAnQicKKyAgICAgICAgLyogNDMgKi8gJ1x1MENBMycsICAgLy8gJ0MnCisgICAgICAgIC8qIDQ0ICovICdcdTBDODUnLCAgIC8vICdEJworICAgICAgICAvKiA0NSAqLyAnXHUwQzg2JywgICAvLyAnRScKKyAgICAgICAgLyogNDYgKi8gJ1x1MEM4NycsICAgLy8gJ0YnCisgICAgICAgIC8qIDQ3ICovICdcdTBDODknLCAgIC8vICdHJworICAgICAgICAvKiA0OCAqLyAnXHUwQ0FCJywgICAvLyAnSCcKKyAgICAgICAgLyogNDkgKi8gJ1x1MEM5OCcsICAgLy8gJ0knCisgICAgICAgIC8qIDRBICovICdcdTBDQjEnLCAgIC8vICdKJworICAgICAgICAvKiA0QiAqLyAnXHUwQzk2JywgICAvLyAnSycKKyAgICAgICAgLyogNEMgKi8gJ1x1MENBNScsICAgLy8gJ0wnCisgICAgICAgIC8qIDREICovICdcdTBDQjYnLCAgIC8vICdNJworICAgICAgICAvKiA0RSAqLyAnXHUwQ0IzJywgICAvLyAnTicKKyAgICAgICAgLyogNEYgKi8gJ1x1MENBNycsICAgLy8gJ08nCisgICAgICAgIC8qIDUwICovICdcdTBDOUQnLCAgIC8vICdQJworICAgICAgICAvKiA1MSAqLyAnXHUwQzk0JywgICAvLyAnUScKKyAgICAgICAgLyogNTIgKi8gJ1x1MEM4OCcsICAgLy8gJ1InCisgICAgICAgIC8qIDUzICovICdcdTBDOEYnLCAgIC8vICdTJworICAgICAgICAvKiA1NCAqLyAnXHUwQzhBJywgICAvLyAnVCcKKyAgICAgICAgLyogNTUgKi8gJ1x1MEM5OScsICAgLy8gJ1UnCisgICAgICAgIC8qIDU2ICovICdcdUZGRkYnLCAgIC8vICdWJworICAgICAgICAvKiA1NyAqLyAnXHUwQzkwJywgICAvLyAnVycKKyAgICAgICAgLyogNTggKi8gJ1x1RkZGRicsICAgLy8gJ1gnCisgICAgICAgIC8qIDU5ICovICdcdTBDQUQnLCAgIC8vICdZJworICAgICAgICAvKiA1QSAqLyAnXHUwQzhFJywgICAvLyAnWicKKyAgICAgICAgLyogNUIgKi8gJ1x1MENBMScsICAgLy8gJ1snCisgICAgICAgIC8qIDVDICovICdcdUZGRkYnLCAgIC8vICdcJworICAgICAgICAvKiA1RCAqLyAnXHVGRkZGJywgICAvLyAnXScgIChkYW5kYSAtIG5vdCBzaG93biBvbiBJTlNDUklQVCBjaGFydCkKKyAgICAgICAgLyogNUUgKi8gJ1x1RkYwMicsICAgLy8gJ14nCisgICAgICAgIC8qIDVGICovICdcdTBDODMnLCAgIC8vICdfJworICAgICAgICAvKiA2MCAqLyAnXHUwQ0NBJywgICAvLyAnYCcKKyAgICAgICAgLyogNjEgKi8gJ1x1MENDQicsICAgLy8gJ2EnCisgICAgICAgIC8qIDYyICovICdcdTBDQjUnLCAgIC8vICdiJworICAgICAgICAvKiA2MyAqLyAnXHUwQ0FFJywgICAvLyAnYycKKyAgICAgICAgLyogNjQgKi8gJ1x1MENDRCcsICAgLy8gJ2QnCisgICAgICAgIC8qIDY1ICovICdcdTBDQkUnLCAgIC8vICdlJworICAgICAgICAvKiA2NiAqLyAnXHUwQ0JGJywgICAvLyAnZicKKyAgICAgICAgLyogNjcgKi8gJ1x1MENDMScsICAgLy8gJ2cnCisgICAgICAgIC8qIDY4ICovICdcdTBDQUEnLCAgIC8vICdoJworICAgICAgICAvKiA2OSAqLyAnXHUwQzk3JywgICAvLyAnaScKKyAgICAgICAgLyogNkEgKi8gJ1x1MENCMCcsICAgLy8gJ2onCisgICAgICAgIC8qIDZCICovICdcdTBDOTUnLCAgIC8vICdrJworICAgICAgICAvKiA2QyAqLyAnXHUwQ0E0JywgICAvLyAnbCcKKyAgICAgICAgLyogNkQgKi8gJ1x1MENCOCcsICAgLy8gJ20nCisgICAgICAgIC8qIDZFICovICdcdTBDQjInLCAgIC8vICduJworICAgICAgICAvKiA2RiAqLyAnXHUwQ0E2JywgICAvLyAnbycKKyAgICAgICAgLyogNzAgKi8gJ1x1MEM5QycsICAgLy8gJ3AnCisgICAgICAgIC8qIDcxICovICdcdTBDQ0MnLCAgIC8vICdxJworICAgICAgICAvKiA3MiAqLyAnXHUwQ0MwJywgICAvLyAncicKKyAgICAgICAgLyogNzMgKi8gJ1x1MENDNycsICAgLy8gJ3MnCisgICAgICAgIC8qIDc0ICovICdcdTBDQzInLCAgIC8vICd0JworICAgICAgICAvKiA3NSAqLyAnXHUwQ0I5JywgICAvLyAndScKKyAgICAgICAgLyogNzYgKi8gJ1x1MENBOCcsICAgLy8gJ3YnCisgICAgICAgIC8qIDc3ICovICdcdTBDQzgnLCAgIC8vICd3JworICAgICAgICAvKiA3OCAqLyAnXHUwQzgyJywgICAvLyAneCcKKyAgICAgICAgLyogNzkgKi8gJ1x1MENBQycsICAgLy8gJ3knCisgICAgICAgIC8qIDdBICovICdcdTBDQzYnLCAgIC8vICd6JworICAgICAgICAvKiA3QiAqLyAnXHUwQ0EyJywgICAvLyAneycKKyAgICAgICAgLyogN0MgKi8gJ1x1RkZGRicsICAgLy8gJ3wnCisgICAgICAgIC8qIDdEICovICdcdTBDOUUnLCAgIC8vICd9JworICAgICAgICAvKiA3RSAqLyAnXHUwQzkyJywgICAvLyAnficKKyAgICAgICAgLyogN0YgKi8gJ1x1MDA3RicgICAgLy8gJ38nCisgICAgICAgIH07CisKKyAgICAgICAgY2hhcltdIFJBX1NVQiA9IHsnXHUwQ0NEJywgJ1x1MENCMCd9OworICAgICAgICBjaGFyW10gQ09OSl9KQV9OWUEgPSB7J1x1MEM5QycsICdcdTBDQ0QnLCAnXHUwQzlFJ307CisgICAgICAgIGNoYXJbXSBDT05KX1RBX1JBID0geydcdTBDQTQnLCAnXHUwQ0NEJywgJ1x1MENCMCd9OworICAgICAgICBjaGFyW10gQ09OSl9LQV9TU0EgPSB7J1x1MEM5NScsICdcdTBDQ0QnLCAnXHUwQ0I3J307CisgICAgICAgIGNoYXJbXSBDT05KX1NIQV9SQSA9IHsnXHUwQ0I2JywgJ1x1MENDRCcsICdcdTBDQjAnfTsKKworICAgICAgICBzdWJzdGl0dXRpb25UYWJsZSA9IG5ldyBjaGFyW11bXSB7CisgICAgICAgIFJBX1NVQiwgQ09OSl9KQV9OWUEsIENPTkpfVEFfUkEsIENPTkpfS0FfU1NBLCBDT05KX1NIQV9SQQorICAgICAgICB9OworICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEluZGljSW5wdXRNZXRob2RJbXBsKGtleWJvYXJkTWFwLCBudWxsLCBudWxsLCBzdWJzdGl0dXRpb25UYWJsZSk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL01hbGF5YWxhbUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9NYWxheWFsYW1JbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDkzNDJmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9NYWxheWFsYW1JbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgTWFsYXlhbGFtSW5wdXRNZXRob2REZXNjcmlwdG9yIGV4dGVuZHMgSW5kaWNJTURlc2NyaXB0b3IKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgTUFMQVlBTEFNID0gbmV3IExvY2FsZSgibWwiLCAiSU4iKTsKKworICAgIHB1YmxpYyBNYWxheWFsYW1JbnB1dE1ldGhvZERlc2NyaXB0b3IoKSB7CisgICAgc3VwZXIoTUFMQVlBTEFNLCAiTWFsYXlhbGFtIik7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGtleWJvYXJkTWFwOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHN1YnN0aXR1dGlvblRhYmxlOworICAgIAorICAgIHByb3RlY3RlZCBJbmRpY0lucHV0TWV0aG9kSW1wbCBnZXRJbXBsKCkgeworICAgIGlmIChrZXlib2FyZE1hcCA9PSBudWxsKSB7CisgICAgICAgIGtleWJvYXJkTWFwID0gbmV3IGNoYXJbXSB7CisgICAgICAgIC8qIDAwICovICdcdTAwMDAnLAorICAgICAgICAvKiAwMSAqLyAnXHUwMDAxJywKKyAgICAgICAgLyogMDIgKi8gJ1x1MDAwMicsCisgICAgICAgIC8qIDAzICovICdcdTAwMDMnLAorICAgICAgICAvKiAwNCAqLyAnXHUwMDA0JywKKyAgICAgICAgLyogMDUgKi8gJ1x1MDAwNScsCisgICAgICAgIC8qIDA2ICovICdcdTAwMDYnLAorICAgICAgICAvKiAwNyAqLyAnXHUwMDA3JywKKyAgICAgICAgLyogMDggKi8gJ1x1MDAwOCcsCisgICAgICAgIC8qIDA5ICovICdcdTAwMDknLAorICAgICAgICAvKiAwQSAqLyAnXDAxMicsCisgICAgICAgIC8qIDBCICovICdcdTAwMEInLAorICAgICAgICAvKiAwQyAqLyAnXHUwMDBDJywKKyAgICAgICAgLyogMEQgKi8gJ1wwMTUnLAorICAgICAgICAvKiAwRSAqLyAnXHUwMDBFJywKKyAgICAgICAgLyogMEYgKi8gJ1x1MDAwRicsCisgICAgICAgIC8qIDEwICovICdcdTAwMTAnLAorICAgICAgICAvKiAxMSAqLyAnXHUwMDExJywKKyAgICAgICAgLyogMTIgKi8gJ1x1MDAxMicsCisgICAgICAgIC8qIDEzICovICdcdTAwMTMnLAorICAgICAgICAvKiAxNCAqLyAnXHUwMDE0JywKKyAgICAgICAgLyogMTUgKi8gJ1x1MDAxNScsCisgICAgICAgIC8qIDE2ICovICdcdTAwMTYnLAorICAgICAgICAvKiAxNyAqLyAnXHUwMDE3JywKKyAgICAgICAgLyogMTggKi8gJ1x1MDAxOCcsCisgICAgICAgIC8qIDE5ICovICdcdTAwMTknLAorICAgICAgICAvKiAxQSAqLyAnXHUwMDFBJywKKyAgICAgICAgLyogMUIgKi8gJ1x1MDAxQicsCisgICAgICAgIC8qIDFDICovICdcdTAwMUMnLAorICAgICAgICAvKiAxRCAqLyAnXHUwMDFEJywKKyAgICAgICAgLyogMUUgKi8gJ1x1MDAxRScsCisgICAgICAgIC8qIDFGICovICdcdTAwMUYnLAorICAgICAgICAvKiAyMCAqLyAnXHUwMDIwJywKKyAgICAgICAgLyogMjEgKi8gJ1x1RkZGRicsICAgLy8gJyEnCisgICAgICAgIC8qIDIyICovICdcdTBEMjAnLCAgIC8vICciJworICAgICAgICAvKiAyMyAqLyAnXHVGRjAwJywgICAvLyAnIycKKyAgICAgICAgLyogMjQgKi8gJ1x1RkZGRicsICAgLy8gJyQnCisgICAgICAgIC8qIDI1ICovICdcdUZGRkYnLCAgIC8vICclJworICAgICAgICAvKiAyNiAqLyAnXHVGRkZGJywgICAvLyAnJicKKyAgICAgICAgLyogMjcgKi8gJ1x1MEQxRicsICAgLy8gJycnCisgICAgICAgIC8qIDI4ICovICdcdTAwMjgnLCAgIC8vICcoJworICAgICAgICAvKiAyOSAqLyAnXHUwMDI5JywgICAvLyAnKScKKyAgICAgICAgLyogMkEgKi8gJ1x1RkYwMScsICAgLy8gJyonCisgICAgICAgIC8qIDJCICovICdcdTBEMEInLCAgIC8vICcrJworICAgICAgICAvKiAyQyAqLyAnXHUwMDJDJywgICAvLyAnLCcKKyAgICAgICAgLyogMkQgKi8gJ1x1MDAyRCcsICAgLy8gJy0nCisgICAgICAgIC8qIDJFICovICdcdTAwMkUnLCAgIC8vICcuJworICAgICAgICAvKiAyRiAqLyAnXHUwRDJGJywgICAvLyAnLycKKyAgICAgICAgLyogMzAgKi8gJ1x1MEQ2NicsICAgLy8gJzAnCisgICAgICAgIC8qIDMxICovICdcdTBENjcnLCAgIC8vICcxJworICAgICAgICAvKiAzMiAqLyAnXHUwRDY4JywgICAvLyAnMicKKyAgICAgICAgLyogMzMgKi8gJ1x1MEQ2OScsICAgLy8gJzMnCisgICAgICAgIC8qIDM0ICovICdcdTBENkEnLCAgIC8vICc0JworICAgICAgICAvKiAzNSAqLyAnXHUwRDZCJywgICAvLyAnNScKKyAgICAgICAgLyogMzYgKi8gJ1x1MEQ2QycsICAgLy8gJzYnCisgICAgICAgIC8qIDM3ICovICdcdTBENkQnLCAgIC8vICc3JworICAgICAgICAvKiAzOCAqLyAnXHUwRDZFJywgICAvLyAnOCcKKyAgICAgICAgLyogMzkgKi8gJ1x1MEQ2RicsICAgLy8gJzknCisgICAgICAgIC8qIDNBICovICdcdTBEMUInLCAgIC8vICc6JworICAgICAgICAvKiAzQiAqLyAnXHUwRDFBJywgICAvLyAnOycKKyAgICAgICAgLyogM0MgKi8gJ1x1MEQzNycsICAgLy8gJzwnCisgICAgICAgIC8qIDNEICovICdcdTBENDMnLCAgIC8vICc9JworICAgICAgICAvKiAzRSAqLyAnXHVGRkZGJywgICAvLyAnPicKKyAgICAgICAgLyogM0YgKi8gJ1x1RkZGRicsICAgLy8gJz8nCisgICAgICAgIC8qIDQwICovICdcdUZGRkYnLCAgIC8vICdAJworICAgICAgICAvKiA0MSAqLyAnXHUwRDEzJywgICAvLyAnQScKKyAgICAgICAgLyogNDIgKi8gJ1x1MEQzNCcsICAgLy8gJ0InCisgICAgICAgIC8qIDQzICovICdcdTBEMjMnLCAgIC8vICdDJworICAgICAgICAvKiA0NCAqLyAnXHUwRDA1JywgICAvLyAnRCcKKyAgICAgICAgLyogNDUgKi8gJ1x1MEQwNicsICAgLy8gJ0UnCisgICAgICAgIC8qIDQ2ICovICdcdTBEMDcnLCAgIC8vICdGJworICAgICAgICAvKiA0NyAqLyAnXHUwRDA5JywgICAvLyAnRycKKyAgICAgICAgLyogNDggKi8gJ1x1MEQyQicsICAgLy8gJ0gnCisgICAgICAgIC8qIDQ5ICovICdcdTBEMTgnLCAgIC8vICdJJworICAgICAgICAvKiA0QSAqLyAnXHUwRDMxJywgICAvLyAnSicKKyAgICAgICAgLyogNEIgKi8gJ1x1MEQxNicsICAgLy8gJ0snCisgICAgICAgIC8qIDRDICovICdcdTBEMjUnLCAgIC8vICdMJworICAgICAgICAvKiA0RCAqLyAnXHUwRDM2JywgICAvLyAnTScKKyAgICAgICAgLyogNEUgKi8gJ1x1MEQzMycsICAgLy8gJ04nCisgICAgICAgIC8qIDRGICovICdcdTBEMjcnLCAgIC8vICdPJworICAgICAgICAvKiA1MCAqLyAnXHUwRDFEJywgICAvLyAnUCcKKyAgICAgICAgLyogNTEgKi8gJ1x1MEQxNCcsICAgLy8gJ1EnCisgICAgICAgIC8qIDUyICovICdcdTBEMDgnLCAgIC8vICdSJworICAgICAgICAvKiA1MyAqLyAnXHUwRDBGJywgICAvLyAnUycKKyAgICAgICAgLyogNTQgKi8gJ1x1MEQwQScsICAgLy8gJ1QnCisgICAgICAgIC8qIDU1ICovICdcdTBEMTknLCAgIC8vICdVJworICAgICAgICAvKiA1NiAqLyAnXHVGRkZGJywgICAvLyAnVicKKyAgICAgICAgLyogNTcgKi8gJ1x1MEQxMCcsICAgLy8gJ1cnCisgICAgICAgIC8qIDU4ICovICdcdUZGRkYnLCAgIC8vICdYJworICAgICAgICAvKiA1OSAqLyAnXHUwRDJEJywgICAvLyAnWScKKyAgICAgICAgLyogNUEgKi8gJ1x1MEQwRScsICAgLy8gJ1onCisgICAgICAgIC8qIDVCICovICdcdTBEMjEnLCAgIC8vICdbJworICAgICAgICAvKiA1QyAqLyAnXHVGRkZGJywgICAvLyAnXCcKKyAgICAgICAgLyogNUQgKi8gJ1x1RkZGRicsICAgLy8gJ10nIChudWt0YSAtIG5vIFVuaWNvZGUgY29kZSB2YWx1ZSkKKyAgICAgICAgLyogNUUgKi8gJ1x1RkZGRicsICAgLy8gJ14nCisgICAgICAgIC8qIDVGICovICdcdTBEMDMnLCAgIC8vICdfJworICAgICAgICAvKiA2MCAqLyAnXHUwRDRBJywgICAvLyAnYCcKKyAgICAgICAgLyogNjEgKi8gJ1x1MEQ0QicsICAgLy8gJ2EnCisgICAgICAgIC8qIDYyICovICdcdTBEMzUnLCAgIC8vICdiJworICAgICAgICAvKiA2MyAqLyAnXHUwRDJFJywgICAvLyAnYycKKyAgICAgICAgLyogNjQgKi8gJ1x1MEQ0RCcsICAgLy8gJ2QnCisgICAgICAgIC8qIDY1ICovICdcdTBEM0UnLCAgIC8vICdlJworICAgICAgICAvKiA2NiAqLyAnXHUwRDNGJywgICAvLyAnZicKKyAgICAgICAgLyogNjcgKi8gJ1x1MEQ0MScsICAgLy8gJ2cnCisgICAgICAgIC8qIDY4ICovICdcdTBEMkEnLCAgIC8vICdoJworICAgICAgICAvKiA2OSAqLyAnXHUwRDE3JywgICAvLyAnaScKKyAgICAgICAgLyogNkEgKi8gJ1x1MEQzMCcsICAgLy8gJ2onCisgICAgICAgIC8qIDZCICovICdcdTBEMTUnLCAgIC8vICdrJworICAgICAgICAvKiA2QyAqLyAnXHUwRDI0JywgICAvLyAnbCcKKyAgICAgICAgLyogNkQgKi8gJ1x1MEQzOCcsICAgLy8gJ20nCisgICAgICAgIC8qIDZFICovICdcdTBEMzInLCAgIC8vICduJworICAgICAgICAvKiA2RiAqLyAnXHUwRDI2JywgICAvLyAnbycKKyAgICAgICAgLyogNzAgKi8gJ1x1MEQxQycsICAgLy8gJ3AnCisgICAgICAgIC8qIDcxICovICdcdTBENEMnLCAgIC8vICdxJworICAgICAgICAvKiA3MiAqLyAnXHUwRDQwJywgICAvLyAncicKKyAgICAgICAgLyogNzMgKi8gJ1x1MEQ0NycsICAgLy8gJ3MnCisgICAgICAgIC8qIDc0ICovICdcdTBENDInLCAgIC8vICd0JworICAgICAgICAvKiA3NSAqLyAnXHUwRDM5JywgICAvLyAndScKKyAgICAgICAgLyogNzYgKi8gJ1x1MEQyOCcsICAgLy8gJ3YnCisgICAgICAgIC8qIDc3ICovICdcdTBENDgnLCAgIC8vICd3JworICAgICAgICAvKiA3OCAqLyAnXHUwRDAyJywgICAvLyAneCcKKyAgICAgICAgLyogNzkgKi8gJ1x1MEQyQycsICAgLy8gJ3knCisgICAgICAgIC8qIDdBICovICdcdTBENDYnLCAgIC8vICd6JworICAgICAgICAvKiA3QiAqLyAnXHUwRDIyJywgICAvLyAneycKKyAgICAgICAgLyogN0MgKi8gJ1x1RkZGRicsICAgLy8gJ3wnCisgICAgICAgIC8qIDdEICovICdcdTBEMUUnLCAgIC8vICd9JworICAgICAgICAvKiA3RSAqLyAnXHUwRDEyJywgICAvLyAnficKKyAgICAgICAgLyogN0YgKi8gJ1x1MDA3RicgICAgLy8gJ38nCisgICAgICAgIH07CisKKyAgICAgICAgY2hhcltdIFJBX1NVQiA9IHsnXHUwRDREJywgJ1x1MEQzMCd9OworICAgICAgICBjaGFyW10gQ09OSl9LQV9TU0EgPSB7J1x1MEQxNScsICdcdTBENEQnLCAnXHUwRDM3J307CisKKyAgICAgICAgc3Vic3RpdHV0aW9uVGFibGUgPSBuZXcgY2hhcltdW10geworICAgICAgICBSQV9TVUIsIENPTkpfS0FfU1NBCisgICAgICAgIH07CisgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgSW5kaWNJbnB1dE1ldGhvZEltcGwoa2V5Ym9hcmRNYXAsIG51bGwsIG51bGwsIHN1YnN0aXR1dGlvblRhYmxlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL09yaXlhSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL09yaXlhSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZiYWExZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvT3JpeWFJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpAQCAtMCwwICsxLDIxMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgT3JpeWFJbnB1dE1ldGhvZERlc2NyaXB0b3IgZXh0ZW5kcyBJbmRpY0lNRGVzY3JpcHRvcgoreworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBPUklZQSA9IG5ldyBMb2NhbGUoIm9yIiwgIklOIik7CisKKyAgICBwdWJsaWMgT3JpeWFJbnB1dE1ldGhvZERlc2NyaXB0b3IoKSB7CisgICAgc3VwZXIoT1JJWUEsICJPcml5YSIpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBrZXlib2FyZE1hcDsKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW11bXSBzdWJzdGl0dXRpb25UYWJsZTsKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gam9pbldpdGhOdWt0YTsKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gbnVrdGFGb3JtOworCisgICAgcHJvdGVjdGVkIEluZGljSW5wdXRNZXRob2RJbXBsIGdldEltcGwoKSB7CisgICAgaWYgKGtleWJvYXJkTWFwID09IG51bGwpIHsKKyAgICAgICAga2V5Ym9hcmRNYXAgPSBuZXcgY2hhcltdIHsKKyAgICAgICAgLyogMDAgKi8gJ1x1MDAwMCcsCisgICAgICAgIC8qIDAxICovICdcdTAwMDEnLAorICAgICAgICAvKiAwMiAqLyAnXHUwMDAyJywKKyAgICAgICAgLyogMDMgKi8gJ1x1MDAwMycsCisgICAgICAgIC8qIDA0ICovICdcdTAwMDQnLAorICAgICAgICAvKiAwNSAqLyAnXHUwMDA1JywKKyAgICAgICAgLyogMDYgKi8gJ1x1MDAwNicsCisgICAgICAgIC8qIDA3ICovICdcdTAwMDcnLAorICAgICAgICAvKiAwOCAqLyAnXHUwMDA4JywKKyAgICAgICAgLyogMDkgKi8gJ1x1MDAwOScsCisgICAgICAgIC8qIDBBICovICdcMDEyJywKKyAgICAgICAgLyogMEIgKi8gJ1x1MDAwQicsCisgICAgICAgIC8qIDBDICovICdcdTAwMEMnLAorICAgICAgICAvKiAwRCAqLyAnXDAxNScsCisgICAgICAgIC8qIDBFICovICdcdTAwMEUnLAorICAgICAgICAvKiAwRiAqLyAnXHUwMDBGJywKKyAgICAgICAgLyogMTAgKi8gJ1x1MDAxMCcsCisgICAgICAgIC8qIDExICovICdcdTAwMTEnLAorICAgICAgICAvKiAxMiAqLyAnXHUwMDEyJywKKyAgICAgICAgLyogMTMgKi8gJ1x1MDAxMycsCisgICAgICAgIC8qIDE0ICovICdcdTAwMTQnLAorICAgICAgICAvKiAxNSAqLyAnXHUwMDE1JywKKyAgICAgICAgLyogMTYgKi8gJ1x1MDAxNicsCisgICAgICAgIC8qIDE3ICovICdcdTAwMTcnLAorICAgICAgICAvKiAxOCAqLyAnXHUwMDE4JywKKyAgICAgICAgLyogMTkgKi8gJ1x1MDAxOScsCisgICAgICAgIC8qIDFBICovICdcdTAwMUEnLAorICAgICAgICAvKiAxQiAqLyAnXHUwMDFCJywKKyAgICAgICAgLyogMUMgKi8gJ1x1MDAxQycsCisgICAgICAgIC8qIDFEICovICdcdTAwMUQnLAorICAgICAgICAvKiAxRSAqLyAnXHUwMDFFJywKKyAgICAgICAgLyogMUYgKi8gJ1x1MDAxRicsCisgICAgICAgIC8qIDIwICovICdcdTAwMjAnLAorICAgICAgICAvKiAyMSAqLyAnXHVGRkZGJywgICAvLyAnIScKKyAgICAgICAgLyogMjIgKi8gJ1x1MEIyMCcsICAgLy8gJyInCisgICAgICAgIC8qIDIzICovICdcdUZGMDAnLCAgIC8vICcjJworICAgICAgICAvKiAyNCAqLyAnXHVGRjAxJywgICAvLyAnJCcKKyAgICAgICAgLyogMjUgKi8gJ1x1RkYwMicsICAgLy8gJyUnCisgICAgICAgIC8qIDI2ICovICdcdUZGMDQnLCAgIC8vICcmJworICAgICAgICAvKiAyNyAqLyAnXHUwQjFGJywgICAvLyAnJycKKyAgICAgICAgLyogMjggKi8gJ1x1MDAyOCcsICAgLy8gJygnCisgICAgICAgIC8qIDI5ICovICdcdTAwMjknLCAgIC8vICcpJworICAgICAgICAvKiAyQSAqLyAnXHVGRjA1JywgICAvLyAnKicKKyAgICAgICAgLyogMkIgKi8gJ1x1MEIwQicsICAgLy8gJysnCisgICAgICAgIC8qIDJDICovICdcdTAwMkMnLCAgIC8vICcsJworICAgICAgICAvKiAyRCAqLyAnXHUwMDJEJywgICAvLyAnLScKKyAgICAgICAgLyogMkUgKi8gJ1x1MDAyRScsICAgLy8gJy4nCisgICAgICAgIC8qIDJGICovICdcdTBCNUYnLCAgIC8vICcvJworICAgICAgICAvKiAzMCAqLyAnXHUwQjY2JywgICAvLyAnMCcKKyAgICAgICAgLyogMzEgKi8gJ1x1MEI2NycsICAgLy8gJzEnCisgICAgICAgIC8qIDMyICovICdcdTBCNjgnLCAgIC8vICcyJworICAgICAgICAvKiAzMyAqLyAnXHUwQjY5JywgICAvLyAnMycKKyAgICAgICAgLyogMzQgKi8gJ1x1MEI2QScsICAgLy8gJzQnCisgICAgICAgIC8qIDM1ICovICdcdTBCNkInLCAgIC8vICc1JworICAgICAgICAvKiAzNiAqLyAnXHUwQjZDJywgICAvLyAnNicKKyAgICAgICAgLyogMzcgKi8gJ1x1MEI2RCcsICAgLy8gJzcnCisgICAgICAgIC8qIDM4ICovICdcdTBCNkUnLCAgIC8vICc4JworICAgICAgICAvKiAzOSAqLyAnXHUwQjZGJywgICAvLyAnOScKKyAgICAgICAgLyogM0EgKi8gJ1x1MEIxQicsICAgLy8gJzonCisgICAgICAgIC8qIDNCICovICdcdTBCMUEnLCAgIC8vICc7JworICAgICAgICAvKiAzQyAqLyAnXHUwQjM3JywgICAvLyAnPCcKKyAgICAgICAgLyogM0QgKi8gJ1x1MEI0MycsICAgLy8gJz0nCisgICAgICAgIC8qIDNFICovICdcdTA5NjQnLCAgIC8vICc+JyAoRGV2YW5hZ2FyaSBkYW5kYSkKKyAgICAgICAgLyogM0YgKi8gJ1x1MEIyRicsICAgLy8gJz8nCisgICAgICAgIC8qIDQwICovICdcdUZGRkYnLCAgIC8vICdAJworICAgICAgICAvKiA0MSAqLyAnXHUwQjEzJywgICAvLyAnQScKKyAgICAgICAgLyogNDIgKi8gJ1x1RkZGRicsICAgLy8gJ0InCisgICAgICAgIC8qIDQzICovICdcdTBCMjMnLCAgIC8vICdDJworICAgICAgICAvKiA0NCAqLyAnXHUwQjA1JywgICAvLyAnRCcKKyAgICAgICAgLyogNDUgKi8gJ1x1MEIwNicsICAgLy8gJ0UnCisgICAgICAgIC8qIDQ2ICovICdcdTBCMDcnLCAgIC8vICdGJworICAgICAgICAvKiA0NyAqLyAnXHUwQjA5JywgICAvLyAnRycKKyAgICAgICAgLyogNDggKi8gJ1x1MEIyQicsICAgLy8gJ0gnCisgICAgICAgIC8qIDQ5ICovICdcdTBCMTgnLCAgIC8vICdJJworICAgICAgICAvKiA0QSAqLyAnXHVGRkZGJywgICAvLyAnSicKKyAgICAgICAgLyogNEIgKi8gJ1x1MEIxNicsICAgLy8gJ0snCisgICAgICAgIC8qIDRDICovICdcdTBCMjUnLCAgIC8vICdMJworICAgICAgICAvKiA0RCAqLyAnXHUwQjM2JywgICAvLyAnTScKKyAgICAgICAgLyogNEUgKi8gJ1x1MEIzMycsICAgLy8gJ04nCisgICAgICAgIC8qIDRGICovICdcdTBCMjcnLCAgIC8vICdPJworICAgICAgICAvKiA1MCAqLyAnXHUwQjFEJywgICAvLyAnUCcKKyAgICAgICAgLyogNTEgKi8gJ1x1MEIxNCcsICAgLy8gJ1EnCisgICAgICAgIC8qIDUyICovICdcdTBCMDgnLCAgIC8vICdSJworICAgICAgICAvKiA1MyAqLyAnXHUwQjBGJywgICAvLyAnUycKKyAgICAgICAgLyogNTQgKi8gJ1x1MEIwQScsICAgLy8gJ1QnCisgICAgICAgIC8qIDU1ICovICdcdTBCMTknLCAgIC8vICdVJworICAgICAgICAvKiA1NiAqLyAnXHVGRkZGJywgICAvLyAnVicKKyAgICAgICAgLyogNTcgKi8gJ1x1MEIxMCcsICAgLy8gJ1cnCisgICAgICAgIC8qIDU4ICovICdcdTBCMDEnLCAgIC8vICdYJworICAgICAgICAvKiA1OSAqLyAnXHUwQjJEJywgICAvLyAnWScKKyAgICAgICAgLyogNUEgKi8gJ1x1RkZGRicsICAgLy8gJ1onCisgICAgICAgIC8qIDVCICovICdcdTBCMjEnLCAgIC8vICdbJworICAgICAgICAvKiA1QyAqLyAnXHVGRkZGJywgICAvLyAnXCcKKyAgICAgICAgLyogNUQgKi8gJ1x1MEIzQycsICAgLy8gJ10nCisgICAgICAgIC8qIDVFICovICdcdUZGMDMnLCAgIC8vICdeJworICAgICAgICAvKiA1RiAqLyAnXHUwQjAzJywgICAvLyAnXycKKyAgICAgICAgLyogNjAgKi8gJ1x1RkZGRicsICAgLy8gJ2AnCisgICAgICAgIC8qIDYxICovICdcdTBCNEInLCAgIC8vICdhJworICAgICAgICAvKiA2MiAqLyAnXHUwQjJDJywgICAvLyAnYicgKHZhLCBidXQgbm8gVW5pY29kZSBjb2RlIHBvaW50LCB1c2VkIGJhIGluc3RlYWQpCisgICAgICAgIC8qIDYzICovICdcdTBCMkUnLCAgIC8vICdjJworICAgICAgICAvKiA2NCAqLyAnXHUwQjREJywgICAvLyAnZCcKKyAgICAgICAgLyogNjUgKi8gJ1x1MEIzRScsICAgLy8gJ2UnCisgICAgICAgIC8qIDY2ICovICdcdTBCM0YnLCAgIC8vICdmJworICAgICAgICAvKiA2NyAqLyAnXHUwQjQxJywgICAvLyAnZycKKyAgICAgICAgLyogNjggKi8gJ1x1MEIyQScsICAgLy8gJ2gnCisgICAgICAgIC8qIDY5ICovICdcdTBCMTcnLCAgIC8vICdpJworICAgICAgICAvKiA2QSAqLyAnXHUwQjMwJywgICAvLyAnaicKKyAgICAgICAgLyogNkIgKi8gJ1x1MEIxNScsICAgLy8gJ2snCisgICAgICAgIC8qIDZDICovICdcdTBCMjQnLCAgIC8vICdsJworICAgICAgICAvKiA2RCAqLyAnXHUwQjM4JywgICAvLyAnbScKKyAgICAgICAgLyogNkUgKi8gJ1x1MEIzMicsICAgLy8gJ24nCisgICAgICAgIC8qIDZGICovICdcdTBCMjYnLCAgIC8vICdvJworICAgICAgICAvKiA3MCAqLyAnXHUwQjFDJywgICAvLyAncCcKKyAgICAgICAgLyogNzEgKi8gJ1x1MEI0QycsICAgLy8gJ3EnCisgICAgICAgIC8qIDcyICovICdcdTBCNDAnLCAgIC8vICdyJworICAgICAgICAvKiA3MyAqLyAnXHUwQjQ3JywgICAvLyAncycKKyAgICAgICAgLyogNzQgKi8gJ1x1MEI0MicsICAgLy8gJ3QnCisgICAgICAgIC8qIDc1ICovICdcdTBCMzknLCAgIC8vICd1JworICAgICAgICAvKiA3NiAqLyAnXHUwQjI4JywgICAvLyAndicKKyAgICAgICAgLyogNzcgKi8gJ1x1MEI0OCcsICAgLy8gJ3cnCisgICAgICAgIC8qIDc4ICovICdcdTBCMDInLCAgIC8vICd4JworICAgICAgICAvKiA3OSAqLyAnXHUwQjJDJywgICAvLyAneScKKyAgICAgICAgLyogN0EgKi8gJ1x1RkZGRicsICAgLy8gJ3onCisgICAgICAgIC8qIDdCICovICdcdTBCMjInLCAgIC8vICd7JworICAgICAgICAvKiA3QyAqLyAnXHVGRkZGJywgICAvLyAnfCcKKyAgICAgICAgLyogN0QgKi8gJ1x1MEIxRScsICAgLy8gJ30nCisgICAgICAgIC8qIDdFICovICdcdUZGRkYnLCAgIC8vICd+JworICAgICAgICAvKiA3RiAqLyAnXHUwMDdGJyAgICAvLyAnfycKKyAgICAgICAgfTsKKworICAgICAgICBjaGFyW10gUkFfU1VCID0geydcdTBCNEQnLCAnXHUwQjMwJ307CisgICAgICAgIGNoYXJbXSBSQV9TVVAgPSB7J1x1MEIzMCcsICdcdTBCNEQnfTsKKyAgICAgICAgY2hhcltdIENPTkpfSkFfTllBID0geydcdTBCMUMnLCAnXHUwQjREJywgJ1x1MEIxRSd9OworICAgICAgICBjaGFyW10gQ09OSl9UQV9SQSA9IHsnXHUwQjI0JywgJ1x1MEI0RCcsICdcdTBCMzAnfTsKKyAgICAgICAgY2hhcltdIENPTkpfS0FfU1NBID0geydcdTBCMTUnLCAnXHUwQjREJywgJ1x1MEIzNyd9OworICAgICAgICBjaGFyW10gQ09OSl9TSEFfUkEgPSB7J1x1MEIzNicsICdcdTBCNEQnLCAnXHUwQjMwJ307CisKKyAgICAgICAgc3Vic3RpdHV0aW9uVGFibGUgPSBuZXcgY2hhcltdW10geworICAgICAgICBSQV9TVUIsIFJBX1NVUCwgQ09OSl9KQV9OWUEsIENPTkpfVEFfUkEsIENPTkpfS0FfU1NBLCBDT05KX1NIQV9SQQorICAgICAgICB9OworCisgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY2hhcmFjdGVycyBmb2xsb3dlZCBieSBOdWt0YSBzaG91bGQgYmUgcmVwbGFjZWQKKyAgICAgICAgLy8gYnkgdGhlIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVyIGFzIGRlZmluZWQgaW4gSVNDSUk5MQorICAgICAgICBjaGFyIExFVFRFUl9JICAgICAgICAgICAgICA9ICdcdTBCMDcnOworICAgICAgICBjaGFyIExFVFRFUl9JSSAgICAgICAgICAgICA9ICdcdTBCMDgnOworICAgICAgICBjaGFyIExFVFRFUl9WT0NBTElDX1IgICAgICA9ICdcdTBCMEInOworICAgICAgICBjaGFyIExFVFRFUl9EREEgICAgICAgICAgICA9ICdcdTBCMjEnOworICAgICAgICBjaGFyIExFVFRFUl9EREhBICAgICAgICAgICA9ICdcdTBCMjInOworICAgICAgICBjaGFyIFZPV0VMX1NJR05fSSAgICAgICAgICA9ICdcdTBCM0YnOworICAgICAgICBjaGFyIFZPV0VMX1NJR05fSUkgICAgICAgICA9ICdcdTBCNDAnOworCisgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY2hhcmFjdGVycyByZXBsYWNlIHRoZSBhYm92ZSBjaGFyYWN0ZXJzIGZvbGxvd2VkIGJ5IE51a3RhLiBUaGVzZQorICAgICAgICAvLyBhcmUgZGVmaW5lZCBpbiBvbmUgdG8gb25lIGNvcnJlc3BvbmRlbmNlIG9yZGVyLgorICAgICAgICBjaGFyIExFVFRFUl9WT0NBTElDX0wgICAgICA9ICdcdTBCMEMnOworICAgICAgICBjaGFyIExFVFRFUl9WT0NBTElDX0xMICAgICA9ICdcdTBCNjEnOworICAgICAgICBjaGFyIExFVFRFUl9WT0NBTElDX1JSICAgICA9ICdcdTBCNjAnOworICAgICAgICBjaGFyIExFVFRFUl9SUkEgICAgICAgICAgICA9ICdcdTBCNUMnOworICAgICAgICBjaGFyIExFVFRFUl9SSEEgICAgICAgICAgICA9ICdcdTBCNUQnOworICAgICAgICBjaGFyIFZPV0VMX1NJR05fVk9DQUxJQ19MICA9ICdcdTBCNjInOworICAgICAgICBjaGFyIFZPV0VMX1NJR05fVk9DQUxJQ19MTCA9ICdcdTBCNjMnOworCisgICAgICAgIGpvaW5XaXRoTnVrdGEgPSBuZXcgY2hhcltdIHsKKyAgICAgICAgTEVUVEVSX1ZPQ0FMSUNfUiAsCisgICAgICAgIExFVFRFUl9JLAorICAgICAgICBMRVRURVJfSUksCisgICAgICAgIExFVFRFUl9EREEsCisgICAgICAgIExFVFRFUl9EREhBLAorICAgICAgICBWT1dFTF9TSUdOX0ksCisgICAgICAgIFZPV0VMX1NJR05fSUkKKyAgICAgICAgfTsKKyAgICAKKyAgICAgICAgbnVrdGFGb3JtID0gbmV3IGNoYXJbXSB7CisgICAgICAgIExFVFRFUl9WT0NBTElDX1JSLAorICAgICAgICBMRVRURVJfVk9DQUxJQ19MLAorICAgICAgICBMRVRURVJfVk9DQUxJQ19MTCwKKyAgICAgICAgTEVUVEVSX1JSQSwKKyAgICAgICAgTEVUVEVSX1JIQSwKKyAgICAgICAgVk9XRUxfU0lHTl9WT0NBTElDX0wsCisgICAgICAgIFZPV0VMX1NJR05fVk9DQUxJQ19MTAorICAgICAgICB9OworICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgSW5kaWNJbnB1dE1ldGhvZEltcGwoa2V5Ym9hcmRNYXAsIGpvaW5XaXRoTnVrdGEsIG51a3RhRm9ybSwgc3Vic3RpdHV0aW9uVGFibGUpOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9UYW1pbElucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9UYW1pbElucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExZmExMjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL1RhbWlsSW5wdXRNZXRob2REZXNjcmlwdG9yLmphdmEKQEAgLTAsMCArMSwxNjcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworcHVibGljIGNsYXNzIFRhbWlsSW5wdXRNZXRob2REZXNjcmlwdG9yIGV4dGVuZHMgSW5kaWNJTURlc2NyaXB0b3IKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgVEFNSUwgPSBuZXcgTG9jYWxlKCJ0YSIsICJJTiIpOworCisgICAgcHVibGljIFRhbWlsSW5wdXRNZXRob2REZXNjcmlwdG9yKCkgeworICAgIHN1cGVyKFRBTUlMLCAiVGFtaWwiKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGtleWJvYXJkTWFwOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHN1YnN0aXR1dGlvblRhYmxlOworCisgICAgcHJvdGVjdGVkIEluZGljSW5wdXRNZXRob2RJbXBsIGdldEltcGwoKSB7CisgICAgaWYgKGtleWJvYXJkTWFwID09IG51bGwpIHsKKyAgICAgICAga2V5Ym9hcmRNYXAgPSBuZXcgY2hhcltdIHsKKyAgICAgICAgLyogMDAgKi8gJ1x1MDAwMCcsCisgICAgICAgIC8qIDAxICovICdcdTAwMDEnLAorICAgICAgICAvKiAwMiAqLyAnXHUwMDAyJywKKyAgICAgICAgLyogMDMgKi8gJ1x1MDAwMycsCisgICAgICAgIC8qIDA0ICovICdcdTAwMDQnLAorICAgICAgICAvKiAwNSAqLyAnXHUwMDA1JywKKyAgICAgICAgLyogMDYgKi8gJ1x1MDAwNicsCisgICAgICAgIC8qIDA3ICovICdcdTAwMDcnLAorICAgICAgICAvKiAwOCAqLyAnXHUwMDA4JywKKyAgICAgICAgLyogMDkgKi8gJ1x1MDAwOScsCisgICAgICAgIC8qIDBBICovICdcMDEyJywKKyAgICAgICAgLyogMEIgKi8gJ1x1MDAwQicsCisgICAgICAgIC8qIDBDICovICdcdTAwMEMnLAorICAgICAgICAvKiAwRCAqLyAnXDAxNScsCisgICAgICAgIC8qIDBFICovICdcdTAwMEUnLAorICAgICAgICAvKiAwRiAqLyAnXHUwMDBGJywKKyAgICAgICAgLyogMTAgKi8gJ1x1MDAxMCcsCisgICAgICAgIC8qIDExICovICdcdTAwMTEnLAorICAgICAgICAvKiAxMiAqLyAnXHUwMDEyJywKKyAgICAgICAgLyogMTMgKi8gJ1x1MDAxMycsCisgICAgICAgIC8qIDE0ICovICdcdTAwMTQnLAorICAgICAgICAvKiAxNSAqLyAnXHUwMDE1JywKKyAgICAgICAgLyogMTYgKi8gJ1x1MDAxNicsCisgICAgICAgIC8qIDE3ICovICdcdTAwMTcnLAorICAgICAgICAvKiAxOCAqLyAnXHUwMDE4JywKKyAgICAgICAgLyogMTkgKi8gJ1x1MDAxOScsCisgICAgICAgIC8qIDFBICovICdcdTAwMUEnLAorICAgICAgICAvKiAxQiAqLyAnXHUwMDFCJywKKyAgICAgICAgLyogMUMgKi8gJ1x1MDAxQycsCisgICAgICAgIC8qIDFEICovICdcdTAwMUQnLAorICAgICAgICAvKiAxRSAqLyAnXHUwMDFFJywKKyAgICAgICAgLyogMUYgKi8gJ1x1MDAxRicsCisgICAgICAgIC8qIDIwICovICdcdTAwMjAnLAorICAgICAgICAvKiAyMSAqLyAnXHVGRkZGJywgICAvLyAnIScKKyAgICAgICAgLyogMjIgKi8gJ1x1RkZGRicsICAgLy8gJyInCisgICAgICAgIC8qIDIzICovICdcdUZGRkYnLCAgIC8vICcjJworICAgICAgICAvKiAyNCAqLyAnXHVGRkZGJywgICAvLyAnJCcKKyAgICAgICAgLyogMjUgKi8gJ1x1RkZGRicsICAgLy8gJyUnCisgICAgICAgIC8qIDI2ICovICdcdUZGMDAnLCAgIC8vICcmJworICAgICAgICAvKiAyNyAqLyAnXHUwQjlGJywgICAvLyAnJycKKyAgICAgICAgLyogMjggKi8gJ1x1MDAyOCcsICAgLy8gJygnCisgICAgICAgIC8qIDI5ICovICdcdTAwMjknLCAgIC8vICcpJworICAgICAgICAvKiAyQSAqLyAnXHVGRjAxJywgICAvLyAnKicKKyAgICAgICAgLyogMkIgKi8gJ1x1RkZGRicsICAgLy8gJysnCisgICAgICAgIC8qIDJDICovICdcdTAwMkMnLCAgIC8vICcsJworICAgICAgICAvKiAyRCAqLyAnXHUwMDJEJywgICAvLyAnLScKKyAgICAgICAgLyogMkUgKi8gJ1x1MDAyRScsICAgLy8gJy4nCisgICAgICAgIC8qIDJGICovICdcdTBCQUYnLCAgIC8vICcvJworICAgICAgICAvKiAzMCAqLyAnXHUwQkU2JywgICAvLyAnMCcKKyAgICAgICAgLyogMzEgKi8gJ1x1MEJFNycsICAgLy8gJzEnCisgICAgICAgIC8qIDMyICovICdcdTBCRTgnLCAgIC8vICcyJworICAgICAgICAvKiAzMyAqLyAnXHUwQkU5JywgICAvLyAnMycKKyAgICAgICAgLyogMzQgKi8gJ1x1MEJFQScsICAgLy8gJzQnCisgICAgICAgIC8qIDM1ICovICdcdTBCRUInLCAgIC8vICc1JworICAgICAgICAvKiAzNiAqLyAnXHUwQkVDJywgICAvLyAnNicKKyAgICAgICAgLyogMzcgKi8gJ1x1MEJFRCcsICAgLy8gJzcnCisgICAgICAgIC8qIDM4ICovICdcdTBCRUUnLCAgIC8vICc4JworICAgICAgICAvKiAzOSAqLyAnXHUwQkVGJywgICAvLyAnOScKKyAgICAgICAgLyogM0EgKi8gJ1x1RkZGRicsICAgLy8gJzonCisgICAgICAgIC8qIDNCICovICdcdTBCOUEnLCAgIC8vICc7JworICAgICAgICAvKiAzQyAqLyAnXHUwQkI3JywgICAvLyAnPCcKKyAgICAgICAgLyogM0QgKi8gJ1x1RkZGRicsICAgLy8gJz0nCisgICAgICAgIC8qIDNFICovICdcdTA5NjQnLCAgIC8vICc+JyAgKERldmFuYWdhcmkgZGFuZGEpCisgICAgICAgIC8qIDNGICovICdcdUZGRkYnLCAgIC8vICc/JworICAgICAgICAvKiA0MCAqLyAnXHVGRkZGJywgICAvLyAnQCcKKyAgICAgICAgLyogNDEgKi8gJ1x1MEI5MycsICAgLy8gJ0EnCisgICAgICAgIC8qIDQyICovICdcdTBCQjQnLCAgIC8vICdCJworICAgICAgICAvKiA0MyAqLyAnXHUwQkEzJywgICAvLyAnQycKKyAgICAgICAgLyogNDQgKi8gJ1x1MEI4NScsICAgLy8gJ0QnCisgICAgICAgIC8qIDQ1ICovICdcdTBCODYnLCAgIC8vICdFJworICAgICAgICAvKiA0NiAqLyAnXHUwQjg3JywgICAvLyAnRicKKyAgICAgICAgLyogNDcgKi8gJ1x1MEI4OScsICAgLy8gJ0cnCisgICAgICAgIC8qIDQ4ICovICdcdUZGRkYnLCAgIC8vICdIJworICAgICAgICAvKiA0OSAqLyAnXHVGRkZGJywgICAvLyAnSScKKyAgICAgICAgLyogNEEgKi8gJ1x1MEJCMScsICAgLy8gJ0onCisgICAgICAgIC8qIDRCICovICdcdUZGRkYnLCAgIC8vICdLJworICAgICAgICAvKiA0QyAqLyAnXHVGRkZGJywgICAvLyAnTCcKKyAgICAgICAgLyogNEQgKi8gJ1x1RkZGRicsICAgLy8gJ00nCisgICAgICAgIC8qIDRFICovICdcdTBCQjMnLCAgIC8vICdOJworICAgICAgICAvKiA0RiAqLyAnXHVGRkZGJywgICAvLyAnTycKKyAgICAgICAgLyogNTAgKi8gJ1x1RkZGRicsICAgLy8gJ1AnCisgICAgICAgIC8qIDUxICovICdcdTBCOTQnLCAgIC8vICdRJworICAgICAgICAvKiA1MiAqLyAnXHUwQjg4JywgICAvLyAnUicKKyAgICAgICAgLyogNTMgKi8gJ1x1MEI4RicsICAgLy8gJ1MnCisgICAgICAgIC8qIDU0ICovICdcdTBCOEEnLCAgIC8vICdUJworICAgICAgICAvKiA1NSAqLyAnXHUwQjk5JywgICAvLyAnVScKKyAgICAgICAgLyogNTYgKi8gJ1x1MEJBOScsICAgLy8gJ1YnCisgICAgICAgIC8qIDU3ICovICdcdTBCOTAnLCAgIC8vICdXJworICAgICAgICAvKiA1OCAqLyAnXHVGRkZGJywgICAvLyAnWCcKKyAgICAgICAgLyogNTkgKi8gJ1x1RkZGRicsICAgLy8gJ1knCisgICAgICAgIC8qIDVBICovICdcdTBCOEUnLCAgIC8vICdaJworICAgICAgICAvKiA1QiAqLyAnXHVGRkZGJywgICAvLyAnWycKKyAgICAgICAgLyogNUMgKi8gJ1x1RkZGRicsICAgLy8gJ1wnCisgICAgICAgIC8qIDVEICovICdcdUZGRkYnLCAgIC8vICddJworICAgICAgICAvKiA1RSAqLyAnXHVGRkZGJywgICAvLyAnXicKKyAgICAgICAgLyogNUYgKi8gJ1x1MEI4MycsICAgLy8gJ18nCisgICAgICAgIC8qIDYwICovICdcdTBCQ0EnLCAgIC8vICdgJworICAgICAgICAvKiA2MSAqLyAnXHUwQkNCJywgICAvLyAnYScKKyAgICAgICAgLyogNjIgKi8gJ1x1MEJCNScsICAgLy8gJ2InCisgICAgICAgIC8qIDYzICovICdcdTBCQUUnLCAgIC8vICdjJworICAgICAgICAvKiA2NCAqLyAnXHUwQkNEJywgICAvLyAnZCcKKyAgICAgICAgLyogNjUgKi8gJ1x1MEJCRScsICAgLy8gJ2UnCisgICAgICAgIC8qIDY2ICovICdcdTBCQkYnLCAgIC8vICdmJworICAgICAgICAvKiA2NyAqLyAnXHUwQkMxJywgICAvLyAnZycKKyAgICAgICAgLyogNjggKi8gJ1x1MEJBQScsICAgLy8gJ2gnCisgICAgICAgIC8qIDY5ICovICdcdUZGRkYnLCAgIC8vICdpJworICAgICAgICAvKiA2QSAqLyAnXHUwQkIwJywgICAvLyAnaicKKyAgICAgICAgLyogNkIgKi8gJ1x1MEI5NScsICAgLy8gJ2snCisgICAgICAgIC8qIDZDICovICdcdTBCQTQnLCAgIC8vICdsJworICAgICAgICAvKiA2RCAqLyAnXHUwQkI4JywgICAvLyAnbScKKyAgICAgICAgLyogNkUgKi8gJ1x1MEJCMicsICAgLy8gJ24nCisgICAgICAgIC8qIDZGICovICdcdUZGRkYnLCAgIC8vICdvJworICAgICAgICAvKiA3MCAqLyAnXHUwQjlDJywgICAvLyAncCcKKyAgICAgICAgLyogNzEgKi8gJ1x1MEJDQycsICAgLy8gJ3EnCisgICAgICAgIC8qIDcyICovICdcdTBCQzAnLCAgIC8vICdyJworICAgICAgICAvKiA3MyAqLyAnXHUwQkM3JywgICAvLyAncycKKyAgICAgICAgLyogNzQgKi8gJ1x1MEJDMicsICAgLy8gJ3QnCisgICAgICAgIC8qIDc1ICovICdcdTBCQjknLCAgIC8vICd1JworICAgICAgICAvKiA3NiAqLyAnXHUwQkE4JywgICAvLyAndicKKyAgICAgICAgLyogNzcgKi8gJ1x1MEJDOCcsICAgLy8gJ3cnCisgICAgICAgIC8qIDc4ICovICdcdTBCODInLCAgIC8vICd4JworICAgICAgICAvKiA3OSAqLyAnXHVGRkZGJywgICAvLyAneScKKyAgICAgICAgLyogN0EgKi8gJ1x1MEJDNicsICAgLy8gJ3onCisgICAgICAgIC8qIDdCICovICdcdUZGRkYnLCAgIC8vICd7JworICAgICAgICAvKiA3QyAqLyAnXHVGRkZGJywgICAvLyAnfCcKKyAgICAgICAgLyogN0QgKi8gJ1x1MEI5RScsICAgLy8gJ30nCisgICAgICAgIC8qIDdFICovICdcdTBCOTInLCAgIC8vICd+JworICAgICAgICAvKiA3RiAqLyAnXHUwMDdGJyAgICAvLyAnfycKKyAgICAgICAgfTsKKworICAgICAgICBjaGFyW10gQ09OSl9LQV9TU0EgPSB7J1x1MEI5NScsICdcdTBCQ0QnLCAnXHUwQkI3J307CisgICAgICAgIGNoYXJbXSBDT05KX1NTQV9SQSA9IHsnXHUwQkI3JywgJ1x1MEJDRCcsICdcdTBCQjAnfTsKKworICAgICAgICBzdWJzdGl0dXRpb25UYWJsZSA9IG5ldyBjaGFyW11bXSB7CisgICAgICAgIENPTkpfS0FfU1NBLCBDT05KX1NTQV9SQQorICAgICAgICB9OworICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEluZGljSW5wdXRNZXRob2RJbXBsKGtleWJvYXJkTWFwLCBudWxsLCBudWxsLCBzdWJzdGl0dXRpb25UYWJsZSk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL1RlbHVndUlucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9UZWx1Z3VJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMWYyNmJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9UZWx1Z3VJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpAQCAtMCwwICsxLDE2OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitwdWJsaWMgY2xhc3MgVGVsdWd1SW5wdXRNZXRob2REZXNjcmlwdG9yIGV4dGVuZHMgSW5kaWNJTURlc2NyaXB0b3IKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2NhbGUgVEVMVUdVID0gbmV3IExvY2FsZSgidGUiLCAiSU4iKTsKKworICAgIHB1YmxpYyBUZWx1Z3VJbnB1dE1ldGhvZERlc2NyaXB0b3IoKSB7CisgICAgc3VwZXIoVEVMVUdVLCAiVGVsdWd1Iik7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGtleWJvYXJkTWFwOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXVtdIHN1YnN0aXR1dGlvblRhYmxlOworCisgICAgcHJvdGVjdGVkIEluZGljSW5wdXRNZXRob2RJbXBsIGdldEltcGwoKSB7CisgICAgaWYgKGtleWJvYXJkTWFwID09IG51bGwpIHsKKyAgICAgICAga2V5Ym9hcmRNYXAgPSBuZXcgY2hhcltdIHsKKyAgICAgICAgLyogMDAgKi8gJ1x1MDAwMCcsCisgICAgICAgIC8qIDAxICovICdcdTAwMDEnLAorICAgICAgICAvKiAwMiAqLyAnXHUwMDAyJywKKyAgICAgICAgLyogMDMgKi8gJ1x1MDAwMycsCisgICAgICAgIC8qIDA0ICovICdcdTAwMDQnLAorICAgICAgICAvKiAwNSAqLyAnXHUwMDA1JywKKyAgICAgICAgLyogMDYgKi8gJ1x1MDAwNicsCisgICAgICAgIC8qIDA3ICovICdcdTAwMDcnLAorICAgICAgICAvKiAwOCAqLyAnXHUwMDA4JywKKyAgICAgICAgLyogMDkgKi8gJ1x1MDAwOScsCisgICAgICAgIC8qIDBBICovICdcMDEyJywKKyAgICAgICAgLyogMEIgKi8gJ1x1MDAwQicsCisgICAgICAgIC8qIDBDICovICdcdTAwMEMnLAorICAgICAgICAvKiAwRCAqLyAnXDAxNScsCisgICAgICAgIC8qIDBFICovICdcdTAwMEUnLAorICAgICAgICAvKiAwRiAqLyAnXHUwMDBGJywKKyAgICAgICAgLyogMTAgKi8gJ1x1MDAxMCcsCisgICAgICAgIC8qIDExICovICdcdTAwMTEnLAorICAgICAgICAvKiAxMiAqLyAnXHUwMDEyJywKKyAgICAgICAgLyogMTMgKi8gJ1x1MDAxMycsCisgICAgICAgIC8qIDE0ICovICdcdTAwMTQnLAorICAgICAgICAvKiAxNSAqLyAnXHUwMDE1JywKKyAgICAgICAgLyogMTYgKi8gJ1x1MDAxNicsCisgICAgICAgIC8qIDE3ICovICdcdTAwMTcnLAorICAgICAgICAvKiAxOCAqLyAnXHUwMDE4JywKKyAgICAgICAgLyogMTkgKi8gJ1x1MDAxOScsCisgICAgICAgIC8qIDFBICovICdcdTAwMUEnLAorICAgICAgICAvKiAxQiAqLyAnXHUwMDFCJywKKyAgICAgICAgLyogMUMgKi8gJ1x1MDAxQycsCisgICAgICAgIC8qIDFEICovICdcdTAwMUQnLAorICAgICAgICAvKiAxRSAqLyAnXHUwMDFFJywKKyAgICAgICAgLyogMUYgKi8gJ1x1MDAxRicsCisgICAgICAgIC8qIDIwICovICdcdTAwMjAnLAorICAgICAgICAvKiAyMSAqLyAnXHVGRkZGJywgICAvLyAnIScKKyAgICAgICAgLyogMjIgKi8gJ1x1MEMyMCcsICAgLy8gJyInCisgICAgICAgIC8qIDIzICovICdcdUZGMDAnLCAgIC8vICcjJworICAgICAgICAvKiAyNCAqLyAnXHVGRkZGJywgICAvLyAnJCcKKyAgICAgICAgLyogMjUgKi8gJ1x1RkYwMScsICAgLy8gJyUnCisgICAgICAgIC8qIDI2ICovICdcdUZGMDMnLCAgIC8vICcmJworICAgICAgICAvKiAyNyAqLyAnXHUwQzFGJywgICAvLyAnJycKKyAgICAgICAgLyogMjggKi8gJ1x1MDAyOCcsICAgLy8gJygnCisgICAgICAgIC8qIDI5ICovICdcdTAwMjknLCAgIC8vICcpJworICAgICAgICAvKiAyQSAqLyAnXHVGRjA0JywgICAvLyAnKicKKyAgICAgICAgLyogMkIgKi8gJ1x1MEMwQicsICAgLy8gJysnCisgICAgICAgIC8qIDJDICovICdcdTAwMkMnLCAgIC8vICcsJworICAgICAgICAvKiAyRCAqLyAnXHUwMDJEJywgICAvLyAnLScKKyAgICAgICAgLyogMkUgKi8gJ1x1MDAyRScsICAgLy8gJy4nCisgICAgICAgIC8qIDJGICovICdcdTBDMkYnLCAgIC8vICcvJworICAgICAgICAvKiAzMCAqLyAnXHUwQzY2JywgICAvLyAnMCcKKyAgICAgICAgLyogMzEgKi8gJ1x1MEM2NycsICAgLy8gJzEnCisgICAgICAgIC8qIDMyICovICdcdTBDNjgnLCAgIC8vICcyJworICAgICAgICAvKiAzMyAqLyAnXHUwQzY5JywgICAvLyAnMycKKyAgICAgICAgLyogMzQgKi8gJ1x1MEM2QScsICAgLy8gJzQnCisgICAgICAgIC8qIDM1ICovICdcdTBDNkInLCAgIC8vICc1JworICAgICAgICAvKiAzNiAqLyAnXHUwQzZDJywgICAvLyAnNicKKyAgICAgICAgLyogMzcgKi8gJ1x1MEM2RCcsICAgLy8gJzcnCisgICAgICAgIC8qIDM4ICovICdcdTBDNkUnLCAgIC8vICc4JworICAgICAgICAvKiAzOSAqLyAnXHUwQzZGJywgICAvLyAnOScKKyAgICAgICAgLyogM0EgKi8gJ1x1MEMxQicsICAgLy8gJzonCisgICAgICAgIC8qIDNCICovICdcdTBDMUEnLCAgIC8vICc7JworICAgICAgICAvKiAzQyAqLyAnXHUwQzM3JywgICAvLyAnPCcKKyAgICAgICAgLyogM0QgKi8gJ1x1MEM0MycsICAgLy8gJz0nCisgICAgICAgIC8qIDNFICovICdcdTA5NjQnLCAgIC8vICc+JyAgKERldmFuYWdhcmkgZGFuZGEgLSBub3Qgc2hvd24gb24gSU5TQ1JJUFQgY2hhcnQpCisgICAgICAgIC8qIDNGICovICdcdUZGRkYnLCAgIC8vICc/JworICAgICAgICAvKiA0MCAqLyAnXHVGRkZGJywgICAvLyAnQCcKKyAgICAgICAgLyogNDEgKi8gJ1x1MEMxMycsICAgLy8gJ0EnCisgICAgICAgIC8qIDQyICovICdcdUZGRkYnLCAgIC8vICdCJworICAgICAgICAvKiA0MyAqLyAnXHUwQzIzJywgICAvLyAnQycKKyAgICAgICAgLyogNDQgKi8gJ1x1MEMwNScsICAgLy8gJ0QnCisgICAgICAgIC8qIDQ1ICovICdcdTBDMDYnLCAgIC8vICdFJworICAgICAgICAvKiA0NiAqLyAnXHUwQzA3JywgICAvLyAnRicKKyAgICAgICAgLyogNDcgKi8gJ1x1MEMwOScsICAgLy8gJ0cnCisgICAgICAgIC8qIDQ4ICovICdcdTBDMkInLCAgIC8vICdIJworICAgICAgICAvKiA0OSAqLyAnXHUwQzE4JywgICAvLyAnSScKKyAgICAgICAgLyogNEEgKi8gJ1x1MEMzMScsICAgLy8gJ0onCisgICAgICAgIC8qIDRCICovICdcdTBDMTYnLCAgIC8vICdLJworICAgICAgICAvKiA0QyAqLyAnXHUwQzI1JywgICAvLyAnTCcKKyAgICAgICAgLyogNEQgKi8gJ1x1MEMzNicsICAgLy8gJ00nCisgICAgICAgIC8qIDRFICovICdcdTBDMzMnLCAgIC8vICdOJworICAgICAgICAvKiA0RiAqLyAnXHUwQzI3JywgICAvLyAnTycKKyAgICAgICAgLyogNTAgKi8gJ1x1MEMxRCcsICAgLy8gJ1AnCisgICAgICAgIC8qIDUxICovICdcdTBDMTQnLCAgIC8vICdRJworICAgICAgICAvKiA1MiAqLyAnXHUwQzA4JywgICAvLyAnUicKKyAgICAgICAgLyogNTMgKi8gJ1x1MEMwRicsICAgLy8gJ1MnCisgICAgICAgIC8qIDU0ICovICdcdTBDMEEnLCAgIC8vICdUJworICAgICAgICAvKiA1NSAqLyAnXHUwQzE5JywgICAvLyAnVScKKyAgICAgICAgLyogNTYgKi8gJ1x1RkZGRicsICAgLy8gJ1YnCisgICAgICAgIC8qIDU3ICovICdcdTBDMTAnLCAgIC8vICdXJworICAgICAgICAvKiA1OCAqLyAnXHUwQzAxJywgICAvLyAnWCcKKyAgICAgICAgLyogNTkgKi8gJ1x1MEMyRCcsICAgLy8gJ1knCisgICAgICAgIC8qIDVBICovICdcdTBDMEUnLCAgIC8vICdaJworICAgICAgICAvKiA1QiAqLyAnXHUwQzIxJywgICAvLyAnWycKKyAgICAgICAgLyogNUMgKi8gJ1x1RkZGRicsICAgLy8gJ1wnCisgICAgICAgIC8qIDVEICovICdcdUZGRkYnLCAgIC8vICddJworICAgICAgICAvKiA1RSAqLyAnXHVGRjAyJywgICAvLyAnXicKKyAgICAgICAgLyogNUYgKi8gJ1x1MEMwMycsICAgLy8gJ18nCisgICAgICAgIC8qIDYwICovICdcdTBDNEEnLCAgIC8vICdgJworICAgICAgICAvKiA2MSAqLyAnXHUwQzRCJywgICAvLyAnYScKKyAgICAgICAgLyogNjIgKi8gJ1x1MEMzNScsICAgLy8gJ2InCisgICAgICAgIC8qIDYzICovICdcdTBDMkUnLCAgIC8vICdjJworICAgICAgICAvKiA2NCAqLyAnXHUwQzREJywgICAvLyAnZCcKKyAgICAgICAgLyogNjUgKi8gJ1x1MEMzRScsICAgLy8gJ2UnCisgICAgICAgIC8qIDY2ICovICdcdTBDM0YnLCAgIC8vICdmJworICAgICAgICAvKiA2NyAqLyAnXHUwQzQxJywgICAvLyAnZycKKyAgICAgICAgLyogNjggKi8gJ1x1MEMyQScsICAgLy8gJ2gnCisgICAgICAgIC8qIDY5ICovICdcdTBDMTcnLCAgIC8vICdpJworICAgICAgICAvKiA2QSAqLyAnXHUwQzMwJywgICAvLyAnaicKKyAgICAgICAgLyogNkIgKi8gJ1x1MEMxNScsICAgLy8gJ2snCisgICAgICAgIC8qIDZDICovICdcdTBDMjQnLCAgIC8vICdsJworICAgICAgICAvKiA2RCAqLyAnXHUwQzM4JywgICAvLyAnbScKKyAgICAgICAgLyogNkUgKi8gJ1x1MEMzMicsICAgLy8gJ24nCisgICAgICAgIC8qIDZGICovICdcdTBDMjYnLCAgIC8vICdvJworICAgICAgICAvKiA3MCAqLyAnXHUwQzFDJywgICAvLyAncCcKKyAgICAgICAgLyogNzEgKi8gJ1x1MEM0QycsICAgLy8gJ3EnCisgICAgICAgIC8qIDcyICovICdcdTBDNDAnLCAgIC8vICdyJworICAgICAgICAvKiA3MyAqLyAnXHUwQzQ3JywgICAvLyAncycKKyAgICAgICAgLyogNzQgKi8gJ1x1MEM0MicsICAgLy8gJ3QnCisgICAgICAgIC8qIDc1ICovICdcdTBDMzknLCAgIC8vICd1JworICAgICAgICAvKiA3NiAqLyAnXHUwQzI4JywgICAvLyAndicKKyAgICAgICAgLyogNzcgKi8gJ1x1MEM0OCcsICAgLy8gJ3cnCisgICAgICAgIC8qIDc4ICovICdcdTBDMDInLCAgIC8vICd4JworICAgICAgICAvKiA3OSAqLyAnXHUwQzJDJywgICAvLyAneScKKyAgICAgICAgLyogN0EgKi8gJ1x1MEM0NicsICAgLy8gJ3onCisgICAgICAgIC8qIDdCICovICdcdTBDMjInLCAgIC8vICd7JworICAgICAgICAvKiA3QyAqLyAnXHVGRkZGJywgICAvLyAnfCcKKyAgICAgICAgLyogN0QgKi8gJ1x1MEMxRScsICAgLy8gJ30nCisgICAgICAgIC8qIDdFICovICdcdTBDMTInLCAgIC8vICd+JworICAgICAgICAvKiA3RiAqLyAnXHUwMDdGJyAgICAvLyAnfycKKyAgICAgICAgfTsKKworICAgICAgICBjaGFyW10gUkFfU1VCID0geydcdTBDNEQnLCAnXHUwQzMwJ307CisgICAgICAgIGNoYXJbXSBDT05KX0pBX05ZQSA9IHsnXHUwQzFDJywgJ1x1MEM0RCcsICdcdTBDMUUnfTsKKyAgICAgICAgY2hhcltdIENPTkpfVEFfUkEgPSB7J1x1MEMyNCcsICdcdTBDNEQnLCAnXHUwQzMwJ307CisgICAgICAgIGNoYXJbXSBDT05KX0tBX1NTQSA9IHsnXHUwQzE1JywgJ1x1MEM0RCcsICdcdTBDMzcnfTsKKyAgICAgICAgY2hhcltdIENPTkpfU0hBX1JBID0geydcdTBDMzYnLCAnXHUwQzREJywgJ1x1MEMzMCd9OworCisgICAgICAgIHN1YnN0aXR1dGlvblRhYmxlID0gbmV3IGNoYXJbXVtdIHsKKyAgICAgICAgUkFfU1VCLCBDT05KX0pBX05ZQSwgQ09OSl9UQV9SQSwgQ09OSl9LQV9TU0EsIENPTkpfU0hBX1JBCisgICAgICAgIH07CisgICAgfQorCisgICAgcmV0dXJuIG5ldyBJbmRpY0lucHV0TWV0aG9kSW1wbChrZXlib2FyZE1hcCwgbnVsbCwgbnVsbCwgc3Vic3RpdHV0aW9uVGFibGUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvbWFuaWZlc3Quc3R1YiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMvbWFuaWZlc3Quc3R1YgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDVjY2YwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9tYW5pZmVzdC5zdHViCkBAIC0wLDAgKzEsMTQgQEAKK01hbmlmZXN0LVZlcnNpb246IDEuMAorCitOYW1lOiBjb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvaW5kaWMKK1NwZWNpZmljYXRpb24tVGl0bGU6IElDVSBJbmRpYyBJTUUKK1NwZWNpZmljYXRpb24tVmVyc2lvbjogMS4wCitTcGVjaWZpY2F0aW9uLVZlbmRvcjogSUJNCitJbXBsZW1lbnRhdGlvbi1UaXRsZTogSUNVIEluZGljIElNRQorSW1wbGVtZW50YXRpb24tVmVyc2lvbjogMS4wCitJbXBsZW1lbnRhdGlvbi1WZW5kb3I6IElCTSBDb3Jwb3JhdGlvbgorSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkOiBjb20uaWJtCitDb3B5cmlnaHQtSW5mbzogQ29weXJpZ2h0IChjKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitFeHRlbnNpb24tTmFtZTogY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljCisKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9zZXJ2aWNlcy9qYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2REZXNjcmlwdG9yIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS9pbmRpYy9zZXJ2aWNlcy9qYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2REZXNjcmlwdG9yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhZTViMWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL2luZGljL3NlcnZpY2VzL2phdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZERlc2NyaXB0b3IKQEAgLTAsMCArMSw5IEBACitjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWMuQmVuZ2FsaUlucHV0TWV0aG9kRGVzY3JpcHRvcgorY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljLkRldmFuYWdhcmlJbnB1dE1ldGhvZERlc2NyaXB0b3IKK2NvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYy5HdWphcmF0aUlucHV0TWV0aG9kRGVzY3JpcHRvcgorY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljLkd1cm11a2hpSW5wdXRNZXRob2REZXNjcmlwdG9yCitjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWMuS2FubmFkYUlucHV0TWV0aG9kRGVzY3JpcHRvcgorY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljLk1hbGF5YWxhbUlucHV0TWV0aG9kRGVzY3JpcHRvcgorY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLmluZGljLk9yaXlhSW5wdXRNZXRob2REZXNjcmlwdG9yCitjb20uaWJtLmljdS5kZXYudG9vbC5pbWUuaW5kaWMuVGFtaWxJbnB1dE1ldGhvZERlc2NyaXB0b3IKK2NvbS5pYm0uaWN1LmRldi50b29sLmltZS5pbmRpYy5UZWx1Z3VJbnB1dE1ldGhvZERlc2NyaXB0b3IKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvVHJhbnNsaXRlcmF0b3IucHJvcGVydGllcyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvVHJhbnNsaXRlcmF0b3IucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWZhNDExCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9UcmFuc2xpdGVyYXRvci5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMjAgQEAKKyMKKyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorIyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjCisjIERlZmF1bHQgbWVzc2FnZXMgZm9yIHRoZSBJQ1UgdHJhbnNsaXRlcmF0b3IgaW5wdXQgbWV0aG9kLgorIworCituYW1lPUlDVSBUcmFuc2xpdGVyYXRvcgordGl0bGU9SUNVIFRyYW5zbGl0ZXJhdG9yIElucHV0IE1ldGhvZAorc3RhcnQ9UGxlYXNlIHdhaXQsIGxvYWRpbmcgdHJhbnNsaXRlcmF0b3JzCithY3RpdmVFcnJvcj1EaXNwYXRjaCBtZXRob2QgY2FsbGVkIHdoaWxlIHRoZSBJTUUgd2FzIGluYWN0aXZlCitkaXNwb3NlZEVycm9yPURpc3BhdGNoIGNhbGxlZCBhZnRlciBJTUUgd2FzIGRpc3Bvc2VkCitpbnB1dEVycm9yPURpc3BhdGNoIGNhbGxlZCB3aXRob3V0IGFuIElucHV0RXZlbnQKK2FjdGl2YXRlRXJyb3I9SU1FIGlzIGFscmVhZHkgYWN0aXZlCitkZWFjdGl2YXRlRXJyb3I9SU1FIGlzIGFscmVhZHkgZGVhY3RpdmF0ZWQKK2hpZGVFcnJvcj1DYW5ub3QgaGlkZSBJTUUgd2hpbGUgYWN0aXZlCitkaXNwb3NlRXJyb3I9Q2Fubm90IGRpc3Bvc2UgSU1FIHdoaWxlIGFjdGl2ZQorbXVsdGlwbGVEaXNwb3NlRXJyb3I9SU1FIGlzIGFscmVhZHkgZGlzcG9zZWQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0L1RyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjZTViZmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0L1RyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2QuamF2YQpAQCAtMCwwICsxLDY5MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUudHJhbnNsaXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5BV1RFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0LlBvaW50OworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKK2ltcG9ydCBqYXZhLmF3dC5Ub29sa2l0OworaW1wb3J0IGphdmEuYXd0LldpbmRvdzsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JbnB1dEV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LklucHV0TWV0aG9kRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGU7CitpbXBvcnQgamF2YS5hd3QuZm9udC5UZXh0SGl0SW5mbzsKK2ltcG9ydCBqYXZhLmF3dC5pbS5JbnB1dE1ldGhvZEhpZ2hsaWdodDsKK2ltcG9ydCBqYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2Q7CitpbXBvcnQgamF2YS5hd3QuaW0uc3BpLklucHV0TWV0aG9kQ29udGV4dDsKK2ltcG9ydCBqYXZhLnRleHQuQXR0cmlidXRlZFN0cmluZzsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpDb21ib0JveDsKK2ltcG9ydCBqYXZheC5zd2luZy5KTGFiZWw7CitpbXBvcnQgamF2YXguc3dpbmcuSkxpc3Q7CitpbXBvcnQgamF2YXguc3dpbmcuTGlzdENlbGxSZW5kZXJlcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJlcGxhY2VhYmxlU3RyaW5nOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CisKK3B1YmxpYyBjbGFzcyBUcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kIGltcGxlbWVudHMgSW5wdXRNZXRob2QgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiB1c2VzQXR0YWNoZWRJTUUoKSB7CisgICAgLy8gd2UncmUgaW4gdGhlIGV4dCBkaXJlY3Rvcnkgc28gcGVybWlzc2lvbnMgYXJlIG5vdCBhbiBpc3N1ZQorICAgIFN0cmluZyBvcyA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgib3MubmFtZSIpOworICAgIGlmIChvcyAhPSBudWxsKSB7CisgICAgICAgIHJldHVybiBvcy5pbmRleE9mKCJXaW5kb3dzIikgPT0gLTE7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyB0cnVlIGlmIFNvbGFyaXMgc3R5bGU7IGZhbHNlIGlmIFBDIHN0eWxlLCBhc3N1bWUgQXBwbGUgdXNlcyBQQyBzdHlsZSBmb3Igbm93CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBhdHRhY2hlZFN0YXR1c1dpbmRvdyA9IHVzZXNBdHRhY2hlZElNRSgpOworCisgICAgLy8gdGhlIHNoYXJlZCBzdGF0dXMgd2luZG93CisgICAgcHJpdmF0ZSBzdGF0aWMgV2luZG93IHN0YXR1c1dpbmRvdzsKKworICAgIC8vIGN1cnJlbnQgb3IgbGFzdCBvd25lcgorICAgIHByaXZhdGUgc3RhdGljIFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2Qgc3RhdHVzV2luZG93T3duZXI7CisKKyAgICAvLyBjYWNoZSBsb2NhdGlvbiBsaW1pdHMgZm9yIGF0dGFjaGVkCisgICAgcHJpdmF0ZSBzdGF0aWMgUmVjdGFuZ2xlIGF0dGFjaGVkTGltaXRzOworCisgICAgLy8gY29udmVuaWVuY2Ugb2YgYWNjZXNzLCB0byByZWZsZWN0IHRoZSBjdXJyZW50IHN0YXRlCisgICAgcHJpdmF0ZSBzdGF0aWMgSkNvbWJvQm94IGNob2ljZXM7CisKKyAgICAvLworICAgIC8vIHBlci1pbnN0YW5jZSBzdGF0ZQorICAgIC8vCisKKyAgICAvLyBpZiB3ZSdyZSBhdHRhY2hlZCwgdGhlIHN0YXR1cyB3aW5kb3cgZm9sbG93cyB0aGUgY2xpZW50IHdpbmRvdworICAgIHByaXZhdGUgUG9pbnQgYXR0YWNoZWRMb2NhdGlvbjsKKworICAgIHByaXZhdGUgc3RhdGljIGludCBnaWQ7CisKKyAgICBwcml2YXRlIGludCBpZCA9IGdpZCsrOworCisgICAgSW5wdXRNZXRob2RDb250ZXh0IGltYzsKKyAgICBwcml2YXRlIGJvb2xlYW4gZW5hYmxlZCA9IHRydWU7CisKKyAgICBwcml2YXRlIGludCBzZWxlY3RlZEluZGV4ID0gLTE7IC8vIGluZGV4IGluIEpDb21ib0JveCBjb3JyZXNwb25kaW5nIHRvIG91ciB0cmFuc2xpdGVyYXRvcgorICAgIHByaXZhdGUgVHJhbnNsaXRlcmF0b3IgdHJhbnNsaXRlcmF0b3I7CisgICAgcHJpdmF0ZSBpbnQgZGVzaXJlZENvbnRleHQ7CisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgYnVmZmVyOworICAgIHByaXZhdGUgUmVwbGFjZWFibGVTdHJpbmcgcmVwbGFjZWFibGVUZXh0OworICAgIHByaXZhdGUgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gaW5kZXg7CisKKyAgICAvLyBkZWJ1Z2dpbmcKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIFRSQUNFX0VWRU5UID0gZmFsc2U7CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBUUkFDRV9NRVNTQUdFUyA9IGZhbHNlOworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gVFJBQ0VfQlVGRkVSID0gZmFsc2U7CisKKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZCgpIHsKKyAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoIjxjb25zdHJ1Y3Rvcj4iKTsKKworICAgICAgICBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHJlcGxhY2VhYmxlVGV4dCA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhidWZmZXIpOworICAgIGluZGV4ID0gbmV3IFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZHVtcFN0YXR1cyhTdHJpbmcgbXNnKSB7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCIoIiArIHRoaXMgKyAiKSAiICsgbXNnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRJbnB1dE1ldGhvZENvbnRleHQoSW5wdXRNZXRob2RDb250ZXh0IGNvbnRleHQpIHsKKyAgICBpbml0U3RhdHVzV2luZG93KGNvbnRleHQpOworCisgICAgaW1jID0gY29udGV4dDsKKyAgICBpbWMuZW5hYmxlQ2xpZW50V2luZG93Tm90aWZpY2F0aW9uKHRoaXMsIGF0dGFjaGVkU3RhdHVzV2luZG93KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGluaXRTdGF0dXNXaW5kb3coSW5wdXRNZXRob2RDb250ZXh0IGNvbnRleHQpIHsKKyAgICBpZiAoc3RhdHVzV2luZG93ID09IG51bGwpIHsKKyAgICAgICAgU3RyaW5nIHRpdGxlOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgcmIgPSBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUoImNvbS5pYm0uaWN1LmRldi50b29sLmltZS50cmFuc2xpdC5UcmFuc2xpdGVyYXRvciIpOworICAgICAgICAgICAgICAgIHRpdGxlID0gcmIuZ2V0U3RyaW5nKCJ0aXRsZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBtKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVHJhbnNsaXRlcmF0b3IgcmVzb3VyY2VzIG1pc3Npbmc6ICIgKyBtKTsKKyAgICAgICAgICAgICAgICB0aXRsZSA9ICJUcmFuc2xpdGVyYXRvciBJbnB1dCBNZXRob2QiOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBXaW5kb3cgc3cgPSBjb250ZXh0LmNyZWF0ZUlucHV0TWV0aG9kV2luZG93KHRpdGxlLCBmYWxzZSk7CisKKyAgICAgICAgLy8gZ2V0IGFsbCB0aGUgSUNVIFRyYW5zbGl0ZXJhdG9ycworICAgICAgICBFbnVtZXJhdGlvbiBlID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgICAgIFRyZWVTZXQgdHlwZXMgPSBuZXcgVHJlZVNldChuZXcgTGFiZWxDb21wYXJhdG9yKCkpOworCisgICAgICAgIHdoaWxlKGUuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgU3RyaW5nIGlkID0gKFN0cmluZykgZS5uZXh0RWxlbWVudCgpOworICAgICAgICBTdHJpbmcgbmFtZSA9IFRyYW5zbGl0ZXJhdG9yLmdldERpc3BsYXlOYW1lKGlkKTsKKyAgICAgICAgSkxhYmVsIGxhYmVsID0gbmV3IEpMYWJlbChuYW1lKTsKKyAgICAgICAgbGFiZWwuc2V0TmFtZShpZCk7CisgICAgICAgIHR5cGVzLmFkZChsYWJlbCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBhZGQgdGhlIHRyYW5zbGl0ZXJhdG9ycyB0byB0aGUgY29tYm8gYm94CisKKyAgICAgICAgY2hvaWNlcyA9IG5ldyBKQ29tYm9Cb3godHlwZXMudG9BcnJheSgpKTsKKyAgICAgICAKKyAgICAgICAgY2hvaWNlcy5zZXRFZGl0YWJsZShmYWxzZSk7CisgICAgICAgIGNob2ljZXMuc2V0U2VsZWN0ZWRJbmRleCgwKTsKKyAgICAgICAgY2hvaWNlcy5zZXRSZW5kZXJlcihuZXcgTmFtZVJlbmRlcmVyKCkpOworICAgICAgICBjaG9pY2VzLnNldEFjdGlvbkNvbW1hbmQoInRyYW5zbGl0ZXJhdG9yIik7CisgICAgICAgIAorICAgICAgICBjaG9pY2VzLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisgICAgICAgICAgICBpZiAoc3RhdHVzV2luZG93T3duZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN0YXR1c1dpbmRvd093bmVyLnN0YXR1c1dpbmRvd0FjdGlvbihlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgc3cuYWRkKGNob2ljZXMpOworICAgICAgICBzdy5wYWNrKCk7CisKKyAgICAgICAgRGltZW5zaW9uIHNkID0gVG9vbGtpdC5nZXREZWZhdWx0VG9vbGtpdCgpLmdldFNjcmVlblNpemUoKTsKKyAgICAgICAgRGltZW5zaW9uIHdkID0gc3cuZ2V0U2l6ZSgpOworICAgICAgICBpZiAoYXR0YWNoZWRTdGF0dXNXaW5kb3cpIHsKKyAgICAgICAgYXR0YWNoZWRMaW1pdHMgPSBuZXcgUmVjdGFuZ2xlKDAsIDAsIHNkLndpZHRoIC0gd2Qud2lkdGgsIHNkLmhlaWdodCAtIHdkLmhlaWdodCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgIHN3LnNldExvY2F0aW9uKHNkLndpZHRoIC0gd2Qud2lkdGgsCisgICAgICAgICAgICAgICAgICAgc2QuaGVpZ2h0IC0gd2QuaGVpZ2h0IC0gMjUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzeW5jaHJvbml6ZWQgKFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2QuY2xhc3MpIHsKKyAgICAgICAgaWYgKHN0YXR1c1dpbmRvdyA9PSBudWxsKSB7CisgICAgICAgICAgICBzdGF0dXNXaW5kb3cgPSBzdzsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzdGF0dXNXaW5kb3dBY3Rpb24oQWN0aW9uRXZlbnQgZSkgeworICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiPj5zdGF0dXMgd2luZG93IGFjdGlvbiIpOworICAgIEpDb21ib0JveCBjYiA9IChKQ29tYm9Cb3gpZS5nZXRTb3VyY2UoKTsKKyAgICBpbnQgc2kgPSBjYi5nZXRTZWxlY3RlZEluZGV4KCk7CisgICAgaWYgKHNpICE9IHNlbGVjdGVkSW5kZXgpIHsgLy8gb3RoZXJ3aXNlLCB3ZSBkb24ndCBuZWVkIHRvIGNoYW5nZQorICAgICAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoInN0YXR1cyB3aW5kb3cgYWN0aW9uIG9sZEluZGV4OiAiICsgc2VsZWN0ZWRJbmRleCArICIgbmV3SW5kZXg6ICIgKyBzaSk7CisgICAgICAgIAorICAgICAgICBzZWxlY3RlZEluZGV4ID0gc2k7CisKKyAgICAgICAgSkxhYmVsIGl0ZW0gPSAoSkxhYmVsKWNiLmdldFNlbGVjdGVkSXRlbSgpOworICAgICAgICAgICAgCisgICAgICAgIC8vIGNvbnN0cnVjdCB0aGUgYWN0dWFsIHRyYW5zbGl0ZXJhdG9yCisgICAgICAgIC8vIGNvbW1pdCBhbnkgdGV4dCB0aGF0IG1heSBiZSBwcmVzZW50IGZpcnN0CisgICAgICAgIGNvbW1pdEFsbCgpOworCisgICAgICAgIHRyYW5zbGl0ZXJhdG9yID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaXRlbS5nZXROYW1lKCkpOworICAgICAgICBkZXNpcmVkQ29udGV4dCA9IHRyYW5zbGl0ZXJhdG9yLmdldE1heGltdW1Db250ZXh0TGVuZ3RoKCk7CisKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCI8PHN0YXR1cyB3aW5kb3cgYWN0aW9uIik7CisgICAgfQorCisgICAgLy8gamF2YSBoYXMgbm8gcGluIHRvIHJlY3RhbmdsZSBmdW5jdGlvbj8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHBpbihQb2ludCBwLCBSZWN0YW5nbGUgcikgeworICAgIGlmIChwLnggPCByLngpIHsgcC54ID0gci54OyB9IGVsc2UgaWYgKHAueCA+IHIueCArIHIud2lkdGgpIHsgcC54ID0gci54ICsgci53aWR0aDsgfQorICAgIGlmIChwLnkgPCByLnkpIHsgcC55ID0gci55OyB9IGVsc2UgaWYgKHAueSA+IHIueSArIHIuaGVpZ2h0KSB7IHAueSA9IHIueSArIHIuaGVpZ2h0OyB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbm90aWZ5Q2xpZW50V2luZG93Q2hhbmdlKFJlY3RhbmdsZSBsb2NhdGlvbikgeworICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiPj5ub3RpZnkgY2xpZW50IHdpbmRvdyBjaGFuZ2U6ICIgKyBsb2NhdGlvbik7CisgICAgc3luY2hyb25pemVkIChUcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kLmNsYXNzKSB7CisgICAgICAgIGlmIChzdGF0dXNXaW5kb3dPd25lciA9PSB0aGlzKSB7CisgICAgICAgIGlmIChsb2NhdGlvbiA9PSBudWxsKSB7CisgICAgICAgICAgICBzdGF0dXNXaW5kb3cuc2V0VmlzaWJsZShmYWxzZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhdHRhY2hlZExvY2F0aW9uID0gbmV3IFBvaW50KGxvY2F0aW9uLngsIGxvY2F0aW9uLnkgKyBsb2NhdGlvbi5oZWlnaHQpOworICAgICAgICAgICAgcGluKGF0dGFjaGVkTG9jYXRpb24sIGF0dGFjaGVkTGltaXRzKTsKKyAgICAgICAgICAgIHN0YXR1c1dpbmRvdy5zZXRMb2NhdGlvbihhdHRhY2hlZExvY2F0aW9uKTsKKyAgICAgICAgICAgIHN0YXR1c1dpbmRvdy5zZXRWaXNpYmxlKHRydWUpOworICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCI8PG5vdGlmeSBjbGllbnQgd2luZG93IGNoYW5nZTogIiArIGxvY2F0aW9uKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhY3RpdmF0ZSgpIHsKKyAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoIj4+YWN0aXZhdGUiKTsKKworICAgICAgICBzeW5jaHJvbml6ZWQgKFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2QuY2xhc3MpIHsKKyAgICAgICAgaWYgKHN0YXR1c1dpbmRvd093bmVyICE9IHRoaXMpIHsKKyAgICAgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCJzZXRTdGF0dXNXaW5kb3dPd25lciBmcm9tOiAiICsgc3RhdHVzV2luZG93T3duZXIgKyAiIHRvOiAiICsgdGhpcyk7CisKKyAgICAgICAgc3RhdHVzV2luZG93T3duZXIgPSB0aGlzOworICAgICAgICBpZiAoYXR0YWNoZWRTdGF0dXNXaW5kb3cgJiYgYXR0YWNoZWRMb2NhdGlvbiAhPSBudWxsKSB7IC8vIHdpbGwgYmUgbnVsbCBiZWZvcmUgZmlyc3QgY2hhbmdlIG5vdGlmaWNhdGlvbgorICAgICAgICAgICAgc3RhdHVzV2luZG93LnNldExvY2F0aW9uKGF0dGFjaGVkTG9jYXRpb24pOworICAgICAgICB9CisgICAgICAgIGNob2ljZXMuc2V0U2VsZWN0ZWRJbmRleChzZWxlY3RlZEluZGV4ID09IC0xID8gY2hvaWNlcy5nZXRTZWxlY3RlZEluZGV4KCkgOiBzZWxlY3RlZEluZGV4KTsKKyAgICAgICAgfQorCisgICAgICAgIGNob2ljZXMuc2V0Rm9yZWdyb3VuZChDb2xvci5CTEFDSyk7CisgICAgICAgIHN0YXR1c1dpbmRvdy5zZXRWaXNpYmxlKHRydWUpOworICAgIH0KKyAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoIjw8YWN0aXZhdGUiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgZGVhY3RpdmF0ZShib29sZWFuIGlzVGVtcG9yYXJ5KSB7CisgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCI+PmRlYWN0aXZhdGUiICsgKGlzVGVtcG9yYXJ5ID8gIiAodGVtcG9yYXJ5KSIgOiAiIikpOworICAgIGlmICghaXNUZW1wb3JhcnkpIHsKKyAgICAgICAgc3luY2hyb25pemVkKFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2QuY2xhc3MpIHsKKyAgICAgICAgY2hvaWNlcy5zZXRGb3JlZ3JvdW5kKENvbG9yLkxJR0hUX0dSQVkpOworICAgICAgICB9CisgICAgfQorICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiPDxkZWFjdGl2YXRlIiArIChpc1RlbXBvcmFyeSA/ICIgKHRlbXBvcmFyeSkiIDogIiIpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgaGlkZVdpbmRvd3MoKSB7CisgICAgaWYgKFRSQUNFX01FU1NBR0VTKSBkdW1wU3RhdHVzKCI+PmhpZGVXaW5kb3dzIik7CisgICAgc3luY2hyb25pemVkIChUcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kLmNsYXNzKSB7CisgICAgICAgIGlmIChzdGF0dXNXaW5kb3dPd25lciA9PSB0aGlzKSB7CisgICAgICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiaGlkaW5nIik7CisgICAgICAgIHN0YXR1c1dpbmRvdy5zZXRWaXNpYmxlKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoIjw8aGlkZVdpbmRvd3MiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gc2V0TG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgTG9jYWxlIGdldExvY2FsZSgpIHsKKyAgICAgICAgcmV0dXJuIExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldENoYXJhY3RlclN1YnNldHMoQ2hhcmFjdGVyLlN1YnNldFtdIHN1YnNldHMpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZWNvbnZlcnQoKSB7CisgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlTm90aWZ5KCkgeworICAgIGlmIChUUkFDRV9NRVNTQUdFUykgZHVtcFN0YXR1cygiKipyZW1vdmVOb3RpZnkiKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgZW5kQ29tcG9zaXRpb24oKSB7CisgICAgY29tbWl0QWxsKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZGlzcG9zZSgpIHsKKyAgICBpZiAoVFJBQ0VfTUVTU0FHRVMpIGR1bXBTdGF0dXMoIioqZGlzcG9zZSIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgT2JqZWN0IGdldENvbnRyb2xPYmplY3QoKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRDb21wb3NpdGlvbkVuYWJsZWQoYm9vbGVhbiBlbmFibGUpIHsKKyAgICBlbmFibGVkID0gZW5hYmxlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzQ29tcG9zaXRpb25FbmFibGVkKCkgeworICAgIHJldHVybiBlbmFibGVkOworICAgIH0KKworICAgIC8vIGRlYnVnZ2luZworICAgIHByaXZhdGUgU3RyaW5nIGV2ZW50SW5mbyhBV1RFdmVudCBldmVudCkgeworICAgIFN0cmluZyBpbmZvID0gZXZlbnQudG9TdHJpbmcoKTsKKyAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgIGludCBpbmRleDEgPSBpbmZvLmluZGV4T2YoIlsiKTsKKyAgICBpbnQgaW5kZXgyID0gaW5mby5pbmRleE9mKCIsIiwgaW5kZXgxKTsKKyAgICBidWYuYXBwZW5kKGluZm8uc3Vic3RyaW5nKGluZGV4MSsxLCBpbmRleDIpKTsKKworICAgIGluZGV4MSA9IGluZm8uaW5kZXhPZigiXSBvbiAiKTsKKyAgICBpbmRleDIgPSBpbmZvLmluZGV4T2YoIlsiLCBpbmRleDEpOworICAgIGlmIChpbmRleDIgIT0gLTEpIHsKKyAgICAgICAgaW50IGluZGV4MyA9IGluZm8ubGFzdEluZGV4T2YoIi4iLCBpbmRleDIpOworICAgICAgICBpZiAoaW5kZXgzIDwgaW5kZXgxICsgNCkgeworICAgICAgICBpbmRleDMgPSBpbmRleDEgKyA0OworICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoIiBvbiAiKTsKKyAgICAgICAgYnVmLmFwcGVuZChpbmZvLnN1YnN0cmluZyhpbmRleDMrMSwgaW5kZXgyKSk7CisgICAgfQorICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkaXNwYXRjaEV2ZW50KEFXVEV2ZW50IGV2ZW50KSB7CisgICAgZmluYWwgaW50IE1PRElGSUVSUyA9IAorICAgICAgICBJbnB1dEV2ZW50LkNUUkxfTUFTSyB8IAorICAgICAgICBJbnB1dEV2ZW50Lk1FVEFfTUFTSyB8IAorICAgICAgICBJbnB1dEV2ZW50LkFMVF9NQVNLIHwgCisgICAgICAgIElucHV0RXZlbnQuQUxUX0dSQVBIX01BU0s7CisKKyAgICBzd2l0Y2ggKGV2ZW50LmdldElEKCkpIHsKKyAgICBjYXNlIE1vdXNlRXZlbnQuTU9VU0VfUFJFU1NFRDoKKyAgICAgICAgaWYgKGVuYWJsZWQpIHsKKyAgICAgICAgaWYgKFRSQUNFX0VWRU5UKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRJTTogIiArIGV2ZW50SW5mbyhldmVudCkpOworICAgICAgICAvLyB3ZSdsbCBnZXQgdGhpcyBldmVuIGlmIHRoZSB1c2VyIGlzIHNjcm9sbGluZywgY2FuIHdlIHJlbHkgb24gdGhlIGNvbXBvbmVudD8KKyAgICAgICAgLy8gY29tbWl0QWxsKCk7IC8vIGRvbid0IGFsbG93IGV2ZW4gY2xpY2tzIHdpdGhpbiBvdXIgb3duIGVkaXQgYXJlYQorICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBLZXlFdmVudC5LRVlfVFlQRUQ6IHsKKyAgICAgICAgaWYgKGVuYWJsZWQpIHsKKyAgICAgICAgS2V5RXZlbnQga2UgPSAoS2V5RXZlbnQpZXZlbnQ7CisgICAgICAgIGlmIChUUkFDRV9FVkVOVCkgU3lzdGVtLm91dC5wcmludGxuKCJUSU06ICIgKyBldmVudEluZm8oa2UpKTsKKyAgICAgICAgaWYgKChrZS5nZXRNb2RpZmllcnMoKSAmIE1PRElGSUVSUykgIT0gMCkgeworICAgICAgICAgICAgY29tbWl0QWxsKCk7IC8vIGFzc3VtZSBhIGNvbW1hbmQsIGxldCBpdCBnbyB0aHJvdWdoCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoaGFuZGxlVHlwZWQoa2UuZ2V0S2V5Q2hhcigpKSkgeworICAgICAgICAgICAga2UuY29uc3VtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGJyZWFrOworCisgICAgY2FzZSBLZXlFdmVudC5LRVlfUFJFU1NFRDogeworICAgICAgICBpZiAoZW5hYmxlZCkgeworICAgICAgICBLZXlFdmVudCBrZSA9IChLZXlFdmVudClldmVudDsKKyAgICAgICAgaWYgKFRSQUNFX0VWRU5UKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRJTTogIiArIGV2ZW50SW5mbyhrZSkpOworICAgICAgICBpZiAoaGFuZGxlUHJlc3NlZChrZS5nZXRLZXlDb2RlKCkpKSB7CisgICAgICAgICAgICBrZS5jb25zdW1lKCk7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gYnJlYWs7CisKKyAgICBjYXNlIEtleUV2ZW50LktFWV9SRUxFQVNFRDogeworICAgICAgICAvLyB0aGlzIHdvbid0IGF1dG9yZXBlYXQsIHdoaWNoIGlzIGJldHRlciBmb3IgdG9nZ2xlIGFjdGlvbnMKKyAgICAgICAgS2V5RXZlbnQga2UgPSAoS2V5RXZlbnQpZXZlbnQ7CisgICAgICAgIGlmIChrZS5nZXRLZXlDb2RlKCkgPT0gS2V5RXZlbnQuVktfU1BBQ0UgJiYga2UuaXNDb250cm9sRG93bigpKSB7CisgICAgICAgIHNldENvbXBvc2l0aW9uRW5hYmxlZCghZW5hYmxlZCk7CisgICAgICAgIH0KKyAgICB9IGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIH0KKworICAgIC8qKiBXaXBlIGNsZWFuICovCisgICAgcHJpdmF0ZSB2b2lkIHJlc2V0KCkgeworICAgIGJ1ZmZlci5kZWxldGUoMCwgYnVmZmVyLmxlbmd0aCgpKTsKKyAgICBpbmRleC5jb250ZXh0U3RhcnQgPSBpbmRleC5jb250ZXh0TGltaXQgPSBpbmRleC5zdGFydCA9IGluZGV4LmxpbWl0ID0gMDsKKyAgICB9CisKKyAgICAvLyBjb21taXR0ZWR9Y29udGV4dC1jb21wb3NlZHxjb21wb3NlZAorICAgIC8vICAgICAgICAgIF4gICAgICAgXiAgICAgICAgXgorICAgIC8vICAgICAgICAgY2MgICAgIHN0YXJ0ICAgIGN0eExpbQorCisgICAgcHJpdmF0ZSB2b2lkIHRyYWNlQnVmZmVyKFN0cmluZyBtc2csIGludCBjYywgaW50IG9mZikgeworICAgIGlmIChUUkFDRV9CVUZGRVIpIFN5c3RlbS5vdXQucHJpbnRsbihVdGlsaXR5LmVzY2FwZShtc2cgKyAiOiAnIiArIGJ1ZmZlci5zdWJzdHJpbmcoMCwgY2MpICsgJ30nICsKKyAgICAgICAgICAgICAgIGJ1ZmZlci5zdWJzdHJpbmcoY2MsIGluZGV4LnN0YXJ0KSArICctJyArCisgICAgICAgICAgICAgICBidWZmZXIuc3Vic3RyaW5nKGluZGV4LnN0YXJ0LCBpbmRleC5jb250ZXh0TGltaXQpICsgJ3wnICsKKyAgICAgICAgICAgICAgIGJ1ZmZlci5zdWJzdHJpbmcoaW5kZXguY29udGV4dExpbWl0KSArICdcJycpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgdXBkYXRlKGJvb2xlYW4gZmx1c2gpIHsKKyAgICBpbnQgbGVuID0gYnVmZmVyLmxlbmd0aCgpOworICAgIFN0cmluZyB0ZXh0ID0gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgQXR0cmlidXRlZFN0cmluZyBhcyA9IG5ldyBBdHRyaWJ1dGVkU3RyaW5nKHRleHQpOworCisgICAgaW50IGNjLCBvZmY7CisgICAgaWYgKGZsdXNoKSB7CisgICAgICAgIG9mZiA9IGluZGV4LmNvbnRleHRMaW1pdCAtIGxlbjsgLy8gd2lsbCBiZSBuZWdhdGl2ZQorICAgICAgICBjYyA9IGluZGV4LnN0YXJ0ID0gaW5kZXgubGltaXQgPSBpbmRleC5jb250ZXh0TGltaXQgPSBsZW47CisgICAgfSBlbHNlIHsKKyAgICAgICAgY2MgPSBpbmRleC5zdGFydCA+IGRlc2lyZWRDb250ZXh0ID8gaW5kZXguc3RhcnQgLSBkZXNpcmVkQ29udGV4dCA6IDA7CisgICAgICAgIG9mZiA9IGluZGV4LmNvbnRleHRMaW1pdCAtIGNjOworICAgIH0KKworICAgIGlmIChpbmRleC5zdGFydCA8IGxlbikgeworICAgICAgICBhcy5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5JTlBVVF9NRVRIT0RfSElHSExJR0hULCAKKyAgICAgICAgICAgICAgICBJbnB1dE1ldGhvZEhpZ2hsaWdodC5TRUxFQ1RFRF9SQVdfVEVYVF9ISUdITElHSFQsCisgICAgICAgICAgICAgICAgaW5kZXguc3RhcnQsIGxlbik7CisgICAgfQorICAgIAorICAgIGltYy5kaXNwYXRjaElucHV0TWV0aG9kRXZlbnQoSW5wdXRNZXRob2RFdmVudC5JTlBVVF9NRVRIT0RfVEVYVF9DSEFOR0VELAorICAgICAgICAgICAgICAgICAgICAgYXMuZ2V0SXRlcmF0b3IoKSwKKyAgICAgICAgICAgICAgICAgICAgIGNjLAorICAgICAgICAgICAgICAgICAgICAgVGV4dEhpdEluZm8ubGVhZGluZyhvZmYpLAorICAgICAgICAgICAgICAgICAgICAgbnVsbCk7CisKKyAgICB0cmFjZUJ1ZmZlcigidXBkYXRlIiwgY2MsIG9mZik7CisKKyAgICBpZiAoY2MgPiAwKSB7CisgICAgICAgIGJ1ZmZlci5kZWxldGUoMCwgY2MpOworICAgICAgICBpbmRleC5zdGFydCAtPSBjYzsKKyAgICAgICAgaW5kZXgubGltaXQgLT0gY2M7CisgICAgICAgIGluZGV4LmNvbnRleHRMaW1pdCAtPSBjYzsKKyAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZUNhcmV0KCkgeworICAgIGltYy5kaXNwYXRjaElucHV0TWV0aG9kRXZlbnQoSW5wdXRNZXRob2RFdmVudC5DQVJFVF9QT1NJVElPTl9DSEFOR0VELAorICAgICAgICAgICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICBUZXh0SGl0SW5mby5sZWFkaW5nKGluZGV4LmNvbnRleHRMaW1pdCksCisgICAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICB0cmFjZUJ1ZmZlcigidXBkYXRlQ2FyZXQiLCAwLCBpbmRleC5jb250ZXh0TGltaXQpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY2FyZXRUb1N0YXJ0KCkgeworICAgIGlmIChpbmRleC5jb250ZXh0TGltaXQgPiBpbmRleC5zdGFydCkgeworICAgICAgICBpbmRleC5jb250ZXh0TGltaXQgPSBpbmRleC5saW1pdCA9IGluZGV4LnN0YXJ0OworICAgICAgICB1cGRhdGVDYXJldCgpOworICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY2FyZXRUb0xpbWl0KCkgeworICAgIGlmIChpbmRleC5jb250ZXh0TGltaXQgPCBidWZmZXIubGVuZ3RoKCkpIHsKKyAgICAgICAgaW5kZXguY29udGV4dExpbWl0ID0gaW5kZXgubGltaXQgPSBidWZmZXIubGVuZ3RoKCk7CisgICAgICAgIHVwZGF0ZUNhcmV0KCk7CisgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBjYXJldFRvd2FyZHNTdGFydCgpIHsKKyAgICBpbnQgYnVmcG9zID0gaW5kZXguY29udGV4dExpbWl0OworICAgIGlmIChidWZwb3MgPiBpbmRleC5zdGFydCkgeworICAgICAgICAtLWJ1ZnBvczsKKyAgICAgICAgaWYgKGJ1ZnBvcyA+IGluZGV4LnN0YXJ0ICYmCisgICAgICAgIFVDaGFyYWN0ZXIuaXNMb3dTdXJyb2dhdGUoYnVmZmVyLmNoYXJBdChidWZwb3MpKSAmJgorICAgICAgICBVQ2hhcmFjdGVyLmlzSGlnaFN1cnJvZ2F0ZShidWZmZXIuY2hhckF0KGJ1ZnBvcy0xKSkpIHsKKyAgICAgICAgLS1idWZwb3M7CisgICAgICAgIH0KKyAgICAgICAgaW5kZXguY29udGV4dExpbWl0ID0gaW5kZXgubGltaXQgPSBidWZwb3M7CisgICAgICAgIHVwZGF0ZUNhcmV0KCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gY29tbWl0QWxsKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGNhcmV0VG93YXJkc0xpbWl0KCkgeworICAgIGludCBidWZwb3MgPSBpbmRleC5jb250ZXh0TGltaXQ7CisgICAgaWYgKGJ1ZnBvcyA8IGJ1ZmZlci5sZW5ndGgoKSkgeworICAgICAgICArK2J1ZnBvczsKKyAgICAgICAgaWYgKGJ1ZnBvcyA8IGJ1ZmZlci5sZW5ndGgoKSAmJgorICAgICAgICBVQ2hhcmFjdGVyLmlzTG93U3Vycm9nYXRlKGJ1ZmZlci5jaGFyQXQoYnVmcG9zKSkgJiYKKyAgICAgICAgVUNoYXJhY3Rlci5pc0hpZ2hTdXJyb2dhdGUoYnVmZmVyLmNoYXJBdChidWZwb3MtMSkpKSB7CisgICAgICAgICsrYnVmcG9zOworICAgICAgICB9CisgICAgICAgIGluZGV4LmNvbnRleHRMaW1pdCA9IGluZGV4LmxpbWl0ID0gYnVmcG9zOworICAgICAgICB1cGRhdGVDYXJldCgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGNvbW1pdEFsbCgpOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBjYW5CYWNrc3BhY2UoKSB7CisgICAgcmV0dXJuIGluZGV4LmNvbnRleHRMaW1pdCA+IDA7CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGJhY2tzcGFjZSgpIHsKKyAgICBpbnQgYnVmcG9zID0gaW5kZXguY29udGV4dExpbWl0OworICAgIGlmIChidWZwb3MgPiAwKSB7CisgICAgICAgIGludCBsaW1pdCA9IGJ1ZnBvczsKKyAgICAgICAgLS1idWZwb3M7CisgICAgICAgIGlmIChidWZwb3MgPiAwICYmCisgICAgICAgIFVDaGFyYWN0ZXIuaXNMb3dTdXJyb2dhdGUoYnVmZmVyLmNoYXJBdChidWZwb3MpKSAmJgorICAgICAgICBVQ2hhcmFjdGVyLmlzSGlnaFN1cnJvZ2F0ZShidWZmZXIuY2hhckF0KGJ1ZnBvcy0xKSkpIHsKKyAgICAgICAgLS1idWZwb3M7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJ1ZnBvcyA8IGluZGV4LnN0YXJ0KSB7CisgICAgICAgIGluZGV4LnN0YXJ0ID0gYnVmcG9zOworICAgICAgICB9CisgICAgICAgIGluZGV4LmNvbnRleHRMaW1pdCA9IGluZGV4LmxpbWl0ID0gYnVmcG9zOworICAgICAgICBkb0RlbGV0ZShidWZwb3MsIGxpbWl0KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gY2FuRGVsZXRlKCkgeworICAgIHJldHVybiBpbmRleC5jb250ZXh0TGltaXQgPCBidWZmZXIubGVuZ3RoKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGRlbGV0ZSgpIHsKKyAgICBpbnQgYnVmcG9zID0gaW5kZXguY29udGV4dExpbWl0OworICAgIGlmIChidWZwb3MgPCBidWZmZXIubGVuZ3RoKCkpIHsKKyAgICAgICAgaW50IGxpbWl0ID0gYnVmcG9zICsgMTsKKyAgICAgICAgaWYgKGxpbWl0IDwgYnVmZmVyLmxlbmd0aCgpICYmCisgICAgICAgIFVDaGFyYWN0ZXIuaXNIaWdoU3Vycm9nYXRlKGJ1ZmZlci5jaGFyQXQobGltaXQtMSkpICYmCisgICAgICAgIFVDaGFyYWN0ZXIuaXNMb3dTdXJyb2dhdGUoYnVmZmVyLmNoYXJBdChsaW1pdCkpKSB7CisgICAgICAgICsrbGltaXQ7CisgICAgICAgIH0KKyAgICAgICAgZG9EZWxldGUoYnVmcG9zLCBsaW1pdCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvRGVsZXRlKGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgYnVmZmVyLmRlbGV0ZShzdGFydCwgbGltaXQpOworICAgIHVwZGF0ZShmYWxzZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBib29sZWFuIGNvbW1pdEFsbCgpIHsKKyAgICBpZiAoYnVmZmVyLmxlbmd0aCgpID4gMCkgeworICAgICAgICBib29sZWFuIGF0U3RhcnQgPSBpbmRleC5zdGFydCA9PSBpbmRleC5jb250ZXh0TGltaXQ7CisgICAgICAgIGJvb2xlYW4gZGlkQ29udmVydCA9IGJ1ZmZlci5sZW5ndGgoKSA+IGluZGV4LnN0YXJ0OworICAgICAgICBpbmRleC5jb250ZXh0TGltaXQgPSBpbmRleC5saW1pdCA9IGJ1ZmZlci5sZW5ndGgoKTsKKyAgICAgICAgdHJhbnNsaXRlcmF0b3IuZmluaXNoVHJhbnNsaXRlcmF0aW9uKHJlcGxhY2VhYmxlVGV4dCwgaW5kZXgpOworICAgICAgICBpZiAoYXRTdGFydCkgeworICAgICAgICBpbmRleC5zdGFydCA9IGluZGV4LmxpbWl0ID0gaW5kZXguY29udGV4dExpbWl0ID0gMDsKKyAgICAgICAgfQorICAgICAgICB1cGRhdGUodHJ1ZSk7CisgICAgICAgIHJldHVybiBkaWRDb252ZXJ0OworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNsZWFyQWxsKCkgeworICAgIGludCBsZW4gPSBidWZmZXIubGVuZ3RoKCk7CisgICAgaWYgKGxlbiA+IDApIHsKKyAgICAgICAgaWYgKGxlbiA+IGluZGV4LnN0YXJ0KSB7CisgICAgICAgIGJ1ZmZlci5kZWxldGUoaW5kZXguc3RhcnQsIGxlbik7CisgICAgICAgIH0KKyAgICAgICAgdXBkYXRlKHRydWUpOworICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gaW5zZXJ0KGNoYXIgYykgeworICAgIHRyYW5zbGl0ZXJhdG9yLnRyYW5zbGl0ZXJhdGUocmVwbGFjZWFibGVUZXh0LCBpbmRleCwgYyk7CisgICAgdXBkYXRlKGZhbHNlKTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIGJvb2xlYW4gZWRpdGluZygpIHsKKyAgICByZXR1cm4gYnVmZmVyLmxlbmd0aCgpID4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgYmlnIHByb2JsZW0gaXMgdGhhdCBmcm9tIHJlbGVhc2UgdG8gcmVsZWFzZSBzd2luZyBjaGFuZ2VzIGhvdyBpdAorICAgICAqIGhhbmRsZXMgc29tZSBjaGFyYWN0ZXJzIGxpa2UgdGFiIGFuZCBiYWNrc3BhY2UuICBTb21ldGltZXMgaXQgaGFuZGxlcworICAgICAqIHRoZW0gYXMga2V5VHlwZWQgZXZlbnRzLCBhbmQgc29tZXRpbWVzIGl0IGhhbmRsZXMgdGhlbSBhcyBrZXlQcmVzc2VkCisgICAgICogZXZlbnRzLiAgSWYgeW91IHdhbnQgdG8gYWxsb3cgdGhlIGV2ZW50IHRvIGdvIHRocm91Z2ggc28gc3dpbmcgaGFuZGxlcworICAgICAqIGl0LCB5b3UgaGF2ZSB0byBhbGxvdyBvbmUgb3IgdGhlIG90aGVyIHRvIGdvIHRocm91Z2guICBJZiB5b3UgZG9uJ3Qgd2FudAorICAgICAqIHRoZSBldmVudCB0byBnbyB0aHJvdWdoIHNvIHlvdSBjYW4gaGFuZGxlIGl0LCB5b3UgaGF2ZSB0byBzdG9wIHRoZQorICAgICAqIGV2ZW50IGJvdGggcGxhY2VzLgorICAgICAqIEByZXR1cm4gd2hldGhlciB0aGUgY2hhcmFjdGVyIHdhcyBoYW5kbGVkCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGhhbmRsZVR5cGVkKGNoYXIgY2gpIHsKKyAgICBpZiAoZW5hYmxlZCkgeworICAgICAgICBzd2l0Y2ggKGNoKSB7CisgICAgICAgIGNhc2UgJ1xiJzogaWYgKGVkaXRpbmcoKSkgcmV0dXJuIGJhY2tzcGFjZSgpOyBicmVhazsKKyAgICAgICAgY2FzZSAnXHQnOiBpZiAoZWRpdGluZygpKSB7IHJldHVybiBjb21taXRBbGwoKTsgfSBicmVhazsKKyAgICAgICAgY2FzZSAnXHUwMDFiJzogaWYgKGVkaXRpbmcoKSkgeyBjbGVhckFsbCgpOyByZXR1cm4gdHJ1ZTsgfSBicmVhazsKKyAgICAgICAgY2FzZSAnXHUwMDdmJzogaWYgKGVkaXRpbmcoKSkgcmV0dXJuIGRlbGV0ZSgpOyBicmVhazsKKyAgICAgICAgZGVmYXVsdDogcmV0dXJuIGluc2VydChjaCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEhhbmRsZSBrZXlQcmVzc2VkIGV2ZW50cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaGFuZGxlUHJlc3NlZChpbnQgY29kZSkgeworICAgIGlmIChlbmFibGVkICYmIGVkaXRpbmcoKSkgeworICAgICAgICBzd2l0Y2ggKGNvZGUpIHsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19QQUdFX1VQOgorICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1VQOgorICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0tQX1VQOgorICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0hPTUU6CisgICAgICAgIGNhcmV0VG9TdGFydCgpOyByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19QQUdFX0RPV046CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfRE9XTjoKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19LUF9ET1dOOgorICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0VORDoKKyAgICAgICAgY2FyZXRUb0xpbWl0KCk7IHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0xFRlQ6CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfS1BfTEVGVDoKKyAgICAgICAgcmV0dXJuIGNhcmV0VG93YXJkc1N0YXJ0KCk7CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfUklHSFQ6CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfS1BfUklHSFQ6CisgICAgICAgIHJldHVybiBjYXJldFRvd2FyZHNMaW1pdCgpOworICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0JBQ0tfU1BBQ0U6IAorICAgICAgICByZXR1cm4gY2FuQmFja3NwYWNlKCk7IC8vIHVuZm9ydHVuYXRlbHksIGluIDEuNSBzd2luZyBoYW5kbGVzIHRoaXMgaW4ga2V5UHJlc3NlZCBpbnN0ZWFkIG9mIGtleVR5cGVkCisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfREVMRVRFOiAKKyAgICAgICAgcmV0dXJuIGNhbkRlbGV0ZSgpOyAvLyB0aGlzIHRvbz8KKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19UQUI6CisgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfRU5URVI6CisgICAgICAgIHJldHVybiBjb21taXRBbGwoKTsgLy8gc28gd2UnbGwgbmV2ZXIgaGFuZGxlIFZLX1RBQiBpbiBrZXlUeXBlZAorICAgICAgICAKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19TSElGVDoKKyAgICAgICAgY2FzZSBLZXlFdmVudC5WS19DT05UUk9MOgorICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0FMVDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBpZ25vcmUgdGhlc2UgdW5sZXNzIGEga2V5IHR5cGVkIGV2ZW50IGdldHMgZ2VuZXJhdGVkCisgICAgICAgIGRlZmF1bHQ6IAorICAgICAgICAvLyBieSBkZWZhdWx0LCBsZXQgZWRpdG9yIGhhbmRsZSBpdCwgYW5kIHdlJ2xsIGFzc3VtZSB0aGF0IGl0IHdpbGwgdGVsbCB1cworICAgICAgICAvLyB0byBlbmRDb21wb3NpdGlvbiBpZiBpdCBkb2VzIGFueXRoaW5nIGZ1bmt5IHdpdGgsIGUuZy4sIGZ1bmN0aW9uIGtleXMuCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICBmaW5hbCBTdHJpbmdbXSBuYW1lcyA9IHsgCisgICAgICAgICJhbGljZSIsICJiaWxsIiwgImNhcnJpZSIsICJkb3VnIiwgImVsZW5hIiwgImZyYW5rIiwgImdlcnRpZSIsICJob3dpZSIsICJpbmdyaWQiLCAiam9obiIgCisgICAgfTsKKworICAgIGlmIChpZCA8IG5hbWVzLmxlbmd0aCkgeworICAgICAgICByZXR1cm4gbmFtZXNbaWRdOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBuYW1lc1tpZF0gKyAiLSIgKyAoaWQvbmFtZXMubGVuZ3RoKTsKKyAgICB9CisgICAgfQorfQorCitjbGFzcyBOYW1lUmVuZGVyZXIgZXh0ZW5kcyBKTGFiZWwgaW1wbGVtZW50cyBMaXN0Q2VsbFJlbmRlcmVyIHsKKworICAgIHB1YmxpYyBDb21wb25lbnQgZ2V0TGlzdENlbGxSZW5kZXJlckNvbXBvbmVudCgKKyAgICAgICAgSkxpc3QgbGlzdCwKKyAgICAgICAgT2JqZWN0IHZhbHVlLAorICAgICAgICBpbnQgaW5kZXgsCisgICAgICAgIGJvb2xlYW4gaXNTZWxlY3RlZCwKKyAgICAgICAgYm9vbGVhbiBjZWxsSGFzRm9jdXMpIHsKKworICAgICAgICBTdHJpbmcgcyA9ICgoSkxhYmVsKXZhbHVlKS5nZXRUZXh0KCk7CisgICAgICAgIHNldFRleHQocyk7CisKKyAgICAgICAgaWYgKGlzU2VsZWN0ZWQpIHsKKyAgICAgICAgICAgIHNldEJhY2tncm91bmQobGlzdC5nZXRTZWxlY3Rpb25CYWNrZ3JvdW5kKCkpOworICAgICAgICAgICAgc2V0Rm9yZWdyb3VuZChsaXN0LmdldFNlbGVjdGlvbkZvcmVncm91bmQoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzZXRCYWNrZ3JvdW5kKGxpc3QuZ2V0QmFja2dyb3VuZCgpKTsKKyAgICAgICAgICAgIHNldEZvcmVncm91bmQobGlzdC5nZXRGb3JlZ3JvdW5kKCkpOworICAgICAgICB9CisKKyAgICAgICAgc2V0RW5hYmxlZChsaXN0LmlzRW5hYmxlZCgpKTsKKyAgICAgICAgc2V0Rm9udChsaXN0LmdldEZvbnQoKSk7CisgICAgICAgIHNldE9wYXF1ZSh0cnVlKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorfQorCitjbGFzcyBMYWJlbENvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IG9iajEsIE9iamVjdCBvYmoyKSB7CisgICAgICAgIENvbGxhdG9yIGNvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgcmV0dXJuIGNvbGxhdG9yLmNvbXBhcmUoKChKTGFiZWwpb2JqMSkuZ2V0VGV4dCgpLCAoKEpMYWJlbClvYmoyKS5nZXRUZXh0KCkpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqMSkgeworICAgICAgICByZXR1cm4gdGhpcy5lcXVhbHMob2JqMSk7CisgICAgfQorfQorCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZERlc2NyaXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjU3NWVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9UcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kRGVzY3JpcHRvci5qYXZhCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLnRyYW5zbGl0OworCitpbXBvcnQgamF2YS5hd3QuSW1hZ2U7CitpbXBvcnQgamF2YS5hd3QuaW0uc3BpLklucHV0TWV0aG9kOworaW1wb3J0IGphdmEuYXd0LmltLnNwaS5JbnB1dE1ldGhvZERlc2NyaXB0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworLyoqCisqIFRoZSBUcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kRGVzY3JpcHRvciBjbGFzcyBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoaXMgcGFja2FnZQorKiBhcyBhbiBpbnB1dCBtZXRob2QgZWRpdG9yLgorKi8KKworcHVibGljIGNsYXNzIFRyYW5zbGl0ZXJhdG9ySW5wdXRNZXRob2REZXNjcmlwdG9yIGltcGxlbWVudHMgSW5wdXRNZXRob2REZXNjcmlwdG9yIHsKKworICAgIHByaXZhdGUgUmVzb3VyY2VCdW5kbGUgcmIgPSBudWxsOworCisgICAgLyoqCisgICAgKiBDcmVhdGVzIHRoZSBUcmFuc2xpdGVyYXRvciBJTUUgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IGNhbGxsZWQgYnkgdGhlCisgICAgKiBKVk0gd2hlbiB0aGUgVHJhbnNsaXRlcmF0b3IgSU1FIGlzIHNlbGVjdGVkIGZyb20gdGhlIGlucHV0IG1ldGhvZCBsaXN0LgorICAgICoKKyAgICAqIEByZXR1cm4gSW5wdXRNZXRob2QgVGhlIFRyYW5zbGl0ZXJhdG9yIElNRSBvYmplY3QuCisgICAgKi8KKyAgICBwdWJsaWMgSW5wdXRNZXRob2QgY3JlYXRlSW5wdXRNZXRob2QoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIG5ldyBUcmFuc2xpdGVyYXRvcklucHV0TWV0aG9kKCk7CisgICAgfQorICAKKyAgICAvKioKKyAgICAqIEdldCB0aGUgbGlzdCBvZiBsb2NhbGVzIHRoYXQgdGhpcyBJTUUgc3VwcG9ydHMuCisgICAgKgorICAgICogQHJldHVybiBMb2NhbGVbXSBUaGlzIHdpbGwgYWx3YXlzIGhhdmUgb25lIGxvY2FsZS4gQnkgZGVmYXVsdAorICAgICogICAgICAgICAgICAgICAgICB3ZSBqdXN0IHJldHVybiB0aGUgY3VycmVudCBsb2NhbGUuIFRoZXJlZm9yZQorICAgICogICAgICAgICAgICAgICAgICB0aGUgVHJhbnNsaXRlcmF0b3IgSU1FIHdvcmtzIGluIGFsbCBsb2NhbGVzLgorICAgICovCisgICAgLy8gdXNlIHRoZSBjdXJyZW50IGFjdGl2ZSBsb2NhbGUKKyAgICBwdWJsaWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGVbXSB7TG9jYWxlLmdldERlZmF1bHQoKX07CisgICAgfQorCisgICAgLyoqCisgICAgKiBUaGUgVHJhbnNsaXRlcmF0b3IgSU1FIGRvZXMgbm90IHN1cHBvcnQgZHluYW1pYyBsb2NhbGVzLiBUaGUgVHJhbnNsaXRlcmF0b3IKKyAgICAqIElNRSdzIGZ1bmN0aW9uYWxpdHkgZG9lcyBub3QgZGVwZW5kIHVwb24gYW55IGxvY2FsZS4KKyAgICAqCisgICAgKiBAcmV0dXJuIGJvb2xlYW4gVGhpcyB3aWxsIGFsd2F5cyBiZSBmYWxzZS4KKyAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc0R5bmFtaWNMb2NhbGVMaXN0KCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgKiBPYnRhaW4gdGhlIGxvY2FsaXplZCBuYW1lIG9mIHRoZSBUcmFuc2xpdGVyYXRvciBJTUUKKyAgICAqCisgICAgKiBAcGFyYW0gaW5wdXRMb2NhbGUgdGhlIHJlcXVlc3RlZCBpbnB1dCBtZXRob2QgbG9jYWxlCisgICAgKiBAcGFyYW0gZGlzcGxheUxhbmd1YWdlIFRoZSByZXF1ZXN0ZWQgdHJhbnNsYXRpb24gb2YgdGhlIFRyYW5zbGl0ZXJhdG9yIElNRQorICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIG5hbWUgZm9yIHRoZSBUcmFuc2xpdGVyYXRvciBJTUUKKyAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW5wdXRNZXRob2REaXNwbGF5TmFtZShMb2NhbGUgaW5wdXRMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZSBkaXNwbGF5TGFuZ3VhZ2UpIHsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSBudWxsOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByYiA9IFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZSgiY29tLmlibS5pY3UuZGV2LnRvb2wuaW1lLnRyYW5zbGl0LlRyYW5zbGl0ZXJhdG9yIiwgZGlzcGxheUxhbmd1YWdlKTsKKyAgICAgICAgICAgIG5hbWUgPSByYi5nZXRTdHJpbmcoIm5hbWUiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIG0pIHsKKyAgICAgICAgICAgIC8vIHVzZSBhIGhhcmRjb2RlZCB2YWx1ZQorICAgICAgICAgICAgbmFtZSA9ICJUcmFuc2xpdGVyYXRvciI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXQgdGhlIGljb24gZm9yIHRoZSBUcmFuc2xpdGVyYXRvciBJTUUuIFRoaXMgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAqCisgICAgKiBAcGFyYW0gaW5wdXRMb2NhbGUgKFRoaXMgaXMgaWdub3JlZCkuCisgICAgKgorICAgICogQHJldHVybiBJbWFnZSBUaGlzIHdpbGwgYWx3YXlzIGJlIG51bGwuCisgICAgKi8KKyAgICBwdWJsaWMgSW1hZ2UgZ2V0SW5wdXRNZXRob2RJY29uKExvY2FsZSBpbnB1dExvY2FsZSkgeworICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9tYW5pZmVzdC5zdHViIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9tYW5pZmVzdC5zdHViCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ZTMxOTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvaW1lL3RyYW5zbGl0L21hbmlmZXN0LnN0dWIKQEAgLTAsMCArMSwxMSBAQAorTWFuaWZlc3QtVmVyc2lvbjogMS4wCitDcmVhdGVkLUJ5OiAxLjAgKElCTSBDb3Jwb3JhdGlvbikKK0V4dGVuc2lvbi1OYW1lOiBjb20uaWJtLmljdS5kZXYudG9vbC5pbWUudHJhbnNsaXQKK0ltcGxlbWVudGF0aW9uLVZlbmRvcjogSUJNIENvcnBvcmF0aW9uCitJbXBsZW1lbnRhdGlvbi1WZXJzaW9uOiAxLjAKK0ltcGxlbWVudGF0aW9uLVRpdGxlOiBJQ1UgVHJhbnNsaXRlcmF0b3IgSU1FCitTcGVjaWZpY2F0aW9uLVZlbmRvcjogSUJNCitTcGVjaWZpY2F0aW9uLVZlcnNpb246IDEuMAorU3BlY2lmaWNhdGlvbi1UaXRsZTogSUNVIFRyYW5zbGl0ZXJhdG9yIElNRQorCitOYW1lOiBjb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvc2VydmljZXMvamF2YS5hd3QuaW0uc3BpLklucHV0TWV0aG9kRGVzY3JpcHRvciBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbWUvdHJhbnNsaXQvc2VydmljZXMvamF2YS5hd3QuaW0uc3BpLklucHV0TWV0aG9kRGVzY3JpcHRvcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDM1OTczCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2ltZS90cmFuc2xpdC9zZXJ2aWNlcy9qYXZhLmF3dC5pbS5zcGkuSW5wdXRNZXRob2REZXNjcmlwdG9yCkBAIC0wLDAgKzEsNyBAQAorIworIworIyBmdWxseS1xdWFsaWZpZWQgbmFtZSBvZiB0aGUgamF2YS5hd3QuaW0uc3BpLklucHV0TWV0aG9kRGVzY3JpcHRvcgorIyBpbXBsZW1lbnRhdGlvbiBjbGFzcworIworCitjb20uaWJtLmljdS5kZXYudG9vbC5pbWUudHJhbnNsaXQuVHJhbnNsaXRlcmF0b3JJbnB1dE1ldGhvZERlc2NyaXB0b3IKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbmRleC9JbmRleEdlbmVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2luZGV4L0luZGV4R2VuZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg5Mzk0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9pbmRleC9JbmRleEdlbmVyYXRvci5qYXZhCkBAIC0wLDAgKzEsODAgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wuaW5kZXg7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS50ZXh0Lio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBJbmRleEdlbmVyYXRvciB7CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgU3RyaW5nIHN0b3BsaXN0ID0gIixjaGFyLnJlcyxDdXJyZW5jeURhdGEucmVzLGludnVjYS5yZXMsbGluZS5yZXMsbGluZV90aC5yZXMscG5hbWVzLnJlcyxyZXNfaW5kZXgucmVzLHNlbnQucmVzLHRpdGxlLnJlcyx1Y2FkYXRhLnJlcyx1Y2FzZS5yZXMsdWlkbmEucmVzLHVuYW1lcy5yZXMsdW5vcm0ucmVzLHVwcm9wcy5yZXMsd29yZC5yZXMsd29yZF9qYS5yZXMsd29yZF9QT1NJWC5yZXMsd29yZF90aC5yZXMiOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCWlmIChhcmdzLmxlbmd0aCA8IDEpIHsKKwkgICAgdXNhZ2UoInRvbyBmZXcgYXJndW1lbnRzIik7CisJfQorCisJRmlsZSBpbkRpciA9IG5ldyBGaWxlKGFyZ3NbMF0pOworCWlmICghaW5EaXIuaXNEaXJlY3RvcnkoKSB8fCAhaW5EaXIuZXhpc3RzKCkpIHsKKwkgICAgdXNhZ2UoImZpcnN0IGFyZ3VtZW50ICciICsgaW5EaXIgKyAiJyBtdXN0IGJlIGV4aXN0aW5nIGRpcmVjdG9yeSIpOworCX0KKworCUZpbGUgb3V0RGlyID0gaW5EaXI7CisJaWYgKGFyZ3MubGVuZ3RoID4gMSkgeworCSAgICBvdXREaXIgPSBuZXcgRmlsZShhcmdzWzFdKTsKKwkgICAgaWYgKCFvdXREaXIuaXNEaXJlY3RvcnkoKSB8fCAhb3V0RGlyLmV4aXN0cygpKSB7CisJCXVzYWdlKCJzZWNvbmQgYXJndW1lbnQgbXVzdCBiZSBleGlzdGluZyBkaXJlY3RvcnkiKTsKKwkgICAgfQorCX0KKwkgICAgCisJRGF0ZUZvcm1hdCBmbXQgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBEYXRlRm9ybWF0LkxPTkcsIExvY2FsZS5VUyk7CisJRGF0ZUZvcm1hdCBjb3B5Zm10ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIicjIENvcHlyaWdodCAoQykgJ3l5eXknIElCTSBJbmMuICBBbGwgUmlnaHRzIFJlc2VydmVkLiciKTsKKworCXRyeSB7CisJICAgIEZpbGUgb3V0RmlsZSA9IG5ldyBGaWxlKG91dERpciwgInJlc19pbmRleC50eHQiKTsKKwkgICAgUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIobmV3IEJ1ZmZlcmVkV3JpdGVyKG5ldyBGaWxlV3JpdGVyKG91dEZpbGUpKSk7CisJICAgIERhdGUgbm93ID0gbmV3IERhdGUoKTsKKwkgICAgcHcucHJpbnRsbigiIyBHZW5lcmF0ZWQgYnkgIiArIEluZGV4R2VuZXJhdG9yLmNsYXNzLmdldE5hbWUoKSArICIgb24gIiArIGZtdC5mb3JtYXQobm93KSk7CisJICAgIHB3LnByaW50bG4oIiMgZnJvbSBjb250ZW50cyBvZiAiICsgaW5EaXIuZ2V0Q2Fub25pY2FsUGF0aCgpKTsKKwkgICAgcHcucHJpbnRsbihjb3B5Zm10LmZvcm1hdChub3cpKTsKKwkgICAgRmlsZVtdIGZpbGVzID0gaW5EaXIubGlzdEZpbGVzKCk7CisJICAgIGludCBjb3VudCA9IDA7CisJICAgIGlmIChmaWxlcyAhPSBudWxsKSB7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspeworCQkgICAgaWYgKCFmaWxlc1tpXS5pc0RpcmVjdG9yeSgpKSB7CisJCQlTdHJpbmcgbmFtZSA9ICIsIiArIGZpbGVzW2ldLmdldE5hbWUoKTsgLy8gYWRkICcsJyB0byBnZXQgZXhhY3QgbWF0Y2gKKwkJCWlmIChuYW1lLmVuZHNXaXRoKCIucmVzIikgJiYgc3RvcGxpc3QuaW5kZXhPZihuYW1lKSA9PSAtMSkgeworCQkJICAgIHB3LnByaW50bG4obmFtZS5zdWJzdHJpbmcoMSwgbmFtZS5sYXN0SW5kZXhPZignLicpKSk7IC8vIDEgdG8gdHJpbSBvZmYgJywnCisJCQkgICAgKytjb3VudDsKKwkJCX0KKwkJICAgIH0KKwkJfQorCSAgICB9CisJICAgIHB3LnByaW50bG4oIiMgRm91bmQgIiArIGNvdW50ICsgIiBmaWxlcyIpOworCSAgICBwdy5wcmludGxuKCIjIEVuZCBvZiBmaWxlIik7CisJICAgIGlmIChjb3VudCA9PSAwKSB7CisJCVN5c3RlbS5lcnIucHJpbnRsbigiV2FybmluZzogbWF0Y2hlZCBubyBmaWxlcyIpOworCSAgICB9IAorCSAgICBwdy5jbG9zZSgpOworCX0KKwljYXRjaCAoSU9FeGNlcHRpb24gZSkgeworCSAgICB1c2FnZShlLmdldE1lc3NhZ2UoKSk7CisJfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdXNhZ2UoU3RyaW5nIG1zZykgeworCWlmIChtc2cgIT0gbnVsbCkgeworCSAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVycm9yOiAiICsgbXNnKTsKKwl9CisJU3lzdGVtLm91dC5wcmludGxuKCJVc2FnZTogSW5kZXhHZW5lcmF0b3IgaW5EaXIgb3V0RGlyIik7CisJU3lzdGVtLm91dC5wcmludGxuKCIgIGluRGlyIGlzIGFuIGV4aXN0aW5nIGRpcmVjdG9yeSB3aG9zZSBsb2NhbGUtYmFzZWQgcmVzb3VyY2VzIGFyZSB0byBiZSBlbnVtZXJhdGVkIik7CisJU3lzdGVtLm91dC5wcmludGxuKCIgIG91dERpciBpcyBhbiBleGlzdGluZyBkaXJlY3RvcnkgaW4gd2hpY2ggdGhlIHJlc19pbmRleC50eHQgZmlsZSB3aWxsIGJlIHBsYWNlZCIpOworCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlVzYWdlIik7CisgICAgfQorfQorCQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9BcmFiaWNDaGFyYWN0ZXJEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0FyYWJpY0NoYXJhY3RlckRhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNWRiYzNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9BcmFiaWNDaGFyYWN0ZXJEYXRhLmphdmEKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCitwdWJsaWMgY2xhc3MgQXJhYmljQ2hhcmFjdGVyRGF0YQoreworICAgIHB1YmxpYyBjbGFzcyBSZWNvcmQKKyAgICB7CisgICAgICAgIHB1YmxpYyBpbnQgZ2V0Q29kZVBvaW50KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGNvZGVQb2ludDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRHZW5lcmFsQ2F0ZWdvcnkoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZ2VuZXJhbENhdGVnb3J5OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldERlY29tcG9zaXRpb25UeXBlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGRlY29tcG9zaXRpb25UeXBlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERlY29tcG9zaXRpb24oKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZGVjb21wb3NpdGlvbjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBSZWNvcmQoaW50IGNoYXJhY3RlcikKKyAgICAgICAgeworICAgICAgICAgICAgY29kZVBvaW50ICAgICAgICAgPSBjaGFyYWN0ZXI7CisgICAgICAgICAgICBnZW5lcmFsQ2F0ZWdvcnkgICA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShjaGFyYWN0ZXIpOworICAgICAgICAgICAgZGVjb21wb3NpdGlvblR5cGUgPSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoY2hhcmFjdGVyLCBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3dpdGNoIChkZWNvbXBvc2l0aW9uVHlwZSkgeworICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLkZJTkFMOgorICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLklOSVRJQUw6CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuSVNPTEFURUQ6CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuTUVESUFMOgorICAgICAgICAgICAgICAgIGRlY29tcG9zaXRpb24gPSBOb3JtYWxpemVyLmNvbXBvc2UoVUNoYXJhY3Rlci50b1N0cmluZyhjaGFyYWN0ZXIpLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5DQU5PTklDQUw6CisgICAgICAgICAgICAgICAgZGVjb21wb3NpdGlvbiA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKFVDaGFyYWN0ZXIudG9TdHJpbmcoY2hhcmFjdGVyKSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGRlY29tcG9zaXRpb24gPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIGludCBjb2RlUG9pbnQ7CisgICAgICAgIHByaXZhdGUgaW50IGdlbmVyYWxDYXRlZ29yeTsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZGVjb21wb3NpdGlvblR5cGU7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGRlY29tcG9zaXRpb247CisgICAgfQorICAgIAorICAgIHByaXZhdGUgQXJhYmljQ2hhcmFjdGVyRGF0YShpbnQgY2hhckNvdW50KQorICAgIHsKKyAgICAgICAgcmVjb3JkcyA9IG5ldyBSZWNvcmRbY2hhckNvdW50XTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGFkZChpbnQgY2hhcmFjdGVyKQorICAgIHsKKyAgICAgICAgcmVjb3Jkc1tyZWNvcmRJbmRleCsrXSA9IG5ldyBSZWNvcmQoY2hhcmFjdGVyKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFJlY29yZCBnZXRSZWNvcmQoaW50IGluZGV4KQorICAgIHsKKyAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSByZWNvcmRzLmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZWNvcmRzW2luZGV4XTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBjb3VudFJlY29yZHMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlY29yZHMubGVuZ3RoOworICAgIH0KKyAKKyAgICAvLyBUT0RPOiBkbyB3ZSBuZWVkIHRvIGNoYW5nZSB0aGlzIHRvIHVzZSBVbmljb2RlU2V0SXRlcmF0b3I/CisgICAgLy8gVGhhdCB3aWxsIG1lYW4gbm90IGtub3dpbmcgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHVudGlsCisgICAgLy8gYWZ0ZXIgdGhlIGl0ZXJhdGlvbiBpcyBkb25lLCBzbyB3ZSdkIGhhdmUgdG8gdXNlIGEgdmVjdG9yCisgICAgLy8gdG8gaG9sZCB0aGUgUmVjb3JkcyBhdCBmaXJzdCBhbmQgY29weSBpdCB0byBhbiBhcnJheQorICAgIC8vIHdoZW4gd2UncmUgZG9uZS4uLiAgIAorICAgIHB1YmxpYyBzdGF0aWMgQXJhYmljQ2hhcmFjdGVyRGF0YSBmYWN0b3J5KFVuaWNvZGVTZXQgY2hhcmFjdGVyU2V0KQorICAgIHsKKyAgICAgICAgaW50IGNoYXJDb3VudCA9IGNoYXJhY3RlclNldC5zaXplKCk7CisgICAgICAgIEFyYWJpY0NoYXJhY3RlckRhdGEgZGF0YSA9IG5ldyBBcmFiaWNDaGFyYWN0ZXJEYXRhKGNoYXJDb3VudCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoYXJDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICBkYXRhLmFkZChjaGFyYWN0ZXJTZXQuY2hhckF0KGkpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgUmVjb3JkW10gcmVjb3JkczsKKyAgICBwcml2YXRlIGludCByZWNvcmRJbmRleCA9IDA7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0FyYWJpY1NoYXBpbmcuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQXJhYmljU2hhcGluZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0ZDY1ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0FyYWJpY1NoYXBpbmcuamF2YQpAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworCitwdWJsaWMgY2xhc3MgQXJhYmljU2hhcGluZyB7CisKKyAgICAvLyBhcmFiaWMgICBzaGFwaW5nIHR5cGUgY29kZQorCisgICAgLy8gc2hhcGluZyBiaXQgbWFza3MKKyAgICBzdGF0aWMgZmluYWwgaW50IE1BU0tfU0hBUEVfUklHSFQgICA9IDE7IC8vIGlmIHRoaXMgYml0IHNldCwgc2hhcGVzIHRvIHJpZ2h0CisgICAgc3RhdGljIGZpbmFsIGludCBNQVNLX1NIQVBFX0xFRlQgPSAyOyAgIC8vIGlmIHRoaXMgYml0IHNldCwgc2hhcGVzIHRvIGxlZnQKKyAgICBzdGF0aWMgZmluYWwgaW50IE1BU0tfVFJBTlNQQVJFTlQgICA9IDQ7IC8vIGlmIHRoaXMgYml0IHNldCwgaXMgdHJhbnNwYXJlbnQgKGlnbm9yZSBvdGhlciBiaXRzKQorICAgIHN0YXRpYyBmaW5hbCBpbnQgTUFTS19OT1NIQVBFICAgPSA4OyAvLyBpZiB0aGlzIGJpdCBzZXQsIGRvbid0IHNoYXBlIHRoaXMgY2hhciwgaS5lLiB0YXR3ZWVsCisKKyAgICAvLyBzaGFwaW5nIHZhbHVlcworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZBTFVFX05PTkUgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZBTFVFX1JJR0hUID0gTUFTS19TSEFQRV9SSUdIVDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWQUxVRV9MRUZUID0gTUFTS19TSEFQRV9MRUZUOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZBTFVFX0RVQUwgPSBNQVNLX1NIQVBFX1JJR0hUIHwgTUFTS19TSEFQRV9MRUZUOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZBTFVFX1RSQU5TUEFSRU5UID0gTUFTS19UUkFOU1BBUkVOVDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWQUxVRV9OT1NIQVBFX0RVQUwgPSBNQVNLX05PU0hBUEUgfCBWQUxVRV9EVUFMOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZBTFVFX05PU0hBUEVfTk9ORSA9IE1BU0tfTk9TSEFQRTsKKworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldFNoYXBlVHlwZShjaGFyIGNoKQorICAgIHsKKyAgICAgICAgaW50IHR0ID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGNoLCBVUHJvcGVydHkuSk9JTklOR19UWVBFKTsKKyAgICAgICAgCisgICAgICAgIHN3aXRjaCh0dCkgeworICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLkpPSU5fQ0FVU0lORzoKKyAgICAgICAgICAgICAgICByZXR1cm4gVkFMVUVfTk9TSEFQRV9EVUFMOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLkxFRlRfSk9JTklORzoKKyAgICAgICAgICAgICAgICByZXR1cm4gVkFMVUVfTEVGVDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLlJJR0hUX0pPSU5JTkc6CisgICAgICAgICAgICAgICAgcmV0dXJuIFZBTFVFX1JJR0hUOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuSm9pbmluZ1R5cGUuRFVBTF9KT0lOSU5HOgorICAgICAgICAgICAgICAgIHJldHVybiBWQUxVRV9EVUFMOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuSm9pbmluZ1R5cGUuVFJBTlNQQVJFTlQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIFZBTFVFX1RSQU5TUEFSRU5UOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkpvaW5pbmdUeXBlLk5PTl9KT0lOSU5HOgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gVkFMVUVfTk9TSEFQRV9OT05FOyAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogQ2hhcnMgaW4gbG9naWNhbCBvcmRlci4KKyAgICAgKiBsZWZ0VHlwZSBpcyBzaGFwaW5nIGNvZGUgb2YgY2hhciB0byBsb2dpY2FsIGxlZnQgb2YgcmFuZ2UKKyAgICAgKiByaWdodFR5cGUgaXMgc2hhcGluZyBjb2RlIG9mIGNoYXIgdG8gbG9naWNhbCByaWdodCBvZiByYW5nZQorICAgICAqLworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNoYXBlKGNoYXJbXSBjaGFycywgaW50IGxlZnRUeXBlLCBpbnQgcmlnaHRUeXBlLCBDbGFzc1RhYmxlIGlzb2xDbGFzc1RhYmxlKSB7CisgICAgICAgIC8vIGl0ZXJhdGUgaW4gbG9naWNhbCBvcmRlciBmcm9tIGxlZnQgdG8gcmlnaHQKKyAgICAgICAgLy8KKyAgICAgICAgLy8gdGhlIGVmZmVjdGl2ZSByaWdodCBjaGFyIGlzIHRoZSBtb3N0IHJlY2VudGx5IGVuY291bnRlcmVkCisgICAgICAgIC8vIG5vbi10cmFuc3BhcmVudCBjaGFyCisgICAgICAgIC8vCisgICAgICAgIC8vIGZvdXIgYm9vbGVhbiBzdGF0ZXM6CisgICAgICAgIC8vICAgdGhlIGVmZmVjdGl2ZSByaWdodCBjaGFyIHNoYXBlcworICAgICAgICAvLyAgIHRoZSBlZmZlY3RpdmUgcmlnaHQgY2hhciBjYXVzZXMgcmlnaHQgc2hhcGluZworICAgICAgICAvLyAgIHRoZSBjdXJyZW50IGNoYXIgc2hhcGVzCisgICAgICAgIC8vICAgdGhlIGN1cnJlbnQgY2hhciBjYXVzZXMgbGVmdCBzaGFwaW5nCisgICAgICAgIC8vCisgICAgICAgIC8vIGlmIGJvdGggY2F1c2Ugc2hhcGluZywgdGhlbgorICAgICAgICAvLyAgIHJpZ2h0ICs9IDIgKGlzb2xhdGUgdG8gaW5pdGlhbCwgb3IgZmluYWwgdG8gbWVkaWFsKQorICAgICAgICAvLyAgIGN1ciArPSAxIChpc29sYXRlIHRvIGZpbmFsKQorCisgICAgICAgIC8vIGVybiBpcyBlZmZlY3RpdmUgcmlnaHQgbG9naWNhbCBpbmRleAorICAgICAgICBpbnQgZXJuID0gLTE7CisKKyAgICAgICAgYm9vbGVhbiByaWdodFNoYXBlcyA9IGZhbHNlOworICAgICAgICBib29sZWFuIHJpZ2h0Q2F1c2VzID0gKHJpZ2h0VHlwZSAmIE1BU0tfU0hBUEVfTEVGVCkgIT0gMDsKKworICAgICAgICBmb3IgKGludCBuID0gMDsgbiA8IGNoYXJzLmxlbmd0aDsgbisrKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBjaGFyc1tuXTsKKyAgICAgICAgICAgIGludCB0ID0gZ2V0U2hhcGVUeXBlKGMpOworCisgICAgICAgICAgICBpZiAoKHQgJiBNQVNLX1RSQU5TUEFSRU5UKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2xlYW4gY3VyU2hhcGVzID0gKHQgJiBNQVNLX05PU0hBUEUpID09IDA7CisgICAgICAgICAgICBib29sZWFuIGN1ckNhdXNlcyA9ICh0ICYgTUFTS19TSEFQRV9SSUdIVCkgIT0gMDsKKworICAgICAgICAgICAgaWYgKHJpZ2h0Q2F1c2VzICYmIGN1ckNhdXNlcykgeworICAgICAgICAgICAgICAgIGlmIChyaWdodFNoYXBlcykgeworICAgICAgICAgICAgICAgICAgICBjaGFyc1tlcm5dICs9IDI7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGN1clNoYXBlcykgeworICAgICAgICAgICAgICAgICAgICBjaGFyc1tuXSA9IChjaGFyKSAoaXNvbENsYXNzVGFibGUuZ2V0R2x5cGhDbGFzc0lEKGMpICsgMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoY3VyU2hhcGVzKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXJzW25dID0gKGNoYXIpIGlzb2xDbGFzc1RhYmxlLmdldEdseXBoQ2xhc3NJRChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJpZ2h0U2hhcGVzID0gY3VyU2hhcGVzOworICAgICAgICAgICAgcmlnaHRDYXVzZXMgPSAodCAmIE1BU0tfU0hBUEVfTEVGVCkgIT0gMDsKKyAgICAgICAgICAgIGVybiA9IG47CisgICAgICAgIH0KKworICAgICAgICBpZiAocmlnaHRTaGFwZXMgJiYgcmlnaHRDYXVzZXMgJiYgKGxlZnRUeXBlICYgTUFTS19TSEFQRV9SSUdIVCkgIT0gMCkgeworICAgICAgICAgICAgY2hhcnNbZXJuXSArPSAyOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9CdWlsZE1pcnJvcmluZ1RhYmxlcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9CdWlsZE1pcnJvcmluZ1RhYmxlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2NWMxODgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0J1aWxkTWlycm9yaW5nVGFibGVzLmphdmEKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKKy8qKgorICogQGF1dGhvciBlbWFkZXIKKyAqCisgKiBUT0RPIFRvIGNoYW5nZSB0aGUgdGVtcGxhdGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHR5cGUgY29tbWVudCBnbyB0bworICogV2luZG93IC0gUHJlZmVyZW5jZXMgLSBKYXZhIC0gQ29kZSBTdHlsZSAtIENvZGUgVGVtcGxhdGVzCisgKi8KK3B1YmxpYyBjbGFzcyBCdWlsZE1pcnJvcmluZ1RhYmxlcyBleHRlbmRzIE1vZHVsZVdyaXRlcgoreworICAgIHB1YmxpYyBCdWlsZE1pcnJvcmluZ1RhYmxlcygpCisgICAgeworICAgICAgICBzdXBlcigpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBkdW1wKFN0cmluZyBuYW1lLCBpbnRbXSBhcnJheSwgaW50IGxlbmd0aCwgaW50IHZhbHVlc1BlckxpbmUpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgbGluZSA9IG5ldyBTdHJpbmdCdWZmZXIoIiAgICAiKTsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKCJjb25zdCBMRVVuaWNvZGUzMiBEZWZhdWx0Q2hhck1hcHBlcjo6IiArIG5hbWUgKyAiW10gPSB7Iik7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpID4gMCAmJiBpICUgdmFsdWVzUGVyTGluZSA9PSAwKSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50bG4obGluZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBsaW5lLnNldExlbmd0aCg0KTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGxpbmUuYXBwZW5kKCIweCIgKyBVdGlsaXR5LmhleChhcnJheVtpXSwgNCkpOworICAgICAgICAgICAgbGluZS5hcHBlbmQoIiwgIik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgbGluZS5zZXRMZW5ndGgobGluZS5sZW5ndGgoKSAtIDIpOworICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbihsaW5lLnRvU3RyaW5nKCkpOworICAgICAgICBvdXRwdXQucHJpbnRsbigifTtcbiIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZU1pcnJvcmVkRGF0YUZpbGUoU3RyaW5nIGZpbGVuYW1lKQorICAgIHsKKyAgICAgICAgVW5pY29kZVNldCBtaXJyb3JlZCA9IG5ldyBVbmljb2RlU2V0KCJbXFxwe0JpZGlfTWlycm9yZWR9XSIpOworICAgICAgICBpbnQgY291bnQgPSBtaXJyb3JlZC5zaXplKCk7CisgICAgICAgIGludFtdIGNoYXJzICAgPSBuZXcgaW50W2NvdW50XTsKKyAgICAgICAgaW50W10gbWlycm9ycyA9IG5ldyBpbnRbY291bnRdOworICAgICAgICBpbnQgdG90YWwgPSAwOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaGVyZSBhcmUgIiArIGNvdW50ICsgIiBtaXJyb3JlZCBjaGFyYWN0ZXJzLiIpOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIGludCBjaCA9IG1pcnJvcmVkLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGludCBtICA9IFVDaGFyYWN0ZXIuZ2V0TWlycm9yKGNoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGNoICE9IG0pIHsKKyAgICAgICAgICAgICAgICBjaGFyc1t0b3RhbF0gPSBjaCAmIDB4RkZGRjsKKyAgICAgICAgICAgICAgICBtaXJyb3JzW3RvdGFsKytdID0gbSAmIDB4RkZGRjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaGVyZSBhcmUgIiArIHRvdGFsICsgIiBjaGFyYWN0ZXJzIHdpdGggYSBkaWZmZXJlbnQgbWlycm9yLlxuIik7CisgICAgICAgIAorICAgICAgICBvcGVuRmlsZShmaWxlbmFtZSk7CisgICAgICAgIHdyaXRlSGVhZGVyKG51bGwsIGluY2x1ZGVGaWxlcyk7CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgZHVtcCgibWlycm9yZWRDaGFycyIsIGNoYXJzLCB0b3RhbCwgOCk7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgCisgICAgICAgIGR1bXAoInNyYWhDZGVyb3JyaW0iLCBtaXJyb3JzLCB0b3RhbCwgOCk7CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbigiY29uc3QgbGVfaW50MzIgRGVmYXVsdENoYXJNYXBwZXI6Om1pcnJvcmVkQ2hhcnNDb3VudCA9ICIgKyB0b3RhbCArICI7XG4iKTsKKworICAgICAgICB3cml0ZVRyYWlsZXIoKTsKKyAgICAgICAgY2xvc2VGaWxlKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBpbmNsdWRlRmlsZXNbXSA9IHsiTEVUeXBlcy5oIiwgIkRlZmF1bHRDaGFyTWFwcGVyLmgifTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgQnVpbGRNaXJyb3JpbmdUYWJsZXMgYm10ID0gbmV3IEJ1aWxkTWlycm9yaW5nVGFibGVzKCk7CisgICAgICAgIAorICAgICAgICBibXQud3JpdGVNaXJyb3JlZERhdGFGaWxlKCJNaXJyb3JlZENoYXJEYXRhLmNwcCIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQ2Fub25HU1VCQnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9DYW5vbkdTVUJCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg0OGUyYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQ2Fub25HU1VCQnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsNTIyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVTY3JpcHQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKy8qKgorICogQGF1dGhvciBFcmljIE1hZGVyCisgKgorICogTm90ZXM6CisgKiAKKyAqIFRoZSBwcm9wZXJ0eSBccHtEZWNvbXBvc2l0aW9uX1R5cGU9Q2Fub25pY2FsfSB3aWxsIG1hdGNoIGFsbCBjaGFyYWN0ZXJzIHdpdGggYSBjYW5vbmljYWwKKyAqIGRlY29tcG9zaXRpb24uCisgKgorICogU28gIltbXFxwe0xhdGlufVxccHtHcmVla31cXHB7Q3lyaWxsaWN9XSAmIFtcXHB7RGVjb21wb3NpdGlvbl9UeXBlPUNhbm9uaWNhbH1dXSIKKyAqIHdpbGwgbWF0Y2ggYWxsIExhdGluLCBHcmVlayBhbmQgQ3lyaWxsaWMgY2hhcmFjdGVycyB3aXRoIGEgY2Fub25pY2FsIGRlY29tcG9zaXRpb24uCisgKiAKKyAqIEFyZSB0aGVzZSB0aHJlZSBzY3JpcHRzIGVub3VnaD8gRG8gd2Ugd2FudCB0byBjb2xsZWN0IHRoZW0gYWxsIGF0IG9uY2UgYW5kIGRpc3RyaWJ1dGUgYnkgc2NyaXB0LAorICogb3IgcHJvY2VzcyB0aGVtIG9uZSBzY3JpcHQgYXQgYSB0aW1lLiBJdCdzIHByb2JhYmx5IGEgZ29vZCBpZGVhIHRvIGJ1aWxkIGEgc2luZ2xlIHRhYmxlIGZvcgorICogaG93ZXZlciBtYW55IHNjcmlwdHMgdGhlcmUgYXJlLgorICogCisgKiBJdCBtaWdodCBiZSBiZXR0ZXIgdG8gY29sbGVjdCBhbGwgdGhlIGNoYXJhY3RlcnMgdGhhdCBoYXZlIGEgY2Fub25pY2FsIGRlY29tcG9zaXRpb24gYW5kIGp1c3QKKyAqIHNvcnQgdGhlbSBpbnRvIGhvd2V2ZXIgbWFueSBzY3JpcHRzIHRoZXJlIGFyZS4uLiB1bmxlc3Mgd2UnbGwgZ2V0IGNoYXJhY3RlcnMgaW4gQ09NTU9OPz8/CisgKi8KK3B1YmxpYyBjbGFzcyBDYW5vbkdTVUJCdWlsZGVyCit7CisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgY29udmVydEFyYWJpY1N0cmluZyhpbnQgdHlwZSwgaW50IGxpZ2F0dXJlLCBTdHJpbmcgZGVjb21wLCBDbGFzc1RhYmxlIGlzb2xDbGFzc1RhYmxlKQorICAgIHsKKyAgICAgICAgaW50IGxlZnRUeXBlICA9IEFyYWJpY1NoYXBpbmcuVkFMVUVfTk9ORTsKKyAgICAgICAgaW50IHJpZ2h0VHlwZSA9IEFyYWJpY1NoYXBpbmcuVkFMVUVfTk9ORTsKKyAgICAgICAgCisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLklTT0xBVEVEOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLkZJTkFMOgorICAgICAgICAgICAgICAgIHJpZ2h0VHlwZSA9IEFyYWJpY1NoYXBpbmcuVkFMVUVfTEVGVDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLklOSVRJQUw6CisgICAgICAgICAgICAgICAgbGVmdFR5cGUgPSBBcmFiaWNTaGFwaW5nLlZBTFVFX1JJR0hUOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuTUVESUFMOgorICAgICAgICAgICAgICAgcmlnaHRUeXBlID0gQXJhYmljU2hhcGluZy5WQUxVRV9MRUZUOworICAgICAgICAgICAgICAgbGVmdFR5cGUgID0gQXJhYmljU2hhcGluZy5WQUxVRV9SSUdIVDsKKyAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgCisgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICByZXR1cm4gZGVjb21wICsgVUNoYXJhY3Rlci50b1N0cmluZyhsaWdhdHVyZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNoYXJbXSBjaGFycyA9IGRlY29tcC50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgICAKKyAgICAgICAgQXJhYmljU2hhcGluZy5zaGFwZShjaGFycywgbGVmdFR5cGUsIHJpZ2h0VHlwZSwgaXNvbENsYXNzVGFibGUpOworICAKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoY2hhcnMpICsgVUNoYXJhY3Rlci50b1N0cmluZyhsaWdhdHVyZSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIGJ1aWxkQXJhYmljQ29udGV4dHVhbEZvcm1zKEFyYWJpY0NoYXJhY3RlckRhdGEgZGF0YSwgQ2xhc3NUYWJsZSBpbml0Q2xhc3NUYWJsZSwgQ2xhc3NUYWJsZSBtZWRpQ2xhc3NUYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc1RhYmxlIGZpbmFDbGFzc1RhYmxlLCBDbGFzc1RhYmxlIGlzb2xDbGFzc1RhYmxlKQorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiRmluZGluZyBBcmFiaWMgY29udGV4dHVhbCBmb3Jtcy4uLiAiKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5jb3VudFJlY29yZHMoKTsgaSArPSAxKSB7CisgICAgICAgICAgICBBcmFiaWNDaGFyYWN0ZXJEYXRhLlJlY29yZCByZWNvcmQgPSBkYXRhLmdldFJlY29yZChpKTsKKyAgICAgICAgICAgIFN0cmluZyBkZWNvbXBvc2l0aW9uID0gcmVjb3JkLmdldERlY29tcG9zaXRpb24oKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGRlY29tcG9zaXRpb24gIT0gbnVsbCAmJiBkZWNvbXBvc2l0aW9uLmxlbmd0aCgpID09IDEpIHsKKyAgICAgICAgICAgICAgICBpbnQgY29udGV4dHVhbCA9IHJlY29yZC5nZXRDb2RlUG9pbnQoKTsKKyAgICAgICAgICAgICAgICBpbnQgaXNvbGF0ZWQgICA9IFVURjE2LmNoYXJBdChyZWNvcmQuZ2V0RGVjb21wb3NpdGlvbigpLCAwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHN3aXRjaCAocmVjb3JkLmdldERlY29tcG9zaXRpb25UeXBlKCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuSU5JVElBTDoKKyAgICAgICAgICAgICAgICAgICAgaW5pdENsYXNzVGFibGUuYWRkTWFwcGluZyhpc29sYXRlZCwgY29udGV4dHVhbCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5NRURJQUw6CisgICAgICAgICAgICAgICAgICAgIG1lZGlDbGFzc1RhYmxlLmFkZE1hcHBpbmcoaXNvbGF0ZWQsIGNvbnRleHR1YWwpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5GSU5BTDoKKyAgICAgICAgICAgICAgICAgICBmaW5hQ2xhc3NUYWJsZS5hZGRNYXBwaW5nKGlzb2xhdGVkLCBjb250ZXh0dWFsKTsKKyAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIGNhc2UgVUNoYXJhY3Rlci5EZWNvbXBvc2l0aW9uVHlwZS5JU09MQVRFRDoKKyAgICAgICAgICAgICAgICAgICBpc29sQ2xhc3NUYWJsZS5hZGRNYXBwaW5nKGlzb2xhdGVkLCBjb250ZXh0dWFsKTsKKyAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAvLyBpc3N1ZSBzb21lIGVycm9yIG1lc3NhZ2U/CisgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRvbmUuIik7CisgICAgfQorCisgICAgc3RhdGljIExpZ2F0dXJlVHJlZSBidWlsZEFyYWJpY0xpZ2F0dXJlVHJlZShBcmFiaWNDaGFyYWN0ZXJEYXRhIGRhdGEsIENsYXNzVGFibGUgaXNvbENsYXNzVGFibGUpCisgICAgeworICAgICAgICBMaWdhdHVyZVRyZWUgY29udGV4dHVhbFRyZWUgPSBuZXcgTGlnYXR1cmVUcmVlKCk7CisgICAgICAgIGludCBsaWdhdHVyZUNvdW50ID0gMDsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIkJ1aWxkaW5nIEFyYWJpYyBsaWdhdHVyZSB0cmVlLi4uICIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmNvdW50UmVjb3JkcygpOyBpICs9IDEpIHsKKyAgICAgICAgICAgIEFyYWJpY0NoYXJhY3RlckRhdGEuUmVjb3JkIHJlY29yZCA9IGRhdGEuZ2V0UmVjb3JkKGkpOworICAgICAgICAgICAgU3RyaW5nIGRlY29tcG9zaXRpb24gPSByZWNvcmQuZ2V0RGVjb21wb3NpdGlvbigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZGVjb21wb3NpdGlvbiAhPSBudWxsICYmIGRlY29tcG9zaXRpb24ubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICAgICAgaW50IGxpZ2F0dXJlICAgPSByZWNvcmQuZ2V0Q29kZVBvaW50KCk7CisgICAgICAgICAgICAgICAgaW50IGRlY29tcFR5cGUgPSByZWNvcmQuZ2V0RGVjb21wb3NpdGlvblR5cGUoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGRlY29tcFR5cGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuRklOQUw6CisgICAgICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLklOSVRJQUw6CisgICAgICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyLkRlY29tcG9zaXRpb25UeXBlLk1FRElBTDoKKyAgICAgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuSVNPTEFURUQ6CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHR1YWxUcmVlLmluc2VydChjb252ZXJ0QXJhYmljU3RyaW5nKGRlY29tcFR5cGUsIGxpZ2F0dXJlLCBkZWNvbXBvc2l0aW9uLCBpc29sQ2xhc3NUYWJsZSkpOworICAgICAgICAgICAgICAgICAgICBsaWdhdHVyZUNvdW50ICs9IDE7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUuQ0FOT05JQ0FMOgorICAgICAgICAgICAgICAgICAgICAvL2Nhbm5vbmljYWxUcmVlLmluc2VydChkZWNvbXBvc2l0aW9uICsgVUNoYXJhY3Rlci50b1N0cmluZyhsaWdhdHVyZSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihsaWdhdHVyZUNvdW50ICsgIiBsaWdhdHVyZXMuIik7CisgICAgICAgIAorICAgICAgICByZXR1cm4gY29udGV4dHVhbFRyZWU7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgU0lNUExFX0dMWVBIID0gMTsKKyAgICBzdGF0aWMgZmluYWwgaW50IExJR0FUVVJFX0dMWVBIID0gMjsKKyAgICBzdGF0aWMgZmluYWwgaW50IE1BUktfR0xZUEggPSAzOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ09NUE9ORU5UX0dMWVBIID0gNDsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IGNhdGVnb3J5Q2xhc3NNYXBbXSA9IHsKKyAgICAwLCAgICAgICAgICAgICAgLy8gVU5BU1NJR05FRAorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBVUFBFUkNBU0VfTEVUVEVSCisgICAgU0lNUExFX0dMWVBILCAgIC8vIExPV0VSQ0FTRV9MRVRURVIKKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gVElUTEVDQVNFX0xFVFRFUgorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBNT0RJRklFUl9MRVRURVIKKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gT1RIRVJfTEVUVEVSCisgICAgTUFSS19HTFlQSCwgICAgIC8vIE5PTl9TUEFDSU5HX01BUksKKyAgICBNQVJLX0dMWVBILCAgICAgLy8gRU5DTE9TSU5HX01BUksgPz8KKyAgICBNQVJLX0dMWVBILCAgICAgLy8gQ09NQklOSU5HX1NQQUNJTkdfTUFSSyA/PworICAgIFNJTVBMRV9HTFlQSCwgICAvLyBERUNJTUFMX05VTUJFUgorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBMRVRURVJfTlVNQkVSCisgICAgU0lNUExFX0dMWVBILCAgIC8vIE9USEVSX05VTUJFUjsKKyAgICAwLCAgICAgICAgICAgICAgLy8gU1BBQ0VfU0VQQVJBVE9SCisgICAgMCwgICAgICAgICAgICAgIC8vIExJTkVfU0VQQVJBVE9SCisgICAgMCwgICAgICAgICAgICAgIC8vIFBBUkFHUkFQSF9TRVBBUkFUT1IKKyAgICAwLCAgICAgICAgICAgICAgLy8gQ09OVFJPTAorICAgIDAsICAgICAgICAgICAgICAvLyBGT1JNQVQKKyAgICAwLCAgICAgICAgICAgICAgLy8gUFJJVkFURV9VU0UKKyAgICAwLCAgICAgICAgICAgICAgLy8gU1VSUk9HQVRFCisgICAgU0lNUExFX0dMWVBILCAgIC8vIERBU0hfUFVOQ1RVQVRJT04KKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gU1RBUlRfUFVOQ1RVQVRJT04KKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gRU5EX1BVTkNUVUFUSU9OCisgICAgU0lNUExFX0dMWVBILCAgIC8vIENPTk5FQ1RPUl9QVU5DVFVBVElPTgorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBPVEhFUl9QVU5DVFVBVElPTgorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBNQVRIX1NZTUJPTDsKKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gQ1VSUkVOQ1lfU1lNQk9MCisgICAgU0lNUExFX0dMWVBILCAgIC8vIE1PRElGSUVSX1NZTUJPTAorICAgIFNJTVBMRV9HTFlQSCwgICAvLyBPVEhFUl9TWU1CT0wKKyAgICBTSU1QTEVfR0xZUEgsICAgLy8gSU5JVElBTF9QVU5DVFVBVElPTgorICAgIFNJTVBMRV9HTFlQSCAgICAvLyBGSU5BTF9QVU5DVFVBVElPTgorICAgIH07CisKKyAgICBzdGF0aWMgaW50IGdldEdseXBoQ2xhc3MoQXJhYmljQ2hhcmFjdGVyRGF0YS5SZWNvcmQgcmVjb3JkKQorICAgIHsKKyAgICAgICAgU3RyaW5nIGRlY29tcCA9IHJlY29yZC5nZXREZWNvbXBvc2l0aW9uKCk7CisgICAgICAgIAorICAgICAgICBpZiAoZGVjb21wICE9IG51bGwgJiYgZGVjb21wLmxlbmd0aCgpID4gMSkgeworICAgICAgICAgICAgcmV0dXJuIExJR0FUVVJFX0dMWVBIOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gY2F0ZWdvcnlDbGFzc01hcFtyZWNvcmQuZ2V0R2VuZXJhbENhdGVnb3J5KCldOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCBhZGRBcmFiaWNHbHlwaENsYXNzZXMoQXJhYmljQ2hhcmFjdGVyRGF0YSBkYXRhLCBDbGFzc1RhYmxlIGNsYXNzVGFibGUpCisgICAgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJBZGRpbmcgQXJhYmljIGdseXBoIGNsYXNzZXMuLi4gIik7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEuY291bnRSZWNvcmRzKCk7IGkgKz0gMSkgeworICAgICAgICAgICAgQXJhYmljQ2hhcmFjdGVyRGF0YS5SZWNvcmQgcmVjb3JkID0gZGF0YS5nZXRSZWNvcmQoaSk7CisgICAgICAgICAgICBjbGFzc1RhYmxlLmFkZE1hcHBpbmcocmVjb3JkLmdldENvZGVQb2ludCgpLCBnZXRHbHlwaENsYXNzKHJlY29yZCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRvbmUuIik7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYnVpbGRBcmFiaWNUYWJsZXMoU2NyaXB0TGlzdCBzY3JpcHRMaXN0LCBGZWF0dXJlTGlzdCBmZWF0dXJlTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvb2t1cExpc3QgbG9va3VwTGlzdCwgQ2xhc3NUYWJsZSBjbGFzc1RhYmxlKSB7CisgICAgICAgIC8vIFRPRE86IE1pZ2h0IHdhbnQgdG8gaGF2ZSB0aGUgbGlnYXR1cmUgdGFibGUgYnVpbGRlciBleHBsaWNpdGx5IGNoZWNrIGZvciBsaWdhdHVyZXMKKyAgICAgICAgLy8gd2hpY2ggc3RhcnQgd2l0aCBzcGFjZSBhbmQgdGF0d2VlbCByYXRoZXIgdGhhbiBwdWxsaW5nIHRoZW0gb3V0IGhlcmUuLi4KKyAgICAgICAgVW5pY29kZVNldCBhcmFiaWNCbG9jayAgID0gbmV3IFVuaWNvZGVTZXQoIltbXFxwe2Jsb2NrPUFyYWJpY31dICYgW1s6Q2Y6XVs6UG86XVs6U286XVs6TW46XVs6TmQ6XVs6TG06XV1dIik7CisgICAgICAgIFVuaWNvZGVTZXQgb2RkTGlnYXR1cmVzICA9IG5ldyBVbmljb2RlU2V0KCJbXFx1RkM1RS1cXHVGQzYzXFx1RkNGMi1cXHVGQ0Y0XFx1RkU3MC1cXHVGRTdGXSIpOworICAgICAgICBVbmljb2RlU2V0IGFyYWJpY0xldHRlcnMgPSBuZXcgVW5pY29kZVNldCgiW1xccHtBcmFiaWN9XSIpOworICAgICAgICBBcmFiaWNDaGFyYWN0ZXJEYXRhIGFyYWJpY0RhdGEgPSBBcmFiaWNDaGFyYWN0ZXJEYXRhLmZhY3RvcnkoYXJhYmljTGV0dGVycy5hZGRBbGwoYXJhYmljQmxvY2spLnJlbW92ZUFsbChvZGRMaWdhdHVyZXMpKTsKKworICAgICAgICBhZGRBcmFiaWNHbHlwaENsYXNzZXMoYXJhYmljRGF0YSwgY2xhc3NUYWJsZSk7CisgICAgICAgIAorICAgICAgICBDbGFzc1RhYmxlIGluaXRDbGFzc1RhYmxlID0gbmV3IENsYXNzVGFibGUoKTsKKyAgICAgICAgQ2xhc3NUYWJsZSBtZWRpQ2xhc3NUYWJsZSA9IG5ldyBDbGFzc1RhYmxlKCk7CisgICAgICAgIENsYXNzVGFibGUgZmluYUNsYXNzVGFibGUgPSBuZXcgQ2xhc3NUYWJsZSgpOworICAgICAgICBDbGFzc1RhYmxlIGlzb2xDbGFzc1RhYmxlID0gbmV3IENsYXNzVGFibGUoKTsKKyAgICAgICAgCisgICAgICAgIGJ1aWxkQXJhYmljQ29udGV4dHVhbEZvcm1zKGFyYWJpY0RhdGEsIGluaXRDbGFzc1RhYmxlLCBtZWRpQ2xhc3NUYWJsZSwgZmluYUNsYXNzVGFibGUsIGlzb2xDbGFzc1RhYmxlKTsKKyAgICAgICAgaXNvbENsYXNzVGFibGUuc25hcHNob3QoKTsKKyAgICAgICAgTGlnYXR1cmVUcmVlIGxpZ2FUcmVlID0gYnVpbGRBcmFiaWNMaWdhdHVyZVRyZWUoYXJhYmljRGF0YSwgaXNvbENsYXNzVGFibGUpOworCisgICAgICAgIExpZ2F0dXJlVHJlZVdhbGtlciBsaWdhV2Fsa2VyID0gbmV3IExpZ2F0dXJlVHJlZVdhbGtlcigpOworCisgICAgICAgIGxpZ2FUcmVlLndhbGsobGlnYVdhbGtlcik7CisgICAgICAgIAorICAgICAgICBMb29rdXAgaW5pdExvb2t1cCwgbWVkaUxvb2t1cCwgZmluYUxvb2t1cCwgbGlnYUxvb2t1cDsKKyAgICAgICAgCisgICAgICAgIGluaXRMb29rdXAgPSBuZXcgTG9va3VwKExvb2t1cC5HU1NUX1NpbmdsZSwgMCk7CisgICAgICAgIGluaXRMb29rdXAuYWRkU3VidGFibGUoaW5pdENsYXNzVGFibGUpOworICAgICAgICAKKyAgICAgICAgbWVkaUxvb2t1cCA9IG5ldyBMb29rdXAoTG9va3VwLkdTU1RfU2luZ2xlLCAwKTsKKyAgICAgICAgbWVkaUxvb2t1cC5hZGRTdWJ0YWJsZShtZWRpQ2xhc3NUYWJsZSk7CisgICAgICAgIAorICAgICAgICBmaW5hTG9va3VwID0gbmV3IExvb2t1cChMb29rdXAuR1NTVF9TaW5nbGUsIDApOworICAgICAgICBmaW5hTG9va3VwLmFkZFN1YnRhYmxlKGZpbmFDbGFzc1RhYmxlKTsKKyAgICAgICAgCisgICAgICAgIGxpZ2FMb29rdXAgPSBuZXcgTG9va3VwKExvb2t1cC5HU1NUX0xpZ2F0dXJlLCBMb29rdXAuTEZfSWdub3JlTWFya3MpOworICAgICAgICBsaWdhTG9va3VwLmFkZFN1YnRhYmxlKGxpZ2FXYWxrZXIpOworICAgICAgICAKKyAgICAgICAgRmVhdHVyZSBpbml0ID0gbmV3IEZlYXR1cmUoImluaXQiKTsKKyAgICAgICAgRmVhdHVyZSBtZWRpID0gbmV3IEZlYXR1cmUoIm1lZGkiKTsKKyAgICAgICAgRmVhdHVyZSBmaW5hID0gbmV3IEZlYXR1cmUoImZpbmEiKTsKKyAgICAgICAgRmVhdHVyZSBsaWdhID0gbmV3IEZlYXR1cmUoImxpZ2EiKTsKKyAgICAgICAgCisgICAgICAgIGluaXQuYWRkTG9va3VwKGxvb2t1cExpc3QuYWRkTG9va3VwKGluaXRMb29rdXApKTsKKyAgICAgICAgbWVkaS5hZGRMb29rdXAobG9va3VwTGlzdC5hZGRMb29rdXAobWVkaUxvb2t1cCkpOworICAgICAgICBmaW5hLmFkZExvb2t1cChsb29rdXBMaXN0LmFkZExvb2t1cChmaW5hTG9va3VwKSk7CisgICAgICAgIGxpZ2EuYWRkTG9va3VwKGxvb2t1cExpc3QuYWRkTG9va3VwKGxpZ2FMb29rdXApKTsKKyAgICAgICAgCisgICAgICAgIGZlYXR1cmVMaXN0LmFkZEZlYXR1cmUoaW5pdCk7CisgICAgICAgIGZlYXR1cmVMaXN0LmFkZEZlYXR1cmUobWVkaSk7CisgICAgICAgIGZlYXR1cmVMaXN0LmFkZEZlYXR1cmUoZmluYSk7CisgICAgICAgIGZlYXR1cmVMaXN0LmFkZEZlYXR1cmUobGlnYSk7CisgICAgICAgIAorICAgICAgICBzY3JpcHRMaXN0LmFkZEZlYXR1cmUoImFyYWIiLCAiKGRlZmF1bHQpIiwgaW5pdCk7CisgICAgICAgIHNjcmlwdExpc3QuYWRkRmVhdHVyZSgiYXJhYiIsICIoZGVmYXVsdCkiLCBtZWRpKTsKKyAgICAgICAgc2NyaXB0TGlzdC5hZGRGZWF0dXJlKCJhcmFiIiwgIihkZWZhdWx0KSIsIGZpbmEpOworICAgICAgICBzY3JpcHRMaXN0LmFkZEZlYXR1cmUoImFyYWIiLCAiKGRlZmF1bHQpIiwgbGlnYSk7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYnVpbGRMaWdhdHVyZVRyZWUoQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YSBkYXRhLCBpbnQgc2NyaXB0LCBMaWdhdHVyZVRyZWUgbGlnYXR1cmVUcmVlKQorICAgIHsKKyAgICAgICAgaW50IGxpZ2F0dXJlQ291bnQgPSAwOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiYnVpbGRpbmcgY29tcG9zaXRpb24gbGlnYXR1cmUgdHJlZSBmb3IgIiArIFVTY3JpcHQuZ2V0TmFtZShzY3JpcHQpICsgIi4uLiAiKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5jb3VudFJlY29yZHMoc2NyaXB0KTsgaSArPSAxKSB7CisgICAgICAgICAgICBDYW5vbmljYWxDaGFyYWN0ZXJEYXRhLlJlY29yZCByZWNvcmQgPSBkYXRhLmdldFJlY29yZChzY3JpcHQsIGkpOworICAgICAgICAgICAgU3RyaW5nIGNvbXBvc2VkID0gVUNoYXJhY3Rlci50b1N0cmluZyhyZWNvcmQuZ2V0Q29tcG9zZWRDaGFyYWN0ZXIoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGUgPSAwOyBlIDwgcmVjb3JkLmNvdW50RXF1aXZhbGVudHMoKTsgZSArPSAxKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGVxdWl2YWxlbnQgPSByZWNvcmQuZ2V0RXF1aXZhbGVudChlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBsaWdhdHVyZVRyZWUuaW5zZXJ0KGVxdWl2YWxlbnQgKyBjb21wb3NlZCk7CisgICAgICAgICAgICAgICAgbGlnYXR1cmVDb3VudCArPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obGlnYXR1cmVDb3VudCArICIgbGlnYXR1cmVzLiIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIERlY29tcFRhYmxlW10gYnVpbGREZWNvbXBUYWJsZXMoQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YSBkYXRhLCBpbnQgc2NyaXB0KQorICAgIHsKKyAgICAgICAgaW50IG1heERlY29tcENvdW50ID0gZGF0YS5nZXRNYXhFcXVpdmFsZW50cyhzY3JpcHQpOworICAgICAgICBEZWNvbXBUYWJsZVtdIGRlY29tcFRhYmxlcyA9IG5ldyBEZWNvbXBUYWJsZVttYXhEZWNvbXBDb3VudF07CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJCdWlsZGluZyBkZWNvbXBvc2l0b24gdGFibGVzIGZvciAiICsgVVNjcmlwdC5nZXROYW1lKHNjcmlwdCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICIuLi4gdG90YWwgZGVjb21wb3NpdGlvbnM6ICIgKyBkYXRhLmNvdW50UmVjb3JkcyhzY3JpcHQpICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgIiwgbWF4OiAiICsgbWF4RGVjb21wQ291bnQgKyAiLi4uIik7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1heERlY29tcENvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIERlY29tcFRhYmxlIHRhYmxlID0gbmV3IERlY29tcFRhYmxlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IHIgPSAwOyByIDwgZGF0YS5jb3VudFJlY29yZHMoc2NyaXB0KTsgciArPSAxKSB7CisgICAgICAgICAgICAgICAgQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YS5SZWNvcmQgcmVjb3JkID0gZGF0YS5nZXRSZWNvcmQoc2NyaXB0LCByKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAocmVjb3JkLmNvdW50RXF1aXZhbGVudHMoKSA+IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGFibGUuYWRkKHJlY29yZC5nZXRDb21wb3NlZENoYXJhY3RlcigpLCByZWNvcmQuZ2V0RXF1aXZhbGVudChpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBkZWNvbXBUYWJsZXNbaV0gPSB0YWJsZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgRG9uZS4iKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBkZWNvbXBUYWJsZXM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgaW50W10gYnVpbGRMb29rdXBzKENhbm9uaWNhbENoYXJhY3RlckRhdGEgZGF0YSwgTG9va3VwTGlzdCBsb29rdXBMaXN0LCBpbnQgc2NyaXB0KQorICAgIHsKKyAgICAgICAgaW50W10gbG9va3VwcyA9IG5ldyBpbnRbMl07CisgICAgICAgIAorICAgICAgICBEZWNvbXBUYWJsZVtdIGRlY29tcFRhYmxlcyA9IGJ1aWxkRGVjb21wVGFibGVzKGRhdGEsIHNjcmlwdCk7CisgICAgICAgIAorICAgICAgICBMaWdhdHVyZVRyZWUgY29tcFRyZWUgPSBuZXcgTGlnYXR1cmVUcmVlKCk7CisgICAgICAgIAorICAgICAgICBidWlsZExpZ2F0dXJlVHJlZShkYXRhLCBzY3JpcHQsIGNvbXBUcmVlKTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAKKyAgICAgICAgTGlnYXR1cmVUcmVlV2Fsa2VyIGNvbXBXYWxrZXIgPSBuZXcgTGlnYXR1cmVUcmVlV2Fsa2VyKCk7CisgICAgICAgIAorICAgICAgICBjb21wVHJlZS53YWxrKGNvbXBXYWxrZXIpOworICAgICAgICAKKyAgICAgICAgTG9va3VwIGNvbXBMb29rdXAsIGRjbXBMb29rdXA7CisgICAgICAgIC8vaW50IGNvbXBMb29rdXBJbmRleCwgZGNtcExvb2t1cEluZGV4OworICAgICAgICAKKyAgICAgICAgY29tcExvb2t1cCA9IG5ldyBMb29rdXAoTG9va3VwLkdTU1RfTGlnYXR1cmUsIDApOworICAgICAgICBjb21wTG9va3VwLmFkZFN1YnRhYmxlKGNvbXBXYWxrZXIpOworICAgICAgICAKKyAgICAgICAgZGNtcExvb2t1cCA9IG5ldyBMb29rdXAoTG9va3VwLkdTU1RfTXVsdGlwbGUsIDApOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY29tcFRhYmxlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgZGNtcExvb2t1cC5hZGRTdWJ0YWJsZShkZWNvbXBUYWJsZXNbaV0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBsb29rdXBzWzBdID0gbG9va3VwTGlzdC5hZGRMb29rdXAoY29tcExvb2t1cCk7CisgICAgICAgIGxvb2t1cHNbMV0gPSBsb29rdXBMaXN0LmFkZExvb2t1cChkY21wTG9va3VwKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBsb29rdXBzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYWRkTG9va3VwcyhGZWF0dXJlIGZlYXR1cmUsIGludFtdIGxvb2t1cHMpCisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvb2t1cHMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgIGZlYXR1cmUuYWRkTG9va3VwKGxvb2t1cHNbaV0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogSGVicmV3IG1hcmsgb3JkZXIgdGFrZW4gZnJvbSB0aGUgU0JMIEhlYnJldyBGb250IG1hbnVhbAorICAgICAqIEFyYWJpYyBtYXJrIG9yZGVyIHBlciBUaG9tYXMgTWlsbzogaGFtemEgPCBzaGFkZGEgPCBjb21iaW5pbmdfYWxlZiA8IHN1a3VuLCB2b3dlbF9tYXJrcyA8IG1hZGRhIDwgcXVyJ2FuaWNfbWFya3MKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIENsYXNzVGFibGUgYnVpbGRDb21iaW5pbmdDbGFzc1RhYmxlKCkKKyAgICB7CisgICAgICAgIFVuaWNvZGVTZXQgbWFya1NldCA9IG5ldyBVbmljb2RlU2V0KCJbXFxQe0Nhbm9uaWNhbENvbWJpbmluZ0NsYXNzPTB9XSIpOworICAgICAgICBDbGFzc1RhYmxlIGV4Y2VwdGlvbnMgPSBuZXcgQ2xhc3NUYWJsZSgpOworICAgICAgICBDbGFzc1RhYmxlIGNvbWJpbmluZ0NsYXNzZXMgPSBuZXcgQ2xhc3NUYWJsZSgpOworICAgICAgICBpbnQgbWFya0NvdW50ID0gbWFya1NldC5zaXplKCk7CisgICAgICAgIAorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUMxLCAgMTApOyAvLyBQb2ludCBTaGluIERvdAorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUMyLCAgMTEpOyAvLyBQb2ludCBTaW4gRG90CisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QkMsICAyMSk7IC8vIFBvaW50IERhZ2VzaCBvciBNYXBpcQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUJGLCAgMjMpOyAvLyBQb2ludCBSYWZlCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QjksICAyNyk7IC8vIFBvaW50IEhvbGFtCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDAzMjMsIDIyMCk7IC8vIENvbWIuIERvdCBCZWxvdyAobG93IHB1bmN0dW0pCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OTEsIDIyMCk7IC8vIEFjY2VudCBFdG5haHRhCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OTYsIDIyMCk7IC8vIEFjY2VudCBUaXBlaGEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5QiwgMjIwKTsgLy8gQWNjZW50IFRldmlyCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QTMsIDIyMCk7IC8vIEFjY2VudCBNdW5haAorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUE0LCAyMjApOyAvLyBBY2NlbnQgTWFoYXBha2gKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBNSwgMjIwKTsgLy8gQWNjZW50IE1lcmtoYQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUE2LCAyMjApOyAvLyBBY2NlbnQgTWVya2hhIEtlZnVsYQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUE3LCAyMjApOyAvLyBBY2NlbnQgRGFyZ2EKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBQSwgMjIwKTsgLy8gQWNjZW50IFllcmFoIEJlbiBZb21vCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QjAsIDIyMCk7IC8vIFBvaW50IFNoZXZhCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QjEsIDIyMCk7IC8vIFBvaW50IEhhdGFmIFNlZ29sCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QjIsIDIyMCk7IC8vIFBvaW50IEhhdGFmIFBhdGFoCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QjMsIDIyMCk7IC8vIFBvaW50IEhhdGFmIFFhbWF0cworICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUI0LCAyMjApOyAvLyBQb2ludCBIaXJpcQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUI1LCAyMjApOyAvLyBQb2ludCBUc2VyZQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUI2LCAyMjApOyAvLyBQb2ludCBTZWdvbAorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUI3LCAyMjApOyAvLyBQb2ludCBQYXRhaAorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUI4LCAyMjApOyAvLyBQb2ludCBRYW1hdHMKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVCQiwgMjIwKTsgLy8gUG9pbnQgUXVidXRzCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QkQsIDIyMCk7IC8vIFBvaW50IE1ldGVnCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OUEsIDIyMik7IC8vIEFjY2VudCBZZXRpdgorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUFELCAyMjIpOyAvLyBBY2NlbnQgRGVoaQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUM0LCAyMzApOyAvLyBNYXJrIFVwcGVyIERvdCAoaGlnaCBwdW5jdHVtKQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTkzLCAyMzApOyAvLyBBY2NlbnQgU2hhbHNoZWxldAorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTk0LCAyMzApOyAvLyBBY2NlbnQgWmFxZWYgUWF0YW4KKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5NSwgMjMwKTsgLy8gQWNjZW50IFphcWVmIEdhZG9sCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OTcsIDIzMCk7IC8vIEFjY2VudCBSZXZpYQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTk4LCAyMzApOyAvLyBBY2NlbnQgWmFycWEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5RiwgMjMwKTsgLy8gQWNjZW50IFFhcm5leSBQYXJhCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1OUUsIDIzMCk7IC8vIEFjY2VudCBHZXJzaGF5aW0KKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5RCwgMjMwKTsgLy8gQWNjZW50IEdlcmVzaCBNdXFkYW0KKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5QywgMjMwKTsgLy8gQWNjZW50IEdlcmVzaAorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNTkyLCAyMzApOyAvLyBBY2NlbnQgU2Vnb2x0YQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUEwLCAyMzApOyAvLyBBY2NlbnQgVGVsaXNoYSBHZWRvbGEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBQywgMjMwKTsgLy8gQWNjZW50IElsdXkKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBOCwgMjMwKTsgLy8gQWNjZW50IFFhZG1hCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QUIsIDIzMCk7IC8vIEFjY2VudCBPbGUKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDVBRiwgMjMwKTsgLy8gTWFyayBNYXNvcmEgQ2lyY2xlCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QTEsIDIzMCk7IC8vIEFjY2VudCBQYXplcgorICAgICAgLy9leGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwMzA3LCAyMzApOyAvLyBNYXJrIE51bWJlci9NYXNvcmEgRG90CisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA1QUUsIDIzMik7IC8vIEFjY2VudCBaaW5vcgorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNUE5LCAyMzIpOyAvLyBBY2NlbnQgVGVsaXNoYSBRZXRhbmEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDU5OSwgMjMyKTsgLy8gQWNjZW50IFBhc2h0YQorICAgICAgICAKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY1NSwgIDI3KTsgLy8gQVJBQklDIEhBTVpBIEJFTE9XCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NTQsICAyNyk7IC8vIEFSQUJJQyBIQU1aQSBBQk9WRQorCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NTEsICAyOCk7IC8vIEFSQUJJQyBTSEFEREEKKworICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjU2LCAgMjkpOyAvLyBBUkFCSUMgU1VCU0NSSVBUIEFMRUYKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY3MCwgIDI5KTsgLy8gQVJBQklDIExFVFRFUiBTVVBFUlNDUklQVCBBTEVGCisKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY0RCwgIDMwKTsgLy8gQVJBQklDIEtBU1JBVEFOCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NTAsICAzMCk7IC8vIEFSQUJJQyBLQVNSQQorCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NTIsICAzMSk7IC8vIEFSQUJJQyBTVUtVTgorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNkUxLCAgMzEpOyAvLyBBUkFCSUMgU01BTEwgSElHSCBET1RMRVNTIEhFQUQgT0YgS0hBSAorCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NEIsICAzMSk7IC8vIEFSQUJJQyBGQVRIQVRBTgorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjRDLCAgMzEpOyAvLyBBUkFCSUMgREFNTUFUQU4KKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY0RSwgIDMxKTsgLy8gQVJBQklDIEZBVEhBCisgICAgICAgIGV4Y2VwdGlvbnMuYWRkTWFwcGluZygweDA2NEYsICAzMSk7IC8vIEFSQUJJQyBEQU1NQQorICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjU3LCAgMzEpOyAvLyBBUkFCSUMgSU5WRVJURUQgREFNTUEKKyAgICAgICAgZXhjZXB0aW9ucy5hZGRNYXBwaW5nKDB4MDY1OCwgIDMxKTsgLy8gQVJBQklDIE1BUksgTk9PTiBHSFVOTkEKKworICAgICAgICBleGNlcHRpb25zLmFkZE1hcHBpbmcoMHgwNjUzLCAgMzIpOyAvLyBBUkFCSUMgTUFEREFIIEFCT1ZFCisgICAgICAgIAorICAgICAgICBleGNlcHRpb25zLnNuYXBzaG90KCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1hcmtDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICBpbnQgbWFyayA9IG1hcmtTZXQuY2hhckF0KGkpOworICAgICAgICAgICAgaW50IG1hcmtDbGFzcyA9IGV4Y2VwdGlvbnMuZ2V0R2x5cGhDbGFzc0lEKG1hcmspOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobWFya0NsYXNzID09IDApIHsKKyAgICAgICAgICAgICAgICBtYXJrQ2xhc3MgPSBVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKG1hcmspOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBjb21iaW5pbmdDbGFzc2VzLmFkZE1hcHBpbmcobWFyaywgbWFya0NsYXNzKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgY29tYmluaW5nQ2xhc3Nlcy5zbmFwc2hvdCgpOworICAgICAgICByZXR1cm4gY29tYmluaW5nQ2xhc3NlczsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGJ1aWxkRGVjb21wVGFibGVzKFN0cmluZyBmaWxlTmFtZSkKKyAgICB7CisgICAgICAgIC8vIEY5MDAgLSBGQUZGIGFyZSBjb21wYXRpYmlsaXR5IGlkZW9ncmFwaHMuIFRoZXkgYWxsIGRlY29tcG9zZSB0byBhIHNpbmdsZSBvdGhlciBjaGFyYWN0ZXIsIGFuZCBjYW4gYmUgaWdub3JlZC4KKyAgICAgICAgVW5pY29kZVNldCBkZWNvbXBTZXQgPSBuZXcgVW5pY29kZVNldCgiW1tbXFxQe0hhbmd1bH1dICYgW1xccHtEZWNvbXBvc2l0aW9uVHlwZT1DYW5vbmljYWx9XV0gLSBbXHVGOTAwLVx1RkFGRl1dIik7CisgICAgICAgIENhbm9uaWNhbENoYXJhY3RlckRhdGEgZGF0YSA9IENhbm9uaWNhbENoYXJhY3RlckRhdGEuZmFjdG9yeShkZWNvbXBTZXQpOworICAgICAgICBDbGFzc1RhYmxlIGNsYXNzVGFibGUgPSBuZXcgQ2xhc3NUYWJsZSgpOworICAgICAgICAKKyAgICAgICAgTG9va3VwTGlzdCAgbG9va3VwTGlzdCAgPSBuZXcgTG9va3VwTGlzdCgpOworICAgICAgICBGZWF0dXJlTGlzdCBmZWF0dXJlTGlzdCA9IG5ldyBGZWF0dXJlTGlzdCgpOworICAgICAgICBTY3JpcHRMaXN0ICBzY3JpcHRMaXN0ICA9IG5ldyBTY3JpcHRMaXN0KCk7CisKKyAgICAgICAgLy8gYnVpbGQgY29tbW9uLCBpbmhlcml0ZWQgbG9va3Vwcy4uLgorLy8gICAgICAgIGludFtdIGNvbW1vbkxvb2t1cHMgPSBidWlsZExvb2t1cHMoZGF0YSwgbG9va3VwTGlzdCwgVVNjcmlwdC5DT01NT04pOworLy8gICAgICAgIGludFtdIGluaGVyaXRlZExvb2t1cHMgPSBidWlsZExvb2t1cHMoZGF0YSwgbG9va3VwTGlzdCwgVVNjcmlwdC5JTkhFUklURUQpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NyaXB0ID0gMDsgc2NyaXB0IDwgVVNjcmlwdC5DT0RFX0xJTUlUOyBzY3JpcHQgKz0gMSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBUaGlzIGlzIGEgYml0IGxhbWUsIGJ1dCBpdCdzIHRoZSBvbmx5IHdheSBJIGNhbiB0aGluayBvZgorICAgICAgICAgICAgLy8gdG8gbWFrZSB0aGlzIHdvcmsgdy9vIGtub3dpbmcgdGhlIHZhbHVlcyBvZiBDT01NT04gYW5kIElOSEVSSVRFRC4uLgorICAgICAgICAgICAgaWYgKHNjcmlwdCA9PSBVU2NyaXB0LkNPTU1PTiB8fCBzY3JpcHQgPT0gVVNjcmlwdC5JTkhFUklURUQgfHwKKyAgICAgICAgICAgICAgICBkYXRhLmdldE1heEVxdWl2YWxlbnRzKHNjcmlwdCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnRbXSBsb29rdXBzID0gYnVpbGRMb29rdXBzKGRhdGEsIGxvb2t1cExpc3QsIHNjcmlwdCk7CisKKyAgICAgICAgICAgIEZlYXR1cmUgY2NtcCA9IG5ldyBGZWF0dXJlKCJjY21wIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGFkZExvb2t1cHMoY2NtcCwgbG9va3Vwcyk7CisvLyAgICAgICAgICAgIGFkZExvb2t1cHMoY2NtcCwgY29tbW9uTG9va3Vwcyk7CisvLyAgICAgICAgICAgIGFkZExvb2t1cHMoY2NtcCwgaW5oZXJpdGVkTG9va3Vwcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZlYXR1cmVMaXN0LmFkZEZlYXR1cmUoY2NtcCk7CisgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIHNjcmlwdFRhZyA9IFRhZ1V0aWxpdGllcy50YWdMYWJlbChVU2NyaXB0LmdldFNob3J0TmFtZShzY3JpcHQpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2NyaXB0TGlzdC5hZGRGZWF0dXJlKHNjcmlwdFRhZywgIihkZWZhdWx0KSIsIGNjbXApOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc2NyaXB0ID09IFVTY3JpcHQuQVJBQklDKSB7CisgICAgICAgICAgICAgICAgYnVpbGRBcmFiaWNUYWJsZXMoc2NyaXB0TGlzdCwgZmVhdHVyZUxpc3QsIGxvb2t1cExpc3QsIGNsYXNzVGFibGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmZWF0dXJlTGlzdC5maW5hbGl6ZUZlYXR1cmVMaXN0KCk7CisgICAgICAgIAorICAgICAgICBDbGFzc1RhYmxlIG1hcmtDbGFzc1RhYmxlID0gYnVpbGRDb21iaW5pbmdDbGFzc1RhYmxlKCk7CisgICAgICAgIAorICAgICAgICBHU1VCV3JpdGVyIGdzdWJXcml0ZXIgPSBuZXcgR1NVQldyaXRlcigiQ2Fub24iLCBzY3JpcHRMaXN0LCBmZWF0dXJlTGlzdCwgbG9va3VwTGlzdCk7CisgICAgICAgIEdERUZXcml0ZXIgZ2RlZldyaXRlciA9IG5ldyBHREVGV3JpdGVyKCJDYW5vbiIsIGNsYXNzVGFibGUsIG1hcmtDbGFzc1RhYmxlKTsKKyAgICAgICAgU3RyaW5nW10gaW5jbHVkZUZpbGVzID0geyJMRVR5cGVzLmgiLCAiQ2Fub25TaGFwaW5nLmgifTsgICAgICAgIAorICAgICAgICAKKyAgICAgICAgTGlnYXR1cmVNb2R1bGVXcml0ZXIgd3JpdGVyID0gbmV3IExpZ2F0dXJlTW9kdWxlV3JpdGVyKCk7CisgICAgICAgIAorICAgICAgICB3cml0ZXIub3BlbkZpbGUoZmlsZU5hbWUpOworICAgICAgICB3cml0ZXIud3JpdGVIZWFkZXIobnVsbCwgaW5jbHVkZUZpbGVzKTsKKyAgICAgICAgd3JpdGVyLndyaXRlVGFibGUoZ3N1YldyaXRlcik7CisgICAgICAgIHdyaXRlci53cml0ZVRhYmxlKGdkZWZXcml0ZXIpOworICAgICAgICB3cml0ZXIud3JpdGVUcmFpbGVyKCk7CisgICAgICAgIHdyaXRlci5jbG9zZUZpbGUoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIGJ1aWxkRGVjb21wVGFibGVzKGFyZ3NbMF0pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9DYW5vbmljYWxDaGFyYWN0ZXJEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2NkODdmMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YS5qYXZhCkBAIC0wLDAgKzEsMjE2IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5DYW5vbmljYWxJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK3B1YmxpYyBjbGFzcyBDYW5vbmljYWxDaGFyYWN0ZXJEYXRhCit7CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IFRIUkVTSE9MRCA9IDQ7CisgICAgCisgICAgcHVibGljIGNsYXNzIFJlY29yZAorICAgIHsKKyAgICAgICAgLy8gVE9ETzogbWlnaHQgd2FudCB0byBzYXZlIGFycmF5cyBvZiBDaGFyMzIncyByYXRoZXIgdGhhbiBVVEYxNiBzdHJpbmdzLi4uCisgICAgICAgIFJlY29yZChpbnQgY2hhcmFjdGVyLCBpbnQgc2NyaXB0KQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgY2hhcjMyID0gVUNoYXJhY3Rlci50b1N0cmluZyhjaGFyYWN0ZXIpOworICAgICAgICAgICAgQ2Fub25pY2FsSXRlcmF0b3IgaXRlcmF0b3IgPSBuZXcgQ2Fub25pY2FsSXRlcmF0b3IoY2hhcjMyKTsKKyAgICAgICAgICAgIFZlY3RvciBlcXVpdnMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNvbXBvc2VkID0gY2hhcmFjdGVyOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKFN0cmluZyBlcXVpdiA9IGl0ZXJhdG9yLm5leHQoKTsgZXF1aXYgIT0gbnVsbDsgZXF1aXYgPSBpdGVyYXRvci5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAvLyBTa2lwIGFsbCBlcXVpdmFsZW50cyBvZiBsZW5ndGggMTsgaXQncyBlaXRoZXIgdGhlIG9yaWdpbmFsCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjZXRlciBvciBzb21ldGhpbmcgbGlrZSBBbmdzdHJvbSBmb3IgQS1SaW5nLCB3aGljaCB3ZSBkb24ndCBjYXJlIGFib3V0CisgICAgICAgICAgICAgICAgaWYgKFVURjE2LmNvdW50Q29kZVBvaW50KGVxdWl2KSA+IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgZXF1aXZzLmFkZChlcXVpdik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbkVxdWl2YWxlbnRzID0gZXF1aXZzLnNpemUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG5FcXVpdmFsZW50cyA+IG1heEVxdWl2YWxlbnRzW3NjcmlwdF0pIHsKKyAgICAgICAgICAgICAgICBtYXhFcXVpdmFsZW50c1tzY3JpcHRdID0gbkVxdWl2YWxlbnRzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobkVxdWl2YWxlbnRzID4gMCkgeworICAgICAgICAgICAgICAgIGVxdWl2YWxlbnRzID0gbmV3IFN0cmluZ1tuRXF1aXZhbGVudHNdOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChuRXF1aXZhbGVudHMgPiBUSFJFU0hPTEQpIHsKKyAgICAgICAgICAgICAgICAgICAgZHVtcEVxdWl2YWxlbnRzKGNoYXJhY3RlciwgZXF1aXZzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc29ydEVxdWl2YWxlbnRzKGVxdWl2YWxlbnRzLCBlcXVpdnMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldENvbXBvc2VkQ2hhcmFjdGVyKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGNvbXBvc2VkOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGNvdW50RXF1aXZhbGVudHMoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXF1aXZhbGVudHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZXF1aXZhbGVudHMubGVuZ3RoOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nW10gZ2V0RXF1aXZhbGVudHMoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZXF1aXZhbGVudHM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RXF1aXZhbGVudChpbnQgaW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcXVpdmFsZW50cyA9PSBudWxsIHx8IGluZGV4IDwgMCB8fCBpbmRleCA+PSBlcXVpdmFsZW50cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGVxdWl2YWxlbnRzW2luZGV4XTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGR1bXBFcXVpdmFsZW50cyhpbnQgY2hhcmFjdGVyLCBWZWN0b3IgZXF1aXZzKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgY291bnQgPSBlcXVpdnMuc2l6ZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVXRpbGl0eS5oZXgoY2hhcmFjdGVyLCA2KSArICIgLSAiICsgY291bnQgKyAiOiIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXF1aXYgPSAoU3RyaW5nKSBlcXVpdnMuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgIGludCBjb2RlUG9pbnRzID0gVVRGMTYuY291bnRDb2RlUG9pbnQoZXF1aXYpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgY29kZVBvaW50czsgYyArPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KFV0aWxpdHkuaGV4KFVURjE2LmNoYXJBdChlcXVpdiwgYyksIDYpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIGludCBjb21wb3NlZDsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmdbXSBlcXVpdmFsZW50cyA9IG51bGw7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBDYW5vbmljYWxDaGFyYWN0ZXJEYXRhKCkKKyAgICB7CisgICAgICAgIC8vIG5vdGhpbmcgdG8gZG8uLi4KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYWRkKGludCBjaGFyYWN0ZXIpCisgICAgeworICAgICAgICBpbnQgc2NyaXB0ID0gVVNjcmlwdC5nZXRTY3JpcHQoY2hhcmFjdGVyKTsKKyAgICAgICAgVmVjdG9yIHJlY29yZFZlY3RvciA9IHJlY29yZFZlY3RvcnNbc2NyaXB0XTsKKyAgICAgICAgCisgICAgICAgIGlmIChyZWNvcmRWZWN0b3IgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVjb3JkVmVjdG9yID0gcmVjb3JkVmVjdG9yc1tzY3JpcHRdID0gbmV3IFZlY3RvcigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZWNvcmRWZWN0b3IuYWRkKG5ldyBSZWNvcmQoY2hhcmFjdGVyLCBzY3JpcHQpKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRNYXhFcXVpdmFsZW50cyhpbnQgc2NyaXB0KQorICAgIHsKKyAgICAgICAgaWYgKHNjcmlwdCA8IDAgfHwgc2NyaXB0ID49IFVTY3JpcHQuQ09ERV9MSU1JVCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBtYXhFcXVpdmFsZW50c1tzY3JpcHRdOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgUmVjb3JkIGdldFJlY29yZChpbnQgc2NyaXB0LCBpbnQgaW5kZXgpCisgICAgeworICAgICAgICBpZiAoc2NyaXB0IDwgMCB8fCBzY3JpcHQgPj0gVVNjcmlwdC5DT0RFX0xJTUlUKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVmVjdG9yIHJlY29yZFZlY3RvciA9IHJlY29yZFZlY3RvcnNbc2NyaXB0XTsKKyAgICAgICAgCisgICAgICAgIGlmIChyZWNvcmRWZWN0b3IgPT0gbnVsbCB8fCBpbmRleCA8IDAgfHwgaW5kZXggPj0gcmVjb3JkVmVjdG9yLnNpemUoKSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiAoUmVjb3JkKSByZWNvcmRWZWN0b3IuZWxlbWVudEF0KGluZGV4KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBjb3VudFJlY29yZHMoaW50IHNjcmlwdCkKKyAgICB7CisgICAgICAgIGlmIChzY3JpcHQgPCAwIHx8IHNjcmlwdCA+PSBVU2NyaXB0LkNPREVfTElNSVQgfHwKKyAgICAgICAgICAgIHJlY29yZFZlY3RvcnNbc2NyaXB0XSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlY29yZFZlY3RvcnNbc2NyaXB0XS5zaXplKCk7CisgICAgfQorIAorICAgIHB1YmxpYyBzdGF0aWMgQ2Fub25pY2FsQ2hhcmFjdGVyRGF0YSBmYWN0b3J5KFVuaWNvZGVTZXQgY2hhcmFjdGVyU2V0KQorICAgIHsKKyAgICAgICAgaW50IGNoYXJDb3VudCA9IGNoYXJhY3RlclNldC5zaXplKCk7CisgICAgICAgIENhbm9uaWNhbENoYXJhY3RlckRhdGEgZGF0YSA9IG5ldyBDYW5vbmljYWxDaGFyYWN0ZXJEYXRhKCk7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZXJlIGFyZSAiICsgY2hhckNvdW50ICsgIiBjaGFyYWN0ZXJzIHdpdGggYSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbi4iKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hhckNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIGRhdGEuYWRkKGNoYXJhY3RlclNldC5jaGFyQXQoaSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZGF0YTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgY29tcGFyZUVxdWl2YWxlbnRzKFN0cmluZyBhLCBTdHJpbmcgYikKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSBVVEYxNi5jb3VudENvZGVQb2ludChhKSAtIFVURjE2LmNvdW50Q29kZVBvaW50KGIpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIGEuY29tcGFyZVRvKGIpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgICAgIAorICAgIC8vCisgICAgLy8gU3RyYWlnaHQgaW5zZXJ0aW9uIHNvcnQgZnJvbSBLbnV0aCB2b2wuIElJSSwgcGcuIDgxCisgICAgLy8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHNvcnRFcXVpdmFsZW50cyhTdHJpbmdbXSBlcXVpdmFsZW50cywgVmVjdG9yIHVuc29ydGVkKQorICAgIHsKKyAgICAgICAgaW50IG5FcXVpdmFsZW50cyA9IGVxdWl2YWxlbnRzLmxlbmd0aDsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGUgPSAwOyBlIDwgbkVxdWl2YWxlbnRzOyBlICs9IDEpIHsKKyAgICAgICAgICAgIFN0cmluZyB2ID0gKFN0cmluZykgdW5zb3J0ZWQuZWxlbWVudEF0KGUpOworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaSA9IGUgLSAxOyBpID49IDA7IGkgLT0gMSkgeworICAgICAgICAgICAgICAgIGlmIChjb21wYXJlRXF1aXZhbGVudHModiwgZXF1aXZhbGVudHNbaV0pID49IDApIHsKKyAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGVxdWl2YWxlbnRzW2kgKyAxXSA9IGVxdWl2YWxlbnRzW2ldOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlcXVpdmFsZW50c1tpICsgMV0gPSB2OworICAgICAgIH0KKyAgICB9CisgICAgICAgICAgICAKKyAgICBwcml2YXRlIFZlY3RvciByZWNvcmRWZWN0b3JzW10gPSBuZXcgVmVjdG9yW1VTY3JpcHQuQ09ERV9MSU1JVF07CisgICAgcHJpdmF0ZSBpbnQgbWF4RXF1aXZhbGVudHNbXSA9IG5ldyBpbnRbVVNjcmlwdC5DT0RFX0xJTUlUXTsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9DbGFzc1RhYmxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0NsYXNzVGFibGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGJhZTA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9DbGFzc1RhYmxlLmphdmEKQEAgLTAsMCArMSwyMzcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGphdmEudXRpbC4qOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCitwdWJsaWMgY2xhc3MgQ2xhc3NUYWJsZSBpbXBsZW1lbnRzIExvb2t1cFN1YnRhYmxlCit7CisgICAgc3RhdGljIGNsYXNzIENsYXNzRW50cnkKKyAgICB7CisgICAgICAgIHByaXZhdGUgaW50IGdseXBoSUQ7CisgICAgICAgIHByaXZhdGUgaW50IGNsYXNzSUQ7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgQ2xhc3NFbnRyeShpbnQgZ2x5cGhJRCwgaW50IGNsYXNzSUQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuZ2x5cGhJRCA9IGdseXBoSUQ7CisgICAgICAgICAgICB0aGlzLmNsYXNzSUQgPSBjbGFzc0lEOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldEdseXBoSUQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZ2x5cGhJRDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRDbGFzc0lEKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGNsYXNzSUQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKENsYXNzRW50cnkgdGhhdCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2x5cGhJRCAtIHRoYXQuZ2x5cGhJRDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gU3RyYWlnaHQgaW5zZXJ0aW9uIHNvcnQgZnJvbSBLbnV0aCB2b2wuIElJSSwgcGcuIDgxCisgICAgICAgIC8vCisgICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzb3J0KENsYXNzRW50cnlbXSB0YWJsZSwgVmVjdG9yIHVuc29ydGVkKQorICAgICAgICB7CisgICAgICAgICAgICBmb3IgKGludCBlID0gMDsgZSA8IHRhYmxlLmxlbmd0aDsgZSArPSAxKSB7CisgICAgICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICAgICAgQ2xhc3NFbnRyeSB2ID0gKENsYXNzRW50cnkpIHVuc29ydGVkLmVsZW1lbnRBdChlKTsKKworICAgICAgICAgICAgICAgIGZvciAoaSA9IGUgLSAxOyBpID49IDA7IGkgLT0gMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodi5jb21wYXJlVG8odGFibGVbaV0pID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHRhYmxlW2kgKyAxXSA9IHRhYmxlW2ldOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHRhYmxlW2kgKyAxXSA9IHY7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgaW50IHNlYXJjaChDbGFzc0VudHJ5W10gdGFibGUsIGludCBnbHlwaElEKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgbG9nMiA9IFV0aWxpdHkuaGlnaEJpdCh0YWJsZS5sZW5ndGgpOworICAgICAgICAgICAgaW50IHBvd2VyID0gMSA8PCBsb2cyOworICAgICAgICAgICAgaW50IGV4dHJhID0gdGFibGUubGVuZ3RoIC0gcG93ZXI7CisgICAgICAgICAgICBpbnQgcHJvYmUgPSBwb3dlcjsKKyAgICAgICAgICAgIGludCBpbmRleCA9IDA7CisKKyAgICAgICAgICAgIGlmICh0YWJsZVtleHRyYV0uZ2x5cGhJRCA8PSBnbHlwaElEKSB7CisgICAgICAgICAgICAgIGluZGV4ID0gZXh0cmE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdoaWxlIChwcm9iZSA+ICgxIDw8IDApKSB7CisgICAgICAgICAgICAgICAgcHJvYmUgPj49IDE7CisKKyAgICAgICAgICAgICAgICBpZiAodGFibGVbaW5kZXggKyBwcm9iZV0uZ2x5cGhJRCA8PSBnbHlwaElEKSB7CisgICAgICAgICAgICAgICAgICAgIGluZGV4ICs9IHByb2JlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRhYmxlW2luZGV4XS5nbHlwaElEID09IGdseXBoSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2xhc3NSYW5nZVJlY29yZAorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgc3RhcnRHbHlwaElEOworICAgICAgICBwcml2YXRlIGludCBlbmRHbHlwaElEOworICAgICAgICBwcml2YXRlIGludCBjbGFzc0lEOworICAgICAgICAKKyAgICAgICAgcHVibGljIENsYXNzUmFuZ2VSZWNvcmQoaW50IHN0YXJ0R2x5cGhJRCwgaW50IGVuZEdseXBoSUQsIGludCBjbGFzc0lEKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLnN0YXJ0R2x5cGhJRCA9IHN0YXJ0R2x5cGhJRDsKKyAgICAgICAgICAgIHRoaXMuZW5kR2x5cGhJRCA9IGVuZEdseXBoSUQ7CisgICAgICAgICAgICB0aGlzLmNsYXNzSUQgPSBjbGFzc0lEOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShPcGVuVHlwZVRhYmxlV3JpdGVyIHdyaXRlcikKKyAgICAgICAgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChVdGlsaXR5LmhleChzdGFydEdseXBoSUQsIDYpKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAtICIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChVdGlsaXR5LmhleChlbmRHbHlwaElELCA2KSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCI6ICIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGNsYXNzSUQpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKHN0YXJ0R2x5cGhJRCk7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGVuZEdseXBoSUQpOworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShjbGFzc0lEKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFZlY3RvciBjbGFzc01hcDsKKyAgICBwcml2YXRlIENsYXNzRW50cnlbXSBjbGFzc1RhYmxlOworICAgIHByaXZhdGUgaW50IHNuYXBzaG90U2l6ZTsKKyAgICAKKyAgICBwdWJsaWMgQ2xhc3NUYWJsZSgpCisgICAgeworICAgICAgICB0aGlzLmNsYXNzTWFwID0gbmV3IFZlY3RvcigpOworICAgICAgICB0aGlzLmNsYXNzVGFibGUgPSBudWxsOworICAgICAgICB0aGlzLnNuYXBzaG90U2l6ZSA9IC0xOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYWRkTWFwcGluZyhpbnQgY2hhcklELCBpbnQgY2xhc3NJRCkKKyAgICB7CisgICAgICAgIENsYXNzRW50cnkgZW50cnkgPSBuZXcgQ2xhc3NFbnRyeShjaGFySUQsIGNsYXNzSUQpOworICAgICAgICAKKyAgICAgICAgY2xhc3NNYXAuYWRkRWxlbWVudChlbnRyeSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGFkZE1hcHBpbmcoaW50IHN0YXJ0Q2hhcklELCBpbnQgZW5kQ2hhcklELCBpbnQgY2xhc3NJRCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGNoYXJJRCA9IHN0YXJ0Q2hhcklEOyBjaGFySUQgPD0gZW5kQ2hhcklEOyBjaGFySUQgKz0gMSkgeworICAgICAgICAgICAgYWRkTWFwcGluZyhjaGFySUQsIGNsYXNzSUQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0R2x5cGhDbGFzc0lEKGludCBnbHlwaElEKQorICAgIHsKKyAgICAgICAgaW50IGluZGV4ID0gQ2xhc3NFbnRyeS5zZWFyY2goY2xhc3NUYWJsZSwgZ2x5cGhJRCk7CisgICAgICAgIAorICAgICAgICBpZiAoaW5kZXggPj0gMCkgeworICAgICAgICAgICAgcmV0dXJuIGNsYXNzVGFibGVbaW5kZXhdLmdldENsYXNzSUQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNuYXBzaG90KCkKKyAgICB7CisgICAgICAgIGlmIChzbmFwc2hvdFNpemUgIT0gY2xhc3NNYXAuc2l6ZSgpKSB7CisgICAgICAgICAgICBzbmFwc2hvdFNpemUgPSBjbGFzc01hcC5zaXplKCk7CisgICAgICAgICAgICBjbGFzc1RhYmxlID0gbmV3IENsYXNzRW50cnlbc25hcHNob3RTaXplXTsKKworICAgICAgICAgICAgQ2xhc3NFbnRyeS5zb3J0KGNsYXNzVGFibGUsIGNsYXNzTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUNsYXNzVGFibGUoT3BlblR5cGVUYWJsZVdyaXRlciB3cml0ZXIpCisgICAgeworICAgICAgICBzbmFwc2hvdCgpOworICAgICAgICAKKyAgICAgICAgVmVjdG9yIGNsYXNzUmFuZ2VzID0gbmV3IFZlY3RvcigpOworICAgICAgICBpbnQgc3RhcnRJbmRleCA9IDA7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGNsYXNzVGFibGUubGVuZ3RoKSB7CisgICAgICAgICAgICBpbnQgc3RhcnRJRCA9IGNsYXNzVGFibGVbc3RhcnRJbmRleF0uZ2V0R2x5cGhJRCgpOworICAgICAgICAgICAgaW50IGNsYXNzSUQgPSBjbGFzc1RhYmxlW3N0YXJ0SW5kZXhdLmdldENsYXNzSUQoKTsKKyAgICAgICAgICAgIGludCBuZXh0SUQgPSBzdGFydElEOworICAgICAgICAgICAgaW50IGVuZElEID0gc3RhcnRJRDsKKyAgICAgICAgICAgIGludCBlbmRJbmRleDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChlbmRJbmRleCA9IHN0YXJ0SW5kZXg7IGVuZEluZGV4IDwgY2xhc3NUYWJsZS5sZW5ndGg7IGVuZEluZGV4ICs9IDEpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2xhc3NUYWJsZVtlbmRJbmRleF0uZ2V0R2x5cGhJRCgpICE9IG5leHRJRCB8fAorICAgICAgICAgICAgICAgICAgICBjbGFzc1RhYmxlW2VuZEluZGV4XS5nZXRDbGFzc0lEKCkgIT0gY2xhc3NJRCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZW5kSUQgPSBuZXh0SUQ7CisgICAgICAgICAgICAgICAgbmV4dElEICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChjbGFzc0lEICE9IDApIHsKKyAgICAgICAgICAgICAgICBDbGFzc1JhbmdlUmVjb3JkIHJhbmdlID0gbmV3IENsYXNzUmFuZ2VSZWNvcmQoc3RhcnRJRCwgZW5kSUQsIGNsYXNzSUQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNsYXNzUmFuZ2VzLmFkZEVsZW1lbnQocmFuZ2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBzdGFydEluZGV4ID0gZW5kSW5kZXg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHdyaXRlci53cml0ZURhdGEoMik7ICAgICAgICAgICAgICAgICAgICAvLyB0YWJsZSBmb3JtYXQgPSAyIChjbGFzcyByYW5nZXMpCisgICAgICAgIHdyaXRlci53cml0ZURhdGEoY2xhc3NSYW5nZXMuc2l6ZSgpKTsgICAvLyBjbGFzcyByYW5nZSBjb3VudAorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjbGFzc1Jhbmdlcy5zaXplKCk7IGkgKz0gMSkgeworICAgICAgICAgICAgQ2xhc3NSYW5nZVJlY29yZCByYW5nZSA9IChDbGFzc1JhbmdlUmVjb3JkKSBjbGFzc1Jhbmdlcy5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJhbmdlLndyaXRlKHdyaXRlcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUxvb2t1cFN1YnRhYmxlKE9wZW5UeXBlVGFibGVXcml0ZXIgd3JpdGVyKQorICAgIHsKKyAgICAgICAgaW50IHNpbmdsZVN1YnN0aXR1dGlvbnNCYXNlID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIGludCBjb3ZlcmFnZVRhYmxlSW5kZXg7CisgICAgICAgIAorICAgICAgICBzbmFwc2hvdCgpOworICAgICAgICAKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgyKTsgLy8gZm9ybWF0IDI6IFNwZWNpZmllZCBvdXRwdXQgZ2x5cGggaW5kaWNlcworICAgICAgICBjb3ZlcmFnZVRhYmxlSW5kZXggPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgwKTsgLy8gb2Zmc2V0IHRvIGNvdmVyYWdlIHRhYmxlIChmaXhlZCBsYXRlcikKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YShjbGFzc1RhYmxlLmxlbmd0aCk7IC8vIG51bWJlciBvZiBnbHlwaElEcyBpbiBzdWJzdGl0dXRpb24gYXJyYXkKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2xhc3NUYWJsZS5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShjbGFzc1RhYmxlW2ldLmdldENsYXNzSUQoKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHdyaXRlci5maXhPZmZzZXQoY292ZXJhZ2VUYWJsZUluZGV4LCBzaW5nbGVTdWJzdGl0dXRpb25zQmFzZSk7CisgICAgICAgIHdyaXRlci53cml0ZURhdGEoMSk7CisgICAgICAgIHdyaXRlci53cml0ZURhdGEoY2xhc3NUYWJsZS5sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjbGFzc1RhYmxlLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGNsYXNzVGFibGVbaV0uZ2V0R2x5cGhJRCgpKTsKKyAgICAgICAgfQorICAgIH0KK30KKyAgICAKKyAgICAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0RlY29tcFRhYmxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0RlY29tcFRhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVmNTFkYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvRGVjb21wVGFibGUuamF2YQpAQCAtMCwwICsxLDE4NCBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvKioKKyAqIEBhdXRob3IgT3duZXIKKyAqCisgKiBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPkNvZGUgR2VuZXJhdGlvbj5Db2RlIGFuZCBDb21tZW50cworICovCitwdWJsaWMgY2xhc3MgRGVjb21wVGFibGUgaW1wbGVtZW50cyBMb29rdXBTdWJ0YWJsZQoreworICAgIHN0YXRpYyBjbGFzcyBEZWNvbXBFbnRyeQorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgY29tcG9zZWQ7CisgICAgICAgIHByaXZhdGUgaW50W10gZGVjb21wOworICAgICAgICAKKyAgICAgICAgRGVjb21wRW50cnkoaW50IGNvbXBvc2VkQ2hhciwgU3RyaW5nIGRlY29tcG9zaXRpb24pCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBkZWNvbXBDb3VudCA9IFVURjE2LmNvdW50Q29kZVBvaW50KGRlY29tcG9zaXRpb24pOworICAgICAgICAgICAgCisgICAgICAgICAgICBjb21wb3NlZCA9IGNvbXBvc2VkQ2hhcjsKKyAgICAgICAgICAgIGRlY29tcCA9IG5ldyBpbnRbZGVjb21wQ291bnRdOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgb3V0ID0gMCwgY3A7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGluID0gMDsgaW4gPCBkZWNvbXBvc2l0aW9uLmxlbmd0aCgpOyBpbiArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoZGVjb21wb3NpdGlvbiwgaW4pOworICAgICAgICAgICAgICAgIGRlY29tcFtvdXQrK10gPSBjcDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRDb21wb3NlZENoYXJhY3RlcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBjb21wb3NlZDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludFtdIGdldERlY29tcG9zaXRpb24oKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZGVjb21wOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldERlY29tcG9zaXRpb25Db3VudCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBkZWNvbXAubGVuZ3RoOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGdldERlY29tcG9zZWRDaGFyYWN0ZXIoaW50IGkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChpID49IDAgJiYgaSA8IGRlY29tcC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVjb21wW2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKERlY29tcEVudHJ5IHRoYXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBvc2VkIC0gdGhhdC5jb21wb3NlZDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gU3RyYWlnaHQgaW5zZXJ0aW9uIHNvcnQgZnJvbSBLbnV0aCB2b2wuIElJSSwgcGcuIDgxCisgICAgICAgIC8vCisgICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzb3J0KERlY29tcEVudHJ5W10gdGFibGUsIFZlY3RvciBkZWNvbXBWZWN0b3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGFibGUubGVuZ3RoOyBqICs9IDEpIHsKKyAgICAgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgICAgICBEZWNvbXBFbnRyeSB2ID0gKERlY29tcEVudHJ5KSBkZWNvbXBWZWN0b3IuZWxlbWVudEF0KGopOworCisgICAgICAgICAgICAgICAgZm9yIChpID0gaiAtIDE7IGkgPj0gMDsgaSAtPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2LmNvbXBhcmVUbyh0YWJsZVtpXSkgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgdGFibGVbaSArIDFdID0gdGFibGVbaV07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdGFibGVbaSArIDFdID0gdjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFZlY3RvciBkZWNvbXBWZWN0b3I7CisgICAgcHJpdmF0ZSBEZWNvbXBFbnRyeVtdIGRlY29tcEVudHJpZXM7CisgICAgcHJpdmF0ZSBpbnQgc25hcHNob3RTaXplOworICAgIAorICAgIHB1YmxpYyBEZWNvbXBUYWJsZSgpCisgICAgeworICAgICAgICBkZWNvbXBWZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGRlY29tcEVudHJpZXMgPSBudWxsOworICAgICAgICBzbmFwc2hvdFNpemUgPSAtMTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYWRkKGludCBjb21wb3NlZCwgU3RyaW5nIGRlY29tcG9zaXRpb24pCisgICAgeworICAgICAgICBEZWNvbXBFbnRyeSBlbnRyeSA9IG5ldyBEZWNvbXBFbnRyeShjb21wb3NlZCwgZGVjb21wb3NpdGlvbik7CisgICAgICAgIAorICAgICAgICBkZWNvbXBWZWN0b3IuYWRkRWxlbWVudChlbnRyeSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0Q29tcG9zZWRDaGFyYWN0ZXIoaW50IGkpCisgICAgeworICAgICAgICBpZiAoaSA8IDAgfHwgaSA+IGRlY29tcEVudHJpZXMubGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBkZWNvbXBFbnRyaWVzW2ldLmdldENvbXBvc2VkQ2hhcmFjdGVyKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0RGVjb21wb3NpdGlvbkNvdW50KGludCBpKQorICAgIHsKKyAgICAgICAgaWYgKGkgPCAwIHx8IGkgPiBkZWNvbXBFbnRyaWVzLmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZGVjb21wRW50cmllc1tpXS5nZXREZWNvbXBvc2l0aW9uQ291bnQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gaGFzRW50cmllcygpCisgICAgeworICAgICAgICByZXR1cm4gZGVjb21wVmVjdG9yLnNpemUoKSA+IDA7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBzbmFwc2hvdCgpCisgICAgeworICAgICAgICBpZiAoc25hcHNob3RTaXplICE9IGRlY29tcFZlY3Rvci5zaXplKCkpIHsKKyAgICAgICAgICAgIHNuYXBzaG90U2l6ZSA9IGRlY29tcFZlY3Rvci5zaXplKCk7CisgICAgICAgICAgICBkZWNvbXBFbnRyaWVzID0gbmV3IERlY29tcEVudHJ5W3NuYXBzaG90U2l6ZV07CisgICAgICAgICAgICBEZWNvbXBFbnRyeS5zb3J0KGRlY29tcEVudHJpZXMsIGRlY29tcFZlY3Rvcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUxvb2t1cFN1YnRhYmxlKE9wZW5UeXBlVGFibGVXcml0ZXIgd3JpdGVyKQorICAgIHsKKyAgICAgICAgc25hcHNob3QoKTsKKyAgICAgICAgCisgICAgICAgIGludCBtdWx0aXBsZVN1YnN0aXR1dGlvbnNCYXNlID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIGludCBjb3ZlcmFnZVRhYmxlSW5kZXgsIHNlcXVlbmNlT2Zmc2V0SW5kZXg7CisgICAgICAgIGludCBzZXF1ZW5jZUNvdW50ID0gZGVjb21wRW50cmllcy5sZW5ndGg7CisgICAgICAgIAorICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDEpOyAvLyBmb3JtYXQgPSAxCisgICAgICAgIAorICAgICAgICBjb3ZlcmFnZVRhYmxlSW5kZXggPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgwKTsgLy8gY292ZXJhZ2UgdGFibGUgb2Zmc2V0IChmaXhlZCBsYXRlcikKKyAgICAgICAgCisgICAgICAgIHdyaXRlci53cml0ZURhdGEoc2VxdWVuY2VDb3VudCk7CisgICAgICAgIAorICAgICAgICBzZXF1ZW5jZU9mZnNldEluZGV4ID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIGZvciAoaW50IHMgPSAwOyBzIDwgc2VxdWVuY2VDb3VudDsgcyArPSAxKSB7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDApOyAvLyBvZmZzZXQgdG8gc2VxdWVuY2UgdGFibGUgKGZpeGVkIGxhdGVyKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgcyA9IDA7IHMgPCBzZXF1ZW5jZUNvdW50OyBzICs9IDEpIHsKKyAgICAgICAgICAgIERlY29tcEVudHJ5IGVudHJ5ID0gZGVjb21wRW50cmllc1tzXTsKKyAgICAgICAgICAgIGludCBkZWNvbXBDb3VudCA9IGVudHJ5LmdldERlY29tcG9zaXRpb25Db3VudCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICB3cml0ZXIuZml4T2Zmc2V0KHNlcXVlbmNlT2Zmc2V0SW5kZXgrKywgbXVsdGlwbGVTdWJzdGl0dXRpb25zQmFzZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoZGVjb21wQ291bnQpOyAvLyBnbHlwaENvdW50CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGcgPSAwOyBnIDwgZGVjb21wQ291bnQ7IGcgKz0gMSkgeworICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoZW50cnkuZ2V0RGVjb21wb3NlZENoYXJhY3RlcihnKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHdyaXRlIGEgZm9ybWF0IDEgY292ZXJhZ2UgdGFibGUKKyAgICAgICAgd3JpdGVyLmZpeE9mZnNldChjb3ZlcmFnZVRhYmxlSW5kZXgsIG11bHRpcGxlU3Vic3RpdHV0aW9uc0Jhc2UpOworICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDEpOyAvLyBmb3JtYXQgPSAxCisgICAgICAgIHdyaXRlci53cml0ZURhdGEoc2VxdWVuY2VDb3VudCk7ICAvLyBnbHlwaENvdW50CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNlcXVlbmNlQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShkZWNvbXBFbnRyaWVzW2ldLmdldENvbXBvc2VkQ2hhcmFjdGVyKCkpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9GZWF0dXJlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0ZlYXR1cmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YWNmODdkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9GZWF0dXJlLmphdmEKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKKworY2xhc3MgRmVhdHVyZSBleHRlbmRzIFRhZ2dlZFJlY29yZAoreworICAgIHByaXZhdGUgaW50W10gbG9va3VwSW5kaWNlczsKKyAgICBwcml2YXRlIGludCBsb29rdXBDb3VudDsKKyAgICBwcml2YXRlIGludCBmZWF0dXJlSW5kZXg7CisgICAgCisgICAgcHVibGljIEZlYXR1cmUoU3RyaW5nIHRoZUZlYXR1cmVUYWcpCisgICAgeworICAgICAgICBzdXBlcih0aGVGZWF0dXJlVGFnKTsKKyAgICAgICAgCisgICAgICAgIGxvb2t1cEluZGljZXMgPSBuZXcgaW50WzEwXTsKKyAgICAgICAgbG9va3VwQ291bnQgPSAwOworICAgICAgICBmZWF0dXJlSW5kZXggPSAtMTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYWRkTG9va3VwKGludCB0aGVMb29rdXBJbmRleCkKKyAgICB7CisgICAgICAgIGlmIChsb29rdXBDb3VudCA+PSBsb29rdXBJbmRpY2VzLmxlbmd0aCkgeworICAgICAgICAgICAgaW50W10gbmV3TG9va3VwSW5kaWNlcyA9IG5ldyBpbnRbbG9va3VwSW5kaWNlcy5sZW5ndGggKyA1XTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsb29rdXBJbmRpY2VzLCAwLCBuZXdMb29rdXBJbmRpY2VzLCAwLCBsb29rdXBJbmRpY2VzLmxlbmd0aCk7CisgICAgICAgICAgICBsb29rdXBJbmRpY2VzID0gbmV3TG9va3VwSW5kaWNlczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbG9va3VwSW5kaWNlc1tsb29rdXBDb3VudF0gPSB0aGVMb29rdXBJbmRleDsKKyAgICAgICAgbG9va3VwQ291bnQgKz0gMTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVGZWF0dXJlKE9wZW5UeXBlVGFibGVXcml0ZXIgd3JpdGVyKQorICAgIHsKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgwKTsgICAgICAvLyBmZWF0dXJlUGFyYW1zIChtdXN0IGJlIE5VTEwpCisgICAgICAgIAorICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGxvb2t1cENvdW50KTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9va3VwQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YShsb29rdXBJbmRpY2VzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldEZlYXR1cmVJbmRleCgpCisgICAgeworICAgICAgICByZXR1cm4gZmVhdHVyZUluZGV4OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRGZWF0dXJlSW5kZXgoaW50IGluZGV4KQorICAgIHsKKyAgICAgICAgZmVhdHVyZUluZGV4ID0gaW5kZXg7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvRmVhdHVyZUxpc3QuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvRmVhdHVyZUxpc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2U2MWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9GZWF0dXJlTGlzdC5qYXZhCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworCitwdWJsaWMgY2xhc3MgRmVhdHVyZUxpc3QKK3sKKyAgICAKKyAgICBwcml2YXRlIEZlYXR1cmVbXSBmZWF0dXJlczsKKyAgICBwcml2YXRlIGludCBmZWF0dXJlQ291bnQ7CisgICAgCisgICAgcHVibGljIEZlYXR1cmVMaXN0KCkKKyAgICB7CisgICAgICAgIGZlYXR1cmVzID0gbmV3IEZlYXR1cmVbMTBdOworICAgICAgICBmZWF0dXJlQ291bnQgPSAwOworICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIHZvaWQgYWRkRmVhdHVyZShGZWF0dXJlIGZlYXR1cmUpCisgICAgeworICAgICAgICBpZiAoZmVhdHVyZUNvdW50ID49IGZlYXR1cmVzLmxlbmd0aCkgeworICAgICAgICAgICAgRmVhdHVyZVtdIG5ld0ZlYXR1cmVzID0gbmV3IEZlYXR1cmVbZmVhdHVyZXMubGVuZ3RoICsgNV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZmVhdHVyZXMsIDAsIG5ld0ZlYXR1cmVzLCAwLCBmZWF0dXJlcy5sZW5ndGgpOworICAgICAgICAgICAgZmVhdHVyZXMgPSBuZXdGZWF0dXJlczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZmVhdHVyZXNbZmVhdHVyZUNvdW50KytdID0gZmVhdHVyZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgZmluYWxpemVGZWF0dXJlTGlzdCgpCisgICAgeworICAgICAgICBUYWdnZWRSZWNvcmQuc29ydChmZWF0dXJlcywgZmVhdHVyZUNvdW50KTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZmVhdHVyZUNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIGZlYXR1cmVzW2ldLnNldEZlYXR1cmVJbmRleChpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUZlYXR1cmV0TGlzdChPcGVuVHlwZVRhYmxlV3JpdGVyIHdyaXRlcikKKyAgICB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIndyaXRpbmcgZmVhdHVyZSBsaXN0Li4uIik7CisgICAgICAgIAorICAgICAgICBpbnQgZmVhdHVyZUxpc3RCYXNlID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIAorICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGZlYXR1cmVDb3VudCk7CisgICAgICAgIAorICAgICAgICBpbnQgZmVhdHVyZVJlY29yZE9mZnNldCA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmZWF0dXJlQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgU3RyaW5nIHRhZyA9IGZlYXR1cmVzW2ldLmdldFRhZygpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgJyIgKyB0YWcgKyAiJyIpOworICAgICAgICAgICAgd3JpdGVyLndyaXRlVGFnKHRhZyk7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZlYXR1cmVDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICAvLyBmaXggdGhlIG9mZnNldCBpbiB0aGUgZmVhdHVyZVJlY29yZEFycmF5LgorICAgICAgICAgICAgLy8gVGhlICIrMiIgc2tpcHMgb3ZlciB0aGUgdGFnIGFuZCB0aGUgIiszIgorICAgICAgICAgICAgLy8gc2tpcHMgdG8gdGhlIG5leHQgZmVhdHVyZVJlY29yZCBlbnRyeQorICAgICAgICAgICAgd3JpdGVyLmZpeE9mZnNldChmZWF0dXJlUmVjb3JkT2Zmc2V0ICsgMiwgZmVhdHVyZUxpc3RCYXNlKTsKKyAgICAgICAgICAgIGZlYXR1cmVSZWNvcmRPZmZzZXQgKz0gMzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZmVhdHVyZXNbaV0ud3JpdGVGZWF0dXJlKHdyaXRlcik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0dERUZXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvR0RFRldyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YzEzZjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0dERUZXcml0ZXIuamF2YQpAQCAtMCwwICsxLDY3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBqYXZhLmlvLlByaW50U3RyZWFtOworCisKKworY2xhc3MgR0RFRldyaXRlciBleHRlbmRzIE9wZW5UeXBlVGFibGVXcml0ZXIKK3sKKyAgICBDbGFzc1RhYmxlIGNsYXNzVGFibGU7CisgICAgQ2xhc3NUYWJsZSBtYXJrQ2xhc3NUYWJsZTsKKyAgICBTdHJpbmcgc2NyaXB0TmFtZTsKKyAgICAKKyAgICBwdWJsaWMgR0RFRldyaXRlcihTdHJpbmcgc2NyaXB0TmFtZSwgQ2xhc3NUYWJsZSBjbGFzc1RhYmxlLCBDbGFzc1RhYmxlIG1hcmtDbGFzc1RhYmxlKQorICAgIHsKKyAgICAgICAgc3VwZXIoMTAyNCk7CisgICAgICAgIHRoaXMuY2xhc3NUYWJsZSAgICAgPSBjbGFzc1RhYmxlOworICAgICAgICB0aGlzLm1hcmtDbGFzc1RhYmxlID0gbWFya0NsYXNzVGFibGU7CisgICAgICAgIHRoaXMuc2NyaXB0TmFtZSAgICAgPSBzY3JpcHROYW1lOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVRhYmxlKFByaW50U3RyZWFtIG91dHB1dCkKKyAgICB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyAiICsgc2NyaXB0TmFtZSArICIgR0RFRiB0YWJsZS4uLiIpOworICAgICAgICAKKyAgICAgICAgLy8gMHgwMDAxMDAwIChmaXhlZDEpIHZlcnNpb24gbnVtYmVyCisgICAgICAgIHdyaXRlRGF0YSgweDAwMDEpOworICAgICAgICB3cml0ZURhdGEoMHgwMDAwKTsKKyAgICAgICAgCisgICAgICAgIGludCBjbGFzc0RlZk9mZnNldCA9IGdldE91dHB1dEluZGV4KCk7CisgICAgICAgIHdyaXRlRGF0YSgwKTsgLy8gZ2x5cGhDbGFzc0RlZk9mZnNldCAod2lsbCBmaXggbGF0ZXIpOworICAgICAgICB3cml0ZURhdGEoMCk7IC8vIGF0dGFjaExpc3RPZmZzZXQKKyAgICAgICAgd3JpdGVEYXRhKDApOyAvLyBsaWdDYXJldExpc3RPZmZzZXQKKyAgICAgICAgd3JpdGVEYXRhKDApOyAvLyBtYXJrQXR0YWNoQ2xhc3NEZWZPZmZzZXQKKyAgICAgICAgCisgICAgICAgIGZpeE9mZnNldChjbGFzc0RlZk9mZnNldCsrLCAwKTsKKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyBnbHlwaCBjbGFzcyBkZWZpbml0aW9uIHRhYmxlLi4uIik7CisgICAgICAgIGNsYXNzVGFibGUud3JpdGVDbGFzc1RhYmxlKHRoaXMpOworICAgICAgICAKKyAgICAgICAgLy8gc2tpcCBvdmVyIGF0dGFjaExpc3RPZmZzZXQsIGxpZ0NhcmV0TGlzdE9mZnNldAorICAgICAgICBjbGFzc0RlZk9mZnNldCArPSAyOworICAgICAgICAKKyAgICAgICAgaWYgKG1hcmtDbGFzc1RhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZpeE9mZnNldChjbGFzc0RlZk9mZnNldCwgMCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyBtYXJrIGF0dGFjaCBjbGFzcyBkZWZpbml0aW9uIHRhYmxlLi4uIik7CisgICAgICAgICAgICBtYXJrQ2xhc3NUYWJsZS53cml0ZUNsYXNzVGFibGUodGhpcyk7CisgICAgICAgIH0KKworICAgICAgICBvdXRwdXQucHJpbnQoImNvbnN0IGxlX3VpbnQ4ICIpOworICAgICAgICBvdXRwdXQucHJpbnQoc2NyaXB0TmFtZSk7CisgICAgICAgIG91dHB1dC5wcmludGxuKCJTaGFwaW5nOjpnbHlwaERlZmluaXRpb25UYWJsZVtdID0geyIpOworICAgICAgICAKKyAgICAgICAgZHVtcFRhYmxlKG91dHB1dCwgOCk7CisgICAgICAgIG91dHB1dC5wcmludGxuKCJ9O1xuIik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9HU1VCV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0dTVUJXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmZjZjM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9HU1VCV3JpdGVyLmphdmEKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgamF2YS5pby5QcmludFN0cmVhbTsKKworCitwdWJsaWMgY2xhc3MgR1NVQldyaXRlciBleHRlbmRzIE9wZW5UeXBlVGFibGVXcml0ZXIKK3sKKyAgICBwcml2YXRlIFNjcmlwdExpc3Qgc2NyaXB0TGlzdDsKKyAgICBwcml2YXRlIEZlYXR1cmVMaXN0IGZlYXR1cmVMaXN0OworICAgIHByaXZhdGUgTG9va3VwTGlzdCBsb29rdXBMaXN0OworICAgIHByaXZhdGUgU3RyaW5nIHNjcmlwdE5hbWU7CisgICAgCisgICAgcHVibGljIEdTVUJXcml0ZXIoU3RyaW5nIHRoZVNjcmlwdE5hbWUsIFNjcmlwdExpc3QgdGhlU2NyaXB0TGlzdCwgRmVhdHVyZUxpc3QgdGhlRmVhdHVyZUxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgTG9va3VwTGlzdCB0aGVMb29rdXBMaXN0KQorICAgIHsKKyAgICAgICAgc3VwZXIoMTAyNCk7CisgICAgICAgIAorICAgICAgICBzY3JpcHRMaXN0ICA9IHRoZVNjcmlwdExpc3Q7CisgICAgICAgIGZlYXR1cmVMaXN0ID0gdGhlRmVhdHVyZUxpc3Q7CisgICAgICAgIGxvb2t1cExpc3QgID0gdGhlTG9va3VwTGlzdDsKKyAgICAgICAgc2NyaXB0TmFtZSAgPSB0aGVTY3JpcHROYW1lOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVRhYmxlKFByaW50U3RyZWFtIG91dHB1dCkKKyAgICB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigid3JpdGluZyAiICsgc2NyaXB0TmFtZSArICIgR1NVQiB0YWJsZS4uLiIpOworICAgICAgICAKKyAgICAgICAgLy8gMHgwMDAxMDAwMCAoZml4ZWQxKSB2ZXJzaW9uIG51bWJlcgorICAgICAgICB3cml0ZURhdGEoMHgwMDAxKTsKKyAgICAgICAgd3JpdGVEYXRhKDB4MDAwMCk7CisgICAgICAgIAorICAgICAgICBpbnQgbGlzdE9mZnNldCA9IGdldE91dHB1dEluZGV4KCk7CisgICAgICAgIAorICAgICAgICB3cml0ZURhdGEoMCk7IC8vIHNjcmlwdCBsaXN0IG9mZnNldCAoZml4ZWQgbGF0ZXIpCisgICAgICAgIHdyaXRlRGF0YSgwKTsgLy8gZmVhdHVyZSBsaXN0IG9mZnNldCAoZml4ZWQgbGF0ZXIpCisgICAgICAgIHdyaXRlRGF0YSgwKTsgLy8gbG9va3VwIGxpc3Qgb2Zmc2V0IChmaXhlZCBsYXRlcikKKyAgICAgICAgCisgICAgICAgIGZpeE9mZnNldChsaXN0T2Zmc2V0KyssIDApOworICAgICAgICBzY3JpcHRMaXN0LndyaXRlU2NyaXB0TGlzdCh0aGlzKTsKKyAgICAgICAgCisgICAgICAgIGZpeE9mZnNldChsaXN0T2Zmc2V0KyssIDApOworICAgICAgICBmZWF0dXJlTGlzdC53cml0ZUZlYXR1cmV0TGlzdCh0aGlzKTsKKyAgICAgICAgCisgICAgICAgIGZpeE9mZnNldChsaXN0T2Zmc2V0KyssIDApOworICAgICAgICBsb29rdXBMaXN0LndyaXRlTG9va3VwTGlzdCh0aGlzKTsKKworICAgICAgICBvdXRwdXQucHJpbnQoImNvbnN0IGxlX3VpbnQ4ICIpOworICAgICAgICBvdXRwdXQucHJpbnQoc2NyaXB0TmFtZSk7CisgICAgICAgIG91dHB1dC5wcmludGxuKCJTaGFwaW5nOjpnbHlwaFN1YnN0aXR1dGlvblRhYmxlW10gPSB7Iik7CisgICAgICAgIAorICAgICAgICBkdW1wVGFibGUob3V0cHV0LCA4KTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4oIn07XG4iKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MYW5ndWFnZURhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGFuZ3VhZ2VEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTYyYjlhOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGFuZ3VhZ2VEYXRhLmphdmEKQEAgLTAsMCArMSwxMzggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gQXByIDQsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworLyoqCisgKiBUaGlzIGNsYXNzIGhvbGRzIHRoZSBsaXN0IG9mIGxhbmd1YWdlcy4KKyAqIAorICogQGF1dGhvciBlbWFkZXIKKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBMYW5ndWFnZURhdGEgZXh0ZW5kcyBUYWdWYWx1ZURhdGEKK3sKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFJlY29yZAorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgdGFnOworICAgICAgICBwcml2YXRlIFN0cmluZyBuYW1lOworICAgICAgICAKKyAgICAgICAgcHVibGljIFJlY29yZChTdHJpbmcgdGFnLCBTdHJpbmcgbmFtZSkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy50YWcgPSB0YWc7CisgICAgICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIHRhZygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0YWc7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgbmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBuYW1lOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGxhYmVsKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIFRhZ1V0aWxpdGllcy50YWdMYWJlbCh0YWcpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIG1ha2VUYWcoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gVGFnVXRpbGl0aWVzLm1ha2VUYWcodGFnKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLyoKKyAgICAgKiBUaGlzIGlzIHRlbXBvcmFyeSBkYXRhIHVudGlsIHRoZXJlIGlzIHNvbWUgcmVzb2x1dGlvbiBiZXR3ZWVuCisgICAgICogdGhlIE9wZW5UeXBlIGxhbmd1YWdlIHN5c3RlbSB0YWdzIGFuZCB0aGUgSVNPIGFuZCBSRkMgc3RhbmRhcmRzLi4uCisgICAgICovCisgICAgcHJpdmF0ZSBSZWNvcmRbXSBsYW5ndWFnZXMgPQorICAgIHsKKyAgICAgICAgbmV3IFJlY29yZCgiIiwgICAgIm51bGwiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiQVJBIiwgIkFyYWJpYyIpLAorICAgICAgICBuZXcgUmVjb3JkKCJBU00iLCAiQXNzYW1lc2UiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiQkVOIiwgIkJlbmdhbGkiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiRkFSIiwgIkZhcnNpIiksCisgICAgICAgIG5ldyBSZWNvcmQoIkdVSiIsICJHdWphcmF0aSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJISU4iLCAiSGluZGkiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiSVdSIiwgIkhlYnJldyIpLAorICAgICAgICBuZXcgUmVjb3JkKCJKSUkiLCAiWWlkZGlzaCIpLAorICAgICAgICBuZXcgUmVjb3JkKCJKQU4iLCAiSmFwYW5lc2UiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiS0FOIiwgIkthbm5hZGEiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiS09LIiwgIktvbmthbmkiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiS09SIiwgIktvcmVhbiIpLAorICAgICAgICBuZXcgUmVjb3JkKCJLU0giLCAiS2FzaG1pcmkiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiTUFMIiwgIk1hbGF5YWxhbSAoVHJhZGl0aW9uYWwpIiksCisgICAgICAgIG5ldyBSZWNvcmQoIk1BUiIsICJNYXJhdGhpIiksCisgICAgICAgIG5ldyBSZWNvcmQoIk1MUiIsICJNYWxheWFsYW0gKFJlZm9ybWVkKSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJNTkkiLCAiTWFuaXB1cmkiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiT1JJIiwgIk9yaXlhIiksCisgICAgICAgIG5ldyBSZWNvcmQoIlNBTiIsICJTYW5zY3JpdCIpLAorICAgICAgICBuZXcgUmVjb3JkKCJTTkQiLCAiU2luZGhpIiksCisgICAgICAgIG5ldyBSZWNvcmQoIlNOSCIsICJTaW5oYWxlc2UiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiU1lSIiwgIlN5cmlhYyIpLAorICAgICAgICBuZXcgUmVjb3JkKCJUQU0iLCAiVGFtaWwiKSwKKyAgICAgICAgbmV3IFJlY29yZCgiVEVMIiwgIlRlbHVndSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJUSEEiLCAiVGhhaSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJVUkQiLCAiVXJkdSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJaSFAiLCAiQ2hpbmVzZSAoUGhvbmV0aWMpIiksCisgICAgICAgIG5ldyBSZWNvcmQoIlpIUyIsICJDaGluZXNlIChTaW1wbGlmaWVkKSIpLAorICAgICAgICBuZXcgUmVjb3JkKCJaSFQiLCAiQ2hpbmVzZSAoVHJhZGl0aW9uYWwpIikKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgaW50IG1pbkxhbmd1YWdlID0gMDsKKyAgICBwcml2YXRlIGludCBtYXhMYW5ndWFnZSA9IG1pbkxhbmd1YWdlICsgbGFuZ3VhZ2VzLmxlbmd0aCAtIDE7CisgICAgCisgICAgcHVibGljIGludCBnZXRNaW5WYWx1ZSgpCisgICAgeworICAgICAgICByZXR1cm4gbWluTGFuZ3VhZ2U7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0TWF4VmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1heExhbmd1YWdlOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRhZyhpbnQgdmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPCBtaW5MYW5ndWFnZSB8fCB2YWx1ZSA+IG1heExhbmd1YWdlKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlc1t2YWx1ZSAtIG1pbkxhbmd1YWdlXS50YWcoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXRUYWdMYWJlbChpbnQgdmFsdWUpCisgICAgeworICAgICAgICBpZiAodmFsdWUgPCBtaW5MYW5ndWFnZSB8fCB2YWx1ZSA+IG1heExhbmd1YWdlKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlc1t2YWx1ZSAtIG1pbkxhbmd1YWdlXS5sYWJlbCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIG1ha2VUYWcoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlIDwgbWluTGFuZ3VhZ2UgfHwgdmFsdWUgPiBtYXhMYW5ndWFnZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBsYW5ndWFnZXNbdmFsdWUgLSBtaW5MYW5ndWFnZV0ubWFrZVRhZygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoaW50IHZhbHVlKSB7CisgICAgICAgIGlmICh2YWx1ZSA8IG1pbkxhbmd1YWdlIHx8IHZhbHVlID4gbWF4TGFuZ3VhZ2UpIHsKKyAgICAgICAgICAgIHJldHVybiAiKFVOS05PV04pIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGxhbmd1YWdlc1t2YWx1ZSAtIG1pbkxhbmd1YWdlXS5uYW1lKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MaWdhdHVyZUVudHJ5LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xpZ2F0dXJlRW50cnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTA2YTM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MaWdhdHVyZUVudHJ5LmphdmEKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitwdWJsaWMgY2xhc3MgTGlnYXR1cmVFbnRyeQoreworICAgIHByaXZhdGUgaW50W10gY29tcG9uZW50Q2hhcnM7CisgICAgcHJpdmF0ZSBpbnQgbGlnYXR1cmU7CisgICAgCisgICAgcHVibGljIExpZ2F0dXJlRW50cnkoaW50IGxpZ2F0dXJlLCBpbnRbXSBjb21wb25lbnRDaGFycywgaW50IGNvbXBvbmVudENvdW50KQorICAgIHsKKyAgICAgICAgdGhpcy5jb21wb25lbnRDaGFycyA9IG5ldyBpbnRbY29tcG9uZW50Q291bnRdOworICAgICAgICB0aGlzLmxpZ2F0dXJlID0gbGlnYXR1cmU7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoY29tcG9uZW50Q2hhcnMsIDAsIHRoaXMuY29tcG9uZW50Q2hhcnMsIDAsIGNvbXBvbmVudENvdW50KTsKK30KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldENvbXBvbmVudENvdW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBjb21wb25lbnRDaGFycy5sZW5ndGg7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZ2V0Q29tcG9uZW50Q2hhcihpbnQgY29tcG9uZW50SW5kZXgpCisgICAgeworICAgICAgICByZXR1cm4gY29tcG9uZW50Q2hhcnNbY29tcG9uZW50SW5kZXhdOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldExpZ2F0dXJlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBsaWdhdHVyZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xpZ2F0dXJlTW9kdWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xpZ2F0dXJlTW9kdWxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE1MjA5ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTGlnYXR1cmVNb2R1bGVXcml0ZXIuamF2YQpAQCAtMCwwICsxLDI1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAzLCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKKworcHVibGljIGNsYXNzIExpZ2F0dXJlTW9kdWxlV3JpdGVyIGV4dGVuZHMgTW9kdWxlV3JpdGVyCit7CisgICAgcHVibGljIExpZ2F0dXJlTW9kdWxlV3JpdGVyKCkKKyAgICB7CisgICAgICAgIHN1cGVyKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVUYWJsZShPcGVuVHlwZVRhYmxlV3JpdGVyIHRhYmxlV3JpdGVyKQorICAgIHsKKyAgICAgICAgdGFibGVXcml0ZXIud3JpdGVUYWJsZShvdXRwdXQpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xpZ2F0dXJlVHJlZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MaWdhdHVyZVRyZWUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNmYyNjA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MaWdhdHVyZVRyZWUuamF2YQpAQCAtMCwwICsxLDI0NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CitpbXBvcnQgamF2YS5pby5Xcml0ZXI7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworcHVibGljIGNsYXNzIExpZ2F0dXJlVHJlZQoreworICAgIHN0YXRpYyBjbGFzcyBMaWdub2RlCisgICAgeworICAgICAgICBpbnQgdGFyZ2V0OworICAgICAgICBpbnQgbGlnYXR1cmUgPSAtMTsKKyAgICAgICAgTGlnbm9kZVtdIHN1Ym5vZGVzID0gbnVsbDsKKworICAgICAgICBMaWdub2RlKCkKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0ID0gLTE7CisgICAgICAgIH0KKworICAgICAgICBMaWdub2RlKGludCB0YXJnZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0OworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBpc01hdGNoKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGxpZ2F0dXJlICE9IC0xOworICAgICAgICB9CisKKyAgICAgICAgaW50IGdldExpZ2F0dXJlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGxpZ2F0dXJlOworICAgICAgICB9CisKKyAgICAgICAgTGlnbm9kZSBzdWJub2RlKGludCBjKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoc3Vibm9kZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGludCBsZW4gPSBzdWJub2Rlcy5sZW5ndGg7CisKKyAgICAgICAgICAgICAgICBpZiAoYyA8PSBzdWJub2Rlc1tsZW4gLSAxXS50YXJnZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrPSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdCA9IHN1Ym5vZGVzW2ldLnRhcmdldDsKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQgPiBjKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ID09IGMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3Vibm9kZXNbaV07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGxpZ2F0dXJlU3RyaW5nKGludFtdIGNoYXJzKQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgaW50IGxlbiA9IGNoYXJzLmxlbmd0aCAtIDE7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiICsgIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoVXRpbGl0eS5oZXgoY2hhcnNbaV0sIDYpKTsKKyAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgPT4gIiArIFV0aWxpdHkuaGV4KGNoYXJzW2xlbl0sIDYpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2b2lkIGluc2VydChpbnRbXSBjaGFycywgaW50IGluZGV4KQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgYyA9IGNoYXJzW2luZGV4XTsKKyAgICAgICAgICAgIGludCBsZW4gPSBjaGFycy5sZW5ndGg7CisKKyAgICAgICAgICAgIGlmIChsZW4gPT0gaW5kZXggKyAxKSB7CisgICAgICAgICAgICAgICAgaWYgKGxpZ2F0dXJlICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaWdub3JpbmcgbGlnYXR1cmUgIiArIGxpZ2F0dXJlU3RyaW5nKGNoYXJzKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiBhbHJlYWR5IGhhdmUgIiArIFV0aWxpdHkuaGV4KGxpZ2F0dXJlLCA2KSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbGlnYXR1cmUgPSBjOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHN1Ym5vZGVzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdWJub2RlcyA9IG5ldyBMaWdub2RlWzFdOworICAgICAgICAgICAgICAgIHN1Ym5vZGVzWzBdID0gbmV3IExpZ25vZGUoYyk7CisgICAgICAgICAgICAgICAgc3Vibm9kZXNbMF0uaW5zZXJ0KGNoYXJzLCBpbmRleCArIDEpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgaTsKKworICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzdWJub2Rlcy5sZW5ndGg7IGkgKz0gMSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGludCB0ID0gc3Vibm9kZXNbaV0udGFyZ2V0OworCisgICAgICAgICAgICAgICAgICAgIGlmICh0ID09IGMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym5vZGVzW2ldLmluc2VydChjaGFycywgaW5kZXggKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0ID4gYykgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBMaWdub2RlW10gbm5vZGVzID0gbmV3IExpZ25vZGVbc3Vibm9kZXMubGVuZ3RoICsgMV07CisKKyAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzdWJub2RlcywgMCwgbm5vZGVzLCAwLCBpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBubm9kZXNbaV0gPSBuZXcgTGlnbm9kZShjKTsKKworICAgICAgICAgICAgICAgIGlmIChpIDwgc3Vibm9kZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3Vibm9kZXMsIGksIG5ub2RlcywgaSArIDEsIHN1Ym5vZGVzLmxlbmd0aCAtIGkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHN1Ym5vZGVzID0gbm5vZGVzOworCisgICAgICAgICAgICAgICAgc3Vibm9kZXNbaV0uaW5zZXJ0KGNoYXJzLCBpbmRleCArIDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCB3YWxrKFRyZWVXYWxrZXIgd2Fsa2VyKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodGFyZ2V0ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgd2Fsa2VyLmRvd24odGFyZ2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHN1Ym5vZGVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN1Ym5vZGVzLmxlbmd0aDsgaSArPSAxKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgc3Vibm9kZXNbaV0ud2Fsayh3YWxrZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGxpZ2F0dXJlICE9IC0xKSB7CisgICAgICAgICAgICAgICAgd2Fsa2VyLmxpZ2F0dXJlKGxpZ2F0dXJlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHdhbGtlci51cCgpOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIGZpbmFsIFN0cmluZyBpbmQgPSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOworCisgICAgICAgIC8qCisgICAgICAgICAqIFdyaXRlIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiB0byB3LCBzdGFydGluZyBhdCB0aGUgcHJvdmlkZWQgaW5kZW50YXRpb24gbGV2ZWwuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBkdW1wKFdyaXRlciB3LCBpbnQgaW5kZW50KQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgdGFiID0gaW5kLnN1YnN0cmluZygwLCBNYXRoLm1pbihpbmRlbnQsIGluZC5sZW5ndGgoKSkpOworCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHcud3JpdGUodGFiKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0ICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoVXRpbGl0eS5oZXgodGFyZ2V0LCA2KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChsaWdhdHVyZSAhPSAtMSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIiAtLT4gIik7CisgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoVXRpbGl0eS5oZXgobGlnYXR1cmUsIDYpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdy53cml0ZSgiXG4iKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoc3Vibm9kZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB3LndyaXRlKHRhYik7CisgICAgICAgICAgICAgICAgICAgIHcud3JpdGUoIntcbiIpOworICAgICAgICAgICAgICAgICAgICBpbmRlbnQgKz0gNDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3Vibm9kZXMubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym5vZGVzW2ldLmR1bXAodywgaW5kZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgdy53cml0ZSh0YWIpOworICAgICAgICAgICAgICAgICAgICB3LndyaXRlKCJ9XG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICB9CisKKyAgICBwcml2YXRlIExpZ25vZGUgcm9vdCA9IG5ldyBMaWdub2RlKCk7CisgICAgCisgICAgcHVibGljIExpZ2F0dXJlVHJlZSgpCisgICAgeworICAgICAgICAvLyBhbnl0aGluZz8KKyAgICB9CisKKyAgICBwcml2YXRlIGludFtdIHRvSW50QXJyYXkoU3RyaW5nIHMpCisgICAgeworICAgICAgICBpbnQgY291bnQgPSBVVEYxNi5jb3VudENvZGVQb2ludChzKTsKKyAgICAgICAgaW50W10gcmVzdWx0ID0gbmV3IGludFtjb3VudF07CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIHJlc3VsdFtpXSA9IFVURjE2LmNoYXJBdChzLCBpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBpbnNlcnQoU3RyaW5nIHN0cmluZykKKyAgICB7CisgICAgICAgIHJvb3QuaW5zZXJ0KHRvSW50QXJyYXkoc3RyaW5nKSwgMCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGluc2VydChpbnRbXSBjaGFycykKKyAgICB7CisgICAgICAgIHJvb3QuaW5zZXJ0KGNoYXJzLCAwKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd2FsayhUcmVlV2Fsa2VyIHdhbGtlcikKKyAgICB7CisgICAgICAgIHJvb3Qud2Fsayh3YWxrZXIpOworICAgICAgICB3YWxrZXIuZG9uZSgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBkdW1wKCkKKyAgICB7CisgICAgICAgIFByaW50V3JpdGVyIHB3ID0gbmV3IFByaW50V3JpdGVyKFN5c3RlbS5vdXQpOworICAgICAgICAKKyAgICAgICAgcm9vdC5kdW1wKHB3LCAwKTsKKyAgICAgICAgcHcuZmx1c2goKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xpZ2F0dXJlVHJlZVdhbGtlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MaWdhdHVyZVRyZWVXYWxrZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjVlMmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9MaWdhdHVyZVRyZWVXYWxrZXIuamF2YQpAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworcHVibGljIGNsYXNzIExpZ2F0dXJlVHJlZVdhbGtlciBleHRlbmRzIFRyZWVXYWxrZXIgaW1wbGVtZW50cyBMb29rdXBTdWJ0YWJsZQoreworICAgIHByb3RlY3RlZCBpbnRbXSBjb21wb25lbnRDaGFyczsKKyAgICBwcm90ZWN0ZWQgaW50IGNvbXBvbmVudENvdW50OworICAgIHByb3RlY3RlZCBpbnQgbGFzdEZpcnN0Q29tcG9uZW50OworCisgICAgcHJvdGVjdGVkIFZlY3RvciBsaWdhdHVyZVNldHM7CisgICAgcHJvdGVjdGVkIFZlY3RvciBsaWdhdHVyZVNldDsKKyAgICAKKyAgICBwdWJsaWMgTGlnYXR1cmVUcmVlV2Fsa2VyKCkKKyAgICB7CisgICAgICAgIGNvbXBvbmVudENoYXJzID0gbmV3IGludFszMF07CisgICAgICAgIGNvbXBvbmVudENvdW50ID0gMDsKKyAgICAgICAgbGFzdEZpcnN0Q29tcG9uZW50ID0gLTE7CisgICAgICAgIGxpZ2F0dXJlU2V0ID0gbnVsbDsKKyAgICAgICAgbGlnYXR1cmVTZXRzID0gbmV3IFZlY3RvcigpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGRvd24oaW50IGNoKQorICAgIHsKKyAgICAgICAgY29tcG9uZW50Q2hhcnNbY29tcG9uZW50Q291bnRdID0gY2g7CisgICAgICAgIGNvbXBvbmVudENvdW50ICs9IDE7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdXAoKQorICAgIHsKKyAgICAgICAgaWYgKGNvbXBvbmVudENvdW50ID4gMCkgeworICAgICAgICAgICAgY29tcG9uZW50Q291bnQgLT0gMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGxpZ2F0dXJlKGludCBsaWcpCisgICAgeworICAgICAgICBpbnQgZmlyc3RDb21wb25lbnQgPSBjb21wb25lbnRDaGFyc1swXTsKKworICAgICAgICBpZiAobGFzdEZpcnN0Q29tcG9uZW50ICE9IGZpcnN0Q29tcG9uZW50KSB7CisgICAgICAgICAgICBpZiAobGlnYXR1cmVTZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxpZ2F0dXJlU2V0cy5hZGRFbGVtZW50KGxpZ2F0dXJlU2V0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGlnYXR1cmVTZXQgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICBsYXN0Rmlyc3RDb21wb25lbnQgPSBmaXJzdENvbXBvbmVudDsKKyAgICAgICAgfQorCisgICAgICAgIGxpZ2F0dXJlU2V0LmFkZEVsZW1lbnQobmV3IExpZ2F0dXJlRW50cnkobGlnLCBjb21wb25lbnRDaGFycywgY29tcG9uZW50Q291bnQpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkb25lKCkKKyAgICB7CisgICAgICAgIGlmIChsaWdhdHVyZVNldCAhPSBudWxsKSB7CisgICAgICAgICAgICBsaWdhdHVyZVNldHMuYWRkRWxlbWVudChsaWdhdHVyZVNldCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvdGVjdGVkIGludCBmaXJzdENvbXBvbmVudENoYXIoaW50IGxpZ2F0dXJlU2V0SW5kZXgpCisgICAgeworICAgICAgICBWZWN0b3IgbGlnYXR1cmVTZXQgPSAoVmVjdG9yKSBsaWdhdHVyZVNldHMuZWxlbWVudEF0KGxpZ2F0dXJlU2V0SW5kZXgpOworICAgICAgICBMaWdhdHVyZUVudHJ5IGZpcnN0RW50cnkgPSAoTGlnYXR1cmVFbnRyeSkgbGlnYXR1cmVTZXQuZWxlbWVudEF0KDApOworCisgICAgICAgIHJldHVybiBmaXJzdEVudHJ5LmdldENvbXBvbmVudENoYXIoMCk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGVDb3ZlcmFnZVRhYmxlKE9wZW5UeXBlVGFibGVXcml0ZXIgd3JpdGVyKQorICAgIHsKKyAgICAgICAgaW50IGxpZ2F0dXJlU2V0Q291bnQgPSBsaWdhdHVyZVNldHMuc2l6ZSgpOworCisgICAgICAgIHdyaXRlci53cml0ZURhdGEoMSk7CisgICAgICAgIHdyaXRlci53cml0ZURhdGEobGlnYXR1cmVTZXRDb3VudCk7CisKKyAgICAgICAgZm9yIChpbnQgc2V0ID0gMDsgc2V0IDwgbGlnYXR1cmVTZXRDb3VudDsgc2V0ICs9IDEpIHsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoZmlyc3RDb21wb25lbnRDaGFyKHNldCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlTG9va3VwU3VidGFibGUoT3BlblR5cGVUYWJsZVdyaXRlciB3cml0ZXIpCisgICAgeworICAgICAgICBpbnQgY292ZXJhZ2VPZmZzZXQsIGxpZ2F0dXJlU2V0T2Zmc2V0LCBsaWdhdHVyZVRhYmxlT2Zmc2V0OworICAgICAgICBpbnQgbGlnYXR1cmVTdWJzdGl0dXRpb25CYXNlID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIGludCBsaWdhdHVyZVNldENvdW50ID0gbGlnYXR1cmVTZXRzLnNpemUoKTsKKyAgICAgICAgCisgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nICIgKyB0YWJsZU5hbWUgKyAiLi4uIik7CisKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgxKTsgICAvLyBzdWJzdEZvcm1hdAorICAgICAgICAKKyAgICAgICAgY292ZXJhZ2VPZmZzZXQgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgwKTsgICAvLyBjb3ZlcmFnZVRhYmxlT2Zmc2V0ICh3aWxsIGZpeCBsYXRlcikKKyAgICAgICAgCisgICAgICAgIHdyaXRlci53cml0ZURhdGEobGlnYXR1cmVTZXRDb3VudCk7CisKKyAgICAgICAgbGlnYXR1cmVTZXRPZmZzZXQgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgZm9yIChpbnQgc2V0ID0gMDsgc2V0IDwgbGlnYXR1cmVTZXRDb3VudDsgc2V0ICs9IDEpIHsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoMCk7ICAvLyBsaWdhdHVyZVNldCBvZmZzZXQgLSB3aWxsIGZpeCBsYXRlcgorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzZXQgPSAwOyBzZXQgPCBsaWdhdHVyZVNldENvdW50OyBzZXQgKz0gMSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChVdGlsaXR5LmhleChmaXJzdENvbXBvbmVudENoYXIoc2V0KSwgNikgKyAiOiAiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVmVjdG9yIGxpZ2F0dXJlU2V0ID0gKFZlY3RvcikgbGlnYXR1cmVTZXRzLmVsZW1lbnRBdChzZXQpOworICAgICAgICAgICAgaW50IGxpZ2F0dXJlQ291bnQgPSBsaWdhdHVyZVNldC5zaXplKCk7CisgICAgICAgICAgICBpbnQgbGlnYXR1cmVTZXRBZGRyZXNzID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihsaWdhdHVyZUNvdW50ICsgIiBsaWdhdHVyZXMuIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdyaXRlci5maXhPZmZzZXQobGlnYXR1cmVTZXRPZmZzZXQrKywgbGlnYXR1cmVTdWJzdGl0dXRpb25CYXNlKTsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEobGlnYXR1cmVDb3VudCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxpZ2F0dXJlVGFibGVPZmZzZXQgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGxpZyA9IDA7IGxpZyA8IGxpZ2F0dXJlQ291bnQ7IGxpZyArPSAxKSB7CisgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgwKTsgIC8vIGxpZ2F0dXJlVGFibGVPZmZzZXQgKHdpbGwgZml4IGxhdGVyKQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBsaWcgPSAwOyBsaWcgPCBsaWdhdHVyZUNvdW50OyBsaWcgKz0gMSkgeworICAgICAgICAgICAgICAgIExpZ2F0dXJlRW50cnkgZW50cnkgPSAoTGlnYXR1cmVFbnRyeSkgbGlnYXR1cmVTZXQuZWxlbWVudEF0KGxpZyk7CisgICAgICAgICAgICAgICAgaW50IGNvbXBvbmVudENvdW50ID0gZW50cnkuZ2V0Q29tcG9uZW50Q291bnQoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB3cml0ZXIuZml4T2Zmc2V0KGxpZ2F0dXJlVGFibGVPZmZzZXQrKywgbGlnYXR1cmVTZXRBZGRyZXNzKTsKKyAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGVudHJ5LmdldExpZ2F0dXJlKCkpOworICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoY29tcG9uZW50Q291bnQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvciAoaW50IGNvbXAgPSAxOyBjb21wIDwgY29tcG9uZW50Q291bnQ7IGNvbXAgKz0gMSkgeworICAgICAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGVudHJ5LmdldENvbXBvbmVudENoYXIoY29tcCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd3JpdGVyLmZpeE9mZnNldChjb3ZlcmFnZU9mZnNldCwgbGlnYXR1cmVTdWJzdGl0dXRpb25CYXNlKTsgCisgICAgICAgIHdyaXRlQ292ZXJhZ2VUYWJsZSh3cml0ZXIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTG9va3VwLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xvb2t1cC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmY2EzMDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xvb2t1cC5qYXZhCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworCitwdWJsaWMgLyphYnN0cmFjdCovIGNsYXNzIExvb2t1cAoreworICAgIHByaXZhdGUgaW50IGxvb2t1cFR5cGU7CisgICAgcHJpdmF0ZSBpbnQgbG9va3VwRmxhZ3M7CisgICAgcHJpdmF0ZSBMb29rdXBTdWJ0YWJsZVtdIHN1YnRhYmxlczsKKyAgICBwcml2YXRlIGludCBzdWJ0YWJsZUNvdW50OworICAgIAorICAgIC8vIExvb2t1cCBmbGFncworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExGX1Jlc2VydmVkQml0ICAgICAgICAgID0gMHgwMDAxOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExGX0lnbm9yZUJhc2VHbHlwaHMgICAgID0gMHgwMDAyOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExGX0lnbm9yZUxpZ2F0dXJlcyAgICAgID0gMHgwMDA0OworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExGX0lnbm9yZU1hcmtzICAgICAgICAgID0gMHgwMDA4OworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExGX1Jlc2VydmVkTWFzayAgICAgICAgID0gMHgwMEYwOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExGX01hcmtBdHRhY2hUeXBlTWFzayAgID0gMHhGRjAwOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IExGX01hcmtBdHRhY2hUeXBlU2hpZnQgID0gODsKKyAgICAKKyAgICAvLyBHU1VCIGxvb2t1cCB0eXBlcworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEdTU1RfU2luZ2xlICAgICAgICAgID0gMTsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBHU1NUX011bHRpcGxlICAgICAgICA9IDI7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgR1NTVF9BbHRlcm5hdGUgICAgICAgPSAzOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEdTU1RfTGlnYXR1cmUgICAgICAgID0gNDsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBHU1NUX0NvbnRleHQgICAgICAgICA9IDU7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgR1NTVF9DaGFpbmluZ0NvbnRleHQgPSA2OworCisgICAgLy8gR1BPUyBsb29rdXAgdHlwZXMKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBHUFNUX1NpbmdsZSAgICAgICAgICA9IDE7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgR1BTVF9QYWlyICAgICAgICAgICAgPSAyOworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEdQU1RfQ3Vyc2l2ZSAgICAgICAgID0gMzsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBHUFNUX01hcmtUb0Jhc2UgICAgICA9IDQ7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgR1BTVF9NYXJrVG9MaWdhdHVyZSAgPSA1OworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEdQU1RfTWFya1RvTWFyayAgICAgID0gNjsKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBHUFNUX0NvbnRleHQgICAgICAgICA9IDc7CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgR1BTVF9DaGFpbmluZ0NvbnRleHQgPSA4OworICAgIAorICAgIHB1YmxpYyBMb29rdXAoaW50IHRoZUxvb2t1cFR5cGUsIGludCB0aGVMb29rdXBGbGFncykKKyAgICB7CisgICAgICAgIGxvb2t1cFR5cGUgPSB0aGVMb29rdXBUeXBlOworICAgICAgICBsb29rdXBGbGFncyA9IHRoZUxvb2t1cEZsYWdzOworICAgICAgICAKKyAgICAgICAgc3VidGFibGVzID0gbmV3IExvb2t1cFN1YnRhYmxlWzEwXTsKKyAgICAgICAgc3VidGFibGVDb3VudCA9IDA7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGFkZFN1YnRhYmxlKExvb2t1cFN1YnRhYmxlIHN1YnRhYmxlKQorICAgIHsKKyAgICAgICAgaWYgKHN1YnRhYmxlQ291bnQgPj0gc3VidGFibGVzLmxlbmd0aCkgeworICAgICAgICAgICAgTG9va3VwU3VidGFibGVbXSBuZXdTdWJ0YWJsZXMgPSBuZXcgTG9va3VwU3VidGFibGVbc3VidGFibGVzLmxlbmd0aCArIDVdOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHN1YnRhYmxlcywgMCwgbmV3U3VidGFibGVzLCAwLCBzdWJ0YWJsZXMubGVuZ3RoKTsKKyAgICAgICAgICAgIHN1YnRhYmxlcyA9IG5ld1N1YnRhYmxlczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3VidGFibGVzW3N1YnRhYmxlQ291bnRdID0gc3VidGFibGU7CisgICAgICAgIHN1YnRhYmxlQ291bnQgKz0gMTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVMb29rdXAoT3BlblR5cGVUYWJsZVdyaXRlciB3cml0ZXIpCisgICAgeworICAgICAgICBpbnQgbG9va3VwQmFzZSA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICAKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YShsb29rdXBUeXBlKTsKKyAgICAgICAgd3JpdGVyLndyaXRlRGF0YShsb29rdXBGbGFncyk7CisgICAgICAgIHdyaXRlci53cml0ZURhdGEoc3VidGFibGVDb3VudCk7CisgICAgICAgIAorICAgICAgICBpbnQgc3VidGFibGVPZmZzZXQgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3VidGFibGVDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN1YnRhYmxlQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgd3JpdGVyLmZpeE9mZnNldChzdWJ0YWJsZU9mZnNldCsrLCBsb29rdXBCYXNlKTsKKyAgICAgICAgICAgIHN1YnRhYmxlc1tpXS53cml0ZUxvb2t1cFN1YnRhYmxlKHdyaXRlcik7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9Mb29rdXBMaXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L0xvb2t1cExpc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGU1NzExCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9Mb29rdXBMaXN0LmphdmEKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitwdWJsaWMgY2xhc3MgTG9va3VwTGlzdAoreworICAgIHByaXZhdGUgTG9va3VwW10gbG9va3VwczsKKyAgICBwcml2YXRlIGludCBsb29rdXBDb3VudDsKKyAgICAKKyAgICBwdWJsaWMgTG9va3VwTGlzdCgpCisgICAgeworICAgICAgICBsb29rdXBzID0gbmV3IExvb2t1cFsxMF07CisgICAgICAgIGxvb2t1cENvdW50ID0gMDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBhZGRMb29rdXAoTG9va3VwIGxvb2t1cCkKKyAgICB7CisgICAgICAgIGlmIChsb29rdXBDb3VudCA+PSBsb29rdXBzLmxlbmd0aCkgeworICAgICAgICAgICAgTG9va3VwW10gbmV3TG9va3VwcyA9IG5ldyBMb29rdXBbbG9va3Vwcy5sZW5ndGggKyA1XTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsb29rdXBzLCAwLCBuZXdMb29rdXBzLCAwLCBsb29rdXBzLmxlbmd0aCk7CisgICAgICAgICAgICBsb29rdXBzID0gbmV3TG9va3VwczsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbG9va3Vwc1tsb29rdXBDb3VudF0gPSBsb29rdXA7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbG9va3VwQ291bnQrKzsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVMb29rdXBMaXN0KE9wZW5UeXBlVGFibGVXcml0ZXIgd3JpdGVyKQorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ3cml0aW5nIGxvb2t1cCBsaXN0Li4uIik7CisgICAgICAgIAorICAgICAgICBpbnQgbG9va3VwTGlzdEJhc2UgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlci53cml0ZURhdGEobG9va3VwQ291bnQpOworICAgICAgICAKKyAgICAgICAgaW50IGxvb2t1cE9mZnNldCA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb29rdXBDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDApOyAvLyBPZmZzZXQgdG8gbG9va3VwIChmaXhlZCBsYXRlcik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9va3VwQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgd3JpdGVyLmZpeE9mZnNldChsb29rdXBPZmZzZXQrKywgbG9va3VwTGlzdEJhc2UpOworICAgICAgICAgICAgbG9va3Vwc1tpXS53cml0ZUxvb2t1cCh3cml0ZXIpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTG9va3VwU3VidGFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTG9va3VwU3VidGFibGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYWIwMTQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9Mb29rdXBTdWJ0YWJsZS5qYXZhCkBAIC0wLDAgKzEsMTYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworcHVibGljIGludGVyZmFjZSBMb29rdXBTdWJ0YWJsZQoreworICAgIHZvaWQgd3JpdGVMb29rdXBTdWJ0YWJsZShPcGVuVHlwZVRhYmxlV3JpdGVyIHdyaXRlcik7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9Nb2R1bGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTW9kdWxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzY0ZWIwNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvTW9kdWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgamF2YS5pby5QcmludFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdDsKKworcHVibGljIGNsYXNzIE1vZHVsZVdyaXRlcgoreworICAgIHB1YmxpYyBNb2R1bGVXcml0ZXIoKQorICAgIHsKKyAgICAgICAgd3JvdGVEZWZpbmUgPSBmYWxzZTsKKyAgICAgICAgb3V0cHV0ID0gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBvcGVuRmlsZShTdHJpbmcgb3V0cHV0RmlsZU5hbWUpIHsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIG91dHB1dCA9IG5ldyBQcmludFN0cmVhbSgKKyAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRwdXRGaWxlTmFtZSkpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj8gQ291bGQgbm90IG9wZW4gIiArIG91dHB1dEZpbGVOYW1lICsgIiBmb3Igd3JpdGluZy4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIAorICAgICAgICB3cm90ZURlZmluZSA9IGZhbHNlOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmcgbW9kdWxlICIgKyBvdXRwdXRGaWxlTmFtZSArICIuLi4iKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUhlYWRlcihTdHJpbmcgZGVmaW5lLCBTdHJpbmdbXSBpbmNsdWRlRmlsZXMpCisgICAgeworICAgICAgICB3cml0ZUhlYWRlcihkZWZpbmUsIGluY2x1ZGVGaWxlcywgbnVsbCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlSGVhZGVyKFN0cmluZyBkZWZpbmUsIFN0cmluZ1tdIGluY2x1ZGVGaWxlcywgU3RyaW5nIGJyaWVmKQorICAgIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtYXQgPSBuZXcgTWVzc2FnZUZvcm1hdChtb2R1bGVIZWFkZXIpOworICAgICAgICBPYmplY3QgYXJnc1tdID0ge25ldyBEYXRlKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpKX07CisKKyAgICAgICAgb3V0cHV0LnByaW50KGZvcm1hdC5mb3JtYXQoYXJncykpOworICAgICAgICAKKyAgICAgICAgaWYgKGRlZmluZSAhPSBudWxsKSB7CisgICAgICAgICAgICB3cm90ZURlZmluZSA9IHRydWU7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiNpZm5kZWYgIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbihkZWZpbmUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiNkZWZpbmUgIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbihkZWZpbmUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoaW5jbHVkZUZpbGVzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5jbHVkZUZpbGVzLmxlbmd0aDsgaSArPSAxKSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCIjaW5jbHVkZSBcIiIpOworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludChpbmNsdWRlRmlsZXNbaV0pOworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludGxuKCJcIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoYnJpZWYgIT0gbnVsbCkgeworICAgICAgICAgICAgb3V0cHV0LnByaW50KGJyaWVmKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4obW9kdWxlQmVnaW4pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlVHJhaWxlcigpIHsKKyAgICAgICAgb3V0cHV0LnByaW50KG1vZHVsZVRyYWlsZXIpOworICAgICAgICAKKyAgICAgICAgaWYgKHdyb3RlRGVmaW5lKSB7CisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbigiI2VuZGlmIik7CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNsb3NlRmlsZSgpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEb25lLiIpOworICAgICAgICBvdXRwdXQuY2xvc2UoKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiB3cm90ZURlZmluZTsKKyAgICAKKyAgICBwcm90ZWN0ZWQgUHJpbnRTdHJlYW0gb3V0cHV0OworCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBTdHJpbmcgbW9kdWxlSGVhZGVyID0KKyAgICAgICAgIi8qXG4iICsKKyAgICAgICAgIiAqXG4iICsKKyAgICAgICAgIiAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtezAsZGF0ZSx5eXl5fS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiIgKworICAgICAgICAiICpcbiIgKworICAgICAgICAiICogV0FSTklORzogVEhJUyBGSUxFIElTIE1BQ0hJTkUgR0VORVJBVEVELiBETyBOT1QgSEFORCBFRElUIElUIFVOTEVTU1xuIiArCisgICAgICAgICIgKiBZT1UgUkVBTExZIEtOT1cgV0hBVCBZT1UnJ1JFIERPSU5HLlxuIiArCisgICAgICAgICIgKlxuIiArCisgICAgICAgICIgKiBHZW5lcmF0ZWQgb246IHswLGRhdGUsTU0vZGQveXl5eSBoaDptbTpzcyBhIHp9XG4iICsKKyAgICAgICAgIiAqL1xuIiArCisgICAgICAgICJcbiI7CisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIFN0cmluZyBtb2R1bGVCZWdpbiA9ICJVX05BTUVTUEFDRV9CRUdJTlxuIjsKKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgU3RyaW5nIG1vZHVsZVRyYWlsZXIgPSAiVV9OQU1FU1BBQ0VfRU5EXG4iOworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L09wZW5UeXBlVGFibGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvT3BlblR5cGVUYWJsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExNmQ4MzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L09wZW5UeXBlVGFibGVXcml0ZXIuamF2YQpAQCAtMCwwICsxLDEyOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCisKK2ltcG9ydCBqYXZhLmlvLlByaW50U3RyZWFtOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCithYnN0cmFjdCBjbGFzcyBPcGVuVHlwZVRhYmxlV3JpdGVyCit7CisgICAgc3RhdGljIGNsYXNzIE9wZW5UeXBlVGFibGVEdW1wZXIKKyAgICB7CisgICAgICAgIHByaXZhdGUgc2hvcnRbXSB0YWJsZTsKKyAgICAgICAgcHJpdmF0ZSBpbnQgdGFibGVMZW5ndGg7CisgICAgICAgIAorICAgICAgICBPcGVuVHlwZVRhYmxlRHVtcGVyKHNob3J0W10gZGF0YSwgaW50IG91dHB1dEluZGV4KQorICAgICAgICB7CisgICAgICAgICAgICB0YWJsZSA9IGRhdGE7CisgICAgICAgICAgICB0YWJsZUxlbmd0aCA9IG91dHB1dEluZGV4OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgbGVuZ3RoKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRhYmxlTGVuZ3RoOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2b2lkIGFwcGVuZFZhbHVlKFN0cmluZ0J1ZmZlciBsaW5lLCBpbnQgaW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNob3J0IHZhbHVlID0gdGFibGVbaW5kZXhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBsaW5lLmFwcGVuZCgiMHgiKTsKKyAgICAgICAgICAgIGxpbmUuYXBwZW5kKFV0aWxpdHkuaGV4KCh2YWx1ZSA+PiA4KSAmIDB4RkYsIDIpKTsKKyAgICAgICAgICAgIGxpbmUuYXBwZW5kKCIsICIpOworCisgICAgICAgICAgICBsaW5lLmFwcGVuZCgiMHgiKTsKKyAgICAgICAgICAgIGxpbmUuYXBwZW5kKFV0aWxpdHkuaGV4KHZhbHVlICYgMHhGRiwgMikpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkdW1wVGFibGUoUHJpbnRTdHJlYW0gb3V0cHV0LCBpbnQgdmFsdWVzUGVyTGluZSkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGxpbmUgPSBuZXcgU3RyaW5nQnVmZmVyKCIgICAgIik7IC8vIGZvdXIgc3BhY2VzCisgICAgICAgICAgICBpbnQgbWF4SW5kZXggPSBsZW5ndGgoKTsKKyAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1heEluZGV4OyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoaSA+IDAgJiYgaSAlIHZhbHVlc1BlckxpbmUgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQucHJpbnRsbihsaW5lLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBsaW5lLnNldExlbmd0aCg0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgICAgIGFwcGVuZFZhbHVlKGxpbmUsIGkpOworICAgICAgICAgICAgICAgIGxpbmUuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGxpbmUuc2V0TGVuZ3RoKGxpbmUubGVuZ3RoKCkgLSAyKTsKKyAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbihsaW5lLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgICAgICAgICAgCisgICAgcHJvdGVjdGVkIHNob3J0W10gZGF0YTsKKyAgICBwcm90ZWN0ZWQgaW50IG91dHB1dEluZGV4OworCisgICAgcHVibGljIE9wZW5UeXBlVGFibGVXcml0ZXIoaW50IGluaXRpYWxCdWZmZXJTaXplKQorICAgIHsKKyAgICAgICAgZGF0YSA9IG5ldyBzaG9ydFtpbml0aWFsQnVmZmVyU2l6ZV07CisgICAgICAgIG91dHB1dEluZGV4ID0gMDsKKyAgICB9CisgICAgCisgICAgcHVibGljIE9wZW5UeXBlVGFibGVXcml0ZXIoKQorICAgIHsKKyAgICAgICAgdGhpcygxMDI0KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRPdXRwdXRJbmRleCgpCisgICAgeworICAgICAgICByZXR1cm4gb3V0cHV0SW5kZXg7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlRGF0YShpbnQgdmFsdWUpCisgICAgeworICAgICAgICBpZiAob3V0cHV0SW5kZXggPj0gZGF0YS5sZW5ndGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNob3J0W10gbmV3RGF0YSA9IG5ldyBzaG9ydFtkYXRhLmxlbmd0aCArIDUxMl07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZGF0YSwgMCwgbmV3RGF0YSwgMCwgZGF0YS5sZW5ndGgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBkYXRhID0gbmV3RGF0YTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZGF0YVtvdXRwdXRJbmRleF0gPSAoc2hvcnQpIHZhbHVlOworICAgICAgICBvdXRwdXRJbmRleCArPSAxOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVRhZyhTdHJpbmcgdGFnKQorICAgIHsKKyAgICAgICAgY2hhcltdIGNoYXJBcnJheSA9IHsnXDAnLCAnXDAnLCAnXDAnLCAnXDAnfTsKKyAgICAgICAgaW50IG1heCA9IE1hdGgubWluKHRhZy5sZW5ndGgoKSwgNCk7CisgICAgICAgIAorICAgICAgICB0YWcuZ2V0Q2hhcnMoMCwgbWF4LCBjaGFyQXJyYXksIDApOworICAgICAgICAKKyAgICAgICAgd3JpdGVEYXRhKCgoY2hhckFycmF5WzBdICYgMHhGRikgPDwgOCkgKyAoY2hhckFycmF5WzFdICYgMHhGRikpOworICAgICAgICB3cml0ZURhdGEoKChjaGFyQXJyYXlbMl0gJiAweEZGKSA8PCA4KSArIChjaGFyQXJyYXlbM10gJiAweEZGKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGZpeE9mZnNldChpbnQgb2Zmc2V0LCBpbnQgYmFzZSkKKyAgICB7CisgICAgICAgIC8vICogMiB0byBjb252ZXJ0IGZyb20gc2hvcnQgdG8gYnl0ZSBpbmRleAorICAgICAgICBkYXRhW29mZnNldF0gPSAoc2hvcnQpICgob3V0cHV0SW5kZXggLSBiYXNlKSAqIDIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBkdW1wVGFibGUoUHJpbnRTdHJlYW0gb3V0cHV0LCBpbnQgdmFsdWVzUGVyTGluZSkKKyAgICB7CisgICAgICAgIE9wZW5UeXBlVGFibGVEdW1wZXIgZHVtcGVyID0gbmV3IE9wZW5UeXBlVGFibGVEdW1wZXIoZGF0YSwgb3V0cHV0SW5kZXgpOworICAgICAgICAKKyAgICAgICAgZHVtcGVyLmR1bXBUYWJsZShvdXRwdXQsIHZhbHVlc1BlckxpbmUpOworICAgIH0KKyAgICAKKyAgICBhYnN0cmFjdCBwdWJsaWMgdm9pZCB3cml0ZVRhYmxlKFByaW50U3RyZWFtIG91dHB1dCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L09wZW5UeXBlVGFnQnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9PcGVuVHlwZVRhZ0J1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2UxMTFhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9PcGVuVHlwZVRhZ0J1aWxkZXIuamF2YQpAQCAtMCwwICsxLDIzNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCisvKioKKyAqIEBhdXRob3IgZW1hZGVyCisgKgorICovCitwdWJsaWMgY2xhc3MgT3BlblR5cGVUYWdCdWlsZGVyCit7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gdGFibGVUYWdzID0geworICAgICAgICAiYWNudCIsCisgICAgICAgICJhdmFyIiwKKyAgICAgICAgIkJBU0UiLAorICAgICAgICAiYmRhdCIsCisgICAgICAgICJiaGVkIiwKKyAgICAgICAgImJsb2MiLAorICAgICAgICAiYnNsbiIsCisgICAgICAgICJDRkYgIiwKKyAgICAgICAgImNtYXAiLAorICAgICAgICAiY3ZhciIsCisgICAgICAgICJjdnQgIiwKKyAgICAgICAgIkRTSUciLAorICAgICAgICAiRUJEVCIsCisgICAgICAgICJFQkxDIiwKKyAgICAgICAgIkVCU0MiLAorICAgICAgICAiZmRzYyIsCisgICAgICAgICJmZWF0IiwKKyAgICAgICAgImZtdHgiLAorICAgICAgICAiZnBnbSIsCisgICAgICAgICJmdmFyIiwKKyAgICAgICAgImdhc3AiLAorICAgICAgICAiR0RFRiIsCisgICAgICAgICJnbHlmIiwKKyAgICAgICAgIkdQT1MiLAorICAgICAgICAiR1NVQiIsCisgICAgICAgICJndmFyIiwKKyAgICAgICAgImhkbXgiLAorICAgICAgICAiaGVhZCIsCisgICAgICAgICJoaGVhIiwKKyAgICAgICAgImhtdHgiLAorICAgICAgICAiaHN0eSIsCisgICAgICAgICJqdXN0IiwKKyAgICAgICAgIkpTVEYiLAorICAgICAgICAia2VybiIsCisgICAgICAgICJsY2FyIiwKKyAgICAgICAgImxvY2EiLAorICAgICAgICAiTFRTSCIsCisgICAgICAgICJtYXhwIiwKKyAgICAgICAgIm1vcnQiLAorICAgICAgICAibW9yeCIsCisgICAgICAgICJuYW1lIiwKKyAgICAgICAgIm9wYmQiLAorICAgICAgICAiT1MvMiIsCisgICAgICAgICJQQ0xUIiwKKyAgICAgICAgInBvc3QiLAorICAgICAgICAicHJlcCIsCisgICAgICAgICJwcm9wIiwKKyAgICAgICAgInRyYWsiLAorICAgICAgICAiVkRNWCIsCisgICAgICAgICJ2aGVhIiwKKyAgICAgICAgInZtdHgiLAorICAgICAgICAiVk9SRyIsCisgICAgICAgICJaYXBmIgorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBmZWF0dXJlVGFncyA9IHsKKyAgICAgICAgImFhbHQiLAorICAgICAgICAiYWJ2ZiIsCisgICAgICAgICJhYnZtIiwKKyAgICAgICAgImFidnMiLAorICAgICAgICAiYWZyYyIsCisgICAgICAgICJha2huIiwKKyAgICAgICAgImJsd2YiLAorICAgICAgICAiYmx3bSIsCisgICAgICAgICJibHdzIiwKKyAgICAgICAgImNhbHQiLAorICAgICAgICAiY2FzZSIsCisgICAgICAgICJjY21wIiwKKyAgICAgICAgImNsaWciLAorICAgICAgICAiY3BzcCIsCisgICAgICAgICJjc3doIiwKKyAgICAgICAgImN1cnMiLAorICAgICAgICAiYzJzYyIsCisgICAgICAgICJjMnBjIiwKKyAgICAgICAgImRpc3QiLAorICAgICAgICAiZGxpZyIsCisgICAgICAgICJkbm9tIiwKKyAgICAgICAgImV4cHQiLAorICAgICAgICAiZmFsdCIsCisgICAgICAgICJmaW4yIiwKKyAgICAgICAgImZpbjMiLAorICAgICAgICAiZmluYSIsCisgICAgICAgICJmcmFjIiwKKyAgICAgICAgImZ3aWQiLAorICAgICAgICAiaGFsZiIsCisgICAgICAgICJoYWxuIiwKKyAgICAgICAgImhhbHQiLAorICAgICAgICAiaGlzdCIsCisgICAgICAgICJoa25hIiwKKyAgICAgICAgImhsaWciLAorICAgICAgICAiaG5nbCIsCisgICAgICAgICJod2lkIiwKKyAgICAgICAgImluaXQiLAorICAgICAgICAiaXNvbCIsCisgICAgICAgICJpdGFsIiwKKyAgICAgICAgImphbHQiLAorICAgICAgICAianA3OCIsCisgICAgICAgICJqcDgzIiwKKyAgICAgICAgImpwOTAiLAorICAgICAgICAia2VybiIsCisgICAgICAgICJsZmJkIiwKKyAgICAgICAgImxpZ2EiLAorICAgICAgICAibGptbyIsCisgICAgICAgICJsbnVtIiwKKyAgICAgICAgImxvY2wiLAorICAgICAgICAibWFyayIsCisgICAgICAgICJtZWQyIiwKKyAgICAgICAgIm1lZGkiLAorICAgICAgICAibWdyayIsCisgICAgICAgICJta21rIiwKKyAgICAgICAgIm1zZXQiLAorICAgICAgICAibmFsdCIsCisgICAgICAgICJubGNrIiwKKyAgICAgICAgIm51a3QiLAorICAgICAgICAibnVtciIsCisgICAgICAgICJvbnVtIiwKKyAgICAgICAgIm9wYmQiLAorICAgICAgICAib3JkbiIsCisgICAgICAgICJvcm5tIiwKKyAgICAgICAgInBhbHQiLAorICAgICAgICAicGNhcCIsCisgICAgICAgICJwbnVtIiwKKyAgICAgICAgInByZWYiLAorICAgICAgICAicHJlcyIsCisgICAgICAgICJwc3RmIiwKKyAgICAgICAgInBzdHMiLAorICAgICAgICAicHdpZCIsCisgICAgICAgICJxd2lkIiwKKyAgICAgICAgInJhbmQiLAorICAgICAgICAicmxpZyIsCisgICAgICAgICJycGhmIiwKKyAgICAgICAgInJ0YmQiLAorICAgICAgICAicnRsYSIsCisgICAgICAgICJydWJ5IiwKKyAgICAgICAgInNhbHQiLAorICAgICAgICAic2luZiIsCisgICAgICAgICJzaXplIiwKKyAgICAgICAgInNtY3AiLAorICAgICAgICAic21wbCIsCisgICAgICAgICJzczAxIiwKKyAgICAgICAgInNzMDIiLAorICAgICAgICAic3MwMyIsCisgICAgICAgICJzczA0IiwKKyAgICAgICAgInNzMDUiLAorICAgICAgICAic3MwNiIsCisgICAgICAgICJzczA3IiwKKyAgICAgICAgInNzMDgiLAorICAgICAgICAic3MwOSIsCisgICAgICAgICJzczEwIiwKKyAgICAgICAgInNzMTEiLAorICAgICAgICAic3MxMiIsCisgICAgICAgICJzczEzIiwKKyAgICAgICAgInNzMTQiLAorICAgICAgICAic3MxNSIsCisgICAgICAgICJzczE2IiwKKyAgICAgICAgInNzMTciLAorICAgICAgICAic3MxOCIsCisgICAgICAgICJzczE5IiwKKyAgICAgICAgInNzMjAiLAorICAgICAgICAic3VicyIsCisgICAgICAgICJzdXBzIiwKKyAgICAgICAgInN3c2giLAorICAgICAgICAidGl0bCIsCisgICAgICAgICJ0am1vIiwKKyAgICAgICAgInRuYW0iLAorICAgICAgICAidG51bSIsCisgICAgICAgICJ0cmFkIiwKKyAgICAgICAgInR3aWQiLAorICAgICAgICAidW5pYyIsCisgICAgICAgICJ2YWx0IiwKKyAgICAgICAgInZhdHUiLAorICAgICAgICAidmVydCIsCisgICAgICAgICJ2aGFsIiwKKyAgICAgICAgInZqbW8iLAorICAgICAgICAidmtuYSIsCisgICAgICAgICJ2a3JuIiwKKyAgICAgICAgInZwYWwiLAorICAgICAgICAidnJ0MiIsCisgICAgICAgICJ6ZXJvIgorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHRhZ0xhYmVsKFN0cmluZyB0YWcpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmcgdXBwZXJUYWcgPSB0YWcudG9VcHBlckNhc2UoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdXBwZXJUYWcubGVuZ3RoKCk7IGkgKz0gMSkgeworICAgICAgICAgICAgY2hhciBjaCA9IHVwcGVyVGFnLmNoYXJBdChpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKChjaCA8ICdBJyB8fCBjaCA+ICdaJykgJiYgKGNoIDwgJzAnIHx8IGNoID4gJzknKSkgeworICAgICAgICAgICAgICAgIGNoID0gJ18nOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGR1bXBUYWdzKFN0cmluZyBlbnVtTmFtZSwgU3RyaW5nW10gdGFncykKKyAgICB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZW51bSBMRSIgKyBlbnVtTmFtZSArICJUYWdzIHsiKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFncy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgU3RyaW5nIHRhZyA9IHRhZ3NbaV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICAgIExFXyIgKyB0YWdMYWJlbCh0YWcpICsgIl8iICsgZW51bU5hbWUudG9VcHBlckNhc2UoKSArCisgICAgICAgICAgICAgICAgIl9UQUcgPSAiICsgVGFnVXRpbGl0aWVzLm1ha2VUYWcodGFnKSArICJVTCIgKworICAgICAgICAgICAgICAgIChpID09IHRhZ3MubGVuZ3RoIC0gMT8gIiAiIDogIiwiKSArICIgLyogJyIgKyB0YWcgKyAiJyAqLyIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIn07Iik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgICAgeworICAgICAgICBkdW1wVGFncygiVGFibGUiLCB0YWJsZVRhZ3MpOworICAgICAgICBkdW1wVGFncygiRmVhdHVyZSIsIGZlYXR1cmVUYWdzKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdERhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0RGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzMDBlMmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdERhdGEuamF2YQpAQCAtMCwwICsxLDE5NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgamF2YS51dGlsLio7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VU2NyaXB0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKK3B1YmxpYyBjbGFzcyBTY3JpcHREYXRhIGV4dGVuZHMgVGFnVmFsdWVEYXRhCit7CisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBSZWNvcmQKKyAgICB7CisgICAgICAgIHByaXZhdGUgaW50IHN0YXJ0Q2hhcjsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZW5kQ2hhcjsKKyAgICAgICAgcHJpdmF0ZSBpbnQgc2NyaXB0Q29kZTsKKyAgICAgICAgCisgICAgICAgIFJlY29yZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIG5vdGhpbmc/CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFJlY29yZChpbnQgdGhlQ2hhciwgaW50IHRoZVNjcmlwdENvZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXModGhlQ2hhciwgdGhlQ2hhciwgdGhlU2NyaXB0Q29kZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFJlY29yZChpbnQgdGhlU3RhcnRDaGFyLCBpbnQgdGhlRW5kQ2hhciwgaW50IHRoZVNjcmlwdENvZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0YXJ0Q2hhciA9IHRoZVN0YXJ0Q2hhcjsKKyAgICAgICAgICAgIGVuZENoYXIgPSB0aGVFbmRDaGFyOworICAgICAgICAgICAgc2NyaXB0Q29kZSA9IHRoZVNjcmlwdENvZGU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgc3RhcnRDaGFyKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHN0YXJ0Q2hhcjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBlbmRDaGFyKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGVuZENoYXI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgc2NyaXB0Q29kZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBzY3JpcHRDb2RlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhSZWNvcmQgdGhhdCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRDaGFyIC0gdGhhdC5zdGFydENoYXI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gIlsiICsgIFV0aWxpdHkuaGV4KHN0YXJ0Q2hhciwgNikgKyAiLi4iICsKKyAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmhleChlbmRDaGFyLCA2KSArICIsICIgKworICAgICAgICAgICAgICAgICAgIFVTY3JpcHQuZ2V0U2hvcnROYW1lKHNjcmlwdENvZGUpLnRvTG93ZXJDYXNlKCkgKyAiU2NyaXB0Q29kZV0iOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vCisgICAgLy8gU3RyYWlnaHQgaW5zZXJ0aW9uIHNvcnQgZnJvbSBLbnV0aCB2b2wuIElJSSwgcGcuIDgxCisgICAgLy8KKyAgICBwcml2YXRlIHZvaWQgc29ydCgpCisgICAgeworICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8IGZSZWNvcmRzLmxlbmd0aDsgaiArPSAxKSB7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIFJlY29yZCB2ID0gZlJlY29yZHNbal07CisKKyAgICAgICAgICAgIGZvciAoaSA9IGogLSAxOyBpID49IDA7IGkgLT0gMSkgeworICAgICAgICAgICAgICAgIGlmICh2LmNvbXBhcmVUbyhmUmVjb3Jkc1tpXSkgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmUmVjb3Jkc1tpICsgMV0gPSBmUmVjb3Jkc1tpXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZlJlY29yZHNbaSArIDFdID0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIFNjcmlwdERhdGEoKQorICAgIHsKKyAgICAgICAgaW50IGNvbW1vblNjcmlwdCA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0oVVByb3BlcnR5LlNDUklQVCwgIkNPTU1PTiIpOworICAgICAgICBpbnQgc2NyaXB0Q291bnQ7CisgICAgICAgIFZlY3RvciBydiA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgCisgICAgICAgIGZNaW5TY3JpcHQgID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKFVQcm9wZXJ0eS5TQ1JJUFQpOworICAgICAgICBmTWF4U2NyaXB0ICA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShVUHJvcGVydHkuU0NSSVBUKTsKKyAgICAgICAgc2NyaXB0Q291bnQgPSBmTWF4U2NyaXB0IC0gZk1pblNjcmlwdCArIDE7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbGxlY3Rpbmcgc2NyaXB0IGRhdGEgZm9yICIgKyBzY3JpcHRDb3VudCArICIgc2NyaXB0cy4uLiIpOworICAgICAgICAKKyAgICAgICAgZlNjcmlwdE5hbWVzID0gbmV3IFN0cmluZ1tzY3JpcHRDb3VudF07CisgICAgICAgIGZTY3JpcHRUYWdzICA9IG5ldyBTdHJpbmdbc2NyaXB0Q291bnRdOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NyaXB0ID0gZk1pblNjcmlwdDsgc2NyaXB0IDw9IGZNYXhTY3JpcHQ7IHNjcmlwdCArPSAxKSB7CisgICAgICAgICAgICBmU2NyaXB0TmFtZXNbc2NyaXB0IC0gZk1pblNjcmlwdF0gPSBVU2NyaXB0LmdldE5hbWUoc2NyaXB0KS50b1VwcGVyQ2FzZSgpOworICAgICAgICAgICAgZlNjcmlwdFRhZ3Nbc2NyaXB0IC0gZk1pblNjcmlwdF0gID0gVVNjcmlwdC5nZXRTaG9ydE5hbWUoc2NyaXB0KS50b0xvd2VyQ2FzZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc2NyaXB0ICE9IGNvbW1vblNjcmlwdCkgeworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgc2NyaXB0U2V0ICA9IG5ldyBVbmljb2RlU2V0KCJcXHB7IiArIGZTY3JpcHRUYWdzW3NjcmlwdF0gKyAifSIpOworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Ioc2NyaXB0U2V0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlIChpdC5uZXh0UmFuZ2UoKSkgeworICAgICAgICAgICAgICAgICAgICBSZWNvcmQgcmVjb3JkID0gbmV3IFJlY29yZChpdC5jb2RlcG9pbnQsIGl0LmNvZGVwb2ludEVuZCwgc2NyaXB0KTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHJ2LmFkZEVsZW1lbnQocmVjb3JkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZSZWNvcmRzID0gbmV3IFJlY29yZFtydi5zaXplKCldOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydi5zaXplKCk7IGkgKz0gMSkgeworICAgICAgICAgICAgZlJlY29yZHNbaV0gPSAoUmVjb3JkKSBydi5lbGVtZW50QXQoaSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29sbGVjdGVkICIgKyBydi5zaXplKCkgKyAiIHJlY29yZHMuIFNvcnRpbmcuLi4iKTsKKyAgICAgICAgc29ydCgpOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEb25lLiIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldE1pblZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmTWluU2NyaXB0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldE1heFZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmTWF4U2NyaXB0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgaW50IGdldFJlY29yZENvdW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBmUmVjb3Jkcy5sZW5ndGg7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGFnKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA+PSBmTWluU2NyaXB0ICYmIHZhbHVlIDw9IGZNYXhTY3JpcHQpIHsKKyAgICAgICAgICAgIHJldHVybiBmU2NyaXB0VGFnc1t2YWx1ZSAtIGZNaW5TY3JpcHRdOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gInp5eXgiOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRhZ0xhYmVsKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRUYWcodmFsdWUpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIG1ha2VUYWcoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlID49IGZNaW5TY3JpcHQgJiYgdmFsdWUgPD0gZk1heFNjcmlwdCkgeworICAgICAgICAgICAgcmV0dXJuIFRhZ1V0aWxpdGllcy5tYWtlVGFnKGZTY3JpcHRUYWdzW3ZhbHVlIC0gZk1pblNjcmlwdF0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuICIweDAwMDAwMDAwIjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHZhbHVlID49IGZNaW5TY3JpcHQgJiYgdmFsdWUgPD0gZk1heFNjcmlwdCkgeworICAgICAgICAgICAgcmV0dXJuIGZTY3JpcHROYW1lc1t2YWx1ZSAtIGZNaW5TY3JpcHRdOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gIkNPTU1PTiI7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBSZWNvcmQgZ2V0UmVjb3JkKGludCBpbmRleCkKKyAgICB7CisgICAgICAgIGlmIChmUmVjb3JkcyAhPSBudWxsICYmIGluZGV4IDwgZlJlY29yZHMubGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gZlJlY29yZHNbaW5kZXhdOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgZk1pblNjcmlwdDsKKyAgICBwcml2YXRlIGludCBmTWF4U2NyaXB0OworICAgIHByaXZhdGUgU3RyaW5nIGZTY3JpcHROYW1lc1tdOworICAgIHByaXZhdGUgU3RyaW5nIGZTY3JpcHRUYWdzW107CisgICAgcHJpdmF0ZSBSZWNvcmQgZlJlY29yZHNbXTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0SURNb2R1bGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0SURNb2R1bGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTg5MGZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRJRE1vZHVsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMTM3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworCitwdWJsaWMgY2xhc3MgU2NyaXB0SURNb2R1bGVXcml0ZXIgZXh0ZW5kcyBTY3JpcHRNb2R1bGVXcml0ZXIKK3sKKyAgICBwdWJsaWMgU2NyaXB0SURNb2R1bGVXcml0ZXIoU2NyaXB0RGF0YSBzY3JpcHREYXRhLCBMYW5ndWFnZURhdGEgbGFuZ3VhZ2VEYXRhKQorICAgIHsKKyAgICAgICAgc3VwZXIoc2NyaXB0RGF0YSwgbGFuZ3VhZ2VEYXRhKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZVNjcmlwdEhlYWRlcihTdHJpbmcgZmlsZU5hbWUpCisgICAgeworICAgICAgICBpbnQgbWluU2NyaXB0ID0gc2NyaXB0RGF0YS5nZXRNaW5WYWx1ZSgpOworICAgICAgICBpbnQgbWF4U2NyaXB0ID0gc2NyaXB0RGF0YS5nZXRNYXhWYWx1ZSgpOworICAgICAgICBpbnQgdmVyTWFqb3IgID0gVmVyc2lvbkluZm8uSUNVX1ZFUlNJT04uZ2V0TWFqb3IoKTsKKyAgICAgICAgaW50IHZlck1pbm9yICA9IFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmdldE1pbm9yKCk7CisgICAgICAgIAorICAgICAgICBvcGVuRmlsZShmaWxlTmFtZSk7CisgICAgICAgIHdyaXRlSGVhZGVyKCJfX0xFU0NSSVBUU19IIiwgaW5jbHVkZUZpbGVzLCBzY3JpcHRCcmllZik7CisKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtYXQgPSBuZXcgTWVzc2FnZUZvcm1hdChzY3JpcHRQcmVhbWJsZSk7CisgICAgICAgIE9iamVjdCBhcmdzW10gPSB7bmV3IEludGVnZXIodmVyTWFqb3IpLCBuZXcgSW50ZWdlcih2ZXJNaW5vcil9OworCisgICAgICAgIG91dHB1dC5wcmludGxuKGZvcm1hdC5mb3JtYXQoYXJncykpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NyaXB0ID0gbWluU2NyaXB0OyBzY3JpcHQgPD0gbWF4U2NyaXB0OyBzY3JpcHQgKz0gMSkgeworICAgICAgICAgICAgb3V0cHV0LnByaW50KCIgICAgIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoc2NyaXB0RGF0YS5nZXRUYWcoc2NyaXB0KSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIlNjcmlwdENvZGUgPSAiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNjcmlwdCA8IDEwKSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCIgIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludChzY3JpcHQpOworICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oIiwiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4oKTsKKyAgICAgICAgb3V0cHV0LnByaW50KCIgICAgc2NyaXB0Q29kZUNvdW50ID0gIik7CisgICAgICAgIG91dHB1dC5wcmludGxuKG1heFNjcmlwdCAtIG1pblNjcmlwdCArIDEpOworICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4ocG9zdGFtYmxlKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlVHJhaWxlcigpOworICAgICAgICBjbG9zZUZpbGUoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVMYW5ndWFnZUhlYWRlcihTdHJpbmcgZmlsZU5hbWUpCisgICAgeworICAgICAgICBpbnQgbWluTGFuZ3VhZ2UgPSBsYW5ndWFnZURhdGEuZ2V0TWluVmFsdWUoKTsKKyAgICAgICAgaW50IG1heExhbmd1YWdlID0gbGFuZ3VhZ2VEYXRhLmdldE1heFZhbHVlKCk7CisgICAgICAgIGludCB2ZXJNYWpvciAgICA9IFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmdldE1ham9yKCk7CisgICAgICAgIGludCB2ZXJNaW5vciAgICA9IFZlcnNpb25JbmZvLklDVV9WRVJTSU9OLmdldE1pbm9yKCk7CisgICAgICAgIAorICAgICAgICBvcGVuRmlsZShmaWxlTmFtZSk7CisgICAgICAgIHdyaXRlSGVhZGVyKCJfX0xFTEFOR1VBR0VTX0giLCBpbmNsdWRlRmlsZXMsIGxhbmd1YWdlQnJpZWYpOworCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybWF0ID0gbmV3IE1lc3NhZ2VGb3JtYXQobGFuZ3VhZ2VQcmVhbWJsZSk7CisgICAgICAgIE9iamVjdCBhcmdzW10gPSB7bmV3IEludGVnZXIodmVyTWFqb3IpLCBuZXcgSW50ZWdlcih2ZXJNaW5vcil9OworCisgICAgICAgIG91dHB1dC5wcmludGxuKGZvcm1hdC5mb3JtYXQoYXJncykpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgbGFuZ3VhZ2UgPSBtaW5MYW5ndWFnZTsgbGFuZ3VhZ2UgPD0gbWF4TGFuZ3VhZ2U7IGxhbmd1YWdlICs9IDEpIHsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiICAgICIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KGxhbmd1YWdlRGF0YS5nZXRUYWdMYWJlbChsYW5ndWFnZSkudG9Mb3dlckNhc2UoKSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIkxhbmd1YWdlQ29kZSA9ICIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobGFuZ3VhZ2UgPCAxMCkgeworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgiICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnQobGFuZ3VhZ2UpOworICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oIiwiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4oKTsKKyAgICAgICAgb3V0cHV0LnByaW50KCIgICAgbGFuZ3VhZ2VDb2RlQ291bnQgPSAiKTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4obWF4TGFuZ3VhZ2UgLSBtaW5MYW5ndWFnZSArIDEpOworICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4ocG9zdGFtYmxlKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlVHJhaWxlcigpOworICAgICAgICBjbG9zZUZpbGUoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gaW5jbHVkZUZpbGVzID0geyJMRVR5cGVzLmgifTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgc2NyaXB0UHJlYW1ibGUgPSAKKyAgICAiLyoqXG4iICsKKyAgICAiICogQ29uc3RhbnRzIGZvciBVbmljb2RlIHNjcmlwdCB2YWx1ZXMsIGdlbmVyYXRlZCB1c2luZ1xuIiArCisgICAgIiAqIElDVTRKJydzIDxjb2RlPlVTY3JpcHQ8L2NvZGU+IGNsYXNzLlxuIiArCisgICAgIiAqXG4iICsKKyAgICAiICogQGRyYWZ0IElDVSB7MH0uezF9XG4iICsKKyAgICAiICovXG4iICsKKyAgICAiXG4iICsKKyAgICAiZW51bSBTY3JpcHRDb2RlcyAneyciOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBzY3JpcHRCcmllZiA9CisgICAgIi8qKlxuIiArCisgICAgIiAqIFxcZmlsZVxuIiArIAorICAgICIgKiBcXGJyaWVmIEMrKyBBUEk6IENvbnN0YW50cyBmb3IgVW5pY29kZSBzY3JpcHQgdmFsdWVzXG4iICsKKyAgICAiICovXG4iICsKKyAgICAiXG4iOworCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGxhbmd1YWdlUHJlYW1ibGUgPSAKKyAgICAiLyoqXG4iICsKKyAgICAiICogQSBwcm92aXNpb25hbCBsaXN0IG9mIGxhbmd1YWdlIGNvZGVzLiBGb3Igbm93LFxuIiArCisgICAgIiAqIHRoaXMgaXMganVzdCBhIGxpc3Qgb2YgbGFuZ3VhZ2VzIHdoaWNoIHRoZSBMYXlvdXRFbmdpbmVcbiIgKworICAgICIgKiBzdXBwb3J0cy5cbiIgKworICAgICIgKlxuIiArCisgICAgIiAqIEBkcmFmdCBJQ1UgezB9LnsxfVxuIiArCisgICAgIiAqL1xuIiArCisgICAgIlxuIiArCisgICAgImVudW0gTGFuZ3VhZ2VDb2RlcyAneyciOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBsYW5ndWFnZUJyaWVmID0KKyAgICAgICAgIi8qKlxuIiArCisgICAgICAgICIgKiBcXGZpbGVcbiIgKyAKKyAgICAgICAgIiAqIFxcYnJpZWYgQysrIEFQSTogTGlzdCBvZiBsYW5ndWFnZSBjb2RlcyBmb3IgTGF5b3V0RW5naW5lXG4iICsKKyAgICAgICAgIiAqL1xuIiArCisgICAgICAgICJcbiI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgcG9zdGFtYmxlID0KKyAgICAifTtcbiI7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRMaXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdExpc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTYyNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRMaXN0LmphdmEKQEAgLTAsMCArMSwyMDAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworCitwdWJsaWMgY2xhc3MgU2NyaXB0TGlzdAoreworICAgIHN0YXRpYyBjbGFzcyBMYW5nU3lzUmVjb3JkIGV4dGVuZHMgVGFnZ2VkUmVjb3JkCisgICAgeworICAgICAgICBwcml2YXRlIEZlYXR1cmVbXSBmZWF0dXJlczsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZmVhdHVyZUNvdW50OworICAgICAgICAKKyAgICAgICAgcHVibGljIExhbmdTeXNSZWNvcmQoU3RyaW5nIHRoZUxhbmd1YWdlVGFnKQorICAgICAgICB7CisgICAgICAgICAgICBzdXBlcih0aGVMYW5ndWFnZVRhZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZlYXR1cmVzID0gbmV3IEZlYXR1cmVbMTBdOworICAgICAgICAgICAgZmVhdHVyZUNvdW50ID0gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgYWRkRmVhdHVyZShGZWF0dXJlIGZlYXR1cmUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChmZWF0dXJlQ291bnQgPiBmZWF0dXJlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBGZWF0dXJlW10gbmV3RmVhdHVyZXMgPSBuZXcgRmVhdHVyZVtmZWF0dXJlcy5sZW5ndGggKyA1XTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZlYXR1cmVzLCAwLCBuZXdGZWF0dXJlcywgMCwgZmVhdHVyZXMubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBmZWF0dXJlcyA9IG5ld0ZlYXR1cmVzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmZWF0dXJlc1tmZWF0dXJlQ291bnQrK10gPSBmZWF0dXJlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgcHVibGljIHZvaWQgd3JpdGVMYW5nU3lzUmVjb3JkKE9wZW5UeXBlVGFibGVXcml0ZXIgd3JpdGVyKQorICAgICAgICB7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDApOyAgICAgIC8vIGxvb2t1cE9yZGVyIChtdXN0IGJlIE5VTEwpCisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDB4RkZGRik7IC8vIHJlcUZlYXR1cmVJbmRleCAoMHhGRkZGIG1lYW5zIG5vbmUpCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoZmVhdHVyZUNvdW50KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmZWF0dXJlQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZURhdGEoZmVhdHVyZXNbaV0uZ2V0RmVhdHVyZUluZGV4KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBTY3JpcHRSZWNvcmQgZXh0ZW5kcyBUYWdnZWRSZWNvcmQKKyAgICB7CisgICAgICAgIHByaXZhdGUgTGFuZ1N5c1JlY29yZFtdIGxhbmdTeXNSZWNvcmRzOworICAgICAgICBwcml2YXRlIGludCBsYW5nU3lzQ291bnQ7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU2NyaXB0UmVjb3JkKFN0cmluZyB0aGVTY3JpcHRUYWcpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyKHRoZVNjcmlwdFRhZyk7CisgICAgICAgICAgICBsYW5nU3lzUmVjb3JkcyA9IG5ldyBMYW5nU3lzUmVjb3JkWzEwXTsKKyAgICAgICAgICAgIGxhbmdTeXNDb3VudCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBMYW5nU3lzUmVjb3JkIGZpbmRMYW5nU3lzUmVjb3JkKFN0cmluZyBsYW5ndWFnZVRhZykKKyAgICAgICAgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsYW5nU3lzQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIExhbmdTeXNSZWNvcmQgbGFuZ1N5c1JlY29yZCA9IGxhbmdTeXNSZWNvcmRzW2ldOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChsYW5nU3lzUmVjb3JkLmdldFRhZygpLmVxdWFscyhsYW5ndWFnZVRhZykpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxhbmdTeXNSZWNvcmQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobGFuZ1N5c0NvdW50ID49IGxhbmdTeXNSZWNvcmRzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIExhbmdTeXNSZWNvcmRbXSBuZXdMYW5nU3lzUmVjb3JkcyA9IG5ldyBMYW5nU3lzUmVjb3JkW2xhbmdTeXNDb3VudCArIDVdOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobGFuZ1N5c1JlY29yZHMsIDAsIG5ld0xhbmdTeXNSZWNvcmRzLCAwLCBsYW5nU3lzUmVjb3Jkcy5sZW5ndGgpOworICAgICAgICAgICAgICAgIGxhbmdTeXNSZWNvcmRzID0gbmV3TGFuZ1N5c1JlY29yZHM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExhbmdTeXNSZWNvcmQgbmV3TGFuZ1N5c1JlY29yZCA9IG5ldyBMYW5nU3lzUmVjb3JkKGxhbmd1YWdlVGFnKTsKKyAgICAgICAgICAgIGxhbmdTeXNSZWNvcmRzW2xhbmdTeXNDb3VudF0gPSBuZXdMYW5nU3lzUmVjb3JkOworICAgICAgICAgICAgCisgICAgICAgICAgICBsYW5nU3lzQ291bnQgKz0gMTsKKyAgICAgICAgICAgIHJldHVybiBuZXdMYW5nU3lzUmVjb3JkOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZVNjcmlwdFJlY29yZChPcGVuVHlwZVRhYmxlV3JpdGVyIHdyaXRlcikKKyAgICAgICAgeworICAgICAgICAgICAgVGFnZ2VkUmVjb3JkLnNvcnQobGFuZ1N5c1JlY29yZHMsIGxhbmdTeXNDb3VudCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBzY3JpcHRUYWJsZUJhc2UgPSB3cml0ZXIuZ2V0T3V0cHV0SW5kZXgoKTsKKyAgICAgICAgICAgIGludCBmaXJzdExhbmdTeXMgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDApOyAvLyBkZWZhdWx0IGxhbmdTeXMgb2Zmc2V0IChmaXhlZCBsYXRlcikKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGxhbmdTeXNSZWNvcmRzWzBdLmdldFRhZygpLmVxdWFscygiKGRlZmF1bHQpIikpIHsKKyAgICAgICAgICAgICAgICBmaXJzdExhbmdTeXMgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKGxhbmdTeXNDb3VudCAtIGZpcnN0TGFuZ1N5cyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBsYW5nU3lzT2Zmc2V0ID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBmaXJzdExhbmdTeXM7IGkgPCBsYW5nU3lzQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIHdyaXRlci53cml0ZVRhZyhsYW5nU3lzUmVjb3Jkc1tpXS5nZXRUYWcoKSk7CisgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlRGF0YSgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGZpcnN0TGFuZ1N5cyA+IDApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgKGRlZmF1bHQpIik7CisgICAgICAgICAgICAgICAgd3JpdGVyLmZpeE9mZnNldChzY3JpcHRUYWJsZUJhc2UsIHNjcmlwdFRhYmxlQmFzZSk7CisgICAgICAgICAgICAgICAgbGFuZ1N5c1JlY29yZHNbMF0ud3JpdGVMYW5nU3lzUmVjb3JkKHdyaXRlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBmaXJzdExhbmdTeXM7IGkgPCBsYW5nU3lzQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgICAgIC8vIGZpeCB0aGUgb2Zmc2V0IGluIHRoZSBsYW5nU3lzUmVjb3JkQXJyYXkuCisgICAgICAgICAgICAgICAgLy8gVGhlICIrMiIgc2tpcHMgb3ZlciB0aGUgdGFnIGFuZCB0aGUgIiszIgorICAgICAgICAgICAgICAgIC8vIHNraXBzIHRvIHRoZSBuZXh0IGxhbmdTeXNSZWNvcmQgZW50cnkKKyAgICAgICAgICAgICAgICB3cml0ZXIuZml4T2Zmc2V0KGxhbmdTeXNPZmZzZXQgKyAyLCBzY3JpcHRUYWJsZUJhc2UpOworICAgICAgICAgICAgICAgIGxhbmdTeXNPZmZzZXQgKz0gMzsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgJyIgKyBsYW5nU3lzUmVjb3Jkc1tpXS5nZXRUYWcoKSArICInIik7CisgICAgICAgICAgICAgICAgbGFuZ1N5c1JlY29yZHNbaV0ud3JpdGVMYW5nU3lzUmVjb3JkKHdyaXRlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTY3JpcHRSZWNvcmRbXSBzY3JpcHRSZWNvcmRzOworICAgIHByaXZhdGUgaW50IHNjcmlwdENvdW50OworICAgIAorICAgIHB1YmxpYyBTY3JpcHRMaXN0KCkKKyAgICB7CisgICAgICAgIHNjcmlwdFJlY29yZHMgPSBuZXcgU2NyaXB0UmVjb3JkWzEwXTsKKyAgICAgICAgc2NyaXB0Q291bnQgPSAwOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIExhbmdTeXNSZWNvcmQgZmluZExhbmdTeXNSZWNvcmQoU3RyaW5nIHNjcmlwdFRhZywgU3RyaW5nIGxhbmd1YWdlVGFnKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzY3JpcHRDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICBTY3JpcHRSZWNvcmQgc2NyaXB0UmVjb3JkID0gc2NyaXB0UmVjb3Jkc1tpXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNjcmlwdFJlY29yZC5nZXRUYWcoKS5lcXVhbHMoc2NyaXB0VGFnKSkgeworICAgICAgICAgICAgICAgICByZXR1cm4gc2NyaXB0UmVjb3JkLmZpbmRMYW5nU3lzUmVjb3JkKGxhbmd1YWdlVGFnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHNjcmlwdENvdW50ID49IHNjcmlwdFJlY29yZHMubGVuZ3RoKSB7CisgICAgICAgICAgICBTY3JpcHRSZWNvcmRbXSBuZXdTY3JpcHRSZWNvcmRzID0gbmV3IFNjcmlwdFJlY29yZFtzY3JpcHRDb3VudCArIDVdOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNjcmlwdFJlY29yZHMsIDAsIG5ld1NjcmlwdFJlY29yZHMsIDAsIHNjcmlwdFJlY29yZHMubGVuZ3RoKTsKKyAgICAgICAgICAgIHNjcmlwdFJlY29yZHMgPSBuZXdTY3JpcHRSZWNvcmRzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTY3JpcHRSZWNvcmQgbmV3U2NyaXB0UmVjb3JkID0gbmV3IFNjcmlwdFJlY29yZChzY3JpcHRUYWcpOworICAgICAgICBzY3JpcHRSZWNvcmRzW3NjcmlwdENvdW50XSA9IG5ld1NjcmlwdFJlY29yZDsKKyAgICAgICAgCisgICAgICAgIHNjcmlwdENvdW50ICs9IDE7CisgICAgICAgIHJldHVybiBuZXdTY3JpcHRSZWNvcmQuZmluZExhbmdTeXNSZWNvcmQobGFuZ3VhZ2VUYWcpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBhZGRGZWF0dXJlKFN0cmluZyBzY3JpcHRUYWcsIFN0cmluZyBsYW5ndWFnZVRhZywgRmVhdHVyZSBmZWF0dXJlKQorICAgIHsKKyAgICAgICAgTGFuZ1N5c1JlY29yZCBsYW5nU3lzUmVjb3JkID0gZmluZExhbmdTeXNSZWNvcmQoc2NyaXB0VGFnLCBsYW5ndWFnZVRhZyk7CisgICAgICAgIAorICAgICAgICBsYW5nU3lzUmVjb3JkLmFkZEZlYXR1cmUoZmVhdHVyZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlU2NyaXB0TGlzdChPcGVuVHlwZVRhYmxlV3JpdGVyIHdyaXRlcikKKyAgICB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigid3JpdGluZyBzY3JpcHQgbGlzdC4uLiIpOworICAgICAgICAKKyAgICAgICAgaW50IHNjcmlwdExpc3RCYXNlID0gd3JpdGVyLmdldE91dHB1dEluZGV4KCk7CisgICAgICAgIAorICAgICAgICBUYWdnZWRSZWNvcmQuc29ydChzY3JpcHRSZWNvcmRzLCBzY3JpcHRDb3VudCk7CisgICAgICAgIHdyaXRlci53cml0ZURhdGEoc2NyaXB0Q291bnQpOworICAgICAgICAKKyAgICAgICAgaW50IHNjcmlwdFJlY29yZE9mZnNldCA9IHdyaXRlci5nZXRPdXRwdXRJbmRleCgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzY3JpcHRDb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVUYWcoc2NyaXB0UmVjb3Jkc1tpXS5nZXRUYWcoKSk7CisgICAgICAgICAgICB3cml0ZXIud3JpdGVEYXRhKDApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNjcmlwdENvdW50OyBpICs9IDEpIHsKKyAgICAgICAgICAgIC8vIGZpeCB0aGUgb2Zmc2V0IGluIHRoZSBzY3JpcHRSZWNvcmRBcnJheS4KKyAgICAgICAgICAgIC8vIFRoZSAiKzIiIHNraXBzIG92ZXIgdGhlIHRhZyBhbmQgdGhlICIrMyIKKyAgICAgICAgICAgIC8vIHNraXBzIHRvIHRoZSBuZXh0IHNjcmlwdFJlY29yZCBlbnRyeQorICAgICAgICAgICAgd3JpdGVyLmZpeE9mZnNldChzY3JpcHRSZWNvcmRPZmZzZXQgKyAyLCBzY3JpcHRMaXN0QmFzZSk7CisgICAgICAgICAgICBzY3JpcHRSZWNvcmRPZmZzZXQgKz0gMzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICBzY3JpcHQgJyIgKyBzY3JpcHRSZWNvcmRzW2ldLmdldFRhZygpICsgIic6Iik7CisgICAgICAgICAgICBzY3JpcHRSZWNvcmRzW2ldLndyaXRlU2NyaXB0UmVjb3JkKHdyaXRlcik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgfQorICAgIH0KK30KKyAgICAgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRNb2R1bGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0TW9kdWxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFjYWQ3OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0TW9kdWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwyMiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCisKK3B1YmxpYyBjbGFzcyBTY3JpcHRNb2R1bGVXcml0ZXIgZXh0ZW5kcyBNb2R1bGVXcml0ZXIKK3sKKyAgICBwdWJsaWMgU2NyaXB0TW9kdWxlV3JpdGVyKFNjcmlwdERhdGEgdGhlU2NyaXB0RGF0YSwgTGFuZ3VhZ2VEYXRhIHRoZUxhbmd1YWdlRGF0YSkKKyAgICB7CisgICAgICAgIHN1cGVyKCk7CisgICAgICAgIAorICAgICAgICBzY3JpcHREYXRhID0gdGhlU2NyaXB0RGF0YTsKKyAgICAgICAgbGFuZ3VhZ2VEYXRhID0gdGhlTGFuZ3VhZ2VEYXRhOworICAgIH0KKworICAgIHByb3RlY3RlZCBTY3JpcHREYXRhIHNjcmlwdERhdGE7CisgICAgcHJvdGVjdGVkIExhbmd1YWdlRGF0YSBsYW5ndWFnZURhdGE7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHROYW1lQnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHROYW1lQnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4YzcxN2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdE5hbWVCdWlsZGVyLmphdmEKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitwdWJsaWMgY2xhc3MgU2NyaXB0TmFtZUJ1aWxkZXIKK3sKKyAgICAvKgorICAgICAqIFRoaXMgdG9vbCBidWlsZHMgdGhlIHNjcmlwdCByZWxhdGVkIGhlYWRlciBmaWxlcyBhbmQgZGF0YSB0YWJsZXMgbmVlZGVkIGJ5CisgICAgICogdGhlIElDVSBMYXlvdXRFbmdpbmUuIEJ5IHVzaW5nIHRoZSBJQ1U0SiBpbnRlcmZhY2VzIHRvIGFjY2VzcyB0aGUgc2NyaXB0CisgICAgICogaW5mb3JtYXRpb24sIHdlIGNhbiBiZSBzdXJlIHRoYXQgdGhlIGRhdGEgd3JpdHRlbiBieSB0aGlzIHRvb2wgaXMgaW4gc3luY2gKKyAgICAgKiB3aXRoIElDVS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgU2NyaXB0RGF0YSBzY3JpcHREYXRhID0gbmV3IFNjcmlwdERhdGEoKTsKKyAgICAgICAgTGFuZ3VhZ2VEYXRhIGxhbmd1YWdlRGF0YSA9IG5ldyBMYW5ndWFnZURhdGEoKTsKKyAgICAgICAgCisgICAgICAgIFNjcmlwdElETW9kdWxlV3JpdGVyIHNjcmlwdElETW9kdWxlV3JpdGVyID0gbmV3IFNjcmlwdElETW9kdWxlV3JpdGVyKHNjcmlwdERhdGEsIGxhbmd1YWdlRGF0YSk7CisgICAgICAgIAorICAgICAgICBzY3JpcHRJRE1vZHVsZVdyaXRlci53cml0ZVNjcmlwdEhlYWRlcigiTEVTY3JpcHRzLmgiKTsKKyAgICAgICAgc2NyaXB0SURNb2R1bGVXcml0ZXIud3JpdGVMYW5ndWFnZUhlYWRlcigiTEVMYW5ndWFnZXMuaCIpOworICAgICAgICAKKyAgICAgICAgU2NyaXB0VGFnTW9kdWxlV3JpdGVyIHNjcmlwdFRhZ01vZHVsZVdyaXRlciA9IG5ldyBTY3JpcHRUYWdNb2R1bGVXcml0ZXIoc2NyaXB0RGF0YSwgbGFuZ3VhZ2VEYXRhKTsKKyAgICAgICAgCisgICAgICAgIHNjcmlwdFRhZ01vZHVsZVdyaXRlci53cml0ZVNjcmlwdFRhZ3MoIlNjcmlwdEFuZExhbmd1YWdlVGFncyIpOworICAgICAgICAKKyAgICAgICAgU2NyaXB0UnVuTW9kdWxlV3JpdGVyIHNjcmlwdFJ1bk1vZHVsZVdyaXRlciA9IG5ldyBTY3JpcHRSdW5Nb2R1bGVXcml0ZXIoc2NyaXB0RGF0YSk7CisgICAgICAgIAorICAgICAgICBzY3JpcHRSdW5Nb2R1bGVXcml0ZXIud3JpdGVTY3JpcHRSdW5zKCJTY3JpcHRSdW5EYXRhLmNwcCIpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NjcmlwdFJ1bk1vZHVsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRSdW5Nb2R1bGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YWE5NmU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRSdW5Nb2R1bGVXcml0ZXIuamF2YQpAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCitwdWJsaWMgY2xhc3MgU2NyaXB0UnVuTW9kdWxlV3JpdGVyIGV4dGVuZHMgU2NyaXB0TW9kdWxlV3JpdGVyCit7CisgICAgcHVibGljIFNjcmlwdFJ1bk1vZHVsZVdyaXRlcihTY3JpcHREYXRhIHRoZVNjcmlwdERhdGEpCisgICAgeworICAgICAgICBzdXBlcih0aGVTY3JpcHREYXRhLCBudWxsKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgd3JpdGVTY3JpcHRSdW5zKFN0cmluZyBmaWxlTmFtZSkKKyAgICB7CisgICAgICAgIGludCBtaW5TY3JpcHQgICA9IHNjcmlwdERhdGEuZ2V0TWluVmFsdWUoKTsKKyAgICAgICAgaW50IG1heFNjcmlwdCAgID0gc2NyaXB0RGF0YS5nZXRNYXhWYWx1ZSgpOworICAgICAgICBpbnQgcmVjb3JkQ291bnQgPSBzY3JpcHREYXRhLmdldFJlY29yZENvdW50KCk7CisgICAgICAgIAorICAgICAgICBvcGVuRmlsZShmaWxlTmFtZSk7CisgICAgICAgIHdyaXRlSGVhZGVyKG51bGwsIGluY2x1ZGVGaWxlcyk7CisgICAgICAgIG91dHB1dC5wcmludGxuKHByZWFtYmxlKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHJlY29yZCA9IDA7IHJlY29yZCA8IHJlY29yZENvdW50OyByZWNvcmQgKz0gMSkgeworICAgICAgICAgICAgaW50IHNjcmlwdCA9IHNjcmlwdERhdGEuZ2V0UmVjb3JkKHJlY29yZCkuc2NyaXB0Q29kZSgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiAgICB7MHgiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChVdGlsaXR5LmhleChzY3JpcHREYXRhLmdldFJlY29yZChyZWNvcmQpLnN0YXJ0Q2hhcigpLCA2KSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiwgMHgiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChVdGlsaXR5LmhleChzY3JpcHREYXRhLmdldFJlY29yZChyZWNvcmQpLmVuZENoYXIoKSwgNikpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCIsICIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KHNjcmlwdERhdGEuZ2V0VGFnKHNjcmlwdCkpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCJTY3JpcHRDb2RlfSIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KChyZWNvcmQgPT0gcmVjb3JkQ291bnQgLSAxKSA/ICIgIiA6ICIsIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiAvLyAiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKHNjcmlwdERhdGEuZ2V0TmFtZShzY3JpcHQpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4ocG9zdGFtYmxlKTsKKyAgICAgICAgCisgICAgICAgIGludCBwb3dlciA9IDEgPDwgVXRpbGl0eS5oaWdoQml0KHJlY29yZENvdW50KTsKKyAgICAgICAgaW50IGV4dHJhID0gcmVjb3JkQ291bnQgLSBwb3dlcjsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludCgibGVfaW50MzIgU2NyaXB0UnVuOjpzY3JpcHRSZWNvcmRzUG93ZXIgPSAweCIpOworICAgICAgICBvdXRwdXQucHJpbnQoVXRpbGl0eS5oZXgocG93ZXIsIDQpKTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4oIjsiKTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnQoImxlX2ludDMyIFNjcmlwdFJ1bjo6c2NyaXB0UmVjb3Jkc0V4dHJhID0gMHgiKTsKKyAgICAgICAgb3V0cHV0LnByaW50KFV0aWxpdHkuaGV4KGV4dHJhLCA0KSk7CisgICAgICAgIG91dHB1dC5wcmludGxuKCI7Iik7CisKKyAgICAgICAgVmVjdG9yW10gc2NyaXB0UmFuZ2VPZmZzZXRzID0gbmV3IFZlY3RvclttYXhTY3JpcHQgLSBtaW5TY3JpcHQgKyAxXTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjcmlwdCA9IG1pblNjcmlwdDsgc2NyaXB0IDw9IG1heFNjcmlwdDsgc2NyaXB0ICs9IDEpIHsKKyAgICAgICAgICAgIHNjcmlwdFJhbmdlT2Zmc2V0c1tzY3JpcHQgLSBtaW5TY3JpcHRdID0gbmV3IFZlY3RvcigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKGludCByZWNvcmQgPSAwOyByZWNvcmQgPCByZWNvcmRDb3VudDsgcmVjb3JkICs9IDEpIHsKKyAgICAgICAgICAgIHNjcmlwdFJhbmdlT2Zmc2V0c1tzY3JpcHREYXRhLmdldFJlY29yZChyZWNvcmQpLnNjcmlwdENvZGUoKSAtIG1pblNjcmlwdF0uYWRkRWxlbWVudChuZXcgSW50ZWdlcihyZWNvcmQpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4oKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjcmlwdCA9IG1pblNjcmlwdDsgc2NyaXB0IDw9IG1heFNjcmlwdDsgc2NyaXB0ICs9IDEpIHsKKyAgICAgICAgICAgIFZlY3RvciBvZmZzZXRzID0gc2NyaXB0UmFuZ2VPZmZzZXRzW3NjcmlwdCAtIG1pblNjcmlwdF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgibGVfaW50MTYgIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoc2NyaXB0RGF0YS5nZXRUYWcoc2NyaXB0KSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbigiU2NyaXB0UmFuZ2VzW10gPSB7Iik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiAgICAiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgb2Zmc2V0cy5zaXplKCk7IG9mZnNldCArPSAxKSB7CisgICAgICAgICAgICAgICAgSW50ZWdlciBpID0gKEludGVnZXIpIG9mZnNldHMuZWxlbWVudEF0KG9mZnNldCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KGkuaW50VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCIsICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnRsbigiLTEiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKHBvc3RhbWJsZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKCJsZV9pbnQxNiAqU2NyaXB0UnVuOjpzY3JpcHRSYW5nZU9mZnNldHNbXSA9IHsiKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHNjcmlwdCA9IG1pblNjcmlwdDsgc2NyaXB0IDw9IG1heFNjcmlwdDsgc2NyaXB0ICs9IDEpIHsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiICAgICIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KHNjcmlwdERhdGEuZ2V0VGFnKHNjcmlwdCkpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCJTY3JpcHRSYW5nZXMiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChzY3JpcHQgPT0gbWF4U2NyaXB0PyAiICAiIDogIiwgIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIi8vICIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oc2NyaXB0RGF0YS5nZXROYW1lKHNjcmlwdCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbihwb3N0YW1ibGUpOworICAgICAgICAKKyAgICAgICAgd3JpdGVUcmFpbGVyKCk7CisgICAgICAgIGNsb3NlRmlsZSgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBpbmNsdWRlRmlsZXMgPSB7IkxFVHlwZXMuaCIsICJMRVNjcmlwdHMuaCIsICJTY3JpcHRSdW4uaCJ9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBwcmVhbWJsZSA9IAorICAgICJcbiIgKworICAgICJTY3JpcHRSZWNvcmQgU2NyaXB0UnVuOjpzY3JpcHRSZWNvcmRzW10gPSB7IjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgcG9zdGFtYmxlID0KKyAgICAifTtcbiI7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9TY3JpcHRUYWdNb2R1bGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0VGFnTW9kdWxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTEwMDJjMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2NyaXB0VGFnTW9kdWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwxMzkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworcHVibGljIGNsYXNzIFNjcmlwdFRhZ01vZHVsZVdyaXRlciBleHRlbmRzIFNjcmlwdE1vZHVsZVdyaXRlcgoreworICAgIAorICAgIHByaXZhdGUgaW50IHNjcmlwdFRhZyhTdHJpbmcgdGFnKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7IGkgKz0gMSkgeworICAgICAgICAgICAgcmVzdWx0IDw8PSA4OworICAgICAgICAgICAgcmVzdWx0ICs9IChpbnQpICh0YWcuY2hhckF0KGkpICYgMHhGRik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTY3JpcHRUYWdNb2R1bGVXcml0ZXIoU2NyaXB0RGF0YSB0aGVTY3JpcHREYXRhLCBMYW5ndWFnZURhdGEgdGhlTGFuZ3VhZ2VEYXRhKQorICAgIHsKKyAgICAgICAgc3VwZXIodGhlU2NyaXB0RGF0YSwgdGhlTGFuZ3VhZ2VEYXRhKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlVGFnVmFsdWVIZWFkZXIoVGFnVmFsdWVEYXRhIGRhdGEsIFN0cmluZyBraW5kKQorICAgIHsKKyAgICAgICAgaW50IG1pbiA9IGRhdGEuZ2V0TWluVmFsdWUoKTsKKyAgICAgICAgaW50IG1heCA9IGRhdGEuZ2V0TWF4VmFsdWUoKTsKKworICAgICAgICBmb3IgKGludCB2YWx1ZSA9IG1pbjsgdmFsdWUgPD0gbWF4OyB2YWx1ZSArPSAxKSB7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoImNvbnN0IExFVGFnICIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KGRhdGEuZ2V0VGFnTGFiZWwodmFsdWUpKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChraW5kKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiVGFnID0gIik7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoZGF0YS5tYWtlVGFnKHZhbHVlKSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIjsgLyogJyIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KGRhdGEuZ2V0VGFnKHZhbHVlKSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIicgKCIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KGRhdGEuZ2V0TmFtZSh2YWx1ZSkpOworICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oIikgKi8iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUhlYWRlckZpbGUoU3RyaW5nIGZpbGVOYW1lKQorICAgIHsKKyAgICAgICAgb3BlbkZpbGUoZmlsZU5hbWUpOworICAgICAgICB3cml0ZUhlYWRlcigiX19TQ1JJUFRBTkRMQU5HVUFHRVNfSCIsIGhJbmNsdWRlcywgaFByZWFtYmxlKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlVGFnVmFsdWVIZWFkZXIoc2NyaXB0RGF0YSwgIlNjcmlwdCIpOworICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4oaFNjcmlwdFBvc3RhbWJsZSk7CisgICAgICAgIAorICAgICAgICB3cml0ZVRhZ1ZhbHVlSGVhZGVyKGxhbmd1YWdlRGF0YSwgIkxhbmd1YWdlIik7CisgICAgICAgIAorICAgICAgICBvdXRwdXQucHJpbnRsbihoUG9zdGFtYmxlKTsKKyAgICAgICAgY2xvc2VGaWxlKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCB3cml0ZVRhZ1ZhbHVlQ1BQKFRhZ1ZhbHVlRGF0YSBkYXRhLCBTdHJpbmcga2luZCkKKyAgICB7CisgICAgICAgIGludCBtaW4gPSBkYXRhLmdldE1pblZhbHVlKCk7CisgICAgICAgIGludCBtYXggPSBkYXRhLmdldE1heFZhbHVlKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCB2YWx1ZSA9IG1pbjsgdmFsdWUgPD0gbWF4OyB2YWx1ZSArPSAxKSB7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIiAgICAiKTsKKyAgICAgICAgICAgIG91dHB1dC5wcmludChkYXRhLmdldFRhZ0xhYmVsKHZhbHVlKSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoa2luZCk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIlRhZyIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCh2YWx1ZSA9PSBtYXg/ICIgIiA6ICIsIikpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KCIgLyogJyIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KGRhdGEuZ2V0VGFnKHZhbHVlKSk7CisgICAgICAgICAgICBvdXRwdXQucHJpbnQoIicgKCIpOworICAgICAgICAgICAgb3V0cHV0LnByaW50KGRhdGEuZ2V0TmFtZSh2YWx1ZSkpOworICAgICAgICAgICAgb3V0cHV0LnByaW50bG4oIikgKi8iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUNQUEZpbGUoU3RyaW5nIGZpbGVOYW1lKQorICAgIHsKKyAgICAgICAgb3BlbkZpbGUoZmlsZU5hbWUpOworICAgICAgICB3cml0ZUhlYWRlcihudWxsLCBjcHBJbmNsdWRlcyk7CisgICAgICAgIG91dHB1dC5wcmludGxuKGNwcFByZWFtYmxlKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlVGFnVmFsdWVDUFAoc2NyaXB0RGF0YSwgIlNjcmlwdCIpOworICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4oY3BwU2NyaXB0UG9zdGFtYmxlKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlVGFnVmFsdWVDUFAobGFuZ3VhZ2VEYXRhLCAiTGFuZ3VhZ2UiKTsKKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKGNwcFBvc3RhbWJsZSk7CisgICAgICAgIAorICAgICAgICB3cml0ZVRyYWlsZXIoKTsKKyAgICAgICAgY2xvc2VGaWxlKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlU2NyaXB0VGFncyhTdHJpbmcgZmlsZU5hbWUpCisgICAgeworICAgICAgICB3cml0ZUhlYWRlckZpbGUoZmlsZU5hbWUgKyAiLmgiKTsKKyAgICAgICAgd3JpdGVDUFBGaWxlKGZpbGVOYW1lICsgIi5jcHAiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBoSW5jbHVkZXMgPSB7IkxFVHlwZXMuaCJ9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGhQcmVhbWJsZSA9IAorICAgICIvKipcbiIgKworICAgICIgKiBcXGZpbGVcbiIgKworICAgICIgKiBcXGludGVybmFsXG4iICsKKyAgICAiICovXG4iICsKKyAgICAiXG4iOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBoU2NyaXB0UG9zdGFtYmxlID0KKyAgICAiXG4iICsKKyAgICAiY29uc3QgTEVUYWcgbnVsbFNjcmlwdFRhZyA9IDB4MDAwMDAwMDA7IC8qICcnICAgICAoTlVMTCkgKi9cbiIgKworICAgICJcbiI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGhQb3N0YW1ibGUgPQorICAgICJcbiIgKworICAgICJcbiIgKworICAgICJVX05BTUVTUEFDRV9FTkRcbiIgKworICAgICIjZW5kaWYiOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGNwcEluY2x1ZGVzID0KKyAgICAgICAgeyJMRVR5cGVzLmgiLCAiU2NyaXB0QW5kTGFuZ3VhZ2VUYWdzLmgiLCAiT3BlblR5cGVMYXlvdXRFbmdpbmUuaCJ9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjcHBQcmVhbWJsZSA9IAorICAgICJjb25zdCBMRVRhZyBPcGVuVHlwZUxheW91dEVuZ2luZTo6c2NyaXB0VGFnc1tdID0geyI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNwcFNjcmlwdFBvc3RhbWJsZSA9CisgICAgIn07XG4iICsKKyAgICAiXG4iICsKKyAgICAiY29uc3QgTEVUYWcgT3BlblR5cGVMYXlvdXRFbmdpbmU6Omxhbmd1YWdlVGFnc1tdID0geyI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNwcFBvc3RhbWJsZSA9CisgICAgIn07XG4iOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvU2hhcGluZ1R5cGVCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NoYXBpbmdUeXBlQnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2ZDQyN2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1NoYXBpbmdUeXBlQnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworaW1wb3J0IGphdmEuaW8uUHJpbnRTdHJlYW07CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworCisvKioKKyAqIEBhdXRob3IgZW1hZGVyCisgKgorICogVE9ETyBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdyAtIFByZWZlcmVuY2VzIC0gSmF2YSAtIENvZGUgU3R5bGUgLSBDb2RlIFRlbXBsYXRlcworICovCitwdWJsaWMgY2xhc3MgU2hhcGluZ1R5cGVCdWlsZGVyIGV4dGVuZHMgT3BlblR5cGVUYWJsZVdyaXRlcgoreworICAgIHByaXZhdGUgQ2xhc3NUYWJsZSBjbGFzc1RhYmxlOworICAgIAorICAgIHB1YmxpYyBTaGFwaW5nVHlwZUJ1aWxkZXIoKQorICAgIHsKKyAgICAgICAgY2xhc3NUYWJsZSA9IG5ldyBDbGFzc1RhYmxlKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHdyaXRlVGFibGUoUHJpbnRTdHJlYW0gb3V0cHV0KQorICAgIHsKKyAgICAgICAgY2xhc3NUYWJsZS53cml0ZUNsYXNzVGFibGUodGhpcyk7CisgICAgICAgIG91dHB1dC5wcmludGxuKCJjb25zdCBsZV91aW50OCBBcmFiaWNTaGFwaW5nOjpzaGFwaW5nVHlwZVRhYmxlW10gPSB7Iik7CisgICAgICAgIAorICAgICAgICBkdW1wVGFibGUob3V0cHV0LCA4KTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4oIn07XG4iKTsKKyAgICB9CisgICAgCisgICAgLy8gVE9ETzogVGhlIFVuaWNvZGVTZXQgaXMgY29uc3RyYWluZWQgdG8gdGhlIEJNUCBiZWNhdXNlIHRoZSBDbGFzc1RhYmxlIGRhdGEgc3RydWN0dXJlIGNhbgorICAgIC8vIG9ubHkgaGFuZGxlIDE2LWJpdCBlbnRyaWVzLiBUaGlzIGlzIHByb2JhYmx5IE9LIGFzIGxvbmcgYXMgdGhlcmUgYXJlbid0IGFueSBqb2luaW5nIHNjcmlwdHMKKyAgICAvLyBvdXRzaWRlIG9mIHRoZSBCTVAuLi4KKyAgICBwdWJsaWMgdm9pZCBidWlsZFNoYXBpbmdUeXBlcyhTdHJpbmcgZmlsZW5hbWUpCisgICAgeworICAgICAgICBVbmljb2RlU2V0IHNoYXBpbmdUeXBlcyA9IG5ldyBVbmljb2RlU2V0KCJbW1xcUHtKb2luaW5nX1R5cGU9Tm9uX0pvaW5pbmd9XSAmIFtcXHUwMDAwLVxcdUZGRkZdXSIpOworICAgICAgICBpbnQgY291bnQgPSBzaGFwaW5nVHlwZXMuc2l6ZSgpOworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaGVyZSBhcmUgIiArIGNvdW50ICsgIiBjaGFyYWN0ZXJzIHdpdGggYSBqb2luaW5nIHR5cGUuIik7CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgaW50IGNoID0gc2hhcGluZ1R5cGVzLmNoYXJBdChpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2xhc3NUYWJsZS5hZGRNYXBwaW5nKGNoLCBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoY2gsIFVQcm9wZXJ0eS5KT0lOSU5HX1RZUEUpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgTGlnYXR1cmVNb2R1bGVXcml0ZXIgd3JpdGVyID0gbmV3IExpZ2F0dXJlTW9kdWxlV3JpdGVyKCk7CisgICAgICAgIFN0cmluZ1tdIGluY2x1ZGVGaWxlcyA9IHsiTEVUeXBlcy5oIiwgIkFyYWJpY1NoYXBpbmcuaCJ9OyAgICAgICAgCisgICAgICAgIAorICAgICAgICB3cml0ZXIub3BlbkZpbGUoZmlsZW5hbWUpOworICAgICAgICB3cml0ZXIud3JpdGVIZWFkZXIobnVsbCwgaW5jbHVkZUZpbGVzKTsKKyAgICAgICAgd3JpdGVyLndyaXRlVGFibGUodGhpcyk7CisgICAgICAgIHdyaXRlci53cml0ZVRyYWlsZXIoKTsKKyAgICAgICAgd3JpdGVyLmNsb3NlRmlsZSgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgU2hhcGluZ1R5cGVCdWlsZGVyIHN0YiA9IG5ldyBTaGFwaW5nVHlwZUJ1aWxkZXIoKTsKKyAgICAgICAgCisgICAgICAgIHN0Yi5idWlsZFNoYXBpbmdUeXBlcyhhcmdzWzBdKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RhZ1V0aWxpdGllcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UYWdVdGlsaXRpZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODQxNjY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UYWdVdGlsaXRpZXMuamF2YQpAQCAtMCwwICsxLDczIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIEFwciAxNCwgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqICBUaGlzIGNsYXNzIGNvbnRhaW5zIHV0aWxpdHkgbWV0aG9kcyBmb3IgZGVhbGluZyB3aXRoCisgKiBmb3VyLWxldHRlciB0YWdzLgorICogCisgKiBAYXV0aG9yIGVtYWRlcgorICoKKyAqLworcHVibGljIGNsYXNzIFRhZ1V0aWxpdGllcworeworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIG1ha2VUYWcoU3RyaW5nIHRhZykKKyAgICB7CisgICAgICAgIGlmICh0YWcgPT0gbnVsbCB8fCB0YWcubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuICIweDAwMDAwMDAwIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IHRhZ1ZhbHVlID0gMDsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSArPSAxKSB7CisgICAgICAgICAgICB0YWdWYWx1ZSA8PD0gODsKKyAgICAgICAgICAgIHRhZ1ZhbHVlICs9IChpbnQpICgoaSA8IHRhZy5sZW5ndGgoKT8gdGFnLmNoYXJBdChpKSA6ICcgJykgJiAweEZGKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuICIweCIgKyBVdGlsaXR5LmhleCh0YWdWYWx1ZSwgOCk7CisgICAgfQorICAgIAorLy8gICAgcHVibGljIHN0YXRpYyBTdHJpbmcgbWFrZVRhZ09sZChTdHJpbmcgdGFnKQorLy8gICAgeworLy8gICAgICAgIGlmICh0YWcgPT0gbnVsbCB8fCB0YWcubGVuZ3RoKCkgPT0gMCkgeworLy8gICAgICAgICAgICByZXR1cm4gIjB4MDAwMDAwMDAiOworLy8gICAgICAgIH0KKy8vICAgICAgICAKKy8vICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigiTEVfTUFLRV9UQUcoIik7CisvLyAgICAgICAgCisvLyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpICs9IDEpIHsKKy8vICAgICAgICAgICAgaWYgKGkgPiAwKSB7CisvLyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsICIpOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIAorLy8gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcJycpOworLy8gICAgICAgICAgICByZXN1bHQuYXBwZW5kKGkgPCB0YWcubGVuZ3RoKCk/IHRhZy5jaGFyQXQoaSkgOiAnICcpOworLy8gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcJycpOworLy8gICAgICAgIH0KKy8vICAgICAgICAKKy8vICAgICAgICByZXN1bHQuYXBwZW5kKCIpIik7CisvLyAgICAgICAgCisvLyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOyAKKy8vICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0YWdMYWJlbChTdHJpbmcgdGFnKQorICAgIHsKKyAgICAgICAgaWYgKHRhZyA9PSBudWxsIHx8IHRhZy5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gIm51bGwiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRhZy50b0xvd2VyQ2FzZSgpOworICAgICAgICB9CisgICAgfQorICAgICAgICAKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UYWdWYWx1ZURhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGFnVmFsdWVEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQxNzVjYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGFnVmFsdWVEYXRhLmphdmEKQEAgLTAsMCArMSwyMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBUYWdWYWx1ZURhdGEKK3sKKyAgICBhYnN0cmFjdCBwdWJsaWMgaW50IGdldE1pblZhbHVlKCk7CisgICAgYWJzdHJhY3QgcHVibGljIGludCBnZXRNYXhWYWx1ZSgpOworICAgIAorICAgIGFic3RyYWN0IHB1YmxpYyBTdHJpbmcgZ2V0TmFtZShpbnQgdmFsdWUpOworICAgIGFic3RyYWN0IHB1YmxpYyBTdHJpbmcgZ2V0VGFnKGludCB2YWx1ZSk7CisgICAgYWJzdHJhY3QgcHVibGljIFN0cmluZyBnZXRUYWdMYWJlbChpbnQgdmFsdWUpOworICAgIGFic3RyYWN0IHB1YmxpYyBTdHJpbmcgbWFrZVRhZyhpbnQgdmFsdWUpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UYWdnZWRSZWNvcmQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGFnZ2VkUmVjb3JkLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjE4YzA3ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGFnZ2VkUmVjb3JkLmphdmEKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMywgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKK3B1YmxpYyBjbGFzcyBUYWdnZWRSZWNvcmQKK3sKKyAgICBwcml2YXRlIFN0cmluZyB0YWc7CisgICAgICAgIAorICAgIHB1YmxpYyBUYWdnZWRSZWNvcmQoU3RyaW5nIHRoZVRhZykKKyAgICB7CisgICAgICAgIHRhZyA9IHRoZVRhZzsKKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGFnKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0YWc7CisgICAgfQorICAgICAgICAKKyAgICAvLworICAgIC8vIFN0cmFpZ2h0IGluc2VydGlvbiBzb3J0IGZyb20gS251dGggdm9sLiBJSUksIHBnLiA4MQorICAgIC8vCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNvcnQoVGFnZ2VkUmVjb3JkW10gdGFibGUsIGludCBjb3VudCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGogPSAxOyBqIDwgY291bnQ7IGogKz0gMSkgeworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBUYWdnZWRSZWNvcmQgdiA9IHRhYmxlW2pdOworICAgICAgICAgICAgU3RyaW5nIHZUYWcgPSB2LmdldFRhZygpOworCisgICAgICAgICAgICBmb3IgKGkgPSBqIC0gMTsgaSA+PSAwOyBpIC09IDEpIHsKKyAgICAgICAgICAgICAgICBpZiAodlRhZy5jb21wYXJlVG8odGFibGVbaV0uZ2V0VGFnKCkpID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdGFibGVbaSArIDFdID0gdGFibGVbaV07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRhYmxlW2kgKyAxXSA9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgc2VhcmNoKFRhZ2dlZFJlY29yZFtdIHRhYmxlLCBpbnQgY291bnQsIFN0cmluZyB0YWcpCisgICAgeworICAgICAgICBpbnQgbG9nMiA9IFV0aWxpdHkuaGlnaEJpdChjb3VudCk7CisgICAgICAgIGludCBwb3dlciA9IDEgPDwgbG9nMjsKKyAgICAgICAgaW50IGV4dHJhID0gY291bnQgLSBwb3dlcjsKKyAgICAgICAgaW50IHByb2JlID0gcG93ZXI7CisgICAgICAgIGludCBpbmRleCA9IDA7CisKKyAgICAgICAgaWYgKHRhYmxlW2V4dHJhXS5nZXRUYWcoKS5jb21wYXJlVG8odGFnKSA8PSAwKSB7CisgICAgICAgICAgICBpbmRleCA9IGV4dHJhOworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKHByb2JlID4gKDEgPDwgMCkpIHsKKyAgICAgICAgICAgIHByb2JlID4+PSAxOworCisgICAgICAgICAgICBpZiAodGFibGVbaW5kZXggKyBwcm9iZV0uZ2V0VGFnKCkuY29tcGFyZVRvKHRhZykgPD0gMCkgeworICAgICAgICAgICAgICAgIGluZGV4ICs9IHByb2JlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHRhYmxlW2luZGV4XS5nZXRUYWcoKS5lcXVhbHModGFnKSkgeworICAgICAgICAgICAgcmV0dXJuIGluZGV4OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KK30KKyAgICAKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaUNoYXJhY3RlckNsYXNzZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaUNoYXJhY3RlckNsYXNzZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDk5MzdiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5qYXZhCkBAIC0wLDAgKzEsMTY0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAwOSwgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEuaW8uUHJpbnRTdHJlYW07CisKK3B1YmxpYyBjbGFzcyBUaGFpQ2hhcmFjdGVyQ2xhc3NlcworeworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PTiAgICA9ICAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTiAgICA9ICAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPQSAgICA9ICAyOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPRCAgICA9ICAzOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExWTyA9ICA0OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZWMSAgICA9ICA1OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZWMiAgICA9ICA2OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZWMyAgICA9ICA3OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJWMSAgICA9ICA4OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJWMiAgICA9ICA5OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJESSA9IDEwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRPTiAgICA9IDExOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFEMSAgICA9IDEyOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFEMiAgICA9IDEzOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFEMyAgICA9IDE0OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5JSyAgICA9IDE1OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFWMSAgICA9IDE2OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFWMiAgICA9IDE3OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFWMyAgICA9IDE4OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNDb3VudCA9IDE5OworCisgICAgLy8gSW5kZXhlZCBieSB1bmljb2RlIC0gJ1x1MEUwMCcKKyAgICAvLyBGSVhNRTogTVMgRm9udHMgLSBTaG91bGQgMEUyRSBoYXMgbm8gYXNjZW5kZXIgKGl0IGRvZXMgaW4gV1QgZm9udCkKKyAgICAvLyBGSVhNRTogTVMgRm9udHMgLSAwRTQ3IChNQUlUQUlLSFUpIGFuZCAwRTREIChOSUtIQUhJVCkgb25seSBoYXZlIHZvd2VsIGZvcm1zCisgICAgLy8gRklYTUU6IE1TIEZvbnRzIC0gMEU0RSAoWUFNQUtLQU4pIG9ubHkgaGFzIG9uZSBmb3JtCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGNsYXNzVGFibGVbXSA9IHsKKyAgICAvLyAgICAgICAwICAgIDEgICAgMiAgICAzICAgIDQgICAgNSAgICA2ICAgIDcgICAgOCAgICA5ICAgIEEgICAgQiAgICBDICAgIEQgICAgRSAgICBGCisgICAgLy8gICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8qMEUwMCovIE5PTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09ELCBDT0QsIENPRCwgCisgICAgLyowRTEwKi8gQ09ELCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPQSwgQ09OLCBDT0EsIENPTiwgQ09BLCAKKyAgICAvKjBFMjAqLyBDT04sIENPTiwgQ09OLCBDT04sIEZWMywgQ09OLCBGVjMsIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBDT04sIENPTiwgQ09OLCBOT04sIAorICAgIC8qMEUzMCovIEZWMSwgQVYyLCBGVjEsIEZWMSwgQVYxLCBBVjMsIEFWMiwgQVYzLCBCVjEsIEJWMiwgQkRJLCBOT04sIE5PTiwgTk9OLCBOT04sIE5PTiwgCisgICAgLyowRTQwKi8gTFZPLCBMVk8sIExWTywgTFZPLCBMVk8sIEZWMiwgTk9OLCBBRDIsIFRPTiwgVE9OLCBUT04sIFRPTiwgQUQxLCBOSUssIEFEMywgTk9OLCAKKyAgICAvKjBFNTAqLyBOT04sIE5PTiwgTk9OLCBOT04sIE5PTiwgTk9OLCBOT04sIE5PTiwgTk9OLCBOT04sIE5PTiwgTk9OCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIGNsYXNzTmFtZXMgPQorICAgIHsKKyAgICAgICAgIk5PTiIsCisgICAgICAgICJDT04iLAorICAgICAgICAiQ09BIiwKKyAgICAgICAgIkNPRCIsCisgICAgICAgICJMVk8iLAorICAgICAgICAiRlYxIiwKKyAgICAgICAgIkZWMiIsCisgICAgICAgICJGVjMiLAorICAgICAgICAiQlYxIiwKKyAgICAgICAgIkJWMiIsCisgICAgICAgICJCREkiLAorICAgICAgICAiVE9OIiwKKyAgICAgICAgIkFEMSIsCisgICAgICAgICJBRDIiLAorICAgICAgICAiQUQzIiwKKyAgICAgICAgIk5JSyIsCisgICAgICAgICJBVjEiLAorICAgICAgICAiQVYyIiwKKyAgICAgICAgIkFWMyIKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBwYWlyVGFibGVbXVtdID0geworICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIC8vICBOICAgIEMgICAgQyAgICBDICAgIEwgICAgRiAgICBGICAgIEYgICAgQiAgICBCICAgIEIgICAgVCAgICBBICAgIEEgICAgQSAgICBOICAgIEEgICAgQSAgICBBCisgICAgICAvLyAgTyAgICBPICAgIE8gICAgTyAgICBWICAgIFYgICAgViAgICBWICAgIFYgICAgViAgICBEICAgIE8gICAgRCAgICBEICAgIEQgICAgSSAgICBWICAgIFYgICAgVgorICAgICAgLy8gIE4gICAgTiAgICBBICAgIEQgICAgTyAgICAxICAgIDIgICAgMyAgICAxICAgIDIgICAgSSAgICBOICAgIDEgICAgMiAgICAzICAgIEsgICAgMSAgICAyICAgIDMKKyAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvKk5PTiovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnUycsICdBJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUid9LAorLypDT04qLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnQScsICdDJywgJ0MnLCAnQycsICdFJywgJ0UnLCAnRScsICdDJywgJ0UnLCAnQycsICdDJywgJ0MnfSwKKy8qQ09BKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ0EnLCAnQycsICdDJywgJ0MnLCAnRicsICdGJywgJ0YnLCAnRCcsICdGJywgJ0QnLCAnRCcsICdEJ30sCisvKkNPRCovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdBJywgJ0gnLCAnSCcsICdIJywgJ0UnLCAnRScsICdFJywgJ0MnLCAnRScsICdDJywgJ0MnLCAnQyd9LAorLypMVk8qLyB7J1MnLCAnQScsICdBJywgJ0EnLCAnUycsICdTJywgJ1MnLCAnUycsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InfSwKKy8qRlYxKi8geydTJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdTJywgJ0EnLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJ30sCisvKkZWMiovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdBJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUid9LAorLypGVjMqLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ0EnLCAnUycsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InfSwKKy8qQlYxKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdTJywgJ0EnLCAnUicsICdSJywgJ1InLCAnRScsICdFJywgJ1InLCAnUicsICdFJywgJ1InLCAnUicsICdSJ30sCisvKkJWMiovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnUycsICdBJywgJ1InLCAnUicsICdSJywgJ0UnLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUid9LAorLypCREkqLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ1MnLCAnQScsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InfSwKKy8qVE9OKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnSScsICdBJywgJ0EnLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJ30sCisvKkFEMSovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnUycsICdBJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUid9LAorLypBRDIqLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ1MnLCAnQScsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InfSwKKy8qQUQzKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdTJywgJ0EnLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJ30sCisvKk5JSyovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnUycsICdBJywgJ1InLCAnUicsICdSJywgJ0cnLCAnRycsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUid9LAorLypBVjEqLyB7J0EnLCAnQScsICdBJywgJ0EnLCAnQScsICdTJywgJ1MnLCAnQScsICdSJywgJ1InLCAnUicsICdHJywgJ0cnLCAnUicsICdSJywgJ0cnLCAnUicsICdSJywgJ1InfSwKKy8qQVYyKi8geydBJywgJ0EnLCAnQScsICdBJywgJ0EnLCAnUycsICdTJywgJ0EnLCAnUicsICdSJywgJ1InLCAnRycsICdSJywgJ1InLCAnUicsICdSJywgJ1InLCAnUicsICdSJ30sCisvKkFWMyovIHsnQScsICdBJywgJ0EnLCAnQScsICdBJywgJ1MnLCAnUycsICdBJywgJ1InLCAnUicsICdSJywgJ0cnLCAnUicsICdHJywgJ1InLCAnUicsICdSJywgJ1InLCAnUid9CisgICAgfTsKKworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENoYXJDbGFzcyhjaGFyIGNoKQorICAgIHsKKyAgICAgICAgaW50IGNoYXJDbGFzcyA9IE5PTjsKKyAgICAgICAgCisgICAgICAgIGlmIChjaCA+PSAnXHUwRTAwJyAmJiBjaCA8PSAnXHUwRTVCJykgeworICAgICAgICAgICAgY2hhckNsYXNzID0gY2xhc3NUYWJsZVtjaCAtICdcdTBFMDAnXTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGNoYXJDbGFzczsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0Q2xhc3NOYW1lKGludCBjbGFzc0lEKQorICAgIHsKKyAgICAgICAgaWYgKGNsYXNzSUQgPCAwIHx8IGNsYXNzSUQgPj0gY0NvdW50KSB7CisgICAgICAgICAgICByZXR1cm4gIioqKiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBjbGFzc05hbWVzW2NsYXNzSURdOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGNoYXIgZ2V0UGFpckFjdGlvbihpbnQgcHJldkNsYXNzLCBpbnQgY3VyckNsYXNzKQorICAgIHsKKyAgICAgICAgaWYgKHByZXZDbGFzcyA8IDAgfHwgcHJldkNsYXNzID49IGNDb3VudCB8CisgICAgICAgICAgICBjdXJyQ2xhc3MgPCAwIHx8IGN1cnJDbGFzcyA+PSBjQ291bnQpIHsKKyAgICAgICAgICAgIHJldHVybiAnQSc7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gcGFpclRhYmxlW3ByZXZDbGFzc11bY3VyckNsYXNzXTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGNsYXNzVGFibGVIZWFkZXIgPQorImNvbnN0IGxlX3VpbnQ4IFRoYWlTaGFwaW5nOjpjbGFzc1RhYmxlW10gPSB7XG4iICsKKyIgICAgLy8gICAgICAgMCAgICAxICAgIDIgICAgMyAgICA0ICAgIDUgICAgNiAgICA3ICAgIDggICAgOSAgICBBICAgIEIgICAgQyAgICBEICAgIEUgICAgRlxuIiArCisiICAgIC8vICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB3cml0ZUNsYXNzVGFibGUoUHJpbnRTdHJlYW0gb3V0cHV0KQorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiV3JpdGluZyBjbGFzcyB0YWJsZS4uLiIpOworICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50KGNsYXNzVGFibGVIZWFkZXIpOworICAgICAgICAKKyAgICAgICAgZm9yIChjaGFyIGNoID0gJ1x1MEUwMCc7IGNoIDw9ICdcdTBFNUInOyBjaCArPSAxKSB7CisgICAgICAgICAgICBpbnQgY2hhckNsYXNzID0gZ2V0Q2hhckNsYXNzKGNoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKChjaCAmIDB4MDAwRikgPT0gMCkgeworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgiXG4gICAgLyoiICsgVXRpbGl0eS5oZXgoY2gsIDQpICsgIiovICIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBvdXRwdXQucHJpbnQoZ2V0Q2xhc3NOYW1lKGNoYXJDbGFzcykpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY2ggPCAnXHUwRTVCJykgeworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgiLCAiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCJcbn07XG5cbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiBkb25lLiIpOworICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaVN0YXRlVGFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaVN0YXRlVGFibGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTkxMDY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpU3RhdGVUYWJsZS5qYXZhCkBAIC0wLDAgKzEsMjA1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAwOSwgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgamF2YS5pby5QcmludFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitwdWJsaWMgY2xhc3MgVGhhaVN0YXRlVGFibGUKK3sKKyAgICBzdGF0aWMgVmVjdG9yIHN0YXRlVGFibGUgPSBudWxsOworICAgIHN0YXRpYyBpbnQgbmV4dFN0YXRlID0gMDsKKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBpbnQgbmV3U3RhdGUoKQorICAgIHsKKyAgICAgICAgVGhhaVN0YXRlVHJhbnNpdGlvbltdIHN0YXRlUm93ID0gbmV3IFRoYWlTdGF0ZVRyYW5zaXRpb25bVGhhaUNoYXJhY3RlckNsYXNzZXMuY0NvdW50XTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgVGhhaUNoYXJhY3RlckNsYXNzZXMuY0NvdW50OyBjICs9IDEpIHsKKyAgICAgICAgICAgIHN0YXRlUm93W2NdID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3RhdGVUYWJsZS5hZGRFbGVtZW50KHN0YXRlUm93KTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXh0U3RhdGUrKzsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgYm9vbGVhbiBpc0xlZ2FsSGVyZShpbnQgc3RhdGUsIGNoYXIgcGFpckFjdGlvbikKKyAgICB7CisgICAgICAgIHN3aXRjaCAocGFpckFjdGlvbikgeworICAgICAgICBjYXNlICdBJzoKKyAgICAgICAgICAgIHJldHVybiBzdGF0ZSA9PSAwOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgJ0MnOgorICAgICAgICBjYXNlICdEJzoKKyAgICAgICAgY2FzZSAnRSc6CisgICAgICAgIGNhc2UgJ0YnOgorICAgICAgICBjYXNlICdHJzoKKyAgICAgICAgY2FzZSAnSCc6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIGNhc2UgJ1InOgorICAgICAgICBjYXNlICdTJzoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBib29sZWFuIGNvbXBvc2VzV2l0aEFueXRoaW5nKGludCBjaGFyQ2xhc3MpCisgICAgeworICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLmNDb3VudDsgYyArPSAxKSB7CisgICAgICAgICAgICBjaGFyIGFjdGlvbiA9IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLmdldFBhaXJBY3Rpb24oY2hhckNsYXNzLCBjKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGFjdGlvbiA+PSAnQycgJiYgYWN0aW9uIDw9ICdJJykgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgc3RhdGljIHZvaWQgZml4TmV4dFN0YXRlcygpCisgICAgeworICAgICAgICBUaGFpU3RhdGVUcmFuc2l0aW9uW10gZ3JvdW5kU3RhdGUgPSAoVGhhaVN0YXRlVHJhbnNpdGlvbltdKSBzdGF0ZVRhYmxlLmVsZW1lbnRBdCgwKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IHMgPSAxOyBzIDwgc3RhdGVUYWJsZS5zaXplKCk7IHMgKz0gMSkgeworICAgICAgICAgICAgVGhhaVN0YXRlVHJhbnNpdGlvbltdIHN0YXRlID0gKFRoYWlTdGF0ZVRyYW5zaXRpb25bXSkgc3RhdGVUYWJsZS5lbGVtZW50QXQocyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgVGhhaUNoYXJhY3RlckNsYXNzZXMuY0NvdW50OyBjICs9IDEpIHsKKyAgICAgICAgICAgICAgICBUaGFpU3RhdGVUcmFuc2l0aW9uIHRyYW5zaXRpb24gPSBzdGF0ZVtjXTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAodHJhbnNpdGlvbi5nZXROZXh0U3RhdGUoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24uc2V0TmV4dFN0YXRlKGdyb3VuZFN0YXRlW2NdLmdldE5leHRTdGF0ZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IGFkZFN0YXRlKGludCBwcmV2Q2xhc3MsIGludCBwcmV2UHJldkNsYXNzKQorICAgIHsKKyAgICAgICAgaW50IHN0YXRlID0gbmV3U3RhdGUoKTsKKyAgICAgICAgVGhhaVN0YXRlVHJhbnNpdGlvbltdIHN0YXRlUm93ID0gKFRoYWlTdGF0ZVRyYW5zaXRpb25bXSkgc3RhdGVUYWJsZS5lbGVtZW50QXQoc3RhdGUpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPCBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5jQ291bnQ7IGMgKz0gMSkgeworICAgICAgICAgICAgY2hhciBwYWlyQWN0aW9uID0gVGhhaUNoYXJhY3RlckNsYXNzZXMuZ2V0UGFpckFjdGlvbihwcmV2Q2xhc3MsIGMpOworICAgICAgICAgICAgaW50IG5leHRTdGF0ZSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN3aXRjaCAocGFpckFjdGlvbikgeworICAgICAgICAgICAgY2FzZSAnRyc6CisgICAgICAgICAgICAgICAgaWYgKHByZXZDbGFzcyA9PSBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5OSUsgJiYKKyAgICAgICAgICAgICAgICAgICAgcHJldlByZXZDbGFzcyA9PSBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5BVjEpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFpckFjdGlvbiA9ICdSJzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZXZQcmV2Q2xhc3MgIT0gVGhhaUNoYXJhY3RlckNsYXNzZXMuQ09BKSB7CisgICAgICAgICAgICAgICAgICAgIHBhaXJBY3Rpb24gPSAnQyc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSAnRSc6CisgICAgICAgICAgICAgICAgaWYgKHByZXZQcmV2Q2xhc3MgPT0gVGhhaUNoYXJhY3RlckNsYXNzZXMuQ09BKSB7CisgICAgICAgICAgICAgICAgICAgIHBhaXJBY3Rpb24gPSAnRic7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSAnSSc6CisgICAgICAgICAgICAgICAgaWYgKHByZXZDbGFzcyA9PSBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5UT04gJiYKKyAgICAgICAgICAgICAgICAgICAgKHByZXZQcmV2Q2xhc3MgPCBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5DT04gfHwKKyAgICAgICAgICAgICAgICAgICAgIHByZXZQcmV2Q2xhc3MgPiBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5DT0QpKSB7CisgICAgICAgICAgICAgICAgICAgIHBhaXJBY3Rpb24gPSAnUyc7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcGFpckFjdGlvbiA9ICdBJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoYyAhPSBwcmV2Q2xhc3MgJiYgaXNMZWdhbEhlcmUoc3RhdGUsIHBhaXJBY3Rpb24pICYmIGNvbXBvc2VzV2l0aEFueXRoaW5nKGMpKSB7CisgICAgICAgICAgICAgICAgbmV4dFN0YXRlID0gYWRkU3RhdGUoYywgcHJldkNsYXNzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3RhdGVSb3dbY10gPSBuZXcgVGhhaVN0YXRlVHJhbnNpdGlvbihuZXh0U3RhdGUsIHBhaXJBY3Rpb24pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gc3RhdGU7CisgICAgfQorICAgIAorICAgIHN0YXRpYworICAgIHsKKyAgICAgICAgc3RhdGVUYWJsZSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIAorICAgICAgICBhZGRTdGF0ZShUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5OT04sIFRoYWlDaGFyYWN0ZXJDbGFzc2VzLk5PTik7CisgICAgICAgICAgICAKKyAgICAgICAgZml4TmV4dFN0YXRlcygpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFRoYWlTdGF0ZVRyYW5zaXRpb24gZ2V0VHJhbnNpdGlvbihpbnQgc3RhdGUsIGludCBjdXJyQ2xhc3MpCisgICAgeworICAgICAgICBUaGFpU3RhdGVUcmFuc2l0aW9uW10gcm93ID0gKFRoYWlTdGF0ZVRyYW5zaXRpb25bXSkgc3RhdGVUYWJsZS5lbGVtZW50QXQoc3RhdGUpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJvd1tjdXJyQ2xhc3NdOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBoZWFkZXIwID0KKyJjb25zdCBUaGFpU2hhcGluZzo6U3RhdGVUcmFuc2l0aW9uIFRoYWlTaGFwaW5nOjp0aGFpU3RhdGVUYWJsZVtdW1RoYWlTaGFwaW5nOjpjbGFzc0NvdW50XSA9IHsiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGhlYWRlcjEgPQorIiAgICAvLystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGhlYWRlcjIgPQorIiAgICAvL3wgICAgICAgICBOICAgICAgICAgQyAgICAgICAgIEMgICAgICAgICBDICAgICAgICAgTCAgICAgICAgIEYgICAgICAgICBGICAgICAgICAgRiAgICAgICAgIEIgICAgICAgICBCICAgICAgICAgQiAgICAgICAgIFQgICAgICAgICBBICAgICAgICAgQSAgICAgICAgIEEgICAgICAgICBOICAgICAgICAgQSAgICAgICAgIEEgICAgICAgICBBICAgIHxcbiIgKworIiAgICAvL3wgICAgICAgICBPICAgICAgICAgTyAgICAgICAgIE8gICAgICAgICBPICAgICAgICAgViAgICAgICAgIFYgICAgICAgICBWICAgICAgICAgViAgICAgICAgIFYgICAgICAgICBWICAgICAgICAgRCAgICAgICAgIE8gICAgICAgICBEICAgICAgICAgRCAgICAgICAgIEQgICAgICAgICBJICAgICAgICAgViAgICAgICAgIFYgICAgICAgICBWICAgIHxcbiIgKworIiAgICAvL3wgICAgICAgICBOICAgICAgICAgTiAgICAgICAgIEEgICAgICAgICBEICAgICAgICAgTyAgICAgICAgIDEgICAgICAgICAyICAgICAgICAgMyAgICAgICAgIDEgICAgICAgICAyICAgICAgICAgSSAgICAgICAgIE4gICAgICAgICAxICAgICAgICAgMiAgICAgICAgIDMgICAgICAgICBLICAgICAgICAgMSAgICAgICAgIDIgICAgICAgICAzICAgIHwiOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB3cml0ZVN0YXRlVGFibGUoUHJpbnRTdHJlYW0gb3V0cHV0KQorICAgIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludCgiV3JpdGluZyBzdGF0ZSB0YWJsZS4uLiIpOworICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50bG4oaGVhZGVyMCk7CisgICAgICAgIG91dHB1dC5wcmludGxuKGhlYWRlcjEpOworICAgICAgICBvdXRwdXQucHJpbnRsbihoZWFkZXIyKTsKKyAgICAgICAgb3V0cHV0LnByaW50bG4oaGVhZGVyMSk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBzdGF0ZSA9IDA7IHN0YXRlIDwgc3RhdGVUYWJsZS5zaXplKCk7IHN0YXRlICs9IDEpIHsKKyAgICAgICAgICAgIFRoYWlTdGF0ZVRyYW5zaXRpb25bXSByb3cgPSAoVGhhaVN0YXRlVHJhbnNpdGlvbltdKSBzdGF0ZVRhYmxlLmVsZW1lbnRBdChzdGF0ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiICAgIC8qIik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzdGF0ZSA8IDEwKSB7CisgICAgICAgICAgICAgICAgb3V0cHV0LnByaW50KCIwIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludChzdGF0ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgiKi8geyIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IFRoYWlDaGFyYWN0ZXJDbGFzc2VzLmNDb3VudDsgYyArPSAxKSB7CisgICAgICAgICAgICAgICAgcm93W2NdLndyaXRlKG91dHB1dCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGMgPCBUaGFpQ2hhcmFjdGVyQ2xhc3Nlcy5jQ291bnQgLSAxKSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgiLCAiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludCgifSIpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzdGF0ZSA8IHN0YXRlVGFibGUuc2l6ZSgpIC0gMSkgeworICAgICAgICAgICAgICAgIG91dHB1dC5wcmludCgiLCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIG91dHB1dC5wcmludGxuKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludGxuKCJ9O1xuIik7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiBkb25lLiIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaVN0YXRlVGFibGVCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlTdGF0ZVRhYmxlQnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4ZDA0ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlTdGF0ZVRhYmxlQnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDA5LCAyMDAzCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sYXlvdXQ7CisKKworcHVibGljIGNsYXNzIFRoYWlTdGF0ZVRhYmxlQnVpbGRlcgoreworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pCisgICAgeworICAgICAgICBUaGFpU3RhdGVUYWJsZU1vZHVsZVdyaXRlciB3cml0ZXIgPSBuZXcgVGhhaVN0YXRlVGFibGVNb2R1bGVXcml0ZXIoKTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlci5vcGVuRmlsZShhcmdzWzBdKTsKKyAgICAgICAgd3JpdGVyLndyaXRlVGFibGVzKCk7CisgICAgICAgIHdyaXRlci5jbG9zZUZpbGUoKTsKKyAgICAgICAgCisgICAgfQorICAgIAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpU3RhdGVUYWJsZU1vZHVsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UaGFpU3RhdGVUYWJsZU1vZHVsZVdyaXRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmZjlhMGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlTdGF0ZVRhYmxlTW9kdWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ3JlYXRlZCBvbiBEZWMgMDksIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworcHVibGljIGNsYXNzIFRoYWlTdGF0ZVRhYmxlTW9kdWxlV3JpdGVyIGV4dGVuZHMgTW9kdWxlV3JpdGVyCit7CisgICAgcHVibGljIFRoYWlTdGF0ZVRhYmxlTW9kdWxlV3JpdGVyKCkKKyAgICB7CisgICAgICAgIHN1cGVyKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVUYWJsZXMoKQorICAgIHsKKyAgICAgICAgd3JpdGVIZWFkZXIobnVsbCwgaW5jbHVkZUZpbGVzKTsKKyAgICAgICAgCisgICAgICAgIFRoYWlDaGFyYWN0ZXJDbGFzc2VzLndyaXRlQ2xhc3NUYWJsZShvdXRwdXQpOworICAgICAgICBUaGFpU3RhdGVUYWJsZS53cml0ZVN0YXRlVGFibGUob3V0cHV0KTsKKyAgICAgICAgCisgICAgICAgIHdyaXRlVHJhaWxlcigpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGluY2x1ZGVGaWxlcyA9IHsiTEVUeXBlcy5oIiwgIlRoYWlTaGFwaW5nLmgifTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlTdGF0ZVRyYW5zaXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVGhhaVN0YXRlVHJhbnNpdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkMDVlYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbGF5b3V0L1RoYWlTdGF0ZVRyYW5zaXRpb24uamF2YQpAQCAtMCwwICsxLDY2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5OC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIERlYyAwOSwgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubGF5b3V0OworCitpbXBvcnQgamF2YS5pby5QcmludFN0cmVhbTsKKworcHVibGljIGNsYXNzIFRoYWlTdGF0ZVRyYW5zaXRpb24KK3sKKyAgICBpbnQgbmV4dFN0YXRlOworICAgIGNoYXIgYWN0aW9uOworICAgICAgICAKKyAgICBwdWJsaWMgVGhhaVN0YXRlVHJhbnNpdGlvbihpbnQgbmV4dFN0YXRlLCBjaGFyIGFjdGlvbikKKyAgICB7CisgICAgICAgIHRoaXMubmV4dFN0YXRlID0gbmV4dFN0YXRlOworICAgICAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbjsKKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0TmV4dFN0YXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXh0U3RhdGU7CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgZmluYWwgY2hhciBnZXRBY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFjdGlvbjsKKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldE5leHRTdGF0ZShpbnQgbmV3TmV4dFN0YXRlKQorICAgIHsKKyAgICAgICAgbmV4dFN0YXRlID0gbmV3TmV4dFN0YXRlOworICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0QWN0aW9uKGNoYXIgbmV3QWN0aW9uKQorICAgIHsKKyAgICAgICAgYWN0aW9uID0gbmV3QWN0aW9uOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICgobmV4dFN0YXRlIDwgMTApID8gIjAiIDogIiIpICsgbmV4dFN0YXRlICsgIi8iICsgYWN0aW9uICsgIiAiOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShQcmludFN0cmVhbSBvdXRwdXQpCisgICAgeworICAgICAgICBvdXRwdXQucHJpbnQoInsiKTsKKyAgICAgICAgCisgICAgICAgIGlmIChuZXh0U3RhdGUgPCAxMCkgeworICAgICAgICAgICAgb3V0cHV0LnByaW50KCIgIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG91dHB1dC5wcmludChuZXh0U3RhdGUpOworICAgICAgICAKKyAgICAgICAgb3V0cHV0LnByaW50KCIsIHQiKTsKKyAgICAgICAgb3V0cHV0LnByaW50KGFjdGlvbik7CisgICAgICAgIG91dHB1dC5wcmludCgifSIpOworICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVHJlZVdhbGtlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xheW91dC9UcmVlV2Fsa2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWVjNDQ3MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sYXlvdXQvVHJlZVdhbGtlci5qYXZhCkBAIC0wLDAgKzEsMTkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk4LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRGVjIDMsIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxheW91dDsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIFRyZWVXYWxrZXIKK3sKKyAgICBhYnN0cmFjdCB2b2lkIGRvd24oaW50IGNoKTsKKyAgICBhYnN0cmFjdCB2b2lkIHVwKCk7CisgICAgYWJzdHJhY3Qgdm9pZCBsaWdhdHVyZShpbnQgbGlnKTsKKyAgICBhYnN0cmFjdCB2b2lkIGRvbmUoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQXJyYXlFbnVtZXJhdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9BcnJheUVudW1lcmF0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTc3YzBjOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQXJyYXlFbnVtZXJhdGlvbi5qYXZhCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgZmluYWwgY2xhc3MgQXJyYXlFbnVtZXJhdGlvbiBpbXBsZW1lbnRzIEVudW1lcmF0aW9uIHsKKworICAgIHB1YmxpYyBBcnJheUVudW1lcmF0aW9uKE9iamVjdFtdIGFycmF5LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICB0aGlzLmFycmF5ID0gYXJyYXk7CisgICAgICAgIHBvc2l0aW9uID0gc3RhcnQ7CisgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKyAgICB9CisKKyAgICBwdWJsaWMgQXJyYXlFbnVtZXJhdGlvbihieXRlW10gYXJyYXksIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIHRoaXMuYXJyYXkgPSBuZXcgT2JqZWN0W2FycmF5Lmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHRoaXMuYXJyYXlbaV0gPSBuZXcgQnl0ZShhcnJheVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgcG9zaXRpb24gPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBBcnJheUVudW1lcmF0aW9uKGNoYXJbXSBhcnJheSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgdGhpcy5hcnJheSA9IG5ldyBPYmplY3RbYXJyYXkubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGhpcy5hcnJheVtpXSA9IG5ldyBDaGFyYWN0ZXIoYXJyYXlbaV0pOworICAgICAgICB9CisgICAgICAgIHBvc2l0aW9uID0gc3RhcnQ7CisgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKyAgICB9CisKKyAgICBwdWJsaWMgQXJyYXlFbnVtZXJhdGlvbihzaG9ydFtdIGFycmF5LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICB0aGlzLmFycmF5ID0gbmV3IE9iamVjdFthcnJheS5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0aGlzLmFycmF5W2ldID0gbmV3IFNob3J0KGFycmF5W2ldKTsKKyAgICAgICAgfQorICAgICAgICBwb3NpdGlvbiA9IHN0YXJ0OworICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisgICAgfQorCisgICAgcHVibGljIEFycmF5RW51bWVyYXRpb24oaW50W10gYXJyYXksIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIHRoaXMuYXJyYXkgPSBuZXcgT2JqZWN0W2FycmF5Lmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHRoaXMuYXJyYXlbaV0gPSBuZXcgSW50ZWdlcihhcnJheVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgcG9zaXRpb24gPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBBcnJheUVudW1lcmF0aW9uKGZsb2F0W10gYXJyYXksIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIHRoaXMuYXJyYXkgPSBuZXcgT2JqZWN0W2FycmF5Lmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHRoaXMuYXJyYXlbaV0gPSBuZXcgRmxvYXQoYXJyYXlbaV0pOworICAgICAgICB9CisgICAgICAgIHBvc2l0aW9uID0gc3RhcnQ7CisgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKyAgICB9CisKKyAgICBwdWJsaWMgQXJyYXlFbnVtZXJhdGlvbihkb3VibGVbXSBhcnJheSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgdGhpcy5hcnJheSA9IG5ldyBPYmplY3RbYXJyYXkubGVuZ3RoXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGhpcy5hcnJheVtpXSA9IG5ldyBEb3VibGUoYXJyYXlbaV0pOworICAgICAgICB9CisgICAgICAgIHBvc2l0aW9uID0gc3RhcnQ7CisgICAgICAgIHRoaXMubGltaXQgPSBsaW1pdDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNNb3JlRWxlbWVudHMoKSB7CisgICAgICAgICByZXR1cm4gcG9zaXRpb24gPCBsaW1pdDsKKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IG5leHRFbGVtZW50KCkgeworICAgICAgICBpZiAocG9zaXRpb24gPCBsaW1pdCkKKyAgICAgICAgICAgIHJldHVybiBhcnJheVtwb3NpdGlvbisrXTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhyb3cgbmV3IGphdmEudXRpbC5Ob1N1Y2hFbGVtZW50RXhjZXB0aW9uKCk7CisgICAgfQorICAgIC8vIHByaXZhdGVzCisgICAgcHJpdmF0ZSBPYmplY3RbXSBhcnJheTsKKyAgICBwcml2YXRlIGludCBwb3NpdGlvbiA9IDA7CisgICAgcHJpdmF0ZSBpbnQgbGltaXQgPSAwOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ2FsY3VsYXRlQ1JDMzIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ2FsY3VsYXRlQ1JDMzIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzllYzUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9DYWxjdWxhdGVDUkMzMi5qYXZhCkBAIC0wLDAgKzEsODYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5tYXRoLio7CisKKy8qCisgKiAgVGhlIGNvZGUgaXMgZnJvbSAgaHR0cDovL3d3dy50aGVvcmVtLmNvbS9qYXZhL0NSQzMyLmphdmEKKyAqIENhbGN1bGF0ZXMgdGhlIENSQzMyIC0gMzIgYml0IEN5Y2xpY2FsIFJlZHVuZGFuY3kgQ2hlY2sKKyAqIDxQPiBUaGlzIGNoZWNrIGlzIHVzZWQgaW4gbnVtZXJvdXMgc3lzdGVtcyB0byB2ZXJpZnkgdGhlIGludGVncml0eQorICogb2YgaW5mb3JtYXRpb24uICBJdCdzIGFsc28gdXNlZCBhcyBhIGhhc2hpbmcgZnVuY3Rpb24uICBVbmxpa2UgYSByZWd1bGFyCisgKiBjaGVja3N1bSwgaXQncyBzZW5zaXRpdmUgdG8gdGhlIG9yZGVyIG9mIHRoZSBjaGFyYWN0ZXJzLgorICogSXQgcHJvZHVjZXMgYSAzMiBiaXQKKyAqIAorICogQGF1dGhvciBNaWNoYWVsIExlY3V5ZXIgKG1qbEB0aGVvcmVtLmNvbSkKKyAqIEB2ZXJzaW9uIDEuMSBBdWd1c3QgMTEsIDE5OTgKKyAqLworIAorLyogSUNVIGlzIG5vdCBlbmRpYW4gcG9ydGFibGUsIGJlY2F1c2UgSUNVIGRhdGEgZ2VuZXJhdGVkIG9uIGJpZyBlbmRpYW4gbWFjaGluZXMgY2FuIGJlCisgKiBwb3J0ZWQgdG8gYmlnIGVuZGlhbiBtYWNoaW5lcyBidXQgbm90IHRvIGxpdHRsZSBlbmRpYW4gbWFjaGluZXMgYW5kIHZpY2UgdmVyc2EuIFRoZSAKKyAqIGNvbnZlcnNpb24gaXMgbm90IHBvcnRhYmxlIGFjcm9zcyBwbGF0Zm9ybXMgd2l0aCBkaWZmZXJlbnQgZW5kaWFuZXNzLiAKKyAqLworIAorcHVibGljIGNsYXNzIENhbGN1bGF0ZUNSQzMyIHsKKyAgICBzdGF0aWMgaW50IENSQ1RhYmxlW107CisgICAgc3RhdGljIGludCBjcmM7CisKKyAgICBzdGF0aWMgdm9pZCBidWlsZENSQ1RhYmxlKCkgeworICAgICAgICBmaW5hbCBpbnQgQ1JDMzJfUE9MWU5PTUlBTCA9IDB4RURCODgzMjA7CisgICAgICAgIGludCBpLCBqOworICAgICAgICBpbnQgY3JjOworICAgICAgICBDUkNUYWJsZSA9IG5ldyBpbnRbMjU2XTsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDw9IDI1NTsgaSsrKSB7CisgICAgICAgICAgICBjcmMgPSBpOworICAgICAgICAgICAgZm9yIChqID0gODsgaiA+IDA7IGotLSkgeworICAgICAgICAgICAgICAgIGlmICgoY3JjICYgMSkgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBjcmMgPSAoY3JjID4+PiAxKSBeIENSQzMyX1BPTFlOT01JQUw7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY3JjID4+Pj0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBDUkNUYWJsZVtpXSA9IGNyYzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXB1dGVDUkMzMihTdHJpbmcgYnVmZmVyKSB7CisgICAgICAgIHJldHVybiBjb21wdXRlQ1JDMzIoYnVmZmVyLCAweEZGRkZGRkZGKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wdXRlQ1JDMzIoYnl0ZSBidWZmZXJbXSkgeworICAgICAgICByZXR1cm4gY29tcHV0ZUNSQzMyKGJ1ZmZlciwgMHhGRkZGRkZGRik7CisgICAgfQorICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcHV0ZUNSQzMyKFN0cmluZyBidWZmZXIsIGludCBjcmMpeworICAgICAgICByZXR1cm4gY29tcHV0ZUNSQzMyKGJ1ZmZlci5nZXRCeXRlcygpLCBjcmMpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXB1dGVDUkMzMihieXRlIGJ1ZmZlcltdLCBpbnQgY3JjKSB7CisgICAgICAgIHJldHVybiBjb21wdXRlQ1JDMzIoYnVmZmVyLCAwLCBidWZmZXIubGVuZ3RoLCBjcmMpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXB1dGVDUkMzMihieXRlIGJ1ZmZlcltdLCBpbnQgc3RhcnQsIGludCBjb3VudCwgaW50IGxhc3RjcmMpeworICAgICAgICBidWlsZENSQ1RhYmxlKCk7ICAKKyAgICAgICAgaW50IHRlbXAxLCB0ZW1wMjsKKyAgICAgICAgaW50IGkgPSBzdGFydDsKKyAgICAgICAgY3JjID0gbGFzdGNyYzsKKyAgICAgIAorICAgICAgICB3aGlsZSAoY291bnQtLSAhPSAwKXsKKyAgICAgICAgICAgIHRlbXAxID0gY3JjID4+PiA4OworICAgICAgICAgICAgYnl0ZSBzID0gYnVmZmVyW2krK107CisgICAgICAgICAgICB0ZW1wMiA9IENSQ1RhYmxlWyhjcmMgXnMpICYgMHhGRl07CisgICAgICAgICAgICBjcmMgPSB0ZW1wMSBeIHRlbXAyOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjcmM7CisgICAgfQorCisgICAgcHVibGljIGJ5dGUgW10gdG9CeXRlcygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKG5ldyBJbnRlZ2VyKGNyYykudG9TdHJpbmcoKSkudG9CeXRlQXJyYXkoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbGxhdGlvbkl0ZW0uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29sbGF0aW9uSXRlbS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg2ZjNlNDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbGxhdGlvbkl0ZW0uamF2YQpAQCAtMCwwICsxLDg2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKKworLyoqCisgKiBBIENvbGxhdGlvbkl0ZW0gcmVwcmVzZW50cyBhIHNpbmdsZSBlbnRyeSBpbiBhIGNvbGxhdGlvbiBzZXF1ZW5jZS4KKyAqLworcHVibGljIGNsYXNzIENvbGxhdGlvbkl0ZW0geworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXJbXSBPUF9DSEFSUyA9IHsnPScsICc8JywgJzsnLCAnLCcsICcmJyB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXJbXSBTUEVDSUFMX0NIQVJTID0geyAnJicsICdAJyAsICc9JywgJzwnLCAnOycsICcsJyB9OworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PTkUgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBSSU1BUlkgPSAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNFQ09OREFSWSA9IDI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVSVElBUlkgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGSVJTVCA9IDQ7CisgICAgcHVibGljIGludCBvcDsKKyAgICBwdWJsaWMgU3RyaW5nIGl0ZW07CisgICAgcHVibGljIFN0cmluZyBleHBhbnNpb247CisgICAgcHVibGljIFN0cmluZyBjb21tZW50OworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQ29sbGF0aW9uSXRlbSBGT1JXQVJEID0gbmV3IENvbGxhdGlvbkl0ZW0oTk9ORSwgIiIpIHsKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsgcmV0dXJuICIiOyB9CisgICAgfTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbGxhdGlvbkl0ZW0gQkFDS1dBUkQgPSBuZXcgQ29sbGF0aW9uSXRlbShOT05FLCAiIikgeworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeyByZXR1cm4gIkAiOyB9CisgICAgfTsKKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uSXRlbShTdHJpbmcgaXRlbSkgeworICAgICAgICB0aGlzLm9wID0gRklSU1Q7CisgICAgICAgIHRoaXMuaXRlbSA9IGNsZWFuU3RyaW5nKGl0ZW0pOworICAgICAgICB0aGlzLmV4cGFuc2lvbiA9ICIiOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uSXRlbShpbnQgb3AsIFN0cmluZyBpdGVtKSB7CisgICAgICAgIHRoaXMob3AsIGl0ZW0sIG51bGwpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29sbGF0aW9uSXRlbShpbnQgb3AsIFN0cmluZyBpdGVtLCBTdHJpbmcgZXhwYW5zaW9uKSB7CisgICAgICAgIHRoaXMub3AgPSBNYXRoLmFicyhvcCk7CisgICAgICAgIGlmICh0aGlzLm9wID4gVEVSVElBUlkpIHRoaXMub3AgPSBURVJUSUFSWTsKKyAgICAgICAgdGhpcy5pdGVtID0gY2xlYW5TdHJpbmcoUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKGl0ZW0pKTsKKyAgICAgICAgdGhpcy5leHBhbnNpb24gPSBjbGVhblN0cmluZyhQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUoZXhwYW5zaW9uKSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldENvbW1lbnQoU3RyaW5nIGNvbW1lbnQpIHsKKyAgICAgICAgdGhpcy5jb21tZW50ID0gY29tbWVudDsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgaWYgKGV4cGFuc2lvbi5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gIiIrT1BfQ0hBUlNbb3BdK2l0ZW07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gIiYiK2V4cGFuc2lvbitPUF9DSEFSU1tvcF0raXRlbTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBjbGVhblN0cmluZyhTdHJpbmcgc291cmNlKSB7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuICIiOworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gc291cmNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBmaW5hbCBjaGFyIGMgPSByZXN1bHQuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKChjID09ICdAJykgfHwgKGMgPT0gJ1x0JykgfHwgKGMgPT0gJ1xuJykKKyAgICAgICAgICAgICAgICAgICAgfHwgKGMgPT0gJ1xmJykgfHwgKGMgPT0nXHInKSB8fCAoYyA9PSAnXDAxMycpCisgICAgICAgICAgICAgICAgICAgIHx8ICgoYyA8PSAnXHUwMDJGJykgJiYgKGMgPj0gJ1x1MDAyMCcpKQorICAgICAgICAgICAgICAgICAgICB8fCAoKGMgPD0gJ1x1MDAzRicpICYmIChjID49ICdcdTAwM0EnKSkKKyAgICAgICAgICAgICAgICAgICAgfHwgKChjIDw9ICdcdTAwNjAnKSAmJiAoYyA+PSAnXHUwMDVCJykpCisgICAgICAgICAgICAgICAgICAgIHx8ICgoYyA8PSAnXHUwMDdFJykgJiYgKGMgPj0gJ1x1MDA3QicpKSkgeworICAgICAgICAgICAgICAgIGlmIChpIDwgcmVzdWx0Lmxlbmd0aCgpLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnN1YnN0cmluZygwLCBpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlxcIiArIGMgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyByZXN1bHQuc3Vic3RyaW5nKGkrMSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnN1YnN0cmluZygwLCBpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIlxcIiArIGM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGkgKz0gMjsgLy9za2lwIHRoZSB0d28gY2hhcmFjdGVycyB3ZSBpbnNlcnRlZAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGFyYWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db21wYXJhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWVmNzA4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGFyYWJsZS5qYXZhCkBAIC0wLDAgKzEsMTQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworcHVibGljIGludGVyZmFjZSBDb21wYXJhYmxlIHsKKyAgICAvKioKKyAgICAgICAgcmV0dXJucyAwIGlmIG9iamVjdHMgYXJlIGVxdWFsLCAtMSBpZiBhIGlzIGxlc3MgdGhhbiBiLCAxIG90aGVyd2lzZS4KKyAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCBiKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbXBhcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGFyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYyMzdjYzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbXBhcmF0b3IuamF2YQpAQCAtMCwwICsxLDE0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK3B1YmxpYyBpbnRlcmZhY2UgQ29tcGFyYXRvciB7CisgICAgLyoqCisgICAgICAgIHJldHVybnMgMCBpZiBvYmplY3RzIGFyZSBlcXVhbCwgLTEgaWYgYSBpcyBsZXNzIHRoYW4gYiwgMSBvdGhlcndpc2UuCisgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGEsIE9iamVjdCBiKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGxleFRyYW5zaXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29tcGxleFRyYW5zaXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYzI4N2UzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db21wbGV4VHJhbnNpdGlvbi5qYXZhCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiBBIENvbXBsZXhUcmFuc2l0aW9uIGlzIGNvbmNlcHR1YWxseSBhIHNpbmdsZSB0cmFuc2l0aW9uIHRoYXQKKyAqIGNvbnN1bWVzIG11bHRpcGxlIGlucHV0IGNoYXJhY3RlcnMuCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBDb21wbGV4VHJhbnNpdGlvbiBpbXBsZW1lbnRzIExleC5UcmFuc2l0aW9uIHsKKyAgICAgICAgLy90aGUgdmFsdWUgdGhhdCBpcyByZXR1cm5lZCBieSBzdWJjbGFzc2VzIGluZGljYXRpbmcgdGhhdAorICAgICAgICAvL3RoZSB0cmFuc2l0aW9uIHdhcyBzdWNjZXNzZnVsbC4gIFRoaXMgdmFsdWUgaXMgdGhlbgorICAgICAgICAvL2Rpc2NhcmRlZCBhbmQgdGhlIHZhbHVlIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IKKyAgICAgICAgLy9pcyB0aGVuIHJldHVybmVkIHRvIHRoZSBjYWxsZXIuCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgU1VDQ0VTUyA9IExleC5FTkRfT0ZfRklMRSAtIDE7CisgICAgcHJpdmF0ZSBpbnQgc3VjY2VzczsgICAgLy92YWx1ZSB0byByZXR1cm4gaWYgc3VjY2Vzc2Z1bGwKKyAgICBwcml2YXRlIExleCBwYXJzZXI7ICAgICAvL3RoZSBwYXJzZXIgdXNlZCBmb3IgdGhpcyB0cmFuc2l0aW9uCisgICAgICAgIAorICAgIHB1YmxpYyBDb21wbGV4VHJhbnNpdGlvbihpbnQgc3VjY2VzcykgeworICAgICAgICB0aGlzLnN1Y2Nlc3MgPSBzdWNjZXNzOworICAgICAgICB0aGlzLnBhcnNlciA9IG5ldyBMZXgobnVsbCk7CisgICAgICAgIC8vdGhpcy5wYXJzZXIuZGVidWcodHJ1ZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgZG9BY3Rpb24oaW50IGMsIFB1c2hiYWNrUmVhZGVyIGlucHV0LCBTdHJpbmdCdWZmZXIgYnVmZmVyKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpbnB1dC51bnJlYWQoYyk7CisgICAgICAgIHBhcnNlci5zZXRTdGF0ZXMoZ2V0U3RhdGVzKCkpOworICAgICAgICBwYXJzZXIuc2V0SW5wdXQoaW5wdXQpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcGFyc2VyLm5leHRUb2tlbigpOworICAgICAgICAgICAgaGFuZGxlU3VjY2VzcyhwYXJzZXIsIGJ1ZmZlcik7CisgICAgICAgICAgICByZXR1cm4gc3VjY2VzczsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaGFuZGxlRmFpbHVyZShwYXJzZXIsIGJ1ZmZlcik7CisgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICB9CisgICAgfQorCisgICAgICAgIC8vY2FsbGVkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBwYXJzZQorICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVN1Y2Nlc3MoTGV4IHBhcnNlciwgU3RyaW5nQnVmZmVyIG91dHB1dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcGFyc2VyLmFwcGVuZERhdGFUbyhvdXRwdXQpOworICAgIH0KKyAgICAKKyAgICAgICAgLy9jYWxsZWQgYWZ0ZXIgYSBmYWlsZWQgcGFyc2UKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVGYWlsdXJlKExleCBwYXJzZXIsIFN0cmluZ0J1ZmZlciBvdXRwdXQpIHsKKyAgICB9CisgICAgCisgICAgICAgIC8vc3ViY2xhc3NlcyBzaG91bGQgcmV0dXJuIHRoZSBzdGF0ZXMgdG8gdXNlIHRvIHBhcnNlIHRoaXMKKyAgICAgICAgLy90cmFuc2l0aW9uCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IExleC5UcmFuc2l0aW9uW11bXSBnZXRTdGF0ZXMoKTsKKworICAgIHB1YmxpYyBDb21wbGV4VHJhbnNpdGlvbiBkZWJ1Zyhib29sZWFuIGRlYnVnKSB7CisgICAgICAgIHBhcnNlci5kZWJ1ZyhkZWJ1Zyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29tcGxleFRyYW5zaXRpb24gZGVidWcoYm9vbGVhbiBkZWJ1ZywgU3RyaW5nIHRhZykgeworICAgICAgICBwYXJzZXIuZGVidWcoZGVidWcsIHRhZyk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydEFsbEphdmFMb2NhbGVzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRBbGxKYXZhTG9jYWxlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBhMGRkMjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRBbGxKYXZhTG9jYWxlcy5qYXZhCkBAIC0wLDAgKzEsOTUgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqCisKK1RoZSBDb252ZXJ0SmF2YUxvY2FsZSBhcHBsaWNhdGlvbiBjb252ZXJ0cyBqYXZhIGxvY2FsZXMgdG8gCitKYXZhIGFuZCBJQ1UgTG9jYWxlIGZpbGVzLiAgSXQncyB1c2FnZSBpcyBhcyBmb2xsb3dzCisKKyAgICBDb252ZXJ0SmF2YUxvY2FsZSBbLTExXSBbLTEyXSBbLWljdV0gbG9jYWxlLi4uCisKK1VzYWdlCisKKy0xMQorICAgIElmIHRoaXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgZGF0YSBpcyBvdXRwdXQgaW4gCisgICAgSmF2YSAxLjEueCBsb2NhbGUgZm9ybWF0LgorICAgIAorLTEyCisgICAgSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCBkYXRhIGlzIG91dHB1dCBpbgorICAgIEphdmEgMS4yLnggbG9jYWxlIGZvcm1hdC4gIElmIGFuIG91dHB1dCBmb3JtYXQKKyAgICBpcyBub3Qgc3BlY2lmaWVkLCAtMTIgaXMgdGhlIGRlZmF1bHQuCisgICAgCistaWN1CisgICAgSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCBkYXRhIGlzIG91dHB1dCBpbgorICAgIElDVSBsb2NhbGUgZm9ybWF0LgorCitsb2NhbGUKKyAgICBUaGUgbG9jYWxlIHRvIGNvbnZlcnQKKworCisqLworLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3B1YmxpYyBjbGFzcyBDb252ZXJ0QWxsSmF2YUxvY2FsZXMgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG5ldyBDb252ZXJ0QWxsSmF2YUxvY2FsZXMoYXJncyk7CisgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVua25vd24gZXJyb3I6ICIrdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIENvbnZlcnRBbGxKYXZhTG9jYWxlcyhTdHJpbmcgYXJnc0luW10pIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBwYWNrYWdlTmFtZSA9IGFyZ3NJblswXTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhpcyBpcyB0aGUgcGFja2FnZW5hbWUgOiAiK3BhY2thZ2VOYW1lKTsKKyAgICAgICAgICAgIFN0cmluZyBjbGFzc25hbWUgPSBwYWNrYWdlTmFtZSsiLkxvY2FsZSI7CisgICAgICAgICAgICAvL2NsYXNzbmFtZS5jb25jYXQoKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhpcyBpcyB0aGUgY2xhc3NuYW1lIDogIitjbGFzc25hbWUpOworICAgICAgICAgIC8qICBDbGFzcyBjbCA9IENsYXNzLmZvck5hbWUoY2xhc3NuYW1lKTsKKyAgICAgICAgICAgIENsYXNzW10gcGFyYW1MaXN0PW51bGw7CisgICAgICAgICAgICBNZXRob2QgZ3ZsID0gY2wuZ2V0TWV0aG9kKCJnZXRBdmFpbGFibGVMb2NhbGVzIiwgcGFyYW1MaXN0KTsKKyAgICAgICAgICAgIE9iamVjdFtdIHBhcmFtcyA9IG5ldyBPYmplY3RbXXsiIn07CisgICAgICAgICAgICBndmwuaW52b2tlKG51bGwscGFyYW1zKTsqLworICAgICAgICAgICAgZmluYWwgTG9jYWxlW10gbG9jYWxlcyA9IGphdmEudXRpbC5Mb2NhbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcygpOy8vKExvY2FsZVtdKWd2bC5pbnZva2UobnVsbCxwYXJhbXMpOzsKKyAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyBsb2NhbGVOYW1lID0gbG9jYWxlc1tpXS50b1N0cmluZygpOworICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZ1tdIGFyZ3MgPSB7Ii1wYWNrYWdlIixwYWNrYWdlTmFtZSwiLWljdSIsIGxvY2FsZU5hbWV9OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29udmVydGluZyAiK2xvY2FsZU5hbWUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZpbmFsIEZpbGVPdXRwdXRTdHJlYW0gb3V0RmlsZSA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKGxvY2FsZU5hbWUgKyAiLnR4dCIpOworICAgICAgICAgICAgICAgIGZpbmFsIFByaW50U3RyZWFtIG91dCA9IG5ldyBQcmludFN0cmVhbShvdXRGaWxlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBuZXcgQ29udmVydEphdmFMb2NhbGUoYXJncywgb3V0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29udmVydGluZyByb290IGxvY2FsZSIpOworICAgICAgICAgICAgZmluYWwgU3RyaW5nW10gYXJncyA9IHsiLXBhY2thZ2UiLHBhY2thZ2VOYW1lLCItaWN1Iiwicm9vdCJ9OworICAgICAgICAgICAgZmluYWwgRmlsZU91dHB1dFN0cmVhbSBvdXRGaWxlID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0oInJvb3QudHh0Iik7CisgICAgICAgICAgICBmaW5hbCBQcmludFN0cmVhbSBvdXQgPSBuZXcgUHJpbnRTdHJlYW0ob3V0RmlsZSwgdHJ1ZSk7CisgICAgICAgICAgICBuZXcgQ29udmVydEphdmFMb2NhbGUoYXJncywgb3V0KTsKKyAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICAgICAgICAgIAorICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVuZXhwZWN0ZWQgSU8gZXJyb3IiKTsKKyAgICAgICAgfWNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0SUNVTGlzdFJlc291cmNlQnVuZGxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJkMjEzYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydElDVUxpc3RSZXNvdXJjZUJ1bmRsZS5qYXZhCkBAIC0wLDAgKzEsMTY1IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqCisgKiBAYXV0aG9yIHJhbQorICoKKyAqIFRvIGNoYW5nZSB0aGlzIGdlbmVyYXRlZCBjb21tZW50IGVkaXQgdGhlIHRlbXBsYXRlIHZhcmlhYmxlICJ0eXBlY29tbWVudCI6CisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5UZW1wbGF0ZXMuCisgKiBUbyBlbmFibGUgYW5kIGRpc2FibGUgdGhlIGNyZWF0aW9uIG9mIHR5cGUgY29tbWVudHMgZ28gdG8KKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPkNvZGUgR2VuZXJhdGlvbi4KKyAqLworcHVibGljIGNsYXNzIENvbnZlcnRJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgT1BUXzExID0gKGJ5dGUpMHgwMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE9QVF8xMiA9IChieXRlKTB4MDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBPUFRfSUNVID0gKGJ5dGUpMHgwNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE9QVF9QQUNLQUdFID0gKGJ5dGUpMHgwODsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE9QVF9CVU5ETEUgPSAoYnl0ZSkweDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgT1BUX1VOS05PV04gPSAoYnl0ZSkweDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVU0VSX09QVElPTlNbXSA9IHsKKyAgICAgICAgIi0xMSIsIAorICAgICAgICAiLTEyIiwgCisgICAgICAgICItaWN1IiwKKyAgICAgICAgIi1wYWNrYWdlIiwKKyAgICAgICAgIi1idW5kbGUtbmFtZSIKKyAgICB9OworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG5ldyBDb252ZXJ0SUNVTGlzdFJlc291cmNlQnVuZGxlKGFyZ3MsIFN5c3RlbS5vdXQpOworICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVbmtub3duIGVycm9yOiAiK3QpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBDb252ZXJ0SUNVTGlzdFJlc291cmNlQnVuZGxlKFN0cmluZyBhcmdzW10sIFByaW50U3RyZWFtIG91dCkgeworICAgICAgICBwcm9jZXNzKGFyZ3MsIG91dCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHByb2Nlc3MoU3RyaW5nIGFyZ3NbXSwgUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIHNob3J0IG9wdGlvbnMgPSBpZGVudGlmeU9wdGlvbnMoYXJncyk7CisgICAgICAgIGlmICgoYXJncy5sZW5ndGggPCAxKSB8fCAoKG9wdGlvbnMgJiBPUFRfVU5LTk9XTikgIT0gMCkpIHsKKyAgICAgICAgICAgIHByaW50VXNhZ2UoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBsb2NhbGVOYW1lID0gbnVsbDsKKyAgICAgICAgICAgIFN0cmluZyBwYWNrYWdlbmFtZSA9IG51bGw7CisgICAgICAgICAgICBTdHJpbmcgYnVuZGxlTmFtZSA9IG51bGw7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAvL2ZpbmFsIFN0cmluZyB0aGlzQXJnID0gYXJnc1tpXTsKKworICAgICAgICAgICAgICAgIGlmKGFyZ3NbaV0uZXF1YWxzSWdub3JlQ2FzZSgiLXBhY2thZ2UiKSl7CisgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgIHBhY2thZ2VuYW1lID0gYXJnc1tpXTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihhcmdzW2ldLmVxdWFsc0lnbm9yZUNhc2UoIi1pY3UiKSl7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYgKCFhcmdzW2ldLnN0YXJ0c1dpdGgoIi0iKSkgeworICAgICAgICAgICAgICAgICAgICBsb2NhbGVOYW1lID0gYXJnc1tpXTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihhcmdzW2ldLmVxdWFsc0lnbm9yZUNhc2UoIi1idW5kbGUtbmFtZSIpKXsKKyAgICAgICAgICAgICAgICAgICAgYnVuZGxlTmFtZSA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmaW5hbCBIYXNodGFibGUgZGF0YSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZyBsb2NhbGVFbGVtZW50cyA9IHBhY2thZ2VuYW1lCisgICAgICAgICAgICAgICAgICAgICsgKFN0cmluZykoKGJ1bmRsZU5hbWUgIT0gbnVsbCkgPyAiLiIrIGJ1bmRsZU5hbWUgOiAiLkxvY2FsZUVsZW1lbnRzIiApCisgICAgICAgICAgICAgICAgICAgICsgKFN0cmluZykoKGxvY2FsZU5hbWUgIT0gbnVsbCkgPyAiXyIrIGxvY2FsZU5hbWUgOiAiIik7CisKKyAgICAgICAgICAgLy8gZmluYWwgU3RyaW5nIERhdGVGb3JtYXRab25lRGF0YSA9IHBhY2thZ2VuYW1lKyIuRGF0ZUZvcm1hdFpvbmVEYXRhIiArCisgICAgICAgICAgIC8vICAgICAgICAgKFN0cmluZykoKGxvY2FsZU5hbWUgIT0gbnVsbCkgPyAiXyIrbG9jYWxlTmFtZSA6ICIiKTsKKworICAgICAgICAgICAgYWRkTG9jYWxlRGF0YShsb2NhbGVFbGVtZW50cywgZGF0YSk7CisgICAgICAgICAgICAvL2FkZExvY2FsZURhdGEoRGF0ZUZvcm1hdFpvbmVEYXRhLCBkYXRhKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTG9jYWxlIGxvY2FsZTsKKyAgICAgICAgICAgIGlmKGxvY2FsZU5hbWU9PW51bGwpeworICAgICAgICAgICAgICAgIGxvY2FsZSA9IGxvY2FsZUZyb21TdHJpbmcoInJvb3QiKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGxvY2FsZSA9IGxvY2FsZUZyb21TdHJpbmcobG9jYWxlTmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBPUFRfMTEpICE9IDApIHsKKyAgICAgICAgICAgICAgICBuZXcgSmF2YTFMb2NhbGVXcml0ZXIob3V0LCBTeXN0ZW0uZXJyKS53cml0ZShsb2NhbGUsIGRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChvcHRpb25zICYgT1BUXzEyKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbmV3IEphdmFMb2NhbGVXcml0ZXIob3V0LCBTeXN0ZW0uZXJyKS53cml0ZShsb2NhbGUsIGRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChvcHRpb25zICYgT1BUX0lDVSkgIT0gMCkgeworICAgICAgICAgICAgICAgICBuZXcgSUNVM0xvY2FsZVdyaXRlcihnZXRCdW5kbGUobG9jYWxlRWxlbWVudHMpLG91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIExpc3RSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGUoZmluYWwgU3RyaW5nIGJ1bmRsZUNsYXNzTmFtZSl7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmaW5hbCBDbGFzcyBidW5kbGVDbGFzcyA9IENsYXNzLmZvck5hbWUoYnVuZGxlQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgIGZpbmFsIExpc3RSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoTGlzdFJlc291cmNlQnVuZGxlKWJ1bmRsZUNsYXNzLm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICByZXR1cm4gYnVuZGxlOworCisgICAgICAgIH0gY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJDb3VsZCBub3QgZmluZCBidW5kbGUgY2xhc3MgZm9yIGJ1bmRsZTogIitidW5kbGVDbGFzc05hbWUpOworICAgICAgICB9IGNhdGNoIChJbnN0YW50aWF0aW9uRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiQ291bGQgbm90IGNyZWF0ZSBidW5kbGUgaW5zdGFuY2UgZm9yIGJ1bmRsZTogIitidW5kbGVDbGFzc05hbWUpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiQ291bGQgbm90IGNyZWF0ZSBidW5kbGUgaW5zdGFuY2UgZm9yIGJ1bmRsZTogIitidW5kbGVDbGFzc05hbWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgYWRkTG9jYWxlRGF0YShmaW5hbCBTdHJpbmcgYnVuZGxlQ2xhc3NOYW1lLCBmaW5hbCBIYXNodGFibGUgZGF0YSkgeworICAgICAgICBSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBnZXRCdW5kbGUoYnVuZGxlQ2xhc3NOYW1lKTsKKyAgICAgICAgRW51bWVyYXRpb24ga2V5cyA9IGJ1bmRsZS5nZXRLZXlzKCk7CisgICAgICAgIHdoaWxlKGtleXMuaGFzTW9yZUVsZW1lbnRzKCkpeworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGtleXMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIE9iamVjdCBvID0gYnVuZGxlLmdldE9iamVjdChrZXkpOworICAgICAgICAgICAgZGF0YS5wdXQoa2V5LCBvKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRVc2FnZSgpIHsKKyAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJVc2FnZTogQ29udmVydElDVUxpc3RSZXNvdXJjZUJ1bmRsZSBbLTExXSBbLTEyXSBbLWljdV0gWy1wYWNrYWdlXSA8cGFja2FnZSBuYW1lPiBbLWJ1bmRsZS1uYW1lXSA8YnVuZGxlIG5hbWU+IGxvY2FsZU5hbWUiKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzaG9ydCBpZGVudGlmeU9wdGlvbnMoU3RyaW5nW10gb3B0aW9ucykgeworICAgICAgICBzaG9ydCByZXN1bHQgPSAwOworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG9wdGlvbnMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBvcHRpb24gPSBvcHRpb25zW2pdOworICAgICAgICAgICAgaWYgKG9wdGlvbi5zdGFydHNXaXRoKCItIikpIHsKKyAgICAgICAgICAgICAgICBib29sZWFuIG9wdGlvblJlY29nbml6ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IgKHNob3J0IGkgPSAwOyBpIDwgVVNFUl9PUFRJT05TLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChVU0VSX09QVElPTlNbaV0uZXF1YWxzKG9wdGlvbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8PSAoc2hvcnQpKDEgPDwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25SZWNvZ25pemVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghb3B0aW9uUmVjb2duaXplZCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgfD0gT1BUX1VOS05PV047CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTG9jYWxlIGxvY2FsZUZyb21TdHJpbmcoZmluYWwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgaWYgKGxvY2FsZU5hbWUgPT0gbnVsbCkgcmV0dXJuIG5ldyBMb2NhbGUoIiIsICIiLCAiIik7CisgICAgICAgIFN0cmluZyBsYW5ndWFnZSA9IGxvY2FsZU5hbWU7CisgICAgICAgIFN0cmluZyBjb3VudHJ5ID0gIiI7CisgICAgICAgIFN0cmluZyB2YXJpYW50ID0gIiI7CisgICAgICAgIAorICAgICAgICBpbnQgbmR4ID0gbGFuZ3VhZ2UuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIGNvdW50cnkgPSBsYW5ndWFnZS5zdWJzdHJpbmcobmR4KzEpOworICAgICAgICAgICAgbGFuZ3VhZ2UgPSBsYW5ndWFnZS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICBuZHggPSBjb3VudHJ5LmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICB2YXJpYW50ID0gY291bnRyeS5zdWJzdHJpbmcobmR4KzEpOworICAgICAgICAgICAgY291bnRyeSA9IGNvdW50cnkuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGUobGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydEphdmFMb2NhbGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydEphdmFMb2NhbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZTQxZWY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Db252ZXJ0SmF2YUxvY2FsZS5qYXZhCkBAIC0wLDAgKzEsMjAwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorCitUaGUgQ29udmVydEphdmFMb2NhbGUgYXBwbGljYXRpb24gY29udmVydHMgamF2YSBsb2NhbGVzIHRvIAorSmF2YSBhbmQgSUNVIExvY2FsZSBmaWxlcy4gIEl0J3MgdXNhZ2UgaXMgYXMgZm9sbG93cworCisgICAgQ29udmVydEphdmFMb2NhbGUgWy0xMV0gWy0xMl0gWy1pY3VdIFstcGFja2FnZV0gbG9jYWxlLi4uCisKK1VzYWdlCisKKy0xMQorICAgIElmIHRoaXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgZGF0YSBpcyBvdXRwdXQgaW4gCisgICAgSmF2YSAxLjEueCBsb2NhbGUgZm9ybWF0LgorICAgIAorLTEyCisgICAgSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCBkYXRhIGlzIG91dHB1dCBpbgorICAgIEphdmEgMS4yLnggbG9jYWxlIGZvcm1hdC4gIElmIGFuIG91dHB1dCBmb3JtYXQKKyAgICBpcyBub3Qgc3BlY2lmaWVkLCAtMTIgaXMgdGhlIGRlZmF1bHQuCisgICAgCistaWN1CisgICAgSWYgdGhpcyBvcHRpb24gaXMgc3BlY2lmaWVkLCBkYXRhIGlzIG91dHB1dCBpbgorICAgIElDVSBsb2NhbGUgZm9ybWF0LgorCitsb2NhbGUKKyAgICBUaGUgbG9jYWxlIHRvIGNvbnZlcnQKKworCisqLworCitwdWJsaWMgY2xhc3MgQ29udmVydEphdmFMb2NhbGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgT1BUXzExID0gKGJ5dGUpMHgwMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE9QVF8xMiA9IChieXRlKTB4MDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBPUFRfSUNVID0gKGJ5dGUpMHgwNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE9QVF9QQUNLQUdFID0gKGJ5dGUpMHgwODsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE9QVF9VTktOT1dOID0gKGJ5dGUpMHg4MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVNFUl9PUFRJT05TW10gPSB7CisgICAgICAgICItMTEiLCAKKyAgICAgICAgIi0xMiIsIAorICAgICAgICAiLWljdSIsCisgICAgICAgICItcGFja2FnZSIKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHRhZ3MgPSB7CisgICAgICAgICJMb2NhbGVTdHJpbmciLAorICAgICAgICAiTG9jYWxlSUQiLAorICAgICAgICAiU2hvcnRMYW5ndWFnZSIsCisgICAgICAgICJTaG9ydENvdW50cnkiLAorICAgICAgICAiTGFuZ3VhZ2VzIiwKKyAgICAgICAgIkNvdW50cmllcyIsCisgICAgICAgICJNb250aE5hbWVzIiwKKyAgICAgICAgIk1vbnRoQWJicmV2aWF0aW9ucyIsCisgICAgICAgICJEYXlOYW1lcyIsCisgICAgICAgICJEYXlBYmJyZXZpYXRpb25zIiwKKyAgICAgICAgIkFtUG1NYXJrZXJzIiwKKyAgICAgICAgIkVyYXMiLAorICAgICAgICAiTnVtYmVyUGF0dGVybnMiLAorICAgICAgICAiTnVtYmVyRWxlbWVudHMiLAorICAgICAgICAiQ3VycmVuY3lFbGVtZW50cyIsCisgICAgICAgICJEYXRlVGltZVBhdHRlcm5zIiwKKyAgICAgICAgIkRhdGVUaW1lRWxlbWVudHMiLCAgIAorICAgICAgICAiY29sbGF0aW9ucyIsCisgICAgICAgICJ6b25lU3RyaW5ncyIsCisgICAgICAgICJsb2NhbFBhdHRlcm5DaGFycyIsCisgICAgfTsKKworCisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuZXcgQ29udmVydEphdmFMb2NhbGUoYXJncywgU3lzdGVtLm91dCk7CisgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVua25vd24gZXJyb3I6ICIrdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIENvbnZlcnRKYXZhTG9jYWxlKFN0cmluZyBhcmdzW10sIFByaW50U3RyZWFtIG91dCkgeworICAgICAgICBwcm9jZXNzKGFyZ3MsIG91dCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHByb2Nlc3MoU3RyaW5nIGFyZ3NbXSwgUHJpbnRTdHJlYW0gb3V0KSB7CisgICAgICAgIHNob3J0IG9wdGlvbnMgPSBpZGVudGlmeU9wdGlvbnMoYXJncyk7CisgICAgICAgIGlmICgoYXJncy5sZW5ndGggPCAxKSB8fCAoKG9wdGlvbnMgJiBPUFRfVU5LTk9XTikgIT0gMCkpIHsKKyAgICAgICAgICAgIHByaW50VXNhZ2UoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBsb2NhbGVOYW1lID0gbnVsbDsKKyAgICAgICAgICAgIFN0cmluZyBwYWNrYWdlbmFtZSA9IG51bGw7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZihhcmdzW2ldLmVxdWFsc0lnbm9yZUNhc2UoIi1wYWNrYWdlIikpeworICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICAgICBwYWNrYWdlbmFtZSA9IGFyZ3NbaV07CisgICAgICAgICAgICAgICAgfWVsc2UgaWYoYXJnc1tpXS5lcXVhbHNJZ25vcmVDYXNlKCItaWN1IikpeworICAgICAgICAgICAgICAgIH1lbHNlIGlmICghYXJnc1tpXS5zdGFydHNXaXRoKCItIikpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxlTmFtZSA9IGFyZ3NbaV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZmluYWwgSGFzaHRhYmxlIGRhdGEgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgbG9jYWxlRWxlbWVudHM7CisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgZGF0ZUZvcm1hdFpvbmVEYXRhOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZihsb2NhbGVOYW1lICE9IG51bGwpeworICAgICAgICAgICAgICAgIGlmKCFsb2NhbGVOYW1lLmVxdWFscygicm9vdCIpKXsKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxlRWxlbWVudHMgPSBwYWNrYWdlbmFtZSsiLkxvY2FsZUVsZW1lbnRzIiArIl8iK2xvY2FsZU5hbWU7CisgICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXRab25lRGF0YSA9IHBhY2thZ2VuYW1lKyIuRGF0ZUZvcm1hdFpvbmVEYXRhIiArICJfIitsb2NhbGVOYW1lOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBsb2NhbGVFbGVtZW50cyA9IHBhY2thZ2VuYW1lKyIuTG9jYWxlRWxlbWVudHMiOworICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0Wm9uZURhdGEgPSBwYWNrYWdlbmFtZSsiLkRhdGVGb3JtYXRab25lRGF0YSI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgcHJpbnRVc2FnZSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFkZExvY2FsZURhdGEobG9jYWxlRWxlbWVudHMsIGRhdGEpOworICAgICAgICAgICAgYWRkTG9jYWxlRGF0YShkYXRlRm9ybWF0Wm9uZURhdGEsIGRhdGEpOworICAgICAgICAgICAgZmluYWwgTG9jYWxlIGxvY2FsZSA9IGxvY2FsZUZyb21TdHJpbmcobG9jYWxlTmFtZSk7CisgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBPUFRfMTEpICE9IDApIHsKKyAgICAgICAgICAgICAgICBuZXcgSmF2YTFMb2NhbGVXcml0ZXIob3V0LCBTeXN0ZW0uZXJyKS53cml0ZShsb2NhbGUsIGRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChvcHRpb25zICYgT1BUXzEyKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbmV3IEphdmFMb2NhbGVXcml0ZXIob3V0LCBTeXN0ZW0uZXJyKS53cml0ZShsb2NhbGUsIGRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChvcHRpb25zICYgT1BUX0lDVSkgIT0gMCkgeworICAgICAgICAgICAgICAgIG5ldyBJQ1VMb2NhbGVXcml0ZXIob3V0LCBTeXN0ZW0uZXJyKS53cml0ZShsb2NhbGUsIGRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFkZExvY2FsZURhdGEoZmluYWwgU3RyaW5nIGJ1bmRsZUNsYXNzTmFtZSwgZmluYWwgSGFzaHRhYmxlIGRhdGEpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZpbmFsIENsYXNzIGJ1bmRsZUNsYXNzID0gQ2xhc3MuZm9yTmFtZShidW5kbGVDbGFzc05hbWUpOworICAgICAgICAgICAgZmluYWwgUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKFJlc291cmNlQnVuZGxlKWJ1bmRsZUNsYXNzLm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBmaW5hbCBPYmplY3QgcmVzb3VyY2UgPSBidW5kbGUuZ2V0T2JqZWN0KHRhZ3NbaV0pOworICAgICAgICAgICAgICAgICAgICBkYXRhLnB1dCh0YWdzW2ldLCByZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJDb3VsZCBub3QgZmluZCBidW5kbGUgY2xhc3MgZm9yIGJ1bmRsZTogIitidW5kbGVDbGFzc05hbWUpOworICAgICAgICB9IGNhdGNoIChJbnN0YW50aWF0aW9uRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiQ291bGQgbm90IGNyZWF0ZSBidW5kbGUgaW5zdGFuY2UgZm9yIGJ1bmRsZTogIitidW5kbGVDbGFzc05hbWUpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiQ291bGQgbm90IGNyZWF0ZSBidW5kbGUgaW5zdGFuY2UgZm9yIGJ1bmRsZTogIitidW5kbGVDbGFzc05hbWUpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBwcmludFVzYWdlKCkgeworICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlVzYWdlOiBDb252ZXJ0SmF2YUxvY2FsZSBbLTExXSBbLTEyXSBbLWljdV0gWy1wYWNrYWdlXSA8cGFja2FnZSBuYW1lPiBsb2NhbGVOYW1lIik7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc2hvcnQgaWRlbnRpZnlPcHRpb25zKFN0cmluZ1tdIG9wdGlvbnMpIHsKKyAgICAgICAgc2hvcnQgcmVzdWx0ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBvcHRpb25zLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICBTdHJpbmcgb3B0aW9uID0gb3B0aW9uc1tqXTsKKyAgICAgICAgICAgIGlmIChvcHRpb24uc3RhcnRzV2l0aCgiLSIpKSB7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBvcHRpb25SZWNvZ25pemVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yIChzaG9ydCBpID0gMDsgaSA8IFVTRVJfT1BUSU9OUy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoVVNFUl9PUFRJT05TW2ldLmVxdWFscyhvcHRpb24pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgfD0gKHNob3J0KSgxIDw8IGkpOworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uUmVjb2duaXplZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIW9wdGlvblJlY29nbml6ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0IHw9IE9QVF9VTktOT1dOOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIExvY2FsZSBsb2NhbGVGcm9tU3RyaW5nKGZpbmFsIFN0cmluZyBsb2NhbGVOYW1lKSB7CisgICAgICAgIGlmIChsb2NhbGVOYW1lID09IG51bGwpIHJldHVybiBuZXcgTG9jYWxlKCIiLCAiIiwgIiIpOworICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBsb2NhbGVOYW1lOworICAgICAgICBTdHJpbmcgY291bnRyeSA9ICIiOworICAgICAgICBTdHJpbmcgdmFyaWFudCA9ICIiOworICAgICAgICAKKyAgICAgICAgaW50IG5keCA9IGxhbmd1YWdlLmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICBjb3VudHJ5ID0gbGFuZ3VhZ2Uuc3Vic3RyaW5nKG5keCsxKTsKKyAgICAgICAgICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2Uuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgbmR4ID0gY291bnRyeS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgdmFyaWFudCA9IGNvdW50cnkuc3Vic3RyaW5nKG5keCsxKTsKKyAgICAgICAgICAgIGNvdW50cnkgPSBjb3VudHJ5LnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgTG9jYWxlKGxhbmd1YWdlLCBjb3VudHJ5LCB2YXJpYW50KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRMb2NhbGVUZXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRMb2NhbGVUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTBhZGE5YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydExvY2FsZVRlc3QuamF2YQpAQCAtMCwwICsxLDkwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKKy8qCisKK0NvbnZlcnRQT1NJWExvY2FsZSBbLTExXSBbLTEyXSBbLWljdV0gWy1pY3UyXSBsb2NhbGVEYXRhRmlsZSBbY2hhck1hcEZpbGUgLi4uXQorCisqLworCitwdWJsaWMgY2xhc3MgQ29udmVydExvY2FsZVRlc3QgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKy8qCisgICAgICAgIENvbnZlcnRQT1NJWExvY2FsZS5tYWluKCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIi0xMiIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXGNvbGxhdGlvblRlc3QudHh0IgorICAgICAgICB9ICk7ICAgIAorIAorICAgICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItaWN1IiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcY29sbGF0aW9uVGVzdDIudHh0IiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXElTTy04ODU5LTEiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcbW5lbW9uaWMuZHMiLAorICAgICAgICB9ICk7CisKKyAgICAgICAgQ29udmVydFBPU0lYTG9jYWxlLm1haW4oIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiLWljdSIsICItTENfTUVTU0FHRVMiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxMb2NhbGVzXFxWaXZueDQzLmlibSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxpYm0xMTI5LTItVW5pQ29kZS5jaG0iLAorICAgICAgICB9ICk7CisvKiAgICAgIENvbnZlcnRQT1NJWExvY2FsZS5tYWluKCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIi0xMiIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXExvY2FsZXNcXFBPU0lYTG9jYWxlc1xcZW5fVVMiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcSVNPLTg4NTktMSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxtbmVtb25pYy5kcyIsCisgICAgICAgIH0pOworLyogICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItMTIiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxMb2NhbGVzXFxQT1NJWExvY2FsZXNcXGZpX0ZJIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXElTTy04ODU5LTEiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcbW5lbW9uaWMuZHMiLAorICAgICAgICB9KTsKKworICAgICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItMTIiLCAiZW5fQkUiLCAKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcTG9jYWxlc1xcRU5CRVdJTi5JQk0iLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcSWJtMTI1Mi5jaG0iLAorICAgICAgICB9KTsKKworICAgICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItMTIiLCAidmlfVk4iLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxMb2NhbGVzXFxWaXZueDQzLmlibSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxpYm0xMTI5LTItVW5pQ29kZS5jaG0iLAorICAgICAgICB9KTsKKworICAgICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItaWN1IiwgImZyX0ZSIiwgCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXExvY2FsZXNcXFBPU0lYTG9jYWxlc1xcZnJfRlIiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcSVNPLTg4NTktMSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxtbmVtb25pYy5kcyIsCisgICAgICAgIH0pOworCisgICAgICAgIENvbnZlcnRQT1NJWExvY2FsZS5tYWluKCBuZXcgU3RyaW5nW10geworICAgICAgICAgICAgIi1pY3UiLCAiZm9fRk8iLCAKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcTG9jYWxlc1xcUE9TSVhMb2NhbGVzXFxmb19GTyIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxJU08tODg1OS0xIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXG1uZW1vbmljLmRzIiwKKyAgICAgICAgfSk7CisqLworICAgICAgICBDb252ZXJ0UE9TSVhMb2NhbGUubWFpbiggbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICItaWN1IiwgImZyX0xVIiwgCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXExvY2FsZXNcXFBPU0lYTG9jYWxlc1xcZnJfTFUiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcSVNPLTg4NTktMSIsCisgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzXFxtbmVtb25pYy5kcyIsCisgICAgICAgIH0pOworLyoKKyAgICAgICAgQ29udmVydFBPU0lYTG9jYWxlLm1haW4oIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAiLWljdSIsICJkZV9MVSIsIAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxMb2NhbGVzXFxQT1NJWExvY2FsZXNcXGRlX0xVIiwKKyAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHNcXElTTy04ODU5LTEiLAorICAgICAgICAgICAgIkM6XFxwcm9qZWN0c1xcY29tXFx0YWxpZ2VudFxcbG9jYWxlY29udmVydGVyXFxDaGFyTWFwc1xcbW5lbW9uaWMuZHMiLAorICAgICAgICB9KTsKKyovCisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvQ29udmVydFBPU0lYTG9jYWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRQT1NJWExvY2FsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM5MmMzMjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0NvbnZlcnRQT1NJWExvY2FsZS5qYXZhCkBAIC0wLDAgKzEsMzQ2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorCitUaGUgQ29udmVydFBPU0lYTG9jYWxlIGFwcGxpY2F0aW9uIGNvbnZlcnRzIFBPU0lYIGxvY2FsZSBmaWxlcyB0byAKK0phdmEgYW5kIElDVSBMb2NhbGUgZmlsZXMuICBJdCdzIHVzYWdlIGlzIGFzIGZvbGxvd3MKKworICAgIENvbnZlcnRQT1NJWExvY2FsZSAKKyAgICAgICAgWy1MQ19DVFlQRV0KKyAgICAgICAgWy1MQ19USU1FXQorICAgICAgICBbLUxDX05VTUVSSUNdIAorICAgICAgICBbLUxDX01PTkVUQVJZXSAKKyAgICAgICAgWy1MQ19NRVNTQUdFU10gCisgICAgICAgIFstMTFdIAorICAgICAgICBbLTEyXSAKKyAgICAgICAgWy1pY3VdCisgICAgICAgIFstaWN1Ml0KKyAgICAgICAgbG9jYWxlTmFtZQorICAgICAgICBsb2NhbGVEYXRhRmlsZSAKKyAgICAgICAgW2NoYXJNYXBGaWxlIC4uLl0KKyAgICAgICAgCitUaGUgYXBwbGljYXRpb24gaXMgaW52b2tlZCB3aXRoIG9wdGlvbnMgc3BlY2lmeWluZyB0aGUgZm9ybWF0KHMpIG9mCit0aGUgbG9jYWxlIGZpbGUocykgdG8gZ2VuZXJhdGUgYXMgd2VsbCBhcyB0aGUgUE9TSVggbG9jYWxlIGZpbGUgYW5kCitjaGFyYWN0ZXIgbWFwcGluZyBmaWxlcy4KKworVXNhZ2UKKworLUxDX0NUWVBFCisgICAgSWYgdGhlIC1MQ19DVFlQRSBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGUKKyAgICBmb2xsb3dpbmcgaXRlbXMgYXJlIGFkZGVkIHRvIHRoZSBsb2NhbGUgaWYgdGhleQorICAgIGFyZSBwcmVzZW50IGluIHRoZSBzb3VyY2U6IHVwcGVyLCBsb3dlciwgYWxwaGEsIGRpZ2l0LCAKKyAgICBzcGFjZSwgY250cmwsIHB1bmN0LCBncmFwaCwgcHJpbnQsIHhkaWdpdCwgYmxhbmssIAorICAgIHRvdXBwZXIsIHRvbG93ZXIuCisgICAgCis8Q09ERT4tTENfVElNRQorICAgIElmIHRoZSAtTENfVElNRSBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGUgZm9sbG93aW5nCisgICAgaXRlbXMgd2lsbCBiZSBpbmNsdWRlZCBpZiB0aGV5IGFyZSBwcmVzZW50IGluIHRoZSBQT1NJWCBzb3VyY2U6CisgICAgYWJkYXksIGRheSwgYWJtb24sIG1vbiwgZF90X2ZtdCwgZF9mdG0sIHRfZm10LCBhbV9wbSwKKyAgICB0X2ZtdF9hbXBtLCBlcmEsIGVyYV95ZWFyLCBlcmFfZF9mbXQsIGFsdF9kaWdpdHMuCisgICAgCistTENfTlVNRVJJQworICAgIElmIHRoZSAtTENfTlVNRVJJQyBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGUgZm9sbG93aW5nCisgICAgaXRlbXMgd2lsbCBiZSBpbmNsdWRlZCBpZiB0aGV5IGFyZSBwcmVzZW50IGluIHRoZSBzb3VyY2U6CisgICAgZGVjaW1hbF9wb2ludCwgdGhvdXNhbmRzX3NlcCwgZ3JvdXBpbmcKKworLUxDX01PTkVUQVJZCisgICAgSWYgdGhlIC1MQ19NT05FVEFSWSBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGUgZm9sbG93aW5nCisgICAgaXRlbXMgd2lsbCBiZSBpbmNsdWRlZCBpZiB0aGV5IGFyZSBwcmVzZW50IGluIHRoZSBzb3VyY2U6CisgICAgaW50X2N1cnJfc3ltYm9sLCBjdXJyZW5jeV9zeW1ib2wsIG1vbl9kZWNpbWFsX3BvaW50LAorICAgIG1vbl90aG91c2FuZHNfc2VwLCBtb25fZ3JvdXBpbmcsIHBvc2l0aXZlX3NpZ24sIAorICAgIG5lZ2F0aXZlX3NpZ24sIGludF9mcmFjX2RpZ2l0cywgZnJhY19kaWdpdHMsIHBfY3NfcHJlY2VkZXMsCisgICAgcF9zZXBfYnlfc3BhY2UsIG5fY3NfcHJlY2VkZXMsIG5fc2VwX2J5X3NwYWNlLCBwX3NpZ25fcG9zbi4KKworLUxDX01FU1NBR0VTCisgICAgSWYgdGhlIC1MQ19NRVNTQUdFUyBvcHRpb24gaXMgc3BlY2lmaWVkLCB0aGUKKyAgICBmb2xsb3dpbmcgaXRlbXMgYXJlIGFkZGVkIHRvIHRoZSBsb2NhbGUgaWYgdGhleQorICAgIGFyZSBwcmVzZW50IGluIHRoZSBzb3VyY2U6IHllc2V4cHIsIG5vZXhwcgorCistMTEKKyAgICBJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIGRhdGEgaXMgb3V0cHV0IGluIAorICAgIEphdmEgMS4xLnggbG9jYWxlIGZvcm1hdC4KKyAgICAKKy0xMgorICAgIElmIHRoaXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgZGF0YSBpcyBvdXRwdXQgaW4KKyAgICBKYXZhIDEuMi54IGxvY2FsZSBmb3JtYXQuICBJZiBhbiBvdXRwdXQgZm9ybWF0CisgICAgaXMgbm90IHNwZWNpZmllZCwgLTEyIGlzIHRoZSBkZWZhdWx0LgorICAgIAorLWljdQorICAgIElmIHRoaXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgZGF0YSBpcyBvdXRwdXQgaW4KKyAgICBJQ1UgbG9jYWxlIGZvcm1hdC4KKworbG9jYWxlTmFtZQorICAgIFRoZSBuYW1lIG9mIHRoZSBsb2NhbGUgaW4gdGhlIGxvY2FsZURhdGFGaWxlLiAgRXguICBlbl9VUy4KKworbG9jYWxlRGF0YUZpbGUKKyAgICBUaGUgbG9jYWxlRGF0YUZpbGUgcGF0aCBpcyByZXF1aXJlZCBhbmQgc3BlY2lmaWVzIHRoZSBwYXRoIAorICAgIHRvIHRoZSBsb2NhbGUgZGF0YSBmaWxlLiAgSWYgYSAiY29weSIgZGlyZWN0aXZlIGlzIGVuY291bnRlcmVkIAorICAgIHdoaWxlIHByb2Nlc3NpbmcgdGhlIGxvY2FsZURhdGFGaWxlLCBDb252ZXJ0UE9TSVhMb2NhbGUgd2lsbCBsb29rCisgICAgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoZSBsb2NhbGVEYXRhRmlsZSBmb3IgYWRkaXRpb25hbAorICAgIFBPU0lYIGxvY2FsZSBkYXRhIGZpbGVzLiAgRmlsZXMgbXVzdCBiZSBpbiB0aGUgUE9TSVggZm9ybWF0CisgICAgc3BlY2lmaWVkIGluIElTTy9JRUMgOTk0NS0gd2l0aCBleGNlcHRpb25zIG5vdGVkIGJlbG93LiAgRXhhY3RseQorICAgIG9uZSBsb2NhbGVEYXRhRmlsZSBtdXN0IGJlIHNwZWNpZmllZC4KKyAgICAKK2NoYXJNYXBGaWxlCisgICAgWmVybyBvciBtb3JlIGNoYXJhY3RlciBtYXBwaW5nIGZpbGVzIG1heSBiZSBzcGVjaWZpZWQuICBjaGFyTWFwRmlsZXMgYXJlIHVzZWQKKyAgICB0byBtYXAgc3ltYm9scyBpbiB0aGUgbG9jYWxlRGF0YUZpbGUgdG8gVW5pY29kZSB2YWx1ZXMuICBUaGV5IGFyZSBwcm9jZXNzZWQKKyAgICBhcyBmb2xsb3dzLiAgQ29udmVydFBPU0lYTG9jYWxlIHNlYXJjaHMgZm9yIGEgbGluZSBjb250YWluaW5nIG9ubHkgdGhlCisgICAgd29yZCAiQ0hBUk1BUCIgYW5kIHJlYWRzIHN5bWJvbCBtYXBwaW5ncyB1bnRpbCBpdCByZWFjaGVzIGEgbGluZQorICAgIGNvbnRhaW5pbmcgb25seSB0aGUgd29yZHMgIkVORCBDSEFSTUFQIi4gIFN5bWJvbCBtYXBwaW5ncyBoYXZlCisgICAgdGhlIGZvcm0gIjxTWU1CT0w+IDxVaGhoaD4iIHdoZXJlICI8U1lNQk9MPiIgaXMgYW55IHN5bWJvbCB2YWxpZAorICAgIGluIGEgbG9jYWxlRGF0YUZpbGUgYW5kICJoaGhoIiBpcyBmb3VyIGhleGlkZWNpbWFsIGRpZ2l0cyByZXByZXNlbnRpbmcKKyAgICB0aGUgVW5pY29kZSB2YWx1ZSBmb3IgdGhhdCBzeW1ib2wuICBTdXJyb2dhdGUgcGFpcnMgYXJlIG5vdCBzdXBwb3J0ZWQKKyAgICBpbiBjaGFyTWFwRmlsZXMuIEFuIGV4YW1wbGUgY2hhck1hcEZpbGUgbWlnaHQgY29udGFpbiB0aGUgZm9sbG93aW5nOgorCisgICAgICAgIENIQVJNQVAKKyAgICAgICAgPFNUQVJUX09GX1RFWFQ+ICAgICAgIDxVMDAwMj4KKyAgICAgICAgPEU+ICAgICAgICAgICAgICAgICAgIDxVMDA0NT4KKyAgICAgICAgPHE+ICAgICAgICAgICAgICAgICAgIDxVMDA3MT4KKyAgICAgICAgRU5EIENIQVJNQVAKKworICAgIHNwZWNpZnlpbmcgdGhhdCB0aGUgc3ltYm9sIDxTVEFSVF9PRl9URVhUPiBzaG91bGQgYmUgcmVwbGFjZWQgYnkgCisgICAgdGhlIFVuaWNvZGUgdmFsdWUgb2YgMHgwMDAyIHdoZXJldmVyIGl0IG9jY3Vycy4KKyAgICAKKyAgICBXaGVuIG11bHRpcGxlIGNoYXJNYXBGaWxlcyBhcmUgc3BlY2lmaWVkLCBtYXBwaW5ncyBpbiBmaWxlcyBsaXN0ZWQgCisgICAgbGF0ZXIgdGFrZSBwcmVjZWRlbmNlIG92ZXIgZWFybGllciBvbmVzLgorCisKK0NvbnZlcnNpb24gdG8gSUNVIGFuZCBKYXZhOgorCitjb2xsYXRpb25zCisgICAgQ29udmVydGVkIGZyb20gdGhlIExDX0NPTExBVEUgc2VjdGlvbi4gIFRoZSAiLi4uIiBkaXJlY3RpdmUgaXMgaWdub3JlZC4KKyAgICBUaGUgInJlcGxhY2UtYWZ0ZXIiIGRpcmVjdGl2ZSBpcyBpZ25vcmVkLgorCitDdXJyZW5jeUVsZW1lbnRzCisgICAgZWxlbWVudCAwIGlzIHNldCB0byBjdXJyZW5jeV9zeW1ib2wKKyAgICBlbGVtZW50IDEgaXMgc2V0IHRvIGludF9jdXJyX3N5bWJvbAorICAgIGVsZW1lbnQgMiBpcyBzZXQgdG8gbW9uX2RlY2ltYWxfcG9pbnQKKyAgICBBbGwgb3RoZXIgZWxlbWVudHMgZGVmYXVsdC4KKyAgICAKK051bWJlckVsZW1lbnRzCisgICAgZWxlbWVudCAwIGlzIHNldCB0byBkZWNpbWFsX3BvaW50CisgICAgZWxlbWVudCAxIGlzIHNldCB0byB0aG91c2FuZHNfc2VwCisKK01vbnRoTmFtZXMgaXMgc2V0IHRvIG1vbgorCitNb250aEFiYnJldmlhdGlvbnMgaXMgc2V0IHRvIGFibW9uCisKK0RheU5hbWVzIGlzIHNldCB0byBkYXkKKworRGF5QWJicmV2aWF0aW9ucyBpcyBzZXQgdG8gYWJkYXkKKworQW1QbU1hcmtlcnMgaXMgc2V0IHRvIGFtX3BtCisKK0RhdGVUaW1lUGF0dGVybnMKKyAgICBlbGVtZW50cyAwIHRocm91Z2ggMyBhcmUgc2V0IHRvIHRfZm10X2FtcG0gd2l0aCB0aGUgcGF0dGVybnMgY29udmVydGVkCisgICAgZWxlbWVudHMgNCB0aHJvdWdoIDcgYXJlIHNldCB0byBkX2ZtdCB3aXRoIHRoZSBwYXR0ZXJucyBjb252ZXJ0ZWQKKworCitBZGl0aW9uIFBPU0lYIGRhdGEgbWF5IGJlIGluY2x1ZGVkIGluIHRoZSBMb2NhbGUgYXMgZm9sbG93czoKKworTENfVFlQRSAKKyAgICBUaGlzIHNlY3Rpb24gaXMgaWdub3JlZCB1bmxlc3MgdGhlIC1MQ19DVFlQRSBvcHRpb24gaXMKKyAgICBzcGVjaWZpZWQuICBJZiB0aGUgLUxDX0NUWVBFIG9wdGlvbiBpcyBzcGVjaWZpZWQsIHRoZQorICAgIGZvbGxvd2luZyBpdGVtcyBhcmUgYWRkZWQgdG8gdGhlIGxvY2FsZSBpZiB0aGV5CisgICAgYXJlIHByZXNlbnQgaW4gdGhlIHNvdXJjZTogdXBwZXIsIGxvd2VyLCBhbHBoYSwgZGlnaXQsIAorICAgIHNwYWNlLCBjbnRybCwgcHVuY3QsIGdyYXBoLCBwcmludCwgeGRpZ2l0LCBibGFuaywgCisgICAgdG91cHBlciwgdG9sb3dlci4KKworTENfTUVTU0FHRVMKKyAgICAKK0xDX01PTkVUQVJZCisgICAgCitMQ19OVU1FUklDCisKK0xDX1RJTUUKKyAgICBJZiB0aGUgLUxDX1RJTUUgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhlIGZvbGxvd2luZworICAgIGl0ZW1zIHdpbGwgYmUgaW5jbHVkZWQgaWYgdGhleSBhcmUgcHJlc2VudCBpbiB0aGUgc291cmNlOgorICAgIGFiZGF5LCBkYXksIGFibW9uLCBtb24sIGRfdF9mbXQsIGRfZnRtLCB0X2ZtdCwgYW1fcG0sCisgICAgdF9mbXRfYW1wbSwgZXJhLCBlcmFfeWVhciwgZXJhX2RfZm10LCBhbHRfZGlnaXRzLgorCitMQ19DT0xMQVRFCisgICAgQ29udmVydGVkIHRvIGNvbGxhdGlvbnMgaW4gdGhlIHJlc291cmNlIGZpbGUuCisgICAgCisgICAgCisqLworCitwdWJsaWMgY2xhc3MgQ29udmVydFBPU0lYTG9jYWxlIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfTENfQ1RZUEUgPSAweDAwMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzaG9ydCBPUFRfTENfVElNRSA9IDB4MDAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9MQ19OVU1FUklDID0gMHgwMDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX0xDX01PTkVUQVJZID0gMHgwMDg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX0xDX01FU1NBR0VTID0gMHgwMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUXzExID0gMHgwMjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUXzEyID0gMHgwNDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX0lDVSA9IDB4MDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9JQ1UyID0gMHgxMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgT1BUX1JBVyA9IDB4MjAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9VTktOT1dOID0gMHg0MDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVU0VSX09QVElPTlNbXSA9IHsKKyAgICAgICAgIi1MQ19DVFlQRSIsIAorICAgICAgICAiLUxDX1RJTUUiLCAKKyAgICAgICAgIi1MQ19OVU1FUklDIiwgCisgICAgICAgICItTENfTU9ORVRBUlkiLAorICAgICAgICAiLUxDX01FU1NBR0VTIiwKKyAgICAgICAgIi0xMSIsIAorICAgICAgICAiLTEyIiwgCisgICAgICAgICItaWN1IiwgCisgICAgICAgICItaWN1MiIsIAorICAgICAgICAiLVJBVyIsCisgICAgICAgICItZW5jIiwKKyAgICB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IE9QVF9DT05WRVJUID0gKHNob3J0KShPUFRfTENfQ1RZUEUgfCBPUFRfTENfVElNRSAKKyAgICAgICAgICAgIHwgT1BUX0xDX05VTUVSSUMgfCBPUFRfTENfTU9ORVRBUlkgfCBPUFRfTENfTUVTU0FHRVMpOworICAgIAorICAgIHByaXZhdGUgSGFzaHRhYmxlIGRhdGE7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuZXcgQ29udmVydFBPU0lYTG9jYWxlKGFyZ3MpOworICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICAgdC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVW5rbm93biBlcnJvcjogIit0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgQ29udmVydFBPU0lYTG9jYWxlKFN0cmluZyBhcmdzW10pIHsKKyAgICAgICAgcHJvY2VzcyhhcmdzKTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisgICAgICAgICAgICAgICAgLy99fQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBwcm9jZXNzKFN0cmluZyBhcmdzW10pIHsKKyAgICAgICAgc2hvcnQgb3B0aW9ucyA9IGlkZW50aWZ5T3B0aW9ucyhhcmdzKTsKKyAgICAgICAgU3RyaW5nIGVuYz1udWxsOworICAgICAgICBpZiAoKGFyZ3MubGVuZ3RoIDwgMikgfHwgKChvcHRpb25zICYgT1BUX1VOS05PV04pICE9IDApKSB7CisgICAgICAgICAgICBwcmludFVzYWdlKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBWZWN0b3IgbWFwRmlsZXMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlID0gbnVsbDsKKyAgICAgICAgICAgIFN0cmluZyBmaWxlTmFtZSA9IG51bGw7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgdGhpc0FyZyA9IGFyZ3NbaV07CisgICAgICAgICAgICAgICAgaWYgKHRoaXNBcmcuc3RhcnRzV2l0aCgiLSIpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKHRoaXNBcmcuc3RhcnRzV2l0aCgiLWVuYyIpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuYyA9IGFyZ3NbKytpXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxlID0gbG9jYWxlRnJvbVN0cmluZyh0aGlzQXJnKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpbGVOYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZmlsZU5hbWUgPSB0aGlzQXJnOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1hcEZpbGVzLmFkZEVsZW1lbnQodGhpc0FyZyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZW5jPT1udWxsKXsKKyAgICAgICAgICAgICAgICBlbmM9IkRlZmF1bHQiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKChmaWxlTmFtZSA9PSBudWxsKSB8fCAobG9jYWxlID09IG51bGwpIHx8IChvcHRpb25zID09IDApKSB7CisgICAgICAgICAgICAgICAgcHJpbnRVc2FnZSgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBQb3NpeENoYXJNYXAgbWFwID0gbmV3IFBvc2l4Q2hhck1hcCgpOworICAgICAgICAgICAgICAgIEVudW1lcmF0aW9uIGVudW1lciA9IG1hcEZpbGVzLmVsZW1lbnRzKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGVudW1lci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbWFwRmlsZSA9IChTdHJpbmcpZW51bWVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiTG9jYWxlOiAiK2xvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiTG9hZGluZyBjaGFyYWN0ZXIgbWFwIGZpbGU6ICIrbWFwRmlsZSk7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXAubG9hZChuZXcgRmlsZShtYXBGaWxlKSxlbmMpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVycm9yIGxvYWRpbmcgbWFwIGZpbGU6ICIrbWFwRmlsZSsiICAiK2UpOworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJGaWxlIHNraXBwZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTeW1ib2xUcmFuc2l0aW9uLnNldENoYXJNYXAobWFwKTsKKyAgICAgICAgICAgICAgICBGaWxlIGRhdGFGaWxlID0gbmV3IEZpbGUoZmlsZU5hbWUpOworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiTG9jYWxlIGRpcmVjdG9yeTogIitkYXRhRmlsZS5nZXRQYXJlbnQoKSk7CisgICAgICAgICAgICAgICAgUE9TSVhMb2NhbGVSZWFkZXIgcmVhZGVyID0gbmV3IFBPU0lYTG9jYWxlUmVhZGVyKGRhdGFGaWxlLmdldFBhcmVudCgpLCBsb2NhbGUpOworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiUGFyc2luZyBmaWxlOiAiK2RhdGFGaWxlLmdldE5hbWUoKSk7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHJlYWRlci5wYXJzZShkYXRhRmlsZS5nZXROYW1lKCksIChieXRlKShvcHRpb25zICYgT1BUX0NPTlZFUlQpKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJDb252ZXJ0aW5nLi4uLiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBPUFRfMTEpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBKYXZhMUxvY2FsZVdyaXRlcihTeXN0ZW0ub3V0LCBTeXN0ZW0uZXJyKS53cml0ZShsb2NhbGUsIGRhdGEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIE9QVF8xMikgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEphdmFMb2NhbGVXcml0ZXIoU3lzdGVtLm91dCwgU3lzdGVtLmVycikud3JpdGUobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBPUFRfSUNVKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSUNVTG9jYWxlV3JpdGVyKFN5c3RlbS5vdXQsIFN5c3RlbS5lcnIpLndyaXRlKGxvY2FsZSwgZGF0YSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKChvcHRpb25zICYgT1BUX0lDVTIpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJQ1UyTG9jYWxlV3JpdGVyKFN5c3RlbS5vdXQsIFN5c3RlbS5lcnIpLndyaXRlKGxvY2FsZSwgZGF0YSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKChvcHRpb25zICYgT1BUX1JBVykgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElDVUxvY2FsZVdyaXRlcihTeXN0ZW0ub3V0LCBTeXN0ZW0uZXJyKS53cml0ZShsb2NhbGUsIGRhdGEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByaW50VXNhZ2UoKSB7CisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVXNhZ2U6IENvbnZlcnRQT1NJWExvY2FsZSBbLUxDX0NUWVBFXSBbLUxDX1RJTUVdIisKKyAgICAgICAgICAgICIgWy1MQ19OVU1FUklDXSBbLUxDX01PTkVUQVJZXSBbLUxDX01FU1NBR0VTXSBbLTExXSBbLTEyXSBbLWljdV0iKyAKKyAgICAgICAgICAgICIgbG9jYWxlTmFtZSBsb2NhbGVEYXRhRmlsZSBbY2hhck1hcEZpbGUgLi4uXSIpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHNob3J0IGlkZW50aWZ5T3B0aW9ucyhTdHJpbmdbXSBvcHRpb25zKSB7CisgICAgICAgIHNob3J0IHJlc3VsdCA9IDA7CisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgb3B0aW9ucy5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgU3RyaW5nIG9wdGlvbiA9IG9wdGlvbnNbal07CisgICAgICAgICAgICBpZiAob3B0aW9uLnN0YXJ0c1dpdGgoIi0iKSkgeworICAgICAgICAgICAgICAgIGJvb2xlYW4gb3B0aW9uUmVjb2duaXplZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZvciAoc2hvcnQgaSA9IDA7IGkgPCBVU0VSX09QVElPTlMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVTRVJfT1BUSU9OU1tpXS5lcXVhbHMob3B0aW9uKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0IHw9IChzaG9ydCkoMSA8PCBpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvblJlY29nbml6ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFvcHRpb25SZWNvZ25pemVkKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCB8PSBPUFRfVU5LTk9XTjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBMb2NhbGUgbG9jYWxlRnJvbVN0cmluZyhmaW5hbCBTdHJpbmcgbG9jYWxlTmFtZSkgeworICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBsb2NhbGVOYW1lOworICAgICAgICBTdHJpbmcgY291bnRyeSA9ICIiOworICAgICAgICBTdHJpbmcgdmFyaWFudCA9ICIiOworICAgICAgICAKKyAgICAgICAgaW50IG5keCA9IGxhbmd1YWdlLmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICBjb3VudHJ5ID0gbGFuZ3VhZ2Uuc3Vic3RyaW5nKG5keCsxKTsKKyAgICAgICAgICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2Uuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgbmR4ID0gY291bnRyeS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgdmFyaWFudCA9IGNvdW50cnkuc3Vic3RyaW5nKG5keCsxKTsKKyAgICAgICAgICAgIGNvdW50cnkgPSBjb3VudHJ5LnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIG5keCA9IGNvdW50cnkuaW5kZXhPZignQCcpOworICAgICAgICBpZihuZHg+MCl7CisgICAgICAgICAgICB2YXJpYW50ID0gY291bnRyeS5zdWJzdHJpbmcobmR4KzEpOworICAgICAgICAgICAgY291bnRyeSA9IGNvdW50cnkuc3Vic3RyaW5nKDAsbmR4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IExvY2FsZShsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudCk7CisgICAgfQorICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgICAgIC8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvRU9MVHJhbnNpdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9FT0xUcmFuc2l0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjFiZGZmOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvRU9MVHJhbnNpdGlvbi5qYXZhCkBAIC0wLDAgKzEsMTE5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CisKKworLyoqCisgKiBUaGlzIHRyYW5zaXRpb24gcGFyc2VzIGFuIGVuZC1vZi1saW5lIHNlcXVlbmNlLiAgVGhlIGNvbW1lbnQgY2hhcmFjdGVyCisgKiBjYW4gYmUgc2V0IHRvIGFuIGFyYml0cmFyeSBjaGFyYWN0ZXIsIGJ1dCBpdCBpcyBzaGFyZWQgZ2xvYmFsbHkuCisgKiBBIGNvbW1lbnQgbWF5IG9ubHkgb2NjdXIgYWZ0ZXIgYW4gZW5kLW9mLWxpbmUuCisgKiBFT0wgOj0gPEVPRj4gfCA8RU9MX0NIQVJTPiBbIDxFT0xfU0VHTUVOVD4gXSoKKyAqIEVPTF9TRUdNRU5UIDo9IDxFT0xfQ0hBUlM+IHwgPFNQQUNFX0NIQVJTPiB8IDxDT01NRU5UPgorICogU1BBQ0VfQ0hBUlMgOj0gIiBcdCI7CisgKiBFT0xfQ0hBUlMgPSAiXHJcblx1MjAyOFx1MjAyOSI7CisgKiBDT01NRU5UX1NUUklORyA6PSA8Q09NTUVOVF9DSEFSPiA8Q09NTUVOVF9CT0RZPgorICogQ09NTUVOVF9DSEFSID0gIiMiOworICogQ09NTUVOVF9CT0RZID0gWyB+PEVPRj4gJiB+PEVPTF9DSEFSUz4gXSoKKyAqLworcHVibGljIGNsYXNzIEVPTFRyYW5zaXRpb24gZXh0ZW5kcyBDb21wbGV4VHJhbnNpdGlvbiB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRU9MX0NIQVJTID0gIlxmXHJcblx1MjAyOFx1MjAyOSI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIERFRkFVTFRfQ09NTUVOVF9DSEFSID0gJyMnOworICAgIHB1YmxpYyBzdGF0aWMgY2hhciBDT01NRU5UX0NIQVIgPSBERUZBVUxUX0NPTU1FTlRfQ0hBUjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEVPTFRyYW5zaXRpb24gR0xPQkFMID0gbmV3IEVPTFRyYW5zaXRpb24oU1VDQ0VTUyk7CisgICAgCisgICAgICAgIC8qKiBSZXN0b3JlIHRoZSBjb21tZW50IGNoYXJhY3RlciB0byB0aGUgZGVmYXVsdCB2YWx1ZSAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIGNoYXIgc2V0RGVmYXVsdENvbW1lbnRDaGFyKCkgeworICAgICAgICByZXR1cm4gc2V0Q29tbWVudENoYXIoREVGQVVMVF9DT01NRU5UX0NIQVIpOworICAgIH0KKyAgICAKKyAgICAgICAgLyoqIFNldCBhIG5ldyBjb21tZW50IGNoYXJhY3RlciAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIGNoYXIgc2V0Q29tbWVudENoYXIoY2hhciBjKSB7CisgICAgICAgIGNoYXIgcmVzdWx0ID0gQ09NTUVOVF9DSEFSOworICAgICAgICBDT01NRU5UX0NIQVIgPSBjOworICAgICAgICBzdGF0ZXMgPSBudWxsOyAgLy9mbHVzaCBzdGF0ZXMKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHVibGljIEVPTFRyYW5zaXRpb24oaW50IHN1Y2Nlc3MpIHsKKyAgICAgICAgc3VwZXIoc3VjY2Vzcyk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworICAgICAgICAvL319Cit9CisgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYykgeworICAgICAgICByZXR1cm4gKEVPTF9DSEFSUy5pbmRleE9mKChjaGFyKWMpID49IDAgfHwgQ09NTUVOVF9DSEFSPT1jKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIExleC5UcmFuc2l0aW9uW11bXSBnZXRTdGF0ZXMoKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAoZ2V0Q2xhc3MoKSkgeworICAgICAgICAgICAgaWYgKHN0YXRlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy9jYWNoZSB0aGUgc3RhdGVzIHNvIHRoZXkgY2FuIGJlIHNoYXJlZC4gIFRoaXMgc3RhdGVzCisgICAgICAgICAgICAgICAgLy9uZWVkIHRvIGJlIGZsdXNoZWQgYW5kIHJlYnVpbHQgd2hlbiB0aGUgY29tbWVudAorICAgICAgICAgICAgICAgIC8vY2hhcmFjdGVyIGNoYW5nZXMuCisgICAgICAgICAgICAgICAgc3RhdGVzID0gbmV3IExleC5UcmFuc2l0aW9uW11bXSB7CisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAwOiAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihFT0xfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKFNVQ0NFU1MpLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oQ09NTUVOVF9DSEFSLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihFT0xfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKFNwYWNlVHJhbnNpdGlvbi5TUEFDRV9DSEFSUywgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oU1VDQ0VTUyksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5JR05PUkVfUFVUQkFDSywgU1VDQ0VTUykKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oRU9MX0NIQVJTLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihTVUNDRVNTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LklHTk9SRV9DT05TVU1FLCAtMikKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0YXRlczsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlczsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZmluYWwgaW50IFRPS0VOID0gMTsKKyAgICAgICAgICAgIGZpbmFsIGludCBFT0YgPSAyOworICAgICAgICAgICAgZmluYWwgaW50IEVPTCA9IDM7CisgICAgICAgICAgICBmaW5hbCBpbnQgUkFOR0UgPSA0OworICAgICAgICAgICAgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlcyA9IHt7IAorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oRU9GKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEVPTFRyYW5zaXRpb24oRU9MKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IFN5bWJvbFRyYW5zaXRpb24oVE9LRU4pLAorICAgICAgICAgICAgICAgICAgICBuZXcgU3BhY2VUcmFuc2l0aW9uKDApLAorICAgICAgICAgICAgICAgICAgICBuZXcgUmFuZ2VUcmFuc2l0aW9uKFJBTkdFKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEVPTFRyYW5zaXRpb24oRU9MKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguQUNDVU1VTEFURV9DT05TVU1FLCAwKQorICAgICAgICAgICAgfX07CisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9ICJcbjxOVUxMPiAweDEyNDMgI2hlbGxvICBrZHNqXG4iOworICAgICAgICAgICAgU3RyaW5nUmVhZGVyIHNyID0gbmV3IFN0cmluZ1JlYWRlcih0ZXh0KTsKKyAgICAgICAgICAgIFB1c2hiYWNrUmVhZGVyIHByID0gbmV3IFB1c2hiYWNrUmVhZGVyKHNyKTsKKyAgICAgICAgICAgIExleCBwYXJzZXIgPSBuZXcgTGV4KHN0YXRlcywgcHIpOworICAgICAgICAgICAgcGFyc2VyLmRlYnVnKHRydWUpOworICAgICAgICAgICAgcGFyc2VyLmRlYnVnKHRydWUpOworICAgICAgICAgICAgaW50IHMgPSBwYXJzZXIubmV4dFRva2VuKCk7CisgICAgICAgICAgICB3aGlsZSAocyA9PSBFT0wpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGFyc2VyLmdldERhdGEoKSk7CisgICAgICAgICAgICAgICAgcyA9IHBhcnNlci5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICB3aGlsZShzPT1UT0tFTil7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwYXJzZXIuZ2V0RGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgcyA9IHBhcnNlci5uZXh0VG9rZW4oKTsgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKyAgICAvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0VzY2FwZVRyYW5zaXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvRXNjYXBlVHJhbnNpdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAyZGJhZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0VzY2FwZVRyYW5zaXRpb24uamF2YQpAQCAtMCwwICsxLDE0NSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiBBbiBlc2NhcGUgdHJhbnNpdGlvbiBwYXJzZXMgYSBQT1NJWCBlc2NhcGUgc2VxdWVuY2UuICBBbiBlc2NhcGUKKyAqIHNlcXVlbmNlIGNhbiBiZSBhIGhleCwgb2N0YWwsIG9yIGRlY2ltYWwgY29uc3RhbnQsIG9yIGFuIGVzY2FwZWQKKyAqIGNoYXJhY3Rlci4gIFRoZSByZXN1bHRhbnQgdmFsdWUgaXMgQUxXQVlTIG9uIGJ5dGUgbG9uZy4gIExvbmdlcgorICogZXNjYXBlZCB2YWx1ZXMgKGllLlx4RkY2Mykgb3ZlcmZsb3cgYW5kIGFyZSB0cnVuY2F0ZWQuICBBbiBlc2NhcGUKKyAqIGNoYXJhY3RlciBmb2xsb3dlZCBieSBhbiBFT0wgc2VxdWVuY2UgaXMgc2lsZW50bHkgZWF0ZW4uCisgKi8KK3B1YmxpYyBjbGFzcyBFc2NhcGVUcmFuc2l0aW9uIGV4dGVuZHMgQ29tcGxleFRyYW5zaXRpb24geworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRXNjYXBlVHJhbnNpdGlvbiBHTE9CQUwgPSBuZXcgRXNjYXBlVHJhbnNpdGlvbihTVUNDRVNTKTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBERUZBVUxUX0VTQ0FQRV9DSEFSID0gJ1xcJzsKKyAgICBwdWJsaWMgc3RhdGljIGNoYXIgRVNDQVBFX0NIQVIgPSBERUZBVUxUX0VTQ0FQRV9DSEFSOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUNJTUFMID0gMTsgICAvL2RlY2ltYWwgZXNjYXBlIHNlcXVlbmNlIHdhcyBwYXJzZWQKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT0NUQUwgPSAyOyAgICAgLy9vY3RhbCBlc2NhcGUgc2VxdWVuY2Ugd2FzIHBhcnNlZAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRVggPSAzOyAgICAgICAvL2hleCBlc2NhcGUgc2VxdWVuY2Ugd2FzIHBhcnNlZAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFU0NBUEUgPSA0OyAgICAvL2NoYXJhY3RlciBlc2NhcGUgc2VxdWVuY2Ugd2FzIHBhcnNlZAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFT0wgPSA1OyAgICAgICAvL2FuIGVzY2FwZSBjaGFyYWN0ZXIgZm9sbG93ZWQgYnkgRU9GIGVhdGVuCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE9DVEFMX0NIQVJTID0gIjAxMjM0NTY3IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVDSU1BTF9DSEFSUyA9ICIwMTIzNDU2Nzg5IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEVYX0NIQVJTID0gIjAxMjM0NTY3ODlhYmNkZWZBQkNERUYiOworICAgIAorICAgICAgICAvKiogU2V0IHRoZSBlc2NhcGUgY2hhcmFjdGVyIHRvIHRoZSBkZWZhdWx0ICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgY2hhciBzZXREZWZhdWx0RXNjYXBlQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuIHNldEVzY2FwZUNoYXIoREVGQVVMVF9FU0NBUEVfQ0hBUik7CisgICAgfQorICAgIAorICAgICAgICAvKiogU2V0IHRoZSBlc2NhcGUgY2hhcmFjdGVyICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgY2hhciBzZXRFc2NhcGVDaGFyKGNoYXIgYykgeworICAgICAgICBjaGFyIHJlc3VsdCA9IEVTQ0FQRV9DSEFSOworICAgICAgICBFU0NBUEVfQ0hBUiA9IGM7CisgICAgICAgIHRoZVN0YXRlcyA9IG51bGw7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBFc2NhcGVUcmFuc2l0aW9uKGludCBzdWNjZXNzKSB7CisgICAgICAgIHN1cGVyKHN1Y2Nlc3MpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKyAgICAgICAgLy99fQorfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIEVTQ0FQRV9DSEFSID09IChjaGFyKWM7CisgICAgfQorICAgIAorICAgICAgICAvKiogQ29udmVydCB0aGUgYWNjZXB0ZWQgdGV4dCBpbnRvIHRoZSBhcHByb3ByaWF0ZSB1bmljb2RlIGNoYXJhY3RlciAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVN1Y2Nlc3MoTGV4IHBhcnNlciwgU3RyaW5nQnVmZmVyIG91dHB1dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgc3dpdGNoIChwYXJzZXIuZ2V0U3RhdGUoKSkgeworICAgICAgICBjYXNlIERFQ0lNQUw6CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKChjaGFyKXBhcnNlci5kYXRhQXNOdW1iZXIoMTApKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9DVEFMOgorICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCgoY2hhcilwYXJzZXIuZGF0YUFzTnVtYmVyKDgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEhFWDoKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoKGNoYXIpcGFyc2VyLmRhdGFBc051bWJlcigxNikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRVNDQVBFOgorICAgICAgICAgICAgcGFyc2VyLmFwcGVuZERhdGFUbyhvdXRwdXQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRU9MOgorICAgICAgICAgICAgLy9zaWxlbnRseSBlYXQgdGhlIEVPTCBjaGFyYWN0ZXJzCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vc2hvdWxkIG5ldmVyIGdldCBoZXJlCisgICAgICAgICAgICB0aHJvdyBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uKCJJbnRlcm5hbCBlcnJvciBwYXJzaW5nIGVzY2FwZSBzZXF1ZW5jZSIpOworLy8gICAgICAgICAgcGFyc2VyLmFwcGVuZERhdGFUbyhvdXRwdXQpOworICAgICAgICB9CisgICAgfQorICAgICAgICAvKiogcmV0dXJuIHRoZSBzdGF0ZXMgZm9yIHRoaXMgdHJhbnNhY3Rpb24gKi8KKyAgICBwcm90ZWN0ZWQgTGV4LlRyYW5zaXRpb25bXVtdIGdldFN0YXRlcygpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChnZXRDbGFzcygpKSB7CisgICAgICAgICAgICBpZiAodGhlU3RhdGVzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvL2NhY2hlIHRoZSBzdGF0ZXMgc28gdGhleSBjYW4gYmUgc2hhcmVkLiAgVGhleSBtdXN0CisgICAgICAgICAgICAgICAgLy9iZSByZWJ1aWx0IHdoZW4gdGhlIGVzY2FwZSBjaGFyYWN0ZXIgaXMgY2hhbmdlZC4KKyAgICAgICAgICAgICAgICB0aGVTdGF0ZXMgPSBuZXcgTGV4LlRyYW5zaXRpb25bXVtdIHsKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDA6IAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbihFU0NBUEVfQ0hBUiwgTGV4LklHTk9SRV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigiaWxsZWdhbCBlc2NhcGUgY2hhcmFjdGVyIikKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oT0NUQUwpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbignZCcsIExleC5JR05PUkVfQ09OU1VNRSwgLTMpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbigneCcsIExleC5JR05PUkVfQ09OU1VNRSwgLTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKE9DVEFMX0NIQVJTLCBMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtNCksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKEVTQ0FQRV9DSEFSLCBMZXguQUNDVU1VTEFURV9DT05TVU1FLCBFU0NBUEUpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEVPTFRyYW5zaXRpb24oRU9MKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgRVNDQVBFKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7IC8vc3RhdGUgMjogaGV4CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oSEVYKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihIRVhfQ0hBUlMsIExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LklHTk9SRV9QVVRCQUNLLCBIRVgpCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAzOiBkZWNpbWFsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oREVDSU1BTCksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oREVDSU1BTF9DSEFSUywgTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTMpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguSUdOT1JFX1BVVEJBQ0ssIERFQ0lNQUwpCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSA0OiBvY3RhbAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKE9DVEFMKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihPQ1RBTF9DSEFSUywgTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTQpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguSUdOT1JFX1BVVEJBQ0ssIE9DVEFMKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoZVN0YXRlczsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgTGV4LlRyYW5zaXRpb25bXVtdIHRoZVN0YXRlcyA9IG51bGw7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzID0ge3sgCisgICAgICAgICAgICAgICAgbmV3IEVzY2FwZVRyYW5zaXRpb24oU1VDQ0VTUyksCisgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKCksCisgICAgICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oImJhZCB0ZXN0IGlucHV0IikKKyAgICAgICAgICAgIH19OworICAgICAgICAgICAgU3RyaW5nIHRleHQgPSAiXFxkMTAwXFx4QWZcXFxcXFw3NzdcXFxuXFwxMjNcXHgyMDI4XFx4MjAyOSI7CisgICAgICAgICAgICBTdHJpbmdSZWFkZXIgc3IgPSBuZXcgU3RyaW5nUmVhZGVyKHRleHQpOworICAgICAgICAgICAgUHVzaGJhY2tSZWFkZXIgcHIgPSBuZXcgUHVzaGJhY2tSZWFkZXIoc3IpOworICAgICAgICAgICAgTGV4IHBhcnNlciA9IG5ldyBMZXgoc3RhdGVzLCBwcik7CisgICAgICAgICAgICAvL3BhcnNlci5kZWJ1Zyh0cnVlKTsKKyAgICAgICAgICAgIGludCBzID0gcGFyc2VyLm5leHRUb2tlbigpOworICAgICAgICAgICAgd2hpbGUgKHMgPT0gU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwYXJzZXIuZ2V0U3RhdGUoKSk7CisgICAgICAgICAgICAgICAgcyA9IHBhcnNlci5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworICAgIC8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSUNVMkxvY2FsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9JQ1UyTG9jYWxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTI2YTQzOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSUNVMkxvY2FsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMTE5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBJQ1UyTG9jYWxlV3JpdGVyIGV4dGVuZHMgTG9jYWxlV3JpdGVyIHsKKyAgICBwdWJsaWMgSUNVMkxvY2FsZVdyaXRlcihQcmludFN0cmVhbSBvdXQpIHsKKyAgICAgICAgc3VwZXIob3V0KTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisgICAgICAgIC8vfX0KK30KKyAgICBwdWJsaWMgSUNVMkxvY2FsZVdyaXRlcihQcmludFN0cmVhbSBvdXQsIFByaW50U3RyZWFtIGVycikgeworICAgICAgICBzdXBlcihvdXQsIGVycik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIG9wZW4oTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBwcmludChsb2NhbGUudG9TdHJpbmcoKSk7CisgICAgICAgIHByaW50bG4oIiB7Iik7CisgICAgICAgIGluZGVudCgpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgcHJpbnQoIiB7ICIpOworICAgICAgICBwcmludFN0cmluZyh2YWx1ZSk7CisgICAgICAgIHByaW50bG4oIiB9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZ1tdIHZhbHVlKSB7CisgICAgICAgIGlmICh0YWcgIT0gbnVsbCkgeworICAgICAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHJpbnRsbigieyIpOworICAgICAgICB9CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKHZhbHVlW2ldKTsKKyAgICAgICAgICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBPYmplY3QgbykgeworICAgICAgICBpZiAoImNvbGxhdGlvbnMiLmVxdWFscyh0YWcpKSB7CisgICAgICAgICAgICB3cml0ZVRhZ2dlZCh0YWcsKE9iamVjdFtdW10pbyk7CisgICAgICAgIH0gZWxzZSBpZiAoIShvIGluc3RhbmNlb2YgQ29sbGF0aW9uSXRlbVtdKSkgeworICAgICAgICAgICAgc3VwZXIud3JpdGUodGFnLCBvKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIENvbGxhdGlvbkl0ZW1bXSBpdGVtcyA9IChDb2xsYXRpb25JdGVtW10pbzsKKyAgICAgICAgICAgIGlmKGl0ZW1zWzBdIT1udWxsKXsKKyAgICAgICAgICAgICAgICBwcmludCgiU2VxdWVuY2UiKTsKKyAgICAgICAgICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGl0ZW1zW2ldIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50UnVsZVN0cmluZyhpdGVtc1tpXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS5jb21tZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJUbygzMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIi8vIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRsbihpdGVtc1tpXS5jb21tZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgT2JqZWN0W11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCh0YWcpOworICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGUoKFN0cmluZyl2YWx1ZVtpXVswXSwgdmFsdWVbaV1bMV0pOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUyRChTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB3cml0ZShudWxsLCB2YWx1ZVtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZVRhZ2dlZChTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB3cml0ZSh2YWx1ZVtpXVswXSwgdmFsdWVbaV1bMV0pOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgY2xvc2UoKSB7CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0U3RyaW5nSm9pbmluZ0NoYXJhY3RlcigpIHsKKyAgICAgICAgcmV0dXJuICIiOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0VzY2FwZUNoYXIoZmluYWwgY2hhciBjKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldEVzY2FwZUNoYXIoKSB7CisgICAgICAgIHJldHVybiAiXFx1IjsKKyAgICB9CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKyAgICAvL319Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9JQ1UzTG9jYWxlV3JpdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0lDVTNMb2NhbGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTJmYzhiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9JQ1UzTG9jYWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSwyMTQgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKy8qKgorICogQGF1dGhvciByYW0KKyAqCisgKiBUbyBjaGFuZ2UgdGhpcyBnZW5lcmF0ZWQgY29tbWVudCBlZGl0IHRoZSB0ZW1wbGF0ZSB2YXJpYWJsZSAidHlwZWNvbW1lbnQiOgorICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+VGVtcGxhdGVzLgorICogVG8gZW5hYmxlIGFuZCBkaXNhYmxlIHRoZSBjcmVhdGlvbiBvZiB0eXBlIGNvbW1lbnRzIGdvIHRvCisgKiBXaW5kb3c+UHJlZmVyZW5jZXM+SmF2YT5Db2RlIEdlbmVyYXRpb24uCisgKi8KK3B1YmxpYyBjbGFzcyBJQ1UzTG9jYWxlV3JpdGVyIGV4dGVuZHMgTG9jYWxlV3JpdGVyIHsKKyAgICBwdWJsaWMgSUNVM0xvY2FsZVdyaXRlcihQcmludFN0cmVhbSBvdXQpIHsKKyAgICAgICAgc3VwZXIob3V0KTsKKyAgICB9CisgICAgcHJpdmF0ZSBMaXN0UmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gbnVsbDsKKyAgICBwcm90ZWN0ZWQgdm9pZCBvcGVuKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcHJpbnQobG9jYWxlLnRvU3RyaW5nKCkpOworICAgICAgICBwcmludGxuKCIgeyIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICB9CisgICAgcHVibGljIElDVTNMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0LCBQcmludFN0cmVhbSBlcnIpIHsKKyAgICAgICAgc3VwZXIob3V0LCBlcnIpOworICAgIH0KKyAgICBwdWJsaWMgSUNVM0xvY2FsZVdyaXRlcihMaXN0UmVzb3VyY2VCdW5kbGUgYnVuZGxlLFByaW50U3RyZWFtIG91dCwgUHJpbnRTdHJlYW0gZXJyKSB7CisgICAgICAgIHN1cGVyKG91dCwgZXJyKTsKKyAgICAgICAgdGhpcy5idW5kbGUgPSBidW5kbGU7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIHdyaXRlKExvY2FsZSBsb2NhbGUpeworICAgICAgICBvcGVuKGxvY2FsZSk7CisgICAgICAgIEVudW1lcmF0aW9uIGtleXMgPSBidW5kbGUuZ2V0S2V5cygpOworICAgICAgICB3aGlsZShrZXlzLmhhc01vcmVFbGVtZW50cygpKXsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBrZXlzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBPYmplY3QgbyA9IGJ1bmRsZS5nZXRPYmplY3Qoa2V5KTsKKyAgICAgICAgICAgIHdyaXRlKGtleSwgbyk7CisgICAgICAgIH0KKyAgICAgICAgY2xvc2UoKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIGtleSwgT2JqZWN0IG8peworICAgICAgICBpZihrZXkhPW51bGwpIHByaW50KGtleSk7CisgICAgICAgIGlmKG8gaW5zdGFuY2VvZiBTdHJpbmcpeworICAgICAgICAgICAgd3JpdGUoKFN0cmluZykgbyk7CisgICAgICAgIH1lbHNlIGlmKCBvIGluc3RhbmNlb2YgSW50ZWdlcltdKXsKKyAgICAgICAgICAgIHdyaXRlKChJbnRlZ2VyW10pIG8pOworICAgICAgICB9ZWxzZSBpZihvIGluc3RhbmNlb2YgYnl0ZVtdKXsKKyAgICAgICAgICAgIHdyaXRlKChieXRlW10pIG8pOworICAgICAgICB9ZWxzZSBpZihvIGluc3RhbmNlb2YgSW50ZWdlcil7CisgICAgICAgICAgICB3cml0ZSgoSW50ZWdlcikgbyk7CisgICAgICAgIH1lbHNlIGlmKG8gaW5zdGFuY2VvZiBPYmplY3RbXVtdKXsKKyAgICAgICAgICAgIHdyaXRlKChPYmplY3RbXVtdKSBvKTsKKyAgICAgICAgfWVsc2UgaWYobyBpbnN0YW5jZW9mIE9iamVjdFtdKXsKKyAgICAgICAgICAgIHdyaXRlKChPYmplY3RbXSkgbyk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHN0cil7CisgICAgICAgIHByaW50KCJ7Iik7CisgICAgICAgIHByaW50U3RyaW5nKHN0cik7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoSW50ZWdlcltdIG8peworICAgICAgICBwcmludGxuKCI6aW50dmVjdG9yIHsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICBpZihvIT1udWxsKXsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPCBvLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICAgICBwcmludChvW2ldLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIiB9Iik7ICAgCisgICAgfQorICAgIHByaXZhdGUgU3RyaW5nIHRvSGV4KGJ5dGUgYil7CisgICAgICAgIGludCBpID0oaW50KSgoY2hhcikgKGIgJiAweEZGKSk7CisgICAgICAgIFN0cmluZyB0ZW1wID0gSW50ZWdlci50b0hleFN0cmluZyhpKTsgICAgCisgICAgICAgIGlmKHRlbXAubGVuZ3RoKCk8Mil7CisgICAgICAgICAgICByZXR1cm4gIjAiK3RlbXA7CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgcmV0dXJuIHRlbXA7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKGJ5dGVbXSBvKXsKKyAgICAgICAgcHJpbnQoIjpiaW57ICIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgaWYobyE9bnVsbCl7CisgICAgICAgICAgICBmb3IoaW50IGk9MDsgaTwgby5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgcHJpbnQodG9IZXgob1tpXSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigiIH0iKTsgCisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKEludGVnZXIgbyl7CisgICAgICAgIHByaW50KCI6aW50IHsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICBpZihvIT1udWxsKXsKKyAgICAgICAgICAgIHByaW50KG8udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCIgfSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShPYmplY3RbXSBvKXsKKyAgICAgICAgU3RyaW5nIGtleSA9IG51bGw7CisgICAgICAgIHByaW50bG4oIjphcnJheSB7ICIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8by5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIGlmKG9baV0gaW5zdGFuY2VvZiBTdHJpbmcpeworICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKChTdHJpbmcpb1tpXSk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICB3cml0ZShrZXksb1tpXSk7ICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCIgfSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShPYmplY3RbXVtdIG8peworICAgICAgICAvL1N0cmluZyBrZXkgPSBudWxsOworICAgICAgICBwcmludGxuKCI6dGFibGUgeyIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8IG8ubGVuZ3RoO2krKyl7CisKKyAgICAgICAgICAgIGlmKG9baV1bMV0gaW5zdGFuY2VvZiBTdHJpbmcpeworICAgICAgICAgICAgICAgIHByaW50KChTdHJpbmcpIG9baV1bMF0pOworICAgICAgICAgICAgICAgIHByaW50KCJ7Iik7CisgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcoKFN0cmluZykgb1tpXVsxXSk7CisgICAgICAgICAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgd3JpdGUoKFN0cmluZykgb1tpXVswXSwgb1tpXVsxXSk7CisgICAgICAgICAgICAgICAgcHJpbnRsbigiIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfSAgIAorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIiB9Iik7CisgICAgfQorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vLyBPbmx5IGZvciBjb21wYXRpYmlsaXR5IHdpdGggc3VwZXIgY2xhc3MgCisgICAgLy8vIG5vdCByZXF1aXJlZCBvdGhlcndpc2UKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIAorICAgIC8vLy8vLy8gQkVHSU4gLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgIHByaW50KCIgeyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodmFsdWUpOworICAgICAgICBwcmludGxuKCIgfSIpOworICAgIH0KKyAgICAKKworICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZ1tdIHZhbHVlKSB7CisgICAgICAgIGlmICh0YWcgIT0gbnVsbCkgeworICAgICAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHJpbnRsbigieyIpOworICAgICAgICB9CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKHZhbHVlW2ldKTsKKyAgICAgICAgICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZTJEKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlKG51bGwsIHZhbHVlW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlVGFnZ2VkKFN0cmluZyB0YWcsIE9iamVjdFtdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlKChTdHJpbmcpdmFsdWVbaV1bMF0sIHZhbHVlW2ldWzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlVGFnZ2VkKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgcHJpbnRsbigiIHsgIik7CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlKHZhbHVlW2ldWzBdLCB2YWx1ZVtpXVsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLyBFTkQgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIHByb3RlY3RlZCB2b2lkIGNsb3NlKCkgeworICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAvLyBzdXBlci5jbG9zZUZpbGVIYW5kbGUoKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldFN0cmluZ0pvaW5pbmdDaGFyYWN0ZXIoKSB7CisgICAgICAgIHJldHVybiAiIjsKKyAgICB9CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0lDVUxvY2FsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9JQ1VMb2NhbGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NDVjMDBhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9JQ1VMb2NhbGVXcml0ZXIuamF2YQpAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGphdmEudXRpbC4qOworCitwdWJsaWMgY2xhc3MgSUNVTG9jYWxlV3JpdGVyIGV4dGVuZHMgTG9jYWxlV3JpdGVyIHsKKyAgICBwdWJsaWMgSUNVTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCkgeworICAgICAgICBzdXBlcihvdXQpOworICAgIH0KKyAgICBwdWJsaWMgSUNVTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCwgUHJpbnRTdHJlYW0gZXJyKSB7CisgICAgICAgIHN1cGVyKG91dCwgZXJyKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgb3BlbihMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHByaW50KGxvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgcHJpbnRsbigiIHsiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIE9iamVjdCBvKSB7CisgICAgICAgIGlmICgiY29sbGF0aW9ucyIuZXF1YWxzKHRhZykpIHsKKyAgICAgICAgICAgIGlmKG8gaW5zdGFuY2VvZiBPYmplY3RbXVtdKXsKKyAgICAgICAgICAgICAgICB3cml0ZVRhZ2dlZCh0YWcsKE9iamVjdFtdW10pbyk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgIHdyaXRlKHRhZywoU3RyaW5nKW8pOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKCEobyBpbnN0YW5jZW9mIENvbGxhdGlvbkl0ZW1bXSkpIHsKKyAgICAgICAgICAgIHN1cGVyLndyaXRlKHRhZywgbyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBDb2xsYXRpb25JdGVtW10gaXRlbXMgPSAoQ29sbGF0aW9uSXRlbVtdKW87CisgICAgICAgICAgICBpZihpdGVtc1swXSE9bnVsbCl7CisgICAgICAgICAgICBwcmludCgiU2VxdWVuY2UiKTsKKyAgICAgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmKGl0ZW1zW2ldIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcoaXRlbXNbaV0udG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtc1tpXS5jb21tZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYlRvKDMwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCIvLyIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRsbihpdGVtc1tpXS5jb21tZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgcHJpbnQoIiB7ICIpOworICAgICAgICBwcmludFN0cmluZyh2YWx1ZSk7CisgICAgICAgIHByaW50bG4oIiB9Iik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlSW50VmVjdG9yKFN0cmluZyB0YWcsIFN0cmluZ1tdIHZhbHVlKSB7CisgICAgICAgIGlmICh0YWcgIT0gbnVsbCkgeworICAgICAgICAgICAgcHJpbnQodGFnKTsKKyAgICAgICAgICAgIHByaW50bG4oIjppbnR2ZWN0b3IgeyAiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByaW50bG4oIjppbnR2ZWN0b3J7Iik7CisgICAgICAgIH0KKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgcHJpbnRVbnF1b3RlZFN0cmluZyh2YWx1ZVtpXSk7CisgICAgICAgICAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nW10gdmFsdWUpIHsKKyAgICAgICAgaWYodGFnICE9bnVsbCAmJiB0YWcuZXF1YWxzKCJEYXRlVGltZUVsZW1lbnRzIikpeworICAgICAgICAgICAgd3JpdGVJbnRWZWN0b3IodGFnLHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAodGFnICE9IG51bGwpIHsKKyAgICAgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgICAgICBwcmludGxuKCIgeyAiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByaW50bG4oInsiKTsKKyAgICAgICAgfQorICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBwcmludFN0cmluZyh2YWx1ZVtpXSk7CisgICAgICAgICAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGUyRChTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB3cml0ZShudWxsLCB2YWx1ZVtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZVRhZ2dlZChTdHJpbmcgdGFnLCBPYmplY3RbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB3cml0ZSgoU3RyaW5nKXZhbHVlW2ldWzBdLCB2YWx1ZVtpXVsxXSk7CisgICAgICAgICAgICB9CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZVRhZ2dlZChTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKSB7CisgICAgICAgIHByaW50KHRhZyk7CisgICAgICAgIHByaW50bG4oIiB7ICIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB3cml0ZSh2YWx1ZVtpXVswXSwgdmFsdWVbaV1bMV0pOworICAgICAgICAgICAgfQorICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgY2xvc2UoKSB7CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgIC8vIHN1cGVyLmNsb3NlRmlsZUhhbmRsZSgpOworICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0U3RyaW5nSm9pbmluZ0NoYXJhY3RlcigpIHsKKyAgICAgICAgcmV0dXJuICIiOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSmF2YTFMb2NhbGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSmF2YTFMb2NhbGVXcml0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZjcyZWM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9KYXZhMUxvY2FsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMTQxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBKYXZhMUxvY2FsZVdyaXRlciBleHRlbmRzIExvY2FsZVdyaXRlciB7CisgICAgcHVibGljIEphdmExTG9jYWxlV3JpdGVyKFByaW50U3RyZWFtIG91dCkgeworICAgICAgICBzdXBlcihvdXQpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKyAgICAgICAgLy99fQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgSmF2YTFMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0LCBQcmludFN0cmVhbSBlcnIpIHsKKyAgICAgICAgc3VwZXIob3V0LCBlcnIpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShMb2NhbGUgbG9jYWxlLCBIYXNodGFibGUgbG9jYWxlRGF0YSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgSGFzaHRhYmxlIHRlbXAgPSBuZXcgTmV1dHJhbFRvSjFDb252ZXJ0ZXIobG9jYWxlKS5jb252ZXJ0KGxvY2FsZURhdGEpOworICAgICAgICAgICAgc3VwZXIud3JpdGUobG9jYWxlLCB0ZW1wKTsKKyAgICAgICAgfSBjYXRjaCAoTG9jYWxlQ29udmVydGVyLkNvbnZlcnNpb25FcnJvciBlKSB7CisgICAgICAgICAgICBlcnIucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIG9wZW4oTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBwcmludChIRUFERVIxKTsKKyAgICAgICAgcHJpbnQobG9jYWxlLnRvU3RyaW5nKCkpOworICAgICAgICBwcmludChIRUFERVIyKTsKKyAgICAgICAgcHJpbnQobG9jYWxlLnRvU3RyaW5nKCkpOworICAgICAgICBwcmludGxuKEhFQURFUjMpOworICAgICAgICBpbmRlbnQoMyk7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgcHJpbnQoIiwgIik7CisgICAgICAgIHByaW50U3RyaW5nKHZhbHVlKTsKKyAgICAgICAgcHJpbnRsbigiIH0sIik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZ1tdIHZhbHVlKSB7CisgICAgICAgIHByaW50KCJ7ICIpOworICAgICAgICBpZiAodGFnICE9IG51bGwpIHsKKyAgICAgICAgICAgIHByaW50U3RyaW5nKHRhZyk7CisgICAgICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwcmludGxuKCIiKTsKKyAgICAgICAgfQorICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIm5ldyBTdHJpbmdbXSB7Iik7CisgICAgICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKHZhbHVlW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9LCIpOworICAgIH0KKyAgICBwcm90ZWN0ZWQgdm9pZCB3cml0ZTJEKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQoInsgIik7CisgICAgICAgIHByaW50U3RyaW5nKHRhZyk7CisgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJuZXcgU3RyaW5nW11bXSB7Iik7CisgICAgICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50bG4oInsiKTsKKyAgICAgICAgICAgICAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdmFsdWVbaV0ubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKHZhbHVlW2ldW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgICAgICAgICAgICAgIHByaW50bG4oIn0sIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0sIik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlVGFnZ2VkKFN0cmluZyB0YWcsIFN0cmluZ1tdW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQoInsgIik7CisgICAgICAgIHByaW50U3RyaW5nKHRhZyk7CisgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJuZXcgU3RyaW5nW11bXSB7Iik7CisgICAgICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlKHZhbHVlW2ldWzBdLCB2YWx1ZVtpXVsxXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0sIik7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGNsb3NlKCkgeworICAgICAgICBvdXRkZW50KDMpOworICAgICAgICBwcmludChGT09URVIpOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIGFwcGVuZEVzY2FwZWRDaGFyKGNoYXIgYywgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgeworICAgICAgICBpZiAoYyA8ICdcdTAwMjAnIHx8IGMgPT0gJyInIHx8IGMgPT0gJ1xcJykgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDcwMCkgPj4gNl0pOyAvLyBIRVhfRElHSVQgd29ya3MgZm9yIG9jdGFsCisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDAwNzApID4+IDNdKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDAwNyldKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHN1cGVyLmFwcGVuZEVzY2FwZWRDaGFyKGMsIGJ1ZmZlcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldFN0cmluZ0pvaW5pbmdDaGFyYWN0ZXIoKSB7CisgICAgICAgIHJldHVybiAiKyI7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBIRUFERVIxID0gCisgICAgICAgICAgICAicGFja2FnZSBqYXZhLnRleHQucmVzb3VyY2VzO1xuIisKKyAgICAgICAgICAgICJwdWJsaWMgY2xhc3MgTG9jYWxlRWxlbWVudHNfIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSEVBREVSMiA9IAorICAgICAgICAgICAgIiBleHRlbmRzIExvY2FsZURhdGEge1xuIisKKyAgICAgICAgICAgICIgICAgcHVibGljIExvY2FsZUVsZW1lbnRzXyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhFQURFUjMgPSAKKyAgICAgICAgIigpIHtcbiIrCisgICAgICAgICIgICAgICAgIHN1cGVyLmluaXQodGFibGUpO1xuIisKKyAgICAgICAgIiAgICB9XG4iKworICAgICAgICAiICAgIHN0YXRpYyBTdHJpbmcgdGFibGUgW109IjsKKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZPT1RFUiA9IAorICAgICAgICAiICAgIH1cbiIrCisgICAgICAgICJ9IjsKKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworICAgIC8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSmF2YUxvY2FsZVdyaXRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9KYXZhTG9jYWxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTAyYzgxMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvSmF2YUxvY2FsZVdyaXRlci5qYXZhCkBAIC0wLDAgKzEsMTY0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBKYXZhTG9jYWxlV3JpdGVyIGV4dGVuZHMgTG9jYWxlV3JpdGVyIHsKKyAgICBwdWJsaWMgSmF2YUxvY2FsZVdyaXRlcihQcmludFN0cmVhbSBvdXQpIHsKKyAgICAgICAgc3VwZXIob3V0KTsKKyAgICB9CisgICAgcHVibGljIEphdmFMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0LCBQcmludFN0cmVhbSBlcnIpIHsKKyAgICAgICAgc3VwZXIob3V0LCBlcnIpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBvcGVuKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcHJpbnRsbihIRUFERVIpOworICAgICAgICBpbmRlbnQoMyk7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIE9iamVjdCBvKSB7CisgICAgICAgIGlmICgiY29sbGF0aW9ucyIuZXF1YWxzKHRhZykpIHsKKyAgICAgICAgICAgICB3cml0ZVRhZ2dlZCh0YWcsKE9iamVjdFtdW10pbyk7CisgICAgICAgIH0gZWxzZSBpZiAoIShvIGluc3RhbmNlb2YgQ29sbGF0aW9uSXRlbVtdKSkgeworICAgICAgICAgICAgc3VwZXIud3JpdGUodGFnLCBvKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIENvbGxhdGlvbkl0ZW1bXSBpdGVtcyA9IChDb2xsYXRpb25JdGVtW10pbzsKKyAgICAgICAgICAgIHByaW50KCJ7ICIpOworICAgICAgICAgICAgcHJpbnRTdHJpbmcoImNvbGxhdGlvbnMiKTsKKyAgICAgICAgICAgIHByaW50bG4oIiwgIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYoaXRlbXNbaV0hPW51bGwpeworICAgICAgICAgICAgICAgICAgICBwcmludFN0cmluZyhpdGVtc1tpXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLmNvbW1lbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoIisiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYlRvKDMwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCIvLyIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRsbihpdGVtc1tpXS5jb21tZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50bG4oIisiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByaW50bG4oIlwiXCIiKTsKKyAgICAgICAgICAgIHByaW50bG4oIiB9LCIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHByaW50KCJ7ICIpOworICAgICAgICBwcmludFN0cmluZyh0YWcpOworICAgICAgICBwcmludCgiLCAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodmFsdWUpOworICAgICAgICBwcmludGxuKCIgfSwiKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nW10gdmFsdWUpIHsKKyAgICAgICAgcHJpbnQoInsgIik7CisgICAgICAgIGlmICh0YWcgIT0gbnVsbCkgeworICAgICAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgICAgIHByaW50bG4oIiwiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByaW50bG4oIiIpOworICAgICAgICB9CisgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigibmV3IFN0cmluZ1tdIHsiKTsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcodmFsdWVbaV0pOworICAgICAgICAgICAgICAgICAgICBwcmludGxuKCIsIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICAgICAgcHJpbnRsbigifSIpOworICAgICAgICBvdXRkZW50KCk7CisgICAgICAgIHByaW50bG4oIn0sIik7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIHdyaXRlMkQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIm5ldyBTdHJpbmdbXVtdIHsiKTsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigieyIpOworICAgICAgICAgICAgICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB2YWx1ZVtpXS5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcodmFsdWVbaV1bal0pOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIm5ldyBTdHJpbmdbXVtdIHsiKTsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUodmFsdWVbaV1bMF0sIHZhbHVlW2ldWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRkZW50KCk7CisgICAgICAgICAgICBwcmludGxuKCJ9Iik7CisgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgcHJpbnRsbigifSwiKTsKKyAgICB9CisgICAgcHVibGljIHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgT2JqZWN0W11bXSB2YWx1ZSkgeworICAgICAgICBwcmludCgieyAiKTsKKyAgICAgICAgcHJpbnRTdHJpbmcodGFnKTsKKyAgICAgICAgcHJpbnRsbigiLCIpOworICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIm5ldyBTdHJpbmdbXVtdIHsiKTsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUoKFN0cmluZyl2YWx1ZVtpXVswXSwgdmFsdWVbaV1bMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgICAgIHByaW50bG4oIn0iKTsKKyAgICAgICAgb3V0ZGVudCgpOworICAgICAgICBwcmludGxuKCJ9LCIpOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBjbG9zZSgpIHsKKyAgICAgICAgb3V0ZGVudCgzKTsKKyAgICAgICAgcHJpbnQoRk9PVEVSKTsKKyAgICAgICAgcHJpbnRsbigiIik7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgYXBwZW5kRXNjYXBlZENoYXIoY2hhciBjLCBTdHJpbmdCdWZmZXIgYnVmZmVyKSB7CisgICAgICAgIGlmIChjIDwgJ1x1MDAyMCcgfHwgYyA9PSAnIicgfHwgYyA9PSAnXFwnKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwNzAwKSA+PiA2XSk7IC8vIEhFWF9ESUdJVCB3b3JrcyBmb3Igb2N0YWwKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDA3MCkgPj4gM10pOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwMDA3KV0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc3VwZXIuYXBwZW5kRXNjYXBlZENoYXIoYywgYnVmZmVyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0U3RyaW5nSm9pbmluZ0NoYXJhY3RlcigpIHsKKyAgICAgICAgcmV0dXJuICIrIjsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhFQURFUiA9IAorICAgICAgICAicGFja2FnZSBqYXZhLnRleHQucmVzb3VyY2VzO1xuIisKKyAgICAgICAgImltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlO1xuIisKKyAgICAgICAgInB1YmxpYyBjbGFzcyBUZXN0TG9jYWxlRWxlbWVudHMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUge1xuIisKKyAgICAgICAgIiAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHtcbiIrCisgICAgICAgICIgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7IjsKKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZPT1RFUiA9IAorICAgICAgICAiICAgICAgICB9O1xuIisKKyAgICAgICAgIiAgICB9XG4iKworICAgICAgICAifSI7CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKyAgICAvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xleC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9MZXguamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZjdlYzVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9MZXguamF2YQpAQCAtMCwwICsxLDQxMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEEgTGV4IGlzIGEgc3RhdGUgbWFjaGluZS4gIFRyYW5zaXRpb25zIGNhbiBiZSBhY3RpdmF0ZWQKKyAqIGFyYml0cmFyaWx5IGFuZCBjYW4gY29uc3VtZSBhcmJpdHJhcnkgYW1vdW50cyBvZiB0ZXh0LgorICogQSB0cmFuc2l0aW9uIHNpbXBseSBzYXlzIGl0IGNhbiBjb25zdW1lIHRoZSBuZXh0IGNoYXJhY3RlcgorICogYW5kIHJldHVybnMgdGhlIHN0YXRlIHRoYXQgdGhlIG1hY2hpbmUgc2hvdWxkIHRyYW5zaXRpb24gaW50by4KKyAqIFN0YXRlcyB0aGF0IGFyZSA+IDAgYXJlIGZpbmFsIHN0YXRlcyBhbmQgY2F1c2UgdGhlIG5leHRUb2tlbgorICogcm91dGluZSB0byByZXR1cm4gYSB2YWx1ZS4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIExleCB7CisgICAgcHJpdmF0ZSBUcmFuc2l0aW9uW11bXSBzdGF0ZXM7ICAvL2ZpbmFsCisgICAgcHJpdmF0ZSBQdXNoYmFja1JlYWRlciBpbnB1dDsgICAvL2ZpbmFsCisgICAgcHJpdmF0ZSBpbnQgc3RhdGU7CisgICAgcHJpdmF0ZSBTdHJpbmcgZGF0YTsKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZ0J1ZmZlciBkYXRhQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgIHByaXZhdGUgYm9vbGVhbiBkZWJ1Z01lc3NhZ2VzT247CisgICAgcHJpdmF0ZSBTdHJpbmcgZGVidWdUYWc7CisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRU5EX09GX0ZJTEUgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKworICAgICAgICAvKiogQ29uc3RydWN0IGEgbmV3IG1hY2hpbmUuICBOT1RFOiBzZXRJbnB1dCBtdXN0IGJlCisgICAgICAgICAqIGNhbGxlZCBiZWZvcmUgbmV4dFRva2VuIGlzIGNhbGxlZCAqLworICAgIHB1YmxpYyBMZXgoZmluYWwgVHJhbnNpdGlvbltdW10gc3RhdGVzKSB7CisgICAgICAgIHRoaXMuc3RhdGVzID0gc3RhdGVzOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKy8vfX0KK30KKworICAgICAgICAvKiogQ29uc3RydWN0IGEgbmV3IG1hY2hpbmUuICovCisgICAgcHVibGljIExleChmaW5hbCBUcmFuc2l0aW9uW11bXSBzdGF0ZXNJbiwgZmluYWwgUHVzaGJhY2tSZWFkZXIgaW5wdXRJbikgeworICAgICAgICBzdGF0ZXMgPSBzdGF0ZXNJbjsKKyAgICAgICAgaW5wdXQgPSBpbnB1dEluOworICAgIH0KKworICAgICAgICAvKiogUmV0dXJuIHRoZSBjdXJyZW50IHN0YXRlICovCisgICAgcHVibGljIGludCBnZXRTdGF0ZSgpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRlOworICAgIH0KKworICAgICAgICAvKiogUmV0dXJuIHRoZSBkYXRhIHJlc3VsdGluZyBmcm9tIHRoZSBsYXN0IGNhbGwgdG8gbmV4dFRva2VuICovCisgICAgcHVibGljIFN0cmluZyBnZXREYXRhKCkgeworICAgICAgICBpZiAoZGF0YSA9PSBudWxsKSB7CisgICAgICAgICAgICBkYXRhID0gZGF0YUJ1ZmZlci50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkYXRhOworICAgIH0KKyAgICAKKyAgICAgICAgLyoqIFJldHVybiB0aGUgaW5wdXQgcmVhZGVyIHVzZWQgYnkgdGhpcyBtYWNoaW5lICovCisgICAgcHVibGljIFB1c2hiYWNrUmVhZGVyIGdldElucHV0KCkgeworICAgICAgICByZXR1cm4gaW5wdXQ7CisgICAgfQorCisgICAgICAgIC8qKiBzZXQgdGhlIGlucHV0IHJlYWRlciB1c2VkIGJ5IHRoaXMgbWFjaGluZSAqLworICAgIHB1YmxpYyB2b2lkIHNldElucHV0KFB1c2hiYWNrUmVhZGVyIGlucHV0KSB7CisgICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDsKKyAgICB9CisKKyAgICAgICAgLyoqIFJldHVybiB0aGUgc3RhdGVzIHVzZWQgYnkgdGhpcyBtYWNoaW5lICovCisgICAgcHVibGljIFRyYW5zaXRpb25bXVtdIGdldFN0YXRlcygpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRlczsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRTdGF0ZXMoVHJhbnNpdGlvbltdW10gc3RhdGVzKSB7CisgICAgICAgIHRoaXMuc3RhdGVzID0gc3RhdGVzOworICAgIH0KKworICAgICAgICAvKiogUmV0dXJuIHRydWUgaWYgdGhlIHNwZWNpZmllZCBzdHJpbmcgZXF1YWxzIHRoZQorICAgICAgICAgKiBzdHJpbmcgcmV0dXJuZWQgYnkgZ2V0RGF0YSgpLiAgVGhpcyByb3V0aW5lCisgICAgICAgICAqIG1heSBiZSBmYXN0ZXIgdGhhbiBjYWxsaW5nIGdldERhdGEgYmVjYXVzZQorICAgICAgICAgKiBpdCBkb2VzIG5vdCBjcmVhdGUgYSBzdHJpbmcgb24gdGhlIGhlYXAuCisgICAgICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGRhdGFFcXVhbHMoZmluYWwgU3RyaW5nIG90aGVyKSB7CisgICAgICAgIGlmIChkYXRhICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vaWYgZGF0YUJ1ZmZlciBoYXMgYWxyZWFkeSBiZWVuIGNvbnZlcnRlZCB0bworICAgICAgICAgICAgLy9hIHN0cmluZywganVzdCBjb21wYXJlIHRoZSBzdHJpbmdzLgorICAgICAgICAgICAgcmV0dXJuIGRhdGEuZXF1YWxzKG90aGVyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChvdGhlci5sZW5ndGgoKSAhPSBkYXRhQnVmZmVyLmxlbmd0aCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBmaW5hbCBpbnQgbGVuID0gZGF0YUJ1ZmZlci5sZW5ndGgoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAob3RoZXIuY2hhckF0KGkpICE9IGRhdGFCdWZmZXIuY2hhckF0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFwcGVuZCB0aGUgZGF0YSByZXR1cm5lZCBmcm9tIGdldERhdGEoKSB0byB0aGUKKyAgICAgICAgICogc3BlY2lmaWVkIFN0cmluZ0J1ZmZlci4gIFRoaXMgcm91dGluZSBhdm9pZHMKKyAgICAgICAgICogdGhlIGNyZWF0aW9uIG9mIGEgU3RyaW5nIG9uIHRoZSBoZWFwLgorICAgICAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBlbmREYXRhVG8oU3RyaW5nQnVmZmVyIGJ1ZmZlcikgeworICAgICAgICBidWZmZXIuYXBwZW5kKGRhdGFCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGRhdGEgcmV0dXJuZWQgYnkgZ2V0RGF0YSgpCisgICAgICAgICAqIHN0YXJ0cyB3aXRoIHRoZSBzcGVjaWZpZWQgc3RyaW5nLiAgVGhpcyByb3V0aW5lIGF2b2lkcworICAgICAgICAgKiB0aGUgY3JlYXRpb24gb2YgYSBTdHJpbmcgb24gdGhlIGhlYXAuCisgICAgICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGRhdGFTdGFydHNXaXRoKFN0cmluZyBzKSB7CisgICAgICAgIGlmIChkYXRhQnVmZmVyLmxlbmd0aCgpIDwgcy5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZmluYWwgaW50IHNMZW5ndGggPSBzLmxlbmd0aCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzTGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoZGF0YUJ1ZmZlci5jaGFyQXQoaSkgIT0gcy5jaGFyQXQoaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBDb252ZXJ0IHRoZSBjb250ZW50cyBvZiB0aGUgZGF0YSBidWZmZXIgdG8gYW4gaW50ZWdlcgorICAgICAgICAgKiBvZiB0aGUgc3BlY2lmaWVkIHJhZGl4CisgICAgICAgICAqLworICAgIHB1YmxpYyBpbnQgZGF0YUFzTnVtYmVyKGludCByYWRpeCkgeworICAgICAgICBpbnQgdmFsdWUgPSAwOworICAgICAgICBmaW5hbCBpbnQgbGVuID0gZGF0YUJ1ZmZlci5sZW5ndGgoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykgeworICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSpyYWRpeCArIENoYXJhY3Rlci5kaWdpdChkYXRhQnVmZmVyLmNoYXJBdChpKSwgcmFkaXgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXQgdGhlIG5leHQgdG9rZW4gZnJvbSB0aGUgaW5wdXQgc3RyZWFtLiAgVGhlCisgICAgICAgICAqIGRhdGFCdWZmZXIgaXMgY2xlYXJlZCBhbmQgdGhlIHN0YXRlIGlzIHNldCB0byB6ZXJvIGJlZm9yZQorICAgICAgICAgKiBwYXJzaW5nIGJlZ2lucy4gIFBhcnNpbmcgY29udGludWVzIHVudGlsIGEgc3RhdGUKKyAgICAgICAgICogZ3JlYXRlciBvZiBlcXVhbCB0byAwIHMgcmVhY2hlZCBvciBhbiBleGNlcHRpb24gaXMgdGhyb3duLgorICAgICAgICAgKiBBZnRlciBlYWNoIG5vbi10ZXJtaW5hbCB0cmFuc2l0aW9uLCB0aGUgc3RhdGUgbWFjaGluZSAKKyAgICAgICAgICogd2Fsa3MgdGhyb3VnaCBhbGwgdGhlIHRyYW5zaXRpb25zLCBpbiBvcmRlciwgZm9yIHRoZSBjdXJyZW50CisgICAgICAgICAqIHN0YXRlIHVudGlsIGl0IGZpbmRzIG9uZSB0aGF0IHdpbGwgYWNjZXB0IHRoZSBjdXJyZW50CisgICAgICAgICAqIGlucHV0IGNoYXJhY3RlciBhbmQgdGhlbiBjYWxscyBkb0FjdGlvbiBvbiB0aGF0IHRyYW5zaXRpb24uCisgICAgICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dFRva2VuKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgc3RhdGUgPSAwOworICAgICAgICBkYXRhQnVmZmVyLnNldExlbmd0aCgwKTsKKworICAgICAgICBkbyB7CisgICAgICAgICAgICBpbnQgYyA9IGlucHV0LnJlYWQoKTsKKyAgICAgICAgICAgIGZpbmFsIFRyYW5zaXRpb25bXSB0cmFuc2l0aW9uID0gc3RhdGVzWy1zdGF0ZV07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRyYW5zaXRpb24ubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAodHJhbnNpdGlvbltpXS5hY2NlcHRzKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJzdGF0ZVsiKyAtc3RhdGUrIl0udHJhbnNpdGlvblsiK2krIl0gb24gIitjKyIgICciKyhjaGFyKWMrIicgdG8gc3RhdGVbIik7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gdHJhbnNpdGlvbltpXS5kb0FjdGlvbihjLCBpbnB1dCwgZGF0YUJ1ZmZlcik7CisgICAgICAgICAgICAgICAgICAgIC8vcHJpbnRsbigiIiArIC1zdGF0ZSArICJdIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSB3aGlsZSAoc3RhdGUgPD0gMCk7CisgICAgICAgIGRhdGEgPSBudWxsOyAgICAvL2R1bXAgdGhlIGNhY2hlZCBkYXRhIHN0cmluZworICAgICAgICByZXR1cm4gc3RhdGU7CisgICAgfQorCisgICAgICAgIC8qKiAKKyAgICAgICAgICogR2V0IHRoZSBuZXh0IHRva2VuIGFuZCB0aHJvdyBhbiBhY2NlcHRpb24gaWYKKyAgICAgICAgICogdGhlIHN0YXRlIG1hY2hpbmUgaXMgbm90IGluIHRoZSBzcGVjaWZpZWQgc3RhdGUuCisgICAgICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFjY2VwdChmaW5hbCBpbnQgbmVlZGVkU3RhdGUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChuZWVkZWRTdGF0ZSAhPSBuZXh0VG9rZW4oKSkgeworICAgICAgICAgICAgRXhjZXB0aW9uIGUgPSBuZXcgRXhjZXB0aW9uKCk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXhjZXB0aW9uKCJVbmV4cGVjdGVkIHRva2VuIC0gIitnZXREYXRhKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogR2V0IHRoZSBuZXh0IHRva2VuIGFuZCB0aHJvdyBhbiBleGNlcHRpb24gaWYgdGhlCisgICAgICAgICAqIHN0YXRlIG1hY2hpbmUgaXMgbm90IGluIHRoZSBzcGVjaWZpZWQgc3RhdGUgYW5kIHRoZQorICAgICAgICAgKiB2YWx1ZSByZXR1cm5lZCBieSBnZXREYXRhKCkgZG9lcyBub3QgbWF0Y2ggdGhlIAorICAgICAgICAgKiBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFjY2VwdChmaW5hbCBpbnQgbmVlZGVkU3RhdGUsIGZpbmFsIFN0cmluZyBuZWVkZWRWYWx1ZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgYWNjZXB0KG5lZWRlZFN0YXRlKTsKKyAgICAgICAgaWYgKCFkYXRhRXF1YWxzKG5lZWRlZFZhbHVlKSkgeworICAgICAgICAgICAgRXhjZXB0aW9uIGUgPSBuZXcgRXhjZXB0aW9uKCk7CisgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXhjZXB0aW9uKCJVbmV4cGVjdGVkIHRva2VuIC0gIitnZXREYXRhKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZGVidWcoYm9vbGVhbiBkZWJ1Z01lc3NhZ2VzT24pIHsKKyAgICAgICAgdGhpcy5kZWJ1Z01lc3NhZ2VzT24gPSBkZWJ1Z01lc3NhZ2VzT247CisgICAgICAgIGRlYnVnVGFnID0gbnVsbDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgZGVidWcoYm9vbGVhbiBkZWJ1Z01lc3NhZ2VzT24sIFN0cmluZyB0YWcpIHsKKyAgICAgICAgdGhpcy5kZWJ1Z01lc3NhZ2VzT24gPSBkZWJ1Z01lc3NhZ2VzT247CisgICAgICAgIHRoaXMuZGVidWdUYWcgPSB0YWc7CisgICAgfQorICAgIAorLyogIHByaXZhdGUgdm9pZCBwcmludChTdHJpbmcgcykgeworICAgICAgICBpZiAoZGVidWdNZXNzYWdlc09uKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHMpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByaW50bG4oU3RyaW5nIHMpIHsKKyAgICAgICAgaWYgKGRlYnVnTWVzc2FnZXNPbikgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHMrIiAgPCIrZGVidWdUYWcpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIGludGVyZmFjZSBmb3Igc3RhdGUgbWFjaGluZSB0cmFuc2l0aW9ucy4gCisgICAgICovCisgICAgcHVibGljIGludGVyZmFjZSBUcmFuc2l0aW9uIHsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgdHJhbnNpdGlvbiBjYW4gYWNjZXB0IHRoZSBjdXJyZW50IGlucHV0CisgICAgICAgICAqIGNoYXJhY3Rlci4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpOworICAgICAgICAvKioKKyAgICAgICAgICogUGVyZm9ybSB0aGUgdHJhbnNpdGlvbi4KKyAgICAgICAgICogQHBhcmFtIGMgdGhlIGN1cnJlbnQgaW5wdXQgY2hhcmFjdGVyCisgICAgICAgICAqIEBwYXJhbSBpbnB1dCB0aGUgY3VycmVudCBpbnB1dCBzdHJlYW0sIG1pbnVzIHRoZSBjdXJyZW50IGlucHV0IGNoYXJhY3RlcgorICAgICAgICAgKiBAcGFyYW0gYnVmZmVyIHRoZSBjdXJyZW50IG91dHB1dCBidWZmZXIKKyAgICAgICAgICogQHJldHVybiB0aGUgc3RhdGUgdGhlIG1hY2hpbmUgc2hvdWxkIGJlIGluIG5leHQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZG9BY3Rpb24oaW50IGMsIFB1c2hiYWNrUmVhZGVyIGlucHV0LCBTdHJpbmdCdWZmZXIgYnVmZmVyKSB0aHJvd3MgSU9FeGNlcHRpb247CisgICAgfQorCisgICAgICAgIC8qIGNvbnN0YW50cyBmb3IgQmFzZVRyYW5zaXRpb25zICovCisgICAgICAgIC8qKiBEb24ndCBjb3B5IHRoZSBjdXJyZW50IGNoYXJhY3RlciB0byB0aGUgb3V0cHV0ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIElHTk9SRSA9IDB4MDE7CisgICAgICAgIC8qKiBBcHBlbmQgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIHRvIHRoZSBvdXRwdXQgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgQUNDVU1VTEFURSA9IDB4MDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCVUZGRVJfTUFTSyA9IDB4MDE7CisKKyAgICAgICAgLyoqIFJlbW92ZSB0aGUgY3VycmVudCBjaGFyYWN0ZXIgZnJvbSB0aGUgaW5wdXQgc3RyZWFtICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIENPTlNVTUUgPSAweDAwOworICAgICAgICAvKiogUmV0dXJuIHRoZSBjdXJyZW50IGNoYXJhY3RlciB0byB0aGUgaW5wdXQgc3RyZWFtICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIFBVVEJBQ0sgPSAweDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgSU5QVVRfTUFTSyA9IDB4MTA7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgCisgICAgICAgICAgICBBQ0NVTVVMQVRFX0NPTlNVTUUgPSAoYnl0ZSkoQUNDVU1VTEFURSB8IENPTlNVTUUpLAorICAgICAgICAgICAgSUdOT1JFX0NPTlNVTUUgPSAoYnl0ZSkoSUdOT1JFIHwgQ09OU1VNRSksCisgICAgICAgICAgICBBQ0NVTVVMQVRFX1BVVEJBQ0sgPSAoYnl0ZSkoQUNDVU1VTEFURSB8IFBVVEJBQ0spLAorICAgICAgICAgICAgSUdOT1JFX1BVVEJBQ0sgPSAoYnl0ZSkoSUdOT1JFIHwgUFVUQkFDSyk7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNzIGZvciBzaW1wbGUgdHJhbnNpdGlvbiBjbGFzc2VzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBCYXNlVHJhbnNpdGlvbiBpbXBsZW1lbnRzIFRyYW5zaXRpb24geworICAgICAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gYWRkVG9CdWZmZXI7CisgICAgICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiB1bnJlYWRJbnB1dDsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBpbnQgbmV4dDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdCBhIG5ldyB0cmFuc2l0aW9uLiAgT24gZXhlY3V0aW9uLCB0aGUgCisgICAgICAgICAqIHNwZWNpZmllZCBhY3Rpb24gaXMgcGVyZm9ybWVkIGFuZCB0aGUKKyAgICAgICAgICogc3BlY2lmaWVkIHN0YXRlIGlzIHJldHVybmVkLgorICAgICAgICAgKiBAcGFyYW0gYWN0aW9uIHRoZSBhY3Rpb25zIHRvIHBlcmZvcm0gdG8gdGhlIAorICAgICAgICAgKiBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMuCisgICAgICAgICAqIEBwYXJhbSBuZXh0IHRoZSBuZXh0IHN0YXRlIHRoZSBtYWNoaW5lIHNob3VsZAorICAgICAgICAgKiBtb3ZlIGludG8KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBCYXNlVHJhbnNpdGlvbihieXRlIGFjdGlvbiwgaW50IG5leHQpIHsKKyAgICAgICAgICAgIHRoaXMuYWRkVG9CdWZmZXIgPSAoYWN0aW9uICYgQlVGRkVSX01BU0spID09IEFDQ1VNVUxBVEU7CisgICAgICAgICAgICB0aGlzLnVucmVhZElucHV0ID0gKGFjdGlvbiAmIElOUFVUX01BU0spID09IFBVVEJBQ0s7CisgICAgICAgICAgICB0aGlzLm5leHQgPSBuZXh0OworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGFjY2VwdHMoaW50IGMpOworICAgICAgICBwdWJsaWMgaW50IGRvQWN0aW9uKGZpbmFsIGludCBjLCAKKyAgICAgICAgICAgICAgICBmaW5hbCBQdXNoYmFja1JlYWRlciBpbnB1dCwgCisgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChhZGRUb0J1ZmZlcikgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodW5yZWFkSW5wdXQpIHsKKyAgICAgICAgICAgICAgICBpbnB1dC51bnJlYWQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmV4dDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFjY2VwdCBlbmQtb2YtZmlsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIEVPRlRyYW5zaXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNpdGlvbiB7CisgICAgICAgIHB1YmxpYyBFT0ZUcmFuc2l0aW9uKCkgeworICAgICAgICAgICAgdGhpcyhJR05PUkVfQ09OU1VNRSwgRU5EX09GX0ZJTEUpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBFT0ZUcmFuc2l0aW9uKGludCBuZXh0KSB7CisgICAgICAgICAgICB0aGlzKElHTk9SRV9DT05TVU1FLCBuZXh0KTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgRU9GVHJhbnNpdGlvbihieXRlIGFjdGlvbiwgaW50IG5leHQpIHsKKyAgICAgICAgICAgIHN1cGVyKGFjdGlvbiwgbmV4dCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYykgeworICAgICAgICAgICAgcmV0dXJuIGMgPT0gLTE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBY2NlcHQgYW55dGhpbmcuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBEZWZhdWx0VHJhbnNpdGlvbiBleHRlbmRzIEJhc2VUcmFuc2l0aW9uIHsKKyAgICAgICAgcHVibGljIERlZmF1bHRUcmFuc2l0aW9uKGJ5dGUgYWN0aW9uLCBpbnQgbmV4dFN0YXRlKSB7CisgICAgICAgICAgICBzdXBlcihhY3Rpb24sIG5leHRTdGF0ZSk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBY2NlcHQgYW55IGNoYXJhY3RlcnMgaW4gdGhlIHNwZWNpZmllZCBzdHJpbmcuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBTdHJpbmdUcmFuc2l0aW9uIGV4dGVuZHMgQmFzZVRyYW5zaXRpb24geworICAgICAgICBwcml2YXRlIFN0cmluZyBjaGFyczsKKyAgICAgICAgcHVibGljIFN0cmluZ1RyYW5zaXRpb24oU3RyaW5nIGNoYXJzLCBieXRlIGFjdGlvbiwgaW50IG5leHRTdGF0ZSkgeworICAgICAgICAgICAgc3VwZXIoYWN0aW9uLCBuZXh0U3RhdGUpOworICAgICAgICAgICAgdGhpcy5jaGFycyA9IGNoYXJzOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiBjaGFycy5pbmRleE9mKChjaGFyKWMpICE9IC0xOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWNjZXB0IG9ubHkgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBDaGFyVHJhbnNpdGlvbiBleHRlbmRzIEJhc2VUcmFuc2l0aW9uIHsKKyAgICAgICAgcHJpdmF0ZSBjaGFyIGM7CisgICAgICAgIHB1YmxpYyBDaGFyVHJhbnNpdGlvbihjaGFyIGMsIGJ5dGUgYWN0aW9uLCBpbnQgbmV4dFN0YXRlKSB7CisgICAgICAgICAgICBzdXBlcihhY3Rpb24sIG5leHRTdGF0ZSk7CisgICAgICAgICAgICB0aGlzLmMgPSBjOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmMgPT0gKGNoYXIpYzsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFjY2VwdCBhbnl0aGluZywgYnV0IHRocm93IHRoZSBzcGVjaWZpZWQgZXhjZXB0aW9uIGFmdGVyCisgICAgICogcGVyZm9ybWluZyB0aGUgc3BlY2lmaWVkIGFjdGlvbgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgRXhjZXB0aW9uVHJhbnNpdGlvbiBleHRlbmRzIEJhc2VUcmFuc2l0aW9uIHsKKyAgICAgICAgcHJpdmF0ZSBJT0V4Y2VwdGlvbiBlOworICAgICAgICBwdWJsaWMgRXhjZXB0aW9uVHJhbnNpdGlvbihJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBzdXBlcihJR05PUkVfUFVUQkFDSywgRU5EX09GX0ZJTEUpOyAvL3N0YXRlIGlzIGlnbm9yZWQKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgRXhjZXB0aW9uVHJhbnNpdGlvbihieXRlIGFjdGlvbiwgSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgc3VwZXIoYWN0aW9uLCBFTkRfT0ZfRklMRSk7IC8vc3RhdGUgaXMgaWdub3JlZAorICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBmaW5hbCBpbnQgZG9BY3Rpb24oZmluYWwgaW50IGMsIAorICAgICAgICAgICAgICAgIGZpbmFsIFB1c2hiYWNrUmVhZGVyIGlucHV0LCAKKyAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdCdWZmZXIgYnVmZmVyKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICAgICAgc3VwZXIuZG9BY3Rpb24oYywgaW5wdXQsIGJ1ZmZlcik7CisgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICB9CisgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgYmFzZSBjbGFzcyBmb3IgcGFyc2UgZXhjZXB0aW9ucy4gIEV4Y2VwdGlvbnMKKyAgICAgICAgICogcmVzdWx0aW5nIGZyb20gcGFyc2luZyBlcnJvcnMgc2hvdWxkIGJlIHN1YmNsYXNzZXMgb2YgdGhpcworICAgICAgICAgKiBjbGFzcy4KKyAgICAgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBQYXJzZUV4Y2VwdGlvbiBleHRlbmRzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcHVibGljIGZpbmFsIFN0cmluZyByZWFzb247CisgICAgICAgIHB1YmxpYyBQYXJzZUV4Y2VwdGlvbigpIHsKKyAgICAgICAgICAgIHRoaXMucmVhc29uID0gInVua293biI7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFBhcnNlRXhjZXB0aW9uKFN0cmluZyByZWFzb24pIHsKKyAgICAgICAgICAgIHRoaXMucmVhc29uID0gcmVhc29uOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gcmVhc29uOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWNjZXB0IGFueXRoaW5nLCBleGVjdXRlIGFzIElHTk9SRV9QVVRCQUNLLCBhbmQgdGhyb3cKKyAgICAgKiBhIFBhcnNlRXhjZXB0aW9uIHdpdGggdGhlIHNwZWNpZmllZCBtZXNzYWdlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBQYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24gaW1wbGVtZW50cyBUcmFuc2l0aW9uIHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgcmVhc29uOworICAgICAgICBwdWJsaWMgUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKFN0cmluZyByZWFzb24pIHsKKyAgICAgICAgICAgIHRoaXMucmVhc29uID0gcmVhc29uOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBmaW5hbCBpbnQgZG9BY3Rpb24oZmluYWwgaW50IGMsIAorICAgICAgICAgICAgICAgIGZpbmFsIFB1c2hiYWNrUmVhZGVyIGlucHV0LCAKKyAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdCdWZmZXIgYnVmZmVyKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICAgICAgaW5wdXQudW5yZWFkKChjaGFyKWMpOworICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlRXhjZXB0aW9uKHJlYXNvbik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9MaW5lQ2hhck51bWJlclJlYWRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9MaW5lQ2hhck51bWJlclJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcxNDVjYWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL0xpbmVDaGFyTnVtYmVyUmVhZGVyLmphdmEKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiBBIExpbmVDaGFyTnVtYmVyUmVhZGVyIGlzIGEgQnVmZmVyZWRSZWFkZXIgdGhhdAorICoga2VlcHMgdHJhY2sgb2YgdGhlIGxpbmUgbnVtYmVyIGFuZCBjaGFyYWN0ZXIgb2Zmc2V0CisgKiBvbiB0aGF0IGxpbmUgb2YgdGhlIGN1cnJlbnQgaW5wdXQgc3RyZWFtLgorICovCitwdWJsaWMgY2xhc3MgTGluZUNoYXJOdW1iZXJSZWFkZXIgZXh0ZW5kcyBCdWZmZXJlZFJlYWRlciB7CisgICAgcHJpdmF0ZSBpbnQgbGluZU51bWJlciA9IDA7CisgICAgcHJpdmF0ZSBpbnQgY2hhck51bWJlciA9IDA7CisgICAgcHJpdmF0ZSBpbnQgbWFya2VkTGluZU51bWJlcjsKKyAgICBwcml2YXRlIGludCBtYXJrZWRDaGFyTnVtYmVyOworICAgIHByaXZhdGUgYm9vbGVhbiBza2lwTEY7CisKKyAgICBwdWJsaWMgTGluZUNoYXJOdW1iZXJSZWFkZXIoUmVhZGVyIGluKSB7CisgICAgICAgIHN1cGVyKGluKTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisgICAgICAgIC8vfX0KK30KKworICAgIHB1YmxpYyBMaW5lQ2hhck51bWJlclJlYWRlcihSZWFkZXIgaW4sIGludCBzeikgeworICAgICAgICBzdXBlcihpbiwgc3opOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0TGluZU51bWJlcigpIHsKKyAgICAgICAgcmV0dXJuIGxpbmVOdW1iZXI7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRDaGFyTnVtYmVyKCkgeworICAgICAgICByZXR1cm4gY2hhck51bWJlcjsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHJlYWQoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBzeW5jaHJvbml6ZWQgKGxvY2spIHsKKyAgICAgICAgICAgIGludCBjID0gc3VwZXIucmVhZCgpOworICAgICAgICAgICAgY2hhck51bWJlcisrOworICAgICAgICAgICAgaWYgKHNraXBMRikgeworICAgICAgICAgICAgICAgIGlmIChjID09ICdcbicpIGMgPSBzdXBlci5yZWFkKCk7CisgICAgICAgICAgICAgICAgc2tpcExGID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgIGNhc2UgJ1xyJzoKKyAgICAgICAgICAgICAgICBza2lwTEYgPSB0cnVlOworICAgICAgICAgICAgY2FzZSAnXG4nOiAgICAgIC8qIEZhbGwgdGhyb3VnaCAqLworICAgICAgICAgICAgY2FzZSAnXHUyMDI4JzogICAgICAvKiBGYWxsIHRocm91Z2ggKi8KKyAgICAgICAgICAgIGNhc2UgJ1x1MjAyOSc6ICAgICAgLyogRmFsbCB0aHJvdWdoICovCisgICAgICAgICAgICAgICAgbGluZU51bWJlcisrOworICAgICAgICAgICAgICAgIGNoYXJOdW1iZXIgPSAwOworICAgICAgICAgICAgICAgIHJldHVybiAnXG4nOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHJlYWQoY2hhciBjYnVmW10sIGludCBvZmYsIGludCBsZW4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHN5bmNocm9uaXplZCAobG9jaykgeworICAgICAgICAgICAgaW50IG4gPSBzdXBlci5yZWFkKGNidWYsIG9mZiwgbGVuKTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IG9mZjsgaSA8IG9mZiArIGxlbjsgaSsrKSB7CisgICAgICAgICAgICAgICAgaW50IGMgPSBjYnVmW2ldOworICAgICAgICAgICAgICAgIGNoYXJOdW1iZXIrKzsKKyAgICAgICAgICAgICAgICBpZiAoc2tpcExGKSB7CisgICAgICAgICAgICAgICAgICAgIHNraXBMRiA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXG4nKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnXHInOgorICAgICAgICAgICAgICAgICAgICBza2lwTEYgPSB0cnVlOworICAgICAgICAgICAgICAgIGNhc2UgJ1xuJzogIC8qIEZhbGwgdGhyb3VnaCAqLworICAgICAgICAgICAgICAgIGNhc2UgJ1x1MjAyOCc6ICAvKiBGYWxsIHRocm91Z2ggKi8KKyAgICAgICAgICAgICAgICBjYXNlICdcdTIwMjknOiAgLyogRmFsbCB0aHJvdWdoICovCisgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIrKzsKKyAgICAgICAgICAgICAgICAgICAgY2hhck51bWJlciA9IDA7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIG47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHJlYWRMaW5lKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgc3luY2hyb25pemVkIChsb2NrKSB7CisgICAgICAgICAgICBTdHJpbmcgbCA9IHN1cGVyLnJlYWRMaW5lKCk7CisgICAgICAgICAgICBpZiAobCAhPSBudWxsKQorICAgICAgICAgICAgbGluZU51bWJlcisrOworICAgICAgICAgICAgY2hhck51bWJlciA9IDA7CisgICAgICAgICAgICBza2lwTEYgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiBsOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IG1heFNraXBCdWZmZXJTaXplID0gODE5MjsKKworICAgIHByaXZhdGUgY2hhciBza2lwQnVmZmVyW10gPSBudWxsOworCisgICAgcHVibGljIGxvbmcgc2tpcChsb25nIG4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGludCBubiA9IChpbnQpIE1hdGgubWluKG4sIG1heFNraXBCdWZmZXJTaXplKTsKKyAgICAgICAgc3luY2hyb25pemVkIChsb2NrKSB7CisgICAgICAgICAgICBpZiAoKHNraXBCdWZmZXIgPT0gbnVsbCkgfHwgKHNraXBCdWZmZXIubGVuZ3RoIDwgbm4pKQorICAgICAgICAgICAgc2tpcEJ1ZmZlciA9IG5ldyBjaGFyW25uXTsKKyAgICAgICAgICAgIGxvbmcgciA9IG47CisgICAgICAgICAgICB3aGlsZSAociA+IDApIHsKKyAgICAgICAgICAgIGludCBuYyA9IHJlYWQoc2tpcEJ1ZmZlciwgMCwgbm4pOworICAgICAgICAgICAgaWYgKG5jID09IC0xKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgciAtPSBuYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuIC0gcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG1hcmsoaW50IHJlYWRBaGVhZExpbWl0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBzeW5jaHJvbml6ZWQgKGxvY2spIHsKKyAgICAgICAgICAgIHN1cGVyLm1hcmsocmVhZEFoZWFkTGltaXQpOworICAgICAgICAgICAgbWFya2VkTGluZU51bWJlciA9IGxpbmVOdW1iZXI7CisgICAgICAgICAgICBtYXJrZWRDaGFyTnVtYmVyID0gY2hhck51bWJlcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgc3luY2hyb25pemVkIChsb2NrKSB7CisgICAgICAgICAgICBzdXBlci5yZXNldCgpOworICAgICAgICAgICAgbGluZU51bWJlciA9IG1hcmtlZExpbmVOdW1iZXI7CisgICAgICAgICAgICBjaGFyTnVtYmVyID0gbWFya2VkQ2hhck51bWJlcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Mb2NhbGVDb252ZXJ0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTG9jYWxlQ29udmVydGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMThjYzVhZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTG9jYWxlQ29udmVydGVyLmphdmEKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS51dGlsLio7CisKK3B1YmxpYyBjbGFzcyBMb2NhbGVDb252ZXJ0ZXIgeworICAgIHB1YmxpYyBIYXNodGFibGUgY29udmVydChIYXNodGFibGUgdGFibGUpIHRocm93cyBDb252ZXJzaW9uRXJyb3IgeworICAgICAgICBIYXNodGFibGUgcmVzdWx0ID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBjb252ZXJ0KHJlc3VsdCwgdGFibGUpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBjb252ZXJ0KEhhc2h0YWJsZSByZXN1bHQsIEhhc2h0YWJsZSBzb3VyY2UpIHRocm93cyBDb252ZXJzaW9uRXJyb3IgeworICAgICAgICBFbnVtZXJhdGlvbiBlbnVtZXIgPSBzb3VyY2Uua2V5cygpOworICAgICAgICB3aGlsZSAoZW51bWVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZyllbnVtZXIubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIE9iamVjdCBkYXRhID0gc291cmNlLmdldChrZXkpOworICAgICAgICAgICAgcmVzdWx0LnB1dChrZXksIGRhdGEpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgQ29udmVyc2lvbkVycm9yIGV4dGVuZHMgRXhjZXB0aW9uIHsKKyAgICAgICAgcHVibGljIENvbnZlcnNpb25FcnJvcigpIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIENvbnZlcnNpb25FcnJvcihTdHJpbmcgcmVhc29uKSB7CisgICAgICAgICAgICBzdXBlcihyZWFzb24pOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Mb2NhbGVXcml0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTG9jYWxlV3JpdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDY5ZTY1YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvTG9jYWxlV3JpdGVyLmphdmEKQEAgLTAsMCArMSw0OTkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworCisvKioKKyAqIEEgTG9jYWxlV3JpdGVyIHRha2VzIGxvY2FsZSBkYXRhIGluIHN0YW5kYXJkIGZvcm0gYW5kCisgKiB3cml0ZXMgaXQgdG8gc3RhbmRhcmQgb3V0cHV0IGluIGEgZm9ybSBzdWl0YWJsZSBmb3IKKyAqIGxvYWRpbmcgcHJvZ3JhbWF0aWNhbGx5LgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTG9jYWxlV3JpdGVyIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSU5ERU5UX0NIQVJTID0gCisgICAgICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIisKKyAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKworICAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBFT0xfQ0hBUlNbXSA9IHsnXHInLCAnXG4nLCAnXHUyMDI4JywgJ1x1MjAyOSd9OworICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5ERU5UX1NJWkUgPSA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfTElORV9MRU5HVEggPSA4MDsKKyAgICBwcml2YXRlIGludCBpbmRlbnRMZXZlbDsKKyAgICBwcml2YXRlIFN0cmluZyBpbmRlbnRTdHJpbmc7CisgICAgcHJpdmF0ZSBib29sZWFuIG5lZWRzSW5kZW50OworICAgIHByb3RlY3RlZCBTdHJpbmdCdWZmZXIgbGluZUJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICBwcml2YXRlIGludCBsaW5lTGVuZ3RoOworICAgIHByb3RlY3RlZCBQcmludFN0cmVhbSBvdXQ7CisgICAgcHJvdGVjdGVkIFByaW50U3RyZWFtIGVycjsKKyAgICAvL2ZpbmFsIEZpbGUgb3V0RmlsZSA9IG5ldyBGaWxlKCAgImNudkxvYy50eHQiKTsKKyAgICAvL0ZpbGVPdXRwdXRTdHJlYW0gb3V0RmlsZVN0cmVhbTsKKyAgICAvL0J1ZmZlcmVkV3JpdGVyIG91dEJ1ZldyaXRlOworICAgIC8vUHJpbnRXcml0ZXIgbXlPdXQ7CisgICAgCisgICAgcHVibGljIExvY2FsZVdyaXRlcihQcmludFN0cmVhbSBvdXQpIHsKKyAgICAgICAgdGhpcy5vdXQgPSBvdXQ7CisgICAgICAgIHRoaXMuZXJyID0gb3V0OworICAgIC8qICAgIHRyeXsKKyAgICAgICAgICAgIG91dEZpbGUuY2FuV3JpdGUoKTsKKyAgICAgICAgICAgIG91dEZpbGVTdHJlYW0gPSBuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRGaWxlKTsKKyAgICAgICAgICAgIG91dEJ1ZldyaXRlID0gbmV3IEJ1ZmZlcmVkV3JpdGVyKG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIob3V0RmlsZVN0cmVhbSwiVVRGOCIpKTsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIGNhdGNoKGphdmEuaW8uSU9FeGNlcHRpb24gZSl7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVuY29kaW5nIHVuc3VwcG9ydGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAqLyAgCisgICAgfQorICAgIHB1YmxpYyBMb2NhbGVXcml0ZXIoUHJpbnRTdHJlYW0gb3V0LCBQcmludFN0cmVhbSBlcnIpIHsKKyAgICAgICAgdGhpcy5vdXQgPSBvdXQ7CisgICAgICAgIHRoaXMuZXJyID0gZXJyOworICAgICAgICAvKgorICAgICAgICB0cnl7CisgICAgICAgICAgICBvdXRGaWxlLmNhbldyaXRlKCk7CisgICAgICAgICAgICBvdXRGaWxlU3RyZWFtID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0RmlsZSk7CisgICAgICAgICAgICBvdXRCdWZXcml0ZSA9IG5ldyBCdWZmZXJlZFdyaXRlcihuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKG91dEZpbGVTdHJlYW0sIlVURjgiKSk7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBjYXRjaChqYXZhLmlvLklPRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbmNvZGluZyB1bnN1cHBvcnRlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgICovICAKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZShMb2NhbGUgbG9jYWxlLCBIYXNodGFibGUgbG9jYWxlRGF0YSkgeworICAgICAgICBvcGVuKGxvY2FsZSk7CisgICAgICAgICAgICAvL3NvcnQgdGhlIGtleSBzbyB0aGUgdGFncyBhcmUgaW4gb3JkZXIgaW4gdGhlIHJlc291cmNlIGZpbGUKKyAgICAgICAgU29ydGVkVmVjdG9yIG9yZGVyID0gbmV3IFNvcnRlZFZlY3Rvcihsb2NhbGVEYXRhLmtleXMoKSwgbmV3IFNvcnRlZFZlY3Rvci5TdHJpbmdDb21wYXJhdG9yKCkpOworICAgICAgICBFbnVtZXJhdGlvbiBlID0gb3JkZXIuZWxlbWVudHMoKTsKKyAgICAgICAgd2hpbGUgKGUuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZyBrZXkgPSAoU3RyaW5nKWUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGZpbmFsIE9iamVjdCBkYXRhID0gbG9jYWxlRGF0YS5nZXQoa2V5KTsKKyAgICAgICAgICAgIGlmIChpc0R1cGxpY2F0ZU9mSW5oZXJpdGVkVmFsdWUobG9jYWxlLCBrZXksIGRhdGEpKSB7CisgICAgICAgICAgICAgICBwcmludGxuKCIvLy8qIERpc2NhcmRpbmcgZHVwbGljYXRlIGRhdGEgZm9yIHRhZzogIitrZXkrIiAqLyIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB3cml0ZShrZXksIGRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgCisgICAgICAgIGNsb3NlKCk7CisgICAgfQorICAgIC8qCisgICAgcHVibGljIHZvaWQgY2xvc2VGaWxlSGFuZGxlKCl7CisgICAgICAgICB0cnl7CisgICAgICAgICAgICBvdXRCdWZXcml0ZS5jbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKGphdmEuaW8uSU9FeGNlcHRpb24gZXhjcCl7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiY291bGQgbm90IGNsb3NlIHRoZSBvdXRwdXQgZmlsZSIpOworICAgICAgICB9CisgICAgfQorICAgICovICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIE9iamVjdCBvKSB7CisgICAgICAgIGlmIChvIGluc3RhbmNlb2YgU3RyaW5nKSB7CisgICAgICAgICAgICB3cml0ZSh0YWcsIChTdHJpbmcpbyk7CisgICAgICAgIH0gZWxzZSBpZiAobyBpbnN0YW5jZW9mIFN0cmluZ1tdKSB7CisgICAgICAgICAgICB3cml0ZSh0YWcsIChTdHJpbmdbXSkgbyk7CisgICAgICAgIH0gZWxzZSBpZiAobyBpbnN0YW5jZW9mIFN0cmluZ1tdW10pIHsKKyAgICAgICAgICAgIHdyaXRlKHRhZywgKFN0cmluZ1tdW10pbyk7CisgICAgICAgIH0gZWxzZSBpZiAobyBpbnN0YW5jZW9mIE9iamVjdFtdKSB7CisgICAgICAgICAgICBPYmplY3RbXSBkYXRhID0gKE9iamVjdFtdKW87CisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wID0gbmV3IFN0cmluZ1tkYXRhLmxlbmd0aF07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB0ZW1wW2ldID0gZGF0YVtpXS50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd3JpdGUodGFnLCB0ZW1wKTsKKyAgICAgICAgfSBlbHNlIGlmIChvIGluc3RhbmNlb2YgT2JqZWN0W11bXSkgeworICAgICAgICAgICAgT2JqZWN0W11bXSBkYXRhID0gKE9iamVjdFtdW10pbzsKKyAgICAgICAgICAgIFN0cmluZ1tdW10gdGVtcCA9IG5ldyBTdHJpbmdbZGF0YS5sZW5ndGhdW107CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB0ZW1wW2ldID0gbmV3IFN0cmluZ1tkYXRhW2ldLmxlbmd0aF07CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCB0ZW1wW2ldLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBbaV1bal0gPSBkYXRhW2ldW2pdLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgd3JpdGUodGFnLCB0ZW1wKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHdyaXRlKHRhZywgby50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCB3cml0ZShTdHJpbmcgdGFnLCBTdHJpbmdbXVtdIHZhbHVlKSB7CisgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICBpZiAodmFsdWVbMF0ubGVuZ3RoID4gMikgeworICAgICAgICAgICAgICAgIHdyaXRlMkQodGFnLCB2YWx1ZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHdyaXRlVGFnZ2VkKHRhZywgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd3JpdGVUYWdnZWQodGFnLCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBvcGVuKExvY2FsZSBsb2NhbGUpOworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIHdyaXRlKFN0cmluZyB0YWcsIFN0cmluZyB2YWx1ZSk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgd3JpdGUoU3RyaW5nIHRhZywgU3RyaW5nW10gdmFsdWUpOworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIHdyaXRlMkQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgd3JpdGVUYWdnZWQoU3RyaW5nIHRhZywgU3RyaW5nW11bXSB2YWx1ZSk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgY2xvc2UoKTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgU3RyaW5nIGdldFN0cmluZ0pvaW5pbmdDaGFyYWN0ZXIoKTsKKworICAgIHByb3RlY3RlZCB2b2lkIHRhYlRvKGludCBwb3MpIHsKKyAgICAgICAgaWYgKHBvcyA+IGxpbmVMZW5ndGgpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBsaW5lTGVuZ3RoOyBpIDwgcG9zOyBpKyspIHsKKyAgICAgICAgICAgICAgICBwcmludCgiICIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIC8qCisgICAgcHJvdGVjdGVkIHZvaWQgd3JpdGVUb0ZpbGUoU3RyaW5nIHN0cil7CisgICAgICAgICAgICAgICAgCisgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgIG91dEJ1ZldyaXRlLndyaXRlKHByZXBlbmRFc2Moc3RyKSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goamF2YS5pby5JT0V4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJDb3VsZCBub3Qgd3JpdGUgdG8gZmlsZSIpOworICAgICAgICB9CisgICAgfQorICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgcHJpbnQoU3RyaW5nIHZhbCkgeworICAgICAgICBpZiAobmVlZHNJbmRlbnQpIHsKKyAgICAgICAgICAgIG91dC5wcmludChpbmRlbnRTdHJpbmcpOworICAgICAgICAgICAgLy93cml0ZVRvRmlsZShpbmRlbnRTdHJpbmcpOworICAgICAgICAgICAgbGluZUxlbmd0aCArPSBpbmRlbnRTdHJpbmcubGVuZ3RoKCk7CisgICAgICAgICAgICBuZWVkc0luZGVudCA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIFN0cmluZyB0dmFsID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbCk7CisgICAgICAgIGlmKHR2YWwubGVuZ3RoKCkgPCB2YWwubGVuZ3RoKCkpeworICAgICAgICAgICAgdHZhbD1wcmVwZW5kRXNjKHR2YWwpOworICAgICAgICB9CisgICAgICAgIGlmICh0dmFsICE9IG51bGwpIHsKKyAgICAgICAgICAgIG91dC5wcmludChwcmVwZW5kRXNjKHR2YWwpKTsKKyAgICAgICAgICAgIC8vd3JpdGVUb0ZpbGUodHZhbCk7CisgICAgICAgICAgICBpbnQgbGVuID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgRU9MX0NIQVJTLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgbGVuID0gTWF0aC5tYXgobGVuLCB0dmFsLmxhc3RJbmRleE9mKEVPTF9DSEFSU1tpXSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxlbiA9PSAwKSB7CisgICAgICAgICAgICAgICAgbGluZUxlbmd0aCArPSB0dmFsLmxlbmd0aCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsaW5lTGVuZ3RoID0gdHZhbC5sZW5ndGgoKSAtIGxlbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHByZXBlbmRFc2MoU3RyaW5nIHN0cil7CisgICAgICAgIFN0cmluZ0J1ZmZlciBteVN0ciA9ICBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvcihpbnQgaT0wO2k8c3RyLmxlbmd0aCgpO2krKyl7CisgICAgICAgICAgICBjaGFyIGNoID0gc3RyLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmKGNoID4gMHgwMDdmIHx8IGNoIDwgMHgwMDIwKXsKKyAgICAgICAgICAgICAgICBpZihjaCE9MHgwMDA5KXsKKyAgICAgICAgICAgICAgICAgICAgbXlTdHIuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICAgICAgbXlTdHIuYXBwZW5kKHRvSGV4U3RyaW5nKGNoLDE2LDQpKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgbXlTdHIuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNleworICAgICAgICAgICAgICAgIG15U3RyLmFwcGVuZChjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG15U3RyLnRvU3RyaW5nKCk7CisgICAgfQorICAgIHByb3RlY3RlZCBTdHJpbmcgdG9IZXhTdHJpbmcoY2hhciBjaCwgaW50IHJhZGl4LCBpbnQgcGFkKXsKKyAgICAgICAgZmluYWwgaW50IE1BWF9ESUdJVFMgPSAxMDsKKyAgICAgICAgaW50IGxlbmd0aCA9IDA7CisgICAgICAgIGNoYXIgYnVmZmVyW10gPSBuZXcgY2hhclsxMF07CisgICAgICAgIGludCBudW0gPSAwOworICAgICAgICBpbnQgZGlnaXQ7CisgICAgICAgIGludCBqOworICAgICAgICBjaGFyIHRlbXA7CisgICAgICAgIGludCBpID0gKGludCljaDsKKyAgICAgICAgZG97CisgICAgICAgICAgICBkaWdpdCA9IChpbnQpKGkgJSByYWRpeCk7CisgICAgICAgICAgICBidWZmZXJbbGVuZ3RoKytdPShjaGFyKShkaWdpdDw9OT8oMHgwMDMwK2RpZ2l0KTooMHgwMDMwK2RpZ2l0KzcpKTsKKyAgICAgICAgICAgIGk9KGkvcmFkaXgpOworICAgICAgICB9d2hpbGUoaT4wKTsKKworICAgICAgICB3aGlsZSAobGVuZ3RoIDwgcGFkKXsgICAKKyAgICAgICAgICAgIGJ1ZmZlcltsZW5ndGgrK10gPSAgMHgwMDMwOy8qemVybyBwYWRkaW5nICovCisgICAgICAgIH0KKyAgICAgICAgLyogbnVsbCB0ZXJtaW5hdGUgdGhlIGJ1ZmZlciAqLworICAgICAgICBpZihsZW5ndGg8TUFYX0RJR0lUUyl7CisgICAgICAgICAgICBidWZmZXJbbGVuZ3RoXSA9ICAweDAwMDA7CisgICAgICAgIH0KKyAgICAgICAgbnVtPSAocGFkPj1sZW5ndGgpID8gcGFkIDpsZW5ndGg7CisgICAgICAgICAgICAgIAorICAgICAgICAvKiBSZXZlcnNlcyB0aGUgc3RyaW5nICovCisgICAgICAgIGZvciAoaiA9IDA7IGogPCAobnVtIC8gMik7IGorKyl7CisgICAgICAgICAgICB0ZW1wID0gYnVmZmVyWyhsZW5ndGgtMSkgLSBqXTsKKyAgICAgICAgICAgIGJ1ZmZlclsobGVuZ3RoLTEpIC0gal0gPSBidWZmZXJbal07CisgICAgICAgICAgICBidWZmZXJbal0gPSB0ZW1wOworICAgICAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhidWZmZXIsMCxsZW5ndGgpOworICAgIH0KKyAgICAgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgcHJpbnRsbihTdHJpbmcgdmFsKSB7CisgICAgICAgIHByaW50KHZhbCk7CisgICAgICAgIG91dC5wcmludGxuKCk7CisgICAgICAgIC8vd3JpdGVUb0ZpbGUoIlxuIik7CisgICAgICAgIGxpbmVMZW5ndGggPSAwOworICAgICAgICBuZWVkc0luZGVudCA9IHRydWU7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgcHJpbnRTdHJpbmcoU3RyaW5nIHZhbCkgeworICAgICAgICBpZiAodmFsICE9IG51bGwpIHsKKyAgICAgICAgICAgIGluZGVudCgpOworICAgICAgICAgICAgbGluZUJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZCgiXCIiKTsKKyAgICAgICAgICAgIGZpbmFsIGludCBzaXplID0gdmFsLmxlbmd0aCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICBhcHBlbmQodmFsLmNoYXJBdChpKSk7CisgICAgICAgICAgICAgICAgLyppZiAoIWFwcGVuZCh2YWwuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGluZUJ1ZmZlci5hcHBlbmQoIlwiIik7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZChnZXRTdHJpbmdKb2luaW5nQ2hhcmFjdGVyKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRsbihsaW5lQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgbGluZUJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lQnVmZmVyLmFwcGVuZCgiXCIiKTsKKyAgICAgICAgICAgICAgICB9Ki8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGluZUJ1ZmZlci5hcHBlbmQoIlwiIik7CisgICAgICAgICAgICBwcmludChsaW5lQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHJpbnQoIlwiXCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNTcGVjaWFsQ2hhcihjaGFyIGNoKXsKKyAgICAgICAgICAgICAgICAgCisgICAgICAgIGlmKCgoKChjaCkgPD0gMHgwMDJGKSAmJiAoKGNoKSA+PSAweDAwMjApKSB8fCAKKyAgICAgICAgICAoKChjaCkgPD0gMHgwMDNGKSAmJiAoKGNoKSA+PSAweDAwM0EpKSB8fCAKKyAgICAgICAgICAoKChjaCkgPD0gMHgwMDYwKSAmJiAoKGNoKSA+PSAweDAwNUIpKSB8fCAKKyAgICAgICAgICAoKChjaCkgPD0gMHgwMDdFKSAmJiAoKGNoKSA+PSAweDAwN0QpKSB8fCAKKyAgICAgICAgICAoY2gpID09IDB4MDA3QikpeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgcHJpbnRSdWxlU3RyaW5nKFN0cmluZyBzcmMpeworICAgICBTdHJpbmcgdmFsID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHNyYyk7CisgICAgIGlmICh2YWwgIT0gbnVsbCkgeworICAgICAgICAgICAgaW5kZW50KCk7CisgICAgICAgICAgICBsaW5lQnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGxpbmVCdWZmZXIuYXBwZW5kKCJcIiIpOworICAgICAgICAgICAgZmluYWwgaW50IHNpemUgPSB2YWwubGVuZ3RoKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSB2YWwuY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGlmKGNoPT0nXFwnKXsgLy9lc2NhcGUgY2hhcgorICAgICAgICAgICAgICAgICAgICBpZigoKGkrMSkgPCB2YWwubGVuZ3RoKCkpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYzIgPSB2YWwuY2hhckF0KGkrMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihpc1NwZWNpYWxDaGFyKGMyKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNjYXBlIHRoZSBlc2NhcGUgYW5kIGVzY2FwZSB0aGUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBjaGFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKGMyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIHRoZSBzZXF1ZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQoYzIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gZG91YmxlIGVzY2FwZSB0aGUgZXNjYXBlIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgaWYoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoY2gpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxpbmVCdWZmZXIuYXBwZW5kKCJcIiIpOworICAgICAgICAgICAgcHJpbnQobGluZUJ1ZmZlci50b1N0cmluZygpKTsKKyAgICAgICAgICAgIG91dGRlbnQoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHByaW50KCJcIlwiIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgcHJpbnRVbnF1b3RlZFN0cmluZyhTdHJpbmcgdmFsKSB7CisgICAgICAgICBpZiAodmFsICE9IG51bGwpIHsKKyAgICAgICAgICAgICBpbmRlbnQoKTsKKyAgICAgICAgICAgICBsaW5lQnVmZmVyLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAvL2xpbmVCdWZmZXIuYXBwZW5kKCJcIiIpOworICAgICAgICAgICAgIGZpbmFsIGludCBzaXplID0gdmFsLmxlbmd0aCgpOworICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgIGFwcGVuZCh2YWwuY2hhckF0KGkpKTsKKyAgICAgICAgICAgICAgICAgLyppZiAoIWFwcGVuZCh2YWwuY2hhckF0KGkpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVCdWZmZXIuYXBwZW5kKCJcIiIpOworICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVCdWZmZXIuYXBwZW5kKGdldFN0cmluZ0pvaW5pbmdDaGFyYWN0ZXIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRsbihsaW5lQnVmZmVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVCdWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVCdWZmZXIuYXBwZW5kKCJcIiIpOworICAgICAgICAgICAgICAgICB9Ki8KKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAvL2xpbmVCdWZmZXIuYXBwZW5kKCJcIiIpOworICAgICAgICAgICAgIHByaW50KGxpbmVCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgb3V0ZGVudCgpOworICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICBwcmludCgiIik7CisgICAgICAgICB9CisgICAgIH0gICAgICAKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBhcHBlbmQoZmluYWwgY2hhciBjKSB7CisgICAgICAgIGJvb2xlYW4gZXNjYXBlID0gaXNFc2NhcGVDaGFyKGMpOworICAgICAgICBpZiAoZXNjYXBlKSB7CisgICAgICAgICAgICBhcHBlbmRFc2NhcGVkQ2hhcihjLCBsaW5lQnVmZmVyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxpbmVCdWZmZXIuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAobGluZUxlbmd0aCArIGxpbmVCdWZmZXIubGVuZ3RoKCkgPCBNQVhfTElORV9MRU5HVEgpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0VzY2FwZUNoYXIoZmluYWwgY2hhciBjKSB7CisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICBjYXNlICciJzoKKyAgICAgICAgY2FzZSAnXFwnOgorICAgICAgICBjYXNlICdcbic6CisgICAgICAgIGNhc2UgJ1xyJzoKKyAgICAgICAgY2FzZSAnXHUyMDI4JzoKKyAgICAgICAgY2FzZSAnXHUyMDI5JzoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIChjIDwgJyAnKSB8fCAoYyA+IDB4MDdGKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBhcHBlbmRFc2NhcGVkQ2hhcihjaGFyIGMsIFN0cmluZ0J1ZmZlciBidWZmZXIpIHsKKyAgICAgICAgaWYoYz49MHgyMCAmJiBjIDwgMHg3Zil7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGMpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoZ2V0RXNjYXBlQ2hhcigpKTsKKyAgICAgICAgICAgIGludCB2YWx1ZSA9ICgoaW50KWMpICYgMHhGRkZGOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKHZhbHVlICYgMHhGMDAwKSA+PiAxMl0pOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKHZhbHVlICYgMHgwRjAwKSA+PiA4XSk7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsodmFsdWUgJiAweDAwRjApID4+IDRdKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyh2YWx1ZSAmIDB4MDAwRildKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldEVzY2FwZUNoYXIoKSB7CisgICAgICAgIHJldHVybiAiXFx1IjsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgaW5kZW50KCkgeworICAgICAgICBpbmRlbnQoMSk7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIGluZGVudChpbnQgYW1vdW50KSB7CisgICAgICAgIGluZGVudExldmVsICs9IGFtb3VudDsKKyAgICAgICAgaW5kZW50U3RyaW5nID0gSU5ERU5UX0NIQVJTLnN1YnN0cmluZygwLCBpbmRlbnRMZXZlbCpJTkRFTlRfU0laRSk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIG91dGRlbnQoKSB7CisgICAgICAgIG91dGRlbnQoMSk7CisgICAgfQorICAgIHByb3RlY3RlZCB2b2lkIG91dGRlbnQoaW50IGFtb3VudCkgeworICAgICAgICBpbmRlbnRMZXZlbCAtPSBhbW91bnQ7CisgICAgICAgIGluZGVudFN0cmluZyA9IElOREVOVF9DSEFSUy5zdWJzdHJpbmcoMCwgaW5kZW50TGV2ZWwqSU5ERU5UX1NJWkUpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBjaGFyW10gSEVYX0RJR0lUID0geycwJywnMScsJzInLCczJywnNCcsJzUnLCc2JywnNycsCisgICAgICAgICAgICAgICAgICAgICAnOCcsJzknLCdBJywnQicsJ0MnLCdEJywnRScsJ0YnfTsKKworICAgIC8qKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgdmFsdWUgZm9yIHRoZSBzcGVjaWZpZWQgdGFnIGlzIHRoZSBzYW1lCisgICAgICogYXMgdGhlIHZhbHVlIGluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQgZm9yIHRoYXQgdGFnICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzRHVwbGljYXRlT2ZJbmhlcml0ZWRWYWx1ZShmaW5hbCBMb2NhbGUgbG9jLCBTdHJpbmcgdGFnLCBPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiB0cnVlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmluYWwgUmVzb3VyY2VCdW5kbGUgcGFyZW50QnVuZGxlID0gZ2V0UGFyZW50QnVuZGxlKGxvYyk7CisgICAgICAgICAgICBpZiAocGFyZW50QnVuZGxlID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIE9iamVjdCBwYXJlbnRWYWx1ZSA9IHBhcmVudEJ1bmRsZS5nZXRPYmplY3QodGFnKTsKKyAgICAgICAgICAgIGlmICghb2JqZWN0c0FyZUVxdWFsKHZhbHVlLCBwYXJlbnRWYWx1ZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGJvb2xlYW4gb2JqZWN0c0FyZUVxdWFsKGZpbmFsIE9iamVjdCBpdGVtLCBmaW5hbCBPYmplY3QgcGFyZW50SXRlbSkgeworICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIE9iamVjdFtdICYmIHBhcmVudEl0ZW0gaW5zdGFuY2VvZiBPYmplY3RbXSkgeworICAgICAgICAgICAgcmV0dXJuIGFycmF5c0FyZUVxdWFsKChPYmplY3RbXSlpdGVtLCAoT2JqZWN0W10pcGFyZW50SXRlbSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gaXRlbS5lcXVhbHMocGFyZW50SXRlbSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIGFycmF5c0FyZUVxdWFsKGZpbmFsIE9iamVjdFtdIGl0ZW0sIGZpbmFsIE9iamVjdFtdIHBhcmVudEl0ZW0pIHsKKyAgICAgICAgYm9vbGVhbiBtYXRjaGVzID0gaXRlbS5sZW5ndGggPT0gcGFyZW50SXRlbS5sZW5ndGg7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbS5sZW5ndGggJiYgbWF0Y2hlczsgaSsrKSB7CisgICAgICAgICAgICBtYXRjaGVzID0gb2JqZWN0c0FyZUVxdWFsKGl0ZW1baV0sIHBhcmVudEl0ZW1baV0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtYXRjaGVzOworICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBSZXNvdXJjZUJ1bmRsZSBnZXRQYXJlbnRCdW5kbGUoZmluYWwgTG9jYWxlIGxvYykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmluYWwgU3RyaW5nIHggPSBsb2MudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGZpbmFsIGludCBuZHggPSB4Lmxhc3RJbmRleE9mKCdfJyk7CisgICAgICAgICAgICBpZiAobmR4IDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgcGFyZW50TG9jTmFtZSA9IHguc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgICAgICAgICAgZmluYWwgTG9jYWxlIHBhcmVudExvYyA9IGxvY2FsZUZyb21TdHJpbmcocGFyZW50TG9jTmFtZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZSgiY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyLm15TG9jYWxlRWxlbWVudHMiLCBwYXJlbnRMb2MpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgcmVwbGFjZShTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LCBTdHJpbmcgcmVwbGFjZW1lbnQpIHsKKyAgICAgICAgaWYgKHRhcmdldC5lcXVhbHMocmVwbGFjZW1lbnQpKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBsYXN0TmR4ID0gMDsKKyAgICAgICAgICAgIGludCBuZHggPSBzb3VyY2UuaW5kZXhPZih0YXJnZXQpOworICAgICAgICAgICAgd2hpbGUgKG5keCA+PSAwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzb3VyY2Uuc3Vic3RyaW5nKGxhc3ROZHgsIG5keCkpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocmVwbGFjZW1lbnQpOworICAgICAgICAgICAgICAgIG5keCArPSB0YXJnZXQubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgbGFzdE5keCA9IG5keDsKKyAgICAgICAgICAgICAgICBuZHggPSBzb3VyY2UuaW5kZXhPZih0YXJnZXQsIG5keCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZS5zdWJzdHJpbmcobGFzdE5keCkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIExvY2FsZSBsb2NhbGVGcm9tU3RyaW5nKGZpbmFsIFN0cmluZyBsb2NhbGVOYW1lKSB7CisgICAgICAgIFN0cmluZyBsYW5ndWFnZSA9IGxvY2FsZU5hbWU7CisgICAgICAgIFN0cmluZyBjb3VudHJ5ID0gIiI7CisgICAgICAgIFN0cmluZyB2YXJpYW50ID0gIiI7CisgICAgICAgIAorICAgICAgICBpbnQgbmR4ID0gbGFuZ3VhZ2UuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIGNvdW50cnkgPSBsYW5ndWFnZS5zdWJzdHJpbmcobmR4KzEpOworICAgICAgICAgICAgbGFuZ3VhZ2UgPSBsYW5ndWFnZS5zdWJzdHJpbmcoMCwgbmR4KTsKKyAgICAgICAgfQorICAgICAgICBuZHggPSBjb3VudHJ5LmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICB2YXJpYW50ID0gY291bnRyeS5zdWJzdHJpbmcobmR4KTsKKyAgICAgICAgICAgIGNvdW50cnkgPSBjb3VudHJ5LnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgTG9jYWxlKGxhbmd1YWdlLCBjb3VudHJ5LCB2YXJpYW50KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL05ldXRyYWxUb0oxQ29udmVydGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL05ldXRyYWxUb0oxQ29udmVydGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzAyM2M0MWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9OZXV0cmFsVG9KMUNvbnZlcnRlci5qYXZhCkBAIC0wLDAgKzEsMjAyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIE5ldXRyYWxUb0oxQ29udmVydGVyIGV4dGVuZHMgTG9jYWxlQ29udmVydGVyIHsKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBDb252ZXJzaW9uIHsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgcHJvcE5hbWU7CisgICAgICAgIHByaXZhdGUgaW50IG5keDsKKyAgICAgICAgcHJvdGVjdGVkIENvbnZlcnNpb24oKSB7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIENvbnZlcnNpb24oU3RyaW5nIHByb3BOYW1lKSB7CisgICAgICAgICAgICB0aGlzLnByb3BOYW1lID0gcHJvcE5hbWU7CisgICAgICAgICAgICB0aGlzLm5keCA9IC0xOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBDb252ZXJzaW9uKFN0cmluZyBwcm9wTmFtZSwgaW50IG5keCkgeworICAgICAgICAgICAgdGhpcy5wcm9wTmFtZSA9IHByb3BOYW1lOworICAgICAgICAgICAgdGhpcy5uZHggPSBuZHg7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRQcm9wTmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBwcm9wTmFtZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGNvbnZlcnQoSGFzaHRhYmxlIHNvdXJjZSkgdGhyb3dzIENvbnZlcnNpb25FcnJvciB7CisgICAgICAgICAgICBPYmplY3Qgc291cmNlRGF0YSA9IHNvdXJjZS5nZXQocHJvcE5hbWUpOworICAgICAgICAgICAgaWYgKHNvdXJjZURhdGEgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG5keCA+PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZURhdGEgaW5zdGFuY2VvZiBTdHJpbmdbXSkgeworICAgICAgICAgICAgICAgICAgICBzb3VyY2VEYXRhID0gKChTdHJpbmdbXSlzb3VyY2VEYXRhKVtuZHhdOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc291cmNlRGF0YSBpbnN0YW5jZW9mIFN0cmluZ1tdW10pIHsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlRGF0YSA9ICgoU3RyaW5nW11bXSlzb3VyY2VEYXRhKVtuZHhdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzb3VyY2VEYXRhIGluc3RhbmNlb2YgU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChTdHJpbmcpc291cmNlRGF0YTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc291cmNlRGF0YSBpbnN0YW5jZW9mIFN0cmluZ1tdKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nW10gZGF0YSA9IChTdHJpbmdbXSlzb3VyY2VEYXRhOworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCkgcmVzdWx0LmFwcGVuZCgnOycpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGRhdGFbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBDb252ZXJzaW9uRXJyb3IoImNvdWxkIG5vdCBjb252ZXJ0IHRhZzogIitwcm9wTmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBDb2xsYXRpb25Db252ZXJzaW9uIGV4dGVuZHMgQ29udmVyc2lvbiB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgY29udmVydChIYXNodGFibGUgc291cmNlKSB0aHJvd3MgQ29udmVyc2lvbkVycm9yIHsKKyAgICAgICAgICAgIE9iamVjdFtdW10gZWxlbWVudHMgPSAoT2JqZWN0W11bXSlzb3VyY2UuZ2V0KCJjb2xsYXRpb25zIik7CisgICAgICAgICAgICBDb2xsYXRpb25JdGVtW10gaXRlbXMgPSAoQ29sbGF0aW9uSXRlbVtdKWVsZW1lbnRzWzJdWzFdOworICAgICAgICAgICAgaWYgKGl0ZW1zID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpZihpdGVtc1tpXSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGl0ZW1zW2ldLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIENvbnZlcnNpb25bXSBjb252ZXJzaW9ucyA9IHsKKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkxvY2FsZVN0cmluZyIpLCAvKmxvY2FsZSBpZCBiYXNlZCBvbiBpc28gY29kZXMqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTG9jYWxlSUQiKSwgLypXaW5kb3dzIGlkKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIlNob3J0TGFuZ3VhZ2UiKSwgLyppc28tMyBhYmJyZXYgbGFuZyBuYW1lKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIlNob3J0Q291bnRyeSIpLCAvKmlzby0zIGFiYnJldiBjb3VudHJ5IG5hbWUqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTGFuZ3VhZ2VzIiksIC8qbGFuZ3VhZ2UgbmFtZXMqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiQ291bnRyaWVzIiksIC8qY291bnRyeSBuYW1lcyovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiwwKSwgLypqYW51YXJ5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDEpLCAvKmZlYnJ1YXJ5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDIpLCAvKm1hcmNoKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDMpLCAvKmFwcmlsKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDQpLCAvKm1heSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiw1KSwgLypqdW5lKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDYpLCAvKmp1bHkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsNyksIC8qYXVndXN0Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDgpLCAvKnNlcHRlbWJlciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiw5KSwgLypvY3RvYmVyKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoTmFtZXMiLDEwKSwgLypub3ZlbWJlciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aE5hbWVzIiwxMSksIC8qZGVjZW1iZXIqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhOYW1lcyIsMTIpLCAvKm1vbnRoIDEzIGlmIGFwcGxpY2FibGUqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiwwKSwgLyphYmIgamFudWFyeSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDEpLCAvKmFiYiBmZWJydWFyeSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDIpLCAvKmFiYiBtYXJjaCovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDMpLCAvKmFiYiBhcHJpbCovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDQpLCAvKmFiYiBtYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiw1KSwgLyphYmIganVuZSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDYpLCAvKmFiYiBqdWx5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsNyksIC8qYWJiIGF1Z3VzdCovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDgpLCAvKmFiYiBzZXB0ZW1iZXIqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiw5KSwgLyphYmIgb2N0b2JlciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJNb250aEFiYnJldmlhdGlvbnMiLDEwKSwgLyphYmIgbm92ZW1iZXIqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTW9udGhBYmJyZXZpYXRpb25zIiwxMSksIC8qYWJiIGRlY2VtYmVyKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk1vbnRoQWJicmV2aWF0aW9ucyIsMTIpLCAvKmFiYiBtb250aCAxMyBpZiBhcHBsaWNhYmxlKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheU5hbWVzIiwwKSwgLypNb25kYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5TmFtZXMiLDEpLCAvKlR1ZXNkYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5TmFtZXMiLDIpLCAvKldlZG5lc2RheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlOYW1lcyIsMyksIC8qVGh1cnNkYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5TmFtZXMiLDQpLCAvKkZyaWRheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlOYW1lcyIsNSksIC8qU2F0dXJkYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5TmFtZXMiLDYpLCAvKlN1bmRheSovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXlBYmJyZXZpYXRpb25zIiwwKSwgLyphYmIgTW9uZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheUFiYnJldmlhdGlvbnMiLDEpLCAvKmFiYiBUdWVzZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheUFiYnJldmlhdGlvbnMiLDIpLCAvKmFiYiBXZWRuZXNkYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5QWJicmV2aWF0aW9ucyIsMyksIC8qYWJiIFRodXJzZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheUFiYnJldmlhdGlvbnMiLDQpLCAvKmFiYiBGcmlkYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiRGF5QWJicmV2aWF0aW9ucyIsNSksIC8qYWJiIFNhdHVyZGF5Ki8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRheUFiYnJldmlhdGlvbnMiLDYpLCAvKmFiYiBTdW5kYXkqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiQW1QbU1hcmtlcnMiLDApLCAvKmFtIG1hcmtlciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJBbVBtTWFya2VycyIsMSksIC8qcG0gbWFya2VyKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkVyYXMiKSwvKmVyYSBzdHJpbmdzKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIk51bWJlclBhdHRlcm5zIiwwKSwgLypkZWNpbWFsIHBhdHRlcm4qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTnVtYmVyUGF0dGVybnMiLDEpLCAvKmN1cnJlbmN5IHBhdHRlcm4qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTnVtYmVyUGF0dGVybnMiLDIpLCAvKnBlcmNlbnQgcGF0dGVybiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJFbGVtZW50cyIsMCksIC8qZGVjaW1hbCBzZXBhcmF0b3IqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTnVtYmVyRWxlbWVudHMiLDEpLCAvKmdyb3VwICh0aG91c2FuZHMpIHNlcGFyYXRvciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJFbGVtZW50cyIsMiksIC8qbGlzdCBzZXBhcmF0b3IqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTnVtYmVyRWxlbWVudHMiLDMpLCAvKnBlcmNlbnQgc2lnbiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJOdW1iZXJFbGVtZW50cyIsNCksIC8qbmF0aXZlIDAgZGlnaXQqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTnVtYmVyRWxlbWVudHMiLDUpLCAvKnBhdHRlcm4gZGlnaXQqLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTnVtYmVyRWxlbWVudHMiLDYpLCAvKm1pbnVzIHNpZ24qLworICAgICAgICBuZXcgQ29udmVyc2lvbigiTnVtYmVyRWxlbWVudHMiLDcpLCAvKmV4cG9uZW50aWFsKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkN1cnJlbmN5RWxlbWVudHMiLDApLCAvKmxvY2FsIGN1cnJlbmN5IHN5bWJvbCovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJDdXJyZW5jeUVsZW1lbnRzIiwxKSwgLyppbnRsIGN1cnJlbmN5IHN5bWJvbCovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJDdXJyZW5jeUVsZW1lbnRzIiwyKSwgLyptb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvciovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXRlVGltZVBhdHRlcm5zIiwwKSwgLypmdWxsIHRpbWUgcGF0dGVybiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXRlVGltZVBhdHRlcm5zIiwxKSwgLypsb25nIHRpbWUgcGF0dGVybiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXRlVGltZVBhdHRlcm5zIiwyKSwgLyptZWRpdW0gdGltZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDMpLCAvKnNob3J0IHRpbWUgcGF0dGVybiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXRlVGltZVBhdHRlcm5zIiw0KSwgLypmdWxsIGRhdGUgcGF0dGVybiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXRlVGltZVBhdHRlcm5zIiw1KSwgLypsb25nIGRhdGUgcGF0dGVybiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXRlVGltZVBhdHRlcm5zIiw2KSwgLyptZWRpdW0gZGF0ZSBwYXR0ZXJuKi8KKyAgICAgICAgbmV3IENvbnZlcnNpb24oIkRhdGVUaW1lUGF0dGVybnMiLDcpLCAvKnNob3J0IGRhdGUgcGF0dGVybiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXRlVGltZVBhdHRlcm5zIiw4KSwgLypkYXRlLXRpbWUgcGF0dGVybiovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXRlVGltZUVsZW1lbnRzIiw5KSwgLypmaXJzdCBkYXkgb2Ygd2VlayovCisgICAgICAgIG5ldyBDb252ZXJzaW9uKCJEYXRlVGltZUVsZW1lbnRzIiwxMCksIC8qbWluIGRheXMgaW4gZmlyc3Qgd2VlayovCisgICAgICAgIG5ldyBDb2xsYXRpb25Db252ZXJzaW9uKCksIC8qY29sbGF0aW9uIG9yZGVyKi8KKyAgICB9OworICAgIHByaXZhdGUgTG9jYWxlIGxvY2FsZTsKKyAgICBwcml2YXRlIExvY2FsZSBwYXJlbnRMb2NhbGU7CisgICAgcHJpdmF0ZSBSZXNvdXJjZUJ1bmRsZSBkZWZhdWx0RGF0YTsKKworICAgIHB1YmxpYyBOZXV0cmFsVG9KMUNvbnZlcnRlcihMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBsb2NhbGUudG9TdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSAiIjsKKyAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgCisgICAgICAgIGludCBuZHggPSBsYW5ndWFnZS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgY291bnRyeSA9IGxhbmd1YWdlLnN1YnN0cmluZyhuZHgrMSk7CisgICAgICAgICAgICBsYW5ndWFnZSA9IGxhbmd1YWdlLnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIG5keCA9IGNvdW50cnkuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIHZhcmlhbnQgPSBjb3VudHJ5LnN1YnN0cmluZyhuZHgpOworICAgICAgICAgICAgY291bnRyeSA9IGNvdW50cnkuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICgiIi5lcXVhbHMoY291bnRyeSkpIHsKKyAgICAgICAgICAgIGxhbmd1YWdlID0gIiI7CisgICAgICAgICAgICB2YXJpYW50ID0gIiI7CisgICAgICAgIH0gZWxzZSBpZiAoIiIuZXF1YWxzKHZhcmlhbnQpKSB7CisgICAgICAgICAgICBjb3VudHJ5ID0gIiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHBhcmVudExvY2FsZSA9IG5ldyBMb2NhbGUobGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQpOworICAgICAgICBkZWZhdWx0RGF0YSA9CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUoImNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlci5teUxvY2FsZUVsZW1lbnRzIiwgcGFyZW50TG9jYWxlKTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisvL319Cit9CisgICAgCisgICAgLyoqIGNvbnZlcnQgdGhlIHNvdXJjZSB0YWJsZSB0byB0aGUgcmVzdWx0ICovCisgICAgcHJvdGVjdGVkIHZvaWQgY29udmVydChIYXNodGFibGUgcmVzdWx0LCBIYXNodGFibGUgc291cmNlKSB0aHJvd3MgQ29udmVyc2lvbkVycm9yIHsKKyAgICAgICAgVmVjdG9yIGxvY2FsZUVsZW1lbnRzID0gbmV3IFZlY3RvcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbnZlcnNpb25zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBmaW5hbCBDb252ZXJzaW9uIGNvbnYgPSBjb252ZXJzaW9uc1tpXTsKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZyBuZXdWYWx1ZSA9IGNvbnYuY29udmVydChzb3VyY2UpOworICAgICAgICAgICAgaWYgKG5ld1ZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsb2NhbGVFbGVtZW50cy5hZGRFbGVtZW50KG5ld1ZhbHVlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9jYWxlRWxlbWVudHMuYWRkRWxlbWVudChkZWZhdWx0RGF0YS5nZXRPYmplY3QoY29udi5nZXRQcm9wTmFtZSgpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LnB1dCgiTG9jYWxlRWxlbWVudHMiLCBsb2NhbGVFbGVtZW50cyk7CisgICAgfQorICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisvL319Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9QT1NJWExvY2FsZVJlYWRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9QT1NJWExvY2FsZVJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgxMTM2NzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1BPU0lYTG9jYWxlUmVhZGVyLmphdmEKQEAgLTAsMCArMSw0MDcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIFBPU0lYTG9jYWxlUmVhZGVyIHsKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBsb2NhbGVEYXRhUGF0aDsKKyAgICBwcml2YXRlIGZpbmFsIExvY2FsZSBsb2NhbGU7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQUdfVE9LRU4gPSAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNFUEFSQVRPUl9UT0tFTiA9IDI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRU9MX1RPS0VOID0gMzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFT0ZfVE9LRU4gPSA0OworCisgICAgICAgIC8vdGhlc2Ugc3RhdGVzIGFyZSB1c2VkIHRvIHBhcnNlIHRoZSBidWxrIG9mIHRoZQorICAgICAgICAvL2lucHV0IGZpbGUuICBUaGV5IHRyYW5zbGF0ZSBlc2NhcGVkIGNoYXJhY3RlcnMKKyAgICAgICAgLy9hbmQgc3ltb2xpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBpbmxpbmUuCisgICAgc3RhdGljIGZpbmFsIExleC5UcmFuc2l0aW9uW11bXSBkYXRhU3RhdGVzID0geworICAgICAgICB7IC8vc3RhdGUgMDogc3RhcnQKKyAgICAgICAgICAgIG5ldyBTcGFjZVRyYW5zaXRpb24oMCksCisgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKCc7JywgTGV4LklHTk9SRV9DT05TVU1FLCBTRVBBUkFUT1JfVE9LRU4pLAorICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbignLCcsIExleC5JR05PUkVfQ09OU1VNRSwgU0VQQVJBVE9SX1RPS0VOKSwKKyAgICAgICAgICAgIG5ldyBFT0xUcmFuc2l0aW9uKEVPTF9UT0tFTiksCisgICAgICAgICAgICBuZXcgVG9rZW5UcmFuc2l0aW9uKFRBR19UT0tFTiksCisgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oRU9GX1RPS0VOKSwKKyAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJ1bmV4cGVjdGVkIGNoYXJhY3RlcnMiKQorICAgICAgICB9CisgICAgfTsKKworICAgIHN0YXRpYyBmaW5hbCBMZXguVHJhbnNpdGlvbltdW10gTENTdGF0ZXMgPSB7CisgICAgICAgIHsgLy9zdGF0ZSAwOiBzdGFydAorICAgICAgICAgICAgbmV3IFNwYWNlVHJhbnNpdGlvbigwKSwKKyAgICAgICAgICAgIG5ldyBFT0xUcmFuc2l0aW9uKEVPTF9UT0tFTiksCisgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oRU9GX1RPS0VOKSwKKyAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTEpCisgICAgICAgIH0sCisgICAgICAgIHsgICAvL2dyYWIgZmlyc3Qgd29yZAorICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKFNwYWNlVHJhbnNpdGlvbi5TUEFDRV9DSEFSUywgTGV4LklHTk9SRV9QVVRCQUNLLCBUQUdfVE9LRU4pLAorICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKEVPTFRyYW5zaXRpb24uRU9MX0NIQVJTLCBMZXguSUdOT1JFX1BVVEJBQ0ssIFRBR19UT0tFTiksCisgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oVEFHX1RPS0VOKSwKKyAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTEpCisgICAgICAgIH0KKyAgICB9OworCisgICAgcHVibGljIFBPU0lYTG9jYWxlUmVhZGVyKGZpbmFsIFN0cmluZyBsb2NhbGVEYXRhUGF0aCwgZmluYWwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzLmxvY2FsZURhdGFQYXRoID0gbG9jYWxlRGF0YVBhdGg7CisgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKy8vfX0KK30KKyAgICAKKyAgICBwdWJsaWMgSGFzaHRhYmxlIHBhcnNlKFN0cmluZyBmaWxlTmFtZSwgYnl0ZSBmbGFncykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEhhc2h0YWJsZSB0YWJsZSA9IHBhcnNlTmF0aXZlKGZpbGVOYW1lKTsKKyAgICAgICAgICAgIEhhc2h0YWJsZSByZXN1bHQgPSBuZXcgUG9zaXhUb05ldXRyYWxDb252ZXJ0ZXIoZmxhZ3MsIGxvY2FsZSxmaWxlTmFtZSkuY29udmVydCh0YWJsZSk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9IGNhdGNoIChMb2NhbGVDb252ZXJ0ZXIuQ29udmVyc2lvbkVycm9yIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiSW50ZXJuYWwgZXJyb3IgY29udmVydGluZyBsb2NhbGUgZGF0YSIpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIEhhc2h0YWJsZSBwYXJzZU5hdGl2ZShTdHJpbmcgZmlsZU5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGNoYXIgb2xkRXNjYXBlQ2hhciA9IEVzY2FwZVRyYW5zaXRpb24uc2V0RGVmYXVsdEVzY2FwZUNoYXIoKTsKKyAgICAgICAgY2hhciBvbGRDb21tZW50Q2hhciA9IEVPTFRyYW5zaXRpb24uc2V0RGVmYXVsdENvbW1lbnRDaGFyKCk7CisgICAgICAgIEhhc2h0YWJsZSB0YWJsZSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTGluZUNoYXJOdW1iZXJSZWFkZXIgbGluZXMgPSBuZXcgTGluZUNoYXJOdW1iZXJSZWFkZXIoCisgICAgICAgICAgICAgICAgbmV3IEJ1ZmZlcmVkUmVhZGVyKAorICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZVJlYWRlcigKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWxlKGxvY2FsZURhdGFQYXRoLCBmaWxlTmFtZSkKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICBQdXNoYmFja1JlYWRlciByZWFkZXIgPSBuZXcgUHVzaGJhY2tSZWFkZXIobGluZXMpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvL1Nob3ZlIGEgbmV3bGluZSBhdCB0aGUgc3RhcnQgb2YgdGhlIGZpbGUuICBUaGlzIGhhcyB0aGUgYWZmZWN0IG9mIGFsbG93aW5nCisgICAgICAgICAgICAvL3RoZSBmaWxlIHRvIHN0YXJ0IHdpdGggYSBjb21tZW50LCBzaW5jZSB0aGUgcGFyc2VyIG9ubHkgYWxsb3dzIGNvbW1lbnRzIGFzIAorICAgICAgICAgICAgLy9wYXJ0IG9mIGFuIEVPTAorICAgICAgICAgICAgcmVhZGVyLnVucmVhZCgnXG4nKTsKKworICAgICAgICAgICAgU3RyaW5nIHNlY3Rpb25UYWcgPSBzZWVrTEMocmVhZGVyKTsKKyAgICAgICAgICAgIHdoaWxlIChzZWN0aW9uVGFnICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBwYXJzZVNlY3Rpb24odGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoTGV4LlBhcnNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUiBwYXJzaW5nOiAiK2UucmVhc29uKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCIgICAgICAgICBMaW5lOiAiK2xpbmVzLmdldExpbmVOdW1iZXIoKSk7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiICAgICAgICAgY2hhcjogIitsaW5lcy5nZXRDaGFyTnVtYmVyKCkpOworICAgICAgICAgICAgICAgICAgICBzZWVrRU5EKHJlYWRlcik7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiU2tpcHBlZCB0byBsaW5lOiAiKyhsaW5lcy5nZXRMaW5lTnVtYmVyKCkrMSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZWN0aW9uVGFnID0gc2Vla0xDKHJlYWRlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBFc2NhcGVUcmFuc2l0aW9uLnNldEVzY2FwZUNoYXIob2xkRXNjYXBlQ2hhcik7CisgICAgICAgICAgICBFT0xUcmFuc2l0aW9uLnNldENvbW1lbnRDaGFyKG9sZENvbW1lbnRDaGFyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFibGU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBwYXJzZVNlY3Rpb24oSGFzaHRhYmxlIHRhYmxlLCBQdXNoYmFja1JlYWRlciByZWFkZXIsIFN0cmluZyBzZWN0aW9uVGFnKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAoc2VjdGlvblRhZy5lcXVhbHMoIkxDX0NUWVBFIikpIHsKKyAgICAgICAgICAgIHBhcnNlQ1RZUEUodGFibGUsIHJlYWRlcik7CisgICAgICAgIH0gZWxzZSBpZiAoc2VjdGlvblRhZy5lcXVhbHMoIkxDX0NPTExBVEUiKSkgeworICAgICAgICAgICAgcGFyc2VDT0xMQVRFKHRhYmxlLCByZWFkZXIpOworICAgICAgICB9IGVsc2UgaWYgKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19NT05FVEFSWSIpKSB7CisgICAgICAgICAgICBwYXJzZUxDKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICB9IGVsc2UgaWYgKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19OVU1FUklDIikpIHsKKyAgICAgICAgICAgIHBhcnNlTEModGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgIH0gZWxzZSBpZiAoc2VjdGlvblRhZy5lcXVhbHMoIkxDX1RJTUUiKSkgeworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgfSBlbHNlIGlmIChzZWN0aW9uVGFnLmVxdWFscygiTENfTUVTU0FHRVMiKSkgeworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgfWVsc2UgaWYoc2VjdGlvblRhZy5lcXVhbHMoIkxDX01FQVNVUkVNRU5UIikpeworICAgICAgICAgICAgcGFyc2VMQyh0YWJsZSwgcmVhZGVyLCBzZWN0aW9uVGFnKTsKKyAgICAgICAgfWVsc2UgaWYoc2VjdGlvblRhZy5lcXVhbHMoIkxDX0FERFJFU1MiKSl7CisgICAgICAgICAgICBwYXJzZUxDKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICB9ZWxzZSBpZihzZWN0aW9uVGFnLmVxdWFscygiTENfUEFQRVIiKSl7CisgICAgICAgICAgICBwYXJzZUxDKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICB9ZWxzZSBpZihzZWN0aW9uVGFnLmVxdWFscygiTENfTkFNRSIpKXsKKyAgICAgICAgICAgIHBhcnNlTEModGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgIH1lbHNlIGlmKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19JREVOVElGSUNBVElPTiIpKXsKKyAgICAgICAgICAgIHBhcnNlTEModGFibGUsIHJlYWRlciwgc2VjdGlvblRhZyk7CisgICAgICAgIH1lbHNlIGlmKHNlY3Rpb25UYWcuZXF1YWxzKCJMQ19URUxFUEhPTkUiKSl7CisgICAgICAgICAgICBwYXJzZUxDKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICAgICAgCisgICAgICAgIH1lbHNlIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVW5yZWNvZ25pc2VkIHNlY3Rpb246IitzZWN0aW9uVGFnKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRGVmYXVsdCBwYXJzaW5nIGFwcGxpZWQuIik7CisgICAgICAgICAgICBwYXJzZUxDKHRhYmxlLCByZWFkZXIsIHNlY3Rpb25UYWcpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBQdXNoYmFja1JlYWRlciBjcmVhdGVQYXJzZXJJbnB1dChTdHJpbmcgbG9jYWxlTmFtZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgUHVzaGJhY2tSZWFkZXIgcmVhZGVyID0gbmV3IFB1c2hiYWNrUmVhZGVyKAorICAgICAgICAgICAgbmV3IEJ1ZmZlcmVkUmVhZGVyKAorICAgICAgICAgICAgICAgIG5ldyBGaWxlUmVhZGVyKAorICAgICAgICAgICAgICAgICAgICBuZXcgRmlsZShsb2NhbGVEYXRhUGF0aCwgbG9jYWxlTmFtZSkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICk7CisgICAgICAgIC8vU2hvdmUgYSBuZXdsaW5lIGF0IHRoZSBzdGFydCBvZiB0aGUgZmlsZS4gIFRoaXMgaGFzIHRoZSBhZmZlY3Qgb2YgYWxsb3dpbmcKKyAgICAgICAgLy90aGUgZmlsZSB0byBzdGFydCB3aXRoIGEgY29tbWVudCwgc2luY2UgdGhlIHBhcnNlciBvbmx5IGFsbG93cyBjb21tZW50cyBhcyAKKyAgICAgICAgLy9wYXJ0IG9mIGFuIEVPTAorICAgICAgICByZWFkZXIudW5yZWFkKCdcbicpOworICAgICAgICByZXR1cm4gcmVhZGVyOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyBzZWVrTEMoUHVzaGJhY2tSZWFkZXIgcmVhZGVyKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBMZXggcCA9IG5ldyBMZXgoTENTdGF0ZXMsIHJlYWRlcik7CisgICAgICAgIGZpbmFsIFN0cmluZyBMQyA9ICJMQ18iOworICAgICAgICBpbnQgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgIHdoaWxlICgocyAhPSBFT0ZfVE9LRU4pKSB7CisgICAgICAgICAgICBpZiAocyA9PSBUQUdfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICBpZiAocC5kYXRhU3RhcnRzV2l0aChMQykpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRhZyA9IHAuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAocyAhPSBFT0xfVE9LRU4gJiYgcyAhPSBFT0ZfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFnOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocC5kYXRhRXF1YWxzKCJlc2NhcGVfY2hhciIpKSB7CisgICAgICAgICAgICAgICAgICAgIHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICBpZiAocyA9PSBUQUdfVE9LRU4gfHwgcC5nZXREYXRhKCkubGVuZ3RoKCkgIT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGVzY2FwZV9jaGFyID0gcC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBFc2NhcGVUcmFuc2l0aW9uLnNldEVzY2FwZUNoYXIoZXNjYXBlX2NoYXIuY2hhckF0KDApKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXJyb3IgaW4gZXNjYXBlX2NoYXIgZGlyZWN0aXZlLiAgRGlyZWN0aXZlIGlnbm9yZWQuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHAuZGF0YUVxdWFscygiY29tbWVudF9jaGFyIikpIHsKKyAgICAgICAgICAgICAgICAgICAgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzID09IFRBR19UT0tFTiB8fCBwLmdldERhdGEoKS5sZW5ndGgoKSAhPSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY29tbWVudF9jaGFyID0gcC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihjb21tZW50X2NoYXIubGVuZ3RoKCkgPiAwKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFT0xUcmFuc2l0aW9uLnNldENvbW1lbnRDaGFyKGNvbW1lbnRfY2hhci5jaGFyQXQoMCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciBpbiBlc2NhcGVfY2hhciBkaXJlY3RpdmUuICBEaXJlY3RpdmUgaWdub3JlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBzZWVrRU5EKFB1c2hiYWNrUmVhZGVyIHJlYWRlcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgTGV4IHAgPSBuZXcgTGV4KExDU3RhdGVzLCByZWFkZXIpOworICAgICAgICBmaW5hbCBTdHJpbmcgRU5EID0gIkVORCI7CisgICAgICAgIGludCBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgd2hpbGUgKChzICE9IEVPRl9UT0tFTikpIHsKKyAgICAgICAgICAgIGlmIChzID09IFRBR19UT0tFTikgeworICAgICAgICAgICAgICAgIGlmIChwLmRhdGFTdGFydHNXaXRoKEVORCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKHMgIT0gRU9MX1RPS0VOICYmIHMgIT0gRU9GX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcGFyc2VDVFlQRShIYXNodGFibGUgdGFibGUsIFB1c2hiYWNrUmVhZGVyIHJlYWRlcikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgTGV4IHAgPSBuZXcgTGV4KGRhdGFTdGF0ZXMsIHJlYWRlcik7CisgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpbnQgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgIGlmICgocyA9PSBUQUdfVE9LRU4pICYmIHAuZGF0YUVxdWFscygiY29weSIpKSB7CisgICAgICAgICAgICBwLmFjY2VwdChUQUdfVE9LRU4pOworICAgICAgICAgICAgcGFyc2VDb3B5KCJMQ19DVFlQRSIsIHAuZ2V0RGF0YSgpLCB0YWJsZSk7CisgICAgICAgICAgICBwLmFjY2VwdChFT0xfVE9LRU4pOworICAgICAgICAgICAgcC5hY2NlcHQoVEFHX1RPS0VOLCAiRU5EIik7CisgICAgICAgICAgICBwLmFjY2VwdChUQUdfVE9LRU4sICJMQ19DVFlQRSIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd2hpbGUgKChzID09IFRBR19UT0tFTikgJiYgIXAuZGF0YUVxdWFscygiRU5EIikpIHsgIAorICAgICAgICAgICAgICAgIC8vSUdOT1JFIHRoZSBDVFlQRSBkZWZpbml0aW9uIC4uLiB3ZSBkb250IG5lZWQgaXQKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gcC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgdGVtcC5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgcC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgICAgICBwLmFwcGVuZERhdGFUbyh0ZW1wKTsKKyAgICAgICAgICAgICAgICBzID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAocyA9PSBTRVBBUkFUT1JfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgcC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgcC5hcHBlbmREYXRhVG8odGVtcCk7CisgICAgICAgICAgICAgICAgICAgIHMgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocyAhPSBFT0xfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJXQVJOSU5HOiBDb3VsZCBub3QgcGFyc2UgdGhlIFVuZXhwZWN0ZWQgdG9rZW46IEV4cGVjdGluZyBFT0wgZ290ICIrcyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGFibGUucHV0KGtleSwgdGVtcC50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgcyA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBwLmFjY2VwdChUQUdfVE9LRU4sICJMQ19DVFlQRSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBwYXJzZUNvcHkoU3RyaW5nIHNlY3Rpb24sIFN0cmluZyB0b0NvcHksIEhhc2h0YWJsZSB0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBjaGFyIG9sZEVzY2FwZUNoYXIgPSBFc2NhcGVUcmFuc2l0aW9uLnNldERlZmF1bHRFc2NhcGVDaGFyKCk7CisgICAgICAgIGNoYXIgb2xkQ29tbWVudENoYXIgPSBFT0xUcmFuc2l0aW9uLnNldERlZmF1bHRDb21tZW50Q2hhcigpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUHVzaGJhY2tSZWFkZXIgcmVhZGVyID0gY3JlYXRlUGFyc2VySW5wdXQodG9Db3B5KTsKKyAgICAgICAgICAgIFN0cmluZyB0YWcgPSBzZWVrTEMocmVhZGVyKTsKKyAgICAgICAgICAgIHdoaWxlICh0YWcgIT0gbnVsbCAmJiAhc2VjdGlvbi5lcXVhbHModGFnKSkgeworICAgICAgICAgICAgICAgIHRhZyA9IHNlZWtMQyhyZWFkZXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRhZyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcGFyc2VTZWN0aW9uKHQsIHJlYWRlciwgc2VjdGlvbik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vaGV5IHtqZn0gLSBpcyB0aGlzIGFuIGVycm9yPworICAgICAgICAgICAgfQorICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgRXNjYXBlVHJhbnNpdGlvbi5zZXRFc2NhcGVDaGFyKG9sZEVzY2FwZUNoYXIpOworICAgICAgICAgICAgRU9MVHJhbnNpdGlvbi5zZXRDb21tZW50Q2hhcihvbGRDb21tZW50Q2hhcik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlTEMoSGFzaHRhYmxlIHQsIFB1c2hiYWNrUmVhZGVyIHJlYWRlciwgU3RyaW5nIHNlY3Rpb25UYWcpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIExleCBpbnB1dCA9IG5ldyBMZXgoZGF0YVN0YXRlcywgcmVhZGVyKTsKKyAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTik7CisgICAgICAgIGlmIChpbnB1dC5kYXRhRXF1YWxzKCJjb3B5IikpIHsKKyAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOworICAgICAgICAgICAgcGFyc2VDb3B5KHNlY3Rpb25UYWcsIGlucHV0LmdldERhdGEoKSwgdCk7ICAgICAgICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgd2hpbGUgKChpbnB1dC5nZXRTdGF0ZSgpID09IFRBR19UT0tFTikgJiYgIWlucHV0LmRhdGFFcXVhbHMoIkVORCIpKSB7ICAgCisgICAgICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gaW5wdXQuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgIFZlY3RvciB2YWx1ZXMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTik7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXAgPSBpbnB1dC5nZXREYXRhKCk7CisgICAgICAgICAgICAgICAgdmFsdWVzLmFkZEVsZW1lbnQodGVtcCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGlucHV0Lm5leHRUb2tlbigpID09IFNFUEFSQVRPUl9UT0tFTikgeworICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gaW5wdXQuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYWRkRWxlbWVudCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh2YWx1ZXMuc2l6ZSgpID4gMSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBkYXRhID0gbmV3IFN0cmluZ1t2YWx1ZXMuc2l6ZSgpXTsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmNvcHlJbnRvKGRhdGEpOworICAgICAgICAgICAgICAgICAgICB0LnB1dChsYWJlbCwgZGF0YSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdC5wdXQobGFiZWwsIHZhbHVlcy5lbGVtZW50QXQoMCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaW5wdXQuZ2V0U3RhdGUoKSAhPSBFT0xfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFeHRyYW5lb3VzIHRleHQgYWZ0ZXIgbGFiZWw6ICIgK2xhYmVsKTsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4sIHNlY3Rpb25UYWcpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwYXJzZUNPTExBVEUoSGFzaHRhYmxlIHRhYmxlLCBQdXNoYmFja1JlYWRlciByZWFkZXIpIAorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgUG9zaXhDaGFyTWFwIG1hcCA9IG5ldyBQb3NpeENoYXJNYXAoU3ltYm9sVHJhbnNpdGlvbi5nZXRDaGFyTWFwKCkpOworICAgICAgICBTeW1ib2xUcmFuc2l0aW9uLnNldENoYXJNYXAobWFwKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIExleCBpbnB1dCA9IG5ldyBMZXgoZGF0YVN0YXRlcywgcmVhZGVyKTsKKyAgICAgICAgICAgIFBvc2l4Q29sbGF0aW9uQnVpbGRlciBidWlsZGVyID0gbmV3IFBvc2l4Q29sbGF0aW9uQnVpbGRlcihtYXApOworCisgICAgICAgICAgICBpbnQgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgd2hpbGUgKHMgPT0gRU9MX1RPS0VOKSBzID0gaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICB3aGlsZSAocyA9PSBUQUdfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5wdXQuZGF0YUVxdWFscygiRU5EIikpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5kYXRhRXF1YWxzKCJVTkRFRklORUQiKSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldBUk5JTkc6IFVuZGVmaW5lZCBjaGFyYWN0ZXJzIHdpbGwgc29ydCBsYXN0LiIpOworICAgICAgICAgICAgICAgICAgICBzID0gaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzICE9IEVPRl9UT0tFTiAmJiBzICE9IEVPTF9UT0tFTikgeworICAgICAgICAgICAgICAgICAgICAgICAgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5kYXRhRXF1YWxzKCJjb3B5IikpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9jb3B5IGNvbGxhdGlvbiBydWxlcyBmcm9tIGFub3RoZXIgbG9jYWxlCisgICAgICAgICAgICAgICAgICAgIGlucHV0LmFjY2VwdChUQUdfVE9LRU4pOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdG9Db3B5ID0gaW5wdXQuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoRU9MX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VDb3B5KCJMQ19DT0xMQVRFIiwgdG9Db3B5LCB0YWJsZSk7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiQ29weWluZyBjb2xsYXRpb24gcnVsZXMgZnJvbSAiK3RvQ29weSsiLi4uIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5kYXRhRXF1YWxzKCIuLi4iKSkgeworICAgICAgICAgICAgICAgICAgICAvL2ZpbGwgdGhlIHNwYWNlIGJldHdlZW4gdGhlIGxhc3QgZWxlbWVudCBhbmQgdGhlIG5leHQgZWxlbWVudAorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVSUk9SOiBFbGxpcHNpcyBub3Qgc3VwcG9ydGVkIGluIGNvbGxhdGlvbiBydWxlcy4iKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCIgICAgICAgTGluZSBpZ25vcmVkIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5kYXRhRXF1YWxzKCJyZXBsYWNlLWFmdGVyIikpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUjogUmVwbGFjZS1hZnRlciBub3Qgc3VwcG9ydGVkIGluIGNvbGxhdGlvbiBydWxlcy4iKTsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCIgICAgICAgU2tpcHBpbmcgdW50aWwgbmV4dCByZXBsYWNlLWVuZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAocyAhPSBFT0ZfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzID09IFRBR19UT0tFTiAmJiBpbnB1dC5kYXRhRXF1YWxzKCJyZXBsYWNlLWVuZCIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KEVPTF9UT0tFTik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LmRhdGFFcXVhbHMoImNvbGxhdGluZy1lbGVtZW50IikpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9TZXZlcmFsIGNoYXJhY3RlcnMgc2hvdWxkIHNvcnQgYXMgYSBzaW5nbGUgZWxlbWVudC4KKyAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTik7ICAgIC8vZ2V0IHRoZSBzeW1ib2wKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IGlucHV0LmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTiwgImZyb20iKTsKKyAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTik7ICAgIC8vZ2V0IHRoZSBleHBhbnNpb24KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gaW5wdXQuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmRlZmluZUNvbnRyYWN0aW9uKGtleSwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoRU9MX1RPS0VOKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LmRhdGFFcXVhbHMoImNvbGxhdGluZy1zeW1ib2wiKSkgeworICAgICAgICAgICAgICAgICAgICAvL2RlZmluZSBhIHdlaWdodCBzeW1ib2wuICBUaGlzIHN5bWJvbCBkb2VzIG5vdCByZXByZXNlbnQgYSBjaGFyYWN0ZXIuCisgICAgICAgICAgICAgICAgICAgIC8vSXQncyBvbmx5IHVzZWQgZm9yIGNvbXBhcmlzb24gcHVycG9zZXMuICBXZSBkZWZpbmUgdGhlIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAvL3ZhbHVlIGZvciB0aGlzIGNoYXJhY3RlciB0byBiZSBpbiB0aGUgcHJpdmF0ZSBhcmVhIHNpbmNlIG91cgorICAgICAgICAgICAgICAgICAgICAvL2NvbGxhdGlvbiBzdHVmZiBkb2Vzbid0IHNvcnQgdGhhdCBhcmVhLgorICAgICAgICAgICAgICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOKTsKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5kZWZpbmVXZWlnaHRTeW1ib2woaW5wdXQuZ2V0RGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KEVPTF9UT0tFTik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5kYXRhRXF1YWxzKCJvcmRlcl9zdGFydCIpKSB7CisgICAgICAgICAgICAgICAgICAgIFZlY3RvciB0ZW1wVmVjdG9yID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgICAgICAgICAvL3N0YXJ0IHJlYWRpbmcgY29sbGF0aW9uIG9yZGVyaW5nIHJ1bGVzLiAKKyAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTik7CisgICAgICAgICAgICAgICAgICAgIHRlbXBWZWN0b3IuYWRkRWxlbWVudChpbnB1dC5nZXREYXRhKCkpOworICAgICAgICAgICAgICAgICAgICBzID0gaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzID09IFNFUEFSQVRPUl9UT0tFTikgeworICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KFRBR19UT0tFTik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wVmVjdG9yLmFkZEVsZW1lbnQoaW5wdXQuZ2V0RGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBvcmRlcl9zdGFydCA9IG5ldyBTdHJpbmdbdGVtcFZlY3Rvci5zaXplKCldOworICAgICAgICAgICAgICAgICAgICB0ZW1wVmVjdG9yLmNvcHlJbnRvKG9yZGVyX3N0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgdGFibGUucHV0KCJzb3J0X29yZGVyIiwgb3JkZXJfc3RhcnQpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuZGF0YUVxdWFscygib3JkZXJfZW5kIikpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9idWlsZCBhIGxpc3Qgb2Ygb3JkZXJlZCBjb2xsYXRpb24gZWxlbWVudHMKKyAgICAgICAgICAgICAgICAgICAgaW5wdXQuYWNjZXB0KEVPTF9UT0tFTik7CisgICAgICAgICAgICAgICAgICAgIFNvcnRlZFZlY3RvciBvcmRlciA9IGJ1aWxkZXIuZ2V0U29ydE9yZGVyKCk7CisgICAgICAgICAgICAgICAgICAgIFBvc2l4Q29sbGF0aW9uQnVpbGRlci5Db2xsYXRpb25SdWxlW10gcnVsZVNvdXJjZSA9IAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFBvc2l4Q29sbGF0aW9uQnVpbGRlci5Db2xsYXRpb25SdWxlW29yZGVyLnNpemUoKV07CisgICAgICAgICAgICAgICAgICAgIG9yZGVyLmNvcHlJbnRvKHJ1bGVTb3VyY2UpOyAvL2NvcHkgaW50byBhbiBhcnJheSBzbyB3ZSBjYW4gYWRkIGl0IHRvIHRoZSBvdXRwdXQgdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhpcyBpcyBvbmx5IGZvciBpbmZvcm1hdGlvbiBwdXJwb3NlcyBzbyB3ZSBjYW4gcmV0cmlldmUgdGhlIHNvdXJjZSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vY29sbGF0aW9uSXRlbXMgd2l0aCB0aGUgd2VpZ2h0cyBpZiB3ZSB3YW50IHRoZW0gbGF0ZXIKKyAgICAgICAgICAgICAgICAgICAgdGFibGUucHV0KCJwb3NpeF9zb3J0X3J1bGVzIiwgcnVsZVNvdXJjZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy9hZGQgYSBjb2xsYXRpb24gaXRlbSB0byB0aGUgbGlzdAorICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFkZFJ1bGUoaW5wdXQuZ2V0RGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgcyA9IGlucHV0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAocyA9PSBUQUdfVE9LRU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vd2UncmUgZXhwZWN0aW5nIHdlaWdodHMgaGVyZQorICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hZGRXZWlnaHQoaW5wdXQuZ2V0RGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzID09IFNFUEFSQVRPUl9UT0tFTikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBpbnB1dC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzID0gaW5wdXQubmV4dFRva2VuKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnB1dC5hY2NlcHQoVEFHX1RPS0VOLCAiTENfQ09MTEFURSIpOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgU3ltYm9sVHJhbnNpdGlvbi5zZXRDaGFyTWFwKG1hcC5nZXRQYXJlbnQoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKy8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUG9zaXhDaGFyTWFwLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Bvc2l4Q2hhck1hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVlY2IyMWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Bvc2l4Q2hhck1hcC5qYXZhCkBAIC0wLDAgKzEsNDk1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworcHVibGljIGNsYXNzIFBvc2l4Q2hhck1hcCB7CisgICAgcHJpdmF0ZSBIYXNodGFibGUgdGFibGUgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgcHJpdmF0ZSBIYXNodGFibGUgYmFja1RhYmxlID0gbnVsbDsKKyAgICBwcml2YXRlIFBvc2l4Q2hhck1hcCBwYXJlbnRNYXA7CisgICAgcHJpdmF0ZSBTdHJpbmcgZW5jb2Rpbmc7CisgICAgCisgICAgcHVibGljIFBvc2l4Q2hhck1hcCgpIHsKKyAgICB9CisgICAgCisgICAgcHVibGljIFBvc2l4Q2hhck1hcChQb3NpeENoYXJNYXAgcGFyZW50KSB7CisgICAgICAgIHBhcmVudE1hcCA9IHBhcmVudDsKKyAgICB9CisKKyAgICBwdWJsaWMgUG9zaXhDaGFyTWFwKFN0cmluZyBmaWxlTmFtZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgdGhpcyhuZXcgRmlsZVJlYWRlcihmaWxlTmFtZSkpOworICAgIH0KKworICAgIHB1YmxpYyBQb3NpeENoYXJNYXAoU3RyaW5nIHBhdGhOYW1lLCBTdHJpbmcgZmlsZU5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHRoaXMobmV3IEZpbGVSZWFkZXIobmV3IEZpbGUocGF0aE5hbWUsIGZpbGVOYW1lKSkpOworICAgIH0KKworICAgIHB1YmxpYyBQb3NpeENoYXJNYXAoUmVhZGVyIGlucHV0UmVhZGVyKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBsb2FkKG5ldyBCdWZmZXJlZFJlYWRlcihpbnB1dFJlYWRlcikpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgUG9zaXhDaGFyTWFwIGdldFBhcmVudCgpIHsKKyAgICAgICAgcmV0dXJuIHBhcmVudE1hcDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0UGFyZW50KFBvc2l4Q2hhck1hcCBwYXJlbnQpIHsKKyAgICAgICAgcGFyZW50TWFwID0gcGFyZW50OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGxvYWQoU3RyaW5nIHBhdGhOYW1lLCBTdHJpbmcgZmlsZU5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGxvYWQobmV3IEZpbGUocGF0aE5hbWUsIGZpbGVOYW1lKSwiIik7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIGxvYWQoU3RyaW5nIHBhdGhOYW1lLCBTdHJpbmcgZmlsZU5hbWUsIFN0cmluZyBlbmMpdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBsb2FkKG5ldyBGaWxlKHBhdGhOYW1lLCBmaWxlTmFtZSksZW5jKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgbG9hZChGaWxlIGZpbGUsIFN0cmluZyBlbmMpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGVuY29kaW5nID1lbmM7CisgICAgICAgIGxvYWQobmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBGaWxlUmVhZGVyKGZpbGUpKSk7CisgICAgfQorICAgIC8qIFRoaXMgbWFwIG11c3QgYmUgaW4gQVNDRU5ESU5HIE9SREVSIE9GIFRIRSBFU0NBUEUgQ09ERSAqLworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGNoYXJbXSBVTkVTQ0FQRV9NQVAgPSB7CisgICAgICAgIC8qIiAgIDB4MjIsIDB4MjIgKi8KKyAgICAgICAgLyonICAgMHgyNywgMHgyNyAqLworICAgICAgICAvKj8gICAweDNGLCAweDNGICovCisgICAgICAgIC8qXCAgIDB4NUMsIDB4NUMgKi8KKyAgICAgICAgLyphKi8gMHg2MSwgMHgwNywKKyAgICAgICAgLypiKi8gMHg2MiwgMHgwOCwKKyAgICAgICAgLypmKi8gMHg2NiwgMHgwYywKKyAgICAgICAgLypuKi8gMHg2RSwgMHgwYSwKKyAgICAgICAgLypyKi8gMHg3MiwgMHgwZCwKKyAgICAgICAgLyp0Ki8gMHg3NCwgMHgwOSwKKyAgICAgICAgLyp2Ki8gMHg3NiwgMHgwYgorICAgIH07CisgICAgICAgIC8qKgorICAgICAqIENvbnZlcnQgYW4gZXNjYXBlIHRvIGEgMzItYml0IGNvZGUgcG9pbnQgdmFsdWUuICBXZSBhdHRlbXB0CisgICAgICogdG8gcGFyYWxsZWwgdGhlIGljdTRjIHVuZXNhY3BlQXQoKSBmdW5jdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgYW4gYXJyYXkgY29udGFpbmluZyBvZmZzZXQgdG8gdGhlIGNoYXJhY3RlcgorICAgICAqIDxlbT5hZnRlcjwvZW0+IHRoZSBiYWNrc2xhc2guICBVcG9uIHJldHVybiBvZmZzZXQxNlswXSB3aWxsCisgICAgICogYmUgdXBkYXRlZCB0byBwb2ludCBhZnRlciB0aGUgZXNjYXBlIHNlcXVlbmNlLgorICAgICAqIEByZXR1cm4gY2hhcmFjdGVyIHZhbHVlIGZyb20gMCB0byAxMEZGRkYsIG9yIC0xIG9uIGVycm9yLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHVuZXNjYXBlQXQoU3RyaW5nIHMsIGludFtdIG9mZnNldDE2KSB7CisgICAgICAgIGludCBjOworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgaW50IG4gPSAwOworICAgICAgICBpbnQgbWluRGlnID0gMDsKKyAgICAgICAgaW50IG1heERpZyA9IDA7CisgICAgICAgIGludCBiaXRzUGVyRGlnaXQgPSA0OworICAgICAgICBpbnQgZGlnOworICAgICAgICBpbnQgaTsKKworICAgICAgICAvKiBDaGVjayB0aGF0IG9mZnNldCBpcyBpbiByYW5nZSAqLworICAgICAgICBpbnQgb2Zmc2V0ID0gb2Zmc2V0MTZbMF07CisgICAgICAgIGludCBsZW5ndGggPSBzLmxlbmd0aCgpOworICAgICAgICBpZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgPj0gbGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICAvKiBGZXRjaCBmaXJzdCBVQ2hhciBhZnRlciAnXFwnICovCisgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQocywgb2Zmc2V0KTsKKyAgICAgICAgb2Zmc2V0ICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKworICAgICAgICAvKiBDb252ZXJ0IGhleGFkZWNpbWFsIGFuZCBvY3RhbCBlc2NhcGVzICovCisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICBjYXNlICd1JzoKKyAgICAgICAgICAgIG1pbkRpZyA9IG1heERpZyA9IDQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnVSc6CisgICAgICAgICAgICBtaW5EaWcgPSBtYXhEaWcgPSA4OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ3gnOgorICAgICAgICAgICAgbWluRGlnID0gMTsKKyAgICAgICAgICAgIG1heERpZyA9IDI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGRpZyA9IFVDaGFyYWN0ZXIuZGlnaXQoYywgOCk7CisgICAgICAgICAgICBpZiAoZGlnID49IDApIHsKKyAgICAgICAgICAgICAgICBtaW5EaWcgPSAxOworICAgICAgICAgICAgICAgIG1heERpZyA9IDM7CisgICAgICAgICAgICAgICAgbiA9IDE7IC8qIEFscmVhZHkgaGF2ZSBmaXJzdCBvY3RhbCBkaWdpdCAqLworICAgICAgICAgICAgICAgIGJpdHNQZXJEaWdpdCA9IDM7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZGlnOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1pbkRpZyAhPSAwKSB7CisgICAgICAgICAgICB3aGlsZSAob2Zmc2V0IDwgbGVuZ3RoICYmIG4gPCBtYXhEaWcpIHsKKyAgICAgICAgICAgICAgICAvLyBURU1QT1JBUlkKKyAgICAgICAgICAgICAgICAvLyBUT0RPOiBSZXN0b3JlIHRoZSBjaGFyMzItYmFzZWQgY29kZSB3aGVuIFVDaGFyYWN0ZXIuZGlnaXQKKyAgICAgICAgICAgICAgICAvLyBpcyB3b3JraW5nIChCdWcgNjYpLgorCisgICAgICAgICAgICAgICAgLy9jID0gVVRGMTYuY2hhckF0KHMsIG9mZnNldCk7CisgICAgICAgICAgICAgICAgLy9kaWcgPSBVQ2hhcmFjdGVyLmRpZ2l0KGMsIChiaXRzUGVyRGlnaXQgPT0gMykgPyA4IDogMTYpOworICAgICAgICAgICAgICAgIGMgPSBzLmNoYXJBdChvZmZzZXQpOworICAgICAgICAgICAgICAgIGRpZyA9IENoYXJhY3Rlci5kaWdpdCgoY2hhciljLCAoYml0c1BlckRpZ2l0ID09IDMpID8gOCA6IDE2KTsKKyAgICAgICAgICAgICAgICBpZiAoZGlnIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gKHJlc3VsdCA8PCBiaXRzUGVyRGlnaXQpIHwgZGlnOworICAgICAgICAgICAgICAgIC8vb2Zmc2V0ICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICArK29mZnNldDsKKyAgICAgICAgICAgICAgICArK247CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobiA8IG1pbkRpZykgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9mZnNldDE2WzBdID0gb2Zmc2V0OworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIENvbnZlcnQgQy1zdHlsZSBlc2NhcGVzIGluIHRhYmxlICovCisgICAgICAgIGZvciAoaT0wOyBpPFVORVNDQVBFX01BUC5sZW5ndGg7IGkrPTIpIHsKKyAgICAgICAgICAgIGlmIChjID09IFVORVNDQVBFX01BUFtpXSkgeworICAgICAgICAgICAgICAgIG9mZnNldDE2WzBdID0gb2Zmc2V0OworICAgICAgICAgICAgICAgIHJldHVybiBVTkVTQ0FQRV9NQVBbaSsxXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA8IFVORVNDQVBFX01BUFtpXSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogSWYgbm8gc3BlY2lhbCBmb3JtcyBhcmUgcmVjb2duaXplZCwgdGhlbiBjb25zaWRlcgorICAgICAgICAgKiB0aGUgYmFja3NsYXNoIHRvIGdlbmVyaWNhbGx5IGVzY2FwZSB0aGUgbmV4dCBjaGFyYWN0ZXIuICovCisgICAgICAgIG9mZnNldDE2WzBdID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGFsbCBlc2NhcGVzIGluIGEgZ2l2ZW4gc3RyaW5nIHVzaW5nIHVuZXNjYXBlQXQoKS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbiBpbnZhbGlkIGVzY2FwZSBpcworICAgICAqIHNlZW4uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdW5lc2NhcGUoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50W10gcG9zID0gbmV3IGludFsxXTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSsrKTsKKyAgICAgICAgICAgIGlmIChjID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICBwb3NbMF0gPSBpOworICAgICAgICAgICAgICAgIGludCBlID0gdW5lc2NhcGVBdChzLCBwb3MpOworICAgICAgICAgICAgICAgIGlmIChlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnN1YnN0cmluZyhpLTEsIE1hdGgubWluKGkrOCwgcy5sZW5ndGgoKSkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgZSk7CisgICAgICAgICAgICAgICAgaSA9IHBvc1swXTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbG9hZChSZWFkZXIgaW5wdXRSZWFkZXIpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFBvc2l4Q2hhck1hcCBvbGRNYXAgPSBTeW1ib2xUcmFuc2l0aW9uLmdldENoYXJNYXAoKTsKKyAgICAgICAgU3ltYm9sVHJhbnNpdGlvbi5zZXRDaGFyTWFwKG51bGwpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmluYWwgaW50IFRPS0VOID0gMTsKKyAgICAgICAgICAgIGZpbmFsIGludCBFT0YgPSAyOworICAgICAgICAgICAgZmluYWwgaW50IEVPTCA9IDM7CisgICAgICAgICAgICBmaW5hbCBpbnQgUkFOR0UgPSA0OworICAgICAgICAgICAgZmluYWwgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlczEgPSB7CisgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDA6IHN0YXJ0CisgICAgICAgICAgICAgICAgICAgIG5ldyBTcGFjZVRyYW5zaXRpb24oMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBFT0xUcmFuc2l0aW9uKEVPTCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihFT0YpLAorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeyAgIC8vZ3JhYiBmaXJzdCB3b3JkCisgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihTcGFjZVRyYW5zaXRpb24uU1BBQ0VfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgVE9LRU4pLAorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oRU9MVHJhbnNpdGlvbi5FT0xfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgVE9LRU4pLAorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oVE9LRU4pLAorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIGZpbmFsIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXMyID0geworICAgICAgICAgICAgICAgIHsgICAvL1RoZXNlIHN0YXRlcyBvbmx5IHJldHVybiA8c3ltYm9scz4uICBBbGwKKyAgICAgICAgICAgICAgICAgICAgLy9vdGhlciB0ZXh0IGlzIGlnbm9yZWQuCisgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguRU9GVHJhbnNpdGlvbihFT0YpLAorICAgICAgICAgICAgICAgICAgICBuZXcgRU9MVHJhbnNpdGlvbihFT0wpLAorICAgICAgICAgICAgICAgICAgICBuZXcgU3ltYm9sVHJhbnNpdGlvbihUT0tFTiksCisgICAgICAgICAgICAgICAgICAgIG5ldyBTcGFjZVRyYW5zaXRpb24oMCksCisgICAgICAgICAgICAgICAgICAgIG5ldyBSYW5nZVRyYW5zaXRpb24oUkFOR0UpLAorICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkRlZmF1bHRUcmFuc2l0aW9uKExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIDApCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH07CisgICAgICAgIAorICAgICAgICAgICAgUHVzaGJhY2tSZWFkZXIgaW5wdXQgPSBuZXcgUHVzaGJhY2tSZWFkZXIoaW5wdXRSZWFkZXIpOworICAgICAgICAgICAgTGV4IHAgPSBuZXcgTGV4KHN0YXRlczEsIGlucHV0KTsKKyAgICAgICAgICAgIGludCBzdGF0ZTsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICB9IHdoaWxlICgoc3RhdGUgIT0gRU9GKSAmJiAhcC5kYXRhRXF1YWxzKCJDSEFSTUFQIikpOworICAgICAgICAgICAgcC5hY2NlcHQoRU9MKTsKKyAgICAgICAgICAgIGlmIChzdGF0ZSAhPSBFT0YgKSB7CisgICAgICAgICAgICAgICAgcCA9IG5ldyBMZXgoc3RhdGVzMiwgaW5wdXQpOworICAgICAgICAgICAgICAgIHN0YXRlID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoc3RhdGUgIT0gRU9GICkgeworCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSBwLmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYocC5kYXRhRXF1YWxzKCJFTkRDSEFSTUFQIikpeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc3RhdGUgPT0gRU9MKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihwLmRhdGFFcXVhbHMoIkVORENIQVJNQVAiKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGF0YSA9IHVuZXNjYXBlKHAuZ2V0RGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEudHJpbSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc3RhcnRzV2l0aCgiPFUiKSB8fCBkYXRhLnN0YXJ0c1dpdGgoIiNVIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbnVtRGF0YSA9IGRhdGEuc3Vic3RyaW5nKDIsZGF0YS5sZW5ndGgoKS0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGlnaXQgPSBJbnRlZ2VyLnBhcnNlSW50KG51bURhdGEsIDE2KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVNYXBwaW5nKGtleSwgIiIrKGNoYXIpZGlnaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoZGF0YS5zdGFydHNXaXRoKCJcXHgiKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIGVuY0RhdGEgPSBuZXcgYnl0ZVsxMDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW0gPSBoZXhUb0J5dGUoZGF0YSxlbmNEYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdERhdGEgPSBuZXcgU3RyaW5nKGVuY0RhdGEsMCxudW0sZW5jb2RpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZU1hcHBpbmcoa2V5LHREYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZU1hcHBpbmcoa2V5LGJ5dGVUb0NoYXIoZGF0YSxlbmNvZGluZykpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAgICAga2V5PXAuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgLy8gd2UgY29tZSBoZXJlIG9ubHkgaWYgdGhlcmUgaXMgYSByYW5nZSB0cmFuc2l0aW9uCisgICAgICAgICAgICAgICAgICAgICBpZiggc3RhdGUgPT1SQU5HRSl7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBiZWdpbiA9IGtleTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGVuZCA9IHAuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHAubmV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGF0YSA9IHAuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlW10gZW5jRGF0YSA9IG5ldyBieXRlWzZdOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bSA9IGhleFRvQnl0ZShkYXRhLGVuY0RhdGEpOworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHREYXRhID0gbmV3IFN0cmluZyhlbmNEYXRhLDAsbnVtLGVuY29kaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzdHJpbmdWYWw7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSB2YWwgPSBnZXRJbnQoYmVnaW4pOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJlZ2luUmFuZ2UgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZFJhbmdlID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHZhbCA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBnZXRJbnQoKFN0cmluZyl0YWJsZS5nZXQoYmVnaW4pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWwhPW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpblJhbmdlID0gdmFsWzFdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9IGdldEludChlbmQpOyAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYodmFsID09IG51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9IGdldEludCgoU3RyaW5nKXRhYmxlLmdldChlbmQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWwhPW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRSYW5nZSA9IHZhbFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdWYWwgPSBrZXkuc3Vic3RyaW5nKDAsdmFsWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBkaWdpdCA9IChpbnQpKGNoYXIpdERhdGEuY2hhckF0KDApOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUoYmVnaW5SYW5nZSA8PSBlbmRSYW5nZSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lTWFwcGluZygoc3RyaW5nVmFsK2JlZ2luUmFuZ2UrIj4iKSwiIisoY2hhcilkaWdpdCsrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpblJhbmdlKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gcC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleT1wLmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vc3RhdGUgPSBwLm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoRU9GRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIFN5bWJvbFRyYW5zaXRpb24uc2V0Q2hhck1hcChvbGRNYXApOworICAgICAgICB9CisgICAgfQorICAgIHB1YmxpYyBpbnRbXSBnZXRJbnQoU3RyaW5nIGRhdGEpeworICAgICAgICBpZihkYXRhID09IG51bGwpeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgaW50IGk9MDsKKyAgICAgICAgaW50W10gcmV0VmFsID0gbmV3IGludFsyXTsKKyAgICAgICAgaW50IGxlbiA9ZGF0YS5sZW5ndGgoKTsKKyAgICAgICAgd2hpbGUoaTwgbGVuKXsKKyAgICAgICAgICAgIGlmKChkYXRhLmNoYXJBdChpKSktMHgzMCA8ICgweDM5LTB4MzApKXsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGkrKzsKKyAgICAgICAgfQorICAgICAgICBpZihpIDwgbGVuKXsKKyAgICAgICAgICAgIFN0cmluZyBzdWIgPWRhdGEuc3Vic3RyaW5nKGksbGVuLTEpOworICAgICAgICAgICAgcmV0VmFsWzBdID1pOworICAgICAgICAgICAgcmV0VmFsWzFdPUludGVnZXIucGFyc2VJbnQoc3ViLDEwKTsKKyAgICAgICAgICAgIHJldHVybiByZXRWYWw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIHB1YmxpYyBpbnQgaGV4VG9CeXRlKFN0cmluZyBkYXRhLCBieXRlW10gcmV0dmFsKXsKKyAgICAgICAgU3RyaW5nIHREYXRhID0gZGF0YTsKKyAgICAgICAgaW50IGk9MDsKKyAgICAgICAgZm9yKGk9MDtpIDwgZGF0YS5sZW5ndGgoKS80OyBpKyspeworICAgICAgICAgICAgaWYodERhdGEuY2hhckF0KDApPT0nXFwnICYmIHREYXRhLmNoYXJBdCgxKT09J3gnKXsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbnVtRGF0YSA9IHREYXRhLnN1YnN0cmluZygyLDQpOworICAgICAgICAgICAgICAgIHJldHZhbFtpXSA9IChieXRlKSBJbnRlZ2VyLnBhcnNlSW50KG51bURhdGEsMTYpOworICAgICAgICAgICAgICAgIHREYXRhID0gdERhdGEuc3Vic3RyaW5nKDQsdERhdGEubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgIAorICAgICAgICByZXR1cm4gaTsKKyAgICB9ICAKKyAgICBwdWJsaWMgU3RyaW5nIGJ5dGVUb0NoYXIoU3RyaW5nIGRhdGEsIFN0cmluZyBlbmNvZGluZykgCisgICAgICAgIHRocm93cyBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9ueworICAgICAgICAKKyAgICAgICAgYnl0ZVtdIGJ5dGVzID0gbmV3IGJ5dGVbZGF0YS5sZW5ndGgoKV07CisgICAgICAgIGZvcihpbnQgaT0wOyBpPGRhdGEubGVuZ3RoKCk7IGkrKyl7CisgICAgICAgICAgICBjaGFyIGNoID0gZGF0YS5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZihjaCA+IDB4RkYpeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJCeXRlcyBpbiB0aGUgc3RyaW5nIGFyZSBncmVhdGVyIHRoYW4gMHhGRiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnl0ZXNbaV0gPSAoYnl0ZSkgY2g7ICAgICAgICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhieXRlcyxlbmNvZGluZyk7CisgICAgfSAgICAgIAorICAgIHB1YmxpYyB2b2lkIGRlZmluZU1hcHBpbmcoU3RyaW5nIGZyb20sIFN0cmluZyB0bykgeworICAgICAgICB0YWJsZS5wdXQoZnJvbSwgdG8pOworICAgICAgICBiYWNrVGFibGUgPSBudWxsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHVuZGVmaW5lTWFwcGluZyhTdHJpbmcgZnJvbSkgeworICAgICAgICB0YWJsZS5yZW1vdmUoZnJvbSk7CisgICAgICAgIGJhY2tUYWJsZSA9IG51bGw7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc3dhcCgpIHsKKyAgICAgICAgSGFzaHRhYmxlIG5ld1RhYmxlID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBFbnVtZXJhdGlvbiBlbnVtZXIgPSB0YWJsZS5rZXlzKCk7CisgICAgICAgIHdoaWxlIChlbnVtZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKWVudW1lci5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgU3RyaW5nIGNvZGUgPSAoU3RyaW5nKXRhYmxlLmdldChrZXkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgbmV3S2V5ID0gdG9TeW1ib2woY29kZSk7CisgICAgICAgICAgICBTdHJpbmcgbmV3Q29kZSA9IHRvTGl0ZXJhbChrZXkpOworICAgICAgICAgICAgU3RyaW5nIHByZXZDb2RlID0gKFN0cmluZyluZXdUYWJsZS5nZXQobmV3S2V5KTsKKyAgICAgICAgICAgIGlmIChwcmV2Q29kZSA9PSBudWxsIHx8IHByZXZDb2RlLmNvbXBhcmVUbyhuZXdDb2RlKSA+IDApIHsKKyAgICAgICAgICAgICAgICBuZXdUYWJsZS5wdXQobmV3S2V5LCBuZXdDb2RlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0YWJsZSA9IG5ld1RhYmxlOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFN0cmluZyB0b0xpdGVyYWwoU3RyaW5nIGNvZGUpIHsKKyAgICAgICAgU3RyaW5nIGRhdGEgPSBjb2RlLnN1YnN0cmluZygyLGNvZGUubGVuZ3RoKCktMSk7CisgICAgICAgIGludCBkaWdpdCA9IEludGVnZXIucGFyc2VJbnQoZGF0YSwgMTYpOworICAgICAgICByZXR1cm4gIiIgKyAoY2hhcilkaWdpdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgdG9TeW1ib2woU3RyaW5nIGNvZGUpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGVzY2FwZUJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZXNjYXBlQnVmZmVyLmFwcGVuZCgiPiIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvZGUubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaW50IHZhbHVlID0gKChpbnQpY29kZS5jaGFyQXQoaSkpICYgMHhGRkZGOworICAgICAgICAgICAgd2hpbGUgKCh2YWx1ZSA+IDApIHx8IChlc2NhcGVCdWZmZXIubGVuZ3RoKCkgPCA1KSkgeworICAgICAgICAgICAgICAgIGNoYXIgZGlnaXQgPSBDaGFyYWN0ZXIuZm9yRGlnaXQodmFsdWUgJSAxNiwgMTYpOworICAgICAgICAgICAgICAgIGVzY2FwZUJ1ZmZlci5hcHBlbmQoZGlnaXQpOworICAgICAgICAgICAgICAgIHZhbHVlID4+PSA0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVzY2FwZUJ1ZmZlci5hcHBlbmQoIlU8Iik7CisgICAgICAgIGVzY2FwZUJ1ZmZlci5yZXZlcnNlKCk7CisgICAgICAgIHJldHVybiBlc2NhcGVCdWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgZHVtcChQcmludFN0cmVhbSBvdXQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGVzY2FwZUJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgRW51bWVyYXRpb24gZW51bWVyID0gdGFibGUua2V5cygpOworICAgICAgICB3aGlsZSAoZW51bWVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZyllbnVtZXIubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIFN0cmluZyBjb2RlID0gKFN0cmluZyl0YWJsZS5nZXQoa2V5KTsKKyAgICAgICAgICAgIG91dC5wcmludChrZXkpOworICAgICAgICAgICAgb3V0LnByaW50KCIgICAgICAgPFUiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29kZS5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgaW50IHZhbHVlID0gKChpbnQpY29kZS5jaGFyQXQoaSkpICYgMHhGRkZGOworICAgICAgICAgICAgICAgIGVzY2FwZUJ1ZmZlci5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKCh2YWx1ZSA+IDApIHx8IChlc2NhcGVCdWZmZXIubGVuZ3RoKCkgPCA0KSkgeworICAgICAgICAgICAgICAgICAgICBjaGFyIGRpZ2l0ID0gQ2hhcmFjdGVyLmZvckRpZ2l0KHZhbHVlICUgMTYsIDE2KTsKKyAgICAgICAgICAgICAgICAgICAgZXNjYXBlQnVmZmVyLmFwcGVuZChkaWdpdCk7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID4+PSA0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlc2NhcGVCdWZmZXIucmV2ZXJzZSgpOworICAgICAgICAgICAgICAgIG91dC5wcmludChlc2NhcGVCdWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigiPiIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBtYXBLZXkoZmluYWwgU3RyaW5nIGtleSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gKFN0cmluZyl0YWJsZS5nZXQoa2V5KTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICBpZiAocGFyZW50TWFwICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBwYXJlbnRNYXAubWFwS2V5KGtleSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGtleTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGJhY2ttYXBWYWx1ZShmaW5hbCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgaWYgKGJhY2tUYWJsZSA9PSBudWxsKSB7CisgICAgICAgICAgICBiYWNrVGFibGUgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgICAgICBFbnVtZXJhdGlvbiBlbnVtZXIgPSB0YWJsZS5rZXlzKCk7CisgICAgICAgICAgICB3aGlsZSAoZW51bWVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpZW51bWVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZhbCA9IChTdHJpbmcpdGFibGUuZ2V0KGtleSk7CisgICAgICAgICAgICAgICAgYmFja1RhYmxlLnB1dCh2YWwsIGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IChTdHJpbmcpYmFja1RhYmxlLmdldCh2YWx1ZSk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHBhcmVudE1hcCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gcGFyZW50TWFwLmJhY2ttYXBWYWx1ZSh2YWx1ZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7ICAgICAgCisgICAgfQorCisgICAgcHVibGljIEVudW1lcmF0aW9uIGtleXMoKSB7CisgICAgICAgIHJldHVybiB0YWJsZS5rZXlzKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBlbGVtZW50cygpIHsKKyAgICAgICAgcmV0dXJuIHRhYmxlLmVsZW1lbnRzKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFBvc2l4Q2hhck1hcCBtYXAxID0gbmV3IFBvc2l4Q2hhck1hcCgKKyAgICAgICAgICAgICAgICAiQzpcXHByb2plY3RzXFxjb21cXHRhbGlnZW50XFxsb2NhbGVjb252ZXJ0ZXJcXENoYXJNYXBzIiwKKyAgICAgICAgICAgICAgICAiSUJNLTExMjkuVVBNQVAxMDAudHh0Iik7CisgICAgICAgICAgICBtYXAxLnN3YXAoKTsKKyAgICAgICAgICAgIG1hcDEuZHVtcChTeXN0ZW0ub3V0KTsKKyAgICAgICAgCisgICAgICAgICAgICBTeW1ib2xUcmFuc2l0aW9uLnNldENoYXJNYXAobWFwMSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIAorICAgICAgICAgICAgLy9Qb3NpeENoYXJNYXAgbWFwID0gbmV3IFBvc2l4Q2hhck1hcCgiQzpcXHByb2plY3RzXFxkYXRhXFxJU08tODg1OS0xLmh0bWwiKTsKKyAgICAgICAgICAgIFBvc2l4Q2hhck1hcCBtYXAgPSBuZXcgUG9zaXhDaGFyTWFwKAorICAgICAgICAgICAgICAgICJDOlxccHJvamVjdHNcXGNvbVxcdGFsaWdlbnRcXGxvY2FsZWNvbnZlcnRlclxcQ2hhck1hcHMiLAorICAgICAgICAgICAgICAgICJpYm0xMTI5LnR4dCIpOworICAgICAgICAgICAgbWFwLmR1bXAoU3lzdGVtLm91dCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUG9zaXhDb2xsYXRpb25CdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Bvc2l4Q29sbGF0aW9uQnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAxMzlmZmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Bvc2l4Q29sbGF0aW9uQnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsMzk2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworIAorcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CitpbXBvcnQgamF2YS51dGlsLio7CisKK2NsYXNzIFBvc2l4Q29sbGF0aW9uQnVpbGRlciB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9XRUlHSFRTID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0NPTVBPU0lUSU9OID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbmV4dENoYXJOdW1iZXIgPSAxOworICAgIHByaXZhdGUgSGFzaHRhYmxlIHdlaWdodFN5bWJvbHMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgcHJpdmF0ZSBIYXNodGFibGUgY29udHJhY3Rpb25zID0gbmV3IEhhc2h0YWJsZSgpOworICAgIHByaXZhdGUgSGFzaHRhYmxlIHJ1bGVzID0gbmV3IEhhc2h0YWJsZSgpOworICAgIHByaXZhdGUgQ29sbGF0aW9uUnVsZSBsYXN0UnVsZSA9IG51bGw7CisgICAgcHJpdmF0ZSBQb3NpeENoYXJNYXAgbWFwOworICAgIHByaXZhdGUgU29ydGVkVmVjdG9yIG9yZGVyOworICAgIHByaXZhdGUgc3RhdGljIGludCBGSVJTVF9XRUlHSFRfQ0hBUiA9IDB4MDAwMEY3RkY7CisgICAgcHJpdmF0ZSBpbnQgbmV4dFdlaWdodENoYXIgPSBGSVJTVF9XRUlHSFRfQ0hBUjsKKyAgICBwcml2YXRlIENvbGxhdGlvblJ1bGUgaWdub3JlUnVsZTsgICAvL3J1bGUgZm9yIHRoZSBjb2xsYXRpbmctc3ltYm9sIElHTk9SRQorICAgIAorICAgIHB1YmxpYyBjbGFzcyBDb2xsYXRpb25SdWxlIHsKKyAgICAgICAgaW50IGNoYXJOdW1iZXI7CisgICAgICAgIFN0cmluZyB2YWx1ZTsKKyAgICAgICAgaW50IG5leHRXZWlnaHQgPSAwOworICAgICAgICBTdHJpbmdbXSB3ZWlnaHRTb3VyY2UgPSBuZXcgU3RyaW5nW01BWF9XRUlHSFRTXTsKKyAgICAgICAgaW50IHdlaWdodFtdW10gPSBudWxsOworICAgICAgICBTdHJpbmdCdWZmZXIgc291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAKKyAgICAgICAgcHVibGljIENvbGxhdGlvblJ1bGUoU3RyaW5nIHN5bWJvbCkgeworICAgICAgICAgICAgY2hhck51bWJlcj0gbmV4dENoYXJOdW1iZXIrKzsKKyAgICAgICAgICAgIHZhbHVlID0gc3ltYm9sOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNQVhfV0VJR0hUUzsgaSsrKSB7CisgICAgICAgICAgICAgICAgd2VpZ2h0U291cmNlW2ldID0gc3ltYm9sOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc291cmNlLmFwcGVuZChtYXAuYmFja21hcFZhbHVlKHN5bWJvbCkpOworICAgICAgICAgICAgc291cmNlLmFwcGVuZCgiXHRcdCIpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgQ29sbGF0aW9uUnVsZShDb2xsYXRpb25SdWxlIG90aGVyLCBpbnQgY29tcG9zaXRpb24pIHsKKyAgICAgICAgICAgIGNoYXJOdW1iZXIgPSBvdGhlci5jaGFyTnVtYmVyOworICAgICAgICAgICAgdmFsdWUgPSBvdGhlci52YWx1ZTsKKyAgICAgICAgICAgIG5leHRXZWlnaHQgPSBvdGhlci5uZXh0V2VpZ2h0OworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNQVhfV0VJR0hUUzsgaSsrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IG90aGVyLndlaWdodFNvdXJjZVtpXTsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlLmxlbmd0aCgpID4gY29tcG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgd2VpZ2h0U291cmNlW2ldID0gIiIrc291cmNlLmNoYXJBdChjb21wb3NpdGlvbik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgd2VpZ2h0U291cmNlW2ldID0gdmFsdWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgCisgICAgICAgLy9IZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciBteVRyYW5zbGl0ID0gbmV3IEhleFRvVW5pY29kZVRyYW5zbGl0ZXJhdG9yKCI8VSMjIzA+Iik7CisgICAgICAgIHB1YmxpYyB2b2lkIGFkZFdlaWdodChTdHJpbmcgc3ltYm9sKSB7CisgICAgICAgICAvLyAgIFJlcGxhY2VhYmxlU3RyaW5nIHRTeW1ib2wgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoc3ltYm9sKTsKKyAgICAgICAgICAgLy8gbXlUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRTeW1ib2wpOworICAgICAgICAgICAgICAgIC8vbGltaXQgdGhlIHNpemUgb2YgYSBzaW5nbGUgd2VpZ2h0CisgICAgICAgICAgICBzeW1ib2wgPSB1bmVzY2FwZShzeW1ib2wpOyAgICAKKyAgICAgICAgICAgIGlmIChzeW1ib2wubGVuZ3RoKCkgPiBNQVhfQ09NUE9TSVRJT04pIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldBUk5JTkc6IFdlaWdodHMgb2YgY29tcG9zaXRpb24gZ3JlYXRlciB0aGFuICIrTUFYX0NPTVBPU0lUSU9OKyIgd2VyZSB0cnVuY2F0ZWQuIik7CisgICAgICAgICAgICAgICAgc3ltYm9sID0gc3ltYm9sLnN1YnN0cmluZygwLCBNQVhfQ09NUE9TSVRJT04pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vbGltaXQgdGhlIG51bWJlciBvZiB3ZWlnaHRzCisgICAgICAgICAgICBpZiAobmV4dFdlaWdodCA8IE1BWF9XRUlHSFRTKSB7CisgICAgICAgICAgICAgICAgaWYgKG5leHRXZWlnaHQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hcHBlbmQoIjsiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzeW1ib2wubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzb3VyY2UuYXBwZW5kKG1hcC5iYWNrbWFwVmFsdWUoIiIrc3ltYm9sLmNoYXJBdChpKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3ZWlnaHRTb3VyY2VbbmV4dFdlaWdodCsrXSA9IHN5bWJvbDsKKyAgICAgICAgICAgICAgICB3ZWlnaHQgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShDb2xsYXRpb25SdWxlIG90aGVyKSB7CisgICAgICAgICAgICBpZiAob3RoZXIgPT0gbnVsbCkgcmV0dXJuIGNvbXBhcmUoaWdub3JlUnVsZSk7CisgICAgICAgICAgICByZXNvbHZlV2VpZ2h0cygpOworICAgICAgICAgICAgb3RoZXIucmVzb2x2ZVdlaWdodHMoKTsKKyAgICAgICAgICAgIGludCBjb21wYXJlU2l6ZSA9IE1hdGgubWluKGdldFNpemUoKSwgb3RoZXIuZ2V0U2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgY29tcGFyZVNpemU7IGorKykgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTUFYX1dFSUdIVFM7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpbnQgZGlmZiA9IHdlaWdodFtqXVtpXSAtIG90aGVyLndlaWdodFtqXVtpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZmYgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLShpKzEpOworICAgICAgICAgICAgICAgICAgICB9IGlmIChkaWZmID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGkrMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBnZXRTaXplKCkgLSBvdGhlci5nZXRTaXplKCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNNdWx0aVdlaWdodCgpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRTaXplKCkgPiAxOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBpbnQgZ2V0U2l6ZSgpIHsKKyAgICAgICAgICAgIGludCBzaXplID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgd2VpZ2h0U291cmNlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgc2l6ZSA9IE1hdGgubWF4KHNpemUsIHdlaWdodFNvdXJjZVtpXS5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gc2l6ZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgQ29sbGF0aW9uUnVsZSBnZXRDb21wb25lbnQoaW50IG5keCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBDb2xsYXRpb25SdWxlKHRoaXMsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRWYWx1ZSgpIHsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFN5bWJvbCgpIHsKKyAgICAgICAgICAgIFN0cmluZyBuZXdWYWx1ZSA9IGlzQ29udHJhY3Rpb24oKTsKKyAgICAgICAgICAgIGlmIChuZXdWYWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1ZhbHVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBuZXdWYWx1ZSA9IGlzV2VpZ2h0U3ltYm9sKCk7CisgICAgICAgICAgICAgICAgaWYgKG5ld1ZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld1ZhbHVlOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRTb3VyY2UoKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgaXNDb250cmFjdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiAoU3RyaW5nKWNvbnRyYWN0aW9ucy5nZXQodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGlzV2VpZ2h0U3ltYm9sKCkgeworICAgICAgICAgICAgcmV0dXJuIChTdHJpbmcpd2VpZ2h0U3ltYm9scy5nZXQodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBDb2xsYXRpb25SdWxlIHNlZWtzVG9SdWxlKCkgeworICAgICAgICAgICAgQ29sbGF0aW9uUnVsZSBjb21wOworICAgICAgICAgICAgaWYgKGdldFNpemUoKSA8PSAxKSB7CisgICAgICAgICAgICAgICAgY29tcCA9IHRoaXM7ICAgIC8vc2F2ZSBhbiBvYmplY3QgY3JlYXRpb24KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY29tcCA9IGdldENvbXBvbmVudCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBuZHggPSBvcmRlci5pbmRleE9mKGNvbXApOworICAgICAgICAgICAgaWYgKG5keCA9PSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIENvbGxhdGlvblJ1bGUgZXhwOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwID0gKENvbGxhdGlvblJ1bGUpb3JkZXIuZWxlbWVudEF0KG5keC0tKTsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChuZHggPiAwICYmIGV4cC5nZXRTaXplKCkgPiAxKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZXhwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RXhwYW5zaW9uKCkgeworICAgICAgICAgICAgaWYgKGdldFNpemUoKSA8PSAxKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBleHBhbnNpb24gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBnZXRTaXplKCk7IGorKykgeworICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25SdWxlIGNvbXAgPSBnZXRDb21wb25lbnQoaik7CisgICAgICAgICAgICAgICAgICAgIGludCBuZHggPSBvcmRlci5pbmRleE9mKGNvbXApOworICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25SdWxlIGV4cDsKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgZXhwID0gKENvbGxhdGlvblJ1bGUpb3JkZXIuZWxlbWVudEF0KG5keC0tKTsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAobmR4ID49IDAgJiYgZXhwLmdldFNpemUoKSA+IDEpOworICAgICAgICAgICAgICAgICAgICBleHBhbnNpb24uYXBwZW5kKGV4cC5nZXRTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBleHBhbnNpb24udG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS50b1N0cmluZygpOworLyogICAgICAgICAgcmVzb2x2ZVdlaWdodHMoKTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGNoYXJOdW1iZXIpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgnICcpOworICAgICAgICAgICAgYnVmLmFwcGVuZCh2YWx1ZSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGdldFN5bWJvbCgpKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJyAnKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGlzV2VpZ2h0U3ltYm9sKCkgIT0gbnVsbCk/IlciOiIgIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1BWF9XRUlHSFRTOyBpKyspIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHdlaWdodFNvdXJjZVtpXSk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnICcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBnZXRTaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlsgIik7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBNQVhfV0VJR0hUUzsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIGludCB3ID0gd2VpZ2h0W2ldW2pdOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHcpOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoJ10nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyovCisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHJlc29sdmVXZWlnaHRzKCkgeworICAgICAgICAgICAgaWYgKHdlaWdodCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgd2VpZ2h0ID0gbmV3IGludFtNQVhfQ09NUE9TSVRJT05dW01BWF9XRUlHSFRTXTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE1BWF9XRUlHSFRTOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN5bWJvbCA9IHdlaWdodFNvdXJjZVtqXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN5bWJvbC5sZW5ndGgoKSA8PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHRbMF1bal0gPSBvcmRpbmFsaXR5T2Yoc3ltYm9sKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHN5bWJvbC5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjID0gc3ltYm9sLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHRbaV1bal0gPSBvcmRpbmFsaXR5T2YoIiIrYyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIFBvc2l4Q29sbGF0aW9uQnVpbGRlcihQb3NpeENoYXJNYXAgbWFwKSB7CisgICAgICAgIHRoaXMubWFwID0gbWFwOworICAgICAgICBTdHJpbmcgaWdub3JlU3ltYm9sID0gZGVmaW5lV2VpZ2h0U3ltYm9sKCJJR05PUkUiKTsKKyAgICAgICAgaWdub3JlUnVsZSA9IG5ldyBDb2xsYXRpb25SdWxlKGlnbm9yZVN5bWJvbCk7CisgICAgICAgIHJ1bGVzLnB1dChpZ25vcmVTeW1ib2wsIGlnbm9yZVJ1bGUpOworICAgICAgICBsYXN0UnVsZSA9IGlnbm9yZVJ1bGU7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworLy99fQorfQorCisgICAgcHVibGljIFN0cmluZyBkZWZpbmVXZWlnaHRTeW1ib2woU3RyaW5nIHN5bWJvbCkgeworICAgICAgICBvcmRlciA9IG51bGw7CisgICAgICAgIFN0cmluZyBjID0gbmV4dEZyZWVXZWlnaHRDaGFyKCk7CisgICAgICAgIG1hcC5kZWZpbmVNYXBwaW5nKHN5bWJvbCwgYyk7CisgICAgICAgIHdlaWdodFN5bWJvbHMucHV0KGMsIHN5bWJvbCk7CisgICAgICAgIHdlaWdodFN5bWJvbHMucHV0KHN5bWJvbCwgYyk7CisgICAgICAgIHJldHVybiBjOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGRlZmluZUNvbnRyYWN0aW9uKFN0cmluZyBzeW1ib2wsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBvcmRlciA9IG51bGw7CisgICAgICAgIFN0cmluZyBjID0gbmV4dEZyZWVXZWlnaHRDaGFyKCk7CisgICAgICAgIG1hcC5kZWZpbmVNYXBwaW5nKHN5bWJvbCwgYyk7CisgICAgICAgIGNvbnRyYWN0aW9ucy5wdXQoYywgdmFsdWUpOworICAgICAgICByZXR1cm4gYzsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgbmV4dEZyZWVXZWlnaHRDaGFyKCkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gIiI7CisgICAgICAgIFN0cmluZyBtYXBwZWRTb3VyY2U7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIHJlc3VsdCA9ICIiKyhjaGFyKW5leHRXZWlnaHRDaGFyLS07CisgICAgICAgICAgICBtYXBwZWRTb3VyY2UgPSBtYXAuYmFja21hcFZhbHVlKHJlc3VsdCk7CisgICAgICAgIH0gd2hpbGUgKHJlc3VsdCAhPSBtYXBwZWRTb3VyY2UpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAvKioKKyAgICAgKiB1bmVzY2FwZSBhIHN0cmluZyBpbiB0aGUgZm9ybWF0IDxVIyMjIz4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB1bmVzY2FwZShTdHJpbmcgc3JjKXsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IG1heERpZyA9IDQ7CisgICAgICAgIGlmKHNyYyA9PSBudWxsKXsKKyAgICAgICAgICAgIHJldHVybiBzcmM7CisgICAgICAgIH0KKyAgICAgICAgaW50IHNyY0xlbj0gc3JjLmxlbmd0aCgpOworICAgICAgICBmb3IoaW50IGk9MDsgaTxzcmNMZW47aSsrKXsKKyAgICAgICAgICAgIGNoYXIgYyA9IHNyYy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZihjID09ICc8Jyl7CisgICAgICAgICAgICAgICBpZihzcmNMZW4gPiBpKzEpeworICAgICAgICAgICAgICAgICAgIGNoYXIgYzIgPSBzcmMuY2hhckF0KCsraSk7CisgICAgICAgICAgICAgICAgICAgaWYoYzIgPT0gJ1UnICYmIChpK21heERpZysxKTwgc3JjTGVuKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBzcmMuY2hhckF0KGkrbWF4RGlnKT09ICc+Jyl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN1YlN0ciA9IHNyYy5zdWJzdHJpbmcoaSxpK21heERpZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyIHZhbCA9IEludGVnZXIudmFsdWVPZihzdWJTdHIsMTYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKSB2YWwuaW50VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1jYXRjaChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzdWJTdHIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpICs9IG1heERpZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzcmMuY2hhckF0KGkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldBUk5JTkc6IFRoZSBlc2NhcGUgc2VxdWVuY2UgaXMgbm90IHRlcm1pbmF0ZWQgYXQgIiArIGkgKyIgaW4gc3RyaW5nOiAiICsgc3JjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYzIpOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIHB1YmxpYyBpbnQgb3JkaW5hbGl0eU9mKFN0cmluZyBzeW1ib2wpIHsKKy8vICAgICAgICBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvciBuZXdUcmFuc2xpdCA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigpOworLy8gICAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHRTeW1ib2wgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoc3ltYm9sKTsKKy8vICAgICAgICBuZXdUcmFuc2xpdC50cmFuc2xpdGVyYXRlKHRTeW1ib2wpOworICAgICAgICBzeW1ib2wgPSB1bmVzY2FwZShzeW1ib2wpOworICAgICAgICBDb2xsYXRpb25SdWxlIHcgPSAoQ29sbGF0aW9uUnVsZSlydWxlcy5nZXQoc3ltYm9sKTsKKyAgICAgICAgaWYgKHcgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHcuY2hhck51bWJlcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnQoIkVSUk9SOiBXZWlnaHQgc3ltYm9sIG5vdCBmb3VuZDogIik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgPCBzeW1ib2wubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IHN5bWJvbC5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludCgiXFx1Iik7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludChIRVhfRElHSVRbKGMgJiAweDBGMDAwKSA+PiAxMl0pOyAvLyBIRVhfRElHSVQgd29ya3MgZm9yIG9jdGFsCisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludChIRVhfRElHSVRbKGMgJiAweDBGMDApID4+IDhdKTsgLy8gSEVYX0RJR0lUIHdvcmtzIGZvciBvY3RhbAorICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnQoSEVYX0RJR0lUWyhjICYgMHgwMEYwKSA+PiA0XSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKEhFWF9ESUdJVFsoYyAmIDB4MDAwRildKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiICAgICAgIFdlaWdodCBnaXZlbiBtYXhpbXVtIHBvc3NpYmxlIHZhbHVlLiIpOworICAgICAgICAgICAgcmV0dXJuIEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICB9CisgICAgfQorLy8gICAgSGV4VG9Vbmljb2RlVHJhbnNsaXRlcmF0b3IgbXlUcmFuc2xpdCA9IG5ldyBIZXhUb1VuaWNvZGVUcmFuc2xpdGVyYXRvcigiPFUjIyMwPiIpOworICAgIHB1YmxpYyB2b2lkIGFkZFJ1bGUoU3RyaW5nIHN5bWJvbCkgeworICAvLyAgICAgIFJlcGxhY2VhYmxlU3RyaW5nIHRTeW1ib2wgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoc3ltYm9sKTsKKyAgIC8vICAgICBteVRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodFN5bWJvbCk7CisgICAgICAgIHN5bWJvbCA9IHVuZXNjYXBlKHN5bWJvbCk7CisgICAgICAgIGlmIChzeW1ib2wubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldBUk5JTkc6IFVuZGVmaW5lZCBlbGVtZW50ICciK3N5bWJvbCsiJy4gIGNvbGxhdGluZy1zeW1ib2wgZ2VuZXJhdGVkLiIpOworICAgICAgICAgICAgc3ltYm9sID0gZGVmaW5lV2VpZ2h0U3ltYm9sKHN5bWJvbCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgb3JkZXIgPSBudWxsOworICAgICAgICBsYXN0UnVsZSA9IG5ldyBDb2xsYXRpb25SdWxlKHN5bWJvbCk7CisgICAgICAgIHJ1bGVzLnB1dChzeW1ib2wsIGxhc3RSdWxlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYWRkUnVsZShDb2xsYXRpb25SdWxlIHJ1bGUpIHsKKyAgICAgICAgb3JkZXIgPSBudWxsOworICAgICAgICBsYXN0UnVsZSA9IHJ1bGU7CisgICAgICAgIHJ1bGVzLnB1dChydWxlLnZhbHVlLCBydWxlKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgYWRkV2VpZ2h0KFN0cmluZyB3ZWlnaHQpIHsKKyAgICAgICAgaWYgKHdlaWdodC5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgIC8vY2hlY2sgdG8gc2VlIGlmIGl0J3MgYSBib2d1cyB3ZWlnaHQgc3ltYm9sLgorICAgICAgICAgICAgd2VpZ2h0ID0gbWFwLm1hcEtleSh3ZWlnaHQpOworICAgICAgICB9CisgICAgICAgIG9yZGVyID0gbnVsbDsKKyAgICAgICAgbGFzdFJ1bGUuYWRkV2VpZ2h0KHdlaWdodCk7CisgICAgfQorCisgICAgcHVibGljIEVudW1lcmF0aW9uIGdldFJ1bGVzKCkgeworICAgICAgICByZXR1cm4gcnVsZXMuZWxlbWVudHMoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU29ydGVkVmVjdG9yIGdldFNvcnRPcmRlcigpIHsKKyAgICAgICAgaWYgKG9yZGVyID09IG51bGwpIHsKKyAgICAgICAgICAgIG9yZGVyID0gbmV3IFNvcnRlZFZlY3RvcigKKyAgICAgICAgICAgICAgICBuZXcgQ29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIGludCBjb21wYXJlKGZpbmFsIE9iamVjdCBpLCBmaW5hbCBPYmplY3QgaikgeworICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgQ29sbGF0aW9uUnVsZSBvMSA9IChDb2xsYXRpb25SdWxlKWk7CisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBDb2xsYXRpb25SdWxlIG8yID0gKENvbGxhdGlvblJ1bGUpajsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKG8xICE9bnVsbCAmJiBvMiAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBib29sZWFuIHcxID0gbzEuaXNXZWlnaHRTeW1ib2woKSAhPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGJvb2xlYW4gdzIgPSBvMi5pc1dlaWdodFN5bWJvbCgpICE9IG51bGw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vc29ydCB3ZWlnaHRzIGZpcnN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHcxICYmICF3MikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghdzEgJiYgdzIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG8xLmNvbXBhcmUobzIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICk7CisgICAgICAgICAgICBvcmRlci5hZGRFbGVtZW50cyhydWxlcy5lbGVtZW50cygpKTsKKyAgICAgICAgICAgICAgICAvL3JlbW92ZSB3ZWlnaHQgc3ltYm9scyBmcm9tIHRoZSBsaXN0CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBvcmRlci5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIENvbGxhdGlvblJ1bGUgciA9IChDb2xsYXRpb25SdWxlKW9yZGVyLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICBpZiAoci5pc1dlaWdodFN5bWJvbCgpID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgb3JkZXIucmVtb3ZlRWxlbWVudHMoMCwgaSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9yZGVyOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBjaGFyW10gSEVYX0RJR0lUID0geycwJywnMScsJzInLCczJywnNCcsJzUnLCc2JywnNycsCisgICAgICAgICAgICAgICAgICAgICAnOCcsJzknLCdBJywnQicsJ0MnLCdEJywnRScsJ0YnfTsKKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeFRvTmV1dHJhbENvbnZlcnRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Qb3NpeFRvTmV1dHJhbENvbnZlcnRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM5Y2IwYjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Bvc2l4VG9OZXV0cmFsQ29udmVydGVyLmphdmEKQEAgLTAsMCArMSwxMDU3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGNsYXNzIFBvc2l4VG9OZXV0cmFsQ29udmVydGVyIGV4dGVuZHMgTG9jYWxlQ29udmVydGVyIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTENfQ1RZUEUgICAgICAgICAgID0gMHgwMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTENfVElNRSAgICAgICAgICAgID0gMHgwMjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTENfTlVNRVJJQyAgICAgICAgID0gMHgwNDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTENfTU9ORVRBUlkgICAgICAgID0gMHgwODsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTENfTUVTU0FHRVMgICAgICAgID0gMHgxMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTENfTUVBU1VSRU1FTlQgICAgID0gMHgxMTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTENfQUREUkVTUyAgICAgICAgID0gMHgxMjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTENfUEFQRVIgICAgICAgICAgID0gMHgxMzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTENfTkFNRSAgICAgICAgICAgID0gMHgxNDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTENfSURFTlRJRklDQVRJT04gID0gMHgxNTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTENfVEVMRVBIT05FICAgICAgID0gMHgxNjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlW10gbWFza3MgPSB7IAorICAgICAgICBMQ19DVFlQRSwgTENfVElNRSwgTENfTlVNRVJJQywgTENfTU9ORVRBUlksIExDX01FU1NBR0VTLAorICAgICAgICBMQ19NRUFTVVJFTUVOVCxMQ19BRERSRVNTLExDX1BBUEVSLExDX05BTUUsTENfSURFTlRJRklDQVRJT04sCisgICAgICAgIExDX1RFTEVQSE9ORQorICAgICAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW11bXSBwcm9wcyA9IHsKKyAgICAgICAgLy9MQ19DVFlQRQorICAgICAgICB7IAorICAgICAgICAgICAgInVwcGVyIiwgImxvd2VyIiwgImFscGhhIiwgImRpZ2l0IiwgInNwYWNlIiwgImNudHJsIiwgCisgICAgICAgICAgICAicHVuY3QiLCAiZ3JhcGgiLCAicHJpbnQiLCAieGRpZ2l0IiwgImJsYW5rIiwgCisgICAgICAgICAgICAidG91cHBlciIsICJ0b2xvd2VyIiAKKyAgICAgICAgfSwKKyAgICAgICAgLy9MQ19USU1FCisgICAgICAgIHsKKyAgICAgICAgICAgICJhYmRheSIsICJkYXkiLCAiYWJtb24iLCAibW9uIiwgImRfdF9mbXQiLCAiZF9mdG0iLCAidF9mbXQiLCAKKyAgICAgICAgICAgICJhbV9wbSIsICJ0X2ZtdF9hbXBtIiwgImVyYSIsICJlcmFfeWVhciIsICJlcmFfZF9mbXQiLCAiYWx0X2RpZ2l0cyIKKyAgICAgICAgfSwKKyAgICAgICAgLy9MQ19OVU1FUklDCisgICAgICAgIHsKKyAgICAgICAgICAgICJkZWNpbWFsX3BvaW50IiwgInRob3VzYW5kc19zZXAiLCAiZ3JvdXBpbmciCisgICAgICAgIH0sCisgICAgICAgIC8vTENfTU9ORVRBUlkKKyAgICAgICAgeworICAgICAgICAgICAgImludF9jdXJyX3N5bWJvbCIsICJjdXJyZW5jeV9zeW1ib2wiLCAibW9uX2RlY2ltYWxfcG9pbnQiLAorICAgICAgICAgICAgIm1vbl90aG91c2FuZHNfc2VwIiwgIm1vbl9ncm91cGluZyIsICJwb3NpdGl2ZV9zaWduIiwKKyAgICAgICAgICAgICJuZWdhdGl2ZV9zaWduIiwgImludF9mcmFjX2RpZ2l0cyIsICJmcmFjX2RpZ2l0cyIsICJwX2NzX3ByZWNlZGVzIiwKKyAgICAgICAgICAgICJwX3NlcF9ieV9zcGFjZSIsICJuX2NzX3ByZWNlZGVzIiwgIm5fc2VwX2J5X3NwYWNlIiwgInBfc2lnbl9wb3NuIiwKKyAgICAgICAgfSwKKyAgICAgICAgLy9MQ19NRVNTQUdFUworICAgICAgICB7CisgICAgICAgICAgICAieWVzZXhwciIsICJub2V4cHIiCisgICAgICAgIH0sCisgICAgICAgICAgIAorICAgICAgICAvL0xDX01FQVNVUkVNRU5UCisgICAgICAgIHsKKyAgICAgICAgICAgIm1lYXN1cmVtZW50IgorICAgICAgICB9LAorICAgICAgICAvL0xDX0FERFJFU1MKKyAgICAgICAgeworICAgICAgICAgICAiY29weSIsInBvc3RhbF9mbXQiLCJjb3VudHJ5X25hbWUiLCJjb3VudHJ5X3Bvc3QiLAorICAgICAgICAgICAiY291bnRyeV9hYjIiLCJjb3VudHJ5X2FiMyIsImNvdW50cnlfbnVtIiwiY291bnRyeV9jYXIiLAorICAgICAgICAgICAiY291bnRyeV9pc2JuIiwibGFuZ19uYW1lIiwibGFuZ19hYiIsImxhbmdfdGVybSIsImxhbmdfbGliIgorICAgICAgICAgICAgCisgICAgICAgIH0sCisgICAgICAgIC8vTENfUEFQRVIKKyAgICAgICAgeworICAgICAgICAgICAgImhlaWdodCIsIndpZHRoIiwiY29weSIKKyAgICAgICAgfSwKKyAgICAgICAgLy9MQ19OQU1FICAgICAgICAKKyAgICAgICAgeworICAgICAgICAgICAgImNvcHkiLCJuYW1lX2ZtdCIsIm5hbWVfZ2VuIiwibmFtZV9taXNzIiwibmFtZV9tciIsIm5hbWVfbXJzIiwibmFtZV9tcyIgIAorICAgICAgICB9LAorICAgICAgICAvL0xDX0lERU5USUZJQ0FUSU9OCisgICAgICAgIHsKKyAgICAgICAgICAgICJ0aXRsZSIsInNvdXJjZSIsImFkZHJlc3MiLCJjb250YWN0IiwiZW1haWwiLCJ0ZWwiLCJmYXgiLCJsYW5ndWFnZSIsCisgICAgICAgICAgICAidGVycml0b3J5IiwicmV2aXNpb24gIiwiZGF0ZSIgICAgIAorICAgICAgICB9LAorICAgICAgICAvL0xDX1RFTEVQSE9ORQorICAgICAgICB7CisgICAgICAgICAgICAiY29weSIsInRlbF9pbnRfZm10IiwidGVsX2RvbV9mbXQiLCJpbnRfc2VsZWN0IiwiaW50X3ByZWZpeCIgCisgICAgICAgIH0sCisgICAgICAgIAorICAgICAgICAgICAgCisgICAgfTsKKyAgICBwcml2YXRlIGZpbmFsIGJ5dGUgZmxhZ3M7CisgICAgcHJpdmF0ZSBmaW5hbCBMb2NhbGUgbG9jYWxlOworICAgIHByaXZhdGUgZmluYWwgTG9jYWxlIHBhcmVudExvY2FsZTsKKyAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBzZmlsZU5hbWU7CisgICAgcHVibGljIFBvc2l4VG9OZXV0cmFsQ29udmVydGVyKGJ5dGUgZmxhZ3MsIGZpbmFsIExvY2FsZSBsb2NhbGUsZmluYWwgU3RyaW5nIGZpbGVOYW1lKSB7CisgICAgICAgIHRoaXMuZmxhZ3MgPSBmbGFnczsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisgICAgICAgIHRoaXMuc2ZpbGVOYW1lPWZpbGVOYW1lOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgICAgIFN0cmluZyBjb3VudHJ5ID0gbG9jYWxlLmdldENvdW50cnkoKTsKKyAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgCisgICAgICAgIGludCBuZHggPSBsYW5ndWFnZS5pbmRleE9mKCdfJyk7CisgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgY291bnRyeSA9IGxhbmd1YWdlLnN1YnN0cmluZyhuZHgrMSk7CisgICAgICAgICAgICBsYW5ndWFnZSA9IGxhbmd1YWdlLnN1YnN0cmluZygwLCBuZHgpOworICAgICAgICB9CisgICAgICAgIG5keCA9IGNvdW50cnkuaW5kZXhPZignXycpOworICAgICAgICBpZiAobmR4ID49IDApIHsKKyAgICAgICAgICAgIHZhcmlhbnQgPSBjb3VudHJ5LnN1YnN0cmluZyhuZHgpOworICAgICAgICAgICAgY291bnRyeSA9IGNvdW50cnkuc3Vic3RyaW5nKDAsIG5keCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICgiIi5lcXVhbHMoY291bnRyeSkpIHsKKyAgICAgICAgICAgIGxhbmd1YWdlID0gIiI7CisgICAgICAgICAgICB2YXJpYW50ID0gIiI7CisgICAgICAgIH0gZWxzZSBpZiAoIiIuZXF1YWxzKHZhcmlhbnQpKSB7CisgICAgICAgICAgICBjb3VudHJ5ID0gIiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHBhcmVudExvY2FsZSA9IG5ldyBMb2NhbGUobGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKy8vfX0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBjb252ZXJ0KGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpIAorICAgICAgICAgICAgdGhyb3dzIENvbnZlcnNpb25FcnJvciB7CisvLyAgICAgICAgY29udmVydE1FU1NBR0VTKHJlc3VsdCxzb3VyY2UpOworICAgICAgICB3cml0ZVBvc2l4Q29tcERhdGEocmVzdWx0LHNvdXJjZSk7CisgICAgICAgIGNvbnZlcnRNRUFTVVJFTUVOVChyZXN1bHQsIHNvdXJjZSk7CisgICAgICAgIGNvbnZlcnRDT1VOVFJZTlVNQkVSKHJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgY29udmVydENPVU5UUllJU0JOTlVNQkVSKHJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgY29udmVydExBTkdVQUdFTElCKHJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgY29udmVydFBBUEVSU0laRShyZXN1bHQsIHNvdXJjZSk7CisgICAgICAgIGNvbnZlcnRNT05FVEFSWShyZXN1bHQsIHNvdXJjZSk7CisgICAgICAgIGNvbnZlcnROVU1FUklDKHJlc3VsdCwgc291cmNlKTsKKyAgICAgICAgY29udmVydFRJTUUocmVzdWx0LCBzb3VyY2UpOworICAgICAgICBjb252ZXJ0Q09MTEFURShyZXN1bHQsIHNvdXJjZSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWFza3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmICgoZmxhZ3MgJiBtYXNrc1tpXSkgIT0gMCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgcHJvcHNbaV0ubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIHByb3AgPSBwcm9wc1tpXVtqXTsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgT2JqZWN0IHZhbCA9IHNvdXJjZS5nZXQocHJvcCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWwgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgcHJvcCwgdmFsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgU3RyaW5nW11bXSBjbG9uZTJEQXJyKFN0cmluZ1tdW11zdHIyRGFycmF5KXsKKyAgICAgICAgU3RyaW5nW11bXSBuZXdTdHIyREFyciA9IG5ldyBTdHJpbmdbc3RyMkRhcnJheS5sZW5ndGhdW3N0cjJEYXJyYXlbMF0ubGVuZ3RoXTsgCisgICAgICAgIGZvcihpbnQgaT0wOyBpPHN0cjJEYXJyYXkubGVuZ3RoO2krKyl7CisgICAgICAgICAgICBmb3IoaW50IGo9MDsgajxzdHIyRGFycmF5W2ldLmxlbmd0aDtqKyspeworICAgICAgICAgICAgICAgIG5ld1N0cjJEQXJyW2ldW2pdID0gbmV3IFN0cmluZyhzdHIyRGFycmF5W2ldW2pdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3U3RyMkRBcnI7ICAgICAgICAgICAKKyAgICB9CisgICAgcHVibGljIE9iamVjdFtdW10gY2xvbmUyREFycihPYmplY3RbXVtdc3RyMkRhcnJheSl7CisgICAgICAgIE9iamVjdFtdW10gbmV3U3RyMkRBcnIgPSBuZXcgT2JqZWN0W3N0cjJEYXJyYXkubGVuZ3RoXVtzdHIyRGFycmF5WzBdLmxlbmd0aF07IAorICAgICAgICBmb3IoaW50IGk9MDsgaTxzdHIyRGFycmF5Lmxlbmd0aDtpKyspeworICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8c3RyMkRhcnJheVtpXS5sZW5ndGg7aisrKXsKKyAgICAgICAgICAgICAgICBuZXdTdHIyREFycltpXVtqXSA9IChPYmplY3QpKG5ldyBTdHJpbmcoKFN0cmluZylzdHIyRGFycmF5W2ldW2pdKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ld1N0cjJEQXJyOyAgICAgICAgICAgCisgICAgfQorICAgIHB1YmxpYyB2b2lkIHdyaXRlUG9zaXhDb21wRGF0YShmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsgICAgICAgIAorICAgICAgICBjb252ZXJ0TUVTU0FHRVMocmVzdWx0LHNvdXJjZSk7CisgICAgICAgIGNvbnZlcnRJREVOVElGSUNBVElPTihyZXN1bHQsc291cmNlKTsKKyAgICAgICAgY29udmVydE5BTUVGT1JNQVQocmVzdWx0LHNvdXJjZSk7CisgICAgICAgIGNvbnZlcnRBRERSRVNTRk9STUFUKHJlc3VsdCxzb3VyY2UpOworICAgICAgICBjb252ZXJ0VEVMRVBIT05FRk9STUFUKHJlc3VsdCxzb3VyY2UpOworICAgIH0KKworCisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRNRVNTQUdFUyhmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXURFRkFVTFRfTUVTU0FHRVMgPSAoU3RyaW5nW11bXSkgZ2V0RGVmYXVsdCgiTWVzc2FnZXMiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBteU1lc3NhZ2VzID0gY2xvbmUyREFycihERUZBVUxUX01FU1NBR0VTKTsKKworICAgICAgICBTdHJpbmcgdmFsdWUgPShTdHJpbmcpIHNvdXJjZS5nZXQoInllc2V4cHIiKTsKKyAgICAgICAgCisgICAgICAgIGlmKHZhbHVlIT1udWxsKXsKKyAgICAgICAgICAgICBteU1lc3NhZ2VzWzBdWzFdICA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJub2V4cHIiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteU1lc3NhZ2VzWzFdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoInllc3N0ciIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15TWVzc2FnZXNbMl1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgibm9zdHIiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteU1lc3NhZ2VzWzNdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRQdXQocmVzdWx0LCJNZXNzYWdlcyIsbXlNZXNzYWdlcyk7CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0SURFTlRJRklDQVRJT04oZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW11ERUZBVUxUX01FU1NBR0VTID0gKFN0cmluZ1tdW10pIGdldERlZmF1bHQoIklkZW50aWZpY2F0aW9uIik7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gbXlJZGVudGlmaWNhdGlvbiA9IGNsb25lMkRBcnIoREVGQVVMVF9NRVNTQUdFUyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgU3RyaW5nIHZhbHVlID0oU3RyaW5nKSBzb3VyY2UuZ2V0KCJ0aXRsZSIpOworICAgICAgICBpZih2YWx1ZSE9bnVsbCl7CisgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzBdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoInNvdXJjZSIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bMV1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgiYWRkcmVzcyIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bMl1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgiY29udGFjdCIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bM11bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgiZW1haWwiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzRdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoInRlbCIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKworICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvbls1XVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgiZmF4Iik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvbls2XVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJsYW5ndWFnZSIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bN11bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgidGVycml0b3J5Iik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvbls4XVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJhdWRpZW5jZSIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bOV1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImFwcGxpY2F0aW9uIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlJZGVudGlmaWNhdGlvblsxMF1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJhYmJyZXZpYXRpb24iKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzExXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJyZXZpc2lvbiIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIG15SWRlbnRpZmljYXRpb25bMTJdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImRhdGUiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteUlkZW50aWZpY2F0aW9uWzEzXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwiSWRlbnRpZmljYXRpb24iLG15SWRlbnRpZmljYXRpb24pOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgY29udmVydE5BTUVGT1JNQVQoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW11ERUZBVUxUX01FU1NBR0VTID0gKFN0cmluZ1tdW10pIGdldERlZmF1bHQoIk5hbWVGb3JtYXQiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBteU5hbWVGb3JtYXQgPSBjbG9uZTJEQXJyKERFRkFVTFRfTUVTU0FHRVMpOworICAgICAgICBTdHJpbmcgdmFsdWUgPShTdHJpbmcpIHNvdXJjZS5nZXQoIm5hbWVfbXIiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteU5hbWVGb3JtYXRbMl1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgibmFtZV9taXNzIik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlOYW1lRm9ybWF0WzNdWzFdID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoIm5hbWVfbXMiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteU5hbWVGb3JtYXRbNl1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgibmFtZV9tcnMiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteU5hbWVGb3JtYXRbNF1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgibmFtZV9nZW5kZXIiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteU5hbWVGb3JtYXRbMV1bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZykgc291cmNlLmdldCgibmFtZV9mbXQiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICB2YWx1ZSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgICAgICBteU5hbWVGb3JtYXRbMF1bMV0gPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwiTmFtZUZvcm1hdCIsbXlOYW1lRm9ybWF0KTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRBRERSRVNTRk9STUFUKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdREVGQVVMVF9NRVNTQUdFUyA9IChTdHJpbmdbXVtdKSBnZXREZWZhdWx0KCJBZGRyZXNzRm9ybWF0Iik7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW10gbXlBZGRyZXNzRm9ybWF0ID0oIGNsb25lMkRBcnIoREVGQVVMVF9NRVNTQUdFUykpOworICAgICAgICBTdHJpbmcgdmFsdWUgPShTdHJpbmcpIHNvdXJjZS5nZXQoInBvc3RhbF9mbXQiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICB2YWx1ZSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgICAgICBteUFkZHJlc3NGb3JtYXRbMF1bMV0gPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwiQWRkcmVzc0Zvcm1hdCIsbXlBZGRyZXNzRm9ybWF0KTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRURUxFUEhPTkVGT1JNQVQoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdW11ERUZBVUxUX01FU1NBR0VTID0gKFN0cmluZ1tdW10pIGdldERlZmF1bHQoIlRlbGVwaG9uZUZvcm1hdCIpOworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIG15VGVsZXBob25lRm9ybWF0ID0gY2xvbmUyREFycihERUZBVUxUX01FU1NBR0VTKTsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0oU3RyaW5nKSBzb3VyY2UuZ2V0KCJ0ZWxfaW50X2ZtdCIpOworICAgICAgICBpZih2YWx1ZSAhPSBudWxsKXsKKyAgICAgICAgICAgIHZhbHVlID0gUG9zaXhDb2xsYXRpb25CdWlsZGVyLnVuZXNjYXBlKHZhbHVlKTsKKyAgICAgICAgICAgIG15VGVsZXBob25lRm9ybWF0WzBdWzFdID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJkb21fZm10Iik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgdmFsdWUgPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICAgICAgbXlUZWxlcGhvbmVGb3JtYXRbMV1bMV0gPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHNvdXJjZS5nZXQoImludF9zZWxlY3QiKTsKKyAgICAgICAgaWYodmFsdWUgIT0gbnVsbCl7CisgICAgICAgICAgICBteVRlbGVwaG9uZUZvcm1hdFsyXVsxXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKSBzb3VyY2UuZ2V0KCJpbnRfcHJlZml4Iik7CisgICAgICAgIGlmKHZhbHVlICE9IG51bGwpeworICAgICAgICAgICAgbXlUZWxlcGhvbmVGb3JtYXRbM11bMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgICByZXN1bHRQdXQocmVzdWx0LCJUZWxlcGhvbmVGb3JtYXQiLG15VGVsZXBob25lRm9ybWF0KTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRNT05FVEFSWShmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKSB7CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIERFRkFVTFRfQ1VSUkVOQ1lfRUxFTUVOVFMgPSAoU3RyaW5nW10pZ2V0RGVmYXVsdCgiQ3VycmVuY3lFbGVtZW50cyIpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBlbGVtZW50cyA9IChTdHJpbmdbXSlERUZBVUxUX0NVUlJFTkNZX0VMRU1FTlRTLmNsb25lKCk7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9IChTdHJpbmcpc291cmNlLmdldCgiY3VycmVuY3lfc3ltYm9sIik7CisgICAgICAgIC8vUmVwbGFjZWFibGUgdGVtcCA9IG5ldyBSZXBsYWNlYWJsZSh2YWx1ZSk7CisgICAgICAgCisgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICBlbGVtZW50c1swXSA9IFBvc2l4Q29sbGF0aW9uQnVpbGRlci51bmVzY2FwZSh2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSAoU3RyaW5nKXNvdXJjZS5nZXQoImludF9jdXJyX3N5bWJvbCIpOworICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgZWxlbWVudHNbMV0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gKFN0cmluZylzb3VyY2UuZ2V0KCJtb25fZGVjaW1hbF9wb2ludCIpOworICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgZWxlbWVudHNbMl0gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUodmFsdWUpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsICJDdXJyZW5jeUVsZW1lbnRzIiwgZWxlbWVudHMpOworICAgIH0KKyAgICAKKworICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0TUVBU1VSRU1FTlQoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7CisgICAgICAgIGZpbmFsIFN0cmluZyBERUZBVUxUX01FQVNVUkVNRU5UID0oU3RyaW5nKWdldERlZmF1bHQoIk1lYXN1cmVtZW50Iik7CisgICAgICAgIFN0cmluZyBlbGVtZW50cyA9IChTdHJpbmcpREVGQVVMVF9NRUFTVVJFTUVOVDsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0oU3RyaW5nKSBzb3VyY2UuZ2V0KCJtZWFzdXJlbWVudCIpOworICAgICAgICBpZih2YWx1ZSE9bnVsbCl7CisgICAgICAgICAgICBpZih2YWx1ZS5lcXVhbHMoIjEiKSkKKyAgICAgICAgICAgICAgICBlbGVtZW50cyA9ICJNZXRyaWMiOworICAgICAgICAgICAgZWxzZSBpZih2YWx1ZS5lcXVhbHMoIjIiKSkKKyAgICAgICAgICAgICAgICBlbGVtZW50cyA9ICJBbWVyaWNhbiI7CisgICAgICAgICAgICBlbHNlIGlmKHZhbHVlLmVxdWFscygiMyIpKQorICAgICAgICAgICAgICAgIGVsZW1lbnRzID0gIk90aGVyIjsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRQdXQocmVzdWx0LCJNZWFzdXJlbWVudCIsZWxlbWVudHMpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgY29udmVydENPVU5UUllOVU1CRVIgKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICBmaW5hbCBTdHJpbmcgREVGQVVMVF9DT1VOVFJZTlVNQkVSID0oU3RyaW5nKWdldERlZmF1bHQoIkNvdW50cnlOdW1iZXIiKTsKKyAgICAgICAgU3RyaW5nIGVsZW1lbnRzID0gKFN0cmluZylERUZBVUxUX0NPVU5UUllOVU1CRVI7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9KFN0cmluZykgc291cmNlLmdldCgiY291bnRyeV9udW0iKTsKKyAgICAgICAgaWYodmFsdWUhPW51bGwpeworICAgICAgICAgICAgZWxlbWVudHMgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRQdXQocmVzdWx0LCJDb3VudHJ5TnVtYmVyIixlbGVtZW50cyk7CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0Q09VTlRSWUlTQk5OVU1CRVIgKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICBmaW5hbCBTdHJpbmcgREVGQVVMVF9DT1VOVFJZTlVNQkVSID0oU3RyaW5nKWdldERlZmF1bHQoIkNvdW50cnlJU0JOTnVtYmVyIik7CisgICAgICAgIFN0cmluZyBlbGVtZW50cyA9IG5ldyBTdHJpbmcoKFN0cmluZylERUZBVUxUX0NPVU5UUllOVU1CRVIpOworICAgICAgICBTdHJpbmcgdmFsdWUgPShTdHJpbmcpIHNvdXJjZS5nZXQoImNvdW50cnlfbnVtIik7CisgICAgICAgIGlmKHZhbHVlIT1udWxsKXsKKyAgICAgICAgICAgIGVsZW1lbnRzID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwiQ291bnRyeUlTQk5OdW1iZXIiLGVsZW1lbnRzKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRMQU5HVUFHRUxJQiAoZmluYWwgSGFzaHRhYmxlIHJlc3VsdCwgZmluYWwgSGFzaHRhYmxlIHNvdXJjZSl7CisgICAgICAgIGZpbmFsIFN0cmluZyBERUZBVUxUX0xBTkdVQUdFTElCID0oU3RyaW5nKWdldERlZmF1bHQoIkxhbmd1YWdlTGlicmFyeVVzZSIpOworICAgICAgICBTdHJpbmcgZWxlbWVudHMgPW5ldyBTdHJpbmcoIChTdHJpbmcpREVGQVVMVF9MQU5HVUFHRUxJQik7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9KFN0cmluZykgc291cmNlLmdldCgibGFuZ19saWIiKTsKKyAgICAgICAgaWYodmFsdWUhPW51bGwpeworICAgICAgICAgICAgZWxlbWVudHMgPSB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRQdXQocmVzdWx0LCJMYW5ndWFnZUxpYnJhcnlVc2UiLGVsZW1lbnRzKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRQQVBFUlNJWkUgKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpeworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIERFRkFVTFRfUEFQRVJTSVpFPShTdHJpbmdbXVtdKSBnZXREZWZhdWx0KCJQYXBlclNpemUiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBlbGVtZW50cz1jbG9uZTJEQXJyKERFRkFVTFRfUEFQRVJTSVpFKTsKKyAgICAgICAgU3RyaW5nIHZhbHVlPShTdHJpbmcpIHNvdXJjZS5nZXQoImhlaWdodCIpOworICAgICAgICBpZiAodmFsdWUhPW51bGwpeworICAgICAgICAgICAgZWxlbWVudHNbMF1bMV09IHZhbHVlOworICAgICAgICB9CisgICAgICAgIHZhbHVlID0gIChTdHJpbmcpIHNvdXJjZS5nZXQoIndpZHRoIik7CisgICAgICAgIGlmKHZhbHVlIT1udWxsKXsKKyAgICAgICAgICAgIGVsZW1lbnRzWzFdWzFdID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgZWxlbWVudHNbMl1bMV09KFN0cmluZykibW0iOworICAgICAgICAKKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwiUGFwZXJTaXplIixlbGVtZW50cyk7CisgICAgfQorICAgIAorICAgLyogcHJpdmF0ZSB2b2lkIGNvbnZlcnRJREVOVElGSUNBVElPTihmaW5hbCBIYXNodGFibGUgcmVzdWx0LCBmaW5hbCBIYXNodGFibGUgc291cmNlKXsKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXURFRkFVTFRfSURFTlRJRklDQVRJT04gPShTdHJpbmdbXVtdKSBnZXREZWZhdWx0KCJJZGVudGlmaWNhdGlvbiIpOworICAgICAgICBmaW5hbCBTdHJpbmdbXVtdIGVsZW1lbnRzID0gKFN0cmluZ1tdW10pREVGQVVMVF9JREVOVElGSUNBVElPTi5jbG9hbmUoKTsKKyAgICAgICAgCisgICAgfSovCisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnROVU1FUklDKGZpbmFsIEhhc2h0YWJsZSByZXN1bHQsIGZpbmFsIEhhc2h0YWJsZSBzb3VyY2UpIHsKKyAgICAgICAgLy9CdWlsZCBOdW1iZXJFbGVtZW50cyBkYXRhIGFycmF5CisgICAgICAgIGZpbmFsIFN0cmluZ1tdIERFRkFVTFRfTlVNQkVSX0VMRU1FTlRTID0gKFN0cmluZ1tdKWdldERlZmF1bHQoIk51bWJlckVsZW1lbnRzIik7CisgICAgICAgIC8vU2V0IG5ldyBudW1iZXIgZWxlbWVudHMgdG8gYSBjb3B5IG9mIHRoZSBkZWZhdWx0IHZhbHVlIGZyb20gdGhlIHBhcmVudC4KKyAgICAgICAgZmluYWwgU3RyaW5nW10gZWxlbWVudHMgPSAoU3RyaW5nW10pREVGQVVMVF9OVU1CRVJfRUxFTUVOVFMuY2xvbmUoKTsKKyAgICAgICAgLy9wdXQgZGVjaW1hbCBzZXBlcmF0b3IgaW50byB0aGUgTnVtYmVyRWxlbWVudHMgYXJyYXkKKyAgICAgICAgU3RyaW5nIGRlY2ltYWxQb2ludCA9IChTdHJpbmcpc291cmNlLmdldCgiZGVjaW1hbF9wb2ludCIpOworICAgICAgICBpZiAoZGVjaW1hbFBvaW50ICE9IG51bGwpIHsgLy9pZiB3ZSBoYXZlIGEgUE9TSVggdmFsdWUsIHN0b21wIG9uIHRoZSBkZWZhdWx0CisgICAgICAgICAgICBlbGVtZW50c1swXSA9IGRlY2ltYWxQb2ludDsKKyAgICAgICAgfQorCisgICAgICAgIC8vcHV0IHRob3VzYW5kcyBzZXBlcmF0b3IgaW50byB0aGUgTnVtYmVyRWxlbWVudHMgYXJyYXkKKyAgICAgICAgU3RyaW5nIHRob3VzYW5kc1NlcCA9IChTdHJpbmcpc291cmNlLmdldCgidGhvdXNhbmRzX3NlcCIpOworICAgICAgICBpZiAodGhvdXNhbmRzU2VwICE9IG51bGwpIHsgLy9pZiB3ZSBoYXZlIGEgUE9TSVggdmFsdWUsIHN0b21wIG9uIHRoZSBkZWZhdWx0CisgICAgICAgICAgICBlbGVtZW50c1sxXSA9IHRob3VzYW5kc1NlcDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy9BZGQgTnVtYmVyRWxlbWVudHMgdG8gcmVzdWx0CisgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsICJOdW1iZXJFbGVtZW50cyIsIGVsZW1lbnRzKTsKKworICAgICAgICAvL3VzZSBjYW5vbmljYWwgZGVjaW1hbCBhbmQgdGhvdXNhbmRzIHNlcGVyYXRvcnMgZm9yIHBhdHRlcm5zCisgICAgICAgIGRlY2ltYWxQb2ludCA9ICIuIjsKKyAgICAgICAgdGhvdXNhbmRzU2VwID0gIiwiOworICAgICAgICAKKyAgICAgICAgLy9OdW1iZXJQYXR0ZXJucworICAgICAgICBmaW5hbCBTdHJpbmdbXSBERUZBVUxUX05VTUJFUl9QQVRURVJOUyA9IChTdHJpbmdbXSlnZXREZWZhdWx0KCJOdW1iZXJQYXR0ZXJucyIpOworICAgICAgICBmaW5hbCBTdHJpbmdbXSBwYXR0ZXJucyA9IChTdHJpbmdbXSlERUZBVUxUX05VTUJFUl9QQVRURVJOUy5jbG9uZSgpOworICAgICAgICAKKyAgICAgICAgZmluYWwgU3RyaW5nIHBhdHRlcm5EaWdpdCA9IGVsZW1lbnRzWzVdOworICAgICAgICBmaW5hbCBTdHJpbmcgemVyb0RpZ2l0ID0gZWxlbWVudHNbNF07CisgICAgICAgIGZpbmFsIFN0cmluZyBuZWdhdGl2ZVNpZ24gPSBlbGVtZW50c1s2XTsKKyAgICAgICAgZmluYWwgU3RyaW5nIHBlcmNlbnRTaWduID0gZWxlbWVudHNbM107CisKKyAgICAgICAgU3RyaW5nIGdyb3VwaW5nU3RyaW5nOworICAgICAgICBPYmplY3QgZ3JvdXBpbmdPYmogPSBzb3VyY2UuZ2V0KCJncm91cGluZyIpOworICAgICAgICBib29sZWFuIGlzU3RyQXJyYXkgPSBncm91cGluZ09iaiBpbnN0YW5jZW9mIFN0cmluZ1tdOworICAgICAgICBpZiAoaXNTdHJBcnJheSkgeworICAgICAgICAgICAgZ3JvdXBpbmdTdHJpbmcgPSAoKFN0cmluZ1tdKWdyb3VwaW5nT2JqKVswXTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGdyb3VwaW5nU3RyaW5nID0gKFN0cmluZylncm91cGluZ09iajsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGdyb3VwaW5nU3RyaW5nID09IG51bGwpIHsKKyAgICAgICAgICAgIHBhdHRlcm5zWzBdID0gcmVwbGFjZShwYXR0ZXJuc1swXSwgZWxlbWVudHNbMF0sICI8REVDSU1BTD4iKTsKKyAgICAgICAgICAgIHBhdHRlcm5zWzBdID0gcmVwbGFjZShwYXR0ZXJuc1swXSwgZWxlbWVudHNbMV0sICI8VEhPVVNBTkQ+Iik7CisgICAgICAgICAgICBwYXR0ZXJuc1swXSA9IHJlcGxhY2UocGF0dGVybnNbMF0sICI8REVDSU1BTD4iLCBkZWNpbWFsUG9pbnQpOworICAgICAgICAgICAgcGF0dGVybnNbMF0gPSByZXBsYWNlKHBhdHRlcm5zWzBdLCAiPFRIT1VTQU5EPiIsIHRob3VzYW5kc1NlcCk7CisKKyAgICAgICAgICAgIHBhdHRlcm5zWzJdID0gcmVwbGFjZShwYXR0ZXJuc1syXSwgZWxlbWVudHNbMV0sICI8VEhPVVNBTkQ+Iik7CisgICAgICAgICAgICBwYXR0ZXJuc1syXSA9IHJlcGxhY2UocGF0dGVybnNbMl0sICI8VEhPVVNBTkQ+IiwgdGhvdXNhbmRzU2VwKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLyogZ3JvdXBpbmc6CisgICAgICAgICAgICAgKiBEZWZpbmVzIHRoZSBzaXplIG9mIGVhY2ggZ3JvdXAgb2YgZGlnaXRzIGluIGZvcm1hdHRlZCBtb25ldGFyeSAKKyAgICAgICAgICAgICAqIHF1YW50aXRpZXMuIFRoZSBvcGVyYW5kIGZvciB0aGUgZ3JvdXBpbmcga2V5d29yZCBjb25zaXN0cyBvZiBhIAorICAgICAgICAgICAgICogc2VxdWVuY2Ugb2Ygc2VtaWNvbG9uLXNlcGFyYXRlZCBpbnRlZ2Vycy4gRWFjaCBpbnRlZ2VyIHNwZWNpZmllcyB0aGUgCisgICAgICAgICAgICAgKiBudW1iZXIgb2YgZGlnaXRzIGluIGEgZ3JvdXAuIFRoZSBpbml0aWFsIGludGVnZXIgZGVmaW5lcyB0aGUgc2l6ZSBvZiAKKyAgICAgICAgICAgICAqIHRoZSBncm91cCBpbW1lZGlhdGVseSB0byB0aGUgbGVmdCBvZiB0aGUgZGVjaW1hbCBkZWxpbWl0ZXIuIAorICAgICAgICAgICAgICogVGhlIGZvbGxvd2luZyBpbnRlZ2VycyBkZWZpbmUgc3VjY2VlZGluZyBncm91cHMgdG8gdGhlIGxlZnQgb2YgdGhlIAorICAgICAgICAgICAgICogcHJldmlvdXMgZ3JvdXAuIElmIHRoZSBsYXN0IGludGVnZXIgaXMgbm90IC0xLCB0aGUgc2l6ZSBvZiB0aGUgCisgICAgICAgICAgICAgKiBwcmV2aW91cyBncm91cCAoaWYgYW55KSBpcyB1c2VkIHJlcGVhdGVkbHkgZm9yIHRoZSByZW1haW5kZXIgb2YgdGhlIAorICAgICAgICAgICAgICogZGlnaXRzLiBJZiB0aGUgbGFzdCBpbnRlZ2VyIGlzIC0xLCBubyBmdXJ0aGVyIGdyb3VwaW5nIGlzIHBlcmZvcm1lZC4KKyAgICAgICAgICAgICAqIEdyb3VwaW5nIFZhbHVlICAgIEZvcm1hdHRlZCBWYWx1ZQorICAgICAgICAgICAgICogICAzOy0xICAgICAgICAgICAgICAgMTIzNDU2Jzc4OQorICAgICAgICAgICAgICogICAzICAgICAgICAgICAgICAgICAgMTIzJzQ1Nic3ODkKKyAgICAgICAgICAgICAqICAgMzsyOy0xICAgICAgICAgICAgIDEyMzQnNTYnNzg5CisgICAgICAgICAgICAgKiAgIDM7MiAgICAgICAgICAgICAgICAxMiczNCc1Nic3ODkKKyAgICAgICAgICAgICAqICAgLTEgICAgICAgICAgICAgICAgIDEyMzQ1Njc4OQorICAgICAgICAgICAgICovCisgICAgICAgICAgICAvL2ZvciBhIGdyb3VwaW5nIG9mIDUKKyAgICAgICAgICAgIC8vIzx0aG91c2FuZHNTZXA+IyMjIzA8ZGVjaW1hbFBvaW50PiMjIyMjCisgICAgICAgICAgICBmaW5hbCBTdHJpbmdCdWZmZXIgcGF0dGVybiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBzZW1pQ29sb25JbmRleCA9IGdyb3VwaW5nU3RyaW5nLmluZGV4T2YoJzsnKSA7CisgICAgICAgICAgICBpbnQgZ3JvdXBpbmcgPSAwOworICAgICAgICAgICAgaWYoc2VtaUNvbG9uSW5kZXggPCAwICl7CisgICAgICAgICAgICAgICAgZ3JvdXBpbmcgPSBJbnRlZ2VyLnBhcnNlSW50KGdyb3VwaW5nU3RyaW5nKTsgICAgCisgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQocGF0dGVybkRpZ2l0KTsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZCh0aG91c2FuZHNTZXApOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBNYXRoLm1heCgxLCBncm91cGluZyAtIDEpOyBpID4gMDsgaS0tKSB7CisgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHBhdHRlcm5EaWdpdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHplcm9EaWdpdCk7CisgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQoZGVjaW1hbFBvaW50KTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gTWF0aC5tYXgoMSwgZ3JvdXBpbmcgLSAxKTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQocGF0dGVybkRpZ2l0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIC8qICAgIGludCBwcmV2SW5kZXggPSAwOworICAgICAgICAgICAgICAgIGludFtdIGdyb3VwaW5ncyA9IG5ldyBpbnRbNF07CisgICAgICAgICAgICAgICAgaW50IGogPTA7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8Z3JvdXBpbmdTdHJpbmcubGVuZ3RoKCk7IGkrKyl7CisgICAgICAgICAgICAgICAgICAgIGlmKGdyb3VwaW5nU3RyaW5nLmNoYXJBdChpKT09JzsnKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwaW5nc1tqKytdID0gSW50ZWdlci5wYXJzZUludChncm91cGluZ1N0cmluZy5zdWJzdHJpbmcocHJldkluZGV4LGkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZJbmRleCA9IGk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yKGludCBpID0gai0xIDtpPC0xOyBpLS0peworICAgICAgICAgICAgICAgICAgICBpZihncm91cGluZ3NbaV0gPT0gLTEpeworICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQocCk7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0gICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIldBUk5JTkc6IHVuaW1wbGVtZW50ZWQgcGF0dGVybiBwYXJzZXIuIFBhdHRlcm46ICIgKyBncm91cGluZ1N0cmluZyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZyBwYXR0ZXJuU3RyaW5nID0gcGF0dGVybi50b1N0cmluZygpOworICAgICAgICAgICAgcGF0dGVybnNbMF0gPSBwYXR0ZXJuU3RyaW5nICsgIjsiICsgbmVnYXRpdmVTaWduICsgcGF0dGVyblN0cmluZzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcGF0dGVybi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChwYXR0ZXJuRGlnaXQpOworICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQodGhvdXNhbmRzU2VwKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBNYXRoLm1heCgxLCBncm91cGluZyAtIDEpOyBpID4gMDsgaS0tKSB7CisgICAgICAgICAgICAgICAgcGF0dGVybi5hcHBlbmQocGF0dGVybkRpZ2l0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBhdHRlcm4uYXBwZW5kKHplcm9EaWdpdCk7CisgICAgICAgICAgICBwYXR0ZXJuLmFwcGVuZChwZXJjZW50U2lnbik7ICAgICAgICAgICAgCisgICAgICAgICAgICBwYXR0ZXJuc1syXSA9IHBhdHRlcm4udG9TdHJpbmcoKTsKKworICAgICAgICAgICAvLyBmaW5hbCBTdHJpbmdbXSBjdXJyZW5jeUVsZW1lbnRzID0gKChTdHJpbmdbXSlnZXREZWZhdWx0KCJDdXJyZW5jeUVsZW1lbnRzIikpOworICAgICAgICAgICAgU3RyaW5nIGN1cnJlbmN5X3N5bWJvbCA9IChTdHJpbmcpc291cmNlLmdldCgiY3VycmVuY3lfc3ltYm9sIik7CisgICAgICAgICAgICBjdXJyZW5jeV9zeW1ib2wgPSAoY3VycmVuY3lfc3ltYm9sICE9IG51bGwpID8gY3VycmVuY3lfc3ltYm9sIDogKFN0cmluZylzb3VyY2UuZ2V0KCJpbnRfY3Vycl9zeW1ib2wiKTsKKyAgICAgICAgICAgIGN1cnJlbmN5X3N5bWJvbCA9IChjdXJyZW5jeV9zeW1ib2wgIT0gbnVsbCkgPyBjdXJyZW5jeV9zeW1ib2wgOiAiIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIG1vbl9kZWNpbWFsX3BvaW50ID0gKFN0cmluZylzb3VyY2UuZ2V0KCJtb25fZGVjaW1hbF9wb2ludCIpOworICAgICAgICAgICAgbW9uX2RlY2ltYWxfcG9pbnQgPSAobW9uX2RlY2ltYWxfcG9pbnQgIT0gbnVsbCkgPyBtb25fZGVjaW1hbF9wb2ludCA6ICIiOworCisgICAgICAgICAgICBTdHJpbmcgbW9uX3Rob3VzYW5kc19zZXAgPSAoU3RyaW5nKXNvdXJjZS5nZXQoIm1vbl90aG91c2FuZHNfc2VwIik7CisgICAgICAgICAgICBtb25fdGhvdXNhbmRzX3NlcCA9IChtb25fdGhvdXNhbmRzX3NlcCAhPSBudWxsKSA/IG1vbl90aG91c2FuZHNfc2VwIDogIiI7CisKKyAgICAgICAgICAgIFN0cmluZyBtb25fZ3JvdXBpbmdfc3RyaW5nOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIG1vbl9ncm91cGluZzoKKyAgICAgICAgICAgICAqIAorICAgICAgICAgICAgICogU3BlY2lmaWVzIGEgc3RyaW5nIHRoYXQgZGVmaW5lcyB0aGUgc2l6ZSBvZiBlYWNoIGdyb3VwIG9mIGRpZ2l0cyAKKyAgICAgICAgICAgICAqIGluIGZvcm1hdHRlZCBtb25ldGFyeSBxdWFudGl0aWVzLiBUaGUgb3BlcmFuZCBmb3IgdGhlIAorICAgICAgICAgICAgICogbW9uX2dyb3VwaW5nIGtleXdvcmQgY29uc2lzdHMgb2YgYSBzZXF1ZW5jZSBvZiAKKyAgICAgICAgICAgICAqIHNlbWljb2xvbi1zZXBhcmF0ZWQgaW50ZWdlcnMuIEVhY2ggaW50ZWdlciBzcGVjaWZpZXMgdGhlIG51bWJlciAKKyAgICAgICAgICAgICAqIG9mIGRpZ2l0cyBpbiBhIGdyb3VwLiBUaGUgaW5pdGlhbCBpbnRlZ2VyIGRlZmluZXMgdGhlIHNpemUgb2YgdGhlCisgICAgICAgICAgICAgKiBncm91cCBpbW1lZGlhdGVseSB0byB0aGUgbGVmdCBvZiB0aGUgZGVjaW1hbCBkZWxpbWl0ZXIuIAorICAgICAgICAgICAgICogVGhlIGZvbGxvd2luZyBpbnRlZ2VycyBkZWZpbmUgc3VjY2VlZGluZyBncm91cHMgdG8gdGhlIGxlZnQgb2YgCisgICAgICAgICAgICAgKiB0aGUgcHJldmlvdXMgZ3JvdXAuIElmIHRoZSBsYXN0IGludGVnZXIgaXMgbm90IC0xLCB0aGUgc2l6ZSBvZiAKKyAgICAgICAgICAgICAqIHRoZSBwcmV2aW91cyBncm91cCAoaWYgYW55KSBpcyByZXBlYXRlZGx5IHVzZWQgZm9yIHRoZSByZW1haW5kZXIgCisgICAgICAgICAgICAgKiBvZiB0aGUgZGlnaXRzLiBJZiB0aGUgbGFzdCBpbnRlZ2VyIGlzIC0xLCBubyBmdXJ0aGVyIGdyb3VwaW5nIGlzIAorICAgICAgICAgICAgICogcGVyZm9ybWVkLgorICAgICAgICAgICAgICogCisgICAgICAgICAgICAgKiBWYWx1ZSAgICBGb3JtYXR0ZWQgVmFsdWUKKyAgICAgICAgICAgICAqICAzOy0xICAgIDEyMzQ1Nic3ODkKKyAgICAgICAgICAgICAqICAzICAgICAgIDEyMyc0NTYnNzg5CisgICAgICAgICAgICAgKiAgMzsyOy0xICAxMjM0JzU2Jzc4OQorICAgICAgICAgICAgICogIDM7MiAgICAgMTInMzQnNTYnNzg5CisgICAgICAgICAgICAgKiAgIC0xICAgICAxMjM0NTY3ODkgCisgICAgICAgICAgICAgKi8gCisgICAgICAgICAgICBmaW5hbCBPYmplY3QgbW9uR3JvdXBpbmdPYmogPSBzb3VyY2UuZ2V0KCJtb25fZ3JvdXBpbmciKTsKKyAgICAgICAgICAgIGlmIChtb25Hcm91cGluZ09iaiBpbnN0YW5jZW9mIFN0cmluZ1tdKSB7CisgICAgICAgICAgICAgICAgbW9uX2dyb3VwaW5nX3N0cmluZyA9ICgoU3RyaW5nW10pbW9uR3JvdXBpbmdPYmopWzBdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtb25fZ3JvdXBpbmdfc3RyaW5nID0gKFN0cmluZyltb25Hcm91cGluZ09iajsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbmFsIGludCBtb25fZ3JvdXBpbmcgPSAobW9uX2dyb3VwaW5nX3N0cmluZyA9PSBudWxsKSA/IGdyb3VwaW5nIDogSW50ZWdlci5wYXJzZUludChtb25fZ3JvdXBpbmdfc3RyaW5nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZmluYWwgU3RyaW5nIGZyYWNfZGlnaXRzX3N0cmluZyA9IChTdHJpbmcpc291cmNlLmdldCgiZnJhY19kaWdpdHMiKTsKKyAgICAgICAgICAgIGZpbmFsIGludCBmcmFjX2RpZ2l0cyA9IChmcmFjX2RpZ2l0c19zdHJpbmcgPT0gbnVsbCkgPyBtb25fZ3JvdXBpbmcgOiBJbnRlZ2VyLnBhcnNlSW50KGZyYWNfZGlnaXRzX3N0cmluZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBwb3NpdGl2ZV9zaWduID0gKFN0cmluZylzb3VyY2UuZ2V0KCJwb3NpdGl2ZV9zaWduIik7CisgICAgICAgICAgICBwb3NpdGl2ZV9zaWduID0gKHBvc2l0aXZlX3NpZ24gIT0gbnVsbCkgPyBwb3NpdGl2ZV9zaWduIDogIiI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBuZWdhdGl2ZV9zaWduID0gKFN0cmluZylzb3VyY2UuZ2V0KCJuZWdhdGl2ZV9zaWduIik7CisgICAgICAgICAgICBuZWdhdGl2ZV9zaWduID0gKG5lZ2F0aXZlX3NpZ24gIT0gbnVsbCkgPyBuZWdhdGl2ZV9zaWduIDogIiI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyBwX3NpZ25fcG9zbiA9IChTdHJpbmcpc291cmNlLmdldCgicF9zaWduX3Bvc24iKTsKKyAgICAgICAgICAgIHBfc2lnbl9wb3NuID0gKHBfc2lnbl9wb3NuICE9IG51bGwpID8gcF9zaWduX3Bvc24gOiAiIjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nIG5fc2lnbl9wb3NuID0gKFN0cmluZylzb3VyY2UuZ2V0KCJuX3NpZ25fcG9zbiIpOworICAgICAgICAgICAgbl9zaWduX3Bvc24gPSAobl9zaWduX3Bvc24gIT0gbnVsbCkgPyBuX3NpZ25fcG9zbiA6ICIiOworCisgICAgICAgICAgICBmaW5hbCBib29sZWFuIHBfY3NfcHJlY2VkZXMgPSAhIjAiLmVxdWFscyhzb3VyY2UuZ2V0KCJwX2NzX3ByZWNlZGVzIikpOworICAgICAgICAgICAgZmluYWwgU3RyaW5nIHBfc2VwX2J5X3NwYWNlID0gKFN0cmluZylzb3VyY2UuZ2V0KCJwX3NlcF9ieV9zcGFjZSIpOworICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBuX2NzX3ByZWNlZGVzID0gISIwIi5lcXVhbHMoc291cmNlLmdldCgibl9jc19wcmVjZWRlcyIpKTsKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZyBuX3NlcF9ieV9zcGFjZSA9IChTdHJpbmcpc291cmNlLmdldCgibl9zZXBfYnlfc3BhY2UiKTsKKworICAgICAgICAgICAgcGF0dGVybi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAKKy8qICAgICAgICAgICAgCisgICAgICAgICAgICBwYXR0ZXJuc1sxXSA9CisgICAgICAgICAgICAgICAgY3JlYXRlUGF0dGVyblN0cmluZyhjdXJyZW5jeV9zeW1ib2wsIG1vbl9kZWNpbWFsX3BvaW50LCBtb25fdGhvdXNhbmRzX3NlcCwgbW9uX2dyb3VwaW5nLCBmcmFjX2RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgcG9zaXRpdmVfc2lnbiwgcF9jc19wcmVjZWRlcywgcF9zZXBfYnlfc3BhY2UsIHBfc2lnbl9wb3NuLCBwYXR0ZXJuRGlnaXQsIHplcm9EaWdpdCkKKyAgICAgICAgICAgICAgICArICI7IgorICAgICAgICAgICAgICAgICsgY3JlYXRlUGF0dGVyblN0cmluZyhjdXJyZW5jeV9zeW1ib2wsIG1vbl9kZWNpbWFsX3BvaW50LCBtb25fdGhvdXNhbmRzX3NlcCwgbW9uX2dyb3VwaW5nLCBmcmFjX2RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVfc2lnbiwgbl9jc19wcmVjZWRlcywgbl9zZXBfYnlfc3BhY2UsIG5fc2lnbl9wb3NuLCBwYXR0ZXJuRGlnaXQsIHplcm9EaWdpdCk7CisqLworICAgICAgICAgICAgCisvKiAgICAgICAgICAgIHBhdHRlcm5zWzFdID0KKyAgICAgICAgICAgICAgICBjcmVhdGVQYXR0ZXJuU3RyaW5nKGN1cnJlbmN5X3N5bWJvbCwgIi4iLCAiLCIsIG1vbl9ncm91cGluZywgZnJhY19kaWdpdHMsCisgICAgICAgICAgICAgICAgICAgIHBvc2l0aXZlX3NpZ24sIHBfY3NfcHJlY2VkZXMsIHBfc2VwX2J5X3NwYWNlLCBwX3NpZ25fcG9zbiwgcGF0dGVybkRpZ2l0LCB6ZXJvRGlnaXQpCisgICAgICAgICAgICAgICAgKyAiOyIKKyAgICAgICAgICAgICAgICArIGNyZWF0ZVBhdHRlcm5TdHJpbmcoY3VycmVuY3lfc3ltYm9sLCAiLiIsICIsIiwgbW9uX2dyb3VwaW5nLCBmcmFjX2RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVfc2lnbiwgbl9jc19wcmVjZWRlcywgbl9zZXBfYnlfc3BhY2UsIG5fc2lnbl9wb3NuLCBwYXR0ZXJuRGlnaXQsIHplcm9EaWdpdCk7CisqLworICAgICAgICAgICAgcGF0dGVybnNbMV0gPQorICAgICAgICAgICAgICAgIGNyZWF0ZVBhdHRlcm5TdHJpbmcoIi4iLCAiLCIsIG1vbl9ncm91cGluZywgZnJhY19kaWdpdHMsCisgICAgICAgICAgICAgICAgICAgIHBvc2l0aXZlX3NpZ24sIHBfY3NfcHJlY2VkZXMsIHBfc2VwX2J5X3NwYWNlLCBwX3NpZ25fcG9zbiwgcGF0dGVybkRpZ2l0LCB6ZXJvRGlnaXQpCisgICAgICAgICAgICAgICAgKyAiOyIKKyAgICAgICAgICAgICAgICArIGNyZWF0ZVBhdHRlcm5TdHJpbmcoIi4iLCAiLCIsIG1vbl9ncm91cGluZywgZnJhY19kaWdpdHMsCisgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlX3NpZ24sIG5fY3NfcHJlY2VkZXMsIG5fc2VwX2J5X3NwYWNlLCBuX3NpZ25fcG9zbiwgcGF0dGVybkRpZ2l0LCB6ZXJvRGlnaXQpOworCisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgIk51bWJlclBhdHRlcm5zIiwgcGF0dGVybnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgcm91dGluZSBjcmVhdGVzIGN1cnJlbmN5IGZvcm1hdHMgZnJvbSBhbGwgdGhlIHBvc2l4IHN0dWZmLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGNyZWF0ZVBhdHRlcm5TdHJpbmcoU3RyaW5nIGRlY2ltYWwsIFN0cmluZyB0aG91c2FuZHMsIGludCBncm91cGluZywgaW50IGZyYWNEaWdpdHMsCisgICAgICAgICAgICBTdHJpbmcgc2lnbiwgYm9vbGVhbiBwcmVjZWVkcywgU3RyaW5nIHNlcF9ieV9zcGFjZSwgU3RyaW5nIHNpZ25fcG9zbiwgU3RyaW5nIGRpZ2l0LAorICAgICAgICAgICAgU3RyaW5nIHJlcXVpcmVkRGlnaXQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIGN1cnJlbmN5ID0gIlx1MDBBNCI7CisgICAgICAgIGlmICgiMiIuZXF1YWxzKHNlcF9ieV9zcGFjZSkgJiYgKCIiLmVxdWFscyhjdXJyZW5jeSkgfHwgIiIuZXF1YWxzKHNpZ24pKSkgeworICAgICAgICAgICAgc2VwX2J5X3NwYWNlID0gIjAiOworICAgICAgICB9CisgICAgICAgIGlmICgiMSIuZXF1YWxzKHNlcF9ieV9zcGFjZSkgJiYgIiIuZXF1YWxzKGN1cnJlbmN5KSkgeworICAgICAgICAgICAgc2VwX2J5X3NwYWNlID0gIjAiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmaW5hbCBTdHJpbmcgc2lnbl9jdXJyZW5jeV9zZXBlcmF0b3IgPSAoIjIiLmVxdWFscyhzZXBfYnlfc3BhY2UpKSA/ICIgIiA6ICIiOworICAgICAgICBmaW5hbCBTdHJpbmcgcXVhbnRpdHlfY3VycmVuY3lfc2VwZXJhdG9yID0gKCIxIi5lcXVhbHMoc2VwX2J5X3NwYWNlKSkgPyAiICIgOiAiIjsKKyAgICAgICAgCisgICAgICAgIGlmICgiMCIuZXF1YWxzKHNpZ25fcG9zbikpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoJygnKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIjEiLmVxdWFscyhzaWduX3Bvc24pKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ24pOworICAgICAgICAgICAgaWYgKHByZWNlZWRzKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduX2N1cnJlbmN5X3NlcGVyYXRvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByZWNlZWRzKSB7CisgICAgICAgICAgICBpZiAoIjMiLmVxdWFscyhzaWduX3Bvc24pKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ25fY3VycmVuY3lfc2VwZXJhdG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoY3VycmVuY3kpOworICAgICAgICAgICAgaWYgKCI0Ii5lcXVhbHMoc2lnbl9wb3NuKSkgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbl9jdXJyZW5jeV9zZXBlcmF0b3IpOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHF1YW50aXR5X2N1cnJlbmN5X3NlcGVyYXRvcik7CisgICAgICAgIH0gICAgICAgCisgICAgICAgIAorICAgICAgICBidWZmZXIuYXBwZW5kKGRpZ2l0KTsKKyAgICAgICAgaWYgKGdyb3VwaW5nID4gMCkgeworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCh0aG91c2FuZHMpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IGdyb3VwaW5nLTE7IGkgPiAwOyBpLS0pIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGRpZ2l0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBidWZmZXIuYXBwZW5kKHJlcXVpcmVkRGlnaXQpOworICAgICAgICBidWZmZXIuYXBwZW5kKGRlY2ltYWwpOworICAgICAgICBpZiAoZnJhY0RpZ2l0cyA+IDApIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBmcmFjRGlnaXRzLTE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChyZXF1aXJlZERpZ2l0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoZGlnaXQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIXByZWNlZWRzKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHF1YW50aXR5X2N1cnJlbmN5X3NlcGVyYXRvcik7CisgICAgICAgICAgICBpZiAoIjEiLmVxdWFscyhzaWduX3Bvc24pKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduX2N1cnJlbmN5X3NlcGVyYXRvcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIjMiLmVxdWFscyhzaWduX3Bvc24pKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNpZ25fY3VycmVuY3lfc2VwZXJhdG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoY3VycmVuY3kpOworICAgICAgICAgICAgaWYgKCI0Ii5lcXVhbHMoc2lnbl9wb3NuKSkgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbl9jdXJyZW5jeV9zZXBlcmF0b3IpOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgCisgICAgICAgIGlmICgiMiIuZXF1YWxzKHNpZ25fcG9zbikpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoc2lnbl9jdXJyZW5jeV9zZXBlcmF0b3IpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChzaWduKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIjAiLmVxdWFscyhzaWduX3Bvc24pKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCcpJyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnRUSU1FKEhhc2h0YWJsZSByZXN1bHQsIEhhc2h0YWJsZSBzb3VyY2UpIHsKKyAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgIkRheU5hbWVzIiwgc291cmNlLmdldCgiZGF5IikpOworICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiRGF5QWJicmV2aWF0aW9ucyIsIHNvdXJjZS5nZXQoImFiZGF5IikpOworICAgICAgICBTdHJpbmdbXSB0ZW1wID0gKFN0cmluZ1tdKXNvdXJjZS5nZXQoImFtX3BtIik7CisgICAgICAgIGlmICh0ZW1wICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZpbmFsIFN0cmluZ1tdIGRlZmF1bHRBTVBNID0gKFN0cmluZ1tdKWdldERlZmF1bHQoIkFtUG1NYXJrZXJzIik7CisgICAgICAgICAgICBpZiAoIiIuZXF1YWxzKHRlbXBbMF0pKSB0ZW1wWzBdID0gZGVmYXVsdEFNUE1bMF07CisgICAgICAgICAgICBpZiAoIiIuZXF1YWxzKHRlbXBbMV0pKSB0ZW1wWzFdID0gZGVmYXVsdEFNUE1bMV07CisgICAgICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiQW1QbU1hcmtlcnMiLCB0ZW1wKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGVtcCA9IChTdHJpbmdbXSlzb3VyY2UuZ2V0KCJtb24iKTsKKyAgICAgICAgaWYgKHRlbXAgIT0gbnVsbCkgeworICAgICAgICAgICAgLy9hZGQgZW1wdHkgMTN0aCBtb250aAorICAgICAgICAgICAgU3RyaW5nW10gbmV3VGVtcCA9IG5ldyBTdHJpbmdbMTNdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wLCAwLCBuZXdUZW1wLCAwLCAxMik7CisgICAgICAgICAgICBuZXdUZW1wWzEyXSA9ICIiOworICAgICAgICAgICAgcmVzdWx0UHV0KHJlc3VsdCwgIk1vbnRoTmFtZXMiLCBuZXdUZW1wKTsKKyAgICAgICAgfQorICAgICAgICB0ZW1wID0gKFN0cmluZ1tdKXNvdXJjZS5nZXQoImFibW9uIik7CisgICAgICAgIGlmICh0ZW1wICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vYWRkIGVtcHR5IDEzdGggbW9udGgKKyAgICAgICAgICAgIFN0cmluZ1tdIG5ld1RlbXAgPSBuZXcgU3RyaW5nWzEzXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGVtcCwgMCwgbmV3VGVtcCwgMCwgMTIpOworICAgICAgICAgICAgbmV3VGVtcFsxMl0gPSAiIjsKKyAgICAgICAgICAgIHJlc3VsdFB1dChyZXN1bHQsICJNb250aEFiYnJldmlhdGlvbnMiLCBuZXdUZW1wKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZmluYWwgU3RyaW5nIHRfZm10X2FtcG0gPSAoU3RyaW5nKXNvdXJjZS5nZXQoInRfZm10X2FtcG0iKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIHRfZm10ID0gKFN0cmluZylzb3VyY2UuZ2V0KCJ0X2ZtdCIpOworICAgICAgICBmaW5hbCBTdHJpbmcgZF90X2ZtdCA9IChTdHJpbmcpc291cmNlLmdldCgiZF90X2ZtdCIpOworICAgICAgICBmaW5hbCBTdHJpbmcgZF9mbXQgPSAoU3RyaW5nKXNvdXJjZS5nZXQoImRfZm10Iik7CisgICAgICAgIGZpbmFsIFN0cmluZyBubGxkYXRlID0gKFN0cmluZylzb3VyY2UuZ2V0KCJubGxkYXRlIik7ICAgLy9ub24tc3RhbmRhcmQgSUJNIHRoaW5nCisgICAgICAgIAorICAgICAgICBmaW5hbCBTdHJpbmcgREVGQVVMVF9EQVRFVElNRV9FTEVNRU5UU1tdID0gKFN0cmluZ1tdKWdldERlZmF1bHQoIkRhdGVUaW1lUGF0dGVybnMiKTsKKyAgICAgICAgZmluYWwgU3RyaW5nW10gZWxlbWVudHMgPSAoU3RyaW5nW10pREVGQVVMVF9EQVRFVElNRV9FTEVNRU5UUy5jbG9uZSgpOworICAgICAgICBmaW5hbCBTdHJpbmcgWF9wYXR0ZXJuID0gZWxlbWVudHNbM107CisgICAgICAgIGZpbmFsIFN0cmluZyB4X3BhdHRlcm4gPSBlbGVtZW50c1s3XTsKKyAgICAgICAgZmluYWwgU3RyaW5nIGNfcGF0dGVybiA9IGVsZW1lbnRzWzRdICsgIiAiICsgZWxlbWVudHNbMF07CisgICAgICAgIAorICAgICAgICBlbGVtZW50c1swXSA9ICh0X2ZtdF9hbXBtICE9IG51bGwgJiYgdF9mbXRfYW1wbS5sZW5ndGgoKSA+IDApID8gdF9mbXRfYW1wbSA6IHRfZm10OworICAgICAgICBlbGVtZW50c1sxXSA9ICh0X2ZtdCAhPSBudWxsKSA/IHRfZm10IDogdF9mbXRfYW1wbTsKKyAgICAgICAgZWxlbWVudHNbMl0gPSAodF9mbXQgIT0gbnVsbCkgPyB0X2ZtdCA6IHRfZm10X2FtcG07CisgICAgICAgIGVsZW1lbnRzWzNdID0gKHRfZm10ICE9IG51bGwpID8gdF9mbXQgOiB0X2ZtdF9hbXBtOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGxvbmdpc2hEYXRlRm9ybWF0ID0gKG5sbGRhdGUgIT0gbnVsbCkgPyBubGxkYXRlIDogZF9mbXQ7CisgICAgICAgIGlmIChkX3RfZm10ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICh0X2ZtdCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy90cnkgdG8gYnVpbGQgYSBkZXRhaWxlZCBkYXRhIGZvcm1hdCBieSB0YWtpbmcgdGhlIAorICAgICAgICAgICAgICAgIC8vZGF0ZS10aW1lIGZvcm1hdCBhbmQgcmVtb3ZpbmcgdGhlIHRpbWUgcG9ydGlvbgorICAgICAgICAgICAgICAgIGludCBuZHggPSBkX3RfZm10LmluZGV4T2YodF9mbXQpOworICAgICAgICAgICAgICAgIGlmIChuZHggPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobmR4IDwgKGRfdF9mbXQubGVuZ3RoKCkgLSB0X2ZtdC5sZW5ndGgoKSkvMikgeworICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudHNbOF0gPSAiezB9IHsxfSI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgbG9uZ2lzaERhdGVGb3JtYXQgPSByZXBsYWNlKGRfdF9mbXQsIHRfZm10LCAiIik7CisgICAgICAgICAgICAgICAgICAgIGxvbmdpc2hEYXRlRm9ybWF0ID0gcmVwbGFjZShsb25naXNoRGF0ZUZvcm1hdCwgIiVaIiwgIiIpOworICAgICAgICAgICAgICAgICAgICBsb25naXNoRGF0ZUZvcm1hdCA9IHJlcGxhY2UobG9uZ2lzaERhdGVGb3JtYXQsICIgICIsICIgIik7CisgICAgICAgICAgICAgICAgICAgIGxvbmdpc2hEYXRlRm9ybWF0ID0gcmVwbGFjZShsb25naXNoRGF0ZUZvcm1hdCwgIiAgIiwgIiAiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxvbmdpc2hEYXRlRm9ybWF0LmNoYXJBdCgwKSA9PSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvbmdpc2hEYXRlRm9ybWF0ID0gbG9uZ2lzaERhdGVGb3JtYXQuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGxvbmdpc2hEYXRlRm9ybWF0LnRyaW0oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxlbWVudHNbNF0gPSBsb25naXNoRGF0ZUZvcm1hdDsKKyAgICAgICAgZWxlbWVudHNbNV0gPSBkX3RfZm10OworICAgICAgICBlbGVtZW50c1s2XSA9IChubGxkYXRlICE9IG51bGwpID8gbmxsZGF0ZSA6IGRfZm10OworICAgICAgICBlbGVtZW50c1s3XSA9IGRfZm10OworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA4OyBpKyspIHsKKyAgICAgICAgICAgIGlmIChlbGVtZW50c1tpXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZWxlbWVudHNbaV0gPSBjb252ZXJ0Rm9ybWF0cyhlbGVtZW50c1tpXSwgWF9wYXR0ZXJuLCB4X3BhdHRlcm4sIGNfcGF0dGVybik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVsZW1lbnRzW2ldID0gREVGQVVMVF9EQVRFVElNRV9FTEVNRU5UU1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiRGF0ZVRpbWVQYXR0ZXJucyIsIGVsZW1lbnRzKTsKKyAgICB9CisgICAKKyAgICBwcml2YXRlIFN0cmluZyBjb252ZXJ0Rm9ybWF0cyhTdHJpbmcgcGF0dGVybiwgU3RyaW5nIFhfcGF0dGVybiwgCisgICAgICAgICAgICBTdHJpbmcgeF9wYXR0ZXJuLCBTdHJpbmcgY19wYXR0ZXJuKSB7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdHBhdHRlcm4gPSBQb3NpeENvbGxhdGlvbkJ1aWxkZXIudW5lc2NhcGUocGF0dGVybik7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJvb2xlYW4gc2luZ2xlRGlnaXQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0cGF0dGVybi5sZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICBjaGFyIGMgPSB0cGF0dGVybi5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyAhPSAnJScpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzaW5nbGVEaWdpdCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICBjID0gdHBhdHRlcm4uY2hhckF0KGkpOworICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgJ2EnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJFRUUiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnQSc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIkVFRUUiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnYic6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIk1NTSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdCJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiTU1NTSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdjJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjX3BhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdDJzogICAvLyoqIGhleSB7amZ9IC0gdGhpcyBpcyBzdXBwb3NlZCB0byBiZSB0aGUgY2VudHVyeSBvbmx5LgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJZWVlZIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ2QnOgorICAgICAgICAgICAgICAgICAgICBpZihzaW5nbGVEaWdpdCA9PSB0cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoImQiKTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJkZCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ0QnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJtbS9kZC95eSIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdlJzoKKyAgICAgICAgICAgICAgICAgICAgaWYoc2luZ2xlRGlnaXQgPT0gdHJ1ZSl7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJkIik7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiZGQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdoJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiTU1NIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ0gnOgorICAgICAgICAgICAgICAgICAgICBpZihzaW5nbGVEaWdpdCA9PSB0cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIkgiKTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJISCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ0knOgorICAgICAgICAgICAgICAgICAgICBpZihzaW5nbGVEaWdpdCA9PSB0cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoImgiKTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJoaCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ2onOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJEREQiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnbSc6CisgICAgICAgICAgICAgICAgICAgIGlmKHNpbmdsZURpZ2l0ID09IHRydWUpeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiTSIpOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIk1NIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiTU0iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnTSc6CisgICAgICAgICAgICAgICAgICAgIGlmKHNpbmdsZURpZ2l0ID09IHRydWUpeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgibSIpOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIm1tIik7CisgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ24nOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcbicpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdwJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiYWEiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAncic6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY29udmVydEZvcm1hdHMoIiVJOiVNOiVTICVwIiwgWF9wYXR0ZXJuLCB4X3BhdHRlcm4sIGNfcGF0dGVybikpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdTJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgic3MiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAndCc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1x0Jyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1QnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNvbnZlcnRGb3JtYXRzKCIlSTolTTolUyIsIFhfcGF0dGVybiwgeF9wYXR0ZXJuLCBjX3BhdHRlcm4pKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnVSc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoInd3Iik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ3cnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJFIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1cnOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJ3dyIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICd4JzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh4X3BhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdYJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChYX3BhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICd5JzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgieXkiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnWSc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoInl5eXkiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnWic6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoInoiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnJSc6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiUiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnLic6CisgICAgICAgICAgICAgICAgICAgIGNoYXIgYzEgPSB0cGF0dGVybi5jaGFyQXQoaSsxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoYzE9PScxJyl7CisgICAgICAgICAgICAgICAgICAgICAgICBzaW5nbGVEaWdpdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCclJyk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjb252ZXJ0Q09MTEFURShIYXNodGFibGUgcmVzdWx0LCBIYXNodGFibGUgc291cmNlKSB7CisgICAgICAgIFN0cmluZ1tdIHNvcnRPcmRlciA9IChTdHJpbmdbXSlzb3VyY2UuZ2V0KCJzb3J0X29yZGVyIik7ICAgIAorICAgICAgICBmaW5hbCBPYmplY3RbXVtdIERFRkFVTFRfQ09MTEFUSU9OPShPYmplY3RbXVtdKSBnZXREZWZhdWx0KCJjb2xsYXRpb25zIik7CisgICAgICAgIGZpbmFsIE9iamVjdFtdW10gZWxlbWVudHM9KE9iamVjdFtdW10pY2xvbmUyREFycihERUZBVUxUX0NPTExBVElPTik7ICAgICAgICAKKyAgICAgICAgaWYgKHNvcnRPcmRlciAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoISJmb3J3YXJkIi5lcXVhbHMoc29ydE9yZGVyWzBdKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRVJST1I6IFVuc3VwcG9ydGVkIHByaW1hcnkgc29ydCBvcmRlcjogIitzb3J0T3JkZXJbMF0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNvcnRPcmRlci5sZW5ndGggPT0gMiAmJiAhImZvcndhcmQiLmVxdWFscyhzb3J0T3JkZXJbMV0pICYmICEiYmFja3dhcmQiLmVxdWFscyhzb3J0T3JkZXJbMV0pKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUjogVW5zdXBwb3J0ZWQgc2Vjb25kYXJ5IHNvcnQgb3JkZXI6ICIrc29ydE9yZGVyWzFdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzb3J0T3JkZXIubGVuZ3RoID09IDMgJiYgISJmb3J3YXJkIi5lcXVhbHMoc29ydE9yZGVyWzJdKSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRVJST1I6IFVuc3VwcG9ydGVkIHRlcnRpYXJ5IHNvcnQgb3JkZXI6ICIrc29ydE9yZGVyWzJdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzb3J0T3JkZXIubGVuZ3RoID4gMykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiV0FSTklORzogU29ydCBsZXZlbHMgb2Ygb3JkZXIgZ3JlYXRlciB0aGFuIHRocmVlIGlnbm9yZWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFBvc2l4Q29sbGF0aW9uQnVpbGRlci5Db2xsYXRpb25SdWxlW10gcnVsZVNvdXJjZSA9IAorICAgICAgICAgICAgKFBvc2l4Q29sbGF0aW9uQnVpbGRlci5Db2xsYXRpb25SdWxlW10pc291cmNlLmdldCgicG9zaXhfc29ydF9ydWxlcyIpOworCisgICAgICAgIGlmIChydWxlU291cmNlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvL2FsbG9jYXRlIGEgbGlzdCBvZiBjb2xsYXRpb25JdGVtcy4gIEFkZCBhbiBleHRyYSBlbnRyeSBmb3Igc2Vjb25kYXJ5IG9yZGVyaW5nCisgICAgICAgICAgICBDb2xsYXRpb25JdGVtW10gcnVsZXMgPSBuZXcgQ29sbGF0aW9uSXRlbVtydWxlU291cmNlLmxlbmd0aCsxXTsKKyAgICAgICAgICAgIFBvc2l4Q29sbGF0aW9uQnVpbGRlci5Db2xsYXRpb25SdWxlIHByZXZSdWxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAvL2FkZCBhbGwgdGhlIHJ1bGVzIGZvciBub24tZXhwYW5kaW5nIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IG5keCA9IDA7IG5keCA8IHJ1bGVTb3VyY2UubGVuZ3RoOyBuZHgrKykgeworICAgICAgICAgICAgICAgIFBvc2l4Q29sbGF0aW9uQnVpbGRlci5Db2xsYXRpb25SdWxlIHJ1bGUgPSBydWxlU291cmNlW25keF07CisgICAgICAgICAgICAgICAgICAgIC8vYWRkIG5vbi1leHBhbmRpbmcgY2hhcmFjdGVycyB0byB0aGUgc29ydCBsaXN0CisgICAgICAgICAgICAgICAgaWYgKHJ1bGUuZ2V0U2l6ZSgpIDw9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGRpZmY7CisgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2UnVsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvL2lmIGl0J3MgdGhlIGZpcnN0IHJ1bGUsIGRvbid0IGNvbXBhcmUgdG8gYW55dGhpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAvL3NlZWsgYmFjayBzbyBpdCBjYW4gYmUgYXBwZW5kZWQgdG8gdGhlIGRlZmF1bHQgcnVsZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzW2ldID0gbmV3IENvbGxhdGlvbkl0ZW0ocnVsZS5nZXRTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvL2NvbXBhcmUgdG8gcHJldmlvdXMgaXRlbQorICAgICAgICAgICAgICAgICAgICAgICAgZGlmZiA9IHByZXZSdWxlLmNvbXBhcmUocnVsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBydWxlc1tpXSA9IG5ldyBDb2xsYXRpb25JdGVtKGRpZmYsIHJ1bGUuZ2V0U3ltYm9sKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJ1bGVzW2krK10uc2V0Q29tbWVudChydWxlLmdldFNvdXJjZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgcHJldlJ1bGUgPSBydWxlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL2FkZCBydWxlcyBmb3IgZXhwYW5kaW5nIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIFN0cmluZyBwcmV2U2VlayA9IG51bGw7CisgICAgICAgICAgICBwcmV2UnVsZSA9IG51bGw7CisgICAgICAgICAgICBmb3IgKGludCBuZHggPSAwOyBuZHggPCBydWxlU291cmNlLmxlbmd0aDsgbmR4KyspIHsKKyAgICAgICAgICAgICAgICBQb3NpeENvbGxhdGlvbkJ1aWxkZXIuQ29sbGF0aW9uUnVsZSBydWxlID0gcnVsZVNvdXJjZVtuZHhdOworICAgICAgICAgICAgICAgIGlmIChydWxlLmdldFNpemUoKSA+IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vZmluZCBvdXQgd2hhdCB0aGlzIGNoYXJhY3RlciBleHBhbmRzIHRvCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzZWVrID0gcnVsZS5nZXRFeHBhbnNpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzZWVrLmVxdWFscyhwcmV2U2VlaykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2lmIGl0J3Mgbm90IHRoZSBzYW1lIGFzIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3RoZW4gc2VlayB0byB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBleHBhbnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2FuZCBjb21wYXJlIHRvIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l4Q29sbGF0aW9uQnVpbGRlci5Db2xsYXRpb25SdWxlIHNlZWtSdWxlID0gcnVsZS5zZWVrc1RvUnVsZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXNbaV0gPSBuZXcgQ29sbGF0aW9uSXRlbSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vla1J1bGUuY29tcGFyZShydWxlKSwgcnVsZS5nZXRTeW1ib2woKSwgcnVsZS5nZXRFeHBhbnNpb24oKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2U2VlayA9IHNlZWs7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJldlJ1bGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vaXQgZXhwYW5kcyB0byB0aGUgc2FtZSBjaGFyYWN0ZXJzIGFzIHRoZSBwcmV2aW91cyBleHBhbnNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9zbyBjb21wYXJlIHRvIHRoZSBwcmV2aW91cyBleHBhbnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzW2ldID0gbmV3IENvbGxhdGlvbkl0ZW0oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZSdWxlLmNvbXBhcmUocnVsZSksIHJ1bGUuZ2V0U3ltYm9sKCksIHByZXZSdWxlLmdldFN5bWJvbCgpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL1RoZSB1bmxpa2VseSBjYXNlIHRoYXQgdGhlIGZpcnN0IGNoYXJhY3RlciB3aWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9iZSBhbiBleHBhbmRpbmcgY2hhcmFjdGVyLi4uSSBkb24ndCB0aGluaworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhpcyBpcyBldmVuIHBvc3NpYmxlLi4uCisgICAgICAgICAgICAgICAgICAgICAgICBydWxlc1tpXSA9IG5ldyBDb2xsYXRpb25JdGVtKHJ1bGUuZ2V0U3ltYm9sKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJ1bGVzW2krK10uc2V0Q29tbWVudChydWxlLmdldFNvdXJjZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJldlJ1bGUgPSBydWxlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNvcnRPcmRlci5sZW5ndGg+MCAmJiAiYmFja3dhcmQiLmVxdWFscyhzb3J0T3JkZXJbMF0pKSB7CisgICAgICAgICAgICAgICAgZWxlbWVudHNbMV1bMV0gPSAidHJ1ZSI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGVsZW1lbnRzWzFdWzFdID0gImZhbHNlIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsZW1lbnRzWzJdWzFdPShPYmplY3QpcnVsZXM7CisgICAgICAgICAgICByZXN1bHRQdXQocmVzdWx0LCAiY29sbGF0aW9ucyIsIGVsZW1lbnRzKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlc3VsdFB1dChIYXNodGFibGUgcmVzdWx0VGFibGUsIFN0cmluZyB0YWcsIE9iamVjdCB2YWx1ZSkgeworICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuOworICAgICAgICByZXN1bHRUYWJsZS5wdXQodGFnLCB2YWx1ZSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgT2JqZWN0IGdldERlZmF1bHQoU3RyaW5nIGRlc2lyZWRSZXNvdXJjZSkgeworICAgICAgICByZXR1cm4gZ2V0UGFyZW50QnVuZGxlKCkuZ2V0T2JqZWN0KGRlc2lyZWRSZXNvdXJjZSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgUmVzb3VyY2VCdW5kbGUgZ2V0UGFyZW50QnVuZGxlKCkgeworICAgICAgICByZXR1cm4gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKCJjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXIubXlMb2NhbGVFbGVtZW50cyIsIHBhcmVudExvY2FsZSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIHJlcGxhY2UoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgU3RyaW5nIHJlcGxhY2VtZW50KSB7CisgICAgICAgIGlmICh0YXJnZXQuZXF1YWxzKHJlcGxhY2VtZW50KSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpbnQgbGFzdE5keCA9IDA7CisgICAgICAgICAgICBpbnQgbmR4ID0gc291cmNlLmluZGV4T2YodGFyZ2V0KTsKKyAgICAgICAgICAgIHdoaWxlIChuZHggPj0gMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc291cmNlLnN1YnN0cmluZyhsYXN0TmR4LCBuZHgpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHJlcGxhY2VtZW50KTsKKyAgICAgICAgICAgICAgICBuZHggKz0gdGFyZ2V0Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgIGxhc3ROZHggPSBuZHg7CisgICAgICAgICAgICAgICAgbmR4ID0gc291cmNlLmluZGV4T2YodGFyZ2V0LCBuZHgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzb3VyY2Uuc3Vic3RyaW5nKGxhc3ROZHgpKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKy8ve3tERUNMQVJFX0NPTlRST0xTCisvL319Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9RdW90ZVRyYW5zaXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUXVvdGVUcmFuc2l0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjBmODc0YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUXVvdGVUcmFuc2l0aW9uLmphdmEKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS5pby4qOworCitwdWJsaWMgY2xhc3MgUXVvdGVUcmFuc2l0aW9uIGV4dGVuZHMgQ29tcGxleFRyYW5zaXRpb24geworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgUXVvdGVUcmFuc2l0aW9uIEdMT0JBTCA9IG5ldyBRdW90ZVRyYW5zaXRpb24oU1VDQ0VTUyk7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgU1RSSU5HX0NIQVIgPSAnIic7CisgICAgCisgICAgcHVibGljIFF1b3RlVHJhbnNpdGlvbihpbnQgc3VjY2VzcykgeworICAgICAgICBzdXBlcihzdWNjZXNzKTsKKyAgICAgICAgICAgIC8ve3tJTklUX0NPTlRST0xTCisgICAgICAgIC8vfX0KKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYykgeworICAgICAgICByZXR1cm4gU1RSSU5HX0NIQVIgPT0gKGNoYXIpYzsKKyAgICB9CisgICAgcHJvdGVjdGVkIExleC5UcmFuc2l0aW9uW11bXSBnZXRTdGF0ZXMoKSB7CisgICAgICAgIHJldHVybiBzdGF0ZXM7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXMgPSB7CisgICAgICAgIHsgLy9zdGF0ZSAwOiAKKyAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oU1RSSU5HX0NIQVIsIExleC5JR05PUkVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oImlsbGVnYWwgY2hhcmFjdGVyIGluIHF1b3RlZCBzdHJpbmciKQorICAgICAgICB9LAorICAgICAgICB7IC8vc3RhdGUgMToKKyAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oU1RSSU5HX0NIQVIsIExleC5JR05PUkVfQ09OU1VNRSwgU1VDQ0VTUyksCisgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oRU9MVHJhbnNpdGlvbi5FT0xfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgLTIpLAorICAgICAgICAgICAgbmV3IEVzY2FwZVRyYW5zaXRpb24oLTEpLAorICAgICAgICAgICAgbmV3IFN5bWJvbFRyYW5zaXRpb24oLTEpLAorICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKC0yKSwKKyAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTEpCisgICAgICAgIH0sCisgICAgICAgIHsgLy9zdGF0ZSAyOiBmYWlsdXJlIGZyb20gZW9mCisgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigidW50ZXJtaW5hdGVkIHN0cmluZyIpCisgICAgICAgIH0KKyAgICB9OworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgTGV4LlRyYW5zaXRpb25bXVtdIHN0YXRlcyA9IHt7IAorICAgICAgICAgICAgICAgIG5ldyBRdW90ZVRyYW5zaXRpb24oU1VDQ0VTUyksCisgICAgICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKCksCisgICAgICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oImJhZCB0ZXN0IGlucHV0IikKKyAgICAgICAgICAgIH19OworICAgICAgICAgICAgRXNjYXBlVHJhbnNpdGlvbi5zZXRFc2NhcGVDaGFyKCcvJyk7CisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9ICJcImhlbGxvPFwiLz4+L2QzMndvcmxkXCJcIjxvbmU+L1xuPHR3bz5cIiI7CisgICAgICAgICAgICBTdHJpbmdSZWFkZXIgc3IgPSBuZXcgU3RyaW5nUmVhZGVyKHRleHQpOworICAgICAgICAgICAgUHVzaGJhY2tSZWFkZXIgcHIgPSBuZXcgUHVzaGJhY2tSZWFkZXIoc3IpOworICAgICAgICAgICAgTGV4IHBhcnNlciA9IG5ldyBMZXgoc3RhdGVzLCBwcik7CisgICAgICAgICAgICAvL3BhcnNlci5kZWJ1Zyh0cnVlKTsKKyAgICAgICAgICAgIGludCBzID0gcGFyc2VyLm5leHRUb2tlbigpOworICAgICAgICAgICAgd2hpbGUgKHMgPT0gU1VDQ0VTUykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwYXJzZXIuZ2V0RGF0YSgpKTsKKyAgICAgICAgICAgICAgICBzID0gcGFyc2VyLm5leHRUb2tlbigpOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOworICAgICAgICB9CisgICAgfQorICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9SYW5nZVRyYW5zaXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUmFuZ2VUcmFuc2l0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjcwYTAwMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvUmFuZ2VUcmFuc2l0aW9uLmphdmEKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKyAKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCisKK3B1YmxpYyBjbGFzcyBSYW5nZVRyYW5zaXRpb24gZXh0ZW5kcyBDb21wbGV4VHJhbnNpdGlvbiB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBSYW5nZVRyYW5zaXRpb24gR0xPQkFMID0gbmV3IFJhbmdlVHJhbnNpdGlvbihTVUNDRVNTKTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBSQU5HRV9DSEFSUyA9ICIuLi4iOworICAgIHB1YmxpYyBSYW5nZVRyYW5zaXRpb24oaW50IHN1Y2Nlc3MpeworICAgICAgICBzdXBlcihzdWNjZXNzKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gYWNjZXB0cyhpbnQgYyl7CisgICAgICAgIHJldHVybiBSQU5HRV9DSEFSUy5pbmRleE9mKChjaGFyKWMpID49MDsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIExleC5UcmFuc2l0aW9uW11bXWdldFN0YXRlcygpeworICAgICAgICByZXR1cm4gc3RhdGVzOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzPSB7CisKKyAgICAgICAgeyAvL3N0YXRlIDA6IAorICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKFJBTkdFX0NIQVJTLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJpbGxlZ2FsIHNwYWNlIGNoYXJhY3RlciIpCisgICAgICAgIH0sCisgICAgICAgIHsgLy9zdGF0ZSAxOgorICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKFNVQ0NFU1MpLAorICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKFJBTkdFX0NIQVJTLCBMZXguSUdOT1JFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgIG5ldyBMZXguRGVmYXVsdFRyYW5zaXRpb24oTGV4LklHTk9SRV9QVVRCQUNLLCBTVUNDRVNTKQorICAgICAgICB9LAorICAgIH07Cit9CisgICAgICAgICAgICAKKyAgICAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1NvcnRlZFZlY3Rvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Tb3J0ZWRWZWN0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OTJiNTFiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Tb3J0ZWRWZWN0b3IuamF2YQpAQCAtMCwwICsxLDM1MCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyOworCitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CisvKioKKyAgICBJbXBsZW1lbnRzIGEgc29ydGVkIHZlY3Rvci4gWW91IGNhbiBhZGQgYW55dGhpbmcgdG8gaXQ7IHdoZW4geW91IGFjY2VzcyBhbnkgZWxlbWVudCwgaXQgc29ydHMKKyAgICB0aGUgYXJyYXkgaW50ZXJuYWxseSB3aGVuIG5lY2Vzc2FyeS4KKyAgICA8cD5BIENvbXBhcmF0b3IgaXMgdXNlZCB0byBjb21wYXJlIHRoZSBlbGVtZW50cywgYWxsb3dpbmcgYXJiaXRyYXJ5IG9yZGVyaW5ncy4KKyAgICBJZiBubyBDb21wYXJhdG9yIGlzIHN1cHBsaWVkLCB0aGVuIG9uZSBpcyBjb25zdHJ1Y3RlZCBiYXNlZCBvbiB0aGUgdHlwZQorICAgIG9mIHRoZSBmaXJzdCBlbGVtZW50IGFkZGVkLiBPbmx5IE51bWJlcnMgYW5kIENvbXBhcmFibGVzIGFyZSBoYW5kbGVkLgorICAgIDxwPkR1cGxpY2F0ZXMgYXJlIGFsbG93ZWQuCisqLworZmluYWwgcHVibGljIGNsYXNzIFNvcnRlZFZlY3RvciB7CisgICAgLyoqCisgICAgICAgIENvcGllcyBlbGVtZW50cyBvZiB2ZWN0b3IsIGVudW1lcmF0aW9uIG9yIGFycmF5CisgICAgICAgIE5vdGU6IHRoZSBvYmplY3RzIGluIHRoZSBzb3VyY2UgYXJlIE5PVCBjbG9uZWQuCisgICAgICAgIERvIG5vdCBjaGFuZ2UgdGhlbSBvciB0aGUgc29ydGluZyB3aWxsIGJlIGludmFsaWQuCisgICAgKi8KKyAgICBwdWJsaWMgU29ydGVkVmVjdG9yKE9iamVjdFtdIG5ld1ZhbHVlcywgQ29tcGFyYXRvciBjb21wYXJhdG9yKSB7CisgICAgICAgIHRoaXMuY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7CisgICAgICAgIGFkZEVsZW1lbnRzKG5ld1ZhbHVlcyk7CisgICAgICAgICAgICAvL3t7SU5JVF9DT05UUk9MUworLy99fQorfQorCisgICAgcHVibGljIFNvcnRlZFZlY3RvcihWZWN0b3IgbmV3VmFsdWVzLCBDb21wYXJhdG9yIGNvbXBhcmF0b3IpIHsKKyAgICAgICAgdGhpcy5jb21wYXJhdG9yID0gY29tcGFyYXRvcjsKKyAgICAgICAgYWRkRWxlbWVudHMobmV3VmFsdWVzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU29ydGVkVmVjdG9yKEVudW1lcmF0aW9uIG5ld1ZhbHVlcywgQ29tcGFyYXRvciBjb21wYXJhdG9yKSB7CisgICAgICAgIHRoaXMuY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7CisgICAgICAgIGFkZEVsZW1lbnRzKG5ld1ZhbHVlcyk7CisgICAgfQorCisgICAgcHVibGljIFNvcnRlZFZlY3RvcihPYmplY3RbXSBuZXdWYWx1ZXMpIHsKKyAgICAgICAgYWRkRWxlbWVudHMobmV3VmFsdWVzKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU29ydGVkVmVjdG9yKENvbXBhcmF0b3IgY29tcGFyYXRvcikgeworICAgICAgICB0aGlzLmNvbXBhcmF0b3IgPSBjb21wYXJhdG9yOworICAgIH0KKworICAgIHB1YmxpYyBTb3J0ZWRWZWN0b3IoVmVjdG9yIG5ld1ZhbHVlcykgeworICAgICAgICBhZGRFbGVtZW50cyhuZXdWYWx1ZXMpOworICAgIH0KKworICAgIHB1YmxpYyBTb3J0ZWRWZWN0b3IoRW51bWVyYXRpb24gbmV3VmFsdWVzKSB7CisgICAgICAgIGFkZEVsZW1lbnRzKG5ld1ZhbHVlcyk7CisgICAgfQorCisgICAgcHVibGljIFNvcnRlZFZlY3RvcigpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgQWRkcyBvbmUgZWxlbWVudC4KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZEVsZW1lbnQoT2JqZWN0IGVsZW1lbnQpIHsKKyAgICAgICAgaWYgKGNvdW50ID49IGRhdGFBcnJheS5sZW5ndGgpIHNldENhcGFjaXR5KGNvdW50KjIgKyAxNyk7CisgICAgICAgIGRhdGFBcnJheVtjb3VudCsrXSA9IGVsZW1lbnQ7CisgICAgICAgIGlzVmFsaWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgQWRkcyBtdWx0aXBsZSBlbGVtZW50cy4gRmFzdGVyIHRoYW4gYWRkaW5nIG9uZSBhdCBhIHRpbWUuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRFbGVtZW50cyhPYmplY3RbXSBuZXdWYWx1ZXMpIHsKKyAgICAgICAgaW50IG5ld0NvdW50ID0gY291bnQgKyBuZXdWYWx1ZXMubGVuZ3RoOworICAgICAgICBpZiAobmV3Q291bnQgPiBkYXRhQXJyYXkubGVuZ3RoKSBzZXRDYXBhY2l0eShuZXdDb3VudCk7CisgICAgICAgIGZvciAoaW50IGkgPSBjb3VudDsgaSA8IG5ld0NvdW50OyArK2kpCisgICAgICAgICAgICBkYXRhQXJyYXlbaV0gPSBuZXdWYWx1ZXNbaS1jb3VudF07CisgICAgICAgIGNvdW50ID0gbmV3Q291bnQ7CisgICAgICAgIGlzVmFsaWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRFbGVtZW50cyhWZWN0b3IgbmV3VmFsdWVzKSB7CisgICAgICAgIGludCBuZXdDb3VudCA9IGNvdW50ICsgbmV3VmFsdWVzLnNpemUoKTsKKyAgICAgICAgaWYgKG5ld0NvdW50ID4gZGF0YUFycmF5Lmxlbmd0aCkgc2V0Q2FwYWNpdHkobmV3Q291bnQpOworICAgICAgICBmb3IgKGludCBpID0gY291bnQ7IGkgPCBuZXdDb3VudDsgKytpKQorICAgICAgICAgICAgZGF0YUFycmF5W2ldID0gbmV3VmFsdWVzLmVsZW1lbnRBdChpLWNvdW50KTsKKyAgICAgICAgY291bnQgPSBuZXdDb3VudDsKKyAgICAgICAgaXNWYWxpZCA9IGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEVsZW1lbnRzKEVudW1lcmF0aW9uIG5ld1ZhbHVlcykgeworICAgICAgICB3aGlsZSAobmV3VmFsdWVzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBhZGRFbGVtZW50KG5ld1ZhbHVlcy5uZXh0RWxlbWVudCgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAgICBSZW1vdmVzIGVsZW1lbnRzIGF0IGluZGljZXMgPj0gc3RhcnRJbmRleCBhbmQgPCBlbmRJbmRleAorICAgICovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlRWxlbWVudHMoaW50IHN0YXJ0SW5kZXgsIGludCBlbmRJbmRleCkgeworICAgICAgICBpZiAoIWlzVmFsaWQpIHZhbGlkYXRlKCk7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZGF0YUFycmF5LGVuZEluZGV4LGRhdGFBcnJheSxzdGFydEluZGV4LGNvdW50IC0gZW5kSW5kZXgpOworICAgICAgICBmb3IgKGludCBpID0gY291bnQgLSAoZW5kSW5kZXggLSBzdGFydEluZGV4KTsgaSA8IGNvdW50OysraSkKKyAgICAgICAgICAgIGRhdGFBcnJheVtpXSA9IG51bGw7ICAgLy8gZnJlZSB1cCBzdG9yYWdlCisgICAgICAgIGNvdW50IC09IChlbmRJbmRleCAtIHN0YXJ0SW5kZXgpOworICAgIH0KKworICAgIC8qKgorICAgICAgICBTZXRzIGNvbXBhcmF0b3IKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENvbXBhcmF0b3IoQ29tcGFyYXRvciBjb21wYXJhdG9yKSB7CisgICAgICAgIHRoaXMuY29tcGFyYXRvciA9IGNvbXBhcmF0b3I7CisgICAgICAgIGlzVmFsaWQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgQ29tcGFyYXRvciBnZXRDb21wYXJhdG9yKCkgeworICAgICAgICBpZiAoY29tcGFyYXRvciA9PSBudWxsKSB2YWxpZGF0ZUNvbXBhcmF0b3IoKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyYXRvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgR2V0cyBzaXplLCB0aGUgYWN0dWFsIG51bWJlciBvZiBlbGVtZW50cy4KKyAgICAqLworICAgIHB1YmxpYyBpbnQgc2l6ZSgpIHsKKyAgICAgICAgcmV0dXJuIGNvdW50OworICAgIH0KKworICAgIC8qKgorICAgICAgICBHZXRzIGNhcGFjaXR5LCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIHlvdSBjYW4gaGF2ZSB3aXRob3V0IGdyb3dpbmcgdGhlIGFycmF5LgorICAgICovCisgICAgcHVibGljIGludCBjYXBhY2l0eSgpIHsKKyAgICAgICAgcmV0dXJuIGRhdGFBcnJheS5sZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICAgIFNldHMgY2FwYWNpdHksIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgeW91IGNhbiBoYXZlIHdpdGhvdXQgZ3Jvd2luZyB0aGUgYXJyYXkuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDYXBhY2l0eShpbnQgbmV3U2l6ZSkgeworICAgICAgICBPYmplY3RbXSB0ZW1wID0gbmV3IE9iamVjdFtuZXdTaXplXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShkYXRhQXJyYXksIDAsIHRlbXAsIDAsIE1hdGgubWluKGNvdW50LG5ld1NpemUpKTsKKyAgICAgICAgZGF0YUFycmF5ID0gdGVtcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICAgVHJpbXMgdGhlIGFycmF5LgorICAgICovCisgICAgcHVibGljIHZvaWQgdHJpbVRvU2l6ZSgpIHsKKyAgICAgICAgc2V0Q2FwYWNpdHkoY291bnQpOworICAgIH0KKworICAgIC8qKgorICAgICAgICBHZXRzIHRoZSBlbGVtZW50IGF0IHRoZSBpbmRleAorICAgICovCisgICAgcHVibGljIE9iamVjdCBlbGVtZW50QXQgKGludCBpbmRleCkgeworICAgICAgICBpZiAoIWlzVmFsaWQpIHZhbGlkYXRlKCk7CisgICAgICAgIGlmIChpbmRleCA+PSBjb3VudCkgcmV0dXJuIGRhdGFBcnJheVtkYXRhQXJyYXkubGVuZ3RoXTsKKyAgICAgICAgcmV0dXJuIGRhdGFBcnJheVtpbmRleF07CisgICAgfQorCisgICAgLyoqCisgICAgICAgIFNlZXMgd2hldGhlciB0aGUgdmVjdG9yIGNvbnRhaW5zIHRoZSBvYmplY3QKKyAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zIChPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgaW50IGluZGV4ID0gaW5kZXhPZih2YWx1ZSk7CisgICAgICAgIHJldHVybiAoaW5kZXggPj0gMCAmJiBjb21wYXJhdG9yLmNvbXBhcmUodmFsdWUsZGF0YUFycmF5W2luZGV4XSkgPT0gMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICAgIEdldHMgYW4gZW51bWVyYXRpb24KKyAgICAqLworICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBlbGVtZW50cygpIHsKKyAgICAgICAgaWYgKCFpc1ZhbGlkKSB2YWxpZGF0ZSgpOworICAgICAgICByZXR1cm4gbmV3IEFycmF5RW51bWVyYXRpb24oZGF0YUFycmF5LDAsY291bnQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNvcHlJbnRvKE9iamVjdFtdIHRvRmlsbCkgeworICAgICAgICBpZiAoIWlzVmFsaWQpIHZhbGlkYXRlKCk7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZGF0YUFycmF5LDAsdG9GaWxsLDAsdG9GaWxsLmxlbmd0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICAgIEZpbmRzIGZpcnN0IGluZGV4IHdob3NlIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBzZWFyY2hWYWx1ZQorICAgICAgICBJZiB0aGVyZSBhcmUgbm9uZSwgcmV0dXJucyAtMQorICAgICovCisgICAgcHVibGljIGludCBpbmRleE9mKE9iamVjdCBzZWFyY2hWYWx1ZSkKKyAgICB7CisgICAgICAgIGlmICghaXNWYWxpZCkgdmFsaWRhdGUoKTsKKyAgICAgICAgaW50IGluZGV4ID0gc3RhcnRJbmRleDsKKyAgICAgICAgaWYgKDAgPD0gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbYXV4U3RhcnRdKSkgeworICAgICAgICAgICAgaW5kZXggKz0gYXV4U3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgLy8gdmVyeSBmYXN0LCBjb21wbGV0ZWx5IHVucm9sbGVkIGJpbmFyeSBzZWFyY2gKKyAgICAgICAgLy8gZWFjaCBjYXNlIGRlbGliZXJhdGVseSBmYWxscyB0aHJvdWdoIHRvIHRoZSBuZXh0CisgICAgICAgIHN3aXRjaCAocG93ZXIpIHsKKyAgICAgICAgY2FzZSAzMTogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDQwMDAwMDAwXSkpIGluZGV4IC09IDB4NDAwMDAwMDA7CisgICAgICAgIGNhc2UgMzA6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgyMDAwMDAwMF0pKSBpbmRleCAtPSAweDIwMDAwMDAwOworICAgICAgICBjYXNlIDI5OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MTAwMDAwMDBdKSkgaW5kZXggLT0gMHgxMDAwMDAwMDsKKworICAgICAgICBjYXNlIDI4OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4ODAwMDAwMF0pKSBpbmRleCAtPSAweDgwMDAwMDA7CisgICAgICAgIGNhc2UgMjc6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg0MDAwMDAwXSkpIGluZGV4IC09IDB4NDAwMDAwMDsKKyAgICAgICAgY2FzZSAyNjogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDIwMDAwMDBdKSkgaW5kZXggLT0gMHgyMDAwMDAwOworICAgICAgICBjYXNlIDI1OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MTAwMDAwMF0pKSBpbmRleCAtPSAweDEwMDAwMDA7CisKKyAgICAgICAgY2FzZSAyNDogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDgwMDAwMF0pKSBpbmRleCAtPSAweDgwMDAwMDsKKyAgICAgICAgY2FzZSAyMzogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDQwMDAwMF0pKSBpbmRleCAtPSAweDQwMDAwMDsKKyAgICAgICAgY2FzZSAyMjogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDIwMDAwMF0pKSBpbmRleCAtPSAweDIwMDAwMDsKKyAgICAgICAgY2FzZSAyMTogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDEwMDAwMF0pKSBpbmRleCAtPSAweDEwMDAwMDsKKworICAgICAgICBjYXNlIDIwOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4ODAwMDBdKSkgaW5kZXggLT0gMHg4MDAwMDsKKyAgICAgICAgY2FzZSAxOTogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDQwMDAwXSkpIGluZGV4IC09IDB4NDAwMDA7CisgICAgICAgIGNhc2UgMTg6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgyMDAwMF0pKSBpbmRleCAtPSAweDIwMDAwOworICAgICAgICBjYXNlIDE3OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MTAwMDBdKSkgaW5kZXggLT0gMHgxMDAwMDsKKworICAgICAgICBjYXNlIDE2OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4ODAwMF0pKSBpbmRleCAtPSAweDgwMDA7CisgICAgICAgIGNhc2UgMTU6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHg0MDAwXSkpIGluZGV4IC09IDB4NDAwMDsKKyAgICAgICAgY2FzZSAxNDogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDIwMDBdKSkgaW5kZXggLT0gMHgyMDAwOworICAgICAgICBjYXNlIDEzOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MTAwMF0pKSBpbmRleCAtPSAweDEwMDA7CisKKyAgICAgICAgY2FzZSAxMjogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDgwMF0pKSBpbmRleCAtPSAweDgwMDsKKyAgICAgICAgY2FzZSAxMTogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDQwMF0pKSBpbmRleCAtPSAweDQwMDsKKyAgICAgICAgY2FzZSAxMDogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDIwMF0pKSBpbmRleCAtPSAweDIwMDsKKyAgICAgICAgY2FzZSAgOTogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDEwMF0pKSBpbmRleCAtPSAweDEwMDsKKworICAgICAgICBjYXNlICA4OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4ODBdKSkgaW5kZXggLT0gMHg4MDsKKyAgICAgICAgY2FzZSAgNzogaWYgKDAgPiBjb21wYXJhdG9yLmNvbXBhcmUoc2VhcmNoVmFsdWUsIGRhdGFBcnJheVtpbmRleC0weDQwXSkpIGluZGV4IC09IDB4NDA7CisgICAgICAgIGNhc2UgIDY6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXgtMHgyMF0pKSBpbmRleCAtPSAweDIwOworICAgICAgICBjYXNlICA1OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MTBdKSkgaW5kZXggLT0gMHgxMDsKKworICAgICAgICBjYXNlICA0OiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4OF0pKSBpbmRleCAtPSA4OworICAgICAgICBjYXNlICAzOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4NF0pKSBpbmRleCAtPSA0OworICAgICAgICBjYXNlICAyOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4Ml0pKSBpbmRleCAtPSAyOworICAgICAgICBjYXNlICAxOiBpZiAoMCA+IGNvbXBhcmF0b3IuY29tcGFyZShzZWFyY2hWYWx1ZSwgZGF0YUFycmF5W2luZGV4LTB4MV0pKSBpbmRleCAtPSAxOworCisgICAgICAgIGNhc2UgIDA6IGlmICgwID4gY29tcGFyYXRvci5jb21wYXJlKHNlYXJjaFZhbHVlLCBkYXRhQXJyYXlbaW5kZXhdKSkgaW5kZXggLT0gMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT0gcHJpdmF0ZXMgPT09PT09PT09PT09PT09PT09CisgICAgLyoqIE9ubHkgY2FsbCBpZiBjb21wYXJhdG9yIGlzIG51bGwKKyAgICAqLworICAgIHByaXZhdGUgdm9pZCB2YWxpZGF0ZUNvbXBhcmF0b3IoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBPYmplY3QgdHJpYWwgPSBkYXRhQXJyYXlbMF07CisgICAgICAgICAgICBpZiAodHJpYWwgaW5zdGFuY2VvZiBGbG9hdCB8fCB0cmlhbCBpbnN0YW5jZW9mIERvdWJsZSkgeworICAgICAgICAgICAgICAgIGNvbXBhcmF0b3IgPSBuZXcgRG91YmxlQ29tcGFyYXRvcigpOworICAgICAgICAgICAgfSBlbHNlIGlmICh0cmlhbCBpbnN0YW5jZW9mIEludGVnZXIpIHsKKyAgICAgICAgICAgICAgICBjb21wYXJhdG9yID0gbmV3IEludGVnZXJDb21wYXJhdG9yKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRyaWFsIGluc3RhbmNlb2YgTnVtYmVyKSB7CisgICAgICAgICAgICAgICAgY29tcGFyYXRvciA9IG5ldyBMb25nQ29tcGFyYXRvcigpOworICAgICAgICAgICAgfSBlbHNlIGlmICh0cmlhbCBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgICAgICAgICAgIGNvbXBhcmF0b3IgPSBuZXcgU3RyaW5nQ29tcGFyYXRvcigpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb21wYXJhdG9yID0gbmV3IENvbXBhcmFibGVDb21wYXJhdG9yKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7fSAvLyBsZWF2ZSBudWxsCisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHZhbGlkYXRlKCkgeworICAgICAgICBpZiAoaXNWYWxpZCkgcmV0dXJuOworICAgICAgICAvLyBpZiB0aGUgQ29tcGFyYXRvciBpcyBudWxsLCB0aGVuIHBpY2sgYSByZWFzb25hYmxlIG9uZQorICAgICAgICBpZiAoY29tcGFyYXRvciA9PSBudWxsKSB2YWxpZGF0ZUNvbXBhcmF0b3IoKTsKKworICAgICAgICAvLyBkZXRlcm1pbmUgc2VhcmNoIHBhcmFtZXRlcnMKKworICAgICAgICAvLyBmaW5kIGxlYXN0IHBvd2VyIG9mIDIgZ3JlYXRlciB0aGFuIGNvdW50CisgICAgICAgIGZvciAocG93ZXIgPSBleHAyLmxlbmd0aC0xOyBwb3dlciA+IDAgJiYgY291bnQgPCBleHAyW3Bvd2VyXTsgcG93ZXItLSkge30KKworICAgICAgICAvLyBkZXRlcm1pbmUgdGhlIHN0YXJ0aW5nIHBvaW50CisgICAgICAgIGlmIChleHAyW3Bvd2VyXSAhPSBjb3VudCkgeworICAgICAgICAgICAgYXV4U3RhcnQgPSBjb3VudCAtIGV4cDJbcG93ZXJdOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXV4U3RhcnQgPSAwOworICAgICAgICB9CisgICAgICAgIHN0YXJ0SW5kZXggPSBleHAyW3Bvd2VyXS0xOworCisgICAgICAgIC8vIHNoZWxsIHNvcnQuIExhdGVyLCBtYWtlIHRoaXMgYSBRdWlja1NvcnQKKyAgICAgICAgaW50IGxvID0gMDsKKyAgICAgICAgaW50IHVwID0gY291bnQtMTsKKyAgICAgICAgZm9yIChpbnQgc3RlcCA9IHVwIC0gbG8gKyAxOyBzdGVwID4gMTspIHsKKyAgICAgICAgICAgIGlmIChzdGVwIDwgNSkKKyAgICAgICAgICAgICAgICBzdGVwID0gMTsKKyAgICAgICAgICAgIGVsc2Ugc3RlcCA9ICg1ICogc3RlcCAtIDEpIC8gMTE7CisgICAgICAgICAgICBmb3IgKGludCBpID0gdXAgLSBzdGVwOyBpID49IGxvOyAtLWkpIHsKKyAgICAgICAgICAgICAgICBPYmplY3QgdGVtcCA9IGRhdGFBcnJheVtpXTsKKyAgICAgICAgICAgICAgICBpbnQgajsKKyAgICAgICAgICAgICAgICBmb3IgKGogPSBpICsgc3RlcDsgaiA8PSB1cCAmJiAwID4gY29tcGFyYXRvci5jb21wYXJlKGRhdGFBcnJheVtqXSx0ZW1wKTsgaiArPSBzdGVwKQorICAgICAgICAgICAgICAgICAgICBkYXRhQXJyYXlbai1zdGVwXSA9IGRhdGFBcnJheVtqXTsKKyAgICAgICAgICAgICAgICBkYXRhQXJyYXlbai1zdGVwXSA9IHRlbXA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaXNWYWxpZCA9IHRydWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBPYmplY3RbXSBkYXRhQXJyYXkgPSBuZXcgT2JqZWN0WzE2XTsKKyAgICBwcml2YXRlIENvbXBhcmF0b3IgY29tcGFyYXRvcjsKKyAgICBwcml2YXRlIGludCBjb3VudCA9IDA7CisgICAgcHJpdmF0ZSBib29sZWFuIGlzVmFsaWQgPSBmYWxzZTsKKyAgICBwcml2YXRlIGludCBhdXhTdGFydDsKKyAgICBwcml2YXRlIGludCBzdGFydEluZGV4OworICAgIHByaXZhdGUgaW50IHBvd2VyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBleHAyW10gPSB7CisgICAgICAgIDB4MSwgMHgyLCAweDQsIDB4OCwKKyAgICAgICAgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwKKyAgICAgICAgMHgxMDAsIDB4MjAwLCAweDQwMCwgMHg4MDAsCisgICAgICAgIDB4MTAwMCwgMHgyMDAwLCAweDQwMDAsIDB4ODAwMCwKKyAgICAgICAgMHgxMDAwMCwgMHgyMDAwMCwgMHg0MDAwMCwgMHg4MDAwMCwKKyAgICAgICAgMHgxMDAwMDAsIDB4MjAwMDAwLCAweDQwMDAwMCwgMHg4MDAwMDAsCisgICAgICAgIDB4MTAwMDAwMCwgMHgyMDAwMDAwLCAweDQwMDAwMDAsIDB4ODAwMDAwMCwKKyAgICAgICAgMHgxMDAwMDAwMCwgMHgyMDAwMDAwMCwgMHg0MDAwMDAwMH07CisKKyAgICAvLyBVdGlsaXR5IENsYXNzZXMKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgTG9uZ0NvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgbG9uZyBhYSA9ICgoTnVtYmVyKWEpLmxvbmdWYWx1ZSgpOworICAgICAgICAgICAgbG9uZyBiYiA9ICgoTnVtYmVyKWIpLmxvbmdWYWx1ZSgpOworICAgICAgICAgICAgcmV0dXJuIChhYSA8IGJiID8gLTEgOiBhYSA+IGJiID8gMSA6IDApOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBJbnRlZ2VyQ29tcGFyYXRvciBpbXBsZW1lbnRzIENvbXBhcmF0b3IgeworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgICAgICByZXR1cm4gKCgoTnVtYmVyKWEpLmludFZhbHVlKCkgLSAoKE51bWJlciliKS5pbnRWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgRG91YmxlQ29tcGFyYXRvciBpbXBsZW1lbnRzIENvbXBhcmF0b3IgeworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgICAgICBkb3VibGUgYWEgPSAoKE51bWJlcilhKS5kb3VibGVWYWx1ZSgpOworICAgICAgICAgICAgZG91YmxlIGJiID0gKChOdW1iZXIpYikuZG91YmxlVmFsdWUoKTsKKyAgICAgICAgICAgIHJldHVybiAoYWEgPCBiYiA/IC0xIDogYWEgPiBiYiA/IDEgOiAwKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgQ29tcGFyYWJsZUNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgcmV0dXJuICgoQ29tcGFyYWJsZSlhKS5jb21wYXJlVG8oYik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFN0cmluZ0NvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKKyAgICAgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBhLCBPYmplY3QgYikgeworICAgICAgICAgICAgcmV0dXJuICgoU3RyaW5nKWEpLmNvbXBhcmVUbygoU3RyaW5nKWIpOworICAgICAgICB9CisgICAgfQorICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisvL319Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU3BhY2VUcmFuc2l0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1NwYWNlVHJhbnNpdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjliZGNjNDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1NwYWNlVHJhbnNpdGlvbi5qYXZhCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworCitwdWJsaWMgY2xhc3MgU3BhY2VUcmFuc2l0aW9uIGV4dGVuZHMgQ29tcGxleFRyYW5zaXRpb24geworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3BhY2VUcmFuc2l0aW9uIEdMT0JBTCA9IG5ldyBTcGFjZVRyYW5zaXRpb24oU1VDQ0VTUyk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1BBQ0VfQ0hBUlMgPSAiIFx0IjsKKyAgICAKKyAgICBwdWJsaWMgU3BhY2VUcmFuc2l0aW9uKGludCBzdWNjZXNzKSB7CisgICAgICAgIHN1cGVyKHN1Y2Nlc3MpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKyAgICAgICAgLy99fQorICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgIHJldHVybiBTUEFDRV9DSEFSUy5pbmRleE9mKChjaGFyKWMpID49IDA7CisgICAgfQorICAgIHByb3RlY3RlZCBMZXguVHJhbnNpdGlvbltdW10gZ2V0U3RhdGVzKCkgeworICAgICAgICByZXR1cm4gc3RhdGVzOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzID0geworICAgICAgICB7IC8vc3RhdGUgMDogCisgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oU1BBQ0VfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oImlsbGVnYWwgc3BhY2UgY2hhcmFjdGVyIikKKyAgICAgICAgfSwKKyAgICAgICAgeyAvL3N0YXRlIDE6CisgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oU1VDQ0VTUyksCisgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oU1BBQ0VfQ0hBUlMsIExleC5JR05PUkVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguSUdOT1JFX1BVVEJBQ0ssIFNVQ0NFU1MpCisgICAgICAgIH0sCisgICAgfTsKKyAgICAvL3t7REVDTEFSRV9DT05UUk9MUworICAgIC8vfX0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU3ltYm9sVHJhbnNpdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9TeW1ib2xUcmFuc2l0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGRiMjAxMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvU3ltYm9sVHJhbnNpdGlvbi5qYXZhCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEuaW8uKjsKKworcHVibGljIGNsYXNzIFN5bWJvbFRyYW5zaXRpb24gZXh0ZW5kcyBDb21wbGV4VHJhbnNpdGlvbiB7CisgICAgcHJpdmF0ZSBzdGF0aWMgUG9zaXhDaGFyTWFwIG1hcHBpbmcgPSBuZXcgUG9zaXhDaGFyTWFwKCk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTeW1ib2xUcmFuc2l0aW9uIEdMT0JBTCA9IG5ldyBTeW1ib2xUcmFuc2l0aW9uKFNVQ0NFU1MpOworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzZXRDaGFyTWFwKFBvc2l4Q2hhck1hcCBtYXBwaW5nSW4pIHsKKyAgICAgICAgbWFwcGluZyA9IG1hcHBpbmdJbjsKKyAgICAgICAgaWYgKG1hcHBpbmcgPT0gbnVsbCkgeworICAgICAgICAgICAgbWFwcGluZyA9IG5ldyBQb3NpeENoYXJNYXAoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgUG9zaXhDaGFyTWFwIGdldENoYXJNYXAoKSB7CisgICAgICAgIHJldHVybiBtYXBwaW5nOworICAgIH0KKworICAgIHB1YmxpYyBTeW1ib2xUcmFuc2l0aW9uKGludCBzdWNjZXNzKSB7CisgICAgICAgIHN1cGVyKHN1Y2Nlc3MpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKyAgICAgICAgLy99fQorICAgIH0KKyAgICBwdWJsaWMgYm9vbGVhbiBhY2NlcHRzKGludCBjKSB7CisgICAgICAgIHJldHVybiAnPCcgPT0gKGNoYXIpYzsKKyAgICB9CisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlU3VjY2VzcyhMZXggcGFyc2VyLCBTdHJpbmdCdWZmZXIgb3V0cHV0KSB7CisgICAgICAgIFN0cmluZyB0ZXh0ID0gcGFyc2VyLmdldERhdGEoKTsKKyAgICAgICAgU3RyaW5nIG1hcHBlZFRleHQgPSBtYXBwaW5nLm1hcEtleSh0ZXh0KTsKKyAgICAgICAgaWYgKG1hcHBlZFRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgb3V0cHV0LmFwcGVuZChtYXBwZWRUZXh0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQodGV4dCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvdGVjdGVkIExleC5UcmFuc2l0aW9uW11bXSBnZXRTdGF0ZXMoKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAoZ2V0Q2xhc3MoKSkgeworICAgICAgICAgICAgaWYgKHN0YXRlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3RhdGVzID0gbmV3IExleC5UcmFuc2l0aW9uW11bXSB7CisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAwOiAKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oJzwnLCBMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigiaWxsZWdhbCBjaGFyYWN0ZXJzIGluIHN5bWJvbCIpCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsgLy9zdGF0ZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbignLycsIExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguQ2hhclRyYW5zaXRpb24oJz4nLCBMZXguQUNDVU1VTEFURV9DT05TVU1FLCBTVUNDRVNTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguU3RyaW5nVHJhbnNpdGlvbihFT0xUcmFuc2l0aW9uLkVPTF9DSEFSUywgTGV4LklHTk9SRV9QVVRCQUNLLCAtMyksCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oLTMpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSkKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgTGV4LkNoYXJUcmFuc2l0aW9uKCc+JywgTGV4LkFDQ1VNVUxBVEVfQ09OU1VNRSwgLTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExleC5DaGFyVHJhbnNpdGlvbignLycsIExleC5BQ0NVTVVMQVRFX0NPTlNVTUUsIC0xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJpbGxlZ2FsIGVzY2FwZSBjaGFyYWN0ZXIgaW4gc3ltYm9sIikKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAvL3N0YXRlIDM6IGZhaWx1cmUKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJ1bmV4cGVjdGVkIGVuZCBvZiBsaW5lL2ZpbGUiKQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3RhdGVzOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIExleC5UcmFuc2l0aW9uW11bXSBzdGF0ZXMgPSB7eyAKKyAgICAgICAgICAgICAgICBuZXcgU3ltYm9sVHJhbnNpdGlvbihTVUNDRVNTKSwKKyAgICAgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oKSwKKyAgICAgICAgICAgICAgICBuZXcgTGV4LlBhcnNlRXhjZXB0aW9uVHJhbnNpdGlvbigiYmFkIHRlc3QgaW5wdXQiKQorICAgICAgICAgICAgfX07CisgICAgICAgICAgICAvL1N0cmluZyB0ZXh0ID0gIjxDQVBJVEFMPjxcIjw+PC8vPjxWJT48TjY+PENZUklMTElDPiI7CisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9ICI8VT48Uz48RD4gIjsKKyAgICAgICAgICAgIFN0cmluZ1JlYWRlciBzciA9IG5ldyBTdHJpbmdSZWFkZXIodGV4dCk7CisgICAgICAgICAgICBQdXNoYmFja1JlYWRlciBwciA9IG5ldyBQdXNoYmFja1JlYWRlcihzcik7CisgICAgICAgICAgICBMZXggcGFyc2VyID0gbmV3IExleChzdGF0ZXMsIHByKTsKKyAgICAgICAgICAgIC8vcGFyc2VyLmRlYnVnKHRydWUpOworICAgICAgICAgICAgaW50IHMgPSBwYXJzZXIubmV4dFRva2VuKCk7CisgICAgICAgICAgICB3aGlsZSAocyA9PSBTVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHBhcnNlci5nZXREYXRhKCkpOworICAgICAgICAgICAgICAgIHMgPSBwYXJzZXIubmV4dFRva2VuKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLy97e0RFQ0xBUkVfQ09OVFJPTFMKKyAgICAvL319Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvbG9jYWxlY29udmVydGVyL1Rva2VuVHJhbnNpdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Ub2tlblRyYW5zaXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMjMzNTlhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9Ub2tlblRyYW5zaXRpb24uamF2YQpAQCAtMCwwICsxLDY0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5sb2NhbGVjb252ZXJ0ZXI7CisKKworcHVibGljIGNsYXNzIFRva2VuVHJhbnNpdGlvbiBleHRlbmRzIENvbXBsZXhUcmFuc2l0aW9uIHsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFRva2VuVHJhbnNpdGlvbiBHTE9CQUwgPSBuZXcgVG9rZW5UcmFuc2l0aW9uKFNVQ0NFU1MpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFUEFSQVRPUl9DSEFSUyA9ICI7IiArIFNwYWNlVHJhbnNpdGlvbi5TUEFDRV9DSEFSUzsKKyAgICAKKyAgICBwdWJsaWMgVG9rZW5UcmFuc2l0aW9uKGludCBzdWNjZXNzKSB7CisgICAgICAgIHN1cGVyKHN1Y2Nlc3MpOworICAgICAgICAgICAgLy97e0lOSVRfQ09OVFJPTFMKKyAgICAgICAgLy99fQorfQorICAgIHB1YmxpYyBib29sZWFuIGFjY2VwdHMoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIChjID4gMCkgJiYgCisgICAgICAgICAgICAhRU9MVHJhbnNpdGlvbi5HTE9CQUwuYWNjZXB0cyhjKSAmJiAKKyAgICAgICAgICAgICFTcGFjZVRyYW5zaXRpb24uR0xPQkFMLmFjY2VwdHMoYykgJiYgIAorICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgIChTRVBBUkFUT1JfQ0hBUlMuaW5kZXhPZigoY2hhciljKSA8IDApIHx8CisgICAgICAgICAgICAgICAgU3ltYm9sVHJhbnNpdGlvbi5HTE9CQUwuYWNjZXB0cyhjKSB8fAorICAgICAgICAgICAgICAgIFF1b3RlVHJhbnNpdGlvbi5HTE9CQUwuYWNjZXB0cyhjKSB8fAorICAgICAgICAgICAgICAgIEVzY2FwZVRyYW5zaXRpb24uR0xPQkFMLmFjY2VwdHMoYykKKyAgICAgICAgICAgICk7CisgICAgfQorICAgIHByb3RlY3RlZCBMZXguVHJhbnNpdGlvbltdW10gZ2V0U3RhdGVzKCkgeworICAgICAgICByZXR1cm4gc3RhdGVzOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMZXguVHJhbnNpdGlvbltdW10gc3RhdGVzID0geworICAgICAgICB7IC8vc3RhdGUgMDogCisgICAgICAgICAgICBuZXcgU3ltYm9sVHJhbnNpdGlvbigtMSksCisgICAgICAgICAgICBuZXcgUXVvdGVUcmFuc2l0aW9uKC0xKSwgCisgICAgICAgICAgICBuZXcgRXNjYXBlVHJhbnNpdGlvbigtMSksCisgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oRU9MVHJhbnNpdGlvbi5FT0xfQ0hBUlMsIExleC5JR05PUkVfUFVUQkFDSywgLTIpLAorICAgICAgICAgICAgbmV3IExleC5TdHJpbmdUcmFuc2l0aW9uKFNFUEFSQVRPUl9DSEFSUywgTGV4LklHTk9SRV9QVVRCQUNLLCAtMyksCisgICAgICAgICAgICBuZXcgTGV4LkVPRlRyYW5zaXRpb24oLTQpLAorICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSkKKyAgICAgICAgfSwKKyAgICAgICAgeyAvL3N0YXRlIDE6CisgICAgICAgICAgICBuZXcgU3ltYm9sVHJhbnNpdGlvbigtMSksCisgICAgICAgICAgICBuZXcgUXVvdGVUcmFuc2l0aW9uKC0xKSwgCisgICAgICAgICAgICBuZXcgRXNjYXBlVHJhbnNpdGlvbigtMSksCisgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oRU9MVHJhbnNpdGlvbi5FT0xfQ0hBUlMsIExleC5JR05PUkVfUFVUQkFDSywgU1VDQ0VTUyksCisgICAgICAgICAgICBuZXcgTGV4LlN0cmluZ1RyYW5zaXRpb24oU0VQQVJBVE9SX0NIQVJTLCBMZXguSUdOT1JFX1BVVEJBQ0ssIFNVQ0NFU1MpLAorICAgICAgICAgICAgbmV3IExleC5FT0ZUcmFuc2l0aW9uKFNVQ0NFU1MpLAorICAgICAgICAgICAgbmV3IExleC5EZWZhdWx0VHJhbnNpdGlvbihMZXguQUNDVU1VTEFURV9DT05TVU1FLCAtMSkKKyAgICAgICAgfSwKKyAgICAgICAgeyAvL3N0YXRlIDI6IGZhaWx1cmUgLSB1bmV4cGVjdGVkIEVPTAorICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oInVuZXhwZWN0ZWQgRU9MIGluIHRva2VuIikKKyAgICAgICAgfSwKKyAgICAgICAgeyAvL3N0YXRlIDM6IGZhaWx1cmUKKyAgICAgICAgICAgIG5ldyBMZXguUGFyc2VFeGNlcHRpb25UcmFuc2l0aW9uKCJ1bmV4cGVjdGVkIHNlcGVyYXRvciBjaGFyYWN0ZXIgaW4gdG9rZW4iKQorICAgICAgICB9LAorICAgICAgICB7IC8vc3RhdGUgNDogZmFpbHVyZQorICAgICAgICAgICAgbmV3IExleC5QYXJzZUV4Y2VwdGlvblRyYW5zaXRpb24oInVuZXhwZWN0ZWQgRU9GIGluIHRva2VuIikKKyAgICAgICAgfSwKKyAgICB9OworICAgIC8ve3tERUNMQVJFX0NPTlRST0xTCisgICAgLy99fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9YTElGRjJJQ1VDb252ZXJ0ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvWExJRkYySUNVQ29udmVydGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE4NzgxNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvWExJRkYySUNVQ29udmVydGVyLmphdmEKQEAgLTAsMCArMSwxMTc0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMy0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50b29sLlVPcHRpb247CitpbXBvcnQgb3JnLnczYy5kb20uRG9jdW1lbnQ7CitpbXBvcnQgb3JnLnczYy5kb20uTm9kZTsKK2ltcG9ydCBvcmcudzNjLmRvbS5OYW1lZE5vZGVNYXA7CitpbXBvcnQgb3JnLnczYy5kb20uTm9kZUxpc3Q7CitpbXBvcnQgb3JnLnhtbC5zYXguRXJyb3JIYW5kbGVyOworaW1wb3J0IG9yZy54bWwuc2F4LklucHV0U291cmNlOworaW1wb3J0IG9yZy54bWwuc2F4LlNBWEV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZheC54bWwucGFyc2Vycy5Eb2N1bWVudEJ1aWxkZXI7CitpbXBvcnQgamF2YXgueG1sLnBhcnNlcnMuRG9jdW1lbnRCdWlsZGVyRmFjdG9yeTsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworcHVibGljIGZpbmFsIGNsYXNzIFhMSUZGMklDVUNvbnZlcnRlciB7CisgICAgCisgICAgLyoqCisgICAgICogVGhlc2UgbXVzdCBiZSBrZXB0IGluIHN5bmMgd2l0aCBnZXRPcHRpb25zKCkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFTFAxID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEVMUDIgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTT1VSQ0VESVIgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERVNURElSID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVEFSR0VUT05MWSA9IDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNPVVJDRU9OTFkgPSA1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQUtFX1NPVVJDRV9ST09UID0gNjsKKyAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVT3B0aW9uW10gb3B0aW9ucyA9IG5ldyBVT3B0aW9uW10geworICAgICAgICBVT3B0aW9uLkhFTFBfSCgpLAorICAgICAgICBVT3B0aW9uLkhFTFBfUVVFU1RJT05fTUFSSygpLAorICAgICAgICBVT3B0aW9uLlNPVVJDRURJUigpLAorICAgICAgICBVT3B0aW9uLkRFU1RESVIoKSwKKyAgICAgICAgVU9wdGlvbi5jcmVhdGUoInRhcmdldC1vbmx5IiwgJ3QnLCBVT3B0aW9uLk9QVElPTkFMX0FSRyksCisgICAgICAgIFVPcHRpb24uY3JlYXRlKCJzb3VyY2Utb25seSIsICdjJywgVU9wdGlvbi5PUFRJT05BTF9BUkcpLAorICAgICAgICBVT3B0aW9uLmNyZWF0ZSgibWFrZS1zb3VyY2Utcm9vdCIsICdyJywgVU9wdGlvbi5OT19BUkcpCisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUk9PVCAgICAgICAgICAgID0gInJvb3QiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBSRVNUWVBFICAgICAgICAgPSAicmVzdHlwZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFJFU05BTUUgICAgICAgICA9ICJyZXNuYW1lIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgWUVTICAgICAgICAgICAgID0gInllcyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5PICAgICAgICAgICAgICA9ICJubyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRSQU5TTEFURSAgICAgICA9ICJ0cmFuc2xhdGUiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCT0RZICAgICAgICAgICAgPSAiYm9keSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEdST1VQUyAgICAgICAgICA9ICJncm91cCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZJTEVTICAgICAgICAgICA9ICJmaWxlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVFJBTlNVTklUICAgICAgID0gInRyYW5zLXVuaXQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCSU5VTklUICAgICAgICAgPSAiYmluLXVuaXQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCSU5TT1VSQ0UgICAgICAgPSAiYmluLXNvdXJjZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRTICAgICAgICAgICAgICA9ICJ0cyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE9SSUdJTkFMICAgICAgICA9ICJvcmlnaW5hbCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNPVVJDRUxBTkdVQUdFICA9ICJzb3VyY2UtbGFuZ3VhZ2UiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUQVJHRVRMQU5HVUFHRSAgPSAidGFyZ2V0LWxhbmd1YWdlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEFSR0VUICAgICAgICAgID0gInRhcmdldCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNPVVJDRSAgICAgICAgICA9ICJzb3VyY2UiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOT1RFICAgICAgICAgICAgPSAibm90ZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFhNTExBTkcgICAgICAgICA9ICJ4bWw6bGFuZyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEZJTEUgICAgICAgICAgICA9ICJmaWxlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSU5UVkVDVE9SICAgICAgID0gImludHZlY3RvciI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFSUkFZUyAgICAgICAgICA9ICJhcnJheSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNUUklOR1MgICAgICAgICA9ICJzdHJpbmciOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCSU4gICAgICAgICAgICAgPSAiYmluIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSU5UUyAgICAgICAgICAgID0gImludCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRBQkxFICAgICAgICAgICA9ICJ0YWJsZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElNUE9SVCAgICAgICAgICA9ICJpbXBvcnQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBIUkVGICAgICAgICAgICAgPSAiaHJlZiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEVYVEVSTkFMRklMRSAgICA9ICJleHRlcm5hbC1maWxlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSU5URVJOQUxGSUxFICAgID0gImludGVybmFsLWZpbGUiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBTFRUUkFOUyAgICAgICAgPSAiYWx0LXRyYW5zIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ1JDICAgICAgICAgICAgID0gImNyYyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFMSUFTICAgICAgICAgICA9ICJhbGlhcyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIExJTkVTRVAgICAgICAgICA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgibGluZS5zZXBhcmF0b3IiKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQk9NICAgICAgICAgICAgID0gIlx1RkVGRiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENIQVJTRVQgICAgICAgICA9ICJVVEYtOCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE9QRU5CUkFDRSAgICAgICA9ICJ7IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xPU0VCUkFDRSAgICAgID0gIn0iOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT0xPTiAgICAgICAgICAgPSAiOiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTU1BICAgICAgICAgICA9ICIsIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUVVPVEUgICAgICAgICAgID0gIlwiIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09NTUVOVFNUQVJUICAgID0gIi8qKiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTU1FTlRFTkQgICAgICA9ICIgKi8iOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBUQUcgICAgICAgICAgICAgPSAiICogQCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPTU1FTlRNSURETEUgICA9ICIgKiAiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBTUEFDRSAgICAgICAgICAgPSAiICI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOREVOVCAgICAgICAgICA9ICIgICAgIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRU1QVFkgICAgICAgICAgID0gIiI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElEICAgICAgICAgICAgICA9ICJpZCI7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBYTElGRjJJQ1VDb252ZXJ0ZXIgY252ID0gbmV3IFhMSUZGMklDVUNvbnZlcnRlcigpOworICAgICAgICBjbnYucHJvY2Vzc0FyZ3MoYXJncyk7CisgICAgfQorICAgIHByaXZhdGUgU3RyaW5nICAgIHNvdXJjZURpciAgICAgID0gbnVsbDsKKyAgICBwcml2YXRlIFN0cmluZyAgICBmaWxlTmFtZSAgICAgICA9IG51bGw7CisgICAgcHJpdmF0ZSBTdHJpbmcgICAgZGVzdERpciAgICAgICAgPSBudWxsOworICAgIHByaXZhdGUgYm9vbGVhbiAgIHRhcmdldE9ubHkgICAgID0gZmFsc2U7CisgICAgcHJpdmF0ZSBTdHJpbmcgICAgdGFyZ2V0RmlsZU5hbWUgPSBudWxsOyAKKyAgICBwcml2YXRlIGJvb2xlYW4gICBtYWtlU291cmNlUm9vdCA9IGZhbHNlOworICAgIHByaXZhdGUgU3RyaW5nICAgIHNvdXJjZUZpbGVOYW1lID0gbnVsbDsKKyAgICBwcml2YXRlIGJvb2xlYW4gICBzb3VyY2VPbmx5ICAgICA9IGZhbHNlOworICAgIAorICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzQXJncyhTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIGludCByZW1haW5pbmdBcmdjID0gMDsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgcmVtYWluaW5nQXJnYyA9IFVPcHRpb24ucGFyc2VBcmdzKGFyZ3MsIG9wdGlvbnMpOworICAgICAgICB9Y2F0Y2ggKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRVJST1I6ICIrIGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICB9CisgICAgICAgIGlmKGFyZ3MubGVuZ3RoPT0wIHx8IG9wdGlvbnNbSEVMUDFdLmRvZXNPY2N1ciB8fCBvcHRpb25zW0hFTFAyXS5kb2VzT2NjdXIpIHsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYocmVtYWluaW5nQXJnYz09MCl7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVSUk9SOiBFaXRoZXIgdGhlIGZpbGUgbmFtZSB0byBiZSBwcm9jZXNzZWQgaXMgbm90ICIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNwZWNpZmllZCBvciB0aGUgaXQgaXMgc3BlY2lmaWVkIGFmdGVyIHRoZSAtdC8tYyBcbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wdGlvbiB3aGljaCBoYXMgYW4gb3B0aW9uYWwgYXJndW1lbnQuIFRyeSByZWFycmFuZ2luZyAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgb3B0aW9ucy4iKTsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYob3B0aW9uc1tTT1VSQ0VESVJdLmRvZXNPY2N1cikgeworICAgICAgICAgICAgc291cmNlRGlyID0gb3B0aW9uc1tTT1VSQ0VESVJdLnZhbHVlOworICAgICAgICB9CisgICAgICAgIGlmKG9wdGlvbnNbREVTVERJUl0uZG9lc09jY3VyKSB7CisgICAgICAgICAgICBkZXN0RGlyID0gb3B0aW9uc1tERVNURElSXS52YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBpZihvcHRpb25zW1RBUkdFVE9OTFldLmRvZXNPY2N1cil7CisgICAgICAgICAgICB0YXJnZXRPbmx5ID0gdHJ1ZTsKKyAgICAgICAgICAgIHRhcmdldEZpbGVOYW1lID0gb3B0aW9uc1tUQVJHRVRPTkxZXS52YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBpZihvcHRpb25zW1NPVVJDRU9OTFldLmRvZXNPY2N1cil7CisgICAgICAgICAgICBzb3VyY2VPbmx5ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNvdXJjZUZpbGVOYW1lID0gb3B0aW9uc1tTT1VSQ0VPTkxZXS52YWx1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYob3B0aW9uc1tNQUtFX1NPVVJDRV9ST09UXS5kb2VzT2NjdXIpeworICAgICAgICAgICAgbWFrZVNvdXJjZVJvb3QgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmKGRlc3REaXI9PW51bGwpeworICAgICAgICAgICAgZGVzdERpciA9ICIuIjsKKyAgICAgICAgfQorICAgICAgICBpZihzb3VyY2VPbmx5ID09IHRydWUgJiYgdGFyZ2V0T25seSA9PSB0cnVlKXsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiLS1zb3VyY2Utb25seSBhbmQgLS10YXJnZXQtb25seSBhcmUgc3BlY2lmaWVkLiBQbGVhc2UgY2hlY2sgdGhlIGFyZ3VtZW50cyBhbmQgdHJ5IGFnYWluLiIpOworICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZW1haW5pbmdBcmdjOyBpKyspIHsKKyAgICAgICAgICAgIGludCBsYXN0SW5kZXggPSBhcmdzW2ldLmxhc3RJbmRleE9mKEZpbGUuc2VwYXJhdG9yLCBhcmdzW2ldLmxlbmd0aCgpKSArIDE7IC8qIGFkZCAxIHRvIHNraXAgcGFzdCB0aGUgc2VwYXJhdG9yICovCisgICAgICAgICAgICBmaWxlTmFtZSA9IGFyZ3NbaV0uc3Vic3RyaW5nKGxhc3RJbmRleCwgYXJnc1tpXS5sZW5ndGgoKSk7CisgICAgICAgICAgICBTdHJpbmcgeG1sZmlsZU5hbWUgPSBnZXRGdWxsUGF0aChmYWxzZSxhcmdzW2ldKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUHJvY2Vzc2luZyBmaWxlOiAiK3htbGZpbGVOYW1lKTsKKyAgICAgICAgICAgIGNyZWF0ZVJCKHhtbGZpbGVOYW1lKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgdXNhZ2UoKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5Vc2FnZTogWExJRkYySUNVQ29udmVydGVyIFtPUFRJT05TXSBbRklMRVNdXG5cbiIrCisgICAgICAgICAgICAiVGhpcyBwcm9ncmFtIGlzIHVzZWQgdG8gY29udmVydCBYTElGRiBmaWxlcyB0byBJQ1UgUmVzb3VyY2VCdW5kbGUgVFhUIGZpbGVzLlxuIisKKyAgICAgICAgICAgICJQbGVhc2UgcmVmZXIgdG8gdGhlIGZvbGxvd2luZyBvcHRpb25zLiBPcHRpb25zIGFyZSBub3QgY2FzZSBzZW5zaXRpdmUuXG4iKworICAgICAgICAgICAgIk9wdGlvbnM6XG4iKworICAgICAgICAgICAgIi1zIG9yIC0tc291cmNlZGlyICAgICAgICAgIHNvdXJjZSBkaXJlY3RvcnkgZm9yIGZpbGVzIGZvbGxvd2VkIGJ5IHBhdGgsIGRlZmF1bHQgaXMgY3VycmVudCBkaXJlY3RvcnkuXG4iICsKKyAgICAgICAgICAgICItZCBvciAtLWRlc3RkaXIgICAgICAgICAgICBkZXN0aW5hdGlvbiBkaXJlY3RvcnksIGZvbGxvd2VkIGJ5IHRoZSBwYXRoLCBkZWZhdWx0IGlzIGN1cnJlbnQgZGlyZWN0b3J5LlxuIiArCisgICAgICAgICAgICAiLWggb3IgLT8gb3IgLS1oZWxwICAgICAgICAgdGhpcyB1c2FnZSB0ZXh0LlxuIisKKyAgICAgICAgICAgICItdCBvciAtLXRhcmdldC1vbmx5ICAgICAgICBvbmx5IGdlbmVyYXRlIHRoZSB0YXJnZXQgbGFuZ3VhZ2UgdHh0IGZpbGUsIGZvbGxvd2VkIGJ5IG9wdGlvbmFsIG91dHB1dCBmaWxlIG5hbWUuXG4iICsKKyAgICAgICAgICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5ub3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIC0tc291cmNlLW9ubHkuXG4iKworICAgICAgICAgICAgIi1jIG9yIC0tc291cmNlLW9ubHkgICAgICAgIG9ubHkgZ2VuZXJhdGUgdGhlIHNvdXJjZSBsYW5ndWFnZSBidW5kbGUgZm9sbG93ZWQgYnkgb3B0aW9uYWwgb3V0cHV0IGZpbGUgbmFtZS5cbiIrCisgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2Fubm90IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCAtLXRhcmdldC1vbmx5LlxuIisKKyAgICAgICAgICAgICItciBvciAtLW1ha2Utc291cmNlLXJvb3QgICBwcm9kdWNlIHJvb3QgYnVuZGxlIGZyb20gc291cmNlIGVsZW1lbnRzLlxuIiArCisgICAgICAgICAgICAiZXhhbXBsZTogY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyLlhMSUZGMklDVUNvbnZlcnRlciAtdCA8b3B0aW9uYWwgYXJndW1lbnQ+IC1zIHh4eCAtZCB5eXkgbXlSZXNvdXJjZXMueGxmIik7CisgICAgICAgIFN5c3RlbS5leGl0KC0xKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0RnVsbFBhdGgoYm9vbGVhbiBmaWxlVHlwZSwgU3RyaW5nIGZOYW1lKXsKKyAgICAgICAgU3RyaW5nIHN0cjsKKyAgICAgICAgaW50IGxhc3RJbmRleDEgPSBmTmFtZS5sYXN0SW5kZXhPZihGaWxlLnNlcGFyYXRvciwgZk5hbWUubGVuZ3RoKCkpICsgMTsgLyphZGQgMSB0byBza2lwIHBhc3QgdGhlIHNlcGFyYXRvciovCisgICAgICAgIGludCBsYXN0SW5kZXgyID0gZk5hbWUubGFzdEluZGV4T2YoJy4nLCBmTmFtZS5sZW5ndGgoKSk7CisgICAgICAgIGlmIChmaWxlVHlwZSA9PSB0cnVlKSB7CisgICAgICAgICAgICBpZihsYXN0SW5kZXgyID09IC0xKXsKKyAgICAgICAgICAgICAgICBmTmFtZSA9IGZOYW1lLnRyaW0oKSArICIudHh0IjsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGlmKCFmTmFtZS5zdWJzdHJpbmcobGFzdEluZGV4MikuZXF1YWxzSWdub3JlQ2FzZSgiLnR4dCIpKXsKKyAgICAgICAgICAgICAgICAgICAgZk5hbWUgPSAgZk5hbWUuc3Vic3RyaW5nKGxhc3RJbmRleDEsbGFzdEluZGV4MikgKyAiLnR4dCI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRlc3REaXIgIT0gbnVsbCAmJiBmTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3RyID0gZGVzdERpciArIEZpbGUuc2VwYXJhdG9yICsgZk5hbWUudHJpbSgpOyAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3RyID0gU3lzdGVtLmdldFByb3BlcnR5KCJ1c2VyLmRpciIpICsgRmlsZS5zZXBhcmF0b3IgKyBmTmFtZS50cmltKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZihsYXN0SW5kZXgyID09IC0xKXsKKyAgICAgICAgICAgICAgICBmTmFtZSA9IGZOYW1lLnRyaW0oKSArICIueGxmIjsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGlmKCFmTmFtZS5zdWJzdHJpbmcobGFzdEluZGV4MikuZXF1YWxzSWdub3JlQ2FzZSgiLnhtbCIpICYmIGZOYW1lLnN1YnN0cmluZyhsYXN0SW5kZXgyKS5lcXVhbHNJZ25vcmVDYXNlKCIueGxmIikpeworICAgICAgICAgICAgICAgICAgICBmTmFtZSA9IGZOYW1lLnN1YnN0cmluZyhsYXN0SW5kZXgxLGxhc3RJbmRleDIpICsgIi54bGYiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKHNvdXJjZURpciAhPSBudWxsICYmIGZOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdHIgPSBzb3VyY2VEaXIgKyBGaWxlLnNlcGFyYXRvciArIGZOYW1lOworICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0SW5kZXgxID4gMCkgeworICAgICAgICAgICAgICAgIHN0ciA9IGZOYW1lOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdHIgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoInVzZXIuZGlyIikgKyBGaWxlLnNlcGFyYXRvciArIGZOYW1lOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdHI7CisgICAgfSAgIAorCisgICAgLyoKKyAgICAgKiBVdGlsaXR5IG1ldGhvZCB0byB0cmFuc2xhdGUgYSBTdHJpbmcgZmlsZW5hbWUgdG8gVVJMLiAgCisgICAgICoKKyAgICAgKiBOb3RlOiBUaGlzIG1ldGhvZCBpcyBub3QgbmVjZXNzYXJpbHkgcHJvdmVuIHRvIGdldCB0aGUgCisgICAgICogY29ycmVjdCBVUkwgZm9yIGV2ZXJ5IHBvc3NpYmxlIGtpbmQgb2YgZmlsZW5hbWU7IGl0IHNob3VsZCAKKyAgICAgKiBiZSBpbXByb3ZlZC4gIEl0IGhhbmRsZXMgdGhlIG1vc3QgY29tbW9uIGNhc2VzIHRoYXQgd2UndmUgCisgICAgICogZW5jb3VudGVyZWQgd2hlbiBydW5uaW5nIENvbmZvcm1hbmNlIHRlc3RzIG9uIFhhbGFuLgorICAgICAqIEFsc28gbm90ZSwgdGhpcyBtZXRob2QgZG9lcyBub3QgaGFuZGxlIG90aGVyIG5vbi1maWxlOgorICAgICAqIGZsYXZvcnMgb2YgVVJMcyBhdCBhbGwuCisgICAgICoKKyAgICAgKiBJZiB0aGUgbmFtZSBpcyBudWxsLCByZXR1cm4gbnVsbC4KKyAgICAgKiBJZiB0aGUgbmFtZSBzdGFydHMgd2l0aCBhIGNvbW1vbiBVUkkgc2NoZW1lIChuYW1lbHkgdGhlIG9uZXMgCisgICAgICogZm91bmQgaW4gdGhlIGV4YW1wbGVzIG9mIFJGQzIzOTYpLCB0aGVuIHNpbXBseSByZXR1cm4gdGhlIAorICAgICAqIG5hbWUgYXMtaXMgKHRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgaXQncyBhbHJlYWR5IGEgVVJMKQorICAgICAqIE90aGVyd2lzZSB3ZSBhdHRlbXB0IChjaGVhcGx5KSB0byBjb252ZXJ0IHRvIGEgZmlsZTovLy8gVVJMLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBmaWxlbmFtZVRvVVJMKFN0cmluZyBmaWxlbmFtZSl7CisgICAgICAgIC8vIG51bGwgYmVnZXRzIG51bGwgLSBzb21ldGhpbmcgbGlrZSB0aGUgY29tbXV0YXRpdmUgcHJvcGVydHkKKyAgICAgICAgaWYgKG51bGwgPT0gZmlsZW5hbWUpeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBEb24ndCB0cmFuc2xhdGUgYSBzdHJpbmcgdGhhdCBhbHJlYWR5IGxvb2tzIGxpa2UgYSBVUkwKKyAgICAgICAgaWYgKGZpbGVuYW1lLnN0YXJ0c1dpdGgoImZpbGU6IikKKyAgICAgICAgICAgIHx8IGZpbGVuYW1lLnN0YXJ0c1dpdGgoImh0dHA6IikKKyAgICAgICAgICAgIHx8IGZpbGVuYW1lLnN0YXJ0c1dpdGgoImZ0cDoiKQorICAgICAgICAgICAgfHwgZmlsZW5hbWUuc3RhcnRzV2l0aCgiZ29waGVyOiIpCisgICAgICAgICAgICB8fCBmaWxlbmFtZS5zdGFydHNXaXRoKCJtYWlsdG86IikKKyAgICAgICAgICAgIHx8IGZpbGVuYW1lLnN0YXJ0c1dpdGgoIm5ld3M6IikKKyAgICAgICAgICAgIHx8IGZpbGVuYW1lLnN0YXJ0c1dpdGgoInRlbG5ldDoiKQorICAgICAgICAgICApeworICAgICAgICAgICAgICAgcmV0dXJuIGZpbGVuYW1lOworICAgICAgICAgICB9CisgICAgICAgIAorCisgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKGZpbGVuYW1lKTsKKyAgICAgICAgU3RyaW5nIHRtcCA9IG51bGw7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIC8vIFRoaXMgbm9ybWFsbHkgZ2l2ZXMgYSBiZXR0ZXIgcGF0aAorICAgICAgICAgICAgdG1wID0gZi5nZXRDYW5vbmljYWxQYXRoKCk7CisgICAgICAgIH1jYXRjaCAoSU9FeGNlcHRpb24gaW9lKXsKKyAgICAgICAgICAgIC8vIEJ1dCB0aGlzIGNhbiBiZSB1c2VkIGFzIGEgYmFja3VwLCBmb3IgY2FzZXMgCisgICAgICAgICAgICAvLyAgd2hlcmUgdGhlIGZpbGUgZG9lcyBub3QgZXhpc3QsIGV0Yy4KKyAgICAgICAgICAgIHRtcCA9IGYuZ2V0QWJzb2x1dGVQYXRoKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBVUkxzIG11c3QgZXhwbGljaXRseSB1c2Ugb25seSBmb3J3YXJkIHNsYXNoZXMKKyAgICAgICAgaWYgKEZpbGUuc2VwYXJhdG9yQ2hhciA9PSAnXFwnKSB7CisgICAgICAgICAgICB0bXAgPSB0bXAucmVwbGFjZSgnXFwnLCAnLycpOworICAgICAgICB9CisgICAgICAgIC8vIE5vdGUgdGhlIHByZXN1bXB0aW9uIHRoYXQgaXQncyBhIGZpbGUgcmVmZXJlbmNlCisgICAgICAgIC8vIEVuc3VyZSB3ZSBoYXZlIHRoZSBjb3JyZWN0IG51bWJlciBvZiBzbGFzaGVzIGF0IHRoZSAKKyAgICAgICAgLy8gIHN0YXJ0OiB3ZSBhbHdheXMgd2FudCAzIC8vLyBpZiBpdCdzIGFic29sdXRlCisgICAgICAgIC8vICAod2hpY2ggd2Ugc2hvdWxkIGhhdmUgZm9yY2VkIGFib3ZlKQorICAgICAgICBpZiAodG1wLnN0YXJ0c1dpdGgoIi8iKSl7CisgICAgICAgICAgICByZXR1cm4gImZpbGU6Ly8iICsgdG1wOworICAgICAgICB9CisgICAgICAgIGVsc2V7CisgICAgICAgICAgICByZXR1cm4gImZpbGU6Ly8vIiArIHRtcDsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNYbWxMYW5nIChTdHJpbmcgbGFuZyl7CisKKyAgICAgICAgaW50IHN1ZmZpeDsKKyAgICAgICAgY2hhciBjOworICAgICAgICAKKyAgICAgICAgaWYgKGxhbmcubGVuZ3RoICgpIDwgMil7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBjID0gbGFuZy5jaGFyQXQoMSk7CisgICAgICAgIGlmIChjID09ICctJykgeyAgICAgICAgCisgICAgICAgICAgICBjID0gbGFuZy5jaGFyQXQoMCk7CisgICAgICAgICAgICBpZiAoIShjID09ICdpJyB8fCBjID09ICdJJyB8fCBjID09ICd4JyB8fCBjID09ICdYJykpeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN1ZmZpeCA9IDE7CisgICAgICAgIH0gZWxzZSBpZiAoKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSB8fCAoYyA+PSAnQScgJiYgYyA8PSAnWicpKSB7CisgICAgICAgICAgICBjID0gbGFuZy5jaGFyQXQoMCk7CisgICAgICAgICAgICBpZiAoISgoYyA+PSAnYScgJiYgYyA8PSAneicpIHx8IChjID49ICdBJyAmJiBjIDw9ICdaJykpKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdWZmaXggPSAyOworICAgICAgICB9IGVsc2V7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKHN1ZmZpeCA8IGxhbmcubGVuZ3RoICgpKSB7CisgICAgICAgICAgICBjID0gbGFuZy5jaGFyQXQoc3VmZml4KTsKKyAgICAgICAgICAgIGlmIChjICE9ICctJyl7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAoKytzdWZmaXggPCBsYW5nLmxlbmd0aCAoKSkgeworICAgICAgICAgICAgICAgIGMgPSBsYW5nLmNoYXJBdChzdWZmaXgpOworICAgICAgICAgICAgICAgIGlmICghKChjID49ICdhJyAmJiBjIDw9ICd6JykgfHwgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSkpeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICAoKGxhbmcubGVuZ3RoKCkgPT0gc3VmZml4KSAmJiAoYyAhPSAnLScpKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZVJCKFN0cmluZyB4bWxmaWxlTmFtZSkgeworICAgICAgIAorICAgICAgICBTdHJpbmcgdXJscyA9IGZpbGVuYW1lVG9VUkwoeG1sZmlsZU5hbWUpOworICAgICAgICBEb2N1bWVudEJ1aWxkZXJGYWN0b3J5IGRmYWN0b3J5ID0gRG9jdW1lbnRCdWlsZGVyRmFjdG9yeS5uZXdJbnN0YW5jZSgpOworICAgICAgICBkZmFjdG9yeS5zZXROYW1lc3BhY2VBd2FyZSh0cnVlKTsKKyAgICAgICAgZGZhY3Rvcnkuc2V0VmFsaWRhdGluZyh0cnVlKTsKKyAgICAgICAgRG9jdW1lbnQgZG9jID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIEVycm9ySGFuZGxlciBudWxsSGFuZGxlciA9IG5ldyBFcnJvckhhbmRsZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3YXJuaW5nKFNBWFBhcnNlRXhjZXB0aW9uIGUpIHRocm93cyBTQVhFeGNlcHRpb24geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIHZvaWQgZXJyb3IoU0FYUGFyc2VFeGNlcHRpb24gZSkgdGhyb3dzIFNBWEV4Y2VwdGlvbiB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJUaGUgWExJRkYgZG9jdW1lbnQgaXMgaW52YWxpZCwgcGxlYXNlIGNoZWNrIGl0IGZpcnN0OiAiKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkxpbmUgIitlLmdldExpbmVOdW1iZXIoKSsiLCBDb2x1bW4gIitlLmdldENvbHVtbk51bWJlcigpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVycm9yOiAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIHZvaWQgZmF0YWxFcnJvcihTQVhQYXJzZUV4Y2VwdGlvbiBlKSB0aHJvd3MgU0FYRXhjZXB0aW9uIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIERvY3VtZW50QnVpbGRlciBkb2NCdWlsZGVyID0gZGZhY3RvcnkubmV3RG9jdW1lbnRCdWlsZGVyKCk7CisgICAgICAgICAgICBkb2NCdWlsZGVyLnNldEVycm9ySGFuZGxlcihudWxsSGFuZGxlcik7CisgICAgICAgICAgICBkb2MgPSBkb2NCdWlsZGVyLnBhcnNlKG5ldyBJbnB1dFNvdXJjZSh1cmxzKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE5vZGVMaXN0IG5saXN0ID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKEZJTEVTKTsKKyAgICAgICAgICAgIGlmKG5saXN0LmdldExlbmd0aCgpPjEpeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJNdWx0aXBsZSA8ZmlsZT4gZWxlbWVudHMgaW4gdGhlIFhMSUZGIGZpbGUgbm90IHN1cHBvcnRlZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGdldCB0aGUgdmFsdWUgb2Ygc291cmNlLWxhbmd1YWdlIGF0dHJpYnV0ZQorICAgICAgICAgICAgU3RyaW5nIHNvdXJjZUxhbmcgPSBnZXRMYW5ndWFnZU5hbWUoZG9jLCBTT1VSQ0VMQU5HVUFHRSk7CisgICAgICAgICAgICAvLyBnZXQgdGhlIHZhbHVlIG9mIHRhcmdldC1sYW5ndWFnZSBhdHRyaWJ1dGUKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXRMYW5nID0gZ2V0TGFuZ3VhZ2VOYW1lKGRvYywgVEFSR0VUTEFOR1VBR0UpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBnZXQgdGhlIGxpc3Qgb2YgPHNvdXJjZT4gZWxlbWVudHMKKyAgICAgICAgICAgIE5vZGVMaXN0IHNvdXJjZUxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoU09VUkNFKTsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgbGlzdCBvZiB0YXJnZXQgZWxlbWVudHMKKyAgICAgICAgICAgIE5vZGVMaXN0IHRhcmdldExpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVEFSR0VUKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIHhsaWZmIGZpbGUgaGFzIHNvdXJjZSBlbGVtZW50cyBpbiBtdWx0aXBsZSBsYW5ndWFnZXMKKyAgICAgICAgICAgIC8vIHRoZSBzb3VyY2UtbGFuZ3VhZ2UgdmFsdWUgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHhtbDpsYW5nIHZhbHVlcworICAgICAgICAgICAgLy8gb2YgYWxsIHRoZSBzb3VyY2UgZWxlbWVudHMuCisgICAgICAgICAgICBTdHJpbmcgeG1sU3JjTGFuZyA9IGNoZWNrTGFuZ0F0dHJpYnV0ZShzb3VyY2VMaXN0LCBzb3VyY2VMYW5nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIHhsaWZmIGZpbGUgaGFzIHRhcmdldCBlbGVtZW50cyBpbiBtdWx0aXBsZSBsYW5ndWFnZXMKKyAgICAgICAgICAgIC8vIHRoZSB0YXJnZXQtbGFuZ3VhZ2UgdmFsdWUgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHhtbDpsYW5nIHZhbHVlcworICAgICAgICAgICAgLy8gb2YgYWxsIHRoZSB0YXJnZXQgZWxlbWVudHMuCisgICAgICAgICAgICBTdHJpbmcgeG1sVGFyZ2V0TGFuZyA9IGNoZWNrTGFuZ0F0dHJpYnV0ZSh0YXJnZXRMaXN0LCB0YXJnZXRMYW5nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBSZXNvdXJjZSBsaW5rZWQgbGlzdCB3aGljaCB3aWxsIGhvbGQgdGhlCisgICAgICAgICAgICAvLyBzb3VyY2UgYW5kIHRhcmdldCBidW5kbGVzIGFmdGVyIHBhcnNpbmcKKyAgICAgICAgICAgIFJlc291cmNlW10gc2V0ID0gbmV3IFJlc291cmNlWzJdOworICAgICAgICAgICAgc2V0WzBdID0gbmV3IFJlc291cmNlVGFibGUoKTsKKyAgICAgICAgICAgIHNldFsxXSA9IG5ldyBSZXNvdXJjZVRhYmxlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGxlbmllbnQgZXh0cmFjdGlvbiBvZiBzb3VyY2UgbGFuZ3VhZ2UKKyAgICAgICAgICAgIGlmKG1ha2VTb3VyY2VSb290ID09IHRydWUpeyAKKyAgICAgICAgICAgICAgICBzZXRbMF0ubmFtZSA9IFJPT1Q7CisgICAgICAgICAgICB9ZWxzZSBpZihzb3VyY2VMYW5nIT1udWxsKXsKKyAgICAgICAgICAgICAgICBzZXRbMF0ubmFtZSA9IHNvdXJjZUxhbmcucmVwbGFjZSgnLScsJ18nKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGlmKHhtbFNyY0xhbmcgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHNldFswXS5uYW1lID0geG1sU3JjTGFuZy5yZXBsYWNlKCctJywnXycpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkVSUk9SOiBDb3VsZCBub3QgZmlndXJlIG91dCB0aGUgc291cmNlIGxhbmd1YWdlIG9mIHRoZSBmaWxlLiBQbGVhc2UgY2hlY2sgdGhlIFhMSUZGIGZpbGUuIik7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KC0xKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGxlbmllbnQgZXh0cmFjdGlvbiBvZiB0aGUgdGFyZ2V0IGxhbmd1YWdlCisgICAgICAgICAgICBpZih0YXJnZXRMYW5nIT1udWxsKXsKKyAgICAgICAgICAgICAgICBzZXRbMV0ubmFtZSA9IHRhcmdldExhbmcucmVwbGFjZSgnLScsJ18nKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGlmKHhtbFRhcmdldExhbmchPW51bGwpeworICAgICAgICAgICAgICAgICAgICBzZXRbMV0ubmFtZSA9IHhtbFRhcmdldExhbmcucmVwbGFjZSgnLScsJ18nKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJXQVJOSU5HOiBDb3VsZCBub3QgZmlndXJlIG91dCB0aGUgdGFyZ2V0IGxhbmd1YWdlIG9mIHRoZSBmaWxlLiBQcm9kdWNpbmcgc291cmNlIGJ1bmRsZSBvbmx5LiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgIAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjaGVjayBpZiBhbnkgPGFsdC10cmFucz4gZWxlbWVudHMgYXJlIHByZXNlbnQKKyAgICAgICAgICAgIE5vZGVMaXN0IGFsdFRyYW5zID0gZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKEFMVFRSQU5TKTsKKyAgICAgICAgICAgIGlmKGFsdFRyYW5zLmdldExlbmd0aCgpPjApeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiV0FSTklORzogPGFsdC10cmFucz4gZWxlbWVudHMgaW4gZm91bmQuIElnbm9yaW5nIGFsbCA8YWx0LXRyYW5zPiBlbGVtZW50cy4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gZ2V0IGFsbCB0aGUgZ3JvdXAgZWxlbWVudHMKKyAgICAgICAgICAgIE5vZGVMaXN0IGxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoR1JPVVBTKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gcHJvY2VzcyB0aGUgZmlyc3QgZ3JvdXAgZWxlbWVudC4gVGhlIGZpcnN0IGdyb3VwIGVsZW1lbnQgaXMgCisgICAgICAgICAgICAvLyB0aGUgYmFzZSB0YWJsZSB0aGF0IG11c3QgYmUgcGFyc2VkIHJlY3Vyc2l2ZWx5CisgICAgICAgICAgICBwYXJzZVRhYmxlKGxpc3QuaXRlbSgwKSwgc2V0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gd3JpdGUgb3V0IHRoZSBidW5kbGUKKyAgICAgICAgICAgIHdyaXRlUmVzb3VyY2Uoc2V0LCB4bWxmaWxlTmFtZSk7CisgICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgc2UpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRVJST1I6ICIgKyBzZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgICAgICB9ICAgICAgICAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlUmVzb3VyY2UoUmVzb3VyY2VbXSBzZXQsIFN0cmluZyB4bWxmaWxlTmFtZSl7CisgICAgICAgIGlmKHRhcmdldE9ubHk9PWZhbHNlKXsKKyAgICAgICAgICAgIHdyaXRlUmVzb3VyY2Uoc2V0WzBdLCB4bWxmaWxlTmFtZSwgc291cmNlRmlsZU5hbWUpOworICAgICAgICB9CisgICAgICAgIGlmKHNvdXJjZU9ubHkgPT0gZmFsc2UpeworICAgICAgICAgICAgaWYodGFyZ2V0T25seT09dHJ1ZSAmJiBzZXRbMV0ubmFtZSA9PSBudWxsKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiVGhlICIrIHhtbGZpbGVOYW1lICsiIGRvZXMgbm90IGNvbnRhaW4gdHJhbnNsYXRpb25cbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoc2V0WzFdLm5hbWUgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgd3JpdGVSZXNvdXJjZShzZXRbMV0sIHhtbGZpbGVOYW1lLCB0YXJnZXRGaWxlTmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlUmVzb3VyY2UoUmVzb3VyY2Ugc2V0LCBTdHJpbmcgc291cmNlRmlsZU5hbWUsIFN0cmluZyB0YXJnZXRGaWxlTmFtZSl7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgb3V0cHV0RmlsZU5hbWUgPSBudWxsOworICAgICAgICAgICAgaWYodGFyZ2V0RmlsZU5hbWUgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgb3V0cHV0RmlsZU5hbWUgPSBkZXN0RGlyK0ZpbGUuc2VwYXJhdG9yK3RhcmdldEZpbGVOYW1lKyIudHh0IjsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIG91dHB1dEZpbGVOYW1lID0gZGVzdERpcitGaWxlLnNlcGFyYXRvcitzZXQubmFtZSsiLnR4dCI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBGaWxlT3V0cHV0U3RyZWFtIGZpbGUgPSBuZXcgRmlsZU91dHB1dFN0cmVhbShvdXRwdXRGaWxlTmFtZSk7CisgICAgICAgICAgICBCdWZmZXJlZE91dHB1dFN0cmVhbSB3cml0ZXIgPSBuZXcgQnVmZmVyZWRPdXRwdXRTdHJlYW0oZmlsZSk7CisKKyAgICAgICAgICAgIHdyaXRlSGVhZGVyKHdyaXRlcixzb3VyY2VGaWxlTmFtZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vTm93IHN0YXJ0IHdyaXRpbmcgdGhlIHJlc291cmNlOworICAgICAgICAgICAgUmVzb3VyY2UgY3VycmVudCA9IHNldDsKKyAgICAgICAgICAgIHdoaWxlKGN1cnJlbnQhPW51bGwpeworICAgICAgICAgICAgICAgIGN1cnJlbnQud3JpdGUod3JpdGVyLCAwLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmV4dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdyaXRlci5mbHVzaCgpOworICAgICAgICAgICAgd3JpdGVyLmNsb3NlKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBpZSkgeworICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJFUlJPUiA6IiArIGllLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGdldExhbmd1YWdlTmFtZShEb2N1bWVudCBkb2MsIFN0cmluZyBsYW5nKXsKKyAgICAgICAgaWYoZG9jIT1udWxsKXsKKyAgICAgICAgICAgIE5vZGVMaXN0IGxpc3QgPSBkb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoRklMRSk7CisgICAgICAgICAgICBOb2RlIG5vZGUgPSBsaXN0Lml0ZW0oMCk7CisgICAgICAgICAgICBOYW1lZE5vZGVNYXAgYXR0ciA9IG5vZGUuZ2V0QXR0cmlidXRlcygpOworICAgICAgICAgICAgTm9kZSBvcmlnID0gYXR0ci5nZXROYW1lZEl0ZW0obGFuZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKG9yaWcgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBvcmlnLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIE5vZGVMaXN0IGdyb3VwTGlzdCA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZShHUk9VUFMpOworICAgICAgICAgICAgICAgIE5vZGUgZ3JvdXAgPSBncm91cExpc3QuaXRlbSgwKTsKKyAgICAgICAgICAgICAgICBOYW1lZE5vZGVNYXAgZ3JvdXBBdHQgPSBncm91cC5nZXRBdHRyaWJ1dGVzKCk7CisgICAgICAgICAgICAgICAgTm9kZSBpZCA9IGdyb3VwQXR0LmdldE5hbWVkSXRlbShJRCk7CisgICAgICAgICAgICAgICAgaWYoaWQhPW51bGwpeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaWRWYWwgPSBpZC5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmKCFuYW1lLmVxdWFscyhpZFZhbCkpeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXQVJOSU5HOiBUaGUgaWQgdmFsdWUgIT0gbGFuZ3VhZ2UgbmFtZS4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBsZWFzZSBjb21wYXJlIHRoZSBvdXRwdXQgd2l0aCB0aGUgb3JpZ25hbCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSUNVIFJlc291cmNlQnVuZGxlIGJlZm9yZSBwcm9jZWVkaW5nLiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKCFpc1htbExhbmcobmFtZSkpeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIlRoZSBhdHRyaWJ1dGUgIisgbGFuZyArICI9XCIiKyBuYW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIiBvZiA8ZmlsZT4gZWxlbWVudCBkb2VzIG5vdCBzYXRpc2Z5IFJGQyAxNzY2IGNvbmRpdGlvbnMuIik7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KC0xKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIC8vIGNoZWNrIGlmIHRoZSB4bGlmZiBmaWxlIGlzIHRyYW5zbGF0ZWQgaW50byBtdWx0aXBsZSBsYW5ndWFnZXMKKyAgICAvLyBUaGUgWExJRkYgc3BlY2lmaWNhdGlvbiBhbGxvd3MgZm9yIHNpbmdsZSA8dGFyZ2V0PiBlbGVtZW50CisgICAgLy8gYXMgdGhlIGNoaWxkIG9mIDx0cmFucy11bml0PiBidXQgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIAorICAgIC8vIDx0YXJnZXQ+IGVsZW1lbnQgbWF5IGRpZmZlcmVudCBhY3Jvc3MgPHRyYW5zLXVuaXQ+IGVsZW1lbnRzCisgICAgLy8gY2hlY2sgZm9yIGl0LiBTaW1pbGFyIGlzIHRoZSBjYXNlIHdpdGggPHNvdXJjZT4gZWxlbWVudHMKKyAgICBwcml2YXRlIFN0cmluZyBjaGVja0xhbmdBdHRyaWJ1dGUoTm9kZUxpc3QgbGlzdCwgU3RyaW5nIG9yaWdOYW1lKXsKKyAgICAgICAgU3RyaW5nIG9sZExhbmdOYW1lPW9yaWdOYW1lOworICAgICAgICBmb3IoaW50IGkgPSAwIDtpPGxpc3QuZ2V0TGVuZ3RoKCk7IGkrKyl7CisgICAgICAgICAgICBOb2RlIG5vZGUgPSBsaXN0Lml0ZW0oaSk7CisgICAgICAgICAgICBOYW1lZE5vZGVNYXAgYXR0ciA9IG5vZGUuZ2V0QXR0cmlidXRlcygpOworICAgICAgICAgICAgTm9kZSBsYW5nID0gYXR0ci5nZXROYW1lZEl0ZW0oWE1MTEFORyk7CisgICAgICAgICAgICBTdHJpbmcgbGFuZ05hbWUgPSBudWxsOworICAgICAgICAgICAgLy8gdGhlIHRhcmdldCBlbGVtZW50IHNob3VsZCBhbHdheXMgY29udGFpbiB4bWw6bGFuZyBhdHRyaWJ1dGUKKyAgICAgICAgICAgIGlmKGxhbmc9PW51bGwgKXsKKyAgICAgICAgICAgICAgICBpZihvcmlnTmFtZT09bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRW5jb3VudGVyZWQgPHRhcmdldD4gZWxlbWVudCB3aXRob3V0IHhtbDpsYW5nIGF0dHJpYnV0ZS4gUGxlYXNlIGZpeCB0aGUgYmVsb3cgZWxlbWVudCBpbiB0aGUgWExJRkYgZmlsZS5cbiIrIG5vZGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KC0xKTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgbGFuZ05hbWUgPSBvcmlnTmFtZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBsYW5nTmFtZSA9IGxhbmcuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmKG9sZExhbmdOYW1lIT1udWxsICYmIGxhbmdOYW1lIT1udWxsICYmICFsYW5nTmFtZS5lcXVhbHMob2xkTGFuZ05hbWUpKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiVGhlIDx0cmFucy11bml0PiBlbGVtZW50cyBtdXN0IGJlIGJpbGluZ3VhbCwgbXVsdGlsaW5ndWFsIHRyYW5sYXRpb25zIG5vdCBzdXBwb3J0ZWQuIHhtbDpsYW5nID0gIiArIG9sZExhbmdOYW1lICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBhbmQgeG1sOmxhbmcgPSAiICsgbGFuZ05hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb2xkTGFuZ05hbWUgPSBsYW5nTmFtZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2xkTGFuZ05hbWU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2V7CisgICAgICAgIFN0cmluZ1tdIG5vdGUgPSBuZXcgU3RyaW5nWzIwXTsKKyAgICAgICAgaW50IG5vdGVMZW4gPSAwOworICAgICAgICBTdHJpbmcgdHJhbnNsYXRlOworICAgICAgICBTdHJpbmcgY29tbWVudDsKKyAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgIFJlc291cmNlIG5leHQ7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZXNjYXBlU3ludGF4Q2hhcnMoU3RyaW5nIHZhbCl7CisgICAgICAgICAgICAvLyBlc2NhcGUgdGhlIGVtYmVkZGVkIHF1b3RlcworICAgICAgICAgICAgY2hhcltdIHN0ciA9IHZhbC50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPHN0ci5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgICAgc3dpdGNoIChzdHJbaV0peworICAgICAgICAgICAgICAgICAgICBjYXNlICdcdTAwMjInOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXFwnKTsgLy9hcHBlbmQgYmFja3NsYXNoCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHN0cltpXSk7CisgICAgICAgICAgICAgICAgfSAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlKE91dHB1dFN0cmVhbSB3cml0ZXIsIGludCBudW1JbmRlbnQsIGJvb2xlYW4gYmFyZSl7CisgICAgICAgICAgICB3aGlsZShuZXh0IT1udWxsKXsKKyAgICAgICAgICAgICAgICBuZXh0LndyaXRlKHdyaXRlciwgbnVtSW5kZW50KzEsIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZUluZGVudChPdXRwdXRTdHJlYW0gd3JpdGVyLCBpbnQgbnVtSW5kZW50KXsKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPCBudW1JbmRlbnQ7IGkrKyl7CisgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLElOREVOVCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoT3V0cHV0U3RyZWFtIHdyaXRlciwgU3RyaW5nIHZhbHVlKXsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzID0gdmFsdWUuZ2V0Qnl0ZXMoQ0hBUlNFVCk7CisgICAgICAgICAgICAgICAgd3JpdGVyLndyaXRlKGJ5dGVzLCAwLCBieXRlcy5sZW5ndGgpOworICAgICAgICAgICAgfSBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihlKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZUNvbW1lbnRzKE91dHB1dFN0cmVhbSB3cml0ZXIsIGludCBudW1JbmRlbnQpeworICAgICAgICAgICAgaWYoY29tbWVudCE9bnVsbCB8fCB0cmFuc2xhdGUgIT0gbnVsbCB8fCBub3RlTGVuID4gMCl7CisgICAgICAgICAgICAgICAgLy8gcHJpbnQgdGhlIHN0YXJ0IG9mIHRoZSBjb21tZW50CisgICAgICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgQ09NTUVOVFNUQVJUK0xJTkVTRVApOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIHByaW50IGNvbW1lbnQgaWYgYW55CisgICAgICAgICAgICAgICAgaWYoY29tbWVudCE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBDT01NRU5UTUlERExFKTsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBjb21tZW50KTsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBMSU5FU0VQKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gcHJpbnQgdGhlIHRyYW5zbGF0ZSBhdHRyaWJ1dGUgaWYgYW55CisgICAgICAgICAgICAgICAgaWYodHJhbnNsYXRlIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIFRBRytUUkFOU0xBVEUrU1BBQ0UpOworICAgICAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIHRyYW5zbGF0ZSk7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlciwgTElORVNFUCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIHByaW50IG5vdGUgZWxlbWVudHMgaWYgYW55CisgICAgICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8bm90ZUxlbjsgaSsrKXsKKyAgICAgICAgICAgICAgICAgICAgaWYobm90ZVtpXSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIFRBRytOT1RFK1NQQUNFK25vdGVbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBMSU5FU0VQKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyB0ZXJtaW5hdGUgdGhlIGNvbW1lbnQKKyAgICAgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBDT01NRU5URU5EK0xJTkVTRVApOworICAgICAgICAgICAgfSAgICAgICAgICAKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2VTdHJpbmcgZXh0ZW5kcyBSZXNvdXJjZXsKKyAgICAgICAgU3RyaW5nIHZhbDsKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoT3V0cHV0U3RyZWFtIHdyaXRlciwgaW50IG51bUluZGVudCwgYm9vbGVhbiBiYXJlKXsKKyAgICAgICAgICAgIHdyaXRlQ29tbWVudHMod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgaWYoYmFyZT09dHJ1ZSl7CisgICAgICAgICAgICAgICAgaWYobmFtZSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJCYXJlIG9wdGlvbiBpcyBzZXQgdG8gdHJ1ZSBidXQgdGhlIHJlc291cmNlIGhhcyBhIG5hbWUhIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlcixRVU9URStlc2NhcGVTeW50YXhDaGFycyh2YWwpK1FVT1RFKTsgCisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIG5hbWUrQ09MT04rU1RSSU5HUysgT1BFTkJSQUNFICsgUVVPVEUgKyBlc2NhcGVTeW50YXhDaGFycyh2YWwpICsgUVVPVEUrIENMT1NFQlJBQ0UgKyBMSU5FU0VQKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlQWxpYXMgZXh0ZW5kcyBSZXNvdXJjZXsKKyAgICAgICAgU3RyaW5nIHZhbDsKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoT3V0cHV0U3RyZWFtIHdyaXRlciwgaW50IG51bUluZGVudCwgYm9vbGVhbiBiYXJlKXsKKyAgICAgICAgICAgIHdyaXRlQ29tbWVudHMod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSAgKChuYW1lPT1udWxsKT8gRU1QVFk6IG5hbWUpK0NPTE9OK0FMSUFTKyBPUEVOQlJBQ0UrUVVPVEUrZXNjYXBlU3ludGF4Q2hhcnModmFsKStRVU9URStDTE9TRUJSQUNFOworICAgICAgICAgICAgaWYoYmFyZT09dHJ1ZSl7CisgICAgICAgICAgICAgICAgaWYobmFtZSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJCYXJlIG9wdGlvbiBpcyBzZXQgdG8gdHJ1ZSBidXQgdGhlIHJlc291cmNlIGhhcyBhIG5hbWUhIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlcixsaW5lKTsgCisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIGxpbmUrTElORVNFUCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBjbGFzcyBSZXNvdXJjZUludCBleHRlbmRzIFJlc291cmNleworICAgICAgICBTdHJpbmcgdmFsOworICAgICAgICBwdWJsaWMgdm9pZCB3cml0ZShPdXRwdXRTdHJlYW0gd3JpdGVyLCBpbnQgbnVtSW5kZW50LCBib29sZWFuIGJhcmUpeworICAgICAgICAgICAgd3JpdGVDb21tZW50cyh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICBTdHJpbmcgbGluZSA9ICAoKG5hbWU9PW51bGwpPyBFTVBUWTogbmFtZSkrQ09MT04rSU5UUysgT1BFTkJSQUNFICsgdmFsICtDTE9TRUJSQUNFOworICAgICAgICAgICAgaWYoYmFyZT09dHJ1ZSl7CisgICAgICAgICAgICAgICAgaWYobmFtZSE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJCYXJlIG9wdGlvbiBpcyBzZXQgdG8gdHJ1ZSBidXQgdGhlIHJlc291cmNlIGhhcyBhIG5hbWUhIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdyaXRlKHdyaXRlcixsaW5lKTsgCisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIGxpbmUrTElORVNFUCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBjbGFzcyBSZXNvdXJjZUJpbmFyeSBleHRlbmRzIFJlc291cmNleworICAgICAgICBTdHJpbmcgaW50ZXJuYWw7CisgICAgICAgIFN0cmluZyBleHRlcm5hbDsKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoT3V0cHV0U3RyZWFtIHdyaXRlciwgaW50IG51bUluZGVudCwgYm9vbGVhbiBiYXJlKXsKKyAgICAgICAgICAgIHdyaXRlQ29tbWVudHMod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgaWYoaW50ZXJuYWw9PW51bGwpeworICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lID0gKChuYW1lPT1udWxsKSA/IEVNUFRZIDogbmFtZSkrQ09MT04rSU1QT1JUKyBPUEVOQlJBQ0UrUVVPVEUrZXh0ZXJuYWwrUVVPVEUrQ0xPU0VCUkFDRSArICgoYmFyZT09dHJ1ZSkgPyAgRU1QVFkgOiBMSU5FU0VQKTsKKyAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIGxpbmUpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgU3RyaW5nIGxpbmUgPSAoKG5hbWU9PW51bGwpID8gRU1QVFkgOiBuYW1lKStDT0xPTitCSU4rIE9QRU5CUkFDRStpbnRlcm5hbCtDTE9TRUJSQUNFKyAoKGJhcmU9PXRydWUpID8gIEVNUFRZIDogTElORVNFUCk7CisgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLGxpbmUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBjbGFzcyBSZXNvdXJjZUludFZlY3RvciBleHRlbmRzIFJlc291cmNleworICAgICAgICBSZXNvdXJjZUludCBmaXJzdDsKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoT3V0cHV0U3RyZWFtIHdyaXRlciwgaW50IG51bUluZGVudCwgYm9vbGVhbiBiYXJlKXsKKyAgICAgICAgICAgIHdyaXRlQ29tbWVudHMod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBuYW1lK0NPTE9OK0lOVFZFQ1RPUitPUEVOQlJBQ0UrTElORVNFUCk7CisgICAgICAgICAgICBudW1JbmRlbnQrKzsKKyAgICAgICAgICAgIFJlc291cmNlSW50IGN1cnJlbnQgPSAoUmVzb3VyY2VJbnQpIGZpcnN0OworICAgICAgICAgICAgd2hpbGUoY3VycmVudCAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAvL2N1cnJlbnQud3JpdGUod3JpdGVyLCBudW1JbmRlbnQsIHRydWUpOworICAgICAgICAgICAgICAgIHdyaXRlSW5kZW50KHdyaXRlciwgbnVtSW5kZW50KTsKKyAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIGN1cnJlbnQudmFsKTsKKyAgICAgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIENPTU1BK0xJTkVTRVApOworICAgICAgICAgICAgICAgIGN1cnJlbnQgPSAoUmVzb3VyY2VJbnQpIGN1cnJlbnQubmV4dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG51bUluZGVudC0tOworICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBDTE9TRUJSQUNFK0xJTkVTRVApOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2VUYWJsZSBleHRlbmRzIFJlc291cmNleworICAgICAgICBSZXNvdXJjZSBmaXJzdDsKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoT3V0cHV0U3RyZWFtIHdyaXRlciwgaW50IG51bUluZGVudCwgYm9vbGVhbiBiYXJlKXsKKyAgICAgICAgICAgIHdyaXRlQ29tbWVudHMod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBuYW1lK0NPTE9OK1RBQkxFK09QRU5CUkFDRStMSU5FU0VQKTsKKyAgICAgICAgICAgIG51bUluZGVudCsrOworICAgICAgICAgICAgUmVzb3VyY2UgY3VycmVudCA9IGZpcnN0OworICAgICAgICAgICAgd2hpbGUoY3VycmVudCAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICBjdXJyZW50LndyaXRlKHdyaXRlciwgbnVtSW5kZW50LCBmYWxzZSk7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubmV4dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG51bUluZGVudC0tOworICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBDTE9TRUJSQUNFK0xJTkVTRVApOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2VBcnJheSBleHRlbmRzIFJlc291cmNleworICAgICAgICBSZXNvdXJjZSBmaXJzdDsKKyAgICAgICAgcHVibGljIHZvaWQgd3JpdGUoT3V0cHV0U3RyZWFtIHdyaXRlciwgaW50IG51bUluZGVudCwgYm9vbGVhbiBiYXJlKXsKKyAgICAgICAgICAgIHdyaXRlQ29tbWVudHMod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgd3JpdGVJbmRlbnQod3JpdGVyLCBudW1JbmRlbnQpOworICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBuYW1lK0NPTE9OK0FSUkFZUytPUEVOQlJBQ0UrTElORVNFUCk7CisgICAgICAgICAgICBudW1JbmRlbnQrKzsKKyAgICAgICAgICAgIFJlc291cmNlIGN1cnJlbnQgPSBmaXJzdDsKKyAgICAgICAgICAgIHdoaWxlKGN1cnJlbnQgIT0gbnVsbCl7CisgICAgICAgICAgICAgICAgY3VycmVudC53cml0ZSh3cml0ZXIsIG51bUluZGVudCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgd3JpdGUod3JpdGVyLCBDT01NQStMSU5FU0VQKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5uZXh0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgbnVtSW5kZW50LS07CisgICAgICAgICAgICB3cml0ZUluZGVudCh3cml0ZXIsIG51bUluZGVudCk7CisgICAgICAgICAgICB3cml0ZSh3cml0ZXIsIENMT1NFQlJBQ0UrTElORVNFUCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0QXR0cmlidXRlVmFsdWUoTm9kZSBzTm9kZSwgU3RyaW5nIGF0dHJpYk5hbWUpeworICAgICAgICBTdHJpbmcgdmFsdWU9bnVsbDsKKyAgICAgICAgTm9kZSBub2RlID0gc05vZGU7CisKKyAgICAgICAgTmFtZWROb2RlTWFwIGF0dHJpYnV0ZXMgPSBub2RlLmdldEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgTm9kZSBhdHRyID0gYXR0cmlidXRlcy5nZXROYW1lZEl0ZW0oYXR0cmliTmFtZSk7CisgICAgICAgIGlmKGF0dHIhPW51bGwpeworICAgICAgICAgICAgdmFsdWUgPSBhdHRyLmdldE5vZGVWYWx1ZSgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcGFyc2VSZXNvdXJjZVN0cmluZyhOb2RlIG5vZGUsIFJlc291cmNlU3RyaW5nW10gc2V0KXsKKyAgICAgICAgUmVzb3VyY2VTdHJpbmcgY3VycmVudFNvdXJjZTsKKyAgICAgICAgUmVzb3VyY2VTdHJpbmcgY3VycmVudFRhcmdldDsKKyAgICAgICAgY3VycmVudFNvdXJjZSA9ICBzZXRbMF07CisgICAgICAgIGN1cnJlbnRUYXJnZXQgPSAgc2V0WzFdOworICAgICAgICBTdHJpbmcgcmVzTmFtZSAgID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSwgUkVTTkFNRSk7CisgICAgICAgIFN0cmluZyB0cmFuc2xhdGUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLCBUUkFOU0xBVEUpOworICAgICAgICAKKyAgICAgICAgLy8gbG9vcCB0byBwaWNrdXAgPHNvdXJjZT4sIDxub3RlPiBhbmQgPHRhcmdldD4gZWxlbWVudHMKKyAgICAgICAgZm9yKE5vZGUgdHJhbnNVbml0ID0gbm9kZS5nZXRGaXJzdENoaWxkKCk7IHRyYW5zVW5pdCE9bnVsbDsgdHJhbnNVbml0ID0gdHJhbnNVbml0LmdldE5leHRTaWJsaW5nKCkpeworICAgICAgICAgICAgc2hvcnQgdHlwZSA9IHRyYW5zVW5pdC5nZXROb2RlVHlwZSgpOworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSB0cmFuc1VuaXQuZ2V0Tm9kZU5hbWUoKTsKKyAgICAgICAgICAgIGlmKHR5cGUgPT0gTm9kZS5DT01NRU5UX05PREUpeworICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgY29tbWVudAorICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5jb21tZW50ID0gIGN1cnJlbnRUYXJnZXQuY29tbWVudCA9IHRyYW5zVW5pdC5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgIH1lbHNlIGlmKCB0eXBlID09IE5vZGUuRUxFTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICBpZihuYW1lLmVxdWFscyhTT1VSQ0UpKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSB0aGUgc291cmNlIGFuZCB0YXJnZXQgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UubmFtZSA9IGN1cnJlbnRUYXJnZXQubmFtZSA9IHJlc05hbWU7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UudmFsID0gY3VycmVudFRhcmdldC52YWwgPSB0cmFuc1VuaXQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLnRyYW5zbGF0ZSA9IGN1cnJlbnRUYXJnZXQudHJhbnNsYXRlID0gdHJhbnNsYXRlOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKE5PVEUpKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSB0aGUgbm90ZSB2YWx1ZXMKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5ub3RlW2N1cnJlbnRTb3VyY2Uubm90ZUxlbisrXSA9IAorICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC5ub3RlW2N1cnJlbnRUYXJnZXQubm90ZUxlbisrXSA9CisgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc1VuaXQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKFRBUkdFVCkpeworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIHRhcmdldCBlbGVtZW50IHJlcGxhY2UgaXQKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC52YWwgPSB0cmFuc1VuaXQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlUmVzb3VyY2VJbnQoTm9kZSBub2RlLCBSZXNvdXJjZUludFtdIHNldCl7CisgICAgICAgIFJlc291cmNlSW50IGN1cnJlbnRTb3VyY2U7CisgICAgICAgIFJlc291cmNlSW50IGN1cnJlbnRUYXJnZXQ7CisgICAgICAgIGN1cnJlbnRTb3VyY2UgPSAgc2V0WzBdOworICAgICAgICBjdXJyZW50VGFyZ2V0ID0gIHNldFsxXTsKKyAgICAgICAgU3RyaW5nIHJlc05hbWUgICA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsIFJFU05BTUUpOworICAgICAgICBTdHJpbmcgdHJhbnNsYXRlID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSwgVFJBTlNMQVRFKTsKKyAgICAgICAgLy8gbG9vcCB0byBwaWNrdXAgPHNvdXJjZT4sIDxub3RlPiBhbmQgPHRhcmdldD4gZWxlbWVudHMKKyAgICAgICAgZm9yKE5vZGUgdHJhbnNVbml0ID0gbm9kZS5nZXRGaXJzdENoaWxkKCk7IHRyYW5zVW5pdCE9bnVsbDsgdHJhbnNVbml0ID0gdHJhbnNVbml0LmdldE5leHRTaWJsaW5nKCkpeworICAgICAgICAgICAgc2hvcnQgdHlwZSA9IHRyYW5zVW5pdC5nZXROb2RlVHlwZSgpOworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSB0cmFuc1VuaXQuZ2V0Tm9kZU5hbWUoKTsKKyAgICAgICAgICAgIGlmKHR5cGUgPT0gTm9kZS5DT01NRU5UX05PREUpeworICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgY29tbWVudAorICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5jb21tZW50ID0gIGN1cnJlbnRUYXJnZXQuY29tbWVudCA9IHRyYW5zVW5pdC5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgIH1lbHNlIGlmKCB0eXBlID09IE5vZGUuRUxFTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICBpZihuYW1lLmVxdWFscyhTT1VSQ0UpKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSB0aGUgc291cmNlIGFuZCB0YXJnZXQgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UubmFtZSA9IGN1cnJlbnRUYXJnZXQubmFtZSA9IHJlc05hbWU7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UudHJhbnNsYXRlID0gY3VycmVudFRhcmdldC50cmFuc2xhdGUgPSB0cmFuc2xhdGU7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UudmFsID0gY3VycmVudFRhcmdldC52YWwgPSB0cmFuc1VuaXQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKE5PVEUpKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSB0aGUgbm90ZSB2YWx1ZXMKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5ub3RlW2N1cnJlbnRTb3VyY2Uubm90ZUxlbisrXSA9IAorICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC5ub3RlW2N1cnJlbnRUYXJnZXQubm90ZUxlbisrXSA9CisgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc1VuaXQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKFRBUkdFVCkpeworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIHRhcmdldCBlbGVtZW50IHJlcGxhY2UgaXQKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC52YWwgPSB0cmFuc1VuaXQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBwYXJzZVJlc291cmNlQWxpYXMoTm9kZSBub2RlLCBSZXNvdXJjZUFsaWFzW10gc2V0KXsKKyAgICAgICAgUmVzb3VyY2VBbGlhcyBjdXJyZW50U291cmNlOworICAgICAgICBSZXNvdXJjZUFsaWFzIGN1cnJlbnRUYXJnZXQ7CisgICAgICAgIGN1cnJlbnRTb3VyY2UgPSAgc2V0WzBdOworICAgICAgICBjdXJyZW50VGFyZ2V0ID0gIHNldFsxXTsKKyAgICAgICAgU3RyaW5nIHJlc05hbWUgICA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsIFJFU05BTUUpOworICAgICAgICBTdHJpbmcgdHJhbnNsYXRlID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSwgVFJBTlNMQVRFKTsKKyAgICAgICAgLy8gbG9vcCB0byBwaWNrdXAgPHNvdXJjZT4sIDxub3RlPiBhbmQgPHRhcmdldD4gZWxlbWVudHMKKyAgICAgICAgZm9yKE5vZGUgdHJhbnNVbml0ID0gbm9kZS5nZXRGaXJzdENoaWxkKCk7IHRyYW5zVW5pdCE9bnVsbDsgdHJhbnNVbml0ID0gdHJhbnNVbml0LmdldE5leHRTaWJsaW5nKCkpeworICAgICAgICAgICAgc2hvcnQgdHlwZSA9IHRyYW5zVW5pdC5nZXROb2RlVHlwZSgpOworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSB0cmFuc1VuaXQuZ2V0Tm9kZU5hbWUoKTsKKyAgICAgICAgICAgIGlmKHR5cGUgPT0gTm9kZS5DT01NRU5UX05PREUpeworICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgY29tbWVudAorICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5jb21tZW50ID0gIGN1cnJlbnRUYXJnZXQuY29tbWVudCA9IHRyYW5zVW5pdC5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgIH1lbHNlIGlmKCB0eXBlID09IE5vZGUuRUxFTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICBpZihuYW1lLmVxdWFscyhTT1VSQ0UpKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSB0aGUgc291cmNlIGFuZCB0YXJnZXQgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UubmFtZSA9IGN1cnJlbnRUYXJnZXQubmFtZSA9IHJlc05hbWU7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UudHJhbnNsYXRlID0gY3VycmVudFRhcmdldC50cmFuc2xhdGUgPSB0cmFuc2xhdGU7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UudmFsID0gY3VycmVudFRhcmdldC52YWwgPSB0cmFuc1VuaXQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKE5PVEUpKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSB0aGUgbm90ZSB2YWx1ZXMKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5ub3RlW2N1cnJlbnRTb3VyY2Uubm90ZUxlbisrXSA9IAorICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC5ub3RlW2N1cnJlbnRUYXJnZXQubm90ZUxlbisrXSA9CisgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc1VuaXQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKFRBUkdFVCkpeworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIHRhcmdldCBlbGVtZW50IHJlcGxhY2UgaXQKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC52YWwgPSB0cmFuc1VuaXQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBwYXJzZVJlc291cmNlQmluYXJ5KE5vZGUgbm9kZSwgUmVzb3VyY2VCaW5hcnlbXSBzZXQpeworICAgICAgICBSZXNvdXJjZUJpbmFyeSBjdXJyZW50U291cmNlOworICAgICAgICBSZXNvdXJjZUJpbmFyeSBjdXJyZW50VGFyZ2V0OworICAgICAgICBjdXJyZW50U291cmNlID0gIHNldFswXTsKKyAgICAgICAgY3VycmVudFRhcmdldCA9ICBzZXRbMV07CisKKyAgICAgICAgLy8gbG9vcCB0byBwaWNrdXAgPHNvdXJjZT4sIDxub3RlPiBhbmQgPHRhcmdldD4gZWxlbWVudHMKKyAgICAgICAgZm9yKE5vZGUgdHJhbnNVbml0ID0gbm9kZS5nZXRGaXJzdENoaWxkKCk7IHRyYW5zVW5pdCE9bnVsbDsgdHJhbnNVbml0ID0gdHJhbnNVbml0LmdldE5leHRTaWJsaW5nKCkpeworICAgICAgICAgICAgc2hvcnQgdHlwZSA9IHRyYW5zVW5pdC5nZXROb2RlVHlwZSgpOworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSB0cmFuc1VuaXQuZ2V0Tm9kZU5hbWUoKTsKKyAgICAgICAgICAgIGlmKHR5cGUgPT0gTm9kZS5DT01NRU5UX05PREUpeworICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgY29tbWVudAorICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5jb21tZW50ID0gIGN1cnJlbnRUYXJnZXQuY29tbWVudCA9IHRyYW5zVW5pdC5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgIH1lbHNlIGlmKCB0eXBlID09IE5vZGUuRUxFTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICBpZihuYW1lLmVxdWFscyhCSU5TT1VSQ0UpKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gbG9vcCB0byBwaWNrdXAgaW50ZXJuYWwtZmlsZS9leHRlbmFsLWZpbGUgZWxlbWVudAorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhOT1RFKSl7CisgICAgICAgICAgICAgICAgICAgIC8vIHNhdmUgdGhlIG5vdGUgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2Uubm90ZVtjdXJyZW50U291cmNlLm5vdGVMZW4rK10gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQubm90ZVtjdXJyZW50VGFyZ2V0Lm5vdGVMZW4rK10gPQorICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNVbml0LmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhJTlRFUk5BTEZJTEUpKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSB0YXJnZXQgZWxlbWVudCByZXBsYWNlIGl0CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjcmMgPSBnZXRBdHRyaWJ1dGVWYWx1ZSh0cmFuc1VuaXQsIENSQyk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IHRyYW5zVW5pdC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvL3ZlcmlmeSB0aGF0IHRoZSBiaW5hcnkgdmFsdWUgY29uZm9ybXMgdG8gdGhlIENSQworICAgICAgICAgICAgICAgICAgICBpZihJbnRlZ2VyLnBhcnNlSW50KGNyYywgMTApICE9IENhbGN1bGF0ZUNSQzMyLmNvbXB1dGVDUkMzMih2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRVJST1I6IENSQyB2YWx1ZSBpbmNvcnJlY3QhIFBsZWFzZSBjaGVjay4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0LmludGVybmFsID0gY3VycmVudFNvdXJjZS5pbnRlcm5hbD0gdmFsdWU7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKEVYVEVSTkFMRklMRSkpeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZmlsZU5hbWUgPSBnZXRBdHRyaWJ1dGVWYWx1ZSh0cmFuc1VuaXQsIEhSRUYpOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0LmV4dGVybmFsID0gY3VycmVudFNvdXJjZS5leHRlcm5hbCA9IGZpbGVOYW1lOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgdm9pZCBwYXJzZVRyYW5zVW5pdChOb2RlIG5vZGUsIFJlc291cmNlW10gc2V0KXsKKworICAgICAgICBTdHJpbmcgYXR0clR5cGUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLCBSRVNUWVBFKTsKKyAgICAgICAgU3RyaW5nIHRyYW5zbGF0ZSA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsIFRSQU5TTEFURSk7CisgICAgICAgIGlmKGF0dHJUeXBlPT1udWxsIHx8IGF0dHJUeXBlLmVxdWFscyhTVFJJTkdTKSl7CisgICAgICAgICAgICBSZXNvdXJjZVN0cmluZ1tdIHN0cmluZ3MgPSBuZXcgUmVzb3VyY2VTdHJpbmdbMl07CisgICAgICAgICAgICBzdHJpbmdzWzBdID0gbmV3IFJlc291cmNlU3RyaW5nKCk7CisgICAgICAgICAgICBzdHJpbmdzWzFdID0gbmV3IFJlc291cmNlU3RyaW5nKCk7CisgICAgICAgICAgICBwYXJzZVJlc291cmNlU3RyaW5nKG5vZGUsIHN0cmluZ3MpOworICAgICAgICAgICAgc3RyaW5nc1swXS50cmFuc2xhdGUgPSBzdHJpbmdzWzFdLnRyYW5zbGF0ZSA9IHRyYW5zbGF0ZTsKKyAgICAgICAgICAgIHNldFswXSA9IHN0cmluZ3NbMF07CisgICAgICAgICAgICBzZXRbMV0gPSBzdHJpbmdzWzFdOworICAgICAgICB9ZWxzZSBpZihhdHRyVHlwZS5lcXVhbHMoSU5UUykpeworICAgICAgICAgICAgUmVzb3VyY2VJbnRbXSBpbnRzID0gbmV3IFJlc291cmNlSW50WzJdOworICAgICAgICAgICAgaW50c1swXSA9IG5ldyBSZXNvdXJjZUludCgpOworICAgICAgICAgICAgaW50c1sxXSA9IG5ldyBSZXNvdXJjZUludCgpOworICAgICAgICAgICAgcGFyc2VSZXNvdXJjZUludChub2RlLCBpbnRzKTsKKyAgICAgICAgICAgIGludHNbMF0udHJhbnNsYXRlID0gaW50c1sxXS50cmFuc2xhdGUgPSB0cmFuc2xhdGU7CisgICAgICAgICAgICBzZXRbMF0gPSBpbnRzWzBdOworICAgICAgICAgICAgc2V0WzFdID0gaW50c1sxXTsKKyAgICAgICAgfWVsc2UgaWYoYXR0clR5cGUuZXF1YWxzKEFMSUFTKSl7CisgICAgICAgICAgICBSZXNvdXJjZUFsaWFzW10gaW50cyA9IG5ldyBSZXNvdXJjZUFsaWFzWzJdOworICAgICAgICAgICAgaW50c1swXSA9IG5ldyBSZXNvdXJjZUFsaWFzKCk7CisgICAgICAgICAgICBpbnRzWzFdID0gbmV3IFJlc291cmNlQWxpYXMoKTsKKyAgICAgICAgICAgIHBhcnNlUmVzb3VyY2VBbGlhcyhub2RlLCBpbnRzKTsKKyAgICAgICAgICAgIGludHNbMF0udHJhbnNsYXRlID0gaW50c1sxXS50cmFuc2xhdGUgPSB0cmFuc2xhdGU7CisgICAgICAgICAgICBzZXRbMF0gPSBpbnRzWzBdOworICAgICAgICAgICAgc2V0WzFdID0gaW50c1sxXTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwYXJzZUJpblVuaXQoTm9kZSBub2RlLCBSZXNvdXJjZVtdIHNldCl7CisgICAgICAgIFJlc291cmNlQmluYXJ5W10gYmlucyA9IG5ldyBSZXNvdXJjZUJpbmFyeVsyXTsKKyAgICAgICAgYmluc1swXSA9IG5ldyBSZXNvdXJjZUJpbmFyeSgpOworICAgICAgICBiaW5zWzFdID0gbmV3IFJlc291cmNlQmluYXJ5KCk7CisgICAgICAgIFJlc291cmNlIGN1cnJlbnRTb3VyY2UgPSBiaW5zWzBdOworICAgICAgICBSZXNvdXJjZSBjdXJyZW50VGFyZ2V0ID0gYmluc1sxXTsKKyAgICAgICAgU3RyaW5nIHJlc05hbWUgICA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsIFJFU05BTUUpOworICAgICAgICBTdHJpbmcgdHJhbnNsYXRlID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSwgVFJBTlNMQVRFKTsKKyAgICAgICAgY3VycmVudFRhcmdldC5uYW1lID0gY3VycmVudFNvdXJjZS5uYW1lID0gcmVzTmFtZTsKKyAgICAgICAgY3VycmVudFNvdXJjZS50cmFuc2xhdGUgPSBjdXJyZW50VGFyZ2V0LnRyYW5zbGF0ZSA9IHRyYW5zbGF0ZTsKKyAgICAgICAgZm9yKE5vZGUgY2hpbGQgPSBub2RlLmdldEZpcnN0Q2hpbGQoKTsgY2hpbGQgIT0gbnVsbDsgY2hpbGQgPSBjaGlsZC5nZXROZXh0U2libGluZygpKXsKKyAgICAgICAgICAgIHNob3J0IHR5cGUgPSBjaGlsZC5nZXROb2RlVHlwZSgpOworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBjaGlsZC5nZXROb2RlTmFtZSgpOworICAgICAgICAgICAgaWYodHlwZSA9PSBOb2RlLkNPTU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5jb21tZW50ID0gY3VycmVudFRhcmdldC5jb21tZW50ID0gY2hpbGQuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICB9ZWxzZSBpZih0eXBlID09IE5vZGUuRUxFTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICBpZihuYW1lLmVxdWFscyhCSU5TT1VSQ0UpKXsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VSZXNvdXJjZUJpbmFyeShjaGlsZCwgYmlucyk7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoTk9URSkpeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbm90ZSA9ICBjaGlsZC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2Uubm90ZVtjdXJyZW50U291cmNlLm5vdGVMZW4rK10gPSBjdXJyZW50VGFyZ2V0Lm5vdGVbY3VycmVudFRhcmdldC5ub3RlTGVuKytdID0gbm90ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc2V0WzBdID0gYmluc1swXTsKKyAgICAgICAgc2V0WzFdID0gYmluc1sxXTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlQXJyYXkoTm9kZSBub2RlLCBSZXNvdXJjZVtdIHNldCl7CisgICAgICAgIGlmKHNldFswXT09bnVsbCl7CisgICAgICAgICAgICBzZXRbMF0gPSBuZXcgUmVzb3VyY2VBcnJheSgpOworICAgICAgICAgICAgc2V0WzFdID0gbmV3IFJlc291cmNlQXJyYXkoKTsKKyAgICAgICAgfQorICAgICAgICBSZXNvdXJjZSBjdXJyZW50U291cmNlID0gc2V0WzBdOworICAgICAgICBSZXNvdXJjZSBjdXJyZW50VGFyZ2V0ID0gc2V0WzFdOworICAgICAgICBTdHJpbmcgcmVzTmFtZSA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsIFJFU05BTUUpOworICAgICAgICBjdXJyZW50U291cmNlLm5hbWUgPSBjdXJyZW50VGFyZ2V0Lm5hbWUgPSByZXNOYW1lOworICAgICAgICBib29sZWFuIGlzRmlyc3QgPSB0cnVlOworICAgICAgICAKKyAgICAgICAgZm9yKE5vZGUgY2hpbGQgPSBub2RlLmdldEZpcnN0Q2hpbGQoKTsgY2hpbGQgIT0gbnVsbDsgY2hpbGQgPSBjaGlsZC5nZXROZXh0U2libGluZygpKXsKKyAgICAgICAgICAgIHNob3J0IHR5cGUgPSBjaGlsZC5nZXROb2RlVHlwZSgpOworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBjaGlsZC5nZXROb2RlTmFtZSgpOworICAgICAgICAgICAgaWYodHlwZSA9PSBOb2RlLkNPTU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5jb21tZW50ID0gY3VycmVudFRhcmdldC5jb21tZW50ID0gY2hpbGQuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICB9ZWxzZSBpZih0eXBlID09IE5vZGUuRUxFTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICBpZihuYW1lLmVxdWFscyhUUkFOU1VOSVQpKXsKKyAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VbXSBuZXh0ID0gbmV3IFJlc291cmNlWzJdOworICAgICAgICAgICAgICAgICAgICBwYXJzZVRyYW5zVW5pdChjaGlsZCwgbmV4dCk7CisgICAgICAgICAgICAgICAgICAgIGlmKGlzRmlyc3Q9PXRydWUpeworICAgICAgICAgICAgICAgICAgICAgICAoKFJlc291cmNlQXJyYXkpIGN1cnJlbnRTb3VyY2UpLmZpcnN0ID0gbmV4dFswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgKChSZXNvdXJjZUFycmF5KSBjdXJyZW50VGFyZ2V0KS5maXJzdCA9IG5leHRbMV07CisgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UgPSAoKFJlc291cmNlQXJyYXkpIGN1cnJlbnRTb3VyY2UpLmZpcnN0OworICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gKChSZXNvdXJjZUFycmF5KSBjdXJyZW50VGFyZ2V0KS5maXJzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UubmV4dCA9IG5leHRbMF07CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0Lm5leHQgPSBuZXh0WzFdOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBuZXh0IHBvaW50ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlID0gY3VycmVudFNvdXJjZS5uZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldCA9IGN1cnJlbnRUYXJnZXQubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKE5PVEUpKXsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5vdGUgPSAgY2hpbGQuZ2V0Rmlyc3RDaGlsZCgpLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5vdGVbY3VycmVudFNvdXJjZS5ub3RlTGVuKytdID0gY3VycmVudFRhcmdldC5ub3RlW2N1cnJlbnRUYXJnZXQubm90ZUxlbisrXSA9IG5vdGU7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoQklOVU5JVCkpeworICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVtdIG5leHQgPSBuZXcgUmVzb3VyY2VbMl07CisgICAgICAgICAgICAgICAgICAgIHBhcnNlQmluVW5pdChjaGlsZCwgbmV4dCk7CisgICAgICAgICAgICAgICAgICAgIGlmKGlzRmlyc3Q9PXRydWUpeworICAgICAgICAgICAgICAgICAgICAgICAoKFJlc291cmNlQXJyYXkpIGN1cnJlbnRTb3VyY2UpLmZpcnN0ID0gbmV4dFswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgKChSZXNvdXJjZUFycmF5KSBjdXJyZW50VGFyZ2V0KS5maXJzdCA9IG5leHRbMV07CisgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UgPSAoKFJlc291cmNlQXJyYXkpIGN1cnJlbnRTb3VyY2UpLmZpcnN0Lm5leHQ7CisgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQgPSAoKFJlc291cmNlQXJyYXkpIGN1cnJlbnRUYXJnZXQpLmZpcnN0Lm5leHQ7CisgICAgICAgICAgICAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5leHQgPSBuZXh0WzBdOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC5uZXh0ID0gbmV4dFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgbmV4dCBwb2ludGVycworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZSA9IGN1cnJlbnRTb3VyY2UubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0Lm5leHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlSW50VmVjdG9yKE5vZGUgbm9kZSwgUmVzb3VyY2VbXSBzZXQpeworICAgICAgICBpZihzZXRbMF09PW51bGwpeworICAgICAgICAgICAgc2V0WzBdID0gbmV3IFJlc291cmNlSW50VmVjdG9yKCk7CisgICAgICAgICAgICBzZXRbMV0gPSBuZXcgUmVzb3VyY2VJbnRWZWN0b3IoKTsKKyAgICAgICAgfQorICAgICAgICBSZXNvdXJjZSBjdXJyZW50U291cmNlID0gc2V0WzBdOworICAgICAgICBSZXNvdXJjZSBjdXJyZW50VGFyZ2V0ID0gc2V0WzFdOworICAgICAgICBTdHJpbmcgcmVzTmFtZSA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsIFJFU05BTUUpOworICAgICAgICBTdHJpbmcgdHJhbnNsYXRlID0gZ2V0QXR0cmlidXRlVmFsdWUobm9kZSxUUkFOU0xBVEUpOworICAgICAgICBjdXJyZW50U291cmNlLm5hbWUgPSBjdXJyZW50VGFyZ2V0Lm5hbWUgPSByZXNOYW1lOworICAgICAgICBjdXJyZW50U291cmNlLnRyYW5zbGF0ZSA9IHRyYW5zbGF0ZTsKKyAgICAgICAgYm9vbGVhbiBpc0ZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgZm9yKE5vZGUgY2hpbGQgPSBub2RlLmdldEZpcnN0Q2hpbGQoKTsgY2hpbGQgIT0gbnVsbDsgY2hpbGQgPSBjaGlsZC5nZXROZXh0U2libGluZygpKXsKKyAgICAgICAgICAgIHNob3J0IHR5cGUgPSBjaGlsZC5nZXROb2RlVHlwZSgpOworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBjaGlsZC5nZXROb2RlTmFtZSgpOworICAgICAgICAgICAgaWYodHlwZSA9PSBOb2RlLkNPTU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5jb21tZW50ID0gY3VycmVudFRhcmdldC5jb21tZW50ID0gY2hpbGQuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICB9ZWxzZSBpZih0eXBlID09IE5vZGUuRUxFTUVOVF9OT0RFKXsKKyAgICAgICAgICAgICAgICBpZihuYW1lLmVxdWFscyhUUkFOU1VOSVQpKXsKKyAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VbXSBuZXh0ID0gbmV3IFJlc291cmNlWzJdOworICAgICAgICAgICAgICAgICAgICBwYXJzZVRyYW5zVW5pdChjaGlsZCwgbmV4dCk7CisgICAgICAgICAgICAgICAgICAgIGlmKGlzRmlyc3Q9PXRydWUpeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGRvd24gY2FzdCBzaG91bGQgYmUgc2FmZSAuLiBpZiBub3Qgc29tZXRoaW5nIGlzIHRlcnJpYmx5IHdyb25nISEKKyAgICAgICAgICAgICAgICAgICAgICAgKChSZXNvdXJjZUludFZlY3RvcikgY3VycmVudFNvdXJjZSkuZmlyc3QgPSAoUmVzb3VyY2VJbnQpbmV4dFswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgKChSZXNvdXJjZUludFZlY3RvcikgY3VycmVudFRhcmdldCkuZmlyc3QgPSAoUmVzb3VyY2VJbnQpIG5leHRbMV07CisgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UgPSAoKFJlc291cmNlSW50VmVjdG9yKSBjdXJyZW50U291cmNlKS5maXJzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldCA9ICgoUmVzb3VyY2VJbnRWZWN0b3IpIGN1cnJlbnRUYXJnZXQpLmZpcnN0OworICAgICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5uZXh0ID0gbmV4dFswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQubmV4dCA9IG5leHRbMV07CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIG5leHQgcG9pbnRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UgPSBjdXJyZW50U291cmNlLm5leHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gY3VycmVudFRhcmdldC5uZXh0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfWVsc2UgaWYobmFtZS5lcXVhbHMoTk9URSkpeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbm90ZSA9ICBjaGlsZC5nZXRGaXJzdENoaWxkKCkuZ2V0Tm9kZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2Uubm90ZVtjdXJyZW50U291cmNlLm5vdGVMZW4rK10gPSBjdXJyZW50VGFyZ2V0Lm5vdGVbY3VycmVudFRhcmdldC5ub3RlTGVuKytdID0gbm90ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlVGFibGUoTm9kZSBub2RlLCBSZXNvdXJjZVtdIHNldCl7CisgICAgICAgIGlmKHNldFswXT09bnVsbCl7CisgICAgICAgICAgICBzZXRbMF0gPSBuZXcgUmVzb3VyY2VUYWJsZSgpOworICAgICAgICAgICAgc2V0WzFdID0gbmV3IFJlc291cmNlVGFibGUoKTsKKyAgICAgICAgfQorICAgICAgICBSZXNvdXJjZSBjdXJyZW50U291cmNlID0gc2V0WzBdOworICAgICAgICBSZXNvdXJjZSBjdXJyZW50VGFyZ2V0ID0gc2V0WzFdOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHJlc05hbWUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLCBSRVNOQU1FKTsKKyAgICAgICAgU3RyaW5nIHRyYW5zbGF0ZSA9IGdldEF0dHJpYnV0ZVZhbHVlKG5vZGUsVFJBTlNMQVRFKTsKKyAgICAgICAgaWYocmVzTmFtZSE9bnVsbCAmJiBjdXJyZW50U291cmNlLm5hbWU9PW51bGwgJiYgY3VycmVudFRhcmdldC5uYW1lPT1udWxsKXsKKyAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UubmFtZSA9IGN1cnJlbnRUYXJnZXQubmFtZSA9IHJlc05hbWU7CisgICAgICAgIH0KKyAgICAgICAgY3VycmVudFRhcmdldC50cmFuc2xhdGUgPSBjdXJyZW50U291cmNlLnRyYW5zbGF0ZSA9IHRyYW5zbGF0ZTsKKyAgICAgICAgCisgICAgICAgIGJvb2xlYW4gaXNGaXJzdCA9IHRydWU7CisgICAgICAgIGZvcihOb2RlIGNoaWxkID0gbm9kZS5nZXRGaXJzdENoaWxkKCk7IGNoaWxkICE9IG51bGw7IGNoaWxkID0gY2hpbGQuZ2V0TmV4dFNpYmxpbmcoKSl7CisgICAgICAgICAgICBzaG9ydCB0eXBlID0gY2hpbGQuZ2V0Tm9kZVR5cGUoKTsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gY2hpbGQuZ2V0Tm9kZU5hbWUoKTsKKyAgICAgICAgICAgIGlmKHR5cGUgPT0gTm9kZS5DT01NRU5UX05PREUpeworICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UuY29tbWVudCA9IGN1cnJlbnRUYXJnZXQuY29tbWVudCA9IGNoaWxkLmdldE5vZGVWYWx1ZSgpOworICAgICAgICAgICAgfWVsc2UgaWYodHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSl7CisgICAgICAgICAgICAgICAgaWYobmFtZS5lcXVhbHMoR1JPVVBTKSl7CisgICAgICAgICAgICAgICAgICAgIFJlc291cmNlW10gbmV4dCA9IG5ldyBSZXNvdXJjZVsyXTsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VHcm91cChjaGlsZCwgbmV4dCk7CisgICAgICAgICAgICAgICAgICAgIGlmKGlzRmlyc3Q9PXRydWUpeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGRvd24gY2FzdCBzaG91bGQgYmUgc2FmZSAuLiBpZiBub3Qgc29tZXRoaW5nIGlzIHRlcnJpYmx5IHdyb25nISEKKyAgICAgICAgICAgICAgICAgICAgICAgKChSZXNvdXJjZVRhYmxlKSBjdXJyZW50U291cmNlKS5maXJzdCA9IG5leHRbMF07CisgICAgICAgICAgICAgICAgICAgICAgICgoUmVzb3VyY2VUYWJsZSkgY3VycmVudFRhcmdldCkuZmlyc3QgPSBuZXh0WzFdOworICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlID0gKChSZXNvdXJjZVRhYmxlKSBjdXJyZW50U291cmNlKS5maXJzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldCA9ICgoUmVzb3VyY2VUYWJsZSkgY3VycmVudFRhcmdldCkuZmlyc3Q7CisgICAgICAgICAgICAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5leHQgPSBuZXh0WzBdOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC5uZXh0ID0gbmV4dFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgbmV4dCBwb2ludGVycworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZSA9IGN1cnJlbnRTb3VyY2UubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0Lm5leHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhUUkFOU1VOSVQpKXsKKyAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VbXSBuZXh0ID0gbmV3IFJlc291cmNlWzJdOworICAgICAgICAgICAgICAgICAgICBwYXJzZVRyYW5zVW5pdChjaGlsZCwgbmV4dCk7CisgICAgICAgICAgICAgICAgICAgIGlmKGlzRmlyc3Q9PXRydWUpeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGRvd24gY2FzdCBzaG91bGQgYmUgc2FmZSAuLiBpZiBub3Qgc29tZXRoaW5nIGlzIHRlcnJpYmx5IHdyb25nISEKKyAgICAgICAgICAgICAgICAgICAgICAgKChSZXNvdXJjZVRhYmxlKSBjdXJyZW50U291cmNlKS5maXJzdCA9IG5leHRbMF07CisgICAgICAgICAgICAgICAgICAgICAgICgoUmVzb3VyY2VUYWJsZSkgY3VycmVudFRhcmdldCkuZmlyc3QgPSBuZXh0WzFdOworICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlID0gKChSZXNvdXJjZVRhYmxlKSBjdXJyZW50U291cmNlKS5maXJzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldCA9ICgoUmVzb3VyY2VUYWJsZSkgY3VycmVudFRhcmdldCkuZmlyc3Q7CisgICAgICAgICAgICAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U291cmNlLm5leHQgPSBuZXh0WzBdOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhcmdldC5uZXh0ID0gbmV4dFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgbmV4dCBwb2ludGVycworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZSA9IGN1cnJlbnRTb3VyY2UubmV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0Lm5leHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmVxdWFscyhOT1RFKSl7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBub3RlID0gIGNoaWxkLmdldEZpcnN0Q2hpbGQoKS5nZXROb2RlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5ub3RlW2N1cnJlbnRTb3VyY2Uubm90ZUxlbisrXSA9IGN1cnJlbnRUYXJnZXQubm90ZVtjdXJyZW50VGFyZ2V0Lm5vdGVMZW4rK10gPSBub3RlOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuZXF1YWxzKEJJTlVOSVQpKXsKKyAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VbXSBuZXh0ID0gbmV3IFJlc291cmNlWzJdOworICAgICAgICAgICAgICAgICAgICBwYXJzZUJpblVuaXQoY2hpbGQsIG5leHQpOworICAgICAgICAgICAgICAgICAgICBpZihpc0ZpcnN0PT10cnVlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkb3duIGNhc3Qgc2hvdWxkIGJlIHNhZmUgLi4gaWYgbm90IHNvbWV0aGluZyBpcyB0ZXJyaWJseSB3cm9uZyEhCisgICAgICAgICAgICAgICAgICAgICAgICgoUmVzb3VyY2VUYWJsZSkgY3VycmVudFNvdXJjZSkuZmlyc3QgPSBuZXh0WzBdOworICAgICAgICAgICAgICAgICAgICAgICAoKFJlc291cmNlVGFibGUpIGN1cnJlbnRUYXJnZXQpLmZpcnN0ID0gbmV4dFsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZSA9ICgoUmVzb3VyY2VUYWJsZSkgY3VycmVudFNvdXJjZSkuZmlyc3Q7CisgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQgPSAoKFJlc291cmNlVGFibGUpIGN1cnJlbnRUYXJnZXQpLmZpcnN0OworICAgICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNvdXJjZS5uZXh0ID0gbmV4dFswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQubmV4dCA9IG5leHRbMV07CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIG5leHQgcG9pbnRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTb3VyY2UgPSBjdXJyZW50U291cmNlLm5leHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gY3VycmVudFRhcmdldC5uZXh0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBwYXJzZUdyb3VwKE5vZGUgbm9kZSwgUmVzb3VyY2VbXSBzZXQpeworCisgICAgICAgIC8vIGZpZ3VyZSBvdXQgd2hhdCBraW5kIG9mIGdyb3VwIHRoaXMgaXMKKyAgICAgICAgU3RyaW5nIHJlc1R5cGUgPSBnZXRBdHRyaWJ1dGVWYWx1ZShub2RlLCBSRVNUWVBFKTsKKyAgICAgICAgaWYocmVzVHlwZS5lcXVhbHMoQVJSQVlTKSl7CisgICAgICAgICAgICBwYXJzZUFycmF5KG5vZGUsIHNldCk7CisgICAgICAgIH1lbHNlIGlmKCByZXNUeXBlLmVxdWFscyhUQUJMRSkpeworICAgICAgICAgICAgcGFyc2VUYWJsZShub2RlLCBzZXQpOworICAgICAgICB9ZWxzZSBpZiggcmVzVHlwZS5lcXVhbHMoSU5UVkVDVE9SKSl7CisgICAgICAgICAgICBwYXJzZUludFZlY3Rvcihub2RlLCBzZXQpOworICAgICAgICB9CisgICAgfQorICAgIAorCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlTGluZShPdXRwdXRTdHJlYW0gd3JpdGVyLCBTdHJpbmcgbGluZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzID0gbGluZS5nZXRCeXRlcyhDSEFSU0VUKTsKKyAgICAgICAgICAgIHdyaXRlci53cml0ZShieXRlcywgMCwgYnl0ZXMubGVuZ3RoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihlKTsKKyAgICAgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCB3cml0ZUhlYWRlcihPdXRwdXRTdHJlYW0gd3JpdGVyLCBTdHJpbmcgZmlsZU5hbWUpeworICAgICAgICB3cml0ZUJPTSh3cml0ZXIpOworICAgICAgICBDYWxlbmRhciBjID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9bmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBidWZmZXIuYXBwZW5kKCIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioiICsgTElORVNFUCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIi8vICoiICsgTElORVNFUCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIi8vICogVG9vbDogY29tLmlibS5pY3UuZGV2LnRvb2wubG9jYWxlY29udmVydGVyLlhMSUZGMklDVUNvbnZlcnRlci5qYXZhIiArIExJTkVTRVApOworICAgICAgICBidWZmZXIuYXBwZW5kKCIvLyAqIERhdGUgJiBUaW1lOiAiICsgYy5nZXQoQ2FsZW5kYXIuWUVBUikgKyAiLyIgKyAoYy5nZXQoQ2FsZW5kYXIuTU9OVEgpKzEpICsgIi8iICsgYy5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSArICIgIiArIGMuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSArIENPTE9OICsgYy5nZXQoQ2FsZW5kYXIuTUlOVVRFKSsgTElORVNFUCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIi8vICogU291cmNlIEZpbGU6ICIgKyBmaWxlTmFtZSArIExJTkVTRVApOworICAgICAgICBidWZmZXIuYXBwZW5kKCIvLyAqIiArIExJTkVTRVApOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIgKyBMSU5FU0VQKTsKKyAgICAgICAgd3JpdGVMaW5lKHdyaXRlciwgYnVmZmVyLnRvU3RyaW5nKCkpOworCisgICAgfQorICAgIAorICAgIHByaXZhdGUgIHZvaWQgd3JpdGVCT00oT3V0cHV0U3RyZWFtIGJ1ZmZlcikgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgYnl0ZVtdIGJ5dGVzID0gQk9NLmdldEJ5dGVzKENIQVJTRVQpOworICAgICAgICAgICAgYnVmZmVyLndyaXRlKGJ5dGVzLCAwLCBieXRlcy5sZW5ndGgpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0uZXJyLnByaW50bG4oZSk7CisgICAgICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvbWFuaWZlc3QueGxpZmYuc3R1YiBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvbWFuaWZlc3QueGxpZmYuc3R1YgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWZmMTgzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9tYW5pZmVzdC54bGlmZi5zdHViCkBAIC0wLDAgKzEsMTQgQEAKK01hbmlmZXN0LVZlcnNpb246IDEuMAorQ2xhc3MtUGF0aDogaWN1NGouamFyCitNYWluLUNsYXNzOiBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0QWxsCisKK05hbWU6IGNvbS9pYm0vaWN1LworU3BlY2lmaWNhdGlvbi1UaXRsZTogWExJRkYgdG8gSUNVIGNvbnZlcnNpb24gdG9vbAorU3BlY2lmaWNhdGlvbi1WZXJzaW9uOiAzLjQKK1NwZWNpZmljYXRpb24tVmVuZG9yOiBJQ1UKK0ltcGxlbWVudGF0aW9uLVRpdGxlOiBYTElGRiB0byBJQ1UgQ29udmVydGVyCitJbXBsZW1lbnRhdGlvbi1WZXJzaW9uOiAzLjQuMAorSW1wbGVtZW50YXRpb24tVmVuZG9yOiBJQk0gQ29ycG9yYXRpb24KK0ltcGxlbWVudGF0aW9uLVZlbmRvci1JZDogY29tLmlibQorQ29weXJpZ2h0LUluZm86IENvcHlyaWdodCAoYykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK1NlYWxlZDogZmFsc2UKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvbXlMb2NhbGVFbGVtZW50cy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL2xvY2FsZWNvbnZlcnRlci9teUxvY2FsZUVsZW1lbnRzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzc0YTQ3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9sb2NhbGVjb252ZXJ0ZXIvbXlMb2NhbGVFbGVtZW50cy5qYXZhCkBAIC0wLDAgKzEsNTc5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyoqCisgKgorICogVGFibGUgb2YgSmF2YSBzdXBwbGllZCBzdGFuZGFyZCBsb2NhbGUgZWxlbWVudHMKKyAqCisgKiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBqYXZhIExvY2FsZVRvb2wgTG9jYWxlRWxlbWVudHMuamF2YQorICoKKyAqIERhdGUgQ3JlYXRlZDogV2VkIEF1ZyAyMSAxNTo0Nzo1NyAgMTk5NgorICoKKyAqICAgICBMb2NhbGUgRWxlbWVudHMgYW5kIFBhdHRlcm5zOiAgbGFzdCB1cGRhdGUgMTAvMjMvOTYKKyAqCisgKgorICovCisKKy8vIFdBUk5JTkcgOiB0aGUgZm9ybWF0IG9mIHRoaXMgZmlsZSB3aWxsIGNoYW5nZSBpbiB0aGUgZnV0dXJlIQorCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLmxvY2FsZWNvbnZlcnRlcjsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBteUxvY2FsZUVsZW1lbnRzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgTGlzdFJlc291cmNlQnVuZGxlCisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJMb2NhbGVTdHJpbmciLCAiZW5fVVMiIH0sIC8vIGxvY2FsZSBpZCBiYXNlZCBvbiBpc28gY29kZXMKKyAgICAgICAgICAgIHsgIkxvY2FsZUlEIiwgIjA0MDkiIH0sIC8vIFdpbmRvd3MgaWQKKyAgICAgICAgICAgIHsgIlNob3J0TGFuZ3VhZ2UiLCAiZW5nIiB9LCAvLyBpc28tMyBhYmJyZXYgbGFuZyBuYW1lCisgICAgICAgICAgICB7ICJTaG9ydENvdW50cnkiLCAiVVNBIiB9LCAvLyBpc28tMyBhYmJyZXYgY291bnRyeSBuYW1lCisgICAgICAgICAgICB7ICJMYW5ndWFnZXMiLCAvLyBsYW5ndWFnZSBuYW1lcworICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXVtdIHsKKyAgICAgICAgICAgICAgICAgICAgeyAiYWIiLCAiQWJraGF6aWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJhYSIsICJBZmFyIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJhZiIsICJBZnJpa2FhbnMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNxIiwgIkFsYmFuaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJhbSIsICJBbWhhcmljIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJhciIsICJBcmFiaWMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImh5IiwgIkFybWVuaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJhcyIsICJBc3NhbWVzZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYXkiLCAiQXltYXJhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJheiIsICJBemVyYmFpamFuaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYmEiLCAiQmFzaGtpciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZXUiLCAiQmFzcXVlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJibiIsICJCZW5nYWxpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJkeiIsICJCaHV0YW5pIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJiaCIsICJCaWhhcmkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImJpIiwgIkJpc2xhbWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImJyIiwgIkJyZXRvbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiYmciLCAiQnVsZ2FyaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJteSIsICJCdXJtZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJiZSIsICJCeWVsb3J1c3NpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImttIiwgIkNhbWJvZGlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiY2EiLCAiQ2F0YWxhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiemgiLCAiQ2hpbmVzZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiY28iLCAiQ29yc2ljYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImhyIiwgIkNyb2F0aWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJjcyIsICJDemVjaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZGEiLCAiRGFuaXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJubCIsICJEdXRjaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZW4iLCAiRW5nbGlzaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZW8iLCAiRXNwZXJhbnRvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJldCIsICJFc3RvbmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZm8iLCAiRmFlcm9lc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImZqIiwgIkZpamkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImZpIiwgIkZpbm5pc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImZyIiwgIkZyZW5jaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZnkiLCAiRnJpc2lhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZ2wiLCAiR2FsaWNpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImthIiwgIkdlb3JnaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJkZSIsICJHZXJtYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImVsIiwgIkdyZWVrIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJrbCIsICJHcmVlbmxhbmRpYyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZ24iLCAiR3VhcmFuaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZ3UiLCAiR3VqYXJhdGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImhhIiwgIkhhdXNhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJpdyIsICJIZWJyZXciIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImhpIiwgIkhpbmRpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJodSIsICJIdW5nYXJpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImlzIiwgIkljZWxhbmRpYyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaW4iLCAiSW5kb25lc2lhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaWEiLCAiSW50ZXJsaW5ndWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImllIiwgIkludGVybGluZ3VlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJpayIsICJJbnVwaWFrIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJnYSIsICJJcmlzaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiaXQiLCAiSXRhbGlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiamEiLCAiSmFwYW5lc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImp3IiwgIkphdmFuZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJrbiIsICJLYW5uYWRhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJrcyIsICJLYXNobWlyaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAia2siLCAiS2F6YWtoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJydyIsICJLaW55YXJ3YW5kYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAia3kiLCAiS2lyZ2hpeiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAicm4iLCAiS2lydW5kaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAia28iLCAiS29yZWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJrdSIsICJLdXJkaXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJsbyIsICJMYW90aGlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibGEiLCAiTGF0aW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImx2IiwgIkxhdHZpYW4gKExldHRpc2gpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJsbiIsICJMaW5nYWxhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJsdCIsICJMaXRodWFuaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJtayIsICJNYWNlZG9uaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJtZyIsICJNYWxhZ2FzeSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibXMiLCAiTWFsYXkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm1sIiwgIk1hbGF5YWxhbSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibXQiLCAiTWFsdGVzZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibWkiLCAiTWFvcmkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm1yIiwgIk1hcmF0aGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm1vIiwgIk1vbGRhdmlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibW4iLCAiTW9uZ29saWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYSIsICJOYXVydSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmUiLCAiTmVwYWxpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJubyIsICJOb3J3ZWdpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm9jIiwgIk9jY2l0YW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm9yIiwgIk9yaXlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJvbSIsICJPcm9tbyAoQWZhbikiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInBzIiwgIlBhc2h0byAoUHVzaHRvKSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZmEiLCAiUGVyc2lhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAicGwiLCAiUG9saXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJwdCIsICJQb3J0dWd1ZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJwYSIsICJQdW5qYWJpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJxdSIsICJRdWVjaHVhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJybSIsICJSaGFldG8tUm9tYW5jZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAicm8iLCAiUm9tYW5pYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInJ1IiwgIlJ1c3NpYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNtIiwgIlNhbW9hbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic2ciLCAiU2FuZ3JvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzYSIsICJTYW5za3JpdCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiZ2QiLCAiU2NvdHMgR2FlbGljIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzciIsICJTZXJiaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzaCIsICJTZXJiby1Dcm9hdGlhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic3QiLCAiU2Vzb3RobyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidG4iLCAiU2V0c3dhbmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNuIiwgIlNob25hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzZCIsICJTaW5kaGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNpIiwgIlNpbmdoYWxlc2UiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNzIiwgIlNpc3dhdGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInNrIiwgIlNsb3ZhayIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic2wiLCAiU2xvdmVuaWFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJzbyIsICJTb21hbGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgImVzIiwgIlNwYW5pc2giIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInN1IiwgIlN1bmRhbmVzZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic3ciLCAiU3dhaGlsaSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAic3YiLCAiU3dlZGlzaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidGwiLCAiVGFnYWxvZyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidGciLCAiVGFqaWsiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInRhIiwgIlRhbWlsIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0dCIsICJUYXRhciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidGUiLCAiVGVsdWd1IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0aCIsICJUaGFpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJibyIsICJUaWJldGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ0aSIsICJUaWdyaW55YSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidG8iLCAiVG9uZ2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInRzIiwgIlRzb25nYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidHIiLCAiVHVya2lzaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidGsiLCAiVHVya21lbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAidHciLCAiVHdpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ1ayIsICJVa3JhaW5pYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInVyIiwgIlVyZHUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInV6IiwgIlV6YmVrIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ2aSIsICJWaWV0bmFtZXNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ2byIsICJWb2xhcHVrIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJjeSIsICJXZWxzaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAid28iLCAiV29sb2YiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInhoIiwgIlhob3NhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJqaSIsICJZaWRkaXNoIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJ5byIsICJZb3J1YmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgInp1IiwgIlp1bHUiIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiQ291bnRyaWVzIiwgLy8gY291bnRyeSBuYW1lcworICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXVtdIHsKKyAgICAgICAgICAgICAgICAgICAgeyAiQUYiLCAiQWZnaGFuaXN0YW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkFMIiwgIkFsYmFuaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkRaIiwgIkFsZ2VyaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkFEIiwgIkFuZG9ycmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkFPIiwgIkFuZ29sYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQUkiLCAiQW5ndWlsbGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkFSIiwgIkFyZ2VudGluYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQU0iLCAiQXJtZW5pYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQVciLCAiQXJ1YmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkFVIiwgIkF1c3RyYWxpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQVQiLCAiQXVzdHJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQVoiLCAiQXplcmJhaWphbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQlMiLCAiQmFoYW1hcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQkgiLCAiQmFocmFpbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQkQiLCAiQmFuZ2xhZGVzaCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQkIiLCAiQmFyYmFkb3MiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJZIiwgIkJlbGFydXMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJFIiwgIkJlbGdpdW0iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJaIiwgIkJlbGl6ZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQkoiLCAiQmVuaW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJNIiwgIkJlcm11ZGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJUIiwgIkJodXRhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQk8iLCAiQm9saXZpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQkEiLCAiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQlciLCAiQm90c3dhbmEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJSIiwgIkJyYXppbCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQk4iLCAiQnJ1bmVpIERhcnVzc2FsYW0iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJHIiwgIkJ1bGdhcmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJCRiIsICJCdXJraW5hIEZhc28iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkJJIiwgIkJ1cnVuZGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIktIIiwgIkNhbWJvZGlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDTSIsICJDYW1lcm9vbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ0EiLCAiQ2FuYWRhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDViIsICJDYXBlIFZlcmRlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDRiIsICJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlREIiwgIkNoYWQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNMIiwgIkNoaWxlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDTiIsICJDaGluYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQ08iLCAiQ29sb21iaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIktNIiwgIkNvbW9yb3MiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNHIiwgIkNvbmdvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDUiIsICJDb3N0YSBSaWNhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDSSIsICJDb3RlIEQnaXZvaXJlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJIUiIsICJDcm9hdGlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDVSIsICJDdWJhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDWSIsICJDeXBydXMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkNaIiwgIkN6ZWNoIFJlcHVibGljIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJESyIsICJEZW5tYXJrIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJESiIsICJEamlib3V0aSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRE0iLCAiRG9taW5pY2EiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkRPIiwgIkRvbWluaWNhbiBSZXB1YmxpYyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVFAiLCAiRWFzdCBUaW1vciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRUMiLCAiRWN1YWRvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRUciLCAiRWd5cHQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNWIiwgIkVsIFNhbHZhZG9yIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHUSIsICJFcXVhdG9yaWFsIEd1aW5lYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRVIiLCAiRXJpdHJlYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRUUiLCAiRXN0b25pYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRVQiLCAiRXRoaW9waWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkZKIiwgIkZpamkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkZJIiwgIkZpbmxhbmQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkZSIiwgIkZyYW5jZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR0YiLCAiRnJlbmNoIEd1aWFuYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUEYiLCAiRnJlbmNoIFBvbHluZXNpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVEYiLCAiRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHQSIsICJHYWJvbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR00iLCAiR2FtYmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHRSIsICJHZW9yZ2lhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJERSIsICJHZXJtYW55IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHSCIsICJHaGFuYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR1IiLCAiR3JlZWNlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHUCIsICJHdWFkZWxvdXBlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJHVCIsICJHdWF0ZW1hbGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdOIiwgIkd1aW5lYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR1ciLCAiR3VpbmVhLUJpc3NhdSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiR1kiLCAiR3V5YW5hIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJIVCIsICJIYWl0aSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSE4iLCAiSG9uZHVyYXMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkhLIiwgIkhvbmcgS29uZyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSFUiLCAiSHVuZ2FyeSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSVMiLCAiSWNlbGFuZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSU4iLCAiSW5kaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIklEIiwgIkluZG9uZXNpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSVIiLCAiSXJhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSVEiLCAiSXJhcSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSUUiLCAiSXJlbGFuZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSUwiLCAiSXNyYWVsIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJJVCIsICJJdGFseSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSk0iLCAiSmFtYWljYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiSlAiLCAiSmFwYW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkpPIiwgIkpvcmRhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiS1oiLCAiS2F6YWtoc3RhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiS0UiLCAiS2VueWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIktJIiwgIktpcmliYXRpIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJLUCIsICJOb3J0aCBLb3JlYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiS1IiLCAiU291dGggS29yZWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIktXIiwgIkt1d2FpdCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiS0ciLCAiS3lyZ3l6c3RhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTEEiLCAiTGFvcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTFYiLCAiTGF0dmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJMQiIsICJMZWJhbm9uIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJMUyIsICJMZXNvdGhvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJMUiIsICJMaWJlcmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJMWSIsICJMaWJ5YW4gQXJhYiBKYW1haGlyaXlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJMSSIsICJMaWVjaHRlbnN0ZWluIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJMVCIsICJMaXRodWFuaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkxVIiwgIkx1eGVtYm91cmciIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1LIiwgIk1hY2Vkb25pYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTUciLCAiTWFkYWdhc2NhciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTVkiLCAiTWFsYXlzaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1MIiwgIk1hbGkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1UIiwgIk1hbHRhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNUSIsICJNYXJ0aW5pcXVlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNUiIsICJNYXVyaXRhbmlhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNVSIsICJNYXVyaXRpdXMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIllUIiwgIk1heW90dGUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk1YIiwgIk1leGljbyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiRk0iLCAiTWljcm9uZXNpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTUQiLCAiTW9sZG92YSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTUMiLCAiTW9uYWNvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJNTiIsICJNb25nb2xpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTVMiLCAiTW9udHNlcnJhdCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTUEiLCAiTW9yb2NjbyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTVoiLCAiTW96YW1iaXF1ZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTU0iLCAiTXlhbm1hciIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTkEiLCAiTmFtaWJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTlAiLCAiTmVwYWwiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk5MIiwgIk5ldGhlcmxhbmRzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJBTiIsICJOZXRoZXJsYW5kcyBBbnRpbGxlcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTkMiLCAiTmV3IENhbGVkb25pYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTloiLCAiTmV3IFplYWxhbmQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk5JIiwgIk5pY2FyYWd1YSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTkUiLCAiTmlnZXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk5HIiwgIk5pZ2VyaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk5VIiwgIk5pdWUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIk5PIiwgIk5vcndheSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiT00iLCAiT21hbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUEsiLCAiUGFraXN0YW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlBBIiwgIlBhbmFtYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUEciLCAiUGFwdWEgTmV3IEd1aW5lYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUFkiLCAiUGFyYWd1YXkiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlBFIiwgIlBlcnUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlBIIiwgIlBoaWxpcHBpbmVzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJQTCIsICJQb2xhbmQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlBUIiwgIlBvcnR1Z2FsIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJQUiIsICJQdWVydG8gUmljbyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUUEiLCAiUWF0YXIiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlJPIiwgIlJvbWFuaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlJVIiwgIlJ1c3NpYW4gRmVkZXJhdGlvbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiUlciLCAiUndhbmRhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTQSIsICJTYXVkaSBBcmFiaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNOIiwgIlNlbmVnYWwiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNQIiwgIlNlcmJpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU0MiLCAiU2V5Y2hlbGxlcyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU0wiLCAiU2llcnJhIExlb25lIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTRyIsICJTaW5nYXBvcmUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNLIiwgIlNsb3Zha2lhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTSSIsICJTbG92ZW5pYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU08iLCAiU29tYWxpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiWkEiLCAiU291dGggQWZyaWNhIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJFUyIsICJTcGFpbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiTEsiLCAiU3JpIExhbmthIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJTRCIsICJTdWRhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU1IiLCAiU3VyaW5hbWUiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlNaIiwgIlN3YXppbGFuZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU0UiLCAiU3dlZGVuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJDSCIsICJTd2l0emVybGFuZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiU1kiLCAiU3lyaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRXIiwgIlRhaXdhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVEoiLCAiVGFqaWtpc3RhbiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVFoiLCAiVGFuemFuaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlRIIiwgIlRoYWlsYW5kIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJURyIsICJUb2dvIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUSyIsICJUb2tlbGF1IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUTyIsICJUb25nYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVFQiLCAiVHJpbmlkYWQgYW5kIFRvYmFnbyIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVE4iLCAiVHVuaXNpYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVFIiLCAiVHVya2V5IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJUTSIsICJUdXJrbWVuaXN0YW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlVHIiwgIlVnYW5kYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiVUEiLCAiVWtyYWluZSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiQUUiLCAiVW5pdGVkIEFyYWIgRW1pcmF0ZXMiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIkdCIiwgIlVuaXRlZCBLaW5nZG9tIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJVUyIsICJVbml0ZWQgU3RhdGVzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJVWSIsICJVcnVndWF5IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJVWiIsICJVemJla2lzdGFuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJWVSIsICJWYW51YXR1IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJWQSIsICJWYXRpY2FuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJWRSIsICJWZW5lenVlbGEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlZOIiwgIlZpZXQgTmFtIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJWRyIsICJCcml0aXNoIFZpcmdpbiBJc2xhbmRzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJWSSIsICJVLlMuIFZpcmdpbiBJc2xhbmRzIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJFSCIsICJXZXN0ZXJuIFNhaGFyYSIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAiWUUiLCAiWWVtZW4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIllVIiwgIll1Z29zbGF2aWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlpSIiwgIlphaXJlIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJaTSIsICJaYW1iaWEiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIlpXIiwgIlppbWJhYndlIiB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIiUlRVVSTyIsICJFdXJvIiB9LCAvLyBFdXJvIHZhcmlhbnQgZGlzcGxheSBuYW1lCisgICAgICAgICAgICB7ICJMb2NhbGVOYW1lUGF0dGVybnMiLAorICAgICAgICAgICAgICAgIC8qIEZvcm1hdHMgZm9yIHRoZSBkaXNwbGF5IG5hbWUgb2YgYSBsb2NhbGUsIGZvciBhIGxpc3Qgb2YKKyAgICAgICAgICAgICAgICAgKiBpdGVtcywgYW5kIGZvciBjb21wb3NpbmcgdHdvIGl0ZW1zIGluIGEgbGlzdCBpbnRvIG9uZSBpdGVtLgorICAgICAgICAgICAgICAgICAqIFRoZSBsaXN0IHBhdHRlcm5zIGFyZSB1c2VkIGluIHRoZSB2YXJpYW50IG5hbWUgYW5kIGluIHRoZQorICAgICAgICAgICAgICAgICAqIGZ1bGwgZGlzcGxheSBuYW1lLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7CisgICAgICAgICAgICAgICAgICAgICJ7MCxjaG9pY2UsMCN8MSN7MX18MiN7MX0gKHsyfSl9IiwgLy8gRGlzcGxheSBuYW1lCisgICAgICAgICAgICAgICAgICAgICJ7MCxjaG9pY2UsMCN8MSN7MX18MiN7MX0sezJ9fDMjezF9LHsyfSx7M319IiwgLy8gTGlzdAorICAgICAgICAgICAgICAgICAgICAiezB9LHsxfSIgLy8gTGlzdCBjb21wb3NpdGlvbgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJNb250aE5hbWVzIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICJKYW51YXJ5IiwgLy8gamFudWFyeQorICAgICAgICAgICAgICAgICAgICAiRmVicnVhcnkiLCAvLyBmZWJydWFyeQorICAgICAgICAgICAgICAgICAgICAiTWFyY2giLCAvLyBtYXJjaAorICAgICAgICAgICAgICAgICAgICAiQXByaWwiLCAvLyBhcHJpbAorICAgICAgICAgICAgICAgICAgICAiTWF5IiwgLy8gbWF5CisgICAgICAgICAgICAgICAgICAgICJKdW5lIiwgLy8ganVuZQorICAgICAgICAgICAgICAgICAgICAiSnVseSIsIC8vIGp1bHkKKyAgICAgICAgICAgICAgICAgICAgIkF1Z3VzdCIsIC8vIGF1Z3VzdAorICAgICAgICAgICAgICAgICAgICAiU2VwdGVtYmVyIiwgLy8gc2VwdGVtYmVyCisgICAgICAgICAgICAgICAgICAgICJPY3RvYmVyIiwgLy8gb2N0b2JlcgorICAgICAgICAgICAgICAgICAgICAiTm92ZW1iZXIiLCAvLyBub3ZlbWJlcgorICAgICAgICAgICAgICAgICAgICAiRGVjZW1iZXIiLCAvLyBkZWNlbWJlcgorICAgICAgICAgICAgICAgICAgICAiIiAvLyBtb250aCAxMyBpZiBhcHBsaWNhYmxlCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIk1vbnRoQWJicmV2aWF0aW9ucyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAiSmFuIiwgLy8gYWJiIGphbnVhcnkKKyAgICAgICAgICAgICAgICAgICAgIkZlYiIsIC8vIGFiYiBmZWJydWFyeQorICAgICAgICAgICAgICAgICAgICAiTWFyIiwgLy8gYWJiIG1hcmNoCisgICAgICAgICAgICAgICAgICAgICJBcHIiLCAvLyBhYmIgYXByaWwKKyAgICAgICAgICAgICAgICAgICAgIk1heSIsIC8vIGFiYiBtYXkKKyAgICAgICAgICAgICAgICAgICAgIkp1biIsIC8vIGFiYiBqdW5lCisgICAgICAgICAgICAgICAgICAgICJKdWwiLCAvLyBhYmIganVseQorICAgICAgICAgICAgICAgICAgICAiQXVnIiwgLy8gYWJiIGF1Z3VzdAorICAgICAgICAgICAgICAgICAgICAiU2VwIiwgLy8gYWJiIHNlcHRlbWJlcgorICAgICAgICAgICAgICAgICAgICAiT2N0IiwgLy8gYWJiIG9jdG9iZXIKKyAgICAgICAgICAgICAgICAgICAgIk5vdiIsIC8vIGFiYiBub3ZlbWJlcgorICAgICAgICAgICAgICAgICAgICAiRGVjIiwgLy8gYWJiIGRlY2VtYmVyCisgICAgICAgICAgICAgICAgICAgICIiIC8vIGFiYiBtb250aCAxMyBpZiBhcHBsaWNhYmxlCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIkRheU5hbWVzIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICJTdW5kYXkiLCAvLyBTdW5kYXkKKyAgICAgICAgICAgICAgICAgICAgIk1vbmRheSIsIC8vIE1vbmRheQorICAgICAgICAgICAgICAgICAgICAiVHVlc2RheSIsIC8vIFR1ZXNkYXkKKyAgICAgICAgICAgICAgICAgICAgIldlZG5lc2RheSIsIC8vIFdlZG5lc2RheQorICAgICAgICAgICAgICAgICAgICAiVGh1cnNkYXkiLCAvLyBUaHVyc2RheQorICAgICAgICAgICAgICAgICAgICAiRnJpZGF5IiwgLy8gRnJpZGF5CisgICAgICAgICAgICAgICAgICAgICJTYXR1cmRheSIgLy8gU2F0dXJkYXkKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiRGF5QWJicmV2aWF0aW9ucyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAiU3VuIiwgLy8gYWJiIFN1bmRheQorICAgICAgICAgICAgICAgICAgICAiTW9uIiwgLy8gYWJiIE1vbmRheQorICAgICAgICAgICAgICAgICAgICAiVHVlIiwgLy8gYWJiIFR1ZXNkYXkKKyAgICAgICAgICAgICAgICAgICAgIldlZCIsIC8vIGFiYiBXZWRuZXNkYXkKKyAgICAgICAgICAgICAgICAgICAgIlRodSIsIC8vIGFiYiBUaHVyc2RheQorICAgICAgICAgICAgICAgICAgICAiRnJpIiwgLy8gYWJiIEZyaWRheQorICAgICAgICAgICAgICAgICAgICAiU2F0IiAvLyBhYmIgU2F0dXJkYXkKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiQW1QbU1hcmtlcnMiLCAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgIkFNIiwgLy8gYW0gbWFya2VyCisgICAgICAgICAgICAgICAgICAgICJQTSIgLy8gcG0gbWFya2VyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIkVyYXMiLCAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAvLyBlcmEgc3RyaW5ncworICAgICAgICAgICAgICAgICAgICAiQkMiLCAKKyAgICAgICAgICAgICAgICAgICAgIkFEIiAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiTnVtYmVyUGF0dGVybnMiLCAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgIiMsIyMwLiMjIzstIywjIzAuIyMjIiwgLy8gZGVjaW1hbCBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICIkIywjIzAuMDA7KCQjLCMjMC4wMCkiLCAvLyBjdXJyZW5jeSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICIjLCMjMCUiIC8vIHBlcmNlbnQgcGF0dGVybgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJOdW1iZXJFbGVtZW50cyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAiLiIsIC8vIGRlY2ltYWwgc2VwYXJhdG9yCisgICAgICAgICAgICAgICAgICAgICIsIiwgLy8gZ3JvdXAgKHRob3VzYW5kcykgc2VwYXJhdG9yCisgICAgICAgICAgICAgICAgICAgICI7IiwgLy8gbGlzdCBzZXBhcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgIiUiLCAvLyBwZXJjZW50IHNpZ24KKyAgICAgICAgICAgICAgICAgICAgIjAiLCAvLyBuYXRpdmUgMCBkaWdpdAorICAgICAgICAgICAgICAgICAgICAiIyIsIC8vIHBhdHRlcm4gZGlnaXQKKyAgICAgICAgICAgICAgICAgICAgIi0iLCAvLyBtaW51cyBzaWduCisgICAgICAgICAgICAgICAgICAgICJFIiwgLy8gZXhwb25lbnRpYWwKKyAgICAgICAgICAgICAgICAgICAgIlx1MjAzMCIsIC8vIHBlciBtaWxsZQorICAgICAgICAgICAgICAgICAgICAiXHUyMjFlIiwgLy8gaW5maW5pdHkKKyAgICAgICAgICAgICAgICAgICAgIlx1ZmZmZCIgLy8gTmFOCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgIkN1cnJlbmN5RWxlbWVudHMiLCAKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAKKyAgICAgICAgICAgICAgICAgICAgIiQiLCAvLyBsb2NhbCBjdXJyZW5jeSBzeW1ib2wKKyAgICAgICAgICAgICAgICAgICAgIlVTRCIsIC8vIGludGwgY3VycmVuY3kgc3ltYm9sCisgICAgICAgICAgICAgICAgICAgICIuIiAvLyBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvcgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJEYXRlVGltZVBhdHRlcm5zIiwgCisgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgCisgICAgICAgICAgICAgICAgICAgICJoOm1tOnNzICdvJycnJ2Nsb2NrJyBhIHoiLCAvLyBmdWxsIHRpbWUgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAiaDptbTpzcyBhIHoiLCAvLyBsb25nIHRpbWUgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAiaDptbTpzcyBhIiwgLy8gbWVkaXVtIHRpbWUgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAiaDptbSBhIiwgLy8gc2hvcnQgdGltZSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgICJFRUVFLCBNTU1NIGQsIHl5eXkiLCAvLyBmdWxsIGRhdGUgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAiTU1NTSBkLCB5eXl5IiwgLy8gbG9uZyBkYXRlIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgImRkLU1NTS15eSIsIC8vIG1lZGl1bSBkYXRlIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgIk0vZC95eSIsIC8vIHNob3J0IGRhdGUgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAiezF9IHswfSIgLy8gZGF0ZS10aW1lIHBhdHRlcm4KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeyAiRGF0ZVRpbWVFbGVtZW50cyIsIAorICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdbXSB7IAorICAgICAgICAgICAgICAgICAgICAiMSIsIC8vIGZpcnN0IGRheSBvZiB3ZWVrCisgICAgICAgICAgICAgICAgICAgICIxIiAvLyBtaW4gZGF5cyBpbiBmaXJzdCB3ZWVrCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsgImNvbGxhdGlvbnMiLG5ldyBTdHJpbmdbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJWZXJzaW9uIiwiMS4wIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ik92ZXJpZGUiLCJmYWxzZSJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJTZXF1ZW5jZSIsIiJ9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJNZWFzdXJlbWVudCIgLCIifSwKKyAgICAgICAgICAgIHsgIkNvdW50cnlOdW1iZXIiICwgIiJ9LAorICAgICAgICAgICAgeyAiQ291bnRyeUlTQk5OdW1iZXIiICwgIiJ9LAorICAgICAgICAgICAgeyAiTGFuZ3VhZ2VMaWJyYXJ5VXNlIiAsICIifSwKKyAgICAgICAgICAgIHsgIlBhcGVyU2l6ZSIsIG5ldyBTdHJpbmdbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiSGVpZ2h0IiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJXaWR0aCIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiVW5pdHMiLCAiIn0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgCisgICAgICAgICAgICB7ICJNZXNzYWdlcyIgLCBuZXcgU3RyaW5nW11bXSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiWWVzRXhwcmVzc2lvbiIsIiJ9LCAvKiB5ZXMgZXhwcmVzc2lvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ik5vRXhwcmVzc2lvbiIsIiJ9LCAgLyogbm8gZXhwcmVzc2lvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Illlc1N0ciIsICIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJOb1N0ciIsICIifQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJBZGRyZXNzRm9ybWF0IiwgbmV3IFN0cmluZ1tdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJQb3N0YWxGb3JtYXQiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgeyJOYW1lRm9ybWF0IiwgbmV3IFN0cmluZ1tdW117CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiTmFtZVBhdHRlcm4iLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkdlbmVyYWxTYWx1dGFpb24iLCAiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJTaG9ydFNhbHV0YXRpb25NciIsICIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlNob3J0U2FsdXRhdGlvbk1pc3MiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlNob3J0U2FsdXRhdGlvbk1ycyIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiTG9uZ1NhbHV0YXRpb25NciIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiTG9uZ1NhbHV0YXRpb25NaXNzIiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJMb25nU2FsdXRhdGlvbk1ycyIsIiJ9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwgCisgICAgICAgICAgICB7ICJJZGVudGlmaWNhdGlvbiIsIG5ldyBTdHJpbmdbXVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlRpdGxlIiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiU291cmNlIiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiQWRkcmVzcyIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IkNvbnRhY3QiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJFbWFpbCIsIiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IlRlbGVwaG9uZSIsICIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJGYXgiLCAiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiTGFuZ3VhZ2UiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJUZXJyaXRvcnkiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJBdWRpZW5jZSIsICIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJBcHBsaWNhdGlvbiIsICIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJBYmJyZXZpYXRpb24iLCAiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiUmV2aXNpb24iLCAiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiRGF0ZSIsIiJ9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7ICJUZWxlcGhvbmVGb3JtYXQiLCBuZXcgU3RyaW5nW11bXXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJJbnRlcm5hdGlvbmFsRm9ybWF0IiwiIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiRG9tZXN0aWNGb3JtYXQiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJJbnRlcm5hdGlvbmFsRGlhbENvZGUiLCIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJJbnRlcm5hdGlvbmFsUHJlZml4IiwiIn0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gICAgCisgICAgICAgIH07CisgICAgfQorfQorICAgICAgICAgICAgCisgICAgICAgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3JiYmkvQnVpbGREaWN0aW9uYXJ5RmlsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3JiYmkvQnVpbGREaWN0aW9uYXJ5RmlsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNmNjMxNjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvcmJiaS9CdWlsZERpY3Rpb25hcnlGaWxlLmphdmEKQEAgLTAsMCArMSw4NzAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLnJiYmk7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNvbXBhY3RCeXRlQXJyYXk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworcHVibGljIGNsYXNzIEJ1aWxkRGljdGlvbmFyeUZpbGUgeworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pCisgICAgICAgICAgICB0aHJvd3MgRmlsZU5vdEZvdW5kRXhjZXB0aW9uLCBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IGFyZ3NbMF07CisgICAgICAgIFN0cmluZyBlbmNvZGluZyA9ICIiOworICAgICAgICBTdHJpbmcgb3V0cHV0RmlsZSA9ICIiOworICAgICAgICBTdHJpbmcgbGlzdGluZ0ZpbGUgPSAiIjsKKworICAgICAgICBpZiAoYXJncy5sZW5ndGggPj0gMikKKyAgICAgICAgICAgIGVuY29kaW5nID0gYXJnc1sxXTsKKworICAgICAgICBpZihhcmdzLmxlbmd0aCA+PSAzKQorICAgICAgICAgICAgb3V0cHV0RmlsZSA9IGFyZ3NbMl07CisKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID49IDQpCisgICAgICAgICAgICBsaXN0aW5nRmlsZSA9IGFyZ3NbM107CisKKyAgICAgICAgQnVpbGREaWN0aW9uYXJ5RmlsZSBkaWN0aW9uYXJ5ID0gbmV3IEJ1aWxkRGljdGlvbmFyeUZpbGUoKTsKKyAgICAgICAgZGljdGlvbmFyeS5idWlsZChmaWxlbmFtZSwgZW5jb2RpbmcpOworCisgICAgICAgIERhdGFPdXRwdXRTdHJlYW0gb3V0ID0gbnVsbDsKKyAgICAgICAgaWYgKG91dHB1dEZpbGUubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgb3V0ID0gbmV3IERhdGFPdXRwdXRTdHJlYW0obmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0cHV0RmlsZSkpOworICAgICAgICAgICAgZGljdGlvbmFyeS53cml0ZURpY3Rpb25hcnlGaWxlKG91dCk7CisgICAgICAgIH0KKworICAgICAgICBQcmludFdyaXRlciBsaXN0aW5nID0gbnVsbDsKKyAgICAgICAgaWYgKGxpc3RpbmdGaWxlLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIGxpc3RpbmcgPSBuZXcgUHJpbnRXcml0ZXIobmV3IE91dHB1dFN0cmVhbVdyaXRlcihuZXcgRmlsZU91dHB1dFN0cmVhbShsaXN0aW5nRmlsZSksICJVbmljb2RlTGl0dGxlIikpOworICAgICAgICAgICAgZGljdGlvbmFyeS5wcmludFdvcmRMaXN0KCIiLCAwLCBsaXN0aW5nKTsKKyAgICAgICAgICAgIGxpc3RpbmcuY2xvc2UoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBCdWlsZERpY3Rpb25hcnlGaWxlKCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGJ1aWxkKFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIGVuY29kaW5nKQorICAgICAgICAgICAgdGhyb3dzIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiwgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworICAgICAgICBGaWxlSW5wdXRTdHJlYW0gZmlsZSA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZW5hbWUpOworICAgICAgICBJbnB1dFN0cmVhbVJlYWRlciBpbjsKKyAgICAgICAgaWYgKGVuY29kaW5nLmxlbmd0aCgpID09IDApCisgICAgICAgICAgICBpbiA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihmaWxlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW4gPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoZmlsZSwgZW5jb2RpbmcpOworCisgICAgICAgIGJ1aWxkQ29sdW1uTWFwKGluKTsKKworICAgICAgICBmaWxlID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlbmFtZSk7CisgICAgICAgIGlmIChlbmNvZGluZy5sZW5ndGgoKSA9PSAwKQorICAgICAgICAgICAgaW4gPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoZmlsZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGluID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKGZpbGUsIGVuY29kaW5nKTsKKworICAgICAgICBidWlsZFN0YXRlVGFibGUoaW4pOworLy9wcmludFRhYmxlKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYnVpbGRDb2x1bW5NYXAoSW5wdXRTdHJlYW1SZWFkZXIgaW4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CitTeXN0ZW0ub3V0LnByaW50bG4oIkJ1aWxkaW5nIGNvbHVtbiBtYXAuLi4iKTsKKyAgICAgICAgVW5pY29kZVNldCBjaGFyc0luRmlsZSA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGludCBjID0gaW4ucmVhZCgpOworaW50IHRvdGFsQ2hhcnMgPSAwOworICAgICAgICB3aGlsZSAoYyA+PSAwKSB7CisrK3RvdGFsQ2hhcnM7IGlmICh0b3RhbENoYXJzID4gMCAmJiB0b3RhbENoYXJzICUgNTAwMCA9PSAwKSBTeXN0ZW0ub3V0LnByaW50bG4oIlJlYWQgIiArIHRvdGFsQ2hhcnMgKyAiIGNoYXJhY3RlcnMuLi4iKTsKKyAgICAgICAgICAgIGlmIChjID4gJyAnKQorICAgICAgICAgICAgICAgIGNoYXJzSW5GaWxlLmFkZCgoY2hhciljKTsKKyAgICAgICAgICAgIGMgPSBpbi5yZWFkKCk7CisgICAgICAgIH0KKy8vICAgICAgICBUZXN0LmRlYnVnUHJpbnRsbihjaGFyc0luRmlsZS50b1N0cmluZygpKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcFJldmVyc2VNYXAgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHRlbXBSZXZlcnNlTWFwLmFwcGVuZCgnICcpOworCisgICAgICAgIGNvbHVtbk1hcCA9IG5ldyBDb21wYWN0Qnl0ZUFycmF5KCk7CisgICAgICAgIGludCBuID0gY2hhcnNJbkZpbGUuZ2V0UmFuZ2VDb3VudCgpOworICAgICAgICBieXRlIHAgPSAxOworICAgICAgICBmb3IgKGludCBpPTA7IGk8bjsgKytpKSB7CisgICAgICAgICAgICBjaGFyIHN0YXJ0ID0gKGNoYXIpIGNoYXJzSW5GaWxlLmdldFJhbmdlU3RhcnQoaSk7CisgICAgICAgICAgICBjaGFyIGVuZCA9IChjaGFyKSBjaGFyc0luRmlsZS5nZXRSYW5nZUVuZChpKTsKKyAgICAgICAgICAgIGZvciAoY2hhciBjaCA9IHN0YXJ0OyBjaCA8PSBlbmQ7IGNoKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoY29sdW1uTWFwLmVsZW1lbnRBdChDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2gpKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbHVtbk1hcC5zZXRFbGVtZW50QXQoQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGNoKSwgQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGNoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwKTsKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uTWFwLnNldEVsZW1lbnRBdChDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2gpLCBDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHApOworICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgICAgIHRlbXBSZXZlcnNlTWFwLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisvL1N5c3RlbS5vdXQucHJpbnRsbigiQ29tcGFjdGluZy4uLiIpOworICAgICAgICBjb2x1bW5NYXAuY29tcGFjdCgpOworCisvL1N5c3RlbS5vdXQucHJpbnRsbih0ZW1wUmV2ZXJzZU1hcC50b1N0cmluZygpKTsKKyAgICAgICAgcmV2ZXJzZUNvbHVtbk1hcCA9IG5ldyBjaGFyW3BdOworICAgICAgICBVdGlsaXR5LmdldENoYXJzKHRlbXBSZXZlcnNlTWFwLCAwLCBwLCByZXZlcnNlQ29sdW1uTWFwLCAwKTsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInRvdGFsIGNvbHVtbnMgPSAiICsgcCk7CisgICAgICAgIG51bUNvbHMgPSBwOworICAgICAgICBudW1Db2xHcm91cHMgPSAobnVtQ29scyA+PiA1KSArIDE7CisKKy8qCitzaG9ydFtdIGluZGV4ID0gY29sdW1uTWFwLmdldEluZGV4QXJyYXkoKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiSW5kZXg6Iik7Citmb3IgKGludCBpID0gMDsgaSA8IGluZGV4Lmxlbmd0aDsgaSsrKSB7CitpZiAoaSAlIDE2ID09IDApIHsKK1N5c3RlbS5vdXQucHJpbnRsbigpOworU3lzdGVtLm91dC5wcmludCgiICAgICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGkgKiAxMjgpICsgIjoiKTsKK30KK1N5c3RlbS5vdXQucHJpbnQoIlx0IiArIEludGVnZXIudG9IZXhTdHJpbmcoaW5kZXhbaV0pKTsKK30KK1N5c3RlbS5vdXQucHJpbnRsbigpOworYnl0ZVtdIGRhdGEgPSBjb2x1bW5NYXAuZ2V0U3RyaW5nQXJyYXkoKTsKK1N5c3RlbS5vdXQucHJpbnQoIlZhbHVlczoiKTsKK2ZvciAoaW50IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykgeworaWYgKGkgJSAxNiA9PSAwKSB7CitTeXN0ZW0ub3V0LnByaW50bG4oKTsKK1N5c3RlbS5vdXQucHJpbnQoIiAgICAiICsgSW50ZWdlci50b0hleFN0cmluZyhpKSArICI6Iik7Cit9CitpZiAoZGF0YVtpXSA9PSAwKQorU3lzdGVtLm91dC5wcmludCgiXHQuIik7CitlbHNlCitTeXN0ZW0ub3V0LnByaW50KCJcdCIgKyBJbnRlZ2VyLnRvU3RyaW5nKGRhdGFbaV0pKTsKK30KK1N5c3RlbS5vdXQucHJpbnRsbigpOworKi8KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBidWlsZFN0YXRlVGFibGUoSW5wdXRTdHJlYW1SZWFkZXIgaW4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFZlY3RvciB0ZW1wVGFibGUgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHRlbXBUYWJsZS5hZGRFbGVtZW50KG5ldyBpbnRbbnVtQ29scyArIDFdKTsKKyAgICAgICAgaW50IHN0YXRlID0gMDsKKworICAgICAgICBpbnQgYyA9IGluLnJlYWQoKTsKKyAgICAgICAgaW50W10gcm93ID0gbnVsbDsKKyAgICAgICAgaW50IGNoYXJzSW5Xb3JkID0gMDsKKyAgICAgICAgd2hpbGUgKGMgPj0gMCkgeworICAgICAgICAgICAgY2hhcnNJbldvcmQrKzsKKyAgICAgICAgICAgIHNob3J0IGNvbHVtbiA9IGNvbHVtbk1hcC5lbGVtZW50QXQoKGNoYXIpYyk7CisKKyAgICAgICAgICAgIHJvdyA9IChpbnRbXSkodGVtcFRhYmxlLmVsZW1lbnRBdChzdGF0ZSkpOworICAgICAgICAgICAgaWYgKGNvbHVtbiAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKHJvd1tjb2x1bW5dID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcm93W2NvbHVtbl0gPSB0ZW1wVGFibGUuc2l6ZSgpOworICAgICAgICAgICAgICAgICAgICArK3Jvd1tudW1Db2xzXTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSAodGVtcFRhYmxlLnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgIHRlbXBUYWJsZS5hZGRFbGVtZW50KG5ldyBpbnRbbnVtQ29scyArIDFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IHJvd1tjb2x1bW5dOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc3RhdGUgIT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChyb3dbMF0gIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgcm93WzBdID0gLTE7CisgICAgICAgICAgICAgICAgICAgICsrcm93W251bUNvbHNdOworICAgICAgICAgICAgICAgICAgICB1bmlxdWVXb3JkcysrOworICAgICAgICAgICAgICAgICAgICB0b3RhbFVuaXF1ZVdvcmRDaGFycyArPSBjaGFyc0luV29yZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdG90YWxXb3JkcysrOworaWYgKHRvdGFsV29yZHMgJSA1MDAwID09IDApIFN5c3RlbS5vdXQucHJpbnRsbigiUmVhZCAiICsgdG90YWxXb3JkcyArICIgd29yZHMsICIgKyB0ZW1wVGFibGUuc2l6ZSgpICsgIiByb3dzLi4uIik7CisgICAgICAgICAgICAgICAgY2hhcnNJbldvcmQgPSAwOworICAgICAgICAgICAgICAgIHN0YXRlID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGMgPSBpbi5yZWFkKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXRlICE9IDApIHsKKyAgICAgICAgICAgIHJvdyA9IChpbnRbXSkodGVtcFRhYmxlLmVsZW1lbnRBdChzdGF0ZSkpOworICAgICAgICAgICAgaWYgKHJvd1swXSAhPSAtMSkgeworICAgICAgICAgICAgICAgIHJvd1swXSA9IC0xOworICAgICAgICAgICAgICAgIHVuaXF1ZVdvcmRzKys7CisgICAgICAgICAgICAgICAgdG90YWxVbmlxdWVXb3JkQ2hhcnMgKz0gY2hhcnNJbldvcmQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0b3RhbFdvcmRzKys7CisgICAgICAgIH0KKworICAgICAgICBjb21wcmVzcyh0ZW1wVGFibGUpOworCisgICAgICAgIHRhYmxlID0gbmV3IHNob3J0W251bUNvbHMgKiB0ZW1wVGFibGUuc2l6ZSgpXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wVGFibGUuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIHJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBudW1Db2xzOyBqKyspCisgICAgICAgICAgICAgICAgdGFibGVbaSAqIG51bUNvbHMgKyBqXSA9IChzaG9ydClyb3dbal07CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY29tcHJlc3MoVmVjdG9yIHRlbXBUYWJsZSkgeworU3lzdGVtLm91dC5wcmludGxuKCJCZWZvcmUgY29tcHJlc3Npb246Iik7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIHJvd3MgPSAiICsgdGVtcFRhYmxlLnNpemUoKSk7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIGNvbHVtbnMgPSAiICsgbnVtQ29scyk7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIGNlbGxzID0gIiArIHRlbXBUYWJsZS5zaXplKCkgKiBudW1Db2xzKTsKKyAgICAgICAgZGVsZXRlRHVwbGljYXRlUm93cyh0ZW1wVGFibGUpOworU3lzdGVtLm91dC5wcmludGxuKCJBZnRlciByZW1vdmluZyBkdXBsaWNhdGUgcm93czoiKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiICBOdW1iZXIgb2Ygcm93cyA9ICIgKyB0ZW1wVGFibGUuc2l6ZSgpKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiICBOdW1iZXIgb2YgY29sdW1ucyA9ICIgKyBudW1Db2xzKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiICBOdW1iZXIgb2YgY2VsbHMgPSAiICsgdGVtcFRhYmxlLnNpemUoKSAqIG51bUNvbHMpOworICAgICAgICBzdGFja1Jvd3ModGVtcFRhYmxlKTsKK2lmICh0ZW1wVGFibGUuc2l6ZSgpID4gMzI3NjcpIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRvbyBtYW55IHJvd3MgaW4gdGFibGUhIik7CitTeXN0ZW0ub3V0LnByaW50bG4oIkFmdGVyIGRvdWJsaW5nIHVwIG9uIHJvd3M6Iik7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIHJvd3MgPSAiICsgdGVtcFRhYmxlLnNpemUoKSk7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIGNvbHVtbnMgPSAiICsgbnVtQ29scyk7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgTnVtYmVyIG9mIGNlbGxzID0gIiArIHRlbXBUYWJsZS5zaXplKCkgKiBudW1Db2xzKTsKKyAgICB9CisKKy8qCitleHBlcmltZW50YWwuLi4KKyAgICBwcml2YXRlIHZvaWQgZGVsZXRlRHVwbGljYXRlUm93cyhWZWN0b3IgdGVtcFRhYmxlKSB7CisgICAgICAgIGludFtdIHJvd051bU1hcCA9IG5ldyBpbnRbdGVtcFRhYmxlLnNpemUoKV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93TnVtTWFwLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgcm93TnVtTWFwW2ldID0gaTsKKworICAgICAgICBpbnQgbmV4dENsYXNzID0gbnVtQ29sczsKKyAgICAgICAgaW50IGN1cnJlbnRDbGFzczsKKyAgICAgICAgaW50IGxhc3RDbGFzczsKKyAgICAgICAgYm9vbGVhbiBzcGxpdDsKKyAgICAgICAgaW50W10gcm93MSwgcm93MiwgdGVtcFJvdzsKKyAgICAgICAgaW50IHRlbXBDYXQ7CisKKyAgICAgICAgZG8geworU3lzdGVtLm91dC5wcmludGxuKCJNYWtpbmcgYSBwYXNzICgiICsgbmV4dENsYXNzICsgIiBjbGFzc2VzKS4uLiIpOworICAgICAgICAgICAgY3VycmVudENsYXNzID0gMDsKKyAgICAgICAgICAgIGxhc3RDbGFzcyA9IG5leHRDbGFzczsKKyAgICAgICAgICAgIHdoaWxlIChjdXJyZW50Q2xhc3MgPCBuZXh0Q2xhc3MpIHsKK1N5c3RlbS5vdXQucHJpbnRsbigiICAgY3VycmVudENsYXNzID0gIiArIGN1cnJlbnRDbGFzcyk7CisgICAgICAgICAgICAgICAgc3BsaXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICByb3cxID0gcm93MiA9IG51bGw7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wVGFibGUuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICBpZiAodGVtcFJvd1tudW1Db2xzXSA9PSBjdXJyZW50Q2xhc3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyb3cxID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cxID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cyID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBudW1Db2xzOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChyb3cxW2pdID09IDApICE9IChyb3cyW2pdID09IDApIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyb3cxW2pdID09IC0xKSAhPSAocm93MltqXSA9PSAtMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdzJbbnVtQ29sc10gPSBuZXh0Q2xhc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGxpdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyb3cxW2pdICE9IDAgJiYgcm93MltqXSAhPSAwICYmIHJvdzFbal0gIT0gLTEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHJvdzJbal0gIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBSb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChyb3cxW2pdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBDYXQgPSB0ZW1wUm93W251bUNvbHNdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KHJvdzJbal0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBDYXQgIT0gdGVtcFJvd1tudW1Db2xzXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdzJbbnVtQ29sc10gPSBuZXh0Q2xhc3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BsaXQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzcGxpdCkKKyAgICAgICAgICAgICAgICAgICAgKytuZXh0Q2xhc3M7CisgICAgICAgICAgICAgICAgKytjdXJyZW50Q2xhc3M7CisvL1N5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlIChsYXN0Q2xhc3MgIT0gbmV4dENsYXNzKTsKKworICAgICAgICBpbnRbXSByZXByZXNlbnRhdGl2ZXMgPSBuZXcgaW50W25leHRDbGFzc107CisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgdGVtcFRhYmxlLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICB0ZW1wUm93ID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBpZiAocmVwcmVzZW50YXRpdmVzW3RlbXBSb3dbbnVtQ29sc11dID09IDApCisgICAgICAgICAgICAgICAgcmVwcmVzZW50YXRpdmVzW3RlbXBSb3dbbnVtQ29sc11dID0gaTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByb3dOdW1NYXBbaV0gPSByZXByZXNlbnRhdGl2ZXNbdGVtcFJvd1tudW1Db2xzXV07CisgICAgICAgIH0KK1N5c3RlbS5vdXQucHJpbnRsbigiUmVudW1iZXJpbmcuLi4iKTsKKworICAgICAgICAvLyByZW51bWJlciBhbGwgcmVtYWluaW5nIHJvd3MKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dOdW1NYXAubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBpZiAocm93TnVtTWFwW2ldICE9IGkpCisgICAgICAgICAgICAgICAgdGVtcFRhYmxlLnNldEVsZW1lbnRBdChudWxsLCBpKTsKKyAgICAgICAgaW50IG5ld1Jvd051bSA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93TnVtTWFwLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgaWYgKHRlbXBUYWJsZS5lbGVtZW50QXQoaSkgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICByb3dOdW1NYXBbaV0gPSBuZXdSb3dOdW0rKzsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dOdW1NYXAubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBpZiAodGVtcFRhYmxlLmVsZW1lbnRBdChpKSA9PSBudWxsKQorICAgICAgICAgICAgICAgIHJvd051bU1hcFtpXSA9IHJvd051bU1hcFtyb3dOdW1NYXBbaV1dOworCisgICAgICAgIGZvciAoaW50IGkgPSB0ZW1wVGFibGUuc2l6ZSgpIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgIHRlbXBSb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGlmICh0ZW1wUm93ID09IG51bGwpCisgICAgICAgICAgICAgICAgdGVtcFRhYmxlLnJlbW92ZUVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ29sczsgaisrKQorICAgICAgICAgICAgICAgICAgICBpZiAodGVtcFJvd1tqXSAhPSAtMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBSb3dbal0gPSByb3dOdW1NYXBbal07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKy8vZm9yIChpbnQgaSA9IDE7IGkgPCByb3dOdW1NYXAubGVuZ3RoOyBpKyspIHJvd051bU1hcFtpXSA9IGk7IGludCBuZXdSb3dOdW0gPSByb3dOdW1NYXAubGVuZ3RoOworICAgIH0KKyovCisKKyAgICBwcml2YXRlIHZvaWQgZGVsZXRlRHVwbGljYXRlUm93cyhWZWN0b3IgdGVtcFRhYmxlKSB7CisgICAgICAgIFZlY3RvciB3b3JrID0gKFZlY3RvcikodGVtcFRhYmxlLmNsb25lKCkpOworICAgICAgICBib29sZWFuIGRpZERlbGV0ZVJvdyA9IHRydWU7CisKKyAgICAgICAgVmVjdG9yIHRlbXBNYXBwaW5nID0gbmV3IFZlY3Rvcih3b3JrLnNpemUoKSk7CisgICAgICAgIGludFtdIG1hcHBpbmcgPSBuZXcgaW50W3dvcmsuc2l6ZSgpXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXBwaW5nLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBtYXBwaW5nW2ldID0gaTsKKyAgICAgICAgICAgIHRlbXBNYXBwaW5nLmFkZEVsZW1lbnQobmV3IEludGVnZXIoaSkpOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW5bXSB0YmQgPSBuZXcgYm9vbGVhblt3b3JrLnNpemUoKV07CisKKyAgICAgICAgd2hpbGUgKGRpZERlbGV0ZVJvdykgeworU3lzdGVtLm91dC5wcmludGxuKCIgIiArIHdvcmsuc2l6ZSgpICsgIiByb3dzLi4uIik7CitpbnQgZGVsZXRlZFJvd3MgPSAwOworICAgICAgICAgICAgZGlkRGVsZXRlUm93ID0gZmFsc2U7CisKKyAgICAgICAgICAgIHNvcnRUYWJsZSh3b3JrLCB0ZW1wTWFwcGluZywgbWFwcGluZywgMSwgd29yay5zaXplKCkpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB3b3JrLnNpemUoKSAtIDE7ICkgeworU3lzdGVtLm91dC5wcmludCgiRGVsZXRpbmcsIGluc3BlY3Rpbmcgcm93ICIgKyBpICsgIiwgZGVsZXRlZCAiICsgZGVsZXRlZFJvd3MgKyAiIHJvd3MuLi5cciIpOworICAgICAgICAgICAgICAgIGludCByb3dUb0RlbGV0ZSA9ICgoSW50ZWdlcikodGVtcE1hcHBpbmcuZWxlbWVudEF0KGkgKyAxKSkpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgaW50IHJvd1RvTWFwVG8gPSAoKEludGVnZXIpKHRlbXBNYXBwaW5nLmVsZW1lbnRBdChpKSkpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVSb3dzKChpbnRbXSl3b3JrLmVsZW1lbnRBdChpKSwgKGludFtdKXdvcmsuZWxlbWVudEF0KGkgKyAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZykgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0YmRbcm93VG9EZWxldGVdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFRhYmxlLnNldEVsZW1lbnRBdChudWxsLCByb3dUb0RlbGV0ZSk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh0YmRbbWFwcGluZ1tyb3dUb01hcFRvXV0pCisgICAgICAgICAgICAgICAgICAgICAgICBtYXBwaW5nW3Jvd1RvTWFwVG9dID0gbWFwcGluZ1ttYXBwaW5nW3Jvd1RvTWFwVG9dXTsKKyAgICAgICAgICAgICAgICAgICAgbWFwcGluZ1tyb3dUb0RlbGV0ZV0gPSBtYXBwaW5nW3Jvd1RvTWFwVG9dOworICAgICAgICAgICAgICAgICAgICBkaWREZWxldGVSb3cgPSB0cnVlOworZGVsZXRlZFJvd3MrKzsKKyAgICAgICAgICAgICAgICAgICAgd29yay5yZW1vdmVFbGVtZW50QXQoaSArIDEpOworICAgICAgICAgICAgICAgICAgICB0ZW1wTWFwcGluZy5yZW1vdmVFbGVtZW50QXQoaSArIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWFwcGluZy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmICh0YmRbaV0gJiYgdGJkW21hcHBpbmdbaV1dKQorICAgICAgICAgICAgICAgICAgICBtYXBwaW5nW2ldID0gbWFwcGluZ1ttYXBwaW5nW2ldXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludCBkZWNyZW1lbnRCeSA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWFwcGluZy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKHRiZFtpXSkKKyAgICAgICAgICAgICAgICBkZWNyZW1lbnRCeSsrOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1hcHBpbmdbaV0gLT0gZGVjcmVtZW50Qnk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtYXBwaW5nLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAodGJkW2ldKQorICAgICAgICAgICAgICAgIG1hcHBpbmdbaV0gPSBtYXBwaW5nW21hcHBpbmdbaV1dOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSB0ZW1wVGFibGUuc2l6ZSgpIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgIGlmICh0YmRbaV0pCisgICAgICAgICAgICAgICAgdGVtcFRhYmxlLnJlbW92ZUVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludFtdIHJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ29sczsgaisrKQorICAgICAgICAgICAgICAgICAgICByb3dbal0gPSAocm93W2pdID09IC0xKSA/IC0xIDogbWFwcGluZ1tyb3dbal1dOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNvcnRUYWJsZShWZWN0b3IgdGFibGUsIFZlY3RvciB0ZW1wTWFwcGluZywgaW50W10gbWFwcGluZywgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CitTeXN0ZW0ub3V0LnByaW50KCJTb3J0aW5nICgiICsgc3RhcnQgKyAiLCAiICsgZW5kICsgIikuLi5cciIpOworICAgICAgICBpZiAoc3RhcnQgKyAxID49IGVuZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZWxzZSBpZiAoc3RhcnQgKyAxMCA+PSBlbmQpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSBzdGFydCArIDE7IGkgPCBlbmQ7IGkrKykgeworICAgICAgICAgICAgICAgIGludFtdIHJvdyA9IChpbnRbXSl0YWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgSW50ZWdlciB0ZW1wTWFwID0gKEludGVnZXIpdGVtcE1hcHBpbmcuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgIGludCBqOworICAgICAgICAgICAgICAgIGZvciAoaiA9IGkgLSAxOyBqID49IHN0YXJ0OyBqLS0pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVSb3dzKChpbnRbXSl0YWJsZS5lbGVtZW50QXQoaiksIHJvdywgbWFwcGluZykgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS5zZXRFbGVtZW50QXQoKGludFtdKXRhYmxlLmVsZW1lbnRBdChqKSwgaiArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcE1hcHBpbmcuc2V0RWxlbWVudEF0KChJbnRlZ2VyKXRlbXBNYXBwaW5nLmVsZW1lbnRBdChqKSwgaiArIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUuc2V0RWxlbWVudEF0KHJvdywgaiArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcE1hcHBpbmcuc2V0RWxlbWVudEF0KHRlbXBNYXAsIGogKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChqIDwgc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgdGFibGUuc2V0RWxlbWVudEF0KHJvdywgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB0ZW1wTWFwcGluZy5zZXRFbGVtZW50QXQodGVtcE1hcCwgc3RhcnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGludCBib3VuZGFyeVBvcyA9IChzdGFydCArIGVuZCkgLyAyOworICAgICAgICAgICAgaW50IGk7CisgICAgICAgICAgICBib29sZWFuIGFsbFRoZVNhbWUgPSB0cnVlOworICAgICAgICAgICAgaW50IGZpcnN0RGlmZmVyZW50ID0gMDsKKworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGludFtdIGJvdW5kYXJ5ID0gKGludFtdKXRhYmxlLmVsZW1lbnRBdChib3VuZGFyeVBvcyk7CisgICAgICAgICAgICAgICAgaSA9IHN0YXJ0OworICAgICAgICAgICAgICAgIGludCBqID0gZW5kIC0gMTsKKyAgICAgICAgICAgICAgICBpbnRbXSByb3cgPSBudWxsOworICAgICAgICAgICAgICAgIGJ5dGUgY29tcFJlc3VsdDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaSA8IGopIHsKKyAgICAgICAgICAgICAgICAgICAgcm93ID0gKGludFtdKXRhYmxlLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGkgPD0gaiAmJiBjb21wYXJlUm93cyhyb3csIGJvdW5kYXJ5LCBtYXBwaW5nKSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvdyA9IChpbnRbXSl0YWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICByb3cgPSAoaW50W10pdGFibGUuZWxlbWVudEF0KGopOworICAgICAgICAgICAgICAgICAgICBjb21wUmVzdWx0ID0gY29tcGFyZVJvd3Mocm93LCBib3VuZGFyeSwgbWFwcGluZyk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpIDw9IGogJiYgKGNvbXBSZXN1bHQgPj0gMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb21wUmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxUaGVTYW1lID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3REaWZmZXJlbnQgPSBqOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgai0tOworICAgICAgICAgICAgICAgICAgICAgICAgcm93ID0gKGludFtdKXRhYmxlLmVsZW1lbnRBdChqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBSZXN1bHQgPSBjb21wYXJlUm93cyhyb3csIGJvdW5kYXJ5LCBtYXBwaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoaSA8PSBqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByb3cgPSAoaW50W10pdGFibGUuZWxlbWVudEF0KGopOworICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUuc2V0RWxlbWVudEF0KHRhYmxlLmVsZW1lbnRBdChpKSwgaik7CisgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS5zZXRFbGVtZW50QXQocm93LCBpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCB0ZW1wID0gdGVtcE1hcHBpbmcuZWxlbWVudEF0KGopOworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcE1hcHBpbmcuc2V0RWxlbWVudEF0KHRlbXBNYXBwaW5nLmVsZW1lbnRBdChpKSwgaik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wTWFwcGluZy5zZXRFbGVtZW50QXQodGVtcCwgaSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGkgPD0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFsbFRoZVNhbWUpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kYXJ5UG9zID0gZmlyc3REaWZmZXJlbnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSB3aGlsZSAoaSA8PSBzdGFydCk7CisgICAgICAgICAgICBzb3J0VGFibGUodGFibGUsIHRlbXBNYXBwaW5nLCBtYXBwaW5nLCBzdGFydCwgaSk7CisgICAgICAgICAgICBzb3J0VGFibGUodGFibGUsIHRlbXBNYXBwaW5nLCBtYXBwaW5nLCBpLCBlbmQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBieXRlIGNvbXBhcmVSb3dzKGludFtdIHJvdzEsIGludFtdIHJvdzIsIGludFtdIG1hcHBpbmcpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1Db2xzOyBpKyspIHsKKyAgICAgICAgICAgIGludCBjMSA9IChyb3cxW2ldID09IC0xKSA/IC0xIDogbWFwcGluZ1tyb3cxW2ldXTsKKyAgICAgICAgICAgIGludCBjMiA9IChyb3cyW2ldID09IC0xKSA/IC0xIDogbWFwcGluZ1tyb3cyW2ldXTsKKyAgICAgICAgICAgIGlmIChjMSA8IGMyKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGMxID4gYzIpCisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnRbXSBidWlsZFJvd0luZGV4KFZlY3RvciB0ZW1wVGFibGUpIHsKKyAgICAgICAgaW50W10gdGVtcFJvd0luZGV4ID0gbmV3IGludFt0ZW1wVGFibGUuc2l6ZSgpXTsKKyAgICAgICAgcm93SW5kZXhGbGFnc0luZGV4ID0gbmV3IHNob3J0W3RlbXBUYWJsZS5zaXplKCldOworICAgICAgICBWZWN0b3IgdGVtcFJvd0luZGV4RmxhZ3MgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHJvd0luZGV4U2hpZnRzID0gbmV3IGJ5dGVbdGVtcFRhYmxlLnNpemUoKV07CisKKyAgICAgICAgLy8gYnVpbGQgdGhlIHJvdyBpbmRleC4gIEVhY2ggZW50cnkgaW4gdGhlIHJvdyBpbmRleCBzdGFydHMgb3V0IHJlZmVycmluZworICAgICAgICAvLyB0byB0aGUgb3JpZ2luYWwgcm93IChzbyBpdCBkb2Vzbid0IGFjdHVhbGx5IGRvIGFueSBtYXBwaW5nKSwgYW5kIHdlIHNldAorICAgICAgICAvLyB1cCB0aGUgaW5kZXggZmxhZ3MgdG8gc2hvdyB3aGljaCBjZWxscyBpbiB0aGUgcm93IGFyZSBwb3B1bGF0ZWQKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wVGFibGUuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIHRlbXBSb3dJbmRleFtpXSA9IGk7CisKKyAgICAgICAgICAgIGludFtdIHJvdyA9IChpbnRbXSl0ZW1wVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgaWYgKHJvd1tudW1Db2xzXSA9PSAxICYmIHJvd1swXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgaW50IGogPSAwOworICAgICAgICAgICAgICAgIHdoaWxlIChyb3dbal0gPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgKytqOworICAgICAgICAgICAgICAgIHJvd0luZGV4RmxhZ3NJbmRleFtpXSA9IChzaG9ydCkoLWopOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50W10gZmxhZ3MgPSBuZXcgaW50W251bUNvbEdyb3Vwc107CisgICAgICAgICAgICAgICAgaW50IG5leHRGbGFnID0gMTsKKyAgICAgICAgICAgICAgICBpbnQgY29sR3JvdXAgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ29sczsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChyb3dbal0gIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzW2NvbEdyb3VwXSB8PSBuZXh0RmxhZzsKKyAgICAgICAgICAgICAgICAgICAgbmV4dEZsYWcgPDw9IDE7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0RmxhZyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2NvbEdyb3VwOworICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEZsYWcgPSAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbEdyb3VwID0gMDsKKyAgICAgICAgICAgICAgICBpbnQgaiA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKGogPCB0ZW1wUm93SW5kZXhGbGFncy5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCgoSW50ZWdlcil0ZW1wUm93SW5kZXhGbGFncy5lbGVtZW50QXQoaikpLmludFZhbHVlKCkgPT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzW2NvbEdyb3VwXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytjb2xHcm91cDsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrajsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2xHcm91cCA+PSBudW1Db2xHcm91cHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY29sR3JvdXAgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbEdyb3VwID0gMDsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgKytqOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByb3dJbmRleEZsYWdzSW5kZXhbaV0gPSAoc2hvcnQpKGogLSBjb2xHcm91cCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGNvbEdyb3VwIDwgbnVtQ29sR3JvdXBzKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBSb3dJbmRleEZsYWdzLmFkZEVsZW1lbnQobmV3IEludGVnZXIoZmxhZ3NbY29sR3JvdXBdKSk7CisgICAgICAgICAgICAgICAgICAgICsrY29sR3JvdXA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJvd0luZGV4RmxhZ3MgPSBuZXcgaW50W3RlbXBSb3dJbmRleEZsYWdzLnNpemUoKV07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXhGbGFncy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHJvd0luZGV4RmxhZ3NbaV0gPSAoKEludGVnZXIpdGVtcFJvd0luZGV4RmxhZ3MuZWxlbWVudEF0KGkpKS5pbnRWYWx1ZSgpOworU3lzdGVtLm91dC5wcmludGxuKCJOdW1iZXIgb2YgY29sdW1uIGdyb3VwcyA9ICIgKyBudW1Db2xHcm91cHMpOworU3lzdGVtLm91dC5wcmludGxuKCJTaXplIG9mIHJvd0luZGV4RmxhZ3MgPSAiICsgcm93SW5kZXhGbGFncy5sZW5ndGgpOworCisgICAgICAgIHJldHVybiB0ZW1wUm93SW5kZXg7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHN0YWNrUm93cyhWZWN0b3IgdGVtcFRhYmxlKSB7CisvKgorU3lzdGVtLm91dC5wcmludCgiUm93Olx0Iik7Citmb3IgKGludCBpID0gMDsgaSA8IG51bUNvbHM7IGkrKykKK1N5c3RlbS5vdXQucHJpbnQocmV2ZXJzZUNvbHVtbk1hcFtpXSArICJcdCIpOworU3lzdGVtLm91dC5wcmludGxuKCk7Citmb3IgKGludCBpID0gMDsgaSA8IHRlbXBUYWJsZS5zaXplKCk7IGkrKykgeworU3lzdGVtLm91dC5wcmludChJbnRlZ2VyLnRvU3RyaW5nKGkpICsgIjpcdCIpOworaW50W10gcm93ID0gKGludFtdKXRlbXBUYWJsZS5lbGVtZW50QXQoaSk7Citmb3IgKGludCBqID0gMDsgaiA8IHJvdy5sZW5ndGg7IGorKykKK2lmIChyb3dbal0gIT0gMCkgU3lzdGVtLm91dC5wcmludChJbnRlZ2VyLnRvU3RyaW5nKHJvd1tqXSkgKyAiXHQiKTsKK2Vsc2UgU3lzdGVtLm91dC5wcmludCgiLlx0Iik7CitTeXN0ZW0ub3V0LnByaW50bG4oKTsKK30KKyovCisKKyAgICAgICAgaW50W10gdGVtcFJvd0luZGV4ID0gYnVpbGRSb3dJbmRleCh0ZW1wVGFibGUpOworICAgICAgICBib29sZWFuW10gdGJkID0gbmV3IGJvb2xlYW5bdGVtcFRhYmxlLnNpemUoKV07CisKKyAgICAgICAgLy8gbm93IHdlIGFjdHVhbGx5IGdvIHRocm91Z2ggYW5kIHN0YWNrIHJvd3MgdG9nZXRoZXIKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wVGFibGUuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmICh0YmRbaV0pCisgICAgICAgICAgICAgICAgY29udGludWU7CitTeXN0ZW0ub3V0LnByaW50KCJTdGFja2luZywgaW5zcGVjdGluZyByb3cgIiArIGkgKyAiLi4uXHIiKTsKKy8vU3lzdGVtLm91dC5wcmludGxuKCJTdGFja2luZywgaW5zcGVjdGluZyByb3cgIiArIGkgKyAiLi4uIik7CisKKyAgICAgICAgICAgIGludFtdIGRlc3RSb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChpKTsKKworICAgICAgICAgICAgYm9vbGVhbltdIHRlbXBGbGFncyA9IG5ldyBib29sZWFuW251bUNvbHNdOworICAgICAgICAgICAgYm9vbGVhbltdIGZpbGxlZENlbGxzID0gbmV3IGJvb2xlYW5bbnVtQ29sc107CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG51bUNvbHM7IGorKykKKyAgICAgICAgICAgICAgICBmaWxsZWRDZWxsc1tqXSA9IGRlc3RSb3dbal0gIT0gMDsKKworICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBkZXN0Um93W251bUNvbHNdIDwgbnVtQ29scyAmJiBqIDwgdGVtcFRhYmxlLnNpemUoKTsgaisrKSB7CisgICAgICAgICAgICAgICAgaWYgKHRiZFtqXSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBpbnRbXSBzcmNSb3cgPSAoaW50W10pdGVtcFRhYmxlLmVsZW1lbnRBdChqKTsKKyAgICAgICAgICAgICAgICBpZiAoc3JjUm93W251bUNvbHNdICsgZGVzdFJvd1tudW1Db2xzXSA+IG51bUNvbHMpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgaW50IG1heExlZnRTaGlmdCA9IC05OTk7CisgICAgICAgICAgICAgICAgaW50IG1heFJpZ2h0U2hpZnQgPSAwOworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgbnVtQ29sczsgaysrKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBGbGFnc1trXSA9IHNyY1Jvd1trXSAhPSAwOworICAgICAgICAgICAgICAgICAgICBpZiAodGVtcEZsYWdzW2tdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF4TGVmdFNoaWZ0ID09IC05OTkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4TGVmdFNoaWZ0ID0gLWs7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXhSaWdodFNoaWZ0ID0gKG51bUNvbHMgLSAxKSAtIGs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgc2hpZnQ7CisgICAgICAgICAgICAgICAgZm9yIChzaGlmdCA9IG1heExlZnRTaGlmdDsgc2hpZnQgPD0gbWF4UmlnaHRTaGlmdDsgc2hpZnQrKykgeworICAgICAgICAgICAgICAgICAgICBpbnQgazsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IG51bUNvbHM7IGsrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBGbGFnc1trXSAmJiBmaWxsZWRDZWxsc1trICsgc2hpZnRdKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChrID49IG51bUNvbHMpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHNoaWZ0IDw9IG1heFJpZ2h0U2hpZnQpIHsKKy8vU3lzdGVtLm91dC5wcmludGxuKCJQYWNraW5nIHJvdyAiICsgaiArICIgaW50byByb3cgIiArIGkgKyAiIHdpdGggc2hpZnQgPSAiICsgc2hpZnQpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IG51bUNvbHM7IGsrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBGbGFnc1trXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxlZENlbGxzW2sgKyBzaGlmdF0gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RSb3dbayArIHNoaWZ0XSA9IHNyY1Jvd1trXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2Rlc3RSb3dbbnVtQ29sc107CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdGJkW2pdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFJvd0luZGV4W2pdID0gaTsKKyAgICAgICAgICAgICAgICAgICAgcm93SW5kZXhTaGlmdHNbal0gPSAoYnl0ZSlzaGlmdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBmaW5hbGx5LCB3ZSBzcXVlZXplIG91dCBhbGwgdGhlIGRlbGV0ZWQgcm93cworICAgICAgICBpbnQgZGVjcmVtZW50QnkgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXBSb3dJbmRleC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKCF0YmRbaV0pCisgICAgICAgICAgICAgICAgdGVtcFJvd0luZGV4W2ldIC09IGRlY3JlbWVudEJ5OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICsrZGVjcmVtZW50Qnk7CisgICAgICAgIH0KKyAgICAgICAgcm93SW5kZXggPSBuZXcgc2hvcnRbdGVtcFJvd0luZGV4Lmxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSB0ZW1wUm93SW5kZXgubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgIGlmICh0YmRbaV0pIHsKKyAgICAgICAgICAgICAgICByb3dJbmRleFtpXSA9IChzaG9ydCkodGVtcFJvd0luZGV4W3RlbXBSb3dJbmRleFtpXV0pOworICAgICAgICAgICAgICAgIHRlbXBUYWJsZS5yZW1vdmVFbGVtZW50QXQoaSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcm93SW5kZXhbaV0gPSAoc2hvcnQpdGVtcFJvd0luZGV4W2ldOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByaW50VGFibGUoKSB7CisgICAgICAgIHNob3J0IGNlbGw7CisgICAgICAgIGludCBwb3B1bGF0ZWRDZWxscyA9IDA7CisvKgorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbmNlcHR1YWwgdGFibGU6Iik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIFJvdzogICBhICAgYiAgIGMgICBkICAgZSAgIGYgICBnICAgaCAgIGkgICBqICAgayAgIGwgICBtICAgbiIKKyAgICAgICAgICAgICAgICArICIgICBvICAgcCAgIHEgICByICAgcyAgIHQgICB1ICAgdiAgIHcgICB4ICAgeSAgIHogICAnICAgIyIpOworCisgICAgICAgIGJvb2xlYW5bXSByb3dQcmludEZsYWdzID0gbmV3IGJvb2xlYW5bcm93SW5kZXgubGVuZ3RoXTsKKyAgICAgICAgcHJpbnRDb25jZXB0dWFsVGFibGUoIiIsIDAsIHJvd1ByaW50RmxhZ3MpOworKi8KKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb25jZXB0dWFsIHRhYmxlOiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgUm93OiIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJldmVyc2VDb2x1bW5NYXAubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAiICsgcmV2ZXJzZUNvbHVtbk1hcFtpXSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICBwcmludE51bWJlcihpLCA0KTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIjoiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ29sczsgaisrKQorICAgICAgICAgICAgICAgIHByaW50TnVtYmVyKGF0KGksIGopLCA0KTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oJ1xuJyk7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSW50ZXJuYWxseSBzdG9yZWQgdGFibGU6Iik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiBSb3c6Iik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmV2ZXJzZUNvbHVtbk1hcC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgICIgKyByZXZlcnNlQ29sdW1uTWFwW2ldKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhYmxlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaSAlIG51bUNvbHMgPT0gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgICAgIHByaW50TnVtYmVyKGkgLyBudW1Db2xzLCA0KTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCI6Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjZWxsID0gdGFibGVbaV07CisgICAgICAgICAgICBpZiAoY2VsbCAhPSAwKQorICAgICAgICAgICAgICAgIHBvcHVsYXRlZENlbGxzKys7CisgICAgICAgICAgICBwcmludE51bWJlcihjZWxsLCA0KTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oJ1xuJyk7CisKK1N5c3RlbS5vdXQucHJpbnRsbigiUm93IGluZGV4OiIpOworZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleC5sZW5ndGg7IGkrKykgeworICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgICIgKyBpICsgIiAtPiAiICsgcm93SW5kZXhbaV0pOworICAgIGlmIChyb3dJbmRleEZsYWdzSW5kZXhbaV0gPCAwKQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIsIGZsYWdzID0gIiArIEludGVnZXIudG9CaW5hcnlTdHJpbmcoKDEgPDwgKC1yb3dJbmRleEZsYWdzSW5kZXhbaV0pKSkgKyAiICgiICsgcm93SW5kZXhGbGFnc0luZGV4W2ldKTsKKyAgICBlbHNlCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiwgZmxhZ3MgPSAiICsgSW50ZWdlci50b0JpbmFyeVN0cmluZyhyb3dJbmRleEZsYWdzW3Jvd0luZGV4RmxhZ3NJbmRleFtpXV0pICsgIiAoIiArIHJvd0luZGV4RmxhZ3NJbmRleFtpXSk7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCIpLCBzaGlmdCA9ICIgKyByb3dJbmRleFNoaWZ0c1tpXSk7Cit9CisvKgorICAgICAgICBpbnQgdGhlb3JldGljYWxNaW5Sb3dzID0gcG9wdWxhdGVkQ2VsbHMgLyBudW1Db2xzOworICAgICAgICBpZiAocG9wdWxhdGVkQ2VsbHMgJSBudW1Db2xzICE9IDApCisgICAgICAgICAgICB0aGVvcmV0aWNhbE1pblJvd3MrKzsKKyAgICAgICAgaW50IG9uZUNlbGxSb3dzID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleEZsYWdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBkb3VibGUgdGVtcCA9IE1hdGgubG9nKHJvd0luZGV4RmxhZ3NbaV0pIC8gTWF0aC5sb2coMik7CisgICAgICAgICAgICBpZiAodGVtcCA9PSAoaW50KXRlbXApCisgICAgICAgICAgICAgICAgb25lQ2VsbFJvd3MrKzsKKyAgICAgICAgfQorCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbignXG4nKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUb3RhbCB3b3JkcyBpbiBpbnB1dCA9ICIgKyB0b3RhbFdvcmRzKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUb3RhbCB1bmlxdWUgd29yZHMgPSAiICsgdW5pcXVlV29yZHMgKyAiLCBjb21wcmlzaW5nICIgKworICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxVbmlxdWVXb3JkQ2hhcnMgKyAiIGNoYXJhY3RlcnNcbiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk51bWJlciBvZiBwb3B1bGF0ZWQgY2VsbHMgPSAiICsgcG9wdWxhdGVkQ2VsbHMpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRvdGFsIG51bWJlciBvZiBjZWxscyA9ICIgKyAodGFibGUubGVuZ3RoKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVzaWRlbmN5ID0gIiArICgoZmxvYXQpcG9wdWxhdGVkQ2VsbHMgLyB0YWJsZS5sZW5ndGggKiAxMDApICsgJyUnKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSYXRpbyBvZiBwb3B1bGF0ZWQgY2VsbHMgdG8gdW5pcXVlLXdvcmQgY2hhcmFjdGVycyA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgKChmbG9hdClwb3B1bGF0ZWRDZWxscyAvIHRvdGFsVW5pcXVlV29yZENoYXJzICogMTAwKSArICclJyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmF0aW8gb2YgdG90YWwgY2VsbHMgdG8gdW5pcXVlLXdvcmQgY2hhcmFjdGVycyA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgKChmbG9hdCl0YWJsZS5sZW5ndGggLyB0b3RhbFVuaXF1ZVdvcmRDaGFycyAqIDEwMCkgKyAnJScpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk51bWJlciBvZiByb3dzID0gIiArICh0YWJsZS5sZW5ndGggLyBudW1Db2xzKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlb3JldGljYWwgbWluaW11bSBudW1iZXIgb2Ygcm93cyA9ICIgKyB0aGVvcmV0aWNhbE1pblJvd3MpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJhdGlvIG9mIG51bWJlciBvZiByb3dzIHRvIHRoZW9yZXRpY2FsIG1pbmltdW0gPSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICgoZmxvYXQpKHRhYmxlLmxlbmd0aCAvIG51bUNvbHMpIC8gdGhlb3JldGljYWxNaW5Sb3dzICogMTAwKSArICclJyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTnVtYmVyIG9mIGNvbmNlcHR1YWwgcm93cyA9ICIgKyByb3dJbmRleC5sZW5ndGgpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbmNlcHR1YWwgcm93cyB3aXRoIG9ubHkgb25lIHBvcHVsYXRlZCBjZWxsID0gIiArIG9uZUNlbGxSb3dzKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSYXRpbyBvZiBvbmUtY2VsbCByb3dzIHRvIHRvdGFsIGNvbmNlcHR1YWwgcm93cyA9ICIgKyAoKChmbG9hdClvbmVDZWxsUm93cykKKyAgICAgICAgICAgICAgICAgICAgICAgIC8gcm93SW5kZXgubGVuZ3RoICogMTAwKSArICclJyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQXZlcmFnZSBudW1iZXIgb2YgcG9wdWxhdGVkIGNlbGxzIGluIG11bHRpLWNlbGwgcm93cyA9ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgKChmbG9hdCkocG9wdWxhdGVkQ2VsbHMgLSBvbmVDZWxsUm93cykgLyAocm93SW5kZXgubGVuZ3RoIC0gb25lQ2VsbFJvd3MpKSk7CisKKyAgICAgICAgaW50IHN0b3JhZ2VVc2VkID0gdGFibGUubGVuZ3RoICogMiArIHJvd0luZGV4Lmxlbmd0aCAqIDIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgcm93SW5kZXhGbGFncy5sZW5ndGggKiA0ICsgcm93SW5kZXhTaGlmdHMubGVuZ3RoOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRvdGFsIG51bWJlciBvZiBieXRlcyBpbiB0YWJsZSAoaW5jbHVkaW5nIGluZGV4ZXMpID0gIiArCisgICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlVXNlZCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQnl0ZXMgb2Ygb3ZlcmhlYWQgcGVyIHVuaXF1ZS13b3JkIGNoYXJhY3RlciA9ICIgKyAoKGRvdWJsZSkoc3RvcmFnZVVzZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIC0gKHRvdGFsVW5pcXVlV29yZENoYXJzICogMikpIC8gdG90YWxVbmlxdWVXb3JkQ2hhcnMpKTsKKyovCisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByaW50Q29uY2VwdHVhbFRhYmxlKFN0cmluZyBpbml0aWFsU3RyaW5nLCBpbnQgc3RhdGUsIGJvb2xlYW5bXSBmbGFncykgeworICAgICAgICBpZiAoaW5pdGlhbFN0cmluZy5sZW5ndGgoKSA9PSAwKQorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJyb290OiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaW5pdGlhbFN0cmluZyArICc6Jyk7CisKKyAgICAgICAgaWYgKCFmbGFnc1tzdGF0ZV0pIHsKKyAgICAgICAgICAgIGZsYWdzW3N0YXRlXSA9IHRydWU7CisgICAgICAgICAgICBwcmludE51bWJlcihzdGF0ZSwgNCk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCI6Iik7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNvbHM7IGkrKykKKyAgICAgICAgICAgICAgICBwcmludE51bWJlcihhdChzdGF0ZSwgaSksIDQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbmV4dFN0YXRlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNvbHM7IGkrKykgeworICAgICAgICAgICAgbmV4dFN0YXRlID0gYXQoc3RhdGUsIGkpOworICAgICAgICAgICAgaWYgKG5leHRTdGF0ZSA+IDAgJiYgIWZsYWdzW25leHRTdGF0ZV0pIHsKKyAgICAgICAgICAgICAgICBwcmludE51bWJlcihuZXh0U3RhdGUsIDQpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIjoiKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG51bUNvbHM7IGorKykKKyAgICAgICAgICAgICAgICAgICAgcHJpbnROdW1iZXIoYXQobmV4dFN0YXRlLCBqKSwgNCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1Db2xzOyBpKyspIHsKKyAgICAgICAgICAgIG5leHRTdGF0ZSA9IGF0KHN0YXRlLCBpKTsKKyAgICAgICAgICAgIGlmIChuZXh0U3RhdGUgPiAwICYmICFmbGFnc1tuZXh0U3RhdGVdKSB7CisgICAgICAgICAgICAgICAgY2hhciBuZXh0Q2hhcjsKKyAgICAgICAgICAgICAgICBpZiAobmV4dFN0YXRlID09IDI3KQorICAgICAgICAgICAgICAgICAgICBuZXh0Q2hhciA9ICcgJzsKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChuZXh0U3RhdGUgPT0gMjYpCisgICAgICAgICAgICAgICAgICAgIG5leHRDaGFyID0gJ1wnJzsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG5leHRDaGFyID0gKGNoYXIpKGkgKyAnYScpOworICAgICAgICAgICAgICAgIGZsYWdzW25leHRTdGF0ZV0gPSB0cnVlOworICAgICAgICAgICAgICAgIHByaW50Q29uY2VwdHVhbFRhYmxlKGluaXRpYWxTdHJpbmcgKyBuZXh0Q2hhciwgbmV4dFN0YXRlLCBmbGFncyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcHJpbnRXb3JkTGlzdChTdHJpbmcgcGFydGlhbFdvcmQsIGludCBzdGF0ZSwgUHJpbnRXcml0ZXIgb3V0KQorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHN0YXRlID09IC0xKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocGFydGlhbFdvcmQpOworICAgICAgICAgICAgaWYgKG91dCAhPSBudWxsKQorICAgICAgICAgICAgICAgIG91dC5wcmludGxuKHBhcnRpYWxXb3JkKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ29sczsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGF0KHN0YXRlLCBpKSAhPSAwKQorICAgICAgICAgICAgICAgICAgICBwcmludFdvcmRMaXN0KHBhcnRpYWxXb3JkICsgcmV2ZXJzZUNvbHVtbk1hcFtpXSwgYXQoc3RhdGUsIGkpLCBvdXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlRGljdGlvbmFyeUZpbGUoRGF0YU91dHB1dFN0cmVhbSBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIG91dC53cml0ZUludCgwKTsgICAgLy8gdmVyc2lvbiBudW1iZXIKKworICAgICAgICBjaGFyW10gY29sdW1uTWFwSW5kZXhlcyA9IGNvbHVtbk1hcC5nZXRJbmRleEFycmF5KCk7CisgICAgICAgIG91dC53cml0ZUludChjb2x1bW5NYXBJbmRleGVzLmxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY29sdW1uTWFwSW5kZXhlcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG91dC53cml0ZVNob3J0KChzaG9ydCljb2x1bW5NYXBJbmRleGVzW2ldKTsKKyAgICAgICAgYnl0ZVtdIGNvbHVtbk1hcFZhbHVlcyA9IGNvbHVtbk1hcC5nZXRWYWx1ZUFycmF5KCk7CisgICAgICAgIG91dC53cml0ZUludChjb2x1bW5NYXBWYWx1ZXMubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb2x1bW5NYXBWYWx1ZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvdXQud3JpdGVCeXRlKChieXRlKWNvbHVtbk1hcFZhbHVlc1tpXSk7CisKKyAgICAgICAgb3V0LndyaXRlSW50KG51bUNvbHMpOworICAgICAgICBvdXQud3JpdGVJbnQobnVtQ29sR3JvdXBzKTsKKworICAgICAgICBvdXQud3JpdGVJbnQocm93SW5kZXgubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG91dC53cml0ZVNob3J0KHJvd0luZGV4W2ldKTsKKworICAgICAgICBvdXQud3JpdGVJbnQocm93SW5kZXhGbGFnc0luZGV4Lmxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXhGbGFnc0luZGV4Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb3V0LndyaXRlU2hvcnQocm93SW5kZXhGbGFnc0luZGV4W2ldKTsKKyAgICAgICAgb3V0LndyaXRlSW50KHJvd0luZGV4RmxhZ3MubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleEZsYWdzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb3V0LndyaXRlSW50KHJvd0luZGV4RmxhZ3NbaV0pOworCisgICAgICAgIG91dC53cml0ZUludChyb3dJbmRleFNoaWZ0cy5sZW5ndGgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd0luZGV4U2hpZnRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb3V0LndyaXRlQnl0ZShyb3dJbmRleFNoaWZ0c1tpXSk7CisKKyAgICAgICAgb3V0LndyaXRlSW50KHRhYmxlLmxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFibGUubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvdXQud3JpdGVTaG9ydCh0YWJsZVtpXSk7CisKKyAgICAgICAgb3V0LmNsb3NlKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHByaW50TnVtYmVyKGludCB4LCBpbnQgd2lkdGgpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBTdHJpbmcudmFsdWVPZih4KTsKKyAgICAgICAgaWYgKHdpZHRoID4gcy5sZW5ndGgoKSkKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoc3BhY2VzLnN1YnN0cmluZygwLCB3aWR0aCAtIHMubGVuZ3RoKCkpKTsKKyAgICAgICAgaWYgKHggIT0gMCkKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQocyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoJy4nKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgc2hvcnQgYXQoaW50IHJvdywgY2hhciBjaCkgeworICAgICAgICBpbnQgY29sID0gY29sdW1uTWFwLmVsZW1lbnRBdChjaCk7CisgICAgICAgIHJldHVybiBhdChyb3csIGNvbCk7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHNob3J0IGF0KGludCByb3csIGludCBjb2wpIHsKKyAgICAgICAgaWYgKGNlbGxJc1BvcHVsYXRlZChyb3csIGNvbCkpCisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxBdChyb3dJbmRleFtyb3ddLCBjb2wgKyByb3dJbmRleFNoaWZ0c1tyb3ddKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNlbGxJc1BvcHVsYXRlZChpbnQgcm93LCBpbnQgY29sKSB7CisgICAgICAgIGlmIChyb3dJbmRleEZsYWdzSW5kZXhbcm93XSA8IDApCisgICAgICAgICAgICByZXR1cm4gY29sID09IC1yb3dJbmRleEZsYWdzSW5kZXhbcm93XTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgZmxhZ3MgPSByb3dJbmRleEZsYWdzW3Jvd0luZGV4RmxhZ3NJbmRleFtyb3ddICsgKGNvbCA+PiA1KV07CisgICAgICAgICAgICByZXR1cm4gKGZsYWdzICYgKDEgPDwgKGNvbCAmIDB4MWYpKSkgIT0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgc2hvcnQgaW50ZXJuYWxBdChpbnQgcm93LCBpbnQgY29sKSB7CisgICAgICAgIHJldHVybiB0YWJsZVtyb3cgKiBudW1Db2xzICsgY29sXTsKKyAgICB9CisKKyAgICBwcml2YXRlIENvbXBhY3RCeXRlQXJyYXkgY29sdW1uTWFwID0gbnVsbDsKKyAgICBwcml2YXRlIGNoYXJbXSByZXZlcnNlQ29sdW1uTWFwID0gbnVsbDsKKyAgICBwcml2YXRlIGludCBudW1Db2xzOworICAgIHByaXZhdGUgaW50IG51bUNvbEdyb3VwczsKKyAgICBwcml2YXRlIHNob3J0W10gdGFibGUgPSBudWxsOworICAgIHByaXZhdGUgc2hvcnRbXSByb3dJbmRleCA9IG51bGw7CisgICAgcHJpdmF0ZSBpbnRbXSByb3dJbmRleEZsYWdzID0gbnVsbDsKKyAgICBwcml2YXRlIHNob3J0W10gcm93SW5kZXhGbGFnc0luZGV4ID0gbnVsbDsKKyAgICBwcml2YXRlIGJ5dGVbXSByb3dJbmRleFNoaWZ0cyA9IG51bGw7CisKKyAgICBwcml2YXRlIGludCB0b3RhbFdvcmRzID0gMDsKKyAgICBwcml2YXRlIGludCB1bmlxdWVXb3JkcyA9IDA7CisgICAgcHJpdmF0ZSBpbnQgdG90YWxVbmlxdWVXb3JkQ2hhcnMgPSAwOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIHNwYWNlcyA9ICIgICAgICAiOworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvcmJiaS9Xcml0ZVRhYmxlc1RvRmlsZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9yYmJpL1dyaXRlVGFibGVzVG9GaWxlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdhNDdkYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvcmJiaS9Xcml0ZVRhYmxlc1RvRmlsZXMuamF2YQpAQCAtMCwwICsxLDUxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5yYmJpOworCitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworcHVibGljIGNsYXNzIFdyaXRlVGFibGVzVG9GaWxlcyB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgd3JpdGVCYXRjaCh0cnVlKTsKKyAgICAgICAgd3JpdGVCYXRjaChmYWxzZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB3cml0ZUJhdGNoKGJvb2xlYW4gbGl0dGxlRW5kaWFuKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBCcmVha0l0ZXJhdG9yIGJpOworICAgICAgICBTdHJpbmcgc3VmZml4ID0gKGxpdHRsZUVuZGlhbiA/ICJMRSIgOiAiQkUiKTsKKyAgICAgICAgCisgICAgICAgIGJpID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgICAoKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkKWJpKS53cml0ZVRhYmxlc1RvRmlsZShuZXcgRmlsZU91dHB1dFN0cmVhbSgKKyAgICAgICAgICAgICAgICAgICAgImNoYXIiICsgc3VmZml4ICsgIi5icmsiKSwgbGl0dGxlRW5kaWFuKTsKKyAgICAgICAgCisgICAgICAgIGJpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICAgICAgKChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCliaSkud3JpdGVUYWJsZXNUb0ZpbGUobmV3IEZpbGVPdXRwdXRTdHJlYW0oCisgICAgICAgICAgICAgICAgICAgICJ3b3JkIiArIHN1ZmZpeCArICIuYnJrIiksIGxpdHRsZUVuZGlhbik7CisgICAgICAgIAorICAgICAgICBiaSA9IEJyZWFrSXRlcmF0b3IuZ2V0TGluZUluc3RhbmNlKCk7CisgICAgICAgICgoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQpYmkpLndyaXRlVGFibGVzVG9GaWxlKG5ldyBGaWxlT3V0cHV0U3RyZWFtKAorICAgICAgICAgICAgICAgICAgICAibGluZSIgKyBzdWZmaXggKyAiLmJyayIpLCBsaXR0bGVFbmRpYW4pOworICAgICAgICAKKyAgICAgICAgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFNlbnRlbmNlSW5zdGFuY2UoKTsKKyAgICAgICAgKChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCliaSkud3JpdGVUYWJsZXNUb0ZpbGUobmV3IEZpbGVPdXRwdXRTdHJlYW0oCisgICAgICAgICAgICAgICAgICAgICJzZW50IiArIHN1ZmZpeCArICIuYnJrIiksIGxpdHRsZUVuZGlhbik7CisKKyAgICAgICAgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFRpdGxlSW5zdGFuY2UoKTsKKyAgICAgICAgKChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCliaSkud3JpdGVUYWJsZXNUb0ZpbGUobmV3IEZpbGVPdXRwdXRTdHJlYW0oCisgICAgICAgICAgICAgICAgICAgICJ0aXRsZSIgKyBzdWZmaXggKyAiLmJyayIpLCBsaXR0bGVFbmRpYW4pOworCisgICAgICAgIGphdmEudXRpbC5Mb2NhbGUgdGhhaSA9IG5ldyBqYXZhLnV0aWwuTG9jYWxlKCJ0aCIsICIiLCAiIik7CisgICAgICAgIGJpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UodGhhaSk7CisgICAgICAgICgoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQpYmkpLndyaXRlVGFibGVzVG9GaWxlKG5ldyBGaWxlT3V0cHV0U3RyZWFtKAorICAgICAgICAgICAgICAgICAgICAid29yZF90aCIgKyBzdWZmaXggKyAiLmJyayIpLCBsaXR0bGVFbmRpYW4pOworCisgICAgICAgIGJpID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UodGhhaSk7CisgICAgICAgICgoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQpYmkpLndyaXRlVGFibGVzVG9GaWxlKG5ldyBGaWxlT3V0cHV0U3RyZWFtKAorICAgICAgICAgICAgICAgICAgICAibGluZV90aCIgKyBzdWZmaXggKyAiLmJyayIpLCBsaXR0bGVFbmRpYW4pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9yYmJpL3JlYWRtZS5odG1sIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3JiYmkvcmVhZG1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY2MmE5OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9yYmJpL3JlYWRtZS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIgorIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKyAgPHRpdGxlPlJFQURNRSBGb3IgUkJCSSBUb29sczwvdGl0bGU+Cis8IS0tIENvcHlyaWdodCAoQykgMjAwMy0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICAgICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCistLT4KKzwvaGVhZD4KKzxib2R5PgorPGgzPldoYXQgQXJlIFRoZXNlIFRvb2xzPzwvaDM+CitUaGlzIGRpcmVjdG9yeSBjb250YWlucyB0d28gdG9vbHMsIFdyaXRlVGFibGVzVG9GaWxlcywgd2hpY2ggY29udmVydHMKK3RoZSBKYXZhJm5ic3A7IEJyZWFrSXRlcmF0b3JzIGludG8gLmJyayBmaWxlcyBmb3IgSUNVNEMsIGFuZAorQnVpbGREaWN0aW9uYXJ5RmlsZSwgd2hpY2ggYnVpbGRzIHRoZSBiaW5hcnkgdGhlIFRoYWkgd29yZCBicmVhaworZGljdGlvbmFyeSBmcm9tIGEgVW5pY29kZSB0ZXh0IGZpbGUgY29udGFpbmluZyBhIGxpc3Qgb2YgVGhhaSB3b3Jkcy4KK1RoZSByZXN0IG9mIHRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIGhvdyB0byB1c2UgdGhlc2UgdG9vbHMuPGJyPgorPGgzPkhvdyBUbyBCdWlsZCBUaGUgSUNVNEMgQnJlYWtJdGVyYXRvciBGaWxlczwvaDM+CitUaGUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBjb2RlIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCBmb3IgSUNVNEosIGFuZAordGhlbiBwb3J0ZWQgdG8gSUNVNEMuIEZvciB2YXJpb3VzIHJlYXNvbnMsIHRoZSBjb2RlIHdoaWNoIGNvbXBpbGVkIHRoZQorc3RhdGUgdGFibGVzIGZyb20gdGhlIHJ1bGUgdGV4dCB3YXMgaGFyZCB0byBwb3J0LiBJbnN0ZWFkIHRoZQorV3JpdGVUYWJsZXNUb0ZpbGVzIHRvb2wgd2FzIHdpcnR0ZW4gdG8gcmVhZCBpbiB0aGUgSmF2YSBkYXRhIGFuZCB3cml0ZQordGhlIC5icmsgZmlsZXMgd2hpY2ggSUNVNEMgcmVhZHMuIExhdGVyIHRoZSBSQkJJIGNvZGUgd2FzIHJlLXdyaXR0ZW4KK2ZvciBJQ1U0QywgaW5jbHVkaW5nIHRoZSBhYmlsaXR5IHRvIGNvbXBpbGUgdGhlIHN0YXRlIHRhYmxlcyBmcm9tIHJ1bGVzCitzdG9yZWQgaW4gdGV4dCBmaWxlcy4gVGhpcyBtZWFucyB0aGF0IHRoZSBXcml0ZVRhYmxlc1RvRmlsZXMgdG9vbCBpcworbm93IG9ic29sZXRlLjxicj4KKzxicj4KKzxoMz5Ib3cgVG8gQnVpbGQgVGhlIFRoYWkgV29yZCBCcmVhayBEaWN0aW9uYXJ5PC9oMz4KK1RoZSBUaGFpIHdvcmQgYmVyYWsgY29kZSB3YXMgZGV2ZWxvcGVkIG9yaWdpbmFsbHkgZm9yIElDVTRKLCBhbmQgdGhlbgorcG9ydGVkIHRvIElDVTRDIC0gdGhlIGRpY3Rpb25hcnkgYnVpbGRlciB0b29sIHdhcyBuZXZlciBwb3J0ZWQsIHNvIHlvdQoraGF2ZSB0byB1c2UgdGhlIEphdmEgdG9vbCB0byBidWlsZCB0aGUgZGljdGlvbmFyeSBmaWxlIGZvciBJQ1U0Qy4gT24KK3RoZSBvdGhlciBoYW5kLCBhbGwgb2YgdGhlIHJlc3Qgb2YgdGhlIElDVSBsb2NhbGUgZGF0YSB3YXMgZGV2ZWxvcGVkCitvcmlnaW5hbGx5IGZvcgorSUNVNEMsIGFuZCBhIHRvb2wgd2FzIHdyaXR0ZW4gdG8gY292ZXJ0IHRoZSBJQ1U0QyBsb2NhbGUgZGF0YSB0byBKYXZhCityZXNvdXJjZSBidW5kbGVzIGZvciB1c2UgYnkgSUNVNEouIENvbnNlcXVlbnRseSwgdGhlIHByb2Nlc3Mgb2YKK2J1aWxkaW5nIHRoZSBUaGFpCit3b3JkIGJyZWFrIGRpY3Rpb25hcnkgZm9yIElDVTRDIGFuZAorSUNVNEogaXMgYSBiaXQgY29udm9sdXRlZC4gSGVyZSBhcmUgdGhlIHN0ZXBzOjxicj4KKzxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+Cis8b2w+CisgIDxsaT5Eb3dubG9hZCBhbmQgYnVpbGQgYm90aCBJQ1U0QyBhbmQgSUNVNEogb24gYSA8c3BhbgorIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPkJpZyBFbmRpYW48L3NwYW4+IG1hY2hpbmUuPGJyPgorICA8L2xpPgorICA8bGk+UnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBsaW5lIHRvIGJ1aWxkIHRoZSBUaGFpIGRpY3Rpb25hcnkgZmlsZTo8YnI+CitqYXZhIC1jbGFzc3BhdGggJGljdTRqX3Jvb3QvY2xhc3NlcworY29tLmlibS5pY3UuZGV2LnRvb2wucmJiaS5CdWlsZERpY3Rpb25hcnlGaWxlCiskaWN1NGpfcm9vdC9zcmMvY29tL2libS9pY3UvZGV2L2RhdGEvdGhhaTYudWNzIFVuaWNvZGUKKyRpY3Vfcm9vdC9zb3J1Y2UvZGF0YS9icmtpdHIvdGhhaV9kaWN0LmJyazwvbGk+CisgIDxsaT5SZWJ1aWxkIHRoZSBJQ1U0QyByZXNvdXJjZXMuPC9saT4KKyAgPGxpPlJlYnVpbGQgdGhlIElDVTRKIElDVUxvY2FsZURhdGEuamFyIGZpbGUuIChTZWUgPGEKKyBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9yZWFkbWUuaHRtbCI+dGhlIElDVTRKIHJlYWRtZSBmaWxlPC9hPiBmb3IKK2luc3RydWN0aW9ucyk8L2xpPgorICA8bGk+TW92ZSBJQ1VMb2NhbGVEYXRhLmphciBmcm9tICRpY3Vfcm9vdC9zb3VyY2UvZGF0YS9sb2NhbGVzL2phdmEgdG8KKyRpY3U0al9yb290L3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGE8L2xpPgorICA8bGk+QnVpbGQgSUNVNEoncyBfcmVzb3VyY2VzIHRhcmdldCB0byB1bmphciB0aGUgbmV3IGZpbGVzLjxicj4KKyAgPC9saT4KKzwvb2w+Cis8L2Rpdj4KK0luIHRoZSBhYm92ZSwgJGljdV9yb290IGlzIHRoZSByb290IG9mIHlvdXIgSUNVNEMgc291cmNlIHRyZWUsIGZvcgorZXhhbXBsZQorIn4vZGV2L2ljdSIgYW5kICRpY3U0al9yb290IGlzIHRoZSByb290IG9mIHlvdXIgSUNVNEogc291cmNlIHRyZWUsIGZvcgorZXhhbXBsZSAifi9kZXYvaWN1NGoiLjxicj4KKzxicj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9zZXJpYWxpemFibGUvU2VyaWFsaXphYmxlQ2hlY2tlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3NlcmlhbGl6YWJsZS9TZXJpYWxpemFibGVDaGVja2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDNkNWQwMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC9zZXJpYWxpemFibGUvU2VyaWFsaXphYmxlQ2hlY2tlci5qYXZhCkBAIC0wLDAgKzEsMjA2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC5zZXJpYWxpemFibGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVSTEhhbmRsZXI7CitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3Quc2VyaWFsaXphYmxlLlNlcmlhbGl6YWJsZVRlc3Q7CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkJ5dGVBcnJheU91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS5pby5GaWxlT3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmxhbmcuQ2xhc3M7CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuRmllbGQ7CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuTW9kaWZpZXI7CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCisvKioKKyAqIFRoaXMgY2xhc3MgZXhhbWluZXMgYWxsIHRoZSBjbGFzc2VzIGluIGEgSmFyIGZpbGUgb3IgYSBkaXJlY3RvcnkKKyAqIGFuZCBsaXN0cyBhbGwgdGhvc2UgY2xhc3NlcyB0aGF0IGltcGxlbWVudCA8Y29kZT5TZXJpYWxpemFibGU8L2NvZGU+LiBJdCBhbHNvIGNoZWNrcworICogdG8gbWFrZSBzdXJlIHRoYXQgdGhvc2UgY2xhc3NlcyBoYXZlIHRoZSA8Y29kZT5zZXJpYWxWZXJzaW9uVUlEPC9jb2RlPgorICogZmllbGQgZGVmaW5lLgorICogCisgKi8KK3B1YmxpYyBjbGFzcyBTZXJpYWxpemFibGVDaGVja2VyIGltcGxlbWVudHMgVVJMSGFuZGxlci5VUkxWaXNpdG9yCit7CisgICAgcHJpdmF0ZSBzdGF0aWMgQ2xhc3Mgc2VyaWFsaXphYmxlOworICAgIC8vcHJpdmF0ZSBzdGF0aWMgQ2xhc3MgdGhyb3dhYmxlOworICAgIAorICAgIHByaXZhdGUgU3RyaW5nIHBhdGggPSBudWxsOworICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiB3cml0ZTsKKyAgICAKKyAgICBwdWJsaWMgU2VyaWFsaXphYmxlQ2hlY2tlcihTdHJpbmcgcGF0aCkKKyAgICB7CisgICAgICAgIHRoaXMucGF0aCA9IHBhdGg7CisgICAgICAgIAorICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICBGaWxlIGRpciA9IG5ldyBGaWxlKHBhdGgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIWRpci5leGlzdHMoKSkgeworICAgICAgICAgICAgICAgIGRpci5ta2RpcnMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgeworICAgICAgICB0cnkgeyAgICAKKyAgICAgICAgICAgIHNlcmlhbGl6YWJsZSA9IENsYXNzLmZvck5hbWUoImphdmEuaW8uU2VyaWFsaXphYmxlIik7CisgICAgICAgICAgICAvL3Rocm93YWJsZSAgICA9IENsYXNzLmZvck5hbWUoImphdmEubGFuZy5UaHJvd2FibGUiKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vIHdlJ3JlIGluIGRlZXAgdHJvdWJsZS4uLgorICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXb29wcyEgQ2FuJ3QgZ2V0IGNsYXNzIGluZm8gZm9yIFNlcmlhbGl6YWJsZSBhbmQgVGhyb3dhYmxlLiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCB3cml0ZUZpbGUoU3RyaW5nIGNsYXNzTmFtZSwgYnl0ZSBieXRlc1tdKQorICAgIHsKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUocGF0aCArIEZpbGUuc2VwYXJhdG9yICsgY2xhc3NOYW1lICsgIi5kYXQiKTsKKyAgICAgICAgRmlsZU91dHB1dFN0cmVhbSBzdHJlYW07CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc3RyZWFtID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN0cmVhbS53cml0ZShieXRlcyk7CisgICAgICAgICAgICBzdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAtIGNhbid0IHdyaXRlIGZpbGUhIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgdmlzaXQoU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIGludCBpeCA9IHN0ci5sYXN0SW5kZXhPZigiLmNsYXNzIik7CisgICAgICAgIAorICAgICAgICBpZiAoaXggPj0gMCkgeworICAgICAgICAgICAgU3RyaW5nIGNsYXNzTmFtZSA9ICJjb20uaWJtLmljdSIgKyBzdHIuc3Vic3RyaW5nKDAsIGl4KS5yZXBsYWNlKCcvJywgJy4nKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gU2tpcCB0aGluZ3MgaW4gY29tLmlibS5pY3UuZGV2OyB0aGV5J3JlIG5vdCByZWxldmFudC4KKyAgICAgICAgICAgIGlmIChjbGFzc05hbWUuc3RhcnRzV2l0aCgiY29tLmlibS5pY3UuZGV2LiIpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENsYXNzIGMgPSBDbGFzcy5mb3JOYW1lKGNsYXNzTmFtZSk7CisgICAgICAgICAgICAgICAgaW50ICAgbSA9IGMuZ2V0TW9kaWZpZXJzKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHNlcmlhbGl6YWJsZS5pc0Fzc2lnbmFibGVGcm9tKGMpIC8qJiYKKyAgICAgICAgICAgICAgICAgICAgKCEgdGhyb3dhYmxlLmlzQXNzaWduYWJsZUZyb20oYykgfHwgYy5nZXREZWNsYXJlZEZpZWxkcygpLmxlbmd0aCA+IDApKi8pIHsKKyAgICAgICAgICAgICAgICAgICAgRmllbGQgdWlkOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChjbGFzc05hbWUgKyAiICgiICsgTW9kaWZpZXIudG9TdHJpbmcobSkgKyAiKSAtICIpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpZCA9IGMuZ2V0RGVjbGFyZWRGaWVsZCgic2VyaWFsVmVyc2lvblVJRCIpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgibm8gc2VyaWFsVmVyc2lvblVJRCAtICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoTW9kaWZpZXIuaXNQdWJsaWMobSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFNlcmlhbGl6YWJsZVRlc3QuSGFuZGxlciBoYW5kbGVyID0gU2VyaWFsaXphYmxlVGVzdC5nZXRIYW5kbGVyKGNsYXNzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYW5kbGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qgb2JqZWN0c091dFtdID0gaGFuZGxlci5nZXRUZXN0T2JqZWN0cygpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBvYmplY3RzSW5bXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHBhc3NlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIGJ5dGVPdXQgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG91dCA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYnl0ZU91dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LndyaXRlT2JqZWN0KG9iamVjdHNPdXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZU91dC5jbG9zZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcm9yIHdyaXRpbmcgdGVzdCBvYmplY3RzOiIgKyBlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXRoICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKGNsYXNzTmFtZSwgYnl0ZU91dC50b0J5dGVBcnJheSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZUFycmF5SW5wdXRTdHJlYW0gYnl0ZUluID0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGJ5dGVPdXQudG9CeXRlQXJyYXkoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gaW4gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oYnl0ZUluKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RzSW4gPSAoT2JqZWN0W10pIGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4uY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZUluLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciByZWFkaW5nIHRlc3Qgb2JqZWN0czoiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBvYmplY3RzSW4ubGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEgaGFuZGxlci5oYXNTYW1lQmVoYXZpb3Iob2JqZWN0c0luW2ldLCBvYmplY3RzT3V0W2ldKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk9iamVjdCAiICsgaSArICIgZmFpbGVkIGJlaGF2aW9yIHRlc3QuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhc3NlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJ0ZXN0IHBhc3NlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0J3MgT0sgdG8gbm90IGhhdmUgdGVzdHMgZm9yIGFic3RyYWN0IGNsYXNzZXMuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISBNb2RpZmllci5pc0Fic3RyYWN0KG0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIm5vIHRlc3QuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciBwcm9jZXNzaW5nICIgKyBjbGFzc05hbWUgKyAiOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLm5ldC5NYWxmb3JtZWRVUkxFeGNlcHRpb24KKyAgICB7CisgICAgICAgIExpc3QgYXJnTGlzdCA9IEFycmF5cy5hc0xpc3QoYXJncyk7CisgICAgICAgIFN0cmluZyBwYXRoID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBhcmdMaXN0Lml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTsgLyphbnl0aGluZz8qLykgeworICAgICAgICAgICAgU3RyaW5nIGFyZyA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGFyZy5lcXVhbHMoIi13IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHBhdGggPSAoU3RyaW5nKSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJNaXNzaW5nIGRpcmVjdG9yeSBuYW1lIG9uIC13IGNvbW1hbmQuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAKKyAgICAKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAvL1VSTCBqYXJVUkwgID0gbmV3IFVSTCgiamFyOmZpbGU6L2Rldi9lY2xpcHNlL3dvcmtzcGFjZS9pY3U0ai9pY3U0ai5qYXIhL2NvbS9pYm0vaWN1Iik7CisgICAgICAgICAgICAgICAgICAgIC8vVVJMIGZpbGVVUkwgPSBuZXcgVVJMKCJmaWxlOi9kZXYvZWNsaXBzZS93b3Jrc3BhY2UvaWN1NGovY2xhc3Nlcy9jb20vaWJtL2ljdSIpOworICAgICAgICAgICAgICAgICAgICBVUkwgdXJsID0gbmV3IFVSTChhcmcpOworICAgICAgICAgICAgICAgICAgICBVUkxIYW5kbGVyIGhhbmRsZXIgID0gVVJMSGFuZGxlci5nZXQodXJsKTsKKyAgICAgICAgICAgICAgICAgICAgU2VyaWFsaXphYmxlQ2hlY2tlciBjaGVja2VyID0gbmV3IFNlcmlhbGl6YWJsZUNoZWNrZXIocGF0aCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNoZWNraW5nIGNsYXNzZXMgZnJvbSAiICsgYXJnICsgIjoiKTsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlci5ndWlkZShjaGVja2VyLCB0cnVlLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciBwcm9jZXNzaW5nIFVSTCBcIiIgKyBhcmcgKyAiXCIgLSAiICsgZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90aW1lc2NhbGUvQ2FsY3VsYXRlTGltaXRzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdGltZXNjYWxlL0NhbGN1bGF0ZUxpbWl0cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0NGIwMzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdGltZXNjYWxlL0NhbGN1bGF0ZUxpbWl0cy5qYXZhCkBAIC0wLDAgKzEsMTE1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC50aW1lc2NhbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTWVzc2FnZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVuaXZlcnNhbFRpbWVTY2FsZTsKKworLyoqCisgKiBUaGlzIGNsYXNzIGNhbGN1bGF0ZXMgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWVzIHdoaWNoIGNhbiBiZQorICogdXNlZCBhcyBhcmd1bWVudHMgdG8gPGNvZGU+dG9Mb25nPC9jb2RlPiBhbmQgPGNvZGU+ZnJvbTwvY29kZT4uCisgKiAKKyAqIE5PVEU6IElmIHlvdSBjaGFuZ2UgdGhlIHdheSBpbiB3aGljaCB0aGVzZSB2YWx1ZXMgYXJlIGNhbGN1bGF0ZWQsIGl0CisgKiBtYXkgYmUgbmVjZXNzYXJ5IHRvIGRpc2FibGUgdG8gPGNvZGU+dG9SYW5nZUNoZWNrKCk8L2NvZGU+IGFuZAorICogPGNvZGU+ZnJvbVJhbmdlQ2hlY2soKTwvY29kZT4gbWV0aG9kcyBpbiB0aGUgPGNvZGU+VW5pdmVyc2FsVGltZVNjYWxlPC9jb2RlPgorICogZm9yIGFsbCBvZiB0aGUgY2FsY3VsYXRpb25zIHRvIHJ1biB3aXRob3V0IHRocm93aW5nIGFuIGVycm9yLgorICogCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVW5pdmVyc2FsVGltZVNjYWxlCisgKiAKKyAqIEBkcmFmdCBJQ1UgMy4yCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxjdWxhdGVMaW1pdHMgeworCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FsY3VsYXRlTGltaXRzKCkKKyAgICB7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgZmlyc3QgY2FsY3VsYXRlcyB0aGUgPGNvZGU+ZnJvbTwvY29kZT4gbGltaXRzIGJ5CisgICAgICogcGFzc2luZyA8Y29kZT5Mb25nLk1JTl9WQUxVRTwvY29kZT4gYW5kIDxjb2RlPkxvbmcuTUFYX1ZBTFVFPC9jb2RlPiB0bworICAgICAqIHRoZSAoaW50ZXJuYWwpIDxjb2RlPnRvQmlnRGVjaW1hbFRydW5jKCk8L2NvZGU+IG1ldGhvZC4gQW55IHZhbHVlcyBvdXRzaWRlCisgICAgICogb2YgdGhlIHJhbmdlIG9mIGEgPGNvZGU+bG9uZzwvY29kZT4gYXJlIHBpbm5lZC4KKyAgICAgKiAKKyAgICAgKiBUaGUgbWltaW11bSBhbmQgbWF4aW11bSB2YWx1ZXMgZm9yIDxjb2RlPnRvTG9uZzwvY29kZT4gYXJlIGNhbHVsYXRlZCBieSBwYXNzaW5nCisgICAgICogdGhlIG1pbiBhbmQgbWF4IHZhbHVlcyBjYWxjdWxhdGVkIGFib3ZlIHRvIDxjb2RlPkJpZ0RlY2ltYWxGcm9tKCk8L2NvZGU+LiBCZWNhdXNlCisgICAgICogdGhpcyBtZXRob2Qgd2lsbCByb3VuZCwgdGhlIHJldHVybmVkIHZhbHVlcyBhcmUgYWRqdXN0ZWQgdG8gdGFrZSB0aGlzIGludG8gYWNjb3VudC4KKyAgICAgKiAKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVW5pdmVyc2FsVGltZVNjYWxlCisgICAgICogCisgICAgICogQHBhcmFtIGFyZ3MgLSB0aGUgY29tbWFuZCBsaW5lIGFydWdtZW50cworICAgICAqIAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIFRpbWVab25lIHV0YyA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIik7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHV0YywgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBNZXNzYWdlRm9ybWF0IGZtdCA9IG5ldyBNZXNzYWdlRm9ybWF0KCJ7MH1MLCB7MX1MLCB7Mn1MLCB7M31MIik7ICAgICAgICAKKyAgICAgICAgQmlnRGVjaW1hbCB1bml2ZXJzYWxNaW4gPSBuZXcgQmlnRGVjaW1hbChMb25nLk1JTl9WQUxVRSk7CisgICAgICAgIEJpZ0RlY2ltYWwgdW5pdmVyc2FsTWF4ID0gbmV3IEJpZ0RlY2ltYWwoTG9uZy5NQVhfVkFMVUUpOworICAgICAgICBPYmplY3QgbGltaXRBcmdzW10gPSB7bnVsbCwgbnVsbCwgbnVsbCwgbnVsbH07CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuVG8sIEZyb20gbGltaXRzOiIpOworICAgICAgICAKKyAgICAgICAgLy8gZnJvbSBsaW1pdHMKKyAgICAgICAgZm9yKGludCBzY2FsZSA9IDA7IHNjYWxlIDwgVW5pdmVyc2FsVGltZVNjYWxlLk1BWF9TQ0FMRTsgc2NhbGUgKz0gMSkgeworICAgICAgICAgICAgQmlnRGVjaW1hbCBtaW4gPSBVbml2ZXJzYWxUaW1lU2NhbGUudG9CaWdEZWNpbWFsVHJ1bmModW5pdmVyc2FsTWluLCBzY2FsZSkubWF4KHVuaXZlcnNhbE1pbik7CisgICAgICAgICAgICBCaWdEZWNpbWFsIG1heCA9IFVuaXZlcnNhbFRpbWVTY2FsZS50b0JpZ0RlY2ltYWxUcnVuYyh1bml2ZXJzYWxNYXgsIHNjYWxlKS5taW4odW5pdmVyc2FsTWF4KTsKKyAgICAgICAgICAgIGxvbmcgbWluTG9uZyAgID0gbWluLmxvbmdWYWx1ZSgpOworICAgICAgICAgICAgbG9uZyBtYXhMb25nICAgPSBtYXgubG9uZ1ZhbHVlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxpbWl0QXJnc1syXSA9IG1pbi50b1N0cmluZygpOworICAgICAgICAgICAgbGltaXRBcmdzWzNdID0gbWF4LnRvU3RyaW5nKCk7CisKKyAgICAgICAgICAgIC8vIHRvIGxpbWl0cworICAgICAgICAgICAgQmlnRGVjaW1hbCBtaW5UcnVuYyAgID0gVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tKG1pbiwgc2NhbGUpOworICAgICAgICAgICAgQmlnRGVjaW1hbCBtYXhUcnVuYyAgID0gVW5pdmVyc2FsVGltZVNjYWxlLmJpZ0RlY2ltYWxGcm9tKG1heCwgc2NhbGUpOworICAgICAgICAgICAgQmlnRGVjaW1hbCBtaW5SZXNpZHVlID0gbWluVHJ1bmMuc3VidHJhY3QodW5pdmVyc2FsTWluKTsKKyAgICAgICAgICAgIEJpZ0RlY2ltYWwgbWF4UmVzaWR1ZSA9IHVuaXZlcnNhbE1heC5zdWJ0cmFjdChtYXhUcnVuYyk7CisgICAgICAgICAgICBsb25nIHVuaXRzICAgICAgICAgICAgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5VTklUU19WQUxVRSk7CisgICAgICAgICAgICBCaWdEZWNpbWFsIGhhbGYgICAgICAgPSBuZXcgQmlnRGVjaW1hbCh1bml0cyA9PSAxPyAwOiB1bml0cyAvIDIgLSAxKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbWluID0gbWluVHJ1bmMuc3VidHJhY3QobWluUmVzaWR1ZS5taW4oaGFsZikpOworICAgICAgICAgICAgbWF4ID0gbWF4VHJ1bmMuYWRkKG1heFJlc2lkdWUubWluKGhhbGYpKTsKKyAgICAgICAgICAgIGxpbWl0QXJnc1swXSA9IG1pbi50b1N0cmluZygpOworICAgICAgICAgICAgbGltaXRBcmdzWzFdID0gbWF4LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmbXQuZm9ybWF0KGxpbWl0QXJncykpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyByb3VuZC10cmlwIHRlc3QgdGhlIGZyb20gbGltaXRzCisgICAgICAgICAgICBpZihVbml2ZXJzYWxUaW1lU2NhbGUudG9Mb25nKFVuaXZlcnNhbFRpbWVTY2FsZS5mcm9tKG1pbkxvbmcsIHNjYWxlKSwgc2NhbGUpICE9IG1pbkxvbmcpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk9PUFM6IG1pbiBkaWRuJ3Qgcm91bmQgdHJpcCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoVW5pdmVyc2FsVGltZVNjYWxlLnRvTG9uZyhVbml2ZXJzYWxUaW1lU2NhbGUuZnJvbShtYXhMb25nLCBzY2FsZSksIHNjYWxlKSAhPSBtYXhMb25nKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJPT1BTOiBtYXggZGlkbid0IHJvdW5kIHRyaXAhIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSB0byBsaW1pdHMgY29udmVydCB0byB0aGUgZnJvbSBsaW1pdHMKKyAgICAgICAgICAgIGlmKFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcobWluLmxvbmdWYWx1ZSgpLCBzY2FsZSkgIT0gbWluTG9uZykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiT09QUzogdG9Mb25nKHRvTWluKSAhPSBmcm9tTWluIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKFVuaXZlcnNhbFRpbWVTY2FsZS50b0xvbmcobWF4LmxvbmdWYWx1ZSgpLCBzY2FsZSkgIT0gbWF4TG9uZykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiT09QUzogdG9Mb25nKHRvTWF4KSAhPSBmcm9tTWF4Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdGltZXNjYWxlL0Vwb2NoT2Zmc2V0cy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RpbWVzY2FsZS9FcG9jaE9mZnNldHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzNmMjBmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RpbWVzY2FsZS9FcG9jaE9mZnNldHMuamF2YQpAQCAtMCwwICsxLDk1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC50aW1lc2NhbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworCisvKioKKyAqIFRoaXMgdG9vbCBjYWx1Y2xhdGVzIHRoZSBudW1lcmljIHZhbHVlcyBvZiB0aGUgZXBvY2ggb2Zmc2V0cworICogdXNlZCBpbiBVbml2ZXJzYWxUaW1lU2NhbGUuCisgKiAKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5Vbml2ZXJzYWxUaW1lU2NhbGUKKyAqIAorICpAZHJhZnQgSUNVIDMuMiAKKyAqLworcHVibGljIGNsYXNzIEVwb2NoT2Zmc2V0cworeworCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgRXBvY2hPZmZzZXRzKCkKKyAgICB7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyB0aWNrcyAgICAgICAgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbWljcm9zZWNvbmRzID0gdGlja3MgKiAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIG1pbGxpc2Vjb25kcyA9IG1pY3Jvc2Vjb25kcyAqIDEwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZWNvbmRzICAgICAgPSBtaWxsaXNlY29uZHMgKiAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbWludXRlcyAgICAgID0gc2Vjb25kcyAqIDYwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgaG91cnMgICAgICAgID0gbWludXRlcyAqIDYwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgZGF5cyAgICAgICAgID0gaG91cnMgKiAyNDsKKworICAgIHByaXZhdGUgc3RhdGljIGludFtdW10gZXBvY2hEYXRlcyA9IHsKKyAgICAgICAgICAgIHsgICAxLCBDYWxlbmRhci5KQU5VQVJZLCAgIDF9LAorICAgICAgICAgICAgezE5NzAsIENhbGVuZGFyLkpBTlVBUlksICAgMX0sCisgICAgICAgICAgICB7MTYwMSwgQ2FsZW5kYXIuSkFOVUFSWSwgICAxfSwKKyAgICAgICAgICAgIHsxOTA0LCBDYWxlbmRhci5KQU5VQVJZLCAgIDF9LAorICAgICAgICAgICAgezIwMDEsIENhbGVuZGFyLkpBTlVBUlksICAgMX0sCisgICAgICAgICAgICB7MTg5OSwgQ2FsZW5kYXIuREVDRU1CRVIsIDMxfSwKKyAgICAgICAgICAgIHsxOTAwLCBDYWxlbmRhci5NQVJDSCwgICAgIDF9CisgICAgfTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgPGNvZGU+bWFpbigpPC9jb2RlPiBtZXRob2QgY2FsY3VsYXRlcyB0aGUgZXBvY2ggb2Zmc2V0cyB1c2VkIGJ5IHRoZQorICAgICAqIDxjb2RlPlVuaXZlcnNhbFRpbWVTY2FsZTwvY29kZT4gY2xhc3MuCisgICAgICogCisgICAgICogVGhlIGNhbGN1bGF0aW9ucyBhcmUgZG9uZSB1c2luZyBhbiBJQ1UgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IG9iamVjdC4gVGhlIGZpcnN0IHN0ZXAgaXMKKyAgICAgKiB0byBjYWxjdWxhdGUgdGhlIFVuaXZlcnNhbCBUaW1lIFNjYWxlJ3MgZXBvY2ggZGF0ZS4gVGhlbiB0aGUgZXBvY2ggb2Zmc2V0cyBhcmUgY2FsY3VsYXRlZAorICAgICAqIGJ5IGNhbGN1bGF0aW5nIGVhY2ggZXBvY2ggZGF0ZSwgc3VidHJhY3RpbmcgdGhlIHVuaXZlcnNhbCBlcG9jaCBkYXRlIGZyb20gaXQsIGFuZCBjb252ZXJ0aW5nCisgICAgICogdGhhdCB2YWx1ZSB0byB0aWNrcy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gYXJncyAtIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgorICAgICAqIAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgICB7CisgICAgICAgIFRpbWVab25lIHV0YyA9IG5ldyBTaW1wbGVUaW1lWm9uZSgwLCAiVVRDIik7CisgICAgICAgIENhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKHV0YywgTG9jYWxlLkVOR0xJU0gpOworICAgICAgICBNZXNzYWdlRm9ybWF0IGZtdCA9IG5ldyBNZXNzYWdlRm9ybWF0KCJ7MCwgZGF0ZSwgZnVsbH0gezAsIHRpbWUsIGZ1bGx9ID0gezF9Iik7CisgICAgICAgIE9iamVjdCBhcmd1bWVudHNbXSA9IHtjYWwsIG51bGx9OworICAgICAgICAKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcG9jaCBvZmZzZXRzOiIpOworICAgICAgICAKKyAgICAgICAgLy8gSmFudWFyeSAxLCAwMDAxIDAwOjAwOjAwIGlzIHRoZSB1bml2ZXJzYWwgZXBvY2ggZGF0ZS4uLgorICAgICAgICBjYWwuc2V0KDEsIENhbGVuZGFyLkpBTlVBUlksIDEsIDAsIDAsIDApOworICAgICAgICAKKyAgICAgICAgbG9uZyB1bml2ZXJzYWxFcG9jaCA9IGNhbC5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZXBvY2hEYXRlcy5sZW5ndGg7IGkgKz0gMSkgeworICAgICAgICAgICAgaW50W10gZGF0ZSA9IGVwb2NoRGF0ZXNbaV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhbC5zZXQoZGF0ZVswXSwgZGF0ZVsxXSwgZGF0ZVsyXSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvbmcgbWlsbGlzID0gY2FsLmdldFRpbWVJbk1pbGxpcygpOworICAgICAgICAgICAgCisgICAgICAgICAgICBhcmd1bWVudHNbMV0gPSBMb25nLnRvU3RyaW5nKChtaWxsaXMgLSB1bml2ZXJzYWxFcG9jaCkgKiBtaWxsaXNlY29uZHMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZm10LmZvcm1hdChhcmd1bWVudHMpKTsKKyAgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdGltZXNjYWxlL0dlbmVyYXRlQ1RpbWVTY2FsZURhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90aW1lc2NhbGUvR2VuZXJhdGVDVGltZVNjYWxlRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhYTViOWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdGltZXNjYWxlL0dlbmVyYXRlQ1RpbWVTY2FsZURhdGEuamF2YQpAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wudGltZXNjYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVW5pdmVyc2FsVGltZVNjYWxlOworCisvKioKKyAqIFRoaXMgY2xhc3MgcHJpbnRzIG91dCB0aGUgaW5pdGlhbGl6ZXJzIG5lZWRlZCB0byBpbml0aWFsaXplCisgKiB0aGUgdGltZSBzY2FsZSBkYXRhIGluIHRoZSBDIHZlcnNpb24gb2YgPGNvZGU+VW5pdmVyc2FsVGltZVNjYWxlPC9jb2RlPi4KKyAqIAorICogSXQganVzdCBjYWxscyA8Y29kZT5nZXRUaW1lU2NhbGVWYWx1ZSgpPC9jb2RlPiBmb3IgYWxsIGZpZWxkcyBhbmQgcHJpbnRzCisgKiB0aGUgaW5pdGlhbGl6ZXJzLiBCZWNhdXNlIHNvbWUgQyBjb21waWxlcnMgY2FuJ3QgY29tcGlsZSBhIGxpdGVyYWwgY29uc3RhbnQgZm9yCisgKiB0aGUgbWluaW11bSBhbmQgLyBvciBtYXhpbXVtIHZhbHVlcyBvZiBhbiA8Y29kZT5pbnQ2NF90PC9jb2RlPiwgdGhpcyBjb2RlIHdpbGwKKyAqIHByaW50IDxjb2RlPlVfSU5UNjRfTUlOPC9jb2RlPiBvciA8Y29kZT5VX0lOVDY0X01BWDwvY29kZT4gZm9yIHRoZXNlIHZhbHVlcy4KKyAqIAorICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVuaXZlcnNhbFRpbWVTY2FsZQorICogCisgKiBAZHJhZnQgSUNVIDMuMgorICovCitwdWJsaWMgY2xhc3MgR2VuZXJhdGVDVGltZVNjYWxlRGF0YQoreworCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgR2VuZXJhdGVDVGltZVNjYWxlRGF0YSgpCisgICAgeworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgdGlja3MgICAgICAgID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIG1pY3Jvc2Vjb25kcyA9IHRpY2tzICogMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBtaWxsaXNlY29uZHMgPSBtaWNyb3NlY29uZHMgKiAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2Vjb25kcyAgICAgID0gbWlsbGlzZWNvbmRzICogMTAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIG1pbnV0ZXMgICAgICA9IHNlY29uZHMgKiA2MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGhvdXJzICAgICAgICA9IG1pbnV0ZXMgKiA2MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGRheXMgICAgICAgICA9IGhvdXJzICogMjQ7CisKKyAgICAvKgorICAgICAqIFJldHVybnMgPGNvZGU+U3RyaW5nPC9jb2RlPiB0aGF0IGlzIGEgbGl0ZXJhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gdmFsdWUuCisgICAgICogVGhpcyB3aWxsIGVpdGhlciBiZSBhIGNhbGwgdG8gdGhlIDxjb2RlPklOVDY0X0MoKTwvY29kZT4gbWFjcm8sIG9yIHRoZSBjb25zdGFudAorICAgICAqIDxjb2RlPlVfSU5UNjRfTUlOPC9jb2RlPiBvciA8VV9JTlQ2NF9NQVg+LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBtaW5NYXhGaWx0ZXIobG9uZyB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWx1ZSA9PSBMb25nLk1JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuICJVX0lOVDY0X01JTiI7CisgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT0gTG9uZy5NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiAiVV9JTlQ2NF9NQVgiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gIklOVDY0X0MoIiArIExvbmcudG9TdHJpbmcodmFsdWUpICsgIikiOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBwcmludHMgdGhlIEMgaW5pdGlhbGl6ZXJzIGZvciB0aGUgdGltZSBzY2FsZSBkYXRhLgorICAgICAqIAorICAgICAqIEBwYXJhbSBhcmdzIC0gdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKKyAgICAgKiAKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVW5pdmVyc2FsVGltZVNjYWxlCisgICAgICogCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQorICAgIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBmbXQgPSBuZXcgTWVzc2FnZUZvcm1hdCgiJ3snezB9LCB7MX0sIHsyfSwgezN9LCB7NH0sIHs1fSwgezZ9LCB7N30sIHs4fSwgezl9LCB7MTB9fSwiKTsKKyAgICAgICAgT2JqZWN0IGNhcmdzW10gPSB7bnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbH07CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuQyBkYXRhOiIpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgc2NhbGUgPSAwOyBzY2FsZSA8IFVuaXZlcnNhbFRpbWVTY2FsZS5NQVhfU0NBTEU7IHNjYWxlICs9IDEpIHsKKyAgICAgICAgICAgIGxvbmcgdW5pdHMgPSBVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5VTklUU19WQUxVRSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh1bml0cyA9PSB0aWNrcykgeworICAgICAgICAgICAgICAgIGNhcmdzWzBdID0gInRpY2tzIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodW5pdHMgPT0gbWljcm9zZWNvbmRzKSB7CisgICAgICAgICAgICAgICAgY2FyZ3NbMF0gPSAibWljcm9zZWNvbmRzIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodW5pdHMgPT0gbWlsbGlzZWNvbmRzKSB7CisgICAgICAgICAgICAgICAgY2FyZ3NbMF0gPSAibWlsbGlzZWNvbmRzIjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodW5pdHMgPT0gc2Vjb25kcykgeworICAgICAgICAgICAgICAgIGNhcmdzWzBdID0gInNlY29uZHMiOworICAgICAgICAgICAgfSBlbHNlIGlmICh1bml0cyA9PSBtaW51dGVzKSB7CisgICAgICAgICAgICAgICAgY2FyZ3NbMF0gPSAibWludXRlcyI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHVuaXRzID09IGhvdXJzKSB7CisgICAgICAgICAgICAgICAgY2FyZ3NbMF0gPSAiaG91cnMiOworICAgICAgICAgICAgfSBlbHNlIGlmICh1bml0cyA9PSBkYXlzKSB7CisgICAgICAgICAgICAgICAgY2FyZ3NbMF0gPSAiZGF5cyI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNhcmdzWzBdID0gIklOVDY0X0MoIiArIExvbmcudG9TdHJpbmcodW5pdHMpICsgIikiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBjYXJnc1sxXSAgPSBtaW5NYXhGaWx0ZXIoVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRVBPQ0hfT0ZGU0VUX1ZBTFVFKSk7CisgICAgICAgICAgICBjYXJnc1syXSAgPSBtaW5NYXhGaWx0ZXIoVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuRlJPTV9NSU5fVkFMVUUpKTsKKyAgICAgICAgICAgIGNhcmdzWzNdICA9IG1pbk1heEZpbHRlcihVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5GUk9NX01BWF9WQUxVRSkpOworICAgICAgICAgICAgY2FyZ3NbNF0gID0gbWluTWF4RmlsdGVyKFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlRPX01JTl9WQUxVRSkpOworICAgICAgICAgICAgY2FyZ3NbNV0gID0gbWluTWF4RmlsdGVyKFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlRPX01BWF9WQUxVRSkpOworICAgICAgICAgICAgY2FyZ3NbNl0gID0gbWluTWF4RmlsdGVyKFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLkVQT0NIX09GRlNFVF9QTFVTXzFfVkFMVUUpKTsKKyAgICAgICAgICAgIGNhcmdzWzddICA9IG1pbk1heEZpbHRlcihVbml2ZXJzYWxUaW1lU2NhbGUuZ2V0VGltZVNjYWxlVmFsdWUoc2NhbGUsIFVuaXZlcnNhbFRpbWVTY2FsZS5FUE9DSF9PRkZTRVRfTUlOVVNfMV9WQUxVRSkpOworICAgICAgICAgICAgY2FyZ3NbOF0gID0gbWluTWF4RmlsdGVyKFVuaXZlcnNhbFRpbWVTY2FsZS5nZXRUaW1lU2NhbGVWYWx1ZShzY2FsZSwgVW5pdmVyc2FsVGltZVNjYWxlLlVOSVRTX1JPVU5EX1ZBTFVFKSk7CisgICAgICAgICAgICBjYXJnc1s5XSAgPSBtaW5NYXhGaWx0ZXIoVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUlOX1JPVU5EX1ZBTFVFKSk7CisgICAgICAgICAgICBjYXJnc1sxMF0gPSBtaW5NYXhGaWx0ZXIoVW5pdmVyc2FsVGltZVNjYWxlLmdldFRpbWVTY2FsZVZhbHVlKHNjYWxlLCBVbml2ZXJzYWxUaW1lU2NhbGUuTUFYX1JPVU5EX1ZBTFVFKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmbXQuZm9ybWF0KGNhcmdzKSk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvU291cmNlU2V0LmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvU291cmNlU2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTczZTk4OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Tb3VyY2VTZXQuamF2YQpAQCAtMCwwICsxLDEwOSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDExLzI5LzIwMDEgIGFsaXUgICAgICAgIENyZWF0aW9uLgorKiAgIDA2LzI2LzIwMDIgIGFsaXUgICAgICAgIE1vdmVkIHRvIGNvbS5pYm0uaWN1LmRldi50b29sLnRyYW5zbGl0CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdDsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdC5Vbmljb2RlU2V0Q2xvc3VyZTsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCisvKioKKyAqIENsYXNzIHRoYXQgZ2VuZXJhdGVzIHNvdXJjZSBzZXQgaW5mb3JtYXRpb24gZm9yIGEgdHJhbnNsaXRlcmF0b3IuCisgKiAKKyAqIFRvIHJ1biwgdXNlOgorICogCisgKiAgIGphdmEgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQuU291cmNlU2V0IExhdGluLUthdGFrYW5hIE5GRCBsb3dlcgorICogCisgKiBPdXRwdXQgaXMgcHJvZHVjZWQgaW4gdGhlIGNvbW1hbmQgY29uc29sZSwgYW5kIGEgZmlsZSB3aXRoIG1vcmUgZGV0YWlsIGlzIGFsc28gd3JpdHRlbi4KKyAqIAorICogVG8gc2VlIGlmIGl0IHdvcmtzLCB1c2U6CisgKiAKKyAqICAgamF2YSBjb20uaWJtLmljdS5kZXYudGVzdC50cmFuc2xpdC5UcmFuc2xpdGVyYXRvclRlc3QgLXYgLW5vdGhyb3cgVGVzdEluY3JlbWVudGFsUHJvZ3Jlc3MKKyAqIAorICogYW5kCisgKiAgCisgKiAgIGphdmEgY29tLmlibS5pY3UuZGV2LmRlbW8udHJhbnNsaXQuRGVtbworICovCitwdWJsaWMgY2xhc3MgU291cmNlU2V0IHsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAvLyBDb21wdXRlIGFuZCBkaXNwbGF5IHRoZSBzb3VyY2Ugc2V0cyBmb3IgYWxsIHN5c3RlbQorICAgICAgICAgICAgLy8gdHJhbnNsaXRlcmF0b3JzLgorICAgICAgICAgICAgZm9yIChFbnVtZXJhdGlvbiBlID0gVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlSURzKCk7IGUuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgICAgIFN0cmluZyBJRCA9IChTdHJpbmcpIGUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBzaG93U291cmNlU2V0KElELCBOb3JtYWxpemVyLk5PTkUsIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFVzYWdlOiBJRCBbTkZLRCB8IE5GRF0gW2xvd2VyXQorICAgICAgICAgICAgTm9ybWFsaXplci5Nb2RlIG0gPSBOb3JtYWxpemVyLk5PTkU7CisgICAgICAgICAgICBib29sZWFuIGxvd2VyRmlyc3QgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+PSAyKSB7CisgICAgICAgICAgICAgICAgaWYgKGFyZ3NbMV0uZXF1YWxzSWdub3JlQ2FzZSgiTkZEIikpIHsKKyAgICAgICAgICAgICAgICAgICAgbSA9IE5vcm1hbGl6ZXIuTkZEOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1sxXS5lcXVhbHNJZ25vcmVDYXNlKCJORktEIikpIHsKKyAgICAgICAgICAgICAgICAgICAgbSA9IE5vcm1hbGl6ZXIuTkZLRDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+PSAzKSB7CisgICAgICAgICAgICAgICAgaWYgKGFyZ3NbMl0uZXF1YWxzSWdub3JlQ2FzZSgibG93ZXIiKSkgeworICAgICAgICAgICAgICAgICAgICBsb3dlckZpcnN0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+IDMpIHsKKyAgICAgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2hvd1NvdXJjZVNldChhcmdzWzBdLCBtLCBsb3dlckZpcnN0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHNob3dTb3VyY2VTZXQoU3RyaW5nIElELCBOb3JtYWxpemVyLk1vZGUgbSwgYm9vbGVhbiBsb3dlckZpcnN0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZSgiVW5pY29kZVNldENsb3N1cmUudHh0Iik7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IGYuZ2V0Q2Fub25pY2FsRmlsZSgpLnRvU3RyaW5nKCk7CisgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcigKKyAgICAgICAgICAgIG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoCisgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZW5hbWUpLCAiVVRGLTgiKSk7CisgICAgICAgIG91dC5wcmludCgnXHVGRUZGJyk7IC8vIEJPTQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nICIgKyBmaWxlbmFtZSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgIHNob3dTb3VyY2VTZXRBdXgodCwgbSwgbG93ZXJGaXJzdCwgdHJ1ZSk7CisgICAgICAgIHNob3dTb3VyY2VTZXRBdXgodC5nZXRJbnZlcnNlKCksIG0sIGxvd2VyRmlyc3QsIGZhbHNlKTsKKyAgICAgICAgb3V0LmNsb3NlKCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBQcmludFdyaXRlciBvdXQ7CisgICAgCisgICAgc3RhdGljIHZvaWQgc2hvd1NvdXJjZVNldEF1eChUcmFuc2xpdGVyYXRvciB0LCBOb3JtYWxpemVyLk1vZGUgbSwgYm9vbGVhbiBsb3dlckZpcnN0LCBib29sZWFuIGZvcndhcmQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFVuaWNvZGVTZXQgc291cmNlU2V0ID0gdC5nZXRTb3VyY2VTZXQoKTsKKyAgICAgICAgaWYgKG0gIT0gTm9ybWFsaXplci5OT05FIHx8IGxvd2VyRmlyc3QpIHsKKyAgICAgICAgICAgIFVuaWNvZGVTZXRDbG9zdXJlLmNsb3NlKHNvdXJjZVNldCwgbSwgbG93ZXJGaXJzdCk7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHQuZ2V0SUQoKSArICI6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlU2V0LnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIG91dC5wcmludGxuKCIjIE1JTklNQUwgRklMVEVSIEdFTkVSQVRFRCBGT1I6ICIgKyB0LmdldElEKCkgKyAoZm9yd2FyZCA/ICIiIDogIiBSRVZFUlNFIikpOworICAgICAgICBvdXQucHJpbnRsbigiOjogIiAKKyAgICAgICAgICAgICsgKGZvcndhcmQgPyAiIiA6ICIoICIpIAorICAgICAgICAgICAgKyBzb3VyY2VTZXQudG9QYXR0ZXJuKHRydWUpIAorICAgICAgICAgICAgKyAoZm9yd2FyZCA/ICIiIDogIiApIikKKyAgICAgICAgICAgICsgIiA7Iik7CisgICAgICAgIG91dC5wcmludGxuKCIjIFVuaWNvZGU6ICIgKyBzb3VyY2VTZXQudG9QYXR0ZXJuKGZhbHNlKSk7CisgICAgICAgIG91dC5wcmludGxuKCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgdXNhZ2UoKSB7CisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVXNhZ2U6IElEIFsgTkZEfE5GS0QgW2xvd2VyXSBdIik7CisgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9UcmFucy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L1RyYW5zLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDRkNDNkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9UcmFucy5qYXZhCkBAIC0wLDAgKzEsMTQwIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEEgY29tbWFuZC1saW5lIGludGVyZmFjZSB0byB0aGUgSUNVNEogdHJhbnNsaXRlcmF0b3JzLgorICogQGF1dGhvciBBbGFuIExpdQorICovCitwdWJsaWMgY2xhc3MgVHJhbnMgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGJvb2xlYW4gaXNIVE1MID0gZmFsc2U7CisgICAgICAgIGludCBwb3MgPSAwOworCisgICAgICAgIFN0cmluZyB0cmFuc05hbWUgPSBudWxsOyAvLyBmaXJzdCB1bnRhZ2dlZCBzdHJpbmcgaXMgdGhpcworICAgICAgICBTdHJpbmcgaW5UZXh0ID0gbnVsbDsgLy8gYWxsIG90aGVyIHVudGFnZ2VkIHN0cmluZ3MgYXJlIHRoaXMKKyAgICAgICAgU3RyaW5nIGluTmFtZSA9IG51bGw7CisgICAgICAgIFN0cmluZyBvdXROYW1lID0gbnVsbDsKKworICAgICAgICB3aGlsZSAocG9zIDwgYXJncy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChhcmdzW3Bvc10uZXF1YWxzKCItaHRtbCIpKSB7CisgICAgICAgICAgICAgICAgaXNIVE1MID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJnc1twb3NdLmVxdWFscygiLWkiKSkgeworICAgICAgICAgICAgICAgIGlmICgrK3BvcyA9PSBhcmdzLmxlbmd0aCkgdXNhZ2UoKTsKKyAgICAgICAgICAgICAgICBpbk5hbWUgPSBhcmdzW3Bvc107CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3NbcG9zXS5lcXVhbHMoIi1vIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoKytwb3MgPT0gYXJncy5sZW5ndGgpIHVzYWdlKCk7CisgICAgICAgICAgICAgICAgb3V0TmFtZSA9IGFyZ3NbcG9zXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHJhbnNOYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cmFuc05hbWUgPSBhcmdzW3Bvc107CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChpblRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpblRleHQgPSBhcmdzW3Bvc107CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW5UZXh0ID0gaW5UZXh0ICsgIiAiICsgYXJnc1twb3NdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrcG9zOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGluVGV4dCAhPSBudWxsICYmIGluTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdHJhbnMgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSh0cmFuc05hbWUpOworICAgICAgICBCdWZmZXJlZFJlYWRlciBpbiA9IG51bGw7CisgICAgICAgIGlmIChpbk5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgaW4gPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IElucHV0U3RyZWFtUmVhZGVyKG5ldyBGaWxlSW5wdXRTdHJlYW0oaW5OYW1lKSwgIlVURjgiKSk7CisgICAgICAgIH0KKyAgICAgICAgUHJpbnRXcml0ZXIgb3V0ID0gbnVsbDsKKyAgICAgICAgaWYgKG91dE5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgb3V0ID0gbmV3IFByaW50V3JpdGVyKG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIobmV3IEZpbGVPdXRwdXRTdHJlYW0ob3V0TmFtZSksICJVVEY4IikpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgb3V0ID0gbmV3IFByaW50V3JpdGVyKFN5c3RlbS5vdXQpOworICAgICAgICB9CisgICAgICAgIHRyYW5zKHRyYW5zLCBpblRleHQsIGluLCBvdXQsIGlzSFRNTCk7CisgICAgICAgIG91dC5jbG9zZSgpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHRyYW5zKFRyYW5zbGl0ZXJhdG9yIHRyYW5zLCBTdHJpbmcgaW5UZXh0LAorICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGluLCBQcmludFdyaXRlciBvdXQsIGJvb2xlYW4gaXNIVE1MKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBib29sZWFuIGluVGFnID0gZmFsc2U7IC8vIElmIHRydWUsIHdlIGFyZSB3aXRoaW4gYSA8dGFnPgorICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBTdHJpbmcgbGluZSA9IG51bGw7CisgICAgICAgICAgICBpZiAoaW5UZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsaW5lID0gaW5UZXh0OworICAgICAgICAgICAgICAgIGluVGV4dCA9IG51bGw7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGluICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsaW5lID0gaW4ucmVhZExpbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpc0hUTUwpIHsKKyAgICAgICAgICAgICAgICAvLyBQYXNzIHRhZ3MgYmV0d2VlbiA8IGFuZCA+IHVuY2hhbmdlZAorICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgaW50IHJpZ2h0ID0gLTE7CisgICAgICAgICAgICAgICAgaWYgKGluVGFnKSB7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gbGluZS5pbmRleE9mKCc+Jyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyaWdodCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gbGluZS5sZW5ndGgoKS0xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQobGluZS5zdWJzdHJpbmcoMCwgcmlnaHQrMSkpOworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiKlM6IiArIGxpbmUuc3Vic3RyaW5nKDAsIHJpZ2h0KzEpKTsKKyAgICAgICAgICAgICAgICAgICAgaW5UYWcgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICBpbnQgbGVmdCA9IGxpbmUuaW5kZXhPZignPCcsIHJpZ2h0KzEpOworICAgICAgICAgICAgICAgICAgICBpZiAobGVmdCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyaWdodCA8IGxpbmUubGVuZ3RoKCktMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQodHJhbnMudHJhbnNsaXRlcmF0ZShsaW5lLnN1YnN0cmluZyhyaWdodCsxKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJUOiIgKyBsaW5lLnN1YnN0cmluZyhyaWdodCsxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdHJhbnNsaXRlcmF0ZWQgc2VnbWVudCByaWdodCsxLi5sZWZ0LTEKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCh0cmFucy50cmFuc2xpdGVyYXRlKGxpbmUuc3Vic3RyaW5nKHJpZ2h0KzEsIGxlZnQpKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJUOiIgKyBsaW5lLnN1YnN0cmluZyhyaWdodCsxLCBsZWZ0KSk7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gbGluZS5pbmRleE9mKCc+JywgbGVmdCsxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJpZ2h0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW5UYWcgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChsaW5lLnN1YnN0cmluZyhsZWZ0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiUzoiICsgbGluZS5zdWJzdHJpbmcobGVmdCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChsaW5lLnN1YnN0cmluZyhsZWZ0LCByaWdodCsxKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJTOiIgKyBsaW5lLnN1YnN0cmluZyhsZWZ0LCByaWdodCsxKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxpbmUgPSBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbGluZSA9IHRyYW5zLnRyYW5zbGl0ZXJhdGUobGluZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbihsaW5lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gZmFsc2U7CisKKyAgICAvKioKKyAgICAgKiBFbWl0IHVzYWdlIGFuZCBkaWUuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgdXNhZ2UoKSB7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVXNhZ2U6IGphdmEgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQuVHJhbnMgWy1odG1sXSA8dHJhbnM+ICggPGlucHV0PiB8IC1pIDxpbmZpbGU+KSBbIC1vIDxvdXRmaWxlPiBdIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPHRyYW5zPiAgIE5hbWUgb2YgdHJhbnNsaXRlcmF0b3IiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI8aW5wdXQ+ICAgVGV4dCB0byB0cmFuc2xpdGVyYXRlIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiPGluZmlsZT4gIE5hbWUgb2YgaW5wdXQgZmlsZSIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjxvdXRmaWxlPiBOYW1lIG9mIG91dHB1dCBmaWxlIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiLWh0bWwgICAgIE9ubHkgdHJhbnNsaXRlcmF0ZSB0ZXh0IG91dHNpZGUgb2YgPHRhZ3M+Iik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSW5wdXQgbWF5IGNvbWUgZnJvbSB0aGUgY29tbWFuZCBsaW5lIG9yIGEgZmlsZS5cbiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk91cHV0IG1heSBnbyB0byBzdGRvdXQgb3IgYSBmaWxlLlxuIik7CisgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Vbmljb2RlU2V0Q2xvc2VPdmVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvVW5pY29kZVNldENsb3NlT3Zlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4OWI0YTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvVW5pY29kZVNldENsb3NlT3Zlci5qYXZhCkBAIC0wLDAgKzEsNDY2IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDMsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogRmVicnVhcnkgMTEgMjAwMworKiBTaW5jZTogSUNVIDIuNgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIFRoaXMgY2xhc3MgcHJvZHVjZXMgdGhlIGRhdGEgdGFibGVzIHVzZWQgYnkgdGhlIGNsb3NlT3ZlcigpIG1ldGhvZAorICogb2YgVW5pY29kZVNldC4KKyAqCisgKiBXaGVuZXZlciB0aGUgVW5pY29kZSBkYXRhYmFzZSBjaGFuZ2VzLCB0aGlzIHRvb2wgbXVzdCBiZSByZS1ydW4KKyAqIChBRlRFUiB0aGUgZGF0YSBmaWxlKHMpIHVuZGVybHlpbmcgSUNVNEogYXJlIHVkcGF0ZWQpLgorICoKKyAqIFRoZSBvdXRwdXQgb2YgdGhpcyB0b29sIHNob3VsZCB0aGVuIGJlIHBhc3RlZCBpbnRvIHRoZSBhcHByb3ByaWF0ZQorICogZmlsZXM6CisgKgorICogSUNVNEo6IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldC5qYXZhCisgKiBJQ1U0QzogL2ljdS9zb3VyY2UvY29tbW9uL3VuaXNldC5jcHAKKyAqLworY2xhc3MgVW5pY29kZVNldENsb3NlT3ZlciB7CisKKyAgICAvLyBPdXIgb3V0cHV0IGZpbGVzCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBKQVZBX09VVCAgICAgICAgICA9ICJ0b19Vbmljb2RlU2V0LmphdmEiOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgSkFWQV9DSEFSUFJPUF9PVVQgPSAidG9fVUNoYXJhY3RlclByb3BlcnR5LmphdmEiOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ19TRVRfT1VUICAgICAgICAgPSAidG9fdW5pc2V0LmNwcCI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDX1VDSEFSX09VVCAgICAgICA9ICJ0b191Y2hhci5jIjsKKworICAgIC8vIFNvdXJjZSBjb2RlICJkbyBub3QgZWRpdCIgd2FybmluZworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgV0FSTklORyA9ICJNQUNISU5FLUdFTkVSQVRFRDsgVW5pY29kZSB2ZXJzaW9uICIgKworICAgICAgICBVQ2hhcmFjdGVyLmdldFVuaWNvZGVWZXJzaW9uKCkgKworICAgICAgICAiOyBETyBOT1QgRURJVDsgU2VlICIgKworICAgICAgICBVbmljb2RlU2V0Q2xvc2VPdmVyLmNsYXNzLmdldE5hbWUoKTsKKworICAgIC8vIENhc2UgZm9sZGluZyBvcHRpb25zIGZsYWcuICBUaGlzIG11c3QgY29ycmVzcG9uZCB0byB0aGUgb3B0aW9ucworICAgIC8vIHVzZWQgaW4gVW5pY29kZVNldC5jbG9zZU92ZXIoKSBpbiBKYXZhIGFuZCBDKysuCisgICAgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVGQVVMVF9DQVNFX01BUCA9IHRydWU7IC8vIGZhbHNlIGZvciBUdXJraXNoCisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoaXMgdG9vbCB3aWxsIGdlbmVyYXRlIHNldmVyYWwgb3V0cHV0IGZpbGVzLiAgRWFjaCBpcyBuYW1lZCBhY2NvcmRpbmciKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ0aGUgdGFyZ2V0IGZpbGUuICBGb3IgZXhhbXBsZSwgdGhlIGNvbnRlbnRzIG9mIHRvX1VuaWNvZGVTZXQuamF2YSBzaG91bGQiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJiZSBwYXN0ZWQgaW50byBVbmljb2RlU2V0LmphdmEuIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworCisgICAgICAgIGdlbmVyYXRlQ2FzZURhdGEoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBtYXAgb2YgU3RyaW5nID0+IFNldC4gIFRoZSBTdHJpbmcgaW4gdGhpcyBjYXNlIGlzIGEKKyAgICAgKiBmb2xkZWQgc3RyaW5nIGZvciB3aGljaAorICAgICAqIFVDaGFyYWN0ZXIuZm9sZENhc2UoZm9sZGVkLiBERUZBVUxUX0NBU0VfTUFQKS5lcXVhbHMoZm9sZGVkKS4KKyAgICAgKiBUaGUgU2V0IGNvbnRhaW5zIGFsbCBzaW5nbGUtY2hhcmFjdGVyIHN0cmluZ3MgeCBmb3Igd2hpY2gKKyAgICAgKiBVQ2hhcmFjdGVyLmZvbGRDYXNlKHgsIERFRkFVTFRfQ0FTRV9NQVApLmVxdWFscyhmb2xkZWQpLCBhcworICAgICAqIHdlbGwgYXMgZm9sZGVkIGl0c2VsZi4KKyAgICAgKi8KKyAgICBzdGF0aWMgTWFwIGNyZWF0ZUNhc2VGb2xkRXF1aXZhbGVuY3lDbGFzc2VzKCkgeworICAgICAgICBNYXAgZXF1aXZDbGFzc2VzID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7ICsraSkgeworICAgICAgICAgICAgaW50IGNhdCA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShpKTsKKyAgICAgICAgICAgIGlmIChjYXQgPT0gQ2hhcmFjdGVyLlVOQVNTSUdORUQgfHwgY2F0ID09IENoYXJhY3Rlci5QUklWQVRFX1VTRSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgU3RyaW5nIGNwID0gVVRGMTYudmFsdWVPZihpKTsKKyAgICAgICAgICAgIFN0cmluZyBmb2xkZWQgPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKGNwLCBERUZBVUxUX0NBU0VfTUFQKTsKKyAgICAgICAgICAgIGlmIChmb2xkZWQuZXF1YWxzKGNwKSkgY29udGludWU7CisKKyAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIGhhdmUgZGlmZmVyZW50IGNhc2UgZm9sZGluZy4gIEFkZAorICAgICAgICAgICAgLy8gdGhlIGNvZGUgcG9pbnQgYW5kIGl0cyBmb2xkZWQgZXF1aXZhbGVudCBpbnRvIHRoZQorICAgICAgICAgICAgLy8gZXF1aXZhbGVuY3kgY2xhc3MuCisgICAgICAgICAgICBUcmVlU2V0IHMgPSAoVHJlZVNldCkgZXF1aXZDbGFzc2VzLmdldChmb2xkZWQpOworICAgICAgICAgICAgaWYgKHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHMgPSBuZXcgVHJlZVNldCgpOworICAgICAgICAgICAgICAgIHMuYWRkKGZvbGRlZCk7IC8vIGFkZCB0aGUgY2FzZSBmb2xkIHJlc3VsdCBpdHNlbGYKKyAgICAgICAgICAgICAgICBlcXVpdkNsYXNzZXMucHV0KGZvbGRlZCwgcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzLmFkZChjcCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVxdWl2Q2xhc3NlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbmFseXplIHRoZSBjYXNlIGZvbGQgZXF1aXZhbGVuY3kgY2xhc3Nlcy4gIEJyZWFrIHRoZW0gaW50byB0d28KKyAgICAgKiBncm91cHM6ICdwYWlycycsIGFuZCAnbm9ucGFpcnMnLiAgQ3JlYXRlIGEgdGFsbHkgb2YgdGhlIGxlbmd0aAorICAgICAqIGNvbmZpZ3VyYXRpb25zIG9mIHRoZSBub25wYWlycy4KKyAgICAgKgorICAgICAqIExlbmd0aCBjb25maWd1cmF0aW9ucyBvZiBlcXVpdmFsZW5jeSBjbGFzc2VzLCBhcyBvZiBVbmljb2RlCisgICAgICogMy4yLiAgTW9zdCBvZiB0aGUgY2xhc3NlcyAoODMlKSBoYXZlIHR3byBzaW5nbGUgY29kZXBvaW50cy4KKyAgICAgKiBIZXJlICIxMTI6MjgiIG1lYW5zIHRoZXJlIGFyZSAyOCBlcXVpdmFsZW5jeSBjbGFzc2VzIHdpdGggMgorICAgICAqIHNpbmdsZSBjb2RlcG9pbnRzIGFuZCBvbmUgc3RyaW5nIG9mIGxlbmd0aCAyLgorICAgICAqCisgICAgICogMTE6NjU2CisgICAgICogMTExOjE2CisgICAgICogMTExMTozCisgICAgICogMTEyOjI4CisgICAgICogMTEzOjIKKyAgICAgKiAxMjozMQorICAgICAqIDEzOjEyCisgICAgICogMjI6MzgKKyAgICAgKgorICAgICAqIE5vdGU6IFRoaXMgbWV0aG9kIGRvZXMgbm90IGNvdW50IHRoZSBmcmVxdWVuY2llcyBvZiB0aGUKKyAgICAgKiBkaWZmZXJlbnQgbGVuZ3RoIGNvbmZpZ3VyYXRpb25zIChhcyBzaG93biBhYm92ZSBhZnRlciAnOicpOyBpdAorICAgICAqIG1lcmVseSByZWNvcmRzIHdoaWNoIGNvbmZpZ3VyYXRpb25zIG9jY3VyLgorICAgICAqCisgICAgICogQHBhcmFtIHBhaXJzIEFjY3VtdWxhdGUgZXF1aXZhbGVuY3kgY2xhc3NlcyB0aGF0IGNvbnNpc3Qgb2YKKyAgICAgKiBleGFjdGx5IHR3byBjb2RlcG9pbnRzIGhlcmUuICBUaGlzIGlzIDgzKyUgb2YgdGhlIGNsYXNzZXMuCisgICAgICogRS5nLiwgeyJhIiwgIkEifS4KKyAgICAgKiBAcGFyYW0gbm9ucGFpcnMgQWNjdW11bGF0ZSBvdGhlciBlcXVpdmFsZW5jeSBjbGFzc2VzIGhlcmUsIGFzCisgICAgICogbGlzdHMgb2Ygc3RyaW5ncy4gIEUsZywgeyJzdCIsICJcdUZCMDUiLCAiXHVGQjA2In0uCisgICAgICogQHBhcmFtIGxlbmd0aHMgQWNjdW11bGF0ZSBhIGxpc3Qgb2YgdW5pcXVlIGxlbmd0aCBzdHJ1Y3R1cmVzLAorICAgICAqIG5vdCBpbmNsdWRpbmcgcGFpcnMuICBFYWNoIGxlbmd0aCBzdHJ1Y3R1cmUgaXMgcmVwcmVzZW50ZWQgYnkgYQorICAgICAqIHN0cmluZyBvZiBkaWdpdHMuICBUaGUgZGlnaXQgc3RyaW5nICIxMiIgbWVhbnMgdGhlIGVxdWl2YWxlbmN5CisgICAgICogY2xhc3MgY29udGFpbnMgYSBzaW5nbGUgY29kZSBwb2ludCBhbmQgYSBzdHJpbmcgb2YgbGVuZ3RoIDIuCisgICAgICogVHlwaWNhbCBjb250ZW50cyBvZiAnbGVuZ3Rocyc6IHsgIjExMSIsICIxMTExIiwgIjExMiIsCisgICAgICogIjExMyIsICIxMiIsICIxMyIsICIyMiIgfS4gIE5vdGUgdGhlIGFic2VuY2Ugb2YgIjExIi4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBhbmFseXplQ2FzZURhdGEoTWFwIGVxdWl2Q2xhc3NlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHBhaXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3Igbm9ucGFpcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvciBsZW5ndGhzKSB7CisgICAgICAgIEl0ZXJhdG9yIGkgPSBuZXcgVHJlZVNldChlcXVpdkNsYXNzZXMua2V5U2V0KCkpLml0ZXJhdG9yKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHdoaWxlIChpLmhhc05leHQoKSkgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGkubmV4dCgpOworICAgICAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKChTZXQpIGVxdWl2Q2xhc3Nlcy5nZXQoa2V5KSk7CisgICAgICAgICAgICBpZiAodi5zaXplKCkgPT0gMikgeworICAgICAgICAgICAgICAgIFN0cmluZyBhID0gKFN0cmluZykgdi5lbGVtZW50QXQoMCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGIgPSAoU3RyaW5nKSB2LmVsZW1lbnRBdCgxKTsKKyAgICAgICAgICAgICAgICBpZiAoYS5sZW5ndGgoKSA9PSAxICYmIGIubGVuZ3RoKCkgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBwYWlycy5hcHBlbmQoYSkuYXBwZW5kKGIpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHBhaXJzIGFyZSBpbmNsdWRlZCBpbiAnbGVuZ3RocycKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmdbXSBhID0gbmV3IFN0cmluZ1t2LnNpemUoKV07CisgICAgICAgICAgICB2LnRvQXJyYXkoYSk7CisgICAgICAgICAgICBub25wYWlycy5hZGQoYSk7CisgICAgICAgICAgICAvL2ludCBzaW5nbGVDb3VudCA9IDA7CisgICAgICAgICAgICAvL2ludCBzdHJpbmdDb3VudCA9IDA7CisgICAgICAgICAgICAvLyBNYWtlIGEgc3RyaW5nIG9mIHRoZSBsZW5ndGhzLCBlLmcuLCAiMTExIiBtZWFucyAzCisgICAgICAgICAgICAvLyBzaW5nbGUgY29kZSBwb2ludHM7ICIxMyIgbWVhbnMgYSBzaW5nbGUgY29kZSBwb2ludAorICAgICAgICAgICAgLy8gYW5kIGEgc3RyaW5nIG9mIGxlbmd0aCAzLgorICAgICAgICAgICAgdi5jbGVhcigpOworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPGEubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICB2LmFkZChuZXcgSW50ZWdlcihhW2pdLmxlbmd0aCgpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBDb2xsZWN0aW9ucy5zb3J0KHYpOworICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajx2LnNpemUoKTsgKytqKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChTdHJpbmcudmFsdWVPZih2LmVsZW1lbnRBdChqKSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFsZW5ndGhzLmNvbnRhaW5zKGJ1Zi50b1N0cmluZygpKSkgeworICAgICAgICAgICAgICAgIGxlbmd0aHMuYWRkKGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGdlbmVyYXRlQ2FzZURhdGEoKSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIE1hcCBlcXVpdkNsYXNzZXMgPSBjcmVhdGVDYXNlRm9sZEVxdWl2YWxlbmN5Q2xhc3NlcygpOworCisgICAgICAgIC8vIEFjY3VtdWxhdGUgZXF1aXZhbGVuY3kgY2xhc3NlcyB0aGF0IGNvbnNpc3Qgb2YgZXhhY3RseQorICAgICAgICAvLyB0d28gY29kZXBvaW50cyBoZXJlLiAgVGhpcyBpcyA4MyslIG9mIHRoZSBjbGFzc2VzLgorICAgICAgICAvLyBFLmcuLCB7ImEiLCAiQSJ9LgorICAgICAgICBTdHJpbmdCdWZmZXIgcGFpcnMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy8gQWNjdW11bGF0ZSBvdGhlciBlcXVpdmFsZW5jeSBjbGFzc2VzIGhlcmUsIGFzIGxpc3RzCisgICAgICAgIC8vIG9mIHN0cmluZ3MuICBFLGcsIHsic3QiLCAiXHVGQjA1IiwgIlx1RkIwNiJ9LgorICAgICAgICBWZWN0b3Igbm9ucGFpcnMgPSBuZXcgVmVjdG9yKCk7IC8vIGNvbnRhaW5zIFN0cmluZ1tdCisgICAgICAgIFZlY3RvciBsZW5ndGhzID0gbmV3IFZlY3RvcigpOyAvLyAiMTExIiwgIjEyIiwgIjIyIiwgZXRjLgorCisgICAgICAgIGFuYWx5emVDYXNlRGF0YShlcXVpdkNsYXNzZXMsIHBhaXJzLCBub25wYWlycywgbGVuZ3Rocyk7CisKKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIC8vIEVtaXQgSmF2YSBzb3VyY2UKKyAgICAgICAgUHJpbnRTdHJlYW0gb3V0ID0gbmV3IFByaW50U3RyZWFtKG5ldyBGaWxlT3V0cHV0U3RyZWFtKEpBVkFfT1VUKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyAiICsgSkFWQV9PVVQpOworCisgICAgICAgIG91dC5wcmludGxuKCIgICAgLy8gIiArIFdBUk5JTkcpOworICAgICAgICBvdXQucHJpbnRsbigiICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDQVNFX1BBSVJTID0iKTsKKyAgICAgICAgb3V0LnByaW50bG4oVXRpbGl0eS5mb3JtYXRGb3JTb3VyY2UocGFpcnMudG9TdHJpbmcoKSkgKyAiOyIpOworICAgICAgICBvdXQucHJpbnRsbigpOworICAgICAgICBvdXQucHJpbnRsbigiICAgIC8vICIgKyBXQVJOSU5HKTsKKyAgICAgICAgb3V0LnByaW50bG4oIiAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIENBU0VfTk9OUEFJUlMgPSB7Iik7CisgICAgICAgIGZvciAoaW50IGo9MDsgajxub25wYWlycy5zaXplKCk7ICsraikgeworICAgICAgICAgICAgU3RyaW5nW10gYSA9IChTdHJpbmdbXSkgbm9ucGFpcnMuZWxlbWVudEF0KGopOworICAgICAgICAgICAgb3V0LnByaW50KCIgICAgICAgIHsiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGs9MDsgazxhLmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgaWYgKGsgIT0gMCkgb3V0LnByaW50KCIsICIpOworICAgICAgICAgICAgICAgIG91dC5wcmludChVdGlsaXR5LmZvcm1hdDFGb3JTb3VyY2UoYVtrXSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIn0sIik7CisgICAgICAgIH0KKyAgICAgICAgb3V0LnByaW50bG4oIiAgICB9OyIpOworCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAvLyBFbWl0IEMrKyBzb3VyY2UKKworICAgICAgICAvLyBJbiBDKyssIHRoZSBwYWlycyBhcmUgYWdhaW4gZW1pdHRlZCBpbiBhbiBhcnJheSwgYnV0IHRoaXMKKyAgICAgICAgLy8gYXJyYXkgaXMgdGhlIGZpbmFsIHJlcHJlc2VudGF0aW9uIGZvcm0gLS0gaXQgd2lsbCBub3QgYmUKKyAgICAgICAgLy8gcmVwcm9jZXNzZWQgaW50byBhIGhhc2guICBJdCB3aWxsIGJlIGJpbmFyeSBzZWFyY2hlZCBieQorICAgICAgICAvLyBsb29raW5nIGF0IHRoZSBldmVuIGVsZW1lbnRzIFswXSwgWzJdLCBbNF0sIGV0Yy4sIGFuZAorICAgICAgICAvLyBpZ25vcmluZyB0aGUgb2RkIGVsZW1lbnRzLiAgVGhlIGV2ZW4gZWxlbWVudHMgbXVzdCBjb250YWluCisgICAgICAgIC8vIHRoZSBmb2xkZWQgbWVtYmVycyBvZiB0aGUgcGFpcnMuICBUaGF0IGlzLCBpbiB0aGUgcGFpcgorICAgICAgICAvLyB7J0EnLCAnYSd9LCB0aGUgZXZlbiBlbGVtZW50IG11c3QgYmUgJ2EnLCBub3QgJ0EnLiAgVGhlbiBhCisgICAgICAgIC8vIGNvZGUgcG9pbnQgdG8gYmUgbG9jYXRlZCBpcyBmaXJzdCBmb2xkZWQgKCdZJyA9PiAneScpIHRoZW4KKyAgICAgICAgLy8gaXQgYmluYXJ5IHNlYXJjaGVkIGFnYWluc3QgWzBdPSdBJywgWzJdPSdCJywgZXRjLiAgV2hlbiBhCisgICAgICAgIC8vIG1hdGNoIGlzIGZvdW5kIGF0IGssIHRoZSBwYWlyIGlzIFtrXSwgW2srMV0uCisKKyAgICAgICAgb3V0ID0gbmV3IFByaW50U3RyZWFtKG5ldyBGaWxlT3V0cHV0U3RyZWFtKENfU0VUX09VVCkpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmcgIiArIENfU0VUX09VVCk7CisKKyAgICAgICAgLy8gU29ydCB0aGUgcGFpcnMuICBUaGV5IG11c3QgYmUgb3JkZXJlZCBieSB0aGUgZm9sZGVkIGVsZW1lbnQuCisgICAgICAgIC8vIFN0b3JlIHRoZXNlIGFzIHR3by1jaGFyYWN0ZXIgc3RyaW5ncywgd2l0aCBjaGFyQXQoMCkgYmVpbmcKKyAgICAgICAgLy8gdGhlIGZvbGRlZCBtZW1iZXIgb2YgdGhlIHBhaXIuCisgICAgICAgIFRyZWVTZXQgc29ydFBhaXJzID0gbmV3IFRyZWVTZXQobmV3IENvbXBhcmF0b3IoKSB7CisgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGEsIE9iamVjdCBiKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICgoaW50KSAoKFN0cmluZykgYSkuY2hhckF0KDApKSAtCisgICAgICAgICAgICAgICAgICAgICAgICgoaW50KSAoKFN0cmluZykgYikuY2hhckF0KDApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHBhaXJzLmxlbmd0aCgpOyBpKz0yKSB7CisgICAgICAgICAgICBTdHJpbmcgYSA9IFN0cmluZy52YWx1ZU9mKHBhaXJzLmNoYXJBdChpKSk7CisgICAgICAgICAgICBTdHJpbmcgYiA9IFN0cmluZy52YWx1ZU9mKHBhaXJzLmNoYXJBdChpKzEpKTsKKyAgICAgICAgICAgIFN0cmluZyBmb2xkZWQgPSBVQ2hhcmFjdGVyLmZvbGRDYXNlKGEsIERFRkFVTFRfQ0FTRV9NQVApOworICAgICAgICAgICAgaWYgKGEuZXF1YWxzKGZvbGRlZCkpIHsKKyAgICAgICAgICAgICAgICBzb3J0UGFpcnMuYWRkKGEgKyBiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc29ydFBhaXJzLmFkZChiICsgYSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBFbWl0IHRoZSBwYWlycworICAgICAgICBvdXQucHJpbnRsbigiLy8gIiArIFdBUk5JTkcpOworICAgICAgICBvdXQucHJpbnRsbigic3RhdGljIGNvbnN0IFVDaGFyIENBU0VfUEFJUlNbXSA9IHsiKTsKKyAgICAgICAgSXRlcmF0b3IgaXQgPSBzb3J0UGFpcnMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgb3V0LnByaW50KCIgICAgIik7CisgICAgICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgICAgICB3aGlsZSAobisrIDwgNSAmJiBpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAvL291dC5wcmludCgoaW50KSBzLmNoYXJBdCgwKSArICIsIiArCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgIChpbnQpIHMuY2hhckF0KDEpICsgIiwiKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnQoIjB4IiArIFV0aWxpdHkuaGV4KHMuY2hhckF0KDApKSArICIsMHgiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuaGV4KHMuY2hhckF0KDEpKSArICIsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgICAgIG91dC5wcmludGxuKCJ9OyIpOworICAgICAgICBvdXQucHJpbnRsbigpOworCisgICAgICAgIC8vIFRoZSBub24tcGFpcnMgYXJlIGVuY29kZWQgaW4gdGhlIGZvbGxvd2luZyB3YXkuICBBbGwgdGhlCisgICAgICAgIC8vIHNpbmdsZSBjb2RlcG9pbnRzIGluIGVhY2ggY2xhc3MgYXJlIGdyb3VwZWQgdG9nZXRoZXIKKyAgICAgICAgLy8gZm9sbG93ZWQgYnkgYSB6ZXJvLiAgVGhlbiBlYWNoIG11bHRpLWNoYXJhY3RlciBzdHJpbmcgaXMKKyAgICAgICAgLy8gYWRkZWQsIGZvbGxvd2VkIGJ5IGEgemVyby4gIEZpbmFsbHksIGFub3RoZXIgemVybyBpcyBhZGRlZC4KKyAgICAgICAgLy8gU29tZSBleGFtcGxlczoKKyAgICAgICAgLy8gIHsiaVEiLCAiUiJ9ICAgICAgICAgICA9PiAgWyAnUicsIDAsICdpJywgJ1EnLCAwLCAwIF0KKyAgICAgICAgLy8gIHsiUyIsICJEIiwgIkYiLCAiRyJ9ICA9PiAgWyAnUycsICdEJywgJ0YnLCAnRycsIDAsIDAgXQorICAgICAgICAvLyAgeyJqVyIsICJqWSJ9ICAgICAgICAgID0+ICBbIDAsICdqJywgJ1cnLCAwLCAnaicsICdZJywgMCwgMCBdCisgICAgICAgIC8vIFRoZSBlbmQtcmVzdWx0IGlzIGEgc2hvcnQsIGZsYXQgYXJyYXkgb2YgVUNoYXIgdmFsdWVzIHRoYXQKKyAgICAgICAgLy8gY2FuIGJlIHVzZWQgdG8gaW5pdGlhbGl6ZSBhIFVDaGFyW10gYXJyYXkgaW4gQy4KKyAgICAgICAgCisgICAgICAgIGludCBtYXhMZW4gPSAwOyAvLyBNYXhpbXVtIGVuY29kZWQgbGVuZ3RoIG9mIGFueSBjbGFzcywgaW5jbHVkaW5nIHplcm9zCisgICAgICAgIG91dC5wcmludGxuKCIvLyAiICsgV0FSTklORyk7CisgICAgICAgIG91dC5wcmludGxuKCJzdGF0aWMgY29uc3QgQ2FzZUVxdWl2Q2xhc3MgQ0FTRV9OT05QQUlSU1tdID0geyIpOworICAgICAgICBmb3IgKGludCBqPTA7IGo8bm9ucGFpcnMuc2l6ZSgpOyArK2opIHsKKyAgICAgICAgICAgIGludCBsZW4gPSAwOworICAgICAgICAgICAgU3RyaW5nW10gYSA9IChTdHJpbmdbXSkgbm9ucGFpcnMuZWxlbWVudEF0KGopOworICAgICAgICAgICAgb3V0LnByaW50KCIgICAgeyIpOworICAgICAgICAgICAgLy8gRW1pdCBzaW5nbGUgY29kZSBwb2ludHMKKyAgICAgICAgICAgIGZvciAoaW50IGs9MDsgazxhLmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgaWYgKGFba10ubGVuZ3RoKCkgIT0gMSkgY29udGludWU7CisgICAgICAgICAgICAgICAgLy9vdXQucHJpbnQoKGludCkgYVtrXS5jaGFyQXQoMCkgKyAiLCIpOworICAgICAgICAgICAgICAgIG91dC5wcmludCgiMHgiK1V0aWxpdHkuaGV4KGFba10uY2hhckF0KDApKSArICIsIik7CisgICAgICAgICAgICAgICAgKytsZW47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnQoIjAsICAiKTsgLy8gRW5kIG9mIHNpbmdsZSBjb2RlIHBvaW50cworICAgICAgICAgICAgKytsZW47CisgICAgICAgICAgICAvLyBFbWl0IG11bHRpLWNoYXJhY3RlciBzdHJpbmdzCisgICAgICAgICAgICBmb3IgKGludCBrPTA7IGs8YS5sZW5ndGg7ICsraykgeworICAgICAgICAgICAgICAgIGlmIChhW2tdLmxlbmd0aCgpID09IDEpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGZvciAoaW50IG09MDsgbTxhW2tdLmxlbmd0aCgpOyArK20pIHsKKyAgICAgICAgICAgICAgICAgICAgLy9vdXQucHJpbnQoKGludCkgYVtrXS5jaGFyQXQobSkgKyAiLCIpOworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnQoIjB4IitVdGlsaXR5LmhleChhW2tdLmNoYXJBdChtKSkgKyAiLCIpOworICAgICAgICAgICAgICAgICAgICArK2xlbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0LnByaW50KCIwLCAiKTsgLy8gRW5kIG9mIHN0cmluZworICAgICAgICAgICAgICAgICsrbGVuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0LnByaW50bG4oIjB9LCIpOyAvLyBFbmQgb2YgZXF1aXZhbGVuY3kgY2xhc3MKKyAgICAgICAgICAgICsrbGVuOworICAgICAgICAgICAgaWYgKGxlbiA+IG1heExlbikgbWF4TGVuID0gbGVuOworICAgICAgICB9CisgICAgICAgIG91dC5wcmludGxuKCJ9OyIpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgQ2FzZUVxdWl2Q2xhc3MgZGF0YSBjYW4gZml0LgorICAgICAgICBpZiAobWF4TGVuID4gOCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIk11c3QgYWRqdXN0IENhc2VFcXVpdkNsYXNzIHRvIGFjY29tb2RhdGUgIiArIG1heExlbiArICIgVUNoYXJzIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBBbHNvIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBtYXAgaW50byB0aGlzIGFycmF5IHVzaW5nIGEKKyAgICAgICAgLy8gQ29tcGFjdEJ5dGVBcnJheS4gIFdlIGNvdWxkIGRvIHRoaXMgY2hlY2sgYWJvdmUsIGJ1dCB3ZQorICAgICAgICAvLyBrZWVwIGl0IGhlcmUsIGFkamFjZW50IHRvIHRoZSBtYXhMZW4gY2hlY2suICBXZSB1c2Ugb25lCisgICAgICAgIC8vIHZhbHVlICgtMSA9PSAyNTUpIHRvIGluZGljYXRlICJubyB2YWx1ZS4iCisgICAgICAgIGlmIChub25wYWlycy5zaXplKCkgPiAyNTUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJUb28gbWFueSBDQVNFX05PTlBBSVJTIGFycmF5IGVsZW1lbnRzIHRvIGJlIGluZGV4ZWQgYnkgYSBDb21wYWN0Qnl0ZUFycmF5Iik7CisgICAgICAgIH0KKworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgLy8gQ2FzZS11bmlxdWUgc2V0OiAgQWxsIGNoYXJhY3RlcnMgYyBmb3Igd2hpY2ggY2xvc2VPdmVyKGMpPT1jLgorCisgICAgICAgIC8vIFVQREFURTogSW5zdGVhZCBvZiB1c2luZyB0aGlzLCB3ZSdyZSB1c2luZyB0aGUgcmVsYXRlZAorICAgICAgICAvLyBub3Rpb24gb2YgQ2FzZV9TZW5zaXRpdmUuICBTZWUgYmVsb3cuICBOb3RlIHRoYXQKKyAgICAgICAgLy8gQ2FzZV9TZW5zaXRpdmUgIT0gXkNhc2VfVW5pcXVlLgorCisgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgVW5pY29kZVNldCBjYXNlVW5pcXVlID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDB4MTBGRkZGOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3AgPSBVVEYxNi52YWx1ZU9mKGkpOworICAgICAgICAgICAgICAgIGlmIChlcXVpdkNsYXNzZXMuZ2V0KFVDaGFyYWN0ZXIuZm9sZENhc2UoY3AsIERFRkFVTFRfQ0FTRV9NQVApKSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2VVbmlxdWUuYWRkKGkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIG91dC5wcmludGxuKCJjYXNlVW5pcXVlID0gIiArIGNhc2VVbmlxdWUudG9QYXR0ZXJuKHRydWUpKTsKKyAgICAgICAgfQorCisgICAgICAgIFVuaWNvZGVTZXQgY2FzZVNlbnNpdGl2ZSA9IGdldENhc2VTZW5zaXRpdmUoKTsKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImNhc2VTZW5zaXRpdmUgPSAiICsgY2FzZVNlbnNpdGl2ZS50b1BhdHRlcm4odHJ1ZSkpOworCisgICAgICAgIC8vIE5vdyBmb3IgQywgZW1pdCBhbiBhcnJheSBvZiByYW5nZXMKKyAgICAgICAgb3V0ID0gbmV3IFByaW50U3RyZWFtKG5ldyBGaWxlT3V0cHV0U3RyZWFtKENfVUNIQVJfT1VUKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyAiICsgQ19VQ0hBUl9PVVQpOworCisgICAgICAgIG91dC5wcmludGxuKCIvKiAiICsgV0FSTklORyArICIgKi8iKTsKKyAgICAgICAgZW1pdFVDaGFyUmFuZ2VzQXJyYXkob3V0LCBjYXNlU2Vuc2l0aXZlLCAiQ0FTRV9TRU5TSVRJVkVfUkFOR0VTIik7CisKKyAgICAgICAgLy8gRm9yIEphdmEsIGVtaXQgYSBzdHJpbmcgd2l0aCB0aGUgcmFuZ2VzIChlYWNoIHBhaXIgb2YgY2hhcnMKKyAgICAgICAgLy8gaW4gdGhlIHN0cmluZyBpcyBhIHJhbmdlKS4KKyAgICAgICAgb3V0ID0gbmV3IFByaW50U3RyZWFtKG5ldyBGaWxlT3V0cHV0U3RyZWFtKEpBVkFfQ0hBUlBST1BfT1VUKSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JpdGluZyAiICsgSkFWQV9DSEFSUFJPUF9PVVQpOworICAgICAgICBvdXQucHJpbnRsbigiICAgIC8vICIgKyBXQVJOSU5HKTsKKyAgICAgICAgZW1pdFJhbmdlc1N0cmluZyhvdXQsIGNhc2VTZW5zaXRpdmUsICJDQVNFX1NFTlNJVElWRV9SQU5HRVMiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgdGhlIHNldCBvZiBjYXNlLXNlbnNpdGl2ZSBjaGFyYWN0ZXJzLiAgVGhlc2UgYXJlIGNoYXJhY3RlcnMKKyAgICAgKiB0aGF0IHBhcnRpY2lwYXRlIGluIGFueSBjYXNlIG1hcHBpbmcgb3BlcmF0aW9uIGFzIGEgc291cmNlIG9yCisgICAgICogYXMgYSBtZW1iZXIgb2YgYSB0YXJnZXQgc3RyaW5nLgorICAgICAqLworICAgIHN0YXRpYyBVbmljb2RlU2V0IGdldENhc2VTZW5zaXRpdmUoKSB7CisgICAgICAgIFVuaWNvZGVTZXQgY2FzZVNlbnNpdGl2ZSA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIExvY2FsZSBsb2MgPSBMb2NhbGUuVVM7CisgICAgICAgIEJyZWFrSXRlcmF0b3IgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFRpdGxlSW5zdGFuY2UobG9jKTsKKyAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPD0gMHgxMEZGRkY7ICsrYykgeworICAgICAgICAgICAgU3RyaW5nIGNwID0gVVRGMTYudmFsdWVPZihjKTsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajw0OyArK2opIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IG51bGw7CisgICAgICAgICAgICAgICAgc3dpdGNoIChqKSB7CisgICAgICAgICAgICAgICAgY2FzZSAwOiBzID0gVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShsb2MsIGNwKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAxOiBzID0gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShsb2MsIGNwKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAyOiBzID0gVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShsb2MsIGNwLCBiaSk7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMzogcyA9IFVDaGFyYWN0ZXIuZm9sZENhc2UoY3AsIERFRkFVTFRfQ0FTRV9NQVApOyBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFzLmVxdWFscyhjcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGNjOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBrPTA7IGs8cy5sZW5ndGgoKTsgays9VVRGMTYuZ2V0Q2hhckNvdW50KGNjKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2MgPSBVVEYxNi5jaGFyQXQocywgayk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlU2Vuc2l0aXZlLmFkZChjYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaz0wOyBrPGNwLmxlbmd0aCgpOyBrKz1VVEYxNi5nZXRDaGFyQ291bnQoY2MpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYyA9IFVURjE2LmNoYXJBdChjcCwgayk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlU2Vuc2l0aXZlLmFkZChjYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBBbHNvIGRvIHRoZSBzaW5nbGUtY29kZXBvaW50IEFQSS4gIFRoaXMgc2hvdWxkbid0IGFkZCBhbnkKKyAgICAgICAgICAgIC8vIGNvZGUgcG9pbnRzLCBidXQgd2UgZG8gaXQgZm9yIGNvbXBsZXRlbmVzcy4KKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajw0OyArK2opIHsKKyAgICAgICAgICAgICAgICBpbnQgZCA9IDA7CisgICAgICAgICAgICAgICAgc3dpdGNoIChqKSB7CisgICAgICAgICAgICAgICAgY2FzZSAwOiBkID0gVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShjKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAxOiBkID0gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAyOiBkID0gVUNoYXJhY3Rlci50b1RpdGxlQ2FzZShjKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAzOiBkID0gVUNoYXJhY3Rlci5mb2xkQ2FzZShjLCBERUZBVUxUX0NBU0VfTUFQKTsgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChkICE9IGMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjYXNlU2Vuc2l0aXZlLmNvbnRhaW5zKGMpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAhY2FzZVNlbnNpdGl2ZS5jb250YWlucyhkKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXYXJuaW5nOiBjb2RlIHBvaW50ICIgKyBjICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiID0+ICIgKyBkICsgIiBjcmVhdGVkIE5FVyBNQVBQSU5HIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGZvciBDYXNlX1NlbnNpdGl2ZSIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhc2VTZW5zaXRpdmUuYWRkKGMpOworICAgICAgICAgICAgICAgICAgICBjYXNlU2Vuc2l0aXZlLmFkZChkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNhc2VTZW5zaXRpdmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBVbmljb2RlU2V0LCBlbWl0IGl0IGFzIGFuIGFycmF5IG9mIFVDaGFyIHBhaXJzLiAgRWFjaAorICAgICAqIHBhaXIgd2lsbCBiZSB0aGUgc3RhcnQvZW5kIG9mIGEgcmFuZ2UuICBDb2RlIHBvaW50cyA+PSBVKzEwMDAwCisgICAgICogd2lsbCBiZSByZXByZXNlbnRlZCBhcyBzdXJyb2dhdGUgcGFpcnMuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgZW1pdFVDaGFyUmFuZ2VzQXJyYXkoUHJpbnRTdHJlYW0gb3V0LCBVbmljb2RlU2V0IHNldCwgU3RyaW5nIGlkKSB7CisgICAgICAgIC8vIFN0b3JlIHRoZSBwYWlycyBpbiBhIFN0cmluZ0J1ZmZlci4gIFRoaXMgaGFuZGxlcyBzdXJyb2dhdGUKKyAgICAgICAgLy8gcmVwcmVzZW50YXRpb24uCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzZXQuZ2V0UmFuZ2VDb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIHNldC5nZXRSYW5nZVN0YXJ0KGkpKTsKKyAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIHNldC5nZXRSYW5nZUVuZChpKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gRW1pdCB0aGUgcGFpcnMKKyAgICAgICAgb3V0LnByaW50bG4oInN0YXRpYyBjb25zdCBVQ2hhciAiICsgaWQgKyAiW10gPSB7Iik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxidWYubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgb3V0LnByaW50KCIgICAgIik7CisgICAgICAgICAgICBmb3IgKGludCBuPTA7IG4rKzwxMCAmJiBpPGJ1Zi5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgb3V0LnByaW50KCIweCIgKyBVdGlsaXR5LmhleChidWYuY2hhckF0KGkpLCA0KSArICcsJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgICAgIG91dC5wcmludGxuKCJ9OyIpOworICAgICAgICBvdXQucHJpbnRsbigiI2RlZmluZSAiICsgaWQgKyAiX0xFTkdUSCAoc2l6ZW9mKCIgKyBpZCArCisgICAgICAgICAgICAgICAgICAgICIpL3NpemVvZigiICsgaWQgKyAiWzBdKSkiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIFVuaWNvZGVTZXQsIGVtaXQgaXQgYXMgYSBKYXZhIHN0cmluZy4gIFRoZSBtb3N0IGVjb25vbWljYWwKKyAgICAgKiBmb3JtYXQgaXMgbm90IHRoZSBwYXR0ZXJuLCBidXQgaW5zdGVhZCBhIHBhaXJzIGxpc3QsIHdpdGggZWFjaAorICAgICAqIHJhbmdlIHBhaXIgcmVwcmVzZW50ZWQgYXMgdHdvIGFkamFjZW50IGNoYXJhY3RlcnMuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgZW1pdFJhbmdlc1N0cmluZyhQcmludFN0cmVhbSBvdXQsIFVuaWNvZGVTZXQgc2V0LCBTdHJpbmcgaWQpIHsKKyAgICAgICAgLy8gU3RvcmUgdGhlIHBhaXJzIGluIGEgU3RyaW5nQnVmZmVyLiAgVGhpcyBoYW5kbGVzIHN1cnJvZ2F0ZQorICAgICAgICAvLyByZXByZXNlbnRhdGlvbi4KKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNldC5nZXRSYW5nZUNvdW50KCk7ICsraSkgeworICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1Ziwgc2V0LmdldFJhbmdlU3RhcnQoaSkpOworICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1Ziwgc2V0LmdldFJhbmdlRW5kKGkpKTsKKyAgICAgICAgfQorICAgICAgICAvLyBFbWl0IHRoZSBwYWlycworICAgICAgICBvdXQucHJpbnRsbigiICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyAiICsgaWQgKyAiID0iKTsKKyAgICAgICAgb3V0LnByaW50bG4oVXRpbGl0eS5mb3JtYXRGb3JTb3VyY2UoYnVmLnRvU3RyaW5nKCkpICsgIjsiKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvVW5pY29kZVNldENsb3N1cmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Vbmljb2RlU2V0Q2xvc3VyZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVlMTkyMDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvVW5pY29kZVNldENsb3N1cmUuamF2YQpAQCAtMCwwICsxLDMwMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuZGV2LnRvb2wudHJhbnNsaXQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKy8vaW1wb3J0IGphdmEudGV4dC4qOworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvLyBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdC5Vbmljb2RlU2V0Q2xvc3VyZQorLy8gY29tLmlibS5pY3UuZGV2LnRlc3QudHJhbnNsaXQuVHJhbnNsaXRlcmF0b3JUZXN0CisKK3B1YmxpYyBjbGFzcyBVbmljb2RlU2V0Q2xvc3VyZSB7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICBVbmljb2RlU2V0IGZvbyA9ICAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltcdTFGRjYtXHUxRkZEXHUyMDAwLVx1MjAwMVx1MjEyNl0iKTsKKyAgICAgICAgCisgICAgICAgIHRlc3QoKTsKKyAgICAgICAgaWYoZm9vPT1udWxsKXt9CisgICAgICAgIAorICAgICAgICAvKiBUaGUgZm9sbG93aW5nIGlzIHN1cGVyY2VkZWQgYnkgQWxhbidzIHRvb2wKKyAgICAgICAgCisgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKCJVbmljb2RlU2V0Q2xvc3VyZS50eHQiKTsKKyAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gZi5nZXRDYW5vbmljYWxGaWxlKCkudG9TdHJpbmcoKTsKKyAgICAgICAgb3V0ID0gbmV3IFByaW50V3JpdGVyKAorICAgICAgICAgICAgbmV3IE91dHB1dFN0cmVhbVdyaXRlcigKKyAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlbmFtZSksICJVVEYtOCIpKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcml0aW5nICIgKyBmaWxlbmFtZSk7CisgICAgICAgIG91dC5wcmludCgnXHVGRUZGJyk7IC8vIEJPTQorICAgICAgICAKKyAgICAgICAgZ2VuZXJhdGVTZXRzKCJMYXRpbi1LYXRha2FuYSIsIHRydWUsIE5vcm1hbGl6ZXIuREVDT01QX0NPTVBBVCwgdHJ1ZSwKKyJbJywuYS16flx1MDBERlx1MDBFNlx1MDBGMFx1MDBGOFx1MDBGRVx1MDJCRVx1MDMwMC1cdTAzNEVcdTAzNjAtXHUwMzYyXHUwNDgzLVx1MDQ4Nlx1MDU5MS1cdTA1QTFcdTA1QTMtXHUwNUI5XHUwNUJCLVx1MDVCRFx1MDVCRlx1MDVDMS1cdTA1QzJcdTA1QzRcdTA2NEItXHUwNjU1XHUwNjcwXHUwNkQ2LVx1MDZEQ1x1MDZERi1cdTA2RTRcdTA2RTctXHUwNkU4XHUwNkVBLVx1MDZFRFx1MDcxMVx1MDczMC1cdTA3NEFcdTA3QTYtXHUwN0IwXHUwOTAxLVx1MDkwMlx1MDkzQ1x1MDk0MS1cdTA5NDhcdTA5NERcdTA5NTEtXHUwOTU0XHUwOTYyLVx1MDk2M1x1MDk4MVx1MDlCQ1x1MDlDMS1cdTA5QzRcdTA5Q0RcdTA5RTItXHUwOUUzXHUwQTAyXHUwQTNDXHUwQTQxLVx1MEE0Mlx1MEE0Ny1cdTBBNDhcdTBBNEItXHUwQTREXHUwQTcwLVx1MEE3MVx1MEE4MS1cdTBBODJcdTBBQkNcdTBBQzEtXHUwQUM1XHUwQUM3LVx1MEFDOFx1MEFDRFx1MEIwMVx1MEIzQ1x1MEIzRlx1MEI0MS1cdTBCNDNcdTBCNERcdTBCNTZcdTBCODJcdTBCQzBcdTBCQ0RcdTBDM0UtXHUwQzQwXHUwQzQ2LVx1MEM0OFx1MEM0QS1cdTBDNERcdTBDNTUtXHUwQzU2XHUwQ0JGXHUwQ0M2XHUwQ0NDLVx1MENDRFx1MEQ0MS1cdTBENDNcdTBENERcdTBEQ0FcdTBERDItXHUwREQ0XHUwREQ2XHUwRTMxXHUwRTM0LVx1MEUzQVx1MEU0Ny1cdTBFNEVcdTBFQjFcdTBFQjQtXHUwRUI5XHUwRUJCLVx1MEVCQ1x1MEVDOC1cdTBFQ0RcdTBGMTgtXHUwRjE5XHUwRjM1XHUwRjM3XHUwRjM5XHUwRjcxLVx1MEY3RVx1MEY4MC1cdTBGODRcdTBGODYtXHUwRjg3XHUwRjkwLVx1MEY5N1x1MEY5OS1cdTBGQkNcdTBGQzZcdTEwMkQtXHUxMDMwXHUxMDMyXHUxMDM2LVx1MTAzN1x1MTAzOVx1MTA1OC1cdTEwNTlcdTE3QjctXHUxN0JEXHUxN0M2XHUxN0M5LVx1MTdEM1x1MThBOVx1MjBEMC1cdTIwRENcdTIwRTFcdTMwMkEtXHUzMDJGXHVGQjFFXHVGRTIwLVx1RkUyM1xcVTAwMDFEMTY3LVxcVTAwMDFEMTY5XFxVMDAwMUQxN0ItXFxVMDAwMUQxODJcXFUwMDAxRDE4NS1cXFUwMDAxRDE4QlxcVTAwMDFEMUFBLVxcVTAwMDFEMUFEXSIKKyAgICAgICAgKTsKKyAgICAgICAgZ2VuZXJhdGVTZXRzKCJMYXRpbi1LYXRha2FuYSIsIGZhbHNlLCBOb3JtYWxpemVyLkRFQ09NUF9DT01QQVQsIGZhbHNlLAorIlt+XHUzMDAxLVx1MzAwMlx1MzBBMS1cdTMwQUJcdTMwQURcdTMwQUZcdTMwQjFcdTMwQjNcdTMwQjVcdTMwQjdcdTMwQjlcdTMwQkJcdTMwQkRcdTMwQkZcdTMwQzFcdTMwQzMtXHUzMEM0XHUzMEM2XHUzMEM4XHUzMENBLVx1MzBDRlx1MzBEMlx1MzBENVx1MzBEOFx1MzBEQlx1MzBERS1cdTMwRjNcdTMwRjUtXHUzMEY2XHUzMEZDLVx1MzBGRF0iCisgICAgICAgICk7CisgICAgICAgIAorICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICAgICAgCisgICAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAgICAgaWYgKHRydWUpIHJldHVybjsgLy8gc2tpcCB0aGUgc3R1ZmYgd2UndmUgZG9uZSBhbHJlYWR5CisgICAgICAgIAorICAgICAgICBnZW5lcmF0ZVNldHMoIkN5cmlsbGljLUxhdGluIiwgdHJ1ZSwgTm9ybWFsaXplci5ERUNPTVAsIGZhbHNlLAorICAgICAgICAgICAgIltcdTA0MDJcdTA0MDQtXHUwNDA2XHUwNDA4LVx1MDQwQlx1MDQwRi1cdTA0MThcdTA0MUEtXHUwNDM4XHUwNDNBLVx1MDQ0Rlx1MDQ1Mlx1MDQ1NC1cdTA0NTZcdTA0NTgtXHUwNDVCXHUwNDVGXHUwNDkwLVx1MDQ5NVx1MDQ5OC1cdTA0OTlcdTA0RDQtXHUwNEQ1XHUwNEQ4LVx1MDREOV0iCisgICAgICAgICk7CisgICAgICAgIGdlbmVyYXRlU2V0cygiTGF0aW4tQ3lyaWxsaWMiLCBmYWxzZSwgTm9ybWFsaXplci5ERUNPTVAsIGZhbHNlLAorICAgICAgICAgICAgIltBLVphLXpcdTAwQzZcdTAwRTZcdTAxMTAtXHUwMTExXHUwMThGXHUwMjU5XHUwMkI5LVx1MDJCQV0iCisgICAgICAgICk7CisgICAgICAgICovCisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBnZW5lcmF0ZVNldHMoU3RyaW5nIGxhYmVsLCBib29sZWFuIGZvcndhcmQsIAorICAgICAgICAgICAgTm9ybWFsaXplci5Nb2RlIG0sIGJvb2xlYW4gbG93ZXJGaXJzdCwgU3RyaW5nIHJ1bGVzKSB7CisgICAgICAgIFVuaWNvZGVTZXQgcyA9IG5ldyBVbmljb2RlU2V0KHJ1bGVzKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJHZW5lcmF0aW5nICIgKyBsYWJlbCArIChmb3J3YXJkID8gIiIgOiAiIEJBQ0tXQVJEIikpOworICAgICAgICBjbG9zZShzLCBtLCBsb3dlckZpcnN0KTsKKyAgICAgICAgb3V0LnByaW50bG4oIiMgTUlOSU1BTCBGSUxURVIgR0VORVJBVEVEIEZPUjogIiArIGxhYmVsICsgKGZvcndhcmQgPyAiIiA6ICIgQkFDS1dBUkQiKSk7CisgICAgICAgIG91dC5wcmludGxuKCI6OiAiIAorICAgICAgICAgICAgKyAoZm9yd2FyZCA/ICIiIDogIiggIikgCisgICAgICAgICAgICArIHMudG9QYXR0ZXJuKHRydWUpIAorICAgICAgICAgICAgKyAoZm9yd2FyZCA/ICIiIDogIiApIikKKyAgICAgICAgICAgICsgIiA7Iik7CisgICAgICAgIG91dC5wcmludGxuKCk7CisgICAgICAgIG91dC5wcmludGxuKCJVbmljb2RlOiAiICsgcy50b1BhdHRlcm4oZmFsc2UpKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGJvb2xlYW4gR0VORVJBVEUgPSBmYWxzZTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgdGVzdCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBGaWxlIGYgPSBuZXcgRmlsZSgiVGVzdFVuaWNvZGVTZXRDbG9zdXJlLnR4dCIpOworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBmLmdldENhbm9uaWNhbEZpbGUoKS50b1N0cmluZygpOworICAgICAgICBvdXQgPSBuZXcgUHJpbnRXcml0ZXIoCisgICAgICAgICAgICBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKAorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGVuYW1lKSwgIlVURi04IikpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyaXRpbmcgIiArIGZpbGVuYW1lKTsKKyAgICAgICAgb3V0LnByaW50KCdcdUZFRkYnKTsgLy8gQk9NCisgICAgICAgIAorICAgICAgICBHRU5FUkFURSA9IHRydWU7CisgICAgICAgIHRlc3QoIls6RGV2YW5hZ2FyaTpdIik7CisgICAgICAgIC8qCisgICAgICAgIHRlc3QoIltcdTAwRTBCY10iKTsKKyAgICAgICAgdGVzdCgiW21dIik7CisgICAgICAgICovCisgICAgICAgIAorICAgICAgICBvdXQuY2xvc2UoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZpbmFsIE5vcm1hbGl6ZXIuTW9kZVtdIHRlc3RNb2RlcyA9IHsKKyAgICAgICAgTm9ybWFsaXplci5OT05FLCBOb3JtYWxpemVyLk5GRCwgTm9ybWFsaXplci5ORkMsIE5vcm1hbGl6ZXIuTkZLRCwgTm9ybWFsaXplci5ORktDfTsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW10gbW9kZU5hbWVzID0geworICAgICAgICAiTm9ORiIsICJORkQiLCAiTkZDIiwgIk5GS0QiLCAiTkZLQyJ9OworICAgICAgICAKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbltdIHRlc3RDYXNlcyA9IHsKKyAgICAgICAgZmFsc2UsIHRydWV9OworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBjYXNlTmFtZXMgPSB7CisgICAgICAgICJub0xvd2VyIiwgImxvd2VyIn07CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHRlc3QoU3RyaW5nIHRlc3RTdHIpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVbmljb2RlU2V0IG9yaWdpbmFsID0gbmV3IFVuaWNvZGVTZXQodGVzdFN0cik7CisgICAgICAgIAorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRlc3RpbmcgQ2xvc3VyZSBvZjogIiArIG9yaWdpbmFsLnRvUGF0dGVybih0cnVlKSk7CisgICAgICAgIG91dC5wcmludGxuKCJUZXN0aW5nIENsb3N1cmUgb2Y6ICIgKyBvcmlnaW5hbC50b1BhdHRlcm4oZmFsc2UpKTsKKyAgICAgICAgVW5pY29kZVNldCByYXcgPSBuZXcgVW5pY29kZVNldChvcmlnaW5hbCk7CisgICAgICAgIG9yaWdpbmFsLmNvbXBsZW1lbnQoKTsKKyAgICAgICAgb3JpZ2luYWwuY29tcGxlbWVudCgpOworICAgICAgICBpZiAoIXJhdy5lcXVhbHMob3JpZ2luYWwpKSB7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiRXF1YWxzOiIgKyBvcmlnaW5hbC50b1BhdHRlcm4oZmFsc2UpKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdXcml0ZXIgc3dMb2cgPSBudWxsOworICAgICAgICBQcmludFdyaXRlciBsb2cgPSBudWxsOworICAgICAgICAKKyAgICAgICAgaWYgKEdFTkVSQVRFKSB7CisgICAgICAgICAgICBzd0xvZyA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKKyAgICAgICAgICAgIGxvZyA9IG5ldyBQcmludFdyaXRlcihzd0xvZyk7CisgICAgICAgICAgICBsb2cucHJpbnRsbigic3RhdGljIFVuaWNvZGVTZXRbXVtdIFVOQ0hBTkdFRCA9IHsiKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKEdFTkVSQVRFKSBsb2cucHJpbnRsbigiICAgIHsiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdGVzdE1vZGVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgVW5pY29kZVNldCB0ZXN0ID0gbmV3IFVuaWNvZGVTZXQob3JpZ2luYWwpOworICAgICAgICAgICAgICAgIGNsb3NlKHRlc3QsIHRlc3RNb2Rlc1tqXSwgdGVzdENhc2VzW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAoR0VORVJBVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLnByaW50bG4oIlx0bmV3IFVuaWNvZGVTZXQoXCIiICsgZ2VuZXJhdGVkU2V0LnRvUGF0dGVybih0cnVlKSArICJcIiksIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBsYWJlbCA9IGNhc2VOYW1lc1tpXSAgKyAiLCAiICsgbW9kZU5hbWVzW2pdIDsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obGFiZWwpOworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKGxhYmVsICsgIjogIiArIHRlc3QudG9QYXR0ZXJuKGZhbHNlKSk7CisgICAgICAgICAgICAgICAgdGVzdC5yZW1vdmVBbGwob3JpZ2luYWwpOworICAgICAgICAgICAgICAgIGlmICh0ZXN0LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiXHRObyBEaWZmZXJlbmNlIGZyb20gb3JpZ2luYWwiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiXHREaWZmZXJlbmNlID0gIiArIHRlc3QudG9QYXR0ZXJuKGZhbHNlKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG91dC5mbHVzaCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKEdFTkVSQVRFKSBsb2cucHJpbnRsbigiICAgIH0sIik7CisgICAgICAgICAgICBvdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoR0VORVJBVEUpIHsKKyAgICAgICAgICAgIGxvZy5wcmludGxuKCJ9OyIpOworICAgICAgICAgICAgb3V0LnByaW50KHN3TG9nLmdldEJ1ZmZlcigpLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKgorICAgICAgICAgICAgY2xvc2UodGVzdCwgTm9ybWFsaXplci5ERUNPTVAsIGZhbHNlKTsKKyAgICAgICAgICAgIHByaW50KCJORkQiLCB0ZXN0KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGVzdCA9IG5ldyBVbmljb2RlU2V0KHRlc3RTdHIpOworICAgICAgICAgICAgY2xvc2UodGVzdCwgTm9ybWFsaXplci5OT19PUCwgdHJ1ZSk7CisgICAgICAgICAgICBwcmludCgiTG93ZXIiLCB0ZXN0KTsKKworICAgICAgICAgICAgdGVzdCA9IG5ldyBVbmljb2RlU2V0KHRlc3RTdHIpOworICAgICAgICAgICAgY2xvc2UodGVzdCwgTm9ybWFsaXplci5DT01QT1NFLCBmYWxzZSk7CisgICAgICAgICAgICBwcmludCgiTkZDIiwgdGVzdCk7CisKKyAgICAgICAgICAgIHRlc3QgPSBuZXcgVW5pY29kZVNldCh0ZXN0U3RyKTsKKyAgICAgICAgICAgIGNsb3NlKHRlc3QsIE5vcm1hbGl6ZXIuREVDT01QX0NPTVBBVCwgZmFsc2UpOworICAgICAgICAgICAgcHJpbnQoIk5GS0QiLCB0ZXN0KTsKKworICAgICAgICAgICAgdGVzdCA9IG5ldyBVbmljb2RlU2V0KHRlc3RTdHIpOworICAgICAgICAgICAgY2xvc2UodGVzdCwgTm9ybWFsaXplci5DT01QT1NFX0NPTVBBVCwgZmFsc2UpOworICAgICAgICAgICAgcHJpbnQoIk5GS0MiLCB0ZXN0KTsKKyAgICAgICAgKi8KKyAgICB9CisgICAgCisgICAgc3RhdGljIFByaW50V3JpdGVyIG91dDsKKyAgICAKKyAgICAvKgorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludChTdHJpbmcgbGFiZWwsIFVuaWNvZGVTZXQgdGVzdCkgeworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obGFiZWwpOworICAgICAgICBvdXQucHJpbnRsbihsYWJlbCArICI6ICIgKyB0ZXN0LnRvUGF0dGVybihmYWxzZSkpOworICAgICAgICBvdXQucHJpbnRsbigpOworICAgIH0KKyAgICAqLworICAgIAorICAgIC8vIGR1bWIsIHNsb3cgaW1wbGVtZW50YXRpb25zCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBORlRvU3RyaW5nIGltcGxlbWVudHMgQ2hhcjMyVG9TdHJpbmcgeworICAgICAgICBOb3JtYWxpemVyLk1vZGUgbW9kZTsKKyAgICAgICAgYm9vbGVhbiBsb3dlckZpcnN0OworICAgICAgICAKKyAgICAgICAgTkZUb1N0cmluZyhOb3JtYWxpemVyLk1vZGUgbSwgYm9vbGVhbiBsb3dlckZpcnN0KSB7CisgICAgICAgICAgICBtb2RlID0gbTsKKyAgICAgICAgICAgIHRoaXMubG93ZXJGaXJzdCA9IGxvd2VyRmlyc3Q7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KGludCBjcCkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IFVURjE2LnZhbHVlT2YoY3ApOworICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IHNvdXJjZTsKKyAgICAgICAgICAgIGlmIChsb3dlckZpcnN0KSByZXN1bHQgPSBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKExvY2FsZS5VUywgcmVzdWx0KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKHJlc3VsdCwgbW9kZSk7CisgICAgICAgICAgICBpZiAobG93ZXJGaXJzdCkgcmVzdWx0ID0gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShMb2NhbGUuVVMsIHJlc3VsdCk7CisgICAgICAgICAgICBpZiAocmVzdWx0LmVxdWFscyhzb3VyY2UpKSByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIAorICAgIC8qKiBSZXR1cm5zIGEgbWFwcGluZyBmcm9tIGNoYXIzMiB0byBhIHN0cmluZy4gSWYgdGhlcmUgaXMgbm8gY2hhbmdlLAorICAgICAqIG51bGwgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgIAorICAgIGludGVyZmFjZSBDaGFyMzJUb1N0cmluZyB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KGludCBjcCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBib29sZWFuIEZBU1QgPSB0cnVlOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBjbG9zZShVbmljb2RlU2V0IHMsIE5vcm1hbGl6ZXIuTW9kZSBtLCBib29sZWFuIGxvd2VyRmlyc3QpIHsKKyAgICAgICAgQ2hhcjMyVG9TdHJpbmcgZiA9IG5ldyBORlRvU3RyaW5nKG0sIGxvd2VyRmlyc3QpOworICAgICAgICBpZiAoRkFTVCkgeworICAgICAgICAgICAgaW50IG1tOworICAgICAgICAgICAgZm9yIChtbSA9IDA7IDsgKyttbSkgaWYgKG0gPT0gdGVzdE1vZGVzW21tXSkgYnJlYWs7IC8vIGZpbmQgbW9kZQorICAgICAgICAgICAgY2xvc2UyKHMsIGYsIGxvd2VyRmlyc3QgPyAxIDogMCwgbW0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNsb3NlKHMsIGYpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgY2xvc2UoVW5pY29kZVNldCBzLCBDaGFyMzJUb1N0cmluZyBmKSB7CisgICAgICAgIGlmIChHRU5FUkFURSkgZ2VuZXJhdGVkU2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGNwID0gMDsgY3AgPD0gMHgxMEZGRkY7ICsrY3ApIHsKKyAgICAgICAgICAgIGludCB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKGNwKTsKKyAgICAgICAgICAgIGlmICh0eXBlID09IENoYXJhY3Rlci5VTkFTU0lHTkVEKSBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9pZiAoY3AgPT0gJ1x1MDBlNycpIHsKKyAgICAgICAgICAgICAgLy8gIFN5c3RlbS5vdXQucHJpbnRsbigiZGVidWciKTsKKyAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGYuZ2V0KGNwKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgY29udGludWU7CisgICAgICAgICAgICBpZiAoR0VORVJBVEUpIHsKKyAgICAgICAgICAgICAgICBnZW5lcmF0ZWRTZXQuYWRkKGNwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghY29udGFpbnNTb21lKHMsIHJlc3VsdCkpIGNvbnRpbnVlOworICAgICAgICAgICAgcy5hZGQoY3ApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBjbG9zZTIoVW5pY29kZVNldCBzLCBDaGFyMzJUb1N0cmluZyBmLCBpbnQgbGMsIGludCBtb2RlKSB7CisgICAgICAgIFVuaWNvZGVTZXQgdW5jaGFuZ2VkID0gbmV3IFVuaWNvZGVTZXQoKTsgLy8gVU5DSEFOR0VEW2xjXVttb2RlXTsKKyAgICAgICAgaW50IGNvdW50ID0gdW5jaGFuZ2VkLmdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSB1bmNoYW5nZWQuZ2V0UmFuZ2VTdGFydChpKTsKKyAgICAgICAgICAgIGludCBlbmQgPSB1bmNoYW5nZWQuZ2V0UmFuZ2VFbmQoaSk7CisgICAgICAgICAgICBmb3IgKGludCBjcCA9IHN0YXJ0OyBjcCA8PSBlbmQ7ICsrY3ApIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0gZi5nZXQoY3ApOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiU29tZXRoaW5nIHdyb25nIC0tIHNob3VsZCBuZXZlciBoYXBwZW4iKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5zU29tZShzLCByZXN1bHQpKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBzLmFkZChjcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICBzdGF0aWMgZmluYWwgVW5pY29kZVNldFtdW10gVU5DSEFOR0VEID0geworICAgICAgICB7IC8vIFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkJDXHUxRkJFXHUxRkMxLVx1MUZDNFx1MUZDNi1cdTFGRDNcdTFGRDYtXHUxRkRCXHUxRkRELVx1MUZFRlx1MUZGMi1cdTFGRjQKKyAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltcdTFGRjYtXHUxRkZEXHUyMDAwLVx1MjAwMVx1MjEyNl0iKSwKKyAgICAgICAgLy8gXHUyMTJBLVx1MjEyQlx1MjE5QS1cdTIxOUJcdTIxQUVcdTIxQ0QtXHUyMUNGXHUyMjA0XHUyMjA5XHUyMjBDXHUyMjI0XHUyMjI2XHUyMjQxXHUyMjQ0XHUyMjQ3XHUyMjQ5XHUyMjYwXHUyMjYyXHUyMjZELVx1MjI3MVx1MjI3NC1cdTIyNzVcdTIyNzgKKyAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltcdTAwQzAtXHUwMEM1XHUwMEM3LVx1MDBDRlx1MDBEMS1cdTAwRDZcdTAwRDktXHUwMEREXHUwMEUwLVx1MDBFNVx1MDBFNy1cdTAwRUZcdTAwRjEtXHUwMEY2XHUwMEY5LVx1MDBGRFx1MDBGRi1cdTAxMEZcdTAxMTItXHUwMTI1XHUwMTI4LVx1MDEzMFx1MDEzNC1cdTAxMzdcdTAxMzktXHUwMTNFXHUwMTQzLVx1MDE0OFx1MDE0Qy1cdTAxNTFcdTAxNTQtXHUwMTY1XHUwMTY4LVx1MDE3RVx1MDFBMC1cdTAxQTFcdTAxQUYtXHUwMUIwXHUwMUNELVx1MDFEQ1x1MDFERS1cdTAxRTNcdTAxRTYtXHUwMUYwXHUwMUY0LVx1MDFGNVx1MDFGOC1cdTAyMUJcdTAyMUUtXHUwMjFGXHUwMjI2LVx1MDIzM1x1MDM0MC1cdTAzNDFcdTAzNDMtXHUwMzQ0XHUwMzc0XHUwMzdFXHUwMzg1LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzOTBcdTAzQUEtXHUwM0IwXHUwM0NBLVx1MDNDRVx1MDNEMy1cdTAzRDRcdTA0MDAtXHUwNDAxXHUwNDAzXHUwNDA3XHUwNDBDLVx1MDQwRVx1MDQxOVx1MDQzOVx1MDQ1MC1cdTA0NTFcdTA0NTNcdTA0NTdcdTA0NUMtXHUwNDVFXHUwNDc2LVx1MDQ3N1x1MDRDMS1cdTA0QzJcdTA0RDAtXHUwNEQzXHUwNEQ2LVx1MDREN1x1MDREQS1cdTA0REZcdTA0RTItXHUwNEU3XHUwNEVBLVx1MDRGNVx1MDRGOC1cdTA0RjlcdTA2MjItXHUwNjI2XHUwNkMwXHUwNkMyXHUwNkQzXHUwOTI5XHUwOTMxXHUwOTM0XHUwOTU4LVx1MDk1Rlx1MDlDQi1cdTA5Q0NcdTA5REMtXHUwOUREXHUwOURGXHUwQTMzXHUwQTM2XHUwQTU5LVx1MEE1Qlx1MEE1RVx1MEI0OFx1MEI0Qi1cdTBCNENcdTBCNUMtXHUwQjVEXHUwQjk0XHUwQkNBLVx1MEJDQ1x1MEM0OFx1MENDMFx1MENDNy1cdTBDQzhcdTBDQ0EtXHUwQ0NCXHUwRDRBLVx1MEQ0Q1x1MEREQVx1MEREQy1cdTBEREVcdTBGNDNcdTBGNERcdTBGNTJcdTBGNTdcdTBGNUNcdTBGNjlcdTBGNzNcdTBGNzUtXHUwRjc2XHUwRjc4XHUwRjgxXHUwRjkzXHUwRjlEXHUwRkEyXHUwRkE3XHUwRkFDXHUwRkI5XHUxMDI2XHUxRTAwLVx1MUU5OVx1MUU5Qlx1MUVBMC1cdTFFRjlcdTFGMDAtXHUxRjE1XHUxRjE4LVx1MUYxRFx1MUYyMC1cdTFGNDVcdTFGNDgtXHUxRjREXHUxRjUwLVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Ri1cdTFGN0RcdTFGODAtXHUxRkI0XHUxRkI2LVx1MUZCQ1x1MUZCRVx1MUZDMS1cdTFGQzRcdTFGQzYtXHUxRkQzXHUxRkQ2LVx1MUZEQlx1MUZERC1cdTFGRUZcdTFGRjItXHUxRkY0XHUxRkY2LVx1MUZGRFx1MjAwMC1cdTIwMDFcdTIxMjZcdTIxMkEtXHUyMTJCXHUyMTlBLVx1MjE5Qlx1MjFBRVx1MjFDRC1cdTIxQ0ZcdTIyMDRcdTIyMDlcdTIyMENcdTIyMjRcdTIyMjZcdTIyNDFcdTIyNDRcdTIyNDdcdTIyNDlcdTIyNjBcdTIyNjJcdTIyNkQtXHUyMjcxXHUyMjc0LVx1MjI3NVx1MjI3OC1cdTIyNzlcdTIyODAtXHUyMjgxXHUyMjg0LVx1MjI4NVx1MjI4OC1cdTIyODlcdTIyQUMtXHUyMkFGXHUyMkUwLVx1MjJFM1x1MjJFQS1cdTIyRURcdTIzMjktXHUyMzJBXHUzMDRDXHUzMDRFXHUzMDUwXHUzMDUyXHUzMDU0XHUzMDU2XHUzMDU4XHUzMDVBXHUzMDVDXHUzMDVFXHUzMDYwXHUzMDYyXHUzMDY1XHUzMDY3XHUzMDY5XHUzMDcwLVx1MzA3MVx1MzA3My1cdTMwNzRcdTMwNzYtXHUzMDc3XHUzMDc5LVx1MzA3QVx1MzA3Qy1cdTMwN0RcdTMwOTRcdTMwOUVcdTMwQUNcdTMwQUVcdTMwQjBcdTMwQjJcdTMwQjRcdTMwQjZcdTMwQjhcdTMwQkFcdTMwQkNcdTMwQkVcdTMwQzBcdTMwQzJcdTMwQzVcdTMwQzdcdTMwQzlcdTMwRDAtXHUzMEQxXHUzMEQzLVx1MzBENFx1MzBENi1cdTMwRDdcdTMwRDktXHUzMERBXHUzMERDLVx1MzBERFx1MzBGNFx1MzBGNy1cdTMwRkFcdTMwRkVcdUFDMDAtXHVEN0EzXHVGOTAwLVx1RkEwRFx1RkExMFx1RkExMlx1RkExNS1cdUZBMUVcdUZBMjBcdUZBMjJcdUZBMjUtXHVGQTI2XHVGQTJBLVx1RkEyRFx1RkIxRFx1RkIxRlx1RkIyQS1cdUZCMzZcdUZCMzgtXHVGQjNDXHVGQjNFXHVGQjQwLVx1RkI0MVx1RkI0My1cdUZCNDRcdUZCNDYtXHVGQjRFXSIpLAorICAgICAgICBuZXcgVW5pY29kZVNldCgiW1x1MDM0MC1cdTAzNDFcdTAzNDMtXHUwMzQ0XHUwMzc0XHUwMzdFXHUwMzg3XHUwOTU4LVx1MDk1Rlx1MDlEQy1cdTA5RERcdTA5REZcdTBBMzNcdTBBMzZcdTBBNTktXHUwQTVCXHUwQTVFXHUwQjVDLVx1MEI1RFx1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OVx1MEY3M1x1MEY3NS1cdTBGNzZcdTBGNzhcdTBGODFcdTBGOTNcdTBGOURcdTBGQTJcdTBGQTdcdTBGQUNcdTBGQjlcdTFGNzFcdTFGNzNcdTFGNzVcdTFGNzdcdTFGNzlcdTFGN0JcdTFGN0RcdTFGQkJcdTFGQkVcdTFGQzlcdTFGQ0JcdTFGRDNcdTFGREJcdTFGRTNcdTFGRUJcdTFGRUUtXHUxRkVGXHUxRkY5XHUxRkZCXHUxRkZEXHUyMDAwLVx1MjAwMVx1MjEyNlx1MjEyQS1cdTIxMkJcdTIzMjktXHUyMzJBXHVGOTAwLVx1RkEwRFx1RkExMFx1RkExMlx1RkExNS1cdUZBMUVcdUZBMjBcdUZBMjJcdUZBMjUtXHVGQTI2XHVGQTJBLVx1RkEyRFx1RkIxRlx1RkIyQS1cdUZCMzZcdUZCMzgtXHVGQjNDXHVGQjNFXHVGQjQwLVx1RkI0MVx1RkI0My1cdUZCNDRcdUZCNDYtXHVGQjRFXSIpLAorICAgICAgICBuZXcgVW5pY29kZVNldCgiW1x1MDBBMFx1MDBBOFx1MDBBQVx1MDBBRlx1MDBCMi1cdTAwQjVcdTAwQjgtXHUwMEJBXHUwMEJDLVx1MDBCRVx1MDBDMC1cdTAwQzVcdTAwQzctXHUwMENGXHUwMEQxLVx1MDBENlx1MDBEOS1cdTAwRERcdTAwRTAtXHUwMEU1XHUwMEU3LVx1MDBFRlx1MDBGMS1cdTAwRjZcdTAwRjktXHUwMEZEXHUwMEZGLVx1MDEwRlx1MDExMi1cdTAxMjVcdTAxMjgtXHUwMTMwXHUwMTMyLVx1MDEzN1x1MDEzOS1cdTAxNDBcdTAxNDMtXHUwMTQ5XHUwMTRDLVx1MDE1MVx1MDE1NC1cdTAxNjVcdTAxNjgtXHUwMTdGXHUwMUEwLVx1MDFBMVx1MDFBRi1cdTAxQjBcdTAxQzQtXHUwMURDXHUwMURFLVx1MDFFM1x1MDFFNi1cdTAxRjVcdTAxRjgtXHUwMjFCXHUwMjFFLVx1MDIxRlx1MDIyNi1cdTAyMzNcdTAyQjAtXHUwMkI4XHUwMkQ4LVx1MDJERFx1MDJFMC1cdTAyRTRcdTAzNDAtXHUwMzQxXHUwMzQzLVx1MDM0NFx1MDM3NFx1MDM3QVx1MDM3RVx1MDM4NC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwMzkwXHUwM0FBLVx1MDNCMFx1MDNDQS1cdTAzQ0VcdTAzRDAtXHUwM0Q2XHUwM0YwLVx1MDNGMlx1MDQwMC1cdTA0MDFcdTA0MDNcdTA0MDdcdTA0MEMtXHUwNDBFXHUwNDE5XHUwNDM5XHUwNDUwLVx1MDQ1MVx1MDQ1M1x1MDQ1N1x1MDQ1Qy1cdTA0NUVcdTA0NzYtXHUwNDc3XHUwNEMxLVx1MDRDMlx1MDREMC1cdTA0RDNcdTA0RDYtXHUwNEQ3XHUwNERBLVx1MDRERlx1MDRFMi1cdTA0RTdcdTA0RUEtXHUwNEY1XHUwNEY4LVx1MDRGOVx1MDU4N1x1MDYyMi1cdTA2MjZcdTA2NzUtXHUwNjc4XHUwNkMwXHUwNkMyXHUwNkQzXHUwOTI5XHUwOTMxXHUwOTM0XHUwOTU4LVx1MDk1Rlx1MDlDQi1cdTA5Q0NcdTA5REMtXHUwOUREXHUwOURGXHUwQTMzXHUwQTM2XHUwQTU5LVx1MEE1Qlx1MEE1RVx1MEI0OFx1MEI0Qi1cdTBCNENcdTBCNUMtXHUwQjVEXHUwQjk0XHUwQkNBLVx1MEJDQ1x1MEM0OFx1MENDMFx1MENDNy1cdTBDQzhcdTBDQ0EtXHUwQ0NCXHUwRDRBLVx1MEQ0Q1x1MEREQVx1MEREQy1cdTBEREVcdTBFMzNcdTBFQjNcdTBFREMtXHUwRUREXHUwRjBDXHUwRjQzXHUwRjREXHUwRjUyXHUwRjU3XHUwRjVDXHUwRjY5XHUwRjczXHUwRjc1LVx1MEY3OVx1MEY4MVx1MEY5M1x1MEY5RFx1MEZBMlx1MEZBN1x1MEZBQ1x1MEZCOVx1MTAyNlx1MUUwMC1cdTFFOUJcdTFFQTAtXHUxRUY5XHUxRjAwLVx1MUYxNVx1MUYxOC1cdTFGMURcdTFGMjAtXHUxRjQ1XHUxRjQ4LVx1MUY0RFx1MUY1MC1cdTFGNTdcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUYtXHUxRjdEXHUxRjgwLVx1MUZCNFx1MUZCNi1cdTFGQzRcdTFGQzYtXHUxRkQzXHUxRkQ2LVx1MUZEQlx1MUZERC1cdTFGRUZcdTFGRjItXHUxRkY0XHUxRkY2LVx1MUZGRVx1MjAwMC1cdTIwMEFcdTIwMTFcdTIwMTdcdTIwMjQtXHUyMDI2XHUyMDJGXHUyMDMzLVx1MjAzNFx1MjAzNi1cdTIwMzdcdTIwM0NcdTIwM0VcdTIwNDgtXHUyMDQ5XHUyMDcwXHUyMDc0LVx1MjA4RVx1MjBBOFx1MjEwMC1cdTIxMDNcdTIxMDUtXHUyMTA3XHUyMTA5LVx1MjExM1x1MjExNS1cdTIxMTZcdTIxMTktXHUyMTFEXHUyMTIwLVx1MjEyMlx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTMxXHUyMTMzLVx1MjEzOVx1MjE1My1cdTIxN0ZcdTIxOUEtXHUyMTlCXHUyMUFFXHUyMUNELVx1MjFDRlx1MjIwNFx1MjIwOVx1MjIwQ1x1MjIyNFx1MjIyNlx1MjIyQy1cdTIyMkRcdTIyMkYtXHUyMjMwXHUyMjQxXHUyMjQ0XHUyMjQ3XHUyMjQ5XHUyMjYwXHUyMjYyXHUyMjZELVx1MjI3MVx1MjI3NC1cdTIyNzVcdTIyNzgtXHUyMjc5XHUyMjgwLVx1MjI4MVx1MjI4NC1cdTIyODVcdTIyODgtXHUyMjg5XHUyMkFDLVx1MjJBRlx1MjJFMC1cdTIyRTNcdTIyRUEtXHUyMkVEXHUyMzI5LVx1MjMyQVx1MjQ2MC1cdTI0RUFcdTJFOUZcdTJFRjNcdTJGMDAtXHUyRkQ1XHUzMDAwXHUzMDM2XHUzMDM4LVx1MzAzQVx1MzA0Q1x1MzA0RVx1MzA1MFx1MzA1Mlx1MzA1NFx1MzA1Nlx1MzA1OFx1MzA1QVx1MzA1Q1x1MzA1RVx1MzA2MFx1MzA2Mlx1MzA2NVx1MzA2N1x1MzA2OVx1MzA3MC1cdTMwNzFcdTMwNzMtXHUzMDc0XHUzMDc2LVx1MzA3N1x1MzA3OS1cdTMwN0FcdTMwN0MtXHUzMDdEXHUzMDk0XHUzMDlCLVx1MzA5Q1x1MzA5RVx1MzBBQ1x1MzBBRVx1MzBCMFx1MzBCMlx1MzBCNFx1MzBCNlx1MzBCOFx1MzBCQVx1MzBCQ1x1MzBCRVx1MzBDMFx1MzBDMlx1MzBDNVx1MzBDN1x1MzBDOVx1MzBEMC1cdTMwRDFcdTMwRDMtXHUzMEQ0XHUzMEQ2LVx1MzBEN1x1MzBEOS1cdTMwREFcdTMwREMtXHUzMEREXHUzMEY0XHUzMEY3LVx1MzBGQVx1MzBGRVx1MzEzMS1cdTMxOEVcdTMxOTItXHUzMTlGXHUzMjAwLVx1MzIxQ1x1MzIyMC1cdTMyNDNcdTMyNjAtXHUzMjdCXHUzMjgwLVx1MzJCMFx1MzJDMC1cdTMyQ0JcdTMyRDAtXHUzMkZFXHUzMzAwLVx1MzM3Nlx1MzM3Qi1cdTMzRERcdTMzRTAtXHUzM0ZFXHVBQzAwLVx1RDdBM1x1RjkwMC1cdUZBMERcdUZBMTBcdUZBMTJcdUZBMTUtXHVGQTFFXHVGQTIwXHVGQTIyXHVGQTI1LVx1RkEyNlx1RkEyQS1cdUZBMkRcdUZCMDAtXHVGQjA2XHVGQjEzLVx1RkIxN1x1RkIxRFx1RkIxRi1cdUZCMzZcdUZCMzgtXHVGQjNDXHVGQjNFXHVGQjQwLVx1RkI0MVx1RkI0My1cdUZCNDRcdUZCNDYtXHVGQkIxXHVGQkQzLVx1RkQzRFx1RkQ1MC1cdUZEOEZcdUZEOTItXHVGREM3XHVGREYwLVx1RkRGQlx1RkUzMC1cdUZFNDRcdUZFNDktXHVGRTUyXHVGRTU0LVx1RkU2Nlx1RkU2OC1cdUZFNkJcdUZFNzAtXHVGRTcyXHVGRTc0XHVGRTc2LVx1RkVGQ1x1RkYwMS1cdUZGNUVcdUZGNjEtXHVGRkJFXHVGRkMyLVx1RkZDN1x1RkZDQS1cdUZGQ0ZcdUZGRDItXHVGRkQ3XHVGRkRBLVx1RkZEQ1x1RkZFMC1cdUZGRTZcdUZGRTgtXHVGRkVFXSIpLAorICAgICAgICBuZXcgVW5pY29kZVNldCgiW1x1MDBBMFx1MDBBOFx1MDBBQVx1MDBBRlx1MDBCMi1cdTAwQjVcdTAwQjgtXHUwMEJBXHUwMEJDLVx1MDBCRVx1MDEzMi1cdTAxMzNcdTAxM0YtXHUwMTQwXHUwMTQ5XHUwMTdGXHUwMUM0LVx1MDFDQ1x1MDFGMS1cdTAxRjNcdTAyQjAtXHUwMkI4XHUwMkQ4LVx1MDJERFx1MDJFMC1cdTAyRTRcdTAzNDAtXHUwMzQxXHUwMzQzLVx1MDM0NFx1MDM3NFx1MDM3QVx1MDM3RVx1MDM4NC1cdTAzODVcdTAzODdcdTAzRDAtXHUwM0Q2XHUwM0YwLVx1MDNGMlx1MDU4N1x1MDY3NS1cdTA2NzhcdTA5NTgtXHUwOTVGXHUwOURDLVx1MDlERFx1MDlERlx1MEEzM1x1MEEzNlx1MEE1OS1cdTBBNUJcdTBBNUVcdTBCNUMtXHUwQjVEXHUwRTMzXHUwRUIzXHUwRURDLVx1MEVERFx1MEYwQ1x1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OVx1MEY3M1x1MEY3NS1cdTBGNzlcdTBGODFcdTBGOTNcdTBGOURcdTBGQTJcdTBGQTdcdTBGQUNcdTBGQjlcdTFFOUEtXHUxRTlCXHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5XHUxRjdCXHUxRjdEXHUxRkJCXHUxRkJELVx1MUZDMVx1MUZDOVx1MUZDQlx1MUZDRC1cdTFGQ0ZcdTFGRDNcdTFGREJcdTFGREQtXHUxRkRGXHUxRkUzXHUxRkVCXHUxRkVELVx1MUZFRlx1MUZGOVx1MUZGQlx1MUZGRC1cdTFGRkVcdTIwMDAtXHUyMDBBXHUyMDExXHUyMDE3XHUyMDI0LVx1MjAyNlx1MjAyRlx1MjAzMy1cdTIwMzRcdTIwMzYtXHUyMDM3XHUyMDNDXHUyMDNFXHUyMDQ4LVx1MjA0OVx1MjA3MFx1MjA3NC1cdTIwOEVcdTIwQThcdTIxMDAtXHUyMTAzXHUyMTA1LVx1MjEwN1x1MjEwOS1cdTIxMTNcdTIxMTUtXHUyMTE2XHUyMTE5LVx1MjExRFx1MjEyMC1cdTIxMjJcdTIxMjRcdTIxMjZcdTIxMjhcdTIxMkEtXHUyMTJEXHUyMTJGLVx1MjEzMVx1MjEzMy1cdTIxMzlcdTIxNTMtXHUyMTdGXHUyMjJDLVx1MjIyRFx1MjIyRi1cdTIyMzBcdTIzMjktXHUyMzJBXHUyNDYwLVx1MjRFQVx1MkU5Rlx1MkVGM1x1MkYwMC1cdTJGRDVcdTMwMDBcdTMwMzZcdTMwMzgtXHUzMDNBXHUzMDlCLVx1MzA5Q1x1MzEzMS1cdTMxOEVcdTMxOTItXHUzMTlGXHUzMjAwLVx1MzIxQ1x1MzIyMC1cdTMyNDNcdTMyNjAtXHUzMjdCXHUzMjgwLVx1MzJCMFx1MzJDMC1cdTMyQ0JcdTMyRDAtXHUzMkZFXHUzMzAwLVx1MzM3Nlx1MzM3Qi1cdTMzRERcdTMzRTAtXHUzM0ZFXHVGOTAwLVx1RkEwRFx1RkExMFx1RkExMlx1RkExNS1cdUZBMUVcdUZBMjBcdUZBMjJcdUZBMjUtXHVGQTI2XHVGQTJBLVx1RkEyRFx1RkIwMC1cdUZCMDZcdUZCMTMtXHVGQjE3XHVGQjFGLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZEQzdcdUZERjAtXHVGREZCXHVGRTMwLVx1RkU0NFx1RkU0OS1cdUZFNTJcdUZFNTQtXHVGRTY2XHVGRTY4LVx1RkU2Qlx1RkU3MC1cdUZFNzJcdUZFNzRcdUZFNzYtXHVGRUZDXHVGRjAxLVx1RkY1RVx1RkY2MS1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXHVGRkUwLVx1RkZFNlx1RkZFOC1cdUZGRUVdIiksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltBLVpcdTAwQjItXHUwMEIzXHUwMEI1XHUwMEI5XHUwMEJDLVx1MDBCRVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMERFXHUwMTAwXHUwMTAyXHUwMTA0XHUwMTA2XHUwMTA4XHUwMTBBXHUwMTBDXHUwMTBFXHUwMTEwXHUwMTEyXHUwMTE0XHUwMTE2XHUwMTE4XHUwMTFBXHUwMTFDXHUwMTFFXHUwMTIwXHUwMTIyXHUwMTI0XHUwMTI2XHUwMTI4XHUwMTJBXHUwMTJDXHUwMTJFXHUwMTMwLVx1MDEzMlx1MDEzNFx1MDEzNlx1MDEzOVx1MDEzQlx1MDEzRFx1MDEzRlx1MDE0MVx1MDE0M1x1MDE0NVx1MDE0N1x1MDE0QVx1MDE0Q1x1MDE0RVx1MDE1MFx1MDE1Mlx1MDE1NFx1MDE1Nlx1MDE1OFx1MDE1QVx1MDE1Q1x1MDE1RVx1MDE2MFx1MDE2Mlx1MDE2NFx1MDE2Nlx1MDE2OFx1MDE2QVx1MDE2Q1x1MDE2RVx1MDE3MFx1MDE3Mlx1MDE3NFx1MDE3Nlx1MDE3OC1cdTAxNzlcdTAxN0JcdTAxN0RcdTAxN0ZcdTAxODEtXHUwMTgyXHUwMTg0XHUwMTg2LVx1MDE4N1x1MDE4OS1cdTAxOEJcdTAxOEUtXHUwMTkxXHUwMTkzLVx1MDE5NFx1MDE5Ni1cdTAxOThcdTAxOUMtXHUwMTlEXHUwMTlGLVx1MDFBMFx1MDFBMlx1MDFBNFx1MDFBNi1cdTAxQTdcdTAxQTlcdTAxQUNcdTAxQUUtXHUwMUFGXHUwMUIxLVx1MDFCM1x1MDFCNVx1MDFCNy1cdTAxQjhcdTAxQkNcdTAxQzQtXHUwMUNEXHUwMUNGXHUwMUQxXHUwMUQzXHUwMUQ1XHUwMUQ3XHUwMUQ5XHUwMURCXHUwMURFXHUwMUUwXHUwMUUyXHUwMUU0XHUwMUU2XHUwMUU4XHUwMUVBXHUwMUVDXHUwMUVFXHUwMUYxLVx1MDFGNFx1MDFGNi1cdTAxRjhcdTAxRkFcdTAxRkNcdTAxRkVcdTAyMDBcdTAyMDJcdTAyMDRcdTAyMDZcdTAyMDhcdTAyMEFcdTAyMENcdTAyMEVcdTAyMTBcdTAyMTJcdTAyMTRcdTAyMTZcdTAyMThcdTAyMUFcdTAyMUNcdTAyMUVcdTAyMjJcdTAyMjRcdTAyMjZcdTAyMjhcdTAyMkFcdTAyMkNcdTAyMkVcdTAyMzBcdTAyMzJcdTAzNDVcdTAzODZcdTAzODgtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDM4Rlx1MDM5MS1cdTAzQTFcdTAzQTMtXHUwM0FCXHUwM0MyXHUwM0QwLVx1MDNEMVx1MDNENS1cdTAzRDZcdTAzREFcdTAzRENcdTAzREVcdTAzRTBcdTAzRTJcdTAzRTRcdTAzRTZcdTAzRThcdTAzRUFcdTAzRUNcdTAzRUVcdTAzRjAtXHUwM0YyXHUwM0Y0LVx1MDNGNVx1MDQwMC1cdTA0MkZcdTA0NjBcdTA0NjJcdTA0NjRcdTA0NjZcdTA0NjhcdTA0NkFcdTA0NkNcdTA0NkVcdTA0NzBcdTA0NzJcdTA0NzRcdTA0NzZcdTA0NzhcdTA0N0FcdTA0N0NcdTA0N0VcdTA0ODBcdTA0OENcdTA0OEVcdTA0OTBcdTA0OTJcdTA0OTRcdTA0OTZcdTA0OThcdTA0OUFcdTA0OUNcdTA0OUVcdTA0QTBcdTA0QTJcdTA0QTRcdTA0QTZcdTA0QThcdTA0QUFcdTA0QUNcdTA0QUVcdTA0QjBcdTA0QjJcdTA0QjRcdTA0QjZcdTA0QjhcdTA0QkFcdTA0QkNcdTA0QkVcdTA0QzFcdTA0QzNcdTA0QzdcdTA0Q0JcdTA0RDBcdTA0RDJcdTA0RDRcdTA0RDZcdTA0RDhcdTA0REFcdTA0RENcdTA0REVcdTA0RTBcdTA0RTJcdTA0RTRcdTA0RTZcdTA0RThcdTA0RUFcdTA0RUNcdTA0RUVcdTA0RjBcdTA0RjJcdTA0RjRcdTA0RjhcdTA1MzEtXHUwNTU2XHUwOUY4XHUwRjJBLVx1MEYzM1x1MTM3Q1x1MUUwMFx1MUUwMlx1MUUwNFx1MUUwNlx1MUUwOFx1MUUwQVx1MUUwQ1x1MUUwRVx1MUUxMFx1MUUxMlx1MUUxNFx1MUUxNlx1MUUxOFx1MUUxQVx1MUUxQ1x1MUUxRVx1MUUyMFx1MUUyMlx1MUUyNFx1MUUyNlx1MUUyOFx1MUUyQVx1MUUyQ1x1MUUyRVx1MUUzMFx1MUUzMlx1MUUzNFx1MUUzNlx1MUUzOFx1MUUzQVx1MUUzQ1x1MUUzRVx1MUU0MFx1MUU0Mlx1MUU0NFx1MUU0Nlx1MUU0OFx1MUU0QVx1MUU0Q1x1MUU0RVx1MUU1MFx1MUU1Mlx1MUU1NFx1MUU1Nlx1MUU1OFx1MUU1QVx1MUU1Q1x1MUU1RVx1MUU2MFx1MUU2Mlx1MUU2NFx1MUU2Nlx1MUU2OFx1MUU2QVx1MUU2Q1x1MUU2RVx1MUU3MFx1MUU3Mlx1MUU3NFx1MUU3Nlx1MUU3OFx1MUU3QVx1MUU3Q1x1MUU3RVx1MUU4MFx1MUU4Mlx1MUU4NFx1MUU4Nlx1MUU4OFx1MUU4QVx1MUU4Q1x1MUU4RVx1MUU5MFx1MUU5Mlx1MUU5NFx1MUU5Qlx1MUVBMFx1MUVBMlx1MUVBNFx1MUVBNlx1MUVBOFx1MUVBQVx1MUVBQ1x1MUVBRVx1MUVCMFx1MUVCMlx1MUVCNFx1MUVCNlx1MUVCOFx1MUVCQVx1MUVCQ1x1MUVCRVx1MUVDMFx1MUVDMlx1MUVDNFx1MUVDNlx1MUVDOFx1MUVDQVx1MUVDQ1x1MUVDRVx1MUVEMFx1MUVEMlx1MUVENFx1MUVENlx1MUVEOFx1MUVEQVx1MUVEQ1x1MUVERVx1MUVFMFx1MUVFMlx1MUVFNFx1MUVFNlx1MUVFOFx1MUVFQVx1MUVFQ1x1MUVFRVx1MUVGMFx1MUVGMlx1MUVGNFx1MUVGNlx1MUVGOFx1MUYwOC1cdTFGMEZcdTFGMTgtXHUxRjFEXHUxRjI4LVx1MUYyRlx1MUYzOC1cdTFGM0ZcdTFGNDgtXHUxRjREXHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGXHUxRjY4LVx1MUY2Rlx1MUY4OC1cdTFGOEZcdTFGOTgtXHUxRjlGXHUxRkE4LVx1MUZBRlx1MUZCOC1cdTFGQkNcdTFGQkVcdTFGQzgtXHUxRkNDXHUxRkQ4LVx1MUZEQlx1MUZFOC1cdTFGRUNcdTFGRjgtXHUxRkZDXHUyMDcwXHUyMDc0LVx1MjA3OVx1MjA4MC1cdTIwODlcdTIxMjZcdTIxMkEtXHUyMTJCXHUyMTUzLVx1MjE1RVx1MjE2MC1cdTIxN0ZcdTIxODEtXHUyMTgzXHUyNDYwLVx1MjQ2OFx1MjQ3NC1cdTI0N0NcdTI0ODgtXHUyNDkwXHUyNEI2LVx1MjRFQVx1Mjc3Ni1cdTI3N0VcdTI3ODAtXHUyNzg4XHUyNzhBLVx1Mjc5Mlx1RkYyMS1cdUZGM0FcXFUwMDAxMDM0QVxcVTAwMDEwNDAwLVxcVTAwMDEwNDI1XFxVMDAwMUQxNjUtXFxVMDAwMUQxNjZcXFUwMDAxRDE2RC1cXFUwMDAxRDE3Ml0iKSwKKyAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltBLVpcdTAwQjItXHUwMEIzXHUwMEI1XHUwMEI5XHUwMEJDLVx1MDBCRVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMERFXHUwMEUwLVx1MDBFNVx1MDBFNy1cdTAwRUZcdTAwRjEtXHUwMEY2XHUwMEY5LVx1MDBGRFx1MDBGRi1cdTAxMTBcdTAxMTItXHUwMTI2XHUwMTI4LVx1MDEzMlx1MDEzNC1cdTAxMzdcdTAxMzktXHUwMTNGXHUwMTQxXHUwMTQzLVx1MDE0OFx1MDE0QVx1MDE0Qy1cdTAxNTJcdTAxNTQtXHUwMTY2XHUwMTY4LVx1MDE3Rlx1MDE4MS1cdTAxODJcdTAxODRcdTAxODYtXHUwMTg3XHUwMTg5LVx1MDE4Qlx1MDE4RS1cdTAxOTFcdTAxOTMtXHUwMTk0XHUwMTk2LVx1MDE5OFx1MDE5Qy1cdTAxOURcdTAxOUYtXHUwMUEyXHUwMUE0XHUwMUE2LVx1MDFBN1x1MDFBOVx1MDFBQ1x1MDFBRS1cdTAxQjNcdTAxQjVcdTAxQjctXHUwMUI4XHUwMUJDXHUwMUM0LVx1MDFEQ1x1MDFERS1cdTAxRTRcdTAxRTYtXHUwMjFDXHUwMjFFLVx1MDIxRlx1MDIyMlx1MDIyNFx1MDIyNi1cdTAyMzNcdTAzNDAtXHUwMzQxXHUwMzQzLVx1MDM0NVx1MDM3NFx1MDM3RVx1MDM4NS1cdTAzOEFcdTAzOENcdTAzOEUtXHUwM0ExXHUwM0EzLVx1MDNCMFx1MDNDMlx1MDNDQS1cdTAzQ0VcdTAzRDAtXHUwM0QxXHUwM0QzLVx1MDNENlx1MDNEQVx1MDNEQ1x1MDNERVx1MDNFMFx1MDNFMlx1MDNFNFx1MDNFNlx1MDNFOFx1MDNFQVx1MDNFQ1x1MDNFRVx1MDNGMC1cdTAzRjJcdTAzRjQtXHUwM0Y1XHUwNDAwLVx1MDQyRlx1MDQzOVx1MDQ1MC1cdTA0NTFcdTA0NTNcdTA0NTdcdTA0NUMtXHUwNDVFXHUwNDYwXHUwNDYyXHUwNDY0XHUwNDY2XHUwNDY4XHUwNDZBXHUwNDZDXHUwNDZFXHUwNDcwXHUwNDcyXHUwNDc0XHUwNDc2LVx1MDQ3OFx1MDQ3QVx1MDQ3Q1x1MDQ3RVx1MDQ4MFx1MDQ4Q1x1MDQ4RVx1MDQ5MFx1MDQ5Mlx1MDQ5NFx1MDQ5Nlx1MDQ5OFx1MDQ5QVx1MDQ5Q1x1MDQ5RVx1MDRBMFx1MDRBMlx1MDRBNFx1MDRBNlx1MDRBOFx1MDRBQVx1MDRBQ1x1MDRBRVx1MDRCMFx1MDRCMlx1MDRCNFx1MDRCNlx1MDRCOFx1MDRCQVx1MDRCQ1x1MDRCRVx1MDRDMS1cdTA0QzNcdTA0QzdcdTA0Q0JcdTA0RDAtXHUwNEQ0XHUwNEQ2LVx1MDREOFx1MDREQS1cdTA0RTBcdTA0RTItXHUwNEU4XHUwNEVBLVx1MDRGNVx1MDRGOC1cdTA0RjlcdTA1MzEtXHUwNTU2XHUwNjIyLVx1MDYyNlx1MDZDMFx1MDZDMlx1MDZEM1x1MDkyOVx1MDkzMVx1MDkzNFx1MDk1OC1cdTA5NUZcdTA5Q0ItXHUwOUNDXHUwOURDLVx1MDlERFx1MDlERlx1MDlGOFx1MEEzM1x1MEEzNlx1MEE1OS1cdTBBNUJcdTBBNUVcdTBCNDhcdTBCNEItXHUwQjRDXHUwQjVDLVx1MEI1RFx1MEI5NFx1MEJDQS1cdTBCQ0NcdTBDNDhcdTBDQzBcdTBDQzctXHUwQ0M4XHUwQ0NBLVx1MENDQlx1MEQ0QS1cdTBENENcdTBEREFcdTBEREMtXHUwRERFXHUwRjJBLVx1MEYzM1x1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OVx1MEY3M1x1MEY3NS1cdTBGNzZcdTBGNzhcdTBGODFcdTBGOTNcdTBGOURcdTBGQTJcdTBGQTdcdTBGQUNcdTBGQjlcdTEwMjZcdTEzN0NcdTFFMDAtXHUxRTk5XHUxRTlCXHUxRUEwLVx1MUVGOVx1MUYwMC1cdTFGMTVcdTFGMTgtXHUxRjFEXHUxRjIwLVx1MUY0NVx1MUY0OC1cdTFGNERcdTFGNTAtXHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGLVx1MUY3RFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkJDXHUxRkJFXHUxRkMxLVx1MUZDNFx1MUZDNi1cdTFGRDNcdTFGRDYtXHUxRkRCXHUxRkRELVx1MUZFRlx1MUZGMi1cdTFGRjRcdTFGRjYtXHUxRkZEXHUyMDAwLVx1MjAwMVx1MjA3MFx1MjA3NC1cdTIwNzlcdTIwODAtXHUyMDg5XHUyMTI2XHUyMTJBLVx1MjEyQlx1MjE1My1cdTIxNUVcdTIxNjAtXHUyMTdGXHUyMTgxLVx1MjE4M1x1MjE5QS1cdTIxOUJcdTIxQUVcdTIxQ0QtXHUyMUNGXHUyMjA0XHUyMjA5XHUyMjBDXHUyMjI0XHUyMjI2XHUyMjQxXHUyMjQ0XHUyMjQ3XHUyMjQ5XHUyMjYwXHUyMjYyXHUyMjZELVx1MjI3MVx1MjI3NC1cdTIyNzVcdTIyNzgtXHUyMjc5XHUyMjgwLVx1MjI4MVx1MjI4NC1cdTIyODVcdTIyODgtXHUyMjg5XHUyMkFDLVx1MjJBRlx1MjJFMC1cdTIyRTNcdTIyRUEtXHUyMkVEXHUyMzI5LVx1MjMyQVx1MjQ2MC1cdTI0NjhcdTI0NzQtXHUyNDdDXHUyNDg4LVx1MjQ5MFx1MjRCNi1cdTI0RUFcdTI3NzYtXHUyNzdFXHUyNzgwLVx1Mjc4OFx1Mjc4QS1cdTI3OTJcdTMwNENcdTMwNEVcdTMwNTBcdTMwNTJcdTMwNTRcdTMwNTZcdTMwNThcdTMwNUFcdTMwNUNcdTMwNUVcdTMwNjBcdTMwNjJcdTMwNjVcdTMwNjdcdTMwNjlcdTMwNzAtXHUzMDcxXHUzMDczLVx1MzA3NFx1MzA3Ni1cdTMwNzdcdTMwNzktXHUzMDdBXHUzMDdDLVx1MzA3RFx1MzA5NFx1MzA5RVx1MzBBQ1x1MzBBRVx1MzBCMFx1MzBCMlx1MzBCNFx1MzBCNlx1MzBCOFx1MzBCQVx1MzBCQ1x1MzBCRVx1MzBDMFx1MzBDMlx1MzBDNVx1MzBDN1x1MzBDOVx1MzBEMC1cdTMwRDFcdTMwRDMtXHUzMEQ0XHUzMEQ2LVx1MzBEN1x1MzBEOS1cdTMwREFcdTMwREMtXHUzMEREXHUzMEY0XHUzMEY3LVx1MzBGQVx1MzBGRVx1QUMwMC1cdUQ3QTNcdUY5MDAtXHVGQTBEXHVGQTEwXHVGQTEyXHVGQTE1LVx1RkExRVx1RkEyMFx1RkEyMlx1RkEyNS1cdUZBMjZcdUZBMkEtXHVGQTJEXHVGQjFEXHVGQjFGXHVGQjJBLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCNEVcdUZGMjEtXHVGRjNBXFxVMDAwMTAzNEFcXFUwMDAxMDQwMC1cXFUwMDAxMDQyNVxcVTAwMDFEMTY1LVxcVTAwMDFEMTY2XFxVMDAwMUQxNkQtXFxVMDAwMUQxNzJdIiksCisgICAgICAgIG5ldyBVbmljb2RlU2V0KCJbQS1aXHUwMEIyLVx1MDBCM1x1MDBCNVx1MDBCOVx1MDBCQy1cdTAwQkVcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBERVx1MDEwMFx1MDEwMlx1MDEwNFx1MDEwNlx1MDEwOFx1MDEwQVx1MDEwQ1x1MDEwRVx1MDExMFx1MDExMlx1MDExNFx1MDExNlx1MDExOFx1MDExQVx1MDExQ1x1MDExRVx1MDEyMFx1MDEyMlx1MDEyNFx1MDEyNlx1MDEyOFx1MDEyQVx1MDEyQ1x1MDEyRVx1MDEzMC1cdTAxMzJcdTAxMzRcdTAxMzZcdTAxMzlcdTAxM0JcdTAxM0RcdTAxM0ZcdTAxNDFcdTAxNDNcdTAxNDVcdTAxNDdcdTAxNEFcdTAxNENcdTAxNEVcdTAxNTBcdTAxNTJcdTAxNTRcdTAxNTZcdTAxNThcdTAxNUFcdTAxNUNcdTAxNUVcdTAxNjBcdTAxNjJcdTAxNjRcdTAxNjZcdTAxNjhcdTAxNkFcdTAxNkNcdTAxNkVcdTAxNzBcdTAxNzJcdTAxNzRcdTAxNzZcdTAxNzgtXHUwMTc5XHUwMTdCXHUwMTdEXHUwMTdGXHUwMTgxLVx1MDE4Mlx1MDE4NFx1MDE4Ni1cdTAxODdcdTAxODktXHUwMThCXHUwMThFLVx1MDE5MVx1MDE5My1cdTAxOTRcdTAxOTYtXHUwMTk4XHUwMTlDLVx1MDE5RFx1MDE5Ri1cdTAxQTBcdTAxQTJcdTAxQTRcdTAxQTYtXHUwMUE3XHUwMUE5XHUwMUFDXHUwMUFFLVx1MDFBRlx1MDFCMS1cdTAxQjNcdTAxQjVcdTAxQjctXHUwMUI4XHUwMUJDXHUwMUM0LVx1MDFDRFx1MDFDRlx1MDFEMVx1MDFEM1x1MDFENVx1MDFEN1x1MDFEOVx1MDFEQlx1MDFERVx1MDFFMFx1MDFFMlx1MDFFNFx1MDFFNlx1MDFFOFx1MDFFQVx1MDFFQ1x1MDFFRVx1MDFGMS1cdTAxRjRcdTAxRjYtXHUwMUY4XHUwMUZBXHUwMUZDXHUwMUZFXHUwMjAwXHUwMjAyXHUwMjA0XHUwMjA2XHUwMjA4XHUwMjBBXHUwMjBDXHUwMjBFXHUwMjEwXHUwMjEyXHUwMjE0XHUwMjE2XHUwMjE4XHUwMjFBXHUwMjFDXHUwMjFFXHUwMjIyXHUwMjI0XHUwMjI2XHUwMjI4XHUwMjJBXHUwMjJDXHUwMjJFXHUwMjMwXHUwMjMyXHUwMzQwLVx1MDM0MVx1MDM0My1cdTAzNDVcdTAzNzRcdTAzN0VcdTAzODYtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDM4Rlx1MDM5MS1cdTAzQTFcdTAzQTMtXHUwM0FCXHUwM0MyXHUwM0QwLVx1MDNEMVx1MDNENS1cdTAzRDZcdTAzREFcdTAzRENcdTAzREVcdTAzRTBcdTAzRTJcdTAzRTRcdTAzRTZcdTAzRThcdTAzRUFcdTAzRUNcdTAzRUVcdTAzRjAtXHUwM0YyXHUwM0Y0LVx1MDNGNVx1MDQwMC1cdTA0MkZcdTA0NjBcdTA0NjJcdTA0NjRcdTA0NjZcdTA0NjhcdTA0NkFcdTA0NkNcdTA0NkVcdTA0NzBcdTA0NzJcdTA0NzRcdTA0NzZcdTA0NzhcdTA0N0FcdTA0N0NcdTA0N0VcdTA0ODBcdTA0OENcdTA0OEVcdTA0OTBcdTA0OTJcdTA0OTRcdTA0OTZcdTA0OThcdTA0OUFcdTA0OUNcdTA0OUVcdTA0QTBcdTA0QTJcdTA0QTRcdTA0QTZcdTA0QThcdTA0QUFcdTA0QUNcdTA0QUVcdTA0QjBcdTA0QjJcdTA0QjRcdTA0QjZcdTA0QjhcdTA0QkFcdTA0QkNcdTA0QkVcdTA0QzFcdTA0QzNcdTA0QzdcdTA0Q0JcdTA0RDBcdTA0RDJcdTA0RDRcdTA0RDZcdTA0RDhcdTA0REFcdTA0RENcdTA0REVcdTA0RTBcdTA0RTJcdTA0RTRcdTA0RTZcdTA0RThcdTA0RUFcdTA0RUNcdTA0RUVcdTA0RjBcdTA0RjJcdTA0RjRcdTA0RjhcdTA1MzEtXHUwNTU2XHUwOTU4LVx1MDk1Rlx1MDlEQy1cdTA5RERcdTA5REZcdTA5RjhcdTBBMzNcdTBBMzZcdTBBNTktXHUwQTVCXHUwQTVFXHUwQjVDLVx1MEI1RFx1MEYyQS1cdTBGMzNcdTBGNDNcdTBGNERcdTBGNTJcdTBGNTdcdTBGNUNcdTBGNjlcdTBGNzNcdTBGNzUtXHUwRjc2XHUwRjc4XHUwRjgxXHUwRjkzXHUwRjlEXHUwRkEyXHUwRkE3XHUwRkFDXHUwRkI5XHUxMzdDXHUxRTAwXHUxRTAyXHUxRTA0XHUxRTA2XHUxRTA4XHUxRTBBXHUxRTBDXHUxRTBFXHUxRTEwXHUxRTEyXHUxRTE0XHUxRTE2XHUxRTE4XHUxRTFBXHUxRTFDXHUxRTFFXHUxRTIwXHUxRTIyXHUxRTI0XHUxRTI2XHUxRTI4XHUxRTJBXHUxRTJDXHUxRTJFXHUxRTMwXHUxRTMyXHUxRTM0XHUxRTM2XHUxRTM4XHUxRTNBXHUxRTNDXHUxRTNFXHUxRTQwXHUxRTQyXHUxRTQ0XHUxRTQ2XHUxRTQ4XHUxRTRBXHUxRTRDXHUxRTRFXHUxRTUwXHUxRTUyXHUxRTU0XHUxRTU2XHUxRTU4XHUxRTVBXHUxRTVDXHUxRTVFXHUxRTYwXHUxRTYyXHUxRTY0XHUxRTY2XHUxRTY4XHUxRTZBXHUxRTZDXHUxRTZFXHUxRTcwXHUxRTcyXHUxRTc0XHUxRTc2XHUxRTc4XHUxRTdBXHUxRTdDXHUxRTdFXHUxRTgwXHUxRTgyXHUxRTg0XHUxRTg2XHUxRTg4XHUxRThBXHUxRThDXHUxRThFXHUxRTkwXHUxRTkyXHUxRTk0XHUxRTlCXHUxRUEwXHUxRUEyXHUxRUE0XHUxRUE2XHUxRUE4XHUxRUFBXHUxRUFDXHUxRUFFXHUxRUIwXHUxRUIyXHUxRUI0XHUxRUI2XHUxRUI4XHUxRUJBXHUxRUJDXHUxRUJFXHUxRUMwXHUxRUMyXHUxRUM0XHUxRUM2XHUxRUM4XHUxRUNBXHUxRUNDXHUxRUNFXHUxRUQwXHUxRUQyXHUxRUQ0XHUxRUQ2XHUxRUQ4XHUxRURBXHUxRURDXHUxRURFXHUxRUUwXHUxRUUyXHUxRUU0XHUxRUU2XHUxRUU4XHUxRUVBXHUxRUVDXHUxRUVFXHUxRUYwXHUxRUYyXHUxRUY0XHUxRUY2XHUxRUY4XHUxRjA4LVx1MUYwRlx1MUYxOC1cdTFGMURcdTFGMjgtXHUxRjJGXHUxRjM4LVx1MUYzRlx1MUY0OC1cdTFGNERcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUZcdTFGNjgtXHUxRjZGXHUxRjcxXHUxRjczXHUxRjc1XHUxRjc3XHUxRjc5XHUxRjdCXHUxRjdEXHUxRjg4LVx1MUY4Rlx1MUY5OC1cdTFGOUZcdTFGQTgtXHUxRkFGXHUxRkI4LVx1MUZCQ1x1MUZCRVx1MUZDOC1cdTFGQ0NcdTFGRDNcdTFGRDgtXHUxRkRCXHUxRkUzXHUxRkU4LVx1MUZFQ1x1MUZFRS1cdTFGRUZcdTFGRjgtXHUxRkZEXHUyMDAwLVx1MjAwMVx1MjA3MFx1MjA3NC1cdTIwNzlcdTIwODAtXHUyMDg5XHUyMTI2XHUyMTJBLVx1MjEyQlx1MjE1My1cdTIxNUVcdTIxNjAtXHUyMTdGXHUyMTgxLVx1MjE4M1x1MjMyOS1cdTIzMkFcdTI0NjAtXHUyNDY4XHUyNDc0LVx1MjQ3Q1x1MjQ4OC1cdTI0OTBcdTI0QjYtXHUyNEVBXHUyNzc2LVx1Mjc3RVx1Mjc4MC1cdTI3ODhcdTI3OEEtXHUyNzkyXHVGOTAwLVx1RkEwRFx1RkExMFx1RkExMlx1RkExNS1cdUZBMUVcdUZBMjBcdUZBMjJcdUZBMjUtXHVGQTI2XHVGQTJBLVx1RkEyRFx1RkIxRlx1RkIyQS1cdUZCMzZcdUZCMzgtXHVGQjNDXHVGQjNFXHVGQjQwLVx1RkI0MVx1RkI0My1cdUZCNDRcdUZCNDYtXHVGQjRFXHVGRjIxLVx1RkYzQVxcVTAwMDEwMzRBXFxVMDAwMTA0MDAtXFxVMDAwMTA0MjVcXFUwMDAxRDE2NS1cXFUwMDAxRDE2NlxcVTAwMDFEMTZELVxcVTAwMDFEMTcyXSIpLAorICAgICAgICBuZXcgVW5pY29kZVNldCgiW0EtWlx1MDBBMFx1MDBBOFx1MDBBQVx1MDBBRlx1MDBCMi1cdTAwQjVcdTAwQjgtXHUwMEJBXHUwMEJDLVx1MDBCRVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMERFXHUwMEUwLVx1MDBFNVx1MDBFNy1cdTAwRUZcdTAwRjEtXHUwMEY2XHUwMEY5LVx1MDBGRFx1MDBGRi1cdTAxMTBcdTAxMTItXHUwMTI2XHUwMTI4LVx1MDEzN1x1MDEzOS1cdTAxNDFcdTAxNDMtXHUwMTRBXHUwMTRDLVx1MDE1Mlx1MDE1NC1cdTAxNjZcdTAxNjgtXHUwMTdGXHUwMTgxLVx1MDE4Mlx1MDE4NFx1MDE4Ni1cdTAxODdcdTAxODktXHUwMThCXHUwMThFLVx1MDE5MVx1MDE5My1cdTAxOTRcdTAxOTYtXHUwMTk4XHUwMTlDLVx1MDE5RFx1MDE5Ri1cdTAxQTJcdTAxQTRcdTAxQTYtXHUwMUE3XHUwMUE5XHUwMUFDXHUwMUFFLVx1MDFCM1x1MDFCNVx1MDFCNy1cdTAxQjhcdTAxQkNcdTAxQzQtXHUwMURDXHUwMURFLVx1MDFFNFx1MDFFNi1cdTAyMUNcdTAyMUUtXHUwMjFGXHUwMjIyXHUwMjI0XHUwMjI2LVx1MDIzM1x1MDJCMC1cdTAyQjhcdTAyRDgtXHUwMkREXHUwMkUwLVx1MDJFNFx1MDM0MC1cdTAzNDFcdTAzNDMtXHUwMzQ1XHUwMzc0XHUwMzdBXHUwMzdFXHUwMzg0LVx1MDM4QVx1MDM4Q1x1MDM4RS1cdTAzQTFcdTAzQTMtXHUwM0IwXHUwM0MyXHUwM0NBLVx1MDNDRVx1MDNEMC1cdTAzRDZcdTAzREFcdTAzRENcdTAzREVcdTAzRTBcdTAzRTJcdTAzRTRcdTAzRTZcdTAzRThcdTAzRUFcdTAzRUNcdTAzRUVcdTAzRjAtXHUwM0YyXHUwM0Y0LVx1MDNGNVx1MDQwMC1cdTA0MkZcdTA0MzlcdTA0NTAtXHUwNDUxXHUwNDUzXHUwNDU3XHUwNDVDLVx1MDQ1RVx1MDQ2MFx1MDQ2Mlx1MDQ2NFx1MDQ2Nlx1MDQ2OFx1MDQ2QVx1MDQ2Q1x1MDQ2RVx1MDQ3MFx1MDQ3Mlx1MDQ3NFx1MDQ3Ni1cdTA0NzhcdTA0N0FcdTA0N0NcdTA0N0VcdTA0ODBcdTA0OENcdTA0OEVcdTA0OTBcdTA0OTJcdTA0OTRcdTA0OTZcdTA0OThcdTA0OUFcdTA0OUNcdTA0OUVcdTA0QTBcdTA0QTJcdTA0QTRcdTA0QTZcdTA0QThcdTA0QUFcdTA0QUNcdTA0QUVcdTA0QjBcdTA0QjJcdTA0QjRcdTA0QjZcdTA0QjhcdTA0QkFcdTA0QkNcdTA0QkVcdTA0QzEtXHUwNEMzXHUwNEM3XHUwNENCXHUwNEQwLVx1MDRENFx1MDRENi1cdTA0RDhcdTA0REEtXHUwNEUwXHUwNEUyLVx1MDRFOFx1MDRFQS1cdTA0RjVcdTA0RjgtXHUwNEY5XHUwNTMxLVx1MDU1Nlx1MDU4N1x1MDYyMi1cdTA2MjZcdTA2NzUtXHUwNjc4XHUwNkMwXHUwNkMyXHUwNkQzXHUwOTI5XHUwOTMxXHUwOTM0XHUwOTU4LVx1MDk1Rlx1MDlDQi1cdTA5Q0NcdTA5REMtXHUwOUREXHUwOURGXHUwOUY4XHUwQTMzXHUwQTM2XHUwQTU5LVx1MEE1Qlx1MEE1RVx1MEI0OFx1MEI0Qi1cdTBCNENcdTBCNUMtXHUwQjVEXHUwQjk0XHUwQkNBLVx1MEJDQ1x1MEM0OFx1MENDMFx1MENDNy1cdTBDQzhcdTBDQ0EtXHUwQ0NCXHUwRDRBLVx1MEQ0Q1x1MEREQVx1MEREQy1cdTBEREVcdTBFMzNcdTBFQjNcdTBFREMtXHUwRUREXHUwRjBDXHUwRjJBLVx1MEYzM1x1MEY0M1x1MEY0RFx1MEY1Mlx1MEY1N1x1MEY1Q1x1MEY2OVx1MEY3M1x1MEY3NS1cdTBGNzlcdTBGODFcdTBGOTNcdTBGOURcdTBGQTJcdTBGQTdcdTBGQUNcdTBGQjlcdTEwMjZcdTEzN0NcdTFFMDAtXHUxRTlCXHUxRUEwLVx1MUVGOVx1MUYwMC1cdTFGMTVcdTFGMTgtXHUxRjFEXHUxRjIwLVx1MUY0NVx1MUY0OC1cdTFGNERcdTFGNTAtXHUxRjU3XHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGLVx1MUY3RFx1MUY4MC1cdTFGQjRcdTFGQjYtXHUxRkM0XHUxRkM2LVx1MUZEM1x1MUZENi1cdTFGREJcdTFGREQtXHUxRkVGXHUxRkYyLVx1MUZGNFx1MUZGNi1cdTFGRkVcdTIwMDAtXHUyMDBBXHUyMDExXHUyMDE3XHUyMDI0LVx1MjAyNlx1MjAyRlx1MjAzMy1cdTIwMzRcdTIwMzYtXHUyMDM3XHUyMDNDXHUyMDNFXHUyMDQ4LVx1MjA0OVx1MjA3MFx1MjA3NC1cdTIwOEVcdTIwQThcdTIxMDAtXHUyMTAzXHUyMTA1LVx1MjEwN1x1MjEwOS1cdTIxMTNcdTIxMTUtXHUyMTE2XHUyMTE5LVx1MjExRFx1MjEyMC1cdTIxMjJcdTIxMjRcdTIxMjZcdTIxMjhcdTIxMkEtXHUyMTJEXHUyMTJGLVx1MjEzMVx1MjEzMy1cdTIxMzlcdTIxNTMtXHUyMTdGXHUyMTgxLVx1MjE4M1x1MjE5QS1cdTIxOUJcdTIxQUVcdTIxQ0QtXHUyMUNGXHUyMjA0XHUyMjA5XHUyMjBDXHUyMjI0XHUyMjI2XHUyMjJDLVx1MjIyRFx1MjIyRi1cdTIyMzBcdTIyNDFcdTIyNDRcdTIyNDdcdTIyNDlcdTIyNjBcdTIyNjJcdTIyNkQtXHUyMjcxXHUyMjc0LVx1MjI3NVx1MjI3OC1cdTIyNzlcdTIyODAtXHUyMjgxXHUyMjg0LVx1MjI4NVx1MjI4OC1cdTIyODlcdTIyQUMtXHUyMkFGXHUyMkUwLVx1MjJFM1x1MjJFQS1cdTIyRURcdTIzMjktXHUyMzJBXHUyNDYwLVx1MjRFQVx1Mjc3Ni1cdTI3N0VcdTI3ODAtXHUyNzg4XHUyNzhBLVx1Mjc5Mlx1MkU5Rlx1MkVGM1x1MkYwMC1cdTJGRDVcdTMwMDBcdTMwMzZcdTMwMzgtXHUzMDNBXHUzMDRDXHUzMDRFXHUzMDUwXHUzMDUyXHUzMDU0XHUzMDU2XHUzMDU4XHUzMDVBXHUzMDVDXHUzMDVFXHUzMDYwXHUzMDYyXHUzMDY1XHUzMDY3XHUzMDY5XHUzMDcwLVx1MzA3MVx1MzA3My1cdTMwNzRcdTMwNzYtXHUzMDc3XHUzMDc5LVx1MzA3QVx1MzA3Qy1cdTMwN0RcdTMwOTRcdTMwOUItXHUzMDlDXHUzMDlFXHUzMEFDXHUzMEFFXHUzMEIwXHUzMEIyXHUzMEI0XHUzMEI2XHUzMEI4XHUzMEJBXHUzMEJDXHUzMEJFXHUzMEMwXHUzMEMyXHUzMEM1XHUzMEM3XHUzMEM5XHUzMEQwLVx1MzBEMVx1MzBEMy1cdTMwRDRcdTMwRDYtXHUzMEQ3XHUzMEQ5LVx1MzBEQVx1MzBEQy1cdTMwRERcdTMwRjRcdTMwRjctXHUzMEZBXHUzMEZFXHUzMTMxLVx1MzE4RVx1MzE5Mi1cdTMxOUZcdTMyMDAtXHUzMjFDXHUzMjIwLVx1MzI0M1x1MzI2MC1cdTMyN0JcdTMyODAtXHUzMkIwXHUzMkMwLVx1MzJDQlx1MzJEMC1cdTMyRkVcdTMzMDAtXHUzMzc2XHUzMzdCLVx1MzNERFx1MzNFMC1cdTMzRkVcdUFDMDAtXHVEN0EzXHVGOTAwLVx1RkEwRFx1RkExMFx1RkExMlx1RkExNS1cdUZBMUVcdUZBMjBcdUZBMjJcdUZBMjUtXHVGQTI2XHVGQTJBLVx1RkEyRFx1RkIwMC1cdUZCMDZcdUZCMTMtXHVGQjE3XHVGQjFEXHVGQjFGLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZEQzdcdUZERjAtXHVGREZCXHVGRTMwLVx1RkU0NFx1RkU0OS1cdUZFNTJcdUZFNTQtXHVGRTY2XHVGRTY4LVx1RkU2Qlx1RkU3MC1cdUZFNzJcdUZFNzRcdUZFNzYtXHVGRUZDXHVGRjAxLVx1RkY1RVx1RkY2MS1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXHVGRkUwLVx1RkZFNlx1RkZFOC1cdUZGRUVcXFUwMDAxMDM0QVxcVTAwMDEwNDAwLVxcVTAwMDEwNDI1XFxVMDAwMUQxNjUtXFxVMDAwMUQxNjZcXFUwMDAxRDE2RC1cXFUwMDAxRDE3Ml0iKSwKKyAgICAgICAgbmV3IFVuaWNvZGVTZXQoIltBLVpcdTAwQTBcdTAwQThcdTAwQUFcdTAwQUZcdTAwQjItXHUwMEI1XHUwMEI4LVx1MDBCQVx1MDBCQy1cdTAwQkVcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBERVx1MDEwMFx1MDEwMlx1MDEwNFx1MDEwNlx1MDEwOFx1MDEwQVx1MDEwQ1x1MDEwRVx1MDExMFx1MDExMlx1MDExNFx1MDExNlx1MDExOFx1MDExQVx1MDExQ1x1MDExRVx1MDEyMFx1MDEyMlx1MDEyNFx1MDEyNlx1MDEyOFx1MDEyQVx1MDEyQ1x1MDEyRVx1MDEzMC1cdTAxMzRcdTAxMzZcdTAxMzlcdTAxM0JcdTAxM0RcdTAxM0YtXHUwMTQxXHUwMTQzXHUwMTQ1XHUwMTQ3XHUwMTQ5LVx1MDE0QVx1MDE0Q1x1MDE0RVx1MDE1MFx1MDE1Mlx1MDE1NFx1MDE1Nlx1MDE1OFx1MDE1QVx1MDE1Q1x1MDE1RVx1MDE2MFx1MDE2Mlx1MDE2NFx1MDE2Nlx1MDE2OFx1MDE2QVx1MDE2Q1x1MDE2RVx1MDE3MFx1MDE3Mlx1MDE3NFx1MDE3Nlx1MDE3OC1cdTAxNzlcdTAxN0JcdTAxN0RcdTAxN0ZcdTAxODEtXHUwMTgyXHUwMTg0XHUwMTg2LVx1MDE4N1x1MDE4OS1cdTAxOEJcdTAxOEUtXHUwMTkxXHUwMTkzLVx1MDE5NFx1MDE5Ni1cdTAxOThcdTAxOUMtXHUwMTlEXHUwMTlGLVx1MDFBMFx1MDFBMlx1MDFBNFx1MDFBNi1cdTAxQTdcdTAxQTlcdTAxQUNcdTAxQUUtXHUwMUFGXHUwMUIxLVx1MDFCM1x1MDFCNVx1MDFCNy1cdTAxQjhcdTAxQkNcdTAxQzQtXHUwMUNEXHUwMUNGXHUwMUQxXHUwMUQzXHUwMUQ1XHUwMUQ3XHUwMUQ5XHUwMURCXHUwMURFXHUwMUUwXHUwMUUyXHUwMUU0XHUwMUU2XHUwMUU4XHUwMUVBXHUwMUVDXHUwMUVFXHUwMUYxLVx1MDFGNFx1MDFGNi1cdTAxRjhcdTAxRkFcdTAxRkNcdTAxRkVcdTAyMDBcdTAyMDJcdTAyMDRcdTAyMDZcdTAyMDhcdTAyMEFcdTAyMENcdTAyMEVcdTAyMTBcdTAyMTJcdTAyMTRcdTAyMTZcdTAyMThcdTAyMUFcdTAyMUNcdTAyMUVcdTAyMjJcdTAyMjRcdTAyMjZcdTAyMjhcdTAyMkFcdTAyMkNcdTAyMkVcdTAyMzBcdTAyMzJcdTAyQjAtXHUwMkI4XHUwMkQ4LVx1MDJERFx1MDJFMC1cdTAyRTRcdTAzNDAtXHUwMzQxXHUwMzQzLVx1MDM0NVx1MDM3NFx1MDM3QVx1MDM3RVx1MDM4NC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwMzhGXHUwMzkxLVx1MDNBMVx1MDNBMy1cdTAzQUJcdTAzQzJcdTAzRDAtXHUwM0Q2XHUwM0RBXHUwM0RDXHUwM0RFXHUwM0UwXHUwM0UyXHUwM0U0XHUwM0U2XHUwM0U4XHUwM0VBXHUwM0VDXHUwM0VFXHUwM0YwLVx1MDNGMlx1MDNGNC1cdTAzRjVcdTA0MDAtXHUwNDJGXHUwNDYwXHUwNDYyXHUwNDY0XHUwNDY2XHUwNDY4XHUwNDZBXHUwNDZDXHUwNDZFXHUwNDcwXHUwNDcyXHUwNDc0XHUwNDc2XHUwNDc4XHUwNDdBXHUwNDdDXHUwNDdFXHUwNDgwXHUwNDhDXHUwNDhFXHUwNDkwXHUwNDkyXHUwNDk0XHUwNDk2XHUwNDk4XHUwNDlBXHUwNDlDXHUwNDlFXHUwNEEwXHUwNEEyXHUwNEE0XHUwNEE2XHUwNEE4XHUwNEFBXHUwNEFDXHUwNEFFXHUwNEIwXHUwNEIyXHUwNEI0XHUwNEI2XHUwNEI4XHUwNEJBXHUwNEJDXHUwNEJFXHUwNEMxXHUwNEMzXHUwNEM3XHUwNENCXHUwNEQwXHUwNEQyXHUwNEQ0XHUwNEQ2XHUwNEQ4XHUwNERBXHUwNERDXHUwNERFXHUwNEUwXHUwNEUyXHUwNEU0XHUwNEU2XHUwNEU4XHUwNEVBXHUwNEVDXHUwNEVFXHUwNEYwXHUwNEYyXHUwNEY0XHUwNEY4XHUwNTMxLVx1MDU1Nlx1MDU4N1x1MDY3NS1cdTA2NzhcdTA5NTgtXHUwOTVGXHUwOURDLVx1MDlERFx1MDlERlx1MDlGOFx1MEEzM1x1MEEzNlx1MEE1OS1cdTBBNUJcdTBBNUVcdTBCNUMtXHUwQjVEXHUwRTMzXHUwRUIzXHUwRURDLVx1MEVERFx1MEYwQ1x1MEYyQS1cdTBGMzNcdTBGNDNcdTBGNERcdTBGNTJcdTBGNTdcdTBGNUNcdTBGNjlcdTBGNzNcdTBGNzUtXHUwRjc5XHUwRjgxXHUwRjkzXHUwRjlEXHUwRkEyXHUwRkE3XHUwRkFDXHUwRkI5XHUxMzdDXHUxRTAwXHUxRTAyXHUxRTA0XHUxRTA2XHUxRTA4XHUxRTBBXHUxRTBDXHUxRTBFXHUxRTEwXHUxRTEyXHUxRTE0XHUxRTE2XHUxRTE4XHUxRTFBXHUxRTFDXHUxRTFFXHUxRTIwXHUxRTIyXHUxRTI0XHUxRTI2XHUxRTI4XHUxRTJBXHUxRTJDXHUxRTJFXHUxRTMwXHUxRTMyXHUxRTM0XHUxRTM2XHUxRTM4XHUxRTNBXHUxRTNDXHUxRTNFXHUxRTQwXHUxRTQyXHUxRTQ0XHUxRTQ2XHUxRTQ4XHUxRTRBXHUxRTRDXHUxRTRFXHUxRTUwXHUxRTUyXHUxRTU0XHUxRTU2XHUxRTU4XHUxRTVBXHUxRTVDXHUxRTVFXHUxRTYwXHUxRTYyXHUxRTY0XHUxRTY2XHUxRTY4XHUxRTZBXHUxRTZDXHUxRTZFXHUxRTcwXHUxRTcyXHUxRTc0XHUxRTc2XHUxRTc4XHUxRTdBXHUxRTdDXHUxRTdFXHUxRTgwXHUxRTgyXHUxRTg0XHUxRTg2XHUxRTg4XHUxRThBXHUxRThDXHUxRThFXHUxRTkwXHUxRTkyXHUxRTk0XHUxRTlBLVx1MUU5Qlx1MUVBMFx1MUVBMlx1MUVBNFx1MUVBNlx1MUVBOFx1MUVBQVx1MUVBQ1x1MUVBRVx1MUVCMFx1MUVCMlx1MUVCNFx1MUVCNlx1MUVCOFx1MUVCQVx1MUVCQ1x1MUVCRVx1MUVDMFx1MUVDMlx1MUVDNFx1MUVDNlx1MUVDOFx1MUVDQVx1MUVDQ1x1MUVDRVx1MUVEMFx1MUVEMlx1MUVENFx1MUVENlx1MUVEOFx1MUVEQVx1MUVEQ1x1MUVERVx1MUVFMFx1MUVFMlx1MUVFNFx1MUVFNlx1MUVFOFx1MUVFQVx1MUVFQ1x1MUVFRVx1MUVGMFx1MUVGMlx1MUVGNFx1MUVGNlx1MUVGOFx1MUYwOC1cdTFGMEZcdTFGMTgtXHUxRjFEXHUxRjI4LVx1MUYyRlx1MUYzOC1cdTFGM0ZcdTFGNDgtXHUxRjREXHUxRjU5XHUxRjVCXHUxRjVEXHUxRjVGXHUxRjY4LVx1MUY2Rlx1MUY3MVx1MUY3M1x1MUY3NVx1MUY3N1x1MUY3OVx1MUY3Qlx1MUY3RFx1MUY4OC1cdTFGOEZcdTFGOTgtXHUxRjlGXHUxRkE4LVx1MUZBRlx1MUZCOC1cdTFGQzFcdTFGQzgtXHUxRkNGXHUxRkQzXHUxRkQ4LVx1MUZEQlx1MUZERC1cdTFGREZcdTFGRTNcdTFGRTgtXHUxRkVGXHUxRkY4LVx1MUZGRVx1MjAwMC1cdTIwMEFcdTIwMTFcdTIwMTdcdTIwMjQtXHUyMDI2XHUyMDJGXHUyMDMzLVx1MjAzNFx1MjAzNi1cdTIwMzdcdTIwM0NcdTIwM0VcdTIwNDgtXHUyMDQ5XHUyMDcwXHUyMDc0LVx1MjA4RVx1MjBBOFx1MjEwMC1cdTIxMDNcdTIxMDUtXHUyMTA3XHUyMTA5LVx1MjExM1x1MjExNS1cdTIxMTZcdTIxMTktXHUyMTFEXHUyMTIwLVx1MjEyMlx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTMxXHUyMTMzLVx1MjEzOVx1MjE1My1cdTIxN0ZcdTIxODEtXHUyMTgzXHUyMjJDLVx1MjIyRFx1MjIyRi1cdTIyMzBcdTIzMjktXHUyMzJBXHUyNDYwLVx1MjRFQVx1Mjc3Ni1cdTI3N0VcdTI3ODAtXHUyNzg4XHUyNzhBLVx1Mjc5Mlx1MkU5Rlx1MkVGM1x1MkYwMC1cdTJGRDVcdTMwMDBcdTMwMzZcdTMwMzgtXHUzMDNBXHUzMDlCLVx1MzA5Q1x1MzEzMS1cdTMxOEVcdTMxOTItXHUzMTlGXHUzMjAwLVx1MzIxQ1x1MzIyMC1cdTMyNDNcdTMyNjAtXHUzMjdCXHUzMjgwLVx1MzJCMFx1MzJDMC1cdTMyQ0JcdTMyRDAtXHUzMkZFXHUzMzAwLVx1MzM3Nlx1MzM3Qi1cdTMzRERcdTMzRTAtXHUzM0ZFXHVGOTAwLVx1RkEwRFx1RkExMFx1RkExMlx1RkExNS1cdUZBMUVcdUZBMjBcdUZBMjJcdUZBMjUtXHVGQTI2XHVGQTJBLVx1RkEyRFx1RkIwMC1cdUZCMDZcdUZCMTMtXHVGQjE3XHVGQjFGLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDAtXHVGQjQxXHVGQjQzLVx1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZEQzdcdUZERjAtXHVGREZCXHVGRTMwLVx1RkU0NFx1RkU0OS1cdUZFNTJcdUZFNTQtXHVGRTY2XHVGRTY4LVx1RkU2Qlx1RkU3MC1cdUZFNzJcdUZFNzRcdUZFNzYtXHVGRUZDXHVGRjAxLVx1RkY1RVx1RkY2MS1cdUZGQkVcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXHVGRkUwLVx1RkZFNlx1RkZFOC1cdUZGRUVcXFUwMDAxMDM0QVxcVTAwMDEwNDAwLVxcVTAwMDEwNDI1XFxVMDAwMUQxNjUtXFxVMDAwMUQxNjZcXFUwMDAxRDE2RC1cXFUwMDAxRDE3Ml0iKSwKKyAgICAgICAgfSwKKyAgICB9OworICAgICovCisKKyAgICAKKyAgICBzdGF0aWMgVW5pY29kZVNldCBnZW5lcmF0ZWRTZXQ7CisgICAgCisgICAgLy8gVGhlc2Ugc2hvdWxkIGJvdGggYmUgcHVibGljLCBhbmQgb24gdGhlIHJlc3BlY3RpdmUgY2xhc3NlcworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhZGRBbGwoVW5pY29kZVNldCBzLCBTdHJpbmcgc3RyKSB7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoc3RyLGkpOworICAgICAgICAgICAgcy5hZGQoY3ApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBjb250YWluc1NvbWUoVW5pY29kZVNldCBzLCBTdHJpbmcgc3RyKSB7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoc3RyLGkpOworICAgICAgICAgICAgaWYgKHMuY29udGFpbnMoY3ApKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9Xcml0ZUluZGljQ2hhcnRzLmphdmEgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvV3JpdGVJbmRpY0NoYXJ0cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4N2ZkNGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvV3JpdGVJbmRpY0NoYXJ0cy5qYXZhCkBAIC0wLDAgKzEsMzU3IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmRldi50b29sLnRyYW5zbGl0OworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CisvKioKKyAqIEBhdXRob3IgcmFtCisgKgorICogVG8gY2hhbmdlIHRoaXMgZ2VuZXJhdGVkIGNvbW1lbnQgZWRpdCB0aGUgdGVtcGxhdGUgdmFyaWFibGUgInR5cGVjb21tZW50IjoKKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPlRlbXBsYXRlcy4KKyAqIFRvIGVuYWJsZSBhbmQgZGlzYWJsZSB0aGUgY3JlYXRpb24gb2YgdHlwZSBjb21tZW50cyBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uLjdGCisgKi8KK3B1YmxpYyBjbGFzcyBXcml0ZUluZGljQ2hhcnRzIHsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKXsKKyAgICAgICAgd3JpdGVJSUNoYXJ0cygpOworICAgIH0KKyAgIAorICAgIAorICAgIHN0YXRpYyBTdHJpbmcgaGVhZGVyID0gICI8aHRtbD5cbiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj1cIkNvbnRlbnQtVHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLThcIj4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgIEludGVyLUluZGljIFRyYW5zbGl0ZXJhdGlvbiBDb21wYXJpc29uIGNoYXJ0IisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIDwvaGVhZD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICA8Ym9keSBiZ2NvbG9yPSNGRkZGRkY+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICA8dGFibGUgYm9yZGVyPTEgd2lkdGg9MTAwJSA+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICA8dHI+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICA8dGggd2lkdGg9OSU+SW50ZXItSW5kaWM8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgPHRoIHdpZHRoPTklPkxhdGluPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5EZXZhbmFnYXJpPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5CZW5nYWxpPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5HdXJtdWtoaTwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICA8dGggd2lkdGg9OSU+R3VqYXJhdGk8L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgPHRoIHdpZHRoPTklPk9yaXlhPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5UYW1pbDwvdGg+XG4iKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICA8dGggd2lkdGg9OSU+VGVsdWd1PC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5LYW5uYWRhPC90aD5cbiIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgIDx0aCB3aWR0aD05JT5NYWxheWFsYW08L3RoPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgPC90cj5cbiI7CisgICAgc3RhdGljIFN0cmluZyBmb290ZXIgPSAgIiAgICAgICAgICA8L3RhYmxlPlxuIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIDwvYm9keT5cbiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8L2h0bWw+XG4iOworICAgICAgICAgICAgICAgICAgIAorICAgIHN0YXRpYyBVbmljb2RlU2V0IGRldmEgPSBuZXcgVW5pY29kZVNldCgiWzpkZXZhOl0iKTsgCisgICAgc3RhdGljIFVuaWNvZGVTZXQgYmVuZyA9IG5ldyBVbmljb2RlU2V0KCJbOmJlbmc6XSIpOworICAgIHN0YXRpYyBVbmljb2RlU2V0IGd1anIgPSBuZXcgVW5pY29kZVNldCgiWzpndWpyOl0iKTsKKyAgICBzdGF0aWMgVW5pY29kZVNldCBndXJ1ID0gbmV3IFVuaWNvZGVTZXQoIls6Z3VydTpdIik7CisgICAgc3RhdGljIFVuaWNvZGVTZXQgb3J5YSA9IG5ldyBVbmljb2RlU2V0KCJbOm9yeWE6XSIpOworICAgIHN0YXRpYyBVbmljb2RlU2V0IHRhbWwgPSBuZXcgVW5pY29kZVNldCgiWzp0YW1sOl0iKTsKKyAgICBzdGF0aWMgVW5pY29kZVNldCB0ZWx1ID0gbmV3IFVuaWNvZGVTZXQoIls6dGVsdTpdIik7CisgICAgc3RhdGljIFVuaWNvZGVTZXQga25kYSA9IG5ldyBVbmljb2RlU2V0KCJbOmtuZGE6XSIpOyAKKyAgICBzdGF0aWMgVW5pY29kZVNldCBtbHltID0gbmV3IFVuaWNvZGVTZXQoIls6bWx5bTpdIik7ICAgICAgICAgICAgICAgICAgICAgIAorICAgIHN0YXRpYyBVbmljb2RlU2V0IGludGVyPSBuZXcgVW5pY29kZVNldCgiW1x1RTAwMC1cdUUwODJdIik7CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHdyaXRlSUlDaGFydHMoKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDEgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1CZW5nYWxpIik7ICAgIAorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDIgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1HdXJtdWtoaSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDMgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1HdWphcmF0aSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDQgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1Pcml5YSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDUgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1UYW1pbCIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDYgPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1UZWx1Z3UiKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ3ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtS2FubmFkYSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDggPSBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgiSW50ZXJJbmRpYy1NYWxheWFsYW0iKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ5ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtRGV2YW5hZ2FyaSIpOworICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdDEwID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtTGF0aW4iKTsKKyAgICAgICAgICAgIC8vVW5pY29kZVNldEl0ZXJhdG9yIHNJdGVyID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihkZXZhKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yKGludCBpPTB4MDA7aTw9MHg4MDtpKyspeworICAgICAgICAgICAgICAgU3RyaW5nW10gYXJyID0gIG5ldyBTdHJpbmdbMTBdOworICAgICAgICAgICAgICAgYXJyWzBdPVVURjE2LnZhbHVlT2YoaSsgMHhFMDAwKTsKKyAgICAgICAgICAgICAgIHRhYmxlLnB1dChVVEYxNi52YWx1ZU9mKGkpLGFycik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE91dHB1dFN0cmVhbVdyaXRlciBvcyA9IG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIobmV3IEZpbGVPdXRwdXRTdHJlYW0oImNvbXBhcmlzb24tY2hhcnQuaHRtbCIpLCJVVEYtOCIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBvcy53cml0ZShoZWFkZXIpOworCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ5LDB4MDkwMCwxKTsKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDEsMHgwOTgwLDIpOyAgICAgICAgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQyLDB4MEEwMCwzKTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQzLDB4MEE4MCw0KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ0LDB4MEIwMCw1KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ1LDB4MEI4MCw2KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ2LDB4MGMwMCw3KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ3LDB4MEM4MCw4KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ4LDB4MEQwMCw5KTsgCisKKyAgICAgICAgICAgIGZvcihpbnQgaT0weDAwO2k8PTB4ODA7aSsrKXsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wID0gKFN0cmluZ1tdKXRhYmxlLmdldChVVEYxNi52YWx1ZU9mKGkpKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIHdyaXRlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yKGludCBrPTE7azx0ZW1wLmxlbmd0aCAmJiB0ZW1wW2tdIT1udWxsO2srKyl7CisgICAgICAgICAgICAgICAgICAgIGlmKFVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lKFVURjE2LmNoYXJBdCh0ZW1wW2tdLDApKS5pbmRleE9mKCJ1bmFzc2lnbmVkIik8MCB8fAorICAgICAgICAgICAgICAgICAgICAgICB0ZW1wW2tdLmluZGV4T2YoIjpVTkFTU0lHTkVEIik8MCl7CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYod3JpdGUpeworICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICA8dHI+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8dGVtcC5sZW5ndGg7aisrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRlbXBbal0hPW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZmFsbGJhY2s9ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB1bmFzc2lnbmVkPWZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdW5tYXBwZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNvbnN1bWVkID1mYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gdGVtcFtqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGVtcFtqXS5pbmRleE9mKCI6RkFMTEJBQ0siKT49MCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9IHRlbXBbal0uc3Vic3RyaW5nKDAsdGVtcFtqXS5pbmRleE9mKCI6IikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjaz10cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgYmdjb2xvcj0jRkZGRjAwIGFsaWduPWNlbnRlciB0aXRsZT1cIiIrKyJcIj4iK3N0cisiPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0ZW1wW2pdLmluZGV4T2YoIjpVTkFTU0lHTkVEIik+PTApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSB0ZW1wW2pdLnN1YnN0cmluZygwLHRlbXBbal0uaW5kZXhPZigiOiIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5hc3NpZ25lZD10cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0ZW1wW2pdLmluZGV4T2YoIjpVTk1BUFBFRCIpPj0wKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyID0gdGVtcFtqXS5zdWJzdHJpbmcoMCx0ZW1wW2pdLmluZGV4T2YoIjoiKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVubWFwcGVkPXRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRlbXBbal0uaW5kZXhPZigiOkNPTlNVTUVEIik+PTApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSB0ZW1wW2pdLnN1YnN0cmluZygwLHRlbXBbal0uaW5kZXhPZigiOiIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtZWQ9dHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG5hbWVCdWY9bmV3IFN0cmluZ0J1ZmZlcigpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGY9MDsgZjxzdHIubGVuZ3RoKCk7ZisrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZj4wKXsgbmFtZUJ1Zi5hcHBlbmQoIisiKTt9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVCdWYuYXBwZW5kKFVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lKFVURjE2LmNoYXJBdChzdHIsZikpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWVCdWYudG9TdHJpbmcoKTsgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihmYWxsYmFjayl7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoVVRGMTYuY2hhckF0KHN0ciwwKSkuaW5kZXhPZigidW5hc3NpZ25lZCIpPjApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCAgd2lkdGg9OSUgYmdjb2xvcj0jQkJCQkZGIGFsaWduPWNlbnRlciB0aXRsZT1cIiIrbmFtZSsiXCI+IisiJm5ic3A8YnI+PHR0PiIrVXRpbGl0eS5oZXgoc3RyKSsiPC90dD4iKyI8L3RkPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCB3aWR0aD05JSBiZ2NvbG9yPSNCQkJCRkYgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyBzdHIrIjxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKHVubWFwcGVkKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCBiZ2NvbG9yPSNGRjk5OTkgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyImbmJzcDxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZih1bmFzc2lnbmVkKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoVVRGMTYuY2hhckF0KHN0ciwwKSkuaW5kZXhPZigidW5hc3NpZ25lZCIpPjApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCB3aWR0aD05JSBiZ2NvbG9yPSMwMEZGRkYgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyImbmJzcDxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIHdpZHRoPTklIGJnY29sb3I9IzAwRkZGRiBhbGlnbj1jZW50ZXIgdGl0bGU9XCIiK25hbWUrIlwiPiIrIHN0cisiPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoY29uc3VtZWQpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoVUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoVVRGMTYuY2hhckF0KHN0ciwwKSkuaW5kZXhPZigidW5hc3NpZ25lZCIpPjApeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCB3aWR0aD05JSBiZ2NvbG9yPSNGRkZGNTUgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyImbmJzcDxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIHdpZHRoPTklIGJnY29sb3I9I0ZGRkY1NSBhbGlnbj1jZW50ZXIgdGl0bGU9XCIiKyIiKyJcIj4iKyImbmJzcDxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuaW5kZXhPZigicHJpdmF0ZSIpIT0tMSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzID0gdDEwLnRyYW5zbGl0ZXJhdGUoc3RyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCB3aWR0aD05JSBiZ2NvbG9yPSNGRkJCQkIgIGFsaWduPWNlbnRlciB0aXRsZT1cIiIrbmFtZSsiXCI+IisiJm5ic3A8YnI+PHR0PiIrVXRpbGl0eS5oZXgoc3RyKSsiPC90dD4iKyI8L3RkPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFzLmVxdWFscyhzdHIpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgd2lkdGg9OSUgIGJnY29sb3I9I0NDRUVERCBhbGlnbj1jZW50ZXI+IitzICsiPC90ZD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIHdpZHRoPTklIGJnY29sb3I9I0NDRUVERCBhbGlnbj1jZW50ZXI+Jm5ic3A7PC90ZD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgd2lkdGg9OSUgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyBzdHIrIjxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgICAgIDx0ZCB3aWR0aD05JSA+Jm5ic3A8L3RkPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgPC90cj5cbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9zLndyaXRlKGZvb3Rlcik7CisgICAgICAgICAgICBvcy5jbG9zZSgpOworICAgICAgICB9Y2F0Y2goIEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVibGljIHN0YXRpYyB2b2lkIHdyaXRlQ2hhcnRzKCl7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQxID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtQmVuZ2FsaSIpOyAgICAKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQyID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtR3VybXVraGkiKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQzID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtR3VqYXJhdGkiKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtT3JpeWEiKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ1ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtVGFtaWwiKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ2ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtVGVsdWd1Iik7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0NyA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJJbnRlckluZGljLUthbm5hZGEiKTsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ4ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoIkludGVySW5kaWMtTWFsYXlhbGFtIik7CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0OSA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKCJJbnRlckluZGljLURldmFuYWdhcmkiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9Vbmljb2RlU2V0SXRlcmF0b3Igc0l0ZXIgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGRldmEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IoaW50IGk9MHgwOTAwO2k8PTB4MDk3RjtpKyspeworICAgICAgICAgICAgICAgU3RyaW5nW10gYXJyID0gIG5ldyBTdHJpbmdbMTBdOworICAgICAgICAgICAgICAgYXJyWzBdPVVURjE2LnZhbHVlT2YoKGkmMHhGRikgKyAweEUwMDApOworICAgICAgICAgICAgICAgdGFibGUucHV0KFVURjE2LnZhbHVlT2YoaSksYXJyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgT3V0cHV0U3RyZWFtV3JpdGVyIG9zID0gbmV3IE91dHB1dFN0cmVhbVdyaXRlcihuZXcgRmlsZU91dHB1dFN0cmVhbSgiY29tcGFyaXNvbi1jaGFydC5odG1sIiksIlVURi04Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG9zLndyaXRlKGhlYWRlcik7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgd3JpdGVDaGFydHModDEsYmVuZywxKTsgICAgICAgIAorICAgICAgICAgICAgd3JpdGVDaGFydHModDIsZ3VydSwyKTsgCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0MyxndWpyLDMpOyAKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQ0LG9yeWEsNCk7IAorICAgICAgICAgICAgd3JpdGVDaGFydHModDUsdGFtbCw1KTsgCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0Nix0ZWx1LDYpOyAKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQ3LGtuZGEsNyk7IAorICAgICAgICAgICAgd3JpdGVDaGFydHModDgsbWx5bSw4KTsgCisgICAgICAgICAgICAqLworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQ5LDB4MDkwMCwxKTsKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQxLDB4MDk4MCwyKTsgICAgICAgIAorICAgICAgICAgICAgd3JpdGVDaGFydHModDIsMHgwQTAwLDMpOyAKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQzLDB4MEE4MCw0KTsgCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0NCwweDBCMDAsNSk7IAorICAgICAgICAgICAgd3JpdGVDaGFydHModDUsMHgwQjgwLDYpOyAKKyAgICAgICAgICAgIHdyaXRlQ2hhcnRzKHQ2LDB4MGMwMCw3KTsgCisgICAgICAgICAgICB3cml0ZUNoYXJ0cyh0NywweDBDODAsOCk7IAorICAgICAgICAgICAgd3JpdGVDaGFydHModDgsMHgwRDAwLDkpOyAKKyAgICAgICAgICAgICovCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ5LDB4MDkwMCwxKTsKKyAgICAgICAgICAgIHdyaXRlSUlDaGFydHModDEsMHgwOTgwLDIpOyAgICAgICAgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQyLDB4MEEwMCwzKTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQzLDB4MEE4MCw0KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ0LDB4MEIwMCw1KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ1LDB4MEI4MCw2KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ2LDB4MGMwMCw3KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ3LDB4MEM4MCw4KTsgCisgICAgICAgICAgICB3cml0ZUlJQ2hhcnRzKHQ4LDB4MEQwMCw5KTsgCisgICAgICAgICAgICBmb3IoaW50IGk9MHgwOTAwO2k8PTB4MDk3RjtpKyspeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIHRlbXAgPSAoU3RyaW5nW10pdGFibGUuZ2V0KFVURjE2LnZhbHVlT2YoaSkpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gd3JpdGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IoaW50IGs9MTtrPHRlbXAubGVuZ3RoO2srKyl7CisgICAgICAgICAgICAgICAgICAgIGlmKFVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lKFVURjE2LmNoYXJBdCh0ZW1wW2tdLDApKS5pbmRleE9mKCJ1bmFzc2lnbmVkIik8MCl7CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYod3JpdGUpeworICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICA8dHI+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8dGVtcC5sZW5ndGg7aisrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRlbXBbal0hPW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZmFsbGJhY2s9ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IHRlbXBbal07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodGVtcFtqXS5pbmRleE9mKCI6RkFMTEJBQ0siKT49MCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9IHRlbXBbal0uc3Vic3RyaW5nKDAsdGVtcFtqXS5pbmRleE9mKCI6IikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFjaz10cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgYmdjb2xvcj0jRkZGRjAwIGFsaWduPWNlbnRlciB0aXRsZT1cIiIrKyJcIj4iK3N0cisiPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IFVDaGFyYWN0ZXIuZ2V0RXh0ZW5kZWROYW1lKFVURjE2LmNoYXJBdChzdHIsMCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGZhbGxiYWNrKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgICAgIDx0ZCBiZ2NvbG9yPSNCQkJCRkYgYWxpZ249Y2VudGVyIHRpdGxlPVwiIituYW1lKyJcIj4iKyBzdHIrIjxicj48dHQ+IitVdGlsaXR5LmhleChzdHIpKyI8L3R0PiIrIjwvdGQ+XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZihuYW1lLmluZGV4T2YoInVuYXNzaWduZWQiKSE9LTEpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIGJnY29sb3I9I0NDQ0NDQyBhbGlnbj1jZW50ZXIgdGl0bGU9XCIiK25hbWUrIlwiPiIrIiZuYnNwPGJyPjx0dD4iK1V0aWxpdHkuaGV4KHN0cikrIjwvdHQ+IisiPC90ZD5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKG5hbWUuaW5kZXhPZigicHJpdmF0ZSIpIT0tMSl7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKCIgICAgICAgICAgICA8dGQgYmdjb2xvcj0jRkZCQkJCIGFsaWduPWNlbnRlciB0aXRsZT1cIiIrbmFtZSsiXCI+IisiJm5ic3A8YnI+PHR0PiIrVXRpbGl0eS5oZXgoc3RyKSsiPC90dD4iKyI8L3RkPlxuIik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICAgPHRkIGFsaWduPWNlbnRlciB0aXRsZT1cIiIrbmFtZSsiXCI+Iisgc3RyKyI8YnI+PHR0PiIrVXRpbGl0eS5oZXgoc3RyKSsiPC90dD4iKyI8L3RkPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy53cml0ZSgiICAgICAgICAgICA8dGQ+Jm5ic3A8L3RkPlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3Mud3JpdGUoIiAgICAgICAgPC90cj5cbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9zLndyaXRlKGZvb3Rlcik7CisgICAgICAgICAgICBvcy5jbG9zZSgpOworICAgICAgICB9Y2F0Y2goIEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgc3RhdGljIEhhc2h0YWJsZSB0YWJsZSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICBzdGF0aWMgU3RyaW5nIGdldEtleShpbnQgY3ApeworICAgICAgICBpbnQgZGVsdGEgPSBjcCAmIDB4RkY7CisgICAgICAgIGRlbHRhLT0gKGRlbHRhPjB4N2YpPyAweDgwIDogMDsKKyAgICAgICAgLy9kZWx0YSs9MHgwOTAwOworICAgICAgICByZXR1cm4gVVRGMTYudmFsdWVPZihkZWx0YSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB3cml0ZUNoYXJ0cyhUcmFuc2xpdGVyYXRvciB0cmFucywgaW50IHN0YXJ0LCBpbnQgaW5kZXgpeworICAgICAgICAKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgaW52ZXJzZSA9IHRyYW5zLmdldEludmVyc2UoKTsKKyAgICAgICAgZm9yKGludCBpPTA7aTw9MHg3ZjtpKyspeworICAgICAgICAgICAgU3RyaW5nIGNwID0gVVRGMTYudmFsdWVPZihzdGFydCtpKTsKKyAgICAgICAgICAgIFN0cmluZyBzMSA9IGludmVyc2UudHJhbnNsaXRlcmF0ZShjcCk7CisgICAgICAgICAgICBTdHJpbmcgczIgPSB0cmFucy50cmFuc2xpdGVyYXRlKHMxKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nW10gYXJyID0gKFN0cmluZ1tdKXRhYmxlLmdldChnZXRLZXkoc3RhcnQraSkpOworICAgICAgICAgICAgaWYoY3AuZXF1YWxzKHMyKSl7CisgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IHMxOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IHMxICsgIjpGQUxMQkFDSyI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHdyaXRlSUlDaGFydHMoVHJhbnNsaXRlcmF0b3IgdHJhbnMsaW50IHN0YXJ0LCBpbnQgaW5kZXgpeworICAgICAgICAKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgaW52ZXJzZSA9IHRyYW5zLmdldEludmVyc2UoKTsKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ZXIgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGludGVyKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlKGl0ZXIubmV4dCgpKXsKKyAgICAgICAgICAgIFN0cmluZyBjcCA9VVRGMTYudmFsdWVPZihpdGVyLmNvZGVwb2ludCk7CisgICAgICAgICAgICBTdHJpbmcgczEgPSB0cmFucy50cmFuc2xpdGVyYXRlKGNwKTsKKyAgICAgICAgICAgIFN0cmluZyBzMiA9IGludmVyc2UudHJhbnNsaXRlcmF0ZShzMSk7CisgICAgICAgICAgICBTdHJpbmdbXSBhcnIgPSAoU3RyaW5nW10pdGFibGUuZ2V0KFVURjE2LnZhbHVlT2YoaXRlci5jb2RlcG9pbnQmMHhGRikpOworICAgICAgICAgICAgaWYoY3AuZXF1YWxzKHMxKSl7CisgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IFVURjE2LnZhbHVlT2Yoc3RhcnQrKCgoYnl0ZSlpdGVyLmNvZGVwb2ludCkmMHhGRikpKyI6VU5BU1NJR05FRCI7CisgICAgICAgICAgICB9ZWxzZSBpZihjcC5lcXVhbHMoczIpKXsKKyAgICAgICAgICAgICAgICBhcnJbaW5kZXhdID0gczE7CisgICAgICAgICAgICB9ZWxzZSBpZihzMS5lcXVhbHMoczIpKXsKKyAgICAgICAgICAgICAgICBpZihzMS5lcXVhbHMoIiIpKXsKKyAgICAgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IFVURjE2LnZhbHVlT2Yoc3RhcnQrKCgoYnl0ZSlpdGVyLmNvZGVwb2ludCkmMHhGRikpKyI6Q09OU1VNRUQiOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBhcnJbaW5kZXhdID0gczErICI6RkFMTEJBQ0siOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZXsKKyAgICAgICAgICAgICAgICBpZihzMi5lcXVhbHMoIiIpKXsKKyAgICAgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IFVURjE2LnZhbHVlT2Yoc3RhcnQrKCgoYnl0ZSlpdGVyLmNvZGVwb2ludCkmMHhGRikpKyI6Q09OU1VNRUQiOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBhcnJbaW5kZXhdID0gczErICI6RkFMTEJBQ0siOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgd3JpdGVDaGFydHMoVHJhbnNsaXRlcmF0b3IgdHJhbnMsIFVuaWNvZGVTZXQgdGFyZ2V0LCBpbnQgaW5kZXgpeworICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgdEl0ZXIgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHRhcmdldCk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGludmVyc2UgPSB0cmFucy5nZXRJbnZlcnNlKCk7CisgICAgICAgIHdoaWxlKHRJdGVyLm5leHQoKSl7CisgICAgICAgICAgICBTdHJpbmcgY3AgPSBVVEYxNi52YWx1ZU9mKHRJdGVyLmNvZGVwb2ludCk7CisgICAgICAgICAgICBTdHJpbmcgczEgPSBpbnZlcnNlLnRyYW5zbGl0ZXJhdGUoY3ApOworICAgICAgICAgICAgU3RyaW5nIHMyID0gdHJhbnMudHJhbnNsaXRlcmF0ZShzMSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZ1tdIGFyciA9IChTdHJpbmdbXSl0YWJsZS5nZXQoZ2V0S2V5KHRJdGVyLmNvZGVwb2ludCkpOworICAgICAgICAgICAgaWYoY3AuZXF1YWxzKHMyKSl7CisgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IGNwOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IGNwICsgIjpGQUxMQkFDSyI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9kdW1wSUNVcnVsZXMuYmF0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2R1bXBJQ1VydWxlcy5iYXQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGJmZDVlYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9kdW1wSUNVcnVsZXMuYmF0CkBAIC0wLDAgKzEsNDgzIEBACitAcmVtID0gJy0tKi1QZXJsLSotLQorQGVjaG8gb2ZmCitpZiAiJU9TJSIgPT0gIldpbmRvd3NfTlQiIGdvdG8gV2luTlQKK3BlcmwgLXggLVMgIiUwIiAlMSAlMiAlMyAlNCAlNSAlNiAlNyAlOCAlOQorZ290byBlbmRvZnBlcmwKKzpXaW5OVAorcGVybCAteCAtUyAiJTAiICUqCitpZiBOT1QgIiVDT01TUEVDJSIgPT0gIiVTeXN0ZW1Sb290JVxzeXN0ZW0zMlxjbWQuZXhlIiBnb3RvIGVuZG9mcGVybAoraWYgJWVycm9ybGV2ZWwlID09IDkwMDkgZWNobyBZb3UgZG8gbm90IGhhdmUgUGVybCBpbiB5b3VyIFBBVEguCitnb3RvIGVuZG9mcGVybAorQHJlbSAnOworIyFwZXJsCisjbGluZSAxNAorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisjIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyMgVGhpcyBwZXJsIHNjcmlwdCBjcmVhdGVzIElDVSB0cmFuc2xpdGVyYXRvciBkYXRhIGZpbGVzLCB0aGF0IGxpdmUKKyMgaW4gaWN1L2RhdGEsIGZyb20gSUNVNEogVVRGOCB0cmFuc2xpdGVyYXRvciBkYXRhIGZpbGVzLCBpbgorIyBpY3U0ai9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhLy4KKyMKKyMgVGhlIHRyYW5zZm9ybWF0aW9uIHRoYXQgaXMgZG9uZSBpcyB2ZXJ5IG1pbmltYWwuICBUaGUgc2NyaXB0IGFzc3VtZXMKKyMgdGhhdCB0aGUgaW5wdXQgZmlsZXMgdXNlIG9ubHkgIyBjb21tZW50cworIyBhbmQgdGhhdCB0aGV5IGZvbGxvdyBhIHJpZ2lkIGZvcm1hdC4KKyMKKyMgVGhlIG91dHB1dCBmaWxlcyBhcmUgbmFtZWQgYWNjb3JkaW5nIHRvIElDVSBjb252ZW50aW9ucyAoc2VlIE5BTUVfTUFQCisjIGJlbG93KSBhbmQgY3JlYXRlZCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuICBUaGV5IHNob3VsZCBiZSBtYW51YWxseQorIyBjaGVja2VkIGFuZCB0aGVuIGNvcGllZCBpbnRvIHRoZSBpY3UvZGF0YS90cmFubGl0IGRpcmVjdG9yeS4KKyMgQW4gSUNVIGJ1aWxkIG11c3QKKyMgdGhlbiBiZSBpbml0aWF0ZWQsIGFuZCB0aGUgc3RhbmRhcmQgc3VpdGUgb2YgSUNVIHRyYW5zbGl0ZXJhdG9yIHRlc3RzCisjIHNob3VsZCBiZSBydW4gYWZ0ZXIgdGhhdC4KKyMKKyMgQWxhbiBMaXUgNS8xOS8wMCAyLzI3LzAxCisKK3VzZSBHZXRvcHQ6Okxvbmc7Cit1c2Ugc3RyaWN0OworCit1c2UgdmFycyBxdyglVVNFRF9GSUxFUyk7CisKK215ICRESVIgPSAiLi4vLi4vLi4vaW1wbC9kYXRhIjsKK215ICRJRCA9ICcnOworCitHZXRPcHRpb25zKCdkaXI9cycgPT4gXCRESVIsCisgICAgICAgICAgICdpZD1zJyA9PiBcJElELAorICAgICAgICAgICAnPD4nID0+IFwmdXNhZ2UpIHx8IGRpZTsKKwordXNhZ2UoKSBpZiAoQEFSR1YpOworCitteSAkSUQgPX4gcy8tL18vOworaWYgKCEgLWQgJERJUikgeworICAgIHByaW50IFNUREVSUiAiJERJUiBpcyBub3QgYSBkaXJlY3RvcnlcbiI7CisgICAgdXNhZ2UoKTsKK30KKworc3ViIHVzYWdlIHsKKyAgICBteSAkbWUgPSAkMDsKKyAgICAkbWUgPX4gc3wuK1svXFxdfHw7CisgICAgcHJpbnQgIlVzYWdlOiAkbWUgWy1kaXIgPGRpcj5dIFstaWQgPGlkPl1cbiI7CisgICAgcHJpbnQgIiAtLWRpciA8ZGlyPiBTcGVjaWZ5IHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGVcbiI7CisgICAgcHJpbnQgIiAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvcl8qLnR4dCBmaWxlc1xuIjsKKyAgICBwcmludCAiIC0taWQgPGlkPiAgIFNwZWNpZnkgYSBzaW5nbGUgSUQgdG8gdHJhbnNmb3JtLCBlLmcuXG4iOworICAgIHByaW50ICIgICAgICAgICAgICAgRnVsbHdpZHRoLUhhbGZ3aWR0aFxuIjsKKyAgICBleGl0KDEpOworfQorCitteSAkSkFWQV9PTkxZID0gJy0nOworCitteSAkT1VURElSID0gImljdTRjIjsKK21rZGlyKCRPVVRESVIsMDc3Nyk7CisKKyMgTWFwcGluZyBmcm9tIEphdmEgZmlsZSBuYW1lcyB0byBJQ1UgZmlsZSBuYW1lcworIyBDb25zdHJhaW50cyBvbiBJQ1U0QyBmaWxlIG5hbWU6IGljdWR0MjBiXworIyB8LS05IChwcmVmaXgpLS0tfC0tLTE4KG5hbWUgd2l0aCBkaXN0aW5ndWlzaGVyLGUuZy4gInRfIiApLS0tLXwKKyMgIC0tNCAoIi4iK2V4dG4pLS18ID0gMzEgY2hhcmFjdGVycyB0b3RhbC4KKyMgVGhhdCBpcywgbXVzdCBoYXZlIGxlbmd0aCglTkFNRV9NQVB7eH0pIDw9IDE2CisKK215ICRNQVhfSUNVNENfRklMRU5BTUVfTEVOID0gMTg7CisKKyMgLS0gSElTVE9SWSAtLSBJZiBub3QgbWFya2VkLCB0aGVuIHByZSAyLjIuCisjICAgICAgICAgICAgICAgQWxsIEludGVySW5kaWMgYXJlIHByZSAyLjIuCisjIEFueV9BY2NlbnRzCisjIEFueV9QdWJsaXNoaW5nCisjIEFyYWJpY19MYXRpbiAgICAgICAgICAgKiAyLjIKKyMgQ3lyaWxsaWNfTGF0aW4KKyMgRnVsbHdpZHRoX0hhbGZ3aWR0aAorIyBHcmVla19MYXRpbgorIyBHcmVla19MYXRpbl9VTkdFR04gICAgICogMi4yIChtb3ZlZCBmcm9tIGVsLnR4dCkKKyMgSGFuX0xhdGluICAgICAgICAgICAgICAqIDIuMgorIyBIYW5fTGF0aW5fRGVmaW5pdGlvbiAgICogMi4yCisjIEhhbl9MYXRpbl9FRElDVCAgICAgICAgKiAyLjIgSiBvbmx5CisjIEhlYnJld19MYXRpbiAgICAgICAgICAgKiAyLjIKKyMgSGlyYWdhbmFfS2F0YWthbmEKKyMgSGlyYWdhbmFfTGF0aW4KKyMgTGF0aW5fSmFtbworIyBMYXRpbl9LYXRha2FuYQorIyBUaGFpTG9naWNhbF9MYXRpbiAgICAgICogMi4yIEogb25seQorIyBUaGFpX1RoYWlMb2dpY2FsICAgICAgICogMi4yIEogb25seQorIyBUaGFpX1RoYWlTZW1pICAgICAgICAgICogMi4yIEogb25seQorCitteSAlTkFNRV9NQVAgPSAoCisgICAgICMgQW4gSUNVIG5hbWUgb2YgIiIgbWVhbnMgdGhlIElDVSBuYW1lID09IHRoZSBJRAorCisgICAgICMgV2UgZmlsdGVyIG5hbWVzIGJhc2VkIG9uIHdoYXQgaXMgaW4gdXNlIGluIHRoZSBpbmRleCBmaWxlLgorCisgICAgICMgRmxhZyBhIHJ1bGUgYXMgSkFWQV9PTkxZIGlmIGl0IGV4aXN0cyBhbmQgd2UgdXNlIGl0IGluIEphdmEsCisgICAgICMgYnV0IHdlIGRvbid0IHVzZSBpdCBpbiBDLgorCisgICAgICMgVXNlIG9mZmljaWFsIHNjcmlwdCBhYmJyZXZpYXRpb25zIHdoZXJlIHBvc3NpYmxlLgorCisgICAjIHwuLi4uLi4uLi4uLi4uLnwgICAgICAgICAgIHwuLi4uLi4uLi4uLi4uLnwgICAgICAgICAgICAgCisgICAjIDEyMzQ1Njc4OTAxMjM0NTYgICAgICAgICAgIDEyMzQ1Njc4OTAxMjM0NTYKKyAgICAgQW55X0FjY2VudHMgICAgICAgICAgICA9PiAiIiwKKyAgICAgQW55X1B1Ymxpc2hpbmcgICAgICAgICA9PiAiIiwKKyAgICAgQ3lyaWxsaWNfTGF0aW4gICAgICAgICA9PiAiQ3lybF9MYXRuIiwKKyAgICAgRnVsbHdpZHRoX0hhbGZ3aWR0aCAgICA9PiAiRldpZHRoX0hXaWR0aCIsCisgICAgIEdyZWVrX0xhdGluICAgICAgICAgICAgPT4gIkdyZWtfTGF0biIsCisgICAgIEhpcmFnYW5hX0thdGFrYW5hICAgICAgPT4gIkhpcmFfS2FuYSIsCisgICAgIEhpcmFnYW5hX0xhdGluICAgICAgICAgPT4gIkhpcmFfTGF0biIsCisgICAgIExhdGluX0phbW8gICAgICAgICAgICAgPT4gIkxhdG5fSmFtbyIsCisgICAgIExhdGluX0thdGFrYW5hICAgICAgICAgPT4gIkxhdG5fS2FuYSIsCisKKyAgICAgQXJhYmljX0xhdGluICAgICAgICAgICA9PiAiQXJhYl9MYXRuIiwKKyAgICAgR3JlZWtfTGF0aW5fVU5HRUdOICAgICA9PiAiR3Jla19MYXRuX1VOR0VHTiIsCisgICAgIEhhbl9MYXRpbiAgICAgICAgICAgICAgPT4gIkhhbmlfTGF0biIsCisgICAgIEhhbl9MYXRpbl9EZWZpbml0aW9uICAgPT4gIkhhbmlfTGF0bl9EZWYiLAorICAgICBIYW5fTGF0aW5fRURJQ1QgICAgICAgID0+ICJIYW5pX0xhdG5fRURJQ1QiLAorICAgICBIZWJyZXdfTGF0aW4gICAgICAgICAgID0+ICJIZWJyX0xhdG4iLAorICAgICBUaGFpTG9naWNhbF9MYXRpbiAgICAgID0+ICRKQVZBX09OTFksICMgIlRoYWlMb2dfTGF0biIsCisgICAgIFRoYWlfVGhhaUxvZ2ljYWwgICAgICAgPT4gJEpBVkFfT05MWSwgIyAiVGhhaV9UaGFpTG9nIiwKKyAgICAgVGhhaV9UaGFpU2VtaSAgICAgICAgICA9PiAkSkFWQV9PTkxZLCAjICJUaGFpX1RoYWlTZW1pIiwKKworICAgICBJbnRlckluZGljX0JlbmdhbGkgICAgID0+ICJJbnRlckluZGljX0JlbmciLAorICAgICBJbnRlckluZGljX0RldmFuYWdhcmkgID0+ICJJbnRlckluZGljX0RldmEiLAorICAgICBJbnRlckluZGljX0d1amFyYXRpICAgID0+ICJJbnRlckluZGljX0d1anIiLAorICAgICBJbnRlckluZGljX0d1cm11a2hpICAgID0+ICJJbnRlckluZGljX0d1cnUiLAorICAgICBJbnRlckluZGljX0thbm5hZGEgICAgID0+ICJJbnRlckluZGljX0tuZGEiLAorICAgICBJbnRlckluZGljX0xhdGluICAgICAgID0+ICJJbnRlckluZGljX0xhdG4iLAorICAgICBJbnRlckluZGljX01hbGF5YWxhbSAgID0+ICJJbnRlckluZGljX01seW0iLAorICAgICBJbnRlckluZGljX09yaXlhICAgICAgID0+ICJJbnRlckluZGljX09yeWEiLAorICAgICBJbnRlckluZGljX1RhbWlsICAgICAgID0+ICJJbnRlckluZGljX1RhbWwiLAorICAgICBJbnRlckluZGljX1RlbHVndSAgICAgID0+ICJJbnRlckluZGljX1RlbHUiLAorCisgICAgIEJlbmdhbGlfSW50ZXJJbmRpYyAgICAgPT4gIkJlbmdfSW50ZXJJbmRpYyIsCisgICAgIERldmFuYWdhcmlfSW50ZXJJbmRpYyAgPT4gIkRldmFfSW50ZXJJbmRpYyIsCisgICAgIEd1amFyYXRpX0ludGVySW5kaWMgICAgPT4gIkd1anJfSW50ZXJJbmRpYyIsCisgICAgIEd1cm11a2hpX0ludGVySW5kaWMgICAgPT4gIkd1cnVfSW50ZXJJbmRpYyIsCisgICAgIEthbm5hZGFfSW50ZXJJbmRpYyAgICAgPT4gIktuZGFfSW50ZXJJbmRpYyIsCisgICAgIExhdGluX0ludGVySW5kaWMgICAgICAgPT4gIkxhdG5fSW50ZXJJbmRpYyIsCisgICAgIE1hbGF5YWxhbV9JbnRlckluZGljICAgPT4gIk1seW1fSW50ZXJJbmRpYyIsCisgICAgIE9yaXlhX0ludGVySW5kaWMgICAgICAgPT4gIk9yeWFfSW50ZXJJbmRpYyIsCisgICAgIFRhbWlsX0ludGVySW5kaWMgICAgICAgPT4gIlRhbWxfSW50ZXJJbmRpYyIsCisgICAgIFRlbHVndV9JbnRlckluZGljICAgICAgPT4gIlRlbHVfSW50ZXJJbmRpYyIsCisgICAgIAorICAgICBIYW5fUGlueWluICAgICAgICAgICAgID0+ICRKQVZBX09OTFksCisgICAgIEthbmppX0VuZ2xpc2ggICAgICAgICAgPT4gJEpBVkFfT05MWSwKKyAgICAgS2FuamlfT25Sb21hamkgICAgICAgICA9PiAkSkFWQV9PTkxZLAorICAgICAKKyAgICAgTGF0aW5fTnVtZXJpY1BpbnlpbiAgICA9PiAiTGF0bl9OUGlueW4iLAorICAgICBUb25lX0RpZ2l0ICAgICAgICAgICAgID0+ICJUb25lX0RpZ2l0IiwKKyAgICAgSGFuX1NwYWNlZGhhbiAgICAgICAgICA9PiAiSGFuaV9TcEhhbiIsCisgICAgICk7CisKK215ICgkeCwkeCwkeCwkeCwkeCwkVEhJU19ZRUFSKSA9IGxvY2FsdGltZSgpOworJFRISVNfWUVBUiArPSAxOTAwOworCisjIEhlYWRlciBibG9ja3Mgb2YgdGV4dCB3cml0dGVuIGF0IHN0YXJ0IG9mIElDVSBvdXRwdXQgZmlsZXMKK215ICRIRUFERVIxID0gPDxFTkQ7CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBDb3B5cmlnaHQgKGMpIDE5OTktJFRISVNfWUVBUiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworLy8gQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBUSElTIElTIEEgTUFDSElORS1HRU5FUkFURUQgRklMRQorRU5ECitteSAkSEVBREVSMiA9IDw8RU5EOworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRU5ECisKK215ICRUT09MID0gJDA7CisKKyMgQ29udmVydCB0aGUgaW5kZXggZmlyc3Q7IHRoaXMgdGVsbHMgdXMgd2hpY2ggcnVsZSBmaWxlcyBhcmUgaW4gdXNlLgorY29udmVydEluZGV4KCk7CisKKyMgcHJpbnQgIkluIHVzZTpcbiIsIGpvaW4oIlxuIiwgc29ydCBrZXlzKCVVU0VEX0ZJTEVTKSksICJcbiI7CisKKyMgSXRlcmF0ZSBvdmVyIGFsbCBKYXZhIFJCVCBydWxlIGZpbGVzCitmb3JlYWNoICg8JERJUi9UcmFuc2xpdGVyYXRvcl8qLnR4dD4pIHsKKyAgICBuZXh0IGlmICgvfiQvKTsgIyBJZ25vcmUgZW1hY3MgYmFja3VwcworICAgIG5leHQgaWYgKC9faW5kZXhcLnR4dCQvKTsgIyBUaGUgaW5kZXggZmlsZSB3YXMgcHJvY2Vzc2VkIGFib3ZlCisgICAgIyBTZWxlY3QgZWl0aGVyIHRoZSBjb21tYW5kLWxpbmUgYXJnLCBpZiB0aGVyZSB3YXMgb25lLCBvcgorICAgICMgYW55IGZpbGVzIG1lbnRpb25lZCBpbiB0aGUgaW5kZXguCisgICAgbXkgJGxlYWYgPSAkXzsKKyAgICAkbGVhZiA9fiBzfC4rWy9cXF18fDsKKyAgICBpZiAoKCRJRCAmJiAkbGVhZiA9fiAvJElELykgfHwgZXhpc3RzICRVU0VEX0ZJTEVTeyRsZWFmfSkgeworICAgICAgICBteSAoJG91dCwgJGlkKSA9IGNvbnZlcnRGaWxlTmFtZSgkXyk7CisgICAgICAgIGlmICgkb3V0KSB7CisgICAgICAgICAgICBpZiAoJG91dCBlcSAkSkFWQV9PTkxZKSB7CisgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICIqKiogJGlkIHNraXBwZWQ6IEphdmEgb25seSAqKipcbiI7CisgICAgICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbGUoJGlkLCAkXywgJG91dCk7CisgICAgICAgIH0KKyAgICB9IGVsc2lmICghJElEKSB7CisgICAgICAgIHByaW50ICIqKiogJGxlYWYgc2tpcHBlZDogbm90IGluIHVzZSAqKipcbiI7CisgICAgfQorfQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENvbnZlcnQgYSBKYXZhIGZpbGUgbmFtZSB0byBDCisjIFBhcmFtOiBKYXZhIGZpbGUgbmFtZSBvZiB0aGUgZm9ybSBtfFRyYW5zbGl0ZXJhdG9yXyguKylcLnV0ZjhcLnR4dCR8CisjIFJldHVybjogQSBDIGZpbGUgbmFtZSAoZS5nLiwgbGRldmFuLnR4dCkgb3IgdGhlIGVtcHR5IHN0cmluZywKKyMgIGlmIHRoZXJlIGlzIG5vIG1hcHBpbmcsIG9yICRKQVZBX09OTFkgaWYgdGhlIGdpdmVuIGZpbGUgaXNuJ3QKKyMgIGludGVuZGVkIHRvIGJlIGluY29ycG9yYXRlZCBpbnRvIEMuCitzdWIgY29udmVydEZpbGVOYW1lIHsKKyAgICBsb2NhbCAkXyA9IHNoaWZ0OworICAgIG15ICRpZDsKKyAgICBpZiAobXxUcmFuc2xpdGVyYXRvcl8oLispXC51dGY4XC50eHQkfCB8fAorICAgICAgICBtfFRyYW5zbGl0ZXJhdG9yXyguKylcLnR4dCR8KSB7CisgICAgICAgICRpZCA9ICQxOworICAgIH0gZWxzZSB7IGRpZSAiQ2FuJ3QgcGFyc2UgSmF2YSBmaWxlIG5hbWUgJF8iOyB9CisgICAgaWYgKCFleGlzdHMgJE5BTUVfTUFQeyRpZH0pIHsKKyAgICAgICAgcHJpbnQgU1RERVJSICJFUlJPUjogJGlkIG5vdCBpbiBtYXA7IHBsZWFzZSB1cGRhdGUgJDBcbiI7CisgICAgICAgIHJldHVybiAnJzsKKyAgICB9CisgICAgbXkgJG91dCA9ICROQU1FX01BUHskaWR9OworICAgIGlmICgkb3V0IGVxICcnKSB7CisgICAgICAgICRvdXQgPSAkaWQ7CisgICAgfQorICAgIGlmICgkb3V0IG5lICRKQVZBX09OTFkpIHsKKyAgICAgICAgJG91dCA9ICd0XycgLiAkb3V0OworICAgIH0KKyAgICBpZiAobGVuZ3RoKCRvdXQpID4gJE1BWF9JQ1U0Q19GSUxFTkFNRV9MRU4pIHsKKyAgICAgICAgcHJpbnQgU1RERVJSICJFUlJPUjogSUNVNEMgZmlsZSBuYW1lIFwiJG91dFwiIHRvbyBsb25nOyBwbGVhc2UgdXBkYXRlICQwXG4iOworICAgICAgICByZXR1cm4gJyc7CisgICAgfQorICAgIHJldHVybiAoJG91dCwgJGlkKTsKK30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDb252ZXJ0IHRoZSBpbmRleCBmaWxlIGZyb20gSmF2YSB0byBDIGZvcm1hdAorc3ViIGNvbnZlcnRJbmRleCB7CisgICAgbXkgJEpBVkFfSU5ERVggPSAiVHJhbnNsaXRlcmF0b3JfaW5kZXgudHh0IjsKKyAgICBteSAkQ19JTkRFWCA9ICJ0cmFuc2xpdF9pbmRleC50eHQiOworICAgIG9wZW4oSkFWQV9JTkRFWCwgIiRESVIvJEpBVkFfSU5ERVgiKSBvciBkaWU7CisgICAgb3BlbihDX0lOREVYLCAiPiRPVVRESVIvJENfSU5ERVgiKSBvciBkaWU7CisgICAgCisgICAgaGVhZGVyKFwqQ19JTkRFWCwgJEpBVkFfSU5ERVgpOworICAgIAorICAgIHByaW50IENfSU5ERVggPDxFTkQ7CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBOLkIuOiBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIG1lY2hhbmljYWxseSBmcm9tIHRoZQorLy8gY29ycmVzcG9uZGluZyBJQ1U0SiBmaWxlLCB3aGljaCBpcyB0aGUgbWFzdGVyIGZpbGUgdGhhdCByZWNlaXZlcworLy8gcHJpbWFyeSB1cGRhdGVzLiAgVGhlIGNvbG9uLWRlbGltaXRlZCBmaWVsZHMgaGF2ZSBiZWVuIHNwbGl0IGludG8KKy8vIHNlcGFyYXRlIHN0cmluZ3MuICBGb3IgJ2ZpbGUnIGFuZCAnaW50ZXJuYWwnIGxpbmVzLCB0aGUgZW5jb2RpbmcKKy8vIGZpZWxkIGhhcyBiZWVuIGRlbGV0ZWQsIHNpbmNlIHRoZSBlbmNvZGluZyBpcyBwcm9jZXNzZWQgYXQgYnVpbGQKKy8vIHRpbWUgaW4gSUNVNEMuICBDZXJ0YWluIGxhcmdlIHJ1bGUgc2V0cyBub3QgaW50ZW5kZWQgZm9yIGdlbmVyYWwKKy8vIHVzZSBoYXZlIGJlZW4gY29tbWVudGVkIG91dCB3aXRoIHRoZSBub3RhdGlvbiAiSmF2YSBvbmx5Ii4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwordHJhbnNsaXRfaW5kZXggeworICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcklEcyB7CitFTkQKKyAgICAgICAgCisgICAgd2hpbGUgKDxKQVZBX0lOREVYPikgeworICAgICAgICAjIGlnbm9yZSBDVlMga2V5d29yZCBzdWJzdGl0dXRpb25zCisgICAgICAgIG5leHQgaWYgL1wkKFNvdXJjZXxSZXZpc2lvbnxEYXRlKS87CisKKyAgICAgICAgIyB3ZSBoYXZlIHByaW50ZWQgb3V0IHRoZSBjb3B5cmlnaHQgaW5mbyAuLi4gaWdub3JlIG9uZSBpbiBKYXZhIHZlcnNpb24KKyAgICAgICAgbmV4dCBpZiAvQ29weXJpZ2h0LyA7CisgICAgICAgIG5leHQgaWYgL0NvcnBvcmF0aW9uLzsKKworICAgICAgICAjIENvbW1lbnRzOyBjaGFuZ2UgIyB0byAvLworICAgICAgICBpZiAoc3xeKFxzKilcI3wkMS8vfCkgeworICAgICAgICAgICAgcHJpbnQgQ19JTkRFWDsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKyAgICAgICAgIyBCbGFuayBsaW5lcworICAgICAgICBpZiAoIS9cUy8pIHsKKyAgICAgICAgICAgIHByaW50IENfSU5ERVg7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgICAgICMgQ29udGVudCBsaW5lcworICAgICAgICBjaG9tcDsKKyAgICAgICAgbXkgJHByZWZpeCA9ICcnOworICAgICAgICAjcmVwbGFjZSBccCB3aXRoIFxccAorICAgICAgICAkXz1+IHMvXFxwL1xcXFxwL2c7CisgICAgICAgIG15IEBhID0gc3BsaXQoJzonLCAkXyk7CisgICAgICAgIGlmICgkYVsxXSBlcSAnZmlsZScgfHwgJGFbMV0gZXEgJ2ludGVybmFsJykgeworICAgICAgICAgICAgIyBDb252ZXJ0IHRoZSBmaWxlIG5hbWUKKyAgICAgICAgICAgIG15ICRpZDsKKyAgICAgICAgICAgICMgUmVjb3JkIGZpbGUgbmFtZXMgaW4gdXNlCisgICAgICAgICAgICAkVVNFRF9GSUxFU3skYVsyXX0gPSAxOworICAgICAgICAgICAgKCRhWzJdLCAkaWQpID0gY29udmVydEZpbGVOYW1lKCRhWzJdKTsKKyAgICAgICAgICAgIGlmICgkYVsyXSBlcSAkSkFWQV9PTkxZKSB7CisgICAgICAgICAgICAgICAgJHByZWZpeCA9ICcvLyBKYXZhIG9ubHk6ICc7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICMgRGVsZXRlIHRoZSBlbmNvZGluZyBmaWVsZAorICAgICAgICAgICAgc3BsaWNlKEBhLCAzLCAxKTsKKyAgICAgICAgfSBlbHNpZiAoJGFbMV0gZXEgJ2FsaWFzJykgeworICAgICAgICAgICAgIyBQYWQgb3V0IHdpdGggZXh0cmEgYmxhbmsgZmllbGRzIHRvIG1ha2UgdGhlCisgICAgICAgICAgICAjIDItZCBhcnJheSBzcXVhcmUKKyAgICAgICAgICAgIHB1c2ggQGEsICIiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGllICJDYW4ndCBwYXJzZSAkXyI7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgQ19JTkRFWAorICAgICAgICAgICAgJHByZWZpeCwgInsgIiwKKyAgICAgICAgICAgIGpvaW4oIiwgIiwgbWFwKCJcIiRfXCIiLCBAYSkpLAorICAgICAgICAgICAgIiB9LFxuIjsKKyAgICB9CisKKyAgICBwcmludCBDX0lOREVYIDw8RU5EOworICB9Cit9CitFTkQKKworICAgIGNsb3NlKENfSU5ERVgpOworICAgIGNsb3NlKEpBVkFfSU5ERVgpOworICAgIHByaW50IFNUREVSUiAiJEpBVkFfSU5ERVggLT4gJENfSU5ERVhcbiI7Cit9CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgT3V0cHV0IGEgaGVhZGVyCisjIFBhcmFtOiBGaWxlaGFuZGxlCitzdWIgaGVhZGVyIHsKKyAgICBteSAkb3V0ID0gc2hpZnQ7CisgICAgbXkgJGluID0gc2hpZnQ7CisgICAgcHJpbnQgJG91dCAkSEVBREVSMTsKKyAgICBwcmludCAkb3V0ICIvLyBUb29sOiAkVE9PTFxuLy8gU291cmNlOiAkaW5cbiI7CisgICAgcHJpbnQgJG91dCAiLy8gRGF0ZTogIiwgc2NhbGFyIGxvY2FsdGltZSwgIlxuIjsKKyAgICBwcmludCAkb3V0ICRIRUFERVIyOworICAgIHByaW50ICRvdXQgIlxuIjsKK30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBQcm9jZXNzIG9uZSBmaWxlCisjIFBhcmFtOiBJRCwgZS5nLiBGdWxsd2lkdGgtSGFsZndpZHRoCisjIFBhcmFtOiBKYXZhIGlucHV0IGZpbGUgbmFtZSwgZS5nLgorIyAgZjovaWN1NGovc3JjL2NvbS9pYm0vdGV4dC9yZXNvdXJjZXMvVHJhbnNsaXRlcmF0b3JfRnVsbHdpZHRoX0hhbGZ3aWR0aC51dGY4LnR4dAorIyBQYXJhbTogSUNVIG91dHB1dCBmaWxlIG5hbWUsIGUuZy4gZnVsbGhhbGYKK3N1YiBmaWxlIHsKKyAgICBteSAkaWQgPSBzaGlmdDsKKyAgICBteSAkSU4gPSBzaGlmdDsKKyAgICBteSAkb3V0ID0gc2hpZnQ7CisKKyAgICBteSAkT1VUID0gIiRvdXQudHh0IjsKKworICAgICMgU2hvdyBpbnB1dCBzaXplLiBTaG93IG91dHB1dCBzaXplIGxhdGVyIC0tIHVzZWZ1bCBmb3IgcXVpY2sgc2FuaXR5IGNoZWNrLgorICAgIHByaW50ICIkaWQgKCIsIC1zICRJTiwgIikgLT4gJE9VVCAoIjsKKworICAgICMgT3BlbiBmaWxlLCB3cml0ZSBVVEY4IG1hcmtlciwgY2xvc2UgaXQsIGFuZCByZW9wZW4gaW4gdGV4dCBtb2RlCisgICAgb3BlbihPVVQsICI+JE9VVERJUi8kT1VUIikgb3IgZGllOworICAgIGJpbm1vZGUgT1VUOyAgICAgICAgIyBNdXN0IGRvIHRoaXMgc28gd2UgY2FuIHdyaXRlIG91ciBVVEY4IG1hcmtlcgorICAgIHByaW50IE9VVCBwYWNrKCJDMyIsIDB4RUYsIDB4QkIsIDB4QkYpOyAjIFdyaXRlIFVURjggbWFya2VyCisgICAgY2xvc2UoT1VUKTsKKworICAgIG9wZW4oT1VULCAiPj4kT1VURElSLyRPVVQiKSBvciBkaWU7CisgICAgcHJpbnQgT1VUICIgLy8gLSotIENvZGluZzogdXRmLTg7IC0qLVxuIjsKKworICAgIGhlYWRlcihcKk9VVCwgJElOKTsKKyAgICBwcmludCBPVVQgIi8vICRpZFxuIjsKKyAgICBwcmludCBPVVQgIlxuIjsKKyAgICBwcmludCBPVVQgIiRvdXQge1xuIjsKKyAgICBwcmludCBPVVQgIiAgUnVsZSB7XG4iOworCisgICAgb3BlbihJTiwgJElOKSBvciBkaWU7CisgICAgYmlubW9kZSBJTjsgICAgICAgICAgICAgICAgICMgSU4gaXMgYSBVVEY4IGZpbGUKKworICAgIG15ICRmaXJzdCA9IDE7CisgICAgbXkgJEJPTSA9IHBhY2soIkMzIiwgMjM5LCAxODcsIDE5MSk7ICMgYSBVVEY4IGJ5dGUgb3JkZXIgbWFyaworCisgICAgIyBQcm9jZXNzIGVhY2ggbGluZSBieSBjaGFuZ2luZyAjIGNvbW1lbnRzIHRvIC8vIGNvbW1lbnRzCisgICAgIyBhbmQgdGFraW5nIG90aGVyIHRleHQgYW5kIGVuY2xvc2luZyBpdCBpbiBkb3VibGUgcXVvdGVzCisgICAgd2hpbGUgKDxJTj4pIHsKKyAgICAgICAgbXkgJHJhdyA9ICRfOworICAgICAgICAjIGlnbm9yZSBDVlMga2V5d29yZCBzdWJzdGl0dXRpb25zCisgICAgICAgIG5leHQgaWYgL1wkKFNvdXJjZXxSZXZpc2lvbnxEYXRlKS87CisKKyAgICAgICAgIyB3ZSBoYXZlIHByaW50ZWQgb3V0IHRoZSBjb3B5cmlnaHQgaW5mbyAuLi4gaWdub3JlIG9uZSBpbiBKYXZhIHZlcnNpb24KKyAgICAgICAgbmV4dCBpZiAvQ29weXJpZ2h0LyA7CisgICAgICAgIG5leHQgaWYgL0NvcnBvcmF0aW9uLzsKKworICAgICAgICAjIExvb2sgZm9yIGFuZCBkZWxldGUgQk9NCisgICAgICAgIGlmICgkZmlyc3QpIHsKKyAgICAgICAgICAgIHMvXiRCT00vLzsKKyAgICAgICAgICAgICRmaXJzdCA9IDA7CisgICAgICAgIH0KKworICAgICAgICAjIENsZWFuIHRoZSBlb2wganVuayB1cAorICAgICAgICBzL1tceDBEXHgwQV0rJC8vOworCisgICAgICAgICMgSWYgdGhlcmUgaXMgYSB0cmFpbGluZyBiYWNrc2xhc2gsIHRoZW4gZGVsZXRlIGl0IC0tIHdlIGRvbid0CisgICAgICAgICMgbmVlZCBsaW5lIGNvbnRpbnVhdGlvbiBpbiBDLCBzaW5jZSBhZGphY2VudCBzdHJpbmdzIGFyZQorICAgICAgICAjIGNvbmNhdGVuYXRlZC4gIENvdW50IHRyYWlsaW5nIGJhY2tzbGFzaGVzOyBpZiB0aGV5IGFyZSBvZGQsCisgICAgICAgICMgb25lIGlzIHRyYWlsaW5nLgorICAgICAgICBpZiAobXwoXFwrKSR8KSB7CisgICAgICAgICAgICBpZiAoKGxlbmd0aCgkMSkgJSAyKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgc3xcXCR8fDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICMgVHJhbnNmb3JtIGVzY2FwZWQgY2hhcmFjdGVycworICAgICAgICBoaWRlRXNjYXBlcygpOworCisgICAgICAgIGlmICgvXihccyopKFwjLiopJC8pIHsKKyAgICAgICAgICAgICMgQ29tbWVudC1vbmx5IGxpbmUKKyAgICAgICAgICAgIG15ICgkd2hpdGUsICRjbXQpID0gKCQxLCAkMik7CisgICAgICAgICAgICAkY210ID1+IHN8XCN8Ly98OworICAgICAgICAgICAgJF8gPSAkd2hpdGUgLiAkY210OworCisgICAgICAgIH0gZWxzaWYgKCEvXFMvKSB7CisgICAgICAgICAgICAjIEJsYW5rIGxpbmUgLS0gbGVhdmUgYXMtaXMKKworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgIyBSZW1vdmUgc2luZ2xlLXF1b3RlZCBtYXR0ZXIgCisgICAgICAgICAgICBteSBAcXVvdGVzOworICAgICAgICAgICAgbXkgJG5xdW90ZXMgPSAwOworICAgICAgICAgICAgbXkgJHggPSAkXzsKKyAgICAgICAgICAgIHdoaWxlIChzL14oW15cJ10qKShcJ1teXCddKlwnKS8kMTw8eCRucXVvdGVzPj4vKSB7CisgICAgICAgICAgICAgICAgcHVzaCBAcXVvdGVzLCAkMjsKKyAgICAgICAgICAgICAgICArKyRucXVvdGVzOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAjIEV4dHJhY3QgY29tbWVudAorICAgICAgICAgICAgbXkgJGNtdCA9ICcnOworICAgICAgICAgICAgaWYgKHN8XCMoLiopfHwpIHsKKyAgICAgICAgICAgICAgICAkY210ID0gJy8vJyAuICQxOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAjIEFkZCBxdW90ZXMKKyAgICAgICAgICAgIHN8XihccyopKFxTLio/KShccyopJHwkMVwiJDJcIiQzfDsKKworICAgICAgICAgICAgIyBSZXN0b3JlIHNpbmdsZS1xdW90ZWQgbWF0dGVyCisgICAgICAgICAgICBmb3IgKG15ICRpPTA7ICRpPCRucXVvdGVzOyArKyRpKSB7CisgICAgICAgICAgICAgICAgc3w8PHgkaT4+fCRxdW90ZXNbJGldfDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgIyBSZXN0b3JlIGNvbW1lbnQKKyAgICAgICAgICAgICRfIC49ICRjbXQ7CisgICAgICAgIH0KKworICAgICAgICAjIFJlc3RvcmUgZXNjYXBlZCBjaGFyYWN0ZXJzCisgICAgICAgIHJlc3RvcmVFc2NhcGVzKCk7CisKKyAgICAgICAgcHJpbnQgT1VUICRfLCAiXG4iOworICAgIH0KKworICAgICMgRmluaXNoIHVwCisgICAgY2xvc2UoSU4pOworICAgIHByaW50IE9VVCAiICB9XG4iOworICAgIHByaW50IE9VVCAifVxuIjsKKyAgICBjbG9zZShPVVQpOworCisgICAgIyBXcml0ZSBvdXRwdXQgZmlsZSBzaXplIGZvciBzYW5pdHkgY2hlY2sKKyAgICBwcmludCAtcyAiJE9VVERJUi8kT1VUIiwgIilcbiI7Cit9CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK3N1YiBoaWRlRXNjYXBlcyB7CisgICAgIyBUcmFuc2Zvcm0gZXNjYXBlZCBjaGFyYWN0ZXJzCisgICAgc3xcXFxcfDw8YnM+PnxnOyAjIERPIFRISVMgRklSU1QgVHJhbnNmb3JtIGJhY2tzbGFzaGVzCisgICAgc3xcXHUoW2EtekEtWjAtOV17NH0pfDw8dSQxPj58ZzsgIyBUcmFuc2Zvcm0gVW5pY29kZSBlc2NhcGVzCisgICAgc3xcXFwifDw8ZHE+PnxnOyAjIFRyYW5zZm9ybSBiYWNrc2xhc2ggZG91YmxlIHF1b3RlCisgICAgc3xcXFwnfDw8c3E+PnxnOyAjIFRyYW5zZm9ybSBiYWNrc2xhc2ggc2luZ2xlIHF1b3RlCisgICAgc3xcXFwjfDw8bGI+PnxnOyAjIFRyYW5zZm9ybSBiYWNrc2xhc2ggcG91bmQKKyAgICBzfFxcKC4pfDw8cSQxPj58ZzsgIyBUcmFuc2Zvcm0gYmFja3NsYXNoIGVzY2FwZXMKK30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworc3ViIHJlc3RvcmVFc2NhcGVzIHsKKyAgICAjIFJlc3RvcmUgZXNjYXBlZCBjaGFyYWN0ZXJzCisgICAgc3w8PGJzPj58XFxcXHxnOworICAgIHN8PDxkcT4+fFxcXFxcXFwifGc7CisgICAgc3w8PHNxPj58XFxcXFxcXCd8ZzsKKyAgICBzfDw8bGI+PnxcXFxcXFxcI3xnOworICAgIHN8PDxxKC4pPj58XFxcXFxcJDF8ZzsKKyAgICBzfDw8dTAwMDA+PnxcXFxcdTAwMDB8ZzsgIyBEb3VibGUgZXNjYXBlIFUrMDAwMAorICAgIHN8PDx1KC4uLi4pPj58XFx1JDF8ZzsKK30KKworX19FTkRfXworOmVuZG9mcGVybApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2dlbkluZGV4RmlsdGVycy5iYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvZ2VuSW5kZXhGaWx0ZXJzLmJhdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ODExMzEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2dlbkluZGV4RmlsdGVycy5iYXQKQEAgLTAsMCArMSwxMjEgQEAKKyMvKioKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqLworQHJlbSA9ICctLSotUGVybC0qLS0KK0BlY2hvIG9mZgoraWYgIiVPUyUiID09ICJXaW5kb3dzX05UIiBnb3RvIFdpbk5UCitwZXJsIC1XIC14IC1TICIlMCIgJTEgJTIgJTMgJTQgJTUgJTYgJTcgJTggJTkKK2dvdG8gZW5kb2ZwZXJsCis6V2luTlQKK3BlcmwgLVcgLXggLVMgIiUwIiAlKgoraWYgTk9UICIlQ09NU1BFQyUiID09ICIlU3lzdGVtUm9vdCVcc3lzdGVtMzJcY21kLmV4ZSIgZ290byBlbmRvZnBlcmwKK2lmICVlcnJvcmxldmVsJSA9PSA5MDA5IGVjaG8gWW91IGRvIG5vdCBoYXZlIFBlcmwgaW4geW91ciBQQVRILgorZ290byBlbmRvZnBlcmwKK0ByZW0gJzsKKyMhcGVybAorI2xpbmUgMTQKKworIyBUaGlzIHBlcmwgc2NyaXB0IHVwZGF0ZXMgdGhlIGZpbHRlcnMgaW4gdGhlIHRyYW5zbGl0ZXJhdG9yIGluZGV4IGZpbGUuCisjIEl0IGRvZXMgc28gaW4gYSBkdW1iIHdheToKKyMKKyMgIExhdGluLVggICBORkQgbG93ZXIKKyMgIFgtTGF0aW4gICBORkQKKyMKKyMgRm9yIHRyYW5zbGl0ZXJhdG9ycyB1c2luZyBORktELCBvciBub3QgdXNpbmcgTG93ZXIgaW4gdGhpcyB3YXksIHlvdQorIyB3aWxsIGhhdmUgdG8gaGFuZC1lZGl0IHRoZSBpbmRleCBmaWxlLgorIworIyBUaGlzIHNjcmlwdCB3cml0ZXMgYSBuZXcgaW5kZXggZmlsZS4gIFRoZSBuZXcgZmlsZSBoYXMgdG8gdGhlbiBiZQorIyBoYW5kLWVkaXRlZCBhbmQgY2hlY2tlZCBiZWZvcmUgdXNlOyBpdCBjb250YWlucyBjb21tZW50cyBpbmRpY2F0aW5nCisjIG9sZCBsaW5lcyB0aGF0IHdlcmUgcmVwbGFjZWQuCisjCisjIEFsYW4gTGl1IDExLzI5LzAxCisKK3VzZSBHZXRvcHQ6Okxvbmc7CisKK215ICRESVIgPSAiLi4vLi4vdGV4dC9yZXNvdXJjZXMiOworbXkgJENMQVNTRVMgPSAiLi4vLi4vLi4vLi4vLi4vY2xhc3NlcyI7CisKKyNHZXRPcHRpb25zKCdkaXI9cycgPT4gXCRESVIsCisjICAgICAgICAgICAnaWQ9cycgPT4gXCRJRCwKKyMgICAgICAgICAgICc8PicgPT4gXCZ1c2FnZSkgfHwgZGllOworCisjdXNhZ2UoKSBpZiAoQEFSR1YpOworCisjJElEID1+IHMvLS9fLzsKK2lmICghIC1kICRESVIpIHsKKyAgICBwcmludCBTVERFUlIgIiRESVIgaXMgbm90IGEgZGlyZWN0b3J5XG4iOworICAgIHVzYWdlKCk7Cit9CisKKyNzdWIgdXNhZ2UgeworIyAgICBteSAkbWUgPSAkMDsKKyMgICAgJG1lID1+IHN8LitbL1xcXXx8OworIyAgICBwcmludCAiVXNhZ2U6ICRtZSBbLWRpciA8ZGlyPl0gWy1pZCA8aWQ+XVxuIjsKKyMgICAgcHJpbnQgIiAtLWRpciA8ZGlyPiBTcGVjaWZ5IHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGVcbiI7CisjICAgIHByaW50ICIgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3JfKi50eHQgZmlsZXNcbiI7CisjICAgIHByaW50ICIgLS1pZCA8aWQ+ICAgU3BlY2lmeSBhIHNpbmdsZSBJRCB0byB0cmFuc2Zvcm0sIGUuZy5cbiI7CisjICAgIHByaW50ICIgICAgICAgICAgICAgRnVsbHdpZHRoLUhhbGZ3aWR0aFxuIjsKKyMgICAgZGllOworI30KKworY29udmVydEluZGV4KCk7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ29udmVydCB0aGUgaW5kZXggZmlsZSBmcm9tIEphdmEgdG8gQyBmb3JtYXQKKyMgQXNzdW1lIGxpbmVzIGFyZSBvZiB0aGUgZm9ybToKKyMgICA8SUQ+OmFsaWFzOjxGSUxURVI+OzxSRU1BSU5ERVI+CisjIDxSRU1BSU5ERVI+IGNhbiBiZQorIyAgIExvd2VyO05GWDsuLi4KKyMgICBORlg7TG93ZXI7Li4uCisjICAgTkZYOy4uLgorc3ViIGNvbnZlcnRJbmRleCB7CisgICAgJElOID0gIlRyYW5zbGl0ZXJhdG9yX2luZGV4LnR4dCI7CisgICAgJE9VVCA9ICIkSU4ubmV3IjsKKyAgICBvcGVuKElOLCAiJERJUi8kSU4iKSBvciBkaWU7CisgICAgb3BlbihPVVQsICI+JERJUi8kT1VUIikgb3IgZGllOworICAgIAorICAgIHdoaWxlICg8SU4+KSB7CisgICAgICAgICMgTG9vayBmb3IgbGluZXMgdGhhdCBhcmUgYWxpYXNlcyB3aXRoIE5GKgorICAgICAgICBpZiAoL14oW146XSspOmFsaWFzOihcWy4rPyk7XHMqKChORlteXHNdKj8pXHMqOy4rKSQvaSkgeworICAgICAgICAgICAgbXkgJGlkID0gJDE7CisgICAgICAgICAgICBteSAkb2xkc2V0ID0gJDI7CisgICAgICAgICAgICBteSAkcmVtYWluZGVyID0gJDM7CisgICAgICAgICAgICBteSAkTkZYRCA9ICQ0OworICAgICAgICAgICAgbXkgJGxvd2VyID0gJyc7CisgICAgICAgICAgICAjIENoZWNrIGZvciBMb3dlcgorICAgICAgICAgICAgIyBJZiBpdCBjb21lcyBiZWZvcmUgTkYqIHRoZW4gYWRqdXN0IGFjY29yZGluZ2x5CisgICAgICAgICAgICBpZiAoL14oW146XSspOmFsaWFzOihcWy4rPyk7XHMqKExvd2VyXHMqOy4rKSQvaSkgeworICAgICAgICAgICAgICAgICRsb3dlciA9ICdsb3dlcic7CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCgkMikgPCBsZW5ndGgoJG9sZHNldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgJG9sZHNldCA9ICQyOworICAgICAgICAgICAgICAgICAgICAkcmVtYWluZGVyID0gJDM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJpbnQgU1RERVJSICIkaWQgJE5GWEQgJGxvd2VyXG4iOworICAgICAgICAgICAgbXkgJHNldCA9IGdldFNvdXJjZVNldCgkaWQsICRORlhELCAkbG93ZXIpOworICAgICAgICAgICAgJF8gPSAiJGlkOmFsaWFzOiRzZXQ7JHJlbWFpbmRlclxuIjsKKyAgICAgICAgfQorICAgICAgICBwcmludCBPVVQ7CisgICAgfQorCisgICAgY2xvc2UoSU4pOworICAgIGNsb3NlKE9VVCk7CisgICAgcHJpbnQgU1RERVJSICJXcm90ZSAkRElSLyRPVVRcbiI7Cit9CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgR2V0IHRoZSBzb3VyY2Ugc2V0IChjYWxsIG91dCB0byBKYXZhKSwgb3B0aW9uYWxseSB3aXRoIGEgY2xvc3VyZS4KK3N1YiBnZXRTb3VyY2VTZXQgeworICAgIG15ICRJRCA9IHNoaWZ0OworICAgIG15ICRORlhEID0gc2hpZnQ7CisgICAgbXkgJGxvd2VyID0gc2hpZnQ7CisgICAgbXkgJHNldCA9IGBqYXZhIC1jbGFzc3BhdGggJENMQVNTRVMgY29tLmlibS50b29scy50cmFuc2xpdC5nZW5JbmRleEZpbHRlcnMgJElEICRORlhEICRsb3dlcmA7CisgICAgY2hvbXAoJHNldCk7CisgICAgJHNldDsKK30KKworX19FTkRfXworOmVuZG9mcGVybApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2dlbkluZGV4RmlsdGVycy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2dlbkluZGV4RmlsdGVycy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNhOTZkM2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvZ2VuSW5kZXhGaWx0ZXJzLmphdmEKQEAgLTAsMCArMSw2OSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMTEvMjkvMjAwMSAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEFkanVuY3QgY2xhc3MgdG8gZ2V0SW5kZXhGaWx0ZXJzLmJhdC4gIEp1c3QgZ2VuZXJhdGVzIHNvdXJjZSBzZXRzCisgKiBhbmQgdGhlaXIgY2xvc3VyZXMuCisgKgorICogVXNhZ2U6IElEIFsgTkZEfE5GS0QgW2xvd2VyXSBdCisgKgorICogICBqYXZhIC1jbGFzc3BhdGggY2xhc3NlcyBjb20uaWJtLmljdS5kZXYudG9vbC50cmFuc2xpdC5nZW5JbmRleEZpbHRlcnMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF0aW4tR3JlZWsgTkZEIGxvd2VyCisgKgorICogVGhlICdORkQnfCdORktEJyBhbmQgJ2xvd2VyJyBhcmdzIGFyZSBvcHRpb25hbCwgYnV0ICdsb3dlcicgY2FuCisgKiBvbmx5IGJlIHNwZWNpZmllZCBpZiAnTkZEJyBvciAnTkZLRCcgaXMuCisgKgorICogRE8gTk9UIENIQU5HRSBPVVRQVVQgRk9STUFULiAgVGhpcyB0b29sJ3Mgb3V0cHV0IGlzIHJlYWQgYnkgYSBQZXJsCisgKiBzY3JpcHQuCisgKi8KK3B1YmxpYyBjbGFzcyBnZW5JbmRleEZpbHRlcnMgeworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgTm9ybWFsaXplci5Nb2RlIG0gPSBOb3JtYWxpemVyLk5PTkU7CisgICAgICAgIGJvb2xlYW4gbG93ZXJGaXJzdCA9IGZhbHNlOworICAgICAgICBpZiAoYXJncy5sZW5ndGggPj0gMikgeworICAgICAgICAgICAgaWYgKGFyZ3NbMV0uZXF1YWxzSWdub3JlQ2FzZSgiTkZEIikpIHsKKyAgICAgICAgICAgICAgICBtID0gTm9ybWFsaXplci5ORkQ7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3NbMV0uZXF1YWxzSWdub3JlQ2FzZSgiTkZLRCIpKSB7CisgICAgICAgICAgICAgICAgbSA9IE5vcm1hbGl6ZXIuTkZLRDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdXNhZ2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoYXJncy5sZW5ndGggPj0gMykgeworICAgICAgICAgICAgaWYgKGFyZ3NbMl0uZXF1YWxzSWdub3JlQ2FzZSgibG93ZXIiKSkgeworICAgICAgICAgICAgICAgIGxvd2VyRmlyc3QgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB1c2FnZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA+IDMpIHsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgc2hvd1NvdXJjZVNldChhcmdzWzBdLCBtLCBsb3dlckZpcnN0KTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBzaG93U291cmNlU2V0KFN0cmluZyBJRCwgTm9ybWFsaXplci5Nb2RlIG0sIGJvb2xlYW4gbG93ZXJGaXJzdCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKElEKTsKKyAgICAgICAgVW5pY29kZVNldCBzb3VyY2VTZXQgPSB0LmdldFNvdXJjZVNldCgpOworICAgICAgICBpZiAobSAhPSBOb3JtYWxpemVyLk5PTkUgfHwgbG93ZXJGaXJzdCkgeworICAgICAgICAgICAgVW5pY29kZVNldENsb3N1cmUuY2xvc2Uoc291cmNlU2V0LCBtLCBsb3dlckZpcnN0KTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlU2V0LnRvUGF0dGVybih0cnVlKSk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgdXNhZ2UoKSB7CisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiVXNhZ2U6IElEIFsgTkZEfE5GS0QgW2xvd2VyXSBdIik7CisgICAgICAgIFN5c3RlbS5leGl0KDEpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9pbmRpYy5iYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvaW5kaWMuYmF0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU3MjkzYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvaW5kaWMuYmF0CkBAIC0wLDAgKzEsMjEgQEAKK1JFTSAvKioKK1JFTSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCitSRU0gKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorUkVNICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKK1JFTSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCitSRU0gKi8KKworQGVjaG8gb2ZmCitSRU0gVGhpcyBzY3JpcHQgaXMgYSBXaW5kb3dzIGxhdW5jaGVyIGZvciB0aGUgaW5kaWMucGwgc2NyaXB0LiAgRm9yIHRoaXMKK1JFTSB0byB3b3JrLCB0aGUgcGVybCBleGVjdXRhYmxlIG11c3QgYmUgb24gdGhlIHBhdGguICBXZSByZWNvbW1lbmQKK1JFTSB0aGUgQWN0aXZlU3RhdGUgYnVpbGQ7IHNlZSBodHRwOi8vd3d3LmFjdGl2ZXN0YXRlLmNvbS4gIFNlZSB0aGUKK1JFTSB0ei5wbCBzY3JpcHQgaXRzZWxmIGZvciBtb3JlIGRvY3VtZW50YXRpb24uCisKK2lmICIlT1MlIiA9PSAiV2luZG93c19OVCIgZ290byBXaW5OVAorcGVybCAtdyAteCBpbmRpYy5wbCAlMSAlMiAlMyAlNCAlNSAlNiAlNyAlOCAlOQorZ290byBlbmQKKzpXaW5OVAorcGVybCAtdyAteCBpbmRpYy5wbCAlKgoraWYgTk9UICIlQ09NU1BFQyUiID09ICIlU3lzdGVtUm9vdCVcc3lzdGVtMzJcY21kLmV4ZSIgZ290byBlbmQKK2lmICVlcnJvcmxldmVsJSA9PSA5MDA5IGVjaG8gWW91IGRvIG5vdCBoYXZlIFBlcmwgaW4geW91ciBQQVRILgorOmVuZApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2luZGljLnBsIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2luZGljLnBsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRkNjE0YmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvaW5kaWMucGwKQEAgLTAsMCArMSw2NjIgQEAKKyMvKioKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisjICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIyAqLworCisjIXBlcmwKKworIyBVc2FnZSAtICQwIDxyZW1hcCBmaWxlPgorIyAgZS5nLiAtIGluZGljIGluZGljLnR4dAorIyBUaGUgaW5wdXQgZmlsZSBzaG91bGQgYmUgYSBzdWJzZXQgb2YgdGhlIFVuaWNvZGUgZGF0YSBmaWxlIGNvbnRhaW5pbmcKKyMgdGhlIGJsb2NrcyBvZiBpbnRlcmVzdC4KKyMKKyMgVGhlIHJlbWFwIGZpbGUgc2hvdWxkIGhhdmUgbGluZXMgb2YgdGhlIGZvcm0KKyMgIlx1MEQwMT5cdTBEMDI7IgorIyBpbmNsdWRpbmcgdGhlIHF1b3Rlcy4gIFRoZXNlIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgc2F5aW5nIHRoYXQgdGhlCisjIHVuZGVmaW5lZCBjb2RlIHBvaW50IFUrRDAxIChkZXJpdmVkIHZpYSBtYXBwaW5nIGZyb20gSW50ZXJJbmRpYykKKyMgY2FuIGJlIHJlbWFwcGVkIHRvIFUrRDAyLgorIyAKKyMgVGhlIHB1cnBvc2Ugb2YgdGhpcyBzY3JpcHQgaXMgdG8gcHJvY2VzcyB0aGUgSW5kaWMgc2NyaXB0IGRhdGEgaW50bworIyBhIGZvcm0gdXNhYmxlIGJ5IHRoZSBJbmRpY1RyYW5zbGl0ZXJhdG9yLCB0aGF0IGlzLCB0aGUgSW5kaWMtSW5kaWMKKyMgdHJhbnNsaXRlcmF0b3IuICBUaGUgdHJhbnNsaXRlcmF0b3IgbmVlZHMgdHdvIHRoaW5nczogQSBtYXBwaW5nIG9mCisjIHRoZSBjb2RlIHBvaW50cyBpbiBjb21tb24sIGFuZCBhIGxpc3Qgb2YgdGhlIGV4Y2VwdGlvbnMuCisKKyMgQXNzdW1lIHdlIGFyZSBsb2NhdGVkIGluIGljdTRqL3NyYy9jb20vaWJtL3Rvb2xzL3RyYW5zbGl0Ly4KKyMgV2Ugd2FudCB0aGUgVW5pY29kZSBEQiBpbiBpY3U0ai9zcmMvZGF0YS91bmljb2RlLy4KKyRVTklDT0RFX0RCID0gIi4uLy4uLy4uLy4uL2RhdGEvdW5pY29kZS9Vbmljb2RlRGF0YS50eHQiOworJEVYQ0VQVElPTlNfRklMRSA9IHNoaWZ0OworCisjIEFzc3VtZSB3ZSBhcmUgbG9jYXRlZCBpbiBpY3U0ai9zcmMvY29tL2libS90b29scy90cmFuc2xpdC8uCisjIFdlIHdhbnQgdG8gb3V0cHV0IGZpbGVzIHRvIGljdTRqL3NyYy9jb20vaWJtL3RleHQvcmVzb3VyY2VzLy4KKyMgT3V0cHV0IGRpcmVjdG9yeQorJE9VVERJUiA9ICIuLi8uLi90ZXh0L3Jlc291cmNlcyI7CisKKyMgVGhlIHRlbXBsYXRlIGZpbGUgc2hvdWxkIGNvbnRhaW4gamF2YSBjb2RlIHRoYXQgY2FuIGJlIHVzZWQKKyMgdG8gZ2VuZXJhdGUgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IgcmVzb3VyY2UgZmlsZXMuICBUaGUgdGVtcGxhdGUKKyMgc2hvdWxkIGNvbnRhaW4gdGhlIGZvbGxvd2luZyBlbWJlZGRlZCBzeW1ib2xzLCB3aGljaCB0aGlzIHNjcmlwdAorIyB3aWxsIHJlcGxhY2U6CisjICRUT09MIC0gbmFtZSBvZiBnZW5lcmF0aW5nIHRvb2wKKyMgJERBVEUgLSBkYXRlIG9mIGdlbmVyYXRpb24KKyMgJFNDUklQVEZST00gLSBuYW1lIG9mIHNvdXJjZSBzY3JpcHQKKyMgJFNDUklQVFRPIC0gbmFtZSBvZiB0YXJnZXQgc2NyaXB0CisjICRSVUxFUyAtIHJ1bGVzCiskUkJUX1RFTVBMQVRFID0gJ3JidFRlbXBsYXRlLnR4dCc7CisKKyMgTmFtZSBvZiB0aGlzIHRvb2wgaW4gZ2VuZXJhdGVkIFJCVCBmaWxlcworJFJCVF9HRU5fVE9PTCA9ICdpY3U0ai9zcmMvY29tL2libS90b29scy90cmFuc2xpdC9pbmRpYy5wbCc7CisKKyREVU1QID0gMDsgIyBJZiAxLCBkdW1wIG91dCBpbnRlcm5hbCBkYXRhCisKKyRET19IRVVSSVNUSUNfUkVNQVAgPSAwOyAjIElmIDEsIGRvIGF1dG9tYXRpYyBoZXVyaXN0aWMgcmVtYXBwaW5nCiskRE9fREVDT01QX1JFTUFQID0gMDsgIyBJZiAxLCBkbyBkZWNvbXAgcmVtYXBwaW5nCisKK29wZW4oVU5JQ09ERV9EQik7Cit3aGlsZSAoPFVOSUNPREVfREI+KSB7CisgICAgbmV4dCBpZiAobXxeMFswLThdfCk7ICMgU2tpcCB1cCB0byBEZXZhbmFnYXJpIGJsb2NrICgwOTAwKQorICAgIGxhc3QgaWYgKG18XjBEWzgtRl18aSk7ICMgQmFpbCBvdXQgYWZ0ZXIgTWFsYXlhbSBibG9jayAoMEQwMCkKKyAgICAjIDBEMzk7TUFMQVlBTEFNIExFVFRFUiBIQTtMbzswO0w7Ozs7O047Ozs7OworICAgIG15IEBkYXRhID0gc3BsaXQoLzsvKTsKKyAgICBteSAkZnVsbENvZGUgPSBoZXgoJGRhdGFbMF0pOyAjIGUuZy4sIDB4MDkzRgorICAgIG15ICRjb2RlID0gJGZ1bGxDb2RlICYgMHg3RjsgIyBlLmcuLCAweDNGCisgICAgbXkgKCRzY3JpcHQsICRuYW1lKSA9ICgkZGF0YVsxXSA9fiAvKFx3KylccysoLispLyk7CisgICAgZGllICJDYW4ndCBwYXJzZSAkXyIgdW5sZXNzICgkbmFtZSk7CisgICAgIyBlLmcuLCAkY29kZS8kc2NyaXB0LyRuYW1lID0gM0YvTUFMQVlBTEFNL1ZPV0VMIFNJR04gSQorCisgICAgIyBUaXRsZWNhc2UgdGhlIHNjcmlwdAorICAgICRzY3JpcHQgPSB1Y2ZpcnN0KGxjKCRzY3JpcHQpKTsKKworICAgICMgRml4IGEgY291cGxlIGluY29uc2lzdGVuY2llcyBpbiB0aGUgMy4wIGRhdGEKKyAgICAjIFJFVklTSVQ6IElzIHRoaXMgb2theSB0byBkbz8KKyAgICBpZiAoJERPX0hFVVJJU1RJQ19SRU1BUCkgeworICAgICAgICBpZiAoJHNjcmlwdCBlcSAnR3VqYXJhdGknICYmICRjb2RlID49IDUgJiYgJGNvZGUgPD0gMHgxNCkgeworICAgICAgICAgICAgJG5hbWUgPX4gcy9eVk9XRUwvTEVUVEVSLzsKKyAgICAgICAgfQorICAgIH0KKworICAgICMgS2VlcCB0cmFjayBvZiBhbGwgc2NyaXB0IG5hbWVzIHdlIGVuY291bnRlci4gIFdlIGFsc28gbm90ZSB0aGUKKyAgICAjIGJhc2Ugb2YgdGhlIGJsb2NrLgorICAgIG15ICRiYXNlID0gJGZ1bGxDb2RlICYgfjB4N0Y7ICMgZS5nLiwgMHg5MDA7CisgICAgaWYgKGV4aXN0cyAkU0NSSVBUX1RPX0JBU0V7JHNjcmlwdH0pIHsKKyAgICAgICAgZGllICJTY3JpcHQgYmFzZSBtaXNtYXRjaCBmb3IgJHNjcmlwdDogJGJhc2UgdnMuICRTQ1JJUFRfVE9fQkFTRXskc2NyaXB0fSIKKyAgICAgICAgICAgIGlmICgkU0NSSVBUX1RPX0JBU0V7JHNjcmlwdH0gbmUgJGJhc2UpOworICAgIH0gZWxzZSB7CisgICAgICAgICRTQ1JJUFRfVE9fQkFTRXskc2NyaXB0fSA9ICRiYXNlOworICAgIH0KKworICAgICMgQnVpbGQgdXAgYSBtYXBwaW5nIGJ5IG5hbWUuICBGb3IgZWFjaCBuYW1lLCBrZWVwIGEgaGFzaCBrZXllZCBieQorICAgICMgY29kZSBwb2ludC4gIEZvciBlYWNoIGNvZGUgcG9pbnQsIGtlZXAgYW4gYXJyYXkgb2Ygc2NyaXB0IG5hbWVzLgorICAgICMgQWxzbyBrZWVwIGEgdG90YWwgdXNlIGNvdW50IGZvciBlYWNoIG5hbWUuCisgICAgcHVzaCBAeyROQU1FX0NPREVfVE9fU0NSSVBUU3skbmFtZX17JGNvZGV9fSwgJHNjcmlwdDsKKyAgICArKyROQU1FX0NPREVfVE9fU0NSSVBUU3skbmFtZX17Y291bnR9OworCisgICAgIyBCdWlsZCBhIG1hcCB0aGF0IGxvb2tzIGxpa2UgdGhpczoKKyAgICAjICRTQ1JJUFRfTkFNRV9UT19DT0RFezxzY3JpcHQ+fXs8bmFtZT59ID0gPGNvZGU+CisgICAgIyBvciB1bmRlZiBpZiB0aGVyZSBpcyBubyBtYXBwaW5nLgorICAgICRTQ1JJUFRfTkFNRV9UT19DT0RFeyRzY3JpcHR9eyRuYW1lfSA9ICRjb2RlOworCisgICAgIyBCdWlsZCBhIG1hcCB0aGF0IGxvb2tzIGxpa2UgdGhpczoKKyAgICAkU0NSSVBUX0NPREVfVE9fTkFNRXskc2NyaXB0fXskY29kZX0gPSAkbmFtZTsKKworICAgICMgQW5kIGEgbWFwIGZyb20gdGhlIGZ1bGxDb2RlIHBvaW50IHRvIHRoZSBuYW1lCisgICAgJEZVTExDT0RFX1RPX05BTUV7JGZ1bGxDb2RlfSA9ICRuYW1lOworCisgICAgIyBNYXAgY29kZSAoMC4uN0YpIHRvIG5hbWUuICBUaGlzIGlzIHVzdWFsbHkgYSAxLTEgbWFwcGluZywgYnV0CisgICAgIyBpcyAxLW4gaW4gYSBmZXcgY2FzZXMuCisgICAgaWYgKGV4aXN0cyAkQ09ERV9UT19OQU1FeyRjb2RlfSkgeworICAgICAgICBpZiAoJG5hbWUgbmUgJENPREVfVE9fTkFNRXskY29kZX0pIHsKKyAgICAgICAgICAgICMgRm9yIG11bHRpcGxlIG5hbWVzIG9uIGEgY29kZSBvZmZzZXQsIHVzZSB0aGUgZm9ybWF0CisgICAgICAgICAgICAjIChhL2IpLCAoYS9iL2MpLCBldGMuCisgICAgICAgICAgICBsb2NhbCAkXyA9ICRDT0RFX1RPX05BTUV7JGNvZGV9OworICAgICAgICAgICAgaWYgKG18XlwofCkgeworICAgICAgICAgICAgICAgIGlmICghbXxbXChcKS9dJG5hbWVbXChcKS9dfCkgeworICAgICAgICAgICAgICAgICAgICBzfFwpJHwvJG5hbWVcKXw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkXyA9ICIoJF8vJG5hbWUpIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRDT0RFX1RPX05BTUV7JGNvZGV9ID0gJF87CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAkQ09ERV9UT19OQU1FeyRjb2RlfSA9ICRuYW1lOworICAgIH0KK30KK2Nsb3NlKFVOSUNPREVfREIpOworCisjIFJlYWQgYW5kIHBhcnNlIHRoZSBtYW51YWwgcmVtYXBwaW5nIGZpbGUuICBUaGlzIGNvbnRhaW5zIGxpbmVzCisjIG9mIHRoZSBmb3JtOgorCisjIHwiXHUwOTU2Plx1MDk0ODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBEZXZhbmFnYXJpIFZvd2VsIFNpZ24gQUkgCisKKyMgVGhlIGxlZnQgaGFuZCBzaWRlIGNvbnRhaW5zIGEgbm9uLWV4aXN0ZW50IGZ1bGwgY29kZSB2YWx1ZS4gIEl0CisjIHNob3VsZCBiZSBhIHNpbmdsZSB2YWx1ZS4gIFRoZSByaWdodCBoYW5kIHNpZGUgY29udGFpbnMgb25lIG9yIG1vcmUKKyMgcmVhbCBmdWxsIGNvZGUgdmFsdWVzLiAgVGhlIGlkZWEgaXMgdGhhdCB3aGVuIGEgbWFwcGluZyBmcm9tIGFub3RoZXIKKyMgc2NyaXB0IGVuZHMgdXAgYXQgdGhlIG5vbi1leGlzdGVudCBjb2RlIHBvaW50IG9uIHRoZSBsZWZ0LCB0aGUKKyMgc2VxdWVuY2Ugb24gdGhlIHJpZ2h0IHNob3VsZCBiZSBzdWJzdGl0dXRlZC4gIEluIHRoaXMgZXhhbXBsZSwKKyMgRGV2YW5hZ2FyaSBoYXMgbm8gQUkgTGVuZ3RoIE1hcmsuICBTbywgaWYgdHJhbnNsaXRlcmF0aW5nIGZyb20KKyMgT3JpeWEsIHRoZW4gdGhlIGNoYXJhY3RlciAwQjU2IChPcml5YSBBSSBMZW5ndGggTWFyaykgd2lsbCByZW1hcCB0bworIyB0aGUgbm9uLWV4aXN0ZW50IDA5NTYsIGFuZCB0aGF0IHJlbWFwcyB0byAwOTQ4LCBvdXIgY2hvc2VuCisjIERldmFuYWdhcmkgZXF1aXZhbGVudC4gIEZvciBvdXIgcHVycG9zZXMsIHRoZSBsZWZ0IGhhbmQgc2lkZSBzaG91bGQKKyMgYmUgdGFrZW4gdG8gbWVhbiBpdHMgZXF1aXZhbGVudCBwb2ludCBpbiB0aGUgSW50ZXJJbmRpYyByYW5nZS4gIEluCisjIHRoaXMgZXhhbXBsZSwgd2hhdCBpdCByZWFsbHkgc2F5cyBpcyBFMDU2PjA5NDggaW4gdGhlCisjIEludGVySW5kaWMtRGV2YW5hZ2FyaSB0cmFuc2xpdGVyYXRvci4KKworaWYgKCRFWENFUFRJT05TX0ZJTEUpIHsKKyAgICBvcGVuKEVYQ0VQVElPTlNfRklMRSkgb3IgZGllOworICAgIHdoaWxlICg8RVhDRVBUSU9OU19GSUxFPikgeworICAgICAgICBpZiAobXxeXHMqXCIoW15cIl0qPylcInwpIHsKKyAgICAgICAgICAgIG15ICRsaW5lID0gJF87CisgICAgICAgICAgICAkXyA9ICQxOworICAgICAgICAgICAgaWYgKC9eKC4qKT4oLiopOyQvKSB7CisgICAgICAgICAgICAgICAgbXkgKCRyYXdGcm9tLCAkcmF3VG8pID0gKCQxLCAkMik7CisgICAgICAgICAgICAgICAgbXkgQGZyb20gPSBwYXJzZVVuaWNvZGVFc2NhcGUoJHJhd0Zyb20pOworICAgICAgICAgICAgICAgIG15IEB0byA9IHBhcnNlVW5pY29kZUVzY2FwZSgkcmF3VG8pOworICAgICAgICAgICAgICAgIG15ICRmcm9tID0gaGV4QXJyYXkoQGZyb20pOworICAgICAgICAgICAgICAgICMgU29tZSBlbnRyaWVzIGxvb2sgbGlrZSB0aGlzOgorICAgICAgICAgICAgICAgICMgfCJcdTA5NTU+XHUwOTU1OyIKKyAgICAgICAgICAgICAgICAjIHRoZXNlIGRvIG5vdGhpbmc7IGlnbm9yZSB0aGVtLgorICAgICAgICAgICAgICAgIGlmIChpbnRBcnJheXNFcXVhbChcQGZyb20sIFxAdG8pKSB7CisgICAgICAgICAgICAgICAgICAgICNwcmludCBTVERFUlIgIklnbm9yaW5nIE5PT1AgcmVtYXAgb2YgJGZyb21cbiI7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoZXhpc3RzICRFWENFUFRJT05TeyRmcm9tfSkgeworICAgICAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SIGluICRFWENFUFRJT05TX0ZJTEUgLSBEdXBsaWNhdGUgcmVtYXAgZW50cmllcyBmb3IgJGZyb21cbiI7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoc2NhbGFyIEBmcm9tID4gMSkgeworICAgICAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SIGluICRFWENFUFRJT05TX0ZJTEUgLSBJZ25vcmluZyBtdWx0aWNoYXIgcmVtYXA6ICIsIGhleEFycmF5KEBmcm9tKSwgIi0+IiwgaGV4QXJyYXkoQHRvKSwgIlxuIjsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICMgQ2hlY2sgdGhpcyBmb3IgdmFsaWRpdHkuICBGdWxsIGNvZGUgb24gdGhlIGxlZnQKKyAgICAgICAgICAgICAgICAgICAgIyBzaG91bGQgTk9UIGV4aXN0LiAgRnVsbCBjb2RlIHNlcSBvbiB0aGUgcmlnaHQgc2hvdWxkLgorICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RzICRGVUxMQ09ERV9UT19OQU1FeyRmcm9tWzBdfSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICJFUlJPUiBpbiAkRVhDRVBUSU9OU19GSUxFIC0gSW52YWxpZCByZW1hcDsgbGVmdCBzaWRlIGRlZmluZWQ6ICIsIGhleEFycmF5KEBmcm9tKSwgIi0+IiwgaGV4QXJyYXkoQHRvKSwgIlxuIjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoZ3JlcCghIGV4aXN0cyAkRlVMTENPREVfVE9fTkFNRXskX30sIEB0bykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IFNUREVSUiAiRVJST1IgaW4gJEVYQ0VQVElPTlNfRklMRSAtIEludmFsaWQgcmVtYXA7IHJpZ2h0IHNpZGUgdW5kZWZpbmVkOiAiLCBoZXhBcnJheShAZnJvbSksICItPiIsIGhleEFycmF5KEB0byksICJcbiI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkRVhDRVBUSU9OU3skZnJvbVswXX0gPSBcQHRvOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsgZGllICJFUlJPUiBpbiAkRVhDRVBUSU9OU19GSUxFIC0gQ2FuJ3QgcGFyc2UgXCIkX1wiIGluIGxpbmUgJGxpbmUiOyB9CisgICAgICAgIH0KKyAgICB9CisgICAgY2xvc2UoRVhDRVBUSU9OU19GSUxFKTsKKyAgICBwcmludCBTVERFUlIgIiRFWENFUFRJT05TX0ZJTEU6IExvYWRlZCAiLCBzY2FsYXIga2V5cyAlRVhDRVBUSU9OUywgIiByZW1hcHBpbmdzXG4iOworfQorCitpZiAoJERPX0RFQ09NUF9SRU1BUCkgeworICAgICMgUmVhZCB0aGUgTmFtZXNMaXN0LnR4dCBmaWxlLiAgVGhpcyBjb250YWlucyBkZWNvbXBvc2l0aW9uIGRhdGEuCisgICAgIyBHYXRoZXIgdGhlc2UgaW50byAlREVDT01QLCB3aGljaCBtYXBzIGEgbmFtZSB0byBuMS5uMi4uLiwgd2hlcmUgbjEKKyAgICAjIGV0Yy4gYXJlIGRlY29tcG9zZWQgbmFtZXMuICBFLmcuICRERUNPTVB7J0xFVFRFUiBSUkEnfSAtPiAnTEVUVEVSCisgICAgIyBSQS5TSUdOIE5VS1RBJy4gIFRoZXJlIG1heSBiZSBkaWZmZXJlbnQgbWFwcGluZ3MgaW4gZGlmZmVyZW50IHNjcmlwdAorICAgICMgYmxvY2tzIChMRVRURVIgUlJBIGlzIG1hcHBlZCBkaWZmZXJlbnRseSBpbiBEZXZhbmFnYXJpIGFuZCBCZW5nYWxpKSwKKyAgICAjIGluIHdoaWNoIGNhc2UgdGhlIG5hbWUgZ29lcyBpbnRvICVERUNPTVBfTUlTTUFUQ0gsIGFuZCBpcyByZW1vdmVkCisgICAgIyBmcm9tICVERUNPTVAuCisgICAgJE5BTUVTID0gIk5hbWVzTGlzdC50eHQiOworICAgIG9wZW4oTkFNRVMpOworICAgIHdoaWxlICg8TkFNRVM+KSB7CisgICAgICAgICMgU2tpcCB0byBzdGFydCBvZiBERVZBTkFHQVJJIGJsb2NrCisgICAgICAgIGxhc3QgaWYgKC9eXEBcQFxzKzA5MDAvKTsKKyAgICB9CisgICAgd2hpbGUgKDxOQU1FUz4pIHsKKyAgICAgICAgIyBDb250aW51ZSB1bnRpbCBzdGFydCBvZiBTSU5IQUxBIGJsb2NrCisgICAgICAgIGxhc3QgaWYgKC9eXEBcQFxzKzBEODAvKTsKKyAgICAgICAgaWYgKC9eKFswLTlBLVpdezR9KS9pKSB7CisgICAgICAgICAgICAkY29kZSA9ICQxOworICAgICAgICB9IGVsc2lmICgvXlxzKzpccyooLispLykgeworICAgICAgICAgICAgIyBXZSd2ZSBmb3VuZCBhIG1hcHBpbmcgb2YgdGhlIGZvcm06CisgICAgICAgICAgICAjIDA5MjkgICAgREVWQU5BR0FSSSBMRVRURVIgTk5OQQorICAgICAgICAgICAgIyAgICAgKiBmb3IgdHJhbnNjcmliaW5nIERyYXZpZGlhbiBhbHZlb2xhciBuCisgICAgICAgICAgICAjICAgICA6IDA5MjggMDkzQworICAgICAgICAgICAgbXkgJGZyb20gPSAkRlVMTENPREVfVE9fTkFNRXtoZXgoJGNvZGUpfTsKKyAgICAgICAgICAgIG15IEB0byA9IG1hcCgkRlVMTENPREVfVE9fTkFNRXtoZXgoJF8pfSwgc3BsaXQoL1xzKy8sICQxKSk7CisgICAgICAgICAgICBpZiAoZXhpc3RzICRERUNPTVB7JGZyb219KSB7CisgICAgICAgICAgICAgICAgbXkgJGFyZWYgPSAkREVDT01QeyRmcm9tfTsKKyAgICAgICAgICAgICAgICBpZiAoam9pbigiLiIsIEAkYXJlZikgbmUgam9pbigiLiIsIEB0bykpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICJFUlJPUjogRGVjb21wIG1pc21hdGNoIGZvciAkZnJvbVxuIjsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICIgICAgIDogJGZyb20gPSAiLCBqb2luKCIuIiwgQCRhcmVmKSwgIlxuIjsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgU1RERVJSICIgICAgIDogJGZyb20gPSAiLCBqb2luKCIuIiwgQHRvKSwgIlxuIjsKKyAgICAgICAgICAgICAgICAgICAgJERFQ09NUF9NSVNNQVRDSHskZnJvbX0gPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgJERFQ09NUHskZnJvbX0gPSBcQHRvOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIGNsb3NlKE5BTUVTKTsKKyAgICAjIFJlbW92ZSBtaXNtYXRjaGVzCisgICAgZm9yZWFjaCAoa2V5cyAlREVDT01QX01JU01BVENIKSB7CisgICAgICAgIGRlbGV0ZSAkREVDT01QeyRffTsKKyAgICB9CisgICAgaWYgKCREVU1QKSB7CisgICAgICAgIGZvcmVhY2ggKGtleXMgJURFQ09NUCkgeworICAgICAgICAgICAgcHJpbnQgIiRfID0gIiwgam9pbigiICsgIiwgQHskREVDT01QeyRffX0pLCAiXG4iOworICAgICAgICB9CisgICAgfQorfQorCisjIENvdW50IHRoZSB0b3RhbCBudW1iZXIgb2Ygc2NyaXB0cworCiskU0NSSVBUX0NPVU5UID0gc2NhbGFyIGtleXMgJVNDUklQVF9UT19CQVNFOworI3ByaW50IGpvaW4oIlxuIiwgc29ydCBrZXlzICVTQ1JJUFRfVE9fQkFTRSksICJcbiI7CisKKyMgRHVtcCBvdXQgdGhlICVOQU1FX0NPREVfVE9fU0NSSVBUUyBtYXAuCisKK2lmICgkRFVNUCkgeworICAgIHByaW50ICJcbkJZIE5BTUU6XG4iOworICAgIGZvcmVhY2ggbXkgJHBhc3MgKCgxLCAyKSkgeworICAgICAgICBwcmludCAiXG5CWSBOQU1FIC0gU0lOR0xFVE9OUzpcbiIgaWYgKCRwYXNzIGVxIDIpOworICAgICAgICBmb3JlYWNoIG15ICRuYW1lIChzb3J0IGtleXMgJU5BTUVfQ09ERV9UT19TQ1JJUFRTKSB7CisgICAgICAgICAgICBpZiAoJHBhc3MgZXEgMSkgeworICAgICAgICAgICAgICAgIG5leHQgaWYgKDEgPj0gJE5BTUVfQ09ERV9UT19TQ1JJUFRTeyRuYW1lfXtjb3VudH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBuZXh0IGlmICgxIDwgJE5BTUVfQ09ERV9UT19TQ1JJUFRTeyRuYW1lfXtjb3VudH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJpbnQgIiRuYW1lOiI7CisgICAgICAgICAgICBteSAkaHJlZiA9ICROQU1FX0NPREVfVE9fU0NSSVBUU3skbmFtZX07CisgICAgICAgICAgICBmb3JlYWNoIG15ICRjb2RlIChzb3J0IHskYSA8PT4gJGJ9IGtleXMgJSRocmVmKSB7CisgICAgICAgICAgICAgICAgbmV4dCBpZiAoJGNvZGUgZXEgJ2NvdW50Jyk7CisgICAgICAgICAgICAgICAgbXkgJGFyZWYgPSAkaHJlZi0+eyRjb2RlfTsKKyAgICAgICAgICAgICAgICBwcmludCAiICIsIGhleDIoJGNvZGUpLCAiICgiLCBmb3JtYXRTY3JpcHRMaXN0KCRhcmVmKSwgIikiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJpbnQgIlxuIjsKKyAgICAgICAgfQorICAgIH0KK30KKworIyBDcmVhdGUgc29tZSB0cmFuc2xpdGVyYXRvcnMsIGJhc2VkIG9uIHRoZSBzY3JpcHRzIGFuZCB0aGUgJU5BTUVfQ09ERV9UT19TQ1JJUFRTCisjIG1hcC4gIE9ubHkgdXNlICVOQU1FX0NPREVfVE9fU0NSSVBUUyBlbnRyaWVzIHdpdGggYSBjb3VudCBvZiAyIG9yIG1vcmUsIHRoYXQgaXMsCisjIG5hbWVzIHRoYXQgb2NjdXIgaW4gdHdvIG9yIG1vcmUgc2NyaXB0cy4gIEZvciB0aG9zZSBzY3JpcHRzIHdoZXJlCisjIHRoZSBuYW1lcyBvY2N1ciwgbWFwIGJvdGggdXAgdG8gdGhlIEludGVySW5kaWMgcmFuZ2UsIGFuZCBkb3duIHRvCisjIHRoZSB0YXJnZXQgc2NyaXB0LgorCiskSU5URVJJTkRJQyA9IDB4RTAwMDsKKyRJTlRFUklORElDX0VYVFJBID0gMHhFMDgwOworJElOVEVSSU5ESUNfRVhUUkFfTkVYVCA9ICRJTlRFUklORElDX0VYVFJBOworCisjIEZvciBlYWNoIHNjcmlwdCwgY3JlYXRlIGEgaGFzaC4gIFRoZSBoYXNoIGhhcyBhIGtleSBmb3IgZWFjaAorIyBjb2RlIHBvaW50LCBlaXRoZXIgd2l0aGluIGl0cyBibG9jaywgb3IgaW4gdGhlIEludGVySW5kaWMgYmxvY2suCisjIHRoZSB2YWx1ZSBvZiB0aGUga2V5IGlzIHRoZSBtYXBwaW5nLgorCisjIFRoZSBzY3JpcHQgaGFzaGVzIGFyZSBuYW1lZCAlREVWQU5BR0FSSSwgZXRjLiwgYW5kIHJlZmVyZW5jZWQKKyMgd2l0aCBzeW1ib2xpYyByZWZzLgorCitAUkVNQVAgPSAoJ3MvXGJTSE9SVFxzKy8vaScsCisgICAgICAgICAgJ3MvXGJDQU5EUkFccysvL2knLAorICAgICAgICAgICdzL1xiUUEkL0tBL2knLAorICAgICAgICAgICdzL1xiS0hIQSQvS0hBL2knLAorICAgICAgICAgICdzL1xiR0hIQSQvR0EvaScsCisgICAgICAgICAgJ3MvXGJaQSQvSkEvaScsCisgICAgICAgICAgJ3MvXGJGQSQvUEhBL2knLAorICAgICAgICAgICdzL1xiVkEkL0JBL2knLAorICAgICAgICAgICdzL1xiTk5OQSQvTkEvaScsCisgICAgICAgICAgJ3MvXGJSUkEkL1JBL2knLAorICAgICAgICAgICdzL1xiTExMQSQvTExBL2knLAorICAgICAgICAgICdzL1xiTExMQSQvTEEvaScsCisgICAgICAgICAgJ3MvXGJMTEEkL0xBL2knLAorICAgICAgICAgICdzL15BKC4pIExFTkdUSCBNQVJLJC9WT1dFTCBTSUdOIEEkMS9pJywKKyAgICAgICAgICAncy9DQU5EUkFCSU5EVS9CSU5ESS9pJywKKyAgICAgICAgICAncy9CSU5ESS9DQU5EUkFCSU5EVS9pJywKKyAgICAgICAgICApOworCisjIERvIHRoaXMgc28gd2Ugc2VlIHplcm8gY291bnRzOgorZm9yZWFjaCBteSAkcmVtYXAgKEBSRU1BUCkgeyAkUkVNQVB7JHJlbWFwfSA9IDA7IH0KKworIyBUaGlzIGxvb3AgaXRlcmF0ZXMgb3ZlciB0aGUgbmFtZXMgaW4gdGhlIE5BTUVfQ09ERV9UT19TQ1JJUFRTIGhhc2guCisjIFRoZXNlIG5hbWVzIGFyZSB0aGluZ3MgbGlrZSAiTEVUVEVSIE5OTkEiLiAgRm9yIGVhY2ggbmFtZSwgaXQgdGhlbgorIyBjcmVhdGVzIHNjcmlwdCBtYXBwaW5ncyB1cCB0byB0aGUgSW50ZXJJbmRpYyBhcmVhLCBhbmQgYmFjayBkb3duCisjIHRvIHRoZSBzY3JpcHQgYXJlYXMuICBJZiBhIG5hbWUgbWFwcyB0byBtb3JlIHRoYW4gb25lIG9mZnNldCwKKyMgdGhlbiBpdCB1c2VzIHRoZSBJbnRlckluZGljIGV4dHJhIHJhbmdlLiAgRWl0aGVyIHdheSwgaXQgcGlja3MKKyMgYSBzaW5nbGUgSW50ZXJJbmRpYyBwb2ludCwgZWl0aGVyIGFuIG9mZnNldCBwb2ludCBvciBzb21ldGhpbmcgaW4KKyMgdGhlIGV4dHJhIHJhbmdlLCBhbmQgbWFwcyB1cCBhbmQgZG93biBmcm9tIHRoYXQgcG9pbnQuCitmb3JlYWNoIG15ICRuYW1lIChzb3J0IGtleXMgJU5BTUVfQ09ERV9UT19TQ1JJUFRTKSB7CisgICAgbmV4dCBpZiAoMSA+PSAkTkFNRV9DT0RFX1RPX1NDUklQVFN7JG5hbWV9e2NvdW50fSk7CisgICAgbXkgJGhyZWYgPSAkTkFNRV9DT0RFX1RPX1NDUklQVFN7JG5hbWV9OworICAgICMgQ291bnQgdGhlIG51bWJlciBvZiBkaWZmZXJlbnQgY29kZXMgYXNzaWduZWQgdG8gdGhpcyBuYW1lLgorICAgICMgVXN1YWxseSAxLCBidXQgMiBmb3IgYSBoYW5kZnVsIG9mIG5hbWVzLgorICAgIG15ICRjb2RlQ291bnQgPSAoa2V5cyAleyROQU1FX0NPREVfVE9fU0NSSVBUU3skbmFtZX19KSAtIDE7ICMgbGVzcyAxOiB7Y291bnR9CisgICAgIyBJZiAkY29kZUNvdW50IGlzIDEsIHRoZW4gbWFwIGRpcmVjdGx5IHVwIHRvIHRoZSAkSU5URVJJTkRJQworICAgICMgYmFzZS4gIElmICRjb2RlQ291bnQgaXMgMiwgdGhlbiBtYXAgaW50byB1bnVzZWQgc3BvdHMgc3RhcnRpbmcKKyAgICAjIGF0ICRJTlRFUklORElDX0VYVFJBLgorICAgIG15ICRpbnRlckluZGljQ29kZTsKKyAgICBpZiAoJGNvZGVDb3VudCA+IDEpIHsKKyAgICAgICAgIyBNYXAgaW50byB0aGUgSW50ZXJJbmRpYyBleHRyYSByYW5nZQorICAgICAgICAkaW50ZXJJbmRpY0NvZGUgPSAkSU5URVJJTkRJQ19FWFRSQV9ORVhUKys7CisgICAgfQorICAgIG15ICVzZWVuOworICAgIGZvcmVhY2ggbXkgJGNvZGUgKHNvcnQgeyRhIG5lICdjb3VudCcgJiYgJGIgbmUgJ2NvdW50JyAmJiAkYSA8PT4gJGJ9IGtleXMgJSRocmVmKSB7CisgICAgICAgIG5leHQgaWYgKCRjb2RlIGVxICdjb3VudCcpOworICAgICAgICBteSAkYXJlZiA9ICRocmVmLT57JGNvZGV9OyAjIFJlZiB0byBhcnJheSBvZiBzY3JpcHRzCisgICAgICAgIGlmICgkY29kZUNvdW50ID09IDEpIHsKKyAgICAgICAgICAgICMgTWFwIGRpcmVjdGx5CisgICAgICAgICAgICAkaW50ZXJJbmRpY0NvZGUgPSAkSU5URVJJTkRJQyArICRjb2RlOworICAgICAgICB9CisgICAgICAgICMgS2VlcCB0cmFjayBvZiB0aGUgbmFtZXMgb2YgdGhlIGV4dHJhIEludGVySW5kaWMgcG9pbnRzCisgICAgICAgICRJTlRFUklORElDX05BTUVfVE9fRlVMTENPREV7JG5hbWV9ID0gJGludGVySW5kaWNDb2RlOworCisgICAgICAgIGZvcmVhY2ggbXkgJHNjciAoQCRhcmVmKSB7CisgICAgICAgICAgICAkc2Vlbnskc2NyfSA9IDE7CisgICAgICAgICAgICBteSAkZnVsbENvZGUgPSAkU0NSSVBUX1RPX0JBU0V7JHNjcn0gKyAkY29kZTsKKyAgICAgICAgICAgICQgeyRzY3J9eyRmdWxsQ29kZX0gPSBoZXg0KCRpbnRlckluZGljQ29kZSkgLiAiOyAvLyAkbmFtZSI7CisgICAgICAgICAgICAkIHskc2NyfXskaW50ZXJJbmRpY0NvZGV9ID0gaGV4NCgkZnVsbENvZGUpIC4gIjsgLy8gJG5hbWUiOworICAgICAgICB9CisgICAgfQorICAgICMgTm93IGhhbmRsZSBJbnRlckluZGljLT5TY3JpcHQgdW5tYXBwZWQgcG9pbnRzLiAgRm9yIGVhY2ggbmFtZSwKKyAgICAjIHNvbWUgb2YgdGhlIHNjcmlwdHMgd2lsbCBiZSBsZWZ0IG91dCAtLSB3aWxsIGhhdmUgbm8gbWFwcGluZ3MKKyAgICAjIHRvIHRoYXQgbmFtZS4gIEZvciB0aGVzZSBzY3JpcHRzLCB3ZSBjYW4gZWl0aGVyIGxlYXZlIHRoZW0KKyAgICAjIHVubWFwcGVkIChzbyB0aGUgSW50ZXJJbmRpYy0+TG9jYWwgbWFwcGluZyBpcyBlbXB0eSksIG9yCisgICAgIyB0cnkgdG8gcmVtYXAuCisgdW5tYXBwZWRTY3JpcHQ6CisgICAgZm9yZWFjaCBteSAkc2NyIChrZXlzICVTQ1JJUFRfVE9fQkFTRSkgeworICAgICAgICBuZXh0IGlmICgkc2Vlbnskc2NyfSk7CisKKyAgICAgICAgaWYgKCRET19IRVVSSVNUSUNfUkVNQVApIHsKKyAgICAgICAgICAgICMgVHJ5IHRvIHJlbWFwIHRocm91Z2ggdGhlIGtub3duIGVxdWl2YWxlbmNlcyBpbiBvdXIKKyAgICAgICAgICAgICMgcmVtYXBwaW5nIHRhYmxlCisgICAgICAgICAgICBmb3JlYWNoIG15ICRyZW1hcFJFIChAUkVNQVApIHsKKyAgICAgICAgICAgICAgICBsb2NhbCAkXyA9ICRuYW1lOworICAgICAgICAgICAgICAgIGlmIChldmFsKCRyZW1hcFJFKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RzICRTQ1JJUFRfTkFNRV9UT19DT0RFeyRzY3J9eyRffSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJCB7JHNjcn17JGludGVySW5kaWNDb2RlfSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGV4NCgkU0NSSVBUX1RPX0JBU0V7JHNjcn0gKyAkU0NSSVBUX05BTUVfVE9fQ09ERXskc2NyfXskX30pIC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjsgLy8gUkVNQVA6ICRuYW1lIC0+ICRfIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrJFJFTUFQeyRyZW1hcFJFfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgdW5tYXBwZWRTY3JpcHQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAjIFRyeSB0byByZW1hcCB0aHJvdWdoIHRoZSBmaWxlLiAgVGhpcyBjb250YWlucyByZW1hcHBpbmdzIG9mCisgICAgICAgICMgdGhlIGZvcm0gMDk5MS0+MDk5My4gIFRoYXQgaXMsIGl0IGNvbnRhaW5zIGxvY2FsIHJlbWFwcGluZ3MKKyAgICAgICAgIyB0aGF0IHdlIGNhbiBzdWJzdGl0dXRlIGFuZCB0cnkgYWdhaW4gd2l0aC4KKyAgICAgICAgI3xHVVJNVUtISS1JbnRlckluZGljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAjfC8vIDBBMDI+OyAvLyBVTk1BUFBFRCBJTlRFUk5BTDogU0lHTiBCSU5ESQorICAgICAgICAjfEludGVySW5kaWMtR1VSTVVLSEkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICN8Ly8gRTAwMT47IC8vIFVOTUFQUEVEIEVYVEVSTkFMOiBTSUdOIENBTkRSQUJJTkRVCisgICAgICAgICN8Ilx1MEEwMT5cdTBBMDI7IgorICAgICAgICAjIEluIHRoaXMgZXhhbXBsZSwgdGhlIHJlbWFwcGluZyB0ZWxscyB1cyB0aGF0IHRoZSBub24tZXhpc3RlbnQKKyAgICAgICAgIyBjaGFyYWN0ZXIgQTAxIHNob3VsZCBiZSBjb25zaWRlcmVkIGVxdWl2YWxlbnQgdG8gdGhlIHJlYWwKKyAgICAgICAgIyBjaGFyYWN0ZXIgQTAyLgorICAgICAgICAjIFdlIGltcGxlbWVudCB0aGlzIGJ5IGFkZGluZyB0d28gbWFwcGluZ3M7IG9uZSBmcm9tCisgICAgICAgICMgdGhlIEludGVySW5kaWMgZXF1aXZhbGVudCBvZiBBMDEsIHRoYXQgaXMsIEUwMDEsIHRvIEEwMiwKKyAgICAgICAgIyBhbmQgb25lIGZyb20gQTAyLCB3aGljaCBvdGhlcndpc2UgaGFzIG5vIG1hcHBpbmcsIHRvIEUwMDEuCisgICAgICAgIGlmICgkRVhDRVBUSU9OU19GSUxFICYmICRpbnRlckluZGljQ29kZSA8ICRJTlRFUklORElDX0VYVFJBKSB7CisgICAgICAgICAgICAjIFRyeSB0byBtYXAgdGhpcyBJbnRlckluZGljIGNoYXJhY3RlciBiYWNrIHRvIGEgdGhlIHNwb3QKKyAgICAgICAgICAgICMgaXQgd291bGQgb2NjdXB5IGluIHRoaXMgc2NyaXB0IGlmIGl0IGhhZCBhIG1hcHBpbmcuCisgICAgICAgICAgICBteSAkY29kZSA9ICRpbnRlckluZGljQ29kZSAmIDB4N0Y7CisgICAgICAgICAgICBteSAkcHNldWRvRnVsbENvZGUgPSAkU0NSSVBUX1RPX0JBU0V7JHNjcn0gKyAkY29kZTsKKyAgICAgICAgICAgIGlmIChleGlzdHMgJEVYQ0VQVElPTlN7JHBzZXVkb0Z1bGxDb2RlfSkgeworICAgICAgICAgICAgICAgIG15ICRmdWxsQ29kZUFycmF5ID0gJEVYQ0VQVElPTlN7JHBzZXVkb0Z1bGxDb2RlfTsKKyAgICAgICAgICAgICAgICBteSAkY29tbWVudDsKKyAgICAgICAgICAgICAgICBmb3JlYWNoIG15ICRjIChAJGZ1bGxDb2RlQXJyYXkpIHsKKyAgICAgICAgICAgICAgICAgICAgJGNvbW1lbnQgLj0gIi4iIGlmICgkY29tbWVudCk7CisgICAgICAgICAgICAgICAgICAgICRjb21tZW50IC49ICRGVUxMQ09ERV9UT19OQU1FeyRjfTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJGNvbW1lbnQgPSAiOyAvLyBSRU1BUCAoJEVYQ0VQVElPTlNfRklMRSk6ICIgLgorICAgICAgICAgICAgICAgICAgICBoZXg0KCRwc2V1ZG9GdWxsQ29kZSkgLiAiPiIgLiBoZXhBcnJheShAJGZ1bGxDb2RlQXJyYXkpIC4gIiA9ICIgLgorICAgICAgICAgICAgICAgICAgICAkQ09ERV9UT19OQU1FeyRjb2RlfSAuICI+IiAuICRjb21tZW50OworICAgICAgICAgICAgICAgICQgeyRzY3J9eyRpbnRlckluZGljQ29kZX0gPSBoZXhBcnJheShAJGZ1bGxDb2RlQXJyYXkpIC4gJGNvbW1lbnQ7CisgICAgICAgICAgICAgICAgaWYgKHNjYWxhciBAJGZ1bGxDb2RlQXJyYXkgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RzICQgeyRzY3J9eyRmdWxsQ29kZUFycmF5LT5bMF19KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAjIFRoZXJlJ3MgYWxyZWFkeSBhIHByb3BlciBtYXBwaW5nOyBubyBuZWVkIHRvIGZpbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICMgaW4gcmV2ZXJzZQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgJCB7JHNjcn17JGZ1bGxDb2RlQXJyYXktPlswXX0gPSBoZXg0KCRpbnRlckluZGljQ29kZSkgLiAkY29tbWVudDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXh0IHVubWFwcGVkU2NyaXB0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgJFNDUklQVF9GVUxMQ09ERV9UT19JU19VTk1BUFBFRHskc2NyfXskaW50ZXJJbmRpY0NvZGV9ID0gMTsKKyAgICAgICAgbG9jYWwgJF8gPSAiOyAvLyBVTk1BUFBFRCBJbnRlckluZGljLSRzY3I6ICRuYW1lIjsKKyAgICAgICAgaWYgKGV4aXN0cyAkU0NSSVBUX0NPREVfVE9fTkFNRXskc2NyfXskaW50ZXJJbmRpY0NvZGUgJiAweDdGfSkgeworICAgICAgICAgICAgbXkgJGZ1bGxDb2RlID0gJFNDUklQVF9UT19CQVNFeyRzY3J9ICsgKCRpbnRlckluZGljQ29kZSAmIDB4N0YpOworICAgICAgICAgICAgJF8gLj0gIiAoIiAuIGhleDQoJGZ1bGxDb2RlKSAuICIgPSAiIC4gJEZVTExDT0RFX1RPX05BTUV7JGZ1bGxDb2RlfSAuICIpIjsKKyAgICAgICAgfQorICAgICAgICAkIHskc2NyfXskaW50ZXJJbmRpY0NvZGV9ID0gJF87CisgICAgfQorfQorCisjIEFkZCBpbiB1bm1hcHBlZCBlbnRyaWVzIGZvciBlYWNoIHNjcmlwdAorZm9yZWFjaCBteSAkc2NyIChrZXlzICVTQ1JJUFRfVE9fQkFTRSkgeworICAgIG15ICRiYXNlID0gJFNDUklQVF9UT19CQVNFeyRzY3J9OworIHVubWFwcGVkSW50OgorICAgIGZvcmVhY2ggbXkgJGNvZGUgKGtleXMgJXskU0NSSVBUX0NPREVfVE9fTkFNRXskc2NyfX0pIHsKKyAgICAgICAgbXkgJGZ1bGxDb2RlID0gJGNvZGUgKyAkYmFzZTsKKyAgICAgICAgbmV4dCBpZiAoZXhpc3RzICQgeyRzY3J9eyRmdWxsQ29kZX0pOworICAgICAgICBteSAkbmFtZSA9ICRTQ1JJUFRfQ09ERV9UT19OQU1FeyRzY3J9eyRjb2RlfTsKKworICAgICAgICBpZiAoJERPX0hFVVJJU1RJQ19SRU1BUCkgeworICAgICAgICAgICAgZm9yZWFjaCBteSAkcmVtYXBSRSAoQFJFTUFQKSB7CisgICAgICAgICAgICAgICAgbG9jYWwgJF8gPSAkbmFtZTsKKyAgICAgICAgICAgICAgICBpZiAoZXZhbCgkcmVtYXBSRSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4aXN0cyAkSU5URVJJTkRJQ19OQU1FX1RPX0ZVTExDT0RFeyRffSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJCB7JHNjcn17JGZ1bGxDb2RlfSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGV4NCgkSU5URVJJTkRJQ19OQU1FX1RPX0ZVTExDT0RFeyRffSkgLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyAvLyBSRU1BUDogJG5hbWUgLT4gJF8iOworICAgICAgICAgICAgICAgICAgICAgICAgKyskUkVNQVB7JHJlbWFwUkV9OworICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCB1bm1hcHBlZEludDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICMgTm93IHRyeSB0aGUgZGVjb21wIHRhYmxlCisgICAgICAgIGlmICgkRE9fREVDT01QX1JFTUFQICYmIGV4aXN0cyAkREVDT01QeyRuYW1lfSkgeworICAgICAgICAgICAgbXkgJHg7CisgICAgICAgICAgICBteSAkY210ID0gIjsgLy8gREVDT01QOiAkbmFtZSAtPiAiOworICAgICAgICAgICAgZm9yZWFjaCBteSAkbiAoQHskREVDT01QeyRuYW1lfX0pIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhpc3RzICRTQ1JJUFRfTkFNRV9UT19DT0RFeyRzY3J9eyRufSkgeworICAgICAgICAgICAgICAgICAgICAkeCAuPSBoZXg0KCRTQ1JJUFRfVE9fQkFTRXskc2NyfSArICRTQ1JJUFRfTkFNRV9UT19DT0RFeyRzY3J9eyRufSk7CisgICAgICAgICAgICAgICAgICAgICRjbXQgLj0gJG4gLiAiICsgIjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAkY210ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoJGNtdCkgeworICAgICAgICAgICAgICAgICQgeyRzY3J9eyRmdWxsQ29kZX0gPSAkeCAuICRjbXQ7CisgICAgICAgICAgICAgICAgbmV4dCB1bm1hcHBlZEludDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICRTQ1JJUFRfRlVMTENPREVfVE9fSVNfVU5NQVBQRUR7JHNjcn17JGZ1bGxDb2RlfSA9IDE7CisgICAgICAgICQgeyRzY3J9eyRmdWxsQ29kZX0gPSAiOyAvLyBVTk1BUFBFRCAkc2NyLUludGVySW5kaWM6ICRuYW1lIjsKKyAgICB9Cit9CisKKyMgR1VSCisjIEUwMEI+OyAvLyBVTk1BUFBFRCBFWFRFUk5BTDogTEVUVEVSIFZPQ0FMSUMgUiAiXHUwQTBCPlx1MEEzMFx1MEEzRjsiCisjIEUwMEM+OyAvLyBVTk1BUFBFRCBFWFRFUk5BTDogTEVUVEVSIFZPQ0FMSUMgTCAiXHUwQTBDPlx1MEEwNzsiCisjIEUwMEQ+OyAvLyBVTk1BUFBFRCBFWFRFUk5BTDogTEVUVEVSIENBTkRSQSBFICJcdTBBMEQ+XHUwQTEwOyIKKyMgRTAxMT47IC8vIFVOTUFQUEVEIEVYVEVSTkFMOiBMRVRURVIgQ0FORFJBIE8gIlx1MEExMT5cdTBBMTQ7IgorIyBFMDM3PjsgLy8gVU5NQVBQRUQgRVhURVJOQUw6IExFVFRFUiBTU0EgIlx1MEEzNz5cdTBBMzY7IgorIyBFMDQ1PjsgLy8gVU5NQVBQRUQgRVhURVJOQUw6IFZPV0VMIFNJR04gQ0FORFJBIEUgIlx1MEE0NT5cdTBBNDg7IgorIyBFMDQ5PjsgLy8gVU5NQVBQRUQgRVhURVJOQUw6IFZPV0VMIFNJR04gQ0FORFJBIE8gIlx1MEE0OT5cdTBBNEM7IgorIyBGaXggUUEgdG9vCisKKyMgRHVtcCBvdXQgc2NyaXB0IG1hcHMKK2ZvcmVhY2ggbXkgJHNjciAoc29ydCBrZXlzICVTQ1JJUFRfVE9fQkFTRSkgeworICAgICMjIG5leHQgdW5sZXNzICgkc2NyIGVxICdURUxVR1UnKTsgIyBEZWJ1Z2dpbmcKKyAgICBteSBAcnVsZXM7CisgICAgbXkgJGZsYWcgPSAxOworICAgIGZvcmVhY2ggbXkgJGZ1bGxDb2RlIChzb3J0IHskYSA8PT4gJGJ9IGtleXMgJXskc2NyfSkgeworICAgICAgICBpZiAoJGZsYWcgJiYgJGZ1bGxDb2RlID49ICRJTlRFUklORElDKSB7CisgICAgICAgICAgICAjIFdlIGhhdmUgdGhlIGNvbXBsZXRlIDxzY3I+LUludGVySW5kaWMgcnVsZXM7IGR1bXAKKyAgICAgICAgICAgICMgdGhlbSBvdXQuCisgICAgICAgICAgICBnZW5lcmF0ZVJCVCgkc2NyLCAiSW50ZXJJbmRpYyIsIFxAcnVsZXMsICRPVVRESVIpOworICAgICAgICAgICAgQHJ1bGVzID0gKCk7CisgICAgICAgICAgICAkZmxhZyA9IDA7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGV4aXN0cyAkU0NSSVBUX0ZVTExDT0RFX1RPX0lTX1VOTUFQUEVEeyRzY3J9eyRmdWxsQ29kZX0pIHsKKyAgICAgICAgICAgIHB1c2ggQHJ1bGVzLCAiLy8gIiAuIGhleDQoJGZ1bGxDb2RlKSAuICI+IiAuICQgeyRzY3J9eyRmdWxsQ29kZX07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdXNoIEBydWxlcywgaGV4NCgkZnVsbENvZGUpIC4gIj4iIC4gJCB7JHNjcn17JGZ1bGxDb2RlfTsKKyAgICAgICAgfQorICAgIH0KKyAgICAjIE5vdyBnZW5lcmF0ZSB0aGUgSW50ZXJJbmRpYy08c2NyPiBydWxlcy4KKyAgICBnZW5lcmF0ZVJCVCgiSW50ZXJJbmRpYyIsICRzY3IsIFxAcnVsZXMsICRPVVRESVIpOworCisjICAgIHByaW50ICIkc2NyLUludGVySW5kaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOworIyAgICBteSAkZmxhZyA9IDE7CisjICAgIGZvcmVhY2ggbXkgJGZ1bGxDb2RlIChzb3J0IHskYSA8PT4gJGJ9IGtleXMgJXskc2NyfSkgeworIyAgICAgICAgaWYgKCRmbGFnICYmICRmdWxsQ29kZSA+PSAkSU5URVJJTkRJQykgeworIyAgICAgICAgICAgIHByaW50ICJJbnRlckluZGljLSRzY3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOworIyAgICAgICAgICAgICRmbGFnID0gMDsKKyMgICAgICAgIH0KKyMgICAgICAgIGlmIChleGlzdHMgJFNDUklQVF9GVUxMQ09ERV9UT19JU19VTk1BUFBFRHskc2NyfXskZnVsbENvZGV9KSB7CisjICAgICAgICAgICAgcHJpbnQgIi8vICIsIGhleDQoJGZ1bGxDb2RlKSwgIj4iLCAkIHskc2NyfXskZnVsbENvZGV9LCAiXG4iOworIyAgICAgICAgfSBlbHNlIHsKKyMgICAgICAgICAgICBwcmludCBoZXg0KCRmdWxsQ29kZSksICI+IiwgJCB7JHNjcn17JGZ1bGxDb2RlfSwgIlxuIjsKKyMgICAgICAgIH0KKyMgICAgfQorfQorCisjIExpc3Qgc3VjY2Vzc2Z1bCByZW1hcHBpbmdzCitpZiAoJERPX0hFVVJJU1RJQ19SRU1BUCkgeworICAgIGZvcmVhY2ggbXkgJHJlbWFwIChzb3J0IGtleXMgJVJFTUFQKSB7CisgICAgICAgIHByaW50IFNUREVSUiAiUkVNQVAgIiwgJFJFTUFQeyRyZW1hcH0sICIgeCAkcmVtYXBcbiI7CisgICAgfQorfQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTVUJST1VUSU5FUworCisjIFJldHVybiBhIGxpc3Rpbmcgb2YgYW4gYXJyYXkgb2Ygc2NyaXB0cworIyBQYXJhbTogYXJyYXkgcmVmCitzdWIgZm9ybWF0U2NyaXB0TGlzdCB7CisgICAgbXkgJGFyZWYgPSBzaGlmdDsKKyAgICBpZiAoJFNDUklQVF9DT1VOVCA9PSBAJGFyZWYpIHsKKyAgICAgICAgcmV0dXJuICJhbGwiOworICAgIH0gZWxzaWYgKCgkU0NSSVBUX0NPVU5UIC0gMykgPD0gQCRhcmVmKSB7CisgICAgICAgIG15ICRzID0gImFsbCBidXQiOworICAgICAgICBteSAldGVtcDsKKyAgICAgICAgZm9yZWFjaCAoQCRhcmVmKSB7ICR0ZW1weyRffSA9IDE7IH0KKyAgICAgICAgZm9yZWFjaCAoc29ydCBrZXlzICVTQ1JJUFRfVE9fQkFTRSkgeworICAgICAgICAgICAgJHMgLj0gIiAkXyIgdW5sZXNzIGV4aXN0cyAkdGVtcHskX307CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRzOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBqb2luKCIgIiwgQCRhcmVmKTsKKyAgICB9Cit9CisKKyMgRm9ybWF0IGFzICUwMlggaGV4CitzdWIgaGV4MiB7CisgICAgc3ByaW50ZigiJTAyWCIsICRfWzBdKTsKK30KKworIyBGb3JtYXQgYXMgJTA0WCBoZXgKK3N1YiBoZXg0IHsKKyAgICBzcHJpbnRmKCJcXHUlMDRYIiwgJF9bMF0pOworfQorCisjIEZvcm1hdCBhbiBhcnJheSBhcyAlMDRYIGhleCwgZGVsaW1pdGVkIGJ5ICIuInMKK3N1YiBoZXhBcnJheSB7CisgICAgam9pbigiIiwgbWFwIHsgaGV4NCgkXyk7IH0gQF8pOworfQorCisjIFBhcnNlIGEgc3RyaW5nIG9mIHRoZSBmb3JtICJcdTBEMDEiIHRvIGFuIGFycmF5IG9mIGludGVnZXJzLgorIyBNdXN0IE9OTFkgY29udGFpbiBlc2NhcGVzLgorIyBSZXR1cm4gdGhlIGFycmF5Lgorc3ViIHBhcnNlVW5pY29kZUVzY2FwZSB7CisgICAgbG9jYWwgJF8gPSBzaGlmdDsKKyAgICBteSAkb3JpZyA9ICRfOworICAgIG15IEByZXN1bHQ7CisgICAgd2hpbGUgKGxlbmd0aCgkXykpIHsKKyAgICAgICAgaWYgKC9eXFx1KFswLTlhLWZdezR9KSguKikvaSkgeworICAgICAgICAgICAgcHVzaCBAcmVzdWx0LCBoZXgoJDEpOworICAgICAgICAgICAgJF8gPSAkMjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRpZSAiQ2FuJ3QgcGFyc2UgVW5pY29kZSBlc2NhcGUgJG9yaWdcbiI7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKDAgPT0gQHJlc3VsdCkgeworICAgICAgICBkaWUgIkNhbid0IHBhcnNlIFVuaWNvZGUgZXNjYXBlICRvcmlnXG4iOyAgICAgICAgCisgICAgfQorICAgIEByZXN1bHQ7Cit9CisKKyMgUmV0dXJuIDEgaWYgdGhlIHR3byBhcnJheXMgb2YgaW50cyBhcmUgZXF1YWwuCisjIFBhcmFtOiByZWYgdG8gYXJyYXkgb2YgaW50cworIyBQYXJhbTogcmVmIHRvIGFycmF5IG9mIGludHMKK3N1YiBpbnRBcnJheXNFcXVhbCB7CisgICAgbXkgJGEgPSBzaGlmdDsKKyAgICBteSAkYiA9IHNoaWZ0OworICAgIGlmIChzY2FsYXIgQCRhID09IHNjYWxhciBAJGIpIHsKKyAgICAgICAgZm9yIChteSAkaT0wOyAkaTxAJGE7ICsrJGkpIHsKKyAgICAgICAgICAgIGlmICgkYS0+WyRpXSAhPSAkYi0+WyRpXSkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworIyBHaXZlbiBhIHJ1bGUsIHBvc3NpYmx5IHdpdGggdHJhaWxpbmcgLy8gY29tbWVudCwKKyMgcXVvdGUgdGhlIHJ1bGUgcGFydCBhbmQgYWRkIGEgdHJhaWxpbmcgIisiIGFmdGVyCisjIGl0Lgorc3ViIHF1b3RlUnVsZSB7CisgICAgbXkgJGNtdDsKKyAgICAkY210ID0gJDEgaWYgKHN8KFxzKi8vLiopfHwpOyAjIGlzb2xhdGUgdHJhaWxpbmcgLy8gY29tbWVudAorICAgIHMvXiguKjspL1wiJDFcIisvOworICAgIHMvJC8kY210LzsKKyAgICAkXzsKK30KKworIyBHaXZlbiB0aGUgbmFtZSBvZiB0aGUgc291cmNlIHNjcmlwdCwgbmFtZSBvZiB0aGUgdGFyZ2V0IHNjcmlwdCwKKyMgYW5kIGFycmF5IG9mIHJ1bGUgc3RyaW5ncywgcmV0dXJuIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHNvdXJjZQorIyBmb3IgYSBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciBmaWxlLgorIyBQYXJhbTogc291cmNlIHNjcmlwdCBuYW1lCisjIFBhcmFtOiB0YXJnZXQgc2NyaXB0IG5hbWUKKyMgUGFyYW06IHJlZiB0byBhcnJheSBvZiBydWxlcy4gIFRoZXNlIHJ1bGVzIGFyZSB1bnF1b3RlZCwgd2l0aG91dAorIyAgY29uY2F0ZW5hdG9ycyBiZXR3ZWVuIHRoZW0sIGJ1dCBkbyBoYXZlIHRyYWlsaW5nICc7JyBzZXBhcmF0b3JzLgorIyBQYXJhbTogbmFtZSBvZiBvdXRwdXQgZGlyZWN0b3J5CitzdWIgZ2VuZXJhdGVSQlQgeworICAgICMgJFRPT0wgLSBuYW1lIG9mIGdlbmVyYXRpbmcgdG9vbAorICAgICMgJERBVEUgLSBkYXRlIG9mIGdlbmVyYXRpb24KKyAgICAjICRTQ1JJUFRGUk9NIC0gbmFtZSBvZiBzb3VyY2Ugc2NyaXB0CisgICAgIyAkU0NSSVBUVE8gLSBuYW1lIG9mIHRhcmdldCBzY3JpcHQKKyAgICAjICRSVUxFUyAtIHJ1bGVzCisgICAgbXkgKCRzb3VyY2UsICR0YXJnZXQsICRydWxlcywgJG91dGRpcikgPSBAXzsKKyAgICBteSAkdGV4dDsKKyAgICAkb3V0ZGlyID1+IHN8Wy9cXF0kfHw7ICMgRGVsZXRlIHRyYWlsaW5nIC8gb3IgXAorICAgIG15ICRPVVQgPSAiJG91dGRpci9UcmFuc2xpdGVyYXRpb25SdWxlXyR7c291cmNlfV8kdGFyZ2V0LmphdmEiOworICAgIG9wZW4oUkJUX1RFTVBMQVRFKSBvciBkaWU7CisgICAgb3BlbihPVVQsICI+JE9VVCIpIG9yIGRpZTsKKyAgICB3aGlsZSAoPFJCVF9URU1QTEFURT4pIHsKKyAgICAgICAgd2hpbGUgKC9cJChbQS1aYS16MC05XSspLykgeworICAgICAgICAgICAgbXkgJHRhZyA9ICQxOworICAgICAgICAgICAgbXkgJHN1YjsKKyAgICAgICAgICAgIGlmICgkdGFnIGVxICdUT09MJykgeworICAgICAgICAgICAgICAgICRzdWIgPSAkUkJUX0dFTl9UT09MOworICAgICAgICAgICAgfSBlbHNpZiAoJHRhZyBlcSAnREFURScpIHsKKyAgICAgICAgICAgICAgICAkc3ViID0gbG9jYWx0aW1lOworICAgICAgICAgICAgfSBlbHNpZiAoJHRhZyBlcSAnU0NSSVBURlJPTScpIHsKKyAgICAgICAgICAgICAgICAkc3ViID0gJHNvdXJjZTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCR0YWcgZXEgJ1NDUklQVFRPJykgeworICAgICAgICAgICAgICAgICRzdWIgPSAkdGFyZ2V0OworICAgICAgICAgICAgfSBlbHNpZiAoJHRhZyBlcSAnUlVMRVMnKSB7CisgICAgICAgICAgICAgICAgIyBHZXQgYW55IHdoaXRlc3BhY2Utb25seSBpbmRlbnQgb2ZmIHRoZSBmcm9udCBvZiB0aGlzIHRhZworICAgICAgICAgICAgICAgIG15ICRpbmRlbnQ7CisgICAgICAgICAgICAgICAgJGluZGVudCA9ICQxIGlmICgvXihccyspXCQkdGFnLyk7CisKKyAgICAgICAgICAgICAgICAjIFRoZSBydWxlcyBpbiB0aGUgYXJyYXkgYXJlIG5vdCBxdW90ZWQuICBXZSBuZWVkIHRvIHF1b3RlCisgICAgICAgICAgICAgICAgIyB0aGVtIGFuZCBhZGQgJysnIG9wZXJhdG9ycyBiZXR3ZWVuIHRoZW0uICBXZSBkbyBOT1QgbmVlZAorICAgICAgICAgICAgICAgICMgdG8gYWRkICc7JyBzZXBhcmF0b3JzLiAgV2UgRE8gbmVlZCB0byBzZXBhcmF0ZSB0cmFpbGluZworICAgICAgICAgICAgICAgICMgLy8gY29tbWVudHMgYW5kIGhhbmRsZSB0aGVtLgorICAgICAgICAgICAgICAgICRzdWIgPSBqb2luKCJcbiRpbmRlbnQiLCBtYXAoJnF1b3RlUnVsZSwgQCRydWxlcykpIC4KKyAgICAgICAgICAgICAgICAgICAgIlxuJGluZGVudFwiXCIiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVSUk9SIGluICRSQlRfVEVNUExBVEU6IFVua25vd24gdGFnICR0YWdcbiI7CisgICAgICAgICAgICAgICAgJHN1YiA9ICJbRVJST1I6VW5rbm93biB0YWcgXCQkdGFnXSI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzL1wkJHRhZy8kc3ViLzsKKyAgICAgICAgfQorICAgICAgICBwcmludCBPVVQ7CisgICAgfQorICAgIGNsb3NlKE9VVCk7CisgICAgY2xvc2UoUkJUX1RFTVBMQVRFKTsKKyAgICBwcmludCBTVERFUlIgIldyaXR0ZW46ICRPVVRcbiI7Cit9CisKK19fRU5EX18KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9pbmRpY0V4Y2VwdGlvbnMudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L2luZGljRXhjZXB0aW9ucy50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmQyNmRkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9kZXYvdG9vbC90cmFuc2xpdC9pbmRpY0V4Y2VwdGlvbnMudHh0CkBAIC0wLDAgKzEsMzc3IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworLyogUmVzZXJ2ZWQgaW4gYWxsIDkgc2NyaXB0cyAqLworCisvKgorICAgVGhlc2UgY29kZXBvaW50cyBhcmUgbWFya2VkIFJFU0VSVkVEIGluIGFsbCA5IGluZGljIHNjcmlwdHMuCisgICBUaGVyZSBzaG91bGQgbm90IGJlIGFueSB0cmFuc2xpdGVyYXRpb24gd29yayBvbiB0aGVzZSBjb2RlcG9pbnRzLCAKKyAgIGlmIHRoZXkgYXJlIGV2ZXIgZW5jb3VudGVyZWQuICBJZ25vcmUgdGhlc2UgY29kZXBvaW50cy4KKworICAgQ29tbW9uIHJlc2VydmVkIGNvZGVwb2ludHMgaW4gQUxMIDkgc2NyaXB0cyA6IChvZmZzZXQpCisgICAwMCwgMDQsIAorICAgM0EsIDNCLCAKKyAgIDRFLCA0RiwgCisgICA3QiwgN0MsIDdELCA3RSwgN0YKKyovCisKKy8qIFNjcmlwdC1zcGVjaWZpYyAqLworLyoKKyAgIFRoZXNlIGNvZGVwb2ludHMgYXJlIHNwZWNpZmljIHRvIHRoZWlyIHJlc3BlY3RpdmUgc2NyaXB0LgorICAgVHJhbnNsaXRlcmF0aW9uIG9mIHRoZXNlIGNvZGVwb2ludHMgZnJvbSBvbmUgc2NyaXB0IHRvIGFub3RoZXIgaXMgbWVhbmluZ2xlc3MuCisKKyAgIEZvciBleGFtcGxlLAorICAgICAgXHUwQjcwIChPcml5YSkgYW5kIFx1MEJGMCAoVGFtaWwpIGFyZSBub24tcmVzZXJ2ZWQgY29kZXBvaW50cyB3aXRoaW4gZWFjaCBzY3JpcHQuCisgICAgICBPbiB0cmFuc2xpdGVyYXRpbmcgXHUwQjcwIGZyb20gT3JpeWEgdG8gVGFtaWwsIHdlIHdpbGwgZ2V0IFx1MEJGMC4KKyAgICAgIEJ1dCBcdTBCNzAgaW4gT3JpeWEgcmVwcmVzZW50cyBJU1NIQVIsIHdoZXJlYXMgXHUwQkYwIGluIFRhbWlsIHJlcHJlc2VudHMgTlVNQkVSIFRFTi4KKworICAgXHUwOTcwIERldmFuYWdhcmkgYWJicmV2aWF0aW9uIHNpZ24KKworICAgXHUwOUYwIEJlbmdhbGkgbGV0dGVyIFJBIHdpdGggbWlkZGxlIGRpYWdvbmFsIChBc3NhbWVzZSkKKyAgIFx1MDlGMSBCZW5nYWxpIGxldHRlciBSQSB3aXRoIGxvd2VyIGRpYWdvbmFsIAorICAgICAgICAgICg9QmVuZ2FsaSBsZXR0ZXIgVkEgd2l0aCBsb3dlciBkaWFnb25hbCwgQXNzYW1lc2UpCisgICBcdTA5RjIgQmVuZ2FsaSBydXBlZSBtYXJrCisgICBcdTA5RjMgQmVuZ2FsaSBydXBlZSBzaWduCisgICBcdTA5RjQgQmVuZ2FsaSBjdXJyZW5jeSBudW1lcmF0b3Igb25lCisgICBcdTA5RjUgQmVuZ2FsaSBjdXJyZW5jeSBudW1lcmF0b3IgdHdvCisgICBcdTA5RjYgQmVuZ2FsaSBjdXJyZW5jeSBudW1lcmF0b3IgdGhyZWUKKyAgIFx1MDlGNyBCZW5nYWxpIGN1cnJlbmN5IG51bWVyYXRvciBmb3VyCisgICBcdTA5RjggQmVuZ2FsaSBjdXJyZW5jeSBudW1lcmF0b3Igb25lIGxlc3MgdGhhbiB0aGUgZGVub21pbmF0b3IKKyAgIFx1MDlGOSBCZW5nYWxpIGN1cnJlbmN5IGRlbm9taW5hdG9yIHNpeHRlZW4KKyAgIFx1MDlGQSBCZW5nYWxpIGlzc2hhcgorCisgICBcdTBBNzAgR3VybXVraGkgdGlwcGkgKG5hc2FsaXphdGlvbikKKyAgIFx1MEE3MSBHdXJtdWtoaSBhZGRhayAoZG91YmxlcyBmb2xsb3dpbmcgY29uc29uYW50KQorICAgXHUwQTcyIEd1cm11a2hpIGlyaSAoYmFzZSBmb3Igdm93ZWxzKQorICAgXHUwQTczIEd1cm11a2hpIHVyYSAoYmFzZSBmb3Igdm93ZWxzKQorICAgXHUwQTc0IEd1cm11a2hpIGVrIG9ua2FyIChHb2QgaXMgT25lKQorCisgICBcdTBCNzAgT3JpeWEgaXNzaGFyCisKKyAgIFx1MEJGMCBUYW1pbCBudW1iZXIgdGVuCisgICBcdTBCRjEgVGFtaWwgbnVtYmVyIG9uZSBodW5kcmVkCisgICBcdTBCRjIgVGFtaWwgbnVtYmVyIG9uZSB0aG91c2FuZAorKi8KKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICBOT1RFIDogPHVua25vd24+IGNvZGUgd2lsbCBtYXAgYmFjayB0byBpdHNlbGYgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgdGlsbCB3ZSBmaW5kIGEgZ29vZCBtYXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIERldmFuYWdhcmkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIlx1MDk1NT5cdTA5NTU7IiAgLy8gPHVua25vd24+IExlbmd0aCBNYXJrIC0gS2FubmFkYSAoXHUwQ0Q1KSwgVGVsdWd1IChcdTBDNTUpCisiXHUwOTU2Plx1MDk0ODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBEZXZhbmFnYXJpIFZvd2VsIFNpZ24gQUkKKyJcdTA5NTc+XHUwOTRDOyIgIC8vIEFVIExlbmd0aCBNYXJrIC0+IERldmFuYWdhcmkgVm93ZWwgU2lnbiBBVQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogQmVuZ2FsaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisiXHUwOThEPlx1MDk4RDsiICAvLyA8dW5rbm93bj4gaW5kZXBlbmRlbnQgdm93ZWwgQ2FuZHJhIEUKKyJcdTA5OEU+XHUwOThGOyIgIC8vIExldHRlciBTaG9ydCBFIC0+IExldHRlciBFCisiXHUwOTkxPlx1MDk5MzsiICAvLyBMZXR0ZXIgQ2FuZHJhIE8gLT4gTGV0dGVyIE8KKyJcdTA5OTI+XHUwOTkzOyIgIC8vIExldHRlciBTaG9ydCBPIC0+IExldHRlciBPCisiXHUwOUE5Plx1MDlBODsiICAvLyBMZXR0ZXIgTk5OQSAtPiBMZXR0ZXIgTkEKKyJcdTA5QjE+XHUwOUIwOyIgIC8vIExldHRlciBSUkEgLT4gTGV0dGVyIFJBCisiXHUwOUIzPlx1MDlCMjsiICAvLyBMZXR0ZXIgTExBIC0+IExldHRlciBMQQorIlx1MDlCND5cdTA5QjI7IiAgLy8gTGV0dGVyIExMTEEgLT4gTGV0dGVyIExBCisiXHUwOUI1Plx1MDlBQzsiICAvLyBMZXR0ZXIgVkEgLT4gTGV0dGVyIEJBCisiXHUwOUJEPlx1MDlCRDsiICAvLyA8dW5rbm93bj4gU2lnbiBBdmFncmFoYSAtIERldmFuYWdhcmkgKFx1MDkzRCkKKyJcdTA5QzU+XHUwOUM3OyIgIC8vIFZvd2VsIENhbmRyYSBFIC0+IFZvd2VsIEUKKyJcdTA5QzY+XHUwOUM3OyIgIC8vIFZvd2VsIFNob3J0IEUgLT4gVm93ZWwgRQorIlx1MDlDOT5cdTA5Q0I7IiAgLy8gVm93ZWwgQ2FuZHJhIE8gLT4gVm93ZWwgTworIlx1MDlDQT5cdTA5Q0I7IiAgLy8gVm93ZWwgU2hvcnQgTyAtPiBWb3dlbCBPCisiXHUwOUQwPlx1MDlEMDsiICAvLyA8dW5rbm93bj4gT00gLSBEZXZhbmFnYXJpIChcdTA5NTApLCBHdWphcmF0aSAoXHUwQUQwKQorIlx1MDlEMT5cdTA5RDE7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MSkKKyJcdTA5RDI+XHUwOUQyOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTIpCisiXHUwOUQzPlx1MDlEMzsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTUzKQorIlx1MDlEND5cdTA5RDQ7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1NCkKKyJcdTA5RDU+XHUwOUQ1OyIgIC8vIDx1bmtub3duPiBMZW5ndGggTWFyayAtIEthbm5hZGEgKFx1MENENSksIFRlbHVndSAoXHUwQzU1KQorIlx1MDlENj5cdTA5Qzg7IiAgLy8gQUkgTGVuZ3RoIE1hcmsgLT4gQmVuZ2FsaSBWb3dlbCBTaWduIEFJCisiXHUwOUQ4Plx1MDk5NTsiICAvLyBMZXR0ZXIgUUEgLT4gTGV0dGVyIEtBCisiXHUwOUQ5Plx1MDk5NjsiICAvLyBMZXR0ZXIgS0hIQSAtPiBMZXR0ZXIgS0hBCisiXHUwOURBPlx1MDk5NzsiICAvLyBMZXR0ZXIgR0hIQSAtPiBMZXR0ZXIgR0EKKyJcdTA5REI+XHUwOTlDOyIgIC8vIExldHRlciBaQSAtPiBMZXR0ZXIgSkEKKyJcdTA5REU+XHUwOUFCOyIgIC8vIExldHRlciBGQSAtPiBMZXR0ZXIgUEhBCisiXHUwOUU0Plx1MDlFNDsiICAvLyA8dW5rbm93bj4gRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjQpCisiXHUwOUU1Plx1MDlFNTsiICAvLyA8dW5rbm93bj4gRG91YmxlIERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY1KQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogR3VybXVraGkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisiXHUwQTAxPlx1MEEwMjsiCisiXHUwQTAzPlx1MEEwMzsiICAvLyA8dW5rbm93bj4gU2lnbiBWaXNhcmdhIC0gRGV2YW5hZ2FyaSAoXHUwOTAzKSAmIHRoZSByZXN0CisiXHUwQTBCPlx1MEEzMFx1MEEzRjsiCisiXHUwQTBDPlx1MEEwNzsiCisiXHUwQTBEPlx1MEExMDsiCisiXHUwQTBFPlx1MEEwRjsiCisiXHUwQTExPlx1MEExNDsiCisiXHUwQTEyPlx1MEExMzsiCisiXHUwQTI5Plx1MEEyODsiCisiXHUwQTMxPlx1MEEzMDsiCisiXHUwQTM0Plx1MEEzMzsiCisiXHUwQTM3Plx1MEEzNjsiCisiXHUwQTNEPlx1MEEzRDsiICAvLyA8dW5rbm93bj4gU2lnbiBBdmFncmFoYSAtIERldmFuYWdhcmkgKFx1MDkzRCkKKyJcdTBBNDM+XHUwQTQzOyIgIC8vIDx1bmtub3duPiBWb2NhbGljIFIgLSBEZXZhbmFnYXJpIChcdTA5NDMpCisiXHUwQTQ0Plx1MEE0NDsiICAvLyA8dW5rbm93bj4gVm9jYWxpYyBSUiAtIERldmFuYWdhcmkgKFx1MDk0NCkKKyJcdTBBNDU+XHUwQTQ4OyIKKyJcdTBBNDY+XHUwQTQ3OyIKKyJcdTBBNDk+XHUwQTRDOyIKKyJcdTBBNEE+XHUwQTRCOyIKKyJcdTBBNTA+XHUwQTUwOyIgIC8vIDx1bmtub3duPiBPTSAtIERldmFuYWdhcmkgKFx1MDk1MCksIEd1amFyYXRpIChcdTBBRDApCisiXHUwQTUxPlx1MEE1MTsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUxKQorIlx1MEE1Mj5cdTBBNTI7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MikKKyJcdTBBNTM+XHUwQTUzOyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTMpCisiXHUwQTU0Plx1MEE1NDsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTU0KQorIlx1MEE1NT5cdTBBNTU7IiAgLy8gPHVua25vd24+IExlbmd0aCBNYXJrIC0gS2FubmFkYSAoXHUwQ0Q1KSwgVGVsdWd1IChcdTBDNTUpCisiXHUwQTU2Plx1MEE0ODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBHdXJtdWtoaSBWb3dlbCBTaWduIEFJCisiXHUwQTU3Plx1MEE0QzsiICAvLyBBVSBMZW5ndGggTWFyayAtPiBHdXJtdWtoaSBWb3dlbCBTaWduIEFVCisiXHUwQTU4Plx1MEExNVx1MEEzQzsiCisiXHUwQTVEPlx1MEEyMlx1MEEzQzsiICAvLyBMZXR0ZXIgUkhBIC0+IEd1cm11a2hpIGxldHRlciBkZGhhIChcdTBBMjIpICsgbnVrdGEgKFx1MEEzQykKKyJcdTBBNUY+XHUwQTJGOyIKKyJcdTBBNjA+XHUwQTMwXHUwQTNGOyIKKyJcdTBBNjE+XHUwQTA4XHUwQTNDOyIKKyJcdTBBNjI+XHUwQTNGXHUwQTNDOyIKKyJcdTBBNjM+XHUwQTQwXHUwQTNDOyIKKyJcdTBBNjQ+XHUwQTY0OyIgIC8vIDx1bmtub3duPiBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NCkKKyJcdTBBNjU+XHUwQTY1OyIgIC8vIDx1bmtub3duPiBEb3VibGUgRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjUpCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBHdWphcmF0aSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisiXHUwQThDPlx1MEFCMlx1MEFDMzsiCisiXHUwQThFPlx1MEE4RDsiCisiXHUwQTkyPlx1MEE5MTsiCisiXHUwQUE5Plx1MEFBODsiCisiXHUwQUIxPlx1MEFCMDsiCisiXHUwQUI0Plx1MEFCMzsiCisiXHUwQUM2Plx1MEFDNTsiCisiXHUwQUNBPlx1MEFDOTsiCisiXHUwQUQxPlx1MEFEMTsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUxKQorIlx1MEFEMj5cdTBBRDI7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MikKKyJcdTBBRDM+XHUwQUQzOyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTMpCisiXHUwQUQ0Plx1MEFENDsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTU0KQorIlx1MEFENT5cdTBBRDU7IiAgLy8gPHVua25vd24+IExlbmd0aCBNYXJrIC0gS2FubmFkYSAoXHUwQ0Q1KSwgVGVsdWd1IChcdTBDNTUpCisiXHUwQUQ2Plx1MEFDODsiICAvLyBBSSBMZW5ndGggTWFyayAtPiBHdWphcmF0aSBWb3dlbCBTaWduIEFJCisiXHUwQUQ3Plx1MEFDQzsiICAvLyBBVSBMZW5ndGggTWFyayAtPiBHdWphcmF0aSBWb3dlbCBTaWduIEFVCisiXHUwQUQ4Plx1MEE5NVx1MEFCQzsiCisiXHUwQUQ5Plx1MEE5Nlx1MEFCQzsiCisiXHUwQURBPlx1MEE5N1x1MEFCQzsiCisiXHUwQURCPlx1MEE5Q1x1MEFCQzsiCisiXHUwQURDPlx1MEFBMVx1MEFCQzsiCisiXHUwQUREPlx1MEFBMlx1MEFCQzsiCisiXHUwQURFPlx1MEFBQlx1MEFCQzsiCisiXHUwQURGPlx1MEFBRlx1MEFCQzsiCisiXHUwQUUxPlx1MEFCMlx1MEFDMzsiCisiXHUwQUUyPlx1MEFCRlx1MEFCQzsiCisiXHUwQUUzPlx1MEFDMFx1MEFCQzsiCisiXHUwQUU0Plx1MEFFNDsiICAvLyA8dW5rbm93bj4gRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjQpCisiXHUwQUU1Plx1MEFFNTsiICAvLyA8dW5rbm93bj4gRG91YmxlIERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY1KQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogT3JpeWEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIlx1MEIwRD5cdTBCMEY7IgorIlx1MEIwRT5cdTBCMEY7IgorIlx1MEIxMT5cdTBCMTM7IgorIlx1MEIxMj5cdTBCMTM7IgorIlx1MEIyOT5cdTBCMjg7IgorIlx1MEIzMT5cdTBCMzA7IgorIlx1MEIzND5cdTBCMzM7IgorIlx1MEIzNT5cdTBCMkM7IiAgLy8gTGV0dGVyIFZBIC0+IE9yaXlhIExldHRlciBCQQorIlx1MEI0ND5cdTBCNDNcdTBCM0M7IgorIlx1MEI0NT5cdTBCNDc7IgorIlx1MEI0Nj5cdTBCNDc7IgorIlx1MEI0OT5cdTBCNEI7IgorIlx1MEI0QT5cdTBCNEI7IgorIlx1MEI1MD5cdTBCMTNcdTBCMDE7IgorIlx1MEI1MT5cdTBCNTE7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MSkKKyJcdTBCNTI+XHUwQjUyOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTIpCisiXHUwQjUzPlx1MEI1MzsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTUzKQorIlx1MEI1ND5cdTBCNTQ7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1NCkKKyJcdTBCNTU+XHUwQjU1OyIgIC8vIDx1bmtub3duPiBMZW5ndGggTWFyayAtIEthbm5hZGEgKFx1MENENSksIFRlbHVndSAoXHUwQzU1KQorIlx1MEI1OD5cdTBCMTVcdTBCM0M7IgorIlx1MEI1OT5cdTBCMTZcdTBCM0M7IgorIlx1MEI1QT5cdTBCMTdcdTBCM0M7IgorIlx1MEI1Qj5cdTBCMUNcdTBCM0M7IgorIlx1MEI1RT5cdTBCMkJcdTBCM0M7IgorIlx1MEI2Mj5cdTBCNTZcdTBCM0M7IgorIlx1MEI2Mz5cdTBCNTdcdTBCM0M7IgorIlx1MEI2ND5cdTBCNjQ7IiAgLy8gPHVua25vd24+IERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY0KQorIlx1MEI2NT5cdTBCNjU7IiAgLy8gPHVua25vd24+IERvdWJsZSBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NSkKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFRhbWlsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIlx1MEI4MT5cdTBCODE7IiAgLy8gPHVua25vd24+IENhbmRyYWJpbmR1IC0gRGV2YW5hZ2FyaSAoXHUwOTAxKSAsZXRjCisiXHUwQjhCPlx1MEJCMFx1MEJCRjsiCisiXHUwQjhDPlx1MEI4NzsiCisiXHUwQjhEPlx1MEI4NjsiCisiXHUwQjkxPlx1MEI4NjsiCisiXHUwQjk2Plx1MEI5NTsiCisiXHUwQjk3Plx1MEI5NTsiCisiXHUwQjk4Plx1MEI5NTsiCisiXHUwQjlCPlx1MEI5QTsiCisiXHUwQjlEPlx1MEI5QTsiCisiXHUwQkEwPlx1MEI5RjsiCisiXHUwQkExPlx1MEI5RjsiCisiXHUwQkEyPlx1MEI5RjsiCisiXHUwQkE1Plx1MEJBNDsiCisiXHUwQkE2Plx1MEJBNDsiCisiXHUwQkE3Plx1MEJBNDsiCisiXHUwQkFCPlx1MEJBQTsiCisiXHUwQkFDPlx1MEJBQTsiCisiXHUwQkFEPlx1MEJBQTsiCisiXHUwQkI2Plx1MEJCNzsiCisiXHUwQkJDPlx1MEJCQzsiICAvLyA8dW5rbm93bj4gTnVrdGEKKyJcdTBCQkQ+XHUwQkJEOyIgIC8vIDx1bmtub3duPiBTaWduIEF2YWdyYWhhIC0gRGV2YW5hZ2FyaSAoXHUwOTNEKQorIlx1MEJDMz5cdTBCQ0RcdTBCQjBcdTBCQkY7IgorIlx1MEJDND5cdTBCQ0RcdTBCQjBcdTBCQkY7IgorIlx1MEJDNT5cdTBCQkU7IgorIlx1MEJDOT5cdTBCQkU7IgorIlx1MEJEMD5cdTBCOTNcdTBCQUVcdTBCQ0Q7IgorIlx1MEJEMT5cdTBCRDE7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MSkKKyJcdTBCRDI+XHUwQkQyOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTIpCisiXHUwQkQzPlx1MEJEMzsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTUzKQorIlx1MEJEND5cdTBCRDQ7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1NCkKKyJcdTBCRDU+XHUwQkQ1OyIgIC8vIDx1bmtub3duPiBMZW5ndGggTWFyayAtIEthbm5hZGEgKFx1MENENSksIFRlbHVndSAoXHUwQzU1KQorIlx1MEJENj5cdTBCQzg7IiAgLy8gQUkgTGVuZ3RoIE1hcmsgLT4gVGFtaWwgVm93ZWwgU2lnbiBBSQorIlx1MEJEOD5cdTBCOTU7IgorIlx1MEJEOT5cdTBCOTU7IgorIlx1MEJEQT5cdTBCOTU7IgorIlx1MEJEQj5cdTBCOUM7IgorIlx1MEJEQz5cdTBCOUY7IgorIlx1MEJERD5cdTBCOUY7IgorIlx1MEJERT5cdTBCQUE7IgorIlx1MEJERj5cdTBCQUY7IgorIlx1MEJFMD5cdTBCQjBcdTBCQkY7IgorIlx1MEJFMT5cdTBCODg7IgorIlx1MEJFMj5cdTBCRTI7IiAgLy8gPHVua25vd24+IFZvY2FsaWMgTCAtIERldmFuYWdhcmkgKFx1MDk2MikKKyJcdTBCRTM+XHUwQkUzOyIgIC8vIDx1bmtub3duPiBWb2NhbGljIExMIC0gRGV2YW5hZ2FyaSAoXHUwOTYzKQorIlx1MEJFND5cdTBCRTQ7IiAgLy8gPHVua25vd24+IERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY0KQorIlx1MEJFNT5cdTBCRTU7IiAgLy8gPHVua25vd24+IERvdWJsZSBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NSkKKyJcdTBCRTY+XHUwMDMwOyIgIC8vIFpFUk8gLSBEaWdpdCBaRVJPCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBUZWx1Z3UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyJcdTBDMEQ+XHUwQzBFOyIKKyJcdTBDMTE+XHUwQzEyOyIKKyJcdTBDMjk+XHUwQzI4OyIKKyJcdTBDMzQ+XHUwQzMzOyIKKyJcdTBDM0M+XHUwQzNDOyIgIC8vIDx1bmtub3duPiBOdWt0YQorIlx1MEMzRD5cdTBDM0Q7IiAgLy8gPHVua25vd24+IFNpZ24gQXZhZ3JhaGEgLSBEZXZhbmFnYXJpIChcdTA5M0QpCisiXHUwQzQ1Plx1MEM0NjsiCisiXHUwQzQ5Plx1MEM0QTsiCisiXHUwQzUwPlx1MEMxM1x1MEMwMjsiCisiXHUwQzUxPlx1MEM1MTsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUxKQorIlx1MEM1Mj5cdTBDNTI7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MikKKyJcdTBDNTM+XHUwQzUzOyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTMpCisiXHUwQzU0Plx1MEM1NDsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTU0KQorIlx1MEM1Nz5cdTBDNEM7IgorIlx1MEM1OD5cdTBDMTU7IgorIlx1MEM1OT5cdTBDMTY7IgorIlx1MEM1QT5cdTBDMTc7IgorIlx1MEM1Qj5cdTBDMUM7IgorIlx1MEM1Qz5cdTBDMjE7IgorIlx1MEM1RD5cdTBDMjI7IgorIlx1MEM1RT5cdTBDMkI7IgorIlx1MEM1Rj5cdTBDMkY7IgorIlx1MEM2Mj5cdTBDM0Y7IgorIlx1MEM2Mz5cdTBDNDA7IgorIlx1MEM2ND5cdTBDNjQ7IiAgLy8gPHVua25vd24+IERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY0KQorIlx1MEM2NT5cdTBDNjU7IiAgLy8gPHVua25vd24+IERvdWJsZSBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NSkKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEthbm5hZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIlx1MEM4MT5cdTBDODI7IgorIlx1MEM4RD5cdTBDOEU7IgorIlx1MEM5MT5cdTBDOTI7IgorIlx1MENBOT5cdTBDQTg7IgorIlx1MENCND5cdTBDQjM7IgorIlx1MENCQz5cdTBDQkM7IiAgLy8gPHVua25vd24+IE51a3RhCisiXHUwQ0JEPlx1MENCRDsiICAvLyA8dW5rbm93bj4gU2lnbiBBdmFncmFoYSAtIERldmFuYWdhcmkgKFx1MDkzRCkKKyJcdTBDQzU+XHUwQ0M2OyIKKyJcdTBDQzk+XHUwQ0NBOyIKKyJcdTBDRDA+XHUwQzkzXHUwQzgyOyIKKyJcdTBDRDE+XHUwQ0QxOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTEpCisiXHUwQ0QyPlx1MENEMjsiICAvLyA8dW5rbm93bj4gU3RyZXNzIC0gRGV2YW5hZ2FyaSAoXHUwOTUyKQorIlx1MENEMz5cdTBDRDM7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1MykKKyJcdTBDRDQ+XHUwQ0Q0OyIgIC8vIDx1bmtub3duPiBBY2NlbnQgLSBEZXZhbmFnYXJpIChcdTA5NTQpCisiXHUwQ0Q3Plx1MENDQzsiCisiXHUwQ0Q4Plx1MEM5NTsiCisiXHUwQ0Q5Plx1MEM5NjsiCisiXHUwQ0RBPlx1MEM5NzsiCisiXHUwQ0RCPlx1MEM5QzsiCisiXHUwQ0RDPlx1MENBMTsiCisiXHUwQ0REPlx1MENBMjsiCisiXHUwQ0RGPlx1MENBRjsiCisiXHUwQ0UyPlx1MENCRjsiCisiXHUwQ0UzPlx1MENDMDsiCisiXHUwQ0U0Plx1MENFNDsiICAvLyA8dW5rbm93bj4gRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjQpCisiXHUwQ0U1Plx1MENFNTsiICAvLyA8dW5rbm93bj4gRG91YmxlIERhbmRhIC0gRGV2YW5hZ2FyaSAoXHUwOTY1KQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogTWFsYXlhbGFtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisiXHUwRDAxPlx1MEQwMjsiCisiXHUwRDBEPlx1MEQwNjsiCisiXHUwRDExPlx1MEQxMzsiCisiXHUwRDI5Plx1MEQyODsiCisiXHUwRDNDPlx1MEQzQzsiICAvLyA8dW5rbm93bj4gTnVrdGEKKyJcdTBEM0Q+XHUwRDNEOyIgIC8vIDx1bmtub3duPiBTaWduIEF2YWdyYWhhIC0gRGV2YW5hZ2FyaSAoXHUwOTNEKQorIlx1MEQ0ND5cdTBENDQ7IiAgLy8gPHVua25vd24+IFZvY2FsaWMgUlIgLSBEZXZhbmFnYXJpIChcdTA5NDQpCisiXHUwRDQ1Plx1MEQzRTsiCisiXHUwRDQ5Plx1MEQ0QjsiCisiXHUwRDUwPlx1MEQ1MDsiICAvLyA8dW5rbm93bj4gT00gLSBEZXZhbmFnYXJpIChcdTA5NTApLCBHdWphcmF0aSAoXHUwQUQwKQorIlx1MEQ1MT5cdTBENTE7IiAgLy8gPHVua25vd24+IFN0cmVzcyAtIERldmFuYWdhcmkgKFx1MDk1MSkKKyJcdTBENTI+XHUwRDUyOyIgIC8vIDx1bmtub3duPiBTdHJlc3MgLSBEZXZhbmFnYXJpIChcdTA5NTIpCisiXHUwRDUzPlx1MEQ1MzsiICAvLyA8dW5rbm93bj4gQWNjZW50IC0gRGV2YW5hZ2FyaSAoXHUwOTUzKQorIlx1MEQ1ND5cdTBENTQ7IiAgLy8gPHVua25vd24+IEFjY2VudCAtIERldmFuYWdhcmkgKFx1MDk1NCkKKyJcdTBENTU+XHUwRDU1OyIgIC8vIDx1bmtub3duPiBMZW5ndGggTWFyayAtIEthbm5hZGEgKFx1MENENSksIFRlbHVndSAoXHUwQzU1KQorIlx1MEQ1Nj5cdTBENDg7IiAgLy8gQUkgTGVuZ3RoIE1hcmsgLT4gTWFsYXlhbGFtIFZvd2VsIFNpZ24gQUkKKyJcdTBENTg+XHUwRDE1OyIKKyJcdTBENTk+XHUwRDE2OyIKKyJcdTBENUE+XHUwRDE3OyIKKyJcdTBENUI+XHUwRDFDOyIKKyJcdTBENUM+XHUwRDIxOyIKKyJcdTBENUQ+XHUwRDIyOyIKKyJcdTBENUU+XHUwRDJCOyIKKyJcdTBENUY+XHUwRDJGOyIKKyJcdTBENjI+XHUwRDYyOyIgIC8vIDx1bmtub3duPiBWb2NhbGljIEwgLSBEZXZhbmFnYXJpIChcdTA5NjIpCisiXHUwRDYzPlx1MEQ2MzsiICAvLyA8dW5rbm93bj4gVm9jYWxpYyBMTCAtIERldmFuYWdhcmkgKFx1MDk2MykKKyJcdTBENjQ+XHUwRDY0OyIgIC8vIDx1bmtub3duPiBEYW5kYSAtIERldmFuYWdhcmkgKFx1MDk2NCkKKyJcdTBENjU+XHUwRDY1OyIgIC8vIDx1bmtub3duPiBEb3VibGUgRGFuZGEgLSBEZXZhbmFnYXJpIChcdTA5NjUpCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvcmJ0VGVtcGxhdGUudHh0IGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L3JidFRlbXBsYXRlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNTQ5YmJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L3JidFRlbXBsYXRlLnR4dApAQCAtMCwwICsxLDI2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uCisqIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqID4gVEhJUyBGSUxFIFdBUyBNQUNISU5FIEdFTkVSQVRFRCA8CisqID4gICAgICAgRE8gTk9UIEVESVQgQlkgSEFORCAgICAgICA8CisqID4gICAgICBSVU4gVE9PTCBUTyBSRUdFTkVSQVRFICAgICA8CisqIFRvb2w6ICRUT09MCisqIENyZWF0aW9uIGRhdGU6ICREQVRFCisqLworcGFja2FnZSBjb20uaWJtLnRleHQucmVzb3VyY2VzOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIFRyYW5zbGl0ZXJhdGlvblJ1bGVfJFNDUklQVEZST01fJFNDUklQVFRPIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgTGlzdFJlc291cmNlQnVuZGxlCisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJSdWxlIiwKKyAgICAgICAgICAgICAgJFJVTEVTCisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L3ZhcnN1Yi5iYXQgYi9zcmMvY29tL2libS9pY3UvZGV2L3Rvb2wvdHJhbnNsaXQvdmFyc3ViLmJhdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZDM0MmM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2Rldi90b29sL3RyYW5zbGl0L3ZhcnN1Yi5iYXQKQEAgLTAsMCArMSw4MSBAQAorIy8qKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyMgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICovCisKK0ByZW0gPSAnLS0qLVBlcmwtKi0tCitAZWNobyBvZmYKK2lmICIlT1MlIiA9PSAiV2luZG93c19OVCIgZ290byBXaW5OVAorcGVybCAteCAtUyAiJTAiICUxICUyICUzICU0ICU1ICU2ICU3ICU4ICU5Citnb3RvIGVuZG9mcGVybAorOldpbk5UCitwZXJsIC14IC1TICIlMCIgJSoKK2lmIE5PVCAiJUNPTVNQRUMlIiA9PSAiJVN5c3RlbVJvb3QlXHN5c3RlbTMyXGNtZC5leGUiIGdvdG8gZW5kb2ZwZXJsCitpZiAlZXJyb3JsZXZlbCUgPT0gOTAwOSBlY2hvIFlvdSBkbyBub3QgaGF2ZSBQZXJsIGluIHlvdXIgUEFUSC4KK2dvdG8gZW5kb2ZwZXJsCitAcmVtICc7CisjIXBlcmwKKyNsaW5lIDE0CisKKyMgVXNhZ2U6IHBlcmwgdmFyc3ViLmJhdCBbLW58LW5yXSA8aW5maWxlPiA8b3V0ZmlsZT4KKyMKKyMgU3Vic3RpdHV0ZXMgdmFyaWFibGVzIGludG8gcnVsZXMgYW5kIGRlbGV0ZXMgdmFyaWFibGUgZGVmaW5pdGlvbgorIyBzdGF0ZW1lbnRzLiAgVmFyaWFibGVzIHRoYXQgZXhwYW5kIHRvIFVuaWNvZGVTZXRzIGFyZSBOT1QKKyMgc3Vic3RpdHV0ZWQuCisjCisjICAtbiAgIEFmdGVyd2FyZHMsIHJ1biBuYXRpdmUyYXNjaWkgLWVuY29kaW5nIFVURjgKKyMgIC1uciAgQWZ0ZXJ3YXJkcywgcnVuIG5hdGl2ZTJhc2NpaSAtZW5jb2RpbmcgVVRGOCAtcmV2ZXJzZQorCiskTjJBID0gMDsKKworJElOID0gc2hpZnQ7CitpZiAoJElOID1+IC9eLW4vKSB7CisgICAgJE4yQSA9IDE7CisgICAgJE4yQW9wdGlvbiA9ICgkSU4gZXEgJy1ucicpID8gIiAtcmV2ZXJzZSAiIDogIiI7CisgICAgJElOID0gc2hpZnQ7Cit9CiskT1VUID0gc2hpZnQ7CisKK2lmICghKCRJTiAmJiAkT1VUKSkgeworICAgIGRpZSAiVXNhZ2U6ICQwIFstbnwtbnJdIDxpbmZpbGU+IDxvdXRmaWxlPiI7Cit9CisKK29wZW4oSU4pIG9yIGRpZSAiQ2FuJ3Qgb3BlbiAkSU46ICQhIjsKK29wZW4oT1VULCAiPiRPVVQiKSBvciBkaWUgIkNhbid0IG9wZW4gJE9VVDogJCEiOworCit3aGlsZSAoPElOPikgeworICAgIGlmICgvXlxzKlwkKFthLXpBLVowLTlfXSspXHMqPVxzKihbXjtcI10rKVxzKjtccyooXCMuKik/JC8pIHsKKyAgICAgICAgIyBUaGlzIGxvb2tzIGxpa2UgYSB2YXJpYWJsZSBkZWZpbml0aW9uCisgICAgICAgIG15ICgkdmFyLCAkZGVmKSA9ICgkMSwgJDIpOworICAgICAgICAjIERvbid0IHN1YnN0aXR1dGUgVW5pY29kZVNldCB2YXJzCisgICAgICAgIGlmICgkZGVmICF+IC9eXFsvKSB7CisgICAgICAgICAgICBpZiAoZXhpc3RzICRWQVJ7JHZhcn0pIHsKKyAgICAgICAgICAgICAgICBwcmludCBTVERFUlIgIkVycm9yOiBEdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiAkdmFyXG4iOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAkVkFSeyR2YXJ9ID0gJGRlZjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgIyBEbyB2YXJpYWJsZSBzdWJzdGl0dXRpb25zLCBhbmQgb3V0cHV0IGxpbmUKKyAgICBmb3JlYWNoIG15ICR2YXIgKGtleXMgJVZBUikgeworICAgICAgICBteSAkZGVmID0gJFZBUnskdmFyfTsKKyAgICAgICAgcy9cJCR2YXJcYi8kZGVmL2c7CisgICAgfQorICAgIHByaW50IE9VVDsKK30KKworY2xvc2UoT1VUKTsKK2Nsb3NlKElOKTsKKworaWYgKCROMkEpIHsKKyAgICBgbmF0aXZlMmFzY2lpIC1lbmNvZGluZyBVVEY4ICROMkFvcHRpb24gJE9VVCAkT1VULm5hdGl2ZTJhc2NpaWA7CisgICAgdW5saW5rICRPVVQ7CisgICAgcmVuYW1lICIkT1VULm5hdGl2ZTJhc2NpaSIsICRPVVQ7Cit9CisKK19fRU5EX18KKzplbmRvZnBlcmwKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0Fzc2VydC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQXNzZXJ0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q4YjExMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0Fzc2VydC5qYXZhCkBAIC0wLDAgKzEsMjMgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKKy8vIDEuMyBjb21wYXRpYmlsaXR5IGxheWVyCitwdWJsaWMgY2xhc3MgQXNzZXJ0IHsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgZmFpbChFeGNlcHRpb24gZSkgeworICAgICAgICBmYWlsKGUudG9TdHJpbmcoKSk7IC8vIGNhbid0IHdyYXAgZXhjZXB0aW9ucyBpbiBqZGsgMS4zCisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBmYWlsKFN0cmluZyBtc2cpIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiZmFpbHVyZSAnIiArIG1zZyArICInIik7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhc3NydChib29sZWFuIHZhbCkgeworICAgICAgICBpZiAoIXZhbCkgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiYXNzZXJ0IGZhaWxlZCIpOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXNzcnQoU3RyaW5nIG1zZywgYm9vbGVhbiB2YWwpIHsKKyAgICAgICAgaWYgKCF2YWwpIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oImFzc2VydCAnIiArIG1zZyArICInIGZhaWxlZCIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0JPQ1UuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0JPQ1UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGIyZTg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQk9DVS5qYXZhCkBAIC0wLDAgKzEsMzc5IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVDaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiA8cD5CaW5hcnkgT3JkZXJlZCBDb21wcmVzc2lvbiBmb3IgVW5pY29kZTwvcD4KKyAqIAorICogPHA+VXNlcnMgYXJlIHN0cm9uZ2x5IGVuY291cmFnZWQgdG8gcmVhZCB0aGUgSUNVIHBhcGVyIG9uIAorICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvZG9jcy9wYXBlcnMvYmluYXJ5X29yZGVyZWRfY29tcHJlc3Npb25fZm9yX3VuaWNvZGUuaHRtbCI+CisgKiBCT0NVPC9hPiBiZWZvcmUgYXR0ZW1wdGluZyB0byB1c2UgdGhpcyBjbGFzcy48L3A+CisgKiAKKyAqIDxwPkJPQ1UgaXMgdXNlZCB0byBjb21wcmVzcyB1bmljb2RlIHRleHQgaW50byBhIHN0cmVhbSBvZiB1bnNpZ25lZAorICogYnl0ZXMuICBGb3IgbWFueSBraW5kcyBvZiB0ZXh0IHRoZSBjb21wcmVzc2lvbiBjb21wYXJlcyBmYXZvcmFibHkKKyAqIHRvIFVURi04LCBhbmQgZm9yIHNvbWUga2luZHMgb2YgdGV4dCAoc3VjaCBhcyBDSkspIGl0IGRvZXMgYmV0dGVyLgorICogVGhlIHJlc3VsdGluZyBieXRlcyB3aWxsIGNvbXBhcmUgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIG9yaWdpbmFsCisgKiBjb2RlIHBvaW50cy4gIFRoZSBieXRlIHN0cmVhbSBkb2VzIG5vdCBjb250YWluIHRoZSB2YWx1ZXMgMCwgMSwgb3IKKyAqIDIuPC9wPgorICogCisgKiA8cD5PbmUgZXhhbXBsZSBvZiBhIHVzZSBvZiBCT0NVIGlzIGluIHtAbGluayAKKyAqIGNvbS5pYm0uaWN1LnRleHQuQ29sbGF0b3IjZ2V0Q29sbGF0aW9uS2V5KFN0cmluZyl9IGZvciBhIFJ1bGVCYXNlZENvbGxhdG9yIG9iamVjdCB3aXRoIAorICogY29sbGF0aW9uIHN0cmVuZ3RoIElERU5USUNBTC4gVGhlIHJlc3VsdCBDb2xsYXRpb25LZXkgd2lsbCBjb25zaXN0IG9mIHRoZSAKKyAqIGNvbGxhdGlvbiBvcmRlciBvZiB0aGUgc291cmNlIHN0cmluZyBmb2xsb3dlZCBieSB0aGUgQk9DVSByZXN1bHQgb2YgdGhlIAorICogc291cmNlIHN0cmluZy4gCisgKiA8L3A+IAorICoKKyAqIDxwPlVubGlrZSBhIFVURiBlbmNvZGluZywgQk9DVS1jb21wcmVzc2VkIHRleHQgaXMgbm90IHN1aXRhYmxlIGZvcgorICogcmFuZG9tIGFjY2Vzcy48L3A+CisgKiAKKyAqIDxwPk1ldGhvZDogU2xvcGUgRGV0ZWN0aW9uPGJyPiBSZW1lbWJlciB0aGUgcHJldmlvdXMgY29kZSBwb2ludAorICogKGluaXRpYWwgMCkuICBGb3IgZWFjaCBjb2RlIHBvaW50IGluIHRoZSBzdHJpbmcsIGVuY29kZSB0aGUKKyAqIGRpZmZlcmVuY2Ugd2l0aCB0aGUgcHJldmlvdXMgb25lLiAgU2ltaWxhciB0byBhIFVURiwgdGhlIGxlbmd0aCBvZgorICogdGhlIGJ5dGUgc2VxdWVuY2UgaXMgZW5jb2RlZCBpbiB0aGUgbGVhZCBieXRlcy4gIFVubGlrZSBhIFVURiwgdGhlCisgKiB0cmFpbCBieXRlIHZhbHVlcyBtYXkgb3ZlcmxhcCB3aXRoIGxlYWQvc2luZ2xlIGJ5dGUgdmFsdWVzLiAgVGhlCisgKiBzaWduZWRuZXNzIG9mIHRoZSBkaWZmZXJlbmNlIG11c3QgYmUgZW5jb2RlZCBhcyB0aGUgbW9zdAorICogc2lnbmlmaWNhbnQgcGFydC48L3A+CisgKgorICogPHA+V2UgZW5jb2RlIGRpZmZlcmVuY2VzIHdpdGggZmV3IGJ5dGVzIGlmIHRoZWlyIGFic29sdXRlIHZhbHVlcworICogYXJlIHNtYWxsLiAgRm9yIGNvcnJlY3Qgb3JkZXJpbmcsIHdlIG11c3QgdHJlYXQgdGhlIGVudGlyZSB2YWx1ZQorICogcmFuZ2UgLTEwZmZmZi4uKzEwZmZmZiBpbiBhc2NlbmRpbmcgb3JkZXIsIHdoaWNoIGZvcmJpZHMgZW5jb2RpbmcKKyAqIHRoZSBzaWduIGFuZCB0aGUgYWJzb2x1dGUgdmFsdWUgc2VwYXJhdGVseS4gSW5zdGVhZCwgd2Ugc3BsaXQgdGhlCisgKiBsZWFkIGJ5dGUgcmFuZ2UgaW4gdGhlIG1pZGRsZSBhbmQgZW5jb2RlIG5vbi1uZWdhdGl2ZSB2YWx1ZXMgZ29pbmcKKyAqIHVwIGFuZCBuZWdhdGl2ZSB2YWx1ZXMgZ29pbmcgZG93bi48L3A+CisgKgorICogPHA+Rm9yIHZlcnkgc21hbGwgYWJzb2x1dGUgdmFsdWVzLCB0aGUgZGlmZmVyZW5jZSBpcyBhZGRlZCB0byBhCisgKiBtaWRkbGUgYnl0ZSB2YWx1ZSBmb3Igc2luZ2xlLWJ5dGUgZW5jb2RlZCBkaWZmZXJlbmNlcy4gIEZvcgorICogc29tZXdoYXQgbGFyZ2VyIGFic29sdXRlIHZhbHVlcywgdGhlIGRpZmZlcmVuY2UgaXMgZGl2aWRlZCBieSB0aGUKKyAqIG51bWJlciBvZiBieXRlIHZhbHVlcyBhdmFpbGFibGUsIHRoZSBtb2R1bG8gaXMgdXNlZCBmb3Igb25lIHRyYWlsCisgKiBieXRlLCBhbmQgdGhlIHJlbWFpbmRlciBpcyBhZGRlZCB0byBhIGxlYWQgYnl0ZSBhdm9pZGluZyB0aGUKKyAqIHNpbmdsZS1ieXRlIHJhbmdlLiAgRm9yIGxhcmdlIGFic29sdXRlIHZhbHVlcywgdGhlIGRpZmZlcmVuY2UgaXMKKyAqIHNpbWlsYXJseSBlbmNvZGVkIGluIHRocmVlIGJ5dGVzLiAoU3luIFdlZSwgSSBuZWVkIGV4YW1wbGVzCisgKiBoZXJlLik8L3A+CisgKgorICogPHA+Qk9DVSBkb2VzIG5vdCB1c2UgYnl0ZSB2YWx1ZXMgMCwgMSwgb3IgMiwgYnV0IHVzZXMgYWxsIG90aGVyCisgKiBieXRlIHZhbHVlcyBmb3IgbGVhZCBhbmQgc2luZ2xlIGJ5dGVzLCBzbyB0aGF0IHRoZSBtaWRkbGUgcmFuZ2Ugb2YKKyAqIHNpbmdsZSBieXRlcyBpcyBhcyBsYXJnZSBhcyBwb3NzaWJsZS48L3A+CisgKgorICogPHA+Tm90ZSB0aGF0IHRoZSBsZWFkIGJ5dGUgcmFuZ2VzIG92ZXJsYXAgc29tZSwgYnV0IHRoYXQgdGhlCisgKiBzZXF1ZW5jZXMgYXMgYSB3aG9sZSBhcmUgd2VsbCBvcmRlcmVkLiBJLmUuLCBldmVuIGlmIHRoZSBsZWFkIGJ5dGUKKyAqIGlzIHRoZSBzYW1lIGZvciBzZXF1ZW5jZXMgb2YgZGlmZmVyZW50IGxlbmd0aHMsIHRoZSB0cmFpbCBieXRlcworICogZXN0YWJsaXNoIGNvcnJlY3Qgb3JkZXIuICBJdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBlbmNvZGUgc2xpZ2h0bHkKKyAqIGxhcmdlciByYW5nZXMgZm9yIGVhY2ggbGVuZ3RoICg+MSkgYnkgc3VidHJhY3RpbmcgdGhlIGxvd2VyIGJvdW5kCisgKiBvZiB0aGUgcmFuZ2UuIEhvd2V2ZXIsIHRoYXQgd291bGQgYWxzbyBzbG93IGRvd24gdGhlIGNhbGN1bGF0aW9uLgorICogKFN5biBXZWUsIG5lZWQgYW4gZXhhbXBsZSkuPC9wPgorICoKKyAqIDxwPkZvciB0aGUgYWN0dWFsIHN0cmluZyBlbmNvZGluZywgYW4gb3B0aW1pemF0aW9uIG1vdmVzIHRoZQorICogcHJldmlvdXMgY29kZSBwb2ludCB2YWx1ZSB0byB0aGUgbWlkZGxlIG9mIGl0cyBVbmljb2RlIHNjcmlwdCBibG9jaworICogdG8gbWluaW1pemUgdGhlIGRpZmZlcmVuY2VzIGluIHNhbWUtc2NyaXB0IHRleHQgcnVucy4gIChTeW4gV2VlLAorICogbmVlZCBhbiBleGFtcGxlLik8L3A+CisgKgorICogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyAqIEBzaW5jZSByZWxlYXNlIDIuMiwgTWF5IDNyZCAyMDAyCisgKiBAZHJhZnQgMi4yIAorICovCitwdWJsaWMgY2xhc3MgQk9DVSAKK3sgICAgICAKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiA8cD5FbmNvZGUgdGhlIGNvZGUgcG9pbnRzIG9mIGEgc3RyaW5nIGFzIGEgc2VxdWVuY2Ugb2YgYnl0ZXMsCisgICAgICogcHJlc2VydmluZyBsZXhpY2FsIG9yZGVyLjwvcD4KKyAgICAgKiA8cD5UaGUgbWluaW11bSBzaXplIG9mIGJ1ZmZlciByZXF1aXJlZCBmb3IgdGhlIGNvbXByZXNzaW9uIGNhbiBiZSAKKyAgICAgKiBwcmVmbGlnaHRlZCBieSBnZXRDb21wcmVzc2lvbkxlbmd0aChTdHJpbmcpLjwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRleHQgc291cmNlCisgICAgICogQHBhcmFtIGJ1ZmZlciBvdXRwdXQgYnVmZmVyCisgICAgICogQHBhcmFtIG9mZnNldCB0byBzdGFydCB3cml0aW5nIHRvCisgICAgICogQHJldHVybiBlbmQgb2Zmc2V0IHdoZXJlIHRoZSB3cml0aW5nIHN0b3BwZWQKKyAgICAgKiBAc2VlICNnZXRDb21wcmVzc2lvbkxlbmd0aChTdHJpbmcpCisgICAgICogQGV4Y2VwdGlvbiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIHNpemUgb2YgYnVmZmVyIGlzIAorICAgICAqICAgICAgICAgICAgdG9vIHNtYWxsIGZvciB0aGUgb3V0cHV0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXByZXNzKFN0cmluZyBzb3VyY2UsIGJ5dGUgYnVmZmVyW10sIGludCBvZmZzZXQpIAorICAgIHsKKyAgICAgICAgaW50IHByZXYgPSAwOworICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc291cmNlKTsKKyAgICAgICAgaW50IGNvZGVwb2ludCA9IGl0ZXJhdG9yLm5leHRDb2RlUG9pbnQoKTsKKyAgICAgICAgd2hpbGUgKGNvZGVwb2ludCAhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgaWYgKHByZXYgPCAweDRlMDAgfHwgcHJldiA+PSAweGEwMDApIHsKKyAgICAgICAgICAgICAgICBwcmV2ID0gKHByZXYgJiB+MHg3ZikgLSBTTE9QRV9SRUFDSF9ORUdfMV87CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gVW5paGFuIFUrNGUwMC4uVSs5ZmE1OgorICAgICAgICAgICAgICAgIC8vIGRvdWJsZS1ieXRlcyBkb3duIGZyb20gdGhlIHVwcGVyIGVuZAorICAgICAgICAgICAgICAgIHByZXYgPSAweDlmZmYgLSBTTE9QRV9SRUFDSF9QT1NfMl87CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgb2Zmc2V0ID0gd3JpdGVEaWZmKGNvZGVwb2ludCAtIHByZXYsIGJ1ZmZlciwgb2Zmc2V0KTsKKyAgICAgICAgICAgIHByZXYgPSBjb2RlcG9pbnQ7CisgICAgICAgICAgICBjb2RlcG9pbnQgPSBpdGVyYXRvci5uZXh0Q29kZVBvaW50KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9mZnNldDsKKyAgICB9CisgICAgICAgIAorICAgIC8qKiAKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiAgYnl0ZXMgdGhhdCBjb21wcmVzcygpIHdvdWxkIHdyaXRlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCBzb3VyY2Ugc3RyaW5nCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBCT0NVIHJlc3VsdCAKKyAgICAgKiBAc2VlICNjb21wcmVzcyhTdHJpbmcsIGJ5dGVbXSwgaW50KQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENvbXByZXNzaW9uTGVuZ3RoKFN0cmluZyBzb3VyY2UpIAorICAgIHsKKyAgICAgICAgaW50IHByZXYgPSAwOworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yID0gIFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzb3VyY2UpOworICAgICAgICBpbnQgY29kZXBvaW50ID0gaXRlcmF0b3IubmV4dENvZGVQb2ludCgpOworICAgICAgICB3aGlsZSAoY29kZXBvaW50ICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBpZiAocHJldiA8IDB4NGUwMCB8fCBwcmV2ID49IDB4YTAwMCkgeworICAgICAgICAgICAgICAgIHByZXYgPSAocHJldiAmIH4weDdmKSAtIFNMT1BFX1JFQUNIX05FR18xXzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBVbmloYW4gVSs0ZTAwLi5VKzlmYTU6CisgICAgICAgICAgICAgICAgLy8gZG91YmxlLWJ5dGVzIGRvd24gZnJvbSB0aGUgdXBwZXIgZW5kCisgICAgICAgICAgICAgICAgcHJldiA9IDB4OWZmZiAtIFNMT1BFX1JFQUNIX1BPU18yXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBjb2RlcG9pbnQgPSBpdGVyYXRvci5uZXh0Q29kZVBvaW50KCk7CisgICAgICAgICAgICByZXN1bHQgKz0gbGVuZ3RoT2ZEaWZmKGNvZGVwb2ludCAtIHByZXYpOworICAgICAgICAgICAgcHJldiA9IGNvZGVwb2ludDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIHB1YmxpYyBzZXR0ZXIgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8vIHB1YmxpYyBnZXR0ZXIgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIAorICAgIC8vIHB1YmxpYyBvdGhlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKiogCisgICAgICogRG8gbm90IHVzZSBieXRlIHZhbHVlcyAwLCAxLCAyIGJlY2F1c2UgdGhleSBhcmUgc2VwYXJhdG9ycyBpbiBzb3J0IGtleXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX01JTl8gPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9NQVhfID0gMHhmZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfTUlERExFXyA9IDB4ODE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX1RBSUxfQ09VTlRfID0gU0xPUEVfTUFYXyAtIFNMT1BFX01JTl8gKyAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9NQVhfQllURVNfID0gNDsKKworICAgIC8qKgorICAgICAqIE51bWJlciBvZiBsZWFkIGJ5dGVzOgorICAgICAqIDEgICAgICAgIG1pZGRsZSBieXRlIGZvciAwCisgICAgICogMio4MD0xNjAgc2luZ2xlIGJ5dGVzIGZvciAhPTAKKyAgICAgKiAyKjQyPTg0ICBmb3IgZG91YmxlLWJ5dGUgdmFsdWVzCisgICAgICogMiozPTYgICAgZm9yIDMtYnl0ZSB2YWx1ZXMKKyAgICAgKiAyKjE9MiAgICBmb3IgNC1ieXRlIHZhbHVlcworICAgICAqCisgICAgICogVGhlIHN1bSBtdXN0IGJlIDw9U0xPUEVfVEFJTF9DT1VOVC4KKyAgICAgKgorICAgICAqIFdoeSB0aGVzZSBudW1iZXJzPworICAgICAqIC0gVGhlcmUgc2hvdWxkIGJlID49MTI4IHNpbmdsZS1ieXRlIHZhbHVlcyB0byBjb3ZlciAxMjgtYmxvY2tzCisgICAgICogICB3aXRoIHNtYWxsIHNjcmlwdHMuCisgICAgICogLSBUaGVyZSBzaG91bGQgYmUgPj0yMDkwMiBzaW5nbGUvZG91YmxlLWJ5dGUgdmFsdWVzIHRvIGNvdmVyIFVuaWhhbi4KKyAgICAgKiAtIEl0IGhlbHBzIENKSyBFeHRlbnNpb24gQiBzb21lIGlmIHRoZXJlIGFyZSAzLWJ5dGUgdmFsdWVzIHRoYXQgY292ZXIKKyAgICAgKiAgIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZW0gYW5kIFVuaWhhbi4KKyAgICAgKiAgIFRoaXMgYWxzbyBoZWxwcyB0byBqdW1wIGFtb25nIGRpc3RhbnQgcGxhY2VzIGluIHRoZSBCTVAuCisgICAgICogLSBGb3VyLWJ5dGUgdmFsdWVzIGFyZSBuZWNlc3NhcnkgdG8gY292ZXIgdGhlIHJlc3Qgb2YgVW5pY29kZS4KKyAgICAgKgorICAgICAqIFN5bW1ldHJpY2FsIGxlYWQgYnl0ZSBjb3VudHMgYXJlIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBXaXRoIGFuIGVxdWFsIGRpc3RyaWJ1dGlvbiBvZiBldmVuIGFuZCBvZGQgZGlmZmVyZW5jZXMgdGhlcmUgaXMgYWxzbworICAgICAqIG5vIGFkdmFudGFnZSB0byBhc3ltbWV0cmljYWwgbGVhZCBieXRlIGNvdW50cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfU0lOR0xFXyA9IDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9MRUFEXzJfID0gNDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX0xFQURfM18gPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9MRUFEXzRfID0gMTsKKworICAgIC8qKiAKKyAgICAgKiBUaGUgZGlmZmVyZW5jZSB2YWx1ZSByYW5nZSBmb3Igc2luZ2xlLWJ5dGVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfUE9TXzFfID0gU0xPUEVfU0lOR0xFXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfTkVHXzFfID0gKC1TTE9QRV9TSU5HTEVfKTsKKworICAgIC8qKiAKKyAgICAgKiBUaGUgZGlmZmVyZW5jZSB2YWx1ZSByYW5nZSBmb3IgZG91YmxlLWJ5dGVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfUE9TXzJfID0gCisgICAgICAgIFNMT1BFX0xFQURfMl8gKiBTTE9QRV9UQUlMX0NPVU5UXyArIFNMT1BFX0xFQURfMl8gLSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9SRUFDSF9ORUdfMl8gPSAoLVNMT1BFX1JFQUNIX1BPU18yXyAtIDEpOworCisgICAgLyoqIAorICAgICAqIFRoZSBkaWZmZXJlbmNlIHZhbHVlIHJhbmdlIGZvciAzLWJ5dGVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfUE9TXzNfID0gU0xPUEVfTEVBRF8zXyAKKyAgICAgICAgKiBTTE9QRV9UQUlMX0NPVU5UXyAKKyAgICAgICAgKiBTTE9QRV9UQUlMX0NPVU5UXyAKKyAgICAgICAgKyAoU0xPUEVfTEVBRF8zXyAtIDEpCisgICAgICAgICogU0xPUEVfVEFJTF9DT1VOVF8gKworICAgICAgICAoU0xPUEVfVEFJTF9DT1VOVF8gLSAxKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfUkVBQ0hfTkVHXzNfID0gKC1TTE9QRV9SRUFDSF9QT1NfM18gLSAxKTsKKworICAgIC8qKiAKKyAgICAgKiBUaGUgbGVhZCBieXRlIHN0YXJ0IHZhbHVlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfU1RBUlRfUE9TXzJfID0gU0xPUEVfTUlERExFXyAKKyAgICAgICAgKyBTTE9QRV9TSU5HTEVfICsgMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0xPUEVfU1RBUlRfUE9TXzNfID0gU0xPUEVfU1RBUlRfUE9TXzJfIAorICAgICAgICArIFNMT1BFX0xFQURfMl87CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNMT1BFX1NUQVJUX05FR18yXyA9IFNMT1BFX01JRERMRV8gKyAKKyAgICAgICAgU0xPUEVfUkVBQ0hfTkVHXzFfOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTE9QRV9TVEFSVF9ORUdfM18gPSBTTE9QRV9TVEFSVF9ORUdfMl8KKyAgICAgICAgLSBTTE9QRV9MRUFEXzJfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvLyBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBwcml2YXRlIHRvIHByZXZlbnQgaW5pdGlhbGl6YXRpb24KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHJpdmF0ZSBCT0NVKCkKKyAgICB7CisgICAgfSAgICAgICAgICAgIAorICAgIC8vL0NMT1ZFUjpPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogSW50ZWdlciBkaXZpc2lvbiBhbmQgbW9kdWxvIHdpdGggbmVnYXRpdmUgbnVtZXJhdG9ycworICAgICAqIHlpZWxkcyBuZWdhdGl2ZSBtb2R1bG8gcmVzdWx0cyBhbmQgcXVvdGllbnRzIHRoYXQgYXJlIG9uZSBtb3JlIHRoYW4KKyAgICAgKiB3aGF0IHdlIG5lZWQgaGVyZS4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIHdoaWNoIG9wZXJhdGlvbnMgYXJlIHRvIGJlIHBlcmZvcm1lZCBvbgorICAgICAqIEBwYXJhbSBmYWN0b3IgdGhlIGZhY3RvciB0byB1c2UgZm9yIGRpdmlzaW9uCisgICAgICogQHJldHVybiAocmVzdWx0IG9mIGRpdmlzaW9uKSA8PCAzMiB8IG1vZHVsbyAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGdldE5lZ0Rpdk1vZChpbnQgbnVtYmVyLCBpbnQgZmFjdG9yKSAKKyAgICB7CisgICAgICAgIGludCBtb2R1bG8gPSBudW1iZXIgJSBmYWN0b3I7IAorICAgICAgICBsb25nIHJlc3VsdCA9IG51bWJlciAvIGZhY3RvcjsKKyAgICAgICAgaWYgKG1vZHVsbyA8IDApIHsgCisgICAgICAgICAgICAtLSByZXN1bHQ7IAorICAgICAgICAgICAgbW9kdWxvICs9IGZhY3RvcjsgCisgICAgICAgIH0gCisgICAgICAgIHJldHVybiAocmVzdWx0IDw8IDMyKSB8IG1vZHVsbzsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEVuY29kZSBvbmUgZGlmZmVyZW5jZSB2YWx1ZSAtMHgxMGZmZmYuLisweDEwZmZmZiBpbiAxLi4zIGJ5dGVzLAorICAgICAqIHByZXNlcnZpbmcgbGV4aWNhbCBvcmRlcgorICAgICAqIEBwYXJhbSBkaWZmCisgICAgICogQHBhcmFtIGJ1ZmZlciBieXRlIGJ1ZmZlciB0byBhcHBlbmQgdG8KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRvIHRoZSBieXRlIGJ1ZmZlciB0byBzdGFydCBhcHBlbmRpbmcKKyAgICAgKiBAcmV0dXJuIGVuZCBvZmZzZXQgd2hlcmUgdGhlIGFwcGVuZGluZyBzdG9wcworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCB3cml0ZURpZmYoaW50IGRpZmYsIGJ5dGUgYnVmZmVyW10sIGludCBvZmZzZXQpIAorICAgIHsKKyAgICAgICAgaWYgKGRpZmYgPj0gU0xPUEVfUkVBQ0hfTkVHXzFfKSB7CisgICAgICAgICAgICBpZiAoZGlmZiA8PSBTTE9QRV9SRUFDSF9QT1NfMV8pIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsrXSA9IChieXRlKShTTE9QRV9NSURETEVfICsgZGlmZik7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAoZGlmZiA8PSBTTE9QRV9SRUFDSF9QT1NfMl8pIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsrXSA9IChieXRlKShTTE9QRV9TVEFSVF9QT1NfMl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoZGlmZiAvIFNMT1BFX1RBSUxfQ09VTlRfKSk7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArK10gPSAoYnl0ZSkoU0xPUEVfTUlOXyArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkaWZmICUgU0xPUEVfVEFJTF9DT1VOVF8pKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmIChkaWZmIDw9IFNMT1BFX1JFQUNIX1BPU18zXykgeworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyAyXSA9IChieXRlKShTTE9QRV9NSU5fIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChkaWZmICUgU0xPUEVfVEFJTF9DT1VOVF8pKTsKKyAgICAgICAgICAgICAgICBkaWZmIC89IFNMT1BFX1RBSUxfQ09VTlRfOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyAxXSA9IChieXRlKShTTE9QRV9NSU5fIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChkaWZmICUgU0xPUEVfVEFJTF9DT1VOVF8pKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0XSA9IChieXRlKShTTE9QRV9TVEFSVF9QT1NfM18gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoZGlmZiAvIFNMT1BFX1RBSUxfQ09VTlRfKSk7CisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDM7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIDNdID0gKGJ5dGUpKFNMT1BFX01JTl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZGlmZiAlIFNMT1BFX1RBSUxfQ09VTlRfKTsKKyAgICAgICAgICAgICAgICBkaWZmIC89IFNMT1BFX1RBSUxfQ09VTlRfOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXRdID0gKGJ5dGUpKFNMT1BFX01JTl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBkaWZmICUgU0xPUEVfVEFJTF9DT1VOVF8pOworICAgICAgICAgICAgICAgIGRpZmYgLz0gU0xPUEVfVEFJTF9DT1VOVF87CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArIDFdID0gKGJ5dGUpKFNMT1BFX01JTl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZGlmZiAlIFNMT1BFX1RBSUxfQ09VTlRfKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0XSA9IChieXRlKVNMT1BFX01BWF87CisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbG9uZyBkaXZpc2lvbiA9IGdldE5lZ0Rpdk1vZChkaWZmLCBTTE9QRV9UQUlMX0NPVU5UXyk7CisgICAgICAgICAgICBpbnQgbW9kdWxvID0gKGludClkaXZpc2lvbjsKKyAgICAgICAgICAgIGlmIChkaWZmID49IFNMT1BFX1JFQUNIX05FR18yXykgeworICAgICAgICAgICAgICAgIGRpZmYgPSAoaW50KShkaXZpc2lvbiA+PiAzMik7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArK10gPSAoYnl0ZSkoU0xPUEVfU1RBUlRfTkVHXzJfICsgZGlmZik7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldCArK10gPSAoYnl0ZSkoU0xPUEVfTUlOXyArIG1vZHVsbyk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAoZGlmZiA+PSBTTE9QRV9SRUFDSF9ORUdfM18pIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsgMl0gPSAoYnl0ZSkoU0xPUEVfTUlOXyArIG1vZHVsbyk7CisgICAgICAgICAgICAgICAgZGlmZiA9IChpbnQpKGRpdmlzaW9uID4+IDMyKTsKKyAgICAgICAgICAgICAgICBkaXZpc2lvbiA9IGdldE5lZ0Rpdk1vZChkaWZmLCBTTE9QRV9UQUlMX0NPVU5UXyk7CisgICAgICAgICAgICAgICAgbW9kdWxvID0gKGludClkaXZpc2lvbjsKKyAgICAgICAgICAgICAgICBkaWZmID0gKGludCkoZGl2aXNpb24gPj4gMzIpOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyAxXSA9IChieXRlKShTTE9QRV9NSU5fICsgbW9kdWxvKTsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0XSA9IChieXRlKShTTE9QRV9TVEFSVF9ORUdfM18gKyBkaWZmKTsKKyAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsgM10gPSAoYnl0ZSkoU0xPUEVfTUlOXyArIG1vZHVsbyk7CisgICAgICAgICAgICAgICAgZGlmZiA9IChpbnQpKGRpdmlzaW9uID4+IDMyKTsKKyAgICAgICAgICAgICAgICBkaXZpc2lvbiA9IGdldE5lZ0Rpdk1vZChkaWZmLCBTTE9QRV9UQUlMX0NPVU5UXyk7CisgICAgICAgICAgICAgICAgbW9kdWxvID0gKGludClkaXZpc2lvbjsKKyAgICAgICAgICAgICAgICBkaWZmID0gKGludCkoZGl2aXNpb24gPj4gMzIpOworICAgICAgICAgICAgICAgIGJ1ZmZlcltvZmZzZXQgKyAyXSA9IChieXRlKShTTE9QRV9NSU5fICsgbW9kdWxvKTsKKyAgICAgICAgICAgICAgICBkaXZpc2lvbiA9IGdldE5lZ0Rpdk1vZChkaWZmLCBTTE9QRV9UQUlMX0NPVU5UXyk7CisgICAgICAgICAgICAgICAgbW9kdWxvID0gKGludClkaXZpc2lvbjsKKyAgICAgICAgICAgICAgICBidWZmZXJbb2Zmc2V0ICsgMV0gPSAoYnl0ZSkoU0xPUEVfTUlOXyArIG1vZHVsbyk7CisgICAgICAgICAgICAgICAgYnVmZmVyW29mZnNldF0gPSBTTE9QRV9NSU5fOworICAgICAgICAgICAgICAgIG9mZnNldCArPSA0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBvZmZzZXQ7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBIb3cgbWFueSBieXRlcyB3b3VsZCB3cml0ZURpZmYoKSB3cml0ZT8gCisgICAgICogQHBhcmFtIGRpZmYKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbGVuZ3RoT2ZEaWZmKGludCBkaWZmKSAKKyAgICB7CisgICAgICAgIGlmIChkaWZmID49IFNMT1BFX1JFQUNIX05FR18xXykgeworICAgICAgICAgICAgaWYgKGRpZmYgPD0gU0xPUEVfUkVBQ0hfUE9TXzFfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAoZGlmZiA8PSBTTE9QRV9SRUFDSF9QT1NfMl8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIGlmKGRpZmYgPD0gU0xPUEVfUkVBQ0hfUE9TXzNfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGRpZmYgPj0gU0xPUEVfUkVBQ0hfTkVHXzJfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAoZGlmZiA+PSBTTE9QRV9SRUFDSF9ORUdfM18pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMzsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gNDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0J5dGVCdWZmZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0J5dGVCdWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjVmOWQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQnl0ZUJ1ZmZlci5qYXZhCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLy8gZGxmMTMgaW50ZXJuYWwgMS4zIGNvbXBhdGliaWxpdHkgb25seQorCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKKy8qKgorICogQGludGVybmFsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBCeXRlQnVmZmVyIHsKKyAgICBwcml2YXRlIGJ5dGVbXSBkYXRhOworICAgIHByaXZhdGUgaW50IHBvczsKKyAgICBwcml2YXRlIGludCBsaW1pdDsKKworICAgIHByaXZhdGUgQnl0ZUJ1ZmZlcigpIHt9CisKKyAgICBwdWJsaWMgYnl0ZVtdIGFycmF5KCkgeworCWJ5dGVbXSByZXN1bHQgPSBuZXcgYnl0ZVtsaW1pdF07CisJZm9yIChpbnQgaSA9IDA7IGkgPCBsaW1pdDsgKytpKSB7CisJICAgIHJlc3VsdFtpXSA9IGRhdGFbaV07CisJfQorCXJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBCeXRlQnVmZmVyIHdyYXAoYnl0ZVtdIGRhdGEpIHsKKwlpZiAoZGF0YSA9PSBudWxsKSB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKwlCeXRlQnVmZmVyIHJlc3VsdCA9IG5ldyBCeXRlQnVmZmVyKCk7CisJcmVzdWx0LmRhdGEgPSBkYXRhOworCXJlc3VsdC5wb3MgPSAwOworCXJlc3VsdC5saW1pdCA9IGRhdGEubGVuZ3RoOworCXJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIGludCBsaW1pdCgpIHsKKwlyZXR1cm4gbGltaXQ7CisgICAgfQorCisgICAgcHVibGljIGludCByZW1haW5pbmcoKSB7CisgICAgICAgIHJldHVybiBsaW1pdCAtIHBvczsKKyAgICB9CisKKyAgICBwdWJsaWMgYnl0ZSBnZXQoKSB7CisgICAgICAgIGlmIChwb3MgPCBsaW1pdCkgcmV0dXJuIGRhdGFbcG9zKytdOworICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGdldChieXRlW10gZHN0LCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKSB7CisJaWYgKG9mZnNldCA8IDAgfHwgb2Zmc2V0ICsgbGVuZ3RoID4gZHN0Lmxlbmd0aCB8fCBwb3MgKyBsZW5ndGggPiBsaW1pdCkgeworCSAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworCX0KKwlmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisJICAgIGRzdFtvZmZzZXQrK10gPSBkYXRhW3BvcysrXTsKKwl9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXJBc3Ryb25vbWVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9DYWxlbmRhckFzdHJvbm9tZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NmQwZmVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXJBc3Ryb25vbWVyLmphdmEKQEAgLTAsMCArMSwxNjY0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPiBpcyBhIGNsYXNzIHRoYXQgY2FuIHBlcmZvcm0gdGhlIGNhbGN1bGF0aW9ucyB0bworICogZGV0ZXJtaW5lIHRoZSBwb3NpdGlvbnMgb2YgdGhlIHN1biBhbmQgbW9vbiwgdGhlIHRpbWUgb2Ygc3VucmlzZSBhbmQKKyAqIHN1bnNldCwgYW5kIG90aGVyIGFzdHJvbm9teS1yZWxhdGVkIGRhdGEuICBUaGUgY2FsY3VsYXRpb25zIGl0IHBlcmZvcm1zCisgKiBhcmUgaW4gc29tZSBjYXNlcyBxdWl0ZSBjb21wbGljYXRlZCwgYW5kIHRoaXMgdXRpbGl0eSBjbGFzcyBzYXZlcyB5b3UKKyAqIHRoZSB0cm91YmxlIG9mIHdvcnJ5aW5nIGFib3V0IHRoZW0uCisgKiA8cD4KKyAqIFRoZSBtZWFzdXJlbWVudCBvZiB0aW1lIGlzIGEgdmVyeSBpbXBvcnRhbnQgcGFydCBvZiBhc3Ryb25vbXkuICBCZWNhdXNlCisgKiBhc3Ryb25vbWljYWwgYm9kaWVzIGFyZSBjb25zdGFudGx5IGluIG1vdGlvbiwgb2JzZXJ2YXRpb25zIGFyZSBvbmx5IHZhbGlkCisgKiBhdCBhIGdpdmVuIG1vbWVudCBpbiB0aW1lLiAgQWNjb3JkaW5nbHksIGVhY2ggPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPgorICogb2JqZWN0IGhhcyBhIDxjb2RlPnRpbWU8L2NvZGU+IHByb3BlcnR5IHRoYXQgZGV0ZXJtaW5lcyB0aGUgZGF0ZQorICogYW5kIHRpbWUgZm9yIHdoaWNoIGl0cyBjYWxjdWxhdGlvbnMgYXJlIHBlcmZvcm1lZC4gIFlvdSBjYW4gc2V0IGFuZAorICogcmV0cmlldmUgdGhpcyBwcm9wZXJ0eSB3aXRoIHtAbGluayAjc2V0RGF0ZSBzZXREYXRlfSwge0BsaW5rICNnZXREYXRlIGdldERhdGV9CisgKiBhbmQgcmVsYXRlZCBtZXRob2RzLgorICogPHA+CisgKiBBbG1vc3QgYWxsIG9mIHRoZSBjYWxjdWxhdGlvbnMgcGVyZm9ybWVkIGJ5IHRoaXMgY2xhc3MsIG9yIGJ5IGFueQorICogYXN0cm9ub21lciwgYXJlIGFwcHJveGltYXRpb25zIHRvIHZhcmlvdXMgZGVncmVlcyBvZiBhY2N1cmFjeS4gIFRoZQorICogY2FsY3VsYXRpb25zIGluIHRoaXMgY2xhc3MgYXJlIG1vc3RseSBtb2RlbGxlZCBhZnRlciB0aG9zZSBkZXNjcmliZWQKKyAqIGluIHRoZSBib29rCisgKiA8YSBocmVmPSJodHRwOi8vd3d3LmFtYXpvbi5jb20vZXhlYy9vYmlkb3MvSVNCTj0wNTIxMzU2OTk3IiB0YXJnZXQ9Il90b3AiPgorICogUHJhY3RpY2FsIEFzdHJvbm9teSBXaXRoIFlvdXIgQ2FsY3VsYXRvcjwvYT4sIGJ5IFBldGVyIEouCisgKiBEdWZmZXR0LVNtaXRoLCBDYW1icmlkZ2UgVW5pdmVyc2l0eSBQcmVzcywgMTk5MC4gIFRoaXMgaXMgYW4gZXhjZWxsZW50CisgKiBib29rLCBhbmQgaWYgeW91IHdhbnQgYSBncmVhdGVyIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZXNlIGNhbGN1bGF0aW9ucworICogYXJlIHBlcmZvcm1lZCBpdCBhIHZlcnkgZ29vZCwgcmVhZGFibGUgc3RhcnRpbmcgcG9pbnQuCisgKiA8cD4KKyAqIDxzdHJvbmc+V0FSTklORzo8L3N0cm9uZz4gVGhpcyBjbGFzcyBpcyB2ZXJ5IGVhcmx5IGluIGl0cyBkZXZlbG9wbWVudCwgYW5kCisgKiBpdCBpcyBoaWdobHkgbGlrZWx5IHRoYXQgaXRzIEFQSSB3aWxsIGNoYW5nZSB0byBzb21lIGRlZ3JlZSBpbiB0aGUgZnV0dXJlLgorICogQXQgdGhlIG1vbWVudCwgaXQgYmFzaWNhbGx5IGRvZXMganVzdCBlbm91Z2ggdG8gc3VwcG9ydCB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXJ9CisgKiBhbmQge0BsaW5rIGNvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyfS4KKyAqCisgKiBAYXV0aG9yIExhdXJhIFdlcm5lcgorICogQGF1dGhvciBBbGFuIExpdQorICogQGludGVybmFsCisgKi8KK3B1YmxpYyBjbGFzcyBDYWxlbmRhckFzdHJvbm9tZXIgeworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEFzdHJvbm9taWNhbCBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2Ygc3RhbmRhcmQgaG91cnMgaW4gb25lIHNpZGVyZWFsIGRheS4KKyAgICAgKiBBcHByb3hpbWF0ZWx5IDI0LjkzLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgZG91YmxlIFNJREVSRUFMX0RBWSA9IDIzLjkzNDQ2OTYwMDI3OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2Ygc2lkZXJlYWwgaG91cnMgaW4gb25lIG1lYW4gc29sYXIgZGF5LgorICAgICAqIEFwcHJveGltYXRlbHkgMjQuMDcuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBkb3VibGUgU09MQVJfREFZID0gIDI0LjA2NTcwOTgxNjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgYXZlcmFnZSBudW1iZXIgb2Ygc29sYXIgZGF5cyBmcm9tIG9uZSBuZXcgbW9vbiB0byB0aGUgbmV4dC4gIFRoaXMgaXMgdGhlIHRpbWUKKyAgICAgKiBpdCB0YWtlcyBmb3IgdGhlIG1vb24gdG8gcmV0dXJuIHRoZSBzYW1lIGVjbGlwdGljIGxvbmdpdHVkZSBhcyB0aGUgc3VuLgorICAgICAqIEl0IGlzIGxvbmdlciB0aGFuIHRoZSBzaWRlcmVhbCBtb250aCBiZWNhdXNlIHRoZSBzdW4ncyBsb25naXR1ZGUgaW5jcmVhc2VzCisgICAgICogZHVyaW5nIHRoZSB5ZWFyIGR1ZSB0byB0aGUgcmV2b2x1dGlvbiBvZiB0aGUgZWFydGggYXJvdW5kIHRoZSBzdW4uCisgICAgICogQXBwcm94aW1hdGVseSAyOS41My4KKyAgICAgKgorICAgICAqIEBzZWUgI1NJREVSRUFMX01PTlRICisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBkb3VibGUgU1lOT0RJQ19NT05USCA9IDI5LjUzMDU4ODg1MzsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgYXZlcmFnZSBudW1iZXIgb2YgZGF5cyBpdCB0YWtlcworICAgICAqIGZvciB0aGUgbW9vbiB0byByZXR1cm4gdG8gdGhlIHNhbWUgZWNsaXB0aWMgbG9uZ2l0dWRlIHJlbGF0aXZlIHRvIHRoZQorICAgICAqIHN0ZWxsYXIgYmFja2dyb3VuZC4gIFRoaXMgaXMgcmVmZXJyZWQgdG8gYXMgdGhlIHNpZGVyZWFsIG1vbnRoLgorICAgICAqIEl0IGlzIHNob3J0ZXIgdGhhbiB0aGUgc3lub2RpYyBtb250aCBkdWUgdG8KKyAgICAgKiB0aGUgcmV2b2x1dGlvbiBvZiB0aGUgZWFydGggYXJvdW5kIHRoZSBzdW4uCisgICAgICogQXBwcm94aW1hdGVseSAyNy4zMi4KKyAgICAgKgorICAgICAqIEBzZWUgI1NZTk9ESUNfTU9OVEgKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGRvdWJsZSBTSURFUkVBTF9NT05USCA9IDI3LjMyMTY2OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBhdmVyYWdlIG51bWJlciBudW1iZXIgb2YgZGF5cyBiZXR3ZWVuIHN1Y2Nlc3NpdmUgdmVybmFsIGVxdWlub3hlcy4KKyAgICAgKiBEdWUgdG8gdGhlIHByZWNlc3Npb24gb2YgdGhlIGVhcnRoJ3MKKyAgICAgKiBheGlzLCB0aGlzIGlzIG5vdCBwcmVjaXNlbHkgdGhlIHNhbWUgYXMgdGhlIHNpZGVyZWFsIHllYXIuCisgICAgICogQXBwcm94aW1hdGVseSAzNjUuMjQKKyAgICAgKgorICAgICAqIEBzZWUgI1NJREVSRUFMX1lFQVIKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGRvdWJsZSBUUk9QSUNBTF9ZRUFSID0gMzY1LjI0MjE5MTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgYXZlcmFnZSBudW1iZXIgb2YgZGF5cyBpdCB0YWtlcworICAgICAqIGZvciB0aGUgc3VuIHRvIHJldHVybiB0byB0aGUgc2FtZSBwb3NpdGlvbiBhZ2FpbnN0IHRoZSBmaXhlZCBzdGVsbGFyCisgICAgICogYmFja2dyb3VuZC4gIFRoaXMgaXMgdGhlIGR1cmF0aW9uIG9mIG9uZSBvcmJpdCBvZiB0aGUgZWFydGggYWJvdXQgdGhlIHN1bgorICAgICAqIGFzIGl0IHdvdWxkIGFwcGVhciB0byBhbiBvdXRzaWRlIG9ic2VydmVyLgorICAgICAqIER1ZSB0byB0aGUgcHJlY2Vzc2lvbiBvZiB0aGUgZWFydGgncworICAgICAqIGF4aXMsIHRoaXMgaXMgbm90IHByZWNpc2VseSB0aGUgc2FtZSBhcyB0aGUgdHJvcGljYWwgeWVhci4KKyAgICAgKiBBcHByb3hpbWF0ZWx5IDM2NS4yNS4KKyAgICAgKgorICAgICAqIEBzZWUgI1RST1BJQ0FMX1lFQVIKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGRvdWJsZSBTSURFUkVBTF9ZRUFSID0gMzY1LjI1NjM2OworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gVGltZS1yZWxhdGVkIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqIAorICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBzZWNvbmQuIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBTRUNPTkRfTVMgPSAxMDAwOworCisgICAgLyoqIAorICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBtaW51dGUuIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBNSU5VVEVfTVMgPSA2MCpTRUNPTkRfTVM7CisKKyAgICAvKiogCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIGhvdXIuIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBIT1VSX01TICAgPSA2MCpNSU5VVEVfTVM7CisKKyAgICAvKiogCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIGRheS4gCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBsb25nIERBWV9NUyAgICA9IDI0KkhPVVJfTVM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RhcnQgb2YgdGhlIGp1bGlhbiBkYXkgbnVtYmVyaW5nIHNjaGVtZSB1c2VkIGJ5IGFzdHJvbm9tZXJzLCB3aGljaAorICAgICAqIGlzIDEvMS80NzEzIEJDIChKdWxpYW4pLCAxMjowMCBHTVQuICBUaGlzIGlzIGdpdmVuIGFzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzCisgICAgICogc2luY2UgMS8xLzE5NzAgQUQgKEdyZWdvcmlhbiksIGEgbmVnYXRpdmUgbnVtYmVyLgorICAgICAqIE5vdGUgdGhhdCBqdWxpYW4gZGF5IG51bWJlcnMgYW5kCisgICAgICogdGhlIEp1bGlhbiBjYWxlbmRhciBhcmUgPGVtPm5vdDwvZW0+IHRoZSBzYW1lIHRoaW5nLiAgQWxzbyBub3RlIHRoYXQKKyAgICAgKiBqdWxpYW4gZGF5cyBzdGFydCBhdCA8ZW0+bm9vbjwvZW0+LCBub3QgbWlkbmlnaHQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBsb25nIEpVTElBTl9FUE9DSF9NUyA9IC0yMTA4NjY3NjAwMDAwMDBMOworICAgIAorLy8gIHN0YXRpYyB7CisvLyAgICAgIENhbGVuZGFyIGNhbCA9IG5ldyBHcmVnb3JpYW5DYWxlbmRhcihUaW1lWm9uZS5nZXRUaW1lWm9uZSgiR01UIikpOworLy8gICAgICBjYWwuY2xlYXIoKTsKKy8vICAgICAgY2FsLnNldChjYWwuRVJBLCAwKTsKKy8vICAgICAgY2FsLnNldChjYWwuWUVBUiwgNDcxMyk7CisvLyAgICAgIGNhbC5zZXQoY2FsLk1PTlRILCBjYWwuSkFOVUFSWSk7CisvLyAgICAgIGNhbC5zZXQoY2FsLkRBVEUsIDEpOworLy8gICAgICBjYWwuc2V0KGNhbC5IT1VSX09GX0RBWSwgMTIpOworLy8gICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjEuNSBKYW4gNDcxMyBCQyA9ICIgKyBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSk7CisKKy8vICAgICAgY2FsLmNsZWFyKCk7CisvLyAgICAgIGNhbC5zZXQoY2FsLllFQVIsIDIwMDApOworLy8gICAgICBjYWwuc2V0KGNhbC5NT05USCwgY2FsLkpBTlVBUlkpOworLy8gICAgICBjYWwuc2V0KGNhbC5EQVRFLCAxKTsKKy8vICAgICAgY2FsLmFkZChjYWwuREFURSwgLTEpOworLy8gICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjAuMCBKYW4gMjAwMCA9ICIgKyBjYWwuZ2V0VGltZSgpLmdldFRpbWUoKSk7CisvLyAgfQorICAgIAorICAgIC8qKgorICAgICAqIE1pbGxpc2Vjb25kcyB2YWx1ZSBmb3IgMC4wIEphbnVhcnkgMjAwMCBBRC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgbG9uZyBFUE9DSF8yMDAwX01TID0gOTQ2NTk4NDAwMDAwTDsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEFzc29ydGVkIHByaXZhdGUgZGF0YSB1c2VkIGZvciBjb252ZXJzaW9ucworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gTXkgb3duIGNvcGllcyBvZiB0aGVzZSBzbyBjb21waWxlcnMgYXJlIG1vcmUgbGlrZWx5IHRvIG9wdGltaXplIHRoZW0gYXdheQorICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGRvdWJsZSBQSSA9IDMuMTQxNTkyNjUzNTg5NzkzMjM4NDY7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgZG91YmxlIFBJMiA9IFBJICogMi4wOworCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgZG91YmxlIFJBRF9IT1VSID0gMTIgLyBQSTsgICAgICAgIC8vIHJhZGlhbnMgLT4gaG91cnMKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBkb3VibGUgREVHX1JBRCAgPSBQSSAvIDE4MDsgICAgICAgIC8vIGRlZ3JlZXMgLT4gcmFkaWFucworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGRvdWJsZSBSQURfREVHICA9IDE4MCAvIFBJOyAgICAgICAgLy8gcmFkaWFucyAtPiBkZWdyZWVzCisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RydWN0b3JzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPiBvYmplY3QgdGhhdCBpcyBpbml0aWFsaXplZCB0bworICAgICAqIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENhbGVuZGFyQXN0cm9ub21lcigpIHsKKyAgICAgICAgdGhpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyA8Y29kZT5DYWxlbmRhckFzdHJvbm9tZXI8L2NvZGU+IG9iamVjdCB0aGF0IGlzIGluaXRpYWxpemVkIHRvCisgICAgICogdGhlIHNwZWNpZmllZCBkYXRlIGFuZCB0aW1lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhckFzdHJvbm9tZXIoRGF0ZSBkKSB7CisgICAgICAgIHRoaXMoZC5nZXRUaW1lKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPiBvYmplY3QgdGhhdCBpcyBpbml0aWFsaXplZCB0bworICAgICAqIHRoZSBzcGVjaWZpZWQgdGltZS4gIFRoZSB0aW1lIGlzIGV4cHJlc3NlZCBhcyBhIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UKKyAgICAgKiBKYW51YXJ5IDEsIDE5NzAgQUQgKEdyZWdvcmlhbikuCisgICAgICoKKyAgICAgKiBAc2VlIGphdmEudXRpbC5EYXRlI2dldFRpbWUoKQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDYWxlbmRhckFzdHJvbm9tZXIobG9uZyBhVGltZSkgeworICAgICAgICB0aW1lID0gYVRpbWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyA8Y29kZT5DYWxlbmRhckFzdHJvbm9tZXI8L2NvZGU+IG9iamVjdCB3aXRoIHRoZSBnaXZlbgorICAgICAqIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUuICBUaGUgb2JqZWN0J3MgdGltZSBpcyBzZXQgdG8gdGhlIGN1cnJlbnQKKyAgICAgKiBkYXRlIGFuZCB0aW1lLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBsb25naXR1ZGUgVGhlIGRlc2lyZWQgbG9uZ2l0dWRlLCBpbiA8ZW0+ZGVncmVlczwvZW0+IGVhc3Qgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBHcmVlbndpY2ggbWVyaWRpYW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGF0aXR1ZGUgIFRoZSBkZXNpcmVkIGxhdGl0dWRlLCBpbiA8ZW0+ZGVncmVlczwvZW0+LiAgUG9zaXRpdmUKKyAgICAgKiAgICAgICAgICAgICAgICAgIHZhbHVlcyBzaWduaWZ5IE5vcnRoLCBuZWdhdGl2ZSBTb3V0aC4KKyAgICAgKgorICAgICAqIEBzZWUgamF2YS51dGlsLkRhdGUjZ2V0VGltZSgpCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENhbGVuZGFyQXN0cm9ub21lcihkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgbGF0aXR1ZGUpIHsKKyAgICAgICAgdGhpcygpOworICAgICAgICBmTG9uZ2l0dWRlID0gbm9ybVBJKGxvbmdpdHVkZSAqIERFR19SQUQpOworICAgICAgICBmTGF0aXR1ZGUgID0gbm9ybVBJKGxhdGl0dWRlICAqIERFR19SQUQpOworICAgICAgICBmR210T2Zmc2V0ID0gKGxvbmcpKGZMb25naXR1ZGUgKiAyNCAqIEhPVVJfTVMgLyBQSTIpOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBUaW1lIGFuZCBkYXRlIGdldHRlcnMgYW5kIHNldHRlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBvZiB0aGlzIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0LiAgQWxsCisgICAgICogYXN0cm9ub21pY2FsIGNhbGN1bGF0aW9ucyBhcmUgcGVyZm9ybWVkIGJhc2VkIG9uIHRoaXMgdGltZSBzZXR0aW5nLgorICAgICAqCisgICAgICogQHBhcmFtIGFUaW1lIHRoZSBkYXRlIGFuZCB0aW1lLCBleHByZXNzZWQgYXMgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UKKyAgICAgKiAgICAgICAgICAgICAgMS8xLzE5NzAgMDowMCBHTVQgKEdyZWdvcmlhbikuCisgICAgICoKKyAgICAgKiBAc2VlICNzZXREYXRlCisgICAgICogQHNlZSAjZ2V0VGltZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRpbWUobG9uZyBhVGltZSkgeworICAgICAgICB0aW1lID0gYVRpbWU7CisgICAgICAgIGNsZWFyQ2FjaGUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgb2YgdGhpcyA8Y29kZT5DYWxlbmRhckFzdHJvbm9tZXI8L2NvZGU+IG9iamVjdC4gIEFsbAorICAgICAqIGFzdHJvbm9taWNhbCBjYWxjdWxhdGlvbnMgYXJlIHBlcmZvcm1lZCBiYXNlZCBvbiB0aGlzIHRpbWUgc2V0dGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB0aW1lIGFuZCBkYXRlLCBleHByZXNzZWQgYXMgYSA8Y29kZT5EYXRlPC9jb2RlPiBvYmplY3QuCisgICAgICoKKyAgICAgKiBAc2VlICNzZXRUaW1lCisgICAgICogQHNlZSAjZ2V0RGF0ZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERhdGUoRGF0ZSBkYXRlKSB7CisgICAgICAgIHNldFRpbWUoZGF0ZS5nZXRUaW1lKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZSBvZiB0aGlzIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0LiAgQWxsCisgICAgICogYXN0cm9ub21pY2FsIGNhbGN1bGF0aW9ucyBhcmUgcGVyZm9ybWVkIGJhc2VkIG9uIHRoaXMgdGltZSBzZXR0aW5nLgorICAgICAqCisgICAgICogQHBhcmFtIGpkbiAgIHRoZSBkZXNpcmVkIHRpbWUsIGV4cHJlc3NlZCBhcyBhICJqdWxpYW4gZGF5IG51bWJlciIsCisgICAgICogICAgICAgICAgICAgIHdoaWNoIGlzIHRoZSBudW1iZXIgb2YgZWxhcHNlZCBkYXlzIHNpbmNlIAorICAgICAqICAgICAgICAgICAgICAxLzEvNDcxMyBCQyAoSnVsaWFuKSwgMTI6MDAgR01ULiAgTm90ZSB0aGF0IGp1bGlhbiBkYXkKKyAgICAgKiAgICAgICAgICAgICAgbnVtYmVycyBzdGFydCBhdCA8ZW0+bm9vbjwvZW0+LiAgVG8gZ2V0IHRoZSBqZG4gZm9yCisgICAgICogICAgICAgICAgICAgIHRoZSBjb3JyZXNwb25kaW5nIG1pZG5pZ2h0LCBzdWJ0cmFjdCAwLjUuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRKdWxpYW5EYXkKKyAgICAgKiBAc2VlICNKVUxJQU5fRVBPQ0hfTVMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRKdWxpYW5EYXkoZG91YmxlIGpkbikgeworICAgICAgICB0aW1lID0gKGxvbmcpKGpkbiAqIERBWV9NUykgKyBKVUxJQU5fRVBPQ0hfTVM7CisgICAgICAgIGNsZWFyQ2FjaGUoKTsKKyAgICAgICAganVsaWFuRGF5ID0gamRuOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0LAorICAgICAqIHJlcHJlc2VudGVkIGFzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlCisgICAgICogMS8xLzE5NzAgQUQgMDowMCBHTVQgKEdyZWdvcmlhbikuCisgICAgICoKKyAgICAgKiBAc2VlICNzZXRUaW1lCisgICAgICogQHNlZSAjZ2V0RGF0ZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBsb25nIGdldFRpbWUoKSB7CisgICAgICAgIHJldHVybiB0aW1lOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIDxjb2RlPkNhbGVuZGFyQXN0cm9ub21lcjwvY29kZT4gb2JqZWN0LAorICAgICAqIHJlcHJlc2VudGVkIGFzIGEgPGNvZGU+RGF0ZTwvY29kZT4gb2JqZWN0LgorICAgICAqCisgICAgICogQHNlZSAjc2V0RGF0ZQorICAgICAqIEBzZWUgI2dldFRpbWUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBnZXREYXRlKCkgeworICAgICAgICByZXR1cm4gbmV3IERhdGUodGltZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCB0aW1lIG9mIHRoaXMgPGNvZGU+Q2FsZW5kYXJBc3Ryb25vbWVyPC9jb2RlPiBvYmplY3QsCisgICAgICogZXhwcmVzc2VkIGFzIGEgImp1bGlhbiBkYXkgbnVtYmVyIiwgd2hpY2ggaXMgdGhlIG51bWJlciBvZiBlbGFwc2VkCisgICAgICogZGF5cyBzaW5jZSAxLzEvNDcxMyBCQyAoSnVsaWFuKSwgMTI6MDAgR01ULgorICAgICAqCisgICAgICogQHNlZSAjc2V0SnVsaWFuRGF5CisgICAgICogQHNlZSAjSlVMSUFOX0VQT0NIX01TCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBnZXRKdWxpYW5EYXkoKSB7CisgICAgICAgIGlmIChqdWxpYW5EYXkgPT0gSU5WQUxJRCkgeworICAgICAgICAgICAganVsaWFuRGF5ID0gKGRvdWJsZSkodGltZSAtIEpVTElBTl9FUE9DSF9NUykgLyAoZG91YmxlKURBWV9NUzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4ganVsaWFuRGF5OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhpcyBvYmplY3QncyB0aW1lIGV4cHJlc3NlZCBpbiBqdWxpYW4gY2VudHVyaWVzOgorICAgICAqIHRoZSBudW1iZXIgb2YgY2VudHVyaWVzIGFmdGVyIDEvMS8xOTAwIEFELCAxMjowMCBHTVQKKyAgICAgKgorICAgICAqIEBzZWUgI2dldEp1bGlhbkRheQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgZ2V0SnVsaWFuQ2VudHVyeSgpIHsKKyAgICAgICAgaWYgKGp1bGlhbkNlbnR1cnkgPT0gSU5WQUxJRCkgeworICAgICAgICAgICAganVsaWFuQ2VudHVyeSA9IChnZXRKdWxpYW5EYXkoKSAtIDI0MTUwMjAuMCkgLyAzNjUyNTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4ganVsaWFuQ2VudHVyeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IEdyZWVud2ljaCBzaWRlcmVhbCB0aW1lLCBtZWFzdXJlZCBpbiBob3VycworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgZ2V0R3JlZW53aWNoU2lkZXJlYWwoKSB7CisgICAgICAgIGlmIChzaWRlcmVhbFRpbWUgPT0gSU5WQUxJRCkgeworICAgICAgICAgICAgLy8gU2VlIHBhZ2UgODYgb2YgIlByYWN0aWFsIEFzdHJvbm9teSB3aXRoIHlvdXIgQ2FsY3VsYXRvciIsCisgICAgICAgICAgICAvLyBieSBQZXRlciBEdWZmZXQtU21pdGgsIGZvciBkZXRhaWxzIG9uIHRoZSBhbGdvcml0aG0uCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBkb3VibGUgVVQgPSBub3JtYWxpemUoKGRvdWJsZSl0aW1lL0hPVVJfTVMsIDI0KTsKKyAgICAgICAgCisgICAgICAgICAgICBzaWRlcmVhbFRpbWUgPSBub3JtYWxpemUoZ2V0U2lkZXJlYWxPZmZzZXQoKSArIFVUKjEuMDAyNzM3OTA5LCAyNCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNpZGVyZWFsVGltZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBkb3VibGUgZ2V0U2lkZXJlYWxPZmZzZXQoKSB7CisgICAgICAgIGlmIChzaWRlcmVhbFQwID09IElOVkFMSUQpIHsKKyAgICAgICAgICAgIGRvdWJsZSBKRCAgPSBNYXRoLmZsb29yKGdldEp1bGlhbkRheSgpIC0gMC41KSArIDAuNTsKKyAgICAgICAgICAgIGRvdWJsZSBTICAgPSBKRCAtIDI0NTE1NDUuMDsKKyAgICAgICAgICAgIGRvdWJsZSBUICAgPSBTIC8gMzY1MjUuMDsKKyAgICAgICAgICAgIHNpZGVyZWFsVDAgPSBub3JtYWxpemUoNi42OTczNzQ1NTggKyAyNDAwLjA1MTMzNipUICsgMC4wMDAwMjU4NjIqVCpULCAyNCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNpZGVyZWFsVDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgbG9jYWwgc2lkZXJlYWwgdGltZSwgbWVhc3VyZWQgaW4gaG91cnMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGdldExvY2FsU2lkZXJlYWwoKSB7CisgICAgICAgIHJldHVybiBub3JtYWxpemUoZ2V0R3JlZW53aWNoU2lkZXJlYWwoKSArIChkb3VibGUpZkdtdE9mZnNldC9IT1VSX01TLCAyNCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnRzIGxvY2FsIHNpZGVyZWFsIHRpbWUgdG8gVW5pdmVyc2FsIFRpbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbHN0ICAgVGhlIExvY2FsIFNpZGVyZWFsIFRpbWUsIGluIGhvdXJzIHNpbmNlIHNpZGVyZWFsIG1pZG5pZ2h0CisgICAgICogICAgICAgICAgICAgIG9uIHRoaXMgb2JqZWN0J3MgY3VycmVudCBkYXRlLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSBjb3JyZXNwb25kaW5nIFVuaXZlcnNhbCBUaW1lLCBpbiBtaWxsaXNlY29uZHMgc2luY2UKKyAgICAgKiAgICAgICAgICAgICAgMSBKYW4gMTk3MCwgR01ULiAgCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nIGxzdFRvVVQoZG91YmxlIGxzdCkgeworICAgICAgICAvLyBDb252ZXJ0IHRvIGxvY2FsIG1lYW4gdGltZQorICAgICAgICBkb3VibGUgbHQgPSBub3JtYWxpemUoKGxzdCAtIGdldFNpZGVyZWFsT2Zmc2V0KCkpICogMC45OTcyNjk1NjYzLCAyNCk7CisgICAgICAgIAorICAgICAgICAvLyBUaGVuIGZpbmQgbG9jYWwgbWlkbmlnaHQgb24gdGhpcyBkYXkKKyAgICAgICAgbG9uZyBiYXNlID0gREFZX01TICogKCh0aW1lICsgZkdtdE9mZnNldCkvREFZX01TKSAtIGZHbXRPZmZzZXQ7CisgICAgICAgIAorICAgICAgICAvL291dCgiICAgIGx0ICA9IiArIGx0ICsgIiBob3VycyIpOworICAgICAgICAvL291dCgiICAgIGJhc2U9IiArIG5ldyBEYXRlKGJhc2UpKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBiYXNlICsgKGxvbmcpKGx0ICogSE9VUl9NUyk7CisgICAgfQorICAgIAorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvb3JkaW5hdGUgdHJhbnNmb3JtYXRpb25zLCBhbGwgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZSBvZiB0aGlzIG9iamVjdAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29udmVydCBmcm9tIGVjbGlwdGljIHRvIGVxdWF0b3JpYWwgY29vcmRpbmF0ZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZWNsaXB0aWMgIEEgcG9pbnQgaW4gdGhlIHNreSBpbiBlY2xpcHRpYyBjb29yZGluYXRlcy4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBjb3JyZXNwb25kaW5nIHBvaW50IGluIGVxdWF0b3JpYWwgY29vcmRpbmF0ZXMuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIEVxdWF0b3JpYWwgZWNsaXB0aWNUb0VxdWF0b3JpYWwoRWNsaXB0aWMgZWNsaXB0aWMpCisgICAgeworICAgICAgICByZXR1cm4gZWNsaXB0aWNUb0VxdWF0b3JpYWwoZWNsaXB0aWMubG9uZ2l0dWRlLCBlY2xpcHRpYy5sYXRpdHVkZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBmcm9tIGVjbGlwdGljIHRvIGVxdWF0b3JpYWwgY29vcmRpbmF0ZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZWNsaXBMb25nICAgICBUaGUgZWNsaXB0aWMgbG9uZ2l0dWRlCisgICAgICogQHBhcmFtIGVjbGlwTGF0ICAgICAgVGhlIGVjbGlwdGljIGxhdGl0dWRlCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyBwb2ludCBpbiBlcXVhdG9yaWFsIGNvb3JkaW5hdGVzLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBFcXVhdG9yaWFsIGVjbGlwdGljVG9FcXVhdG9yaWFsKGRvdWJsZSBlY2xpcExvbmcsIGRvdWJsZSBlY2xpcExhdCkKKyAgICB7CisgICAgICAgIC8vIFNlZSBwYWdlIDQyIG9mICJQcmFjdGlhbCBBc3Ryb25vbXkgd2l0aCB5b3VyIENhbGN1bGF0b3IiLAorICAgICAgICAvLyBieSBQZXRlciBEdWZmZXQtU21pdGgsIGZvciBkZXRhaWxzIG9uIHRoZSBhbGdvcml0aG0uCisKKyAgICAgICAgZG91YmxlIG9ibGlxID0gZWNsaXB0aWNPYmxpcXVpdHkoKTsKKyAgICAgICAgZG91YmxlIHNpbkUgPSBNYXRoLnNpbihvYmxpcSk7CisgICAgICAgIGRvdWJsZSBjb3NFID0gTWF0aC5jb3Mob2JsaXEpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIHNpbkwgPSBNYXRoLnNpbihlY2xpcExvbmcpOworICAgICAgICBkb3VibGUgY29zTCA9IE1hdGguY29zKGVjbGlwTG9uZyk7CisgICAgICAgIAorICAgICAgICBkb3VibGUgc2luQiA9IE1hdGguc2luKGVjbGlwTGF0KTsKKyAgICAgICAgZG91YmxlIGNvc0IgPSBNYXRoLmNvcyhlY2xpcExhdCk7CisgICAgICAgIGRvdWJsZSB0YW5CID0gTWF0aC50YW4oZWNsaXBMYXQpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBFcXVhdG9yaWFsKE1hdGguYXRhbjIoc2luTCpjb3NFIC0gdGFuQipzaW5FLCBjb3NMKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmFzaW4oc2luQipjb3NFICsgY29zQipzaW5FKnNpbkwpICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBmcm9tIGVjbGlwdGljIGxvbmdpdHVkZSB0byBlcXVhdG9yaWFsIGNvb3JkaW5hdGVzLgorICAgICAqCisgICAgICogQHBhcmFtIGVjbGlwTG9uZyAgICAgVGhlIGVjbGlwdGljIGxvbmdpdHVkZQorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgVGhlIGNvcnJlc3BvbmRpbmcgcG9pbnQgaW4gZXF1YXRvcmlhbCBjb29yZGluYXRlcy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgRXF1YXRvcmlhbCBlY2xpcHRpY1RvRXF1YXRvcmlhbChkb3VibGUgZWNsaXBMb25nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGVjbGlwdGljVG9FcXVhdG9yaWFsKGVjbGlwTG9uZywgMCk7ICAvLyBUT0RPOiBvcHRpbWl6ZQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBIb3Jpem9uIGVjbGlwdGljVG9Ib3Jpem9uKGRvdWJsZSBlY2xpcExvbmcpCisgICAgeworICAgICAgICBFcXVhdG9yaWFsIGVxdWF0b3JpYWwgPSBlY2xpcHRpY1RvRXF1YXRvcmlhbChlY2xpcExvbmcpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIEggPSBnZXRMb2NhbFNpZGVyZWFsKCkqUEkvMTIgLSBlcXVhdG9yaWFsLmFzY2Vuc2lvbjsgICAgIC8vIEhvdXItYW5nbGUKKyAgICAgICAgCisgICAgICAgIGRvdWJsZSBzaW5IID0gTWF0aC5zaW4oSCk7CisgICAgICAgIGRvdWJsZSBjb3NIID0gTWF0aC5jb3MoSCk7CisgICAgICAgIGRvdWJsZSBzaW5EID0gTWF0aC5zaW4oZXF1YXRvcmlhbC5kZWNsaW5hdGlvbik7CisgICAgICAgIGRvdWJsZSBjb3NEID0gTWF0aC5jb3MoZXF1YXRvcmlhbC5kZWNsaW5hdGlvbik7CisgICAgICAgIGRvdWJsZSBzaW5MID0gTWF0aC5zaW4oZkxhdGl0dWRlKTsKKyAgICAgICAgZG91YmxlIGNvc0wgPSBNYXRoLmNvcyhmTGF0aXR1ZGUpOworICAgICAgICAKKyAgICAgICAgZG91YmxlIGFsdGl0dWRlID0gTWF0aC5hc2luKHNpbkQqc2luTCArIGNvc0QqY29zTCpjb3NIKTsKKyAgICAgICAgZG91YmxlIGF6aW11dGggID0gTWF0aC5hdGFuMigtY29zRCpjb3NMKnNpbkgsIHNpbkQgLSBzaW5MICogTWF0aC5zaW4oYWx0aXR1ZGUpKTsKKworICAgICAgICByZXR1cm4gbmV3IEhvcml6b24oYXppbXV0aCwgYWx0aXR1ZGUpOworICAgIH0KKworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFRoZSBTdW4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vCisgICAgLy8gUGFyYW1ldGVycyBvZiB0aGUgU3VuJ3Mgb3JiaXQgYXMgb2YgdGhlIGVwb2NoIEphbiAwLjAgMTk5MAorICAgIC8vIEFuZ2xlcyBhcmUgaW4gcmFkaWFucyAoYWZ0ZXIgbXVsdGlwbHlpbmcgYnkgUEkvMTgwKQorICAgIC8vCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBKRF9FUE9DSCA9IDI0NDc4OTEuNTsgLy8gSnVsaWFuIGRheSBvZiBlcG9jaAorCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBTVU5fRVRBX0cgICA9IDI3OS40MDMzMDMgKiBQSS8xODA7IC8vIEVjbGlwdGljIGxvbmdpdHVkZSBhdCBlcG9jaAorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgU1VOX09NRUdBX0cgPSAyODIuNzY4NDIyICogUEkvMTgwOyAvLyBFY2xpcHRpYyBsb25naXR1ZGUgb2YgcGVyaWdlZQorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgU1VOX0UgICAgICA9ICAgMC4wMTY3MTM7ICAgICAgICAgIC8vIEVjY2VudHJpY2l0eSBvZiBvcmJpdAorICAgIC8vZG91YmxlIHN1blIwICAgICA9ICAgMS40OTU1ODVlODsgICAgICAgIC8vIFNlbWktbWFqb3IgYXhpcyBpbiBLTQorICAgIC8vZG91YmxlIHN1blRoZXRhMCA9ICAgMC41MzMxMjggKiBQSS8xODA7IC8vIEFuZ3VsYXIgZGlhbWV0ZXIgYXQgUjAKKworICAgIC8vIFRoZSBmb2xsb3dpbmcgdGhyZWUgbWV0aG9kcywgd2hpY2ggY29tcHV0ZSB0aGUgc3VuIHBhcmFtZXRlcnMKKyAgICAvLyBnaXZlbiBhYm92ZSBmb3IgYW4gYXJiaXRyYXJ5IGVwb2NoICh3aGF0ZXZlciB0aW1lIHRoZSBvYmplY3QgaXMKKyAgICAvLyBzZXQgdG8pLCBtYWtlIG9ubHkgYSBzbWFsbCBkaWZmZXJlbmNlIGFzIGNvbXBhcmVkIHRvIHVzaW5nIHRoZQorICAgIC8vIGFib3ZlIGNvbnN0YW50cy4gIEUuZy4sIFN1bnNldCB0aW1lcyBtaWdodCBkaWZmZXIgYnkgfjEyCisgICAgLy8gc2Vjb25kcy4gIEZ1cnRoZXJtb3JlLCB0aGUgZXRhLWcgY29tcHV0YXRpb24gaXMgYmVmdWRkbGVkIGJ5CisgICAgLy8gRHVmZmV0LVNtaXRoJ3MgaW5jb3JyZWN0IGNvZWZmaWNpZW50cyAocC44NikuICBJJ3ZlIGNvcnJlY3RlZAorICAgIC8vIHRoZSBmaXJzdC1vcmRlciBjb2VmZmljaWVudCBidXQgdGhlIG90aGVycyBtYXkgYmUgb2ZmIHRvbyAtIG5vCisgICAgLy8gd2F5IG9mIGtub3dpbmcgd2l0aG91dCBjb25zdWx0aW5nIGFub3RoZXIgc291cmNlLgorCisvLyAgLyoqCisvLyAgICogUmV0dXJuIHRoZSBzdW4ncyBlY2xpcHRpYyBsb25naXR1ZGUgYXQgcGVyaWdlZSBmb3IgdGhlIGN1cnJlbnQgdGltZS4KKy8vICAgKiBTZWUgRHVmZmV0dC1TbWl0aCwgcC4gODYuCisvLyAgICogQHJldHVybiByYWRpYW5zCisvLyAgICovCisvLyAgcHJpdmF0ZSBkb3VibGUgZ2V0U3VuT21lZ2FHKCkgeworLy8gICAgICBkb3VibGUgVCA9IGdldEp1bGlhbkNlbnR1cnkoKTsKKy8vICAgICAgcmV0dXJuICgyODEuMjIwODQ0NCArICgxLjcxOTE3NSArIDAuMDAwNDUyNzc4KlQpKlQpICogREVHX1JBRDsKKy8vICB9CisKKy8vICAvKioKKy8vICAgKiBSZXR1cm4gdGhlIHN1bidzIGVjbGlwdGljIGxvbmdpdHVkZSBmb3IgdGhlIGN1cnJlbnQgdGltZS4KKy8vICAgKiBTZWUgRHVmZmV0dC1TbWl0aCwgcC4gODYuCisvLyAgICogQHJldHVybiByYWRpYW5zCisvLyAgICovCisvLyAgcHJpdmF0ZSBkb3VibGUgZ2V0U3VuRXRhRygpIHsKKy8vICAgICAgZG91YmxlIFQgPSBnZXRKdWxpYW5DZW50dXJ5KCk7CisvLyAgICAgIC8vcmV0dXJuICgyNzkuNjk2Njc3OCArICgzNjAwMC43Njg5MiArIDAuMDAwMzAyNSpUKSpUKSAqIERFR19SQUQ7CisvLyAgICAgIC8vCisvLyAgICAgIC8vIFRoZSBhYm92ZSBsaW5lIGlzIGZyb20gRHVmZmV0dC1TbWl0aCwgYW5kIHlpZWxkcyBtYW5pZmVzdGx5IHdyb25nCisvLyAgICAgIC8vIHJlc3VsdHMuICBUaGUgYmVsb3cgY29uc3RhbnQgaXMgZGVyaXZlZCBlbXBpcmljYWxseSB0byBtYXRjaCB0aGUKKy8vICAgICAgLy8gY29uc3RhbnQgaGUgZ2l2ZXMgZm9yIHRoZSAxOTkwIEVQT0NILgorLy8gICAgICAvLworLy8gICAgICByZXR1cm4gKDI3OS42OTY2Nzc4ICsgKC0wLjMyNjI1NDE1ODI3MTgwMjQgKyAwLjAwMDMwMjUqVCkqVCkgKiBERUdfUkFEOworLy8gIH0KKworLy8gIC8qKgorLy8gICAqIFJldHVybiB0aGUgc3VuJ3MgZWNjZW50cmljaXR5IG9mIG9yYml0IGZvciB0aGUgY3VycmVudCB0aW1lLgorLy8gICAqIFNlZSBEdWZmZXR0LVNtaXRoLCBwLiA4Ni4KKy8vICAgKiBAcmV0dXJuIGRvdWJsZQorLy8gICAqLworLy8gIHByaXZhdGUgZG91YmxlIGdldFN1bkUoKSB7CisvLyAgICAgIGRvdWJsZSBUID0gZ2V0SnVsaWFuQ2VudHVyeSgpOworLy8gICAgICByZXR1cm4gMC4wMTY3NTEwNCAtICgwLjAwMDA0MTggKyAwLjAwMDAwMDEyNipUKSpUOworLy8gIH0KKworICAgIC8qKgorICAgICAqIFRoZSBsb25naXR1ZGUgb2YgdGhlIHN1biBhdCB0aGUgdGltZSBzcGVjaWZpZWQgYnkgdGhpcyBvYmplY3QuCisgICAgICogVGhlIGxvbmdpdHVkZSBpcyBtZWFzdXJlZCBpbiByYWRpYW5zIGFsb25nIHRoZSBlY2xpcHRpYworICAgICAqIGZyb20gdGhlICJmaXJzdCBwb2ludCBvZiBBcmllcywiIHRoZSBwb2ludCBhdCB3aGljaCB0aGUgZWNsaXB0aWMKKyAgICAgKiBjcm9zc2VzIHRoZSBlYXJ0aCdzIGVxdWF0b3JpYWwgcGxhbmUgYXQgdGhlIHZlcm5hbCBlcXVpbm94LgorICAgICAqIDxwPgorICAgICAqIEN1cnJlbnRseSwgdGhpcyBtZXRob2QgdXNlcyBhbiBhcHByb3hpbWF0aW9uIG9mIHRoZSB0d28tYm9keSBLZXBsZXIncworICAgICAqIGVxdWF0aW9uIGZvciB0aGUgZWFydGggYW5kIHRoZSBzdW4uICBJdCBkb2VzIG5vdCB0YWtlIGludG8gYWNjb3VudCB0aGUKKyAgICAgKiBwZXJ0dXJiYXRpb25zIGNhdXNlZCBieSB0aGUgb3RoZXIgcGxhbmV0cywgdGhlIG1vb24sIGV0Yy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGdldFN1bkxvbmdpdHVkZSgpCisgICAgeworICAgICAgICAvLyBTZWUgcGFnZSA4NiBvZiAiUHJhY3RpYWwgQXN0cm9ub215IHdpdGggeW91ciBDYWxjdWxhdG9yIiwKKyAgICAgICAgLy8gYnkgUGV0ZXIgRHVmZmV0LVNtaXRoLCBmb3IgZGV0YWlscyBvbiB0aGUgYWxnb3JpdGhtLgorICAgICAgICAKKyAgICAgICAgaWYgKHN1bkxvbmdpdHVkZSA9PSBJTlZBTElEKSB7CisgICAgICAgICAgICBkb3VibGVbXSByZXN1bHQgPSBnZXRTdW5Mb25naXR1ZGUoZ2V0SnVsaWFuRGF5KCkpOworICAgICAgICAgICAgc3VuTG9uZ2l0dWRlID0gcmVzdWx0WzBdOworICAgICAgICAgICAgbWVhbkFub21hbHlTdW4gPSByZXN1bHRbMV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN1bkxvbmdpdHVkZTsKKyAgICB9CisgIAorICAgIC8qKgorICAgICAqIFRPRE8gTWFrZSB0aGlzIHB1YmxpYyB3aGVuIHRoZSBlbnRpcmUgY2xhc3MgaXMgcGFja2FnZS1wcml2YXRlLgorICAgICAqLworICAgIC8qcHVibGljKi8gZG91YmxlW10gZ2V0U3VuTG9uZ2l0dWRlKGRvdWJsZSBqdWxpYW5EYXkpCisgICAgeworICAgICAgICAvLyBTZWUgcGFnZSA4NiBvZiAiUHJhY3RpYWwgQXN0cm9ub215IHdpdGggeW91ciBDYWxjdWxhdG9yIiwKKyAgICAgICAgLy8gYnkgUGV0ZXIgRHVmZmV0LVNtaXRoLCBmb3IgZGV0YWlscyBvbiB0aGUgYWxnb3JpdGhtLgorICAgICAgICAKKyAgICAgICAgZG91YmxlIGRheSA9IGp1bGlhbkRheSAtIEpEX0VQT0NIOyAgICAgICAvLyBEYXlzIHNpbmNlIGVwb2NoCisgICAgICAgIAorICAgICAgICAvLyBGaW5kIHRoZSBhbmd1bGFyIGRpc3RhbmNlIHRoZSBzdW4gaW4gYSBmaWN0aXRpb3VzCisgICAgICAgIC8vIGNpcmN1bGFyIG9yYml0IGhhcyB0cmF2ZWxsZWQgc2luY2UgdGhlIGVwb2NoLgorICAgICAgICBkb3VibGUgZXBvY2hBbmdsZSA9IG5vcm0yUEkoUEkyL1RST1BJQ0FMX1lFQVIqZGF5KTsKKyAgICAgICAgCisgICAgICAgIC8vIFRoZSBlcG9jaCB3YXNuJ3QgYXQgdGhlIHN1bidzIHBlcmlnZWU7IGZpbmQgdGhlIGFuZ3VsYXIgZGlzdGFuY2UKKyAgICAgICAgLy8gc2luY2UgcGVyaWdlZSwgd2hpY2ggaXMgY2FsbGVkIHRoZSAibWVhbiBhbm9tYWx5IgorICAgICAgICBkb3VibGUgbWVhbkFub21hbHkgPSBub3JtMlBJKGVwb2NoQW5nbGUgKyBTVU5fRVRBX0cgLSBTVU5fT01FR0FfRyk7CisgICAgICAgIAorICAgICAgICAvLyBOb3cgZmluZCB0aGUgInRydWUgYW5vbWFseSIsIGUuZy4gdGhlIHJlYWwgc29sYXIgbG9uZ2l0dWRlCisgICAgICAgIC8vIGJ5IHNvbHZpbmcgS2VwbGVyJ3MgZXF1YXRpb24gZm9yIGFuIGVsbGlwdGljYWwgb3JiaXQKKyAgICAgICAgLy8gTk9URTogVGhlIDNyZCBlZC4gb2YgdGhlIGJvb2sgbGlzdHMgb21lZ2FfZyBhbmQgZXRhX2cgaW4gZGlmZmVyZW50CisgICAgICAgIC8vIGVxdWF0aW9uczsgb21lZ2FfZyBpcyB0byBiZSBjb3JyZWN0LgorICAgICAgICByZXR1cm4gbmV3IGRvdWJsZVtdIHsKKyAgICAgICAgICAgIG5vcm0yUEkodHJ1ZUFub21hbHkobWVhbkFub21hbHksIFNVTl9FKSArIFNVTl9PTUVHQV9HKSwKKyAgICAgICAgICAgIG1lYW5Bbm9tYWx5CisgICAgICAgIH07CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBzdW4gYXQgdGhpcyBvYmplY3QncyBjdXJyZW50IGRhdGUgYW5kIHRpbWUsCisgICAgICogaW4gZXF1YXRvcmlhbCBjb29yZGluYXRlcy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgRXF1YXRvcmlhbCBnZXRTdW5Qb3NpdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGVjbGlwdGljVG9FcXVhdG9yaWFsKGdldFN1bkxvbmdpdHVkZSgpLCAwKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgU29sYXJMb25naXR1ZGUgeworICAgICAgICBkb3VibGUgdmFsdWU7CisgICAgICAgIFNvbGFyTG9uZ2l0dWRlKGRvdWJsZSB2YWwpIHsgdmFsdWUgPSB2YWw7IH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmVwcmVzZW50aW5nIHRoZSB2ZXJuYWwgZXF1aW5veC4KKyAgICAgKiBGb3IgdXNlIHdpdGgge0BsaW5rICNnZXRTdW5UaW1lIGdldFN1blRpbWV9LiAKKyAgICAgKiBOb3RlOiBJbiB0aGlzIGNhc2UsICJ2ZXJuYWwiIHJlZmVycyB0byB0aGUgbm9ydGhlcm4gaGVtaXNwaGVyZSdzIHNlYXNvbnMuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTb2xhckxvbmdpdHVkZSBWRVJOQUxfRVFVSU5PWCAgPSBuZXcgU29sYXJMb25naXR1ZGUoMCk7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmVwcmVzZW50aW5nIHRoZSBzdW1tZXIgc29sc3RpY2UuCisgICAgICogRm9yIHVzZSB3aXRoIHtAbGluayAjZ2V0U3VuVGltZSBnZXRTdW5UaW1lfS4KKyAgICAgKiBOb3RlOiBJbiB0aGlzIGNhc2UsICJzdW1tZXIiIHJlZmVycyB0byB0aGUgbm9ydGhlcm4gaGVtaXNwaGVyZSdzIHNlYXNvbnMuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTb2xhckxvbmdpdHVkZSBTVU1NRVJfU09MU1RJQ0UgPSBuZXcgU29sYXJMb25naXR1ZGUoUEkvMik7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmVwcmVzZW50aW5nIHRoZSBhdXR1bW5hbCBlcXVpbm94LgorICAgICAqIEZvciB1c2Ugd2l0aCB7QGxpbmsgI2dldFN1blRpbWUgZ2V0U3VuVGltZX0uCisgICAgICogTm90ZTogSW4gdGhpcyBjYXNlLCAiYXV0dW1uIiByZWZlcnMgdG8gdGhlIG5vcnRoZXJuIGhlbWlzcGhlcmUncyBzZWFzb25zLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU29sYXJMb25naXR1ZGUgQVVUVU1OX0VRVUlOT1ggID0gbmV3IFNvbGFyTG9uZ2l0dWRlKFBJKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCByZXByZXNlbnRpbmcgdGhlIHdpbnRlciBzb2xzdGljZS4KKyAgICAgKiBGb3IgdXNlIHdpdGgge0BsaW5rICNnZXRTdW5UaW1lIGdldFN1blRpbWV9LgorICAgICAqIE5vdGU6IEluIHRoaXMgY2FzZSwgIndpbnRlciIgcmVmZXJzIHRvIHRoZSBub3J0aGVybiBoZW1pc3BoZXJlJ3Mgc2Vhc29ucy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNvbGFyTG9uZ2l0dWRlIFdJTlRFUl9TT0xTVElDRSA9IG5ldyBTb2xhckxvbmdpdHVkZSgoUEkqMykvMik7CisgICAgCisgICAgLyoqCisgICAgICogRmluZCB0aGUgbmV4dCB0aW1lIGF0IHdoaWNoIHRoZSBzdW4ncyBlY2xpcHRpYyBsb25naXR1ZGUgd2lsbCBoYXZlCisgICAgICogdGhlIGRlc2lyZWQgdmFsdWUuICAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyBnZXRTdW5UaW1lKGRvdWJsZSBkZXNpcmVkLCBib29sZWFuIG5leHQpCisgICAgeworICAgICAgICByZXR1cm4gdGltZU9mQW5nbGUoIG5ldyBBbmdsZUZ1bmMoKSB7IHB1YmxpYyBkb3VibGUgZXZhbCgpIHsgcmV0dXJuIGdldFN1bkxvbmdpdHVkZSgpOyB9IH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaXJlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUk9QSUNBTF9ZRUFSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1JTlVURV9NUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRmluZCB0aGUgbmV4dCB0aW1lIGF0IHdoaWNoIHRoZSBzdW4ncyBlY2xpcHRpYyBsb25naXR1ZGUgd2lsbCBoYXZlCisgICAgICogdGhlIGRlc2lyZWQgdmFsdWUuICAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyBnZXRTdW5UaW1lKFNvbGFyTG9uZ2l0dWRlIGRlc2lyZWQsIGJvb2xlYW4gbmV4dCkgeworICAgICAgICByZXR1cm4gZ2V0U3VuVGltZShkZXNpcmVkLnZhbHVlLCBuZXh0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGltZSAoR01UKSBvZiBzdW5yaXNlIG9yIHN1bnNldCBvbiB0aGUgbG9jYWwgZGF0ZSB0byB3aGljaAorICAgICAqIHRoaXMgY2FsZW5kYXIgaXMgY3VycmVudGx5IHNldC4KKyAgICAgKgorICAgICAqIE5PVEU6IFRoaXMgbWV0aG9kIG9ubHkgd29ya3Mgd2VsbCBpZiB0aGlzIG9iamVjdCBpcyBzZXQgdG8gYQorICAgICAqIHRpbWUgbmVhciBsb2NhbCBub29uLiAgQmVjYXVzZSBvZiB2YXJpYXRpb25zIGJldHdlZW4gdGhlIGxvY2FsCisgICAgICogb2ZmaWNpYWwgdGltZSB6b25lIGFuZCB0aGUgZ2VvZ3JhcGhpYyBsb25naXR1ZGUsIHRoZQorICAgICAqIGNvbXB1dGF0aW9uIGNhbiBmbG9wIG92ZXIgaW50byBhbiBhZGphY2VudCBkYXkgaWYgdGhpcyBvYmplY3QKKyAgICAgKiBpcyBzZXQgdG8gYSB0aW1lIG5lYXIgbG9jYWwgbWlkbmlnaHQuCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGxvbmcgZ2V0U3VuUmlzZVNldChib29sZWFuIHJpc2UpCisgICAgeworICAgICAgICBsb25nIHQwID0gdGltZTsKKworICAgICAgICAvLyBNYWtlIGEgcm91Z2ggZ3Vlc3M6IDZhbSBvciA2cG0gbG9jYWwgdGltZSBvbiB0aGUgY3VycmVudCBkYXkKKyAgICAgICAgbG9uZyBub29uID0gKCh0aW1lICsgZkdtdE9mZnNldCkvREFZX01TKSpEQVlfTVMgLSBmR210T2Zmc2V0ICsgMTIqSE9VUl9NUzsKKyAgICAgICAgCisgICAgICAgIHNldFRpbWUobm9vbiArIChsb25nKSgocmlzZSA/IC02IDogNikgKiBIT1VSX01TKSk7CisgICAgICAgIAorICAgICAgICBsb25nIHQgPSByaXNlT3JTZXQobmV3IENvb3JkRnVuYygpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgRXF1YXRvcmlhbCBldmFsKCkgeyByZXR1cm4gZ2V0U3VuUG9zaXRpb24oKTsgfQorICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgcmlzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAuNTMzICogREVHX1JBRCwgICAgICAgIC8vIEFuZ3VsYXIgRGlhbWV0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAzNCAvNjAuMCAqIERFR19SQUQsICAgIC8vIFJlZnJhY3Rpb24gY29ycmVjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgIE1JTlVURV9NUyAvIDEyKTsgICAgICAgLy8gRGVzaXJlZCBhY2N1cmFjeQorCisgICAgICAgIHNldFRpbWUodDApOworICAgICAgICByZXR1cm4gdDsKKyAgICB9CisKKy8vIENvbW1lbnRlZCBvdXQgLSBjdXJyZW50bHkgdW51c2VkLiBJQ1UgMi42LCBBbGFuCisvLyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgIC8vIEFsdGVybmF0ZSBTdW4gUmlzZS9TZXQKKy8vICAgIC8vIFNlZSBEdWZmZXR0LVNtaXRoIHAuOTMKKy8vICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vICAgIC8vIFRoaXMgeWllbGRzIHdvcnNlIHJlc3VsdHMgKGFzIGNvbXBhcmVkIHRvIFVTTk8gZGF0YSkgdGhhbiBnZXRTdW5SaXNlU2V0KCkuCisvLyAgICAvKioKKy8vICAgICAqIFRPRE8gTWFrZSB0aGlzIHB1YmxpYyB3aGVuIHRoZSBlbnRpcmUgY2xhc3MgaXMgcGFja2FnZS1wcml2YXRlLgorLy8gICAgICovCisvLyAgICAvKnB1YmxpYyovIGxvbmcgZ2V0U3VuUmlzZVNldDIoYm9vbGVhbiByaXNlKSB7CisvLyAgICAgICAgLy8gMS4gQ2FsY3VsYXRlIGNvb3JkaW5hdGVzIG9mIHRoZSBzdW4ncyBjZW50ZXIgZm9yIG1pZG5pZ2h0CisvLyAgICAgICAgZG91YmxlIGpkID0gTWF0aC5mbG9vcihnZXRKdWxpYW5EYXkoKSAtIDAuNSkgKyAwLjU7CisvLyAgICAgICAgZG91YmxlW10gc2wgPSBnZXRTdW5Mb25naXR1ZGUoamQpOworLy8gICAgICAgIGRvdWJsZSBsYW1iZGExID0gc2xbMF07CisvLyAgICAgICAgRXF1YXRvcmlhbCBwb3MxID0gZWNsaXB0aWNUb0VxdWF0b3JpYWwobGFtYmRhMSwgMCk7CisvLworLy8gICAgICAgIC8vIDIuIEFkZCAuLi4gdG8gbGFtYmRhIHRvIGdldCBwb3NpdGlvbiAyNCBob3VycyBsYXRlcgorLy8gICAgICAgIGRvdWJsZSBsYW1iZGEyID0gbGFtYmRhMSArIDAuOTg1NjQ3KkRFR19SQUQ7CisvLyAgICAgICAgRXF1YXRvcmlhbCBwb3MyID0gZWNsaXB0aWNUb0VxdWF0b3JpYWwobGFtYmRhMiwgMCk7CisvLworLy8gICAgICAgIC8vIDMuIENhbGN1bGF0ZSBMU1RzIG9mIHJpc2luZyBhbmQgc2V0dGluZyBmb3IgdGhlc2UgdHdvIHBvc2l0aW9ucworLy8gICAgICAgIGRvdWJsZSB0YW5MID0gTWF0aC50YW4oZkxhdGl0dWRlKTsKKy8vICAgICAgICBkb3VibGUgSCA9IE1hdGguYWNvcygtdGFuTCAqIE1hdGgudGFuKHBvczEuZGVjbGluYXRpb24pKTsKKy8vICAgICAgICBkb3VibGUgbHN0MXIgPSAoUEkyICsgcG9zMS5hc2NlbnNpb24gLSBIKSAqIDI0IC8gUEkyOworLy8gICAgICAgIGRvdWJsZSBsc3QxcyA9IChwb3MxLmFzY2Vuc2lvbiArIEgpICogMjQgLyBQSTI7CisvLyAgICAgICAgICAgICAgIEggPSBNYXRoLmFjb3MoLXRhbkwgKiBNYXRoLnRhbihwb3MyLmRlY2xpbmF0aW9uKSk7CisvLyAgICAgICAgZG91YmxlIGxzdDJyID0gKFBJMi1IICsgcG9zMi5hc2NlbnNpb24gKSAqIDI0IC8gUEkyOworLy8gICAgICAgIGRvdWJsZSBsc3QycyA9IChIICsgcG9zMi5hc2NlbnNpb24gKSAqIDI0IC8gUEkyOworLy8gICAgICAgIGlmIChsc3QxciA+IDI0KSBsc3QxciAtPSAyNDsKKy8vICAgICAgICBpZiAobHN0MXMgPiAyNCkgbHN0MXMgLT0gMjQ7CisvLyAgICAgICAgaWYgKGxzdDJyID4gMjQpIGxzdDJyIC09IDI0OworLy8gICAgICAgIGlmIChsc3QycyA+IDI0KSBsc3QycyAtPSAyNDsKKy8vICAgICAgICAKKy8vICAgICAgICAvLyA0LiBDb252ZXJ0IExTVHMgdG8gR1NUcy4gIElmIEdTVDEgPiBHU1QyLCBhZGQgMjQgdG8gR1NUMi4KKy8vICAgICAgICBkb3VibGUgZ3N0MXIgPSBsc3RUb0dzdChsc3Qxcik7CisvLyAgICAgICAgZG91YmxlIGdzdDFzID0gbHN0VG9Hc3QobHN0MXMpOworLy8gICAgICAgIGRvdWJsZSBnc3QyciA9IGxzdFRvR3N0KGxzdDJyKTsKKy8vICAgICAgICBkb3VibGUgZ3N0MnMgPSBsc3RUb0dzdChsc3Qycyk7CisvLyAgICAgICAgaWYgKGdzdDFyID4gZ3N0MnIpIGdzdDJyICs9IDI0OworLy8gICAgICAgIGlmIChnc3QxcyA+IGdzdDJzKSBnc3QycyArPSAyNDsKKy8vCisvLyAgICAgICAgLy8gNS4gQ2FsY3VsYXRlIEdTVCBhdCAwaCBVVCBvZiB0aGlzIGRhdGUKKy8vICAgICAgICBkb3VibGUgdDAwID0gdXRUb0dzdCgwKTsKKy8vICAgICAgICAKKy8vICAgICAgICAvLyA2LiBDYWxjdWxhdGUgR1NUIGF0IDBoIG9uIHRoZSBvYnNlcnZlcidzIGxvbmdpdHVkZQorLy8gICAgICAgIGRvdWJsZSBvZmZzZXQgPSBNYXRoLnJvdW5kKGZMb25naXR1ZGUqMTIvUEkpOyAvLyBwLjk1IHN0ZXAgNjsgaGUgX3JvdW5kc18gdG8gbmVhcmVzdCAxNSBkZWcuCisvLyAgICAgICAgZG91YmxlIHQwMHAgPSB0MDAgLSBvZmZzZXQqMS4wMDI3Mzc5MDk7CisvLyAgICAgICAgaWYgKHQwMHAgPCAwKSB0MDBwICs9IDI0OyAvLyBkbyBOT1Qgbm9ybWFsaXplCisvLyAgICAgICAgCisvLyAgICAgICAgLy8gNy4gQWRqdXN0CisvLyAgICAgICAgaWYgKGdzdDFyIDwgdDAwcCkgeworLy8gICAgICAgICAgICBnc3QxciArPSAyNDsKKy8vICAgICAgICAgICAgZ3N0MnIgKz0gMjQ7CisvLyAgICAgICAgfQorLy8gICAgICAgIGlmIChnc3QxcyA8IHQwMHApIHsKKy8vICAgICAgICAgICAgZ3N0MXMgKz0gMjQ7CisvLyAgICAgICAgICAgIGdzdDJzICs9IDI0OworLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgLy8gOC4KKy8vICAgICAgICBkb3VibGUgZ3N0ciA9ICgyNC4wNypnc3Qxci10MDAqKGdzdDJyLWdzdDFyKSkvKDI0LjA3K2dzdDFyLWdzdDJyKTsKKy8vICAgICAgICBkb3VibGUgZ3N0cyA9ICgyNC4wNypnc3Qxcy10MDAqKGdzdDJzLWdzdDFzKSkvKDI0LjA3K2dzdDFzLWdzdDJzKTsKKy8vCisvLyAgICAgICAgLy8gOS4gQ29ycmVjdCBmb3IgcGFyYWxsYXgsIHJlZnJhY3Rpb24sIGFuZCBzdW4ncyBkaWFtZXRlcgorLy8gICAgICAgIGRvdWJsZSBkZWMgPSAocG9zMS5kZWNsaW5hdGlvbiArIHBvczIuZGVjbGluYXRpb24pIC8gMjsKKy8vICAgICAgICBkb3VibGUgcHNpID0gTWF0aC5hY29zKE1hdGguc2luKGZMYXRpdHVkZSkgLyBNYXRoLmNvcyhkZWMpKTsKKy8vICAgICAgICBkb3VibGUgeCA9IDAuODMwNzI1ICogREVHX1JBRDsgLy8gcGFyYWxsYXgrcmVmcmFjdGlvbitkaWFtZXRlcgorLy8gICAgICAgIGRvdWJsZSB5ID0gTWF0aC5hc2luKE1hdGguc2luKHgpIC8gTWF0aC5zaW4ocHNpKSkgKiBSQURfREVHOworLy8gICAgICAgIGRvdWJsZSBkZWx0YV90ID0gMjQwICogeSAvIE1hdGguY29zKGRlYykgLyAzNjAwOyAvLyBob3VycworLy8KKy8vICAgICAgICAvLyAxMC4gQWRkIGNvcnJlY3Rpb24gdG8gR1NUcywgc3VidHJhY3QgZnJvbSBHU1RyCisvLyAgICAgICAgZ3N0ciAtPSBkZWx0YV90OworLy8gICAgICAgIGdzdHMgKz0gZGVsdGFfdDsKKy8vCisvLyAgICAgICAgLy8gMTEuIENvbnZlcnQgR1NUIHRvIFVUIGFuZCB0aGVuIHRvIGxvY2FsIGNpdmlsIHRpbWUKKy8vICAgICAgICBkb3VibGUgdXQgPSBnc3RUb1V0KHJpc2UgPyBnc3RyIDogZ3N0cyk7CisvLyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oKHJpc2U/InJpc2U9Ijoic2V0PSIpICsgdXQgKyAiLCBkZWx0YV90PSIgKyBkZWx0YV90KTsKKy8vICAgICAgICBsb25nIG1pZG5pZ2h0ID0gREFZX01TICogKHRpbWUgLyBEQVlfTVMpOyAvLyBGaW5kIFVUIG1pZG5pZ2h0IG9uIHRoaXMgZGF5CisvLyAgICAgICAgcmV0dXJuIG1pZG5pZ2h0ICsgKGxvbmcpICh1dCAqIDM2MDAwMDApOworLy8gICAgfQorCisvLyBDb21tZW50ZWQgb3V0IC0gY3VycmVudGx5IHVudXNlZC4gSUNVIDIuNiwgQWxhbgorLy8gICAgLyoqCisvLyAgICAgKiBDb252ZXJ0IGxvY2FsIHNpZGVyZWFsIHRpbWUgdG8gR3JlZW53aWNoIHNpZGVyZWFsIHRpbWUuCisvLyAgICAgKiBTZWN0aW9uIDE1LiAgRHVmZmV0dC1TbWl0aCBwLjIxCisvLyAgICAgKiBAcGFyYW0gbHN0IGluIGhvdXJzICgwLi4yNCkKKy8vICAgICAqIEByZXR1cm4gR1NUIGluIGhvdXJzICgwLi4yNCkKKy8vICAgICAqLworLy8gICAgZG91YmxlIGxzdFRvR3N0KGRvdWJsZSBsc3QpIHsKKy8vICAgICAgICBkb3VibGUgZGVsdGEgPSBmTG9uZ2l0dWRlICogMjQgLyBQSTI7CisvLyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShsc3QgLSBkZWx0YSwgMjQpOworLy8gICAgfQorIAorLy8gQ29tbWVudGVkIG91dCAtIGN1cnJlbnRseSB1bnVzZWQuIElDVSAyLjYsIEFsYW4KKy8vICAgIC8qKgorLy8gICAgICogQ29udmVydCBVVCB0byBHU1Qgb24gdGhpcyBkYXRlLgorLy8gICAgICogU2VjdGlvbiAxMi4gIER1ZmZldHQtU21pdGggcC4xNworLy8gICAgICogQHBhcmFtIHV0IGluIGhvdXJzCisvLyAgICAgKiBAcmV0dXJuIEdTVCBpbiBob3VycworLy8gICAgICovCisvLyAgICBkb3VibGUgdXRUb0dzdChkb3VibGUgdXQpIHsKKy8vICAgICAgICByZXR1cm4gbm9ybWFsaXplKGdldFQwKCkgKyB1dCoxLjAwMjczNzkwOSwgMjQpOworLy8gICAgfQorCisvLyBDb21tZW50ZWQgb3V0IC0gY3VycmVudGx5IHVudXNlZC4gSUNVIDIuNiwgQWxhbgorLy8gICAgLyoqCisvLyAgICAgKiBDb252ZXJ0IEdTVCB0byBVVCBvbiB0aGlzIGRhdGUuCisvLyAgICAgKiBTZWN0aW9uIDEzLiAgRHVmZmV0dC1TbWl0aCBwLjE4CisvLyAgICAgKiBAcGFyYW0gZ3N0IGluIGhvdXJzCisvLyAgICAgKiBAcmV0dXJuIFVUIGluIGhvdXJzCisvLyAgICAgKi8KKy8vICAgIGRvdWJsZSBnc3RUb1V0KGRvdWJsZSBnc3QpIHsKKy8vICAgICAgICByZXR1cm4gbm9ybWFsaXplKGdzdCAtIGdldFQwKCksIDI0KSAqIDAuOTk3MjY5NTY2MzsKKy8vICAgIH0KKworLy8gQ29tbWVudGVkIG91dCAtIGN1cnJlbnRseSB1bnVzZWQuIElDVSAyLjYsIEFsYW4KKy8vICAgIGRvdWJsZSBnZXRUMCgpIHsKKy8vICAgICAgICAvLyBDb21tb24gY29tcHV0YXRpb24gZm9yIFVUIDw9PiBHU1QKKy8vCisvLyAgICAgICAgLy8gRmluZCBKRCBmb3IgMGggVVQKKy8vICAgICAgICBkb3VibGUgamQgPSBNYXRoLmZsb29yKGdldEp1bGlhbkRheSgpIC0gMC41KSArIDAuNTsKKy8vCisvLyAgICAgICAgZG91YmxlIHMgPSBqZCAtIDI0NTE1NDUuMDsKKy8vICAgICAgICBkb3VibGUgdCA9IHMgLyAzNjUyNS4wOworLy8gICAgICAgIGRvdWJsZSB0MCA9IDYuNjk3Mzc0NTU4ICsgKDI0MDAuMDUxMzM2ICsgMC4wMDAwMjU4NjIqdCkqdDsKKy8vICAgICAgICByZXR1cm4gdDA7CisvLyAgICB9CisKKy8vIENvbW1lbnRlZCBvdXQgLSBjdXJyZW50bHkgdW51c2VkLiBJQ1UgMi42LCBBbGFuCisvLyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgIC8vIEFsdGVybmF0ZSBTdW4gUmlzZS9TZXQKKy8vICAgIC8vIFNlZSBzY2kuYXN0cm8gRkFRCisvLyAgICAvLyBodHRwOi8vd3d3LmZhcXMub3JnL2ZhcXMvYXN0cm9ub215L2ZhcS9wYXJ0My9zZWN0aW9uLTUuaHRtbAorLy8gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICAgLy8gTm90ZTogVGhpcyBtZXRob2QgYXBwZWFycyB0byBwcm9kdWNlIGluZmVyaW9yIGFjY3VyYWN5IGFzCisvLyAgICAvLyBjb21wYXJlZCB0byBnZXRTdW5SaXNlU2V0KCkuIAorLy8KKy8vICAgIC8qKgorLy8gICAgICogVE9ETyBNYWtlIHRoaXMgcHVibGljIHdoZW4gdGhlIGVudGlyZSBjbGFzcyBpcyBwYWNrYWdlLXByaXZhdGUuCisvLyAgICAgKi8KKy8vICAgIC8qcHVibGljKi8gbG9uZyBnZXRTdW5SaXNlU2V0Myhib29sZWFuIHJpc2UpIHsKKy8vCisvLyAgICAgICAgLy8gQ29tcHV0ZSBkYXkgbnVtYmVyIGZvciAwLjAgSmFuIDIwMDAgZXBvY2gKKy8vICAgICAgICBkb3VibGUgZCA9IChkb3VibGUpKHRpbWUgLSBFUE9DSF8yMDAwX01TKSAvIERBWV9NUzsKKy8vCisvLyAgICAgICAgLy8gTm93IGNvbXB1dGUgdGhlIExvY2FsIFNpZGVyZWFsIFRpbWUsIExTVDoKKy8vICAgICAgICAvLyAKKy8vICAgICAgICBkb3VibGUgTFNUICA9ICA5OC45ODE4ICArICAwLjk4NTY0NzM1MiAqIGQgICsgIC8qVVQqMTUgICsgIGxvbmcqLworLy8gICAgICAgICAgICBmTG9uZ2l0dWRlKlJBRF9ERUc7CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gKGVhc3QgbG9uZy4gcG9zaXRpdmUpLiAgTm90ZSB0aGF0IExTVCBpcyBoZXJlIGV4cHJlc3NlZCBpbiBkZWdyZWVzLAorLy8gICAgICAgIC8vIHdoZXJlIDE1IGRlZ3JlZXMgY29ycmVzcG9uZHMgdG8gb25lIGhvdXIuICBTaW5jZSBMU1QgcmVhbGx5IGlzIGFuIGFuZ2xlLAorLy8gICAgICAgIC8vIGl0J3MgY29udmVuaWVudCB0byB1c2Ugb25lIHVuaXQtLS1kZWdyZWVzLS0tdGhyb3VnaG91dC4KKy8vCisvLyAgICAgICAgLy8gICAgIENPTVBVVElORyBUSEUgU1VOJ1MgUE9TSVRJT04KKy8vICAgICAgICAvLyAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIFRvIGJlIGFibGUgdG8gY29tcHV0ZSB0aGUgU3VuJ3MgcmlzZS9zZXQgdGltZXMsIHlvdSBuZWVkIHRvIGJlIGFibGUgdG8KKy8vICAgICAgICAvLyBjb21wdXRlIHRoZSBTdW4ncyBwb3NpdGlvbiBhdCBhbnkgdGltZS4gIEZpcnN0IGNvbXB1dGUgdGhlICJkYXkKKy8vICAgICAgICAvLyBudW1iZXIiIGQgYXMgb3V0bGluZWQgYWJvdmUsIGZvciB0aGUgZGVzaXJlZCBtb21lbnQuICBOZXh0IGNvbXB1dGU6CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgZG91YmxlIG9ibGVjbCA9IDIzLjQzOTMgLSAzLjU2M0UtNyAqIGQ7CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgZG91YmxlIHcgID0gIDI4Mi45NDA0ICArICA0LjcwOTM1RS01ICAgKiBkOworLy8gICAgICAgIGRvdWJsZSBNICA9ICAzNTYuMDQ3MCAgKyAgMC45ODU2MDAyNTg1ICogZDsKKy8vICAgICAgICBkb3VibGUgZSAgPSAgMC4wMTY3MDkgIC0gIDEuMTUxRS05ICAgICAqIGQ7CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gVGhpcyBpcyB0aGUgb2JsaXF1aXR5IG9mIHRoZSBlY2xpcHRpYywgcGx1cyBzb21lIG9mIHRoZSBlbGVtZW50cyBvZgorLy8gICAgICAgIC8vIHRoZSBTdW4ncyBhcHBhcmVudCBvcmJpdCAoaS5lLiwgcmVhbGx5IHRoZSBFYXJ0aCdzIG9yYml0KTogdyA9CisvLyAgICAgICAgLy8gYXJndW1lbnQgb2YgcGVyaWhlbGlvbiwgTSA9IG1lYW4gYW5vbWFseSwgZSA9IGVjY2VudHJpY2l0eS4KKy8vICAgICAgICAvLyBTZW1pLW1ham9yIGF4aXMgaXMgaGVyZSBhc3N1bWVkIHRvIGJlIGV4YWN0bHkgMS4wICh3aGlsZSBub3Qgc3RyaWN0bHkKKy8vICAgICAgICAvLyB0cnVlLCB0aGlzIGlzIHN0aWxsIGFuIGFjY3VyYXRlIGFwcHJveGltYXRpb24pLiAgTmV4dCBjb21wdXRlIEUsIHRoZQorLy8gICAgICAgIC8vIGVjY2VudHJpYyBhbm9tYWx5OgorLy8gICAgICAgIC8vIAorLy8gICAgICAgIGRvdWJsZSBFID0gTSArIGUqKDE4MC9QSSkgKiBNYXRoLnNpbihNKkRFR19SQUQpICogKCAxLjAgKyBlKk1hdGguY29zKE0qREVHX1JBRCkgKTsKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyB3aGVyZSBFIGFuZCBNIGFyZSBpbiBkZWdyZWVzLiAgVGhpcyBpcyBpdC0tLW5vIGZ1cnRoZXIgaXRlcmF0aW9ucyBhcmUKKy8vICAgICAgICAvLyBuZWVkZWQgYmVjYXVzZSB3ZSBrbm93IGUgaGFzIGEgc3VmZmljaWVudGx5IHNtYWxsIHZhbHVlLiAgTmV4dCBjb21wdXRlCisvLyAgICAgICAgLy8gdGhlIHRydWUgYW5vbWFseSwgdiwgYW5kIHRoZSBkaXN0YW5jZSwgcjoKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvKiAgICAgIHIgKiBjb3ModikgID0gICovIGRvdWJsZSBBICA9ICBNYXRoLmNvcyhFKkRFR19SQUQpIC0gZTsKKy8vICAgICAgICAvKiAgICAgIHIgKiBzaW4odikgID0gICovIGRvdWJsZSBCICA9ICBNYXRoLnNxcnQoMSAtIGUqZSkgKiBNYXRoLnNpbihFKkRFR19SQUQpOworLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIGFuZAorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vICAgICAgciAgPSAgc3FydCggQSpBICsgQipCICkKKy8vICAgICAgICBkb3VibGUgdiAgPSAgTWF0aC5hdGFuMiggQiwgQSApKlJBRF9ERUc7CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gVGhlIFN1bidzIHRydWUgbG9uZ2l0dWRlLCBzbG9uLCBjYW4gbm93IGJlIGNvbXB1dGVkOgorLy8gICAgICAgIC8vIAorLy8gICAgICAgIGRvdWJsZSBzbG9uICA9ICB2ICsgdzsKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyBTaW5jZSB0aGUgU3VuIGlzIGFsd2F5cyBhdCB0aGUgZWNsaXB0aWMgKG9yIGF0IGxlYXN0IHZlcnkgdmVyeSBjbG9zZSB0bworLy8gICAgICAgIC8vIGl0KSwgd2UgY2FuIHVzZSBzaW1wbGlmaWVkIGZvcm11bGFlIHRvIGNvbnZlcnQgc2xvbiAodGhlIFN1bidzIGVjbGlwdGljCisvLyAgICAgICAgLy8gbG9uZ2l0dWRlKSB0byBzUkEgYW5kIHNEZWMgKHRoZSBTdW4ncyBSQSBhbmQgRGVjKToKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyAgICAgICAgICAgICAgICAgICBzaW4oc2xvbikgKiBjb3Mob2JsZWNsKQorLy8gICAgICAgIC8vICAgICB0YW4oc1JBKSAgPSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gICAgICAgIC8vICAgICAgICAgICAgIGNvcyhzbG9uKQorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vICAgICBzaW4oc0RlYykgPSAgc2luKG9ibGVjbCkgKiBzaW4oc2xvbikKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyBBcyB3YXMgdGhlIGNhc2Ugd2hlbiBjb21wdXRpbmcgYXosIHRoZSBBemltdXRoLCBpZiBwb3NzaWJsZSB1c2UgYW4KKy8vICAgICAgICAvLyBhdGFuMigpIGZ1bmN0aW9uIHRvIGNvbXB1dGUgc1JBLgorLy8KKy8vICAgICAgICBkb3VibGUgc1JBID0gTWF0aC5hdGFuMihNYXRoLnNpbihzbG9uKkRFR19SQUQpICogTWF0aC5jb3Mob2JsZWNsKkRFR19SQUQpLCBNYXRoLmNvcyhzbG9uKkRFR19SQUQpKSpSQURfREVHOworLy8KKy8vICAgICAgICBkb3VibGUgc2luX3NEZWMgPSBNYXRoLnNpbihvYmxlY2wqREVHX1JBRCkgKiBNYXRoLnNpbihzbG9uKkRFR19SQUQpOworLy8gICAgICAgIGRvdWJsZSBzRGVjID0gTWF0aC5hc2luKHNpbl9zRGVjKSpSQURfREVHOworLy8KKy8vICAgICAgICAvLyAgICAgQ09NUFVUSU5HIFJJU0UgQU5EIFNFVCBUSU1FUworLy8gICAgICAgIC8vICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gVG8gY29tcHV0ZSB3aGVuIGFuIG9iamVjdCByaXNlcyBvciBzZXRzLCB5b3UgbXVzdCBjb21wdXRlIHdoZW4gaXQKKy8vICAgICAgICAvLyBwYXNzZXMgdGhlIG1lcmlkaWFuIGFuZCB0aGUgSEEgb2YgcmlzZS9zZXQuICBUaGVuIHRoZSByaXNlIHRpbWUgaXMKKy8vICAgICAgICAvLyB0aGUgbWVyaWRpYW4gdGltZSBtaW51cyBIQSBmb3IgcmlzZS9zZXQsIGFuZCB0aGUgc2V0IHRpbWUgaXMgdGhlCisvLyAgICAgICAgLy8gbWVyaWRpYW4gdGltZSBwbHVzIHRoZSBIQSBmb3IgcmlzZS9zZXQuCisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gVG8gZmluZCB0aGUgbWVyaWRpYW4gdGltZSwgY29tcHV0ZSB0aGUgTG9jYWwgU2lkZXJlYWwgVGltZSBhdCAwaCBsb2NhbAorLy8gICAgICAgIC8vIHRpbWUgKG9yIDBoIFVUIGlmIHlvdSBwcmVmZXIgdG8gd29yayBpbiBVVCkgYXMgb3V0bGluZWQgYWJvdmUtLS1uYW1lCisvLyAgICAgICAgLy8gdGhhdCBxdWFudGl0eSBMU1QwLiAgVGhlIE1lcmlkaWFuIFRpbWUsIE1ULCB3aWxsIG5vdyBiZToKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyAgICAgTVQgID0gIFJBIC0gTFNUMAorLy8gICAgICAgIGRvdWJsZSBNVCA9IG5vcm1hbGl6ZShzUkEgLSBMU1QsIDM2MCk7CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gd2hlcmUgIlJBIiBpcyB0aGUgb2JqZWN0J3MgUmlnaHQgQXNjZW5zaW9uIChpbiBkZWdyZWVzISkuICBJZiBuZWdhdGl2ZSwKKy8vICAgICAgICAvLyBhZGQgMzYwIGRlZyB0byBNVC4gIElmIHRoZSBvYmplY3QgaXMgdGhlIFN1biwgbGVhdmUgdGhlIHRpbWUgYXMgaXQgaXMsCisvLyAgICAgICAgLy8gYnV0IGlmIGl0J3Mgc3RlbGxhciwgbXVsdGlwbHkgTVQgYnkgMzY1LjI0MjIvMzY2LjI0MjIsIHRvIGNvbnZlcnQgZnJvbQorLy8gICAgICAgIC8vIHNpZGVyZWFsIHRvIHNvbGFyIHRpbWUuICBOb3csIGNvbXB1dGUgSEEgZm9yIHJpc2Uvc2V0LCBuYW1lIHRoYXQKKy8vICAgICAgICAvLyBxdWFudGl0eSBIQTA6CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gICAgICAgICAgICAgICAgIHNpbihoMCkgIC0gIHNpbihsYXQpICogc2luKERlYykKKy8vICAgICAgICAvLyBjb3MoSEEwKSAgPSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgY29zKGxhdCkgKiBjb3MoRGVjKQorLy8gICAgICAgIC8vIAorLy8gICAgICAgIC8vIHdoZXJlIGgwIGlzIHRoZSBhbHRpdHVkZSBzZWxlY3RlZCB0byByZXByZXNlbnQgcmlzZS9zZXQuICBGb3IgYSBwdXJlbHkKKy8vICAgICAgICAvLyBtYXRoZW1hdGljYWwgaG9yaXpvbiwgc2V0IGgwID0gMCBhbmQgc2ltcGxpZnkgdG86CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gICAgIGNvcyhIQTApICA9ICAtIHRhbihsYXQpICogdGFuKERlYykKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyBJZiB5b3Ugd2FudCB0byBhY2NvdW50IGZvciByZWZyYWN0aW9uIG9uIHRoZSBhdG1vc3BoZXJlLCBzZXQgaDAgPSAtMzUvNjAKKy8vICAgICAgICAvLyBkZWdyZWVzICgtMzUgYXJjIG1pbnV0ZXMpLCBhbmQgaWYgeW91IHdhbnQgdG8gY29tcHV0ZSB0aGUgcmlzZS9zZXQgdGltZXMKKy8vICAgICAgICAvLyBmb3IgdGhlIFN1bidzIHVwcGVyIGxpbWIsIHNldCBoMCA9IC01MC82MCAoLTUwIGFyYyBtaW51dGVzKS4KKy8vICAgICAgICAvLyAKKy8vICAgICAgICBkb3VibGUgaDAgPSAtNTAvNjAgKiBERUdfUkFEOworLy8KKy8vICAgICAgICBkb3VibGUgSEEwID0gTWF0aC5hY29zKAorLy8gICAgICAgICAgKE1hdGguc2luKGgwKSAtIE1hdGguc2luKGZMYXRpdHVkZSkgKiBzaW5fc0RlYykgLworLy8gICAgICAgICAgKE1hdGguY29zKGZMYXRpdHVkZSkgKiBNYXRoLmNvcyhzRGVjKkRFR19SQUQpKSkqUkFEX0RFRzsKKy8vCisvLyAgICAgICAgLy8gV2hlbiBIQTAgaGFzIGJlZW4gY29tcHV0ZWQsIGxlYXZlIGl0IGFzIGl0IGlzIGZvciB0aGUgU3VuIGJ1dCBtdWx0aXBseQorLy8gICAgICAgIC8vIGJ5IDM2NS4yNDIyLzM2Ni4yNDIyIGZvciBzdGVsbGFyIG9iamVjdHMsIHRvIGNvbnZlcnQgZnJvbSBzaWRlcmVhbCB0bworLy8gICAgICAgIC8vIHNvbGFyIHRpbWUuICBGaW5hbGx5IGNvbXB1dGU6CisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gICAgUmlzZSB0aW1lICA9ICBNVCAtIEhBMAorLy8gICAgICAgIC8vICAgIFNldCAgdGltZSAgPSAgTVQgKyBIQTAKKy8vICAgICAgICAvLyAKKy8vICAgICAgICAvLyBjb252ZXJ0IHRoZSB0aW1lcyBmcm9tIGRlZ3JlZXMgdG8gaG91cnMgYnkgZGl2aWRpbmcgYnkgMTUuCisvLyAgICAgICAgLy8gCisvLyAgICAgICAgLy8gSWYgeW91J2QgbGlrZSB0byBjaGVjayB0aGF0IHlvdXIgY2FsY3VsYXRpb25zIGFyZSBhY2N1cmF0ZSBvciBqdXN0CisvLyAgICAgICAgLy8gbmVlZCBhIHF1aWNrIHJlc3VsdCwgY2hlY2sgdGhlIFVTTk8ncyBTdW4gb3IgTW9vbiBSaXNlL1NldCBUYWJsZSwKKy8vICAgICAgICAvLyA8VVJMOmh0dHA6Ly9hYS51c25vLm5hdnkubWlsL0FBL2RhdGEvZG9jcy9SU19PbmVZZWFyLmh0bWw+LgorLy8KKy8vICAgICAgICBkb3VibGUgcmVzdWx0ID0gTVQgKyAocmlzZSA/IC1IQTAgOiBIQTApOyAvLyBpbiBkZWdyZWVzCisvLworLy8gICAgICAgIC8vIEZpbmQgVVQgbWlkbmlnaHQgb24gdGhpcyBkYXkKKy8vICAgICAgICBsb25nIG1pZG5pZ2h0ID0gREFZX01TICogKHRpbWUgLyBEQVlfTVMpOworLy8KKy8vICAgICAgICByZXR1cm4gbWlkbmlnaHQgKyAobG9uZykgKHJlc3VsdCAqIDM2MDAwMDAgLyAxNSk7CisvLyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBUaGUgTW9vbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgbW9vbkwwID0gMzE4LjM1MTY0OCAqIFBJLzE4MDsgICAvLyBNZWFuIGxvbmcuIGF0IGVwb2NoCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBtb29uUDAgPSAgMzYuMzQwNDEwICogUEkvMTgwOyAgIC8vIE1lYW4gbG9uZy4gb2YgcGVyaWdlZQorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgbW9vbk4wID0gMzE4LjUxMDEwNyAqIFBJLzE4MDsgICAvLyBNZWFuIGxvbmcuIG9mIG5vZGUKKyAgICBzdGF0aWMgZmluYWwgZG91YmxlIG1vb25JICA9ICAgNS4xNDUzNjYgKiBQSS8xODA7ICAgLy8gSW5jbGluYXRpb24gb2Ygb3JiaXQKKyAgICBzdGF0aWMgZmluYWwgZG91YmxlIG1vb25FICA9ICAgMC4wNTQ5MDA7ICAgICAgICAgICAgLy8gRWNjZW50cmljaXR5IG9mIG9yYml0CisgICAgCisgICAgLy8gVGhlc2UgYXJlbid0IHVzZWQgcmlnaHQgbm93CisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBtb29uQSAgPSAgIDMuODQ0MDFlNTsgICAgICAgICAgIC8vIHNlbWktbWFqb3IgYXhpcyAoa20pCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBtb29uVDAgPSAgIDAuNTE4MSAqIFBJLzE4MDsgICAgIC8vIEFuZ3VsYXIgc2l6ZSBhdCBkaXN0YW5jZSBBCisgICAgc3RhdGljIGZpbmFsIGRvdWJsZSBtb29uUGkgPSAgIDAuOTUwNyAqIFBJLzE4MDsgICAgIC8vIFBhcmFsbGF4IGF0IGRpc3RhbmNlIEEKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIG1vb24gYXQgdGhlIHRpbWUgc2V0IG9uIHRoaXMKKyAgICAgKiBvYmplY3QsIGluIGVxdWF0b3JpYWwgY29vcmRpbmF0ZXMuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIEVxdWF0b3JpYWwgZ2V0TW9vblBvc2l0aW9uKCkKKyAgICB7CisgICAgICAgIC8vCisgICAgICAgIC8vIFNlZSBwYWdlIDE0MiBvZiAiUHJhY3RpYWwgQXN0cm9ub215IHdpdGggeW91ciBDYWxjdWxhdG9yIiwKKyAgICAgICAgLy8gYnkgUGV0ZXIgRHVmZmV0LVNtaXRoLCBmb3IgZGV0YWlscyBvbiB0aGUgYWxnb3JpdGhtLgorICAgICAgICAvLworICAgICAgICBpZiAobW9vblBvc2l0aW9uID09IG51bGwpIHsKKyAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgc29sYXIgbG9uZ2l0dWRlLiAgSGFzIHRoZSBzaWRlIGVmZmVjdCBvZgorICAgICAgICAgICAgLy8gZmlsbGluZyBpbiAibWVhbkFub21hbHlTdW4iIGFzIHdlbGwuCisgICAgICAgICAgICBkb3VibGUgc3VuTG9uZ2l0dWRlID0gZ2V0U3VuTG9uZ2l0dWRlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBGaW5kIHRoZSAjIG9mIGRheXMgc2luY2UgdGhlIGVwb2NoIG9mIG91ciBvcmJpdGFsIHBhcmFtZXRlcnMuCisgICAgICAgICAgICAvLyBUT0RPOiBDb252ZXJ0IHRoZSB0aW1lIG9mIGRheSBwb3J0aW9uIGludG8gZXBoZW1lcmlzIHRpbWUKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICBkb3VibGUgZGF5ID0gZ2V0SnVsaWFuRGF5KCkgLSBKRF9FUE9DSDsgICAgICAgLy8gRGF5cyBzaW5jZSBlcG9jaAorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG1lYW4gbG9uZ2l0dWRlIGFuZCBhbm9tYWx5IG9mIHRoZSBtb29uLCBiYXNlZCBvbgorICAgICAgICAgICAgLy8gYSBjaXJjdWxhciBvcmJpdC4gIFNpbWlsYXIgdG8gdGhlIGNvcnJlc3BvbmRpbmcgc29sYXIgY2FsY3VsYXRpb24uCisgICAgICAgICAgICBkb3VibGUgbWVhbkxvbmdpdHVkZSA9IG5vcm0yUEkoMTMuMTc2Mzk2NipQSS8xODAqZGF5ICsgbW9vbkwwKTsKKyAgICAgICAgICAgIGRvdWJsZSBtZWFuQW5vbWFseU1vb24gPSBub3JtMlBJKG1lYW5Mb25naXR1ZGUgLSAwLjExMTQwNDEqUEkvMTgwICogZGF5IC0gbW9vblAwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgZm9sbG93aW5nIGNvcnJlY3Rpb25zOgorICAgICAgICAgICAgLy8gIEV2ZWN0aW9uOiAgIHRoZSBzdW4ncyBncmF2aXR5IGFmZmVjdHMgdGhlIG1vb24ncyBlY2NlbnRyaWNpdHkKKyAgICAgICAgICAgIC8vICBBbm51YWwgRXFuOiB2YXJpYXRpb24gaW4gdGhlIGVmZmVjdCBkdWUgdG8gZWFydGgtc3VuIGRpc3RhbmNlCisgICAgICAgICAgICAvLyAgQTM6ICAgICAgICAgY29ycmVjdGlvbiBmYWN0b3IgKGZvciA/Pz8pCisgICAgICAgICAgICAvLworICAgICAgICAgICAgZG91YmxlIGV2ZWN0aW9uID0gMS4yNzM5KlBJLzE4MCAqIE1hdGguc2luKDIgKiAobWVhbkxvbmdpdHVkZSAtIHN1bkxvbmdpdHVkZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gbWVhbkFub21hbHlNb29uKTsKKyAgICAgICAgICAgIGRvdWJsZSBhbm51YWwgICA9IDAuMTg1OCpQSS8xODAgKiBNYXRoLnNpbihtZWFuQW5vbWFseVN1bik7CisgICAgICAgICAgICBkb3VibGUgYTMgICAgICAgPSAwLjM3MDAqUEkvMTgwICogTWF0aC5zaW4obWVhbkFub21hbHlTdW4pOworCisgICAgICAgICAgICBtZWFuQW5vbWFseU1vb24gKz0gZXZlY3Rpb24gLSBhbm51YWwgLSBhMzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE1vcmUgY29ycmVjdGlvbiBmYWN0b3JzOgorICAgICAgICAgICAgLy8gIGNlbnRlciAgZXF1YXRpb24gb2YgdGhlIGNlbnRlciBjb3JyZWN0aW9uCisgICAgICAgICAgICAvLyAgYTQgICAgICB5ZXQgYW5vdGhlciBlcnJvciBjb3JyZWN0aW9uICg/Pz8pCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gVE9ETzogU2tpcCB0aGUgZXF1YXRpb24gb2YgdGhlIGNlbnRlciBjb3JyZWN0aW9uIGFuZCBzb2x2ZSBLZXBsZXIncyBlcW4/CisgICAgICAgICAgICAvLworICAgICAgICAgICAgZG91YmxlIGNlbnRlciA9IDYuMjg4NipQSS8xODAgKiBNYXRoLnNpbihtZWFuQW5vbWFseU1vb24pOworICAgICAgICAgICAgZG91YmxlIGE0ID0gICAgIDAuMjE0MCpQSS8xODAgKiBNYXRoLnNpbigyICogbWVhbkFub21hbHlNb29uKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gTm93IGZpbmQgdGhlIG1vb24ncyBjb3JyZWN0ZWQgbG9uZ2l0dWRlCisgICAgICAgICAgICBtb29uTG9uZ2l0dWRlID0gbWVhbkxvbmdpdHVkZSArIGV2ZWN0aW9uICsgY2VudGVyIC0gYW5udWFsICsgYTQ7CisKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBBbmQgZmluYWxseSwgZmluZCB0aGUgdmFyaWF0aW9uLCBjYXVzZWQgYnkgdGhlIGZhY3QgdGhhdCB0aGUgc3VuJ3MKKyAgICAgICAgICAgIC8vIGdyYXZpdGF0aW9uYWwgcHVsbCBvbiB0aGUgbW9vbiB2YXJpZXMgZGVwZW5kaW5nIG9uIHdoaWNoIHNpZGUgb2YKKyAgICAgICAgICAgIC8vIHRoZSBlYXJ0aCB0aGUgbW9vbiBpcyBvbgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGRvdWJsZSB2YXJpYXRpb24gPSAwLjY1ODMqUEkvMTgwICogTWF0aC5zaW4oMioobW9vbkxvbmdpdHVkZSAtIHN1bkxvbmdpdHVkZSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBtb29uTG9uZ2l0dWRlICs9IHZhcmlhdGlvbjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIFdoYXQgd2UndmUgY2FsY3VsYXRlZCBzbyBmYXIgaXMgdGhlIG1vb24ncyBsb25naXR1ZGUgaW4gdGhlIHBsYW5lCisgICAgICAgICAgICAvLyBvZiBpdHMgb3duIG9yYml0LiAgTm93IG1hcCB0byB0aGUgZWNsaXB0aWMgdG8gZ2V0IHRoZSBsYXRpdHVkZQorICAgICAgICAgICAgLy8gYW5kIGxvbmdpdHVkZS4gIEZpcnN0IHdlIG5lZWQgdG8gZmluZCB0aGUgbG9uZ2l0dWRlIG9mIHRoZSBhc2NlbmRpbmcKKyAgICAgICAgICAgIC8vIG5vZGUsIHRoZSBwb3NpdGlvbiBvbiB0aGUgZWNsaXB0aWMgd2hlcmUgaXQgaXMgY3Jvc3NlZCBieSB0aGUgbW9vbidzCisgICAgICAgICAgICAvLyBvcmJpdCBhcyBpdCBjcm9zc2VzIGZyb20gdGhlIHNvdXRoZXJuIHRvIHRoZSBub3J0aGVybiBoZW1pc3BoZXJlLgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIGRvdWJsZSBub2RlTG9uZ2l0dWRlID0gbm9ybTJQSShtb29uTjAgLSAwLjA1Mjk1MzkqUEkvMTgwICogZGF5KTsKKworICAgICAgICAgICAgbm9kZUxvbmdpdHVkZSAtPSAwLjE2KlBJLzE4MCAqIE1hdGguc2luKG1lYW5Bbm9tYWx5U3VuKTsKKworICAgICAgICAgICAgZG91YmxlIHkgPSBNYXRoLnNpbihtb29uTG9uZ2l0dWRlIC0gbm9kZUxvbmdpdHVkZSk7CisgICAgICAgICAgICBkb3VibGUgeCA9IE1hdGguY29zKG1vb25Mb25naXR1ZGUgLSBub2RlTG9uZ2l0dWRlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbW9vbkVjbGlwTG9uZyA9IE1hdGguYXRhbjIoeSpNYXRoLmNvcyhtb29uSSksIHgpICsgbm9kZUxvbmdpdHVkZTsKKyAgICAgICAgICAgIGRvdWJsZSBtb29uRWNsaXBMYXQgPSBNYXRoLmFzaW4oeSAqIE1hdGguc2luKG1vb25JKSk7CisKKyAgICAgICAgICAgIG1vb25Qb3NpdGlvbiA9IGVjbGlwdGljVG9FcXVhdG9yaWFsKG1vb25FY2xpcExvbmcsIG1vb25FY2xpcExhdCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1vb25Qb3NpdGlvbjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhlICJhZ2UiIG9mIHRoZSBtb29uIGF0IHRoZSB0aW1lIHNwZWNpZmllZCBpbiB0aGlzIG9iamVjdC4KKyAgICAgKiBUaGlzIGlzIHJlYWxseSB0aGUgYW5nbGUgYmV0d2VlbiB0aGUKKyAgICAgKiBjdXJyZW50IGVjbGlwdGljIGxvbmdpdHVkZXMgb2YgdGhlIHN1biBhbmQgdGhlIG1vb24sCisgICAgICogbWVhc3VyZWQgaW4gcmFkaWFucy4KKyAgICAgKgorICAgICAqIEBzZWUgI2dldE1vb25QaGFzZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgZ2V0TW9vbkFnZSgpIHsKKyAgICAgICAgLy8gU2VlIHBhZ2UgMTQ3IG9mICJQcmFjdGlhbCBBc3Ryb25vbXkgd2l0aCB5b3VyIENhbGN1bGF0b3IiLAorICAgICAgICAvLyBieSBQZXRlciBEdWZmZXQtU21pdGgsIGZvciBkZXRhaWxzIG9uIHRoZSBhbGdvcml0aG0uCisgICAgICAgIC8vCisgICAgICAgIC8vIEZvcmNlIHRoZSBtb29uJ3MgcG9zaXRpb24gdG8gYmUgY2FsY3VsYXRlZC4gIFdlJ3JlIGdvaW5nIHRvIHVzZQorICAgICAgICAvLyBzb21lIHRoZSBpbnRlcm1lZGlhdGUgcmVzdWx0cyBjYWNoZWQgZHVyaW5nIHRoYXQgY2FsY3VsYXRpb24uCisgICAgICAgIC8vCisgICAgICAgIGdldE1vb25Qb3NpdGlvbigpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5vcm0yUEkobW9vbkVjbGlwTG9uZyAtIHN1bkxvbmdpdHVkZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENhbGN1bGF0ZSB0aGUgcGhhc2Ugb2YgdGhlIG1vb24gYXQgdGhlIHRpbWUgc2V0IGluIHRoaXMgb2JqZWN0LgorICAgICAqIFRoZSByZXR1cm5lZCBwaGFzZSBpcyBhIDxjb2RlPmRvdWJsZTwvY29kZT4gaW4gdGhlIHJhbmdlCisgICAgICogPGNvZGU+MCA8PSBwaGFzZSA8IDE8L2NvZGU+LCBpbnRlcnByZXRlZCBhcyBmb2xsb3dzOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+MC4wMDogTmV3IG1vb24KKyAgICAgKiA8bGk+MC4yNTogRmlyc3QgcXVhcnRlcgorICAgICAqIDxsaT4wLjUwOiBGdWxsIG1vb24KKyAgICAgKiA8bGk+MC43NTogTGFzdCBxdWFydGVyCisgICAgICogPC91bD4KKyAgICAgKgorICAgICAqIEBzZWUgI2dldE1vb25BZ2UKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGdldE1vb25QaGFzZSgpIHsKKyAgICAgICAgLy8gU2VlIHBhZ2UgMTQ3IG9mICJQcmFjdGlhbCBBc3Ryb25vbXkgd2l0aCB5b3VyIENhbGN1bGF0b3IiLAorICAgICAgICAvLyBieSBQZXRlciBEdWZmZXQtU21pdGgsIGZvciBkZXRhaWxzIG9uIHRoZSBhbGdvcml0aG0uCisgICAgICAgIHJldHVybiAwLjUgKiAoMSAtIE1hdGguY29zKGdldE1vb25BZ2UoKSkpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBNb29uQWdlIHsKKyAgICAgICAgZG91YmxlIHZhbHVlOworICAgICAgICBNb29uQWdlKGRvdWJsZSB2YWwpIHsgdmFsdWUgPSB2YWw7IH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmVwcmVzZW50aW5nIGEgbmV3IG1vb24uCisgICAgICogRm9yIHVzZSB3aXRoIHtAbGluayAjZ2V0TW9vblRpbWUgZ2V0TW9vblRpbWV9CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb29uQWdlIE5FV19NT09OICAgICAgPSBuZXcgTW9vbkFnZSgwKTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IHJlcHJlc2VudGluZyB0aGUgbW9vbidzIGZpcnN0IHF1YXJ0ZXIuCisgICAgICogRm9yIHVzZSB3aXRoIHtAbGluayAjZ2V0TW9vblRpbWUgZ2V0TW9vblRpbWV9CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb29uQWdlIEZJUlNUX1FVQVJURVIgPSBuZXcgTW9vbkFnZShQSS8yKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCByZXByZXNlbnRpbmcgYSBmdWxsIG1vb24uCisgICAgICogRm9yIHVzZSB3aXRoIHtAbGluayAjZ2V0TW9vblRpbWUgZ2V0TW9vblRpbWV9CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb29uQWdlIEZVTExfTU9PTiAgICAgPSBuZXcgTW9vbkFnZShQSSk7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmVwcmVzZW50aW5nIHRoZSBtb29uJ3MgbGFzdCBxdWFydGVyLgorICAgICAqIEZvciB1c2Ugd2l0aCB7QGxpbmsgI2dldE1vb25UaW1lIGdldE1vb25UaW1lfQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9vbkFnZSBMQVNUX1FVQVJURVIgID0gbmV3IE1vb25BZ2UoKFBJKjMpLzIpOworICAgIAorICAgIC8qKgorICAgICAqIEZpbmQgdGhlIG5leHQgb3IgcHJldmlvdXMgdGltZSBhdCB3aGljaCB0aGUgTW9vbidzIGVjbGlwdGljCisgICAgICogbG9uZ2l0dWRlIHdpbGwgaGF2ZSB0aGUgZGVzaXJlZCB2YWx1ZS4gIAorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBkZXNpcmVkICAgVGhlIGRlc2lyZWQgbG9uZ2l0dWRlLgorICAgICAqIEBwYXJhbSBuZXh0ICAgICAgPHR0PnRydWU8L3R0PiBpZiB0aGUgbmV4dCBvY2N1cnJhbmNlIG9mIHRoZSBwaGFzZQorICAgICAqICAgICAgICAgICAgICAgICAgaXMgZGVzaXJlZCwgPHR0PmZhbHNlPC90dD4gZm9yIHRoZSBwcmV2aW91cyBvY2N1cnJhbmNlLiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyBnZXRNb29uVGltZShkb3VibGUgZGVzaXJlZCwgYm9vbGVhbiBuZXh0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRpbWVPZkFuZ2xlKCBuZXcgQW5nbGVGdW5jKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBkb3VibGUgZXZhbCgpIHsgcmV0dXJuIGdldE1vb25BZ2UoKTsgfSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lyZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1lOT0RJQ19NT05USCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNSU5VVEVfTVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZpbmQgdGhlIG5leHQgb3IgcHJldmlvdXMgdGltZSBhdCB3aGljaCB0aGUgbW9vbiB3aWxsIGJlIGluIHRoZQorICAgICAqIGRlc2lyZWQgcGhhc2UuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGRlc2lyZWQgICBUaGUgZGVzaXJlZCBwaGFzZSBvZiB0aGUgbW9vbi4KKyAgICAgKiBAcGFyYW0gbmV4dCAgICAgIDx0dD50cnVlPC90dD4gaWYgdGhlIG5leHQgb2NjdXJyYW5jZSBvZiB0aGUgcGhhc2UKKyAgICAgKiAgICAgICAgICAgICAgICAgIGlzIGRlc2lyZWQsIDx0dD5mYWxzZTwvdHQ+IGZvciB0aGUgcHJldmlvdXMgb2NjdXJyYW5jZS4gCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGxvbmcgZ2V0TW9vblRpbWUoTW9vbkFnZSBkZXNpcmVkLCBib29sZWFuIG5leHQpIHsKKyAgICAgICAgcmV0dXJuIGdldE1vb25UaW1lKGRlc2lyZWQudmFsdWUsIG5leHQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB0aW1lIChHTVQpIG9mIHN1bnJpc2Ugb3Igc3Vuc2V0IG9uIHRoZSBsb2NhbCBkYXRlIHRvIHdoaWNoCisgICAgICogdGhpcyBjYWxlbmRhciBpcyBjdXJyZW50bHkgc2V0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBsb25nIGdldE1vb25SaXNlU2V0KGJvb2xlYW4gcmlzZSkKKyAgICB7CisgICAgICAgIHJldHVybiByaXNlT3JTZXQobmV3IENvb3JkRnVuYygpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgRXF1YXRvcmlhbCBldmFsKCkgeyByZXR1cm4gZ2V0TW9vblBvc2l0aW9uKCk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgLjUzMyAqIERFR19SQUQsICAgICAgICAvLyBBbmd1bGFyIERpYW1ldGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgMzQgLzYwLjAgKiBERUdfUkFELCAgICAvLyBSZWZyYWN0aW9uIGNvcnJlY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICBNSU5VVEVfTVMpOyAgICAgICAgICAgIC8vIERlc2lyZWQgYWNjdXJhY3kKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJbnRlcnBvbGF0aW9uIG1ldGhvZHMgZm9yIGZpbmRpbmcgdGhlIHRpbWUgYXQgd2hpY2ggYSBnaXZlbiBldmVudCBvY2N1cnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcml2YXRlIGludGVyZmFjZSBBbmdsZUZ1bmMgeworICAgICAgICBwdWJsaWMgZG91YmxlIGV2YWwoKTsKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgbG9uZyB0aW1lT2ZBbmdsZShBbmdsZUZ1bmMgZnVuYywgZG91YmxlIGRlc2lyZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBwZXJpb2REYXlzLCBsb25nIGVwc2lsb24sIGJvb2xlYW4gbmV4dCkKKyAgICB7CisgICAgICAgIC8vIEZpbmQgdGhlIHZhbHVlIG9mIHRoZSBmdW5jdGlvbiBhdCB0aGUgY3VycmVudCB0aW1lCisgICAgICAgIGRvdWJsZSBsYXN0QW5nbGUgPSBmdW5jLmV2YWwoKTsKKyAgICAgICAgCisgICAgICAgIC8vIEZpbmQgb3V0IGhvdyBmYXIgd2UgYXJlIGZyb20gdGhlIGRlc2lyZWQgYW5nbGUKKyAgICAgICAgZG91YmxlIGRlbHRhQW5nbGUgPSBub3JtMlBJKGRlc2lyZWQgLSBsYXN0QW5nbGUpIDsKKyAgICAgICAgCisgICAgICAgIC8vIFVzaW5nIHRoZSBhdmVyYWdlIHBlcmlvZCwgZXN0aW1hdGUgdGhlIG5leHQgKG9yIHByZXZpb3VzKSB0aW1lIGF0CisgICAgICAgIC8vIHdoaWNoIHRoZSBkZXNpcmVkIGFuZ2xlIG9jY3Vycy4KKyAgICAgICAgZG91YmxlIGRlbHRhVCA9ICAoZGVsdGFBbmdsZSArIChuZXh0ID8gMCA6IC1QSTIpKSAqIChwZXJpb2REYXlzKkRBWV9NUykgLyBQSTI7CisgICAgICAgIAorICAgICAgICBkb3VibGUgbGFzdERlbHRhVCA9IGRlbHRhVDsgLy8gTGl1CisgICAgICAgIGxvbmcgc3RhcnRUaW1lID0gdGltZTsgLy8gTGl1CisgICAgICAgIAorICAgICAgICBzZXRUaW1lKHRpbWUgKyAobG9uZylkZWx0YVQpOworCisgICAgICAgIC8vIE5vdyBpdGVyYXRlIHVudGlsIHdlIGdldCB0aGUgZXJyb3IgYmVsb3cgZXBzaWxvbi4gIFRocm91Z2hvdXQKKyAgICAgICAgLy8gdGhpcyBsb29wIHdlIHVzZSBub3JtUEkgdG8gZ2V0IHZhbHVlcyBpbiB0aGUgcmFuZ2UgLVBpIHRvIFBpLAorICAgICAgICAvLyBzaW5jZSB3ZSdyZSB1c2luZyB0aGVtIGFzIGNvcnJlY3Rpb24gZmFjdG9ycyByYXRoZXIgdGhhbiBhYnNvbHV0ZSBhbmdsZXMuCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIC8vIEV2YWx1YXRlIHRoZSBmdW5jdGlvbiBhdCB0aGUgdGltZSB3ZSd2ZSBlc3RpbWF0ZWQKKyAgICAgICAgICAgIGRvdWJsZSBhbmdsZSA9IGZ1bmMuZXZhbCgpOworCisgICAgICAgICAgICAvLyBGaW5kIHRoZSAjIG9mIG1pbGxpc2Vjb25kcyBwZXIgcmFkaWFuIGF0IHRoaXMgcG9pbnQgb24gdGhlIGN1cnZlCisgICAgICAgICAgICBkb3VibGUgZmFjdG9yID0gTWF0aC5hYnMoZGVsdGFUIC8gbm9ybVBJKGFuZ2xlLWxhc3RBbmdsZSkpOworCisgICAgICAgICAgICAvLyBDb3JyZWN0IHRoZSB0aW1lIGVzdGltYXRlIGJhc2VkIG9uIGhvdyBmYXIgb2ZmIHRoZSBhbmdsZSBpcworICAgICAgICAgICAgZGVsdGFUID0gbm9ybVBJKGRlc2lyZWQgLSBhbmdsZSkgKiBmYWN0b3I7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEhBQ0s6CisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIC8vIElmIGFicyhkZWx0YVQpIGJlZ2lucyB0byBkaXZlcmdlIHdlIG5lZWQgdG8gcXVpdCB0aGlzIGxvb3AuCisgICAgICAgICAgICAvLyBUaGlzIG9ubHkgYXBwZWFycyB0byBoYXBwZW4gd2hlbiBhdHRlbXB0aW5nIHRvIGxvY2F0ZSwgZm9yCisgICAgICAgICAgICAvLyBleGFtcGxlLCBhIG5ldyBtb29uIG9uIHRoZSBkYXkgb2YgdGhlIG5ldyBtb29uLiAgRS5nLjoKKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgLy8gVGhpcyByZXN1bHQgaXMgY29ycmVjdDoKKyAgICAgICAgICAgIC8vIG5ld01vb24oNzUwOChNb24gSnVsIDIzIDAwOjAwOjAwIENTVCAxOTkwLGZhbHNlKSk9CisgICAgICAgICAgICAvLyAgIFN1biBKdWwgMjIgMTA6NTc6NDEgQ1NUIDE5OTAKKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgLy8gQnV0IGF0dGVtcHRpbmcgdG8gbWFrZSB0aGUgc2FtZSBjYWxsIGEgZGF5IGVhcmxpZXIgY2F1c2VzIGRlbHRhVAorICAgICAgICAgICAgLy8gdG8gZGl2ZXJnZToKKyAgICAgICAgICAgIC8vIENhbGVuZGFyQXN0cm9ub21lci50aW1lT2ZBbmdsZSgpIGRpdmVyZ2luZzogMS4zNDg1MDg3Mjc1NzU2MjVFOSAtPgorICAgICAgICAgICAgLy8gICAxLjM2NDk4Mjg1NDAyMjQwMzJFOQorICAgICAgICAgICAgLy8gbmV3TW9vbig3NTA3KFN1biBKdWwgMjIgMDA6MDA6MDAgQ1NUIDE5OTAsZmFsc2UpKT0KKyAgICAgICAgICAgIC8vICAgU3VuIEp1bCAwOCAxMzo1NjoxNSBDU1QgMTk5MAorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIEFzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uLCB3ZSBjYXRjaCB0aGlzIHNwZWNpZmljIGNvbmRpdGlvbiBhbmQKKyAgICAgICAgICAgIC8vIGFkanVzdCBvdXIgc3RhcnQgdGltZSBieSBvbmUgZWlnaHRoIHBlcmlvZCBkYXlzIChlaXRoZXIgZm9yd2FyZAorICAgICAgICAgICAgLy8gb3IgYmFja3dhcmQpIGFuZCB0cnkgYWdhaW4uCisgICAgICAgICAgICAvLyBMaXUgMTEvOS8wMAorICAgICAgICAgICAgaWYgKE1hdGguYWJzKGRlbHRhVCkgPiBNYXRoLmFicyhsYXN0RGVsdGFUKSkgeworICAgICAgICAgICAgICAgIGxvbmcgZGVsdGEgPSAobG9uZykgKHBlcmlvZERheXMgKiBEQVlfTVMgLyA4KTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lKHN0YXJ0VGltZSArIChuZXh0ID8gZGVsdGEgOiAtZGVsdGEpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGltZU9mQW5nbGUoZnVuYywgZGVzaXJlZCwgcGVyaW9kRGF5cywgZXBzaWxvbiwgbmV4dCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxhc3REZWx0YVQgPSBkZWx0YVQ7CisgICAgICAgICAgICBsYXN0QW5nbGUgPSBhbmdsZTsKKworICAgICAgICAgICAgc2V0VGltZSh0aW1lICsgKGxvbmcpZGVsdGFUKTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoTWF0aC5hYnMoZGVsdGFUKSA+IGVwc2lsb24pOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRpbWU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50ZXJmYWNlIENvb3JkRnVuYyB7CisgICAgICAgIHB1YmxpYyBFcXVhdG9yaWFsIGV2YWwoKTsKKyAgICB9OworICAgIAorICAgIHByaXZhdGUgbG9uZyByaXNlT3JTZXQoQ29vcmRGdW5jIGZ1bmMsIGJvb2xlYW4gcmlzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkaWFtZXRlciwgZG91YmxlIHJlZnJhY3Rpb24sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBlcHNpbG9uKQorICAgIHsgICAgICAgIAorICAgICAgICBFcXVhdG9yaWFsICBwb3MgPSBudWxsOworICAgICAgICBkb3VibGUgICAgICB0YW5MICAgPSBNYXRoLnRhbihmTGF0aXR1ZGUpOworICAgICAgICBsb25nICAgICAgICBkZWx0YVQgPSBMb25nLk1BWF9WQUxVRTsKKyAgICAgICAgaW50ICAgICAgICAgY291bnQgPSAwOworICAgICAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBvYmplY3QncyBwb3NpdGlvbiBhdCB0aGUgY3VycmVudCB0aW1lLCB0aGVuIHVzZSB0aGF0CisgICAgICAgIC8vIHBvc2l0aW9uIHRvIGNhbGN1bGF0ZSB0aGUgdGltZSBvZiByaXNpbmcgb3Igc2V0dGluZy4gIFRoZSBwb3NpdGlvbgorICAgICAgICAvLyB3aWxsIGJlIGRpZmZlcmVudCBhdCB0aGF0IHRpbWUsIHNvIGl0ZXJhdGUgdW50aWwgdGhlIGVycm9yIGlzIGFsbG93YWJsZS4KKyAgICAgICAgLy8KKyAgICAgICAgZG8geworICAgICAgICAgICAgLy8gU2VlICJQcmFjdGljYWwgQXN0cm9ub215IFdpdGggWW91ciBDYWxjdWxhdG9yLCBzZWN0aW9uIDMzLgorICAgICAgICAgICAgcG9zID0gZnVuYy5ldmFsKCk7CisgICAgICAgICAgICBkb3VibGUgYW5nbGUgPSBNYXRoLmFjb3MoLXRhbkwgKiBNYXRoLnRhbihwb3MuZGVjbGluYXRpb24pKTsKKyAgICAgICAgICAgIGRvdWJsZSBsc3QgPSAoKHJpc2UgPyBQSTItYW5nbGUgOiBhbmdsZSkgKyBwb3MuYXNjZW5zaW9uICkgKiAyNCAvIFBJMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIENvbnZlcnQgZnJvbSBMU1QgdG8gVW5pdmVyc2FsIFRpbWUuCisgICAgICAgICAgICBsb25nIG5ld1RpbWUgPSBsc3RUb1VUKCBsc3QgKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGVsdGFUID0gbmV3VGltZSAtIHRpbWU7CisgICAgICAgICAgICBzZXRUaW1lKG5ld1RpbWUpOworICAgICAgICB9CisgICAgICAgIHdoaWxlICgrKyBjb3VudCA8IDUgJiYgTWF0aC5hYnMoZGVsdGFUKSA+IGVwc2lsb24pOworCisgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgY29ycmVjdGlvbiBkdWUgdG8gcmVmcmFjdGlvbiBhbmQgdGhlIG9iamVjdCdzIGFuZ3VsYXIgZGlhbWV0ZXIKKyAgICAgICAgZG91YmxlIGNvc0QgID0gTWF0aC5jb3MocG9zLmRlY2xpbmF0aW9uKTsKKyAgICAgICAgZG91YmxlIHBzaSAgID0gTWF0aC5hY29zKE1hdGguc2luKGZMYXRpdHVkZSkgLyBjb3NEKTsKKyAgICAgICAgZG91YmxlIHggICAgID0gZGlhbWV0ZXIgLyAyICsgcmVmcmFjdGlvbjsKKyAgICAgICAgZG91YmxlIHkgICAgID0gTWF0aC5hc2luKE1hdGguc2luKHgpIC8gTWF0aC5zaW4ocHNpKSk7CisgICAgICAgIGxvbmcgIGRlbHRhICA9IChsb25nKSgoMjQwICogeSAqIFJBRF9ERUcgLyBjb3NEKSpTRUNPTkRfTVMpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRpbWUgKyAocmlzZSA/IC1kZWx0YSA6IGRlbHRhKTsKKyAgICB9CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gT3RoZXIgdXRpbGl0eSBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioqCisgICAgICogR2l2ZW4gJ3ZhbHVlJywgYWRkIG9yIHN1YnRyYWN0ICdyYW5nZScgdW50aWwgMCA8PSAndmFsdWUnIDwgcmFuZ2UuCisgICAgICogVGhlIG1vZHVsdXMgb3BlcmF0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZG91YmxlIG5vcm1hbGl6ZShkb3VibGUgdmFsdWUsIGRvdWJsZSByYW5nZSkgeworICAgICAgICByZXR1cm4gdmFsdWUgLSByYW5nZSAqIE1hdGguZmxvb3IodmFsdWUgLyByYW5nZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE5vcm1hbGl6ZSBhbiBhbmdsZSBzbyB0aGF0IGl0J3MgaW4gdGhlIHJhbmdlIDAgLSAycGkuCisgICAgICogRm9yIHBvc2l0aXZlIGFuZ2xlcyB0aGlzIGlzIGp1c3QgKGFuZ2xlICUgMnBpKSwgYnV0IHRoZSBKYXZhCisgICAgICogbW9kIG9wZXJhdG9yIGRvZXNuJ3Qgd29yayB0aGF0IHdheSBmb3IgbmVnYXRpdmUgbnVtYmVycy4uLi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgbm9ybTJQSShkb3VibGUgYW5nbGUpIHsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShhbmdsZSwgUEkyKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTm9ybWFsaXplIGFuIGFuZ2xlIGludG8gdGhlIHJhbmdlIC1QSSAtIFBJCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZG91YmxlIG5vcm1QSShkb3VibGUgYW5nbGUpIHsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShhbmdsZSArIFBJLCBQSTIpIC0gUEk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZpbmQgdGhlICJ0cnVlIGFub21hbHkiIChsb25naXR1ZGUpIG9mIGFuIG9iamVjdCBmcm9tCisgICAgICogaXRzIG1lYW4gYW5vbWFseSBhbmQgdGhlIGVjY2VudHJpY2l0eSBvZiBpdHMgb3JiaXQuICBUaGlzIHVzZXMKKyAgICAgKiBhbiBpdGVyYXRpdmUgc29sdXRpb24gdG8gS2VwbGVyJ3MgZXF1YXRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWVhbkFub21hbHkgICBUaGUgb2JqZWN0J3MgbG9uZ2l0dWRlIGNhbGN1bGF0ZWQgYXMgaWYgaXQgd2VyZSBpbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIGEgcmVndWxhciwgY2lyY3VsYXIgb3JiaXQsIG1lYXN1cmVkIGluIHJhZGlhbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBmcm9tIHRoZSBwb2ludCBvZiBwZXJpZ2VlLiAgCisgICAgICoKKyAgICAgKiBAcGFyYW0gZWNjZW50cmljaXR5ICBUaGUgZWNjZW50cmljaXR5IG9mIHRoZSBvcmJpdAorICAgICAqCisgICAgICogQHJldHVybiBUaGUgdHJ1ZSBhbm9tYWx5IChsb25naXR1ZGUpIG1lYXN1cmVkIGluIHJhZGlhbnMKKyAgICAgKi8KKyAgICBwcml2YXRlIGRvdWJsZSB0cnVlQW5vbWFseShkb3VibGUgbWVhbkFub21hbHksIGRvdWJsZSBlY2NlbnRyaWNpdHkpCisgICAgeworICAgICAgICAvLyBGaXJzdCwgc29sdmUgS2VwbGVyJ3MgZXF1YXRpb24gaXRlcmF0aXZlbHkKKyAgICAgICAgLy8gRHVmZmV0dC1TbWl0aCwgcC45MAorICAgICAgICBkb3VibGUgZGVsdGE7CisgICAgICAgIGRvdWJsZSBFID0gbWVhbkFub21hbHk7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGRlbHRhID0gRSAtIGVjY2VudHJpY2l0eSAqIE1hdGguc2luKEUpIC0gbWVhbkFub21hbHk7CisgICAgICAgICAgICBFID0gRSAtIGRlbHRhIC8gKDEgLSBlY2NlbnRyaWNpdHkgKiBNYXRoLmNvcyhFKSk7CisgICAgICAgIH0gCisgICAgICAgIHdoaWxlIChNYXRoLmFicyhkZWx0YSkgPiAxZS01KTsgLy8gZXBzaWxvbiA9IDFlLTUgcmFkCisKKyAgICAgICAgcmV0dXJuIDIuMCAqIE1hdGguYXRhbiggTWF0aC50YW4oRS8yKSAqIE1hdGguc3FydCggKDErZWNjZW50cmljaXR5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8oMS1lY2NlbnRyaWNpdHkpICkgKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBvYmxpcXVpdHkgb2YgdGhlIGVjbGlwdGljICh0aGUgYW5nbGUgYmV0d2VlbiB0aGUgZWNsaXB0aWMKKyAgICAgKiBhbmQgdGhlIGVhcnRoJ3MgZXF1YXRvcikgYXQgdGhlIGN1cnJlbnQgdGltZS4gIFRoaXMgdmFyaWVzIGR1ZSB0bworICAgICAqIHRoZSBwcmVjZXNzaW9uIG9mIHRoZSBlYXJ0aCdzIGF4aXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICB0aGUgb2JsaXF1aXR5IG9mIHRoZSBlY2xpcHRpYyByZWxhdGl2ZSB0byB0aGUgZXF1YXRvciwKKyAgICAgKiAgICAgICAgICBtZWFzdXJlZCBpbiByYWRpYW5zLgorICAgICAqLworICAgIHByaXZhdGUgZG91YmxlIGVjbGlwdGljT2JsaXF1aXR5KCkgeworICAgICAgICBpZiAoZWNsaXBPYmxpcXVpdHkgPT0gSU5WQUxJRCkgeworICAgICAgICAgICAgZmluYWwgZG91YmxlIGVwb2NoID0gMjQ1MTU0NS4wOyAgICAgLy8gMjAwMCBBRCwgSmFudWFyeSAxLjUKKworICAgICAgICAgICAgZG91YmxlIFQgPSAoZ2V0SnVsaWFuRGF5KCkgLSBlcG9jaCkgLyAzNjUyNTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZWNsaXBPYmxpcXVpdHkgPSAyMy40MzkyOTIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gNDYuODE1LzM2MDAgKiBUCisgICAgICAgICAgICAgICAgICAgICAgICAgICAtIDAuMDAwNi8zNjAwICogVCpUCisgICAgICAgICAgICAgICAgICAgICAgICAgICArIDAuMDAxODEvMzYwMCAqIFQqVCpUOworICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBlY2xpcE9ibGlxdWl0eSAqPSBERUdfUkFEOworICAgICAgICB9CisgICAgICAgIHJldHVybiBlY2xpcE9ibGlxdWl0eTsKKyAgICB9CisgICAgCisgICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFByaXZhdGUgZGF0YQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEN1cnJlbnQgdGltZSBpbiBtaWxsaXNlY29uZHMgc2luY2UgMS8xLzE5NzAgQUQKKyAgICAgKiBAc2VlIGphdmEudXRpbC5EYXRlI2dldFRpbWUKKyAgICAgKi8KKyAgICBwcml2YXRlIGxvbmcgdGltZTsKKyAgICAKKyAgICAvKiBUaGVzZSBhcmVuJ3QgdXNlZCB5ZXQsIGJ1dCB0aGV5J2xsIGJlIG5lZWRlZCBmb3Igc3Vuc2V0IGNhbGN1bGF0aW9ucworICAgICAqIGFuZCBlcXVhdG9yaWFsIHRvIGhvcml6b24gY29vcmRpbmF0ZSBjb252ZXJzaW9ucworICAgICAqLworICAgIHByaXZhdGUgZG91YmxlIGZMb25naXR1ZGUgPSAwLjA7CisgICAgcHJpdmF0ZSBkb3VibGUgZkxhdGl0dWRlICA9IDAuMDsKKyAgICBwcml2YXRlIGxvbmcgICBmR210T2Zmc2V0ID0gMDsKKyAgICAKKyAgICAvLworICAgIC8vIFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSB1c2VkIHRvIGNhY2hlIGNhbGN1bGF0ZWQgcmVzdWx0cyBmb3IgaW1wcm92ZWQKKyAgICAvLyBwZXJmb3JtYW5jZS4gIFRoZXNlIHZhbHVlcyBhbGwgZGVwZW5kIG9uIHRoZSBjdXJyZW50IHRpbWUgc2V0dGluZworICAgIC8vIG9mIHRoaXMgb2JqZWN0LCBzbyB0aGUgY2xlYXJDYWNoZSBtZXRob2QgaXMgcHJvdmlkZWQuCisgICAgLy8KKyAgICBzdGF0aWMgZmluYWwgcHJpdmF0ZSBkb3VibGUgSU5WQUxJRCA9IERvdWJsZS5NSU5fVkFMVUU7CisgICAgCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgZG91YmxlICAgIGp1bGlhbkRheSAgICAgICA9IElOVkFMSUQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgZG91YmxlICAgIGp1bGlhbkNlbnR1cnkgICA9IElOVkFMSUQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgZG91YmxlICAgIHN1bkxvbmdpdHVkZSAgICA9IElOVkFMSUQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgZG91YmxlICAgIG1lYW5Bbm9tYWx5U3VuICA9IElOVkFMSUQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgZG91YmxlICAgIG1vb25Mb25naXR1ZGUgICA9IElOVkFMSUQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgZG91YmxlICAgIG1vb25FY2xpcExvbmcgICA9IElOVkFMSUQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgZG91YmxlICAgIG1lYW5Bbm9tYWx5TW9vbiA9IElOVkFMSUQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgZG91YmxlICAgIGVjbGlwT2JsaXF1aXR5ICA9IElOVkFMSUQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgZG91YmxlICAgIHNpZGVyZWFsVDAgICAgICA9IElOVkFMSUQ7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgZG91YmxlICAgIHNpZGVyZWFsVGltZSAgICA9IElOVkFMSUQ7CisgICAgCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgRXF1YXRvcmlhbCAgbW9vblBvc2l0aW9uID0gbnVsbDsKKworICAgIHByaXZhdGUgdm9pZCBjbGVhckNhY2hlKCkgeworICAgICAgICBqdWxpYW5EYXkgICAgICAgPSBJTlZBTElEOworICAgICAgICBqdWxpYW5DZW50dXJ5ICAgPSBJTlZBTElEOworICAgICAgICBzdW5Mb25naXR1ZGUgICAgPSBJTlZBTElEOworICAgICAgICBtZWFuQW5vbWFseVN1biAgPSBJTlZBTElEOworICAgICAgICBtb29uTG9uZ2l0dWRlICAgPSBJTlZBTElEOworICAgICAgICBtb29uRWNsaXBMb25nICAgPSBJTlZBTElEOworICAgICAgICBtZWFuQW5vbWFseU1vb24gPSBJTlZBTElEOworICAgICAgICBlY2xpcE9ibGlxdWl0eSAgPSBJTlZBTElEOworICAgICAgICBzaWRlcmVhbFRpbWUgICAgPSBJTlZBTElEOworICAgICAgICBzaWRlcmVhbFQwICAgICAgPSBJTlZBTElEOworICAgICAgICBtb29uUG9zaXRpb24gICAgPSBudWxsOworICAgIH0KKyAgICAKKyAgICAvL3ByaXZhdGUgc3RhdGljIHZvaWQgb3V0KFN0cmluZyBzKSB7CisgICAgLy8gICAgU3lzdGVtLm91dC5wcmludGxuKHMpOworICAgIC8vfQorICAgIAorICAgIC8vcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGRlZyhkb3VibGUgcmFkKSB7CisgICAgLy8gICAgcmV0dXJuIERvdWJsZS50b1N0cmluZyhyYWQgKiBSQURfREVHKTsKKyAgICAvL30KKyAgICAKKyAgICAvL3ByaXZhdGUgc3RhdGljIFN0cmluZyBob3Vycyhsb25nIG1zKSB7CisgICAgLy8gICAgcmV0dXJuIERvdWJsZS50b1N0cmluZygoZG91YmxlKW1zIC8gSE9VUl9NUykgKyAiIGhvdXJzIjsKKyAgICAvL30KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbG9jYWwobG9uZyBsb2NhbE1pbGxpcykgeworICAgICAgICByZXR1cm4gbmV3IERhdGUobG9jYWxNaWxsaXMgLSBUaW1lWm9uZS5nZXREZWZhdWx0KCkuZ2V0UmF3T2Zmc2V0KCkpLnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgdGhlIHBvc2l0aW9uIG9mIGFuIG9iamVjdCBpbiB0aGUgc2t5IHJlbGF0aXZlIHRvIHRoZSBlY2xpcHRpYywKKyAgICAgKiB0aGUgcGxhbmUgb2YgdGhlIGVhcnRoJ3Mgb3JiaXQgYXJvdW5kIHRoZSBTdW4uIAorICAgICAqIFRoaXMgaXMgYSBzcGhlcmljYWwgY29vcmRpbmF0ZSBzeXN0ZW0gaW4gd2hpY2ggdGhlIGxhdGl0dWRlCisgICAgICogc3BlY2lmaWVzIHRoZSBwb3NpdGlvbiBub3J0aCBvciBzb3V0aCBvZiB0aGUgcGxhbmUgb2YgdGhlIGVjbGlwdGljLgorICAgICAqIFRoZSBsb25naXR1ZGUgc3BlY2lmaWVzIHRoZSBwb3NpdGlvbiBhbG9uZyB0aGUgZWNsaXB0aWMgcGxhbmUKKyAgICAgKiByZWxhdGl2ZSB0byB0aGUgIkZpcnN0IFBvaW50IG9mIEFyaWVzIiwgd2hpY2ggaXMgdGhlIFN1bidzIHBvc2l0aW9uIGluIHRoZSBza3kKKyAgICAgKiBhdCB0aGUgVmVybmFsIEVxdWlub3guCisgICAgICogPHA+CisgICAgICogTm90ZSB0aGF0IEVjbGlwdGljIG9iamVjdHMgYXJlIGltbXV0YWJsZSBhbmQgY2Fubm90IGJlIG1vZGlmaWVkCisgICAgICogb25jZSB0aGV5IGFyZSBjb25zdHJ1Y3RlZC4gIFRoaXMgYWxsb3dzIHRoZW0gdG8gYmUgcGFzc2VkIGFuZCByZXR1cm5lZCBieQorICAgICAqIHZhbHVlIHdpdGhvdXQgd29ycnlpbmcgYWJvdXQgd2hldGhlciBvdGhlciBjb2RlIHdpbGwgbW9kaWZ5IHRoZW0uCisgICAgICoKKyAgICAgKiBAc2VlIENhbGVuZGFyQXN0cm9ub21lci5FcXVhdG9yaWFsCisgICAgICogQHNlZSBDYWxlbmRhckFzdHJvbm9tZXIuSG9yaXpvbgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgRWNsaXB0aWMgeworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0cyBhbiBFY2xpcHRpYyBjb29yZGluYXRlIG9iamVjdC4KKyAgICAgICAgICogPHA+CisgICAgICAgICAqIEBwYXJhbSBsYXQgVGhlIGVjbGlwdGljIGxhdGl0dWRlLCBtZWFzdXJlZCBpbiByYWRpYW5zLgorICAgICAgICAgKiBAcGFyYW0gbG9uIFRoZSBlY2xpcHRpYyBsb25naXR1ZGUsIG1lYXN1cmVkIGluIHJhZGlhbnMuCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEVjbGlwdGljKGRvdWJsZSBsYXQsIGRvdWJsZSBsb24pIHsKKyAgICAgICAgICAgIGxhdGl0dWRlID0gbGF0OworICAgICAgICAgICAgbG9uZ2l0dWRlID0gbG9uOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdAorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gRG91YmxlLnRvU3RyaW5nKGxvbmdpdHVkZSpSQURfREVHKSArICIsIiArIChsYXRpdHVkZSpSQURfREVHKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBlY2xpcHRpYyBsYXRpdHVkZSwgaW4gcmFkaWFucy4gIFRoaXMgc3BlY2lmaWVzIGFuIG9iamVjdCdzCisgICAgICAgICAqIHBvc2l0aW9uIG5vcnRoIG9yIHNvdXRoIG9mIHRoZSBwbGFuZSBvZiB0aGUgZWNsaXB0aWMsCisgICAgICAgICAqIHdpdGggcG9zaXRpdmUgYW5nbGVzIHJlcHJlc2VudGluZyBub3J0aC4KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgZG91YmxlIGxhdGl0dWRlOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBlY2xpcHRpYyBsb25naXR1ZGUsIGluIHJhZGlhbnMuCisgICAgICAgICAqIFRoaXMgc3BlY2lmaWVzIGFuIG9iamVjdCdzIHBvc2l0aW9uIGFsb25nIHRoZSBlY2xpcHRpYyBwbGFuZQorICAgICAgICAgKiByZWxhdGl2ZSB0byB0aGUgIkZpcnN0IFBvaW50IG9mIEFyaWVzIiwgd2hpY2ggaXMgdGhlIFN1bidzIHBvc2l0aW9uCisgICAgICAgICAqIGluIHRoZSBza3kgYXQgdGhlIFZlcm5hbCBFcXVpbm94LAorICAgICAgICAgKiB3aXRoIHBvc2l0aXZlIGFuZ2xlcyByZXByZXNlbnRpbmcgZWFzdC4KKyAgICAgICAgICogPHA+CisgICAgICAgICAqIEEgYml0IG9mIHRyaXZpYTogdGhlIGZpcnN0IHBvaW50IG9mIEFyaWVzIGlzIGN1cnJlbnRseSBpbiB0aGUKKyAgICAgICAgICogY29uc3RlbGxhdGlvbiBQaXNjZXMsIGR1ZSB0byB0aGUgcHJlY2Vzc2lvbiBvZiB0aGUgZWFydGgncyBheGlzLgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBmaW5hbCBkb3VibGUgbG9uZ2l0dWRlOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIHRoZSBwb3NpdGlvbiBvZiBhbiAKKyAgICAgKiBvYmplY3QgaW4gdGhlIHNreSByZWxhdGl2ZSB0byB0aGUgcGxhbmUgb2YgdGhlIGVhcnRoJ3MgZXF1YXRvci4gCisgICAgICogVGhlIDxpPlJpZ2h0IEFzY2Vuc2lvbjwvaT4gc3BlY2lmaWVzIHRoZSBwb3NpdGlvbiBlYXN0IG9yIHdlc3QKKyAgICAgKiBhbG9uZyB0aGUgZXF1YXRvciwgcmVsYXRpdmUgdG8gdGhlIHN1bidzIHBvc2l0aW9uIGF0IHRoZSB2ZXJuYWwKKyAgICAgKiBlcXVpbm94LiAgVGhlIDxpPkRlY2xpbmF0aW9uPC9pPiBpcyB0aGUgcG9zaXRpb24gbm9ydGggb3Igc291dGgKKyAgICAgKiBvZiB0aGUgZXF1YXRvcmlhbCBwbGFuZS4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgRXF1YXRvcmlhbCBvYmplY3RzIGFyZSBpbW11dGFibGUgYW5kIGNhbm5vdCBiZSBtb2RpZmllZAorICAgICAqIG9uY2UgdGhleSBhcmUgY29uc3RydWN0ZWQuICBUaGlzIGFsbG93cyB0aGVtIHRvIGJlIHBhc3NlZCBhbmQgcmV0dXJuZWQgYnkKKyAgICAgKiB2YWx1ZSB3aXRob3V0IHdvcnJ5aW5nIGFib3V0IHdoZXRoZXIgb3RoZXIgY29kZSB3aWxsIG1vZGlmeSB0aGVtLgorICAgICAqCisgICAgICogQHNlZSBDYWxlbmRhckFzdHJvbm9tZXIuRWNsaXB0aWMKKyAgICAgKiBAc2VlIENhbGVuZGFyQXN0cm9ub21lci5Ib3Jpem9uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBFcXVhdG9yaWFsIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdHMgYW4gRXF1YXRvcmlhbCBjb29yZGluYXRlIG9iamVjdC4KKyAgICAgICAgICogPHA+CisgICAgICAgICAqIEBwYXJhbSBhc2MgVGhlIHJpZ2h0IGFzY2Vuc2lvbiwgbWVhc3VyZWQgaW4gcmFkaWFucy4KKyAgICAgICAgICogQHBhcmFtIGRlYyBUaGUgZGVjbGluYXRpb24sIG1lYXN1cmVkIGluIHJhZGlhbnMuCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEVxdWF0b3JpYWwoZG91YmxlIGFzYywgZG91YmxlIGRlYykgeworICAgICAgICAgICAgYXNjZW5zaW9uID0gYXNjOworICAgICAgICAgICAgZGVjbGluYXRpb24gPSBkZWM7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LCB3aXRoIHRoZQorICAgICAgICAgKiBhbmdsZXMgbWVhc3VyZWQgaW4gZGVncmVlcy4KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIERvdWJsZS50b1N0cmluZyhhc2NlbnNpb24qUkFEX0RFRykgKyAiLCIgKyAoZGVjbGluYXRpb24qUkFEX0RFRyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3Qgd2l0aCB0aGUgcmlnaHQgYXNjZW5zaW9uCisgICAgICAgICAqIG1lYXN1cmVkIGluIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcy4KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvSG1zU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIHJhZFRvSG1zKGFzY2Vuc2lvbikgKyAiLCIgKyByYWRUb0RtcyhkZWNsaW5hdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgcmlnaHQgYXNjZW5zaW9uLCBpbiByYWRpYW5zLiAKKyAgICAgICAgICogVGhpcyBpcyB0aGUgcG9zaXRpb24gZWFzdCBvciB3ZXN0IGFsb25nIHRoZSBlcXVhdG9yCisgICAgICAgICAqIHJlbGF0aXZlIHRvIHRoZSBzdW4ncyBwb3NpdGlvbiBhdCB0aGUgdmVybmFsIGVxdWlub3gsCisgICAgICAgICAqIHdpdGggcG9zaXRpdmUgYW5nbGVzIHJlcHJlc2VudGluZyBFYXN0LgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBmaW5hbCBkb3VibGUgYXNjZW5zaW9uOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkZWNsaW5hdGlvbiwgaW4gcmFkaWFucy4KKyAgICAgICAgICogVGhpcyBpcyB0aGUgcG9zaXRpb24gbm9ydGggb3Igc291dGggb2YgdGhlIGVxdWF0b3JpYWwgcGxhbmUsCisgICAgICAgICAqIHdpdGggcG9zaXRpdmUgYW5nbGVzIHJlcHJlc2VudGluZyBub3J0aC4KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgZG91YmxlIGRlY2xpbmF0aW9uOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIHRoZSBwb3NpdGlvbiBvZiBhbiAgb2JqZWN0IGluIHRoZSBza3kgcmVsYXRpdmUgdG8gCisgICAgICogdGhlIGxvY2FsIGhvcml6b24uCisgICAgICogVGhlIDxpPkFsdGl0dWRlPC9pPiByZXByZXNlbnRzIHRoZSBvYmplY3QncyBlbGV2YXRpb24gYWJvdmUgdGhlIGhvcml6b24sCisgICAgICogd2l0aCBvYmplY3RzIGJlbG93IHRoZSBob3Jpem9uIGhhdmluZyBhIG5lZ2F0aXZlIGFsdGl0dWRlLgorICAgICAqIFRoZSA8aT5BemltdXRoPC9pPiBpcyB0aGUgZ2VvZ3JhcGhpYyBkaXJlY3Rpb24gb2YgdGhlIG9iamVjdCBmcm9tIHRoZQorICAgICAqIG9ic2VydmVyJ3MgcG9zaXRpb24sIHdpdGggMCByZXByZXNlbnRpbmcgbm9ydGguICBUaGUgYXppbXV0aCBpbmNyZWFzZXMKKyAgICAgKiBjbG9ja3dpc2UgZnJvbSBub3J0aC4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgSG9yaXpvbiBvYmplY3RzIGFyZSBpbW11dGFibGUgYW5kIGNhbm5vdCBiZSBtb2RpZmllZAorICAgICAqIG9uY2UgdGhleSBhcmUgY29uc3RydWN0ZWQuICBUaGlzIGFsbG93cyB0aGVtIHRvIGJlIHBhc3NlZCBhbmQgcmV0dXJuZWQgYnkKKyAgICAgKiB2YWx1ZSB3aXRob3V0IHdvcnJ5aW5nIGFib3V0IHdoZXRoZXIgb3RoZXIgY29kZSB3aWxsIG1vZGlmeSB0aGVtLgorICAgICAqCisgICAgICogQHNlZSBDYWxlbmRhckFzdHJvbm9tZXIuRWNsaXB0aWMKKyAgICAgKiBAc2VlIENhbGVuZGFyQXN0cm9ub21lci5FcXVhdG9yaWFsCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBIb3Jpem9uIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdHMgYSBIb3Jpem9uIGNvb3JkaW5hdGUgb2JqZWN0LgorICAgICAgICAgKiA8cD4KKyAgICAgICAgICogQHBhcmFtIGFsdCAgVGhlIGFsdGl0dWRlLCBtZWFzdXJlZCBpbiByYWRpYW5zIGFib3ZlIHRoZSBob3Jpem9uLgorICAgICAgICAgKiBAcGFyYW0gYXppbSBUaGUgYXppbXV0aCwgbWVhc3VyZWQgaW4gcmFkaWFucyBjbG9ja3dpc2UgZnJvbSBub3J0aC4KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgSG9yaXpvbihkb3VibGUgYWx0LCBkb3VibGUgYXppbSkgeworICAgICAgICAgICAgYWx0aXR1ZGUgPSBhbHQ7CisgICAgICAgICAgICBhemltdXRoID0gYXppbTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QsIHdpdGggdGhlCisgICAgICAgICAqIGFuZ2xlcyBtZWFzdXJlZCBpbiBkZWdyZWVzLgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gRG91YmxlLnRvU3RyaW5nKGFsdGl0dWRlKlJBRF9ERUcpICsgIiwiICsgKGF6aW11dGgqUkFEX0RFRyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogVGhlIG9iamVjdCdzIGFsdGl0dWRlIGFib3ZlIHRoZSBob3Jpem9uLCBpbiByYWRpYW5zLiAKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgZG91YmxlIGFsdGl0dWRlOworICAgICAgICAKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBUaGUgb2JqZWN0J3MgZGlyZWN0aW9uLCBpbiByYWRpYW5zIGNsb2Nrd2lzZSBmcm9tIG5vcnRoLiAKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgZG91YmxlIGF6aW11dGg7CisgICAgfTsKKworICAgIHN0YXRpYyBwcml2YXRlIFN0cmluZyByYWRUb0htcyhkb3VibGUgYW5nbGUpIHsKKyAgICAgICAgaW50IGhycyA9IChpbnQpIChhbmdsZSpSQURfSE9VUik7CisgICAgICAgIGludCBtaW4gPSAoaW50KSgoYW5nbGUqUkFEX0hPVVIgLSBocnMpICogNjApOworICAgICAgICBpbnQgc2VjID0gKGludCkoKGFuZ2xlKlJBRF9IT1VSIC0gaHJzIC0gbWluLzYwLjApICogMzYwMCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gSW50ZWdlci50b1N0cmluZyhocnMpICsgImgiICsgbWluICsgIm0iICsgc2VjICsgInMiOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgcHJpdmF0ZSBTdHJpbmcgcmFkVG9EbXMoZG91YmxlIGFuZ2xlKSB7CisgICAgICAgIGludCBkZWcgPSAoaW50KSAoYW5nbGUqUkFEX0RFRyk7CisgICAgICAgIGludCBtaW4gPSAoaW50KSgoYW5nbGUqUkFEX0RFRyAtIGRlZykgKiA2MCk7CisgICAgICAgIGludCBzZWMgPSAoaW50KSgoYW5nbGUqUkFEX0RFRyAtIGRlZyAtIG1pbi82MC4wKSAqIDM2MDApOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIEludGVnZXIudG9TdHJpbmcoZGVnKSArICJcdTAwYjAiICsgbWluICsgIiciICsgc2VjICsgIlwiIjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9DYWxlbmRhckNhY2hlLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9DYWxlbmRhckNhY2hlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzgzNTYyYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NhbGVuZGFyQ2FjaGUuamF2YQpAQCAtMCwwICsxLDEyNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworLyoqCisgKiBAaW50ZXJuYWwKKyAqLworcHVibGljIGNsYXNzIENhbGVuZGFyQ2FjaGUKK3sKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FsZW5kYXJDYWNoZSgpIHsKKyAgICAgICAgbWFrZUFycmF5cyhhcnJheVNpemUpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgbWFrZUFycmF5cyhpbnQgbmV3U2l6ZSkgeworICAgICAgICBrZXlzICAgID0gbmV3IGxvbmdbbmV3U2l6ZV07CisgICAgICAgIHZhbHVlcyAgPSBuZXcgbG9uZ1tuZXdTaXplXTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbmV3U2l6ZTsgaSsrKSB7CisgICAgICAgICAgICB2YWx1ZXNbaV0gPSBFTVBUWTsKKyAgICAgICAgfQorICAgICAgICBhcnJheVNpemUgPSBuZXdTaXplOworICAgICAgICB0aHJlc2hvbGQgPSAoaW50KShhcnJheVNpemUgKiAwLjc1KTsKKyAgICAgICAgc2l6ZSA9IDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgbG9uZyBnZXQobG9uZyBrZXkpIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlc1tmaW5kSW5kZXgoa2V5KV07CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBwdXQobG9uZyBrZXksIGxvbmcgdmFsdWUpCisgICAgeworICAgICAgICBpZiAoc2l6ZSA+PSB0aHJlc2hvbGQpIHsKKyAgICAgICAgICAgIHJlaGFzaCgpOworICAgICAgICB9CisgICAgICAgIGludCBpbmRleCA9IGZpbmRJbmRleChrZXkpOworICAgICAgICAKKyAgICAgICAga2V5c1tpbmRleF0gPSBrZXk7CisgICAgICAgIHZhbHVlc1tpbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgc2l6ZSsrOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIGludCBmaW5kSW5kZXgobG9uZyBrZXkpIHsKKyAgICAgICAgaW50IGluZGV4ID0gaGFzaChrZXkpOworICAgICAgICBpbnQgZGVsdGEgPSAwOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHZhbHVlc1tpbmRleF0gIT0gRU1QVFkgJiYga2V5c1tpbmRleF0gIT0ga2V5KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZGVsdGEgPT0gMCkgeworICAgICAgICAgICAgICAgIGRlbHRhID0gaGFzaDIoa2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZGV4ID0gKGluZGV4ICsgZGVsdGEpICUgYXJyYXlTaXplOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpbmRleDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlaGFzaCgpCisgICAgeworICAgICAgICBpbnQgb2xkU2l6ZSA9IGFycmF5U2l6ZTsKKyAgICAgICAgbG9uZ1tdIG9sZEtleXMgPSBrZXlzOworICAgICAgICBsb25nW10gb2xkVmFsdWVzID0gdmFsdWVzOworICAgICAgICAKKyAgICAgICAgaWYgKHBJbmRleCA8IHByaW1lcy5sZW5ndGggLSAxKSB7CisgICAgICAgICAgICBhcnJheVNpemUgPSBwcmltZXNbKytwSW5kZXhdOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXJyYXlTaXplID0gYXJyYXlTaXplICogMiArIDE7CisgICAgICAgIH0KKyAgICAgICAgc2l6ZSA9IDA7CisgICAgICAgIAorICAgICAgICBtYWtlQXJyYXlzKGFycmF5U2l6ZSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb2xkU2l6ZTsgaSsrKSB7CisgICAgICAgICAgICBpZiAob2xkVmFsdWVzW2ldICE9IEVNUFRZKSB7CisgICAgICAgICAgICAgICAgcHV0KG9sZEtleXNbaV0sIG9sZFZhbHVlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgb2xkS2V5cyA9IG9sZFZhbHVlcyA9IG51bGw7IC8vIEhlbHAgb3V0IHRoZSBnYXJiYWdlIGNvbGxlY3RvcgorICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBQcm9kdWNlIGEgdW5pZm9ybWx5LWRpc3RyaWJ1dGVkIGhhc2ggdmFsdWUgZnJvbSBhbiBpbnRlZ2VyIGtleS4KKyAgICAgKiBUaGlzIGlzIGVzc2VudGlhbGx5IGEgbGluZWFyIGNvbmdydWVudGlhbCByYW5kb20gbnVtYmVyIGdlbmVyYXRvcgorICAgICAqIHRoYXQgdXNlcyB0aGUga2V5IGFzIGl0cyBzZWVkIHZhbHVlLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGhhc2gobG9uZyBrZXkpCisgICAgeworICAgICAgICBpbnQgaCA9IChpbnQpKChrZXkgKiAxNTgyMSArIDEpICUgYXJyYXlTaXplKTsKKyAgICAgICAgaWYgKGggPCAwKSB7CisgICAgICAgICAgICBoICs9IGFycmF5U2l6ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgaGFzaDIobG9uZyBrZXkpIHsKKyAgICAgICAgcmV0dXJuIGFycmF5U2l6ZSAtIDIgLSAoaW50KShrZXkgJSAoYXJyYXlTaXplLTIpICk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGludCBwcmltZXNbXSA9IHsgIC8vIDUsIDE3LCAzMSwgNDcsIC8vIGZvciB0ZXN0aW5nCisgICAgICAgIDYxLCAxMjcsIDUwOSwgMTAyMSwgMjAzOSwgNDA5MywgODE5MSwgMTYzODEsIDMyNzQ5LCA2NTUyMSwKKyAgICAgICAgMTMxMDcxLCAyNjIxMzksIAorICAgIH07CisKKyAgICBwcml2YXRlIGludCAgICAgcEluZGV4ICAgICAgPSAwOworICAgIHByaXZhdGUgaW50ICAgICBzaXplICAgICAgICA9IDA7CisgICAgcHJpdmF0ZSBpbnQgICAgIGFycmF5U2l6ZSAgID0gcHJpbWVzW3BJbmRleF07CisgICAgcHJpdmF0ZSBpbnQgICAgIHRocmVzaG9sZCAgID0gKGFycmF5U2l6ZSAqIDMpIC8gNDsKKyAgICAKKyAgICBwcml2YXRlIGxvbmdbXSAga2V5cyAgICAgICAgPSBuZXcgbG9uZ1thcnJheVNpemVdOworICAgIHByaXZhdGUgbG9uZ1tdICB2YWx1ZXMgICAgICA9IG5ldyBsb25nW2FycmF5U2l6ZV07CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljICBsb25nIEVNUFRZICAgPSBMb25nLk1JTl9WQUxVRTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NhbGVuZGFyRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2FsZW5kYXJEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTUxMTMzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NhbGVuZGFyRGF0YS5qYXZhCkBAIC0wLDAgKzEsMTI3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CisKKworCisvKioKKyAqIFRoaXMgY2xhc3MgYWJzdHJhY3RzIGFjY2VzcyB0byBjYWxlbmRhciAoQ2FsZW5kYXIgYW5kIERhdGVGb3JtYXQpIGRhdGEuCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCitwdWJsaWMgY2xhc3MgQ2FsZW5kYXJEYXRhIHsKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDYWxlbmRhckRhdGEgZnJvbSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2MgbG9jYWxlIHRvIHVzZS4gVGhlICdjYWxlbmRhcicga2V5d29yZCB3aWxsIGJlIGlnbm9yZWQuCisgICAgICogQHBhcmFtIHR5cGUgY2FsZW5kYXIgdHlwZS4gTlVMTCBpbmRpY2F0ZXMgdGhlIGdyZWdvcmlhbiBjYWxlbmRhci4gCisgICAgICogTm8gZGVmYXVsdCBsb29rdXAgaXMgZG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FsZW5kYXJEYXRhKFVMb2NhbGUgbG9jLCBTdHJpbmcgdHlwZSkgeworICAgICAgICB0aGlzKChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgbG9jKSwgdHlwZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBDYWxlbmRhckRhdGEoSUNVUmVzb3VyY2VCdW5kbGUgYiwgU3RyaW5nIHR5cGUpIHsKKyAgICAgICAgZkJ1bmRsZSA9IGI7CisgICAgICAgIGlmKCh0eXBlID09IG51bGwpIHx8ICh0eXBlLmVxdWFscygiIikpIHx8ICh0eXBlLmVxdWFscygiZ3JlZ29yaWFuIikpKSB7CisgICAgICAgICAgICBmTWFpblR5cGUgPSAiZ3JlZ29yaWFuIjsKKyAgICAgICAgICAgIGZGYWxsYmFja1R5cGUgPSBudWxsOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZk1haW5UeXBlID0gdHlwZTsKKyAgICAgICAgICAgIGZGYWxsYmFja1R5cGUgPSJncmVnb3JpYW4iOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIExvYWQgZGF0YSBmb3IgY2FsZW5kYXIuIE5vdGUsIHRoaXMgb2JqZWN0IG93bnMgdGhlIHJlc291cmNlcywgZG8gTk9UIGNhbGwgdXJlc19jbG9zZSgpIQorICAgICAqCisgICAgICogQHBhcmFtIGtleSBSZXNvdXJjZSBrZXkgdG8gZGF0YQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBnZXQoU3RyaW5nIGtleSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGZCdW5kbGUuZ2V0V2l0aEZhbGxiYWNrKCJjYWxlbmRhci8iICsgZk1haW5UeXBlICsgIi8iICsga2V5KTsKKyAgICAgICAgfSBjYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gbSkgeworICAgICAgICAgICAgaWYoZkZhbGxiYWNrVHlwZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZCdW5kbGUuZ2V0V2l0aEZhbGxiYWNrKCJjYWxlbmRhci8iICsgZkZhbGxiYWNrVHlwZSArICIvIiArIGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBtOworICAgICAgICAgICAgCisgICAgICAgIH0gICAgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogTG9hZCBkYXRhIGZvciBjYWxlbmRhci4gTm90ZSwgdGhpcyBvYmplY3Qgb3ducyB0aGUgcmVzb3VyY2VzLCBkbyBOT1QgY2FsbCB1cmVzX2Nsb3NlKCkhCisgICAgICogVGhlcmUgaXMgYW4gaW1wbGljaXQga2V5IG9mICdmb3JtYXQnCisgICAgICogZGF0YSBpcyBsb2NhdGVkIGluOiAgICJjYWxlbmRhci9rZXkvZm9ybWF0L3N1YktleSIKKyAgICAgKiBmb3IgZXhhbXBsZSwgIGNhbGVuZGFyL2RheU5hbWVzL2Zvcm1hdC9hYmJyZXZpYXRlZAorICAgICAqCisgICAgICogQHBhcmFtIGtleSBSZXNvdXJjZSBrZXkgdG8gZGF0YQorICAgICAqIEBwYXJhbSBzdWJLZXkgUmVzb3VyY2Uga2V5IHRvIGRhdGEKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGUgZ2V0KFN0cmluZyBrZXksIFN0cmluZyBzdWJLZXkpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBmQnVuZGxlLmdldFdpdGhGYWxsYmFjaygiY2FsZW5kYXIvIiArIGZNYWluVHlwZSArICIvIiArIGtleSArICIvZm9ybWF0LyIgKyBzdWJLZXkpOworICAgICAgICB9IGNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBtKSB7CisgICAgICAgICAgICBpZihmRmFsbGJhY2tUeXBlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZkJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soImNhbGVuZGFyLyIgKyBmRmFsbGJhY2tUeXBlICsgIi8iICsga2V5ICsgIi9mb3JtYXQvIiArIHN1YktleSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBtOworICAgICAgICAgICAgCisgICAgICAgIH0gICAgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogTG9hZCBkYXRhIGZvciBjYWxlbmRhci4gTm90ZSwgdGhpcyBvYmplY3Qgb3ducyB0aGUgcmVzb3VyY2VzLCBkbyBOT1QgY2FsbCB1cmVzX2Nsb3NlKCkhCisgICAgICogZGF0YSBpcyBsb2NhdGVkIGluOiAgICJjYWxlbmRhci9rZXkvY29udGV4dEtleS9zdWJLZXkiCisgICAgICogZm9yIGV4YW1wbGUsICBjYWxlbmRhci9kYXlOYW1lcy9zdGFuZC1hbG9uZS9uYXJyb3cKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkgUmVzb3VyY2Uga2V5IHRvIGRhdGEKKyAgICAgKiBAcGFyYW0gY29udGV4dEtleSBSZXNvdXJjZSBrZXkgdG8gZGF0YQorICAgICAqIEBwYXJhbSBzdWJLZXkgUmVzb3VyY2Uga2V5IHRvIGRhdGEKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGUgZ2V0KFN0cmluZyBrZXksIFN0cmluZyBjb250ZXh0S2V5LCBTdHJpbmcgc3ViS2V5KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gZkJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soImNhbGVuZGFyLyIgKyBmTWFpblR5cGUgKyAiLyIgKyBrZXkgKyAiLyIgKyBjb250ZXh0S2V5ICsgIi8iICsgc3ViS2V5KTsKKyAgICAgICAgfSBjYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gbSkgeworICAgICAgICAgICAgaWYoZkZhbGxiYWNrVHlwZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZCdW5kbGUuZ2V0V2l0aEZhbGxiYWNrKCJjYWxlbmRhci8iICsgZkZhbGxiYWNrVHlwZSArICIvIiArIGtleSArICIvIiArIGNvbnRleHRLZXkgKyAiLyIgKyBzdWJLZXkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhyb3cgbTsKKyAgICAgICAgICAgIAorICAgICAgICB9ICAgICAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0U3RyaW5nQXJyYXkoU3RyaW5nIGtleSkgeworICAgICAgICByZXR1cm4gZ2V0KGtleSkuZ2V0U3RyaW5nQXJyYXkoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0U3RyaW5nQXJyYXkoU3RyaW5nIGtleSwgU3RyaW5nIHN1YktleSkgeworICAgICAgICByZXR1cm4gZ2V0KGtleSwgc3ViS2V5KS5nZXRTdHJpbmdBcnJheSgpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTdHJpbmdBcnJheShTdHJpbmcga2V5LCBTdHJpbmcgY29udGV4dEtleSwgU3RyaW5nIHN1YktleSkgeworICAgICAgICByZXR1cm4gZ2V0KGtleSwgY29udGV4dEtleSwgc3ViS2V5KS5nZXRTdHJpbmdBcnJheSgpOworICAgIH0KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0RXJhcyhTdHJpbmcgc3Via2V5KXsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gZ2V0KCJlcmFzLyIrc3Via2V5KTsKKyAgICAgICAgcmV0dXJuIGJ1bmRsZS5nZXRTdHJpbmdBcnJheSgpOworICAgIH0KKyAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkgeworICAgICAgICByZXR1cm4gZkJ1bmRsZS5nZXRVTG9jYWxlKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBJQ1VSZXNvdXJjZUJ1bmRsZSBmQnVuZGxlOworICAgIHByaXZhdGUgU3RyaW5nIGZNYWluVHlwZTsKKyAgICBwcml2YXRlIFN0cmluZyBmRmFsbGJhY2tUeXBlOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2hhclRyaWUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NoYXJUcmllLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjJkYjMzMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NoYXJUcmllLmphdmEKQEAgLTAsMCArMSwzNjUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5EYXRhSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKy8qKgorICogVHJpZSBpbXBsZW1lbnRhdGlvbiB3aGljaCBzdG9yZXMgZGF0YSBpbiBjaGFyLCAxNiBiaXRzLgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzZWUgY29tLmlibS5pY3UuaW1wbC5UcmllCisgKiBAc2luY2UgcmVsZWFzZSAyLjEsIEphbiAwMSAyMDAyCisgKi8KKworIC8vIG5vdGUgdGhhdCBpIG5lZWQgdG8gaGFuZGxlIHRoZSBibG9jayBjYWxjdWxhdGlvbnMgbGF0ZXIsIHNpbmNlIGNoYXJ0cmllCisgLy8gaW4gaWN1NGMgdXNlcyB0aGUgc2FtZSBpbmRleCBhcnJheS4KK3B1YmxpYyBjbGFzcyBDaGFyVHJpZSBleHRlbmRzIFRyaWUKK3sKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiA8cD5DcmVhdGVzIGEgbmV3IFRyaWUgd2l0aCB0aGUgc2V0dGluZ3MgZm9yIHRoZSB0cmllIGRhdGEuPC9wPgorICAgICogPHA+VW5zZXJpYWxpemUgdGhlIDMyLWJpdC1hbGlnbmVkIGlucHV0IHN0cmVhbSBhbmQgdXNlIHRoZSBkYXRhIGZvciB0aGUgCisgICAgKiB0cmllLjwvcD4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBmaWxlIGlucHV0IHN0cmVhbSB0byBhIElDVSBkYXRhIGZpbGUsIGNvbnRhaW5pbmcgCisgICAgKiAgICAgICAgICAgICAgICAgICAgdGhlIHRyaWUKKyAgICAqIEBwYXJhbSBkYXRhTWFuaXB1bGF0ZSBvYmplY3Qgd2hpY2ggcHJvdmlkZXMgbWV0aG9kcyB0byBwYXJzZSB0aGUgY2hhciAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgZGF0YQorICAgICogQHRocm93cyBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBkYXRhIHJlYWRpbmcgZmFpbHMKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBDaGFyVHJpZShJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSwgCisgICAgICAgICAgICAgICAgICAgIERhdGFNYW5pcHVsYXRlIGRhdGFNYW5pcHVsYXRlKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIHN1cGVyKGlucHV0U3RyZWFtLCBkYXRhTWFuaXB1bGF0ZSk7CisgICAgICAgIAorICAgICAgICBpZiAoIWlzQ2hhclRyaWUoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGF0YSBnaXZlbiBkb2VzIG5vdCBiZWxvbmcgdG8gYSBjaGFyIHRyaWUuIik7CisgICAgICAgIH0KKyAgICAgICAgbV9mcmllbmRBZ2VudF8gPSBuZXcgRnJpZW5kQWdlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIGEgZHVtbXkgQ2hhclRyaWUuCisgICAgICogQSBkdW1teSB0cmllIGlzIGFuIGVtcHR5IHJ1bnRpbWUgdHJpZSwgdXNlZCB3aGVuIGEgcmVhbCBkYXRhIHRyaWUgY2Fubm90CisgICAgICogYmUgbG9hZGVkLgorICAgICAqCisgICAgICogVGhlIHRyaWUgYWx3YXlzIHJldHVybnMgdGhlIGluaXRpYWxWYWx1ZSwKKyAgICAgKiBvciB0aGUgbGVhZFVuaXRWYWx1ZSBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMuCisgICAgICogVGhlIExhdGluLTEgcGFydCBpcyBhbHdheXMgc2V0IHVwIHRvIGJlIGxpbmVhci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbml0aWFsVmFsdWUgdGhlIGluaXRpYWwgdmFsdWUgdGhhdCBpcyBzZXQgZm9yIGFsbCBjb2RlIHBvaW50cworICAgICAqIEBwYXJhbSBsZWFkVW5pdFZhbHVlIHRoZSB2YWx1ZSBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBfdW5pdHNfIHRoYXQgZG8gbm90CisgICAgICogICAgICAgICAgICAgICAgICAgICAgaGF2ZSBhc3NvY2lhdGVkIHN1cHBsZW1lbnRhcnkgZGF0YQorICAgICAqIEBwYXJhbSBkYXRhTWFuaXB1bGF0ZSBvYmplY3Qgd2hpY2ggcHJvdmlkZXMgbWV0aG9kcyB0byBwYXJzZSB0aGUgY2hhciBkYXRhCisgICAgICovCisgICAgcHVibGljIENoYXJUcmllKGludCBpbml0aWFsVmFsdWUsIGludCBsZWFkVW5pdFZhbHVlLCBEYXRhTWFuaXB1bGF0ZSBkYXRhTWFuaXB1bGF0ZSkgeworICAgICAgICBzdXBlcihuZXcgY2hhcltCTVBfSU5ERVhfTEVOR1RIK1NVUlJPR0FURV9CTE9DS19DT1VOVF0sIEhFQURFUl9PUFRJT05TX0xBVElOMV9JU19MSU5FQVJfTUFTS18sIGRhdGFNYW5pcHVsYXRlKTsKKworICAgICAgICBpbnQgZGF0YUxlbmd0aCwgbGF0aW4xTGVuZ3RoLCBpLCBsaW1pdDsKKyAgICAgICAgY2hhciBibG9jazsKKworICAgICAgICAvKiBjYWxjdWxhdGUgdGhlIGFjdHVhbCBzaXplIG9mIHRoZSBkdW1teSB0cmllIGRhdGEgKi8KKworICAgICAgICAvKiBtYXgoTGF0aW4tMSwgYmxvY2sgMCkgKi8KKyAgICAgICAgZGF0YUxlbmd0aD1sYXRpbjFMZW5ndGg9IElOREVYX1NUQUdFXzFfU0hJRlRfPD04ID8gMjU2IDogREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgIGlmKGxlYWRVbml0VmFsdWUhPWluaXRpYWxWYWx1ZSkgeworICAgICAgICAgICAgZGF0YUxlbmd0aCs9REFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgIH0KKyAgICAgICAgbV9kYXRhXz1uZXcgY2hhcltkYXRhTGVuZ3RoXTsKKyAgICAgICAgbV9kYXRhTGVuZ3RoXz1kYXRhTGVuZ3RoOworCisgICAgICAgIG1faW5pdGlhbFZhbHVlXz0oY2hhcilpbml0aWFsVmFsdWU7CisKKyAgICAgICAgLyogZmlsbCB0aGUgaW5kZXggYW5kIGRhdGEgYXJyYXlzICovCisKKyAgICAgICAgLyogaW5kZXhlcyBhcmUgcHJlc2V0IHRvIDAgKGJsb2NrIDApICovCisKKyAgICAgICAgLyogTGF0aW4tMSBkYXRhICovCisgICAgICAgIGZvcihpPTA7IGk8bGF0aW4xTGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIG1fZGF0YV9baV09KGNoYXIpaW5pdGlhbFZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgaWYobGVhZFVuaXRWYWx1ZSE9aW5pdGlhbFZhbHVlKSB7CisgICAgICAgICAgICAvKiBpbmRleGVzIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHVuaXRzIHRvIHRoZSBibG9jayBhZnRlciBMYXRpbi0xICovCisgICAgICAgICAgICBibG9jaz0oY2hhcikobGF0aW4xTGVuZ3RoPj5JTkRFWF9TVEFHRV8yX1NISUZUXyk7CisgICAgICAgICAgICBpPTB4ZDgwMD4+SU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgICAgICAgICBsaW1pdD0weGRjMDA+PklOREVYX1NUQUdFXzFfU0hJRlRfOworICAgICAgICAgICAgZm9yKDsgaTxsaW1pdDsgKytpKSB7CisgICAgICAgICAgICAgICAgbV9pbmRleF9baV09YmxvY2s7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIGRhdGEgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgdW5pdHMgKi8KKyAgICAgICAgICAgIGxpbWl0PWxhdGluMUxlbmd0aCtEQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgICAgIGZvcihpPWxhdGluMUxlbmd0aDsgaTxsaW1pdDsgKytpKSB7CisgICAgICAgICAgICAgICAgbV9kYXRhX1tpXT0oY2hhcilsZWFkVW5pdFZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbV9mcmllbmRBZ2VudF8gPSBuZXcgRnJpZW5kQWdlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBKYXZhIGZyaWVuZCBpbXBsZW1lbnRhdGlvbgorICAgICAqLworICAgIHB1YmxpYyBjbGFzcyBGcmllbmRBZ2VudAorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEdpdmVzIG91dCB0aGUgaW5kZXggYXJyYXkgb2YgdGhlIHRyaWUKKyAgICAgICAgICogQHJldHVybiBpbmRleCBhcnJheSBvZiB0cmllCisgICAgICAgICAqLyAKKyAgICAgICAgcHVibGljIGNoYXJbXSBnZXRQcml2YXRlSW5kZXgoKSAKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1faW5kZXhfOworICAgICAgICB9CisgICAgICAgIC8qKgorICAgICAgICAgKiBHaXZlcyBvdXQgdGhlIGRhdGEgYXJyYXkgb2YgdGhlIHRyaWUKKyAgICAgICAgICogQHJldHVybiBkYXRhIGFycmF5IG9mIHRyaWUKKyAgICAgICAgICovIAorICAgICAgICBwdWJsaWMgY2hhcltdIGdldFByaXZhdGVEYXRhKCkgCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2RhdGFfOworICAgICAgICB9CisgICAgICAgIC8qKgorICAgICAgICAgKiBHaXZlcyBvdXQgdGhlIGRhdGEgb2Zmc2V0IGluIHRoZSB0cmllCisgICAgICAgICAqIEByZXR1cm4gZGF0YSBvZmZzZXQgaW4gdGhlIHRyaWUKKyAgICAgICAgICovIAorICAgICAgICBwdWJsaWMgaW50IGdldFByaXZhdGVJbml0aWFsVmFsdWUoKSAKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEphdmEgZnJpZW5kIGltcGxlbWVudGF0aW9uCisgICAgICogVG8gc3RvcmUgdGhlIGluZGV4IGFuZCBkYXRhIGFycmF5IGludG8gdGhlIGFyZ3VtZW50LgorICAgICAqIEBwYXJhbSBmcmllbmQgamF2YSBmcmllbmQgVUNoYXJhY3RlclByb3BlcnR5IG9iamVjdCB0byBzdG9yZSB0aGUgYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwdXRJbmRleERhdGEoVUNoYXJhY3RlclByb3BlcnR5IGZyaWVuZCkgCisgICAgeworICAgICAgICBmcmllbmQuc2V0SW5kZXhEYXRhKG1fZnJpZW5kQWdlbnRfKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29kZXBvaW50LgorICAgICogSWYgbm8gdmFsdWUgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb2RlcG9pbnQsIGEgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlCisgICAgKiByZXR1cm5lZC4KKyAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQKKyAgICAqIEByZXR1cm4gb2Zmc2V0IHRvIGRhdGEKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBjaGFyIGdldENvZGVQb2ludFZhbHVlKGludCBjaCkKKyAgICB7CisgICAgICAgIGludCBvZmZzZXQ7CisKKyAgICAgICAgLy8gZmFzdHBhdGggZm9yIFUrMDAwMC4uVStEN0ZGCisgICAgICAgIGlmKDAgPD0gY2ggJiYgY2ggPCBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIC8vIGNvcHkgb2YgZ2V0UmF3T2Zmc2V0KCkKKyAgICAgICAgICAgIG9mZnNldCA9IChtX2luZGV4X1tjaCA+PiBJTkRFWF9TVEFHRV8xX1NISUZUX10gPDwgSU5ERVhfU1RBR0VfMl9TSElGVF8pIAorICAgICAgICAgICAgICAgICAgICArIChjaCAmIElOREVYX1NUQUdFXzNfTUFTS18pOworICAgICAgICAgICAgcmV0dXJuIG1fZGF0YV9bb2Zmc2V0XTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGhhbmRsZSBVK0Q4MDAuLlUrMTBGRkZGCisgICAgICAgIG9mZnNldCA9IGdldENvZGVQb2ludE9mZnNldChjaCk7CisgICAgICAgIAorICAgICAgICAvLyByZXR1cm4gLTEgaWYgdGhlcmUgaXMgYW4gZXJyb3IsIGluIHRoaXMgY2FzZSB3ZSByZXR1cm4gdGhlIGRlZmF1bHQKKyAgICAgICAgLy8gdmFsdWU6IG1faW5pdGlhbFZhbHVlXworICAgICAgICByZXR1cm4gKG9mZnNldCA+PSAwKSA/IG1fZGF0YV9bb2Zmc2V0XSA6IG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIHZhbHVlIHRvIHRoZSBkYXRhIHdoaWNoIHRoaXMgbGVhZCBzdXJyb2dhdGUgY2hhcmFjdGVyIHBvaW50cworICAgICogdG8uCisgICAgKiBSZXR1cm5lZCBkYXRhIG1heSBjb250YWluIGZvbGRpbmcgb2Zmc2V0IGluZm9ybWF0aW9uIGZvciB0aGUgbmV4dAorICAgICogdHJhaWxpbmcgc3Vycm9nYXRlIGNoYXJhY3Rlci4KKyAgICAqIFRoaXMgbWV0aG9kIGRvZXMgbm90IGd1YXJhbnRlZSBjb3JyZWN0IHJlc3VsdHMgZm9yIHRyYWlsIHN1cnJvZ2F0ZXMuCisgICAgKiBAcGFyYW0gY2ggbGVhZCBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgKiBAcmV0dXJuIGRhdGEgdmFsdWUKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBjaGFyIGdldExlYWRWYWx1ZShjaGFyIGNoKQorICAgIHsKKyAgICAgICByZXR1cm4gbV9kYXRhX1tnZXRMZWFkT2Zmc2V0KGNoKV07CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXQgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgQk1QIGNvZGUgcG9pbnQuCisgICAgKiBMZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cyBhcmUgdHJlYXRlZCBhcyBub3JtYWwgY29kZSBwb2ludHMsIHdpdGgKKyAgICAqIHVuZm9sZGVkIHZhbHVlcyB0aGF0IG1heSBkaWZmZXIgZnJvbSBnZXRMZWFkVmFsdWUoKSByZXN1bHRzLgorICAgICogQHBhcmFtIGNoIHRoZSBpbnB1dCBCTVAgY29kZSBwb2ludAorICAgICogQHJldHVybiB0cmllIGRhdGEgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBCTVAgY29kZXBvaW50CisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgY2hhciBnZXRCTVBWYWx1ZShjaGFyIGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZGF0YV9bZ2V0Qk1QT2Zmc2V0KGNoKV07CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXQgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBhIHBhaXIgb2Ygc3Vycm9nYXRlcy4KKyAgICAqIEBwYXJhbSBsZWFkIGEgbGVhZCBzdXJyb2dhdGUKKyAgICAqIEBwYXJhbSB0cmFpbCBhIHRyYWlsIHN1cnJvZ2F0ZQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGNoYXIgZ2V0U3Vycm9nYXRlVmFsdWUoY2hhciBsZWFkLCBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAgICAgaW50IG9mZnNldCA9IGdldFN1cnJvZ2F0ZU9mZnNldChsZWFkLCB0cmFpbCk7CisgICAgICAgIGlmIChvZmZzZXQgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gbV9kYXRhX1tvZmZzZXRdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX2luaXRpYWxWYWx1ZV87CisgICAgfQorCisgICAgLyoqCisgICAgKiA8cD5HZXQgYSB2YWx1ZSBmcm9tIGEgZm9sZGluZyBvZmZzZXQgKGZyb20gdGhlIHZhbHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUpCisgICAgKiBhbmQgYSB0cmFpbCBzdXJyb2dhdGUuPC9wPgorICAgICogPHA+SWYgdGhlIAorICAgICogQHBhcmFtIGxlYWR2YWx1ZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGxlYWQgc3Vycm9nYXRlIHdoaWNoIGNvbnRhaW5zCisgICAgKiAgICAgICAgdGhlIGZvbGRpbmcgb2Zmc2V0CisgICAgKiBAcGFyYW0gdHJhaWwgc3Vycm9nYXRlCisgICAgKiBAcmV0dXJuIHRyaWUgZGF0YSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIHRyYWlsIGNoYXJhY3RlcgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGNoYXIgZ2V0VHJhaWxWYWx1ZShpbnQgbGVhZHZhbHVlLCBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAgICAgaWYgKG1fZGF0YU1hbmlwdWxhdGVfID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWVsZCBEYXRhTWFuaXB1bGF0ZSBpbiB0aGlzIFRyaWUgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIGludCBvZmZzZXQgPSBtX2RhdGFNYW5pcHVsYXRlXy5nZXRGb2xkaW5nT2Zmc2V0KGxlYWR2YWx1ZSk7CisgICAgICAgIGlmIChvZmZzZXQgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gbV9kYXRhX1tnZXRSYXdPZmZzZXQob2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikodHJhaWwgJiBTVVJST0dBVEVfTUFTS18pKV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+R2V0cyB0aGUgbGF0aW4gMSBmYXN0IHBhdGggdmFsdWUuPC9wPgorICAgICAqIDxwPk5vdGUgdGhpcyBvbmx5IHdvcmtzIGlmIGxhdGluIDEgY2hhcmFjdGVycyBoYXZlIHRoZWlyIG93biBsaW5lYXIgCisgICAgICogYXJyYXkuPC9wPgorICAgICAqIEBwYXJhbSBjaCBsYXRpbiAxIGNoYXJhY3RlcnMKKyAgICAgKiBAcmV0dXJuIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBsYXRpbiBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgY2hhciBnZXRMYXRpbjFMaW5lYXJWYWx1ZShjaGFyIGNoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RhdGFfW0lOREVYX1NUQUdFXzNfTUFTS18gKyAxICsgbV9kYXRhT2Zmc2V0XyArIGNoXTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHRoZSBhcmd1bWVudCBUcmllIGhhcyB0aGUgc2FtZSBkYXRhIGFzIHRoaXMgVHJpZQorICAgICAqIEBwYXJhbSBvdGhlciBUcmllIHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBhcmd1bWVudCBUcmllIGhhcyB0aGUgc2FtZSBkYXRhIGFzIHRoaXMgVHJpZSwgZmFsc2UKKyAgICAgKiAgICAgICAgIG90aGVyd2lzZQorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSAKKyAgICB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gc3VwZXIuZXF1YWxzKG90aGVyKTsKKyAgICAgICAgaWYgKHJlc3VsdCAmJiBvdGhlciBpbnN0YW5jZW9mIENoYXJUcmllKSB7CisgICAgICAgICAgICBDaGFyVHJpZSBvdGhlcnRyaWUgPSAoQ2hhclRyaWUpb3RoZXI7CisgICAgICAgICAgICByZXR1cm4gbV9pbml0aWFsVmFsdWVfID09IG90aGVydHJpZS5tX2luaXRpYWxWYWx1ZV87CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIDxwPlBhcnNlcyB0aGUgaW5wdXQgc3RyZWFtIGFuZCBzdG9yZXMgaXRzIHRyaWUgY29udGVudCBpbnRvIGEgaW5kZXggYW5kCisgICAgKiBkYXRhIGFycmF5PC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIGRhdGEgaW5wdXQgc3RyZWFtIGNvbnRhaW5pbmcgdHJpZSBkYXRhCisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscworICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgdW5zZXJpYWxpemUoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0pIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBEYXRhSW5wdXRTdHJlYW0gaW5wdXQgPSBuZXcgRGF0YUlucHV0U3RyZWFtKGlucHV0U3RyZWFtKTsKKyAgICAgICAgaW50IGluZGV4RGF0YUxlbmd0aCA9IG1fZGF0YU9mZnNldF8gKyBtX2RhdGFMZW5ndGhfOworICAgICAgICBtX2luZGV4XyA9IG5ldyBjaGFyW2luZGV4RGF0YUxlbmd0aF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kZXhEYXRhTGVuZ3RoOyBpICsrKSB7CisgICAgICAgICAgICBtX2luZGV4X1tpXSA9IGlucHV0LnJlYWRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgbV9kYXRhXyAgICAgICAgICAgPSBtX2luZGV4XzsKKyAgICAgICAgbV9pbml0aWFsVmFsdWVfICAgPSBtX2RhdGFfW21fZGF0YU9mZnNldF9dOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIG9mZnNldCB0byB0aGUgZGF0YSB3aGljaCB0aGUgc3Vycm9nYXRlIHBhaXIgcG9pbnRzIHRvLgorICAgICogQHBhcmFtIGxlYWQgbGVhZCBzdXJyb2dhdGUKKyAgICAqIEBwYXJhbSB0cmFpbCB0cmFpbGluZyBzdXJyb2dhdGUKKyAgICAqIEByZXR1cm4gb2Zmc2V0IHRvIGRhdGEKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0U3Vycm9nYXRlT2Zmc2V0KGNoYXIgbGVhZCwgY2hhciB0cmFpbCkKKyAgICB7CisgICAgICAgIGlmIChtX2RhdGFNYW5pcHVsYXRlXyA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgZmllbGQgRGF0YU1hbmlwdWxhdGUgaW4gdGhpcyBUcmllIGlzIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gZ2V0IGZvbGQgcG9zaXRpb24gZm9yIHRoZSBuZXh0IHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICBpbnQgb2Zmc2V0ID0gbV9kYXRhTWFuaXB1bGF0ZV8uZ2V0Rm9sZGluZ09mZnNldChnZXRMZWFkVmFsdWUobGVhZCkpOworCisgICAgICAgIC8vIGdldCB0aGUgcmVhbCBkYXRhIGZyb20gdGhlIGZvbGRlZCBsZWFkL3RyYWlsIHVuaXRzCisgICAgICAgIGlmIChvZmZzZXQgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0UmF3T2Zmc2V0KG9mZnNldCwgKGNoYXIpKHRyYWlsICYgU1VSUk9HQVRFX01BU0tfKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyByZXR1cm4gLTEgaWYgdGhlcmUgaXMgYW4gZXJyb3IsIGluIHRoaXMgY2FzZSB3ZSByZXR1cm4gdGhlIGRlZmF1bHQKKyAgICAgICAgLy8gdmFsdWU6IG1faW5pdGlhbFZhbHVlXworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgdmFsdWUgYXQgdGhlIGFyZ3VtZW50IGluZGV4LgorICAgICogRm9yIHVzZSBpbnRlcm5hbGx5IGluIFRyaWVJdGVyYXRvci4KKyAgICAqIEBwYXJhbSBpbmRleCB2YWx1ZSBhdCBpbmRleCB3aWxsIGJlIHJldHJpZXZlZAorICAgICogQHJldHVybiAzMiBiaXQgdmFsdWUKKyAgICAqIEBzZWUgY29tLmlibS5pY3UuaW1wbC5UcmllSXRlcmF0b3IKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0VmFsdWUoaW50IGluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZGF0YV9baW5kZXhdOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgZGVmYXVsdCBpbml0aWFsIHZhbHVlCisgICAgKiBAcmV0dXJuIDMyIGJpdCB2YWx1ZSAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0SW5pdGlhbFZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2luaXRpYWxWYWx1ZV87CisgICAgfQorICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBEZWZhdWx0IHZhbHVlCisgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgbV9pbml0aWFsVmFsdWVfOworICAgIC8qKgorICAgICogQXJyYXkgb2YgY2hhciBkYXRhCisgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgbV9kYXRhX1tdOworICAgIC8qKgorICAgICAqIEFnZW50IGZvciBmcmllbmRzCisgICAgICovCisgICAgcHJpdmF0ZSBGcmllbmRBZ2VudCBtX2ZyaWVuZEFnZW50XzsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRjNGE1NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0NoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlci5qYXZhCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworCisvKioKKyAqIFRoaXMgY2xhc3MgaXMgYSB3cmFwcGVyIGFyb3VuZCBDaGFyYWN0ZXJJdGVyYXRvciBhbmQgaW1wbGVtZW50cyB0aGUgCisgKiBVQ2hhcmFjdGVySXRlcmF0b3IgcHJvdG9jb2wKKyAqIEBhdXRob3IgcmFtCisgKi8KKworcHVibGljIGNsYXNzIENoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlciBleHRlbmRzIFVDaGFyYWN0ZXJJdGVyYXRvciB7CisgICAgCisgICAgcHJpdmF0ZSBDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvcjsKKyAgICAKKyAgICAKKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKENoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIpeworICAgICAgICBpZihpdGVyPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICBpdGVyYXRvciAgICAgPSBpdGVyOyAgIAorICAgIH0KKworICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI2N1cnJlbnQoKQorICAgICAqLworICAgIHB1YmxpYyBpbnQgY3VycmVudCgpIHsKKyAgICAgICAgaW50IGMgPSBpdGVyYXRvci5jdXJyZW50KCk7CisgICAgICAgIGlmKGM9PUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpeworICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI2dldExlbmd0aCgpCisgICAgICovCisgICAgcHVibGljIGludCBnZXRMZW5ndGgoKSB7CisgICAgICAgIHJldHVybiAoaXRlcmF0b3IuZ2V0RW5kSW5kZXgoKSAtIGl0ZXJhdG9yLmdldEJlZ2luSW5kZXgoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3IjZ2V0SW5kZXgoKQorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKSB7CisgICAgICAgIHJldHVybiBpdGVyYXRvci5nZXRJbmRleCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI25leHQoKQorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKyAgICAgICAgaW50IGkgPSBpdGVyYXRvci5jdXJyZW50KCk7CisgICAgICAgIGl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgaWYoaT09Q2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7ICAKKyAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc2VlIFVDaGFyYWN0ZXJJdGVyYXRvciNwcmV2aW91cygpCisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpIHsKKyAgICAgICAgaW50IGkgPSBpdGVyYXRvci5wcmV2aW91cygpOworICAgICAgICBpZihpPT1DaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI3NldEluZGV4KGludCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJbmRleChpbnQgaW5kZXgpIHsKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgaXRlcmF0b3Iuc2V0SW5kZXgoaW5kZXgpOworICAgICAgICB9Y2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI3NldFRvTGltaXQoKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRvTGltaXQoKSB7CisgICAgICAgIGl0ZXJhdG9yLnNldEluZGV4KGl0ZXJhdG9yLmdldEVuZEluZGV4KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzZWUgVUNoYXJhY3Rlckl0ZXJhdG9yI2dldFRleHQoY2hhcltdKQorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VGV4dChjaGFyW10gZmlsbEluLCBpbnQgb2Zmc2V0KXsKKyAgICAgICAgaW50IGxlbmd0aCA9aXRlcmF0b3IuZ2V0RW5kSW5kZXgoKSAtIGl0ZXJhdG9yLmdldEJlZ2luSW5kZXgoKTsgCisgICAgICAgIGludCBjdXJyZW50SW5kZXggPSBpdGVyYXRvci5nZXRJbmRleCgpOworICAgICAgICBpZihvZmZzZXQgPCAwIHx8IG9mZnNldCArIGxlbmd0aCA+IGZpbGxJbi5sZW5ndGgpeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhsZW5ndGgpKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBmb3IgKGNoYXIgY2ggPSBpdGVyYXRvci5maXJzdCgpOyBjaCAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FOyBjaCA9IGl0ZXJhdG9yLm5leHQoKSkgeworICAgICAgICAgICAgZmlsbEluW29mZnNldCsrXSA9IGNoOworICAgICAgICB9CisgICAgICAgIGl0ZXJhdG9yLnNldEluZGV4KGN1cnJlbnRJbmRleCk7CisKKyAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY2xvbmUgb2YgdGhpcyBpdGVyYXRvci4gIENsb25lcyB0aGUgdW5kZXJseWluZyBjaGFyYWN0ZXIgaXRlcmF0b3IuCisgICAgICogQHNlZSBVQ2hhcmFjdGVySXRlcmF0b3IjY2xvbmUoKQorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKXsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlciByZXN1bHQgPSAoQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yID0gKENoYXJhY3Rlckl0ZXJhdG9yKXRoaXMuaXRlcmF0b3IuY2xvbmUoKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsgICAgICAKKyAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBvbmx5IGludm9rZWQgaWYgYmFkIHVuZGVybHlpbmcgY2hhcmFjdGVyIGl0ZXJhdG9yCisgICAgICAgIH0KKyAgICB9CisgICAgCisKKyAgICBwdWJsaWMgaW50IG1vdmVJbmRleChpbnQgZGVsdGEpeworICAgICAgICBpbnQgbGVuZ3RoID0gaXRlcmF0b3IuZ2V0RW5kSW5kZXgoKSAtIGl0ZXJhdG9yLmdldEJlZ2luSW5kZXgoKTsgCisgICAgICAgIGludCBpZHggPSBpdGVyYXRvci5nZXRJbmRleCgpK2RlbHRhOworICAgICAgICAKKyAgICAgICAgaWYoaWR4IDwgMCkgeworICAgICAgICAgICAgaWR4ID0gMDsKKyAgICAgICAgfSBlbHNlIGlmKGlkeCA+IGxlbmd0aCkgeworICAgICAgICAgICAgaWR4ID0gbGVuZ3RoOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpdGVyYXRvci5zZXRJbmRleChpZHgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAc2VlIFVDaGFyYWN0ZXJJdGVyYXRvciNnZXRDaGFyYWN0ZXJJdGVyYXRvcigpCisgICAgICovCisgICAgcHVibGljIENoYXJhY3Rlckl0ZXJhdG9yIGdldENoYXJhY3Rlckl0ZXJhdG9yKCl7CisgICAgICAgIHJldHVybiAoQ2hhcmFjdGVySXRlcmF0b3IpaXRlcmF0b3IuY2xvbmUoKTsKKyAgICB9IAorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ29sbGVjdGlvblV0aWxpdGllcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvQ29sbGVjdGlvblV0aWxpdGllcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYWY2ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Db2xsZWN0aW9uVXRpbGl0aWVzLmphdmEKQEAgLTAsMCArMSw0MzMgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU29ydGVkU2V0OworCisvLyNpZm5kZWYgRk9VTkRBVElPTgoraW1wb3J0IGphdmEudXRpbC5yZWdleC5NYXRjaGVyOworLy8jZW5kaWYKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0SXRlcmF0b3I7CisKKy8qKgorICogVXRpbGl0aWVzIHRoYXQgb3VnaHQgdG8gYmUgb24gY29sbGVjdGlvbnMsIGJ1dCBhcmVuJ3QKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIENvbGxlY3Rpb25VdGlsaXRpZXMgeworCQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGpvaW4oT2JqZWN0W10gYXJyYXksIFN0cmluZyBzZXBhcmF0b3IpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKGkgIT0gMCkgcmVzdWx0LmFwcGVuZChzZXBhcmF0b3IpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChhcnJheVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGpvaW4oQ29sbGVjdGlvbiBjb2xsZWN0aW9uLCBTdHJpbmcgc2VwYXJhdG9yKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJvb2xlYW4gZmlyc3QgPSB0cnVlOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gY29sbGVjdGlvbi5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBpZiAoZmlyc3QpIGZpcnN0ID0gZmFsc2U7CisgICAgICAgICAgICBlbHNlIHJlc3VsdC5hcHBlbmQoc2VwYXJhdG9yKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaXQubmV4dCgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisJLyoqCisJICogVXRpbGl0eSBsaWtlIEFycmF5cy5hc0xpc3QoKQorCSAqLworCXB1YmxpYyBzdGF0aWMgTWFwIGFzTWFwKE9iamVjdFtdW10gc291cmNlLCBNYXAgdGFyZ2V0LCBib29sZWFuIHJldmVyc2UpIHsKKwkJaW50IGZyb20gPSAwLCB0byA9IDE7CisJCWlmIChyZXZlcnNlKSB7CisJCQlmcm9tID0gMTsgdG8gPSAwOworCQl9CisgICAgCWZvciAoaW50IGkgPSAwOyBpIDwgc291cmNlLmxlbmd0aDsgKytpKSB7CisgICAgCQl0YXJnZXQucHV0KHNvdXJjZVtpXVtmcm9tXSwgc291cmNlW2ldW3RvXSk7CisgICAgCX0KKyAgICAJcmV0dXJuIHRhcmdldDsKKwl9CisJCisJcHVibGljIHN0YXRpYyBDb2xsZWN0aW9uIGFkZEFsbChJdGVyYXRvciBzb3VyY2UsIENvbGxlY3Rpb24gdGFyZ2V0KSB7CisJCXdoaWxlIChzb3VyY2UuaGFzTmV4dCgpKSB7CisJCQl0YXJnZXQuYWRkKHNvdXJjZS5uZXh0KCkpOworCQl9CisJCXJldHVybiB0YXJnZXQ7IC8vIGZvciBjaGFpbmluZworCX0KKwkKKwlwdWJsaWMgc3RhdGljIGludCBzaXplKEl0ZXJhdG9yIHNvdXJjZSkgeworCQlpbnQgcmVzdWx0ID0gMDsKKwkJd2hpbGUgKHNvdXJjZS5oYXNOZXh0KCkpIHsKKwkJCXNvdXJjZS5uZXh0KCk7CisJCQkrK3Jlc3VsdDsKKwkJfQorCQlyZXR1cm4gcmVzdWx0OworCX0KKwkKKworCXB1YmxpYyBzdGF0aWMgTWFwIGFzTWFwKE9iamVjdFtdW10gc291cmNlKSB7CisgICAgCXJldHVybiBhc01hcChzb3VyY2UsIG5ldyBIYXNoTWFwKCksIGZhbHNlKTsKKwl9CisJCisJLyoqCisJICogVXRpbGl0eSB0aGF0IG91Z2h0IHRvIGJlIG9uIE1hcAorCSAqLworCXB1YmxpYyBzdGF0aWMgTWFwIHJlbW92ZUFsbChNYXAgbSwgQ29sbGVjdGlvbiBpdGVtc1RvUmVtb3ZlKSB7CisJICAgIGZvciAoSXRlcmF0b3IgaXQgPSBpdGVtc1RvUmVtb3ZlLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkgICAgCU9iamVjdCBpdGVtID0gaXQubmV4dCgpOworCSAgICAJbS5yZW1vdmUoaXRlbSk7CisJICAgIH0KKwkgICAgcmV0dXJuIG07CisJfQorCQorCXB1YmxpYyBPYmplY3QgZ2V0Rmlyc3QoQ29sbGVjdGlvbiBjKSB7CisJCUl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOworCQlpZiAoIWl0Lmhhc05leHQoKSkgcmV0dXJuIG51bGw7CisJCXJldHVybiBpdC5uZXh0KCk7CisJfQorCQorCXB1YmxpYyBzdGF0aWMgT2JqZWN0IGdldEJlc3QoQ29sbGVjdGlvbiBjLCBDb21wYXJhdG9yIGNvbXAsIGludCBkaXJlY3Rpb24pIHsKKwkJSXRlcmF0b3IgaXQgPSBjLml0ZXJhdG9yKCk7CisJCWlmICghaXQuaGFzTmV4dCgpKSByZXR1cm4gbnVsbDsKKwkJT2JqZWN0IGJlc3RTb0ZhciA9IGl0Lm5leHQoKTsKKwkJd2hpbGUgKGl0Lmhhc05leHQoKSkgeworCQkJT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisJCQlpZiAoY29tcC5jb21wYXJlKGl0ZW0sIGJlc3RTb0ZhcikgPT0gZGlyZWN0aW9uKSB7CisJCQkJYmVzdFNvRmFyID0gaXRlbTsKKwkJCX0KKwkJfQorCQlyZXR1cm4gYmVzdFNvRmFyOworCX0KKwkKKwlwdWJsaWMgaW50ZXJmYWNlIE9iamVjdE1hdGNoZXIgeworCQkvKioKKwkJICogTXVzdCBoYW5kbGUgbnVsbCwgbmV2ZXIgdGhyb3cgZXhjZXB0aW9uCisJCSAqLworCQlib29sZWFuIG1hdGNoZXMoT2JqZWN0IG8pOworCX0KKwkKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIEludmVyc2VNYXRjaGVyIGltcGxlbWVudHMgT2JqZWN0TWF0Y2hlciB7CisgICAgCU9iamVjdE1hdGNoZXIgb3RoZXI7CisgICAgICAgIHB1YmxpYyBPYmplY3RNYXRjaGVyIHNldChPYmplY3RNYXRjaGVyIHRvSW52ZXJzZSkgeworICAgICAgICAgICAgb3RoZXIgPSB0b0ludmVyc2U7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBtYXRjaGVzKE9iamVjdCB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuICFvdGhlci5tYXRjaGVzKHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworCXB1YmxpYyBzdGF0aWMgQ29sbGVjdGlvbiByZW1vdmVBbGwoQ29sbGVjdGlvbiBjLCBPYmplY3RNYXRjaGVyIGYpIHsKKwkJZm9yIChJdGVyYXRvciBpdCA9IGMuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworCQkJT2JqZWN0IGl0ZW0gPSBpdC5uZXh0KCk7CisJCQlpZiAoZi5tYXRjaGVzKGl0ZW0pKSBpdC5yZW1vdmUoKTsKKwkJfQorCQlyZXR1cm4gYzsKKwl9CisJCisJcHVibGljIHN0YXRpYyBDb2xsZWN0aW9uIHJldGFpbkFsbChDb2xsZWN0aW9uIGMsIE9iamVjdE1hdGNoZXIgZikgeworCQlmb3IgKEl0ZXJhdG9yIGl0ID0gYy5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisJCQlPYmplY3QgaXRlbSA9IGl0Lm5leHQoKTsKKwkJCWlmICghZi5tYXRjaGVzKGl0ZW0pKSBpdC5yZW1vdmUoKTsKKwkJfQorCQlyZXR1cm4gYzsKKwl9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGNvbnRhaW5zU29tZShDb2xsZWN0aW9uIGEsIENvbGxlY3Rpb24gYikgeworICAgICAgICAvLyBmYXN0IHBhdGhzCisgICAgICAgIGlmIChhLnNpemUoKSA9PSAwIHx8IGIuc2l6ZSgpID09IDApIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGEgPT0gYikgcmV0dXJuIHRydWU7IC8vIG11c3QgdGVzdCBhZnRlciBzaXplIHRlc3QuCisKKyAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBTb3J0ZWRTZXQgJiYgYiBpbnN0YW5jZW9mIFNvcnRlZFNldCkgeworICAgICAgICAgICAgU29ydGVkU2V0IGFhID0gKFNvcnRlZFNldCkgYTsKKyAgICAgICAgICAgIFNvcnRlZFNldCBiYiA9IChTb3J0ZWRTZXQpIGI7CisgICAgICAgICAgICBhYS5jb250YWluc0FsbChudWxsKTsKKyAgICAgICAgICAgIENvbXBhcmF0b3IgYmJjID0gYmIuY29tcGFyYXRvcigpOworICAgICAgICAgICAgQ29tcGFyYXRvciBhYWMgPSBhYS5jb21wYXJhdG9yKCk7CisgICAgICAgICAgICBpZiAoYmJjID09IG51bGwpIHsKKyAgICAgICAgICAgIAlpZiAoYWFjID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgYWkgPSBhYS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBiaSA9IGJiLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIENvbXBhcmFibGUgYW8gPSAoQ29tcGFyYWJsZSkgYWkubmV4dCgpOyAvLyB0aGVzZSBhcmUgb2ssIHNpbmNlIHRoZSBzaXplcyBhcmUgIT0gMAorICAgICAgICAgICAgICAgICAgICBDb21wYXJhYmxlIGJvID0gKENvbXBhcmFibGUpIGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWwgPSBhby5jb21wYXJlVG8oYm8pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFvID0gKENvbXBhcmFibGUpIGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVsID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYmkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm8gPSAoQ29tcGFyYWJsZSkgYmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7ICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYmJjLmVxdWFscyhhKSkgeworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGFpID0gYWEuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBiaSA9IGJiLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgT2JqZWN0IGFvID0gYWkubmV4dCgpOyAvLyB0aGVzZSBhcmUgb2ssIHNpbmNlIHRoZSBzaXplcyBhcmUgIT0gMAorICAgICAgICAgICAgICAgIE9iamVjdCBibyA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgcmVsID0gYWFjLmNvbXBhcmUoYW8sIGJvKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlbCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYWkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBhbyA9IGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZWwgPiAwKSAgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFiaS5oYXNOZXh0KCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvID0gYmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7ICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICB9CisgICAgCWZvciAoSXRlcmF0b3IgaXQgPSBhLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAJCWlmIChiLmNvbnRhaW5zKGl0Lm5leHQoKSkpIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGNvbnRhaW5zQWxsKENvbGxlY3Rpb24gYSwgQ29sbGVjdGlvbiBiKSB7CisgICAgICAgIC8vIGZhc3QgcGF0aHMKKyAgICAgICAgaWYgKGEgPT0gYikgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChiLnNpemUoKSA9PSAwKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGEuc2l6ZSgpID09IDApIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFNvcnRlZFNldCAmJiBiIGluc3RhbmNlb2YgU29ydGVkU2V0KSB7CisgICAgICAgICAgICBTb3J0ZWRTZXQgYWEgPSAoU29ydGVkU2V0KSBhOworICAgICAgICAgICAgU29ydGVkU2V0IGJiID0gKFNvcnRlZFNldCkgYjsKKyAgICAgICAgICAgIENvbXBhcmF0b3IgYmJjID0gYmIuY29tcGFyYXRvcigpOworICAgICAgICAgICAgQ29tcGFyYXRvciBhYWMgPSBhYS5jb21wYXJhdG9yKCk7CisgICAgICAgICAgICBpZiAoYmJjID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoYWFjID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgYWkgPSBhYS5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBiaSA9IGJiLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIENvbXBhcmFibGUgYW8gPSAoQ29tcGFyYWJsZSkgYWkubmV4dCgpOyAvLyB0aGVzZSBhcmUgb2ssIHNpbmNlIHRoZSBzaXplcyBhcmUgIT0gMAorICAgICAgICAgICAgICAgICAgICBDb21wYXJhYmxlIGJvID0gKENvbXBhcmFibGUpIGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWwgPSBhby5jb21wYXJlVG8oYm8pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFiaS5oYXNOZXh0KCkpIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYWkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm8gPSAoQ29tcGFyYWJsZSkgYmkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFvID0gKENvbXBhcmFibGUpIGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVsIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYWkuaGFzTmV4dCgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW8gPSAoQ29tcGFyYWJsZSkgYWkubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYmJjLmVxdWFscyhhKSkgeworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGFpID0gYWEuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBiaSA9IGJiLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgT2JqZWN0IGFvID0gYWkubmV4dCgpOyAvLyB0aGVzZSBhcmUgb2ssIHNpbmNlIHRoZSBzaXplcyBhcmUgIT0gMAorICAgICAgICAgICAgICAgIE9iamVjdCBibyA9IGJpLm5leHQoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgcmVsID0gYWFjLmNvbXBhcmUoYW8sIGJvKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlbCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJpLmhhc05leHQoKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYm8gPSBiaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBhbyA9IGFpLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZWwgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWFpLmhhc05leHQoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYW8gPSBhaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBhLmNvbnRhaW5zQWxsKGIpOworICAgIH0KKwkKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gY29udGFpbnNOb25lKENvbGxlY3Rpb24gYSwgQ29sbGVjdGlvbiBiKSB7CisgICAgICAgIHJldHVybiAhY29udGFpbnNTb21lKGEsIGIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVc2VkIGZvciByZXN1bHRzIG9mIGdldENvbnRhaW5tZW50UmVsYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludAorICAgICAgICBBTExfRU1QVFkgPSAwLAorICAgICAgICBOT1RfQV9TVVBFUlNFVF9CID0gMSwKKyAgICAgICAgTk9UX0FfRElTSk9JTlRfQiA9IDIsCisgICAgICAgIE5PVF9BX1NVQlNFVF9CID0gNCwKKyAgICAgICAgTk9UX0FfRVFVQUxTX0IgPSBOT1RfQV9TVUJTRVRfQiB8IE5PVF9BX1NVUEVSU0VUX0IsCisgICAgICAgIEFfUFJPUEVSX1NVQlNFVF9PRl9CID0gTk9UX0FfRElTSk9JTlRfQiB8IE5PVF9BX1NVUEVSU0VUX0IsCisgICAgICAgIEFfUFJPUEVSX1NVUEVSU0VUX0IgPSBOT1RfQV9TVUJTRVRfQiB8IE5PVF9BX0RJU0pPSU5UX0IsCisgICAgICAgIEFfUFJPUEVSX09WRVJMQVBTX0IgPSBOT1RfQV9TVUJTRVRfQiB8IE5PVF9BX0RJU0pPSU5UX0IgfCBOT1RfQV9TVVBFUlNFVF9COworICAgIAorICAgIC8qKgorICAgICAqIEFzc2Vzc2VzIGFsbCB0aGUgcG9zc2libGUgY29udGFpbm1lbnQgcmVsYXRpb25zIGJldHdlZW4gY29sbGVjdGlvbnMgQSBhbmQgQiB3aXRoIG9uZSBjYWxsLjxicj4KKyAgICAgKiBSZXR1cm5zIGFuIGludCB3aXRoIGJpdHMgc2V0LCBhY2NvcmRpbmcgdG8gYSAiVmVubiBEaWFncmFtIiB2aWV3IG9mIEEgdnMgQi48YnI+CisgICAgICogTk9UX0FfU1VQRVJTRVRfQjogYSAtIGIgIT0ge308YnI+CisgICAgICogTk9UX0FfRElTSk9JTlRfQjogYSAqIGIgIT0ge30gIC8vICogaXMgaW50ZXJzZWN0czxicj4KKyAgICAgKiBOT1RfQV9TVUJTRVRfQjogYiAtIGEgIT0ge308YnI+CisgICAgICogVGh1cyB0aGUgYml0cyBjYW4gYmUgdXNlZCB0byBnZXQgdGhlIGZvbGxvd2luZyByZWxhdGlvbnM6PGJyPgorICAgICAqIGZvciBBX1NVUEVSU0VUX0IsIHVzZSAoeCAmIENvbGxlY3Rpb25VdGlsaXRpZXMuTk9UX0FfU1VQRVJTRVRfQikgPT0gMDxicj4KKyAgICAgKiBmb3IgQV9TVUJTRVRfQiwgdXNlICh4ICYgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9TVUJTRVRfQikgPT0gMDxicj4KKyAgICAgKiBmb3IgQV9FUVVBTFNfQiwgdXNlICh4ICYgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9FUVVBTFNfQikgPT0gMDxicj4KKyAgICAgKiBmb3IgQV9ESVNKT0lOVF9CLCB1c2UgKHggJiBDb2xsZWN0aW9uVXRpbGl0aWVzLk5PVF9BX0RJU0pPSU5UX0IpID09IDA8YnI+CisgICAgICogZm9yIEFfT1ZFUkxBUFNfQiwgdXNlICh4ICYgQ29sbGVjdGlvblV0aWxpdGllcy5OT1RfQV9ESVNKT0lOVF9CKSAhPSAwPGJyPgorICAgICAqLworICAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDb250YWlubWVudFJlbGF0aW9uKENvbGxlY3Rpb24gYSwgQ29sbGVjdGlvbiBiKSB7CisgICAgICAgIGlmIChhLnNpemUoKSA9PSAwKSB7CisgICAgICAgIAlyZXR1cm4gKGIuc2l6ZSgpID09IDApID8gQUxMX0VNUFRZIDogTk9UX0FfU1VQRVJTRVRfQjsKKyAgICAgICAgfSBlbHNlIGlmIChiLnNpemUoKSA9PSAwKSB7CisgICAgICAgIAlyZXR1cm4gTk9UX0FfU1VCU0VUX0I7CisgICAgICAgIH0KKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIC8vIFdBUk5JTkc6IG9uZSBtaWdodCB0aGluayB0aGF0IHRoZSBmb2xsb3dpbmcgY2FuIGJlIHNob3J0LWNpcmN1aXRlZCwgYnkgbG9va2luZyBhdAorICAgICAgICAvLyB0aGUgc2l6ZXMgb2YgYSBhbmQgYi4gSG93ZXZlciwgdGhpcyB3b3VsZCBmYWlsIGluIGdlbmVyYWwsIHdoZXJlIGEgZGlmZmVyZW50IGNvbXBhcmF0b3IgaXMgYmVpbmcKKyAgICAgICAgLy8gdXNlZCBpbiB0aGUgdHdvIGNvbGxlY3Rpb25zLiBVbmZvcnR1bmF0ZWx5LCB0aGVyZSBpcyBubyBmYWlsc2FmZSB3YXkgdG8gdGVzdCBmb3IgdGhhdC4KKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGEuaXRlcmF0b3IoKTsgcmVzdWx0ICE9IDYgJiYgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgcmVzdWx0IHw9IChiLmNvbnRhaW5zKGl0Lm5leHQoKSkpID8gTk9UX0FfRElTSk9JTlRfQiA6IE5PVF9BX1NVQlNFVF9COworICAgICAgICB9CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBiLml0ZXJhdG9yKCk7IChyZXN1bHQgJiAzKSAhPSAzICYmIGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIHJlc3VsdCB8PSAoYS5jb250YWlucyhpdC5uZXh0KCkpKSA/IE5PVF9BX0RJU0pPSU5UX0IgOiBOT1RfQV9TVVBFUlNFVF9COworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisJcHVibGljIHN0YXRpYyBTdHJpbmcgcmVtb3ZlKFN0cmluZyBzb3VyY2UsIFVuaWNvZGVTZXQgcmVtb3ZhbHMpIHsKKwkJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKwkJaW50IGNwOworCQlmb3IgKGludCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisJCQljcCA9IFVURjE2LmNoYXJBdChzb3VyY2UsIGkpOworCQkJaWYgKCFyZW1vdmFscy5jb250YWlucyhjcCkpIFVURjE2LmFwcGVuZChyZXN1bHQsIGNwKTsKKwkJfQorCQlyZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisJfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZXR0eVByaW50KFVuaWNvZGVTZXQgdXNldCwgYm9vbGVhbiBjb21wcmVzc1JhbmdlcywgVW5pY29kZVNldCB0b1F1b3RlLCBUcmFuc2xpdGVyYXRvciBxdW90ZXIsIAorICAgIAkJQ29tcGFyYXRvciBvcmRlcmluZywgQ29tcGFyYXRvciBzcGFjZUNvbXBhcmF0b3IpIHsKKyAgICAgICAgUHJldHR5UHJpbnRlciBwcCA9IG5ldyBQcmV0dHlQcmludGVyKCkuc2V0Q29tcHJlc3NSYW5nZXMoY29tcHJlc3NSYW5nZXMpOworICAgICAgICBpZiAodG9RdW90ZSAhPSBudWxsKSBwcC5zZXRUb1F1b3RlKHRvUXVvdGUpOworICAgICAgICBpZiAob3JkZXJpbmcgIT0gbnVsbCkgcHAuc2V0T3JkZXJpbmcob3JkZXJpbmcpOworICAgICAgICBpZiAoc3BhY2VDb21wYXJhdG9yICE9IG51bGwpIHBwLnNldFNwYWNlQ29tcGFyYXRvcihzcGFjZUNvbXBhcmF0b3IpOworICAgICAgICByZXR1cm4gcHAudG9QYXR0ZXJuKHVzZXQpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgTXVsdGlDb21wYXJhdG9yIGltcGxlbWVudHMgQ29tcGFyYXRvciB7CisgICAgICAgIHByaXZhdGUgQ29tcGFyYXRvcltdIGNvbXBhcmF0b3JzOworICAgIAorICAgICAgICBwdWJsaWMgTXVsdGlDb21wYXJhdG9yIChDb21wYXJhdG9yW10gY29tcGFyYXRvcnMpIHsKKyAgICAgICAgICAgIHRoaXMuY29tcGFyYXRvcnMgPSBjb21wYXJhdG9yczsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBMZXhpZ3JhcGhpYyBjb21wYXJlLiBSZXR1cm5zIHRoZSBmaXJzdCBkaWZmZXJlbmNlCisgICAgICAgICAqIEByZXR1cm4gemVybyBpZiBlcXVhbC4gT3RoZXJ3aXNlICsvLSAoaSsxKSAKKyAgICAgICAgICogd2hlcmUgaSBpcyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNvbXBhcmF0b3IgZmluZGluZyBhIGRpZmZlcmVuY2UKKyAgICAgICAgICogQHNlZSBqYXZhLnV0aWwuQ29tcGFyYXRvciNjb21wYXJlKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGFyZzAsIE9iamVjdCBhcmcxKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbXBhcmF0b3JzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IGNvbXBhcmF0b3JzW2ldLmNvbXBhcmUoYXJnMCwgYXJnMSk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID4gMCkgcmV0dXJuIGkrMTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLShpKzEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZmllcyBVbmljb2RlIHNldCB0byBmbGF0dGVuIHRoZSBzdHJpbmdzLiBFZyBbYWJje2RhfV0gPT4gW2FiY2RdCisgICAgICogUmV0dXJucyB0aGUgc2V0IGZvciBjaGFpbmluZy4KKyAgICAgKiBAcGFyYW0gZXhlbXBsYXIxCisgICAgICogQHJldHVybgorICAgICAqLworCXB1YmxpYyBzdGF0aWMgVW5pY29kZVNldCBmbGF0dGVuKFVuaWNvZGVTZXQgZXhlbXBsYXIxKSB7CisJCVVuaWNvZGVTZXQgcmVzdWx0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKwkJYm9vbGVhbiBnb3RTdHJpbmcgPSBmYWxzZTsKKwkJZm9yIChVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKGV4ZW1wbGFyMSk7IGl0Lm5leHRSYW5nZSgpOykgeworCQkJaWYgKGl0LmNvZGVwb2ludCA9PSBpdC5JU19TVFJJTkcpIHsKKwkJCQlyZXN1bHQuYWRkQWxsKGl0LnN0cmluZyk7CisJCQkJZ290U3RyaW5nID0gdHJ1ZTsKKwkJCX0gZWxzZSB7CisJCQkJcmVzdWx0LmFkZChpdC5jb2RlcG9pbnQsIGl0LmNvZGVwb2ludEVuZCk7CisJCQl9CisJCX0KKwkJaWYgKGdvdFN0cmluZykgZXhlbXBsYXIxLnNldChyZXN1bHQpOworCQlyZXR1cm4gZXhlbXBsYXIxOworCX0KKworCS8qKgorCSAqIEZvciBwcm9kdWNpbmcgZmlsdGVyZWQgaXRlcmF0b3JzCisJICovCisJcHVibGljIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBGaWx0ZXJlZEl0ZXJhdG9yIGltcGxlbWVudHMgSXRlcmF0b3IgeworCQlwcml2YXRlIEl0ZXJhdG9yIGJhc2VJdGVyYXRvcjsKKwkJcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0IEVNUFRZID0gbmV3IE9iamVjdCgpOworCQlwcml2YXRlIHN0YXRpYyBmaW5hbCBPYmplY3QgRE9ORSA9IG5ldyBPYmplY3QoKTsKKwkJcHJpdmF0ZSBPYmplY3QgbmV4dE9iamVjdCA9IEVNUFRZOworCQlwdWJsaWMgRmlsdGVyZWRJdGVyYXRvciBzZXQoSXRlcmF0b3IgYmFzZUl0ZXJhdG9yKSB7CisJCQl0aGlzLmJhc2VJdGVyYXRvciA9IGJhc2VJdGVyYXRvcjsKKwkJCXJldHVybiB0aGlzOworCQl9CisJCXB1YmxpYyB2b2lkIHJlbW92ZSgpIHsKKwkJCXRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiRG9lc24ndCBzdXBwb3J0IHJlbW92YWwiKTsKKwkJfQorCQlwdWJsaWMgT2JqZWN0IG5leHQoKSB7CisJCQlPYmplY3QgcmVzdWx0ID0gbmV4dE9iamVjdDsKKwkJCW5leHRPYmplY3QgPSBFTVBUWTsKKwkJCXJldHVybiByZXN1bHQ7CisJCX0JCQorCQlwdWJsaWMgYm9vbGVhbiBoYXNOZXh0KCkgeworCQkJaWYgKG5leHRPYmplY3QgPT0gRE9ORSkgcmV0dXJuIGZhbHNlOworCQkJaWYgKG5leHRPYmplY3QgIT0gRU1QVFkpIHJldHVybiB0cnVlOworCQkJd2hpbGUgKGJhc2VJdGVyYXRvci5oYXNOZXh0KCkpIHsKKwkJCQluZXh0T2JqZWN0ID0gYmFzZUl0ZXJhdG9yLm5leHQoKTsKKwkJCQlpZiAoaXNJbmNsdWRlZChuZXh0T2JqZWN0KSkgeworCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQl9CisJCQl9CisJCQluZXh0T2JqZWN0ID0gRE9ORTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCQlhYnN0cmFjdCBwdWJsaWMgYm9vbGVhbiBpc0luY2x1ZGVkKE9iamVjdCBpdGVtKTsKKwl9CisJCisJcHVibGljIHN0YXRpYyBjbGFzcyBQcmVmaXhJdGVyYXRvciBleHRlbmRzIEZpbHRlcmVkSXRlcmF0b3IgeworCQlwcml2YXRlIFN0cmluZyBwcmVmaXg7CisJCXB1YmxpYyBQcmVmaXhJdGVyYXRvciBzZXQoSXRlcmF0b3IgYmFzZUl0ZXJhdG9yLCBTdHJpbmcgcHJlZml4KSB7CisJCQlzdXBlci5zZXQoYmFzZUl0ZXJhdG9yKTsKKwkJCXRoaXMucHJlZml4ID0gcHJlZml4OworCQkJcmV0dXJuIHRoaXM7CisJCX0KKwkJcHVibGljIGJvb2xlYW4gaXNJbmNsdWRlZChPYmplY3QgaXRlbSkgeworCQkJcmV0dXJuICgoU3RyaW5nKWl0ZW0pLnN0YXJ0c1dpdGgocHJlZml4KTsKKwkJfQorCX0KKwkKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJcHVibGljIHN0YXRpYyBjbGFzcyBSZWdleEl0ZXJhdG9yIGV4dGVuZHMgRmlsdGVyZWRJdGVyYXRvciB7CisJCXByaXZhdGUgTWF0Y2hlciBtYXRjaGVyOworCQlwdWJsaWMgUmVnZXhJdGVyYXRvciBzZXQoSXRlcmF0b3IgYmFzZUl0ZXJhdG9yLCBNYXRjaGVyIG1hdGNoZXIpIHsKKwkJCXN1cGVyLnNldChiYXNlSXRlcmF0b3IpOworCQkJdGhpcy5tYXRjaGVyID0gbWF0Y2hlcjsKKwkJCXJldHVybiB0aGlzOworCQl9CisJCXB1YmxpYyBib29sZWFuIGlzSW5jbHVkZWQoT2JqZWN0IGl0ZW0pIHsKKwkJCXJldHVybiBtYXRjaGVyLnJlc2V0KChTdHJpbmcpaXRlbSkubWF0Y2hlcygpOworCQl9CisJfQorLy8jZW5kaWYKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVQmluYXJ5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWU3MDI5YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUJpbmFyeS5qYXZhCkBAIC0wLDAgKzEsMTU4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBJQ1VCaW5hcnkgCit7ICAgIAorICAgIC8vIHB1YmxpYyBpbm5lciBpbnRlcmZhY2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogU3BlY2lhbCBpbnRlcmZhY2UgZm9yIGRhdGEgYXV0aGVudGljYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBBdXRoZW50aWNhdGUKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBNZXRob2QgdXNlZCBpbiBJQ1VCaW5hcnkucmVhZEhlYWRlcigpIHRvIHByb3ZpZGUgZGF0YSBmb3JtYXQKKyAgICAgICAgICogYXV0aGVudGljYXRpb24uIAorICAgICAgICAgKiBAcGFyYW0gdmVyc2lvbiB2ZXJzaW9uIG9mIHRoZSBjdXJyZW50IGRhdGEKKyAgICAgICAgICogQHJldHVybiB0cnVlIGlmIGRhdGFmb3JtYXQgaXMgYW4gYWNjZXB0YWJsZSB2ZXJzaW9uLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKTsKKyAgICB9CisgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIDxwPklDVSBkYXRhIGhlYWRlciByZWFkZXIgbWV0aG9kLiAKKyAgICAqIFRha2VzIGEgSUNVIGdlbmVyYXRlZCBiaWctZW5kaWFuIGlucHV0IHN0cmVhbSwgcGFyc2UgdGhlIElDVSBzdGFuZGFyZCAKKyAgICAqIGZpbGUgaGVhZGVyIGFuZCBhdXRoZW50aWNhdGVzIHRoZW0uPC9wPgorICAgICogPHA+SGVhZGVyIGZvcm1hdDogCisgICAgKiA8dWw+CisgICAgKiAgICAgPGxpPiBIZWFkZXIgc2l6ZSAoY2hhcikKKyAgICAqICAgICA8bGk+IE1hZ2ljIG51bWJlciAxIChieXRlKQorICAgICogICAgIDxsaT4gTWFnaWMgbnVtYmVyIDIgKGJ5dGUpCisgICAgKiAgICAgPGxpPiBSZXN0IG9mIHRoZSBoZWFkZXIgc2l6ZSAoY2hhcikKKyAgICAqICAgICA8bGk+IFJlc2VydmVkIHdvcmQgKGNoYXIpCisgICAgKiAgICAgPGxpPiBCaWcgZW5kaWFuIGluZGljYXRvciAoYnl0ZSkKKyAgICAqICAgICA8bGk+IENoYXJhY3RlciBzZXQgZmFtaWx5IGluZGljYXRvciAoYnl0ZSkKKyAgICAqICAgICA8bGk+IFNpemUgb2YgYSBjaGFyIChieXRlKSBmb3IgYysrIGFuZCBjIHVzZQorICAgICogICAgIDxsaT4gUmVzZXJ2ZWQgYnl0ZSAoYnl0ZSkKKyAgICAqICAgICA8bGk+IERhdGEgZm9ybWF0IGlkZW50aWZpZXIgKDQgYnl0ZXMpLCBlYWNoIElDVSBkYXRhIGhhcyBpdHMgb3duCisgICAgKiAgICAgICAgICBpZGVudGlmaWVyIHRvIGRpc3Rpbmd1aXNoIHRoZW0uIFswXSBtYWpvciBbMV0gbWlub3IgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsyXSBtaWxsaSBbM10gbWljcm8gCisgICAgKiAgICAgPGxpPiBEYXRhIHZlcnNpb24gKDQgYnl0ZXMpLCB0aGUgY2hhbmdlIHZlcnNpb24gb2YgdGhlIElDVSBkYXRhCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICogICAgIDxsaT4gVW5pY29kZSB2ZXJzaW9uICg0IGJ5dGVzKSB0aGlzIElDVSBpcyBiYXNlZCBvbi4KKyAgICAqIDwvdWw+CisgICAgKiA8L3A+CisgICAgKiA8cD4KKyAgICAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAgICAqIDxwcmU+CisgICAgKiB0cnkgeworICAgICogICAgRmlsZUlucHV0U3RyZWFtIGlucHV0ID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlbmFtZSk7CisgICAgKiAgICBJZiAoVXRpbGl0eS5yZWFkSUNVRGF0YUhlYWRlcihpbnB1dCwgZGF0YWZvcm1hdCwgZGF0YXZlcnNpb24sIAorICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29kZSkgeworICAgICogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVmVyaWZpZWQgZmlsZSBoZWFkZXIsIHRoaXMgaXMgYSBJQ1UgZGF0YSBmaWxlIik7CisgICAgKiAgICB9CisgICAgKiB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgKiAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoaXMgaXMgbm90IGEgSUNVIGRhdGEgZmlsZSIpOworICAgICogfQorICAgICogPC9wcmU+CisgICAgKiA8L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gaW5wdXQgc3RyZWFtIHRoYXQgY29udGFpbnMgdGhlIElDVSBkYXRhIGhlYWRlcgorICAgICogQHBhcmFtIGRhdGFGb3JtYXRJREV4cGVjdGVkIERhdGEgZm9ybWF0IGV4cGVjdGVkLiBBbiBhcnJheSBvZiA0IGJ5dGVzIAorICAgICogICAgICAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGF0YSBmb3JtYXQuCisgICAgKiAgICAgICAgICAgICAgICAgICAgIEUuZy4gZGF0YSBmb3JtYXQgSUQgMS4yLjMuNC4gd2lsbCBiZWNhbWUgYW4gYXJyYXkgb2YgCisgICAgKiAgICAgICAgICAgICAgICAgICAgIHsxLCAyLCAzLCA0fQorICAgICogQHBhcmFtIGF1dGhlbnRpY2F0ZSB1c2VyIGRlZmluZWQgZXh0cmEgZGF0YSBhdXRoZW50aWNhdGlvbi4gVGhpcyB2YWx1ZQorICAgICogICAgICAgICAgICAgICAgICAgICBjYW4gYmUgbnVsbCwgaWYgbm8gZXh0cmEgYXV0aGVudGljYXRpb24gaXMgbmVlZGVkLgorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gaWYgdGhlcmUgaXMgYSByZWFkIGVycm9yIG9yIAorICAgICogICAgICAgICAgICB3aGVuIGhlYWRlciBhdXRoZW50aWNhdGlvbiBmYWlscy4KKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZVtdIHJlYWRIZWFkZXIoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBkYXRhRm9ybWF0SURFeHBlY3RlZFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhlbnRpY2F0ZSBhdXRoZW50aWNhdGUpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGlucHV0ID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgICAgIGNoYXIgaGVhZGVyc2l6ZSA9IGlucHV0LnJlYWRDaGFyKCk7CisgICAgICAgIGludCByZWFkY291bnQgPSAyOworICAgICAgICAvL3JlYWRpbmcgdGhlIGhlYWRlciBmb3JtYXQKKyAgICAgICAgYnl0ZSBtYWdpYzEgPSBpbnB1dC5yZWFkQnl0ZSgpOworICAgICAgICByZWFkY291bnQgKys7CisgICAgICAgIGJ5dGUgbWFnaWMyID0gaW5wdXQucmVhZEJ5dGUoKTsKKyAgICAgICAgcmVhZGNvdW50ICsrOworICAgICAgICBpZiAobWFnaWMxICE9IE1BR0lDMSB8fCBtYWdpYzIgIT0gTUFHSUMyKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oTUFHSUNfTlVNQkVSX0FVVEhFTlRJQ0FUSU9OX0ZBSUxFRF8pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnB1dC5yZWFkQ2hhcigpOyAvLyByZWFkaW5nIHNpemUKKyAgICAgICAgcmVhZGNvdW50ICs9IDI7CisgICAgICAgIGlucHV0LnJlYWRDaGFyKCk7IC8vIHJlYWRpbmcgcmVzZXJ2ZWQgd29yZAorICAgICAgICByZWFkY291bnQgKz0gMjsKKyAgICAgICAgYnl0ZSBiaWdlbmRpYW4gICAgPSBpbnB1dC5yZWFkQnl0ZSgpOworICAgICAgICByZWFkY291bnQgKys7CisgICAgICAgIGJ5dGUgY2hhcnNldCAgICAgID0gaW5wdXQucmVhZEJ5dGUoKTsKKyAgICAgICAgcmVhZGNvdW50ICsrOworICAgICAgICBieXRlIGNoYXJzaXplICAgICA9IGlucHV0LnJlYWRCeXRlKCk7CisgICAgICAgIHJlYWRjb3VudCArKzsKKyAgICAgICAgaW5wdXQucmVhZEJ5dGUoKTsgLy8gcmVhZGluZyByZXNlcnZlZCBieXRlCisgICAgICAgIHJlYWRjb3VudCArKzsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgYnl0ZSBkYXRhRm9ybWF0SURbXSA9IG5ldyBieXRlWzRdOworICAgICAgICBpbnB1dC5yZWFkRnVsbHkoZGF0YUZvcm1hdElEKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIGJ5dGUgZGF0YVZlcnNpb25bXSA9IG5ldyBieXRlWzRdOworICAgICAgICBpbnB1dC5yZWFkRnVsbHkoZGF0YVZlcnNpb24pOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgYnl0ZSB1bmljb2RlVmVyc2lvbltdID0gbmV3IGJ5dGVbNF07CisgICAgICAgIGlucHV0LnJlYWRGdWxseSh1bmljb2RlVmVyc2lvbik7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICBpZiAoaGVhZGVyc2l6ZSA8IHJlYWRjb3VudCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnRlcm5hbCBFcnJvcjogSGVhZGVyIHNpemUgZXJyb3IiKTsKKyAgICAgICAgfQorICAgICAgICBpbnB1dC5za2lwQnl0ZXMoaGVhZGVyc2l6ZSAtIHJlYWRjb3VudCk7CisKKyAgICAgICAgaWYgKGJpZ2VuZGlhbiAhPSBCSUdfRU5ESUFOXyB8fCBjaGFyc2V0ICE9IENIQVJfU0VUXworICAgICAgICAgICAgfHwgY2hhcnNpemUgIT0gQ0hBUl9TSVpFXworICAgICAgICAgICAgfHwgIUFycmF5cy5lcXVhbHMoZGF0YUZvcm1hdElERXhwZWN0ZWQsIGRhdGFGb3JtYXRJRCkKKyAgICAgICAgICAgIHx8IChhdXRoZW50aWNhdGUgIT0gbnVsbCAKKyAgICAgICAgICAgICAgICAmJiAhYXV0aGVudGljYXRlLmlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGRhdGFWZXJzaW9uKSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbihIRUFERVJfQVVUSEVOVElDQVRJT05fRkFJTEVEXyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHVuaWNvZGVWZXJzaW9uOworICAgIH0KKyAgICAgCisgICAgLy8gcHJpdmF0ZSB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAKKyAgICAvKioKKyAgICAqIE1hZ2ljIG51bWJlcnMgdG8gYXV0aGVudGljYXRlIHRoZSBkYXRhIGZpbGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgTUFHSUMxID0gKGJ5dGUpMHhkYTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE1BR0lDMiA9IChieXRlKTB4Mjc7CisgICAgICAKKyAgICAvKioKKyAgICAqIEZpbGUgZm9ybWF0IGF1dGhlbnRpY2F0aW9uIHZhbHVlcworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCSUdfRU5ESUFOXyA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBDSEFSX1NFVF8gPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQ0hBUl9TSVpFXyA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgKiBFcnJvciBtZXNzYWdlcworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE1BR0lDX05VTUJFUl9BVVRIRU5USUNBVElPTl9GQUlMRURfID0gCisgICAgICAgICAgICAgICAgICAgICAgICJJQ1UgZGF0YSBmaWxlIGVycm9yOiBOb3QgYW4gSUNVIGRhdGEgZmlsZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhFQURFUl9BVVRIRU5USUNBVElPTl9GQUlMRURfID0KKyAgICAgICAgIklDVSBkYXRhIGZpbGUgZXJyb3I6IEhlYWRlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQsIHBsZWFzZSBjaGVjayBpZiB5b3UgaGF2ZSBhIHZhbGlkIElDVSBkYXRhIGZpbGUiOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVQmluYXJ5U3RyZWFtLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VCaW5hcnlTdHJlYW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDQ5MjUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVQmluYXJ5U3RyZWFtLmphdmEKQEAgLTAsMCArMSw1OSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogTm92ZW1iZXIgNSAyMDAyCisqIFNpbmNlOiBJQ1UgMi40CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIEEgRGF0YUlucHV0U3RyZWFtIHRoYXQgaW1wbGVtZW50cyByYW5kb20tYWNjZXNzIHNlZWtpbmcuICBGb3IgdGhpcworICogdG8gd29yaywgdGhlIHNpemUgb2YgdGhlIGRhdGEgc3RyZWFtIG11c3QgYmUga25vd24gaW4gYWR2YW5jZSwgb3IKKyAqIHRoZSBkYXRhIG11c3QgYmUgc3VwcGxpZWQgYXMgYSByYXcgYnl0ZVtdIGFycmF5LgorICoKKyAqIFNlZWtpbmcgZG9lc24ndCB3b3JrIGRpcmVjdGx5IG9uIGFsbCBzdHJlYW1zLiAgSWYgYSBnaXZlbiBzdHJlYW0KKyAqIGRvZXNuJ3Qgc3VwcG9ydCBzZWVraW5nLCBleHRyYWN0IHRoZSBieXRlcyBpbnRvIGEgYnl0ZVtdIGFycmF5IGFuZAorICogdXNlIHRoZSBieXRlW10gY29uc3RydWN0b3IuCisgKi8KK2NsYXNzIElDVUJpbmFyeVN0cmVhbSBleHRlbmRzIERhdGFJbnB1dFN0cmVhbSB7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBzdHJlYW0gZnJvbSB0aGUgZ2l2ZW4gc3RyZWFtIGFuZCBzaXplLgorICAgICAqIEBwYXJhbSBzdHJlYW0gdGhlIHN0cmVhbSBvZiBkYXRhCisgICAgICogQHBhcmFtIHNpemUgdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHNob3VsZCBiZSBtYWRlIGF2YWlsYWJsZQorICAgICAqIGZvciBzZWVraW5nLiAgQnl0ZXMgYmV5b25kIHRoaXMgbWF5IGJlIHJlYWQsIGJ1dCBzZWVraW5nIHdpbGwKKyAgICAgKiBub3Qgd29yayBmb3Igb2Zmc2V0ID49IHNpemUuCisgICAgICovCisgICAgcHVibGljIElDVUJpbmFyeVN0cmVhbShJbnB1dFN0cmVhbSBzdHJlYW0sIGludCBzaXplKSB7CisgICAgICAgIHN1cGVyKHN0cmVhbSk7CisgICAgICAgIG1hcmsoc2l6ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgc3RyZWFtIGZyb20gdGhlIGdpdmVuIHJhdyBieXRlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVQmluYXJ5U3RyZWFtKGJ5dGVbXSByYXcpIHsKKyAgICAgICAgdGhpcyhuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0ocmF3KSwgcmF3Lmxlbmd0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VlayB0byB0aGUgZ2l2ZW4gb2Zmc2V0LiAgT2Zmc2V0IGlzIGZyb20gdGhlIHBvc2l0aW9uIG9mIHRoZQorICAgICAqIHN0cmVhbSBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLCBvciBmcm9tIHRoZSBzdGFydCBvZiB0aGUKKyAgICAgKiBieXRlW10gYXJyYXkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2VlayhpbnQgb2Zmc2V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICByZXNldCgpOworICAgICAgICBpbnQgYWN0dWFsID0gc2tpcEJ5dGVzKG9mZnNldCk7CisgICAgICAgIGlmIChhY3R1YWwgIT0gb2Zmc2V0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJTa2lwKCIgKyBvZmZzZXQgKyAiKSBvbmx5IHNraXBwZWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWwgKyAiIGJ5dGVzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZhbHNlKSBTeXN0ZW0ub3V0LnByaW50bG4oIihzZWVrICIgKyBvZmZzZXQgKyAiKSIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVURhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVURhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2Q3ZDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVRGF0YS5qYXZhCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIENyZWF0ZWQgb24gRmViIDQsIDIwMDQKKyAqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlcjsKK2ltcG9ydCBqYXZhLnNlY3VyaXR5LlByaXZpbGVnZWRBY3Rpb247CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworLyoqCisgKiBQcm92aWRlcyBhY2Nlc3MgdG8gSUNVIGRhdGEgZmlsZXMgYXMgSW5wdXRTdHJlYW1zLiAgSW1wbGVtZW50cyBzZWN1cml0eSBjaGVja2luZy4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIElDVURhdGEgeworICAgIC8qCisgICAgICogUmV0dXJuIGEgVVJMIHRvIHRoZSBJQ1UgcmVzb3VyY2UgbmFtZXMgcmVzb3VyY2VOYW1lLiAgVGhlCisgICAgICogcmVzb3VyY2UgbmFtZSBzaG91bGQgZWl0aGVyIGJlIGFuIGFic29sdXRlIHBhdGgsIG9yIGEgcGF0aCByZWxhdGl2ZSB0bworICAgICAqIGNvbS5pYm0uaWN1LmltcGwgKGUuZy4sIG1vc3QgbGlrZWx5IGl0IGlzICdkYXRhL2ZvbycpLiAgSWYgcmVxdWlyZWQKKyAgICAgKiBpcyB0cnVlLCB0aHJvdyBhbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gaW5zdGVhZCBvZiByZXR1cm5pbmcgYSBudWxsIHJlc3VsdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZXhpc3RzKGZpbmFsIFN0cmluZyByZXNvdXJjZU5hbWUpIHsKKyAgICAgICAgVVJMIGkgPSBudWxsOworICAgICAgICBpZiAoU3lzdGVtLmdldFNlY3VyaXR5TWFuYWdlcigpICE9IG51bGwpIHsKKyAgICAgICAgICAgIGkgPSAoVVJMKUFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKG5ldyBQcml2aWxlZ2VkQWN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IHJ1bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJQ1VEYXRhLmNsYXNzLmdldFJlc291cmNlKHJlc291cmNlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGkgPSBJQ1VEYXRhLmNsYXNzLmdldFJlc291cmNlKHJlc291cmNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGkgIT0gbnVsbDsKKyAgICB9CisgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIElucHV0U3RyZWFtIGdldFN0cmVhbShmaW5hbCBDbGFzcyByb290LCBmaW5hbCBTdHJpbmcgcmVzb3VyY2VOYW1lLCBib29sZWFuIHJlcXVpcmVkKSB7CisgICAgICAgIElucHV0U3RyZWFtIGkgPSBudWxsOworICAgICAgICAKKyAgICAgICAgaWYgKFN5c3RlbS5nZXRTZWN1cml0eU1hbmFnZXIoKSAhPSBudWxsKSB7CisgICAgICAgICAgICBpID0gKElucHV0U3RyZWFtKUFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKG5ldyBQcml2aWxlZ2VkQWN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IHJ1bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByb290LmdldFJlc291cmNlQXNTdHJlYW0ocmVzb3VyY2VOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaSA9IHJvb3QuZ2V0UmVzb3VyY2VBc1N0cmVhbShyZXNvdXJjZU5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGkgPT0gbnVsbCAmJiByZXF1aXJlZCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiY291bGQgbm90IGxvY2F0ZSBkYXRhICIgK3Jlc291cmNlTmFtZSwgcm9vdC5nZXRQYWNrYWdlKCkuZ2V0TmFtZSgpLCByZXNvdXJjZU5hbWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIElucHV0U3RyZWFtIGdldFN0cmVhbShmaW5hbCBDbGFzc0xvYWRlciBsb2FkZXIsIGZpbmFsIFN0cmluZyByZXNvdXJjZU5hbWUsIGJvb2xlYW4gcmVxdWlyZWQpIHsKKyAgICAgICAgSW5wdXRTdHJlYW0gaSA9IG51bGw7CisgICAgICAgIGlmIChTeXN0ZW0uZ2V0U2VjdXJpdHlNYW5hZ2VyKCkgIT0gbnVsbCkgeworICAgICAgICAgICAgaSA9IChJbnB1dFN0cmVhbSlBY2Nlc3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZChuZXcgUHJpdmlsZWdlZEFjdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBydW4oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9hZGVyLmdldFJlc291cmNlQXNTdHJlYW0ocmVzb3VyY2VOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaSA9IGxvYWRlci5nZXRSZXNvdXJjZUFzU3RyZWFtKHJlc291cmNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0gbnVsbCAmJiByZXF1aXJlZCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiY291bGQgbm90IGxvY2F0ZSBkYXRhIiwgbG9hZGVyLnRvU3RyaW5nKCksIHJlc291cmNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgSW5wdXRTdHJlYW0gZ2V0U3RyZWFtKENsYXNzTG9hZGVyIGxvYWRlciwgU3RyaW5nIHJlc291cmNlTmFtZSl7CisgICAgICAgIHJldHVybiBnZXRTdHJlYW0obG9hZGVyLHJlc291cmNlTmFtZSwgZmFsc2UpOyAgIAorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgSW5wdXRTdHJlYW0gZ2V0UmVxdWlyZWRTdHJlYW0oQ2xhc3NMb2FkZXIgbG9hZGVyLCBTdHJpbmcgcmVzb3VyY2VOYW1lKXsKKyAgICAgICAgcmV0dXJuIGdldFN0cmVhbShsb2FkZXIscmVzb3VyY2VOYW1lLCB0cnVlKTsgICAKKyAgICB9CisKKyAgICAvKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIHRoYXQgY2FsbHMgZ2V0U3RyZWFtKElDVURhdGEuY2xhc3MsIHJlc291cmNlTmFtZSwgZmFsc2UpOworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSW5wdXRTdHJlYW0gZ2V0U3RyZWFtKFN0cmluZyByZXNvdXJjZU5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFN0cmVhbShJQ1VEYXRhLmNsYXNzLCByZXNvdXJjZU5hbWUsIGZhbHNlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FsbHMgZ2V0U3RyZWFtKElDVURhdGEuY2xhc3MsIHJlc291cmNlTmFtZSwgdHJ1ZSkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBJbnB1dFN0cmVhbSBnZXRSZXF1aXJlZFN0cmVhbShTdHJpbmcgcmVzb3VyY2VOYW1lKSB7CisgICAgICAgIHJldHVybiBnZXRTdHJlYW0oSUNVRGF0YS5jbGFzcywgcmVzb3VyY2VOYW1lLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIHRoYXQgY2FsbHMgZ2V0U3RyZWFtKHJvb3QsIHJlc291cmNlTmFtZSwgZmFsc2UpOworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSW5wdXRTdHJlYW0gZ2V0U3RyZWFtKENsYXNzIHJvb3QsIFN0cmluZyByZXNvdXJjZU5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFN0cmVhbShyb290LCByZXNvdXJjZU5hbWUsIGZhbHNlKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FsbHMgZ2V0U3RyZWFtKHJvb3QsIHJlc291cmNlTmFtZSwgdHJ1ZSkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBJbnB1dFN0cmVhbSBnZXRSZXF1aXJlZFN0cmVhbShDbGFzcyByb290LCBTdHJpbmcgcmVzb3VyY2VOYW1lKSB7CisgICAgICAgIHJldHVybiBnZXRTdHJlYW0ocm9vdCwgcmVzb3VyY2VOYW1lLCB0cnVlKTsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVURlYnVnLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VEZWJ1Zy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5YzE1M2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VEZWJ1Zy5qYXZhCkBAIC0wLDAgKzEsMTIzIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBJQ1VEZWJ1ZyB7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHBhcmFtczsKKyAgICBzdGF0aWMgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcGFyYW1zID0gU3lzdGVtLmdldFByb3BlcnR5KCJJQ1VEZWJ1ZyIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChTZWN1cml0eUV4Y2VwdGlvbiBlKSB7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBkZWJ1ZyA9IHBhcmFtcyAhPSBudWxsOworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaGVscCA9IGRlYnVnICYmIChwYXJhbXMuZXF1YWxzKCIiKSB8fCBwYXJhbXMuaW5kZXhPZigiaGVscCIpICE9IC0xKTsKKworICAgIHN0YXRpYyB7CisgICAgICAgIGlmIChkZWJ1ZykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbklDVURlYnVnPSIgKyBwYXJhbXMpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgamF2YVZlcnNpb25TdHJpbmcgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEudmVyc2lvbiIpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0pESzE0T3JIaWdoZXI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBqYXZhVmVyc2lvbjsKKworICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0SW5zdGFuY2VMZW5pZW50KFN0cmluZyBzKSB7CisgICAgICAgIC8vIGNsZWFuIHN0cmluZworICAgICAgICAvLyBwcmVzZXJ2ZSBvbmx5IGRpZ2l0cywgc2VwYXJhdGVkIGJ5IHNpbmdsZSAnLicgCisgICAgICAgIC8vIGlnbm9yZSBvdmVyIDQgZGlnaXQgc2VxdWVuY2VzCisgICAgICAgIC8vIGRvZXMgbm90IHRlc3QgPCAyNTUsIHZlcnkgb2RkLi4uCisKKyAgICAgICAgY2hhcltdIGNoYXJzID0gcy50b0NoYXJBcnJheSgpOworICAgICAgICBpbnQgciA9IDAsIHcgPSAwLCBjb3VudCA9IDA7CisgICAgICAgIGJvb2xlYW4gbnVtZXJpYyA9IGZhbHNlOyAvLyBpZ25vcmUgbGVhZGluZyBub24tbnVtZXJpY3MKKyAgICAgICAgd2hpbGUgKHIgPCBjaGFycy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IGNoYXJzW3IrK107CisgICAgICAgICAgICBpZiAoYyA8ICcwJyB8fCBjID4gJzknKSB7CisgICAgICAgICAgICAgICAgaWYgKG51bWVyaWMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgZm91ciBkaWdpdCBzdHJpbmdzIGFsbG93ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG51bWVyaWMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgY2hhcnNbdysrXSA9ICcuJzsKKyAgICAgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG51bWVyaWMgPSB0cnVlOworICAgICAgICAgICAgICAgIGNoYXJzW3crK10gPSBjOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHdoaWxlICh3ID4gMCAmJiBjaGFyc1t3LTFdID09ICcuJykgeworICAgICAgICAgICAgLS13OworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZyB2cyA9IG5ldyBTdHJpbmcoY2hhcnMsIDAsIHcpOworCisgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSh2cyk7CisgICAgfQorCisgICAgc3RhdGljIHsKKyAgICAgICAgamF2YVZlcnNpb24gPSBnZXRJbnN0YW5jZUxlbmllbnQoamF2YVZlcnNpb25TdHJpbmcpOworCisgICAgICAgIFZlcnNpb25JbmZvIGphdmExNFZlcnNpb24gPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgiMS40LjAiKTsKKworICAgICAgICBpc0pESzE0T3JIaWdoZXIgPSBqYXZhVmVyc2lvbi5jb21wYXJlVG8oamF2YTE0VmVyc2lvbikgPj0gMDsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZW5hYmxlZCgpIHsKKyAgICAgICAgcmV0dXJuIGRlYnVnOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBlbmFibGVkKFN0cmluZyBhcmcpIHsKKyAgICAgICAgaWYgKGRlYnVnKSB7CisgICAgICAgICAgICBib29sZWFuIHJlc3VsdCA9IHBhcmFtcy5pbmRleE9mKGFyZykgIT0gLTE7CisgICAgICAgICAgICBpZiAoaGVscCkgU3lzdGVtLm91dC5wcmludGxuKCJcbklDVURlYnVnLmVuYWJsZWQoIiArIGFyZyArICIpID0gIiArIHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB2YWx1ZShTdHJpbmcgYXJnKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSAiZmFsc2UiOworICAgICAgICBpZiAoZGVidWcpIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IHBhcmFtcy5pbmRleE9mKGFyZyk7CisgICAgICAgICAgICBpZiAoaW5kZXggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBpbmRleCArPSBhcmcubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgaWYgKHBhcmFtcy5sZW5ndGgoKSA+IGluZGV4ICYmIHBhcmFtcy5jaGFyQXQoaW5kZXgpID09ICc9JykgeworICAgICAgICAgICAgICAgICAgICBpbmRleCArPSAxOworICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSBwYXJhbXMuaW5kZXhPZigiLCIsIGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcGFyYW1zLnN1YnN0cmluZyhpbmRleCwgbGltaXQgPT0gLTEgPyBwYXJhbXMubGVuZ3RoKCkgOiBsaW1pdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gInRydWUiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGhlbHApIFN5c3RlbS5vdXQucHJpbnRsbigiXG5JQ1VEZWJ1Zy52YWx1ZSgiICsgYXJnICsgIikgPSAiICsgcmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHN0YXRpYyBwdWJsaWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgLy8gdGVzdAorICAgICAgICBTdHJpbmdbXSB0ZXN0cyA9IHsKKyAgICAgICAgICAgICIxLjMuMCIsCisgICAgICAgICAgICAiMS4zLjBfMDIiLAorICAgICAgICAgICAgIjEuMy4xZWEiLAorICAgICAgICAgICAgIjEuNC4xYjQzIiwKKyAgICAgICAgICAgICJfX180MV9fXzUiLAorICAgICAgICAgICAgIngxLjQuNTF4eDg5ZWEuN2YiCisgICAgICAgIH07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0ZXN0c1tpXSArICIgPT4gIiArIGdldEluc3RhbmNlTGVuaWVudCh0ZXN0c1tpXSkpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVTGlzdFJlc291cmNlQnVuZGxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMaXN0UmVzb3VyY2VCdW5kbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWUwZDVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVTGlzdFJlc291cmNlQnVuZGxlLmphdmEKQEAgLTAsMCArMSw2MDYgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCisvKioKKyAqIEEgbGlzdCByZXNvdXJjZSBidW5kbGUgdGhhdCBkb2VzIHJlZGlyZWN0aW9uCisgKiBiZWNhdXNlIG90aGVyd2lzZSBzb21lIG9mIG91ciByZXNvdXJjZSBjbGFzcyBmaWxlcworICogYXJlIHRvbyBiaWcgZm9yIHRoZSBqYXZhIHJ1bnRpbWUgdG8gaGFuZGxlLgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCitwdWJsaWMgY2xhc3MgSUNVTGlzdFJlc291cmNlQnVuZGxlIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVREFUQSA9ICJJQ1VEQVRBIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX0JVTkRMRV9OQU1FID0gIkxvY2FsZUVsZW1lbnRzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX1BBQ0tBR0VfTkFNRSA9ImNvbS5pYm0uaWN1LmltcGwuZGF0YSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEVOQ09ESU5HPSJVVEYtOCI7CisKKyAgICAvKiBwYWNrYWdlICovIExvY2FsZSBpY3VMb2NhbGU7CisgICAgLyogcGFja2FnZSAqLyB2b2lkIHNldFBhcmVudFgoUmVzb3VyY2VCdW5kbGUgYikgeworICAgICAgICBzZXRQYXJlbnQoYik7CisgICAgfQorCisgICAgcHVibGljIExvY2FsZSBnZXRMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiBpY3VMb2NhbGU7CisgICAgfQorCisgICAgcHJvdGVjdGVkIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSgpIHsKKyAgICB9CisKKyAgICBwcml2YXRlIEhhc2h0YWJsZSB2aXNpdGVkID0gbmV3IEhhc2h0YWJsZSgpOworICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXJzIG11c3Qgc3RhdGljYWxseSBpbml0aWFsaXplIHRoaXMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBjb250ZW50czsKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgb3VyIGNhY2hlCisgICAgICovCisgICAgcHJpdmF0ZSBPYmplY3RbXVtdIHJlYWxDb250ZW50czsKKworICAgIC8qKgorICAgICAqIFNlZSBiYXNlIGNsYXNzIGRlc2NyaXB0aW9uCisgICAgICovCisgICAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKXsKKyAgICAgICAgLy8gd2UgcmVwbGFjZSBhbnkgcmVkaXJlY3RlZCB2YWx1ZXMgd2l0aCByZWFsIHZhbHVlcyBpbiBhIGNsb25lZCBhcnJheQorICAgICAgICBpZiAocmVhbENvbnRlbnRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlYWxDb250ZW50cyA9IGNvbnRlbnRzOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb250ZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIE9iamVjdCBuZXdWYWx1ZSA9IGdldFJlZGlyZWN0ZWRSZXNvdXJjZSgoU3RyaW5nKWNvbnRlbnRzW2ldWzBdLGNvbnRlbnRzW2ldWzFdLCAtMSk7CisgICAgICAgICAgICAgICAgaWYgKG5ld1ZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlYWxDb250ZW50cyA9PSBjb250ZW50cykgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVhbENvbnRlbnRzID0gKE9iamVjdFtdW10pY29udGVudHMuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZWFsQ29udGVudHNbaV0gPSBuZXcgT2JqZWN0W10geyBjb250ZW50c1tpXVswXSwgbmV3VmFsdWUgfTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlYWxDb250ZW50czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gbnVsbCBpZiB2YWx1ZSBpcyBhbHJlYWR5IGluIGV4aXN0aW5nIGNvbnRlbnRzIGFycmF5LCBvdGhlcndpc2UgZmV0Y2ggdGhlCisgICAgICogcmVhbCB2YWx1ZSBhbmQgcmV0dXJuIGl0LgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0IGdldFJlZGlyZWN0ZWRSZXNvdXJjZShTdHJpbmcga2V5LCBPYmplY3QgdmFsdWUsIGludCBpbmRleCkgeworCisgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdFtdW10pIHsKKyAgICAgICAgICAgIE9iamVjdFtdW10gYVZhbHVlID0gKE9iamVjdFtdW10pdmFsdWU7CisgICAgICAgICAgICBpbnQgaT0wOworICAgICAgICAgICAgd2hpbGUoaSA8IGFWYWx1ZS5sZW5ndGgpeworICAgICAgICAgICAgICAgIGludCBqPTA7CisgICAgICAgICAgICAgICAgd2hpbGUoaiA8IGFWYWx1ZVtpXS5sZW5ndGgpeworICAgICAgICAgICAgICAgICAgICBhVmFsdWVbaV1bal0gPSBnZXRSZWRpcmVjdGVkUmVzb3VyY2UoKFN0cmluZylhVmFsdWVbaV1bMF0sYVZhbHVlW2ldW2pdLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgaisrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgIH1lbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdFtdKXsKKyAgICAgICAgICAgIE9iamVjdFtdIGFWYWx1ZSA9IChPYmplY3RbXSkgdmFsdWU7CisgICAgICAgICAgICBpbnQgaT0wOworICAgICAgICAgICAgd2hpbGUoIGkgPCBhVmFsdWUubGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBhVmFsdWVbaV0gPSBnZXRSZWRpcmVjdGVkUmVzb3VyY2Uoa2V5LGFWYWx1ZVtpXSwgaSk7CisgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgfQorICAgICAgICB9ZWxzZSBpZih2YWx1ZSBpbnN0YW5jZW9mIEFsaWFzKXsKKyAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgY05hbWUgPSB0aGlzLmdldENsYXNzKCkuZ2V0TmFtZSgpOworICAgICAgICAgICAgdmlzaXRlZC5jbGVhcigpOworICAgICAgICAgICAgdmlzaXRlZC5wdXQoY05hbWUra2V5LCIiKTsKKyAgICAgICAgICAgIHJldHVybiAoKEFsaWFzKXZhbHVlKS5nZXRSZXNvdXJjZShjTmFtZSxrZXksaW5kZXgsIHZpc2l0ZWQpOworICAgICAgICB9ZWxzZSBpZih2YWx1ZSBpbnN0YW5jZW9mIFJlZGlyZWN0ZWRSZXNvdXJjZSl7CisgICAgICAgICAgICByZXR1cm4gKChSZWRpcmVjdGVkUmVzb3VyY2UpdmFsdWUpLmdldFJlc291cmNlKHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSByZWFkVG9FT1MoSW5wdXRTdHJlYW0gc3RyZWFtKSB7CisgICAgICAgIC8vIEFzIG9mIDMuMCB0aGlzIG1ldGhvZCByZWFkcyBzdHJlYW1zIG9mIGxlbmd0aCAyNjQuLjI3NDAwOAorICAgICAgICAvLyBmcm9tIHRoZSBjb3JlIGRhdGEuICBXZSBwcm9ncmVzc2l2ZWx5IGRvdWJsZSB0aGUgYnVmZmVyCisgICAgICAgIC8vIHNpemUgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgYWxsb2NhdGlvbnMgcmVxdWlyZWQuCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBBcnJheUxpc3QgdmVjID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSAweDIwMDsgLy8gc21hbGxlc3QgMl5uID49IG1pbiBzdHJlYW0gbGVuCisgICAgICAgICAgICBmaW5hbCBpbnQgTUFYTEVOR1RIID0gMHg4MDAwOworICAgICAgICAgICAgaW50IHBvcyA9IC0xOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIGJ5dGVbXSBidWZmZXIgPSBuZXcgYnl0ZVtsZW5ndGhdOworICAgICAgICAgICAgICAgIHBvcyA9IDA7CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBpbnQgbiA9IHN0cmVhbS5yZWFkKGJ1ZmZlciwgcG9zLCBsZW5ndGggLSBwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAobiA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcG9zICs9IG47CisgICAgICAgICAgICAgICAgfSB3aGlsZSAocG9zIDwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBjb3VudCArPSBwb3M7CisgICAgICAgICAgICAgICAgdmVjLmFkZChidWZmZXIpOworICAgICAgICAgICAgICAgIGlmIChwb3MgPCBsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPCBNQVhMRU5HVEgpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIDw8PSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJcbmNvdW50ICIgKyBjb3VudCArICIgYnl0ZXMgZnJvbSAiICsgc3RyZWFtKTsKKworICAgICAgICAgICAgYnl0ZVtdIGRhdGEgPSBuZXcgYnl0ZVtjb3VudF07CisgICAgICAgICAgICBwb3MgPSAwOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2ZWMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBieXRlW10gYnVmID0gKGJ5dGVbXSl2ZWMuZ2V0KGkpOworICAgICAgICAgICAgICAgIGludCBsZW4gPSBNYXRoLm1pbihidWYubGVuZ3RoLCBjb3VudCAtIHBvcyk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWYsIDAsIGRhdGEsIHBvcywgbGVuKTsKKyAgICAgICAgICAgICAgICBwb3MgKz0gbGVuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gYXNzZXJ0IHBvcz09Y291bnQ7CisgICAgICAgICAgICByZXR1cm4gZGF0YTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwiIiwiIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gcmVhZFRvRU9TKElucHV0U3RyZWFtUmVhZGVyIHN0cmVhbSkgeworICAgICAgICAvLyBBcyBvZiAzLjAgdGhpcyBtZXRob2QgcmVhZHMgc3RyZWFtcyBvZiBsZW5ndGggNDE5OTAuLjQxOTk0CisgICAgICAgIC8vIGZyb20gdGhlIGNvcmUgZGF0YS4gIFRoZSBJQk0gMS40IFVURjggY29udmVydGVyIGRvZXNuJ3QKKyAgICAgICAgLy8gaGFuZGxlIGJ1ZmZlcmluZyByZWxpYWJseSAoaXQgdGhyb3dzIGFuIGV4Y2VwdGlvbikgc28gd2UKKyAgICAgICAgLy8gYXJlIGZvcmNlZCB0byByZWFkIGV2ZXJ5dGhpbmcgaW4gb25lIGNodW5rLgorICAgICAgICB0cnkgeworICAgICAgICAgICAgaW50IGxlbmd0aCA9IDB4MTAwMDA7IC8vIHNtYWxsZXN0IDJebiA+PSBtYXggc3RyZWFtIGxlbgorICAgICAgICAgICAgZmluYWwgaW50IE1BWExFTkdUSCA9IDB4NDAwMDAwMDA7CisgICAgICAgICAgICBpbnQgbjsKKyAgICAgICAgICAgIGNoYXJbXSBidWZmZXI7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbbGVuZ3RoXTsKKyAgICAgICAgICAgICAgICBuID0gc3RyZWFtLnJlYWQoYnVmZmVyLCAwLCBsZW5ndGgpOworICAgICAgICAgICAgICAgIGlmIChuID49IDAgJiYgbiA8IGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA8IE1BWExFTkdUSCkgeworICAgICAgICAgICAgICAgICAgICBzdHJlYW0ucmVzZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIDw8PSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIm1heGltdW0gaW5wdXQgc3RyZWFtIGxlbmd0aCBleGNlZWRlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJcbmNvdW50ICIgKyBuICsgIiBjaGFycyBmcm9tICIgKyBzdHJlYW0pOworCisgICAgICAgICAgICBjaGFyW10gZGF0YSA9IG5ldyBjaGFyW25dOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsIDAsIGRhdGEsIDAsIG4pOworICAgICAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCksIiIsIiIpOworICAgICAgICB9CisgICAgfQorICAgIC8qCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBDb21wcmVzc2VkU3RyaW5nIGltcGxlbWVudHMgUmVkaXJlY3RlZFJlc291cmNleworICAgICAgICBwcml2YXRlIFN0cmluZyBleHBhbmRlZD1udWxsOworICAgICAgICBwcml2YXRlIFN0cmluZyBjb21wcmVzc2VkPW51bGw7CisgICAgICAgIHB1YmxpYyBDb21wcmVzc2VkU3RyaW5nKFN0cmluZyBzdHIpeworICAgICAgICAgICBjb21wcmVzc2VkPXN0cjsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgT2JqZWN0IGdldFJlc291cmNlKE9iamVjdCBvYmopeworICAgICAgICAgICAgaWYoY29tcHJlc3NlZD09bnVsbCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihleHBhbmRlZD09bnVsbCl7CisgICAgICAgICAgICAgICAgZXhwYW5kZWQ9IG5ldyBTdHJpbmcoVXRpbGl0eS5STEVTdHJpbmdUb0NoYXJBcnJheShjb21wcmVzc2VkKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZXhwYW5kZWQ7CisgICAgICAgIH0KKyAgICB9CisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIENvbXByZXNzZWRCaW5hcnkgaW1wbGVtZW50cyBSZWRpcmVjdGVkUmVzb3VyY2V7CisgICAgICAgIHByaXZhdGUgYnl0ZVtdIGV4cGFuZGVkPW51bGw7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGNvbXByZXNzZWQ9bnVsbDsKKyAgICAgICAgcHVibGljIENvbXByZXNzZWRCaW5hcnkoU3RyaW5nIHN0cil7CisgICAgICAgICAgIGNvbXByZXNzZWQgPSBzdHI7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRSZXNvdXJjZShPYmplY3Qgb2JqKXsKKyAgICAgICAgICAgIGlmKGNvbXByZXNzZWQ9PW51bGwpeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihleHBhbmRlZD09bnVsbCl7CisgICAgICAgICAgICAgICAgZXhwYW5kZWQ9IFV0aWxpdHkuUkxFU3RyaW5nVG9CeXRlQXJyYXkoY29tcHJlc3NlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZXhwYW5kZWQ7CisgICAgICAgIH0KKworICAgIH0KKyAgICBwcml2YXRlIGludGVyZmFjZSBSZWRpcmVjdGVkUmVzb3VyY2V7CisgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0UmVzb3VyY2UoT2JqZWN0IG9iaik7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBSZXNvdXJjZUJpbmFyeSBpbXBsZW1lbnRzIFJlZGlyZWN0ZWRSZXNvdXJjZXsKKyAgICAgICAgcHJpdmF0ZSBieXRlW10gZXhwYW5kZWQ9bnVsbDsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgcmVzTmFtZT1udWxsOworICAgICAgICBwdWJsaWMgUmVzb3VyY2VCaW5hcnkoU3RyaW5nIG5hbWUpeworICAgICAgICAgICAgcmVzTmFtZT0iZGF0YS8iICsgbmFtZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgT2JqZWN0IGdldFJlc291cmNlKE9iamVjdCBvYmopIHsKKyAgICAgICAgICAgIGlmKGV4cGFuZGVkPT1udWxsKXsKKyAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBzdHJlYW0gPSBJQ1VEYXRhLmdldFN0cmVhbShyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICBpZihzdHJlYW0hPW51bGwpeworICAgICAgICAgICAgICAgICAgICAvL3Rocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIiIsb2JqLmdldENsYXNzKCkuZ2V0TmFtZSgpLHJlc05hbWUpOworICAgICAgICAgICAgICAgICAgICBleHBhbmRlZCA9IHJlYWRUb0VPUyhzdHJlYW0pOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhwYW5kZWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBSZXNvdXJjZVN0cmluZyBpbXBsZW1lbnRzIFJlZGlyZWN0ZWRSZXNvdXJjZXsKKyAgICAgICAgcHJpdmF0ZSBjaGFyW10gZXhwYW5kZWQ9bnVsbDsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgcmVzTmFtZT1udWxsOworICAgICAgICBwdWJsaWMgUmVzb3VyY2VTdHJpbmcoU3RyaW5nIG5hbWUpeworICAgICAgICAgICAgcmVzTmFtZT0iZGF0YS8iK25hbWU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRSZXNvdXJjZShPYmplY3Qgb2JqKSB7CisgICAgICAgICAgICBpZihleHBhbmRlZD09bnVsbCl7CisgICAgICAgICAgICAgICAgLy8gUmVzb3VyY2Ugc3RyaW5ncyBhcmUgYWx3YXlzIFVURi04CisgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gc3RyZWFtID0gSUNVRGF0YS5nZXRTdHJlYW0ocmVzTmFtZSk7CisgICAgICAgICAgICAgICAgaWYoc3RyZWFtIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgLy90aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCIiLG9iai5nZXRDbGFzcygpLmdldE5hbWUoKSxyZXNOYW1lKTsKKworICAgICAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbVJlYWRlciByZWFkZXIgPSAgbmV3IElucHV0U3RyZWFtUmVhZGVyKHN0cmVhbSxFTkNPRElORyk7CisgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRlZCA9IHJlYWRUb0VPUyhyZWFkZXIpOworICAgICAgICAgICAgICAgICAgICB9Y2F0Y2goVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiQ291bGQgb3BlbiBjb252ZXJ0ZXIgZm9yIGVuY29kaW5nOiAiICtFTkNPRElORyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoZXhwYW5kZWQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuICIiOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgUkVTX1BBVEhfU0VQX0NIQVIgPSAnLyc7CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBBbGlhc3sKKyAgICAgICAgcHVibGljIEFsaWFzKFN0cmluZyBwYXRoKXsKKyAgICAgICAgICAgIHBhdGhUb1Jlc291cmNlID0gcGF0aDsKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgU3RyaW5nIHBhdGhUb1Jlc291cmNlOworCisgICAgICAgIHByaXZhdGUgT2JqZWN0IGdldFJlc291cmNlKFN0cmluZyBjbGFzc05hbWUsIFN0cmluZyBwYXJlbnRLZXksIGludCBpbmRleCwgSGFzaHRhYmxlIHZpc2l0ZWQpeworICAgICAgICAgICAgU3RyaW5nIHBhY2thZ2VOYW1lPW51bGwsYnVuZGxlTmFtZT1udWxsLCBsb2NhbGU9bnVsbCwga2V5UGF0aD1udWxsOworCisgICAgICAgICAgICBpZihwYXRoVG9SZXNvdXJjZS5pbmRleE9mKFJFU19QQVRIX1NFUF9DSEFSKT09MCl7CisgICAgICAgICAgICAgICAgaW50IGkgPXBhdGhUb1Jlc291cmNlLmluZGV4T2YoUkVTX1BBVEhfU0VQX0NIQVIsMSk7CisgICAgICAgICAgICAgICAgaW50IGogPXBhdGhUb1Jlc291cmNlLmluZGV4T2YoUkVTX1BBVEhfU0VQX0NIQVIsaSsxKTsKKyAgICAgICAgICAgICAgICBidW5kbGVOYW1lPXBhdGhUb1Jlc291cmNlLnN1YnN0cmluZygxLGkpOworICAgICAgICAgICAgICAgIGxvY2FsZT1wYXRoVG9SZXNvdXJjZS5zdWJzdHJpbmcoaSsxKTsKKyAgICAgICAgICAgICAgICBpZihqIT0tMSl7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZT1wYXRoVG9SZXNvdXJjZS5zdWJzdHJpbmcoaSsxLGopOworICAgICAgICAgICAgICAgICAgICBrZXlQYXRoPXBhdGhUb1Jlc291cmNlLnN1YnN0cmluZyhqKzEscGF0aFRvUmVzb3VyY2UubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvL3RoZXJlIGlzIGEgcGF0aCBpbmNsdWRlZAorICAgICAgICAgICAgICAgIGlmKGJ1bmRsZU5hbWUuZXF1YWxzKElDVURBVEEpKXsKKyAgICAgICAgICAgICAgICAgICAgYnVuZGxlTmFtZSA9IElDVV9CVU5ETEVfTkFNRTsKKyAgICAgICAgICAgICAgICAgICAgcGFja2FnZU5hbWUgPSBJQ1VfUEFDS0FHRV9OQU1FOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgLy9ubyBwYXRoIHN0YXJ0IHdpdGggbG9jYWxlCisgICAgICAgICAgICAgICAgaW50IGkgPXBhdGhUb1Jlc291cmNlLmluZGV4T2YoUkVTX1BBVEhfU0VQX0NIQVIpOworICAgICAgICAgICAgICAgIC8vSWYgdGhpcyBpcyBhIGJ1bmRsZSB3aXRoIGxvY2FsZSBuYW1lIGZvbGxvd2luZyBpdAorICAgICAgICAgICAgICAgIC8vdGhlbiBpdCBzaG91bGQgYmUgb2YgdHlwZSA8YnVuZGxlIG5hbWU+Xzxsb2NhbGU+CisgICAgICAgICAgICAgICAgLy9pZiBub3Qgd2UgZG9ub3QgZ3VhcmFudGVlIHRoYXQgdGhpcyB3aWxsIHdvcmsKKyAgICAgICAgICAgICAgICBpbnQgaiA9IGNsYXNzTmFtZS5sYXN0SW5kZXhPZigiLiIpOworICAgICAgICAgICAgICAgIHBhY2thZ2VOYW1lPWNsYXNzTmFtZS5zdWJzdHJpbmcoMCxqKTsKKyAgICAgICAgICAgICAgICBpbnQgdW5kZXJTY29yZUluZGV4ID0gY2xhc3NOYW1lLmluZGV4T2YoIl8iKTsKKyAgICAgICAgICAgICAgICBpZih1bmRlclNjb3JlSW5kZXg+PTApeworICAgICAgICAgICAgICAgICAgICBidW5kbGVOYW1lPWNsYXNzTmFtZS5zdWJzdHJpbmcoaisxLGNsYXNzTmFtZS5pbmRleE9mKCJfIikpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBidW5kbGVOYW1lID0gY2xhc3NOYW1lLnN1YnN0cmluZyhqKzEsY2xhc3NOYW1lLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAga2V5UGF0aD1wYXRoVG9SZXNvdXJjZS5zdWJzdHJpbmcoaSsxKTsKKworICAgICAgICAgICAgICAgIGlmKGkhPS0xKXsKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxlID0gcGF0aFRvUmVzb3VyY2Uuc3Vic3RyaW5nKDAsaSk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGxvY2FsZT1rZXlQYXRoOworICAgICAgICAgICAgICAgICAgICBrZXlQYXRoPXBhcmVudEtleTsKKyAgICAgICAgICAgICAgICAgICAgaWYobG9jYWxlPT1udWxsIHx8IGxvY2FsZS5lcXVhbHMoInJvb3QiKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9cGFja2FnZU5hbWUrIi4iK2J1bmRsZU5hbWU7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXBhY2thZ2VOYW1lKyIuIitidW5kbGVOYW1lKyJfIisgbG9jYWxlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBudWxsOworICAgICAgICAgICAgLy8gZ2V0UmVzb3VyY2VCdW5kbGUgZ3VhcmFudGVlcyB0aGF0IHRoZSBDTEFTU1BBVEggd2lsbCBiZSBzZWFyY2hlZAorICAgICAgICAgICAgLy8gZm9yIGxvYWRpbmcgdGhlIHJlc291cmNlIHdpdGggbmFtZSA8YnVuZGxlTmFtZT5fPGxvY2FsZU5hbWU+LmNsYXNzCisgICAgICAgICAgICBpZihsb2NhbGU9PW51bGwgfHwgbG9jYWxlLmVxdWFscygicm9vdCIpKXsKKyAgICAgICAgICAgICAgICBidW5kbGUgPSBJQ1VMb2NhbGVEYXRhLmdldFJlc291cmNlQnVuZGxlKHBhY2thZ2VOYW1lLGJ1bmRsZU5hbWUsIiIpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgYnVuZGxlID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZShwYWNrYWdlTmFtZSxidW5kbGVOYW1lLGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmaW5kUmVzb3VyY2UoYnVuZGxlLCBjbGFzc05hbWUsIHBhcmVudEtleSwgaW5kZXgsIGtleVBhdGgsIHZpc2l0ZWQpOworICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgZmluZFJlc291cmNlKE9iamVjdFtdW10gY29udGVudHMsIFN0cmluZyBrZXkpeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb250ZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIC8vIGtleSBtdXN0IGJlIG5vbi1udWxsIFN0cmluZywgdmFsdWUgbXVzdCBiZSBub24tbnVsbAorICAgICAgICAgICAgICAgIFN0cmluZyB0ZW1wS2V5ID0gKFN0cmluZykgY29udGVudHNbaV1bMF07CisgICAgICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gY29udGVudHNbaV1bMV07CisgICAgICAgICAgICAgICAgaWYgKHRlbXBLZXkgPT0gbnVsbCB8fCB2YWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZih0ZW1wS2V5LmVxdWFscyhrZXkpKXsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIE9iamVjdCBmaW5kUmVzb3VyY2UoT2JqZWN0IG8gLCBTdHJpbmdbXSBrZXlzLCBpbnQgc3RhcnQsIGludCBpbmRleCl7CisgICAgICAgICAgICBPYmplY3Qgb2JqID0gbzsKKyAgICAgICAgICAgIGlmKCBzdGFydCA8IGtleXMubGVuZ3RoICYmIGtleXNbc3RhcnRdICE9bnVsbCl7CisgICAgICAgICAgICAgICAgaWYob2JqIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICAgICAgICAgIG9iaiA9IGZpbmRSZXNvdXJjZSgoT2JqZWN0W11bXSlvYmosa2V5c1tzdGFydF0pOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKG9iaiBpbnN0YW5jZW9mIE9iamVjdFtdICYmIGlzSW5kZXgoa2V5c1tzdGFydF0pKXsKKyAgICAgICAgICAgICAgICAgICAgb2JqID0gKChPYmplY3RbXSlvYmopW2dldEluZGV4KGtleXNbc3RhcnRdKV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKHN0YXJ0KzEgPCBrZXlzLmxlbmd0aCAmJiBrZXlzW3N0YXJ0KzFdICE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIG9iaiA9IGZpbmRSZXNvdXJjZShvYmosa2V5cyxzdGFydCsxLCBpbmRleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgLy90cnkgdG8gZmluZCB0aGUgY29ycmVzcG9uZGluZyBpbmRleCByZXNvdXJjZQorICAgICAgICAgICAgICAgIGlmKGluZGV4Pj0wKXsKKyAgICAgICAgICAgICAgICAgICAgaWYob2JqIGluc3RhbmNlb2YgT2JqZWN0W11bXSl7CisgICAgICAgICAgICAgICAgICAgICAgICBvYmogPSBmaW5kUmVzb3VyY2UoKE9iamVjdFtdW10pb2JqLEludGVnZXIudG9TdHJpbmcoaW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYob2JqIGluc3RhbmNlb2YgT2JqZWN0W10peworICAgICAgICAgICAgICAgICAgICAgICAgb2JqID0gKChPYmplY3RbXSlvYmopW2luZGV4XTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBvYmo7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgZmluZFJlc291cmNlKFJlc291cmNlQnVuZGxlIGJ1bmRsZSwgU3RyaW5nIGNsYXNzTmFtZSwgU3RyaW5nIHJlcXVlc3RlZEtleSwgaW50IGluZGV4LCBTdHJpbmcgYWxpYXNLZXksIEhhc2h0YWJsZSB2aXNpdGVkKXsKKworICAgICAgICAgICAgaWYoYWxpYXNLZXkgIT0gbnVsbCAmJiB2aXNpdGVkLmdldChjbGFzc05hbWUrYWxpYXNLZXkpIT1udWxsKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDaXJjdWxhciBBbGlhc2VzIGluIGJ1bmRsZS4iLGJ1bmRsZS5nZXRDbGFzcygpLmdldE5hbWUoKSxyZXF1ZXN0ZWRLZXkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoYWxpYXNLZXk9PW51bGwpeworICAgICAgICAgICAgICAgIC8vIGN1cnJlbnRseSB3ZSBkbyBhbiBpbXBsaWNpdCBrZXkgbG9va3VwCisgICAgICAgICAgICAgICAgLy8gcmV0dXJuICgoSUNVTGlzdFJlc291cmNlQnVuZGxlKWJ1bmRsZSkuZ2V0Q29udGVudHMoKTsKKyAgICAgICAgICAgICAgICBhbGlhc0tleSA9IHJlcXVlc3RlZEtleTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdmlzaXRlZC5wdXQoY2xhc3NOYW1lK3JlcXVlc3RlZEtleSwiIik7CisKKyAgICAgICAgICAgIFN0cmluZ1tdIGtleXMgPSBzcGxpdChhbGlhc0tleSxSRVNfUEFUSF9TRVBfQ0hBUik7CisgICAgICAgICAgICBPYmplY3QgbyA9bnVsbDsKKyAgICAgICAgICAgIGlmKGtleXMubGVuZ3RoPjApeworICAgICAgICAgICAgICAgIG8gPSBidW5kbGUuZ2V0T2JqZWN0KGtleXNbMF0pOworICAgICAgICAgICAgICAgIG8gPSBmaW5kUmVzb3VyY2Uobywga2V5cywgMSwgaW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbz1yZXNvbHZlQWxpYXNlcyhvLGNsYXNzTmFtZSxhbGlhc0tleSx2aXNpdGVkKTsKKyAgICAgICAgICAgIHJldHVybiBvOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgIE9iamVjdCByZXNvbHZlQWxpYXNlcyhPYmplY3QgbyxTdHJpbmcgY2xhc3NOYW1lLFN0cmluZyBrZXksIEhhc2h0YWJsZSB2aXNpdGVkKXsKKyAgICAgICAgICAgIGlmKG8gaW5zdGFuY2VvZiBPYmplY3RbXVtdKXsKKyAgICAgICAgICAgICAgICBvID0gcmVzb2x2ZUFsaWFzZXMoKE9iamVjdFtdW10pbyxjbGFzc05hbWUsa2V5LCB2aXNpdGVkKTsKKyAgICAgICAgICAgIH1lbHNlIGlmKG8gaW5zdGFuY2VvZiBPYmplY3RbXSl7CisgICAgICAgICAgICAgICAgIG8gPSByZXNvbHZlQWxpYXNlcygoT2JqZWN0W10pbyxjbGFzc05hbWUsa2V5LCB2aXNpdGVkKTsKKyAgICAgICAgICAgIH1lbHNlIGlmKG8gaW5zdGFuY2VvZiBBbGlhcyl7CisgICAgICAgICAgICAgICAgcmV0dXJuICgoQWxpYXMpbykuZ2V0UmVzb3VyY2UoY2xhc3NOYW1lLGtleSwgLTEsIHZpc2l0ZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG87CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgcmVzb2x2ZUFsaWFzZXMoT2JqZWN0W11bXSBvLFN0cmluZyBjbGFzc05hbWUsIFN0cmluZyBrZXksSGFzaHRhYmxlIHZpc2l0ZWQpeworICAgICAgICAgICAgaW50IGkgPTA7CisgICAgICAgICAgICB3aGlsZShpPG8ubGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBvW2ldWzFdPXJlc29sdmVBbGlhc2VzKG9baV1bMV0sY2xhc3NOYW1lLGtleSx2aXNpdGVkKTsKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbzsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIE9iamVjdCByZXNvbHZlQWxpYXNlcyhPYmplY3RbXSBvLFN0cmluZyBjbGFzc05hbWUsIFN0cmluZyBrZXksSGFzaHRhYmxlIHZpc2l0ZWQpeworICAgICAgICAgICAgaW50IGkgPTA7CisgICAgICAgICAgICB3aGlsZShpPG8ubGVuZ3RoKXsKKyAgICAgICAgICAgICAgICBvW2ldPXJlc29sdmVBbGlhc2VzKG9baV0sY2xhc3NOYW1lLGtleSx2aXNpdGVkKTsKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbzsKKyAgICAgICAgfQorCisKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gc3BsaXQoU3RyaW5nIHNvdXJjZSwgY2hhciBkZWxpbWl0ZXIpeworCisgICAgICAgIGNoYXJbXSBzcmMgPSBzb3VyY2UudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgaW50IG51bWRlbGltaXQ9MDsKKyAgICAgICAgLy8gZmlyc3QgY291bnQgdGhlIG51bWJlciBvZiBkZWxpbWl0ZXJzCisgICAgICAgIGZvcihpbnQgaT0wO2k8c291cmNlLmxlbmd0aCgpO2krKyl7CisgICAgICAgICAgICBpZihzcmNbaV09PWRlbGltaXRlcil7CisgICAgICAgICAgICAgICAgbnVtZGVsaW1pdCsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0cmluZ1tdIHZhbHVlcyA9bnVsbDsKKyAgICAgICAgdmFsdWVzID0gbmV3IFN0cmluZ1tudW1kZWxpbWl0KzJdOworICAgICAgICAvLyBub3cgc3BsaXQKKyAgICAgICAgaW50IG9sZD0wOworICAgICAgICBmb3IoaW50IGo9MDtqPHNyYy5sZW5ndGg7aisrKXsKKyAgICAgICAgICAgIGlmKHNyY1tqXT09ZGVsaW1pdGVyKXsKKyAgICAgICAgICAgICAgICB2YWx1ZXNbaW5kZXgrK10gPSBuZXcgU3RyaW5nKHNyYyxvbGQsai1vbGQpOworICAgICAgICAgICAgICAgIG9sZD1qKzEvKiBza2lwIGFmdGVyIHRoZSBkZWxpbWl0ZXIqLzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihvbGQgPHNyYy5sZW5ndGgpCisgICAgICAgICAgICB2YWx1ZXNbaW5kZXgrK109bmV3IFN0cmluZyhzcmMsb2xkLHNyYy5sZW5ndGgtb2xkKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlczsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcGVyZm9ybXMgbXVsdGlsZXZlbCBmYWxsYmFjayBmb3IgZmV0Y2hpbmcgaXRlbXMgZnJvbSB0aGUgYnVuZGxlCisgICAgICogZS5nOgorICAgICAqIElmIHJlc291cmNlIGlzIGluIHRoZSBmb3JtCisgICAgICogZGVfX1BIT05FQk9PS3sKKyAgICAgKiAgICAgIGNvbGxhdGlvbnN7CisgICAgICogICAgICAgICAgICAgIGRlZmF1bHR7ICJwaG9uZWJvb2sifQorICAgICAqICAgICAgfQorICAgICAqIH0KKyAgICAgKiBJZiB0aGUgdmFsdWUgb2YgImRlZmF1bHQiIGtleSBuZWVkcyB0byBiZSBhY2Nlc3NlZCwgdGhlbiBkbzoKKyAgICAgKiA8Y29kZT4KKyAgICAgKiAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gbmV3IFJlc291cmNlQnVuZGxlKGdldExvY2FsZUZyb21TdHJpbmcoImRlX19QSE9ORUJPT0siKSk7CisgICAgICogIE9iamVjdCByZXN1bHQgPSBudWxsOworICAgICAqICBpZihidW5kbGUgaW5zdGFuY2VvZiBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpeworICAgICAqICAgICAgcmVzdWx0ID0gKChJQ1VMaXN0UmVzb3VyY2VCdW5kbGUpIGJ1bmRsZSkuZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKCJjb2xsYXRpb25zL2RlZmF1bHQiKTsKKyAgICAgKiAgfQorICAgICAqIDwvY29kZT4KKyAgICAgKiBAcGFyYW0gcGF0aCAgVGhlIHBhdGggdG8gdGhlIHJlcXVpcmVkIHJlc291cmNlIGtleQorICAgICAqIEByZXR1cm4gT2JqZWN0IHJlcHJlc2VudGVkIGJ5IHRoZSBrZXkKKyAgICAgKiBAZXhjZXB0aW9uIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBPYmplY3QgZ2V0T2JqZWN0V2l0aEZhbGxiYWNrKFN0cmluZyBwYXRoKSAKKyAgICAgICAgICAgICAgICAgIHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb257CisgICAgICAgIFN0cmluZ1tdIGtleXMgPSBzcGxpdChwYXRoLCBSRVNfUEFUSF9TRVBfQ0hBUik7CisgICAgICAgIE9iamVjdCByZXN1bHQgPSBudWxsOyAgICAgIAorICAgICAgICBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgYWN0dWFsQnVuZGxlID0gdGhpczsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICAvLyBub3cgcmVjdXNlIHRvIHBpY2sgdXAgc3ViIGxldmVscyBvZiB0aGUgaXRlbXMKKyAgICAgICAgcmVzdWx0ID0gZmluZFJlc291cmNlV2l0aEZhbGxiYWNrKGtleXMsIGFjdHVhbEJ1bmRsZSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpZihyZXN1bHQgPT0gbnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgcmVzb3VyY2UgaW4gIix0aGlzLmdldENsYXNzKCkuZ2V0TmFtZSgpLHBhdGgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorCisgICAgcHJpdmF0ZSBPYmplY3QgZmluZFJlc291cmNlV2l0aEZhbGxiYWNrKFN0cmluZ1tdIGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSBhY3R1YWxCdW5kbGUpeworCisgICAgICAgIE9iamVjdCBvYmogPSBudWxsOyAKKyAgICAgICAgCisgICAgICAgIHdoaWxlKGFjdHVhbEJ1bmRsZSAhPSBudWxsKXsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgdG9wIGxldmVsIHJlc291cmNlIAorICAgICAgICAgICAgLy8gZ2V0T2JqZWN0IGlzIGEgbWV0aG9kIG9uIHRoZSBSZXNvdXJjZUJ1bmRsZSBjbGFzcyB0aGF0CisgICAgICAgICAgICAvLyBwZXJmb3JtcyB0aGUgbm9ybWFsIGZhbGxiYWNrCisgICAgICAgICAgICBvYmogPSBhY3R1YWxCdW5kbGUuZ2V0T2JqZWN0KGtleXNbMF0sIGFjdHVhbEJ1bmRsZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIG5vdyBmaW5kIHRoZSBidW5kbGUgZnJvbSB0aGUgYWN0dWFsIGJ1bmRsZSAKKyAgICAgICAgICAgIC8vIGlmIHRoaXMgYnVuZGxlIGRvZXMgbm90IGNvbnRhaW4gdGhlIHRvcCBsZXZlbCByZXNvdXJjZSwKKyAgICAgICAgICAgIC8vIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCBpdCBkb2VzIG5vdCBjb250YWluIHRoZSBzdWIgZWxlbWVudHMKKyAgICAgICAgICAgIG9iaiA9IGZpbmRSZXNvdXJjZVdpdGhGYWxsYmFjayhvYmosIGtleXMsIDEsIDApOworICAgICAgICAgICAgLy8gZGlkIHdlIGdldCB0aGUgY29udGVudHM/IHRoZSBicmVhaworICAgICAgICAgICAgaWYob2JqICE9IG51bGwpeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaWYgbm90IHRyeSB0aGUgcGFyZW50IGJ1bmRsZQorICAgICAgICAgICAgYWN0dWFsQnVuZGxlID0gKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSkgYWN0dWFsQnVuZGxlLnBhcmVudDsKKyAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorICAgIHByaXZhdGUgT2JqZWN0IGZpbmRSZXNvdXJjZVdpdGhGYWxsYmFjayhPYmplY3QgbyAsIFN0cmluZ1tdIGtleXMsIGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbmRleCl7CisgICAgICAgIE9iamVjdCBvYmogPSBvOworICAgICAgICAKKyAgICAgICAgCisgICAgICAgICAgICBpZiggc3RhcnQgPCBrZXlzLmxlbmd0aCAmJiBrZXlzW3N0YXJ0XSAhPW51bGwpeworICAgICAgICAgICAgICAgIGlmKG9iaiBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgICAgICAgICBvYmogPSBmaW5kUmVzb3VyY2VXaXRoRmFsbGJhY2soKE9iamVjdFtdW10pb2JqLGtleXNbc3RhcnRdKTsKKyAgICAgICAgICAgICAgICB9ZWxzZSBpZihvYmogaW5zdGFuY2VvZiBPYmplY3RbXSAmJiBpc0luZGV4KGtleXNbc3RhcnRdKSl7CisgICAgICAgICAgICAgICAgICAgIG9iaiA9ICgoT2JqZWN0W10pb2JqKVtnZXRJbmRleChrZXlzW3N0YXJ0XSldOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihzdGFydCsxIDwga2V5cy5sZW5ndGggJiYga2V5c1tzdGFydCsxXSAhPW51bGwpeworICAgICAgICAgICAgICAgICAgICBvYmogPSBmaW5kUmVzb3VyY2VXaXRoRmFsbGJhY2sob2JqLGtleXMsc3RhcnQrMSwgaW5kZXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIC8vdHJ5IHRvIGZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgaW5kZXggcmVzb3VyY2UKKyAgICAgICAgICAgICAgICBpZihpbmRleD49MCl7CisgICAgICAgICAgICAgICAgICAgIGlmKG9iaiBpbnN0YW5jZW9mIE9iamVjdFtdW10peworICAgICAgICAgICAgICAgICAgICAgICAgb2JqID0gZmluZFJlc291cmNlV2l0aEZhbGxiYWNrKChPYmplY3RbXVtdKW9iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b1N0cmluZyhpbmRleCkpOworICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZihvYmogaW5zdGFuY2VvZiBPYmplY3RbXSl7CisgICAgICAgICAgICAgICAgICAgICAgICBvYmogPSAoKE9iamVjdFtdKW9iailbaW5kZXhdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgT2JqZWN0IGZpbmRSZXNvdXJjZVdpdGhGYWxsYmFjayhPYmplY3RbXVtdIGNudHMsIFN0cmluZyBrZXkpeworICAgICAgICBPYmplY3Qgb2JqID0gbnVsbDsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNudHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIC8vIGtleSBtdXN0IGJlIG5vbi1udWxsIFN0cmluZworICAgICAgICAgICAgU3RyaW5nIHRlbXBLZXkgPSAoU3RyaW5nKSBjbnRzW2ldWzBdOworICAgICAgICAgICAgb2JqID0gY250c1tpXVsxXTsKKyAgICAgICAgICAgIGlmKHRlbXBLZXkgIT0gbnVsbCAmJiB0ZW1wS2V5LmVxdWFscyhrZXkpKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gb2JqOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgT2JqZWN0IGdldE9iamVjdChTdHJpbmcga2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUNVTGlzdFJlc291cmNlQnVuZGxlIGFjdHVhbEJ1bmRsZSkgeworICAgICAgICBPYmplY3Qgb2JqID0gaGFuZGxlR2V0T2JqZWN0KGtleSk7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCkgeworICAgICAgICAgICAgSUNVTGlzdFJlc291cmNlQnVuZGxlIHAgPSAoSUNVTGlzdFJlc291cmNlQnVuZGxlKSB0aGlzLnBhcmVudDsKKyAgICAgICAgICAgIHdoaWxlKCBwIT1udWxsKXsKKyAgICAgICAgICAgICAgICBvYmogPSBwLmhhbmRsZUdldE9iamVjdChrZXkpOworICAgICAgICAgICAgICAgIGlmKG9iaiAhPSBudWxsKXsKKyAgICAgICAgICAgICAgICAgICAgYWN0dWFsQnVuZGxlID0gcDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7IAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwID0gKElDVUxpc3RSZXNvdXJjZUJ1bmRsZSkgcC5wYXJlbnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0luZGV4KFN0cmluZyBzKXsKKyAgICAgICAgIGlmKHMubGVuZ3RoKCk9PTEpeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoMCk7CisgICAgICAgICAgICByZXR1cm4gQ2hhcmFjdGVyLmlzRGlnaXQoYyk7CisgICAgICAgICB9CisgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRJbmRleChTdHJpbmcgcyl7CisgICAgICAgICBpZihzLmxlbmd0aCgpPT0xKXsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KDApOworICAgICAgICAgICAgaWYoQ2hhcmFjdGVyLmlzRGlnaXQoYykpeworICAgICAgICAgICAgICByZXR1cm4gSW50ZWdlci52YWx1ZU9mKHMpLmludFZhbHVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICByZXR1cm4gLTE7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVEYXRhLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVEYXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDY4MDhkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUxvY2FsZURhdGEuamF2YQpAQCAtMCwwICsxLDM0OCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDItMjAwNSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlNvZnRSZWZlcmVuY2U7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogUHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQgYW5kIGFjY2VzcyB0byByZXNvdXJjZSBidW5kbGVzIGluIHRoZQorICogY29tLmlibS50ZXh0LnJlc291cmNlcyBwYWNrYWdlLiAgVW5saWtlIHRoZSBqYXZhIHZlcnNpb24sIHRoaXMgZG9lcworICogbm90IGluY2x1ZGUgcmVzb3VyY2VzIGZyb20gYW55IG90aGVyIGxvY2F0aW9uLiAgSW4gcGFydGljdWxhciwgaXQKKyAqIGRvZXMgbm90IGxvb2sgaW4gdGhlIGJvb3Qgb3Igc3lzdGVtIGNsYXNzIHBhdGguCisgKi8KK3B1YmxpYyBjbGFzcyBJQ1VMb2NhbGVEYXRhIHsKKworICAgIC8qKgorICAgICAqIFRoZSBwYWNrYWdlIGZvciBJQ1UgbG9jYWxlIGRhdGEuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElDVV9QQUNLQUdFID0gImNvbS5pYm0uaWN1LmltcGwuZGF0YSI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgYmFzZSBuYW1lIChidW5kbGUgbmFtZSkgZm9yIElDVSBsb2NhbGUgZGF0YS4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIExPQ0FMRV9FTEVNRU5UUyA9ICJMb2NhbGVFbGVtZW50cyI7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgTG9jYWxlRWxlbWVudHMgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogaW4gdGhlIGRlZmF1bHQgSUNVIHBhY2thZ2UuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIG9mIHRoZSBidW5kbGUgdG8gcmV0cmlldmUsIG9yCisgICAgICogbnVsbCB0byB1c2UgdGhlIGRlZmF1bHQgbG9jYWxlCisgICAgICogQHJldHVybiBhIFJlc291cmNlQnVuZGxlIGZvciB0aGUgTG9jYWxlRWxlbWVudHMgb2YgdGhlIGdpdmVuCisgICAgICogbG9jYWxlLCBvciBudWxsIG9uIGZhaWx1cmUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJlc291cmNlQnVuZGxlIGdldExvY2FsZUVsZW1lbnRzKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldFJlc291cmNlQnVuZGxlKElDVV9QQUNLQUdFLCBMT0NBTEVfRUxFTUVOVFMsIGxvY2FsZS5nZXRCYXNlTmFtZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgTG9jYWxlRWxlbWVudHMgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogaW4gdGhlIGRlZmF1bHQgSUNVIHBhY2thZ2UuCisgICAgICogQHBhcmFtIGxvY2FsZU5hbWUgdGhlIHN0cmluZyBuYW1lIG9mIHRoZSBsb2NhbGUgb2YgdGhlIGJ1bmRsZQorICAgICAqIHRvIHJldHJpZXZlLCBlLmcuLCAiZW5fVVMiLgorICAgICAqIEByZXR1cm4gYSBSZXNvdXJjZUJ1bmRsZSBmb3IgdGhlIExvY2FsZUVsZW1lbnRzIG9mIHRoZSBnaXZlbgorICAgICAqIGxvY2FsZSwgb3IgbnVsbCBvbiBmYWlsdXJlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBnZXRMb2NhbGVFbGVtZW50cyhTdHJpbmcgbG9jYWxlTmFtZSkgeworICAgICAgICByZXR1cm4gZ2V0UmVzb3VyY2VCdW5kbGUoSUNVX1BBQ0tBR0UsIExPQ0FMRV9FTEVNRU5UUywgbG9jYWxlTmFtZSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGFuZCBsb2NhbGUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBJQ1UgcGFja2FnZS4KKyAgICAgKiBAcGFyYW0gYnVuZGxlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSBidW5kbGUgdG8gcmV0cmlldmUsCisgICAgICogZS5nLiAiTG9jYWxlRWxlbWVudHMiLgorICAgICAqIEBwYXJhbSBsb2NhbGVOYW1lIHRoZSBzdHJpbmcgbmFtZSBvZiB0aGUgbG9jYWxlIG9mIHRoZSBidW5kbGUKKyAgICAgKiB0byByZXRyaWV2ZSwgZS5nLiAiZW5fVVMiLgorICAgICAqIEByZXR1cm4gYSBSZXNvdXJjZUJ1bmRsZSB3aXRoIHRoZSBnaXZlbiBiYXNlIG5hbWUgZm9yIHRoZSBnaXZlbgorICAgICAqIGxvY2FsZSwgb3IgbnVsbCBvbiBmYWlsdXJlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBnZXRSZXNvdXJjZUJ1bmRsZShTdHJpbmcgYnVuZGxlTmFtZSwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFJlc291cmNlQnVuZGxlKElDVV9QQUNLQUdFLCBidW5kbGVOYW1lLCBsb2NhbGVOYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGFuZCBsb2NhbGUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBJQ1UgcGFja2FnZS4KKyAgICAgKiBAcGFyYW0gYnVuZGxlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSBidW5kbGUgdG8gcmV0cmlldmUsCisgICAgICogZS5nLiAiTG9jYWxlRWxlbWVudHMiLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBvZiB0aGUgYnVuZGxlIHRvIHJldHJpZXZlLCBvcgorICAgICAqIG51bGwgdG8gdXNlIHRoZSBkZWZhdWx0IGxvY2FsZQorICAgICAqIEByZXR1cm4gYSBSZXNvdXJjZUJ1bmRsZSB3aXRoIHRoZSBnaXZlbiBiYXNlIG5hbWUgZm9yIHRoZSBnaXZlbgorICAgICAqIGxvY2FsZSwgb3IgbnVsbCBvbiBmYWlsdXJlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBnZXRSZXNvdXJjZUJ1bmRsZShTdHJpbmcgYnVuZGxlTmFtZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICBsb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ2V0UmVzb3VyY2VCdW5kbGUoSUNVX1BBQ0tBR0UsIGJ1bmRsZU5hbWUsIGxvY2FsZS5nZXRCYXNlTmFtZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gcGFja2FnZSwgYmFzZSBuYW1lLCBhbmQKKyAgICAgKiBsb2NhbGUuCisgICAgICogQHBhcmFtIHBhY2thZ2VOYW1lIGEgcGFja2FnZSBuYW1lLCBlLmcuLCAiY29tLmlibS5pY3UuaW1wbC5kYXRhIi4KKyAgICAgKiBAcGFyYW0gYnVuZGxlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSBidW5kbGUgdG8gcmV0cmlldmUsCisgICAgICogZS5nLiAiTG9jYWxlRWxlbWVudHMiLgorICAgICAqIEBwYXJhbSBsb2NhbGVOYW1lIHRoZSBzdHJpbmcgbmFtZSBvZiB0aGUgbG9jYWxlIG9mIHRoZSBidW5kbGUKKyAgICAgKiB0byByZXRyaWV2ZSwgZS5nLiAiZW5fVVMiLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IFJlc291cmNlQnVuZGxlIHdpdGggdGhlIGdpdmVuIGJhc2UgbmFtZSBmb3IKKyAgICAgKiB0aGUgZ2l2ZW4gbG9jYWxlIGZvdW5kIGluIGVhY2ggb2YgdGhlIHBhY2thZ2VzLCBvciBudWxsIG9uCisgICAgICogZmFpbHVyZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgZ2V0UmVzb3VyY2VCdW5kbGUoU3RyaW5nIHBhY2thZ2VOYW1lLCBTdHJpbmcgYnVuZGxlTmFtZSwgU3RyaW5nIGxvY2FsZU5hbWUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gcGFja2FnZU5hbWUgKyAiLiIgKyBidW5kbGVOYW1lOworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImNhbGxpbmcgaW5zdGFudGlhdGU6ICIgKyBwYXRoICsgIl8iICsgbG9jYWxlTmFtZSk7CisgICAgICAgICAgICByZXR1cm4gaW5zdGFudGlhdGUocGF0aCwgbG9jYWxlTmFtZSk7CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbihidW5kbGVOYW1lICsgIl8iICsgbG9jYWxlTmFtZSArICIgbm90IGZvdW5kIGluICIgKyBwYWNrYWdlTmFtZSk7CisgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlIGluCisgICAgICogb25lIG9mIHRoZSBnaXZlbiBwYWNrYWdlcywgdHJ5aW5nIGVhY2ggcGFja2FnZSBpbiBvcmRlci4KKyAgICAgKiBAcGFyYW0gcGFja2FnZXMgYSBsaXN0IG9mIG9uZSBvciBtb3JlIHBhY2thZ2UgbmFtZXMKKyAgICAgKiBAcGFyYW0gYnVuZGxlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSBidW5kbGUgdG8gcmV0cmlldmUsCisgICAgICogZS5nLiAiTG9jYWxlRWxlbWVudHMiLgorICAgICAqIEBwYXJhbSBsb2NhbGVOYW1lIHRoZSBzdHJpbmcgbmFtZSBvZiB0aGUgbG9jYWxlIG9mIHRoZSBidW5kbGUKKyAgICAgKiB0byByZXRyaWV2ZSwgZS5nLiAiZW5fVVMiLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IFJlc291cmNlQnVuZGxlIHdpdGggdGhlIGdpdmVuIGJhc2UgbmFtZSBmb3IKKyAgICAgKiB0aGUgZ2l2ZW4gbG9jYWxlIGZvdW5kIGluIGVhY2ggb2YgdGhlIHBhY2thZ2VzLCBvciBudWxsIG9uCisgICAgICogZmFpbHVyZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgZ2V0UmVzb3VyY2VCdW5kbGUoU3RyaW5nW10gcGFja2FnZXMsIFN0cmluZyBidW5kbGVOYW1lLCBTdHJpbmcgbG9jYWxlTmFtZSkgeworICAgICAgICBSZXNvdXJjZUJ1bmRsZSByPW51bGw7CisgICAgICAgIGZvciAoaW50IGk9MDsgcj09bnVsbCAmJiBpPHBhY2thZ2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICByID0gZ2V0UmVzb3VyY2VCdW5kbGUocGFja2FnZXNbaV0sIGJ1bmRsZU5hbWUsIGxvY2FsZU5hbWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIHJlc291cmNlIGJ1bmRsZSBmcm9tIHRoZSByZXNvdXJjZSBidW5kbGUgcGF0aC4gIFVubGlrZSBnZXRSZXNvdXJjZUJ1bmRsZSwgdGhpcworICAgICAqIHJldHVybnMgYW4gJ3VucGFyZW50ZWQnIGJ1bmRsZSB0aGF0IGV4YWN0bHkgbWF0Y2hlcyB0aGUgYnVuZGxlIG5hbWUgYW5kIGxvY2FsZSBuYW1lLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgbG9hZFJlc291cmNlQnVuZGxlKFN0cmluZyBidW5kbGVOYW1lLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgIGxvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsb2FkUmVzb3VyY2VCdW5kbGUoYnVuZGxlTmFtZSwgbG9jYWxlLmdldEJhc2VOYW1lKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIHJlc291cmNlIGJ1bmRsZSBmcm9tIHRoZSByZXNvdXJjZSBidW5kbGUgcGF0aC4gIFVubGlrZSBnZXRSZXNvdXJjZUJ1bmRsZSwgdGhpcworICAgICAqIHJldHVybnMgYW4gJ3VucGFyZW50ZWQnIGJ1bmRsZSB0aGF0IGV4YWN0bHkgbWF0Y2hlcyB0aGUgYnVuZGxlIG5hbWUgYW5kIGxvY2FsZSBuYW1lLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgbG9hZFJlc291cmNlQnVuZGxlKFN0cmluZyBidW5kbGVOYW1lLCBTdHJpbmcgbG9jYWxlTmFtZSkgeworICAgICAgICBpZiAobG9jYWxlTmFtZSAhPSBudWxsICYmIGxvY2FsZU5hbWUubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBidW5kbGVOYW1lID0gYnVuZGxlTmFtZSArICJfIiArIGxvY2FsZU5hbWU7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIG5hbWUgPSBJQ1VfUEFDS0FHRSArICIuIiArIGJ1bmRsZU5hbWU7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAobmFtZS5pbmRleE9mKCJfemhfIikgPT0gLTEpIHsgLy8gRExGIHRlbXBvcmFyeSBoYWNrCisgICAgICAgICAgICAgICAgQ2xhc3MgcmJjbGFzcyA9IENsYXNzLmZvck5hbWUobmFtZSk7CisgICAgICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgcmIgPSAoUmVzb3VyY2VCdW5kbGUpcmJjbGFzcy5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgICAgIHJldHVybiByYjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obmFtZSArICIgbm90IGZvdW5kIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpZ25vcmUsIGtlZXAgbG9va2luZworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGJ1bmRsZU5hbWUgKyAiIG5vdCBmb3VuZC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8vID09PT09PT09PT0gcHJpdmF0ZXMgPT09PT09PT09PQorCisgICAgLy8gRmxhZyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIGRlYnVnZ2luZyBjb2RlCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IElDVURlYnVnLmVuYWJsZWQoImxvY2FsZWRhdGEiKTsKKworICAgIC8vIENhY2hlIGZvciBnZXRBdmFpbGFibGVMb2NhbGVzCisgICAgcHJpdmF0ZSBzdGF0aWMgU29mdFJlZmVyZW5jZSBHRVRfQVZBSUxBQkxFX0NBQ0hFOworCisgICAgLy8gQ2FjaGUgZm9yIFJlc291cmNlQnVuZGxlIGluc3RhbnRpYXRpb24KKyAgICBwcml2YXRlIHN0YXRpYyBTb2Z0UmVmZXJlbmNlIEJVTkRMRV9DQUNIRTsKKworICAgIHByaXZhdGUgc3RhdGljIFJlc291cmNlQnVuZGxlIGxvYWRGcm9tQ2FjaGUoU3RyaW5nIGtleSkgeworICAgICAgICBpZiAoQlVORExFX0NBQ0hFICE9IG51bGwpIHsKKyAgICAgICAgICAgIE1hcCBtID0gKE1hcClCVU5ETEVfQ0FDSEUuZ2V0KCk7CisgICAgICAgICAgICBpZiAobSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChSZXNvdXJjZUJ1bmRsZSltLmdldChrZXkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYWRkVG9DYWNoZShTdHJpbmcga2V5LCBSZXNvdXJjZUJ1bmRsZSBiKSB7CisgICAgICAgIE1hcCBtID0gbnVsbDsKKyAgICAgICAgaWYgKEJVTkRMRV9DQUNIRSAhPSBudWxsKSB7CisgICAgICAgICAgICBtID0gKE1hcClCVU5ETEVfQ0FDSEUuZ2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG0gPT0gbnVsbCkgeworICAgICAgICAgICAgbSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICBCVU5ETEVfQ0FDSEUgPSBuZXcgU29mdFJlZmVyZW5jZShtKTsKKyAgICAgICAgfQorICAgICAgICBtLnB1dChrZXksIGIpOworICAgIH0KKworICAgIC8vIHJlY3Vyc2l2ZWx5IGJ1aWxkIGJ1bmRsZQorICAgIHByaXZhdGUgc3RhdGljIFJlc291cmNlQnVuZGxlIGluc3RhbnRpYXRlKFN0cmluZyBuYW1lKSB7CisgICAgICAgIFJlc291cmNlQnVuZGxlIGIgPSBsb2FkRnJvbUNhY2hlKG5hbWUpOworICAgICAgICBpZiAoYiA9PSBudWxsKSB7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSBwYXJlbnQgPSBudWxsOworICAgICAgICAgICAgaW50IGkgPSBuYW1lLmxhc3RJbmRleE9mKCdfJyk7CisKKyAgICAgICAgICAgIC8vIFRPRE86IGNvbnZlcnQgdGhpcyB0byB1c2UgVUxvY2FsZQorICAgICAgICAgICAgZmluYWwgTG9jYWxlIHJvb3RMb2NhbGUgPSBuZXcgTG9jYWxlKCIiLCAiIiwgIiIpOworIAorICAgICAgICAgICAgaWYgKGkgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBwYXJlbnQgPSBpbnN0YW50aWF0ZShuYW1lLnN1YnN0cmluZygwLCBpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIExvY2FsZSBsb2NhbGUgPSByb290TG9jYWxlOworICAgICAgICAgICAgICAgIGkgPSBuYW1lLmluZGV4T2YoJ18nKTsKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBsb2NhbGUgPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKG5hbWUuc3Vic3RyaW5nKGkrMSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGkgPSBuYW1lLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKworCQlDbGFzc0xvYWRlciBjbCA9IElDVUxvY2FsZURhdGEuY2xhc3MuZ2V0Q2xhc3NMb2FkZXIoKTsKKwkJaWYgKGNsID09IG51bGwpIHsKKwkJICAgIC8vIHdlJ3JlIG9uIHRoZSBib290c3RyYXAKKwkJICAgIGNsID0gQ2xhc3NMb2FkZXIuZ2V0U3lzdGVtQ2xhc3NMb2FkZXIoKTsKKwkJfQorICAgICAgICAgICAgICAgIENsYXNzIGNscyA9IGNsLmxvYWRDbGFzcyhuYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAoSUNVTGlzdFJlc291cmNlQnVuZGxlLmNsYXNzLmlzQXNzaWduYWJsZUZyb20oY2xzKSkgeworICAgICAgICAgICAgICAgICAgICBJQ1VMaXN0UmVzb3VyY2VCdW5kbGUgYnggPSAoSUNVTGlzdFJlc291cmNlQnVuZGxlKWNscy5uZXdJbnN0YW5jZSgpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnguc2V0UGFyZW50WChwYXJlbnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ4LmljdUxvY2FsZSA9IGxvY2FsZTsKKyAgICAgICAgICAgICAgICAgICAgYiA9IGJ4OworICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImljdWxpc3RyZXNvdXJjZWJ1bmRsZTogIiArIG5hbWUgKyAiIGlzICIgKyBiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBiID0gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKG5hbWUuc3Vic3RyaW5nKDAsIGkpLCBsb2NhbGUpOworICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oInJlc291cmNlYnVuZGxlOiAiICsgbmFtZSArICIgaXMgIiArIGIpOworICAgICAgICAgICAgICAgIH0gICAgCisgICAgICAgICAgICAgICAgYWRkVG9DYWNoZShuYW1lLCBiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKworICAgICAgICAgICAgICAgIGludCBqID0gbmFtZS5pbmRleE9mKCdfJyk7CisgICAgICAgICAgICAgICAgaW50IGsgPSBuYW1lLmxhc3RJbmRleE9mKCdfJyk7CisgICAgICAgICAgICAgICAgLy8gaWYgYSBib2d1cyBsb2NhbGUgaXMgcGFzc2VkIHRoZW4gdGhlIHBhcmVudCBzaG91bGQgYmUKKyAgICAgICAgICAgICAgICAvLyB0aGUgZGVmYXVsdCBsb2NhbGUgbm90IHRoZSByb290IGxvY2FsZSEKKyAgICAgICAgICAgICAgICBpZihrPT1qICYmIGohPS0xKXsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsb2NOYW1lID0gbmFtZS5zdWJzdHJpbmcoaisxLG5hbWUubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVmYXVsdE5hbWUgPSBVTG9jYWxlLmdldERlZmF1bHQoKS50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYoIWxvY05hbWUuZXF1YWxzKHJvb3RMb2NhbGUudG9TdHJpbmcoKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE5hbWUuaW5kZXhPZihsb2NOYW1lKT09LTEpeworICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGJ1bmRsZSA9ICBuYW1lLnN1YnN0cmluZygwLGopOworICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0gaW5zdGFudGlhdGUoYnVuZGxlKyJfIitkZWZhdWx0TmFtZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYiA9IHBhcmVudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZmFpbHVyZSIpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihiPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2FkIGRhdGEgIituYW1lLCIiLCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdGlsbCBuZWVkIHBlcm1pc3Npb25zIHRvIHVzZSBvdXIgb3duIGNsYXNzIGxvYWRlciwgaXMgdGhlcmUgbm8gd2F5CisgICAgICogdG8gbG9hZCBjbGFzcyByZXNvdXJjZXMgZnJvbSBuZXcgbG9jYXRpb25zIHRoYXQgYXJlbid0IGFscmVhZHkgb24gdGhlCisgICAgICogY2xhc3MgcGF0aD8KKyAgICAgKi8KKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgaW5zdGFudGlhdGUoU3RyaW5nIG5hbWUsIFN0cmluZyBsb2NhbGVOYW1lKSB7CisgICAgICAgIGlmIChsb2NhbGVOYW1lLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIG5hbWUgPSBuYW1lICsgIl8iICsgbG9jYWxlTmFtZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW5zdGFudGlhdGUobmFtZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU2V0IGNyZWF0ZUxvY2FsZU5hbWVTZXQoU3RyaW5nIGJ1bmRsZU5hbWUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIGluZGV4ID0gZ2V0UmVzb3VyY2VCdW5kbGUoYnVuZGxlTmFtZSwgImluZGV4Iik7CisgICAgICAgICAgICBPYmplY3RbXVtdIGxvY2FsZVN0cmluZ3MgPSAoT2JqZWN0W11bXSkgaW5kZXguZ2V0T2JqZWN0KCJJbnN0YWxsZWRMb2NhbGVzIik7CisgICAgICAgICAgICBTdHJpbmdbXSBsb2NhbGVOYW1lcyA9IG5ldyBTdHJpbmdbbG9jYWxlU3RyaW5ncy5sZW5ndGhdOworCisgICAgICAgICAgICAvLyBiYXJmIGdhZyBjaG9rZSBzcGl0IGhhY2suLi4KKyAgICAgICAgICAgIC8vIHNpbmNlIGphdmEncyBMb2NhbGUgJ2ZpeGVzJyB0aGUgbG9jYWxlIHN0cmluZyBmb3Igc29tZSBsb2NhbGVzLAorICAgICAgICAgICAgLy8gd2UgaGF2ZSB0byBmaXggb3VyIG5hbWVzIHRvIG1hdGNoLCBvdGhlcndpc2UgdGhlIExvY2FsZVtdIGxpc3QKKyAgICAgICAgICAgIC8vIHdvbid0IG1hdGNoIHRoZSBsb2NhbGUgbmFtZSBzZXQuICBXaGF0IHdlcmUgdGhleSB0aGlua2luZz8hPworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb2NhbGVOYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGxvY2FsZU5hbWVzW2ldID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZSgoU3RyaW5nKWxvY2FsZVN0cmluZ3NbaV1bMF0pLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEhhc2hTZXQgc2V0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgICAgIHNldC5hZGRBbGwoQXJyYXlzLmFzTGlzdChsb2NhbGVOYW1lcykpOworICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChzZXQpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImNvdWxkbid0IGZpbmQgaW5kZXggZm9yIGJ1bmRsZU5hbWU6ICIgKyBidW5kbGVOYW1lKTsKKyAgICAgICAgICAgIFRocmVhZC5kdW1wU3RhY2soKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gQ29sbGVjdGlvbnMuRU1QVFlfU0VUOworICAgIH0KKworICAgIC8qCisgICAgcHJpdmF0ZSBzdGF0aWMgTG9jYWxlW10gY3JlYXRlTG9jYWxlTGlzdChTdHJpbmcgYnVuZGxlTmFtZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgaW5kZXggPSBnZXRSZXNvdXJjZUJ1bmRsZShidW5kbGVOYW1lLCAiaW5kZXgiKTsKKyAgICAgICAgICAgIE9iamVjdFtdW10gbG9jYWxlU3RyaW5ncyA9IChPYmplY3RbXVtdKSBpbmRleC5nZXRPYmplY3QoIkluc3RhbGxlZExvY2FsZXMiKTsKKyAgICAgICAgICAgIExvY2FsZVtdIGxvY2FsZXMgPSBuZXcgTG9jYWxlW2xvY2FsZVN0cmluZ3MubGVuZ3RoXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlU3RyaW5ncy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGxvY2FsZXNbaV0gPSBMb2NhbGVVdGlsaXR5LmdldExvY2FsZUZyb21OYW1lKChTdHJpbmcpbG9jYWxlU3RyaW5nc1tpXVswXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlczsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJjb3VsZG4ndCBmaW5kIGluZGV4IGZvciBidW5kbGVOYW1lOiAiICsgYnVuZGxlTmFtZSk7CisgICAgICAgICAgICBUaHJlYWQuZHVtcFN0YWNrKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGVbMF07CisgICAgfQorICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVTZXJ2aWNlLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VMb2NhbGVTZXJ2aWNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZhZDAwNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVUxvY2FsZVNlcnZpY2UuamF2YQpAQCAtMCwwICsxLDU5NiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitwdWJsaWMgY2xhc3MgSUNVTG9jYWxlU2VydmljZSBleHRlbmRzIElDVVNlcnZpY2UgeworICAgIHByaXZhdGUgVUxvY2FsZSBmYWxsYmFja0xvY2FsZTsKKyAgICBwcml2YXRlIFN0cmluZyBmYWxsYmFja0xvY2FsZU5hbWU7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gSUNVTG9jYWxlU2VydmljZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVTG9jYWxlU2VydmljZSgpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gSUNVTG9jYWxlU2VydmljZSB3aXRoIGEgbmFtZSAodXNlZnVsIGZvciBkZWJ1Z2dpbmcpLgorICAgICAqLworICAgIHB1YmxpYyBJQ1VMb2NhbGVTZXJ2aWNlKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHN1cGVyKG5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIGZvciBjYWxsZXJzIHVzaW5nIGxvY2FsZXMuICBUaGlzIGNhbGxzCisgICAgICogZ2V0KFVMb2NhbGUsIGludCwgVUxvY2FsZVtdKSB3aXRoIEtJTkRfQU5ZIGZvciBraW5kIGFuZCBudWxsIGZvcgorICAgICAqIGFjdHVhbFJldHVybi4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldChVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0KGxvY2FsZSwgTG9jYWxlS2V5LktJTkRfQU5ZLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBmb3IgY2FsbGVycyB1c2luZyBsb2NhbGVzLiAgVGhpcyBjYWxscworICAgICAqIGdldChVTG9jYWxlLCBpbnQsIFVMb2NhbGVbXSkgd2l0aCBhIG51bGwgYWN0dWFsUmV0dXJuLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KFVMb2NhbGUgbG9jYWxlLCBpbnQga2luZCkgeworICAgICAgICByZXR1cm4gZ2V0KGxvY2FsZSwga2luZCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgZm9yIGNhbGxlcnMgdXNpbmcgbG9jYWxlcy4gIFRoaXMgY2FsbHMKKyAgICAgKiBnZXQoVUxvY2FsZSwgaW50LCBVTG9jYWxlW10pIHdpdGggS0lORF9BTlkgZm9yIGtpbmQuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoVUxvY2FsZSBsb2NhbGUsIFVMb2NhbGVbXSBhY3R1YWxSZXR1cm4pIHsKKyAgICAgICAgcmV0dXJuIGdldChsb2NhbGUsIExvY2FsZUtleS5LSU5EX0FOWSwgYWN0dWFsUmV0dXJuKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBmb3IgY2FsbGVycyB1c2luZyBsb2NhbGVzLiAgVGhpcyB1c2VzCisgICAgICogY3JlYXRlS2V5KFVMb2NhbGUudG9TdHJpbmcoKSwga2luZCkgdG8gY3JlYXRlIGEga2V5LCBjYWxscyBnZXRLZXksIGFuZCB0aGVuCisgICAgICogaWYgYWN0dWFsUmV0dXJuIGlzIG5vdCBudWxsLCByZXR1cm5zIHRoZSBhY3R1YWxSZXN1bHQgZnJvbQorICAgICAqIGdldEtleSAoc3RyaXBwaW5nIGFueSBwcmVmaXgpIGludG8gYSBVTG9jYWxlLiAgCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoVUxvY2FsZSBsb2NhbGUsIGludCBraW5kLCBVTG9jYWxlW10gYWN0dWFsUmV0dXJuKSB7CisgICAgICAgIEtleSBrZXkgPSBjcmVhdGVLZXkobG9jYWxlLnRvU3RyaW5nKCksIGtpbmQpOworICAgICAgICBpZiAoYWN0dWFsUmV0dXJuID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRLZXkoa2V5KTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZ1tdIHRlbXAgPSBuZXcgU3RyaW5nWzFdOworICAgICAgICBPYmplY3QgcmVzdWx0ID0gZ2V0S2V5KGtleSwgdGVtcCk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgeworICAgICAgICAgICAgaW50IG4gPSB0ZW1wWzBdLmluZGV4T2YoIi8iKTsKKyAgICAgICAgICAgIGlmIChuID49IDApIHsKKyAgICAgICAgICAgICAgICB0ZW1wWzBdID0gdGVtcFswXS5zdWJzdHJpbmcobisxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFjdHVhbFJldHVyblswXSA9IG5ldyBVTG9jYWxlKHRlbXBbMF0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgZm9yIGNhbGxlcnMgdXNpbmcgbG9jYWxlcy4gIFRoaXMgY2FsbHMKKyAgICAgKiByZWdpc3Rlck9iamVjdChPYmplY3QsIFVMb2NhbGUsIGludCBraW5kLCBib29sZWFuIHZpc2libGUpCisgICAgICogcGFzc2luZyBLSU5EX0FOWSBmb3IgdGhlIGtpbmQsIGFuZCB0cnVlIGZvciB0aGUgdmlzaWJpbGl0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRmFjdG9yeSByZWdpc3Rlck9iamVjdChPYmplY3Qgb2JqLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gcmVnaXN0ZXJPYmplY3Qob2JqLCBsb2NhbGUsIExvY2FsZUtleS5LSU5EX0FOWSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgZm9yIGNhbGxlcnMgdXNpbmcgbG9jYWxlcy4gIFRoaXMgY2FsbHMKKyAgICAgKiByZWdpc3Rlck9iamVjdChPYmplY3QsIFVMb2NhbGUsIGludCBraW5kLCBib29sZWFuIHZpc2libGUpCisgICAgICogcGFzc2luZyBLSU5EX0FOWSBmb3IgdGhlIGtpbmQuCisgICAgICovCisgICAgcHVibGljIEZhY3RvcnkgcmVnaXN0ZXJPYmplY3QoT2JqZWN0IG9iaiwgVUxvY2FsZSBsb2NhbGUsIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICByZXR1cm4gcmVnaXN0ZXJPYmplY3Qob2JqLCBsb2NhbGUsIExvY2FsZUtleS5LSU5EX0FOWSwgdmlzaWJsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIGNhbGxlcnMgdXNpbmcgbG9jYWxlcy4gIFRoaXMgY2FsbHMKKyAgICAgKiByZWdpc3Rlck9iamVjdChPYmplY3QsIFVMb2NhbGUsIGludCBraW5kLCBib29sZWFuIHZpc2libGUpCisgICAgICogcGFzc2luZyB0cnVlIGZvciB0aGUgdmlzaWJpbGl0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRmFjdG9yeSByZWdpc3Rlck9iamVjdChPYmplY3Qgb2JqLCBVTG9jYWxlIGxvY2FsZSwgaW50IGtpbmQpIHsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdGVyT2JqZWN0KG9iaiwgbG9jYWxlLCBraW5kLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBmdW5jdGlvbiBmb3IgY2FsbGVycyB1c2luZyBsb2NhbGVzLiAgVGhpcyAgaW5zdGFudGlhdGVzCisgICAgICogYSBTaW1wbGVMb2NhbGVLZXlGYWN0b3J5LCBhbmQgcmVnaXN0ZXJzIHRoZSBmYWN0b3J5LgorICAgICAqLworICAgIHB1YmxpYyBGYWN0b3J5IHJlZ2lzdGVyT2JqZWN0KE9iamVjdCBvYmosIFVMb2NhbGUgbG9jYWxlLCBpbnQga2luZCwgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIEZhY3RvcnkgZmFjdG9yeSA9IG5ldyBTaW1wbGVMb2NhbGVLZXlGYWN0b3J5KG9iaiwgbG9jYWxlLCBraW5kLCB2aXNpYmxlKTsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdGVyRmFjdG9yeShmYWN0b3J5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGNhbGxlcnMgdXNpbmcgbG9jYWxlcy4gIFRoaXMgcmV0dXJucyB0aGUgc3RhbmRhcmQKKyAgICAgKiBMb2NhbGUgbGlzdCwgYnVpbHQgZnJvbSB0aGUgU2V0IG9mIHZpc2libGUgaWRzLgorICAgICAqLworICAgIHB1YmxpYyBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICAvLyBUT0RPIG1ha2UgdGhpcyB3cmFwIGdldEF2YWlsYWJsZVVMb2NhbGVzIGxhdGVyCisgICAgICAgIFNldCB2aXNJRHMgPSBnZXRWaXNpYmxlSURzKCk7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSB2aXNJRHMuaXRlcmF0b3IoKTsKKyAgICAgICAgTG9jYWxlW10gbG9jYWxlcyA9IG5ldyBMb2NhbGVbdmlzSURzLnNpemUoKV07CisgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBMb2NhbGUgbG9jID0gTG9jYWxlVXRpbGl0eS5nZXRMb2NhbGVGcm9tTmFtZSgoU3RyaW5nKWl0ZXIubmV4dCgpKTsKKyAgICAgICAgICAgIGxvY2FsZXNbbisrXSA9IGxvYzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbG9jYWxlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGNhbGxlcnMgdXNpbmcgbG9jYWxlcy4gIFRoaXMgcmV0dXJucyB0aGUgc3RhbmRhcmQKKyAgICAgKiBVTG9jYWxlIGxpc3QsIGJ1aWx0IGZyb20gdGhlIFNldCBvZiB2aXNpYmxlIGlkcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBTZXQgdmlzSURzID0gZ2V0VmlzaWJsZUlEcygpOworICAgICAgICBJdGVyYXRvciBpdGVyID0gdmlzSURzLml0ZXJhdG9yKCk7CisgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gbmV3IFVMb2NhbGVbdmlzSURzLnNpemUoKV07CisgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBsb2NhbGVzW24rK10gPSBuZXcgVUxvY2FsZSgoU3RyaW5nKWl0ZXIubmV4dCgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbG9jYWxlczsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEEgc3ViY2xhc3Mgb2YgS2V5IHRoYXQgaW1wbGVtZW50cyBhIGxvY2FsZSBmYWxsYmFjayBtZWNoYW5pc20uCisgICAgICogVGhlIGZpcnN0IGxvY2FsZSB0byBzZWFyY2ggZm9yIGlzIHRoZSBsb2NhbGUgcHJvdmlkZWQgYnkgdGhlCisgICAgICogY2xpZW50LCBhbmQgdGhlIGZhbGxiYWNrIGxvY2FsZSB0byBzZWFyY2ggZm9yIGlzIHRoZSBjdXJyZW50CisgICAgICogZGVmYXVsdCBsb2NhbGUuICBJZiBhIHByZWZpeCBpcyBwcmVzZW50LCB0aGUgY3VycmVudERlc2NyaXB0b3IKKyAgICAgKiBpbmNsdWRlcyBpdCBiZWZvcmUgdGhlIGxvY2FsZSBwcm9wZXIsIHNlcGFyYXRlZCBieSAiLyIuICBUaGlzCisgICAgICogaXMgdGhlIGRlZmF1bHQga2V5IGluc3RhbnRpYXRlZCBieSBJQ1VMb2NhbGVTZXJ2aWNlLjwvcD4KKyAgICAgKgorICAgICAqIDxwPkNhbm9uaWNhbGl6YXRpb24gYWRqdXN0cyB0aGUgbG9jYWxlIHN0cmluZyBzbyB0aGF0IHRoZQorICAgICAqIHNlY3Rpb24gYmVmb3JlIHRoZSBmaXJzdCB1bmRlcnN0b3JlIGlzIGluIGxvd2VyIGNhc2UsIGFuZCB0aGUgcmVzdAorICAgICAqIGlzIGluIHVwcGVyIGNhc2UsIHdpdGggbm8gdHJhaWxpbmcgdW5kZXJzY29yZXMuPC9wPiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIExvY2FsZUtleSBleHRlbmRzIElDVVNlcnZpY2UuS2V5IHsKKyAgICAgICAgcHJpdmF0ZSBpbnQga2luZDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgdmFyc3RhcnQ7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHByaW1hcnlJRDsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZmFsbGJhY2tJRDsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgY3VycmVudElEOworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtJTkRfQU5ZID0gLTE7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENyZWF0ZSBhIExvY2FsZUtleSB3aXRoIGNhbm9uaWNhbCBwcmltYXJ5IGFuZCBmYWxsYmFjayBJRHMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIExvY2FsZUtleSBjcmVhdGVXaXRoQ2Fub25pY2FsRmFsbGJhY2soU3RyaW5nIHByaW1hcnlJRCwgU3RyaW5nIGNhbm9uaWNhbEZhbGxiYWNrSUQpIHsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVXaXRoQ2Fub25pY2FsRmFsbGJhY2socHJpbWFyeUlELCBjYW5vbmljYWxGYWxsYmFja0lELCBLSU5EX0FOWSk7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQ3JlYXRlIGEgTG9jYWxlS2V5IHdpdGggY2Fub25pY2FsIHByaW1hcnkgYW5kIGZhbGxiYWNrIElEcy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlS2V5IGNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjayhTdHJpbmcgcHJpbWFyeUlELCBTdHJpbmcgY2Fub25pY2FsRmFsbGJhY2tJRCwgaW50IGtpbmQpIHsKKyAgICAgICAgICAgIGlmIChwcmltYXJ5SUQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHByaW1hcnlJRC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgcHJpbWFyeUlEID0gInJvb3QiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIGNhbm9uaWNhbFByaW1hcnlJRCA9IFVMb2NhbGUuZ2V0TmFtZShwcmltYXJ5SUQpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGVLZXkocHJpbWFyeUlELCBjYW5vbmljYWxQcmltYXJ5SUQsIGNhbm9uaWNhbEZhbGxiYWNrSUQsIGtpbmQpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFByaW1hcnlJRCBpcyB0aGUgdXNlcidzIHJlcXVlc3RlZCBsb2NhbGUgc3RyaW5nLAorICAgICAgICAgKiBjYW5vbmljYWxQcmltYXJ5SUQgaXMgdGhpcyBzdHJpbmcgaW4gY2Fub25pY2FsIGZvcm0sCisgICAgICAgICAqIGZhbGxiYWNrSUQgaXMgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUncyBzdHJpbmcgaW4KKyAgICAgICAgICogY2Fub25pY2FsIGZvcm0uCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgTG9jYWxlS2V5KFN0cmluZyBwcmltYXJ5SUQsIFN0cmluZyBjYW5vbmljYWxQcmltYXJ5SUQsIFN0cmluZyBjYW5vbmljYWxGYWxsYmFja0lELCBpbnQga2luZCkgeworICAgICAgICAgICAgc3VwZXIocHJpbWFyeUlEKTsKKworICAgICAgICAgICAgdGhpcy5raW5kID0ga2luZDsKKyAgICAgICAgICAgIGlmIChjYW5vbmljYWxQcmltYXJ5SUQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRoaXMucHJpbWFyeUlEID0gIiI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRoaXMucHJpbWFyeUlEID0gY2Fub25pY2FsUHJpbWFyeUlEOworICAgICAgICAgICAgICAgIHRoaXMudmFyc3RhcnQgPSB0aGlzLnByaW1hcnlJRC5pbmRleE9mKCdAJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGhpcy5wcmltYXJ5SUQgPT0gIiIpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrSUQgPSBudWxsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoY2Fub25pY2FsRmFsbGJhY2tJRCA9PSBudWxsIHx8IHRoaXMucHJpbWFyeUlELmVxdWFscyhjYW5vbmljYWxGYWxsYmFja0lEKSkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrSUQgPSAiIjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrSUQgPSBjYW5vbmljYWxGYWxsYmFja0lEOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdGhpcy5jdXJyZW50SUQgPSB2YXJzdGFydCA9PSAtMSA/IHRoaXMucHJpbWFyeUlEIDogdGhpcy5wcmltYXJ5SUQuc3Vic3RyaW5nKDAsIHZhcnN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIHByZWZpeCBhc3NvY2lhdGVkIHdpdGggdGhlIGtpbmQsIG9yIG51bGwgaWYgdGhlIGtpbmQgaXMgS0lORF9BTlkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHByZWZpeCgpIHsKKyAgICAgICAgICAgIHJldHVybiBraW5kID09IEtJTkRfQU5ZID8gbnVsbCA6IEludGVnZXIudG9TdHJpbmcoa2luZCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIGtpbmQgY29kZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBrZXkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGtpbmQoKSB7CisgICAgICAgICAgICByZXR1cm4ga2luZDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIChjYW5vbmljYWwpIG9yaWdpbmFsIElELgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBjYW5vbmljYWxJRCgpIHsKKyAgICAgICAgICAgIHJldHVybiBwcmltYXJ5SUQ7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSAoY2Fub25pY2FsKSBjdXJyZW50IElELCBvciBudWxsIGlmIG5vIGN1cnJlbnQgaWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGN1cnJlbnRJRCgpIHsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50SUQ7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSAoY2Fub25pY2FsKSBjdXJyZW50IGRlc2NyaXB0b3IsIG9yIG51bGwgaWYgbm8gY3VycmVudCBpZC4KKyAgICAgICAgICogSW5jbHVkZXMgdGhlIGtleXdvcmRzLCB3aGVyZWFzIHRoZSBJRCBkb2VzIG5vdCBpbmNsdWRlIGtleXdvcmRzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBjdXJyZW50RGVzY3JpcHRvcigpIHsKKyAgICAgICAgICAgIFN0cmluZyByZXN1bHQgPSBjdXJyZW50SUQoKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9ICIvIiArIHJlc3VsdDsKKyAgICAgICAgICAgICAgICBpZiAodmFyc3RhcnQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHByaW1hcnlJRC5zdWJzdHJpbmcodmFyc3RhcnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoa2luZCAhPSBLSU5EX0FOWSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBwcmVmaXgoKSArIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byByZXR1cm4gdGhlIGxvY2FsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSAoY2Fub25pY2FsKSBvcmlnaW5hbCBJRC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBVTG9jYWxlIGNhbm9uaWNhbExvY2FsZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShwcmltYXJ5SUQpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byByZXR1cm4gdGhlIHVsb2NhbGUgY29ycmVzcG9uZGluZyB0byB0aGUgKGNhbm9uaWNhbCkgY3VycmVudElELgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFVMb2NhbGUgY3VycmVudExvY2FsZSgpIHsKKyAgICAgICAgICAgIGlmICh2YXJzdGFydCA9PSAtMSkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShjdXJyZW50SUQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVMb2NhbGUoY3VycmVudElEICsgcHJpbWFyeUlELnN1YnN0cmluZyh2YXJzdGFydCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIElmIHRoZSBrZXkgaGFzIGEgZmFsbGJhY2ssIG1vZGlmeSB0aGUga2V5IGFuZCByZXR1cm4gdHJ1ZSwKKyAgICAgICAgICogb3RoZXJ3aXNlIHJldHVybiBmYWxzZS48L3A+CisgICAgICAgICAqCisgICAgICAgICAqIDxwPkZpcnN0IGZhbGxzIGJhY2sgdGhyb3VnaCB0aGUgcHJpbWFyeSBJRCwgdGhlbiB0aHJvdWdoCisgICAgICAgICAqIHRoZSBmYWxsYmFja0lELiAgVGhlIGZpbmFsIGZhbGxiYWNrIGlzICJyb290IgorICAgICAgICAgKiB1bmxlc3MgdGhlIHByaW1hcnkgaWQgd2FzICJyb290IiwgaW4gd2hpY2ggY2FzZQorICAgICAgICAgKiB0aGVyZSBpcyBubyBmYWxsYmFjay4gIAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZmFsbGJhY2soKSB7CisgICAgICAgICAgICBpbnQgeCA9IGN1cnJlbnRJRC5sYXN0SW5kZXhPZignXycpOworICAgICAgICAgICAgaWYgKHggIT0gLTEpIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAoLS14ID49IDAgJiYgY3VycmVudElELmNoYXJBdCh4KSA9PSAnXycpIHsgLy8gaGFuZGxlIHpoX19QSU5ZSU4KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY3VycmVudElEID0gY3VycmVudElELnN1YnN0cmluZygwLCB4KzEpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZhbGxiYWNrSUQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja0lELmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudElEID0gInJvb3QiOworICAgICAgICAgICAgICAgICAgICBmYWxsYmFja0lEID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjdXJyZW50SUQgPSBmYWxsYmFja0lEOworICAgICAgICAgICAgICAgICAgICBmYWxsYmFja0lEID0gIiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudElEID0gbnVsbDsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJZiBhIGtleSBjcmVhdGVkIGZyb20gaWQgd291bGQgZXZlbnR1YWxseSBmYWxsYmFjayB0byBtYXRjaCB0aGUgCisgICAgICAgICAqIGNhbm9uaWNhbCBJRCBvZiB0aGlzIGtleSwgcmV0dXJuIHRydWUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0ZhbGxiYWNrT2YoU3RyaW5nIGlkKSB7CisgICAgICAgICAgICByZXR1cm4gTG9jYWxlVXRpbGl0eS5pc0ZhbGxiYWNrT2YoY2Fub25pY2FsSUQoKSwgaWQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBzdWJjbGFzcyBvZiBGYWN0b3J5IHRoYXQgdXNlcyBMb2NhbGVLZXlzLiAgSWYgJ3Zpc2libGUnIHRoZQorICAgICAqIGZhY3RvcnkgcmVwb3J0cyBpdHMgSURzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgTG9jYWxlS2V5RmFjdG9yeSBpbXBsZW1lbnRzIEZhY3RvcnkgeworICAgICAgICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIG5hbWU7CisgICAgICAgIHByb3RlY3RlZCBmaW5hbCBib29sZWFuIHZpc2libGU7CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIFZJU0lCTEUgPSB0cnVlOworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gSU5WSVNJQkxFID0gZmFsc2U7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdG9yIHVzZWQgYnkgc3ViY2xhc3Nlcy4KKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBMb2NhbGVLZXlGYWN0b3J5KGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gdmlzaWJsZTsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0b3IgdXNlZCBieSBzdWJjbGFzc2VzLgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIExvY2FsZUtleUZhY3RvcnkoYm9vbGVhbiB2aXNpYmxlLCBTdHJpbmcgbmFtZSkgeworICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gdmlzaWJsZTsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSW1wbGVtZW50IHN1cGVyY2xhc3MgYWJzdHJhY3QgbWV0aG9kLiAgVGhpcyBjaGVja3MgdGhlIGN1cnJlbnRJRCBvZgorICAgICAgICAgKiB0aGUga2V5IGFnYWluc3QgdGhlIHN1cHBvcnRlZCBJRHMsIGFuZCBwYXNzZXMgdGhlIGNhbm9uaWNhbExvY2FsZSBhbmQKKyAgICAgICAgICoga2luZCBvZmYgdG8gaGFuZGxlQ3JlYXRlICh3aGljaCBzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50KS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKEtleSBrZXksIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgaWYgKGhhbmRsZXNLZXkoa2V5KSkgeworICAgICAgICAgICAgICAgIExvY2FsZUtleSBsa2V5ID0gKExvY2FsZUtleSlrZXk7CisgICAgICAgICAgICAgICAgaW50IGtpbmQgPSBsa2V5LmtpbmQoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBVTG9jYWxlIHVsb2MgPSBsa2V5LmN1cnJlbnRMb2NhbGUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlQ3JlYXRlKHVsb2MsIGtpbmQsIHNlcnZpY2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImZhY3Rvcnk6ICIgKyB0aGlzICsgIiBkaWQgbm90IHN1cHBvcnQgaWQ6ICIgKyBrZXkuY3VycmVudElEKCkpOworICAgICAgICAgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigic3VwcG9ydGVkIGlkczogIiArIGdldFN1cHBvcnRlZElEcygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaGFuZGxlc0tleShLZXkga2V5KSB7CisgICAgICAgICAgICBpZiAoa2V5ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSBrZXkuY3VycmVudElEKCk7CisgICAgICAgICAgICAgICAgU2V0IHN1cHBvcnRlZCA9IGdldFN1cHBvcnRlZElEcygpOworICAgICAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWQuY29udGFpbnMoaWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE92ZXJyaWRlIG9mIHN1cGVyY2xhc3MgbWV0aG9kLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgdXBkYXRlVmlzaWJsZUlEcyhNYXAgcmVzdWx0KSB7CisgICAgICAgICAgICBTZXQgY2FjaGUgPSBnZXRTdXBwb3J0ZWRJRHMoKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBjYWNoZS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGlkID0gKFN0cmluZylpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAodmlzaWJsZSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQucHV0KGlkLCB0aGlzKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQucmVtb3ZlKGlkKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGEgbG9jYWxpemVkIG5hbWUgZm9yIHRoZSBsb2NhbGUgcmVwcmVzZW50ZWQgYnkgaWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgIC8vIGFzc3VtZSBpZiB0aGUgdXNlciBjYWxsZWQgdGhpcyBvbiB1cywgd2UgbXVzdCBoYXZlIGhhbmRsZWQgc29tZSBmYWxsYmFjayBvZiB0aGlzIGlkCisgICAgICAgICAgICAvLyAgICAgICAgICBpZiAoaXNTdXBwb3J0ZWRJRChpZCkpIHsKKyAgICAgICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVMb2NhbGUgbG9jID0gbmV3IFVMb2NhbGUoaWQpOworICAgICAgICAgICAgcmV0dXJuIGxvYy5nZXREaXNwbGF5TmFtZShsb2NhbGUpOworICAgICAgICAgICAgLy8gICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAvKioKKyAgICAgICAgICogVXRpbGl0eSBtZXRob2QgdXNlZCBieSBjcmVhdGUoS2V5LCBJQ1VTZXJ2aWNlKS4gIFN1YmNsYXNzZXMgY2FuCisgICAgICAgICAqIGltcGxlbWVudCB0aGlzIGluc3RlYWQgb2YgY3JlYXRlLgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVDcmVhdGUoVUxvY2FsZSBsb2MsIGludCBraW5kLCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIC8vL0NMT1ZFUjpPTgorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIGlkIGlzIG9uZSB0aGUgZmFjdG9yeSBzdXBwb3J0cyAodmlzaWJsZSBvciAKKyAgICAgICAgICogb3RoZXJ3aXNlKS4KKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzU3VwcG9ydGVkSUQoU3RyaW5nIGlkKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3VwcG9ydGVkSURzKCkuY29udGFpbnMoaWQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBzZXQgb2YgaWRzIHRoYXQgdGhpcyBmYWN0b3J5IHN1cHBvcnRzICh2aXNpYmxlIG9yIAorICAgICAgICAgKiBvdGhlcndpc2UpLiAgVGhpcyBjYW4gYmUgY2FsbGVkIG9mdGVuIGFuZCBtaWdodCBuZWVkIHRvIGJlCisgICAgICAgICAqIGNhY2hlZCBpZiBpdCBpcyBleHBlbnNpdmUgdG8gY3JlYXRlLgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFNldCBnZXRTdXBwb3J0ZWRJRHMoKSB7CisgICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvbnMuRU1QVFlfU0VUOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZvciBkZWJ1Z2dpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBpZiAobmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCBuYW1lOiAiKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKG5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCB2aXNpYmxlOiAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQodmlzaWJsZSk7CisgICAgICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIExvY2FsZUtleUZhY3RvcnkgdGhhdCBqdXN0IHJldHVybnMgYSBzaW5nbGUgb2JqZWN0IGZvciBhIGtpbmQvbG9jYWxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgU2ltcGxlTG9jYWxlS2V5RmFjdG9yeSBleHRlbmRzIExvY2FsZUtleUZhY3RvcnkgeworICAgICAgICBwcml2YXRlIGZpbmFsIE9iamVjdCBvYmo7CisgICAgICAgIHByaXZhdGUgZmluYWwgU3RyaW5nIGlkOworICAgICAgICBwcml2YXRlIGZpbmFsIGludCBraW5kOworCisgICAgICAgIC8vIFRPRE86IHJlbW92ZSB3aGVuIHdlIG5vIGxvbmdlciBuZWVkIHRoaXMKKyAgICAgICAgcHVibGljIFNpbXBsZUxvY2FsZUtleUZhY3RvcnkoT2JqZWN0IG9iaiwgVUxvY2FsZSBsb2NhbGUsIGludCBraW5kLCBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgICAgIHRoaXMob2JqLCBsb2NhbGUsIGtpbmQsIHZpc2libGUsIG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFNpbXBsZUxvY2FsZUtleUZhY3RvcnkoT2JqZWN0IG9iaiwgVUxvY2FsZSBsb2NhbGUsIGludCBraW5kLCBib29sZWFuIHZpc2libGUsIFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICBzdXBlcih2aXNpYmxlLCBuYW1lKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGhpcy5vYmogPSBvYmo7CisgICAgICAgICAgICB0aGlzLmlkID0gbG9jYWxlLmdldEJhc2VOYW1lKCk7CisgICAgICAgICAgICB0aGlzLmtpbmQgPSBraW5kOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIHNlcnZpY2Ugb2JqZWN0IGlmIGtpbmQvbG9jYWxlIG1hdGNoLiAgU2VydmljZSBpcyBub3QgdXNlZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKEtleSBrZXksIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgTG9jYWxlS2V5IGxrZXkgPSAoTG9jYWxlS2V5KWtleTsKKyAgICAgICAgICAgIGlmIChraW5kID09IExvY2FsZUtleS5LSU5EX0FOWSB8fCBraW5kID09IGxrZXkua2luZCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleUlEID0gbGtleS5jdXJyZW50SUQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaWQuZXF1YWxzKGtleUlEKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNTdXBwb3J0ZWRJRChTdHJpbmcgaWQpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmlkLmVxdWFscyhpZCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCB1cGRhdGVWaXNpYmxlSURzKE1hcCByZXN1bHQpIHsKKyAgICAgICAgICAgIGlmICh2aXNpYmxlKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LnB1dChpZCwgdGhpcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdC5yZW1vdmUoaWQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHN1cGVyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCBpZDogIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKGlkKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiwga2luZDogIik7CisgICAgICAgICAgICBidWYuYXBwZW5kKGtpbmQpOworICAgICAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBMb2NhbGVLZXlGYWN0b3J5IHRoYXQgY3JlYXRlcyBhIHNlcnZpY2UgYmFzZWQgb24gdGhlIElDVSBsb2NhbGUgZGF0YS4KKyAgICAgKiBUaGlzIGlzIGEgYmFzZSBjbGFzcyBmb3IgbW9zdCBJQ1UgZmFjdG9yaWVzLiAgU3ViY2xhc3NlcyBpbnN0YW50aWF0ZSBpdAorICAgICAqIHdpdGggYSBjb25zdHJ1Y3RvciB0aGF0IHRha2VzIGEgYnVuZGxlIG5hbWUsIHdoaWNoIGRldGVybWluZXMgdGhlIHN1cHBvcnRlZAorICAgICAqIElEcy4gIFN1YmNsYXNzZXMgdGhlbiBvdmVycmlkZSBoYW5kbGVDcmVhdGUgdG8gY3JlYXRlIHRoZSBhY3R1YWwgc2VydmljZQorICAgICAqIG9iamVjdC4gIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgYSByZXNvdXJjZSBidW5kbGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkgZXh0ZW5kcyBMb2NhbGVLZXlGYWN0b3J5IHsKKyAgICAgICAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBidW5kbGVOYW1lOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZW5pZW5jZSBjb25zdHJ1Y3RvciB0aGF0IHVzZXMgdGhlIG1haW4gSUNVIGJ1bmRsZSBuYW1lLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHRoaXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQSBzZXJ2aWNlIGZhY3RvcnkgYmFzZWQgb24gSUNVIHJlc291cmNlIGRhdGEgaW4gcmVzb3VyY2VzCisgICAgICAgICAqIHdpdGggdGhlIGdpdmVuIG5hbWUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5KFN0cmluZyBidW5kbGVOYW1lKSB7CisgICAgICAgICAgICBzdXBlcih0cnVlKTsKKworICAgICAgICAgICAgdGhpcy5idW5kbGVOYW1lID0gYnVuZGxlTmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIHN1cHBvcnRlZCBJRHMuICBUaGlzIGlzIHRoZSBzZXQgb2YgYWxsIGxvY2FsZSBuYW1lcyBmb3IgdGhlIGJ1bmRsZU5hbWUuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgU2V0IGdldFN1cHBvcnRlZElEcygpIHsKKyAgICAgICAgICAgIC8vIG5vdGU6ICJyb290IiBpcyBvbmUgb2YgdGhlIGlkcywgYnV0ICIiIGlzIG5vdC4gIE11c3QgY29udmVydCBVTG9jYWxlLlJPT1QuCisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0RnVsbExvY2FsZU5hbWVTZXQoYnVuZGxlTmFtZSk7IAorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE92ZXJyaWRlIG9mIHN1cGVyY2xhc3MgbWV0aG9kLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgdXBkYXRlVmlzaWJsZUlEcyhNYXAgcmVzdWx0KSB7CisgICAgICAgICAgICBTZXQgdmlzaWJsZUlEcyA9IElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZU5hbWVTZXQoYnVuZGxlTmFtZSk7IC8vIG9ubHkgdmlzaWJsZSBpZHMKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSB2aXNpYmxlSURzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKWl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIHJlc3VsdC5wdXQoaWQsIHRoaXMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENyZWF0ZSB0aGUgc2VydmljZS4gIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIHJlc291cmNlIGJ1bmRsZQorICAgICAgICAgKiBmb3IgdGhlIGxvY2FsZSwgaWdub3Jpbmcga2luZCwgYW5kIHNlcnZpY2UuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgT2JqZWN0IGhhbmRsZUNyZWF0ZShVTG9jYWxlIGxvYywgaW50IGtpbmQsIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJ1bmRsZU5hbWUsIGxvYyk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLnRvU3RyaW5nKCkgKyAiLCBidW5kbGU6ICIgKyBidW5kbGVOYW1lOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGZhbGxiYWNrIGxvY2FsZS4gIElmIGl0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgd2FzCisgICAgICogbGFzdCBhY2Nlc3NlZCwgdGhlIHNlcnZpY2UgY2FjaGUgaXMgY2xlYXJlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHZhbGlkYXRlRmFsbGJhY2tMb2NhbGUoKSB7CisgICAgICAgIFVMb2NhbGUgbG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIGlmIChsb2MgIT0gZmFsbGJhY2tMb2NhbGUpIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeworICAgICAgICAgICAgICAgIGlmIChsb2MgIT0gZmFsbGJhY2tMb2NhbGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGUgPSBsb2M7CisgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlTmFtZSA9IGxvYy5nZXRCYXNlTmFtZSgpOworICAgICAgICAgICAgICAgICAgICBjbGVhclNlcnZpY2VDYWNoZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsbGJhY2tMb2NhbGVOYW1lOworICAgIH0KKworICAgIHB1YmxpYyBLZXkgY3JlYXRlS2V5KFN0cmluZyBpZCkgeworICAgICAgICByZXR1cm4gTG9jYWxlS2V5LmNyZWF0ZVdpdGhDYW5vbmljYWxGYWxsYmFjayhpZCwgdmFsaWRhdGVGYWxsYmFja0xvY2FsZSgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgS2V5IGNyZWF0ZUtleShTdHJpbmcgaWQsIGludCBraW5kKSB7CisgICAgICAgIHJldHVybiBMb2NhbGVLZXkuY3JlYXRlV2l0aENhbm9uaWNhbEZhbGxiYWNrKGlkLCB2YWxpZGF0ZUZhbGxiYWNrTG9jYWxlKCksIGtpbmQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVU5vdGlmaWVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VOb3RpZmllci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0OWIyYTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VOb3RpZmllci5qYXZhCkBAIC0wLDAgKzEsMTcxIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkV2ZW50TGlzdGVuZXI7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaW5rZWRMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCisvKioKKyAqIDxwPkFic3RyYWN0IGltcGxlbWVudGF0aW9uIG9mIGEgbm90aWZpY2F0aW9uIGZhY2lsaXR5LiAgQ2xpZW50cyBhZGQKKyAqIEV2ZW50TGlzdGVuZXJzIHdpdGggYWRkTGlzdGVuZXIgYW5kIHJlbW92ZSB0aGVtIHdpdGggcmVtb3ZlTGlzdGVuZXIuCisgKiBOb3RpZmllcnMgY2FsbCBub3RpZnlDaGFuZ2VkIHdoZW4gdGhleSB3aXNoIHRvIG5vdGlmeSBsaXN0ZW5lcnMuCisgKiBUaGlzIHF1ZXVlcyB0aGUgbGlzdGVuZXIgbGlzdCBvbiB0aGUgbm90aWZpY2F0aW9uIHRocmVhZCwgd2hpY2gKKyAqIGV2ZW50dWFsbHkgZGVxdWV1ZXMgdGhlIGxpc3QgYW5kIGNhbGxzIG5vdGlmeUxpc3RlbmVyIG9uIGVhY2gKKyAqIGxpc3RlbmVyIGluIHRoZSBsaXN0LjwvcD4KKyAqCisgKiA8cD5TdWJjbGFzc2VzIG92ZXJyaWRlIGFjY2VwdHNMaXN0ZW5lciBhbmQgbm90aWZ5TGlzdGVuZXIgCisgKiB0byBhZGQgdHlwZS1zYWZlIG5vdGlmaWNhdGlvbi4gIEFjY2VwdHNMaXN0ZW5lciBzaG91bGQgcmV0dXJuCisgKiB0cnVlIGlmIHRoZSBsaXN0ZW5lciBpcyBvZiB0aGUgYXBwcm9wcmlhdGUgdHlwZTsgSUNVTm90aWZpZXIKKyAqIGl0c2VsZiB3aWxsIGVuc3VyZSB0aGUgbGlzdGVuZXIgaXMgbm9uLW51bGwgYW5kIHRoYXQgdGhlCisgKiBpZGVudGljYWwgbGlzdGVuZXIgaXMgbm90IGFscmVhZHkgcmVnaXN0ZXJlZCB3aXRoIHRoZSBOb3RpZmllci4KKyAqIE5vdGlmeUxpc3RlbmVyIHNob3VsZCBjYXN0IHRoZSBsaXN0ZW5lciB0byB0aGUgYXBwcm9wcmlhdGUgCisgKiB0eXBlIGFuZCBjYWxsIHRoZSBhcHByb3ByaWF0ZSBtZXRob2Qgb24gdGhlIGxpc3RlbmVyLgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgSUNVTm90aWZpZXIgeworICAgIHByaXZhdGUgZmluYWwgT2JqZWN0IG5vdGlmeUxvY2sgPSBuZXcgT2JqZWN0KCk7CisgICAgcHJpdmF0ZSBOb3RpZnlUaHJlYWQgbm90aWZ5VGhyZWFkOworICAgIHByaXZhdGUgTGlzdCBsaXN0ZW5lcnM7CisKKyAgICAvKioKKyAgICAgKiBBZGQgYSBsaXN0ZW5lciB0byBiZSBub3RpZmllZCB3aGVuIG5vdGlmeUNoYW5nZWQgaXMgY2FsbGVkLgorICAgICAqIFRoZSBsaXN0ZW5lciBtdXN0IG5vdCBiZSBudWxsLiBBY2NlcHRzTGlzdGVuZXIgbXVzdCByZXR1cm4KKyAgICAgKiB0cnVlIGZvciB0aGUgbGlzdGVuZXIuICBBdHRlbXB0cyB0byBjb25jdXJyZW50bHkKKyAgICAgKiByZWdpc3RlciB0aGUgaWRlbnRpY2FsIGxpc3RlbmVyIG1vcmUgdGhhbiBvbmNlIHdpbGwgYmUKKyAgICAgKiBzaWxlbnRseSBpZ25vcmVkLiAgCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkTGlzdGVuZXIoRXZlbnRMaXN0ZW5lciBsKSB7CisgICAgICAgIGlmIChsID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFjY2VwdHNMaXN0ZW5lcihsKSkgeworICAgICAgICAgICAgc3luY2hyb25pemVkIChub3RpZnlMb2NrKSB7CisgICAgICAgICAgICAgICAgaWYgKGxpc3RlbmVycyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGxpc3RlbmVycyA9IG5ldyBBcnJheUxpc3QoNSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWRlbnRpdHkgZXF1YWxpdHkgY2hlY2sKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IGxpc3RlbmVycy5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVyLm5leHQoKSA9PSBsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbGlzdGVuZXJzLmFkZChsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkxpc3RlbmVyIGludmFsaWQgZm9yIHRoaXMgbm90aWZpZXIuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdG9wIG5vdGlmeWluZyB0aGlzIGxpc3RlbmVyLiAgVGhlIGxpc3RlbmVyIG11c3QKKyAgICAgKiBub3QgYmUgbnVsbC4gIEF0dGVtcHMgdG8gcmVtb3ZlIGEgbGlzdGVuZXIgdGhhdCBpcworICAgICAqIG5vdCByZWdpc3RlcmVkIHdpbGwgYmUgc2lsZW50bHkgaWdub3JlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmVMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpIHsKKyAgICAgICAgaWYgKGwgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgc3luY2hyb25pemVkIChub3RpZnlMb2NrKSB7CisgICAgICAgICAgICBpZiAobGlzdGVuZXJzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBpZGVudGl0eSBlcXVhbGl0eSBjaGVjaworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBsaXN0ZW5lcnMuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZXIubmV4dCgpID09IGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXIucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdGVuZXJzLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXJzID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFF1ZXVlIGEgbm90aWZpY2F0aW9uIG9uIHRoZSBub3RpZmljYXRpb24gdGhyZWFkIGZvciB0aGUgY3VycmVudAorICAgICAqIGxpc3RlbmVycy4gIFdoZW4gdGhlIHRocmVhZCB1bnF1ZXVlcyB0aGUgbm90aWZpY2F0aW9uLCBub3RpZnlMaXN0ZW5lcgorICAgICAqIGlzIGNhbGxlZCBvbiBlYWNoIGxpc3RlbmVyIGZyb20gdGhlIG5vdGlmaWNhdGlvbiB0aHJlYWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbm90aWZ5Q2hhbmdlZCgpIHsKKyAgICAgICAgaWYgKGxpc3RlbmVycyAhPSBudWxsKSB7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG5vdGlmeUxvY2spIHsKKyAgICAgICAgICAgICAgICBpZiAobGlzdGVuZXJzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5vdGlmeVRocmVhZCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBub3RpZnlUaHJlYWQgPSBuZXcgTm90aWZ5VGhyZWFkKHRoaXMpOworICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZ5VGhyZWFkLnNldERhZW1vbih0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmeVRocmVhZC5zdGFydCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5vdGlmeVRocmVhZC5xdWV1ZShsaXN0ZW5lcnMudG9BcnJheSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgbm90aWZpY2F0aW9uIHRocmVhZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBOb3RpZnlUaHJlYWQgZXh0ZW5kcyBUaHJlYWQgeworICAgICAgICBwcml2YXRlIGZpbmFsIElDVU5vdGlmaWVyIG5vdGlmaWVyOworICAgICAgICBwcml2YXRlIGZpbmFsIExpc3QgcXVldWUgPSBuZXcgTGlua2VkTGlzdCgpOworCisgICAgICAgIE5vdGlmeVRocmVhZChJQ1VOb3RpZmllciBub3RpZmllcikgeworICAgICAgICAgICAgdGhpcy5ub3RpZmllciA9IG5vdGlmaWVyOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFF1ZXVlIHRoZSBub3RpZmljYXRpb24gb24gdGhlIHRocmVhZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHF1ZXVlKE9iamVjdFtdIGxpc3QpIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeworICAgICAgICAgICAgICAgIHF1ZXVlLmFkZChsaXN0KTsKKyAgICAgICAgICAgICAgICBub3RpZnkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBXYWl0IGZvciBhIG5vdGlmaWNhdGlvbiB0byBiZSBxdWV1ZWQsIHRoZW4gbm90aWZ5IGFsbAorICAgICAgICAgKiBsaXN0ZW5lcnMgbGlzdGVkIGluIHRoZSBub3RpZmljYXRpb24uCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisgICAgICAgICAgICBPYmplY3RbXSBsaXN0OworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHRoaXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChxdWV1ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBsaXN0ID0gKE9iamVjdFtdKXF1ZXVlLnJlbW92ZSgwKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpZXIubm90aWZ5TGlzdGVuZXIoKEV2ZW50TGlzdGVuZXIpbGlzdFtpXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdWJjbGFzc2VzIGltcGxlbWVudCB0aGlzIHRvIHJldHVybiB0cnVlIGlmIHRoZSBsaXN0ZW5lciBpcworICAgICAqIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLgorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBib29sZWFuIGFjY2VwdHNMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpOworCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBpbXBsZW1lbnQgdGhpcyB0byBub3RpZnkgdGhlIGxpc3RlbmVyLgorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIG5vdGlmeUxpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSV0xvY2suamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJXTG9jay5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjMTUwNzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSV0xvY2suamF2YQpAQCAtMCwwICsxLDI5NyBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKKy8vIFNlZSBBbGxhbiBIb2x1YidzIDE5OTkgY29sdW1uIGluIEphdmFXb3JsZCwgYW5kIERvdWcgTGVhJ3MgY29kZSBmb3IgUldMb2NrcyB3aXRoIHdyaXRlciBwcmVmZXJlbmNlLgorCisKKy8qKgorICogPHA+QSBzaW1wbGUgUmVhZGVyL1dyaXRlciBsb2NrLiAgVGhpcyBhc3N1bWVzIHRoYXQgdGhlcmUgd2lsbAorICogYmUgbGl0dGxlIHdyaXRpbmcgY29udGVudGlvbi4gIEl0IGFsc28gZG9lc24ndCBhbGxvdyAKKyAqIGFjdGl2ZSByZWFkZXJzIHRvIGFjcXVpcmUgYW5kIHJlbGVhc2UgYSB3cml0ZSBsb2NrLCBvcgorICogZGVhbCB3aXRoIHByaW9yaXR5IGludmVyc2lvbiBpc3N1ZXMuPC9wPgorICoKKyAqIDxwPkFjY2VzcyB0byB0aGUgbG9jayBzaG91bGQgYmUgZW5jbG9zZWQgaW4gYSB0cnkvZmluYWxseSBibG9jaworICogaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhlIGxvY2sgaXMgYWx3YXlzIHJlbGVhc2VkIGluIGNhc2Ugb2YKKyAqIGV4Y2VwdGlvbnM6PGJyPjxwcmU+CisgKiB0cnkgeworICogICAgIGxvY2suYWNxdWlyZVJlYWQoKTsKKyAqICAgICAvLyB1c2Ugc2VydmljZSBwcm90ZWN0ZWQgYnkgdGhlIGxvY2sKKyAqIH0KKyAqIGZpbmFsbHkgeworICogICAgIGxvY2sucmVsZWFzZVJlYWQoKTsKKyAqIH0KKyAqIDwvcHJlPjwvcD4KKyAqCisgKiA8cD5UaGUgbG9jayBwcm92aWRlcyB1dGlsaXR5IG1ldGhvZHMgZ2V0U3RhdHMgYW5kIGNsZWFyU3RhdHMKKyAqIHRvIHJldHVybiBzdGF0aXN0aWNzIG9uIHRoZSB1c2Ugb2YgdGhlIGxvY2suPC9wPgorICovCitwdWJsaWMgY2xhc3MgSUNVUldMb2NrIHsKKyAgICBwcml2YXRlIE9iamVjdCB3cml0ZUxvY2sgPSBuZXcgT2JqZWN0KCk7CisgICAgcHJpdmF0ZSBPYmplY3QgcmVhZExvY2sgPSBuZXcgT2JqZWN0KCk7CisgICAgcHJpdmF0ZSBpbnQgd3djOyAvLyB3YWl0aW5nIHdyaXRlcnMKKyAgICBwcml2YXRlIGludCByYzsgLy8gYWN0aXZlIHJlYWRlcnMsIC0xIGlmIHRoZXJlJ3MgYW4gYWN0aXZlIHdyaXRlcgorICAgIHByaXZhdGUgaW50IHdyYzsgLy8gd2FpdGluZyByZWFkZXJzCisKKyAgICBwcml2YXRlIFN0YXRzIHN0YXRzID0gbmV3IFN0YXRzKCk7IC8vIG1heWJlIGRvbid0IGluaXQgdG8gc3RhcnQuLi4KKworICAgIC8qKgorICAgICAqIEludGVybmFsIGNsYXNzIHVzZWQgdG8gZ2F0aGVyIHN0YXRpc3RpY3Mgb24gdGhlIFJXTG9jay4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGNsYXNzIFN0YXRzIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIE51bWJlciBvZiB0aW1lcyByZWFkIGFjY2VzcyBncmFudGVkIChyZWFkIGNvdW50KS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgX3JjOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBOdW1iZXIgb2YgdGltZXMgY29uY3VycmVudCByZWFkIGFjY2VzcyBncmFudGVkIChtdWx0aXBsZSByZWFkIGNvdW50KS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgX21yYzsKKworICAgICAgICAvKioKKyAgICAgICAgICogTnVtYmVyIG9mIHRpbWVzIGJsb2NrZWQgZm9yIHJlYWQgKHdhaXRpbmcgcmVhZGVyIGNvdW50KS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgX3dyYzsgLy8gd2FpdCBmb3IgcmVhZAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBOdW1iZXIgb2YgdGltZXMgd3JpdGUgYWNjZXNzIGdyYW50ZWQgKHdyaXRlciBjb3VudCkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IF93YzsKKworICAgICAgICAvKioKKyAgICAgICAgICogTnVtYmVyIG9mIHRpbWVzIGJsb2NrZWQgZm9yIHdyaXRlICh3YWl0aW5nIHdyaXRlciBjb3VudCkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IF93d2M7CisKKyAgICAgICAgcHJpdmF0ZSBTdGF0cygpIHsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgU3RhdHMoaW50IHJjLCBpbnQgbXJjLCBpbnQgd3JjLCBpbnQgd2MsIGludCB3d2MpIHsKKyAgICAgICAgICAgIHRoaXMuX3JjID0gcmM7CisgICAgICAgICAgICB0aGlzLl9tcmMgPSBtcmM7CisgICAgICAgICAgICB0aGlzLl93cmMgPSB3cmM7CisgICAgICAgICAgICB0aGlzLl93YyA9IHdjOworICAgICAgICAgICAgdGhpcy5fd3djID0gd3djOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBTdGF0cyhTdGF0cyByaHMpIHsKKyAgICAgICAgICAgIHRoaXMocmhzLl9yYywgcmhzLl9tcmMsIHJocy5fd3JjLCByaHMuX3djLCByaHMuX3d3Yyk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIGEgc3RyaW5nIGxpc3RpbmcgYWxsIHRoZSBzdGF0cy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gIiByYzogIiArIF9yYyArCisgICAgICAgICAgICAgICAgIiBtcmM6ICIgKyBfbXJjICsgCisgICAgICAgICAgICAgICAgIiB3cmM6ICIgKyBfd3JjICsKKyAgICAgICAgICAgICAgICAiIHdjOiAiICsgX3djICsKKyAgICAgICAgICAgICAgICAiIHd3YzogIiArIF93d2M7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgc3RhdHMuICBSZXR1cm5zIGV4aXN0aW5nIHN0YXRzLCBpZiBhbnkuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBTdGF0cyByZXNldFN0YXRzKCkgeworICAgICAgICBTdGF0cyByZXN1bHQgPSBzdGF0czsKKyAgICAgICAgc3RhdHMgPSBuZXcgU3RhdHMoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhciB0aGUgc3RhdHMgKHN0b3AgY29sbGVjdGluZyBzdGF0cykuICBSZXR1cm5zIGV4aXN0aW5nIHN0YXRzLCBpZiBhbnkuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBTdGF0cyBjbGVhclN0YXRzKCkgeworICAgICAgICBTdGF0cyByZXN1bHQgPSBzdGF0czsKKyAgICAgICAgc3RhdHMgPSBudWxsOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzbmFwc2hvdCBvZiB0aGUgY3VycmVudCBzdGF0cy4gIFRoaXMgZG9lcyBub3QgcmVzZXQgdGhlIHN0YXRzLgorICAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgU3RhdHMgZ2V0U3RhdHMoKSB7CisgICAgICAgIHJldHVybiBzdGF0cyA9PSBudWxsID8gbnVsbCA6IG5ldyBTdGF0cyhzdGF0cyk7CisgICAgfQorCisgICAgLy8gdXRpbGl0aWVzCisKKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBib29sZWFuIGdvdFJlYWQoKSB7CisgICAgICAgICsrcmM7CisgICAgICAgIGlmIChzdGF0cyAhPSBudWxsKSB7CisgICAgICAgICAgICArK3N0YXRzLl9yYzsKKyAgICAgICAgICAgIGlmIChyYyA+IDEpICsrc3RhdHMuX21yYzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBib29sZWFuIGdldFJlYWQoKSB7CisgICAgICAgIGlmIChyYyA+PSAwICYmIHd3YyA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZ290UmVhZCgpOworICAgICAgICB9CisgICAgICAgICsrd3JjOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiByZXRyeVJlYWQoKSB7CisgICAgICAgIGlmIChzdGF0cyAhPSBudWxsKSArK3N0YXRzLl93cmM7CisgICAgICAgIGlmIChyYyA+PSAwICYmIHd3YyA9PSAwKSB7CisgICAgICAgICAgICAtLXdyYzsKKyAgICAgICAgICAgIHJldHVybiBnb3RSZWFkKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgc3luY2hyb25pemVkIGJvb2xlYW4gZmluaXNoUmVhZCgpIHsKKyAgICAgICAgaWYgKHJjID4gMCkgeworICAgICAgICAgICAgcmV0dXJuICgwID09IC0tcmMgJiYgd3djID4gMCk7CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigibm8gY3VycmVudCByZWFkZXIgdG8gcmVsZWFzZSIpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBib29sZWFuIGdvdFdyaXRlKCkgeworICAgICAgICByYyA9IC0xOworICAgICAgICBpZiAoc3RhdHMgIT0gbnVsbCkgeworICAgICAgICAgICAgKytzdGF0cy5fd2M7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiBnZXRXcml0ZSgpIHsKKyAgICAgICAgaWYgKHJjID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBnb3RXcml0ZSgpOworICAgICAgICB9CisgICAgICAgICsrd3djOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiByZXRyeVdyaXRlKCkgeworICAgICAgICBpZiAoc3RhdHMgIT0gbnVsbCkgKytzdGF0cy5fd3djOworICAgICAgICBpZiAocmMgPT0gMCkgeworICAgICAgICAgICAgLS13d2M7CisgICAgICAgICAgICByZXR1cm4gZ290V3JpdGUoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PVElGWV9OT05FID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9USUZZX1dSSVRFUlMgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT1RJRllfUkVBREVSUyA9IDI7CisKKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBpbnQgZmluaXNoV3JpdGUoKSB7CisgICAgICAgIGlmIChyYyA8IDApIHsKKyAgICAgICAgICAgIHJjID0gMDsKKyAgICAgICAgICAgIGlmICh3d2MgPiAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5PVElGWV9XUklURVJTOworICAgICAgICAgICAgfSBlbHNlIGlmICh3cmMgPiAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5PVElGWV9SRUFERVJTOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTk9USUZZX05PTkU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigibm8gY3VycmVudCB3cml0ZXIgdG8gcmVsZWFzZSIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5BY3F1aXJlIGEgcmVhZCBsb2NrLCBibG9ja2luZyB1bnRpbCBhIHJlYWQgbG9jayBpcworICAgICAqIGF2YWlsYWJsZS4gIE11bHRpcGxlIHJlYWRlcnMgY2FuIGNvbmN1cnJlbnRseSBob2xkIHRoZSByZWFkCisgICAgICogbG9jay48L3A+CisgICAgICoKKyAgICAgKiA8cD5JZiB0aGVyZSdzIGEgd3JpdGVyLCBvciBhIHdhaXRpbmcgd3JpdGVyLCBpbmNyZW1lbnQgdGhlCisgICAgICogd2FpdGluZyByZWFkZXIgY291bnQgYW5kIGJsb2NrIG9uIHRoaXMuICBPdGhlcndpc2UKKyAgICAgKiBpbmNyZW1lbnQgdGhlIGFjdGl2ZSByZWFkZXIgY291bnQgYW5kIHJldHVybi4gIENhbGxlciBtdXN0IGNhbGwKKyAgICAgKiByZWxlYXNlUmVhZCB3aGVuIGRvbmUgKGZvciBleGFtcGxlLCBpbiBhIGZpbmFsbHkgYmxvY2spLjwvcD4gCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWNxdWlyZVJlYWQoKSB7CisgICAgICAgIGlmICghZ2V0UmVhZCgpKSB7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgc3luY2hyb25pemVkIChyZWFkTG9jaykgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVhZExvY2sud2FpdCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXRyeVJlYWQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UmVsZWFzZSBhIHJlYWQgbG9jayBhbmQgcmV0dXJuLiAgQW4gZXJyb3Igd2lsbCBiZSB0aHJvd24KKyAgICAgKiBpZiBhIHJlYWQgbG9jayBpcyBub3QgY3VycmVudGx5IGhlbGQuPC9wPgorICAgICAqCisgICAgICogPHA+SWYgdGhpcyBpcyB0aGUgbGFzdCBhY3RpdmUgcmVhZGVyLCBub3RpZnkgdGhlIG9sZGVzdAorICAgICAqIHdhaXRpbmcgd3JpdGVyLiAgQ2FsbCB3aGVuIGZpbmlzaGVkIHdpdGggd29yaworICAgICAqIGNvbnRyb2xsZWQgYnkgYWNxdWlyZVJlYWQuPC9wPgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbGVhc2VSZWFkKCkgeworICAgICAgICBpZiAoZmluaXNoUmVhZCgpKSB7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHdyaXRlTG9jaykgeworICAgICAgICAgICAgICAgIHdyaXRlTG9jay5ub3RpZnkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkFjcXVpcmUgdGhlIHdyaXRlIGxvY2ssIGJsb2NraW5nIHVudGlsIHRoZSB3cml0ZSBsb2NrIGlzCisgICAgICogYXZhaWxhYmxlLiAgT25seSBvbmUgd3JpdGVyIGNhbiBhY3F1aXJlIHRoZSB3cml0ZSBsb2NrLCBhbmQKKyAgICAgKiB3aGVuIGhlbGQsIG5vIHJlYWRlcnMgY2FuIGFjcXVpcmUgdGhlIHJlYWQgbG9jay48L3A+CisgICAgICoKKyAgICAgKiA8cD5JZiB0aGVyZSBhcmUgbm8gcmVhZGVycyBhbmQgbm8gd2FpdGluZyB3cml0ZXJzLCBtYXJrIGFzCisgICAgICogaGF2aW5nIGFuIGFjdGl2ZSB3cml0ZXIgYW5kIHJldHVybi4gIE90aGVyd2lzZSwgYWRkIGEgbG9jayB0byB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIHdhaXRpbmcgd3JpdGVyIGxpc3QsIGFuZCBibG9jayBvbiBpdC4gIENhbGxlcgorICAgICAqIG11c3QgY2FsbCByZWxlYXNlV3JpdGUgd2hlbiBkb25lIChmb3IgZXhhbXBsZSwgaW4gYSBmaW5hbGx5CisgICAgICogYmxvY2spLjxwPiAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhY3F1aXJlV3JpdGUoKSB7CisgICAgICAgIGlmICghZ2V0V3JpdGUoKSkgeworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAod3JpdGVMb2NrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUxvY2sud2FpdCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXRyeVdyaXRlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlJlbGVhc2UgdGhlIHdyaXRlIGxvY2sgYW5kIHJldHVybi4gIEFuIGVycm9yIHdpbGwgYmUgdGhyb3duCisgICAgICogaWYgdGhlIHdyaXRlIGxvY2sgaXMgbm90IGN1cnJlbnRseSBoZWxkLjwvcD4KKyAgICAgKgorICAgICAqIDxwPklmIHRoZXJlIGFyZSB3YWl0aW5nIHJlYWRlcnMsIG1ha2UgdGhlbSBhbGwgYWN0aXZlIGFuZAorICAgICAqIG5vdGlmeSBhbGwgb2YgdGhlbS4gIE90aGVyd2lzZSwgbm90aWZ5IHRoZSBvbGRlc3Qgd2FpdGluZworICAgICAqIHdyaXRlciwgaWYgYW55LiAgQ2FsbCB3aGVuIGZpbmlzaGVkIHdpdGggd29yayBjb250cm9sbGVkIGJ5CisgICAgICogYWNxdWlyZVdyaXRlLjwvcD4gCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVsZWFzZVdyaXRlKCkgeworICAgICAgICBzd2l0Y2ggKGZpbmlzaFdyaXRlKCkpIHsKKyAgICAgICAgY2FzZSBOT1RJRllfV1JJVEVSUzoKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAod3JpdGVMb2NrKSB7CisgICAgICAgICAgICAgICAgd3JpdGVMb2NrLm5vdGlmeSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTk9USUZZX1JFQURFUlM6CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHJlYWRMb2NrKSB7CisgICAgICAgICAgICAgICAgcmVhZExvY2subm90aWZ5QWxsKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOT1RJRllfTk9ORToKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjNkZmRiNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlLmphdmEKQEAgLTAsMCArMSwxMjMwIEBACisvLyMjaGVhZGVyCisvKgorCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgKiBvdGhlcnMuCisKKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICoKKyAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlNvZnRSZWZlcmVuY2U7CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworLy8jZWxzZQorLy8jI2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkJ5dGVCdWZmZXI7CisvLyNlbmRpZgoraW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVVJMSGFuZGxlci5VUkxWaXNpdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU3RyaW5nVG9rZW5pemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgSUNVUmVzb3VyY2VCdW5kbGUgZXh0ZW5kcyBVUmVzb3VyY2VCdW5kbGUgeworICAgIC8qKgorICAgICAqIFRoZSBkYXRhIHBhdGggdG8gYmUgdXNlZCB3aXRoIGdldEJ1bmRsZUluc3RhbmNlIEFQSQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX0RBVEFfUEFUSCA9ICJjb20vaWJtL2ljdS9pbXBsLyI7CisgICAgLyoqCisgICAgICogVGhlIGRhdGEgcGF0aCB0byBiZSB1c2VkIHdpdGggZ2V0QnVuZGxlSW5zdGFuY2UgQVBJCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfQlVORExFID0gImRhdGEvaWN1ZHQiICsgVmVyc2lvbkluZm8uSUNVX0RBVEFfVkVSU0lPTjsKKworICAgIC8qKgorICAgICAqIFRoZSBiYXNlIG5hbWUgb2YgSUNVIGRhdGEgdG8gYmUgdXNlZCB3aXRoIGdldEJ1bmRsZUluc3RhbmNlIEFQSQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX0JBU0VfTkFNRSA9IElDVV9EQVRBX1BBVEggKyBJQ1VfQlVORExFOworCisgICAgLyoqCisgICAgICogVGhlIGJhc2UgbmFtZSBvZiBjb2xsYXRpb24gZGF0YSB0byBiZSB1c2VkIHdpdGggZ2V0QnVuZGxlSW5zdGFuY2UgQVBJCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfQ09MTEFUSU9OX0JBU0VfTkFNRSA9IElDVV9CQVNFX05BTUUgKyAiL2NvbGwiOworCisgICAgLyoqCisgICAgICogVGhlIGJhc2UgbmFtZSBvZiByYm5mIGRhdGEgdG8gYmUgdXNlZCB3aXRoIGdldEJ1bmRsZUluc3RhbmNlIEFQSQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX1JCTkZfQkFTRV9OQU1FID0gSUNVX0JBU0VfTkFNRSArICIvcmJuZiI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgYmFzZSBuYW1lIG9mIHRyYW5zbGl0ZXJhdG9yIGRhdGEgdG8gYmUgdXNlZCB3aXRoIGdldEJ1bmRsZUluc3RhbmNlIEFQSQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX1RSQU5TTElUX0JBU0VfTkFNRSA9IElDVV9CQVNFX05BTUUgKyAiL3RyYW5zbGl0IjsKKworICAgIC8qKgorICAgICAqIFRoZSBjbGFzcyBsb2FkZXIgY29uc3RhbnQgdG8gYmUgdXNlZCB3aXRoIGdldEJ1bmRsZUluc3RhbmNlIEFQSQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDbGFzc0xvYWRlciBJQ1VfREFUQV9DTEFTU19MT0FERVI7CisgICAgc3RhdGljIHsKKyAgICAgICAgQ2xhc3NMb2FkZXIgbG9hZGVyID0gSUNVRGF0YS5jbGFzcy5nZXRDbGFzc0xvYWRlcigpOworICAgICAgICBpZiAobG9hZGVyID09IG51bGwpIHsgLy8gYm9vdCBjbGFzcyBsb2FkZXIKKyAgICAgICAgICAgIGxvYWRlciA9IENsYXNzTG9hZGVyLmdldFN5c3RlbUNsYXNzTG9hZGVyKCk7CisgICAgICAgIH0KKyAgICAgICAgSUNVX0RBVEFfQ0xBU1NfTE9BREVSID0gbG9hZGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBjb250YWluaW5nIHRoZSBpbnN0YWxsZWQgbG9jYWxlcworICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBTdHJpbmcgSU5TVEFMTEVEX0xPQ0FMRVMgPSAiSW5zdGFsbGVkTG9jYWxlcyI7CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZSB0eXBlIGNvbnN0YW50IGZvciAibm8gcmVzb3VyY2UiLgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9ORSA9IC0xOworCisgICAgLyoqCisgICAgICogUmVzb3VyY2UgdHlwZSBjb25zdGFudCBmb3Igc3RyaW5ncy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUUklORyA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZSB0eXBlIGNvbnN0YW50IGZvciBiaW5hcnkgZGF0YS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJJTkFSWSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZSB0eXBlIGNvbnN0YW50IGZvciB0YWJsZXMgb2Yga2V5LXZhbHVlIHBhaXJzLgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFCTEUgPSAyOworCisgICAgLyoqCisgICAgICogUmVzb3VyY2UgdHlwZSBjb25zdGFudCBmb3IgYWxpYXNlczsKKyAgICAgKiBpbnRlcm5hbGx5IHN0b3JlcyBhIHN0cmluZyB3aGljaCBpZGVudGlmaWVzIHRoZSBhY3R1YWwgcmVzb3VyY2UKKyAgICAgKiBzdG9yaW5nIHRoZSBkYXRhIChjYW4gYmUgaW4gYSBkaWZmZXJlbnQgcmVzb3VyY2UgYnVuZGxlKS4KKyAgICAgKiBSZXNvbHZlZCBpbnRlcm5hbGx5IGJlZm9yZSBkZWxpdmVyaW5nIHRoZSBhY3R1YWwgcmVzb3VyY2UgdGhyb3VnaCB0aGUgQVBJLgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgQUxJQVMgPSAzOworCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgdXNlIG9ubHkuCisgICAgICogQWx0ZXJuYXRpdmUgcmVzb3VyY2UgdHlwZSBjb25zdGFudCBmb3IgdGFibGVzIG9mIGtleS12YWx1ZSBwYWlycy4KKyAgICAgKiBOZXZlciByZXR1cm5lZCBieSBnZXRUeXBlKCkuCisgICAgICogQGludGVybmFsCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBUQUJMRTMyID0gNDsKKworICAgIC8qKgorICAgICAqIFJlc291cmNlIHR5cGUgY29uc3RhbnQgZm9yIGEgc2luZ2xlIDI4LWJpdCBpbnRlZ2VyLCBpbnRlcnByZXRlZCBhcworICAgICAqIHNpZ25lZCBvciB1bnNpZ25lZCBieSB0aGUgZ2V0SW50KCkgZnVuY3Rpb24uCisgICAgICogQHNlZSAjZ2V0SW50CisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlQgPSA3OworCisgICAgLyoqCisgICAgICogUmVzb3VyY2UgdHlwZSBjb25zdGFudCBmb3IgYXJyYXlzIG9mIHJlc291cmNlcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFSUkFZID0gODsKKworICAgIC8qKgorICAgICAqIFJlc291cmNlIHR5cGUgY29uc3RhbnQgZm9yIHZlY3RvcnMgb2YgMzItYml0IGludGVnZXJzLgorICAgICAqIEBzZWUgI2dldEludFZlY3RvcgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5UX1ZFQ1RPUiA9IDE0OworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlJPTV9GQUxMQkFDSyA9IDEsIEZST01fUk9PVCA9IDIsIEZST01fREVGQVVMVCA9IDMsIEZST01fTE9DQUxFID0gNDsKKworICAgIHByaXZhdGUgaW50IGxvYWRpbmdTdGF0dXMgPSAtMTsKKworICAgIHB1YmxpYyB2b2lkIHNldExvYWRpbmdTdGF0dXMoaW50IG5ld1N0YXR1cykgeworICAgICAgICBsb2FkaW5nU3RhdHVzID0gbmV3U3RhdHVzOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2FkaW5nIHN0YXR1cyBvZiBhIHBhcnRpY3VsYXIgcmVzb3VyY2UuIAorICAgICAqIAorICAgICAqIEByZXR1cm4gRlJPTV9GQUxMQkFDSyBpZiB0aGUgcmVzb3VyY2UgaXMgZmV0Y2hlZCBmcm9tIGZhbGxiYWNrIGJ1bmRsZQorICAgICAqICAgICAgICAgRlJPTV9ST09UIGlmIHRoZSByZXNvdXJjZSBpcyBmZXRjaGVkIGZyb20gcm9vdCBidW5kbGUuCisgICAgICogICAgICAgICBGUk9NX0RFRkFVTFQgaWYgdGhlIHJlc291cmNlIGlzIGZldGNoZWQgZnJvbSB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRMb2FkaW5nU3RhdHVzKCkgeworCisgICAgICAgIHJldHVybiBsb2FkaW5nU3RhdHVzOworCisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5vRmFsbGJhY2sgZmxhZyBzcGVjaWZpZWQgaW4gdGhlIGxvYWRlZCBidW5kbGUuCisgICAgICogQHJldHVybiBUaGUgbm9GYWxsYmFjayBmbGFnLgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIGdldE5vRmFsbGJhY2soKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHZlcnNpb24gbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIFVSZXNvdXJjZUJ1bmRsZSBhcyBhbgorICAgICAqIFZlcnNpb25JbmZvIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIFZlcnNpb25JbmZvIG9iamVjdCBjb250YWluaW5nIHRoZSB2ZXJzaW9uIG9mIHRoZSBidW5kbGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBWZXJzaW9uSW5mbyBnZXRWZXJzaW9uKCkgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIGZyb20gYSBzdHJpbmcgcmVzb3VyY2UgdHlwZQorICAgICAqCisgICAgICogQHJldHVybiBhIHN0cmluZworICAgICAqIEBzZWUgI2dldEJpbmFyeQorICAgICAqIEBzZWUgI2dldEludFZlY3RvcgorICAgICAqIEBzZWUgI2dldEludAorICAgICAqIEB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogQHRocm93cyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKCkgeworICAgICAgICB0aHJvdyBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uKCIiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRTdHJpbmdBcnJheSgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyBmcm9tIGEgc3RyaW5nIHJlc291cmNlIHR5cGUKKyAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgd2hvc2UgdmFsdWVzIG5lZWRzIHRvIGJlIGZldGNoZWQKKyAgICAgKiBAcmV0dXJuIGEgc3RyaW5nCisgICAgICogQHNlZSAjZ2V0QmluYXJ5CisgICAgICogQHNlZSAjZ2V0SW50VmVjdG9yCisgICAgICogQHNlZSAjZ2V0SW50CisgICAgICogQHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiBAdGhyb3dzIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgLy8gIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKFN0cmluZyBrZXkpIHsKKyAgICAvLyAgICAgIHRocm93IG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oIiIpOworICAgIC8vICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgYmluYXJ5IGRhdGEgZnJvbSBhIGJpbmFyeSByZXNvdXJjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYSBwb2ludGVyIHRvIGEgY2h1Y2sgb2YgdW5zaWduZWQgYnl0ZXMgd2hpY2ggbGl2ZSBpbiBhIG1lbW9yeSBtYXBwZWQvRExMIGZpbGUuCisgICAgICogQHNlZSAjZ2V0SW50VmVjdG9yCisgICAgICogQHNlZSAjZ2V0SW50CisgICAgICogQHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiBAdGhyb3dzIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIEJ5dGVCdWZmZXIgZ2V0QmluYXJ5KCkgeworICAgICAgICB0aHJvdyBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uKCIiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgMzIgYml0IGludGVnZXIgYXJyYXkgZnJvbSBhIHJlc291cmNlLgorICAgICAqCisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBjaHVuayBvZiB1bnNpZ25lZCBieXRlcyB3aGljaCBsaXZlIGluIGEgbWVtb3J5IG1hcHBlZC9ETEwgZmlsZS4KKyAgICAgKiBAc2VlICNnZXRCaW5hcnkKKyAgICAgKiBAc2VlICNnZXRJbnQKKyAgICAgKiBAdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50W10gZ2V0SW50VmVjdG9yKCkgeworICAgICAgICB0aHJvdyBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uKCIiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc2lnbmVkIGludGVnZXIgZnJvbSBhIHJlc291cmNlLgorICAgICAqCisgICAgICogQHJldHVybiBhbiBpbnRlZ2VyIHZhbHVlCisgICAgICogQHNlZSAjZ2V0SW50VmVjdG9yCisgICAgICogQHNlZSAjZ2V0QmluYXJ5CisgICAgICogQHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiBAdGhyb3dzIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW50KCkgeworICAgICAgICB0aHJvdyBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uKCIiKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdW5zaWduZWQgaW50ZWdlciBmcm9tIGEgcmVzb3VyY2UuCisgICAgICogVGhpcyBpbnRlZ2VyIGlzIG9yaWdpbmFsbHkgMjggYml0IGFuZCB0aGUgc2lnbiBnZXRzIHByb3BhZ2F0ZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFuIGludGVnZXIgdmFsdWUKKyAgICAgKiBAc2VlICNnZXRJbnRWZWN0b3IKKyAgICAgKiBAc2VlICNnZXRCaW5hcnkKKyAgICAgKiBAdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqIEB0aHJvd3MgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRVSW50KCkgeworICAgICAgICB0aHJvdyBuZXcgVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uKCIiKTsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2l6ZSBvZiBhIHJlc291cmNlLiBTaXplIGZvciBzY2FsYXIgdHlwZXMgaXMgYWx3YXlzIDEsCisgICAgICogYW5kIGZvciB2ZWN0b3IvdGFibGUgdHlwZXMgaXMgdGhlIG51bWJlciBvZiBjaGlsZCByZXNvdXJjZXMuCisgICAgICogPGJyPjxiPjxmb250IGNvbG9yPSdyZWQnPldhcm5pbmc6IDwvZm9udD48L2I+IEludGVnZXIgYXJyYXkgaXMgdHJlYXRlZCBhcyBhIHNjYWxhciB0eXBlLiBUaGVyZSBhcmUgbm8KKyAgICAgKiAgICAgICAgICBBUElzIHRvIGFjY2VzcyBpbmRpdmlkdWFsIG1lbWJlcnMgb2YgYW4gaW50ZWdlciBhcnJheS4gSXQKKyAgICAgKiAgICAgICAgICBpcyBhbHdheXMgcmV0dXJuZWQgYXMgYSB3aG9sZS4KKyAgICAgKiBAcmV0dXJuIG51bWJlciBvZiByZXNvdXJjZXMgaW4gYSBnaXZlbiByZXNvdXJjZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U2l6ZSgpIHsKKyAgICAgICAgcmV0dXJuIHNpemU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdHlwZSBvZiBhIHJlc291cmNlLgorICAgICAqIEF2YWlsYWJsZSB0eXBlcyBhcmUge0BsaW5rICNJTlQgSU5UfSwge0BsaW5rICNBUlJBWSBBUlJBWX0sCisgICAgICoge0BsaW5rICNCSU5BUlkgQklOQVJZfSwge0BsaW5rICNJTlRfVkVDVE9SIElOVF9WRUNUT1J9LAorICAgICAqIHtAbGluayAjU1RSSU5HIFNUUklOR30sIHtAbGluayAjVEFCTEUgVEFCTEV9LgorICAgICAqCisgICAgICogQHJldHVybiB0eXBlIG9mIHRoZSBnaXZlbiByZXNvdXJjZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VHlwZSgpIHsKKyAgICAgICAgaW50IHR5cGUgPSBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwuUkVTX0dFVF9UWVBFKHJlc291cmNlKTsKKyAgICAgICAgaWYodHlwZT09VEFCTEUzMil7CisgICAgICAgICAgICByZXR1cm4gVEFCTEU7IC8vTWFzayB0aGUgdGFibGUzMidzIHJlYWwgdHlwZQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0eXBlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGtleSBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiByZXNvdXJjZS4gTm90IGFsbCB0aGUgcmVzb3VyY2VzIGhhdmUgYSBrZXkgLSBvbmx5CisgICAgICogdGhvc2UgdGhhdCBhcmUgbWVtYmVycyBvZiBhIHRhYmxlLgorICAgICAqIEByZXR1cm4gYSBrZXkgYXNzb2NpYXRlZCB0byB0aGlzIHJlc291cmNlLCBvciBOVUxMIGlmIGl0IGRvZXNuJ3QgaGF2ZSBhIGtleQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRLZXkoKSB7CisgICAgICAgIHJldHVybiBrZXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaXRlcmF0b3Igd2hpY2ggaXRlcmF0ZXMgb3ZlciB0aGlzCisgICAgICogcmVzb3VyY2UgYnVuZGxlCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvciBnZXRJdGVyYXRvcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBJQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yKHRoaXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHJlc291cmNlIGluIGEgZ2l2ZW4gcmVzb3VyY2UgYXQgdGhlIHNwZWNpZmllZCBpbmRleC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleCAgICAgICAgICAgICBhbiBpbmRleCB0byB0aGUgd2FudGVkIHJlc291cmNlLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgICAgICB0aGUgc3ViIHJlc291cmNlIFVSZXNvdXJjZUJ1bmRsZSBvYmplY3QKKyAgICAgKiBAdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBnZXQoaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiBnZXRJbXBsKGluZGV4LCBudWxsLCB0aGlzKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGdldEltcGwoaW50IGluZGV4LCBIYXNoTWFwIHRhYmxlLAorICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIG9iaiA9IGhhbmRsZUdldChpbmRleCwgdGFibGUsIHJlcXVlc3RlZCk7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCkgeworICAgICAgICAgICAgb2JqID0gKElDVVJlc291cmNlQnVuZGxlKSBnZXRQYXJlbnQoKTsKKyAgICAgICAgICAgIGlmIChvYmogIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG9iaiA9IG9iai5nZXRJbXBsKGluZGV4LCB0YWJsZSwgcmVxdWVzdGVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChvYmogPT0gbnVsbCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgIkNhbid0IGZpbmQgcmVzb3VyY2UgZm9yIGJ1bmRsZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdGhpcy5nZXRDbGFzcygpLmdldE5hbWUoKSArICIsIGtleSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZ2V0S2V5KCksIHRoaXMuZ2V0Q2xhc3MoKS5nZXROYW1lKCksIGdldEtleSgpKTsKKyAgICAgICAgfQorICAgICAgICBzZXRMb2FkaW5nU3RhdHVzKG9iaiwgcmVxdWVzdGVkLmdldExvY2FsZUlEKCkpOworICAgICAgICByZXR1cm4gb2JqOworICAgIH0KKyAgICAvLyBhYnN0cmFjdCBVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0SW50KGludCBpbmRleCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcmVzb3VyY2UgaW4gYSBnaXZlbiByZXNvdXJjZSB0aGF0IGhhcyBhIGdpdmVuIGtleS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkgICAgICAgICAgICAgICBhIGtleSBhc3NvY2lhdGVkIHdpdGggdGhlIHdhbnRlZCByZXNvdXJjZQorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgICAgICBhIHJlc291cmNlIGJ1bmRsZSBvYmplY3QgcmVwcmVzZW50aW5nIHJoZSByZXNvdXJjZQorICAgICAqIEB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGUgZ2V0KFN0cmluZyBrZXkpIHsKKyAgICAgICAgcmV0dXJuIGdldEltcGwoa2V5LCBudWxsLCB0aGlzKTsKKyAgICB9CisgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGdldEltcGwoU3RyaW5nIGtleSwgSGFzaE1hcCB0YWJsZSwKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBvYmogPSBoYW5kbGVHZXQoa2V5LCB0YWJsZSwgcmVxdWVzdGVkKTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSB7CisgICAgICAgICAgICBvYmogPSAoSUNVUmVzb3VyY2VCdW5kbGUpIGdldFBhcmVudCgpOworICAgICAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy9jYWxsIHRoZSBnZXQgbWV0aG9kIHRvIHJlY3Vyc2l2ZWx5IGZldGNoIHRoZSByZXNvdXJjZQorICAgICAgICAgICAgICAgIG9iaiA9IG9iai5nZXRJbXBsKGtleSwgdGFibGUsIHJlcXVlc3RlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAob2JqID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZnVsbE5hbWUgPSBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5nZXRGdWxsTmFtZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGdldEJhc2VOYW1lKCksIGdldExvY2FsZUlEKCkpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAiQ2FuJ3QgZmluZCByZXNvdXJjZSBmb3IgYnVuZGxlICIgKyBmdWxsTmFtZSArICIsIGtleSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsga2V5LCB0aGlzLmdldENsYXNzKCkuZ2V0TmFtZSgpLCBrZXkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNldExvYWRpbmdTdGF0dXMob2JqLCByZXF1ZXN0ZWQuZ2V0TG9jYWxlSUQoKSk7CisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBzZXRMb2FkaW5nU3RhdHVzKElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSwgU3RyaW5nIHJlcXVlc3RlZExvY2FsZSl7CisgICAgICAgU3RyaW5nIGxvY2FsZSA9IGJ1bmRsZS5nZXRMb2NhbGVJRCgpOyAKKyAgICAgICBpZihsb2NhbGUuZXF1YWxzKCJyb290IikpeworICAgICAgICAgICBidW5kbGUuc2V0TG9hZGluZ1N0YXR1cyhGUk9NX1JPT1QpOworICAgICAgICAgICByZXR1cm47CisgICAgICAgfQorICAgICAgIGlmKGxvY2FsZS5lcXVhbHMocmVxdWVzdGVkTG9jYWxlKSl7CisgICAgICAgICAgIGJ1bmRsZS5zZXRMb2FkaW5nU3RhdHVzKEZST01fTE9DQUxFKTsKKyAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgYnVuZGxlLnNldExvYWRpbmdTdGF0dXMoRlJPTV9GQUxMQkFDSyk7CisgICAgICAgfQorICAgIH0gCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc3RyaW5nIGluIGEgZ2l2ZW4gcmVzb3VyY2UgYXQgdGhlIHNwZWNpZmllZCBpbmRleC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleCAgICAgICAgICAgIGFuIGluZGV4IHRvIHRoZSB3YW50ZWQgc3RyaW5nLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgICAgICBhIHN0cmluZyB3aGljaCBsaXZlcyBpbiB0aGUgcmVzb3VyY2UuCisgICAgICogQHRocm93cyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uCisgICAgICogQHRocm93cyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nKGludCBpbmRleCkgeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0ZW1wID0gZ2V0KGluZGV4KTsKKyAgICAgICAgaWYgKHRlbXAuZ2V0VHlwZSgpID09IFNUUklORykgeworICAgICAgICAgICAgcmV0dXJuIHRlbXAuZ2V0U3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcGFyZW50IGJ1bmRsZSBvZiB0aGlzIGJ1bmRsZQorICAgICAqIEByZXR1cm4gVVJlc291cmNlQnVuZGxlIHRoZSBwYXJlbnQgb2YgdGhpcyBidW5kbGUuIFJldHVybnMgbnVsbCBpZiBub25lCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlIGlkIG9mIHRoaXMgYnVuZGxlIGFzIFN0cmluZworICAgICAqIEByZXR1cm4gU3RyaW5nIGxvY2FsZSBpZCAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBTdHJpbmcgZ2V0TG9jYWxlSUQoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudCBsb2NhbGUsIGNvbnNpZGVyaW5nIGtleXdvcmRzIGFzIHdlbGwsIGZvciB0aGUgc3BlY2lmaWVkIGtleXdvcmQuCisgICAgICogQHBhcmFtIGJhc2VOYW1lIHJlc291cmNlIHNwZWNpZmllcgorICAgICAqIEBwYXJhbSByZXNOYW1lIHRvcCBsZXZlbCByZXNvdXJjZSB0byBjb25zaWRlciAoc3VjaCBhcyAiY29sbGF0aW9ucyIpCisgICAgICogQHBhcmFtIGtleXdvcmQgYSBwYXJ0aWN1bGFyIGtleXdvcmQgdG8gY29uc2lkZXIgKHN1Y2ggYXMgImNvbGxhdGlvbiIgKQorICAgICAqIEBwYXJhbSBsb2NJRCBUaGUgcmVxdWVzdGVkIGxvY2FsZQorICAgICAqIEBwYXJhbSBmaWxsaW5Jc0F2YWlsYWJsZSBJZiBub24tbnVsbCwgMS1lbGVtZW50IGFycmF5IG9mIGZpbGxpbiBwYXJhbWV0ZXIgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUKKyAgICAgKiByZXF1ZXN0ZWQgbG9jYWxlIHdhcyBhdmFpbGFibGUuIFRoZSBsb2NhbGUgaXMgZGVmaW5lZCBhcyAnYXZhaWxhYmxlJyBpZiBpdCBwaHlzaWNhbGx5CisgICAgICogZXhpc3RzIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRyZWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlCisgICAgICogQGludGVybmFsIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoU3RyaW5nIGJhc2VOYW1lLAorICAgICAgICAgICAgU3RyaW5nIHJlc05hbWUsIFN0cmluZyBrZXl3b3JkLCBVTG9jYWxlIGxvY0lELAorICAgICAgICAgICAgYm9vbGVhbiBmaWxsaW5Jc0F2YWlsYWJsZVtdKSB7CisgICAgICAgIFN0cmluZyBrd1ZhbCA9IGxvY0lELmdldEtleXdvcmRWYWx1ZShrZXl3b3JkKTsKKyAgICAgICAgU3RyaW5nIGJhc2VMb2MgPSBsb2NJRC5nZXRCYXNlTmFtZSgpOworICAgICAgICBTdHJpbmcgZGVmU3RyID0gbnVsbDsKKyAgICAgICAgVUxvY2FsZSBwYXJlbnQgPSBuZXcgVUxvY2FsZShiYXNlTG9jKTsKKyAgICAgICAgVUxvY2FsZSBmb3VuZCA9IGxvY0lEOworICAgICAgICBVTG9jYWxlIGRlZkxvYyA9IG51bGw7IC8vIGxvY2FsZSB3aGVyZSBkZWZhdWx0IChmb3VuZCkgcmVzb3VyY2UgaXMKKyAgICAgICAgYm9vbGVhbiBsb29rRm9yRGVmYXVsdCA9IGZhbHNlOyAvLyB0cnVlIGlmIGt3VmFsIG5lZWRzIHRvIGJlIHNldAorICAgICAgICBVTG9jYWxlIGZ1bGxCYXNlID0gbnVsbDsgLy8gYmFzZSBsb2NhbGUgb2YgZm91bmQgKHRhcmdldCkgcmVzb3VyY2UKKyAgICAgICAgaW50IGRlZkRlcHRoID0gMDsgLy8gZGVwdGggb2YgJ2RlZmF1bHQnIG1hcmtlcgorICAgICAgICBpbnQgcmVzRGVwdGggPSAwOyAvLyBkZXB0aCBvZiBmb3VuZCByZXNvdXJjZTsKKyAgICAgICAgaWYgKGZpbGxpbklzQXZhaWxhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZpbGxpbklzQXZhaWxhYmxlWzBdID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgoa3dWYWwgPT0gbnVsbCkgfHwgKGt3VmFsLmxlbmd0aCgpID09IDApCisgICAgICAgICAgICAgICAgfHwga3dWYWwuZXF1YWxzKERFRkFVTFRfVEFHKSkgeworICAgICAgICAgICAga3dWYWwgPSAiIjsgLy8gZGVmYXVsdCB0YWcgaXMgdHJlYXRlZCBhcyBubyBrZXl3b3JkCisgICAgICAgICAgICBsb29rRm9yRGVmYXVsdCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayB0b3AgbGV2ZWwgbG9jYWxlIGZpcnN0CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHIgPSBudWxsOworCisgICAgICAgIHIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgcGFyZW50KTsKKyAgICAgICAgZm91bmQgPSByLmdldFVMb2NhbGUoKTsKKyAgICAgICAgaWYgKGZpbGxpbklzQXZhaWxhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghZm91bmQuZXF1YWxzKHBhcmVudCkpIHsKKyAgICAgICAgICAgICAgICBmaWxsaW5Jc0F2YWlsYWJsZVswXSA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGRldGVybWluZSBpbiB3aGljaCBsb2NhbGUgKGlmIGFueSkgdGhlIGN1cnJlbnRseSByZWxldmFudCAnZGVmYXVsdCcgaXMKKyAgICAgICAgZG8geworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBpcmIgPSByLmdldChyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICBkZWZTdHIgPSBpcmIuZ2V0U3RyaW5nKERFRkFVTFRfVEFHKTsKKyAgICAgICAgICAgICAgICBpZiAobG9va0ZvckRlZmF1bHQgPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICBrd1ZhbCA9IGRlZlN0cjsKKyAgICAgICAgICAgICAgICAgICAgbG9va0ZvckRlZmF1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVmTG9jID0gci5nZXRVTG9jYWxlKCk7CisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gdCkgeworICAgICAgICAgICAgICAgIC8vIElnbm9yZSBlcnJvciBhbmQgY29udGludWUgc2VhcmNoLgorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRlZkxvYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgciA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgci5nZXRQYXJlbnQoKTsKKyAgICAgICAgICAgICAgICBkZWZEZXB0aCsrOworICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlICgociAhPSBudWxsKSAmJiAoZGVmTG9jID09IG51bGwpKTsKKworICAgICAgICAvLyBOb3csIHNlYXJjaCBmb3IgdGhlIG5hbWVkIHJlc291cmNlCisgICAgICAgIHBhcmVudCA9IG5ldyBVTG9jYWxlKGJhc2VMb2MpOworICAgICAgICByID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIHBhcmVudCk7CisgICAgICAgIC8vIGRldGVybWluZSBpbiB3aGljaCBsb2NhbGUgKGlmIGFueSkgdGhlIG5hbWVkIHJlc291cmNlIGlzIGxvY2F0ZWQKKyAgICAgICAgZG8geworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBpcmIgPSByLmdldChyZXNOYW1lKTsKKyAgICAgICAgICAgICAgICAvKiBVUmVzb3VyY2VCdW5kbGUgdXJiID0gKi9pcmIuZ2V0KGt3VmFsKTsKKyAgICAgICAgICAgICAgICBmdWxsQmFzZSA9IGlyYi5nZXRVTG9jYWxlKCk7IAorICAgICAgICAgICAgICAgIC8vIElmIHRoZSBnZXQoKSBjb21wbGV0ZWQsIHdlIGhhdmUgdGhlIGZ1bGwgYmFzZSBsb2NhbGUKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSBmZWxsIGJhY2sgdG8gYW4gYW5jZXN0b3Igb2YgdGhlIG9sZCAnZGVmYXVsdCcsCisgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byByZSBjYWxjdWxhdGUgdGhlICJkZWZhdWx0IiBrZXl3b3JkLgorICAgICAgICAgICAgICAgIGlmICgoZnVsbEJhc2UgIT0gbnVsbCkgJiYgKChyZXNEZXB0aCkgPiBkZWZEZXB0aCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVmU3RyID0gaXJiLmdldFN0cmluZyhERUZBVUxUX1RBRyk7CisgICAgICAgICAgICAgICAgICAgIGRlZkxvYyA9IHIuZ2V0VUxvY2FsZSgpOworICAgICAgICAgICAgICAgICAgICBkZWZEZXB0aCA9IHJlc0RlcHRoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB0KSB7CisgICAgICAgICAgICAgICAgLy8gSWdub3JlIGVycm9yLAorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZ1bGxCYXNlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByID0gKElDVVJlc291cmNlQnVuZGxlKSByLmdldFBhcmVudCgpOworICAgICAgICAgICAgICAgIHJlc0RlcHRoKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKChyICE9IG51bGwpICYmIChmdWxsQmFzZSA9PSBudWxsKSk7CisKKyAgICAgICAgaWYgKGZ1bGxCYXNlID09IG51bGwgJiYgLy8gQ291bGQgbm90IGZpbmQgcmVzb3VyY2UgJ2t3VmFsJworICAgICAgICAgICAgICAgIChkZWZTdHIgIT0gbnVsbCkgJiYgLy8gZGVmYXVsdCB3YXMgZGVmaW5lZAorICAgICAgICAgICAgICAgICFkZWZTdHIuZXF1YWxzKGt3VmFsKSkgeyAvLyBrd1ZhbCBpcyBub3QgZGVmYXVsdAorICAgICAgICAgICAgLy8gY291bGRuJ3QgZmluZCByZXF1ZXN0ZWQgcmVzb3VyY2UuIEZhbGwgYmFjayB0byBkZWZhdWx0LgorICAgICAgICAgICAga3dWYWwgPSBkZWZTdHI7IC8vIEZhbGwgYmFjayB0byBkZWZhdWx0LgorICAgICAgICAgICAgcGFyZW50ID0gbmV3IFVMb2NhbGUoYmFzZUxvYyk7CisgICAgICAgICAgICByID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIHBhcmVudCk7CisgICAgICAgICAgICByZXNEZXB0aCA9IDA7CisgICAgICAgICAgICAvLyBkZXRlcm1pbmUgaW4gd2hpY2ggbG9jYWxlIChpZiBhbnkpIHRoZSBuYW1lZCByZXNvdXJjZSBpcyBsb2NhdGVkCisgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgaXJiID0gci5nZXQocmVzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSB1cmIgPSBpcmIuZ2V0KGt3VmFsKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIGRpZG4ndCBmYWlsIGJlZm9yZSB0aGlzLi4KKyAgICAgICAgICAgICAgICAgICAgZnVsbEJhc2UgPSByLmdldFVMb2NhbGUoKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBmZXRjaGVkIGl0ZW0gKHVyYikgaXMgaW4gYSBkaWZmZXJlbnQgbG9jYWxlIHRoYW4gb3VyIG91dGVyIGxvY2FsZSAoci9mdWxsQmFzZSkKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3ZSBhcmUgaW4gYSAnZmFsbGJhY2snIHNpdHVhdGlvbi4gdHJlYXQgYXMgYSBtaXNzaW5nIHJlc291cmNlIHNpdHVhdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgaWYoIWZ1bGxCYXNlLnRvU3RyaW5nKCkuZXF1YWxzKHVyYi5nZXRMb2NhbGUoKS50b1N0cmluZygpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZnVsbEJhc2UgPSBudWxsOyAvLyBmYWxsYmFjayBjb25kaXRpb24uIExvb3AgYW5kIHRyeSBhZ2Fpbi4KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGZlbGwgYmFjayB0byBhbiBhbmNlc3RvciBvZiB0aGUgb2xkICdkZWZhdWx0JywKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byByZSBjYWxjdWxhdGUgdGhlICJkZWZhdWx0IiBrZXl3b3JkLgorICAgICAgICAgICAgICAgICAgICBpZiAoKGZ1bGxCYXNlICE9IG51bGwpICYmICgocmVzRGVwdGgpID4gZGVmRGVwdGgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZTdHIgPSBpcmIuZ2V0U3RyaW5nKERFRkFVTFRfVEFHKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZkxvYyA9IHIuZ2V0VUxvY2FsZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgZGVmRGVwdGggPSByZXNEZXB0aDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB0KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSBlcnJvciwgY29udGludWUgc2VhcmNoLgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZnVsbEJhc2UgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByID0gKElDVVJlc291cmNlQnVuZGxlKSByLmdldFBhcmVudCgpOworICAgICAgICAgICAgICAgICAgICByZXNEZXB0aCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gd2hpbGUgKChyICE9IG51bGwpICYmIChmdWxsQmFzZSA9PSBudWxsKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZnVsbEJhc2UgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiQ291bGQgbm90IGZpbmQgbG9jYWxlIGNvbnRhaW5pbmcgcmVxdWVzdGVkIG9yIGRlZmF1bHQga2V5d29yZC4iLAorICAgICAgICAgICAgICAgIGJhc2VOYW1lLCBrZXl3b3JkICsgIj0iICsga3dWYWwpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRlZlN0ci5lcXVhbHMoa3dWYWwpIC8vIGlmIGRlZmF1bHQgd2FzIHJlcXVlc3RlZCBhbmQKKyAgICAgICAgICAgICYmIHJlc0RlcHRoIDw9IGRlZkRlcHRoKSB7IC8vIGRlZmF1bHQgd2FzIHNldCBpbiBzYW1lIGxvY2FsZSBvciBjaGlsZAorICAgICAgICAgICAgcmV0dXJuIGZ1bGxCYXNlOyAvLyBLZXl3b3JkIHZhbHVlIGlzIGRlZmF1bHQgLSBubyBrZXl3b3JkIG5lZWRlZCBpbiBsb2NhbGUKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgVUxvY2FsZShmdWxsQmFzZS50b1N0cmluZygpICsgIkAiICsga2V5d29yZCArICI9IiArIGt3VmFsKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgdHJlZSBwYXRoIGFuZCBrZXl3b3JkLCByZXR1cm4gYSBzdHJpbmcgZW51bWVyYXRpb24gb2YgYWxsIHBvc3NpYmxlIHZhbHVlcyBmb3IgdGhhdCBrZXl3b3JkLgorICAgICAqIEBwYXJhbSBiYXNlTmFtZSByZXNvdXJjZSBzcGVjaWZpZXIKKyAgICAgKiBAcGFyYW0ga2V5d29yZCBhIHBhcnRpY3VsYXIga2V5d29yZCB0byBjb25zaWRlciwgbXVzdCBtYXRjaCBhIHRvcCBsZXZlbCByZXNvdXJjZSBuYW1lCisgICAgICogd2l0aGluIHRoZSB0cmVlLiAoaS5lLiAiY29sbGF0aW9ucyIpCisgICAgICogQGludGVybmFsIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGdldEtleXdvcmRWYWx1ZXMoU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcga2V5d29yZCkgeworICAgICAgICBTZXQga2V5d29yZHMgPSBuZXcgSGFzaFNldCgpOworICAgICAgICBVTG9jYWxlIGxvY2FsZXNbXSA9IGNyZWF0ZVVMb2NhbGVMaXN0KGJhc2VOYW1lLCBJQ1VfREFUQV9DTEFTU19MT0FERVIpOworICAgICAgICBpbnQgaTsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYiA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbG9jYWxlc1tpXSk7CisgICAgICAgICAgICAgICAgLy8gZG93bmNhc3QgdG8gSUNVUmVzb3VyY2VCdW5kbGU/CisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgaXJiID0gKElDVVJlc291cmNlQnVuZGxlKSAoYi5nZXRPYmplY3Qoa2V5d29yZCkpOworICAgICAgICAgICAgICAgIEVudW1lcmF0aW9uIGUgPSBpcmIuZ2V0S2V5cygpOworICAgICAgICAgICAgICAgIE9iamVjdCBzOworICAgICAgICAgICAgICAgIHdoaWxlIChlLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgICAgIHMgPSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICgocyBpbnN0YW5jZW9mIFN0cmluZykgJiYgIURFRkFVTFRfVEFHLmVxdWFscyhzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3QgYWRkICdkZWZhdWx0JyBpdGVtcworICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZHMuYWRkKHMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5lcnIucHJpbnRsbigiRXJyb3IgaW4gLSAiICsgbmV3IEludGVnZXIoaSkudG9TdHJpbmcoKQorICAgICAgICAgICAgICAgIC8vICsgIiAtICIgKyB0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIC8vIGlnbm9yZSB0aGUgZXJyIC0ganVzdCBza2lwIHRoYXQgcmVzb3VyY2UKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKFN0cmluZ1tdKWtleXdvcmRzLnRvQXJyYXkobmV3IFN0cmluZ1swXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcGVyZm9ybXMgbXVsdGlsZXZlbCBmYWxsYmFjayBmb3IgZmV0Y2hpbmcgaXRlbXMgZnJvbSB0aGUKKyAgICAgKiBidW5kbGUgZS5nOiBJZiByZXNvdXJjZSBpcyBpbiB0aGUgZm9ybSBkZV9fUEhPTkVCT09LeyBjb2xsYXRpb25zeworICAgICAqIGRlZmF1bHR7ICJwaG9uZWJvb2sifSB9IH0gSWYgdGhlIHZhbHVlIG9mICJkZWZhdWx0IiBrZXkgbmVlZHMgdG8gYmUKKyAgICAgKiBhY2Nlc3NlZCwgdGhlbiBkbzogPGNvZGU+CisgICAgICogIFVSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoImRlX19QSE9ORUJPT0siKTsKKyAgICAgKiAgSUNVUmVzb3VyY2VCdW5kbGUgcmVzdWx0ID0gbnVsbDsKKyAgICAgKiAgaWYoYnVuZGxlIGluc3RhbmNlb2YgSUNVTGlzdFJlc291cmNlQnVuZGxlKXsKKyAgICAgKiAgICAgIHJlc3VsdCA9ICgoSUNVTGlzdFJlc291cmNlQnVuZGxlKSBidW5kbGUpLmdldFdpdGhGYWxsYmFjaygiY29sbGF0aW9ucy9kZWZhdWx0Iik7CisgICAgICogIH0KKyAgICAgKiA8L2NvZGU+CisgICAgICogCisgICAgICogQHBhcmFtIHBhdGgKKyAgICAgKiAgICAgICAgICAgIFRoZSBwYXRoIHRvIHRoZSByZXF1aXJlZCByZXNvdXJjZSBrZXkKKyAgICAgKiBAcmV0dXJuIHJlc291cmNlIHJlcHJlc2VudGVkIGJ5IHRoZSBrZXkKKyAgICAgKiBAZXhjZXB0aW9uIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBnZXRXaXRoRmFsbGJhY2soU3RyaW5nIHBhdGgpCisgICAgICAgICAgICB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYWN0dWFsQnVuZGxlID0gdGhpczsKKworICAgICAgICAvLyBub3cgcmVjdXNlIHRvIHBpY2sgdXAgc3ViIGxldmVscyBvZiB0aGUgaXRlbXMKKyAgICAgICAgcmVzdWx0ID0gZmluZFJlc291cmNlV2l0aEZhbGxiYWNrKHBhdGgsIGFjdHVhbEJ1bmRsZSwgbnVsbCk7CisKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJDYW4ndCBmaW5kIHJlc291cmNlIGZvciBidW5kbGUgIgorICAgICAgICAgICAgICAgICsgdGhpcy5nZXRDbGFzcygpLmdldE5hbWUoKSArICIsIGtleSAiICsgZ2V0VHlwZSgpLAorICAgICAgICAgICAgICAgIHBhdGgsIGdldEtleSgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIHdpbGwgdGhyb3cgdHlwZSBtaXNtYXRjaCBleGNlcHRpb24gaWYgdGhlIHJlc291cmNlIGlzIG5vdCBhIHN0cmluZworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKFN0cmluZyBwYXRoKSB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGdldFdpdGhGYWxsYmFjayhwYXRoKS5nZXRTdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzZXQgb2YgdGhlIGxvY2FsZSBuYW1lcyBzdXBwb3J0ZWQgYnkgYSBjb2xsZWN0aW9uIG9mIHJlc291cmNlCisgICAgICogYnVuZGxlcy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gYnVuZGxlUHJlZml4IHRoZSBwcmVmaXggb2YgdGhlIHJlc291cmNlIGJ1bmRsZXMgdG8gdXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU2V0IGdldEF2YWlsYWJsZUxvY2FsZU5hbWVTZXQoU3RyaW5nIGJ1bmRsZVByZWZpeCkgeworICAgICAgICByZXR1cm4gZ2V0QXZhaWxFbnRyeShidW5kbGVQcmVmaXgpLmdldExvY2FsZU5hbWVTZXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzZXQgb2YgYWxsIHRoZSBsb2NhbGUgbmFtZXMgc3VwcG9ydGVkIGJ5IGEgY29sbGVjdGlvbiBvZgorICAgICAqIHJlc291cmNlIGJ1bmRsZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTZXQgZ2V0RnVsbExvY2FsZU5hbWVTZXQoKSB7CisgICAgICAgIHJldHVybiBnZXRGdWxsTG9jYWxlTmFtZVNldChJQ1VfQkFTRV9OQU1FKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzZXQgb2YgYWxsIHRoZSBsb2NhbGUgbmFtZXMgc3VwcG9ydGVkIGJ5IGEgY29sbGVjdGlvbiBvZgorICAgICAqIHJlc291cmNlIGJ1bmRsZXMuCisgICAgICogCisgICAgICogQHBhcmFtIGJ1bmRsZVByZWZpeCB0aGUgcHJlZml4IG9mIHRoZSByZXNvdXJjZSBidW5kbGVzIHRvIHVzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFNldCBnZXRGdWxsTG9jYWxlTmFtZVNldChTdHJpbmcgYnVuZGxlUHJlZml4KSB7CisgICAgICAgIHJldHVybiBnZXRBdmFpbEVudHJ5KGJ1bmRsZVByZWZpeCkuZ2V0RnVsbExvY2FsZU5hbWVTZXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzZXQgb2YgdGhlIGxvY2FsZSBuYW1lcyBzdXBwb3J0ZWQgYnkgYSBjb2xsZWN0aW9uIG9mIHJlc291cmNlCisgICAgICogYnVuZGxlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFNldCBnZXRBdmFpbGFibGVMb2NhbGVOYW1lU2V0KCkgeworICAgICAgICByZXR1cm4gZ2V0QXZhaWxhYmxlTG9jYWxlTmFtZVNldChJQ1VfQkFTRV9OQU1FKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBMb2NhbGVzIGluc3RhbGxlZCBpbiB0aGUgc3BlY2lmaWVkIGJ1bmRsZXMuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoU3RyaW5nIGJhc2VOYW1lKSB7CisgICAgICAgIHJldHVybiBnZXRBdmFpbEVudHJ5KGJhc2VOYW1lKS5nZXRVTG9jYWxlTGlzdCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc2V0IG9mIFVMb2NhbGVzIGluc3RhbGxlZCB0aGUgYmFzZSBidW5kbGUuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSB7CisgICAgICAgIHJldHVybiBnZXRBdmFpbGFibGVVTG9jYWxlcyhJQ1VfQkFTRV9OQU1FKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBMb2NhbGVzIGluc3RhbGxlZCBpbiB0aGUgc3BlY2lmaWVkIGJ1bmRsZXMuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKFN0cmluZyBiYXNlTmFtZSkgeworICAgICAgICByZXR1cm4gZ2V0QXZhaWxFbnRyeShiYXNlTmFtZSkuZ2V0TG9jYWxlTGlzdCgpOworICAgIH0KKworICAgLyoqCisgICAgICogR2V0IHRoZSBzZXQgb2YgTG9jYWxlcyBpbnN0YWxsZWQgdGhlIGJhc2UgYnVuZGxlLgorICAgICAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgcmV0dXJuIGdldEF2YWlsRW50cnkoSUNVX0JBU0VfTkFNRSkuZ2V0TG9jYWxlTGlzdCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBsaXN0IG9mIFVMb2NhbGVzIHRvIGEgbGlzdCBvZiBMb2NhbGVzLiAgVUxvY2FsZXMgd2l0aCBhIHNjcmlwdCBjb2RlIHdpbGwgbm90IGJlIGNvbnZlcnRlZAorICAgICAqIHNpbmNlIHRoZXkgY2Fubm90IGJlIHJlcHJlc2VudGVkIGFzIGEgTG9jYWxlLiAgVGhpcyBtZWFucyB0aGF0IHRoZSB0d28gbGlzdHMgd2lsbCA8Yj5ub3Q8L2I+IG1hdGNoCisgICAgICogb25lLXRvLW9uZSwgYW5kIHRoYXQgdGhlIHJldHVybmVkIGxpc3QgbWlnaHQgYmUgc2hvcnRlciB0aGFuIHRoZSBpbnB1dCBsaXN0LgorICAgICAqIEBwYXJhbSB1bG9jYWxlcyBhIGxpc3Qgb2YgVUxvY2FsZXMgdG8gY29udmVydCB0byBhIGxpc3Qgb2YgTG9jYWxlcy4KKyAgICAgKiBAcmV0dXJuIHRoZSBsaXN0IG9mIGNvbnZlcnRlZCBVTG9jYWxlcworICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBMb2NhbGVbXSBnZXRMb2NhbGVMaXN0KFVMb2NhbGVbXSB1bG9jYWxlcykgeworICAgICAgICBBcnJheUxpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB1bG9jYWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgLy8gaWYgdGhlIFVMb2NhbGUgZG9lcyBub3QgY29udGFpbiBhIHNjcmlwdCBjb2RlCisgICAgICAgICAgICAvLyBvbmx5IHRoZW4gY29udmVydCBpdCB0byBhIExvY2FsZSBvYmplY3QKKyAgICAgICAgICAgIGlmICh1bG9jYWxlc1tpXS5nZXRTY3JpcHQoKS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgbGlzdC5hZGQodWxvY2FsZXNbaV0udG9Mb2NhbGUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChMb2NhbGVbXSkgbGlzdC50b0FycmF5KG5ldyBMb2NhbGVbbGlzdC5zaXplKCldKTsKKyAgICB9CisgCisgICAgcHVibGljIEVudW1lcmF0aW9uIGdldEtleXMoKSB7CisgICAgICAgIGluaXRLZXlzVmVjdG9yKCk7CisgICAgICAgIHJldHVybiBrZXlzLmVsZW1lbnRzKCk7CisgICAgfQorICAgIHByaXZhdGUgVmVjdG9yIGtleXMgPSBudWxsOworICAgIHByaXZhdGUgc3luY2hyb25pemVkIHZvaWQgaW5pdEtleXNWZWN0b3IoKXsKKyAgICAgICAgaWYoa2V5cyE9bnVsbCl7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgY3VycmVudCA9IHRoaXM7CisgICAgICAgIGtleXMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHdoaWxlKGN1cnJlbnQhPW51bGwpeworICAgICAgICAgICAgRW51bWVyYXRpb24gZSA9IGN1cnJlbnQuaGFuZGxlR2V0S2V5cygpOworICAgICAgICAgICAgd2hpbGUoZS5oYXNNb3JlRWxlbWVudHMoKSl7CisgICAgICAgICAgICAgICAgU3RyaW5nIGVsZW0gPSAoU3RyaW5nKWUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBpZigha2V5cy5jb250YWlucyhlbGVtKSl7CisgICAgICAgICAgICAgICAgICAgIGtleXMuYWRkKGVsZW0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnQgPSAoSUNVUmVzb3VyY2VCdW5kbGUpY3VycmVudC5nZXRQYXJlbnQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcm90ZWN0ZWQgRW51bWVyYXRpb24gaGFuZGxlR2V0S2V5cygpeworICAgICAgICBWZWN0b3Iga2V5cyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgaXRlbSA9IG51bGw7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICBpdGVtID0gZ2V0KGkpOworICAgICAgICAgICAga2V5cy5hZGQoaXRlbS5nZXRLZXkoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGtleXMuZWxlbWVudHMoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIElDVVJlc291cmNlQnVuZGxlIGNyZWF0ZUJ1bmRsZShTdHJpbmcgYmFzZU5hbWUsCisgICAgICAgICAgICBTdHJpbmcgbG9jYWxlSUQsIENsYXNzTG9hZGVyIHJvb3QpIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYiA9IElDVVJlc291cmNlQnVuZGxlSW1wbC5jcmVhdGVCdW5kbGUoYmFzZU5hbWUsIGxvY2FsZUlELCByb290KTsKKyAgICAgICAgaWYoYj09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgYnVuZGxlICIrIGJhc2VOYW1lKyIvIisgbG9jYWxlSUQrIi5yZXMiLCIiLCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYjsKKyAgICB9CisKKyAgICAvLz09PT09PSBwcm90ZWN0ZWQgbWVtYmVycyA9PT09PT09PT09PT09PQorICAgIHByb3RlY3RlZCBTdHJpbmcga2V5OworICAgIHByb3RlY3RlZCBpbnQgc2l6ZSA9IDE7CisgICAgcHJvdGVjdGVkIFN0cmluZyByZXNQYXRoOworICAgIHByb3RlY3RlZCBsb25nIHJlc291cmNlID0gUkVTX0JPR1VTOworICAgIHByb3RlY3RlZCBib29sZWFuIGlzVG9wTGV2ZWwgPSBmYWxzZTsKKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgbG9uZyBVTlNJR05FRF9JTlRfTUFTSyA9IDB4ZmZmZmZmZmZMOworCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIFJFU19CT0dVUyA9IDB4ZmZmZmZmZmY7CisKKyAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KFN0cmluZyBrZXksIEhhc2hNYXAgdGFibGUsCisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiIik7CisgICAgfQorICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoaW50IGluZGV4LCBIYXNoTWFwIHRhYmxlLAorICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgIHRocm93IG5ldyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oIiIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSBvZiB0aGlzIHJlc291cmNlIGJ1bmRsZS4gVGhpcyBtZXRob2QgY2FuIGJlIHVzZWQgYWZ0ZXIKKyAgICAgKiBhIGNhbGwgdG8gZ2V0QnVuZGxlKCkgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHJlc291cmNlIGJ1bmRsZSByZXR1cm5lZAorICAgICAqIHJlYWxseSBjb3JyZXNwb25kcyB0byB0aGUgcmVxdWVzdGVkIGxvY2FsZSBvciBpcyBhIGZhbGxiYWNrLgorICAgICAqIAorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsZSBvZiB0aGlzIHJlc291cmNlIGJ1bmRsZQorICAgICAqLworICAgIHB1YmxpYyBMb2NhbGUgZ2V0TG9jYWxlKCkgeworICAgICAgICByZXR1cm4gZ2V0VUxvY2FsZSgpLnRvTG9jYWxlKCk7CisgICAgfQorCisgICAgLy8gdGhpcyBtZXRob2QgaXMgZGVjbGFyZWQgaW4gUmVzb3VyY2VCdW5kbGUgY2xhc3MKKyAgICAvLyBzbyBjYW5ub3QgY2hhbmdlIHRoZSBzaWduYXR1cmUKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IGhhbmRsZUdldE9iamVjdChTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiBoYW5kbGVHZXRPYmplY3RJbXBsKGtleSwgdGhpcyk7CisgICAgfQorCisgICAgLy8gVG8gZmFjaWxpdGF0ZSBYUGF0aCBzdHlsZSBhbGlhc2VzIHdlIG5lZWQgYSB3YXkgdG8gcGFzcyB0aGUgcmVmZXJlbmNlCisgICAgLy8gdG8gcmVxdWVzdGVkIGxvY2FsZS4gVGhlIG9ubHkgd2F5IEkgY291bGQgZmlndXJlIG91dCBpcyB0byBpbXBsZW1lbnQKKyAgICAvLyB0aGUgbG9vayB1cCBsb2dpYyBoZXJlLiBUaGlzIGhhcyBhIGRpc2FkdmFudGFnZSB0aGF0IGlmIHRoZSBjbGllbnQKKyAgICAvLyBsb2FkcyBhbiBJQ1VSZXNvdXJjZUJ1bmRsZSwgY2FsbHMgUmVzb3VyY2VCdW5kbGUuZ2V0T2JqZWN0IG1ldGhvZAorICAgIC8vIHdpdGggYSBrZXkgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgYnVuZGxlIHRoZW4gdGhlIGxvb2t1cCBpcworICAgIC8vIGRvbmUgdHdpY2UgYmVmb3JlIHRocm93aW5nIGEgTWlzc2luZ1Jlc291cmNlRXhwZWN0aW9uLgorICAgIHByaXZhdGUgT2JqZWN0IGhhbmRsZUdldE9iamVjdEltcGwoU3RyaW5nIGtleSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgIE9iamVjdCBvYmogPSByZXNvbHZlT2JqZWN0KGtleSwgcmVxdWVzdGVkKTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBwYXJlbnQgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIGdldFBhcmVudCgpOworICAgICAgICAgICAgaWYgKHBhcmVudCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgb2JqID0gcGFyZW50LmhhbmRsZUdldE9iamVjdEltcGwoa2V5LCByZXF1ZXN0ZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG9iaiA9PSBudWxsKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICJDYW4ndCBmaW5kIHJlc291cmNlIGZvciBidW5kbGUgIgorICAgICAgICAgICAgICAgICAgICArIHRoaXMuZ2V0Q2xhc3MoKS5nZXROYW1lKCkgKyAiLCBrZXkgIiArIGtleSwKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRDbGFzcygpLmdldE5hbWUoKSwga2V5KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2JqOworICAgIH0KKworICAgIHByaXZhdGUgT2JqZWN0IHJlc29sdmVPYmplY3QoU3RyaW5nIGtleSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgIGlmIChnZXRUeXBlKCkgPT0gU1RSSU5HKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgb2JqID0gaGFuZGxlR2V0KGtleSwgcmVxdWVzdGVkKTsKKyAgICAgICAgaWYgKG9iaiAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAob2JqLmdldFR5cGUoKSA9PSBTVFJJTkcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gb2JqLmdldFN0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAob2JqLmdldFR5cGUoKSA9PSBBUlJBWSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqLmhhbmRsZUdldFN0cmluZ0FycmF5KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBjYXRjaCAoVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iajsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2JqOworICAgIH0KKworICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoaW50IGluZGV4LCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGhhbmRsZUdldChTdHJpbmcga2V5LAorICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmdbXSBoYW5kbGVHZXRTdHJpbmdBcnJheSgpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PSBwcml2YXRlcyA9PT09PT09PT09CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElDVV9SRVNPVVJDRV9JTkRFWCA9ICJyZXNfaW5kZXgiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFRfVEFHID0gImRlZmF1bHQiOworCisgICAgLy8gRmxhZyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIGRlYnVnZ2luZyBjb2RlCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IElDVURlYnVnLmVuYWJsZWQoImxvY2FsZWRhdGEiKTsKKworICAgIC8vIENhY2hlIGZvciBnZXRBdmFpbGFibGVMb2NhbGVzCisgICAgcHJpdmF0ZSBzdGF0aWMgU29mdFJlZmVyZW5jZSBHRVRfQVZBSUxBQkxFX0NBQ0hFOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVMb2NhbGVbXSBjcmVhdGVVTG9jYWxlTGlzdChTdHJpbmcgYmFzZU5hbWUsCisgICAgICAgICAgICBDbGFzc0xvYWRlciByb290KSB7CisgICAgICAgIC8vIHRoZSBjYW5uZWQgbGlzdCBpcyBhIHN1YnNldCBvZiBhbGwgdGhlIGF2YWlsYWJsZSAucmVzIGZpbGVzLCB0aGUgaWRlYQorICAgICAgICAvLyBpcyB3ZSBkb24ndCBleHBvcnQgdGhlbQorICAgICAgICAvLyBhbGwuIGdvdHRhIGJlIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzLCBzaW5jZSB0byBhZGQgYSBsb2NhbGUgeW91IGhhdmUKKyAgICAgICAgLy8gdG8gdXBkYXRlIHRoaXMgbGlzdCwKKyAgICAgICAgLy8gYW5kIGl0J3MgZW1iZWRkZWQgaW4gb3VyIGJpbmFyeSByZXNvdXJjZXMuCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgY3JlYXRlQnVuZGxlKGJhc2VOYW1lLCBJQ1VfUkVTT1VSQ0VfSU5ERVgsIHJvb3QpOworICAgICAgICAKKyAgICAgICAgYnVuZGxlID0gYnVuZGxlLmdldChJTlNUQUxMRURfTE9DQUxFUyk7CisgICAgICAgIGludCBsZW5ndGggPSBidW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIFVMb2NhbGVbXSBsb2NhbGVzID0gbmV3IFVMb2NhbGVbbGVuZ3RoXTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvciBpdGVyID0gYnVuZGxlLmdldEl0ZXJhdG9yKCk7CisgICAgICAgIGl0ZXIucmVzZXQoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBsb2NhbGVzW2krK10gPSBuZXcgVUxvY2FsZShpdGVyLm5leHQoKS5nZXRLZXkoKSk7CisgICAgICAgIH0KKyAgICAgICAgYnVuZGxlID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIGxvY2FsZXM7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9jYWxlW10gY3JlYXRlTG9jYWxlTGlzdChTdHJpbmcgYmFzZU5hbWUpIHsKKyAgICAgICAgVUxvY2FsZVtdIHVsb2NhbGVzID0gZ2V0QXZhaWxFbnRyeShiYXNlTmFtZSkuZ2V0VUxvY2FsZUxpc3QoKTsKKyAgICAgICAgcmV0dXJuIGdldExvY2FsZUxpc3QodWxvY2FsZXMpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIGNyZWF0ZUxvY2FsZU5hbWVBcnJheShTdHJpbmcgYmFzZU5hbWUsCisgICAgICAgICAgICBDbGFzc0xvYWRlciByb290KSB7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSkgY3JlYXRlQnVuZGxlKCBiYXNlTmFtZSwgSUNVX1JFU09VUkNFX0lOREVYLCByb290KTsKKyAgICAgICAgYnVuZGxlID0gYnVuZGxlLmdldChJTlNUQUxMRURfTE9DQUxFUyk7CisgICAgICAgIGludCBsZW5ndGggPSBidW5kbGUuZ2V0U2l6ZSgpOworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIFN0cmluZ1tdIGxvY2FsZXMgPSBuZXcgU3RyaW5nW2xlbmd0aF07CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlSXRlcmF0b3IgaXRlciA9IGJ1bmRsZS5nZXRJdGVyYXRvcigpOworICAgICAgICBpdGVyLnJlc2V0KCk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgbG9jYWxlc1tpKytdID0gaXRlci5uZXh0KCkuZ2V0S2V5KCk7CisgICAgICAgIH0KKyAgICAgICAgYnVuZGxlID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIGxvY2FsZXM7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXJyYXlMaXN0IGNyZWF0ZUZ1bGxMb2NhbGVOYW1lQXJyYXkoCisgICAgICAgICAgICBmaW5hbCBTdHJpbmcgYmFzZU5hbWUsIGZpbmFsIENsYXNzTG9hZGVyIHJvb3QpIHsKKworICAgICAgICBBcnJheUxpc3QgbGlzdCA9IChBcnJheUxpc3QpIGphdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlcgorICAgICAgICAgICAgLmRvUHJpdmlsZWdlZChuZXcgamF2YS5zZWN1cml0eS5Qcml2aWxlZ2VkQWN0aW9uKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgcnVuKCkgeworICAgICAgICAgICAgICAgICAgICAvLyBXZWJTcGhlcmUgY2xhc3MgbG9hZGVyIHdpbGwgcmV0dXJuIG51bGwgZm9yIGEgcmF3CisgICAgICAgICAgICAgICAgICAgIC8vIGRpcmVjdG9yeSBuYW1lIHdpdGhvdXQgdHJhaWxpbmcgc2xhc2gKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGJuID0gYmFzZU5hbWUuZW5kc1dpdGgoIi8iKQorICAgICAgICAgICAgICAgICAgICAgICAgPyBiYXNlTmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgOiBiYXNlTmFtZSArICIvIjsKKworICAgICAgICAgICAgICAgICAgICAvLyBsb29rIGZvciBwcmVidWlsdCBpbmRpY2VzIGZpcnN0CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBzID0gcm9vdC5nZXRSZXNvdXJjZUFzU3RyZWFtKGJuICsgSUNVX1JFU09VUkNFX0lOREVYICsgIi50eHQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcnJheUxpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIocywgIkFTQ0lJIikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgobGluZSA9IGJyLnJlYWRMaW5lKCkpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmUubGVuZ3RoKCkgIT0gMCAmJiAhbGluZS5zdGFydHNXaXRoKCIjIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QuYWRkKGxpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsaXN0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzd2FsbG93IGl0CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBVUkwgdXJsID0gcm9vdC5nZXRSZXNvdXJjZShibik7CisgICAgICAgICAgICAgICAgICAgIFVSTEhhbmRsZXIgaGFuZGxlciA9IFVSTEhhbmRsZXIuZ2V0KHVybCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChoYW5kbGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIEFycmF5TGlzdCBsaXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgVVJMVmlzaXRvciB2ID0gbmV3IFVSTFZpc2l0b3IoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgdmlzaXQoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMuZW5kc1dpdGgoIi5yZXMiKSAmJiAhInJlc19pbmRleC5yZXMiLmVxdWFscyhzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5hZGQocy5zdWJzdHJpbmcoMCwgcy5sZW5ndGgoKSAtIDQpKTsgLy8gc3RyaXAgJy5yZXMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlci5ndWlkZSh2LCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGlzdDsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFNldCBjcmVhdGVGdWxsTG9jYWxlTmFtZVNldChTdHJpbmcgYmFzZU5hbWUpIHsKKyAgICAgICAgQXJyYXlMaXN0IGxpc3QgPSBjcmVhdGVGdWxsTG9jYWxlTmFtZUFycmF5KGJhc2VOYW1lLElDVV9EQVRBX0NMQVNTX0xPQURFUik7CisgICAgICAgIEhhc2hTZXQgc2V0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgaWYobGlzdD09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCAiKyAgSUNVX1JFU09VUkNFX0lOREVYLCAiIiwgIiIpOworICAgICAgICB9CisgICAgICAgIHNldC5hZGRBbGwobGlzdCk7CisgICAgICAgIHJldHVybiBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVTZXQoc2V0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTZXQgY3JlYXRlTG9jYWxlTmFtZVNldChTdHJpbmcgYmFzZU5hbWUpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZ1tdIGxvY2FsZXMgPSBjcmVhdGVMb2NhbGVOYW1lQXJyYXkoYmFzZU5hbWUsIElDVV9EQVRBX0NMQVNTX0xPQURFUik7CisKKyAgICAgICAgICAgIEhhc2hTZXQgc2V0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgICAgIHNldC5hZGRBbGwoQXJyYXlzLmFzTGlzdChsb2NhbGVzKSk7CisgICAgICAgICAgICByZXR1cm4gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU2V0KHNldCk7CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNvdWxkbid0IGZpbmQgaW5kZXggZm9yIGJ1bmRsZU5hbWU6ICIgKyBiYXNlTmFtZSk7CisgICAgICAgICAgICAgICAgVGhyZWFkLmR1bXBTdGFjaygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBDb2xsZWN0aW9ucy5FTVBUWV9TRVQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogSG9sZHMgdGhlIHByZWZpeCwgYW5kIGxhemlseSBjcmVhdGVzIHRoZSBMb2NhbGVbXSBsaXN0IG9yIHRoZSBsb2NhbGUgbmFtZQorICAgICAqIFNldCBhcyBuZWVkZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgQXZhaWxFbnRyeSB7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIHByZWZpeDsKKyAgICAgICAgcHJpdmF0ZSBVTG9jYWxlW10gdWxvY2FsZXM7CisgICAgICAgIHByaXZhdGUgTG9jYWxlW10gbG9jYWxlczsKKyAgICAgICAgcHJpdmF0ZSBTZXQgbmFtZVNldDsKKyAgICAgICAgcHJpdmF0ZSBTZXQgZnVsbE5hbWVTZXQ7CisKKyAgICAgICAgQXZhaWxFbnRyeShTdHJpbmcgcHJlZml4KSB7CisgICAgICAgICAgICB0aGlzLnByZWZpeCA9IHByZWZpeDsKKyAgICAgICAgfQorCisgICAgICAgIFVMb2NhbGVbXSBnZXRVTG9jYWxlTGlzdCgpIHsKKyAgICAgICAgICAgIGlmICh1bG9jYWxlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdWxvY2FsZXMgPSBjcmVhdGVVTG9jYWxlTGlzdChwcmVmaXgsIElDVV9EQVRBX0NMQVNTX0xPQURFUik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdWxvY2FsZXM7CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxlW10gZ2V0TG9jYWxlTGlzdCgpIHsKKyAgICAgICAgICAgIGlmIChsb2NhbGVzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBsb2NhbGVzID0gY3JlYXRlTG9jYWxlTGlzdChwcmVmaXgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGxvY2FsZXM7CisgICAgICAgIH0KKyAgICAgICAgU2V0IGdldExvY2FsZU5hbWVTZXQoKSB7CisgICAgICAgICAgICBpZiAobmFtZVNldCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbmFtZVNldCA9IGNyZWF0ZUxvY2FsZU5hbWVTZXQocHJlZml4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuYW1lU2V0OworICAgICAgICB9CisgICAgICAgIFNldCBnZXRGdWxsTG9jYWxlTmFtZVNldCgpIHsKKyAgICAgICAgICAgIGlmIChmdWxsTmFtZVNldCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZnVsbE5hbWVTZXQgPSBjcmVhdGVGdWxsTG9jYWxlTmFtZVNldChwcmVmaXgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZ1bGxOYW1lU2V0OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU3RvcmVzIHRoZSBsb2NhbGUgaW5mb3JtYXRpb24gaW4gYSBjYWNoZSBhY2Nlc3NlZCBieSBrZXkgKGJ1bmRsZSBwcmVmaXgpLgorICAgICAqIFRoZSBjYWNoZWQgb2JqZWN0cyBhcmUgQXZhaWxFbnRyaWVzLiBUaGUgY2FjaGUgaXMgaGVsZCBieSBhIFNvZnRSZWZlcmVuY2UKKyAgICAgKiBzbyBpdCBjYW4gYmUgR0MnZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBBdmFpbEVudHJ5IGdldEF2YWlsRW50cnkoU3RyaW5nIGtleSkgeworICAgICAgICBBdmFpbEVudHJ5IGFlID0gbnVsbDsKKyAgICAgICAgTWFwIGxjYWNoZSA9IG51bGw7CisgICAgICAgIGlmIChHRVRfQVZBSUxBQkxFX0NBQ0hFICE9IG51bGwpIHsKKyAgICAgICAgICAgIGxjYWNoZSA9IChNYXApIEdFVF9BVkFJTEFCTEVfQ0FDSEUuZ2V0KCk7CisgICAgICAgICAgICBpZiAobGNhY2hlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhZSA9IChBdmFpbEVudHJ5KSBsY2FjaGUuZ2V0KGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoYWUgPT0gbnVsbCkgeworICAgICAgICAgICAgYWUgPSBuZXcgQXZhaWxFbnRyeShrZXkpOworICAgICAgICAgICAgaWYgKGxjYWNoZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbGNhY2hlID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgICAgICBsY2FjaGUucHV0KGtleSwgYWUpOworICAgICAgICAgICAgICAgIEdFVF9BVkFJTEFCTEVfQ0FDSEUgPSBuZXcgU29mdFJlZmVyZW5jZShsY2FjaGUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsY2FjaGUucHV0KGtleSwgYWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGFlOworICAgIH0KKworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgSUNVUmVzb3VyY2VCdW5kbGUgZmluZFJlc291cmNlV2l0aEZhbGxiYWNrKFN0cmluZyBwYXRoLAorICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYWN0dWFsQnVuZGxlLCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3ViID0gbnVsbDsKKyAgICAgICAgaWYgKHJlcXVlc3RlZCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXF1ZXN0ZWQgPSBhY3R1YWxCdW5kbGU7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKGFjdHVhbEJ1bmRsZSAhPSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmdUb2tlbml6ZXIgc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHBhdGgsICIvIik7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBjdXJyZW50ID0gYWN0dWFsQnVuZGxlOworICAgICAgICAgICAgd2hpbGUgKHN0Lmhhc01vcmVUb2tlbnMoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzdWJLZXkgPSBzdC5uZXh0VG9rZW4oKTsKKyAgICAgICAgICAgICAgICBzdWIgPSBjdXJyZW50LmhhbmRsZUdldChzdWJLZXksIHJlcXVlc3RlZCk7CisgICAgICAgICAgICAgICAgaWYgKHN1YiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gc3ViOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN1YiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy93ZSBmb3VuZCBpdAorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFjdHVhbEJ1bmRsZS5yZXNQYXRoLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBwYXRoID0gYWN0dWFsQnVuZGxlLnJlc1BhdGggKyAiLyIgKyBwYXRoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gaWYgbm90IHRyeSB0aGUgcGFyZW50IGJ1bmRsZQorICAgICAgICAgICAgYWN0dWFsQnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBhY3R1YWxCdW5kbGUuZ2V0UGFyZW50KCk7CisKKyAgICAgICAgfQorICAgICAgICBpZihzdWIgIT0gbnVsbCl7CisgICAgICAgICAgICBzZXRMb2FkaW5nU3RhdHVzKHN1YiwgcmVxdWVzdGVkLmdldExvY2FsZUlEKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdWI7CisgICAgfQorICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIHsKKyAgICAgICAgaWYgKG90aGVyIGluc3RhbmNlb2YgSUNVUmVzb3VyY2VCdW5kbGUpIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIG8gPSAoSUNVUmVzb3VyY2VCdW5kbGUpIG90aGVyOworICAgICAgICAgICAgaWYgKGdldEJhc2VOYW1lKCkuZXF1YWxzKG8uZ2V0QmFzZU5hbWUoKSkKKyAgICAgICAgICAgICAgICAgICAgJiYgZ2V0TG9jYWxlSUQoKS5lcXVhbHMoby5nZXRMb2NhbGVJRCgpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgLy8gVGhpcyBtZXRob2QgaXMgZm9yIHN1cGVyIGNsYXNzJ3MgaW5zdGFudGlhdGVCdW5kbGUgbWV0aG9kCisgICAgcHVibGljIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0QnVuZGxlSW5zdGFuY2UoU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcgbG9jYWxlSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzTG9hZGVyIHJvb3QsIGJvb2xlYW4gZGlzYWJsZUZhbGxiYWNrKXsKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIGIgPSBpbnN0YW50aWF0ZUJ1bmRsZShiYXNlTmFtZSwgbG9jYWxlSUQsIHJvb3QsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgIGlmKGI9PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIGJ1bmRsZSAiKyBiYXNlTmFtZSsiLyIrIGxvY2FsZUlEKyIucmVzIiwiIiwiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGI7CisgICAgfQorICAgIC8vICByZWN1cnNpdmVseSBidWlsZCBidW5kbGUgLi4gb3Zlci1yaWRlIHN1cGVyIGNsYXNzIG1ldGhvZC4KKyAgICBwcm90ZWN0ZWQgc3luY2hyb25pemVkIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgaW5zdGFudGlhdGVCdW5kbGUoU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcgbG9jYWxlSUQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc0xvYWRlciByb290LCBib29sZWFuIGRpc2FibGVGYWxsYmFjayl7CisgICAgICAgIFVMb2NhbGUgZGVmYXVsdExvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBTdHJpbmcgbG9jYWxlTmFtZSA9IGxvY2FsZUlEOworICAgICAgICBpZihsb2NhbGVOYW1lLmluZGV4T2YoJ0AnKT4wKXsKKyAgICAgICAgICAgIGxvY2FsZU5hbWUgPSBVTG9jYWxlLmdldEJhc2VOYW1lKGxvY2FsZUlEKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZnVsbE5hbWUgPSBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5nZXRGdWxsTmFtZShiYXNlTmFtZSwgbG9jYWxlTmFtZSk7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpbG9hZEZyb21DYWNoZShyb290LCBmdWxsTmFtZSwgZGVmYXVsdExvY2FsZSk7CisgICAgICAgIAorICAgICAgICAvLyBoZXJlIHdlIGFzc3VtZSB0aGF0IGphdmEgdHlwZSByZXNvdXJjZSBidW5kbGUgb3JnYW5pemF0aW9uCisgICAgICAgIC8vIGlzIHJlcXVpcmVkIHRoZW4gdGhlIGJhc2UgbmFtZSBjb250YWlucyAnLicgZWxzZSAKKyAgICAgICAgLy8gdGhlIHJlc291cmNlIG9yZ2FuaXphdGlvbiBpcyBvZiBJQ1UgdHlwZQorICAgICAgICAvLyBzbyBjbGllbnRzIGNhbiBpbnN0YW50aWF0ZSByZXNvdXJjZXMgb2YgdGhlIHR5cGUKKyAgICAgICAgLy8gY29tLm15Y29tcGFueS5kYXRhLk15TG9jYWxlRWxlbWVudHNfZW4ucmVzIGFuZCAKKyAgICAgICAgLy8gY29tLm15Y29tcGFueS5kYXRhLk15TG9jYWxlRWxlbWVudHMucmVzCisgICAgICAgIC8vCisgICAgICAgIGZpbmFsIFN0cmluZyByb290TG9jYWxlID0gKGJhc2VOYW1lLmluZGV4T2YoJy4nKT09LTEpID8gInJvb3QiIDogIiI7CisgICAgICAgIGZpbmFsIFN0cmluZyBkZWZhdWx0SUQgPSBVTG9jYWxlLmdldERlZmF1bHQoKS50b1N0cmluZygpOworICAgICAgICAKKyAgICAgICAgaWYobG9jYWxlTmFtZS5lcXVhbHMoIiIpKXsKKyAgICAgICAgICAgIGxvY2FsZU5hbWUgPSByb290TG9jYWxlOyAgIAorICAgICAgICB9CisgICAgICAgIGlmKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIkNyZWF0aW5nICIrZnVsbE5hbWUrICIgY3VycmVudGx5IGIgaXMgIitiKTsKKyAgICAgICAgaWYgKGIgPT0gbnVsbCkgeworCisgICAgICAgICAgICBiID0gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmNyZWF0ZUJ1bmRsZShiYXNlTmFtZSwgbG9jYWxlTmFtZSwgcm9vdCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorCisgICAgICAgICAgICBpZihERUJVRylTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBidW5kbGUgY3JlYXRlZCBpczogIitiKyIgYW5kIGRpc2FibGVGYWxsYmFjaz0iK2Rpc2FibGVGYWxsYmFjaysiIGFuZCBidW5kbGUuZ2V0Tm9GYWxsYmFjaz0iKyhiIT1udWxsICYmIGIuZ2V0Tm9GYWxsYmFjaygpKSk7CisgICAgICAgICAgICBpZihkaXNhYmxlRmFsbGJhY2sgfHwgKGIhPW51bGwgJiYgYi5nZXROb0ZhbGxiYWNrKCkpKXsKKyAgICAgICAgICAgICAgICAvLyBubyBmYWxsYmFjayBiZWNhdXNlIHRoZSBjYWxsZXIgc2FpZCBzbyBvciBiZWNhdXNlIHRoZSBidW5kbGUgc2F5cyBzbworICAgICAgICAgICAgICAgIHJldHVybiBiOworCisgICAgICAgICAgICB9CisKKworICAgICAgICAgICAgLy8gZmFsbGJhY2sgdG8gbG9jYWxlIElEIHBhcmVudAorICAgICAgICAgICAgaWYoYiA9PSBudWxsKXsKKworICAgICAgICAgICAgICAgIGludCBpID0gbG9jYWxlTmFtZS5sYXN0SW5kZXhPZignXycpOworCisgICAgICAgICAgICAgICAgaWYgKGkgIT0gLTEpIHsKKworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGVtcCA9IGxvY2FsZU5hbWUuc3Vic3RyaW5nKDAsIGkpOworICAgICAgICAgICAgICAgICAgICBiID0gKElDVVJlc291cmNlQnVuZGxlKWluc3RhbnRpYXRlQnVuZGxlKGJhc2VOYW1lLCB0ZW1wLCByb290LCBkaXNhYmxlRmFsbGJhY2spOworICAgICAgICAgICAgICAgICAgICBpZihiIT1udWxsICYmIGIuZ2V0VUxvY2FsZSgpLmVxdWFscyh0ZW1wKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBiLnNldExvYWRpbmdTdGF0dXMoSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9GQUxMQkFDSyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgaWYoZGVmYXVsdElELmluZGV4T2YobG9jYWxlTmFtZSk9PS0xKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGIgPSAoSUNVUmVzb3VyY2VCdW5kbGUpaW5zdGFudGlhdGVCdW5kbGUoYmFzZU5hbWUsIGRlZmF1bHRJRCwgcm9vdCwgZGlzYWJsZUZhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGIhPW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIuc2V0TG9hZGluZ1N0YXR1cyhJQ1VSZXNvdXJjZUJ1bmRsZS5GUk9NX0RFRkFVTFQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZihyb290TG9jYWxlLmxlbmd0aCgpIT0wKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwuY3JlYXRlQnVuZGxlKGJhc2VOYW1lLCByb290TG9jYWxlLCByb290KTsgCisgICAgICAgICAgICAgICAgICAgICAgICBpZihiIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLnNldExvYWRpbmdTdGF0dXMoSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBwYXJlbnQgPSBudWxsOworICAgICAgICAgICAgICAgIGxvY2FsZU5hbWUgPSBiLmdldExvY2FsZUlEKCk7CisgICAgICAgICAgICAgICAgaW50IGkgPSBsb2NhbGVOYW1lLmxhc3RJbmRleE9mKCdfJyk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYWRkVG9DYWNoZShyb290LCBmdWxsTmFtZSwgZGVmYXVsdExvY2FsZSwgYik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGkgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0gaW5zdGFudGlhdGVCdW5kbGUoYmFzZU5hbWUsIGxvY2FsZU5hbWUuc3Vic3RyaW5nKDAsIGkpLCByb290LCBkaXNhYmxlRmFsbGJhY2spOworICAgICAgICAgICAgICAgIH1lbHNlIGlmKCFsb2NhbGVOYW1lLmVxdWFscyhyb290TG9jYWxlKSl7CisgICAgICAgICAgICAgICAgICAgIHBhcmVudCA9IElDVVJlc291cmNlQnVuZGxlSW1wbC5jcmVhdGVCdW5kbGUoYmFzZU5hbWUsIHJvb3RMb2NhbGUsIHJvb3QpOyAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZighYi5lcXVhbHMocGFyZW50KSl7CisgICAgICAgICAgICAgICAgICAgIGIuc2V0UGFyZW50KHBhcmVudCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAgICAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBiOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlSW1wbC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjAzZTczYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlSW1wbC5qYXZhCkBAIC0wLDAgKzEsNzMzIEBACisvLyMjaGVhZGVyCisvKgorCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKworICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU3RyaW5nVG9rZW5pemVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbjsKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworLy8jZW5kaWYKKworLyoqCisgKiBAYXV0aG9yIHJhbQorICovCitwdWJsaWMgY2xhc3MgSUNVUmVzb3VyY2VCdW5kbGVJbXBsIGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGUgeworICAgIC8vcHJvdGVjdGVkIGJ5dGVbXSB2ZXJzaW9uOworCisgICAgcHJpdmF0ZSBieXRlW10gcmF3RGF0YTsKKworICAgIHByaXZhdGUgbG9uZyByb290UmVzb3VyY2U7CisKKyAgICBwcml2YXRlIGJvb2xlYW4gbm9GYWxsYmFjazsKKworICAgIHByaXZhdGUgU3RyaW5nIGxvY2FsZUlEOworCisgICAgcHJpdmF0ZSBTdHJpbmcgYmFzZU5hbWU7CisKKyAgICBwcml2YXRlIFVMb2NhbGUgdWxvY2FsZTsKKworICAgIHByaXZhdGUgQ2xhc3NMb2FkZXIgbG9hZGVyOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBBU1NFUlQgPSBmYWxzZTsKKyAgICAKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gYmFzZU5hbWUKKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQKKyAgICAgKiBAcGFyYW0gcm9vdAorICAgICAqIEByZXR1cm4gdGhlIG5ldyBidW5kbGUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIElDVVJlc291cmNlQnVuZGxlIGNyZWF0ZUJ1bmRsZShTdHJpbmcgYmFzZU5hbWUsCisgICAgICAgICAgICBTdHJpbmcgbG9jYWxlSUQsIENsYXNzTG9hZGVyIHJvb3QpIHsKKworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlciByZWFkZXIgPSBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlci5nZXRSZWFkZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VOYW1lLCBsb2NhbGVJRCwgcm9vdCk7CisKKyAgICAgICAgLy8gY291bGQgbm90IG9wZW4gdGhlIC5yZXMgZmlsZSBzbyByZXR1cm4gbnVsbAorICAgICAgICBpZiAocmVhZGVyID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIH0KKworCisKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGVJbXBsIGJ1bmRsZSA9IG5ldyBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwocmVhZGVyLAorICAgICAgICAgICAgICAgIGJhc2VOYW1lLCBsb2NhbGVJRCwgcm9vdCk7CisgICAgICAgIHJldHVybiBidW5kbGUuZ2V0QnVuZGxlKCk7CisKKyAgICB9CisKKworCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRMb2NhbGVJRCgpIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZUlEOworICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0QmFzZU5hbWUoKSB7CisgICAgICAgIHJldHVybiBiYXNlTmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkgeworICAgICAgICByZXR1cm4gdWxvY2FsZTsKKyAgICB9CisKKyAgICBwdWJsaWMgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpIHsKKyAgICAgICAgcmV0dXJuIChVUmVzb3VyY2VCdW5kbGUpIHBhcmVudDsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRQYXJlbnQoUmVzb3VyY2VCdW5kbGUgcGFyZW50KSB7CisgICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50OworCisgICAgfQorCisKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbm9GYWxsYmFjayBmbGFnIHNwZWNpZmllZCBpbiB0aGUgbG9hZGVkIGJ1bmRsZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBub0ZhbGxiYWNrIGZsYWcuCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gZ2V0Tm9GYWxsYmFjaygpIHsKKyAgICAgICAgcmV0dXJuIG5vRmFsbGJhY2s7CisgICAgfQorCisgICAgcHJpdmF0ZSBJQ1VSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGUoKSB7CisKKyAgICAgICAgaW50IHR5cGUgPSBSRVNfR0VUX1RZUEUocm9vdFJlc291cmNlKTsKKworICAgICAgICBpZiAodHlwZSA9PSBUQUJMRSkgeworCisgICAgICAgICAgICBSZXNvdXJjZVRhYmxlIHRhYmxlID0gbmV3IFJlc291cmNlVGFibGUobnVsbCwgcm9vdFJlc291cmNlLCAiIiwgdHJ1ZSk7CisgICAgICAgICAgICBpZih0YWJsZS5zaXplPT0xKXsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBiID0gdGFibGUuaGFuZGxlR2V0KDAsIHRhYmxlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbUtleSA9IGIuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gJSVBTElBUyBpcyBzdWNoIGEgaGFjayEKKyAgICAgICAgICAgICAgICBpZiAoaXRlbUtleS5lcXVhbHMoIiUlQUxJQVMiKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbG9jYWxlID0gYi5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYWN0dWFsID0gKElDVVJlc291cmNlQnVuZGxlKSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoUmVzb3VyY2VUYWJsZSkgYWN0dWFsOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFibGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiB0YWJsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IFRBQkxFMzIpIHsKKworICAgICAgICAgICAgLy8gZ2VucmIgZG9lcyBub3QgZ2VuZXJhdGUgVGFibGUzMiB3aXRoICUlQUxJQVMKKyAgICAgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VUYWJsZTMyKG51bGwsIHJvb3RSZXNvdXJjZSwgIiIsIHRydWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiSW52YWxpZCBmb3JtYXQgZXJyb3IiKTsKKworICAgICAgICB9CisKKyAgICB9CisKKyAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlSW1wbChJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlciByZWFkZXIsIFN0cmluZyBiYXNlTmFtZSwKKyAgICAgICAgICAgIFN0cmluZyBsb2NhbGVJRCwgQ2xhc3NMb2FkZXIgbG9hZGVyKSB7CisgICAgICAgIHRoaXMucmF3RGF0YSA9IHJlYWRlci5nZXREYXRhKCk7CisgICAgICAgIHRoaXMucm9vdFJlc291cmNlID0gKFVOU0lHTkVEX0lOVF9NQVNLKSAmIHJlYWRlci5nZXRSb290UmVzb3VyY2UoKTsKKyAgICAgICAgdGhpcy5ub0ZhbGxiYWNrID0gcmVhZGVyLmdldE5vRmFsbGJhY2soKTsKKyAgICAgICAgdGhpcy5iYXNlTmFtZSA9IGJhc2VOYW1lOworCisgICAgICAgIHRoaXMubG9jYWxlSUQgPSBsb2NhbGVJRDsKKworICAgICAgICB0aGlzLnVsb2NhbGUgPSBuZXcgVUxvY2FsZShsb2NhbGVJRCk7CisKKyAgICAgICAgdGhpcy5sb2FkZXIgPSBsb2FkZXI7CisgICAgfQorICAgIHN0YXRpYyBmaW5hbCBpbnQgUkVTX0dFVF9UWVBFKGxvbmcgcmVzKSB7CisgICAgICAgIHJldHVybiAoaW50KSAoKHJlcykgPj4gMjhMKTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJFU19HRVRfT0ZGU0VUKGxvbmcgcmVzKSB7CisgICAgICAgIHJldHVybiAoaW50KSAoKHJlcyAmIDB4MGZmZmZmZmYpICogNCk7CisgICAgfQorICAgIC8qIGdldCBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgdmFsdWVzIGRpcmVjdGx5IGZyb20gdGhlIFJlc291cmNlIGhhbmRsZSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBSRVNfR0VUX0lOVChsb25nIHJlcykgeworICAgICAgICByZXR1cm4gKCgoaW50KSAoKHJlcykgPDwgNEwpKSA+PiA0TCk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgUkVTX0dFVF9VSU5UKGxvbmcgcmVzKSB7CisgICAgICAgIGxvbmcgdCA9ICgocmVzKSAmIDB4MGZmZmZmZmZMKTsKKyAgICAgICAgcmV0dXJuIHQ7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ0J1ZmZlciBSRVNfR0VUX0tFWShieXRlW10gcmF3RGF0YSwKKyAgICAgICAgICAgIGludCBrZXlPZmZzZXQpIHsKKyAgICAgICAgY2hhciBjaCA9IDB4RkZGRjsgLy9zZW50aW5lbAorICAgICAgICBTdHJpbmdCdWZmZXIga2V5ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICB3aGlsZSAoKGNoID0gKGNoYXIpIHJhd0RhdGFba2V5T2Zmc2V0XSkgIT0gMCkgeworICAgICAgICAgICAga2V5LmFwcGVuZChjaCk7CisgICAgICAgICAgICBrZXlPZmZzZXQrKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4ga2V5OworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0SW50T2Zmc2V0KGludCBvZmZzZXQpIHsKKyAgICAgICAgcmV0dXJuIChvZmZzZXQgKiA0KTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldENoYXJPZmZzZXQoaW50IG9mZnNldCkgeworICAgICAgICByZXR1cm4gKG9mZnNldCAqIDIpOworICAgIH0KKyAgICBwcml2YXRlIGZpbmFsIElDVVJlc291cmNlQnVuZGxlIGNyZWF0ZUJ1bmRsZU9iamVjdChTdHJpbmcga2V5LAorICAgICAgICAgICAgbG9uZyByZXNvdXJjZSwgU3RyaW5nIHJlc1BhdGgsIEhhc2hNYXAgdGFibGUsIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICAvL2lmIChyZXNvdXJjZSAhPSBSRVNfQk9HVVMpIHsKKyAgICAgICAgc3dpdGNoIChSRVNfR0VUX1RZUEUocmVzb3VyY2UpKSB7CisgICAgICAgICAgICBjYXNlIFNUUklORyA6IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlc291cmNlU3RyaW5nKGtleSwgcmVzUGF0aCwgcmVzb3VyY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBCSU5BUlkgOiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNvdXJjZUJpbmFyeShrZXksIHJlc1BhdGgsIHJlc291cmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgQUxJQVMgOiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZpbmRSZXNvdXJjZShrZXksIHJlc291cmNlLCB0YWJsZSwgcmVxdWVzdGVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgSU5UIDogeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VJbnQoa2V5LCByZXNQYXRoLCByZXNvdXJjZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIElOVF9WRUNUT1IgOiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNvdXJjZUludFZlY3RvcihrZXksIHJlc1BhdGgsIHJlc291cmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgQVJSQVkgOiB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNvdXJjZUFycmF5KGtleSwgcmVzUGF0aCwgcmVzb3VyY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBUQUJMRTMyIDogeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVzb3VyY2VUYWJsZTMyKGtleSwgcmVzUGF0aCwgcmVzb3VyY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBUQUJMRSA6IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlc291cmNlVGFibGUoa2V5LCByZXNQYXRoLCByZXNvdXJjZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkZWZhdWx0IDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJUaGUgcmVzb3VyY2UgdHlwZSBpcyB1bmtub3duIik7CisgICAgICAgIH0KKyAgICAgICAgLy99CisgICAgICAgIC8vcmV0dXJuIG51bGw7CisgICAgfQorICAgIHByaXZhdGUgaW50IGZpbmRLZXkoaW50IHNpemUsIGludCBjdXJyZW50T2Zmc2V0LCBSZXNvdXJjZSByZXMsIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgaW50IG1pZCA9IDAsIHN0YXJ0ID0gMCwgbGltaXQgPSBzaXplLCByYzsKKyAgICAgICAgaW50IGxhc3RNaWQgPSAtMTsKKyAgICAgICAgLy9pbnQgbXlDaGFyT2Zmc2V0ID0gMCwga2V5T2Zmc2V0ID0gMDsKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgbWlkID0gKChzdGFydCArIGxpbWl0KSAvIDIpOworICAgICAgICAgICAgaWYgKGxhc3RNaWQgPT0gbWlkKSB7IC8qIEhhdmUgd2UgbW92ZWQ/ICovCisgICAgICAgICAgICAgICAgYnJlYWs7IC8qIFdlIGhhdmVuJ3QgbW92ZWQsIGFuZCBpdCB3YXNuJ3QgZm91bmQuICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYXN0TWlkID0gbWlkOworICAgICAgICAgICAgU3RyaW5nIGNvbXAgPSByZXMuZ2V0S2V5KGN1cnJlbnRPZmZzZXQsIG1pZCk7CisgICAgICAgICAgICByYyA9IHRhcmdldC5jb21wYXJlVG8oY29tcCk7CisgICAgICAgICAgICBpZiAocmMgPCAwKSB7CisgICAgICAgICAgICAgICAgbGltaXQgPSBtaWQ7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHJjID4gMCkgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0gbWlkOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWlkOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgcHJpdmF0ZSBpbnRlcmZhY2UgUmVzb3VyY2UgeworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEtleShpbnQgY3VycmVudE9mc2V0LCBpbnQgaW5kZXgpOworICAgIH0KKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlVGFibGUgZXh0ZW5kcyBJQ1VSZXNvdXJjZUJ1bmRsZSBpbXBsZW1lbnRzIFJlc291cmNlIHsKKworICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KFN0cmluZyBrZXksIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUdldChrZXksIG51bGwsIHJlcXVlc3RlZCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGhhbmRsZUdldChTdHJpbmcga2V5LCBIYXNoTWFwIHRhYmxlLCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIGlmKHNpemU8PTApeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IG9mZnNldCA9IFJFU19HRVRfT0ZGU0VUKHJlc291cmNlKTsKKyAgICAgICAgICAgIC8vIG9mZnNldCswIGNvbnRhaW5zIG51bWJlciBvZiBlbnRyaWVzCisgICAgICAgICAgICAvLyBvZmZzZXQrMSBjb250YWlucyB0aGUga2V5T2Zmc2V0ICAKKyAgICAgICAgICAgIGludCBjdXJyZW50T2Zmc2V0ID0gKG9mZnNldCkgKyBnZXRDaGFyT2Zmc2V0KDEpOworICAgICAgICAgICAgLy9pbnQga2V5T2Zmc2V0ID0gcmF3RGF0YS5nZXRDaGFyKGN1cnJlbnRPZmZzZXQpOworICAgICAgICAgICAgLyogZG8gYSBiaW5hcnkgc2VhcmNoIGZvciB0aGUga2V5ICovCisgICAgICAgICAgICBpbnQgZm91bmRPZmZzZXQgPSBmaW5kS2V5KHNpemUsIGN1cnJlbnRPZmZzZXQsIHRoaXMsIGtleSk7CisgICAgICAgICAgICBpZiAoZm91bmRPZmZzZXQgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAvL3Rocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oSUNVUmVzb3VyY2VCdW5kbGVSZWFkZXIuZ2V0RnVsbE5hbWUoYmFzZU5hbWUsIGxvY2FsZUlEKSwKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZUlELAorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0gZ2V0Q2hhck9mZnNldChzaXplICsgKH5zaXplICYgMSkpCisgICAgICAgICAgICAgICAgICAgICsgZ2V0SW50T2Zmc2V0KGZvdW5kT2Zmc2V0KTsKKyAgICAgICAgICAgIGxvbmcgcmVzb3VyY2UgPSAoVU5TSUdORURfSU5UX01BU0spICYgSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmdldEludChyYXdEYXRhLCBjdXJyZW50T2Zmc2V0KTsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gKGlzVG9wTGV2ZWwgPT0gdHJ1ZSkgPyBrZXkgOiByZXNQYXRoICsgIi8iICsga2V5OworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUJ1bmRsZU9iamVjdChrZXksIHJlc291cmNlLCBwYXRoLCB0YWJsZSwgcmVxdWVzdGVkKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KGludCBpbmRleCwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlR2V0KGluZGV4LCBudWxsLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0S2V5KGludCBjdXJyZW50T2Zmc2V0LCBpbnQgaW5kZXgpIHsKKyAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0ID0gY3VycmVudE9mZnNldCArIGdldENoYXJPZmZzZXQoaW5kZXgpOworICAgICAgICAgICAgaW50IGtleU9mZnNldCA9IGdldENoYXIocmF3RGF0YSxjaGFyT2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBSRVNfR0VUX0tFWShyYXdEYXRhLCBrZXlPZmZzZXQpLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGhhbmRsZUdldChpbnQgaW5kZXgsIEhhc2hNYXAgdGFibGUsIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICAgICAgaWYgKGluZGV4ID4gc2l6ZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gUkVTX0dFVF9PRkZTRVQocmVzb3VyY2UpOworICAgICAgICAgICAgLy8gb2Zmc2V0KzAgY29udGFpbnMgbnVtYmVyIG9mIGVudHJpZXMKKyAgICAgICAgICAgIC8vIG9mZnNldCsxIGNvbnRhaW5zIHRoZSBrZXlPZmZzZXQgIAorICAgICAgICAgICAgaW50IGN1cnJlbnRPZmZzZXQgPSAob2Zmc2V0KSArIGdldENoYXJPZmZzZXQoMSk7CisgICAgICAgICAgICBTdHJpbmcgaXRlbUtleSA9IGdldEtleShjdXJyZW50T2Zmc2V0LCBpbmRleCk7CisgICAgICAgICAgICBjdXJyZW50T2Zmc2V0ICs9IGdldENoYXJPZmZzZXQoc2l6ZSArICh+c2l6ZSAmIDEpKQorICAgICAgICAgICAgICAgICAgICArIGdldEludE9mZnNldChpbmRleCk7CisgICAgICAgICAgICBsb25nIHJlc291cmNlID0gKFVOU0lHTkVEX0lOVF9NQVNLKSAmIElDVVJlc291cmNlQnVuZGxlSW1wbC5nZXRJbnQocmF3RGF0YSxjdXJyZW50T2Zmc2V0KTsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gKGlzVG9wTGV2ZWwgPT0gdHJ1ZSkKKyAgICAgICAgICAgICAgICAgICAgPyBJbnRlZ2VyLnRvU3RyaW5nKGluZGV4KQorICAgICAgICAgICAgICAgICAgICA6IHJlc1BhdGggKyAiLyIgKyBpbmRleDsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVCdW5kbGVPYmplY3QoaXRlbUtleSwgcmVzb3VyY2UsIHBhdGgsIHRhYmxlLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgaW50IGNvdW50SXRlbXMoKSB7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gUkVTX0dFVF9PRkZTRVQocmVzb3VyY2UpOworICAgICAgICAgICAgaW50IHZhbHVlID0gZ2V0Q2hhcihyYXdEYXRhLG9mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBSZXNvdXJjZVRhYmxlKFN0cmluZyBrZXksIFN0cmluZyByZXNQYXRoLCBsb25nIHJlc291cmNlKSB7CisgICAgICAgICAgICB0aGlzKGtleSwgcmVzb3VyY2UsIHJlc1BhdGgsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIFJlc291cmNlVGFibGUoU3RyaW5nIGtleSwgbG9uZyByZXNvdXJjZSwgU3RyaW5nIHJlc1BhdGgsCisgICAgICAgICAgICAgICAgYm9vbGVhbiBpc1RvcExldmVsKSB7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMucmVzb3VyY2UgPSByZXNvdXJjZTsKKyAgICAgICAgICAgIHRoaXMuaXNUb3BMZXZlbCA9IGlzVG9wTGV2ZWw7CisgICAgICAgICAgICB0aGlzLnNpemUgPSBjb3VudEl0ZW1zKCk7CisgICAgICAgICAgICB0aGlzLnJlc1BhdGggPSByZXNQYXRoOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0TG9jYWxlSUQoKSB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlSUQ7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRCYXNlTmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBiYXNlTmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBVTG9jYWxlIGdldFVMb2NhbGUoKSB7CisgICAgICAgICAgICByZXR1cm4gdWxvY2FsZTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwudGhpcy5nZXRQYXJlbnQoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBzZXRQYXJlbnQoUmVzb3VyY2VCdW5kbGUgcGFyZW50KSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwudGhpcy5zZXRQYXJlbnQocGFyZW50KTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlVGFibGUzMiBleHRlbmRzIElDVVJlc291cmNlQnVuZGxlIGltcGxlbWVudHMgUmVzb3VyY2UgeworCisgICAgICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoU3RyaW5nIGtleSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICBpZihzaXplPD0wKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVHZXQoa2V5LCBudWxsLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoU3RyaW5nIGtleSwgSGFzaE1hcCB0YWJsZSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gUkVTX0dFVF9PRkZTRVQocmVzb3VyY2UpOworICAgICAgICAgICAgLy8gb2Zmc2V0KzAgY29udGFpbnMgbnVtYmVyIG9mIGVudHJpZXMKKyAgICAgICAgICAgIC8vIG9mZnNldCsxIGNvbnRhaW5zIHRoZSBrZXlPZmZzZXQgIAorICAgICAgICAgICAgaW50IGN1cnJlbnRPZmZzZXQgPSAob2Zmc2V0KSArIGdldEludE9mZnNldCgxKTsKKyAgICAgICAgICAgIC8vaW50IGtleU9mZnNldCA9IHJhd0RhdGEuZ2V0Q2hhcihjdXJyZW50T2Zmc2V0KTsKKyAgICAgICAgICAgIC8qIGRvIGEgYmluYXJ5IHNlYXJjaCBmb3IgdGhlIGtleSAqLworICAgICAgICAgICAgaW50IGZvdW5kT2Zmc2V0ID0gZmluZEtleShzaXplLCBjdXJyZW50T2Zmc2V0LCB0aGlzLCBrZXkpOworICAgICAgICAgICAgaWYgKGZvdW5kT2Zmc2V0ID09IC0xKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJDb3VsZCBub3QgZmluZCByZXNvdXJjZSAiLAorICAgICAgICAgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGVSZWFkZXIuZ2V0RnVsbE5hbWUoYmFzZU5hbWUsIGxvY2FsZUlEKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50T2Zmc2V0ICs9IGdldEludE9mZnNldChzaXplKSArIGdldEludE9mZnNldChmb3VuZE9mZnNldCk7CisgICAgICAgICAgICBsb25nIHJlc291cmNlID0gKFVOU0lHTkVEX0lOVF9NQVNLKSAmIElDVVJlc291cmNlQnVuZGxlSW1wbC5nZXRJbnQocmF3RGF0YSxjdXJyZW50T2Zmc2V0KTsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gKGlzVG9wTGV2ZWwgPT0gdHJ1ZSkgPyBrZXkgOiByZXNQYXRoICsgIi8iICsga2V5OworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUJ1bmRsZU9iamVjdChrZXksIHJlc291cmNlLCBwYXRoLCB0YWJsZSwgcmVxdWVzdGVkKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KGludCBpbmRleCwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlR2V0KGluZGV4LCBudWxsLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0S2V5KGludCBjdXJyZW50T2Zmc2V0LCBpbnQgaW5kZXgpIHsKKyAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0ID0gY3VycmVudE9mZnNldCArIGdldEludE9mZnNldChpbmRleCk7CisgICAgICAgICAgICBpbnQga2V5T2Zmc2V0ID0gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmdldEludChyYXdEYXRhLGNoYXJPZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIFJFU19HRVRfS0VZKHJhd0RhdGEsIGtleU9mZnNldCkudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KGludCBpbmRleCwgSGFzaE1hcCB0YWJsZSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPiBzaXplKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBSRVNfR0VUX09GRlNFVChyZXNvdXJjZSk7CisgICAgICAgICAgICAvLyBvZmZzZXQrMCBjb250YWlucyBudW1iZXIgb2YgZW50cmllcworICAgICAgICAgICAgLy8gb2Zmc2V0KzEgY29udGFpbnMgdGhlIGtleU9mZnNldCAgCisgICAgICAgICAgICBpbnQgY3VycmVudE9mZnNldCA9IChvZmZzZXQpICsgZ2V0SW50T2Zmc2V0KDEpCisgICAgICAgICAgICAgICAgICAgICsgZ2V0SW50T2Zmc2V0KGluZGV4KTsKKyAgICAgICAgICAgIFN0cmluZyBpdGVtS2V5ID0gZ2V0S2V5KGN1cnJlbnRPZmZzZXQsIDApOworICAgICAgICAgICAgY3VycmVudE9mZnNldCArPSBnZXRJbnRPZmZzZXQoc2l6ZSk7CisgICAgICAgICAgICBsb25nIHJlc291cmNlID0gKFVOU0lHTkVEX0lOVF9NQVNLKSAmIElDVVJlc291cmNlQnVuZGxlSW1wbC5nZXRJbnQocmF3RGF0YSxjdXJyZW50T2Zmc2V0KTsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gKGlzVG9wTGV2ZWwgPT0gdHJ1ZSkKKyAgICAgICAgICAgICAgICAgICAgPyBJbnRlZ2VyLnRvU3RyaW5nKGluZGV4KQorICAgICAgICAgICAgICAgICAgICA6IHJlc1BhdGggKyAiLyIgKyBpbmRleDsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVCdW5kbGVPYmplY3QoaXRlbUtleSwgcmVzb3VyY2UsIHBhdGgsIHRhYmxlLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgaW50IGNvdW50SXRlbXMoKSB7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gUkVTX0dFVF9PRkZTRVQocmVzb3VyY2UpOworICAgICAgICAgICAgaW50IHZhbHVlID0gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmdldEludChyYXdEYXRhLCBvZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgUmVzb3VyY2VUYWJsZTMyKFN0cmluZyBrZXksIGxvbmcgcmVzb3VyY2UsIFN0cmluZyByZXNQYXRoLAorICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNUb3BMZXZlbCkgeworICAgICAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJlc291cmNlOworICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7CisgICAgICAgICAgICB0aGlzLmlzVG9wTGV2ZWwgPSBpc1RvcExldmVsOworICAgICAgICAgICAgdGhpcy5zaXplID0gY291bnRJdGVtcygpOworICAgICAgICAgICAgdGhpcy5yZXNQYXRoID0gcmVzUGF0aDsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIFJlc291cmNlVGFibGUzMihTdHJpbmcga2V5LCBTdHJpbmcgcmVzUGF0aCwgbG9uZyByZXNvdXJjZSkgeworICAgICAgICAgICAgdGhpcyhrZXksIHJlc291cmNlLCByZXNQYXRoLCBmYWxzZSk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldExvY2FsZUlEKCkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZUlEOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0QmFzZU5hbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHVsb2NhbGU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRQYXJlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLnRoaXMuZ2V0UGFyZW50KCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgc2V0UGFyZW50KFJlc291cmNlQnVuZGxlIHBhcmVudCkgeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGVJbXBsLnRoaXMuc2V0UGFyZW50KHBhcmVudCk7CisgICAgICAgIH0KKworICAgIH0KKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlU3RyaW5nIGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGUgeworICAgICAgICBwcml2YXRlIFN0cmluZyB2YWx1ZTsKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRTdHJpbmcoKSB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBSZXNvdXJjZVN0cmluZyhTdHJpbmcga2V5LCBTdHJpbmcgcmVzUGF0aCwgbG9uZyByZXNvdXJjZSkgeworICAgICAgICAgICAgdmFsdWUgPSBnZXRTdHJpbmdWYWx1ZShyZXNvdXJjZSk7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMucmVzb3VyY2UgPSByZXNvdXJjZTsKKyAgICAgICAgICAgIHRoaXMucmVzUGF0aCA9IHJlc1BhdGg7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRMb2NhbGVJRCgpIHsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGVJRDsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldEJhc2VOYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuIGJhc2VOYW1lOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFVMb2NhbGUgZ2V0VUxvY2FsZSgpIHsKKyAgICAgICAgICAgIHJldHVybiB1bG9jYWxlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0UGFyZW50KCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlSW1wbC50aGlzLmdldFBhcmVudCgpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2VJbnQgZXh0ZW5kcyBJQ1VSZXNvdXJjZUJ1bmRsZSB7CisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SW50KCkgeworICAgICAgICAgICAgcmV0dXJuIFJFU19HRVRfSU5UKHJlc291cmNlKTsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgaW50IGdldFVJbnQoKSB7CisgICAgICAgICAgICBsb25nIHJldCA9IFJFU19HRVRfVUlOVChyZXNvdXJjZSk7CisgICAgICAgICAgICByZXR1cm4gKGludCkgcmV0OworICAgICAgICB9CisgICAgICAgIHByaXZhdGUgUmVzb3VyY2VJbnQoU3RyaW5nIGtleSwgU3RyaW5nIHJlc1BhdGgsIGxvbmcgcmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJlc291cmNlOworICAgICAgICAgICAgdGhpcy5yZXNQYXRoID0gcmVzUGF0aDsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldExvY2FsZUlEKCkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZUlEOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0QmFzZU5hbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHVsb2NhbGU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRQYXJlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLnRoaXMuZ2V0UGFyZW50KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBjbGFzcyBSZXNvdXJjZUFycmF5IGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGUgeworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nW10gaGFuZGxlR2V0U3RyaW5nQXJyYXkoKSB7CisgICAgICAgICAgICBTdHJpbmdbXSBzdHJpbmdzID0gbmV3IFN0cmluZ1tzaXplXTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlSXRlcmF0b3IgaXRlciA9IGdldEl0ZXJhdG9yKCk7CisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBzdHJpbmdzW2krK10gPSBpdGVyLm5leHQoKS5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzdHJpbmdzOworICAgICAgICB9CisgICAgICAgIC8qKgorICAgICAgICAgKiBAaW50ZXJuYWwgSUNVIDMuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZ1tdIGdldFN0cmluZ0FycmF5KCkgeworICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUdldFN0cmluZ0FycmF5KCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElDVVJlc291cmNlQnVuZGxlIGhhbmRsZUdldChTdHJpbmcgaW5kZXgsIElDVVJlc291cmNlQnVuZGxlIHJlcXVlc3RlZCkgeworICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUdldChpbmRleCwgbnVsbCwgcmVxdWVzdGVkKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KFN0cmluZyBpbmRleCwgSGFzaE1hcCB0YWJsZSwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICBpbnQgdmFsID0gZ2V0SW5kZXgoaW5kZXgpOworICAgICAgICAgICAgaWYgKHZhbCA+IC0xKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUdldCh2YWwsIHRhYmxlLCByZXF1ZXN0ZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhyb3cgbmV3IFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbigiQ291bGQgbm90IGdldCB0aGUgY29ycmVjdCB2YWx1ZSBmb3IgaW5kZXg6ICIrIGluZGV4KTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSUNVUmVzb3VyY2VCdW5kbGUgaGFuZGxlR2V0KGludCBpbmRleCwgSUNVUmVzb3VyY2VCdW5kbGUgcmVxdWVzdGVkKSB7CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlR2V0KGluZGV4LCBudWxsLCByZXF1ZXN0ZWQpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJQ1VSZXNvdXJjZUJ1bmRsZSBoYW5kbGVHZXQoaW50IGluZGV4LCBIYXNoTWFwIHRhYmxlLCBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA+IHNpemUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IG9mZnNldCA9IFJFU19HRVRfT0ZGU0VUKHJlc291cmNlKTsKKyAgICAgICAgICAgIGludCBpdGVtT2Zmc2V0ID0gb2Zmc2V0ICsgZ2V0SW50T2Zmc2V0KGluZGV4ICsgMSk7CisgICAgICAgICAgICBsb25nIGl0ZW1SZXNvdXJjZSA9IChVTlNJR05FRF9JTlRfTUFTSykgJiBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwuZ2V0SW50KHJhd0RhdGEsaXRlbU9mZnNldCk7CisgICAgICAgICAgICBTdHJpbmcgcGF0aCA9IChpc1RvcExldmVsID09IHRydWUpID8gSW50ZWdlci50b1N0cmluZyhpbmRleCkgOiByZXNQYXRoICsgIi8iICsgaW5kZXg7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlQnVuZGxlT2JqZWN0KG51bGwsIGl0ZW1SZXNvdXJjZSwgcGF0aCwgdGFibGUsIHJlcXVlc3RlZCk7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBpbnQgY291bnRJdGVtcygpIHsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBSRVNfR0VUX09GRlNFVChyZXNvdXJjZSk7CisgICAgICAgICAgICBpbnQgdmFsdWUgPSBJQ1VSZXNvdXJjZUJ1bmRsZUltcGwuZ2V0SW50KHJhd0RhdGEsb2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIFJlc291cmNlQXJyYXkoU3RyaW5nIGtleSwgU3RyaW5nIHJlc1BhdGgsIGxvbmcgcmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHRoaXMucmVzb3VyY2UgPSByZXNvdXJjZTsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy5zaXplID0gY291bnRJdGVtcygpOworICAgICAgICAgICAgdGhpcy5yZXNQYXRoID0gcmVzUGF0aDsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldExvY2FsZUlEKCkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZUlEOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0QmFzZU5hbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVUxvY2FsZSBnZXRVTG9jYWxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHVsb2NhbGU7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRQYXJlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLnRoaXMuZ2V0UGFyZW50KCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhciBtYWtlQ2hhcihieXRlIGIxLCBieXRlIGIwKSB7CisgICAgICAgIHJldHVybiAoY2hhcikoKGIxIDw8IDgpIHwgKGIwICYgMHhmZikpOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIGdldENoYXIoYnl0ZVtdZGF0YSwgaW50IG9mZnNldCl7CisgICAgICAgIHJldHVybiBtYWtlQ2hhcihkYXRhW29mZnNldF0sIGRhdGFbb2Zmc2V0KzFdKTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG1ha2VJbnQoYnl0ZSBiMywgYnl0ZSBiMiwgYnl0ZSBiMSwgYnl0ZSBiMCkgeworICAgICAgICByZXR1cm4gKGludCkoKCgoYjMgJiAweGZmKSA8PCAyNCkgfAorICAgICAgICAgICAgICAgICAgKChiMiAmIDB4ZmYpIDw8IDE2KSB8CisgICAgICAgICAgICAgICAgICAoKGIxICYgMHhmZikgPDwgIDgpIHwKKyAgICAgICAgICAgICAgICAgICgoYjAgJiAweGZmKSA8PCAgMCkpKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldEludChieXRlW10gZGF0YSwgaW50IG9mZnNldCl7CisgICAgICAgIGlmIChBU1NFUlQpIEFzc2VydC5hc3NydCgib2Zmc2V0IDwgZGF0YS5sZW5ndGgiLCBvZmZzZXQgPCBkYXRhLmxlbmd0aCk7CisgICAgICAgIHJldHVybiBtYWtlSW50KGRhdGFbb2Zmc2V0XSwgZGF0YVtvZmZzZXQrMV0sIAorICAgICAgICAgICAgICAgICAgICAgICBkYXRhW29mZnNldCsyXSwgZGF0YVtvZmZzZXQrM10pOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGNsYXNzIFJlc291cmNlQmluYXJ5IGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGUgeworICAgICAgICBwcml2YXRlIGJ5dGVbXSB2YWx1ZTsKKyAgICAgICAgcHVibGljIEJ5dGVCdWZmZXIgZ2V0QmluYXJ5KCkgeworCisgICAgICAgICAgICByZXR1cm4gQnl0ZUJ1ZmZlci53cmFwKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIGJ5dGVbXSBnZXRWYWx1ZSgpIHsKKworICAgICAgICAgICAgaW50IG9mZnNldCA9IFJFU19HRVRfT0ZGU0VUKHJlc291cmNlKTsKKworICAgICAgICAgICAgaW50IGxlbmd0aCA9IElDVVJlc291cmNlQnVuZGxlSW1wbC5nZXRJbnQocmF3RGF0YSxvZmZzZXQpOworCisgICAgICAgICAgICBpbnQgYnl0ZU9mZnNldCA9IG9mZnNldCArIGdldEludE9mZnNldCgxKTsKKyAgICAgICAgICAgIGJ5dGVbXSBkc3QgPSBuZXcgYnl0ZVtsZW5ndGhdOworICAgICAgICAgICAgaWYgKEFTU0VSVCkgQXNzZXJ0LmFzc3J0KCJieXRlT2Zmc2V0K2xlbmd0aCA8IHJhd0RhdGEubGVuZ3RoIiwgYnl0ZU9mZnNldCtsZW5ndGggPCByYXdEYXRhLmxlbmd0aCk7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHJhd0RhdGEsIGJ5dGVPZmZzZXQsIGRzdCwgMCwgbGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBkc3Q7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIFJlc291cmNlQmluYXJ5KFN0cmluZyBrZXksIFN0cmluZyByZXNQYXRoLCBsb25nIHJlc291cmNlKSB7CisgICAgICAgICAgICB0aGlzLnJlc291cmNlID0gcmVzb3VyY2U7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgICAgIHRoaXMucmVzUGF0aCA9IHJlc1BhdGg7CisgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRMb2NhbGVJRCgpIHsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGVJRDsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldEJhc2VOYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuIGJhc2VOYW1lOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFVMb2NhbGUgZ2V0VUxvY2FsZSgpIHsKKyAgICAgICAgICAgIHJldHVybiB1bG9jYWxlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0UGFyZW50KCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlSW1wbC50aGlzLmdldFBhcmVudCgpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgY2xhc3MgUmVzb3VyY2VJbnRWZWN0b3IgZXh0ZW5kcyBJQ1VSZXNvdXJjZUJ1bmRsZSB7CisgICAgICAgIHByaXZhdGUgaW50W10gdmFsdWU7CisgICAgICAgIHB1YmxpYyBpbnRbXSBnZXRJbnRWZWN0b3IoKSB7CisgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZSBpbnRbXSBnZXRWYWx1ZSgpIHsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBSRVNfR0VUX09GRlNFVChyZXNvdXJjZSk7CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gSUNVUmVzb3VyY2VCdW5kbGVJbXBsLmdldEludChyYXdEYXRhLG9mZnNldCk7CisgICAgICAgICAgICBpbnQgaW50T2Zmc2V0ID0gb2Zmc2V0ICsgZ2V0SW50T2Zmc2V0KDEpOworICAgICAgICAgICAgaW50W10gdmFsID0gbmV3IGludFtsZW5ndGhdOworICAgICAgICAgICAgaW50IGJ5dGVMZW5ndGggPSBnZXRJbnRPZmZzZXQobGVuZ3RoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKEFTU0VSVCkgQXNzZXJ0LmFzc3J0KCIoaW50T2Zmc2V0K2J5dGVMZW5ndGgpPHJhd0RhdGEubGVuZ3RoIiwgKGludE9mZnNldCtieXRlTGVuZ3RoKTxyYXdEYXRhLmxlbmd0aCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPGxlbmd0aDtpKyspeworICAgICAgICAgICAgICAgIHZhbFtpXT1JQ1VSZXNvdXJjZUJ1bmRsZUltcGwuZ2V0SW50KHJhd0RhdGEsIGludE9mZnNldCtnZXRJbnRPZmZzZXQoaSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHZhbDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgUmVzb3VyY2VJbnRWZWN0b3IoU3RyaW5nIGtleSwgU3RyaW5nIHJlc1BhdGgsIGxvbmcgcmVzb3VyY2UpIHsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJlc291cmNlOworICAgICAgICAgICAgdGhpcy5zaXplID0gMTsKKyAgICAgICAgICAgIHRoaXMucmVzUGF0aCA9IHJlc1BhdGg7CisgICAgICAgICAgICB2YWx1ZSA9IGdldFZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRMb2NhbGVJRCgpIHsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGVJRDsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldEJhc2VOYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuIGJhc2VOYW1lOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFVMb2NhbGUgZ2V0VUxvY2FsZSgpIHsKKyAgICAgICAgICAgIHJldHVybiB1bG9jYWxlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0UGFyZW50KCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlSW1wbC50aGlzLmdldFBhcmVudCgpOworICAgICAgICB9CisgICAgfQorICAgIHByaXZhdGUgU3RyaW5nIGdldFN0cmluZ1ZhbHVlKGxvbmcgcmVzb3VyY2UpIHsKKyAgICAgICAgaW50IG9mZnNldCA9IFJFU19HRVRfT0ZGU0VUKHJlc291cmNlKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IGdldEludChyYXdEYXRhLG9mZnNldCk7CisgICAgICAgIGludCBzdHJpbmdPZmZzZXQgPSBvZmZzZXQgKyBnZXRJbnRPZmZzZXQoMSk7CisgICAgICAgIGNoYXJbXSBkc3QgPSBuZXcgY2hhcltsZW5ndGhdOworICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoIihzdHJpbmdPZmZzZXQrZ2V0Q2hhck9mZnNldChsZW5ndGgpKSA8IHJhd0RhdGEubGVuZ3RoIiwgKHN0cmluZ09mZnNldCtnZXRDaGFyT2Zmc2V0KGxlbmd0aCkpIDwgcmF3RGF0YS5sZW5ndGgpOworICAgICAgICBmb3IoaW50IGk9MDsgaTxsZW5ndGg7IGkrKyl7CisgICAgICAgICAgICBkc3RbaV09Z2V0Q2hhcihyYXdEYXRhLCBzdHJpbmdPZmZzZXQrZ2V0Q2hhck9mZnNldChpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoZHN0KTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBSRVNfUEFUSF9TRVBfQ0hBUiA9ICcvJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVREFUQSA9ICJJQ1VEQVRBIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9DQUxFID0gIkxPQ0FMRSI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldEluZGV4KFN0cmluZyBzKSB7CisgICAgICAgIGlmIChzLmxlbmd0aCgpID49IDEpIHsKKyAgICAgICAgICAgIHJldHVybiBJbnRlZ2VyLnZhbHVlT2YocykuaW50VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGUgZmluZFJlc291cmNlKFN0cmluZyBrZXksIGxvbmcgcmVzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhc2hNYXAgdGFibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXF1ZXN0ZWQpIHsKKyAgICAgICAgQ2xhc3NMb2FkZXIgbG9hZGVyVG9Vc2UgPSBsb2FkZXI7CisgICAgICAgIFN0cmluZyBsb2NhbGUgPSBudWxsLCBrZXlQYXRoID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGJ1bmRsZU5hbWU7CisgICAgICAgIFN0cmluZyByZXNQYXRoID0gZ2V0U3RyaW5nVmFsdWUocmVzb3VyY2UpOworICAgICAgICBpZiAodGFibGUgPT0gbnVsbCkgeworICAgICAgICAgICAgdGFibGUgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICB9CisgICAgICAgIGlmICh0YWJsZS5nZXQocmVzUGF0aCkgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgIkNpcmN1bGFyIHJlZmVyZW5jZXMgaW4gdGhlIHJlc291cmNlIGJ1bmRsZXMiKTsKKyAgICAgICAgfQorICAgICAgICB0YWJsZS5wdXQocmVzUGF0aCwgIiIpOworICAgICAgICBpZiAocmVzUGF0aC5pbmRleE9mKFJFU19QQVRIX1NFUF9DSEFSKSA9PSAwKSB7CisgICAgICAgICAgICBpbnQgaSA9IHJlc1BhdGguaW5kZXhPZihSRVNfUEFUSF9TRVBfQ0hBUiwgMSk7CisgICAgICAgICAgICBpbnQgaiA9IHJlc1BhdGguaW5kZXhPZihSRVNfUEFUSF9TRVBfQ0hBUiwgaSArIDEpOworICAgICAgICAgICAgYnVuZGxlTmFtZSA9IHJlc1BhdGguc3Vic3RyaW5nKDEsIGkpOworICAgICAgICAgICAgbG9jYWxlID0gcmVzUGF0aC5zdWJzdHJpbmcoaSArIDEpOworICAgICAgICAgICAgaWYgKGogIT0gLTEpIHsKKyAgICAgICAgICAgICAgICBsb2NhbGUgPSByZXNQYXRoLnN1YnN0cmluZyhpICsgMSwgaik7CisgICAgICAgICAgICAgICAga2V5UGF0aCA9IHJlc1BhdGguc3Vic3RyaW5nKGogKyAxLCByZXNQYXRoLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vdGhlcmUgaXMgYSBwYXRoIGluY2x1ZGVkCisgICAgICAgICAgICBpZiAoYnVuZGxlTmFtZS5lcXVhbHMoSUNVREFUQSkpIHsKKyAgICAgICAgICAgICAgICBidW5kbGVOYW1lID0gSUNVX0JBU0VfTkFNRTsKKyAgICAgICAgICAgICAgICBsb2FkZXJUb1VzZSA9IElDVV9EQVRBX0NMQVNTX0xPQURFUjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vbm8gcGF0aCBzdGFydCB3aXRoIGxvY2FsZQorICAgICAgICAgICAgaW50IGkgPSByZXNQYXRoLmluZGV4T2YoUkVTX1BBVEhfU0VQX0NIQVIpOworICAgICAgICAgICAga2V5UGF0aCA9IHJlc1BhdGguc3Vic3RyaW5nKGkgKyAxKTsKKyAgICAgICAgICAgIGlmIChpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgbG9jYWxlID0gcmVzUGF0aC5zdWJzdHJpbmcoMCwgaSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvY2FsZSA9IGtleVBhdGg7CisgICAgICAgICAgICAgICAga2V5UGF0aCA9IG51bGw7Ly9rZXlQYXRoLnN1YnN0cmluZyhpLCBrZXlQYXRoLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1bmRsZU5hbWUgPSBiYXNlTmFtZTsKKyAgICAgICAgfQorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBudWxsOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBzdWIgPSBudWxsOworICAgICAgICBpZihidW5kbGVOYW1lLmVxdWFscyhMT0NBTEUpKXsKKyAgICAgICAgICAgIGJ1bmRsZU5hbWUgPSBiYXNlTmFtZTsKKyAgICAgICAgICAgIGJ1bmRsZSA9IHJlcXVlc3RlZDsKKyAgICAgICAgICAgIGtleVBhdGggPSByZXNQYXRoLnN1YnN0cmluZyhMT0NBTEUubGVuZ3RoKCkgKyAyLyogcHJlcGVuZGluZyBhbmQgYXBwZW5kaW5nIC8gKi8sIHJlc1BhdGgubGVuZ3RoKCkpOworICAgICAgICAgICAgbG9jYWxlID0gcmVxdWVzdGVkLmdldExvY2FsZUlEKCk7CisgICAgICAgICAgICBzdWIgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5maW5kUmVzb3VyY2VXaXRoRmFsbGJhY2soa2V5UGF0aCwgcmVxdWVzdGVkLCBudWxsKTsKKyAgICAgICAgICAgIHN1Yi5yZXNQYXRoID0gIi8iICsgc3ViLmdldExvY2FsZUlEKCkgKyAiLyIgKyBrZXlQYXRoOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgLy8ge2RsZn0gbXVzdCB1c2UgcmVxdWVzdG9yJ3MgY2xhc3MgbG9hZGVyIHRvIGdldCByZXNvdXJjZXMgZnJvbSBzYW1lIGphcgorICAgICAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBnZXRCdW5kbGVJbnN0YW5jZShidW5kbGVOYW1lLCAiIiwKKyAgICAgICAgICAgICAgICAgICAgIGxvYWRlclRvVXNlLCBmYWxzZSk7IAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBnZXRCdW5kbGVJbnN0YW5jZShidW5kbGVOYW1lLCBsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICBsb2FkZXJUb1VzZSwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGlmIChrZXlQYXRoICE9IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplciBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoa2V5UGF0aCwgIi8iKTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGN1cnJlbnQgPSBidW5kbGU7CisgICAgICAgICAgICB3aGlsZSAoc3QuaGFzTW9yZVRva2VucygpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHN1YktleSA9IHN0Lm5leHRUb2tlbigpOworICAgICAgICAgICAgICAgIHN1YiA9IGN1cnJlbnQuZ2V0SW1wbChzdWJLZXksIHRhYmxlLCByZXF1ZXN0ZWQpOworICAgICAgICAgICAgICAgIGlmIChzdWIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY3VycmVudCA9IHN1YjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGlmIHRoZSBzdWIgcmVzb3VyY2UgaXMgbm90IGZvdW5kCisgICAgICAgICAgICAvLyB0cnkgZmV0Y2hpbmcgdGhlIHN1YiByZXNvdXJjZSB3aXRoCisgICAgICAgICAgICAvLyB0aGUga2V5IG9mIHRoaXMgYWxpYXMgcmVzb3VyY2UKKyAgICAgICAgICAgIHN1YiA9IGJ1bmRsZS5nZXQoa2V5KTsKKyAgICAgICAgfQorICAgICAgICAgICAgc3ViLnJlc1BhdGggPSByZXNQYXRoOworICAgICAgICB9CisgICAgICAgIGlmIChzdWIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihsb2NhbGVJRCwgYmFzZU5hbWUsIGtleSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN1YjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY5OGQzMjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw5OCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLk5vU3VjaEVsZW1lbnRFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbjsKKworCisvKioKKyAqIDxwPkNsYXNzIGZvciBlbmFibGluZyBpdGVyYXRpb24gb3ZlciBVUmVzb3VyY2VCdW5kbGUgb2JqZWN0cy4KKyAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAqIDxwcmU+CisgKiBJQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yIGl0ZXJhdG9yID0gcmVzQi5nZXRJdGVyYXRvcigpOworICogSUNVUmVzb3VyY2VCdW5kbGUgdGVtcDsKKyAqIHdoaWxlIChpdGVyYXRvci5oYXNOZXh0KCkpIHsKKyAqICAgIHRlbXAgPSBpdGVyYXJ0b3IubmV4dCgpOyAgCisgKiAgICBpbnQgdHlwZSA9IHRlbXAuZ2V0VHlwZSgpOworICogICAgc3dpdGNoKHR5cGUpeworICogICAgICBjYXNlIFVSZXNvdXJjZUJ1bmRsZS5TVFJJTkc6CisgKiAgICAgICAgICBzdHIgPSB0ZW1wLmdldFN0cmluZygpOworICogICAgICAgICAgYnJlYWs7CisgKiAgICAgIGNhc2UgVVJlc291cmNlQnVuZGxlLklOVDoKKyAqICAgICAgICAgIGludGVnZXIgPSB0ZW1wLmdldEludCgpOworICogICAgICAgICAgYnJlYWs7CisgKiAgICAgLi4uLi4KKyAqICAgIH0KKyAqICAgLy8gZG8gc29tZXRoaW5nIGludGVyZXN0aW5nIHdpdGggZGF0YSBjb2xsZWN0ZWQKKyAqIH0KKyAqIDwvcHJlPgorICogQGF1dGhvciByYW0KKyAqIEBkcmFmdCBJQ1UgMy4wCisgKi8KK3B1YmxpYyBjbGFzcyBJQ1VSZXNvdXJjZUJ1bmRsZUl0ZXJhdG9yeworICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlOworICAgIHByaXZhdGUgaW50IGluZGV4ID0gMDsKKyAgICBwcml2YXRlIGludCBzaXplID0gMDsKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSByZXNvdXJjZSBidW5kbGUgaXRlcmF0b3IgZm9yIHRoZQorICAgICAqIGdpdmVuIHJlc291cmNlIGJ1bmRsZQorICAgICAqIAorICAgICAqIEBwYXJhbSBibmRsIFRoZSByZXNvdXJjZSBidW5kbGUgdG8gaXRlcmF0ZSBvdmVyCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgSUNVUmVzb3VyY2VCdW5kbGVJdGVyYXRvcihJQ1VSZXNvdXJjZUJ1bmRsZSBibmRsKXsKKyAgICAgICAgYnVuZGxlID0gYm5kbDsgICAKKyAgICAgICAgc2l6ZSA9IGJ1bmRsZS5nZXRTaXplKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbmV4dCBlbGVtZW50IG9mIHRoaXMgaXRlcmF0b3IgaWYgdGhpcyBpdGVyYXRvciBvYmplY3QgaGFzIGF0IGxlYXN0IG9uZSBtb3JlIGVsZW1lbnQgdG8gcHJvdmlkZQorICAgICAqIEByZXR1cm4gdGhlIFVSZXNvdXJjZUJ1bmRsZSBvYmplY3QKKyAgICAgKiBAdGhyb3dzIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBuZXh0KCl0aHJvd3MgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbnsKKyAgICAgICAgaWYoaW5kZXg8c2l6ZSl7CisgICAgICAgICAgICByZXR1cm4gYnVuZGxlLmdldChpbmRleCsrKTsKKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgTm9TdWNoRWxlbWVudEV4Y2VwdGlvbigpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IFN0cmluZyBvZiB0aGlzIGl0ZXJhdG9yIGlmIHRoaXMgaXRlcmF0b3Igb2JqZWN0IGhhcyBhdCBsZWFzdCBvbmUgbW9yZSBlbGVtZW50IHRvIHByb3ZpZGUKKyAgICAgKiBAcmV0dXJuIHRoZSBVUmVzb3VyY2VCdW5kbGUgb2JqZWN0CisgICAgICogQHRocm93cyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uCisgICAgICogQHRocm93cyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbmV4dFN0cmluZygpdGhyb3dzIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24sIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbnsKKyAgICAgICAgaWYoaW5kZXg8c2l6ZSl7CisgICAgICAgICAgICByZXR1cm4gYnVuZGxlLmdldFN0cmluZyhpbmRleCsrKTsKKyAgICAgICAgfSAgCisgICAgICAgIHRocm93IG5ldyBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlc2V0cyB0aGUgaW50ZXJuYWwgY29udGV4dCBvZiBhIHJlc291cmNlIHNvIHRoYXQgaXRlcmF0aW9uIHN0YXJ0cyBmcm9tIHRoZSBmaXJzdCBlbGVtZW50LgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKXsKKyAgICAgICAgLy9yZXNldCB0aGUgaW50ZXJuYWwgY29udGV4dCAgIAorICAgICAgICBpbmRleCA9IDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiByZXNvdXJjZSBoYXMgYW5vdGhlciBlbGVtZW50IHRvIGl0ZXJhdGUgb3Zlci4KKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlcmUgYXJlIG1vcmUgZWxlbWVudHMsIEZBTFNFIGlmIHRoZXJlIGlzIG5vIG1vcmUgZWxlbWVudHMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc05leHQoKXsKKyAgICAgICAgcmV0dXJuIGluZGV4IDwgc2l6ZTsgICAKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVUmVzb3VyY2VCdW5kbGVSZWFkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlUmVhZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU5MTdiYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0lDVVJlc291cmNlQnVuZGxlUmVhZGVyLmphdmEKQEAgLTAsMCArMSwzMDMgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworCisKKy8qKgorICogVGhpcyBjbGFzcyByZWFkcyB0aGUgKi5yZXMgcmVzb3VyY2UgYnVuZGxlIGZvcm1hdAorICoKKyAqIChGb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBmaWxlIGZvcm1hdCBkb2N1bWVudGF0aW9uIHNlZQorICogSUNVNEMncyBzb3VyY2UvY29tbW9uL3VyZXNkYXRhLmggZmlsZS4pCisgKgorICogRmlsZSBmb3JtYXQgZm9yIC5yZXMgcmVzb3VyY2UgYnVuZGxlIGZpbGVzIChmb3JtYXRWZXJzaW9uPTEuMikKKyAqCisgKiBBbiBJQ1U0QyByZXNvdXJjZSBidW5kbGUgZmlsZSAoLnJlcykgaXMgYSBiaW5hcnksIG1lbW9yeS1tYXBwYWJsZSBmaWxlCisgKiB3aXRoIG5lc3RlZCwgaGllcmFyY2hpY2FsIGRhdGEgc3RydWN0dXJlcy4KKyAqIEl0IHBoeXNpY2FsbHkgY29udGFpbnMgdGhlIGZvbGxvd2luZzoKKyAqCisgKiAgIFJlc291cmNlIHJvb3Q7IC0tIDMyLWJpdCBSZXNvdXJjZSBpdGVtLCByb290IGl0ZW0gZm9yIHRoaXMgYnVuZGxlJ3MgdHJlZTsKKyAqICAgICAgICAgICAgICAgICAgICAgY3VycmVudGx5LCB0aGUgcm9vdCBpdGVtIG11c3QgYmUgYSB0YWJsZSBvciB0YWJsZTMyIHJlc291cmNlIGl0ZW0KKyAqICAgaW50MzJfdCBpbmRleGVzW2luZGV4ZXNbMF1dOyAtLSBhcnJheSBvZiBpbmRleGVzIGZvciBmcmllbmRseQorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRpbmcgYW5kIHN3YXBwaW5nOyBzZWUgVVJFU19JTkRFWF8qIGFib3ZlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGluIGZvcm1hdFZlcnNpb24gMS4xIChJQ1UgMi44KQorICogICBjaGFyIGtleXNbXTsgLS0gY2hhcmFjdGVycyBmb3Iga2V5IHN0cmluZ3MKKyAqICAgICAgICAgICAgICAgICAgIChmb3JtYXRWZXJzaW9uIDEuMDogdXAgdG8gNjVrIG9mIGNoYXJhY3RlcnM7IDEuMTogPDJHKQorICogICAgICAgICAgICAgICAgICAgKG1pbnVzIHRoZSBzcGFjZSBmb3Igcm9vdCBhbmQgaW5kZXhlc1tdKSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIGNvbnNpc3Qgb2YgaW52YXJpYW50IGNoYXJhY3RlcnMgKEFTQ0lJL0VCQ0RJQykgYW5kIGFyZSBOVUwtdGVybWluYXRlZDsKKyAqICAgICAgICAgICAgICAgICAgIHBhZGRlZCB0byBtdWx0aXBsZSBvZiA0IGJ5dGVzIGZvciA0LWFsaWdubWVudCBvZiB0aGUgZm9sbG93aW5nIGRhdGEKKyAqICAgZGF0YTsgLS0gZGF0YSBkaXJlY3RseSBhbmQgaW5kaXJlY3RseSBpbmRleGVkIGJ5IHRoZSByb290IGl0ZW07CisgKiAgICAgICAgICAgIHRoZSBzdHJ1Y3R1cmUgaXMgZGV0ZXJtaW5lZCBieSB3YWxraW5nIHRoZSB0cmVlCisgKgorICogRWFjaCByZXNvdXJjZSBidW5kbGUgaXRlbSBoYXMgYSAzMi1iaXQgUmVzb3VyY2UgaGFuZGxlIChzZWUgdHlwZWRlZiBhYm92ZSkKKyAqIHdoaWNoIGNvbnRhaW5zIHRoZSBpdGVtIHR5cGUgbnVtYmVyIGluIGl0cyB1cHBlciA0IGJpdHMgKDMxLi4yOCkgYW5kIGVpdGhlcgorICogYW4gb2Zmc2V0IG9yIGEgZGlyZWN0IHZhbHVlIGluIGl0cyBsb3dlciAyOCBiaXRzICgyNy4uMCkuCisgKiBUaGUgb3JkZXIgb2YgaXRlbXMgaXMgdW5kZWZpbmVkIGFuZCBvbmx5IGRldGVybWluZWQgYnkgd2Fsa2luZyB0aGUgdHJlZS4KKyAqIExlYXZlcyBvZiB0aGUgdHJlZSBtYXkgYmUgc3RvcmVkIGZpcnN0IG9yIGxhc3Qgb3IgYW55d2hlcmUgaW4gYmV0d2VlbiwKKyAqIGFuZCBpdCBpcyBpbiB0aGVvcnkgcG9zc2libGUgdG8gaGF2ZSB1bnJlZmVyZW5jZWQgaG9sZXMgaW4gdGhlIGZpbGUuCisgKgorICogRGlyZWN0IHZhbHVlczoKKyAqIC0gRW1wdHkgVW5pY29kZSBzdHJpbmdzIGhhdmUgYW4gb2Zmc2V0IHZhbHVlIG9mIDAgaW4gdGhlIFJlc291cmNlIGhhbmRsZSBpdHNlbGYuCisgKiAtIEludGVnZXIgdmFsdWVzIGFyZSAyOC1iaXQgdmFsdWVzIHN0b3JlZCBpbiB0aGUgUmVzb3VyY2UgaGFuZGxlIGl0c2VsZjsKKyAqICAgdGhlIGludGVycHJldGF0aW9uIG9mIHVuc2lnbmVkIHZzLiBzaWduZWQgaW50ZWdlcnMgaXMgdXAgdG8gdGhlIGFwcGxpY2F0aW9uLgorICoKKyAqIEFsbCBvdGhlciB0eXBlcyBhbmQgdmFsdWVzIHVzZSAyOC1iaXQgb2Zmc2V0cyB0byBwb2ludCB0byB0aGUgaXRlbSdzIGRhdGEuCisgKiBUaGUgb2Zmc2V0IGlzIGFuIGluZGV4IHRvIHRoZSBmaXJzdCAzMi1iaXQgd29yZCBvZiB0aGUgdmFsdWUsIHJlbGF0aXZlIHRvIHRoZQorICogc3RhcnQgb2YgdGhlIHJlc291cmNlIGRhdGEgKGkuZS4sIHRoZSByb290IGl0ZW0gaGFuZGxlIGlzIGF0IG9mZnNldCAwKS4KKyAqIFRvIGdldCBieXRlIG9mZnNldHMsIHRoZSBvZmZzZXQgaXMgbXVsdGlwbGllZCBieSA0IChvciBzaGlmdGVkIGxlZnQgYnkgMiBiaXRzKS4KKyAqIEFsbCByZXNvdXJjZSBpdGVtIHZhbHVlcyBhcmUgNC1hbGlnbmVkLgorICoKKyAqIFRoZSBzdHJ1Y3R1cmVzIChtZW1vcnkgbGF5b3V0cykgZm9yIHRoZSB2YWx1ZXMgZm9yIGVhY2ggaXRlbSB0eXBlIGFyZSBsaXN0ZWQKKyAqIGluIHRoZSB0YWJsZSBhYm92ZS4KKyAqCisgKiBOZXN0ZWQsIGhpZXJhcmNoaWNhbCBzdHJ1Y3R1cmVzOiAtLS0tLS0tLS0tLS0tCisgKgorICogVGFibGUgaXRlbXMgY29udGFpbiBrZXktdmFsdWUgcGFpcnMgd2hlcmUgdGhlIGtleXMgYXJlIDE2LWJpdCBvZmZzZXRzIHRvIGNoYXIgKiBrZXkgc3RyaW5ncy4KKyAqIEtleSBzdHJpbmcgb2Zmc2V0cyBhcmUgYWxzbyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlIHJlc291cmNlIGRhdGEgKG9mIHRoZSByb290IGhhbmRsZSksCisgKiBpLmUuLCB0aGUgZmlyc3Qgc3RyaW5nIGhhcyBhbiBvZmZzZXQgb2YgNCAoYWZ0ZXIgdGhlIDQtYnl0ZSByb290IGhhbmRsZSkuCisgKgorICogVGhlIHZhbHVlcyBvZiB0aGVzZSBwYWlycyBhcmUgUmVzb3VyY2UgaGFuZGxlcy4KKyAqCisgKiBBcnJheSBpdGVtcyBhcmUgc2ltcGxlIHZlY3RvcnMgb2YgUmVzb3VyY2UgaGFuZGxlcy4KKyAqCisgKiBBbiBhbGlhcyBpdGVtIGlzIHNwZWNpYWwgKGFuZCBuZXcgaW4gSUNVIDIuNCk6IC0tLS0tLS0tLS0tLS0tCisgKgorICogSXRzIG1lbW9yeSBsYXlvdXQgaXMganVzdCBsaWtlIGZvciBhIFVuaWNvZGVTdHJpbmcsIGJ1dCBhdCBydW50aW1lIGl0IHJlc29sdmVzIHRvCisgKiBhbm90aGVyIHJlc291cmNlIGJ1bmRsZSdzIGl0ZW0gYWNjb3JkaW5nIHRvIHRoZSBwYXRoIGluIHRoZSBzdHJpbmcuCisgKiBUaGlzIGlzIHVzZWQgdG8gc2hhcmUgaXRlbXMgYWNyb3NzIGJ1bmRsZXMgdGhhdCBhcmUgaW4gZGlmZmVyZW50IGxvb2t1cC9mYWxsYmFjaworICogY2hhaW5zIChlLmcuLCBsYXJnZSBjb2xsYXRpb24gZGF0YSBhbW9uZyB6aF9UVyBhbmQgemhfSEspLgorICogVGhpcyBzYXZlcyBzcGFjZSAoZm9yIGxhcmdlIGl0ZW1zKSBhbmQgbWFpbnRlbmFuY2UgZWZmb3J0IChsZXNzIGR1cGxpY2F0aW9uIG9mIGRhdGEpLgorICoKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogUmVzb3VyY2UgdHlwZXM6CisgKgorICogTW9zdCByZXNvdXJjZXMgaGF2ZSB0aGVpciB2YWx1ZXMgc3RvcmVkIGF0IGZvdXItYnl0ZSBvZmZzZXRzIGZyb20gdGhlIHN0YXJ0CisgKiBvZiB0aGUgcmVzb3VyY2UgZGF0YS4gVGhlc2UgdmFsdWVzIGFyZSBhdCBsZWFzdCA0LWFsaWduZWQuCisgKiBTb21lIHJlc291cmNlIHZhbHVlcyBhcmUgc3RvcmVkIGRpcmVjdGx5IGluIHRoZSBvZmZzZXQgZmllbGQgb2YgdGhlIFJlc291cmNlIGl0c2VsZi4KKyAqIFNlZSBVUmVzVHlwZSBpbiB1bmljb2RlL3VyZXMuaCBmb3IgZW51bWVyYXRpb24gY29uc3RhbnRzIGZvciBSZXNvdXJjZSB0eXBlcy4KKyAqCisgKiBUeXBlIE5hbWUgICAgICAgICAgICBNZW1vcnkgbGF5b3V0IG9mIHZhbHVlcworICogICAgICAgICAgICAgICAgICAgICAgKGluIHBhcmVudGhlc2VzOiBzY2FsYXIsIG5vbi1vZmZzZXQgdmFsdWVzKQorICoKKyAqIDAgIFVuaWNvZGUgU3RyaW5nOiAgIGludDMyX3QgbGVuZ3RoLCBVQ2hhcltsZW5ndGhdLCAoVUNoYXIpMCwgKHBhZGRpbmcpCisgKiAgICAgICAgICAgICAgICAgIG9yICAoZW1wdHkgc3RyaW5nICgiIikgaWYgb2Zmc2V0PT0wKQorICogMSAgQmluYXJ5OiAgICAgICAgICAgaW50MzJfdCBsZW5ndGgsIHVpbnQ4X3RbbGVuZ3RoXSwgKHBhZGRpbmcpCisgKiAgICAgICAgICAgICAgICAgICAgICAtIHRoaXMgdmFsdWUgc2hvdWxkIGJlIDMyLWFsaWduZWQgLQorICogMiAgVGFibGU6ICAgICAgICAgICAgdWludDE2X3QgY291bnQsIHVpbnQxNl90IGtleVN0cmluZ09mZnNldHNbY291bnRdLCAodWludDE2X3QgcGFkZGluZyksIFJlc291cmNlW2NvdW50XQorICogMyAgQWxpYXM6ICAgICAgICAgICAgKHBoeXNpY2FsbHkgc2FtZSB2YWx1ZSBsYXlvdXQgYXMgc3RyaW5nLCBuZXcgaW4gSUNVIDIuNCkKKyAqIDQgIFRhYmxlMzI6ICAgICAgICAgIGludDMyX3QgY291bnQsIGludDMyX3Qga2V5U3RyaW5nT2Zmc2V0c1tjb3VudF0sIFJlc291cmNlW2NvdW50XQorICogICAgICAgICAgICAgICAgICAgICAgKG5ldyBpbiBmb3JtYXRWZXJzaW9uIDEuMS9JQ1UgMi44KQorICoKKyAqIDcgIEludGVnZXI6ICAgICAgICAgICgyOC1iaXQgb2Zmc2V0IGlzIGludGVnZXIgdmFsdWUpCisgKiA4ICBBcnJheTogICAgICAgICAgICBpbnQzMl90IGNvdW50LCBSZXNvdXJjZVtjb3VudF0KKyAqCisgKiAxNCBJbnRlZ2VyIFZlY3RvcjogICBpbnQzMl90IGxlbmd0aCwgaW50MzJfdFtsZW5ndGhdCisgKiAxNSBSZXNlcnZlZDogICAgICAgICBUaGlzIHZhbHVlIGRlbm90ZXMgc3BlY2lhbCBwdXJwb3NlIHJlc291cmNlcyBhbmQgaXMgZm9yIGludGVybmFsIHVzZS4KKyAqCisgKiBOb3RlIHRoYXQgdGhlcmUgYXJlIDMgdHlwZXMgd2l0aCBkYXRhIHZlY3RvciB2YWx1ZXM6CisgKiAtIFZlY3RvcnMgb2YgOC1iaXQgYnl0ZXMgc3RvcmVkIGFzIHR5cGUgQmluYXJ5LgorICogLSBWZWN0b3JzIG9mIDE2LWJpdCB3b3JkcyBzdG9yZWQgYXMgdHlwZSBVbmljb2RlIFN0cmluZworICogICAgICAgICAgICAgICAgICAgICAobm8gdmFsdWUgcmVzdHJpY3Rpb25zLCBhbGwgdmFsdWVzIDAuLmZmZmYgYWxsb3dlZCEpLgorICogLSBWZWN0b3JzIG9mIDMyLWJpdCB3b3JkcyBzdG9yZWQgYXMgdHlwZSBJbnRlZ2VyIFZlY3Rvci4KKyAqCisgKgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgSUNVUmVzb3VyY2VCdW5kbGVSZWFkZXIgaW1wbGVtZW50cyBJQ1VCaW5hcnkuQXV0aGVudGljYXRleworCisgICAgLyoqCisgICAgICogRmlsZSBmb3JtYXQgdmVyc2lvbiB0aGF0IHRoaXMgY2xhc3MgdW5kZXJzdGFuZHMuCisgICAgICogIlJlc0IiCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9JRFtdID0geyhieXRlKTB4NTIsIChieXRlKTB4NjUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDczLCAoYnl0ZSkweDQyfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBJQ1VfUkVTT1VSQ0VfU1VGRklYID0gIi5yZXMiOworICAgIAorICAgIC8qIGluZGV4ZXNbXSB2YWx1ZSBuYW1lczsgaW5kZXhlcyBhcmUgZ2VuZXJhbGx5IDMyLWJpdCAoUmVzb3VyY2UpIGluZGV4ZXMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgVVJFU19JTkRFWF9MRU5HVEggICAgICAgICAgID0gMDsgICAgICAgIC8qIFswXSBjb250YWlucyBVUkVTX0lOREVYX1RPUD09dGhlIGxlbmd0aCBvZiBpbmRleGVzW10gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgVVJFU19JTkRFWF9TVFJJTkdTX1RPUCAgICAgID0gMTsgICAgICAgIC8qIFsxXSBjb250YWlucyB0aGUgdG9wIG9mIHRoZSBzdHJpbmdzLCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgIHNhbWUgYXMgdGhlIGJvdHRvbSBvZiByZXNvdXJjZXMsIHJvdW5kZWQgdXAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgVVJFU19JTkRFWF9SRVNPVVJDRVNfVE9QICAgID0gMjsgICAgICAgIC8qIFsyXSBjb250YWlucyB0aGUgdG9wIG9mIGFsbCByZXNvdXJjZXMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgVVJFU19JTkRFWF9CVU5ETEVfVE9QICAgICAgID0gMzsgICAgICAgIC8qIFszXSBjb250YWlucyB0aGUgdG9wIG9mIHRoZSBidW5kbGUsICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgaW4gY2FzZSBpdCB3ZXJlIGV2ZXIgZGlmZmVyZW50IGZyb20gWzJdICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICAgIFVSRVNfSU5ERVhfTUFYX1RBQkxFX0xFTkdUSCA9IDQ7ICAgICAgICAvKiBbNF0gbWF4LiBsZW5ndGggb2YgYW55IHRhYmxlICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICAgIFVSRVNfSU5ERVhfQVRUUklCVVRFUyAgICAgICA9IDU7ICAgICAgICAvKiBbNV0gYXR0cmlidXRlcyBiaXQgc2V0LCBzZWUgVVJFU19BVFRfKiAobmV3IGluIGZvcm1hdFZlcnNpb24gMS4yKSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCAgICBVUkVTX0lOREVYX1RPUCAgICAgICAgICAgICAgPSA2OworCisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgICAgVVJFU19TVFJJTkdTX0JPVFRPTT0oMStVUkVTX0lOREVYX1RPUCkqNDsKKworICAgIC8qCisgICAgICogTm9mYWxsYmFjayBhdHRyaWJ1dGUsIGF0dHJpYnV0ZSBiaXQgMCBpbiBpbmRleGVzW1VSRVNfSU5ERVhfQVRUUklCVVRFU10uCisgICAgICogTmV3IGluIGZvcm1hdFZlcnNpb24gMS4yIChJQ1UgMy42KS4KKyAgICAgKgorICAgICAqIElmIHNldCwgdGhlbiB0aGlzIHJlc291cmNlIGJ1bmRsZSBpcyBhIHN0YW5kYWxvbmUgYnVuZGxlLgorICAgICAqIElmIG5vdCBzZXQsIHRoZW4gdGhlIGJ1bmRsZSBwYXJ0aWNpcGF0ZXMgaW4gbG9jYWxlIGZhbGxiYWNrLCBldmVudHVhbGx5CisgICAgICogYWxsIHRoZSB3YXkgdG8gdGhlIHJvb3QgYnVuZGxlLgorICAgICAqIElmIGluZGV4ZXNbXSBpcyBtaXNzaW5nIG9yIHRvbyBzaG9ydCwgdGhlbiB0aGUgYXR0cmlidXRlIGNhbm5vdCBiZSBkZXRlcm1pbmVkCisgICAgICogcmVsaWFibHkuIERlcGVuZGVuY3kgY2hlY2tpbmcgc2hvdWxkIGlnbm9yZSBzdWNoIGJ1bmRsZXMsIGFuZCBsb2FkaW5nIHNob3VsZAorICAgICAqIHVzZSBmYWxsYmFja3MuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVSRVNfQVRUX05PX0ZBTExCQUNLID0gMTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKyAgICAKKyAgICBwcml2YXRlIGJ5dGVbXSAvKiBmb3JtYXRWZXJzaW9uLCAqLyBkYXRhVmVyc2lvbjsKKworICAgIHByaXZhdGUgaW50IHJvb3RSZXM7CisgICAgcHJpdmF0ZSBpbnRbXSBpbmRleGVzOworICAgIHByaXZhdGUgYm9vbGVhbiBub0ZhbGxiYWNrOyAvKiBzZWUgVVJFU19BVFRfTk9fRkFMTEJBQ0sgKi8KKworICAgIHByaXZhdGUgYnl0ZVtdIGRhdGE7CisKKyAgICBwcml2YXRlIElDVVJlc291cmNlQnVuZGxlUmVhZGVyKElucHV0U3RyZWFtIHN0cmVhbSwgU3RyaW5nIHJlc29sdmVkTmFtZSl7CisKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBicyA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKHN0cmVhbSk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIGlmKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBJbnB1dFN0cmVhbSBjbGFzcyBpczogIiArIHN0cmVhbS5nZXRDbGFzcygpLmdldE5hbWUoKSk7CisgICAgICAgICAgICBpZihERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJUaGUgQnVmZmVyZWRJbnB1dFN0cmVhbSBjbGFzcyBpczogIiArIGJzLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgIGlmKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBieXRlcyBhdmlhbGFibGUgaW4gc3RyZWFtIGJlZm9yZSByZWFkaW5nIHRoZSBoZWFkZXI6ICIgKyBicy5hdmFpbGFibGUoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRhdGFWZXJzaW9uID0gSUNVQmluYXJ5LnJlYWRIZWFkZXIoYnMsREFUQV9GT1JNQVRfSUQsdGhpcyk7CisKKyAgICAgICAgICAgIGlmKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBieXRlcyBhdmFpbGFibGUgaW4gc3RyZWFtIGFmdGVyIHJlYWRpbmcgdGhlIGhlYWRlcjogIiArIGJzLmF2YWlsYWJsZSgpKTsKKyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICByZWFkRGF0YShicyk7CisgICAgICAgICAgICBzdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgfWNhdGNoKElPRXhjZXB0aW9uIGV4KXsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiRGF0YSBmaWxlICIrIHJlc29sdmVkTmFtZSsgIiBpcyBjb3JydXB0LiIsIGV4KTsgICAKKy8vI2Vsc2UKKy8vIyMgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiRGF0YSBmaWxlICIrIHJlc29sdmVkTmFtZSsgIiBpcyBjb3JydXB0LiIpOyAgIAorLy8jZW5kaWYKKyAgICAgICAgfQorICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIElDVVJlc291cmNlQnVuZGxlUmVhZGVyIGdldFJlYWRlcihTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lLCBDbGFzc0xvYWRlciByb290KXsKKyAgICAgICAgU3RyaW5nIHJlc29sdmVkTmFtZSA9IGdldEZ1bGxOYW1lKGJhc2VOYW1lLCBsb2NhbGVOYW1lKTsKKyAgICAgICAgSW5wdXRTdHJlYW0gc3RyZWFtID0gSUNVRGF0YS5nZXRTdHJlYW0ocm9vdCxyZXNvbHZlZE5hbWUpOworICAgICAgICAKKyAgICAgICAgaWYoc3RyZWFtPT1udWxsKXsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlUmVhZGVyIHJlYWRlciA9IG5ldyBJQ1VSZXNvdXJjZUJ1bmRsZVJlYWRlcihzdHJlYW0sIHJlc29sdmVkTmFtZSk7CisgICAgICAgIHJldHVybiByZWFkZXI7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB3cml0ZUludChpbnQgaSwgYnl0ZVtdIGJ5dGVzLCBpbnQgb2Zmc2V0KSB7CisgICAgICAgIGJ5dGVzW29mZnNldCsrXT0oYnl0ZSkoaT4+MjQpOworICAgICAgICBieXRlc1tvZmZzZXQrK109KGJ5dGUpKGk+PjE2KTsKKyAgICAgICAgYnl0ZXNbb2Zmc2V0KytdPShieXRlKShpPj44KTsKKyAgICAgICAgYnl0ZXNbb2Zmc2V0XT0oYnl0ZSlpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZWFkRGF0YShJbnB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIAorICAgICAgICBEYXRhSW5wdXRTdHJlYW0gZHMgPSBuZXcgRGF0YUlucHV0U3RyZWFtKHN0cmVhbSk7CisKKyAgICAgICAgaWYoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlIERhdGFJbnB1dFN0cmVhbSBjbGFzcyBpczogIiArIGRzLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKyAgICAgICAgaWYoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlIGF2YWlsYWJsZSBieXRlcyBpbiB0aGUgc3RyZWFtIGJlZm9yZSByZWFkaW5nIHRoZSBkYXRhOiAiK2RzLmF2YWlsYWJsZSgpKTsKKworICAgICAgICAvKgorICAgICAgICAgKiBUaGUgZm9sbG93aW5nIHdpbGwgcmVhZCB0d28gaW50ZWdlcnMgYmVmb3JlIGRzLm1hcmsoKS4KKyAgICAgICAgICogTGF0ZXIsIHRoZSB0d28gaW50ZWdlcnMgbmVlZCB0byBiZSBwbGFjZWQgaW50byBkYXRhW10sCisgICAgICAgICAqIHRoZW4gZHMucmVzZXQoKSwgdGhlbiBkcy5yZWFkRnVsbHkoaW50byByZXN0IG9mIGRhdGFbXSkuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyB0aGUgcmVhZExpbWl0IGZvciBkcy5tYXJrKCkKKyAgICAgICAgICogdW50aWwgd2UgaGF2ZSByZWFkIHRoZSBzZWNvbmQgaW50ZWdlciAoaW5kZXhMZW5ndGgpLgorICAgICAgICAgKi8KKyAgICAgICAgcm9vdFJlcyA9IGRzLnJlYWRJbnQoKTsKKworICAgICAgICAvLyByZWFkIHRoZSB2YXJpYWJsZS1sZW5ndGggaW5kZXhlc1tdIGFycmF5CisgICAgICAgIGludCBpbmRleExlbmd0aCA9IGRzLnJlYWRJbnQoKTsKKyAgICAgICAgZHMubWFyaygoaW5kZXhMZW5ndGgtMSkqNCk7CisKKyAgICAgICAgaW5kZXhlcyA9IG5ldyBpbnRbaW5kZXhMZW5ndGhdOworICAgICAgICBpbmRleGVzW1VSRVNfSU5ERVhfTEVOR1RIXSA9IGluZGV4TGVuZ3RoOworCisgICAgICAgIGZvcihpbnQgaT0xOyBpPGluZGV4TGVuZ3RoOyBpKyspeworICAgICAgICAgICAgaW5kZXhlc1tpXSA9IGRzLnJlYWRJbnQoKTsgICAKKyAgICAgICAgfQorCisgICAgICAgIC8vIGRldGVybWluZSBpZiB0aGlzIHJlc291cmNlIGJ1bmRsZSBmYWxscyBiYWNrIHRvIGEgcGFyZW50IGJ1bmRsZQorICAgICAgICAvLyBhbG9uZyBub3JtYWwgbG9jYWxlIElEIGZhbGxiYWNrCisgICAgICAgIG5vRmFsbGJhY2sgPQorICAgICAgICAgICAgaW5kZXhMZW5ndGggPiBVUkVTX0lOREVYX0FUVFJJQlVURVMgJiYKKyAgICAgICAgICAgIChpbmRleGVzW1VSRVNfSU5ERVhfQVRUUklCVVRFU10mVVJFU19BVFRfTk9fRkFMTEJBQ0spIT0wOworCisgICAgICAgIC8vIHJlYWQgdGhlIGVudGlyZSBidW5kbGUgKGFmdGVyIHRoZSBoZWFkZXIpIGludG8gZGF0YVtdCisgICAgICAgIC8vIHB1dCByb290UmVzIGFuZCBpbmRleExlbmd0aCBpbnRvIGRhdGFbMC4uN10KKyAgICAgICAgLy8gYW5kIHRoZSByZXN0IG9mIHRoZSBkYXRhIGludG8gZGF0YVs4Li5sZW5ndGgtMV0KKyAgICAgICAgaW50IGxlbmd0aCA9IGluZGV4ZXNbVVJFU19JTkRFWF9CVU5ETEVfVE9QXSo0OworICAgICAgICBpZihERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJUaGUgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBidW5kbGU6ICIrbGVuZ3RoKTsKKyAgICAKKyAgICAgICAgZGF0YSA9IG5ldyBieXRlW2xlbmd0aF07CisgICAgICAgIHdyaXRlSW50KHJvb3RSZXMsIGRhdGEsIDApOworICAgICAgICB3cml0ZUludChpbmRleExlbmd0aCwgZGF0YSwgNCk7CisKKyAgICAgICAgLy8gbm93IHJlc2V0IHRvIHRoZSBtYXJrLCB3aGljaCB3YXMgc2V0IGFmdGVyIHJlYWRpbmcgcm9vdFJlcyBhbmQgaW5kZXhMZW5ndGgKKyAgICAgICAgZHMucmVzZXQoKTsKKyAgICAgICAgZHMucmVhZEZ1bGx5KGRhdGEsIDgsIGxlbmd0aC04KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBmdWxsIG5hbWUgb2YgdGhlIHJlc291cmNlIHdpdGggc3VmZml4LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldEZ1bGxOYW1lKFN0cmluZyBiYXNlTmFtZSwgU3RyaW5nIGxvY2FsZU5hbWUpeworICAgICAgICBpZihiYXNlTmFtZT09bnVsbCB8fCBiYXNlTmFtZS5sZW5ndGgoKT09MCl7CisgICAgICAgICAgICBpZihsb2NhbGVOYW1lLmxlbmd0aCgpPT0wKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gVUxvY2FsZS5nZXREZWZhdWx0KCkudG9TdHJpbmcoKStJQ1VfUkVTT1VSQ0VfU1VGRklYOyAgIAorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsZU5hbWUrSUNVX1JFU09VUkNFX1NVRkZJWDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBpZihiYXNlTmFtZS5pbmRleE9mKCcuJyk9PS0xKXsKKyAgICAgICAgICAgICAgICBpZihiYXNlTmFtZS5jaGFyQXQoYmFzZU5hbWUubGVuZ3RoKCktMSkhPSAnLycpeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWUrIi8iK2xvY2FsZU5hbWUrSUNVX1JFU09VUkNFX1NVRkZJWDsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2VOYW1lK2xvY2FsZU5hbWUrSUNVX1JFU09VUkNFX1NVRkZJWDsgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBiYXNlTmFtZSA9IGJhc2VOYW1lLnJlcGxhY2UoJy4nLCcvJyk7CisgICAgICAgICAgICAgICAgaWYobG9jYWxlTmFtZS5sZW5ndGgoKT09MCl7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBiYXNlTmFtZStJQ1VfUkVTT1VSQ0VfU1VGRklYOyAgIAorICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFzZU5hbWUrIl8iK2xvY2FsZU5hbWUrSUNVX1JFU09VUkNFX1NVRkZJWDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIFZlcnNpb25JbmZvIGdldFZlcnNpb24oKXsKKyAgICAgICAgcmV0dXJuIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKGRhdGFWZXJzaW9uWzBdLGRhdGFWZXJzaW9uWzFdLGRhdGFWZXJzaW9uWzJdLGRhdGFWZXJzaW9uWzNdKTsgICAKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhVmVyc2lvbkFjY2VwdGFibGUoYnl0ZSB2ZXJzaW9uW10peworICAgICAgICAvLyB3aGlsZSBJQ1U0QyBjYW4gcmVhZCBmb3JtYXRWZXJzaW9uIDEuMCBhbmQgdXAsCisgICAgICAgIC8vIElDVTRKIHJlcXVpcmVzIDEuMSBhcyBhIG1pbmltdW0KKyAgICAgICAgLy8gZm9ybWF0VmVyc2lvbiA9IHZlcnNpb247CisgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdID09IDEgJiYgdmVyc2lvblsxXSA+PSAxOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYnl0ZVtdIGdldERhdGEoKXsKKyAgICAgICAgcmV0dXJuIGRhdGE7ICAgCisgICAgfQorICAgIHB1YmxpYyBpbnQgZ2V0Um9vdFJlc291cmNlKCkgeworICAgICAgICByZXR1cm4gcm9vdFJlczsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gZ2V0Tm9GYWxsYmFjaygpIHsKKyAgICAgICAgcmV0dXJuIG5vRmFsbGJhY2s7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVU2VydmljZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSUNVU2VydmljZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlYTI0ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JQ1VTZXJ2aWNlLmphdmEKQEAgLTAsMCArMSw5OTIgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCisvL2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworCitpbXBvcnQgamF2YS5sYW5nLnJlZi5Tb2Z0UmVmZXJlbmNlOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5FdmVudExpc3RlbmVyOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdEl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwLkVudHJ5OworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlNvcnRlZE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiA8cD5BIFNlcnZpY2UgcHJvdmlkZXMgYWNjZXNzIHRvIHNlcnZpY2Ugb2JqZWN0cyB0aGF0IGltcGxlbWVudCBhCisgKiBwYXJ0aWN1bGFyIHNlcnZpY2UsIGUuZy4gdHJhbnNsaXRlcmF0b3JzLiAgVXNlcnMgcHJvdmlkZSBhIFN0cmluZworICogaWQgKGZvciBleGFtcGxlLCBhIGxvY2FsZSBzdHJpbmcpIHRvIHRoZSBzZXJ2aWNlLCBhbmQgZ2V0IGJhY2sgYW4KKyAqIG9iamVjdCBmb3IgdGhhdCBpZC4gIFNlcnZpY2Ugb2JqZWN0cyBjYW4gYmUgYW55IGtpbmQgb2Ygb2JqZWN0LgorICogVGhlIHNlcnZpY2Ugb2JqZWN0IGlzIGNhY2hlZCBhbmQgcmV0dXJuZWQgZm9yIGxhdGVyIHF1ZXJpZXMsIHNvCisgKiBnZW5lcmFsbHkgaXQgc2hvdWxkIG5vdCBiZSBtdXRhYmxlLCBvciB0aGUgY2FsbGVyIHNob3VsZCBjbG9uZSB0aGUKKyAqIG9iamVjdCBiZWZvcmUgbW9kaWZ5aW5nIGl0LjwvcD4KKyAqCisgKiA8cD5TZXJ2aWNlcyAnY2Fub25pY2FsaXplJyB0aGUgcXVlcnkgaWQgYW5kIHVzZSB0aGUgY2Fub25pY2FsIGlkIHRvCisgKiBxdWVyeSBmb3IgdGhlIHNlcnZpY2UuICBUaGUgc2VydmljZSBhbHNvIGRlZmluZXMgYSBtZWNoYW5pc20gdG8KKyAqICdmYWxsYmFjaycgdGhlIGlkIG11bHRpcGxlIHRpbWVzLiAgQ2xpZW50cyBjYW4gb3B0aW9uYWxseSByZXF1ZXN0CisgKiB0aGUgYWN0dWFsIGlkIHRoYXQgd2FzIG1hdGNoZWQgYnkgYSBxdWVyeSB3aGVuIHRoZXkgdXNlIGFuIGlkIHRvCisgKiByZXRyaWV2ZSBhIHNlcnZpY2Ugb2JqZWN0LjwvcD4KKyAqCisgKiA8cD5TZXJ2aWNlIG9iamVjdHMgYXJlIGluc3RhbnRpYXRlZCBieSBGYWN0b3J5IG9iamVjdHMgcmVnaXN0ZXJlZCB3aXRoCisgKiB0aGUgc2VydmljZS4gIFRoZSBzZXJ2aWNlIHF1ZXJpZXMgZWFjaCBGYWN0b3J5IGluIHR1cm4sIGZyb20gbW9zdCByZWNlbnRseQorICogcmVnaXN0ZXJlZCB0byBlYXJsaWVzdCByZWdpc3RlcmVkLCB1bnRpbCBvbmUgcmV0dXJucyBhIHNlcnZpY2Ugb2JqZWN0LgorICogSWYgbm9uZSByZXNwb25kcyB3aXRoIGEgc2VydmljZSBvYmplY3QsIGEgZmFsbGJhY2sgaWQgaXMgZ2VuZXJhdGVkLAorICogYW5kIHRoZSBwcm9jZXNzIHJlcGVhdHMgdW50aWwgYSBzZXJ2aWNlIG9iamVjdCBpcyByZXR1cm5lZCBvciB1bnRpbAorICogdGhlIGlkIGhhcyBubyBmdXJ0aGVyIGZhbGxiYWNrcy48L3A+CisgKgorICogPHA+RmFjdG9yaWVzIGNhbiBiZSBkeW5hbWljYWxseSByZWdpc3RlcmVkIGFuZCB1bnJlZ2lzdGVyZWQgd2l0aCB0aGUKKyAqIHNlcnZpY2UuICBXaGVuIHJlZ2lzdGVyZWQsIGEgRmFjdG9yeSBpcyBpbnN0YWxsZWQgYXQgdGhlIGhlYWQgb2YKKyAqIHRoZSBmYWN0b3J5IGxpc3QsIGFuZCBzbyBnZXRzICdmaXJzdCBjcmFjaycgYXQgYW55IGtleXMgb3IgZmFsbGJhY2sKKyAqIGtleXMuICBXaGVuIHVucmVnaXN0ZXJlZCwgaXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzZXJ2aWNlIGFuZCBjYW4gbm8KKyAqIGxvbmdlciBiZSBsb2NhdGVkIHRocm91Z2ggaXQuICBTZXJ2aWNlIG9iamVjdHMgZ2VuZXJhdGVkIGJ5IHRoaXMKKyAqIGZhY3RvcnkgYW5kIGhlbGQgYnkgdGhlIGNsaWVudCBhcmUgdW5hZmZlY3RlZC48L3A+CisgKgorICogPHA+SUNVU2VydmljZSB1c2VzIEtleXMgdG8gcXVlcnkgZmFjdG9yaWVzIGFuZCBwZXJmb3JtCisgKiBmYWxsYmFjay4gIFRoZSBLZXkgZGVmaW5lcyB0aGUgY2Fub25pY2FsIGZvcm0gb2YgdGhlIGlkLCBhbmQKKyAqIGltcGxlbWVudHMgdGhlIGZhbGxiYWNrIHN0cmF0ZWd5LiAgQ3VzdG9tIEtleXMgY2FuIGJlIGRlZmluZWQgdGhhdAorICogcGFyc2UgY29tcGxleCBJRHMgaW50byBjb21wb25lbnRzIHRoYXQgRmFjdG9yaWVzIGNhbiBtb3JlIGVhc2lseQorICogdXNlLiAgVGhlIEtleSBjYW4gY2FjaGUgdGhlIHJlc3VsdHMgb2YgdGhpcyBwYXJzaW5nIHRvIHNhdmUKKyAqIHJlcGVhdGVkIGVmZm9ydC4gIElDVVNlcnZpY2UgcHJvdmlkZXMgY29udmVuaWVuY2UgQVBJcyB0aGF0CisgKiB0YWtlIFN0cmluZ3MgYW5kIGdlbmVyYXRlIGRlZmF1bHQgS2V5cyBmb3IgdXNlIGluIHF1ZXJ5aW5nLjwvcD4KKyAqCisgKiA8cD5JQ1VTZXJ2aWNlIHByb3ZpZGVzIEFQSSB0byBnZXQgdGhlIGxpc3Qgb2YgaWRzIHB1YmxpY2x5CisgKiBzdXBwb3J0ZWQgYnkgdGhlIHNlcnZpY2UgKGFsdGhvdWdoIHF1ZXJpZXMgYXJlbid0IHJlc3RyaWN0ZWQgdG8KKyAqIHRoaXMgbGlzdCkuICBUaGlzIGxpc3QgY29udGFpbnMgb25seSAnc2ltcGxlJyBJRHMsIGFuZCBub3QgZnVsbHkKKyAqIHVuaXF1ZSBpZHMuICBGYWN0b3JpZXMgYXJlIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHNpbXBsZSBJRCBhbmQKKyAqIHRoZSByZXNwb25zaWJsZSBmYWN0b3J5IGNhbiBhbHNvIHJldHVybiBhIGh1bWFuLXJlYWRhYmxlIGxvY2FsaXplZAorICogdmVyc2lvbiBvZiB0aGUgc2ltcGxlIElELCBmb3IgdXNlIGluIHVzZXIgaW50ZXJmYWNlcy4gIElDVVNlcnZpY2UKKyAqIGNhbiBhbHNvIHByb3ZpZGUgYSBzb3J0ZWQgY29sbGVjdGlvbiBvZiB0aGUgYWxsIHRoZSBsb2NhbGl6ZWQgdmlzaWJsZQorICogaWRzLjwvcD4KKyAqCisgKiA8cD5JQ1VTZXJ2aWNlIGltcGxlbWVudHMgSUNVTm90aWZpZXIsIHNvIHRoYXQgY2xpZW50cyBjYW4gcmVnaXN0ZXIKKyAqIHRvIHJlY2VpdmUgbm90aWZpY2F0aW9uIHdoZW4gZmFjdG9yaWVzIGFyZSBhZGRlZCBvciByZW1vdmVkIGZyb20KKyAqIHRoZSBzZXJ2aWNlLiAgSUNVU2VydmljZSBwcm92aWRlcyBhIGRlZmF1bHQgRXZlbnRMaXN0ZW5lciBzdWJpbnRlcmZhY2UsCisgKiBTZXJ2aWNlTGlzdGVuZXIsIHdoaWNoIGNhbiBiZSByZWdpc3RlcmVkIHdpdGggdGhlIHNlcnZpY2UuICBXaGVuCisgKiB0aGUgc2VydmljZSBjaGFuZ2VzLCB0aGUgU2VydmljZUxpc3RlbmVyJ3Mgc2VydmljZUNoYW5nZWQgbWV0aG9kCisgKiBpcyBjYWxsZWQsIHdpdGggdGhlIHNlcnZpY2UgYXMgdGhlIG9ubHkgYXJndW1lbnQuPC9wPgorICoKKyAqIDxwPlRoZSBJQ1VTZXJ2aWNlIEFQSSBpcyBib3RoIHJpY2ggYW5kIGdlbmVyaWMsIGFuZCBpdCBpcyBleHBlY3RlZAorICogdGhhdCBtb3N0IGltcGxlbWVudGF0aW9ucyB3aWxsIHN0YXRpY2FsbHkgJ3dyYXAnIElDVVNlcnZpY2UgdG8KKyAqIHByZXNlbnQgYSBtb3JlIGFwcHJvcHJpYXRlIEFQSS0tIGZvciBleGFtcGxlLCB0byBkZWNsYXJlIHRoZSB0eXBlCisgKiBvZiB0aGUgb2JqZWN0cyByZXR1cm5lZCBmcm9tIGdldCwgdG8gbGltaXQgdGhlIGZhY3RvcmllcyB0aGF0IGNhbgorICogYmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBzZXJ2aWNlLCBvciB0byBkZWZpbmUgdGhlaXIgb3duIGxpc3RlbmVyCisgKiBpbnRlcmZhY2Ugd2l0aCBhIGN1c3RvbSBjYWxsYmFjayBtZXRob2QuICBUaGV5IG1pZ2h0IGFsc28gY3VzdG9taXplCisgKiBJQ1VTZXJ2aWNlIGJ5IG92ZXJyaWRpbmcgaXQsIGZvciBleGFtcGxlLCB0byBjdXN0b21pemUgdGhlIEtleSBhbmQKKyAqIGZhbGxiYWNrIHN0cmF0ZWd5LiAgSUNVTG9jYWxlU2VydmljZSBpcyBhIGN1c3RvbWl6ZWQgc2VydmljZSB0aGF0CisgKiB1c2VzIExvY2FsZSBuYW1lcyBhcyBpZHMgYW5kIHVzZXMgS2V5cyB0aGF0IGltcGxlbWVudCB0aGUgc3RhbmRhcmQKKyAqIHJlc291cmNlIGJ1bmRsZSBmYWxsYmFjayBzdHJhdGVneS48cD4KKyAqLworcHVibGljIGNsYXNzIElDVVNlcnZpY2UgZXh0ZW5kcyBJQ1VOb3RpZmllciB7CisgICAgLyoqCisgICAgICogTmFtZSB1c2VkIGZvciBkZWJ1Z2dpbmcuCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIElDVVNlcnZpY2UoKSB7CisgICAgICAgIG5hbWUgPSAiIjsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gSUNVRGVidWcuZW5hYmxlZCgic2VydmljZSIpOworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCB3aXRoIGEgbmFtZSAodXNlZnVsIGZvciBkZWJ1Z2dpbmcpLgorICAgICAqLworICAgIHB1YmxpYyBJQ1VTZXJ2aWNlKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWNjZXNzIHRvIGZhY3RvcmllcyBpcyBwcm90ZWN0ZWQgYnkgYSByZWFkLXdyaXRlIGxvY2suICBUaGlzIGlzCisgICAgICogdG8gYWxsb3cgbXVsdGlwbGUgdGhyZWFkcyB0byByZWFkIGNvbmN1cnJlbnRseSwgYnV0IGtlZXAKKyAgICAgKiBjaGFuZ2VzIHRvIHRoZSBmYWN0b3J5IGxpc3QgYXRvbWljIHdpdGggcmVzcGVjdCB0byBhbGwgcmVhZGVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIElDVVJXTG9jayBmYWN0b3J5TG9jayA9IG5ldyBJQ1VSV0xvY2soKTsKKworICAgIC8qKgorICAgICAqIEFsbCB0aGUgZmFjdG9yaWVzIHJlZ2lzdGVyZWQgd2l0aCB0aGlzIHNlcnZpY2UuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBMaXN0IGZhY3RvcmllcyA9IG5ldyBBcnJheUxpc3QoKTsKKworICAgIC8qKgorICAgICAqIFJlY29yZCB0aGUgZGVmYXVsdCBudW1iZXIgb2YgZmFjdG9yaWVzIGZvciB0aGlzIHNlcnZpY2UuCisgICAgICogQ2FuIGJlIHNldCBieSBtYXJrRGVmYXVsdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBkZWZhdWx0U2l6ZSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBLZXlzIGFyZSB1c2VkIHRvIGNvbW11bmljYXRlIHdpdGggZmFjdG9yaWVzIHRvIGdlbmVyYXRlIGFuCisgICAgICogaW5zdGFuY2Ugb2YgdGhlIHNlcnZpY2UuICBLZXlzIGRlZmluZSBob3cgaWRzIGFyZQorICAgICAqIGNhbm9uaWNhbGl6ZWQsIHByb3ZpZGUgYm90aCBhIGN1cnJlbnQgaWQgYW5kIGEgY3VycmVudAorICAgICAqIGRlc2NyaXB0b3IgdG8gdXNlIGluIHF1ZXJ5aW5nIHRoZSBjYWNoZSBhbmQgZmFjdG9yaWVzLCBhbmQKKyAgICAgKiBkZXRlcm1pbmUgdGhlIGZhbGxiYWNrIHN0cmF0ZWd5LjwvcD4KKyAgICAgKgorICAgICAqIDxwPktleXMgcHJvdmlkZSBib3RoIGEgY3VycmVudERlc2NyaXB0b3IgYW5kIGEgY3VycmVudElELgorICAgICAqIFRoZSBkZXNjcmlwdG9yIGNvbnRhaW5zIGFuIG9wdGlvbmFsIHByZWZpeCwgZm9sbG93ZWQgYnkgJy8nCisgICAgICogYW5kIHRoZSBjdXJyZW50SUQuICBGYWN0b3JpZXMgdGhhdCBoYW5kbGUgY29tcGxleCBrZXlzLAorICAgICAqIGZvciBleGFtcGxlIG51bWJlciBmb3JtYXQgZmFjdG9yaWVzIHRoYXQgZ2VuZXJhdGUgbXVsdGlwbGUKKyAgICAgKiBraW5kcyBvZiBmb3JtYXR0ZXJzIGZvciB0aGUgc2FtZSBsb2NhbGUsIHVzZSB0aGUgZGVzY3JpcHRvcgorICAgICAqIHRvIHByb3ZpZGUgYSBmdWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHNlcnZpY2Ugb2JqZWN0LAorICAgICAqIHdoaWxlIHVzaW5nIHRoZSBjdXJyZW50SUQgKGluIHRoaXMgY2FzZSwgdGhlIGxvY2FsZSBzdHJpbmcpLAorICAgICAqIGFzIHRoZSB2aXNpYmxlIElEcyB0aGF0IGNhbiBiZSBsb2NhbGl6ZWQuCisgICAgICoKKyAgICAgKiA8cD4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgS2V5IGhhcyBubyBmYWxsYmFja3MgYW5kCisgICAgICogaGFzIG5vIGN1c3RvbSBkZXNjcmlwdG9ycy48L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBLZXkgeworICAgICAgICBwcml2YXRlIGZpbmFsIFN0cmluZyBpZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0IGEga2V5IGZyb20gYW4gaWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgS2V5KFN0cmluZyBpZCkgeworICAgICAgICAgICAgdGhpcy5pZCA9IGlkOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgb3JpZ2luYWwgSUQgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcyBrZXkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGlkKCkgeworICAgICAgICAgICAgcmV0dXJuIGlkOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgY2Fub25pY2FsIHZlcnNpb24gb2YgdGhlIG9yaWdpbmFsIElELiAgVGhpcyBpbXBsZW1lbnRhdGlvbgorICAgICAgICAgKiByZXR1cm5zIHRoZSBvcmlnaW5hbCBJRCB1bmNoYW5nZWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGNhbm9uaWNhbElEKCkgeworICAgICAgICAgICAgcmV0dXJuIGlkOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgKGNhbm9uaWNhbCkgY3VycmVudCBJRC4gIFRoaXMgaW1wbGVtZW50YXRpb24KKyAgICAgICAgICogcmV0dXJucyB0aGUgY2Fub25pY2FsIElELgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBjdXJyZW50SUQoKSB7CisgICAgICAgICAgICByZXR1cm4gY2Fub25pY2FsSUQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgZGVzY3JpcHRvci4gIFRoaXMgaW1wbGVtZW50YXRpb24gcmV0dXJucworICAgICAgICAgKiB0aGUgY3VycmVudCBJRC4gIFRoZSBjdXJyZW50IGRlc2NyaXB0b3IgaXMgdXNlZCB0byBmdWxseQorICAgICAgICAgKiBpZGVudGlmeSBhbiBpbnN0YW5jZSBvZiB0aGUgc2VydmljZSBpbiB0aGUgY2FjaGUuICBBCisgICAgICAgICAqIGZhY3RvcnkgbWF5IGhhbmRsZSBhbGwgZGVzY3JpcHRvcnMgZm9yIGFuIElELCBvciBqdXN0IGEKKyAgICAgICAgICogcGFydGljdWxhciBkZXNjcmlwdG9yLiAgVGhlIGZhY3RvcnkgY2FuIGVpdGhlciBwYXJzZSB0aGUKKyAgICAgICAgICogZGVzY3JpcHRvciBvciB1c2UgY3VzdG9tIEFQSSBvbiB0aGUga2V5IGluIG9yZGVyIHRvCisgICAgICAgICAqIGluc3RhbnRpYXRlIHRoZSBzZXJ2aWNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBjdXJyZW50RGVzY3JpcHRvcigpIHsKKyAgICAgICAgICAgIHJldHVybiAiLyIgKyBjdXJyZW50SUQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJZiB0aGUga2V5IGhhcyBhIGZhbGxiYWNrLCBtb2RpZnkgdGhlIGtleSBhbmQgcmV0dXJuIHRydWUsCisgICAgICAgICAqIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuICBUaGUgY3VycmVudCBJRCB3aWxsIGNoYW5nZSBpZiB0aGVyZQorICAgICAgICAgKiBpcyBhIGZhbGxiYWNrLiAgTm8gY3VycmVudElEcyBzaG91bGQgYmUgcmVwZWF0ZWQsIGFuZCBmYWxsYmFjaworICAgICAgICAgKiBtdXN0IGV2ZW50dWFsbHkgcmV0dXJuIGZhbHNlLiAgVGhpcyBpbXBsbWVudGF0aW9uIGhhcyBubyBmYWxsYmFja3MKKyAgICAgICAgICogYW5kIGFsd2F5cyByZXR1cm5zIGZhbHNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZmFsbGJhY2soKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSWYgYSBrZXkgY3JlYXRlZCBmcm9tIGlkIHdvdWxkIGV2ZW50dWFsbHkgZmFsbGJhY2sgdG8gbWF0Y2ggdGhlCisgICAgICAgICAqIGNhbm9uaWNhbCBJRCBvZiB0aGlzIGtleSwgcmV0dXJuIHRydWUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0ZhbGxiYWNrT2YoU3RyaW5nIGlkKSB7CisgICAgICAgICAgICByZXR1cm4gY2Fub25pY2FsSUQoKS5lcXVhbHMoaWQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRmFjdG9yaWVzIGdlbmVyYXRlIHRoZSBzZXJ2aWNlIG9iamVjdHMgbWFpbnRhaW5lZCBieSB0aGUKKyAgICAgKiBzZXJ2aWNlLiAgQSBmYWN0b3J5IGdlbmVyYXRlcyBhIHNlcnZpY2Ugb2JqZWN0IGZyb20gYSBrZXksCisgICAgICogdXBkYXRlcyBpZC0+ZmFjdG9yeSBtYXBwaW5ncywgYW5kIHJldHVybnMgdGhlIGRpc3BsYXkgbmFtZSBmb3IKKyAgICAgKiBhIHN1cHBvcnRlZCBpZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBGYWN0b3J5IHsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ3JlYXRlIGEgc2VydmljZSBvYmplY3QgZnJvbSB0aGUga2V5LCBpZiB0aGlzIGZhY3RvcnkKKyAgICAgICAgICogc3VwcG9ydHMgdGhlIGtleS4gIE90aGVyd2lzZSwgcmV0dXJuIG51bGwuCisgICAgICAgICAqCisgICAgICAgICAqIDxwPklmIHRoZSBmYWN0b3J5IHN1cHBvcnRzIHRoZSBrZXksIHRoZW4gaXQgY2FuIGNhbGwKKyAgICAgICAgICogdGhlIHNlcnZpY2UncyBnZXRLZXkoS2V5LCBTdHJpbmdbXSwgRmFjdG9yeSkgbWV0aG9kCisgICAgICAgICAqIHBhc3NpbmcgaXRzZWxmIGFzIHRoZSBmYWN0b3J5IHRvIGdldCB0aGUgb2JqZWN0IHRoYXQKKyAgICAgICAgICogdGhlIHNlcnZpY2Ugd291bGQgaGF2ZSBjcmVhdGVkIHByaW9yIHRvIHRoZSBmYWN0b3J5J3MKKyAgICAgICAgICogcmVnaXN0cmF0aW9uIHdpdGggdGhlIHNlcnZpY2UuICBUaGlzIGNhbiBjaGFuZ2UgdGhlCisgICAgICAgICAqIGtleSwgc28gYW55IGluZm9ybWF0aW9uIHJlcXVpcmVkIGZyb20gdGhlIGtleSBzaG91bGQKKyAgICAgICAgICogYmUgZXh0cmFjdGVkIGJlZm9yZSBtYWtpbmcgc3VjaCBhIGNhbGxiYWNrLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIE9iamVjdCBjcmVhdGUoS2V5IGtleSwgSUNVU2VydmljZSBzZXJ2aWNlKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVXBkYXRlIHRoZSByZXN1bHQgSURzIChub3QgZGVzY3JpcHRvcnMpIHRvIHJlZmxlY3QgdGhlIElEcworICAgICAgICAgKiB0aGlzIGZhY3RvcnkgaGFuZGxlcy4gIFRoaXMgZnVuY3Rpb24gYW5kIGdldERpc3BsYXlOYW1lIGFyZQorICAgICAgICAgKiB1c2VkIHRvIHN1cHBvcnQgSUNVU2VydmljZS5nZXREaXNwbGF5TmFtZXMuICBCYXNpY2FsbHksIHRoZQorICAgICAgICAgKiBmYWN0b3J5IGhhcyB0byBkZXRlcm1pbmUgd2hpY2ggSURzIGl0IHdpbGwgcGVybWl0IHRvIGJlCisgICAgICAgICAqIGF2YWlsYWJsZSwgYW5kIG9mIHRob3NlLCB3aGljaCBpdCB3aWxsIHByb3ZpZGUgbG9jYWxpemVkCisgICAgICAgICAqIGRpc3BsYXkgbmFtZXMgZm9yLiAgSW4gbW9zdCBjYXNlcyB0aGlzIHJlZmxlY3RzIHRoZSBJRHMgdGhhdAorICAgICAgICAgKiB0aGUgZmFjdG9yeSBkaXJlY3RseSBzdXBwb3J0cy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHVwZGF0ZVZpc2libGVJRHMoTWFwIHJlc3VsdCk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0aGUgZGlzcGxheSBuYW1lIGZvciB0aGlzIGlkIGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICAgICAqIFRoaXMgaXMgYW4gbG9jYWxpemVkIGlkLCBub3QgYSBkZXNjcmlwdG9yLiAgSWYgdGhlIGlkIGlzCisgICAgICAgICAqIG5vdCB2aXNpYmxlIG9yIG5vdCBkZWZpbmVkIGJ5IHRoZSBmYWN0b3J5LCByZXR1cm4gbnVsbC4KKyAgICAgICAgICogSWYgbG9jYWxlIGlzIG51bGwsIHJldHVybiBpZCB1bmNoYW5nZWQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgVUxvY2FsZSBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBmYWN0b3J5LiAgVGhpcyBwcm92aWRlcyBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb25zIGZvciBzdWJjbGFzc2VzLCBhbmQgaW1wbGVtZW50cyBhIHNpbmdsZXRvbgorICAgICAqIGZhY3RvcnkgdGhhdCBtYXRjaGVzIGEgc2luZ2xlIGlkICBhbmQgcmV0dXJucyBhIHNpbmdsZQorICAgICAqIChwb3NzaWJseSBkZWZlcnJlZC1pbml0aWFsaXplZCkgaW5zdGFuY2UuICBUaGlzIGltcGxlbWVudHMKKyAgICAgKiB1cGRhdGVWaXNpYmxlSURzIHRvIGFkZCBhIG1hcHBpbmcgZnJvbSBpdHMgSUQgdG8gaXRzZWxmCisgICAgICogaWYgdmlzaWJsZSBpcyB0cnVlLCBvciB0byByZW1vdmUgYW55IGV4aXN0aW5nIG1hcHBpbmcKKyAgICAgKiBmb3IgaXRzIElEIGlmIHZpc2libGUgaXMgZmFsc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBTaW1wbGVGYWN0b3J5IGltcGxlbWVudHMgRmFjdG9yeSB7CisgICAgICAgIHByb3RlY3RlZCBPYmplY3QgaW5zdGFuY2U7CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgaWQ7CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIHZpc2libGU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnZlbmllbmNlIGNvbnN0cnVjdG9yIHRoYXQgY2FsbHMgU2ltcGxlRmFjdG9yeShPYmplY3QsIFN0cmluZywgYm9vbGVhbikKKyAgICAgICAgICogd2l0aCB2aXNpYmxlIHRydWUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU2ltcGxlRmFjdG9yeShPYmplY3QgaW5zdGFuY2UsIFN0cmluZyBpZCkgeworICAgICAgICAgICAgdGhpcyhpbnN0YW5jZSwgaWQsIHRydWUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdCBhIHNpbXBsZSBmYWN0b3J5IHRoYXQgbWFwcyBhIHNpbmdsZSBpZCB0byBhIHNpbmdsZQorICAgICAgICAgKiBzZXJ2aWNlIGluc3RhbmNlLiAgSWYgdmlzaWJsZSBpcyB0cnVlLCB0aGUgaWQgd2lsbCBiZSB2aXNpYmxlLgorICAgICAgICAgKiBOZWl0aGVyIHRoZSBpbnN0YW5jZSBub3IgdGhlIGlkIGNhbiBiZSBudWxsLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFNpbXBsZUZhY3RvcnkoT2JqZWN0IGluc3RhbmNlLCBTdHJpbmcgaWQsIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICAgICAgaWYgKGluc3RhbmNlID09IG51bGwgfHwgaWQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkluc3RhbmNlIG9yIGlkIGlzIG51bGwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UgPSBpbnN0YW5jZTsKKyAgICAgICAgICAgIHRoaXMuaWQgPSBpZDsKKyAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHZpc2libGU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBzZXJ2aWNlIGluc3RhbmNlIGlmIHRoZSBmYWN0b3J5J3MgaWQgaXMgZXF1YWwgdG8KKyAgICAgICAgICogdGhlIGtleSdzIGN1cnJlbnRJRC4gIFNlcnZpY2UgaXMgaWdub3JlZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBPYmplY3QgY3JlYXRlKEtleSBrZXksIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgaWYgKGlkLmVxdWFscyhrZXkuY3VycmVudElEKCkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSWYgdmlzaWJsZSwgYWRkcyBhIG1hcHBpbmcgZnJvbSBpZCAtPiB0aGlzIHRvIHRoZSByZXN1bHQsCisgICAgICAgICAqIG90aGVyd2lzZSByZW1vdmVzIGlkIGZyb20gcmVzdWx0LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgdXBkYXRlVmlzaWJsZUlEcyhNYXAgcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAodmlzaWJsZSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5wdXQoaWQsIHRoaXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQucmVtb3ZlKGlkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJZiB0aGlzLmlkIGVxdWFscyBpZCwgcmV0dXJucyBpZCByZWdhcmRsZXNzIG9mIGxvY2FsZSwKKyAgICAgICAgICogb3RoZXJ3aXNlIHJldHVybnMgbnVsbC4gIChUaGlzIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaGFzCisgICAgICAgICAqIG5vIGxvY2FsaXplZCBpZCBpbmZvcm1hdGlvbi4pCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgICAgIHJldHVybiAodmlzaWJsZSAmJiB0aGlzLmlkLmVxdWFscyhpZCkpID8gaWQgOiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZvciBkZWJ1Z2dpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIsIGlkOiAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoaWQpOworICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCB2aXNpYmxlOiAiKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQodmlzaWJsZSk7CisgICAgICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBmb3IgZ2V0KFN0cmluZywgU3RyaW5nW10pLiBUaGlzIHVzZXMKKyAgICAgKiBjcmVhdGVLZXkgdG8gY3JlYXRlIGEga2V5IGZvciB0aGUgcHJvdmlkZWQgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldChTdHJpbmcgZGVzY3JpcHRvcikgeworICAgICAgICByZXR1cm4gZ2V0S2V5KGNyZWF0ZUtleShkZXNjcmlwdG9yKSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgZm9yIGdldChLZXksIFN0cmluZ1tdKS4gIFRoaXMgdXNlcworICAgICAqIGNyZWF0ZUtleSB0byBjcmVhdGUgYSBrZXkgZnJvbSB0aGUgcHJvdmlkZWQgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldChTdHJpbmcgZGVzY3JpcHRvciwgU3RyaW5nW10gYWN0dWFsUmV0dXJuKSB7CisgICAgICAgIGlmIChkZXNjcmlwdG9yID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigiZGVzY3JpcHRvciBtdXN0IG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldEtleShjcmVhdGVLZXkoZGVzY3JpcHRvciksIGFjdHVhbFJldHVybik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgZm9yIGdldChLZXksIFN0cmluZ1tdKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldEtleShLZXkga2V5KSB7CisgICAgICAgIHJldHVybiBnZXRLZXkoa2V5LCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5HaXZlbiBhIGtleSwgcmV0dXJuIGEgc2VydmljZSBvYmplY3QsIGFuZCwgaWYgYWN0dWFsUmV0dXJuCisgICAgICogaXMgbm90IG51bGwsIHRoZSBkZXNjcmlwdG9yIHdpdGggd2hpY2ggaXQgd2FzIGZvdW5kIGluIHRoZQorICAgICAqIGZpcnN0IGVsZW1lbnQgb2YgYWN0dWFsUmV0dXJuLiAgSWYgbm8gc2VydmljZSBvYmplY3QgbWF0Y2hlcworICAgICAqIHRoaXMga2V5LCByZXR1cm4gbnVsbCwgYW5kIGxlYXZlIGFjdHVhbFJldHVybiB1bmNoYW5nZWQuPC9wPgorICAgICAqCisgICAgICogPHA+VGhpcyBxdWVyaWVzIHRoZSBjYWNoZSB1c2luZyB0aGUga2V5J3MgZGVzY3JpcHRvciwgYW5kIGlmIG5vCisgICAgICogb2JqZWN0IGluIHRoZSBjYWNoZSBtYXRjaGVzIGl0LCB0cmllcyB0aGUga2V5IG9uIGVhY2gKKyAgICAgKiByZWdpc3RlcmVkIGZhY3RvcnksIGluIG9yZGVyLiAgSWYgbm9uZSBnZW5lcmF0ZXMgYSBzZXJ2aWNlCisgICAgICogb2JqZWN0IGZvciB0aGUga2V5LCByZXBlYXRzIHRoZSBwcm9jZXNzIHdpdGggZWFjaCBmYWxsYmFjayBvZgorICAgICAqIHRoZSBrZXksIHVudGlsIGVpdGhlciBvbmUgcmV0dXJucyBhIHNlcnZpY2Ugb2JqZWN0LCBvciB0aGUga2V5CisgICAgICogaGFzIG5vIGZhbGxiYWNrLjwvcD4KKyAgICAgKgorICAgICAqIDxwPklmIGtleSBpcyBudWxsLCBqdXN0IHJldHVybnMgbnVsbC48L3A+CisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRLZXkoS2V5IGtleSwgU3RyaW5nW10gYWN0dWFsUmV0dXJuKSB7CisgICAgICAgIHJldHVybiBnZXRLZXkoa2V5LCBhY3R1YWxSZXR1cm4sIG51bGwpOworICAgIH0KKworICAgIC8vIGRlYnVnZ2luZworICAgIC8vIE1hcCBoYXJkUmVmOworCisgICAgcHVibGljIE9iamVjdCBnZXRLZXkoS2V5IGtleSwgU3RyaW5nW10gYWN0dWFsUmV0dXJuLCBGYWN0b3J5IGZhY3RvcnkpIHsKKyAgICAgICAgaWYgKGZhY3Rvcmllcy5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIGhhbmRsZURlZmF1bHQoa2V5LCBhY3R1YWxSZXR1cm4pOworICAgICAgICB9CisKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlNlcnZpY2U6ICIgKyBuYW1lICsgIiBrZXk6ICIgKyBrZXkuY2Fub25pY2FsSUQoKSk7CisKKyAgICAgICAgQ2FjaGVFbnRyeSByZXN1bHQgPSBudWxsOworICAgICAgICBpZiAoa2V5ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy8gVGhlIGZhY3RvcnkgbGlzdCBjYW4ndCBiZSBtb2RpZmllZCB1bnRpbCB3ZSdyZSBkb25lLAorICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSB3ZSBtaWdodCB1cGRhdGUgdGhlIGNhY2hlIHdpdGggYW4gaW52YWxpZCByZXN1bHQuCisgICAgICAgICAgICAgICAgLy8gVGhlIGNhY2hlIGhhcyB0byBzdGF5IGluIHN5bmNoIHdpdGggdGhlIGZhY3RvcnkgbGlzdC4KKyAgICAgICAgICAgICAgICBmYWN0b3J5TG9jay5hY3F1aXJlUmVhZCgpOworCisgICAgICAgICAgICAgICAgTWFwIGNhY2hlID0gbnVsbDsKKyAgICAgICAgICAgICAgICBTb2Z0UmVmZXJlbmNlIGNyZWYgPSBjYWNoZXJlZjsgLy8gY29weSBzbyB3ZSBkb24ndCBuZWVkIHRvIHN5bmMgb24gdGhpcworICAgICAgICAgICAgICAgIGlmIChjcmVmICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIlNlcnZpY2UgIiArIG5hbWUgKyAiIHJlZiBleGlzdHMiKTsKKyAgICAgICAgICAgICAgICAgICAgY2FjaGUgPSAoTWFwKWNyZWYuZ2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjYWNoZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJTZXJ2aWNlICIgKyBuYW1lICsgIiBjYWNoZSB3YXMgZW1wdHkiKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gc3luY2hyb25pemVkIHNpbmNlIGFkZGl0aW9ucyBhbmQgcXVlcmllcyBvbiB0aGUgY2FjaGUgbXVzdCBiZSBhdG9taWMKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhleSBjYW4gYmUgaW50ZXJsZWF2ZWQsIHRob3VnaAorICAgICAgICAgICAgICAgICAgICBjYWNoZSA9IENvbGxlY3Rpb25zLnN5bmNocm9uaXplZE1hcChuZXcgSGFzaE1hcCgpKTsKKy8vICAgICAgICAgICAgICAgICAgaGFyZFJlZiA9IGNhY2hlOyAvLyBkZWJ1ZworICAgICAgICAgICAgICAgICAgICBjcmVmID0gbmV3IFNvZnRSZWZlcmVuY2UoY2FjaGUpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIFN0cmluZyBjdXJyZW50RGVzY3JpcHRvciA9IG51bGw7CisgICAgICAgICAgICAgICAgQXJyYXlMaXN0IGNhY2hlRGVzY3JpcHRvckxpc3QgPSBudWxsOworICAgICAgICAgICAgICAgIGJvb2xlYW4gcHV0SW5DYWNoZSA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgaW50IE5EZWJ1ZyA9IDA7CisKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnRJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgaW50IGxpbWl0ID0gZmFjdG9yaWVzLnNpemUoKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGNhY2hlUmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoZmFjdG9yeSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGltaXQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhY3RvcnkgPT0gZmFjdG9yaWVzLmdldChpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPSBpICsgMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRJbmRleCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJGYWN0b3J5ICIgKyBmYWN0b3J5ICsgIm5vdCByZWdpc3RlcmVkIHdpdGggc2VydmljZTogIiArIHRoaXMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhY2hlUmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBvdXRlcjoKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnREZXNjcmlwdG9yID0ga2V5LmN1cnJlbnREZXNjcmlwdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKG5hbWUgKyAiWyIgKyBORGVidWcrKyArICJdIGxvb2tpbmcgZm9yOiAiICsgY3VycmVudERlc2NyaXB0b3IpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAoQ2FjaGVFbnRyeSljYWNoZS5nZXQoY3VycmVudERlc2NyaXB0b3IpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKG5hbWUgKyAiIGZvdW5kIHdpdGggZGVzY3JpcHRvcjogIiArIGN1cnJlbnREZXNjcmlwdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIG91dGVyOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImRpZCBub3QgZmluZDogIiArIGN1cnJlbnREZXNjcmlwdG9yICsgIiBpbiBjYWNoZSIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gZmlyc3QgdGVzdCBvZiBjYWNoZSBmYWlsZWQsIHNvIHdlJ2xsIGhhdmUgdG8gdXBkYXRlCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYWNoZSBpZiB3ZSBldmVudHVhbGx5IHN1Y2NlZWQtLSB0aGF0IGlzLCBpZiB3ZSdyZQorICAgICAgICAgICAgICAgICAgICAvLyBnb2luZyB0byB1cGRhdGUgdGhlIGNhY2hlIGF0IGFsbC4KKyAgICAgICAgICAgICAgICAgICAgcHV0SW5DYWNoZSA9IGNhY2hlUmVzdWx0OworCisgICAgICAgICAgICAgICAgICAgIC8vICBpbnQgbiA9IDA7CisgICAgICAgICAgICAgICAgICAgIGludCBpbmRleCA9IHN0YXJ0SW5kZXg7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpbmRleCA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBGYWN0b3J5IGYgPSAoRmFjdG9yeSlmYWN0b3JpZXMuZ2V0KGluZGV4KyspOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oInRyeWluZyBmYWN0b3J5WyIgKyAoaW5kZXgtMSkgKyAiXSAiICsgZi50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBzZXJ2aWNlID0gZi5jcmVhdGUoa2V5LCB0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXJ2aWNlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcgQ2FjaGVFbnRyeShjdXJyZW50RGVzY3JpcHRvciwgc2VydmljZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4obmFtZSArICIgZmFjdG9yeSBzdXBwb3J0ZWQ6ICIgKyBjdXJyZW50RGVzY3JpcHRvciArICIsIGNhY2hpbmciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBvdXRlcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImZhY3RvcnkgZGlkIG5vdCBzdXBwb3J0OiAiICsgY3VycmVudERlc2NyaXB0b3IpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gcHJlcGFyZSB0byBsb2FkIHRoZSBjYWNoZSB3aXRoIGFsbCBhZGRpdGlvbmFsIGlkcyB0aGF0CisgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgcmVzb2x2ZSB0byByZXN1bHQsIGFzc3VtaW5nIHdlJ2xsIHN1Y2NlZWQuICBXZQorICAgICAgICAgICAgICAgICAgICAvLyBkb24ndCB3YW50IHRvIGtlZXAgcXVlcnlpbmcgb24gYW4gaWQgdGhhdCdzIGdvaW5nIHRvCisgICAgICAgICAgICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIHRoZSBvbmUgdGhhdCBzdWNjZWVkZWQsIHdlIHdhbnQgdG8gaGl0IHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBjYWNoZSB0aGUgZmlyc3QgdGltZSBuZXh0IGdvYXJvdW5kLgorICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVEZXNjcmlwdG9yTGlzdCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZURlc2NyaXB0b3JMaXN0ID0gbmV3IEFycmF5TGlzdCg1KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYWNoZURlc2NyaXB0b3JMaXN0LmFkZChjdXJyZW50RGVzY3JpcHRvcik7CisKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChrZXkuZmFsbGJhY2soKSk7CisKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHB1dEluQ2FjaGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJjYWNoaW5nICciICsgcmVzdWx0LmFjdHVhbERlc2NyaXB0b3IgKyAiJyIpOworICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGUucHV0KHJlc3VsdC5hY3R1YWxEZXNjcmlwdG9yLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlRGVzY3JpcHRvckxpc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBjYWNoZURlc2NyaXB0b3JMaXN0Lml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjID0gKFN0cmluZylpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4obmFtZSArICIgYWRkaW5nIGRlc2NyaXB0b3I6ICciICsgZGVzYyArICInIGZvciBhY3R1YWw6ICciICsgcmVzdWx0LmFjdHVhbERlc2NyaXB0b3IgKyAiJyIpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlLnB1dChkZXNjLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEF0b21pYyB1cGRhdGUuICBXZSBoZWxkIHRoZSByZWFkIGxvY2sgYWxsIHRoaXMgdGltZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc28gd2Uga25vdyBvdXIgY2FjaGUgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBmYWN0b3J5IGxpc3QuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBtaWdodCBzdG9tcCBvdmVyIGEgY2FjaGUgdGhhdCBzb21lIG90aGVyIHRocmVhZAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVidWlsdCwgYnV0IHRoYXQncyB0aGUgYnJlYWtzLiAgVGhleSdyZSBib3RoIGdvb2QuCisgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZXJlZiA9IGNyZWY7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoYWN0dWFsUmV0dXJuICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0cmlwIG51bGwgcHJlZml4CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmFjdHVhbERlc2NyaXB0b3IuaW5kZXhPZigiLyIpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxSZXR1cm5bMF0gPSByZXN1bHQuYWN0dWFsRGVzY3JpcHRvci5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbFJldHVyblswXSA9IHJlc3VsdC5hY3R1YWxEZXNjcmlwdG9yOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oImZvdW5kIGluIHNlcnZpY2U6ICIgKyBuYW1lKTsKKworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnNlcnZpY2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICAgICAgZmFjdG9yeUxvY2sucmVsZWFzZVJlYWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJub3QgZm91bmQgaW4gc2VydmljZTogIiArIG5hbWUpOworCisgICAgICAgIHJldHVybiBoYW5kbGVEZWZhdWx0KGtleSwgYWN0dWFsUmV0dXJuKTsKKyAgICB9CisgICAgcHJpdmF0ZSBTb2Z0UmVmZXJlbmNlIGNhY2hlcmVmOworCisgICAgLy8gUmVjb3JkIHRoZSBhY3R1YWwgaWQgZm9yIHRoaXMgc2VydmljZSBpbiB0aGUgY2FjaGUsIHNvIHdlIGNhbiByZXR1cm4gaXQKKyAgICAvLyBldmVuIGlmIHdlIHN1Y2NlZWQgbGF0ZXIgd2l0aCBhIGRpZmZlcmVudCBpZC4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBDYWNoZUVudHJ5IHsKKyAgICAgICAgZmluYWwgU3RyaW5nIGFjdHVhbERlc2NyaXB0b3I7CisgICAgICAgIGZpbmFsIE9iamVjdCBzZXJ2aWNlOworICAgICAgICBDYWNoZUVudHJ5KFN0cmluZyBhY3R1YWxEZXNjcmlwdG9yLCBPYmplY3Qgc2VydmljZSkgeworICAgICAgICAgICAgdGhpcy5hY3R1YWxEZXNjcmlwdG9yID0gYWN0dWFsRGVzY3JpcHRvcjsKKyAgICAgICAgICAgIHRoaXMuc2VydmljZSA9IHNlcnZpY2U7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgaGFuZGxlciBmb3IgdGhpcyBzZXJ2aWNlIGlmIG5vIGZhY3RvcnkgaW4gdGhlIGxpc3QKKyAgICAgKiBoYW5kbGVkIHRoZSBrZXkuCisgICAgICovCisgICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVEZWZhdWx0KEtleSBrZXksIFN0cmluZ1tdIGFjdHVhbElEUmV0dXJuKSB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIGZvciBnZXRWaXNpYmxlSURzKFN0cmluZykgdGhhdCBwYXNzZXMgbnVsbAorICAgICAqIGFzIHRoZSBmYWxsYmFjaywgdGh1cyByZXR1cm5pbmcgYWxsIHZpc2libGUgSURzLgorICAgICAqLworICAgIHB1YmxpYyBTZXQgZ2V0VmlzaWJsZUlEcygpIHsKKyAgICAgICAgcmV0dXJuIGdldFZpc2libGVJRHMobnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UmV0dXJuIGEgc25hcHNob3Qgb2YgdGhlIHZpc2libGUgSURzIGZvciB0aGlzIHNlcnZpY2UuICBUaGlzCisgICAgICogc2V0IHdpbGwgbm90IGNoYW5nZSBhcyBGYWN0b3JpZXMgYXJlIGFkZGVkIG9yIHJlbW92ZWQsIGJ1dCB0aGUKKyAgICAgKiBzdXBwb3J0ZWQgaWRzIHdpbGwsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGFsbCBhbmQgb25seQorICAgICAqIHRoZSBpZHMgaW4gdGhlIHJldHVybmVkIHNldCBhcmUgdmlzaWJsZSBhbmQgc3VwcG9ydGVkIGJ5IHRoZQorICAgICAqIHNlcnZpY2UgaW4gc3Vic2VxdWVudCBjYWxscy48L3A+CisgICAgICoKKyAgICAgKiA8cD5tYXRjaElEIGlzIHBhc3NlZCB0byBjcmVhdGVLZXkgdG8gY3JlYXRlIGEga2V5LiAgSWYgdGhlCisgICAgICoga2V5IGlzIG5vdCBudWxsLCBpdCBpcyB1c2VkIHRvIGZpbHRlciBvdXQgaWRzIHRoYXQgZG9uJ3QgaGF2ZQorICAgICAqIHRoZSBrZXkgYXMgYSBmYWxsYmFjay4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2V0IGdldFZpc2libGVJRHMoU3RyaW5nIG1hdGNoSUQpIHsKKyAgICAgICAgU2V0IHJlc3VsdCA9IGdldFZpc2libGVJRE1hcCgpLmtleVNldCgpOworCisgICAgICAgIEtleSBmYWxsYmFja0tleSA9IGNyZWF0ZUtleShtYXRjaElEKTsKKworICAgICAgICBpZiAoZmFsbGJhY2tLZXkgIT0gbnVsbCkgeworICAgICAgICAgICAgU2V0IHRlbXAgPSBuZXcgSGFzaFNldChyZXN1bHQuc2l6ZSgpKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSByZXN1bHQuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBpZCA9IChTdHJpbmcpaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrS2V5LmlzRmFsbGJhY2tPZihpZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcC5hZGQoaWQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdCA9IHRlbXA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBtYXAgZnJvbSB2aXNpYmxlIGlkcyB0byBmYWN0b3JpZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgZ2V0VmlzaWJsZUlETWFwKCkgeworICAgICAgICBNYXAgaWRjYWNoZSA9IG51bGw7CisgICAgICAgIFNvZnRSZWZlcmVuY2UgcmVmID0gaWRyZWY7CisgICAgICAgIGlmIChyZWYgIT0gbnVsbCkgeworICAgICAgICAgICAgaWRjYWNoZSA9IChNYXApcmVmLmdldCgpOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChpZGNhY2hlID09IG51bGwpIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeyAvLyBvciBpZHJlZi1vbmx5IGxvY2s/CisgICAgICAgICAgICAgICAgaWYgKHJlZiA9PSBpZHJlZiB8fCBpZHJlZiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIG5vIG90aGVyIHRocmVhZCB1cGRhdGVkIGlkcmVmIGJlZm9yZSB3ZSBnb3QgdGhlIGxvY2ssIHNvCisgICAgICAgICAgICAgICAgICAgIC8vIGdyYWIgdGhlIGZhY3RvcnkgbGlzdCBhbmQgdXBkYXRlIGl0IG91cnNlbHZlcworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgZmFjdG9yeUxvY2suYWNxdWlyZVJlYWQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkY2FjaGUgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgICAgICAgICAgICAgTGlzdEl0ZXJhdG9yIGxJdGVyID0gZmFjdG9yaWVzLmxpc3RJdGVyYXRvcihmYWN0b3JpZXMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChsSXRlci5oYXNQcmV2aW91cygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFjdG9yeSBmID0gKEZhY3RvcnkpbEl0ZXIucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLnVwZGF0ZVZpc2libGVJRHMoaWRjYWNoZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZGNhY2hlID0gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlTWFwKGlkY2FjaGUpOworICAgICAgICAgICAgICAgICAgICAgICAgaWRyZWYgPSBuZXcgU29mdFJlZmVyZW5jZShpZGNhY2hlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZhY3RvcnlMb2NrLnJlbGVhc2VSZWFkKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBhbm90aGVyIHRocmVhZCB1cGRhdGVkIGlkcmVmLCBidXQgZ2MgbWF5IGhhdmUgc3RlcHBlZAorICAgICAgICAgICAgICAgICAgICAvLyBpbiBhbmQgdW5kb25lIGl0cyB3b3JrLCBsZWF2aW5nIGlkY2FjaGUgbnVsbC4gIElmIHNvLAorICAgICAgICAgICAgICAgICAgICAvLyByZXRyeS4KKyAgICAgICAgICAgICAgICAgICAgcmVmID0gaWRyZWY7CisgICAgICAgICAgICAgICAgICAgIGlkY2FjaGUgPSAoTWFwKXJlZi5nZXQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaWRjYWNoZTsKKyAgICB9CisgICAgcHJpdmF0ZSBTb2Z0UmVmZXJlbmNlIGlkcmVmOworCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgZm9yIGdldERpc3BsYXlOYW1lKFN0cmluZywgVUxvY2FsZSkgdGhhdAorICAgICAqIHVzZXMgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lKGlkLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSB2aXNpYmxlIGlkLCByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZSBpbiB0aGUgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKiBJZiB0aGVyZSBpcyBubyBkaXJlY3RseSBzdXBwb3J0ZWQgaWQgY29ycmVzcG9uZGluZyB0byB0aGlzIGlkLCByZXR1cm4KKyAgICAgKiBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGlkLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBNYXAgbSA9IGdldFZpc2libGVJRE1hcCgpOworICAgICAgICBGYWN0b3J5IGYgPSAoRmFjdG9yeSltLmdldChpZCk7CisgICAgICAgIGlmIChmICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmLmdldERpc3BsYXlOYW1lKGlkLCBsb2NhbGUpOworICAgICAgICB9CisKKyAgICAgICAgS2V5IGtleSA9IGNyZWF0ZUtleShpZCk7CisgICAgICAgIHdoaWxlIChrZXkuZmFsbGJhY2soKSkgeworICAgICAgICAgICAgZiA9IChGYWN0b3J5KW0uZ2V0KGtleS5jdXJyZW50SUQoKSk7CisgICAgICAgICAgICBpZiAoZiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGYuZ2V0RGlzcGxheU5hbWUoaWQsIGxvY2FsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIG9mIGdldERpc3BsYXlOYW1lcyhVTG9jYWxlLCBDb21wYXJhdG9yLCBTdHJpbmcpIHRoYXQgCisgICAgICogdXNlcyB0aGUgY3VycmVudCBkZWZhdWx0IExvY2FsZSBhcyB0aGUgbG9jYWxlLCBudWxsIGFzCisgICAgICogdGhlIGNvbXBhcmF0b3IsIGFuZCBudWxsIGZvciB0aGUgbWF0Y2hJRC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU29ydGVkTWFwIGdldERpc3BsYXlOYW1lcygpIHsKKyAgICAgICAgVUxvY2FsZSBsb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lcyhsb2NhbGUsIG51bGwsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIG9mIGdldERpc3BsYXlOYW1lcyhVTG9jYWxlLCBDb21wYXJhdG9yLCBTdHJpbmcpIHRoYXQKKyAgICAgKiB1c2VzIG51bGwgZm9yIHRoZSBjb21wYXJhdG9yLCBhbmQgbnVsbCBmb3IgdGhlIG1hdGNoSUQuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lcyhsb2NhbGUsIG51bGwsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIG9mIGdldERpc3BsYXlOYW1lcyhVTG9jYWxlLCBDb21wYXJhdG9yLCBTdHJpbmcpIHRoYXQKKyAgICAgKiB1c2VzIG51bGwgZm9yIHRoZSBtYXRjaElELCB0aHVzIHJldHVybmluZyBhbGwgZGlzcGxheSBuYW1lcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU29ydGVkTWFwIGdldERpc3BsYXlOYW1lcyhVTG9jYWxlIGxvY2FsZSwgQ29tcGFyYXRvciBjb20pIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lcyhsb2NhbGUsIGNvbSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcnJpZGUgb2YgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUsIENvbXBhcmF0b3IsIFN0cmluZykgdGhhdAorICAgICAqIHVzZXMgbnVsbCBmb3IgdGhlIGNvbXBhcmF0b3IuCisgICAgICovCisgICAgcHVibGljIFNvcnRlZE1hcCBnZXREaXNwbGF5TmFtZXMoVUxvY2FsZSBsb2NhbGUsIFN0cmluZyBtYXRjaElEKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZXMobG9jYWxlLCBudWxsLCBtYXRjaElEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzbmFwc2hvdCBvZiB0aGUgbWFwcGluZyBmcm9tIGRpc3BsYXkgbmFtZXMgdG8gdmlzaWJsZQorICAgICAqIElEcyBmb3IgdGhpcyBzZXJ2aWNlLiAgVGhpcyBzZXQgd2lsbCBub3QgY2hhbmdlIGFzIGZhY3RvcmllcworICAgICAqIGFyZSBhZGRlZCBvciByZW1vdmVkLCBidXQgdGhlIHN1cHBvcnRlZCBpZHMgd2lsbCwgc28gdGhlcmUgaXMKKyAgICAgKiBubyBndWFyYW50ZWUgdGhhdCBhbGwgYW5kIG9ubHkgdGhlIGlkcyBpbiB0aGUgcmV0dXJuZWQgbWFwIHdpbGwKKyAgICAgKiBiZSB2aXNpYmxlIGFuZCBzdXBwb3J0ZWQgYnkgdGhlIHNlcnZpY2UgaW4gc3Vic2VxdWVudCBjYWxscywKKyAgICAgKiBub3IgaXMgdGhlcmUgYW55IGd1YXJhbnRlZSB0aGF0IHRoZSBjdXJyZW50IGRpc3BsYXkgbmFtZXMgbWF0Y2gKKyAgICAgKiB0aG9zZSBpbiB0aGUgc2V0LiAgVGhlIGRpc3BsYXkgbmFtZXMgYXJlIHNvcnRlZCBiYXNlZCBvbiB0aGUKKyAgICAgKiBjb21wYXJhdG9yIHByb3ZpZGVkLgorICAgICAqLworICAgIHB1YmxpYyBTb3J0ZWRNYXAgZ2V0RGlzcGxheU5hbWVzKFVMb2NhbGUgbG9jYWxlLCBDb21wYXJhdG9yIGNvbSwgU3RyaW5nIG1hdGNoSUQpIHsKKyAgICAgICAgU29ydGVkTWFwIGRuY2FjaGUgPSBudWxsOworICAgICAgICBMb2NhbGVSZWYgcmVmID0gZG5yZWY7CisKKyAgICAgICAgaWYgKHJlZiAhPSBudWxsKSB7CisgICAgICAgICAgICBkbmNhY2hlID0gcmVmLmdldChsb2NhbGUsIGNvbSk7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAoZG5jYWNoZSA9PSBudWxsKSB7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKHRoaXMpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVmID09IGRucmVmIHx8IGRucmVmID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZG5jYWNoZSA9IG5ldyBUcmVlTWFwKGNvbSk7IC8vIHNvcnRlZAorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgTWFwIG0gPSBnZXRWaXNpYmxlSURNYXAoKTsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgZWkgPSBtLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGVpLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgRW50cnkgZSA9IChFbnRyeSllaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKWUuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBGYWN0b3J5IGYgPSAoRmFjdG9yeSllLmdldFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkbmNhY2hlLnB1dChmLmdldERpc3BsYXlOYW1lKGlkLCBsb2NhbGUpLCBpZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBkbmNhY2hlID0gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlU29ydGVkTWFwKGRuY2FjaGUpOworICAgICAgICAgICAgICAgICAgICBkbnJlZiA9IG5ldyBMb2NhbGVSZWYoZG5jYWNoZSwgbG9jYWxlLCBjb20pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJlZiA9IGRucmVmOworICAgICAgICAgICAgICAgICAgICBkbmNhY2hlID0gcmVmLmdldChsb2NhbGUsIGNvbSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgS2V5IG1hdGNoS2V5ID0gY3JlYXRlS2V5KG1hdGNoSUQpOworICAgICAgICBpZiAobWF0Y2hLZXkgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGRuY2FjaGU7CisgICAgICAgIH0KKworICAgICAgICBTb3J0ZWRNYXAgcmVzdWx0ID0gbmV3IFRyZWVNYXAoZG5jYWNoZSk7CisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSByZXN1bHQuZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIEVudHJ5IGUgPSAoRW50cnkpaXRlci5uZXh0KCk7CisgICAgICAgICAgICBpZiAoIW1hdGNoS2V5LmlzRmFsbGJhY2tPZigoU3RyaW5nKWUuZ2V0VmFsdWUoKSkpIHsKKyAgICAgICAgICAgICAgICBpdGVyLnJlbW92ZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLy8gd2UgZGVmaW5lIGEgY2xhc3Mgc28gd2UgZ2V0IGF0b21pYyBzaW11bHRhbmVvdXMgYWNjZXNzIHRvIHRoZQorICAgIC8vIGxvY2FsZSwgY29tcGFyYXRvciwgYW5kIGNvcnJlc3BvbmRpbmcgbWFwLgorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIExvY2FsZVJlZiB7CisgICAgICAgIHByaXZhdGUgZmluYWwgVUxvY2FsZSBsb2NhbGU7CisgICAgICAgIHByaXZhdGUgU29mdFJlZmVyZW5jZSByZWY7CisgICAgICAgIHByaXZhdGUgQ29tcGFyYXRvciBjb207CisKKyAgICAgICAgTG9jYWxlUmVmKE1hcCBkbkNhY2hlLCBVTG9jYWxlIGxvY2FsZSwgQ29tcGFyYXRvciBjb20pIHsKKyAgICAgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgICAgICAgICAgdGhpcy5jb20gPSBjb207CisgICAgICAgICAgICB0aGlzLnJlZiA9IG5ldyBTb2Z0UmVmZXJlbmNlKGRuQ2FjaGUpOworICAgICAgICB9CisKKworICAgICAgICBTb3J0ZWRNYXAgZ2V0KFVMb2NhbGUgbG9jYWxlLCBDb21wYXJhdG9yIGNvbSkgeworICAgICAgICAgICAgU29ydGVkTWFwIG0gPSAoU29ydGVkTWFwKXJlZi5nZXQoKTsKKyAgICAgICAgICAgIGlmIChtICE9IG51bGwgJiYKKyAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZS5lcXVhbHMobG9jYWxlKSAmJgorICAgICAgICAgICAgICAgICh0aGlzLmNvbSA9PSBjb20gfHwgKHRoaXMuY29tICE9IG51bGwgJiYgdGhpcy5jb20uZXF1YWxzKGNvbSkpKSkgeworCisgICAgICAgICAgICAgICAgcmV0dXJuIG07CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIExvY2FsZVJlZiBkbnJlZjsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHNuYXBzaG90IG9mIHRoZSBjdXJyZW50bHkgcmVnaXN0ZXJlZCBmYWN0b3JpZXMuICBUaGVyZQorICAgICAqIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSBsaXN0IHdpbGwgc3RpbGwgbWF0Y2ggdGhlIGN1cnJlbnQKKyAgICAgKiBmYWN0b3J5IGxpc3Qgb2YgdGhlIHNlcnZpY2Ugc3Vic2VxdWVudCB0byB0aGlzIGNhbGwuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIExpc3QgZmFjdG9yaWVzKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmFjdG9yeUxvY2suYWNxdWlyZVJlYWQoKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgQXJyYXlMaXN0KGZhY3Rvcmllcyk7CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseXsKKyAgICAgICAgICAgIGZhY3RvcnlMb2NrLnJlbGVhc2VSZWFkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGNvbnZlbmllbmNlIG92ZXJyaWRlIG9mIHJlZ2lzdGVyT2JqZWN0KE9iamVjdCwgU3RyaW5nLCBib29sZWFuKQorICAgICAqIHRoYXQgZGVmYXVsdHMgdmlzaWJsZSB0byB0cnVlLgorICAgICAqLworICAgIHB1YmxpYyBGYWN0b3J5IHJlZ2lzdGVyT2JqZWN0KE9iamVjdCBvYmosIFN0cmluZyBpZCkgeworICAgICAgICByZXR1cm4gcmVnaXN0ZXJPYmplY3Qob2JqLCBpZCwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYW4gb2JqZWN0IHdpdGggdGhlIHByb3ZpZGVkIGlkLiAgVGhlIGlkIHdpbGwgYmUKKyAgICAgKiBjYW5vbmljYWxpemVkLiAgVGhlIGNhbm9uaWNhbGl6ZWQgSUQgd2lsbCBiZSByZXR1cm5lZCBieQorICAgICAqIGdldFZpc2libGVJRHMgaWYgdmlzaWJsZSBpcyB0cnVlLgorICAgICAqLworICAgIHB1YmxpYyBGYWN0b3J5IHJlZ2lzdGVyT2JqZWN0KE9iamVjdCBvYmosIFN0cmluZyBpZCwgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIFN0cmluZyBjYW5vbmljYWxJRCA9IGNyZWF0ZUtleShpZCkuY2Fub25pY2FsSUQoKTsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdGVyRmFjdG9yeShuZXcgU2ltcGxlRmFjdG9yeShvYmosIGNhbm9uaWNhbElELCB2aXNpYmxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBGYWN0b3J5LiAgUmV0dXJucyB0aGUgZmFjdG9yeSBpZiB0aGUgc2VydmljZSBhY2NlcHRzCisgICAgICogdGhlIGZhY3RvcnksIG90aGVyd2lzZSByZXR1cm5zIG51bGwuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgorICAgICAqIGFjY2VwdHMgYWxsIGZhY3Rvcmllcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgRmFjdG9yeSByZWdpc3RlckZhY3RvcnkoRmFjdG9yeSBmYWN0b3J5KSB7CisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmYWN0b3J5TG9jay5hY3F1aXJlV3JpdGUoKTsKKyAgICAgICAgICAgIGZhY3Rvcmllcy5hZGQoMCwgZmFjdG9yeSk7CisgICAgICAgICAgICBjbGVhckNhY2hlcygpOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgZmFjdG9yeUxvY2sucmVsZWFzZVdyaXRlKCk7CisgICAgICAgIH0KKyAgICAgICAgbm90aWZ5Q2hhbmdlZCgpOworICAgICAgICByZXR1cm4gZmFjdG9yeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGEgZmFjdG9yeS4gIFRoZSBmaXJzdCBtYXRjaGluZyByZWdpc3RlcmVkIGZhY3Rvcnkgd2lsbAorICAgICAqIGJlIHJlbW92ZWQgZnJvbSB0aGUgbGlzdC4gIFJldHVybnMgdHJ1ZSBpZiBhIG1hdGNoaW5nIGZhY3Rvcnkgd2FzCisgICAgICogcmVtb3ZlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiB1bnJlZ2lzdGVyRmFjdG9yeShGYWN0b3J5IGZhY3RvcnkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIHJlc3VsdCA9IGZhbHNlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZmFjdG9yeUxvY2suYWNxdWlyZVdyaXRlKCk7CisgICAgICAgICAgICBpZiAoZmFjdG9yaWVzLnJlbW92ZShmYWN0b3J5KSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgICAgICAgICAgY2xlYXJDYWNoZXMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIGZhY3RvcnlMb2NrLnJlbGVhc2VXcml0ZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJlc3VsdCkgeworICAgICAgICAgICAgbm90aWZ5Q2hhbmdlZCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIHNlcnZpY2UgdG8gdGhlIGRlZmF1bHQgZmFjdG9yaWVzLiAgVGhlIGZhY3RvcnkKKyAgICAgKiBsb2NrIGlzIGFjcXVpcmVkIGFuZCB0aGVuIHJlSW5pdGlhbGl6ZUZhY3RvcmllcyBpcyBjYWxsZWQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBmYWN0b3J5TG9jay5hY3F1aXJlV3JpdGUoKTsKKyAgICAgICAgICAgIHJlSW5pdGlhbGl6ZUZhY3RvcmllcygpOworICAgICAgICAgICAgY2xlYXJDYWNoZXMoKTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIGZhY3RvcnlMb2NrLnJlbGVhc2VXcml0ZSgpOworICAgICAgICB9CisgICAgICAgIG5vdGlmeUNoYW5nZWQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWluaXRpYWxpemUgdGhlIGZhY3RvcnkgbGlzdCB0byBpdHMgZGVmYXVsdCBzdGF0ZS4gIEJ5IGRlZmF1bHQKKyAgICAgKiB0aGlzIGNsZWFycyB0aGUgbGlzdC4gIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRvIHByb3ZpZGUgb3RoZXIKKyAgICAgKiBkZWZhdWx0IGluaXRpYWxpemF0aW9uIG9mIHRoZSBmYWN0b3J5IGxpc3QuICBTdWJjbGFzc2VzIG11c3QKKyAgICAgKiBub3QgY2FsbCB0aGlzIG1ldGhvZCBkaXJlY3RseSwgYXMgaXQgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aGlsZQorICAgICAqIGhvbGRpbmcgd3JpdGUgYWNjZXNzIHRvIHRoZSBmYWN0b3J5IGxpc3QuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgcmVJbml0aWFsaXplRmFjdG9yaWVzKCkgeworICAgICAgICBmYWN0b3JpZXMuY2xlYXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc2VydmljZSBpcyBpbiBpdHMgZGVmYXVsdCBzdGF0ZS4gIFRoZSBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb24gcmV0dXJucyB0cnVlIGlmIHRoZXJlIGFyZSBubyBmYWN0b3JpZXMgcmVnaXN0ZXJlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RlZmF1bHQoKSB7CisgICAgICAgIHJldHVybiBmYWN0b3JpZXMuc2l6ZSgpID09IGRlZmF1bHRTaXplOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZGVmYXVsdCBzaXplIHRvIHRoZSBjdXJyZW50IG51bWJlciBvZiByZWdpc3RlcmVkIGZhY3Rvcmllcy4KKyAgICAgKiBVc2VkIGJ5IHN1YmNsYXNzZXMgdG8gY3VzdG9taXplIHRoZSBiZWhhdmlvciBvZiBpc0RlZmF1bHQuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgbWFya0RlZmF1bHQoKSB7CisgICAgICAgIGRlZmF1bHRTaXplID0gZmFjdG9yaWVzLnNpemUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBrZXkgZnJvbSBhbiBpZC4gIFRoaXMgY3JlYXRlcyBhIEtleSBpbnN0YW5jZS4KKyAgICAgKiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0byBkZWZpbmUgbW9yZSB1c2VmdWwga2V5cyBhcHByb3ByaWF0ZQorICAgICAqIHRvIHRoZSBmYWN0b3JpZXMgdGhleSBhY2NlcHQuICBJZiBpZCBpcyBudWxsLCByZXR1cm5zIG51bGwuCisgICAgICovCisgICAgcHVibGljIEtleSBjcmVhdGVLZXkoU3RyaW5nIGlkKSB7CisgICAgICAgIHJldHVybiBpZCA9PSBudWxsID8gbnVsbCA6IG5ldyBLZXkoaWQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsZWFyIGNhY2hlcyBtYWludGFpbmVkIGJ5IHRoaXMgc2VydmljZS4gIFN1YmNsYXNzZXMgY2FuCisgICAgICogb3ZlcnJpZGUgaWYgdGhleSBpbXBsZW1lbnQgYWRkaXRpb25hbCB0aGF0IG5lZWQgdG8gYmUgY2xlYXJlZAorICAgICAqIHdoZW4gdGhlIHNlcnZpY2UgY2hhbmdlcy4gU3ViY2xhc3NlcyBzaG91bGQgZ2VuZXJhbGx5IG5vdCBjYWxsCisgICAgICogdGhpcyBtZXRob2QgZGlyZWN0bHksIGFzIGl0IG11c3Qgb25seSBiZSBjYWxsZWQgd2hpbGUKKyAgICAgKiBzeW5jaHJvbml6ZWQgb24gdGhpcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjbGVhckNhY2hlcygpIHsKKyAgICAgICAgLy8gd2UgZG9uJ3Qgc3luY2hyb25pemUgb24gdGhlc2UgYmVjYXVzZSBtZXRob2RzIHRoYXQgdXNlIHRoZW0KKyAgICAgICAgLy8gY29weSBiZWZvcmUgdXNlLCBhbmQgY2hlY2sgZm9yIGNoYW5nZXMgaWYgdGhleSBtb2RpZnkgdGhlCisgICAgICAgIC8vIGNhY2hlcy4KKyAgICAgICAgY2FjaGVyZWYgPSBudWxsOworICAgICAgICBpZHJlZiA9IG51bGw7CisgICAgICAgIGRucmVmID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhcnMgb25seSB0aGUgc2VydmljZSBjYWNoZS4KKyAgICAgKiBUaGlzIGNhbiBiZSBjYWxsZWQgYnkgc3ViY2xhc3NlcyB3aGVuIGEgY2hhbmdlIGFmZmVjdHMgdGhlIHNlcnZpY2UKKyAgICAgKiBjYWNoZSBidXQgbm90IHRoZSBpZCBjYWNoZXMsIGUuZy4sIHdoZW4gdGhlIGRlZmF1bHQgbG9jYWxlIGNoYW5nZXMKKyAgICAgKiB0aGUgcmVzb2x1dGlvbiBvZiBpZHMgY2hhbmdlcywgYnV0IG5vdCB0aGUgdmlzaWJsZSBpZHMgdGhlbXNlbHZlcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjbGVhclNlcnZpY2VDYWNoZSgpIHsKKyAgICAgICAgY2FjaGVyZWYgPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlcnZpY2VMaXN0ZW5lciBpcyB0aGUgbGlzdGVuZXIgdGhhdCBJQ1VTZXJ2aWNlIHByb3ZpZGVzIGJ5IGRlZmF1bHQuCisgICAgICogSUNVU2VydmljZSB3aWxsIG5vdGlmaXkgdGhpcyBsaXN0ZW5lciB3aGVuIGZhY3RvcmllcyBhcmUgYWRkZWQgdG8KKyAgICAgKiBvciByZW1vdmVkIGZyb20gdGhlIHNlcnZpY2UuICBTdWJjbGFzc2VzIGNhbiBwcm92aWRlCisgICAgICogZGlmZmVyZW50IGxpc3RlbmVyIGludGVyZmFjZXMgdGhhdCBleHRlbmQgRXZlbnRMaXN0ZW5lciwgYW5kIG1vZGlmeQorICAgICAqIGFjY2VwdHNMaXN0ZW5lciBhbmQgbm90aWZ5TGlzdGVuZXIgYXMgYXBwcm9wcmlhdGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgU2VydmljZUxpc3RlbmVyIGV4dGVuZHMgRXZlbnRMaXN0ZW5lciB7CisgICAgICAgIHB1YmxpYyB2b2lkIHNlcnZpY2VDaGFuZ2VkKElDVVNlcnZpY2Ugc2VydmljZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGxpc3RlbmVyIGlzIGFjY2VwdGVkOyBieSBkZWZhdWx0IHRoaXMKKyAgICAgKiByZXF1aXJlcyBhIFNlcnZpY2VMaXN0ZW5lci4gIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRvIGFjY2VwdAorICAgICAqIGRpZmZlcmVudCBsaXN0ZW5lcnMuCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYWNjZXB0c0xpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbCkgeworICAgICAgICByZXR1cm4gbCBpbnN0YW5jZW9mIFNlcnZpY2VMaXN0ZW5lcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3RpZnkgdGhlIGxpc3RlbmVyLCB3aGljaCBieSBkZWZhdWx0IGlzIGEgU2VydmljZUxpc3RlbmVyLgorICAgICAqIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRvIHVzZSBhIGRpZmZlcmVudCBsaXN0ZW5lci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBub3RpZnlMaXN0ZW5lcihFdmVudExpc3RlbmVyIGwpIHsKKyAgICAgICAgKChTZXJ2aWNlTGlzdGVuZXIpbCkuc2VydmljZUNoYW5nZWQodGhpcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHN0YXRpc3RpY3MgZm9yIHRoaXMgc2VydmljZS4KKyAgICAgKiBUaGlzIGFsc28gcmVzZXRzIHRoZSBzdGF0aXN0aWNzLiBVc2VkIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBzdGF0cygpIHsKKyAgICAgICAgSUNVUldMb2NrLlN0YXRzIHN0YXRzID0gZmFjdG9yeUxvY2sucmVzZXRTdGF0cygpOworICAgICAgICBpZiAoc3RhdHMgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHN0YXRzLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICJubyBzdGF0cyI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoaXMgc2VydmljZS4gVGhpcyB3aWxsIGJlIHRoZSBlbXB0eSBzdHJpbmcgaWYgbm9uZSB3YXMgYXNzaWduZWQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSByZXN1bHQgb2Ygc3VwZXIudG9TdHJpbmcsIGFwcGVuZGluZyB0aGUgbmFtZSBpbiBjdXJseSBicmFjZXMuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIHN1cGVyLnRvU3RyaW5nKCkgKyAieyIgKyBuYW1lICsgIn0iOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ltcGxpY2l0Q0VHZW5lcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ltcGxpY2l0Q0VHZW5lcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODVmYzg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSW1wbGljaXRDRUdlbmVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMzkwIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworLyoqCisgKiBGb3IgZ2VuZXJhdGlvbiBvZiBJbXBsaWNpdCBDRXMKKyAqIEBhdXRob3IgTWFyayBEYXZpcworICoKKyAqIENsZWFuZWQgdXAgc28gdGhhdCBjaGFuZ2VzIGNhbiBiZSBtYWRlIG1vcmUgZWFzaWx5LgorICogT2xkIHZhbHVlczoKKyMgRmlyc3QgSW1wbGljaXQ6IEUyNkE3OTJECisjIExhc3QgSW1wbGljaXQ6IEUzREM3MEMwCisjIEZpcnN0IENKSzogRTAwMzAzMDAKKyMgTGFzdCBDSks6IEUwQTlERDAwCisjIEZpcnN0IENKS19BOiBFMEE5REYwMAorIyBMYXN0IENKS19BOiBFMERFMzEwMAorQGludGVybmFsCisgKi8KK3B1YmxpYyBjbGFzcyBJbXBsaWNpdENFR2VuZXJhdG9yIHsKKyAgICAKKyAgICAvKioKKyAgICAgKiBjb25zdGFudHMKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworICAgIAorICAgIHN0YXRpYyBmaW5hbCBsb25nIHRvcEJ5dGUgPSAweEZGMDAwMDAwTDsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBib3R0b21CeXRlID0gMHhGRkw7CisgICAgc3RhdGljIGZpbmFsIGxvbmcgZm91ckJ5dGVzID0gMHhGRkZGRkZGRkw7CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBNQVhfSU5QVVQgPSAweDIyMDAwMTsgLy8gMiAqIFVuaWNvZGUgcmFuZ2UgKyAyCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAKKyAgICAgICAgQ0pLX0JBU0UgPSAweDRFMDAsCisgICAgICAgIENKS19MSU1JVCA9IDB4OUZGRisxLAorICAgICAgICBDSktfQ09NUEFUX1VTRURfQkFTRSA9IDB4RkEwRSwKKyAgICAgICAgQ0pLX0NPTVBBVF9VU0VEX0xJTUlUID0gMHhGQTJGKzEsCisgICAgICAgIENKS19BX0JBU0UgPSAweDM0MDAsCisgICAgICAgIENKS19BX0xJTUlUID0gMHg0REJGKzEsCisgICAgICAgIENKS19CX0JBU0UgPSAweDIwMDAwLAorICAgICAgICBDSktfQl9MSU1JVCA9IDB4MkE2REYrMTsKKyAgICAKKyAgICBwcml2YXRlIHZvaWQgdGhyb3dFcnJvcihTdHJpbmcgdGl0bGUsIGludCBjcCkgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKHRpdGxlICsgIlx0IiArIFV0aWxpdHkuaGV4KGNwLCA2KSArICJcdCIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmhleChnZXRJbXBsaWNpdEZyb21SYXcoY3ApICYgZm91ckJ5dGVzKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHRocm93RXJyb3IoU3RyaW5nIHRpdGxlLCBsb25nIGNlKSB7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24odGl0bGUgKyAiXHQiICsgVXRpbGl0eS5oZXgoY2UgJiBmb3VyQnl0ZXMpKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2hvdyhpbnQgaSkgeworICAgICAgICBpZiAoaSA+PSAwICYmIGkgPD0gTUFYX0lOUFVUKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVXRpbGl0eS5oZXgoaSkgKyAiXHQiICsgVXRpbGl0eS5oZXgoZ2V0SW1wbGljaXRGcm9tUmF3KGkpICYgZm91ckJ5dGVzKSk7CisgICAgICAgIH0gCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFByZWNvbXB1dGVkIGJ5IGNvbnN0cnVjdG9yCisgICAgICovCisgICAgaW50IGZpbmFsM011bHRpcGxpZXI7CisgICAgaW50IGZpbmFsNE11bHRpcGxpZXI7CisgICAgaW50IGZpbmFsM0NvdW50OworICAgIGludCBmaW5hbDRDb3VudDsKKyAgICBpbnQgbWVkaWFsQ291bnQ7CisgICAgaW50IG1pbjNQcmltYXJ5OworICAgIGludCBtaW40UHJpbWFyeTsKKyAgICBpbnQgbWF4NFByaW1hcnk7CisgICAgaW50IG1pblRyYWlsOworICAgIGludCBtYXhUcmFpbDsKKyAgICBpbnQgbWF4M1RyYWlsOworICAgIGludCBtYXg0VHJhaWw7CisgICAgaW50IG1pbjRCb3VuZGFyeTsKKyAgICAKKyAgICBwdWJsaWMgaW50IGdldEdhcDQoKSB7CisgICAgICAgIHJldHVybiBmaW5hbDRNdWx0aXBsaWVyIC0gMTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRHYXAzKCkgeworICAgICAgICByZXR1cm4gZmluYWwzTXVsdGlwbGllciAtIDE7CisgICAgfQorICAgIAorICAgIC8vIG9sZCBjb21tZW50CisgICAgLy8gd2UgbXVzdCBza2lwIGFsbCAwMCwgMDEsIDAyLCBGRiBieXRlcywgc28gbW9zdCBieXRlcyBoYXZlIDI1MiB2YWx1ZXMKKyAgICAvLyB3ZSBtdXN0IGxlYXZlIGEgZ2FwIG9mIDAxIGJldHdlZW4gYWxsIHZhbHVlcyBvZiB0aGUgbGFzdCBieXRlLCBzbyB0aGUgbGFzdCBieXRlIGhhcyAxMjYgdmFsdWVzICgzIGJ5dGUgY2FzZSkKKyAgICAvLyB3ZSBzaGlmdCBzbyB0aGF0IEhBTiBhbGwgaGFzIHRoZSBzYW1lIGZpcnN0IHByaW1hcnksIGZvciBjb21wcmVzc2lvbi4KKyAgICAvLyBmb3IgdGhlIDQgYnl0ZSBjYXNlLCB3ZSBtYWtlIHRoZSBnYXAgYXMgbGFyZ2UgYXMgd2UgY2FuIGZpdC4KKworICAgIC8qKgorICAgICAqIFN1cHBseSBwYXJhbWV0ZXJzIGZvciBnZW5lcmF0aW5nIGltcGxpY2l0IENFcworICAgICAqLworICAgIHB1YmxpYyBJbXBsaWNpdENFR2VuZXJhdG9yKGludCBtaW5QcmltYXJ5LCBpbnQgbWF4UHJpbWFyeSkgeworICAgICAgICAvLyAxMyBpcyB0aGUgbGFyZ2VzdCA0LWJ5dGUgZ2FwIHdlIGNhbiB1c2Ugd2l0aG91dCBnZXR0aW5nIDIgZm91ci1ieXRlIGZvcm1zLgorICAgICAgICB0aGlzKG1pblByaW1hcnksIG1heFByaW1hcnksIDB4MDQsIDB4RkUsIDEsIDEpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdXAgdG8gZ2VuZXJhdGUgaW1wbGljaXRzLgorICAgICAqIEBwYXJhbSBtaW5QcmltYXJ5CisgICAgICogQHBhcmFtIG1heFByaW1hcnkKKyAgICAgKiBAcGFyYW0gbWluVHJhaWwgZmluYWwgYnl0ZQorICAgICAqIEBwYXJhbSBtYXhUcmFpbCBmaW5hbCBieXRlCisgICAgICogQHBhcmFtIGdhcDMgdGhlIGdhcCB3ZSBsZWF2ZSBmb3IgdGFpbG9yaW5nIGZvciAzLWJ5dGUgZm9ybXMKKyAgICAgKiBAcGFyYW0gcHJpbWFyaWVzM2NvdW50IG51bWJlciBvZiAzLWJ5dGUgcHJpbWFyeXMgd2UgY2FuIHVzZSAobm9ybWFsbHkgMSkKKyAgICAgKi8KKyAgICBwdWJsaWMgSW1wbGljaXRDRUdlbmVyYXRvcihpbnQgbWluUHJpbWFyeSwgaW50IG1heFByaW1hcnksIGludCBtaW5UcmFpbCwgaW50IG1heFRyYWlsLCBpbnQgZ2FwMywgaW50IHByaW1hcmllczNjb3VudCkgeworICAgICAgICAvLyBzb21lIHNpbXBsZSBwYXJhbWV0ZXIgY2hlY2tzCisgICAgICAgIGlmIChtaW5QcmltYXJ5IDwgMCB8fCBtaW5QcmltYXJ5ID49IG1heFByaW1hcnkgfHwgbWF4UHJpbWFyeSA+IDB4RkYpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJhZCBsZWFkIGJ5dGVzIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1pblRyYWlsIDwgMCB8fCBtaW5UcmFpbCA+PSBtYXhUcmFpbCB8fCBtYXhUcmFpbCA+IDB4RkYpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJhZCB0cmFpbCBieXRlcyIpOworICAgICAgICB9CisgICAgICAgIGlmIChwcmltYXJpZXMzY291bnQgPCAxKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJiYWQgdGhyZWUtYnl0ZSBwcmltYXJpZXMiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGhpcy5taW5UcmFpbCA9IG1pblRyYWlsOworICAgICAgICB0aGlzLm1heFRyYWlsID0gbWF4VHJhaWw7CisgICAgICAgIAorICAgICAgICBtaW4zUHJpbWFyeSA9IG1pblByaW1hcnk7CisgICAgICAgIG1heDRQcmltYXJ5ID0gbWF4UHJpbWFyeTsKKyAgICAgICAgLy8gY29tcHV0ZSBjb25zdGFudHMgZm9yIHVzZSBsYXRlci4KKyAgICAgICAgLy8gbnVtYmVyIG9mIHZhbHVlcyB3ZSBjYW4gdXNlIGluIHRyYWlsaW5nIGJ5dGVzCisgICAgICAgIC8vIGxlYXZlIHJvb20gZm9yIGVtcHR5IHZhbHVlcyBiZXR3ZWVuIEFORCBhYm92ZSwgZS5nLiBpZiBnYXAgPSAyCisgICAgICAgIC8vIHJhbmdlIDMuLjcgPT4gKzMgLTQgLTUgLTYgLTc6IHNvIDEgdmFsdWUKKyAgICAgICAgLy8gcmFuZ2UgMy4uOCA9PiArMyAtNCAtNSArNiAtNyAtODogc28gMiB2YWx1ZXMKKyAgICAgICAgLy8gcmFuZ2UgMy4uOSA9PiArMyAtNCAtNSArNiAtNyAtOCAtOTogc28gMiB2YWx1ZXMKKyAgICAgICAgZmluYWwzTXVsdGlwbGllciA9IGdhcDMgKyAxOworICAgICAgICBmaW5hbDNDb3VudCA9IChtYXhUcmFpbCAtIG1pblRyYWlsICsgMSkgLyBmaW5hbDNNdWx0aXBsaWVyOworICAgICAgICBtYXgzVHJhaWwgPSBtaW5UcmFpbCArIChmaW5hbDNDb3VudCAtIDEpICogZmluYWwzTXVsdGlwbGllcjsKKyAgICAgICAgCisgICAgICAgIC8vIG1lZGlhbHMgY2FuIHVzZSBmdWxsIHJhbmdlCisgICAgICAgIG1lZGlhbENvdW50ID0gKG1heFRyYWlsIC0gbWluVHJhaWwgKyAxKTsKKyAgICAgICAgLy8gZmluZCBvdXQgaG93IG1hbnkgdmFsdWVzIGZpdCBpbiBlYWNoIGZvcm0KKyAgICAgICAgaW50IHRocmVlQnl0ZUNvdW50ID0gbWVkaWFsQ291bnQgKiBmaW5hbDNDb3VudDsKKyAgICAgICAgLy8gbm93IGRldGVybWluZSB3aGVyZSB0aGUgMy80IGJvdW5kYXJ5IGlzLgorICAgICAgICAvLyB3ZSB1c2UgMyBieXRlcyBiZWxvdyB0aGUgYm91bmRhcnksIGFuZCA0IGFib3ZlCisgICAgICAgIGludCBwcmltYXJpZXNBdmFpbGFibGUgPSBtYXhQcmltYXJ5IC0gbWluUHJpbWFyeSArIDE7CisgICAgICAgIGludCBwcmltYXJpZXM0Y291bnQgPSBwcmltYXJpZXNBdmFpbGFibGUgLSBwcmltYXJpZXMzY291bnQ7ICAgICAgICAKKyAgICAgICAgCisgICAgICAgIGludCBtaW4zQnl0ZUNvdmVyYWdlID0gcHJpbWFyaWVzM2NvdW50ICogdGhyZWVCeXRlQ291bnQ7CisgICAgICAgIG1pbjRQcmltYXJ5ID0gbWluUHJpbWFyeSArIHByaW1hcmllczNjb3VudDsKKyAgICAgICAgbWluNEJvdW5kYXJ5ID0gbWluM0J5dGVDb3ZlcmFnZTsKKyAgICAgICAgLy8gTm93IGV4cGFuZCBvdXQgdGhlIG11bHRpcGxpZXIgZm9yIHRoZSA0IGJ5dGVzLCBhbmQgcmVkby4KKyAKKyAgICAgICAgaW50IHRvdGFsTmVlZGVkID0gTUFYX0lOUFVUIC0gbWluNEJvdW5kYXJ5OworICAgICAgICBpbnQgbmVlZGVkUGVyUHJpbWFyeUJ5dGUgPSBkaXZpZGVBbmRSb3VuZFVwKHRvdGFsTmVlZGVkLCBwcmltYXJpZXM0Y291bnQpOworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigibmVlZGVkUGVyUHJpbWFyeUJ5dGU6ICIgKyBuZWVkZWRQZXJQcmltYXJ5Qnl0ZSk7CisgICAgICAgIAorICAgICAgICBpbnQgbmVlZGVkUGVyRmluYWxCeXRlID0gZGl2aWRlQW5kUm91bmRVcChuZWVkZWRQZXJQcmltYXJ5Qnl0ZSwgbWVkaWFsQ291bnQgKiBtZWRpYWxDb3VudCk7CisgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJuZWVkZWRQZXJGaW5hbEJ5dGU6ICIgKyBuZWVkZWRQZXJGaW5hbEJ5dGUpOworICAgICAgICAKKyAgICAgICAgaW50IGdhcDQgPSAobWF4VHJhaWwgLSBtaW5UcmFpbCAtIDEpIC8gbmVlZGVkUGVyRmluYWxCeXRlOworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiZXhwYW5kZWRHYXA6ICIgKyBnYXA0KTsKKyAgICAgICAgaWYgKGdhcDQgPCAxKSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJtdXN0IGhhdmUgbGFyZ2VyIGdhcDRzIik7CisgICAgICAgIAorICAgICAgICBmaW5hbDRNdWx0aXBsaWVyID0gZ2FwNCArIDE7CisgICAgICAgIGZpbmFsNENvdW50ID0gbmVlZGVkUGVyRmluYWxCeXRlOworICAgICAgICBtYXg0VHJhaWwgPSBtaW5UcmFpbCArIChmaW5hbDRDb3VudCAtIDEpICogZmluYWw0TXVsdGlwbGllcjsKKyAgICAgICAgCisgICAgICAgIGlmIChwcmltYXJpZXM0Y291bnQgKiBtZWRpYWxDb3VudCAqIG1lZGlhbENvdW50ICogZmluYWw0Q291bnQgPCBNQVhfSU5QVVQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImludGVybmFsIGVycm9yIik7CisgICAgICAgIH0gCisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmaW5hbDRDb3VudDogIiArIGZpbmFsNENvdW50KTsKKyAgICAgICAgICAgIGZvciAoaW50IGNvdW50ZXIgPSAwOyBjb3VudGVyIDwgZmluYWw0Q291bnQ7ICsrY291bnRlcikgeworICAgICAgICAgICAgICAgIGludCB2YWx1ZSA9IG1pblRyYWlsICsgKDEgKyBjb3VudGVyKSpmaW5hbDRNdWx0aXBsaWVyOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihjb3VudGVyICsgIlx0IiArIHZhbHVlICsgIlx0IiArIFV0aWxpdHkuaGV4KHZhbHVlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIHB1YmxpYyBpbnQgZGl2aWRlQW5kUm91bmRVcChpbnQgYSwgaW50IGIpIHsKKyAgICAgICAgcmV0dXJuIDEgKyAoYS0xKS9iOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnRzIGltcGxpY2l0IENFIGludG8gcmF3IGludGVnZXIKKyAgICAgKiBAcGFyYW0gaW1wbGljaXQKKyAgICAgKiBAcmV0dXJuIC0xIGlmIGlsbGVnYWwgZm9ybWF0CisgICAgICovCisgICAgcHVibGljIGludCBnZXRSYXdGcm9tSW1wbGljaXQoaW50IGltcGxpY2l0KSB7CisgICAgICAgIGludCByZXN1bHQ7CisgICAgICAgIGludCBiMyA9IGltcGxpY2l0ICYgMHhGRjsKKyAgICAgICAgaW1wbGljaXQgPj49IDg7CisgICAgICAgIGludCBiMiA9IGltcGxpY2l0ICYgMHhGRjsKKyAgICAgICAgaW1wbGljaXQgPj49IDg7CisgICAgICAgIGludCBiMSA9IGltcGxpY2l0ICYgMHhGRjsKKyAgICAgICAgaW1wbGljaXQgPj49IDg7CisgICAgICAgIGludCBiMCA9IGltcGxpY2l0ICYgMHhGRjsKKworICAgICAgICAvLyBzaW1wbGUgcGFyYW1ldGVyIGNoZWNrcworICAgICAgICBpZiAoYjAgPCBtaW4zUHJpbWFyeSB8fCBiMCA+IG1heDRQcmltYXJ5CisgICAgICAgICAgICB8fCBiMSA8IG1pblRyYWlsIHx8IGIxID4gbWF4VHJhaWwpIHJldHVybiAtMTsKKyAgICAgICAgLy8gbm9ybWFsIG9mZnNldHMKKyAgICAgICAgYjEgLT0gbWluVHJhaWw7CisKKyAgICAgICAgLy8gdGFrZSBjYXJlIG9mIHRoZSBmaW5hbCB2YWx1ZXMsIGFuZCBjb21wb3NlCisgICAgICAgIGlmIChiMCA8IG1pbjRQcmltYXJ5KSB7CisgICAgICAgICAgICBpZiAoYjIgPCBtaW5UcmFpbCB8fCBiMiA+IG1heDNUcmFpbCB8fCBiMyAhPSAwKSByZXR1cm4gLTE7CisgICAgICAgICAgICBiMiAtPSBtaW5UcmFpbDsKKyAgICAgICAgICAgIGludCByZW1haW5kZXIgPSBiMiAlIGZpbmFsM011bHRpcGxpZXI7CisgICAgICAgICAgICBpZiAocmVtYWluZGVyICE9IDApIHJldHVybiAtMTsKKyAgICAgICAgICAgIGIwIC09IG1pbjNQcmltYXJ5OworICAgICAgICAgICAgYjIgLz0gZmluYWwzTXVsdGlwbGllcjsKKyAgICAgICAgICAgIHJlc3VsdCA9ICgoYjAgKiBtZWRpYWxDb3VudCkgKyBiMSkgKiBmaW5hbDNDb3VudCArIGIyOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGIyIDwgbWluVHJhaWwgfHwgYjIgPiBtYXhUcmFpbAorICAgICAgICAgICAgICAgIHx8IGIzIDwgbWluVHJhaWwgfHwgYjMgPiBtYXg0VHJhaWwpIHJldHVybiAtMTsKKyAgICAgICAgICAgIGIyIC09IG1pblRyYWlsOworICAgICAgICAgICAgYjMgLT0gbWluVHJhaWw7CisgICAgICAgICAgICBpbnQgcmVtYWluZGVyID0gYjMgJSBmaW5hbDRNdWx0aXBsaWVyOworICAgICAgICAgICAgaWYgKHJlbWFpbmRlciAhPSAwKSByZXR1cm4gLTE7CisgICAgICAgICAgICBiMyAvPSBmaW5hbDRNdWx0aXBsaWVyOworICAgICAgICAgICAgYjAgLT0gbWluNFByaW1hcnk7CisgICAgICAgICAgICByZXN1bHQgPSAoKChiMCAqIG1lZGlhbENvdW50KSArIGIxKSAqIG1lZGlhbENvdW50ICsgYjIpICogZmluYWw0Q291bnQgKyBiMyArIG1pbjRCb3VuZGFyeTsKKyAgICAgICAgfQorICAgICAgICAvLyBmaW5hbCBjaGVjaworICAgICAgICBpZiAocmVzdWx0IDwgMCB8fCByZXN1bHQgPiBNQVhfSU5QVVQpIHJldHVybiAtMTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgdGhlIGltcGxpY2l0IENFLCBmcm9tIHJhdyBpbnRlZ2VyLgorICAgICAqIExlZnQgc2hpZnRlZCB0byBwdXQgdGhlIGZpcnN0IGJ5dGUgYXQgdGhlIHRvcCBvZiBhbiBpbnQuCisgICAgICogQHBhcmFtIGNwIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIFByaW1hcnkgaW1wbGljaXQgd2VpZ2h0CisgICAgICovCisgICAgcHVibGljIGludCBnZXRJbXBsaWNpdEZyb21SYXcoaW50IGNwKSB7CisgICAgICAgIGlmIChjcCA8IDAgfHwgY3AgPiBNQVhfSU5QVVQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvZGUgcG9pbnQgb3V0IG9mIHJhbmdlICIgKyBVdGlsaXR5LmhleChjcCkpOworICAgICAgICB9CisgICAgICAgIGludCBsYXN0MCA9IGNwIC0gbWluNEJvdW5kYXJ5OworICAgICAgICBpZiAobGFzdDAgPCAwKSB7CisgICAgICAgICAgICBpbnQgbGFzdDEgPSBjcCAvIGZpbmFsM0NvdW50OworICAgICAgICAgICAgbGFzdDAgPSBjcCAlIGZpbmFsM0NvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGFzdDIgPSBsYXN0MSAvIG1lZGlhbENvdW50OworICAgICAgICAgICAgbGFzdDEgJT0gbWVkaWFsQ291bnQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxhc3QwID0gbWluVHJhaWwgKyBsYXN0MCpmaW5hbDNNdWx0aXBsaWVyOyAvLyBzcHJlYWQgb3V0LCBsZWF2aW5nIGdhcCBhdCBzdGFydAorICAgICAgICAgICAgbGFzdDEgPSBtaW5UcmFpbCArIGxhc3QxOyAvLyBvZmZzZXQKKyAgICAgICAgICAgIGxhc3QyID0gbWluM1ByaW1hcnkgKyBsYXN0MjsgLy8gb2Zmc2V0CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsYXN0MiA+PSBtaW40UHJpbWFyeSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIjQtYnl0ZSBvdXQgb2YgcmFuZ2U6ICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuaGV4KGNwKSArICIsICIgKyBVdGlsaXR5LmhleChsYXN0MikpOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIChsYXN0MiA8PCAyNCkgKyAobGFzdDEgPDwgMTYpICsgKGxhc3QwIDw8IDgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGxhc3QxID0gbGFzdDAgLyBmaW5hbDRDb3VudDsKKyAgICAgICAgICAgIGxhc3QwICU9IGZpbmFsNENvdW50OworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGFzdDIgPSBsYXN0MSAvIG1lZGlhbENvdW50OworICAgICAgICAgICAgbGFzdDEgJT0gbWVkaWFsQ291bnQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBsYXN0MyA9IGxhc3QyIC8gbWVkaWFsQ291bnQ7CisgICAgICAgICAgICBsYXN0MiAlPSBtZWRpYWxDb3VudDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGFzdDAgPSBtaW5UcmFpbCArIGxhc3QwKmZpbmFsNE11bHRpcGxpZXI7IC8vIHNwcmVhZCBvdXQsIGxlYXZpbmcgZ2FwIGF0IHN0YXJ0ICAgICAgICAgICAKKyAgICAgICAgICAgIGxhc3QxID0gbWluVHJhaWwgKyBsYXN0MTsgLy8gb2Zmc2V0CisgICAgICAgICAgICBsYXN0MiA9IG1pblRyYWlsICsgbGFzdDI7IC8vIG9mZnNldAorICAgICAgICAgICAgbGFzdDMgPSBtaW40UHJpbWFyeSArIGxhc3QzOyAvLyBvZmZzZXQKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGxhc3QzID4gbWF4NFByaW1hcnkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCI0LWJ5dGUgb3V0IG9mIHJhbmdlOiAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmhleChjcCkgKyAiLCAiICsgVXRpbGl0eS5oZXgobGFzdDMpKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiAobGFzdDMgPDwgMjQpICsgKGxhc3QyIDw8IDE2KSArIChsYXN0MSA8PCA4KSArIGxhc3QwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhbiBJbXBsaWNpdCBmcm9tIGEgY29kZSBwb2ludC4gSW50ZXJuYWxseSwgCisgICAgICogc3dhcHMgKHdoaWNoIHByb2R1Y2VzIGEgcmF3IHZhbHVlIDAuLjIyMDAwMCwgCisgICAgICogdGhlbiBjb252ZXJ0cyByYXcgdG8gaW1wbGljaXQuCisgICAgICogQHBhcmFtIGNwCisgICAgICogQHJldHVybiBQcmltYXJ5IGltcGxpY2l0IHdlaWdodAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW1wbGljaXRGcm9tQ29kZVBvaW50KGludCBjcCkgeworICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiSW5jb21pbmc6ICIgKyBVdGlsaXR5LmhleChjcCkpOworICAgICAgICAKKyAgICAgICAgLy8gUHJvZHVjZSBSYXcgdmFsdWUKKyAgICAgICAgLy8gbm90ZSwgd2UgYWRkIDEgc28gdGhhdCB0aGUgZmlyc3QgdmFsdWUgaXMgYWx3YXlzIGVtcHR5ISEKKyAgICAgICAgY3AgPSBJbXBsaWNpdENFR2VuZXJhdG9yLnN3YXBDSksoY3ApICsgMTsKKyAgICAgICAgLy8gd2Ugbm93IGhhdmUgYSByYW5nZSBvZiBudW1iZXJzIGZyb20gMCB0byAyMjAwMDAuCisgICAgICAgICAgICAKKyAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIkNKSyBzd2FwcGVkOiAiICsgVXRpbGl0eS5oZXgoY3ApKTsKKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gZ2V0SW1wbGljaXRGcm9tUmF3KGNwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGdW5jdGlvbiB1c2VkIHRvOiAKKyAgICAgKiBhKSBjb2xsYXBzZSB0aGUgMiBkaWZmZXJlbnQgSGFuIHJhbmdlcyBmcm9tIFVDQSBpbnRvIG9uZSAoaW4gdGhlIHJpZ2h0IG9yZGVyKSwgYW5kCisgICAgICogYikgYnVtcCBhbnkgbm9uLUNKSyBjaGFyYWN0ZXJzIGJ5IDEwRkZGRi4KKyAgICAgKiBUaGUgcmVsZXZhbnQgYmxvY2tzIGFyZToKKyAgICAgKiBBOiAgICA0RTAwLi45RkZGOyBDSksgVW5pZmllZCBJZGVvZ3JhcGhzCisgICAgICogICAgICAgRjkwMC4uRkFGRjsgQ0pLIENvbXBhdGliaWxpdHkgSWRlb2dyYXBocworICAgICAqIEI6ICAgIDM0MDAuLjREQkY7IENKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEEKKyAgICAgKiAgICAgICAyMDAwMC4uWFg7ICBDSksgVW5pZmllZCBJZGVvZ3JhcGhzIEV4dGVuc2lvbiBCIChhbmQgb3RoZXJzIGxhdGVyIG9uKQorICAgICAqIEFzIGxvbmcgYXMKKyAgICAgKiAgIG5vIG5ldyBCIGNoYXJhY3RlcnMgYXJlIGFsbG9jYXRlZCBiZXR3ZWVuIDRFMDAgYW5kIEZBRkYsIGFuZAorICAgICAqICAgbm8gbmV3IEEgY2hhcmFjdGVycyBhcmUgb3V0c2lkZSBvZiB0aGlzIHJhbmdlLAorICAgICAqICh2ZXJ5IGhpZ2ggcHJvYmFiaWxpdHkpIHRoaXMgc2ltcGxlIGNvZGUgd2lsbCB3b3JrLgorICAgICAqIFRoZSByZW9yZGVyZWQgYmxvY2tzIGFyZToKKyAgICAgKiBCbG9jazEgaXMgQ0pLCisgICAgICogQmxvY2syIGlzIENKS19DT01QQVRfVVNFRAorICAgICAqIEJsb2NrMyBpcyBDSktfQQorICAgICAqIChhbGwgY29udGlndW91cykKKyAgICAgKiBBbnkgb3RoZXIgQ0pLIGdldHMgaXRzIG5vcm1hbCBjb2RlIHBvaW50CisgICAgICogQW55IG5vbi1DSksgZ2V0cyArMTBGRkZGCisgICAgICogV2hlbiB3ZSByZW9yZGVyIEJsb2NrMSwgd2UgbWFrZSBzdXJlIHRoYXQgaXQgaXMgYXQgdGhlIHZlcnkgc3RhcnQsCisgICAgICogc28gdGhhdCBpdCB3aWxsIHVzZSBhIDMtYnl0ZSBmb3JtLgorICAgICAqIFdhcm5pbmc6IHRoZSB3ZSBvbmx5IHBpY2sgdXAgdGhlIGNvbXBhdGliaWxpdHkgY2hhcmFjdGVycyB0aGF0IGFyZQorICAgICAqIE5PVCBkZWNvbXBvc2VkLCBzbyB0aGF0IGJsb2NrIGlzIHNtYWxsZXIhCisgICAgICovCisgICAgCisgICAgc3RhdGljIGludCBOT05fQ0pLX09GRlNFVCA9IDB4MTEwMDAwOworICAgICAgICAKKyAgICBzdGF0aWMgaW50IHN3YXBDSksoaW50IGkpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChpID49IENKS19CQVNFKSB7CisgICAgICAgICAgICBpZiAoaSA8IENKS19MSU1JVCkgICAgICAgICAgICAgIHJldHVybiBpIC0gQ0pLX0JBU0U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpIDwgQ0pLX0NPTVBBVF9VU0VEX0JBU0UpICAgcmV0dXJuIGkgKyBOT05fQ0pLX09GRlNFVDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGkgPCBDSktfQ09NUEFUX1VTRURfTElNSVQpICByZXR1cm4gaSAtIENKS19DT01QQVRfVVNFRF9CQVNFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChDSktfTElNSVQgLSBDSktfQkFTRSk7CisgICAgICAgICAgICBpZiAoaSA8IENKS19CX0JBU0UpICAgICAgICAgICAgIHJldHVybiBpICsgTk9OX0NKS19PRkZTRVQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpIDwgQ0pLX0JfTElNSVQpICAgICAgICAgICAgcmV0dXJuIGk7IC8vIG5vbi1CTVAtQ0pLCisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBpICsgTk9OX0NKS19PRkZTRVQ7ICAvLyBub24tQ0pLCisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPCBDSktfQV9CQVNFKSAgICAgICAgICAgICAgICAgcmV0dXJuIGkgKyBOT05fQ0pLX09GRlNFVDsKKyAgICAgICAgCisgICAgICAgIGlmIChpIDwgQ0pLX0FfTElNSVQpICAgICAgICAgICAgICAgIHJldHVybiBpIC0gQ0pLX0FfQkFTRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoQ0pLX0xJTUlUIC0gQ0pLX0JBU0UpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoQ0pLX0NPTVBBVF9VU0VEX0xJTUlUIC0gQ0pLX0NPTVBBVF9VU0VEX0JBU0UpOworICAgICAgICByZXR1cm4gaSArIE5PTl9DSktfT0ZGU0VUOyAvLyBub24tQ0pLCisgICAgfQorICAgIAorCisgICAgLyoqCisgICAgICogQHJldHVybiBNaW5pbWFsIHRyYWlsIHZhbHVlCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5UcmFpbCgpIHsKKyAgICAgICAgcmV0dXJuIG1pblRyYWlsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gTWF4aW1hbCB0cmFpbCB2YWx1ZQorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF4VHJhaWwoKSB7CisgICAgICAgIHJldHVybiBtYXhUcmFpbDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRDb2RlUG9pbnRGcm9tUmF3KGludCBpKSB7CisgICAgICAgIGktLTsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGlmKGkgPj0gTk9OX0NKS19PRkZTRVQpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGkgLSBOT05fQ0pLX09GRlNFVDsKKyAgICAgICAgfSBlbHNlIGlmKGkgPj0gQ0pLX0JfQkFTRSkgeworICAgICAgICAgICAgcmVzdWx0ID0gaTsKKyAgICAgICAgfSBlbHNlIGlmKGkgPCBDSktfQV9MSU1JVCArIChDSktfTElNSVQgLSBDSktfQkFTRSkgKyAoQ0pLX0NPTVBBVF9VU0VEX0xJTUlUIC0gQ0pLX0NPTVBBVF9VU0VEX0JBU0UpKSB7IAorICAgICAgICAgICAgLy8gcmVzdCBvZiBDSktzLCBjb21wYWN0ZWQKKyAgICAgICAgICAgIGlmKGkgPCBDSktfTElNSVQgLSBDSktfQkFTRSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGkgKyBDSktfQkFTRTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihpIDwgKENKS19MSU1JVCAtIENKS19CQVNFKSArIChDSktfQ09NUEFUX1VTRURfTElNSVQgLSBDSktfQ09NUEFUX1VTRURfQkFTRSkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBpICsgQ0pLX0NPTVBBVF9VU0VEX0JBU0UgLSAoQ0pLX0xJTUlUIC0gQ0pLX0JBU0UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBpICsgQ0pLX0FfQkFTRSAtIChDSktfTElNSVQgLSBDSktfQkFTRSkgLSAoQ0pLX0NPTVBBVF9VU0VEX0xJTUlUIC0gQ0pLX0NPTVBBVF9VU0VEX0JBU0UpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gLTE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldFJhd0Zyb21Db2RlUG9pbnQoaW50IGkpIHsKKyAgICAgICAgcmV0dXJuIHN3YXBDSksoaSkrMTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JbnRUcmllLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9JbnRUcmllLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDExNDBkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0ludFRyaWUuamF2YQpAQCAtMCwwICsxLDM0MCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBUcmllIGltcGxlbWVudGF0aW9uIHdoaWNoIHN0b3JlcyBkYXRhIGluIGludCwgMzIgYml0cy4KKyAqIEBhdXRob3Igc3lud2VlCisgKiBAc2VlIGNvbS5pYm0uaWN1LmltcGwuVHJpZQorICogQHNpbmNlIHJlbGVhc2UgMi4xLCBKYW4gMDEgMjAwMgorICovCitwdWJsaWMgY2xhc3MgSW50VHJpZSBleHRlbmRzIFRyaWUKK3sKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiA8cD5DcmVhdGVzIGEgbmV3IFRyaWUgd2l0aCB0aGUgc2V0dGluZ3MgZm9yIHRoZSB0cmllIGRhdGEuPC9wPgorICAgICogPHA+VW5zZXJpYWxpemUgdGhlIDMyLWJpdC1hbGlnbmVkIGlucHV0IHN0cmVhbSBhbmQgdXNlIHRoZSBkYXRhIGZvciB0aGUgCisgICAgKiB0cmllLjwvcD4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBmaWxlIGlucHV0IHN0cmVhbSB0byBhIElDVSBkYXRhIGZpbGUsIGNvbnRhaW5pbmcgCisgICAgKiAgICAgICAgICAgICAgICAgICAgdGhlIHRyaWUKKyAgICAqIEBwYXJhbSBkYXRhTWFuaXB1bGF0ZSBvYmplY3Qgd2hpY2ggcHJvdmlkZXMgbWV0aG9kcyB0byBwYXJzZSB0aGUgY2hhciAKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgZGF0YQorICAgICogQHRocm93cyBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBkYXRhIHJlYWRpbmcgZmFpbHMKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBJbnRUcmllKElucHV0U3RyZWFtIGlucHV0U3RyZWFtLCBEYXRhTWFuaXB1bGF0ZSBkYXRhbWFuaXB1bGF0ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIHN1cGVyKGlucHV0U3RyZWFtLCBkYXRhbWFuaXB1bGF0ZSk7CisgICAgICAgIGlmICghaXNJbnRUcmllKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRhdGEgZ2l2ZW4gZG9lcyBub3QgYmVsb25nIHRvIGEgaW50IHRyaWUuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIGEgZHVtbXkgSW50VHJpZS4KKyAgICAgKiBBIGR1bW15IHRyaWUgaXMgYW4gZW1wdHkgcnVudGltZSB0cmllLCB1c2VkIHdoZW4gYSByZWFsIGRhdGEgdHJpZSBjYW5ub3QKKyAgICAgKiBiZSBsb2FkZWQuCisgICAgICoKKyAgICAgKiBUaGUgdHJpZSBhbHdheXMgcmV0dXJucyB0aGUgaW5pdGlhbFZhbHVlLAorICAgICAqIG9yIHRoZSBsZWFkVW5pdFZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cy4KKyAgICAgKiBUaGUgTGF0aW4tMSBwYXJ0IGlzIGFsd2F5cyBzZXQgdXAgdG8gYmUgbGluZWFyLgorICAgICAqCisgICAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSB0aGUgaW5pdGlhbCB2YWx1ZSB0aGF0IGlzIHNldCBmb3IgYWxsIGNvZGUgcG9pbnRzCisgICAgICogQHBhcmFtIGxlYWRVbml0VmFsdWUgdGhlIHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gdGhhdCBkbyBub3QKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBoYXZlIGFzc29jaWF0ZWQgc3VwcGxlbWVudGFyeSBkYXRhCisgICAgICogQHBhcmFtIGRhdGFNYW5pcHVsYXRlIG9iamVjdCB3aGljaCBwcm92aWRlcyBtZXRob2RzIHRvIHBhcnNlIHRoZSBjaGFyIGRhdGEKKyAgICAgKi8KKyAgICBwdWJsaWMgSW50VHJpZShpbnQgaW5pdGlhbFZhbHVlLCBpbnQgbGVhZFVuaXRWYWx1ZSwgRGF0YU1hbmlwdWxhdGUgZGF0YU1hbmlwdWxhdGUpIHsKKyAgICAgICAgc3VwZXIobmV3IGNoYXJbQk1QX0lOREVYX0xFTkdUSCtTVVJST0dBVEVfQkxPQ0tfQ09VTlRdLCBIRUFERVJfT1BUSU9OU19MQVRJTjFfSVNfTElORUFSX01BU0tfLCBkYXRhTWFuaXB1bGF0ZSk7CisKKyAgICAgICAgaW50IGRhdGFMZW5ndGgsIGxhdGluMUxlbmd0aCwgaSwgbGltaXQ7CisgICAgICAgIGNoYXIgYmxvY2s7CisKKyAgICAgICAgLyogY2FsY3VsYXRlIHRoZSBhY3R1YWwgc2l6ZSBvZiB0aGUgZHVtbXkgdHJpZSBkYXRhICovCisKKyAgICAgICAgLyogbWF4KExhdGluLTEsIGJsb2NrIDApICovCisgICAgICAgIGRhdGFMZW5ndGg9bGF0aW4xTGVuZ3RoPSBJTkRFWF9TVEFHRV8xX1NISUZUXzw9OCA/IDI1NiA6IERBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICBpZihsZWFkVW5pdFZhbHVlIT1pbml0aWFsVmFsdWUpIHsKKyAgICAgICAgICAgIGRhdGFMZW5ndGgrPURBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICB9CisgICAgICAgIG1fZGF0YV89bmV3IGludFtkYXRhTGVuZ3RoXTsKKyAgICAgICAgbV9kYXRhTGVuZ3RoXz1kYXRhTGVuZ3RoOworCisgICAgICAgIG1faW5pdGlhbFZhbHVlXz1pbml0aWFsVmFsdWU7CisKKyAgICAgICAgLyogZmlsbCB0aGUgaW5kZXggYW5kIGRhdGEgYXJyYXlzICovCisKKyAgICAgICAgLyogaW5kZXhlcyBhcmUgcHJlc2V0IHRvIDAgKGJsb2NrIDApICovCisKKyAgICAgICAgLyogTGF0aW4tMSBkYXRhICovCisgICAgICAgIGZvcihpPTA7IGk8bGF0aW4xTGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIG1fZGF0YV9baV09aW5pdGlhbFZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgaWYobGVhZFVuaXRWYWx1ZSE9aW5pdGlhbFZhbHVlKSB7CisgICAgICAgICAgICAvKiBpbmRleGVzIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHVuaXRzIHRvIHRoZSBibG9jayBhZnRlciBMYXRpbi0xICovCisgICAgICAgICAgICBibG9jaz0oY2hhcikobGF0aW4xTGVuZ3RoPj5JTkRFWF9TVEFHRV8yX1NISUZUXyk7CisgICAgICAgICAgICBpPTB4ZDgwMD4+SU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgICAgICAgICBsaW1pdD0weGRjMDA+PklOREVYX1NUQUdFXzFfU0hJRlRfOworICAgICAgICAgICAgZm9yKDsgaTxsaW1pdDsgKytpKSB7CisgICAgICAgICAgICAgICAgbV9pbmRleF9baV09YmxvY2s7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIGRhdGEgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgdW5pdHMgKi8KKyAgICAgICAgICAgIGxpbWl0PWxhdGluMUxlbmd0aCtEQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgICAgIGZvcihpPWxhdGluMUxlbmd0aDsgaTxsaW1pdDsgKytpKSB7CisgICAgICAgICAgICAgICAgbV9kYXRhX1tpXT1sZWFkVW5pdFZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb2RlcG9pbnQuCisgICAgKiBJZiBubyB2YWx1ZSBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGNvZGVwb2ludCwgYSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUKKyAgICAqIHJldHVybmVkLgorICAgICogQHBhcmFtIGNoIGNvZGVwb2ludAorICAgICogQHJldHVybiBvZmZzZXQgdG8gZGF0YQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRDb2RlUG9pbnRWYWx1ZShpbnQgY2gpCisgICAgeworICAgICAgICBpbnQgb2Zmc2V0OworCisgICAgICAgIC8vIGZhc3RwYXRoIGZvciBVKzAwMDAuLlUrRDdGRgorICAgICAgICBpZigwIDw9IGNoICYmIGNoIDwgVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICAvLyBjb3B5IG9mIGdldFJhd09mZnNldCgpCisgICAgICAgICAgICBvZmZzZXQgPSAobV9pbmRleF9bY2ggPj4gSU5ERVhfU1RBR0VfMV9TSElGVF9dIDw8IElOREVYX1NUQUdFXzJfU0hJRlRfKSAKKyAgICAgICAgICAgICAgICAgICAgKyAoY2ggJiBJTkRFWF9TVEFHRV8zX01BU0tfKTsKKyAgICAgICAgICAgIHJldHVybiBtX2RhdGFfW29mZnNldF07CisgICAgICAgIH0KKworICAgICAgICAvLyBoYW5kbGUgVStEODAwLi5VKzEwRkZGRgorICAgICAgICBvZmZzZXQgPSBnZXRDb2RlUG9pbnRPZmZzZXQoY2gpOworICAgICAgICByZXR1cm4gKG9mZnNldCA+PSAwKSA/IG1fZGF0YV9bb2Zmc2V0XSA6IG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIHZhbHVlIHRvIHRoZSBkYXRhIHdoaWNoIHRoaXMgbGVhZCBzdXJyb2dhdGUgY2hhcmFjdGVyIHBvaW50cworICAgICogdG8uCisgICAgKiBSZXR1cm5lZCBkYXRhIG1heSBjb250YWluIGZvbGRpbmcgb2Zmc2V0IGluZm9ybWF0aW9uIGZvciB0aGUgbmV4dAorICAgICogdHJhaWxpbmcgc3Vycm9nYXRlIGNoYXJhY3Rlci4KKyAgICAqIFRoaXMgbWV0aG9kIGRvZXMgbm90IGd1YXJhbnRlZSBjb3JyZWN0IHJlc3VsdHMgZm9yIHRyYWlsIHN1cnJvZ2F0ZXMuCisgICAgKiBAcGFyYW0gY2ggbGVhZCBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgKiBAcmV0dXJuIGRhdGEgdmFsdWUKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0TGVhZFZhbHVlKGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4gbV9kYXRhX1tnZXRMZWFkT2Zmc2V0KGNoKV07CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXQgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgQk1QIGNvZGUgcG9pbnQuCisgICAgKiBMZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cyBhcmUgdHJlYXRlZCBhcyBub3JtYWwgY29kZSBwb2ludHMsIHdpdGgKKyAgICAqIHVuZm9sZGVkIHZhbHVlcyB0aGF0IG1heSBkaWZmZXIgZnJvbSBnZXRMZWFkVmFsdWUoKSByZXN1bHRzLgorICAgICogQHBhcmFtIGNoIHRoZSBpbnB1dCBCTVAgY29kZSBwb2ludAorICAgICogQHJldHVybiB0cmllIGRhdGEgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBCTVAgY29kZXBvaW50CisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldEJNUFZhbHVlKGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4gbV9kYXRhX1tnZXRCTVBPZmZzZXQoY2gpXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldCB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGEgcGFpciBvZiBzdXJyb2dhdGVzLgorICAgICogQHBhcmFtIGxlYWQgYSBsZWFkIHN1cnJvZ2F0ZQorICAgICogQHBhcmFtIHRyYWlsIGEgdHJhaWwgc3Vycm9nYXRlCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFN1cnJvZ2F0ZVZhbHVlKGNoYXIgbGVhZCwgY2hhciB0cmFpbCkKKyAgICB7CisgICAgICAgIGlmICghVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGxlYWQpIHx8ICFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiQXJndW1lbnQgY2hhcmFjdGVycyBkbyBub3QgZm9ybSBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gZ2V0IGZvbGQgcG9zaXRpb24gZm9yIHRoZSBuZXh0IHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICBpbnQgb2Zmc2V0ID0gZ2V0U3Vycm9nYXRlT2Zmc2V0KGxlYWQsIHRyYWlsKTsKKworICAgICAgICAvLyBnZXQgdGhlIHJlYWwgZGF0YSBmcm9tIHRoZSBmb2xkZWQgbGVhZC90cmFpbCB1bml0cworICAgICAgICBpZiAob2Zmc2V0ID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIG1fZGF0YV9bb2Zmc2V0XTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHJldHVybiBtX2luaXRpYWxWYWx1ZV8gaWYgdGhlcmUgaXMgYW4gZXJyb3IKKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldCBhIHZhbHVlIGZyb20gYSBmb2xkaW5nIG9mZnNldCAoZnJvbSB0aGUgdmFsdWUgb2YgYSBsZWFkIHN1cnJvZ2F0ZSkKKyAgICAqIGFuZCBhIHRyYWlsIHN1cnJvZ2F0ZS4KKyAgICAqIEBwYXJhbSBsZWFkdmFsdWUgdGhlIHZhbHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUgdGhhdCBjb250YWlucyB0aGUKKyAgICAqICAgICAgICBmb2xkaW5nIG9mZnNldAorICAgICogQHBhcmFtIHRyYWlsIHN1cnJvZ2F0ZQorICAgICogQHJldHVybiB0cmllIGRhdGEgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSB0cmFpbCBjaGFyYWN0ZXIKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0VHJhaWxWYWx1ZShpbnQgbGVhZHZhbHVlLCBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAgICAgaWYgKG1fZGF0YU1hbmlwdWxhdGVfID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWVsZCBEYXRhTWFuaXB1bGF0ZSBpbiB0aGlzIFRyaWUgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIGludCBvZmZzZXQgPSBtX2RhdGFNYW5pcHVsYXRlXy5nZXRGb2xkaW5nT2Zmc2V0KGxlYWR2YWx1ZSk7CisgICAgICAgIGlmIChvZmZzZXQgPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gbV9kYXRhX1tnZXRSYXdPZmZzZXQob2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikodHJhaWwgJiBTVVJST0dBVEVfTUFTS18pKV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+R2V0cyB0aGUgbGF0aW4gMSBmYXN0IHBhdGggdmFsdWUuPC9wPgorICAgICAqIDxwPk5vdGUgdGhpcyBvbmx5IHdvcmtzIGlmIGxhdGluIDEgY2hhcmFjdGVycyBoYXZlIHRoZWlyIG93biBsaW5lYXIgCisgICAgICogYXJyYXkuPC9wPgorICAgICAqIEBwYXJhbSBjaCBsYXRpbiAxIGNoYXJhY3RlcnMKKyAgICAgKiBAcmV0dXJuIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBsYXRpbiBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldExhdGluMUxpbmVhclZhbHVlKGNoYXIgY2gpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZGF0YV9bSU5ERVhfU1RBR0VfM19NQVNLXyArIDEgKyBjaF07CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHRoZSBhcmd1bWVudCBUcmllIGhhcyB0aGUgc2FtZSBkYXRhIGFzIHRoaXMgVHJpZQorICAgICAqIEBwYXJhbSBvdGhlciBUcmllIHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBhcmd1bWVudCBUcmllIGhhcyB0aGUgc2FtZSBkYXRhIGFzIHRoaXMgVHJpZSwgZmFsc2UKKyAgICAgKiAgICAgICAgIG90aGVyd2lzZQorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSAKKyAgICB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gc3VwZXIuZXF1YWxzKG90aGVyKTsKKyAgICAgICAgaWYgKHJlc3VsdCAmJiBvdGhlciBpbnN0YW5jZW9mIEludFRyaWUpIHsKKyAgICAgICAgICAgIEludFRyaWUgb3RoZXJ0cmllID0gKEludFRyaWUpb3RoZXI7CisgICAgICAgICAgICBpZiAobV9pbml0aWFsVmFsdWVfICE9IG90aGVydHJpZS5tX2luaXRpYWxWYWx1ZV8KKyAgICAgICAgICAgICAgICB8fCAhQXJyYXlzLmVxdWFscyhtX2RhdGFfLCBvdGhlcnRyaWUubV9kYXRhXykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorICAgIAorICAgIC8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIDxwPlBhcnNlcyB0aGUgaW5wdXQgc3RyZWFtIGFuZCBzdG9yZXMgaXRzIHRyaWUgY29udGVudCBpbnRvIGEgaW5kZXggYW5kCisgICAgKiBkYXRhIGFycmF5PC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIGRhdGEgaW5wdXQgc3RyZWFtIGNvbnRhaW5pbmcgdHJpZSBkYXRhCisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscworICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgdW5zZXJpYWxpemUoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0pIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgc3VwZXIudW5zZXJpYWxpemUoaW5wdXRTdHJlYW0pOworICAgICAgICAvLyBvbmUgdXNlZCBmb3IgaW5pdGlhbCB2YWx1ZQorICAgICAgICBtX2RhdGFfICAgICAgICAgICAgICAgPSBuZXcgaW50W21fZGF0YUxlbmd0aF9dOworICAgICAgICBEYXRhSW5wdXRTdHJlYW0gaW5wdXQgPSBuZXcgRGF0YUlucHV0U3RyZWFtKGlucHV0U3RyZWFtKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2RhdGFMZW5ndGhfOyBpICsrKSB7CisgICAgICAgICAgICBtX2RhdGFfW2ldID0gaW5wdXQucmVhZEludCgpOworICAgICAgICB9CisgICAgICAgIG1faW5pdGlhbFZhbHVlXyA9IG1fZGF0YV9bMF07CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIHRoZSBkYXRhIHdoaWNoIHRoZSBzdXJyb2dhdGUgcGFpciBwb2ludHMgdG8uCisgICAgKiBAcGFyYW0gbGVhZCBsZWFkIHN1cnJvZ2F0ZQorICAgICogQHBhcmFtIHRyYWlsIHRyYWlsaW5nIHN1cnJvZ2F0ZQorICAgICogQHJldHVybiBvZmZzZXQgdG8gZGF0YQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRTdXJyb2dhdGVPZmZzZXQoY2hhciBsZWFkLCBjaGFyIHRyYWlsKQorICAgIHsKKyAgICAgICAgaWYgKG1fZGF0YU1hbmlwdWxhdGVfID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWVsZCBEYXRhTWFuaXB1bGF0ZSBpbiB0aGlzIFRyaWUgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIC8vIGdldCBmb2xkIHBvc2l0aW9uIGZvciB0aGUgbmV4dCB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgaW50IG9mZnNldCA9IG1fZGF0YU1hbmlwdWxhdGVfLmdldEZvbGRpbmdPZmZzZXQoZ2V0TGVhZFZhbHVlKGxlYWQpKTsKKworICAgICAgICAvLyBnZXQgdGhlIHJlYWwgZGF0YSBmcm9tIHRoZSBmb2xkZWQgbGVhZC90cmFpbCB1bml0cworICAgICAgICBpZiAob2Zmc2V0ID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIGdldFJhd09mZnNldChvZmZzZXQsIChjaGFyKSh0cmFpbCAmIFNVUlJPR0FURV9NQVNLXykpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIC0xIGlmIHRoZXJlIGlzIGFuIGVycm9yLCBpbiB0aGlzIGNhc2Ugd2UgcmV0dXJuIHRoZSBkZWZhdWx0CisgICAgICAgIC8vIHZhbHVlOiBtX2luaXRpYWxWYWx1ZV8KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIHZhbHVlIGF0IHRoZSBhcmd1bWVudCBpbmRleC4KKyAgICAqIEZvciB1c2UgaW50ZXJuYWxseSBpbiBUcmllSXRlcmF0b3IKKyAgICAqIEBwYXJhbSBpbmRleCB2YWx1ZSBhdCBpbmRleCB3aWxsIGJlIHJldHJpZXZlZAorICAgICogQHJldHVybiAzMiBiaXQgdmFsdWUKKyAgICAqIEBzZWUgY29tLmlibS5pY3UuaW1wbC5UcmllSXRlcmF0b3IKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0VmFsdWUoaW50IGluZGV4KQorICAgIHsKKyAgICAgIHJldHVybiBtX2RhdGFfW2luZGV4XTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBkZWZhdWx0IGluaXRpYWwgdmFsdWUKKyAgICAqIEByZXR1cm4gMzIgYml0IHZhbHVlIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRJbml0aWFsVmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW5pdGlhbFZhbHVlXzsKKyAgICB9CisKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEludGVybmFsIGNvbnN0cnVjdG9yIGZvciBidWlsZGVyIHVzZQorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggYXJyYXkgdG8gYmUgc2xvdHRlZCBpbnRvIHRoaXMgdHJpZQorICAgICAqIEBwYXJhbSBkYXRhIHRoZSBkYXRhIGFycmF5IHRvIGJlIHNsb3R0ZWQgaW50byB0aGlzIHRyaWUKKyAgICAgKiBAcGFyYW0gaW5pdGlhbHZhbHVlIHRoZSBpbml0aWFsIHZhbHVlIGZvciB0aGlzIHRyaWUKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyB0cmllIG9wdGlvbnMgdG8gdXNlCisgICAgICogQHBhcmFtIGRhdGFtYW5pcHVsYXRlIGZvbGRpbmcgaW1wbGVtZW50YXRpb24KKyAgICAgKi8KKyAgICBJbnRUcmllKGNoYXIgaW5kZXhbXSwgaW50IGRhdGFbXSwgaW50IGluaXRpYWx2YWx1ZSwgaW50IG9wdGlvbnMsCisgICAgICAgICAgICBEYXRhTWFuaXB1bGF0ZSBkYXRhbWFuaXB1bGF0ZSkKKyAgICB7CisgICAgICAgIHN1cGVyKGluZGV4LCBvcHRpb25zLCBkYXRhbWFuaXB1bGF0ZSk7CisgICAgICAgIG1fZGF0YV8gPSBkYXRhOworICAgICAgICBtX2RhdGFMZW5ndGhfID0gbV9kYXRhXy5sZW5ndGg7CisgICAgICAgIG1faW5pdGlhbFZhbHVlXyA9IGluaXRpYWx2YWx1ZTsKKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogRGVmYXVsdCB2YWx1ZQorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9pbml0aWFsVmFsdWVfOworICAgIC8qKgorICAgICogQXJyYXkgb2YgY2hhciBkYXRhCisgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2RhdGFfW107Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9JbnRUcmllQnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSW50VHJpZUJ1aWxkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGYyOTc4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSW50VHJpZUJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDY1MiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKKworLyoqCisgKiBCdWlsZGVyIGNsYXNzIHRvIG1hbmlwdWxhdGUgYW5kIGdlbmVyYXRlIGEgdHJpZS4KKyAqIFRoaXMgaXMgdXNlZnVsIGZvciBJQ1UgZGF0YSBpbiBwcmltaXRpdmUgdHlwZXMuCisgKiBQcm92aWRlcyBhIGNvbXBhY3Qgd2F5IHRvIHN0b3JlIGluZm9ybWF0aW9uIHRoYXQgaXMgaW5kZXhlZCBieSBVbmljb2RlIAorICogdmFsdWVzLCBzdWNoIGFzIGNoYXJhY3RlciBwcm9wZXJ0aWVzLCB0eXBlcywga2V5Ym9hcmQgdmFsdWVzLCBldGMuIFRoaXMgaXMgCisgKiB2ZXJ5IHVzZWZ1bCB3aGVuIHlvdSBoYXZlIGEgYmxvY2sgb2YgVW5pY29kZSBkYXRhIHRoYXQgY29udGFpbnMgc2lnbmlmaWNhbnQgCisgKiB2YWx1ZXMgd2hpbGUgdGhlIHJlc3Qgb2YgdGhlIFVuaWNvZGUgZGF0YSBpcyB1bnVzZWQgaW4gdGhlIGFwcGxpY2F0aW9uIG9yIAorICogd2hlbiB5b3UgaGF2ZSBhIGxvdCBvZiByZWR1bmRhbmNlLCBzdWNoIGFzIHdoZXJlIGFsbCAyMSwwMDAgSGFuIGlkZW9ncmFwaHMgCisgKiBoYXZlIHRoZSBzYW1lIHZhbHVlLiAgSG93ZXZlciwgbG9va3VwIGlzIG11Y2ggZmFzdGVyIHRoYW4gYSBoYXNoIHRhYmxlLgorICogQSB0cmllIG9mIGFueSBwcmltaXRpdmUgZGF0YSB0eXBlIHNlcnZlcyB0d28gcHVycG9zZXM6CisgKiA8VUwgdHlwZSA9IHJvdW5kPgorICogICAgIDxMST5GYXN0IGFjY2VzcyBvZiB0aGUgaW5kZXhlZCB2YWx1ZXMuCisgKiAgICAgPExJPlNtYWxsZXIgbWVtb3J5IGZvb3RwcmludC4KKyAqIDwvVUw+CisgKiBUaGlzIGlzIGEgZGlyZWN0IHBvcnQgZnJvbSB0aGUgSUNVNEMgdmVyc2lvbgorICogQGF1dGhvciAgICAgICAgICAgICBTeW4gV2VlIFF1ZWsKKyAqLworcHVibGljIGNsYXNzIEludFRyaWVCdWlsZGVyIGV4dGVuZHMgVHJpZUJ1aWxkZXIKK3sKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIENvcHkgY29uc3RydWN0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgSW50VHJpZUJ1aWxkZXIoSW50VHJpZUJ1aWxkZXIgdGFibGUpCisgICAgeworICAgICAgICBzdXBlcih0YWJsZSk7CisgICAgICAgIG1fZGF0YV8gPSBuZXcgaW50W21fZGF0YUNhcGFjaXR5X107CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGFibGUubV9kYXRhXywgMCwgbV9kYXRhXywgMCwgbV9kYXRhTGVuZ3RoXyk7CisgICAgICAgIG1faW5pdGlhbFZhbHVlXyA9IHRhYmxlLm1faW5pdGlhbFZhbHVlXzsKKyAgICAgICAgbV9sZWFkVW5pdFZhbHVlXyA9IHRhYmxlLm1fbGVhZFVuaXRWYWx1ZV87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBidWlsZCB0YWJsZQorICAgICAqIEBwYXJhbSBhbGlhc2RhdGEgZGF0YSB0byBiZSBmaWxsZWQgaW50byB0YWJsZQorICAgICAqIEBwYXJhbSBtYXhkYXRhbGVuZ3RoIG1heGltdW0gZGF0YSBsZW5ndGggYWxsb3dlZCBpbiB0YWJsZQorICAgICAqIEBwYXJhbSBpbml0aWFsdmFsdWUgaW5pdGFsIGRhdGEgdmFsdWUKKyAgICAgKiBAcGFyYW0gbGF0aW4xbGluZWFyIGlzIGxhdGluIDEgdG8gYmUgbGluZWFyCisgICAgICovCisgICAgcHVibGljIEludFRyaWVCdWlsZGVyKGludCBhbGlhc2RhdGFbXSwgaW50IG1heGRhdGFsZW5ndGgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5pdGlhbHZhbHVlLCBpbnQgbGVhZHVuaXR2YWx1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbGF0aW4xbGluZWFyKSAKKyAgICB7CisgICAgICAgIHN1cGVyKCk7CisgICAgICAgIGlmIChtYXhkYXRhbGVuZ3RoIDwgREFUQV9CTE9DS19MRU5HVEggfHwgKGxhdGluMWxpbmVhciAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgbWF4ZGF0YWxlbmd0aCA8IDEwMjQpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgbWF4ZGF0YWxlbmd0aCBpcyB0b28gc21hbGwiKTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGlmIChhbGlhc2RhdGEgIT0gbnVsbCkgeworICAgICAgICAgICAgbV9kYXRhXyA9IGFsaWFzZGF0YTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX2RhdGFfID0gbmV3IGludFttYXhkYXRhbGVuZ3RoXTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gcHJlYWxsb2NhdGUgYW5kIHJlc2V0IHRoZSBmaXJzdCBkYXRhIGJsb2NrIChibG9jayBpbmRleCAwKQorICAgICAgICBpbnQgaiA9IERBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICAKKyAgICAgICAgaWYgKGxhdGluMWxpbmVhcikgeworICAgICAgICAgICAgLy8gcHJlYWxsb2NhdGUgYW5kIHJlc2V0IHRoZSBmaXJzdCBibG9jayAobnVtYmVyIDApIGFuZCBMYXRpbi0xIAorICAgICAgICAgICAgLy8gKFUrMDAwMC4uVSswMGZmKSBhZnRlciB0aGF0IG1hZGUgc3VyZSBhYm92ZSB0aGF0IAorICAgICAgICAgICAgLy8gbWF4RGF0YUxlbmd0aCA+PSAxMDI0CisgICAgICAgICAgICAvLyBzZXQgaW5kZXhlcyB0byBwb2ludCB0byBjb25zZWN1dGl2ZSBkYXRhIGJsb2NrcworICAgICAgICAgICAgaW50IGkgPSAwOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIC8vIGRvIHRoaXMgYXQgbGVhc3QgZm9yIHRyaWUtPmluZGV4WzBdIGV2ZW4gaWYgdGhhdCBibG9jayBpcyAKKyAgICAgICAgICAgICAgICAvLyBvbmx5IHBhcnRseSB1c2VkIGZvciBMYXRpbi0xCisgICAgICAgICAgICAgICAgbV9pbmRleF9baSArK10gPSBqOworICAgICAgICAgICAgICAgIGogKz0gREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgICAgICB9IHdoaWxlIChpIDwgKDI1NiA+PiBTSElGVF8pKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbV9kYXRhTGVuZ3RoXyA9IGo7CisgICAgICAgIC8vIHJlc2V0IHRoZSBpbml0aWFsbHkgYWxsb2NhdGVkIGJsb2NrcyB0byB0aGUgaW5pdGlhbCB2YWx1ZQorICAgICAgICBBcnJheXMuZmlsbChtX2RhdGFfLCAwLCBtX2RhdGFMZW5ndGhfLCBpbml0aWFsdmFsdWUpOworICAgICAgICBtX2luaXRpYWxWYWx1ZV8gPSBpbml0aWFsdmFsdWU7CisgICAgICAgIG1fbGVhZFVuaXRWYWx1ZV8gPSBsZWFkdW5pdHZhbHVlOworICAgICAgICBtX2RhdGFDYXBhY2l0eV8gPSBtYXhkYXRhbGVuZ3RoOworICAgICAgICBtX2lzTGF0aW4xTGluZWFyXyA9IGxhdGluMWxpbmVhcjsKKyAgICAgICAgbV9pc0NvbXBhY3RlZF8gPSBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIAorICAgIC8qcHVibGljIGZpbmFsIHZvaWQgcHJpbnQoKQorICAgICAgeworICAgICAgaW50IGkgPSAwOworICAgICAgaW50IG9sZHZhbHVlID0gbV9pbmRleF9baV07CisgICAgICBpbnQgY291bnQgPSAwOworICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJpbmRleCBsZW5ndGggIiArIG1faW5kZXhMZW5ndGhfIAorICAgICAgKyAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7CisgICAgICB3aGlsZSAoaSA8IG1faW5kZXhMZW5ndGhfKSB7CisgICAgICBpZiAobV9pbmRleF9baV0gIT0gb2xkdmFsdWUpIHsKKyAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5kZXggaGFzICIgKyBjb3VudCArICIgY291bnRzIG9mICIgCisgICAgICArIEludGVnZXIudG9IZXhTdHJpbmcob2xkdmFsdWUpKTsKKyAgICAgIGNvdW50ID0gMDsKKyAgICAgIG9sZHZhbHVlID0gbV9pbmRleF9baV07CisgICAgICB9CisgICAgICBjb3VudCArKzsKKyAgICAgIGkgKys7CisgICAgICB9CisgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImluZGV4IGhhcyAiICsgY291bnQgKyAiIGNvdW50cyBvZiAiIAorICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9sZHZhbHVlKSk7CisgICAgICBpID0gMDsKKyAgICAgIG9sZHZhbHVlID0gbV9kYXRhX1tpXTsKKyAgICAgIGNvdW50ID0gMDsKKyAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGF0YSBsZW5ndGggIiArIG1fZGF0YUxlbmd0aF8gCisgICAgICArICIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKKyAgICAgIHdoaWxlIChpIDwgbV9kYXRhTGVuZ3RoXykgeworICAgICAgaWYgKG1fZGF0YV9baV0gIT0gb2xkdmFsdWUpIHsKKyAgICAgIGlmICgob2xkdmFsdWUgJiAweGYxMDAwMDAwKSA9PSAweGYxMDAwMDAwKSB7CisgICAgICBpbnQgdGVtcCA9IG9sZHZhbHVlICYgMHhmZmZmZmY7IAorICAgICAgdGVtcCArPSAweDMyMDsKKyAgICAgIG9sZHZhbHVlID0gMHhmMTAwMDAwMCB8IHRlbXA7CisgICAgICB9CisgICAgICBpZiAoKG9sZHZhbHVlICYgMHhmMjAwMDAwMCkgPT0gMHhmMjAwMDAwMCkgeworICAgICAgaW50IHRlbXAgPSBvbGR2YWx1ZSAmIDB4ZmZmZmZmOyAKKyAgICAgIHRlbXAgKz0gMHgxNGE7CisgICAgICBvbGR2YWx1ZSA9IDB4ZjIwMDAwMDAgfCB0ZW1wOworICAgICAgfQorICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkYXRhIGhhcyAiICsgY291bnQgKyAiIGNvdW50cyBvZiAiIAorICAgICAgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKG9sZHZhbHVlKSk7CisgICAgICBjb3VudCA9IDA7CisgICAgICBvbGR2YWx1ZSA9IG1fZGF0YV9baV07CisgICAgICB9CisgICAgICBjb3VudCArKzsKKyAgICAgIGkgKys7CisgICAgICB9CisgICAgICBpZiAoKG9sZHZhbHVlICYgMHhmMTAwMDAwMCkgPT0gMHhmMTAwMDAwMCkgeworICAgICAgaW50IHRlbXAgPSBvbGR2YWx1ZSAmIDB4ZmZmZmZmOyAKKyAgICAgIHRlbXAgKz0gMHgzMjA7CisgICAgICBvbGR2YWx1ZSA9IDB4ZjEwMDAwMDAgfCB0ZW1wOworICAgICAgfQorICAgICAgaWYgKChvbGR2YWx1ZSAmIDB4ZjIwMDAwMDApID09IDB4ZjIwMDAwMDApIHsKKyAgICAgIGludCB0ZW1wID0gb2xkdmFsdWUgJiAweGZmZmZmZjsgCisgICAgICB0ZW1wICs9IDB4MTRhOworICAgICAgb2xkdmFsdWUgPSAweGYyMDAwMDAwIHwgdGVtcDsKKyAgICAgIH0KKyAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZGF0YSBoYXMgIiArIGNvdW50ICsgIiBjb3VudHMgb2YgIiAKKyAgICAgICsgSW50ZWdlci50b0hleFN0cmluZyhvbGR2YWx1ZSkpOworICAgICAgfQorICAgICovICAgCisgICAgLyoqCisgICAgICogR2V0cyBhIDMyIGJpdCBkYXRhIGZyb20gdGhlIHRhYmxlIGRhdGEKKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHdoaWNoIGRhdGEgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgICogQHJldHVybiB0aGUgMzIgYml0IGRhdGEKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFZhbHVlKGludCBjaCkgCisgICAgeworICAgICAgICAvLyB2YWxpZCwgdW5jb21wYWN0ZWQgdHJpZSBhbmQgdmFsaWQgYz8KKyAgICAgICAgaWYgKG1faXNDb21wYWN0ZWRfIHx8IGNoID4gVUNoYXJhY3Rlci5NQVhfVkFMVUUgfHwgY2ggPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpbnQgYmxvY2sgPSBtX2luZGV4X1tjaCA+PiBTSElGVF9dOworICAgICAgICByZXR1cm4gbV9kYXRhX1tNYXRoLmFicyhibG9jaykgKyAoY2ggJiBNQVNLXyldOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIGEgMzIgYml0IGRhdGEgaW4gdGhlIHRhYmxlIGRhdGEKKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHdoaWNoIGRhdGEgaXMgdG8gYmUgc2V0CisgICAgICogQHBhcmFtIHZhbHVlIHRvIHNldAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc2V0IGlzIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSAKKyAgICAgKiAgICAgICAgICAgICAgaWYgdGhlIHRhYmxlIGhhcyBiZWVuIGNvbXBhY3RlZCByZXR1cm4gZmFsc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBzZXRWYWx1ZShpbnQgY2gsIGludCB2YWx1ZSkgCisgICAgeworICAgICAgICAvLyB2YWxpZCwgdW5jb21wYWN0ZWQgdHJpZSBhbmQgdmFsaWQgYz8gCisgICAgICAgIGlmIChtX2lzQ29tcGFjdGVkXyB8fCBjaCA+IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFIHx8IGNoIDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgCisgICAgICAgIGludCBibG9jayA9IGdldERhdGFCbG9jayhjaCk7CisgICAgICAgIGlmIChibG9jayA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBtX2RhdGFfW2Jsb2NrICsgKGNoICYgTUFTS18pXSA9IHZhbHVlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2VyaWFsaXplcyB0aGUgYnVpbGQgdGFibGUgd2l0aCAzMiBiaXQgZGF0YQorICAgICAqIEBwYXJhbSBkYXRhbWFuaXB1bGF0ZSBidWlsZGVyIHJhdyBmb2xkIG1ldGhvZCBpbXBsZW1lbnRhdGlvbgorICAgICAqIEBwYXJhbSB0cmllZGF0YW1hbmlwdWxhdGUgcmVzdWx0IHRyaWUgZm9sZCBtZXRob2QKKyAgICAgKiBAcmV0dXJuIGEgbmV3IHRyaWUKKyAgICAgKi8KKyAgICBwdWJsaWMgSW50VHJpZSBzZXJpYWxpemUoVHJpZUJ1aWxkZXIuRGF0YU1hbmlwdWxhdGUgZGF0YW1hbmlwdWxhdGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmllLkRhdGFNYW5pcHVsYXRlIHRyaWVkYXRhbWFuaXB1bGF0ZSkKKyAgICB7CisgICAgICAgIGlmIChkYXRhbWFuaXB1bGF0ZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJQYXJhbWV0ZXJzIGNhbiBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIC8vIGZvbGQgYW5kIGNvbXBhY3QgaWYgbmVjZXNzYXJ5LCBhbHNvIGNoZWNrcyB0aGF0IGluZGV4TGVuZ3RoIGlzIAorICAgICAgICAvLyB3aXRoaW4gbGltaXRzIAorICAgICAgICBpZiAoIW1faXNDb21wYWN0ZWRfKSB7CisgICAgICAgICAgICAvLyBjb21wYWN0IG9uY2Ugd2l0aG91dCBvdmVybGFwIHRvIGltcHJvdmUgZm9sZGluZworICAgICAgICAgICAgY29tcGFjdChmYWxzZSk7CisgICAgICAgICAgICAvLyBmb2xkIHRoZSBzdXBwbGVtZW50YXJ5IHBhcnQgb2YgdGhlIGluZGV4IGFycmF5CisgICAgICAgICAgICBmb2xkKGRhdGFtYW5pcHVsYXRlKTsKKyAgICAgICAgICAgIC8vIGNvbXBhY3QgYWdhaW4gd2l0aCBvdmVybGFwIGZvciBtaW5pbXVtIGRhdGEgYXJyYXkgbGVuZ3RoCisgICAgICAgICAgICBjb21wYWN0KHRydWUpOworICAgICAgICAgICAgbV9pc0NvbXBhY3RlZF8gPSB0cnVlOworICAgICAgICB9CisgICAgICAgIC8vIGlzIGRhdGFMZW5ndGggd2l0aGluIGxpbWl0cz8gCisgICAgICAgIGlmIChtX2RhdGFMZW5ndGhfID49IE1BWF9EQVRBX0xFTkdUSF8pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oIkRhdGEgbGVuZ3RoIHRvbyBzbWFsbCIpOworICAgICAgICB9CisgICAgCisgICAgICAgIGNoYXIgaW5kZXhbXSA9IG5ldyBjaGFyW21faW5kZXhMZW5ndGhfXTsKKyAgICAgICAgaW50IGRhdGFbXSA9IG5ldyBpbnRbbV9kYXRhTGVuZ3RoX107CisgICAgICAgIC8vIHdyaXRlIHRoZSBpbmRleCAoc3RhZ2UgMSkgYXJyYXkgYW5kIHRoZSAzMi1iaXQgZGF0YSAoc3RhZ2UgMikgYXJyYXkKKyAgICAgICAgLy8gd3JpdGUgMTYtYml0IGluZGV4IHZhbHVlcyBzaGlmdGVkIHJpZ2h0IGJ5IElOREVYX1NISUZUXyAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2luZGV4TGVuZ3RoXzsgaSArKykgeworICAgICAgICAgICAgaW5kZXhbaV0gPSAoY2hhcikobV9pbmRleF9baV0gPj4+IElOREVYX1NISUZUXyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gd3JpdGUgMzItYml0IGRhdGEgdmFsdWVzCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV9kYXRhXywgMCwgZGF0YSwgMCwgbV9kYXRhTGVuZ3RoXyk7CisgICAgICAgIAorICAgICAgICBpbnQgb3B0aW9ucyA9IFNISUZUXyB8IChJTkRFWF9TSElGVF8gPDwgT1BUSU9OU19JTkRFWF9TSElGVF8pOworICAgICAgICBvcHRpb25zIHw9IE9QVElPTlNfREFUQV9JU18zMl9CSVRfOworICAgICAgICBpZiAobV9pc0xhdGluMUxpbmVhcl8pIHsKKyAgICAgICAgICAgIG9wdGlvbnMgfD0gT1BUSU9OU19MQVRJTjFfSVNfTElORUFSXzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IEludFRyaWUoaW5kZXgsIGRhdGEsIG1faW5pdGlhbFZhbHVlXywgb3B0aW9ucywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmllZGF0YW1hbmlwdWxhdGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgYSB2YWx1ZSBpbiBhIHJhbmdlIG9mIGNvZGUgcG9pbnRzIFtzdGFydC4ubGltaXRdLgorICAgICAqIEFsbCBjb2RlIHBvaW50cyBjIHdpdGggc3RhcnQgJmx0Oz0gYyAmbHQ7IGxpbWl0IHdpbGwgZ2V0IHRoZSB2YWx1ZSBpZgorICAgICAqIG92ZXJ3cml0ZSBpcyB0cnVlIG9yIGlmIHRoZSBvbGQgdmFsdWUgaXMgMC4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGZpcnN0IGNvZGUgcG9pbnQgdG8gZ2V0IHRoZSB2YWx1ZQorICAgICAqIEBwYXJhbSBsaW1pdCBvbmUgcGFzdCB0aGUgbGFzdCBjb2RlIHBvaW50IHRvIGdldCB0aGUgdmFsdWUKKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlCisgICAgICogQHBhcmFtIG92ZXJ3cml0ZSBmbGFnIGZvciB3aGV0aGVyIG9sZCBub24taW5pdGlhbCB2YWx1ZXMgYXJlIHRvIGJlIAorICAgICAqICAgICAgICBvdmVyd3JpdHRlbgorICAgICAqIEByZXR1cm4gZmFsc2UgaWYgYSBmYWlsdXJlIG9jY3VycmVkIChpbGxlZ2FsIGFyZ3VtZW50IG9yIGRhdGEgYXJyYXkgCisgICAgICogICAgICAgICAgICAgICBvdmVycnVuKQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHNldFJhbmdlKGludCBzdGFydCwgaW50IGxpbWl0LCBpbnQgdmFsdWUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gb3ZlcndyaXRlKSAKKyAgICB7CisgICAgICAgIC8vIHJlcGVhdCB2YWx1ZSBpbiBbc3RhcnQuLmxpbWl0WworICAgICAgICAvLyBtYXJrIGluZGV4IHZhbHVlcyBmb3IgcmVwZWF0LWRhdGEgYmxvY2tzIGJ5IHNldHRpbmcgYml0IDMxIG9mIHRoZSAKKyAgICAgICAgLy8gaW5kZXggdmFsdWVzIGZpbGwgYXJvdW5kIGV4aXN0aW5nIHZhbHVlcyBpZiBhbnksIGlmKG92ZXJ3cml0ZSkKKyAgICAgICAgICAgIAorICAgICAgICAvLyB2YWxpZCwgdW5jb21wYWN0ZWQgdHJpZSBhbmQgdmFsaWQgaW5kZXhlcz8KKyAgICAgICAgaWYgKG1faXNDb21wYWN0ZWRfIHx8IHN0YXJ0IDwgVUNoYXJhY3Rlci5NSU5fVkFMVUUgCisgICAgICAgICAgICB8fCBzdGFydCA+IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFIHx8IGxpbWl0IDwgVUNoYXJhY3Rlci5NSU5fVkFMVUUKKyAgICAgICAgICAgIHx8IGxpbWl0ID4gKFVDaGFyYWN0ZXIuTUFYX1ZBTFVFICsgMSkgfHwgc3RhcnQgPiBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKHN0YXJ0ID09IGxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gbm90aGluZyB0byBkbworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoKHN0YXJ0ICYgTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgIC8vIHNldCBwYXJ0aWFsIGJsb2NrIGF0IFtzdGFydC4uZm9sbG93aW5nIGJsb2NrIGJvdW5kYXJ5WworICAgICAgICAgICAgaW50IGJsb2NrID0gZ2V0RGF0YUJsb2NrKHN0YXJ0KTsKKyAgICAgICAgICAgIGlmIChibG9jayA8IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgaW50IG5leHRTdGFydCA9IChzdGFydCArIERBVEFfQkxPQ0tfTEVOR1RIKSAmIH5NQVNLXzsKKyAgICAgICAgICAgIGlmIChuZXh0U3RhcnQgPD0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICBmaWxsQmxvY2soYmxvY2ssIHN0YXJ0ICYgTUFTS18sIERBVEFfQkxPQ0tfTEVOR1RILAorICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgb3ZlcndyaXRlKTsKKyAgICAgICAgICAgICAgICBzdGFydCA9IG5leHRTdGFydDsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmaWxsQmxvY2soYmxvY2ssIHN0YXJ0ICYgTUFTS18sIGxpbWl0ICYgTUFTS18sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLCBvdmVyd3JpdGUpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBudW1iZXIgb2YgcG9zaXRpb25zIGluIHRoZSBsYXN0LCBwYXJ0aWFsIGJsb2NrCisgICAgICAgIGludCByZXN0ID0gbGltaXQgJiBNQVNLXzsKKyAgICAgICAgCisgICAgICAgIC8vIHJvdW5kIGRvd24gbGltaXQgdG8gYSBibG9jayBib3VuZGFyeSAKKyAgICAgICAgbGltaXQgJj0gfk1BU0tfOworICAgICAgICAKKyAgICAgICAgLy8gaXRlcmF0ZSBvdmVyIGFsbC12YWx1ZSBibG9ja3MgCisgICAgICAgIGludCByZXBlYXRCbG9jayA9IDA7CisgICAgICAgIGlmICh2YWx1ZSA9PSBtX2luaXRpYWxWYWx1ZV8pIHsKKyAgICAgICAgICAgIC8vIHJlcGVhdEJsb2NrID0gMDsgYXNzaWduZWQgYWJvdmUKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXBlYXRCbG9jayA9IC0xOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICAvLyBnZXQgaW5kZXggdmFsdWUgCisgICAgICAgICAgICBpbnQgYmxvY2sgPSBtX2luZGV4X1tzdGFydCA+PiBTSElGVF9dOworICAgICAgICAgICAgaWYgKGJsb2NrID4gMCkgeworICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgYWxsb2NhdGVkLCBmaWxsIGluIHZhbHVlCisgICAgICAgICAgICAgICAgZmlsbEJsb2NrKGJsb2NrLCAwLCBEQVRBX0JMT0NLX0xFTkdUSCwgdmFsdWUsIG92ZXJ3cml0ZSk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAobV9kYXRhX1stYmxvY2tdICE9IHZhbHVlICYmIChibG9jayA9PSAwIHx8IG92ZXJ3cml0ZSkpIHsKKyAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIHJlcGVhdEJsb2NrIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgYmxvY2sgMCBvciByYW5nZSAKKyAgICAgICAgICAgICAgICAvLyBibG9jayAKKyAgICAgICAgICAgICAgICBpZiAocmVwZWF0QmxvY2sgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBtX2luZGV4X1tzdGFydCA+PiBTSElGVF9dID0gLXJlcGVhdEJsb2NrOworICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhbmQgc2V0IGFuZCBmaWxsIHRoZSByZXBlYXRCbG9jaworICAgICAgICAgICAgICAgICAgICByZXBlYXRCbG9jayA9IGdldERhdGFCbG9jayhzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXBlYXRCbG9jayA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBuZWdhdGl2ZSBibG9jayBudW1iZXIgdG8gaW5kaWNhdGUgdGhhdCBpdCBpcyBhIAorICAgICAgICAgICAgICAgICAgICAvLyByZXBlYXQgYmxvY2sKKyAgICAgICAgICAgICAgICAgICAgbV9pbmRleF9bc3RhcnQgPj4gU0hJRlRfXSA9IC1yZXBlYXRCbG9jazsKKyAgICAgICAgICAgICAgICAgICAgZmlsbEJsb2NrKHJlcGVhdEJsb2NrLCAwLCBEQVRBX0JMT0NLX0xFTkdUSCwgdmFsdWUsIHRydWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBzdGFydCArPSBEQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHJlc3QgPiAwKSB7CisgICAgICAgICAgICAvLyBzZXQgcGFydGlhbCBibG9jayBhdCBbbGFzdCBibG9jayBib3VuZGFyeS4ubGltaXRbCisgICAgICAgICAgICBpbnQgYmxvY2sgPSBnZXREYXRhQmxvY2soc3RhcnQpOworICAgICAgICAgICAgaWYgKGJsb2NrIDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZpbGxCbG9jayhibG9jaywgMCwgcmVzdCwgdmFsdWUsIG92ZXJ3cml0ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgCisgICAgcHJvdGVjdGVkIGludCBtX2RhdGFfW107CisgICAgcHJvdGVjdGVkIGludCBtX2luaXRpYWxWYWx1ZV87ICAKKyAgICAKKyAgICAvLyAgcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBpbnQgbV9sZWFkVW5pdFZhbHVlXzsgIAorICAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAKKyAgICBwcml2YXRlIGludCBhbGxvY0RhdGFCbG9jaygpIAorICAgIHsKKyAgICAgICAgaW50IG5ld0Jsb2NrID0gbV9kYXRhTGVuZ3RoXzsKKyAgICAgICAgaW50IG5ld1RvcCA9IG5ld0Jsb2NrICsgREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgIGlmIChuZXdUb3AgPiBtX2RhdGFDYXBhY2l0eV8pIHsKKyAgICAgICAgICAgIC8vIG91dCBvZiBtZW1vcnkgaW4gdGhlIGRhdGEgYXJyYXkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBtX2RhdGFMZW5ndGhfID0gbmV3VG9wOworICAgICAgICByZXR1cm4gbmV3QmxvY2s7CisgICAgfQorCisgICAgLyoqCisgICAgICogTm8gZXJyb3IgY2hlY2tpbmcgZm9yIGlsbGVnYWwgYXJndW1lbnRzLgorICAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQgdG8gbG9vayBmb3IKKyAgICAgKiBAcmV0dXJuIC0xIGlmIG5vIG5ldyBkYXRhIGJsb2NrIGF2YWlsYWJsZSAob3V0IG9mIG1lbW9yeSBpbiBkYXRhIGFycmF5KQorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldERhdGFCbG9jayhpbnQgY2gpIAorICAgIHsKKyAgICAgICAgY2ggPj49IFNISUZUXzsKKyAgICAgICAgaW50IGluZGV4VmFsdWUgPSBtX2luZGV4X1tjaF07CisgICAgICAgIGlmIChpbmRleFZhbHVlID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIGluZGV4VmFsdWU7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gYWxsb2NhdGUgYSBuZXcgZGF0YSBibG9jaworICAgICAgICBpbnQgbmV3QmxvY2sgPSBhbGxvY0RhdGFCbG9jaygpOworICAgICAgICBpZiAobmV3QmxvY2sgPCAwKSB7CisgICAgICAgICAgICAvLyBvdXQgb2YgbWVtb3J5IGluIHRoZSBkYXRhIGFycmF5IAorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIG1faW5kZXhfW2NoXSA9IG5ld0Jsb2NrOworICAgIAorICAgICAgICAvLyBjb3B5LW9uLXdyaXRlIGZvciBhIGJsb2NrIGZyb20gYSBzZXRSYW5nZSgpCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV9kYXRhXywgTWF0aC5hYnMoaW5kZXhWYWx1ZSksIG1fZGF0YV8sIG5ld0Jsb2NrLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgREFUQV9CTE9DS19MRU5HVEggPDwgMik7CisgICAgICAgIHJldHVybiBuZXdCbG9jazsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29tcGFjdCBhIGZvbGRlZCBidWlsZC10aW1lIHRyaWUuCisgICAgICogVGhlIGNvbXBhY3Rpb24KKyAgICAgKiAtIHJlbW92ZXMgYmxvY2tzIHRoYXQgYXJlIGlkZW50aWNhbCB3aXRoIGVhcmxpZXIgb25lcworICAgICAqIC0gb3ZlcmxhcHMgYWRqYWNlbnQgYmxvY2tzIGFzIG11Y2ggYXMgcG9zc2libGUgKGlmIG92ZXJsYXAgPT0gdHJ1ZSkKKyAgICAgKiAtIG1vdmVzIGJsb2NrcyBpbiBzdGVwcyBvZiB0aGUgZGF0YSBncmFudWxhcml0eQorICAgICAqIC0gbW92ZXMgYW5kIG92ZXJsYXBzIGJsb2NrcyB0aGF0IG92ZXJsYXAgd2l0aCBtdWx0aXBsZSB2YWx1ZXMgaW4gdGhlIG92ZXJsYXAgcmVnaW9uCisgICAgICoKKyAgICAgKiBJdCBkb2VzIG5vdAorICAgICAqIC0gdHJ5IHRvIG1vdmUgYW5kIG92ZXJsYXAgYmxvY2tzIHRoYXQgYXJlIG5vdCBhbHJlYWR5IGFkamFjZW50CisgICAgICogQHBhcmFtIG92ZXJsYXAgZmxhZworICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjb21wYWN0KGJvb2xlYW4gb3ZlcmxhcCkgCisgICAgeworICAgICAgICBpZiAobV9pc0NvbXBhY3RlZF8pIHsKKyAgICAgICAgICAgIHJldHVybjsgLy8gbm90aGluZyBsZWZ0IHRvIGRvCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gY29tcGFjdGlvbgorICAgICAgICAvLyBpbml0aWFsaXplIHRoZSBpbmRleCBtYXAgd2l0aCAiYmxvY2sgaXMgdXNlZC91bnVzZWQiIGZsYWdzCisgICAgICAgIGZpbmRVbnVzZWRCbG9ja3MoKTsKKyAgICAgICAgCisgICAgICAgIC8vIGlmIExhdGluLTEgaXMgcHJlYWxsb2NhdGVkIGFuZCBsaW5lYXIsIHRoZW4gZG8gbm90IGNvbXBhY3QgTGF0aW4tMSAKKyAgICAgICAgLy8gZGF0YQorICAgICAgICBpbnQgb3ZlcmxhcFN0YXJ0ID0gREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgIGlmIChtX2lzTGF0aW4xTGluZWFyXyAmJiBTSElGVF8gPD0gOCkgeworICAgICAgICAgICAgb3ZlcmxhcFN0YXJ0ICs9IDI1NjsKKyAgICAgICAgfQorICAgICAgIAorICAgICAgICBpbnQgbmV3U3RhcnQgPSBEQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGZvciAoaW50IHN0YXJ0ID0gbmV3U3RhcnQ7IHN0YXJ0IDwgbV9kYXRhTGVuZ3RoXzspIHsKKyAgICAgICAgICAgIC8vIHN0YXJ0OiBpbmRleCBvZiBmaXJzdCBlbnRyeSBvZiBjdXJyZW50IGJsb2NrCisgICAgICAgICAgICAvLyBuZXdTdGFydDogaW5kZXggd2hlcmUgdGhlIGN1cnJlbnQgYmxvY2sgaXMgdG8gYmUgbW92ZWQKKyAgICAgICAgICAgIC8vICAgICAgICAgICAocmlnaHQgYWZ0ZXIgY3VycmVudCBlbmQgb2YgYWxyZWFkeS1jb21wYWN0ZWQgZGF0YSkKKyAgICAgICAgICAgIC8vIHNraXAgYmxvY2tzIHRoYXQgYXJlIG5vdCB1c2VkIAorICAgICAgICAgICAgaWYgKG1fbWFwX1tzdGFydCA+Pj4gU0hJRlRfXSA8IDApIHsKKyAgICAgICAgICAgICAgICAvLyBhZHZhbmNlIHN0YXJ0IHRvIHRoZSBuZXh0IGJsb2NrIAorICAgICAgICAgICAgICAgIHN0YXJ0ICs9IERBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICAgICAgICAgIC8vIGxlYXZlIG5ld1N0YXJ0IHdpdGggdGhlIHByZXZpb3VzIGJsb2NrIQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gc2VhcmNoIGZvciBhbiBpZGVudGljYWwgYmxvY2sKKyAgICAgICAgICAgIGlmIChzdGFydCA+PSBvdmVybGFwU3RhcnQpIHsKKyAgICAgICAgICAgICAgICBpID0gZmluZFNhbWVEYXRhQmxvY2sobV9kYXRhXywgbmV3U3RhcnQsIHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxhcCA/IERBVEFfR1JBTlVMQVJJVFlfIDogREFUQV9CTE9DS19MRU5HVEgpOworICAgICAgICAgICAgICAgIGlmIChpID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZm91bmQgYW4gaWRlbnRpY2FsIGJsb2NrLCBzZXQgdGhlIG90aGVyIGJsb2NrJ3MgaW5kZXggCisgICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlIGZvciB0aGUgY3VycmVudCBibG9jaworICAgICAgICAgICAgICAgICAgICBtX21hcF9bc3RhcnQgPj4+IFNISUZUX10gPSBpOworICAgICAgICAgICAgICAgICAgICAvLyBhZHZhbmNlIHN0YXJ0IHRvIHRoZSBuZXh0IGJsb2NrCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICs9IERBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICAgICAgICAgICAgICAvLyBsZWF2ZSBuZXdTdGFydCB3aXRoIHRoZSBwcmV2aW91cyBibG9jayEKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gc2VlIGlmIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBibG9jayBjYW4gYmUgb3ZlcmxhcHBlZCB3aXRoIHRoZSAKKyAgICAgICAgICAgIC8vIGVuZCBvZiB0aGUgcHJldmlvdXMgYmxvY2sKKyAgICAgICAgICAgIGlmKG92ZXJsYXAgJiYgc3RhcnQ+PW92ZXJsYXBTdGFydCkgeworICAgICAgICAgICAgICAgIC8qIGxvb2sgZm9yIG1heGltdW0gb3ZlcmxhcCAobW9kdWxvIGdyYW51bGFyaXR5KSB3aXRoIHRoZSBwcmV2aW91cywgYWRqYWNlbnQgYmxvY2sgKi8KKyAgICAgICAgICAgICAgICBmb3IoaT1EQVRBX0JMT0NLX0xFTkdUSC1EQVRBX0dSQU5VTEFSSVRZXzsKKyAgICAgICAgICAgICAgICAgICAgaT4wICYmICFlcXVhbF9pbnQobV9kYXRhXywgbmV3U3RhcnQtaSwgc3RhcnQsIGkpOworICAgICAgICAgICAgICAgICAgICBpLT1EQVRBX0dSQU5VTEFSSVRZXykge30KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaT0wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkgPiAwKSB7CisgICAgICAgICAgICAgICAgLy8gc29tZSBvdmVybGFwCisgICAgICAgICAgICAgICAgbV9tYXBfW3N0YXJ0ID4+PiBTSElGVF9dID0gbmV3U3RhcnQgLSBpOworICAgICAgICAgICAgICAgIC8vIG1vdmUgdGhlIG5vbi1vdmVybGFwcGluZyBpbmRleGVzIHRvIHRoZWlyIG5ldyBwb3NpdGlvbnMKKyAgICAgICAgICAgICAgICBzdGFydCArPSBpOworICAgICAgICAgICAgICAgIGZvciAoaSA9IERBVEFfQkxPQ0tfTEVOR1RIIC0gaTsgaSA+IDA7IC0tIGkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9kYXRhX1tuZXdTdGFydCArK10gPSBtX2RhdGFfW3N0YXJ0ICsrXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAobmV3U3RhcnQgPCBzdGFydCkgeworICAgICAgICAgICAgICAgIC8vIG5vIG92ZXJsYXAsIGp1c3QgbW92ZSB0aGUgaW5kZXhlcyB0byB0aGVpciBuZXcgcG9zaXRpb25zCisgICAgICAgICAgICAgICAgbV9tYXBfW3N0YXJ0ID4+PiBTSElGVF9dID0gbmV3U3RhcnQ7CisgICAgICAgICAgICAgICAgZm9yIChpID0gREFUQV9CTE9DS19MRU5HVEg7IGkgPiAwOyAtLSBpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fZGF0YV9bbmV3U3RhcnQgKytdID0gbV9kYXRhX1tzdGFydCArK107CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeyAvLyBubyBvdmVybGFwICYmIG5ld1N0YXJ0PT1zdGFydAorICAgICAgICAgICAgICAgIG1fbWFwX1tzdGFydCA+Pj4gU0hJRlRfXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgIG5ld1N0YXJ0ICs9IERBVEFfQkxPQ0tfTEVOR1RIOworICAgICAgICAgICAgICAgIHN0YXJ0ID0gbmV3U3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gbm93IGFkanVzdCB0aGUgaW5kZXggKHN0YWdlIDEpIHRhYmxlCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBtX2luZGV4TGVuZ3RoXzsgKysgaSkgeworICAgICAgICAgICAgbV9pbmRleF9baV0gPSBtX21hcF9bTWF0aC5hYnMobV9pbmRleF9baV0pID4+PiBTSElGVF9dOworICAgICAgICB9CisgICAgICAgIG1fZGF0YUxlbmd0aF8gPSBuZXdTdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBzYW1lIGRhdGEgYmxvY2sKKyAgICAgKiBAcGFyYW0gZGF0YSBhcnJheQorICAgICAqIEBwYXJhbSBkYXRhTGVuZ3RoCisgICAgICogQHBhcmFtIG90aGVyQmxvY2sKKyAgICAgKiBAcGFyYW0gc3RlcAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBmaW5kU2FtZURhdGFCbG9jayhpbnQgZGF0YVtdLCBpbnQgZGF0YUxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG90aGVyQmxvY2ssIGludCBzdGVwKSAKKyAgICB7CisgICAgICAgIC8vIGVuc3VyZSB0aGF0IHdlIGRvIG5vdCBldmVuIHBhcnRpYWxseSBnZXQgcGFzdCBkYXRhTGVuZ3RoCisgICAgICAgIGRhdGFMZW5ndGggLT0gREFUQV9CTE9DS19MRU5HVEg7CisKKyAgICAgICAgZm9yIChpbnQgYmxvY2sgPSAwOyBibG9jayA8PSBkYXRhTGVuZ3RoOyBibG9jayArPSBzdGVwKSB7CisgICAgICAgICAgICBpZihlcXVhbF9pbnQoZGF0YSwgYmxvY2ssIG90aGVyQmxvY2ssIERBVEFfQkxPQ0tfTEVOR1RIKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBibG9jazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZvbGQgdGhlIG5vcm1hbGl6YXRpb24gZGF0YSBmb3Igc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyBpbnRvCisgICAgICogYSBjb21wYWN0IGFyZWEgb24gdG9wIG9mIHRoZSBCTVAtcGFydCBvZiB0aGUgdHJpZSBpbmRleCwKKyAgICAgKiB3aXRoIHRoZSBsZWFkIHN1cnJvZ2F0ZXMgaW5kZXhpbmcgdGhpcyBjb21wYWN0IGFyZWEuCisgICAgICoKKyAgICAgKiBEdXBsaWNhdGUgdGhlIGluZGV4IHZhbHVlcyBmb3IgbGVhZCBzdXJyb2dhdGVzOgorICAgICAqIEZyb20gaW5zaWRlIHRoZSBCTVAgYXJlYSwgd2hlcmUgc29tZSBtYXkgYmUgb3ZlcnJpZGRlbiB3aXRoIGZvbGRlZCB2YWx1ZXMsCisgICAgICogdG8ganVzdCBhZnRlciB0aGUgQk1QIGFyZWEsIHdoZXJlIHRoZXkgY2FuIGJlIHJldHJpZXZlZCBmb3IKKyAgICAgKiBjb2RlIHBvaW50IGxvb2t1cHMuCisgICAgICogQHBhcmFtIG1hbmlwdWxhdGUgZm9sZCBpbXBsZW1lbnRhdGlvbgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBmb2xkKERhdGFNYW5pcHVsYXRlIG1hbmlwdWxhdGUpIAorICAgIHsKKyAgICAgICAgaW50IGxlYWRJbmRleGVzW10gPSBuZXcgaW50W1NVUlJPR0FURV9CTE9DS19DT1VOVF9dOworICAgICAgICBpbnQgaW5kZXhbXSA9IG1faW5kZXhfOworICAgICAgICAvLyBjb3B5IHRoZSBsZWFkIHN1cnJvZ2F0ZSBpbmRleGVzIGludG8gYSB0ZW1wb3JhcnkgYXJyYXkKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShpbmRleCwgMHhkODAwID4+IFNISUZUXywgbGVhZEluZGV4ZXMsIDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgIFNVUlJPR0FURV9CTE9DS19DT1VOVF8pOworICAgICAgICAKKyAgICAgICAgLy8gc2V0IGFsbCB2YWx1ZXMgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgKnVuaXRzKiB0byBsZWFkVW5pdFZhbHVlCisgICAgICAgIC8vIHNvIHRoYXQgYnkgZGVmYXVsdCBydW50aW1lIGxvb2t1cHMgd2lsbCBmaW5kIG5vIGRhdGEgZm9yIGFzc29jaWF0ZWQKKyAgICAgICAgLy8gc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cywgdW5sZXNzIHRoZXJlIGlzIGRhdGEgZm9yIHN1Y2ggY29kZSBwb2ludHMKKyAgICAgICAgLy8gd2hpY2ggd2lsbCByZXN1bHQgaW4gYSBub24temVybyBmb2xkaW5nIHZhbHVlIGJlbG93IHRoYXQgaXMgc2V0IGZvcgorICAgICAgICAvLyB0aGUgcmVzcGVjdGl2ZSBsZWFkIHVuaXRzCisgICAgICAgIC8vIHRoZSBhYm92ZSBzYXZlZCB0aGUgaW5kZXhlcyBmb3Igc3Vycm9nYXRlIGNvZGUgKnBvaW50cyoKKyAgICAgICAgLy8gZmlsbCB0aGUgaW5kZXhlcyB3aXRoIHNpbXBsaWZpZWQgY29kZSBmcm9tIHV0cmllX3NldFJhbmdlMzIoKQorICAgICAgICBpbnQgYmxvY2sgPSAwOworICAgICAgICBpZiAobV9sZWFkVW5pdFZhbHVlXyA9PSBtX2luaXRpYWxWYWx1ZV8pIHsKKyAgICAgICAgICAgIC8vIGxlYWRVbml0VmFsdWUgPT0gaW5pdGlhbFZhbHVlLCB1c2UgYWxsLWluaXRpYWwtdmFsdWUgYmxvY2sKKyAgICAgICAgICAgIC8vIGJsb2NrID0gMDsgaWYgYmxvY2sgaGVyZSBsZWZ0IGVtcHR5CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gY3JlYXRlIGFuZCBmaWxsIHRoZSByZXBlYXRCbG9jaworICAgICAgICAgICAgYmxvY2sgPSBhbGxvY0RhdGFCbG9jaygpOworICAgICAgICAgICAgaWYgKGJsb2NrIDwgMCkgeworICAgICAgICAgICAgICAgIC8vIGRhdGEgdGFibGUgb3ZlcmZsb3cKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJJbnRlcm5hbCBlcnJvcjogT3V0IG9mIG1lbW9yeSBzcGFjZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZmlsbEJsb2NrKGJsb2NrLCAwLCBEQVRBX0JMT0NLX0xFTkdUSCwgbV9sZWFkVW5pdFZhbHVlXywgdHJ1ZSk7CisgICAgICAgICAgICAvLyBuZWdhdGl2ZSBibG9jayBudW1iZXIgdG8gaW5kaWNhdGUgdGhhdCBpdCBpcyBhIHJlcGVhdCBibG9jaworICAgICAgICAgICAgYmxvY2sgPSAtYmxvY2s7IAorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGMgPSAoMHhkODAwID4+IFNISUZUXyk7IGMgPCAoMHhkYzAwID4+IFNISUZUXyk7ICsrIGMpIHsKKyAgICAgICAgICAgIG1faW5kZXhfW2NdID0gYmxvY2s7CisgICAgICAgIH0KKworICAgICAgICAvLyBGb2xkIHNpZ25pZmljYW50IGluZGV4IHZhbHVlcyBpbnRvIHRoZSBhcmVhIGp1c3QgYWZ0ZXIgdGhlIEJNUCAKKyAgICAgICAgLy8gaW5kZXhlcy4KKyAgICAgICAgLy8gSW4gY2FzZSB0aGUgZmlyc3QgbGVhZCBzdXJyb2dhdGUgaGFzIHNpZ25pZmljYW50IGRhdGEsCisgICAgICAgIC8vIGl0cyBpbmRleCBibG9jayBtdXN0IGJlIHVzZWQgZmlyc3QgKGluIHdoaWNoIGNhc2UgdGhlIGZvbGRpbmcgaXMgYSAKKyAgICAgICAgLy8gbm8tb3ApLgorICAgICAgICAvLyBMYXRlciBhbGwgZm9sZGVkIGluZGV4IGJsb2NrcyBhcmUgbW92ZWQgdXAgb25lIHRvIGluc2VydCB0aGUgY29waWVkCisgICAgICAgIC8vIGxlYWQgc3Vycm9nYXRlIGluZGV4ZXMuCisgICAgICAgIGludCBpbmRleExlbmd0aCA9IEJNUF9JTkRFWF9MRU5HVEhfOworICAgICAgICAvLyBzZWFyY2ggZm9yIGFueSBpbmRleCAoc3RhZ2UgMSkgZW50cmllcyBmb3Igc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyAKKyAgICAgICAgZm9yIChpbnQgYyA9IDB4MTAwMDA7IGMgPCAweDExMDAwMDspIHsKKyAgICAgICAgICAgIGlmIChpbmRleFtjID4+IFNISUZUX10gIT0gMCkgeworICAgICAgICAgICAgICAgIC8vIHRoZXJlIGlzIGRhdGEsIHRyZWF0IHRoZSBmdWxsIGJsb2NrIGZvciBhIGxlYWQgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgYyAmPSB+MHgzZmY7CisgICAgICAgICAgICAgICAgLy8gaXMgdGhlcmUgYW4gaWRlbnRpY2FsIGluZGV4IGJsb2NrPworICAgICAgICAgICAgICAgIGJsb2NrID0gZmluZFNhbWVJbmRleEJsb2NrKGluZGV4LCBpbmRleExlbmd0aCwgYyA+PiBTSElGVF8pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGdldCBhIGZvbGRlZCB2YWx1ZSBmb3IgW2MuLmMrMHg0MDBbIGFuZCwKKyAgICAgICAgICAgICAgICAvLyBpZiBkaWZmZXJlbnQgZnJvbSB0aGUgdmFsdWUgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZSBjb2RlIAorICAgICAgICAgICAgICAgIC8vIHBvaW50LCBzZXQgaXQgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHVuaXQKKworICAgICAgICAgICAgICAgIGludCB2YWx1ZSA9IG1hbmlwdWxhdGUuZ2V0Rm9sZGVkVmFsdWUoYywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9jayArIFNVUlJPR0FURV9CTE9DS19DT1VOVF8pOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBnZXRWYWx1ZShVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGMpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXNldFZhbHVlKFVURjE2LmdldExlYWRTdXJyb2dhdGUoYyksIHZhbHVlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGF0YSB0YWJsZSBvdmVyZmxvdyAKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEYXRhIHRhYmxlIG92ZXJmbG93Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UgZGlkIG5vdCBmaW5kIGFuIGlkZW50aWNhbCBpbmRleCBibG9jay4uLgorICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2sgPT0gaW5kZXhMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vdmUgdGhlIGFjdHVhbCBpbmRleCAoc3RhZ2UgMSkgZW50cmllcyBmcm9tIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkgcG9zaXRpb24gdG8gdGhlIG5ldyBvbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoaW5kZXgsIGMgPj4gU0hJRlRfLCBpbmRleCwgaW5kZXhMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNVUlJPR0FURV9CTE9DS19DT1VOVF8pOworICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhMZW5ndGggKz0gU1VSUk9HQVRFX0JMT0NLX0NPVU5UXzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjICs9IDB4NDAwOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGMgKz0gREFUQV9CTE9DS19MRU5HVEg7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGluZGV4IGFycmF5IG92ZXJmbG93PworICAgICAgICAvLyBUaGlzIGlzIHRvIGd1YXJhbnRlZSB0aGF0IGEgZm9sZGluZyBvZmZzZXQgaXMgb2YgdGhlIGZvcm0KKyAgICAgICAgLy8gVVRSSUVfQk1QX0lOREVYX0xFTkdUSCtuKlVUUklFX1NVUlJPR0FURV9CTE9DS19DT1VOVCB3aXRoIG49MC4uMTAyMy4KKyAgICAgICAgLy8gSWYgdGhlIGluZGV4IGlzIHRvbyBsYXJnZSwgdGhlbiBuPj0xMDI0IGFuZCBtb3JlIHRoYW4gMTAgYml0cyBhcmUgCisgICAgICAgIC8vIG5lY2Vzc2FyeS4KKyAgICAgICAgLy8gSW4gZmFjdCwgaXQgY2FuIG9ubHkgZXZlciBiZWNvbWUgbj09MTAyNCB3aXRoIGNvbXBsZXRlbHkgdW5mb2xkYWJsZSAKKyAgICAgICAgLy8gZGF0YSBhbmQgdGhlIGFkZGl0aW9uYWwgYmxvY2sgb2YgZHVwbGljYXRlZCB2YWx1ZXMgZm9yIGxlYWQgCisgICAgICAgIC8vIHN1cnJvZ2F0ZXMuCisgICAgICAgIGlmIChpbmRleExlbmd0aCA+PSBNQVhfSU5ERVhfTEVOR1RIXykgeworICAgICAgICAgICAgdGhyb3cgbmV3IEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigiSW5kZXggdGFibGUgb3ZlcmZsb3ciKTsKKyAgICAgICAgfQorICAgICAgICAvLyBtYWtlIHNwYWNlIGZvciB0aGUgbGVhZCBzdXJyb2dhdGUgaW5kZXggYmxvY2sgYW5kIGluc2VydCBpdCBiZXR3ZWVuIAorICAgICAgICAvLyB0aGUgQk1QIGluZGV4ZXMgYW5kIHRoZSBmb2xkZWQgb25lcworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGluZGV4LCBCTVBfSU5ERVhfTEVOR1RIXywgaW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgIEJNUF9JTkRFWF9MRU5HVEhfICsgU1VSUk9HQVRFX0JMT0NLX0NPVU5UXywKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleExlbmd0aCAtIEJNUF9JTkRFWF9MRU5HVEhfKTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShsZWFkSW5kZXhlcywgMCwgaW5kZXgsIEJNUF9JTkRFWF9MRU5HVEhfLAorICAgICAgICAgICAgICAgICAgICAgICAgIFNVUlJPR0FURV9CTE9DS19DT1VOVF8pOworICAgICAgICBpbmRleExlbmd0aCArPSBTVVJST0dBVEVfQkxPQ0tfQ09VTlRfOworICAgICAgICBtX2luZGV4TGVuZ3RoXyA9IGluZGV4TGVuZ3RoOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZmlsbEJsb2NrKGludCBibG9jaywgaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCB2YWx1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIG92ZXJ3cml0ZSkgCisgICAgeworICAgICAgICBsaW1pdCArPSBibG9jazsKKyAgICAgICAgYmxvY2sgKz0gc3RhcnQ7CisgICAgICAgIGlmIChvdmVyd3JpdGUpIHsKKyAgICAgICAgICAgIHdoaWxlIChibG9jayA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgbV9kYXRhX1tibG9jayArK10gPSB2YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB3aGlsZSAoYmxvY2sgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIGlmIChtX2RhdGFfW2Jsb2NrXSA9PSBtX2luaXRpYWxWYWx1ZV8pIHsKKyAgICAgICAgICAgICAgICAgICAgbV9kYXRhX1tibG9ja10gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKysgYmxvY2s7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisgICAgCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9KREtUaW1lWm9uZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSkRLVGltZVpvbmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDk0YmU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvSkRLVGltZVpvbmUuamF2YQpAQCAtMCwwICsxLDI3MCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogT2N0b2JlciAyIDIwMDMKKyogU2luY2U6IElDVSAyLjgKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlNpbXBsZVRpbWVab25lOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKKy8qKgorICogV3JhcHBlciBhcm91bmQgT2xzb25UaW1lWm9uZSBvYmplY3QuIER1ZSB0byBzZXJpYWx6aWF0aW9uIGNvbnN0cmFpbnRzCisgKiBTaW1wbGVUaW1lWm9uZSBjYW5ub3QgYmUgYSBzdWJjbGFzcyBvZiBPbHNvblRpbWVab25lLgorICogCisgKiBUaGUgY29tcGxlbWVudCBvZiB0aGlzIGlzIFRpbWVab25lQWRhcHRlciwgd2hpY2ggbWFrZXMgYQorICogY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZSBsb29rIGxpa2UgYSBqYXZhLnV0aWwuVGltZVpvbmUuCisgKgorICogQHNlZSBjb20uaWJtLmljdS5pbXBsLkpES1RpbWVab25lCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc2luY2UgSUNVIDIuOAorICovCitwdWJsaWMgY2xhc3MgSkRLVGltZVpvbmUgZXh0ZW5kcyBUaW1lWm9uZSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtMzcyNDkwNzY0OTg4OTQ1NTI4MEw7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGphdmEudXRpbC5UaW1lWm9uZSB3cmFwcGVkIGJ5IHRoaXMgb2JqZWN0LiAgTXVzdCBub3QgYmUgbnVsbC4KKyAgICAgKi8KKyAgICAvLyBnaXZlIGFjY2VzcyB0byBTaW1wbGVUaW1lWm9uZQorICAgIHByb3RlY3RlZCB0cmFuc2llbnQgT2xzb25UaW1lWm9uZSB6b25lOworICAgIC8qKgorICAgICAqIEdpdmVuIGEgamF2YS51dGlsLlRpbWVab25lLCB3cmFwIGl0IGluIHRoZSBhcHByb3ByaWF0ZSBhZGFwdGVyCisgICAgICogc3ViY2xhc3Mgb2YgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZSBhbmQgcmV0dXJuIHRoZSBhZGFwdGVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVGltZVpvbmUgd3JhcChqYXZhLnV0aWwuVGltZVpvbmUgdHopIHsKKyAgICAgICAgaWYgKHR6IGluc3RhbmNlb2YgVGltZVpvbmVBZGFwdGVyKSB7CisgICAgICAgICAgICByZXR1cm4gKChUaW1lWm9uZUFkYXB0ZXIpIHR6KS51bndyYXAoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodHogaW5zdGFuY2VvZiBqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU2ltcGxlVGltZVpvbmUoKGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZSkgdHosIHR6LmdldElEKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgSkRLVGltZVpvbmUodHopOworICAgIH0KKworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEpES1RpbWVab25lIGdpdmVuIGEgamF2YS51dGlsLlRpbWVab25lIHJlZmVyZW5jZQorICAgICAqIHdoaWNoIG11c3Qgbm90IGJlIG51bGwuCisgICAgICogQHBhcmFtIHR6IHRoZSB0aW1lIHpvbmUgdG8gd3JhcAorICAgICAqIAorICAgICAqIEBpbnRlcm5hbCAKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSkRLVGltZVpvbmUoamF2YS51dGlsLlRpbWVab25lIHR6KSB7CisgICAgICAgIFN0cmluZyBpZCA9IHR6LmdldElEKCk7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIHpvbmUgPSBuZXcgT2xzb25UaW1lWm9uZShpZCk7CisgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgLy8gdGhyb3cgYXdheSBleGNlcHRpb24KKyAgICAgICAgfQorICAgICAgICBzdXBlci5zZXRJRChpZCk7CisgICAgfQorICAgIHByb3RlY3RlZCBKREtUaW1lWm9uZShPbHNvblRpbWVab25lIHR6KSB7CisgICAgICAgIHpvbmUgPSB0ejsKKyAgICAgICAgc3VwZXIuc2V0SUQoem9uZS5nZXRJRCgpKTsKKyAgICB9CisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb25zdHJ1Y3RvcgorICAgICAqLworICAgIHByb3RlY3RlZCBKREtUaW1lWm9uZSgpIHsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZSB6b25lIElELiBUaGlzIGRvZXMgbm90IGNoYW5nZSBhbnkgb3RoZXIgZGF0YSBpbgorICAgICAqIHRoZSB0aW1lIHpvbmUgb2JqZWN0LgorICAgICAqIEBwYXJhbSBJRCB0aGUgbmV3IHRpbWUgem9uZSBJRC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJRChTdHJpbmcgSUQpIHsKKyAgICAgICAgc3VwZXIuc2V0SUQoSUQpOworICAgICAgICBpZih6b25lIT1udWxsKXsKKyAgICAgICAgICAgIHpvbmUuc2V0SUQoSUQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0T2Zmc2V0KGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRheU9mV2VlaywgaW50IG1pbGxpc2Vjb25kcykgeworCisgICAgICAgIGlmKHpvbmUhPW51bGwpeworICAgICAgICAgICAgcmV0dXJuIHpvbmUuZ2V0T2Zmc2V0KGVyYSwgeWVhciwgbW9udGgsIGRheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrLCBtaWxsaXNlY29uZHMpOworICAgICAgICB9CisgICAgICAgIC8vIHNob3VsZCBuZXZlciBvY2N1ciBleGNlcHQgCisgICAgICAgIC8vIHdoZW4gb2xkIG9iamVjdCBvZiBvbGRlciB2ZXJzaW9uIG9mIEpES1RpbWVab25lIGFyZSBkZS1zZXJpYWxpemVkLgorICAgICAgICAvLyB0aGVzZSBvYmplY3RzIG1heSBjb250YWluIGlkcyB0aGF0IE9sc29uVGltZVpvbmUgbWF5IG5vdCB1bmRlcnN0YW5kIAorICAgICAgICAvLyBpbiBzdWNoIGNhc2VzIHpvbmUgd2lsbCBiZSBudWxsCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworCisgICAgcHVibGljIHZvaWQgZ2V0T2Zmc2V0KGxvbmcgZGF0ZSwgYm9vbGVhbiBsb2NhbCwgaW50W10gb2Zmc2V0cykgeworCisgICAgICAgIGlmKHpvbmUhPW51bGwpeworICAgICAgICAgICAgem9uZS5nZXRPZmZzZXQoZGF0ZSwgbG9jYWwsIG9mZnNldHMpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHN1cGVyLmdldE9mZnNldChkYXRlLCBsb2NhbCwgb2Zmc2V0cyk7CisgICAgICAgIH0KKyAgICB9CisgCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJhd09mZnNldChpbnQgb2Zmc2V0TWlsbGlzKSB7CisgICAgICAgIGlmKHpvbmUhPW51bGwpeworICAgICAgICAgICAgem9uZS5zZXRSYXdPZmZzZXQob2Zmc2V0TWlsbGlzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRpbWVab25lIEFQSTsgY2FsbHMgdGhyb3VnaCB0byB3cmFwcGVkIHRpbWUgem9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJhd09mZnNldCgpIHsKKyAgICAgICAgaWYoem9uZSE9bnVsbCl7CisgICAgICAgICAgICByZXR1cm4gem9uZS5nZXRSYXdPZmZzZXQoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBzaG91bGQgbmV2ZXIgb2NjdXIgZXhjZXB0IAorICAgICAgICAvLyB3aGVuIG9sZCBvYmplY3Qgb2Ygb2xkZXIgdmVyc2lvbiBvZiBKREtUaW1lWm9uZSBhcmUgZGUtc2VyaWFsaXplZC4KKyAgICAgICAgLy8gdGhlc2Ugb2JqZWN0cyBtYXkgY29udGFpbiBpZHMgdGhhdCBPbHNvblRpbWVab25lIG1heSBub3QgdW5kZXJzdGFuZCAKKyAgICAgICAgLy8gaW4gc3VjaCBjYXNlcyB6b25lIHdpbGwgYmUgbnVsbAorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gdXNlRGF5bGlnaHRUaW1lKCkgeworICAgICAgICBpZih6b25lIT1udWxsKXsKKyAgICAgICAgICAgIHJldHVybiB6b25lLnVzZURheWxpZ2h0VGltZSgpOworICAgICAgICB9CisgICAgICAgIC8vIHNob3VsZCBuZXZlciBvY2N1ciBleGNlcHQgCisgICAgICAgIC8vIHdoZW4gb2xkIG9iamVjdCBvZiBvbGRlciB2ZXJzaW9uIG9mIEpES1RpbWVab25lIGFyZSBkZS1zZXJpYWxpemVkLgorICAgICAgICAvLyB0aGVzZSBvYmplY3RzIG1heSBjb250YWluIGlkcyB0aGF0IE9sc29uVGltZVpvbmUgbWF5IG5vdCB1bmRlcnN0YW5kIAorICAgICAgICAvLyBpbiBzdWNoIGNhc2VzIHpvbmUgd2lsbCBiZSBudWxsCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaW5EYXlsaWdodFRpbWUoRGF0ZSBkYXRlKSB7CisgICAgICAgIGlmKHpvbmUhPW51bGwpeworICAgICAgICAgICAgcmV0dXJuIHpvbmUuaW5EYXlsaWdodFRpbWUoZGF0ZSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gc2hvdWxkIG5ldmVyIG9jY3VyIGV4Y2VwdCAKKyAgICAgICAgLy8gd2hlbiBvbGQgb2JqZWN0IG9mIG9sZGVyIHZlcnNpb24gb2YgSkRLVGltZVpvbmUgYXJlIGRlLXNlcmlhbGl6ZWQuCisgICAgICAgIC8vIHRoZXNlIG9iamVjdHMgbWF5IGNvbnRhaW4gaWRzIHRoYXQgT2xzb25UaW1lWm9uZSBtYXkgbm90IHVuZGVyc3RhbmQgCisgICAgICAgIC8vIGluIHN1Y2ggY2FzZXMgem9uZSB3aWxsIGJlIG51bGwKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRpbWVab25lIEFQSS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lUnVsZXMoVGltZVpvbmUgb3RoZXIpIHsKKyAgICAgICAgaWYgKG90aGVyID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAob3RoZXIgaW5zdGFuY2VvZiBKREtUaW1lWm9uZSkgeworICAgICAgICAgICAgaWYoem9uZSE9bnVsbCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIHpvbmUuaGFzU2FtZVJ1bGVzKCgoSkRLVGltZVpvbmUpIG90aGVyKS56b25lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3VwZXIuaGFzU2FtZVJ1bGVzKG90aGVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCb2lsZXJwbGF0ZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgSkRLVGltZVpvbmUgY2xvbmUgPSBuZXcgSkRLVGltZVpvbmUoKTsKKyAgICAgICAgaWYoem9uZSE9bnVsbCl7CisgICAgICAgICAgICBjbG9uZS56b25lID0gKE9sc29uVGltZVpvbmUpem9uZS5jbG9uZSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjbG9uZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCb2lsZXJwbGF0ZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIGlmKHpvbmUhPW51bGwpeworICAgICAgICAgICAgcmV0dXJuIHpvbmUuaGFzaENvZGUoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3VwZXIuaGFzaENvZGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhbW91bnQgb2YgdGltZSBpbiBtcyB0aGF0IHRoZSBjbG9jayBpcyBhZHZhbmNlZCBkdXJpbmcgRFNULgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhlIHRpbWUgaXMKKyAgICAgKiBhZHZhbmNlZCB3aXRoIHJlc3BlY3QgdG8gc3RhbmRhcmQgdGltZSB3aGVuIHRoZSBkYXlsaWdodCBzYXZpbmdzIHJ1bGVzCisgICAgICogYXJlIGluIGVmZmVjdC4gQSBwb3NpdGl2ZSBudW1iZXIsIHR5cGljYWxseSBvbmUgaG91ciAoMzYwMDAwMCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXREU1RTYXZpbmdzKCkgeworICAgICAgICBpZiAodXNlRGF5bGlnaHRUaW1lKCkpIHsKKyAgICAgICAgICAgIGlmKHpvbmUhPW51bGwpeworICAgICAgICAgICAgICAgIHJldHVybiB6b25lLmdldERTVFNhdmluZ3MoKTsKKyAgICAgICAgICAgIH0KKwkJCXJldHVybiAzNjAwMDAwOworCQl9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJvaWxlcnBsYXRlIEFQSTsgY2FsbHMgdGhyb3VnaCB0byB3cmFwcGVkIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYob2JqICE9bnVsbCl7CisgICAgICAgICAgICAgICAgVGltZVpvbmUgdHoxID0gem9uZTsKKyAgICAgICAgICAgICAgICBUaW1lWm9uZSB0ejIgPSAoKEpES1RpbWVab25lKSBvYmopLnpvbmU7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBlcXVhbCA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYodHoxIT1udWxsICYmIHR6MiE9bnVsbCl7CisgICAgICAgICAgICAgICAgICAgIGVxdWFsID0gdHoxLmVxdWFscyh0ejIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gZXF1YWw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorICAgICAqIEByZXR1cm4gIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiAiSkRLVGltZVpvbmU6ICIgKyB6b25lLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlT2JqZWN0KGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtIG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYoem9uZSE9bnVsbCl7CisgICAgICAgICAgICBvdXQud3JpdGVPYmplY3Qoem9uZS5nZXRJRCgpKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBvdXQud3JpdGVPYmplY3QoZ2V0SUQoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtIGluKSB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICBTdHJpbmcgaWQgPSAoU3RyaW5nKWluLnJlYWRPYmplY3QoKTsKKworICAgICAgICAvLyBjcmVhdGUgdGhlIFRpbWVab25lIG9iamVjdCBpZiByZWFkaW5nIHRoZSBvbGQgdmVyc2lvbiBvZiBvYmplY3QKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgem9uZSA9IG5ldyBPbHNvblRpbWVab25lKGlkKTsKKyAgICAgICAgfWNhdGNoKEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAvL3Rocm93IGF3YXkgZXhjZXB0aW9uCisgICAgICAgIH0JCQkJCQkJIAorICAgICAgICBzZXRJRChpZCk7CisgICAgfQorfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTFJVTWFwLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9MUlVNYXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjIxZjdmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTFJVTWFwLmphdmEKQEAgLTAsMCArMSw1NCBAQAorLy8jI2hlYWRlcgorLyoKKyAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCitpbXBvcnQgamF2YS51dGlsLkxpbmtlZEhhc2hNYXA7CisvLyNlbmRpZgoraW1wb3J0IGphdmEudXRpbC5NYXA7CisKKy8qCisgKiBTaW1wbGUgTFJVIChMZWFzdCBSZWNlbnQgVXNlZCkgTWFwIGltcGxlbWVudGF0aW9uCisgKi8KK3B1YmxpYyBjbGFzcyBMUlVNYXAgZXh0ZW5kcyBMaW5rZWRIYXNoTWFwIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtODE3ODEwNjQ1OTA4OTY4MjEyMEw7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9NQVhDQVBBQ0lUWSA9IDY0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX0lOSVRJQUxDQVBBQ0lUWSA9IDE2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGZsb2F0IERFRkFVTFRfTE9BREZBQ1RPUiA9IDAuNzVGOworCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgbWF4Q2FwYWNpdHk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgTFJVIG1hcCB3aXRoIHRoZSBkZWZhdWx0IGluaXRpYWwKKyAgICAgKiBjYXBhY2l0eSgxNikgYW5kIHRoZSBtYXhpbXVtIGNhcGFjaXR5KDY0KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTFJVTWFwKCkgeworICAgICAgICBzdXBlcihERUZBVUxUX0lOSVRJQUxDQVBBQ0lUWSwgREVGQVVMVF9MT0FERkFDVE9SLCB0cnVlKTsKKyAgICAgICAgbWF4Q2FwYWNpdHkgPSBERUZBVUxUX01BWENBUEFDSVRZOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyBMUlUgbWFwIHdpdGggdGhlIHNwZWNpZmllZCBpbml0aWFsCisgICAgICogY2FwYWNpdHkgYW5kIHRoZSBtYXhpbXVtIGNhcGFjaXR5CisgICAgICogCisgICAgICogQHBhcmFtIGluaXRpYWxDYXBhY2l0eSBpbml0aWFsIGNhcGFjaXR5IG9mIHRoZSBtYXAKKyAgICAgKiBAcGFyYW0gbWF4Q2FwYWNpdHkgbWF4aW11bSBjYXBhY2l0eSBvZiB0aGUgbWFwCisgICAgICovCisgICAgcHVibGljIExSVU1hcChpbnQgaW5pdGlhbENhcGFjaXR5LCBpbnQgbWF4Q2FwYWNpdHkpIHsKKyAgICAgICAgc3VwZXIoaW5pdGlhbENhcGFjaXR5LCBERUZBVUxUX0xPQURGQUNUT1IsIHRydWUpOworICAgICAgICB0aGlzLm1heENhcGFjaXR5ID0gbWF4Q2FwYWNpdHk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBEZWxldGUgdGhlIGVsZGVzdCBlbnRyeSB3aGVuIHRoZSBzaXplIGV4Y2VlZHMgdGhlIGxpbWl0CisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gcmVtb3ZlRWxkZXN0RW50cnkoTWFwLkVudHJ5IGVsZGVzdCkgeworICAgICAgICByZXR1cm4gKHNpemUoKSA+IG1heENhcGFjaXR5KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9MaW5rZWRIYXNoTWFwLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9MaW5rZWRIYXNoTWFwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM5ZTUzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL0xpbmtlZEhhc2hNYXAuamF2YQpAQCAtMCwwICsxLDE3NSBAQAorLyoKKyAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpbmtlZExpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCisvKioKKyAqIEpESzEuNCBMaW5rZWRIYXNoTWFwIGVxdWl2YWxlbnQgaW1wbGVtZW50YXRpb24gZm9yCisgKiBKYXZhIGZvdW5kYXRpb24gcHJvZmlsZSBzdXBwb3J0LiAgVGhpcyBjbGFzcyBpcyB1c2VkCisgKiBieSA8Y29kZT5jb20uaWJtLmljdS5pbXBsLkxSVU1hcDwvY29kZT4gb24gZWNsaXBzZQorICogZGlzdHJpYnV0aW9ucywgd2hpY2ggcmVxdWlyZSBKREsxLjMvSmF2YSBGb3VuZGF0aW9uCisgKiBwcm9maWxlIHN1cHBvcnQuCisgKi8KK3B1YmxpYyBjbGFzcyBMaW5rZWRIYXNoTWFwIGV4dGVuZHMgSGFzaE1hcCB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTI0OTc4MjM0ODA0MzY2MTgwNzVMOworCisgICAgcHJpdmF0ZSBib29sZWFuIGFjY2Vzc09yZGVyID0gZmFsc2U7CisgICAgcHJpdmF0ZSBMaW5rZWRMaXN0IGtleUxpc3QgPSBuZXcgTGlua2VkTGlzdCgpOworCisgICAgcHVibGljIExpbmtlZEhhc2hNYXAoKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgfQorCisgICAgcHVibGljIExpbmtlZEhhc2hNYXAoaW50IGluaXRpYWxDYXBhY2l0eSkgeworICAgICAgICBzdXBlcihpbml0aWFsQ2FwYWNpdHkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgTGlua2VkSGFzaE1hcChpbnQgaW5pdGlhbENhcGFjaXR5LCBmbG9hdCBsb2FkRmFjdG9yKSB7CisgICAgICAgIHN1cGVyKGluaXRpYWxDYXBhY2l0eSwgbG9hZEZhY3Rvcik7CisgICAgfQorCisgICAgcHVibGljIExpbmtlZEhhc2hNYXAoaW50IGluaXRpYWxDYXBhY2l0eSwgZmxvYXQgbG9hZEZhY3RvciwgYm9vbGVhbiBhY2Nlc3NPcmRlcikgeworICAgICAgICBzdXBlcihpbml0aWFsQ2FwYWNpdHksIGxvYWRGYWN0b3IpOworICAgICAgICB0aGlzLmFjY2Vzc09yZGVyID0gYWNjZXNzT3JkZXI7CisgICAgfQorCisgICAgcHVibGljIExpbmtlZEhhc2hNYXAoTWFwIG0pIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgcHV0QWxsKG0pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNsZWFyKCkgeworICAgICAgICBzdXBlci5jbGVhcigpOworICAgICAgICBrZXlMaXN0LmNsZWFyKCk7CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCByZW1vdmUoT2JqZWN0IGtleSkgeworICAgICAgICBPYmplY3QgdmFsdWUgPSBzdXBlci5yZW1vdmUoa2V5KTsKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgIC8vIG51bGwgbWlnaHQgYmUgcmV0dXJuZWQgZm9yIGEgbWFwIGVudHJ5CisgICAgICAgICAgICAvLyBmb3IgbnVsbCB2YWx1ZS4gIFNvIHdlIG5lZWQgdG8gY2hlY2sgaWYKKyAgICAgICAgICAgIC8vIHRoZSBrZXkgaXMgYWN0dWFsbHkgYXZhaWxhYmxlIG9yIG5vdC4KKyAgICAgICAgICAgIC8vIElmIHRoZSBrZXkgbGlzdCBjb250YWlucyB0aGUga2V5LCB0aGVuCisgICAgICAgICAgICAvLyByZW1vdmUgdGhlIGtleSBmcm9tIHRoZSBsaXN0LgorICAgICAgICAgICAgaW50IGluZGV4ID0gZ2V0S2V5SW5kZXgoa2V5KTsKKyAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7CisgICAgICAgICAgICAgICAga2V5TGlzdC5yZW1vdmUoaW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisgICAgCisgICAgcHVibGljIE9iamVjdCBnZXQoT2JqZWN0IGtleSkgeworICAgICAgICBPYmplY3QgdmFsdWUgPSBzdXBlci5nZXQoa2V5KTsKKyAgICAgICAgaWYgKGFjY2Vzc09yZGVyKSB7CisgICAgICAgICAgICAvLyBXaGVuIGFjY2Vzc09yZGVyIGlzIHRydWUsIG1vdmUgdGhlIGtleQorICAgICAgICAgICAgLy8gdG8gdGhlIGVuZCBvZiB0aGUgbGlzdAorICAgICAgICAgICAgaW50IGluZGV4ID0gZ2V0S2V5SW5kZXgoa2V5KTsKKyAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9IGtleUxpc3Quc2l6ZSgpIC0gMSkgeworICAgICAgICAgICAgICAgICAgICBrZXlMaXN0LnJlbW92ZShpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGtleUxpc3QuYWRkTGFzdChrZXkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcHV0QWxsKE1hcCBtKSB7CisgICAgICAgIFNldCBrZXlTZXQgPSBtLmtleVNldCgpOworICAgICAgICBJdGVyYXRvciBpdCA9IGtleVNldC5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gaXQubmV4dCgpOworICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gbS5nZXQoa2V5KTsKKyAgICAgICAgICAgIHB1dChrZXksIHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBPYmplY3QgcHV0KE9iamVjdCBrZXksIE9iamVjdCB2YWx1ZSkgeworICAgICAgICBPYmplY3Qgb2xkVmFsdWUgPSBzdXBlci5wdXQoa2V5LCB2YWx1ZSk7CisKKyAgICAgICAgLy8gTW92ZSB0aGUga2V5IHRvIHRoZSBlbmQgb2Yga2V5IGxpc3QKKyAgICAgICAgLy8gaWYgaXQgZXhpc3RzLiAgSWYgbm90LCBhcHBlbmQgdGhlIGtleQorICAgICAgICAvLyB0byB0aGUgZW5kIG9mIGtleSBsaXN0CisgICAgICAgIGludCBpbmRleCA9IGdldEtleUluZGV4KGtleSk7CisgICAgICAgIGlmIChpbmRleCA+PSAwKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggIT0ga2V5TGlzdC5zaXplKCkgLSAxKSB7CisgICAgICAgICAgICAgICAga2V5TGlzdC5yZW1vdmUoaW5kZXgpOworICAgICAgICAgICAgICAgIGtleUxpc3QuYWRkTGFzdChrZXkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAga2V5TGlzdC5hZGRMYXN0KGtleSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayBpZiB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgZWxkZXN0CisgICAgICAgIC8vIGVudHJ5LgorICAgICAgICBPYmplY3QgZWxkZXN0S2V5ID0ga2V5TGlzdC5nZXRGaXJzdCgpOworICAgICAgICBPYmplY3QgZWxkZXN0VmFsdWUgPSBzdXBlci5nZXQoZWxkZXN0S2V5KTsKKyAgICAgICAgTWFwRW50cnkgZW50cnkgPSBuZXcgTWFwRW50cnkoZWxkZXN0S2V5LCBlbGRlc3RWYWx1ZSk7CisgICAgICAgIGlmIChyZW1vdmVFbGRlc3RFbnRyeShlbnRyeSkpIHsKKyAgICAgICAgICAgIGtleUxpc3QucmVtb3ZlRmlyc3QoKTsKKyAgICAgICAgICAgIHN1cGVyLnJlbW92ZShlbGRlc3RLZXkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG9sZFZhbHVlOworICAgIH0KKworICAgIHByb3RlY3RlZCBib29sZWFuIHJlbW92ZUVsZGVzdEVudHJ5KE1hcC5FbnRyeSBlbGRlc3QpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgaW50IGdldEtleUluZGV4KE9iamVjdCBrZXkpIHsKKyAgICAgICAgaW50IGluZGV4ID0gLTE7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwga2V5TGlzdC5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgT2JqZWN0IG8gPSBrZXlMaXN0LmdldChpKTsKKyAgICAgICAgICAgIGlmIChvLmVxdWFscyhrZXkpKSB7CisgICAgICAgICAgICAgICAgaW5kZXggPSBpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBpbmRleDsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGNsYXNzIE1hcEVudHJ5IGltcGxlbWVudHMgTWFwLkVudHJ5IHsKKyAgICAgICAgcHJpdmF0ZSBPYmplY3Qga2V5OworICAgICAgICBwcml2YXRlIE9iamVjdCB2YWx1ZTsKKworICAgICAgICBwcml2YXRlIE1hcEVudHJ5KE9iamVjdCBrZXksIE9iamVjdCB2YWx1ZSkgeworICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7CisgICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIE9iamVjdCBvdGhlcktleSA9ICgoTWFwLkVudHJ5KW8pLmdldEtleSgpOworICAgICAgICAgICAgT2JqZWN0IG90aGVyVmFsdWUgPSAoKE1hcC5FbnRyeSlvKS5nZXRWYWx1ZSgpOworICAgICAgICAgICAgaWYgKGtleS5lcXVhbHMob3RoZXJLZXkpICYmIHZhbHVlLmVxdWFscyhvdGhlclZhbHVlKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRLZXkoKSB7CisgICAgICAgICAgICByZXR1cm4ga2V5OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRWYWx1ZSgpIHsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBPYmplY3Qgc2V0VmFsdWUoT2JqZWN0IHZhbHVlKSB7CisgICAgICAgICAgICBPYmplY3Qgb2xkVmFsdWUgPSB0aGlzLnZhbHVlOworICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgICAgICAgICAgcmV0dXJuIG9sZFZhbHVlOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTG9jYWxlVXRpbGl0eS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTG9jYWxlVXRpbGl0eS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1ODJjNmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Mb2NhbGVVdGlsaXR5LmphdmEKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIEEgY2xhc3MgdG8gaG9sZCB1dGlsaXR5IGZ1bmN0aW9ucyBtaXNzaW5nIGZyb20gamF2YS51dGlsLkxvY2FsZS4KKyAqLworcHVibGljIGNsYXNzIExvY2FsZVV0aWxpdHkgeworCisgICAgLyoqCisgICAgICogQSBoZWxwZXIgZnVuY3Rpb24gdG8gY29udmVydCBhIHN0cmluZyBvZiB0aGUgZm9ybQorICAgICAqIGFhX0JCX0NDIHRvIGEgbG9jYWxlIG9iamVjdC4gIFdoeSBpc24ndCB0aGlzIGluIExvY2FsZT8KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIExvY2FsZSBnZXRMb2NhbGVGcm9tTmFtZShTdHJpbmcgbmFtZSkgeworICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSAiIjsKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSAiIjsKKyAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKworICAgICAgICBpbnQgaTEgPSBuYW1lLmluZGV4T2YoJ18nKTsKKyAgICAgICAgaWYgKGkxIDwgMCkgeworICAgICAgICAgICAgbGFuZ3VhZ2UgPSBuYW1lOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFuZ3VhZ2UgPSBuYW1lLnN1YnN0cmluZygwLCBpMSk7CisgICAgICAgICAgICArK2kxOworICAgICAgICAgICAgaW50IGkyID0gbmFtZS5pbmRleE9mKCdfJywgaTEpOworICAgICAgICAgICAgaWYgKGkyIDwgMCkgeworICAgICAgICAgICAgICAgIGNvdW50cnkgPSBuYW1lLnN1YnN0cmluZyhpMSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNvdW50cnkgPSBuYW1lLnN1YnN0cmluZyhpMSwgaTIpOworICAgICAgICAgICAgICAgIHZhcmlhbnQgPSBuYW1lLnN1YnN0cmluZyhpMisxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgTG9jYWxlKGxhbmd1YWdlLCBjb3VudHJ5LCB2YXJpYW50KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBsb2NhbGUgc3RyaW5ncyBvZiB0aGUgZm9ybSBhYV9CQl9DQywgYW5kCisgICAgICogcmV0dXJuIHRydWUgaWYgcGFyZW50IGlzIGEgJ3N0cmljdCcgZmFsbGJhY2sgb2YgY2hpbGQsIHRoYXQgaXMsCisgICAgICogaWYgY2hpbGQgPX4gIl5wYXJlbnQoXy4rKSoiIChyb3VnaGx5KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNGYWxsYmFja09mKFN0cmluZyBwYXJlbnQsIFN0cmluZyBjaGlsZCkgeworICAgICAgICBpZiAoIWNoaWxkLnN0YXJ0c1dpdGgocGFyZW50KSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGludCBpID0gcGFyZW50Lmxlbmd0aCgpOworICAgICAgICByZXR1cm4gKGkgPT0gY2hpbGQubGVuZ3RoKCkgfHwKKyAgICAgICAgICAgICAgICBjaGlsZC5jaGFyQXQoaSkgPT0gJ18nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBsb2NhbGVzLCBhbmQgcmV0dXJuIHRydWUgaWYgdGhlIHBhcmVudCBpcyBhCisgICAgICogJ3N0cmljdCcgZmFsbGJhY2sgb2YgdGhlIGNoaWxkIChwYXJlbnQgc3RyaW5nIGlzIGEgZmFsbGJhY2sKKyAgICAgKiBvZiBjaGlsZCBzdHJpbmcpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0ZhbGxiYWNrT2YoTG9jYWxlIHBhcmVudCwgTG9jYWxlIGNoaWxkKSB7CisgICAgICAgIHJldHVybiBpc0ZhbGxiYWNrT2YocGFyZW50LnRvU3RyaW5nKCksIGNoaWxkLnRvU3RyaW5nKCkpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FsbHMgY2Fub25pY2FsTG9jYWxlU3RyaW5nKFN0cmluZykgd2l0aAorICAgICAqIGxvY2FsZS50b1N0cmluZygpOworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbExvY2FsZVN0cmluZyhMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBjYW5vbmljYWxMb2NhbGVTdHJpbmcobG9jYWxlLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFlvdSdkIHRoaW5rIHRoYXQgTG9jYWxlIGNhbm9uaWNhbGl6ZXMsIHNpbmNlIGl0IG11bmdlcyB0aGUKKyAgICAgKiByZW5hbWVkIGxhbmd1YWdlcywgYnV0IGl0IGRvZXNuJ3QgcXVpdGUuICBJdCBmb3JjZXMgdGhlIHJlZ2lvbgorICAgICAqIHRvIGJlIHVwcGVyIGNhc2UgYnV0IGRvZXNuJ3QgZG8gYW55dGhpbmcgYWJvdXQgdGhlIGxhbmd1YWdlIG9yCisgICAgICogdmFyaWFudC4gIE91ciBjYW5vbmljYWwgZm9ybSBpcyAnbG93ZXJfVVBQRVJfVVBQRVInLiAgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsTG9jYWxlU3RyaW5nKFN0cmluZyBpZCkgeworICAgIGlmIChpZCAhPSBudWxsKSB7CisgICAgICAgIGludCB4ID0gaWQuaW5kZXhPZigiXyIpOworICAgICAgICBpZiAoeCA9PSAtMSkgeworICAgICAgICBpZCA9IGlkLnRvTG93ZXJDYXNlKExvY2FsZS5FTkdMSVNIKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYnVmLmFwcGVuZChpZC5zdWJzdHJpbmcoMCwgeCkudG9Mb3dlckNhc2UoTG9jYWxlLkVOR0xJU0gpKTsKKyAgICAgICAgYnVmLmFwcGVuZChpZC5zdWJzdHJpbmcoeCkudG9VcHBlckNhc2UoTG9jYWxlLkVOR0xJU0gpKTsKKyAgICAgICAgICAgIAorICAgICAgICBpbnQgbGVuID0gYnVmLmxlbmd0aCgpOworICAgICAgICBpbnQgbiA9IGxlbjsKKyAgICAgICAgd2hpbGUgKC0tbiA+PSAwICYmIGJ1Zi5jaGFyQXQobikgPT0gJ18nKSB7fTsKKyAgICAgICAgaWYgKCsrbiAhPSBsZW4pIHsKKyAgICAgICAgICAgIGJ1Zi5kZWxldGUobiwgbGVuKTsKKyAgICAgICAgfQorICAgICAgICBpZCA9IGJ1Zi50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBpZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGYWxsYmFjayBmcm9tIHRoZSBnaXZlbiBsb2NhbGUgbmFtZSBieSByZW1vdmluZyB0aGUgcmlnaHRtb3N0CisgICAgICogXy1kZWxpbWl0ZWQgZWxlbWVudC4gIElmIHRoZXJlIGlzIG5vbmUsIHJldHVybiB0aGUgcm9vdCBsb2NhbGUgKCIiLAorICAgICAqICIiLCAiIikuICBJZiB0aGlzIGlzIHRoZSByb290IGxvY2FsZSwgcmV0dXJuIG51bGwuICBOT1RFOiBUaGUKKyAgICAgKiBzdHJpbmcgInJvb3QiIGlzIG5vdCByZWNvZ25pemVkOyBkbyBub3QgdXNlIGl0LgorICAgICAqIEByZXR1cm4gYSBuZXcgTG9jYWxlIHRoYXQgaXMgYSBmYWxsYmFjayBmcm9tIHRoZSBnaXZlbiBsb2NhbGUsIG9yCisgICAgICogbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIExvY2FsZSBmYWxsYmFjayhMb2NhbGUgbG9jKSB7CisKKyAgICAgICAgLy8gU3BsaXQgdGhlIGxvY2FsZSBpbnRvIHBhcnRzIGFuZCByZW1vdmUgdGhlIHJpZ2h0bW9zdCBwYXJ0CisgICAgICAgIFN0cmluZ1tdIHBhcnRzID0gbmV3IFN0cmluZ1tdCisgICAgICAgICAgICB7IGxvYy5nZXRMYW5ndWFnZSgpLCBsb2MuZ2V0Q291bnRyeSgpLCBsb2MuZ2V0VmFyaWFudCgpIH07CisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGk9MjsgaT49MDsgLS1pKSB7CisgICAgICAgICAgICBpZiAocGFydHNbaV0ubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHBhcnRzW2ldID0gIiI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGk8MCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIEFsbCBwYXJ0cyB3ZXJlIGVtcHR5CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGUocGFydHNbMF0sIHBhcnRzWzFdLCBwYXJ0c1syXSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvTm9ybWFsaXplckRhdGFSZWFkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL05vcm1hbGl6ZXJEYXRhUmVhZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTliY2MyNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL05vcm1hbGl6ZXJEYXRhUmVhZGVyLmphdmEKQEAgLTAsMCArMSw0MzAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CitpbXBvcnQgamF2YS5pby4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGVidWc7CisKKy8qKgorICogQHZlcnNpb24gICAgIDEuMAorICogQGF1dGhvciAgICAgICAgUmFtIFZpc3dhbmFkaGEKKyAqLworCisgICAgLyoKKyAgICAgKiBEZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0IG9mIHVub3JtLmljdSB2ZXJzaW9uIDIuMS4KKyAgICAgKgorICAgICAqIE1haW4gY2hhbmdlIGZyb20gdmVyc2lvbiAxIHRvIHZlcnNpb24gMjoKKyAgICAgKiBVc2Ugb2YgbmV3LCBjb21tb24gVHJpZSBpbnN0ZWFkIG9mIG5vcm1hbGl6YXRpb24tc3BlY2lmaWMgdHJpZXMuCisgICAgICogQ2hhbmdlIHRvIHZlcnNpb24gMi4xOiBhZGQgdGhpcmQvYXV4aWxpYXJ5IHRyaWUgd2l0aCBhc3NvY2lhdGVkIGRhdGEuCisgICAgICoKKyAgICAgKiBGb3IgbW9yZSBkZXRhaWxzIG9mIGhvdyB0byB1c2UgdGhlIGRhdGEgc3RydWN0dXJlcyBzZWUgdGhlIGNvZGUKKyAgICAgKiBpbiB1bm9ybS5jcHAgKHJ1bnRpbWUgbm9ybWFsaXphdGlvbiBjb2RlKSBhbmQKKyAgICAgKiBpbiBnZW5ub3JtLmMgYW5kIGdlbm5vcm0vc3RvcmUuYyAoYnVpbGQtdGltZSBkYXRhIGdlbmVyYXRpb24pLgorICAgICAqCisgICAgICogRm9yIHRoZSBzZXJpYWxpemVkIGZvcm1hdCBvZiBUcmllIHNlZSBUcmllLmMvVHJpZUhlYWRlci4KKyAgICAgKgorICAgICAqIC0gT3ZlcmFsbCBwYXJ0aXRpb24KKyAgICAgKgorICAgICAqIHVub3JtLmljdSBjdXN0b21hcmlseSBiZWdpbnMgd2l0aCBhIFVEYXRhSW5mbyBzdHJ1Y3R1cmUsIHNlZSB1ZGF0YS5oIGFuZCAuYy4KKyAgICAgKiBBZnRlciB0aGF0IHRoZXJlIGFyZSB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZXM6CisgICAgICoKKyAgICAgKiBjaGFyIGluZGV4ZXNbSU5ERVhfVE9QXTsgICAgICAgICAgICAgICAgICAgLS0gSU5ERVhfVE9QPTMyLCBzZWUgZW51bSBpbiB0aGlzIGZpbGUKKyAgICAgKgorICAgICAqIFRyaWUgbm9ybVRyaWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gc2l6ZSBpbiBieXRlcz1pbmRleGVzW0lOREVYX1RSSUVfU0laRV0KKyAgICAgKiAKKyAgICAgKiBjaGFyIGV4dHJhRGF0YVtleHRyYURhdGFUb3BdOyAgICAgICAgICAgIC0tIGV4dHJhRGF0YVRvcD1pbmRleGVzW0lOREVYX1VDSEFSX0NPVU5UXQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhRGF0YVswXSBjb250YWlucyB0aGUgbnVtYmVyIG9mIHVuaXRzIGZvcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZDX05GS0NfQ2xvc3VyZSAoZm9ybWF0VmVyc2lvbj49Mi4xKQorICAgICAqCisgICAgICogY2hhciBjb21iaW5pbmdUYWJsZVtjb21iaW5pbmdUYWJsZVRvcF07ICAtLSBjb21iaW5pbmdUYWJsZVRvcD1pbmRleGVzW0lOREVYX0NPTUJJTkVfREFUQV9DT1VOVF0KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5pbmdUYWJsZVRvcCBtYXkgaW5jbHVkZSBvbmUgMTYtYml0IHBhZGRpbmcgdW5pdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIG1ha2Ugc3VyZSB0aGF0IGZjZFRyaWUgaXMgMzItYml0LWFsaWduZWQKKyAgICAgKgorICAgICAqIFRyaWUgZmNkVHJpZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gc2l6ZSBpbiBieXRlcz1pbmRleGVzW0lOREVYX0ZDRF9UUklFX1NJWkVdCisgICAgICoKKyAgICAgKiBUcmllIGF1eFRyaWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHNpemUgaW4gYnl0ZXM9aW5kZXhlc1tJTkRFWF9BVVhfVFJJRV9TSVpFXQorICAgICAqCisgICAgICogY2hhciBjYW5vblN0YXJ0U2V0c1tjYW5vblN0YXJ0U2V0c1RvcF0gICAtLSBjYW5vblN0YXJ0U2V0c1RvcD1pbmRleGVzW0lOREVYX0NBTk9OX1NFVF9DT1VOVF0KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJpYWxpemVkIFVTZXRzLCBzZWUgdXNldC5jCisgICAgICoKKyAgICAgKgorICAgICAqIFRoZSBpbmRleGVzIGFycmF5IGNvbnRhaW5zIGxlbmd0aHMgYW5kIHNpemVzIG9mIHRoZSBmb2xsb3dpbmcgYXJyYXlzIGFuZCBzdHJ1Y3R1cmVzCisgICAgICogYXMgd2VsbCBhcyB0aGUgZm9sbG93aW5nIHZhbHVlczoKKyAgICAgKiAgaW5kZXhlc1tJTkRFWF9DT01CSU5FX0ZXRF9DT1VOVF09Y29tYmluZUZ3ZFRvcAorICAgICAqICAgICAgLS0gb25lIG1vcmUgdGhhbiB0aGUgaGlnaGVzdCBjb21iaW5pbmcgaW5kZXggY29tcHV0ZWQgZm9yIGZvcndhcmQtb25seS1jb21iaW5pbmcgY2hhcmFjdGVycworICAgICAqICBpbmRleGVzW0lOREVYX0NPTUJJTkVfQk9USF9DT1VOVF09Y29tYmluZUJvdGhUb3AtY29tYmluZUZ3ZFRvcAorICAgICAqICAgICAgLS0gbnVtYmVyIG9mIGNvbWJpbmluZyBpbmRleGVzIGNvbXB1dGVkIGZvciBib3RoLXdheXMtY29tYmluaW5nIGNoYXJhY3RlcnMKKyAgICAgKiAgaW5kZXhlc1tJTkRFWF9DT01CSU5FX0JBQ0tfQ09VTlRdPWNvbWJpbmVCYWNrVG9wLWNvbWJpbmVCb3RoVG9wCisgICAgICogICAgICAtLSBudW1iZXIgb2YgY29tYmluaW5nIGluZGV4ZXMgY29tcHV0ZWQgZm9yIGJhY2t3YXJkLW9ubHktY29tYmluaW5nIGNoYXJhY3RlcnMKKyAgICAgKgorICAgICAqICBpbmRleGVzW0lOREVYX01JTl9ORipfTk9fTUFZQkVdICh3aGVyZSAqPXsgQywgRCwgS0MsIEtEIH0pCisgICAgICogICAgICAtLSBmaXJzdCBjb2RlIHBvaW50IHdpdGggYSBxdWljayBjaGVjayBORiogdmFsdWUgb2YgTk8vTUFZQkUKKyAgICAgKgorICAgICAqCisgICAgICogLSBUcmllcworICAgICAqCisgICAgICogVGhlIG1haW4gc3RydWN0dXJlcyBhcmUgdHdvIFRyaWUgdGFibGVzICgiY29tcGFjdCBhcnJheXMiKSwKKyAgICAgKiBlYWNoIHdpdGggb25lIGluZGV4IGFycmF5IGFuZCBvbmUgZGF0YSBhcnJheS4KKyAgICAgKiBTZWUgVHJpZS5oIGFuZCBUcmllLmMuCisgICAgICoKKyAgICAgKgorICAgICAqIC0gVHJpZXMgaW4gdW5vcm0uaWN1CisgICAgICoKKyAgICAgKiBUaGUgZmlyc3QgdHJpZSAobm9ybVRyaWUgYWJvdmUpCisgICAgICogcHJvdmlkZXMgZGF0YSBmb3IgdGhlIE5GKiBxdWljayBjaGVja3MgYW5kIG5vcm1hbGl6YXRpb24uCisgICAgICogVGhlIHNlY29uZCB0cmllIChmY2RUcmllIGFib3ZlKSBwcm92aWRlcyBkYXRhIGp1c3QgZm9yIEZDRCBjaGVja3MuCisgICAgICoKKyAgICAgKgorICAgICAqIC0gbm9ybTMyIGRhdGEgd29yZHMgZnJvbSB0aGUgZmlyc3QgdHJpZQorICAgICAqCisgICAgICogVGhlIG5vcm0zMlRhYmxlIGNvbnRhaW5zIG9uZSAzMi1iaXQgd29yZCAibm9ybTMyIiBwZXIgY29kZSBwb2ludC4KKyAgICAgKiBJdCBjb250YWlucyB0aGUgZm9sbG93aW5nIGJpdCBmaWVsZHM6CisgICAgICogMzEuLjE2ICAgZXh0cmEgZGF0YSBpbmRleCwgRVhUUkFfU0hJRlQgaXMgdXNlZCB0byBzaGlmdCB0aGlzIGZpZWxkIGRvd24KKyAgICAgKiAgICAgICAgICBpZiB0aGlzIGluZGV4IGlzIDxFWFRSQV9JTkRFWF9UT1AgdGhlbiBpdCBpcyBhbiBpbmRleCBpbnRvCisgICAgICogICAgICAgICAgICAgIGV4dHJhRGF0YVtdIHdoZXJlIHZhcmlhYmxlLWxlbmd0aCBub3JtYWxpemF0aW9uIGRhdGEgZm9yIHRoaXMKKyAgICAgKiAgICAgICAgICAgICAgY29kZSBwb2ludCBpcyBmb3VuZAorICAgICAqICAgICAgICAgIGlmIHRoaXMgaW5kZXggaXMgPEVYVFJBX0lOREVYX1RPUCtFWFRSQV9TVVJST0dBVEVfVE9QCisgICAgICogICAgICAgICAgICAgIHRoZW4gdGhpcyBpcyBhIG5vcm0zMiBmb3IgYSBsZWFkaW5nIHN1cnJvZ2F0ZSwgYW5kIHRoZSBpbmRleAorICAgICAqICAgICAgICAgICAgICB2YWx1ZSBpcyB1c2VkIHRvZ2V0aGVyIHdpdGggdGhlIGZvbGxvd2luZyB0cmFpbGluZyBzdXJyb2dhdGUKKyAgICAgKiAgICAgICAgICAgICAgY29kZSB1bml0IGluIHRoZSBzZWNvbmQgdHJpZSBhY2Nlc3MKKyAgICAgKiAgICAgICAgICBpZiB0aGlzIGluZGV4IGlzID49RVhUUkFfSU5ERVhfVE9QK0VYVFJBX1NVUlJPR0FURV9UT1AKKyAgICAgKiAgICAgICAgICAgICAgdGhlbiB0aGlzIGlzIGEgbm9ybTMyIGZvciBhICJzcGVjaWFsIiBjaGFyYWN0ZXIsCisgICAgICogICAgICAgICAgICAgIGkuZS4sIHRoZSBjaGFyYWN0ZXIgaXMgYSBIYW5ndWwgc3lsbGFibGUgb3IgYSBKYW1vCisgICAgICogICAgICAgICAgICAgIHNlZSBFWFRSQV9IQU5HVUwgZXRjLgorICAgICAqICAgICAgICAgIGdlbmVyYWxseSwgaW5zdGVhZCBvZiBleHRyYWN0aW5nIHRoaXMgaW5kZXggZnJvbSB0aGUgbm9ybTMyIGFuZAorICAgICAqICAgICAgICAgICAgICBjb21wYXJpbmcgaXQgd2l0aCB0aGUgYWJvdmUgY29uc3RhbnRzLAorICAgICAqICAgICAgICAgICAgICB0aGUgbm9ybWFsaXphdGlvbiBjb2RlIGNvbXBhcmVzIHRoZSBlbnRpcmUgbm9ybTMyIHZhbHVlCisgICAgICogICAgICAgICAgICAgIHdpdGggTUlOX1NQRUNJQUwsIFNVUlJPR0FURVNfVE9QLCBNSU5fSEFOR1VMIGV0Yy4KKyAgICAgKgorICAgICAqIDE1Li44ICAgIGNvbWJpbmluZyBjbGFzcyAoY2MpIGFjY29yZGluZyB0byBVbmljb2RlRGF0YS50eHQKKyAgICAgKgorICAgICAqICA3Li42ICAgIENPTUJJTkVTX0FOWSBmbGFncywgdXNlZCBpbiBjb21wb3NpdGlvbiB0byBzZWUgaWYgYSBjaGFyYWN0ZXIKKyAgICAgKiAgICAgICAgICAgICAgY29tYmluZXMgd2l0aCBhbnkgZm9sbG93aW5nIG9yIHByZWNlZGluZyBjaGFyYWN0ZXIocykKKyAgICAgKiAgICAgICAgICAgICAgYXQgYWxsCisgICAgICogICAgIDcgICAgQ09NQklORVNfQkFDSworICAgICAqICAgICA2ICAgIENPTUJJTkVTX0ZXRAorICAgICAqCisgICAgICogIDUuLjAgICAgcXVpY2sgY2hlY2sgZmxhZ3MsIHNldCBmb3IgIm5vIiBvciAibWF5YmUiLCB3aXRoIHNlcGFyYXRlIGZsYWdzIGZvcgorICAgICAqICAgICAgICAgICAgICBlYWNoIG5vcm1hbGl6YXRpb24gZm9ybQorICAgICAqICAgICAgICAgICAgICB0aGUgaGlnaGVyIGJpdHMgYXJlICJtYXliZSIgZmxhZ3M7IGZvciBORipEIHRoZXJlIGFyZSBubyBzdWNoIGZsYWdzCisgICAgICogICAgICAgICAgICAgIHRoZSBsb3dlciBiaXRzIGFyZSAibm8iIGZsYWdzIGZvciBhbGwgZm9ybXMsIGluIHRoZSBzYW1lIG9yZGVyCisgICAgICogICAgICAgICAgICAgIGFzIHRoZSAibWF5YmUiIGZsYWdzLAorICAgICAqICAgICAgICAgICAgICB3aGljaCBpcyAoTVNCIHRvIExTQik6IE5GS0QgTkZEIE5GS0MgTkZDCisgICAgICogIDUuLjQgICAgUUNfQU5ZX01BWUJFCisgICAgICogIDMuLjAgICAgUUNfQU5ZX05PCisgICAgICogICAgICAgICAgICAgIHNlZSBmdXJ0aGVyIHJlbGF0ZWQgY29uc3RhbnRzCisgICAgICoKKyAgICAgKgorICAgICAqIC0gRXh0cmEgZGF0YSBwZXIgY29kZSBwb2ludAorICAgICAqCisgICAgICogIkV4dHJhIGRhdGEiIGlzIHJlZmVyZW5jZWQgYnkgdGhlIGluZGV4IGluIG5vcm0zMi4KKyAgICAgKiBJdCBpcyB2YXJpYWJsZS1sZW5ndGggZGF0YS4gSXQgaXMgb25seSBwcmVzZW50LCBhbmQgb25seSB0aG9zZSBwYXJ0cworICAgICAqIG9mIGl0IGFyZSwgYXMgbmVlZGVkIGZvciBhIGdpdmVuIGNoYXJhY3Rlci4KKyAgICAgKiBUaGUgbm9ybTMyIGV4dHJhIGRhdGEgaW5kZXggaXMgYWRkZWQgdG8gdGhlIGJlZ2lubmluZyBvZiBleHRyYURhdGFbXQorICAgICAqIHRvIGdldCB0byBhIHZlY3RvciBvZiAxNi1iaXQgd29yZHMgd2l0aCBkYXRhIGF0IHRoZSBmb2xsb3dpbmcgb2Zmc2V0czoKKyAgICAgKgorICAgICAqIFstMV0gICAgIENvbWJpbmluZyBpbmRleCBmb3IgY29tcG9zaXRpb24uCisgICAgICogICAgICAgICAgICAgIFN0b3JlZCBvbmx5IGlmIG5vcm0zMiZDT01CSU5FU19BTlkgLgorICAgICAqIFswXSAgICAgIExlbmd0aHMgb2YgdGhlIGNhbm9uaWNhbCBhbmQgY29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uIHN0cmluZ3MuCisgICAgICogICAgICAgICAgICAgIFN0b3JlZCBvbmx5IGlmIHRoZXJlIGFyZSBkZWNvbXBvc2l0aW9ucywgaS5lLiwKKyAgICAgKiAgICAgICAgICAgICAgaWYgbm9ybTMyJihRQ19ORkR8UUNfTkZLRCkKKyAgICAgKiAgICAgICAgICBIaWdoIGJ5dGU6IGxlbmd0aCBvZiBORktELCBvciAwIGlmIG5vbmUKKyAgICAgKiAgICAgICAgICBMb3cgYnl0ZTogbGVuZ3RoIG9mIE5GRCwgb3IgMCBpZiBub25lCisgICAgICogICAgICAgICAgRWFjaCBsZW5ndGggYnl0ZSBhbHNvIGhhcyBhbm90aGVyIGZsYWc6CisgICAgICogICAgICAgICAgICAgIEJpdCA3IG9mIGEgbGVuZ3RoIGJ5dGUgaXMgc2V0IGlmIHRoZXJlIGFyZSBub24temVybworICAgICAqICAgICAgICAgICAgICBjb21iaW5pbmcgY2xhc3NlcyAoY2MncykgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXNwZWN0aXZlCisgICAgICogICAgICAgICAgICAgIGRlY29tcG9zaXRpb24uIElmIHRoaXMgZmxhZyBpcyBzZXQsIHRoZW4gdGhlIGRlY29tcG9zaXRpb24KKyAgICAgKiAgICAgICAgICAgICAgaXMgcHJlY2VkZWQgYnkgYSAxNi1iaXQgd29yZCB0aGF0IGNvbnRhaW5zIHRoZQorICAgICAqICAgICAgICAgICAgICBsZWFkaW5nIGFuZCB0cmFpbGluZyBjYydzLgorICAgICAqICAgICAgICAgICAgICBCaXRzIDYuLjAgb2YgYSBsZW5ndGggYnl0ZSBhcmUgdGhlIGxlbmd0aCBvZiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgZGVjb21wb3NpdGlvbiBzdHJpbmcsIG5vdCBjb3VudGluZyB0aGUgY2Mgd29yZC4KKyAgICAgKiBbMS4ubl0gICBORkQKKyAgICAgKiBbbisxLi5dICBORktECisgICAgICoKKyAgICAgKiBFYWNoIG9mIHRoZSB0d28gZGVjb21wb3NpdGlvbnMgY29uc2lzdHMgb2YgdXAgdG8gdHdvIHBhcnRzOgorICAgICAqIC0gVGhlIDE2LWJpdCB3b3JkcyB3aXRoIHRoZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBjYydzLgorICAgICAqICAgVGhpcyBpcyBvbmx5IHN0b3JlZCBpZiBiaXQgNyBvZiB0aGUgY29ycmVzcG9uZGluZyBsZW5ndGggYnl0ZQorICAgICAqICAgaXMgc2V0LiBJbiB0aGlzIGNhc2UsIGF0IGxlYXN0IG9uZSBvZiB0aGUgY2MncyBpcyBub3QgemVyby4KKyAgICAgKiAgIEhpZ2ggYnl0ZTogbGVhZGluZyBjYz09Y2Mgb2YgdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gdGhlIGRlY29tcG9zaXRpb24gc3RyaW5nCisgICAgICogICBMb3cgYnl0ZTogdHJhaWxpbmcgY2M9PWNjIG9mIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gdGhlIGRlY29tcG9zaXRpb24gc3RyaW5nCisgICAgICogLSBUaGUgZGVjb21wb3NpdGlvbiBzdHJpbmcgaW4gVVRGLTE2LCB3aXRoIGxlbmd0aCBjb2RlIHVuaXRzLgorICAgICAqCisgICAgICoKKyAgICAgKiAtIENvbWJpbmluZyBpbmRleGVzIGFuZCBjb21iaW5pbmdUYWJsZVtdCisgICAgICoKKyAgICAgKiBDb21iaW5pbmcgaW5kZXhlcyBhcmUgc3RvcmVkIGF0IHRoZSBbLTFdIG9mZnNldCBvZiB0aGUgZXh0cmEgZGF0YQorICAgICAqIGlmIHRoZSBjaGFyYWN0ZXIgY29tYmluZXMgZm9yd2FyZCBvciBiYWNrd2FyZCB3aXRoIGFueSBvdGhlciBjaGFyYWN0ZXJzLgorICAgICAqIFRoZXkgYXJlIHVzZWQgZm9yIChyZSljb21wb3NpdGlvbiBpbiBORipDLgorICAgICAqIFZhbHVlcyBvZiBjb21iaW5pbmcgaW5kZXhlcyBhcmUgYXJyYW5nZWQgYWNjb3JkaW5nIHRvIHdoZXRoZXIgYSBjaGFyYWN0ZXIKKyAgICAgKiBjb21iaW5lcyBmb3J3YXJkLCBiYWNrd2FyZCwgb3IgYm90aCB3YXlzOgorICAgICAqICAgIGZvcndhcmQtb25seSA8IGJvdGggd2F5cyA8IGJhY2t3YXJkLW9ubHkKKyAgICAgKgorICAgICAqIFRoZSBpbmRleCB2YWx1ZXMgZm9yIGZvcndhcmQtb25seSBhbmQgYm90aC13YXlzIGNvbWJpbmluZyBjaGFyYWN0ZXJzCisgICAgICogYXJlIGluZGV4ZXMgaW50byB0aGUgY29tYmluaW5nVGFibGVbXS4KKyAgICAgKiBUaGUgaW5kZXggdmFsdWVzIGZvciBiYWNrd2FyZC1vbmx5IGNvbWJpbmluZyBjaGFyYWN0ZXJzIGFyZSBzaW1wbHkKKyAgICAgKiBpbmNyZW1lbnRlZCBmcm9tIHRoZSBwcmVjZWRpbmcgaW5kZXggdmFsdWVzIHRvIGJlIHVuaXF1ZS4KKyAgICAgKgorICAgICAqIEluIHRoZSBjb21iaW5pbmdUYWJsZVtdLCBhIHZhcmlhYmxlLWxlbmd0aCBsaXN0CisgICAgICogb2YgdmFyaWFibGUtbGVuZ3RoIChiYWNrLWluZGV4LCBjb2RlIHBvaW50KSBwYWlyIGVudHJpZXMgaXMgc3RvcmVkCisgICAgICogZm9yIGVhY2ggZm9yd2FyZC1jb21iaW5pbmcgY2hhcmFjdGVyLgorICAgICAqCisgICAgICogVGhlc2UgYmFjay1pbmRleGVzIGFyZSB0aGUgY29tYmluaW5nIGluZGV4ZXMgb2YgYm90aC13YXlzIG9yIGJhY2t3YXJkLW9ubHkKKyAgICAgKiBjb21iaW5pbmcgY2hhcmFjdGVycyB0aGF0IHRoZSBmb3J3YXJkLWNvbWJpbmluZyBjaGFyYWN0ZXIgY29tYmluZXMgd2l0aC4KKyAgICAgKgorICAgICAqIEVhY2ggbGlzdCBpcyBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIG9mIGJhY2staW5kZXhlcy4KKyAgICAgKiBFYWNoIGxpc3QgaXMgdGVybWluYXRlZCB3aXRoIHRoZSBsYXN0IGJhY2staW5kZXggaGF2aW5nIGJpdCAxNSBzZXQuCisgICAgICoKKyAgICAgKiBFYWNoIHBhaXIgKGJhY2staW5kZXgsIGNvZGUgcG9pbnQpIHRha2VzIHVwIGVpdGhlciAyIG9yIDMKKyAgICAgKiAxNi1iaXQgd29yZHMuCisgICAgICogVGhlIGZpcnN0IHdvcmQgb2YgYSBsaXN0IGVudHJ5IGlzIHRoZSBiYWNrLWluZGV4LCB3aXRoIGl0cyBiaXQgMTUgc2V0IGlmCisgICAgICogdGhpcyBpcyB0aGUgbGFzdCBwYWlyIGluIHRoZSBsaXN0LgorICAgICAqCisgICAgICogVGhlIHNlY29uZCB3b3JkIGNvbnRhaW5zIGZsYWdzIGluIGJpdHMgMTUuLjEzIHRoYXQgZGV0ZXJtaW5lCisgICAgICogaWYgdGhlcmUgaXMgYSB0aGlyZCB3b3JkIGFuZCBob3cgdGhlIGNvbWJpbmVkIGNoYXJhY3RlciBpcyBlbmNvZGVkOgorICAgICAqIDE1ICAgc2V0IGlmIHRoZXJlIGlzIGEgdGhpcmQgd29yZCBpbiB0aGlzIGxpc3QgZW50cnkKKyAgICAgKiAxNCAgIHNldCBpZiB0aGUgcmVzdWx0IGlzIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIKKyAgICAgKiAxMyAgIHNldCBpZiB0aGUgcmVzdWx0IGl0c2VsZiBjb21iaW5lcyBmb3J3YXJkCisgICAgICoKKyAgICAgKiBBY2NvcmRpbmcgdG8gdGhlc2UgYml0cyAxNS4uMTQgb2YgdGhlIHNlY29uZCB3b3JkLAorICAgICAqIHRoZSByZXN1bHQgY2hhcmFjdGVyIGlzIGVuY29kZWQgYXMgZm9sbG93czoKKyAgICAgKiAwMCBvciAwMSBUaGUgcmVzdWx0IGlzIDw9MHgxZmZmIGFuZCBzdG9yZWQgaW4gYml0cyAxMi4uMCBvZgorICAgICAqICAgICAgICAgIHRoZSBzZWNvbmQgd29yZC4KKyAgICAgKiAxMCAgICAgICBUaGUgcmVzdWx0IGlzIDB4MjAwMC4uMHhmZmZmIGFuZCBzdG9yZWQgaW4gdGhlIHRoaXJkIHdvcmQuCisgICAgICogICAgICAgICAgQml0cyAxMi4uMCBvZiB0aGUgc2Vjb25kIHdvcmQgYXJlIG5vdCB1c2VkLgorICAgICAqIDExICAgICAgIFRoZSByZXN1bHQgaXMgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3Rlci4KKyAgICAgKiAgICAgICAgICBCaXRzIDkuLjAgb2YgdGhlIGxlYWRpbmcgc3Vycm9nYXRlIGFyZSBpbiBiaXRzIDkuLjAgb2YKKyAgICAgKiAgICAgICAgICB0aGUgc2Vjb25kIHdvcmQuCisgICAgICogICAgICAgICAgQWRkIDB4ZDgwMCB0byB0aGVzZSBiaXRzIHRvIGdldCB0aGUgY29tcGxldGUgc3Vycm9nYXRlLgorICAgICAqICAgICAgICAgIEJpdHMgMTIuLjEwIG9mIHRoZSBzZWNvbmQgd29yZCBhcmUgbm90IHVzZWQuCisgICAgICogICAgICAgICAgVGhlIHRyYWlsaW5nIHN1cnJvZ2F0ZSBpcyBzdG9yZWQgaW4gdGhlIHRoaXJkIHdvcmQuCisgICAgICoKKyAgICAgKgorICAgICAqIC0gRkNEIHRyaWUKKyAgICAgKgorICAgICAqIFRoZSBGQ0QgdHJpZSBpcyB2ZXJ5IHNpbXBsZS4KKyAgICAgKiBJdCBpcyBhIGZvbGRlZCB0cmllIHdpdGggMTYtYml0IGRhdGEgd29yZHMuCisgICAgICogSW4gZWFjaCB3b3JkLCB0aGUgaGlnaCBieXRlIGNvbnRhaW5zIHRoZSBsZWFkaW5nIGNjIG9mIHRoZSBjaGFyYWN0ZXIsCisgICAgICogYW5kIHRoZSBsb3cgYnl0ZSBjb250YWlucyB0aGUgdHJhaWxpbmcgY2Mgb2YgdGhlIGNoYXJhY3Rlci4KKyAgICAgKiBUaGVzZSBjYydzIGFyZSB0aGUgY2MncyBvZiB0aGUgZmlyc3QgYW5kIGxhc3QgY29kZSBwb2ludHMgaW4gdGhlCisgICAgICogY2Fub25pY2FsIGRlY29tcG9zaXRpb24gb2YgdGhlIGNoYXJhY3Rlci4KKyAgICAgKgorICAgICAqIFNpbmNlIGFsbCAxNiBiaXRzIGFyZSB1c2VkIGZvciBjYydzLCBsZWFkIHN1cnJvZ2F0ZXMgbXVzdCBiZSB0ZXN0ZWQKKyAgICAgKiBieSBjaGVja2luZyB0aGUgY29kZSB1bml0IGluc3RlYWQgb2YgdGhlIHRyaWUgZGF0YS4KKyAgICAgKiBUaGlzIGlzIGRvbmUgb25seSBpZiB0aGUgMTYtYml0IGRhdGEgd29yZCBpcyBub3QgemVyby4KKyAgICAgKiBJZiB0aGUgY29kZSB1bml0IGlzIGEgbGVhZGluZyBzdXJyb2dhdGUgYW5kIHRoZSBkYXRhIHdvcmQgaXMgbm90IHplcm8sCisgICAgICogdGhlbiBpbnN0ZWFkIG9mIGNjJ3MgaXQgY29udGFpbnMgdGhlIG9mZnNldCBmb3IgdGhlIHNlY29uZCB0cmllIGxvb2t1cC4KKyAgICAgKgorICAgICAqCisgICAgICogLSBBdXhpbGlhcnkgdHJpZSBhbmQgZGF0YQorICAgICAqCisgICAgICoKKyAgICAgKiBUaGUgYXV4aWxpYXJ5IDE2LWJpdCB0cmllIGNvbnRhaW5zIGRhdGEgZm9yIGFkZGl0aW9uYWwgcHJvcGVydGllcy4KKyAgICAgKiBCaXRzCisgICAgICogMTUuLjEzICAgcmVzZXJ2ZWQKKyAgICAgKiAgICAgMTIgICBub3QgTkZDX1NraXBwYWJsZSAoZikgKGZvcm1hdFZlcnNpb24+PTIuMikKKyAgICAgKiAgICAgMTEgICBmbGFnOiBub3QgYSBzYWZlIHN0YXJ0ZXIgZm9yIGNhbm9uaWNhbCBjbG9zdXJlCisgICAgICogICAgIDEwICAgY29tcG9zaXRpb24gZXhjbHVzaW9uCisgICAgICogIDkuLiAwICAgaW5kZXggaW50byBleHRyYURhdGFbXSB0byBGQ19ORktDX0Nsb3N1cmUgc3RyaW5nCisgICAgICogICAgICAgICAgKG5vdCBmb3IgbGVhZCBzdXJyb2dhdGUpLAorICAgICAqICAgICAgICAgIG9yIGxlYWQgc3Vycm9nYXRlIG9mZnNldCAoZm9yIGxlYWQgc3Vycm9nYXRlLCBpZiA5Li4wIG5vdCB6ZXJvKQorICAgICAqIAorICAgICAqIENvbmRpdGlvbnMgZm9yICJORiogU2tpcHBhYmxlIiBmcm9tIE1hcmsgRGF2aXMnIGNvbS5pYm0udGV4dC5VQ0QuTkZTa2lwcGFibGU6CisgICAgICogKHVzZWQgaW4gTm9ybWFsaXplclRyYW5zbGl0ZXJhdG9yKQorICAgICAqCisgICAgICogQSBza2lwcGFibGUgY2hhcmFjdGVyIGlzCisgICAgICogYSkgdW5hc3NpZ25lZCwgb3IgQUxMIG9mIHRoZSBmb2xsb3dpbmc6CisgICAgICogYikgb2YgY29tYmluaW5nIGNsYXNzIDAuCisgICAgICogYykgbm90IGRlY29tcG9zZWQgYnkgdGhpcyBub3JtYWxpemF0aW9uIGZvcm0uCisgICAgICogQU5EIGlmIE5GQyBvciBORktDLAorICAgICAqIGQpIGNhbiBuZXZlciBjb21wb3NlIHdpdGggYSBwcmV2aW91cyBjaGFyYWN0ZXIuCisgICAgICogZSkgY2FuIG5ldmVyIGNvbXBvc2Ugd2l0aCBhIGZvbGxvd2luZyBjaGFyYWN0ZXIuCisgICAgICogZikgY2FuIG5ldmVyIGNoYW5nZSBpZiBhbm90aGVyIGNoYXJhY3RlciBpcyBhZGRlZC4KKyAgICAgKiAgICBFeGFtcGxlOiBhLWJyZXZlIG1pZ2h0IHNhdGlzZnkgYWxsIGJ1dCBmLCBidXQgaWYgeW91CisgICAgICogICAgYWRkIGFuIG9nb25layBpdCBjaGFuZ2VzIHRvIGEtb2dvbmVrICsgYnJldmUKKyAgICAgKgorICAgICAqIGEpLi5lKSBtdXN0IGJlIHRlc3RlZCBmcm9tIG5vcm0zMi4KKyAgICAgKiBTaW5jZSBmKSBpcyBtb3JlIGNvbXBsaWNhdGVkLCB0aGUgKG5vdC0pTkZDX1NraXBwYWJsZSBmbGFnIChmKSBpcyBidWlsdAorICAgICAqIGludG8gdGhlIGF1eGlsaWFyeSB0cmllLgorICAgICAqIFRoZSBzYW1lIGJpdCBpcyB1c2VkIGZvciBORkMgYW5kIE5GS0M7IChjKSBkaWZmZXJzIGZvciB0aGVtLgorICAgICAqIEFzIHVzdWFsLCB3ZSBidWlsZCB0aGUgIm5vdCBza2lwcGFibGUiIGZsYWdzIHNvIHRoYXQgdW5hc3NpZ25lZAorICAgICAqIGNvZGUgcG9pbnRzIGdldCBhIDAgYml0LgorICAgICAqIFRoaXMgYml0IGlzIG9ubHkgdmFsaWQgYWZ0ZXIgKGEpLi4oZSkgdGVzdCBGQUxTRTsgdGVzdCBORkRfTk8gYmVmb3JlIChmKSBhcyB3ZWxsLgorICAgICAqIFRlc3QgSGFuZ3VsIExWIHN5bGxhYmxlcyBlbnRpcmVseSBpbiBjb2RlLgorICAgICAqICAgCisgICAgICogCisgICAgICogLSBGQ19ORktDX0Nsb3N1cmUgc3RyaW5ncyBpbiBleHRyYURhdGFbXQorICAgICAqCisgICAgICogU3RyaW5ncyBhcmUgZWl0aGVyIHN0b3JlZCBhcyBhIHNpbmdsZSBjb2RlIHVuaXQgb3IgYXMgdGhlIGxlbmd0aAorICAgICAqIGZvbGxvd2VkIGJ5IHRoYXQgbWFueSB1bml0cy4KKyAgICAgKiAKKyAgICAgKiAtIHN0cnVjdHVyZSBpbnNpZGUgY2Fub25TdGFydFNldHNbXQorICAgICAqCisgICAgICogVGhpcyBhcnJheSBtYXBzIGZyb20gY29kZSBwb2ludHMgYyB0byBzZXRzIG9mIGNvZGUgcG9pbnRzIChVU2VyaWFsaXplZFNldCkuCisgICAgICogVGhlIHJlc3VsdCBzZXRzIGFyZSB0aGUgY29kZSBwb2ludHMgd2hvc2UgY2Fub25pY2FsIGRlY29tcG9zaXRpb25zIHN0YXJ0CisgICAgICogd2l0aCBjLgorICAgICAqCisgICAgICogY2Fub25TdGFydFNldHNbXSBjb250YWlucyB0aGUgZm9sbG93aW5nIHN1Yi1hcnJheXM6CisgICAgICoKKyAgICAgKiBpbmRleGVzW19OT1JNX1NFVF9JTkRFWF9UT1BdCisgICAgICogICAtIGNvbnRhaW5zIGxlbmd0aHMgb2Ygc3ViLWFycmF5cyBldGMuCisgICAgICoKKyAgICAgKiBzdGFydFNldHNbaW5kZXhlc1tfTk9STV9TRVRfSU5ERVhfQ0FOT05fU0VUU19MRU5HVEhdLV9OT1JNX1NFVF9JTkRFWF9UT1BdCisgICAgICogICAtIGNvbnRhaW5zIHNlcmlhbGl6ZWQgc2V0cyAoVVNlcmlhbGl6ZWRTZXQpIG9mIGNhbm9uaWNhbCBzdGFydGVycyBmb3IKKyAgICAgKiAgICAgZW51bWVyYXRpbmcgY2Fub25pY2FsbHkgZXF1aXZhbGVudCBzdHJpbmdzCisgICAgICogICAgIGluZGV4ZXNbX05PUk1fU0VUX0lOREVYX0NBTk9OX1NFVFNfTEVOR1RIXSBpbmNsdWRlcyBfTk9STV9TRVRfSU5ERVhfVE9QCisgICAgICogICAgIGZvciBkZXRhaWxzIGFib3V0IHRoZSBzdHJ1Y3R1cmUgc2VlIHVzZXQuYworICAgICAqCisgICAgICogYm1wVGFibGVbaW5kZXhlc1tfTk9STV9TRVRfSU5ERVhfQ0FOT05fQk1QX1RBQkxFX0xFTkdUSF1dCisgICAgICogICAtIGEgc29ydGVkIHNlYXJjaCB0YWJsZSBmb3IgQk1QIGNvZGUgcG9pbnRzIHdob3NlIHJlc3VsdHMgYXJlCisgICAgICogICAgIGVpdGhlciBpbmRleGVzIHRvIFVTZXJpYWxpemVkU2V0cyBvciBzaW5nbGUgY29kZSBwb2ludHMgZm9yCisgICAgICogICAgIHNpbmdsZS1jb2RlIHBvaW50IHNldHM7CisgICAgICogICAgIGVhY2ggZW50cnkgaXMgYSBwYWlyIG9mIHsgY29kZSBwb2ludCwgcmVzdWx0IH0gd2l0aCByZXN1bHQ9KGJpbmFyeSkgeXkgeHh4eHh4IHh4eHh4eHh4CisgICAgICogICAgIGlmIHl5PT0wMSB0aGVuIHRoZXJlIGlzIGEgVVNlcmlhbGl6ZWRTZXQgYXQgY2Fub25TdGFydFNldHMreAorICAgICAqICAgICBlbHNlIGJ1aWxkIGEgVVNlcmlhbGl6ZWRTZXQgd2l0aCByZXN1bHQgYXMgdGhlIHNpbmdsZSBjb2RlIHBvaW50CisgICAgICoKKyAgICAgKiBzdXBwVGFibGVbaW5kZXhlc1tfTk9STV9TRVRfSU5ERVhfQ0FOT05fU1VQUF9UQUJMRV9MRU5HVEhdXQorICAgICAqICAgLSBhIHNvcnRlZCBzZWFyY2ggdGFibGUgZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgd2hvc2UgcmVzdWx0cyBhcmUKKyAgICAgKiAgICAgZWl0aGVyIGluZGV4ZXMgdG8gVVNlcmlhbGl6ZWRTZXRzIG9yIHNpbmdsZSBjb2RlIHBvaW50cyBmb3IKKyAgICAgKiAgICAgc2luZ2xlLWNvZGUgcG9pbnQgc2V0czsKKyAgICAgKiAgICAgZWFjaCBlbnRyeSBpcyBhIHRyaXBsZXQgb2YgeyBoaWdoMTYoY3ApLCBsb3cxNihjcCksIHJlc3VsdCB9CisgICAgICogICAgIGVhY2ggY29kZSBwb2ludCdzIGhpZ2gtd29yZCBtYXkgY29udGFpbiBleHRyYSBkYXRhIGluIGJpdHMgMTUuLjU6CisgICAgICogICAgIGlmIHRoZSBoaWdoIHdvcmQgaGFzIGJpdCAxNSBzZXQsIHRoZW4gYnVpbGQgYSBzZXQgd2l0aCBhIHNpbmdsZSBjb2RlIHBvaW50CisgICAgICogICAgIHdoaWNoIGlzICgoKGhpZ2gxNihjcCkmMHgxZjAwKTw8OCl8cmVzdWx0OworICAgICAqICAgICBlbHNlIHRoZXJlIGlzIGEgVVNlcmlhbGl6ZWRTZXQgYXQgY2Fub25TdGFydFNldHMrcmVzdWx0CisgICAgICovCitmaW5hbCBjbGFzcyBOb3JtYWxpemVyRGF0YVJlYWRlciBpbXBsZW1lbnRzIElDVUJpbmFyeS5BdXRoZW50aWNhdGUgeworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGJvb2xlYW4gZGVidWcgPSBJQ1VEZWJ1Zy5lbmFibGVkKCJOb3JtYWxpemVyRGF0YVJlYWRlciIpOworICAgIAorICAgLyoqCisgICAgKiA8cD5Qcm90ZWN0ZWQgY29uc3RydWN0b3IuPC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIElDVSB1cHJvcC5kYXQgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3cgaWYgZGF0YSBmaWxlIGZhaWxzIGF1dGhlbnRpY2F0aW9uIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIE5vcm1hbGl6ZXJEYXRhUmVhZGVyKElucHV0U3RyZWFtIGlucHV0U3RyZWFtKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb257CisgICAgICAgIGlmKGRlYnVnKSBTeXN0ZW0ub3V0LnByaW50bG4oIkJ5dGVzIGluIGlucHV0U3RyZWFtICIgKyBpbnB1dFN0cmVhbS5hdmFpbGFibGUoKSk7CisgICAgICAgIAorICAgICAgICB1bmljb2RlVmVyc2lvbiA9IElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0U3RyZWFtLCBEQVRBX0ZPUk1BVF9JRCwgdGhpcyk7CisgICAgICAgIAorICAgICAgICBpZihkZWJ1ZykgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlcyBsZWZ0IGluIGlucHV0U3RyZWFtICIgK2lucHV0U3RyZWFtLmF2YWlsYWJsZSgpKTsKKyAgICAgICAgCisgICAgICAgIGRhdGFJbnB1dFN0cmVhbSA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICAKKyAgICAgICAgaWYoZGVidWcpIFN5c3RlbS5vdXQucHJpbnRsbigiQnl0ZXMgbGVmdCBpbiBkYXRhSW5wdXRTdHJlYW0gIiArZGF0YUlucHV0U3RyZWFtLmF2YWlsYWJsZSgpKTsKKyAgICB9CisgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHByb3RlY3RlZCBpbnRbXSByZWFkSW5kZXhlcyhpbnQgbGVuZ3RoKXRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaW50W10gaW5kZXhlcyA9IG5ldyBpbnRbbGVuZ3RoXTsKKyAgICAgICAgLy9SZWFkIHRoZSBpbmRleGVzCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDxsZW5ndGggOyBpKyspIHsKKyAgICAgICAgICAgICBpbmRleGVzW2ldID0gZGF0YUlucHV0U3RyZWFtLnJlYWRJbnQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW5kZXhlczsKKyAgICB9IAorICAgIC8qKgorICAgICogPHA+UmVhZHMgdW5vcm0uaWN1LCBwYXJzZSBpdCBpbnRvIGJsb2NrcyBvZiBkYXRhIHRvIGJlIHN0b3JlZCBpbgorICAgICogTm9ybWFsaXplckltcGwuPC9QCisgICAgKiBAcGFyYW0gbm9ybUJ5dGVzCisgICAgKiBAcGFyYW0gZmNkQnl0ZXMKKyAgICAqIEBwYXJhbSBhdXhCeXRlcworICAgICogQHBhcmFtIGV4dHJhRGF0YQorICAgICogQHBhcmFtIGNvbWJpbmluZ1RhYmxlCisgICAgKiBAcGFyYW0gY2Fub25TdGFydFNldHMKKyAgICAqIEBleGNlcHRpb24gdGhyb3duIHdoZW4gZGF0YSByZWFkaW5nIGZhaWxzCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCByZWFkKGJ5dGVbXSBub3JtQnl0ZXMsIGJ5dGVbXSBmY2RCeXRlcywgYnl0ZVtdIGF1eEJ5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGV4dHJhRGF0YSwgY2hhcltdIGNvbWJpbmluZ1RhYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFtdIGNhbm9uU3RhcnRTZXRzKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbnsKKworICAgICAgICAgLy9SZWFkIHRoZSBieXRlcyB0aGF0IG1ha2UgdXAgdGhlIG5vcm1UcmllICAgICAKKyAgICAgICAgIGRhdGFJbnB1dFN0cmVhbS5yZWFkKG5vcm1CeXRlcyk7CisgICAgICAgIAorICAgICAgICAgLy9ub3JtVHJpZVN0cmVhbT0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKG5vcm1CeXRlcyk7CisKKyAgICAgICAgIC8vUmVhZCB0aGUgZXh0cmEgZGF0YQorICAgICAgICAgZm9yKGludCBpPTA7aTxleHRyYURhdGEubGVuZ3RoO2krKyl7CisgICAgICAgICAgICAgZXh0cmFEYXRhW2ldPWRhdGFJbnB1dFN0cmVhbS5yZWFkQ2hhcigpOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICAvL1JlYWQgdGhlIGNvbWJpbmluZyBjbGFzcyB0YWJsZQorICAgICAgICAgZm9yKGludCBpPTA7IGk8Y29tYmluaW5nVGFibGUubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgIGNvbWJpbmluZ1RhYmxlW2ldPWRhdGFJbnB1dFN0cmVhbS5yZWFkQ2hhcigpOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICAvL1JlYWQgdGhlIGZjZFRyaWUKKyAgICAgICAgIGRhdGFJbnB1dFN0cmVhbS5yZWFkKGZjZEJ5dGVzKTsKKyAgICAgICAgIAorICAgICAgICAgCisgICAgICAgICAvL1JlYWQgdGhlIEF1eFRyaWUgICAgICAgICAKKyAgICAgICAgZGF0YUlucHV0U3RyZWFtLnJlYWQoYXV4Qnl0ZXMpOworICAgICAgICAKKyAgICAgICAgLy9SZWFkIHRoZSBjYW5vbmljYWwgc3RhcnQgc2V0cworICAgICAgICBpbnRbXSBjYW5vblN0YXJ0U2V0c0luZGV4ZXMgPSBuZXcgaW50W05vcm1hbGl6ZXJJbXBsLlNFVF9JTkRFWF9UT1BdOworICAgICAgICAKKyAgICAgICAgZm9yKGludCBpPTA7IGk8Y2Fub25TdGFydFNldHNJbmRleGVzLmxlbmd0aDsgaSsrKXsKKyAgICAgICAgICAgICBjYW5vblN0YXJ0U2V0c0luZGV4ZXNbaV09ZGF0YUlucHV0U3RyZWFtLnJlYWRDaGFyKCk7CisgICAgICAgICB9CisgICAgICAgIAorICAgICAgICBjaGFyW10gc3RhcnRTZXRzID0gbmV3IGNoYXJbY2Fub25TdGFydFNldHNJbmRleGVzW05vcm1hbGl6ZXJJbXBsLlNFVF9JTkRFWF9DQU5PTl9TRVRTX0xFTkdUSF0tTm9ybWFsaXplckltcGwuU0VUX0lOREVYX1RPUF07CisgICAgICAgIAorICAgICAgICBmb3IoaW50IGk9MDsgaTxzdGFydFNldHMubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgIHN0YXJ0U2V0c1tpXT1kYXRhSW5wdXRTdHJlYW0ucmVhZENoYXIoKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGNoYXJbXSBibXBUYWJsZSAgPSBuZXcgY2hhcltjYW5vblN0YXJ0U2V0c0luZGV4ZXNbTm9ybWFsaXplckltcGwuU0VUX0lOREVYX0NBTk9OX0JNUF9UQUJMRV9MRU5HVEhdXTsKKyAgICAgICAgZm9yKGludCBpPTA7IGk8Ym1wVGFibGUubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgIGJtcFRhYmxlW2ldPWRhdGFJbnB1dFN0cmVhbS5yZWFkQ2hhcigpOworICAgICAgICAgfSAgICAgICAgCisgICAgICAgIGNoYXJbXSBzdXBwVGFibGUgPSBuZXcgY2hhcltjYW5vblN0YXJ0U2V0c0luZGV4ZXNbTm9ybWFsaXplckltcGwuU0VUX0lOREVYX0NBTk9OX1NVUFBfVEFCTEVfTEVOR1RIXV07CisgICAgICAgIGZvcihpbnQgaT0wOyBpPHN1cHBUYWJsZS5sZW5ndGg7IGkrKyl7CisgICAgICAgICAgICAgc3VwcFRhYmxlW2ldPWRhdGFJbnB1dFN0cmVhbS5yZWFkQ2hhcigpOworICAgICAgICAgfQorICAgICAgICAgY2Fub25TdGFydFNldHNbTm9ybWFsaXplckltcGwuQ0FOT05fU0VUX0lORElDSUVTX0lOREVYICBdID0gY2Fub25TdGFydFNldHNJbmRleGVzOworICAgICAgICAgY2Fub25TdGFydFNldHNbTm9ybWFsaXplckltcGwuQ0FOT05fU0VUX1NUQVJUX1NFVFNfSU5ERVhdID0gc3RhcnRTZXRzOworICAgICAgICAgY2Fub25TdGFydFNldHNbTm9ybWFsaXplckltcGwuQ0FOT05fU0VUX0JNUF9UQUJMRV9JTkRFWCAgICBdID0gYm1wVGFibGU7CisgICAgICAgICBjYW5vblN0YXJ0U2V0c1tOb3JtYWxpemVySW1wbC5DQU5PTl9TRVRfU1VQUF9UQUJMRV9JTkRFWF0gPSBzdXBwVGFibGU7ICAgICAgICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyBieXRlW10gZ2V0RGF0YUZvcm1hdFZlcnNpb24oKXsKKyAgICAgICAgcmV0dXJuIERBVEFfRk9STUFUX1ZFUlNJT047CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHZlcnNpb25bMF0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlswXSAKKyAgICAgICAgICAgICAgICYmIHZlcnNpb25bMl0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlsyXSAKKyAgICAgICAgICAgICAgICYmIHZlcnNpb25bM10gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlszXTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJ5dGVbXSBnZXRVbmljb2RlVmVyc2lvbigpeworICAgICAgICByZXR1cm4gdW5pY29kZVZlcnNpb247ICAgIAorICAgIH0KKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKworICAgIC8qKgorICAgICogSUNVIGRhdGEgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqLworICAgIHByaXZhdGUgRGF0YUlucHV0U3RyZWFtIGRhdGFJbnB1dFN0cmVhbTsKKyAgICAKKyAgICBwcml2YXRlIGJ5dGVbXSB1bmljb2RlVmVyc2lvbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogRmlsZSBmb3JtYXQgdmVyc2lvbiB0aGF0IHRoaXMgY2xhc3MgdW5kZXJzdGFuZHMuCisgICAgKiBObyBndWFyYW50ZWVzIGFyZSBtYWRlIGlmIGEgb2xkZXIgdmVyc2lvbiBpcyB1c2VkCisgICAgKiBzZWUgc3RvcmUuYyBvZiBnZW5ub3JtIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB2YWx1ZXMKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFUQV9GT1JNQVRfSURbXSA9IHsoYnl0ZSkweDRFLCAoYnl0ZSkweDZGLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDcyLCAoYnl0ZSkweDZEfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX1ZFUlNJT05bXSA9IHsoYnl0ZSkweDIsIChieXRlKTB4MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKTB4NSwgKGJ5dGUpMHgyfTsKKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL05vcm1hbGl6ZXJJbXBsLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVySW1wbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3OTE5YWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Ob3JtYWxpemVySW1wbC5qYXZhCkBAIC0wLDAgKzEsMzc3NiBAQAorIC8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsgICAgCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldEl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuUmFuZ2VWYWx1ZUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworCisvKioKKyAqIEB2ZXJzaW9uICAgICAxLjAKKyAqIEBhdXRob3IgIFJhbSBWaXN3YW5hZGhhCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBOb3JtYWxpemVySW1wbCB7CisgICAgLy8gU3RhdGljIGJsb2NrIGZvciB0aGUgY2xhc3MgdG8gaW5pdGlhbGl6ZSBpdHMgb3duIHNlbGYgCisgICAgc3RhdGljIGZpbmFsIE5vcm1hbGl6ZXJJbXBsIElNUEw7CisgICAgCisgICAgc3RhdGljCisgICAgeworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgSU1QTCA9IG5ldyBOb3JtYWxpemVySW1wbCgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwgIiIsICIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IFVOU0lHTkVEX0JZVEVfTUFTSyA9MHhGRjsKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBVTlNJR05FRF9JTlRfTUFTSyA9IDB4ZmZmZmZmZmZMOworICAgIC8qCisgICAgICogVGhpcyBuZXcgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5vcm1hbGl6YXRpb24gY29kZSBsb2FkcyBpdHMgZGF0YSBmcm9tCisgICAgICogdW5vcm0uaWN1LCB3aGljaCBpcyBnZW5lcmF0ZWQgd2l0aCB0aGUgZ2Vubm9ybSB0b29sLgorICAgICAqIFRoZSBmb3JtYXQgb2YgdGhhdCBmaWxlIGlzIGRlc2NyaWJlZCBhdCB0aGUgZW5kIG9mIHRoaXMgZmlsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9GSUxFX05BTUUgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlVORExFKyIvdW5vcm0uaWN1IjsKKyAgICAKKyAgICAvLyBub3JtMzIgdmFsdWUgY29uc3RhbnRzIAorICAgIAorICAgIC8vIHF1aWNrIGNoZWNrIGZsYWdzIDAuLjMgc2V0IG1lYW4gIm5vIiBmb3IgdGhlaXIgZm9ybXMgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUNfTkZDPTB4MTE7ICAgICAgICAgIC8qIG5vfG1heWJlICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUNfTkZLQz0weDIyOyAgICAgICAgIC8qIG5vfG1heWJlICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUNfTkZEPTQ7ICAgICAgICAgICAgIC8qIG5vICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUNfTkZLRD04OyAgICAgICAgICAgIC8qIG5vICovCisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUNfQU5ZX05PPTB4ZjsKKworICAgIC8qIHF1aWNrIGNoZWNrIGZsYWdzIDQuLjUgbWVhbiAibWF5YmUiIGZvciB0aGVpciBmb3JtczsgCisgICAgICogdGVzdCBmbGFncz49UUNfTUFZQkUgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUNfTUFZQkU9MHgxMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBRQ19BTllfTUFZQkU9MHgzMDsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFDX01BU0s9MHgzZjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01CSU5FU19GV0Q9MHg0MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklORVNfQkFDSz0weDgwOworICAgIHB1YmxpYyAgc3RhdGljIGZpbmFsIGludCBDT01CSU5FU19BTlk9MHhjMDsKKyAgICAvLyBVbmljb2RlRGF0YS50eHQgY29tYmluaW5nIGNsYXNzIGluIGJpdHMgMTUuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENDX1NISUZUPTg7ICAgICAgICAgICAgICAgICAgICAgCisgICAgcHVibGljICBzdGF0aWMgZmluYWwgaW50IENDX01BU0s9MHhmZjAwOworICAgIC8vIDE2IGJpdHMgZm9yIHRoZSBpbmRleCB0byBVQ2hhcnMgYW5kIG90aGVyIGV4dHJhIGRhdGEKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfU0hJRlQ9MTY7CisgICAgLy8gc3RhcnQgb2Ygc3Vycm9nYXRlIHNwZWNpYWxzIGFmdGVyIHNoaWZ0ICAgICAgICAgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWFRSQV9JTkRFWF9UT1A9MHhmYzAwOyAgICAgICAKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWFRSQV9TVVJST0dBVEVfTUFTSz0weDNmZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfU1VSUk9HQVRFX1RPUD0weDNmMDsgICAgLyogaGFuZ3VsIGV0Yy4gKi8KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWFRSQV9IQU5HVUw9RVhUUkFfU1VSUk9HQVRFX1RPUDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfSkFNT19MPUVYVFJBX1NVUlJPR0FURV9UT1ArMTsvKiAjIyMgbm90IHVzZWQgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfSkFNT19WPUVYVFJBX1NVUlJPR0FURV9UT1ArMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhUUkFfSkFNT19UPUVYVFJBX1NVUlJPR0FURV9UT1ArMzsKKyAgICAKKyAgICAvKiBub3JtMzIgdmFsdWUgY29uc3RhbnRzIHVzaW5nID4xNiBiaXRzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyAgTUlOX1NQRUNJQUwgICAgPSAgKGxvbmcpKDB4ZmMwMDAwMDAgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyAgU1VSUk9HQVRFU19UT1AgPSAgKGxvbmcpKDB4ZmZmMDAwMDAgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyAgTUlOX0hBTkdVTCAgICAgPSAgKGxvbmcpKDB4ZmZmMDAwMDAgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyAgTUlOX0pBTU9fViAgICAgPSAgKGxvbmcpKDB4ZmZmMjAwMDAgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyAgSkFNT19WX1RPUCAgICAgPSAgKGxvbmcpKDB4ZmZmMzAwMDAgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisgICAgCisgICAgCisgICAgLyogaW5kZXhlc1tdIHZhbHVlIG5hbWVzICovCisgICAgLyogbnVtYmVyIG9mIGJ5dGVzIGluIG5vcm1hbGl6YXRpb24gdHJpZSAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfVFJJRV9TSVpFICAgICAgICAgICA9IDA7CisgICAgIC8qIG51bWJlciBvZiBjaGFycyBpbiBleHRyYSBkYXRhICovICAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IElOREVYX0NIQVJfQ09VTlQgICAgICAgICAgID0gMTsgICAgCisgICAgLyogbnVtYmVyIG9mIHVpbnQxNl90IHdvcmRzIGZvciBjb21iaW5pbmcgZGF0YSAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfQ09NQklORV9EQVRBX0NPVU5UID0gMjsKKyAgICAvKiBudW1iZXIgb2YgY29kZSBwb2ludHMgdGhhdCBjb21iaW5lIGZvcndhcmQgKi8gICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfQ09NQklORV9GV0RfQ09VTlQgID0gMzsKKyAgICAvKiBudW1iZXIgb2YgY29kZSBwb2ludHMgdGhhdCBjb21iaW5lIGZvcndhcmQgYW5kIGJhY2t3YXJkICovICAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IElOREVYX0NPTUJJTkVfQk9USF9DT1VOVCA9IDQ7CisgICAgLyogbnVtYmVyIG9mIGNvZGUgcG9pbnRzIHRoYXQgY29tYmluZSBiYWNrd2FyZCAqLyAgICAgCisgICAgc3RhdGljIGZpbmFsIGludCBJTkRFWF9DT01CSU5FX0JBQ0tfQ09VTlQgPSA1OyAgICAgCisgICAgIC8qIGZpcnN0IGNvZGUgcG9pbnQgd2l0aCBxdWljayBjaGVjayBORkMgTk8vTUFZQkUgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTkRFWF9NSU5fTkZDX05PX01BWUJFICAgPSA2OworICAgIC8qIGZpcnN0IGNvZGUgcG9pbnQgd2l0aCBxdWljayBjaGVjayBORktDIE5PL01BWUJFICovICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOREVYX01JTl9ORktDX05PX01BWUJFICA9IDc7CisgICAgIC8qIGZpcnN0IGNvZGUgcG9pbnQgd2l0aCBxdWljayBjaGVjayBORkQgTk8vTUFZQkUgKi8gICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOREVYX01JTl9ORkRfTk9fTUFZQkUgICA9IDg7CisgICAgLyogZmlyc3QgY29kZSBwb2ludCB3aXRoIHF1aWNrIGNoZWNrIE5GS0QgTk8vTUFZQkUgKi8gICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfTUlOX05GS0RfTk9fTUFZQkUgID0gOTsgICAgIAorICAgIC8qIG51bWJlciBvZiBieXRlcyBpbiBGQ0QgdHJpZSAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfRkNEX1RSSUVfU0laRSAgICAgID0gMTA7CisgICAgLyogbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBhdXhpbGlhcnkgdHJpZSAqLyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IElOREVYX0FVWF9UUklFX1NJWkUgICAgICA9IDExOworICAgIC8qIG51bWJlciBvZiB1aW50MTZfdCBpbiB0aGUgYXJyYXkgb2Ygc2VyaWFsaXplZCBVU2V0ICovICAgIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfQ0FOT05fU0VUX0NPVU5UICAgID0gMTI7ICAgIAorICAgIC8qIGNoYW5naW5nIHRoaXMgcmVxdWlyZXMgYSBuZXcgZm9ybWF0VmVyc2lvbiAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfVE9QICAgICAgICAgICAgICAgID0gMzI7ICAgIAorICAgIAorICAgIAorICAgIC8qIEFVWCBjb25zdGFudHMgKi8KKyAgICAvKiB2YWx1ZSBjb25zdGFudHMgZm9yIGF1eFRyaWUgKi8gICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9VTlNBRkVfU0hJRlQgICAgICAgICAgID0gMTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9DT01QX0VYX1NISUZUICAgICAgICAgICA9IDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBVVhfTkZDX1NLSVBQQUJMRV9GX1NISUZUID0gMTI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9NQVhfRk5DICAgICAgICAgID0gICAoKGludCkxPDxBVVhfQ09NUF9FWF9TSElGVCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9VTlNBRkVfTUFTSyAgICAgID0gICAoaW50KSgoMTw8QVVYX1VOU0FGRV9TSElGVCkgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9GTkNfTUFTSyAgICAgICAgID0gICAoaW50KSgoQVVYX01BWF9GTkMtMSkgJiBVTlNJR05FRF9JTlRfTUFTSyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFVWF9DT01QX0VYX01BU0sgICAgID0gICAoaW50KSgoMTw8QVVYX0NPTVBfRVhfU0hJRlQpICYgVU5TSUdORURfSU5UX01BU0spOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgQVVYX05GQ19TS0lQX0ZfTUFTSyA9ICAgKChVTlNJR05FRF9JTlRfTUFTSyYxKTw8QVVYX05GQ19TS0lQUEFCTEVfRl9TSElGVCk7CisgICAgCisgICAgLyogY2Fub25TdGFydFNldHNbMC4uMzFdIGNvbnRhaW5zIGluZGV4ZXMgZm9yIHdoYXQgaXMgaW4gdGhlIGFycmF5ICovCisgICAgLyogbnVtYmVyIG9mIHVpbnQxNl90IGluIGNhbm9uaWNhbCBzdGFydGVyIHNldHMgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IFNFVF9JTkRFWF9DQU5PTl9TRVRTX0xFTkdUSCAgICAgICAgPSAwOworICAgIC8qIG51bWJlciBvZiB1aW50MTZfdCBpbiB0aGUgQk1QIHNlYXJjaCB0YWJsZSAoY29udGFpbnMgcGFpcnMpICovIAorICAgIHN0YXRpYyBmaW5hbCBpbnQgU0VUX0lOREVYX0NBTk9OX0JNUF9UQUJMRV9MRU5HVEggICAgPSAxOworICAgIC8qIG51bWJlciBvZiB1aW50MTZfdCBpbiB0aGUgc3VwcGxlbWVudGFyeSBzZWFyY2ggdGFibGUoY29udGFpbnMgdHJpcGxldHMpKi8gCisgICAgc3RhdGljIGZpbmFsIGludCBTRVRfSU5ERVhfQ0FOT05fU1VQUF9UQUJMRV9MRU5HVEggID0gMjsKKyAgICAvKiBjaGFuZ2luZyB0aGlzIHJlcXVpcmVzIGEgbmV3IGZvcm1hdFZlcnNpb24gKi8gCisgICAgc3RhdGljIGZpbmFsIGludCBTRVRfSU5ERVhfVE9QICAgICAgICAgICAgICAgICAgICAgICAgPSAzMjsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgaW50IENBTk9OX1NFVF9JTkRJQ0lFU19JTkRFWCAgICAgICAgICAgICAgPSAwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0FOT05fU0VUX1NUQVJUX1NFVFNfSU5ERVggICAgICAgICAgICA9IDE7CisgICAgc3RhdGljIGZpbmFsIGludCBDQU5PTl9TRVRfQk1QX1RBQkxFX0lOREVYICAgICAgICAgICAgPSAyOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0FOT05fU0VUX1NVUFBfVEFCTEVfSU5ERVggICAgICAgICAgICA9IDM7CisgICAgLyogMTQgYml0IGluZGV4ZXMgdG8gY2Fub25pY2FsIFVTZXJpYWxpemVkU2V0cyAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0FOT05fU0VUX01BWF9DQU5PTl9TRVRTICAgICAgICAgICAgID0gMHg0MDAwOyAKKyAgICAvKiBzaW5nbGUtY29kZSBwb2ludCBCTVAgc2V0cyBhcmUgZW5jb2RlZCBkaXJlY3RseSBpbiB0aGUgc2VhcmNoIHRhYmxlIAorICAgICAqIGV4Y2VwdCBpZiByZXN1bHQ9MHg0MDAwLi4weDdmZmYgCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBDQU5PTl9TRVRfQk1QX01BU0sgICAgICAgICAgICAgICAgICAgID0gMHhjMDAwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0FOT05fU0VUX0JNUF9JU19JTkRFWCAgICAgICAgICAgICAgICA9IDB4NDAwMDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0JVRkZFUl9TSVpFICAgICAgICAgICAgICAgICAgICA9IDIwOworICAgIAorICAgIC8qKgorICAgICAqIEludGVybmFsIG9wdGlvbiBmb3IgY21wRXF1aXZGb2xkKCkgZm9yIGRlY29tcG9zaW5nLgorICAgICAqIElmIG5vdCBzZXQsIGp1c3QgZG8gc3RyY2FzZWNtcCgpLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01QQVJFX0VRVUlWID0gMHg4MDAwMDsKKyAgICAKKyAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworICAgIC8qIFdyYXBwZXJzIGZvciBUcmllIGltcGxlbWVudGF0aW9ucyAqLyAKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgTm9ybVRyaWVJbXBsIGltcGxlbWVudHMgVHJpZS5EYXRhTWFuaXB1bGF0ZXsKKyAgICAgICAgc3RhdGljIEludFRyaWUgbm9ybVRyaWU9IG51bGw7CisgICAgICAgLyoqCisgICAgICAgICogQ2FsbGVkIGJ5IGNvbS5pYm0uaWN1LnV0aWwuVHJpZSB0byBleHRyYWN0IGZyb20gYSBsZWFkIHN1cnJvZ2F0ZSdzIAorICAgICAgICAqIGRhdGEgdGhlIGluZGV4IGFycmF5IG9mZnNldCBvZiB0aGUgaW5kZXhlcyBmb3IgdGhhdCBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgICAgKiBAcGFyYW0gcHJvcGVydHkgZGF0YSB2YWx1ZSBmb3IgYSBzdXJyb2dhdGUgZnJvbSB0aGUgdHJpZSwgaW5jbHVkaW5nIAorICAgICAgICAqICAgICAgICAgdGhlIGZvbGRpbmcgb2Zmc2V0CisgICAgICAgICogQHJldHVybiBkYXRhIG9mZnNldCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAqLworICAgICAgICAvKiBub3JtVHJpZTogMzItYml0IHRyaWUgcmVzdWx0IG1heSBjb250YWluIGEgc3BlY2lhbCBleHRyYURhdGEgaW5kZXggd2l0aCB0aGUgZm9sZGluZyBvZmZzZXQgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCB2YWx1ZSl7CisgICAgICAgICAgICByZXR1cm4gIEJNUF9JTkRFWF9MRU5HVEgrCisgICAgICAgICAgICAgICAgICAgICgodmFsdWU+PihFWFRSQV9TSElGVC1TVVJST0dBVEVfQkxPQ0tfQklUUykpJgorICAgICAgICAgICAgICAgICAgICAoMHgzZmY8PFNVUlJPR0FURV9CTE9DS19CSVRTKSk7IAorICAgICAgICB9CisgICAgICAgIAorICAgIH0KKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgRkNEVHJpZUltcGwgaW1wbGVtZW50cyBUcmllLkRhdGFNYW5pcHVsYXRleworICAgICAgICBzdGF0aWMgQ2hhclRyaWUgZmNkVHJpZT1udWxsOworICAgICAgIC8qKgorICAgICAgICAqIENhbGxlZCBieSBjb20uaWJtLmljdS51dGlsLlRyaWUgdG8gZXh0cmFjdCBmcm9tIGEgbGVhZCBzdXJyb2dhdGUncyAKKyAgICAgICAgKiBkYXRhIHRoZSBpbmRleCBhcnJheSBvZmZzZXQgb2YgdGhlIGluZGV4ZXMgZm9yIHRoYXQgbGVhZCBzdXJyb2dhdGUuCisgICAgICAgICogQHBhcmFtIHByb3BlcnR5IGRhdGEgdmFsdWUgZm9yIGEgc3Vycm9nYXRlIGZyb20gdGhlIHRyaWUsIGluY2x1ZGluZworICAgICAgICAqICAgICAgICAgdGhlIGZvbGRpbmcgb2Zmc2V0CisgICAgICAgICogQHJldHVybiBkYXRhIG9mZnNldCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAqLworICAgICAgICAvKiBmY2RUcmllOiB0aGUgZm9sZGluZyBvZmZzZXQgaXMgdGhlIGxlYWQgRkNEIHZhbHVlIGl0c2VsZiAqLworICAgICAgICBwdWJsaWMgaW50IGdldEZvbGRpbmdPZmZzZXQoaW50IHZhbHVlKXsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgQXV4VHJpZUltcGwgaW1wbGVtZW50cyBUcmllLkRhdGFNYW5pcHVsYXRleworICAgICAgICBzdGF0aWMgQ2hhclRyaWUgYXV4VHJpZSA9IG51bGw7CisgICAgICAgLyoqCisgICAgICAgICogQ2FsbGVkIGJ5IGNvbS5pYm0uaWN1LnV0aWwuVHJpZSB0byBleHRyYWN0IGZyb20gYSBsZWFkIHN1cnJvZ2F0ZSdzIAorICAgICAgICAqIGRhdGEgdGhlIGluZGV4IGFycmF5IG9mZnNldCBvZiB0aGUgaW5kZXhlcyBmb3IgdGhhdCBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgICAgKiBAcGFyYW0gcHJvcGVydHkgZGF0YSB2YWx1ZSBmb3IgYSBzdXJyb2dhdGUgZnJvbSB0aGUgdHJpZSwgaW5jbHVkaW5nIAorICAgICAgICAqICAgICAgICB0aGUgZm9sZGluZyBvZmZzZXQKKyAgICAgICAgKiBAcmV0dXJuIGRhdGEgb2Zmc2V0IG9yIDAgaWYgdGhlcmUgaXMgbm8gZGF0YSBmb3IgdGhlIGxlYWQgc3Vycm9nYXRlCisgICAgICAgICovCisgICAgICAgIC8qIGF1eFRyaWU6IHRoZSBmb2xkaW5nIG9mZnNldCBpcyBpbiBiaXRzIDkuLjAgb2YgdGhlIDE2LWJpdCB0cmllIHJlc3VsdCAqLworICAgICAgICBwdWJsaWMgaW50IGdldEZvbGRpbmdPZmZzZXQoaW50IHZhbHVlKXsKKyAgICAgICAgICAgIHJldHVybiAoaW50KSh2YWx1ZSAmQVVYX0ZOQ19NQVNLKTw8U1VSUk9HQVRFX0JMT0NLX0JJVFM7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgICAKKyAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAgICAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBGQ0RUcmllSW1wbCBmY2RUcmllSW1wbDsKKyAgICBwcml2YXRlIHN0YXRpYyBOb3JtVHJpZUltcGwgbm9ybVRyaWVJbXBsOworICAgIHByaXZhdGUgc3RhdGljIEF1eFRyaWVJbXBsIGF1eFRyaWVJbXBsOworICAgIHByaXZhdGUgc3RhdGljIGludFtdIGluZGV4ZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhcltdIGNvbWJpbmluZ1RhYmxlOworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBleHRyYURhdGE7CisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W10gY2Fub25TdGFydFNldHM7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0RhdGFMb2FkZWQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0Zvcm1hdFZlcnNpb25fMl8xOworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNGb3JtYXRWZXJzaW9uXzJfMjsKKyAgICBwcml2YXRlIHN0YXRpYyBieXRlW10gdW5pY29kZVZlcnNpb247CisgICAgCisgICAgLyoqCisgICAgICogRGVmYXVsdCBidWZmZXIgc2l6ZSBvZiBkYXRhZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVRBX0JVRkZFUl9TSVpFID0gMjUwMDA7CisgICAgCisgICAgLyoqCisgICAgICogRkNEIGNoZWNrOiBldmVyeXRoaW5nIGJlbG93IHRoaXMgY29kZSBwb2ludCBpcyBrbm93biB0byBoYXZlIGEgMCAKKyAgICAgKiBsZWFkIGNvbWJpbmluZyBjbGFzcyAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU5fV0lUSF9MRUFEX0NDPTB4MzAwOworCisKKyAgICAvKioKKyAgICAgKiBCaXQgNyBvZiB0aGUgbGVuZ3RoIGJ5dGUgZm9yIGEgZGVjb21wb3NpdGlvbiBzdHJpbmcgaW4gZXh0cmEgZGF0YSBpcworICAgICAqIGEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGRlY29tcG9zaXRpb24gc3RyaW5nIGlzCisgICAgICogcHJlY2VkZWQgYnkgYSAxNi1iaXQgd29yZCB3aXRoIHRoZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBjYworICAgICAqIG9mIHRoZSBkZWNvbXBvc2l0aW9uIChsaWtlIGZvciBBLXVtbGF1dCk7CisgICAgICogaWYgbm90LCB0aGVuIGJvdGggY2MncyBhcmUgemVybyAobGlrZSBmb3IgY29tcGF0aWJpbGl0eSBpZGVvZ3JhcGhzKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVDT01QX0ZMQUdfTEVOR1RIX0hBU19DQz0weDgwOworICAgIC8qKgorICAgICAqIEJpdHMgNi4uMCBvZiB0aGUgbGVuZ3RoIGJ5dGUgY29udGFpbiB0aGUgYWN0dWFsIGxlbmd0aC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVDT01QX0xFTkdUSF9NQVNLPTB4N2Y7ICAgCisgICAgCisgICAgLyoqIExlbmd0aCBvZiB0aGUgQk1QIHBvcnRpb24gb2YgdGhlIGluZGV4IChzdGFnZSAxKSBhcnJheS4gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQk1QX0lOREVYX0xFTkdUSD0weDEwMDAwPj5UcmllLklOREVYX1NUQUdFXzFfU0hJRlRfOworICAgIC8qKiBOdW1iZXIgb2YgYml0cyBvZiBhIHRyYWlsIHN1cnJvZ2F0ZSB0aGF0IGFyZSB1c2VkIGluIGluZGV4IHRhYmxlIAorICAgICAqIGxvb2t1cHMuIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfQkxPQ0tfQklUUz0xMC1UcmllLklOREVYX1NUQUdFXzFfU0hJRlRfOworCisKKyAgIC8vIHB1YmxpYyB1dGlsaXR5CisgICBwdWJsaWMgc3RhdGljIGludCBnZXRGcm9tSW5kZXhlc0FycihpbnQgaW5kZXgpeworICAgICAgICByZXR1cm4gaW5kZXhlc1tpbmRleF07CisgICB9CisgICAKKyAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdG9yCisgICAgKiBAZXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscyBvciBkYXRhIGNvcnJ1cHRlZAorICAgICovCisgICAgcHJpdmF0ZSBOb3JtYWxpemVySW1wbCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIC8vZGF0YSBzaG91bGQgYmUgbG9hZGVkIG9ubHkgb25jZQorICAgICAgICBpZighaXNEYXRhTG9hZGVkKXsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gamFyIGFjY2VzcworICAgICAgICAgICAgSW5wdXRTdHJlYW0gaSA9IElDVURhdGEuZ2V0UmVxdWlyZWRTdHJlYW0oREFUQV9GSUxFX05BTUUpOworICAgICAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaSxEQVRBX0JVRkZFUl9TSVpFKTsKKyAgICAgICAgICAgIE5vcm1hbGl6ZXJEYXRhUmVhZGVyIHJlYWRlciA9IG5ldyBOb3JtYWxpemVyRGF0YVJlYWRlcihiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gcmVhZCB0aGUgaW5kZXhlcyAgICAgICAgICAgIAorICAgICAgICAgICAgaW5kZXhlcyA9IHJlYWRlci5yZWFkSW5kZXhlcyhOb3JtYWxpemVySW1wbC5JTkRFWF9UT1ApOworICAgICAgICAgICAgCisgICAgICAgICAgICBieXRlW10gbm9ybUJ5dGVzID0gbmV3IGJ5dGVbaW5kZXhlc1tOb3JtYWxpemVySW1wbC5JTkRFWF9UUklFX1NJWkVdXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGNvbWJpbmluZ1RhYmxlVG9wID0gaW5kZXhlc1tOb3JtYWxpemVySW1wbC5JTkRFWF9DT01CSU5FX0RBVEFfQ09VTlRdOworICAgICAgICAgICAgY29tYmluaW5nVGFibGUgPSBuZXcgY2hhcltjb21iaW5pbmdUYWJsZVRvcF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBleHRyYURhdGFUb3AgPSBpbmRleGVzW05vcm1hbGl6ZXJJbXBsLklOREVYX0NIQVJfQ09VTlRdOworICAgICAgICAgICAgZXh0cmFEYXRhID0gbmV3IGNoYXJbZXh0cmFEYXRhVG9wXTsKKworICAgICAgICAgICAgYnl0ZVtdIGZjZEJ5dGVzID0gbmV3IGJ5dGVbaW5kZXhlc1tOb3JtYWxpemVySW1wbC5JTkRFWF9GQ0RfVFJJRV9TSVpFXV07CisgICAgICAgICAgICBieXRlW10gYXV4Qnl0ZXMgPSBuZXcgYnl0ZVtpbmRleGVzW05vcm1hbGl6ZXJJbXBsLklOREVYX0FVWF9UUklFX1NJWkVdXTsKKyAgICAgICAgICAgIGNhbm9uU3RhcnRTZXRzPW5ldyBPYmplY3RbTm9ybWFsaXplckltcGwuQ0FOT05fU0VUX01BWF9DQU5PTl9TRVRTXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZmNkVHJpZUltcGwgPSBuZXcgRkNEVHJpZUltcGwoKTsKKyAgICAgICAgICAgIG5vcm1UcmllSW1wbCA9IG5ldyBOb3JtVHJpZUltcGwoKTsKKyAgICAgICAgICAgIGF1eFRyaWVJbXBsID0gbmV3IEF1eFRyaWVJbXBsKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGxvYWQgdGhlIHJlc3Qgb2YgdGhlIGRhdGEgZGF0YSBhbmQgaW5pdGlhbGl6ZSB0aGUgZGF0YSBtZW1iZXJzCisgICAgICAgICAgICByZWFkZXIucmVhZChub3JtQnl0ZXMsIGZjZEJ5dGVzLGF1eEJ5dGVzLCBleHRyYURhdGEsIGNvbWJpbmluZ1RhYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbm9uU3RhcnRTZXRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgTm9ybVRyaWVJbXBsLm5vcm1UcmllID0gbmV3IEludFRyaWUoIG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShub3JtQnl0ZXMpLG5vcm1UcmllSW1wbCApOworICAgICAgICAgICAgRkNEVHJpZUltcGwuZmNkVHJpZSAgID0gbmV3IENoYXJUcmllKCBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oZmNkQnl0ZXMpLGZjZFRyaWVJbXBsICApOworICAgICAgICAgICAgQXV4VHJpZUltcGwuYXV4VHJpZSAgID0gbmV3IENoYXJUcmllKCBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oYXV4Qnl0ZXMpLGF1eFRyaWVJbXBsICApOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyB3ZSByZWFjaGVkIGhlcmUgd2l0aG91dCBhbnkgZXhjZXB0aW9ucyBzbyB0aGUgZGF0YSBpcyBmdWxseSAKKyAgICAgICAgICAgIC8vIGxvYWRlZCBzZXQgdGhlIHZhcmlhYmxlIHRvIHRydWUKKyAgICAgICAgICAgIGlzRGF0YUxvYWRlZCA9IHRydWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGdldCB0aGUgZGF0YSBmb3JtYXQgdmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgYnl0ZVtdIGZvcm1hdFZlcnNpb24gPSByZWFkZXIuZ2V0RGF0YUZvcm1hdFZlcnNpb24oKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaXNGb3JtYXRWZXJzaW9uXzJfMSA9KCBmb3JtYXRWZXJzaW9uWzBdPjIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0VmVyc2lvblswXT09MiAmJiBmb3JtYXRWZXJzaW9uWzFdPj0xKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGlzRm9ybWF0VmVyc2lvbl8yXzIgPSggZm9ybWF0VmVyc2lvblswXT4yIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdFZlcnNpb25bMF09PTIgJiYgZm9ybWF0VmVyc2lvblsxXT49MikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB1bmljb2RlVmVyc2lvbiA9IHJlYWRlci5nZXRVbmljb2RlVmVyc2lvbigpOworICAgICAgICAgICAgYi5jbG9zZSgpOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgCisgICAgLyogS29yZWFuIEhhbmd1bCBhbmQgSmFtbyBjb25zdGFudHMgKi8KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKQU1PX0xfQkFTRT0weDExMDA7ICAgICAvKiAibGVhZCIgamFtbyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpBTU9fVl9CQVNFPTB4MTE2MTsgICAgIC8qICJ2b3dlbCIgamFtbyAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpBTU9fVF9CQVNFPTB4MTFhNzsgICAgIC8qICJ0cmFpbCIgamFtbyAqLworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTkdVTF9CQVNFPTB4YWMwMDsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKQU1PX0xfQ09VTlQ9MTk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSkFNT19WX0NPVU5UPTIxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpBTU9fVF9DT1VOVD0yODsKKyAgICBwdWJsaWMgIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX0NPVU5UPUpBTU9fTF9DT1VOVCpKQU1PX1ZfQ09VTlQqSkFNT19UX0NPVU5UOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNIYW5ndWxXaXRob3V0SmFtb1QoY2hhciBjKSB7CisgICAgICAgIGMtPUhBTkdVTF9CQVNFOworICAgICAgICByZXR1cm4gYzxIQU5HVUxfQ09VTlQgJiYgYyVKQU1PX1RfQ09VTlQ9PTA7CisgICAgfQorICAgIAorICAgIC8qIG5vcm0zMiBoZWxwZXJzICovCisgICAgCisgICAgLyogaXMgdGhpcyBhIG5vcm0zMiB3aXRoIGEgcmVndWxhciBpbmRleD8gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzTm9ybTMyUmVndWxhcihsb25nIG5vcm0zMikgeworICAgICAgICByZXR1cm4gbm9ybTMyPE1JTl9TUEVDSUFMOworICAgIH0KKyAgICAKKyAgICAvKiBpcyB0aGlzIGEgbm9ybTMyIHdpdGggYSBzcGVjaWFsIGluZGV4IGZvciBhIGxlYWQgc3Vycm9nYXRlPyAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNOb3JtMzJMZWFkU3Vycm9nYXRlKGxvbmcgbm9ybTMyKSB7CisgICAgICAgIHJldHVybiBNSU5fU1BFQ0lBTDw9bm9ybTMyICYmIG5vcm0zMjxTVVJST0dBVEVTX1RPUDsKKyAgICB9CisgICAgCisgICAgLyogaXMgdGhpcyBhIG5vcm0zMiB3aXRoIGEgc3BlY2lhbCBpbmRleCBmb3IgYSBIYW5ndWwgc3lsbGFibGUgb3IgYSBKYW1vPyAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNOb3JtMzJIYW5ndWxPckphbW8obG9uZyBub3JtMzIpIHsKKyAgICAgICAgcmV0dXJuIG5vcm0zMj49TUlOX0hBTkdVTDsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBHaXZlbiBpc05vcm0zMkhhbmd1bE9ySmFtbygpLAorICAgICAqIGlzIHRoaXMgYSBIYW5ndWwgc3lsbGFibGUgb3IgYSBKYW1vPworICAgICAqLworICAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHJpdmF0ZSBzdGF0aWMgIGJvb2xlYW4gaXNIYW5ndWxKYW1vTm9ybTMySGFuZ3VsT3JKYW1vTChsb25nIG5vcm0zMikgeworICAgICAgICByZXR1cm4gbm9ybTMyPE1JTl9KQU1PX1Y7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorICAgIAorICAgIC8qCisgICAgICogR2l2ZW4gbm9ybTMyIGZvciBKYW1vIFYgb3IgVCwKKyAgICAgKiBpcyB0aGlzIGEgSmFtbyBWPworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNKYW1vVlROb3JtMzJKYW1vVihsb25nIG5vcm0zMikgeworICAgICAgICByZXR1cm4gbm9ybTMyPEpBTU9fVl9UT1A7CisgICAgfQorICAgIAorICAgIC8qIGRhdGEgYWNjZXNzIHByaW1pdGl2ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGxvbmcvKnVuc2lnbmVkKi8gZ2V0Tm9ybTMyKGNoYXIgYykgeworICAgICAgICByZXR1cm4gKChVTlNJR05FRF9JTlRfTUFTSykgJiAoTm9ybVRyaWVJbXBsLm5vcm1UcmllLmdldExlYWRWYWx1ZShjKSkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGxvbmcvKnVuc2lnbmVkKi8gZ2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobG9uZyBub3JtMzIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjMikgeworICAgICAgICAvKgorICAgICAgICAgKiB0aGUgc3Vycm9nYXRlIGluZGV4IGluIG5vcm0zMiBzdG9yZXMgb25seSB0aGUgbnVtYmVyIG9mIHRoZSBzdXJyb2dhdGUKKyAgICAgICAgICogaW5kZXggYmxvY2sgc2VlIGdlbm5vcm0vc3RvcmUuYy9nZXRGb2xkZWROb3JtVmFsdWUoKQorICAgICAgICAgKi8KKyAgICAgICAgcmV0dXJuICgoVU5TSUdORURfSU5UX01BU0spICYgCisgICAgICAgICAgICAgICAgICAgIE5vcm1UcmllSW1wbC5ub3JtVHJpZS5nZXRUcmFpbFZhbHVlKChpbnQpbm9ybTMyLCBjMikpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHJpdmF0ZSBzdGF0aWMgbG9uZyBnZXROb3JtMzIoaW50IGMpeworICAgICAgICByZXR1cm4gKFVOU0lHTkVEX0lOVF9NQVNLJihOb3JtVHJpZUltcGwubm9ybVRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYykpKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgbG9uZyBnZXROb3JtMzIoaW50IGMsaW50IG1hc2speworICAgICAgICBsb25nLyp1bnNpZ25lZCovIG5vcm0zMj0gZ2V0Tm9ybTMyKFVURjE2LmdldExlYWRTdXJyb2dhdGUoYykpOworICAgICAgICBpZigoKG5vcm0zMiZtYXNrKT4wKSAmJiBpc05vcm0zMkxlYWRTdXJyb2dhdGUobm9ybTMyKSkgeworICAgICAgICAgICAgLyogYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgbm9ybTMyICovCisgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKGMpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbm9ybTMyOyAKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgCisgICAgCisgICAgLyoKKyAgICAgKiBnZXQgYSBub3JtMzIgZnJvbSB0ZXh0IHdpdGggY29tcGxldGUgY29kZSBwb2ludHMKKyAgICAgKiAobGlrZSBmcm9tIGRlY29tcG9zaXRpb25zKQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGxvbmcvKnVuc2lnbmVkKi8gZ2V0Tm9ybTMyKGNoYXJbXSBwLGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWFzaykgeworICAgICAgICBsb25nLyp1bnNpZ25lZCovIG5vcm0zMj0gZ2V0Tm9ybTMyKHBbc3RhcnRdKTsKKyAgICAgICAgaWYoKChub3JtMzImbWFzayk+MCkgJiYgaXNOb3JtMzJMZWFkU3Vycm9nYXRlKG5vcm0zMikpIHsKKyAgICAgICAgICAgIC8qICpwIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBub3JtMzIgKi8KKyAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIHBbc3RhcnQrMV0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBub3JtMzI7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0VW5pY29kZVZlcnNpb24oKXsKKyAgICAgICAgcmV0dXJuIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKHVuaWNvZGVWZXJzaW9uWzBdLCB1bmljb2RlVmVyc2lvblsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWNvZGVWZXJzaW9uWzJdLCB1bmljb2RlVmVyc2lvblszXSk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgY2hhciAgICBnZXRGQ0QxNihjaGFyIGMpIHsKKyAgICAgICAgcmV0dXJuICBGQ0RUcmllSW1wbC5mY2RUcmllLmdldExlYWRWYWx1ZShjKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBjaGFyIGdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIoY2hhciBmY2QxNiwgY2hhciBjMikgeworICAgICAgICAvKiB0aGUgc3Vycm9nYXRlIGluZGV4IGluIGZjZDE2IGlzIGFuIGFic29sdXRlIG9mZnNldCBvdmVyIHRoZSAKKyAgICAgICAgICogc3RhcnQgb2Ygc3RhZ2UgMSAKKyAgICAgICAgICogKi8KKyAgICAgICAgcmV0dXJuIEZDRFRyaWVJbXBsLmZjZFRyaWUuZ2V0VHJhaWxWYWx1ZShmY2QxNiwgYzIpOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRGQ0QxNihpbnQgYykgeworICAgICAgICByZXR1cm4gIEZDRFRyaWVJbXBsLmZjZFRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgfQorICAgICAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0RXh0cmFEYXRhSW5kZXgobG9uZyBub3JtMzIpIHsKKyAgICAgICAgcmV0dXJuIChpbnQpKG5vcm0zMj4+RVhUUkFfU0hJRlQpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBEZWNvbXBvc2VBcmdzeworICAgICAgICBpbnQgLyp1bnNpZ25lZCBieXRlKi8gY2M7CisgICAgICAgIGludCAvKnVuc2lnbmVkIGJ5dGUqLyB0cmFpbENDOworICAgICAgICBpbnQgbGVuZ3RoOworICAgIH0KKyAgICAvKioKKyAgICAgKiAKKyAgICAgKiBnZXQgdGhlIGNhbm9uaWNhbCBvciBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gZm9yIG9uZSBjaGFyYWN0ZXIgCisgICAgICogCisgICAgICogQHJldHVybiBpbmRleCBpbnRvIHRoZSBleHRyYURhdGEgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQvKmluZGV4Ki8gZGVjb21wb3NlKGxvbmcvKnVuc2lnbmVkKi8gbm9ybTMyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBxY01hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVjb21wb3NlQXJncyBhcmdzKSB7CisgICAgICAgIGludCBwPSBnZXRFeHRyYURhdGFJbmRleChub3JtMzIpOworICAgICAgICBhcmdzLmxlbmd0aD1leHRyYURhdGFbcCsrXTsKKyAgICAKKyAgICAgICAgaWYoKG5vcm0zMiZxY01hc2smUUNfTkZLRCkhPTAgJiYgYXJncy5sZW5ndGg+PTB4MTAwKSB7CisgICAgICAgICAgICAvKiB1c2UgY29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uLCBza2lwIGNhbm9uaWNhbCBkYXRhICovCisgICAgICAgICAgICBwKz0oKGFyZ3MubGVuZ3RoPj43KSYxKSsoYXJncy5sZW5ndGgmREVDT01QX0xFTkdUSF9NQVNLKTsKKyAgICAgICAgICAgIGFyZ3MubGVuZ3RoPj49ODsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZigoYXJncy5sZW5ndGgmREVDT01QX0ZMQUdfTEVOR1RIX0hBU19DQyk+MCkgeworICAgICAgICAgICAgLyogZ2V0IHRoZSBsZWFkIGFuZCB0cmFpbCBjYydzICovCisgICAgICAgICAgICBjaGFyIGJvdGhDQ3M9ZXh0cmFEYXRhW3ArK107CisgICAgICAgICAgICBhcmdzLmNjPShVTlNJR05FRF9CWVRFX01BU0spICYgKGJvdGhDQ3M+PjgpOworICAgICAgICAgICAgYXJncy50cmFpbENDPShVTlNJR05FRF9CWVRFX01BU0spICYgYm90aENDczsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIGxlYWQgYW5kIHRyYWlsIGNjJ3MgYXJlIGJvdGggMCAqLworICAgICAgICAgICAgYXJncy5jYz1hcmdzLnRyYWlsQ0M9MDsKKyAgICAgICAgfQorICAgIAorICAgICAgICBhcmdzLmxlbmd0aCY9REVDT01QX0xFTkdUSF9NQVNLOworICAgICAgICByZXR1cm4gcDsKKyAgICB9CisgICAgCisgICAgICAgCisgICAgLyoqCisgICAgICogZ2V0IHRoZSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBmb3Igb25lIGNoYXJhY3RlciAKKyAgICAgKiBAcmV0dXJuIGluZGV4IGludG8gdGhlIGV4dHJhRGF0YSBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBkZWNvbXBvc2UobG9uZy8qdW5zaWduZWQqLyBub3JtMzIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVjb21wb3NlQXJncyBhcmdzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpbnQgcD0gZ2V0RXh0cmFEYXRhSW5kZXgobm9ybTMyKTsKKyAgICAgICAgYXJncy5sZW5ndGg9ZXh0cmFEYXRhW3ArK107CisgICAgCisgICAgICAgIGlmKChhcmdzLmxlbmd0aCZERUNPTVBfRkxBR19MRU5HVEhfSEFTX0NDKT4wKSB7CisgICAgICAgICAgICAvKiBnZXQgdGhlIGxlYWQgYW5kIHRyYWlsIGNjJ3MgKi8KKyAgICAgICAgICAgIGNoYXIgYm90aENDcz1leHRyYURhdGFbcCsrXTsKKyAgICAgICAgICAgIGFyZ3MuY2M9KFVOU0lHTkVEX0JZVEVfTUFTSykgJiAoYm90aENDcz4+OCk7CisgICAgICAgICAgICBhcmdzLnRyYWlsQ0M9KFVOU0lHTkVEX0JZVEVfTUFTSykgJiBib3RoQ0NzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogbGVhZCBhbmQgdHJhaWwgY2MncyBhcmUgYm90aCAwICovCisgICAgICAgICAgICBhcmdzLmNjPWFyZ3MudHJhaWxDQz0wOworICAgICAgICB9CisgICAgCisgICAgICAgIGFyZ3MubGVuZ3RoJj1ERUNPTVBfTEVOR1RIX01BU0s7CisgICAgICAgIHJldHVybiBwOworICAgIH0KKyAgICAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBOZXh0Q0NBcmdzeworICAgICAgICBjaGFyW10gc291cmNlOworICAgICAgICBpbnQgbmV4dDsKKyAgICAgICAgaW50IGxpbWl0OworICAgICAgICBjaGFyIGM7CisgICAgICAgIGNoYXIgYzI7CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogZ2V0IHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgKGMsIGMyKT0gYXJncy5zb3VyY2VbYXJncy5uZXh0KytdCisgICAgICogYmVmb3JlOiBhcmdzLm5leHQ8YXJncy5saW1pdCAgYWZ0ZXI6IGFyZ3MubmV4dDw9YXJncy5saW1pdAorICAgICAqIGlmIG9ubHkgb25lIGNvZGUgdW5pdCBpcyB1c2VkLCB0aGVuIGMyPT0wCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IC8qdW5zaWduZWQgYnl0ZSovIGdldE5leHRDQyhOZXh0Q0NBcmdzIGFyZ3MpIHsKKyAgICAgICAgbG9uZyAvKnVuc2lnbmVkKi8gbm9ybTMyOworICAgIAorICAgICAgICBhcmdzLmM9YXJncy5zb3VyY2VbYXJncy5uZXh0KytdOworICAgICAgICAKKyAgICAgICAgbm9ybTMyPSBnZXROb3JtMzIoYXJncy5jKTsKKyAgICAgICAgaWYoKG5vcm0zMiAmIENDX01BU0spPT0wKSB7CisgICAgICAgICAgICBhcmdzLmMyPTA7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmKCFpc05vcm0zMkxlYWRTdXJyb2dhdGUobm9ybTMyKSkgeworICAgICAgICAgICAgICAgIGFyZ3MuYzI9MDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgbm9ybTMyICovCisgICAgICAgICAgICAgICAgaWYoYXJncy5uZXh0IT1hcmdzLmxpbWl0ICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShhcmdzLmMyPWFyZ3Muc291cmNlW2FyZ3MubmV4dF0pKXsKKyAgICAgICAgICAgICAgICAgICAgKythcmdzLm5leHQ7CisgICAgICAgICAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIGFyZ3MuYzIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFyZ3MuYzI9MDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgcmV0dXJuIChpbnQpKChVTlNJR05FRF9CWVRFX01BU0spICYgKG5vcm0zMj4+Q0NfU0hJRlQpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIFByZXZBcmdzeworICAgICAgICBjaGFyW10gc3JjOworICAgICAgICBpbnQgc3RhcnQ7CisgICAgICAgIGludCBjdXJyZW50OworICAgICAgICBjaGFyIGM7CisgICAgICAgIGNoYXIgYzI7CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogcmVhZCBiYWNrd2FyZHMgYW5kIGdldCBub3JtMzIKKyAgICAgKiByZXR1cm4gMCBpZiB0aGUgY2hhcmFjdGVyIGlzIDxtaW5DCisgICAgICogaWYgYzIhPTAgdGhlbiAoYzIsIGMpIGlzIGEgc3Vycm9nYXRlIHBhaXIgKHJldmVyc2VkIC0gYzIgaXMgZmlyc3QgCisgICAgICogc3Vycm9nYXRlIGJ1dCByZWFkIHNlY29uZCEpCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgbG9uZyAvKnVuc2lnbmVkKi8gZ2V0UHJldk5vcm0zMihQcmV2QXJncyBhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1hc2spIHsKKyAgICAgICAgbG9uZy8qdW5zaWduZWQqLyBub3JtMzI7CisgICAgCisgICAgICAgIGFyZ3MuYz1hcmdzLnNyY1stLWFyZ3MuY3VycmVudF07CisgICAgICAgIGFyZ3MuYzI9MDsKKyAgICAKKyAgICAgICAgLyogY2hlY2sgZm9yIGEgc3Vycm9nYXRlIGJlZm9yZSBnZXR0aW5nIG5vcm0zMiB0byBzZWUgaWYgd2UgbmVlZCB0byAKKyAgICAgICAgICogcHJlZGVjcmVtZW50IGZ1cnRoZXIgCisgICAgICAgICAqLworICAgICAgICBpZihhcmdzLmM8bWluQykgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0gZWxzZSBpZighVVRGMTYuaXNTdXJyb2dhdGUoYXJncy5jKSkgeworICAgICAgICAgICAgcmV0dXJuIGdldE5vcm0zMihhcmdzLmMpOworICAgICAgICB9IGVsc2UgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGFyZ3MuYykpIHsKKyAgICAgICAgICAgIC8qIHVucGFpcmVkIGZpcnN0IHN1cnJvZ2F0ZSAqLworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0gZWxzZSBpZihhcmdzLmN1cnJlbnQhPWFyZ3Muc3RhcnQgJiYgCisgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShhcmdzLmMyPWFyZ3Muc3JjW2FyZ3MuY3VycmVudC0xXSkpIHsKKyAgICAgICAgICAgIC0tYXJncy5jdXJyZW50OworICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMihhcmdzLmMyKTsKKyAgICAKKyAgICAgICAgICAgIGlmKChub3JtMzImbWFzayk9PTApIHsKKyAgICAgICAgICAgICAgICAvKiBhbGwgc3Vycm9nYXRlIHBhaXJzIHdpdGggdGhpcyBsZWFkIHN1cnJvZ2F0ZSBoYXZlIAorICAgICAgICAgICAgICAgICAqIG9ubHkgaXJyZWxldmFudCBkYXRhIAorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBub3JtMzIgbXVzdCBiZSBhIHN1cnJvZ2F0ZSBzcGVjaWFsICovCisgICAgICAgICAgICAgICAgcmV0dXJuIGdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMiwgYXJncy5jKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIHVucGFpcmVkIHNlY29uZCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgIGFyZ3MuYzI9MDsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogZ2V0IHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgKGMsIGMyKT0qLS1wCisgICAgICogYmVmb3JlOiBzdGFydDxwICBhZnRlcjogc3RhcnQ8PXAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgLyp1bnNpZ25lZCBieXRlKi8gZ2V0UHJldkNDKFByZXZBcmdzIGFyZ3MpIHsKKworICAgICAgICByZXR1cm4gKGludCkoKFVOU0lHTkVEX0JZVEVfTUFTSykmKGdldFByZXZOb3JtMzIoYXJncywgTUlOX1dJVEhfTEVBRF9DQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENDX01BU0spPj5DQ19TSElGVCkpOworICAgIH0KKworICAgIC8qCisgICAgICogaXMgdGhpcyBhIHNhZmUgYm91bmRhcnkgY2hhcmFjdGVyIGZvciBORipEPworICAgICAqIChsZWFkIGNjPT0wKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc05GRFNhZmUobG9uZy8qdW5zaWduZWQqLyBub3JtMzIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqL2NjT3JRQ01hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBkZWNvbXBRQ01hc2spIHsKKyAgICAgICAgaWYoKG5vcm0zMiZjY09yUUNNYXNrKT09MCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8qIGNjPT0wIGFuZCBubyBkZWNvbXBvc2l0aW9uOiB0aGlzIGlzIE5GKkQgc2FmZSAqLworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIGluc3BlY3QgaXRzIGRlY29tcG9zaXRpb24gLSBtYXliZSBhIEhhbmd1bCBidXQgbm90IGEgc3Vycm9nYXRlIGhlcmUqLworICAgICAgICBpZihpc05vcm0zMlJlZ3VsYXIobm9ybTMyKSAmJiAobm9ybTMyJmRlY29tcFFDTWFzaykhPTApIHsKKyAgICAgICAgICAgIERlY29tcG9zZUFyZ3MgYXJncz1uZXcgRGVjb21wb3NlQXJncygpOworICAgICAgICAgICAgLyogZGVjb21wb3NlcywgZ2V0IGV2ZXJ5dGhpbmcgZnJvbSB0aGUgdmFyaWFibGUtbGVuZ3RoIGV4dHJhIGRhdGEgKi8KKyAgICAgICAgICAgIGRlY29tcG9zZShub3JtMzIsIGRlY29tcFFDTWFzaywgYXJncyk7CisgICAgICAgICAgICByZXR1cm4gYXJncy5jYz09MDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIG5vIGRlY29tcG9zaXRpb24gKG9yIEhhbmd1bCksIHRlc3QgdGhlIGNjIGRpcmVjdGx5ICovCisgICAgICAgICAgICByZXR1cm4gKG5vcm0zMiZDQ19NQVNLKT09MDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIGlzIHRoaXMgKG9yIGRvZXMgaXRzIGRlY29tcG9zaXRpb24gYmVnaW4gd2l0aCkgYSAidHJ1ZSBzdGFydGVyIj8KKyAgICAgKiAoY2M9PTAgYW5kIE5GKkNfWUVTKQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1RydWVTdGFydGVyKGxvbmcvKnVuc2lnbmVkKi8gbm9ybTMyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBjY09yUUNNYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBkZWNvbXBRQ01hc2spIHsKKyAgICAgICAgaWYoKG5vcm0zMiZjY09yUUNNYXNrKT09MCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8qIHRoaXMgaXMgYSB0cnVlIHN0YXJ0ZXIgKGNvdWxkIGJlIEhhbmd1bCBvciBKYW1vIEwpKi8KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBpbnNwZWN0IGl0cyBkZWNvbXBvc2l0aW9uIC0gbm90IGEgSGFuZ3VsIG9yIGEgc3Vycm9nYXRlIGhlcmUgKi8KKyAgICAgICAgaWYoKG5vcm0zMiZkZWNvbXBRQ01hc2spIT0wKSB7CisgICAgICAgICAgICBpbnQgcDsgLyogaW5kZXggaW50byBleHRyYSBkYXRhIGFycmF5ICovCisgICAgICAgICAgICBEZWNvbXBvc2VBcmdzIGFyZ3M9bmV3IERlY29tcG9zZUFyZ3MoKTsKKyAgICAgICAgICAgIC8qIGRlY29tcG9zZXMsIGdldCBldmVyeXRoaW5nIGZyb20gdGhlIHZhcmlhYmxlLWxlbmd0aCBleHRyYSBkYXRhICovCisgICAgICAgICAgICBwPWRlY29tcG9zZShub3JtMzIsIGRlY29tcFFDTWFzaywgYXJncyk7CisgICAgICAgICAgCisgICAgICAgICAgICBpZihhcmdzLmNjPT0wKSB7CisgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIHFjTWFzaz1jY09yUUNNYXNrJlFDX01BU0s7CisgICAgCisgICAgICAgICAgICAgICAgLyogZG9lcyBpdCBiZWdpbiB3aXRoIE5GQ19ZRVM/ICovCisgICAgICAgICAgICAgICAgaWYoKGdldE5vcm0zMihleHRyYURhdGEscCwgcWNNYXNrKSZxY01hc2spPT0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHllcywgdGhlIGRlY29tcG9zaXRpb24gYmVnaW5zIHdpdGggYSB0cnVlIHN0YXJ0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKiByZW9yZGVyIFVURi0xNiBpbi1wbGFjZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgCisgICAgLyoqCisgICAgICogc2ltcGxlciwgc2luZ2xlLWNoYXJhY3RlciB2ZXJzaW9uIG9mIG1lcmdlT3JkZXJlZCgpIC0KKyAgICAgKiBidWJibGUtaW5zZXJ0IG9uZSBzaW5nbGUgY29kZSBwb2ludCBpbnRvIHRoZSBwcmVjZWRpbmcgc3RyaW5nCisgICAgICogd2hpY2ggaXMgYWxyZWFkeSBjYW5vbmljYWxseSBvcmRlcmVkCisgICAgICogKGMsIGMyKSBtYXkgb3IgbWF5IG5vdCB5ZXQgaGF2ZSBiZWVuIGluc2VydGVkIGF0IHNyY1tjdXJyZW50XS4uc3JjW3BdCisgICAgICoKKyAgICAgKiBpdCBtdXN0IGJlIHA9Y3VycmVudCtsZW5ndGhvZihjLCBjMikgaS5lLiBwPWN1cnJlbnQrKGMyPT0wID8gMSA6IDIpCisgICAgICoKKyAgICAgKiBiZWZvcmU6IHNyY1tzdGFydF0uLnNyY1tjdXJyZW50XSBpcyBhbHJlYWR5IG9yZGVyZWQsIGFuZAorICAgICAqICAgICAgICAgc3JjW2N1cnJlbnRdLi5zcmNbcF0gICAgIG1heSBvciBtYXkgbm90IGhvbGQgKGMsIGMyKSBidXQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgbXVzdCBiZSBleGFjdGx5IHRoZSBzYW1lIGxlbmd0aCBhcyAoYywgYzIpCisgICAgICogYWZ0ZXI6IHNyY1tzdGFydF0uLnNyY1twXSBpcyBvcmRlcmVkCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSB0cmFpbGluZyBjb21iaW5pbmcgY2xhc3MKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQvKnVuc2lnbmVkIGJ5dGUqLyBpbnNlcnRPcmRlcmVkKGNoYXJbXSBzb3VyY2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjdXJyZW50LCBpbnQgcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYywgY2hhciBjMiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkIGJ5dGUqLyBjYykgeworICAgICAgICBpbnQgYmFjaywgcHJlQmFjazsKKyAgICAgICAgaW50IHI7CisgICAgICAgIGludCBwcmV2Q0MsIHRyYWlsQ0M9Y2M7CisgICAgCisgICAgICAgIGlmKHN0YXJ0PGN1cnJlbnQgJiYgY2MhPTApIHsKKyAgICAgICAgICAgIC8vIHNlYXJjaCBmb3IgdGhlIGluc2VydGlvbiBwb2ludCB3aGVyZSBjYz49cHJldkNDIAorICAgICAgICAgICAgcHJlQmFjaz1iYWNrPWN1cnJlbnQ7CisgICAgICAgICAgICBQcmV2QXJncyBwcmV2QXJncyA9IG5ldyBQcmV2QXJncygpOworICAgICAgICAgICAgcHJldkFyZ3MuY3VycmVudCAgPSBjdXJyZW50OworICAgICAgICAgICAgcHJldkFyZ3Muc3RhcnQgICAgPSBzdGFydDsKKyAgICAgICAgICAgIHByZXZBcmdzLnNyYyAgICAgID0gc291cmNlOworICAgICAgICAgICAgLy8gZ2V0IHRoZSBwcmV2Q0MgCisgICAgICAgICAgICBwcmV2Q0M9Z2V0UHJldkNDKHByZXZBcmdzKTsKKyAgICAgICAgICAgIHByZUJhY2sgPSBwcmV2QXJncy5jdXJyZW50OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZihjYzxwcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAvLyB0aGlzIHdpbGwgYmUgdGhlIGxhc3QgY29kZSBwb2ludCwgc28ga2VlcCBpdHMgY2MgCisgICAgICAgICAgICAgICAgdHJhaWxDQz1wcmV2Q0M7CisgICAgICAgICAgICAgICAgYmFjaz1wcmVCYWNrOworICAgICAgICAgICAgICAgIHdoaWxlKHN0YXJ0PHByZUJhY2spIHsKKyAgICAgICAgICAgICAgICAgICAgcHJldkNDPWdldFByZXZDQyhwcmV2QXJncyk7CisgICAgICAgICAgICAgICAgICAgIHByZUJhY2s9cHJldkFyZ3MuY3VycmVudDsKKyAgICAgICAgICAgICAgICAgICAgaWYoY2M+PXByZXZDQykgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYmFjaz1wcmVCYWNrOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIHdoZXJlIHdlIGFyZSByaWdodCBub3cgd2l0aCBhbGwgdGhlc2UgaW5kaWNpZXM6CisgICAgICAgICAgICAgICAgLy8gW3N0YXJ0XS4uW3BQcmVCYWNrXSAwLi4/IGNvZGUgcG9pbnRzIHRoYXQgd2UgY2FuIGlnbm9yZQorICAgICAgICAgICAgICAgIC8vIFtwUHJlQmFja10uLltwQmFja10gMC4uMSBjb2RlIHBvaW50cyB3aXRoIHByZXZDQzw9Y2MKKyAgICAgICAgICAgICAgICAvLyBbcEJhY2tdLi5bY3VycmVudF0gMC4ubiBjb2RlIHBvaW50cyB3aXRoID5jYywgbW92ZSB1cCB0byBpbnNlcnQgKGMsIGMyKQorICAgICAgICAgICAgICAgIC8vIFtjdXJyZW50XS4uW3BdICAgICAgICAgMSBjb2RlIHBvaW50IChjLCBjMikgd2l0aCBjYworICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBtb3ZlIHRoZSBjb2RlIHVuaXRzIGluIGJldHdlZW4gdXAgCisgICAgICAgICAgICAgICAgcj1wOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlWy0tcl09c291cmNlWy0tY3VycmVudF07CisgICAgICAgICAgICAgICAgfSB3aGlsZShiYWNrIT1jdXJyZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBpbnNlcnQgKGMsIGMyKSAKKyAgICAgICAgc291cmNlW2N1cnJlbnRdPWM7CisgICAgICAgIGlmKGMyIT0wKSB7CisgICAgICAgICAgICBzb3VyY2VbKGN1cnJlbnQrMSldPWMyOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIHdlIGtub3cgdGhlIGNjIG9mIHRoZSBsYXN0IGNvZGUgcG9pbnQgCisgICAgICAgIHJldHVybiB0cmFpbENDOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBtZXJnZSB0d28gVVRGLTE2IHN0cmluZyBwYXJ0cyB0b2dldGhlcgorICAgICAqIHRvIGNhbm9uaWNhbGx5IG9yZGVyIChvcmRlciBieSBjb21iaW5pbmcgY2xhc3NlcykgdGhlaXIgY29uY2F0ZW5hdGlvbgorICAgICAqCisgICAgICogdGhlIHR3byBzdHJpbmdzIG1heSBhbHJlYWR5IGJlIGFkamFjZW50LCBzbyB0aGF0IHRoZSBtZXJnaW5nIGlzIGRvbmUgCisgICAgICogaW4tcGxhY2UgaWYgdGhlIHR3byBzdHJpbmdzIGFyZSBub3QgYWRqYWNlbnQsIHRoZW4gdGhlIGJ1ZmZlciBob2xkaW5nIHRoZQorICAgICAqIGZpcnN0IG9uZSBtdXN0IGJlIGxhcmdlIGVub3VnaAorICAgICAqIHRoZSBzZWNvbmQgc3RyaW5nIG1heSBvciBtYXkgbm90IGJlIG9yZGVyZWQgaW4gaXRzZWxmCisgICAgICoKKyAgICAgKiBiZWZvcmU6IFtzdGFydF0uLltjdXJyZW50XSBpcyBhbHJlYWR5IG9yZGVyZWQsIGFuZAorICAgICAqICAgICAgICAgW25leHRdLi5bbGltaXRdICAgIG1heSBiZSBvcmRlcmVkIGluIGl0c2VsZiwgYnV0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIGlzIG5vdCBpbiByZWxhdGlvbiB0byBbc3RhcnQuLmN1cnJlbnRbCisgICAgICogYWZ0ZXI6IFtzdGFydC4uY3VycmVudCsobGltaXQtbmV4dClbIGlzIG9yZGVyZWQKKyAgICAgKgorICAgICAqIHRoZSBhbGdvcml0aG0gaXMgYSBzaW1wbGUgYnViYmxlLXNvcnQgdGhhdCB0YWtlcyB0aGUgY2hhcmFjdGVycyBmcm9tIAorICAgICAqIHNyY1tuZXh0KytdIGFuZCBpbnNlcnRzIHRoZW0gaW4gY29ycmVjdCBjb21iaW5pbmcgY2xhc3Mgb3JkZXIgaW50byB0aGUgCisgICAgICogcHJlY2VkaW5nIHBhcnQgb2YgdGhlIHN0cmluZworICAgICAqCisgICAgICogc2luY2UgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgbXVjaCBsZXNzIG9mdGVuIHRoYW4gdGhlIHNpbmdsZS1jb2RlIHBvaW50CisgICAgICogaW5zZXJ0T3JkZXJlZCgpLCBpdCBqdXN0IHVzZXMgdGhhdCBmb3IgZWFzaWVyIG1haW50ZW5hbmNlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSB0cmFpbGluZyBjb21iaW5pbmcgY2xhc3MKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgLyp1bnNpZ25lZCBieXRlKi8gbWVyZ2VPcmRlcmVkKGNoYXJbXSBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5leHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGlzT3JkZXJlZCkgeworICAgICAgICAgICAgaW50IHI7CisgICAgICAgICAgICBpbnQgLyp1bnNpZ25lZCBieXRlKi8gY2MsIHRyYWlsQ0M9MDsKKyAgICAgICAgICAgIGJvb2xlYW4gYWRqYWNlbnQ7CisgICAgICAgIAorICAgICAgICAgICAgYWRqYWNlbnQ9IGN1cnJlbnQ9PW5leHQ7CisgICAgICAgICAgICBOZXh0Q0NBcmdzIG5jQXJncyA9IG5ldyBOZXh0Q0NBcmdzKCk7CisgICAgICAgICAgICBuY0FyZ3Muc291cmNlID0gZGF0YTsKKyAgICAgICAgICAgIG5jQXJncy5uZXh0ICAgPSBuZXh0OworICAgICAgICAgICAgbmNBcmdzLmxpbWl0ICA9IGxpbWl0OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZihzdGFydCE9Y3VycmVudCB8fCAhaXNPcmRlcmVkKSB7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlKG5jQXJncy5uZXh0PG5jQXJncy5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICBjYz1nZXROZXh0Q0MobmNBcmdzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoY2M9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvZXMgbm90IGJ1YmJsZSBiYWNrIAorICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWxDQz0wOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoYWRqYWNlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50PW5jQXJncy5uZXh0OworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2N1cnJlbnQrK109bmNBcmdzLmM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobmNBcmdzLmMyIT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbY3VycmVudCsrXT1uY0FyZ3MuYzI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYoaXNPcmRlcmVkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0PWN1cnJlbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICByPWN1cnJlbnQrKG5jQXJncy5jMj09MCA/IDEgOiAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYWlsQ0M9aW5zZXJ0T3JkZXJlZChzb3VyY2Usc3RhcnQsIGN1cnJlbnQsIHIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5jQXJncy5jLCBuY0FyZ3MuYzIsIGNjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQ9cjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZihuY0FyZ3MubmV4dD09bmNBcmdzLmxpbWl0KSB7CisgICAgICAgICAgICAgICAgLy8gd2Uga25vdyB0aGUgY2Mgb2YgdGhlIGxhc3QgY29kZSBwb2ludCAKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJhaWxDQzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYoIWFkamFjZW50KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGNvcHkgdGhlIHNlY29uZCBzdHJpbmcgcGFydCAKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlW2N1cnJlbnQrK109ZGF0YVtuY0FyZ3MubmV4dCsrXTsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZShuY0FyZ3MubmV4dCE9bmNBcmdzLmxpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgbmNBcmdzLmxpbWl0PWN1cnJlbnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFByZXZBcmdzIHByZXZBcmdzID0gbmV3IFByZXZBcmdzKCk7CisgICAgICAgICAgICAgICAgcHJldkFyZ3Muc3JjICAgPSBkYXRhOworICAgICAgICAgICAgICAgIHByZXZBcmdzLnN0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgcHJldkFyZ3MuY3VycmVudCA9ICBuY0FyZ3MubGltaXQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldFByZXZDQyhwcmV2QXJncyk7CisgICAgICAgICAgICB9CisKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IC8qdW5zaWduZWQgYnl0ZSovIG1lcmdlT3JkZXJlZChjaGFyW10gc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBuZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGxpbWl0KSB7CisgICAgICAgIHJldHVybiBtZXJnZU9yZGVyZWQoc291cmNlLHN0YXJ0LGN1cnJlbnQsZGF0YSxuZXh0LGxpbWl0LHRydWUpOworICAgIH0gCisKKyAgICAKKyAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBjaGVja0ZDRChjaGFyW10gc3JjLGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisKKyAgICAgICAgY2hhciBmY2QxNixjLGMyOworICAgICAgICBpbnQgcHJldkNDPTAsIGNjOworICAgICAgICBpbnQgaSA9c3JjU3RhcnQsIGxlbmd0aCA9IHNyY0xpbWl0OworICAgIAorICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgIGlmKGk9PWxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoKGM9c3JjW2krK10pPE1JTl9XSVRIX0xFQURfQ0MpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJldkNDPShpbnQpLWM7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKChmY2QxNj1nZXRGQ0QxNihjKSk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgcHJldkNDPTA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBjaGVjayBvbmUgYWJvdmUtbWluaW11bSwgcmVsZXZhbnQgY29kZSB1bml0IAorICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGMpKSB7CisgICAgICAgICAgICAgICAgLy8gYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgZmNkMTYgCisgICAgICAgICAgICAgICAgaWYoaSE9bGVuZ3RoICYmIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9c3JjW2ldKSkgeworICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgICAgIGZjZDE2PWdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIoZmNkMTYsIGMyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgICAgICBmY2QxNj0wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKG54X2NvbnRhaW5zKG54LCBjLCBjMikpIHsKKyAgICAgICAgICAgICAgICBwcmV2Q0M9MDsgLyogZXhjbHVkZWQ6IGZjZDE2PT0wICovCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHByZXZDQyBoYXMgdmFsdWVzIGZyb20gdGhlIGZvbGxvd2luZyByYW5nZXM6CisgICAgICAgICAgICAvLyAwLi4weGZmIC10aGUgcHJldmlvdXMgdHJhaWwgY29tYmluaW5nIGNsYXNzCisgICAgICAgICAgICAvLyA8MCAgICAgIC10aGUgbmVnYXRpdmUgdmFsdWUgb2YgdGhlIHByZXZpb3VzIGNvZGUgdW5pdDsKKyAgICAgICAgICAgIC8vICAgICAgICAgIHRoYXQgY29kZSB1bml0IHdhcyA8TUlOX1dJVEhfTEVBRF9DQyBhbmQgaXRzIGdldEZDRDE2KCkKKyAgICAgICAgICAgIC8vICAgICAgICAgIHdhcyBkZWZlcnJlZCBzbyB0aGF0IGF2ZXJhZ2UgdGV4dCBpcyBjaGVja2VkIGZhc3RlcgorICAgICAgICAgICAgLy8KKyAgICAKKyAgICAgICAgICAgIC8vIGNoZWNrIHRoZSBjb21iaW5pbmcgb3JkZXIgCisgICAgICAgICAgICBjYz0oaW50KShmY2QxNj4+OCk7CisgICAgICAgICAgICBpZihjYyE9MCkgeworICAgICAgICAgICAgICAgIGlmKHByZXZDQzwwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIgd2FzIDxfTk9STV9NSU5fV0lUSF9MRUFEX0NDLCAKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBnZXQgaXRzIHRyYWlsIGNjIAorICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICBpZighbnhfY29udGFpbnMobngsIChpbnQpLXByZXZDQykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZDQz0oaW50KShGQ0RUcmllSW1wbC5mY2RUcmllLmdldEJNUFZhbHVlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpLXByZXZDQykmMHhmZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsgCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2Q0M9MDsgLyogZXhjbHVkZWQ6IGZjZDE2PT0wICovCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGlmKGNjPHByZXZDQykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJldkNDPShpbnQpKGZjZDE2JjB4ZmYpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgTm9ybWFsaXplci5RdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNTdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWluTm9NYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBxY01hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgbngpeworCisgICAgICAgIGludCBjY09yUUNNYXNrOworICAgICAgICBsb25nIG5vcm0zMjsKKyAgICAgICAgY2hhciBjLCBjMjsKKyAgICAgICAgY2hhciBjYywgcHJldkNDOworICAgICAgICBsb25nIHFjTm9ybTMyOworICAgICAgICBOb3JtYWxpemVyLlF1aWNrQ2hlY2tSZXN1bHQgcmVzdWx0OworICAgICAgICBDb21wb3NlUGFydEFyZ3MgYXJncyA9IG5ldyBDb21wb3NlUGFydEFyZ3MoKTsKKyAgICAgICAgY2hhcltdIGJ1ZmZlciA7CisgICAgICAgIGludCBzdGFydCA9IHNyY1N0YXJ0OworICAgICAgICAKKyAgICAgICAgaWYoIWlzRGF0YUxvYWRlZCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXIuTUFZQkU7CisgICAgICAgIH0KKyAgICAgICAgLy8gaW5pdGlhbGl6ZSAKKyAgICAgICAgY2NPclFDTWFzaz1DQ19NQVNLfHFjTWFzazsKKyAgICAgICAgcmVzdWx0PU5vcm1hbGl6ZXIuWUVTOworICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgICAgICBpZihzcmNTdGFydD09c3JjTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoKGM9c3JjW3NyY1N0YXJ0KytdKT49bWluTm9NYXliZSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCBub3JtMzI9Z2V0Tm9ybTMyKGMpKSAmIGNjT3JRQ01hc2spIT0wKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgIAorICAgICAgICAgICAgLy8gY2hlY2sgb25lIGFib3ZlLW1pbmltdW0sIHJlbGV2YW50IGNvZGUgdW5pdCAKKyAgICAgICAgICAgIGlmKGlzTm9ybTMyTGVhZFN1cnJvZ2F0ZShub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgLy8gYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgbm9ybTMyIAorICAgICAgICAgICAgICAgIGlmKHNyY1N0YXJ0IT1zcmNMaW1pdCYmIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9c3JjW3NyY1N0YXJ0XSkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytzcmNTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMixjMik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbm9ybTMyPTA7CisgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgYzI9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKG54X2NvbnRhaW5zKG54LCBjLCBjMikpIHsKKyAgICAgICAgICAgICAgICAvKiBleGNsdWRlZDogbm9ybTMyPT0wICovCisgICAgICAgICAgICAgICAgbm9ybTMyPTA7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBjaGVjayB0aGUgY29tYmluaW5nIG9yZGVyIAorICAgICAgICAgICAgY2M9KGNoYXIpKChub3JtMzI+PkNDX1NISUZUKSYweEZGKTsKKyAgICAgICAgICAgIGlmKGNjIT0wICYmIGNjPHByZXZDQykgeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVyLk5POworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJldkNDPWNjOworICAgIAorICAgICAgICAgICAgLy8gY2hlY2sgZm9yICJubyIgb3IgIm1heWJlIiBxdWljayBjaGVjayBmbGFncyAKKyAgICAgICAgICAgIHFjTm9ybTMyID0gbm9ybTMyICYgcWNNYXNrOworICAgICAgICAgICAgaWYoKHFjTm9ybTMyJiBRQ19BTllfTk8pPj0xKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0PSBOb3JtYWxpemVyLk5POworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfSBlbHNlIGlmKHFjTm9ybTMyIT0wKSB7CisgICAgICAgICAgICAgICAgLy8gIm1heWJlIiBjYW4gb25seSBvY2N1ciBmb3IgTkZDIGFuZCBORktDIAorICAgICAgICAgICAgICAgIGlmKGFsbG93TWF5YmUpeworICAgICAgICAgICAgICAgICAgICByZXN1bHQ9Tm9ybWFsaXplci5NQVlCRTsKKyAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgLy8gbm9ybWFsaXplIGEgc2VjdGlvbiBhcm91bmQgaGVyZSB0byBzZWUgaWYgaXQgaXMgcmVhbGx5IAorICAgICAgICAgICAgICAgICAgICAvLyBub3JtYWxpemVkIG9yIG5vdCAKKyAgICAgICAgICAgICAgICAgICAgaW50IHByZXZTdGFydGVyOworICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gZGVjb21wUUNNYXNrOworICAgIAorICAgICAgICAgICAgICAgICAgICBkZWNvbXBRQ01hc2s9KHFjTWFzazw8MikmMHhmOyAvLyBkZWNvbXBvc2l0aW9uIHF1aWNrIGNoZWNrIG1hc2sgCisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgdGhlIHByZXZpb3VzIHN0YXJ0ZXIgCisKKyAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHByZXZTdGFydGVyIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIAorICAgICAgICAgICAgICAgICAgICBwcmV2U3RhcnRlcj1zcmNTdGFydC0xOyAKKyAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShzcmNbcHJldlN0YXJ0ZXJdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2FmZSBiZWNhdXNlIHVucGFpcmVkIHN1cnJvZ2F0ZXMgZG8gbm90IHJlc3VsdCAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluICJtYXliZSIKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tcHJldlN0YXJ0ZXI7IAorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcHJldlN0YXJ0ZXI9ZmluZFByZXZpb3VzU3RhcnRlcihzcmMsIHN0YXJ0LCBwcmV2U3RhcnRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjY09yUUNNYXNrLCBkZWNvbXBRQ01hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpbWluTm9NYXliZSk7CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgdGhlIG5leHQgdHJ1ZSBzdGFydGVyIGluIFtzcmMuLmxpbWl0WyAtIG1vZGlmaWVzIAorICAgICAgICAgICAgICAgICAgICAvLyBzcmMgdG8gcG9pbnQgdG8gdGhlIG5leHQgc3RhcnRlciAKKyAgICAgICAgICAgICAgICAgICAgc3JjU3RhcnQ9ZmluZE5leHRTdGFydGVyKHNyYyxzcmNTdGFydCwgc3JjTGltaXQsIHFjTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvbXBRQ01hc2ssKGNoYXIpIG1pbk5vTWF5YmUpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy9zZXQgdGhlIGFyZ3MgZm9yIGNvbXBvc2UgcGFydAorICAgICAgICAgICAgICAgICAgICBhcmdzLnByZXZDQyA9IHByZXZDQzsKKyAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGRlY29tcG9zZSBhbmQgcmVjb21wb3NlIFtwcmV2U3RhcnRlci4uc3JjWyAKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyID0gY29tcG9zZVBhcnQoYXJncyxwcmV2U3RhcnRlcixzcmMsc3JjU3RhcnQsc3JjTGltaXQsb3B0aW9ucyxueCk7CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGNvbXBhcmUgdGhlIG5vcm1hbGl6ZWQgdmVyc2lvbiB3aXRoIHRoZSBvcmlnaW5hbCAKKyAgICAgICAgICAgICAgICAgICAgaWYoMCE9c3RyQ29tcGFyZShidWZmZXIsMCxhcmdzLmxlbmd0aCxzcmMscHJldlN0YXJ0ZXIsc3JjU3RhcnQsIGZhbHNlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PU5vcm1hbGl6ZXIuTk87IC8vIG5vcm1hbGl6YXRpb24gZGlmZmVycyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRpbnVlIGFmdGVyIHRoZSBuZXh0IHN0YXJ0ZXIgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSAKKyAKKyAgICAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAKKyAgICAvLyBtYWtlIE5GRCAmIE5GS0QgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXREZWNvbXBvc2l0aW9uKGludCBjIC8qVVRGLTMyKi8gLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNvbXBhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdFN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdENhcGFjaXR5KSB7CisgICAgICAgICAgICAKKyAgICAgICAgaWYoIChVTlNJR05FRF9JTlRfTUFTSyAmIGMpPD0weDEwZmZmZikgeworICAgICAgICAgICAgbG9uZyAvKnVuc2lnbmVkKi8gbm9ybTMyOworICAgICAgICAgICAgaW50IHFjTWFzazsKKyAgICAgICAgICAgIGludCBtaW5Ob01heWJlOworICAgICAgICAgICAgaW50IGxlbmd0aDsKKyAgICAKKyAgICAgICAgICAgIC8vIGluaXRpYWxpemUgCisgICAgICAgICAgICBpZighY29tcGF0KSB7CisgICAgICAgICAgICAgICAgbWluTm9NYXliZT0oaW50KWluZGV4ZXNbSU5ERVhfTUlOX05GRF9OT19NQVlCRV07CisgICAgICAgICAgICAgICAgcWNNYXNrPVFDX05GRDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbWluTm9NYXliZT0oaW50KWluZGV4ZXNbSU5ERVhfTUlOX05GS0RfTk9fTUFZQkVdOworICAgICAgICAgICAgICAgIHFjTWFzaz1RQ19ORktEOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYoYzxtaW5Ob01heWJlKSB7CisgICAgICAgICAgICAgICAgLy8gdHJpdmlhbCBjYXNlIAorICAgICAgICAgICAgICAgIGlmKGRlc3RDYXBhY2l0eT4wKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbMF09KGNoYXIpYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogZGF0YSBsb29rdXAgKi8KKyAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzIoYyk7CisgICAgICAgICAgICBpZigobm9ybTMyJnFjTWFzayk9PTApIHsKKyAgICAgICAgICAgICAgICAvKiBzaW1wbGUgY2FzZTogbm8gZGVjb21wb3NpdGlvbiAqLworICAgICAgICAgICAgICAgIGlmKGM8PTB4ZmZmZikgeworICAgICAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFswXT0oY2hhciljOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbMF09VVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbMV09VVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0yOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZihpc05vcm0zMkhhbmd1bE9ySmFtbyhub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgLyogSGFuZ3VsIHN5bGxhYmxlOiBkZWNvbXBvc2UgYWxnb3JpdGhtaWNhbGx5ICovCisgICAgICAgICAgICAgICAgY2hhciBjMjsKKyAgICAKKyAgICAgICAgICAgICAgICBjLT1IQU5HVUxfQkFTRTsKKyAgICAKKyAgICAgICAgICAgICAgICBjMj0oY2hhcikoYyVKQU1PX1RfQ09VTlQpOworICAgICAgICAgICAgICAgIGMvPUpBTU9fVF9DT1VOVDsKKyAgICAgICAgICAgICAgICBpZihjMj4wKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGRlc3RDYXBhY2l0eT49MykgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFsyXT0oY2hhcikoSkFNT19UX0JBU0UrYzIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0zOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0yOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzdFsxXT0oY2hhcikoSkFNT19WX0JBU0UrYyVKQU1PX1ZfQ09VTlQpOworICAgICAgICAgICAgICAgICAgICBkZXN0WzBdPShjaGFyKShKQU1PX0xfQkFTRStjL0pBTU9fVl9DT1VOVCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGMgZGVjb21wb3NlcywgZ2V0IGV2ZXJ5dGhpbmcgZnJvbSB0aGUgdmFyaWFibGUtbGVuZ3RoIGV4dHJhIAorICAgICAgICAgICAgICAgICAqIGRhdGEgCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaW50IHAsIGxpbWl0OworICAgICAgICAgICAgICAgIERlY29tcG9zZUFyZ3MgYXJncyA9IG5ldyBEZWNvbXBvc2VBcmdzKCk7CisgICAgICAgICAgICAgICAgLyogdGhlIGluZGV4IGludG8gZXh0cmEgZGF0YSBhcnJheSovICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBwPWRlY29tcG9zZShub3JtMzIsIHFjTWFzaywgYXJncyk7CisgICAgICAgICAgICAgICAgaWYoYXJncy5sZW5ndGg8PWRlc3RDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBsaW1pdD1wK2FyZ3MubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RTdGFydCsrXT1leHRyYURhdGFbcCsrXTsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZShwPGxpbWl0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGFyZ3MubGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBkZWNvbXBvc2UoY2hhcltdIHNyYyxpbnQgc3JjU3RhcnQsaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LGludCBkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNvbXBhdCxpbnRbXSBvdXRUcmFpbENDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyWzNdOworICAgICAgICBpbnQgcHJldlNyYzsKKyAgICAgICAgbG9uZyBub3JtMzI7CisgICAgICAgIGludCBjY09yUUNNYXNrLCBxY01hc2s7CisgICAgICAgIGludCByZW9yZGVyU3RhcnRJbmRleCwgbGVuZ3RoOworICAgICAgICBjaGFyIGMsIGMyLCBtaW5Ob01heWJlOworICAgICAgICBpbnQvKnVuc2lnbmVkIGJ5dGUqLyBjYywgcHJldkNDLCB0cmFpbENDOworICAgICAgICBjaGFyW10gcDsKKyAgICAgICAgaW50IHBTdGFydDsKKyAgICAgICAgaW50IGRlc3RJbmRleCA9IGRlc3RTdGFydDsKKyAgICAgICAgaW50IHNyY0luZGV4ID0gc3JjU3RhcnQ7CisgICAgICAgIGlmKCFjb21wYXQpIHsKKyAgICAgICAgICAgIG1pbk5vTWF5YmU9KGNoYXIpaW5kZXhlc1tJTkRFWF9NSU5fTkZEX05PX01BWUJFXTsKKyAgICAgICAgICAgIHFjTWFzaz1RQ19ORkQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtaW5Ob01heWJlPShjaGFyKWluZGV4ZXNbSU5ERVhfTUlOX05GS0RfTk9fTUFZQkVdOworICAgICAgICAgICAgcWNNYXNrPVFDX05GS0Q7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyogaW5pdGlhbGl6ZSAqLworICAgICAgICBjY09yUUNNYXNrPUNDX01BU0t8cWNNYXNrOworICAgICAgICByZW9yZGVyU3RhcnRJbmRleD0wOworICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgbm9ybTMyPTA7CisgICAgICAgIGM9MDsKKyAgICAgICAgcFN0YXJ0PTA7CisgICAgICAgIAorICAgICAgICBjYz10cmFpbENDPS0xOy8vaW5pdGlhbGl6ZSB0byBib2d1cyB2YWx1ZQorICAgICAgICAKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAvKiBjb3VudCBjb2RlIHVuaXRzIGJlbG93IHRoZSBtaW5pbXVtIG9yIHdpdGggaXJyZWxldmFudCBkYXRhIGZvciAKKyAgICAgICAgICAgICAqIHRoZSBxdWljayBjaGVjayAKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcHJldlNyYz1zcmNJbmRleDsKKworICAgICAgICAgICAgd2hpbGUoc3JjSW5kZXghPXNyY0xpbWl0ICYmKChjPXNyY1tzcmNJbmRleF0pPG1pbk5vTWF5YmUgfHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChub3JtMzI9Z2V0Tm9ybTMyKGMpKSZjY09yUUNNYXNrKT09MCkpeworICAgICAgICAgICAgICAgIHByZXZDQz0wOworICAgICAgICAgICAgICAgICsrc3JjSW5kZXg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIGNvcHkgdGhlc2UgY29kZSB1bml0cyBhbGwgYXQgb25jZSAqLworICAgICAgICAgICAgaWYoc3JjSW5kZXghPXByZXZTcmMpIHsKKyAgICAgICAgICAgICAgICBsZW5ndGg9KGludCkoc3JjSW5kZXgtcHJldlNyYyk7CisgICAgICAgICAgICAgICAgaWYoKGRlc3RJbmRleCtsZW5ndGgpPD1kZXN0TGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzcmMscHJldlNyYyxkZXN0LGRlc3RJbmRleCxsZW5ndGgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1sZW5ndGg7CisgICAgICAgICAgICAgICAgcmVvcmRlclN0YXJ0SW5kZXg9ZGVzdEluZGV4OworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogZW5kIG9mIHNvdXJjZSByZWFjaGVkPyAqLworICAgICAgICAgICAgaWYoc3JjSW5kZXg9PXNyY0xpbWl0KSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBjIGFscmVhZHkgY29udGFpbnMgKnNyYyBhbmQgbm9ybTMyIGlzIHNldCBmb3IgaXQsIGluY3JlbWVudCBzcmMqLworICAgICAgICAgICAgKytzcmNJbmRleDsKKyAgICAKKyAgICAgICAgICAgIC8qIGNoZWNrIG9uZSBhYm92ZS1taW5pbXVtLCByZWxldmFudCBjb2RlIHVuaXQgKi8KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBnZW5lcmFsbHksIHNldCBwIGFuZCBsZW5ndGggdG8gdGhlIGRlY29tcG9zaXRpb24gc3RyaW5nCisgICAgICAgICAgICAgKiBpbiBzaW1wbGUgY2FzZXMsIHA9PU5VTEwgYW5kIChjLCBjMikgd2lsbCBob2xkIHRoZSBsZW5ndGggY29kZSAKKyAgICAgICAgICAgICAqIHVuaXRzIHRvIGFwcGVuZCBpbiBhbGwgY2FzZXMsIHNldCBjYyB0byB0aGUgbGVhZCBhbmQgdHJhaWxDQyB0byAKKyAgICAgICAgICAgICAqIHRoZSB0cmFpbCBjb21iaW5pbmcgY2xhc3MKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiB0aGUgZm9sbG93aW5nIG1lcmdlLXNvcnQgb2YgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGludG8gdGhlIAorICAgICAgICAgICAgICogcHJlY2VkaW5nLCBjYW5vbmljYWxseSBvcmRlcmVkIHJlc3VsdCB0ZXh0IHdpbGwgdXNlIHRoZSAKKyAgICAgICAgICAgICAqIG9wdGltaXplZCBpbnNlcnRPcmRlcmVkKCkKKyAgICAgICAgICAgICAqIGlmIHRoZXJlIGlzIG9ubHkgb25lIHNpbmdsZSBjb2RlIHBvaW50IHRvIHByb2Nlc3M7CisgICAgICAgICAgICAgKiB0aGlzIGlzIGluZGljYXRlZCB3aXRoIHA9PU5VTEwsIGFuZCAoYywgYzIpIGlzIHRoZSBjaGFyYWN0ZXIgdG8gCisgICAgICAgICAgICAgKiBpbnNlcnQKKyAgICAgICAgICAgICAqICgoYywgMCkgZm9yIGEgQk1QIGNoYXJhY3RlciBhbmQgKGxlYWQgc3Vycm9nYXRlLCB0cmFpbCBzdXJyb2dhdGUpCisgICAgICAgICAgICAgKiBmb3IgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcikKKyAgICAgICAgICAgICAqIG90aGVyd2lzZSwgcFtsZW5ndGhdIGlzIG1lcmdlZCBpbiB3aXRoIF9tZXJnZU9yZGVyZWQoKQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZihpc05vcm0zMkhhbmd1bE9ySmFtbyhub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgaWYobnhfY29udGFpbnMobngsIGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgICAgIHA9bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSGFuZ3VsIHN5bGxhYmxlOiBkZWNvbXBvc2UgYWxnb3JpdGhtaWNhbGx5IAorICAgICAgICAgICAgICAgICAgICBwPWJ1ZmZlcjsKKyAgICAgICAgICAgICAgICAgICAgcFN0YXJ0PTA7CisgICAgICAgICAgICAgICAgICAgIGNjPXRyYWlsQ0M9MDsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgYy09SEFOR1VMX0JBU0U7CisgICAgCisgICAgICAgICAgICAgICAgICAgIGMyPShjaGFyKShjJUpBTU9fVF9DT1VOVCk7CisgICAgICAgICAgICAgICAgICAgIGMvPUpBTU9fVF9DT1VOVDsKKyAgICAgICAgICAgICAgICAgICAgaWYoYzI+MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyWzJdPShjaGFyKShKQU1PX1RfQkFTRStjMik7CisgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg9MzsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0yOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlclsxXT0oY2hhcikoSkFNT19WX0JBU0UrYyVKQU1PX1ZfQ09VTlQpOworICAgICAgICAgICAgICAgICAgICBidWZmZXJbMF09KGNoYXIpKEpBTU9fTF9CQVNFK2MvSkFNT19WX0NPVU5UKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmKGlzTm9ybTMyUmVndWxhcihub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0xOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGMgaXMgYSBsZWFkIHN1cnJvZ2F0ZSwgZ2V0IHRoZSByZWFsIG5vcm0zMiAKKyAgICAgICAgICAgICAgICAgICAgaWYoc3JjSW5kZXghPXNyY0xpbWl0ICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjMj1zcmNbc3JjSW5kZXhdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytzcmNJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0yOworICAgICAgICAgICAgICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMiwgYzIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYzI9MDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0xOworICAgICAgICAgICAgICAgICAgICAgICAgbm9ybTMyPTA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgLyogZ2V0IHRoZSBkZWNvbXBvc2l0aW9uIGFuZCB0aGUgbGVhZCBhbmQgdHJhaWwgY2MncyAqLworICAgICAgICAgICAgICAgIGlmKG54X2NvbnRhaW5zKG54LCBjLCBjMikpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZXhjbHVkZWQ6IG5vcm0zMj09MCAqLworICAgICAgICAgICAgICAgICAgICBjYz10cmFpbENDPTA7CisgICAgICAgICAgICAgICAgICAgIHA9bnVsbDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoKG5vcm0zMiZxY01hc2spPT0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGMgZG9lcyBub3QgZGVjb21wb3NlICovCisgICAgICAgICAgICAgICAgICAgIGNjPXRyYWlsQ0M9KGludCkoKFVOU0lHTkVEX0JZVEVfTUFTSykgJiAobm9ybTMyPj5DQ19TSElGVCkpOworICAgICAgICAgICAgICAgICAgICBwPW51bGw7CisgICAgICAgICAgICAgICAgICAgIHBTdGFydD0tMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBEZWNvbXBvc2VBcmdzIGFyZyA9IG5ldyBEZWNvbXBvc2VBcmdzKCk7CisgICAgICAgICAgICAgICAgICAgIC8qIGMgZGVjb21wb3NlcywgZ2V0IGV2ZXJ5dGhpbmcgZnJvbSB0aGUgdmFyaWFibGUtbGVuZ3RoIAorICAgICAgICAgICAgICAgICAgICAgKiBleHRyYSBkYXRhIAorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgcFN0YXJ0PWRlY29tcG9zZShub3JtMzIsIHFjTWFzaywgYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgcD1leHRyYURhdGE7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD1hcmcubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICBjYz1hcmcuY2M7CisgICAgICAgICAgICAgICAgICAgIHRyYWlsQ0M9YXJnLnRyYWlsQ0M7CisgICAgICAgICAgICAgICAgICAgIGlmKGxlbmd0aD09MSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogZmFzdHBhdGggYSBzaW5nbGUgY29kZSB1bml0IGZyb20gZGVjb21wb3NpdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgYz1wW3BTdGFydF07CisgICAgICAgICAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgICAgICAgICAgcD1udWxsOworICAgICAgICAgICAgICAgICAgICAgICAgcFN0YXJ0PS0xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogYXBwZW5kIHRoZSBkZWNvbXBvc2l0aW9uIHRvIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIsIGFzc3VtZSAKKyAgICAgICAgICAgICAqIGxlbmd0aD4wIAorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZigoZGVzdEluZGV4K2xlbmd0aCk8PWRlc3RMaW1pdCkgeworICAgICAgICAgICAgICAgIGludCByZW9yZGVyU3BsaXQ9ZGVzdEluZGV4OworICAgICAgICAgICAgICAgIGlmKHA9PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZmFzdHBhdGg6IHNpbmdsZSBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgIGlmKGNjIT0wICYmIGNjPHByZXZDQykgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogKGMsIGMyKSBpcyBvdXQgb2Ygb3JkZXIgd2l0aCByZXNwZWN0IHRvIHRoZSBwcmVjZWRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAqICB0ZXh0IAorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXgrPWxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYWlsQ0M9aW5zZXJ0T3JkZXJlZChkZXN0LHJlb3JkZXJTdGFydEluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVvcmRlclNwbGl0LCBkZXN0SW5kZXgsIGMsIGMyLCBjYyk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBqdXN0IGFwcGVuZCAoYywgYzIpICovCisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RJbmRleCsrXT1jOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoYzIhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RJbmRleCsrXT1jMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGdlbmVyYWw6IG11bHRpcGxlIGNvZGUgcG9pbnRzIChvcmRlcmVkIGJ5IHRoZW1zZWx2ZXMpIAorICAgICAgICAgICAgICAgICAgICAgKiBmcm9tIGRlY29tcG9zaXRpb24gCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBpZihjYyE9MCAmJiBjYzxwcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBkZWNvbXBvc2l0aW9uIGlzIG91dCBvZiBvcmRlciB3aXRoIHJlc3BlY3QgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgKiAgcHJlY2VkaW5nIHRleHQgCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWxDQz1tZXJnZU9yZGVyZWQoZGVzdCxyZW9yZGVyU3RhcnRJbmRleCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW9yZGVyU3BsaXQscCwgcFN0YXJ0LHBTdGFydCtsZW5ndGgpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoganVzdCBhcHBlbmQgdGhlIGRlY29tcG9zaXRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RJbmRleCsrXT1wW3BTdGFydCsrXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUoLS1sZW5ndGg+MCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGJ1ZmZlciBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgIC8qIGtlZXAgaW5jcmVtZW50aW5nIHRoZSBkZXN0SW5kZXggZm9yIHByZWZsaWdodGluZyAqLworICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgcHJldkNDPXRyYWlsQ0M7CisgICAgICAgICAgICBpZihwcmV2Q0M9PTApIHsKKyAgICAgICAgICAgICAgICByZW9yZGVyU3RhcnRJbmRleD1kZXN0SW5kZXg7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgb3V0VHJhaWxDQ1swXT1wcmV2Q0M7CisKKyAgICAgICAgcmV0dXJuIGRlc3RJbmRleCAtIGRlc3RTdGFydDsKKyAgICB9CisgICAgCisgICAgLyogbWFrZSBORkMgJiBORktDIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIE5leHRDb21iaW5pbmdBcmdzeworICAgICAgICBjaGFyW10gc291cmNlOworICAgICAgICBpbnQgc3RhcnQ7CisgICAgICAgIC8vaW50IGxpbWl0OworICAgICAgICBjaGFyIGM7CisgICAgICAgIGNoYXIgYzI7CisgICAgICAgIGludC8qdW5zaWduZWQqLyBjb21iaW5pbmdJbmRleDsKKyAgICAgICAgY2hhciAvKnVuc2lnbmVkIGJ5dGUqLyBjYzsKKyAgICB9CisgICAgCisgICAgLyogZ2V0IHRoZSBjb21wb3NpdGlvbiBwcm9wZXJ0aWVzIG9mIHRoZSBuZXh0IGNoYXJhY3RlciAqLworICAgIHByaXZhdGUgc3RhdGljIGludCAvKnVuc2lnbmVkKi8gICAgZ2V0TmV4dENvbWJpbmluZyhOZXh0Q29tYmluaW5nQXJncyBhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgIGxvbmcvKnVuc2lnbmVkKi8gbm9ybTMyOyAKKyAgICAgICAgaW50IGNvbWJpbmVGbGFnczsKKyAgICAgICAgLyogZ2V0IHByb3BlcnRpZXMgKi8KKyAgICAgICAgYXJncy5jPWFyZ3Muc291cmNlW2FyZ3Muc3RhcnQrK107CisgICAgICAgIG5vcm0zMj1nZXROb3JtMzIoYXJncy5jKTsKKyAgICAgICAgCisgICAgICAgIC8qIHByZXNldCBvdXRwdXQgdmFsdWVzIGZvciBtb3N0IGNoYXJhY3RlcnMgKi8KKyAgICAgICAgYXJncy5jMj0wOworICAgICAgICBhcmdzLmNvbWJpbmluZ0luZGV4PTA7CisgICAgICAgIGFyZ3MuY2M9MDsKKyAgICAgICAgCisgICAgICAgIGlmKChub3JtMzImKENDX01BU0t8Q09NQklORVNfQU5ZKSk9PTApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYoaXNOb3JtMzJSZWd1bGFyKG5vcm0zMikpIHsKKyAgICAgICAgICAgICAgICAvKiBzZXQgY2MgZXRjLiBiZWxvdyAqLworICAgICAgICAgICAgfSBlbHNlIGlmKGlzTm9ybTMySGFuZ3VsT3JKYW1vKG5vcm0zMikpIHsKKyAgICAgICAgICAgICAgICAvKiBhIGNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbiBjb250YWluZWQgSmFtb3MgKi8KKyAgICAgICAgICAgICAgICBhcmdzLmNvbWJpbmluZ0luZGV4PShpbnQpKChVTlNJR05FRF9JTlRfTUFTSykmKDB4ZmZmMHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vcm0zMj4+RVhUUkFfU0hJRlQpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIChpbnQpKG5vcm0zMiZDT01CSU5FU19BTlkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBjIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBub3JtMzIgKi8KKyAgICAgICAgICAgICAgICBpZihhcmdzLnN0YXJ0IT1saW1pdCAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGFyZ3MuYzI9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Muc291cmNlW2FyZ3Muc3RhcnRdKSkgeworICAgICAgICAgICAgICAgICAgICArK2FyZ3Muc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIGFyZ3MuYzIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFyZ3MuYzI9MDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZihueF9jb250YWlucyhueCwgYXJncy5jLCBhcmdzLmMyKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOyAvKiBleGNsdWRlZDogbm9ybTMyPT0wICovCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBhcmdzLmNjPSAoY2hhcikoKG5vcm0zMj4+Q0NfU0hJRlQpJjB4ZmYpOworICAgICAgICAKKyAgICAgICAgICAgIGNvbWJpbmVGbGFncz0oaW50KShub3JtMzImQ09NQklORVNfQU5ZKTsKKyAgICAgICAgICAgIGlmKGNvbWJpbmVGbGFncyE9MCkgeworICAgICAgICAgICAgICAgIGludCBpbmRleCA9IGdldEV4dHJhRGF0YUluZGV4KG5vcm0zMik7CisgICAgICAgICAgICAgICAgYXJncy5jb21iaW5pbmdJbmRleD1pbmRleD4wID8gZXh0cmFEYXRhWyhpbmRleC0xKV0gOjA7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICByZXR1cm4gY29tYmluZUZsYWdzOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogZ2l2ZW4gYSBjb21wb3NpdGlvbi1yZXN1bHQgc3RhcnRlciAoYywgYzIpIC0gd2hpY2ggbWVhbnMgaXRzIGNjPT0wLAorICAgICAqIGl0IGNvbWJpbmVzIGZvcndhcmQsIGl0IGhhcyBleHRyYSBkYXRhLCBpdHMgbm9ybTMyIT0wLAorICAgICAqIGl0IGlzIG5vdCBhIEhhbmd1bCBvciBKYW1vLAorICAgICAqIGdldCBqdXN0IGl0cyBjb21iaW5lRndkSW5kZXgKKyAgICAgKgorICAgICAqIG5vcm0zMihjKSBpcyBzcGVjaWFsIGlmIGFuZCBvbmx5IGlmIGMyIT0wCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50Lyp1bnNpZ25lZCovIGdldENvbWJpbmluZ0luZGV4RnJvbVN0YXJ0ZXIoY2hhciBjLGNoYXIgYzIpeworICAgICAgICBsb25nLyp1bnNpZ25lZCovIG5vcm0zMjsKKyAgICAKKyAgICAgICAgbm9ybTMyPWdldE5vcm0zMihjKTsKKyAgICAgICAgaWYoYzIhPTApIHsKKyAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzJGcm9tU3Vycm9nYXRlUGFpcihub3JtMzIsIGMyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXh0cmFEYXRhWyhnZXRFeHRyYURhdGFJbmRleChub3JtMzIpLTEpXTsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBGaW5kIHRoZSByZWNvbXBvc2l0aW9uIHJlc3VsdCBmb3IKKyAgICAgKiBhIGZvcndhcmQtY29tYmluaW5nIGNoYXJhY3RlcgorICAgICAqIChzcGVjaWZpZWQgd2l0aCBhIHBvaW50ZXIgdG8gaXRzIHBhcnQgb2YgdGhlIGNvbWJpbmluZ1RhYmxlW10pCisgICAgICogYW5kIGEgYmFja3dhcmQtY29tYmluaW5nIGNoYXJhY3RlcgorICAgICAqIChzcGVjaWZpZWQgd2l0aCBpdHMgY29tYmluZUJhY2tJbmRleCkuCisgICAgICoKKyAgICAgKiBJZiB0aGVzZSB0d28gY2hhcmFjdGVycyBjb21iaW5lLCB0aGVuIHNldCAodmFsdWUsIHZhbHVlMikKKyAgICAgKiB3aXRoIHRoZSBjb2RlIHVuaXQocykgb2YgdGhlIGNvbXBvc2l0aW9uIGNoYXJhY3Rlci4KKyAgICAgKgorICAgICAqIFJldHVybiB2YWx1ZToKKyAgICAgKiAwICAgIGRvIG5vdCBjb21iaW5lCisgICAgICogMSAgICBjb21iaW5lCisgICAgICogPjEgICBjb21iaW5lLCBhbmQgdGhlIGNvbXBvc2l0aW9uIGlzIGEgZm9yd2FyZC1jb21iaW5pbmcgc3RhcnRlcgorICAgICAqCisgICAgICogU2VlIHVub3JtaW1wLmggZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGNvbXBvc2l0aW9uIHRhYmxlIGZvcm1hdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQvKnVuc2lnbmVkKi8gY29tYmluZShjaGFyW110YWJsZSxpbnQgdGFibGVTdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaW5nZWQqLyBjb21iaW5lQmFja0luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gb3V0VmFsdWVzKSB7CisgICAgICAgIGludC8qdW5zaWduZWQqLyBrZXk7CisgICAgICAgIGludCB2YWx1ZSx2YWx1ZTI7CisgICAgICAgIAorICAgICAgICBpZihvdXRWYWx1ZXMubGVuZ3RoPDIpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKiBzZWFyY2ggaW4gdGhlIHN0YXJ0ZXIncyBjb21wb3NpdGlvbiB0YWJsZSAqLworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIGtleT10YWJsZVt0YWJsZVN0YXJ0KytdOworICAgICAgICAgICAgaWYoa2V5Pj1jb21iaW5lQmFja0luZGV4KSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0YWJsZVN0YXJ0Kz0gKCh0YWJsZVt0YWJsZVN0YXJ0XSYweDgwMDApICE9IDApPyAyIDogMTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBtYXNrIG9mZiBiaXQgMTUsIHRoZSBsYXN0LWVudHJ5LWluLXRoZS1saXN0IGZsYWcgKi8KKyAgICAgICAgaWYoKGtleSYweDdmZmYpPT1jb21iaW5lQmFja0luZGV4KSB7CisgICAgICAgICAgICAvKiBmb3VuZCEgY29tYmluZSEgKi8KKyAgICAgICAgICAgIHZhbHVlPXRhYmxlW3RhYmxlU3RhcnRdOworICAgIAorICAgICAgICAgICAgLyogaXMgdGhlIGNvbXBvc2l0aW9uIGEgc3RhcnRlciB0aGF0IGNvbWJpbmVzIGZvcndhcmQ/ICovCisgICAgICAgICAgICBrZXk9KGludCkoKFVOU0lHTkVEX0lOVF9NQVNLKSYoKHZhbHVlJjB4MjAwMCkrMSkpOworICAgIAorICAgICAgICAgICAgLyogZ2V0IHRoZSBjb21wb3NpdGlvbiByZXN1bHQgY29kZSBwb2ludCBmcm9tIHRoZSB2YXJpYWJsZS1sZW5ndGggCisgICAgICAgICAgICAgKiByZXN1bHQgdmFsdWUgCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmKCh2YWx1ZSYweDgwMDApICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZigodmFsdWUmMHg0MDAwKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHN1cnJvZ2F0ZSBwYWlyIGNvbXBvc2l0aW9uIHJlc3VsdCAqLworICAgICAgICAgICAgICAgICAgICB2YWx1ZT0oaW50KSgoVU5TSUdORURfSU5UX01BU0spJigodmFsdWUmMHgzZmYpfDB4ZDgwMCkpOworICAgICAgICAgICAgICAgICAgICB2YWx1ZTI9dGFibGVbdGFibGVTdGFydCsxXTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBCTVAgY29tcG9zaXRpb24gcmVzdWx0IFUrMjAwMC4uVStmZmZmICovCisgICAgICAgICAgICAgICAgICAgIHZhbHVlPXRhYmxlW3RhYmxlU3RhcnQrMV07CisgICAgICAgICAgICAgICAgICAgIHZhbHVlMj0wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogQk1QIGNvbXBvc2l0aW9uIHJlc3VsdCBVKzAwMDAuLlUrMWZmZiAqLworICAgICAgICAgICAgICAgIHZhbHVlJj0weDFmZmY7CisgICAgICAgICAgICAgICAgdmFsdWUyPTA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXRWYWx1ZXNbMF09dmFsdWU7CisgICAgICAgICAgICBvdXRWYWx1ZXNbMV09dmFsdWUyOyAgICAKKyAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBub3QgZm91bmQgKi8KKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIFJlY29tcG9zZUFyZ3N7CisgICAgICAgIGNoYXJbXSBzb3VyY2U7CisgICAgICAgIGludCBzdGFydDsKKyAgICAgICAgaW50IGxpbWl0OworICAgIH0KKyAgICAvKgorICAgICAqIHJlY29tcG9zZSB0aGUgY2hhcmFjdGVycyBpbiBbcC4ubGltaXRbCisgICAgICogKHdoaWNoIGlzIGluIE5GRCAtIGRlY29tcG9zZWQgYW5kIGNhbm9uaWNhbGx5IG9yZGVyZWQpLAorICAgICAqIGFkanVzdCBsaW1pdCwgYW5kIHJldHVybiB0aGUgdHJhaWxpbmcgY2MKKyAgICAgKgorICAgICAqIHNpbmNlIGZvciBORktDIHdlIG1heSBnZXQgSmFtb3MgaW4gZGVjb21wb3NpdGlvbnMsIHdlIG5lZWQgdG8KKyAgICAgKiByZWNvbXBvc2UgdGhvc2UgdG9vCisgICAgICoKKyAgICAgKiBub3RlIHRoYXQgcmVjb21wb3NpdGlvbiBuZXZlciBsZW5ndGhlbnMgdGhlIHRleHQ6CisgICAgICogYW55IGNoYXJhY3RlciBjb25zaXN0cyBvZiBlaXRoZXIgb25lIG9yIHR3byBjb2RlIHVuaXRzOworICAgICAqIGEgY29tcG9zaXRpb24gbWF5IGNvbnRhaW4gYXQgbW9zdCBvbmUgbW9yZSBjb2RlIHVuaXQgdGhhbiB0aGUgb3JpZ2luYWwgCisgICAgICogc3RhcnRlciwgd2hpbGUgdGhlIGNvbWJpbmluZyBtYXJrIHRoYXQgaXMgcmVtb3ZlZCBoYXMgYXQgbGVhc3Qgb25lIGNvZGUgCisgICAgICogdW5pdAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNoYXIvKnVuc2lnbmVkIGJ5dGUqLyByZWNvbXBvc2UoUmVjb21wb3NlQXJncyBhcmdzLCBpbnQgb3B0aW9ucywgVW5pY29kZVNldCBueCkgeworICAgICAgICBpbnQgIHJlbW92ZSwgcSwgcjsKKyAgICAgICAgaW50IC8qdW5zaWduZWQqLyBjb21iaW5lRmxhZ3M7CisgICAgICAgIGludCAvKnVuc2lnbmVkKi8gY29tYmluZUZ3ZEluZGV4LCBjb21iaW5lQmFja0luZGV4OworICAgICAgICBpbnQgLyp1bnNpZ25lZCovIHJlc3VsdCwgdmFsdWU9MCwgdmFsdWUyPTA7CisgICAgICAgIGludCAvKnVuc2lnbmVkIGJ5dGUqLyAgcHJldkNDOworICAgICAgICBib29sZWFuIHN0YXJ0ZXJJc1N1cHBsZW1lbnRhcnk7CisgICAgICAgIGludCBzdGFydGVyOworICAgICAgICBpbnRbXSBvdXRWYWx1ZXMgPSBuZXcgaW50WzJdOworICAgICAgICBzdGFydGVyPS0xOyAgICAgICAgICAgICAgICAgICAvKiBubyBzdGFydGVyICovCisgICAgICAgIGNvbWJpbmVGd2RJbmRleD0wOyAgICAgICAgICAgIC8qIHdpbGwgbm90IGJlIHVzZWQgdW50aWwgc3RhcnRlciE9TlVMTCAqLworICAgICAgICBzdGFydGVySXNTdXBwbGVtZW50YXJ5PWZhbHNlOyAvKiB3aWxsIG5vdCBiZSB1c2VkIHVudGlsIHN0YXJ0ZXIhPU5VTEwgKi8KKyAgICAgICAgcHJldkNDPTA7CisgICAgICAgIAorICAgICAgICBOZXh0Q29tYmluaW5nQXJncyBuY0FyZyA9IG5ldyBOZXh0Q29tYmluaW5nQXJncygpOworICAgICAgICBuY0FyZy5zb3VyY2UgID0gYXJncy5zb3VyY2U7CisgICAgICAgIAorICAgICAgICBuY0FyZy5jYyAgICAgID0wOworICAgICAgICBuY0FyZy5jMiAgICAgID0wOyAgICAKKworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIG5jQXJnLnN0YXJ0ID0gYXJncy5zdGFydDsKKyAgICAgICAgICAgIGNvbWJpbmVGbGFncz1nZXROZXh0Q29tYmluaW5nKG5jQXJnLGFyZ3MubGltaXQsbngpOworICAgICAgICAgICAgY29tYmluZUJhY2tJbmRleD1uY0FyZy5jb21iaW5pbmdJbmRleDsKKyAgICAgICAgICAgIGFyZ3Muc3RhcnQgPSBuY0FyZy5zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoKChjb21iaW5lRmxhZ3MmQ09NQklORVNfQkFDSykhPTApICYmIHN0YXJ0ZXIhPS0xKSB7CisgICAgICAgICAgICAgICAgaWYoKGNvbWJpbmVCYWNrSW5kZXgmMHg4MDAwKSE9MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBjIGlzIGEgSmFtbyBWL1QsIHNlZSBpZiB3ZSBjYW4gY29tcG9zZSBpdCB3aXRoIHRoZSAKKyAgICAgICAgICAgICAgICAgICAgICogcHJldmlvdXMgY2hhcmFjdGVyIAorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgLyogZm9yIHRoZSBQUkkgIzI5IGZpeCwgY2hlY2sgdGhhdCB0aGVyZSBpcyBubyBpbnRlcnZlbmluZyBjb21iaW5pbmcgbWFyayAqLworICAgICAgICAgICAgICAgICAgICBpZigob3B0aW9ucyZCRUZPUkVfUFJJXzI5KSE9MCB8fCBwcmV2Q0M9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZT0tMTsgLyogTlVMTCB3aGlsZSBubyBIYW5ndWwgY29tcG9zaXRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVGbGFncz0wOworICAgICAgICAgICAgICAgICAgICAgICAgbmNBcmcuYzI9YXJncy5zb3VyY2Vbc3RhcnRlcl07CisgICAgICAgICAgICAgICAgICAgICAgICBpZihjb21iaW5lQmFja0luZGV4PT0weGZmZjIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBKYW1vIFYsIGNvbXBvc2Ugd2l0aCBwcmV2aW91cyBKYW1vIEwgYW5kIGZvbGxvd2luZyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBKYW1vIFQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmNBcmcuYzI9KGNoYXIpKG5jQXJnLmMyLUpBTU9fTF9CQVNFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihuY0FyZy5jMjxKQU1PX0xfQ09VTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlPWFyZ3Muc3RhcnQtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmNBcmcuYz0oY2hhcikoSEFOR1VMX0JBU0UrKG5jQXJnLmMyKkpBTU9fVl9DT1VOVCsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5jQXJnLmMtSkFNT19WX0JBU0UpKSpKQU1PX1RfQ09VTlQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihhcmdzLnN0YXJ0IT1hcmdzLmxpbWl0ICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmNBcmcuYzI9KGNoYXIpKGFyZ3Muc291cmNlW2FyZ3Muc3RhcnRdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtSkFNT19UX0JBU0UpKTxKQU1PX1RfQ09VTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrYXJncy5zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5jQXJnLmMrPW5jQXJnLmMyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGUgcmVzdWx0IGlzIGFuIExWIHN5bGxhYmxlLCB3aGljaCBpcyBhIHN0YXJ0ZXIgKHVubGlrZSBMVlQpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZUZsYWdzPUNPTUJJTkVTX0ZXRDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZighbnhfY29udGFpbnMobngsIG5jQXJnLmMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVtzdGFydGVyXT1uY0FyZy5jOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhjbHVkZWQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFpc0hhbmd1bFdpdGhvdXRKYW1vVChuY0FyZy5jKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tYXJncy5zdGFydDsgLyogdW5kbyB0aGUgKythcmdzLnN0YXJ0IGZyb20gcmVhZGluZyB0aGUgSmFtbyBUICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjIGlzIG1vZGlmaWVkIGJ1dCBub3QgdXNlZCBhbnkgbW9yZSAtLSBjPSoocC0xKTsgLS0gcmUtcmVhZCB0aGUgSmFtbyBWL1QgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZT1hcmdzLnN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogTm9ybWFsbHksIHRoZSBmb2xsb3dpbmcgY2FuIG5vdCBvY2N1cjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIFNpbmNlIHRoZSBpbnB1dCBpcyBpbiBORkQsIHRoZXJlIGFyZSBubyBIYW5ndWwgTFYgc3lsbGFibGVzIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIGEgSmFtbyBUIGNvdWxkIGNvbWJpbmUgd2l0aC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqIEFsbCBKYW1vIFRzIGFyZSBjb21iaW5lZCBhYm92ZSB3aGVuIGhhbmRsaW5nIEphbW8gVnMuCisgICAgICAgICAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAgICAgICAgICogSG93ZXZlciwgYmVmb3JlIHRoZSBQUkkgIzI5IGZpeCwgdGhpcyBjYW4gb2NjdXIgZHVlIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBhbiBpbnRlcnZlbmluZyBjb21iaW5pbmcgbWFyayBiZXR3ZWVuIHRoZSBIYW5ndWwgTFYgYW5kIHRoZSBKYW1vIFQuCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSmFtbyBULCBjb21wb3NlIHdpdGggcHJldmlvdXMgSGFuZ3VsIHRoYXQgZG9lcyBub3QgaGF2ZSBhIEphbW8gVCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGlzSGFuZ3VsV2l0aG91dEphbW9UKG5jQXJnLmMyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuY0FyZy5jMis9bmNBcmcuYy1KQU1PX1RfQkFTRTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIW54X2NvbnRhaW5zKG54LCBuY0FyZy5jMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZT1hcmdzLnN0YXJ0LTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVtzdGFydGVyXT1uY0FyZy5jMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZihyZW1vdmUhPS0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcmVtb3ZlIHRoZSBKYW1vKHMpICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcT1yZW1vdmU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcj1hcmdzLnN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKHI8YXJncy5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVtxKytdPWFyZ3Muc291cmNlW3IrK107CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Muc3RhcnQ9cmVtb3ZlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MubGltaXQ9cTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBuY0FyZy5jMj0wOyAvKiBjMiBoZWxkICpzdGFydGVyIHRlbXBvcmFyaWx5ICovCisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNvbWJpbmVGbGFncyE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogbm90IHN0YXJ0ZXI9TlVMTCBiZWNhdXNlIHRoZSBjb21wb3NpdGlvbiBpcyBhIEhhbmd1bCBMViBzeWxsYWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGFuZCBtaWdodCBjb21iaW5lIG9uY2UgbW9yZSAoYnV0IG9ubHkgYmVmb3JlIHRoZSBQUkkgIzI5IGZpeCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGRvbmU/ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYXJncy5zdGFydD09YXJncy5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGNoYXIpcHJldkNDOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBjb21wb3NpdGlvbiBpcyBhIEhhbmd1bCBMViBzeWxsYWJsZSB3aGljaCBpcyBhIHN0YXJ0ZXIgdGhhdCBjb21iaW5lcyBmb3J3YXJkICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZUZ3ZEluZGV4PTB4ZmZmMDsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHdlIGNvbWJpbmVkOyBjb250aW51ZSB3aXRoIGxvb2tpbmcgZm9yIGNvbXBvc2l0aW9ucyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogbm93OiBjYz09MCBhbmQgdGhlIGNvbWJpbmluZyBpbmRleCBkb2VzIG5vdCBpbmNsdWRlIAorICAgICAgICAgICAgICAgICAgICAgKiAiZm9yd2FyZCIgLT4gdGhlIHJlc3Qgb2YgdGhlIGxvb3AgYm9keSB3aWxsIHJlc2V0IHN0YXJ0ZXIKKyAgICAgICAgICAgICAgICAgICAgICogdG8gTlVMTDsgdGVjaG5pY2FsbHksIGEgY29tcG9zZWQgSGFuZ3VsIHN5bGxhYmxlIGlzIGEgCisgICAgICAgICAgICAgICAgICAgICAqIHN0YXJ0ZXIsIGJ1dCBpdCBkb2VzIG5vdCBjb21iaW5lIGZvcndhcmQgbm93IHRoYXQgd2UgaGF2ZQorICAgICAgICAgICAgICAgICAgICAgKiBjb25zdW1lZCBhbGwgZWxpZ2libGUgSmFtb3M7IGZvciBKYW1vIFYvVCwgY29tYmluZUZsYWdzIAorICAgICAgICAgICAgICAgICAgICAgKiBkb2VzIG5vdCBjb250YWluIF9OT1JNX0NPTUJJTkVTX0ZXRAorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoCisgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBzdGFydGVyIGlzIG5vdCBhIEhhbmd1bCBMViBvciBKYW1vIFYvVCBhbmQgKi8KKyAgICAgICAgICAgICAgICAgICAgISgoY29tYmluZUZ3ZEluZGV4JjB4ODAwMCkhPTApICYmCisgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBjb21iaW5pbmcgbWFyayBpcyBub3QgYmxvY2tlZCBhbmQgKi8KKyAgICAgICAgICAgICAgICAgICAgKChvcHRpb25zJkJFRk9SRV9QUklfMjkpIT0wID8KKyAgICAgICAgICAgICAgICAgICAgICAgIChwcmV2Q0MhPW5jQXJnLmNjIHx8IHByZXZDQz09MCkgOgorICAgICAgICAgICAgICAgICAgICAgICAgKHByZXZDQzxuY0FyZy5jYyB8fCBwcmV2Q0M9PTApKSAmJgorICAgICAgICAgICAgICAgICAgICAvKiB0aGUgc3RhcnRlciBhbmQgdGhlIGNvbWJpbmluZyBtYXJrIChjLCBjMikgZG8gY29tYmluZSAqLworICAgICAgICAgICAgICAgICAgICAwIT0ocmVzdWx0PWNvbWJpbmUoY29tYmluaW5nVGFibGUsY29tYmluZUZ3ZEluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVCYWNrSW5kZXgsIG91dFZhbHVlcykpICYmCisgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBjb21wb3NpdGlvbiByZXN1bHQgaXMgbm90IGV4Y2x1ZGVkICovCisgICAgICAgICAgICAgICAgICAgICFueF9jb250YWlucyhueCwgKGNoYXIpdmFsdWUsIChjaGFyKXZhbHVlMikKKyAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWU9b3V0VmFsdWVzWzBdOworICAgICAgICAgICAgICAgICAgICB2YWx1ZTI9b3V0VmFsdWVzWzFdOworICAgICAgICAgICAgICAgICAgICAvKiByZXBsYWNlIHRoZSBzdGFydGVyIHdpdGggdGhlIGNvbXBvc2l0aW9uLCByZW1vdmUgdGhlIAorICAgICAgICAgICAgICAgICAgICAgKiBjb21iaW5pbmcgbWFyayAKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIHJlbW92ZT0gbmNBcmcuYzI9PTAgPyBhcmdzLnN0YXJ0LTEgOiBhcmdzLnN0YXJ0LTI7IC8qIGluZGV4IHRvIHRoZSBjb21iaW5pbmcgbWFyayAqLworICAgIAorICAgICAgICAgICAgICAgICAgICAvKiByZXBsYWNlIHRoZSBzdGFydGVyIHdpdGggdGhlIGNvbXBvc2l0aW9uICovCisgICAgICAgICAgICAgICAgICAgIGFyZ3Muc291cmNlW3N0YXJ0ZXJdPShjaGFyKXZhbHVlOworICAgICAgICAgICAgICAgICAgICBpZihzdGFydGVySXNTdXBwbGVtZW50YXJ5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih2YWx1ZTIhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBib3RoIGFyZSBzdXBwbGVtZW50YXJ5ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5zb3VyY2Vbc3RhcnRlcisxXT0oY2hhcil2YWx1ZTI7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBjb21wb3NpdGlvbiBpcyBzaG9ydGVyIHRoYW4gdGhlIHN0YXJ0ZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIG1vdmUgdGhlIGludGVybWVkaWF0ZSBjaGFyYWN0ZXJzIGZvcndhcmQgb25lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRlcklzU3VwcGxlbWVudGFyeT1mYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBxPXN0YXJ0ZXIrMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByPXErMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShyPHJlbW92ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVtxKytdPWFyZ3Muc291cmNlW3IrK107CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tcmVtb3ZlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYodmFsdWUyIT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGUgY29tcG9zaXRpb24gaXMgbG9uZ2VyIHRoYW4gdGhlIHN0YXJ0ZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICogbW92ZSB0aGUgaW50ZXJtZWRpYXRlIGNoYXJhY3RlcnMgYmFjayBvbmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ZXJJc1N1cHBsZW1lbnRhcnk9dHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRlbXBvcmFyaWx5IGluY3JlbWVudCBmb3IgdGhlIGxvb3AgYm91bmRhcnkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhcnRlcjsgCisgICAgICAgICAgICAgICAgICAgICAgICBxPXJlbW92ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHI9KytyZW1vdmU7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShzdGFydGVyPHEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVstLXJdPWFyZ3Muc291cmNlWy0tcV07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnNvdXJjZVtzdGFydGVyXT0oY2hhcil2YWx1ZTI7CisgICAgICAgICAgICAgICAgICAgICAgICAtLXN0YXJ0ZXI7IC8qIHVuZG8gdGhlIHRlbXBvcmFyeSBpbmNyZW1lbnQgKi8KKyAgICAgICAgICAgICAgICAgICAgLyogfSBlbHNlIHsgYm90aCBhcmUgb24gdGhlIEJNUCwgbm90aGluZyBtb3JlIHRvIGRvICovCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogcmVtb3ZlIHRoZSBjb21iaW5pbmcgbWFyayBieSBtb3ZpbmcgdGhlIGZvbGxvd2luZyB0ZXh0IAorICAgICAgICAgICAgICAgICAgICAgKiBvdmVyIGl0ICovCisgICAgICAgICAgICAgICAgICAgIGlmKHJlbW92ZTxhcmdzLnN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBxPXJlbW92ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHI9YXJncy5zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKHI8YXJncy5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Muc291cmNlW3ErK109YXJncy5zb3VyY2VbcisrXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3Muc3RhcnQ9cmVtb3ZlOworICAgICAgICAgICAgICAgICAgICAgICAgYXJncy5saW1pdD1xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIGtlZXAgcHJldkNDIGJlY2F1c2Ugd2UgcmVtb3ZlZCB0aGUgY29tYmluaW5nIG1hcmsgKi8KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyogZG9uZT8gKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoYXJncy5zdGFydD09YXJncy5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChjaGFyKXByZXZDQzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBpcyB0aGUgY29tcG9zaXRpb24gYSBzdGFydGVyIHRoYXQgY29tYmluZXMgZm9yd2FyZD8gKi8KKyAgICAgICAgICAgICAgICAgICAgaWYocmVzdWx0PjEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZUZ3ZEluZGV4PWdldENvbWJpbmluZ0luZGV4RnJvbVN0YXJ0ZXIoKGNoYXIpdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcil2YWx1ZTIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICBzdGFydGVyPS0xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIHdlIGNvbWJpbmVkOyBjb250aW51ZSB3aXRoIGxvb2tpbmcgZm9yIGNvbXBvc2l0aW9ucyAqLworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBubyBjb21iaW5hdGlvbiB0aGlzIHRpbWUgKi8KKyAgICAgICAgICAgIHByZXZDQz1uY0FyZy5jYzsKKyAgICAgICAgICAgIGlmKGFyZ3Muc3RhcnQ9PWFyZ3MubGltaXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGNoYXIpcHJldkNDOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogaWYgKGMsIGMyKSBkaWQgbm90IGNvbWJpbmUsIHRoZW4gY2hlY2sgaWYgaXQgaXMgYSBzdGFydGVyICovCisgICAgICAgICAgICBpZihuY0FyZy5jYz09MCkgeworICAgICAgICAgICAgICAgIC8qIGZvdW5kIGEgbmV3IHN0YXJ0ZXI7IGNvbWJpbmVGbGFncz09MCBpZiAoYywgYzIpIGlzIGV4Y2x1ZGVkICovCisgICAgICAgICAgICAgICAgaWYoKGNvbWJpbmVGbGFncyZDT01CSU5FU19GV0QpIT0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGl0IG1heSBjb21iaW5lIHdpdGggc29tZXRoaW5nLCBwcmVwYXJlIGZvciBpdCAqLworICAgICAgICAgICAgICAgICAgICBpZihuY0FyZy5jMj09MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRlcklzU3VwcGxlbWVudGFyeT1mYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ZXI9YXJncy5zdGFydC0xOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRlcklzU3VwcGxlbWVudGFyeT1mYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ZXI9YXJncy5zdGFydC0yOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVGd2RJbmRleD1jb21iaW5lQmFja0luZGV4OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGl0IHdpbGwgbm90IGNvbWJpbmUgd2l0aCBhbnl0aGluZyAqLworICAgICAgICAgICAgICAgICAgICBzdGFydGVyPS0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZigob3B0aW9ucyZPUFRJT05TX0NPTVBPU0VfQ09OVElHVU9VUykhPTApIHsKKyAgICAgICAgICAgICAgICAvKiBGQ0M6IG5vIGRpc2NvbnRpZ3VvdXMgY29tcG9zaXRpb25zOyBhbnkgaW50ZXJ2ZW5pbmcgY2hhcmFjdGVyIGJsb2NrcyAqLworICAgICAgICAgICAgICAgIHN0YXJ0ZXI9LTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAKKyAgICAvLyBmaW5kIHRoZSBsYXN0IHRydWUgc3RhcnRlciBiZXR3ZWVuIHNyY1tzdGFydF0uLi4uc3JjW2N1cnJlbnRdIGdvaW5nIAorICAgIC8vIGJhY2t3YXJkcyBhbmQgcmV0dXJuIGl0cyBpbmRleAorICAgIHByaXZhdGUgc3RhdGljIGludCBmaW5kUHJldmlvdXNTdGFydGVyKGNoYXJbXXNyYywgaW50IHNyY1N0YXJ0LCBpbnQgY3VycmVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gY2NPclFDTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gZGVjb21wUUNNYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBtaW5Ob01heWJlKSB7IAorICAgICAgIGxvbmcgbm9ybTMyOyAKKyAgICAgICBQcmV2QXJncyBhcmdzID0gbmV3IFByZXZBcmdzKCk7CisgICAgICAgYXJncy5zcmMgPSBzcmM7CisgICAgICAgYXJncy5zdGFydCA9IHNyY1N0YXJ0OworICAgICAgIGFyZ3MuY3VycmVudCA9IGN1cnJlbnQ7CisgICAgICAgCisgICAgICAgd2hpbGUoYXJncy5zdGFydDxhcmdzLmN1cnJlbnQpIHsgCisgICAgICAgICAgIG5vcm0zMj0gZ2V0UHJldk5vcm0zMihhcmdzLCBtaW5Ob01heWJlLCBjY09yUUNNYXNrfGRlY29tcFFDTWFzayk7IAorICAgICAgICAgICBpZihpc1RydWVTdGFydGVyKG5vcm0zMiwgY2NPclFDTWFzaywgZGVjb21wUUNNYXNrKSkgeyAKKyAgICAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgfSAKKyAgICAgICB9IAorICAgICAgIHJldHVybiBhcmdzLmN1cnJlbnQ7IAorICAgIH0KKyAgICAKKyAgICAvKiBmaW5kIHRoZSBmaXJzdCB0cnVlIHN0YXJ0ZXIgaW4gW3NyYy4ubGltaXRbIGFuZCByZXR1cm4gdGhlIAorICAgICAqIHBvaW50ZXIgdG8gaXQgCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50LyppbmRleCovICAgIGZpbmROZXh0U3RhcnRlcihjaGFyW10gc3JjLGludCBzdGFydCxpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIHFjTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGRlY29tcFFDTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBtaW5Ob01heWJlKSB7CisgICAgICAgIGludCBwOworICAgICAgICBsb25nLyp1bnNpZ25lZCovIG5vcm0zMjsgCisgICAgICAgIGludCBjY09yUUNNYXNrOworICAgICAgICBjaGFyIGMsIGMyOworICAgIAorICAgICAgICBjY09yUUNNYXNrPUNDX01BU0t8cWNNYXNrOworICAgICAgICAKKyAgICAgICAgRGVjb21wb3NlQXJncyBkZWNvbXBBcmdzID0gbmV3IERlY29tcG9zZUFyZ3MoKTsKKworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIGlmKHN0YXJ0PT1saW1pdCkgeworICAgICAgICAgICAgICAgIGJyZWFrOyAvKiBlbmQgb2Ygc3RyaW5nICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjPXNyY1tzdGFydF07CisgICAgICAgICAgICBpZihjPG1pbk5vTWF5YmUpIHsKKyAgICAgICAgICAgICAgICBicmVhazsgLyogY2F0Y2hlcyBOVUwgdGVybWluYXRlciwgdG9vICovCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyKGMpOworICAgICAgICAgICAgaWYoKG5vcm0zMiZjY09yUUNNYXNrKT09MCkgeworICAgICAgICAgICAgICAgIGJyZWFrOyAvKiB0cnVlIHN0YXJ0ZXIgKi8KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmKGlzTm9ybTMyTGVhZFN1cnJvZ2F0ZShub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgLyogYyBpcyBhIGxlYWQgc3Vycm9nYXRlLCBnZXQgdGhlIHJlYWwgbm9ybTMyICovCisgICAgICAgICAgICAgICAgaWYoKHN0YXJ0KzEpPT1saW1pdCB8fCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9KHNyY1tzdGFydCsxXSkpKXsKKyAgICAgICAgICAgICAgICAgICAgLyogdW5tYXRjaGVkIGZpcnN0IHN1cnJvZ2F0ZTogY291bnRzIGFzIGEgdHJ1ZSBzdGFydGVyICovICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMiwgYzIpOworICAgIAorICAgICAgICAgICAgICAgIGlmKChub3JtMzImY2NPclFDTWFzayk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8qIHRydWUgc3RhcnRlciAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYzI9MDsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIChjLCBjMikgaXMgbm90IGEgdHJ1ZSBzdGFydGVyIGJ1dCBpdHMgZGVjb21wb3NpdGlvbiBtYXkgYmUgKi8KKyAgICAgICAgICAgIGlmKChub3JtMzImZGVjb21wUUNNYXNrKSE9MCkgeworICAgICAgICAgICAgICAgIC8qIChjLCBjMikgZGVjb21wb3NlcywgZ2V0IGV2ZXJ5dGhpbmcgZnJvbSB0aGUgdmFyaWFibGUtbGVuZ3RoCisgICAgICAgICAgICAgICAgICogIGV4dHJhIGRhdGEgKi8KKyAgICAgICAgICAgICAgICBwPWRlY29tcG9zZShub3JtMzIsIGRlY29tcFFDTWFzaywgZGVjb21wQXJncyk7CisgICAgCisgICAgICAgICAgICAgICAgLyogZ2V0IHRoZSBmaXJzdCBjaGFyYWN0ZXIncyBub3JtMzIgdG8gY2hlY2sgaWYgaXQgaXMgYSB0cnVlIAorICAgICAgICAgICAgICAgICAqIHN0YXJ0ZXIgKi8KKyAgICAgICAgICAgICAgICBpZihkZWNvbXBBcmdzLmNjPT0wICYmIChnZXROb3JtMzIoZXh0cmFEYXRhLHAsIHFjTWFzaykmcWNNYXNrKT09MCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsgLyogdHJ1ZSBzdGFydGVyICovCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgc3RhcnQrPSBjMj09MCA/IDEgOiAyOyAvKiBub3QgYSB0cnVlIHN0YXJ0ZXIsIGNvbnRpbnVlICovCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgIH0KKyAgICAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBDb21wb3NlUGFydEFyZ3N7CisgICAgICAgIGludCBwcmV2Q0M7CisgICAgICAgIGludCBsZW5ndGg7ICAgLyogbGVuZ3RoIG9mIGRlY29tcG9zZWQgcGFydCAqLworICAgIH0KKyAgICAgICAgCisgICAgIC8qIGRlY29tcG9zZSBhbmQgcmVjb21wb3NlIFtwcmV2U3RhcnRlci4uc3JjWyAqLworICAgIHByaXZhdGUgc3RhdGljIGNoYXJbXSBjb21wb3NlUGFydChDb21wb3NlUGFydEFyZ3MgYXJncywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmV2U3RhcnRlciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBzcmMsIGludCBzdGFydCwgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgIGludCByZWNvbXBvc2VMaW1pdDsKKyAgICAgICAgYm9vbGVhbiBjb21wYXQgPSgob3B0aW9ucyZPUFRJT05TX0NPTVBBVCkhPTApOworICAgICAgICAKKyAgICAgICAgLyogZGVjb21wb3NlIFtwcmV2U3RhcnRlci4uc3JjWyAqLworICAgICAgICBpbnRbXSBvdXRUcmFpbENDID0gbmV3IGludFsxXTsKKyAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyWyhsaW1pdC1wcmV2U3RhcnRlcikqTUFYX0JVRkZFUl9TSVpFXTsKKworICAgICAgICBmb3IoOzspeworICAgICAgICAgICAgYXJncy5sZW5ndGg9ZGVjb21wb3NlKHNyYyxwcmV2U3RhcnRlciwoc3RhcnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIsMCxidWZmZXIubGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGF0LG91dFRyYWlsQ0MsbngpOworICAgICAgICAgICAgaWYoYXJncy5sZW5ndGg8PWJ1ZmZlci5sZW5ndGgpeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgYnVmZmVyID0gbmV3IGNoYXJbYXJncy5sZW5ndGhdOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgIAorICAgICAgICAvKiByZWNvbXBvc2UgdGhlIGRlY29tcG9zaXRpb24gKi8KKyAgICAgICAgcmVjb21wb3NlTGltaXQ9YXJncy5sZW5ndGg7CisgICAgICAgICAgCisgICAgICAgIGlmKGFyZ3MubGVuZ3RoPj0yKSB7CisgICAgICAgICAgICBSZWNvbXBvc2VBcmdzIHJjQXJncyA9IG5ldyBSZWNvbXBvc2VBcmdzKCk7CisgICAgICAgICAgICByY0FyZ3Muc291cmNlICAgID0gYnVmZmVyOworICAgICAgICAgICAgcmNBcmdzLnN0YXJ0ICAgID0gMDsKKyAgICAgICAgICAgIHJjQXJncy5saW1pdCAgICA9IHJlY29tcG9zZUxpbWl0OyAKKyAgICAgICAgICAgIGFyZ3MucHJldkNDPXJlY29tcG9zZShyY0FyZ3MsIG9wdGlvbnMsIG54KTsKKyAgICAgICAgICAgIHJlY29tcG9zZUxpbWl0ID0gcmNBcmdzLmxpbWl0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKiByZXR1cm4gd2l0aCBhIHBvaW50ZXIgdG8gdGhlIHJlY29tcG9zaXRpb24gYW5kIGl0cyBsZW5ndGggKi8KKyAgICAgICAgYXJncy5sZW5ndGg9cmVjb21wb3NlTGltaXQ7CisgICAgICAgIHJldHVybiBidWZmZXI7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gY29tcG9zZUhhbmd1bChjaGFyIHByZXYsIGNoYXIgYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZy8qdW5zaWduZWQqLyBub3JtMzIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gc3JjLGludFtdIHNyY0luZGV4LCBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY29tcGF0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICBpbnQgc3RhcnQ9c3JjSW5kZXhbMF07CisgICAgICAgIGlmKGlzSmFtb1ZUTm9ybTMySmFtb1Yobm9ybTMyKSkgeworICAgICAgICAgICAgLyogYyBpcyBhIEphbW8gViwgY29tcG9zZSB3aXRoIHByZXZpb3VzIEphbW8gTCBhbmQgCisgICAgICAgICAgICAgKiBmb2xsb3dpbmcgSmFtbyBUICovCisgICAgICAgICAgICBwcmV2PShjaGFyKShwcmV2LUpBTU9fTF9CQVNFKTsKKyAgICAgICAgICAgIGlmKHByZXY8SkFNT19MX0NPVU5UKSB7CisgICAgICAgICAgICAgICAgYz0oY2hhcikoSEFOR1VMX0JBU0UrKHByZXYqSkFNT19WX0NPVU5UKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjLUpBTU9fVl9CQVNFKSkqSkFNT19UX0NPVU5UKTsKKyAgICAKKyAgICAgICAgICAgICAgICAvKiBjaGVjayBpZiB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgYSBKYW1vIFQgKG5vcm1hbCBvciAKKyAgICAgICAgICAgICAgICAgKiBjb21wYXRpYmlsaXR5KSAqLworICAgICAgICAgICAgICAgIGlmKHN0YXJ0IT1saW1pdCkgeworICAgICAgICAgICAgICAgICAgICBjaGFyIG5leHQsIHQ7CisgICAgCisgICAgICAgICAgICAgICAgICAgIG5leHQ9c3JjW3N0YXJ0XTsKKyAgICAgICAgICAgICAgICAgICAgaWYoKHQ9KGNoYXIpKG5leHQtSkFNT19UX0JBU0UpKTxKQU1PX1RfQ09VTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vcm1hbCBKYW1vIFQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBjKz10OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoY29tcGF0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBpZiBORktDLCB0aGVuIGNoZWNrIGZvciBjb21wYXRpYmlsaXR5IEphbW8gVCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIChCTVAgb25seSkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzIobmV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihpc05vcm0zMlJlZ3VsYXIobm9ybTMyKSAmJiAoKG5vcm0zMiZRQ19ORktEKSE9MCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcCAvKmluZGV4IGludG8gZXh0cmEgZGF0YSBhcnJheSovOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY29tcG9zZUFyZ3MgZGNBcmdzID0gbmV3IERlY29tcG9zZUFyZ3MoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwPWRlY29tcG9zZShub3JtMzIsIFFDX05GS0QsIGRjQXJncyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGNBcmdzLmxlbmd0aD09MSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQ9KGNoYXIpKGV4dHJhRGF0YVtwXS1KQU1PX1RfQkFTRSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SkFNT19UX0NPVU5UKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbXBhdGliaWxpdHkgSmFtbyBUICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMrPXQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKG54X2NvbnRhaW5zKG54LCBjKSkgeworICAgICAgICAgICAgICAgICAgICBpZighaXNIYW5ndWxXaXRob3V0SmFtb1QoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tc3RhcnQ7IC8qIHVuZG8gKytzdGFydCBmcm9tIHJlYWRpbmcgdGhlIEphbW8gVCAqLworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXhdPWM7CisgICAgICAgICAgICAgICAgc3JjSW5kZXhbMF09c3RhcnQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZihpc0hhbmd1bFdpdGhvdXRKYW1vVChwcmV2KSkgeworICAgICAgICAgICAgLyogYyBpcyBhIEphbW8gVCwgY29tcG9zZSB3aXRoIHByZXZpb3VzIEhhbmd1bCBMViB0aGF0IGRvZXMgbm90IAorICAgICAgICAgICAgICogY29udGFpbiBhIEphbW8gVCAqLworICAgICAgICAgICAgYz0oY2hhcikocHJldisoYy1KQU1PX1RfQkFTRSkpOworICAgICAgICAgICAgaWYobnhfY29udGFpbnMobngsIGMpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXhdPWM7CisgICAgICAgICAgICBzcmNJbmRleFswXT1zdGFydDsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgLyoKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wb3NlKGNoYXJbXSBzcmMsIGNoYXJbXSBkZXN0LGJvb2xlYW4gY29tcGF0LCBVbmljb2RlU2V0IG54KXsKKyAgICAgICAgcmV0dXJuIGNvbXBvc2Uoc3JjLDAsc3JjLmxlbmd0aCxkZXN0LDAsZGVzdC5sZW5ndGgsY29tcGF0LCBueCk7CisgICAgfQorICAgICovCisgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcG9zZShjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LGludCBkZXN0U3RhcnQsaW50IGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zLFVuaWNvZGVTZXQgbngpIHsKKyAgICAgICAgCisgICAgICAgIGludCBwcmV2U3JjLCBwcmV2U3RhcnRlcjsKKyAgICAgICAgbG9uZy8qdW5zaWduZWQqLyBub3JtMzI7IAorICAgICAgICBpbnQgY2NPclFDTWFzaywgcWNNYXNrOworICAgICAgICBpbnQgIHJlb3JkZXJTdGFydEluZGV4LCBsZW5ndGg7CisgICAgICAgIGNoYXIgYywgYzIsIG1pbk5vTWF5YmU7CisgICAgICAgIGludC8qdW5zaWduZWQgYnl0ZSovIGNjLCBwcmV2Q0M7CisgICAgICAgIGludFtdIGlvSW5kZXggPSBuZXcgaW50WzFdOworICAgICAgICBpbnQgZGVzdEluZGV4ID0gZGVzdFN0YXJ0OworICAgICAgICBpbnQgc3JjSW5kZXggPSBzcmNTdGFydDsKKyAgICAgICAgCisgICAgICAgIGlmKChvcHRpb25zJk9QVElPTlNfQ09NUEFUKSE9MCkgeworICAgICAgICAgICAgbWluTm9NYXliZT0oY2hhcilpbmRleGVzW0lOREVYX01JTl9ORktDX05PX01BWUJFXTsKKyAgICAgICAgICAgIHFjTWFzaz1RQ19ORktDOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbWluTm9NYXliZT0oY2hhcilpbmRleGVzW0lOREVYX01JTl9ORkNfTk9fTUFZQkVdOworICAgICAgICAgICAgcWNNYXNrPVFDX05GQzsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBwcmV2U3RhcnRlciBwb2ludHMgdG8gdGhlIGxhc3QgY2hhcmFjdGVyIGJlZm9yZSB0aGUgY3VycmVudCBvbmUKKyAgICAgICAgICogdGhhdCBpcyBhICJ0cnVlIiBzdGFydGVyIHdpdGggY2M9PTAgYW5kIHF1aWNrIGNoZWNrICJ5ZXMiLgorICAgICAgICAgKgorICAgICAgICAgKiBwcmV2U3RhcnRlciB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiBsb29raW5nIGZvciBhIHRydWUgc3RhcnRlcgorICAgICAgICAgKiB3aGlsZSBpbmNyZW1lbnRhbGx5IGRlY29tcG9zaW5nIFtwcmV2U3RhcnRlci4ucHJldlNyY1sKKyAgICAgICAgICogaW4gX2NvbXBvc2VQYXJ0KCkuIEhhdmluZyBhIGdvb2QgcHJldlN0YXJ0ZXIgYWxsb3dzIHRvIGp1c3QgZGVjb21wb3NlCisgICAgICAgICAqIHRoZSBlbnRpcmUgW3ByZXZTdGFydGVyLi5wcmV2U3JjWy4KKyAgICAgICAgICoKKyAgICAgICAgICogV2hlbiBfY29tcG9zZVBhcnQoKSBiYWNrcyBvdXQgZnJvbSBwcmV2U3JjIGJhY2sgdG8gcHJldlN0YXJ0ZXIsCisgICAgICAgICAqIHRoZW4gaXQgYWxzbyBiYWNrcyBvdXQgZGVzdEluZGV4IGJ5IHRoZSBzYW1lIGFtb3VudC4KKyAgICAgICAgICogVGhlcmVmb3JlLCBhdCBhbGwgdGltZXMsIHRoZSAocHJldlNyYy1wcmV2U3RhcnRlcikgc291cmNlIHVuaXRzCisgICAgICAgICAqIG11c3QgY29ycmVzcG9uZCAxOjEgdG8gZGVzdGluYXRpb24gdW5pdHMgY291bnRlZCB3aXRoIGRlc3RJbmRleCwKKyAgICAgICAgICogZXhjZXB0IGZvciByZW9yZGVyaW5nLgorICAgICAgICAgKiBUaGlzIGlzIHRydWUgZm9yIHRoZSBxYyAieWVzIiBjaGFyYWN0ZXJzIGNvcGllZCBpbiB0aGUgZmFzdCBsb29wLAorICAgICAgICAgKiBhbmQgZm9yIHB1cmUgcmVvcmRlcmluZy4KKyAgICAgICAgICogcHJldlN0YXJ0ZXIgbXVzdCBiZSBzZXQgZm9yd2FyZCB0byBzcmMgd2hlbiB0aGlzIGlzIG5vdCB0cnVlOgorICAgICAgICAgKiBJbiBfY29tcG9zZVBhcnQoKSBhbmQgYWZ0ZXIgY29tcG9zaW5nIGEgSGFuZ3VsIHN5bGxhYmxlLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIG1lY2hhbmlzbSByZWxpZXMgb24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGUgZGVjb21wb3NpdGlvbiBvZiBhIAorICAgICAgICAgKiB0cnVlIHN0YXJ0ZXIgYWxzbyBiZWdpbnMgd2l0aCBhIHRydWUgc3RhcnRlci4gZ2Vubm9ybS9zdG9yZS5jIGNoZWNrcyAKKyAgICAgICAgICogZm9yIHRoaXMuCisgICAgICAgICAqLworICAgICAgICBwcmV2U3RhcnRlcj1zcmNJbmRleDsKKyAgICAKKyAgICAgICAgY2NPclFDTWFzaz1DQ19NQVNLfHFjTWFzazsKKyAgICAgICAgLypkZXN0SW5kZXg9Ki9yZW9yZGVyU3RhcnRJbmRleD0wOy8qICMjIyNUT0RPIyMjIyBjaGVjayB0aGlzICoqLworICAgICAgICBwcmV2Q0M9MDsKKyAgICAKKyAgICAgICAgLyogYXZvaWQgY29tcGlsZXIgd2FybmluZ3MgKi8KKyAgICAgICAgbm9ybTMyPTA7CisgICAgICAgIGM9MDsKKyAgICAKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAvKiBjb3VudCBjb2RlIHVuaXRzIGJlbG93IHRoZSBtaW5pbXVtIG9yIHdpdGggaXJyZWxldmFudCBkYXRhIGZvciAKKyAgICAgICAgICAgICAqIHRoZSBxdWljayBjaGVjayAqLworICAgICAgICAgICAgcHJldlNyYz1zcmNJbmRleDsKKworICAgICAgICAgICAgd2hpbGUoc3JjSW5kZXghPXNyY0xpbWl0ICYmICgoYz1zcmNbc3JjSW5kZXhdKTxtaW5Ob01heWJlIHx8IAorICAgICAgICAgICAgICAgICAgICAgKChub3JtMzI9Z2V0Tm9ybTMyKGMpKSZjY09yUUNNYXNrKT09MCkpIHsKKyAgICAgICAgICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgICAgICAgICArK3NyY0luZGV4OworICAgICAgICAgICAgfQorCisgICAgCisgICAgICAgICAgICAvKiBjb3B5IHRoZXNlIGNvZGUgdW5pdHMgYWxsIGF0IG9uY2UgKi8KKyAgICAgICAgICAgIGlmKHNyY0luZGV4IT1wcmV2U3JjKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoPShpbnQpKHNyY0luZGV4LXByZXZTcmMpOworICAgICAgICAgICAgICAgIGlmKChkZXN0SW5kZXgrbGVuZ3RoKTw9ZGVzdExpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjLHByZXZTcmMsZGVzdCxkZXN0SW5kZXgsbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1sZW5ndGg7CisgICAgICAgICAgICAgICAgcmVvcmRlclN0YXJ0SW5kZXg9ZGVzdEluZGV4OworICAgIAorICAgICAgICAgICAgICAgIC8qIHNldCBwcmV2U3RhcnRlciB0byB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHF1aWNrIGNoZWNrIAorICAgICAgICAgICAgICAgICAqIGxvb3AgKi8KKyAgICAgICAgICAgICAgICBwcmV2U3RhcnRlcj1zcmNJbmRleC0xOworICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoc3JjW3ByZXZTdGFydGVyXSkgJiYgCisgICAgICAgICAgICAgICAgICAgIHByZXZTcmM8cHJldlN0YXJ0ZXIgJiYgCisgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShzcmNbKHByZXZTdGFydGVyLTEpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLS1wcmV2U3RhcnRlcjsKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgcHJldlNyYz1zcmNJbmRleDsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGVuZCBvZiBzb3VyY2UgcmVhY2hlZD8gKi8KKyAgICAgICAgICAgIGlmKHNyY0luZGV4PT1zcmNMaW1pdCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogYyBhbHJlYWR5IGNvbnRhaW5zICpzcmMgYW5kIG5vcm0zMiBpcyBzZXQgZm9yIGl0LCBpbmNyZW1lbnQgc3JjKi8KKyAgICAgICAgICAgICsrc3JjSW5kZXg7CisgICAgCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogc291cmNlIGJ1ZmZlciBwb2ludGVyczoKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiAgYWxsIGRvbmUgICAgICBxdWljayBjaGVjayAgIGN1cnJlbnQgY2hhciAgbm90IHlldAorICAgICAgICAgICAgICogICAgICAgICAgICAgICAgInllcyIgYnV0ICAgICAoYywgYzIpICAgICAgIHByb2Nlc3NlZAorICAgICAgICAgICAgICogICAgICAgICAgICAgICAgbWF5IGNvbWJpbmUKKyAgICAgICAgICAgICAqICAgICAgICAgICAgICAgIGZvcndhcmQKKyAgICAgICAgICAgICAqIFstLS0tLS0tLS0tLS0tWy0tLS0tLS0tLS0tLS1bLS0tLS0tLS0tLS0tLVstLS0tLS0tLS0tLS0tWworICAgICAgICAgICAgICogfCAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAgICB8CisgICAgICAgICAgICAgKiBzdGFydCAgICAgICAgIHByZXZTdGFydGVyICAgcHJldlNyYyAgICAgICBzcmMgICAgICAgICAgIGxpbWl0CisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIGRlc3RpbmF0aW9uIGJ1ZmZlciBwb2ludGVycyBhbmQgaW5kZXhlczoKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiAgYWxsIGRvbmUgICAgICBtaWdodCB0YWtlICAgIG5vdCBmaWxsZWQgeWV0CisgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICBjaGFyYWN0ZXJzIGZvcgorICAgICAgICAgICAgICogICAgICAgICAgICAgICAgcmVvcmRlcmluZworICAgICAgICAgICAgICogWy0tLS0tLS0tLS0tLS1bLS0tLS0tLS0tLS0tLVstLS0tLS0tLS0tLS0tWworICAgICAgICAgICAgICogfCAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgfAorICAgICAgICAgICAgICogZGVzdCAgICAgIHJlb3JkZXJTdGFydEluZGV4IGRlc3RJbmRleCAgICAgZGVzdENhcGFjaXR5CisgICAgICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgICAgIC8qIGNoZWNrIG9uZSBhYm92ZS1taW5pbXVtLCByZWxldmFudCBjb2RlIHVuaXQgKi8KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBub3JtMzIgaXMgZm9yIGM9KihzcmMtMSksIGFuZCB0aGUgcXVpY2sgY2hlY2sgZmxhZyBpcyAibm8iIG9yIAorICAgICAgICAgICAgICogIm1heWJlIiwgYW5kL29yIGNjIT0wCisgICAgICAgICAgICAgKiBjaGVjayBmb3IgSmFtbyBWL1QsIHRoZW4gZm9yIHN1cnJvZ2F0ZXMgYW5kIHJlZ3VsYXIgY2hhcmFjdGVycworICAgICAgICAgICAgICogYyBpcyBub3QgYSBIYW5ndWwgc3lsbGFibGUgb3IgSmFtbyBMIGJlY2F1c2UKKyAgICAgICAgICAgICAqIHRoZXkgYXJlIG5vdCBtYXJrZWQgd2l0aCBuby9tYXliZSBmb3IgTkZDICYgTkZLQyhhbmQgdGhlaXIgY2M9PTApCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmKGlzTm9ybTMySGFuZ3VsT3JKYW1vKG5vcm0zMikpIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIGMgaXMgYSBKYW1vIFYvVDoKKyAgICAgICAgICAgICAgICAgKiB0cnkgdG8gY29tcG9zZSB3aXRoIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIsIEphbW8gViBhbHNvIHdpdGggCisgICAgICAgICAgICAgICAgICogYSBmb2xsb3dpbmcgSmFtbyBULCBhbmQgc2V0IHZhbHVlcyBoZXJlIHJpZ2h0IG5vdyBpbiBjYXNlIHdlIAorICAgICAgICAgICAgICAgICAqIGp1c3QgY29udGludWUgd2l0aCB0aGUgbWFpbiBsb29wCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgcHJldkNDPWNjPTA7CisgICAgICAgICAgICAgICAgcmVvcmRlclN0YXJ0SW5kZXg9ZGVzdEluZGV4OworICAgICAgICAgICAgICAgIGlvSW5kZXhbMF09c3JjSW5kZXg7CisgICAgICAgICAgICAgICAgaWYoIAorICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXg+MCAmJgorICAgICAgICAgICAgICAgICAgICBjb21wb3NlSGFuZ3VsKHNyY1socHJldlNyYy0xKV0sIGMsIG5vcm0zMixzcmMsIGlvSW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjTGltaXQsIChvcHRpb25zJk9QVElPTlNfQ09NUEFUKSE9MCwgZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXg8PWRlc3RMaW1pdCA/IGRlc3RJbmRleC0xOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54KQorICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICBzcmNJbmRleD1pb0luZGV4WzBdOworICAgICAgICAgICAgICAgICAgICBwcmV2U3RhcnRlcj1zcmNJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNyY0luZGV4ID0gaW9JbmRleFswXTsKKyAgICAKKyAgICAgICAgICAgICAgICAvKiB0aGUgSmFtbyBWL1QgZGlkIG5vdCBjb21wb3NlIGludG8gYSBIYW5ndWwgc3lsbGFibGUsIGp1c3QgCisgICAgICAgICAgICAgICAgICogYXBwZW5kIHRvIGRlc3QgKi8KKyAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgIGxlbmd0aD0xOworICAgICAgICAgICAgICAgIHByZXZTdGFydGVyPXByZXZTcmM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmKGlzTm9ybTMyUmVndWxhcihub3JtMzIpKSB7CisgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD0xOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGMgaXMgYSBsZWFkIHN1cnJvZ2F0ZSwgZ2V0IHRoZSByZWFsIG5vcm0zMiAqLworICAgICAgICAgICAgICAgICAgICBpZihzcmNJbmRleCE9c3JjTGltaXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMyPXNyY1tzcmNJbmRleF0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK3NyY0luZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTI7CisgICAgICAgICAgICAgICAgICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLCBjMik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBjIGlzIGFuIHVucGFpcmVkIGxlYWQgc3Vycm9nYXRlLCBub3RoaW5nIHRvIGRvICovCisgICAgICAgICAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgICAgICAgICBub3JtMzI9MDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBDb21wb3NlUGFydEFyZ3MgYXJncyA9bmV3IENvbXBvc2VQYXJ0QXJncygpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8qIHdlIGFyZSBsb29raW5nIGF0IHRoZSBjaGFyYWN0ZXIgKGMsIGMyKSBhdCBbcHJldlNyYy4uc3JjWyAqLworICAgICAgICAgICAgICAgIGlmKG54X2NvbnRhaW5zKG54LCBjLCBjMikpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZXhjbHVkZWQ6IG5vcm0zMj09MCAqLworICAgICAgICAgICAgICAgICAgICBjYz0wOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZigobm9ybTMyJnFjTWFzayk9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgY2M9KGludCkoKFVOU0lHTkVEX0JZVEVfTUFTSykmKG5vcm0zMj4+Q0NfU0hJRlQpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjaGFyW10gcDsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogZmluZCBhcHByb3ByaWF0ZSBib3VuZGFyaWVzIGFyb3VuZCB0aGlzIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICogZGVjb21wb3NlIHRoZSBzb3VyY2UgdGV4dCBmcm9tIGJldHdlZW4gdGhlIGJvdW5kYXJpZXMsCisgICAgICAgICAgICAgICAgICAgICAqIGFuZCByZWNvbXBvc2UgaXQKKyAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICogdGhpcyBwdXRzIHRoZSBpbnRlcm1lZGlhdGUgdGV4dCBpbnRvIHRoZSBzaWRlIGJ1ZmZlciBiZWNhdXNlCisgICAgICAgICAgICAgICAgICAgICAqIGl0IG1pZ2h0IGJlIGxvbmdlciB0aGFuIHRoZSByZWNvbXBvc2l0aW9uIGVuZCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAqIG9yIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbWF5IGJlIHRvbyBzaG9ydCBvciBtaXNzaW5nCisgICAgICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICAgICAqIG5vdGUgdGhhdCBkZXN0SW5kZXggbWF5IGJlIGFkanVzdGVkIGJhY2t3YXJkcyB0byBhY2NvdW50CisgICAgICAgICAgICAgICAgICAgICAqIGZvciBzb3VyY2UgdGV4dCB0aGF0IHBhc3NlZCB0aGUgcXVpY2sgY2hlY2sgYnV0IG5lZWRlZCB0bworICAgICAgICAgICAgICAgICAgICAgKiB0YWtlIHBhcnQgaW4gdGhlIHJlY29tcG9zaXRpb24KKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIGludCBkZWNvbXBRQ01hc2s9KHFjTWFzazw8MikmMHhmOyAvKiBkZWNvbXBvc2l0aW9uIHF1aWNrIGNoZWNrIG1hc2sgKi8KKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogZmluZCB0aGUgbGFzdCB0cnVlIHN0YXJ0ZXIgaW4gW3ByZXZTdGFydGVyLi5zcmNbCisgICAgICAgICAgICAgICAgICAgICAqIGl0IGlzIGVpdGhlciB0aGUgZGVjb21wb3NpdGlvbiBvZiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgKGF0IHByZXZTcmMpLAorICAgICAgICAgICAgICAgICAgICAgKiBvciBwcmV2U3RhcnRlcgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoaXNUcnVlU3RhcnRlcihub3JtMzIsIENDX01BU0t8cWNNYXNrLCBkZWNvbXBRQ01hc2spKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2U3RhcnRlcj1wcmV2U3JjOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogYWRqdXN0IGRlc3RJbmRleDogYmFjayBvdXQgd2hhdCBoYWQgYmVlbiBjb3BpZWQgd2l0aCBxYyAieWVzIiAqLworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4LT1wcmV2U3JjLXByZXZTdGFydGVyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8qIGZpbmQgdGhlIG5leHQgdHJ1ZSBzdGFydGVyIGluIFtzcmMuLmxpbWl0WyAqLworICAgICAgICAgICAgICAgICAgICBzcmNJbmRleD1maW5kTmV4dFN0YXJ0ZXIoc3JjLCBzcmNJbmRleCxzcmNMaW1pdCwgcWNNYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb21wUUNNYXNrLCBtaW5Ob01heWJlKTsKKyAgICAgICAgICAgICAgICAgICAgLy9hcmdzLnByZXZTdGFydGVyID0gcHJldlN0YXJ0ZXI7CisgICAgICAgICAgICAgICAgICAgIGFyZ3MucHJldkNDICAgID0gcHJldkNDOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vYXJncy5kZXN0SW5kZXggPSBkZXN0SW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGFyZ3MubGVuZ3RoID0gbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICBwPWNvbXBvc2VQYXJ0KGFyZ3MscHJldlN0YXJ0ZXIsc3JjLHNyY0luZGV4LHNyY0xpbWl0LG9wdGlvbnMsbngpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmKHA9PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGFuIGVycm9yIG9jY3VycmVkIChvdXQgb2YgbWVtb3J5KSAqLworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHByZXZDQyAgICAgID0gYXJncy5wcmV2Q0M7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCAgICAgID0gYXJncy5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvKiBhcHBlbmQgdGhlIHJlY29tcG9zZWQgYnVmZmVyIGNvbnRlbnRzIHRvIHRoZSBkZXN0aW5hdGlvbiAKKyAgICAgICAgICAgICAgICAgICAgICogYnVmZmVyICovCisgICAgICAgICAgICAgICAgICAgIGlmKChkZXN0SW5kZXgrYXJncy5sZW5ndGgpPD1kZXN0TGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBpPTA7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShpPGFyZ3MubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109cFtpKytdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogYnVmZmVyIG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgICAgICAgICAvKiBrZWVwIGluY3JlbWVudGluZyB0aGUgZGVzdEluZGV4IGZvciBwcmVmbGlnaHRpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgIHByZXZTdGFydGVyPXNyY0luZGV4OworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBhcHBlbmQgdGhlIHNpbmdsZSBjb2RlIHBvaW50IChjLCBjMikgdG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciAqLworICAgICAgICAgICAgaWYoKGRlc3RJbmRleCtsZW5ndGgpPD1kZXN0TGltaXQpIHsKKyAgICAgICAgICAgICAgICBpZihjYyE9MCAmJiBjYzxwcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogKGMsIGMyKSBpcyBvdXQgb2Ygb3JkZXIgd2l0aCByZXNwZWN0IHRvIHRoZSBwcmVjZWRpbmcgCisgICAgICAgICAgICAgICAgICAgICAqIHRleHQgKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IHJlb3JkZXJTcGxpdD0gZGVzdEluZGV4OworICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXgrPWxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgcHJldkNDPWluc2VydE9yZGVyZWQoZGVzdCxyZW9yZGVyU3RhcnRJbmRleCwgcmVvcmRlclNwbGl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4LCBjLCBjMiwgY2MpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGp1c3QgYXBwZW5kIChjLCBjMikgKi8KKyAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109YzsKKyAgICAgICAgICAgICAgICAgICAgaWYoYzIhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdEluZGV4KytdPWMyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHByZXZDQz1jYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGJ1ZmZlciBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgIC8qIGtlZXAgaW5jcmVtZW50aW5nIHRoZSBkZXN0SW5kZXggZm9yIHByZWZsaWdodGluZyAqLworICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9bGVuZ3RoOworICAgICAgICAgICAgICAgIHByZXZDQz1jYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBkZXN0SW5kZXggLSBkZXN0U3RhcnQ7CisgICAgfQorICAgIC8qIG1ha2UgRkNEIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQvKmluZGV4Ki8gZmluZFNhZmVGQ0QoY2hhcltdIHNyYywgaW50IHN0YXJ0LCBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGZjZDE2KSB7CisgICAgICAgIGNoYXIgYywgYzI7CisgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIGZpbmQgdGhlIGZpcnN0IHBvc2l0aW9uIGluIFtzcmMuLmxpbWl0WyBhZnRlciBzb21lIGNjPT0wIGFjY29yZGluZyAKKyAgICAgICAgICogdG8gRkNEIGRhdGEKKyAgICAgICAgICoKKyAgICAgICAgICogYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbG9vcCwgd2UgaGF2ZSBmY2QxNiBmcm9tIGJlZm9yZSBzcmMKKyAgICAgICAgICoKKyAgICAgICAgICogc3RvcCBhdCBwb3NpdGlvbnM6CisgICAgICAgICAqIC0gYWZ0ZXIgdHJhaWwgY2M9PTAKKyAgICAgICAgICogLSBhdCB0aGUgZW5kIG9mIHRoZSBzb3VyY2UKKyAgICAgICAgICogLSBiZWZvcmUgbGVhZCBjYz09MAorICAgICAgICAgKi8KKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAvKiBzdG9wIGlmIHRyYWlsIGNjPT0wIGZvciB0aGUgcHJldmlvdXMgY2hhcmFjdGVyICovCisgICAgICAgICAgICBpZigoZmNkMTYmMHhmZik9PTApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGdldCBjPSpzcmMgLSBzdG9wIGF0IGVuZCBvZiBzdHJpbmcgKi8KKyAgICAgICAgICAgIGlmKHN0YXJ0PT1saW1pdCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYz1zcmNbc3RhcnRdOworICAgIAorICAgICAgICAgICAgLyogc3RvcCBpZiBsZWFkIGNjPT0wIGZvciB0aGlzIGNoYXJhY3RlciAqLworICAgICAgICAgICAgaWYoYzxNSU5fV0lUSF9MRUFEX0NDIHx8IChmY2QxNj1nZXRGQ0QxNihjKSk9PTApIHsKKyAgICAgICAgICAgICAgICBicmVhazsgLyogY2F0Y2hlcyB0ZXJtaW5hdGluZyBOVUwsIHRvbyAqLworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYoIVVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgIGlmKGZjZDE2PD0weGZmKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgfSBlbHNlIGlmKHN0YXJ0KzEhPWxpbWl0ICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9c3JjW3N0YXJ0KzFdKSkpIHsKKyAgICAgICAgICAgICAgICAvKiBjIGlzIGEgbGVhZCBzdXJyb2dhdGUsIGdldCB0aGUgcmVhbCBmY2QxNiAqLworICAgICAgICAgICAgICAgIGZjZDE2PWdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIoZmNkMTYsIGMyKTsKKyAgICAgICAgICAgICAgICBpZihmY2QxNjw9MHhmZikgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RhcnQrPTI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGMgaXMgYW4gdW5wYWlyZWQgZmlyc3Qgc3Vycm9nYXRlLCBsZWFkIGNjPT0wICovCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQvKnVuc2lnbmVkIGJ5dGUqLyBkZWNvbXBvc2VGQ0QoY2hhcltdIHNyYywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCxpbnQgZGVjb21wTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGVzdEluZGV4QXJyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgIGNoYXJbXSBwPW51bGw7CisgICAgICAgIGludCBwU3RhcnQ9LTE7CisgICAgICAgIAorICAgICAgICBsb25nIC8qdW5zaWduZWQgaW50Ki8gbm9ybTMyOworICAgICAgICBpbnQgcmVvcmRlclN0YXJ0SW5kZXg7CisgICAgICAgIGNoYXIgYywgYzI7CisgICAgICAgIGludC8qdW5zaWduZWQgYnl0ZSovIHByZXZDQzsKKyAgICAgICAgRGVjb21wb3NlQXJncyBhcmdzID0gbmV3IERlY29tcG9zZUFyZ3MoKTsKKyAgICAgICAgaW50IGRlc3RJbmRleCA9IGRlc3RJbmRleEFyclswXTsKKyAgICAgICAgLyoKKyAgICAgICAgICogY2Fub25pY2FsbHkgZGVjb21wb3NlIFtzcmMuLmRlY29tcExpbWl0WworICAgICAgICAgKgorICAgICAgICAgKiBhbGwgY2hhcmFjdGVycyBpbiB0aGlzIHJhbmdlIGhhdmUgc29tZSBub24temVybyBjYywKKyAgICAgICAgICogZGlyZWN0bHkgb3IgaW4gZGVjb21wb3NpdGlvbiwKKyAgICAgICAgICogc28gdGhhdCB3ZSBkbyBub3QgbmVlZCB0byBjaGVjayBpbiB0aGUgZm9sbG93aW5nIGZvciBxdWljay1jaGVjayAKKyAgICAgICAgICogbGltaXRzIGV0Yy4KKyAgICAgICAgICoKKyAgICAgICAgICogdGhlcmUgX2FyZV8gX25vXyBIYW5ndWwgc3lsbGFibGVzIG9yIEphbW9zIGluIGhlcmUgYmVjYXVzZSB0aGV5IGFyZSAKKyAgICAgICAgICogRkNELXNhZmUgKGNjPT0wKSEKKyAgICAgICAgICoKKyAgICAgICAgICogd2UgYWxzbyBkbyBub3QgbmVlZCB0byBjaGVjayBmb3IgYz09MCBiZWNhdXNlIHdlIGhhdmUgYW4gZXN0YWJsaXNoZWQgCisgICAgICAgICAqIGRlY29tcExpbWl0CisgICAgICAgICAqLworICAgICAgICByZW9yZGVyU3RhcnRJbmRleD1kZXN0SW5kZXg7CisgICAgICAgIHByZXZDQz0wOworCisgICAgICAgIHdoaWxlKHN0YXJ0PGRlY29tcExpbWl0KSB7CisgICAgICAgICAgICBjPXNyY1tzdGFydCsrXTsKKyAgICAgICAgICAgIG5vcm0zMj1nZXROb3JtMzIoYyk7CisgICAgICAgICAgICBpZihpc05vcm0zMlJlZ3VsYXIobm9ybTMyKSkgeworICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgYXJncy5sZW5ndGg9MTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiByZW1pbmRlcjogdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCBbc3JjLi5kZWNvbXBMaW1pdFsKKyAgICAgICAgICAgICAgICAgKiBub3QgY29udGFpbmluZyBhbnkgSGFuZ3VsL0phbW8gY2hhcmFjdGVycywKKyAgICAgICAgICAgICAgICAgKiB0aGVyZWZvcmUgdGhlIG9ubHkgc3BlY2lhbHMgYXJlIGxlYWQgc3Vycm9nYXRlcworICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIC8qIGMgaXMgYSBsZWFkIHN1cnJvZ2F0ZSwgZ2V0IHRoZSByZWFsIG5vcm0zMiAqLworICAgICAgICAgICAgICAgIGlmKHN0YXJ0IT1kZWNvbXBMaW1pdCAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMyPXNyY1tzdGFydF0pKXsKKyAgICAgICAgICAgICAgICAgICAgKytzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgYXJncy5sZW5ndGg9MjsKKyAgICAgICAgICAgICAgICAgICAgbm9ybTMyPWdldE5vcm0zMkZyb21TdXJyb2dhdGVQYWlyKG5vcm0zMiwgYzIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgICAgIGFyZ3MubGVuZ3RoPTE7CisgICAgICAgICAgICAgICAgICAgIG5vcm0zMj0wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGdldCB0aGUgZGVjb21wb3NpdGlvbiBhbmQgdGhlIGxlYWQgYW5kIHRyYWlsIGNjJ3MgKi8KKyAgICAgICAgICAgIGlmKG54X2NvbnRhaW5zKG54LCBjLCBjMikpIHsKKyAgICAgICAgICAgICAgICAvKiBleGNsdWRlZDogbm9ybTMyPT0wICovCisgICAgICAgICAgICAgICAgYXJncy5jYz1hcmdzLnRyYWlsQ0M9MDsKKyAgICAgICAgICAgICAgICBwPW51bGw7CisgICAgICAgICAgICB9IGVsc2UgaWYoKG5vcm0zMiZRQ19ORkQpPT0wKSB7CisgICAgICAgICAgICAgICAgLyogYyBkb2VzIG5vdCBkZWNvbXBvc2UgKi8KKyAgICAgICAgICAgICAgICBhcmdzLmNjPWFyZ3MudHJhaWxDQz0oaW50KSgoVU5TSUdORURfQllURV9NQVNLKSYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3JtMzI+PkNDX1NISUZUKSk7CisgICAgICAgICAgICAgICAgcD1udWxsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBjIGRlY29tcG9zZXMsIGdldCBldmVyeXRoaW5nIGZyb20gdGhlIHZhcmlhYmxlLWxlbmd0aCBleHRyYSAKKyAgICAgICAgICAgICAgICAgKiBkYXRhICovCisgICAgICAgICAgICAgICAgcFN0YXJ0PWRlY29tcG9zZShub3JtMzIsIGFyZ3MpOworICAgICAgICAgICAgICAgIHA9ZXh0cmFEYXRhOworICAgICAgICAgICAgICAgIGlmKGFyZ3MubGVuZ3RoPT0xKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGZhc3RwYXRoIGEgc2luZ2xlIGNvZGUgdW5pdCBmcm9tIGRlY29tcG9zaXRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgYz1wW3BTdGFydF07CisgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgICAgIHA9bnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBhcHBlbmQgdGhlIGRlY29tcG9zaXRpb24gdG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciwgYXNzdW1lIAorICAgICAgICAgICAgICogbGVuZ3RoPjAgKi8KKyAgICAgICAgICAgIGlmKChkZXN0SW5kZXgrYXJncy5sZW5ndGgpPD1kZXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGludCByZW9yZGVyU3BsaXQ9ZGVzdEluZGV4OworICAgICAgICAgICAgICAgIGlmKHA9PW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZmFzdHBhdGg6IHNpbmdsZSBjb2RlIHBvaW50ICovCisgICAgICAgICAgICAgICAgICAgIGlmKGFyZ3MuY2MhPTAgJiYgYXJncy5jYzxwcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIChjLCBjMikgaXMgb3V0IG9mIG9yZGVyIHdpdGggcmVzcGVjdCB0byB0aGUgcHJlY2VkaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgKiAgdGV4dCAqLworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1hcmdzLmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MudHJhaWxDQz1pbnNlcnRPcmRlcmVkKGRlc3QscmVvcmRlclN0YXJ0SW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVvcmRlclNwbGl0LCBkZXN0SW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYywgYzIsIGFyZ3MuY2MpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyoganVzdCBhcHBlbmQgKGMsIGMyKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109YzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGMyIT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109YzI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBnZW5lcmFsOiBtdWx0aXBsZSBjb2RlIHBvaW50cyAob3JkZXJlZCBieSB0aGVtc2VsdmVzKSAKKyAgICAgICAgICAgICAgICAgICAgICogZnJvbSBkZWNvbXBvc2l0aW9uICovCisgICAgICAgICAgICAgICAgICAgIGlmKGFyZ3MuY2MhPTAgJiYgYXJncy5jYzxwcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZSBkZWNvbXBvc2l0aW9uIGlzIG91dCBvZiBvcmRlciB3aXRoIHJlc3BlY3QgdG8gCisgICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGUgcHJlY2VkaW5nIHRleHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9YXJncy5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLnRyYWlsQ0M9bWVyZ2VPcmRlcmVkKGRlc3QscmVvcmRlclN0YXJ0SW5kZXgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW9yZGVyU3BsaXQsIHAsIHBTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcFN0YXJ0K2FyZ3MubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGp1c3QgYXBwZW5kIHRoZSBkZWNvbXBvc2l0aW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109cFtwU3RhcnQrK107CisgICAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKC0tYXJncy5sZW5ndGg+MCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGJ1ZmZlciBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgIC8qIGtlZXAgaW5jcmVtZW50aW5nIHRoZSBkZXN0SW5kZXggZm9yIHByZWZsaWdodGluZyAqLworICAgICAgICAgICAgICAgIGRlc3RJbmRleCs9YXJncy5sZW5ndGg7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBwcmV2Q0M9YXJncy50cmFpbENDOworICAgICAgICAgICAgaWYocHJldkNDPT0wKSB7CisgICAgICAgICAgICAgICAgcmVvcmRlclN0YXJ0SW5kZXg9ZGVzdEluZGV4OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRlc3RJbmRleEFyclswXT1kZXN0SW5kZXg7CisgICAgICAgIHJldHVybiBwcmV2Q0M7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgaW50IG1ha2VGQ0QoY2hhcltdIHNyYywgIGludCBzcmNTdGFydCwgIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LCBpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGludCBwcmV2U3JjLCBkZWNvbXBTdGFydDsKKyAgICAgICAgaW50IGRlc3RJbmRleCwgbGVuZ3RoOworICAgICAgICBjaGFyIGMsIGMyOworICAgICAgICBpbnQgLyogdW5zaWduZWQgaW50Ki8gZmNkMTY7CisgICAgICAgIGludCBwcmV2Q0MsIGNjOworICAgIAorICAgICAgICAvKiBpbml0aWFsaXplICovCisgICAgICAgIGRlY29tcFN0YXJ0PXNyY1N0YXJ0OworICAgICAgICBkZXN0SW5kZXg9ZGVzdFN0YXJ0OworICAgICAgICBwcmV2Q0M9MDsKKyAgICAgICAgYz0wOworICAgICAgICBmY2QxNj0wOworICAgICAgICBpbnRbXSBkZXN0SW5kZXhBcnIgPSBuZXcgaW50WzFdOworICAgICAgICBkZXN0SW5kZXhBcnJbMF09ZGVzdEluZGV4OworICAgICAgICAKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAvKiBza2lwIGEgcnVuIG9mIGNvZGUgdW5pdHMgYmVsb3cgdGhlIG1pbmltdW0gb3Igd2l0aCBpcnJlbGV2YW50IAorICAgICAgICAgICAgICogZGF0YSBmb3IgdGhlIEZDRCBjaGVjayAqLworICAgICAgICAgICAgcHJldlNyYz1zcmNTdGFydDsKKworICAgICAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgICAgaWYoc3JjU3RhcnQ9PXNyY0xpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZigoYz1zcmNbc3JjU3RhcnRdKTxNSU5fV0lUSF9MRUFEX0NDKSB7CisgICAgICAgICAgICAgICAgICAgIHByZXZDQz0oaW50KS1jOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZigoZmNkMTY9Z2V0RkNEMTYoYykpPT0wKSB7CisgICAgICAgICAgICAgICAgICAgIHByZXZDQz0wOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK3NyY1N0YXJ0OworICAgICAgICAgICAgfQorCisgICAgCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogcHJldkNDIGhhcyB2YWx1ZXMgZnJvbSB0aGUgZm9sbG93aW5nIHJhbmdlczoKKyAgICAgICAgICAgICAqIDAuLjB4ZmYgLSB0aGUgcHJldmlvdXMgdHJhaWwgY29tYmluaW5nIGNsYXNzCisgICAgICAgICAgICAgKiA8MCAgICAgIC0gdGhlIG5lZ2F0aXZlIHZhbHVlIG9mIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQ7CisgICAgICAgICAgICAgKiAgICAgICAgICAgdGhhdCBjb2RlIHVuaXQgd2FzIDxfTk9STV9NSU5fV0lUSF9MRUFEX0NDIGFuZCBpdHMgCisgICAgICAgICAgICAgKiAgICAgICAgICAgZ2V0RkNEMTYoKQorICAgICAgICAgICAgICogICAgICAgICAgIHdhcyBkZWZlcnJlZCBzbyB0aGF0IGF2ZXJhZ2UgdGV4dCBpcyBjaGVja2VkIGZhc3RlcgorICAgICAgICAgICAgICovCisgICAgCisgICAgICAgICAgICAvKiBjb3B5IHRoZXNlIGNvZGUgdW5pdHMgYWxsIGF0IG9uY2UgKi8KKyAgICAgICAgICAgIGlmKHNyY1N0YXJ0IT1wcmV2U3JjKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoPShpbnQpKHNyY1N0YXJ0LXByZXZTcmMpOworICAgICAgICAgICAgICAgIGlmKChkZXN0SW5kZXgrbGVuZ3RoKTw9ZGVzdExpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjLHByZXZTcmMsZGVzdCxkZXN0SW5kZXgsbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVzdEluZGV4Kz1sZW5ndGg7CisgICAgICAgICAgICAgICAgcHJldlNyYz1zcmNTdGFydDsKKyAgICAKKyAgICAgICAgICAgICAgICAvKiBwcmV2Q0M8MCBpcyBvbmx5IHBvc3NpYmxlIGZyb20gdGhlIGFib3ZlIGxvb3AsIGkuZS4sIG9ubHkgaWYKKyAgICAgICAgICAgICAgICAgKiAgcHJldlNyYzxzcmMgKi8KKyAgICAgICAgICAgICAgICBpZihwcmV2Q0M8MCkgeworICAgICAgICAgICAgICAgICAgICAvKiB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIHdhcyA8X05PUk1fTUlOX1dJVEhfTEVBRF9DQywgd2UgCisgICAgICAgICAgICAgICAgICAgICAqIG5lZWQgdG8gZ2V0IGl0cyB0cmFpbCBjYyAqLworICAgICAgICAgICAgICAgICAgICBpZighbnhfY29udGFpbnMobngsIChpbnQpLXByZXZDQykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZDQz0oaW50KShnZXRGQ0QxNigoaW50KS1wcmV2Q0MpJjB4ZmYpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldkNDPTA7IC8qIGV4Y2x1ZGVkOiBmY2QxNj09MCAqLworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIHNldCBhIHBvaW50ZXIgdG8gdGhpcyBiZWxvdy1VKzAzMDAgY2hhcmFjdGVyOworICAgICAgICAgICAgICAgICAgICAgKiBpZiBwcmV2Q0M9PTAgdGhlbiBpdCB3aWxsIG1vdmVkIHRvIGFmdGVyIHRoaXMgY2hhcmFjdGVyIAorICAgICAgICAgICAgICAgICAgICAgKiBiZWxvdworICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgZGVjb21wU3RhcnQ9cHJldlNyYy0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBub3c6CisgICAgICAgICAgICAgKiBwcmV2U3JjPT1zcmMgLSB1c2VkIGxhdGVyIHRvIGFkanVzdCBkZXN0SW5kZXggYmVmb3JlIAorICAgICAgICAgICAgICogICAgICAgICAgZGVjb21wb3NpdGlvbgorICAgICAgICAgICAgICogcHJldkNDPj0wCisgICAgICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgICAgIC8qIGVuZCBvZiBzb3VyY2UgcmVhY2hlZD8gKi8KKyAgICAgICAgICAgIGlmKHNyY1N0YXJ0PT1zcmNMaW1pdCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogc2V0IGEgcG9pbnRlciB0byBhZnRlciB0aGUgbGFzdCBzb3VyY2UgcG9zaXRpb24gd2hlcmUgcHJldkNDPT0wKi8KKyAgICAgICAgICAgIGlmKHByZXZDQz09MCkgeworICAgICAgICAgICAgICAgIGRlY29tcFN0YXJ0PXByZXZTcmM7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBjIGFscmVhZHkgY29udGFpbnMgKnNyYyBhbmQgZmNkMTYgaXMgc2V0IGZvciBpdCwgaW5jcmVtZW50IHNyYyAqLworICAgICAgICAgICAgKytzcmNTdGFydDsKKyAgICAKKyAgICAgICAgICAgIC8qIGNoZWNrIG9uZSBhYm92ZS1taW5pbXVtLCByZWxldmFudCBjb2RlIHVuaXQgKi8KKyAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgIC8qIGMgaXMgYSBsZWFkIHN1cnJvZ2F0ZSwgZ2V0IHRoZSByZWFsIGZjZDE2ICovCisgICAgICAgICAgICAgICAgaWYoc3JjU3RhcnQhPXNyY0xpbWl0ICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9c3JjW3NyY1N0YXJ0XSkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytzcmNTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgZmNkMTY9Z2V0RkNEMTZGcm9tU3Vycm9nYXRlUGFpcigoY2hhcilmY2QxNiwgYzIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGMyPTA7CisgICAgICAgICAgICAgICAgICAgIGZjZDE2PTA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjMj0wOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLyogd2UgYXJlIGxvb2tpbmcgYXQgdGhlIGNoYXJhY3RlciAoYywgYzIpIGF0IFtwcmV2U3JjLi5zcmNbICovCisgICAgICAgICAgICBpZihueF9jb250YWlucyhueCwgYywgYzIpKSB7CisgICAgICAgICAgICAgICAgZmNkMTY9MDsgLyogZXhjbHVkZWQ6IGZjZDE2PT0wICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBjaGVjayB0aGUgY29tYmluaW5nIG9yZGVyLCBnZXQgdGhlIGxlYWQgY2MgKi8KKyAgICAgICAgICAgIGNjPShpbnQpKGZjZDE2Pj44KTsKKyAgICAgICAgICAgIGlmKGNjPT0wIHx8IGNjPj1wcmV2Q0MpIHsKKyAgICAgICAgICAgICAgICAvKiB0aGUgb3JkZXIgaXMgb2sgKi8KKyAgICAgICAgICAgICAgICBpZihjYz09MCkgeworICAgICAgICAgICAgICAgICAgICBkZWNvbXBTdGFydD1wcmV2U3JjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwcmV2Q0M9KGludCkoZmNkMTYmMHhmZik7CisgICAgCisgICAgICAgICAgICAgICAgLyoganVzdCBhcHBlbmQgKGMsIGMyKSAqLworICAgICAgICAgICAgICAgIGxlbmd0aD0gYzI9PTAgPyAxIDogMjsKKyAgICAgICAgICAgICAgICBpZigoZGVzdEluZGV4K2xlbmd0aCk8PWRlc3RMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RJbmRleCsrXT1jOworICAgICAgICAgICAgICAgICAgICBpZihjMiE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtkZXN0SW5kZXgrK109YzI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkZXN0SW5kZXgrPWxlbmd0aDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogYmFjayBvdXQgdGhlIHBhcnQgb2YgdGhlIHNvdXJjZSB0aGF0IHdlIGNvcGllZCBhbHJlYWR5IGJ1dAorICAgICAgICAgICAgICAgICAqIGlzIG5vdyBnb2luZyB0byBiZSBkZWNvbXBvc2VkOworICAgICAgICAgICAgICAgICAqIHByZXZTcmMgaXMgc2V0IHRvIGFmdGVyIHdoYXQgd2FzIGNvcGllZAorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGRlc3RJbmRleC09KGludCkocHJldlNyYy1kZWNvbXBTdGFydCk7CisgICAgCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBmaW5kIHRoZSBwYXJ0IG9mIHRoZSBzb3VyY2UgdGhhdCBuZWVkcyB0byBiZSBkZWNvbXBvc2VkOworICAgICAgICAgICAgICAgICAqIHRvIGJlIHNhZmUgYW5kIHNpbXBsZSwgZGVjb21wb3NlIHRvIGJlZm9yZSB0aGUgbmV4dCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgKiB3aXRoIGxlYWQgY2M9PTAKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBzcmNTdGFydD1maW5kU2FmZUZDRChzcmMsc3JjU3RhcnQsIHNyY0xpbWl0LCAoY2hhcilmY2QxNik7CisgICAgCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiB0aGUgc291cmNlIHRleHQgZG9lcyBub3QgZnVsZmlsbCB0aGUgY29uZGl0aW9ucyBmb3IgRkNEOworICAgICAgICAgICAgICAgICAqIGRlY29tcG9zZSBhbmQgcmVvcmRlciBhIGxpbWl0ZWQgcGllY2Ugb2YgdGhlIHRleHQKKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBkZXN0SW5kZXhBcnJbMF0gPSBkZXN0SW5kZXg7CisgICAgICAgICAgICAgICAgcHJldkNDPWRlY29tcG9zZUZDRChzcmMsZGVjb21wU3RhcnQsIHNyY1N0YXJ0LGRlc3QsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdEluZGV4QXJyLG54KTsKKyAgICAgICAgICAgICAgICBkZWNvbXBTdGFydD1zcmNTdGFydDsKKyAgICAgICAgICAgICAgICBkZXN0SW5kZXg9ZGVzdEluZGV4QXJyWzBdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZGVzdEluZGV4IC0gZGVzdFN0YXJ0OworICAgIAorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENvbWJpbmluZ0NsYXNzKGludCBjKSB7CisgICAgICAgIGxvbmcgbm9ybTMyOworICAgICAgICBub3JtMzI9Z2V0Tm9ybTMyKGMpOworICAgICAgICByZXR1cm4gKGNoYXIpKChub3JtMzI+PkNDX1NISUZUKSYweEZGKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzRnVsbENvbXBvc2l0aW9uRXhjbHVzaW9uKGludCBjKSB7CisgICAgICAgIGlmKGlzRm9ybWF0VmVyc2lvbl8yXzEpIHsKKyAgICAgICAgICAgIGludCBhdXggPUF1eFRyaWVJbXBsLmF1eFRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgICAgICByZXR1cm4gKGJvb2xlYW4pKChhdXggJiBBVVhfQ09NUF9FWF9NQVNLKSE9MCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzQ2Fub25TYWZlU3RhcnQoaW50IGMpIHsKKyAgICAgICAgaWYoaXNGb3JtYXRWZXJzaW9uXzJfMSkgeworICAgICAgICAgICAgaW50IGF1eCA9IEF1eFRyaWVJbXBsLmF1eFRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgICAgICByZXR1cm4gKGJvb2xlYW4pKChhdXggJiBBVVhfVU5TQUZFX01BU0spPT0wKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZ2V0Q2Fub25TdGFydFNldChpbnQgYywgVVNlcmlhbGl6ZWRTZXQgZmlsbFNldCkgeworCisgICAgICAgIGlmKGZpbGxTZXQhPW51bGwgJiYgY2Fub25TdGFydFNldHMhPW51bGwpIHsKKyAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogYmluYXJ5IHNlYXJjaCBmb3IgYworICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFRoZXJlIGFyZSB0d28gc2VhcmNoIHRhYmxlcywKKyAgICAgICAgICAgICAqIG9uZSBmb3IgQk1QIGNvZGUgcG9pbnRzIGFuZCBvbmUgZm9yIHN1cHBsZW1lbnRhcnkgb25lcy4KKyAgICAgICAgICAgICAqIFNlZSB1bm9ybWltcC5oIGZvciBkZXRhaWxzLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBjaGFyW10gdGFibGU7CisgICAgICAgICAgICBpbnQgaT0wLCBzdGFydCwgbGltaXQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludFtdIGluZGV4ZXMgPSAoaW50W10pIGNhbm9uU3RhcnRTZXRzW0NBTk9OX1NFVF9JTkRJQ0lFU19JTkRFWF07CisgICAgICAgICAgICBjaGFyW10gc3RhcnRTZXRzID0gKGNoYXJbXSkgY2Fub25TdGFydFNldHNbQ0FOT05fU0VUX1NUQVJUX1NFVFNfSU5ERVhdOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZihjPD0weGZmZmYpIHsKKyAgICAgICAgICAgICAgICB0YWJsZT0oY2hhcltdKSBjYW5vblN0YXJ0U2V0c1tDQU5PTl9TRVRfQk1QX1RBQkxFX0lOREVYXTsKKyAgICAgICAgICAgICAgICBzdGFydD0wOworICAgICAgICAgICAgICAgIGxpbWl0PXRhYmxlLmxlbmd0aDsKKyAgICAKKyAgICAgICAgICAgICAgICAvKiBlYWNoIGVudHJ5IGlzIGEgcGFpciB7IGMsIHJlc3VsdCB9ICovCisgICAgICAgICAgICAgICAgd2hpbGUoc3RhcnQ8bGltaXQtMikgeworICAgICAgICAgICAgICAgICAgICBpPShjaGFyKSgoKHN0YXJ0K2xpbWl0KS80KSoyKTsgCisgICAgICAgICAgICAgICAgICAgIGlmKGM8dGFibGVbaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0PWk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydD1pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKGkpOworICAgICAgICAgICAgICAgIC8qIGZvdW5kPyAqLworICAgICAgICAgICAgICAgIGlmKGM9PXRhYmxlW3N0YXJ0XSkgeworICAgICAgICAgICAgICAgICAgICBpPXRhYmxlW3N0YXJ0KzFdOworICAgICAgICAgICAgICAgICAgICBpZigoaSAmIENBTk9OX1NFVF9CTVBfTUFTSyk9PUNBTk9OX1NFVF9CTVBfSVNfSU5ERVgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJlc3VsdCAwMXh4eHh4eCB4eHh4eHggY29udGFpbnMgaW5kZXggeCB0byBhIAorICAgICAgICAgICAgICAgICAgICAgICAgICogVVNlcmlhbGl6ZWRTZXQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGkmPShDQU5PTl9TRVRfTUFYX0NBTk9OX1NFVFMtMSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsbFNldC5nZXRTZXQoc3RhcnRTZXRzLChpLWluZGV4ZXMubGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBvdGhlciByZXN1bHQgdmFsdWVzIGFyZSBCTVAgY29kZSBwb2ludHMgZm9yIAorICAgICAgICAgICAgICAgICAgICAgICAgICogc2luZ2xlLWNvZGUgcG9pbnQgc2V0cyAqLworICAgICAgICAgICAgICAgICAgICAgICAgZmlsbFNldC5zZXRUb09uZShpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjaGFyIGhpZ2gsIGxvdywgaCxqPTA7CisgICAgCisgICAgICAgICAgICAgICAgdGFibGU9KGNoYXJbXSkgY2Fub25TdGFydFNldHNbQ0FOT05fU0VUX1NVUFBfVEFCTEVfSU5ERVhdOworICAgICAgICAgICAgICAgIHN0YXJ0PTA7CisgICAgICAgICAgICAgICAgbGltaXQ9dGFibGUubGVuZ3RoOworICAgIAorICAgICAgICAgICAgICAgIGhpZ2g9KGNoYXIpKGM+PjE2KTsKKyAgICAgICAgICAgICAgICBsb3c9KGNoYXIpYzsKKyAgICAKKyAgICAgICAgICAgICAgICAvKiBlYWNoIGVudHJ5IGlzIGEgdHJpcGxldCB7IGhpZ2goYyksIGxvdyhjKSwgcmVzdWx0IH0gKi8KKyAgICAgICAgICAgICAgICB3aGlsZShzdGFydDxsaW1pdC0zKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIChzdGFydCtsaW1pdCkvMiBhbmQgYWRkcmVzcyB0cmlwbGV0cyAqLworICAgICAgICAgICAgICAgICAgICBpPShjaGFyKSgoKHN0YXJ0K2xpbWl0KS82KSozKTsKKyAgICAgICAgICAgICAgICAgICAgaj0oY2hhcikodGFibGVbaV0mMHgxZik7IC8qIGhpZ2ggd29yZCAqLworICAgICAgICAgICAgICAgICAgICBpbnQgdGFibGVWYWwgPSB0YWJsZVtpKzFdOworICAgICAgICAgICAgICAgICAgICBpbnQgbG93SW50ID0gbG93OworICAgICAgICAgICAgICAgICAgICBpZihoaWdoPGogfHwgKCh0YWJsZVZhbD5sb3dJbnQpICYmIChoaWdoPT1qKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0PWk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydD1pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvL1N5c3RlbS5lcnIucHJpbnRsbigiXHQoKGhpZ2g9PWopICYmICh0YWJsZVtpKzFdPmxvdykpID09ICIgKyAoKGhpZ2g9PWopICYmICh0YWJsZVZhbD5sb3dJbnQpKSApOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gS0xVREdFOiBJQk0gSklUIGluIDEuNC4wIGlzIHNvb28gYnJva2VuCisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBiZWxvdyBsaW5lcyBtYWtlIFRlc3RFeGhhdXN0aXZlIHBhc3MKKyAgICAgICAgICAgICAgICAgICAgaWYoSUNVRGVidWcuZW5hYmxlZCgpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiXHRcdCBqID0gIiArIFV0aWxpdHkuaGV4KGosNCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdCBpID0gIiArIFV0aWxpdHkuaGV4KGksNCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcdCBoaWdoID0gIisgVXRpbGl0eS5oZXgoaGlnaCkgICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXHQgbG93ID0gIiAgKyBVdGlsaXR5LmhleChsb3dJbnQsNCkgICArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlx0IHRhYmxlW2krMV06ICIrIFV0aWxpdHkuaGV4KHRhYmxlVmFsLDQpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvKiBmb3VuZD8gKi8KKyAgICAgICAgICAgICAgICBoPXRhYmxlW3N0YXJ0XTsKKworICAgICAgICAgICAgICAgIC8vU3lzdGVtLmVyci5wcmludGxuKCJjOiBcXFUiKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGMpKyIgaSA6ICIrSW50ZWdlci50b0hleFN0cmluZyhpKSArIiBoIDogIiArIEludGVnZXIudG9IZXhTdHJpbmcoaCkpOworICAgICAgICAgICAgICAgIGludCB0YWJsZVZhbDEgPSB0YWJsZVtzdGFydCsxXTsKKyAgICAgICAgICAgICAgICBpbnQgbG93SW50ID0gbG93OworCisgICAgICAgICAgICAgICAgaWYoaGlnaD09KGgmMHgxZikgJiYgbG93SW50PT10YWJsZVZhbDEpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHRhYmxlVmFsMiA9IHRhYmxlW3N0YXJ0KzJdOworICAgICAgICAgICAgICAgICAgICBpPXRhYmxlVmFsMjsKKyAgICAgICAgICAgICAgICAgICAgaWYoKGgmMHg4MDAwKT09MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhlIHJlc3VsdCBpcyBhbiBpbmRleCB0byBhIFVTZXJpYWxpemVkU2V0ICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmlsbFNldC5nZXRTZXQoc3RhcnRTZXRzLChpLWluZGV4ZXMubGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogc2luZ2xlLWNvZGUgcG9pbnQgc2V0IHt4fSBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICogdHJpcGxldCB7IDEwMHh4eHh4IDAwMGhoaGhoICBsbGxsbGxsbCBsbGxsbGxsbCAgeHh4eHh4eHggeHh4eHh4eHggfQorICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAvL2l8PSgoaW50KWggJiAweDFmMDApPDw4OyAvKiBhZGQgaGlnaCBiaXRzIGZyb20gaGlnaChjKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRlbXAgPSAoKGludCloICYgMHgxZjAwKTw8ODsKKyAgICAgICAgICAgICAgICAgICAgICAgIGl8PXRlbXA7IC8qIGFkZCBoaWdoIGJpdHMgZnJvbSBoaWdoKGMpICovCisgICAgICAgICAgICAgICAgICAgICAgICBmaWxsU2V0LnNldFRvT25lKChpbnQpaSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5vdCBmb3VuZCAqLworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRGQ19ORktDX0Nsb3N1cmUoaW50IGMsIGNoYXJbXSBkZXN0KSB7CisgICAgICAgIAorICAgICAgICBpbnQgZGVzdENhcGFjaXR5OworICAgICAgICAgCisgICAgICAgIGlmKGRlc3Q9PW51bGwgKSB7CisgICAgICAgICAgICBkZXN0Q2FwYWNpdHk9MDsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBkZXN0Q2FwYWNpdHkgPSBkZXN0Lmxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGF1eCA9QXV4VHJpZUltcGwuYXV4VHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKworICAgICAgICBhdXgmPSBBVVhfRk5DX01BU0s7CisgICAgICAgIGlmKGF1eCE9MCkgeworICAgICAgICAgICAgaW50IHM7CisgICAgICAgICAgICBpbnQgaW5kZXg9YXV4OyAKKyAgICAgICAgICAgIGludCBsZW5ndGg7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHMgPWV4dHJhRGF0YVtpbmRleF07CisgICAgICAgICAgICBpZihzPDB4ZmYwMCkgeworICAgICAgICAgICAgICAgIC8qIHMgcG9pbnRzIHRvIHRoZSBzaW5nbGUtdW5pdCBzdHJpbmcgKi8KKyAgICAgICAgICAgICAgICBsZW5ndGg9MTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoPXMmMHhmZjsKKyAgICAgICAgICAgICAgICArK2luZGV4OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoMDxsZW5ndGggJiYgbGVuZ3RoPD1kZXN0Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGV4dHJhRGF0YSxpbmRleCxkZXN0LDAsbGVuZ3RoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyogSXMgYyBhbiBORjxtb2RlPi1za2lwcGFibGUgY29kZSBwb2ludD8gU2VlIHVub3JtaW1wLmguICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMsIE5vcm1hbGl6ZXIuTW9kZSBtb2RlLCBsb25nIG1hc2spIHsKKyAgICAgICAgbG9uZyAvKnVuc2lnbmVkIGludCovIG5vcm0zMjsKKyAgICAgICAgbWFzayA9IG1hc2sgJiBVTlNJR05FRF9JTlRfTUFTSzsKKyAgICAgICAgY2hhciBhdXg7CisgICAKKyAgICAgICAgLyogY2hlY2sgY29uZGl0aW9ucyAoYSkuLihlKSwgc2VlIHVub3JtaW1wLmggKi8KKyAgICAgICAgbm9ybTMyID0gZ2V0Tm9ybTMyKGMpOworCisgICAgICAgIGlmKChub3JtMzImbWFzaykhPTApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLyogZmFpbHMgKGEpLi4oZSksIG5vdCBza2lwcGFibGUgKi8KKyAgICAgICAgfQorICAgIAorICAgICAgICBpZihtb2RlID09IE5vcm1hbGl6ZXIuTkZEIHx8IG1vZGUgPT0gTm9ybWFsaXplci5ORktEIHx8IG1vZGUgPT0gTm9ybWFsaXplci5OT05FKXsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOyAvKiBORipELCBwYXNzZWQgKGEpLi4oYyksIGlzIHNraXBwYWJsZSAqLworICAgICAgICB9CisgICAgICAgIC8qIGNoZWNrIGNvbmRpdGlvbnMgKGEpLi4oZSksIHNlZSB1bm9ybWltcC5oICovCisKKyAgICAgICAgLyogTkYqQy9GQ0MsIHBhc3NlZCAoYSkuLihlKSAqLworICAgICAgICBpZigobm9ybTMyJiBRQ19ORkQpPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLyogbm8gY2Fub25pY2FsIGRlY29tcG9zaXRpb24sIGlzIHNraXBwYWJsZSAqLworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIGNoZWNrIEhhbmd1bCBzeWxsYWJsZXMgYWxnb3JpdGhtaWNhbGx5ICovCisgICAgICAgIGlmKGlzTm9ybTMySGFuZ3VsT3JKYW1vKG5vcm0zMikpIHsKKyAgICAgICAgICAgIC8qIEphbW8gcGFzc2VkIChhKS4uKGUpIGFib3ZlLCBtdXN0IGJlIEhhbmd1bCAqLworICAgICAgICAgICAgcmV0dXJuICFpc0hhbmd1bFdpdGhvdXRKYW1vVCgoY2hhciljKTsgLyogTFZUIGFyZSBza2lwcGFibGUsIExWIGFyZSBub3QgKi8KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBpZihtb2RlPD1VTk9STV9ORktDKSB7IC0tIGVuYWJsZSB3aGVuIGltcGxlbWVudGluZyBGQ0MgKi8KKyAgICAgICAgLyogTkYqQywgdGVzdCAoZikgZmxhZyAqLworICAgICAgICBpZighaXNGb3JtYXRWZXJzaW9uXzJfMikgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvKiBubyAoZikgZGF0YSwgc2F5IG5vdCBza2lwcGFibGUgdG8gYmUgc2FmZSAqLworICAgICAgICB9CisgICAgCisKKyAgICAgICAgYXV4ID0gQXV4VHJpZUltcGwuYXV4VHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgcmV0dXJuIChhdXgmQVVYX05GQ19TS0lQX0ZfTUFTSyk9PTA7IC8qIFRSVUU9c2tpcHBhYmxlIGlmIHRoZSAoZikgZmxhZyBpcyBub3Qgc2V0ICovCisgICAgCisgICAgICAgIC8qIH0gZWxzZSB7IEZDQywgdGVzdCBmY2Q8PTEgaW5zdGVhZCBvZiB0aGUgYWJvdmUgfSAqLworICAgIH0KKyAgICAKKyAgICAvKgorICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuCisgICAgX2VudW1Qcm9wZXJ0eVN0YXJ0c1JhbmdlKGNvbnN0IHZvaWQgKmNvbnRleHQsIFVDaGFyMzIgc3RhcnQsIFVDaGFyMzIgbGltaXQsIHVpbnQzMl90IHZhbHVlKSB7CisgICAgICAgIC8vIGFkZCB0aGUgc3RhcnQgY29kZSBwb2ludCB0byB0aGUgVVNldCAKKyAgICAgICAgdXNldF9hZGQoKFVTZXQgKiljb250ZXh0LCBzdGFydCk7CisgICAgICAgIHJldHVybiBUUlVFOworICAgIH0KKyAgICAqLworCisgICAgcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IGFkZFByb3BlcnR5U3RhcnRzKFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIGludCBjOworICAgICAgIAorICAgICAgICAvKiBhZGQgdGhlIHN0YXJ0IGNvZGUgcG9pbnQgb2YgZWFjaCBzYW1lLXZhbHVlIHJhbmdlIG9mIGVhY2ggdHJpZSAqLworICAgICAgICAvL3V0cmllX2VudW0oJm5vcm1UcmllLCBOVUxMLCBfZW51bVByb3BlcnR5U3RhcnRzUmFuZ2UsIHNldCk7CisgICAgICAgIFRyaWVJdGVyYXRvciBub3JtSXRlciA9IG5ldyBUcmllSXRlcmF0b3IoTm9ybVRyaWVJbXBsLm5vcm1UcmllKTsKKyAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgbm9ybVJlc3VsdCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAgICAKKyAgICAgICAgd2hpbGUobm9ybUl0ZXIubmV4dChub3JtUmVzdWx0KSl7CisgICAgICAgICAgICBzZXQuYWRkKG5vcm1SZXN1bHQuc3RhcnQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvL3V0cmllX2VudW0oJmZjZFRyaWUsIE5VTEwsIF9lbnVtUHJvcGVydHlTdGFydHNSYW5nZSwgc2V0KTsKKyAgICAgICAgVHJpZUl0ZXJhdG9yIGZjZEl0ZXIgID0gbmV3IFRyaWVJdGVyYXRvcihGQ0RUcmllSW1wbC5mY2RUcmllKTsKKyAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZmNkUmVzdWx0ID0gbmV3IFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisKKyAgICAgICAgd2hpbGUoZmNkSXRlci5uZXh0KGZjZFJlc3VsdCkpeworICAgICAgICAgICAgc2V0LmFkZChmY2RSZXN1bHQuc3RhcnQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZihpc0Zvcm1hdFZlcnNpb25fMl8xKXsKKyAgICAgICAgICAgIC8vdXRyaWVfZW51bSgmYXV4VHJpZSwgTlVMTCwgX2VudW1Qcm9wZXJ0eVN0YXJ0c1JhbmdlLCBzZXQpOworICAgICAgICAgICAgVHJpZUl0ZXJhdG9yIGF1eEl0ZXIgID0gbmV3IFRyaWVJdGVyYXRvcihBdXhUcmllSW1wbC5hdXhUcmllKTsKKyAgICAgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IGF1eFJlc3VsdCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAgICAgICAgd2hpbGUoYXV4SXRlci5uZXh0KGF1eFJlc3VsdCkpeworICAgICAgICAgICAgICAgIHNldC5hZGQoYXV4UmVzdWx0LnN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvKiBhZGQgSGFuZ3VsIExWIHN5bGxhYmxlcyBhbmQgTFYrMSBiZWNhdXNlIG9mIHNraXBwYWJsZXMgKi8KKyAgICAgICAgZm9yKGM9SEFOR1VMX0JBU0U7IGM8SEFOR1VMX0JBU0UrSEFOR1VMX0NPVU5UOyBjKz1KQU1PX1RfQ09VTlQpIHsKKyAgICAgICAgICAgIHNldC5hZGQoYyk7CisgICAgICAgICAgICBzZXQuYWRkKGMrMSk7CisgICAgICAgIH0KKyAgICAgICAgc2V0LmFkZChIQU5HVUxfQkFTRStIQU5HVUxfQ09VTlQpOyAvKiBhZGQgSGFuZ3VsKzEgdG8gY29udGludWUgd2l0aCBvdGhlciBwcm9wZXJ0aWVzICovCisgICAgICAgIHJldHVybiBzZXQ7IC8vIGZvciBjaGFpbmluZworICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVybmFsIEFQSSwgdXNlZCBpbiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoKS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAcGFyYW0gYyBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIG1vZGVWYWx1ZSBudW1lcmljIHZhbHVlIGNvbXBhdGlibGUgd2l0aCBNb2RlCisgICAgICogQHJldHVybiBudW1lcmljIHZhbHVlIGNvbXBhdGlibGUgd2l0aCBRdWlja0NoZWNrCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgcXVpY2tDaGVjayhpbnQgYywgaW50IG1vZGVWYWx1ZSkgeworICAgICAgICBmaW5hbCBpbnQgcWNNYXNrWy8qVU5PUk1fTU9ERV9DT1VOVCovXT17CisgICAgICAgICAgICAwLCAwLCBRQ19ORkQsIFFDX05GS0QsIFFDX05GQywgUUNfTkZLQworICAgICAgICB9OworCisgICAgICAgIGludCBub3JtMzI9KGludClnZXROb3JtMzIoYykmcWNNYXNrW21vZGVWYWx1ZV07CisKKyAgICAgICAgaWYobm9ybTMyPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gMTsgLy8gWUVTCisgICAgICAgIH0gZWxzZSBpZigobm9ybTMyJlFDX0FOWV9OTykhPTApIHsKKyAgICAgICAgICAgIHJldHVybiAwOyAvLyBOTworICAgICAgICB9IGVsc2UgLyogX05PUk1fUUNfQU5ZX01BWUJFICovIHsKKyAgICAgICAgICAgIHJldHVybiAyOyAvLyBNQVlCRTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVybmFsIEFQSSwgdXNlZCBieSBjb2xsYXRpb24gY29kZS4KKyAgICAgKiBHZXQgYWNjZXNzIHRvIHRoZSBpbnRlcm5hbCBGQ0QgdHJpZSB0YWJsZSB0byBiZSBhYmxlIHRvIHBlcmZvcm0KKyAgICAgKiBpbmNyZW1lbnRhbCwgcGVyLWNvZGUgdW5pdCwgRkNEIGNoZWNrcyBpbiBjb2xsYXRpb24uCisgICAgICogT25lIHBvaW50ZXIgaXMgc3VmZmljaWVudCBiZWNhdXNlIHRoZSB0cmllIGluZGV4IHZhbHVlcyBhcmUgb2Zmc2V0CisgICAgICogYnkgdGhlIGluZGV4IHNpemUsIHNvIHRoYXQgdGhlIHNhbWUgcG9pbnRlciBpcyB1c2VkIHRvIGFjY2VzcyB0aGUgdHJpZSAKKyAgICAgKiBkYXRhLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgQ2hhclRyaWUgZ2V0RkNEVHJpZSgpeworICAgICAgICByZXR1cm4gRkNEVHJpZUltcGwuZmNkVHJpZTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKworICAgIAorICAgLyogY29tcGFyZSBjYW5vbmljYWxseSBlcXVpdmFsZW50IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworICAgIC8qCisgICAgICogQ29tcGFyZSB0d28gc3RyaW5ncyBmb3IgY2Fub25pY2FsIGVxdWl2YWxlbmNlLgorICAgICAqIEZ1cnRoZXIgb3B0aW9ucyBpbmNsdWRlIGNhc2UtaW5zZW5zaXRpdmUgY29tcGFyaXNvbiBhbmQKKyAgICAgKiBjb2RlIHBvaW50IG9yZGVyIChhcyBvcHBvc2VkIHRvIGNvZGUgdW5pdCBvcmRlcikuCisgICAgICoKKyAgICAgKiBJbiB0aGlzIGZ1bmN0aW9uLCBjYW5vbmljYWwgZXF1aXZhbGVuY2UgaXMgb3B0aW9uYWwgYXMgd2VsbC4KKyAgICAgKiBJZiBjYW5vbmljYWwgZXF1aXZhbGVuY2UgaXMgdGVzdGVkLCB0aGVuIGJvdGggc3RyaW5ncyBtdXN0IGZ1bGZpbGwKKyAgICAgKiB0aGUgRkNEIGNoZWNrLgorICAgICAqCisgICAgICogU2VtYW50aWNhbGx5LCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiAgIHN0cmNtcFtDb2RlUG9pbnRPcmRlcl0oZm9sZENhc2UoTkZEKHMxKSksIGZvbGRDYXNlKE5GRChzMikpKQorICAgICAqIHdoZXJlIGNvZGUgcG9pbnQgb3JkZXIsIE5GRCBhbmQgZm9sZENhc2UgYXJlIGFsbCBvcHRpb25hbC4KKyAgICAgKgorICAgICAqIFN0cmluZyBjb21wYXJpc29ucyBhbG1vc3QgYWx3YXlzIHlpZWxkIHJlc3VsdHMgYmVmb3JlIHByb2Nlc3NpbmcgYm90aCAKKyAgICAgKiBzdHJpbmdzIGNvbXBsZXRlbHkuCisgICAgICogVGhleSBhcmUgZ2VuZXJhbGx5IG1vcmUgZWZmaWNpZW50IHdvcmtpbmcgaW5jcmVtZW50YWxseSBpbnN0ZWFkIG9mCisgICAgICogcGVyZm9ybWluZyB0aGUgc3ViLXByb2Nlc3NpbmcgKHN0cmxlbiwgbm9ybWFsaXphdGlvbiwgY2FzZS1mb2xkaW5nKQorICAgICAqIG9uIHRoZSBlbnRpcmUgc3RyaW5ncyBmaXJzdC4KKyAgICAgKgorICAgICAqIEl0IGlzIGFsc28gdW5uZWNlc3NhcnkgdG8gbm90IG5vcm1hbGl6ZSBpZGVudGljYWwgY2hhcmFjdGVycy4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gd29ya3MgaW4gcHJpbmNpcGxlIGFzIGZvbGxvd3M6CisgICAgICoKKyAgICAgKiBsb29wIHsKKyAgICAgKiAgIGdldCBvbmUgY29kZSB1bml0IGMxIGZyb20gczEgKC0xIGlmIGVuZCBvZiBzb3VyY2UpCisgICAgICogICBnZXQgb25lIGNvZGUgdW5pdCBjMiBmcm9tIHMyICgtMSBpZiBlbmQgb2Ygc291cmNlKQorICAgICAqCisgICAgICogICBpZihlaXRoZXIgc3RyaW5nIGZpbmlzaGVkKSB7CisgICAgICogICAgIHJldHVybiByZXN1bHQ7CisgICAgICogICB9CisgICAgICogICBpZihjMT09YzIpIHsKKyAgICAgKiAgICAgY29udGludWU7CisgICAgICogICB9CisgICAgICoKKyAgICAgKiAgIC8vIGMxIT1jMgorICAgICAqICAgdHJ5IHRvIGRlY29tcG9zZS9jYXNlLWZvbGQgYzEvYzIsIGFuZCBjb250aW51ZSBpZiBvbmUgZG9lczsKKyAgICAgKgorICAgICAqICAgLy8gc3RpbGwgYzEhPWMyIGFuZCBuZWl0aGVyIGRlY29tcG9zZXMvY2FzZS1mb2xkcywgcmV0dXJuIHJlc3VsdAorICAgICAqICAgcmV0dXJuIGMxLWMyOworICAgICAqIH0KKyAgICAgKgorICAgICAqIFdoZW4gYSBjaGFyYWN0ZXIgZGVjb21wb3NlcywgdGhlbiB0aGUgcG9pbnRlciBmb3IgdGhhdCBzb3VyY2UgY2hhbmdlcyB0bworICAgICAqIHRoZSBkZWNvbXBvc2l0aW9uLCBwdXNoaW5nIHRoZSBwcmV2aW91cyBwb2ludGVyIG9udG8gYSBzdGFjay4KKyAgICAgKiBXaGVuIHRoZSBlbmQgb2YgdGhlIGRlY29tcG9zaXRpb24gaXMgcmVhY2hlZCwgdGhlbiB0aGUgY29kZSB1bml0IHJlYWRlcgorICAgICAqIHBvcHMgdGhlIHByZXZpb3VzIHNvdXJjZSBmcm9tIHRoZSBzdGFjay4KKyAgICAgKiAoU2FtZSBmb3IgY2FzZS1mb2xkaW5nLikKKyAgICAgKgorICAgICAqIFRoaXMgaXMgY29tcGxpY2F0ZWQgZnVydGhlciBieSBvcGVyYXRpbmcgb24gdmFyaWFibGUtd2lkdGggVVRGLTE2LgorICAgICAqIFRoZSB0b3AgcGFydCBvZiB0aGUgbG9vcCB3b3JrcyBvbiBjb2RlIHVuaXRzLCB3aGlsZSBsb29rdXBzIGZvciBkZWNvbXBvc2l0aW9uCisgICAgICogYW5kIGNhc2UtZm9sZGluZyBuZWVkIGNvZGUgcG9pbnRzLgorICAgICAqIENvZGUgcG9pbnRzIGFyZSBhc3NlbWJsZWQgYWZ0ZXIgdGhlIGVxdWFsaXR5L2VuZC1vZi1zb3VyY2UgcGFydC4KKyAgICAgKiBUaGUgc291cmNlIHBvaW50ZXIgaXMgb25seSBhZHZhbmNlZCBiZXlvbmQgYWxsIGNvZGUgdW5pdHMgd2hlbiB0aGUgY29kZSBwb2ludAorICAgICAqIGFjdHVhbGx5IGRlY29tcG9zZXMvY2FzZS1mb2xkcy4KKyAgICAgKgorICAgICAqIElmIHdlIHdlcmUgb24gYSB0cmFpbCBzdXJyb2dhdGUgdW5pdCB3aGVuIGFzc2VtYmxpbmcgYSBjb2RlIHBvaW50LAorICAgICAqIGFuZCB0aGUgY29kZSBwb2ludCBkZWNvbXBvc2VzL2Nhc2UtZm9sZHMsIHRoZW4gdGhlIGRlY29tcG9zaXRpb24vZm9sZGluZworICAgICAqIHJlc3VsdCBtdXN0IGJlIGNvbXBhcmVkIHdpdGggdGhlIHBhcnQgb2YgdGhlIG90aGVyIHN0cmluZyB0aGF0IGNvcnJlc3BvbmRzIHRvCisgICAgICogdGhpcyBzdHJpbmcncyBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgKiBTaW5jZSB3ZSBvbmx5IGFzc2VtYmxlIGEgY29kZSBwb2ludCB3aGVuIGhpdHRpbmcgYSB0cmFpbCB1bml0IHdoZW4gdGhlCisgICAgICogcHJlY2VkaW5nIGxlYWQgdW5pdHMgd2VyZSBpZGVudGljYWwsIHdlIGJhY2sgdXAgdGhlIG90aGVyIHN0cmluZyBieSBvbmUgdW5pdAorICAgICAqIGluIHN1Y2ggYSBjYXNlLgorICAgICAqCisgICAgICogVGhlIG9wdGlvbmFsIGNvZGUgcG9pbnQgb3JkZXIgY29tcGFyaXNvbiBhdCB0aGUgZW5kIHdvcmtzIHdpdGgKKyAgICAgKiB0aGUgc2FtZSBmaXgtdXAgYXMgdGhlIG90aGVyIGNvZGUgcG9pbnQgb3JkZXIgY29tcGFyaXNvbiBmdW5jdGlvbnMuCisgICAgICogU2VlIHVzdHJpbmcuYyBhbmQgdGhlIGNvbW1lbnQgbmVhciB0aGUgZW5kIG9mIHRoaXMgZnVuY3Rpb24uCisgICAgICoKKyAgICAgKiBBc3N1bXB0aW9uOiBBIGRlY29tcG9zaXRpb24gb3IgY2FzZS1mb2xkaW5nIHJlc3VsdCBzdHJpbmcgbmV2ZXIgY29udGFpbnMKKyAgICAgKiBhIHNpbmdsZSBzdXJyb2dhdGUuIFRoaXMgaXMgYSBzYWZlIGFzc3VtcHRpb24gaW4gdGhlIFVuaWNvZGUgU3RhbmRhcmQuCisgICAgICogVGhlcmVmb3JlLCB3ZSBkbyBub3QgbmVlZCB0byBjaGVjayBmb3Igc3Vycm9nYXRlIHBhaXJzIGFjcm9zcworICAgICAqIGRlY29tcG9zaXRpb24vY2FzZS1mb2xkaW5nIGJvdW5kYXJpZXMuCisgICAgICogRnVydGhlciBhc3N1bXB0aW9ucyAoc2VlIHZlcmlmaWNhdGlvbnMgdHN0bm9ybS5jcHApOgorICAgICAqIFRoZSBBUEkgZnVuY3Rpb24gY2hlY2tzIGZvciBGQ0QgZmlyc3QsIHdoaWxlIHRoZSBjb3JlIGZ1bmN0aW9uCisgICAgICogZmlyc3QgY2FzZS1mb2xkcyBhbmQgdGhlbiBkZWNvbXBvc2VzLiBUaGlzIHJlcXVpcmVzIHRoYXQgY2FzZS1mb2xkaW5nIGRvZXMgbm90CisgICAgICogdW4tRkNEIGFueSBzdHJpbmdzLgorICAgICAqCisgICAgICogVGhlIEFQSSBmdW5jdGlvbiBtYXkgYWxzbyBORkQgdGhlIGlucHV0IGFuZCB0dXJuIG9mZiBkZWNvbXBvc2l0aW9uLgorICAgICAqIFRoaXMgcmVxdWlyZXMgdGhhdCBjYXNlLWZvbGRpbmcgZG9lcyBub3QgdW4tTkZEIHN0cmluZ3MgZWl0aGVyLgorICAgICAqCisgICAgICogVE9ETyBJZiBhbnkgb2YgdGhlIGFib3ZlIHR3byBhc3N1bXB0aW9ucyBpcyB2aW9sYXRlZCwKKyAgICAgKiB0aGVuIHRoaXMgZW50aXJlIGNvZGUgbXVzdCBiZSByZS10aG91Z2h0LgorICAgICAqIElmIHRoaXMgaGFwcGVucywgdGhlbiBhIHNpbXBsZSBzb2x1dGlvbiBpcyB0byBjYXNlLWZvbGQgYm90aCBzdHJpbmdzIHVwIGZyb250CisgICAgICogYW5kIHRvIHR1cm4gb2ZmIFVOT1JNX0lOUFVUX0lTX0ZDRC4KKyAgICAgKiBXZSBhbHJlYWR5IGRvIHRoaXMgd2hlbiBub3QgYm90aCBzdHJpbmdzIGFyZSBpbiBGQ0QgYmVjYXVzZSBtYWtlRkNECisgICAgICogd291bGQgYmUgYSBwYXJ0aWFsIE5GRCBiZWZvcmUgdGhlIGNhc2UgZm9sZGluZywgd2hpY2ggZG9lcyBub3Qgd29yay4KKyAgICAgKiBOb3RlIHRoYXQgYWxsIG9mIHRoaXMgaXMgb25seSBhIHByb2JsZW0gd2hlbiBjYXNlLWZvbGRpbmcgX2FuZF8KKyAgICAgKiBjYW5vbmljYWwgZXF1aXZhbGVuY2UgY29tZSB0b2dldGhlci4KKyAgICAgKiAKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNvdWxkIGJlIG1vdmVkIHRvIGEgZGlmZmVyZW50IHNvdXJjZSBmaWxlLCBhdCBpbmNyZWFzZWQgY29zdAorICAgICAqIGZvciBjYWxsaW5nIHRoZSBkZWNvbXBvc2l0aW9uIGFjY2VzcyBmdW5jdGlvbi4KKyAgICAgKi8KKyAgICAKKyAgICAvLyBzdGFjayBlbGVtZW50IGZvciBwcmV2aW91cy1sZXZlbCBzb3VyY2UvZGVjb21wb3NpdGlvbiBwb2ludGVycworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIENtcEVxdWl2TGV2ZWwgeworICAgICAgICBjaGFyW10gc291cmNlOworICAgICAgICBpbnQgc3RhcnQ7CisgICAgICAgIGludCBzOworICAgICAgICBpbnQgbGltaXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgY2Fub25pY2FsIGRlY29tcG9zaXRpb24gZm9yIG9uZSBjb2RlIHBvaW50LgorICAgICAqIEBwYXJhbSBjIGNvZGUgcG9pbnQKKyAgICAgKiBAcGFyYW0gYnVmZmVyIG91dC1vbmx5IGJ1ZmZlciBmb3IgYWxnb3JpdGhtaWMgZGVjb21wb3NpdGlvbnMgb2YgSGFuZ3VsCisgICAgICogQHBhcmFtIGxlbmd0aCBvdXQtb25seSwgdGFrZXMgdGhlIGxlbmd0aCBvZiB0aGUgZGVjb21wb3NpdGlvbiwgaWYgYW55CisgICAgICogQHJldHVybiBpbmRleCBpbnRvIHRoZSBleHRyYURhdGEgYXJyYXksIG9yIDAgaWYgbm9uZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgICBwcml2YXRlIHN0YXRpYyBpbnQgZGVjb21wb3NlKGludCBjLCBjaGFyW10gYnVmZmVyKSB7CisgICAgICAgIAorICAgICAgICBsb25nIG5vcm0zMjsKKyAgICAgICAgaW50IGxlbmd0aD0wOworICAgICAgICBub3JtMzIgPSAobG9uZykgKChVTlNJR05FRF9JTlRfTUFTSykgJiBOb3JtVHJpZUltcGwubm9ybVRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYykpOworICAgICAgICBpZigobm9ybTMyICYgUUNfTkZEKSE9MCkgeworICAgICAgICAgICAgaWYoaXNOb3JtMzJIYW5ndWxPckphbW8obm9ybTMyKSkgeworICAgICAgICAgICAgICAgIC8qIEhhbmd1bCBzeWxsYWJsZTogZGVjb21wb3NlIGFsZ29yaXRobWljYWxseSAqLworICAgICAgICAgICAgICAgIGNoYXIgYzI7CisgICAgCisgICAgICAgICAgICAgICAgYy09SEFOR1VMX0JBU0U7CisgICAgCisgICAgICAgICAgICAgICAgYzI9KGNoYXIpKGMlSkFNT19UX0NPVU5UKTsKKyAgICAgICAgICAgICAgICBjLz1KQU1PX1RfQ09VTlQ7CisgICAgICAgICAgICAgICAgaWYoYzI+MCkgeworICAgICAgICAgICAgICAgICAgICBidWZmZXJbMl09KGNoYXIpKEpBTU9fVF9CQVNFK2MyKTsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTM7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPTI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1ZmZlclsxXT0oY2hhcikoSkFNT19WX0JBU0UrYyVKQU1PX1ZfQ09VTlQpOworICAgICAgICAgICAgICAgIGJ1ZmZlclswXT0oY2hhcikoSkFNT19MX0JBU0UrYy9KQU1PX1ZfQ09VTlQpOworICAgICAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIG5vcm1hbCBkZWNvbXBvc2l0aW9uICovCisgICAgICAgICAgICAgICAgRGVjb21wb3NlQXJncyAgYXJncyA9IG5ldyBEZWNvbXBvc2VBcmdzKCk7CisgICAgICAgICAgICAgICAgaW50IGluZGV4ID0gZGVjb21wb3NlKG5vcm0zMiwgYXJncyk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShleHRyYURhdGEsaW5kZXgsYnVmZmVyLDAsYXJncy5sZW5ndGgpOworICAgICAgICAgICAgICAgIHJldHVybiBhcmdzLmxlbmd0aCA7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBmb2xkQ2FzZShpbnQgYywgY2hhcltdIGRlc3QsIGludCBkZXN0U3RhcnQsIGludCBkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucyl7CisgICAgICAgIFN0cmluZyBzcmMgPSBVVEYxNi52YWx1ZU9mKGMpOworICAgICAgICBTdHJpbmcgZm9sZGVkU3RyID0gVUNoYXJhY3Rlci5mb2xkQ2FzZShzcmMsb3B0aW9ucyk7CisgICAgICAgIGNoYXJbXSBmb2xkZWRDID0gZm9sZGVkU3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGZvcihpbnQgaT0wO2k8Zm9sZGVkQy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIGlmKGRlc3RTdGFydDxkZXN0TGltaXQpeworICAgICAgICAgICAgICAgIGRlc3RbZGVzdFN0YXJ0XT1mb2xkZWRDW2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gYWx3YXlzIGluY3JlbWVudCBkZXN0U3RhcnQgc28gdGhhdCB3ZSBjYW4gcmV0dXJuIAorICAgICAgICAgICAgLy8gdGhlIHJlcXVpcmVkIGxlbmd0aAorICAgICAgICAgICAgZGVzdFN0YXJ0Kys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChjPT1VVEYxNi5jaGFyQXQoZm9sZGVkU3RyLDApKSA/IC1kZXN0U3RhcnQgOiBkZXN0U3RhcnQ7CisgICAgfQorICAgIAorICAgIC8qCisgICAgIHByaXZhdGUgc3RhdGljIGludCBmb2xkQ2FzZShjaGFyW10gc3JjLGludCBzcmNTdGFydCxpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LCBpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucyl7CisgICAgICAgIFN0cmluZyBzb3VyY2UgPW5ldyBTdHJpbmcoc3JjLHNyY1N0YXJ0LChzcmNMaW1pdC1zcmNTdGFydCkpOworICAgICAgICBTdHJpbmcgZm9sZGVkU3RyID0gVUNoYXJhY3Rlci5mb2xkQ2FzZShzb3VyY2Usb3B0aW9ucyk7CisgICAgICAgIGNoYXJbXSBmb2xkZWRDID0gZm9sZGVkU3RyLnRvQ2hhckFycmF5KCk7CisgICAgICAgIGZvcihpbnQgaT0wO2k8Zm9sZGVkQy5sZW5ndGg7aSsrKXsKKyAgICAgICAgICAgIGlmKGRlc3RTdGFydDxkZXN0TGltaXQpeworICAgICAgICAgICAgICAgIGRlc3RbZGVzdFN0YXJ0XT1mb2xkZWRDW2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gYWx3YXlzIGluY3JlbWVudCBkZXN0U3RhcnQgc28gdGhhdCB3ZSBjYW4gcmV0dXJuIAorICAgICAgICAgICAgLy8gdGhlIHJlcXVpcmVkIGxlbmd0aAorICAgICAgICAgICAgZGVzdFN0YXJ0Kys7CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGVzdFN0YXJ0OworICAgIH0KKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNtcEVxdWl2Rm9sZChTdHJpbmcgczEsIFN0cmluZyBzMixpbnQgb3B0aW9ucyl7CisgICAgICAgIHJldHVybiBjbXBFcXVpdkZvbGQoczEudG9DaGFyQXJyYXkoKSwwLHMxLmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMyLnRvQ2hhckFycmF5KCksMCxzMi5sZW5ndGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zKTsKKyAgICB9CisgICAgCisgICAgCisgICAgLy8gaW50ZXJuYWwgZnVuY3Rpb24KKyAgICBwdWJsaWMgc3RhdGljIGludCBjbXBFcXVpdkZvbGQoY2hhcltdIHMxLCBpbnQgczFTdGFydCxpbnQgczFMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHMyLCBpbnQgczJTdGFydCxpbnQgczJMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgLy8gY3VycmVudC1sZXZlbCBzdGFydC9saW1pdCAtIHMxL3MyIGFzIGN1cnJlbnQKKyAgICAgICAgaW50IHN0YXJ0MSwgc3RhcnQyLCBsaW1pdDEsIGxpbWl0MjsKKyAgICAgICAgY2hhcltdIGNTb3VyY2UxLCBjU291cmNlMjsKKyAgICAgICAgCisgICAgICAgIGNTb3VyY2UxID0gczE7CisgICAgICAgIGNTb3VyY2UyID0gczI7CisgICAgICAgIC8vIGRlY29tcG9zaXRpb24gdmFyaWFibGVzCisgICAgICAgIGludCBsZW5ndGg7CisgICAgCisgICAgICAgIC8vIHN0YWNrcyBvZiBwcmV2aW91cy1sZXZlbCBzdGFydC9jdXJyZW50L2xpbWl0CisgICAgICAgIENtcEVxdWl2TGV2ZWxbXSBzdGFjazEgPSBuZXcgQ21wRXF1aXZMZXZlbFtdeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ21wRXF1aXZMZXZlbCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDbXBFcXVpdkxldmVsKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgQ21wRXF1aXZMZXZlbFtdIHN0YWNrMiA9IG5ldyBDbXBFcXVpdkxldmVsW117IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDbXBFcXVpdkxldmVsKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENtcEVxdWl2TGV2ZWwoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgIAorICAgICAgICAvLyBkZWNvbXBvc2l0aW9uIGJ1ZmZlcnMgZm9yIEhhbmd1bAorICAgICAgICBjaGFyW10gZGVjb21wMSA9IG5ldyBjaGFyWzhdOworICAgICAgICBjaGFyW10gZGVjb21wMiA9IG5ldyBjaGFyWzhdOworICAgIAorICAgICAgICAvLyBjYXNlIGZvbGRpbmcgYnVmZmVycywgb25seSB1c2UgY3VycmVudC1sZXZlbCBzdGFydC9saW1pdAorICAgICAgICBjaGFyW10gZm9sZDEgPSBuZXcgY2hhclszMl07CisgICAgICAgIGNoYXJbXSBmb2xkMiA9IG5ldyBjaGFyWzMyXTsKKyAgICAKKyAgICAgICAgLy8gdHJhY2sgd2hpY2ggaXMgdGhlIGN1cnJlbnQgbGV2ZWwgcGVyIHN0cmluZworICAgICAgICBpbnQgbGV2ZWwxLCBsZXZlbDI7CisgICAgCisgICAgICAgIC8vIGN1cnJlbnQgY29kZSB1bml0cywgYW5kIGNvZGUgcG9pbnRzIGZvciBsb29rdXBzCisgICAgICAgIGludCBjMSwgYzI7CisgICAgICAgIGludCBjcDEsIGNwMjsKKyAgICAKKyAgICAgICAgLy8gbm8gYXJndW1lbnQgZXJyb3IgY2hlY2tpbmcgYmVjYXVzZSB0aGlzIGl0c2VsZiBpcyBub3QgYW4gQVBJCisgICAgCisgICAgICAgIC8vIGFzc3VtZSB0aGF0IGF0IGxlYXN0IG9uZSBvZiB0aGUgb3B0aW9ucyBDT01QQVJFX0VRVUlWIGFuZCAKKyAgICAgICAgLy8gQ09NUEFSRV9JR05PUkVfQ0FTRSBpcyBzZXQKKyAgICAgICAgLy8gb3RoZXJ3aXNlIHRoaXMgZnVuY3Rpb24gbXVzdCBiZWhhdmUgZXhhY3RseSBhcyB1cHJ2X3N0ckNvbXBhcmUoKQorICAgICAgICAvLyBub3QgY2hlY2tpbmcgZm9yIHRoYXQgaGVyZSBtYWtlcyB0ZXN0aW5nIHRoaXMgZnVuY3Rpb24gZWFzaWVyCisKKyAgICAKKyAgICAgICAgLy8gaW5pdGlhbGl6ZQorICAgICAgICBzdGFydDE9czFTdGFydDsKKyAgICAgICAgbGltaXQxPXMxTGltaXQ7CisgICAgICAgIAorICAgICAgICBzdGFydDI9czJTdGFydDsKKyAgICAgICAgbGltaXQyPXMyTGltaXQ7CisgICAgICAgIAorICAgICAgICBsZXZlbDE9bGV2ZWwyPTA7CisgICAgICAgIGMxPWMyPS0xOworICAgICAgICBjcDE9Y3AyPS0xOworICAgICAgICAvLyBjb21wYXJpc29uIGxvb3AKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAvLyBoZXJlIGEgY29kZSB1bml0IHZhbHVlIG9mIC0xIG1lYW5zICJnZXQgYW5vdGhlciBjb2RlIHVuaXQiCisgICAgICAgICAgICAvLyBiZWxvdyBpdCB3aWxsIG1lYW4gInRoaXMgc291cmNlIGlzIGZpbmlzaGVkIgorICAgIAorICAgICAgICAgICAgaWYoYzE8MCkgeworICAgICAgICAgICAgICAgIC8vIGdldCBuZXh0IGNvZGUgdW5pdCBmcm9tIHN0cmluZyAxLCBwb3N0LWluY3JlbWVudAorICAgICAgICAgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgICAgICBpZihzMVN0YXJ0Pj1saW1pdDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxldmVsMT09MCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMxPS0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYzE9Y1NvdXJjZTFbczFTdGFydF07CisgICAgICAgICAgICAgICAgICAgICAgICArK3MxU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICAgICAvLyByZWFjaGVkIGVuZCBvZiBsZXZlbCBidWZmZXIsIHBvcCBvbmUgbGV2ZWwKKyAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgLS1sZXZlbDE7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDE9c3RhY2sxW2xldmVsMV0uc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUoc3RhcnQxPT0tMSk7IC8vIyMjIyMjIGNoZWNrIHRoaXMKKyAgICAgICAgICAgICAgICAgICAgczFTdGFydD1zdGFjazFbbGV2ZWwxXS5zOworICAgICAgICAgICAgICAgICAgICBsaW1pdDE9c3RhY2sxW2xldmVsMV0ubGltaXQ7CisgICAgICAgICAgICAgICAgICAgIGNTb3VyY2UxPXN0YWNrMVtsZXZlbDFdLnNvdXJjZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZihjMjwwKSB7CisgICAgICAgICAgICAgICAgLy8gZ2V0IG5leHQgY29kZSB1bml0IGZyb20gc3RyaW5nIDIsIHBvc3QtaW5jcmVtZW50CisgICAgICAgICAgICAgICAgZm9yKDs7KSB7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYoczJTdGFydD49bGltaXQyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihsZXZlbDI9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMj0tMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMyPWNTb3VyY2UyW3MyU3RhcnRdOworICAgICAgICAgICAgICAgICAgICAgICAgKytzMlN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVhY2hlZCBlbmQgb2YgbGV2ZWwgYnVmZmVyLCBwb3Agb25lIGxldmVsCisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tbGV2ZWwyOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQyPXN0YWNrMltsZXZlbDJdLnN0YXJ0OworICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKHN0YXJ0Mj09LTEpOworICAgICAgICAgICAgICAgICAgICBzMlN0YXJ0PXN0YWNrMltsZXZlbDJdLnM7CisgICAgICAgICAgICAgICAgICAgIGxpbWl0Mj1zdGFjazJbbGV2ZWwyXS5saW1pdDsKKyAgICAgICAgICAgICAgICAgICAgY1NvdXJjZTI9c3RhY2syW2xldmVsMl0uc291cmNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIGNvbXBhcmUgYzEgYW5kIGMyCisgICAgICAgICAgICAvLyBlaXRoZXIgdmFyaWFibGUgYzEsIGMyIGlzIC0xIG9ubHkgaWYgdGhlIGNvcnJlc3BvbmRpbmcgc3RyaW5nIAorICAgICAgICAgICAgLy8gaXMgZmluaXNoZWQKKyAgICAgICAgICAgIGlmKGMxPT1jMikgeworICAgICAgICAgICAgICAgIGlmKGMxPDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7ICAgLy8gYzE9PWMyPT0tMSBpbmRpY2F0aW5nIGVuZCBvZiBzdHJpbmdzCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGMxPWMyPS0xOyAgICAgICAvLyBtYWtlIHVzIGZldGNoIG5ldyBjb2RlIHVuaXRzCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9IGVsc2UgaWYoYzE8MCkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsgICAgICAvLyBzdHJpbmcgMSBlbmRzIGJlZm9yZSBzdHJpbmcgMgorICAgICAgICAgICAgfSBlbHNlIGlmKGMyPDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsgICAgICAgLy8gc3RyaW5nIDIgZW5kcyBiZWZvcmUgc3RyaW5nIDEKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGMxIT1jMiAmJiBjMT49MCAmJiBjMj49MAorICAgIAorICAgICAgICAgICAgLy8gZ2V0IGNvbXBsZXRlIGNvZGUgcG9pbnRzIGZvciBjMSwgYzIgZm9yIGxvb2t1cHMgaWYgZWl0aGVyIGlzIGEgCisgICAgICAgICAgICAvLyBzdXJyb2dhdGUKKyAgICAgICAgICAgIGNwMT1jMTsKKyAgICAgICAgICAgIGlmKFVURjE2LmlzU3Vycm9nYXRlKChjaGFyKWMxKSkgeyAKKyAgICAgICAgICAgICAgICBjaGFyIGM7CisgICAgCisgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWMxKSkgeworICAgICAgICAgICAgICAgICAgICBpZiggICAgczFTdGFydCE9bGltaXQxICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjPWNTb3VyY2UxW3MxU3RhcnRdKQorICAgICAgICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWR2YW5jZSArK3MxOyBvbmx5IGJlbG93IGlmIGNwMSBkZWNvbXBvc2VzL2Nhc2UtZm9sZHMKKyAgICAgICAgICAgICAgICAgICAgICAgIGNwMT1VQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgoY2hhciljMSwgYyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgLyogaXNUcmFpbChjMSkgKi8geworICAgICAgICAgICAgICAgICAgICBpZiggICAgc3RhcnQxPD0oczFTdGFydC0yKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYz1jU291cmNlMVsoczFTdGFydC0yKV0pCisgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjcDE9VUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoYywgKGNoYXIpYzEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY3AyPWMyOworICAgICAgICAgICAgaWYoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpYzIpKSB7CisgICAgICAgICAgICAgICAgY2hhciBjOworICAgIAorICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljMikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoICAgIHMyU3RhcnQhPWxpbWl0MiAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYz1jU291cmNlMltzMlN0YXJ0XSkKKyAgICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkdmFuY2UgKytzMjsgb25seSBiZWxvdyBpZiBjcDIgZGVjb21wb3Nlcy9jYXNlLWZvbGRzCisgICAgICAgICAgICAgICAgICAgICAgICBjcDI9VUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoKGNoYXIpYzIsIGMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIC8qIGlzVHJhaWwoYzIpICovIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoICAgIHN0YXJ0Mjw9KHMyU3RhcnQtMikgJiYgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGM9Y1NvdXJjZTJbczJTdGFydC0yXSkKKyAgICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNwMj1VQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShjLCAoY2hhciljMik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBnbyBkb3duIG9uZSBsZXZlbCBmb3IgZWFjaCBzdHJpbmcKKyAgICAgICAgICAgIC8vIGNvbnRpbnVlIHdpdGggdGhlIG1haW4gbG9vcCBhcyBzb29uIGFzIHRoZXJlIGlzIGEgcmVhbCBjaGFuZ2UKKyAgICAgICAgICAgIGlmKCBsZXZlbDE8MiAmJiAoKG9wdGlvbnMgJiBOb3JtYWxpemVyLkNPTVBBUkVfSUdOT1JFX0NBU0UpIT0wKSYmCisgICAgICAgICAgICAgICAgKGxlbmd0aD1mb2xkQ2FzZShjcDEsIGZvbGQxLCAwLDMyLG9wdGlvbnMpKT49MAorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgLy8gY3AxIGNhc2UtZm9sZHMgdG8gZm9sZDFbbGVuZ3RoXQorICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzU3Vycm9nYXRlKChjaGFyKWMxKSkgeworICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpYzEpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZHZhbmNlIGJleW9uZCBzb3VyY2Ugc3Vycm9nYXRlIHBhaXIgaWYgaXQgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXNlLWZvbGRzCisgICAgICAgICAgICAgICAgICAgICAgICArK3MxU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSAvKiBpc1RyYWlsKGMxKSAqLyB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBnb3QgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgd2hlbiBoaXR0aW5nIGl0cyAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyYWlsIHN1cnJvZ2F0ZSwgdGhlcmVmb3JlIHRoZSBsZWFkIHN1cnJvZ2F0ZSBtdXN0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGF2ZSBiZWVuIHRoZSBzYW1lIGFzIGluIHRoZSBvdGhlciBzdHJpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21wYXJlIHRoaXMgZGVjb21wb3NpdGlvbiB3aXRoIHRoZSBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gdGhlIG90aGVyIHN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgLS1zMlN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgYzI9Y1NvdXJjZTJbKHMyU3RhcnQtMSldOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIC8vIHB1c2ggY3VycmVudCBsZXZlbCBwb2ludGVycworICAgICAgICAgICAgICAgIHN0YWNrMVswXS5zdGFydD1zdGFydDE7CisgICAgICAgICAgICAgICAgc3RhY2sxWzBdLnM9czFTdGFydDsKKyAgICAgICAgICAgICAgICBzdGFjazFbMF0ubGltaXQ9bGltaXQxOworICAgICAgICAgICAgICAgIHN0YWNrMVswXS5zb3VyY2U9Y1NvdXJjZTE7CisgICAgICAgICAgICAgICAgKytsZXZlbDE7CisgICAgCisgICAgICAgICAgICAgICAgY1NvdXJjZTEgPSBmb2xkMTsKKyAgICAgICAgICAgICAgICBzdGFydDE9czFTdGFydD0wOworICAgICAgICAgICAgICAgIGxpbWl0MT1sZW5ndGg7CisgICAgCisgICAgICAgICAgICAgICAgLy8gZ2V0IHJlYWR5IHRvIHJlYWQgZnJvbSBkZWNvbXBvc2l0aW9uLCBjb250aW51ZSB3aXRoIGxvb3AKKyAgICAgICAgICAgICAgICBjMT0tMTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmKCBsZXZlbDI8MiAmJiAoKG9wdGlvbnMmIE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSkhPTApICYmCisgICAgICAgICAgICAgICAgKGxlbmd0aD1mb2xkQ2FzZShjcDIsIGZvbGQyLDAsMzIsIG9wdGlvbnMpKT49MAorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgLy8gY3AyIGNhc2UtZm9sZHMgdG8gZm9sZDJbbGVuZ3RoXQorICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzU3Vycm9nYXRlKChjaGFyKWMyKSkgeworICAgICAgICAgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpYzIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZHZhbmNlIGJleW9uZCBzb3VyY2Ugc3Vycm9nYXRlIHBhaXIgaWYgaXQgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXNlLWZvbGRzCisgICAgICAgICAgICAgICAgICAgICAgICArK3MyU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSAvKiBpc1RyYWlsKGMyKSAqLyB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBnb3QgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgd2hlbiBoaXR0aW5nIGl0cyAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyYWlsIHN1cnJvZ2F0ZSwgdGhlcmVmb3JlIHRoZSBsZWFkIHN1cnJvZ2F0ZSBtdXN0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGF2ZSBiZWVuIHRoZSBzYW1lIGFzIGluIHRoZSBvdGhlciBzdHJpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21wYXJlIHRoaXMgZGVjb21wb3NpdGlvbiB3aXRoIHRoZSBsZWFkIHN1cnJvZ2F0ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBvdGhlciBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tczFTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMxPWNTb3VyY2UxWyhzMVN0YXJ0LTEpXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAvLyBwdXNoIGN1cnJlbnQgbGV2ZWwgcG9pbnRlcnMKKyAgICAgICAgICAgICAgICBzdGFjazJbMF0uc3RhcnQ9c3RhcnQyOworICAgICAgICAgICAgICAgIHN0YWNrMlswXS5zPXMyU3RhcnQ7CisgICAgICAgICAgICAgICAgc3RhY2syWzBdLmxpbWl0PWxpbWl0MjsKKyAgICAgICAgICAgICAgICBzdGFjazJbMF0uc291cmNlPWNTb3VyY2UyOworICAgICAgICAgICAgICAgICsrbGV2ZWwyOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNTb3VyY2UyID0gZm9sZDI7CisgICAgICAgICAgICAgICAgc3RhcnQyPXMyU3RhcnQ9MDsKKyAgICAgICAgICAgICAgICBsaW1pdDI9bGVuZ3RoOworICAgIAorICAgICAgICAgICAgICAgIC8vIGdldCByZWFkeSB0byByZWFkIGZyb20gZGVjb21wb3NpdGlvbiwgY29udGludWUgd2l0aCBsb29wCisgICAgICAgICAgICAgICAgYzI9LTE7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKCBsZXZlbDE8MiAmJiAoKG9wdGlvbnMmQ09NUEFSRV9FUVVJVikhPTApICYmCisgICAgICAgICAgICAgICAgMCE9KGxlbmd0aD1kZWNvbXBvc2UoY3AxLGRlY29tcDEpKQorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgLy8gY3AxIGRlY29tcG9zZXMgaW50byBwW2xlbmd0aF0KKyAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1N1cnJvZ2F0ZSgoY2hhciljMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWMxKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWR2YW5jZSBiZXlvbmQgc291cmNlIHN1cnJvZ2F0ZSBwYWlyIGlmIGl0IAorICAgICAgICAgICAgICAgICAgICAgICAgLy9kZWNvbXBvc2VzCisgICAgICAgICAgICAgICAgICAgICAgICArK3MxU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSAvKiBpc1RyYWlsKGMxKSAqLyB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBnb3QgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgd2hlbiBoaXR0aW5nIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXRzIHRyYWlsIHN1cnJvZ2F0ZSwgdGhlcmVmb3JlIHRoZSBsZWFkIHN1cnJvZ2F0ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG11c3QgaGF2ZSBiZWVuIHRoZSBzYW1lIGFzIGluIHRoZSBvdGhlciBzdHJpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb21wYXJlIHRoaXMgZGVjb21wb3NpdGlvbiB3aXRoIHRoZSBsZWFkIHN1cnJvZ2F0ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBvdGhlciBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIC0tczJTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMyPWNTb3VyY2UyWyhzMlN0YXJ0LTEpXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAvLyBwdXNoIGN1cnJlbnQgbGV2ZWwgcG9pbnRlcnMKKyAgICAgICAgICAgICAgICBzdGFjazFbbGV2ZWwxXS5zdGFydD1zdGFydDE7CisgICAgICAgICAgICAgICAgc3RhY2sxW2xldmVsMV0ucz1zMVN0YXJ0OworICAgICAgICAgICAgICAgIHN0YWNrMVtsZXZlbDFdLmxpbWl0PWxpbWl0MTsKKyAgICAgICAgICAgICAgICBzdGFjazFbbGV2ZWwxXS5zb3VyY2U9Y1NvdXJjZTE7CisgICAgICAgICAgICAgICAgKytsZXZlbDE7CisgICAgCisgICAgICAgICAgICAgICAgLy8gc2V0IG5leHQgbGV2ZWwgcG9pbnRlcnMgdG8gZGVjb21wb3NpdGlvbgorICAgICAgICAgICAgICAgIGNTb3VyY2UxID0gZGVjb21wMTsKKyAgICAgICAgICAgICAgICBzdGFydDE9czFTdGFydD0wOworICAgICAgICAgICAgICAgIGxpbWl0MT1sZW5ndGg7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gc2V0IGVtcHR5IGludGVybWVkaWF0ZSBsZXZlbCBpZiBza2lwcGVkCisgICAgICAgICAgICAgICAgaWYobGV2ZWwxPDIpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhY2sxW2xldmVsMSsrXS5zdGFydD0tMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gZ2V0IHJlYWR5IHRvIHJlYWQgZnJvbSBkZWNvbXBvc2l0aW9uLCBjb250aW51ZSB3aXRoIGxvb3AKKyAgICAgICAgICAgICAgICBjMT0tMTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmKCBsZXZlbDI8MiAmJiAoKG9wdGlvbnMmQ09NUEFSRV9FUVVJVikhPTApICYmCisgICAgICAgICAgICAgICAgMCE9KGxlbmd0aD1kZWNvbXBvc2UoY3AyLCBkZWNvbXAyKSkKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIC8vIGNwMiBkZWNvbXBvc2VzIGludG8gcFtsZW5ndGhdCisgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNTdXJyb2dhdGUoKGNoYXIpYzIpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkdmFuY2UgYmV5b25kIHNvdXJjZSBzdXJyb2dhdGUgcGFpciBpZiBpdCAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlY29tcG9zZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICsrczJTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIC8qIGlzVHJhaWwoYzIpICovIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGdvdCBhIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCB3aGVuIGhpdHRpbmcgaXRzIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJhaWwgc3Vycm9nYXRlLCB0aGVyZWZvcmUgdGhlIGxlYWQgc3Vycm9nYXRlIG11c3QgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXZlIGJlZW4gdGhlIHNhbWUgYXMgaW4gdGhlIG90aGVyIHN0cmluZzsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbXBhcmUgdGhpcyBkZWNvbXBvc2l0aW9uIHdpdGggdGhlIGxlYWQgc3Vycm9nYXRlIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gdGhlIG90aGVyIHN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgLS1zMVN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgYzE9Y1NvdXJjZTFbKHMxU3RhcnQtMSldOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIC8vIHB1c2ggY3VycmVudCBsZXZlbCBwb2ludGVycworICAgICAgICAgICAgICAgIHN0YWNrMltsZXZlbDJdLnN0YXJ0PXN0YXJ0MjsKKyAgICAgICAgICAgICAgICBzdGFjazJbbGV2ZWwyXS5zPXMyU3RhcnQ7CisgICAgICAgICAgICAgICAgc3RhY2syW2xldmVsMl0ubGltaXQ9bGltaXQyOworICAgICAgICAgICAgICAgIHN0YWNrMltsZXZlbDJdLnNvdXJjZT1jU291cmNlMjsKKyAgICAgICAgICAgICAgICArK2xldmVsMjsKKyAgICAKKyAgICAgICAgICAgICAgICAvLyBzZXQgbmV4dCBsZXZlbCBwb2ludGVycyB0byBkZWNvbXBvc2l0aW9uCisgICAgICAgICAgICAgICAgY1NvdXJjZTI9ZGVjb21wMjsKKyAgICAgICAgICAgICAgICBzdGFydDI9czJTdGFydD0wOworICAgICAgICAgICAgICAgIGxpbWl0Mj1sZW5ndGg7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gc2V0IGVtcHR5IGludGVybWVkaWF0ZSBsZXZlbCBpZiBza2lwcGVkCisgICAgICAgICAgICAgICAgaWYobGV2ZWwyPDIpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhY2syW2xldmVsMisrXS5zdGFydD0tMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gZ2V0IHJlYWR5IHRvIHJlYWQgZnJvbSBkZWNvbXBvc2l0aW9uLCBjb250aW51ZSB3aXRoIGxvb3AKKyAgICAgICAgICAgICAgICBjMj0tMTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAKKyAgICAgICAgICAgIC8vIG5vIGRlY29tcG9zaXRpb24vY2FzZSBmb2xkaW5nLCBtYXggbGV2ZWwgZm9yIGJvdGggc2lkZXM6CisgICAgICAgICAgICAvLyByZXR1cm4gZGlmZmVyZW5jZSByZXN1bHQKKyAgICAKKyAgICAgICAgICAgIC8vIGNvZGUgcG9pbnQgb3JkZXIgY29tcGFyaXNvbiBtdXN0IG5vdCBqdXN0IHJldHVybiBjcDEtY3AyCisgICAgICAgICAgICAvLyBiZWNhdXNlIHdoZW4gc2luZ2xlIHN1cnJvZ2F0ZXMgYXJlIHByZXNlbnQgdGhlbiB0aGUgc3Vycm9nYXRlIAorICAgICAgICAgICAgLy8gcGFpcnMgdGhhdCBmb3JtZWQgY3AxIGFuZCBjcDIgbWF5IGJlIGZyb20gZGlmZmVyZW50IHN0cmluZyAKKyAgICAgICAgICAgIC8vIGluZGV4ZXMKKyAgICAKKyAgICAgICAgICAgIC8vIGV4YW1wbGU6IHsgZDgwMCBkODAwIGRjMDEgfSB2cy4geyBkODAwIGRjMDAgfSwgY29tcGFyZSBhdCAKKyAgICAgICAgICAgIC8vIHNlY29uZCBjb2RlIHVuaXRzCisgICAgICAgICAgICAvLyBjMT1kODAwIGNwMT0xMDAwMSBjMj1kYzAwIGNwMj0xMDAwMAorICAgICAgICAgICAgLy8gY3AxLWNwMj4wIGJ1dCBjMS1jMjwwIGFuZCBpbiBmYWN0IGluIFVURi0zMiAKKyAgICAgICAgICAgIC8vIGl0IGlzIHsgZDgwMCAxMDAwMSB9IDwgeyAxMDAwMCB9CisgICAgICAgICAgICAvLyB0aGVyZWZvcmUgZml4LXVwIAorICAgIAorICAgICAgICAgICAgaWYoICAgICBjMT49MHhkODAwICYmIGMyPj0weGQ4MDAgJiYgCisgICAgICAgICAgICAgICAgICAgICgob3B0aW9ucyZOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUikhPTApCisgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIC8qIHN1YnRyYWN0IDB4MjgwMCBmcm9tIEJNUCBjb2RlIHBvaW50cyB0byBtYWtlIHRoZW0gc21hbGxlciAKKyAgICAgICAgICAgICAgICAgKiB0aGFuIHN1cHBsZW1lbnRhcnkgb25lcyAqLworICAgICAgICAgICAgICAgIGlmKAorICAgICAgICAgICAgICAgICAgICAoICAgIGMxPD0weGRiZmYgJiYgczFTdGFydCE9bGltaXQxIAorICAgICAgICAgICAgICAgICAgICAgICAgICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY1NvdXJjZTFbczFTdGFydF0pCisgICAgICAgICAgICAgICAgICAgICkgCisgICAgICAgICAgICAgICAgICAgICB8fAorICAgICAgICAgICAgICAgICAgICAoICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpYzEpICYmIHN0YXJ0MSE9KHMxU3RhcnQtMSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNTb3VyY2UxWyhzMVN0YXJ0LTIpXSkKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAvKiBwYXJ0IG9mIGEgc3Vycm9nYXRlIHBhaXIsIGxlYXZlID49ZDgwMCAqLworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIEJNUCBjb2RlIHBvaW50IC0gbWF5IGJlIHN1cnJvZ2F0ZSBjb2RlIHBvaW50IC0gCisgICAgICAgICAgICAgICAgICAgICAqIG1ha2UgPGQ4MDAgKi8KKyAgICAgICAgICAgICAgICAgICAgYzEtPTB4MjgwMDsKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgaWYoCisgICAgICAgICAgICAgICAgICAgICggICAgYzI8PTB4ZGJmZiAmJiBzMlN0YXJ0IT1saW1pdDIgCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjU291cmNlMltzMlN0YXJ0XSkKKyAgICAgICAgICAgICAgICAgICAgKSAKKyAgICAgICAgICAgICAgICAgICAgIHx8CisgICAgICAgICAgICAgICAgICAgICggICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhciljMikgJiYgc3RhcnQyIT0oczJTdGFydC0xKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoY1NvdXJjZTJbKHMyU3RhcnQtMildKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgbGVhdmUgPj1kODAwICovCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogQk1QIGNvZGUgcG9pbnQgLSBtYXkgYmUgc3Vycm9nYXRlIGNvZGUgcG9pbnQgLSAKKyAgICAgICAgICAgICAgICAgICAgICogbWFrZSA8ZDgwMCAqLworICAgICAgICAgICAgICAgICAgICBjMi09MHgyODAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHJldHVybiBjMS1jMjsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgc3RyQ29tcGFyZShjaGFyW10gczEsIGludCBzMVN0YXJ0LCBpbnQgczFMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gczIsIGludCBzMlN0YXJ0LCBpbnQgczJMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNvZGVQb2ludE9yZGVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaW50IHN0YXJ0MSwgc3RhcnQyLCBsaW1pdDEsIGxpbWl0MjsKKyAKKyAgICAgICAgY2hhciBjMSwgYzI7CisgICAgCisgICAgICAgIC8qIHNldHVwIGZvciBmaXgtdXAgKi8KKyAgICAgICAgc3RhcnQxPXMxU3RhcnQ7CisgICAgICAgIHN0YXJ0Mj1zMlN0YXJ0OworICAgICAgICAKKyAgICAgICAgaW50IGxlbmd0aDEsIGxlbmd0aDI7CisgICAgICAgIAorICAgICAgICBsZW5ndGgxID0gczFMaW1pdCAtIHMxU3RhcnQ7CisgICAgICAgIGxlbmd0aDIgPSBzMkxpbWl0IC0gczJTdGFydDsKKyAgICAgICAgICAgIAorICAgICAgICBpbnQgbGVuZ3RoUmVzdWx0OworCisgICAgICAgIGlmKGxlbmd0aDE8bGVuZ3RoMikgeworICAgICAgICAgICAgbGVuZ3RoUmVzdWx0PS0xOworICAgICAgICAgICAgbGltaXQxPXN0YXJ0MStsZW5ndGgxOworICAgICAgICB9IGVsc2UgaWYobGVuZ3RoMT09bGVuZ3RoMikgeworICAgICAgICAgICAgbGVuZ3RoUmVzdWx0PTA7CisgICAgICAgICAgICBsaW1pdDE9c3RhcnQxK2xlbmd0aDE7CisgICAgICAgIH0gZWxzZSAvKiBsZW5ndGgxPmxlbmd0aDIgKi8geworICAgICAgICAgICAgbGVuZ3RoUmVzdWx0PTE7CisgICAgICAgICAgICBsaW1pdDE9c3RhcnQxK2xlbmd0aDI7CisgICAgICAgIH0KKworICAgICAgICBpZihzMT09czIpIHsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGhSZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIC8qIGNoZWNrIHBzZXVkby1saW1pdCAqLworICAgICAgICAgICAgaWYoczFTdGFydD09bGltaXQxKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxlbmd0aFJlc3VsdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYzE9czFbczFTdGFydF07CisgICAgICAgICAgICBjMj1zMltzMlN0YXJ0XTsKKyAgICAgICAgICAgIGlmKGMxIT1jMikgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKytzMVN0YXJ0OworICAgICAgICAgICAgKytzMlN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgLyogc2V0dXAgZm9yIGZpeC11cCAqLworICAgICAgICBsaW1pdDE9c3RhcnQxK2xlbmd0aDE7CisgICAgICAgIGxpbWl0Mj1zdGFydDIrbGVuZ3RoMjsKKworICAgIAorICAgICAgICAvKiBpZiBib3RoIHZhbHVlcyBhcmUgaW4gb3IgYWJvdmUgdGhlIHN1cnJvZ2F0ZSByYW5nZSwgZml4IHRoZW0gdXAgKi8KKyAgICAgICAgaWYoYzE+PTB4ZDgwMCAmJiBjMj49MHhkODAwICYmIGNvZGVQb2ludE9yZGVyKSB7CisgICAgICAgICAgICAvKiBzdWJ0cmFjdCAweDI4MDAgZnJvbSBCTVAgY29kZSBwb2ludHMgdG8gbWFrZSB0aGVtIHNtYWxsZXIgdGhhbgorICAgICAgICAgICAgICogIHN1cHBsZW1lbnRhcnkgb25lcyAqLworICAgICAgICAgICAgaWYoCisgICAgICAgICAgICAgICAgKCBjMTw9MHhkYmZmICYmIChzMVN0YXJ0KzEpIT1saW1pdDEgJiYgCisgICAgICAgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHMxWyhzMVN0YXJ0KzEpXSkKKyAgICAgICAgICAgICAgICApIHx8CisgICAgICAgICAgICAgICAgKCBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGMxKSAmJiBzdGFydDEhPXMxU3RhcnQgJiYgCisgICAgICAgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoczFbKHMxU3RhcnQtMSldKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgIC8qIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgbGVhdmUgPj1kODAwICovCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIEJNUCBjb2RlIHBvaW50IC0gbWF5IGJlIHN1cnJvZ2F0ZSBjb2RlIHBvaW50IC0gbWFrZSA8ZDgwMCAqLworICAgICAgICAgICAgICAgIGMxLT0weDI4MDA7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZigKKyAgICAgICAgICAgICAgICAoIGMyPD0weGRiZmYgJiYgKHMyU3RhcnQrMSkhPWxpbWl0MiAmJiAKKyAgICAgICAgICAgICAgICAgIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoczJbKHMyU3RhcnQrMSldKQorICAgICAgICAgICAgICAgICkgfHwKKyAgICAgICAgICAgICAgICAoIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzIpICYmIHN0YXJ0MiE9czJTdGFydCAmJiAKKyAgICAgICAgICAgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShzMlsoczJTdGFydC0xKV0pCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgLyogcGFydCBvZiBhIHN1cnJvZ2F0ZSBwYWlyLCBsZWF2ZSA+PWQ4MDAgKi8KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogQk1QIGNvZGUgcG9pbnQgLSBtYXkgYmUgc3Vycm9nYXRlIGNvZGUgcG9pbnQgLSBtYWtlIDxkODAwICovCisgICAgICAgICAgICAgICAgYzItPTB4MjgwMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBub3cgYzEgYW5kIGMyIGFyZSBpbiBVVEYtMzItY29tcGF0aWJsZSBvcmRlciAqLworICAgICAgICByZXR1cm4gKGludCljMS0oaW50KWMyOworICAgIH0KKworCisgICAgLyoKKyAgICAgKiBTdGF0dXMgb2YgdGFpbG9yZWQgbm9ybWFsaXphdGlvbgorICAgICAqCisgICAgICogVGhpcyB3YXMgZG9uZSBpbml0aWFsbHkgZm9yIGludmVzdGlnYXRpb24gb24gVW5pY29kZSBwdWJsaWMgcmV2aWV3IGlzc3VlIDcKKyAgICAgKiAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXZpZXcvKS4gU2VlIEppdHRlcmJ1ZyAyNDgxLgorICAgICAqIFdoaWxlIHRoZSBVVEMgYXQgbWVldGluZyAjOTQgKDIwMDNtYXIpIGRpZCBub3QgdGFrZSB1cCB0aGUgaXNzdWUsIHRoaXMgaXMKKyAgICAgKiBhIHBlcm1hbmVudCBmZWF0dXJlIGluIElDVSAyLjYgaW4gc3VwcG9ydCBvZiBJRE5BIHdoaWNoIHJlcXVpcmVzIHRydWUKKyAgICAgKiBVbmljb2RlIDMuMiBub3JtYWxpemF0aW9uLgorICAgICAqIChOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMgYXJlIHJvbGxlZCBpbnRvIElETkEgbWFwcGluZyB0YWJsZXMuKQorICAgICAqCisgICAgICogVGFpbG9yZWQgbm9ybWFsaXphdGlvbiBhcyBpbXBsZW1lbnRlZCBoZXJlIGFsbG93cyB0byAibm9ybWFsaXplIGxlc3MiCisgICAgICogdGhhbiBmdWxsIFVuaWNvZGUgbm9ybWFsaXphdGlvbiB3b3VsZC4KKyAgICAgKiBCYXNlZCBpbnRlcm5hbGx5IG9uIGEgVW5pY29kZVNldCBvZiBjb2RlIHBvaW50cyB0aGF0IGFyZQorICAgICAqICJleGNsdWRlZCBmcm9tIG5vcm1hbGl6YXRpb24iLCB0aGUgbm9ybWFsaXphdGlvbiBmdW5jdGlvbnMgbGVhdmUgdGhvc2UKKyAgICAgKiBjb2RlIHBvaW50cyBhbG9uZSAoImluZXJ0IikuIFRoaXMgbWVhbnMgdGhhdCB0YWlsb3JlZCBub3JtYWxpemF0aW9uCisgICAgICogc3RpbGwgdHJhbnNmb3JtcyB0ZXh0IGludG8gYSBjYW5vbmljYWxseSBlcXVpdmFsZW50IGZvcm0uCisgICAgICogSXQgZG9lcyBub3QgYWRkIGRlY29tcG9zaXRpb25zIHRvIGNvZGUgcG9pbnRzIHRoYXQgZG8gbm90IGhhdmUgYW55IG9yCisgICAgICogY2hhbmdlIGRlY29tcG9zaXRpb24gcmVzdWx0cy4KKyAgICAgKgorICAgICAqIEFueSBmdW5jdGlvbiB0aGF0IHNlYXJjaGVzIGZvciBhIHNhZmUgYm91bmRhcnkgaGFzIG5vdCBiZWVuIHRvdWNoZWQsCisgICAgICogd2hpY2ggbWVhbnMgdGhhdCB0aGVzZSBmdW5jdGlvbnMgd2lsbCBiZSBvdmVyLXBlc3NpbWlzdGljIHdoZW4KKyAgICAgKiBleGNsdXNpb25zIGFyZSBhcHBsaWVkLgorICAgICAqIFRoaXMgc2hvdWxkIG5vdCBtYXR0ZXIgYmVjYXVzZSBzdWJzZXF1ZW50IGNoZWNrcyBhbmQgbm9ybWFsaXphdGlvbnMKKyAgICAgKiBkbyBhcHBseSB0aGUgZXhjbHVzaW9uczsgb25seSBhIGxpdHRsZSBtb3JlIG9mIHRoZSB0ZXh0IG1heSBiZSBwcm9jZXNzZWQKKyAgICAgKiB0aGFuIG5lY2Vzc2FyeSB1bmRlciBleGNsdXNpb25zLgorICAgICAqCisgICAgICogTm9ybWFsaXphdGlvbiBleGNsdXNpb25zIGhhdmUgdGhlIGZvbGxvd2luZyBlZmZlY3Qgb24gZXhjbHVkZWQgY29kZSBwb2ludHMgYzoKKyAgICAgKiAtIGMgaXMgbm90IGRlY29tcG9zZWQKKyAgICAgKiAtIGMgaXMgbm90IGEgY29tcG9zaXRpb24gdGFyZ2V0CisgICAgICogLSBjIGRvZXMgbm90IGNvbWJpbmUgZm9yd2FyZCBvciBiYWNrd2FyZCBmb3IgY29tcG9zaXRpb24KKyAgICAgKiAgIGV4Y2VwdCB0aGF0IHRoaXMgaXMgbm90IGltcGxlbWVudGVkIGZvciBKYW1vCisgICAgICogLSBjIGlzIHRyZWF0ZWQgYXMgaGF2aW5nIGEgY29tYmluaW5nIGNsYXNzIG9mIDAKKyAgICAgKi8KKyAgICAgCisgICAgLyogCisgICAgICogQ29uc3RhbnRzIGZvciB0aGUgYml0IGZpZWxkcyBpbiB0aGUgb3B0aW9ucyBiaXQgc2V0IHBhcmFtZXRlci4gCisgICAgICogVGhlc2UgbmVlZCBub3QgYmUgcHVibGljLiAKKyAgICAgKiBBIHVzZXIgb25seSBuZWVkcyB0byBrbm93IHRoZSBjdXJyZW50bHkgYXNzaWduZWQgdmFsdWVzLiAKKyAgICAgKiBUaGUgbnVtYmVyIGFuZCBwb3NpdGlvbnMgb2YgcmVzZXJ2ZWQgYml0cyBwZXIgZmllbGQgY2FuIHJlbWFpbiBwcml2YXRlLiAKKyAgICAgKi8gCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9QVElPTlNfTlhfTUFTSz0weDFmOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBPUFRJT05TX1VOSUNPREVfTUFTSz0weGUwOyAKKyAgICBwdWJsaWMgIHN0YXRpYyBmaW5hbCBpbnQgT1BUSU9OU19TRVRTX01BU0s9MHhmZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT1BUSU9OU19VTklDT0RFX1NISUZUPTU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldFtdIG54Q2FjaGUgPSBuZXcgVW5pY29kZVNldFtPUFRJT05TX1NFVFNfTUFTSysxXTsKKyAgICAgCisgICAgLyogQ29uc3RhbnRzIGZvciBvcHRpb25zIGZsYWdzIGZvciBub3JtYWxpemF0aW9uLiovCisKKyAgICAvKiogCisgICAgICogT3B0aW9ucyBiaXQgMCwgZG8gbm90IGRlY29tcG9zZSBIYW5ndWwgc3lsbGFibGVzLiAKKyAgICAgKiBAZHJhZnQgSUNVIDIuNiAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTlhfSEFOR1VMID0gMTsKKyAgICAvKiogCisgICAgICogT3B0aW9ucyBiaXQgMSwgZG8gbm90IGRlY29tcG9zZSBDSksgY29tcGF0aWJpbGl0eSBjaGFyYWN0ZXJzLgorICAgICAqIEBkcmFmdCBJQ1UgMi42IAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOWF9DSktfQ09NUEFUPTI7CisgICAgLyoqCisgICAgICogT3B0aW9ucyBiaXQgOCwgdXNlIGJ1Z2d5IHJlY29tcG9zaXRpb24gZGVzY3JpYmVkIGluCisgICAgICogVW5pY29kZSBQdWJsaWMgUmV2aWV3IElzc3VlICMyOQorICAgICAqIGF0IGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmV2aWV3L3Jlc29sdmVkLXByaS5odG1sI3ByaTI5CisgICAgICoKKyAgICAgKiBVc2VkIGluIElETkEgaW1wbGVtZW50YXRpb24gYWNjb3JkaW5nIHRvIHN0cmljdCBpbnRlcnByZXRhdGlvbgorICAgICAqIG9mIElETkEgZGVmaW5pdGlvbiBiYXNlZCBvbiBVbmljb2RlIDMuMiB3aGljaCBwcmVkYXRlcyBQUkkgIzI5LgorICAgICAqCisgICAgICogU2VlIElDVTRDIHVub3JtaW1wLmgKKyAgICAgKiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJFRk9SRV9QUklfMjk9MHgxMDA7CisKKyAgICAvKgorICAgICAqIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUgdXNlZCBvbmx5IGluIHNvbWUgY29tcG9zaXRpb24gZnVuY3Rpb25zLgorICAgICAqIFRoZXkgdXNlIGJpdHMgMTIgYW5kIHVwIHRvIHByZXNlcnZlIGxvd2VyIGJpdHMgZm9yIHRoZSBhdmFpbGFibGUgb3B0aW9ucworICAgICAqIHNwYWNlIGluIHVub3JtX2NvbXBhcmUoKSAtCisgICAgICogc2VlIGRvY3VtZW50YXRpb24gZm9yIFVOT1JNX0NPTVBBUkVfTk9STV9PUFRJT05TX1NISUZULgorICAgICAqLworCisgICAgLyoqIE9wdGlvbnMgYml0IDEyLCBmb3IgY29tcGF0aWJpbGl0eSB2cy4gY2Fub25pY2FsIGRlY29tcG9zaXRpb24uICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1BUSU9OU19DT01QQVQ9MHgxMDAwOworICAgIC8qKiBPcHRpb25zIGJpdCAxMywgbm8gZGlzY29udGlndW91cyBjb21wb3NpdGlvbiAoRkNDIHZzLiBORkMpLiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9QVElPTlNfQ09NUE9TRV9DT05USUdVT1VTPTB4MjAwMDsKKworICAgIC8qIG5vcm1hbGl6YXRpb24gZXhjbHVzaW9uIHNldHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgCisgICAgLyoKKyAgICAgKiBOb3JtYWxpemF0aW9uIGV4Y2x1c2lvbiBVbmljb2RlU2V0cyBhcmUgdXNlZCBmb3IgdGFpbG9yZWQgbm9ybWFsaXphdGlvbjsKKyAgICAgKiBzZWUgdGhlIGNvbW1lbnQgbmVhciB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgZmlsZS4KKyAgICAgKgorICAgICAqIEJ5IHNwZWNpZnlpbmcgb25lIG9yIHNldmVyYWwgc2V0cyBvZiBjb2RlIHBvaW50cywKKyAgICAgKiB0aG9zZSBjb2RlIHBvaW50cyBiZWNvbWUgaW5lcnQgZm9yIG5vcm1hbGl6YXRpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc3luY2hyb25pemVkIFVuaWNvZGVTZXQgaW50ZXJuYWxHZXROWEhhbmd1bCgpIHsKKyAgICAgICAgLyogaW50ZXJuYWwgZnVuY3Rpb24sIGRvZXMgbm90IGNoZWNrIGZvciBpbmNvbWluZyBVX0ZBSUxVUkUgKi8KKyAgICAKKyAgICAgICAgaWYobnhDYWNoZVtOWF9IQU5HVUxdPT1udWxsKSB7CisgICAgICAgICAgICAgbnhDYWNoZVtOWF9IQU5HVUxdPW5ldyBVbmljb2RlU2V0KDB4YWMwMCwgMHhkN2EzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnhDYWNoZVtOWF9IQU5HVUxdOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzeW5jaHJvbml6ZWQgVW5pY29kZVNldCBpbnRlcm5hbEdldE5YQ0pLQ29tcGF0KCkgeworICAgICAgICAvKiBpbnRlcm5hbCBmdW5jdGlvbiwgZG9lcyBub3QgY2hlY2sgZm9yIGluY29taW5nIFVfRkFJTFVSRSAqLworICAgIAorICAgICAgICBpZihueENhY2hlW05YX0NKS19DT01QQVRdPT1udWxsKSB7CisKKyAgICAgICAgICAgIC8qIGJ1aWxkIGEgc2V0IGZyb20gW0NKSyBJZGVvZ3JhcGhzXSZbaGFzIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9uXSAqLworICAgICAgICAgICAgVW5pY29kZVNldCBzZXQsIGhhc0RlY29tcDsKKyAgICAKKyAgICAgICAgICAgIHNldD1uZXcgVW5pY29kZVNldCgiWzpJZGVvZ3JhcGhpYzpdIik7CisgICAgCisgICAgICAgICAgICAvKiBzdGFydCB3aXRoIGFuIGVtcHR5IHNldCBmb3IgW2hhcyBjYW5vbmljYWwgZGVjb21wb3NpdGlvbl0gKi8KKyAgICAgICAgICAgIGhhc0RlY29tcD1uZXcgVW5pY29kZVNldCgpOworICAgIAorICAgICAgICAgICAgLyogaXRlcmF0ZSBvdmVyIGFsbCBpZGVvZ3JhcGhzIGFuZCByZW1lbWJlciB3aGljaCBjYW5vbmljYWxseSBkZWNvbXBvc2UgKi8KKyAgICAgICAgICAgIFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Ioc2V0KTsKKyAgICAgICAgICAgIGludCBzdGFydCwgZW5kOworICAgICAgICAgICAgbG9uZyBub3JtMzI7CisgICAgCisgICAgICAgICAgICB3aGlsZShpdC5uZXh0UmFuZ2UoKSAmJiAoaXQuY29kZXBvaW50ICE9IFVuaWNvZGVTZXRJdGVyYXRvci5JU19TVFJJTkcpKSB7CisgICAgICAgICAgICAgICAgc3RhcnQ9aXQuY29kZXBvaW50OworICAgICAgICAgICAgICAgIGVuZD1pdC5jb2RlcG9pbnRFbmQ7CisgICAgICAgICAgICAgICAgd2hpbGUoc3RhcnQ8PWVuZCkgeworICAgICAgICAgICAgICAgICAgICBub3JtMzIgPSBnZXROb3JtMzIoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICBpZigobm9ybTMyICYgUUNfTkZEKT4wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNEZWNvbXAuYWRkKHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8qIGhhc0RlY29tcCBub3cgY29udGFpbnMgYWxsIGlkZW9ncmFwaHMgdGhhdCBkZWNvbXBvc2UgY2Fub25pY2FsbHkgKi8KKyAgICAgICAgICAgICBueENhY2hlW05YX0NKS19DT01QQVRdPWhhc0RlY29tcDsKKyAgICAgICAgIAorICAgICAgICB9CisgICAgCisgICAgICAgIHJldHVybiBueENhY2hlW05YX0NKS19DT01QQVRdOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBzeW5jaHJvbml6ZWQgVW5pY29kZVNldCBpbnRlcm5hbEdldE5YVW5pY29kZShpbnQgb3B0aW9ucykgeworICAgICAgICBvcHRpb25zICY9IE9QVElPTlNfVU5JQ09ERV9NQVNLOworICAgICAgICBpZihvcHRpb25zPT0wKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZihueENhY2hlW29wdGlvbnNdPT1udWxsKSB7CisgICAgICAgICAgICAvKiBidWlsZCBhIHNldCB3aXRoIGFsbCBjb2RlIHBvaW50cyB0aGF0IHdlcmUgbm90IGRlc2lnbmF0ZWQgYnkgdGhlIHNwZWNpZmllZCBVbmljb2RlIHZlcnNpb24gKi8KKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKworICAgICAgICAgICAgc3dpdGNoKG9wdGlvbnMpIHsKKyAgICAgICAgICAgIGNhc2UgTm9ybWFsaXplci5VTklDT0RFXzNfMjoKKyAgICAgICAgICAgICAgICBzZXQuYXBwbHlQYXR0ZXJuKCJbOl5BZ2U9My4yOl0iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG54Q2FjaGVbb3B0aW9uc109c2V0OworICAgICAgICB9CisgICAgCisgICAgICAgIHJldHVybiBueENhY2hlW29wdGlvbnNdOworICAgIH0KKyAgICAKKyAgICAvKiBHZXQgYSBkZWNvbXBvc2l0aW9uIGV4Y2x1c2lvbiBzZXQuIFRoZSBkYXRhIG11c3QgYmUgbG9hZGVkLiAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHN5bmNocm9uaXplZCBVbmljb2RlU2V0IGludGVybmFsR2V0TlgoaW50IG9wdGlvbnMpIHsKKyAgICAgICAgb3B0aW9ucyY9T1BUSU9OU19TRVRTX01BU0s7CisgICAgCisgICAgICAgIGlmKG54Q2FjaGVbb3B0aW9uc109PW51bGwpIHsKKyAgICAgICAgICAgIC8qIHJldHVybiBiYXNpYyBzZXRzICovICAgICAgICAgICAgCisgICAgICAgICAgICBpZihvcHRpb25zPT1OWF9IQU5HVUwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxHZXROWEhhbmd1bCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYob3B0aW9ucz09TlhfQ0pLX0NPTVBBVCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbEdldE5YQ0pLQ29tcGF0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZigob3B0aW9ucyAmIE9QVElPTlNfVU5JQ09ERV9NQVNLKSE9MCAmJiAob3B0aW9ucyAmIE9QVElPTlNfTlhfTUFTSyk9PTApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxHZXROWFVuaWNvZGUob3B0aW9ucyk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBidWlsZCBhIHNldCBmcm9tIG11bHRpcGxlIHN1YnNldHMgKi8KKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc2V0OworICAgICAgICAgICAgVW5pY29kZVNldCBvdGhlcjsKKyAgICAKKyAgICAgICAgICAgIHNldD1uZXcgVW5pY29kZVNldCgpOworCisgICAgCisgICAgICAgICAgICBpZigob3B0aW9ucyAmIE5YX0hBTkdVTCkhPTAgJiYgbnVsbCE9KG90aGVyPWludGVybmFsR2V0TlhIYW5ndWwoKSkpIHsKKyAgICAgICAgICAgICAgICBzZXQuYWRkQWxsKG90aGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKChvcHRpb25zJk5YX0NKS19DT01QQVQpIT0wICYmIG51bGwhPShvdGhlcj1pbnRlcm5hbEdldE5YQ0pLQ29tcGF0KCkpKSB7CisgICAgICAgICAgICAgICAgc2V0LmFkZEFsbChvdGhlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZigob3B0aW9ucyZPUFRJT05TX1VOSUNPREVfTUFTSykhPTAgJiYgbnVsbCE9KG90aGVyPWludGVybmFsR2V0TlhVbmljb2RlKG9wdGlvbnMpKSkgeworICAgICAgICAgICAgICAgIHNldC5hZGRBbGwob3RoZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICBueENhY2hlW29wdGlvbnNdPXNldDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnhDYWNoZVtvcHRpb25zXTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlU2V0IGdldE5YKGludCBvcHRpb25zKSB7CisgICAgICAgIGlmKChvcHRpb25zJj1PUFRJT05TX1NFVFNfTUFTSyk9PTApIHsKKyAgICAgICAgICAgIC8qIGluY29taW5nIGZhaWx1cmUsIG9yIG5vIGRlY29tcG9zaXRpb24gZXhjbHVzaW9ucyByZXF1ZXN0ZWQgKi8KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGludGVybmFsR2V0Tlgob3B0aW9ucyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBueF9jb250YWlucyhVbmljb2RlU2V0IG54LCBpbnQgYykgeworICAgICAgICByZXR1cm4gbnghPW51bGwgJiYgbnguY29udGFpbnMoYyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gbnhfY29udGFpbnMoVW5pY29kZVNldCBueCwgY2hhciBjLCBjaGFyIGMyKSB7CisgICAgICAgIHJldHVybiBueCE9bnVsbCAmJiBueC5jb250YWlucyhjMj09MCA/IGMgOiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShjLCBjMikpOworICAgIH0KKworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9PbHNvblRpbWVab25lLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9PbHNvblRpbWVab25lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FmOTY2NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL09sc29uVGltZVpvbmUuamF2YQpAQCAtMCwwICsxLDc3NSBAQAorIC8qCisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKKworLyoqCisgKiBBIHRpbWUgem9uZSBiYXNlZCBvbiB0aGUgT2xzb24gZGF0YWJhc2UuICBPbHNvbiB0aW1lIHpvbmVzIGNoYW5nZQorICogYmVoYXZpb3Igb3ZlciB0aW1lLiAgVGhlIHJhdyBvZmZzZXQsIHJ1bGVzLCBwcmVzZW5jZSBvciBhYnNlbmNlIG9mCisgKiBkYXlsaWdodCBzYXZpbmdzIHRpbWUsIGFuZCBldmVuIHRoZSBkYXlsaWdodCBzYXZpbmdzIGFtb3VudCBjYW4gYWxsCisgKiB2YXJ5LgorICoKKyAqIFRoaXMgY2xhc3MgdXNlcyBhIHJlc291cmNlIGJ1bmRsZSBuYW1lZCAiem9uZWluZm8iLiAgWm9uZWluZm8gaXMgYQorICogdGFibGUgY29udGFpbmluZyBkaWZmZXJlbnQga2luZHMgb2YgcmVzb3VyY2VzLiAgSW4gc2V2ZXJhbCBwbGFjZXMsCisgKiB6b25lcyBhcmUgcmVmZXJyZWQgdG8gdXNpbmcgaW50ZWdlcnMuICBBIHpvbmUncyBpbnRlZ2VyIGlzIGEgbnVtYmVyCisgKiBmcm9tIDAuLm4tMSwgd2hlcmUgbiBpcyB0aGUgbnVtYmVyIG9mIHpvbmVzLCB3aXRoIHRoZSB6b25lcyBzb3J0ZWQKKyAqIGluIGxleGljb2dyYXBoaWMgb3JkZXIuCisgKgorICogMS4gWm9uZXMuICBUaGVzZSBoYXZlIGtleXMgY29ycmVzcG9uZGluZyB0byB0aGUgT2xzb24gSURzLCBlLmcuLAorICogIkFzaWEvU2hhbmdoYWkiLiAgRWFjaCByZXNvdXJjZSBkZXNjcmliZXMgdGhlIGJlaGF2aW9yIG9mIHRoZSBnaXZlbgorICogem9uZS4gIFpvbmVzIGNvbWUgaW4gc2V2ZXJhbCBmb3JtYXRzLCB3aGljaCBhcmUgZGlmZmVyZW50aWF0ZWQKKyAqIGJhc2VkIG9uIGxlbmd0aC4KKyAqCisgKiAgYS4gQWxpYXMgKGludCwgbGVuZ3RoIDEpLiAgQW4gYWxpYXMgem9uZSBpcyBhbiBpbnQgcmVzb3VyY2UuICBUaGUKKyAqICBpbnRlZ2VyIGlzIHRoZSB6b25lIG51bWJlciBvZiB0aGUgdGFyZ2V0IHpvbmUuICBUaGUga2V5IG9mIHRoaXMKKyAqICByZXNvdXJjZSBpcyBhbiBhbHRlcm5hdGUgbmFtZSBmb3IgdGhlIHRhcmdldCB6b25lLiAgQWxpYXNlcworICogIHJlcHJlc2VudCBPbHNvbiBsaW5rcyBhbmQgSUNVIGNvbXBhdGliaWxpdHkgSURzLgorICoKKyAqICBiLiBTaW1wbGUgem9uZSAoYXJyYXksIGxlbmd0aCAzKS4gIFRoZSB0aHJlZSBzdWJlbGVtZW50cyBhcmU6CisgKgorICogICBpLiBBbiBpbnR2ZWN0b3Igb2YgdHJhbnNpdGlvbnMuICBUaGVzZSBhcmUgZ2l2ZW4gaW4gZXBvY2gKKyAqICAgc2Vjb25kcy4gIFRoaXMgbWF5IGJlIGFuIGVtcHR5IGludmVjdG9yIChsZW5ndGggMCkuICBJZiB0aGUKKyAqICAgdHJhbnN0aW9ucyBsaXN0IGlzIGVtcHR5LCB0aGVuIHRoZSB6b25lJ3MgYmVoYXZpb3IgaXMgZml4ZWQgYW5kCisgKiAgIGdpdmVuIGJ5IHRoZSBvZmZzZXQgbGlzdCwgd2hpY2ggd2lsbCBjb250YWluIGV4YWN0bHkgb25lIHBhaXIuCisgKiAgIE90aGVyd2lzZSBlYWNoIHRyYW5zdGlvbiBpbmRpY2F0ZXMgYSB0aW1lIGFmdGVyIHdoaWNoIChpbmNsdXNpdmUpCisgKiAgIHRoZSBhc3NvY2lhdGVkIG9mZnNldCBwYWlyIGlzIGluIGVmZmVjdC4KKyAqCisgKiAgIGlpLiBBbiBpbnR2ZWN0b3Igb2Ygb2Zmc2V0cy4gIFRoZXNlIGFyZSBpbiBwYWlycyBvZiByYXcgb2Zmc2V0IC8KKyAqICAgRFNUIG9mZnNldCwgaW4gdW5pdHMgb2Ygc2Vjb25kcy4gIFRoZXJlIHdpbGwgYmUgYXQgbGVhc3Qgb25lIHBhaXIKKyAqICAgKGxlbmd0aCA+PSAyICYmIGxlbmd0aCAlIDIgPT0gMCkuCisgKgorICogICBpaWkuIEEgYmluYXJ5IHJlc291cmNlLiAgVGhpcyBpcyBvZiB0aGUgc2FtZSBsZW5ndGggYXMgdGhlCisgKiAgIHRyYW5zaXRpb25zIHZlY3Rvciwgc28gbGVuZ3RoIG1heSBiZSB6ZXJvLiAgRWFjaCB1bnNpZ25lZCBieXRlCisgKiAgIGNvcnJlc3BvbmRzIHRvIG9uZSB0cmFuc2l0aW9uLCBhbmQgaGFzIGEgdmFsdWUgb2YgMC4ubi0xLCB3aGVyZSBuCisgKiAgIGlzIHRoZSBudW1iZXIgb2YgcGFpcnMgaW4gdGhlIG9mZnNldCB2ZWN0b3IuICBUaGlzIGZvcm1zIGEgbWFwCisgKiAgIGJldHdlZW4gdHJhbnNpdGlvbnMgYW5kIG9mZnNldCBwYWlycy4KKyAqCisgKiAgYy4gU2ltcGxlIHpvbmUgd2l0aCBhbGlhc2VzIChhcnJheSwgbGVuZ3RoIDQpLiAgVGhpcyBpcyBsaWtlIGEKKyAqICBzaW1wbGUgem9uZSwgYnV0IGFsc28gY29udGFpbnMgYSBmb3VydGggZWxlbWVudDoKKyAqCisgKiAgIGl2LiBBbiBpbnR2ZWN0b3Igb2YgYWxpYXNlcy4gIFRoaXMgbGlzdCBpbmNsdWRlcyB0aGlzIHpvbmUKKyAqICAgaXRzZWxmLCBhbmQgbGlzdHMgYWxsIGFsaWFzZXMgb2YgdGhpcyB6b25lLgorICoKKyAqICBkLiBDb21wbGV4IHpvbmUgKGFycmF5LCBsZW5ndGggNSkuICBUaGlzIGlzIGxpa2UgYSBzaW1wbGUgem9uZSwKKyAqICBidXQgY29udGFpbnMgdHdvIG1vcmUgZWxlbWVudHM6CisgKgorICogICBpdi4gQSBzdHJpbmcsIGdpdmluZyB0aGUgbmFtZSBvZiBhIHJ1bGUuICBUaGlzIGlzIHRoZSAiZmluYWwKKyAqICAgcnVsZSIsIHdoaWNoIGdvdmVybnMgdGhlIHpvbmUncyBiZWhhdmlvciBiZWdpbm5pbmcgaW4gdGhlICJmaW5hbAorICogICB5ZWFyIi4gIFRoZSBydWxlIElEIGlzIGdpdmVuIHdpdGhvdXQgbGVhZGluZyB1bmRlcnNjb3JlLCBlLmcuLAorICogICAiRVUiLgorICoKKyAqICAgdi4gQW4gaW50dmVjdG9yIG9mIGxlbmd0aCAyLCBjb250YWluaW5nIHRoZSByYXcgb2Zmc2V0IGZvciB0aGUKKyAqICAgZmluYWwgcnVsZSAoaW4gc2Vjb25kcyksIGFuZCB0aGUgZmluYWwgeWVhci4gIFRoZSBmaW5hbCBydWxlCisgKiAgIHRha2VzIGVmZmVjdCBmb3IgeWVhcnMgPj0gdGhlIGZpbmFsIHllYXIuCisgKgorICogIGUuIENvbXBsZXggem9uZSB3aXRoIGFsaWFzZXMgKGFycmF5LCBsZW5ndGggNikuICBUaGlzIGlzIGxpa2UgYQorICogIGNvbXBsZXggem9uZSwgYnV0IGFsc28gY29udGFpbnMgYSBzaXh0aCBlbGVtZW50OgorICogCisgKiAgIHZpLiBBbiBpbnR2ZWN0b3Igb2YgYWxpYXNlcy4gIFRoaXMgbGlzdCBpbmNsdWRlcyB0aGlzIHpvbmUKKyAqICAgaXRzZWxmLCBhbmQgbGlzdHMgYWxsIGFsaWFzZXMgb2YgdGhpcyB6b25lLgorICoKKyAqIDIuIFJ1bGVzLiAgVGhlc2UgaGF2ZSBrZXlzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIE9sc29uIHJ1bGUgSURzLAorICogd2l0aCBhbiB1bmRlcnNjb3JlIHByZXBlbmRlZCwgZS5nLiwgIl9FVSIuICBFYWNoIHJlc291cmNlIGRlc2NyaWJlcworICogdGhlIGJlaGF2aW9yIG9mIHRoZSBnaXZlbiBydWxlIHVzaW5nIGFuIGludHZlY3RvciwgY29udGFpbmluZyB0aGUKKyAqIG9uc2V0IGxpc3QsIHRoZSBjZXNzYXRpb24gbGlzdCwgYW5kIHRoZSBEU1Qgc2F2aW5ncy4gIFRoZSBvbnNldCBhbmQKKyAqIGNlc3NhdGlvbiBsaXN0cyBjb25zaXN0IG9mIHRoZSBtb250aCwgZG93aW0sIGRvdywgdGltZSwgYW5kIHRpbWUKKyAqIG1vZGUuICBUaGUgZW5kIHJlc3VsdCBpcyB0aGF0IHRoZSAxMSBpbnRlZ2VycyBkZXNjcmliaW5nIHRoZSBydWxlCisgKiBjYW4gYmUgcGFzc2VkIGRpcmVjdGx5IGludG8gdGhlIFNpbXBsZVRpbWVab25lIDEzLWFyZ3VtZW50CisgKiBjb25zdHJ1Y3RvciAodGhlIG90aGVyIHR3byBhcmd1bWVudHMgd2lsbCBiZSB0aGUgcmF3IG9mZnNldCwgdGFrZW4KKyAqIGZyb20gdGhlIGNvbXBsZXggem9uZSBlbGVtZW50IDUsIGFuZCB0aGUgSUQgc3RyaW5nLCB3aGljaCBpcyBub3QKKyAqIHVzZWQpLCB3aXRoIHRoZSB0aW1lcyBhbmQgdGhlIERTVCBzYXZpbmdzIG11bHRpcGxpZWQgYnkgMTAwMCB0bworICogc2NhbGUgZnJvbSBzZWNvbmRzIHRvIG1pbGxpc2Vjb25kcy4KKyAqCisgKiAzLiBDb3VudHJpZXMuICBUaGVzZSBoYXZlIGtleXMgY29ycmVzcG9uZGluZyB0byB0aGUgMi1sZXR0ZXIgSVNPCisgKiBjb3VudHJ5IGNvZGVzLCB3aXRoIGEgcGVyY2VudCBzaWduIHByZXBlbmRlZCwgZS5nLiwgIiVVUyIuICBFYWNoCisgKiByZXNvdXJjZSBpcyBhbiBpbnR2ZWN0b3IgbGlzdGluZyB0aGUgem9uZXMgYXNzb2NpYXRlZCB3aXRoIHRoZQorICogZ2l2ZW4gY291bnRyeS4gIFRoZSBzcGVjaWFsIGVudHJ5ICIlIiBjb3JyZXNwb25kcyB0byAibm8gY291bnRyeSIsCisgKiB0aGF0IGlzLCB0aGUgY2F0ZWdvcnkgb2Ygem9uZXMgYXNzaWduZWQgdG8gbm8gY291bnRyeSBpbiB0aGUgT2xzb24KKyAqIERCLgorICoKKyAqIDQuIE1ldGFkYXRhLiAgTWV0YWRhdGEgaXMgc3RvcmVkIHVuZGVyIHRoZSBrZXkgIl8iLiAgSXQgaXMgYW4KKyAqIGludHZlY3RvciBvZiBsZW5ndGggdGhyZWUgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHpvbmVzIHJlc291cmNlcywKKyAqIHJ1bGUgcmVzb3VyY2VzLCBhbmQgY291bnRyeSByZXNvdXJjZXMuICBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMKKyAqIGNvdW50LCB0aGUgbWV0YWRhdGEgZW50cnkgaXRzZWxmIGlzIGNvbnNpZGVyZWQgYSBydWxlIHJlc291cmNlLAorICogc2luY2UgaXRzIGtleSBiZWdpbnMgd2l0aCBhbiB1bmRlcnNjb3JlLgorICovCitwdWJsaWMgY2xhc3MgT2xzb25UaW1lWm9uZSBleHRlbmRzIFRpbWVab25lIHsKKworICAgIC8vIEdlbmVyYXRlZCBieSBzZXJpYWx2ZXIgZnJvbSBKREsgMS40LjFfMDEKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTYyODE5NzczNjI0Nzc1MTUzNzZMOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBBU1NFUlQgPSBmYWxzZTsKKworICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUjZ2V0T2Zmc2V0KGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpCisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwgaW50IGRheU9mV2VlaywgaW50IG1pbGxpc2Vjb25kcykgeworICAgICAgICBpZiAobW9udGggPCBDYWxlbmRhci5KQU5VQVJZIHx8IG1vbnRoID4gQ2FsZW5kYXIuREVDRU1CRVIpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk1vbnRoIGlzIG5vdCBpbiB0aGUgbGVnYWwgcmFuZ2U6ICIgK21vbnRoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRPZmZzZXQoZXJhLCB5ZWFyLCBtb250aCwgZGF5LCBkYXlPZldlZWssIG1pbGxpc2Vjb25kcyxNT05USF9MRU5HVEhbbW9udGggKyAoaXNMZWFwWWVhcih5ZWFyKT8xMjowKV0pOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0T2Zmc2V0KGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsaW50IGRvbSwgaW50IGRvdywgaW50IG1pbGxpcywgaW50IG1vbnRoTGVuZ3RoKXsKKworICAgICAgICBpZiAoKGVyYSAhPSBHcmVnb3JpYW5DYWxlbmRhci5BRCAmJiBlcmEgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQkMpCisgICAgICAgICAgICB8fCBtb250aCA8IENhbGVuZGFyLkpBTlVBUlkKKyAgICAgICAgICAgIHx8IG1vbnRoID4gQ2FsZW5kYXIuREVDRU1CRVIKKyAgICAgICAgICAgIHx8IGRvbSA8IDEKKyAgICAgICAgICAgIHx8IGRvbSA+IG1vbnRoTGVuZ3RoCisgICAgICAgICAgICB8fCBkb3cgPCBDYWxlbmRhci5TVU5EQVkKKyAgICAgICAgICAgIHx8IGRvdyA+IENhbGVuZGFyLlNBVFVSREFZCisgICAgICAgICAgICB8fCBtaWxsaXMgPCAwCisgICAgICAgICAgICB8fCBtaWxsaXMgPj0gTUlMTElTX1BFUl9EQVkKKyAgICAgICAgICAgIHx8IG1vbnRoTGVuZ3RoIDwgMjgKKyAgICAgICAgICAgIHx8IG1vbnRoTGVuZ3RoID4gMzEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlcmEgPT0gR3JlZ29yaWFuQ2FsZW5kYXIuQkMpIHsKKyAgICAgICAgICAgIHllYXIgPSAteWVhcjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh5ZWFyID4gZmluYWxZZWFyKSB7IC8vIFtzaWNdID4sIG5vdCA+PTsgc2VlIGFib3ZlCisgICAgICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoIihmaW5hbFpvbmUgIT0gbnVsbCkiLCBmaW5hbFpvbmUgIT0gbnVsbCk7CisgICAgICAgICAgICByZXR1cm4gZmluYWxab25lLmdldE9mZnNldChlcmEsIHllYXIsIG1vbnRoLCBkb20sIGRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWxsaXMsIG1vbnRoTGVuZ3RoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbXB1dGUgbG9jYWwgZXBvY2ggc2Vjb25kcyBmcm9tIGlucHV0IGZpZWxkcworICAgICAgICBkb3VibGUgdGltZSA9IGZpZWxkc1RvRGF5KHllYXIsIG1vbnRoLCBkb20pICogU0VDT05EU19QRVJfREFZICsKKyAgICAgICAgICAgIE1hdGguZmxvb3IobWlsbGlzIC8gKGRvdWJsZSkgTUlMTElTX1BFUl9TRUNPTkQpOworCisgICAgICAgIGludFtdIG9mZnNldHMgPSBuZXcgaW50WzJdOworICAgICAgICBnZXRIaXN0b3JpY2FsT2Zmc2V0KHRpbWUsIHRydWUsIG9mZnNldHMpOworICAgICAgICByZXR1cm4gb2Zmc2V0c1swXSArIG9mZnNldHNbMV07CisgICAgfQorICAgIC8qIChub24tSmF2YWRvYykKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUjc2V0UmF3T2Zmc2V0KGludCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSYXdPZmZzZXQoaW50IG9mZnNldE1pbGxpcykgeworICAgICAgICBmaW5hbFpvbmUuc2V0UmF3T2Zmc2V0KG9mZnNldE1pbGxpcyk7CisgICAgfQorICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIE9sc29uVGltZVpvbmUgb3RoZXIgPSAoT2xzb25UaW1lWm9uZSkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgaWYoZmluYWxab25lIT1udWxsKXsKKyAgICAgICAgICAgIGZpbmFsWm9uZS5zZXRJRChnZXRJRCgpKTsKKyAgICAgICAgICAgIG90aGVyLmZpbmFsWm9uZSA9IChTaW1wbGVUaW1lWm9uZSlmaW5hbFpvbmUuY2xvbmUoKTsKKyAgICAgICAgfQorICAgICAgICBvdGhlci50cmFuc2l0aW9uVGltZXMgPSAoaW50W10pdHJhbnNpdGlvblRpbWVzLmNsb25lKCk7CisgICAgICAgIG90aGVyLnR5cGVEYXRhID0gKGJ5dGVbXSl0eXBlRGF0YS5jbG9uZSgpOworICAgICAgICBvdGhlci50eXBlT2Zmc2V0cyA9IChpbnRbXSl0eXBlT2Zmc2V0cy5jbG9uZSgpOworICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgfQorICAgIC8qKgorICAgICAqIFRpbWVab25lIEFQSS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBnZXRPZmZzZXQobG9uZyBkYXRlLCBib29sZWFuIGxvY2FsLCBpbnRbXSBvZmZzZXRzKSAgeworICAgICAgICBpbnQgcmF3b2ZmLCBkc3RvZmY7CisgICAgICAgIC8vIFRoZSBjaGVjayBhZ2FpbnN0IGZpbmFsTWlsbGlzIHdpbGwgc3VmZmljZSBtb3N0IG9mIHRoZSB0aW1lLCBleGNlcHQKKyAgICAgICAgLy8gZm9yIHRoZSBjYXNlIGluIHdoaWNoIGZpbmFsTWlsbGlzID09IERCTF9NQVgsIGRhdGUgPT0gREJMX01BWCwKKyAgICAgICAgLy8gYW5kIGZpbmFsWm9uZSA9PSAwLiAgRm9yIHRoaXMgY2FzZSB3ZSBhZGQgIiYmIGZpbmFsWm9uZSAhPSAwIi4KKyAgICAgICAgaWYgKGRhdGUgPj0gZmluYWxNaWxsaXMgJiYgZmluYWxab25lICE9IG51bGwpIHsKKyAgICAgICAgICAgIGRvdWJsZVtdIGRvdWIgPSBmbG9vckRpdmlkZShkYXRlLCAoZG91YmxlKU1JTExJU19QRVJfREFZKTsKKyAgICAgICAgICAgIGRvdWJsZSBtaWxsaXM9ZG91YlsxXTsKKyAgICAgICAgICAgIGRvdWJsZSBkYXlzPWRvdWJbMF07CisgICAgICAgICAgICBpbnRbXSB0ZW1wID0gZGF5VG9GaWVsZHMoZGF5cyk7CisgICAgICAgICAgICBpbnQgeWVhcj10ZW1wWzBdLCBtb250aD10ZW1wWzFdLCBkb209dGVtcFsyXSwgZG93PXRlbXBbM107CisgICAgICAgICAgICByYXdvZmYgPSBmaW5hbFpvbmUuZ2V0UmF3T2Zmc2V0KCk7CisKKyAgICAgICAgICAgIGlmICghbG9jYWwpIHsKKyAgICAgICAgICAgICAgICAvLyBBZGp1c3QgZnJvbSBHTVQgdG8gbG9jYWwKKyAgICAgICAgICAgICAgICBkYXRlICs9IHJhd29mZjsKKyAgICAgICAgICAgICAgICBkb3ViID0gZmxvb3JEaXZpZGUoZGF0ZSwgKGRvdWJsZSlNSUxMSVNfUEVSX0RBWSk7CisgICAgICAgICAgICAgICAgZG91YmxlIGRheXMyID0gZG91YlswXTsgCisgICAgICAgICAgICAgICAgbWlsbGlzID0gZG91YlsxXTsKKyAgICAgICAgICAgICAgICBpZiAoZGF5czIgIT0gZGF5cykgeworICAgICAgICAgICAgICAgICAgICB0ZW1wID0gZGF5VG9GaWVsZHMoZGF5czIpOworICAgICAgICAgICAgICAgICAgICB5ZWFyPXRlbXBbMF07CisgICAgICAgICAgICAgICAgICAgIG1vbnRoPXRlbXBbMV07CisgICAgICAgICAgICAgICAgICAgIGRvbT10ZW1wWzJdOworICAgICAgICAgICAgICAgICAgICBkb3c9dGVtcFszXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRzdG9mZiA9IGZpbmFsWm9uZS5nZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsIHllYXIsIG1vbnRoLCBkb20sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdywgKGludCltaWxsaXMpIAorICAgICAgICAgICAgICAgICAgICAtIHJhd29mZjsKKyAgICAgICAgICAgIG9mZnNldHNbMF09cmF3b2ZmOworICAgICAgICAgICAgb2Zmc2V0c1sxXT1kc3RvZmY7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBkb3VibGUgc2VjcyA9IE1hdGguZmxvb3IoZGF0ZSAvIE1JTExJU19QRVJfU0VDT05EKTsKKyAgICAgICAgZ2V0SGlzdG9yaWNhbE9mZnNldChzZWNzLCBsb2NhbCwgb2Zmc2V0cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZG91YmxlW10gZmxvb3JEaXZpZGUoZG91YmxlIGRpdmlkZW5kLCBkb3VibGUgZGl2aXNvcikgeworICAgICAgICBkb3VibGUgcmVtYWluZGVyOyAKKyAgICAgICAgZG91YmxlW10gcmV0ID0gbmV3IGRvdWJsZVsyXTsKKyAgICAgICAgLy8gT25seSBkZXNpZ25lZCB0byB3b3JrIGZvciBwb3NpdGl2ZSBkaXZpc29ycworICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoImRpdmlzb3IgPiAwIiwgZGl2aXNvciA+IDApOworICAgICAgICBkb3VibGUgcXVvdGllbnQgPSBNYXRoLmZsb29yKGRpdmlkZW5kL2Rpdmlzb3IpOworICAgICAgICByZW1haW5kZXIgPSBkaXZpZGVuZCAtIChxdW90aWVudCAqIGRpdmlzb3IpOworICAgICAgICAvLyBOLkIuIEZvciBjZXJ0YWluIGxhcmdlIGRpdmlkZW5kcywgb24gY2VydGFpbiBwbGF0Zm9ybXMsIHRoZXJlCisgICAgICAgIC8vIGlzIGEgYnVnIHN1Y2ggdGhhdCB0aGUgcXVvdGllbnQgaXMgb2ZmIGJ5IG9uZS4gSWYgeW91IGRvdWJ0CisgICAgICAgIC8vIHRoaXMgdG8gYmUgdHJ1ZSwgc2V0IGEgYnJlYWtwb2ludCBiZWxvdyBhbmQgcnVuIGNpbnRsdHN0LgorICAgICAgICBpZiAocmVtYWluZGVyIDwgMCB8fCByZW1haW5kZXIgPj0gZGl2aXNvcikgeworICAgICAgICAgICAgLy8gRS5nLiA2LjczMTcwMzgyNDE0NDkzNTJlKzAyMiAvIDg2NDAwMDAwLjAgaXMgd3Jvbmcgb24gbXkKKyAgICAgICAgICAgIC8vIG1hY2hpbmUgKHRvbyBoaWdoIGJ5IG9uZSkuIDQuMTc5MjA1NzIzMTc1Mjc2MmUrMDI0IC8KKyAgICAgICAgICAgIC8vIDg2NDAwMDAwLjAgaXMgd3JvbmcgdGhlIG90aGVyIHdheSAodG9vIGxvdykuCisgICAgICAgICAgICBkb3VibGUgcSA9IHF1b3RpZW50OworICAgICAgICAgICAgcXVvdGllbnQgKz0gKHJlbWFpbmRlciA8IDApID8gLTEgOiArMTsKKyAgICAgICAgICAgIGlmIChxID09IHF1b3RpZW50KSB7CisgICAgICAgICAgICAgICAgLy8gRm9yIHF1b3RpZW50cyA+IH4yXjUzLCB3ZSB3b24ndCBiZSBhYmxlIHRvIGFkZCBvcgorICAgICAgICAgICAgICAgIC8vIHN1YnRyYWN0IG9uZSwgc2luY2UgdGhlIExTQiBvZiB0aGUgbWFudGlzc2Egd2lsbCBiZSA+CisgICAgICAgICAgICAgICAgLy8gMl4wOyB0aGF0IGlzLCB0aGUgZXhwb25lbnQgKGJhc2UgMikgd2lsbCBiZSBsYXJnZXIgdGhhbgorICAgICAgICAgICAgICAgIC8vIHRoZSBsZW5ndGgsIGluIGJpdHMsIG9mIHRoZSBtYW50aXNzYS4gSW4gdGhhdCBjYXNlLCB3ZQorICAgICAgICAgICAgICAgIC8vIGNhbid0IGdpdmUgYSBjb3JyZWN0IGFuc3dlciwgc28gd2Ugc2V0IHRoZSByZW1haW5kZXIgdG8KKyAgICAgICAgICAgICAgICAvLyB6ZXJvLiBUaGlzIGhhcyB0aGUgZGVzaXJlZCBlZmZlY3Qgb2YgbWFraW5nIGV4dHJlbWUKKyAgICAgICAgICAgICAgICAvLyB2YWx1ZXMgZ2l2ZSBiYWNrIGFuIGFwcHJveGltYXRlIGFuc3dlciByYXRoZXIgdGhhbgorICAgICAgICAgICAgICAgIC8vIGNyYXNoaW5nLiBGb3IgZXhhbXBsZSwgVURhdGUgdmFsdWVzIGFib3ZlIGEgfjEwXjI1CisgICAgICAgICAgICAgICAgLy8gbWlnaHQgYWxsIGhhdmUgYSB0aW1lIG9mIG1pZG5pZ2h0LgorICAgICAgICAgICAgICAgIHJlbWFpbmRlciA9IDA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlbWFpbmRlciA9IGRpdmlkZW5kIC0gKHF1b3RpZW50ICogZGl2aXNvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKEFTU0VSVCkgQXNzZXJ0LmFzc3J0KCIwIDw9IHJlbWFpbmRlciAmJiByZW1haW5kZXIgPCBkaXZpc29yIiwgMCA8PSByZW1haW5kZXIgJiYgcmVtYWluZGVyIDwgZGl2aXNvcik7CisgICAgICAgIHJldFswXT1xdW90aWVudDsKKyAgICAgICAgcmV0WzFdPXJlbWFpbmRlcjsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZSNnZXRSYXdPZmZzZXQoKQorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UmF3T2Zmc2V0KCkgeworICAgICAgICBpbnRbXSByZXQgPSBuZXcgaW50WzJdOworICAgICAgICBnZXRPZmZzZXQoIFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpLCBmYWxzZSwgcmV0KTsKKyAgICAgICAgcmV0dXJuIHJldFswXTsKKyAgICB9CisKKyAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlRpbWVab25lI3VzZURheWxpZ2h0VGltZSgpCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gdXNlRGF5bGlnaHRUaW1lKCkgeworLy8gICAgICBJZiBEU1Qgd2FzIG9ic2VydmVkIGluIDE5NDIgKGZvciBleGFtcGxlKSBidXQgaGFzIG5ldmVyIGJlZW4KKyAgICAgICAgLy8gb2JzZXJ2ZWQgZnJvbSAxOTQzIHRvIHRoZSBwcmVzZW50LCBtb3N0IGNsaWVudHMgd2lsbCBleHBlY3QKKyAgICAgICAgLy8gdGhpcyBtZXRob2QgdG8gcmV0dXJuIEZBTFNFLiAgVGhpcyBtZXRob2QgZGV0ZXJtaW5lcyB3aGV0aGVyCisgICAgICAgIC8vIERTVCBpcyBpbiB1c2UgaW4gdGhlIGN1cnJlbnQgeWVhciAoYXQgYW55IHBvaW50IGluIHRoZSB5ZWFyKQorICAgICAgICAvLyBhbmQgcmV0dXJucyBUUlVFIGlmIHNvLgorCisgICAgICAgIGRvdWJsZVtdIGR0ID0gZmxvb3JEaXZpZGUoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCksIChkb3VibGUpTUlMTElTX1BFUl9EQVkpOyAvLyBlcG9jaCBkYXlzCisgICAgICAgIGludCBkYXlzID0gKGludClkdFswXTsKKyAgICAgICAgaW50W10gaXQgPSBkYXlUb0ZpZWxkcyhkYXlzKTsKKworICAgICAgICBpbnQgeWVhcj1pdFswXSwgbW9udGg9aXRbMV0sIGRvbT1pdFsyXSwgZG93PWl0WzNdOworICAgICAgICBpZiAoeWVhciA+IGZpbmFsWWVhcikgeyAvLyBbc2ljXSA+LCBub3QgPj07IHNlZSBhYm92ZQorICAgICAgICAgICAgaWYgKEFTU0VSVCkgQXNzZXJ0LmFzc3J0KCJmaW5hbFpvbmUgIT0gbnVsbCAmJiBmaW5hbFpvbmUudXNlRGF5bGlnaHRUaW1lKCkiLCBmaW5hbFpvbmUgIT0gbnVsbCAmJiBmaW5hbFpvbmUudXNlRGF5bGlnaHRUaW1lKCkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBGaW5kIHN0YXJ0IG9mIHRoaXMgeWVhciwgYW5kIHN0YXJ0IG9mIG5leHQgeWVhcgorICAgICAgICBpbnQgc3RhcnQgPSAoaW50KSBmaWVsZHNUb0RheSh5ZWFyLCAwLCAxKSAqIFNFQ09ORFNfUEVSX0RBWTsgICAgCisgICAgICAgIGludCBsaW1pdCA9IChpbnQpIGZpZWxkc1RvRGF5KHllYXIrMSwgMCwgMSkgKiBTRUNPTkRTX1BFUl9EQVk7ICAgIAorCisgICAgICAgIC8vIFJldHVybiBUUlVFIGlmIERTVCBpcyBvYnNlcnZlZCBhdCBhbnkgdGltZSBkdXJpbmcgdGhlIGN1cnJlbnQKKyAgICAgICAgLy8geWVhci4KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRyYW5zaXRpb25Db3VudDsgKytpKSB7CisgICAgICAgICAgICBpZiAodHJhbnNpdGlvblRpbWVzW2ldID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodHJhbnNpdGlvblRpbWVzW2ldID49IHN0YXJ0ICYmCisgICAgICAgICAgICAgICAgZHN0T2Zmc2V0KHR5cGVEYXRhW2ldKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEkKKyAgICAgKiBSZXR1cm5zIHRoZSBhbW91bnQgb2YgdGltZSB0byBiZSBhZGRlZCB0byBsb2NhbCBzdGFuZGFyZCB0aW1lCisgICAgICogdG8gZ2V0IGxvY2FsIHdhbGwgY2xvY2sgdGltZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldERTVFNhdmluZ3MoKSB7CisgICAgCWlmKGZpbmFsWm9uZSE9bnVsbCl7CisgICAgCQlyZXR1cm4gZmluYWxab25lLmdldERTVFNhdmluZ3MoKTsKKyAgICAJfQorICAgIAlyZXR1cm4gc3VwZXIuZ2V0RFNUU2F2aW5ncygpOworICAgIAkKKyAgICB9CisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZSNpbkRheWxpZ2h0VGltZShqYXZhLnV0aWwuRGF0ZSkKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpbkRheWxpZ2h0VGltZShEYXRlIGRhdGUpIHsKKyAgICAgICAgaW50W10gdGVtcCA9IG5ldyBpbnRbMl07CisgICAgICAgIGdldE9mZnNldChkYXRlLmdldFRpbWUoKSwgZmFsc2UsIHRlbXApOworICAgICAgICByZXR1cm4gdGVtcFsxXSAhPSAwOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBHTVQrMCB6b25lIHdpdGggbm8gdHJhbnNpdGlvbnMuICBUaGlzIGlzIGRvbmUgd2hlbiBhCisgICAgICogY29uc3RydWN0b3IgZmFpbHMgc28gdGhlIHJlc3VsdGFudCBvYmplY3QgaXMgd2VsbC1iZWhhdmVkLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjb25zdHJ1Y3RFbXB0eSgpeworICAgICAgICB0cmFuc2l0aW9uQ291bnQgPSAwOworICAgICAgICB0eXBlQ291bnQgPSAxOworICAgICAgICB0cmFuc2l0aW9uVGltZXMgPSB0eXBlT2Zmc2V0cyA9IG5ldyBpbnRbXXswLDB9OworICAgICAgICB0eXBlRGF0YSA9ICBuZXcgYnl0ZVsyXTsKKyAgICAgICAgCisgICAgfQorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBmcm9tIGEgcmVzb3VyY2UgYnVuZGxlCisgICAgICogQHBhcmFtIHRvcCB0aGUgdG9wLWxldmVsIHpvbmVpbmZvIHJlc291cmNlIGJ1bmRsZS4gIFRoaXMgaXMgdXNlZAorICAgICAqIHRvIGxvb2t1cCB0aGUgcnVsZSB0aGF0IGByZXMnIG1heSByZWZlciB0bywgaWYgdGhlcmUgaXMgb25lLgorICAgICAqIEBwYXJhbSByZXMgdGhlIHJlc291cmNlIGJ1bmRsZSBvZiB0aGUgem9uZSB0byBiZSBjb25zdHJ1Y3RlZAorICAgICAqIEBwYXJhbSBlYyBpbnB1dC1vdXRwdXQgZXJyb3IgY29kZQorICAgICAqLworICAgIHB1YmxpYyBPbHNvblRpbWVab25lKElDVVJlc291cmNlQnVuZGxlIHRvcCwgSUNVUmVzb3VyY2VCdW5kbGUgcmVzKXsKKyAgICAgICAgY29uc3RydWN0KHRvcCwgcmVzKTsKKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGNvbnN0cnVjdChJQ1VSZXNvdXJjZUJ1bmRsZSB0b3AsIElDVVJlc291cmNlQnVuZGxlIHJlcyl7CisgICAgICAgIAorICAgICAgICBpZiAoKHRvcCA9PSBudWxsIHx8IHJlcyA9PSBudWxsKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIGlmKERFQlVHKSBTeXN0ZW0ub3V0LnByaW50bG4oIk9sc29uVGltZVpvbmUoIiArIHJlcy5nZXRLZXkoKSArIikiKTsKKworCisgICAgICAgIC8vIFRPRE8gLS0gY2xlYW4gdXAgLS0gRG9lc24ndCB3b3JrIGlmIHJlcyBwb2ludHMgdG8gYW4gYWxpYXMKKyAgICAgICAgLy8gICAgICAgIC8vIFRPRE8gcmVtb3ZlIG5vbmNvbnN0IGNhc3RzIGJlbG93IHdoZW4gdXJlc18qIEFQSSBpcyBmaXhlZAorICAgICAgICAvLyAgICAgICAgc2V0SUQodXJlc19nZXRLZXkoKFVSZXNvdXJjZUJ1bmRsZSopIHJlcykpOyAvLyBjYXN0IGF3YXkgY29uc3QKKworICAgICAgICAvLyBTaXplIDEgaXMgYW4gYWxpYXMgVE8gYW5vdGhlciB6b25lIChpbnQpCisgICAgICAgIC8vIEhPV0VWRVIsIHRoZSBjYWxsZXIgc2hvdWxkIGRlcmVmZXJlbmNlIHRoaXMgYW5kIG5ldmVyIHBhc3MgaXQgaW4gdG8gdXMKKyAgICAgICAgLy8gU2l6ZSAzIGlzIGEgcHVyZWx5IGhpc3RvcmljYWwgem9uZSAobm8gZmluYWwgcnVsZXMpCisgICAgICAgIC8vIFNpemUgNCBpcyBsaWtlIHNpemUgMywgYnV0IHdpdGggYW4gYWxpYXMgbGlzdCBhdCB0aGUgZW5kCisgICAgICAgIC8vIFNpemUgNSBpcyBhIGh5YnJpZCB6b25lLCB3aXRoIGhpc3RvcmljYWwgYW5kIGZpbmFsIGVsZW1lbnRzCisgICAgICAgIC8vIFNpemUgNiBpcyBsaWtlIHNpemUgNSwgYnV0IHdpdGggYW4gYWxpYXMgbGlzdCBhdCB0aGUgZW5kCisgICAgICAgIGludCBzaXplID0gcmVzLmdldFNpemUoKTsKKyAgICAgICAgaWYgKHNpemUgPCAzIHx8IHNpemUgPiA2KSB7CisgICAgICAgICAgIC8vIGVjID0gVV9JTlZBTElEX0ZPUk1BVF9FUlJPUjsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgRm9ybWF0Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBUcmFuc2l0aW9ucyBsaXN0IG1heSBiZSBlbXB0eQorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByID0gcmVzLmdldCgwKTsKKyAgICAgICAgdHJhbnNpdGlvblRpbWVzID0gci5nZXRJbnRWZWN0b3IoKTsKKyAgICAgICAgCisgICAgICAgIGlmICgodHJhbnNpdGlvblRpbWVzLmxlbmd0aDwwIHx8IHRyYW5zaXRpb25UaW1lcy5sZW5ndGg+MHg3RkZGKSApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgRm9ybWF0Iik7CisgICAgICAgIH0KKyAgICAgICAgdHJhbnNpdGlvbkNvdW50ID0gKGludCkgdHJhbnNpdGlvblRpbWVzLmxlbmd0aDsKKyAgICAgICAgCisgICAgICAgIC8vIFR5cGUgb2Zmc2V0cyBsaXN0IG11c3QgYmUgb2YgZXZlbiBzaXplLCB3aXRoIHNpemUgPj0gMgorICAgICAgICByID0gcmVzLmdldCggMSk7CisgICAgICAgIHR5cGVPZmZzZXRzID0gci5nZXRJbnRWZWN0b3IoKTsKKyAgICAgICAgaWYgKCh0eXBlT2Zmc2V0cy5sZW5ndGg8MiB8fCB0eXBlT2Zmc2V0cy5sZW5ndGg+MHg3RkZFIHx8ICgodHlwZU9mZnNldHMubGVuZ3RoJjEpIT0wKSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgRm9ybWF0Iik7CisgICAgICAgIH0KKyAgICAgICAgdHlwZUNvdW50ID0gKGludCkgdHlwZU9mZnNldHMubGVuZ3RoID4+IDE7CisKKyAgICAgICAgLy8gVHlwZSBkYXRhIG11c3QgYmUgb2YgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgdHJhbnNpdGlvbnMgbGlzdCAgICAgICAgCisgICAgICAgIHIgPSByZXMuZ2V0KDIpOworICAgICAgICB0eXBlRGF0YSA9IHIuZ2V0QmluYXJ5KCkuYXJyYXkoKTsKKyAgICAgICAgaWYgKHR5cGVEYXRhLmxlbmd0aCAhPSB0cmFuc2l0aW9uQ291bnQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgRm9ybWF0Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBQcm9jZXNzIGZpbmFsIHJ1bGUgYW5kIGRhdGEsIGlmIGFueQorICAgICAgICBpZiAoc2l6ZSA+PSA1KSB7CisgICAgICAgICAgICBTdHJpbmcgcnVsZWlkID0gcmVzLmdldFN0cmluZygzKTsKKyAgICAgICAgICAgIHIgPSByZXMuZ2V0KDQpOworICAgICAgICAgICAgaW50W10gZGF0YSA9IHIuZ2V0SW50VmVjdG9yKCk7CisKKyAgICAgICAgICAgIGlmIChkYXRhICE9IG51bGwgJiYgZGF0YS5sZW5ndGggPT0gMikgeworICAgICAgICAgICAgICAgIGludCByYXdPZmZzZXQgPSBkYXRhWzBdICogTUlMTElTX1BFUl9TRUNPTkQ7CisgICAgICAgICAgICAgICAgLy8gU3VidHJhY3Qgb25lIGZyb20gdGhlIGFjdHVhbCBmaW5hbCB5ZWFyOyB3ZQorICAgICAgICAgICAgICAgIC8vIGFjdHVhbGx5IHN0b3JlIGZpbmFsIHllYXIgLSAxLCBhbmQgY29tcGFyZQorICAgICAgICAgICAgICAgIC8vIHVzaW5nID4gcmF0aGVyIHRoYW4gPj0uICBUaGlzIGFsbG93cyB1cyB0byB1c2UKKyAgICAgICAgICAgICAgICAvLyBJTlQzMl9NQVggYXMgYW4gZXhjbHVzaXZlIHVwcGVyIGxpbWl0IGZvciBhbGwKKyAgICAgICAgICAgICAgICAvLyB5ZWFycywgaW5jbHVkaW5nIElOVDMyX01BWC4KKyAgICAgICAgICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoImRhdGFbMV0gPiBJbnRlZ2VyLk1JTl9WQUxVRSIsIGRhdGFbMV0gPiBJbnRlZ2VyLk1JTl9WQUxVRSk7CisgICAgICAgICAgICAgICAgZmluYWxZZWFyID0gZGF0YVsxXSAtIDE7CisgICAgICAgICAgICAgICAgLy8gQWxzbyBjb21wdXRlIHRoZSBtaWxsaXMgZm9yIEphbiAxLCAwOjAwIEdNVCBvZiB0aGUKKyAgICAgICAgICAgICAgICAvLyBmaW5hbFllYXIuICBUaGlzIHJlZHVjZXMgcnVudGltZSBjb21wdXRhdGlvbnMuCisgICAgICAgICAgICAgICAgZmluYWxNaWxsaXMgPSBmaWVsZHNUb0RheShkYXRhWzFdLCAwLCAxKSAqIFRpbWVab25lLk1JTExJU19QRVJfREFZOworICAgICAgICAgICAgICAgIC8vVV9ERUJVR19UWl9NU0coKCJ6b25lJXN8JXM6IHslZCwlZH0sIGZpbmFsWWVhciVkLCBmaW5hbE1pbGxpcyUuMWxmXG4iLAorICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgIHpLZXkscktleSwgZGF0YVswXSwgZGF0YVsxXSwgZmluYWxZZWFyLCBmaW5hbE1pbGxpcykpOworICAgICAgICAgICAgICAgIHIgPSBsb2FkUnVsZSh0b3AsIHJ1bGVpZCk7CisKKyAgICAgICAgICAgICAgICAvLyAzLCAxLCAtMSwgNzIwMCwgMCwgOSwgLTMxLCAtMSwgNzIwMCwgMCwgMzYwMAorICAgICAgICAgICAgICAgIGRhdGEgPSByLmdldEludFZlY3RvcigpOworICAgICAgICAgICAgICAgIGlmICggZGF0YS5sZW5ndGggPT0gMTEpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9VX0RFQlVHX1RaX01TRygoInpvbmUlcywgcnVsZSVzOiB7JWQsJWQsJWQsJWQsJWQsJWQsJWQsJWQsJWQsJWQsJWR9IiwgektleSwgdXJlc19nZXRLZXkociksIAorICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSwgZGF0YVszXSwgZGF0YVs0XSwgZGF0YVs1XSwgZGF0YVs2XSwgZGF0YVs3XSwgZGF0YVs4XSwgZGF0YVs5XSwgZGF0YVsxMF0pKTsKKyAgICAgICAgICAgICAgICAgICAgZmluYWxab25lID0gbmV3IFNpbXBsZVRpbWVab25lKHJhd09mZnNldCwgIiIsCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdLAorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVszXSAqIE1JTExJU19QRVJfU0VDT05ELAorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVs0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbNV0sIGRhdGFbNl0sIGRhdGFbN10sCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzhdICogTUlMTElTX1BFUl9TRUNPTkQsCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWzldLAorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsxMF0gKiBNSUxMSVNfUEVSX1NFQ09ORCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBGb3JtYXQiKTsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIEZvcm1hdCIpOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgIAorICAgIH0KKyAgICBwdWJsaWMgT2xzb25UaW1lWm9uZSgpeworICAgICAgIC8qCisgICAgICAgICogCisgICAgICAgIGZpbmFsWWVhciA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICBmaW5hbE1pbGxpcyA9IERvdWJsZS5NQVhfVkFMVUU7CisgICAgICAgIGZpbmFsWm9uZSA9IG51bGw7CisgICAgICAgICovCisgICAgICAgIGNvbnN0cnVjdEVtcHR5KCk7CisgICAgfQorCisKKyAgICBwdWJsaWMgT2xzb25UaW1lWm9uZShTdHJpbmcgaWQpeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0b3AgPSAoSUNVUmVzb3VyY2VCdW5kbGUpSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgInpvbmVpbmZvIiwgSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0RBVEFfQ0xBU1NfTE9BREVSKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVzID0gWm9uZU1ldGEub3Blbk9sc29uUmVzb3VyY2UoaWQpOworICAgICAgICBjb25zdHJ1Y3QodG9wLCByZXMpOworICAgICAgICBpZihmaW5hbFpvbmUhPW51bGwpeworICAgICAgICAgICAgZmluYWxab25lLnNldElEKGlkKTsKKyAgICAgICAgfQorICAgICAgICBzdXBlci5zZXRJRChpZCk7CisgICAgfQorICAgIHB1YmxpYyB2b2lkIHNldElEKFN0cmluZyBpZCl7CisgICAgICAgIGlmKGZpbmFsWm9uZSE9IG51bGwpeworICAgICAgICAgICAgZmluYWxab25lLnNldElEKGlkKTsKKyAgICAgICAgfQorICAgICAgICBzdXBlci5zZXRJRChpZCk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTlNJR05FRF9CWVRFX01BU0sgPTB4RkY7CisgICAgcHJpdmF0ZSBpbnQgZ2V0SW50KGJ5dGUgdmFsKXsKKyAgICAJcmV0dXJuIChpbnQpKFVOU0lHTkVEX0JZVEVfTUFTSyAmIHZhbCk7IAorICAgIH0KKyAgICBwcml2YXRlIHZvaWQgZ2V0SGlzdG9yaWNhbE9mZnNldChkb3VibGUgdGltZSwgYm9vbGVhbiBsb2NhbCwgaW50W10gb2Zmc2V0cykgeworICAgICAgICBpZiAodHJhbnNpdGlvbkNvdW50ICE9IDApIHsKKyAgICAgICAgICAgIC8vIExpbmVhciBzZWFyY2ggZnJvbSB0aGUgZW5kIGlzIHRoZSBmYXN0ZXN0IGFwcHJvYWNoLCBzaW5jZQorICAgICAgICAgICAgLy8gbW9zdCBsb29rdXBzIHdpbGwgaGFwcGVuIGF0L25lYXIgdGhlIGVuZC4KKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIGZvciAoaSA9IHRyYW5zaXRpb25Db3VudCAtIDE7IGkgPiAwOyAtLWkpIHsKKyAgICAgICAgICAgICAgICBpbnQgdHJhbnNpdGlvbiA9IHRyYW5zaXRpb25UaW1lc1tpXTsKKyAgICAgICAgICAgICAgICBpZiAobG9jYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHpvbmVPZmZzZXRQcmV2ID0gem9uZU9mZnNldChnZXRJbnQodHlwZURhdGFbaS0xXSkpOworICAgICAgICAgICAgICAgICAgICBpbnQgem9uZU9mZnNldEN1cnIgPSB6b25lT2Zmc2V0KGdldEludCh0eXBlRGF0YVtpXSkpOworICAgICAgICAgICAgICAgICAgICBpZih6b25lT2Zmc2V0UHJldiA8IHpvbmVPZmZzZXRDdXJyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uICs9IHpvbmVPZmZzZXRQcmV2OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbiArPSB6b25lT2Zmc2V0Q3VycjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodGltZSA+PSB0cmFuc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKEFTU0VSVCkgQXNzZXJ0LmFzc3J0KCJpPj0wICYmIGk8dHJhbnNpdGlvbkNvdW50IiwgaT49MCAmJiBpPHRyYW5zaXRpb25Db3VudCk7CisKKyAgICAgICAgICAgIC8vIENoZWNrIGludmFyaWFudHMgZm9yIEdNVCB0aW1lczsgaWYgdGhlc2UgcGFzcyBmb3IgR01UIHRpbWVzCisgICAgICAgICAgICAvLyB0aGUgbG9jYWwgbG9naWMgc2hvdWxkIGJlIHdvcmtpbmcgdG9vLgorICAgICAgICAgICAgaWYgKEFTU0VSVCkgeworICAgICAgICAgICAgICAgIEFzc2VydC5hc3NydCgibG9jYWwgfHwgdGltZSA8IHRyYW5zaXRpb25UaW1lc1swXSB8fCB0aW1lID49IHRyYW5zaXRpb25UaW1lc1tpXSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWwgfHwgdGltZSA8IHRyYW5zaXRpb25UaW1lc1swXSB8fCB0aW1lID49IHRyYW5zaXRpb25UaW1lc1tpXSk7CisgICAgICAgICAgICAgICAgQXNzZXJ0LmFzc3J0KCJsb2NhbCB8fCBpID09IHRyYW5zaXRpb25Db3VudC0xIHx8IHRpbWUgPCB0cmFuc2l0aW9uVGltZXNbaSsxXSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWwgfHwgaSA9PSB0cmFuc2l0aW9uQ291bnQtMSB8fCB0aW1lIDwgdHJhbnNpdGlvblRpbWVzW2krMV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkgPT0gMCkgeworICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBnaXZlbiB0aW1lIGlzIGJlZm9yZSB0aGUgdmVyeSBmaXJzdCB0cmFuc2l0aW9uCisgICAgICAgICAgICAgICAgaW50IGZpcnN0VHJhbnNpdGlvbiA9IHRyYW5zaXRpb25UaW1lc1swXTsKKyAgICAgICAgICAgICAgICBpbnQgaW5pdGlhbFJhd09mZnNldCA9IHJhd09mZnNldChnZXRJbnQodHlwZURhdGFbMF0pKTsKKyAgICAgICAgICAgICAgICBpZiAobG9jYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RUcmFuc2l0aW9uICs9IGluaXRpYWxSYXdPZmZzZXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0aW1lID49IGZpcnN0VHJhbnNpdGlvbikgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZ2l2ZW4gdGltZSBpcyBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgdGhlIHNlY29uZCB0cmFuc2l0aW9uCisgICAgICAgICAgICAgICAgICAgIG9mZnNldHNbMF0gPSBpbml0aWFsUmF3T2Zmc2V0ICogTUlMTElTX1BFUl9TRUNPTkQ7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldHNbMV0gPSBkc3RPZmZzZXQoZ2V0SW50KHR5cGVEYXRhWzBdKSkgKiBNSUxMSVNfUEVSX1NFQ09ORDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZ2l2ZW4gdGltZSBpcyBiZWZvcmUgdGhlIGZpcnN0IHRyYW5zaXRpb24KKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0c1swXSA9IGluaXRpYWxSYXdPZmZzZXQgKiBNSUxMSVNfUEVSX1NFQ09ORDsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0c1sxXSA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgaW5kZXggPSBnZXRJbnQodHlwZURhdGFbaV0pOworICAgICAgICAgICAgICAgIG9mZnNldHNbMF0gPSByYXdPZmZzZXQoaW5kZXgpICogTUlMTElTX1BFUl9TRUNPTkQ7CisgICAgICAgICAgICAgICAgb2Zmc2V0c1sxXSA9IGRzdE9mZnNldChpbmRleCkgKiBNSUxMSVNfUEVSX1NFQ09ORDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIE5vIHRyYW5zaXRpb25zLCBzaW5nbGUgcGFpciBvZiBvZmZzZXRzIG9ubHkKKyAgICAgICAgICAgIG9mZnNldHNbMF0gPSByYXdPZmZzZXQoMCkgKiBNSUxMSVNfUEVSX1NFQ09ORDsKKyAgICAgICAgICAgIG9mZnNldHNbMV0gPSBkc3RPZmZzZXQoMCkgKiBNSUxMSVNfUEVSX1NFQ09ORDsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIGludCB6b25lT2Zmc2V0KGludCBpbmRleCl7CisgICAgICAgIGluZGV4PWluZGV4IDw8IDE7CisgICAgICAgIHJldHVybiB0eXBlT2Zmc2V0c1tpbmRleF0gKyB0eXBlT2Zmc2V0c1tpbmRleCsxXTsKKyAgICB9CisgICAgcHJpdmF0ZSBpbnQgcmF3T2Zmc2V0KGludCBpbmRleCl7CisgICAgICAgIHJldHVybiB0eXBlT2Zmc2V0c1soaW50KShpbmRleCA8PCAxKV07CisgICAgfQorICAgIHByaXZhdGUgaW50IGRzdE9mZnNldChpbnQgaW5kZXgpeworICAgICAgICByZXR1cm4gdHlwZU9mZnNldHNbKGludCkoKGluZGV4IDw8IDEpICsgMSldOworICAgIH0KKyAgICAKKyAgICAvLyB0ZW1wCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAJU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAJYnVmLmFwcGVuZChzdXBlci50b1N0cmluZygpKTsKKyAgICAJYnVmLmFwcGVuZCgnWycpOworICAgIAlidWYuYXBwZW5kKCJ0cmFuc2l0aW9uQ291bnQ9IiArIHRyYW5zaXRpb25Db3VudCk7CisgICAgCWJ1Zi5hcHBlbmQoIix0eXBlQ291bnQ9IiArIHR5cGVDb3VudCk7CisgICAgCWJ1Zi5hcHBlbmQoIix0cmFuc2l0aW9uVGltZXM9Iik7CisgICAgCWlmICh0cmFuc2l0aW9uVGltZXMgIT0gbnVsbCkgeworICAgIAkJYnVmLmFwcGVuZCgnWycpOworICAgIAkJZm9yIChpbnQgaSA9IDA7IGkgPCB0cmFuc2l0aW9uVGltZXMubGVuZ3RoOyArK2kpIHsKKyAgICAJCQlpZiAoaSA+IDApIHsKKyAgICAJCQkJYnVmLmFwcGVuZCgnLCcpOworICAgIAkJCX0KKyAgICAJCQlidWYuYXBwZW5kKEludGVnZXIudG9TdHJpbmcodHJhbnNpdGlvblRpbWVzW2ldKSk7CisgICAgCQl9CisgICAgCQlidWYuYXBwZW5kKCddJyk7CisgICAgCX0gZWxzZSB7CisgICAgCQlidWYuYXBwZW5kKCJudWxsIik7CisgICAgCX0KKyAgICAJYnVmLmFwcGVuZCgiLHR5cGVPZmZzZXRzPSIpOworICAgIAlpZiAodHlwZU9mZnNldHMgIT0gbnVsbCkgeworICAgIAkJYnVmLmFwcGVuZCgnWycpOworICAgIAkJZm9yIChpbnQgaSA9IDA7IGkgPCB0eXBlT2Zmc2V0cy5sZW5ndGg7ICsraSkgeworICAgIAkJCWlmIChpID4gMCkgeworICAgIAkJCQlidWYuYXBwZW5kKCcsJyk7CisgICAgCQkJfQorICAgIAkJCWJ1Zi5hcHBlbmQoSW50ZWdlci50b1N0cmluZyh0eXBlT2Zmc2V0c1tpXSkpOworICAgIAkJfQorICAgIAkJYnVmLmFwcGVuZCgnXScpOworICAgIAl9IGVsc2UgeworICAgIAkJYnVmLmFwcGVuZCgibnVsbCIpOworICAgIAl9CisgICAgCWJ1Zi5hcHBlbmQoIixmaW5hbFllYXI9IiArIGZpbmFsWWVhcik7CisgICAgCWJ1Zi5hcHBlbmQoIixmaW5hbE1pbGxpcz0iICsgZmluYWxNaWxsaXMpOworICAgIAlidWYuYXBwZW5kKCIsZmluYWxab25lPSIgKyBmaW5hbFpvbmUpOworICAgIAlidWYuYXBwZW5kKCddJyk7CisgICAgCQorICAgIAlyZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorICAgIC8qKgorICAgICAqIE51bWJlciBvZiB0cmFuc2l0aW9ucywgMC4ufjM3MAorICAgICAqLworICAgIHByaXZhdGUgaW50IHRyYW5zaXRpb25Db3VudDsKKworICAgIC8qKgorICAgICAqIE51bWJlciBvZiB0eXBlcywgMS4uMjU1CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgdHlwZUNvdW50OworCisgICAgLyoqCisgICAgICogVGltZSBvZiBlYWNoIHRyYW5zaXRpb24gaW4gc2Vjb25kcyBmcm9tIDE5NzAgZXBvY2guCisgICAgICogTGVuZ3RoIGlzIHRyYW5zaXRpb25Db3VudCBpbnQzMl90J3MuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRbXSB0cmFuc2l0aW9uVGltZXM7IC8vIGFsaWFzIGludG8gcmVzOyBkbyBub3QgZGVsZXRlCisKKyAgICAvKioKKyAgICAgKiBPZmZzZXQgZnJvbSBHTVQgaW4gc2Vjb25kcyBmb3IgZWFjaCB0eXBlLgorICAgICAqIExlbmd0aCBpcyB0eXBlQ291bnQgaW50MzJfdCdzLgorICAgICAqLworICAgIHByaXZhdGUgaW50W10gdHlwZU9mZnNldHM7IC8vIGFsaWFzIGludG8gcmVzOyBkbyBub3QgZGVsZXRlCisKKyAgICAvKioKKyAgICAgKiBUeXBlIGRlc2NyaXB0aW9uIGRhdGEsIGNvbnNpc3Rpbmcgb2YgdHJhbnNpdGlvbkNvdW50IHVpbnQ4X3QKKyAgICAgKiB0eXBlIGluZGljZXMgKGZyb20gMC4udHlwZUNvdW50LTEpLgorICAgICAqIExlbmd0aCBpcyB0cmFuc2l0aW9uQ291bnQgaW50OF90J3MuCisgICAgICovCisgICAgcHJpdmF0ZSBieXRlW10gdHlwZURhdGE7IC8vIGFsaWFzIGludG8gcmVzOyBkbyBub3QgZGVsZXRlCisKKyAgICAvKioKKyAgICAgKiBUaGUgbGFzdCB5ZWFyIGZvciB3aGljaCB0aGUgdHJhbnNpdGlvbnMgZGF0YSBhcmUgdG8gYmUgdXNlZAorICAgICAqIHJhdGhlciB0aGFuIHRoZSBmaW5hbFpvbmUuICBJZiB0aGVyZSBpcyBubyBmaW5hbFpvbmUsIHRoZW4gdGhpcworICAgICAqIGlzIHNldCB0byBJTlQzMl9NQVguICBOT1RFOiBUaGlzIGNvcnJlc3BvbmRzIHRvIHRoZSB5ZWFyIF9iZWZvcmVfCisgICAgICogdGhlIG9uZSBpbmRpY2F0ZWQgYnkgZmluYWxNaWxsaXMuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZmluYWxZZWFyID0gSW50ZWdlci5NQVhfVkFMVUU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWlsbGlzIGZvciB0aGUgc3RhcnQgb2YgdGhlIGZpcnN0IHllYXIgZm9yIHdoaWNoIGZpbmFsWm9uZQorICAgICAqIGlzIHRvIGJlIHVzZWQsIG9yIERCTF9NQVggaWYgZmluYWxab25lIGlzIDAuICBOT1RFOiBUaGlzIGlzCisgICAgICogMDowMCBHTVQgSmFuIDEsIDxmaW5hbFllYXIgKyAxPiAobm90IDxmaW5hbE1pbGxpcz4pLgorICAgICAqLworICAgIHByaXZhdGUgZG91YmxlIGZpbmFsTWlsbGlzID0gRG91YmxlLk1BWF9WQUxVRTsKKworICAgIC8qKgorICAgICAqIEEgU2ltcGxlVGltZVpvbmUgdGhhdCBnb3Zlcm5zIHRoZSBiZWhhdmlvciBmb3IgeWVhcnMgPiBmaW5hbFllYXIuCisgICAgICogSWYgYW5kIG9ubHkgaWYgZmluYWxZZWFyID09IElOVDMyX01BWCB0aGVuIGZpbmFsWm9uZSA9PSAwLgorICAgICAqLworICAgIHByaXZhdGUgU2ltcGxlVGltZVpvbmUgZmluYWxab25lID0gbnVsbDsgLy8gb3duZWQsIG1heSBiZSBOVUxMCisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IElDVURlYnVnLmVuYWJsZWQoIm9sc29uIik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gREFZU19CRUZPUkUgPSBuZXcgaW50W10gezAsMzEsNTksOTAsMTIwLDE1MSwxODEsMjEyLDI0MywyNzMsMzA0LDMzNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLDMxLDYwLDkxLDEyMSwxNTIsMTgyLDIxMywyNDQsMjc0LDMwNSwzMzV9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gTU9OVEhfTEVOR1RIID0gbmV3IGludFtdezMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxfTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSlVMSUFOXzFfQ0UgICAgPSAxNzIxNDI2OyAvLyBKYW51YXJ5IDEsIDEgQ0UgR3JlZ29yaWFuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEpVTElBTl8xOTcwX0NFID0gMjQ0MDU4ODsgLy8gSmFudWFyeSAxLCAxOTcwIENFIEdyZWdvcmlhbgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNSUxMSVNfUEVSX1NFQ09ORCAgPSAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRUNPTkRTX1BFUl9EQVkgPSAyNCo2MCo2MDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgZmllbGRzVG9EYXkoaW50IHllYXIsIGludCBtb250aCwgaW50IGRvbSkgeworICAgICAgICBpbnQgeSA9IHllYXIgLSAxOworICAgICAgICBkb3VibGUganVsaWFuID0gMzY1ICogeSArIG15Rmxvb3JEaXZpZGUoeSwgNCkgKyAoSlVMSUFOXzFfQ0UgLSAzKSArIC8vIEp1bGlhbiBjYWwKKyAgICAgICAgbXlGbG9vckRpdmlkZSh5LCA0MDApIC0gbXlGbG9vckRpdmlkZSh5LCAxMDApICsgMiArIC8vID0+IEdyZWdvcmlhbiBjYWwKKyAgICAgICAgICAgIERBWVNfQkVGT1JFW21vbnRoICsgKGlzTGVhcFllYXIoeWVhcikgPyAxMiA6IDApXSArIGRvbTsgLy8gPT4gbW9udGgvZG9tCisgICAgCisgICAgICAgIHJldHVybiBqdWxpYW4gLSBKVUxJQU5fMTk3MF9DRTsgLy8gSkQgPT4gZXBvY2ggZGF5CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNMZWFwWWVhcihpbnQgeWVhcikgeworICAgICAgICAvLyB5ZWFyJjB4MyA9PSB5ZWFyJTQKKyAgICAgICAgcmV0dXJuICgoeWVhciYweDMpID09IDApICYmICgoeWVhciUxMDAgIT0gMCkgfHwgKHllYXIlNDAwID09IDApKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBJQ1VSZXNvdXJjZUJ1bmRsZSBsb2FkUnVsZShJQ1VSZXNvdXJjZUJ1bmRsZSB0b3AsIFN0cmluZyBydWxlaWQpIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgciA9IHRvcC5nZXQoIlJ1bGVzIik7CisgICAgICAgIHIgPSByLmdldChydWxlaWQpOworICAgICAgICByZXR1cm4gcjsKKyAgICB9CisgICAgLyoqCisgICAgICogRGl2aWRlIHR3byBsb25nIGludGVnZXJzLCByZXR1cm5pbmcgdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudC4KKyAgICAgKiA8cD4KKyAgICAgKiBVbmxpa2UgdGhlIGJ1aWx0LWluIGRpdmlzaW9uLCB0aGlzIGlzIG1hdGhlbWF0aWNhbGx5IHdlbGwtYmVoYXZlZC4KKyAgICAgKiBFLmcuLCA8Y29kZT4tMS80PC9jb2RlPiA9PiAwCisgICAgICogYnV0IDxjb2RlPmZsb29yRGl2aWRlKC0xLDQpPC9jb2RlPiA9PiAtMS4KKyAgICAgKiBAcGFyYW0gbnVtZXJhdG9yIHRoZSBudW1lcmF0b3IKKyAgICAgKiBAcGFyYW0gZGVub21pbmF0b3IgYSBkaXZpc29yIHdoaWNoIG11c3QgYmUgPiAwCisgICAgICogQHJldHVybiB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgbXlGbG9vckRpdmlkZShsb25nIG51bWVyYXRvciwgbG9uZyBkZW5vbWluYXRvcikgeworICAgICAgICAvLyBXZSBkbyB0aGlzIGNvbXB1dGF0aW9uIGluIG9yZGVyIHRvIGhhbmRsZQorICAgICAgICAvLyBhIG51bWVyYXRvciBvZiBMb25nLk1JTl9WQUxVRSBjb3JyZWN0bHkKKyAgICAgICAgcmV0dXJuIChudW1lcmF0b3IgPj0gMCkgPworICAgICAgICAgICAgbnVtZXJhdG9yIC8gZGVub21pbmF0b3IgOgorICAgICAgICAgICAgKChudW1lcmF0b3IgKyAxKSAvIGRlbm9taW5hdG9yKSAtIDE7CisgICAgfQorICAgIGludFtdIGRheVRvRmllbGRzKGRvdWJsZSBkYXkpIHsKKyAgICAgICAgIGludCB5ZWFyLCBtb250aCwgZG9tLCBkb3c7CisgICAgICAgICBkb3VibGUgZG95OworICAgICAgICAgaW50W10gcmV0ID0gbmV3IGludFs1XTsKKyAgICAgICAgIAorICAgICAgICAvLyBDb252ZXJ0IGZyb20gMTk3MCBDRSBlcG9jaCB0byAxIENFIGVwb2NoIChHcmVnb3JpYW4gY2FsZW5kYXIpCisgICAgICAgIGRheSArPSBKVUxJQU5fMTk3MF9DRSAtIEpVTElBTl8xX0NFOworICAgICAgICAKKyAgICAgICAgLy8gQ29udmVydCBmcm9tIHRoZSBkYXkgbnVtYmVyIHRvIHRoZSBtdWx0aXBsZSByYWRpeAorICAgICAgICAvLyByZXByZXNlbnRhdGlvbi4gIFdlIHVzZSA0MDAteWVhciwgMTAwLXllYXIsIGFuZCA0LXllYXIgY3ljbGVzLgorICAgICAgICAvLyBGb3IgZXhhbXBsZSwgdGhlIDQteWVhciBjeWNsZSBoYXMgNCB5ZWFycyArIDEgbGVhcCBkYXk7IGdpdmluZworICAgICAgICAvLyAxNDYxID09IDM2NSo0ICsgMSBkYXlzLgorICAgICAgICBkb3VibGVbXXRlbXAgID0gZmxvb3JEaXZpZGUoZGF5LCAxNDYwOTcpOyAvLyA0MDAteWVhciBjeWNsZSBsZW5ndGgKKyAgICAgICAgZG91YmxlIG40MDAgPSB0ZW1wWzBdOworICAgICAgICBkb3kgID0gdGVtcFsxXTsKKyAgICAgICAgdGVtcCA9IGZsb29yRGl2aWRlKGRveSwgMzY1MjQpOyAvLyAxMDAteWVhciBjeWNsZSBsZW5ndGgKKyAgICAgICAgZG91YmxlIG4xMDAgPSB0ZW1wWzBdOworICAgICAgICBkb3kgPSB0ZW1wWzFdOworICAgICAgICB0ZW1wID0gZmxvb3JEaXZpZGUoZG95LCAxNDYxKTsgLy8gNC15ZWFyIGN5Y2xlIGxlbmd0aAorICAgICAgICBkb3VibGUgbjQgPSB0ZW1wWzBdOworICAgICAgICBkb3kgPSB0ZW1wWzFdOworICAgICAgICB0ZW1wID0gZmxvb3JEaXZpZGUoZG95LCAzNjUpOworICAgICAgICBkb3VibGUgbjEgPSB0ZW1wWzBdOworICAgICAgICBkb3kgPSB0ZW1wWzFdOworICAgICAgICB5ZWFyID0gKGludCkoIDQwMCpuNDAwICsgMTAwKm4xMDAgKyA0Km40ICsgbjEpOworICAgICAgICBpZiAobjEwMCA9PSA0IHx8IG4xID09IDQpIHsKKyAgICAgICAgICAgIGRveSA9IDM2NTsgLy8gRGVjIDMxIGF0IGVuZCBvZiA0LSBvciA0MDAteWVhciBjeWNsZQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgKyt5ZWFyOworICAgICAgICB9CisgICAgCisgICAgICAgIGJvb2xlYW4gaXNMZWFwID0gaXNMZWFwWWVhcih5ZWFyKTsKKyAgICAgICAgCisgICAgICAgIC8vIEdyZWdvcmlhbiBkYXkgemVybyBpcyBhIE1vbmRheS4KKyAgICAgICAgZG93ID0gKGludCkgKChkYXkgKyAxKSAlIDcpOworICAgICAgICBkb3cgKz0gKGRvdyA8IDApID8gKENhbGVuZGFyLlNVTkRBWSArIDcpIDogQ2FsZW5kYXIuU1VOREFZOworICAgICAgICAKKyAgICAgICAgLy8gQ29tbW9uIEp1bGlhbi9HcmVnb3JpYW4gY2FsY3VsYXRpb24KKyAgICAgICAgaW50IGNvcnJlY3Rpb24gPSAwOworICAgICAgICBpbnQgbWFyY2gxID0gaXNMZWFwID8gNjAgOiA1OTsgLy8gemVyby1iYXNlZCBET1kgZm9yIE1hcmNoIDEKKyAgICAgICAgaWYgKGRveSA+PSBtYXJjaDEpIHsKKyAgICAgICAgICAgIGNvcnJlY3Rpb24gPSBpc0xlYXAgPyAxIDogMjsKKyAgICAgICAgfQorICAgICAgICBtb250aCA9IChpbnQpKCgxMiAqIChkb3kgKyBjb3JyZWN0aW9uKSArIDYpIC8gMzY3KTsgLy8gemVyby1iYXNlZCBtb250aAorICAgICAgICBkb20gPSAoaW50KShkb3kgLSBEQVlTX0JFRk9SRVttb250aCArIChpc0xlYXAgPyAxMiA6IDApXSArIDEpOyAvLyBvbmUtYmFzZWQgRE9NCisgICAgICAgIGRveSsrOyAvLyBvbmUtYmFzZWQgZG95CisgICAgICAgIHJldFswXT15ZWFyOworICAgICAgICByZXRbMV09bW9udGg7CisgICAgICAgIHJldFsyXT1kb207CisgICAgICAgIHJldFszXT1kb3c7CisgICAgICAgIHJldFs0XT0oaW50KWRveTsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopeworICAgICAgICBpZiAoIXN1cGVyLmVxdWFscyhvYmopKSByZXR1cm4gZmFsc2U7IC8vIHN1cGVyIGRvZXMgY2xhc3MgY2hlY2sKKyAgICAgICAgCisgICAgICAgIE9sc29uVGltZVpvbmUgeiA9IChPbHNvblRpbWVab25lKSBvYmo7CisKKyAgICAgICAgcmV0dXJuIChVdGlsaXR5LmFycmF5RXF1YWxzKHR5cGVEYXRhLCB6LnR5cGVEYXRhKSB8fAorICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgcG9pbnRlcnMgYXJlIG5vdCBlcXVhbCwgdGhlIHpvbmVzIG1heSBzdGlsbAorICAgICAgICAgICAgICAgICAvLyBiZSBlcXVhbCBpZiB0aGVpciBydWxlcyBhbmQgdHJhbnNpdGlvbnMgYXJlIGVxdWFsCisgICAgICAgICAgICAgICAgIChmaW5hbFllYXIgPT0gei5maW5hbFllYXIgJiYKKyAgICAgICAgICAgICAgICAgIC8vIERvbid0IGNvbXBhcmUgZmluYWxNaWxsaXM7IGlmIGZpbmFsWWVhciBpcyA9PSwgc28gaXMgZmluYWxNaWxsaXMKKyAgICAgICAgICAgICAgICAgICgoZmluYWxab25lID09IG51bGwgJiYgei5maW5hbFpvbmUgPT0gbnVsbCkgfHwKKyAgICAgICAgICAgICAgICAgICAoZmluYWxab25lICE9IG51bGwgJiYgei5maW5hbFpvbmUgIT0gbnVsbCAmJgorICAgICAgICAgICAgICAgICAgICBmaW5hbFpvbmUuZXF1YWxzKHouZmluYWxab25lKSkgJiYKKyAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25Db3VudCA9PSB6LnRyYW5zaXRpb25Db3VudCAmJgorICAgICAgICAgICAgICAgICAgdHlwZUNvdW50ID09IHoudHlwZUNvdW50ICYmCisgICAgICAgICAgICAgICAgICBVdGlsaXR5LmFycmF5RXF1YWxzKHRyYW5zaXRpb25UaW1lcywgei50cmFuc2l0aW9uVGltZXMpICYmCisgICAgICAgICAgICAgICAgICBVdGlsaXR5LmFycmF5RXF1YWxzKHR5cGVPZmZzZXRzLCB6LnR5cGVPZmZzZXRzKSAmJgorICAgICAgICAgICAgICAgICAgVXRpbGl0eS5hcnJheUVxdWFscyh0eXBlRGF0YSwgei50eXBlRGF0YSkKKyAgICAgICAgICAgICAgICAgICkpKTsKKworICAgIH0KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCl7CisgICAgCWludCByZXQgPSAgIChpbnQpICAoZmluYWxZZWFyIF4gKGZpbmFsWWVhcj4+PjQpICsKKyAgICAJCQkgICB0cmFuc2l0aW9uQ291bnQgXiAodHJhbnNpdGlvbkNvdW50Pj4+NikgKworICAgIAkJCSAgIHR5cGVDb3VudCBeICh0eXBlQ291bnQ+Pj44KSArIAorICAgIAkJCSAgIERvdWJsZS5kb3VibGVUb0xvbmdCaXRzKGZpbmFsTWlsbGlzKSsKKyAgICAJCQkgICAoZmluYWxab25lID09IG51bGwgPyAwIDogZmluYWxab25lLmhhc2hDb2RlKCkpICsgCisgICAgCQkJICAgc3VwZXIuaGFzaENvZGUoKSk7CisgICAgCWZvcihpbnQgaT0wOyBpPHRyYW5zaXRpb25UaW1lcy5sZW5ndGg7IGkrKyl7CisgICAgCQlyZXQrPXRyYW5zaXRpb25UaW1lc1tpXV4odHJhbnNpdGlvblRpbWVzW2ldPj4+OCk7CisgICAgCX0KKwkgICAgZm9yKGludCBpPTA7IGk8dHlwZU9mZnNldHMubGVuZ3RoOyBpKyspeworICAgIAkJcmV0Kz10eXBlT2Zmc2V0c1tpXV4odHlwZU9mZnNldHNbaV0+Pj44KTsKKyAgICAJfQorCSAgICBmb3IoaW50IGk9MDsgaTx0eXBlRGF0YS5sZW5ndGg7IGkrKyl7CisgICAgCQlyZXQrPXR5cGVEYXRhW2ldICYgVU5TSUdORURfQllURV9NQVNLOworICAgIAl9IAorCSAgICByZXR1cm4gcmV0OworICAgIH0KKyAgICAvKgorICAgIHByaXZhdGUgdm9pZCByZWFkT2JqZWN0KE9iamVjdElucHV0U3RyZWFtIHMpIHRocm93cyBJT0V4Y2VwdGlvbiAgeworICAgICAgICBzLmRlZmF1bHRSZWFkT2JqZWN0KCk7CisgICAgICAgIC8vIGN1c3RvbWl6ZWQgZGVzZXJpYWxpemF0aW9uIGNvZGUKKyAgICAgICAKKyAgICAgICAgLy8gZm9sbG93ZWQgYnkgY29kZSB0byB1cGRhdGUgdGhlIG9iamVjdCwgaWYgbmVjZXNzYXJ5CisgICAgfQorICAgICovCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1ByZXR0eVByaW50ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1ByZXR0eVByaW50ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NmZiOTJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUHJldHR5UHJpbnRlci5qYXZhCkBAIC0wLDAgKzEsMjMzIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgaW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLkNvbXBhcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLlRyZWVTZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNvbGxlY3Rpb25VdGlsaXRpZXMuTXVsdGlDb21wYXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQ29sbGF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5UcmFuc2xpdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXRJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKiBQcm92aWRlcyBtb3JlIGZsZXhpYmxlIGZvcm1hdHRpbmcgb2YgVW5pY29kZVNldCBwYXR0ZXJucy4KKyAqLworcHVibGljIGNsYXNzIFByZXR0eVByaW50ZXIgeworCXByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgcGF0dGVybldoaXRlc3BhY2UgPSBuZXcgVW5pY29kZVNldCgiW1s6Q246XVs6RGVmYXVsdF9JZ25vcmFibGVfQ29kZV9Qb2ludDpdWzpwYXR0ZXJud2hpdGVzcGFjZTpdXSIpOworCQorCXByaXZhdGUgYm9vbGVhbiBmaXJzdCA9IHRydWU7CisJcHJpdmF0ZSBTdHJpbmdCdWZmZXIgdGFyZ2V0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCXByaXZhdGUgaW50IGZpcnN0Q29kZVBvaW50ID0gLTI7CisJcHJpdmF0ZSBpbnQgbGFzdENvZGVQb2ludCA9IC0yOworCXByaXZhdGUgYm9vbGVhbiBjb21wcmVzc1JhbmdlcyA9IHRydWU7CisJcHJpdmF0ZSBTdHJpbmcgbGFzdFN0cmluZyA9ICIiOworCXByaXZhdGUgVW5pY29kZVNldCB0b1F1b3RlID0gbmV3IFVuaWNvZGVTZXQocGF0dGVybldoaXRlc3BhY2UpOworCXByaXZhdGUgVHJhbnNsaXRlcmF0b3IgcXVvdGVyID0gbnVsbDsKKwkKKwlwcml2YXRlIENvbXBhcmF0b3Igb3JkZXJpbmc7CisJcHJpdmF0ZSBDb21wYXJhdG9yIHNwYWNlQ29tcCA9IENvbGxhdG9yLmdldEluc3RhbmNlKFVMb2NhbGUuUk9PVCk7CisJeworCQlzZXRPcmRlcmluZyhDb2xsYXRvci5nZXRJbnN0YW5jZShVTG9jYWxlLlJPT1QpKTsKKwkJKChSdWxlQmFzZWRDb2xsYXRvcilzcGFjZUNvbXApLnNldFN0cmVuZ3RoKFJ1bGVCYXNlZENvbGxhdG9yLlBSSU1BUlkpOworCX0KKwkKKwlwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0UXVvdGVyKCkgeworCQlyZXR1cm4gcXVvdGVyOworCX0KKworCXB1YmxpYyBQcmV0dHlQcmludGVyIHNldFF1b3RlcihUcmFuc2xpdGVyYXRvciBxdW90ZXIpIHsKKwkJdGhpcy5xdW90ZXIgPSBxdW90ZXI7CisJCXJldHVybiB0aGlzOyAvLyBmb3IgY2hhaW5pbmcKKwl9CisKKwlwdWJsaWMgYm9vbGVhbiBpc0NvbXByZXNzUmFuZ2VzKCkgeworCQlyZXR1cm4gY29tcHJlc3NSYW5nZXM7CisJfQorCQorCS8qKgorCSAqIEBwYXJhbSBjb21wcmVzc1JhbmdlcyBpZiB5b3Ugd2FudCBhYmNkZSBpbnN0ZWFkIG9mIGEtZSwgbWFrZSB0aGlzIGZhbHNlCisJICogQHJldHVybgorCSAqLworCXB1YmxpYyBQcmV0dHlQcmludGVyIHNldENvbXByZXNzUmFuZ2VzKGJvb2xlYW4gY29tcHJlc3NSYW5nZXMpIHsKKwkJdGhpcy5jb21wcmVzc1JhbmdlcyA9IGNvbXByZXNzUmFuZ2VzOworCQlyZXR1cm4gdGhpczsKKwl9CisJCisJcHVibGljIENvbXBhcmF0b3IgZ2V0T3JkZXJpbmcoKSB7CisJCXJldHVybiBvcmRlcmluZzsKKwl9CisJCisJLyoqCisJICogQHBhcmFtIG9yZGVyaW5nIHRoZSByZXN1bHRpbmcgIG9yZGVyaW5nIG9mIHRoZSBsaXN0IG9mIGNoYXJhY3RlcnMgaW4gdGhlIHBhdHRlcm4KKwkgKiBAcmV0dXJuCisJICovCisJcHVibGljIFByZXR0eVByaW50ZXIgc2V0T3JkZXJpbmcoQ29tcGFyYXRvciBvcmRlcmluZykgeworCQl0aGlzLm9yZGVyaW5nID0gbmV3IE11bHRpQ29tcGFyYXRvcihuZXcgQ29tcGFyYXRvcltdIHtvcmRlcmluZywgbmV3IFVURjE2LlN0cmluZ0NvbXBhcmF0b3IodHJ1ZSxmYWxzZSwwKX0pOworCQlyZXR1cm4gdGhpczsKKwl9CisJCisJcHVibGljIENvbXBhcmF0b3IgZ2V0U3BhY2VDb21wYXJhdG9yKCkgeworCQlyZXR1cm4gc3BhY2VDb21wOworCX0KKwkKKwkvKioKKwkgKiBAcGFyYW0gc3BhY2VDb21wIGlmIHRoZSBjb21wYXJpc29uIHJldHVybnMgbm9uLXplcm8sIHRoZW4gYSBzcGFjZSB3aWxsIGJlIGluc2VydGVkIGJldHdlZW4gY2hhcmFjdGVycworCSAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisJICovCisJcHVibGljIFByZXR0eVByaW50ZXIgc2V0U3BhY2VDb21wYXJhdG9yKENvbXBhcmF0b3Igc3BhY2VDb21wKSB7CisJCXRoaXMuc3BhY2VDb21wID0gc3BhY2VDb21wOworCQlyZXR1cm4gdGhpczsKKwl9CisJCisJcHVibGljIFVuaWNvZGVTZXQgZ2V0VG9RdW90ZSgpIHsKKwkJcmV0dXJuIHRvUXVvdGU7CisJfQorCQorCS8qKgorCSAqIGEgVW5pY29kZVNldCBvZiBleHRyYSBjaGFyYWN0ZXJzIHRvIHF1b3RlIHdpdGggXFx1WFhYWC1zdHlsZSBlc2NhcGluZyAod2lsbCBhdXRvbWF0aWNhbGx5IHF1b3RlIHBhdHRlcm4gd2hpdGVzcGFjZSkKKwkgKiBAcGFyYW0gdG9RdW90ZQorCSAqLworCXB1YmxpYyBQcmV0dHlQcmludGVyIHNldFRvUXVvdGUoVW5pY29kZVNldCB0b1F1b3RlKSB7CisJCXRvUXVvdGUgPSAoVW5pY29kZVNldCl0b1F1b3RlLmNsb25lKCk7CisJCXRvUXVvdGUuYWRkQWxsKHBhdHRlcm5XaGl0ZXNwYWNlKTsKKwkJdGhpcy50b1F1b3RlID0gdG9RdW90ZTsKKwkJcmV0dXJuIHRoaXM7CisJfQorCQkKKwkvKioKKwkgKiBHZXQgdGhlIHBhdHRlcm4gZm9yIGEgcGFydGljdWxhciBzZXQuCisJICogQHBhcmFtIHVzZXQKKwkgKiBAcmV0dXJuIGZvcm1hdHRlZCBVbmljb2RlU2V0CisJICovCisJcHVibGljIFN0cmluZyB0b1BhdHRlcm4oVW5pY29kZVNldCB1c2V0KSB7CisJCWZpcnN0ID0gdHJ1ZTsKKwkJLy8gbWFrZSBzdXJlIHRoYXQgY29tcGFyaXNvbiBzZXBhcmF0ZXMgYWxsIHN0cmluZ3MsIGV2ZW4gY2Fub25pY2FsbHkgZXF1aXZhbGVudCBvbmVzCisJCVNldCBvcmRlcmVkU3RyaW5ncyA9IG5ldyBUcmVlU2V0KG9yZGVyaW5nKTsKKwkJZm9yIChVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHVzZXQpOyBpdC5uZXh0KCk7KSB7CisJCQlvcmRlcmVkU3RyaW5ncy5hZGQoaXQuZ2V0U3RyaW5nKCkpOworCQl9CisJCXRhcmdldC5zZXRMZW5ndGgoMCk7CisJCXRhcmdldC5hcHBlbmQoIlsiKTsKKwkJZm9yIChJdGVyYXRvciBpdCA9IG9yZGVyZWRTdHJpbmdzLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKwkJCWFwcGVuZFVuaWNvZGVTZXRJdGVtKChTdHJpbmcpIGl0Lm5leHQoKSk7CisJCX0KKwkJZmx1c2hMYXN0KCk7CisJCXRhcmdldC5hcHBlbmQoIl0iKTsKKwkJU3RyaW5nIHNyZXN1bHQgPSB0YXJnZXQudG9TdHJpbmcoKTsKKwkJVW5pY29kZVNldCBkb3VibGVDaGVjayA9IG5ldyBVbmljb2RlU2V0KHNyZXN1bHQpOworCQlpZiAoIXVzZXQuZXF1YWxzKGRvdWJsZUNoZWNrKSkgeworCQkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiRmFpbHVyZSB0byByb3VuZC10cmlwIGluIHByZXR0eS1wcmludCIpOworCQl9CisJCXJldHVybiBzcmVzdWx0OworCX0KKwkKKwlQcmV0dHlQcmludGVyIGFwcGVuZFVuaWNvZGVTZXRJdGVtKFN0cmluZyBzKSB7CisJCWludCBjcDsKKwkJaWYgKFVURjE2Lmhhc01vcmVDb2RlUG9pbnRzVGhhbihzLCAxKSkgeworCQkJZmx1c2hMYXN0KCk7CisJCQlhZGRTcGFjZShzKTsKKwkJCXRhcmdldC5hcHBlbmQoInsiKTsKKwkJCWZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisJCQkJYXBwZW5kUXVvdGVkKGNwID0gVVRGMTYuY2hhckF0KHMsIGkpKTsKKwkJCX0KKwkJCXRhcmdldC5hcHBlbmQoIn0iKTsKKwkJCWxhc3RTdHJpbmcgPSBzOworCQl9IGVsc2UgeworCQkJaWYgKCFjb21wcmVzc1JhbmdlcykKKwkJCQlmbHVzaExhc3QoKTsKKwkJCWNwID0gVVRGMTYuY2hhckF0KHMsIDApOworCQkJaWYgKGNwID09IGxhc3RDb2RlUG9pbnQgKyAxKSB7CisJCQkJbGFzdENvZGVQb2ludCA9IGNwOyAvLyBjb250aW51ZSByYW5nZQorCQkJfSBlbHNlIHsgLy8gc3RhcnQgcmFuZ2UKKwkJCQlmbHVzaExhc3QoKTsKKwkJCQlmaXJzdENvZGVQb2ludCA9IGxhc3RDb2RlUG9pbnQgPSBjcDsKKwkJCX0KKwkJfQorCQlyZXR1cm4gdGhpczsKKwl9CisJLyoqCisJICogCisJICovCisJcHJpdmF0ZSB2b2lkIGFkZFNwYWNlKFN0cmluZyBzKSB7CisJCWlmIChmaXJzdCkgeworCQkJZmlyc3QgPSBmYWxzZTsKKwkJfSBlbHNlIGlmIChzcGFjZUNvbXAuY29tcGFyZShzLCBsYXN0U3RyaW5nKSAhPSAwKSB7CisJCQl0YXJnZXQuYXBwZW5kKCcgJyk7CisJCX0gZWxzZSB7CisJCQlpbnQgdHlwZSA9IFVDaGFyYWN0ZXIuZ2V0VHlwZShVVEYxNi5jaGFyQXQocywwKSk7CisJCQlpZiAodHlwZSA9PSBVQ2hhcmFjdGVyLk5PTl9TUEFDSU5HX01BUksgfHwgdHlwZSA9PSBVQ2hhcmFjdGVyLkVOQ0xPU0lOR19NQVJLKSB7CisJCQkJdGFyZ2V0LmFwcGVuZCgnICcpOworCQkJfQorCQl9CisJfQorCQorCXByaXZhdGUgdm9pZCBmbHVzaExhc3QoKSB7CisJCWlmIChsYXN0Q29kZVBvaW50ID49IDApIHsKKwkJCWFkZFNwYWNlKFVURjE2LnZhbHVlT2YoZmlyc3RDb2RlUG9pbnQpKTsKKwkJCWlmIChmaXJzdENvZGVQb2ludCAhPSBsYXN0Q29kZVBvaW50KSB7CisJCQkJYXBwZW5kUXVvdGVkKGZpcnN0Q29kZVBvaW50KTsKKwkJCQl0YXJnZXQuYXBwZW5kKGZpcnN0Q29kZVBvaW50ICsgMSA9PSBsYXN0Q29kZVBvaW50ID8gJyAnIDogJy0nKTsKKwkJCX0KKwkJCWFwcGVuZFF1b3RlZChsYXN0Q29kZVBvaW50KTsKKwkJCWxhc3RTdHJpbmcgPSBVVEYxNi52YWx1ZU9mKGxhc3RDb2RlUG9pbnQpOworCQkJZmlyc3RDb2RlUG9pbnQgPSBsYXN0Q29kZVBvaW50ID0gLTI7CisJCX0KKwl9CisJUHJldHR5UHJpbnRlciBhcHBlbmRRdW90ZWQoaW50IGNvZGVQb2ludCkgeworCQlpZiAodG9RdW90ZS5jb250YWlucyhjb2RlUG9pbnQpKSB7CisJCQlpZiAocXVvdGVyICE9IG51bGwpIHsKKwkJCQl0YXJnZXQuYXBwZW5kKHF1b3Rlci50cmFuc2xpdGVyYXRlKFVURjE2LnZhbHVlT2YoY29kZVBvaW50KSkpOworCQkJCXJldHVybiB0aGlzOworCQkJfQorCQkJaWYgKGNvZGVQb2ludCA+IDB4RkZGRikgeworCQkJCXRhcmdldC5hcHBlbmQoIlxcVSIpOworCQkJCXRhcmdldC5hcHBlbmQoVXRpbGl0eS5oZXgoY29kZVBvaW50LDgpKTsKKwkJCX0gZWxzZSB7CisJCQkJdGFyZ2V0LmFwcGVuZCgiXFx1Iik7CisJCQkJdGFyZ2V0LmFwcGVuZChVdGlsaXR5LmhleChjb2RlUG9pbnQsNCkpOyAgICAgICAgCQkJCisJCQl9CisJCQlyZXR1cm4gdGhpczsKKwkJfQorCQlzd2l0Y2ggKGNvZGVQb2ludCkgeworCQljYXNlICdbJzogLy8gU0VUX09QRU46CisJCWNhc2UgJ10nOiAvLyBTRVRfQ0xPU0U6CisJCWNhc2UgJy0nOiAvLyBIWVBIRU46CisJCWNhc2UgJ14nOiAvLyBDT01QTEVNRU5UOgorCQljYXNlICcmJzogLy8gSU5URVJTRUNUSU9OOgorCQljYXNlICdcXCc6IC8vQkFDS1NMQVNIOgorCQljYXNlICd7JzoKKwkJY2FzZSAnfSc6CisJCWNhc2UgJyQnOgorCQljYXNlICc6JzoKKwkJCXRhcmdldC5hcHBlbmQoJ1xcJyk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCS8vIEVzY2FwZSB3aGl0ZXNwYWNlCisJCQlpZiAocGF0dGVybldoaXRlc3BhY2UuY29udGFpbnMoY29kZVBvaW50KSkgeworCQkJCXRhcmdldC5hcHBlbmQoJ1xcJyk7CisJCQl9CisJCWJyZWFrOworCQl9CisJCVVURjE2LmFwcGVuZCh0YXJnZXQsIGNvZGVQb2ludCk7CisJCXJldHVybiB0aGlzOworCX0gICAgICAgIAorLy8JQXBwZW5kZXIgYXBwZW5kKFN0cmluZyBzKSB7CisvLwl0YXJnZXQuYXBwZW5kKHMpOworLy8JcmV0dXJuIHRoaXM7CisvLwl9CisvLwlwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworLy8JcmV0dXJuIHRhcmdldC50b1N0cmluZygpOworLy8JfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1JlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUxOGJkMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1JlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwyMDMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SZXBsYWNlYWJsZTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJlcGxhY2VhYmxlU3RyaW5nOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7ICAgIAorCisvKioKKyAqIERMRiBkb2NzIG11c3QgZGVmaW5lIGJlaGF2aW9yIHdoZW4gUmVwbGFjZWFibGUgaXMgbXV0YXRlZCB1bmRlcm5lYXRoCisgKiB0aGUgaXRlcmF0b3IuCisgKgorICogVGhpcyBhbmQgSUNVQ2hhcmFjdGVySXRlcmF0b3Igc2hhcmUgc29tZSBjb2RlLCBtYXliZSB0aGV5IHNob3VsZCBzaGFyZQorICogYW4gaW1wbGVtZW50YXRpb24sIG9yIHRoZSBjb21tb24gc3RhdGUgYW5kIGltcGxlbWVudGF0aW9uIHNob3VsZCBiZQorICogbW92ZWQgdXAgaW50byBVQ2hhcmFjdGVySXRlcmF0b3IuCisgKgorICogV2hhdCBhcmUgZmlyc3QsIGxhc3QsIGFuZCBnZXRCZWdpbkluZGV4IGRvaW5nIGhlcmU/IT8hPyEKKyAqLworcHVibGljIGNsYXNzIFJlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yIGV4dGVuZHMgVUNoYXJhY3Rlckl0ZXJhdG9yIHsKKworICAgIC8vIHB1YmxpYyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBQdWJsaWMgY29uc3RydWN0b3IKKyAgICAgKiBAcGFyYW0gcmVwbGFjZWFibGUgdGV4dCB3aGljaCB0aGUgaXRlcmF0b3Igd2lsbCBiZSBiYXNlZCBvbgorICAgICAqLworICAgIHB1YmxpYyBSZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvcihSZXBsYWNlYWJsZSByZXBsYWNlYWJsZSl7CisgICAgICAgIGlmKHJlcGxhY2VhYmxlPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnJlcGxhY2VhYmxlICA9IHJlcGxhY2VhYmxlOworICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFB1YmxpYyBjb25zdHJ1Y3RvcgorICAgICAqIEBwYXJhbSBzdHIgdGV4dCB3aGljaCB0aGUgaXRlcmF0b3Igd2lsbCBiZSBiYXNlZCBvbgorICAgICAqLworICAgIHB1YmxpYyBSZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvcihTdHJpbmcgc3RyKXsKKyAgICAgICAgaWYoc3RyPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnJlcGxhY2VhYmxlICA9IG5ldyBSZXBsYWNlYWJsZVN0cmluZyhzdHIpOworICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFB1YmxpYyBjb25zdHJ1Y3RvcgorICAgICAqIEBwYXJhbSBidWYgYnVmZmVyIG9mIHRleHQgb24gd2hpY2ggdGhlIGl0ZXJhdG9yIHdpbGwgYmUgYmFzZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IoU3RyaW5nQnVmZmVyIGJ1Zil7CisgICAgICAgIGlmKGJ1Zj09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5yZXBsYWNlYWJsZSAgPSBuZXcgUmVwbGFjZWFibGVTdHJpbmcoYnVmKTsKKyAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSAwOworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhpcyBpdGVyYXRvciwgZG9lcyBub3QgY2xvbmUgdGhlIHVuZGVybHlpbmcgCisgICAgICogPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+b2JqZWN0CisgICAgICogQHJldHVybiBjb3B5IG9mIHRoaXMgaXRlcmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCl7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBuZXZlciBpbnZva2VkCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBVVEYxNiBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiBjdXJyZW50IFVURjE2IGNoYXJhY3RlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgY3VycmVudCgpeworICAgICAgICBpZiAoY3VycmVudEluZGV4IDwgcmVwbGFjZWFibGUubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiByZXBsYWNlYWJsZS5jaGFyQXQoY3VycmVudEluZGV4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRE9ORTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBjb2RlcG9pbnQKKyAgICAgKiBAcmV0dXJuIGN1cnJlbnQgY29kZXBvaW50CisgICAgICovCisgICAgcHVibGljIGludCBjdXJyZW50Q29kZVBvaW50KCl7CisgICAgICAgIC8vIGNhbm5vdCB1c2UgY2hhckF0IGR1ZSB0byBpdCBkaWZmZXJlbnQgCisgICAgICAgIC8vIGJlaGF2aW91ciB3aGVuIGluZGV4IGlzIHBvaW50aW5nIGF0IGEKKyAgICAgICAgLy8gdHJhaWwgc3Vycm9nYXRlLCBjaGVjayBmb3Igc3Vycm9nYXRlcworICAgICAgICAgCisgICAgICAgIGludCBjaCA9IGN1cnJlbnQoKTsKKyAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoKSl7CisgICAgICAgICAgICAvLyBhZHZhbmNlIHRoZSBpbmRleCB0byBnZXQgdGhlIG5leHQgY29kZSBwb2ludAorICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgLy8gZHVlIHRvIHBvc3QgaW5jcmVtZW50IHNlbWFudGljcyBjdXJyZW50KCkgYWZ0ZXIgbmV4dCgpIAorICAgICAgICAgICAgLy8gYWN0dWFsbHkgcmV0dXJucyB0aGUgbmV4dCBjaGFyIHdoaWNoIGlzIHdoYXQgd2Ugd2FudAorICAgICAgICAgICAgaW50IGNoMiA9IGN1cnJlbnQoKTsKKyAgICAgICAgICAgIC8vIGN1cnJlbnQgc2hvdWxkIG5ldmVyIGNoYW5nZSB0aGUgY3VycmVudCBpbmRleCBzbyBiYWNrIG9mZgorICAgICAgICAgICAgcHJldmlvdXMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhciljaDIpKXsKKyAgICAgICAgICAgICAgICAvLyB3ZSBmb3VuZCBhIHN1cnJvZ2F0ZSBwYWlyCisgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpY2gsKGNoYXIpY2gyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2g7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gbGVuZ3RoIG9mIHRoZSB0ZXh0CisgICAgICovCisgICAgcHVibGljIGludCBnZXRMZW5ndGgoKXsKKyAgICAgICAgcmV0dXJuIHJlcGxhY2VhYmxlLmxlbmd0aCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjdXJyZW50IGN1cnJlbnRJbmRleCBpbiB0ZXh0LgorICAgICAqIEByZXR1cm4gY3VycmVudCBjdXJyZW50SW5kZXggaW4gdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEluZGV4KCl7CisgICAgICAgIHJldHVybiBjdXJyZW50SW5kZXg7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIG5leHQgVVRGMTYgY2hhcmFjdGVyIGFuZCBpbmNyZW1lbnRzIHRoZSBpdGVyYXRvcidzIGN1cnJlbnRJbmRleCBieSAxLiAKKyAgICAgKiBJZiB0aGUgcmVzdWx0aW5nIGN1cnJlbnRJbmRleCBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIHRoZSB0ZXh0IGxlbmd0aCwgdGhlIAorICAgICAqIGN1cnJlbnRJbmRleCBpcyByZXNldCB0byB0aGUgdGV4dCBsZW5ndGggYW5kIGEgdmFsdWUgb2YgRE9ORUNPREVQT0lOVCBpcyAKKyAgICAgKiByZXR1cm5lZC4gCisgICAgICogQHJldHVybiBuZXh0IFVURjE2IGNoYXJhY3RlciBpbiB0ZXh0IG9yIERPTkUgaWYgdGhlIG5ldyBjdXJyZW50SW5kZXggaXMgb2ZmIHRoZSAKKyAgICAgKiAgICAgICAgIGVuZCBvZiB0aGUgdGV4dCByYW5nZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG5leHQoKXsKKyAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA8IHJlcGxhY2VhYmxlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gcmVwbGFjZWFibGUuY2hhckF0KGN1cnJlbnRJbmRleCsrKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRE9ORTsKKyAgICB9CisgICAgCisgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBwcmV2aW91cyBVVEYxNiBjaGFyYWN0ZXIgYW5kIGRlY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgY3VycmVudEluZGV4IGJ5IAorICAgICAqIDEuIAorICAgICAqIElmIHRoZSByZXN1bHRpbmcgY3VycmVudEluZGV4IGlzIGxlc3MgdGhhbiAwLCB0aGUgY3VycmVudEluZGV4IGlzIHJlc2V0IHRvIDAgYW5kIGEgCisgICAgICogdmFsdWUgb2YgRE9ORUNPREVQT0lOVCBpcyByZXR1cm5lZC4gCisgICAgICogQHJldHVybiBuZXh0IFVURjE2IGNoYXJhY3RlciBpbiB0ZXh0IG9yIERPTkUgaWYgdGhlIG5ldyBjdXJyZW50SW5kZXggaXMgb2ZmIHRoZSAKKyAgICAgKiAgICAgICAgIHN0YXJ0IG9mIHRoZSB0ZXh0IHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgcHJldmlvdXMoKXsKKyAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXBsYWNlYWJsZS5jaGFyQXQoLS1jdXJyZW50SW5kZXgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBET05FOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNldHMgdGhlIGN1cnJlbnRJbmRleCB0byB0aGUgc3BlY2lmaWVkIGN1cnJlbnRJbmRleCBpbiB0aGUgdGV4dCBhbmQgcmV0dXJucyB0aGF0IAorICAgICAqIHNpbmdsZSBVVEYxNiBjaGFyYWN0ZXIgYXQgY3VycmVudEluZGV4LiAKKyAgICAgKiBUaGlzIGFzc3VtZXMgdGhlIHRleHQgaXMgc3RvcmVkIGFzIDE2LWJpdCBjb2RlIHVuaXRzLjwvcD4KKyAgICAgKiBAcGFyYW0gY3VycmVudEluZGV4IHRoZSBjdXJyZW50SW5kZXggd2l0aGluIHRoZSB0ZXh0LiAKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYW4gaW52YWxpZCBjdXJyZW50SW5kZXggaXMgCisgICAgICogICAgICAgICAgICBzdXBwbGllZC4gaS5lLiBjdXJyZW50SW5kZXggaXMgb3V0IG9mIGJvdW5kcy4KKyAgICAgKiBAcmV0dXJucyB0aGUgY2hhcmFjdGVyIGF0IHRoZSBzcGVjaWZpZWQgY3VycmVudEluZGV4IG9yIERPTkUgaWYgdGhlIHNwZWNpZmllZCAKKyAgICAgKiAgICAgICAgIGN1cnJlbnRJbmRleCBpcyBlcXVhbCB0byB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZGV4KGludCBjdXJyZW50SW5kZXgpIHRocm93cyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9ueworICAgICAgICBpZiAoY3VycmVudEluZGV4IDwgMCB8fCBjdXJyZW50SW5kZXggPiByZXBsYWNlYWJsZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGN1cnJlbnRJbmRleDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRUZXh0KGNoYXJbXSBmaWxsSW4sIGludCBvZmZzZXQpeworICAgICAgICBpbnQgbGVuZ3RoID0gcmVwbGFjZWFibGUubGVuZ3RoKCk7CisgICAgICAgIGlmKG9mZnNldCA8IDAgfHwgb2Zmc2V0ICsgbGVuZ3RoID4gZmlsbEluLmxlbmd0aCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKGxlbmd0aCkpOworICAgICAgICB9CisgICAgICAgIHJlcGxhY2VhYmxlLmdldENoYXJzKDAsbGVuZ3RoLGZpbGxJbixvZmZzZXQpOworICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0gICAgICAgCisgICAgICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXBsYWNhYmxlIG9iamVjdAorICAgICAqLworICAgIHByaXZhdGUgUmVwbGFjZWFibGUgcmVwbGFjZWFibGU7CisgICAgLyoqCisgICAgICogQ3VycmVudCBjdXJyZW50SW5kZXgKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBjdXJyZW50SW5kZXg7CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1Jlc291cmNlQnVuZGxlV3JhcHBlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUmVzb3VyY2VCdW5kbGVXcmFwcGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI5YzQ3ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1Jlc291cmNlQnVuZGxlV3JhcHBlci5qYXZhCkBAIC0wLDAgKzEsMjE5IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlByb3BlcnR5UmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICoganVzdCBhIHdyYXBwZXIgZm9yIEphdmEgTGlzdFJlc291cmNlQnVuZGxlcyBhbmQgCisgKiBAYXV0aG9yIHJhbQorICoKKyAqLworcHVibGljIGNsYXNzIFJlc291cmNlQnVuZGxlV3JhcHBlciBleHRlbmRzIFVSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHJpdmF0ZSBSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nIGxvY2FsZUlEID0gbnVsbDsKKyAgICBwcml2YXRlIFN0cmluZyBiYXNlTmFtZSA9IG51bGw7CisgICAgcHJpdmF0ZSBWZWN0b3Iga2V5cz1udWxsOworICAgIHByaXZhdGUgaW50IGxvYWRpbmdTdGF0dXMgPSAtMTsgICAgCisgICAgCisgICAgcHJpdmF0ZSBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIoUmVzb3VyY2VCdW5kbGUgYnVuZGxlKXsKKyAgICAgICAgdGhpcy5idW5kbGU9YnVuZGxlOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHNldExvYWRpbmdTdGF0dXMoaW50IG5ld1N0YXR1cyl7CisgICAgICAgIGxvYWRpbmdTdGF0dXMgPSBuZXdTdGF0dXM7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBPYmplY3QgaGFuZGxlR2V0T2JqZWN0KFN0cmluZyBrZXkpeworICAgICAgICBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIgY3VycmVudCA9IHRoaXM7CisgICAgICAgIE9iamVjdCBvYmogPSBudWxsOworICAgICAgICB3aGlsZShjdXJyZW50IT1udWxsKXsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBvYmogPSBjdXJyZW50LmJ1bmRsZS5nZXRPYmplY3Qoa2V5KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIGN1cnJlbnQgPSAoUmVzb3VyY2VCdW5kbGVXcmFwcGVyKWN1cnJlbnQuZ2V0UGFyZW50KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNhbid0IGZpbmQgcmVzb3VyY2UgZm9yIGJ1bmRsZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICtiYXNlTmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIiwga2V5ICIra2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldENsYXNzKCkuZ2V0TmFtZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBnZXRLZXlzKCl7CisgICAgICAgIHJldHVybiBrZXlzLmVsZW1lbnRzKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBpbml0S2V5c1ZlY3RvcigpeworICAgICAgICBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIgY3VycmVudCA9IHRoaXM7CisgICAgICAgIGtleXMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIHdoaWxlKGN1cnJlbnQhPW51bGwpeworICAgICAgICAgICAgRW51bWVyYXRpb24gZSA9IGN1cnJlbnQuYnVuZGxlLmdldEtleXMoKTsKKyAgICAgICAgICAgIHdoaWxlKGUuaGFzTW9yZUVsZW1lbnRzKCkpeworICAgICAgICAgICAgICAgIFN0cmluZyBlbGVtID0gKFN0cmluZyllLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgaWYoIWtleXMuY29udGFpbnMoZWxlbSkpeworICAgICAgICAgICAgICAgICAgICBrZXlzLmFkZChlbGVtKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50ID0gKFJlc291cmNlQnVuZGxlV3JhcHBlciljdXJyZW50LmdldFBhcmVudCgpOworICAgICAgICB9CisgICAgfQorICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0TG9jYWxlSUQoKXsKKyAgICAgICAgcmV0dXJuIGxvY2FsZUlEOyAgIAorICAgIH0KKyAKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldEJhc2VOYW1lKCl7CisgICAgICAgIHJldHVybiBidW5kbGUuZ2V0Q2xhc3MoKS5nZXROYW1lKCkucmVwbGFjZSgnLicsJy8nKTsgICAKKyAgICB9CisgICAgCisgICAgcHVibGljIFVMb2NhbGUgZ2V0VUxvY2FsZSgpeworICAgICAgICByZXR1cm4gbmV3IFVMb2NhbGUobG9jYWxlSUQpOyAgIAorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpeworICAgICAgICByZXR1cm4gKFVSZXNvdXJjZUJ1bmRsZSlwYXJlbnQ7ICAgCisgICAgfQorCisgICAgLy8gRmxhZyBmb3IgZW5hYmxpbmcvZGlzYWJsaW5nIGRlYnVnZ2luZyBjb2RlCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IElDVURlYnVnLmVuYWJsZWQoInJlc291cmNlQnVuZGxlV3JhcHBlciIpOworICAgIAorICAgIC8vIFRoaXMgbWV0aG9kIGlzIGZvciBzdXBlciBjbGFzcydzIGluc3RhbnRpYXRlQnVuZGxlIG1ldGhvZAorICAgIHB1YmxpYyBzdGF0aWMgVVJlc291cmNlQnVuZGxlIGdldEJ1bmRsZUluc3RhbmNlKFN0cmluZyBiYXNlTmFtZSwgU3RyaW5nIGxvY2FsZUlELCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc0xvYWRlciByb290LCBib29sZWFuIGRpc2FibGVGYWxsYmFjayl7CisgICAgICAgIFVSZXNvdXJjZUJ1bmRsZSBiID0gaW5zdGFudGlhdGVCdW5kbGUoYmFzZU5hbWUsIGxvY2FsZUlELCByb290LCBkaXNhYmxlRmFsbGJhY2spOworICAgICAgICBpZihiPT1udWxsKXsKKyAgICAgICAgICAgIFN0cmluZyBzZXBhcmF0b3IgPSJfIjsKKyAgICAgICAgICAgIGlmKGJhc2VOYW1lLmluZGV4T2YoJy8nKT49MCl7CisgICAgICAgICAgICAgICAgc2VwYXJhdG9yID0gIi8iOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIGJ1bmRsZSAiKyBiYXNlTmFtZStzZXBhcmF0b3IrIGxvY2FsZUlELCIiLCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYjsKKyAgICB9CisgICAgLy8gcmVjdXJzaXZlbHkgYnVpbGQgYnVuZGxlIGFuZCBvdmVycmlkZSB0aGUgc3VwZXItY2xhc3MgbWV0aG9kCisgICAgIHByb3RlY3RlZCBzdGF0aWMgc3luY2hyb25pemVkIFVSZXNvdXJjZUJ1bmRsZSBpbnN0YW50aWF0ZUJ1bmRsZShTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NhbGVJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NMb2FkZXIgcm9vdCwgYm9vbGVhbiBkaXNhYmxlRmFsbGJhY2spIHsKKyAgICAgICAgaWYgKHJvb3QgPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gd2UncmUgb24gdGhlIGJvb3RzdHJhcAorICAgICAgICAgICAgcm9vdCA9IENsYXNzTG9hZGVyLmdldFN5c3RlbUNsYXNzTG9hZGVyKCk7CisgICAgICAgIH0KKyAgICAgICAgZmluYWwgQ2xhc3NMb2FkZXIgY2wgPSByb290OworICAgICAgICBTdHJpbmcgbmFtZSA9IGJhc2VOYW1lOworICAgICAgICBVTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgaWYgKGxvY2FsZUlELmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIG5hbWUgPSBuYW1lICsgIl8iICsgbG9jYWxlSUQ7CisgICAgICAgIH0KKworICAgICAgICBSZXNvdXJjZUJ1bmRsZVdyYXBwZXIgYiA9IChSZXNvdXJjZUJ1bmRsZVdyYXBwZXIpbG9hZEZyb21DYWNoZShjbCwgbmFtZSwgZGVmYXVsdExvY2FsZSk7CisgICAgICAgIGlmKGI9PW51bGwpeworICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGVXcmFwcGVyIHBhcmVudCA9IG51bGw7CisgICAgICAgICAgICBpbnQgaSA9IGxvY2FsZUlELmxhc3RJbmRleE9mKCdfJyk7CisgICAgCisgICAgICAgICAgICBpZiAoaSAhPSAtMSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBsb2NOYW1lID0gbG9jYWxlSUQuc3Vic3RyaW5nKDAsIGkpOworICAgICAgICAgICAgICAgIHBhcmVudCA9IChSZXNvdXJjZUJ1bmRsZVdyYXBwZXIpbG9hZEZyb21DYWNoZShjbCwgYmFzZU5hbWUrIl8iK2xvY05hbWUsZGVmYXVsdExvY2FsZSk7CisgICAgICAgICAgICAgICAgaWYocGFyZW50ID09IG51bGwpeworICAgICAgICAgICAgICAgICAgICBwYXJlbnQgPSAoUmVzb3VyY2VCdW5kbGVXcmFwcGVyKWluc3RhbnRpYXRlQnVuZGxlKGJhc2VOYW1lLCBsb2NOYW1lICwgY2wsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2UgaWYobG9jYWxlSUQubGVuZ3RoKCk+MCl7CisgICAgICAgICAgICAgICAgcGFyZW50ID0gKFJlc291cmNlQnVuZGxlV3JhcHBlcilsb2FkRnJvbUNhY2hlKGNsLCBiYXNlTmFtZSxkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICBpZihwYXJlbnQ9PW51bGwpeworICAgICAgICAgICAgICAgICAgICBwYXJlbnQgPSAoUmVzb3VyY2VCdW5kbGVXcmFwcGVyKWluc3RhbnRpYXRlQnVuZGxlKGJhc2VOYW1lLCAiIiwgY2wsIGRpc2FibGVGYWxsYmFjayk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDbGFzcyBjbHMgPSBjbC5sb2FkQ2xhc3MobmFtZSk7CisgICAgICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgYnggPSAoUmVzb3VyY2VCdW5kbGUpIGNscy5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgICAgIGIgPSBuZXcgUmVzb3VyY2VCdW5kbGVXcmFwcGVyKGJ4KTsKKyAgICAgICAgICAgICAgICBpZiAocGFyZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgYi5zZXRQYXJlbnQocGFyZW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYi5iYXNlTmFtZT1iYXNlTmFtZTsKKyAgICAgICAgICAgICAgICBiLmxvY2FsZUlEID0gbG9jYWxlSUQ7ICAgICAgICAgICAgCisgICAgCisgICAgICAgICAgICB9IGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgcmVzTmFtZSA9IG5hbWUucmVwbGFjZSgnLicsICcvJykgKyAiLnByb3BlcnRpZXMiOworICAgICAgICAgICAgICAgIElucHV0U3RyZWFtIHN0cmVhbSA9IChJbnB1dFN0cmVhbSlqYXZhLnNlY3VyaXR5LkFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKAorICAgICAgICAgICAgICAgICAgICBuZXcgamF2YS5zZWN1cml0eS5Qcml2aWxlZ2VkQWN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBydW4oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNsICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNsLmdldFJlc291cmNlQXNTdHJlYW0ocmVzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENsYXNzTG9hZGVyLmdldFN5c3RlbVJlc291cmNlQXNTdHJlYW0ocmVzTmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICBpZiAoc3RyZWFtICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIGl0IGlzIGJ1ZmZlcmVkCisgICAgICAgICAgICAgICAgICAgIHN0cmVhbSA9IG5ldyBqYXZhLmlvLkJ1ZmZlcmVkSW5wdXRTdHJlYW0oc3RyZWFtKTsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBuZXcgUmVzb3VyY2VCdW5kbGVXcmFwcGVyKG5ldyBQcm9wZXJ0eVJlc291cmNlQnVuZGxlKHN0cmVhbSkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi5zZXRQYXJlbnQocGFyZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGIuYmFzZU5hbWU9YmFzZU5hbWU7CisgICAgICAgICAgICAgICAgICAgICAgICBiLmxvY2FsZUlEPWxvY2FsZUlEOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRocm93IGF3YXkgZXhjZXB0aW9uCisgICAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhyb3cgYXdheSBleGNlcHRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAvLyBpZiBhIGJvZ3VzIGxvY2FsZSBpcyBwYXNzZWQgdGhlbiB0aGUgcGFyZW50IHNob3VsZCBiZQorICAgICAgICAgICAgICAgIC8vIHRoZSBkZWZhdWx0IGxvY2FsZSBub3QgdGhlIHJvb3QgbG9jYWxlIQorICAgICAgICAgICAgICAgIGlmIChiPT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZWZhdWx0TmFtZSA9IGRlZmF1bHRMb2NhbGUudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2FsZUlELmxlbmd0aCgpPjAgJiYgZGVmYXVsdE5hbWUuaW5kZXhPZihsb2NhbGVJRCkgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGIgPSAoUmVzb3VyY2VCdW5kbGVXcmFwcGVyKWxvYWRGcm9tQ2FjaGUoY2wsYmFzZU5hbWUrIl8iK2RlZmF1bHROYW1lLCBkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGI9PW51bGwpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgPSAoUmVzb3VyY2VCdW5kbGVXcmFwcGVyKWluc3RhbnRpYXRlQnVuZGxlKGJhc2VOYW1lICwgZGVmYXVsdE5hbWUsIGNsLCBkaXNhYmxlRmFsbGJhY2spOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGlmIHN0aWxsIGNvdWxkIG5vdCBmaW5kIHRoZSBidW5kbGUgdGhlbiByZXR1cm4gdGhlIHBhcmVudAorICAgICAgICAgICAgICAgIGlmKGI9PW51bGwpeworICAgICAgICAgICAgICAgICAgICBiPXBhcmVudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmYWlsdXJlIik7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKQorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFkZFRvQ2FjaGUoY2wsIG5hbWUsIGRlZmF1bHRMb2NhbGUsIGIpOworICAgICAgICB9CisgICAgICAgIGlmKGIhPW51bGwpeworICAgICAgICAgICAgYi5pbml0S2V5c1ZlY3RvcigpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIGlmKERFQlVHKVN5c3RlbS5vdXQucHJpbnRsbigiUmV0dXJuaW5nIG51bGwgZm9yICIrYmFzZU5hbWUrIl8iK2xvY2FsZUlEKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGI7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUnVsZUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9SdWxlQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kY2RlNTBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvUnVsZUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwzNDUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMywgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBTZXB0ZW1iZXIgMjMgMjAwMworKiBTaW5jZTogSUNVIDIuOAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU3ltYm9sVGFibGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiBBbiBpdGVyYXRvciB0aGF0IHJldHVybnMgMzItYml0IGNvZGUgcG9pbnRzLiAgVGhpcyBjbGFzcyBpcyBkZWxpYmVyYXRlbHkKKyAqIDxlbT5ub3Q8L2VtPiByZWxhdGVkIHRvIGFueSBvZiB0aGUgSkRLIG9yIElDVTRKIGNoYXJhY3RlciBpdGVyYXRvciBjbGFzc2VzCisgKiBpbiBvcmRlciB0byBtaW5pbWl6ZSBjb21wbGV4aXR5LgorICogQGF1dGhvciBBbGFuIExpdQorICogQHNpbmNlIElDVSAyLjgKKyAqLworcHVibGljIGNsYXNzIFJ1bGVDaGFyYWN0ZXJJdGVyYXRvciB7CisKKyAgICAvLyBUT0RPOiBJZGVhcyBmb3IgbGF0ZXIuICAoRG8gbm90IGltcGxlbWVudCBpZiBub3QgbmVlZGVkLCBsZXN0IHRoZQorICAgIC8vIGNvZGUgY292ZXJhZ2UgbnVtYmVycyBnbyBkb3duIGR1ZSB0byB1bnVzZWQgbWV0aG9kcy4pCisgICAgLy8gMS4gQWRkIGEgY29weSBjb25zdHJ1Y3RvciwgZXF1YWxzKCkgbWV0aG9kLCBjbG9uZSgpIG1ldGhvZC4KKyAgICAvLyAyLiBSYXRoZXIgdGhhbiByZXR1cm4gRE9ORSwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZSBlbmQKKyAgICAvLyBpcyByZWFjaGVkIC0tIHRoaXMgaXMgYW4gYWx0ZXJuYXRlIHVzYWdlIG1vZGVsLCBwcm9iYWJseSBub3QgdXNlZnVsLgorICAgIC8vIDMuIFJldHVybiBpc0VzY2FwZWQgZnJvbSBuZXh0KCkuICBJZiB0aGlzIGhhcHBlbnMsCisgICAgLy8gZG9uJ3Qga2VlcCBhbiBpc0VzY2FwZWQgbWVtYmVyIHZhcmlhYmxlLgorCisgICAgLyoqCisgICAgICogVGV4dCBiZWluZyBpdGVyYXRlZC4KKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgdGV4dDsKKworICAgIC8qKgorICAgICAqIFBvc2l0aW9uIG9mIGl0ZXJhdG9yLgorICAgICAqLworICAgIHByaXZhdGUgUGFyc2VQb3NpdGlvbiBwb3M7CisKKyAgICAvKioKKyAgICAgKiBTeW1ib2wgdGFibGUgdXNlZCB0byBwYXJzZSBhbmQgZGVyZWZlcmVuY2UgdmFyaWFibGVzLiAgTWF5IGJlIG51bGwuCisgICAgICovCisgICAgcHJpdmF0ZSBTeW1ib2xUYWJsZSBzeW07CisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IHZhcmlhYmxlIGV4cGFuc2lvbiwgb3IgbnVsbCBpZiBub25lLgorICAgICAqLworICAgIHByaXZhdGUgY2hhcltdIGJ1ZjsKKworICAgIC8qKgorICAgICAqIFBvc2l0aW9uIHdpdGhpbiBidWZbXS4gIE1lYW5pbmdsZXNzIGlmIGJ1ZiA9PSBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGJ1ZlBvczsKKworICAgIC8qKgorICAgICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBsYXN0IGNoYXJhY3RlciB3YXMgcGFyc2VkIGZyb20gYW4gZXNjYXBlLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc0VzY2FwZWQ7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCB3aGVuIHRoZXJlIGFyZSBubyBtb3JlIGNoYXJhY3RlcnMgdG8gaXRlcmF0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET05FID0gLTE7CisKKyAgICAvKioKKyAgICAgKiBCaXRtYXNrIG9wdGlvbiB0byBlbmFibGUgcGFyc2luZyBvZiB2YXJpYWJsZSBuYW1lcy4gIElmIChvcHRpb25zICYKKyAgICAgKiBQQVJTRV9WQVJJQUJMRVMpICE9IDAsIHRoZW4gYW4gZW1iZWRkZWQgdmFyaWFibGUgd2lsbCBiZSBleHBhbmRlZCB0bworICAgICAqIGl0cyB2YWx1ZS4gIFZhcmlhYmxlcyBhcmUgcGFyc2VkIHVzaW5nIHRoZSBTeW1ib2xUYWJsZSBBUEkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFSU0VfVkFSSUFCTEVTID0gMTsKKworICAgIC8qKgorICAgICAqIEJpdG1hc2sgb3B0aW9uIHRvIGVuYWJsZSBwYXJzaW5nIG9mIGVzY2FwZSBzZXF1ZW5jZXMuICBJZiAob3B0aW9ucyAmCisgICAgICogUEFSU0VfRVNDQVBFUykgIT0gMCwgdGhlbiBhbiBlbWJlZGRlZCBlc2NhcGUgc2VxdWVuY2Ugd2lsbCBiZSBleHBhbmRlZAorICAgICAqIHRvIGl0cyB2YWx1ZS4gIEVzY2FwZXMgYXJlIHBhcnNlZCB1c2luZyBVdGlsaXR5LnVuZXNjYXBlQXQoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQVJTRV9FU0NBUEVTICAgPSAyOyAgICAKKworICAgIC8qKgorICAgICAqIEJpdG1hc2sgb3B0aW9uIHRvIGVuYWJsZSBza2lwcGluZyBvZiB3aGl0ZXNwYWNlLiAgSWYgKG9wdGlvbnMgJgorICAgICAqIFNLSVBfV0hJVEVTUEFDRSkgIT0gMCwgdGhlbiB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgd2lsbCBiZSBzaWxlbnRseQorICAgICAqIHNraXBwZWQsIGFzIGlmIHRoZXkgd2VyZSBub3QgcHJlc2VudCBpbiB0aGUgaW5wdXQuICBXaGl0ZXNwYWNlCisgICAgICogY2hhcmFjdGVycyBhcmUgZGVmaW5lZCBieSBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZSgpLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNLSVBfV0hJVEVTUEFDRSA9IDQ7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGdpdmVuIHRleHQsIHN0YXJ0aW5nIGF0IHRoZSBnaXZlbgorICAgICAqIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIGl0ZXJhdGVkCisgICAgICogQHBhcmFtIHN5bSB0aGUgc3ltYm9sIHRhYmxlLCBvciBudWxsIGlmIHRoZXJlIGlzIG5vbmUuICBJZiBzeW0gaXMgbnVsbCwKKyAgICAgKiB0aGVuIHZhcmlhYmxlcyB3aWxsIG5vdCBiZSBkZWZlcmVuY2VkLCBldmVuIGlmIHRoZSBQQVJTRV9WQVJJQUJMRVMKKyAgICAgKiBvcHRpb24gaXMgc2V0LgorICAgICAqIEBwYXJhbSBwb3MgdXBvbiBpbnB1dCwgdGhlIGluZGV4IG9mIHRoZSBuZXh0IGNoYXJhY3RlciB0byByZXR1cm4uICBJZiBhCisgICAgICogdmFyaWFibGUgaGFzIGJlZW4gZGVyZWZlcmVuY2VkLCB0aGVuIHBvcyB3aWxsIDxlbT5ub3Q8L2VtPiBpbmNyZW1lbnQgYXMKKyAgICAgKiBjaGFyYWN0ZXJzIG9mIHRoZSB2YXJpYWJsZSB2YWx1ZSBhcmUgaXRlcmF0ZWQuCisgICAgICovCisgICAgcHVibGljIFJ1bGVDaGFyYWN0ZXJJdGVyYXRvcihTdHJpbmcgdGV4dCwgU3ltYm9sVGFibGUgc3ltLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgaWYgKHRleHQgPT0gbnVsbCB8fCBwb3MuZ2V0SW5kZXgoKSA+IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICB0aGlzLnN5bSA9IHN5bTsKKyAgICAgICAgdGhpcy5wb3MgPSBwb3M7CisgICAgICAgIGJ1ZiA9IG51bGw7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGl0ZXJhdG9yIGhhcyBubyBtb3JlIGNoYXJhY3RlcnMgdG8gcmV0dXJuLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGF0RW5kKCkgeworICAgICAgICByZXR1cm4gYnVmID09IG51bGwgJiYgcG9zLmdldEluZGV4KCkgPT0gdGV4dC5sZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGNoYXJhY3RlciB1c2luZyB0aGUgZ2l2ZW4gb3B0aW9ucywgb3IgRE9ORSBpZiB0aGVyZQorICAgICAqIGFyZSBubyBtb3JlIGNoYXJhY3RlcnMsIGFuZCBhZHZhbmNlIHRoZSBwb3NpdGlvbiB0byB0aGUgbmV4dAorICAgICAqIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbnMsIGJpdHdpc2UtT1ItZWQKKyAgICAgKiB0b2dldGhlcjogUEFSU0VfVkFSSUFCTEVTLCBQQVJTRV9FU0NBUEVTLCBTS0lQX1dISVRFU1BBQ0UuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCAzMi1iaXQgY29kZSBwb2ludCwgb3IgRE9ORQorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dChpbnQgb3B0aW9ucykgeworICAgICAgICBpbnQgYyA9IERPTkU7CisgICAgICAgIGlzRXNjYXBlZCA9IGZhbHNlOworCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIGMgPSBfY3VycmVudCgpOworICAgICAgICAgICAgX2FkdmFuY2UoVVRGMTYuZ2V0Q2hhckNvdW50KGMpKTsKKworICAgICAgICAgICAgaWYgKGMgPT0gU3ltYm9sVGFibGUuU1lNQk9MX1JFRiAmJiBidWYgPT0gbnVsbCAmJgorICAgICAgICAgICAgICAgIChvcHRpb25zICYgUEFSU0VfVkFSSUFCTEVTKSAhPSAwICYmIHN5bSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBzeW0ucGFyc2VSZWZlcmVuY2UodGV4dCwgcG9zLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAvLyBJZiBuYW1lID09IG51bGwgdGhlcmUgd2FzIGFuIGlzb2xhdGVkIFNZTUJPTF9SRUY7CisgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGl0LiAgQ2FsbGVyIG11c3QgYmUgcHJlcGFyZWQgZm9yIHRoaXMuCisgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmUG9zID0gMDsKKyAgICAgICAgICAgICAgICBidWYgPSBzeW0ubG9va3VwKG5hbWUpOworICAgICAgICAgICAgICAgIGlmIChidWYgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5kZWZpbmVkIHZhcmlhYmxlOiAiICsgbmFtZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBlbXB0eSB2YXJpYWJsZSB2YWx1ZQorICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgob3B0aW9ucyAmIFNLSVBfV0hJVEVTUEFDRSkgIT0gMCAmJgorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjID09ICdcXCcgJiYgKG9wdGlvbnMgJiBQQVJTRV9FU0NBUEVTKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW50IG9mZnNldFtdID0gbmV3IGludFtdIHsgMCB9OworICAgICAgICAgICAgICAgIGMgPSBVdGlsaXR5LnVuZXNjYXBlQXQobG9va2FoZWFkKCksIG9mZnNldCk7CisgICAgICAgICAgICAgICAganVtcGFoZWFkKG9mZnNldFswXSk7CisgICAgICAgICAgICAgICAgaXNFc2NhcGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoYyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBsYXN0IGNoYXJhY3RlciByZXR1cm5lZCBieSBuZXh0KCkgd2FzCisgICAgICogZXNjYXBlZC4gIFRoaXMgd2lsbCBvbmx5IGJlIHRoZSBjYXNlIGlmIHRoZSBvcHRpb24gcGFzc2VkIGluIHRvCisgICAgICogbmV4dCgpIGluY2x1ZGVkIFBBUlNFX0VTQ0FQRUQgYW5kIHRoZSBuZXh0IGNoYXJhY3RlciB3YXMgYW4KKyAgICAgKiBlc2NhcGUgc2VxdWVuY2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFc2NhcGVkKCkgeworICAgICAgICByZXR1cm4gaXNFc2NhcGVkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGl0ZXJhdG9yIGlzIGN1cnJlbnRseSB3aXRoaW4gYSB2YXJpYWJsZSBleHBhbnNpb24uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaW5WYXJpYWJsZSgpIHsKKyAgICAgICAgcmV0dXJuIGJ1ZiAhPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gb2JqZWN0IHdoaWNoLCB3aGVuIGxhdGVyIHBhc3NlZCB0byBzZXRQb3MoKSwgd2lsbAorICAgICAqIHJlc3RvcmUgdGhpcyBpdGVyYXRvcidzIHBvc2l0aW9uLiAgVXNhZ2UgaWRpb206CisgICAgICoKKyAgICAgKiBSdWxlQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IgPSAuLi47CisgICAgICogT2JqZWN0IHBvcyA9IGl0ZXJhdG9yLmdldFBvcyhudWxsKTsgLy8gYWxsb2NhdGUgcG9zaXRpb24gb2JqZWN0CisgICAgICogZm9yICg7OykgeworICAgICAqICAgcG9zID0gaXRlcmF0b3IuZ2V0UG9zKHBvcyk7IC8vIHJldXNlIHBvc2l0aW9uIG9iamVjdAorICAgICAqICAgaW50IGMgPSBpdGVyYXRvci5uZXh0KC4uLik7CisgICAgICogICAuLi4KKyAgICAgKiB9CisgICAgICogaXRlcmF0b3Iuc2V0UG9zKHBvcyk7CisgICAgICoKKyAgICAgKiBAcGFyYW0gcCBhIHBvc2l0aW9uIG9iamVjdCBwcmV2aW91c2x5IHJldHVybmVkIGJ5IGdldFBvcygpLAorICAgICAqIG9yIG51bGwuICBJZiBub3QgbnVsbCwgaXQgd2lsbCBiZSB1cGRhdGVkIGFuZCByZXR1cm5lZC4gIElmCisgICAgICogbnVsbCwgYSBuZXcgcG9zaXRpb24gb2JqZWN0IHdpbGwgYmUgYWxsb2NhdGVkIGFuZCByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIGEgcG9zaXRpb24gb2JqZWN0IHdoaWNoIG1heSBiZSBwYXNzZWQgdG8gc2V0UG9zKCksCisgICAgICogZWl0aGVyIGBwLCcgb3IgaWYgYHAnID09IG51bGwsIGEgbmV3bHktYWxsb2NhdGVkIG9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0UG9zKE9iamVjdCBwKSB7CisgICAgICAgIGlmIChwID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W10ge2J1ZiwgbmV3IGludFtdIHtwb3MuZ2V0SW5kZXgoKSwgYnVmUG9zfX07CisgICAgICAgIH0KKyAgICAgICAgT2JqZWN0W10gYSA9IChPYmplY3RbXSkgcDsKKyAgICAgICAgYVswXSA9IGJ1ZjsKKyAgICAgICAgaW50W10gdiA9IChpbnRbXSkgYVsxXTsKKyAgICAgICAgdlswXSA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICB2WzFdID0gYnVmUG9zOworICAgICAgICByZXR1cm4gcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXN0b3JlcyB0aGlzIGl0ZXJhdG9yIHRvIHRoZSBwb3NpdGlvbiBpdCBoYWQgd2hlbiBnZXRQb3MoKQorICAgICAqIHJldHVybmVkIHRoZSBnaXZlbiBvYmplY3QuCisgICAgICogQHBhcmFtIHAgYSBwb3NpdGlvbiBvYmplY3QgcHJldmlvdXNseSByZXR1cm5lZCBieSBnZXRQb3MoKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBvcyhPYmplY3QgcCkgeworICAgICAgICBPYmplY3RbXSBhID0gKE9iamVjdFtdKSBwOworICAgICAgICBidWYgPSAoY2hhcltdKSBhWzBdOworICAgICAgICBpbnRbXSB2ID0gKGludFtdKSBhWzFdOworICAgICAgICBwb3Muc2V0SW5kZXgodlswXSk7CisgICAgICAgIGJ1ZlBvcyA9IHZbMV07CisgICAgfQorCisgICAgLyoqCisgICAgICogU2tpcHMgYWhlYWQgcGFzdCBhbnkgaWdub3JlZCBjaGFyYWN0ZXJzLCBhcyBpbmRpY2F0ZWQgYnkgdGhlIGdpdmVuCisgICAgICogb3B0aW9ucy4gIFRoaXMgaXMgdXNlZnVsIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGxvb2thaGVhZCgpIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEN1cnJlbnRseSwgdGhpcyBvbmx5IGhhcyBhbiBlZmZlY3QgZm9yIFNLSVBfV0hJVEVTUEFDRS4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbnMsIGJpdHdpc2UtT1ItZWQKKyAgICAgKiB0b2dldGhlcjogUEFSU0VfVkFSSUFCTEVTLCBQQVJTRV9FU0NBUEVTLCBTS0lQX1dISVRFU1BBQ0UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2tpcElnbm9yZWQoaW50IG9wdGlvbnMpIHsKKyAgICAgICAgaWYgKChvcHRpb25zICYgU0tJUF9XSElURVNQQUNFKSAhPSAwKSB7CisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgaW50IGEgPSBfY3VycmVudCgpOworICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYSkpIGJyZWFrOworICAgICAgICAgICAgICAgIF9hZHZhbmNlKFVURjE2LmdldENoYXJDb3VudChhKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHJlbWFpbmRlciBvZiB0aGUgY2hhcmFjdGVycyB0byBiZQorICAgICAqIHJldHVybmVkIGJ5IHRoaXMgaXRlcmF0b3IsIHdpdGhvdXQgYW55IG9wdGlvbiBwcm9jZXNzaW5nLiAgSWYgdGhlCisgICAgICogaXRlcmF0b3IgaXMgY3VycmVudGx5IHdpdGhpbiBhIHZhcmlhYmxlIGV4cGFuc2lvbiwgdGhpcyB3aWxsIG9ubHkKKyAgICAgKiBleHRlbmQgdG8gdGhlIGVuZCBvZiB0aGUgdmFyaWFibGUgZXhwYW5zaW9uLiAgVGhpcyBtZXRob2QgaXMgcHJvdmlkZWQKKyAgICAgKiBzbyB0aGF0IGl0ZXJhdG9ycyBtYXkgaW50ZXJvcGVyYXRlIHdpdGggc3RyaW5nLWJhc2VkIEFQSXMuICBUaGUgdHlwaWNhbAorICAgICAqIHNlcXVlbmNlIG9mIGNhbGxzIGlzIHRvIGNhbGwgc2tpcElnbm9yZWQoKSwgdGhlbiBjYWxsIGxvb2thaGVhZCgpLCB0aGVuCisgICAgICogcGFyc2UgdGhlIHN0cmluZyByZXR1cm5lZCBieSBsb29rYWhlYWQoKSwgdGhlbiBjYWxsIGp1bXBhaGVhZCgpIHRvCisgICAgICogcmVzeW5jaHJvbml6ZSB0aGUgaXRlcmF0b3IuCisgICAgICogQHJldHVybiBhIHN0cmluZyBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIHRvIGJlIHJldHVybmVkIGJ5IGZ1dHVyZQorICAgICAqIGNhbGxzIHRvIG5leHQoKQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgbG9va2FoZWFkKCkgeworICAgICAgICBpZiAoYnVmICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGJ1ZiwgYnVmUG9zLCBidWYubGVuZ3RoIC0gYnVmUG9zKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhwb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgcG9zaXRpb24gYnkgdGhlIGdpdmVuIG51bWJlciBvZiAxNi1iaXQgY29kZSB1bml0cy4KKyAgICAgKiBUaGlzIGlzIHVzZWZ1bCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBsb29rYWhlYWQoKSBtZXRob2QuCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBudW1iZXIgb2YgMTYtYml0IGNvZGUgdW5pdHMgdG8ganVtcCBvdmVyCisgICAgICovCisgICAgcHVibGljIHZvaWQganVtcGFoZWFkKGludCBjb3VudCkgeworICAgICAgICBpZiAoY291bnQgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJ1ZiAhPSBudWxsKSB7CisgICAgICAgICAgICBidWZQb3MgKz0gY291bnQ7CisgICAgICAgICAgICBpZiAoYnVmUG9zID4gYnVmLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChidWZQb3MgPT0gYnVmLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGJ1ZiA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgaSA9IHBvcy5nZXRJbmRleCgpICsgY291bnQ7CisgICAgICAgICAgICBwb3Muc2V0SW5kZXgoaSk7CisgICAgICAgICAgICBpZiAoaSA+IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LCBjb25zaXN0aW5nIG9mIHRoZQorICAgICAqIGNoYXJhY3RlcnMgYmVpbmcgaXRlcmF0ZWQsIHdpdGggYSAnfCcgbWFya2luZyB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiBQb3NpdGlvbiB3aXRoaW4gYW4gZXhwYW5kZWQgdmFyaWFibGUgaXMgPGVtPm5vdDwvZW0+IGluZGljYXRlZC4KKyAgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0CisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgaW50IGIgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKDAsIGIpICsgJ3wnICsgdGV4dC5zdWJzdHJpbmcoYik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCAzMi1iaXQgY29kZSBwb2ludCB3aXRob3V0IHBhcnNpbmcgZXNjYXBlcywgcGFyc2luZworICAgICAqIHZhcmlhYmxlcywgb3Igc2tpcHBpbmcgd2hpdGVzcGFjZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IDMyLWJpdCBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgX2N1cnJlbnQoKSB7CisgICAgICAgIGlmIChidWYgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIFVURjE2LmNoYXJBdChidWYsIDAsIGJ1Zi5sZW5ndGgsIGJ1ZlBvcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgaSA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgcmV0dXJuIChpIDwgdGV4dC5sZW5ndGgoKSkgPyBVVEYxNi5jaGFyQXQodGV4dCwgaSkgOiBET05FOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBwb3NpdGlvbiBieSB0aGUgZ2l2ZW4gYW1vdW50LgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbnVtYmVyIG9mIDE2LWJpdCBjb2RlIHVuaXRzIHRvIGFkdmFuY2UgcGFzdAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBfYWR2YW5jZShpbnQgY291bnQpIHsKKyAgICAgICAgaWYgKGJ1ZiAhPSBudWxsKSB7CisgICAgICAgICAgICBidWZQb3MgKz0gY291bnQ7CisgICAgICAgICAgICBpZiAoYnVmUG9zID09IGJ1Zi5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBidWYgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcG9zLnNldEluZGV4KHBvcy5nZXRJbmRleCgpICsgY291bnQpOworICAgICAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpID4gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleCh0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9Tb2Z0Q2FjaGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1NvZnRDYWNoZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMmM4MDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9Tb2Z0Q2FjaGUuamF2YQpAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlJlZmVyZW5jZVF1ZXVlOworaW1wb3J0IGphdmEubGFuZy5yZWYuU29mdFJlZmVyZW5jZTsKKworLyoqCisgKiBMUlUgaGFzaCBtYXAgdXNpbmcgc29mdGx5LXJlZmVyZW5jZWQgdmFsdWVzCisgKi8KK3B1YmxpYyBjbGFzcyBTb2Z0Q2FjaGUgeworICAgIHByaXZhdGUgZmluYWwgTFJVTWFwIG1hcDsKKyAgICBwcml2YXRlIGZpbmFsIFJlZmVyZW5jZVF1ZXVlIHF1ZXVlID0gbmV3IFJlZmVyZW5jZVF1ZXVlKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTb2Z0Q2FjaGUgd2l0aCBkZWZhdWx0IGNhY2hlIHNpemUKKyAgICAgKi8KKyAgICBwdWJsaWMgU29mdENhY2hlKCkgeworICAgICAgICBtYXAgPSBuZXcgTFJVTWFwKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNvZnRDYWNoZSB3aXRoIHNlcGNpZmllZCBpbml0aWFsL21heCBzaXplCisgICAgICogCisgICAgICogQHBhcmFtIGluaXRpYWxTaXplIHRoZSBpbml0aWFsIGNhY2hlIHNpemUKKyAgICAgKiBAcGFyYW0gbWF4U2l6ZSB0aGUgbWF4aW11bSBjYWNoZSBzaXplCisgICAgICovCisgICAgcHVibGljIFNvZnRDYWNoZShpbnQgaW5pdGlhbFNpemUsIGludCBtYXhTaXplKSB7CisgICAgICAgIG1hcCA9IG5ldyBMUlVNYXAoaW5pdGlhbFNpemUsIG1heFNpemUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFB1dCBhbiBvYmplY3QgdG8gdGhlIGNhY2hlCisgICAgICogQHBhcmFtIGtleSBrZXkgb2JqZWN0CisgICAgICogQHBhcmFtIHZhbHVlIHZhbHVlIG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIHByZXZpb3VzbHkgcHV0LCBudWxsIHdoZW4gbm90IG1hdGNoaW5nIGtleSBpcyBmb3VuZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdCBwdXQoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIGlmIChrZXkgPT0gbnVsbCB8fCB2YWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJLZXkgYW5kIHZhbHVlIG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBQcm9jZXNzUXVldWUoKTsKKyAgICAgICAgT2JqZWN0IG9iaiA9IG1hcC5wdXQoa2V5LCBuZXcgU29mdE1hcEVudHJ5KGtleSwgdmFsdWUsIHF1ZXVlKSk7CisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGFuIG9iamVjdCBmcm9tIHRoZSBjYWNoZQorICAgICAqIEBwYXJhbSBrZXkga2V5IG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlIGNhY2hlZCB2YWx1ZSwgbnVsbCB3aGVuIHRoZSB2YWx1ZSBpcyBub3QgZm91bmQuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3QgZ2V0KE9iamVjdCBrZXkpIHsKKyAgICAgICAgUHJvY2Vzc1F1ZXVlKCk7CisgICAgICAgIE9iamVjdCBvYmogPSBudWxsOworICAgICAgICBTb2Z0TWFwRW50cnkgZW50cnkgPSAoU29mdE1hcEVudHJ5KW1hcC5nZXQoa2V5KTsKKyAgICAgICAgaWYgKGVudHJ5ICE9IG51bGwpIHsKKyAgICAgICAgICAgIG9iaiA9IGVudHJ5LmdldCgpOworICAgICAgICAgICAgaWYgKG9iaiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gSXQgaXMgdW5saWtlbHkgdG8gZW50ZXIgaW50byB0aGlzIGJsb2NrLCBiZWNhdXNlCisgICAgICAgICAgICAgICAgLy8gUHJvY2Vzc1F1ZXVlKCkgc2hvdWxkIGFscmVhZHkgcmVtb3ZlIGEgbWFwIGVudHJpZQorICAgICAgICAgICAgICAgIC8vIHdob3NlIHZhbHVlIHdhcyBkZWxldGVkIGJ5IHRoZSBnYXJiYWdlIGNvbGxhY3Rvci4KKyAgICAgICAgICAgICAgICBtYXAucmVtb3ZlKGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYSBjYWNoZSBlbnRyeSBmcm9tIHRoZSBjYWNoZQorICAgICAqIEBwYXJhbSBrZXkga2V5IG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIGNhY2hlIGVudHJ5IHdoaWNoIGlzIHJlbW92ZWQgZnJvbSB0aGlzIGNhY2hlLAorICAgICAqIG9yIG51bGwgd2hlbiBubyBlbnRyeSBmb3IgdGhlIGtleSB3YXMgbm8gZm91bmQuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3QgcmVtb3ZlKE9iamVjdCBrZXkpIHsKKyAgICAgICAgcmV0dXJuIG1hcC5yZW1vdmUoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhciB0aGUgY2FjaGUgY29udGVudHMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIFByb2Nlc3NRdWV1ZSgpOworICAgICAgICBtYXAuY2xlYXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgbWFwIGVudHJpZXMgd2hpY2ggbm8gbG9uZ2VyIGhhdmUgdmFsdWUKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgUHJvY2Vzc1F1ZXVlKCkgeworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgU29mdE1hcEVudHJ5IGVudHJ5ID0gKFNvZnRNYXBFbnRyeSlxdWV1ZS5wb2xsKCk7CisgICAgICAgICAgICBpZiAoZW50cnkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbWFwLnJlbW92ZShlbnRyeS5nZXRLZXkoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGNsYXNzIGZvciBtYXAgZW50cnkgd2l0aCBzb2Z0LXJlZmVyZW5jZWQgdmFsdWUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBTb2Z0TWFwRW50cnkgZXh0ZW5kcyBTb2Z0UmVmZXJlbmNlIHsKKyAgICAgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3Qga2V5OworCisgICAgICAgIHByaXZhdGUgU29mdE1hcEVudHJ5KE9iamVjdCBrZXksIE9iamVjdCB2YWx1ZSwgUmVmZXJlbmNlUXVldWUgcXVldWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlLCBxdWV1ZSk7CisgICAgICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgT2JqZWN0IGdldEtleSgpIHsKKyAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvU29ydGVkU2V0UmVsYXRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1NvcnRlZFNldFJlbGF0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUyNjJlOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1NvcnRlZFNldFJlbGF0aW9uLmphdmEKQEAgLTAsMCArMSwxODAgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IE0uIERhdmlzCisqIENyZWF0ZWQ6IERlY2VtYmVyIDIwMDIgKG1vdmVkIGZyb20gVW5pY29kZVNldCkKKyogU2luY2U6IElDVSAyLjQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnV0aWwuU29ydGVkU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKKworLyoqCisgKiBDb21wdXRhdGlvbmFsbHkgZWZmaWNpZW50IGRldGVybWluYXRpb24gb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuCisgKiB0d28gU29ydGVkU2V0cy4KKyAqLworcHVibGljIGNsYXNzIFNvcnRlZFNldFJlbGF0aW9uIHsKKworICAgIC8qKgorICAgICAqIFRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0d28gc2V0cyBBIGFuZCBCIGNhbiBiZSBkZXRlcm1pbmVkIGJ5IGxvb2tpbmcgYXQ6CisgICAgICogQSAtIEIKKyAgICAgKiBBICYgQiAoaW50ZXJzZWN0aW9uKQorICAgICAqIEIgLSBBCisgICAgICogVGhlc2UgYXJlIHJlcHJlc2VudGVkIGJ5IGEgc2V0IG9mIGJpdHMuCisgICAgICogQml0IDIgaXMgdHJ1ZSBpZiBBIC0gQiBpcyBub3QgZW1wdHkKKyAgICAgKiBCaXQgMSBpcyB0cnVlIGlmIEEgJiBCIGlzIG5vdCBlbXB0eQorICAgICAqIEJJVCAwIGlzIHRydWUgaWYgQiAtIEEgaXMgbm90IGVtcHR5CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQKKyAgICAgICAgQV9OT1RfQiA9IDQsCisgICAgICAgIEFfQU5EX0IgPSAyLAorICAgICAgICBCX05PVF9BID0gMTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGVyZSBhcmUgOCBjb21iaW5hdGlvbnMgb2YgdGhlIHJlbGF0aW9uc2hpcCBiaXRzLiBUaGVzZSBjb3JyZXNwb25kIHRvCisgICAgICogdGhlIGZpbHRlcnMgKGNvbWJpbmF0aW9ucyBvZiBhbGxvd2VkIGJpdHMpIGluIGhhc1JlbGF0aW9uLiBUaGV5IGFsc28KKyAgICAgKiBjb3JyZXNwb25kIHRvIHRoZSBtb2RpZmljYXRpb24gZnVuY3Rpb25zLCBsaXN0ZWQgaW4gY29tbWVudHMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgCisgICAgICAgQU5ZID0gICAgICAgICAgICBBX05PVF9CIHwgICBBX0FORF9CIHwgICBCX05PVF9BLCAgICAvLyB1bmlvbiwgICAgICAgICAgIGFkZEFsbAorICAgICAgIENPTlRBSU5TID0gICAgICAgQV9OT1RfQiB8ICAgQV9BTkRfQiwgICAgICAgICAgICAgICAgLy8gQSAgICAgICAgICAgICAgICAodW5uZWNlc3NhcnkpCisgICAgICAgRElTSk9JTlQgPSAgICAgICBBX05PVF9CIHwgICAgICAgICAgICAgICBCX05PVF9BLCAgICAvLyBBIHhvciBCLCAgICAgICAgIG1pc3NpbmcgSmF2YSBmdW5jdGlvbgorICAgICAgIElTQ09OVEFJTkVEID0gICAgICAgICAgICAgICAgQV9BTkRfQiB8ICAgQl9OT1RfQSwgICAgLy8gQiAgICAgICAgICAgICAgICAodW5uZWNlc3NhcnkpCisgICAgICAgTk9fQiA9ICAgICAgICAgICBBX05PVF9CLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBIHNldERpZmYgQiwgICAgIHJlbW92ZUFsbAorICAgICAgIEVRVUFMUyA9ICAgICAgICAgICAgICAgICAgICAgQV9BTkRfQiwgICAgICAgICAgICAgICAgLy8gQSBpbnRlcnNlY3QgQiwgICByZXRhaW5BbGwKKyAgICAgICBOT19BID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJfTk9UX0EsICAgIC8vIEIgc2V0RGlmZiBBLCAgICAgcmVtb3ZlQWxsCisgICAgICAgTk9ORSA9ICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBudWxsICAgICAgICAgICAgICh1bm5lY2Vzc2FyeSkKKyAgICAgICAKKyAgICAgICBBRERBTEwgPSBBTlksICAgICAgICAgICAgICAgIC8vIHVuaW9uLCAgICAgICAgICAgYWRkQWxsCisgICAgICAgQSA9IENPTlRBSU5TLCAgICAgICAgICAgICAgICAvLyBBICAgICAgICAgICAgICAgICh1bm5lY2Vzc2FyeSkKKyAgICAgICBDT01QTEVNRU5UQUxMID0gRElTSk9JTlQsICAgIC8vIEEgeG9yIEIsICAgICAgICAgbWlzc2luZyBKYXZhIGZ1bmN0aW9uCisgICAgICAgQiA9IElTQ09OVEFJTkVELCAgICAgICAgICAgICAvLyBCICAgICAgICAgICAgICAgICh1bm5lY2Vzc2FyeSkKKyAgICAgICBSRU1PVkVBTEwgPSBOT19CLCAgICAgICAgICAgIC8vIEEgc2V0RGlmZiBCLCAgICAgcmVtb3ZlQWxsCisgICAgICAgUkVUQUlOQUxMID0gRVFVQUxTLCAgICAgICAgICAvLyBBIGludGVyc2VjdCBCLCAgIHJldGFpbkFsbAorICAgICAgIEJfUkVNT1ZFQUxMID0gTk9fQTsgICAgICAgICAgLy8gQiBzZXREaWZmIEEsICAgICByZW1vdmVBbGwKKyAgICAgICAKKyAgCisgICAgLyoqCisgICAgICogVXRpbGl0eSB0aGF0IGNvdWxkIGJlIG9uIFNvcnRlZFNldC4gRmFzdGVyIGltcGxlbWVudGF0aW9uIHRoYW4KKyAgICAgKiB3aGF0IGlzIGluIEphdmEgZm9yIGRvaW5nIGNvbnRhaW5zLCBlcXVhbHMsIGV0Yy4KKyAgICAgKiBAcGFyYW0gYSBmaXJzdCBzZXQKKyAgICAgKiBAcGFyYW0gYWxsb3cgZmlsdGVyLCB1c2luZyBBTlksIENPTlRBSU5TLCBldGMuCisgICAgICogQHBhcmFtIGIgc2Vjb25kIHNldAorICAgICAqIEByZXR1cm4gd2hldGhlciB0aGUgZmlsdGVyIHJlbGF0aW9uc2hpcCBpcyB0cnVlIG9yIG5vdC4KKyAgICAgKi8gICAgCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGhhc1JlbGF0aW9uKFNvcnRlZFNldCBhLCBpbnQgYWxsb3csIFNvcnRlZFNldCBiKSB7CisgICAgICAgIGlmIChhbGxvdyA8IE5PTkUgfHwgYWxsb3cgPiBBTlkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJlbGF0aW9uICIgKyBhbGxvdyArICIgb3V0IG9mIHJhbmdlIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGV4dHJhY3QgZmlsdGVyIGNvbmRpdGlvbnMKKyAgICAgICAgLy8gdGhlc2UgYXJlIHRoZSBBTExPV0VEIGNvbmRpdGlvbnMgU2V0CisgICAgICAgIAorICAgICAgICBib29sZWFuIGFuYiA9IChhbGxvdyAmIEFfTk9UX0IpICE9IDA7CisgICAgICAgIGJvb2xlYW4gYWIgPSAoYWxsb3cgJiBBX0FORF9CKSAhPSAwOworICAgICAgICBib29sZWFuIGJuYSA9IChhbGxvdyAmIEJfTk9UX0EpICE9IDA7CisgICAgICAgIAorICAgICAgICAvLyBxdWljayBjaGVjayBvbiBzaXplcworICAgICAgICBzd2l0Y2goYWxsb3cpIHsKKyAgICAgICAgICAgIGNhc2UgQ09OVEFJTlM6IGlmIChhLnNpemUoKSA8IGIuc2l6ZSgpKSByZXR1cm4gZmFsc2U7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBJU0NPTlRBSU5FRDogaWYgKGEuc2l6ZSgpID4gYi5zaXplKCkpIHJldHVybiBmYWxzZTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEVRVUFMUzogaWYgKGEuc2l6ZSgpICE9IGIuc2l6ZSgpKSByZXR1cm4gZmFsc2U7IGJyZWFrOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBjaGVjayBmb3IgbnVsbCBzZXRzCisgICAgICAgIGlmIChhLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICBpZiAoYi5zaXplKCkgPT0gMCkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm4gYm5hOworICAgICAgICB9IGVsc2UgaWYgKGIuc2l6ZSgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBhbmI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHBpY2sgdXAgZmlyc3Qgc3RyaW5ncywgYW5kIHN0YXJ0IGNvbXBhcmluZworICAgICAgICBJdGVyYXRvciBhaXQgPSBhLml0ZXJhdG9yKCk7CisgICAgICAgIEl0ZXJhdG9yIGJpdCA9IGIuaXRlcmF0b3IoKTsKKyAgICAgICAgCisgICAgICAgIENvbXBhcmFibGUgYWEgPSAoQ29tcGFyYWJsZSkgYWl0Lm5leHQoKTsKKyAgICAgICAgQ29tcGFyYWJsZSBiYiA9IChDb21wYXJhYmxlKSBiaXQubmV4dCgpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCBjb21wID0gYWEuY29tcGFyZVRvKGJiKTsKKyAgICAgICAgICAgIGlmIChjb21wID09IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoIWFiKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYgKCFhaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghYml0Lmhhc05leHQoKSkgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBibmE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghYml0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYW5iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhYSA9IChDb21wYXJhYmxlKSBhaXQubmV4dCgpOworICAgICAgICAgICAgICAgIGJiID0gKENvbXBhcmFibGUpIGJpdC5uZXh0KCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXAgPCAwKSB7CisgICAgICAgICAgICAgICAgaWYgKCFhbmIpIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAoIWFpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJuYTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYWEgPSAoQ29tcGFyYWJsZSkgYWl0Lm5leHQoKTsgCisgICAgICAgICAgICB9IGVsc2UgIHsKKyAgICAgICAgICAgICAgICBpZiAoIWJuYSkgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIGlmICghYml0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYW5iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBiYiA9IChDb21wYXJhYmxlKSBiaXQubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFV0aWxpdHkgdGhhdCBjb3VsZCBiZSBvbiBTb3J0ZWRTZXQuIEFsbG93cyBmYXN0ZXIgaW1wbGVtZW50YXRpb24gdGhhbgorICAgICAqIHdoYXQgaXMgaW4gSmF2YSBmb3IgZG9pbmcgYWRkQWxsLCByZW1vdmVBbGwsIHJldGFpbkFsbCwgKGNvbXBsZW1lbnRBbGwpLgorICAgICAqIEBwYXJhbSBhIGZpcnN0IHNldAorICAgICAqIEBwYXJhbSByZWxhdGlvbiB0aGUgcmVsYXRpb24gZmlsdGVyLCB1c2luZyBBTlksIENPTlRBSU5TLCBldGMuCisgICAgICogQHBhcmFtIGIgc2Vjb25kIHNldAorICAgICAqIEByZXR1cm4gdGhlIG5ldyBzZXQKKyAgICAgKi8gICAgCisgICAgcHVibGljIHN0YXRpYyBTb3J0ZWRTZXQgZG9PcGVyYXRpb24oU29ydGVkU2V0IGEsIGludCByZWxhdGlvbiwgU29ydGVkU2V0IGIpIHsKKyAgICAgICAgLy8gVE9ETzogb3B0aW1pemUgdGhpcyBhcyBhYm92ZQorICAgICAgICBUcmVlU2V0IHRlbXA7CisgICAgICAgIHN3aXRjaCAocmVsYXRpb24pIHsKKyAgICAgICAgICAgIGNhc2UgQUREQUxMOgorICAgICAgICAgICAgICAgIGEuYWRkQWxsKGIpOyAKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIGNhc2UgQToKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsgLy8gbm8gYWN0aW9uCisgICAgICAgICAgICBjYXNlIEI6CisgICAgICAgICAgICAgICAgYS5jbGVhcigpOyAKKyAgICAgICAgICAgICAgICBhLmFkZEFsbChiKTsgCisgICAgICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgICAgICBjYXNlIFJFTU9WRUFMTDogCisgICAgICAgICAgICAgICAgYS5yZW1vdmVBbGwoYik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgICAgICBjYXNlIFJFVEFJTkFMTDogCisgICAgICAgICAgICAgICAgYS5yZXRhaW5BbGwoYik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgICAgICAvLyB0aGUgZm9sbG93aW5nIGlzIHRoZSBvbmx5IGNhc2Ugbm90IHJlYWxseSBzdXBwb3J0ZWQgYnkgSmF2YQorICAgICAgICAgICAgLy8gYWx0aG91Z2ggYWxsIGNvdWxkIGJlIG9wdGltaXplZAorICAgICAgICAgICAgY2FzZSBDT01QTEVNRU5UQUxMOgorICAgICAgICAgICAgICAgIHRlbXAgPSBuZXcgVHJlZVNldChiKTsKKyAgICAgICAgICAgICAgICB0ZW1wLnJlbW92ZUFsbChhKTsKKyAgICAgICAgICAgICAgICBhLnJlbW92ZUFsbChiKTsKKyAgICAgICAgICAgICAgICBhLmFkZEFsbCh0ZW1wKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIGNhc2UgQl9SRU1PVkVBTEw6CisgICAgICAgICAgICAgICAgdGVtcCA9IG5ldyBUcmVlU2V0KGIpOworICAgICAgICAgICAgICAgIHRlbXAucmVtb3ZlQWxsKGEpOworICAgICAgICAgICAgICAgIGEuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBhLmFkZEFsbCh0ZW1wKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIGNhc2UgTk9ORToKKyAgICAgICAgICAgICAgICBhLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgICAgICBkZWZhdWx0OiAKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJSZWxhdGlvbiAiICsgcmVsYXRpb24gKyAiIG91dCBvZiByYW5nZSIpOworICAgICAgICB9CisgICAgfSAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1N0cmluZ1ByZXBEYXRhUmVhZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9TdHJpbmdQcmVwRGF0YVJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjZDc3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9TdHJpbmdQcmVwRGF0YVJlYWRlci5qYXZhCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBDcmVhdGVkIG9uIE1heSAyLCAyMDAzCisgKgorICogVG8gY2hhbmdlIHRoZSB0ZW1wbGF0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgZmlsZSBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uPkNvZGUgYW5kIENvbW1lbnRzCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKKworCisKKy8qKgorICogQGF1dGhvciByYW0KKyAqCisgKiBUbyBjaGFuZ2UgdGhlIHRlbXBsYXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0eXBlIGNvbW1lbnQgZ28gdG8KKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPkNvZGUgR2VuZXJhdGlvbj5Db2RlIGFuZCBDb21tZW50cworICovCitwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nUHJlcERhdGFSZWFkZXIgaW1wbGVtZW50cyBJQ1VCaW5hcnkuQXV0aGVudGljYXRlIHsKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBib29sZWFuIGRlYnVnID0gSUNVRGVidWcuZW5hYmxlZCgiTm9ybWFsaXplckRhdGFSZWFkZXIiKTsKKyAgICAKKyAgIC8qKgorICAgICogPHA+cHJpdmF0ZSBjb25zdHJ1Y3Rvci48L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gSUNVIHVwcm9wLmRhdCBmaWxlIGlucHV0IHN0cmVhbQorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvdyBpZiBkYXRhIGZpbGUgZmFpbHMgYXV0aGVudGljYXRpb24gCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nUHJlcERhdGFSZWFkZXIoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0pIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgaWYoZGVidWcpIFN5c3RlbS5vdXQucHJpbnRsbigiQnl0ZXMgaW4gaW5wdXRTdHJlYW0gIiArIGlucHV0U3RyZWFtLmF2YWlsYWJsZSgpKTsKKyAgICAgICAgCisgICAgICAgIHVuaWNvZGVWZXJzaW9uID0gSUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRTdHJlYW0sIERBVEFfRk9STUFUX0lELCB0aGlzKTsKKyAgICAgICAgCisgICAgICAgIGlmKGRlYnVnKSBTeXN0ZW0ub3V0LnByaW50bG4oIkJ5dGVzIGxlZnQgaW4gaW5wdXRTdHJlYW0gIiAraW5wdXRTdHJlYW0uYXZhaWxhYmxlKCkpOworICAgICAgICAKKyAgICAgICAgZGF0YUlucHV0U3RyZWFtID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgICAgIAorICAgICAgICBpZihkZWJ1ZykgU3lzdGVtLm91dC5wcmludGxuKCJCeXRlcyBsZWZ0IGluIGRhdGFJbnB1dFN0cmVhbSAiICtkYXRhSW5wdXRTdHJlYW0uYXZhaWxhYmxlKCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCByZWFkKGJ5dGVbXSBpZG5hQnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gbWFwcGluZ1RhYmxlKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbnsKKworICAgICAgICAvL1JlYWQgdGhlIGJ5dGVzIHRoYXQgbWFrZSB1cCB0aGUgaWRuYVRyaWUgIAorICAgICAgICBkYXRhSW5wdXRTdHJlYW0ucmVhZChpZG5hQnl0ZXMpOworICAgICAgICAKKyAgICAgICAgLy9SZWFkIHRoZSBleHRyYSBkYXRhCisgICAgICAgIGZvcihpbnQgaT0wO2k8bWFwcGluZ1RhYmxlLmxlbmd0aDtpKyspeworICAgICAgICAgICAgbWFwcGluZ1RhYmxlW2ldPWRhdGFJbnB1dFN0cmVhbS5yZWFkQ2hhcigpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBieXRlW10gZ2V0RGF0YUZvcm1hdFZlcnNpb24oKXsKKyAgICAgICAgcmV0dXJuIERBVEFfRk9STUFUX1ZFUlNJT047CisgICAgfQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKXsKKyAgICAgICAgcmV0dXJuIHZlcnNpb25bMF0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlswXSAKKyAgICAgICAgICAgICAgICYmIHZlcnNpb25bMl0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlsyXSAKKyAgICAgICAgICAgICAgICYmIHZlcnNpb25bM10gPT0gREFUQV9GT1JNQVRfVkVSU0lPTlszXTsKKyAgICB9CisgICAgcHVibGljIGludFtdIHJlYWRJbmRleGVzKGludCBsZW5ndGgpdGhyb3dzIElPRXhjZXB0aW9ueworICAgICAgICBpbnRbXSBpbmRleGVzID0gbmV3IGludFtsZW5ndGhdOworICAgICAgICAvL1JlYWQgdGhlIGluZGV4ZXMKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPGxlbmd0aCA7IGkrKykgeworICAgICAgICAgICAgIGluZGV4ZXNbaV0gPSBkYXRhSW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpbmRleGVzOworICAgIH0gCisgICAgCisgICAgcHVibGljIGJ5dGVbXSBnZXRVbmljb2RlVmVyc2lvbigpeworICAgICAgICByZXR1cm4gdW5pY29kZVZlcnNpb247CisgICAgfQorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorCisgICAgLyoqCisgICAgKiBJQ1UgZGF0YSBmaWxlIGlucHV0IHN0cmVhbQorICAgICovCisgICAgcHJpdmF0ZSBEYXRhSW5wdXRTdHJlYW0gZGF0YUlucHV0U3RyZWFtOworICAgIHByaXZhdGUgYnl0ZVtdIHVuaWNvZGVWZXJzaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgKiBGaWxlIGZvcm1hdCB2ZXJzaW9uIHRoYXQgdGhpcyBjbGFzcyB1bmRlcnN0YW5kcy4KKyAgICAqIE5vIGd1YXJhbnRlZXMgYXJlIG1hZGUgaWYgYSBvbGRlciB2ZXJzaW9uIGlzIHVzZWQKKyAgICAqIHNlZSBzdG9yZS5jIG9mIGdlbm5vcm0gZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIHZhbHVlcworICAgICovCisgICAgLy8vKiBkYXRhRm9ybWF0PSJTUFJQIiAweDUzLCAweDUwLCAweDUyLCAweDUwICAqLyAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX0lEW10gPSB7KGJ5dGUpMHg1MywgKGJ5dGUpMHg1MCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpMHg1MiwgKGJ5dGUpMHg1MH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9WRVJTSU9OW10gPSB7KGJ5dGUpMHgzLCAoYnl0ZSkweDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDUsIChieXRlKTB4Mn07CisgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9TdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1N0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiZDM4YjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9TdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDIyOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3Rlckl0ZXJhdG9yOworCisvKioKKyAqIFVzZWQgYnkgQ29sbGF0aW9uLiBVQ2hhcmFjdGVySXRlcmF0b3Igb24gU3RyaW5ncy4gQ2FuJ3QgdXNlIAorICogUmVwbGFjZWFibGVVQ2hhcmFjdGVySXRlcmF0b3IgYmVjYXVzZSBpdCBpcyBub3QgZWFzeSB0byBkbyBhIGZhc3Qgc2V0VGV4dC4gCisgKiBAYXV0aG9yIHN5bndlZQorICovCisvLyBUT0RPOiBJbnZlc3RpdmF0ZSBpZiBzZXRUZXh0IGlzIGEgZmVhdHVyZSByZXF1aXJlZCBieSB1c2VycyBzbyB0aGF0IHdlIGNhbiAKKy8vIG1vdmUgdGhpcyBtZXRob2QgdG8gdGhlIGJhc2UgY2xhc3MhCitwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nVUNoYXJhY3Rlckl0ZXJhdG9yIGV4dGVuZHMgVUNoYXJhY3Rlckl0ZXJhdG9yIAoreworCisgICAgLy8gcHVibGljIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFB1YmxpYyBjb25zdHJ1Y3RvcgorICAgICAqIEBwYXJhbSBzdHIgdGV4dCB3aGljaCB0aGUgaXRlcmF0b3Igd2lsbCBiZSBiYXNlZCBvbgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IoU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIGlmIChzdHIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIG1fdGV4dF8gPSBzdHI7CisgICAgICAgIG1fY3VycmVudEluZGV4XyA9IDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFB1YmxpYyBkZWZhdWx0IGNvbnN0cnVjdG9yCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1VDaGFyYWN0ZXJJdGVyYXRvcigpCisgICAgeworICAgICAgICBtX3RleHRfID0gIiI7CisgICAgICAgIG1fY3VycmVudEluZGV4XyA9IDA7CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY29weSBvZiB0aGlzIGl0ZXJhdG9yLCBkb2VzIG5vdCBjbG9uZSB0aGUgdW5kZXJseWluZyAKKyAgICAgKiA8Y29kZT5TdHJpbmc8L2NvZGU+b2JqZWN0CisgICAgICogQHJldHVybiBjb3B5IG9mIHRoaXMgaXRlcmF0b3IKKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBuZXZlciBpbnZva2VkCisgICAgICAgIH0KKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBVVEYxNiBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiBjdXJyZW50IFVURjE2IGNoYXJhY3RlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgY3VycmVudCgpCisgICAgeworICAgICAgICBpZiAobV9jdXJyZW50SW5kZXhfIDwgbV90ZXh0Xy5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIG1fdGV4dF8uY2hhckF0KG1fY3VycmVudEluZGV4Xyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIERPTkU7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gbGVuZ3RoIG9mIHRoZSB0ZXh0CisgICAgICovCisgICAgcHVibGljIGludCBnZXRMZW5ndGgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdGV4dF8ubGVuZ3RoKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY3VycmVudEluZGV4IGluIHRleHQuCisgICAgICogQHJldHVybiBjdXJyZW50IGN1cnJlbnRJbmRleCBpbiB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fY3VycmVudEluZGV4XzsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgbmV4dCBVVEYxNiBjaGFyYWN0ZXIgYW5kIGluY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgY3VycmVudEluZGV4IAorICAgICAqIGJ5IDEuIAorICAgICAqIElmIHRoZSByZXN1bHRpbmcgY3VycmVudEluZGV4IGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIHRleHQgbGVuZ3RoLCAKKyAgICAgKiB0aGUgY3VycmVudEluZGV4IGlzIHJlc2V0IHRvIHRoZSB0ZXh0IGxlbmd0aCBhbmQgYSB2YWx1ZSBvZiBET05FIGlzIAorICAgICAqIHJldHVybmVkLiAKKyAgICAgKiBAcmV0dXJuIG5leHQgVVRGMTYgY2hhcmFjdGVyIGluIHRleHQgb3IgRE9ORSBpZiB0aGUgbmV3IGN1cnJlbnRJbmRleCBpcyAKKyAgICAgKiAgICAgICAgIG9mZiB0aGUgZW5kIG9mIHRoZSB0ZXh0IHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dCgpCisgICAgeworICAgICAgICBpZiAobV9jdXJyZW50SW5kZXhfIDwgbV90ZXh0Xy5sZW5ndGgoKSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX3RleHRfLmNoYXJBdChtX2N1cnJlbnRJbmRleF8gKyspOworICAgICAgICB9CisgICAgICAgIHJldHVybiBET05FOworICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHByZXZpb3VzIFVURjE2IGNoYXJhY3RlciBhbmQgZGVjcmVtZW50cyB0aGUgaXRlcmF0b3IncyAKKyAgICAgKiBjdXJyZW50SW5kZXggYnkgMS4gCisgICAgICogSWYgdGhlIHJlc3VsdGluZyBjdXJyZW50SW5kZXggaXMgbGVzcyB0aGFuIDAsIHRoZSBjdXJyZW50SW5kZXggaXMgcmVzZXQgCisgICAgICogdG8gMCBhbmQgYSB2YWx1ZSBvZiBET05FIGlzIHJldHVybmVkLiAKKyAgICAgKiBAcmV0dXJuIG5leHQgVVRGMTYgY2hhcmFjdGVyIGluIHRleHQgb3IgRE9ORSBpZiB0aGUgbmV3IGN1cnJlbnRJbmRleCBpcyAKKyAgICAgKiAgICAgICAgIG9mZiB0aGUgc3RhcnQgb2YgdGhlIHRleHQgcmFuZ2UuCisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpCisgICAgeworICAgICAgICBpZiAobV9jdXJyZW50SW5kZXhfID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIG1fdGV4dF8uY2hhckF0KC0tIG1fY3VycmVudEluZGV4Xyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIERPTkU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0cyB0aGUgY3VycmVudEluZGV4IHRvIHRoZSBzcGVjaWZpZWQgY3VycmVudEluZGV4IGluIHRoZSB0ZXh0IGFuZCAKKyAgICAgKiByZXR1cm5zIHRoYXQgc2luZ2xlIFVURjE2IGNoYXJhY3RlciBhdCBjdXJyZW50SW5kZXguIAorICAgICAqIFRoaXMgYXNzdW1lcyB0aGUgdGV4dCBpcyBzdG9yZWQgYXMgMTYtYml0IGNvZGUgdW5pdHMuPC9wPgorICAgICAqIEBwYXJhbSBjdXJyZW50SW5kZXggdGhlIGN1cnJlbnRJbmRleCB3aXRoaW4gdGhlIHRleHQuIAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlzIHRocm93biBpZiBhbiBpbnZhbGlkIGN1cnJlbnRJbmRleCAKKyAgICAgKiAgICAgICAgICAgIGlzIHN1cHBsaWVkLiBpLmUuIGN1cnJlbnRJbmRleCBpcyBvdXQgb2YgYm91bmRzLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCB0aGUgc3BlY2lmaWVkIGN1cnJlbnRJbmRleCBvciBET05FIGlmIHRoZSAKKyAgICAgKiAgICAgICAgIHNwZWNpZmllZCBjdXJyZW50SW5kZXggaXMgZXF1YWwgdG8gdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJbmRleChpbnQgY3VycmVudEluZGV4KSB0aHJvd3MgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA8IDAgfHwgY3VycmVudEluZGV4ID4gbV90ZXh0Xy5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICBtX2N1cnJlbnRJbmRleF8gPSBjdXJyZW50SW5kZXg7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEZpbGxzIHRoZSBidWZmZXIgd2l0aCB0aGUgdW5kZXJseWluZyB0ZXh0IHN0b3JhZ2Ugb2YgdGhlIGl0ZXJhdG9yCisgICAgICogSWYgdGhlIGJ1ZmZlciBjYXBhY2l0eSBpcyBub3QgZW5vdWdoIGEgZXhjZXB0aW9uIGlzIHRocm93bi4gVGhlIGNhcGFjaXR5CisgICAgICogb2YgdGhlIGZpbGwgaW4gYnVmZmVyIHNob3VsZCBhdCBsZWFzdCBiZSBlcXVhbCB0byBsZW5ndGggb2YgdGV4dCBpbiB0aGUgCisgICAgICogaXRlcmF0b3Igb2J0YWluZWQgYnkgY2FsbGluZyA8Y29kZT5nZXRMZW5ndGgoKTwvY29kZSkuCisgICAgICogPGI+VXNhZ2U6PC9iPgorICAgICAqIAorICAgICAqIDxjb2RlPgorICAgICAqIDxwcmU+CisgICAgICogICAgICAgICBVQ2hhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBuZXcgVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHRleHQpOworICAgICAqICAgICAgICAgY2hhcltdIGJ1ZiA9IG5ldyBjaGFyW2l0ZXIuZ2V0TGVuZ3RoKCldOworICAgICAqICAgICAgICAgaXRlci5nZXRUZXh0KGJ1Zik7CisgICAgICogICAgICAgICAKKyAgICAgKiAgICAgICAgIE9SCisgICAgICogICAgICAgICBjaGFyW10gYnVmPSBuZXcgY2hhclsxXTsKKyAgICAgKiAgICAgICAgIGludCBsZW4gPSAwOworICAgICAqICAgICAgICAgZm9yKDs7KXsKKyAgICAgKiAgICAgICAgICAgICB0cnl7CisgICAgICogICAgICAgICAgICAgICAgIGxlbiA9IGl0ZXIuZ2V0VGV4dChidWYpOworICAgICAqICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgKiAgICAgICAgICAgICB9Y2F0Y2goSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKXsKKyAgICAgKiAgICAgICAgICAgICAgICAgYnVmID0gbmV3IGNoYXJbaXRlci5nZXRMZW5ndGgoKV07CisgICAgICogICAgICAgICAgICAgfQorICAgICAqICAgICAgICAgfQorICAgICAqIDwvcHJlPgorICAgICAqIDwvY29kZT4KKyAgICAgKiAgICAgICAgICAgICAKKyAgICAgKiBAcGFyYW0gZmlsbEluIGFuIGFycmF5IG9mIGNoYXJzIHRvIGZpbGwgd2l0aCB0aGUgdW5kZXJseWluZyBVVEYtMTYgY29kZSAKKyAgICAgKiAgICAgICAgIHVuaXRzLgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgYXJyYXkgdG8gc3RhcnQgcHV0dGluZyB0aGUgZGF0YS4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgY29kZSB1bml0cyBhZGRlZCB0byBmaWxsSW4sIGFzIGEgY29udmVuaWVuY2UKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHMgZXhjZXB0aW9uIGlmIHRoZXJlIGlzIG5vdCBlbm91Z2gKKyAgICAgKiAgICAgICAgICAgIHJvb20gYWZ0ZXIgb2Zmc2V0IGluIHRoZSBhcnJheSwgb3IgaWYgb2Zmc2V0ICZsdDsgMC4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIGludCBnZXRUZXh0KGNoYXJbXSBmaWxsSW4sIGludCBvZmZzZXQpCisgICAgeworICAgICAgICBpbnQgbGVuZ3RoID0gbV90ZXh0Xy5sZW5ndGgoKTsKKyAgICAgICAgaWYgKG9mZnNldCA8IDAgfHwgb2Zmc2V0ICsgbGVuZ3RoID4gZmlsbEluLmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhsZW5ndGgpKTsKKyAgICAgICAgfQorICAgICAgICBtX3RleHRfLmdldENoYXJzKDAsIGxlbmd0aCwgZmlsbEluLCBvZmZzZXQpOworICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIHJldHVybmluZyB0aGUgdW5kZXJseWluZyB0ZXh0IHN0b3JhZ2UgYXMgYXMKKyAgICAgKiBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoZSB1bmRlcmx5aW5nIHRleHQgc3RvcmFnZSBpbiB0aGUgaXRlcmF0b3IgYXMgYSBzdHJpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRleHQoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtX3RleHRfOworICAgIH0gICAgICAgCisgICAgCisgICAgLyoqCisgICAgICogUmVzZXQgdGhpcyBpdGVyYXRvciB0byBwb2ludCB0byBhIG5ldyBzdHJpbmcuIFRoaXMgbWV0aG9kIGlzIHVzZWQgYnkgCisgICAgICogb3RoZXIgY2xhc3NlcyB0aGF0IHdhbnQgdG8gYXZvaWQgYWxsb2NhdGluZyBuZXcgCisgICAgICogUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3RzIGV2ZXJ5IHRpbWUgdGhlaXIgc2V0VGV4dCBtZXRob2QKKyAgICAgKiBpcyBjYWxsZWQuCisgICAgICogQHBhcmFtIHRleHQgVGhlIFN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyIAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nIHRleHQpIAorICAgIHsKKyAgICAgICAgaWYgKHRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgbV90ZXh0XyA9IHRleHQ7CisgICAgICAgIG1fY3VycmVudEluZGV4XyA9IDA7CisgICAgfQorICAgICAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogVGV4dCBzdHJpbmcgb2JqZWN0CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgbV90ZXh0XzsKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IGN1cnJlbnRJbmRleAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fY3VycmVudEluZGV4XzsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVGV4dFRyaWVNYXAuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RleHRUcmllTWFwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUxNGIzZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RleHRUcmllTWFwLmphdmEKQEAgLTAsMCArMSwyMjIgQEAKKy8qCisgKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworCisvKioKKyAqIFRleHRUcmllTWFwIGlzIGEgdHJpZSBpbXBsZW1lbnRhdGlvbiBmb3Igc3VwcG9ydGluZworICogZmFzdCBwcmVmaXggbWF0Y2ggZm9yIHRoZSBrZXkuCisgKi8KK3B1YmxpYyBjbGFzcyBUZXh0VHJpZU1hcCB7CisgICAgLyoqCisgICAgICogQ29zdHJ1Y3RzIGEgVGV4dFRyaWVNYXAgb2JqZWN0LgorICAgICAqIAorICAgICAqIEBwYXJhbSBpZ25vcmVDYXNlIHRydWUgdG8gdXNlIGNhc2UgaW5zZW5zaXRpdmUgbWF0Y2gKKyAgICAgKi8KKyAgICBwdWJsaWMgVGV4dFRyaWVNYXAoYm9vbGVhbiBpZ25vcmVDYXNlKSB7CisgICAgICAgIHRoaXMuaWdub3JlQ2FzZSA9IGlnbm9yZUNhc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyB0aGUgdGV4dCBrZXkgYW5kIGl0cyBhc3NvY2lhdGVkIG9iamVjdCBpbiB0aGlzIG9iamVjdC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbyBUaGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSBwcmV2aW91cyB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggc3BlY2lmaWVkIHRleHQsCisgICAgICogb3IgbnVsbCBpZiB0aGVyZSB3YXMgbm8gbWFwcGluZyBmb3IgdGhlIHRleHQuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3QgcHV0KFN0cmluZyB0ZXh0LCBPYmplY3QgbykgeworICAgICAgICBDaGFyYWN0ZXJOb2RlIG5vZGUgPSByb290OworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KHRleHQsIGkpOworICAgICAgICAgICAgbm9kZSA9IG5vZGUuYWRkQ2hpbGROb2RlKGNoKTsKKyAgICAgICAgICAgIGlmIChVVEYxNi5nZXRDaGFyQ291bnQoY2gpID09IDIpIHsKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgT2JqZWN0IHByZXZPYmogPSBub2RlLmdldE9iamVjdCgpOworICAgICAgICBub2RlLnNldE9iamVjdChvKTsKKyAgICAgICAgcmV0dXJuIHByZXZPYmo7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9uZ2VzdCBwcmVmaXgKKyAgICAgKiBtYXRjaGluZyBzdHJpbmcga2V5LgorICAgICAqIAorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIGJlIG1hdGNoZWQgd2l0aCBwcmVmaXhlcy4KKyAgICAgKiBAcmV0dXJuIFRoZSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBsb25nZXQgcHJlZml4IG1hdGNoaW5nCisgICAgICogbWF0Y2hpbmcga2V5LCBvciBudWxsIGlmIG5vIG1hdGNoaW5nIGVudHJ5IGlzIGZvdW5kLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KFN0cmluZyB0ZXh0KSB7CisgICAgICAgIHJldHVybiBnZXQocm9vdCwgdGV4dCwgMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9uZ2VzdCBwcmVmaXgKKyAgICAgKiBtYXRjaGluZyBzdHJpbmcga2V5IHN0YXJ0aW5nIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogCisgICAgICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gYmUgbWF0Y2hlZCB3aXRoIHByZWZpeGVzLgorICAgICAqIEBwYXJhbSBzdGFydCBUaGUgc3RhcnQgaW5kZXggb2Ygb2YgdGhlIHRleHQKKyAgICAgKiBAcmV0dXJuIFRoZSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBsb25nZXQgcHJlZml4IG1hdGNoaW5nCisgICAgICogbWF0Y2hpbmcga2V5LCBvciBudWxsIGlmIG5vIG1hdGNoaW5nIGVudHJ5IGlzIGZvdW5kLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQpIHsKKyAgICAgICAgcmV0dXJuIGdldChyb290LCB0ZXh0LCBzdGFydCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9uZ2V0IHByZWZpeAorICAgICAqIG1hdGNoaW5nIHN0cmluZyBrZXkgdW5kZXIgdGhlIHNwZWNpZmllZCBub2RlLgorICAgICAqIAorICAgICAqIEBwYXJhbSBub2RlIFRoZSBjaGFyYWN0ZXIgbm9kZSBpbiB0aGlzIHRyaWUuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gYmUgbWF0Y2hlZCB3aXRoIHByZWZpeGVzLgorICAgICAqIEBwYXJhbSBpbmRleCBUaGUgY3VycmVudCBpbmRleCB3aXRoaW4gdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9uZ2VzdCBwcmVmaXgKKyAgICAgKiBtYXRjaCB1bmRlciB0aGUgbm9kZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN5bmNocm9uaXplZCBPYmplY3QgZ2V0KENoYXJhY3Rlck5vZGUgbm9kZSwgU3RyaW5nIHRleHQsIGludCBpbmRleCkgeworICAgICAgICBPYmplY3Qgb2JqID0gbm9kZS5nZXRPYmplY3QoKTsKKyAgICAgICAgaWYgKGluZGV4IDwgdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgTGlzdCBjaGlsZE5vZGVzID0gbm9kZS5nZXRDaGlsZE5vZGVzKCk7CisgICAgICAgICAgICBpZiAoY2hpbGROb2RlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iajsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBjaCA9IFVURjE2LmNoYXJBdCh0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICBpbnQgY2hMZW4gPSBVVEYxNi5nZXRDaGFyQ291bnQoY2gpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGlsZE5vZGVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgQ2hhcmFjdGVyTm9kZSBjaGlsZCA9IChDaGFyYWN0ZXJOb2RlKWNoaWxkTm9kZXMuZ2V0KGkpOworICAgICAgICAgICAgICAgIGlmIChjb21wYXJlKGNoLCBjaGlsZC5nZXRDaGFyYWN0ZXIoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHRtcCA9IGdldChjaGlsZCwgdGV4dCwgaW5kZXggKyBjaExlbik7CisgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb2JqID0gdG1wOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2JqOworICAgIH0KKworICAgIC8qKgorICAgICAqIEEgcHJpdmF0ZSBtZXRob2QgdXNlZCBmb3IgY29tcGFyaW5nIHR3byBjaGFyYWN0ZXJzLgorICAgICAqIAorICAgICAqIEBwYXJhbSBjaDEgVGhlIGZpcnN0IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gY2gyIFRoZSBzZWNvbmQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG1hdGNoZXMgdGhlIHNlY29uZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY29tcGFyZShpbnQgY2gxLCBpbnQgY2gyKSB7CisgICAgICAgIGlmIChjaDEgPT0gY2gyKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChpZ25vcmVDYXNlKSB7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjaDEpID09IFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UoY2gyKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShjaDEpID09IFVDaGFyYWN0ZXIudG9VcHBlckNhc2UoY2gyKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBUaGUgcm9vdCBub2RlIG9mIHRoaXMgdHJpZQorICAgIHByaXZhdGUgQ2hhcmFjdGVyTm9kZSByb290ID0gbmV3IENoYXJhY3Rlck5vZGUoMCk7CisKKyAgICAvLyBDaGFyYWN0ZXIgbWF0Y2hpbmcgb3B0aW9uCisgICAgYm9vbGVhbiBpZ25vcmVDYXNlOworCisgICAgLyoqCisgICAgICogSW5uZXIgY2xhc3MgcmVwcmVzZW50aW5nIGEgY2hhcmFjdGVyIG5vZGUgaW4gdGhlIHRyaWUuCisgICAgICovCisgICAgcHJpdmF0ZSBjbGFzcyBDaGFyYWN0ZXJOb2RlIHsKKyAgICAgICAgaW50IGNoYXJhY3RlcjsKKyAgICAgICAgTGlzdCBjaGlsZHJlbjsKKyAgICAgICAgT2JqZWN0IG9iajsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0cyBhIG5vZGUgZm9yIHRoZSBjaGFyYWN0ZXIuCisgICAgICAgICAqIAorICAgICAgICAgKiBAcGFyYW0gY2ggVGhlIGNoYXJhY3RlciBhc3NvY2lhdGVkIHdpdGggdGhpcyBub2RlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIENoYXJhY3Rlck5vZGUoaW50IGNoKSB7CisgICAgICAgICAgICBjaGFyYWN0ZXIgPSBjaDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbm9kZS4KKyAgICAgICAgICogCisgICAgICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlcgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRDaGFyYWN0ZXIoKSB7CisgICAgICAgICAgICByZXR1cm4gY2hhcmFjdGVyOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldHMgdGhlIG9iamVjdCB0byB0aGUgbm9kZS4gIE9ubHkgYSBsZWFmIG5vZGUgaGFzCisgICAgICAgICAqIHRoZSByZWZlcmVuY2Ugb2YgYW4gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIGtleS4KKyAgICAgICAgICogCisgICAgICAgICAqIEBwYXJhbSBvYmogVGhlIG9iamVjdCBzZXQgaW4gdGhlIGxlYWYgbm9kZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldE9iamVjdChPYmplY3Qgb2JqKSB7CisgICAgICAgICAgICB0aGlzLm9iaiA9IG9iajsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXRzIHRoZSBvYmplY3QgYXNzb2NpYXRlZCB0aGUgbGVhZiBub2RlLgorICAgICAgICAgKiAKKyAgICAgICAgICogQHJldHVybiBUaGUgb2JqZWN0LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIE9iamVjdCBnZXRPYmplY3QoKSB7CisgICAgICAgICAgICByZXR1cm4gb2JqOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkZHMgYSBjaGlsZCBub2RlIGZvciB0aGUgY2hhcmFjZXIgdW5kZXIgdGhpcyBjaGFyYWN0ZXIKKyAgICAgICAgICogbm9kZSBpbiB0aGUgdHJpZS4gIFdoZW4gdGhlIG1hdGNoaW5nIGNoaWxkIG5vZGUgYWxyZWFkeQorICAgICAgICAgKiBleGlzdHMsIHRoZSByZWZlcmVuY2Ugb2YgdGhlIGV4aXN0aW5nIGNoaWxkIG5vZGUgaXMKKyAgICAgICAgICogcmV0dXJuZWQuCisgICAgICAgICAqIAorICAgICAgICAgKiBAcGFyYW0gY2ggVGhlIGNoYXJhY3RlciBhc3NvY2lhdGVkIHdpdGggYSBjaGlsZCBub2RlLgorICAgICAgICAgKiBAcmV0dXJuIFRoZSBjaGlsZCBub2RlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIENoYXJhY3Rlck5vZGUgYWRkQ2hpbGROb2RlKGludCBjaCkgeworICAgICAgICAgICAgaWYgKGNoaWxkcmVuID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBjaGlsZHJlbiA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgICAgICAgICBDaGFyYWN0ZXJOb2RlIG5ld05vZGUgPSBuZXcgQ2hhcmFjdGVyTm9kZShjaCk7CisgICAgICAgICAgICAgICAgY2hpbGRyZW4uYWRkKG5ld05vZGUpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXdOb2RlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ2hhcmFjdGVyTm9kZSBub2RlID0gbnVsbDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hpbGRyZW4uc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBDaGFyYWN0ZXJOb2RlIGN1ciA9IChDaGFyYWN0ZXJOb2RlKWNoaWxkcmVuLmdldChpKTsKKyAgICAgICAgICAgICAgICBpZiAoY29tcGFyZShjaCwgY3VyLmdldENoYXJhY3RlcigpKSkgeworICAgICAgICAgICAgICAgICAgICBub2RlID0gY3VyOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobm9kZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgbm9kZSA9IG5ldyBDaGFyYWN0ZXJOb2RlKGNoKTsKKyAgICAgICAgICAgICAgICBjaGlsZHJlbi5hZGQobm9kZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbm9kZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBHZXRzIHRoZSBsaXN0IG9mIGNoaWxkIG5vZGVzIHVuZGVyIHRoaXMgbm9kZS4KKyAgICAgICAgICogCisgICAgICAgICAqIEByZXR1cm4gVGhlIGxpc3Qgb2YgY2hpbGQgbm9kZXMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgTGlzdCBnZXRDaGlsZE5vZGVzKCkgeworICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVGltZVpvbmVBZGFwdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9UaW1lWm9uZUFkYXB0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWQwYjFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVGltZVpvbmVBZGFwdGVyLmphdmEKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IE9jdG9iZXIgMiAyMDAzCisqIFNpbmNlOiBJQ1UgMi44CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKKy8qKgorICogPGNvZGU+VGltZVpvbmVBZGFwdGVyPC9jb2RlPiB3cmFwcyBhIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUKKyAqIHN1YmNsYXNzIHRoYXQgaXMgTk9UIGEgSkRLVGltZVpvbmUsIHRoYXQgaXMsIHRoYXQgZG9lcyBub3QgaXRzZWxmCisgKiB3cmFwIGEgamF2YS51dGlsLlRpbWVab25lLiAgSXQgaW5oZXJpdHMgZnJvbSBqYXZhLnV0aWwuVGltZVpvbmUuCisgKiBXaXRob3V0IHRoaXMgY2xhc3MsIHdlIHdvdWxkIG5lZWQgdG8gJ3BvcnQnIGphdmEudXRpbC5EYXRlIHRvCisgKiBjb20uaWJtLmljdS51dGlsIGFzIHdlbGwsIHNvIHRoYXQgRGF0ZSBjb3VsZCBpbnRlcm9wZXJhdGUgcHJvcGVybHkKKyAqIHdpdGggdGhlIGNvbS5pYm0uaWN1LnV0aWwgVGltZVpvbmUgYW5kIENhbGVuZGFyIGNsYXNzZXMuICBXaXRoIHRoaXMKKyAqIGNsYXNzLCB3ZSBjYW4gdXNlIGphdmEudXRpbC5EYXRlIHRvZ2V0aGVyIHdpdGggY29tLmlibS5pY3UudXRpbAorICogY2xhc3Nlcy4KKyAqCisgKiBUaGUgY29tcGxlbWVudCBvZiB0aGlzIGlzIEpES1RpbWVab25lLCB3aGljaCBtYWtlcyBhCisgKiBqYXZhLnV0aWwuVGltZVpvbmUgbG9vayBsaWtlIGEgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZS4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LmltcGwuSkRLVGltZVpvbmUKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZSNzZXREZWZhdWx0CisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc2luY2UgSUNVIDIuOAorICovCitwdWJsaWMgY2xhc3MgVGltZVpvbmVBZGFwdGVyIGV4dGVuZHMgamF2YS51dGlsLlRpbWVab25lIHsKKyAKKyAgICAvLyBHZW5lcmF0ZWQgYnkgc2VyaWFsdmVyIGZyb20gSkRLIDEuNC4xXzAxCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC0yMDQwMDcyMjE4ODIwMDE4NTU3TDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgY29udGFpbmVkIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUgb2JqZWN0LiAgTXVzdCBub3QgYmUgbnVsbC4KKyAgICAgKiBXZSBkZWxlZ2F0ZSBhbGwgbWV0aG9kcyB0byB0aGlzIG9iamVjdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFRpbWVab25lIHpvbmU7CisgICAgCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBqYXZhLnV0aWwuVGltZVpvbmUsIHdyYXAgaXQgaW4gdGhlIGFwcHJvcHJpYXRlIGFkYXB0ZXIKKyAgICAgKiBzdWJjbGFzcyBvZiBjb20uaWJtLmljdS51dGlsLlRpbWVab25lIGFuZCByZXR1cm4gdGhlIGFkYXB0ZXIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBqYXZhLnV0aWwuVGltZVpvbmUgd3JhcChjb20uaWJtLmljdS51dGlsLlRpbWVab25lIHR6KSB7CisgICAgICAgIHJldHVybiBuZXcgVGltZVpvbmVBZGFwdGVyKHR6KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGphdmEudXRpbC5UaW1lWm9uZSB3cmFwcGVkIGJ5IHRoaXMgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBjb20uaWJtLmljdS51dGlsLlRpbWVab25lIHVud3JhcCgpIHsKKyAgICAgICAgcmV0dXJuIHpvbmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiBhZGFwdGVyIGZvciBhIGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmUgb2JqZWN0LgorICAgICAqIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBUaW1lWm9uZUFkYXB0ZXIoVGltZVpvbmUgem9uZSkgeworICAgICAgICB0aGlzLnpvbmUgPSB6b25lOworICAgICAgICBzdXBlci5zZXRJRCh6b25lLmdldElEKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRpbWVab25lIEFQSTsgY2FsbHMgdGhyb3VnaCB0byB3cmFwcGVkIHRpbWUgem9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJRChTdHJpbmcgSUQpIHsKKyAgICAgICAgc3VwZXIuc2V0SUQoSUQpOworICAgICAgICB6b25lLnNldElEKElEKTsKKyAgICB9ICAgIAorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc1NhbWVSdWxlcyhqYXZhLnV0aWwuVGltZVpvbmUgb3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIG90aGVyIGluc3RhbmNlb2YgVGltZVpvbmVBZGFwdGVyICYmCisgICAgICAgICAgICB6b25lLmhhc1NhbWVSdWxlcygoKFRpbWVab25lQWRhcHRlcilvdGhlcikuem9uZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0T2Zmc2V0KGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXksIGludCBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbGxpcykgeworICAgICAgICByZXR1cm4gem9uZS5nZXRPZmZzZXQoZXJhLCB5ZWFyLCBtb250aCwgZGF5LCBkYXlPZldlZWssIG1pbGxpcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGltZVpvbmUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgdGltZSB6b25lLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UmF3T2Zmc2V0KCkgeworICAgICAgICByZXR1cm4gem9uZS5nZXRSYXdPZmZzZXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UmF3T2Zmc2V0KGludCBvZmZzZXRNaWxsaXMpIHsKKyAgICAgICAgem9uZS5zZXRSYXdPZmZzZXQob2Zmc2V0TWlsbGlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gdXNlRGF5bGlnaHRUaW1lKCkgeworICAgICAgICByZXR1cm4gem9uZS51c2VEYXlsaWdodFRpbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaW1lWm9uZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCB0aW1lIHpvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaW5EYXlsaWdodFRpbWUoRGF0ZSBkYXRlKSB7CisgICAgICAgIHJldHVybiB6b25lLmluRGF5bGlnaHRUaW1lKGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJvaWxlcnBsYXRlIEFQSTsgY2FsbHMgdGhyb3VnaCB0byB3cmFwcGVkIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IFRpbWVab25lQWRhcHRlcigoVGltZVpvbmUpem9uZS5jbG9uZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCb2lsZXJwbGF0ZSBBUEk7IGNhbGxzIHRocm91Z2ggdG8gd3JhcHBlZCBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiB6b25lLmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQm9pbGVycGxhdGUgQVBJOyBjYWxscyB0aHJvdWdoIHRvIHdyYXBwZWQgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBUaW1lWm9uZUFkYXB0ZXIpIHsKKyAgICAgICAgICAgIG9iaiA9ICgoVGltZVpvbmVBZGFwdGVyKSBvYmopLnpvbmU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHpvbmUuZXF1YWxzKG9iaik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuICBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gIlRpbWVab25lQWRhcHRlcjogIiArIHpvbmUudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWJmZjBmNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RyaWUuamF2YQpAQCAtMCwwICsxLDQ5MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CisKKy8qKgorICogPHA+QSB0cmllIGlzIGEga2luZCBvZiBjb21wcmVzc2VkLCBzZXJpYWxpemFibGUgdGFibGUgb2YgdmFsdWVzIAorICogYXNzb2NpYXRlZCB3aXRoIFVuaWNvZGUgY29kZSBwb2ludHMgKDAuLjB4MTBmZmZmKS48L3A+CisgKiA8cD5UaGlzIGNsYXNzIGRlZmluZXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIHRyaWUgYW5kIHByb3ZpZGVzIG1ldGhvZHMgCisgKiB0byA8Yj5yZXRyaWV2ZSB0aGUgb2Zmc2V0cyB0byB0aGUgYWN0dWFsIGRhdGE8L2I+LjwvcD4KKyAqIDxwPkRhdGEgd2lsbCBiZSB0aGUgZm9ybSBvZiBhbiBhcnJheSBvZiBiYXNpYyB0eXBlcywgY2hhciBvciBpbnQuPC9wPgorICogPHA+VGhlIGFjdHVhbCBkYXRhIGZvcm1hdCB3aWxsIGhhdmUgdG8gYmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyIGluIHRoZQorICogaW5uZXIgc3RhdGljIGludGVyZmFjZSBjb20uaWJtLmljdS5pbXBsLlRyaWUuRGF0YU1hbmlwdWxhdGUuPC9wPgorICogPHA+VGhpcyB0cmllIGltcGxlbWVudGF0aW9uIGlzIG9wdGltaXplZCBmb3IgZ2V0dGluZyBvZmZzZXQgd2hpbGUgd2Fsa2luZworICogZm9yd2FyZCB0aHJvdWdoIGEgVVRGLTE2IHN0cmluZy4KKyAqIFRoZXJlZm9yZSwgdGhlIHNpbXBsZXN0IGFuZCBmYXN0ZXN0IGFjY2VzcyBtYWNyb3MgYXJlIHRoZQorICogZnJvbUxlYWQoKSBhbmQgZnJvbU9mZnNldFRyYWlsKCkgbWV0aG9kcy4KKyAqIFRoZSBmcm9tQk1QKCkgbWV0aG9kIGFyZSBhIGxpdHRsZSBtb3JlIGNvbXBsaWNhdGVkOyB0aGV5IGdldCBvZmZzZXRzIGV2ZW4KKyAqIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlcG9pbnRzLCB3aGlsZSB0aGUgZnJvbUxlYWQoKSBtZXRob2QgZ2V0IHNwZWNpYWwKKyAqICJmb2xkZWQiIG9mZnNldHMgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgdW5pdHMgaWYgdGhlcmUgaXMgcmVsZXZhbnQgZGF0YQorICogYXNzb2NpYXRlZCB3aXRoIHRoZW0uCisgKiBGcm9tIHN1Y2ggYSBmb2xkZWQgb2Zmc2V0cywgYW4gb2Zmc2V0IG5lZWRzIHRvIGJlIGV4dHJhY3RlZCB0byBzdXBwbHkKKyAqIHRvIHRoZSBmcm9tT2Zmc2V0VHJhaWwoKSBtZXRob2RzLgorICogVG8gaGFuZGxlIHN1Y2ggc3VwcGxlbWVudGFyeSBjb2RlcG9pbnRzLCBzb21lIG9mZnNldCBpbmZvcm1hdGlvbiBhcmUga2VwdAorICogaW4gdGhlIGRhdGEuPC9wPgorICogPHA+TWV0aG9kcyBpbiBjb20uaWJtLmljdS5pbXBsLlRyaWUuRGF0YU1hbmlwdWxhdGUgYXJlIGNhbGxlZCB0byByZXRyaWV2ZSAKKyAqIHRoYXQgb2Zmc2V0IGZyb20gdGhlIGZvbGRlZCB2YWx1ZSBmb3IgdGhlIGxlYWQgc3Vycm9nYXRlIHVuaXQuPC9wPgorICogPHA+Rm9yIGV4YW1wbGVzIG9mIHVzZSwgc2VlIGNvbS5pYm0uaWN1LmltcGwuQ2hhclRyaWUgb3IgCisgKiBjb20uaWJtLmljdS5pbXBsLkludFRyaWUuPC9wPgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzZWUgY29tLmlibS5pY3UuaW1wbC5DaGFyVHJpZQorICogQHNlZSBjb20uaWJtLmljdS5pbXBsLkludFRyaWUKKyAqIEBzaW5jZSByZWxlYXNlIDIuMSwgSmFuIDAxIDIwMDIKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIFRyaWUKK3sKKyAgICAvLyBwdWJsaWMgY2xhc3MgZGVjbGFyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogQ2hhcmFjdGVyIGRhdGEgaW4gY29tLmlibS5pbXBsLlRyaWUgaGF2ZSBkaWZmZXJlbnQgdXNlci1zcGVjaWZpZWQgZm9ybWF0CisgICAgKiBmb3IgZGlmZmVyZW50IHB1cnBvc2VzLgorICAgICogVGhpcyBpbnRlcmZhY2Ugc3BlY2lmaWVzIG1ldGhvZHMgdG8gYmUgaW1wbGVtZW50ZWQgaW4gb3JkZXIgZm9yCisgICAgKiBjb20uaWJtLmltcGwuVHJpZSwgdG8gc3Vycm9nYXRlIG9mZnNldCBpbmZvcm1hdGlvbiBlbmNhcHN1bGF0ZWQgd2l0aGluIAorICAgICogdGhlIGRhdGEuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBEYXRhTWFuaXB1bGF0ZQorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICogQ2FsbGVkIGJ5IGNvbS5pYm0uaWN1LmltcGwuVHJpZSB0byBleHRyYWN0IGZyb20gYSBsZWFkIHN1cnJvZ2F0ZSdzIAorICAgICAgICAqIGRhdGEKKyAgICAgICAgKiB0aGUgaW5kZXggYXJyYXkgb2Zmc2V0IG9mIHRoZSBpbmRleGVzIGZvciB0aGF0IGxlYWQgc3Vycm9nYXRlLgorICAgICAgICAqIEBwYXJhbSB2YWx1ZSBkYXRhIHZhbHVlIGZvciBhIHN1cnJvZ2F0ZSBmcm9tIHRoZSB0cmllLCBpbmNsdWRpbmcgdGhlCisgICAgICAgICogICAgICAgIGZvbGRpbmcgb2Zmc2V0CisgICAgICAgICogQHJldHVybiBkYXRhIG9mZnNldCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZQorICAgICAgICAqIEBkcmFmdCAyLjEKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCB2YWx1ZSk7IAorICAgIH0KKworICAgIC8vIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBEZWZhdWx0R2V0Rm9sZGluZ09mZnNldCBpbXBsZW1lbnRzIERhdGFNYW5pcHVsYXRlIHsKKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOyAKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIHRyaWUgaGFzIGEgbGluZWFyIGxhdGluIDEgYXJyYXkKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyB0cmllIGhhcyBhIGxpbmVhciBsYXRpbiAxIGFycmF5LCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc0xhdGluMUxpbmVhcigpCisgICAgeworICAgICAgICByZXR1cm4gbV9pc0xhdGluMUxpbmVhcl87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgYXJndW1lbnQgVHJpZSBoYXMgdGhlIHNhbWUgZGF0YSBhcyB0aGlzIFRyaWUuCisgICAgICogQXR0cmlidXRlcyBhcmUgY2hlY2tlZCBidXQgbm90IHRoZSBpbmRleCBkYXRhLgorICAgICAqIEBwYXJhbSBvdGhlciBUcmllIHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBhcmd1bWVudCBUcmllIGhhcyB0aGUgc2FtZSBkYXRhIGFzIHRoaXMgVHJpZSwgZmFsc2UKKyAgICAgKiAgICAgICAgIG90aGVyd2lzZQorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSAKKyAgICB7CisgICAgICAgIGlmIChvdGhlciA9PSB0aGlzKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIShvdGhlciBpbnN0YW5jZW9mIFRyaWUpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgVHJpZSBvdGhlcnRyaWUgPSAoVHJpZSlvdGhlcjsKKyAgICAgICAgcmV0dXJuIG1faXNMYXRpbjFMaW5lYXJfID09IG90aGVydHJpZS5tX2lzTGF0aW4xTGluZWFyXworICAgICAgICAgICAgICAgJiYgbV9vcHRpb25zXyA9PSBvdGhlcnRyaWUubV9vcHRpb25zXworICAgICAgICAgICAgICAgJiYgbV9kYXRhTGVuZ3RoXyA9PSBvdGhlcnRyaWUubV9kYXRhTGVuZ3RoXworICAgICAgICAgICAgICAgJiYgQXJyYXlzLmVxdWFscyhtX2luZGV4Xywgb3RoZXJ0cmllLm1faW5kZXhfKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgc2VyaWFsaXplZCBkYXRhIGZpbGUgc2l6ZSBvZiB0aGUgVHJpZS4gVGhpcyBpcyB1c2VkIGR1cmluZyAKKyAgICAgKiB0cmllIGRhdGEgcmVhZGluZyBmb3Igc2l6ZSBjaGVja2luZyBwdXJwb3Nlcy4gCisgICAgICogQHJldHVybiBzaXplIHNpemUgb2Ygc2VyaWFsaXplZCB0cmllIGRhdGEgZmlsZSBpbiB0ZXJtcyBvZiB0aGUgbnVtYmVyCisgICAgICogICAgICAgICAgICAgIG9mIGJ5dGVzCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTZXJpYWxpemVkRGF0YVNpemUoKQorICAgIHsKKyAgICAgICAgLy8gaW5jbHVkZXMgc2lnbmF0dXJlLCBvcHRpb24sIGRhdGFvZmZzZXQgYW5kIGRhdGFsZW5ndGggb3V0cHV0CisgICAgICAgIGludCByZXN1bHQgPSAoNCA8PCAyKTsKKyAgICAgICAgcmVzdWx0ICs9IChtX2RhdGFPZmZzZXRfIDw8IDEpOworICAgICAgICBpZiAoaXNDaGFyVHJpZSgpKSB7CisgICAgICAgICAgICByZXN1bHQgKz0gKG1fZGF0YUxlbmd0aF8gPDwgMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoaXNJbnRUcmllKCkpIHsKKyAgICAgICAgICAgIHJlc3VsdCArPSAobV9kYXRhTGVuZ3RoXyA8PCAyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIFRyaWUgY29uc3RydWN0b3IgZm9yIENoYXJUcmllIHVzZS4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBJQ1UgZGF0YSBmaWxlIGlucHV0IHN0cmVhbSB3aGljaCBjb250YWlucyB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgICAgICAgdHJpZQorICAgICogQHBhcmFtIGRhdGFNYW5pcHVsYXRlIG9iamVjdCBjb250YWluaW5nIHRoZSBpbmZvcm1hdGlvbiB0byBwYXJzZSB0aGUgCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgdHJpZSBkYXRhCisgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGlucHV0IHN0cmVhbSBkb2VzIG5vdCBoYXZlIHRoZQorICAgICogICAgICAgICAgICAgICAgICAgICAgICByaWdodCBoZWFkZXIuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgVHJpZShJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSwgCisgICAgICAgICAgICAgICAgICAgRGF0YU1hbmlwdWxhdGUgIGRhdGFNYW5pcHVsYXRlKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIERhdGFJbnB1dFN0cmVhbSBpbnB1dCA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICAvLyBNYWdpYyBudW1iZXIgdG8gYXV0aGVudGljYXRlIHRoZSBkYXRhLgorICAgICAgICBpbnQgc2lnbmF0dXJlID0gaW5wdXQucmVhZEludCgpOworICAgICAgICBtX29wdGlvbnNfICAgID0gaW5wdXQucmVhZEludCgpOworICAgICAgICAKKyAgICAgICAgaWYgKCFjaGVja0hlYWRlcihzaWduYXR1cmUpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJQ1UgZGF0YSBmaWxlIGVycm9yOiBUcmllIGhlYWRlciBhdXRoZW50aWNhdGlvbiBmYWlsZWQsIHBsZWFzZSBjaGVjayBpZiB5b3UgaGF2ZSB0aGUgbW9zdCB1cGRhdGVkIElDVSBkYXRhIGZpbGUiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmKGRhdGFNYW5pcHVsYXRlICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1fZGF0YU1hbmlwdWxhdGVfID0gZGF0YU1hbmlwdWxhdGU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtX2RhdGFNYW5pcHVsYXRlXyA9IG5ldyBEZWZhdWx0R2V0Rm9sZGluZ09mZnNldCgpOworICAgICAgICB9CisgICAgICAgIG1faXNMYXRpbjFMaW5lYXJfID0gKG1fb3B0aW9uc18gJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIRUFERVJfT1BUSU9OU19MQVRJTjFfSVNfTElORUFSX01BU0tfKSAhPSAwOworICAgICAgICBtX2RhdGFPZmZzZXRfICAgICA9IGlucHV0LnJlYWRJbnQoKTsKKyAgICAgICAgbV9kYXRhTGVuZ3RoXyAgICAgPSBpbnB1dC5yZWFkSW50KCk7CisgICAgICAgIHVuc2VyaWFsaXplKGlucHV0U3RyZWFtKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBUcmllIGNvbnN0cnVjdG9yCisgICAgKiBAcGFyYW0gaW5kZXggYXJyYXkgdG8gYmUgdXNlZCBmb3IgaW5kZXgKKyAgICAqIEBwYXJhbSBvcHRpb25zIHVzZWQgYnkgdGhlIHRyaWUKKyAgICAqIEBwYXJhbSBkYXRhTWFuaXB1bGF0ZSBvYmplY3QgY29udGFpbmluZyB0aGUgaW5mb3JtYXRpb24gdG8gcGFyc2UgdGhlIAorICAgICogICAgICAgICAgICAgICAgICAgICAgIHRyaWUgZGF0YQorICAgICogQGRyYWZ0IDIuMgorICAgICovCisgICAgcHJvdGVjdGVkIFRyaWUoY2hhciBpbmRleFtdLCBpbnQgb3B0aW9ucywgRGF0YU1hbmlwdWxhdGUgZGF0YU1hbmlwdWxhdGUpCisgICAgeworICAgICAgICBtX29wdGlvbnNfID0gb3B0aW9uczsKKyAgICAgICAgaWYoZGF0YU1hbmlwdWxhdGUgIT0gbnVsbCkgeworICAgICAgICAgICAgbV9kYXRhTWFuaXB1bGF0ZV8gPSBkYXRhTWFuaXB1bGF0ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1fZGF0YU1hbmlwdWxhdGVfID0gbmV3IERlZmF1bHRHZXRGb2xkaW5nT2Zmc2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgbV9pc0xhdGluMUxpbmVhcl8gPSAobV9vcHRpb25zXyAmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhFQURFUl9PUFRJT05TX0xBVElOMV9JU19MSU5FQVJfTUFTS18pICE9IDA7CisgICAgICAgIG1faW5kZXhfID0gaW5kZXg7CisgICAgICAgIG1fZGF0YU9mZnNldF8gPSBtX2luZGV4Xy5sZW5ndGg7CisgICAgfQorCisKKyAgICAvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBMZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cycgaW5kZXggZGlzcGxhY2VtZW50IGluIHRoZSBpbmRleCBhcnJheS4KKyAgICAqIDB4MTAwMDAtMHhkODAwPTB4MjgwMAorICAgICogMHgyODAwID4+IElOREVYX1NUQUdFXzFfU0hJRlRfCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBMRUFEX0lOREVYX09GRlNFVF8gPSAweDI4MDAgPj4gNTsKKyAgICAvKioKKyAgICAqIFNoaWZ0IHNpemUgZm9yIHNoaWZ0aW5nIHJpZ2h0IHRoZSBpbnB1dCBpbmRleC4gMS4uOQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfU1RBR0VfMV9TSElGVF8gPSA1OworICAgIC8qKgorICAgICogU2hpZnQgc2l6ZSBmb3Igc2hpZnRpbmcgbGVmdCB0aGUgaW5kZXggYXJyYXkgdmFsdWVzLgorICAgICogSW5jcmVhc2VzIHBvc3NpYmxlIGRhdGEgc2l6ZSB3aXRoIDE2LWJpdCBpbmRleCB2YWx1ZXMgYXQgdGhlIGNvc3QKKyAgICAqIG9mIGNvbXBhY3RhYmlsaXR5LgorICAgICogVGhpcyByZXF1aXJlcyBibG9ja3Mgb2Ygc3RhZ2UgMiBkYXRhIHRvIGJlIGFsaWduZWQgYnkKKyAgICAqIERBVEFfR1JBTlVMQVJJVFkuCisgICAgKiAwLi5JTkRFWF9TVEFHRV8xX1NISUZUCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBJTkRFWF9TVEFHRV8yX1NISUZUXyA9IDI7CisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIGRhdGEgdmFsdWVzIGluIGEgc3RhZ2UgMiAoZGF0YSBhcnJheSkgYmxvY2suCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgREFUQV9CTE9DS19MRU5HVEg9MTw8SU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgLyoqCisgICAgKiBNYXNrIGZvciBnZXR0aW5nIHRoZSBsb3dlciBiaXRzIGZyb20gdGhlIGlucHV0IGluZGV4LgorICAgICogREFUQV9CTE9DS19MRU5HVEggLSAxLgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfU1RBR0VfM19NQVNLXyA9IERBVEFfQkxPQ0tfTEVOR1RIIC0gMTsKKyAgICAvKiogTnVtYmVyIG9mIGJpdHMgb2YgYSB0cmFpbCBzdXJyb2dhdGUgdGhhdCBhcmUgdXNlZCBpbiBpbmRleCB0YWJsZSBsb29rdXBzLiAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFNVUlJPR0FURV9CTE9DS19CSVRTPTEwLUlOREVYX1NUQUdFXzFfU0hJRlRfOworICAgIC8qKgorICAgICAqIE51bWJlciBvZiBpbmRleCAoc3RhZ2UgMSkgZW50cmllcyBwZXIgbGVhZCBzdXJyb2dhdGUuCisgICAgICogU2FtZSBhcyBudW1iZXIgb2YgaW5kZXggZW50cmllcyBmb3IgMTAyNCB0cmFpbCBzdXJyb2dhdGVzLAorICAgICAqID09MHg0MDA+PklOREVYX1NUQUdFXzFfU0hJRlRfCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX0JMT0NLX0NPVU5UPSgxPDxTVVJST0dBVEVfQkxPQ0tfQklUUyk7CisgICAgLyoqIExlbmd0aCBvZiB0aGUgQk1QIHBvcnRpb24gb2YgdGhlIGluZGV4IChzdGFnZSAxKSBhcnJheS4gKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBCTVBfSU5ERVhfTEVOR1RIPTB4MTAwMDA+PklOREVYX1NUQUdFXzFfU0hJRlRfOworICAgIC8qKgorICAgICogU3Vycm9nYXRlIG1hc2sgdG8gdXNlIHdoZW4gc2hpZnRpbmcgb2Zmc2V0IHRvIHJldHJpZXZlIHN1cHBsZW1lbnRhcnkKKyAgICAqIHZhbHVlcworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX01BU0tfID0gMHgzRkY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogSW5kZXggb3IgVVRGMTYgY2hhcmFjdGVycworICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGNoYXIgbV9pbmRleF9bXTsKKyAgICAvKioKKyAgICAqIEludGVybmFsIFRyaWVWYWx1ZSB3aGljaCBoYW5kbGVzIHRoZSBwYXJzaW5nIG9mIHRoZSBkYXRhIHZhbHVlLgorICAgICogVGhpcyBjbGFzcyBpcyB0byBiZSBpbXBsZW1lbnRlZCBieSB0aGUgdXNlcgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIERhdGFNYW5pcHVsYXRlIG1fZGF0YU1hbmlwdWxhdGVfOworICAgIC8qKgorICAgICogU3RhcnQgaW5kZXggb2YgdGhlIGRhdGEgcG9ydGlvbiBvZiB0aGUgdHJpZS4gQ2hhclRyaWUgY29tYmluZXMgCisgICAgKiBpbmRleCBhbmQgZGF0YSBpbnRvIGEgY2hhciBhcnJheSwgc28gdGhpcyBpcyB1c2VkIHRvIGluZGljYXRlIHRoZSAKKyAgICAqIGluaXRpYWwgb2Zmc2V0IHRvIHRoZSBkYXRhIHBvcnRpb24uCisgICAgKiBOb3RlIHRoaXMgaW5kZXggYWx3YXlzIHBvaW50cyB0byB0aGUgaW5pdGlhbCB2YWx1ZS4KKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbV9kYXRhT2Zmc2V0XzsKKyAgICAvKioKKyAgICAqIExlbmd0aCBvZiB0aGUgZGF0YSBhcnJheSAKKyAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbV9kYXRhTGVuZ3RoXzsKKyAgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIHRoZSBkYXRhIHdoaWNoIHRoZSBzdXJyb2dhdGUgcGFpciBwb2ludHMgdG8uCisgICAgKiBAcGFyYW0gbGVhZCBsZWFkIHN1cnJvZ2F0ZQorICAgICogQHBhcmFtIHRyYWlsIHRyYWlsaW5nIHN1cnJvZ2F0ZQorICAgICogQHJldHVybiBvZmZzZXQgdG8gZGF0YQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IGludCBnZXRTdXJyb2dhdGVPZmZzZXQoY2hhciBsZWFkLCBjaGFyIHRyYWlsKTsKKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIHZhbHVlIGF0IHRoZSBhcmd1bWVudCBpbmRleAorICAgICogQHBhcmFtIGluZGV4IHZhbHVlIGF0IGluZGV4IHdpbGwgYmUgcmV0cmlldmVkCisgICAgKiBAcmV0dXJuIDMyIGJpdCB2YWx1ZSAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnQgZ2V0VmFsdWUoaW50IGluZGV4KTsKKworICAgIC8qKgorICAgICogR2V0cyB0aGUgZGVmYXVsdCBpbml0aWFsIHZhbHVlCisgICAgKiBAcmV0dXJuIDMyIGJpdCB2YWx1ZSAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnQgZ2V0SW5pdGlhbFZhbHVlKCk7CisgICAgCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBvZmZzZXQgdG8gdGhlIGRhdGEgd2hpY2ggdGhlIGluZGV4IGNoIGFmdGVyIHZhcmlhYmxlIG9mZnNldAorICAgICogcG9pbnRzIHRvLgorICAgICogTm90ZSBmb3IgbG9jYXRpbmcgYSBub24tc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgZGF0YSBvZmZzZXQsIGNhbGxpbmcKKyAgICAqIDxwPgorICAgICogZ2V0UmF3T2Zmc2V0KDAsIGNoKTsKKyAgICAqIDwvcD4KKyAgICAqIHdpbGwgZG8uIE90aGVyd2lzZSBpZiBpdCBpcyBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIGZvcm1lZCBieQorICAgICogc3Vycm9nYXRlcyBsZWFkIGFuZCB0cmFpbC4gVGhlbiB3ZSB3b3VsZCBoYXZlIHRvIGNhbGwgZ2V0UmF3T2Zmc2V0KCkKKyAgICAqIHdpdGggZ2V0Rm9sZGluZ0luZGV4T2Zmc2V0KCkuIFNlZSBnZXRTdXJyb2dhdGVPZmZzZXQoKS4KKyAgICAqIEBwYXJhbSBvZmZzZXQgaW5kZXggb2Zmc2V0IHdoaWNoIGNoIGlzIHRvIHN0YXJ0IGZyb20KKyAgICAqIEBwYXJhbSBjaCBpbmRleCB0byBiZSB1c2VkIGFmdGVyIG9mZnNldAorICAgICogQHJldHVybiBvZmZzZXQgdG8gdGhlIGRhdGEKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0UmF3T2Zmc2V0KGludCBvZmZzZXQsIGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4gKG1faW5kZXhfW29mZnNldCArIChjaCA+PiBJTkRFWF9TVEFHRV8xX1NISUZUXyldIAorICAgICAgICAgICAgICAgIDw8IElOREVYX1NUQUdFXzJfU0hJRlRfKSAKKyAgICAgICAgICAgICAgICArIChjaCAmIElOREVYX1NUQUdFXzNfTUFTS18pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIG9mZnNldCB0byBkYXRhIHdoaWNoIHRoZSBCTVAgY2hhcmFjdGVyIHBvaW50cyB0bworICAgICogVHJlYXRzIGEgbGVhZCBzdXJyb2dhdGUgYXMgYSBub3JtYWwgY29kZSBwb2ludC4KKyAgICAqIEBwYXJhbSBjaCBCTVAgY2hhcmFjdGVyCisgICAgKiBAcmV0dXJuIG9mZnNldCB0byBkYXRhCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldEJNUE9mZnNldChjaGFyIGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChjaCA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgCisgICAgICAgICAgICAgICAgJiYgY2ggPD0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFKSAKKyAgICAgICAgICAgICAgICA/IGdldFJhd09mZnNldChMRUFEX0lOREVYX09GRlNFVF8sIGNoKQorICAgICAgICAgICAgICAgIDogZ2V0UmF3T2Zmc2V0KDAsIGNoKTsgCisgICAgICAgICAgICAgICAgLy8gdXNpbmcgYSBnZXRSYXdPZmZzZXQoY2gpIG1ha2VzIG5vIGRpZmYKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIG9mZnNldCB0byB0aGUgZGF0YSB3aGljaCB0aGlzIGxlYWQgc3Vycm9nYXRlIGNoYXJhY3RlciBwb2ludHMKKyAgICAqIHRvLgorICAgICogRGF0YSBhdCB0aGUgcmV0dXJuZWQgb2Zmc2V0IG1heSBjb250YWluIGZvbGRpbmcgb2Zmc2V0IGluZm9ybWF0aW9uIGZvcgorICAgICogdGhlIG5leHQgdHJhaWxpbmcgc3Vycm9nYXRlIGNoYXJhY3Rlci4KKyAgICAqIEBwYXJhbSBjaCBsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gb2Zmc2V0IHRvIGRhdGEKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0TGVhZE9mZnNldChjaGFyIGNoKQorICAgIHsKKyAgICAgICByZXR1cm4gZ2V0UmF3T2Zmc2V0KDAsIGNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEludGVybmFsIHRyaWUgZ2V0dGVyIGZyb20gYSBjb2RlIHBvaW50LgorICAgICogQ291bGQgYmUgZmFzdGVyKD8pIGJ1dCBsb25nZXIgd2l0aAorICAgICogICBpZigoYzMyKTw9MHhkN2ZmKSB7IChyZXN1bHQpPV9UUklFX0dFVF9SQVcodHJpZSwgZGF0YSwgMCwgYzMyKTsgfQorICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIGRhdGEgd2hpY2ggdGhlIGNvZGVwb2ludCBwb2ludHMgdG8KKyAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQKKyAgICAqIEByZXR1cm4gb2Zmc2V0IHRvIGRhdGEKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0Q29kZVBvaW50T2Zmc2V0KGludCBjaCkKKyAgICB7CisgICAgICAgIC8vIGlmICgoY2ggPj4gMTYpID09IDApIHNsb3dlcgorICAgICAgICBpZiAoY2ggPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0gZWxzZSBpZiAoY2ggPCBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIC8vIGZhc3RwYXRoIGZvciB0aGUgcGFydCBvZiB0aGUgQk1QIGJlbG93IHN1cnJvZ2F0ZXMgKEQ4MDApIHdoZXJlIGdldFJhd09mZnNldCgpIHdvcmtzCisgICAgICAgICAgICByZXR1cm4gZ2V0UmF3T2Zmc2V0KDAsIChjaGFyKWNoKTsKKyAgICAgICAgfSBlbHNlIGlmIChjaCA8IFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICAvLyBCTVAgY29kZXBvaW50CisgICAgICAgICAgICByZXR1cm4gZ2V0Qk1QT2Zmc2V0KChjaGFyKWNoKTsgCisgICAgICAgIH0gZWxzZSBpZiAoY2ggPD0gVUNoYXJhY3Rlci5NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIC8vIGxvb2sgYXQgdGhlIGNvbnN0cnVjdGlvbiBvZiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgICAgIC8vIHRyYWlsIGZvcm1zIHRoZSBlbmRzIG9mIGl0LgorICAgICAgICAgICAgcmV0dXJuIGdldFN1cnJvZ2F0ZU9mZnNldChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShjaCAmIFNVUlJPR0FURV9NQVNLXykpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gcmV0dXJuIC0xIGlmIHRoZXJlIGlzIGFuIGVycm9yLCBpbiB0aGlzIGNhc2Ugd2UgcmV0dXJuIAorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiA8cD5QYXJzZXMgdGhlIGlucHV0c3RyZWFtIGFuZCBjcmVhdGVzIHRoZSB0cmllIGluZGV4IHdpdGggaXQuPC9wPgorICAgICogPHA+VGhpcyBpcyBvdmVyd3JpdHRlbiBieSB0aGUgY2hpbGQgY2xhc3Nlcy4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBpbnB1dCBzdHJlYW0gY29udGFpbmluZyB0aGUgdHJpZSBpbmZvcm1hdGlvbgorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBkYXRhIHJlYWRpbmcgZmFpbHMuCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCB1bnNlcmlhbGl6ZShJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAvL2luZGV4TGVuZ3RoIGlzIGEgbXVsdGlwbGUgb2YgMTAyNCA+PiBJTkRFWF9TVEFHRV8yX1NISUZUXworICAgICAgICBtX2luZGV4XyAgICAgICAgICAgICAgPSBuZXcgY2hhclttX2RhdGFPZmZzZXRfXTsKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGlucHV0ID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9kYXRhT2Zmc2V0XzsgaSArKykgeworICAgICAgICAgICAgIG1faW5kZXhfW2ldID0gaW5wdXQucmVhZENoYXIoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIGlzIGEgMzIgYml0IHRyaWUKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiBvcHRpb25zIHNwZWNpZmllcyB0aGlzIGlzIGEgMzIgYml0IHRyaWUKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBib29sZWFuIGlzSW50VHJpZSgpCisgICAgeworICAgICAgICByZXR1cm4gKG1fb3B0aW9uc18gJiBIRUFERVJfT1BUSU9OU19EQVRBX0lTXzMyX0JJVF8pICE9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgKiBEZXRlcm1pbmVzIGlmIHRoaXMgaXMgYSAxNiBiaXQgdHJpZQorICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgaXMgYSAxNiBiaXQgdHJpZQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGJvb2xlYW4gaXNDaGFyVHJpZSgpCisgICAgeworICAgICAgICByZXR1cm4gKG1fb3B0aW9uc18gJiBIRUFERVJfT1BUSU9OU19EQVRBX0lTXzMyX0JJVF8pID09IDA7CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogU2lnbmF0dXJlIGluZGV4CisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEVBREVSX1NJR05BVFVSRV9JTkRFWF8gPSAwOworICAgIC8qKgorICAgICogT3B0aW9ucyBpbmRleAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFQURFUl9PUFRJT05TX0lOREVYXyA9IDEgPDwgMTsKKyAgICAvKioKKyAgICAqIEluZGV4IGxlbmd0aCBpbmRleAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFQURFUl9JTkRFWF9MRU5HVEhfSU5ERVhfID0gMiA8PCAxOworICAgIC8qKgorICAgICogRGF0YSBsZW5ndGggaW5kZXgKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRUFERVJfREFUQV9MRU5HVEhfSU5ERVhfID0gMyA8PCAxOworICAgIC8qKgorICAgICogU2l6ZSBvZiBoZWFkZXIKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRUFERVJfTEVOR1RIXyA9IDQgPDwgMTsKKyAgICAvKioKKyAgICAqIExhdGluIDEgb3B0aW9uIG1hc2sKKyAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEhFQURFUl9PUFRJT05TX0xBVElOMV9JU19MSU5FQVJfTUFTS18gPSAweDIwMDsKKyAgICAvKioKKyAgICAqIENvbnN0YW50IG51bWJlciB0byBhdXRoZW50aWNhdGUgdGhlIGJ5dGUgYmxvY2sKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRUFERVJfU0lHTkFUVVJFXyA9IDB4NTQ3MjY5NjU7CisgICAgLyoqCisgICAgKiBIZWFkZXIgb3B0aW9uIGZvcm1hdHRpbmcKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRUFERVJfT1BUSU9OU19TSElGVF9NQVNLXyA9IDB4RjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEVBREVSX09QVElPTlNfSU5ERVhfU0hJRlRfID0gNDsKKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBIRUFERVJfT1BUSU9OU19EQVRBX0lTXzMyX0JJVF8gPSAweDEwMDsKKyAgICAKKyAgICAvKioKKyAgICAqIEZsYWcgaW5kaWNhdG9yIGZvciBMYXRpbiBxdWljayBhY2Nlc3MgZGF0YSBibG9jaworICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1faXNMYXRpbjFMaW5lYXJfOworICAgIAorICAgIC8qKgorICAgICogPHA+VHJpZSBvcHRpb25zIGZpZWxkLjwvcD4KKyAgICAqIDxwPm9wdGlvbnMgYml0IGZpZWxkOjxicj4KKyAgICAqIDkgIDEgPSBMYXRpbi0xIGRhdGEgaXMgc3RvcmVkIGxpbmVhcmx5IGF0IGRhdGEgKyBEQVRBX0JMT0NLX0xFTkdUSDxicj4KKyAgICAqIDggIDAgPSAxNi1iaXQgZGF0YSwgMT0zMi1iaXQgZGF0YTxicj4KKyAgICAqIDcuLjQgIElOREVYX1NUQUdFXzFfU0hJRlQgICAvLyAwLi5JTkRFWF9TVEFHRV8yX1NISUZUPGJyPgorICAgICogMy4uMCAgSU5ERVhfU1RBR0VfMl9TSElGVCAgIC8vIDEuLjk8YnI+CisgICAgKi8KKyAgICBwcml2YXRlIGludCBtX29wdGlvbnNfOworICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIEF1dGhlbnRpY2F0ZXMgcmF3IGRhdGEgaGVhZGVyLgorICAgICogQ2hlY2tpbmcgdGhlIGhlYWRlciBpbmZvcm1hdGlvbiwgc2lnbmF0dXJlIGFuZCBvcHRpb25zLgorICAgICogQHBhcmFtIHJhd2RhdGEgYXJyYXkgb2YgY2hhciBkYXRhIHRvIGJlIGNoZWNrZWQKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgaGVhZGVyIGlzIGF1dGhlbnRpY2F0ZWQgdmFsaWQKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja0hlYWRlcihpbnQgc2lnbmF0dXJlKQorICAgIHsKKyAgICAgICAgLy8gY2hlY2sgdGhlIHNpZ25hdHVyZQorICAgICAgICAvLyBUcmllIGluIGJpZy1lbmRpYW4gVVMtQVNDSUkgKDB4NTQ3MjY5NjUpLgorICAgICAgICAvLyBNYWdpYyBudW1iZXIgdG8gYXV0aGVudGljYXRlIHRoZSBkYXRhLgorICAgICAgICBpZiAoc2lnbmF0dXJlICE9IEhFQURFUl9TSUdOQVRVUkVfKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKG1fb3B0aW9uc18gJiBIRUFERVJfT1BUSU9OU19TSElGVF9NQVNLXykgIT0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ERVhfU1RBR0VfMV9TSElGVF8gfHwKKyAgICAgICAgICAgICgobV9vcHRpb25zXyA+PiBIRUFERVJfT1BUSU9OU19JTkRFWF9TSElGVF8pICYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhFQURFUl9PUFRJT05TX1NISUZUX01BU0tfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IElOREVYX1NUQUdFXzJfU0hJRlRfKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVHJpZUJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RyaWVCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDViODg0YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1RyaWVCdWlsZGVyLmphdmEKQEAgLTAsMCArMSwyNjEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworCisvKioKKyAqIEJ1aWxkZXIgbGFzcyB0byBtYW5pcHVsYXRlIGFuZCBnZW5lcmF0ZSBhIHRyaWUuCisgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgSUNVIGRhdGEgaW4gcHJpbWl0aXZlIHR5cGVzLgorICogUHJvdmlkZXMgYSBjb21wYWN0IHdheSB0byBzdG9yZSBpbmZvcm1hdGlvbiB0aGF0IGlzIGluZGV4ZWQgYnkgVW5pY29kZSAKKyAqIHZhbHVlcywgc3VjaCBhcyBjaGFyYWN0ZXIgcHJvcGVydGllcywgdHlwZXMsIGtleWJvYXJkIHZhbHVlcywgZXRjLiBUaGlzIGlzIAorICogdmVyeSB1c2VmdWwgd2hlbiB5b3UgaGF2ZSBhIGJsb2NrIG9mIFVuaWNvZGUgZGF0YSB0aGF0IGNvbnRhaW5zIHNpZ25pZmljYW50IAorICogdmFsdWVzIHdoaWxlIHRoZSByZXN0IG9mIHRoZSBVbmljb2RlIGRhdGEgaXMgdW51c2VkIGluIHRoZSBhcHBsaWNhdGlvbiBvciAKKyAqIHdoZW4geW91IGhhdmUgYSBsb3Qgb2YgcmVkdW5kYW5jZSwgc3VjaCBhcyB3aGVyZSBhbGwgMjEsMDAwIEhhbiBpZGVvZ3JhcGhzIAorICogaGF2ZSB0aGUgc2FtZSB2YWx1ZS4gIEhvd2V2ZXIsIGxvb2t1cCBpcyBtdWNoIGZhc3RlciB0aGFuIGEgaGFzaCB0YWJsZS4KKyAqIEEgdHJpZSBvZiBhbnkgcHJpbWl0aXZlIGRhdGEgdHlwZSBzZXJ2ZXMgdHdvIHB1cnBvc2VzOgorICogPFVMIHR5cGUgPSByb3VuZD4KKyAqICAgICA8TEk+RmFzdCBhY2Nlc3Mgb2YgdGhlIGluZGV4ZWQgdmFsdWVzLgorICogICAgIDxMST5TbWFsbGVyIG1lbW9yeSBmb290cHJpbnQuCisgKiA8L1VMPgorICogVGhpcyBpcyBhIGRpcmVjdCBwb3J0IGZyb20gdGhlIElDVTRDIHZlcnNpb24KKyAqIEBhdXRob3IgICAgICAgICAgICAgU3luIFdlZSBRdWVrCisgKi8KK3B1YmxpYyBjbGFzcyBUcmllQnVpbGRlcgoreworICAgIC8vIHB1YmxpYyBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKiAKKyAgICAgKiBOdW1iZXIgb2YgZGF0YSB2YWx1ZXMgaW4gYSBzdGFnZSAyIChkYXRhIGFycmF5KSBibG9jay4gMiwgNCwgOCwgLi4sIAorICAgICAqIDB4MjAwIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERBVEFfQkxPQ0tfTEVOR1RIID0gMSA8PCBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfOworICAgIAorICAgIC8vIHB1YmxpYyBjbGFzcyBkZWNsYXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIGRhdGEgaW4gY29tLmlibS5pbXBsLlRyaWUgaGF2ZSBkaWZmZXJlbnQgdXNlci1zcGVjaWZpZWQgZm9ybWF0CisgICAgICogZm9yIGRpZmZlcmVudCBwdXJwb3Nlcy4KKyAgICAgKiBUaGlzIGludGVyZmFjZSBzcGVjaWZpZXMgbWV0aG9kcyB0byBiZSBpbXBsZW1lbnRlZCBpbiBvcmRlciBmb3IKKyAgICAgKiBjb20uaWJtLmltcGwuVHJpZSwgdG8gc3Vycm9nYXRlIG9mZnNldCBpbmZvcm1hdGlvbiBlbmNhcHN1bGF0ZWQgd2l0aGluIAorICAgICAqIHRoZSBkYXRhLgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBEYXRhTWFuaXB1bGF0ZQorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEJ1aWxkLXRpbWUgdHJpZSBjYWxsYmFjayBmdW5jdGlvbiwgdXNlZCB3aXRoIHNlcmlhbGl6ZSgpLgorICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgYSBsZWFkIHN1cnJvZ2F0ZSdzIHZhbHVlIGluY2x1ZGluZyBhIAorICAgICAgICAgKiBmb2xkaW5nIG9mZnNldCBmcm9tIHRoZSAxMDI0IHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgCisgICAgICAgICAqIFtzdGFydC4uc3RhcnQrMTAyNFsgLiAKKyAgICAgICAgICogSXQgaXMgVSsxMDAwMCA8PSBzdGFydCA8PSBVKzEwZmMwMCBhbmQgKHN0YXJ0JjB4M2ZmKT09MC4KKyAgICAgICAgICogVGhlIGZvbGRpbmcgb2Zmc2V0IGlzIHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIuIAorICAgICAgICAgKiBJdCBpcyBvZmZzZXQ9VVRSSUVfQk1QX0lOREVYX0xFTkdUSCtuKlVUUklFX1NVUlJPR0FURV9CTE9DS19DT1VOVCAKKyAgICAgICAgICogd2l0aCBuPTAuLjEwMjMuIAorICAgICAgICAgKiBJbnN0ZWFkIG9mIHRoZSBvZmZzZXQgaXRzZWxmLCBuIGNhbiBiZSBzdG9yZWQgaW4gMTAgYml0cyAtIG9yIGZld2VyIAorICAgICAgICAgKiBpZiBpdCBjYW4gYmUgYXNzdW1lZCB0aGF0IGZldyBsZWFkIHN1cnJvZ2F0ZXMgaGF2ZSBhc3NvY2lhdGVkIGRhdGEuCisgICAgICAgICAqIFRoZSByZXR1cm5lZCB2YWx1ZSBtdXN0IGJlCisgICAgICAgICAqICAtIG5vdCB6ZXJvIGlmIGFuZCBvbmx5IGlmIHRoZXJlIGlzIHJlbGV2YW50IGRhdGEgZm9yIHRoZSAKKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICBjb3JyZXNwb25kaW5nIDEwMjQgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICAgICAgKiAgLSBzdWNoIHRoYXQgVVRyaWUuZ2V0Rm9sZGluZ09mZnNldChVTmV3VHJpZUdldEZvbGRlZFZhbHVlKC4uLiwgCisgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCkpPT1vZmZzZXQKKyAgICAgICAgICogQHJldHVybiBhIGZvbGRlZCB2YWx1ZSwgb3IgMCBpZiB0aGVyZSBpcyBubyByZWxldmFudCBkYXRhIGZvciB0aGUgCisgICAgICAgICAqICAgICAgICAgbGVhZCBzdXJyb2dhdGUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGdldEZvbGRlZFZhbHVlKGludCBzdGFydCwgaW50IG9mZnNldCk7IAorICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgY2hhcmFjdGVyIGJlbG9uZ3MgdG8gYSB6ZXJvIGJsb2NrIGluIHRoZSB0cmllCisgICAgICogQHBhcmFtIGNoIGNvZGVwb2ludCB3aGljaCBkYXRhIGlzIHRvIGJlIHJldHJpZXZlZAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjaCBpcyBpbiB0aGUgemVybyBibG9jaworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzSW5aZXJvQmxvY2soaW50IGNoKSAKKyAgICB7CisgICAgICAgIC8vIHZhbGlkLCB1bmNvbXBhY3RlZCB0cmllIGFuZCB2YWxpZCBjPworICAgICAgICBpZiAobV9pc0NvbXBhY3RlZF8gfHwgY2ggPiBVQ2hhcmFjdGVyLk1BWF9WQUxVRSAKKyAgICAgICAgICAgIHx8IGNoIDwgVUNoYXJhY3Rlci5NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgCisgICAgICAgIHJldHVybiBtX2luZGV4X1tjaCA+PiBTSElGVF9dID09IDA7CisgICAgfQorICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBJbmRleCB2YWx1ZXMgYXQgYnVpbGQtdGltZSBhcmUgMzIgYml0cyB3aWRlIGZvciBlYXNpZXIgcHJvY2Vzc2luZy4KKyAgICAgKiBCaXQgMzEgaXMgc2V0IGlmIHRoZSBkYXRhIGJsb2NrIGlzIHVzZWQgYnkgbXVsdGlwbGUgaW5kZXggdmFsdWVzIAorICAgICAqIChmcm9tIHNldFJhbmdlKCkpLgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbV9pbmRleF9bXTsKKyAgICBwcm90ZWN0ZWQgaW50IG1faW5kZXhMZW5ndGhfOworICAgIHByb3RlY3RlZCBpbnQgbV9kYXRhQ2FwYWNpdHlfOyAKKyAgICBwcm90ZWN0ZWQgaW50IG1fZGF0YUxlbmd0aF87CisgICAgcHJvdGVjdGVkIGJvb2xlYW4gbV9pc0xhdGluMUxpbmVhcl87CisgICAgcHJvdGVjdGVkIGJvb2xlYW4gbV9pc0NvbXBhY3RlZF87CisgICAgLyoqCisgICAgICogTWFwIG9mIGFkanVzdGVkIGluZGV4ZXMsIHVzZWQgaW4gdXRyaWVfY29tcGFjdCgpLgorICAgICAqIE1hcHMgZnJvbSBvcmlnaW5hbCBpbmRleGVzIHRvIG5ldyBvbmVzLgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbV9tYXBfW107CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNoaWZ0IHNpemUgZm9yIHNoaWZ0aW5nIHJpZ2h0IHRoZSBpbnB1dCBpbmRleC4gMS4uOSAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBTSElGVF8gPSBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfOworICAgIC8qKgorICAgICAqIExlbmd0aCBvZiB0aGUgaW5kZXggKHN0YWdlIDEpIGFycmF5IGJlZm9yZSBmb2xkaW5nLgorICAgICAqIE1heGltdW0gbnVtYmVyIG9mIFVuaWNvZGUgY29kZSBwb2ludHMgKDB4MTEwMDAwKSBzaGlmdGVkIHJpZ2h0IGJ5IAorICAgICAqIFNISUZULgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BWF9JTkRFWF9MRU5HVEhfID0gKDB4MTEwMDAwID4+IFNISUZUXyk7CisgICAgLyoqIAorICAgICAqIExlbmd0aCBvZiB0aGUgQk1QIHBvcnRpb24gb2YgdGhlIGluZGV4IChzdGFnZSAxKSBhcnJheS4gCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgQk1QX0lOREVYX0xFTkdUSF8gPSAweDEwMDAwID4+IFNISUZUXzsgICAKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgb2YgaW5kZXggKHN0YWdlIDEpIGVudHJpZXMgcGVyIGxlYWQgc3Vycm9nYXRlLgorICAgICAqIFNhbWUgYXMgbnVtYmVyIG9mIGluZGV4ZSBlbnRyaWVzIGZvciAxMDI0IHRyYWlsIHN1cnJvZ2F0ZXMsCisgICAgICogPT0weDQwMD4+VVRSSUVfU0hJRlQKKyAgICAgKiAxMCAtIFNISUZUID09IE51bWJlciBvZiBiaXRzIG9mIGEgdHJhaWwgc3Vycm9nYXRlIHRoYXQgYXJlIHVzZWQgaW4gCisgICAgICogICAgICAgICAgICAgICBpbmRleCB0YWJsZSBsb29rdXBzLiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfQkxPQ0tfQ09VTlRfID0gMSA8PCAoMTAgLSBTSElGVF8pOworICAgIC8qKgorICAgICAqIE1hc2sgZm9yIGdldHRpbmcgdGhlIGxvd2VyIGJpdHMgZnJvbSB0aGUgaW5wdXQgaW5kZXguCisgICAgICogREFUQV9CTE9DS19MRU5HVEggLSAxLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BU0tfID0gVHJpZS5JTkRFWF9TVEFHRV8zX01BU0tfOworICAgIC8qKgorICAgICAqIFNoaWZ0IHNpemUgZm9yIHNoaWZ0aW5nIGxlZnQgdGhlIGluZGV4IGFycmF5IHZhbHVlcy4KKyAgICAgKiBJbmNyZWFzZXMgcG9zc2libGUgZGF0YSBzaXplIHdpdGggMTYtYml0IGluZGV4IHZhbHVlcyBhdCB0aGUgY29zdAorICAgICAqIG9mIGNvbXBhY3RhYmlsaXR5LgorICAgICAqIFRoaXMgcmVxdWlyZXMgYmxvY2tzIG9mIHN0YWdlIDIgZGF0YSB0byBiZSBhbGlnbmVkIGJ5IFVUUklFX0RBVEFfR1JBTlVMQVJJVFkuCisgICAgICogMC4uVVRSSUVfU0hJRlQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBJTkRFWF9TSElGVF8gPSBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfOworICAgIC8qKgorICAgICAqIE1heGltdW0gbGVuZ3RoIG9mIHRoZSBydW50aW1lIGRhdGEgKHN0YWdlIDIpIGFycmF5LgorICAgICAqIExpbWl0ZWQgYnkgMTYtYml0IGluZGV4IHZhbHVlcyB0aGF0IGFyZSBsZWZ0LXNoaWZ0ZWQgYnkgSU5ERVhfU0hJRlRfLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1BWF9EQVRBX0xFTkdUSF8gPSAoMHgxMDAwMCA8PCBJTkRFWF9TSElGVF8pOworICAgIC8qKgorICAgICAqIFNoaWZ0aW5nIHRvIHBvc2l0aW9uIHRoZSBpbmRleCB2YWx1ZSBpbiBvcHRpb25zCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgT1BUSU9OU19JTkRFWF9TSElGVF8gPSA0OworICAgIC8qKiAKKyAgICAgKiBJZiBzZXQsIHRoZW4gdGhlIGRhdGEgKHN0YWdlIDIpIGFycmF5IGlzIDMyIGJpdHMgd2lkZS4gCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgT1BUSU9OU19EQVRBX0lTXzMyX0JJVF8gPSAweDEwMDsKKyAgICAvKioKKyAgICAgKiBJZiBzZXQsIHRoZW4gTGF0aW4tMSBkYXRhIChmb3IgVSswMDAwLi5VKzAwZmYpIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSAKKyAgICAgKiAoc3RhZ2UgMikgYXJyYXkgYXMgYSBzaW1wbGUsIGxpbmVhciBhcnJheSBhdCBkYXRhICsgREFUQV9CTE9DS19MRU5HVEguCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgT1BUSU9OU19MQVRJTjFfSVNfTElORUFSXyA9IDB4MjAwOworICAgIC8qKiAKKyAgICAgKiBUaGUgYWxpZ25tZW50IHNpemUgb2YgYSBzdGFnZSAyIGRhdGEgYmxvY2suIEFsc28gdGhlIGdyYW51bGFyaXR5IGZvciAKKyAgICAgKiBjb21wYWN0aW9uLiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBEQVRBX0dSQU5VTEFSSVRZXyA9IDEgPDwgSU5ERVhfU0hJRlRfOworICAgIAorICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgcHJvdGVjdGVkIFRyaWVCdWlsZGVyKCkKKyAgICB7CisgICAgICAgIG1faW5kZXhfID0gbmV3IGludFtNQVhfSU5ERVhfTEVOR1RIX107CisgICAgICAgIG1fbWFwXyA9IG5ldyBpbnRbTUFYX0JVSUxEX1RJTUVfREFUQV9MRU5HVEhfID4+IFNISUZUX107CisgICAgICAgIG1faXNMYXRpbjFMaW5lYXJfID0gZmFsc2U7CisgICAgICAgIG1faXNDb21wYWN0ZWRfID0gZmFsc2U7CisgICAgICAgIG1faW5kZXhMZW5ndGhfID0gTUFYX0lOREVYX0xFTkdUSF87CisgICAgfQorICAgICAgICAKKyAgICBwcm90ZWN0ZWQgVHJpZUJ1aWxkZXIoVHJpZUJ1aWxkZXIgdGFibGUpCisgICAgeworICAgICAgICBtX2luZGV4XyA9IG5ldyBpbnRbTUFYX0lOREVYX0xFTkdUSF9dOworICAgICAgICBtX2luZGV4TGVuZ3RoXyA9IHRhYmxlLm1faW5kZXhMZW5ndGhfOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRhYmxlLm1faW5kZXhfLCAwLCBtX2luZGV4XywgMCwgbV9pbmRleExlbmd0aF8pOworICAgICAgICBtX2RhdGFDYXBhY2l0eV8gPSB0YWJsZS5tX2RhdGFDYXBhY2l0eV87CisgICAgICAgIG1fZGF0YUxlbmd0aF8gPSB0YWJsZS5tX2RhdGFMZW5ndGhfOworICAgICAgICBtX21hcF8gPSBuZXcgaW50W3RhYmxlLm1fbWFwXy5sZW5ndGhdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRhYmxlLm1fbWFwXywgMCwgbV9tYXBfLCAwLCBtX21hcF8ubGVuZ3RoKTsKKyAgICAgICAgbV9pc0xhdGluMUxpbmVhcl8gPSB0YWJsZS5tX2lzTGF0aW4xTGluZWFyXzsKKyAgICAgICAgbV9pc0NvbXBhY3RlZF8gPSB0YWJsZS5tX2lzQ29tcGFjdGVkXzsKKyAgICB9CisgICAgICAgIAorICAgIC8vIHByb3RlY3RlZCBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBzZWN0aW9ucyBvZiBhbiBhcnJheSBmb3IgZXF1YWxpdHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBib29sZWFuIGVxdWFsX2ludChpbnRbXSBhcnJheSwgaW50IHN0YXJ0MSwgaW50IHN0YXJ0MiwgaW50IGxlbmd0aCkgeworICAgICAgICB3aGlsZShsZW5ndGg+MCAmJiBhcnJheVtzdGFydDFdPT1hcnJheVtzdGFydDJdKSB7CisgICAgICAgICAgICArK3N0YXJ0MTsKKyAgICAgICAgICAgICsrc3RhcnQyOworICAgICAgICAgICAgLS1sZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxlbmd0aD09MDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSB2YWx1ZSBpbiB0aGUgdHJpZSBpbmRleCBtYXAgdG8gaW5kaWNhdGUgd2hpY2ggZGF0YSBibG9jaworICAgICAqIGlzIHJlZmVyZW5jZWQgYW5kIHdoaWNoIG9uZSBpcyBub3QuCisgICAgICogdXRyaWVfY29tcGFjdCgpIHdpbGwgcmVtb3ZlIGRhdGEgYmxvY2tzIHRoYXQgYXJlIG5vdCB1c2VkIGF0IGFsbC4KKyAgICAgKiBTZXQKKyAgICAgKiAtIDAgaWYgaXQgaXMgdXNlZAorICAgICAqIC0gLTEgaWYgaXQgaXMgbm90IHVzZWQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBmaW5kVW51c2VkQmxvY2tzKCkgCisgICAgeworICAgICAgICAvLyBmaWxsIHRoZSBlbnRpcmUgbWFwIHdpdGggIm5vdCB1c2VkIiAKKyAgICAgICAgQXJyYXlzLmZpbGwobV9tYXBfLCAweGZmKTsKKyAgICAKKyAgICAgICAgLy8gbWFyayBlYWNoIGJsb2NrIHRoYXQgX2lzXyB1c2VkIHdpdGggMAorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1faW5kZXhMZW5ndGhfOyArKyBpKSB7CisgICAgICAgICAgICBtX21hcF9bTWF0aC5hYnMobV9pbmRleF9baV0pID4+IFNISUZUX10gPSAwOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIG5ldmVyIG1vdmUgdGhlIGFsbC1pbml0aWFsLXZhbHVlIGJsb2NrIDAKKyAgICAgICAgbV9tYXBfWzBdID0gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRmluZHMgdGhlIHNhbWUgaW5kZXggYmxvY2sgYXMgdGhlIG90aGVyQmxvY2sKKyAgICAgKiBAcGFyYW0gaW5kZXggYXJyYXkKKyAgICAgKiBAcGFyYW0gaW5kZXhMZW5ndGggc2l6ZSBvZiBpbmRleAorICAgICAqIEBwYXJhbSBvdGhlckJsb2NrCisgICAgICogQHJldHVybiBzYW1lIGluZGV4IGJsb2NrCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgZmluZFNhbWVJbmRleEJsb2NrKGludCBpbmRleFtdLCBpbnQgaW5kZXhMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvdGhlckJsb2NrKSAKKyAgICB7CisgICAgICAgIGZvciAoaW50IGJsb2NrID0gQk1QX0lOREVYX0xFTkdUSF87IGJsb2NrIDwgaW5kZXhMZW5ndGg7IAorICAgICAgICAgICAgIGJsb2NrICs9IFNVUlJPR0FURV9CTE9DS19DT1VOVF8pIHsKKyAgICAgICAgICAgIGlmKGVxdWFsX2ludChpbmRleCwgYmxvY2ssIG90aGVyQmxvY2ssIFNVUlJPR0FURV9CTE9DS19DT1VOVF8pKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBpbmRleExlbmd0aDsKKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogTWF4aW11bSBsZW5ndGggb2YgdGhlIGJ1aWxkLXRpbWUgZGF0YSAoc3RhZ2UgMikgYXJyYXkuCisgICAgICogVGhlIG1heGltdW0gbGVuZ3RoIGlzIDB4MTEwMDAwICsgREFUQV9CTE9DS19MRU5HVEggKyAweDQwMC4KKyAgICAgKiAoTnVtYmVyIG9mIFVuaWNvZGUgY29kZSBwb2ludHMgKyBvbmUgYWxsLWluaXRpYWwtdmFsdWUgYmxvY2sgKworICAgICAqICBwb3NzaWJsZSBkdXBsaWNhdGUgZW50cmllcyBmb3IgMTAyNCBsZWFkIHN1cnJvZ2F0ZXMuKQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfQlVJTERfVElNRV9EQVRBX0xFTkdUSF8gPSAKKyAgICAgICAgMHgxMTAwMDAgKyBEQVRBX0JMT0NLX0xFTkdUSCArIDB4NDAwOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVHJpZUl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9UcmllSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNWZkOWFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVHJpZUl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw1NDIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuUmFuZ2VWYWx1ZUl0ZXJhdG9yOworCisvKioKKyAqIDxwPkNsYXNzIGVuYWJsaW5nIGl0ZXJhdGlvbiBvZiB0aGUgdmFsdWVzIGluIGEgVHJpZS48L3A+CisgKiA8cD5SZXN1bHQgb2YgZWFjaCBpdGVyYXRpb24gY29udGFpbnMgdGhlIGludGVydmFsIG9mIGNvZGVwb2ludHMgdGhhdCBoYXZlCisgKiB0aGUgc2FtZSB2YWx1ZSB0eXBlIGFuZCB0aGUgdmFsdWUgdHlwZSBpdHNlbGYuPC9wPgorICogPHA+VGhlIGNvbXBhcmlzb24gb2YgZWFjaCBjb2RlcG9pbnQgdmFsdWUgaXMgZG9uZSB2aWEgZXh0cmFjdCgpLCB3aGljaCB0aGUKKyAqIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaXMgdG8gcmV0dXJuIHRoZSB2YWx1ZSBhcyBpdCBpcy48L3A+IAorICogPHA+TWV0aG9kIGV4dHJhY3QoKSBjYW4gYmUgb3ZlcndyaXR0ZW4gdG8gcGVyZm9ybSBtYW5pcHVsYXRpb25zIG9uIAorICogY29kZXBvaW50IHZhbHVlcyBpbiBvcmRlciB0byBwZXJmb3JtIHNwZWNpYWxpemVkIGNvbXBhcmlzb24uPC9wPgorICogPHA+VHJpZUl0ZXJhdG9yIGlzIGRlc2lnbmVkIHRvIGJlIGEgZ2VuZXJpYyBpdGVyYXRvciBmb3IgdGhlIENoYXJUcmllCisgKiBhbmQgdGhlIEludFRyaWUsIGhlbmNlIHRvIGFjY29tbW9kYXRlIGJvdGggdHlwZXMgb2YgZGF0YSwgdGhlIHJldHVybiAKKyAqIHJlc3VsdCB3aWxsIGJlIGluIHRlcm1zIG9mIGludCAoMzIgYml0KSB2YWx1ZXMuPC9wPgorICogPHA+U2VlIGNvbS5pYm0uaWN1LnRleHQuVUNoYXJhY3RlclR5cGVJdGVyYXRvciBmb3IgZXhhbXBsZXMgb2YgdXNlLjwvcD4KKyAqIDxwPk5vdGVzIGZvciBwb3J0aW5nIHV0cmllX2VudW0gZnJvbSBpY3U0YyB0byBpY3U0ajo8YnI+CisgKiBJbnRlcm5hbGx5LCBpY3U0YydzIHV0cmllX2VudW0gcGVyZm9ybXMgYWxsIGl0ZXJhdGlvbnMgaW4gaXRzIGJvZHkuIEluIEphdmEKKyAqIHNlbnNlLCB0aGUgY2FsbGVyIHdpbGwgaGF2ZSB0byBwYXNzIGEgb2JqZWN0IHdpdGggYSBjYWxsYmFjayBmdW5jdGlvbiAKKyAqIFVUcmllRW51bVJhbmdlKGNvbnN0IHZvaWQgKmNvbnRleHQsIFVDaGFyMzIgc3RhcnQsIFVDaGFyMzIgbGltaXQsIAorICogdWludDMyX3QgdmFsdWUpIGludG8gdXRyaWVfZW51bS4gdXRyaWVfZW51bSB3aWxsIHRoZW4gZmluZCByYW5nZXMgb2YgCisgKiBjb2RlcG9pbnRzIHdpdGggdGhlIHNhbWUgdmFsdWUgYXMgZGV0ZXJtaW5lZCBieSAKKyAqIFVUcmllRW51bVZhbHVlKGNvbnN0IHZvaWQgKmNvbnRleHQsIHVpbnQzMl90IHZhbHVlKS4gZm9yIGVhY2ggcmFuZ2UsIAorICogdXRyaWVfZW51bSBjYWxscyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gcGVyZm9ybSBhIHRhc2suIEluIHRoaXMgd2F5LAorICogaWN1NGMgcGVyZm9ybXMgdGhlIGl0ZXJhdGlvbiB3aXRoaW4gdXRyaWVfZW51bS4KKyAqIFRvIGZvbGxvdyB0aGUgSkRLIG1vZGVsLCBpY3U0aiBpcyBzbGlnaHRseSBkaWZmZXJlbnQgZnJvbSBpY3U0Yy4KKyAqIEluc3RlYWQgb2YgcmVxdWVzdGluZyB0aGUgY2FsbGVyIHRvIGltcGxlbWVudCBhbiBvYmplY3QgZm9yIGEgY2FsbGJhY2suCisgKiBUaGUgY2FsbGVyIHdpbGwgaGF2ZSB0byBpbXBsZW1lbnQgYSBzdWJjbGFzcyBvZiBUcmllSXRlcmF0b3IsIGZsZXNoaW5nIG91dAorICogdGhlIG1ldGhvZCBleHRyYWN0KGludCkgKGVxdWl2YWxlbnQgdG8gVVRyaWVFbnVtVmFsdWUpLiBJbmRlcGVuZGVudCBvZiBpY3U0aiwgCisgKiB0aGUgY2FsbGVyIHdpbGwgaGF2ZSB0byBjb2RlIGhpcyBvd24gaXRlcmF0aW9uIGFuZCBmbGVzaCBvdXQgdGhlIHRhc2sgCisgKiAoZXF1aXZhbGVudCB0byBVVHJpZUVudW1SYW5nZSkgdG8gYmUgcGVyZm9ybWVkIGluIHRoZSBpdGVyYXRpb24gbG9vcC4KKyAqIDwvcD4KKyAqIDxwPlRoZXJlIGFyZSBiYXNpY2FsbHkgMyB1c2FnZSBzY2VuYXJpb3MgZm9yIHBvcnRpbmc6PC9wPgorICogPHA+MSkgVVRyaWVFbnVtVmFsdWUgaXMgdGhlIG9ubHkgaW1wbGVtZW50ZWQgY2FsbGJhY2sgdGhlbiBqdXN0IGltcGxlbWVudCBhIAorICogc3ViY2xhc3Mgb2YgVHJpZUl0ZXJhdG9yIGFuZCBvdmVycmlkZSB0aGUgZXh0cmFjdChpbnQpIG1ldGhvZC4gVGhlIAorICogZXh0cmFjdChpbnQpIG1ldGhvZCBpcyBhbmFsb2d1cyB0byBVVHJpZUVudW1WYWx1ZSBjYWxsYmFjay4KKyAqIDwvcD4KKyAqIDxwPjIpIFVUcmllRW51bVZhbHVlIGFuZCBVVHJpZUVudW1SYW5nZSBib3RoIGFyZSBpbXBsZW1lbnRlZCB0aGVuIGltcGxlbWVudCAKKyAqIGEgc3ViY2xhc3Mgb2YgVHJpZUl0ZXJhdG9yLCBvdmVycmlkZSB0aGUgZXh0cmFjdCBtZXRob2QgYW5kIGl0ZXJhdGUsIGUuZworICogPC9wPgorICogPHA+dXRyaWVfZW51bSgmbm9ybVRyaWUsIF9lbnVtUHJvcGVydHlTdGFydHNWYWx1ZSwgX2VudW1Qcm9wZXJ0eVN0YXJ0c1JhbmdlLCAKKyAqICAgICAgICAgICAgICAgc2V0KTs8YnI+CisgKiBJbiBKYXZhIDo8YnI+CisgKiA8cHJlPgorICogY2xhc3MgVHJpZUl0ZXJhdG9ySW1wbCBleHRlbmRzIFRyaWVJdGVyYXRvcnsKKyAqICAgICBwdWJsaWMgVHJpZUl0ZXJhdG9ySW1wbChUcmllIGRhdGEpeworICogICAgICAgICBzdXBlcihkYXRhKTsKKyAqICAgICB9CisgKiAgICAgcHVibGljIGludCBleHRyYWN0KGludCB2YWx1ZSl7CisgKiAgICAgICAgIC8vIHBvcnQgdGhlIGltcGxlbWVudGF0aW9uIG9mIF9lbnVtUHJvcGVydHlTdGFydHNWYWx1ZSBoZXJlCisgKiAgICAgfQorICogfQorICogLi4uLiAKKyAqIFRyaWVJdGVyYXRvciBmY2RJdGVyICA9IG5ldyBUcmllSXRlcmF0b3JJbXBsKGZjZFRyaWVJbXBsLmZjZFRyaWUpOworICogd2hpbGUoZmNkSXRlci5uZXh0KHJlc3VsdCkpIHsKKyAqICAgICAvLyBwb3J0IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBfZW51bVByb3BlcnR5U3RhcnRzUmFuZ2UKKyAqIH0KKyAqIDwvcHJlPgorICogPC9wPgorICogPHA+MykgVVRyaWVFbnVtUmFuZ2UgaXMgdGhlIG9ubHkgaW1wbGVtZW50ZWQgY2FsbGJhY2sgdGhlbiBqdXN0IGltcGxlbWVudCAKKyAqIHRoZSB3aGlsZSBsb29wLCB3aGVuIHV0cmllX2VudW0gaXMgY2FsbGVkCisgKiA8cHJlPgorICogLy8gdXRyaWVfZW51bSgmZmNkVHJpZSwgTlVMTCwgX2VudW1Qcm9wZXJ0eVN0YXJ0c1JhbmdlLCBzZXQpOworICogVHJpZUl0ZXJhdG9yIGZjZEl0ZXIgID0gbmV3IFRyaWVJdGVyYXRvcihmY2RUcmllSW1wbC5mY2RUcmllKTsKKyAqIHdoaWxlKGZjZEl0ZXIubmV4dChyZXN1bHQpKXsKKyAqICAgICBzZXQuYWRkKHJlc3VsdC5zdGFydCk7CisgKiB9CisgKiA8L3A+CisgKiBAYXV0aG9yIHN5bndlZQorICogQHNlZSBjb20uaWJtLmljdS5pbXBsLlRyaWUKKyAqIEBzZWUgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yCisgKiBAc2luY2UgcmVsZWFzZSAyLjEsIEphbiAxNyAyMDAyCisgKi8KK3B1YmxpYyBjbGFzcyBUcmllSXRlcmF0b3IgaW1wbGVtZW50cyBSYW5nZVZhbHVlSXRlcmF0b3IKKworeworICAgIC8vIHB1YmxpYyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIFRyaWVFbnVtZXJhdGlvbiBjb25zdHJ1Y3RvcgorICAgICogQHBhcmFtIHRyaWUgdG8gYmUgdXNlZAorICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3cgd2hlbiBhcmd1bWVudCBpcyBudWxsLgorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIFRyaWVJdGVyYXRvcihUcmllIHRyaWUpCisgICAgeworICAgICAgICBpZiAodHJpZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZ3VtZW50IHRyaWUgY2Fubm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBtX3RyaWVfICAgICAgICAgICAgID0gdHJpZTsKKyAgICAgICAgLy8gc3lud2VlOiBjaGVjayB0aGF0IGV4dHJhY3QgYmVsb25ncyB0byB0aGUgY2hpbGQgY2xhc3MKKyAgICAgICAgbV9pbml0aWFsVmFsdWVfICAgICA9IGV4dHJhY3QobV90cmllXy5nZXRJbml0aWFsVmFsdWUoKSk7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIDxwPlJldHVybnMgdHJ1ZSBpZiB3ZSBhcmUgbm90IGF0IHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiwgZmFsc2UgCisgICAgKiBvdGhlcndpc2UuPC9wPgorICAgICogPHA+VGhlIG5leHQgc2V0IG9mIGNvZGVwb2ludHMgd2l0aCB0aGUgc2FtZSB2YWx1ZSB0eXBlIHdpbGwgYmUgCisgICAgKiBjYWxjdWxhdGVkIGR1cmluZyB0aGlzIGNhbGwgYW5kIHJldHVybmVkIGluIHRoZSBhcmd1ZW1lbnQgZWxlbWVudC48L3A+CisgICAgKiBAcGFyYW0gZWxlbWVudCByZXR1cm4gcmVzdWx0IAorICAgICogQHJldHVybiB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSBvdGhlcndpc2UuCisgICAgKiBAZXhjZXB0aW9uIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gLSBpZiBubyBtb3JlIGVsZW1lbnRzIGV4aXN0LgorICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50CisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBuZXh0KEVsZW1lbnQgZWxlbWVudCkKKyAgICB7CisgICAgICAgIGlmIChtX25leHRDb2RlcG9pbnRfID4gVUNoYXJhY3Rlci5NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9uZXh0Q29kZXBvaW50XyA8IFVDaGFyYWN0ZXIuU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUgJiYKKyAgICAgICAgICAgIGNhbGN1bGF0ZU5leHRCTVBFbGVtZW50KGVsZW1lbnQpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSAgICAKKyAgICAgICAgY2FsY3VsYXRlTmV4dFN1cHBsZW1lbnRhcnlFbGVtZW50KGVsZW1lbnQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgIAorICAgIC8qKgorICAgICogUmVzZXRzIHRoZSBpdGVyYXRvciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpdGVyYXRpb24KKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIG1fY3VycmVudENvZGVwb2ludF8gPSAwOworICAgICAgICBtX25leHRDb2RlcG9pbnRfICAgID0gMDsKKyAgICAgICAgbV9uZXh0SW5kZXhfICAgICAgICA9IDA7CisgICAgICAgIG1fbmV4dEJsb2NrXyA9IG1fdHJpZV8ubV9pbmRleF9bMF0gPDwgVHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXzsKKyAgICAgICAgaWYgKG1fbmV4dEJsb2NrXyA9PSAwKSB7CisgICAgICAgICAgICBtX25leHRWYWx1ZV8gPSBtX2luaXRpYWxWYWx1ZV87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX25leHRWYWx1ZV8gPSBleHRyYWN0KG1fdHJpZV8uZ2V0VmFsdWUobV9uZXh0QmxvY2tfKSk7CisgICAgICAgIH0KKyAgICAgICAgbV9uZXh0QmxvY2tJbmRleF8gPSAwOworICAgICAgICBtX25leHRUcmFpbEluZGV4T2Zmc2V0XyA9IFRSQUlMX1NVUlJPR0FURV9JTkRFWF9CTE9DS19MRU5HVEhfOworICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiBDYWxsZWQgYnkgbmV4dCgpIHRvIGV4dHJhY3RzIGEgMzIgYml0IHZhbHVlIGZyb20gYSB0cmllIHZhbHVlCisgICAgKiB1c2VkIGZvciBjb21wYXJpc29uLgorICAgICogVGhpcyBtZXRob2QgaXMgdG8gYmUgb3ZlcndyaXR0ZW4gaWYgc3BlY2lhbCBtYW5pcHVsYXRpb24gaXMgdG8gYmUgZG9uZQorICAgICogdG8gcmV0cmlldmUgYSByZWxldmFudCBjb21wYXJpc29uLgorICAgICogVGhlIGRlZmF1bHQgZnVuY3Rpb24gaXMgdG8gcmV0dXJuIHRoZSB2YWx1ZSBhcyBpdCBpcy4KKyAgICAqIEBwYXJhbSB2YWx1ZSBhIHZhbHVlIGZyb20gdGhlIHRyaWUKKyAgICAqIEByZXR1cm4gZXh0cmFjdGVkIHZhbHVlCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGV4dHJhY3QoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiBTZXQgdGhlIHJlc3VsdCB2YWx1ZXMKKyAgICAqIEBwYXJhbSBlbGVtZW50IHJldHVybiByZXN1bHQgb2JqZWN0CisgICAgKiBAcGFyYW0gc3RhcnQgY29kZXBvaW50IG9mIHJhbmdlIAorICAgICogQHBhcmFtIGxpbWl0IChlbmQgKyAxKSBjb2RlcG9pbnQgb2YgcmFuZ2UKKyAgICAqIEBwYXJhbSB2YWx1ZSBjb21tb24gdmFsdWUgb2YgcmFuZ2UKKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBzZXRSZXN1bHQoRWxlbWVudCBlbGVtZW50LCBpbnQgc3RhcnQsIGludCBsaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmFsdWUpCisgICAgeworICAgICAgICBlbGVtZW50LnN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIGVsZW1lbnQubGltaXQgPSBsaW1pdDsKKyAgICAgICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEZpbmRpbmcgdGhlIG5leHQgZWxlbWVudC4KKyAgICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBqdXN0IGJlZm9yZSByZXR1cm5pbmcgdGhlIHJlc3VsdCBvZiAKKyAgICAqIG5leHQoKS4KKyAgICAqIFdlIGFsd2F5cyBzdG9yZSB0aGUgbmV4dCBlbGVtZW50IGJlZm9yZSBpdCBpcyByZXF1ZXN0ZWQuCisgICAgKiBJbiB0aGUgY2FzZSB0aGF0IHdlIGhhdmUgdG8gY29udGludWUgY2FsY3VsYXRpb25zIGludG8gdGhlIAorICAgICogc3VwcGxlbWVudGFyeSBwbGFuZXMsIGEgZmFsc2Ugd2lsbCBiZSByZXR1cm5lZC4KKyAgICAqIEBwYXJhbSBlbGVtZW50IHJldHVybiByZXN1bHQgb2JqZWN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIG5leHQgcmFuZ2UgaXMgZm91bmQsIGZhbHNlIGlmIHdlIGhhdmUgdG8gcHJvY2VlZCB0bworICAgICogICAgICAgICB0aGUgc3VwcGxlbWVudGFyeSByYW5nZS4KKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjYWxjdWxhdGVOZXh0Qk1QRWxlbWVudChFbGVtZW50IGVsZW1lbnQpCisgICAgeworICAgICAgICBpbnQgY3VycmVudEJsb2NrICAgID0gbV9uZXh0QmxvY2tfOworICAgICAgICBpbnQgY3VycmVudFZhbHVlICAgID0gbV9uZXh0VmFsdWVfOworICAgICAgICBtX2N1cnJlbnRDb2RlcG9pbnRfID0gbV9uZXh0Q29kZXBvaW50XzsKKyAgICAgICAgbV9uZXh0Q29kZXBvaW50XyArKzsKKyAgICAgICAgbV9uZXh0QmxvY2tJbmRleF8gKys7CisgICAgICAgIGlmICghY2hlY2tCbG9ja0RldGFpbChjdXJyZW50VmFsdWUpKSB7CisgICAgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgbV9uZXh0Q29kZXBvaW50XywgCisgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIC8vIHN5bndlZSBjaGVjayB0aGF0IG5leHQgYmxvY2sgaW5kZXggPT0gMCBoZXJlIAorICAgICAgICAvLyBlbnVtZXJhdGUgQk1QIC0gdGhlIG1haW4gbG9vcCBlbnVtZXJhdGVzIGRhdGEgYmxvY2tzCisgICAgICAgIHdoaWxlIChtX25leHRDb2RlcG9pbnRfIDwgVUNoYXJhY3Rlci5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgbV9uZXh0SW5kZXhfICsrOworICAgICAgICAgICAgLy8gYmVjYXVzZSBvZiB0aGUgd2F5IHRoZSBjaGFyYWN0ZXIgaXMgc3BsaXQgdG8gZm9ybSB0aGUgaW5kZXgKKyAgICAgICAgICAgIC8vIHRoZSBsZWFkIHN1cnJvZ2F0ZSBhbmQgdHJhaWwgc3Vycm9nYXRlIGNhbiBub3QgYmUgaW4gdGhlCisgICAgICAgICAgICAvLyBtaWQgb2YgYSBibG9jaworICAgICAgICAgICAgaWYgKG1fbmV4dENvZGVwb2ludF8gPT0gTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFXykgeworICAgICAgICAgICAgICAgIC8vIHNraXAgbGVhZCBzdXJyb2dhdGUgY29kZSB1bml0cywKKyAgICAgICAgICAgICAgICAvLyBnbyB0byBsZWFkIHN1cnJvZ2F0ZSBjb2RlcG9pbnRzCisgICAgICAgICAgICAgICAgbV9uZXh0SW5kZXhfID0gQk1QX0lOREVYX0xFTkdUSF87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChtX25leHRDb2RlcG9pbnRfID09IFRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUVfKSB7CisgICAgICAgICAgICAgICAgLy8gZ28gYmFjayB0byByZWd1bGFyIEJNUCBjb2RlIHBvaW50cworICAgICAgICAgICAgICAgIG1fbmV4dEluZGV4XyA9IG1fbmV4dENvZGVwb2ludF8gPj4gVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9uZXh0QmxvY2tJbmRleF8gPSAwOworICAgICAgICAgICAgaWYgKCFjaGVja0Jsb2NrKGN1cnJlbnRCbG9jaywgY3VycmVudFZhbHVlKSkgeworICAgICAgICAgICAgICAgIHNldFJlc3VsdChlbGVtZW50LCBtX2N1cnJlbnRDb2RlcG9pbnRfLCBtX25leHRDb2RlcG9pbnRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtX25leHRDb2RlcG9pbnRfIC0tOyAgIC8vIHN0ZXAgb25lIGJhY2sgc2luY2UgdGhpcyB2YWx1ZSBoYXMgbm90IGJlZW4KKyAgICAgICAgbV9uZXh0QmxvY2tJbmRleF8gLS07ICAvLyByZXRyaWV2ZWQgeWV0LgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgKiBGaW5kcyB0aGUgbmV4dCBzdXBwbGVtZW50YXJ5IGVsZW1lbnQuCisgICAgKiBGb3IgZWFjaCBlbnRyeSBpbiB0aGUgdHJpZSwgdGhlIHZhbHVlIHRvIGJlIGRlbGl2ZXJlZCBpcyBwYXNzZWQgdGhyb3VnaAorICAgICogZXh0cmFjdCgpLgorICAgICogV2UgYWx3YXlzIHN0b3JlIHRoZSBuZXh0IGVsZW1lbnQgYmVmb3JlIGl0IGlzIHJlcXVlc3RlZC4KKyAgICAqIENhbGxlZCBhZnRlciBjYWxjdWxhdGVOZXh0Qk1QKCkgY29tcGxldGVzIGl0cyByb3VuZCBvZiBCTVAgY2hhcmFjdGVycy4KKyAgICAqIFRoZXJlIGlzIGEgc2xpZ2h0IGRpZmZlcmVuY2UgaW4gdGhlIHVzYWdlIG9mIG1fY3VycmVudENvZGVwb2ludF8KKyAgICAqIGhlcmUgYXMgY29tcGFyZWQgdG8gY2FsY3VsYXRlTmV4dEJNUCgpLiBUaG91Z2ggYm90aCByZXByZXNlbnRzIHRoZQorICAgICogbG93ZXIgYm91bmQgb2YgdGhlIG5leHQgZWxlbWVudCwgaW4gY2FsY3VsYXRlTmV4dEJNUCgpIGl0IGdldHMgc2V0CisgICAgKiBhdCB0aGUgc3RhcnQgb2YgYW55IGxvb3AsIHdoZXJlLWVsc2UsIGluIGNhbGN1bGF0ZU5leHRTdXBwbGVtZW50YXJ5KCkKKyAgICAqIHNpbmNlIG1fY3VycmVudENvZGVwb2ludF8gYWxyZWFkeSBjb250YWlucyB0aGUgbG93ZXIgYm91bmQgb2YgdGhlCisgICAgKiBuZXh0IGVsZW1lbnQgKHBhc3NlZCBkb3duIGZyb20gY2FsY3VsYXRlTmV4dEJNUCgpKSwgd2Uga2VlcCBpdCB0aWxsIAorICAgICogdGhlIGVuZCBiZWZvcmUgcmVzZXR0aW5nIGl0IHRvIHRoZSBuZXcgdmFsdWUuCisgICAgKiBOb3RlLCBpZiB0aGVyZSBhcmUgbm8gbW9yZSBpdGVyYXRpb25zLCBpdCB3aWxsIG5ldmVyIGdldCB0byBoZXJlLiAKKyAgICAqIEJsb2NrZWQgb3V0IGJ5IG5leHQoKS4KKyAgICAqIEBwYXJhbSBlbGVtZW50IHJldHVybiByZXN1bHQgb2JqZWN0CisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgY2FsY3VsYXRlTmV4dFN1cHBsZW1lbnRhcnlFbGVtZW50KEVsZW1lbnQgZWxlbWVudCkKKyAgICB7CisgICAgICAgIGludCBjdXJyZW50VmFsdWUgPSBtX25leHRWYWx1ZV87CisgICAgICAgIGludCBjdXJyZW50QmxvY2sgPSBtX25leHRCbG9ja187CisgICAgICAgIG1fbmV4dENvZGVwb2ludF8gKys7CisgICAgICAgIG1fbmV4dEJsb2NrSW5kZXhfICsrOworICAgICAgICAKKyAgICAgICAgaWYgKFVURjE2LmdldFRyYWlsU3Vycm9nYXRlKG1fbmV4dENvZGVwb2ludF8pIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IFVURjE2LlRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsgCisgICAgICAgICAgICAvLyB0aGlzIHBpZWNlIGlzIG9ubHkgY2FsbGVkIHdoZW4gd2UgYXJlIGluIHRoZSBtaWRkbGUgb2YgYSBsZWFkCisgICAgICAgICAgICAvLyBzdXJyb2dhdGUgYmxvY2sKKyAgICAgICAgICAgIGlmICghY2hlY2tOdWxsTmV4dFRyYWlsSW5kZXgoKSAmJiAhY2hlY2tCbG9ja0RldGFpbChjdXJyZW50VmFsdWUpKSB7CisgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGVsZW1lbnQsIG1fY3VycmVudENvZGVwb2ludF8sIG1fbmV4dENvZGVwb2ludF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgICAgICAgICAgICAgIG1fY3VycmVudENvZGVwb2ludF8gPSBtX25leHRDb2RlcG9pbnRfOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHdlIGhhdmUgY2xlYXJlZCBvbmUgYmxvY2sKKyAgICAgICAgICAgIG1fbmV4dEluZGV4XyArKzsKKyAgICAgICAgICAgIG1fbmV4dFRyYWlsSW5kZXhPZmZzZXRfICsrOworICAgICAgICAgICAgaWYgKCFjaGVja1RyYWlsQmxvY2soY3VycmVudEJsb2NrLCBjdXJyZW50VmFsdWUpKSB7CisgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGVsZW1lbnQsIG1fY3VycmVudENvZGVwb2ludF8sIG1fbmV4dENvZGVwb2ludF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgICAgICAgICAgICAgIG1fY3VycmVudENvZGVwb2ludF8gPSBtX25leHRDb2RlcG9pbnRfOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnQgbmV4dExlYWQgID0gVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShtX25leHRDb2RlcG9pbnRfKTsKKyAgICAgICAgLy8gZW51bWVyYXRlIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMKKyAgICAgICAgd2hpbGUgKG5leHRMZWFkIDwgVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRV8pIHsKKyAgICAgICAgICAgIC8vIGxlYWQgc3Vycm9nYXRlIGFjY2VzcworICAgICAgICAgICAgaW50IGxlYWRCbG9jayA9IAorICAgICAgICAgICAgICAgICAgIG1fdHJpZV8ubV9pbmRleF9bbmV4dExlYWQgPj4gVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUX10gPDwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfOworICAgICAgICAgICAgaWYgKGxlYWRCbG9jayA9PSBtX3RyaWVfLm1fZGF0YU9mZnNldF8pIHsKKyAgICAgICAgICAgICAgICAvLyBubyBlbnRyaWVzIGZvciBhIHdob2xlIGJsb2NrIG9mIGxlYWQgc3Vycm9nYXRlcworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50VmFsdWUgIT0gbV9pbml0aWFsVmFsdWVfKSB7CisgICAgICAgICAgICAgICAgICAgIG1fbmV4dFZhbHVlXyAgICAgID0gbV9pbml0aWFsVmFsdWVfOworICAgICAgICAgICAgICAgICAgICBtX25leHRCbG9ja18gICAgICA9IDA7CisgICAgICAgICAgICAgICAgICAgIG1fbmV4dEJsb2NrSW5kZXhfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGVsZW1lbnQsIG1fY3VycmVudENvZGVwb2ludF8sIG1fbmV4dENvZGVwb2ludF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50Q29kZXBvaW50XyA9IG1fbmV4dENvZGVwb2ludF87CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBuZXh0TGVhZCArPSBEQVRBX0JMT0NLX0xFTkdUSF87CisgICAgICAgICAgICAgICAgLy8gbnVtYmVyIG9mIHRvdGFsIGFmZmVjdGVkIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50cyBpbiBvbmUKKyAgICAgICAgICAgICAgICAvLyBibG9jaworICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgbm90IGEgc2ltcGxlIGFkZGl0aW9uIG9mIAorICAgICAgICAgICAgICAgIC8vIERBVEFfQkxPQ0tfU1VQUExFTUVOVEFSWV9MRU5HVEggc2luY2Ugd2UgbmVlZCB0byBjb25zaWRlcgorICAgICAgICAgICAgICAgIC8vIHRoYXQgd2UgbWlnaHQgaGF2ZSBtb3ZlZCBzb21lIG9mIHRoZSBjb2RlcG9pbnRzCisgICAgICAgICAgICAgICAgbV9uZXh0Q29kZXBvaW50XyA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKW5leHRMZWFkLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcilVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtX3RyaWVfLm1fZGF0YU1hbmlwdWxhdGVfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWVsZCBEYXRhTWFuaXB1bGF0ZSBpbiB0aGlzIFRyaWUgaXMgbnVsbCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gZW51bWVyYXRlIHRyYWlsIHN1cnJvZ2F0ZXMgZm9yIHRoaXMgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgICAgIG1fbmV4dEluZGV4XyA9IG1fdHJpZV8ubV9kYXRhTWFuaXB1bGF0ZV8uZ2V0Rm9sZGluZ09mZnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3RyaWVfLmdldFZhbHVlKGxlYWRCbG9jayArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV4dExlYWQgJiBUcmllLklOREVYX1NUQUdFXzNfTUFTS18pKSk7CisgICAgICAgICAgICBpZiAobV9uZXh0SW5kZXhfIDw9IDApIHsKKyAgICAgICAgICAgICAgICAvLyBubyBkYXRhIGZvciB0aGlzIGxlYWQgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAhPSBtX2luaXRpYWxWYWx1ZV8pIHsKKyAgICAgICAgICAgICAgICAgICAgbV9uZXh0VmFsdWVfICAgICAgPSBtX2luaXRpYWxWYWx1ZV87CisgICAgICAgICAgICAgICAgICAgIG1fbmV4dEJsb2NrXyAgICAgID0gMDsKKyAgICAgICAgICAgICAgICAgICAgbV9uZXh0QmxvY2tJbmRleF8gPSAwOworICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoZWxlbWVudCwgbV9jdXJyZW50Q29kZXBvaW50XywgbV9uZXh0Q29kZXBvaW50XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmFsdWUpOworICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRDb2RlcG9pbnRfID0gbV9uZXh0Q29kZXBvaW50XzsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX25leHRDb2RlcG9pbnRfICs9IFRSQUlMX1NVUlJPR0FURV9DT1VOVF87CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1fbmV4dFRyYWlsSW5kZXhPZmZzZXRfID0gMDsKKyAgICAgICAgICAgICAgICBpZiAoIWNoZWNrVHJhaWxCbG9jayhjdXJyZW50QmxvY2ssIGN1cnJlbnRWYWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGVsZW1lbnQsIG1fY3VycmVudENvZGVwb2ludF8sIG1fbmV4dENvZGVwb2ludF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50Q29kZXBvaW50XyA9IG1fbmV4dENvZGVwb2ludF87CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9ICAgIAorICAgICAgICAgICAgbmV4dExlYWQgKys7CisgICAgICAgICB9CisKKyAgICAgICAgIC8vIGRlbGl2ZXIgbGFzdCByYW5nZQorICAgICAgICAgc2V0UmVzdWx0KGVsZW1lbnQsIG1fY3VycmVudENvZGVwb2ludF8sIFVDaGFyYWN0ZXIuTUFYX1ZBTFVFICsgMSwgCisgICAgICAgICAgICAgICAgICAgY3VycmVudFZhbHVlKTsKKyAgICB9ICAgIAorICAgIAorICAgIC8qKgorICAgICogSW50ZXJuYWwgYmxvY2sgdmFsdWUgY2FsY3VsYXRpb25zCisgICAgKiBQZXJmb3JtcyBjYWxjdWxhdGlvbnMgb24gYSBkYXRhIGJsb2NrIHRvIGZpbmQgY29kZXBvaW50cyBpbiBtX25leHRCbG9ja18KKyAgICAqIGFmdGVyIHRoZSBpbmRleCBtX25leHRCbG9ja0luZGV4XyB0aGF0IGhhcyB0aGUgc2FtZSB2YWx1ZS4KKyAgICAqIE5vdGUgbV8qXyB2YXJpYWJsZXMgYXQgdGhpcyBwb2ludCBpcyB0aGUgbmV4dCBjb2RlcG9pbnQgd2hvc2UgdmFsdWUKKyAgICAqIGhhcyBub3QgYmVlbiBjYWxjdWxhdGVkLgorICAgICogQnV0IHdoZW4gcmV0dXJuZWQgd2l0aCBmYWxzZSwgaXQgd2lsbCBiZSB0aGUgbGFzdCBjb2RlcG9pbnQgd2hvc2UKKyAgICAqIHZhbHVlIGhhcyBiZWVuIGNhbGN1bGF0ZWQuCisgICAgKiBAcGFyYW0gY3VycmVudFZhbHVlIHRoZSB2YWx1ZSB3aGljaCBvdGhlciBjb2RlcG9pbnRzIGFyZSB0ZXN0ZWQgYWdhaW5zdAorICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB3aG9sZSBibG9jayBoYXMgdGhlIHNhbWUgdmFsdWUgYXMgY3VycmVudFZhbHVlIG9yIGlmCisgICAgKiAgICAgICAgICAgICAgdGhlIHdob2xlIGJsb2NrIGhhcyBiZWVuIGNhbGN1bGF0ZWQsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja0Jsb2NrRGV0YWlsKGludCBjdXJyZW50VmFsdWUpCisgICAgeworICAgICAgICB3aGlsZSAobV9uZXh0QmxvY2tJbmRleF8gPCBEQVRBX0JMT0NLX0xFTkdUSF8pIHsKKyAgICAgICAgICAgIG1fbmV4dFZhbHVlXyA9IGV4dHJhY3QobV90cmllXy5nZXRWYWx1ZShtX25leHRCbG9ja18gKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX25leHRCbG9ja0luZGV4XykpOworICAgICAgICAgICAgaWYgKG1fbmV4dFZhbHVlXyAhPSBjdXJyZW50VmFsdWUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArKyBtX25leHRCbG9ja0luZGV4XzsKKyAgICAgICAgICAgICsrIG1fbmV4dENvZGVwb2ludF87CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogSW50ZXJuYWwgYmxvY2sgdmFsdWUgY2FsY3VsYXRpb25zCisgICAgKiBQZXJmb3JtcyBjYWxjdWxhdGlvbnMgb24gYSBkYXRhIGJsb2NrIHRvIGZpbmQgY29kZXBvaW50cyBpbiBtX25leHRCbG9ja18KKyAgICAqIHRoYXQgaGFzIHRoZSBzYW1lIHZhbHVlLiAKKyAgICAqIFdpbGwgY2FsbCBjaGVja0Jsb2NrRGV0YWlsKCkgaWYgaGlnaGxldmVsIGNoZWNrIGZhaWxzLgorICAgICogTm90ZSBtXypfIHZhcmlhYmxlcyBhdCB0aGlzIHBvaW50IGlzIHRoZSBuZXh0IGNvZGVwb2ludCB3aG9zZSB2YWx1ZQorICAgICogaGFzIG5vdCBiZWVuIGNhbGN1bGF0ZWQuCisgICAgKiBAcGFyYW0gY3VycmVudEJsb2NrIHRoZSBpbml0aWFsIGJsb2NrIGNvbnRhaW5pbmcgYWxsIGN1cnJlbnRWYWx1ZQorICAgICogQHBhcmFtIGN1cnJlbnRWYWx1ZSB0aGUgdmFsdWUgd2hpY2ggb3RoZXIgY29kZXBvaW50cyBhcmUgdGVzdGVkIGFnYWluc3QKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgd2hvbGUgYmxvY2sgaGFzIHRoZSBzYW1lIHZhbHVlIGFzIGN1cnJlbnRWYWx1ZSBvciBpZgorICAgICogICAgICAgICAgICAgIHRoZSB3aG9sZSBibG9jayBoYXMgYmVlbiBjYWxjdWxhdGVkLCBmYWxzZSBvdGhlcndpc2UuCisgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2hlY2tCbG9jayhpbnQgY3VycmVudEJsb2NrLCBpbnQgY3VycmVudFZhbHVlKSAKKyAgICB7CisgICAgICAgIG1fbmV4dEJsb2NrXyA9IG1fdHJpZV8ubV9pbmRleF9bbV9uZXh0SW5kZXhfXSA8PCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXzsKKyAgICAgICAgaWYgKG1fbmV4dEJsb2NrXyA9PSBjdXJyZW50QmxvY2sgJiYKKyAgICAgICAgICAgIChtX25leHRDb2RlcG9pbnRfIC0gbV9jdXJyZW50Q29kZXBvaW50XykgPj0gREFUQV9CTE9DS19MRU5HVEhfKSB7CisgICAgICAgICAgICAvLyB0aGUgYmxvY2sgaXMgdGhlIHNhbWUgYXMgdGhlIHByZXZpb3VzIG9uZSwgZmlsbGVkIHdpdGggCisgICAgICAgICAgICAvLyBjdXJyZW50VmFsdWUKKyAgICAgICAgICAgIG1fbmV4dENvZGVwb2ludF8gKz0gREFUQV9CTE9DS19MRU5HVEhfOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG1fbmV4dEJsb2NrXyA9PSAwKSB7CisgICAgICAgICAgICAvLyB0aGlzIGlzIHRoZSBhbGwtaW5pdGlhbC12YWx1ZSBibG9jaworICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAhPSBtX2luaXRpYWxWYWx1ZV8pIHsKKyAgICAgICAgICAgICAgICBtX25leHRWYWx1ZV8gICAgICA9IG1faW5pdGlhbFZhbHVlXzsKKyAgICAgICAgICAgICAgICBtX25leHRCbG9ja0luZGV4XyA9IDA7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9uZXh0Q29kZXBvaW50XyArPSBEQVRBX0JMT0NLX0xFTkdUSF87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoIWNoZWNrQmxvY2tEZXRhaWwoY3VycmVudFZhbHVlKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBJbnRlcm5hbCBibG9jayB2YWx1ZSBjYWxjdWxhdGlvbnMKKyAgICAqIFBlcmZvcm1zIGNhbGN1bGF0aW9ucyBvbiBtdWx0aXBsZSBkYXRhIGJsb2NrcyBmb3IgYSBzZXQgb2YgdHJhaWwgCisgICAgKiBzdXJyb2dhdGVzIHRvIGZpbmQgY29kZXBvaW50cyBpbiBtX25leHRCbG9ja18gdGhhdCBoYXMgdGhlIHNhbWUgdmFsdWUuIAorICAgICogV2lsbCBjYWxsIGNoZWNrQmxvY2soKSBmb3IgaW50ZXJuYWwgYmxvY2sgY2hlY2tzLgorICAgICogTm90ZSBtXypfIHZhcmlhYmxlcyBhdCB0aGlzIHBvaW50IGlzIHRoZSBuZXh0IGNvZGVwb2ludCB3aG9zZSB2YWx1ZQorICAgICogaGFzIG5vdCBiZWVuIGNhbGN1bGF0ZWQuCisgICAgKiBAcGFyYW0gY3VycmVudEJsb2NrIHRoZSBpbml0aWFsIGJsb2NrIGNvbnRhaW5pbmcgYWxsIGN1cnJlbnRWYWx1ZQorICAgICogQHBhcmFtIGN1cnJlbnRWYWx1ZSB0aGUgdmFsdWUgd2hpY2ggb3RoZXIgY29kZXBvaW50cyBhcmUgdGVzdGVkIGFnYWluc3QKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgd2hvbGUgYmxvY2sgaGFzIHRoZSBzYW1lIHZhbHVlIGFzIGN1cnJlbnRWYWx1ZSBvciBpZgorICAgICogICAgICAgICAgICAgIHRoZSB3aG9sZSBibG9jayBoYXMgYmVlbiBjYWxjdWxhdGVkLCBmYWxzZSBvdGhlcndpc2UuCisgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2hlY2tUcmFpbEJsb2NrKGludCBjdXJyZW50QmxvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY3VycmVudFZhbHVlKQorICAgIHsKKyAgICAgICAgLy8gZW51bWVyYXRlIGNvZGUgcG9pbnRzIGZvciB0aGlzIGxlYWQgc3Vycm9nYXRlCisgICAgICAgIHdoaWxlIChtX25leHRUcmFpbEluZGV4T2Zmc2V0XyA8IFRSQUlMX1NVUlJPR0FURV9JTkRFWF9CTE9DS19MRU5HVEhfKSAKKyAgICAgICAgeworICAgICAgICAgICAgLy8gaWYgd2UgZXZlciByZWFjaCBoZXJlLCB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIGEgbmV3IGJsb2NrCisgICAgICAgICAgICBtX25leHRCbG9ja0luZGV4XyA9IDA7CisgICAgICAgICAgICAvLyBjb3B5IG9mIG1vc3Qgb2YgdGhlIGJvZHkgb2YgdGhlIEJNUCBsb29wCisgICAgICAgICAgICBpZiAoIWNoZWNrQmxvY2soY3VycmVudEJsb2NrLCBjdXJyZW50VmFsdWUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9uZXh0VHJhaWxJbmRleE9mZnNldF8gKys7CisgICAgICAgICAgICBtX25leHRJbmRleF8gKys7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogQ2hlY2tzIGlmIHdlIGFyZSBiZWdpbm5pbmcgYXQgdGhlIHN0YXJ0IG9mIGEgaW5pdGlhbCBibG9jay4KKyAgICAqIElmIHdlIGFyZSB0aGVuIHRoZSByZXN0IG9mIHRoZSBjb2RlcG9pbnRzIGluIHRoaXMgaW5pdGlhbCBibG9jaworICAgICogaGFzIHRoZSBzYW1lIHZhbHVlcy4KKyAgICAqIFdlIGluY3JlbWVudCBtX25leHRDb2RlcG9pbnRfIGFuZCByZWxldmFudCBkYXRhIG1lbWJlcnMgaWYgc28uCisgICAgKiBUaGlzIGlzIHVzZWQgb25seSBpbiBmb3IgdGhlIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50cyBiZWNhdXNlCisgICAgKiB0aGUgb2Zmc2V0IHRvIHRoZSB0cmFpbCBpbmRleGVzIGNvdWxkIGJlIDAuCisgICAgKiBAcmV0dXJuIHRydWUgaWYgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiBhIGluaXRpYWwgYmxvY2suCisgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2hlY2tOdWxsTmV4dFRyYWlsSW5kZXgoKQorICAgIHsKKyAgICAgICAgaWYgKG1fbmV4dEluZGV4XyA8PSAwKSB7CisgICAgICAgICAgICBtX25leHRDb2RlcG9pbnRfICs9IFRSQUlMX1NVUlJPR0FURV9DT1VOVF8gLSAxOworICAgICAgICAgICAgaW50IG5leHRMZWFkICA9IFVURjE2LmdldExlYWRTdXJyb2dhdGUobV9uZXh0Q29kZXBvaW50Xyk7CisgICAgICAgICAgICBpbnQgbGVhZEJsb2NrID0gCisgICAgICAgICAgICAgICAgICAgbV90cmllXy5tX2luZGV4X1tuZXh0TGVhZCA+PiBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfXSA8PCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyaWUuSU5ERVhfU1RBR0VfMl9TSElGVF87CisgICAgICAgICAgICBpZiAobV90cmllXy5tX2RhdGFNYW5pcHVsYXRlXyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgZmllbGQgRGF0YU1hbmlwdWxhdGUgaW4gdGhpcyBUcmllIGlzIG51bGwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fbmV4dEluZGV4XyA9IG1fdHJpZV8ubV9kYXRhTWFuaXB1bGF0ZV8uZ2V0Rm9sZGluZ09mZnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3RyaWVfLmdldFZhbHVlKGxlYWRCbG9jayArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV4dExlYWQgJiBUcmllLklOREVYX1NUQUdFXzNfTUFTS18pKSk7CisgICAgICAgICAgICBtX25leHRJbmRleF8gLS07CisgICAgICAgICAgICBtX25leHRCbG9ja0luZGV4XyA9ICBEQVRBX0JMT0NLX0xFTkdUSF87CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogU2l6ZSBvZiB0aGUgc3RhZ2UgMSBCTVAgaW5kZXhlcworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJNUF9JTkRFWF9MRU5HVEhfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAwID4+IFRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF87CisgICAgLyoqCisgICAgKiBMZWFkIHN1cnJvZ2F0ZSBtaW5pbXVtIHZhbHVlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFXyA9IDB4RDgwMDsKKyAgICAvKioKKyAgICAqIFRyYWlsIHN1cnJvZ2F0ZSBtaW5pbXVtIHZhbHVlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRV8gPSAweERDMDA7CisgICAgLyoqCisgICAgKiBUcmFpbCBzdXJyb2dhdGUgbWF4aW11bSB2YWx1ZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUVfID0gMHhERkZGOworICAgIC8qKgorICAgICogTnVtYmVyIG9mIHRyYWlsIHN1cnJvZ2F0ZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV9DT1VOVF8gPSAweDQwMDsKKyAgICAvKioKKyAgICAqIE51bWJlciBvZiBzdGFnZSAxIGluZGV4ZXMgZm9yIHN1cHBsZW1lbnRhcnkgY2FsY3VsYXRpb25zIHRoYXQgbWFwcyB0bworICAgICogZWFjaCBsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIuCisgICAgKiBTZWUgc2Vjb25kIHBhc3MgaW50byBnZXRSYXdPZmZzZXQgZm9yIHRoZSB0cmFpbCBzdXJyb2dhdGUgY2hhcmFjdGVyLgorICAgICogMTAgZm9yIHNpZ25pZmljYW50IG51bWJlciBvZiBiaXRzIGZvciB0cmFpbCBzdXJyb2dhdGVzLCA1IGZvciB3aGF0IHdlCisgICAgKiBkaXNjYXJkIGR1cmluZyBzaGlmdGluZy4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUUkFJTF9TVVJST0dBVEVfSU5ERVhfQkxPQ0tfTEVOR1RIXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxIDw8ICgxMCAtIFRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF8pOworICAgIC8qKgorICAgICogTnVtYmVyIG9mIGRhdGEgdmFsdWVzIGluIGEgc3RhZ2UgMiAoZGF0YSBhcnJheSkgYmxvY2suCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREFUQV9CTE9DS19MRU5HVEhfID0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfOworICAgIC8qKgorICAgICogTnVtYmVyIG9mIGNvZGVwb2ludHMgaW4gYSBzdGFnZSAyIGJsb2NrCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREFUQV9CTE9DS19TVVBQTEVNRU5UQVJZX0xFTkdUSF8gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQVRBX0JMT0NLX0xFTkdUSF8gPDwgMTA7CisgICAgLyoqCisgICAgKiBUcmllIGluc3RhbmNlCisgICAgKi8KKyAgICBwcml2YXRlIFRyaWUgbV90cmllXzsKKyAgICAvKioKKyAgICAqIEluaXRpYWwgdmFsdWUgZm9yIHRyaWUgdmFsdWVzCisgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2luaXRpYWxWYWx1ZV87CisgICAgLyoqCisgICAgKiBOZXh0IGVsZW1lbnQgcmVzdWx0cyBhbmQgZGF0YS4KKyAgICAqLworICAgIHByaXZhdGUgaW50IG1fY3VycmVudENvZGVwb2ludF87CisgICAgcHJpdmF0ZSBpbnQgbV9uZXh0Q29kZXBvaW50XzsKKyAgICBwcml2YXRlIGludCBtX25leHRWYWx1ZV87CisgICAgcHJpdmF0ZSBpbnQgbV9uZXh0SW5kZXhfOworICAgIHByaXZhdGUgaW50IG1fbmV4dEJsb2NrXzsKKyAgICBwcml2YXRlIGludCBtX25leHRCbG9ja0luZGV4XzsKKyAgICBwcml2YXRlIGludCBtX25leHRUcmFpbEluZGV4T2Zmc2V0XzsKKyAgICAvKioKKyAgICAqIFRoaXMgaXMgdGhlIHJldHVybiByZXN1bHQgZWxlbWVudAorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9zdGFydF87CisgICAgcHJpdmF0ZSBpbnQgbV9saW1pdF87CisgICAgcHJpdmF0ZSBpbnQgbV92YWx1ZV87Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQmlEaVByb3BzLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQmlEaVByb3BzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmViMzAwMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VCaURpUHJvcHMuamF2YQpAQCAtMCwwICsxLDMzMyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIFVCaURpUHJvcHMuamF2YQorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDIwMDVqYW4xNgorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqCisqICAgTG93LWxldmVsIFVuaWNvZGUgYmlkaS9zaGFwaW5nIHByb3BlcnRpZXMgYWNjZXNzLgorKiAgIEphdmEgcG9ydCBvZiB1YmlkaV9wcm9wcy5oLy5jLgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlVmFsdWVJdGVyYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eTsKKworcHVibGljIGZpbmFsIGNsYXNzIFVCaURpUHJvcHMgeworICAgIC8vIGNvbnN0cnVjdG9ycyBldGMuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKworICAgIC8vIHBvcnQgb2YgdWJpZGlfb3BlblByb3BzKCkKKyAgICBwdWJsaWMgVUJpRGlQcm9wcygpIHRocm93cyBJT0V4Y2VwdGlvbnsKKyAgICAgICAgSW5wdXRTdHJlYW0gaXM9SUNVRGF0YS5nZXRTdHJlYW0oSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JVTkRMRSsiLyIrREFUQV9GSUxFX05BTUUpOworICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGI9bmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaXMsIDQwOTYgLyogZGF0YSBidWZmZXIgc2l6ZSAqLyk7CisgICAgICAgIHJlYWREYXRhKGIpOworICAgICAgICBiLmNsb3NlKCk7CisgICAgICAgIGlzLmNsb3NlKCk7CisKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmVhZERhdGEoSW5wdXRTdHJlYW0gaXMpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIERhdGFJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbT1uZXcgRGF0YUlucHV0U3RyZWFtKGlzKTsKKworICAgICAgICAvLyByZWFkIHRoZSBoZWFkZXIKKyAgICAgICAgdW5pY29kZVZlcnNpb249SUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRTdHJlYW0sIEZNVCwgbmV3IElzQWNjZXB0YWJsZSgpKTsKKworICAgICAgICAvLyByZWFkIGluZGV4ZXNbXQorICAgICAgICBpbnQgaSwgY291bnQ7CisgICAgICAgIGNvdW50PWlucHV0U3RyZWFtLnJlYWRJbnQoKTsKKyAgICAgICAgaWYoY291bnQ8SVhfSU5ERVhfVE9QKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oImluZGV4ZXNbMF0gdG9vIHNtYWxsIGluICIrREFUQV9GSUxFX05BTUUpOworICAgICAgICB9CisgICAgICAgIGluZGV4ZXM9bmV3IGludFtjb3VudF07CisKKyAgICAgICAgaW5kZXhlc1swXT1jb3VudDsKKyAgICAgICAgZm9yKGk9MTsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICBpbmRleGVzW2ldPWlucHV0U3RyZWFtLnJlYWRJbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHJlYWQgdGhlIHRyaWUKKyAgICAgICAgdHJpZT1uZXcgQ2hhclRyaWUoaW5wdXRTdHJlYW0sIG51bGwpOworCisgICAgICAgIC8vIHJlYWQgbWlycm9yc1tdCisgICAgICAgIGNvdW50PWluZGV4ZXNbSVhfTUlSUk9SX0xFTkdUSF07CisgICAgICAgIGlmKGNvdW50PjApIHsKKyAgICAgICAgICAgIG1pcnJvcnM9bmV3IGludFtjb3VudF07CisgICAgICAgICAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBtaXJyb3JzW2ldPWlucHV0U3RyZWFtLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHJlYWQgamdBcnJheVtdCisgICAgICAgIGNvdW50PWluZGV4ZXNbSVhfSkdfTElNSVRdLWluZGV4ZXNbSVhfSkdfU1RBUlRdOworICAgICAgICBqZ0FycmF5PW5ldyBieXRlW2NvdW50XTsKKyAgICAgICAgZm9yKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICBqZ0FycmF5W2ldPWlucHV0U3RyZWFtLnJlYWRCeXRlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBpbXBsZW1lbnQgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZQorICAgIHByaXZhdGUgZmluYWwgY2xhc3MgSXNBY2NlcHRhYmxlIGltcGxlbWVudHMgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZSB7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKSB7CisgICAgICAgICAgICBmb3JtYXRWZXJzaW9uPXZlcnNpb247CisgICAgICAgICAgICByZXR1cm4gdmVyc2lvblswXT09MSAmJgorICAgICAgICAgICAgICAgICAgIHZlcnNpb25bMl09PVRyaWUuSU5ERVhfU1RBR0VfMV9TSElGVF8gJiYgdmVyc2lvblszXT09VHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXzsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFVCaURpUHJvcHMgc2luZ2xldG9uCisgICAgcHJpdmF0ZSBzdGF0aWMgVUJpRGlQcm9wcyBnQmRwPW51bGw7CisKKyAgICAvLyBwb3J0IG9mIHViaWRpX2dldFNpbmdsZXRvbigpCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBzeW5jaHJvbml6ZWQgVUJpRGlQcm9wcyBnZXRTaW5nbGV0b24oKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZihnQmRwPT1udWxsKSB7CisgICAgICAgICAgICBnQmRwPW5ldyBVQmlEaVByb3BzKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdCZHA7CisgICAgfQorCisgICAgLy8gVUJpRGlQcm9wcyBkdW1teSBzaW5nbGV0b24KKyAgICBwcml2YXRlIHN0YXRpYyBVQmlEaVByb3BzIGdCZHBEdW1teT1udWxsOworCisgICAgcHJpdmF0ZSBVQmlEaVByb3BzKGJvb2xlYW4gbWFrZUR1bW15KSB7IC8vIGlnbm9yZSBtYWtlRHVtbXksIG9ubHkgY3JlYXRlcyBhIHVuaXF1ZSBzaWduYXR1cmUKKyAgICAgICAgZm9ybWF0VmVyc2lvbj1uZXcgYnl0ZVtdIHsgMSwgMCwgVHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXywgVHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXyB9OworICAgICAgICB1bmljb2RlVmVyc2lvbj1uZXcgYnl0ZVtdIHsgMiwgMCwgMCwgMCB9OworICAgICAgICBpbmRleGVzPW5ldyBpbnRbSVhfVE9QXTsKKyAgICAgICAgaW5kZXhlc1swXT1JWF9UT1A7CisgICAgICAgIHRyaWU9bmV3IENoYXJUcmllKDAsIDAsIG51bGwpOyAvLyBkdW1teSB0cmllLCBhbHdheXMgcmV0dXJucyAwCisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgc2luZ2xldG9uIGR1bW15IG9iamVjdCwgb25lIHRoYXQgd29ya3Mgd2l0aCBubyByZWFsIGRhdGEuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB3aGVuIHRoZSByZWFsIGRhdGEgaXMgbm90IGF2YWlsYWJsZS4KKyAgICAgKiBVc2luZyB0aGUgZHVtbXkgY2FuIHJlZHVjZSBjaGVja3MgZm9yIGF2YWlsYWJsZSBkYXRhIGFmdGVyIGFuIGluaXRpYWwgZmFpbHVyZS4KKyAgICAgKiBQb3J0IG9mIHVjYXNlX2dldER1bW15KCkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBzeW5jaHJvbml6ZWQgVUJpRGlQcm9wcyBnZXREdW1teSgpIHsKKyAgICAgICAgaWYoZ0JkcER1bW15PT1udWxsKSB7CisgICAgICAgICAgICBnQmRwRHVtbXk9bmV3IFVCaURpUHJvcHModHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdCZHBEdW1teTsKKyAgICB9CisKKyAgICAvLyBzZXQgb2YgcHJvcGVydHkgc3RhcnRzIGZvciBVbmljb2RlU2V0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBhZGRQcm9wZXJ0eVN0YXJ0cyhVbmljb2RlU2V0IHNldCkgeworICAgICAgICBpbnQgaSwgbGVuZ3RoOworICAgICAgICBpbnQgYywgc3RhcnQsIGxpbWl0OworCisgICAgICAgIGJ5dGUgcHJldiwgamc7CisKKyAgICAgICAgLyogYWRkIHRoZSBzdGFydCBjb2RlIHBvaW50IG9mIGVhY2ggc2FtZS12YWx1ZSByYW5nZSBvZiB0aGUgdHJpZSAqLworICAgICAgICBUcmllSXRlcmF0b3IgaXRlcj1uZXcgVHJpZUl0ZXJhdG9yKHRyaWUpOworICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCBlbGVtZW50PW5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworCisgICAgICAgIHdoaWxlKGl0ZXIubmV4dChlbGVtZW50KSl7CisgICAgICAgICAgICBzZXQuYWRkKGVsZW1lbnQuc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgLyogYWRkIHRoZSBjb2RlIHBvaW50cyBmcm9tIHRoZSBiaWRpIG1pcnJvcmluZyB0YWJsZSAqLworICAgICAgICBsZW5ndGg9aW5kZXhlc1tJWF9NSVJST1JfTEVOR1RIXTsKKyAgICAgICAgZm9yKGk9MDsgaTxsZW5ndGg7ICsraSkgeworICAgICAgICAgICAgYz1nZXRNaXJyb3JDb2RlUG9pbnQobWlycm9yc1tpXSk7CisgICAgICAgICAgICBzZXQuYWRkKGMsIGMrMSk7CisgICAgICAgIH0KKworICAgICAgICAvKiBhZGQgdGhlIGNvZGUgcG9pbnRzIGZyb20gdGhlIEpvaW5pbmdfR3JvdXAgYXJyYXkgd2hlcmUgdGhlIHZhbHVlIGNoYW5nZXMgKi8KKyAgICAgICAgc3RhcnQ9aW5kZXhlc1tJWF9KR19TVEFSVF07CisgICAgICAgIGxpbWl0PWluZGV4ZXNbSVhfSkdfTElNSVRdOworICAgICAgICBsZW5ndGg9bGltaXQtc3RhcnQ7CisgICAgICAgIHByZXY9MDsKKyAgICAgICAgZm9yKGk9MDsgaTxsZW5ndGg7ICsraSkgeworICAgICAgICAgICAgamc9amdBcnJheVtpXTsKKyAgICAgICAgICAgIGlmKGpnIT1wcmV2KSB7CisgICAgICAgICAgICAgICAgc2V0LmFkZChzdGFydCk7CisgICAgICAgICAgICAgICAgcHJldj1qZzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrc3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgaWYocHJldiE9MCkgeworICAgICAgICAgICAgLyogYWRkIHRoZSBsaW1pdCBjb2RlIHBvaW50IGlmIHRoZSBsYXN0IHZhbHVlIHdhcyBub3QgMCAoaXQgaXMgbm93IHN0YXJ0PT1saW1pdCkgKi8KKyAgICAgICAgICAgIHNldC5hZGQobGltaXQpOworICAgICAgICB9CisKKyAgICAgICAgLyogYWRkIGNvZGUgcG9pbnRzIHdpdGggaGFyZGNvZGVkIHByb3BlcnRpZXMsIHBsdXMgdGhlIG9uZXMgZm9sbG93aW5nIHRoZW0gKi8KKworICAgICAgICAvKiAobm9uZSByaWdodCBub3cpICovCisgICAgfQorCisgICAgLy8gcHJvcGVydHkgYWNjZXNzIGZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorCisgICAgcHVibGljIGZpbmFsIGludCBnZXRNYXhWYWx1ZShpbnQgd2hpY2gpIHsKKyAgICAgICAgaW50IG1heDsKKworICAgICAgICBtYXg9aW5kZXhlc1tJWF9NQVhfVkFMVUVTXTsKKyAgICAgICAgc3dpdGNoKHdoaWNoKSB7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LkJJRElfQ0xBU1M6CisgICAgICAgICAgICByZXR1cm4gKG1heCZDTEFTU19NQVNLKTsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuSk9JTklOR19HUk9VUDoKKyAgICAgICAgICAgIHJldHVybiAobWF4Jk1BWF9KR19NQVNLKT4+TUFYX0pHX1NISUZUOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5KT0lOSU5HX1RZUEU6CisgICAgICAgICAgICByZXR1cm4gKG1heCZKVF9NQVNLKT4+SlRfU0hJRlQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gLTE7IC8qIHVuZGVmaW5lZCAqLworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCBnZXRDbGFzcyhpbnQgYykgeworICAgICAgICByZXR1cm4gZ2V0Q2xhc3NGcm9tUHJvcHModHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKSk7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gaXNNaXJyb3JlZChpbnQgYykgeworICAgICAgICByZXR1cm4gZ2V0RmxhZ0Zyb21Qcm9wcyh0cmllLmdldENvZGVQb2ludFZhbHVlKGMpLCBJU19NSVJST1JFRF9TSElGVCk7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCBnZXRNaXJyb3IoaW50IGMpIHsKKyAgICAgICAgaW50IHByb3BzOworICAgICAgICBpbnQgZGVsdGE7CisKKyAgICAgICAgcHJvcHM9dHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgZGVsdGE9KChzaG9ydClwcm9wcyk+Pk1JUlJPUl9ERUxUQV9TSElGVDsKKyAgICAgICAgaWYoZGVsdGEhPUVTQ19NSVJST1JfREVMVEEpIHsKKyAgICAgICAgICAgIHJldHVybiBjK2RlbHRhOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogbG9vayBmb3IgbWlycm9yIGNvZGUgcG9pbnQgaW4gdGhlIG1pcnJvcnNbXSB0YWJsZSAqLworICAgICAgICAgICAgaW50IG07CisgICAgICAgICAgICBpbnQgaSwgbGVuZ3RoOworICAgICAgICAgICAgaW50IGMyOworCisgICAgICAgICAgICBsZW5ndGg9aW5kZXhlc1tJWF9NSVJST1JfTEVOR1RIXTsKKworICAgICAgICAgICAgLyogbGluZWFyIHNlYXJjaCAqLworICAgICAgICAgICAgZm9yKGk9MDsgaTxsZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIG09bWlycm9yc1tpXTsKKyAgICAgICAgICAgICAgICBjMj1nZXRNaXJyb3JDb2RlUG9pbnQobSk7CisgICAgICAgICAgICAgICAgaWYoYz09YzIpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZm91bmQgYywgcmV0dXJuIGl0cyBtaXJyb3IgY29kZSBwb2ludCB1c2luZyB0aGUgaW5kZXggaW4gbSAqLworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2V0TWlycm9yQ29kZVBvaW50KG1pcnJvcnNbZ2V0TWlycm9ySW5kZXgobSldKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoYzxjMikgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIGMgbm90IGZvdW5kLCByZXR1cm4gaXQgaXRzZWxmICovCisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGlzQmlkaUNvbnRyb2woaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIGdldEZsYWdGcm9tUHJvcHModHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKSwgQklESV9DT05UUk9MX1NISUZUKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc0pvaW5Db250cm9sKGludCBjKSB7CisgICAgICAgIHJldHVybiBnZXRGbGFnRnJvbVByb3BzKHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyksIEpPSU5fQ09OVFJPTF9TSElGVCk7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCBnZXRKb2luaW5nVHlwZShpbnQgYykgeworICAgICAgICByZXR1cm4gKHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYykmSlRfTUFTSyk+PkpUX1NISUZUOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0Sm9pbmluZ0dyb3VwKGludCBjKSB7CisgICAgICAgIGludCBzdGFydCwgbGltaXQ7CisKKyAgICAgICAgc3RhcnQ9aW5kZXhlc1tJWF9KR19TVEFSVF07CisgICAgICAgIGxpbWl0PWluZGV4ZXNbSVhfSkdfTElNSVRdOworICAgICAgICBpZihzdGFydDw9YyAmJiBjPGxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gKGludClqZ0FycmF5W2Mtc3RhcnRdJjB4ZmY7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5Kb2luaW5nR3JvdXAuTk9fSk9JTklOR19HUk9VUDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKyAgICBwcml2YXRlIGludCBpbmRleGVzW107CisgICAgcHJpdmF0ZSBpbnQgbWlycm9yc1tdOworICAgIHByaXZhdGUgYnl0ZSBqZ0FycmF5W107CisKKyAgICBwcml2YXRlIENoYXJUcmllIHRyaWU7CisgICAgcHJpdmF0ZSBieXRlIGZvcm1hdFZlcnNpb25bXTsKKyAgICBwcml2YXRlIGJ5dGUgdW5pY29kZVZlcnNpb25bXTsgIAorCisgICAgLy8gZGF0YSBmb3JtYXQgY29uc3RhbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX05BTUU9InViaWRpIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9UWVBFPSJpY3UiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX0ZJTEVfTkFNRT1EQVRBX05BTUUrIi4iK0RBVEFfVFlQRTsKKworICAgIC8qIGZvcm1hdCAiQmlEaSIgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEZNVFtdPXsgMHg0MiwgMHg2OSwgMHg0NCwgMHg2OSB9OworCisgICAgLyogaW5kZXhlcyBpbnRvIGluZGV4ZXNbXSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9JTkRFWF9UT1A9MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVhfTEVOR1RIPTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX1RSSUVfU0laRT0yOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9NSVJST1JfTEVOR1RIPTM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVhfSkdfU1RBUlQ9NDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVhfSkdfTElNSVQ9NTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9NQVhfVkFMVUVTPTE1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9UT1A9MTY7CisKKyAgICAvLyBkZWZpbml0aW9ucyBmb3IgMTYtYml0IGJpZGkvc2hhcGluZyBwcm9wZXJ0aWVzIHdvcmQgLS0tLS0tLS0tLS0tLS0tLS0gKioqCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ0xBU1NfU0hJRlQ9MCwgKi8gICAgIC8qIGJpZGkgY2xhc3M6IDUgYml0cyAoNC4uMCkgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSlRfU0hJRlQ9NTsgICAgICAgICAgIC8qIGpvaW5pbmcgdHlwZTogMyBiaXRzICg3Li41KSAqLworCisgICAgLyogcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IF9TSElGVD04LCByZXNlcnZlZDogMiBiaXRzICg5Li44KSAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEpPSU5fQ09OVFJPTF9TSElGVD0xMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQklESV9DT05UUk9MX1NISUZUPTExOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElTX01JUlJPUkVEX1NISUZUPTEyOyAgICAgICAgIC8qICdpcyBtaXJyb3JlZCcgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUlSUk9SX0RFTFRBX1NISUZUPTEzOyAgICAgICAgLyogYmlkaSBtaXJyb3JpbmcgZGVsdGE6IDMgYml0cyAoMTUuLjEzKSAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9KR19TSElGVD0xNjsgICAgICAgICAgICAgIC8qIG1heCBKRyB2YWx1ZSBpbiBpbmRleGVzW01BWF9WQUxVRVNfSU5ERVhdIGJpdHMgMjMuLjE2ICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0xBU1NfTUFTSz0gICAgMHgwMDAwMDAxZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSlRfTUFTSz0gICAgICAgMHgwMDAwMDBlMDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfSkdfTUFTSz0gICAweDAwZmYwMDAwOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldENsYXNzRnJvbVByb3BzKGludCBwcm9wcykgeworICAgICAgICByZXR1cm4gcHJvcHMmQ0xBU1NfTUFTSzsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBnZXRGbGFnRnJvbVByb3BzKGludCBwcm9wcywgaW50IHNoaWZ0KSB7CisgICAgICAgIHJldHVybiAoKHByb3BzPj5zaGlmdCkmMSkhPTA7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVTQ19NSVJST1JfREVMVEE9LTQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1JTl9NSVJST1JfREVMVEE9LTM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9NSVJST1JfREVMVEE9MzsKKworICAgIC8vIGRlZmluaXRpb25zIGZvciAzMi1iaXQgbWlycm9yIHRhYmxlIGVudHJ5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKworICAgIC8qIHRoZSBzb3VyY2UgVW5pY29kZSBjb2RlIHBvaW50IHRha2VzIDIxIGJpdHMgKDIwLi4wKSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNSVJST1JfSU5ERVhfU0hJRlQ9MjE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9NSVJST1JfSU5ERVg9MHg3ZmY7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0TWlycm9yQ29kZVBvaW50KGludCBtKSB7CisgICAgICAgIHJldHVybiBtJjB4MWZmZmZmOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0TWlycm9ySW5kZXgoaW50IG0pIHsKKyAgICAgICAgcmV0dXJuIG0+Pj5NSVJST1JfSU5ERVhfU0hJRlQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNhc2VQcm9wcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNhc2VQcm9wcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmZWE3NzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2FzZVByb3BzLmphdmEKQEAgLTAsMCArMSwxNDEzIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMjAwNC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgVUNhc2VQcm9wcy5qYXZhCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwNWphbjI5CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyoKKyogICBMb3ctbGV2ZWwgVW5pY29kZSBjaGFyYWN0ZXIvc3RyaW5nIGNhc2UgbWFwcGluZyBjb2RlLgorKiAgIEphdmEgcG9ydCBvZiB1Y2FzZS5oLy5jLgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5SYW5nZVZhbHVlSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHk7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2FzZVByb3BzIHsKKyAgICAvLyBjb25zdHJ1Y3RvcnMgZXRjLiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisKKyAgICAvLyBwb3J0IG9mIHVjYXNlX29wZW5Qcm9wcygpCisgICAgcHVibGljIFVDYXNlUHJvcHMoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBJbnB1dFN0cmVhbSBpcz1JQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKElDVVJlc291cmNlQnVuZGxlLklDVV9CVU5ETEUrIi8iK0RBVEFfRklMRV9OQU1FKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiPW5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGlzLCA0MDk2IC8qIGRhdGEgYnVmZmVyIHNpemUgKi8pOworICAgICAgICByZWFkRGF0YShiKTsKKyAgICAgICAgYi5jbG9zZSgpOworICAgICAgICBpcy5jbG9zZSgpOworICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgdm9pZCByZWFkRGF0YShJbnB1dFN0cmVhbSBpcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgRGF0YUlucHV0U3RyZWFtIGlucHV0U3RyZWFtPW5ldyBEYXRhSW5wdXRTdHJlYW0oaXMpOworCisgICAgICAgIC8vIHJlYWQgdGhlIGhlYWRlcgorICAgICAgICB1bmljb2RlVmVyc2lvbj1JQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgRk1ULCBuZXcgSXNBY2NlcHRhYmxlKCkpOworCisgICAgICAgIC8vIHJlYWQgaW5kZXhlc1tdCisgICAgICAgIGludCBpLCBjb3VudDsKKyAgICAgICAgY291bnQ9aW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICBpZihjb3VudDxJWF9JTkRFWF9UT1ApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiaW5kZXhlc1swXSB0b28gc21hbGwgaW4gIitEQVRBX0ZJTEVfTkFNRSk7CisgICAgICAgIH0KKyAgICAgICAgaW5kZXhlcz1uZXcgaW50W2NvdW50XTsKKworICAgICAgICBpbmRleGVzWzBdPWNvdW50OworICAgICAgICBmb3IoaT0xOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGluZGV4ZXNbaV09aW5wdXRTdHJlYW0ucmVhZEludCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmVhZCB0aGUgdHJpZQorICAgICAgICB0cmllPW5ldyBDaGFyVHJpZShpbnB1dFN0cmVhbSwgbnVsbCk7CisKKyAgICAgICAgLy8gcmVhZCBleGNlcHRpb25zW10KKyAgICAgICAgY291bnQ9aW5kZXhlc1tJWF9FWENfTEVOR1RIXTsKKyAgICAgICAgaWYoY291bnQ+MCkgeworICAgICAgICAgICAgZXhjZXB0aW9ucz1uZXcgY2hhcltjb3VudF07CisgICAgICAgICAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBleGNlcHRpb25zW2ldPWlucHV0U3RyZWFtLnJlYWRDaGFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyByZWFkIHVuZm9sZFtdCisgICAgICAgIGNvdW50PWluZGV4ZXNbSVhfVU5GT0xEX0xFTkdUSF07CisgICAgICAgIGlmKGNvdW50PjApIHsKKyAgICAgICAgICAgIHVuZm9sZD1uZXcgY2hhcltjb3VudF07CisgICAgICAgICAgICBmb3IoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICB1bmZvbGRbaV09aW5wdXRTdHJlYW0ucmVhZENoYXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGltcGxlbWVudCBJQ1VCaW5hcnkuQXV0aGVudGljYXRlCisgICAgcHJpdmF0ZSBmaW5hbCBjbGFzcyBJc0FjY2VwdGFibGUgaW1wbGVtZW50cyBJQ1VCaW5hcnkuQXV0aGVudGljYXRlIHsKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhVmVyc2lvbkFjY2VwdGFibGUoYnl0ZSB2ZXJzaW9uW10pIHsKKyAgICAgICAgICAgIGZvcm1hdFZlcnNpb249dmVyc2lvbjsKKyAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdPT0xICYmCisgICAgICAgICAgICAgICAgICAgdmVyc2lvblsyXT09VHJpZS5JTkRFWF9TVEFHRV8xX1NISUZUXyAmJiB2ZXJzaW9uWzNdPT1UcmllLklOREVYX1NUQUdFXzJfU0hJRlRfOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVUNhc2VQcm9wcyBzaW5nbGV0b24KKyAgICBwcml2YXRlIHN0YXRpYyBVQ2FzZVByb3BzIGdDc3A9bnVsbDsKKworICAgIC8vIHBvcnQgb2YgdWNhc2VfZ2V0U2luZ2xldG9uKCkKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIHN5bmNocm9uaXplZCBVQ2FzZVByb3BzIGdldFNpbmdsZXRvbigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmKGdDc3A9PW51bGwpIHsKKyAgICAgICAgICAgIGdDc3A9bmV3IFVDYXNlUHJvcHMoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ0NzcDsKKyAgICB9CisKKyAgICAvLyBVQ2FzZVByb3BzIGR1bW15IHNpbmdsZXRvbgorICAgIHByaXZhdGUgc3RhdGljIFVDYXNlUHJvcHMgZ0NzcER1bW15PW51bGw7CisKKyAgICBwcml2YXRlIFVDYXNlUHJvcHMoYm9vbGVhbiBtYWtlRHVtbXkpIHsgLy8gaWdub3JlIG1ha2VEdW1teSwgb25seSBjcmVhdGVzIGEgdW5pcXVlIHNpZ25hdHVyZQorICAgICAgICBmb3JtYXRWZXJzaW9uPW5ldyBieXRlW10geyAxLCAwLCBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfLCBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfIH07CisgICAgICAgIHVuaWNvZGVWZXJzaW9uPW5ldyBieXRlW10geyAyLCAwLCAwLCAwIH07CisgICAgICAgIGluZGV4ZXM9bmV3IGludFtJWF9UT1BdOworICAgICAgICBpbmRleGVzWzBdPUlYX1RPUDsKKyAgICAgICAgdHJpZT1uZXcgQ2hhclRyaWUoMCwgMCwgbnVsbCk7IC8vIGR1bW15IHRyaWUsIGFsd2F5cyByZXR1cm5zIDAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBzaW5nbGV0b24gZHVtbXkgb2JqZWN0LCBvbmUgdGhhdCB3b3JrcyB3aXRoIG5vIHJlYWwgZGF0YS4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHdoZW4gdGhlIHJlYWwgZGF0YSBpcyBub3QgYXZhaWxhYmxlLgorICAgICAqIFVzaW5nIHRoZSBkdW1teSBjYW4gcmVkdWNlIGNoZWNrcyBmb3IgYXZhaWxhYmxlIGRhdGEgYWZ0ZXIgYW4gaW5pdGlhbCBmYWlsdXJlLgorICAgICAqIFBvcnQgb2YgdWNhc2VfZ2V0RHVtbXkoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIHN5bmNocm9uaXplZCBVQ2FzZVByb3BzIGdldER1bW15KCkgeworICAgICAgICBpZihnQ3NwRHVtbXk9PW51bGwpIHsKKyAgICAgICAgICAgIGdDc3BEdW1teT1uZXcgVUNhc2VQcm9wcyh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ0NzcER1bW15OworICAgIH0KKworICAgIC8vIHNldCBvZiBwcm9wZXJ0eSBzdGFydHMgZm9yIFVuaWNvZGVTZXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGFkZFByb3BlcnR5U3RhcnRzKFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIGludCBpLCBsZW5ndGg7CisgICAgICAgIGludCBjLCBzdGFydCwgbGltaXQ7CisKKyAgICAgICAgYnl0ZSBwcmV2LCBqZzsKKworICAgICAgICAvKiBhZGQgdGhlIHN0YXJ0IGNvZGUgcG9pbnQgb2YgZWFjaCBzYW1lLXZhbHVlIHJhbmdlIG9mIHRoZSB0cmllICovCisgICAgICAgIFRyaWVJdGVyYXRvciBpdGVyPW5ldyBUcmllSXRlcmF0b3IodHJpZSk7CisgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IGVsZW1lbnQ9bmV3IFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisKKyAgICAgICAgd2hpbGUoaXRlci5uZXh0KGVsZW1lbnQpKXsKKyAgICAgICAgICAgIHNldC5hZGQoZWxlbWVudC5zdGFydCk7CisgICAgICAgIH0KKworICAgICAgICAvKiBhZGQgY29kZSBwb2ludHMgd2l0aCBoYXJkY29kZWQgcHJvcGVydGllcywgcGx1cyB0aGUgb25lcyBmb2xsb3dpbmcgdGhlbSAqLworCisgICAgICAgIC8qIChub25lIHJpZ2h0IG5vdywgc2VlIGNvbW1lbnQgYmVsb3cpICovCisKKyAgICAgICAgLyoKKyAgICAgICAgICogT21pdCBjb2RlIHBvaW50cyB3aXRoIGhhcmRjb2RlZCBzcGVjaWFsY2FzaW5nIHByb3BlcnRpZXMKKyAgICAgICAgICogYmVjYXVzZSB3ZSBkbyBub3QgYnVpbGQgcHJvcGVydHkgVW5pY29kZVNldHMgZm9yIHRoZW0gcmlnaHQgbm93LgorICAgICAgICAgKi8KKyAgICB9CisKKyAgICAvLyBkYXRhIGFjY2VzcyBwcmltaXRpdmVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldEV4Y2VwdGlvbnNPZmZzZXQoaW50IHByb3BzKSB7CisgICAgICAgIHJldHVybiBwcm9wcz4+RVhDX1NISUZUOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gcHJvcHNIYXNFeGNlcHRpb24oaW50IHByb3BzKSB7CisgICAgICAgIHJldHVybiAocHJvcHMmRVhDRVBUSU9OKSE9MDsKKyAgICB9CisKKyAgICAvKiBudW1iZXIgb2YgYml0cyBpbiBhbiA4LWJpdCBpbnRlZ2VyIHZhbHVlICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBmbGFnc09mZnNldFsvKjI1NiovXT17CisgICAgICAgIDAsIDEsIDEsIDIsIDEsIDIsIDIsIDMsIDEsIDIsIDIsIDMsIDIsIDMsIDMsIDQsCisgICAgICAgIDEsIDIsIDIsIDMsIDIsIDMsIDMsIDQsIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsCisgICAgICAgIDEsIDIsIDIsIDMsIDIsIDMsIDMsIDQsIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsCisgICAgICAgIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsCisgICAgICAgIDEsIDIsIDIsIDMsIDIsIDMsIDMsIDQsIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsCisgICAgICAgIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsCisgICAgICAgIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsCisgICAgICAgIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsIDQsIDUsIDUsIDYsIDUsIDYsIDYsIDcsCisgICAgICAgIDEsIDIsIDIsIDMsIDIsIDMsIDMsIDQsIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsCisgICAgICAgIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsCisgICAgICAgIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsCisgICAgICAgIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsIDQsIDUsIDUsIDYsIDUsIDYsIDYsIDcsCisgICAgICAgIDIsIDMsIDMsIDQsIDMsIDQsIDQsIDUsIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsCisgICAgICAgIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsIDQsIDUsIDUsIDYsIDUsIDYsIDYsIDcsCisgICAgICAgIDMsIDQsIDQsIDUsIDQsIDUsIDUsIDYsIDQsIDUsIDUsIDYsIDUsIDYsIDYsIDcsCisgICAgICAgIDQsIDUsIDUsIDYsIDUsIDYsIDYsIDcsIDUsIDYsIDYsIDcsIDYsIDcsIDcsIDgKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBoYXNTbG90KGludCBmbGFncywgaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiAoZmxhZ3MmKDE8PGluZGV4KSkhPTA7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgc2xvdE9mZnNldChpbnQgZmxhZ3MsIGludCBpbmRleCkgeworICAgICAgICByZXR1cm4gZmxhZ3NPZmZzZXRbZmxhZ3MmKCgxPDxpbmRleCktMSldOworICAgIH0KKworICAgIC8qCisgICAgICogR2V0IHRoZSB2YWx1ZSBvZiBhbiBvcHRpb25hbC12YWx1ZSBzbG90IHdoZXJlIGhhc1Nsb3QoZXhjV29yZCwgaW5kZXgpLgorICAgICAqCisgICAgICogQHBhcmFtIGV4Y1dvcmQgKGluKSBpbml0aWFsIGV4Y2VwdGlvbnMgd29yZAorICAgICAqIEBwYXJhbSBpbmRleCAoaW4pIGRlc2lyZWQgc2xvdCBpbmRleAorICAgICAqIEBwYXJhbSBleGNPZmZzZXQgKGluKSBvZmZzZXQgaW50byBleGNlcHRpb25zW10gYWZ0ZXIgZXhjV29yZD1leGNlcHRpb25zW2V4Y09mZnNldCsrXTsKKyAgICAgKiBAcmV0dXJuIGJpdHMgMzEuLjA6IHNsb3QgdmFsdWUKKyAgICAgKiAgICAgICAgICAgICA2My4uMzI6IG1vZGlmaWVkIGV4Y09mZnNldCwgbW92ZWQgdG8gdGhlIGxhc3QgY2hhciBvZiB0aGUgdmFsdWUsIHVzZSArMSBmb3IgYmVnaW5uaW5nIG9mIG5leHQgc2xvdCAKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGxvbmcgZ2V0U2xvdFZhbHVlQW5kT2Zmc2V0KGludCBleGNXb3JkLCBpbnQgaW5kZXgsIGludCBleGNPZmZzZXQpIHsKKyAgICAgICAgbG9uZyB2YWx1ZTsKKyAgICAgICAgaWYoKGV4Y1dvcmQmRVhDX0RPVUJMRV9TTE9UUyk9PTApIHsKKyAgICAgICAgICAgIGV4Y09mZnNldCs9c2xvdE9mZnNldChleGNXb3JkLCBpbmRleCk7CisgICAgICAgICAgICB2YWx1ZT1leGNlcHRpb25zW2V4Y09mZnNldF07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBleGNPZmZzZXQrPTIqc2xvdE9mZnNldChleGNXb3JkLCBpbmRleCk7CisgICAgICAgICAgICB2YWx1ZT1leGNlcHRpb25zW2V4Y09mZnNldCsrXTsKKyAgICAgICAgICAgIHZhbHVlPSh2YWx1ZTw8MTYpfGV4Y2VwdGlvbnNbZXhjT2Zmc2V0XTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKGxvbmcpdmFsdWV8KChsb25nKWV4Y09mZnNldDw8MzIpOworICAgIH0KKworICAgIC8qIHNhbWUgYXMgZ2V0U2xvdFZhbHVlQW5kT2Zmc2V0KCkgYnV0IGRvZXMgbm90IHJldHVybiB0aGUgc2xvdCBvZmZzZXQgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBnZXRTbG90VmFsdWUoaW50IGV4Y1dvcmQsIGludCBpbmRleCwgaW50IGV4Y09mZnNldCkgeworICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgIGlmKChleGNXb3JkJkVYQ19ET1VCTEVfU0xPVFMpPT0wKSB7CisgICAgICAgICAgICBleGNPZmZzZXQrPXNsb3RPZmZzZXQoZXhjV29yZCwgaW5kZXgpOworICAgICAgICAgICAgdmFsdWU9ZXhjZXB0aW9uc1tleGNPZmZzZXRdOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXhjT2Zmc2V0Kz0yKnNsb3RPZmZzZXQoZXhjV29yZCwgaW5kZXgpOworICAgICAgICAgICAgdmFsdWU9ZXhjZXB0aW9uc1tleGNPZmZzZXQrK107CisgICAgICAgICAgICB2YWx1ZT0odmFsdWU8PDE2KXxleGNlcHRpb25zW2V4Y09mZnNldF07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIC8vIHNpbXBsZSBjYXNlIG1hcHBpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKworICAgIHB1YmxpYyBmaW5hbCBpbnQgdG9sb3dlcihpbnQgYykgeworICAgICAgICBpbnQgcHJvcHM9dHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgaWYoIXByb3BzSGFzRXhjZXB0aW9uKHByb3BzKSkgeworICAgICAgICAgICAgaWYoZ2V0VHlwZUZyb21Qcm9wcyhwcm9wcyk+PVVQUEVSKSB7CisgICAgICAgICAgICAgICAgYys9Z2V0RGVsdGEocHJvcHMpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGV4Y09mZnNldD1nZXRFeGNlcHRpb25zT2Zmc2V0KHByb3BzKTsKKyAgICAgICAgICAgIGludCBleGNXb3JkPWV4Y2VwdGlvbnNbZXhjT2Zmc2V0KytdOworICAgICAgICAgICAgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfTE9XRVIpKSB7CisgICAgICAgICAgICAgICAgYz1nZXRTbG90VmFsdWUoZXhjV29yZCwgRVhDX0xPV0VSLCBleGNPZmZzZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgdG91cHBlcihpbnQgYykgeworICAgICAgICBpbnQgcHJvcHM9dHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgaWYoIXByb3BzSGFzRXhjZXB0aW9uKHByb3BzKSkgeworICAgICAgICAgICAgaWYoZ2V0VHlwZUZyb21Qcm9wcyhwcm9wcyk9PUxPV0VSKSB7CisgICAgICAgICAgICAgICAgYys9Z2V0RGVsdGEocHJvcHMpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGV4Y09mZnNldD1nZXRFeGNlcHRpb25zT2Zmc2V0KHByb3BzKTsKKyAgICAgICAgICAgIGludCBleGNXb3JkPWV4Y2VwdGlvbnNbZXhjT2Zmc2V0KytdOworICAgICAgICAgICAgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfVVBQRVIpKSB7CisgICAgICAgICAgICAgICAgYz1nZXRTbG90VmFsdWUoZXhjV29yZCwgRVhDX1VQUEVSLCBleGNPZmZzZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgdG90aXRsZShpbnQgYykgeworICAgICAgICBpbnQgcHJvcHM9dHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgaWYoIXByb3BzSGFzRXhjZXB0aW9uKHByb3BzKSkgeworICAgICAgICAgICAgaWYoZ2V0VHlwZUZyb21Qcm9wcyhwcm9wcyk9PUxPV0VSKSB7CisgICAgICAgICAgICAgICAgYys9Z2V0RGVsdGEocHJvcHMpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGV4Y09mZnNldD1nZXRFeGNlcHRpb25zT2Zmc2V0KHByb3BzKTsKKyAgICAgICAgICAgIGludCBleGNXb3JkPWV4Y2VwdGlvbnNbZXhjT2Zmc2V0KytdOworICAgICAgICAgICAgaW50IGluZGV4OworICAgICAgICAgICAgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfVElUTEUpKSB7CisgICAgICAgICAgICAgICAgaW5kZXg9RVhDX1RJVExFOworICAgICAgICAgICAgfSBlbHNlIGlmKGhhc1Nsb3QoZXhjV29yZCwgRVhDX1VQUEVSKSkgeworICAgICAgICAgICAgICAgIGluZGV4PUVYQ19VUFBFUjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjPWdldFNsb3RWYWx1ZShleGNXb3JkLCBpbmRleCwgZXhjT2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGFsbCBzaW1wbGUgY2FzZSBtYXBwaW5ncyBhbmQgdGhlIGZ1bGwgY2FzZSBmb2xkaW5nIGZvciBjIHRvIHNhLAorICAgICAqIGFuZCBhbHNvIGFkZHMgc3BlY2lhbCBjYXNlIGNsb3N1cmUgbWFwcGluZ3MuCisgICAgICogYyBpdHNlbGYgaXMgbm90IGFkZGVkLgorICAgICAqIEZvciBleGFtcGxlLCB0aGUgbWFwcGluZ3MKKyAgICAgKiAtIGZvciBzIGluY2x1ZGUgbG9uZyBzCisgICAgICogLSBmb3Igc2hhcnAgcyBpbmNsdWRlIHNzCisgICAgICogLSBmb3IgayBpbmNsdWRlIHRoZSBLZWx2aW4gc2lnbgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGFkZENhc2VDbG9zdXJlKGludCBjLCBVbmljb2RlU2V0IHNldCkgeworICAgICAgICAvKgorICAgICAgICAgKiBIYXJkY29kZSB0aGUgY2FzZSBjbG9zdXJlIG9mIGkgYW5kIGl0cyByZWxhdGl2ZXMgYW5kIGlnbm9yZSB0aGUKKyAgICAgICAgICogZGF0YSBmaWxlIGRhdGEgZm9yIHRoZXNlIGNoYXJhY3RlcnMuCisgICAgICAgICAqIFRoZSBUdXJraWMgZG90bGVzcyBpIGFuZCBkb3R0ZWQgSSB3aXRoIHRoZWlyIGNhc2UgbWFwcGluZyBjb25kaXRpb25zCisgICAgICAgICAqIGFuZCBjYXNlIGZvbGRpbmcgb3B0aW9uIG1ha2UgdGhlIHJlbGF0ZWQgY2hhcmFjdGVycyBiZWhhdmUgc3BlY2lhbGx5LgorICAgICAgICAgKiBUaGlzIGNvZGUgbWF0Y2hlcyB0aGVpciBjbG9zdXJlIGJlaGF2aW9yIHRvIHRoZWlyIGNhc2UgZm9sZGluZyBiZWhhdmlvci4KKyAgICAgICAgICovCisKKyAgICAgICAgc3dpdGNoKGMpIHsKKyAgICAgICAgY2FzZSAweDQ5OgorICAgICAgICAgICAgLyogcmVndWxhciBpIGFuZCBJIGFyZSBpbiBvbmUgZXF1aXZhbGVuY2UgY2xhc3MgKi8KKyAgICAgICAgICAgIHNldC5hZGQoMHg2OSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgMHg2OToKKyAgICAgICAgICAgIHNldC5hZGQoMHg0OSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgMHgxMzA6CisgICAgICAgICAgICAvKiBkb3R0ZWQgSSBpcyBpbiBhIGNsYXNzIHdpdGggPDAwNjkgMDMwNz4gKGZvciBjYW5vbmljYWwgZXF1aXZhbGVuY2Ugd2l0aCA8MDA0OSAwMzA3PikgKi8KKyAgICAgICAgICAgIHNldC5hZGQoaURvdCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgMHgxMzE6CisgICAgICAgICAgICAvKiBkb3RsZXNzIGkgaXMgaW4gYSBjbGFzcyBieSBpdHNlbGYgKi8KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8qIG90aGVyd2lzZSB1c2UgdGhlIGRhdGEgZmlsZSBkYXRhICovCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGludCBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBpZighcHJvcHNIYXNFeGNlcHRpb24ocHJvcHMpKSB7CisgICAgICAgICAgICBpZihnZXRUeXBlRnJvbVByb3BzKHByb3BzKSE9Tk9ORSkgeworICAgICAgICAgICAgICAgIC8qIGFkZCB0aGUgb25lIHNpbXBsZSBjYXNlIG1hcHBpbmcsIG5vIG1hdHRlciB3aGF0IHR5cGUgaXQgaXMgKi8KKyAgICAgICAgICAgICAgICBpbnQgZGVsdGE9Z2V0RGVsdGEocHJvcHMpOworICAgICAgICAgICAgICAgIGlmKGRlbHRhIT0wKSB7CisgICAgICAgICAgICAgICAgICAgIHNldC5hZGQoYytkZWx0YSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIGMgaGFzIGV4Y2VwdGlvbnMsIHNvIHRoZXJlIG1heSBiZSBtdWx0aXBsZSBzaW1wbGUgYW5kL29yCisgICAgICAgICAgICAgKiBmdWxsIGNhc2UgbWFwcGluZ3MuIEFkZCB0aGVtIGFsbC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaW50IGV4Y09mZnNldDAsIGV4Y09mZnNldD1nZXRFeGNlcHRpb25zT2Zmc2V0KHByb3BzKTsKKyAgICAgICAgICAgIGludCBjbG9zdXJlT2Zmc2V0OworICAgICAgICAgICAgaW50IGV4Y1dvcmQ9ZXhjZXB0aW9uc1tleGNPZmZzZXQrK107CisgICAgICAgICAgICBpbnQgaW5kZXgsIGNsb3N1cmVMZW5ndGgsIGZ1bGxMZW5ndGgsIGxlbmd0aDsKKworICAgICAgICAgICAgZXhjT2Zmc2V0MD1leGNPZmZzZXQ7CisKKyAgICAgICAgICAgIC8qIGFkZCBhbGwgc2ltcGxlIGNhc2UgbWFwcGluZ3MgKi8KKyAgICAgICAgICAgIGZvcihpbmRleD1FWENfTE9XRVI7IGluZGV4PD1FWENfVElUTEU7ICsraW5kZXgpIHsKKyAgICAgICAgICAgICAgICBpZihoYXNTbG90KGV4Y1dvcmQsIGluZGV4KSkgeworICAgICAgICAgICAgICAgICAgICBleGNPZmZzZXQ9ZXhjT2Zmc2V0MDsKKyAgICAgICAgICAgICAgICAgICAgYz1nZXRTbG90VmFsdWUoZXhjV29yZCwgaW5kZXgsIGV4Y09mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIHNldC5hZGQoYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBnZXQgdGhlIGNsb3N1cmUgc3RyaW5nIHBvaW50ZXIgJiBsZW5ndGggKi8KKyAgICAgICAgICAgIGlmKGhhc1Nsb3QoZXhjV29yZCwgRVhDX0NMT1NVUkUpKSB7CisgICAgICAgICAgICAgICAgZXhjT2Zmc2V0PWV4Y09mZnNldDA7CisgICAgICAgICAgICAgICAgbG9uZyB2YWx1ZT1nZXRTbG90VmFsdWVBbmRPZmZzZXQoZXhjV29yZCwgRVhDX0NMT1NVUkUsIGV4Y09mZnNldCk7CisgICAgICAgICAgICAgICAgY2xvc3VyZUxlbmd0aD0oaW50KXZhbHVlJkNMT1NVUkVfTUFYX0xFTkdUSDsgLyogaGlnaGVyIGJpdHMgYXJlIHJlc2VydmVkICovCisgICAgICAgICAgICAgICAgY2xvc3VyZU9mZnNldD0oaW50KSh2YWx1ZT4+MzIpKzE7IC8qIGJlaGluZCB0aGlzIHNsb3QsIHVubGVzcyB0aGVyZSBhcmUgZnVsbCBjYXNlIG1hcHBpbmdzICovCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNsb3N1cmVMZW5ndGg9MDsKKyAgICAgICAgICAgICAgICBjbG9zdXJlT2Zmc2V0PTA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIGFkZCB0aGUgZnVsbCBjYXNlIGZvbGRpbmcgKi8KKyAgICAgICAgICAgIGlmKGhhc1Nsb3QoZXhjV29yZCwgRVhDX0ZVTExfTUFQUElOR1MpKSB7CisgICAgICAgICAgICAgICAgZXhjT2Zmc2V0PWV4Y09mZnNldDA7CisgICAgICAgICAgICAgICAgbG9uZyB2YWx1ZT1nZXRTbG90VmFsdWVBbmRPZmZzZXQoZXhjV29yZCwgRVhDX0ZVTExfTUFQUElOR1MsIGV4Y09mZnNldCk7CisgICAgICAgICAgICAgICAgZnVsbExlbmd0aD0oaW50KXZhbHVlOworCisgICAgICAgICAgICAgICAgLyogc3RhcnQgb2YgZnVsbCBjYXNlIG1hcHBpbmcgc3RyaW5ncyAqLworICAgICAgICAgICAgICAgIGV4Y09mZnNldD0oaW50KSh2YWx1ZT4+MzIpKzE7CisKKyAgICAgICAgICAgICAgICBmdWxsTGVuZ3RoJj0weGZmZmY7IC8qIGJpdHMgMTYgYW5kIGhpZ2hlciBhcmUgcmVzZXJ2ZWQgKi8KKworICAgICAgICAgICAgICAgIC8qIHNraXAgdGhlIGxvd2VyY2FzZSByZXN1bHQgc3RyaW5nICovCisgICAgICAgICAgICAgICAgZXhjT2Zmc2V0Kz1mdWxsTGVuZ3RoJkZVTExfTE9XRVI7CisgICAgICAgICAgICAgICAgZnVsbExlbmd0aD4+PTQ7CisKKyAgICAgICAgICAgICAgICAvKiBhZGQgdGhlIGZ1bGwgY2FzZSBmb2xkaW5nIHN0cmluZyAqLworICAgICAgICAgICAgICAgIGxlbmd0aD1mdWxsTGVuZ3RoJjB4ZjsKKyAgICAgICAgICAgICAgICBpZihsZW5ndGghPTApIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0LmFkZChuZXcgU3RyaW5nKGV4Y2VwdGlvbnMsIGV4Y09mZnNldCwgbGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgICAgIGV4Y09mZnNldCs9bGVuZ3RoOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qIHNraXAgdGhlIHVwcGVyY2FzZSBhbmQgdGl0bGVjYXNlIHN0cmluZ3MgKi8KKyAgICAgICAgICAgICAgICBmdWxsTGVuZ3RoPj49NDsKKyAgICAgICAgICAgICAgICBleGNPZmZzZXQrPWZ1bGxMZW5ndGgmMHhmOworICAgICAgICAgICAgICAgIGZ1bGxMZW5ndGg+Pj00OworICAgICAgICAgICAgICAgIGV4Y09mZnNldCs9ZnVsbExlbmd0aDsKKworICAgICAgICAgICAgICAgIGNsb3N1cmVPZmZzZXQ9ZXhjT2Zmc2V0OyAvKiBiZWhpbmQgZnVsbCBjYXNlIG1hcHBpbmdzICovCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIGFkZCBlYWNoIGNvZGUgcG9pbnQgaW4gdGhlIGNsb3N1cmUgc3RyaW5nICovCisgICAgICAgICAgICBmb3IoaW5kZXg9MDsgaW5kZXg8Y2xvc3VyZUxlbmd0aDsgaW5kZXgrPVVURjE2LmdldENoYXJDb3VudChjKSkgeworICAgICAgICAgICAgICAgIGM9VVRGMTYuY2hhckF0KGV4Y2VwdGlvbnMsIGNsb3N1cmVPZmZzZXQsIGV4Y2VwdGlvbnMubGVuZ3RoLCBpbmRleCk7CisgICAgICAgICAgICAgICAgc2V0LmFkZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qCisgICAgICogY29tcGFyZSBzLCB3aGljaCBoYXMgYSBsZW5ndGgsIHdpdGggdD11bmZvbGRbdW5mb2xkT2Zmc2V0Li5dLCB3aGljaCBoYXMgYSBtYXhpbXVtIGxlbmd0aCBvciBpcyBOVUwtdGVybWluYXRlZAorICAgICAqIG11c3QgYmUgcy5sZW5ndGgoKT4wIGFuZCBtYXg+MCBhbmQgcy5sZW5ndGgoKTw9bWF4CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgc3RyY21wTWF4KFN0cmluZyBzLCBpbnQgdW5mb2xkT2Zmc2V0LCBpbnQgbWF4KSB7CisgICAgICAgIGludCBpMSwgbGVuZ3RoLCBjMSwgYzI7CisKKyAgICAgICAgbGVuZ3RoPXMubGVuZ3RoKCk7CisgICAgICAgIG1heC09bGVuZ3RoOyAvKiB3ZSByZXF1aXJlIGxlbmd0aDw9bWF4LCBzbyBubyBuZWVkIHRvIGRlY3JlbWVudCBtYXggaW4gdGhlIGxvb3AgKi8KKyAgICAgICAgaTE9MDsKKyAgICAgICAgZG8geworICAgICAgICAgICAgYzE9cy5jaGFyQXQoaTErKyk7CisgICAgICAgICAgICBjMj11bmZvbGRbdW5mb2xkT2Zmc2V0KytdOworICAgICAgICAgICAgaWYoYzI9PTApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsgLyogcmVhY2hlZCB0aGUgZW5kIG9mIHQgYnV0IG5vdCBvZiBzICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjMS09YzI7CisgICAgICAgICAgICBpZihjMSE9MCkgeworICAgICAgICAgICAgICAgIHJldHVybiBjMTsgLyogcmV0dXJuIGRpZmZlcmVuY2UgcmVzdWx0ICovCisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUoLS1sZW5ndGg+MCk7CisgICAgICAgIC8qIGVuZHMgd2l0aCBsZW5ndGg9PTAgKi8KKworICAgICAgICBpZihtYXg9PTAgfHwgdW5mb2xkW3VuZm9sZE9mZnNldF09PTApIHsKKyAgICAgICAgICAgIHJldHVybiAwOyAvKiBlcXVhbCB0byBsZW5ndGggb2YgYm90aCBzdHJpbmdzICovCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gLW1heDsgLyogcmV0dXJuIGxlbmdoIGRpZmZlcmVuY2UgKi8KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1hcHMgdGhlIHN0cmluZyB0byBzaW5nbGUgY29kZSBwb2ludHMgYW5kIGFkZHMgdGhlIGFzc29jaWF0ZWQgY2FzZSBjbG9zdXJlCisgICAgICogbWFwcGluZ3MuCisgICAgICogVGhlIHN0cmluZyBpcyBtYXBwZWQgdG8gY29kZSBwb2ludHMgaWYgaXQgaXMgdGhlaXIgZnVsbCBjYXNlIGZvbGRpbmcgc3RyaW5nLgorICAgICAqIEluIG90aGVyIHdvcmRzLCB0aGlzIHBlcmZvcm1zIGEgcmV2ZXJzZSBmdWxsIGNhc2UgZm9sZGluZyBhbmQgdGhlbgorICAgICAqIGFkZHMgdGhlIGNhc2UgY2xvc3VyZSBpdGVtcyBvZiB0aGUgcmVzdWx0aW5nIGNvZGUgcG9pbnRzLgorICAgICAqIElmIHRoZSBzdHJpbmcgaXMgZm91bmQgYW5kIGl0cyBjbG9zdXJlIGFwcGxpZWQsIHRoZW4KKyAgICAgKiB0aGUgc3RyaW5nIGl0c2VsZiBpcyBhZGRlZCBhcyB3ZWxsIGFzIHBhcnQgb2YgaXRzIGNvZGUgcG9pbnRzJyBjbG9zdXJlLgorICAgICAqCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBzdHJpbmcgd2FzIGZvdW5kCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gYWRkU3RyaW5nQ2FzZUNsb3N1cmUoU3RyaW5nIHMsIFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIGludCBpLCBsZW5ndGgsIHN0YXJ0LCBsaW1pdCwgcmVzdWx0LCB1bmZvbGRPZmZzZXQsIHVuZm9sZFJvd3MsIHVuZm9sZFJvd1dpZHRoLCB1bmZvbGRTdHJpbmdXaWR0aCwgdW5mb2xkQ1BXaWR0aDsKKworICAgICAgICBpZih1bmZvbGQ9PW51bGwgfHwgcz09bnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvKiBubyByZXZlcnNlIGNhc2UgZm9sZGluZyBkYXRhLCBvciBubyBzdHJpbmcgKi8KKyAgICAgICAgfQorICAgICAgICBsZW5ndGg9cy5sZW5ndGgoKTsKKyAgICAgICAgaWYobGVuZ3RoPD0xKSB7CisgICAgICAgICAgICAvKiB0aGUgc3RyaW5nIGlzIHRvbyBzaG9ydCB0byBmaW5kIGFueSBtYXRjaCAqLworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIG1vcmUgcHJlY2lzZSB3b3VsZCBiZToKKyAgICAgICAgICAgICAqIGlmKCF1X3N0ckhhc01vcmVDaGFyMzJUaGFuKHMsIGxlbmd0aCwgMSkpCisgICAgICAgICAgICAgKiBidXQgdGhpcyBkb2VzIG5vdCBtYWtlIG11Y2ggcHJhY3RpY2FsIGRpZmZlcmVuY2UgYmVjYXVzZQorICAgICAgICAgICAgICogYSBzaW5nbGUgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50IHdvdWxkIGp1c3Qgbm90IGJlIGZvdW5kCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHVuZm9sZFJvd3M9dW5mb2xkW1VORk9MRF9ST1dTXTsKKyAgICAgICAgdW5mb2xkUm93V2lkdGg9dW5mb2xkW1VORk9MRF9ST1dfV0lEVEhdOworICAgICAgICB1bmZvbGRTdHJpbmdXaWR0aD11bmZvbGRbVU5GT0xEX1NUUklOR19XSURUSF07CisgICAgICAgIHVuZm9sZENQV2lkdGg9dW5mb2xkUm93V2lkdGgtdW5mb2xkU3RyaW5nV2lkdGg7CisKKyAgICAgICAgaWYobGVuZ3RoPnVuZm9sZFN0cmluZ1dpZHRoKSB7CisgICAgICAgICAgICAvKiB0aGUgc3RyaW5nIGlzIHRvbyBsb25nIHRvIGZpbmQgYW55IG1hdGNoICovCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvKiBkbyBhIGJpbmFyeSBzZWFyY2ggZm9yIHRoZSBzdHJpbmcgKi8KKyAgICAgICAgc3RhcnQ9MDsKKyAgICAgICAgbGltaXQ9dW5mb2xkUm93czsKKyAgICAgICAgd2hpbGUoc3RhcnQ8bGltaXQpIHsKKyAgICAgICAgICAgIGk9KHN0YXJ0K2xpbWl0KS8yOworICAgICAgICAgICAgdW5mb2xkT2Zmc2V0PSgoaSsxKSp1bmZvbGRSb3dXaWR0aCk7IC8vICsxIHRvIHNraXAgdGhlIGhlYWRlciB2YWx1ZXMgYWJvdmUKKyAgICAgICAgICAgIHJlc3VsdD1zdHJjbXBNYXgocywgdW5mb2xkT2Zmc2V0LCB1bmZvbGRTdHJpbmdXaWR0aCk7CisKKyAgICAgICAgICAgIGlmKHJlc3VsdD09MCkgeworICAgICAgICAgICAgICAgIC8qIGZvdW5kIHRoZSBzdHJpbmc6IGFkZCBlYWNoIGNvZGUgcG9pbnQsIGFuZCBpdHMgY2FzZSBjbG9zdXJlICovCisgICAgICAgICAgICAgICAgaW50IGM7CisKKyAgICAgICAgICAgICAgICBmb3IoaT11bmZvbGRTdHJpbmdXaWR0aDsgaTx1bmZvbGRSb3dXaWR0aCAmJiB1bmZvbGRbdW5mb2xkT2Zmc2V0K2ldIT0wOyBpKz1VVEYxNi5nZXRDaGFyQ291bnQoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgYz1VVEYxNi5jaGFyQXQodW5mb2xkLCB1bmZvbGRPZmZzZXQsIHVuZm9sZC5sZW5ndGgsIGkpOworICAgICAgICAgICAgICAgICAgICBzZXQuYWRkKGMpOworICAgICAgICAgICAgICAgICAgICBhZGRDYXNlQ2xvc3VyZShjLCBzZXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihyZXN1bHQ8MCkgeworICAgICAgICAgICAgICAgIGxpbWl0PWk7CisgICAgICAgICAgICB9IGVsc2UgLyogcmVzdWx0PjAgKi8geworICAgICAgICAgICAgICAgIHN0YXJ0PWkrMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsgLyogc3RyaW5nIG5vdCBmb3VuZCAqLworICAgIH0KKworICAgIC8qKiBAcmV0dXJuIE5PTkUsIExPV0VSLCBVUFBFUiwgVElUTEUgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFR5cGUoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIGdldFR5cGVGcm9tUHJvcHModHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKSk7CisgICAgfQorCisgICAgLyoqIEByZXR1cm4gc2FtZSBhcyBnZXRUeXBlKCksIG9yIDwwIGlmIGMgaXMgY2FzZS1pZ25vcmFibGUgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFR5cGVPcklnbm9yYWJsZShpbnQgYykgeworICAgICAgICBpbnQgcHJvcHM9dHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgaW50IHR5cGU9Z2V0VHlwZUZyb21Qcm9wcyhwcm9wcyk7CisgICAgICAgIGlmKHR5cGUhPU5PTkUpIHsKKyAgICAgICAgICAgIHJldHVybiB0eXBlOworICAgICAgICB9IGVsc2UgaWYoCisgICAgICAgICAgICBjPT0weDMwNyB8fAorICAgICAgICAgICAgKHByb3BzJihFWENFUFRJT058Q0FTRV9JR05PUkFCTEUpKT09Q0FTRV9JR05PUkFCTEUKKyAgICAgICAgKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7IC8qIGNhc2UtaWdub3JhYmxlICovCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsgLyogYyBpcyBuZWl0aGVyIGNhc2VkIG5vciBjYXNlLWlnbm9yYWJsZSAqLworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIEByZXR1cm4gTk9fRE9ULCBTT0ZUX0RPVFRFRCwgQUJPVkUsIE9USEVSX0FDQ0VOVCAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0RG90VHlwZShpbnQgYykgeworICAgICAgICBpbnQgcHJvcHM9dHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgaWYoIXByb3BzSGFzRXhjZXB0aW9uKHByb3BzKSkgeworICAgICAgICAgICAgcmV0dXJuIHByb3BzJkRPVF9NQVNLOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIChleGNlcHRpb25zW2dldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpXT4+RVhDX0RPVF9TSElGVCkmRE9UX01BU0s7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc1NvZnREb3R0ZWQoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIGdldERvdFR5cGUoYyk9PVNPRlRfRE9UVEVEOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGlzQ2FzZVNlbnNpdGl2ZShpbnQgYykgeworICAgICAgICByZXR1cm4gKHRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYykmU0VOU0lUSVZFKSE9MDsKKyAgICB9CisKKyAgICAvLyBzdHJpbmcgY2FzaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisKKyAgICAvKgorICAgICAqIFRoZXNlIGludGVybmFsIGZ1bmN0aW9ucyBmb3JtIHRoZSBjb3JlIG9mIHN0cmluZyBjYXNlIG1hcHBpbmdzLgorICAgICAqIFRoZXkgbWFwIHNpbmdsZSBjb2RlIHBvaW50cyB0byByZXN1bHQgY29kZSBwb2ludHMgb3Igc3RyaW5ncyBhbmQgdGFrZQorICAgICAqIGFsbCBuZWNlc3NhcnkgY29uZGl0aW9ucyAoY29udGV4dCwgbG9jYWxlIElELCBvcHRpb25zKSBpbnRvIGFjY291bnQuCisgICAgICoKKyAgICAgKiBUaGV5IGRvIG5vdCBpdGVyYXRlIG92ZXIgdGhlIHNvdXJjZSBvciB3cml0ZSB0byB0aGUgZGVzdGluYXRpb24KKyAgICAgKiBzbyB0aGF0IHRoZSBzYW1lIGZ1bmN0aW9ucyBhcmUgdXNlZnVsIGZvciBub24tc3RhbmRhcmQgc3RyaW5nIHN0b3JhZ2UsCisgICAgICogc3VjaCBhcyBpbiBhIFJlcGxhY2VhYmxlIChmb3IgVHJhbnNsaXRlcmF0b3IpIG9yIFVURi04LzMyIHN0cmluZ3MgZXRjLgorICAgICAqIEZvciB0aGUgc2FtZSByZWFzb24sIHRoZSAic3Vycm91bmRpbmcgdGV4dCIgY29udGV4dCBpcyBwYXNzZWQgaW4gYXMgYQorICAgICAqIENvbnRleHRJdGVyYXRvciB3aGljaCBkb2VzIG5vdCBtYWtlIGFueSBhc3N1bXB0aW9ucyBhYm91dAorICAgICAqIHRoZSB1bmRlcmx5aW5nIHN0b3JhZ2UuCisgICAgICoKKyAgICAgKiBUaGlzIHNlY3Rpb24gY29udGFpbnMgaGVscGVyIGZ1bmN0aW9ucyB0aGF0IGNoZWNrIGZvciBjb25kaXRpb25zCisgICAgICogaW4gdGhlIGlucHV0IHRleHQgc3Vycm91bmRpbmcgdGhlIGN1cnJlbnQgY29kZSBwb2ludAorICAgICAqIGFjY29yZGluZyB0byBTcGVjaWFsQ2FzaW5nLnR4dC4KKyAgICAgKgorICAgICAqIEVhY2ggaGVscGVyIGZ1bmN0aW9uIGdldHMgdGhlIGluZGV4CisgICAgICogLSBhZnRlciB0aGUgY3VycmVudCBjb2RlIHBvaW50IGlmIGl0IGxvb2tzIGF0IGZvbGxvd2luZyB0ZXh0CisgICAgICogLSBiZWZvcmUgdGhlIGN1cnJlbnQgY29kZSBwb2ludCBpZiBpdCBsb29rcyBhdCBwcmVjZWRpbmcgdGV4dAorICAgICAqCisgICAgICogVW5pY29kZSAzLjIgVUFYIDIxICJDYXNlIE1hcHBpbmdzIiBkZWZpbmVzIHRoZSBjb25kaXRpb25zIGFzIGZvbGxvd3M6CisgICAgICoKKyAgICAgKiBGaW5hbF9TaWdtYQorICAgICAqICAgQyBpcyBwcmVjZWRlZCBieSBhIHNlcXVlbmNlIGNvbnNpc3Rpbmcgb2YKKyAgICAgKiAgICAgYSBjYXNlZCBsZXR0ZXIgYW5kIGEgY2FzZS1pZ25vcmFibGUgc2VxdWVuY2UsCisgICAgICogICBhbmQgQyBpcyBub3QgZm9sbG93ZWQgYnkgYSBzZXF1ZW5jZSBjb25zaXN0aW5nIG9mCisgICAgICogICAgIGFuIGlnbm9yYWJsZSBzZXF1ZW5jZSBhbmQgdGhlbiBhIGNhc2VkIGxldHRlci4KKyAgICAgKgorICAgICAqIE1vcmVfQWJvdmUKKyAgICAgKiAgIEMgaXMgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgY2hhcmFjdGVycyBvZiBjb21iaW5pbmcgY2xhc3MgMjMwIChBQk9WRSkKKyAgICAgKiAgIGluIHRoZSBjb21iaW5pbmcgY2hhcmFjdGVyIHNlcXVlbmNlLgorICAgICAqCisgICAgICogQWZ0ZXJfU29mdF9Eb3R0ZWQKKyAgICAgKiAgIFRoZSBsYXN0IHByZWNlZGluZyBjaGFyYWN0ZXIgd2l0aCBjb21iaW5pbmcgY2xhc3Mgb2YgemVybyBiZWZvcmUgQworICAgICAqICAgd2FzIFNvZnRfRG90dGVkLAorICAgICAqICAgYW5kIHRoZXJlIGlzIG5vIGludGVydmVuaW5nIGNvbWJpbmluZyBjaGFyYWN0ZXIgY2xhc3MgMjMwIChBQk9WRSkuCisgICAgICoKKyAgICAgKiBCZWZvcmVfRG90CisgICAgICogICBDIGlzIGZvbGxvd2VkIGJ5IGNvbWJpbmluZyBkb3QgYWJvdmUgKFUrMDMwNykuCisgICAgICogICBBbnkgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB3aXRoIGEgY29tYmluaW5nIGNsYXNzIHRoYXQgaXMgbmVpdGhlciAwIG5vciAyMzAKKyAgICAgKiAgIG1heSBpbnRlcnZlbmUgYmV0d2VlbiB0aGUgY3VycmVudCBjaGFyYWN0ZXIgYW5kIHRoZSBjb21iaW5pbmcgZG90IGFib3ZlLgorICAgICAqCisgICAgICogVGhlIGVycmF0dW0gZnJvbSAyMDAyLTEwLTMxIGFkZHMgdGhlIGNvbmRpdGlvbgorICAgICAqCisgICAgICogQWZ0ZXJfSQorICAgICAqICAgVGhlIGxhc3QgcHJlY2VkaW5nIGJhc2UgY2hhcmFjdGVyIHdhcyBhbiB1cHBlcmNhc2UgSSwgYW5kIHRoZXJlIGlzIG5vCisgICAgICogICBpbnRlcnZlbmluZyBjb21iaW5pbmcgY2hhcmFjdGVyIGNsYXNzIDIzMCAoQUJPVkUpLgorICAgICAqCisgICAgICogICAoU2VlIEppdHRlcmJ1ZyAyMzQ0IGFuZCB0aGUgY29tbWVudHMgb24gQWZ0ZXJfSSBiZWxvdy4pCisgICAgICoKKyAgICAgKiBIZWxwZXIgZGVmaW5pdGlvbnMgaW4gVW5pY29kZSAzLjIgVUFYIDIxOgorICAgICAqCisgICAgICogRDEuIEEgY2hhcmFjdGVyIEMgaXMgZGVmaW5lZCB0byBiZSBjYXNlZAorICAgICAqICAgICBpZiBpdCBtZWV0cyBhbnkgb2YgdGhlIGZvbGxvd2luZyBjcml0ZXJpYToKKyAgICAgKgorICAgICAqICAgLSBUaGUgZ2VuZXJhbCBjYXRlZ29yeSBvZiBDIGlzIFRpdGxlY2FzZSBMZXR0ZXIgKEx0KQorICAgICAqICAgLSBJbiBbQ29yZVByb3BzXSwgQyBoYXMgb25lIG9mIHRoZSBwcm9wZXJ0aWVzIFVwcGVyY2FzZSwgb3IgTG93ZXJjYXNlCisgICAgICogICAtIEdpdmVuIEQgPSBORkQoQyksIHRoZW4gaXQgaXMgbm90IHRoZSBjYXNlIHRoYXQ6CisgICAgICogICAgIEQgPSBVQ0RfbG93ZXIoRCkgPSBVQ0RfdXBwZXIoRCkgPSBVQ0RfdGl0bGUoRCkKKyAgICAgKiAgICAgKFRoaXMgdGhpcmQgY3JpdGVyaXVtIGRvZXMgbm90IGFkZCBhbnkgY2hhcmFjdGVycyB0byB0aGUgbGlzdAorICAgICAqICAgICAgZm9yIFVuaWNvZGUgMy4yLiBJZ25vcmVkLikKKyAgICAgKgorICAgICAqIEQyLiBBIGNoYXJhY3RlciBDIGlzIGRlZmluZWQgdG8gYmUgY2FzZS1pZ25vcmFibGUKKyAgICAgKiAgICAgaWYgaXQgbWVldHMgZWl0aGVyIG9mIHRoZSBmb2xsb3dpbmcgY3JpdGVyaWE6CisgICAgICoKKyAgICAgKiAgIC0gVGhlIGdlbmVyYWwgY2F0ZWdvcnkgb2YgQyBpcworICAgICAqICAgICBOb25zcGFjaW5nIE1hcmsgKE1uKSwgb3IgRW5jbG9zaW5nIE1hcmsgKE1lKSwgb3IgRm9ybWF0IENvbnRyb2wgKENmKSwgb3IKKyAgICAgKiAgICAgTGV0dGVyIE1vZGlmaWVyIChMbSksIG9yIFN5bWJvbCBNb2RpZmllciAoU2spCisgICAgICogICAtIEMgaXMgb25lIG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVycyAKKyAgICAgKiAgICAgVSswMDI3IEFQT1NUUk9QSEUKKyAgICAgKiAgICAgVSswMEFEIFNPRlQgSFlQSEVOIChTSFkpCisgICAgICogICAgIFUrMjAxOSBSSUdIVCBTSU5HTEUgUVVPVEFUSU9OIE1BUksKKyAgICAgKiAgICAgICAgICAgICh0aGUgcHJlZmVycmVkIGNoYXJhY3RlciBmb3IgYXBvc3Ryb3BoZSkKKyAgICAgKgorICAgICAqIEQzLiBBIGNhc2UtaWdub3JhYmxlIHNlcXVlbmNlIGlzIGEgc2VxdWVuY2Ugb2YKKyAgICAgKiAgICAgemVybyBvciBtb3JlIGNhc2UtaWdub3JhYmxlIGNoYXJhY3RlcnMuCisgICAgICovCisKKyAgICAvKioKKyAgICAgKiBJdGVyYXRvciBmb3Igc3RyaW5nIGNhc2UgbWFwcGluZ3MsIHdoaWNoIG5lZWQgdG8gbG9vayBhdCB0aGUKKyAgICAgKiBjb250ZXh0IChzdXJyb3VuZGluZyB0ZXh0KSBvZiBhIGdpdmVuIGNoYXJhY3RlciBmb3IgY29uZGl0aW9uYWwgbWFwcGluZ3MuCisgICAgICoKKyAgICAgKiBUaGUgaXRlcmF0b3Igb25seSBuZWVkcyB0byBnbyBiYWNrd2FyZCBvciBmb3J3YXJkIGF3YXkgZnJvbSB0aGUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gcXVlc3Rpb24uIEl0IGRvZXMgbm90IHVzZSBhbnkgaW5kZXhlcyBvbiB0aGlzIGludGVyZmFjZS4KKyAgICAgKiBJdCBkb2VzIG5vdCBzdXBwb3J0IHJhbmRvbSBhY2Nlc3Mgb3IgYW4gYXJiaXRyYXJ5IGNoYW5nZSBvZgorICAgICAqIGl0ZXJhdGlvbiBkaXJlY3Rpb24uCisgICAgICoKKyAgICAgKiBUaGUgY29kZSBwb2ludCBiZWluZyBjYXNlLW1hcHBlZCBpdHNlbGYgaXMgbmV2ZXIgcmV0dXJuZWQgYnkKKyAgICAgKiB0aGlzIGl0ZXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyBpbnRlcmZhY2UgQ29udGV4dEl0ZXJhdG9yIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJlc2V0IHRoZSBpdGVyYXRvciBmb3IgZm9yd2FyZCBvciBiYWNrd2FyZCBpdGVyYXRpb24uCisgICAgICAgICAqIEBwYXJhbSBkaXIgPjA6IEJlZ2luIGl0ZXJhdGluZyBmb3J3YXJkIGZyb20gdGhlIGZpcnN0IGNvZGUgcG9pbnQKKyAgICAgICAgICogYWZ0ZXIgdGhlIG9uZSB0aGF0IGlzIGJlaW5nIGNhc2UtbWFwcGVkLgorICAgICAgICAgKiAgICAgICAgICAgIDwwOiBCZWdpbiBpdGVyYXRpbmcgYmFja3dhcmQgZnJvbSB0aGUgZmlyc3QgY29kZSBwb2ludAorICAgICAgICAgKiBiZWZvcmUgdGhlIG9uZSB0aGF0IGlzIGJlaW5nIGNhc2UtbWFwcGVkLiAgIAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoaW50IGRpcik7CisgICAgICAgIC8qKgorICAgICAgICAgKiBJdGVyYXRlIGFuZCByZXR1cm4gdGhlIG5leHQgY29kZSBwb2ludCwgbW92aW5nIGluIHRoZSBkaXJlY3Rpb24KKyAgICAgICAgICogZGV0ZXJtaW5lZCBieSB0aGUgcmVzZXQoKSBjYWxsLgorICAgICAgICAgKiBAcmV0dXJuIE5leHQgY29kZSBwb2ludCwgb3IgPDAgd2hlbiB0aGUgaXRlcmF0aW9uIGlzIGRvbmUuIAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBuZXh0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9yIHN0cmluZyBjYXNlIG1hcHBpbmdzLCBhIHNpbmdsZSBjaGFyYWN0ZXIgKGEgY29kZSBwb2ludCkgaXMgbWFwcGVkCisgICAgICogZWl0aGVyIHRvIGl0c2VsZiAoaW4gd2hpY2ggY2FzZSBpbi1wbGFjZSBtYXBwaW5nIGZ1bmN0aW9ucyBkbyBub3RoaW5nKSwKKyAgICAgKiBvciB0byBhbm90aGVyIHNpbmdsZSBjb2RlIHBvaW50LCBvciB0byBhIHN0cmluZy4KKyAgICAgKiBBc2lkZSBmcm9tIHRoZSBzdHJpbmcgY29udGVudHMsIHRoZXNlIGFyZSBpbmRpY2F0ZWQgd2l0aCBhIHNpbmdsZSBpbnQKKyAgICAgKiB2YWx1ZSBhcyBmb2xsb3dzOgorICAgICAqCisgICAgICogTWFwcGluZyB0byBzZWxmOiBOZWdhdGl2ZSB2YWx1ZXMgKH5zZWxmIGluc3RlYWQgb2YgLXNlbGYgdG8gc3VwcG9ydCBVKzAwMDApCisgICAgICoKKyAgICAgKiBNYXBwaW5nIHRvIGFub3RoZXIgY29kZSBwb2ludDogUG9zaXRpdmUgdmFsdWVzID5NQVhfU1RSSU5HX0xFTkdUSAorICAgICAqCisgICAgICogTWFwcGluZyB0byBhIHN0cmluZzogVGhlIHN0cmluZyBsZW5ndGggKDAuLk1BWF9TVFJJTkdfTEVOR1RIKSBpcworICAgICAqIHJldHVybmVkLiBOb3RlIHRoYXQgdGhlIHN0cmluZyByZXN1bHQgbWF5IGluZGVlZCBoYXZlIHplcm8gbGVuZ3RoLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BWF9TVFJJTkdfTEVOR1RIPTB4MWY7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9DX1VOS05PV049MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9DX1JPT1Q9MTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9DX1RVUktJU0g9MjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9DX0xJVEhVQU5JQU49MzsKKworICAgIC8qCisgICAgICogQ2hlY2tzIGFuZCBjYWNoZXMgdGhlIHR5cGUgb2YgbG9jYWxlIElEIGFzIGl0IGlzIHJlbGV2YW50IGZvciBjYXNlIG1hcHBpbmcuCisgICAgICogSWYgdGhlIGxvY0NhY2hlIGlzIG5vdCBudWxsLCB0aGVuIGl0IG11c3QgYmUgaW5pdGlhbGl6ZWQgd2l0aCBsb2NDYWNoZVswXT0wIC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0Q2FzZUxvY2FsZShVTG9jYWxlIGxvY2FsZSwgaW50W10gbG9jQ2FjaGUpIHsKKyAgICAgICAgaW50IHJlc3VsdDsKKworICAgICAgICBpZihsb2NDYWNoZSE9bnVsbCAmJiAocmVzdWx0PWxvY0NhY2hlWzBdKSE9TE9DX1VOS05PV04pIHsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICByZXN1bHQ9TE9DX1JPT1Q7CisKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlPWxvY2FsZS5nZXRMYW5ndWFnZSgpOworICAgICAgICBpZihsYW5ndWFnZS5lcXVhbHMoInRyIikgfHwgbGFuZ3VhZ2UuZXF1YWxzKCJ0dXIiKSB8fCBsYW5ndWFnZS5lcXVhbHMoImF6IikgfHwgbGFuZ3VhZ2UuZXF1YWxzKCJhemUiKSkgeworICAgICAgICAgICAgcmVzdWx0PUxPQ19UVVJLSVNIOworICAgICAgICB9IGVsc2UgaWYobGFuZ3VhZ2UuZXF1YWxzKCJsdCIpIHx8IGxhbmd1YWdlLmVxdWFscygibGl0IikpIHsKKyAgICAgICAgICAgIHJlc3VsdD1MT0NfTElUSFVBTklBTjsKKyAgICAgICAgfQorCisgICAgICAgIGlmKGxvY0NhY2hlIT1udWxsKSB7CisgICAgICAgICAgICBsb2NDYWNoZVswXT1yZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKiBJcyBmb2xsb3dlZCBieSB7Y2FzZS1pZ25vcmFibGV9KiBjYXNlZCAgPyAoZGlyIGRldGVybWluZXMgbG9va2luZyBmb3J3YXJkL2JhY2t3YXJkKSAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBpc0ZvbGxvd2VkQnlDYXNlZExldHRlcihDb250ZXh0SXRlcmF0b3IgaXRlciwgaW50IGRpcikgeworICAgICAgICBpbnQgYzsKKyAgICAgICAgaW50IHByb3BzOworCisgICAgICAgIGlmKGl0ZXI9PW51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcihpdGVyLnJlc2V0KGRpcik7IChjPWl0ZXIubmV4dCgpKT49MDspIHsKKyAgICAgICAgICAgIHByb3BzPXRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisgICAgICAgICAgICBpZihnZXRUeXBlRnJvbVByb3BzKHByb3BzKSE9Tk9ORSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAvKiBmb2xsb3dlZCBieSBjYXNlZCBsZXR0ZXIgKi8KKyAgICAgICAgICAgIH0gZWxzZSBpZihjPT0weDMwNyB8fCAocHJvcHMmKEVYQ0VQVElPTnxDQVNFX0lHTk9SQUJMRSkpPT1DQVNFX0lHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgIC8qIGNhc2UtaWdub3JhYmxlLCBjb250aW51ZSB3aXRoIHRoZSBsb29wICovCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLyogbm90IGlnbm9yYWJsZSAqLworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOyAvKiBub3QgZm9sbG93ZWQgYnkgY2FzZWQgbGV0dGVyICovCisgICAgfQorCisgICAgLyogSXMgcHJlY2VkZWQgYnkgU29mdF9Eb3R0ZWQgY2hhcmFjdGVyIHdpdGggbm8gaW50ZXJ2ZW5pbmcgY2M9MjMwID8gKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gaXNQcmVjZWRlZEJ5U29mdERvdHRlZChDb250ZXh0SXRlcmF0b3IgaXRlcikgeworICAgICAgICBpbnQgYzsKKyAgICAgICAgaW50IGRvdFR5cGU7CisKKyAgICAgICAgaWYoaXRlcj09bnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgZm9yKGl0ZXIucmVzZXQoLTEpOyAoYz1pdGVyLm5leHQoKSk+PTA7KSB7CisgICAgICAgICAgICBkb3RUeXBlPWdldERvdFR5cGUoYyk7CisgICAgICAgICAgICBpZihkb3RUeXBlPT1TT0ZUX0RPVFRFRCkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAvKiBwcmVjZWRlZCBieSBUWVBFX2kgKi8KKyAgICAgICAgICAgIH0gZWxzZSBpZihkb3RUeXBlIT1PVEhFUl9BQ0NFTlQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8qIHByZWNlZGVkIGJ5IGRpZmZlcmVudCBiYXNlIGNoYXJhY3RlciAobm90IFRZUEVfaSksIG9yIGludGVydmVuaW5nIGNjPT0yMzAgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsgLyogbm90IHByZWNlZGVkIGJ5IFRZUEVfaSAqLworICAgIH0KKworICAgIC8qCisgICAgICogU2VlIEppdHRlcmJ1ZyAyMzQ0OgorICAgICAqIFRoZSBjb25kaXRpb24gQWZ0ZXJfSSBmb3IgVHVya2ljLWxvd2VyY2FzaW5nIG9mIFUrMDMwNyBjb21iaW5pbmcgZG90IGFib3ZlCisgICAgICogaXMgY2hlY2tlZCBpbiBJQ1UgMi4wLCAyLjEsIDIuNiBidXQgd2FzIG5vdCBpbiAyLjIgJiAyLjQgYmVjYXVzZQorICAgICAqIHdlIG1hZGUgdGhvc2UgcmVsZWFzZXMgY29tcGF0aWJsZSB3aXRoIFVuaWNvZGUgMy4yIHdoaWNoIGhhZCBub3QgZml4ZWQKKyAgICAgKiBhIHJlbGF0ZWQgYnVnIGluIFNwZWNpYWxDYXNpbmcudHh0LgorICAgICAqCisgICAgICogRnJvbSB0aGUgSml0dGVyYnVnIDIzNDQgdGV4dDoKKyAgICAgKiAuLi4gdGhpcyBidWcgaXMgbGlzdGVkIGFzIGEgVW5pY29kZSBlcnJhdHVtCisgICAgICogZnJvbSAyMDAyLTEwLTMxIGF0IGh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pMmVycmF0YS9Vbmljb2RlRXJyYXRhLmh0bWwKKyAgICAgKiA8cXVvdGU+CisgICAgICogVGhlcmUgYXJlIHR3byBlcnJvcnMgaW4gU3BlY2lhbENhc2luZy50eHQuCisgICAgICogMS4gTWlzc2luZyBzZW1pY29sb25zIG9uIHR3byBsaW5lcy4gLi4uIFtpcnJlbGV2YW50IGZvciBJQ1VdCisgICAgICogMi4gQW4gaW5jb3JyZWN0IGNvbnRleHQgZGVmaW5pdGlvbi4gQ29ycmVjdCBhcyBmb2xsb3dzOgorICAgICAqIDwgMDMwNzsgOyAwMzA3OyAwMzA3OyB0ciBBZnRlcl9Tb2Z0X0RvdHRlZDsgIyBDT01CSU5JTkcgRE9UIEFCT1ZFCisgICAgICogPCAwMzA3OyA7IDAzMDc7IDAzMDc7IGF6IEFmdGVyX1NvZnRfRG90dGVkOyAjIENPTUJJTklORyBET1QgQUJPVkUKKyAgICAgKiAtLS0KKyAgICAgKiA+IDAzMDc7IDsgMDMwNzsgMDMwNzsgdHIgQWZ0ZXJfSTsgIyBDT01CSU5JTkcgRE9UIEFCT1ZFCisgICAgICogPiAwMzA3OyA7IDAzMDc7IDAzMDc7IGF6IEFmdGVyX0k7ICMgQ09NQklOSU5HIERPVCBBQk9WRQorICAgICAqIHdoZXJlIHRoZSBjb250ZXh0IEFmdGVyX0kgaXMgZGVmaW5lZCBhczoKKyAgICAgKiBUaGUgbGFzdCBwcmVjZWRpbmcgYmFzZSBjaGFyYWN0ZXIgd2FzIGFuIHVwcGVyY2FzZSBJLCBhbmQgdGhlcmUgaXMgbm8KKyAgICAgKiBpbnRlcnZlbmluZyBjb21iaW5pbmcgY2hhcmFjdGVyIGNsYXNzIDIzMCAoQUJPVkUpLgorICAgICAqIDwvcXVvdGU+CisgICAgICoKKyAgICAgKiBOb3RlIHRoYXQgU3BlY2lhbENhc2luZy50eHQgZXZlbiBpbiBVbmljb2RlIDMuMiBkZXNjcmliZWQgdGhlIGNvbmRpdGlvbiBhczoKKyAgICAgKgorICAgICAqICMgV2hlbiBsb3dlcmNhc2luZywgcmVtb3ZlIGRvdF9hYm92ZSBpbiB0aGUgc2VxdWVuY2UgSSArIGRvdF9hYm92ZSwgd2hpY2ggd2lsbCB0dXJuIGludG8gaS4KKyAgICAgKiAjIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgSS1kb3RfYWJvdmUKKyAgICAgKgorICAgICAqIFNlZSBhbHNvIHRoZSBkZXNjcmlwdGlvbiBpbiB0aGlzIHBsYWNlIGluIG9sZGVyIHZlcnNpb25zIG9mIHVjaGFyLmMgKHJldmlzaW9uIDEuMTAwKS4KKyAgICAgKgorICAgICAqIE1hcmt1cyBXLiBTY2hlcmVyIDIwMDMtZmViLTE1CisgICAgICovCisKKyAgICAvKiBJcyBwcmVjZWRlZCBieSBiYXNlIGNoYXJhY3RlciAnSScgd2l0aCBubyBpbnRlcnZlbmluZyBjYz0yMzAgPyAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBpc1ByZWNlZGVkQnlfSShDb250ZXh0SXRlcmF0b3IgaXRlcikgeworICAgICAgICBpbnQgYzsKKyAgICAgICAgaW50IGRvdFR5cGU7CisKKyAgICAgICAgaWYoaXRlcj09bnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgZm9yKGl0ZXIucmVzZXQoLTEpOyAoYz1pdGVyLm5leHQoKSk+PTA7KSB7CisgICAgICAgICAgICBpZihjPT0weDQ5KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8qIHByZWNlZGVkIGJ5IEkgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvdFR5cGU9Z2V0RG90VHlwZShjKTsKKyAgICAgICAgICAgIGlmKGRvdFR5cGUhPU9USEVSX0FDQ0VOVCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLyogcHJlY2VkZWQgYnkgZGlmZmVyZW50IGJhc2UgY2hhcmFjdGVyIChub3QgSSksIG9yIGludGVydmVuaW5nIGNjPT0yMzAgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsgLyogbm90IHByZWNlZGVkIGJ5IEkgKi8KKyAgICB9CisKKyAgICAvKiBJcyBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZSBjYz09MjMwID8gKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gaXNGb2xsb3dlZEJ5TW9yZUFib3ZlKENvbnRleHRJdGVyYXRvciBpdGVyKSB7CisgICAgICAgIGludCBjOworICAgICAgICBpbnQgZG90VHlwZTsKKworICAgICAgICBpZihpdGVyPT1udWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBmb3IoaXRlci5yZXNldCgxKTsgKGM9aXRlci5uZXh0KCkpPj0wOykgeworICAgICAgICAgICAgZG90VHlwZT1nZXREb3RUeXBlKGMpOworICAgICAgICAgICAgaWYoZG90VHlwZT09QUJPVkUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLyogYXQgbGVhc3Qgb25lIGNjPT0yMzAgZm9sbG93aW5nICovCisgICAgICAgICAgICB9IGVsc2UgaWYoZG90VHlwZSE9T1RIRVJfQUNDRU5UKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvKiBuZXh0IGJhc2UgY2hhcmFjdGVyLCBubyBtb3JlIGNjPT0yMzAgZm9sbG93aW5nICovCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7IC8qIG5vIG1vcmUgY2M9PTIzMCBmb2xsb3dpbmcgKi8KKyAgICB9CisKKyAgICAvKiBJcyBmb2xsb3dlZCBieSBhIGRvdCBhYm92ZSAod2l0aG91dCBjYz09MjMwIGluIGJldHdlZW4pID8gKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gaXNGb2xsb3dlZEJ5RG90QWJvdmUoQ29udGV4dEl0ZXJhdG9yIGl0ZXIpIHsKKyAgICAgICAgaW50IGM7CisgICAgICAgIGludCBkb3RUeXBlOworCisgICAgICAgIGlmKGl0ZXI9PW51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvcihpdGVyLnJlc2V0KDEpOyAoYz1pdGVyLm5leHQoKSk+PTA7ICkgeworICAgICAgICAgICAgaWYoYz09MHgzMDcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvdFR5cGU9Z2V0RG90VHlwZShjKTsKKyAgICAgICAgICAgIGlmKGRvdFR5cGUhPU9USEVSX0FDQ0VOVCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLyogbmV4dCBiYXNlIGNoYXJhY3RlciBvciBjYz09MjMwIGluIGJldHdlZW4gKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsgLyogbm8gZG90IGFib3ZlIGZvbGxvd2luZyAqLworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZworICAgICAgICBpRG90PSAgICAgICAiaVx1MDMwNyIsCisgICAgICAgIGpEb3Q9ICAgICAgICJqXHUwMzA3IiwKKyAgICAgICAgaU9nb25la0RvdD0gIlx1MDEyZlx1MDMwNyIsCisgICAgICAgIGlEb3RHcmF2ZT0gICJpXHUwMzA3XHUwMzAwIiwKKyAgICAgICAgaURvdEFjdXRlPSAgImlcdTAzMDdcdTAzMDEiLAorICAgICAgICBpRG90VGlsZGU9ICAiaVx1MDMwN1x1MDMwMyI7CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGZ1bGwgbG93ZXJjYXNlIG1hcHBpbmcgZm9yIGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYyBDaGFyYWN0ZXIgdG8gYmUgbWFwcGVkLgorICAgICAqIEBwYXJhbSBpdGVyIENoYXJhY3RlciBpdGVyYXRvciwgdXNlZCBmb3IgY29udGV4dC1zZW5zaXRpdmUgbWFwcGluZ3MuCisgICAgICogICAgICAgICAgICAgU2VlIENvbnRleHRJdGVyYXRvciBmb3IgZGV0YWlscy4KKyAgICAgKiAgICAgICAgICAgICBJZiBpdGVyPT1udWxsIHRoZW4gYSBjb250ZXh0LWluZGVwZW5kZW50IHJlc3VsdCBpcyByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gb3V0IElmIHRoZSBtYXBwaW5nIHJlc3VsdCBpcyBhIHN0cmluZywgdGhlbiBpdCBpcyBhcHBlbmRlZCB0byBvdXQuCisgICAgICogQHBhcmFtIGxvY2FsZSBMb2NhbGUgSUQgZm9yIGxvY2FsZS1kZXBlbmRlbnQgbWFwcGluZ3MuCisgICAgICogQHBhcmFtIGxvY0NhY2hlIEluaXRpYWxpemUgbG9jQ2FjaGVbMF0gdG8gMDsgbWF5IGJlIHVzZWQgdG8gY2FjaGUgdGhlIHJlc3VsdCBvZiBwYXJzaW5nCisgICAgICogICAgICAgICAgICAgICAgIHRoZSBsb2NhbGUgSUQgZm9yIHN1YnNlcXVlbnQgY2FsbHMuCisgICAgICogICAgICAgICAgICAgICAgIENhbiBiZSBudWxsLgorICAgICAqIEByZXR1cm4gT3V0cHV0IGNvZGUgcG9pbnQgb3Igc3RyaW5nIGxlbmd0aCwgc2VlIE1BWF9TVFJJTkdfTEVOR1RILgorICAgICAqCisgICAgICogQHNlZSBDb250ZXh0SXRlcmF0b3IKKyAgICAgKiBAc2VlIE1BWF9TVFJJTkdfTEVOR1RICisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCB0b0Z1bGxMb3dlcihpbnQgYywgQ29udGV4dEl0ZXJhdG9yIGl0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUsIGludFtdIGxvY0NhY2hlKSB7CisgICAgICAgIGludCByZXN1bHQsIHByb3BzOworCisgICAgICAgIHJlc3VsdD1jOworICAgICAgICBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBpZighcHJvcHNIYXNFeGNlcHRpb24ocHJvcHMpKSB7CisgICAgICAgICAgICBpZihnZXRUeXBlRnJvbVByb3BzKHByb3BzKT49VVBQRVIpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQ9YytnZXREZWx0YShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgZXhjT2Zmc2V0PWdldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpLCBleGNPZmZzZXQyOworICAgICAgICAgICAgaW50IGV4Y1dvcmQ9ZXhjZXB0aW9uc1tleGNPZmZzZXQrK107CisgICAgICAgICAgICBpbnQgZnVsbDsKKworICAgICAgICAgICAgZXhjT2Zmc2V0Mj1leGNPZmZzZXQ7CisKKyAgICAgICAgICAgIGlmKChleGNXb3JkJkVYQ19DT05ESVRJT05BTF9TUEVDSUFMKSE9MCkgeworICAgICAgICAgICAgICAgIC8qIHVzZSBoYXJkY29kZWQgY29uZGl0aW9ucyBhbmQgbWFwcGluZ3MgKi8KKyAgICAgICAgICAgICAgICBpbnQgbG9jPWdldENhc2VMb2NhbGUobG9jYWxlLCBsb2NDYWNoZSk7CisKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIFRlc3QgZm9yIGNvbmRpdGlvbmFsIG1hcHBpbmdzIGZpcnN0CisgICAgICAgICAgICAgICAgICogICAob3RoZXJ3aXNlIHRoZSB1bmNvbmRpdGlvbmFsIGRlZmF1bHQgbWFwcGluZ3MgYXJlIGFsd2F5cyB0YWtlbiksCisgICAgICAgICAgICAgICAgICogdGhlbiB0ZXN0IGZvciBjaGFyYWN0ZXJzIHRoYXQgaGF2ZSB1bmNvbmRpdGlvbmFsIG1hcHBpbmdzIGluIFNwZWNpYWxDYXNpbmcudHh0LAorICAgICAgICAgICAgICAgICAqIHRoZW4gZ2V0IHRoZSBVbmljb2RlRGF0YS50eHQgbWFwcGluZ3MuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaWYoIGxvYz09TE9DX0xJVEhVQU5JQU4gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIGJhc2UgY2hhcmFjdGVycywgZmluZCBhY2NlbnRzIGFib3ZlICovCisgICAgICAgICAgICAgICAgICAgICAgICAoKChjPT0weDQ5IHx8IGM9PTB4NGEgfHwgYz09MHgxMmUpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGb2xsb3dlZEJ5TW9yZUFib3ZlKGl0ZXIpKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgLyogcHJlY29tcG9zZWQgd2l0aCBhY2NlbnQgYWJvdmUsIG5vIG5lZWQgdG8gZmluZCBvbmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIChjPT0weGNjIHx8IGM9PTB4Y2QgfHwgYz09MHgxMjgpKQorICAgICAgICAgICAgICAgICkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgIyBMaXRodWFuaWFuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICMgTGl0aHVhbmlhbiByZXRhaW5zIHRoZSBkb3QgaW4gYSBsb3dlcmNhc2UgaSB3aGVuIGZvbGxvd2VkIGJ5IGFjY2VudHMuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICMgSW50cm9kdWNlIGFuIGV4cGxpY2l0IGRvdCBhYm92ZSB3aGVuIGxvd2VyY2FzaW5nIGNhcGl0YWwgSSdzIGFuZCBKJ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICMgd2hlbmV2ZXIgdGhlcmUgYXJlIG1vcmUgYWNjZW50cyBhYm92ZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICMgKG9mIHRoZSBhY2NlbnRzIHVzZWQgaW4gTGl0aHVhbmlhbjogZ3JhdmUsIGFjdXRlLCB0aWxkZSBhYm92ZSwgYW5kIG9nb25laykKKworICAgICAgICAgICAgICAgICAgICAgICAgMDA0OTsgMDA2OSAwMzA3OyAwMDQ5OyAwMDQ5OyBsdCBNb3JlX0Fib3ZlOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKyAgICAgICAgICAgICAgICAgICAgICAgIDAwNEE7IDAwNkEgMDMwNzsgMDA0QTsgMDA0QTsgbHQgTW9yZV9BYm92ZTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBKCisgICAgICAgICAgICAgICAgICAgICAgICAwMTJFOyAwMTJGIDAzMDc7IDAxMkU7IDAxMkU7IGx0IE1vcmVfQWJvdmU7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE9HT05FSworICAgICAgICAgICAgICAgICAgICAgICAgMDBDQzsgMDA2OSAwMzA3IDAzMDA7IDAwQ0M7IDAwQ0M7IGx0OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRQorICAgICAgICAgICAgICAgICAgICAgICAgMDBDRDsgMDA2OSAwMzA3IDAzMDE7IDAwQ0Q7IDAwQ0Q7IGx0OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBBQ1VURQorICAgICAgICAgICAgICAgICAgICAgICAgMDEyODsgMDA2OSAwMzA3IDAzMDM7IDAxMjg7IDAxMjg7IGx0OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBUSUxERQorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGMpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDQ5OiAgLyogTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSAqLworICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChpRG90KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4NGE6ICAvKiBMQVRJTiBDQVBJVEFMIExFVFRFUiBKICovCisgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGpEb3QpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgxMmU6IC8qIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBPR09ORUsgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoaU9nb25la0RvdCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweGNjOiAgLyogTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEdSQVZFICovCisgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGlEb3RHcmF2ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMzsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweGNkOiAgLyogTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEFDVVRFICovCisgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGlEb3RBY3V0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMzsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDEyODogLyogTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIFRJTERFICovCisgICAgICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKGlEb3RUaWxkZSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMzsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOyAvKiB3aWxsIG5vdCBvY2N1ciAqLworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLyogIyBUdXJraXNoIGFuZCBBemVyaSAqLworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihsb2M9PUxPQ19UVVJLSVNIICYmIGM9PTB4MTMwKSB7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAjIEkgYW5kIGktZG90bGVzczsgSS1kb3QgYW5kIGkgYXJlIGNhc2UgcGFpcnMgaW4gVHVya2lzaCBhbmQgQXplcmkKKyAgICAgICAgICAgICAgICAgICAgICAgICMgVGhlIGZvbGxvd2luZyBydWxlcyBoYW5kbGUgdGhvc2UgY2FzZXMuCisKKyAgICAgICAgICAgICAgICAgICAgICAgIDAxMzA7IDAwNjk7IDAxMzA7IDAxMzA7IHRyICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRQorICAgICAgICAgICAgICAgICAgICAgICAgMDEzMDsgMDA2OTsgMDEzMDsgMDEzMDsgYXogIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMHg2OTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYobG9jPT1MT0NfVFVSS0lTSCAmJiBjPT0weDMwNyAmJiBpc1ByZWNlZGVkQnlfSShpdGVyKSkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgIyBXaGVuIGxvd2VyY2FzaW5nLCByZW1vdmUgZG90X2Fib3ZlIGluIHRoZSBzZXF1ZW5jZSBJICsgZG90X2Fib3ZlLCB3aGljaCB3aWxsIHR1cm4gaW50byBpLgorICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGlzIG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mIHRoZSBjYW5vbmljYWxseSBlcXVpdmFsZW50IEktZG90X2Fib3ZlCisKKyAgICAgICAgICAgICAgICAgICAgICAgIDAzMDc7IDsgMDMwNzsgMDMwNzsgdHIgQWZ0ZXJfSTsgIyBDT01CSU5JTkcgRE9UIEFCT1ZFCisgICAgICAgICAgICAgICAgICAgICAgICAwMzA3OyA7IDAzMDc7IDAzMDc7IGF6IEFmdGVyX0k7ICMgQ09NQklOSU5HIERPVCBBQk9WRQorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7IC8qIHJlbW92ZSB0aGUgZG90IChjb250aW51ZSB3aXRob3V0IG91dHB1dCkgKi8KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYobG9jPT1MT0NfVFVSS0lTSCAmJiBjPT0weDQ5ICYmICFpc0ZvbGxvd2VkQnlEb3RBYm92ZShpdGVyKSkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgIyBXaGVuIGxvd2VyY2FzaW5nLCB1bmxlc3MgYW4gSSBpcyBiZWZvcmUgYSBkb3RfYWJvdmUsIGl0IHR1cm5zIGludG8gYSBkb3RsZXNzIGkuCisKKyAgICAgICAgICAgICAgICAgICAgICAgIDAwNDk7IDAxMzE7IDAwNDk7IDAwNDk7IHRyIE5vdF9CZWZvcmVfRG90OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKyAgICAgICAgICAgICAgICAgICAgICAgIDAwNDk7IDAxMzE7IDAwNDk7IDAwNDk7IGF6IE5vdF9CZWZvcmVfRG90OyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAweDEzMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoYz09MHgxMzApIHsKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICMgUHJlc2VydmUgY2Fub25pY2FsIGVxdWl2YWxlbmNlIGZvciBJIHdpdGggZG90LiBUdXJraWMgaXMgaGFuZGxlZCBiZWxvdy4KKworICAgICAgICAgICAgICAgICAgICAgICAgMDEzMDsgMDA2OSAwMzA3OyAwMTMwOyAwMTMwOyAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBET1QgQUJPVkUKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoaURvdCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiggIGM9PTB4M2EzICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIWlzRm9sbG93ZWRCeUNhc2VkTGV0dGVyKGl0ZXIsIDEpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGb2xsb3dlZEJ5Q2FzZWRMZXR0ZXIoaXRlciwgLTEpIC8qIC0xPXByZWNlZGVkICovCisgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGdyZWVrIGNhcGl0YWwgc2lnbWEgbWFwcyBkZXBlbmRpbmcgb24gc3Vycm91bmRpbmcgY2FzZWQgbGV0dGVycyAoc2VlIFNwZWNpYWxDYXNpbmcudHh0KSAqLworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgIyBTcGVjaWFsIGNhc2UgZm9yIGZpbmFsIGZvcm0gb2Ygc2lnbWEKKworICAgICAgICAgICAgICAgICAgICAgICAgMDNBMzsgMDNDMjsgMDNBMzsgMDNBMzsgRmluYWxfU2lnbWE7ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgU0lHTUEKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAweDNjMjsgLyogZ3JlZWsgc21hbGwgZmluYWwgc2lnbWEgKi8KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBubyBrbm93biBjb25kaXRpb25hbCBzcGVjaWFsIGNhc2UgbWFwcGluZywgdXNlIGEgbm9ybWFsIG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfRlVMTF9NQVBQSU5HUykpIHsKKyAgICAgICAgICAgICAgICBsb25nIHZhbHVlPWdldFNsb3RWYWx1ZUFuZE9mZnNldChleGNXb3JkLCBFWENfRlVMTF9NQVBQSU5HUywgZXhjT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBmdWxsPShpbnQpdmFsdWUmRlVMTF9MT1dFUjsKKyAgICAgICAgICAgICAgICBpZihmdWxsIT0wKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHN0YXJ0IG9mIGZ1bGwgY2FzZSBtYXBwaW5nIHN0cmluZ3MgKi8KKyAgICAgICAgICAgICAgICAgICAgZXhjT2Zmc2V0PShpbnQpKHZhbHVlPj4zMikrMTsKKworICAgICAgICAgICAgICAgICAgICAvKiBzZXQgdGhlIG91dHB1dCBwb2ludGVyIHRvIHRoZSBsb3dlcmNhc2UgbWFwcGluZyAqLworICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKG5ldyBTdHJpbmcoZXhjZXB0aW9ucywgZXhjT2Zmc2V0LCBmdWxsKSk7CisKKyAgICAgICAgICAgICAgICAgICAgLyogcmV0dXJuIHRoZSBzdHJpbmcgbGVuZ3RoICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfTE9XRVIpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0PWdldFNsb3RWYWx1ZShleGNXb3JkLCBFWENfTE9XRVIsIGV4Y09mZnNldDIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIChyZXN1bHQ9PWMpID8gfnJlc3VsdCA6IHJlc3VsdDsKKyAgICB9CisKKyAgICAvKiBpbnRlcm5hbCAqLworICAgIHByaXZhdGUgZmluYWwgaW50IHRvVXBwZXJPclRpdGxlKGludCBjLCBDb250ZXh0SXRlcmF0b3IgaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlLCBpbnRbXSBsb2NDYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHVwcGVyTm90VGl0bGUpIHsKKyAgICAgICAgaW50IHJlc3VsdDsKKyAgICAgICAgaW50IHByb3BzOworCisgICAgICAgIHJlc3VsdD1jOworICAgICAgICBwcm9wcz10cmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICBpZighcHJvcHNIYXNFeGNlcHRpb24ocHJvcHMpKSB7CisgICAgICAgICAgICBpZihnZXRUeXBlRnJvbVByb3BzKHByb3BzKT09TE9XRVIpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQ9YytnZXREZWx0YShwcm9wcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgZXhjT2Zmc2V0PWdldEV4Y2VwdGlvbnNPZmZzZXQocHJvcHMpLCBleGNPZmZzZXQyOworICAgICAgICAgICAgaW50IGV4Y1dvcmQ9ZXhjZXB0aW9uc1tleGNPZmZzZXQrK107CisgICAgICAgICAgICBpbnQgZnVsbCwgaW5kZXg7CisKKyAgICAgICAgICAgIGV4Y09mZnNldDI9ZXhjT2Zmc2V0OworCisgICAgICAgICAgICBpZigoZXhjV29yZCZFWENfQ09ORElUSU9OQUxfU1BFQ0lBTCkhPTApIHsKKyAgICAgICAgICAgICAgICAvKiB1c2UgaGFyZGNvZGVkIGNvbmRpdGlvbnMgYW5kIG1hcHBpbmdzICovCisgICAgICAgICAgICAgICAgaW50IGxvYz1nZXRDYXNlTG9jYWxlKGxvY2FsZSwgbG9jQ2FjaGUpOworCisgICAgICAgICAgICAgICAgaWYobG9jPT1MT0NfVFVSS0lTSCAmJiBjPT0weDY5KSB7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICAjIFR1cmtpc2ggYW5kIEF6ZXJpCisKKyAgICAgICAgICAgICAgICAgICAgICAgICMgSSBhbmQgaS1kb3RsZXNzOyBJLWRvdCBhbmQgaSBhcmUgY2FzZSBwYWlycyBpbiBUdXJraXNoIGFuZCBBemVyaQorICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGUgZm9sbG93aW5nIHJ1bGVzIGhhbmRsZSB0aG9zZSBjYXNlcy4KKworICAgICAgICAgICAgICAgICAgICAgICAgIyBXaGVuIHVwcGVyY2FzaW5nLCBpIHR1cm5zIGludG8gYSBkb3R0ZWQgY2FwaXRhbCBJCisKKyAgICAgICAgICAgICAgICAgICAgICAgIDAwNjk7IDAwNjk7IDAxMzA7IDAxMzA7IHRyOyAjIExBVElOIFNNQUxMIExFVFRFUiBJCisgICAgICAgICAgICAgICAgICAgICAgICAwMDY5OyAwMDY5OyAwMTMwOyAwMTMwOyBhejsgIyBMQVRJTiBTTUFMTCBMRVRURVIgSQorICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMHgxMzA7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGxvYz09TE9DX0xJVEhVQU5JQU4gJiYgYz09MHgzMDcgJiYgaXNQcmVjZWRlZEJ5U29mdERvdHRlZChpdGVyKSkgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgIyBMaXRodWFuaWFuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICMgTGl0aHVhbmlhbiByZXRhaW5zIHRoZSBkb3QgaW4gYSBsb3dlcmNhc2UgaSB3aGVuIGZvbGxvd2VkIGJ5IGFjY2VudHMuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICMgUmVtb3ZlIERPVCBBQk9WRSBhZnRlciAiaSIgd2l0aCB1cHBlciBvciB0aXRsZWNhc2UKKworICAgICAgICAgICAgICAgICAgICAgICAgMDMwNzsgMDMwNzsgOyA7IGx0IEFmdGVyX1NvZnRfRG90dGVkOyAjIENPTUJJTklORyBET1QgQUJPVkUKKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOyAvKiByZW1vdmUgdGhlIGRvdCAoY29udGludWUgd2l0aG91dCBvdXRwdXQpICovCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogbm8ga25vd24gY29uZGl0aW9uYWwgc3BlY2lhbCBjYXNlIG1hcHBpbmcsIHVzZSBhIG5vcm1hbCBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmKGhhc1Nsb3QoZXhjV29yZCwgRVhDX0ZVTExfTUFQUElOR1MpKSB7CisgICAgICAgICAgICAgICAgbG9uZyB2YWx1ZT1nZXRTbG90VmFsdWVBbmRPZmZzZXQoZXhjV29yZCwgRVhDX0ZVTExfTUFQUElOR1MsIGV4Y09mZnNldCk7CisgICAgICAgICAgICAgICAgZnVsbD0oaW50KXZhbHVlJjB4ZmZmZjsKKworICAgICAgICAgICAgICAgIC8qIHN0YXJ0IG9mIGZ1bGwgY2FzZSBtYXBwaW5nIHN0cmluZ3MgKi8KKyAgICAgICAgICAgICAgICBleGNPZmZzZXQ9KGludCkodmFsdWU+PjMyKSsxOworCisgICAgICAgICAgICAgICAgLyogc2tpcCB0aGUgbG93ZXJjYXNlIGFuZCBjYXNlLWZvbGRpbmcgcmVzdWx0IHN0cmluZ3MgKi8KKyAgICAgICAgICAgICAgICBleGNPZmZzZXQrPWZ1bGwmRlVMTF9MT1dFUjsKKyAgICAgICAgICAgICAgICBmdWxsPj49NDsKKyAgICAgICAgICAgICAgICBleGNPZmZzZXQrPWZ1bGwmMHhmOworICAgICAgICAgICAgICAgIGZ1bGw+Pj00OworCisgICAgICAgICAgICAgICAgaWYodXBwZXJOb3RUaXRsZSkgeworICAgICAgICAgICAgICAgICAgICBmdWxsJj0weGY7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogc2tpcCB0aGUgdXBwZXJjYXNlIHJlc3VsdCBzdHJpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgZXhjT2Zmc2V0Kz1mdWxsJjB4ZjsKKyAgICAgICAgICAgICAgICAgICAgZnVsbD0oZnVsbD4+NCkmMHhmOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmKGZ1bGwhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogc2V0IHRoZSBvdXRwdXQgcG9pbnRlciB0byB0aGUgcmVzdWx0IHN0cmluZyAqLworICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKG5ldyBTdHJpbmcoZXhjZXB0aW9ucywgZXhjT2Zmc2V0LCBmdWxsKSk7CisKKyAgICAgICAgICAgICAgICAgICAgLyogcmV0dXJuIHRoZSBzdHJpbmcgbGVuZ3RoICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYoIXVwcGVyTm90VGl0bGUgJiYgaGFzU2xvdChleGNXb3JkLCBFWENfVElUTEUpKSB7CisgICAgICAgICAgICAgICAgaW5kZXg9RVhDX1RJVExFOworICAgICAgICAgICAgfSBlbHNlIGlmKGhhc1Nsb3QoZXhjV29yZCwgRVhDX1VQUEVSKSkgeworICAgICAgICAgICAgICAgIC8qIGhlcmUsIHRpdGxlY2FzZSBpcyBzYW1lIGFzIHVwcGVyY2FzZSAqLworICAgICAgICAgICAgICAgIGluZGV4PUVYQ19VUFBFUjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIH5jOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0PWdldFNsb3RWYWx1ZShleGNXb3JkLCBpbmRleCwgZXhjT2Zmc2V0Mik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gKHJlc3VsdD09YykgPyB+cmVzdWx0IDogcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgdG9GdWxsVXBwZXIoaW50IGMsIENvbnRleHRJdGVyYXRvciBpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlLCBpbnRbXSBsb2NDYWNoZSkgeworICAgICAgICByZXR1cm4gdG9VcHBlck9yVGl0bGUoYywgaXRlciwgb3V0LCBsb2NhbGUsIGxvY0NhY2hlLCB0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgaW50IHRvRnVsbFRpdGxlKGludCBjLCBDb250ZXh0SXRlcmF0b3IgaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSwgaW50W10gbG9jQ2FjaGUpIHsKKyAgICAgICAgcmV0dXJuIHRvVXBwZXJPclRpdGxlKGMsIGl0ZXIsIG91dCwgbG9jYWxlLCBsb2NDYWNoZSwgZmFsc2UpOworICAgIH0KKworICAgIC8qIGNhc2UgZm9sZGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKyAgICAvKgorICAgICAqIENhc2UgZm9sZGluZyBpcyBzaW1pbGFyIHRvIGxvd2VyY2FzaW5nLgorICAgICAqIFRoZSByZXN1bHQgbWF5IGJlIGEgc2ltcGxlIG1hcHBpbmcsIGkuZS4sIGEgc2luZ2xlIGNvZGUgcG9pbnQsIG9yCisgICAgICogYSBmdWxsIG1hcHBpbmcsIGkuZS4sIGEgc3RyaW5nLgorICAgICAqIElmIHRoZSBjYXNlIGZvbGRpbmcgZm9yIGEgY29kZSBwb2ludCBpcyB0aGUgc2FtZSBhcyBpdHMgc2ltcGxlICgxOjEpIGxvd2VyY2FzZSBtYXBwaW5nLAorICAgICAqIHRoZW4gb25seSB0aGUgbG93ZXJjYXNlIG1hcHBpbmcgaXMgc3RvcmVkLgorICAgICAqCisgICAgICogU29tZSBzcGVjaWFsIGNhc2VzIGFyZSBoYXJkY29kZWQgYmVjYXVzZSB0aGVpciBjb25kaXRpb25zIGNhbm5vdCBiZQorICAgICAqIHBhcnNlZCBhbmQgcHJvY2Vzc2VkIGZyb20gQ2FzZUZvbGRpbmcudHh0LgorICAgICAqCisgICAgICogVW5pY29kZSAzLjIgQ2FzZUZvbGRpbmcudHh0IHNwZWNpZmllcyBmb3IgaXRzIHN0YXR1cyBmaWVsZDoKKworICAgICMgQzogY29tbW9uIGNhc2UgZm9sZGluZywgY29tbW9uIG1hcHBpbmdzIHNoYXJlZCBieSBib3RoIHNpbXBsZSBhbmQgZnVsbCBtYXBwaW5ncy4KKyAgICAjIEY6IGZ1bGwgY2FzZSBmb2xkaW5nLCBtYXBwaW5ncyB0aGF0IGNhdXNlIHN0cmluZ3MgdG8gZ3JvdyBpbiBsZW5ndGguIE11bHRpcGxlIGNoYXJhY3RlcnMgYXJlIHNlcGFyYXRlZCBieSBzcGFjZXMuCisgICAgIyBTOiBzaW1wbGUgY2FzZSBmb2xkaW5nLCBtYXBwaW5ncyB0byBzaW5nbGUgY2hhcmFjdGVycyB3aGVyZSBkaWZmZXJlbnQgZnJvbSBGLgorICAgICMgVDogc3BlY2lhbCBjYXNlIGZvciB1cHBlcmNhc2UgSSBhbmQgZG90dGVkIHVwcGVyY2FzZSBJCisgICAgIyAgICAtIEZvciBub24tVHVya2ljIGxhbmd1YWdlcywgdGhpcyBtYXBwaW5nIGlzIG5vcm1hbGx5IG5vdCB1c2VkLgorICAgICMgICAgLSBGb3IgVHVya2ljIGxhbmd1YWdlcyAodHIsIGF6KSwgdGhpcyBtYXBwaW5nIGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIG5vcm1hbCBtYXBwaW5nIGZvciB0aGVzZSBjaGFyYWN0ZXJzLgorICAgICMKKyAgICAjIFVzYWdlOgorICAgICMgIEEuIFRvIGRvIGEgc2ltcGxlIGNhc2UgZm9sZGluZywgdXNlIHRoZSBtYXBwaW5ncyB3aXRoIHN0YXR1cyBDICsgUy4KKyAgICAjICBCLiBUbyBkbyBhIGZ1bGwgY2FzZSBmb2xkaW5nLCB1c2UgdGhlIG1hcHBpbmdzIHdpdGggc3RhdHVzIEMgKyBGLgorICAgICMKKyAgICAjICAgIFRoZSBtYXBwaW5ncyB3aXRoIHN0YXR1cyBUIGNhbiBiZSB1c2VkIG9yIG9taXR0ZWQgZGVwZW5kaW5nIG9uIHRoZSBkZXNpcmVkIGNhc2UtZm9sZGluZworICAgICMgICAgYmVoYXZpb3IuIChUaGUgZGVmYXVsdCBvcHRpb24gaXMgdG8gZXhjbHVkZSB0aGVtLikKKworICAgICAqIFVuaWNvZGUgMy4yIGhhcyAnVCcgbWFwcGluZ3MgYXMgZm9sbG93czoKKworICAgIDAwNDk7IFQ7IDAxMzE7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorICAgIDAxMzA7IFQ7IDAwNjk7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRQorCisgICAgICogd2hpbGUgdGhlIGRlZmF1bHQgbWFwcGluZ3MgZm9yIHRoZXNlIGNvZGUgcG9pbnRzIGFyZToKKworICAgIDAwNDk7IEM7IDAwNjk7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorICAgIDAxMzA7IEY7IDAwNjkgMDMwNzsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRE9UIEFCT1ZFCisKKyAgICAgKiBVKzAxMzAgaGFzIG5vIHNpbXBsZSBjYXNlIGZvbGRpbmcgKHNpbXBsZS1jYXNlLWZvbGRzIHRvIGl0c2VsZikuCisgICAgICovCisKKyAgICAvKioKKyAgICAgKiBCaXQgbWFzayBmb3IgZ2V0dGluZyBqdXN0IHRoZSBvcHRpb25zIGZyb20gYSBzdHJpbmcgY29tcGFyZSBvcHRpb25zIHdvcmQKKyAgICAgKiB0aGF0IGFyZSByZWxldmFudCBmb3IgY2FzZSBmb2xkaW5nIChvZiBhIHNpbmdsZSBzdHJpbmcgb3IgY29kZSBwb2ludCkuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZPTERfQ0FTRV9PUFRJT05TX01BU0sgPSAweGZmOworICAgIAorICAgIC8qIHJldHVybiB0aGUgc2ltcGxlIGNhc2UgZm9sZGluZyBtYXBwaW5nIGZvciBjICovCisgICAgcHVibGljIGZpbmFsIGludCBmb2xkKGludCBjLCBpbnQgb3B0aW9ucykgeworICAgICAgICBpbnQgcHJvcHM9dHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgaWYoIXByb3BzSGFzRXhjZXB0aW9uKHByb3BzKSkgeworICAgICAgICAgICAgaWYoZ2V0VHlwZUZyb21Qcm9wcyhwcm9wcyk+PVVQUEVSKSB7CisgICAgICAgICAgICAgICAgYys9Z2V0RGVsdGEocHJvcHMpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGV4Y09mZnNldD1nZXRFeGNlcHRpb25zT2Zmc2V0KHByb3BzKTsKKyAgICAgICAgICAgIGludCBleGNXb3JkPWV4Y2VwdGlvbnNbZXhjT2Zmc2V0KytdOworICAgICAgICAgICAgaW50IGluZGV4OworICAgICAgICAgICAgaWYoKGV4Y1dvcmQmRVhDX0NPTkRJVElPTkFMX0ZPTEQpIT0wKSB7CisgICAgICAgICAgICAgICAgLyogc3BlY2lhbCBjYXNlIGZvbGRpbmcgbWFwcGluZ3MsIGhhcmRjb2RlZCAqLworICAgICAgICAgICAgICAgIGlmKChvcHRpb25zJkZPTERfQ0FTRV9PUFRJT05TX01BU0spPT1VQ2hhcmFjdGVyLkZPTERfQ0FTRV9ERUZBVUxUKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGRlZmF1bHQgbWFwcGluZ3MgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoYz09MHg0OSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA0OTsgQzsgMDA2OTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMHg2OTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGM9PTB4MTMwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBubyBzaW1wbGUgY2FzZSBmb2xkaW5nIGZvciBVKzAxMzAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogVHVya2ljIG1hcHBpbmdzICovCisgICAgICAgICAgICAgICAgICAgIGlmKGM9PTB4NDkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNDk7IFQ7IDAxMzE7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSAqLworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDB4MTMxOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoYz09MHgxMzApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxMzA7IFQ7IDAwNjk7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRSAqLworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDB4Njk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19GT0xEKSkgeworICAgICAgICAgICAgICAgIGluZGV4PUVYQ19GT0xEOworICAgICAgICAgICAgfSBlbHNlIGlmKGhhc1Nsb3QoZXhjV29yZCwgRVhDX0xPV0VSKSkgeworICAgICAgICAgICAgICAgIGluZGV4PUVYQ19MT1dFUjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjPWdldFNsb3RWYWx1ZShleGNXb3JkLCBpbmRleCwgZXhjT2Zmc2V0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICAvKgorICAgICAqIElzc3VlIGZvciBjYW5vbmljYWwgY2FzZWxlc3MgbWF0Y2ggKFVBWCAjMjEpOgorICAgICAqIFR1cmtpYyBjYXNlZm9sZGluZyAodXNpbmcgIlQiIG1hcHBpbmdzIGluIENhc2VGb2xkaW5nLnR4dCkgZG9lcyBub3QgcHJlc2VydmUKKyAgICAgKiBjYW5vbmljYWwgZXF1aXZhbGVuY2UsIHVubGlrZSBkZWZhdWx0LW9wdGlvbiBjYXNlZm9sZGluZy4KKyAgICAgKiBGb3IgZXhhbXBsZSwgSS1ncmF2ZSBhbmQgSSArIGdyYXZlIGZvbGQgdG8gc3RyaW5ncyB0aGF0IGFyZSBub3QgY2Fub25pY2FsbHkKKyAgICAgKiBlcXVpdmFsZW50LgorICAgICAqIEZvciBtb3JlIGRldGFpbHMsIHNlZSB0aGUgY29tbWVudCBpbiB1bm9ybV9jb21wYXJlKCkgaW4gdW5vcm0uY3BwCisgICAgICogYW5kIHRoZSBpbnRlcm1lZGlhdGUgcHJvdG90eXBlIGNoYW5nZXMgZm9yIEppdHRlcmJ1ZyAyMDIxLgorICAgICAqIChGb3IgZXhhbXBsZSwgcmV2aXNpb24gMS4xMDQgb2YgdWNoYXIuYyBhbmQgMS40IG9mIENhc2VGb2xkaW5nLnR4dC4pCisgICAgICoKKyAgICAgKiBUaGlzIGRpZCBub3QgZ2V0IGZpeGVkIGJlY2F1c2UgaXQgYXBwZWFycyB0aGF0IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBmaXgKKyAgICAgKiBpdCBmb3IgdXBwZXJjYXNlIGFuZCBsb3dlcmNhc2UgY2hhcmFjdGVycyAoSS1ncmF2ZSB2cy4gaS1ncmF2ZSkKKyAgICAgKiB0b2dldGhlciBpbiBhIHdheSB0aGF0IHRoZXkgc3RpbGwgZm9sZCB0byBjb21tb24gcmVzdWx0IHN0cmluZ3MuCisgICAgICovCisKKyAgICBwdWJsaWMgZmluYWwgaW50IHRvRnVsbEZvbGRpbmcoaW50IGMsIFN0cmluZ0J1ZmZlciBvdXQsIGludCBvcHRpb25zKSB7CisgICAgICAgIGludCByZXN1bHQ7CisgICAgICAgIGludCBwcm9wczsKKworICAgICAgICByZXN1bHQ9YzsKKyAgICAgICAgcHJvcHM9dHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgaWYoIXByb3BzSGFzRXhjZXB0aW9uKHByb3BzKSkgeworICAgICAgICAgICAgaWYoZ2V0VHlwZUZyb21Qcm9wcyhwcm9wcyk+PVVQUEVSKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0PWMrZ2V0RGVsdGEocHJvcHMpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGV4Y09mZnNldD1nZXRFeGNlcHRpb25zT2Zmc2V0KHByb3BzKSwgZXhjT2Zmc2V0MjsKKyAgICAgICAgICAgIGludCBleGNXb3JkPWV4Y2VwdGlvbnNbZXhjT2Zmc2V0KytdOworICAgICAgICAgICAgaW50IGZ1bGwsIGluZGV4OworCisgICAgICAgICAgICBleGNPZmZzZXQyPWV4Y09mZnNldDsKKworICAgICAgICAgICAgaWYoKGV4Y1dvcmQmRVhDX0NPTkRJVElPTkFMX0ZPTEQpIT0wKSB7CisgICAgICAgICAgICAgICAgLyogdXNlIGhhcmRjb2RlZCBjb25kaXRpb25zIGFuZCBtYXBwaW5ncyAqLworICAgICAgICAgICAgICAgIGlmKChvcHRpb25zJkZPTERfQ0FTRV9PUFRJT05TX01BU0spPT1VQ2hhcmFjdGVyLkZPTERfQ0FTRV9ERUZBVUxUKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGRlZmF1bHQgbWFwcGluZ3MgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYoYz09MHg0OSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogMDA0OTsgQzsgMDA2OTsgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBJICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMHg2OTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGM9PTB4MTMwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiAwMTMwOyBGOyAwMDY5IDAzMDc7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRSAqLworICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChpRG90KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogVHVya2ljIG1hcHBpbmdzICovCisgICAgICAgICAgICAgICAgICAgIGlmKGM9PTB4NDkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAwNDk7IFQ7IDAxMzE7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSAqLworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDB4MTMxOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoYz09MHgxMzApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAxMzA7IFQ7IDAwNjk7ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERPVCBBQk9WRSAqLworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDB4Njk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfRlVMTF9NQVBQSU5HUykpIHsKKyAgICAgICAgICAgICAgICBsb25nIHZhbHVlPWdldFNsb3RWYWx1ZUFuZE9mZnNldChleGNXb3JkLCBFWENfRlVMTF9NQVBQSU5HUywgZXhjT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBmdWxsPShpbnQpdmFsdWUmMHhmZmZmOworCisgICAgICAgICAgICAgICAgLyogc3RhcnQgb2YgZnVsbCBjYXNlIG1hcHBpbmcgc3RyaW5ncyAqLworICAgICAgICAgICAgICAgIGV4Y09mZnNldD0oaW50KSh2YWx1ZT4+MzIpKzE7CisKKyAgICAgICAgICAgICAgICAvKiBza2lwIHRoZSBsb3dlcmNhc2UgcmVzdWx0IHN0cmluZyAqLworICAgICAgICAgICAgICAgIGV4Y09mZnNldCs9ZnVsbCZGVUxMX0xPV0VSOworICAgICAgICAgICAgICAgIGZ1bGw9KGZ1bGw+PjQpJjB4ZjsKKworICAgICAgICAgICAgICAgIGlmKGZ1bGwhPTApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogc2V0IHRoZSBvdXRwdXQgcG9pbnRlciB0byB0aGUgcmVzdWx0IHN0cmluZyAqLworICAgICAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKG5ldyBTdHJpbmcoZXhjZXB0aW9ucywgZXhjT2Zmc2V0LCBmdWxsKSk7CisKKyAgICAgICAgICAgICAgICAgICAgLyogcmV0dXJuIHRoZSBzdHJpbmcgbGVuZ3RoICovCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYoaGFzU2xvdChleGNXb3JkLCBFWENfRk9MRCkpIHsKKyAgICAgICAgICAgICAgICBpbmRleD1FWENfRk9MRDsKKyAgICAgICAgICAgIH0gZWxzZSBpZihoYXNTbG90KGV4Y1dvcmQsIEVYQ19MT1dFUikpIHsKKyAgICAgICAgICAgICAgICBpbmRleD1FWENfTE9XRVI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiB+YzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdD1nZXRTbG90VmFsdWUoZXhjV29yZCwgaW5kZXgsIGV4Y09mZnNldDIpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIChyZXN1bHQ9PWMpID8gfnJlc3VsdCA6IHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisgICAgcHJpdmF0ZSBpbnQgaW5kZXhlc1tdOworICAgIHByaXZhdGUgY2hhciBleGNlcHRpb25zW107CisgICAgcHJpdmF0ZSBjaGFyIHVuZm9sZFtdOworCisgICAgcHJpdmF0ZSBDaGFyVHJpZSB0cmllOworICAgIHByaXZhdGUgYnl0ZSBmb3JtYXRWZXJzaW9uW107CisgICAgcHJpdmF0ZSBieXRlIHVuaWNvZGVWZXJzaW9uW107ICAKKworICAgIC8vIGRhdGEgZm9ybWF0IGNvbnN0YW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqKioKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9OQU1FPSJ1Y2FzZSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfVFlQRT0iaWN1IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9GSUxFX05BTUU9REFUQV9OQU1FKyIuIitEQVRBX1RZUEU7CisKKyAgICAvKiBmb3JtYXQgImNBc0UiICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBGTVRbXT17IDB4NjMsIDB4NDEsIDB4NTMsIDB4NDUgfTsKKworICAgIC8qIGluZGV4ZXMgaW50byBpbmRleGVzW10gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVhfSU5ERVhfVE9QPTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElYX0xFTkdUSD0xOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9UUklFX1NJWkU9MjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVhfRVhDX0xFTkdUSD0zOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9VTkZPTERfTEVOR1RIPTQ7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVhfTUFYX0ZVTExfTEVOR1RIPTE1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJWF9UT1A9MTY7CisKKyAgICAvLyBkZWZpbml0aW9ucyBmb3IgMTYtYml0IGNhc2UgcHJvcGVydGllcyB3b3JkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisKKyAgICAvKiAyLWJpdCBjb25zdGFudHMgZm9yIHR5cGVzIG9mIGNhc2VkIGNoYXJhY3RlcnMgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUWVBFX01BU0s9MzsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05FPTA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTE9XRVI9MTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVUFBFUj0yOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRJVExFPTM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0VHlwZUZyb21Qcm9wcyhpbnQgcHJvcHMpIHsKKyAgICAgICAgcmV0dXJuIHByb3BzJlRZUEVfTUFTSzsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0VOU0lUSVZFPSAgICAgNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDRVBUSU9OPSAgICAgODsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBET1RfTUFTSz0gICAgICAweDMwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT19ET1Q9ICAgICAgICAwOyAgICAgIC8qIG5vcm1hbCBjaGFyYWN0ZXJzIHdpdGggY2M9MCAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTT0ZUX0RPVFRFRD0gICAweDEwOyAgIC8qIHNvZnQtZG90dGVkIGNoYXJhY3RlcnMgd2l0aCBjYz0wICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFCT1ZFPSAgICAgICAgIDB4MjA7ICAgLyogImFib3ZlIiBhY2NlbnRzIHdpdGggY2M9MjMwICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9USEVSX0FDQ0VOVD0gIDB4MzA7ICAgLyogb3RoZXIgYWNjZW50IGNoYXJhY3RlciAoMDxjYyE9MjMwKSAqLworCisgICAgLyogbm8gZXhjZXB0aW9uOiBiaXRzIDE1Li42IGFyZSBhIDEwLWJpdCBzaWduZWQgY2FzZSBtYXBwaW5nIGRlbHRhICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFTFRBX1NISUZUPSAgIDY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFTFRBX01BU0s9ICAgIDB4ZmZjMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0RFTFRBPSAgICAgMHgxZmY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1JTl9ERUxUQT0gICAgICgtTUFYX0RFTFRBLTEpOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldERlbHRhKGludCBwcm9wcykgeworICAgICAgICByZXR1cm4gKHNob3J0KXByb3BzPj5ERUxUQV9TSElGVDsKKyAgICB9CisKKyAgICAvKiBjYXNlLWlnbm9yYWJsZSB1c2VzIG9uZSBvZiB0aGUgZGVsdGEgYml0cywgc2VlIGdlbmNhc2Uvc3RvcmUuYyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDQVNFX0lHTk9SQUJMRT0weDQwOworCisgICAgLyogZXhjZXB0aW9uOiBiaXRzIDE1Li40IGFyZSBhbiB1bnNpZ25lZCAxMi1iaXQgaW5kZXggaW50byB0aGUgZXhjZXB0aW9ucyBhcnJheSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfU0hJRlQ9ICAgICA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfTUFTSz0gICAgICAweGZmZjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9FWENFUFRJT05TPTB4MTAwMDsKKworICAgIC8qIGRlZmluaXRpb25zIGZvciAxNi1iaXQgbWFpbiBleGNlcHRpb25zIHdvcmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKyAgICAvKiBmaXJzdCA4IGJpdHMgaW5kaWNhdGUgdmFsdWVzIGluIG9wdGlvbmFsIHNsb3RzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19MT1dFUj0wOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfRk9MRD0xOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfVVBQRVI9MjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX1RJVExFPTM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ180PTQ7ICAgICAgICAgICAvKiByZXNlcnZlZCAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfNT01OyAgICAgICAgICAgLyogcmVzZXJ2ZWQgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0NMT1NVUkU9NjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0ZVTExfTUFQUElOR1M9NzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX0FMTF9TTE9UUz04OyAgIC8qIG9uZSBwYXN0IHRoZSBsYXN0IHNsb3QgKi8KKworICAgIC8qIGVhY2ggc2xvdCBpcyAyIHVpbnQxNl90IGluc3RlYWQgb2YgMSAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfRE9VQkxFX1NMT1RTPSAgICAgICAgICAweDEwMDsKKworICAgIC8qIHJlc2VydmVkOiBleGNlcHRpb24gYml0cyAxMS4uOSAqLworCisgICAgLyogRVhDX0RPVF9NQVNLPURPVF9NQVNLPDxFWENfRE9UX1NISUZUICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19ET1RfU0hJRlQ9ODsKKworICAgIC8qIG5vcm1hbGx5IHN0b3JlZCBpbiB0aGUgbWFpbiB3b3JkLCBidXQgcHVzaGVkIG91dCBmb3IgbGFyZ2VyIGV4Y2VwdGlvbiBpbmRleGVzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19ET1RfTUFTSz0gICAgICAgICAgICAgIDB4MzAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX05PX0RPVD0gICAgICAgICAgICAgICAgMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhDX1NPRlRfRE9UVEVEPSAgICAgICAgICAgMHgxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfQUJPVkU9ICAgICAgICAgICAgICAgICAweDIwMDA7IC8qICJhYm92ZSIgYWNjZW50cyB3aXRoIGNjPTIzMCAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfT1RIRVJfQUNDRU5UPSAgICAgICAgICAweDMwMDA7IC8qIG90aGVyIGNoYXJhY3RlciAoMDxjYyE9MjMwKSAqLworCisgICAgLyogY29tcGxleC9jb25kaXRpb25hbCBtYXBwaW5ncyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWENfQ09ORElUSU9OQUxfU1BFQ0lBTD0gICAweDQwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVYQ19DT05ESVRJT05BTF9GT0xEPSAgICAgIDB4ODAwMDsKKworICAgIC8qIGRlZmluaXRpb25zIGZvciBsZW5ndGhzIHdvcmQgZm9yIGZ1bGwgY2FzZSBtYXBwaW5ncyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGVUxMX0xPV0VSPSAgICAweGY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZVTExfRk9MRElORz0gIDB4ZjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZVTExfVVBQRVI9ICAgIDB4ZjAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGVUxMX1RJVExFPSAgICAweGYwMDA7CisKKyAgICAvKiBtYXhpbXVtIGxlbmd0aHMgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlVMTF9NQVBQSU5HU19NQVhfTEVOR1RIPTQqMHhmOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDTE9TVVJFX01BWF9MRU5HVEg9MHhmOworCisgICAgLyogY29uc3RhbnRzIGZvciByZXZlcnNlIGNhc2UgZm9sZGluZyAoInVuZm9sZCIpIGRhdGEgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5GT0xEX1JPV1M9MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5GT0xEX1JPV19XSURUSD0xOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTkZPTERfU1RSSU5HX1dJRFRIPTI7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhckFycmF5SXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyQXJyYXlJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0YjBiMTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhckFycmF5SXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDg0IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKKworCisvKioKKyAqIEBhdXRob3IgRG91ZyBGZWx0CisgKgorICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2hhckFycmF5SXRlcmF0b3IgZXh0ZW5kcyBVQ2hhcmFjdGVySXRlcmF0b3IgeworICAgIHByaXZhdGUgZmluYWwgY2hhcltdIHRleHQ7CisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgc3RhcnQ7CisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgbGltaXQ7CisgICAgcHJpdmF0ZSBpbnQgcG9zOworCisgICAgcHVibGljIFVDaGFyQXJyYXlJdGVyYXRvcihjaGFyW10gdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgaWYgKHN0YXJ0IDwgMCB8fCBsaW1pdCA+IHRleHQubGVuZ3RoIHx8IHN0YXJ0ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInN0YXJ0OiAiICsgc3RhcnQgKyAiIG9yIGxpbWl0OiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGltaXQgKyAiIG91dCBvZiByYW5nZSBbMCwgIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB0ZXh0Lmxlbmd0aCArICIpIik7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy50ZXh0ID0gdGV4dDsKKyAgICAgICAgdGhpcy5zdGFydCA9IHN0YXJ0OworICAgICAgICB0aGlzLmxpbWl0ID0gbGltaXQ7CisKKyAgICAgICAgdGhpcy5wb3MgPSBzdGFydDsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGN1cnJlbnQoKSB7CisgICAgICAgIHJldHVybiBwb3MgPCBsaW1pdCA/IHRleHRbcG9zXSA6IERPTkU7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRMZW5ndGgoKSB7CisgICAgICAgIHJldHVybiBsaW1pdCAtIHN0YXJ0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKSB7CisgICAgICAgIHJldHVybiBwb3MgLSBzdGFydDsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IG5leHQoKSB7CisgICAgICAgIHJldHVybiBwb3MgPCBsaW1pdCA/IHRleHRbcG9zKytdIDogRE9ORTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IHByZXZpb3VzKCkgeworICAgICAgICByZXR1cm4gcG9zID4gc3RhcnQgPyB0ZXh0Wy0tcG9zXSA6IERPTkU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0SW5kZXgoaW50IGluZGV4KSB7CisgICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPiBsaW1pdCAtIHN0YXJ0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigiaW5kZXg6ICIgKyBpbmRleCArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBvdXQgb2YgcmFuZ2UgWzAsICIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChsaW1pdCAtIHN0YXJ0KSArICIpIik7CisgICAgICAgIH0KKyAgICAgICAgcG9zID0gc3RhcnQgKyBpbmRleDsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldFRleHQoY2hhcltdIGZpbGxJbiwgaW50IG9mZnNldCkgeworICAgICAgICBpbnQgbGVuID0gbGltaXQgLSBzdGFydDsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZXh0LCBzdGFydCwgZmlsbEluLCBvZmZzZXQsIGxlbik7CisgICAgICAgIHJldHVybiBsZW47CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhpcyBpdGVyYXRvciwgZG9lcyBub3QgY2xvbmUgdGhlIHVuZGVybHlpbmcgCisgICAgICogPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+b2JqZWN0CisgICAgICogQHJldHVybiBjb3B5IG9mIHRoaXMgaXRlcmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCl7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBuZXZlciBpbnZva2VkCisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljYTQ5MDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyLmphdmEKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisgCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lio7CisKKy8qKgorICogVGhpcyBjbGFzcyBpcyBhIHdyYXBwZXIgYXJvdW5kIFVDaGFyYWN0ZXJJdGVyYXRvciBhbmQgaW1wbGVtZW50cyB0aGUgCisgKiBDaGFyYWN0ZXJJdGVyYXRvciBwcm90b2NvbAorICogQGF1dGhvciByYW0KKyAqLworcHVibGljIGNsYXNzIFVDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIgaW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvcnsKKyAgICAKKyAgICBwdWJsaWMgVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcihVQ2hhcmFjdGVySXRlcmF0b3IgaXRlcil7CisgICAgICAgIHRoaXMuaXRlcmF0b3IgPSBpdGVyOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvcjsKKworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgcG9zaXRpb24gdG8gZ2V0QmVnaW5JbmRleCgpIGFuZCByZXR1cm5zIHRoZSBjaGFyYWN0ZXIgYXQgdGhhdAorICAgICAqIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCwgb3IgRE9ORSBpZiB0aGUgdGV4dCBpcyBlbXB0eQorICAgICAqIEBzZWUgI2dldEJlZ2luSW5kZXgoKQorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGZpcnN0KCl7CisgICAgICAgIC8vVUNoYXJhY3Rlckl0ZXJhdG9yIGFsd2F5cyBpdGVyYXRlcyBmcm9tIDAgdG8gbGVuZ3RoCisgICAgICAgIGl0ZXJhdG9yLnNldFRvU3RhcnQoKTsKKyAgICAgICAgcmV0dXJuIChjaGFyKWl0ZXJhdG9yLmN1cnJlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiB0byBnZXRFbmRJbmRleCgpLTEgKGdldEVuZEluZGV4KCkgaWYgdGhlIHRleHQgaXMgZW1wdHkpCisgICAgICogYW5kIHJldHVybnMgdGhlIGNoYXJhY3RlciBhdCB0aGF0IHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0LCBvciBET05FIGlmIHRoZSB0ZXh0IGlzIGVtcHR5CisgICAgICogQHNlZSAjZ2V0RW5kSW5kZXgoKQorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGxhc3QoKXsKKyAgICAgICAgaXRlcmF0b3Iuc2V0VG9MaW1pdCgpOworICAgICAgICByZXR1cm4gKGNoYXIpaXRlcmF0b3IucHJldmlvdXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gKGFzIHJldHVybmVkIGJ5IGdldEluZGV4KCkpLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCB0aGUgY3VycmVudCBwb3NpdGlvbiBvciBET05FIGlmIHRoZSBjdXJyZW50CisgICAgICogcG9zaXRpb24gaXMgb2ZmIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHNlZSAjZ2V0SW5kZXgoKQorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGN1cnJlbnQoKXsKKyAgICAgICAgcmV0dXJuIChjaGFyKSBpdGVyYXRvci5jdXJyZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5jcmVtZW50cyB0aGUgaXRlcmF0b3IncyBpbmRleCBieSBvbmUgYW5kIHJldHVybnMgdGhlIGNoYXJhY3RlcgorICAgICAqIGF0IHRoZSBuZXcgaW5kZXguICBJZiB0aGUgcmVzdWx0aW5nIGluZGV4IGlzIGdyZWF0ZXIgb3IgZXF1YWwKKyAgICAgKiB0byBnZXRFbmRJbmRleCgpLCB0aGUgY3VycmVudCBpbmRleCBpcyByZXNldCB0byBnZXRFbmRJbmRleCgpIGFuZAorICAgICAqIGEgdmFsdWUgb2YgRE9ORSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIG5ldyBwb3NpdGlvbiBvciBET05FIGlmIHRoZSBuZXcKKyAgICAgKiBwb3NpdGlvbiBpcyBvZmYgdGhlIGVuZCBvZiB0aGUgdGV4dCByYW5nZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBuZXh0KCl7CisgICAgICAgIC8vcHJlLWluY3JlbWVudAorICAgICAgICBpdGVyYXRvci5uZXh0KCk7CisgICAgICAgIHJldHVybiAoY2hhcikgaXRlcmF0b3IuY3VycmVudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgaW5kZXggYnkgb25lIGFuZCByZXR1cm5zIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiBhdCB0aGUgbmV3IGluZGV4LiBJZiB0aGUgY3VycmVudCBpbmRleCBpcyBnZXRCZWdpbkluZGV4KCksIHRoZSBpbmRleAorICAgICAqIHJlbWFpbnMgYXQgZ2V0QmVnaW5JbmRleCgpIGFuZCBhIHZhbHVlIG9mIERPTkUgaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBuZXcgcG9zaXRpb24gb3IgRE9ORSBpZiB0aGUgY3VycmVudAorICAgICAqIHBvc2l0aW9uIGlzIGVxdWFsIHRvIGdldEJlZ2luSW5kZXgoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBwcmV2aW91cygpeworICAgICAgICAvL3ByZS1kZWNyZW1lbnQKKyAgICAgICAgcmV0dXJuIChjaGFyKSBpdGVyYXRvci5wcmV2aW91cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBvc2l0aW9uIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhlIHRleHQgYW5kIHJldHVybnMgdGhhdAorICAgICAqIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgdGV4dC4gIFZhbGlkIHZhbHVlcyByYW5nZSBmcm9tCisgICAgICogZ2V0QmVnaW5JbmRleCgpIHRvIGdldEVuZEluZGV4KCkuICBBbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaXMgdGhyb3duCisgICAgICogaWYgYW4gaW52YWxpZCB2YWx1ZSBpcyBzdXBwbGllZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBvciBET05FIGlmIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaXMgZXF1YWwgdG8gZ2V0RW5kSW5kZXgoKQorICAgICAqLworICAgIHB1YmxpYyBjaGFyIHNldEluZGV4KGludCBwb3NpdGlvbil7CisgICAgICAgIGl0ZXJhdG9yLnNldEluZGV4KHBvc2l0aW9uKTsKKyAgICAgICAgcmV0dXJuIChjaGFyKSBpdGVyYXRvci5jdXJyZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc3RhcnQgaW5kZXggb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiB0aGUgaW5kZXggYXQgd2hpY2ggdGhlIHRleHQgYmVnaW5zLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QmVnaW5JbmRleCgpeworICAgICAgICAvL1VDaGFyYWN0ZXJJdGVyYXRvciBhbHdheXMgc3RhcnRzIGZyb20gMAorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBlbmQgaW5kZXggb2YgdGhlIHRleHQuICBUaGlzIGluZGV4IGlzIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QKKyAgICAgKiBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0CisgICAgICovCisgICAgcHVibGljIGludCBnZXRFbmRJbmRleCgpeworICAgICAgICByZXR1cm4gaXRlcmF0b3IuZ2V0TGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBpbmRleC4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGluZGV4LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKXsKKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yLmdldEluZGV4KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgY29weSBvZiB0aGlzIGl0ZXJhdG9yCisgICAgICogQHJldHVybiBBIGNvcHkgb2YgdGhpcworICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKXsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIgcmVzdWx0ID0gKFVDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIpIHN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICByZXN1bHQuaXRlcmF0b3IgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yKXRoaXMuaXRlcmF0b3IuY2xvbmUoKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsgICAgICAKKyAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBvbmx5IGludm9rZWQgaWYgYmFkIHVuZGVybHlpbmcgY2hhcmFjdGVyIGl0ZXJhdG9yCisgICAgICAgIH0KKyAgICB9ICAgCisKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJOYW1lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVmYmJhZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJOYW1lLmphdmEKQEAgLTAsMCArMSwxNzEwIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVURjE2OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyQ2F0ZWdvcnk7CisKKy8qKgorKiBJbnRlcm5hbCBjbGFzcyB0byBtYW5hZ2UgY2hhcmFjdGVyIG5hbWVzLgorKiBTaW5jZSBkYXRhIGZvciBuYW1lcyBhcmUgc3RvcmVkCisqIGluIGFuIGFycmF5IG9mIGNoYXIsIGJ5IGRlZmF1bHQgaW5kZXhlcyB1c2VkIGluIHRoaXMgY2xhc3MgaXMgcmVmZXJpbmcgdG8KKyogYSAyIGJ5dGUgY291bnQsIHVubGVzcyBvdGhlcndpc2Ugc3RhdGVkLiBDYXNlcyB3aGVyZSB0aGUgaW5kZXggaXMgcmVmZXJpbmcKKyogdG8gYSBieXRlIGNvdW50LCB0aGUgaW5kZXggaXMgaGFsdmVkIGFuZCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgaW5kZXggaXMKKyogZXZlbiBvciBvZGQsIHRoZSBNU0Igb3IgTFNCIG9mIHRoZSByZXN1bHQgY2hhciBhdCB0aGUgaGFsdmVkIGluZGV4IGlzCisqIHJldHVybmVkLiBGb3IgaW5kZXhlcyB0byBhbiBhcnJheSBvZiBpbnQsIHRoZSBpbmRleCBpcyBtdWx0aXBsaWVkIGJ5IDIsCisqIHJlc3VsdCBjaGFyIGF0IHRoZSBtdWx0aXBsaWVkIGluZGV4IGFuZCBpdHMgZm9sbG93aW5nIGNoYXIgaXMgcmV0dXJuZWQgYXMgYW4KKyogaW50LgorKiA8YSBocmVmPS4uL2xhbmcvVUNoYXJhY3Rlci5odG1sPlVDaGFyYWN0ZXI8L2E+IGFjdHMgYXMgYSBwdWJsaWMgZmFjYWRlIGZvciB0aGlzIGNsYXNzCisqIE5vdGUgOiAwIC0gMHgxRiBhcmUgY29udHJvbCBjaGFyYWN0ZXJzIHdpdGhvdXQgbmFtZXMgaW4gVW5pY29kZSAzLjAKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG5vdjA3MDAKKyovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2hhcmFjdGVyTmFtZQoreworICAgIC8vIHB1YmxpYyBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiBOdW1iZXIgb2YgbGluZXMgcGVyIGdyb3VwCisgICAgKiAxIDw8IEdST1VQX1NISUZUXworICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTElORVNfUEVSX0dST1VQXyA9IDEgPDwgNTsKKyAgICAvKioKKyAgICAgKiBNYXhpbXVtIG51bWJlciBvZiBncm91cHMKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG1fZ3JvdXBjb3VudF8gPSAwOworCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBvbmx5IGluc3RhbmNlIG9mIFVDaGFyYWN0ZXJOYW1lCisgICAgICogQHJldHVybiBvbmx5IGluc3RhbmNlIG9mIFVDaGFyYWN0ZXJOYW1lCisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gdGhyb3duIHdoZW4gcmVhZGluZyBvZiBuYW1lIGRhdGEgZmFpbHMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVDaGFyYWN0ZXJOYW1lIGdldEluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIGlmIChJTlNUQU5DRV8gPT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBJTlNUQU5DRV8gPSBuZXcgVUNoYXJhY3Rlck5hbWUoKTsKKyAgICAgICAgICAgIH1jYXRjaChJT0V4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgY29uc3RydWN0IFVDaGFyYWN0ZXJOYW1lLiBNaXNzaW5nIHVuYW1lcy5pY3UiLCIiLCIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCksIiIsIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBJTlNUQU5DRV87CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXRyaWV2ZSB0aGUgbmFtZSBvZiBhIFVuaWNvZGUgY29kZSBwb2ludC4KKyAgICAqIERlcGVuZGluZyBvbiA8Y29kZT5jaG9pY2U8L2NvZGU+LCB0aGUgY2hhcmFjdGVyIG5hbWUgd3JpdHRlbiBpbnRvIHRoZQorICAgICogYnVmZmVyIGlzIHRoZSAibW9kZXJuIiBuYW1lIG9yIHRoZSBuYW1lIHRoYXQgd2FzIGRlZmluZWQgaW4gVW5pY29kZQorICAgICogdmVyc2lvbiAxLjAuCisgICAgKiBUaGUgbmFtZSBjb250YWlucyBvbmx5ICJpbnZhcmlhbnQiIGNoYXJhY3RlcnMKKyAgICAqIGxpa2UgQS1aLCAwLTksIHNwYWNlLCBhbmQgJy0nLgorICAgICoKKyAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludCBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBuYW1lLgorICAgICogQHBhcmFtIGNob2ljZSBTZWxlY3RvciBmb3Igd2hpY2ggbmFtZSB0byBnZXQuCisgICAgKiBAcmV0dXJuIGlmIGNvZGUgcG9pbnQgaXMgYWJvdmUgMHgxZmZmLCBudWxsIGlzIHJldHVybmVkCisgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoaW50IGNoLCBpbnQgY2hvaWNlKQorICAgIHsKKyAgICAgICAgaWYgKGNoIDwgVUNoYXJhY3Rlci5NSU5fVkFMVUUgfHwgY2ggPiBVQ2hhcmFjdGVyLk1BWF9WQUxVRSB8fAorICAgICAgICAgICAgY2hvaWNlID4gVUNoYXJhY3Rlck5hbWVDaG9pY2UuQ0hBUl9OQU1FX0NIT0lDRV9DT1VOVCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKworICAgICAgICByZXN1bHQgPSBnZXRBbGdOYW1lKGNoLCBjaG9pY2UpOworCisgICAgICAgIC8vIGdldHRpbmcgbm9ybWFsIGNoYXJhY3RlciBuYW1lCisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCB8fCByZXN1bHQubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKGNob2ljZSA9PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5FWFRFTkRFRF9DSEFSX05BTUUpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBnZXRFeHRlbmRlZE5hbWUoY2gpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBnZXRHcm91cE5hbWUoY2gsIGNob2ljZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICogRmluZCBhIGNoYXJhY3RlciBieSBpdHMgbmFtZSBhbmQgcmV0dXJuIGl0cyBjb2RlIHBvaW50IHZhbHVlCisgICAgKiBAcGFyYW0gY2hvaWNlIHNlbGVjdG9yIHRvIGluZGljYXRlIGlmIGFyZ3VtZW50IG5hbWUgaXMgYSBVbmljb2RlIDEuMAorICAgICogICAgICAgIG9yIHRoZSBtb3N0IGN1cnJlbnQgdmVyc2lvbgorICAgICogQHBhcmFtIG5hbWUgdGhlIG5hbWUgdG8gc2VhcmNoIGZvcgorICAgICogQHJldHVybiBjb2RlIHBvaW50CisgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldENoYXJGcm9tTmFtZShpbnQgY2hvaWNlLCBTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIC8vIGNoZWNrcyBmb3IgaWxsZWdhbCBhcmd1bWVudHMKKyAgICAgICAgaWYgKGNob2ljZSA+PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5DSEFSX05BTUVfQ0hPSUNFX0NPVU5UIHx8CisgICAgICAgICAgICBuYW1lID09IG51bGwgfHwgbmFtZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICAvLyB0cnkgZXh0ZW5kZWQgbmFtZXMgZmlyc3QKKyAgICAgICAgaW50IHJlc3VsdCA9IGdldEV4dGVuZGVkQ2hhcihuYW1lLnRvTG93ZXJDYXNlKCksIGNob2ljZSk7CisgICAgICAgIGlmIChyZXN1bHQgPj0gLTEpIHsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgdXBwZXJDYXNlTmFtZSA9IG5hbWUudG9VcHBlckNhc2UoKTsKKyAgICAgICAgLy8gdHJ5IGFsZ29yaXRobWljIG5hbWVzIGZpcnN0LCBpZiBmYWlscyB0aGVuIHRyeSBncm91cCBuYW1lcworICAgICAgICAvLyBpbnQgcmVzdWx0ID0gZ2V0QWxnb3JpdGhtQ2hhcihjaG9pY2UsIHVwcGVyY2FzZW5hbWUpOworCisgICAgICAgIGlmIChjaG9pY2UgIT0gVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV8xMF9DSEFSX05BTUUpIHsKKyAgICAgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgICAgICBpZiAobV9hbGdvcml0aG1fICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBjb3VudCA9IG1fYWxnb3JpdGhtXy5sZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGNvdW50IC0tOyBjb3VudCA+PSAwOyBjb3VudCAtLSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fYWxnb3JpdGhtX1tjb3VudF0uZ2V0Q2hhcih1cHBlckNhc2VOYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoY2hvaWNlID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgcmVzdWx0ID0gZ2V0R3JvdXBDaGFyKHVwcGVyQ2FzZU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV9DSEFSX05BTUUpOworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGdldEdyb3VwQ2hhcih1cHBlckNhc2VOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVOSUNPREVfMTBfQ0hBUl9OQU1FKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGdldEdyb3VwQ2hhcih1cHBlckNhc2VOYW1lLCBjaG9pY2UpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLy8gdGhlc2UgYXJlIGFsbCBVQ2hhcmFjdGVyTmFtZUl0ZXJhdG9yIHVzZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogUmVhZHMgYSBibG9jayBvZiBjb21wcmVzc2VkIGxlbmd0aHMgb2YgMzIgc3RyaW5ncyBhbmQgZXhwYW5kcyB0aGVtIGludG8KKyAgICAqIG9mZnNldHMgYW5kIGxlbmd0aHMgZm9yIGVhY2ggc3RyaW5nLiBMZW5ndGhzIGFyZSBzdG9yZWQgd2l0aCBhCisgICAgKiB2YXJpYWJsZS13aWR0aCBlbmNvZGluZyBpbiBjb25zZWN1dGl2ZSBuaWJibGVzOgorICAgICogSWYgYSBuaWJibGU8MHhjLCB0aGVuIGl0IGlzIHRoZSBsZW5ndGggaXRzZWxmICgwID0gZW1wdHkgc3RyaW5nKS4KKyAgICAqIElmIGEgbmliYmxlPj0weGMsIHRoZW4gaXQgZm9ybXMgYSBsZW5ndGggdmFsdWUgd2l0aCB0aGUgZm9sbG93aW5nCisgICAgKiBuaWJibGUuCisgICAgKiBUaGUgb2Zmc2V0cyBhbmQgbGVuZ3RocyBhcnJheXMgbXVzdCBiZSBhdCBsZWFzdCAzMyAob25lIG1vcmUpIGxvbmcKKyAgICAqIGJlY2F1c2UgdGhlcmUgaXMgbm8gY2hlY2sgaGVyZSBhdCB0aGUgZW5kIGlmIHRoZSBsYXN0IG5pYmJsZSBpcyBzdGlsbAorICAgICogdXNlZC4KKyAgICAqIEBwYXJhbSBpbmRleCBvZiBncm91cCBzdHJpbmcgb2JqZWN0IGluIGFycmF5CisgICAgKiBAcGFyYW0gb2Zmc2V0cyBhcnJheSB0byBzdG9yZSB0aGUgdmFsdWUgb2YgdGhlIHN0cmluZyBvZmZzZXRzCisgICAgKiBAcGFyYW0gbGVuZ3RocyBhcnJheSB0byBzdG9yZSB0aGUgdmFsdWUgb2YgdGhlIHN0cmluZyBsZW5ndGgKKyAgICAqIEByZXR1cm4gbmV4dCBpbmRleCBvZiB0aGUgZGF0YSBzdHJpbmcgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxlbmd0aHMKKyAgICAqICAgICAgICAgaW4gdGVybXMgb2YgYnl0ZSBhZGRyZXNzCisgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEdyb3VwTGVuZ3RocyhpbnQgaW5kZXgsIGNoYXIgb2Zmc2V0c1tdLCBjaGFyIGxlbmd0aHNbXSkKKyAgICB7CisgICAgICAgIGNoYXIgbGVuZ3RoID0gMHhmZmZmOworICAgICAgICBieXRlIGIgPSAwLAorICAgICAgICAgICAgbiA9IDA7CisgICAgICAgIGludCBzaGlmdDsKKyAgICAgICAgaW5kZXggPSBpbmRleCAqIG1fZ3JvdXBzaXplXzsgLy8gYnl0ZSBjb3VudCBvZmZzZXRzIG9mIGdyb3VwIHN0cmluZ3MKKyAgICAgICAgaW50IHN0cmluZ29mZnNldCA9IFVDaGFyYWN0ZXJVdGlsaXR5LnRvSW50KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9ncm91cGluZm9fW2luZGV4ICsgT0ZGU0VUX0hJR0hfT0ZGU0VUX10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyb3VwaW5mb19baW5kZXggKyBPRkZTRVRfTE9XX09GRlNFVF9dKTsKKworICAgICAgICBvZmZzZXRzWzBdID0gMDsKKworICAgICAgICAvLyBhbGwgMzIgbGVuZ3RocyBtdXN0IGJlIHJlYWQgdG8gZ2V0IHRoZSBvZmZzZXQgb2YgdGhlIGZpcnN0IGdyb3VwCisgICAgICAgIC8vIHN0cmluZworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IExJTkVTX1BFUl9HUk9VUF87IHN0cmluZ29mZnNldCArKykgeworICAgICAgICAgICAgYiA9IG1fZ3JvdXBzdHJpbmdfW3N0cmluZ29mZnNldF07CisgICAgICAgICAgICBzaGlmdCA9IDQ7CisKKyAgICAgICAgICAgIHdoaWxlIChzaGlmdCA+PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gZ2V0dGluZyBuaWJibGUKKyAgICAgICAgICAgICAgICBuID0gKGJ5dGUpKChiID4+IHNoaWZ0KSAmIDB4MEYpOworICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMHhmZmZmICYmIG4gPiBTSU5HTEVfTklCQkxFX01BWF8pIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gKGNoYXIpKChuIC0gMTIpIDw8IDQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCAhPSAweGZmZmYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3Roc1tpXSA9IChjaGFyKSgobGVuZ3RoIHwgbikgKyAxMik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aHNbaV0gPSAoY2hhciluOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPCBMSU5FU19QRVJfR1JPVVBfKSB7CisgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHNbaSArIDFdID0gKGNoYXIpKG9mZnNldHNbaV0gKyBsZW5ndGhzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDB4ZmZmZjsKKyAgICAgICAgICAgICAgICAgICAgaSArKzsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBzaGlmdCAtPSA0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdHJpbmdvZmZzZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBuYW1lIG9mIHRoZSBhcmd1bWVudCBncm91cCBpbmRleC4KKyAgICAqIFVuaWNvZGVEYXRhLnR4dCB1c2VzICc7JyBhcyBhIGZpZWxkIHNlcGFyYXRvciwgc28gbm8gZmllbGQgY2FuIGNvbnRhaW4KKyAgICAqICc7JyBhcyBwYXJ0IG9mIGl0cyBjb250ZW50cy4gSW4gdW5hbWVzLmljdSwgaXQgaXMgbWFya2VkIGFzCisgICAgKiB0b2tlblsnOyddID09IC0xIG9ubHkgaWYgdGhlIHNlbWljb2xvbiBpcyB1c2VkIGluIHRoZSBkYXRhIGZpbGUgLSB3aGljaAorICAgICogaXMgaWZmIHdlIGhhdmUgVW5pY29kZSAxLjAgbmFtZXMgb3IgSVNPIGNvbW1lbnRzLgorICAgICogU28sIGl0IHdpbGwgYmUgdG9rZW5bJzsnXSA9PSAtMSBpZiB3ZSBzdG9yZSBVMS4wIG5hbWVzL0lTTyBjb21tZW50cworICAgICogYWx0aG91Z2ggd2Uga25vdyB0aGF0IGl0IHdpbGwgbmV2ZXIgYmUgcGFydCBvZiBhIG5hbWUuCisgICAgKiBFcXVpdmFsZW50IHRvIElDVTRDJ3MgZXhwYW5kTmFtZS4KKyAgICAqIEBwYXJhbSBpbmRleCBvZiB0aGUgZ3JvdXAgbmFtZSBzdHJpbmcgaW4gYnl0ZSBjb3VudAorICAgICogQHBhcmFtIGxlbmd0aCBvZiB0aGUgZ3JvdXAgbmFtZSBzdHJpbmcKKyAgICAqIEBwYXJhbSBjaG9pY2Ugb2YgVW5pY29kZSAxLjAgbmFtZSBvciB0aGUgbW9zdCBjdXJyZW50IG5hbWUKKyAgICAqIEByZXR1cm4gbmFtZSBvZiB0aGUgZ3JvdXAKKyAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0R3JvdXBOYW1lKGludCBpbmRleCwgaW50IGxlbmd0aCwgaW50IGNob2ljZSkKKyAgICB7CisgICAgICAgIGlmIChjaG9pY2UgPT0gVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV8xMF9DSEFSX05BTUUKKyAgICAgICAgICAgIHx8IGNob2ljZSA9PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5JU09fQ09NTUVOVF8pIHsKKyAgICAgICAgICAgIGlmICgnOycgPj0gbV90b2tlbnRhYmxlXy5sZW5ndGggfHwgbV90b2tlbnRhYmxlX1snOyddID09IDB4RkZGRikgeworICAgICAgICAgICAgICAgIC8vIHNraXAgdGhlIG1vZGVybiBuYW1lCisgICAgICAgICAgICAgICAgaW50IG9sZGluZGV4ID0gaW5kZXg7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gVUNoYXJhY3RlclV0aWxpdHkuc2tpcEJ5dGVTdWJTdHJpbmcobV9ncm91cHN0cmluZ18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCwgbGVuZ3RoLCAoYnl0ZSknOycpOworICAgICAgICAgICAgICAgIGxlbmd0aCAtPSAoaW5kZXggLSBvbGRpbmRleCk7CisgICAgICAgICAgICAgICAgaWYgKGNob2ljZSA9PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5JU09fQ09NTUVOVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2tpcHMgdGhlIDEuMCBOYW1lIHRvIHRoZSBpc28gY29tbWVudCBwYXJ0CisgICAgICAgICAgICAgICAgICAgIG9sZGluZGV4ID0gaW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGluZGV4ICs9IFVDaGFyYWN0ZXJVdGlsaXR5LnNraXBCeXRlU3ViU3RyaW5nKG1fZ3JvdXBzdHJpbmdfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LCBsZW5ndGgsIChieXRlKSc7Jyk7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCAtPSAoaW5kZXggLSBvbGRpbmRleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gdGhlIHNlbWljb2xvbiBieXRlIGlzIGEgdG9rZW4gbnVtYmVyLCB0aGVyZWZvcmUgb25seSBtb2Rlcm4KKyAgICAgICAgICAgICAgICAvLyBuYW1lcyBhcmUgc3RvcmVkIGluIHVuYW1lcy5kYXQgYW5kIHRoZXJlIGlzIG5vIHN1Y2gKKyAgICAgICAgICAgICAgICAvLyByZXF1ZXN0ZWQgVW5pY29kZSAxLjAgbmFtZSBoZXJlCisgICAgICAgICAgICAgICAgbGVuZ3RoID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHN5bmNocm9uaXplZCAobV91dGlsU3RyaW5nQnVmZmVyXykgeworICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5kZWxldGUoMCwgbV91dGlsU3RyaW5nQnVmZmVyXy5sZW5ndGgoKSk7CisgICAgICAgICAgICBieXRlIGI7CisgICAgICAgICAgICBjaGFyIHRva2VuOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7KSB7CisgICAgICAgICAgICAgICAgYiA9IG1fZ3JvdXBzdHJpbmdfW2luZGV4ICsgaV07CisgICAgICAgICAgICAgICAgaSArKzsKKworICAgICAgICAgICAgICAgIGlmIChiID49IG1fdG9rZW50YWJsZV8ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChiID09ICc7JykgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5hcHBlbmQoYik7IC8vIGltcGxpY2l0IGxldHRlcgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSBtX3Rva2VudGFibGVfW2IgJiAweDAwZmZdOworICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW4gPT0gMHhGRkZFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgbGVhZCBieXRlIGZvciBhIGRvdWJsZS1ieXRlIHRva2VuCisgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IG1fdG9rZW50YWJsZV9bYiA8PCA4IHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtX2dyb3Vwc3RyaW5nX1tpbmRleCArIGldICYgMHgwMGZmKV07CisgICAgICAgICAgICAgICAgICAgICAgICBpICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICh0b2tlbiA9PSAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiID09ICc7JykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNraXAgdGhlIHNlbWljb2xvbiBpZiB3ZSBhcmUgc2Vla2luZyBleHRlbmRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5hbWVzIGFuZCB0aGVyZSB3YXMgbm8gMi4wIG5hbWUgYnV0IHRoZXJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgYSAxLjAgbmFtZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV91dGlsU3RyaW5nQnVmZmVyXy5sZW5ndGgoKSA9PSAwICYmIGNob2ljZSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5FWFRFTkRFRF9DSEFSX05BTUUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXhwbGljaXQgbGV0dGVyCisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmFwcGVuZCgoY2hhcikoYiAmIDB4MDBmZikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAvLyB3cml0ZSB0b2tlbiB3b3JkCisgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyVXRpbGl0eS5nZXROdWxsVGVybUJ5dGVTdWJTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8sIG1fdG9rZW5zdHJpbmdfLCB0b2tlbik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBtX3V0aWxTdHJpbmdCdWZmZXJfLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXRyaWV2ZXMgdGhlIGV4dGVuZGVkIG5hbWUKKyAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RXh0ZW5kZWROYW1lKGludCBjaCkKKyAgICB7CisgICAgICAgIFN0cmluZyByZXN1bHQgPSBnZXROYW1lKGNoLCBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFX0NIQVJfTkFNRSk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKGdldFR5cGUoY2gpID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT05UUk9MKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZ2V0TmFtZShjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVOSUNPREVfMTBfQ0hBUl9OQU1FKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGdldEV4dGVuZGVkT3IxME5hbWUoY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZ3JvdXAgaW5kZXggZm9yIHRoZSBjb2RlcG9pbnQsIG9yIHRoZSBncm91cCBiZWZvcmUgaXQuCisgICAgICogQHBhcmFtIGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gZ3JvdXAgaW5kZXggY29udGFpbmluZyBjb2RlcG9pbnQgb3IgdGhlIGdyb3VwIGJlZm9yZSBpdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEdyb3VwKGludCBjb2RlcG9pbnQpCisgICAgeworICAgICAgICBpbnQgZW5kR3JvdXAgPSBtX2dyb3VwY291bnRfOworICAgICAgICBpbnQgbXNiICAgICAgPSBnZXRDb2RlcG9pbnRNU0IoY29kZXBvaW50KTsKKyAgICAgICAgaW50IHJlc3VsdCAgID0gMDsKKyAgICAgICAgLy8gYmluYXJ5IHNlYXJjaCBmb3IgdGhlIGdyb3VwIG9mIG5hbWVzIHRoYXQgY29udGFpbnMgdGhlIG9uZSBmb3IKKyAgICAgICAgLy8gY29kZQorICAgICAgICAvLyBmaW5kIHRoZSBncm91cCB0aGF0IGNvbnRhaW5zIGNvZGVwb2ludCwgb3IgdGhlIGhpZ2hlc3QgYmVmb3JlIGl0CisgICAgICAgIHdoaWxlIChyZXN1bHQgPCBlbmRHcm91cCAtIDEpIHsKKyAgICAgICAgICAgIGludCBnaW5kZXggPSAocmVzdWx0ICsgZW5kR3JvdXApID4+IDE7CisgICAgICAgICAgICBpZiAobXNiIDwgZ2V0R3JvdXBNU0IoZ2luZGV4KSkgeworICAgICAgICAgICAgICAgIGVuZEdyb3VwID0gZ2luZGV4OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZ2luZGV4OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZXh0ZW5kZWQgYW5kIDEuMCBuYW1lIHdoZW4gdGhlIG1vc3QgY3VycmVudCB1bmljb2RlIG5hbWVzCisgICAgICogZmFpbAorICAgICAqIEBwYXJhbSBjaCBjb2RlcG9pbnQKKyAgICAgKiBAcmV0dXJuIG5hbWUgb2YgY29kZXBvaW50IGV4dGVuZGVkIG9yIDEuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RXh0ZW5kZWRPcjEwTmFtZShpbnQgY2gpCisgICAgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgaWYgKGdldFR5cGUoY2gpID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT05UUk9MKSB7CisgICAgICAgICAgICByZXN1bHQgPSBnZXROYW1lKGNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICBpbnQgdHlwZSA9IGdldFR5cGUoY2gpOworICAgICAgICAgICAgLy8gUmV0dXJuIHVua25vd24gaWYgdGhlIHRhYmxlIG9mIG5hbWVzIGFib3ZlIGlzIG5vdCB1cCB0bworICAgICAgICAgICAgLy8gZGF0ZS4KKyAgICAgICAgICAgIGlmICh0eXBlID49IFRZUEVfTkFNRVNfLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVOS05PV05fVFlQRV9OQU1FXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRZUEVfTkFNRVNfW3R5cGVdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3luY2hyb25pemVkIChtX3V0aWxTdHJpbmdCdWZmZXJfKSB7CisgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5kZWxldGUoMCwgbV91dGlsU3RyaW5nQnVmZmVyXy5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5hcHBlbmQoJzwnKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmFwcGVuZChyZXN1bHQpOworICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uYXBwZW5kKCctJyk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGNoU3RyID0gSW50ZWdlci50b0hleFN0cmluZyhjaCkudG9VcHBlckNhc2UoKTsKKyAgICAgICAgICAgICAgICBpbnQgemVyb3MgPSA0IC0gY2hTdHIubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHplcm9zID4gMCkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgICAgICAgICB6ZXJvcyAtLTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5hcHBlbmQoY2hTdHIpOworICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uYXBwZW5kKCc+Jyk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV91dGlsU3RyaW5nQnVmZmVyXy50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgTVNCIGZyb20gdGhlIGdyb3VwIGluZGV4CisgICAgICogQHBhcmFtIGdpbmRleCBncm91cCBpbmRleAorICAgICAqIEByZXR1cm4gdGhlIE1TQiBvZiB0aGUgZ3JvdXAgaWYgZ2luZGV4IGlzIHZhbGlkLCAtMSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEdyb3VwTVNCKGludCBnaW5kZXgpCisgICAgeworICAgICAgICBpZiAoZ2luZGV4ID49IG1fZ3JvdXBjb3VudF8pIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9ncm91cGluZm9fW2dpbmRleCAqIG1fZ3JvdXBzaXplX107CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgTVNCIG9mIHRoZSBjb2RlcG9pbnQKKyAgICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAgICogQHJldHVybiB0aGUgTVNCIG9mIHRoZSBjb2RlcG9pbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDb2RlcG9pbnRNU0IoaW50IGNvZGVwb2ludCkKKyAgICB7CisgICAgICAgIHJldHVybiBjb2RlcG9pbnQgPj4gR1JPVVBfU0hJRlRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG1heGltdW0gY29kZXBvaW50ICsgMSBvZiB0aGUgZ3JvdXAKKyAgICAgKiBAcGFyYW0gbXNiIG1vc3Qgc2lnbmlmaWNhbnQgYnl0ZSBvZiB0aGUgZ3JvdXAKKyAgICAgKiBAcmV0dXJuIGxpbWl0IGNvZGVwb2ludCBvZiB0aGUgZ3JvdXAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRHcm91cExpbWl0KGludCBtc2IpCisgICAgeworICAgICAgICByZXR1cm4gKG1zYiA8PCBHUk9VUF9TSElGVF8pICsgTElORVNfUEVSX0dST1VQXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBtaW5pbXVtIGNvZGVwb2ludCBvZiB0aGUgZ3JvdXAKKyAgICAgKiBAcGFyYW0gbXNiIG1vc3Qgc2lnbmlmaWNhbnQgYnl0ZSBvZiB0aGUgZ3JvdXAKKyAgICAgKiBAcmV0dXJuIG1pbmltdW0gY29kZXBvaW50IG9mIHRoZSBncm91cAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldEdyb3VwTWluKGludCBtc2IpCisgICAgeworICAgICAgICByZXR1cm4gbXNiIDw8IEdST1VQX1NISUZUXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBvZmZzZXQgdG8gYSBncm91cAorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQKKyAgICAgKiBAcmV0dXJuIG9mZnNldCB0byBhIGdyb3VwCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0R3JvdXBPZmZzZXQoaW50IGNvZGVwb2ludCkKKyAgICB7CisgICAgICAgIHJldHVybiBjb2RlcG9pbnQgJiBHUk9VUF9NQVNLXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBtaW5pbXVtIGNvZGVwb2ludCBvZiBhIGdyb3VwCisgICAgICogQHBhcmFtIGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gbWluaW11bSBjb2RlcG9pbnQgaW4gdGhlIGdyb3VwIHdoaWNoIGNvZGVwb2ludCBiZWxvbmdzIHRvCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldEdyb3VwTWluRnJvbUNvZGVwb2ludChpbnQgY29kZXBvaW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNvZGVwb2ludCAmIH5HUk9VUF9NQVNLXzsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIEFsZ29yaXRobSByYW5nZSBsZW5ndGgKKyAgICAgKiBAcmV0dXJuIEFsZ29yaXRobSByYW5nZSBsZW5ndGgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEFsZ29yaXRobUxlbmd0aCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9hbGdvcml0aG1fLmxlbmd0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBzdGFydCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gaW5kZXggYWxnb3JpdGhtIGluZGV4CisgICAgICogQHJldHVybiBhbGdvcml0aG0gcmFuZ2Ugc3RhcnQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEFsZ29yaXRobVN0YXJ0KGludCBpbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2FsZ29yaXRobV9baW5kZXhdLm1fcmFuZ2VzdGFydF87CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZW5kIG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBpbmRleCBhbGdvcml0aG0gaW5kZXgKKyAgICAgKiBAcmV0dXJuIGFsZ29yaXRobSByYW5nZSBlbmQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEFsZ29yaXRobUVuZChpbnQgaW5kZXgpCisgICAgeworICAgICAgICByZXR1cm4gbV9hbGdvcml0aG1fW2luZGV4XS5tX3JhbmdlZW5kXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBBbGdvcml0aG1pYyBuYW1lIG9mIHRoZSBjb2RlcG9pbnQKKyAgICAgKiBAcGFyYW0gaW5kZXggYWxnb3JpdGhtaWMgcmFuZ2UgaW5kZXgKKyAgICAgKiBAcGFyYW0gY29kZXBvaW50CisgICAgICogQHJldHVybiBhbGdvcml0aG1pYyBuYW1lIG9mIGNvZGVwb2ludAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0QWxnb3JpdGhtTmFtZShpbnQgaW5kZXgsIGludCBjb2RlcG9pbnQpCisgICAgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgc3luY2hyb25pemVkIChtX3V0aWxTdHJpbmdCdWZmZXJfKSB7CisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmRlbGV0ZSgwLCBtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIG1fYWxnb3JpdGhtX1tpbmRleF0uYXBwZW5kTmFtZShjb2RlcG9pbnQsIG1fdXRpbFN0cmluZ0J1ZmZlcl8pOworICAgICAgICAgICAgcmVzdWx0ID0gbV91dGlsU3RyaW5nQnVmZmVyXy50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXRzIHRoZSBncm91cCBuYW1lIG9mIHRoZSBjaGFyYWN0ZXIKKyAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gZ2V0IHRoZSBncm91cCBuYW1lCisgICAgKiBAcGFyYW0gY2hvaWNlIG5hbWUgY2hvaWNlIHNlbGVjdG9yIHRvIGNob29zZSBhIHVuaWNvZGUgMS4wIG9yIG5ld2VyIG5hbWUKKyAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0R3JvdXBOYW1lKGludCBjaCwgaW50IGNob2ljZSkKKyAgICB7CisgICAgICAgIC8vIGdldHMgdGhlIG1zYgorICAgICAgICBpbnQgbXNiICAgPSBnZXRDb2RlcG9pbnRNU0IoY2gpOworICAgICAgICBpbnQgZ3JvdXAgPSBnZXRHcm91cChjaCk7CisKKyAgICAgICAgLy8gcmV0dXJuIHRoaXMgaWYgaXQgaXMgYW4gZXhhY3QgbWF0Y2gKKyAgICAgICAgaWYgKG1zYiA9PSBtX2dyb3VwaW5mb19bZ3JvdXAgKiBtX2dyb3Vwc2l6ZV9dKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSBnZXRHcm91cExlbmd0aHMoZ3JvdXAsIG1fZ3JvdXBvZmZzZXRzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyb3VwbGVuZ3Roc18pOworICAgICAgICAgICAgaW50IG9mZnNldCA9IGNoICYgR1JPVVBfTUFTS187CisgICAgICAgICAgICByZXR1cm4gZ2V0R3JvdXBOYW1lKGluZGV4ICsgbV9ncm91cG9mZnNldHNfW29mZnNldF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBsZW5ndGhzX1tvZmZzZXRdLCBjaG9pY2UpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLy8gdGhlc2UgYXJlIHRyYW5zbGl0ZXJhdG9yIHVzZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbWF4aW11bSBsZW5ndGggb2YgYW55IGNvZGVwb2ludCBuYW1lLgorICAgICAqIEVxdWl2YWxlbnQgdG8gdXBydl9nZXRNYXhDaGFyTmFtZUxlbmd0aC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbnkgY29kZXBvaW50IG5hbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1heENoYXJOYW1lTGVuZ3RoKCkKKyAgICB7CisgICAgICAgIGlmIChpbml0TmFtZVNldHNMZW5ndGhzKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBtX21heE5hbWVMZW5ndGhfOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbnkgaXNvIGNvbW1lbnRzLgorICAgICAqIEVxdWl2YWxlbnQgdG8gdXBydl9nZXRNYXhJU09Db21tZW50TGVuZ3RoLgorICAgICAqIEByZXR1cm4gdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFueSBjb2RlcG9pbnQgbmFtZQorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgaW50IGdldE1heElTT0NvbW1lbnRMZW5ndGgoKQorICAgIHsKKyAgICAgICAgaWYgKGluaXROYW1lU2V0c0xlbmd0aHMoKSkgeworICAgICAgICAgICAgcmV0dXJuIG1fbWF4SVNPQ29tbWVudExlbmd0aF87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIEZpbGxzIHNldCB3aXRoIGNoYXJhY3RlcnMgdGhhdCBhcmUgdXNlZCBpbiBVbmljb2RlIGNoYXJhY3RlciBuYW1lcy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIHVwcnZfZ2V0Q2hhck5hbWVDaGFyYWN0ZXJzLgorICAgICAqIEBwYXJhbSBzZXQgVVNldCB0byByZWNlaXZlIGNoYXJhY3RlcnMuIEV4aXN0aW5nIGNvbnRlbnRzIGFyZSBkZWxldGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGdldENoYXJOYW1lQ2hhcmFjdGVycyhVbmljb2RlU2V0IHNldCkKKyAgICB7CisgICAgICAgIGNvbnZlcnQobV9uYW1lU2V0Xywgc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBzZXQgd2l0aCBjaGFyYWN0ZXJzIHRoYXQgYXJlIHVzZWQgaW4gVW5pY29kZSBjaGFyYWN0ZXIgbmFtZXMuCisgICAgICogRXF1aXZhbGVudCB0byB1cHJ2X2dldElTT0NvbW1lbnRDaGFyYWN0ZXJzLgorICAgICAqIEBwYXJhbSBzZXQgVVNldCB0byByZWNlaXZlIGNoYXJhY3RlcnMuIEV4aXN0aW5nIGNvbnRlbnRzIGFyZSBkZWxldGVkLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgdm9pZCBnZXRJU09Db21tZW50Q2hhcmFjdGVycyhVbmljb2RlU2V0IHNldCkKKyAgICB7CisgICAgICAgIGNvbnZlcnQobV9JU09Db21tZW50U2V0Xywgc2V0KTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgaW5uZXIgY2xhc3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogQWxnb3JpdGhtaWMgbmFtZSBjbGFzcworICAgICovCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIEFsZ29yaXRobU5hbWUKKyAgICB7CisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAqIENvbnN0YW50IHR5cGUgdmFsdWUgb2YgdGhlIGRpZmZlcmVudCBBbGdvcml0aG1OYW1lCisgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgVFlQRV8wXyA9IDA7CisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgVFlQRV8xXyA9IDE7CisKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICogQ29uc3RydWN0b3IKKyAgICAgICAgKi8KKyAgICAgICAgQWxnb3JpdGhtTmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAqIFNldHMgdGhlIGluZm9ybWF0aW9uIGZvciBhY2Nlc3NpbmcgdGhlIGFsZ29yaXRobWljIG5hbWVzCisgICAgICAgICogQHBhcmFtIHJhbmdlc3RhcnQgc3RhcnRpbmcgY29kZSBwb2ludCB0aGF0IGxpZXMgd2l0aGluIHRoaXMgbmFtZSBncm91cAorICAgICAgICAqIEBwYXJhbSByYW5nZWVuZCBlbmQgY29kZSBwb2ludCB0aGF0IGxpZXMgd2l0aGluIHRoaXMgbmFtZSBncm91cAorICAgICAgICAqIEBwYXJhbSB0eXBlIGFsZ29yaXRobSB0eXBlLiBUaGVyZSdzIDIga2luZHMgb2YgYWxnb3JpdGhtaWMgdHlwZS4gRmlyc3QKKyAgICAgICAgKiAgICAgICAgd2hpY2ggdXNlcyBjb2RlIHBvaW50IGFzIHBhcnQgb2YgaXRzIG5hbWUgYW5kIHRoZSBvdGhlciB1c2VzCisgICAgICAgICogICAgICAgIHZhcmlhbnQgcG9zdGZpeCBzdHJpbmdzCisgICAgICAgICogQHBhcmFtIHZhcmlhbnQgYWxnb3JpdGhtaWMgdmFyaWFudAorICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB2YWx1ZXMgYXJlIHZhbGlkCisgICAgICAgICovCisgICAgICAgIGJvb2xlYW4gc2V0SW5mbyhpbnQgcmFuZ2VzdGFydCwgaW50IHJhbmdlZW5kLCBieXRlIHR5cGUsIGJ5dGUgdmFyaWFudCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHJhbmdlc3RhcnQgPj0gVUNoYXJhY3Rlci5NSU5fVkFMVUUgJiYgcmFuZ2VzdGFydCA8PSByYW5nZWVuZAorICAgICAgICAgICAgICAgICYmIHJhbmdlZW5kIDw9IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFICYmCisgICAgICAgICAgICAgICAgKHR5cGUgPT0gVFlQRV8wXyB8fCB0eXBlID09IFRZUEVfMV8pKSB7CisgICAgICAgICAgICAgICAgbV9yYW5nZXN0YXJ0XyA9IHJhbmdlc3RhcnQ7CisgICAgICAgICAgICAgICAgbV9yYW5nZWVuZF8gPSByYW5nZWVuZDsKKyAgICAgICAgICAgICAgICBtX3R5cGVfID0gdHlwZTsKKyAgICAgICAgICAgICAgICBtX3ZhcmlhbnRfID0gdmFyaWFudDsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIFNldHMgdGhlIGZhY3RvciBkYXRhCisgICAgICAgICogQHBhcmFtIGFycmF5IG9mIGZhY3RvcgorICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBmYWN0b3JzIGFyZSB2YWxpZAorICAgICAgICAqLworICAgICAgICBib29sZWFuIHNldEZhY3RvcihjaGFyIGZhY3RvcltdKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZmFjdG9yLmxlbmd0aCA9PSBtX3ZhcmlhbnRfKSB7CisgICAgICAgICAgICAgICAgbV9mYWN0b3JfID0gZmFjdG9yOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogU2V0cyB0aGUgbmFtZSBwcmVmaXgKKyAgICAgICAgKiBAcGFyYW0gcHJlZml4CisgICAgICAgICogQHJldHVybiB0cnVlIGlmIHByZWZpeCBpcyBzZXQKKyAgICAgICAgKi8KKyAgICAgICAgYm9vbGVhbiBzZXRQcmVmaXgoU3RyaW5nIHByZWZpeCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHByZWZpeCAhPSBudWxsICYmIHByZWZpeC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBtX3ByZWZpeF8gPSBwcmVmaXg7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBTZXRzIHRoZSB2YXJpYW50IGZhY3Rvcml6ZWQgbmFtZSBkYXRhCisgICAgICAgICogQHBhcmFtIHN0cmluZyB2YXJpYW50IGZhY3Rvcml6ZWQgbmFtZSBkYXRhCisgICAgICAgICogQHJldHVybiB0cnVlIGlmIHZhbHVlcyBhcmUgc2V0CisgICAgICAgICovCisgICAgICAgIGJvb2xlYW4gc2V0RmFjdG9yU3RyaW5nKGJ5dGUgc3RyaW5nW10pCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGZhY3RvciBhbmQgdmFyaWFudCBzdHJpbmcgY2FuIGJlIGVtcHR5IGZvciB0aGluZ3MgbGlrZQorICAgICAgICAgICAgLy8gaGFuZ2d1bCBjb2RlIHBvaW50cworICAgICAgICAgICAgbV9mYWN0b3JzdHJpbmdfID0gc3RyaW5nOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBDaGVja3MgaWYgY29kZSBwb2ludCBsaWVzIGluIEFsZ29yaXRobSBvYmplY3QgYXQgaW5kZXgKKyAgICAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludAorICAgICAgICAqLworICAgICAgICBib29sZWFuIGNvbnRhaW5zKGludCBjaCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fcmFuZ2VzdGFydF8gPD0gY2ggJiYgY2ggPD0gbV9yYW5nZWVuZF87CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBBcHBlbmRzIGFsZ29yaXRobSBuYW1lIG9mIGNvZGUgcG9pbnQgaW50byBTdHJpbmdCdWZmZXIuCisgICAgICAgICogTm90ZSB0aGlzIG1ldGhvZCBkb2VzIG5vdCBjaGVjayBmb3IgdmFsaWRpdHkgb2YgY29kZSBwb2ludCBpbiBBbGdvcml0aG0sCisgICAgICAgICogcmVzdWx0IGlzIHVuZGVmaW5lZCBpZiBjb2RlIHBvaW50IGRvZXMgbm90IGJlbG9uZyBpbiBBbGdvcml0aG0uCisgICAgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQKKyAgICAgICAgKiBAcGFyYW0gc3RyIFN0cmluZ0J1ZmZlciB0byBhcHBlbmQgdG8KKyAgICAgICAgKi8KKyAgICAgICAgdm9pZCBhcHBlbmROYW1lKGludCBjaCwgU3RyaW5nQnVmZmVyIHN0cikKKyAgICAgICAgeworICAgICAgICAgICAgc3RyLmFwcGVuZChtX3ByZWZpeF8pOworICAgICAgICAgICAgc3dpdGNoIChtX3R5cGVfKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhc2UgVFlQRV8wXzoKKyAgICAgICAgICAgICAgICAgICAgLy8gcHJlZml4IGZvbGxvd2VkIGJ5IGhleCBkaWdpdHMgaW5kaWNhdGluZyB2YXJpYW50cworICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmhleChjaCwgbV92YXJpYW50Xywgc3RyKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBUWVBFXzFfOgorICAgICAgICAgICAgICAgICAgICAvLyBwcmVmaXggZm9sbG93ZWQgYnkgZmFjdG9yaXplZC1lbGVtZW50cworICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gY2ggLSBtX3Jhbmdlc3RhcnRfOworICAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXhlc1tdID0gbV91dGlsSW50QnVmZmVyXzsKKyAgICAgICAgICAgICAgICAgICAgaW50IGZhY3RvcjsKKworICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBlbGVtZW50cyBhY2NvcmRpbmcgdG8gdGhlIGZhY3RvcnMKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZhY3Rvcml6ZWQgZWxlbWVudHMgYXJlIGRldGVybWluZWQgYnkgbW9kdWxvCisgICAgICAgICAgICAgICAgICAgIC8vIGFyaXRobWV0aWMKKyAgICAgICAgICAgICAgICAgICAgc3luY2hyb25pemVkIChtX3V0aWxJbnRCdWZmZXJfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gbV92YXJpYW50XyAtIDE7IGkgPiAwOyBpIC0tKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY3RvciA9IG1fZmFjdG9yX1tpXSAmIDB4MDBGRjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleGVzW2ldID0gb2Zmc2V0ICUgZmFjdG9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAvPSBmYWN0b3I7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IG5lZWQgdG8gY2FsY3VsYXRlIHRoZSBsYXN0IG1vZHVsdXMgYmVjYXVzZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RhcnQgPD0gY29kZSA8PSBlbmQgZ3VhcmFudGVlcyBoZXJlIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvZGUgPD0gZmFjdG9yc1swXQorICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhlc1swXSA9IG9mZnNldDsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gam9pbmluZyB1cCB0aGUgZmFjdG9yaXplZCBzdHJpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKGdldEZhY3RvclN0cmluZyhpbmRleGVzLCBtX3ZhcmlhbnRfKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgZm9yIHRoZSBhcmd1bWVudCBhbGdvcml0aG1pYyBuYW1lCisgICAgICAgICogQHJldHVybiB0aGUgYWxnb3JpdGhtaWMgY2hhciBvciAtMSBvdGhlcndpc2UuCisgICAgICAgICovCisgICAgICAgIGludCBnZXRDaGFyKFN0cmluZyBuYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgcHJlZml4bGVuID0gbV9wcmVmaXhfLmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKG5hbWUubGVuZ3RoKCkgPCBwcmVmaXhsZW4gfHwKKyAgICAgICAgICAgICAgICAhbV9wcmVmaXhfLmVxdWFscyhuYW1lLnN1YnN0cmluZygwLCBwcmVmaXhsZW4pKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChtX3R5cGVfKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhc2UgVFlQRV8wXyA6CisgICAgICAgICAgICAgICAgdHJ5CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gSW50ZWdlci5wYXJzZUludChuYW1lLnN1YnN0cmluZyhwcmVmaXhsZW4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNik7CisgICAgICAgICAgICAgICAgICAgIC8vIGRvZXMgaXQgZml0IGludG8gdGhlIHJhbmdlPworICAgICAgICAgICAgICAgICAgICBpZiAobV9yYW5nZXN0YXJ0XyA8PSByZXN1bHQgJiYgcmVzdWx0IDw9IG1fcmFuZ2VlbmRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBUWVBFXzFfIDoKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVwZXRpdGF0aXZlIHN1ZmZpeCBuYW1lIGNvbXBhcmlzb24gZG9uZSBoZXJlCisgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldCBpcyB0aGUgY2hhcmFjdGVyIGNvZGUgLSBzdGFydAorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBjaCA9IG1fcmFuZ2VzdGFydF87IGNoIDw9IG1fcmFuZ2VlbmRfOyBjaCArKykKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IGNoIC0gbV9yYW5nZXN0YXJ0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbmRleGVzW10gPSBtX3V0aWxJbnRCdWZmZXJfOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZhY3RvcjsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgZWxlbWVudHMgYWNjb3JkaW5nIHRvIHRoZSBmYWN0b3JzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZmFjdG9yaXplZCBlbGVtZW50cyBhcmUgZGV0ZXJtaW5lZCBieSBtb2R1bG8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFyaXRobWV0aWMKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNocm9uaXplZCAobV91dGlsSW50QnVmZmVyXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBtX3ZhcmlhbnRfIC0gMTsgaSA+IDA7IGkgLS0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWN0b3IgPSBtX2ZhY3Rvcl9baV0gJiAweDAwRkY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ZXNbaV0gPSBvZmZzZXQgJSBmYWN0b3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAvPSBmYWN0b3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgbmVlZCB0byBjYWxjdWxhdGUgdGhlIGxhc3QgbW9kdWx1cworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlY2F1c2Ugc3RhcnQgPD0gY29kZSA8PSBlbmQgZ3VhcmFudGVlcyBoZXJlIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb2RlIDw9IGZhY3RvcnNbMF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleGVzWzBdID0gb2Zmc2V0OworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gam9pbmluZyB1cCB0aGUgZmFjdG9yaXplZCBzdHJpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVGYWN0b3JTdHJpbmcoaW5kZXhlcywgbV92YXJpYW50XywgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXhsZW4pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkZHMgYWxsIGNoYXJzIGluIHRoZSBzZXQgb2YgYWxnb3JpdGhtaWMgbmFtZXMgaW50byB0aGUgc2V0LgorICAgICAgICAgKiBFcXVpdmFsZW50IHRvIHBhcnQgb2YgY2FsY0FsZ05hbWVTZXRzTGVuZ3Rocy4KKyAgICAgICAgICogQHBhcmFtIHNldCBpbnQgc2V0IHRvIGFkZCB0aGUgY2hhcnMgb2YgdGhlIGFsZ29yaXRobSBuYW1lcyBpbnRvCisgICAgICAgICAqIEBwYXJhbSBtYXhsZW5ndGggbWF4aW11bSBsZW5ndGggdG8gY29tcGFyZSB0bworICAgICAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggdGhhdCBpcyBlaXRoZXIgbWF4bGVuZ3RoIG9mIHRoZSBsZW5ndGggb2YgdGhpcworICAgICAgICAgKiAgICAgICAgIGFsZ29yaXRobSBuYW1lIGlmIGl0IGlzIGxvbmdlciB0aGFuIG1heGxlbmd0aAorICAgICAgICAgKi8KKyAgICAgICAgaW50IGFkZChpbnQgc2V0W10sIGludCBtYXhsZW5ndGgpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIHByZWZpeCBsZW5ndGgKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBVQ2hhcmFjdGVyTmFtZS5hZGQoc2V0LCBtX3ByZWZpeF8pOworICAgICAgICAgICAgc3dpdGNoIChtX3R5cGVfKSB7CisgICAgICAgICAgICAgICAgY2FzZSBUWVBFXzBfIDogeworICAgICAgICAgICAgICAgICAgICAvLyBuYW1lID0gcHJlZml4ICsgKHJhbmdlLT52YXJpYW50IHRpbWVzKSBoZXgtZGlnaXRzCisgICAgICAgICAgICAgICAgICAgIC8vIHByZWZpeAorICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gbV92YXJpYW50XzsKKyAgICAgICAgICAgICAgICAgICAgLyogc3lud2VlIHRvIGNoZWNrCisgICAgICAgICAgICAgICAgICAgICAqIGFkZFN0cmluZyhzZXQsIChjb25zdCBjaGFyICopKHJhbmdlICsgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHJhbmdlLT52YXJpYW50OyovCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIFRZUEVfMV8gOiB7CisgICAgICAgICAgICAgICAgICAgIC8vIG5hbWUgPSBwcmVmaXggZmFjdG9yaXplZC1lbGVtZW50cworICAgICAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIHNldCBhbmQgbWF4aW11bSBmYWN0b3Igc3VmZml4IGxlbmd0aCBmb3IgZWFjaAorICAgICAgICAgICAgICAgICAgICAvLyBmYWN0b3IKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IG1fdmFyaWFudF8gLSAxOyBpID4gMDsgaSAtLSkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heGZhY3Rvcmxlbmd0aCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgZmFjdG9yID0gbV9mYWN0b3JfW2ldOyBmYWN0b3IgPiAwOyAtLSBmYWN0b3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1fdXRpbFN0cmluZ0J1ZmZlcl8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5kZWxldGUoMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gVUNoYXJhY3RlclV0aWxpdHkuZ2V0TnVsbFRlcm1CeXRlU3ViU3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmFjdG9yc3RyaW5nXywgY291bnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZS5hZGQoc2V0LCBtX3V0aWxTdHJpbmdCdWZmZXJfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gbWF4ZmFjdG9ybGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhmYWN0b3JsZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV91dGlsU3RyaW5nQnVmZmVyXy5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCArPSBtYXhmYWN0b3JsZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobGVuZ3RoID4gbWF4bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtYXhsZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgKiBBbGdvcml0aG1pYyBkYXRhIGluZm9ybWF0aW9uCisgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG1fcmFuZ2VzdGFydF87CisgICAgICAgIHByaXZhdGUgaW50IG1fcmFuZ2VlbmRfOworICAgICAgICBwcml2YXRlIGJ5dGUgbV90eXBlXzsKKyAgICAgICAgcHJpdmF0ZSBieXRlIG1fdmFyaWFudF87CisgICAgICAgIHByaXZhdGUgY2hhciBtX2ZhY3Rvcl9bXTsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbV9wcmVmaXhfOworICAgICAgICBwcml2YXRlIGJ5dGUgbV9mYWN0b3JzdHJpbmdfW107CisgICAgICAgIC8qKgorICAgICAgICAgKiBVdGlsaXR5IFN0cmluZ0J1ZmZlcgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbV91dGlsU3RyaW5nQnVmZmVyXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFV0aWxpdHkgaW50IGJ1ZmZlcgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgbV91dGlsSW50QnVmZmVyX1tdID0gbmV3IGludFsyNTZdOworCisgICAgICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAqIEdldHMgdGhlIGluZGV4dGggc3RyaW5nIGluIGVhY2ggb2YgdGhlIGFyZ3VtZW50IGZhY3RvciBibG9jaworICAgICAgICAqIEBwYXJhbSBpbmRleCBhcnJheSB3aXRoIGVhY2ggaW5kZXggY29ycmVzcG9uZGluZyB0byBlYWNoIGZhY3RvciBibG9jaworICAgICAgICAqIEBwYXJhbSBsZW5ndGggbGVuZ3RoIG9mIHRoZSBhcnJheSBpbmRleAorICAgICAgICAqIEByZXR1cm4gdGhlIGNvbWJpbmVkIHN0cmluZyBvZiB0aGUgYXJyYXkgb2YgaW5kZXh0aCBmYWN0b3Igc3RyaW5nIGluCisgICAgICAgICogICAgICAgICBmYWN0b3IgYmxvY2sKKyAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0RmFjdG9yU3RyaW5nKGludCBpbmRleFtdLCBpbnQgbGVuZ3RoKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgc2l6ZSA9IG1fZmFjdG9yXy5sZW5ndGg7CisgICAgICAgICAgICBpZiAoaW5kZXggPT0gbnVsbCB8fCBsZW5ndGggIT0gc2l6ZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1fdXRpbFN0cmluZ0J1ZmZlcl8pIHsKKyAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmRlbGV0ZSgwLCBtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgICAgIGludCBmYWN0b3I7CisgICAgICAgICAgICAgICAgc2l6ZSAtLTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBzaXplOyBpICsrKSB7CisgICAgICAgICAgICAgICAgICAgIGZhY3RvciA9IG1fZmFjdG9yX1tpXTsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgPSBVQ2hhcmFjdGVyVXRpbGl0eS5za2lwTnVsbFRlcm1CeXRlU3ViU3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9mYWN0b3JzdHJpbmdfLCBjb3VudCwgaW5kZXhbaV0pOworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IFVDaGFyYWN0ZXJVdGlsaXR5LmdldE51bGxUZXJtQnl0ZVN1YlN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8sIG1fZmFjdG9yc3RyaW5nXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT0gc2l6ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgPSBVQ2hhcmFjdGVyVXRpbGl0eS5za2lwTnVsbFRlcm1CeXRlU3ViU3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmFjdG9yc3RyaW5nXywgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFjdG9yIC0gaW5kZXhbaV0gLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbV91dGlsU3RyaW5nQnVmZmVyXy50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogQ29tcGFyZXMgdGhlIGluZGV4dGggc3RyaW5nIGluIGVhY2ggb2YgdGhlIGFyZ3VtZW50IGZhY3RvciBibG9jayB3aXRoCisgICAgICAgICogdGhlIGFyZ3VtZW50IHN0cmluZworICAgICAgICAqIEBwYXJhbSBpbmRleCBhcnJheSB3aXRoIGVhY2ggaW5kZXggY29ycmVzcG9uZGluZyB0byBlYWNoIGZhY3RvciBibG9jaworICAgICAgICAqIEBwYXJhbSBsZW5ndGggaW5kZXggYXJyYXkgbGVuZ3RoCisgICAgICAgICogQHBhcmFtIHN0ciBzdHJpbmcgdG8gY29tcGFyZSB3aXRoCisgICAgICAgICogQHBhcmFtIG9mZnNldCBvZiBzdHIgdG8gc3RhcnQgY29tcGFyaXNvbgorICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBzdHJpbmcgbWF0Y2hlcworICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gY29tcGFyZUZhY3RvclN0cmluZyhpbnQgaW5kZXhbXSwgaW50IGxlbmd0aCwgU3RyaW5nIHN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHNpemUgPSBtX2ZhY3Rvcl8ubGVuZ3RoOworICAgICAgICAgICAgaWYgKGluZGV4ID09IG51bGwgfHwgbGVuZ3RoICE9IHNpemUpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgaW50IHN0cmNvdW50ID0gb2Zmc2V0OworICAgICAgICAgICAgaW50IGZhY3RvcjsKKyAgICAgICAgICAgIHNpemUgLS07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBzaXplOyBpICsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZhY3RvciA9IG1fZmFjdG9yX1tpXTsKKyAgICAgICAgICAgICAgICBjb3VudCA9IFVDaGFyYWN0ZXJVdGlsaXR5LnNraXBOdWxsVGVybUJ5dGVTdWJTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ZhY3RvcnN0cmluZ18sIGNvdW50LCBpbmRleFtpXSk7CisgICAgICAgICAgICAgICAgc3RyY291bnQgPSBVQ2hhcmFjdGVyVXRpbGl0eS5jb21wYXJlTnVsbFRlcm1CeXRlU3ViU3RyaW5nKHN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZmFjdG9yc3RyaW5nXywgc3RyY291bnQsIGNvdW50KTsKKyAgICAgICAgICAgICAgICBpZiAoc3RyY291bnQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoaSAhPSBzaXplKSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ID0gVUNoYXJhY3RlclV0aWxpdHkuc2tpcE51bGxUZXJtQnl0ZVN1YlN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2ZhY3RvcnN0cmluZ18sIGNvdW50LCBmYWN0b3IgLSBpbmRleFtpXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0cmNvdW50ICE9IHN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogU2l6ZSBvZiBlYWNoIGdyb3VwcworICAgICAqLworICAgIGludCBtX2dyb3Vwc2l6ZV8gPSAwOworCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogU2V0cyB0aGUgdG9rZW4gZGF0YQorICAgICogQHBhcmFtIHRva2VuIGFycmF5IG9mIHRva2VucworICAgICogQHBhcmFtIHRva2Vuc3RyaW5nIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMgb2YgdGhlIHRva2VucworICAgICogQHJldHVybiBmYWxzZSBpZiB0aGVyZSBpcyBhIGRhdGEgZXJyb3IKKyAgICAqLworICAgIGJvb2xlYW4gc2V0VG9rZW4oY2hhciB0b2tlbltdLCBieXRlIHRva2Vuc3RyaW5nW10pCisgICAgeworICAgICAgICBpZiAodG9rZW4gIT0gbnVsbCAmJiB0b2tlbnN0cmluZyAhPSBudWxsICYmIHRva2VuLmxlbmd0aCA+IDAgJiYKKyAgICAgICAgICAgIHRva2Vuc3RyaW5nLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIG1fdG9rZW50YWJsZV8gPSB0b2tlbjsKKyAgICAgICAgICAgIG1fdG9rZW5zdHJpbmdfID0gdG9rZW5zdHJpbmc7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgKiBTZXQgdGhlIGFsZ29yaXRobSBuYW1lIGluZm9ybWF0aW9uIGFycmF5CisgICAgKiBAcGFyYW0gYWxnb3JpdGhtIGluZm9ybWF0aW9uIGFycmF5CisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdyb3VwIHN0cmluZyBvZmZzZXQgaGFzIGJlZW4gc2V0IGNvcnJlY3RseQorICAgICovCisgICAgYm9vbGVhbiBzZXRBbGdvcml0aG0oQWxnb3JpdGhtTmFtZSBhbGdbXSkKKyAgICB7CisgICAgICAgIGlmIChhbGcgIT0gbnVsbCAmJiBhbGcubGVuZ3RoICE9IDApIHsKKyAgICAgICAgICAgIG1fYWxnb3JpdGhtXyA9IGFsZzsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFNldHMgdGhlIG51bWJlciBvZiBncm91cCBhbmQgc2l6ZSBvZiBlYWNoIGdyb3VwIGluIG51bWJlciBvZiBjaGFyCisgICAgKiBAcGFyYW0gY291bnQgbnVtYmVyIG9mIGdyb3VwcworICAgICogQHBhcmFtIHNpemUgc2l6ZSBvZiBncm91cCBpbiBjaGFyCisgICAgKiBAcmV0dXJuIHRydWUgaWYgZ3JvdXAgc2l6ZSBpcyBzZXQgY29ycmVjdGx5CisgICAgKi8KKyAgICBib29sZWFuIHNldEdyb3VwQ291bnRTaXplKGludCBjb3VudCwgaW50IHNpemUpCisgICAgeworICAgICAgICBpZiAoY291bnQgPD0gMCB8fCBzaXplIDw9IDApIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBtX2dyb3VwY291bnRfID0gY291bnQ7CisgICAgICAgIG1fZ3JvdXBzaXplXyA9IHNpemU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICogU2V0cyB0aGUgZ3JvdXAgbmFtZSBkYXRhCisgICAgKiBAcGFyYW0gZ3JvdXAgaW5kZXggaW5mb3JtYXRpb24gYXJyYXkKKyAgICAqIEBwYXJhbSBncm91cHN0cmluZyBuYW1lIGluZm9ybWF0aW9uIGFycmF5CisgICAgKiBAcmV0dXJuIGZhbHNlIGlmIHRoZXJlIGlzIGEgZGF0YSBlcnJvcgorICAgICovCisgICAgYm9vbGVhbiBzZXRHcm91cChjaGFyIGdyb3VwW10sIGJ5dGUgZ3JvdXBzdHJpbmdbXSkKKyAgICB7CisgICAgICAgIGlmIChncm91cCAhPSBudWxsICYmIGdyb3Vwc3RyaW5nICE9IG51bGwgJiYgZ3JvdXAubGVuZ3RoID4gMCAmJgorICAgICAgICAgICAgZ3JvdXBzdHJpbmcubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgbV9ncm91cGluZm9fID0gZ3JvdXA7CisgICAgICAgICAgICBtX2dyb3Vwc3RyaW5nXyA9IGdyb3Vwc3RyaW5nOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogRGF0YSB1c2VkIGluIHVuYW1lcy5pY3UKKyAgICAqLworICAgIHByaXZhdGUgY2hhciBtX3Rva2VudGFibGVfW107CisgICAgcHJpdmF0ZSBieXRlIG1fdG9rZW5zdHJpbmdfW107CisgICAgcHJpdmF0ZSBjaGFyIG1fZ3JvdXBpbmZvX1tdOworICAgIHByaXZhdGUgYnl0ZSBtX2dyb3Vwc3RyaW5nX1tdOworICAgIHByaXZhdGUgQWxnb3JpdGhtTmFtZSBtX2FsZ29yaXRobV9bXTsKKworICAgIC8qKgorICAgICogR3JvdXAgdXNlCisgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgbV9ncm91cG9mZnNldHNfW10gPSBuZXcgY2hhcltMSU5FU19QRVJfR1JPVVBfICsgMV07CisgICAgcHJpdmF0ZSBjaGFyIG1fZ3JvdXBsZW5ndGhzX1tdID0gbmV3IGNoYXJbTElORVNfUEVSX0dST1VQXyArIDFdOworCisgICAgLyoqCisgICAgKiBEZWZhdWx0IG5hbWUgb2YgdGhlIG5hbWUgZGF0YWZpbGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBOQU1FX0ZJTEVfTkFNRV8gPSBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlVORExFKyIvdW5hbWVzLmljdSI7CisgICAgLyoqCisgICAgKiBTaGlmdCBjb3VudCB0byByZXRyaWV2ZSBncm91cCBpbmZvcm1hdGlvbgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdST1VQX1NISUZUXyA9IDU7CisgICAgLyoqCisgICAgKiBNYXNrIHRvIHJldHJpZXZlIHRoZSBvZmZzZXQgZm9yIGEgcGFydGljdWxhciBjaGFyYWN0ZXIgd2l0aGluIGEgZ3JvdXAKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHUk9VUF9NQVNLXyA9IExJTkVTX1BFUl9HUk9VUF8gLSAxOworICAgIC8qKgorICAgICogRGVmYXVsdCBidWZmZXIgc2l6ZSBvZiBkYXRhZmlsZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5BTUVfQlVGRkVSX1NJWkVfID0gMTAwMDAwOworCisgICAgLyoqCisgICAgKiBQb3NpdGlvbiBvZiBvZmZzZXRoaWdoIGluIGdyb3VwIGluZm9ybWF0aW9uIGFycmF5CisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT0ZGU0VUX0hJR0hfT0ZGU0VUXyA9IDE7CisKKyAgICAvKioKKyAgICAqIFBvc2l0aW9uIG9mIG9mZnNldGxvdyBpbiBncm91cCBpbmZvcm1hdGlvbiBhcnJheQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9GRlNFVF9MT1dfT0ZGU0VUXyA9IDI7CisgICAgLyoqCisgICAgKiBEb3VibGUgbmliYmxlIGluZGljYXRvciwgYW55IG5pYmJsZSA+IHRoaXMgbnVtYmVyIGhhcyB0byBiZSBjb21iaW5lZAorICAgICogd2l0aCBpdHMgZm9sbG93aW5nIG5pYmJsZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNJTkdMRV9OSUJCTEVfTUFYXyA9IDExOworCisgICAgLyoqCisgICAgICogTWF4aW11bSBsZW5ndGggb2YgY2hhcmFjdGVyIG5hbWVzIChyZWd1bGFyICYgMS4wKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgTUFYX05BTUVfTEVOR1RIXyA9IDA7CisgICAgLyoqCisgICAgICogTWF4aW11bSBsZW5ndGggb2YgSVNPIGNvbW1lbnRzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBNQVhfSVNPX0NPTU1FTlRfTEVOR1RIXyA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgb2YgY2hhcnMgdXNlZCBpbiBjaGFyYWN0ZXIgbmFtZXMgKHJlZ3VsYXIgJiAxLjApLgorICAgICAqIENoYXJzIGFyZSBwbGF0Zm9ybS1kZXBlbmRlbnQgKGNhbiBiZSBFQkNESUMpLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbmFtZVNldF9bXSA9IG5ldyBpbnRbOF07CisgICAgLyoqCisgICAgICogU2V0IG9mIGNoYXJzIHVzZWQgaW4gSVNPIGNvbW1lbnRzLiAocmVndWxhciAmIDEuMCkuCisgICAgICogQ2hhcnMgYXJlIHBsYXRmb3JtLWRlcGVuZGVudCAoY2FuIGJlIEVCQ0RJQykuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9JU09Db21tZW50U2V0X1tdID0gbmV3IGludFs4XTsKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IFN0cmluZ0J1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG1fdXRpbFN0cmluZ0J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgLyoqCisgICAgICogVXRpbGl0eSBpbnQgYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV91dGlsSW50QnVmZmVyX1tdID0gbmV3IGludFsyXTsKKyAgICAvKioKKyAgICAgKiBNYXhpbXVtIElTTyBjb21tZW50IGxlbmd0aAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbWF4SVNPQ29tbWVudExlbmd0aF87CisgICAgLyoqCisgICAgICogTWF4aW11bSBuYW1lIGxlbmd0aAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbWF4TmFtZUxlbmd0aF87CisgICAgLyoqCisgICAgICogU2luZ2xldG9uIGluc3RhbmNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVUNoYXJhY3Rlck5hbWUgSU5TVEFOQ0VfID0gbnVsbDsKKyAgICAvKioKKyAgICAgKiBUeXBlIG5hbWVzIHVzZWQgZm9yIGV4dGVuZGVkIG5hbWVzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRZUEVfTkFNRVNfW10gPSB7InVuYXNzaWduZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1cHBlcmNhc2UgbGV0dGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG93ZXJjYXNlIGxldHRlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpdGxlY2FzZSBsZXR0ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2RpZmllciBsZXR0ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdGhlciBsZXR0ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub24gc3BhY2luZyBtYXJrIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW5jbG9zaW5nIG1hcmsiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21iaW5pbmcgc3BhY2luZyBtYXJrIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVjaW1hbCBkaWdpdCBudW1iZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsZXR0ZXIgbnVtYmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3RoZXIgbnVtYmVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BhY2Ugc2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGluZSBzZXBhcmF0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXJhZ3JhcGggc2VwYXJhdG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29udHJvbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvcm1hdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByaXZhdGUgdXNlIGFyZWEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdXJyb2dhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXNoIHB1bmN0dWF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhcnQgcHVuY3R1YXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbmQgcHVuY3R1YXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25uZWN0b3IgcHVuY3R1YXRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdGhlciBwdW5jdHVhdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1hdGggc3ltYm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY3VycmVuY3kgc3ltYm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW9kaWZpZXIgc3ltYm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3RoZXIgc3ltYm9sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5pdGlhbCBwdW5jdHVhdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbmFsIHB1bmN0dWF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm9uY2hhcmFjdGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGVhZCBzdXJyb2dhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFpbCBzdXJyb2dhdGUifTsKKyAgICAvKioKKyAgICAgKiBVbmtub3duIHR5cGUgbmFtZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBVTktOT1dOX1RZUEVfTkFNRV8gPSAidW5rbm93biI7CisgICAgLyoqCisgICAgICogTm90IGEgY2hhcmFjdGVyIHR5cGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9OX0NIQVJBQ1RFUl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gVUNoYXJhY3RlckNhdGVnb3J5LkNIQVJfQ0FURUdPUllfQ09VTlQ7CisgICAgLyoqCisgICAgKiBMZWFkIHN1cnJvZ2F0ZSB0eXBlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEVBRF9TVVJST0dBVEVfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ0hBUl9DQVRFR09SWV9DT1VOVCArIDE7CisgICAgLyoqCisgICAgKiBUcmFpbCBzdXJyb2dhdGUgdHlwZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFVDaGFyYWN0ZXJDYXRlZ29yeS5DSEFSX0NBVEVHT1JZX0NPVU5UICsgMjsKKyAgICAvKioKKyAgICAqIEV4dGVuZGVkIGNhdGVnb3J5IGNvdW50CisgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IEVYVEVOREVEX0NBVEVHT1JZXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gVUNoYXJhY3RlckNhdGVnb3J5LkNIQVJfQ0FURUdPUllfQ09VTlQgKyAzOworCisgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICogPHA+UHJvdGVjdGVkIGNvbnN0cnVjdG9yIGZvciB1c2UgaW4gVUNoYXJhY3Rlci48L3A+CisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscworICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyTmFtZSgpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBJQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKE5BTUVfRklMRV9OQU1FXyk7CisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGlzLCBOQU1FX0JVRkZFUl9TSVpFXyk7CisgICAgICAgIFVDaGFyYWN0ZXJOYW1lUmVhZGVyIHJlYWRlciA9IG5ldyBVQ2hhcmFjdGVyTmFtZVJlYWRlcihiKTsKKyAgICAgICAgcmVhZGVyLnJlYWQodGhpcyk7CisgICAgICAgIGIuY2xvc2UoKTsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIGFsZ29yaXRobWljIG5hbWUgZm9yIHRoZSBhcmd1bWVudCBjaGFyYWN0ZXIKKyAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gZGV0ZXJtaW5lIG5hbWUgZm9yCisgICAgKiBAcGFyYW0gY2hvaWNlIG5hbWUgY2hvaWNlCisgICAgKiBAcmV0dXJuIHRoZSBhbGdvcml0aG1pYyBuYW1lIG9yIG51bGwgaWYgbm90IGZvdW5kCisgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBnZXRBbGdOYW1lKGludCBjaCwgaW50IGNob2ljZSkKKyAgICB7CisgICAgICAgIC8vIERvIG5vdCB3cml0ZSBhbGdvcml0aG1pYyBVbmljb2RlIDEuMCBuYW1lcyBiZWNhdXNlIFVuaWhhbiBuYW1lcyBhcmUKKyAgICAgICAgLy8gdGhlIHNhbWUgYXMgdGhlIG1vZGVybiBvbmVzLCBleHRlbnNpb24gQSB3YXMgb25seSBpbnRyb2R1Y2VkIHdpdGgKKyAgICAgICAgLy8gVW5pY29kZSAzLjAsIGFuZCB0aGUgSGFuZ3VsIHN5bGxhYmxlIGJsb2NrIHdhcyBtb3ZlZCBhbmQgY2hhbmdlZAorICAgICAgICAvLyBhcm91bmQgVW5pY29kZSAxLjEuNS4KKyAgICAgICAgaWYgKGNob2ljZSAhPSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgLy8gaW5kZXggaW4gdGVybXMgaW50ZWdlciBpbmRleAorICAgICAgICAgICAgc3luY2hyb25pemVkIChtX3V0aWxTdHJpbmdCdWZmZXJfKSB7CisgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5kZWxldGUoMCwgbV91dGlsU3RyaW5nQnVmZmVyXy5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpbmRleCA9IG1fYWxnb3JpdGhtXy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleCAtLSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgaWYgKG1fYWxnb3JpdGhtX1tpbmRleF0uY29udGFpbnMoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgbV9hbGdvcml0aG1fW2luZGV4XS5hcHBlbmROYW1lKGNoLCBtX3V0aWxTdHJpbmdCdWZmZXJfKTsKKyAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV91dGlsU3RyaW5nQnVmZmVyXy50b1N0cmluZygpOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXR0aW5nIHRoZSBjaGFyYWN0ZXIgd2l0aCB0aGUgdG9rZW5pemVkIGFyZ3VtZW50IG5hbWUKKyAgICAqIEBwYXJhbSBuYW1lIG9mIHRoZSBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gY2hhcmFjdGVyIHdpdGggdGhlIHRva2VuaXplZCBhcmd1bWVudCBuYW1lIG9yIC0xIGlmIGNoYXJhY3RlcgorICAgICogICAgICAgICBpcyBub3QgZm91bmQKKyAgICAqLworICAgIHByaXZhdGUgc3luY2hyb25pemVkIGludCBnZXRHcm91cENoYXIoU3RyaW5nIG5hbWUsIGludCBjaG9pY2UpCisgICAgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fZ3JvdXBjb3VudF87IGkgKyspIHsKKyAgICAgICAgICAgIC8vIHBvcHVsYXRpbmcgdGhlIGRhdGEgc2V0IG9mIGdyb3VwdGFibGUKKworICAgICAgICAgICAgaW50IHN0YXJ0Z3BzdHJpbmRleCA9IGdldEdyb3VwTGVuZ3RocyhpLCBtX2dyb3Vwb2Zmc2V0c18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBsZW5ndGhzXyk7CisKKyAgICAgICAgICAgIC8vIHNoaWZ0IG91dCB0byBmdW5jdGlvbgorICAgICAgICAgICAgaW50IHJlc3VsdCA9IGdldEdyb3VwQ2hhcihzdGFydGdwc3RyaW5kZXgsIG1fZ3JvdXBsZW5ndGhzXywgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKG1fZ3JvdXBpbmZvX1tpICogbV9ncm91cHNpemVfXSA8PCBHUk9VUF9TSElGVF8pCisgICAgICAgICAgICAgICAgICAgICAgICAgfCByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8qKgorICAgICogQ29tcGFyZXMgYW5kIHJldHJpZXZlIGNoYXJhY3RlciBpZiBuYW1lIGlzIGZvdW5kIHdpdGhpbiB0aGUgYXJndW1lbnQKKyAgICAqIGdyb3VwCisgICAgKiBAcGFyYW0gaW5kZXggaW5kZXggd2hlcmUgdGhlIHNldCBvZiBuYW1lcyByZXNpZGUgaW4gdGhlIGdyb3VwIGJsb2NrCisgICAgKiBAcGFyYW0gbGVuZ3RoIGxpc3Qgb2YgbGVuZ3RocyBvZiB0aGUgc3RyaW5ncworICAgICogQHBhcmFtIG5hbWUgY2hhcmFjdGVyIG5hbWUgdG8gc2VhcmNoIGZvcgorICAgICogQHBhcmFtIGNob2ljZSBvZiBlaXRoZXIgMS4wIG9yIHRoZSBtb3N0IGN1cnJlbnQgdW5pY29kZSBuYW1lCisgICAgKiBAcmV0dXJuIHJlbGF0aXZlIGNoYXJhY3RlciBpbiB0aGUgZ3JvdXAgd2hpY2ggbWF0Y2hlcyBuYW1lLCBvdGhlcndpc2UgaWYKKyAgICAqICAgICAgICAgbm90IGZvdW5kLCAtMSB3aWxsIGJlIHJldHVybmVkCisgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRHcm91cENoYXIoaW50IGluZGV4LCBjaGFyIGxlbmd0aFtdLCBTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNob2ljZSkKKyAgICB7CisgICAgICAgIGJ5dGUgYiA9IDA7CisgICAgICAgIGNoYXIgdG9rZW47CisgICAgICAgIGludCBsZW47CisgICAgICAgIGludCBuYW1lbGVuID0gbmFtZS5sZW5ndGgoKTsKKyAgICAgICAgaW50IG5pbmRleDsKKyAgICAgICAgaW50IGNvdW50OworCisgICAgICAgIGZvciAoaW50IHJlc3VsdCA9IDA7IHJlc3VsdCA8PSBMSU5FU19QRVJfR1JPVVBfOyByZXN1bHQgKyspIHsKKyAgICAgICAgICAgIG5pbmRleCA9IDA7CisgICAgICAgICAgICBsZW4gPSBsZW5ndGhbcmVzdWx0XTsKKworICAgICAgICAgICAgaWYgKGNob2ljZSA9PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgICAgIGludCBvbGRpbmRleCA9IGluZGV4OworICAgICAgICAgICAgICAgIGluZGV4ICs9IFVDaGFyYWN0ZXJVdGlsaXR5LnNraXBCeXRlU3ViU3RyaW5nKG1fZ3JvdXBzdHJpbmdfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCwgbGVuLCAoYnl0ZSknOycpOworICAgICAgICAgICAgICAgIGxlbiAtPSAoaW5kZXggLSBvbGRpbmRleCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG51bWJlciBvZiB0b2tlbnMgaXMgPiB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lCisgICAgICAgICAgICAvLyB3cml0ZSBlYWNoIGxldHRlciBkaXJlY3RseSwgYW5kIHdyaXRlIGEgdG9rZW4gd29yZCBwZXIgdG9rZW4KKyAgICAgICAgICAgIGZvciAoY291bnQgPSAwOyBjb3VudCA8IGxlbiAmJiBuaW5kZXggIT0gLTEgJiYgbmluZGV4IDwgbmFtZWxlbjsKKyAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICBiID0gbV9ncm91cHN0cmluZ19baW5kZXggKyBjb3VudF07CisgICAgICAgICAgICAgICAgY291bnQgKys7CisKKyAgICAgICAgICAgICAgICBpZiAoYiA+PSBtX3Rva2VudGFibGVfLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBpZiAobmFtZS5jaGFyQXQobmluZGV4ICsrKSAhPSAoYiAmIDB4RkYpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuaW5kZXggPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSBtX3Rva2VudGFibGVfW2IgJiAweEZGXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuID09IDB4RkZGRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIGxlYWQgYnl0ZSBmb3IgYSBkb3VibGUtYnl0ZSB0b2tlbgorICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSBtX3Rva2VudGFibGVfW2IgPDwgOCB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtX2dyb3Vwc3RyaW5nX1tpbmRleCArIGNvdW50XSAmIDB4MDBmZildOworICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VuID09IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUuY2hhckF0KG5pbmRleCArKykgIT0gKGIgJiAweEZGKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbmRleCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tcGFyZSB0b2tlbiB3aXRoIG5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIG5pbmRleCA9IFVDaGFyYWN0ZXJVdGlsaXR5LmNvbXBhcmVOdWxsVGVybUJ5dGVTdWJTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgbV90b2tlbnN0cmluZ18sIG5pbmRleCwgdG9rZW4pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobmFtZWxlbiA9PSBuaW5kZXggJiYKKyAgICAgICAgICAgICAgICAoY291bnQgPT0gbGVuIHx8IG1fZ3JvdXBzdHJpbmdfW2luZGV4ICsgY291bnRdID09ICc7JykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbmRleCArPSBsZW47CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8qKgorICAgICogQmluYXJ5IHNlYXJjaCBmb3IgdGhlIGdyb3VwIHN0cmluZ3Mgc2V0IHRoYXQgY29udGFpbnMgdGhlIGFyZ3VtZW50IFVuaWNvZGUKKyAgICAqIGNvZGUgcG9pbnQncyBtb3N0IHNpZ25pZmljYW50IGJpdHMuCisgICAgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIGFsd2F5cyBhIHZhbGlkIGdyb3VwIHN0cmluZyBzZXQgdGhhdCBjb250YWluIG1zYi4KKyAgICAqIElmIGdyb3VwIHN0cmluZyBzZXQgaXMgbm90IGZvdW5kLCAtMSBpcyByZXR1cm5lZAorICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IHRvIGxvb2sgZm9yCisgICAgKiBAcmV0dXJuIGdyb3VwIHN0cmluZyBzZXQgaW5kZXggaW4gZGF0YXRhYmxlIG90aGVyd2lzZSAtMSBpcyByZXR1cm5lZCBpZgorICAgICogICAgICAgICBncm91cCBzdHJpbmcgc2V0IGlzIG5vdCBmb3VuZAorICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgaW50IGdldEdyb3VwU3RyaW5nSW5kZXgoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gZ2V0cyB0aGUgbXNiCisgICAgICAgIGludCBtc2IgPSBjaCA+PiBHUk9VUF9TSElGVF8sCisgICAgICAgICAgICBlbmQgPSBtX2dyb3VwY291bnRfLAorICAgICAgICAgICAgc3RhcnQsCisgICAgICAgICAgICBnaW5kZXggPSAwOworCisgICAgICAgIC8vIGJpbmFyeSBzZWFyY2ggZm9yIHRoZSBncm91cCBvZiBuYW1lcyB0aGF0IGNvbnRhaW5zIHRoZSBvbmUgZm9yIGNvZGUKKyAgICAgICAgZm9yIChzdGFydCA9IDA7IHN0YXJ0IDwgZW5kIC0gMTspIHsKKyAgICAgICAgICAgIGdpbmRleCA9IChzdGFydCArIGVuZCkgPj4gMTsKKyAgICAgICAgICAgIGlmIChtc2IgPCBtX2dyb3VwaW5mb19bZ2luZGV4ICogbV9ncm91cHNpemVfXSkgeworICAgICAgICAgICAgICAgIGVuZCA9IGdpbmRleDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0gZ2luZGV4OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIHRoaXMgaWYgaXQgaXMgYW4gZXhhY3QgbWF0Y2gKKyAgICAgICAgaWYgKG1zYiA9PSBtX2dyb3VwaW5mb19bc3RhcnQgKiBtX2dyb3Vwc2l6ZV9dKSB7CisgICAgICAgICAgICBzdGFydCA9IHN0YXJ0ICogbV9ncm91cHNpemVfOworICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJVdGlsaXR5LnRvSW50KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyb3VwaW5mb19bc3RhcnQgKyBPRkZTRVRfSElHSF9PRkZTRVRfXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9ncm91cGluZm9fW3N0YXJ0ICsgT0ZGU0VUX0xPV19PRkZTRVRfXSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgY2hhcmFjdGVyIGV4dGVuZGVkIHR5cGUKKyAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gYmUgdGVzdGVkCisgICAgKiBAcmV0dXJuIGV4dGVuZGVkIHR5cGUgaXQgaXMgYXNzb2NpYXRlZCB3aXRoCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0VHlwZShpbnQgY2gpCisgICAgeworICAgICAgICBpZiAoVUNoYXJhY3RlclV0aWxpdHkuaXNOb25DaGFyYWN0ZXIoY2gpKSB7CisgICAgICAgICAgICAvLyBub3QgYSBjaGFyYWN0ZXIgd2UgcmV0dXJuIGEgaW52YWxpZCBjYXRlZ29yeSBjb3VudAorICAgICAgICAgICAgcmV0dXJuIE5PTl9DSEFSQUNURVJfOworICAgICAgICB9CisgICAgICAgIGludCByZXN1bHQgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY2gpOworICAgICAgICBpZiAocmVzdWx0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5TVVJST0dBVEUpIHsKKyAgICAgICAgICAgIGlmIChjaCA8PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBMRUFEX1NVUlJPR0FURV87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBUUkFJTF9TVVJST0dBVEVfOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgKiBHZXR0aW5nIHRoZSBjaGFyYWN0ZXIgd2l0aCBleHRlbmRlZCBuYW1lIG9mIHRoZSBmb3JtIDwuLi4uPi4KKyAgICAqIEBwYXJhbSBuYW1lIG9mIHRoZSBjaGFyYWN0ZXIgdG8gYmUgZm91bmQKKyAgICAqIEBwYXJhbSBjaG9pY2UgbmFtZSBjaG9pY2UKKyAgICAqIEByZXR1cm4gY2hhcmFjdGVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmFtZSwgLTEgaWYgc3VjaCBjaGFyYWN0ZXIgaXMgbm90CisgICAgKiAgICAgICAgICAgICAgICAgICBmb3VuZCBhbmQgLTIgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlIHdpdGggdGhlIHNlYXJjaC4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRFeHRlbmRlZENoYXIoU3RyaW5nIG5hbWUsIGludCBjaG9pY2UpCisgICAgeworICAgICAgICBpZiAobmFtZS5jaGFyQXQoMCkgPT0gJzwnKSB7CisgICAgICAgICAgICBpZiAoY2hvaWNlID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgICAgIGludCBlbmRJbmRleCA9IG5hbWUubGVuZ3RoKCkgLSAxOworICAgICAgICAgICAgICAgIGlmIChuYW1lLmNoYXJBdChlbmRJbmRleCkgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBzdGFydEluZGV4ID0gbmFtZS5sYXN0SW5kZXhPZignLScpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRJbmRleCA+PSAwKSB7IC8vIFdlJ3ZlIGdvdCBhIGNhdGVnb3J5LgorICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gSW50ZWdlci5wYXJzZUludCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLnN1YnN0cmluZyhzdGFydEluZGV4LCBlbmRJbmRleCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm93IHZhbGlkYXRlIHRoZSBjYXRlZ29yeSBuYW1lLiBXZSBjb3VsZCB1c2UgYQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmluYXJ5IHNlYXJjaCwgb3IgYSB0cmllLCBpZiB3ZSByZWFsbHkgd2FudGVkIHRvLgorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHR5cGUgPSBuYW1lLnN1YnN0cmluZygxLCBzdGFydEluZGV4IC0gMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoID0gVFlQRV9OQU1FU18ubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsrIGkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZS5jb21wYXJlVG8oVFlQRV9OQU1FU19baV0pID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdldFR5cGUocmVzdWx0KSA9PSBpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTI7CisgICAgfQorCisgICAgLy8gc2V0cyBvZiBuYW1lIGNoYXJhY3RlcnMsIG1heGltdW0gbmFtZSBsZW5ndGhzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBZGRzIGEgY29kZXBvaW50IGludG8gYSBzZXQgb2YgaW50cy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIFNFVF9BREQuCisgICAgICogQHBhcmFtIHNldCBzZXQgdG8gYWRkIHRvCisgICAgICogQHBhcmFtIGNoIDE2IGJpdCBjaGFyIHRvIGFkZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYWRkKGludCBzZXRbXSwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIHNldFtjaCA+Pj4gNV0gfD0gMSA8PCAoY2ggJiAweDFmKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgYSBjb2RlcG9pbnQgaXMgYSBwYXJ0IG9mIGEgc2V0IG9mIGludHMuCisgICAgICogRXF1aXZhbGVudCB0byBTRVRfQ09OVEFJTlMuCisgICAgICogQHBhcmFtIHNldCBzZXQgdG8gY2hlY2sgaW4KKyAgICAgKiBAcGFyYW0gY2ggMTYgYml0IGNoYXIgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZXBvaW50IGlzIHBhcnQgb2YgdGhlIHNldCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBjb250YWlucyhpbnQgc2V0W10sIGNoYXIgY2gpCisgICAgeworICAgICAgICByZXR1cm4gKHNldFtjaCA+Pj4gNV0gJiAoMSA8PCAoY2ggJiAweDFmKSkpICE9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyBhbGwgY2hhcmFjdGVycyBvZiB0aGUgYXJndW1lbnQgc3RyIGFuZCBnZXRzIHRoZSBsZW5ndGgKKyAgICAgKiBFcXVpdmFsZW50IHRvIGNhbGNTdHJpbmdTZXRMZW5ndGguCisgICAgICogQHBhcmFtIHNldCBzZXQgdG8gYWRkIGFsbCBjaGFycyBvZiBzdHIgdG8KKyAgICAgKiBAcGFyYW0gc3RyIHN0cmluZyB0byBhZGQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgYWRkKGludCBzZXRbXSwgU3RyaW5nIHN0cikKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSBzdHIubGVuZ3RoKCk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IHJlc3VsdCAtIDE7IGkgPj0gMDsgaSAtLSkgeworICAgICAgICAgICAgYWRkKHNldCwgc3RyLmNoYXJBdChpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGFsbCBjaGFyYWN0ZXJzIG9mIHRoZSBhcmd1bWVudCBzdHIgYW5kIGdldHMgdGhlIGxlbmd0aAorICAgICAqIEVxdWl2YWxlbnQgdG8gY2FsY1N0cmluZ1NldExlbmd0aC4KKyAgICAgKiBAcGFyYW0gc2V0IHNldCB0byBhZGQgYWxsIGNoYXJzIG9mIHN0ciB0bworICAgICAqIEBwYXJhbSBzdHIgc3RyaW5nIHRvIGFkZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBhZGQoaW50IHNldFtdLCBTdHJpbmdCdWZmZXIgc3RyKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IHN0ci5sZW5ndGgoKTsKKworICAgICAgICBmb3IgKGludCBpID0gcmVzdWx0IC0gMTsgaSA+PSAwOyBpIC0tKSB7CisgICAgICAgICAgICBhZGQoc2V0LCBzdHIuY2hhckF0KGkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgYWxsIGFsZ29yaXRobWljIG5hbWVzIGludG8gdGhlIG5hbWUgc2V0LgorICAgICAqIEVxdWl2YWxlbnQgdG8gcGFydCBvZiBjYWxjQWxnTmFtZVNldHNMZW5ndGhzLgorICAgICAqIEBwYXJhbSBtYXhsZW5ndGggbGVuZ3RoIHRvIGNvbXBhcmUgdG8KKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbnkgcG9zc2libGUgYWxnb3JpdGhtaWMgbmFtZSBpZiBpdCBpcyA+CisgICAgICogICAgICAgICBtYXhsZW5ndGgsIG90aGVyd2lzZSBtYXhsZW5ndGggaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgYWRkQWxnb3JpdGhtTmFtZShpbnQgbWF4bGVuZ3RoKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSBtX2FsZ29yaXRobV8ubGVuZ3RoIC0gMTsgaSA+PSAwOyBpIC0tKSB7CisgICAgICAgICAgICByZXN1bHQgPSBtX2FsZ29yaXRobV9baV0uYWRkKG1fbmFtZVNldF8sIG1heGxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID4gbWF4bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgbWF4bGVuZ3RoID0gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBtYXhsZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyBhbGwgZXh0ZW5kZWQgbmFtZXMgaW50byB0aGUgbmFtZSBzZXQuCisgICAgICogRXF1aXZhbGVudCB0byBwYXJ0IG9mIGNhbGNFeHROYW1lU2V0c0xlbmd0aHMuCisgICAgICogQHBhcmFtIG1heGxlbmd0aCBsZW5ndGggdG8gY29tcGFyZSB0bworICAgICAqIEByZXR1cm4gdGhlIG1heGxlbmd0aCBvZiBhbnkgcG9zc2libGUgZXh0ZW5kZWQgbmFtZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBhZGRFeHRlbmRlZE5hbWUoaW50IG1heGxlbmd0aCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSBUWVBFX05BTUVTXy5sZW5ndGggLSAxOyBpID49IDA7IGkgLS0pIHsKKyAgICAgICAgICAgIC8vIGZvciBlYWNoIGNhdGVnb3J5LCBjb3VudCB0aGUgbGVuZ3RoIG9mIHRoZSBjYXRlZ29yeSBuYW1lCisgICAgICAgICAgICAvLyBwbHVzIDkgPQorICAgICAgICAgICAgLy8gMiBmb3IgPD4KKyAgICAgICAgICAgIC8vIDEgZm9yIC0KKyAgICAgICAgICAgIC8vIDYgZm9yIG1vc3QgaGV4IGRpZ2l0cyBwZXIgY29kZSBwb2ludAorICAgICAgICAgICAgaW50IGxlbmd0aCA9IDkgKyBhZGQobV9uYW1lU2V0XywgVFlQRV9OQU1FU19baV0pOworICAgICAgICAgICAgaWYgKGxlbmd0aCA+IG1heGxlbmd0aCkgeworICAgICAgICAgICAgICAgIG1heGxlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWF4bGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgbmFtZXMgb2YgYSBncm91cCB0byB0aGUgYXJndW1lbnQgc2V0LgorICAgICAqIEVxdWl2YWxlbnQgdG8gY2FsY05hbWVTZXRMZW5ndGguCisgICAgICogQHBhcmFtIG9mZnNldCBvZiB0aGUgZ3JvdXAgbmFtZSBzdHJpbmcgaW4gYnl0ZSBjb3VudAorICAgICAqIEBwYXJhbSBsZW5ndGggb2YgdGhlIGdyb3VwIG5hbWUgc3RyaW5nCisgICAgICogQHBhcmFtIHRva2VubGVuZ3RoIGFycmF5IHRvIHN0b3JlIHRoZSBsZW5ndGggb2YgZWFjaCB0b2tlbgorICAgICAqIEBwYXJhbSBzZXQgdG8gYWRkIHRvCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBuYW1lIHN0cmluZyBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgZ3JvdXAKKyAgICAgKiAgICAgICAgIHN0cmluZyBwYXJzZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludFtdIGFkZEdyb3VwTmFtZShpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBieXRlIHRva2VubGVuZ3RoW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNldFtdKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdG5sZW5ndGggPSAwOworICAgICAgICBpbnQgcmVzdWx0cGxlbmd0aCA9IDA7CisgICAgICAgIHdoaWxlIChyZXN1bHRwbGVuZ3RoIDwgbGVuZ3RoKSB7CisgICAgICAgICAgICBjaGFyIGIgPSAoY2hhcikobV9ncm91cHN0cmluZ19bb2Zmc2V0ICsgcmVzdWx0cGxlbmd0aF0gJiAweGZmKTsKKyAgICAgICAgICAgIHJlc3VsdHBsZW5ndGggKys7CisgICAgICAgICAgICBpZiAoYiA9PSAnOycpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGIgPj0gbV90b2tlbnRhYmxlXy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBhZGQoc2V0LCBiKTsgLy8gaW1wbGljaXQgbGV0dGVyCisgICAgICAgICAgICAgICAgcmVzdWx0bmxlbmd0aCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNoYXIgdG9rZW4gPSBtX3Rva2VudGFibGVfW2IgJiAweDAwZmZdOworICAgICAgICAgICAgICAgIGlmICh0b2tlbiA9PSAweEZGRkUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIGxlYWQgYnl0ZSBmb3IgYSBkb3VibGUtYnl0ZSB0b2tlbgorICAgICAgICAgICAgICAgICAgICBiID0gKGNoYXIpKGIgPDwgOCB8IChtX2dyb3Vwc3RyaW5nX1tvZmZzZXQgKyByZXN1bHRwbGVuZ3RoXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIDB4MDBmZikpOworICAgICAgICAgICAgICAgICAgICB0b2tlbiA9IG1fdG9rZW50YWJsZV9bYl07CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdHBsZW5ndGggKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0b2tlbiA9PSAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkKHNldCwgYik7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdG5sZW5ndGggKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBjb3VudCB0b2tlbiB3b3JkCisgICAgICAgICAgICAgICAgICAgIC8vIHVzZSBjYWNoZWQgdG9rZW4gbGVuZ3RoCisgICAgICAgICAgICAgICAgICAgIGJ5dGUgdGxlbmd0aCA9IHRva2VubGVuZ3RoW2JdOworICAgICAgICAgICAgICAgICAgICBpZiAodGxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKG1fdXRpbFN0cmluZ0J1ZmZlcl8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmRlbGV0ZSgwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJVdGlsaXR5LmdldE51bGxUZXJtQnl0ZVN1YlN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLCBtX3Rva2Vuc3RyaW5nXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGxlbmd0aCA9IChieXRlKWFkZChzZXQsIG1fdXRpbFN0cmluZ0J1ZmZlcl8pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5sZW5ndGhbYl0gPSB0bGVuZ3RoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdG5sZW5ndGggKz0gdGxlbmd0aDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbV91dGlsSW50QnVmZmVyX1swXSA9IHJlc3VsdG5sZW5ndGg7CisgICAgICAgIG1fdXRpbEludEJ1ZmZlcl9bMV0gPSByZXN1bHRwbGVuZ3RoOworICAgICAgICByZXR1cm4gbV91dGlsSW50QnVmZmVyXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGRzIG5hbWVzIG9mIGFsbCBncm91cCB0byB0aGUgYXJndW1lbnQgc2V0LgorICAgICAqIFNldHMgdGhlIGRhdGEgbWVtYmVyIG1fbWF4Kkxlbmd0aF8uCisgICAgICogTWV0aG9kIGNhbGxlZCBvbmx5IG9uY2UuCisgICAgICogRXF1aXZhbGVudCB0byBjYWxjR3JvdXBOYW1lU2V0c0xlbmd0aC4KKyAgICAgKiBAcGFyYW0gbWF4bGVuZ3RoIGxlbmd0aCB0byBjb21wYXJlIHRvCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGFkZEdyb3VwTmFtZShpbnQgbWF4bGVuZ3RoKQorICAgIHsKKyAgICAgICAgaW50IG1heGlzb2xlbmd0aCA9IDA7CisgICAgICAgIGNoYXIgb2Zmc2V0c1tdID0gbmV3IGNoYXJbTElORVNfUEVSX0dST1VQXyArIDJdOworICAgICAgICBjaGFyIGxlbmd0aHNbXSA9IG5ldyBjaGFyW0xJTkVTX1BFUl9HUk9VUF8gKyAyXTsKKyAgICAgICAgYnl0ZSB0b2tlbmxlbmd0aHNbXSA9IG5ldyBieXRlW21fdG9rZW50YWJsZV8ubGVuZ3RoXTsKKworICAgICAgICAvLyBlbnVtZXJhdGUgYWxsIGdyb3VwcworICAgICAgICAvLyBmb3IgKGludCBpID0gbV9ncm91cGNvdW50XyAtIDE7IGkgPj0gMDsgaSAtLSkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fZ3JvdXBjb3VudF8gOyBpICsrKSB7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gZ2V0R3JvdXBMZW5ndGhzKGksIG9mZnNldHMsIGxlbmd0aHMpOworICAgICAgICAgICAgLy8gZW51bWVyYXRlIGFsbCBsaW5lcyBpbiBlYWNoIGdyb3VwCisgICAgICAgICAgICAvLyBmb3IgKGludCBsaW5lbnVtYmVyID0gTElORVNfUEVSX0dST1VQXyAtIDE7IGxpbmVudW1iZXIgPj0gMDsKKyAgICAgICAgICAgIC8vICAgIGxpbmVudW1iZXIgLS0pIHsKKyAgICAgICAgICAgIGZvciAoaW50IGxpbmVudW1iZXIgPSAwOyBsaW5lbnVtYmVyIDwgTElORVNfUEVSX0dST1VQXzsKKyAgICAgICAgICAgICAgICBsaW5lbnVtYmVyICsrKSB7CisgICAgICAgICAgICAgICAgaW50IGxpbmVvZmZzZXQgPSBvZmZzZXQgKyBvZmZzZXRzW2xpbmVudW1iZXJdOworICAgICAgICAgICAgICAgIGludCBsZW5ndGggPSBsZW5ndGhzW2xpbmVudW1iZXJdOworICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyByZWFkIHJlZ3VsYXIgbmFtZQorICAgICAgICAgICAgICAgIGludCBwYXJzZWRbXSA9IGFkZEdyb3VwTmFtZShsaW5lb2Zmc2V0LCBsZW5ndGgsIHRva2VubGVuZ3RocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9uYW1lU2V0Xyk7CisgICAgICAgICAgICAgICAgaWYgKHBhcnNlZFswXSA+IG1heGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyAwIGZvciBuYW1lIGxlbmd0aAorICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGggPSBwYXJzZWRbMF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxpbmVvZmZzZXQgKz0gcGFyc2VkWzFdOworICAgICAgICAgICAgICAgIGlmIChwYXJzZWRbMV0gPj0gbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIDEgZm9yIHBhcnNlZCBncm91cCBzdHJpbmcgbGVuZ3RoCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsZW5ndGggLT0gcGFyc2VkWzFdOworICAgICAgICAgICAgICAgIC8vIHJlYWQgVW5pY29kZSAxLjAgbmFtZQorICAgICAgICAgICAgICAgIHBhcnNlZCA9IGFkZEdyb3VwTmFtZShsaW5lb2Zmc2V0LCBsZW5ndGgsIHRva2VubGVuZ3RocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9uYW1lU2V0Xyk7CisgICAgICAgICAgICAgICAgaWYgKHBhcnNlZFswXSA+IG1heGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyAwIGZvciBuYW1lIGxlbmd0aAorICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGggPSBwYXJzZWRbMF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxpbmVvZmZzZXQgKz0gcGFyc2VkWzFdOworICAgICAgICAgICAgICAgIGlmIChwYXJzZWRbMV0gPj0gbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIDEgZm9yIHBhcnNlZCBncm91cCBzdHJpbmcgbGVuZ3RoCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsZW5ndGggLT0gcGFyc2VkWzFdOworICAgICAgICAgICAgICAgIC8vIHJlYWQgSVNPIGNvbW1lbnQKKyAgICAgICAgICAgICAgICBwYXJzZWQgPSBhZGRHcm91cE5hbWUobGluZW9mZnNldCwgbGVuZ3RoLCB0b2tlbmxlbmd0aHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fSVNPQ29tbWVudFNldF8pOworICAgICAgICAgICAgICAgIGlmIChwYXJzZWRbMV0gPiBtYXhpc29sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4aXNvbGVuZ3RoID0gbGVuZ3RoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHNldCBnTWF4Li4uIC0gbmFtZSBsZW5ndGggbGFzdCBmb3IgdGhyZWFkaW5nCisgICAgICAgIG1fbWF4SVNPQ29tbWVudExlbmd0aF8gPSBtYXhpc29sZW5ndGg7CisgICAgICAgIG1fbWF4TmFtZUxlbmd0aF8gPSBtYXhsZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB1cCB0aGUgbmFtZSBzZXRzIGFuZCB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIG1heGltdW0gbGVuZ3Rocy4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGNhbGNOYW1lU2V0c0xlbmd0aHMuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGluaXROYW1lU2V0c0xlbmd0aHMoKQorICAgIHsKKyAgICAgICAgaWYgKG1fbWF4TmFtZUxlbmd0aF8gPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBleHRyYSA9ICIwMTIzNDU2Nzg5QUJDREVGPD4tIjsKKyAgICAgICAgLy8gc2V0IGhleCBkaWdpdHMsIHVzZWQgaW4gdmFyaW91cyBuYW1lcywgYW5kIDw+LSwgdXNlZCBpbiBleHRlbmRlZAorICAgICAgICAvLyBuYW1lcworICAgICAgICBmb3IgKGludCBpID0gZXh0cmEubGVuZ3RoKCkgLSAxOyBpID49IDA7IGkgLS0pIHsKKyAgICAgICAgICAgIGFkZChtX25hbWVTZXRfLCBleHRyYS5jaGFyQXQoaSkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gc2V0IHNldHMgYW5kIGxlbmd0aHMgZnJvbSBhbGdvcml0aG1pYyBuYW1lcworICAgICAgICBtX21heE5hbWVMZW5ndGhfID0gYWRkQWxnb3JpdGhtTmFtZSgwKTsKKyAgICAgICAgLy8gc2V0IHNldHMgYW5kIGxlbmd0aHMgZnJvbSBleHRlbmRlZCBuYW1lcworICAgICAgICBtX21heE5hbWVMZW5ndGhfID0gYWRkRXh0ZW5kZWROYW1lKG1fbWF4TmFtZUxlbmd0aF8pOworICAgICAgICAvLyBzZXQgc2V0cyBhbmQgbGVuZ3RocyBmcm9tIGdyb3VwIG5hbWVzLCBzZXQgZ2xvYmFsIG1heGltdW0gdmFsdWVzCisgICAgICAgIGFkZEdyb3VwTmFtZShtX21heE5hbWVMZW5ndGhfKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydHMgdGhlIGNoYXIgc2V0IGNzZXQgaW50byBhIFVuaWNvZGUgc2V0IHVzZXQuCisgICAgICogRXF1aXZhbGVudCB0byBjaGFyU2V0VG9VU2V0LgorICAgICAqIEBwYXJhbSBzZXQgU2V0IG9mIDI1NiBiaXQgZmxhZ3MgY29ycmVzcG9uZGluZyB0byBhIHNldCBvZiBjaGFycy4KKyAgICAgKiBAcGFyYW0gdXNldCBVU2V0IHRvIHJlY2VpdmUgY2hhcmFjdGVycy4gRXhpc3RpbmcgY29udGVudHMgYXJlIGRlbGV0ZWQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGNvbnZlcnQoaW50IHNldFtdLCBVbmljb2RlU2V0IHVzZXQpCisgICAgeworICAgICAgICB1c2V0LmNsZWFyKCk7CisgICAgICAgIGlmICghaW5pdE5hbWVTZXRzTGVuZ3RocygpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBidWlsZCBhIGNoYXIgc3RyaW5nIHdpdGggYWxsIGNoYXJzIHRoYXQgYXJlIHVzZWQgaW4gY2hhcmFjdGVyIG5hbWVzCisgICAgICAgIGZvciAoY2hhciBjID0gMjU1OyBjID4gMDsgYyAtLSkgeworICAgICAgICAgICAgaWYgKGNvbnRhaW5zKHNldCwgYykpIHsKKyAgICAgICAgICAgICAgICB1c2V0LmFkZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJOYW1lQ2hvaWNlLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZUNob2ljZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5N2YxNTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZUNob2ljZS5qYXZhCkBAIC0wLDAgKzEsMjkgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCisvKioKKyogSW50ZXJuYWwgY2xhc3MgY29udGFpbmluZyBzZWxlY3RvciBjb25zdGFudHMgZm9yIHRoZSB1bmljb2RlIGNoYXJhY3RlciBuYW1lcy4KKyogQ29uc3RhbnRzIHJlcHJlc2VudGluZyB0aGUgIm1vZGVybiIgbmFtZSBvZiBhIFVuaWNvZGUgY2hhcmFjdGVyIG9yIHRoZSBuYW1lIAorKiB0aGF0IHdhcyBkZWZpbmVkIGluIFVuaWNvZGUgdmVyc2lvbiAxLjAsIGJlZm9yZSB0aGUgVW5pY29kZSBzdGFuZGFyZCAKKyogbWVyZ2VkIHdpdGggSVNPLTEwNjQ2LgorKiBBcmd1bWVudHMgZm9yIDxhIGhyZWY9VUNoYXJhY3Rlck5hbWUuaHRtbD5VQ2hhcmFjdGVyTmFtZTwvYT4KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIG9jdDA2MDAKKyovCisKK3B1YmxpYyBpbnRlcmZhY2UgVUNoYXJhY3Rlck5hbWVDaG9pY2UKK3sKKyAgLy8gcHVibGljIHZhcmlhYmxlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgCisgIHN0YXRpYyBmaW5hbCBpbnQgVU5JQ09ERV9DSEFSX05BTUUgPSAwOworICBzdGF0aWMgZmluYWwgaW50IFVOSUNPREVfMTBfQ0hBUl9OQU1FID0gMTsKKyAgc3RhdGljIGZpbmFsIGludCBFWFRFTkRFRF9DSEFSX05BTUUgPSAyOworICBzdGF0aWMgZmluYWwgaW50IENIQVJfTkFNRV9DSE9JQ0VfQ09VTlQgPSAzOworICBzdGF0aWMgZmluYWwgaW50IElTT19DT01NRU5UXyA9IENIQVJfTkFNRV9DSE9JQ0VfQ09VTlQ7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyTmFtZVJlYWRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWVSZWFkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDU0NzJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3Rlck5hbWVSZWFkZXIuamF2YQpAQCAtMCwwICsxLDIxOCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CisKKy8qKgorKiA8cD5JbnRlcm5hbCByZWFkZXIgY2xhc3MgZm9yIElDVSBkYXRhIGZpbGUgdW5hbWUuZGF0IGNvbnRhaW5pbmcgCisqIFVuaWNvZGUgY29kZXBvaW50IG5hbWUgZGF0YS48L3A+IAorKiA8cD5UaGlzIGNsYXNzIHNpbXBseSByZWFkcyB1bmFtZXMuaWN1LCBhdXRoZW50aWNhdGVzIHRoYXQgaXQgaXMgYSB2YWxpZAorKiBJQ1UgZGF0YSBmaWxlIGFuZCBzcGxpdCBpdHMgY29udGVudHMgdXAgaW50byBibG9ja3Mgb2YgZGF0YSBmb3IgdXNlIGluCisqIDxhIGhyZWY9VUNoYXJhY3Rlck5hbWUuaHRtbD5jb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJOYW1lPC9hPi4KKyogPC9wPiAKKyogPHA+dW5hbWVzLmljdSB3aGljaCBpcyBpbiBiaWctZW5kaWFuIGZvcm1hdCBpcyBqYXJlZCB0b2dldGhlciB3aXRoIHRoaXMgCisqIHBhY2thZ2UuPC9wPgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjEsIEZlYnJ1YXJ5IDFzdCAyMDAyCisqIEBkcmFmdCAyLjEKKyovCisKK2ZpbmFsIGNsYXNzIFVDaGFyYWN0ZXJOYW1lUmVhZGVyIGltcGxlbWVudHMgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZQoreyAgICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RhdGFWZXJzaW9uQWNjZXB0YWJsZShieXRlIHZlcnNpb25bXSkKKyAgICB7CisgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdID09IERBVEFfRk9STUFUX1ZFUlNJT05fWzBdOworICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiA8cD5Qcm90ZWN0ZWQgY29uc3RydWN0b3IuPC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIElDVSB1cHJvcC5kYXQgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3cgaWYgZGF0YSBmaWxlIGZhaWxzIGF1dGhlbnRpY2F0aW9uIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIFVDaGFyYWN0ZXJOYW1lUmVhZGVyKElucHV0U3RyZWFtIGlucHV0U3RyZWFtKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBJQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgREFUQV9GT1JNQVRfSURfLCB0aGlzKTsKKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fID0gbmV3IERhdGFJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CisgICAgfQorICAKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIFJlYWQgYW5kIGJyZWFrIHVwIHRoZSBzdHJlYW0gb2YgZGF0YSBwYXNzZWQgaW4gYXMgYXJndW1lbnRzCisgICAgKiBhbmQgZmlsbHMgdXAgVUNoYXJhY3Rlck5hbWUuCisgICAgKiBJZiB1bnN1Y2Nlc3NmdWwgZmFsc2Ugd2lsbCBiZSByZXR1cm5lZC4KKyAgICAqIEBwYXJhbSBkYXRhIGluc3RhbmNlIG9mIGRhdGFibG9jaworICAgICogQGV4Y2VwdGlvbiB0aHJvd24gd2hlbiB0aGVyZSdzIGEgZGF0YSBlcnJvci4KKyAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHJlYWQoVUNoYXJhY3Rlck5hbWUgZGF0YSkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyByZWFkaW5nIGluZGV4CisgICAgICAgIG1fdG9rZW5zdHJpbmdpbmRleF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBtX2dyb3VwaW5kZXhfICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgbV9ncm91cHN0cmluZ2luZGV4XyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIG1fYWxnbmFtZXNpbmRleF8gICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAKKyAgICAgICAgLy8gcmVhZGluZyB0b2tlbnMKKyAgICAgICAgaW50IGNvdW50ID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIGNoYXIgdG9rZW5bXSA9IG5ldyBjaGFyW2NvdW50XTsKKyAgICAgICAgZm9yIChjaGFyIGkgPSAwOyBpIDwgY291bnQ7IGkgKyspIHsKKyAgICAgICAgICAgIHRva2VuW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgaW50IHNpemUgPSBtX2dyb3VwaW5kZXhfIC0gbV90b2tlbnN0cmluZ2luZGV4XzsKKyAgICAgICAgYnl0ZSB0b2tlbnN0cltdID0gbmV3IGJ5dGVbc2l6ZV07CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkRnVsbHkodG9rZW5zdHIpOworICAgICAgICBkYXRhLnNldFRva2VuKHRva2VuLCB0b2tlbnN0cik7CisgICAgICAgIAorICAgICAgICAvLyByZWFkaW5nIHRoZSBncm91cCBpbmZvcm1hdGlvbiByZWNvcmRzCisgICAgICAgIGNvdW50ID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIGRhdGEuc2V0R3JvdXBDb3VudFNpemUoY291bnQsIEdST1VQX0lORk9fU0laRV8pOworICAgICAgICBjb3VudCAqPSBHUk9VUF9JTkZPX1NJWkVfOworICAgICAgICBjaGFyIGdyb3VwW10gPSBuZXcgY2hhcltjb3VudF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkgKyspIHsKKyAgICAgICAgICAgIGdyb3VwW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNpemUgPSBtX2FsZ25hbWVzaW5kZXhfIC0gbV9ncm91cHN0cmluZ2luZGV4XzsKKyAgICAgICAgYnl0ZSBncm91cHN0cmluZ1tdID0gbmV3IGJ5dGVbc2l6ZV07CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkRnVsbHkoZ3JvdXBzdHJpbmcpOworICAgIAorICAgICAgICBkYXRhLnNldEdyb3VwKGdyb3VwLCBncm91cHN0cmluZyk7CisgICAgICAgIAorICAgICAgICBjb3VudCA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUgYWxnW10gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVQ2hhcmFjdGVyTmFtZS5BbGdvcml0aG1OYW1lW2NvdW50XTsKKyAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUgYW4gPSByZWFkQWxnKCk7CisgICAgICAgICAgICBpZiAoYW4gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigidW5hbWVzLmljdSByZWFkIGVycm9yOiBBbGdvcml0aG1pYyBuYW1lcyBjcmVhdGlvbiBlcnJvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYWxnW2ldID0gYW47CisgICAgICAgIH0KKyAgICAgICAgZGF0YS5zZXRBbGdvcml0aG0oYWxnKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiA8cD5DaGVja2luZyB0aGUgZmlsZSBmb3IgdGhlIGNvcnJlY3QgZm9ybWF0LjwvcD4KKyAgICAqIEBwYXJhbSBkYXRhZm9ybWF0aWQKKyAgICAqIEBwYXJhbSBkYXRhZm9ybWF0dmVyc2lvCisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGZpbGUgZm9ybWF0IHZlcnNpb24gaXMgY29ycmVjdAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByb3RlY3RlZCBib29sZWFuIGF1dGhlbnRpY2F0ZShieXRlIGRhdGFmb3JtYXRpZFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlIGRhdGFmb3JtYXR2ZXJzaW9uW10pCisgICAgeworICAgICAgICByZXR1cm4gQXJyYXlzLmVxdWFscyhEQVRBX0ZPUk1BVF9JRF8sIGRhdGFmb3JtYXRpZCkgJiYKKyAgICAgICAgICAgICAgIEFycmF5cy5lcXVhbHMoREFUQV9GT1JNQVRfVkVSU0lPTl8sIGRhdGFmb3JtYXR2ZXJzaW9uKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgCisgICAgLy8gcHJpdmF0ZSB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAKKyAgICAvKioKKyAgICAqIERhdGEgaW5wdXQgc3RyZWFtIGZvciBuYW1lcyAKKyAgICAqLworICAgIHByaXZhdGUgRGF0YUlucHV0U3RyZWFtIG1fZGF0YUlucHV0U3RyZWFtXzsKKyAgICAvKioKKyAgICAqIFNpemUgb2YgdGhlIGdyb3VwIGluZm9ybWF0aW9uIGJsb2NrIGluIG51bWJlciBvZiBjaGFyCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR1JPVVBfSU5GT19TSVpFXyA9IDM7CisKKyAgICAvKioKKyAgICAqIEluZGV4IG9mIHRoZSBvZmZzZXQgaW5mb3JtYXRpb24KKyAgICAqLworICAgIHByaXZhdGUgaW50IG1fdG9rZW5zdHJpbmdpbmRleF87CisgICAgcHJpdmF0ZSBpbnQgbV9ncm91cGluZGV4XzsKKyAgICBwcml2YXRlIGludCBtX2dyb3Vwc3RyaW5naW5kZXhfOworICAgIHByaXZhdGUgaW50IG1fYWxnbmFtZXNpbmRleF87CisgICAgICAKKyAgICAvKioKKyAgICAqIFNpemUgb2YgYW4gYWxnb3JpdGhtaWMgbmFtZSBpbmZvcm1hdGlvbiBncm91cAorICAgICogc3RhcnQgY29kZSBwb2ludCBzaXplICsgZW5kIGNvZGUgcG9pbnQgc2l6ZSArIHR5cGUgc2l6ZSArIHZhcmlhbnQgc2l6ZSArIAorICAgICogc2l6ZSBvZiBkYXRhIHNpemUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBTEdfSU5GT19TSVpFXyA9IDEyOworICAgICAgCisgICAgLyoqCisgICAgKiBGaWxlIGZvcm1hdCB2ZXJzaW9uIGFuZCBpZCB0aGF0IHRoaXMgY2xhc3MgdW5kZXJzdGFuZHMuCisgICAgKiBObyBndWFyYW50ZWVzIGFyZSBtYWRlIGlmIGEgb2xkZXIgdmVyc2lvbiBpcyB1c2VkCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX1ZFUlNJT05fW10gPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoYnl0ZSkweDEsIChieXRlKTB4MCwgKGJ5dGUpMHgwLCAoYnl0ZSkweDB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFUQV9GT1JNQVRfSURfW10gPSB7KGJ5dGUpMHg3NSwgKGJ5dGUpMHg2RSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpMHg2MSwgKGJ5dGUpMHg2RH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICogQ29ycnVwdGVkIGVycm9yIHN0cmluZworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPUlJVUFRFRF9EQVRBX0VSUk9SXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEYXRhIGNvcnJ1cHRlZCBpbiBjaGFyYWN0ZXIgbmFtZSBkYXRhIGZpbGUiOworICAgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgLyoqCisgICAgKiBSZWFkcyBhbiBpbmRpdmlkdWFsIHJlY29yZCBvZiBBbGdvcml0aG1OYW1lcworICAgICogQHJldHVybiBhbiBpbnN0YW5jZSBvZiBBbGdvcml0aE5hbWVzIGlmIHJlYWQgaXMgc3VjY2Vzc2Z1bCBvdGhlcndpc2UgbnVsbAorICAgICogQGV4Y2VwdGlvbiB0aHJvd24gd2hlbiBmaWxlIHJlYWQgZXJyb3Igb2NjdXJzIG9yIGRhdGEgaXMgY29ycnVwdGVkCisgICAgKi8KKyAgICBwcml2YXRlIFVDaGFyYWN0ZXJOYW1lLkFsZ29yaXRobU5hbWUgcmVhZEFsZygpIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgVUNoYXJhY3Rlck5hbWUuQWxnb3JpdGhtTmFtZSByZXN1bHQgPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVQ2hhcmFjdGVyTmFtZS5BbGdvcml0aG1OYW1lKCk7CisgICAgICAgIGludCByYW5nZXN0YXJ0ID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgaW50IHJhbmdlZW5kICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICBieXRlIHR5cGUgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQnl0ZSgpOworICAgICAgICBieXRlIHZhcmlhbnQgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQnl0ZSgpOworICAgICAgICBpZiAoIXJlc3VsdC5zZXRJbmZvKHJhbmdlc3RhcnQsIHJhbmdlZW5kLCB0eXBlLCB2YXJpYW50KSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaW50IHNpemUgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZENoYXIoKTsKKyAgICAgICAgaWYgKHR5cGUgPT0gVUNoYXJhY3Rlck5hbWUuQWxnb3JpdGhtTmFtZS5UWVBFXzFfKQorICAgICAgICB7CisgICAgICAgICAgICBjaGFyIGZhY3RvcltdID0gbmV3IGNoYXJbdmFyaWFudF07CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHZhcmlhbnQ7IGogKyspIHsKKyAgICAgICAgICAgICAgICBmYWN0b3Jbal0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZENoYXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgcmVzdWx0LnNldEZhY3RvcihmYWN0b3IpOworICAgICAgICAgICAgc2l6ZSAtPSAodmFyaWFudCA8PCAxKTsKKyAgICAgICAgfQorICAgICAgICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgcHJlZml4ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBjaGFyIGMgPSAoY2hhcikobV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRCeXRlKCkgJiAweDAwRkYpOworICAgICAgICB3aGlsZSAoYyAhPSAwKQorICAgICAgICB7CisgICAgICAgICAgICBwcmVmaXguYXBwZW5kKGMpOworICAgICAgICAgICAgYyA9IChjaGFyKShtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEJ5dGUoKSAmIDB4MDBGRik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJlc3VsdC5zZXRQcmVmaXgocHJlZml4LnRvU3RyaW5nKCkpOworICAgICAgICAKKyAgICAgICAgc2l6ZSAtPSAoQUxHX0lORk9fU0laRV8gKyBwcmVmaXgubGVuZ3RoKCkgKyAxKTsKKyAgICAgICAgCisgICAgICAgIGlmIChzaXplID4gMCkKKyAgICAgICAgeworICAgICAgICAgICAgYnl0ZSBzdHJpbmdbXSA9IG5ldyBieXRlW3NpemVdOworICAgICAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRGdWxseShzdHJpbmcpOworICAgICAgICAgICAgcmVzdWx0LnNldEZhY3RvclN0cmluZyhzdHJpbmcpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyUHJvcGVydHkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJQcm9wZXJ0eS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNGI2ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VQ2hhcmFjdGVyUHJvcGVydHkuamF2YQpAQCAtMCwwICsxLDEyNzMgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyQ2F0ZWdvcnk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlVmFsdWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworLyoqCisqIDxwPkludGVybmFsIGNsYXNzIHVzZWQgZm9yIFVuaWNvZGUgY2hhcmFjdGVyIHByb3BlcnR5IGRhdGFiYXNlLjwvcD4KKyogPHA+VGhpcyBjbGFzc2VzIHN0b3JlIGJpbmFyeSBkYXRhIHJlYWQgZnJvbSB1cHJvcHMuaWN1LgorKiBJdCBkb2VzIG5vdCBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIHBhcnNlIHRoZSBkYXRhIGludG8gbW9yZSBoaWdoLWxldmVsCisqIGluZm9ybWF0aW9uLiBJdCBvbmx5IHJldHVybnMgYnl0ZXMgb2YgaW5mb3JtYXRpb24gd2hlbiByZXF1aXJlZC48L3A+CisqIDxwPkR1ZSB0byB0aGUgZm9ybSBtb3N0IGNvbW1vbmx5IHVzZWQgZm9yIHJldHJpZXZhbCwgYXJyYXkgb2YgY2hhciBpcyB1c2VkCisqIHRvIHN0b3JlIHRoZSBiaW5hcnkgZGF0YS48L3A+CisqIDxwPlVDaGFyYWN0ZXJQcm9wZXJ0eURCIGFsc28gY29udGFpbnMgaW5mb3JtYXRpb24gb24gYWNjZXNzaW5nIGluZGV4ZXMgdG8KKyogc2lnbmlmaWNhbnQgcG9pbnRzIGluIHRoZSBiaW5hcnkgZGF0YS48L3A+CisqIDxwPlJlc3BvbnNpYmlsaXR5IGZvciBtb2xkaW5nIHRoZSBiaW5hcnkgZGF0YSBpbnRvIG1vcmUgbWVhbmluZyBmb3JtIGxpZXMgb24KKyogPGEgaHJlZj1VQ2hhcmFjdGVyLmh0bWw+VUNoYXJhY3RlcjwvYT4uPC9wPgorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc2luY2UgcmVsZWFzZSAyLjEsIGZlYnJ1YXJ5IDFzdCAyMDAyCisqIEBkcmFmdCAyLjEKKyovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2hhcmFjdGVyUHJvcGVydHkKK3sKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIFRyaWUgZGF0YQorICAgICovCisgICAgcHVibGljIENoYXJUcmllIG1fdHJpZV87CisgICAgLyoqCisgICAgICogT3B0aW1pemF0aW9uCisgICAgICogQ2hhclRyaWUgaW5kZXggYXJyYXkKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhcltdIG1fdHJpZUluZGV4XzsKKyAgICAvKioKKyAgICAgKiBPcHRpbWl6YXRpb24KKyAgICAgKiBDaGFyVHJpZSBkYXRhIGFycmF5CisgICAgICovCisgICAgcHVibGljIGNoYXJbXSBtX3RyaWVEYXRhXzsKKyAgICAvKioKKyAgICAgKiBPcHRpbWl6YXRpb24KKyAgICAgKiBDaGFyVHJpZSBkYXRhIG9mZnNldAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbV90cmllSW5pdGlhbFZhbHVlXzsKKyAgICAvKioKKyAgICAqIFVuaWNvZGUgdmVyc2lvbgorICAgICovCisgICAgcHVibGljIFZlcnNpb25JbmZvIG1fdW5pY29kZVZlcnNpb25fOworICAgIC8qKgorICAgICogTGF0aW4gY2FwaXRhbCBsZXR0ZXIgaSB3aXRoIGRvdCBhYm92ZQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIExBVElOX0NBUElUQUxfTEVUVEVSX0lfV0lUSF9ET1RfQUJPVkVfID0gMHgxMzA7CisgICAgLyoqCisgICAgKiBMYXRpbiBzbWFsbCBsZXR0ZXIgaSB3aXRoIGRvdCBhYm92ZQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIExBVElOX1NNQUxMX0xFVFRFUl9ET1RMRVNTX0lfID0gMHgxMzE7CisgICAgLyoqCisgICAgKiBMYXRpbiBsb3dlcmNhc2UgaQorICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIExBVElOX1NNQUxMX0xFVFRFUl9JXyA9IDB4Njk7CisgICAgLyoqCisgICAgKiBDaGFyYWN0ZXIgdHlwZSBtYXNrCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUWVBFX01BU0sgPSAweDFGOworCisgICAgLy8gdXByb3BzLmggZW51bSBVUHJvcGVydHlTb3VyY2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoqKgorCisgICAgLyoqIE5vIHNvdXJjZSwgbm90IGEgc3VwcG9ydGVkIHByb3BlcnR5LiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNSQ19OT05FPTA7CisgICAgLyoqIEZyb20gdWNoYXIuYy91cHJvcHMuaWN1IG1haW4gdHJpZSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNSQ19DSEFSPTE7CisgICAgLyoqIEZyb20gdWNoYXIuYy91cHJvcHMuaWN1IHByb3BlcnRpZXMgdmVjdG9ycyB0cmllICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1JDX1BST1BTVkVDPTI7CisgICAgLyoqIEhhbmd1bF9TeWxsYWJsZV9UeXBlLCBmcm9tIHVjaGFyLmMvdXByb3BzLmljdSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNSQ19IU1Q9MzsKKyAgICAvKiogRnJvbSB1bmFtZXMuYy91bmFtZXMuaWN1ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1JDX05BTUVTPTQ7CisgICAgLyoqIEZyb20gdW5vcm0uY3BwL3Vub3JtLmljdSAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNSQ19OT1JNPTU7CisgICAgLyoqIEZyb20gdWNhc2UuYy91Y2FzZS5pY3UgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUkNfQ0FTRT02OworICAgIC8qKiBGcm9tIHViaWRpX3Byb3BzLmMvdWJpZGkuaWN1ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1JDX0JJREk9NzsKKyAgICAvKiogRnJvbSB1Y2hhci5jL3Vwcm9wcy5pY3UgbWFpbiB0cmllIGFzIHdlbGwgYXMgcHJvcGVydGllcyB2ZWN0b3JzIHRyaWUgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUkNfQ0hBUl9BTkRfUFJPUFNWRUM9ODsKKyAgICAvKiogT25lIG1vcmUgdGhhbiB0aGUgaGlnaGVzdCBVUHJvcGVydHlTb3VyY2UgKFNSQ18pIGNvbnN0YW50LiAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNSQ19DT1VOVD05OworCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogSmF2YSBmcmllbmRzIGltcGxlbWVudGF0aW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SW5kZXhEYXRhKENoYXJUcmllLkZyaWVuZEFnZW50IGZyaWVuZGFnZW50KQorICAgIHsKKyAgICAgICAgbV90cmllSW5kZXhfID0gZnJpZW5kYWdlbnQuZ2V0UHJpdmF0ZUluZGV4KCk7CisgICAgICAgIG1fdHJpZURhdGFfID0gZnJpZW5kYWdlbnQuZ2V0UHJpdmF0ZURhdGEoKTsKKyAgICAgICAgbV90cmllSW5pdGlhbFZhbHVlXyA9IGZyaWVuZGFnZW50LmdldFByaXZhdGVJbml0aWFsVmFsdWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdldHMgdGhlIHByb3BlcnR5IHZhbHVlIGF0IHRoZSBpbmRleC4KKyAgICAqIFRoaXMgaXMgb3B0aW1pemVkLgorICAgICogTm90ZSB0aGlzIGlzIGFsaXR0bGUgZGlmZmVyZW50IGZyb20gQ2hhclRyaWUgdGhlIGluZGV4IG1fdHJpZURhdGFfCisgICAgKiBpcyBuZXZlciBuZWdhdGl2ZS4KKyAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHdob3NlIHByb3BlcnR5IHZhbHVlIGlzIHRvIGJlIHJldHJpZXZlZAorICAgICogQHJldHVybiBwcm9wZXJ0eSB2YWx1ZSBvZiBjb2RlIHBvaW50CisgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFByb3BlcnR5KGludCBjaCkKKyAgICB7CisgICAgICAgIGlmIChjaCA8IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRQorICAgICAgICAgICAgfHwgKGNoID4gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFCisgICAgICAgICAgICAgICAgJiYgY2ggPCBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkpIHsKKyAgICAgICAgICAgIC8vIEJNUCBjb2RlcG9pbnQgMDAwMC4uRDdGRiBvciBEQzAwLi5GRkZGCisgICAgICAgICAgICAvLyBvcHRpbWl6ZWQKKyAgICAgICAgICAgIHRyeSB7IC8vIHVzaW5nIHRyeSBmb3IgY2ggPCAwIGlzIGZhc3RlciB0aGFuIHVzaW5nIGFuIGlmIHN0YXRlbWVudAorICAgICAgICAgICAgICAgIHJldHVybiBtX3RyaWVEYXRhX1sKKyAgICAgICAgICAgICAgICAgICAgKG1fdHJpZUluZGV4X1tjaCA+PiBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfXQorICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBUcmllLklOREVYX1NUQUdFXzJfU0hJRlRfKQorICAgICAgICAgICAgICAgICAgICArIChjaCAmIFRyaWUuSU5ERVhfU1RBR0VfM19NQVNLXyldOworICAgICAgICAgICAgfSBjYXRjaCAoQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV90cmllSW5pdGlhbFZhbHVlXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY2ggPD0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAvLyBsZWFkIHN1cnJvZ2F0ZSBEODAwLi5EQkZGCisgICAgICAgICAgICByZXR1cm4gbV90cmllRGF0YV9bCisgICAgICAgICAgICAgICAgICAgIChtX3RyaWVJbmRleF9bVHJpZS5MRUFEX0lOREVYX09GRlNFVF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChjaCA+PiBUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfKV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgVHJpZS5JTkRFWF9TVEFHRV8yX1NISUZUXykKKyAgICAgICAgICAgICAgICAgICAgKyAoY2ggJiBUcmllLklOREVYX1NUQUdFXzNfTUFTS18pXTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2ggPD0gVVRGMTYuQ09ERVBPSU5UX01BWF9WQUxVRSkgeworICAgICAgICAgICAgLy8gc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50IDEwMDAwLi4xMEZGRkYKKyAgICAgICAgICAgIC8vIGxvb2sgYXQgdGhlIGNvbnN0cnVjdGlvbiBvZiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgICAgIC8vIHRyYWlsIGZvcm1zIHRoZSBlbmRzIG9mIGl0LgorICAgICAgICAgICAgcmV0dXJuIG1fdHJpZV8uZ2V0U3Vycm9nYXRlVmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShjaCAmIFRyaWUuU1VSUk9HQVRFX01BU0tfKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gY2ggaXMgb3V0IG9mIGJvdW5kcworICAgICAgICAvLyByZXR1cm4gbV9kYXRhT2Zmc2V0XyBpZiB0aGVyZSBpcyBhbiBlcnJvciwgaW4gdGhpcyBjYXNlIHdlIHJldHVybgorICAgICAgICAvLyB0aGUgZGVmYXVsdCB2YWx1ZTogbV9pbml0aWFsVmFsdWVfCisgICAgICAgIC8vIHdlIGNhbm5vdCBhc3N1bWUgdGhhdCBtX2luaXRpYWxWYWx1ZV8gaXMgYXQgb2Zmc2V0IDAKKyAgICAgICAgLy8gdGhpcyBpcyBmb3Igb3B0aW1pemF0aW9uLgorICAgICAgICByZXR1cm4gbV90cmllSW5pdGlhbFZhbHVlXzsKKworICAgICAgICAvLyB0aGlzIGFsbCBpcyBhbiBpbmxpbmVkIGZvcm0gb2YgcmV0dXJuIG1fdHJpZV8uZ2V0Q29kZVBvaW50VmFsdWUoY2gpOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0dGluZyB0aGUgc2lnbmVkIG51bWVyaWMgdmFsdWUgb2YgYSBjaGFyYWN0ZXIgZW1iZWRkZWQgaW4gdGhlIHByb3BlcnR5CisgICAgKiBhcmd1bWVudAorICAgICogQHBhcmFtIHByb3AgdGhlIGNoYXJhY3RlcgorICAgICogQHJldHVybiBzaWduZWQgbnVtYmVyaWMgdmFsdWUKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldFNpZ25lZFZhbHVlKGludCBwcm9wKQorICAgIHsKKyAgICAgICAgcmV0dXJuICgoc2hvcnQpcHJvcCA+PiBWQUxVRV9TSElGVF8pOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0dGluZyB0aGUgdW5zaWduZWQgbnVtZXJpYyB2YWx1ZSBvZiBhIGNoYXJhY3RlciBlbWJlZGRlZCBpbiB0aGUgcHJvcGVydHkKKyAgICAqIGFyZ3VtZW50CisgICAgKiBAcGFyYW0gcHJvcCB0aGUgY2hhcmFjdGVyCisgICAgKiBAcmV0dXJuIHVuc2lnbmVkIG51bWJlcmljIHZhbHVlCisgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0VW5zaWduZWRWYWx1ZShpbnQgcHJvcCkKKyAgICB7CisgICAgICAgIHJldHVybiAocHJvcCA+PiBWQUxVRV9TSElGVF8pICYgVU5TSUdORURfVkFMVUVfTUFTS19BRlRFUl9TSElGVF87CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyogaW50ZXJuYWwgbnVtZXJpYyBwc2V1ZG8tdHlwZXMgZm9yIHNwZWNpYWwgZW5jb2RpbmdzIG9mIG51bWVyaWMgdmFsdWVzICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlRfRlJBQ1RJT049NDsgLyogPT1VQ2hhcmFjdGVyLk51bWVyaWNUeXBlLkNPVU5ULCBtdXN0IG5vdCBjaGFuZ2UgdW5sZXNzIGJpbmFyeSBmb3JtYXQgdmVyc2lvbiBjaGFuZ2VzICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlRfTEFSR0U9NTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOVF9DT1VOVD02OworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdW5pY29kZSBhZGRpdGlvbmFsIHByb3BlcnRpZXMuCisgICAgICogQyB2ZXJzaW9uIGdldFVuaWNvZGVQcm9wZXJ0aWVzLgorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQgY29kZXBvaW50IHdob3NlIGFkZGl0aW9uYWwgcHJvcGVydGllcyBpcyB0byBiZQorICAgICAqICAgICAgICAgICAgICAgICAgcmV0cmlldmVkCisgICAgICogQHBhcmFtIGNvbHVtbgorICAgICAqIEByZXR1cm4gdW5pY29kZSBwcm9wZXJ0aWVzCisgICAgICovCisgICAgICAgcHVibGljIGludCBnZXRBZGRpdGlvbmFsKGludCBjb2RlcG9pbnQsIGludCBjb2x1bW4pIHsKKyAgICAgICAgaWYgKGNvbHVtbiA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIGdldFByb3BlcnR5KGNvZGVwb2ludCk7CisgICAgICAgIH0KKyAgICAgICAgICAgaWYgKGNvbHVtbiA8IDAgfHwgY29sdW1uID49IG1fYWRkaXRpb25hbENvbHVtbnNDb3VudF8pIHsKKyAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgfQorICAgICAgIHJldHVybiBtX2FkZGl0aW9uYWxWZWN0b3JzX1sKKyAgICAgICAgICAgICAgICAgICAgIG1fYWRkaXRpb25hbFRyaWVfLmdldENvZGVQb2ludFZhbHVlKGNvZGVwb2ludCkgKyBjb2x1bW5dOworICAgICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBpbnQgTVlfTUFTSyA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5UWVBFX01BU0sKKyAgICAgICAgJiAoKDE8PFVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSKSB8CisgICAgICAgICAgICAoMTw8VUNoYXJhY3RlckNhdGVnb3J5LkxPV0VSQ0FTRV9MRVRURVIpIHwKKyAgICAgICAgICAgICgxPDxVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUikgfAorICAgICAgICAgICAgKDE8PFVDaGFyYWN0ZXJDYXRlZ29yeS5NT0RJRklFUl9MRVRURVIpIHwKKyAgICAgICAgICAgICgxPDxVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTEVUVEVSKSk7CisKKworICAgICAgIC8qKgorICAgICAqIDxwPkdldCB0aGUgImFnZSIgb2YgdGhlIGNvZGUgcG9pbnQuPC9wPgorICAgICAqIDxwPlRoZSAiYWdlIiBpcyB0aGUgVW5pY29kZSB2ZXJzaW9uIHdoZW4gdGhlIGNvZGUgcG9pbnQgd2FzIGZpcnN0CisgICAgICogZGVzaWduYXRlZCAoYXMgYSBub24tY2hhcmFjdGVyIG9yIGZvciBQcml2YXRlIFVzZSkgb3IgYXNzaWduZWQgYQorICAgICAqIGNoYXJhY3Rlci48L3A+CisgICAgICogPHA+VGhpcyBjYW4gYmUgdXNlZnVsIHRvIGF2b2lkIGVtaXR0aW5nIGNvZGUgcG9pbnRzIHRvIHJlY2VpdmluZworICAgICAqIHByb2Nlc3NlcyB0aGF0IGRvIG5vdCBhY2NlcHQgbmV3ZXIgY2hhcmFjdGVycy48L3A+CisgICAgICogPHA+VGhlIGRhdGEgaXMgZnJvbSB0aGUgVUNEIGZpbGUgRGVyaXZlZEFnZS50eHQuPC9wPgorICAgICAqIDxwPlRoaXMgQVBJIGRvZXMgbm90IGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUgY29kZXBvaW50LjwvcD4KKyAgICAgKiBAcGFyYW0gY29kZXBvaW50IFRoZSBjb2RlIHBvaW50LgorICAgICAqIEByZXR1cm4gdGhlIFVuaWNvZGUgdmVyc2lvbiBudW1iZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBWZXJzaW9uSW5mbyBnZXRBZ2UoaW50IGNvZGVwb2ludCkKKyAgICB7CisgICAgICAgIGludCB2ZXJzaW9uID0gZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIDApID4+IEFHRV9TSElGVF87CisgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZXJzaW9uID4+IEZJUlNUX05JQkJMRV9TSElGVF8pICYgTEFTVF9OSUJCTEVfTUFTS18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uICYgTEFTVF9OSUJCTEVfTUFTS18sIDAsIDApOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgVU5TSUdORURfSU5UX01BU0sgPSAweGZmZmZmZmZmTDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHQ19DTl9NQVNLID0gZ2V0TWFzayhVQ2hhcmFjdGVyLlVOQVNTSUdORUQpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHQ19DQ19NQVNLID0gZ2V0TWFzayhVQ2hhcmFjdGVyLkNPTlRST0wpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHQ19DU19NQVNLID0gZ2V0TWFzayhVQ2hhcmFjdGVyLlNVUlJPR0FURSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdDX1pTX01BU0sgPSBnZXRNYXNrKFVDaGFyYWN0ZXIuU1BBQ0VfU0VQQVJBVE9SKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR0NfWkxfTUFTSyA9IGdldE1hc2soVUNoYXJhY3Rlci5MSU5FX1NFUEFSQVRPUik7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdDX1pQX01BU0sgPSBnZXRNYXNrKFVDaGFyYWN0ZXIuUEFSQUdSQVBIX1NFUEFSQVRPUik7CisgICAgLyoqIE1hc2sgY29uc3RhbnQgZm9yIG11bHRpcGxlIFVDaGFyQ2F0ZWdvcnkgYml0cyAoWiBTZXBhcmF0b3JzKS4gKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR0NfWl9NQVNLID0gR0NfWlNfTUFTS3xHQ19aTF9NQVNLfEdDX1pQX01BU0s7CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgYyBpcyBpbgorICAgICAqIFteXHB7c3BhY2V9XHB7Z2M9Q29udHJvbH1ccHtnYz1TdXJyb2dhdGV9XHB7Z2M9VW5hc3NpZ25lZH1dCisgICAgICogd2l0aCBzcGFjZT1ccHtXaGl0ZXNwYWNlfSBhbmQgQ29udHJvbD1DYy4KKyAgICAgKiBJbXBsZW1lbnRzIFVDSEFSX1BPU0lYX0dSQVBILgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNncmFwaFBPU0lYKGludCBjKSB7CisgICAgICAgIC8qIFxwe3NwYWNlfVxwe2djPUNvbnRyb2x9ID09IFxwe2djPVp9XHB7Q29udHJvbH0gKi8KKyAgICAgICAgLyogY29tcGFyaW5nID09MCByZXR1cm5zIEZBTFNFIGZvciB0aGUgY2F0ZWdvcmllcyBtZW50aW9uZWQgKi8KKyAgICAgICAgcmV0dXJuIChnZXRNYXNrKFVDaGFyYWN0ZXIuZ2V0VHlwZShjKSkmCisgICAgICAgICAgICAgICAgKEdDX0NDX01BU0t8R0NfQ1NfTUFTS3xHQ19DTl9NQVNLfEdDX1pfTUFTSykpCisgICAgICAgICAgICAgICA9PTA7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgQmluYXJ5UHJvcGVydGllc3sKKyAgICAgICBpbnQgY29sdW1uOworICAgICAgIGxvbmcgbWFzazsKKyAgICAgICBwdWJsaWMgQmluYXJ5UHJvcGVydGllcyhpbnQgY29sdW1uLGxvbmcgbWFzayl7CisgICAgICAgICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjsKKyAgICAgICAgICAgICAgIHRoaXMubWFzayAgPSBtYXNrOworICAgICAgIH0KKyAgIH0KKyAgIEJpbmFyeVByb3BlcnRpZXNbXSBiaW5Qcm9wcz17CisgICAgICAgLyoKKyAgICAgICAgKiBjb2x1bW4gYW5kIG1hc2sgdmFsdWVzIGZvciBiaW5hcnkgcHJvcGVydGllcyBmcm9tIHVfZ2V0VW5pY29kZVByb3BlcnRpZXMoKS4KKyAgICAgICAgKiBNdXN0IGJlIGluIG9yZGVyIG9mIGNvcnJlc3BvbmRpbmcgVVByb3BlcnR5LAorICAgICAgICAqIGFuZCB0aGVyZSBtdXN0IGJlIGV4YWNseSBvbmUgZW50cnkgcGVyIGJpbmFyeSBVUHJvcGVydHkuCisgICAgICAgICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IEFMUEhBQkVUSUNfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBBU0NJSV9IRVhfRElHSVRfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfQklESSwgICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfQklESV9DT05UUk9MICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19CSURJLCAgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9CSURJX01JUlJPUkVEICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IERBU0hfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBERUZBVUxUX0lHTk9SQUJMRV9DT0RFX1BPSU5UX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgREVQUkVDQVRFRF9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IERJQUNSSVRJQ19QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IEVYVEVOREVSX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX05PUk0sICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX0ZVTExfQ09NUE9TSVRJT05fRVhDTFVTSU9OICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IEdSQVBIRU1FX0JBU0VfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBHUkFQSEVNRV9FWFRFTkRfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBHUkFQSEVNRV9MSU5LX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgSEVYX0RJR0lUX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgSFlQSEVOX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgSURfQ09OVElOVUVfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBJRF9TVEFSVF9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IElERU9HUkFQSElDX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgSURTX0JJTkFSWV9PUEVSQVRPUl9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IElEU19UUklOQVJZX09QRVJBVE9SX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX0JJREksICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX0pPSU5fQ09OVFJPTCAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBMT0dJQ0FMX09SREVSX0VYQ0VQVElPTl9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19DQVNFLCAgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9MT1dFUkNBU0UgKi8KKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgTUFUSF9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IE5PTkNIQVJBQ1RFUl9DT0RFX1BPSU5UX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgUVVPVEFUSU9OX01BUktfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMSwgICAgICAgICAgICAgICAgKCAgMSA8PCBSQURJQ0FMX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX0NBU0UsICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX1NPRlRfRE9UVEVEICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IFRFUk1JTkFMX1BVTkNUVUFUSU9OX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgVU5JRklFRF9JREVPR1JBUEhfUFJPUEVSVFlfKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfQ0FTRSwgICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfVVBQRVJDQVNFICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAxLCAgICAgICAgICAgICAgICAoICAxIDw8IFdISVRFX1NQQUNFX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgWElEX0NPTlRJTlVFX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggIDEsICAgICAgICAgICAgICAgICggIDEgPDwgWElEX1NUQVJUX1BST1BFUlRZXykgKSwKKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX0NBU0UsICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX0NBU0VfU0VOU0lUSVZFICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAyLCAgICAgICAgICAgICAgICAoICAxIDw8IFYyX1NfVEVSTV9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAyLCAgICAgICAgICAgICAgICAoICAxIDw8IFYyX1ZBUklBVElPTl9TRUxFQ1RPUl9QUk9QRVJUWV8pICksCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19OT1JNLCAgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9ORkRfSU5FUlQgKi8KKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX05PUk0sICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX05GS0RfSU5FUlQgKi8KKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX05PUk0sICAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX05GQ19JTkVSVCAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfTk9STSwgICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfTkZLQ19JTkVSVCAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfTk9STSwgICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfU0VHTUVOVF9TVEFSVEVSICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoICAyLCAgICAgICAgICAgICAgICAoICAxIDw8IFYyX1BBVFRFUk5fU1lOVEFYKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCAgMiwgICAgICAgICAgICAgICAgKCAgMSA8PCBWMl9QQVRURVJOX1dISVRFX1NQQUNFKSApLAorICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfQ0hBUl9BTkRfUFJPUFNWRUMsICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfUE9TSVhfQUxOVU0gKi8KKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX0NIQVIsICAwICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX1BPU0lYX0JMQU5LICovCisgICAgICAgbmV3IEJpbmFyeVByb3BlcnRpZXMoIFNSQ19DSEFSLCAgMCApLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ0hBUl9QT1NJWF9HUkFQSCAqLworICAgICAgIG5ldyBCaW5hcnlQcm9wZXJ0aWVzKCBTUkNfQ0hBUiwgIDAgKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNIQVJfUE9TSVhfUFJJTlQgKi8KKyAgICAgICBuZXcgQmluYXJ5UHJvcGVydGllcyggU1JDX0NIQVIsICAwICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDSEFSX1BPU0lYX1hESUdJVCAqLworICAgfTsKKworCisgICAgLyoqCisgICAgICogPHA+Q2hlY2sgYSBiaW5hcnkgVW5pY29kZSBwcm9wZXJ0eSBmb3IgYSBjb2RlIHBvaW50LjwvcD4KKyAgICAgKiA8cD5Vbmljb2RlLCBlc3BlY2lhbGx5IGluIHZlcnNpb24gMy4yLCBkZWZpbmVzIG1hbnkgbW9yZSBwcm9wZXJ0aWVzCisgICAgICogdGhhbiB0aGUgb3JpZ2luYWwgc2V0IGluIFVuaWNvZGVEYXRhLnR4dC48L3A+CisgICAgICogPHA+VGhpcyBBUEkgaXMgaW50ZW5kZWQgdG8gcmVmbGVjdCBVbmljb2RlIHByb3BlcnRpZXMgYXMgZGVmaW5lZCBpbgorICAgICAqIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSAoVUNEKSBhbmQgVW5pY29kZSBUZWNobmljYWwgUmVwb3J0cworICAgICAqIChVVFIpLjwvcD4KKyAgICAgKiA8cD5Gb3IgZGV0YWlscyBhYm91dCB0aGUgcHJvcGVydGllcyBzZWUKKyAgICAgKiA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmcvPmh0dHA6Ly93d3cudW5pY29kZS5vcmcvPC9hPi48L3A+CisgICAgICogPHA+Rm9yIG5hbWVzIG9mIFVuaWNvZGUgcHJvcGVydGllcyBzZWUgdGhlIFVDRCBmaWxlCisgICAgICogUHJvcGVydHlBbGlhc2VzLnR4dC48L3A+CisgICAgICogPHA+VGhpcyBBUEkgZG9lcyBub3QgY2hlY2sgdGhlIHZhbGlkaXR5IG9mIHRoZSBjb2RlcG9pbnQuPC9wPgorICAgICAqIDxwPkltcG9ydGFudDogSWYgSUNVIGlzIGJ1aWx0IHdpdGggVUNEIGZpbGVzIGZyb20gVW5pY29kZSB2ZXJzaW9ucworICAgICAqIGJlbG93IDMuMiwgdGhlbiBwcm9wZXJ0aWVzIG1hcmtlZCB3aXRoICJuZXciIGFyZSBub3Qgb3IKKyAgICAgKiBub3QgZnVsbHkgYXZhaWxhYmxlLjwvcD4KKyAgICAgKiBAcGFyYW0gY29kZXBvaW50IENvZGUgcG9pbnQgdG8gdGVzdC4KKyAgICAgKiBAcGFyYW0gcHJvcGVydHkgc2VsZWN0b3IgY29uc3RhbnQgZnJvbSBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eSwKKyAgICAgKiAgICAgICAgaWRlbnRpZmllcyB3aGljaCBiaW5hcnkgcHJvcGVydHkgdG8gY2hlY2suCisgICAgICogQHJldHVybiB0cnVlIG9yIGZhbHNlIGFjY29yZGluZyB0byB0aGUgYmluYXJ5IFVuaWNvZGUgcHJvcGVydHkgdmFsdWUKKyAgICAgKiAgICAgICAgIGZvciBjaC4gQWxzbyBmYWxzZSBpZiBwcm9wZXJ0eSBpcyBvdXQgb2YgYm91bmRzIG9yIGlmIHRoZQorICAgICAqICAgICAgICAgVW5pY29kZSB2ZXJzaW9uIGRvZXMgbm90IGhhdmUgZGF0YSBmb3IgdGhlIHByb3BlcnR5IGF0IGFsbCwgb3IKKyAgICAgKiAgICAgICAgIG5vdCBmb3IgdGhpcyBjb2RlIHBvaW50LgorICAgICAqIEBzZWUgY29tLmlibS5pY3UubGFuZy5VUHJvcGVydHkKKyAgICAgKiBAZHJhZnQgSUNVIDIuMQorICAgICAqLworCisgICAgcHVibGljIGJvb2xlYW4gaGFzQmluYXJ5UHJvcGVydHkoaW50IGNvZGVwb2ludCwgaW50IHByb3BlcnR5KQorICAgIHsKKyAgICAgICAgIGlmKHByb3BlcnR5IDxVUHJvcGVydHkuQklOQVJZX1NUQVJUIHx8IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQ8PXByb3BlcnR5KSB7CisgICAgICAgICAgICAvLyBub3QgYSBrbm93biBiaW5hcnkgcHJvcGVydHkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvbmcgbWFzaz1iaW5Qcm9wc1twcm9wZXJ0eV0ubWFzazsKKyAgICAgICAgICAgIGludCBjb2x1bW49YmluUHJvcHNbcHJvcGVydHldLmNvbHVtbjsKKyAgICAgICAgICAgIGlmKG1hc2shPTApIHsKKyAgICAgICAgICAgICAgICAvLyBzeXN0ZW1hdGljLCBkaXJlY3RseSBzdG9yZWQgcHJvcGVydGllcworICAgICAgICAgICAgICAgIHJldHVybiAoKFVOU0lHTkVEX0lOVF9NQVNLICYgZ2V0QWRkaXRpb25hbChjb2RlcG9pbnQsIGNvbHVtbikpICYgbWFzaykhPTA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmKGNvbHVtbj09U1JDX0NBU0UpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogY2FzZSBtYXBwaW5nIHByb3BlcnRpZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgVUNhc2VQcm9wcyBjc3A7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjc3AgPSBVQ2FzZVByb3BzLmdldFNpbmdsZXRvbigpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoKHByb3BlcnR5KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkxPV0VSQ0FTRToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2FzZVByb3BzLkxPV0VSPT1jc3AuZ2V0VHlwZShjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5VUFBFUkNBU0U6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNhc2VQcm9wcy5VUFBFUj09Y3NwLmdldFR5cGUoY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU09GVF9ET1RURUQ6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3NwLmlzU29mdERvdHRlZChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5DQVNFX1NFTlNJVElWRToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjc3AuaXNDYXNlU2Vuc2l0aXZlKGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjb2x1bW49PVNSQ19OT1JNKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG5vcm1hbGl6YXRpb24gcHJvcGVydGllcyBmcm9tIHVub3JtLmljdSAqLworICAgICAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcGVydHkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuRlVMTF9DT01QT1NJVElPTl9FWENMVVNJT046CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuaXNGdWxsQ29tcG9zaXRpb25FeGNsdXNpb24oY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZEX0lORVJUOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShjb2RlcG9pbnQsIE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZLRF9JTkVSVDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVyLmlzTkZTa2lwcGFibGUoY29kZXBvaW50LCBOb3JtYWxpemVyLk5GS0QpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ORkNfSU5FUlQ6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplci5pc05GU2tpcHBhYmxlKGNvZGVwb2ludCwgTm9ybWFsaXplci5ORkMpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ORktDX0lORVJUOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXIuaXNORlNraXBwYWJsZShjb2RlcG9pbnQsIE5vcm1hbGl6ZXIuTkZLQyk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlNFR01FTlRfU1RBUlRFUjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc0Nhbm9uU2FmZVN0YXJ0KGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjb2x1bW49PVNSQ19CSURJKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGJpZGkvc2hhcGluZyBwcm9wZXJ0aWVzICovCisJCQkJCVVCaURpUHJvcHMgYmRwOworCQkJCQl0cnkgeworCQkJCQkJYmRwID0gVUJpRGlQcm9wcy5nZXRTaW5nbGV0b24oKTsKKwkJCQkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworCQkJCQkJcmV0dXJuIGZhbHNlOworCQkJCQl9CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaChwcm9wZXJ0eSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CSURJX01JUlJPUkVEOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJkcC5pc01pcnJvcmVkKGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkJJRElfQ09OVFJPTDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiZHAuaXNCaWRpQ29udHJvbChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5KT0lOX0NPTlRST0w6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmRwLmlzSm9pbkNvbnRyb2woY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGNvbHVtbj09U1JDX0NIQVIpIHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoKHByb3BlcnR5KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlBPU0lYX0JMQU5LOgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gImhvcml6b250YWwgc3BhY2UiCisgICAgICAgICAgICAgICAgICAgICAgICBpZihjb2RlcG9pbnQ8PTB4OWYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29kZXBvaW50PT05IHx8IGNvZGVwb2ludD09MHgyMDsgLyogVEFCIG9yIFNQQUNFICovCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFpzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0VHlwZShjb2RlcG9pbnQpPT1VQ2hhcmFjdGVyLlNQQUNFX1NFUEFSQVRPUjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuUE9TSVhfR1JBUEg6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXNncmFwaFBPU0lYKGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlBPU0lYX1BSSU5UOgorICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIENoZWNrcyBpZiBjb2RlcG9pbnQgaXMgaW4gXHB7Z3JhcGh9XHB7Ymxhbmt9IC0gXHB7Y250cmx9LgorICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIFRoZSBvbmx5IGNudHJsIGNoYXJhY3RlciBpbiBncmFwaCtibGFuayBpcyBUQUIgKGluIGJsYW5rKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqIEhlcmUgd2UgaW1wbGVtZW50IChibGFuay1UQUIpPVpzIGluc3RlYWQgb2YgY2FsbGluZyB1X2lzYmxhbmsoKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChVQ2hhcmFjdGVyLmdldFR5cGUoY29kZXBvaW50KT09VUNoYXJhY3Rlci5TUEFDRV9TRVBBUkFUT1IpIHx8IGlzZ3JhcGhQT1NJWChjb2RlcG9pbnQpOworICAgICAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5QT1NJWF9YRElHSVQ6CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBjaGVjayBBU0NJSSBhbmQgRnVsbHdpZHRoIEFTQ0lJIGEtZkEtRiAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvZGVwb2ludDw9MHg2NiAmJiBjb2RlcG9pbnQ+PTB4NDEgJiYgKGNvZGVwb2ludDw9MHg0NiB8fCBjb2RlcG9pbnQ+PTB4NjEpKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb2RlcG9pbnQ+PTB4ZmYyMSAmJiBjb2RlcG9pbnQ8PTB4ZmY0NiAmJiAoY29kZXBvaW50PD0weGZmMjYgfHwgY29kZXBvaW50Pj0weGZmNDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRUeXBlKGNvZGVwb2ludCk9PVVDaGFyYWN0ZXIuREVDSU1BTF9ESUdJVF9OVU1CRVI7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjb2x1bW49PVNSQ19DSEFSX0FORF9QUk9QU1ZFQykgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcGVydHkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuUE9TSVhfQUxOVU06CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5pc1VBbHBoYWJldGljKGNvZGVwb2ludCkgfHwgVUNoYXJhY3Rlci5pc0RpZ2l0KGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGludCBnZXRTb3VyY2UoaW50IHdoaWNoKSB7CisgICAgICAgIGlmKHdoaWNoPFVQcm9wZXJ0eS5CSU5BUllfU1RBUlQpIHsKKyAgICAgICAgICAgIHJldHVybiBTUkNfTk9ORTsgLyogdW5kZWZpbmVkICovCisgICAgICAgIH0gZWxzZSBpZih3aGljaDxVUHJvcGVydHkuQklOQVJZX0xJTUlUKSB7CisgICAgICAgICAgICBpZihiaW5Qcm9wc1t3aGljaF0ubWFzayE9MCkgeworICAgICAgICAgICAgICAgIHJldHVybiBTUkNfUFJPUFNWRUM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBiaW5Qcm9wc1t3aGljaF0uY29sdW1uOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYod2hpY2g8VVByb3BlcnR5LklOVF9TVEFSVCkgeworICAgICAgICAgICAgcmV0dXJuIFNSQ19OT05FOyAvKiB1bmRlZmluZWQgKi8KKyAgICAgICAgfSBlbHNlIGlmKHdoaWNoPFVQcm9wZXJ0eS5JTlRfTElNSVQpIHsKKyAgICAgICAgICAgIHN3aXRjaCh3aGljaCkgeworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWToKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5VTUVSSUNfVFlQRToKKyAgICAgICAgICAgICAgICByZXR1cm4gU1JDX0NIQVI7CisKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFOgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfSFNUOworCisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZEX1FVSUNLX0NIRUNLOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZLRF9RVUlDS19DSEVDSzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GQ19RVUlDS19DSEVDSzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GS0NfUVVJQ0tfQ0hFQ0s6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MRUFEX0NBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1M6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5UUkFJTF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTOgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfTk9STTsKKworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQklESV9DTEFTUzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkpPSU5JTkdfR1JPVVA6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5KT0lOSU5HX1RZUEU6CisgICAgICAgICAgICAgICAgcmV0dXJuIFNSQ19CSURJOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfUFJPUFNWRUM7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZih3aGljaDxVUHJvcGVydHkuU1RSSU5HX1NUQVJUKSB7CisgICAgICAgICAgICBzd2l0Y2god2hpY2gpIHsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5VTUVSSUNfVkFMVUU6CisgICAgICAgICAgICAgICAgcmV0dXJuIFNSQ19DSEFSOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfTk9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmKHdoaWNoPFVQcm9wZXJ0eS5TVFJJTkdfTElNSVQpIHsKKyAgICAgICAgICAgIHN3aXRjaCh3aGljaCkgeworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQUdFOgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfUFJPUFNWRUM7CisKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkJJRElfTUlSUk9SSU5HX0dMWVBIOgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfQklESTsKKworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQ0FTRV9GT0xESU5HOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTE9XRVJDQVNFX01BUFBJTkc6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TSU1QTEVfQ0FTRV9GT0xESU5HOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX0xPV0VSQ0FTRV9NQVBQSU5HOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1RJVExFQ0FTRV9NQVBQSU5HOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0lNUExFX1VQUEVSQ0FTRV9NQVBQSU5HOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuVElUTEVDQVNFX01BUFBJTkc6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5VUFBFUkNBU0VfTUFQUElORzoKKyAgICAgICAgICAgICAgICByZXR1cm4gU1JDX0NBU0U7CisKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LklTT19DT01NRU5UOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkFNRToKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVOSUNPREVfMV9OQU1FOgorICAgICAgICAgICAgICAgIHJldHVybiBTUkNfTkFNRVM7CisKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIFNSQ19OT05FOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIFNSQ19OT05FOyAvKiB1bmRlZmluZWQgKi8KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogRm9ybXMgYSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgZnJvbSB0aGUgYXJndW1lbnQgY2hhcmFjdGVyPGJyPgorICAgICogTm90ZSB0aGlzIGlzIGZvciBpbnRlcm5hbCB1c2UgaGVuY2Ugbm8gY2hlY2tzIGZvciB0aGUgdmFsaWRpdHkgb2YgdGhlCisgICAgKiBzdXJyb2dhdGUgY2hhcmFjdGVycyBhcmUgZG9uZQorICAgICogQHBhcmFtIGxlYWQgbGVhZCBzdXJyb2dhdGUgY2hhcmFjdGVyCisgICAgKiBAcGFyYW0gdHJhaWwgdHJhaWxpbmcgc3Vycm9nYXRlIGNoYXJhY3RlcgorICAgICogQHJldHVybiBjb2RlIHBvaW50IG9mIHRoZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0UmF3U3VwcGxlbWVudGFyeShjaGFyIGxlYWQsIGNoYXIgdHJhaWwpCisgICAgeworICAgICAgICByZXR1cm4gKGxlYWQgPDwgTEVBRF9TVVJST0dBVEVfU0hJRlRfKSArIHRyYWlsICsgU1VSUk9HQVRFX09GRlNFVF87CisgICAgfQorCisgICAgLyoqCisgICAgKiBMb2FkcyB0aGUgcHJvcGVydHkgZGF0YSBhbmQgaW5pdGlhbGl6ZSB0aGUgVUNoYXJhY3RlclByb3BlcnR5IGluc3RhbmNlLgorICAgICogQHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gd2hlbiBkYXRhIGlzIG1pc3Npbmcgb3IgZGF0YSBoYXMgYmVlbiBjb3JydXB0ZWQKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVUNoYXJhY3RlclByb3BlcnR5IGdldEluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIGlmKElOU1RBTkNFXyA9PSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIElOU1RBTkNFXyA9IG5ldyBVQ2hhcmFjdGVyUHJvcGVydHkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCksIiIsIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBJTlNUQU5DRV87CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVW5pY29kZSBwcm9wZXJ0eSBuYW1lcyBhbmQgcHJvcGVydHkgdmFsdWUgbmFtZXMgYXJlIGNvbXBhcmVkCisgICAgICogImxvb3NlbHkiLiBQcm9wZXJ0eVtWYWx1ZV1BbGlhc2VzLnR4dCBzYXk6CisgICAgICogPHF1b3RlPgorICAgICAqICAgIldpdGggbG9vc2UgbWF0Y2hpbmcgb2YgcHJvcGVydHkgbmFtZXMsIHRoZSBjYXNlIGRpc3RpbmN0aW9ucywKKyAgICAgKiAgICB3aGl0ZXNwYWNlLCBhbmQgJ18nIGFyZSBpZ25vcmVkLiIKKyAgICAgKiA8L3F1b3RlPgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGRvZXMganVzdCB0aGF0LCBmb3IgQVNDSUkgKGNoYXIgKikgbmFtZSBzdHJpbmdzLgorICAgICAqIEl0IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gdWNudl9jb21wYXJlTmFtZXMoKSBidXQgYWxzbyBpZ25vcmVzCisgICAgICogQVNDSUkgV2hpdGVfU3BhY2UgY2hhcmFjdGVycyAoVSswMDA5Li5VKzAwMGQpLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gbmFtZTEgbmFtZSB0byBjb21wYXJlCisgICAgICogQHBhcmFtIG5hbWUyIG5hbWUgdG8gY29tcGFyZQorICAgICAqIEByZXR1cm4gMCBpZiBuYW1lcyBhcmUgZXF1YWwsIDwgMCBpZiBuYW1lMSBpcyBsZXNzIHRoYW4gbmFtZTIgYW5kID4gMAorICAgICAqICAgICAgICAgaWYgbmFtZTEgaXMgZ3JlYXRlciB0aGFuIG5hbWUyLgorICAgICAqLworICAgIC8qIHRvIGJlIGltcGxlbWVudGVkIGluIDIuNAorICAgICAqIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmVQcm9wZXJ0eU5hbWVzKFN0cmluZyBuYW1lMSwgU3RyaW5nIG5hbWUyKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGludCBpMSA9IDA7CisgICAgICAgIGludCBpMiA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBjaGFyIGNoMSA9IDA7CisgICAgICAgICAgICBjaGFyIGNoMiA9IDA7CisgICAgICAgICAgICAvLyBJZ25vcmUgZGVsaW1pdGVycyAnLScsICdfJywgYW5kIEFTQ0lJIFdoaXRlX1NwYWNlCisgICAgICAgICAgICBpZiAoaTEgPCBuYW1lMS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGNoMSA9IG5hbWUxLmNoYXJBdChpMSArKyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAoY2gxID09ICctJyB8fCBjaDEgPT0gJ18nIHx8IGNoMSA9PSAnICcgfHwgY2gxID09ICdcdCcKKyAgICAgICAgICAgICAgICAgICB8fCBjaDEgPT0gJ1xuJyAvLyBzeW53ZWUgd2hhdCBpcyB8fCBjaDEgPT0gJ1x2JworICAgICAgICAgICAgICAgICAgIHx8IGNoMSA9PSAnXGYnIHx8IGNoMT09J1xyJykgeworICAgICAgICAgICAgICAgIGlmIChpMSA8IG5hbWUxLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNoMSA9IG5hbWUxLmNoYXJBdChpMSArKyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjaDEgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpMiA8IG5hbWUyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgY2gyID0gbmFtZTIuY2hhckF0KGkyICsrKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlIChjaDIgPT0gJy0nIHx8IGNoMiA9PSAnXycgfHwgY2gyID09ICcgJyB8fCBjaDIgPT0gJ1x0JworICAgICAgICAgICAgICAgICAgIHx8IGNoMiA9PSAnXG4nIC8vIHN5bndlZSB3aGF0IGlzIHx8IGNoMSA9PSAnXHYnCisgICAgICAgICAgICAgICAgICAgfHwgY2gyID09ICdcZicgfHwgY2gyPT0nXHInKSB7CisgICAgICAgICAgICAgICAgaWYgKGkyIDwgbmFtZTIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2gyID0gbmFtZTIuY2hhckF0KGkyICsrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNoMiA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJZiB3ZSByZWFjaCB0aGUgZW5kcyBvZiBib3RoIHN0cmluZ3MgdGhlbiB0aGV5IG1hdGNoCisgICAgICAgICAgICBpZiAoY2gxID09IDAgJiYgY2gyID09IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uCisgICAgICAgICAgICBpZiAoY2gxICE9IGNoMikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IENoYXJhY3Rlci50b0xvd2VyQ2FzZShjaDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIENoYXJhY3Rlci50b0xvd2VyQ2FzZShjaDIpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAqLworCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHRoZSBhcmd1bWVudCBjIGlzIHRvIGJlIHRyZWF0ZWQgYXMgYSB3aGl0ZSBzcGFjZSBpbiBJQ1UKKyAgICAgKiBydWxlcy4gVXN1YWxseSBJQ1UgcnVsZSB3aGl0ZSBzcGFjZXMgYXJlIGlnbm9yZWQgdW5sZXNzIHF1b3RlZC4KKyAgICAgKiBFcXVpdmFsZW50IHRvIHRlc3QgZm9yIFBhdHRlcm5fV2hpdGVfU3BhY2UgVW5pY29kZSBwcm9wZXJ0eS4KKyAgICAgKiBTdGFibGUgc2V0IG9mIGNoYXJhY3RlcnMsIHdvbid0IGNoYW5nZS4KKyAgICAgKiBTZWUgVUFYICMzMSBJZGVudGlmaWVyIGFuZCBQYXR0ZXJuIFN5bnRheDogaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMzEvCisgICAgICogQHBhcmFtIGMgY29kZXBvaW50IHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIGMgaXMgYSBJQ1Ugd2hpdGUgc3BhY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNSdWxlV2hpdGVTcGFjZShpbnQgYykKKyAgICB7CisgICAgICAgIC8qICJ3aGl0ZSBzcGFjZSIgaW4gdGhlIHNlbnNlIG9mIElDVSBydWxlIHBhcnNlcnMKKyAgICAgICAgICAgVGhpcyBpcyBhIEZJWEVEIExJU1QgdGhhdCBpcyBOT1QgREVQRU5ERU5UIE9OIFVOSUNPREUgUFJPUEVSVElFUy4KKyAgICAgICAgICAgU2VlIFVBWCAjMzEgSWRlbnRpZmllciBhbmQgUGF0dGVybiBTeW50YXg6IGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjMxLworICAgICAgICAgICBVKzAwMDkuLlUrMDAwRCwgVSswMDIwLCBVKzAwODUsIFUrMjAwRS4uVSsyMDBGLCBhbmQgVSsyMDI4Li5VKzIwMjkKKyAgICAgICAgICAgRXF1aXZhbGVudCB0byB0ZXN0IGZvciBQYXR0ZXJuX1doaXRlX1NwYWNlIFVuaWNvZGUgcHJvcGVydHkuCisgICAgICAgICovCisgICAgICAgIHJldHVybiAoYyA+PSAweDAwMDkgJiYgYyA8PSAweDIwMjkgJiYKKyAgICAgICAgICAgICAgICAoYyA8PSAweDAwMEQgfHwgYyA9PSAweDAwMjAgfHwgYyA9PSAweDAwODUgfHwKKyAgICAgICAgICAgICAgICAgYyA9PSAweDIwMEUgfHwgYyA9PSAweDIwMEYgfHwgYyA+PSAweDIwMjgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHRoZSBtYXhpbXVtIHZhbHVlcyBmb3Igc29tZSBlbnVtL2ludCBwcm9wZXJ0aWVzLgorICAgICAqIEByZXR1cm4gbWF4aW11bSB2YWx1ZXMgZm9yIHRoZSBpbnRlZ2VyIHByb3BlcnRpZXMuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhWYWx1ZXMoaW50IGNvbHVtbikKKyAgICB7CisgICAgICAgLy8gcmV0dXJuIG1fbWF4QmxvY2tTY3JpcHRWYWx1ZV87CisKKyAgICAgICAgc3dpdGNoKGNvbHVtbikgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gbV9tYXhCbG9ja1NjcmlwdFZhbHVlXzsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmV0dXJuIG1fbWF4SlRHVmFsdWVfOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0eXBlIG1hc2sKKyAgICAgKiBAcGFyYW0gdHlwZSBjaGFyYWN0ZXIgdHlwZQorICAgICAqIEByZXR1cm4gbWFzaworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGdldE1hc2soaW50IHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gMSA8PCB0eXBlOworICAgIH0KKworICAgIC8vIHByb3RlY3RlZCB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEV4dHJhIHByb3BlcnR5IHRyaWUKKyAgICAgKi8KKyAgICBDaGFyVHJpZSBtX2FkZGl0aW9uYWxUcmllXzsKKyAgICAvKioKKyAgICAgKiBFeHRyYSBwcm9wZXJ0eSB2ZWN0b3JzLCAxc3QgY29sdW1uIGZvciBhZ2UgYW5kIHNlY29uZCBmb3IgYmluYXJ5CisgICAgICogcHJvcGVydGllcy4KKyAgICAgKi8KKyAgICBpbnQgbV9hZGRpdGlvbmFsVmVjdG9yc19bXTsKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgb2YgYWRkaXRpb25hbCBjb2x1bW5zCisgICAgICovCisgICAgaW50IG1fYWRkaXRpb25hbENvbHVtbnNDb3VudF87CisgICAgLyoqCisgICAgICogTWF4aW11bSB2YWx1ZXMgZm9yIGJsb2NrLCBiaXRzIHVzZWQgYXMgaW4gdmVjdG9yIHdvcmQKKyAgICAgKiAwCisgICAgICovCisgICAgaW50IG1fbWF4QmxvY2tTY3JpcHRWYWx1ZV87CisgICAgLyoqCisgICAgICogTWF4aW11bSB2YWx1ZXMgZm9yIHNjcmlwdCwgYml0cyB1c2VkIGFzIGluIHZlY3RvciB3b3JkCisgICAgICogMAorICAgICAqLworICAgICBpbnQgbV9tYXhKVEdWYWx1ZV87CisgICAgLy8gcHJpdmF0ZSB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAvKioKKyAgICAgKiBVbmljb2RlRGF0YS50eHQgcHJvcGVydHkgb2JqZWN0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVUNoYXJhY3RlclByb3BlcnR5IElOU1RBTkNFXyA9IG51bGw7CisKKyAgICAvKioKKyAgICAqIERlZmF1bHQgbmFtZSBvZiB0aGUgZGF0YWZpbGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBX0ZJTEVfTkFNRV8gPSBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlVORExFKyIvdXByb3BzLmljdSI7CisKKyAgICAvKioKKyAgICAqIERlZmF1bHQgYnVmZmVyIHNpemUgb2YgZGF0YWZpbGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVRBX0JVRkZFUl9TSVpFXyA9IDI1MDAwOworCisgICAgLyoqCisgICAgKiBOdW1lcmljIHZhbHVlIHNoaWZ0CisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVkFMVUVfU0hJRlRfID0gODsKKworICAgIC8qKgorICAgICogTWFzayB0byBiZSBhcHBsaWVkIGFmdGVyIHNoaWZ0aW5nIHRvIG9idGFpbiBhbiB1bnNpZ25lZCBudW1lcmljIHZhbHVlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5TSUdORURfVkFMVUVfTUFTS19BRlRFUl9TSElGVF8gPSAweEZGOworCisgICAgLyoqCisgICAgICoKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTlVNRVJJQ19UWVBFX1NISUZUID0gNTsKKworICAgIC8qKgorICAgICogVG8gZ2V0IHRoZSBsYXN0IDUgYml0cyBvdXQgZnJvbSBhIGRhdGEgdHlwZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBU1RfNV9CSVRfTUFTS18gPSAweDFGOworCisgICAgLyoqCisgICAgKiBTaGlmdCA1IGJpdHMKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTSElGVF81XyA9IDU7CisgICAgLyoqCisgICAgKiBTaGlmdCAxMCBiaXRzCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0hJRlRfMTBfID0gMTA7CisKKyAgICAvKioKKyAgICAqIFNoaWZ0IHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSB0byBmb3JtIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEVBRF9TVVJST0dBVEVfU0hJRlRfID0gMTA7CisgICAgLyoqCisgICAgKiBPZmZzZXQgdG8gYWRkIHRvIGNvbWJpbmVkIHN1cnJvZ2F0ZSBwYWlyIHRvIGF2b2lkIG1za2luZy4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfT0ZGU0VUXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoVVRGMTYuU1VSUk9HQVRFX01JTl9WQUxVRSA8PAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVBRF9TVVJST0dBVEVfU0hJRlRfKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFOworICAgIC8qKgorICAgICogTGF0aW4gdXBwZXJjYXNlIEkKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgTEFUSU5fQ0FQSVRBTF9MRVRURVJfSV8gPSAweDQ5OworICAgIC8qKgorICAgICogQ29tYmluaW5nIGRvdCBhYm92ZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBDT01CSU5JTkdfRE9UX0FCT1ZFXyA9IDB4MzA3OworICAgIC8qKgorICAgICogTEFUSU4gU01BTEwgTEVUVEVSIEoKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVRJTl9TTUFMTF9MRVRURVJfSl8gPSAweDZhOworICAgIC8qKgorICAgICogTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBPR09ORUsKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVRJTl9TTUFMTF9MRVRURVJfSV9XSVRIX09HT05FS18gPSAweDEyZjsKKyAgICAvKioKKyAgICAqIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggVElMREUgQkVMT1cKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVRJTl9TTUFMTF9MRVRURVJfSV9XSVRIX1RJTERFX0JFTE9XXyA9IDB4MWUyZDsKKyAgICAvKioKKyAgICAqIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRE9UIEJFTE9XCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fU01BTExfTEVUVEVSX0lfV0lUSF9ET1RfQkVMT1dfID0gMHgxZWNiOworICAgIC8qKgorICAgICogQ29tYmluaW5nIGNsYXNzIGZvciBjb21iaW5pbmcgbWFyayBhYm92ZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTUJJTklOR19NQVJLX0FCT1ZFX0NMQVNTXyA9IDIzMDsKKworICAgIC8qKgorICAgICogTEFUSU4gQ0FQSVRBTCBMRVRURVIgSgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBVElOX0NBUElUQUxfTEVUVEVSX0pfID0gMHg0YTsKKworICAgIC8qKgorICAgICogTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE9HT05FSworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBVElOX0NBUElUQUxfSV9XSVRIX09HT05FS18gPSAweDEyZTsKKyAgICAvKioKKyAgICAqIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBUSUxERQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBVElOX0NBUElUQUxfSV9XSVRIX1RJTERFXyA9IDB4MTI4OworICAgIC8qKgorICAgICogTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEdSQVZFCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFUSU5fQ0FQSVRBTF9JX1dJVEhfR1JBVkVfID0gMHhjYzsKKyAgICAvKioKKyAgICAqIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBBQ1VURQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBVElOX0NBUElUQUxfSV9XSVRIX0FDVVRFXyA9IDB4Y2Q7CisgICAgLyoqCisgICAgKiBDT01CSU5JTkcgR1JBVkUgQUNDRU5UCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklOSU5HX0dSQVZFX0FDQ0VOVF8gPSAweDMwMDsKKyAgICAvKioKKyAgICAqIENPTUJJTklORyBBQ1VURSBBQ0NFTlQKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01CSU5JTkdfQUNVVEVfQUNDRU5UXyA9IDB4MzAxOworICAgIC8qKgorICAgICogQ09NQklOSU5HIFRJTERFCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklOSU5HX1RJTERFXyA9IDB4MzAzOworICAgIC8qKgorICAgICogR3JlZWsgY2FwaXRhbCBsZXR0ZXIgc2lnbWEKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgR1JFRUtfQ0FQSVRBTF9MRVRURVJfU0lHTUFfID0gMHgzYTM7CisgICAgLyoqCisgICAgKiBHcmVlayBzbWFsbCBsZXR0ZXIgc2lnbWEKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgR1JFRUtfU01BTExfTEVUVEVSX1NJR01BXyA9IDB4M2MzOworICAgIC8qKgorICAgICogR3JlZWsgc21hbGwgbGV0dGVyIHJobworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBHUkVFS19TTUFMTF9MRVRURVJfUkhPXyA9IDB4M2MyOworICAgIC8qKgorICAgICogSHlwaGVucworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhZUEhFTl8gICAgICA9IDB4MjAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU09GVF9IWVBIRU5fID0gMHhBRDsKKyAgICAvKioKKyAgICAqIFRvIGdldCB0aGUgbGFzdCBjaGFyYWN0ZXIgb3V0IGZyb20gYSBkYXRhIHR5cGUKKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVNUX0NIQVJfTUFTS18gPSAweEZGRkY7CisgICAgLyoqCisgICAgKiBUbyBnZXQgdGhlIGxhc3QgYnl0ZSBvdXQgZnJvbSBhIGRhdGEgdHlwZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBU1RfQllURV9NQVNLXyA9IDB4RkY7CisgICAgLyoqCisgICAgKiBTaGlmdCAxNiBiaXRzCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0hJRlRfMTZfID0gMTY7CisKKyAgICAvLyBhZGRpdGlvbmFsIHByb3BlcnRpZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHVzZWQgaW4gaW50ZXJuYWwgdHJpZSBkYXRhCisgICAgICovCisgICAgLyoKKyAgICAgKiBQcm9wZXJ0aWVzIGluIHZlY3RvciB3b3JkIDEKKyAgICAgKiBFYWNoIGJpdCBlbmNvZGVzIG9uZSBiaW5hcnkgcHJvcGVydHkuCisgICAgICogVGhlIGZvbGxvd2luZyBjb25zdGFudHMgcmVwcmVzZW50IHRoZSBiaXQgbnVtYmVyLCB1c2UgMTw8VVBST1BTX1hZWi4KKyAgICAgKiBVUFJPUFNfQklOQVJZXzFfVE9QPD0zMiEKKyAgICAgKgorICAgICAqIEtlZXAgdGhpcyBsaXN0IG9mIHByb3BlcnR5IGVudW1zIGluIHN5bmMgd2l0aAorICAgICAqIHByb3BMaXN0TmFtZXNbXSBpbiBpY3Uvc291cmNlL3Rvb2xzL2dlbnByb3BzL3Byb3BzMi5jIQorICAgICAqCisgICAgICogSUNVIDIuNi91cHJvcHMgZm9ybWF0IHZlcnNpb24gMy4yIHN0b3JlcyBmdWxsIHByb3BlcnRpZXMgaW5zdGVhZCBvZiAiT3RoZXJfIi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgV0hJVEVfU1BBQ0VfUFJPUEVSVFlfID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQklESV9DT05UUk9MX1BST1BFUlRZXyA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEpPSU5fQ09OVFJPTF9QUk9QRVJUWV8gPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVNIX1BST1BFUlRZXyA9IDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhZUEhFTl9QUk9QRVJUWV8gPSA0OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBRVU9UQVRJT05fTUFSS19QUk9QRVJUWV8gPSA1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBURVJNSU5BTF9QVU5DVFVBVElPTl9QUk9QRVJUWV8gPSA2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVRIX1BST1BFUlRZXyA9IDc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFWF9ESUdJVF9QUk9QRVJUWV8gPSA4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBU0NJSV9IRVhfRElHSVRfUFJPUEVSVFlfID0gOTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUxQSEFCRVRJQ19QUk9QRVJUWV8gPSAxMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSURFT0dSQVBISUNfUFJPUEVSVFlfID0gMTE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERJQUNSSVRJQ19QUk9QRVJUWV8gPSAxMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRVhURU5ERVJfUFJPUEVSVFlfID0gMTM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPV0VSQ0FTRV9QUk9QRVJUWV8gPSAxNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVVBQRVJDQVNFX1BST1BFUlRZXyA9IDE1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT05DSEFSQUNURVJfQ09ERV9QT0lOVF9QUk9QRVJUWV8gPSAxNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR1JBUEhFTUVfRVhURU5EX1BST1BFUlRZXyA9IDE3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBHUkFQSEVNRV9MSU5LX1BST1BFUlRZXyA9IDE4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJRFNfQklOQVJZX09QRVJBVE9SX1BST1BFUlRZXyA9IDE5OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJRFNfVFJJTkFSWV9PUEVSQVRPUl9QUk9QRVJUWV8gPSAyMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUkFESUNBTF9QUk9QRVJUWV8gPSAyMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5JRklFRF9JREVPR1JBUEhfUFJPUEVSVFlfID0gMjI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfSUdOT1JBQkxFX0NPREVfUE9JTlRfUFJPUEVSVFlfID0gMjM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFUFJFQ0FURURfUFJPUEVSVFlfID0gMjQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNPRlRfRE9UVEVEX1BST1BFUlRZXyA9IDI1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMT0dJQ0FMX09SREVSX0VYQ0VQVElPTl9QUk9QRVJUWV8gPSAyNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgWElEX1NUQVJUX1BST1BFUlRZXyA9IDI3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBYSURfQ09OVElOVUVfUFJPUEVSVFlfID0gMjg7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElEX1NUQVJUX1BST1BFUlRZXyAgICA9IDI5OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJRF9DT05USU5VRV9QUk9QRVJUWV8gPSAzMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR1JBUEhFTUVfQkFTRV9QUk9QRVJUWV8gPSAzMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQklOQVJZXzFfVE9QX1BST1BFUlRZXyA9IDMyOworCisgICAgLyoqCisgICAgICogRmlyc3QgbmliYmxlIHNoaWZ0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZJUlNUX05JQkJMRV9TSElGVF8gPSAweDQ7CisgICAgLyoqCisgICAgICogU2Vjb25kIG5pYmJsZSBtYXNrCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBU1RfTklCQkxFX01BU0tfID0gMHhGOworICAgIC8qKgorICAgICAqIEFnZSB2YWx1ZSBzaGlmdAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBR0VfU0hJRlRfID0gMjQ7CisKKyAgICAvLyBib29sZWFuIHByb3BlcnRpZXMgaW4gdmVjdG9yIHdvcmQgMgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBWMl9TX1RFUk1fUFJPUEVSVFlfID0gMjQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFYyX1ZBUklBVElPTl9TRUxFQ1RPUl9QUk9QRVJUWV8gPSAyNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVjJfUEFUVEVSTl9TWU5UQVggPSAyNjsgICAgICAgICAgICAgICAgICAgLyogbmV3IGluIElDVSAzLjQgYW5kIFVuaWNvZGUgNC4xICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFYyX1BBVFRFUk5fV0hJVEVfU1BBQ0UgPSAyNzsKKworICAgIC8vIHByaXZhdGUgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdG9yCisgICAgKiBAZXhjZXB0aW9uIHRocm93biB3aGVuIGRhdGEgcmVhZGluZyBmYWlscyBvciBkYXRhIGNvcnJ1cHRlZAorICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyUHJvcGVydHkoKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIC8vIGphciBhY2Nlc3MKKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBJQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKERBVEFfRklMRV9OQU1FXyk7CisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGlzLCBEQVRBX0JVRkZFUl9TSVpFXyk7CisgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eVJlYWRlciByZWFkZXIgPSBuZXcgVUNoYXJhY3RlclByb3BlcnR5UmVhZGVyKGIpOworICAgICAgICByZWFkZXIucmVhZCh0aGlzKTsKKyAgICAgICAgYi5jbG9zZSgpOworCisgICAgICAgIG1fdHJpZV8ucHV0SW5kZXhEYXRhKHRoaXMpOworICAgIH0KKworICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIGFkZGl0aW9uYWwgcHJvcGVydGllcyB0byBzZWUgaWYgaXQgaGFzIGFyZ3VtZW50IHR5cGUKKyAgICAgKiBAcGFyYW0gcHJvcGVydHkgMzIgYml0IHByb3BlcnRpZXMKKyAgICAgKiBAcGFyYW0gdHlwZSBjaGFyYWN0ZXIgdHlwZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBwcm9wZXJ0eSBoYXMgdHlwZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBjb21wYXJlQWRkaXRpb25hbFR5cGUoaW50IHByb3BlcnR5LCBpbnQgdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiAocHJvcGVydHkgJiAoMSA8PCB0eXBlKSkgIT0gMDsKKyAgICB9CisKKyAgICAvLyBwcm9wZXJ0eSBzdGFydHMgZm9yIFVuaWNvZGVTZXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKioqCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVEFCICAgICA9IDB4MDAwOTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEYgICAgICA9IDB4MDAwYTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRkYgICAgICA9IDB4MDAwYzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ1IgICAgICA9IDB4MDAwZDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVV9BICAgICA9IDB4MDA0MTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVV9GICAgICA9IDB4MDA0NjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVV9aICAgICA9IDB4MDA1YTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVV9hICAgICA9IDB4MDA2MTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVV9mICAgICA9IDB4MDA2NjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVV96ICAgICA9IDB4MDA3YTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVMICAgICA9IDB4MDA3ZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTkwgICAgICA9IDB4MDA4NTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTkJTUCAgICA9IDB4MDBhMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0dKICAgICA9IDB4MDM0ZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklHVVJFU1A9IDB4MjAwNzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSEFJUlNQICA9IDB4MjAwYTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgWldOSiAgICA9IDB4MjAwYzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgWldKICAgICA9IDB4MjAwZDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUkxNICAgICA9IDB4MjAwZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk5CU1AgICA9IDB4MjAyZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgV0ogICAgICA9IDB4MjA2MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5IU1dBUCA9IDB4MjA2YTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9NRElHICA9IDB4MjA2ZjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVV9GV19BICA9IDB4ZmYyMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVV9GV19GICA9IDB4ZmYyNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVV9GV19aICA9IDB4ZmYzYTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVV9GV19hICA9IDB4ZmY0MTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVV9GV19mICA9IDB4ZmY0NjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVV9GV196ICA9IDB4ZmY1YTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgWldOQlNQICA9IDB4ZmVmZjsKKworICAgIC8qIGZvciBIYW5ndWxfU3lsbGFibGVfVHlwZSAqLworICAgIHB1YmxpYyB2b2lkIHVoc3RfYWRkUHJvcGVydHlTdGFydHMoVW5pY29kZVNldCBzZXQpIHsKKyAgICAgICAgLyogYWRkIGNvZGUgcG9pbnRzIHdpdGggaGFyZGNvZGVkIHByb3BlcnRpZXMsIHBsdXMgdGhlIG9uZXMgZm9sbG93aW5nIHRoZW0gKi8KKworICAgICAgICAvKgorICAgICAgICAgKiBBZGQgSmFtbyB0eXBlIGJvdW5kYXJpZXMgZm9yIFVDSEFSX0hBTkdVTF9TWUxMQUJMRV9UWVBFLgorICAgICAgICAgKiBGaXJzdCwgd2UgYWRkIGZpeGVkIGJvdW5kYXJpZXMgZm9yIHRoZSBibG9ja3Mgb2YgSmFtb3MuCisgICAgICAgICAqIFRoZW4gd2UgY2hlY2sgaW4gbG9vcHMgdG8gc2VlIHdoZXJlIHRoZSBjdXJyZW50IFVuaWNvZGUgdmVyc2lvbgorICAgICAgICAgKiBhY3R1YWxseSBzdG9wcyBhc3NpZ25pbmcgc3VjaCBKYW1vcy4gV2Ugc3RhcnQgZWFjaCBsb29wCisgICAgICAgICAqIGF0IHRoZSBlbmQgb2YgdGhlIHBlci1KYW1vLWJsb2NrIGFzc2lnbm1lbnRzIGluIFVuaWNvZGUgNCBvciBlYXJsaWVyLgorICAgICAgICAgKiAoVGhlc2UgaGF2ZSBub3QgY2hhbmdlZCBzaW5jZSBVbmljb2RlIDIuKQorICAgICAgICAgKi8KKyAgICAgICAgaW50IGMsIHZhbHVlLCB2YWx1ZTI7CisKKyAgICAgICAgc2V0LmFkZCgweDExMDApOworICAgICAgICB2YWx1ZT1VQ2hhcmFjdGVyLkhhbmd1bFN5bGxhYmxlVHlwZS5MRUFESU5HX0pBTU87CisgICAgICAgIGZvcihjPTB4MTE1YTsgYzw9MHgxMTVmOyArK2MpIHsKKyAgICAgICAgICAgIHZhbHVlMj0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5IQU5HVUxfU1lMTEFCTEVfVFlQRSk7CisgICAgICAgICAgICBpZih2YWx1ZSE9dmFsdWUyKSB7CisgICAgICAgICAgICAgICAgdmFsdWU9dmFsdWUyOworICAgICAgICAgICAgICAgIHNldC5hZGQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzZXQuYWRkKDB4MTE2MCk7CisgICAgICAgIHZhbHVlPVVDaGFyYWN0ZXIuSGFuZ3VsU3lsbGFibGVUeXBlLlZPV0VMX0pBTU87CisgICAgICAgIGZvcihjPTB4MTFhMzsgYzw9MHgxMWE3OyArK2MpIHsKKyAgICAgICAgICAgIHZhbHVlMj1VQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYywgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFKTsKKyAgICAgICAgICAgIGlmKHZhbHVlIT12YWx1ZTIpIHsKKyAgICAgICAgICAgICAgICB2YWx1ZT12YWx1ZTI7CisgICAgICAgICAgICAgICAgc2V0LmFkZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHNldC5hZGQoMHgxMWE4KTsKKyAgICAgICAgdmFsdWU9VUNoYXJhY3Rlci5IYW5ndWxTeWxsYWJsZVR5cGUuVFJBSUxJTkdfSkFNTzsKKyAgICAgICAgZm9yKGM9MHgxMWZhOyBjPD0weDExZmY7ICsrYykgeworICAgICAgICAgICAgdmFsdWUyPVVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLCBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEUpOworICAgICAgICAgICAgaWYodmFsdWUhPXZhbHVlMikgeworICAgICAgICAgICAgICAgIHZhbHVlPXZhbHVlMjsKKyAgICAgICAgICAgICAgICBzZXQuYWRkKGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFVuaWNvZGVTZXQgYWRkUHJvcGVydHlTdGFydHMoVW5pY29kZVNldCBzZXQpIHsKKyAgICAgICAgaW50IGM7CisKKyAgICAgICAgLyogYWRkIHRoZSBzdGFydCBjb2RlIHBvaW50IG9mIGVhY2ggc2FtZS12YWx1ZSByYW5nZSBvZiB0aGUgbWFpbiB0cmllICovCisgICAgICAgIFRyaWVJdGVyYXRvciBwcm9wc0l0ZXIgPSBuZXcgVHJpZUl0ZXJhdG9yKG1fdHJpZV8pOworICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCBwcm9wc1Jlc3VsdCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAgICAgIHdoaWxlKHByb3BzSXRlci5uZXh0KHByb3BzUmVzdWx0KSl7CisgICAgICAgICAgICBzZXQuYWRkKHByb3BzUmVzdWx0LnN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIGFkZCBjb2RlIHBvaW50cyB3aXRoIGhhcmRjb2RlZCBwcm9wZXJ0aWVzLCBwbHVzIHRoZSBvbmVzIGZvbGxvd2luZyB0aGVtICovCisKKyAgICAgICAgLyogYWRkIGZvciB1X2lzYmxhbmsoKSAqLworICAgICAgICBzZXQuYWRkKFRBQik7CisgICAgICAgIHNldC5hZGQoVEFCKzEpOworCisgICAgICAgIC8qIGFkZCBmb3IgSVNfVEhBVF9DT05UUk9MX1NQQUNFKCkgKi8KKyAgICAgICAgc2V0LmFkZChDUisxKTsgLyogcmFuZ2UgVEFCLi5DUiAqLworICAgICAgICBzZXQuYWRkKDB4MWMpOworICAgICAgICBzZXQuYWRkKDB4MWYrMSk7CisgICAgICAgIHNldC5hZGQoTkwpOworICAgICAgICBzZXQuYWRkKE5MKzEpOworCisgICAgICAgIC8qIGFkZCBmb3IgdV9pc0lESWdub3JhYmxlKCkgd2hhdCB3YXMgbm90IGFkZGVkIGFib3ZlICovCisgICAgICAgIHNldC5hZGQoREVMKTsgLyogcmFuZ2UgREVMLi5OQlNQLTEsIE5CU1AgYWRkZWQgYmVsb3cgKi8KKyAgICAgICAgc2V0LmFkZChIQUlSU1ApOworICAgICAgICBzZXQuYWRkKFJMTSsxKTsKKyAgICAgICAgc2V0LmFkZChJTkhTV0FQKTsKKyAgICAgICAgc2V0LmFkZChOT01ESUcrMSk7CisgICAgICAgIHNldC5hZGQoWldOQlNQKTsKKyAgICAgICAgc2V0LmFkZChaV05CU1ArMSk7CisKKyAgICAgICAgLyogYWRkIG5vLWJyZWFrIHNwYWNlcyBmb3IgdV9pc1doaXRlc3BhY2UoKSB3aGF0IHdhcyBub3QgYWRkZWQgYWJvdmUgKi8KKyAgICAgICAgc2V0LmFkZChOQlNQKTsKKyAgICAgICAgc2V0LmFkZChOQlNQKzEpOworICAgICAgICBzZXQuYWRkKEZJR1VSRVNQKTsKKyAgICAgICAgc2V0LmFkZChGSUdVUkVTUCsxKTsKKyAgICAgICAgc2V0LmFkZChOTkJTUCk7CisgICAgICAgIHNldC5hZGQoTk5CU1ArMSk7CisKKyAgICAgICAgLyogYWRkIGZvciB1X2NoYXJEaWdpdFZhbHVlKCkgKi8KKyAgICAgICAgLy8gVE9ETyByZW1vdmUgd2hlbiBVQ2hhcmFjdGVyLmdldEhhbk51bWVyaWNWYWx1ZSgpIGlzIGNoYW5nZWQgdG8ganVzdCByZXR1cm4KKyAgICAgICAgLy8gVW5pY29kZSBudW1lcmljIHZhbHVlcyAKKyAgICAgICAgc2V0LmFkZCgweDMwMDcpOworICAgICAgICBzZXQuYWRkKDB4MzAwOCk7CisgICAgICAgIHNldC5hZGQoMHg0ZTAwKTsKKyAgICAgICAgc2V0LmFkZCgweDRlMDEpOworICAgICAgICBzZXQuYWRkKDB4NGU4Yyk7CisgICAgICAgIHNldC5hZGQoMHg0ZThkKTsKKyAgICAgICAgc2V0LmFkZCgweDRlMDkpOworICAgICAgICBzZXQuYWRkKDB4NGUwYSk7CisgICAgICAgIHNldC5hZGQoMHg1NmRiKTsKKyAgICAgICAgc2V0LmFkZCgweDU2ZGMpOworICAgICAgICBzZXQuYWRkKDB4NGU5NCk7CisgICAgICAgIHNldC5hZGQoMHg0ZTk1KTsKKyAgICAgICAgc2V0LmFkZCgweDUxNmQpOworICAgICAgICBzZXQuYWRkKDB4NTE2ZSk7CisgICAgICAgIHNldC5hZGQoMHg0ZTAzKTsKKyAgICAgICAgc2V0LmFkZCgweDRlMDQpOworICAgICAgICBzZXQuYWRkKDB4NTE2Yik7CisgICAgICAgIHNldC5hZGQoMHg1MTZjKTsKKyAgICAgICAgc2V0LmFkZCgweDRlNWQpOworICAgICAgICBzZXQuYWRkKDB4NGU1ZSk7CisKKyAgICAgICAgLyogYWRkIGZvciB1X2RpZ2l0KCkgKi8KKyAgICAgICAgc2V0LmFkZChVX2EpOworICAgICAgICBzZXQuYWRkKFVfeisxKTsKKyAgICAgICAgc2V0LmFkZChVX0EpOworICAgICAgICBzZXQuYWRkKFVfWisxKTsKKyAgICAgICAgc2V0LmFkZChVX0ZXX2EpOworICAgICAgICBzZXQuYWRkKFVfRldfeisxKTsKKyAgICAgICAgc2V0LmFkZChVX0ZXX0EpOworICAgICAgICBzZXQuYWRkKFVfRldfWisxKTsKKworICAgICAgICAvKiBhZGQgZm9yIHVfaXN4ZGlnaXQoKSAqLworICAgICAgICBzZXQuYWRkKFVfZisxKTsKKyAgICAgICAgc2V0LmFkZChVX0YrMSk7CisgICAgICAgIHNldC5hZGQoVV9GV19mKzEpOworICAgICAgICBzZXQuYWRkKFVfRldfRisxKTsKKworICAgICAgICAvKiBhZGQgZm9yIFVDSEFSX0RFRkFVTFRfSUdOT1JBQkxFX0NPREVfUE9JTlQgd2hhdCB3YXMgbm90IGFkZGVkIGFib3ZlICovCisgICAgICAgIHNldC5hZGQoV0opOyAvKiByYW5nZSBXSi4uTk9NRElHICovCisgICAgICAgIHNldC5hZGQoMHhmZmYwKTsKKyAgICAgICAgc2V0LmFkZCgweGZmZmIrMSk7CisgICAgICAgIHNldC5hZGQoMHhlMDAwMCk7CisgICAgICAgIHNldC5hZGQoMHhlMGZmZisxKTsKKworICAgICAgICAvKiBhZGQgZm9yIFVDSEFSX0dSQVBIRU1FX0JBU0UgYW5kIG90aGVycyAqLworICAgICAgICBzZXQuYWRkKENHSik7CisgICAgICAgIHNldC5hZGQoQ0dKKzEpOworCisgICAgICAgIHJldHVybiBzZXQ7IC8vIGZvciBjaGFpbmluZworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHVwcm9wc3ZlY19hZGRQcm9wZXJ0eVN0YXJ0cyhVbmljb2RlU2V0IHNldCkgeworICAgICAgICAvKiBhZGQgdGhlIHN0YXJ0IGNvZGUgcG9pbnQgb2YgZWFjaCBzYW1lLXZhbHVlIHJhbmdlIG9mIHRoZSBwcm9wZXJ0aWVzIHZlY3RvcnMgdHJpZSAqLworICAgICAgICBpZihtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfPjApIHsKKyAgICAgICAgICAgIC8qIGlmIG1fYWRkaXRpb25hbENvbHVtbnNDb3VudF89PTAgdGhlbiB0aGUgcHJvcGVydGllcyB2ZWN0b3JzIHRyaWUgbWF5IG5vdCBiZSB0aGVyZSBhdCBhbGwgKi8KKyAgICAgICAgICAgIFRyaWVJdGVyYXRvciBwcm9wc1ZlY3RvcnNJdGVyID0gbmV3IFRyaWVJdGVyYXRvcihtX2FkZGl0aW9uYWxUcmllXyk7CisgICAgICAgICAgICBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCBwcm9wc1ZlY3RvcnNSZXN1bHQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgICAgIHdoaWxlKHByb3BzVmVjdG9yc0l0ZXIubmV4dChwcm9wc1ZlY3RvcnNSZXN1bHQpKXsKKyAgICAgICAgICAgICAgICBzZXQuYWRkKHByb3BzVmVjdG9yc1Jlc3VsdC5zdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogSW5jbHVzaW9ucyBsaXN0CisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisgICAgLyoKKyAgICAgKiBSZXR1cm4gYSBzZXQgb2YgY2hhcmFjdGVycyBmb3IgcHJvcGVydHkgZW51bWVyYXRpb24uCisgICAgICogVGhlIHNldCBpbXBsaWNpdGx5IGNvbnRhaW5zIDB4MTEwMDAwIGFzIHdlbGwsIHdoaWNoIGlzIG9uZSBtb3JlIHRoYW4gdGhlIGhpZ2hlc3QKKyAgICAgKiBVbmljb2RlIGNvZGUgcG9pbnQuCisgICAgICoKKyAgICAgKiBUaGlzIHNldCBpcyB1c2VkIGFzIGFuIG9yZGVyZWQgbGlzdCAtIGl0cyBjb2RlIHBvaW50cyBhcmUgb3JkZXJlZCwgYW5kCisgICAgICogY29uc2VjdXRpdmUgY29kZSBwb2ludHMgKGluIFVuaWNvZGUgY29kZSBwb2ludCBvcmRlcikgaW4gdGhlIHNldCBkZWZpbmUgYSByYW5nZS4KKyAgICAgKiBGb3IgZWFjaCB0d28gY29uc2VjdXRpdmUgY2hhcmFjdGVycyAoc3RhcnQsIGxpbWl0KSBpbiB0aGUgc2V0LAorICAgICAqIGFsbCBvZiB0aGUgVUNEL25vcm1hbGl6YXRpb24gYW5kIHJlbGF0ZWQgcHJvcGVydGllcyBmb3IKKyAgICAgKiBhbGwgY29kZSBwb2ludHMgc3RhcnQuLmxpbWl0LTEgYXJlIGFsbCB0aGUgc2FtZSwKKyAgICAgKiBleGNlcHQgZm9yIGNoYXJhY3RlciBuYW1lcyBhbmQgSVNPIGNvbW1lbnRzLgorICAgICAqCisgICAgICogQWxsIFVuaWNvZGUgY29kZSBwb2ludHMgVSswMDAwLi5VKzEwZmZmZiBhcmUgY292ZXJlZCBieSB0aGVzZSByYW5nZXMuCisgICAgICogVGhlIHJhbmdlcyBkZWZpbmUgYSBwYXJ0aXRpb24gb2YgdGhlIFVuaWNvZGUgY29kZSBzcGFjZS4KKyAgICAgKiBJQ1UgdXNlcyB0aGUgaW5jbHVzaW9ucyBzZXQgdG8gZW51bWVyYXRlIHByb3BlcnRpZXMgZm9yIGdlbmVyYXRpbmcKKyAgICAgKiBVbmljb2RlU2V0cyBjb250YWluaW5nIGFsbCBjb2RlIHBvaW50cyB0aGF0IGhhdmUgYSBjZXJ0YWluIHByb3BlcnR5IHZhbHVlLgorICAgICAqCisgICAgICogVGhlIEluY2x1c2lvbiBMaXN0IGlzIGdlbmVyYXRlZCBmcm9tIHRoZSBVQ0QuIEl0IGlzIGdlbmVyYXRlZAorICAgICAqIGJ5IGVudW1lcmF0aW5nIHRoZSBkYXRhIHRyaWVzLCBhbmQgY29kZSBwb2ludHMgZm9yIGhhcmRjb2RlZCBwcm9wZXJ0aWVzCisgICAgICogYXJlIGFkZGVkIGFzIHdlbGwuCisgICAgICoKKyAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqCisgICAgICogVGhlIGZvbGxvd2luZyBhcmUgaWRlYXMgZm9yIGdldHRpbmcgcHJvcGVydGllcy11bmlxdWUgY29kZSBwb2ludCByYW5nZXMsCisgICAgICogd2l0aCBwb3NzaWJsZSBvcHRpbWl6YXRpb25zIGJleW9uZCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiBUaGVzZSBvcHRpbWl6YXRpb25zIHdvdWxkIHJlcXVpcmUgbW9yZSBjb2RlIGFuZCBiZSBtb3JlIGZyYWdpbGUuCisgICAgICogVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZ2VuZXJhdGVzIG9uZSBzaW5nbGUgbGlzdCAoc2V0KSBmb3IgYWxsIHByb3BlcnRpZXMuCisgICAgICoKKyAgICAgKiBUbyBlbnVtZXJhdGUgcHJvcGVydGllcyBlZmZpY2llbnRseSwgb25lIG5lZWRzIHRvIGtub3cgcmFuZ2VzIG9mCisgICAgICogcmVwZXRpdGl2ZSB2YWx1ZXMsIHNvIHRoYXQgdGhlIHZhbHVlIG9mIG9ubHkgZWFjaCBzdGFydCBjb2RlIHBvaW50CisgICAgICogY2FuIGJlIGFwcGxpZWQgdG8gdGhlIHdob2xlIHJhbmdlLgorICAgICAqIFRoaXMgaW5mb3JtYXRpb24gaXMgaW4gcHJpbmNpcGxlIGF2YWlsYWJsZSBpbiB0aGUgdXByb3BzLmljdS91bm9ybS5pY3UgZGF0YS4KKyAgICAgKgorICAgICAqIFRoZXJlIGFyZSB0d28gb2JzdGFjbGVzOgorICAgICAqCisgICAgICogMS4gU29tZSBwcm9wZXJ0aWVzIGFyZSBjb21wdXRlZCBmcm9tIG11bHRpcGxlIGRhdGEgc3RydWN0dXJlcywKKyAgICAgKiAgICBtYWtpbmcgaXQgbmVjZXNzYXJ5IHRvIGdldCByZXBldGl0aXZlIHJhbmdlcyBieSBpbnRlcnNlY3RpbmcKKyAgICAgKiAgICByYW5nZXMgZnJvbSBtdWx0aXBsZSB0cmllcy4KKyAgICAgKgorICAgICAqIDIuIEl0IGlzIG5vdCBlY29ub21pY2FsIHRvIHdyaXRlIGNvZGUgZm9yIGdldHRpbmcgcmVwZXRpdGl2ZSByYW5nZXMKKyAgICAgKiAgICB0aGF0IGFyZSBwcmVjaXNlIGZvciBlYWNoIG9mIHNvbWUgNTAgcHJvcGVydGllcy4KKyAgICAgKgorICAgICAqIENvbXByb21pc2UgaWRlYXM6CisgICAgICoKKyAgICAgKiAtIEdldCByYW5nZXMgcGVyIHRyaWUsIG5vdCBwZXIgaW5kaXZpZHVhbCBwcm9wZXJ0eS4KKyAgICAgKiAgIEVhY2ggcmFuZ2UgY29udGFpbnMgdGhlIHNhbWUgdmFsdWVzIGZvciBhIHdob2xlIGdyb3VwIG9mIHByb3BlcnRpZXMuCisgICAgICogICBUaGlzIHdvdWxkIGdlbmVyYXRlIGN1cnJlbnRseSBmaXZlIHJhbmdlIHNldHMsIHR3byBmb3IgdXByb3BzLmljdSB0cmllcworICAgICAqICAgYW5kIHRocmVlIGZvciB1bm9ybS5pY3UgdHJpZXMuCisgICAgICoKKyAgICAgKiAtIENvbWJpbmUgc2V0cyBvZiByYW5nZXMgZm9yIG11bHRpcGxlIHRyaWVzIHRvIGdldCBzdWZmaWNpZW50IHNldHMKKyAgICAgKiAgIGZvciBwcm9wZXJ0aWVzLCBlLmcuLCB0aGUgdXByb3BzLmljdSBtYWluIGFuZCBhdXhpbGlhcnkgdHJpZXMKKyAgICAgKiAgIGZvciBhbGwgbm9uLW5vcm1hbGl6YXRpb24gcHJvcGVydGllcy4KKyAgICAgKgorICAgICAqIElkZWFzIGZvciByZXByZXNlbnRpbmcgcmFuZ2VzIGFuZCBjb21iaW5pbmcgdGhlbToKKyAgICAgKgorICAgICAqIC0gQSBVbmljb2RlU2V0IGNvdWxkIGhvbGQganVzdCB0aGUgc3RhcnQgY29kZSBwb2ludHMgb2YgcmFuZ2VzLgorICAgICAqICAgTXVsdGlwbGUgc2V0cyBhcmUgZWFzaWx5IGNvbWJpbmVkIGJ5IG9yLWluZyB0aGVtIHRvZ2V0aGVyLgorICAgICAqCisgICAgICogLSBBbHRlcm5hdGl2ZWx5LCBhIFVuaWNvZGVTZXQgY291bGQgaG9sZCBlYWNoIGV2ZW4tbnVtYmVyZWQgcmFuZ2UuCisgICAgICogICBBbGwgcmFuZ2VzIGNvdWxkIGJlIGVudW1lcmF0ZWQgYnkgdXNpbmcgZWFjaCBzdGFydCBjb2RlIHBvaW50CisgICAgICogICAoZm9yIHRoZSBldmVuLW51bWJlcmVkIHJhbmdlcykgYXMgd2VsbCBhcyBlYWNoIGxpbWl0IChlbmQrMSkgY29kZSBwb2ludAorICAgICAqICAgKGZvciB0aGUgb2RkLW51bWJlcmVkIHJhbmdlcykuCisgICAgICogICBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8gY29tYmluZSB0d28gc3VjaCBzZXRzIGJ5IHhvci1pbmcgdGhlbSwKKyAgICAgKiAgIGJ1dCBubyBtb3JlIHRoYW4gdHdvLgorICAgICAqCisgICAgICogVGhlIHNlY29uZCB3YXkgdG8gcmVwcmVzZW50IHJhbmdlcyBtYXkoPyEpIHlpZWxkIHNtYWxsZXIgVW5pY29kZVNldCBhcnJheXMsCisgICAgICogYnV0IHRoZSBmaXJzdCBvbmUgaXMgY2VydGFpbmx5IHNpbXBsZXIgYW5kIGFwcGxpY2FibGUgZm9yIGNvbWJpbmluZyBtb3JlIHRoYW4KKyAgICAgKiB0d28gcmFuZ2Ugc2V0cy4KKyAgICAgKgorICAgICAqIEl0IGlzIHBvc3NpYmxlIHRvIGNvbWJpbmUgYWxsIHJhbmdlIHNldHMgZm9yIGFsbCB1cHJvcHMvdW5vcm0gdHJpZXMgaW50byBvbmUKKyAgICAgKiBzZXQgdGhhdCBjYW4gYmUgdXNlZCBmb3IgYWxsIHByb3BlcnRpZXMuCisgICAgICogQXMgYW4gb3B0aW1pemF0aW9uLCB0aGVyZSBjb3VsZCBiZSBsZXNzLWNvbWJpbmVkIHJhbmdlIHNldHMgZm9yIGNlcnRhaW4KKyAgICAgKiBncm91cHMgb2YgcHJvcGVydGllcy4KKyAgICAgKiBUaGUgcmVsYXRpb25zaGlwIG9mIHdoaWNoIGxlc3MtY29tYmluZWQgcmFuZ2Ugc2V0IHRvIHVzZSBmb3Igd2hpY2ggcHJvcGVydHkKKyAgICAgKiBkZXBlbmRzIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcHJvcGVydGllcyBhbmQgbXVzdCBiZSBoYXJkY29kZWQKKyAgICAgKiAtIHNvbWV3aGF0IGVycm9yLXByb25lIGFuZCBoaWdoZXIgbWFpbnRlbmFuY2UgYnV0IGNhbiBiZSB0ZXN0ZWQgZWFzaWx5CisgICAgICogYnkgYnVpbGRpbmcgcHJvcGVydHkgc2V0cyAidGhlIHNpbXBsZSB3YXkiIGluIHRlc3QgY29kZS4KKyAgICAgKgorICAgICAqIC0tLQorICAgICAqCisgICAgICogRG8gbm90IHVzZSBhIFVuaWNvZGVTZXQgcGF0dGVybiBiZWNhdXNlIHRoYXQgY2F1c2VzIGluZmluaXRlIHJlY3Vyc2lvbjsKKyAgICAgKiBVbmljb2RlU2V0IGRlcGVuZHMgb24gdGhlIGluY2x1c2lvbnMgc2V0LgorICAgICAqCisgICAgICogLS0tCisgICAgICoKKyAgICAgKiBnZXRJbmNsdXNpb25zKCkgaXMgY29tbWVudGVkIG91dCBzdGFydGluZyAyMDA1LWZlYi0xMiBiZWNhdXNlCisgICAgICogVW5pY29kZVNldCBub3cgY2FsbHMgdGhlIHV4eXpfYWRkUHJvcGVydHlTdGFydHMoKSBkaXJlY3RseSwKKyAgICAgKiBhbmQgb25seSBmb3IgdGhlIHJlbGV2YW50IHByb3BlcnR5IHNvdXJjZS4KKyAgICAgKi8KKyAgICAvKgorICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldEluY2x1c2lvbnMoKSB7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgTm9ybWFsaXplckltcGwuYWRkUHJvcGVydHlTdGFydHMoc2V0KTsKKyAgICAgICAgYWRkUHJvcGVydHlTdGFydHMoc2V0KTsKKyAgICAgICAgcmV0dXJuIHNldDsKKyAgICB9CisgICAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJQcm9wZXJ0eVJlYWRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3RlclByb3BlcnR5UmVhZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY1Nzk1MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJQcm9wZXJ0eVJlYWRlci5qYXZhCkBAIC0wLDAgKzEsMTYzIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworLyoqCisqIDxwPkludGVybmFsIHJlYWRlciBjbGFzcyBmb3IgSUNVIGRhdGEgZmlsZSB1cHJvcHMuaWN1IGNvbnRhaW5pbmcgCisqIFVuaWNvZGUgY29kZXBvaW50IGRhdGEuPC9wPiAKKyogPHA+VGhpcyBjbGFzcyBzaW1wbHkgcmVhZHMgdXByb3BzLmljdSwgYXV0aGVudGljYXRlcyB0aGF0IGl0IGlzIGEgdmFsaWQKKyogSUNVIGRhdGEgZmlsZSBhbmQgc3BsaXQgaXRzIGNvbnRlbnRzIHVwIGludG8gYmxvY2tzIG9mIGRhdGEgZm9yIHVzZSBpbgorKiA8YSBocmVmPVVDaGFyYWN0ZXJQcm9wZXJ0eS5odG1sPmNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5PC9hPi4KKyogPC9wPiAKKyogPHA+dXByb3BzLmljdSB3aGljaCBpcyBpbiBiaWctZW5kaWFuIGZvcm1hdCBpcyBqYXJlZCB0b2dldGhlciB3aXRoIHRoaXMgCisqIHBhY2thZ2UuPC9wPgorKgorKiBVbmljb2RlIGNoYXJhY3RlciBwcm9wZXJ0aWVzIGZpbGUgZm9ybWF0IHNlZQorKiAoSUNVNEMpL3NvdXJjZS90b29scy9nZW5wcm9wcy9zdG9yZS5jCisqCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSByZWxlYXNlIDIuMSwgRmVicnVhcnkgMXN0IDIwMDIKKyovCitmaW5hbCBjbGFzcyBVQ2hhcmFjdGVyUHJvcGVydHlSZWFkZXIgaW1wbGVtZW50cyBJQ1VCaW5hcnkuQXV0aGVudGljYXRlCit7CisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHB1YmxpYyBib29sZWFuIGlzRGF0YVZlcnNpb25BY2NlcHRhYmxlKGJ5dGUgdmVyc2lvbltdKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHZlcnNpb25bMF0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTl9bMF0gCisgICAgICAgICAgICAgICAmJiB2ZXJzaW9uWzJdID09IERBVEFfRk9STUFUX1ZFUlNJT05fWzJdIAorICAgICAgICAgICAgICAgJiYgdmVyc2lvblszXSA9PSBEQVRBX0ZPUk1BVF9WRVJTSU9OX1szXTsKKyAgICB9CisgICAgCisgICAgLy8gcHJvdGVjdGVkIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogPHA+UHJvdGVjdGVkIGNvbnN0cnVjdG9yLjwvcD4KKyAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBJQ1UgdXByb3AuZGF0IGZpbGUgaW5wdXQgc3RyZWFtCisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93IGlmIGRhdGEgZmlsZSBmYWlscyBhdXRoZW50aWNhdGlvbiAKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCBVQ2hhcmFjdGVyUHJvcGVydHlSZWFkZXIoSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0pIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIG1fdW5pY29kZVZlcnNpb25fID0gSUNVQmluYXJ5LnJlYWRIZWFkZXIoaW5wdXRTdHJlYW0sIERBVEFfRk9STUFUX0lEXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyk7CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXyA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIDxwPlJlYWRzIHVwcm9wcy5pY3UsIHBhcnNlIGl0IGludG8gYmxvY2tzIG9mIGRhdGEgdG8gYmUgc3RvcmVkIGluCisgICAgKiBVQ2hhcmFjdGVyUHJvcGVydHkuPC9QCisgICAgKiBAcGFyYW0gdWNoYXJwcHR5IFVDaGFyYWN0ZXJQcm9wZXJ0eSBpbnN0YW5jZQorICAgICogQGV4Y2VwdGlvbiB0aHJvd24gd2hlbiBkYXRhIHJlYWRpbmcgZmFpbHMKKyAgICAqIEBkcmFmdCAyLjEKKyAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHJlYWQoVUNoYXJhY3RlclByb3BlcnR5IHVjaGFycHB0eSkgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyByZWFkIHRoZSBpbmRleGVzCisgICAgICAgIGludCBjb3VudCA9IElOREVYX1NJWkVfOworICAgICAgICBtX3Byb3BlcnR5T2Zmc2V0XyAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOworICAgICAgICBtX2V4Y2VwdGlvbk9mZnNldF8gICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOworICAgICAgICBtX2Nhc2VPZmZzZXRfICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOworICAgICAgICBtX2FkZGl0aW9uYWxPZmZzZXRfICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOworICAgICAgICBtX2FkZGl0aW9uYWxWZWN0b3JzT2Zmc2V0XyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOworICAgICAgICBtX2FkZGl0aW9uYWxDb2x1bW5zQ291bnRfICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOworICAgICAgICBtX3Jlc2VydmVkT2Zmc2V0XyAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOworICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKDMgPDwgMik7CisgICAgICAgIGNvdW50IC09IDM7CisgICAgICAgIHVjaGFycHB0eS5tX21heEJsb2NrU2NyaXB0VmFsdWVfID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgY291bnQgLS07IC8vIDEwCisgICAgICAgIHVjaGFycHB0eS5tX21heEpUR1ZhbHVlXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIGNvdW50IC0tOyAvLyAxMQorICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKGNvdW50IDw8IDIpOworCisgICAgICAgIC8vIHJlYWQgdGhlIHRyaWUgaW5kZXggYmxvY2sKKyAgICAgICAgLy8gbV9wcm9wc19pbmRleF8gaW4gdGVybXMgb2YgaW50cworICAgICAgICB1Y2hhcnBwdHkubV90cmllXyA9IG5ldyBDaGFyVHJpZShtX2RhdGFJbnB1dFN0cmVhbV8sIG51bGwpOworCisgICAgICAgIC8vIHNraXAgdGhlIDMyIGJpdCBwcm9wZXJ0aWVzIGJsb2NrCisgICAgICAgIGludCBzaXplID0gbV9leGNlcHRpb25PZmZzZXRfIC0gbV9wcm9wZXJ0eU9mZnNldF87CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMoc2l6ZSAqIDQpOworCisgICAgICAgIC8vIHJlYWRzIHRoZSAzMiBiaXQgZXhjZXB0aW9ucyBibG9jaworICAgICAgICBzaXplID0gbV9jYXNlT2Zmc2V0XyAtIG1fZXhjZXB0aW9uT2Zmc2V0XzsKKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcyhzaXplICogNCk7CisKKyAgICAgICAgLy8gcmVhZHMgdGhlIDMyIGJpdCBjYXNlIGJsb2NrCisgICAgICAgIHNpemUgPSAobV9hZGRpdGlvbmFsT2Zmc2V0XyAtIG1fY2FzZU9mZnNldF8pIDw8IDE7CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMoc2l6ZSAqIDIpOworCisgICAgICAgIGlmKG1fYWRkaXRpb25hbENvbHVtbnNDb3VudF8gPiAwKSB7CisgICAgICAgICAgICAvLyByZWFkcyB0aGUgYWRkaXRpb25hbCBwcm9wZXJ0eSBibG9jaworICAgICAgICAgICAgdWNoYXJwcHR5Lm1fYWRkaXRpb25hbFRyaWVfID0gbmV3IENoYXJUcmllKG1fZGF0YUlucHV0U3RyZWFtXywgbnVsbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGFkZGl0aW9uYWwgcHJvcGVydGllcworICAgICAgICAgICAgc2l6ZSA9IG1fcmVzZXJ2ZWRPZmZzZXRfIC0gbV9hZGRpdGlvbmFsVmVjdG9yc09mZnNldF87CisgICAgICAgICAgICB1Y2hhcnBwdHkubV9hZGRpdGlvbmFsVmVjdG9yc18gPSBuZXcgaW50W3NpemVdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICAgICAgICAgICAgdWNoYXJwcHR5Lm1fYWRkaXRpb25hbFZlY3RvcnNfW2ldID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5jbG9zZSgpOworICAgICAgICB1Y2hhcnBwdHkubV9hZGRpdGlvbmFsQ29sdW1uc0NvdW50XyA9IG1fYWRkaXRpb25hbENvbHVtbnNDb3VudF87CisgICAgICAgIHVjaGFycHB0eS5tX3VuaWNvZGVWZXJzaW9uXyA9IFZlcnNpb25JbmZvLmdldEluc3RhbmNlKAorICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpbV91bmljb2RlVmVyc2lvbl9bMF0sIChpbnQpbV91bmljb2RlVmVyc2lvbl9bMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgKGludCltX3VuaWNvZGVWZXJzaW9uX1syXSwgKGludCltX3VuaWNvZGVWZXJzaW9uX1szXSk7CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgdmFyaWFibGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorICAgIC8qKgorICAgICogSW5kZXggc2l6ZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOREVYX1NJWkVfID0gMTY7CisgICAgCisgICAgLyoqCisgICAgKiBJQ1UgZGF0YSBmaWxlIGlucHV0IHN0cmVhbQorICAgICovCisgICAgcHJpdmF0ZSBEYXRhSW5wdXRTdHJlYW0gbV9kYXRhSW5wdXRTdHJlYW1fOworICAgICAgCisgICAgLyoqCisgICAgKiBPZmZzZXQgaW5mb3JtYXRpb24gaW4gdGhlIGluZGV4ZXMuCisgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3Byb3BlcnR5T2Zmc2V0XzsKKyAgICBwcml2YXRlIGludCBtX2V4Y2VwdGlvbk9mZnNldF87CisgICAgcHJpdmF0ZSBpbnQgbV9jYXNlT2Zmc2V0XzsKKyAgICBwcml2YXRlIGludCBtX2FkZGl0aW9uYWxPZmZzZXRfOworICAgIHByaXZhdGUgaW50IG1fYWRkaXRpb25hbFZlY3RvcnNPZmZzZXRfOworICAgIHByaXZhdGUgaW50IG1fYWRkaXRpb25hbENvbHVtbnNDb3VudF87CisgICAgcHJpdmF0ZSBpbnQgbV9yZXNlcnZlZE9mZnNldF87CisgICAgcHJpdmF0ZSBieXRlIG1fdW5pY29kZVZlcnNpb25fW107ICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgKiBEYXRhIGZvcm1hdCAiVVBybyIuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX0lEX1tdID0geyhieXRlKTB4NTUsIChieXRlKTB4NTAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKTB4NzIsIChieXRlKTB4NkZ9OworICAgIC8qKgorICAgICAqIEZvcm1hdCB2ZXJzaW9uOyB0aGlzIGNvZGUgd29ya3Mgd2l0aCBhbGwgdmVyc2lvbnMgd2l0aCB0aGUgc2FtZSBtYWpvcgorICAgICAqIHZlcnNpb24gbnVtYmVyIGFuZCB0aGUgc2FtZSBUcmllIGJpdCBkaXN0cmlidXRpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9WRVJTSU9OX1tdID0geyhieXRlKTB4NCwgKGJ5dGUpMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlUcmllLklOREVYX1NUQUdFXzFfU0hJRlRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKVRyaWUuSU5ERVhfU1RBR0VfMl9TSElGVF99OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVUNoYXJhY3RlclV0aWxpdHkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJVdGlsaXR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMxMGUwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VDaGFyYWN0ZXJVdGlsaXR5LmphdmEKQEAgLTAsMCArMSwxOTQgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworLyoqCisqIEludGVybmFsIGNoYXJhY3RlciB1dGlsaXR5IGNsYXNzIGZvciBzaW1wbGUgZGF0YSB0eXBlIGNvbnZlcnNpb24gYW5kIFN0cmluZyAKKyogcGFyc2luZyBmdW5jdGlvbnMuIERvZXMgbm90IGhhdmUgYW4gYW5hbG9nIGluIHRoZSBKREsuCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSBzZXAyOTAwCisqLworCitwdWJsaWMgZmluYWwgY2xhc3MgVUNoYXJhY3RlclV0aWxpdHkKK3sKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogRGV0ZXJtaW5lcyBpZiBjb2RlcG9pbnQgaXMgYSBub24gY2hhcmFjdGVyCisgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50CisgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZXBvaW50IGlzIGEgbm9uIGNoYXJhY3RlciBmYWxzZSBvdGhlcndpc2UKKyAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc05vbkNoYXJhY3RlcihpbnQgY2gpIAorICAgIHsKKyAgICAgICAgaWYgKChjaCAmIE5PTl9DSEFSQUNURVJfU1VGRklYX01JTl8zXzBfKSA9PSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTk9OX0NIQVJBQ1RFUl9TVUZGSVhfTUlOXzNfMF8pIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gY2ggPj0gTk9OX0NIQVJBQ1RFUl9NSU5fM18xXyAmJiBjaCA8PSAgTk9OX0NIQVJBQ1RFUl9NQVhfM18xXzsKKyAgICB9CisgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvKioKKyAgICAqIGpvaW5pbmcgMiBjaGFycyB0byBmb3JtIGFuIGludAorICAgICogQHBhcmFtIG1zYyBtb3N0IHNpZ25pZmljYW50IGNoYXIKKyAgICAqIEBwYXJhbSBsc2MgbGVhc3Qgc2lnbmlmaWNhbnQgY2hhcgorICAgICogQHJldHVybiBpbnQgZm9ybQorICAgICovCisgICAgc3RhdGljIGludCB0b0ludChjaGFyIG1zYywgY2hhciBsc2MpCisgICAgeworICAgICAgICByZXR1cm4gKChtc2MgPDwgMTYpIHwgbHNjKTsKKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgKiBSZXRyaWV2ZXMgYSBudWxsIHRlcm1pbmF0ZWQgc3Vic3RyaW5nIGZyb20gYW4gYXJyYXkgb2YgYnl0ZXMuCisgICAgKiBTdWJzdHJpbmcgaXMgYSBzZXQgb2Ygbm9uLXplcm8gYnl0ZXMgc3RhcnRpbmcgZnJvbSBhcmd1bWVudCBzdGFydCB0byB0aGUgCisgICAgKiBuZXh0IHplcm8gYnl0ZS4gSWYgdGhlIGZpcnN0IGJ5dGUgaXMgYSB6ZXJvLCB0aGUgbmV4dCBieXRlIHdpbGwgYmUgdGFrZW4gYXMKKyAgICAqIHRoZSBmaXJzdCBieXRlLgorICAgICogQHBhcmFtIHN0ciBzdHJpbmdidWZmZXIgdG8gc3RvcmUgZGF0YSBpbiwgZGF0YSB3aWxsIGJlIHN0b3JlIHdpdGggZWFjaAorICAgICogICAgICAgICAgICBieXRlIGFzIGEgY2hhcgorICAgICogQHBhcmFtIGFycmF5IGJ5dGUgYXJyYXkKKyAgICAqIEBwYXJhbSBpbmRleCB0byBzdGFydCBzdWJzdHJpbmcgaW4gYnl0ZSBjb3VudAorICAgICogQHJldHVybiB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBzdWJzdHJpbmcgd2l0aGluIHRoZSBjaGFyYWN0ZXIgYXJyYXkKKyAgICAqLworICAgIHN0YXRpYyBpbnQgZ2V0TnVsbFRlcm1CeXRlU3ViU3RyaW5nKFN0cmluZ0J1ZmZlciBzdHIsIGJ5dGVbXSBhcnJheSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbmRleCkKKyAgICB7CisgICAgICAgIGJ5dGUgYiA9IDE7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoYiAhPSAwKQorICAgICAgICB7CisgICAgICAgICAgICBiID0gYXJyYXlbaW5kZXhdOworICAgICAgICAgICAgaWYgKGIgIT0gMCkgeworICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoKGNoYXIpKGIgJiAweDAwRkYpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZGV4ICsrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBpbmRleDsKKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgKiBDb21wYXJlcyBhIG51bGwgdGVybWluYXRlZCBzdWJzdHJpbmcgZnJvbSBhbiBhcnJheSBvZiBieXRlcy4KKyAgICAqIFN1YnN0cmluZyBpcyBhIHNldCBvZiBub24temVybyBieXRlcyBzdGFydGluZyBmcm9tIGFyZ3VtZW50IHN0YXJ0IHRvIHRoZSAKKyAgICAqIG5leHQgemVybyBieXRlLiBpZiB0aGUgZmlyc3QgYnl0ZSBpcyBhIHplcm8sIHRoZSBuZXh0IGJ5dGUgd2lsbCBiZSB0YWtlbiBhcworICAgICogdGhlIGZpcnN0IGJ5dGUuCisgICAgKiBAcGFyYW0gc3RyIHN0cmluZyB0byBjb21wYXJlCisgICAgKiBAcGFyYW0gYXJyYXkgYnl0ZSBhcnJheQorICAgICogQHBhcmFtIHN0cmluZGV4IGluZGV4IHdpdGhpbiBzdHIgdG8gc3RhcnQgY29tcGFyaW5nCisgICAgKiBAcGFyYW0gYWluZGV4IGFycmF5IGluZGV4IHRvIHN0YXJ0IGluIGJ5dGUgY291bnQKKyAgICAqIEByZXR1cm4gdGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgc3Vic3RyaW5nIHdpdGhpbiBzdHIgaWYgbWF0Y2hlcyBvdGhlcndpc2UgCisgICAgKiAgICAgICAgIGEgLTEKKyAgICAqLworICAgIHN0YXRpYyBpbnQgY29tcGFyZU51bGxUZXJtQnl0ZVN1YlN0cmluZyhTdHJpbmcgc3RyLCBieXRlW10gYXJyYXksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0cmluZGV4LCBpbnQgYWluZGV4KQorICAgIHsKKyAgICAgICAgYnl0ZSBiID0gMTsKKyAgICAgICAgaW50IGxlbmd0aCA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChiICE9IDApCisgICAgICAgIHsKKyAgICAgICAgICAgIGIgPSBhcnJheVthaW5kZXhdOyAgCisgICAgICAgICAgICBhaW5kZXggKys7CisgICAgICAgICAgICBpZiAoYiA9PSAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nIGFuZCB5ZXQgdGhlIGFycmF5IGhhcyBub3QgCisgICAgICAgICAgICAvLyByZWFjaGVkIHRoZSBlbmQgb2YgdGhlaXIgc3Vic3RyaW5nIHlldCwgYWJvcnQKKyAgICAgICAgICAgIGlmIChzdHJpbmRleCA9PSBsZW5ndGggCisgICAgICAgICAgICAgICAgfHwgKHN0ci5jaGFyQXQoc3RyaW5kZXgpICE9IChjaGFyKShiICYgMHhGRikpKSB7CisgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cmluZGV4ICsrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdHJpbmRleDsKKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgKiBTa2lwIG51bGwgdGVybWluYXRlZCBzdWJzdHJpbmdzIGZyb20gYW4gYXJyYXkgb2YgYnl0ZXMuCisgICAgKiBTdWJzdHJpbmcgaXMgYSBzZXQgb2Ygbm9uLXplcm8gYnl0ZXMgc3RhcnRpbmcgZnJvbSBhcmd1bWVudCBzdGFydCB0byB0aGUgCisgICAgKiBuZXh0IHplcm8gYnl0ZS4gSWYgdGhlIGZpcnN0IGJ5dGUgaXMgYSB6ZXJvLCB0aGUgbmV4dCBieXRlIHdpbGwgYmUgdGFrZW4gYXMKKyAgICAqIHRoZSBmaXJzdCBieXRlLgorICAgICogQHBhcmFtIGFycmF5IGJ5dGUgYXJyYXkKKyAgICAqIEBwYXJhbSBpbmRleCB0byBzdGFydCBzdWJzdHJpbmdzIGluIGJ5dGUgY291bnQKKyAgICAqIEBwYXJhbSBza2lwY291bnQgbnVtYmVyIG9mIG51bGwgdGVybWluYXRlZCBzdWJzdHJpbmdzIHRvIHNraXAKKyAgICAqIEByZXR1cm4gdGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgc3Vic3RyaW5ncyB3aXRoaW4gdGhlIGNoYXJhY3RlciBhcnJheQorICAgICovCisgICAgc3RhdGljIGludCBza2lwTnVsbFRlcm1CeXRlU3ViU3RyaW5nKGJ5dGVbXSBhcnJheSwgaW50IGluZGV4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBza2lwY291bnQpCisgICAgeworICAgICAgICBieXRlIGI7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2tpcGNvdW50OyBpICsrKQorICAgICAgICB7CisgICAgICAgICAgICBiID0gMTsKKyAgICAgICAgICAgIHdoaWxlIChiICE9IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYiA9IGFycmF5W2luZGV4XTsKKyAgICAgICAgICAgICAgICBpbmRleCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICAqIHNraXAgc3Vic3RyaW5ncyBmcm9tIGFuIGFycmF5IG9mIGNoYXJhY3RlcnMsIHdoZXJlIGVhY2ggY2hhcmFjdGVyIGlzIGEgc2V0IAorICAgICAqIG9mIDIgYnl0ZXMuIHN1YnN0cmluZyBpcyBhIHNldCBvZiBub24temVybyBieXRlcyBzdGFydGluZyBmcm9tIGFyZ3VtZW50IAorICAgICAqIHN0YXJ0IHRvIHRoZSBieXRlIG9mIHRoZSBhcmd1bWVudCB2YWx1ZS4gc2tpcHMgdXAgdG8gYSBtYXggbnVtYmVyIG9mIAorICAgICAqIGNoYXJhY3RlcnMKKyAgICAgKiBAcGFyYW0gYXJyYXkgYnl0ZSBhcnJheSB0byBwYXJzZQorICAgICAqIEBwYXJhbSBpbmRleCB0byBzdGFydCBzdWJzdHJpbmdzIGluIGJ5dGUgY291bnQKKyAgICAgKiBAcGFyYW0gbGVuZ3RoIHRoZSBtYXggbnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAKKyAgICAgKiBAcGFyYW0gc2tpcGVuZCB2YWx1ZSBvZiBieXRlIHRvIHNraXAgdG8KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgc2tpcHBlZAorICAgICAqLworICAgIHN0YXRpYyBpbnQgc2tpcEJ5dGVTdWJTdHJpbmcoYnl0ZVtdIGFycmF5LCBpbnQgaW5kZXgsIGludCBsZW5ndGgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGUgc2tpcGVuZCkKKyAgICB7CisgICAgICAgIGludCByZXN1bHQ7CisgICAgICAgIGJ5dGUgYjsKKyAgICAgICAgCisgICAgICAgIGZvciAocmVzdWx0ID0gMDsgcmVzdWx0IDwgbGVuZ3RoOyByZXN1bHQgKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGIgPSBhcnJheVtpbmRleCArIHJlc3VsdF07CisgICAgICAgICAgICBpZiAoYiA9PSBza2lwZW5kKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogTWluaW11bSBzdWZmaXggdmFsdWUgdGhhdCBpbmRpY2F0ZXMgaWYgYSBjaGFyYWN0ZXIgaXMgbm9uIGNoYXJhY3Rlci4KKyAgICAqIFVuaWNvZGUgMy4wIG5vbiBjaGFyYWN0ZXJzCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9OX0NIQVJBQ1RFUl9TVUZGSVhfTUlOXzNfMF8gPSAweEZGRkU7CisgICAgLyoqCisgICAgKiBOZXcgbWluaW11bSBub24gY2hhcmFjdGVyIGluIFVuaWNvZGUgMy4xCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9OX0NIQVJBQ1RFUl9NSU5fM18xXyA9IDB4RkREMDsKKyAgICAvKioKKyAgICAqIE5ldyBub24gY2hhcmFjdGVyIHJhbmdlIGluIFVuaWNvZGUgMy4xCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9OX0NIQVJBQ1RFUl9NQVhfM18xXyA9IDB4RkRFRjsKKyAgICAKKyAgICAvLyBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgLyoqCisgICAgKiBwcml2YXRlIGNvbnN0cnVjdG9yIHRvIGF2b2lkIGluaXRpYWxpc2F0aW9uCisgICAgKi8KKyAgICBwcml2YXRlIFVDaGFyYWN0ZXJVdGlsaXR5KCkKKyAgICB7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VUHJvcGVydHlBbGlhc2VzLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VUHJvcGVydHlBbGlhc2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjYxZTM3OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VQcm9wZXJ0eUFsaWFzZXMuamF2YQpAQCAtMCwwICsxLDY1NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChjKSAyMDAyLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogTm92ZW1iZXIgNSAyMDAyCisqIFNpbmNlOiBJQ1UgMi40CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby4qOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworCisvKioKKyAqIFdyYXBwZXIgZm9yIHRoZSBwbmFtZXMuaWN1IGJpbmFyeSBkYXRhIGZpbGUuICBUaGlzIGRhdGEgZmlsZSBpcworICogaW1wb3J0ZWQgZnJvbSBpY3U0Yy4gIEl0IGNvbnRhaW5zIHByb3BlcnR5IGFuZCBwcm9wZXJ0eSB2YWx1ZQorICogYWxpYXNlcyBmcm9tIHRoZSBVQ0QgZmlsZXMgUHJvcGVydHlBbGlhc2VzLnR4dCBhbmQKKyAqIFByb3BlcnR5VmFsdWVBbGlhc2VzLnR4dC4gIFRoZSBmaWxlIGlzIGJ1aWx0IGJ5IHRoZSBpY3U0YyB0b29sCisgKiBnZW5wbmFtZS4gIEl0IG11c3QgYmUgYnVpbHQgb24gYW4gQVNDSUkgYmlnLWVuZGlhbiBwbGF0Zm9ybSB0byBiZQorICogdXNhYmxlIGluIGljdTRqLgorICoKKyAqIFRoaXMgY2xhc3MgcGVyZm9ybXMgdHdvIGZ1bmN0aW9ucy4KKyAqCisgKiAoMSkgSXQgY2FuIGltcG9ydCB0aGUgZmxhdCBiaW5hcnkgZGF0YSBpbnRvIGEgdHJlZSBvZiB1c2FibGUKKyAqIG9iamVjdHMuCisgKgorICogKDIpIEl0IHByb3ZpZGVzIGFuIEFQSSB0byBhY2Nlc3MgdGhlIHRyZWUgb2Ygb2JqZWN0cy4KKyAqCisgKiBOZWVkbGVzcyB0byBzYXksIHRoaXMgY2xhc3MgaXMgdGlnaHRseSBjb3VwbGVkIHRvIHRoZSBiaW5hcnkgZm9ybWF0CisgKiBvZiBpY3U0YydzIHBuYW1lcy5pY3UgZmlsZS4KKyAqCisgKiBFYWNoIHRpbWUgYSBVUHJvcGVydHlBbGlhc2VzIGlzIGNvbnN0cnVjdGVkLCB0aGUgcG5hbWVzLmljdSBmaWxlIGlzCisgKiByZWFkLCBwYXJzZWQsIGFuZCBhIGRhdGEgdHJlZSBhc3NlbWJsZWQuICBDbGllbnRzIHNob3VsZCBjcmVhdGUgb25lCisgKiBzaW5nbGV0b24gaW5zdGFuY2UgYW5kIGNhY2hlIGl0LgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzaW5jZSBJQ1UgMi40CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVUHJvcGVydHlBbGlhc2VzIGltcGxlbWVudHMgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZSB7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBSdW50aW1lIGRhdGEuICBUaGlzIGlzIGFuIHVuZmxhdHRlbmVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZQorICAgIC8vIGRhdGEgaW4gcG5hbWVzLmljdS4KKworICAgIC8qKgorICAgICAqIE1hcCBmcm9tIHByb3BlcnR5IGVudW0gdmFsdWUgdG8gbmFtZUdyb3VwUG9vbFtdIGluZGV4CisgICAgICovCisgICAgcHJpdmF0ZSBOb25Db250aWd1b3VzRW51bVRvU2hvcnQgZW51bVRvTmFtZTsKKworICAgIC8qKgorICAgICAqIE1hcCBmcm9tIHByb3BlcnR5IGFsaWFzIHRvIHByb3BlcnR5IGVudW0gdmFsdWUKKyAgICAgKi8KKyAgICBwcml2YXRlIE5hbWVUb0VudW0gbmFtZVRvRW51bTsKKworICAgIC8qKgorICAgICAqIE1hcCBmcm9tIHByb3BlcnR5IGVudW0gdmFsdWUgdG8gdmFsdWVNYXBBcnJheVtdIGluZGV4CisgICAgICovCisgICAgcHJpdmF0ZSBOb25Db250aWd1b3VzRW51bVRvU2hvcnQgZW51bVRvVmFsdWU7CisKKyAgICAvKioKKyAgICAgKiBFYWNoIGVudHJ5IHJlcHJlc2VudHMgYSBiaW5hcnkgb3IgZW51bWVyYXRlZCBwcm9wZXJ0eQorICAgICAqLworICAgIHByaXZhdGUgVmFsdWVNYXAgdmFsdWVNYXBBcnJheVtdOworCisgICAgLyoqCisgICAgICogUG9vbCBvZiBjb25jYXRlbmF0ZWQgaW50ZWdlciBydW5zLiAgRWFjaCBydW4gY29udGFpbnMgb25lCisgICAgICogb3IgbW9yZSBlbnRyaWVzLiAgVGhlIGxhc3QgZW50cnkgb2YgdGhlIHJ1biBpcyBuZWdhdGl2ZS4KKyAgICAgKiBBIHplcm8gZW50cnkgaW5kaWNhdGVzICJuL2EiIGluIHRoZSBQcm9wZXJ0eSpBbGlhc2VzLnR4dC4KKyAgICAgKiBFYWNoIGVudHJ5IGlzIGEgc3RyaW5nUG9vbFtdIGluZGV4LgorICAgICAqLworICAgIHByaXZhdGUgc2hvcnQgbmFtZUdyb3VwUG9vbFtdOworCisgICAgLyoqCisgICAgICogUG9vbCBvZiBzdHJpbmdzLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHN0cmluZ1Bvb2xbXTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0YW50cworCisgICAgLyoqCisgICAgICogRGVidWcgZmxhZyAobm90IHJlYWxseSBjb25zdGFudCkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIERFQlVHID0gSUNVRGVidWcuZW5hYmxlZCgicG5hbWVzIik7CisKKyAgICAvKioKKyAgICAgKiBGaWxlIGZvcm1hdCB0aGF0IHRoaXMgY2xhc3MgdW5kZXJzdGFuZHMuCisgICAgICogU2VlIGljdTRjL3NyYy9jb21tb24vcHJvcG5hbWUuaC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX0lEW10gPSB7J3AnLCAnbicsICdhJywgJ20nfTsKKworICAgIC8qKgorICAgICAqIEZpbGUgdmVyc2lvbiB0aGF0IHRoaXMgY2xhc3MgdW5kZXJzdGFuZHMuCisgICAgICogU2VlIGljdTRjL3NyYy9jb21tb24vcHJvcG5hbWUuaC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIERBVEFfRk9STUFUX1ZFUlNJT04gPSAxOworCisgICAgLyoqCisgICAgICogTmFtZSBvZiB0aGUgZGF0YWZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQV9GSUxFX05BTUUgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlVORExFKyIvcG5hbWVzLmljdSI7CisKKyAgICAvKioKKyAgICAgKiBCdWZmZXIgc2l6ZSBvZiBkYXRhZmlsZS4gIFRoZSB3aG9sZSBmaWxlIGlzIDwgMTZrLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQVRBX0JVRkZFUl9TSVpFID0gODE5MjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0cnVjdG9yCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgVVByb3BlcnR5QWxpYXNlcyBvYmplY3QuICBUaGUgYmluYXJ5IGZpbGUKKyAgICAgKiBEQVRBX0ZJTEVfTkFNRSBpcyByZWFkIGZyb20gdGhlIGphci9jbGFzc3BhdGggYW5kIHVuZmxhdHRlbmVkCisgICAgICogaW50byBtZW1iZXIgdmFyaWFibGVzIG9mIHRoaXMgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBVUHJvcGVydHlBbGlhc2VzKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICAvLyBPcGVuIHRoZSAuaWN1IGZpbGUgZnJvbSB0aGUgamFyL2NsYXNzcGF0aAorICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IElDVURhdGEuZ2V0UmVxdWlyZWRTdHJlYW0oREFUQV9GSUxFX05BTUUpOworICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGIgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcywgREFUQV9CVUZGRVJfU0laRSk7CisgICAgICAgIC8vIFJlYWQgYW5kIGRpc2NhcmQgVW5pY29kZSB2ZXJzaW9uLi4uCisgICAgICAgLyogYnl0ZSB1bmljb2RlVmVyc2lvbltdID0gKi9JQ1VCaW5hcnkucmVhZEhlYWRlcihiLCBEQVRBX0ZPUk1BVF9JRCwgdGhpcyk7CisgICAgICAgIERhdGFJbnB1dFN0cmVhbSBkID0gbmV3IERhdGFJbnB1dFN0cmVhbShiKTsKKworICAgICAgICAvLyBSZWNvcmQgdGhlIG9yaWdpbiBwb3NpdGlvbiBvZiB0aGUgZmlsZS4gIEtlZXAgZW5vdWdoIGFyb3VuZAorICAgICAgICAvLyB0byBzZWVrIGJhY2sgdG8gdGhlIHN0YXJ0IG9mIHRoZSBoZWFkZXIuCisgICAgICAgIGQubWFyaygyNTYpOworCisgICAgICAgIHNob3J0IGVudW1Ub05hbWVfb2Zmc2V0ID0gZC5yZWFkU2hvcnQoKTsKKyAgICAgICAgc2hvcnQgbmFtZVRvRW51bV9vZmZzZXQgPSBkLnJlYWRTaG9ydCgpOworICAgICAgICBzaG9ydCBlbnVtVG9WYWx1ZV9vZmZzZXQgPSBkLnJlYWRTaG9ydCgpOworICAgICAgICBzaG9ydCB0b3RhbF9zaXplID0gZC5yZWFkU2hvcnQoKTsKKyAgICAgICAgc2hvcnQgdmFsdWVNYXBfb2Zmc2V0ID0gZC5yZWFkU2hvcnQoKTsKKyAgICAgICAgc2hvcnQgdmFsdWVNYXBfY291bnQgPSBkLnJlYWRTaG9ydCgpOworICAgICAgICBzaG9ydCBuYW1lR3JvdXBQb29sX29mZnNldCA9IGQucmVhZFNob3J0KCk7CisgICAgICAgIHNob3J0IG5hbWVHcm91cFBvb2xfY291bnQgPSBkLnJlYWRTaG9ydCgpOworICAgICAgICBzaG9ydCBzdHJpbmdQb29sX29mZnNldCA9IGQucmVhZFNob3J0KCk7CisgICAgICAgIHNob3J0IHN0cmluZ1Bvb2xfY291bnQgPSBkLnJlYWRTaG9ydCgpOworCisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKAorICAgICAgICAgICAgICAgImVudW1Ub05hbWVfb2Zmc2V0PSIgKyBlbnVtVG9OYW1lX29mZnNldCArICJcbiIgKworICAgICAgICAgICAgICAgIm5hbWVUb0VudW1fb2Zmc2V0PSIgKyBuYW1lVG9FbnVtX29mZnNldCArICJcbiIgKworICAgICAgICAgICAgICAgImVudW1Ub1ZhbHVlX29mZnNldD0iICsgZW51bVRvVmFsdWVfb2Zmc2V0ICsgIlxuIiArCisgICAgICAgICAgICAgICAidG90YWxfc2l6ZT0iICsgdG90YWxfc2l6ZSArICJcbiIgKworICAgICAgICAgICAgICAgInZhbHVlTWFwX29mZnNldD0iICsgdmFsdWVNYXBfb2Zmc2V0ICsgIlxuIiArCisgICAgICAgICAgICAgICAidmFsdWVNYXBfY291bnQ9IiArIHZhbHVlTWFwX2NvdW50ICsgIlxuIiArCisgICAgICAgICAgICAgICAibmFtZUdyb3VwUG9vbF9vZmZzZXQ9IiArIG5hbWVHcm91cFBvb2xfb2Zmc2V0ICsgIlxuIiArCisgICAgICAgICAgICAgICAibmFtZUdyb3VwUG9vbF9jb3VudD0iICsgbmFtZUdyb3VwUG9vbF9jb3VudCArICJcbiIgKworICAgICAgICAgICAgICAgInN0cmluZ1Bvb2xfb2Zmc2V0PSIgKyBzdHJpbmdQb29sX29mZnNldCArICJcbiIgKworICAgICAgICAgICAgICAgInN0cmluZ1Bvb2xfY291bnQ9IiArIHN0cmluZ1Bvb2xfY291bnQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gUmVhZCBpdCBhbGwgKGxlc3MgdGhhbiAzMmspLiAgU2Vla2luZyBhcm91bmQgKHVzaW5nCisgICAgICAgIC8vIG1hcmsvcmVzZXQvc2tpcEJ5dGVzKSBkb2Vzbid0IHdvcmsgZGlyZWN0bHkgb24gdGhlIGZpbGUsCisgICAgICAgIC8vIGJ1dCBpdCB3b3JrcyBmaW5lIGlmIHdlIHJlYWQgZXZlcnl0aGluZyBpbnRvIGEgYnl0ZVtdIGFycmF5CisgICAgICAgIC8vIGZpcnN0LgorICAgICAgICBieXRlIHJhd1tdID0gbmV3IGJ5dGVbdG90YWxfc2l6ZV07CisgICAgICAgIGQucmVzZXQoKTsKKyAgICAgICAgZC5yZWFkRnVsbHkocmF3KTsKKyAgICAgICAgZC5jbG9zZSgpOworCisgICAgICAgIEJ1aWxkZXIgYnVpbGRlciA9IG5ldyBCdWlsZGVyKHJhdyk7CisKKyAgICAgICAgc3RyaW5nUG9vbCA9IGJ1aWxkZXIucmVhZFN0cmluZ1Bvb2woc3RyaW5nUG9vbF9vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ1Bvb2xfY291bnQpOworCisgICAgICAgIG5hbWVHcm91cFBvb2wgPSBidWlsZGVyLnJlYWROYW1lR3JvdXBQb29sKG5hbWVHcm91cFBvb2xfb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lR3JvdXBQb29sX2NvdW50KTsKKworICAgICAgICBidWlsZGVyLnNldHVwVmFsdWVNYXBfbWFwKHZhbHVlTWFwX29mZnNldCwgdmFsdWVNYXBfY291bnQpOworCisgICAgICAgIC8vIFNvbWUgb2YgdGhlIGZvbGxvd2luZyBkYXRhIHN0cnVjdHVyZXMgaGF2ZSB0byBiZSBzZXQgdXAKKyAgICAgICAgLy8gaGVyZSwgX25vdF8gaW4gQnVpbGRlci4gIFRoYXQncyBiZWNhdXNlIHRoZXkgYXJlIGluc3RhbmNlcworICAgICAgICAvLyBvZiBub24tc3RhdGljIGlubmVyIGNsYXNzZXMsIGFuZCB0aGV5IGNvbnRhaW4gaW1wbGljaXQKKyAgICAgICAgLy8gcmVmZXJlbmNlcyB0byB0aGlzLgorCisgICAgICAgIGJ1aWxkZXIuc2VlayhlbnVtVG9OYW1lX29mZnNldCk7CisgICAgICAgIGVudW1Ub05hbWUgPSBuZXcgTm9uQ29udGlndW91c0VudW1Ub1Nob3J0KGJ1aWxkZXIpOworICAgICAgICBidWlsZGVyLm5hbWVHcm91cE9mZnNldFRvSW5kZXgoZW51bVRvTmFtZS5vZmZzZXRBcnJheSk7CisKKyAgICAgICAgYnVpbGRlci5zZWVrKG5hbWVUb0VudW1fb2Zmc2V0KTsKKyAgICAgICAgbmFtZVRvRW51bSA9IG5ldyBOYW1lVG9FbnVtKGJ1aWxkZXIpOworCisgICAgICAgIGJ1aWxkZXIuc2VlayhlbnVtVG9WYWx1ZV9vZmZzZXQpOworICAgICAgICBlbnVtVG9WYWx1ZSA9IG5ldyBOb25Db250aWd1b3VzRW51bVRvU2hvcnQoYnVpbGRlcik7CisgICAgICAgIGJ1aWxkZXIudmFsdWVNYXBPZmZzZXRUb0luZGV4KGVudW1Ub1ZhbHVlLm9mZnNldEFycmF5KTsKKworICAgICAgICB2YWx1ZU1hcEFycmF5ID0gbmV3IFZhbHVlTWFwW3ZhbHVlTWFwX2NvdW50XTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHZhbHVlTWFwX2NvdW50OyArK2kpIHsKKyAgICAgICAgICAgIC8vIE11c3Qgc2VlayB0byB0aGUgc3RhcnQgb2YgZWFjaCBlbnRyeS4KKyAgICAgICAgICAgIGJ1aWxkZXIuc2VlayhidWlsZGVyLnZhbHVlTWFwX21hcFtpXSk7CisgICAgICAgICAgICB2YWx1ZU1hcEFycmF5W2ldID0gbmV3IFZhbHVlTWFwKGJ1aWxkZXIpOworICAgICAgICB9CisKKyAgICAgICAgYnVpbGRlci5jbG9zZSgpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFB1YmxpYyBBUEkKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHByb3BlcnR5IG5hbWUgZ2l2ZW4gYSBwcm9wZXJ0eSBlbnVtLiAgTXVsdGlwbGUKKyAgICAgKiBuYW1lcyBtYXkgYmUgYXZhaWxhYmxlIGZvciBlYWNoIHByb3BlcnR5OyB0aGUgbmFtZUNob2ljZQorICAgICAqIHNlbGVjdHMgYW1vbmcgdGhlbS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFByb3BlcnR5TmFtZShpbnQgcHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5hbWVDaG9pY2UpIHsKKyAgICAgICAgc2hvcnQgbmFtZUdyb3VwSW5kZXggPSBlbnVtVG9OYW1lLmdldFNob3J0KHByb3BlcnR5KTsKKyAgICAgICAgcmV0dXJuIGNob29zZU5hbWVJbkdyb3VwKG5hbWVHcm91cEluZGV4LCBuYW1lQ2hvaWNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBwcm9wZXJ0eSBlbnVtIGdpdmVuIG9uZSBvZiBpdHMgcHJvcGVydHkgbmFtZXMuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRQcm9wZXJ0eUVudW0oU3RyaW5nIHByb3BlcnR5QWxpYXMpIHsKKyAgICAgICAgcmV0dXJuIG5hbWVUb0VudW0uZ2V0RW51bShwcm9wZXJ0eUFsaWFzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSB2YWx1ZSBuYW1lIGdpdmVuIGEgcHJvcGVydHkgZW51bSBhbmQgYSB2YWx1ZSBlbnVtLgorICAgICAqIE11bHRpcGxlIG5hbWVzIG1heSBiZSBhdmFpbGFibGUgZm9yIGVhY2ggdmFsdWU7IHRoZSBuYW1lQ2hvaWNlCisgICAgICogc2VsZWN0cyBhbW9uZyB0aGVtLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZU5hbWUoaW50IHByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5hbWVDaG9pY2UpIHsKKyAgICAgICAgVmFsdWVNYXAgdm0gPSBnZXRWYWx1ZU1hcChwcm9wZXJ0eSk7CisgICAgICAgIHNob3J0IG5hbWVHcm91cEluZGV4ID0gdm0uZW51bVRvTmFtZS5nZXRTaG9ydCh2YWx1ZSk7CisgICAgICAgIHJldHVybiBjaG9vc2VOYW1lSW5Hcm91cChuYW1lR3JvdXBJbmRleCwgbmFtZUNob2ljZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdmFsdWUgZW51bSBnaXZlbiBvbmUgb2YgaXRzIHZhbHVlIG5hbWVzIGFuZCB0aGUKKyAgICAgKiBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGFsaWFzLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UHJvcGVydHlWYWx1ZUVudW0oaW50IHByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlQWxpYXMpIHsKKyAgICAgICAgVmFsdWVNYXAgdm0gPSBnZXRWYWx1ZU1hcChwcm9wZXJ0eSk7CisgICAgICAgIHJldHVybiB2bS5uYW1lVG9FbnVtLmdldEVudW0odmFsdWVBbGlhcyk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRGF0YSBzdHJ1Y3R1cmVzCisKKyAgICAvKioKKyAgICAgKiBBIG1hcCBmb3IgdGhlIGxlZ2FsIHZhbHVlcyBvZiBhIGJpbmFyeSBvciBlbnVtZXJhdGVkIHByb3BlcnRpZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBjbGFzcyBWYWx1ZU1hcCB7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE1hcHMgdmFsdWUgZW51bSB0byBpbmRleCBpbnRvIHRoZSBuYW1lR3JvdXBQb29sW10KKyAgICAgICAgICovCisgICAgICAgIEVudW1Ub1Nob3J0IGVudW1Ub05hbWU7IC8vIHBvbHltb3JwaGljCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE1hcHMgdmFsdWUgbmFtZSB0byB2YWx1ZSBlbnVtLgorICAgICAgICAgKi8KKyAgICAgICAgTmFtZVRvRW51bSBuYW1lVG9FbnVtOworCisgICAgICAgIFZhbHVlTWFwKEJ1aWxkZXIgYikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIHNob3J0IGVudW1Ub05hbWVfb2Zmc2V0ID0gYi5yZWFkU2hvcnQoKTsKKyAgICAgICAgICAgIHNob3J0IG5jRW51bVRvTmFtZV9vZmZzZXQgPSBiLnJlYWRTaG9ydCgpOworICAgICAgICAgICAgc2hvcnQgbmFtZVRvRW51bV9vZmZzZXQgPSBiLnJlYWRTaG9ydCgpOworICAgICAgICAgICAgaWYgKGVudW1Ub05hbWVfb2Zmc2V0ICE9IDApIHsKKyAgICAgICAgICAgICAgICBiLnNlZWsoZW51bVRvTmFtZV9vZmZzZXQpOworICAgICAgICAgICAgICAgIENvbnRpZ3VvdXNFbnVtVG9TaG9ydCB4ID0gbmV3IENvbnRpZ3VvdXNFbnVtVG9TaG9ydChiKTsKKyAgICAgICAgICAgICAgICBiLm5hbWVHcm91cE9mZnNldFRvSW5kZXgoeC5vZmZzZXRBcnJheSk7CisgICAgICAgICAgICAgICAgZW51bVRvTmFtZSA9IHg7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGIuc2VlayhuY0VudW1Ub05hbWVfb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBOb25Db250aWd1b3VzRW51bVRvU2hvcnQgeCA9IG5ldyBOb25Db250aWd1b3VzRW51bVRvU2hvcnQoYik7CisgICAgICAgICAgICAgICAgYi5uYW1lR3JvdXBPZmZzZXRUb0luZGV4KHgub2Zmc2V0QXJyYXkpOworICAgICAgICAgICAgICAgIGVudW1Ub05hbWUgPSB4OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYi5zZWVrKG5hbWVUb0VudW1fb2Zmc2V0KTsKKyAgICAgICAgICAgIG5hbWVUb0VudW0gPSBuZXcgTmFtZVRvRW51bShiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFic3RyYWN0IG1hcCBmcm9tIGVudW0gdmFsdWVzIHRvIGludGVnZXJzLgorICAgICAqLworICAgIHByaXZhdGUgaW50ZXJmYWNlIEVudW1Ub1Nob3J0IHsKKyAgICAgICAgc2hvcnQgZ2V0U2hvcnQoaW50IGVudW1Qcm9iZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJpYyBtYXAgZnJvbSBlbnVtIHZhbHVlcyB0byBvZmZzZXRzLiAgRW51bSB2YWx1ZXMgYXJlCisgICAgICogY29udGlndW91cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBDb250aWd1b3VzRW51bVRvU2hvcnQgaW1wbGVtZW50cyBFbnVtVG9TaG9ydCB7CisgICAgICAgIGludCBlbnVtU3RhcnQ7CisgICAgICAgIGludCBlbnVtTGltaXQ7CisgICAgICAgIHNob3J0IG9mZnNldEFycmF5W107CisKKyAgICAgICAgcHVibGljIHNob3J0IGdldFNob3J0KGludCBlbnVtUHJvYmUpIHsKKyAgICAgICAgICAgIGlmIChlbnVtUHJvYmUgPCBlbnVtU3RhcnQgfHwgZW51bVByb2JlID49IGVudW1MaW1pdCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZW51bS4gZW51bVN0YXJ0ID0gIiArZW51bVN0YXJ0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZW51bUxpbWl0ID0gIiArIGVudW1MaW1pdCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGVudW1Qcm9iZSA9ICIgKyBlbnVtUHJvYmUgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBvZmZzZXRBcnJheVtlbnVtUHJvYmUgLSBlbnVtU3RhcnRdOworICAgICAgICB9CisKKyAgICAgICAgQ29udGlndW91c0VudW1Ub1Nob3J0KElDVUJpbmFyeVN0cmVhbSBzKSB0aHJvd3MgSU9FeGNlcHRpb24gIHsKKyAgICAgICAgICAgIGVudW1TdGFydCA9IHMucmVhZEludCgpOworICAgICAgICAgICAgZW51bUxpbWl0ID0gcy5yZWFkSW50KCk7CisgICAgICAgICAgICBpbnQgY291bnQgPSBlbnVtTGltaXQgLSBlbnVtU3RhcnQ7CisgICAgICAgICAgICBvZmZzZXRBcnJheSA9IG5ldyBzaG9ydFtjb3VudF07CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIG9mZnNldEFycmF5W2ldID0gcy5yZWFkU2hvcnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyaWMgbWFwIGZyb20gZW51bSB2YWx1ZXMgdG8gb2Zmc2V0cy4gIEVudW0gdmFsdWVzIG5lZWQgbm90CisgICAgICogYmUgY29udGlndW91cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBOb25Db250aWd1b3VzRW51bVRvU2hvcnQgaW1wbGVtZW50cyBFbnVtVG9TaG9ydCB7CisgICAgICAgIGludCBlbnVtQXJyYXlbXTsKKyAgICAgICAgc2hvcnQgb2Zmc2V0QXJyYXlbXTsKKworICAgICAgICBwdWJsaWMgc2hvcnQgZ2V0U2hvcnQoaW50IGVudW1Qcm9iZSkgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGVudW1BcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChlbnVtQXJyYXlbaV0gPCBlbnVtUHJvYmUpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChlbnVtQXJyYXlbaV0gPiBlbnVtUHJvYmUpIGJyZWFrOworICAgICAgICAgICAgICAgIHJldHVybiBvZmZzZXRBcnJheVtpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZW51bSIpOworICAgICAgICB9CisKKyAgICAgICAgTm9uQ29udGlndW91c0VudW1Ub1Nob3J0KElDVUJpbmFyeVN0cmVhbSBzKSB0aHJvd3MgSU9FeGNlcHRpb24gIHsKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgaW50IGNvdW50ID0gcy5yZWFkSW50KCk7CisgICAgICAgICAgICBlbnVtQXJyYXkgPSBuZXcgaW50W2NvdW50XTsKKyAgICAgICAgICAgIG9mZnNldEFycmF5ID0gbmV3IHNob3J0W2NvdW50XTsKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBlbnVtQXJyYXlbaV0gPSBzLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBvZmZzZXRBcnJheVtpXSA9IHMucmVhZFNob3J0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYXAgZnJvbSBuYW1lcyB0byBlbnVtIHZhbHVlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGNsYXNzIE5hbWVUb0VudW0geworICAgICAgICBpbnQgZW51bUFycmF5W107CisgICAgICAgIHNob3J0IG5hbWVBcnJheVtdOworCisgICAgICAgIGludCBnZXRFbnVtKFN0cmluZyBuYW1lUHJvYmUpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxuYW1lQXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVQcm9wZXJ0eUFsaWFzZXMuY29tcGFyZShuYW1lUHJvYmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nUG9vbFtuYW1lQXJyYXlbaV1dKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA+IDApIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChjIDwgMCkgYnJlYWs7CisgICAgICAgICAgICAgICAgcmV0dXJuIGVudW1BcnJheVtpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgbmFtZTogIiArIG5hbWVQcm9iZSk7CisgICAgICAgIH0KKworICAgICAgICBOYW1lVG9FbnVtKEJ1aWxkZXIgYikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgaW50IGNvdW50ID0gYi5yZWFkSW50KCk7CisgICAgICAgICAgICBlbnVtQXJyYXkgPSBuZXcgaW50W2NvdW50XTsKKyAgICAgICAgICAgIG5hbWVBcnJheSA9IG5ldyBzaG9ydFtjb3VudF07CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgZW51bUFycmF5W2ldID0gYi5yZWFkSW50KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgbmFtZUFycmF5W2ldID0gYi5zdHJpbmdPZmZzZXRUb0luZGV4KGIucmVhZFNob3J0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUnVudGltZSBpbXBsZW1lbnRhdGlvbgorCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gcHJvcGVydHkgbmFtZXMsIHJldHVybmluZyA8MCwgMCwgb3IgPjAuICBUaGUKKyAgICAgKiBjb21wYXJpc29uIGlzIHRoYXQgZGVzY3JpYmVkIGFzICJsb29zZSIgbWF0Y2hpbmcgaW4gdGhlCisgICAgICogUHJvcGVydHkqQWxpYXNlcy50eHQgZmlsZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShTdHJpbmcgc3RyYSwgU3RyaW5nIHN0cmIpIHsKKyAgICAgICAgLy8gTm90ZTogVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBhIGxpdGVyYWwgY29weSBvZgorICAgICAgICAvLyB1cHJ2X2NvbXBhcmVQcm9wZXJ0eU5hbWVzLiAgSXQgY2FuIHByb2JhYmx5IGJlIGltcHJvdmVkLgorICAgICAgICBpbnQgaXN0cmE9MCwgaXN0cmI9MCwgcmM7CisgICAgICAgIGludCBjc3RyYT0wLCBjc3RyYj0wOworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAvKiBJZ25vcmUgZGVsaW1pdGVycyAnLScsICdfJywgYW5kIEFTQ0lJIFdoaXRlX1NwYWNlICovCisgICAgICAgICAgICB3aGlsZSAoaXN0cmE8c3RyYS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGNzdHJhID0gc3RyYS5jaGFyQXQoaXN0cmEpOworICAgICAgICAgICAgICAgIHN3aXRjaCAoY3N0cmEpIHsKKyAgICAgICAgICAgICAgICBjYXNlICctJzogIGNhc2UgJ18nOiAgY2FzZSAnICc6ICBjYXNlICdcdCc6CisgICAgICAgICAgICAgICAgY2FzZSAnXG4nOiBjYXNlIDB4Yi8qXHYqLzogY2FzZSAnXGYnOiBjYXNlICdccic6CisgICAgICAgICAgICAgICAgICAgICsraXN0cmE7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgd2hpbGUgKGlzdHJiPHN0cmIubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBjc3RyYiA9IHN0cmIuY2hhckF0KGlzdHJiKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNzdHJiKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnLSc6ICBjYXNlICdfJzogIGNhc2UgJyAnOiAgY2FzZSAnXHQnOgorICAgICAgICAgICAgICAgIGNhc2UgJ1xuJzogY2FzZSAweGIvKlx2Ki86IGNhc2UgJ1xmJzogY2FzZSAnXHInOgorICAgICAgICAgICAgICAgICAgICArK2lzdHJiOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIElmIHdlIHJlYWNoIHRoZSBlbmRzIG9mIGJvdGggc3RyaW5ncyB0aGVuIHRoZXkgbWF0Y2ggKi8KKyAgICAgICAgICAgIGJvb2xlYW4gZW5kc3RyYSA9IGlzdHJhPT1zdHJhLmxlbmd0aCgpOworICAgICAgICAgICAgYm9vbGVhbiBlbmRzdHJiID0gaXN0cmI9PXN0cmIubGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAoZW5kc3RyYSkgeworICAgICAgICAgICAgICAgIGlmIChlbmRzdHJiKSByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICBjc3RyYSA9IDA7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVuZHN0cmIpIHsKKyAgICAgICAgICAgICAgICBjc3RyYiA9IDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJjID0gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShjc3RyYSkgLSBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGNzdHJiKTsKKyAgICAgICAgICAgIGlmIChyYyAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJjOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICArK2lzdHJhOworICAgICAgICAgICAgKytpc3RyYjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGFuIGluZGV4IHRvIGEgcnVuIHdpdGhpbiB0aGUgbmFtZUdyb3VwUG9vbFtdLCBhbmQgYQorICAgICAqIG5hbWVDaG9pY2UgKDAsMSwuLi4pLCBzZWxlY3QgdGhlIG5hbWVDaG9pY2UtdGggZW50cnkgb2YgdGhlIHJ1bi4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBjaG9vc2VOYW1lSW5Hcm91cChzaG9ydCBuYW1lR3JvdXBJbmRleCwgaW50IG5hbWVDaG9pY2UpIHsKKyAgICAgICAgaWYgKG5hbWVDaG9pY2UgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIG5hbWUgY2hvaWNlIik7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKG5hbWVDaG9pY2UtLSA+IDApIHsKKyAgICAgICAgICAgIGlmIChuYW1lR3JvdXBQb29sW25hbWVHcm91cEluZGV4KytdIDwgMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgbmFtZSBjaG9pY2UiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzaG9ydCBhID0gbmFtZUdyb3VwUG9vbFtuYW1lR3JvdXBJbmRleF07CisgICAgICAgIHJldHVybiBzdHJpbmdQb29sWyhhIDwgMCkgPyAtYSA6IGFdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdmFsdWVNYXBbXSBlbnRyeSBmb3IgYSBnaXZlbiBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFZhbHVlTWFwIGdldFZhbHVlTWFwKGludCBwcm9wZXJ0eSkgeworICAgICAgICBpbnQgdmFsdWVNYXBJbmRleCA9IGVudW1Ub1ZhbHVlLmdldFNob3J0KHByb3BlcnR5KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlTWFwQXJyYXlbdmFsdWVNYXBJbmRleF07CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSUNVQmluYXJ5IEFQSQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGRhdGEgdmVyc2lvbiBjYW4gYmUgdXNlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0RhdGFWZXJzaW9uQWNjZXB0YWJsZShieXRlIHZlcnNpb25bXSkgICB7CisgICAgICAgIHJldHVybiB2ZXJzaW9uWzBdID09IERBVEFfRk9STUFUX1ZFUlNJT047CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQnVpbGRlcgorCisgICAgLyoqCisgICAgICogQSBzcGVjaWFsaXplZCBJQ1VCaW5hcnlTdHJlYW0gdGhhdCBjYW4gbWFwIGJldHdlZW4gb2Zmc2V0cyBhbmQKKyAgICAgKiBpbmRleCB2YWx1ZXMgaW50byB2YXJpb3VzIGFycmF5cyAoc3RyaW5nUG9vbCwgbmFtZUdyb3VwUG9vbCwKKyAgICAgKiBhbmQgdmFsdWVNYXApLiAgSXQgYWxzbyBrbm93cyBob3cgdG8gcmVhZCB2YXJpb3VzIHN0cnVjdHVyZXMuCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIEJ1aWxkZXIgZXh0ZW5kcyBJQ1VCaW5hcnlTdHJlYW0geworCisgICAgICAgIC8vIG1hcFtpXSA9IG9mZnNldCBvZiBvYmplY3QgaS4gIFdlIG5lZWQgbWFwcyBmb3IgYWxsIG9mIG91cgorICAgICAgICAvLyBhcnJheXMuICBUaGUgYXJyYXlzIGFyZSBpbmRleGVkIGJ5IG9mZnNldCBpbiB0aGUgcmF3IGJpbmFyeQorICAgICAgICAvLyBmaWxlOyB3ZSBuZWVkIHRvIHRyYW5zbGF0ZSB0aGF0IHRvIGluZGV4LgorCisgICAgICAgIHByaXZhdGUgc2hvcnQgc3RyaW5nUG9vbF9tYXBbXTsKKworICAgICAgICBwcml2YXRlIHNob3J0IHZhbHVlTWFwX21hcFtdOworCisgICAgICAgIHByaXZhdGUgc2hvcnQgbmFtZUdyb3VwX21hcFtdOworCisgICAgICAgIHB1YmxpYyBCdWlsZGVyKGJ5dGUgcmF3W10pIHsKKyAgICAgICAgICAgIHN1cGVyKHJhdyk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHZhbHVlTWFwX21hcFtdIG11c3QgYmUgc2V0dXAgaW4gYWR2YW5jZS4gIFRoaXMgbWV0aG9kCisgICAgICAgICAqIGRvZXMgdGhhdC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldHVwVmFsdWVNYXBfbWFwKHNob3J0IG9mZnNldCwgc2hvcnQgY291bnQpIHsKKyAgICAgICAgICAgIHZhbHVlTWFwX21hcCA9IG5ldyBzaG9ydFtjb3VudF07CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIC8vIFN0YXJ0IG9mIGVhY2ggZW50cnkuICBFYWNoIGVudHJ5IGlzIDYgYnl0ZXMgbG9uZy4KKyAgICAgICAgICAgICAgICB2YWx1ZU1hcF9tYXBbaV0gPSAoc2hvcnQpIChvZmZzZXQgKyBpICogNik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmVhZCBzdHJpbmdQb29sW10uICBCdWlsZCB1cCB0cmFuc2xhdGlvbiB0YWJsZSBmcm9tIG9mZnNldHMKKyAgICAgICAgICogdG8gc3RyaW5nIGluZGljZXMgKHN0cmluZ1Bvb2xfbWFwW10pLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZ1tdIHJlYWRTdHJpbmdQb29sKHNob3J0IG9mZnNldCwgc2hvcnQgY291bnQpCisgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICAgICAgc2VlayhvZmZzZXQpOworICAgICAgICAgICAgLy8gQWxsb2NhdGUgb25lIG1vcmUgc3RyaW5nUG9vbCBlbnRyeSB0aGFuIG5lZWRlZC4gIFVzZSB0aGlzCisgICAgICAgICAgICAvLyB0byBzdG9yZSBhICJubyBzdHJpbmciIGVudHJ5IGluIHRoZSBwb29sLCBhdCBpbmRleCAwLiAgVGhpcworICAgICAgICAgICAgLy8gbWFwcyB0byBvZmZzZXQgMCwgc28gbGV0IHN0cmluZ1Bvb2xfbWFwWzBdID0gMC4KKyAgICAgICAgICAgIFN0cmluZyBzdHJpbmdQb29sW10gPSBuZXcgU3RyaW5nW2NvdW50ICsgMV07CisgICAgICAgICAgICBzdHJpbmdQb29sX21hcCA9IG5ldyBzaG9ydFtjb3VudCArIDFdOworICAgICAgICAgICAgc2hvcnQgcG9zID0gb2Zmc2V0OworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIHN0cmluZ1Bvb2xfbWFwWzBdID0gMDsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MTsgaTw9Y291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHdvcmtzIGJlY2F1c2UgdGhlIG5hbWUgaXMgaW52YXJpYW50LUFTQ0lJCisgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IChjaGFyKSByZWFkVW5zaWduZWRCeXRlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjID09IDApIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzdHJpbmdQb29sX21hcFtpXSA9IHBvczsKKyAgICAgICAgICAgICAgICBzdHJpbmdQb29sW2ldID0gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgcG9zICs9IHN0cmluZ1Bvb2xbaV0ubGVuZ3RoKCkgKyAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJyZWFkIHN0cmluZ1Bvb2wgeCAiICsgY291bnQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOiAiICsgc3RyaW5nUG9vbFsxXSArICIsICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdQb29sWzJdICsgIiwgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ1Bvb2xbM10gKyAiLC4uLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHN0cmluZ1Bvb2w7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmVhZCB0aGUgbmFtZUdyb3VwUG9vbFtdLCBhbmQgYnVpbGQgdXAgdGhlIG9mZnNldC0+aW5kZXgKKyAgICAgICAgICogbWFwIChuYW1lR3JvdXBQb29sX21hcFtdKS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzaG9ydFtdIHJlYWROYW1lR3JvdXBQb29sKHNob3J0IG9mZnNldCwgc2hvcnQgY291bnQpCisgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICAgICAgLy8gUmVhZCBuYW1lR3JvdXBQb29sW10uICBUaGlzIGNvbnRhaW5zIG9mZnNldHMgZnJvbSBzdGFydCBvZgorICAgICAgICAgICAgLy8gaGVhZGVyLiAgV2UgdHJhbnNsYXRlIHRoZXNlIGludG8gaW5kaWNlcyBpbnRvIHN0cmluZ1Bvb2xbXQorICAgICAgICAgICAgLy8gb24gdGhlIGZseS4gIFRoZSBvZmZzZXQgMCwgd2hpY2ggaW5kaWNhdGVzICJubyBlbnRyeSIsIHdlCisgICAgICAgICAgICAvLyB0cmFuc2xhdGUgaW50byBpbmRleCAwLCB3aGljaCBjb250YWlucyBhIG51bGwgU3RyaW5nCisgICAgICAgICAgICAvLyBwb2ludGVyLgorICAgICAgICAgICAgc2VlayhvZmZzZXQpOworICAgICAgICAgICAgc2hvcnQgcG9zID0gb2Zmc2V0OworICAgICAgICAgICAgc2hvcnQgbmFtZUdyb3VwUG9vbFtdID0gbmV3IHNob3J0W2NvdW50XTsKKyAgICAgICAgICAgIG5hbWVHcm91cF9tYXAgPSBuZXcgc2hvcnRbY291bnRdOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBuYW1lR3JvdXBfbWFwW2ldID0gcG9zOworICAgICAgICAgICAgICAgIG5hbWVHcm91cFBvb2xbaV0gPSBzdHJpbmdPZmZzZXRUb0luZGV4KHJlYWRTaG9ydCgpKTsKKyAgICAgICAgICAgICAgICBwb3MgKz0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicmVhZCBuYW1lR3JvdXBQb29sIHggIiArIGNvdW50ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjogIiArIG5hbWVHcm91cFBvb2xbMF0gKyAiLCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZUdyb3VwUG9vbFsxXSArICIsICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lR3JvdXBQb29sWzJdICsgIiwuLi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBuYW1lR3JvdXBQb29sOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnZlcnQgYW4gb2Zmc2V0IGludG8gdGhlIHN0cmluZyBwb29sIGludG8gYSBzdHJpbmdQb29sW10KKyAgICAgICAgICogaW5kZXguCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHNob3J0IHN0cmluZ09mZnNldFRvSW5kZXgoc2hvcnQgb2Zmc2V0KSB7CisgICAgICAgICAgICBpbnQgcHJvYmUgPSBvZmZzZXQ7CisgICAgICAgICAgICBpZiAocHJvYmUgPCAwKSBwcm9iZSA9IC1wcm9iZTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxzdHJpbmdQb29sX21hcC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChzdHJpbmdQb29sX21hcFtpXSA9PSBwcm9iZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHNob3J0KSAoKG9mZnNldCA8IDApID8gLWkgOiBpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJDYW4ndCBtYXAgc3RyaW5nIHBvb2wgb2Zmc2V0ICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICsgIiB0byBpbmRleCIpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnZlcnQgYW4gYXJyYXkgb2Ygb2Zmc2V0cyBpbnRvIHRoZSBzdHJpbmcgcG9vbCBpbnRvIGFuCisgICAgICAgICAqIGFycmF5IG9mIHN0cmluZ1Bvb2xbXSBpbmRpY2VzLiAgTU9ESUZJRVMgVEhFIEFSUkFZIElOCisgICAgICAgICAqIFBMQUNFLgorICAgICAgICAgKi8KKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICBwcml2YXRlIHZvaWQgc3RyaW5nT2Zmc2V0VG9JbmRleChzaG9ydCBhcnJheVtdKSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8YXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHN0cmluZ09mZnNldFRvSW5kZXgoYXJyYXlbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vL0NMT1ZFUjpPTgorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZXJ0IGFuIG9mZnNldCBpbnRvIHRoZSB2YWx1ZSBtYXAgaW50byBhIHZhbHVlTWFwW10KKyAgICAgICAgICogaW5kZXguCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHNob3J0IHZhbHVlTWFwT2Zmc2V0VG9JbmRleChzaG9ydCBvZmZzZXQpIHsKKyAgICAgICAgICAgIGZvciAoc2hvcnQgaT0wOyBpPHZhbHVlTWFwX21hcC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZU1hcF9tYXBbaV0gPT0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkNhbid0IG1hcCB2YWx1ZSBtYXAgb2Zmc2V0ICIgKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICsgIiB0byBpbmRleCIpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnZlcnQgYW4gYXJyYXkgb2Ygb2Zmc2V0cyBpbnRvIHRoZSB2YWx1ZSBtYXAgYXJyYXkgaW50bworICAgICAgICAgKiBhbiBhcnJheSBvZiB2YWx1ZU1hcFtdIGluZGljZXMuICBNT0RJRklFUyBUSEUgQVJSQVkgSU4KKyAgICAgICAgICogUExBQ0UuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgdmFsdWVNYXBPZmZzZXRUb0luZGV4KHNob3J0IGFycmF5W10pIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxhcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGFycmF5W2ldID0gdmFsdWVNYXBPZmZzZXRUb0luZGV4KGFycmF5W2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZXJ0IGFuIG9mZnNldCBpbnRvIHRoZSBuYW1lIGdyb3VwIHBvb2wgaW50byBhCisgICAgICAgICAqIG5hbWVHcm91cFBvb2xbXSBpbmRleC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgc2hvcnQgbmFtZUdyb3VwT2Zmc2V0VG9JbmRleChzaG9ydCBvZmZzZXQpIHsKKyAgICAgICAgICAgIGZvciAoc2hvcnQgaT0wOyBpPG5hbWVHcm91cF9tYXAubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAobmFtZUdyb3VwX21hcFtpXSA9PSBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkNhbid0IG1hcCBuYW1lIGdyb3VwIG9mZnNldCAiICsgb2Zmc2V0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgdG8gaW5kZXgiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZXJ0IGFuIGFycmF5IG9mIG9mZnNldHMgaW50byB0aGUgbmFtZSBncm91cCBwb29sIGludG8gYW4KKyAgICAgICAgICogYXJyYXkgb2YgbmFtZUdyb3VwUG9vbFtdIGluZGljZXMuICBNT0RJRklFUyBUSEUgQVJSQVkgSU4KKyAgICAgICAgICogUExBQ0UuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgbmFtZUdyb3VwT2Zmc2V0VG9JbmRleChzaG9ydCBhcnJheVtdKSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8YXJyYXkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBhcnJheVtpXSA9IG5hbWVHcm91cE9mZnNldFRvSW5kZXgoYXJyYXlbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVJMSGFuZGxlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVJMSGFuZGxlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyYTFjNzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9VUkxIYW5kbGVyLmphdmEKQEAgLTAsMCArMSwyNDMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZFJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kOworaW1wb3J0IGphdmEubmV0LkphclVSTENvbm5lY3Rpb247CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5qYXIuSmFyRW50cnk7CitpbXBvcnQgamF2YS51dGlsLmphci5KYXJGaWxlOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVVJMSGFuZGxlciB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUFJPUE5BTUUgPSAidXJsaGFuZGxlci5wcm9wcyI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTWFwIGhhbmRsZXJzOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBJQ1VEZWJ1Zy5lbmFibGVkKCJVUkxIYW5kbGVyIik7CisgICAgCisgICAgc3RhdGljIHsKKyAgICAgICAgTWFwIGggPSBudWxsOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIElucHV0U3RyZWFtIGlzID0gVVJMSGFuZGxlci5jbGFzcy5nZXRSZXNvdXJjZUFzU3RyZWFtKFBST1BOQU1FKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGlzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpcyA9IENsYXNzTG9hZGVyLmdldFN5c3RlbUNsYXNzTG9hZGVyKCkuZ2V0UmVzb3VyY2VBc1N0cmVhbShQUk9QTkFNRSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgQ2xhc3NbXSBwYXJhbXMgPSB7IFVSTC5jbGFzcyB9OworICAgICAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpcykpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvciAoU3RyaW5nIGxpbmUgPSBici5yZWFkTGluZSgpOyBsaW5lICE9IG51bGw7IGxpbmUgPSBici5yZWFkTGluZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnRyaW0oKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChsaW5lLmxlbmd0aCgpID09IDAgfHwgbGluZS5jaGFyQXQoMCkgPT0gJyMnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaW50IGl4ID0gbGluZS5pbmRleE9mKCc9Jyk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoaXggPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKCJiYWQgdXJsaGFuZGxlciBsaW5lOiAnIiArIGxpbmUgKyAiJyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSBsaW5lLnN1YnN0cmluZygwLCBpeCkudHJpbSgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBsaW5lLnN1YnN0cmluZyhpeCsxKS50cmltKCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3MgY2wgPSBDbGFzcy5mb3JOYW1lKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCBtID0gY2wuZ2V0RGVjbGFyZWRNZXRob2QoImdldCIsIHBhcmFtcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaC5wdXQoa2V5LCBtKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5lcnIucHJpbnRsbihlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaChOb1N1Y2hNZXRob2RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0uZXJyLnByaW50bG4oZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2goU2VjdXJpdHlFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0uZXJyLnByaW50bG4oZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICBpZiAoREVCVUcpIFN5c3RlbS5lcnIucHJpbnRsbih0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaGFuZGxlcnMgPSBoOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFVSTEhhbmRsZXIgZ2V0KFVSTCB1cmwpIHsKKyAgICAgICAgaWYgKHVybCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nIHByb3RvY29sID0gdXJsLmdldFByb3RvY29sKCk7CisgICAgICAgIAorICAgICAgICBpZiAoaGFuZGxlcnMgIT0gbnVsbCkgeworICAgICAgICAgICAgTWV0aG9kIG0gPSAoTWV0aG9kKWhhbmRsZXJzLmdldChwcm90b2NvbCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChtICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBVUkxIYW5kbGVyIGhhbmRsZXIgPSAoVVJMSGFuZGxlciltLmludm9rZShudWxsLCBuZXcgT2JqZWN0W10geyB1cmwgfSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoaGFuZGxlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0uZXJyLnByaW50bG4oZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0uZXJyLnByaW50bG4oZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZ2V0RGVmYXVsdCh1cmwpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIFVSTEhhbmRsZXIgZ2V0RGVmYXVsdChVUkwgdXJsKSB7CisgICAgICAgIFN0cmluZyBwcm90b2NvbCA9IHVybC5nZXRQcm90b2NvbCgpOworICAgICAgICAKKyAgICAgICAgaWYgKHByb3RvY29sLmVxdWFscygiZmlsZSIpKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IEZpbGVVUkxIYW5kbGVyKHVybCk7CisgICAgICAgIH0gZWxzZSBpZiAocHJvdG9jb2wuZXF1YWxzKCJqYXIiKSkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBKYXJVUkxIYW5kbGVyKHVybCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBGaWxlVVJMSGFuZGxlciBleHRlbmRzIFVSTEhhbmRsZXIgeworICAgICAgICBGaWxlIGZpbGU7CisgICAgICAgIFN0cmluZyByb290OworICAgICAgICAKKyAgICAgICAgRmlsZVVSTEhhbmRsZXIoVVJMIHVybCkgeworICAgICAgICAgICAgcm9vdCA9IHVybC5nZXRQYXRoKCk7CisgICAgICAgICAgICBmaWxlID0gbmV3IEZpbGUocm9vdCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghZmlsZS5leGlzdHMoKSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLmVyci5wcmludGxuKCJmaWxlIGRvZXMgbm90IGV4aXN0Iik7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCBndWlkZShVUkxWaXNpdG9yIHYsIGJvb2xlYW4gcmVjdXJzZSwgYm9vbGVhbiBzdHJpcCkgeworICAgICAgICAgICAgaWYgKGZpbGUuaXNEaXJlY3RvcnkoKSkgeworICAgICAgICAgICAgICAgIHByb2Nlc3ModiwgcmVjdXJzZSwgc3RyaXAsICIvIiwgZmlsZS5saXN0RmlsZXMoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHYudmlzaXQoZmlsZS5nZXROYW1lKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHZvaWQgcHJvY2VzcyhVUkxWaXNpdG9yIHYsIGJvb2xlYW4gcmVjdXJzZSwgYm9vbGVhbiBzdHJpcCwgU3RyaW5nIHBhdGgsIEZpbGVbXSBmaWxlcykgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIEZpbGUgZiA9IGZpbGVzW2ldOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChmLmlzRGlyZWN0b3J5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlY3Vyc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3ModiwgcmVjdXJzZSwgc3RyaXAsIHBhdGggKyBmLmdldE5hbWUoKSsgJy8nLCBmLmxpc3RGaWxlcygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHYudmlzaXQoc3RyaXA/IGYuZ2V0TmFtZSgpIDogcGF0aCArIGYuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgSmFyVVJMSGFuZGxlciBleHRlbmRzIFVSTEhhbmRsZXIgeworICAgICAgICBKYXJGaWxlIGphckZpbGU7CisgICAgICAgIFN0cmluZyBwcmVmaXg7CisgICAgICAgIAorICAgICAgICBKYXJVUkxIYW5kbGVyKFVSTCB1cmwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcHJlZml4ID0gdXJsLmdldFBhdGgoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpbnQgaXggPSBwcmVmaXguaW5kZXhPZigiIS8iKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoaXggPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBwcmVmaXggPSBwcmVmaXguc3Vic3RyaW5nKGl4ICsgMik7IC8vIHRydW5jYXRlIGFmdGVyICIhLyIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgSmFyVVJMQ29ubmVjdGlvbiBjb25uID0gKEphclVSTENvbm5lY3Rpb24pdXJsLm9wZW5Db25uZWN0aW9uKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgamFyRmlsZSA9IGNvbm4uZ2V0SmFyRmlsZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0uZXJyLnByaW50bG4oImljdXJiIGphciBlcnJvcjogIiArIGUpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImphciBlcnJvcjogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgZ3VpZGUoVVJMVmlzaXRvciB2LCBib29sZWFuIHJlY3Vyc2UsIGJvb2xlYW4gc3RyaXApIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgRW51bWVyYXRpb24gZW50cmllcyA9IGphckZpbGUuZW50cmllcygpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHdoaWxlIChlbnRyaWVzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgICAgIEphckVudHJ5IGVudHJ5ID0gKEphckVudHJ5KWVudHJpZXMubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmICghZW50cnkuaXNEaXJlY3RvcnkoKSkgeyAvLyBza2lwIGp1c3QgZGlyZWN0b3J5IHBhdGhzCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGVudHJ5LmdldE5hbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aChwcmVmaXgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuc3Vic3RyaW5nKHByZWZpeC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl4ID0gbmFtZS5sYXN0SW5kZXhPZignLycpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpeCAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlY3Vyc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaXApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnN1YnN0cmluZyhpeCsxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LnZpc2l0KG5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSBTeXN0ZW0uZXJyLnByaW50bG4oImljdXJiIGphciBlcnJvcjogIiArIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGd1aWRlKFVSTFZpc2l0b3IgdmlzaXRvciwgYm9vbGVhbiByZWN1cnNlKQorICAgIHsKKyAgICAgICAgZ3VpZGUodmlzaXRvciwgcmVjdXJzZSwgdHJ1ZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGd1aWRlKFVSTFZpc2l0b3IgdmlzaXRvciwgYm9vbGVhbiByZWN1cnNlLCBib29sZWFuIHN0cmlwKTsKKyAgICAKKyAgICBwdWJsaWMgaW50ZXJmYWNlIFVSTFZpc2l0b3IgeworICAgICAgICB2b2lkIHZpc2l0KFN0cmluZyBzdHIpOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVNlcmlhbGl6ZWRTZXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VTZXJpYWxpemVkU2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ3NTQ4MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1VTZXJpYWxpemVkU2V0LmphdmEKQEAgLTAsMCArMSwxOTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisvKioKKyAqIEB2ZXJzaW9uICAgICAxLjEKKyAqIEBhdXRob3IgICAgIE1hcmt1cyBXLiBTY2hlcmVyCisgKiBSYW06IEFkZCBkb2N1bWVudGF0aW9uLCByZW1vdmUgdW53YW50ZWQgbWV0aG9kcywgaW1wcm92ZSBjb3ZlcmFnZS4KKyAqLworCisvKioKKyAqIFNpbXBsZSBjbGFzcyBmb3IgaGFuZGxpbmcgc2VyaWFsaXplZCBVU2V0L1VuaWNvZGVTZXQgc3RydWN0dXJlcworICogd2l0aG91dCBvYmplY3QgY3JlYXRpb24uIFNlZSBJQ1U0QyBpY3Uvc291cmNlL2NvbW1vbi91c2V0LmMuCisgKgorICogQGludGVybmFsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVU2VyaWFsaXplZFNldCB7CisgICAgLyoqCisgICAgICogRmlsbCBpbiB0aGUgZ2l2ZW4gc2VyaWFsaXplZCBzZXQgb2JqZWN0LgorICAgICAqIEBwYXJhbSBzcmMgcG9pbnRlciB0byBzdGFydCBvZiBhcnJheQorICAgICAqIEBwYXJhbSBzcmNTdGFydCBwb2ludGVyIHRvIHN0YXJ0IG9mIHNlcmlhbGl6ZWQgZGF0YSAobGVuZ3RoIHZhbHVlKQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gYXJyYXkgaXMgdmFsaWQsIG90aGVyd2lzZSBmYWxzZQorICAgICAqIEBkcmFmdCBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gZ2V0U2V0KGNoYXIgc3JjW10sIGludCBzcmNTdGFydCkgeworICAgICAgICAvLyBsZWF2ZSBtb3N0IGFyZ3VtZW50IGNoZWNraW5nIHVwIHRvIEphdmEgZXhjZXB0aW9ucworICAgICAgICBhcnJheT1udWxsOworICAgICAgICBhcnJheU9mZnNldD1ibXBMZW5ndGg9bGVuZ3RoPTA7CisKKyAgICAgICAgbGVuZ3RoPXNyY1tzcmNTdGFydCsrXTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBpZigobGVuZ3RoJjB4ODAwMCkgPjApIHsKKyAgICAgICAgICAgIC8qIHRoZXJlIGFyZSBzdXBwbGVtZW50YXJ5IHZhbHVlcyAqLworICAgICAgICAgICAgbGVuZ3RoJj0weDdmZmY7CisgICAgICAgICAgICBpZihzcmMubGVuZ3RoPChzcmNTdGFydCsxK2xlbmd0aCkpIHsKKyAgICAgICAgICAgICAgICBsZW5ndGg9MDsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm1wTGVuZ3RoPXNyY1tzcmNTdGFydCsrXTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIG9ubHkgQk1QIHZhbHVlcyAqLworICAgICAgICAgICAgaWYoc3JjLmxlbmd0aDwoc3JjU3RhcnQrbGVuZ3RoKSkgeworICAgICAgICAgICAgICAgIGxlbmd0aD0wOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBibXBMZW5ndGg9bGVuZ3RoOworICAgICAgICB9CisgICAgICAgIGFycmF5ID0gbmV3IGNoYXJbbGVuZ3RoXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShzcmMsc3JjU3RhcnQsYXJyYXksMCxsZW5ndGgpOworICAgICAgICAvL2FycmF5T2Zmc2V0PXNyY1N0YXJ0OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBVU2VyaWFsaXplZFNldCB0byBjb250YWluIHRoZSBnaXZlbiBjaGFyYWN0ZXIgKGFuZCBub3RoaW5nCisgICAgICogZWxzZSkuCisgICAgICogQGRyYWZ0IElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRUb09uZShpbnQgYykgeworICAgICAgICBpZiggMHgxMGZmZmY8YykgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYoYzwweGZmZmYpIHsKKyAgICAgICAgICAgIGJtcExlbmd0aD1sZW5ndGg9MjsKKyAgICAgICAgICAgIGFycmF5WzBdPShjaGFyKWM7CisgICAgICAgICAgICBhcnJheVsxXT0oY2hhcikoYysxKTsKKyAgICAgICAgfSBlbHNlIGlmKGM9PTB4ZmZmZikgeworICAgICAgICAgICAgYm1wTGVuZ3RoPTE7CisgICAgICAgICAgICBsZW5ndGg9MzsKKyAgICAgICAgICAgIGFycmF5WzBdPTB4ZmZmZjsKKyAgICAgICAgICAgIGFycmF5WzFdPTE7CisgICAgICAgICAgICBhcnJheVsyXT0wOworICAgICAgICB9IGVsc2UgaWYoYzwweDEwZmZmZikgeworICAgICAgICAgICAgYm1wTGVuZ3RoPTA7CisgICAgICAgICAgICBsZW5ndGg9NDsKKyAgICAgICAgICAgIGFycmF5WzBdPShjaGFyKShjPj4xNik7CisgICAgICAgICAgICBhcnJheVsxXT0oY2hhciljOworICAgICAgICAgICAgKytjOworICAgICAgICAgICAgYXJyYXlbMl09KGNoYXIpKGM+PjE2KTsKKyAgICAgICAgICAgIGFycmF5WzNdPShjaGFyKWM7CisgICAgICAgIH0gZWxzZSAvKiBjPT0weDEwZmZmZiAqLyB7CisgICAgICAgICAgICBibXBMZW5ndGg9MDsKKyAgICAgICAgICAgIGxlbmd0aD0yOworICAgICAgICAgICAgYXJyYXlbMF09MHgxMDsKKyAgICAgICAgICAgIGFycmF5WzFdPTB4ZmZmZjsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHJhbmdlIG9mIGNoYXJhY3RlcnMgY29udGFpbmVkIGluIHRoZSBnaXZlbiBzZXJpYWxpemVkCisgICAgICogc2V0LgorICAgICAqIEBwYXJhbSByYW5nZUluZGV4IGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgaW4gdGhlIHJhbmdlIDxjb2RlPjAuLgorICAgICAqIGdldFNlcmlhbGl6ZWRSYW5nZUNvdW50KCktMTwvY29kZT4KKyAgICAgKiBAcGFyYW0gcmFuZ2UgdmFyaWFibGUgdG8gcmVjZWl2ZSB0aGUgZGF0YSBpbiB0aGUgcmFuZ2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgcmFuZ2VJbmRleCBpcyB2YWxpZCwgb3RoZXJ3aXNlIGZhbHNlCisgICAgICogQGRyYWZ0IElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBnZXRSYW5nZShpbnQgcmFuZ2VJbmRleCwgaW50W10gcmFuZ2UpIHsKKyAgICAgICAgaWYoIHJhbmdlSW5kZXg8MCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmKGFycmF5PT1udWxsKXsKKyAgICAgICAgICAgIGFycmF5ID0gbmV3IGNoYXJbOF07CisgICAgICAgIH0KKyAgICAgICAgaWYocmFuZ2U9PW51bGwgfHwgcmFuZ2UubGVuZ3RoIDwyKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICByYW5nZUluZGV4Kj0yOyAvKiBhZGRyZXNzIHN0YXJ0L2xpbWl0IHBhaXJzICovCisgICAgICAgIGlmKHJhbmdlSW5kZXg8Ym1wTGVuZ3RoKSB7CisgICAgICAgICAgICByYW5nZVswXT1hcnJheVtyYW5nZUluZGV4KytdOworICAgICAgICAgICAgaWYocmFuZ2VJbmRleDxibXBMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByYW5nZVsxXT1hcnJheVtyYW5nZUluZGV4XTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihyYW5nZUluZGV4PGxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJhbmdlWzFdPSgoKGludClhcnJheVtyYW5nZUluZGV4XSk8PDE2KXxhcnJheVtyYW5nZUluZGV4KzFdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByYW5nZVsxXT0weDExMDAwMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJhbmdlWzFdLT0xOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByYW5nZUluZGV4LT1ibXBMZW5ndGg7CisgICAgICAgICAgICByYW5nZUluZGV4Kj0yOyAvKiBhZGRyZXNzIHBhaXJzIG9mIHBhaXJzIG9mIHVuaXRzICovCisgICAgICAgICAgICBsZW5ndGgtPWJtcExlbmd0aDsKKyAgICAgICAgICAgIGlmKHJhbmdlSW5kZXg8bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaW50IG9mZnNldD1hcnJheU9mZnNldCtibXBMZW5ndGg7CisgICAgICAgICAgICAgICAgcmFuZ2VbMF09KCgoaW50KWFycmF5W29mZnNldCtyYW5nZUluZGV4XSk8PDE2KXxhcnJheVtvZmZzZXQrcmFuZ2VJbmRleCsxXTsKKyAgICAgICAgICAgICAgICByYW5nZUluZGV4Kz0yOworICAgICAgICAgICAgICAgIGlmKHJhbmdlSW5kZXg8bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIHJhbmdlWzFdPSgoKGludClhcnJheVtvZmZzZXQrcmFuZ2VJbmRleF0pPDwxNil8YXJyYXlbb2Zmc2V0K3JhbmdlSW5kZXgrMV07CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VbMV09MHgxMTAwMDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJhbmdlWzFdLT0xOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBVU2VyaWFsaXplZFNldCBjb250YWlucyB0aGUgZ2l2ZW4KKyAgICAgKiBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIGMgdGhlIGNoYXJhY3RlciB0byB0ZXN0IGZvcgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBzZXQgY29udGFpbnMgYworICAgICAqIEBkcmFmdCBJQ1UgMi40CisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGNvbnRhaW5zKGludCBjKSB7CisgICAgICAgIAorICAgICAgICBpZihjPjB4MTBmZmZmKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBpZihjPD0weGZmZmYpIHsKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgLyogZmluZCBjIGluIHRoZSBCTVAgcGFydCAqLworICAgICAgICAgICAgZm9yKGk9MDsgaTxibXBMZW5ndGggJiYgKGNoYXIpYz49YXJyYXlbaV07ICsraSkge30KKyAgICAgICAgICAgIHJldHVybiAoYm9vbGVhbikoKGkmMSkgIT0gMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgaTsKKyAgICAgICAgICAgIC8qIGZpbmQgYyBpbiB0aGUgc3VwcGxlbWVudGFyeSBwYXJ0ICovCisgICAgICAgICAgICBjaGFyIGhpZ2g9KGNoYXIpKGM+PjE2KSwgbG93PShjaGFyKWM7CisgICAgICAgICAgICBmb3IoaT1ibXBMZW5ndGg7CisgICAgICAgICAgICAgICAgaTxsZW5ndGggJiYgKGhpZ2g+YXJyYXlbaV0gfHwgKGhpZ2g9PWFycmF5W2ldICYmIGxvdz49YXJyYXlbaSsxXSkpOworICAgICAgICAgICAgICAgIGkrPTIpIHt9CisgICAgICAgIAorICAgICAgICAgICAgLyogY291bnQgcGFpcnMgb2YgMTYtYml0IHVuaXRzIGV2ZW4gcGVyIEJNUCBhbmQgY2hlY2sgaWYgdGhlIG51bWJlciBvZiBwYWlycyBpcyBvZGQgKi8KKyAgICAgICAgICAgIHJldHVybiAoYm9vbGVhbikoKChpK2JtcExlbmd0aCkmMikhPTApOworICAgICAgICB9CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBkaXNqb2ludCByYW5nZXMgb2YgY2hhcmFjdGVycyBjb250YWluZWQgaW4KKyAgICAgKiB0aGUgZ2l2ZW4gc2VyaWFsaXplZCBzZXQuICBJZ25vcmVzIGFueSBzdHJpbmdzIGNvbnRhaW5lZCBpbiB0aGUKKyAgICAgKiBzZXQuCisgICAgICogQHJldHVybiBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIGNvdW50aW5nIHRoZSBjaGFyYWN0ZXIgcmFuZ2VzCisgICAgICogY29udGFpbmVkIGluIHNldAorICAgICAqIEBkcmFmdCBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBjb3VudFJhbmdlcygpIHsKKyAgICAgICAgcmV0dXJuIChibXBMZW5ndGgrKGxlbmd0aC1ibXBMZW5ndGgpLzIrMSkvMjsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBjaGFyIGFycmF5W10gPSBuZXcgY2hhcls4XTsKKyAgICBwcml2YXRlIGludCBhcnJheU9mZnNldCwgYm1wTGVuZ3RoLCBsZW5ndGg7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VVEYzMi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVRGMzIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzM5YzA5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVVRGMzIuamF2YQpAQCAtMCwwICsxLDI1MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKy8qKgorICogVGhpcyBjbGFzcyBjb252ZXJ0cyBiZXR3ZWVuIGFuIGFycmF5IG9mIGJ5dGVzIGluIFVURi0zMiBlbmNvZGluZyAoQkUgb3IgTEUpIGFuZAorICogSmF2YSBTdHJpbmdzLgorICogCisgKiBAaW50ZXJuYWwKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIFVURjMyCit7CisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcGFja3MgYSAzMi1iaXQgVW5pY29kZSBjb2RlIHBvaW50IGludG8gdGhlIGJ5dGUgYXJyYXkuIEl0IGlzCisgICAgICogaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3NlcyB0aGF0IGltcGxlbWVudCB0aGUgQkUgYW5kIExFIGVuY29kaW5ncy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gYnl0ZXMgdGhlIGRlc3RpbmF0aW9uIGJ5dGUgYXJyYXkKKyAgICAgKiBAcGFyYW0gY29kZVBvaW50IHRoZSAzMi1iaXQgVW5pY29kZSBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIG91dCB0aGUgZGVzdGluYXRpb24gaW5kZXggaW4gPGNvZGU+Ynl0ZXM8L2NvZGU+LgorICAgICAqIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGFic3RyYWN0IHByb3RlY3RlZCB2b2lkIHBhY2soYnl0ZVtdIGJ5dGVzLCBpbnQgY29kZVBvaW50LCBpbnQgb3V0KTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCB1bnBhY2tzIGJ5dGVzIGZyb20gdGhlIGVuY29kZWQgYnl0ZSBhcnJheSBpbnRvIGEgMzItYml0CisgICAgICogVW5pY29kZSBjb2RlIHBvaW50LiBJdCBpcyBpbXBsbWVlbnRlZCBieSBzdWJjbGFzc2VzIHRoYXQgaW1wbG1lZW50IHRoZSBCRSBhbmQgTEUgZW5jb2RpbmdzLgorICAgICAqIAorICAgICAqIEBwYXJhbSBieXRlcyB0aGUgc291cmNlIGJ5dGUgYXJyYXkuCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgc291cmNlIGJ5dGUuCisgICAgICogQHJldHVybiB0aGUgMzItYml0IFVuaWNvZGUgY29kZSBwb2ludC4KKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwcm90ZWN0ZWQgaW50IHVucGFjayhieXRlW10gYnl0ZXMsIGludCBpbmRleCk7CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogQ29udmVydCBhIEphdmEgU3RyaW5nIGludG8gYW4gYXJyYXkgb2YgVVRGLTMyIGVuY29kZWQgYnl0ZXMuIENhbGxzCisgICAgICogdGhlIDxjb2RlPnBhY2s8L2NvZGU+IG1ldGhvZCB0byBkbyB0aGUgZW5jb2RpbmcuCisgICAgICogCisgICAgICogQHBhcmFtIHV0ZjE2IHRoZSBzb3VyY2UgSmF2YSBTdHJpbmcuCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiBVVEYtMzIgZW5jb2RlZCBieXRlcy4KKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgYnl0ZVtdIHRvQnl0ZXMoU3RyaW5nIHV0ZjE2KQorICAgIHsKKyAgICAgICAgaW50IGNvZGVQb2ludHMgPSBVVEYxNi5jb3VudENvZGVQb2ludCh1dGYxNik7CisgICAgICAgIGJ5dGVbXSBieXRlcyA9IG5ldyBieXRlW2NvZGVQb2ludHMgKiA0XTsKKyAgICAgICAgaW50IG91dCA9IDA7CisKKyAgICAgICAgZm9yIChpbnQgY3AgPSAwOyBjcCA8IGNvZGVQb2ludHM7IG91dCArPSA0KSB7CisgICAgICAgICAgICBpbnQgY29kZVBvaW50ID0gVVRGMTYuY2hhckF0KHV0ZjE2LCBjcCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHBhY2soYnl0ZXMsIGNvZGVQb2ludCwgb3V0KTsKKyAgICAgICAgICAgIGNwICs9IFVURjE2LmdldENoYXJDb3VudChjb2RlUG9pbnQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gYnl0ZXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGNvbnZlcnRzIGEgc2VxdWVuY2Ugb2YgVVRGLTMyIGVuY29kZWQgYnl0ZXMgaW50bworICAgICAqIGEgSmF2YSBTdHJpbmcuIEl0IGNhbGxzIHRoZSA8Y29kZT51bnBhY2s8L2NvZGU+IG1ldGhvZCB0byBpbXBsZW1lbnQKKyAgICAgKiB0aGUgZW5jb2RpbmcuCisgICAgICogCisgICAgICogQHBhcmFtIGJ5dGVzIHRoZSBzb3VyY2UgYnl0ZSBhcnJheS4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBzdGFydGluZyBvZmZzZXQgaW4gdGhlIGJ5dGUgYXJyYXkuCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gcHJvY2Vzcy4KKyAgICAgKiBAcmV0dXJuIHRoZSBKYXZhIFN0cmluZy4KKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGZyb21CeXRlcyhieXRlW10gYnl0ZXMsIGludCBvZmZzZXQsIGludCBjb3VudCkKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBsaW1pdCA9IG9mZnNldCArIGNvdW50OworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgY3AgPSBvZmZzZXQ7IGNwIDwgbGltaXQ7IGNwICs9IDQpIHsKKyAgICAgICAgICAgIGludCBjb2RlUG9pbnQgPSB1bnBhY2soYnl0ZXMsIGNwKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZmZlciwgY29kZVBvaW50KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBIGNvbnZlbmllbmNlIG1ldGhvZCB0aGF0IGNvbnZlcnRzIGFuIGVudGlyZSBieXRlIGFycmF5CisgICAgICogaW50byBhIEphdmEgU3RyaW5nLgorICAgICAqIAorICAgICAqIEBwYXJhbSBieXRlcyB0aGUgc291cmNlIGJ5dGUgYXJyYXkuCisgICAgICogQHJldHVybiB0aGUgSmF2YSBTdHJpbmcuCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBmcm9tQnl0ZXMoYnl0ZVtdIGJ5dGVzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZyb21CeXRlcyhieXRlcywgMCwgYnl0ZXMubGVuZ3RoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IGFuIGluc3RhbmNlIHRoYXQgaW1wbGVtZW50cyBVVEYtMzJCRSBlbmNvZGluZy4KKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIHRoZSBpbnN0YW5jZS4KKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFVURjMyIGdldEJFSW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgaWYgKGJlSW5zdGFuY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgYmVJbnN0YW5jZSA9IG5ldyBCRSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gYmVJbnN0YW5jZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IGFuIGluc3RhbmNlIHRoYXQgaW1wbGVtbnRzIHRoZSBVVEYtMzJMRSBlbmNvZGluZy4KKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIHRoZSBpbnN0YW5jZS4KKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFVURjMyIGdldExFSW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgaWYgKGxlSW5zdGFuY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgbGVJbnN0YW5jZSA9IG5ldyBMRSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbGVJbnN0YW5jZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IGFuIGluc3RhbmNlIHRoYXQgaW1wbGVtZW50cyBlaXRoZXIgVVRGLTMyQkUgb3IgVVRGMzItTEUsCisgICAgICogZGVwZW5kaW5nIG9uIHRoZSBlbmNvZGluZyBuYW1lIHN1cHBsZWQuCisgICAgICogCisgICAgICogQHBhcmFtIGVuY29kaW5nIHRoZSBlbmNvZGluZyBuYW1lIC0gbXVzdCBiZSA8Y29kZT4iVVRGLTMyQkUiPC9jb2RlPiBvciA8Y29kZT4iVVRGLTMyTEUiPC9jb2RlPi4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbnN0YW5jZS4KKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFVURjMyIGdldEluc3RhbmNlKFN0cmluZyBlbmNvZGluZykKKyAgICB7CisgICAgICAgIGlmIChlbmNvZGluZy5lcXVhbHMoIlVURi0zMkJFIikpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRCRUluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChlbmNvZGluZy5lcXVhbHMoIlVURi0zMkxFIikpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRMRUluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIHN1YmxjYXNzIGltcGxlbWVudHMgdGhlIFVURi0zMkJFIGVuY29kaW5nIHZpYSB0aGUKKyAgICAgKiA8Y29kZT5wYWNrPC9jb2RlPiBhbmQgPGNvZGU+dW5wYWNrPC9jb2RlPiBtZXRob2RzLgorICAgICAqIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBCRSBleHRlbmRzIFVURjMyCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBtZXRob2QgcGFja3MgYSAzMi1iaXQgVW5pY29kZSBjb2RlIHBvaW50IGludG8gdGhlIGJ5dGUgYXJyYXkgdXNpbmcKKyAgICAgICAgICogdGhlIFVURi0zMkJFIGVuY29kaW5nLgorICAgICAgICAgKiAKKyAgICAgICAgICogQHBhcmFtIGJ5dGVzIHRoZSBkZXN0aW5hdGlvbiBieXRlIGFycmF5CisgICAgICAgICAqIEBwYXJhbSBjb2RlUG9pbnQgdGhlIDMyLWJpdCBVbmljb2RlIGNvZGUgcG9pbnQKKyAgICAgICAgICogQHBhcmFtIG91dCB0aGUgZGVzdGluYXRpb24gaW5kZXggaW4gPGNvZGU+Ynl0ZXM8L2NvZGU+LgorICAgICAgICAgKiAKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBwYWNrKGJ5dGVbXSBieXRlcywgaW50IGNvZGVQb2ludCwgaW50IG91dCkKKyAgICAgICAgeworICAgICAgICAgICAgYnl0ZXNbb3V0ICsgMF0gPSAoYnl0ZSkgKChjb2RlUG9pbnQgPj4gMjQpICYgMHhGRik7CisgICAgICAgICAgICBieXRlc1tvdXQgKyAxXSA9IChieXRlKSAoKGNvZGVQb2ludCA+PiAxNikgJiAweEZGKTsKKyAgICAgICAgICAgIGJ5dGVzW291dCArIDJdID0gKGJ5dGUpICgoY29kZVBvaW50ID4+ICA4KSAmIDB4RkYpOworICAgICAgICAgICAgYnl0ZXNbb3V0ICsgM10gPSAoYnl0ZSkgKChjb2RlUG9pbnQgPj4gIDApICYgMHhGRik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIG1ldGhvZCB1bnBhY2tzIGJ5dGVzIGZyb20gdGhlIFVURi0zMkJFIGVuY29kZWQgYnl0ZSBhcnJheSBpbnRvIGEgMzItYml0CisgICAgICAgICAqIFVuaWNvZGUgY29kZSBwb2ludC4KKyAgICAgICAgICogCisgICAgICAgICAqIEBwYXJhbSBieXRlcyB0aGUgc291cmNlIGJ5dGUgYXJyYXkuCisgICAgICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IHNvdXJjZSBieXRlLgorICAgICAgICAgKiBAcmV0dXJuIHRoZSAzMi1iaXQgVW5pY29kZSBjb2RlIHBvaW50LgorICAgICAgICAgKiAKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IHVucGFjayhieXRlW10gYnl0ZXMsIGludCBpbmRleCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChieXRlc1tpbmRleCArIDBdICYgMHhGRikgPDwgMjQgfCAoYnl0ZXNbaW5kZXggKyAxXSAmIDB4RkYpIDw8IDE2IHwKKyAgICAgICAgICAgICAgICAgICAoYnl0ZXNbaW5kZXggKyAyXSAmIDB4RkYpIDw8ICA4IHwgKGJ5dGVzW2luZGV4ICsgM10gJiAweEZGKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIHN1YmxjYXNzIGltcGxlbWVudHMgdGhlIFVURi0zMkxFIGVuY29kaW5nIHZpYSB0aGUKKyAgICAgKiA8Y29kZT5wYWNrPC9jb2RlPiBhbmQgPGNvZGU+dW5wYWNrPC9jb2RlPiBtZXRob2RzLgorICAgICAqIAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBMRSBleHRlbmRzIFVURjMyCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBtZXRob2QgcGFja3MgYSAzMi1iaXQgVW5pY29kZSBjb2RlIHBvaW50IGludG8gdGhlIGJ5dGUgYXJyYXkgdXNpbmcKKyAgICAgICAgICogdGhlIFVURi0zMkxFIGVuY29kaW5nLgorICAgICAgICAgKiAKKyAgICAgICAgICogQHBhcmFtIGJ5dGVzIHRoZSBkZXN0aW5hdGlvbiBieXRlIGFycmF5CisgICAgICAgICAqIEBwYXJhbSBjb2RlUG9pbnQgdGhlIDMyLWJpdCBVbmljb2RlIGNvZGUgcG9pbnQKKyAgICAgICAgICogQHBhcmFtIG91dCB0aGUgZGVzdGluYXRpb24gaW5kZXggaW4gPGNvZGU+Ynl0ZXM8L2NvZGU+LgorICAgICAgICAgKiAKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBwYWNrKGJ5dGVbXSBieXRlcywgaW50IGNvZGVQb2ludCwgaW50IG91dCkKKyAgICAgICAgeworICAgICAgICAgICAgYnl0ZXNbb3V0ICsgM10gPSAoYnl0ZSkgKChjb2RlUG9pbnQgPj4gMjQpICYgMHhGRik7CisgICAgICAgICAgICBieXRlc1tvdXQgKyAyXSA9IChieXRlKSAoKGNvZGVQb2ludCA+PiAxNikgJiAweEZGKTsKKyAgICAgICAgICAgIGJ5dGVzW291dCArIDFdID0gKGJ5dGUpICgoY29kZVBvaW50ID4+ICA4KSAmIDB4RkYpOworICAgICAgICAgICAgYnl0ZXNbb3V0ICsgMF0gPSAoYnl0ZSkgKChjb2RlUG9pbnQgPj4gIDApICYgMHhGRik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIG1ldGhvZCB1bnBhY2tzIGJ5dGVzIGZyb20gdGhlIFVURi0zMkxFIGVuY29kZWQgYnl0ZSBhcnJheSBpbnRvIGEgMzItYml0CisgICAgICAgICAqIFVuaWNvZGUgY29kZSBwb2ludC4KKyAgICAgICAgICogCisgICAgICAgICAqIEBwYXJhbSBieXRlcyB0aGUgc291cmNlIGJ5dGUgYXJyYXkuCisgICAgICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IHNvdXJjZSBieXRlLgorICAgICAgICAgKiBAcmV0dXJuIHRoZSAzMi1iaXQgVW5pY29kZSBjb2RlIHBvaW50LgorICAgICAgICAgKiAKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IHVucGFjayhieXRlW10gYnl0ZXMsIGludCBpbmRleCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChieXRlc1tpbmRleCArIDNdICYgMHhGRikgPDwgMjQgfCAoYnl0ZXNbaW5kZXggKyAyXSAmIDB4RkYpIDw8IDE2IHwKKyAgICAgICAgICAgICAgICAgICAoYnl0ZXNbaW5kZXggKyAxXSAmIDB4RkYpIDw8ICA4IHwgKGJ5dGVzW2luZGV4ICsgMF0gJiAweEZGKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBVVEYzMiBiZUluc3RhbmNlID0gbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyBVVEYzMiBsZUluc3RhbmNlID0gbnVsbDsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1V0aWxpdHkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1V0aWxpdHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MjhiM2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eS5qYXZhCkBAIC0wLDAgKzEsMTg4OSBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKy8vIFRoaXMgY2xhc3MgY29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgc28gdGVzdGluZyBub3QgbmVlZGVkCisvLy9DTE9WRVI6T0ZGCitwdWJsaWMgZmluYWwgY2xhc3MgVXRpbGl0eSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEFQT1NUUk9QSEUgPSAnXCcnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQkFDS1NMQVNIICA9ICdcXCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BR0lDX1VOU0lHTkVEID0gMHg4MDAwMDAwMDsKKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHV0aWxpdHkgdG8gY29tcGFyZSB0d28gT2JqZWN0W11zLgorICAgICAqIE91Z2h0IHRvIGJlIGluIFN5c3RlbQorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheUVxdWFscyhPYmplY3RbXSBzb3VyY2UsIE9iamVjdCB0YXJnZXQpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4gKHRhcmdldCA9PSBudWxsKTsKKyAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgT2JqZWN0W10pKSByZXR1cm4gZmFsc2U7CisgICAgICAgIE9iamVjdFtdIHRhcmcgPSAoT2JqZWN0W10pIHRhcmdldDsKKyAgICAgICAgcmV0dXJuIChzb3VyY2UubGVuZ3RoID09IHRhcmcubGVuZ3RoCisgICAgICAgICAgICAgICAgJiYgYXJyYXlSZWdpb25NYXRjaGVzKHNvdXJjZSwgMCwgdGFyZywgMCwgc291cmNlLmxlbmd0aCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHV0aWxpdHkgdG8gY29tcGFyZSB0d28gaW50W11zCisgICAgICogT3VnaHQgdG8gYmUgaW4gU3lzdGVtCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheUVxdWFscyhpbnRbXSBzb3VyY2UsIE9iamVjdCB0YXJnZXQpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4gKHRhcmdldCA9PSBudWxsKTsKKyAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgaW50W10pKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGludFtdIHRhcmcgPSAoaW50W10pIHRhcmdldDsKKyAgICAgICAgcmV0dXJuIChzb3VyY2UubGVuZ3RoID09IHRhcmcubGVuZ3RoCisgICAgICAgICAgICAgICAgJiYgYXJyYXlSZWdpb25NYXRjaGVzKHNvdXJjZSwgMCwgdGFyZywgMCwgc291cmNlLmxlbmd0aCkpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHV0aWxpdHkgdG8gY29tcGFyZSB0d28gZG91YmxlW11zCisgICAgICogT3VnaHQgdG8gYmUgaW4gU3lzdGVtCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheUVxdWFscyhkb3VibGVbXSBzb3VyY2UsIE9iamVjdCB0YXJnZXQpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4gKHRhcmdldCA9PSBudWxsKTsKKyAgICAgICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgZG91YmxlW10pKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGRvdWJsZVtdIHRhcmcgPSAoZG91YmxlW10pIHRhcmdldDsKKyAgICAgICAgcmV0dXJuIChzb3VyY2UubGVuZ3RoID09IHRhcmcubGVuZ3RoCisgICAgICAgICAgICAgICAgJiYgYXJyYXlSZWdpb25NYXRjaGVzKHNvdXJjZSwgMCwgdGFyZywgMCwgc291cmNlLmxlbmd0aCkpOworICAgIH0KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlFcXVhbHMoYnl0ZVtdIHNvdXJjZSwgT2JqZWN0IHRhcmdldCkgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiAodGFyZ2V0ID09IG51bGwpOworICAgICAgICBpZiAoISh0YXJnZXQgaW5zdGFuY2VvZiBieXRlW10pKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGJ5dGVbXSB0YXJnID0gKGJ5dGVbXSkgdGFyZ2V0OworICAgICAgICByZXR1cm4gKHNvdXJjZS5sZW5ndGggPT0gdGFyZy5sZW5ndGgKKyAgICAgICAgICAgICAgICAmJiBhcnJheVJlZ2lvbk1hdGNoZXMoc291cmNlLCAwLCB0YXJnLCAwLCBzb3VyY2UubGVuZ3RoKSk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBPYmplY3RbXXMKKyAgICAgKiBPdWdodCB0byBiZSBpbiBTeXN0ZW0KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlFcXVhbHMoT2JqZWN0IHNvdXJjZSwgT2JqZWN0IHRhcmdldCkgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiAodGFyZ2V0ID09IG51bGwpOworICAgICAgICAvLyBmb3Igc29tZSByZWFzb24sIHRoZSBjb3JyZWN0IGFycmF5RXF1YWxzIGlzIG5vdCBiZWluZyBjYWxsZWQKKyAgICAgICAgLy8gc28gZG8gaXQgYnkgaGFuZCBmb3Igbm93LgorICAgICAgICBpZiAoc291cmNlIGluc3RhbmNlb2YgT2JqZWN0W10pCisgICAgICAgICAgICByZXR1cm4oYXJyYXlFcXVhbHMoKE9iamVjdFtdKSBzb3VyY2UsdGFyZ2V0KSk7CisgICAgICAgIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBpbnRbXSkKKyAgICAgICAgICAgIHJldHVybihhcnJheUVxdWFscygoaW50W10pIHNvdXJjZSx0YXJnZXQpKTsKKyAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIGRvdWJsZVtdKQorICAgICAgICAgICAgcmV0dXJuKGFycmF5RXF1YWxzKChpbnRbXSkgc291cmNlLHRhcmdldCkpOworICAgICAgICBpZiAoc291cmNlIGluc3RhbmNlb2YgYnl0ZVtdKQorICAgICAgICAgICAgcmV0dXJuKGFycmF5RXF1YWxzKChieXRlW10pIHNvdXJjZSx0YXJnZXQpKTsKKyAgICAgICAgcmV0dXJuIHNvdXJjZS5lcXVhbHModGFyZ2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSB1dGlsaXR5IHRvIGNvbXBhcmUgdHdvIE9iamVjdFtdcworICAgICAqIE91Z2h0IHRvIGJlIGluIFN5c3RlbS4KKyAgICAgKiBAcGFyYW0gbGVuIHRoZSBsZW5ndGggdG8gY29tcGFyZS4KKyAgICAgKiBUaGUgc3RhcnQgaW5kaWNlcyBhbmQgc3RhcnQrbGVuIG11c3QgYmUgdmFsaWQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5UmVnaW9uTWF0Y2hlcyhPYmplY3RbXSBzb3VyY2UsIGludCBzb3VyY2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0W10gdGFyZ2V0LCBpbnQgdGFyZ2V0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4pCisgICAgeworICAgICAgICBpbnQgc291cmNlRW5kID0gc291cmNlU3RhcnQgKyBsZW47CisgICAgICAgIGludCBkZWx0YSA9IHRhcmdldFN0YXJ0IC0gc291cmNlU3RhcnQ7CisgICAgICAgIGZvciAoaW50IGkgPSBzb3VyY2VTdGFydDsgaSA8IHNvdXJjZUVuZDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoIWFycmF5RXF1YWxzKHNvdXJjZVtpXSx0YXJnZXRbaSArIGRlbHRhXSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBPYmplY3RbXXMKKyAgICAgKiBPdWdodCB0byBiZSBpbiBTeXN0ZW0uCisgICAgICogQHBhcmFtIGxlbiB0aGUgbGVuZ3RoIHRvIGNvbXBhcmUuCisgICAgICogVGhlIHN0YXJ0IGluZGljZXMgYW5kIHN0YXJ0K2xlbiBtdXN0IGJlIHZhbGlkLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheVJlZ2lvbk1hdGNoZXMoY2hhcltdIHNvdXJjZSwgaW50IHNvdXJjZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gdGFyZ2V0LCBpbnQgdGFyZ2V0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4pCisgICAgeworICAgICAgICBpbnQgc291cmNlRW5kID0gc291cmNlU3RhcnQgKyBsZW47CisgICAgICAgIGludCBkZWx0YSA9IHRhcmdldFN0YXJ0IC0gc291cmNlU3RhcnQ7CisgICAgICAgIGZvciAoaW50IGkgPSBzb3VyY2VTdGFydDsgaSA8IHNvdXJjZUVuZDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoc291cmNlW2ldIT10YXJnZXRbaSArIGRlbHRhXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKiogCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBpbnRbXXMuCisgICAgICogQHBhcmFtIGxlbiB0aGUgbGVuZ3RoIHRvIGNvbXBhcmUuCisgICAgICogVGhlIHN0YXJ0IGluZGljZXMgYW5kIHN0YXJ0K2xlbiBtdXN0IGJlIHZhbGlkLgorICAgICAqIE91Z2h0IHRvIGJlIGluIFN5c3RlbQorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlSZWdpb25NYXRjaGVzKGludFtdIHNvdXJjZSwgaW50IHNvdXJjZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSB0YXJnZXQsIGludCB0YXJnZXRTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbikKKyAgICB7CisgICAgICAgIGludCBzb3VyY2VFbmQgPSBzb3VyY2VTdGFydCArIGxlbjsKKyAgICAgICAgaW50IGRlbHRhID0gdGFyZ2V0U3RhcnQgLSBzb3VyY2VTdGFydDsKKyAgICAgICAgZm9yIChpbnQgaSA9IHNvdXJjZVN0YXJ0OyBpIDwgc291cmNlRW5kOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VbaV0gIT0gdGFyZ2V0W2kgKyBkZWx0YV0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBhcnJheXMgb2YgZG91Ymxlcy4KKyAgICAgKiBAcGFyYW0gbGVuIHRoZSBsZW5ndGggdG8gY29tcGFyZS4KKyAgICAgKiBUaGUgc3RhcnQgaW5kaWNlcyBhbmQgc3RhcnQrbGVuIG11c3QgYmUgdmFsaWQuCisgICAgICogT3VnaHQgdG8gYmUgaW4gU3lzdGVtCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBhcnJheVJlZ2lvbk1hdGNoZXMoZG91YmxlW10gc291cmNlLCBpbnQgc291cmNlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZVtdIHRhcmdldCwgaW50IHRhcmdldFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuKQorICAgIHsKKyAgICAgICAgaW50IHNvdXJjZUVuZCA9IHNvdXJjZVN0YXJ0ICsgbGVuOworICAgICAgICBpbnQgZGVsdGEgPSB0YXJnZXRTdGFydCAtIHNvdXJjZVN0YXJ0OworICAgICAgICBmb3IgKGludCBpID0gc291cmNlU3RhcnQ7IGkgPCBzb3VyY2VFbmQ7IGkrKykgeworICAgICAgICAgICAgaWYgKHNvdXJjZVtpXSAhPSB0YXJnZXRbaSArIGRlbHRhXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5UmVnaW9uTWF0Y2hlcyhieXRlW10gc291cmNlLCBpbnQgc291cmNlU3RhcnQsCisgICAgICAgICAgICBieXRlW10gdGFyZ2V0LCBpbnQgdGFyZ2V0U3RhcnQsIGludCBsZW4peworCQlpbnQgc291cmNlRW5kID0gc291cmNlU3RhcnQgKyBsZW47CisJCWludCBkZWx0YSA9IHRhcmdldFN0YXJ0IC0gc291cmNlU3RhcnQ7CisJCWZvciAoaW50IGkgPSBzb3VyY2VTdGFydDsgaSA8IHNvdXJjZUVuZDsgaSsrKSB7CisJCQlpZiAoc291cmNlW2ldICE9IHRhcmdldFtpICsgZGVsdGFdKQorCQkJCXJldHVybiBmYWxzZTsKKwkJfQorCQlyZXR1cm4gdHJ1ZTsKKwl9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSB1dGlsaXR5LiBEb2VzIG51bGwgY2hlY2tzIG9uIG9iamVjdHMsIHRoZW4gY2FsbHMgZXF1YWxzLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgYm9vbGVhbiBvYmplY3RFcXVhbHMoT2JqZWN0IHNvdXJjZSwgT2JqZWN0IHRhcmdldCkgeworICAgIGlmIChzb3VyY2UgPT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiAodGFyZ2V0ID09IG51bGwpOworICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UuZXF1YWxzKHRhcmdldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIEVTQ0FQRSBjaGFyYWN0ZXIgaXMgdXNlZCBkdXJpbmcgcnVuLWxlbmd0aCBlbmNvZGluZy4gIEl0IHNpZ25hbHMKKyAgICAgKiBhIHJ1biBvZiBpZGVudGljYWwgY2hhcnMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBFU0NBUEUgPSAnXHVBNUE1JzsKKworICAgIC8qKgorICAgICAqIFRoZSBFU0NBUEVfQllURSBjaGFyYWN0ZXIgaXMgdXNlZCBkdXJpbmcgcnVuLWxlbmd0aCBlbmNvZGluZy4gIEl0IHNpZ25hbHMKKyAgICAgKiBhIHJ1biBvZiBpZGVudGljYWwgYnl0ZXMuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGJ5dGUgRVNDQVBFX0JZVEUgPSAoYnl0ZSkweEE1OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgc3RyaW5nIHJlcHJlc2VudGluZyBhbiBpbnQgYXJyYXkuICBVc2UgcnVuLWxlbmd0aCBlbmNvZGluZy4KKyAgICAgKiBBIGNoYXJhY3RlciByZXByZXNlbnRzIGl0c2VsZiwgdW5sZXNzIGl0IGlzIHRoZSBFU0NBUEUgY2hhcmFjdGVyLiAgVGhlbgorICAgICAqIHRoZSBmb2xsb3dpbmcgbm90YXRpb25zIGFyZSBwb3NzaWJsZToKKyAgICAgKiAgIEVTQ0FQRSBFU0NBUEUgICBFU0NBUEUgbGl0ZXJhbAorICAgICAqICAgRVNDQVBFIG4gYyAgICAgIG4gaW5zdGFuY2VzIG9mIGNoYXJhY3RlciBjCisgICAgICogU2luY2UgYW4gZW5jb2RlZCBydW4gb2NjdXBpZXMgMyBjaGFyYWN0ZXJzLCB3ZSBvbmx5IGVuY29kZSBydW5zIG9mIDQgb3IKKyAgICAgKiBtb3JlIGNoYXJhY3RlcnMuICBUaHVzIHdlIGhhdmUgbiA+IDAgYW5kIG4gIT0gRVNDQVBFIGFuZCBuIDw9IDB4RkZGRi4KKyAgICAgKiBJZiB3ZSBlbmNvdW50ZXIgYSBydW4gd2hlcmUgbiA9PSBFU0NBUEUsIHdlIHJlcHJlc2VudCB0aGlzIGFzOgorICAgICAqICAgYyBFU0NBUEUgbi0xIGMKKyAgICAgKiBUaGUgRVNDQVBFIHZhbHVlIGlzIGNob3NlbiBzbyBhcyBub3QgdG8gY29sbGlkZSB3aXRoIGNvbW1vbmx5CisgICAgICogc2VlbiB2YWx1ZXMuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgU3RyaW5nIGFycmF5VG9STEVTdHJpbmcoaW50W10gYSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIGFwcGVuZEludChidWZmZXIsIGEubGVuZ3RoKTsKKyAgICAgICAgaW50IHJ1blZhbHVlID0gYVswXTsKKyAgICAgICAgaW50IHJ1bkxlbmd0aCA9IDE7CisgICAgICAgIGZvciAoaW50IGk9MTsgaTxhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgcyA9IGFbaV07CisgICAgICAgICAgICBpZiAocyA9PSBydW5WYWx1ZSAmJiBydW5MZW5ndGggPCAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICArK3J1bkxlbmd0aDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZW5jb2RlUnVuKGJ1ZmZlciwgcnVuVmFsdWUsIHJ1bkxlbmd0aCk7CisgICAgICAgICAgICAgICAgcnVuVmFsdWUgPSBzOworICAgICAgICAgICAgICAgIHJ1bkxlbmd0aCA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZW5jb2RlUnVuKGJ1ZmZlciwgcnVuVmFsdWUsIHJ1bkxlbmd0aCk7CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgc2hvcnQgYXJyYXkuICBVc2UgcnVuLWxlbmd0aCBlbmNvZGluZy4KKyAgICAgKiBBIGNoYXJhY3RlciByZXByZXNlbnRzIGl0c2VsZiwgdW5sZXNzIGl0IGlzIHRoZSBFU0NBUEUgY2hhcmFjdGVyLiAgVGhlbgorICAgICAqIHRoZSBmb2xsb3dpbmcgbm90YXRpb25zIGFyZSBwb3NzaWJsZToKKyAgICAgKiAgIEVTQ0FQRSBFU0NBUEUgICBFU0NBUEUgbGl0ZXJhbAorICAgICAqICAgRVNDQVBFIG4gYyAgICAgIG4gaW5zdGFuY2VzIG9mIGNoYXJhY3RlciBjCisgICAgICogU2luY2UgYW4gZW5jb2RlZCBydW4gb2NjdXBpZXMgMyBjaGFyYWN0ZXJzLCB3ZSBvbmx5IGVuY29kZSBydW5zIG9mIDQgb3IKKyAgICAgKiBtb3JlIGNoYXJhY3RlcnMuICBUaHVzIHdlIGhhdmUgbiA+IDAgYW5kIG4gIT0gRVNDQVBFIGFuZCBuIDw9IDB4RkZGRi4KKyAgICAgKiBJZiB3ZSBlbmNvdW50ZXIgYSBydW4gd2hlcmUgbiA9PSBFU0NBUEUsIHdlIHJlcHJlc2VudCB0aGlzIGFzOgorICAgICAqICAgYyBFU0NBUEUgbi0xIGMKKyAgICAgKiBUaGUgRVNDQVBFIHZhbHVlIGlzIGNob3NlbiBzbyBhcyBub3QgdG8gY29sbGlkZSB3aXRoIGNvbW1vbmx5CisgICAgICogc2VlbiB2YWx1ZXMuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgU3RyaW5nIGFycmF5VG9STEVTdHJpbmcoc2hvcnRbXSBhKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIC8vIGZvciAoaW50IGk9MDsgaTxhLmxlbmd0aDsgKytpKSBidWZmZXIuYXBwZW5kKChjaGFyKSBhW2ldKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgKGEubGVuZ3RoID4+IDE2KSk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIGEubGVuZ3RoKTsKKyAgICAgICAgc2hvcnQgcnVuVmFsdWUgPSBhWzBdOworICAgICAgICBpbnQgcnVuTGVuZ3RoID0gMTsKKyAgICAgICAgZm9yIChpbnQgaT0xOyBpPGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHNob3J0IHMgPSBhW2ldOworICAgICAgICAgICAgaWYgKHMgPT0gcnVuVmFsdWUgJiYgcnVuTGVuZ3RoIDwgMHhGRkZGKSArK3J1bkxlbmd0aDsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZW5jb2RlUnVuKGJ1ZmZlciwgcnVuVmFsdWUsIHJ1bkxlbmd0aCk7CisgICAgICAgICAgICBydW5WYWx1ZSA9IHM7CisgICAgICAgICAgICBydW5MZW5ndGggPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVuY29kZVJ1bihidWZmZXIsIHJ1blZhbHVlLCBydW5MZW5ndGgpOworICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgc3RyaW5nIHJlcHJlc2VudGluZyBhIGNoYXIgYXJyYXkuICBVc2UgcnVuLWxlbmd0aCBlbmNvZGluZy4KKyAgICAgKiBBIGNoYXJhY3RlciByZXByZXNlbnRzIGl0c2VsZiwgdW5sZXNzIGl0IGlzIHRoZSBFU0NBUEUgY2hhcmFjdGVyLiAgVGhlbgorICAgICAqIHRoZSBmb2xsb3dpbmcgbm90YXRpb25zIGFyZSBwb3NzaWJsZToKKyAgICAgKiAgIEVTQ0FQRSBFU0NBUEUgICBFU0NBUEUgbGl0ZXJhbAorICAgICAqICAgRVNDQVBFIG4gYyAgICAgIG4gaW5zdGFuY2VzIG9mIGNoYXJhY3RlciBjCisgICAgICogU2luY2UgYW4gZW5jb2RlZCBydW4gb2NjdXBpZXMgMyBjaGFyYWN0ZXJzLCB3ZSBvbmx5IGVuY29kZSBydW5zIG9mIDQgb3IKKyAgICAgKiBtb3JlIGNoYXJhY3RlcnMuICBUaHVzIHdlIGhhdmUgbiA+IDAgYW5kIG4gIT0gRVNDQVBFIGFuZCBuIDw9IDB4RkZGRi4KKyAgICAgKiBJZiB3ZSBlbmNvdW50ZXIgYSBydW4gd2hlcmUgbiA9PSBFU0NBUEUsIHdlIHJlcHJlc2VudCB0aGlzIGFzOgorICAgICAqICAgYyBFU0NBUEUgbi0xIGMKKyAgICAgKiBUaGUgRVNDQVBFIHZhbHVlIGlzIGNob3NlbiBzbyBhcyBub3QgdG8gY29sbGlkZSB3aXRoIGNvbW1vbmx5CisgICAgICogc2VlbiB2YWx1ZXMuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBTdHJpbmcgYXJyYXlUb1JMRVN0cmluZyhjaGFyW10gYSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSAoYS5sZW5ndGggPj4gMTYpKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgoY2hhcikgYS5sZW5ndGgpOworICAgICAgICBjaGFyIHJ1blZhbHVlID0gYVswXTsKKyAgICAgICAgaW50IHJ1bkxlbmd0aCA9IDE7CisgICAgICAgIGZvciAoaW50IGk9MTsgaTxhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBjaGFyIHMgPSBhW2ldOworICAgICAgICAgICAgaWYgKHMgPT0gcnVuVmFsdWUgJiYgcnVuTGVuZ3RoIDwgMHhGRkZGKSArK3J1bkxlbmd0aDsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZW5jb2RlUnVuKGJ1ZmZlciwgKHNob3J0KXJ1blZhbHVlLCBydW5MZW5ndGgpOworICAgICAgICAgICAgcnVuVmFsdWUgPSBzOworICAgICAgICAgICAgcnVuTGVuZ3RoID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbmNvZGVSdW4oYnVmZmVyLCAoc2hvcnQpcnVuVmFsdWUsIHJ1bkxlbmd0aCk7CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgYnl0ZSBhcnJheS4gIFVzZSBydW4tbGVuZ3RoIGVuY29kaW5nLgorICAgICAqIFR3byBieXRlcyBhcmUgcGFja2VkIGludG8gYSBzaW5nbGUgY2hhciwgd2l0aCBhIHNpbmdsZSBleHRyYSB6ZXJvIGJ5dGUgYXQKKyAgICAgKiB0aGUgZW5kIGlmIG5lZWRlZC4gIEEgYnl0ZSByZXByZXNlbnRzIGl0c2VsZiwgdW5sZXNzIGl0IGlzIHRoZQorICAgICAqIEVTQ0FQRV9CWVRFLiAgVGhlbiB0aGUgZm9sbG93aW5nIG5vdGF0aW9ucyBhcmUgcG9zc2libGU6CisgICAgICogICBFU0NBUEVfQllURSBFU0NBUEVfQllURSAgIEVTQ0FQRV9CWVRFIGxpdGVyYWwKKyAgICAgKiAgIEVTQ0FQRV9CWVRFIG4gYiAgICAgICAgICAgbiBpbnN0YW5jZXMgb2YgYnl0ZSBiCisgICAgICogU2luY2UgYW4gZW5jb2RlZCBydW4gb2NjdXBpZXMgMyBieXRlcywgd2Ugb25seSBlbmNvZGUgcnVucyBvZiA0IG9yCisgICAgICogbW9yZSBieXRlcy4gIFRodXMgd2UgaGF2ZSBuID4gMCBhbmQgbiAhPSBFU0NBUEVfQllURSBhbmQgbiA8PSAweEZGLgorICAgICAqIElmIHdlIGVuY291bnRlciBhIHJ1biB3aGVyZSBuID09IEVTQ0FQRV9CWVRFLCB3ZSByZXByZXNlbnQgdGhpcyBhczoKKyAgICAgKiAgIGIgRVNDQVBFX0JZVEUgbi0xIGIKKyAgICAgKiBUaGUgRVNDQVBFX0JZVEUgdmFsdWUgaXMgY2hvc2VuIHNvIGFzIG5vdCB0byBjb2xsaWRlIHdpdGggY29tbW9ubHkKKyAgICAgKiBzZWVuIHZhbHVlcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIFN0cmluZyBhcnJheVRvUkxFU3RyaW5nKGJ5dGVbXSBhKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIChhLmxlbmd0aCA+PiAxNikpOworICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSBhLmxlbmd0aCk7CisgICAgICAgIGJ5dGUgcnVuVmFsdWUgPSBhWzBdOworICAgICAgICBpbnQgcnVuTGVuZ3RoID0gMTsKKyAgICAgICAgYnl0ZVtdIHN0YXRlID0gbmV3IGJ5dGVbMl07CisgICAgICAgIGZvciAoaW50IGk9MTsgaTxhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBieXRlIGIgPSBhW2ldOworICAgICAgICAgICAgaWYgKGIgPT0gcnVuVmFsdWUgJiYgcnVuTGVuZ3RoIDwgMHhGRikgKytydW5MZW5ndGg7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBlbmNvZGVSdW4oYnVmZmVyLCBydW5WYWx1ZSwgcnVuTGVuZ3RoLCBzdGF0ZSk7CisgICAgICAgICAgICAgICAgcnVuVmFsdWUgPSBiOworICAgICAgICAgICAgICAgIHJ1bkxlbmd0aCA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZW5jb2RlUnVuKGJ1ZmZlciwgcnVuVmFsdWUsIHJ1bkxlbmd0aCwgc3RhdGUpOworCisgICAgICAgIC8vIFdlIG11c3Qgc2F2ZSB0aGUgZmluYWwgYnl0ZSwgaWYgdGhlcmUgaXMgb25lLCBieSBwYWRkaW5nCisgICAgICAgIC8vIGFuIGV4dHJhIHplcm8uCisgICAgICAgIGlmIChzdGF0ZVswXSAhPSAwKSBhcHBlbmRFbmNvZGVkQnl0ZShidWZmZXIsIChieXRlKTAsIHN0YXRlKTsKKworICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5jb2RlIGEgcnVuLCBwb3NzaWJseSBhIGRlZ2VuZXJhdGUgcnVuIChvZiA8IDQgdmFsdWVzKS4KKyAgICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIHJ1bjsgbXVzdCBiZSA+IDAgJiYgPD0gMHhGRkZGLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIGVuY29kZVJ1bihTdHJpbmdCdWZmZXIgYnVmZmVyLCBpbnQgdmFsdWUsIGludCBsZW5ndGgpIHsKKyAgICAgICAgaWYgKGxlbmd0aCA8IDQpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxsZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kSW50KGJ1ZmZlciwgdmFsdWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhcHBlbmRJbnQoYnVmZmVyLCB2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAobGVuZ3RoID09IChpbnQpIEVTQ0FQRSkgeworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAoaW50KSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXBwZW5kSW50KGJ1ZmZlciwgRVNDQVBFKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXBwZW5kSW50KGJ1ZmZlciwgdmFsdWUpOworICAgICAgICAgICAgICAgIC0tbGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXBwZW5kSW50KGJ1ZmZlciwgRVNDQVBFKTsKKyAgICAgICAgICAgIGFwcGVuZEludChidWZmZXIsIGxlbmd0aCk7CisgICAgICAgICAgICBhcHBlbmRJbnQoYnVmZmVyLCB2YWx1ZSk7IC8vIERvbid0IG5lZWQgdG8gZXNjYXBlIHRoaXMgdmFsdWUKKyAgICAgICAgfQorICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKyAgICAKKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBhcHBlbmRJbnQoU3RyaW5nQnVmZmVyIGJ1ZmZlciwgaW50IHZhbHVlKSB7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpKHZhbHVlID4+PiAxNikpOworICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSh2YWx1ZSAmIDB4RkZGRikpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIEVuY29kZSBhIHJ1biwgcG9zc2libHkgYSBkZWdlbmVyYXRlIHJ1biAob2YgPCA0IHZhbHVlcykuCisgICAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBydW47IG11c3QgYmUgPiAwICYmIDw9IDB4RkZGRi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIGVuY29kZVJ1bihTdHJpbmdCdWZmZXIgYnVmZmVyLCBzaG9ydCB2YWx1ZSwgaW50IGxlbmd0aCkgeworICAgICAgICBpZiAobGVuZ3RoIDwgNCkgeworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPGxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IChpbnQpIEVTQ0FQRSkgYnVmZmVyLmFwcGVuZChFU0NBUEUpOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChsZW5ndGggPT0gKGludCkgRVNDQVBFKSB7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IChpbnQpIEVTQ0FQRSkgYnVmZmVyLmFwcGVuZChFU0NBUEUpOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAtLWxlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoRVNDQVBFKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoKGNoYXIpIGxlbmd0aCk7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKChjaGFyKSB2YWx1ZSk7IC8vIERvbid0IG5lZWQgdG8gZXNjYXBlIHRoaXMgdmFsdWUKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEVuY29kZSBhIHJ1biwgcG9zc2libHkgYSBkZWdlbmVyYXRlIHJ1biAob2YgPCA0IHZhbHVlcykuCisgICAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBydW47IG11c3QgYmUgPiAwICYmIDw9IDB4RkYuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBlbmNvZGVSdW4oU3RyaW5nQnVmZmVyIGJ1ZmZlciwgYnl0ZSB2YWx1ZSwgaW50IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIHN0YXRlKSB7CisgICAgICAgIGlmIChsZW5ndGggPCA0KSB7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8bGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gRVNDQVBFX0JZVEUpIGFwcGVuZEVuY29kZWRCeXRlKGJ1ZmZlciwgRVNDQVBFX0JZVEUsIHN0YXRlKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRFbmNvZGVkQnl0ZShidWZmZXIsIHZhbHVlLCBzdGF0ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAobGVuZ3RoID09IEVTQ0FQRV9CWVRFKSB7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gRVNDQVBFX0JZVEUpIGFwcGVuZEVuY29kZWRCeXRlKGJ1ZmZlciwgRVNDQVBFX0JZVEUsIHN0YXRlKTsKKyAgICAgICAgICAgIGFwcGVuZEVuY29kZWRCeXRlKGJ1ZmZlciwgdmFsdWUsIHN0YXRlKTsKKyAgICAgICAgICAgIC0tbGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXBwZW5kRW5jb2RlZEJ5dGUoYnVmZmVyLCBFU0NBUEVfQllURSwgc3RhdGUpOworICAgICAgICAgICAgYXBwZW5kRW5jb2RlZEJ5dGUoYnVmZmVyLCAoYnl0ZSlsZW5ndGgsIHN0YXRlKTsKKyAgICAgICAgICAgIGFwcGVuZEVuY29kZWRCeXRlKGJ1ZmZlciwgdmFsdWUsIHN0YXRlKTsgLy8gRG9uJ3QgbmVlZCB0byBlc2NhcGUgdGhpcyB2YWx1ZQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIGEgYnl0ZSB0byB0aGUgZ2l2ZW4gU3RyaW5nQnVmZmVyLCBwYWNraW5nIHR3byBieXRlcyBpbnRvIGVhY2gKKyAgICAgKiBjaGFyYWN0ZXIuICBUaGUgc3RhdGUgcGFyYW1ldGVyIG1haW50YWlucyBpbnRlcm1lZGlhcnkgZGF0YSBiZXR3ZWVuCisgICAgICogY2FsbHMuCisgICAgICogQHBhcmFtIHN0YXRlIEEgdHdvLWVsZW1lbnQgYXJyYXksIHdpdGggc3RhdGVbMF0gPT0gMCBpZiB0aGlzIGlzIHRoZQorICAgICAqIGZpcnN0IGJ5dGUgb2YgYSBwYWlyLCBvciBzdGF0ZVswXSAhPSAwIGlmIHRoaXMgaXMgdGhlIHNlY29uZCBieXRlCisgICAgICogb2YgYSBwYWlyLCBpbiB3aGljaCBjYXNlIHN0YXRlWzFdIGlzIHRoZSBmaXJzdCBieXRlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgYXBwZW5kRW5jb2RlZEJ5dGUoU3RyaW5nQnVmZmVyIGJ1ZmZlciwgYnl0ZSB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVbXSBzdGF0ZSkgeworICAgICAgICBpZiAoc3RhdGVbMF0gIT0gMCkgeworICAgICAgICAgICAgY2hhciBjID0gKGNoYXIpICgoc3RhdGVbMV0gPDwgOCkgfCAoKChpbnQpIHZhbHVlKSAmIDB4RkYpKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoYyk7CisgICAgICAgICAgICBzdGF0ZVswXSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzdGF0ZVswXSA9IDE7CisgICAgICAgICAgICBzdGF0ZVsxXSA9IHZhbHVlOworICAgICAgICB9CisgICAgfQorICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gYXJyYXkgb2YgaW50cyBmcm9tIGEgcnVuLWxlbmd0aCBlbmNvZGVkIHN0cmluZy4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludFtdIFJMRVN0cmluZ1RvSW50QXJyYXkoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGxlbmd0aCA9IGdldEludChzLCAwKTsKKyAgICAgICAgaW50W10gYXJyYXkgPSBuZXcgaW50W2xlbmd0aF07CisgICAgICAgIGludCBhaSA9IDAsIGkgPSAxOworCisgICAgICAgIGludCBtYXhJID0gcy5sZW5ndGgoKSAvIDI7CisgICAgICAgIHdoaWxlIChhaSA8IGxlbmd0aCAmJiBpIDwgbWF4SSkgeworICAgICAgICAgICAgaW50IGMgPSBnZXRJbnQocywgaSsrKTsKKworICAgICAgICAgICAgaWYgKGMgPT0gRVNDQVBFKSB7CisgICAgICAgICAgICAgICAgYyA9IGdldEludChzLCBpKyspOworICAgICAgICAgICAgICAgIGlmIChjID09IEVTQ0FQRSkgeworICAgICAgICAgICAgICAgICAgICBhcnJheVthaSsrXSA9IGM7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHJ1bkxlbmd0aCA9IGM7CisgICAgICAgICAgICAgICAgICAgIGludCBydW5WYWx1ZSA9IGdldEludChzLCBpKyspOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8cnVuTGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5W2FpKytdID0gcnVuVmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhcnJheVthaSsrXSA9IGM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoYWkgIT0gbGVuZ3RoIHx8IGkgIT0gbWF4SSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQmFkIHJ1bi1sZW5ndGggZW5jb2RlZCBpbnQgYXJyYXkiKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBhcnJheTsKKyAgICB9CisgICAgc3RhdGljIGZpbmFsIGludCBnZXRJbnQoU3RyaW5nIHMsIGludCBpKSB7CisgICAgICAgIHJldHVybiAoKChpbnQpIHMuY2hhckF0KDIqaSkpIDw8IDE2KSB8IChpbnQpIHMuY2hhckF0KDIqaSsxKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gYXJyYXkgb2Ygc2hvcnRzIGZyb20gYSBydW4tbGVuZ3RoIGVuY29kZWQgc3RyaW5nLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIHNob3J0W10gUkxFU3RyaW5nVG9TaG9ydEFycmF5KFN0cmluZyBzKSB7CisgICAgICAgIGludCBsZW5ndGggPSAoKChpbnQpIHMuY2hhckF0KDApKSA8PCAxNikgfCAoKGludCkgcy5jaGFyQXQoMSkpOworICAgICAgICBzaG9ydFtdIGFycmF5ID0gbmV3IHNob3J0W2xlbmd0aF07CisgICAgICAgIGludCBhaSA9IDA7CisgICAgICAgIGZvciAoaW50IGk9MjsgaTxzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkpOworICAgICAgICAgICAgaWYgKGMgPT0gRVNDQVBFKSB7CisgICAgICAgICAgICAgICAgYyA9IHMuY2hhckF0KCsraSk7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gRVNDQVBFKSB7CisgICAgICAgICAgICAgICAgICAgIGFycmF5W2FpKytdID0gKHNob3J0KSBjOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGludCBydW5MZW5ndGggPSAoaW50KSBjOworICAgICAgICAgICAgICAgICAgICBzaG9ydCBydW5WYWx1ZSA9IChzaG9ydCkgcy5jaGFyQXQoKytpKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPHJ1bkxlbmd0aDsgKytqKSBhcnJheVthaSsrXSA9IHJ1blZhbHVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGFycmF5W2FpKytdID0gKHNob3J0KSBjOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGFpICE9IGxlbmd0aCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkJhZCBydW4tbGVuZ3RoIGVuY29kZWQgc2hvcnQgYXJyYXkiKTsKKworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIGFycmF5IG9mIHNob3J0cyBmcm9tIGEgcnVuLWxlbmd0aCBlbmNvZGVkIHN0cmluZy4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGNoYXJbXSBSTEVTdHJpbmdUb0NoYXJBcnJheShTdHJpbmcgcykgeworICAgICAgICBpbnQgbGVuZ3RoID0gKCgoaW50KSBzLmNoYXJBdCgwKSkgPDwgMTYpIHwgKChpbnQpIHMuY2hhckF0KDEpKTsKKyAgICAgICAgY2hhcltdIGFycmF5ID0gbmV3IGNoYXJbbGVuZ3RoXTsKKyAgICAgICAgaW50IGFpID0gMDsKKyAgICAgICAgZm9yIChpbnQgaT0yOyBpPHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA9PSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICBjID0gcy5jaGFyQXQoKytpKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBFU0NBUEUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXJyYXlbYWkrK10gPSBjOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGludCBydW5MZW5ndGggPSAoaW50KSBjOworICAgICAgICAgICAgICAgICAgICBjaGFyIHJ1blZhbHVlID0gcy5jaGFyQXQoKytpKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPHJ1bkxlbmd0aDsgKytqKSBhcnJheVthaSsrXSA9IHJ1blZhbHVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGFycmF5W2FpKytdID0gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChhaSAhPSBsZW5ndGgpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJCYWQgcnVuLWxlbmd0aCBlbmNvZGVkIHNob3J0IGFycmF5Iik7CisKKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhbiBhcnJheSBvZiBieXRlcyBmcm9tIGEgcnVuLWxlbmd0aCBlbmNvZGVkIHN0cmluZy4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGJ5dGVbXSBSTEVTdHJpbmdUb0J5dGVBcnJheShTdHJpbmcgcykgeworICAgICAgICBpbnQgbGVuZ3RoID0gKCgoaW50KSBzLmNoYXJBdCgwKSkgPDwgMTYpIHwgKChpbnQpIHMuY2hhckF0KDEpKTsKKyAgICAgICAgYnl0ZVtdIGFycmF5ID0gbmV3IGJ5dGVbbGVuZ3RoXTsKKyAgICAgICAgYm9vbGVhbiBuZXh0Q2hhciA9IHRydWU7CisgICAgICAgIGNoYXIgYyA9IDA7CisgICAgICAgIGludCBub2RlID0gMDsKKyAgICAgICAgaW50IHJ1bkxlbmd0aCA9IDA7CisgICAgICAgIGludCBpID0gMjsKKyAgICAgICAgZm9yIChpbnQgYWk9MDsgYWk8bGVuZ3RoOyApIHsKKyAgICAgICAgICAgIC8vIFRoaXMgcGFydCBvZiB0aGUgbG9vcCBwbGFjZXMgdGhlIG5leHQgYnl0ZSBpbnRvIHRoZSBsb2NhbAorICAgICAgICAgICAgLy8gdmFyaWFibGUgJ2InIGVhY2ggdGltZSB0aHJvdWdoIHRoZSBsb29wLiAgSXQga2VlcHMgdGhlCisgICAgICAgICAgICAvLyBjdXJyZW50IGNoYXJhY3RlciBpbiAnYycgYW5kIHVzZXMgdGhlIGJvb2xlYW4gJ25leHRDaGFyJworICAgICAgICAgICAgLy8gdG8gc2VlIGlmIHdlJ3ZlIHRha2VuIGJvdGggYnl0ZXMgb3V0IG9mICdjJyB5ZXQuCisgICAgICAgICAgICBieXRlIGI7CisgICAgICAgICAgICBpZiAobmV4dENoYXIpIHsKKyAgICAgICAgICAgICAgICBjID0gcy5jaGFyQXQoaSsrKTsKKyAgICAgICAgICAgICAgICBiID0gKGJ5dGUpIChjID4+IDgpOworICAgICAgICAgICAgICAgIG5leHRDaGFyID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBiID0gKGJ5dGUpIChjICYgMHhGRik7CisgICAgICAgICAgICAgICAgbmV4dENoYXIgPSB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBUaGlzIHBhcnQgb2YgdGhlIGxvb3AgaXMgYSB0aW55IHN0YXRlIG1hY2hpbmUgd2hpY2ggaGFuZGxlcworICAgICAgICAgICAgLy8gdGhlIHBhcnNpbmcgb2YgdGhlIHJ1bi1sZW5ndGggZW5jb2RpbmcuICBUaGlzIHdvdWxkIGJlIHNpbXBsZXIKKyAgICAgICAgICAgIC8vIGlmIHdlIGNvdWxkIGxvb2sgYWhlYWQsIGJ1dCB3ZSBjYW4ndCwgc28gd2UgdXNlICdub2RlJyB0bworICAgICAgICAgICAgLy8gbW92ZSBiZXR3ZWVuIHRocmVlIG5vZGVzIGluIHRoZSBzdGF0ZSBtYWNoaW5lLgorICAgICAgICAgICAgc3dpdGNoIChub2RlKSB7CisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgLy8gTm9ybWFsIGlkbGUgbm9kZQorICAgICAgICAgICAgICAgIGlmIChiID09IEVTQ0FQRV9CWVRFKSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGUgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYXJyYXlbYWkrK10gPSBiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIHNlZW4gb25lIEVTQ0FQRV9CWVRFOyB3ZSBleHBlY3QgZWl0aGVyIGEgc2Vjb25kCisgICAgICAgICAgICAgICAgLy8gb25lLCBvciBhIHJ1biBsZW5ndGggYW5kIHZhbHVlLgorICAgICAgICAgICAgICAgIGlmIChiID09IEVTQ0FQRV9CWVRFKSB7CisgICAgICAgICAgICAgICAgICAgIGFycmF5W2FpKytdID0gRVNDQVBFX0JZVEU7CisgICAgICAgICAgICAgICAgICAgIG5vZGUgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcnVuTGVuZ3RoID0gYjsKKyAgICAgICAgICAgICAgICAgICAgLy8gSW50ZXJwcmV0IHNpZ25lZCBieXRlIGFzIHVuc2lnbmVkCisgICAgICAgICAgICAgICAgICAgIGlmIChydW5MZW5ndGggPCAwKSBydW5MZW5ndGggKz0gMHgxMDA7CisgICAgICAgICAgICAgICAgICAgIG5vZGUgPSAyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIHNlZW4gYW4gRVNDQVBFX0JZVEUgYW5kIGxlbmd0aCBieXRlLiAgV2UgaW50ZXJwcmV0CisgICAgICAgICAgICAgICAgLy8gdGhlIG5leHQgYnl0ZSBhcyB0aGUgdmFsdWUgdG8gYmUgcmVwZWF0ZWQuCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqPHJ1bkxlbmd0aDsgKytqKSBhcnJheVthaSsrXSA9IGI7CisgICAgICAgICAgICAgICAgbm9kZSA9IDA7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAobm9kZSAhPSAwKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQmFkIHJ1bi1sZW5ndGggZW5jb2RlZCBieXRlIGFycmF5Iik7CisKKyAgICAgICAgaWYgKGkgIT0gcy5sZW5ndGgoKSkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkV4Y2VzcyBkYXRhIGluIFJMRSBieXRlIGFycmF5IHN0cmluZyIpOworCisgICAgICAgIHJldHVybiBhcnJheTsKKyAgICB9CisKKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBMSU5FX1NFUEFSQVRPUiA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgibGluZS5zZXBhcmF0b3IiKTsKKworICAgIC8qKgorICAgICAqIEZvcm1hdCBhIFN0cmluZyBmb3IgcmVwcmVzZW50YXRpb24gaW4gYSBzb3VyY2UgZmlsZS4gIFRoaXMgaW5jbHVkZXMKKyAgICAgKiBicmVha2luZyBpdCBpbnRvIGxpbmVzIGFuZCBlc2NhcGluZyBjaGFyYWN0ZXJzIHVzaW5nIG9jdGFsIG5vdGF0aW9uCisgICAgICogd2hlbiBuZWNlc3NhcnkgKGNvbnRyb2wgY2hhcmFjdGVycyBhbmQgZG91YmxlIHF1b3RlcykuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0Rm9yU291cmNlKFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aCgpOykgeworICAgICAgICAgICAgaWYgKGkgPiAwKSBidWZmZXIuYXBwZW5kKCcrJykuYXBwZW5kKExJTkVfU0VQQVJBVE9SKTsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoIiAgICAgICAgXCIiKTsKKyAgICAgICAgICAgIGludCBjb3VudCA9IDExOworICAgICAgICAgICAgd2hpbGUgKGk8cy5sZW5ndGgoKSAmJiBjb3VudDw4MCkgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkrKyk7CisgICAgICAgICAgICAgICAgaWYgKGMgPCAnXHUwMDIwJyB8fCBjID09ICciJyB8fCBjID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xuJykgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgiXFxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCArPSAyOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJ1x0JykgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgiXFx0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCArPSAyOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJ1xyJykgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgiXFxyIik7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCArPSAyOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVwcmVzZW50IGNvbnRyb2wgY2hhcmFjdGVycywgYmFja3NsYXNoIGFuZCBkb3VibGUgcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzaW5nIG9jdGFsIG5vdGF0aW9uOyBvdGhlcndpc2UgdGhlIHN0cmluZyB3ZSBmb3JtCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3b24ndCBjb21waWxlLCBzaW5jZSBVbmljb2RlIGVzY2FwZSBzZXF1ZW5jZXMgYXJlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcm9jZXNzZWQgYmVmb3JlIHRva2VuaXphdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDA3MDApID4+IDZdKTsgLy8gSEVYX0RJR0lUIHdvcmtzIGZvciBvY3RhbAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAwMDcwKSA+PiAzXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDAwMDcpXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCArPSA0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPD0gJ1x1MDA3RScpIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgKz0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoIlxcdSIpOworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDB4RjAwMCkgPj4gMTJdKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAweDBGMDApID4+IDhdKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAweDAwRjApID4+IDRdKTsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAweDAwMEYpXSk7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ICs9IDY7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmZmVyLmFwcGVuZCgnIicpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgY2hhcltdIEhFWF9ESUdJVCA9IHsnMCcsJzEnLCcyJywnMycsJzQnLCc1JywnNicsJzcnLAorICAgICAgICAgICAgICAgICAgICAgJzgnLCc5JywnQScsJ0InLCdDJywnRCcsJ0UnLCdGJ307CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXQgYSBTdHJpbmcgZm9yIHJlcHJlc2VudGF0aW9uIGluIGEgc291cmNlIGZpbGUuICBMaWtlCisgICAgICogZm9ybWF0Rm9yU291cmNlIGJ1dCBkb2VzIG5vdCBkbyBsaW5lIGJyZWFraW5nLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgU3RyaW5nIGZvcm1hdDFGb3JTb3VyY2UoU3RyaW5nIHMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiXCIiKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHMubGVuZ3RoKCk7KSB7CisgICAgICAgICAgICBjaGFyIGMgPSBzLmNoYXJBdChpKyspOworICAgICAgICAgICAgaWYgKGMgPCAnXHUwMDIwJyB8fCBjID09ICciJyB8fCBjID09ICdcXCcpIHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXG4nKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoIlxcbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnXHQnKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoIlxcdCIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnXHInKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoIlxcciIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFJlcHJlc2VudCBjb250cm9sIGNoYXJhY3RlcnMsIGJhY2tzbGFzaCBhbmQgZG91YmxlIHF1b3RlCisgICAgICAgICAgICAgICAgICAgIC8vIHVzaW5nIG9jdGFsIG5vdGF0aW9uOyBvdGhlcndpc2UgdGhlIHN0cmluZyB3ZSBmb3JtCisgICAgICAgICAgICAgICAgICAgIC8vIHdvbid0IGNvbXBpbGUsIHNpbmNlIFVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlcyBhcmUKKyAgICAgICAgICAgICAgICAgICAgLy8gcHJvY2Vzc2VkIGJlZm9yZSB0b2tlbml6YXRpb24uCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDcwMCkgPj4gNl0pOyAvLyBIRVhfRElHSVQgd29ya3MgZm9yIG9jdGFsCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMDA3MCkgPj4gM10pOworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDAwMDcpXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoYyA8PSAnXHUwMDdFJykgeworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCJcXHUiKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDB4RjAwMCkgPj4gMTJdKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKEhFWF9ESUdJVFsoYyAmIDB4MEYwMCkgPj4gOF0pOworICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoSEVYX0RJR0lUWyhjICYgMHgwMEYwKSA+PiA0XSk7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChIRVhfRElHSVRbKGMgJiAweDAwMEYpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnVmZmVyLmFwcGVuZCgnIicpOworICAgICAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBjaGFyYWN0ZXJzIG91dHNpZGUgdGhlIHJhbmdlIFUrMDAyMCB0byBVKzAwN0YgdG8KKyAgICAgKiBVbmljb2RlIGVzY2FwZXMsIGFuZCBjb252ZXJ0IGJhY2tzbGFzaCB0byBhIGRvdWJsZSBiYWNrc2xhc2guCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZXNjYXBlKFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KHMsIGkpOworICAgICAgICAgICAgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICBpZiAoYyA+PSAnICcgJiYgYyA8PSAweDAwN0YpIHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIlxcXFwiKTsgLy8gVGhhdCBpcywgIlxcIgorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoKGNoYXIpYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBib29sZWFuIGZvdXIgPSBjIDw9IDB4RkZGRjsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvdXIgPyAiXFx1IiA6ICJcXFUiKTsKKyAgICAgICAgICAgICAgICBoZXgoYywgZm91ciA/IDQgOiA4LCBidWYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKiBUaGlzIG1hcCBtdXN0IGJlIGluIEFTQ0VORElORyBPUkRFUiBPRiBUSEUgRVNDQVBFIENPREUgKi8KKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBjaGFyW10gVU5FU0NBUEVfTUFQID0geworICAgICAgICAvKiIgICAweDIyLCAweDIyICovCisgICAgICAgIC8qJyAgIDB4MjcsIDB4MjcgKi8KKyAgICAgICAgLyo/ICAgMHgzRiwgMHgzRiAqLworICAgICAgICAvKlwgICAweDVDLCAweDVDICovCisgICAgICAgIC8qYSovIDB4NjEsIDB4MDcsCisgICAgICAgIC8qYiovIDB4NjIsIDB4MDgsCisgICAgICAgIC8qZSovIDB4NjUsIDB4MWIsCisgICAgICAgIC8qZiovIDB4NjYsIDB4MGMsCisgICAgICAgIC8qbiovIDB4NkUsIDB4MGEsCisgICAgICAgIC8qciovIDB4NzIsIDB4MGQsCisgICAgICAgIC8qdCovIDB4NzQsIDB4MDksCisgICAgICAgIC8qdiovIDB4NzYsIDB4MGIKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ29udmVydCBhbiBlc2NhcGUgdG8gYSAzMi1iaXQgY29kZSBwb2ludCB2YWx1ZS4gIFdlIGF0dGVtcHQKKyAgICAgKiB0byBwYXJhbGxlbCB0aGUgaWN1NGMgdW5lc2NhcGVBdCgpIGZ1bmN0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBhbiBhcnJheSBjb250YWluaW5nIG9mZnNldCB0byB0aGUgY2hhcmFjdGVyCisgICAgICogPGVtPmFmdGVyPC9lbT4gdGhlIGJhY2tzbGFzaC4gIFVwb24gcmV0dXJuIG9mZnNldDE2WzBdIHdpbGwKKyAgICAgKiBiZSB1cGRhdGVkIHRvIHBvaW50IGFmdGVyIHRoZSBlc2NhcGUgc2VxdWVuY2UuCisgICAgICogQHJldHVybiBjaGFyYWN0ZXIgdmFsdWUgZnJvbSAwIHRvIDEwRkZGRiwgb3IgLTEgb24gZXJyb3IuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgdW5lc2NhcGVBdChTdHJpbmcgcywgaW50W10gb2Zmc2V0MTYpIHsKKyAgICAgICAgaW50IGM7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgIGludCBtaW5EaWcgPSAwOworICAgICAgICBpbnQgbWF4RGlnID0gMDsKKyAgICAgICAgaW50IGJpdHNQZXJEaWdpdCA9IDQ7CisgICAgICAgIGludCBkaWc7CisgICAgICAgIGludCBpOworICAgICAgICBib29sZWFuIGJyYWNlcyA9IGZhbHNlOworCisgICAgICAgIC8qIENoZWNrIHRoYXQgb2Zmc2V0IGlzIGluIHJhbmdlICovCisgICAgICAgIGludCBvZmZzZXQgPSBvZmZzZXQxNlswXTsKKyAgICAgICAgaW50IGxlbmd0aCA9IHMubGVuZ3RoKCk7CisgICAgICAgIGlmIChvZmZzZXQgPCAwIHx8IG9mZnNldCA+PSBsZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIEZldGNoIGZpcnN0IFVDaGFyIGFmdGVyICdcXCcgKi8KKyAgICAgICAgYyA9IFVURjE2LmNoYXJBdChzLCBvZmZzZXQpOworICAgICAgICBvZmZzZXQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworCisgICAgICAgIC8qIENvbnZlcnQgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIGVzY2FwZXMgKi8KKyAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgIGNhc2UgJ3UnOgorICAgICAgICAgICAgbWluRGlnID0gbWF4RGlnID0gNDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdVJzoKKyAgICAgICAgICAgIG1pbkRpZyA9IG1heERpZyA9IDg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAneCc6CisgICAgICAgICAgICBtaW5EaWcgPSAxOworICAgICAgICAgICAgaWYgKG9mZnNldCA8IGxlbmd0aCAmJiBVVEYxNi5jaGFyQXQocywgb2Zmc2V0KSA9PSAweDdCIC8qeyovKSB7CisgICAgICAgICAgICAgICAgKytvZmZzZXQ7CisgICAgICAgICAgICAgICAgYnJhY2VzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBtYXhEaWcgPSA4OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtYXhEaWcgPSAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBkaWcgPSBVQ2hhcmFjdGVyLmRpZ2l0KGMsIDgpOworICAgICAgICAgICAgaWYgKGRpZyA+PSAwKSB7CisgICAgICAgICAgICAgICAgbWluRGlnID0gMTsKKyAgICAgICAgICAgICAgICBtYXhEaWcgPSAzOworICAgICAgICAgICAgICAgIG4gPSAxOyAvKiBBbHJlYWR5IGhhdmUgZmlyc3Qgb2N0YWwgZGlnaXQgKi8KKyAgICAgICAgICAgICAgICBiaXRzUGVyRGlnaXQgPSAzOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGRpZzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChtaW5EaWcgIT0gMCkgeworICAgICAgICAgICAgd2hpbGUgKG9mZnNldCA8IGxlbmd0aCAmJiBuIDwgbWF4RGlnKSB7CisgICAgICAgICAgICAgICAgYyA9IFVURjE2LmNoYXJBdChzLCBvZmZzZXQpOworICAgICAgICAgICAgICAgIGRpZyA9IFVDaGFyYWN0ZXIuZGlnaXQoYywgKGJpdHNQZXJEaWdpdCA9PSAzKSA/IDggOiAxNik7CisgICAgICAgICAgICAgICAgaWYgKGRpZyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgPDwgYml0c1BlckRpZ2l0KSB8IGRpZzsKKyAgICAgICAgICAgICAgICBvZmZzZXQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgICsrbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChuIDwgbWluRGlnKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJyYWNlcykgeworICAgICAgICAgICAgICAgIGlmIChjICE9IDB4N0QgLyp9Ki8pIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK29mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChyZXN1bHQgPCAwIHx8IHJlc3VsdCA+PSAweDExMDAwMCkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIElmIGFuIGVzY2FwZSBzZXF1ZW5jZSBzcGVjaWZpZXMgYSBsZWFkIHN1cnJvZ2F0ZSwgc2VlCisgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIHRyYWlsIHN1cnJvZ2F0ZSBhZnRlciBpdCwgZWl0aGVyIGFzIGFuCisgICAgICAgICAgICAvLyBlc2NhcGUgb3IgYXMgYSBsaXRlcmFsLiAgSWYgc28sIGpvaW4gdGhlbSB1cCBpbnRvIGEKKyAgICAgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkuCisgICAgICAgICAgICBpZiAob2Zmc2V0IDwgbGVuZ3RoICYmCisgICAgICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKSByZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgaW50IGFoZWFkID0gb2Zmc2V0KzE7CisgICAgICAgICAgICAgICAgYyA9IHMuY2hhckF0KG9mZnNldCk7IC8vIFtzaWNdIGdldCAxNi1iaXQgY29kZSB1bml0CisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xcJyAmJiBhaGVhZCA8IGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgb1tdID0gbmV3IGludFtdIHsgYWhlYWQgfTsKKyAgICAgICAgICAgICAgICAgICAgYyA9IHVuZXNjYXBlQXQocywgbyk7CisgICAgICAgICAgICAgICAgICAgIGFoZWFkID0gb1swXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpIGMpKSB7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IGFoZWFkOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSByZXN1bHQsIChjaGFyKSBjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXQxNlswXSA9IG9mZnNldDsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvKiBDb252ZXJ0IEMtc3R5bGUgZXNjYXBlcyBpbiB0YWJsZSAqLworICAgICAgICBmb3IgKGk9MDsgaTxVTkVTQ0FQRV9NQVAubGVuZ3RoOyBpKz0yKSB7CisgICAgICAgICAgICBpZiAoYyA9PSBVTkVTQ0FQRV9NQVBbaV0pIHsKKyAgICAgICAgICAgICAgICBvZmZzZXQxNlswXSA9IG9mZnNldDsKKyAgICAgICAgICAgICAgICByZXR1cm4gVU5FU0NBUEVfTUFQW2krMV07CisgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPCBVTkVTQ0FQRV9NQVBbaV0pIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qIE1hcCBcY1ggdG8gY29udHJvbC1YOiBYICYgMHgxRiAqLworICAgICAgICBpZiAoYyA9PSAnYycgJiYgb2Zmc2V0IDwgbGVuZ3RoKSB7CisgICAgICAgICAgICBjID0gVVRGMTYuY2hhckF0KHMsIG9mZnNldCk7CisgICAgICAgICAgICBvZmZzZXQxNlswXSA9IG9mZnNldCArIFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgIHJldHVybiAweDFGICYgYzsKKyAgICAgICAgfQorCisgICAgICAgIC8qIElmIG5vIHNwZWNpYWwgZm9ybXMgYXJlIHJlY29nbml6ZWQsIHRoZW4gY29uc2lkZXIKKyAgICAgICAgICogdGhlIGJhY2tzbGFzaCB0byBnZW5lcmljYWxseSBlc2NhcGUgdGhlIG5leHQgY2hhcmFjdGVyLiAqLworICAgICAgICBvZmZzZXQxNlswXSA9IG9mZnNldDsKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhbGwgZXNjYXBlcyBpbiBhIGdpdmVuIHN0cmluZyB1c2luZyB1bmVzY2FwZUF0KCkuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgYW4gaW52YWxpZCBlc2NhcGUgaXMKKyAgICAgKiBzZWVuLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHVuZXNjYXBlKFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludFtdIHBvcyA9IG5ldyBpbnRbMV07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkrKyk7CisgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgcG9zWzBdID0gaTsKKyAgICAgICAgICAgICAgICBpbnQgZSA9IHVuZXNjYXBlQXQocywgcG9zKTsKKyAgICAgICAgICAgICAgICBpZiAoZSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBlc2NhcGUgc2VxdWVuY2UgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5zdWJzdHJpbmcoaS0xLCBNYXRoLm1pbihpKzgsIHMubGVuZ3RoKCkpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGUpOworICAgICAgICAgICAgICAgIGkgPSBwb3NbMF07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYWxsIGVzY2FwZXMgaW4gYSBnaXZlbiBzdHJpbmcgdXNpbmcgdW5lc2NhcGVBdCgpLgorICAgICAqIExlYXZlIGludmFsaWQgZXNjYXBlIHNlcXVlbmNlcyB1bmNoYW5nZWQuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHVuZXNjYXBlTGVuaWVudGx5KFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludFtdIHBvcyA9IG5ldyBpbnRbMV07CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzLmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHMuY2hhckF0KGkrKyk7CisgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgcG9zWzBdID0gaTsKKyAgICAgICAgICAgICAgICBpbnQgZSA9IHVuZXNjYXBlQXQocywgcG9zKTsKKyAgICAgICAgICAgICAgICBpZiAoZSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBlKTsKKyAgICAgICAgICAgICAgICAgICAgaSA9IHBvc1swXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBjaGFyIHRvIDQgaGV4IHVwcGVyY2FzZSBkaWdpdHMuICBFLmcuLCBoZXgoJ2EnKSA9PgorICAgICAqICIwMDQxIi4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KGNoYXIgY2gpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHRlbXAgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHJldHVybiBoZXgoY2gsIHRlbXApLnRvU3RyaW5nKCk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIHN0cmluZyB0byBjb21tYS1zZXBhcmF0ZWQgZ3JvdXBzIG9mIDQgaGV4IHVwcGVyY2FzZQorICAgICAqIGRpZ2l0cy4gIEUuZy4sIGhleCgnYWInKSA9PiAiMDA0MSwwMDQyIi4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KFN0cmluZyBzKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICByZXR1cm4gaGV4KHMsIHRlbXApLnRvU3RyaW5nKCk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIHN0cmluZyB0byBjb21tYS1zZXBhcmF0ZWQgZ3JvdXBzIG9mIDQgaGV4IHVwcGVyY2FzZQorICAgICAqIGRpZ2l0cy4gIEUuZy4sIGhleCgnYWInKSA9PiAiMDA0MSwwMDQyIi4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgaGV4KFN0cmluZ0J1ZmZlciBzKSB7CisgICAgICAgIHJldHVybiBoZXgocy50b1N0cmluZygpKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgY2hhciB0byA0IGhleCB1cHBlcmNhc2UgZGlnaXRzLiAgRS5nLiwgaGV4KCdhJykgPT4KKyAgICAgKiAiMDA0MSIuICBBcHBlbmQgdGhlIG91dHB1dCB0byB0aGUgZ2l2ZW4gU3RyaW5nQnVmZmVyLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBoZXgoY2hhciBjaCwgU3RyaW5nQnVmZmVyIG91dHB1dCkgeworICAgICAgICByZXR1cm4gYXBwZW5kTnVtYmVyKG91dHB1dCwgY2gsIDE2LCA0KTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgaW50ZWdlciB0byBzaXplIHdpZHRoIGhleCB1cHBlcmNhc2UgZGlnaXRzLgorICAgICAqIEUuZy4sIGhleCgnYScsIDQsIHN0cikgPT4gIjAwNDEiLgorICAgICAqIEFwcGVuZCB0aGUgb3V0cHV0IHRvIHRoZSBnaXZlbiBTdHJpbmdCdWZmZXIuCisgICAgICogSWYgd2lkdGggaXMgdG9vIHNtYWxsIHRvIGZpdCwgbm90aGluZyB3aWxsIGJlIGFwcGVuZGVkIHRvIG91dHB1dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBoZXgoaW50IGNoLCBpbnQgd2lkdGgsIFN0cmluZ0J1ZmZlciBvdXRwdXQpIHsKKyAgICAgICAgcmV0dXJuIGFwcGVuZE51bWJlcihvdXRwdXQsIGNoLCAxNiwgd2lkdGgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBpbnRlZ2VyIHRvIHNpemUgd2lkdGggKG1pbmltdW0pIGhleCB1cHBlcmNhc2UgZGlnaXRzLgorICAgICAqIEUuZy4sIGhleCgnYScsIDQsIHN0cikgPT4gIjAwNDEiLiAgSWYgdGhlIGludGVnZXIgcmVxdWlyZXMgbW9yZQorICAgICAqIHRoYW4gd2lkdGggZGlnaXRzLCBtb3JlIHdpbGwgYmUgdXNlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBoZXgoaW50IGNoLCBpbnQgd2lkdGgpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZE51bWJlcihidWYsIGNoLCAxNiwgd2lkdGgpLnRvU3RyaW5nKCk7CisgICAgfQorICAgIC8qKgorICAgICAqIFN1cHBsaWVzIGEgemVyby1wYWRkZWQgaGV4IHJlcHJlc2VudGF0aW9uIG9mIGFuIGludGVnZXIgKHdpdGhvdXQgMHgpCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgaGV4KGxvbmcgaSwgaW50IHBsYWNlcykgeworICAgICAgICBpZiAoaSA9PSBMb25nLk1JTl9WQUxVRSkgcmV0dXJuICItODAwMDAwMDAwMDAwMDAwMCI7CisgICAgICAgIGJvb2xlYW4gbmVnYXRpdmUgPSBpIDwgMDsKKyAgICAgICAgaWYgKG5lZ2F0aXZlKSB7CisgICAgICAgICAgICBpID0gLWk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IExvbmcudG9TdHJpbmcoaSwgMTYpLnRvVXBwZXJDYXNlKCk7CisgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgPCBwbGFjZXMpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9ICIwMDAwMDAwMDAwMDAwMDAwIi5zdWJzdHJpbmcocmVzdWx0Lmxlbmd0aCgpLHBsYWNlcykgKyByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5lZ2F0aXZlKSB7CisgICAgICAgICAgICByZXR1cm4gJy0nICsgcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGhleChsb25nIGNoKSB7CisgICAgICAgIHJldHVybiBoZXgoY2gsNCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBzdHJpbmcgdG8gY29tbWEtc2VwYXJhdGVkIGdyb3VwcyBvZiA0IGhleCB1cHBlcmNhc2UKKyAgICAgKiBkaWdpdHMuICBFLmcuLCBoZXgoJ2FiJykgPT4gIjAwNDEsMDA0MiIuICBBcHBlbmQgdGhlIG91dHB1dAorICAgICAqIHRvIHRoZSBnaXZlbiBTdHJpbmdCdWZmZXIuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGhleChTdHJpbmcgcywgU3RyaW5nQnVmZmVyIHJlc3VsdCkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKGkgIT0gMCkgcmVzdWx0LmFwcGVuZCgnLCcpOworICAgICAgICAgICAgaGV4KHMuY2hhckF0KGkpLCByZXN1bHQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogU3BsaXQgYSBzdHJpbmcgaW50byBwaWVjZXMgYmFzZWQgb24gdGhlIGdpdmVuIGRpdmlkZXIgY2hhcmFjdGVyCisgICAgICogQHBhcmFtIHMgdGhlIHN0cmluZyB0byBzcGxpdAorICAgICAqIEBwYXJhbSBkaXZpZGVyIHRoZSBjaGFyYWN0ZXIgb24gd2hpY2ggdG8gc3BsaXQuICBPY2N1cnJlbmNlcyBvZgorICAgICAqIHRoaXMgY2hhcmFjdGVyIGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIG91dHB1dAorICAgICAqIEBwYXJhbSBvdXRwdXQgYW4gYXJyYXkgdG8gcmVjZWl2ZSB0aGUgc3Vic3RyaW5ncyBiZXR3ZWVuCisgICAgICogaW5zdGFuY2VzIG9mIGRpdmlkZXIuICBJdCBtdXN0IGJlIGxhcmdlIGVub3VnaCBvbiBlbnRyeSB0bworICAgICAqIGFjY29tb2RhdGUgYWxsIG91dHB1dC4gIEFkamFjZW50IGluc3RhbmNlcyBvZiB0aGUgZGl2aWRlcgorICAgICAqIGNoYXJhY3RlciB3aWxsIHBsYWNlIGVtcHR5IHN0cmluZ3MgaW50byBvdXRwdXQuICBCZWZvcmUKKyAgICAgKiByZXR1cm5pbmcsIG91dHB1dCBpcyBwYWRkZWQgb3V0IHdpdGggZW1wdHkgc3RyaW5ncy4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNwbGl0KFN0cmluZyBzLCBjaGFyIGRpdmlkZXIsIFN0cmluZ1tdIG91dHB1dCkgeworICAgICAgICBpbnQgbGFzdCA9IDA7CisgICAgICAgIGludCBjdXJyZW50ID0gMDsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzLmNoYXJBdChpKSA9PSBkaXZpZGVyKSB7CisgICAgICAgICAgICAgICAgb3V0cHV0W2N1cnJlbnQrK10gPSBzLnN1YnN0cmluZyhsYXN0LGkpOworICAgICAgICAgICAgICAgIGxhc3QgPSBpKzE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgb3V0cHV0W2N1cnJlbnQrK10gPSBzLnN1YnN0cmluZyhsYXN0LGkpOworICAgICAgICB3aGlsZSAoY3VycmVudCA8IG91dHB1dC5sZW5ndGgpIHsKKyAgICAgICAgICAgIG91dHB1dFtjdXJyZW50KytdID0gIiI7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogU3BsaXQgYSBzdHJpbmcgaW50byBwaWVjZXMgYmFzZWQgb24gdGhlIGdpdmVuIGRpdmlkZXIgY2hhcmFjdGVyCisgICAgICogQHBhcmFtIHMgdGhlIHN0cmluZyB0byBzcGxpdAorICAgICAqIEBwYXJhbSBkaXZpZGVyIHRoZSBjaGFyYWN0ZXIgb24gd2hpY2ggdG8gc3BsaXQuICBPY2N1cnJlbmNlcyBvZgorICAgICAqIHRoaXMgY2hhcmFjdGVyIGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIG91dHB1dAorICAgICAqIEByZXR1cm4gb3V0cHV0IGFuIGFycmF5IHRvIHJlY2VpdmUgdGhlIHN1YnN0cmluZ3MgYmV0d2VlbgorICAgICAqIGluc3RhbmNlcyBvZiBkaXZpZGVyLiBBZGphY2VudCBpbnN0YW5jZXMgb2YgdGhlIGRpdmlkZXIKKyAgICAgKiBjaGFyYWN0ZXIgd2lsbCBwbGFjZSBlbXB0eSBzdHJpbmdzIGludG8gb3V0cHV0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gc3BsaXQoU3RyaW5nIHMsIGNoYXIgZGl2aWRlcikgeworICAgICAgICBpbnQgbGFzdCA9IDA7CisgICAgICAgIGludCBpOworICAgICAgICBBcnJheUxpc3Qgb3V0cHV0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAocy5jaGFyQXQoaSkgPT0gZGl2aWRlcikgeworICAgICAgICAgICAgICAgIG91dHB1dC5hZGQocy5zdWJzdHJpbmcobGFzdCxpKSk7CisgICAgICAgICAgICAgICAgbGFzdCA9IGkrMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBvdXRwdXQuYWRkKCBzLnN1YnN0cmluZyhsYXN0LGkpKTsKKyAgICAgICAgcmV0dXJuIChTdHJpbmdbXSkgb3V0cHV0LnRvQXJyYXkobmV3IFN0cmluZ1tvdXRwdXQuc2l6ZSgpXSk7CisgICAgfQorICAgIAorICAgIC8vL0NMT1ZFUjpPTgorICAgIAorICAgIC8qKgorICAgICAqIExvb2sgdXAgYSBnaXZlbiBzdHJpbmcgaW4gYSBzdHJpbmcgYXJyYXkuICBSZXR1cm5zIHRoZSBpbmRleCBhdAorICAgICAqIHdoaWNoIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBzdHJpbmcgd2FzIGZvdW5kIGluIHRoZQorICAgICAqIGFycmF5LCBvciAtMSBpZiBpdCB3YXMgbm90IGZvdW5kLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHN0cmluZyB0byBzZWFyY2ggZm9yCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgYXJyYXkgb2YgemVybyBvciBtb3JlIHN0cmluZ3MgaW4gd2hpY2ggdG8KKyAgICAgKiBsb29rIGZvciBzb3VyY2UKKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0YXJnZXQgYXQgd2hpY2ggc291cmNlIGZpcnN0IG9jY3Vycywgb3IgLTEKKyAgICAgKiBpZiBub3QgZm91bmQKKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIHN0YXRpYyBpbnQgbG9va3VwKFN0cmluZyBzb3VyY2UsIFN0cmluZ1tdIHRhcmdldCkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhcmdldC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHNvdXJjZS5lcXVhbHModGFyZ2V0W2ldKSkgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIFNraXAgb3ZlciBhIHNlcXVlbmNlIG9mIHplcm8gb3IgbW9yZSB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJzCisgICAgICogYXQgcG9zLiAgUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgbm9uLXdoaXRlLXNwYWNlIGNoYXJhY3RlcgorICAgICAqIGF0IG9yIGFmdGVyIHBvcywgb3Igc3RyLmxlbmd0aCgpLCBpZiB0aGVyZSBpcyBub25lLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHNraXBXaGl0ZXNwYWNlKFN0cmluZyBzdHIsIGludCBwb3MpIHsKKyAgICAgICAgd2hpbGUgKHBvcyA8IHN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQoc3RyLCBwb3MpOworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcG9zICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcG9zOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNraXAgb3ZlciBhIHNlcXVlbmNlIG9mIHplcm8gb3IgbW9yZSB3aGl0ZSBzcGFjZSBjaGFyYWN0ZXJzCisgICAgICogYXQgcG9zWzBdLCBhZHZhbmNpbmcgaXQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNraXBXaGl0ZXNwYWNlKFN0cmluZyBzdHIsIGludFtdIHBvcykgeworICAgICAgICBwb3NbMF0gPSBza2lwV2hpdGVzcGFjZShzdHIsIHBvc1swXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIGFsbCBydWxlIHdoaXRlIHNwYWNlIGZyb20gYSBzdHJpbmcuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZGVsZXRlUnVsZVdoaXRlU3BhY2UoU3RyaW5nIHN0cikgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8c3RyLmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgIGludCBjaCA9IFVURjE2LmNoYXJBdChzdHIsIGkpOworICAgICAgICAgICAgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY2gpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGNoKSkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgY2gpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIHNpbmdsZSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIgJ2NoJywgb3B0aW9uYWxseQorICAgICAqIHByZWNlZGVkIGJ5IHdoaXRlc3BhY2UuCisgICAgICogQHBhcmFtIGlkIHRoZSBzdHJpbmcgdG8gYmUgcGFyc2VkCisgICAgICogQHBhcmFtIHBvcyBJTlBVVC1PVVRQVVQgcGFyYW1ldGVyLiAgT24gaW5wdXQsIHBvc1swXSBpcyB0aGUKKyAgICAgKiBvZmZzZXQgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciB0byBiZSBwYXJzZWQuICBPbiBvdXRwdXQsIHBvc1swXQorICAgICAqIGlzIHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBwYXJzZWQgY2hhcmFjdGVyLiAgSWYgdGhlIHBhcnNlCisgICAgICogZmFpbHMsIHBvc1swXSB3aWxsIGJlIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gY2ggdGhlIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlciB0byBiZSBwYXJzZWQuCisgICAgICogQHJldHVybiB0cnVlIGlmICdjaCcgaXMgc2VlbiBwcmVjZWRlZCBieSB6ZXJvIG9yIG1vcmUKKyAgICAgKiB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIHBhcnNlQ2hhcihTdHJpbmcgaWQsIGludFtdIHBvcywgY2hhciBjaCkgeworICAgICAgICBpbnQgc3RhcnQgPSBwb3NbMF07CisgICAgICAgIHNraXBXaGl0ZXNwYWNlKGlkLCBwb3MpOworICAgICAgICBpZiAocG9zWzBdID09IGlkLmxlbmd0aCgpIHx8CisgICAgICAgICAgICBpZC5jaGFyQXQocG9zWzBdKSAhPSBjaCkgeworICAgICAgICAgICAgcG9zWzBdID0gc3RhcnQ7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgKytwb3NbMF07CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgcGF0dGVybiBzdHJpbmcgc3RhcnRpbmcgYXQgb2Zmc2V0IHBvcy4gIEtleXdvcmRzIGFyZQorICAgICAqIG1hdGNoZWQgY2FzZS1pbnNlbnNpdGl2ZWx5LiAgU3BhY2VzIG1heSBiZSBza2lwcGVkIGFuZCBtYXkgYmUKKyAgICAgKiBvcHRpb25hbCBvciByZXF1aXJlZC4gIEludGVnZXIgdmFsdWVzIG1heSBiZSBwYXJzZWQsIGFuZCBpZgorICAgICAqIHRoZXkgYXJlLCB0aGV5IHdpbGwgYmUgcmV0dXJuZWQgaW4gdGhlIGdpdmVuIGFycmF5LiAgSWYKKyAgICAgKiBzdWNjZXNzZnVsLCB0aGUgb2Zmc2V0IG9mIHRoZSBuZXh0IG5vbi1zcGFjZSBjaGFyYWN0ZXIgaXMKKyAgICAgKiByZXR1cm5lZC4gIE9uIGZhaWx1cmUsIC0xIGlzIHJldHVybmVkLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIG11c3Qgb25seSBjb250YWluIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLCB3aGljaAorICAgICAqIHdpbGwgbWF0Y2ggdGhlaXIgdXBwZXJjYXNlIGVxdWl2YWxlbnRzIGFzIHdlbGwuICBBIHNwYWNlCisgICAgICogY2hhcmFjdGVyIG1hdGNoZXMgb25lIG9yIG1vcmUgcmVxdWlyZWQgc3BhY2VzLiAgQSAnficgY2hhcmFjdGVyCisgICAgICogbWF0Y2hlcyB6ZXJvIG9yIG1vcmUgb3B0aW9uYWwgc3BhY2VzLiAgQSAnIycgY2hhcmFjdGVyIG1hdGNoZXMKKyAgICAgKiBhbiBpbnRlZ2VyIGFuZCBzdG9yZXMgaXQgaW4gcGFyc2VkSW50cywgd2hpY2ggdGhlIGNhbGxlciBtdXN0CisgICAgICogZW5zdXJlIGhhcyBlbm91Z2ggY2FwYWNpdHkuCisgICAgICogQHBhcmFtIHBhcnNlZEludHMgYXJyYXkgdG8gcmVjZWl2ZSBwYXJzZWQgaW50ZWdlcnMuICBDYWxsZXIKKyAgICAgKiBtdXN0IGVuc3VyZSB0aGF0IHBhcnNlZEludHMubGVuZ3RoIGlzID49IHRoZSBudW1iZXIgb2YgJyMnCisgICAgICogc2lnbnMgaW4gJ3BhdHRlcm4nLgorICAgICAqIEByZXR1cm4gdGhlIHBvc2l0aW9uIGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBwYXJzZWQsIG9yIC0xIGlmCisgICAgICogdGhlIHBhcnNlIGZhaWxlZAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHBhcnNlUGF0dGVybihTdHJpbmcgcnVsZSwgaW50IHBvcywgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcGF0dGVybiwgaW50W10gcGFyc2VkSW50cykgeworICAgICAgICAvLyBUT0RPIFVwZGF0ZSB0aGlzIHRvIGhhbmRsZSBzdXJyb2dhdGVzCisgICAgICAgIGludFtdIHAgPSBuZXcgaW50WzFdOworICAgICAgICBpbnQgaW50Q291bnQgPSAwOyAvLyBudW1iZXIgb2YgaW50ZWdlcnMgcGFyc2VkCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxwYXR0ZXJuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY3BhdCA9IHBhdHRlcm4uY2hhckF0KGkpOworICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgc3dpdGNoIChjcGF0KSB7CisgICAgICAgICAgICBjYXNlICcgJzoKKyAgICAgICAgICAgICAgICBpZiAocG9zID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYyA9IHJ1bGUuY2hhckF0KHBvcysrKTsKKyAgICAgICAgICAgICAgICBpZiAoIVVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gRkFMTCBUSFJPVUdIIHRvIHNraXBXaGl0ZXNwYWNlCisgICAgICAgICAgICBjYXNlICd+JzoKKyAgICAgICAgICAgICAgICBwb3MgPSBza2lwV2hpdGVzcGFjZShydWxlLCBwb3MpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnIyc6CisgICAgICAgICAgICAgICAgcFswXSA9IHBvczsKKyAgICAgICAgICAgICAgICBwYXJzZWRJbnRzW2ludENvdW50KytdID0gcGFyc2VJbnRlZ2VyKHJ1bGUsIHAsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICBpZiAocFswXSA9PSBwb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3ludGF4IGVycm9yOyBmYWlsZWQgdG8gcGFyc2UgaW50ZWdlcgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBvcyA9IHBbMF07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGlmIChwb3MgPj0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjID0gKGNoYXIpIFVDaGFyYWN0ZXIudG9Mb3dlckNhc2UocnVsZS5jaGFyQXQocG9zKyspKTsKKyAgICAgICAgICAgICAgICBpZiAoYyAhPSBjcGF0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIHBhdHRlcm4gc3RyaW5nIHdpdGhpbiB0aGUgZ2l2ZW4gUmVwbGFjZWFibGUgYW5kIGEgcGFyc2luZworICAgICAqIHBhdHRlcm4uICBDaGFyYWN0ZXJzIGFyZSBtYXRjaGVkIGxpdGVyYWxseSBhbmQgY2FzZS1zZW5zaXRpdmVseQorICAgICAqIGV4Y2VwdCBmb3IgdGhlIGZvbGxvd2luZyBzcGVjaWFsIGNoYXJhY3RlcnM6CisgICAgICoKKyAgICAgKiB+ICB6ZXJvIG9yIG1vcmUgdXBydl9pc1J1bGVXaGl0ZVNwYWNlIGNoYXJzCisgICAgICoKKyAgICAgKiBJZiBlbmQgb2YgcGF0dGVybiBpcyByZWFjaGVkIHdpdGggYWxsIG1hdGNoZXMgYWxvbmcgdGhlIHdheSwKKyAgICAgKiBwb3MgaXMgYWR2YW5jZWQgdG8gdGhlIGZpcnN0IHVucGFyc2VkIGluZGV4IGFuZCByZXR1cm5lZC4KKyAgICAgKiBPdGhlcndpc2UgLTEgaXMgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIHBhdCBwYXR0ZXJuIHRoYXQgY29udHJvbHMgcGFyc2luZworICAgICAqIEBwYXJhbSB0ZXh0IHRleHQgdG8gYmUgcGFyc2VkLCBzdGFydGluZyBhdCBpbmRleAorICAgICAqIEBwYXJhbSBpbmRleCBvZmZzZXQgdG8gZmlyc3QgY2hhcmFjdGVyIHRvIHBhcnNlCisgICAgICogQHBhcmFtIGxpbWl0IG9mZnNldCBhZnRlciBsYXN0IGNoYXJhY3RlciB0byBwYXJzZQorICAgICAqIEByZXR1cm4gaW5kZXggYWZ0ZXIgbGFzdCBwYXJzZWQgY2hhcmFjdGVyLCBvciAtMSBvbiBwYXJzZSBmYWlsdXJlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHBhcnNlUGF0dGVybihTdHJpbmcgcGF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCkgeworICAgICAgICBpbnQgaXBhdCA9IDA7CisKKyAgICAgICAgLy8gZW1wdHkgcGF0dGVybiBtYXRjaGVzIGltbWVkaWF0ZWx5CisgICAgICAgIGlmIChpcGF0ID09IHBhdC5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGluZGV4OworICAgICAgICB9CisKKyAgICAgICAgaW50IGNwYXQgPSBVVEYxNi5jaGFyQXQocGF0LCBpcGF0KTsKKworICAgICAgICB3aGlsZSAoaW5kZXggPCBsaW1pdCkgeworICAgICAgICAgICAgaW50IGMgPSB0ZXh0LmNoYXIzMkF0KGluZGV4KTsKKworICAgICAgICAgICAgLy8gcGFyc2UgXHMqCisgICAgICAgICAgICBpZiAoY3BhdCA9PSAnficpIHsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoKytpcGF0ID09IHBhdC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4OyAvLyBzdWNjZXNzOyBjIHVucGFyc2VkCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gZmFsbCB0aHJ1OyBwcm9jZXNzIGMgYWdhaW4gd2l0aCBuZXh0IGNwYXQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHBhcnNlIGxpdGVyYWwKKyAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gY3BhdCkgeworICAgICAgICAgICAgICAgIGludCBuID0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIGluZGV4ICs9IG47CisgICAgICAgICAgICAgICAgaXBhdCArPSBuOworICAgICAgICAgICAgICAgIGlmIChpcGF0ID09IHBhdC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXg7IC8vIHN1Y2Nlc3M7IGMgcGFyc2VkCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGZhbGwgdGhydTsgZ2V0IG5leHQgY3BhdAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBtYXRjaCBmYWlsdXJlIG9mIGxpdGVyYWwKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY3BhdCA9IFVURjE2LmNoYXJBdChwYXQsIGlwYXQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIC0xOyAvLyB0ZXh0IGVuZGVkIGJlZm9yZSBlbmQgb2YgcGF0CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYW4gaW50ZWdlciBhdCBwb3MsIGVpdGhlciBvZiB0aGUgZm9ybSBcZCsgb3Igb2YgdGhlIGZvcm0KKyAgICAgKiAweFswLTlBLUZhLWZdKyBvciAwWzAtN10rLCB0aGF0IGlzLCBpbiBzdGFuZGFyZCBkZWNpbWFsLCBoZXgsCisgICAgICogb3Igb2N0YWwgZm9ybWF0LgorICAgICAqIEBwYXJhbSBwb3MgSU5QVVQtT1VUUFVUIHBhcmFtZXRlci4gIE9uIGlucHV0LCB0aGUgZmlyc3QKKyAgICAgKiBjaGFyYWN0ZXIgdG8gcGFyc2UuICBPbiBvdXRwdXQsIHRoZSBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIGxhc3QKKyAgICAgKiBwYXJzZWQgY2hhcmFjdGVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHBhcnNlSW50ZWdlcihTdHJpbmcgcnVsZSwgaW50W10gcG9zLCBpbnQgbGltaXQpIHsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgaW50IHZhbHVlID0gMDsKKyAgICAgICAgaW50IHAgPSBwb3NbMF07CisgICAgICAgIGludCByYWRpeCA9IDEwOworCisgICAgICAgIGlmIChydWxlLnJlZ2lvbk1hdGNoZXModHJ1ZSwgcCwgIjB4IiwgMCwgMikpIHsKKyAgICAgICAgICAgIHAgKz0gMjsKKyAgICAgICAgICAgIHJhZGl4ID0gMTY7CisgICAgICAgIH0gZWxzZSBpZiAocCA8IGxpbWl0ICYmIHJ1bGUuY2hhckF0KHApID09ICcwJykgeworICAgICAgICAgICAgcCsrOworICAgICAgICAgICAgY291bnQgPSAxOworICAgICAgICAgICAgcmFkaXggPSA4OworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKHAgPCBsaW1pdCkgeworICAgICAgICAgICAgaW50IGQgPSBVQ2hhcmFjdGVyLmRpZ2l0KHJ1bGUuY2hhckF0KHArKyksIHJhZGl4KTsKKyAgICAgICAgICAgIGlmIChkIDwgMCkgeworICAgICAgICAgICAgICAgIC0tcDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICBpbnQgdiA9ICh2YWx1ZSAqIHJhZGl4KSArIGQ7CisgICAgICAgICAgICBpZiAodiA8PSB2YWx1ZSkgeworICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSB0b28gbWFueSBpbnB1dCBkaWdpdHMsIGF0IHNvbWUgcG9pbnQKKyAgICAgICAgICAgICAgICAvLyB0aGUgdmFsdWUgd2lsbCBnbyBuZWdhdGl2ZSwgZS5nLiwgaWYgd2UgaGF2ZSBzZWVuCisgICAgICAgICAgICAgICAgLy8gIjB4ODAwMDAwMCIgYWxyZWFkeSBhbmQgdGhlcmUgaXMgYW5vdGhlciAnMCcsIHdoZW4KKyAgICAgICAgICAgICAgICAvLyB3ZSBwYXJzZSB0aGUgbmV4dCAwIHRoZSB2YWx1ZSB3aWxsIGdvIG5lZ2F0aXZlLgorICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFsdWUgPSB2OworICAgICAgICB9CisgICAgICAgIGlmIChjb3VudCA+IDApIHsKKyAgICAgICAgICAgIHBvc1swXSA9IHA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgVW5pY29kZSBpZGVudGlmaWVyIGZyb20gdGhlIGdpdmVuIHN0cmluZyBhdCB0aGUgZ2l2ZW4KKyAgICAgKiBwb3NpdGlvbi4gIFJldHVybiB0aGUgaWRlbnRpZmllciwgb3IgbnVsbCBpZiB0aGVyZSBpcyBubworICAgICAqIGlkZW50aWZpZXIuCisgICAgICogQHBhcmFtIHN0ciB0aGUgc3RyaW5nIHRvIHBhcnNlCisgICAgICogQHBhcmFtIHBvcyBJTlBVVC1PVVBVVCBwYXJhbWV0ZXIuICBPbiBJTlBVVCwgcG9zWzBdIGlzIHRoZQorICAgICAqIGZpcnN0IGNoYXJhY3RlciB0byBleGFtaW5lLiAgSXQgbXVzdCBiZSBsZXNzIHRoYW4gc3RyLmxlbmd0aCgpLAorICAgICAqIGFuZCBpdCBtdXN0IG5vdCBwb2ludCB0byBhIHdoaXRlc3BhY2UgY2hhcmFjdGVyLiAgVGhhdCBpcywgbXVzdAorICAgICAqIGhhdmUgcG9zWzBdIDwgc3RyLmxlbmd0aCgpIGFuZAorICAgICAqICFVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShVVEYxNi5jaGFyQXQoc3RyLCBwb3NbMF0pKS4gIE9uCisgICAgICogT1VUUFVULCB0aGUgcG9zaXRpb24gYWZ0ZXIgdGhlIGxhc3QgcGFyc2VkIGNoYXJhY3Rlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBVbmljb2RlIGlkZW50aWZpZXIsIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gdmFsaWQKKyAgICAgKiBpZGVudGlmaWVyIGF0IHBvc1swXS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBwYXJzZVVuaWNvZGVJZGVudGlmaWVyKFN0cmluZyBzdHIsIGludFtdIHBvcykgeworICAgICAgICAvLyBhc3NlcnQocG9zWzBdIDwgc3RyLmxlbmd0aCgpKTsKKyAgICAgICAgLy8gYXNzZXJ0KCFVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShVVEYxNi5jaGFyQXQoc3RyLCBwb3NbMF0pKSk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBwID0gcG9zWzBdOworICAgICAgICB3aGlsZSAocCA8IHN0ci5sZW5ndGgoKSkgeworICAgICAgICAgICAgaW50IGNoID0gVVRGMTYuY2hhckF0KHN0ciwgcCk7CisgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGNoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJQYXJ0KGNoKSkgeworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBjaCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcCArPSBVVEYxNi5nZXRDaGFyQ291bnQoY2gpOworICAgICAgICB9CisgICAgICAgIHBvc1swXSA9IHA7CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmltIHdoaXRlc3BhY2UgZnJvbSBlbmRzIG9mIGEgU3RyaW5nQnVmZmVyLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciB0cmltKFN0cmluZ0J1ZmZlciBiKSB7CisgICAgICAgIC8vIFRPRE8gdXBkYXRlIHRvIGhhbmRsZSBzdXJyb2dhdGVzCisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGk9MDsgaTxiLmxlbmd0aCgpICYmIENoYXJhY3Rlci5pc1doaXRlc3BhY2UoYi5jaGFyQXQoaSkpOyArK2kpIHt9CisgICAgICAgIGIuZGVsZXRlKDAsIGkpOworICAgICAgICBmb3IgKGk9Yi5sZW5ndGgoKS0xOyBpPj0wICYmIENoYXJhY3Rlci5pc1doaXRlc3BhY2UoYi5jaGFyQXQoaSkpOyAtLWkpIHt9CisgICAgICAgIHJldHVybiBiLmRlbGV0ZShpKzEsIGIubGVuZ3RoKCkpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIHN0YXRpYyBmaW5hbCBjaGFyIERJR0lUU1tdID0geworICAgICAgICAnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOScsCisgICAgICAgICdBJywgJ0InLCAnQycsICdEJywgJ0UnLCAnRicsICdHJywgJ0gnLCAnSScsICdKJywKKyAgICAgICAgJ0snLCAnTCcsICdNJywgJ04nLCAnTycsICdQJywgJ1EnLCAnUicsICdTJywgJ1QnLAorICAgICAgICAnVScsICdWJywgJ1cnLCAnWCcsICdZJywgJ1onCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEFwcGVuZCBhIG51bWJlciB0byB0aGUgZ2l2ZW4gU3RyaW5nQnVmZmVyIGluIHRoZSByYWRpeCAxMAorICAgICAqIGdlbmVyYXRpbmcgYXQgbGVhc3Qgb25lIGRpZ2l0LgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBhcHBlbmROdW1iZXIoU3RyaW5nQnVmZmVyIHJlc3VsdCwgaW50IG4pIHsKKyAgICAgICAgcmV0dXJuIGFwcGVuZE51bWJlcihyZXN1bHQsIG4sIDEwLCAxKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgdGhlIGRpZ2l0cyBvZiBhIHBvc2l0aXZlIGludGVnZXIgdG8gdGhlIGdpdmVuCisgICAgICogPGNvZGU+U3RyaW5nQnVmZmVyPC9jb2RlPiBpbiB0aGUgZ2l2ZW4gcmFkaXguIFRoaXMgaXMKKyAgICAgKiBkb25lIHJlY3Vyc2l2ZWx5IHNpbmNlIGl0IGlzIGVhc2llc3QgdG8gZ2VuZXJhdGUgdGhlIGxvdy0KKyAgICAgKiBvcmRlciBkaWdpdCBmaXJzdCwgYnV0IGl0IG11c3QgYmUgYXBwZW5kZWQgbGFzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSByZXN1bHQgaXMgdGhlIDxjb2RlPlN0cmluZ0J1ZmZlcjwvY29kZT4gdG8gYXBwZW5kIHRvCisgICAgICogQHBhcmFtIG4gaXMgdGhlIHBvc2l0aXZlIGludGVnZXIKKyAgICAgKiBAcGFyYW0gcmFkaXggaXMgdGhlIHJhZGl4LCBmcm9tIDIgdG8gMzYgaW5jbHVzaXZlCisgICAgICogQHBhcmFtIG1pbkRpZ2l0cyBpcyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIHRvIGFwcGVuZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHJlY3Vyc2l2ZUFwcGVuZE51bWJlcihTdHJpbmdCdWZmZXIgcmVzdWx0LCBpbnQgbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByYWRpeCwgaW50IG1pbkRpZ2l0cykKKyAgICB7CisgICAgICAgIGludCBkaWdpdCA9IG4gJSByYWRpeDsKKworICAgICAgICBpZiAobiA+PSByYWRpeCB8fCBtaW5EaWdpdHMgPiAxKSB7CisgICAgICAgICAgICByZWN1cnNpdmVBcHBlbmROdW1iZXIocmVzdWx0LCBuIC8gcmFkaXgsIHJhZGl4LCBtaW5EaWdpdHMgLSAxKTsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTW2RpZ2l0XSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIGEgbnVtYmVyIHRvIHRoZSBnaXZlbiBTdHJpbmdCdWZmZXIgaW4gdGhlIGdpdmVuIHJhZGl4LgorICAgICAqIFN0YW5kYXJkIGRpZ2l0cyAnMCctJzknIGFyZSB1c2VkIGFuZCBsZXR0ZXJzICdBJy0nWicgZm9yCisgICAgICogcmFkaWNlcyAxMSB0aHJvdWdoIDM2LgorICAgICAqIEBwYXJhbSByZXN1bHQgdGhlIGRpZ2l0cyBvZiB0aGUgbnVtYmVyIGFyZSBhcHBlbmRlZCBoZXJlCisgICAgICogQHBhcmFtIG4gdGhlIG51bWJlciB0byBiZSBjb252ZXJ0ZWQgdG8gZGlnaXRzOyBtYXkgYmUgbmVnYXRpdmUuCisgICAgICogSWYgbmVnYXRpdmUsIGEgJy0nIGlzIHByZXBlbmRlZCB0byB0aGUgZGlnaXRzLgorICAgICAqIEBwYXJhbSByYWRpeCBhIHJhZGl4IGZyb20gMiB0byAzNiBpbmNsdXNpdmUuCisgICAgICogQHBhcmFtIG1pbkRpZ2l0cyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzLCBub3QgaW5jbHVkaW5nCisgICAgICogYW55ICctJywgdG8gcHJvZHVjZS4gIFZhbHVlcyBsZXNzIHRoYW4gMiBoYXZlIG5vIGVmZmVjdC4gIE9uZQorICAgICAqIGRpZ2l0IGlzIGFsd2F5cyBlbWl0dGVkIHJlZ2FyZGxlc3Mgb2YgdGhpcyBwYXJhbWV0ZXIuCisgICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byByZXN1bHQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBhcHBlbmROdW1iZXIoU3RyaW5nQnVmZmVyIHJlc3VsdCwgaW50IG4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmFkaXgsIGludCBtaW5EaWdpdHMpCisgICAgICAgIHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24KKyAgICB7CisgICAgICAgIGlmIChyYWRpeCA8IDIgfHwgcmFkaXggPiAzNikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCByYWRpeCAiICsgcmFkaXgpOworICAgICAgICB9CisKKworICAgICAgICBpbnQgYWJzID0gbjsKKworICAgICAgICBpZiAobiA8IDApIHsKKyAgICAgICAgICAgIGFicyA9IC1uOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLSIpOworICAgICAgICB9CisKKyAgICAgICAgcmVjdXJzaXZlQXBwZW5kTnVtYmVyKHJlc3VsdCwgYWJzLCByYWRpeCwgbWluRGlnaXRzKTsKKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGFuIHVuc2lnbmVkIDMxLWJpdCBpbnRlZ2VyIGF0IHRoZSBnaXZlbiBvZmZzZXQuICBVc2UKKyAgICAgKiBVQ2hhcmFjdGVyLmRpZ2l0KCkgdG8gcGFyc2UgaW5kaXZpZHVhbCBjaGFyYWN0ZXJzIGludG8gZGlnaXRzLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIHBhcnNlZAorICAgICAqIEBwYXJhbSBwb3MgSU5QVVQtT1VUUFVUIHBhcmFtZXRlci4gIE9uIGVudHJ5LCBwb3NbMF0gaXMgdGhlCisgICAgICogb2Zmc2V0IHdpdGhpbiB0ZXh0IGF0IHdoaWNoIHRvIHN0YXJ0IHBhcnNpbmc7IGl0IHNob3VsZCBwb2ludAorICAgICAqIHRvIGEgdmFsaWQgZGlnaXQuICBPbiBleGl0LCBwb3NbMF0gaXMgdGhlIG9mZnNldCBhZnRlciB0aGUgbGFzdAorICAgICAqIHBhcnNlZCBjaGFyYWN0ZXIuICBJZiB0aGUgcGFyc2UgZmFpbGVkLCBpdCB3aWxsIGJlIHVuY2hhbmdlZCBvbgorICAgICAqIGV4aXQuICBNdXN0IGJlID49IDAgb24gZW50cnkuCisgICAgICogQHBhcmFtIHJhZGl4IHRoZSByYWRpeCBpbiB3aGljaCB0byBwYXJzZTsgbXVzdCBiZSA+PSAyIGFuZCA8PQorICAgICAqIDM2LgorICAgICAqIEByZXR1cm4gYSBub24tbmVnYXRpdmUgcGFyc2VkIG51bWJlciwgb3IgLTEgdXBvbiBwYXJzZSBmYWlsdXJlLgorICAgICAqIFBhcnNlIGZhaWxzIGlmIHRoZXJlIGFyZSBubyBkaWdpdHMsIHRoYXQgaXMsIGlmIHBvc1swXSBkb2VzIG5vdAorICAgICAqIHBvaW50IHRvIGEgdmFsaWQgZGlnaXQgb24gZW50cnksIG9yIGlmIHRoZSBudW1iZXIgdG8gYmUgcGFyc2VkCisgICAgICogZG9lcyBub3QgZml0IGludG8gYSAzMS1iaXQgdW5zaWduZWQgaW50ZWdlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBwYXJzZU51bWJlcihTdHJpbmcgdGV4dCwgaW50W10gcG9zLCBpbnQgcmFkaXgpIHsKKyAgICAgICAgLy8gYXNzZXJ0KHBvc1swXSA+PSAwKTsKKyAgICAgICAgLy8gYXNzZXJ0KHJhZGl4ID49IDIpOworICAgICAgICAvLyBhc3NlcnQocmFkaXggPD0gMzYpOworICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgIGludCBwID0gcG9zWzBdOworICAgICAgICB3aGlsZSAocCA8IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGludCBjaCA9IFVURjE2LmNoYXJBdCh0ZXh0LCBwKTsKKyAgICAgICAgICAgIGludCBkID0gVUNoYXJhY3Rlci5kaWdpdChjaCwgcmFkaXgpOworICAgICAgICAgICAgaWYgKGQgPCAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBuID0gcmFkaXgqbiArIGQ7CisgICAgICAgICAgICAvLyBBU1NVTUUgdGhhdCB3aGVuIGEgMzItYml0IGludGVnZXIgb3ZlcmZsb3dzIGl0IGJlY29tZXMKKyAgICAgICAgICAgIC8vIG5lZ2F0aXZlLiAgRS5nLiwgMjE0NzQ4MzY0ICogMTAgKyA4ID0+IG5lZ2F0aXZlIHZhbHVlLgorICAgICAgICAgICAgaWYgKG4gPCAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKytwOworICAgICAgICB9CisgICAgICAgIGlmIChwID09IHBvc1swXSkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHBvc1swXSA9IHA7CisgICAgICAgIHJldHVybiBuOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBjaGFyYWN0ZXIgaXMgTk9UIHByaW50YWJsZSBBU0NJSS4gIFRoZSB0YWIsCisgICAgICogbmV3bGluZSBhbmQgbGluZWZlZWQgY2hhcmFjdGVycyBhcmUgY29uc2lkZXJlZCB1bnByaW50YWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVbnByaW50YWJsZShpbnQgYykgeworICAgICAgICByZXR1cm4gIShjID49IDB4MjAgJiYgYyA8PSAweDdFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFc2NhcGUgdW5wcmludGFibGUgY2hhcmFjdGVycyB1c2luZyA8YmFja3NsYXNoPnV4eHh4IG5vdGF0aW9uCisgICAgICogZm9yIFUrMDAwMCB0byBVK0ZGRkYgYW5kIDxiYWNrc2xhc2g+VXh4eHh4eHh4IGZvciBVKzEwMDAwIGFuZAorICAgICAqIGFib3ZlLiAgSWYgdGhlIGNoYXJhY3RlciBpcyBwcmludGFibGUgQVNDSUksIHRoZW4gZG8gbm90aGluZworICAgICAqIGFuZCByZXR1cm4gRkFMU0UuICBPdGhlcndpc2UsIGFwcGVuZCB0aGUgZXNjYXBlZCBub3RhdGlvbiBhbmQKKyAgICAgKiByZXR1cm4gVFJVRS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUoU3RyaW5nQnVmZmVyIHJlc3VsdCwgaW50IGMpIHsKKyAgICAgICAgaWYgKGlzVW5wcmludGFibGUoYykpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ1xcJyk7CisgICAgICAgICAgICBpZiAoKGMgJiB+MHhGRkZGKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnVScpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiYoYz4+MjgpXSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChESUdJVFNbMHhGJihjPj4yNCldKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYmKGM+PjIwKV0pOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiYoYz4+MTYpXSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3UnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoRElHSVRTWzB4RiYoYz4+MTIpXSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYmKGM+PjgpXSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYmKGM+PjQpXSk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKERJR0lUU1sweEYmY10pOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gYSBzZXQsIGlnbm9yaW5nIHF1b3RlZCB0ZXh0LgorICAgICAqIEZvciBleGFtcGxlLCBpbiB0aGUgc3RyaW5nICJhYmMnaGlkZSdoIiwgdGhlICdoJyBpbiAiaGlkZSIgd2lsbCBub3QgYmUKKyAgICAgKiBmb3VuZCBieSBhIHNlYXJjaCBmb3IgImgiLiAgVW5saWtlIFN0cmluZy5pbmRleE9mKCksIHRoaXMgbWV0aG9kIHNlYXJjaGVzCisgICAgICogbm90IGZvciBhIHNpbmdsZSBjaGFyYWN0ZXIsIGJ1dCBmb3IgYW55IGNoYXJhY3RlciBvZiB0aGUgc3RyaW5nCisgICAgICogPGNvZGU+c2V0T2ZDaGFyczwvY29kZT4uCisgICAgICogQHBhcmFtIHRleHQgdGV4dCB0byBiZSBzZWFyY2hlZAorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIGluZGV4LCBpbmNsdXNpdmU7IDxjb2RlPjAgPD0gc3RhcnQKKyAgICAgKiA8PSBsaW1pdDwvY29kZT4uCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBlbmRpbmcgaW5kZXgsIGV4Y2x1c2l2ZTsgPGNvZGU+c3RhcnQgPD0gbGltaXQKKyAgICAgKiA8PSB0ZXh0Lmxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gc2V0T2ZDaGFycyBzdHJpbmcgd2l0aCBvbmUgb3IgbW9yZSBkaXN0aW5jdCBjaGFyYWN0ZXJzCisgICAgICogQHJldHVybiBPZmZzZXQgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiA8Y29kZT5zZXRPZkNoYXJzPC9jb2RlPgorICAgICAqIGZvdW5kLCBvciAtMSBpZiBub3QgZm91bmQuCisgICAgICogQHNlZSBTdHJpbmcjaW5kZXhPZgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHF1b3RlZEluZGV4T2YoU3RyaW5nIHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNldE9mQ2hhcnMpIHsKKyAgICAgICAgZm9yIChpbnQgaT1zdGFydDsgaTxsaW1pdDsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSB0ZXh0LmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID09IEJBQ0tTTEFTSCkgeworICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSBBUE9TVFJPUEhFKSB7CisgICAgICAgICAgICAgICAgd2hpbGUgKCsraSA8IGxpbWl0CisgICAgICAgICAgICAgICAgICAgICAgICYmIHRleHQuY2hhckF0KGkpICE9IEFQT1NUUk9QSEUpIHt9CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNldE9mQ2hhcnMuaW5kZXhPZihjKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8qKgorICAgICogU2ltaWxhciB0byBTdHJpbmdCdWZmZXIuZ2V0Q2hhcnMsIHZlcnNpb24gMS4zLgorICAgICogU2luY2UgSkRLIDEuMiBpbXBsZW1lbnRzIFN0cmluZ0J1ZmZlci5nZXRDaGFycyBkaWZmZXJlbnRseSwgdGhpcyBtZXRob2QKKyAgICAqIGlzIGhlcmUgdG8gcHJvdmlkZSBjb25zaXN0ZW50IHJlc3VsdHMuCisgICAgKiBUbyBiZSByZW1vdmVkIGFmdGVyIEpESyAxLjIgY2Vhc2VkIHRvIGJlIHRoZSByZWZlcmVuY2UgcGxhdGZvcm0uCisgICAgKiBAcGFyYW0gc3JjIHNvdXJjZSBzdHJpbmcgYnVmZmVyCisgICAgKiBAcGFyYW0gc3JjQmVnaW4gb2Zmc2V0IHRvIHRoZSBzdGFydCBvZiB0aGUgc3JjIHRvIHJldHJpZXZlIGZyb20KKyAgICAqIEBwYXJhbSBzcmNFbmQgb2Zmc2V0IHRvIHRoZSBlbmQgb2YgdGhlIHNyYyB0byByZXRyaWV2ZSBmcm9tCisgICAgKiBAcGFyYW0gZHN0IGNoYXIgYXJyYXkgdG8gc3RvcmUgdGhlIHJldHJpZXZlZCBjaGFycworICAgICogQHBhcmFtIGRzdEJlZ2luIG9mZnNldCB0byB0aGUgc3RhcnQgb2YgdGhlIGRlc3RpbmF0aW9uIGNoYXIgYXJyYXkgdG8KKyAgICAqICAgICAgICAgICAgICAgICBzdG9yZSB0aGUgcmV0cmlldmVkIGNoYXJzCisgICAgKiBAZHJhZnQgc2luY2UgSUNVNEogMi4wCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgZ2V0Q2hhcnMoU3RyaW5nQnVmZmVyIHNyYywgaW50IHNyY0JlZ2luLCBpbnQgc3JjRW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGRzdFtdLCBpbnQgZHN0QmVnaW4pCisgICAgeworICAgICAgICBpZiAoc3JjQmVnaW4gPT0gc3JjRW5kKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc3JjLmdldENoYXJzKHNyY0JlZ2luLCBzcmNFbmQsIGRzdCwgZHN0QmVnaW4pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCBhIGNoYXJhY3RlciB0byBhIHJ1bGUgdGhhdCBpcyBiZWluZyBidWlsdCB1cC4gIFRvIGZsdXNoCisgICAgICogdGhlIHF1b3RlQnVmIHRvIHJ1bGUsIG1ha2Ugb25lIGZpbmFsIGNhbGwgd2l0aCBpc0xpdGVyYWwgPT0gdHJ1ZS4KKyAgICAgKiBJZiB0aGVyZSBpcyBubyBmaW5hbCBjaGFyYWN0ZXIsIHBhc3MgaW4gKGludCktMSBhcyBjLgorICAgICAqIEBwYXJhbSBydWxlIHRoZSBzdHJpbmcgdG8gYXBwZW5kIHRoZSBjaGFyYWN0ZXIgdG8KKyAgICAgKiBAcGFyYW0gYyB0aGUgY2hhcmFjdGVyIHRvIGFwcGVuZCwgb3IgKGludCktMSBpZiBub25lLgorICAgICAqIEBwYXJhbSBpc0xpdGVyYWwgaWYgdHJ1ZSwgdGhlbiB0aGUgZ2l2ZW4gY2hhcmFjdGVyIHNob3VsZCBub3QgYmUKKyAgICAgKiBxdW90ZWQgb3IgZXNjYXBlZC4gIFVzdWFsbHkgdGhpcyBtZWFucyBpdCBpcyBhIHN5bnRhY3RpYyBlbGVtZW50CisgICAgICogc3VjaCBhcyA+IG9yICQKKyAgICAgKiBAcGFyYW0gZXNjYXBlVW5wcmludGFibGUgaWYgdHJ1ZSwgdGhlbiB1bnByaW50YWJsZSBjaGFyYWN0ZXJzCisgICAgICogc2hvdWxkIGJlIGVzY2FwZWQgdXNpbmcgZXNjYXBlVW5wcmludGFibGUoKS4gIFRoZXNlIGVzY2FwZXMgd2lsbAorICAgICAqIGFwcGVhciBvdXRzaWRlIG9mIHF1b3Rlcy4KKyAgICAgKiBAcGFyYW0gcXVvdGVCdWYgYSBidWZmZXIgd2hpY2ggaXMgdXNlZCB0byBidWlsZCB1cCBxdW90ZWQKKyAgICAgKiBzdWJzdHJpbmdzLiAgVGhlIGNhbGxlciBzaG91bGQgaW5pdGlhbGx5IHN1cHBseSBhbiBlbXB0eSBidWZmZXIsCisgICAgICogYW5kIHRoZXJlYWZ0ZXIgc2hvdWxkIG5vdCBtb2RpZnkgdGhlIGJ1ZmZlci4gIFRoZSBidWZmZXIgc2hvdWxkIGJlCisgICAgICogY2xlYXJlZCBvdXQgYnksIGF0IHRoZSBlbmQsIGNhbGxpbmcgdGhpcyBtZXRob2Qgd2l0aCBhIGxpdGVyYWwKKyAgICAgKiBjaGFyYWN0ZXIgKHdoaWNoIG1heSBiZSAtMSkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFwcGVuZFRvUnVsZShTdHJpbmdCdWZmZXIgcnVsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc0xpdGVyYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHF1b3RlQnVmKSB7CisgICAgICAgIC8vIElmIHdlIGFyZSBlc2NhcGluZyB1bnByaW50YWJsZXMsIHRoZW4gZXNjYXBlIHRoZW0gb3V0c2lkZQorICAgICAgICAvLyBxdW90ZXMuICBcXHUgYW5kIFxcVSBhcmUgbm90IHJlY29nbml6ZWQgd2l0aGluIHF1b3Rlcy4gIFRoZSBzYW1lCisgICAgICAgIC8vIGxvZ2ljIGFwcGxpZXMgdG8gbGl0ZXJhbHMsIGJ1dCBsaXRlcmFscyBhcmUgbmV2ZXIgZXNjYXBlZC4KKyAgICAgICAgaWYgKGlzTGl0ZXJhbCB8fAorICAgICAgICAgICAgKGVzY2FwZVVucHJpbnRhYmxlICYmIFV0aWxpdHkuaXNVbnByaW50YWJsZShjKSkpIHsKKyAgICAgICAgICAgIGlmIChxdW90ZUJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBwcmVmZXIgYmFja3NsYXNoIEFQT1NUUk9QSEUgdG8gZG91YmxlIEFQT1NUUk9QSEUKKyAgICAgICAgICAgICAgICAvLyAobW9yZSByZWFkYWJsZSwgbGVzcyBzaW1pbGFyIHRvICIpIHNvIGlmIHRoZXJlIGFyZQorICAgICAgICAgICAgICAgIC8vIGRvdWJsZSBBUE9TVFJPUEhFcyBhdCB0aGUgZW5kcywgd2UgcHVsbCB0aGVtIG91dHNpZGUKKyAgICAgICAgICAgICAgICAvLyBvZiB0aGUgcXVvdGUuCisKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZmlyc3QgdGhpbmcgaW4gdGhlIHF1b3RlQnVmIGlzIEFQT1NUUk9QSEUKKyAgICAgICAgICAgICAgICAvLyAoZG91YmxlZCkgdGhlbiBwdWxsIGl0IG91dC4KKyAgICAgICAgICAgICAgICB3aGlsZSAocXVvdGVCdWYubGVuZ3RoKCkgPj0gMiAmJgorICAgICAgICAgICAgICAgICAgICAgICBxdW90ZUJ1Zi5jaGFyQXQoMCkgPT0gQVBPU1RST1BIRSAmJgorICAgICAgICAgICAgICAgICAgICAgICBxdW90ZUJ1Zi5jaGFyQXQoMSkgPT0gQVBPU1RST1BIRSkgeworICAgICAgICAgICAgICAgICAgICBydWxlLmFwcGVuZChCQUNLU0xBU0gpLmFwcGVuZChBUE9TVFJPUEhFKTsKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVCdWYuZGVsZXRlKDAsIDIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgbGFzdCB0aGluZyBpbiB0aGUgcXVvdGVCdWYgaXMgQVBPU1RST1BIRQorICAgICAgICAgICAgICAgIC8vIChkb3VibGVkKSB0aGVuIHJlbW92ZSBhbmQgY291bnQgaXQgYW5kIGFkZCBpdCBhZnRlci4KKyAgICAgICAgICAgICAgICBpbnQgdHJhaWxpbmdDb3VudCA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKHF1b3RlQnVmLmxlbmd0aCgpID49IDIgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVCdWYuY2hhckF0KHF1b3RlQnVmLmxlbmd0aCgpLTIpID09IEFQT1NUUk9QSEUgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVCdWYuY2hhckF0KHF1b3RlQnVmLmxlbmd0aCgpLTEpID09IEFQT1NUUk9QSEUpIHsKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVCdWYuc2V0TGVuZ3RoKHF1b3RlQnVmLmxlbmd0aCgpLTIpOworICAgICAgICAgICAgICAgICAgICArK3RyYWlsaW5nQ291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChxdW90ZUJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcnVsZS5hcHBlbmQoQVBPU1RST1BIRSk7CisgICAgICAgICAgICAgICAgICAgIC8vIGpkayAxLjMuMSBkb2VzIG5vdCBoYXZlIGFwcGVuZChTdHJpbmdCdWZmZXIpIHlldAorICAgICAgICAgICAgICAgICAgICBpZihJQ1VEZWJ1Zy5pc0pESzE0T3JIaWdoZXIpeworICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5hcHBlbmQocXVvdGVCdWYpOworICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUuYXBwZW5kKHF1b3RlQnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJ1bGUuYXBwZW5kKEFQT1NUUk9QSEUpOworICAgICAgICAgICAgICAgICAgICBxdW90ZUJ1Zi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdoaWxlICh0cmFpbGluZ0NvdW50LS0gPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGUuYXBwZW5kKEJBQ0tTTEFTSCkuYXBwZW5kKEFQT1NUUk9QSEUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjICE9IC0xKSB7CisgICAgICAgICAgICAgICAgLyogU2luY2Ugc3BhY2VzIGFyZSBpZ25vcmVkIGR1cmluZyBwYXJzaW5nLCB0aGV5IGFyZQorICAgICAgICAgICAgICAgICAqIGVtaXR0ZWQgb25seSBmb3IgcmVhZGFiaWxpdHkuICBXZSBlbWl0IG9uZSBoZXJlCisgICAgICAgICAgICAgICAgICogb25seSBpZiB0aGVyZSBpc24ndCBhbHJlYWR5IG9uZSBhdCB0aGUgZW5kIG9mIHRoZQorICAgICAgICAgICAgICAgICAqIHJ1bGUuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyAnKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBsZW4gPSBydWxlLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBpZiAobGVuID4gMCAmJiBydWxlLmNoYXJBdChsZW4tMSkgIT0gJyAnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBydWxlLmFwcGVuZCgnICcpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghZXNjYXBlVW5wcmludGFibGUgfHwgIVV0aWxpdHkuZXNjYXBlVW5wcmludGFibGUocnVsZSwgYykpIHsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJ1bGUsIGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEVzY2FwZSAnIGFuZCAnXCcgYW5kIGRvbid0IGJlZ2luIGEgcXVvdGUganVzdCBmb3IgdGhlbQorICAgICAgICBlbHNlIGlmIChxdW90ZUJ1Zi5sZW5ndGgoKSA9PSAwICYmCisgICAgICAgICAgICAgICAgIChjID09IEFQT1NUUk9QSEUgfHwgYyA9PSBCQUNLU0xBU0gpKSB7CisgICAgICAgICAgICBydWxlLmFwcGVuZChCQUNLU0xBU0gpLmFwcGVuZCgoY2hhciljKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNwZWNpYWxzIChwcmludGFibGUgYXNjaWkgdGhhdCBpc24ndCBbMC05YS16QS1aXSkgYW5kCisgICAgICAgIC8vIHdoaXRlc3BhY2UgbmVlZCBxdW90aW5nLiAgQWxzbyBhcHBlbmQgc3R1ZmYgdG8gcXVvdGVzIGlmIHdlIGFyZQorICAgICAgICAvLyBidWlsZGluZyB1cCBhIHF1b3RlZCBzdWJzdHJpbmcgYWxyZWFkeS4KKyAgICAgICAgZWxzZSBpZiAocXVvdGVCdWYubGVuZ3RoKCkgPiAwIHx8CisgICAgICAgICAgICAgICAgIChjID49IDB4MDAyMSAmJiBjIDw9IDB4MDA3RSAmJgorICAgICAgICAgICAgICAgICAgISgoYyA+PSAweDAwMzAvKicwJyovICYmIGMgPD0gMHgwMDM5LyonOScqLykgfHwKKyAgICAgICAgICAgICAgICAgICAgKGMgPj0gMHgwMDQxLyonQScqLyAmJiBjIDw9IDB4MDA1QS8qJ1onKi8pIHx8CisgICAgICAgICAgICAgICAgICAgIChjID49IDB4MDA2MS8qJ2EnKi8gJiYgYyA8PSAweDAwN0EvKid6JyovKSkpIHx8CisgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICBVVEYxNi5hcHBlbmQocXVvdGVCdWYsIGMpOworICAgICAgICAgICAgLy8gRG91YmxlICcgd2l0aGluIGEgcXVvdGUKKyAgICAgICAgICAgIGlmIChjID09IEFQT1NUUk9QSEUpIHsKKyAgICAgICAgICAgICAgICBxdW90ZUJ1Zi5hcHBlbmQoKGNoYXIpYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBPdGhlcndpc2UganVzdCBhcHBlbmQKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBVVEYxNi5hcHBlbmQocnVsZSwgYyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgdGhlIGdpdmVuIHN0cmluZyB0byB0aGUgcnVsZS4gIENhbGxzIHRoZSBzaW5nbGUtY2hhcmFjdGVyCisgICAgICogdmVyc2lvbiBvZiBhcHBlbmRUb1J1bGUgZm9yIGVhY2ggY2hhcmFjdGVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhcHBlbmRUb1J1bGUoU3RyaW5nQnVmZmVyIHJ1bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNMaXRlcmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBxdW90ZUJ1ZikgeworICAgICAgICBmb3IgKGludCBpPTA7IGk8dGV4dC5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICAvLyBPa2F5IHRvIHByb2Nlc3MgaW4gMTYtYml0IGNvZGUgdW5pdHMgaGVyZQorICAgICAgICAgICAgYXBwZW5kVG9SdWxlKHJ1bGUsIHRleHQuY2hhckF0KGkpLCBpc0xpdGVyYWwsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIG1hdGNoZXIgcmVmZXJlbmNlLCB3aGljaCBtYXkgYmUgbnVsbCwgYXBwZW5kIGl0cworICAgICAqIHBhdHRlcm4gYXMgYSBsaXRlcmFsIHRvIHRoZSBnaXZlbiBydWxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBhcHBlbmRUb1J1bGUoU3RyaW5nQnVmZmVyIHJ1bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciBtYXRjaGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBxdW90ZUJ1ZikgeworICAgICAgICBpZiAobWF0Y2hlciAhPSBudWxsKSB7CisgICAgICAgICAgICBhcHBlbmRUb1J1bGUocnVsZSwgbWF0Y2hlci50b1BhdHRlcm4oZXNjYXBlVW5wcmludGFibGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyAyIHVuc2lnbmVkIGludGVnZXJzCisgICAgICogQHBhcmFtIHNvdXJjZSAzMiBiaXQgdW5zaWduZWQgaW50ZWdlcgorICAgICAqIEBwYXJhbSB0YXJnZXQgMzIgYml0IHVuc2lnbmVkIGludGVnZXIKKyAgICAgKiBAcmV0dXJuIDAgaWYgZXF1YWxzLCAxIGlmIHNvdXJjZSBpcyBncmVhdGVyIHRoYW4gdGFyZ2V0IGFuZCAtMQorICAgICAqICAgICAgICAgb3RoZXJ3aXNlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY29tcGFyZVVuc2lnbmVkKGludCBzb3VyY2UsIGludCB0YXJnZXQpCisgICAgeworICAgICAgICBzb3VyY2UgKz0gTUFHSUNfVU5TSUdORUQ7CisgICAgICAgIHRhcmdldCArPSBNQUdJQ19VTlNJR05FRDsKKyAgICAgICAgaWYgKHNvdXJjZSA8IHRhcmdldCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9IAorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPiB0YXJnZXQpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbmQgdGhlIGhpZ2hlc3QgYml0IGluIGEgcG9zaXRpdmUgaW50ZWdlci4gVGhpcyBpcyBkb25lCisgICAgICogYnkgZG9pbmcgYSBiaW5hcnkgc2VhcmNoIHRocm91Z2ggdGhlIGJpdHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbiBpcyB0aGUgaW50ZWdlcgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgYml0IG51bWJlciBvZiB0aGUgaGlnaGVzdCBiaXQsIHdpdGggMCBiZWluZworICAgICAqIHRoZSBsb3cgb3JkZXIgYml0LCBvciAtMSBpZiA8Y29kZT5uPC9jb2RlPiBpcyBub3QgcG9zaXRpdmUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgaGlnaEJpdChpbnQgbikKKyAgICB7CisgICAgICAgIGlmIChuIDw9IDApIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIGJ5dGUgYml0ID0gMDsKKworICAgICAgICBpZiAobiA+PSAxIDw8IDE2KSB7CisgICAgICAgICAgICBuID4+PSAxNjsKKyAgICAgICAgICAgIGJpdCArPSAxNjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID49IDEgPDwgOCkgeworICAgICAgICAgICAgbiA+Pj0gODsKKyAgICAgICAgICAgIGJpdCArPSA4OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCA0KSB7CisgICAgICAgICAgICBuID4+PSA0OworICAgICAgICAgICAgYml0ICs9IDQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAobiA+PSAxIDw8IDIpIHsKKyAgICAgICAgICAgIG4gPj49IDI7CisgICAgICAgICAgICBiaXQgKz0gMjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID49IDEgPDwgMSkgeworICAgICAgICAgICAgbiA+Pj0gMTsKKyAgICAgICAgICAgIGJpdCArPSAxOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGJpdDsKKyAgICB9CisgICAgLyoqCisgICAgICogVXRpbGl0eSBtZXRob2QgdG8gdGFrZSBhIGludFtdIGNvbnRhaW5pbmcgY29kZXBvaW50cyBhbmQgcmV0dXJuCisgICAgICogYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gd2l0aCBjb2RlIHVuaXRzLiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB2YWx1ZU9mKGludFtdc291cmNlKXsKKyAgICAvLyBUT0RPOiBJbnZlc3RpZ2F0ZSB3aHkgdGhpcyBtZXRob2QgaXMgbm90IG9uIFVURjE2IGNsYXNzCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKHNvdXJjZS5sZW5ndGgpOworICAgICAgICBmb3IoaW50IGk9MDsgaTxzb3VyY2UubGVuZ3RoOyBpKyspeworICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCxzb3VyY2VbaV0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisgICAgCisgICAgLy8gISEhIDEuMyBjb21wYXRpYmlsaXkKKyAgICBwdWJsaWMgc3RhdGljIGludCBpbmRleE9mKFN0cmluZ0J1ZmZlciBidWYsIFN0cmluZyBzKSB7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICByZXR1cm4gYnVmLmluZGV4T2Yocyk7CisvLyNlbHNlCisvLyMjICAgIAlyZXR1cm4gYnVmLnRvU3RyaW5nKCkuaW5kZXhPZihzKTsKKy8vI2VuZGlmCisgICAgfQorICAgIAorICAgIC8vICEhISAxLjMgY29tcGF0aWJpbGl5CisgICAgcHVibGljIHN0YXRpYyBpbnQgbGFzdEluZGV4T2YoU3RyaW5nQnVmZmVyIGJ1ZiwgU3RyaW5nIHMpIHsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIHJldHVybiBidWYubGFzdEluZGV4T2Yocyk7CisvLyNlbHNlCisvLyMjICAgIAlyZXR1cm4gYnVmLnRvU3RyaW5nKCkubGFzdEluZGV4T2Yocyk7CisvLyNlbmRpZgorICAgIH0KKyAgICAKKyAgICAvLyAhISEgMS4zIGNvbXBhdGliaWxpeQorICAgIHB1YmxpYyBzdGF0aWMgaW50IGluZGV4T2YoU3RyaW5nQnVmZmVyIGJ1ZiwgU3RyaW5nIHMsIGludCBpKSB7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICByZXR1cm4gYnVmLmluZGV4T2YocywgaSk7CisvLyNlbHNlCisvLyMjICAgIAlyZXR1cm4gYnVmLnRvU3RyaW5nKCkuaW5kZXhPZihzLCBpKTsKKy8vI2VuZGlmCisgICAgfQorICAgIAorICAgIC8vICEhISAxLjMgY29tcGF0aWJpbGl5CisgICBwdWJsaWMgc3RhdGljIGludCBsYXN0SW5kZXhPZihTdHJpbmdCdWZmZXIgYnVmLCBTdHJpbmcgcywgaW50IGkpIHsKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIHJldHVybiBidWYubGFzdEluZGV4T2YocywgaSk7CisvLyNlbHNlCisvLyMjICAgIAlyZXR1cm4gYnVmLnRvU3RyaW5nKCkubGFzdEluZGV4T2YocywgaSk7CisvLyNlbmRpZgorICAgIH0KKyAgIAorICAgLy8gISEhIDEuMyBjb21wYXRpYmlsaXkKKyAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGxhY2VBbGwoU3RyaW5nIHNyYywgU3RyaW5nIHRhcmdldCwgU3RyaW5nIHJlcGxhY2VtZW50KSB7CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgIHJldHVybiBzcmMucmVwbGFjZUFsbCh0YXJnZXQsIHJlcGxhY2VtZW50KTsKKy8vI2Vsc2UKKy8vIyMgICAgICAgaW50IGkgPSBzcmMuaW5kZXhPZih0YXJnZXQpOworLy8jIyAgICAgICBpZiAoaSA9PSAtMSkgeworLy8jIyAgICAgICAgICAgcmV0dXJuIHNyYzsKKy8vIyMgICAgICAgfQorLy8jIyAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworLy8jIyAgICAgICBpbnQgbiA9IDA7CisvLyMjICAgICAgIGRvIHsKKy8vIyMgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3JjLnN1YnN0cmluZyhuLCBpKSk7CisvLyMjICAgICAgICAgICBidWYuYXBwZW5kKHJlcGxhY2VtZW50KTsKKy8vIyMgICAgICAgICAgIG4gPSBpICsgdGFyZ2V0Lmxlbmd0aCgpOworLy8jIyAgICAgICAgICAgaSA9IHNyYy5pbmRleE9mKHRhcmdldCwgbik7CisvLyMjICAgICAgIH0gd2hpbGUgKGkgIT0gLTEpOworLy8jIyAgICAgICBpZiAobiA8IHNyYy5sZW5ndGgoKSkgeworLy8jIyAgICAgICAgICAgYnVmLmFwcGVuZChzcmMuc3Vic3RyaW5nKG4pKTsKKy8vIyMgICAgICAgfQorLy8jIyAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisvLyNlbmRpZgorICAgfQorfQorLy8vQ0xPVkVSOk9OCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9VdGlsaXR5RXh0ZW5zaW9ucy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eUV4dGVuc2lvbnMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDA4MGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvVXRpbGl0eUV4dGVuc2lvbnMuamF2YQpAQCAtMCwwICsxLDExMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUmVwbGFjZWFibGU7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SZXBsYWNlYWJsZVN0cmluZzsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVuaWNvZGVNYXRjaGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVHJhbnNsaXRlcmF0b3I7CisvKioKKyAqIEBhdXRob3IgUmFtCisgKi8KKy8vVGhpcyBjbGFzcyBjb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBzbyB0ZXN0aW5nIG5vdCBuZWVkZWQKKy8vL0NMT1ZFUjpPRkYKK3B1YmxpYyBjbGFzcyBVdGlsaXR5RXh0ZW5zaW9ucyB7CisgICAgLyoqCisgICAgICogQXBwZW5kIHRoZSBnaXZlbiBzdHJpbmcgdG8gdGhlIHJ1bGUuICBDYWxscyB0aGUgc2luZ2xlLWNoYXJhY3RlcgorICAgICAqIHZlcnNpb24gb2YgYXBwZW5kVG9SdWxlIGZvciBlYWNoIGNoYXJhY3Rlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgYXBwZW5kVG9SdWxlKFN0cmluZ0J1ZmZlciBydWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGlzTGl0ZXJhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcXVvdGVCdWYpIHsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRleHQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgLy8gT2theSB0byBwcm9jZXNzIGluIDE2LWJpdCBjb2RlIHVuaXRzIGhlcmUKKyAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsIHRleHQuY2hhckF0KGkpLCBpc0xpdGVyYWwsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgbWF0Y2hlciByZWZlcmVuY2UsIHdoaWNoIG1heSBiZSBudWxsLCBhcHBlbmQgaXRzCisgICAgICogcGF0dGVybiBhcyBhIGxpdGVyYWwgdG8gdGhlIGdpdmVuIHJ1bGUuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGFwcGVuZFRvUnVsZShTdHJpbmdCdWZmZXIgcnVsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIG1hdGNoZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHF1b3RlQnVmKSB7CisgICAgICAgIGlmIChtYXRjaGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGFwcGVuZFRvUnVsZShydWxlLCBtYXRjaGVyLnRvUGF0dGVybihlc2NhcGVVbnByaW50YWJsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBGb3IgZGVidWdnaW5nIHB1cnBvc2VzOyBmb3JtYXQgdGhlIGdpdmVuIHRleHQgaW4gdGhlIGZvcm0KKyAgICAgKiBhYWF7YmJifGNjY3xkZGR9ZWVlLCB3aGVyZSB0aGUge30gaW5kaWNhdGUgdGhlIGNvbnRleHQgc3RhcnQKKyAgICAgKiBhbmQgbGltaXQsIGFuZCB0aGUgfHwgaW5kaWNhdGUgdGhlIHN0YXJ0IGFuZCBsaW1pdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBmb3JtYXRJbnB1dChSZXBsYWNlYWJsZVN0cmluZyBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGFwcGVuZFRvID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3JtYXRJbnB1dChhcHBlbmRUbywgaW5wdXQsIHBvcyk7CisgICAgICAgIHJldHVybiBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHkuZXNjYXBlKGFwcGVuZFRvLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvciBkZWJ1Z2dpbmcgcHVycG9zZXM7IGZvcm1hdCB0aGUgZ2l2ZW4gdGV4dCBpbiB0aGUgZm9ybQorICAgICAqIGFhYXtiYmJ8Y2NjfGRkZH1lZWUsIHdoZXJlIHRoZSB7fSBpbmRpY2F0ZSB0aGUgY29udGV4dCBzdGFydAorICAgICAqIGFuZCBsaW1pdCwgYW5kIHRoZSB8fCBpbmRpY2F0ZSB0aGUgc3RhcnQgYW5kIGxpbWl0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGZvcm1hdElucHV0KFN0cmluZ0J1ZmZlciBhcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBsYWNlYWJsZVN0cmluZyBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgaWYgKDAgPD0gcG9zLmNvbnRleHRTdGFydCAmJgorICAgICAgICAgICAgcG9zLmNvbnRleHRTdGFydCA8PSBwb3Muc3RhcnQgJiYKKyAgICAgICAgICAgIHBvcy5zdGFydCA8PSBwb3MubGltaXQgJiYKKyAgICAgICAgICAgIHBvcy5saW1pdCA8PSBwb3MuY29udGV4dExpbWl0ICYmCisgICAgICAgICAgICBwb3MuY29udGV4dExpbWl0IDw9IGlucHV0Lmxlbmd0aCgpKSB7CisKKyAgICAgICAgICAgIFN0cmluZyAgYiwgYywgZDsKKyAgICAgICAgICAgIC8vYSA9IGlucHV0LnN1YnN0cmluZygwLCBwb3MuY29udGV4dFN0YXJ0KTsKKyAgICAgICAgICAgIGIgPSBpbnB1dC5zdWJzdHJpbmcocG9zLmNvbnRleHRTdGFydCwgcG9zLnN0YXJ0KTsKKyAgICAgICAgICAgIGMgPSBpbnB1dC5zdWJzdHJpbmcocG9zLnN0YXJ0LCBwb3MubGltaXQpOworICAgICAgICAgICAgZCA9IGlucHV0LnN1YnN0cmluZyhwb3MubGltaXQsIHBvcy5jb250ZXh0TGltaXQpOworICAgICAgICAgICAgLy9lID0gaW5wdXQuc3Vic3RyaW5nKHBvcy5jb250ZXh0TGltaXQsIGlucHV0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIGFwcGVuZFRvLi8vYXBwZW5kKGEpLgorICAgICAgICAgICAgICAgIGFwcGVuZCgneycpLmFwcGVuZChiKS4KKyAgICAgICAgICAgICAgICBhcHBlbmQoJ3wnKS5hcHBlbmQoYykuYXBwZW5kKCd8JykuYXBwZW5kKGQpLgorICAgICAgICAgICAgICAgIGFwcGVuZCgnfScpCisgICAgICAgICAgICAgICAgLy8uYXBwZW5kKGUpCisgICAgICAgICAgICAgICAgOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXBwZW5kVG8uYXBwZW5kKCJJTlZBTElEIFBvc2l0aW9uIHtjcz0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MuY29udGV4dFN0YXJ0ICsgIiwgcz0iICsgcG9zLnN0YXJ0ICsgIiwgbD0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MubGltaXQgKyAiLCBjbD0iICsgcG9zLmNvbnRleHRMaW1pdCArICJ9IG9uICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYXBwZW5kVG87CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGZvcm1hdElucHV0KFJlcGxhY2VhYmxlIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gZm9ybWF0SW5wdXQoKFJlcGxhY2VhYmxlU3RyaW5nKSBpbnB1dCwgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgZm9ybWF0SW5wdXQoU3RyaW5nQnVmZmVyIGFwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcGxhY2VhYmxlIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uIHBvcykgeworICAgICAgICByZXR1cm4gZm9ybWF0SW5wdXQoYXBwZW5kVG8sIChSZXBsYWNlYWJsZVN0cmluZykgaW5wdXQsIHBvcyk7CisgICAgfQorCit9CisvL0NMT1ZFUjpPTgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL1pvbmVJbmZvRXh0LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9ab25lSW5mb0V4dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0NzU2MjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9ab25lSW5mb0V4dC5qYXZhCkBAIC0wLDAgKzEsNDM4IEBACisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisvLyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8vID4+PiBUaGlzIGRhdGEgd2FzIGdlbmVyYXRlZCBieSBab25lTWV0YUNMRFIKKy8vID4+PiBhcyBhIHRlbXBvcmFyeSBtZWFzdXJlIGZvciB0aGUgMy40IHJlbGVhc2UuCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbDsKKworcHVibGljIGZpbmFsIGNsYXNzIFpvbmVJbmZvRXh0IHsKKworICAgIC8vIHRhYmxlIGlzIHNvcnRlZCBieSBjYW5vbmljYWwgdGltZSB6b25lIGlkCisgICAgLy8gYWxpYXNlcyBhcmUgbm90IHNvcnRlZAorCisgICAgLy8gWzBdIGNhbm9uaWNhbCB0aW1lIHpvbmUgaWQKKyAgICAvLyBbMV0gY291bnRyeSBjb2RlLCBvciBudWxsIGlmIG5vIGNvdW50cnkKKyAgICAvLyBbMl0gIlQiIGlmIGlzU2luZ2xlLCBudWxsIGlmIG5vdAorICAgIC8vIFtuLi4uXSBhbGlhc2VzIGZvciBjYW5vbmljYWwgdGltZSB6b25lIGlkCisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nW11bXSBDTERSX0lORk8gPSB7CisgICAgICAgIHsgIkFmcmljYS9BYmlkamFuIiwgIkNJIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9BY2NyYSIsICJHSCIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQWRkaXNfQWJhYmEiLCAiRVQiLCAiVCIsICJFQVQiIH0sCisgICAgICAgIHsgIkFmcmljYS9BbGdpZXJzIiwgIkRaIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9Bc21lcmEiLCAiRVIiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0JhbWFrbyIsICJNTCIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQmFuZ3VpIiwgIkNGIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9CYW5qdWwiLCAiR00iLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0Jpc3NhdSIsICJHVyIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQmxhbnR5cmUiLCAiTVciLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0JyYXp6YXZpbGxlIiwgIkNHIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9CdWp1bWJ1cmEiLCAiQkkiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0NhaXJvIiwgIkVHIiwgIlQiLCAiRWd5cHQiLCAiQVJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQ2FzYWJsYW5jYSIsICJNQSIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvQ2V1dGEiLCAiRVMiLCBudWxsIH0sCisgICAgICAgIHsgIkFmcmljYS9Db25ha3J5IiwgIkdOIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9EYWthciIsICJTTiIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvRGFyX2VzX1NhbGFhbSIsICJUWiIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvRGppYm91dGkiLCAiREoiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0RvdWFsYSIsICJDTSIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvRWxfQWFpdW4iLCAiRUgiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0ZyZWV0b3duIiwgIlNMIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9HYWJvcm9uZSIsICJCVyIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvSGFyYXJlIiwgIlpXIiwgIlQiLCAiQ0FUIiB9LAorICAgICAgICB7ICJBZnJpY2EvSm9oYW5uZXNidXJnIiwgIlpBIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9LYW1wYWxhIiwgIlVHIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9LaGFydG91bSIsICJTRCIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvS2lnYWxpIiwgIlJXIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9LaW5zaGFzYSIsICJDRCIsIG51bGwgfSwKKyAgICAgICAgeyAiQWZyaWNhL0xhZ29zIiwgIk5HIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9MaWJyZXZpbGxlIiwgIkdBIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9Mb21lIiwgIlRHIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9MdWFuZGEiLCAiQU8iLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL0x1YnVtYmFzaGkiLCAiQ0QiLCBudWxsIH0sCisgICAgICAgIHsgIkFmcmljYS9MdXNha2EiLCAiWk0iLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL01hbGFibyIsICJHUSIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvTWFwdXRvIiwgIk1aIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9NYXNlcnUiLCAiTFMiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL01iYWJhbmUiLCAiU1oiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL01vZ2FkaXNodSIsICJTTyIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvTW9ucm92aWEiLCAiTFIiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL05haXJvYmkiLCAiS0UiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL05kamFtZW5hIiwgIlREIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9OaWFtZXkiLCAiTkUiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL05vdWFrY2hvdHQiLCAiTVIiLCAiVCIgfSwKKyAgICAgICAgeyAiQWZyaWNhL091YWdhZG91Z291IiwgIkJGIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9Qb3J0by1Ob3ZvIiwgIkJKIiwgIlQiIH0sCisgICAgICAgIHsgIkFmcmljYS9TYW9fVG9tZSIsICJTVCIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvVGltYnVrdHUiLCAiTUwiLCBudWxsIH0sCisgICAgICAgIHsgIkFmcmljYS9Ucmlwb2xpIiwgIkxZIiwgIlQiLCAiTGlieWEiIH0sCisgICAgICAgIHsgIkFmcmljYS9UdW5pcyIsICJUTiIsICJUIiB9LAorICAgICAgICB7ICJBZnJpY2EvV2luZGhvZWsiLCAiTkEiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9BZGFrIiwgIlVTIiwgbnVsbCwgIkFtZXJpY2EvQXRrYSIsICJVUy9BbGV1dGlhbiIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9BbmNob3JhZ2UiLCAiVVMiLCBudWxsLCAiU3lzdGVtVi9ZU1Q5WURUIiwgIlVTL0FsYXNrYSIsICJBU1QiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQW5ndWlsbGEiLCAiQUkiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9BbnRpZ3VhIiwgIkFHIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQXJhZ3VhaW5hIiwgIkJSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0FyZ2VudGluYS9Db21vZFJpdmFkYXZpYSIsICJBUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9BcmdlbnRpbmEvTGFfUmlvamEiLCAiQVIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQXJnZW50aW5hL1Jpb19HYWxsZWdvcyIsICJBUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9BcmdlbnRpbmEvU2FuX0p1YW4iLCAiQVIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQXJnZW50aW5hL1R1Y3VtYW4iLCAiQVIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQXJnZW50aW5hL1VzaHVhaWEiLCAiQVIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQXJ1YmEiLCAiQVciLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Bc3VuY2lvbiIsICJQWSIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0JhaGlhIiwgIkJSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0JhcmJhZG9zIiwgIkJCIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQmVsZW0iLCAiQlIiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQmVsaXplIiwgIkJaIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQm9hX1Zpc3RhIiwgIkJSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0JvZ290YSIsICJDTyIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0JvaXNlIiwgIlVTIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0J1ZW5vc19BaXJlcyIsICJBUiIsIG51bGwsICJBbWVyaWNhL0FyZ2VudGluYS9CdWVub3NfQWlyZXMiLCAiQUdUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0NhbWJyaWRnZV9CYXkiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ2FtcG9fR3JhbmRlIiwgIkJSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0NhbmN1biIsICJNWCIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9DYXJhY2FzIiwgIlZFIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ2F0YW1hcmNhIiwgIkFSIiwgbnVsbCwgIkFtZXJpY2EvQXJnZW50aW5hL0NhdGFtYXJjYSIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9DYXllbm5lIiwgIkdGIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ2F5bWFuIiwgIktZIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ2hpY2FnbyIsICJVUyIsIG51bGwsICJDU1Q2Q0RUIiwgIlN5c3RlbVYvQ1NUNkNEVCIsICJVUy9DZW50cmFsIiwgIkNTVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9DaGlodWFodWEiLCAiTVgiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ29yZG9iYSIsICJBUiIsIG51bGwsICJBbWVyaWNhL0FyZ2VudGluYS9Db3Jkb2JhIiwgIkFtZXJpY2EvUm9zYXJpbyIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Db3N0YV9SaWNhIiwgIkNSIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvQ3VpYWJhIiwgIkJSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0N1cmFjYW8iLCAiQU4iLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9EYW5tYXJrc2hhdm4iLCAiR0wiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvRGF3c29uIiwgIkNBIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0Rhd3Nvbl9DcmVlayIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9EZW52ZXIiLCAiVVMiLCBudWxsLCAiTVNUN01EVCIsICJTeXN0ZW1WL01TVDdNRFQiLCAiVVMvTW91bnRhaW4iIH0sCisgICAgICAgIHsgIkFtZXJpY2EvRGV0cm9pdCIsICJVUyIsIG51bGwsICJVUy9NaWNoaWdhbiIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Eb21pbmljYSIsICJETSIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0VkbW9udG9uIiwgIkNBIiwgbnVsbCwgIkNhbmFkYS9Nb3VudGFpbiIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9FaXJ1bmVwZSIsICJCUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9FbF9TYWx2YWRvciIsICJTViIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0ZvcnRhbGV6YSIsICJCUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9HbGFjZV9CYXkiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvR29kdGhhYiIsICJHTCIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0dvb3NlX0JheSIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9HcmFuZF9UdXJrIiwgIlRDIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvR3JlbmFkYSIsICJHRCIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL0d1YWRlbG91cGUiLCAiR1AiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9HdWF0ZW1hbGEiLCAiR1QiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9HdWF5YXF1aWwiLCAiRUMiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9HdXlhbmEiLCAiR1kiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9IYWxpZmF4IiwgIkNBIiwgbnVsbCwgIkNhbmFkYS9BdGxhbnRpYyIsICJTeXN0ZW1WL0FTVDRBRFQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvSGF2YW5hIiwgIkNVIiwgIlQiLCAiQ3ViYSIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9IZXJtb3NpbGxvIiwgIk1YIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0luZGlhbmEvS25veCIsICJVUyIsIG51bGwsICJBbWVyaWNhL0tub3hfSU4iLCAiVVMvSW5kaWFuYS1TdGFya2UiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvSW5kaWFuYS9NYXJlbmdvIiwgIlVTIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL0luZGlhbmEvVmV2YXkiLCAiVVMiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvSW5kaWFuYXBvbGlzIiwgIlVTIiwgbnVsbCwgIkFtZXJpY2EvRm9ydF9XYXluZSIsICJBbWVyaWNhL0luZGlhbmEvSW5kaWFuYXBvbGlzIiwgIkVTVCIsICJTeXN0ZW1WL0VTVDUiLCAiVVMvRWFzdC1JbmRpYW5hIiwgIklFVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9JbnV2aWsiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvSXFhbHVpdCIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9KYW1haWNhIiwgIkpNIiwgIlQiLCAiSmFtYWljYSIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9KdWp1eSIsICJBUiIsIG51bGwsICJBbWVyaWNhL0FyZ2VudGluYS9KdWp1eSIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9KdW5lYXUiLCAiVVMiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvS2VudHVja3kvTW9udGljZWxsbyIsICJVUyIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9MYV9QYXoiLCAiQk8iLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9MaW1hIiwgIlBFIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCAiVVMiLCBudWxsLCAiUFNUOFBEVCIsICJTeXN0ZW1WL1BTVDhQRFQiLCAiVVMvUGFjaWZpYyIsICJVUy9QYWNpZmljLU5ldyIsICJQU1QiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTG91aXN2aWxsZSIsICJVUyIsIG51bGwsICJBbWVyaWNhL0tlbnR1Y2t5L0xvdWlzdmlsbGUiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTWFjZWlvIiwgIkJSIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL01hbmFndWEiLCAiTkkiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9NYW5hdXMiLCAiQlIiLCBudWxsLCAiQnJhemlsL1dlc3QiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTWFydGluaXF1ZSIsICJNUSIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL01hemF0bGFuIiwgIk1YIiwgbnVsbCwgIk1leGljby9CYWphU3VyIiB9LAorICAgICAgICB7ICJBbWVyaWNhL01lbmRvemEiLCAiQVIiLCBudWxsLCAiQW1lcmljYS9BcmdlbnRpbmEvTWVuZG96YSIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9NZW5vbWluZWUiLCAiVVMiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTWVyaWRhIiwgIk1YIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL01leGljb19DaXR5IiwgIk1YIiwgbnVsbCwgIk1leGljby9HZW5lcmFsIiB9LAorICAgICAgICB7ICJBbWVyaWNhL01pcXVlbG9uIiwgIlBNIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTW9udGVycmV5IiwgIk1YIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL01vbnRldmlkZW8iLCAiVVkiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Nb250cmVhbCIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Nb250c2VycmF0IiwgIk1TIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTmFzc2F1IiwgIkJTIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTmV3X1lvcmsiLCAiVVMiLCBudWxsLCAiRVNUNUVEVCIsICJTeXN0ZW1WL0VTVDVFRFQiLCAiVVMvRWFzdGVybiIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9OaXBpZ29uIiwgIkNBIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL05vbWUiLCAiVVMiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvTm9yb25oYSIsICJCUiIsIG51bGwsICJCcmF6aWwvRGVOb3JvbmhhIiB9LAorICAgICAgICB7ICJBbWVyaWNhL05vcnRoX0Rha290YS9DZW50ZXIiLCAiVVMiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvUGFuYW1hIiwgIlBBIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvUGFuZ25pcnR1bmciLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvUGFyYW1hcmlibyIsICJTUiIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1Bob2VuaXgiLCAiVVMiLCBudWxsLCAiTVNUIiwgIlN5c3RlbVYvTVNUNyIsICJVUy9Bcml6b25hIiwgIlBOVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Qb3J0LWF1LVByaW5jZSIsICJIVCIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1BvcnRfb2ZfU3BhaW4iLCAiVFQiLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Qb3J0b19WZWxobyIsICJCUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9QdWVydG9fUmljbyIsICJQUiIsICJUIiwgIlN5c3RlbVYvQVNUNCIsICJQUlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvUmFpbnlfUml2ZXIiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvUmFua2luX0lubGV0IiwgIkNBIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL1JlY2lmZSIsICJCUiIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9SZWdpbmEiLCAiQ0EiLCBudWxsLCAiQ2FuYWRhL0Vhc3QtU2Fza2F0Y2hld2FuIiwgIkNhbmFkYS9TYXNrYXRjaGV3YW4iLCAiU3lzdGVtVi9DU1Q2IiB9LAorICAgICAgICB7ICJBbWVyaWNhL1Jpb19CcmFuY28iLCAiQlIiLCBudWxsLCAiQW1lcmljYS9Qb3J0b19BY3JlIiwgIkJyYXppbC9BY3JlIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1NhbnRpYWdvIiwgIkNMIiwgIlQiLCAiQ2hpbGUvQ29udGluZW50YWwiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvU2FudG9fRG9taW5nbyIsICJETyIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1Nhb19QYXVsbyIsICJCUiIsIG51bGwsICJCcmF6aWwvRWFzdCIsICJCRVQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvU2NvcmVzYnlzdW5kIiwgIkdMIiwgbnVsbCB9LAorICAgICAgICB7ICJBbWVyaWNhL1NoaXByb2NrIiwgIlVTIiwgbnVsbCwgIk5hdmFqbyIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9TdF9Kb2hucyIsICJDQSIsIG51bGwsICJDYW5hZGEvTmV3Zm91bmRsYW5kIiwgIkNOVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9TdF9LaXR0cyIsICJLTiIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1N0X0x1Y2lhIiwgIkxDIiwgIlQiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvU3RfVGhvbWFzIiwgIlZJIiwgIlQiLCAiQW1lcmljYS9WaXJnaW4iIH0sCisgICAgICAgIHsgIkFtZXJpY2EvU3RfVmluY2VudCIsICJWQyIsICJUIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1N3aWZ0X0N1cnJlbnQiLCAiQ0EiLCBudWxsIH0sCisgICAgICAgIHsgIkFtZXJpY2EvVGVndWNpZ2FscGEiLCAiSE4iLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9UaHVsZSIsICJHTCIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9UaHVuZGVyX0JheSIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9UaWp1YW5hIiwgIk1YIiwgbnVsbCwgIkFtZXJpY2EvRW5zZW5hZGEiLCAiTWV4aWNvL0JhamFOb3J0ZSIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9Ub3JvbnRvIiwgIkNBIiwgbnVsbCwgIkNhbmFkYS9FYXN0ZXJuIiB9LAorICAgICAgICB7ICJBbWVyaWNhL1RvcnRvbGEiLCAiVkciLCAiVCIgfSwKKyAgICAgICAgeyAiQW1lcmljYS9WYW5jb3V2ZXIiLCAiQ0EiLCBudWxsLCAiQ2FuYWRhL1BhY2lmaWMiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvV2hpdGVob3JzZSIsICJDQSIsIG51bGwsICJDYW5hZGEvWXVrb24iIH0sCisgICAgICAgIHsgIkFtZXJpY2EvV2lubmlwZWciLCAiQ0EiLCBudWxsLCAiQ2FuYWRhL0NlbnRyYWwiIH0sCisgICAgICAgIHsgIkFtZXJpY2EvWWFrdXRhdCIsICJVUyIsIG51bGwgfSwKKyAgICAgICAgeyAiQW1lcmljYS9ZZWxsb3drbmlmZSIsICJDQSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW50YXJjdGljYS9DYXNleSIsICJBUSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW50YXJjdGljYS9EYXZpcyIsICJBUSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW50YXJjdGljYS9EdW1vbnREVXJ2aWxsZSIsICJBUSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW50YXJjdGljYS9NYXdzb24iLCAiQVEiLCBudWxsIH0sCisgICAgICAgIHsgIkFudGFyY3RpY2EvTWNNdXJkbyIsICJBUSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW50YXJjdGljYS9QYWxtZXIiLCAiQVEiLCBudWxsIH0sCisgICAgICAgIHsgIkFudGFyY3RpY2EvUm90aGVyYSIsICJBUSIsIG51bGwgfSwKKyAgICAgICAgeyAiQW50YXJjdGljYS9Tb3V0aF9Qb2xlIiwgIkFRIiwgbnVsbCB9LAorICAgICAgICB7ICJBbnRhcmN0aWNhL1N5b3dhIiwgIkFRIiwgbnVsbCB9LAorICAgICAgICB7ICJBbnRhcmN0aWNhL1Zvc3RvayIsICJBUSIsIG51bGwgfSwKKyAgICAgICAgeyAiQXJjdGljL0xvbmd5ZWFyYnllbiIsICJTSiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9BZGVuIiwgIllFIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvQWxtYXR5IiwgIktaIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0FtbWFuIiwgIkpPIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvQW5hZHlyIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0FxdGF1IiwgIktaIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0FxdG9iZSIsICJLWiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9Bc2hnYWJhdCIsICJUTSIsICJUIiwgIkFzaWEvQXNoa2hhYmFkIiB9LAorICAgICAgICB7ICJBc2lhL0JhZ2hkYWQiLCAiSVEiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9CYWhyYWluIiwgIkJIIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvQmFrdSIsICJBWiIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0Jhbmdrb2siLCAiVEgiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9CZWlydXQiLCAiTEIiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9CaXNoa2VrIiwgIktHIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvQnJ1bmVpIiwgIkJOIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvQ2FsY3V0dGEiLCAiSU4iLCAiVCIsICJJU1QiIH0sCisgICAgICAgIHsgIkFzaWEvQ2hvaWJhbHNhbiIsICJNTiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9DaG9uZ3FpbmciLCAiQ04iLCBudWxsLCAiQXNpYS9DaHVuZ2tpbmciIH0sCisgICAgICAgIHsgIkFzaWEvQ29sb21ibyIsICJMSyIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0RhbWFzY3VzIiwgIlNZIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvRGhha2EiLCAiQkQiLCAiVCIsICJBc2lhL0RhY2NhIiwgIkJTVCIgfSwKKyAgICAgICAgeyAiQXNpYS9EaWxpIiwgIlRMIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvRHViYWkiLCAiQUUiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9EdXNoYW5iZSIsICJUSiIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL0dhemEiLCAiUFMiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9IYXJiaW4iLCAiQ04iLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvSG9uZ19Lb25nIiwgIkhLIiwgIlQiLCAiSG9uZ2tvbmciIH0sCisgICAgICAgIHsgIkFzaWEvSG92ZCIsICJNTiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9Jcmt1dHNrIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0pha2FydGEiLCAiSUQiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvSmF5YXB1cmEiLCAiSUQiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvSmVydXNhbGVtIiwgIklMIiwgIlQiLCAiQXNpYS9UZWxfQXZpdiIsICJJc3JhZWwiIH0sCisgICAgICAgIHsgIkFzaWEvS2FidWwiLCAiQUYiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9LYW1jaGF0a2EiLCAiUlUiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvS2FyYWNoaSIsICJQSyIsICJUIiwgIlBMVCIgfSwKKyAgICAgICAgeyAiQXNpYS9LYXNoZ2FyIiwgIkNOIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL0thdG1hbmR1IiwgIk5QIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvS3Jhc25veWFyc2siLCAiUlUiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvS3VhbGFfTHVtcHVyIiwgIk1ZIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvS3VjaGluZyIsICJNWSIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9LdXdhaXQiLCAiS1ciLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9NYWNhdSIsICJNTyIsICJUIiwgIkFzaWEvTWFjYW8iIH0sCisgICAgICAgIHsgIkFzaWEvTWFnYWRhbiIsICJSVSIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9NYWthc3NhciIsICJJRCIsIG51bGwsICJBc2lhL1VqdW5nX1BhbmRhbmciIH0sCisgICAgICAgIHsgIkFzaWEvTWFuaWxhIiwgIlBIIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvTXVzY2F0IiwgIk9NIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvTmljb3NpYSIsICJDWSIsICJUIiwgIkV1cm9wZS9OaWNvc2lhIiB9LAorICAgICAgICB7ICJBc2lhL05vdm9zaWJpcnNrIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL09tc2siLCAiUlUiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvT3JhbCIsICJLWiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9QaG5vbV9QZW5oIiwgIktIIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvUG9udGlhbmFrIiwgIklEIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL1B5b25neWFuZyIsICJLUCIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL1FhdGFyIiwgIlFBIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvUXl6eWxvcmRhIiwgIktaIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL1Jhbmdvb24iLCAiTU0iLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9SaXlhZGgiLCAiU0EiLCAiVCIgfSwKKyAgICAgICAgeyAiQXNpYS9SaXlhZGg4NyIsICJTQSIsICJUIiwgIk1pZGVhc3QvUml5YWRoODciIH0sCisgICAgICAgIHsgIkFzaWEvUml5YWRoODgiLCAiU0EiLCAiVCIsICJNaWRlYXN0L1JpeWFkaDg4IiB9LAorICAgICAgICB7ICJBc2lhL1JpeWFkaDg5IiwgIlNBIiwgIlQiLCAiTWlkZWFzdC9SaXlhZGg4OSIgfSwKKyAgICAgICAgeyAiQXNpYS9TYWlnb24iLCAiVk4iLCAiVCIsICJWU1QiIH0sCisgICAgICAgIHsgIkFzaWEvU2FraGFsaW4iLCAiUlUiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvU2FtYXJrYW5kIiwgIlVaIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL1Nlb3VsIiwgIktSIiwgIlQiLCAiUk9LIiB9LAorICAgICAgICB7ICJBc2lhL1NoYW5naGFpIiwgIkNOIiwgIlQiLCAiUFJDIiwgIkNUVCIgfSwKKyAgICAgICAgeyAiQXNpYS9TaW5nYXBvcmUiLCAiU0ciLCAiVCIsICJTaW5nYXBvcmUiIH0sCisgICAgICAgIHsgIkFzaWEvVGFpcGVpIiwgIlRXIiwgIlQiLCAiUk9DIiB9LAorICAgICAgICB7ICJBc2lhL1Rhc2hrZW50IiwgIlVaIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvVGJpbGlzaSIsICJHRSIsICJUIiB9LAorICAgICAgICB7ICJBc2lhL1RlaHJhbiIsICJJUiIsICJUIiwgIklyYW4iIH0sCisgICAgICAgIHsgIkFzaWEvVGhpbXBodSIsICJCVCIsICJUIiwgIkFzaWEvVGhpbWJ1IiB9LAorICAgICAgICB7ICJBc2lhL1Rva3lvIiwgIkpQIiwgIlQiLCAiSmFwYW4iLCAiSlNUIiB9LAorICAgICAgICB7ICJBc2lhL1VsYWFuYmFhdGFyIiwgIk1OIiwgbnVsbCwgIkFzaWEvVWxhbl9CYXRvciIgfSwKKyAgICAgICAgeyAiQXNpYS9VcnVtcWkiLCAiQ04iLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvVmllbnRpYW5lIiwgIkxBIiwgIlQiIH0sCisgICAgICAgIHsgIkFzaWEvVmxhZGl2b3N0b2siLCAiUlUiLCBudWxsIH0sCisgICAgICAgIHsgIkFzaWEvWWFrdXRzayIsICJSVSIsIG51bGwgfSwKKyAgICAgICAgeyAiQXNpYS9ZZWthdGVyaW5idXJnIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJBc2lhL1llcmV2YW4iLCAiQU0iLCAiVCIsICJORVQiIH0sCisgICAgICAgIHsgIkF0bGFudGljL0F6b3JlcyIsICJQVCIsIG51bGwgfSwKKyAgICAgICAgeyAiQXRsYW50aWMvQmVybXVkYSIsICJCTSIsICJUIiB9LAorICAgICAgICB7ICJBdGxhbnRpYy9DYW5hcnkiLCAiRVMiLCBudWxsIH0sCisgICAgICAgIHsgIkF0bGFudGljL0NhcGVfVmVyZGUiLCAiQ1YiLCAiVCIgfSwKKyAgICAgICAgeyAiQXRsYW50aWMvRmFlcm9lIiwgIkZPIiwgIlQiIH0sCisgICAgICAgIHsgIkF0bGFudGljL0phbl9NYXllbiIsICJTSiIsIG51bGwgfSwKKyAgICAgICAgeyAiQXRsYW50aWMvTWFkZWlyYSIsICJQVCIsIG51bGwgfSwKKyAgICAgICAgeyAiQXRsYW50aWMvUmV5a2phdmlrIiwgIklTIiwgIlQiLCAiSWNlbGFuZCIgfSwKKyAgICAgICAgeyAiQXRsYW50aWMvU291dGhfR2VvcmdpYSIsICJHUyIsICJUIiB9LAorICAgICAgICB7ICJBdGxhbnRpYy9TdF9IZWxlbmEiLCAiU0giLCAiVCIgfSwKKyAgICAgICAgeyAiQXRsYW50aWMvU3RhbmxleSIsICJGSyIsICJUIiB9LAorICAgICAgICB7ICJBdXN0cmFsaWEvQWRlbGFpZGUiLCAiQVUiLCBudWxsLCAiQXVzdHJhbGlhL1NvdXRoIiB9LAorICAgICAgICB7ICJBdXN0cmFsaWEvQnJpc2JhbmUiLCAiQVUiLCBudWxsLCAiQXVzdHJhbGlhL1F1ZWVuc2xhbmQiIH0sCisgICAgICAgIHsgIkF1c3RyYWxpYS9Ccm9rZW5fSGlsbCIsICJBVSIsIG51bGwsICJBdXN0cmFsaWEvWWFuY293aW5uYSIgfSwKKyAgICAgICAgeyAiQXVzdHJhbGlhL0RhcndpbiIsICJBVSIsIG51bGwsICJBdXN0cmFsaWEvTm9ydGgiLCAiQUNUIiB9LAorICAgICAgICB7ICJBdXN0cmFsaWEvSG9iYXJ0IiwgIkFVIiwgbnVsbCwgIkF1c3RyYWxpYS9UYXNtYW5pYSIgfSwKKyAgICAgICAgeyAiQXVzdHJhbGlhL0xpbmRlbWFuIiwgIkFVIiwgbnVsbCB9LAorICAgICAgICB7ICJBdXN0cmFsaWEvTG9yZF9Ib3dlIiwgIkFVIiwgbnVsbCwgIkF1c3RyYWxpYS9MSEkiIH0sCisgICAgICAgIHsgIkF1c3RyYWxpYS9NZWxib3VybmUiLCAiQVUiLCBudWxsLCAiQXVzdHJhbGlhL1ZpY3RvcmlhIiB9LAorICAgICAgICB7ICJBdXN0cmFsaWEvUGVydGgiLCAiQVUiLCBudWxsLCAiQXVzdHJhbGlhL1dlc3QiIH0sCisgICAgICAgIHsgIkF1c3RyYWxpYS9TeWRuZXkiLCAiQVUiLCBudWxsLCAiQXVzdHJhbGlhL0FDVCIsICJBdXN0cmFsaWEvQ2FuYmVycmEiLCAiQXVzdHJhbGlhL05TVyIsICJBRVQiIH0sCisgICAgICAgIHsgIkV0Yy9HTVQiLCBudWxsLCBudWxsLCAiRXRjL0dNVCswIiwgIkV0Yy9HTVQtMCIsICJFdGMvR01UMCIsICJFdGMvR3JlZW53aWNoIiwgIkV0Yy9VQ1QiLCAiRXRjL1VUQyIsICJFdGMvVW5pdmVyc2FsIiwgIkV0Yy9adWx1IiwgIkdNVCIsICJHTVQrMCIsICJHTVQtMCIsICJHTVQwIiwgIkdyZWVud2ljaCIsICJVQ1QiLCAiVVRDIiwgIlVuaXZlcnNhbCIsICJadWx1IiB9LAorICAgICAgICB7ICJFdGMvR01UKzEiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrMTAiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrMTEiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrMTIiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrMiIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVCszIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01UKzQiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrNSIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVCs2IiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01UKzciLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQrOCIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVCs5IiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01ULTEiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtMTAiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtMTEiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtMTIiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtMTMiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtMTQiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtMiIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVC0zIiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01ULTQiLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtNSIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVC02IiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdGMvR01ULTciLCBudWxsLCBudWxsIH0sCisgICAgICAgIHsgIkV0Yy9HTVQtOCIsIG51bGwsIG51bGwgfSwKKyAgICAgICAgeyAiRXRjL0dNVC05IiwgbnVsbCwgbnVsbCB9LAorICAgICAgICB7ICJFdXJvcGUvQW1zdGVyZGFtIiwgIk5MIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9BbmRvcnJhIiwgIkFEIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9BdGhlbnMiLCAiR1IiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL0JlbGZhc3QiLCAiR0IiLCBudWxsIH0sCisgICAgICAgIHsgIkV1cm9wZS9CZWxncmFkZSIsICJDUyIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvQmVybGluIiwgIkRFIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9CcmF0aXNsYXZhIiwgIlNLIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9CcnVzc2VscyIsICJCRSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvQnVjaGFyZXN0IiwgIlJPIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9CdWRhcGVzdCIsICJIVSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvQ2hpc2luYXUiLCAiTUQiLCAiVCIsICJFdXJvcGUvVGlyYXNwb2wiIH0sCisgICAgICAgIHsgIkV1cm9wZS9Db3BlbmhhZ2VuIiwgIkRLIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9EdWJsaW4iLCAiSUUiLCAiVCIsICJFaXJlIiB9LAorICAgICAgICB7ICJFdXJvcGUvR2licmFsdGFyIiwgIkdJIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9IZWxzaW5raSIsICJGSSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvSXN0YW5idWwiLCAiVFIiLCAiVCIsICJBc2lhL0lzdGFuYnVsIiwgIlR1cmtleSIgfSwKKyAgICAgICAgeyAiRXVyb3BlL0thbGluaW5ncmFkIiwgIlJVIiwgbnVsbCB9LAorICAgICAgICB7ICJFdXJvcGUvS2lldiIsICJVQSIsIG51bGwgfSwKKyAgICAgICAgeyAiRXVyb3BlL0xpc2JvbiIsICJQVCIsICJUIiwgIlBvcnR1Z2FsIiB9LAorICAgICAgICB7ICJFdXJvcGUvTGp1YmxqYW5hIiwgIlNJIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9Mb25kb24iLCAiR0IiLCAiVCIsICJHQiIsICJHQi1FaXJlIiB9LAorICAgICAgICB7ICJFdXJvcGUvTHV4ZW1ib3VyZyIsICJMVSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvTWFkcmlkIiwgIkVTIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9NYWx0YSIsICJNVCIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvTWFyaWVoYW1uIiwgIkFYIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9NaW5zayIsICJCWSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvTW9uYWNvIiwgIk1DIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9Nb3Njb3ciLCAiUlUiLCBudWxsLCAiVy1TVSIgfSwKKyAgICAgICAgeyAiRXVyb3BlL09zbG8iLCAiTk8iLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1BhcmlzIiwgIkZSIiwgIlQiLCAiRUNUIiB9LAorICAgICAgICB7ICJFdXJvcGUvUHJhZ3VlIiwgIkNaIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9SaWdhIiwgIkxWIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9Sb21lIiwgIklUIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9TYW1hcmEiLCAiUlUiLCBudWxsIH0sCisgICAgICAgIHsgIkV1cm9wZS9TYW5fTWFyaW5vIiwgIlNNIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9TYXJhamV2byIsICJCQSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvU2ltZmVyb3BvbCIsICJVQSIsIG51bGwgfSwKKyAgICAgICAgeyAiRXVyb3BlL1Nrb3BqZSIsICJNSyIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvU29maWEiLCAiQkciLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1N0b2NraG9sbSIsICJTRSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvVGFsbGlubiIsICJFRSIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvVGlyYW5lIiwgIkFMIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9Vemhnb3JvZCIsICJVQSIsIG51bGwgfSwKKyAgICAgICAgeyAiRXVyb3BlL1ZhZHV6IiwgIkxJIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9WYXRpY2FuIiwgIlZBIiwgIlQiIH0sCisgICAgICAgIHsgIkV1cm9wZS9WaWVubmEiLCAiQVQiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1ZpbG5pdXMiLCAiTFQiLCAiVCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1dhcnNhdyIsICJQTCIsICJUIiwgIlBvbGFuZCIgfSwKKyAgICAgICAgeyAiRXVyb3BlL1phZ3JlYiIsICJIUiIsICJUIiB9LAorICAgICAgICB7ICJFdXJvcGUvWmFwb3Jvemh5ZSIsICJVQSIsIG51bGwgfSwKKyAgICAgICAgeyAiRXVyb3BlL1p1cmljaCIsICJDSCIsICJUIiB9LAorICAgICAgICB7ICJJbmRpYW4vQW50YW5hbmFyaXZvIiwgIk1HIiwgIlQiIH0sCisgICAgICAgIHsgIkluZGlhbi9DaGFnb3MiLCAiSU8iLCAiVCIgfSwKKyAgICAgICAgeyAiSW5kaWFuL0NocmlzdG1hcyIsICJDWCIsICJUIiB9LAorICAgICAgICB7ICJJbmRpYW4vQ29jb3MiLCAiQ0MiLCAiVCIgfSwKKyAgICAgICAgeyAiSW5kaWFuL0NvbW9ybyIsICJLTSIsICJUIiB9LAorICAgICAgICB7ICJJbmRpYW4vS2VyZ3VlbGVuIiwgIlRGIiwgIlQiIH0sCisgICAgICAgIHsgIkluZGlhbi9NYWhlIiwgIlNDIiwgIlQiIH0sCisgICAgICAgIHsgIkluZGlhbi9NYWxkaXZlcyIsICJNViIsICJUIiB9LAorICAgICAgICB7ICJJbmRpYW4vTWF1cml0aXVzIiwgIk1VIiwgIlQiIH0sCisgICAgICAgIHsgIkluZGlhbi9NYXlvdHRlIiwgIllUIiwgIlQiIH0sCisgICAgICAgIHsgIkluZGlhbi9SZXVuaW9uIiwgIlJFIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvQXBpYSIsICJXUyIsICJUIiwgIk1JVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9BdWNrbGFuZCIsICJOWiIsICJUIiwgIk5aIiwgIk5TVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9DaGF0aGFtIiwgIk5aIiwgbnVsbCwgIk5aLUNIQVQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvRWFzdGVyIiwgIkNMIiwgbnVsbCwgIkNoaWxlL0Vhc3RlcklzbGFuZCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9FZmF0ZSIsICJWVSIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL0VuZGVyYnVyeSIsICJLSSIsIG51bGwgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9GYWthb2ZvIiwgIlRLIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvRmlqaSIsICJGSiIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL0Z1bmFmdXRpIiwgIlRWIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvR2FsYXBhZ29zIiwgIkVDIiwgbnVsbCB9LAorICAgICAgICB7ICJQYWNpZmljL0dhbWJpZXIiLCAiUEYiLCBudWxsLCAiU3lzdGVtVi9ZU1Q5IiB9LAorICAgICAgICB7ICJQYWNpZmljL0d1YWRhbGNhbmFsIiwgIlNCIiwgIlQiLCAiU1NUIiB9LAorICAgICAgICB7ICJQYWNpZmljL0d1YW0iLCAiR1UiLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9Ib25vbHVsdSIsICJVUyIsIG51bGwsICJIU1QiLCAiU3lzdGVtVi9IU1QxMCIsICJVUy9IYXdhaWkiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvSm9obnN0b24iLCAiVU0iLCBudWxsIH0sCisgICAgICAgIHsgIlBhY2lmaWMvS2lyaXRpbWF0aSIsICJLSSIsIG51bGwgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9Lb3NyYWUiLCAiRk0iLCBudWxsIH0sCisgICAgICAgIHsgIlBhY2lmaWMvS3dhamFsZWluIiwgIk1IIiwgbnVsbCwgIkt3YWphbGVpbiIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9NYWp1cm8iLCAiTUgiLCBudWxsIH0sCisgICAgICAgIHsgIlBhY2lmaWMvTWFycXVlc2FzIiwgIlBGIiwgbnVsbCB9LAorICAgICAgICB7ICJQYWNpZmljL01pZHdheSIsICJVTSIsIG51bGwgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9OYXVydSIsICJOUiIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL05pdWUiLCAiTlUiLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9Ob3Jmb2xrIiwgIk5GIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvTm91bWVhIiwgIk5DIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvUGFnb19QYWdvIiwgIkFTIiwgIlQiLCAiUGFjaWZpYy9TYW1vYSIsICJVUy9TYW1vYSIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9QYWxhdSIsICJQVyIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL1BpdGNhaXJuIiwgIlBOIiwgIlQiLCAiU3lzdGVtVi9QU1Q4IiB9LAorICAgICAgICB7ICJQYWNpZmljL1BvbmFwZSIsICJGTSIsIG51bGwgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9Qb3J0X01vcmVzYnkiLCAiUEciLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9SYXJvdG9uZ2EiLCAiQ0siLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9TYWlwYW4iLCAiTVAiLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9UYWhpdGkiLCAiUEYiLCAiVCIgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9UYXJhd2EiLCAiS0kiLCBudWxsIH0sCisgICAgICAgIHsgIlBhY2lmaWMvVG9uZ2F0YXB1IiwgIlRPIiwgIlQiIH0sCisgICAgICAgIHsgIlBhY2lmaWMvVHJ1ayIsICJGTSIsIG51bGwgfSwKKyAgICAgICAgeyAiUGFjaWZpYy9XYWtlIiwgIlVNIiwgbnVsbCB9LAorICAgICAgICB7ICJQYWNpZmljL1dhbGxpcyIsICJXRiIsICJUIiB9LAorICAgICAgICB7ICJQYWNpZmljL1lhcCIsICJGTSIsIG51bGwgfSwKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvWm9uZU1ldGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1pvbmVNZXRhLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM4NTAxNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL1pvbmVNZXRhLmphdmEKQEAgLTAsMCArMSw2MDYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IFNlcHRlbWJlciA0IDIwMDMKKyogU2luY2U6IElDVSAyLjgKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGw7CisKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5UcmVlTWFwOworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5TaW1wbGVEYXRlRm9ybWF0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogVGhpcyBjbGFzcywgbm90IHRvIGJlIGluc3RhbnRpYXRlZCwgaW1wbGVtZW50cyB0aGUgbWV0YS1kYXRhCisgKiBtaXNzaW5nIGZyb20gdGhlIHVuZGVybHlpbmcgY29yZSBKREsgaW1wbGVtZW50YXRpb24gb2YgdGltZSB6b25lcy4KKyAqIFRoZXJlIGFyZSB0d28gbWlzc2luZyBmZWF0dXJlczogT2J0YWluaW5nIGEgbGlzdCBvZiBhdmFpbGFibGUgem9uZXMKKyAqIGZvciBhIGdpdmVuIGNvdW50cnkgKGFzIGRlZmluZWQgYnkgdGhlIE9sc29uIGRhdGFiYXNlKSwgYW5kCisgKiBvYnRhaW5pbmcgYSBsaXN0IG9mIGVxdWl2YWxlbnQgem9uZXMgZm9yIGEgZ2l2ZW4gem9uZSAoYXMgZGVmaW5lZAorICogYnkgT2xzb24gbGlua3MpLgorICoKKyAqIFRoaXMgY2xhc3MgdXNlcyBhIGRhdGEgY2xhc3MsIFpvbmVNZXRhRGF0YSwgd2hpY2ggaXMgY3JlYXRlZCBieSB0aGUKKyAqIHRvb2wgdHoyaWN1LgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzaW5jZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBab25lTWV0YSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBBU1NFUlQgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gY291bnRyeS4gIFRoZXNlIElEcyBtYXkgYmUgcGFzc2VkIHRvCisgICAgICogPGNvZGU+VGltZVpvbmUuZ2V0VGltZVpvbmUoKTwvY29kZT4gdG8gY29uc3RydWN0IHRoZQorICAgICAqIGNvcnJlc3BvbmRpbmcgVGltZVpvbmUgb2JqZWN0LgorICAgICAqIEBwYXJhbSBjb3VudHJ5IGEgdHdvLWxldHRlciBJU08gMzE2NiBjb3VudHJ5IGNvZGUsIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgICAgICogdG8gcmV0dXJuIHpvbmVzIG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IGNvdW50cnkKKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIElEcyBmb3Igc3lzdGVtIFRpbWVab25lcyBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBjb3VudHJ5LiAgSWYgdGhlcmUgYXJlIG5vbmUsIHJldHVybiBhIHplcm8tbGVuZ3RoIGFycmF5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFN0cmluZ1tdIGdldEF2YWlsYWJsZUlEcyhTdHJpbmcgY291bnRyeSkgeworICAgICAgICBpZighZ2V0T2xzb25NZXRhKCkpeworICAgICAgICAgICAgcmV0dXJuIEVNUFRZOworICAgICAgICB9CisgICAgICAgIHRyeXsKKwkgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRvcCA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiem9uZWluZm8iLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOworCSAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVnaW9ucyA9IHRvcC5nZXQoa1JFR0lPTlMpOworCSAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgbmFtZXMgPSB0b3AuZ2V0KGtOQU1FUyk7IC8vIGRlcmVmZXJlbmNlIFpvbmVzIHNlY3Rpb24KKwkgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRlbXAgPSByZWdpb25zLmdldChjb3VudHJ5KTsKKwkgICAgICAgIGludFtdIHZlY3RvciA9IHRlbXAuZ2V0SW50VmVjdG9yKCk7CisJICAgICAgICBpZiAoQVNTRVJUKSBBc3NlcnQuYXNzcnQoInZlY3Rvci5sZW5ndGg+MCIsIHZlY3Rvci5sZW5ndGg+MCk7CisJICAgICAgICBTdHJpbmdbXSByZXQgPSBuZXcgU3RyaW5nW3ZlY3Rvci5sZW5ndGhdOworCSAgICAgICAgZm9yIChpbnQgaT0wOyBpPHZlY3Rvci5sZW5ndGg7ICsraSkgeworCSAgICAgICAgCWlmIChBU1NFUlQpIEFzc2VydC5hc3NydCgidmVjdG9yW2ldID49IDAgJiYgdmVjdG9yW2ldIDwgT0xTT05fWk9ORV9DT1VOVCIsIAorCSAgICAgICAgCQkJdmVjdG9yW2ldID49IDAgJiYgdmVjdG9yW2ldIDwgT0xTT05fWk9ORV9DT1VOVCk7CisJICAgICAgICAgICAgcmV0W2ldID0gbmFtZXMuZ2V0U3RyaW5nKHZlY3RvcltpXSk7CisJICAgICAgICB9CisJICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgCS8vdGhyb3cgYXdheSB0aGUgZXhjZXB0aW9uCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEVNUFRZOworICAgIH0KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBTdHJpbmdbXSBnZXRBdmFpbGFibGVJRHMoKSB7CisgICAgICAgIGlmKCFnZXRPbHNvbk1ldGEoKSl7CisgICAgICAgICAgICByZXR1cm4gRU1QVFk7CisgICAgICAgIH0KKyAgICAgICAgdHJ5eworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdG9wID0gKElDVVJlc291cmNlQnVuZGxlKUlDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsICJ6b25laW5mbyIsIElDVVJlc291cmNlQnVuZGxlLklDVV9EQVRBX0NMQVNTX0xPQURFUik7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBuYW1lcyA9IHRvcC5nZXQoa05BTUVTKTsgLy8gZGVyZWZlcmVuY2UgWm9uZXMgc2VjdGlvbgorICAgICAgICAgICAgcmV0dXJuIG5hbWVzLmdldFN0cmluZ0FycmF5KCk7CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgLy90aHJvdyBhd2F5IHRoZSBleGNlcHRpb24KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRU1QVFk7CisgICAgfQorICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFN0cmluZ1tdIGdldEF2YWlsYWJsZUlEcyhpbnQgb2Zmc2V0KXsKKyAgICAgICAgVmVjdG9yIHZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPE9MU09OX1pPTkVfQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHVuaXN0cjsKKyAgICAgICAgICAgIGlmICgodW5pc3RyPWdldElEKGkpKSE9bnVsbCkgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgVkVSWSBpbmVmZmljaWVudC4KKyAgICAgICAgICAgICAgICBUaW1lWm9uZSB6ID0gVGltZVpvbmUuZ2V0VGltZVpvbmUodW5pc3RyKTsKKyAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZ2V0IGJhY2sgdGhlIElEIHdlIHdhbnRlZCAoaWYgdGhlIElEIGlzCisgICAgICAgICAgICAgICAgLy8gaW52YWxpZCB3ZSBnZXQgYmFjayBHTVQpLgorICAgICAgICAgICAgICAgIGlmICh6ICE9IG51bGwgJiYgei5nZXRJRCgpLmVxdWFscyh1bmlzdHIpICYmCisgICAgICAgICAgICAgICAgICAgIHouZ2V0UmF3T2Zmc2V0KCkgPT0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgICAgIHZlY3Rvci5hZGQodW5pc3RyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYoIXZlY3Rvci5pc0VtcHR5KCkpeworICAgICAgICAgICAgU3RyaW5nW10gc3RyaW5ncyA9IG5ldyBTdHJpbmdbdmVjdG9yLnNpemUoKV07CisgICAgICAgICAgICByZXR1cm4gKFN0cmluZ1tdKXZlY3Rvci50b0FycmF5KHN0cmluZ3MpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBFTVBUWTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldElEKGludCBpKSB7CisgICAgICAgIHRyeXsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRvcCA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiem9uZWluZm8iLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgbmFtZXMgPSB0b3AuZ2V0KGtOQU1FUyk7IC8vIGRlcmVmZXJlbmNlIFpvbmVzIHNlY3Rpb24KKyAgICAgICAgICAgIHJldHVybiBuYW1lcy5nZXRTdHJpbmcoaSk7CisgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgLy90aHJvdyBhd2F5IHRoZSBleGNlcHRpb24KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIElEcyBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAgdGhhdAorICAgICAqIGluY2x1ZGVzIHRoZSBnaXZlbiBJRC4gIEFuIGVxdWl2YWxlbmN5IGdyb3VwIGNvbnRhaW5zIHpvbmVzCisgICAgICogdGhhdCBiZWhhdmUgaWRlbnRpY2FsbHkgdG8gdGhlIGdpdmVuIHpvbmUuCisgICAgICoKKyAgICAgKiA8cD5JZiB0aGVyZSBhcmUgbm8gZXF1aXZhbGVudCB6b25lcywgdGhlbiB0aGlzIG1ldGhvZCByZXR1cm5zCisgICAgICogMC4gIFRoaXMgbWVhbnMgZWl0aGVyIHRoZSBnaXZlbiBJRCBpcyBub3QgYSB2YWxpZCB6b25lLCBvciBpdAorICAgICAqIGlzIGFuZCB0aGVyZSBhcmUgbm8gb3RoZXIgZXF1aXZhbGVudCB6b25lcy4KKyAgICAgKiBAcGFyYW0gaWQgYSBzeXN0ZW0gdGltZSB6b25lIElECisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIHpvbmVzIGluIHRoZSBlcXVpdmFsZW5jeSBncm91cCBjb250YWluaW5nCisgICAgICogJ2lkJywgb3IgemVybyBpZiB0aGVyZSBhcmUgbm8gZXF1aXZhbGVudCB6b25lcy4KKyAgICAgKiBAc2VlICNnZXRFcXVpdmFsZW50SUQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBpbnQgY291bnRFcXVpdmFsZW50SURzKFN0cmluZyBpZCkgeworCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJlcyA9IG9wZW5PbHNvblJlc291cmNlKGlkKTsKKyAgICAgICAgaW50IHNpemUgPSByZXMuZ2V0U2l6ZSgpOworICAgICAgICBpZiAoc2l6ZSA9PSA0IHx8IHNpemUgPT0gNikgeworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcj1yZXMuZ2V0KHNpemUtMSk7CisgICAgICAgICAgICAvL3Jlc3VsdCA9IHVyZXNfZ2V0U2l6ZSgmcik7IC8vIGRvZXNuJ3Qgd29yaworICAgICAgICAgICAgaW50W10gdiA9IHIuZ2V0SW50VmVjdG9yKCk7CisgICAgICAgICAgICByZXR1cm4gdi5sZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBJRCBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAgdGhhdCBpbmNsdWRlcyB0aGUgZ2l2ZW4KKyAgICAgKiBJRC4gIEFuIGVxdWl2YWxlbmN5IGdyb3VwIGNvbnRhaW5zIHpvbmVzIHRoYXQgYmVoYXZlCisgICAgICogaWRlbnRpY2FsbHkgdG8gdGhlIGdpdmVuIHpvbmUuCisgICAgICoKKyAgICAgKiA8cD5UaGUgZ2l2ZW4gaW5kZXggbXVzdCBiZSBpbiB0aGUgcmFuZ2UgMC4ubi0xLCB3aGVyZSBuIGlzIHRoZQorICAgICAqIHZhbHVlIHJldHVybmVkIGJ5IDxjb2RlPmNvdW50RXF1aXZhbGVudElEcyhpZCk8L2NvZGU+LiAgRm9yCisgICAgICogc29tZSB2YWx1ZSBvZiAnaW5kZXgnLCB0aGUgcmV0dXJuZWQgdmFsdWUgd2lsbCBiZSBlcXVhbCB0byB0aGUKKyAgICAgKiBnaXZlbiBpZC4gIElmIHRoZSBnaXZlbiBpZCBpcyBub3QgYSB2YWxpZCBzeXN0ZW0gdGltZSB6b25lLCBvcgorICAgICAqIGlmICdpbmRleCcgaXMgb3V0IG9mIHJhbmdlLCB0aGVuIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nLgorICAgICAqIEBwYXJhbSBpZCBhIHN5c3RlbSB0aW1lIHpvbmUgSUQKKyAgICAgKiBAcGFyYW0gaW5kZXggYSB2YWx1ZSBmcm9tIDAgdG8gbi0xLCB3aGVyZSBuIGlzIHRoZSB2YWx1ZQorICAgICAqIHJldHVybmVkIGJ5IDxjb2RlPmNvdW50RXF1aXZhbGVudElEcyhpZCk8L2NvZGU+CisgICAgICogQHJldHVybiB0aGUgSUQgb2YgdGhlIGluZGV4LXRoIHpvbmUgaW4gdGhlIGVxdWl2YWxlbmN5IGdyb3VwCisgICAgICogY29udGFpbmluZyAnaWQnLCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgJ2lkJyBpcyBub3QgYSB2YWxpZAorICAgICAqIHN5c3RlbSBJRCBvciAnaW5kZXgnIGlzIG91dCBvZiByYW5nZQorICAgICAqIEBzZWUgI2NvdW50RXF1aXZhbGVudElEcworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFN0cmluZyBnZXRFcXVpdmFsZW50SUQoU3RyaW5nIGlkLCBpbnQgaW5kZXgpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdD0iIjsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmVzID0gb3Blbk9sc29uUmVzb3VyY2UoaWQpOworICAgICAgICBpbnQgem9uZSA9IC0xOworICAgICAgICBpbnQgc2l6ZSA9IHJlcy5nZXRTaXplKCk7CisgICAgICAgIGlmIChzaXplID09IDQgfHwgc2l6ZSA9PSA2KSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByID0gcmVzLmdldChzaXplLTEpOworICAgICAgICAgICAgaW50W10gdiA9IHIuZ2V0SW50VmVjdG9yKCk7CisgICAgICAgICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHNpemUgJiYgZ2V0T2xzb25NZXRhKCkpIHsKKyAgICAgICAgICAgICAgICB6b25lID0gdltpbmRleF07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHpvbmUgPj0gMCkgeworICAgICAgICAJSUNVUmVzb3VyY2VCdW5kbGUgdG9wID0gKElDVVJlc291cmNlQnVuZGxlKUlDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsICJ6b25laW5mbyIsIElDVVJlc291cmNlQnVuZGxlLklDVV9EQVRBX0NMQVNTX0xPQURFUik7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBhcmVzID0gdG9wLmdldChrTkFNRVMpOyAvLyBkZXJlZmVyZW5jZSBab25lcyBzZWN0aW9uCisgICAgICAgICAgICByZXN1bHQgPSBhcmVzLmdldFN0cmluZyh6b25lKTsKKworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIHRoZSBlcXVpdmFsZW5jeSBtYXAuCisgICAgICoKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGNyZWF0ZUVxdWl2TWFwKCkgeworICAgICAgICBFUVVJVl9NQVAgPSBuZXcgVHJlZU1hcCgpOworCisgICAgICAgIC8vIHRyeSBsZWF2aW5nIGFsbCBpZHMgYXMgdmFsaWQKKy8vICAgICAgICAgU2V0IHZhbGlkID0gZ2V0VmFsaWRJRHMoKTsKKworICAgICAgICBBcnJheUxpc3QgbGlzdCA9IG5ldyBBcnJheUxpc3QoKTsgLy8gcmV1c2UgdGhpcyBiZWxvdworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxab25lTWV0YURhdGEuRVFVSVYubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIFN0cmluZ1tdIHogPSBab25lTWV0YURhdGEuRVFVSVZbaV07CisgICAgICAgICAgICBsaXN0LmNsZWFyKCk7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8ei5sZW5ndGg7ICsraikgeworLy8gICAgICAgICAgICAgICAgICBpZiAodmFsaWQuY29udGFpbnMoeltqXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGlzdC5hZGQoeltqXSk7CisvLyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaXN0LnNpemUoKSA+IDEpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBhID0gKFN0cmluZ1tdKSBsaXN0LnRvQXJyYXkoRU1QVFkpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgajxhLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIEVRVUlWX01BUC5wdXQoYVtqXSwgYSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gZ2V0Q2Fub25pY2FsSW5mbyhTdHJpbmcgaWQpIHsKKyAgICAgICAgaWYgKGNhbm9uaWNhbE1hcCA9PSBudWxsKSB7CisgICAgICAgICAgICBNYXAgbSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFpvbmVJbmZvRXh0LkNMRFJfSU5GTy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIGNsaXN0ID0gWm9uZUluZm9FeHQuQ0xEUl9JTkZPW2ldOworICAgICAgICAgICAgICAgIFN0cmluZyBjID0gY2xpc3RbMF07CisgICAgICAgICAgICAgICAgbS5wdXQoYywgY2xpc3QpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAzOyBqIDwgY2xpc3QubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgbS5wdXQoY2xpc3Rbal0sIGNsaXN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKFpvbmVNZXRhLmNsYXNzKSB7CisgICAgICAgICAgICAgICAgY2Fub25pY2FsTWFwID0gbTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAoU3RyaW5nW10pY2Fub25pY2FsTWFwLmdldChpZCk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIE1hcCBjYW5vbmljYWxNYXAgPSBudWxsOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjYW5vbmljYWwgaWQgZm9yIHRoaXMgdHppZCwgd2hpY2ggbWlnaHQgYmUgdGhlIGlkIGl0c2VsZi4KKyAgICAgKiBJZiB0aGVyZSBpcyBubyBjYW5vbmljYWwgaWQgZm9yIGl0LCByZXR1cm4gdGhlIHBhc3NlZC1pbiBpZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRDYW5vbmljYWxJRChTdHJpbmcgdHppZCkgeworICAgICAgICBTdHJpbmdbXSBpbmZvID0gZ2V0Q2Fub25pY2FsSW5mbyh0emlkKTsKKyAgICAgICAgaWYgKGluZm8gIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGluZm9bMF07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHR6aWQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjYW5vbmljYWwgY291bnRyeSBjb2RlIGZvciB0aGlzIHR6aWQuICBJZiB3ZSBoYXZlIG5vbmUsIG9yIGlmIHRoZSB0aW1lIHpvbmUKKyAgICAgKiBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIGEgY291bnRyeSwgcmV0dXJuIG51bGwuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0Q2Fub25pY2FsQ291bnRyeShTdHJpbmcgdHppZCkgeworICAgICAgICBTdHJpbmdbXSBpbmZvID0gZ2V0Q2Fub25pY2FsSW5mbyh0emlkKTsKKyAgICAgICAgaWYgKGluZm8gIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGluZm9bMV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjb3VudHJ5IGNvZGUgaWYgdGhpcyBpcyBhICdzaW5nbGUnIHRpbWUgem9uZSB0aGF0IGNhbiBmYWxsYmFjayB0byBqdXN0CisgICAgICogdGhlIGNvdW50cnksIG90aGVyd2lzZSByZXR1cm4gbnVsbC4gIChOb3RlLCBvbmUgbXVzdCBhbHNvIGNoZWNrIHRoZSBsb2NhbGUgZGF0YQorICAgICAqIHRvIHNlZSB0aGF0IHRoZXJlIGlzIGEgbG9jYWxpemF0aW9uIGZvciB0aGUgY291bnRyeSBpbiBvcmRlciB0byBpbXBsZW1lbnQKKyAgICAgKiB0ciMzNSBhcHBlbmRpeCBKIHN0ZXAgNS4pCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0U2luZ2xlQ291bnRyeShTdHJpbmcgdHppZCkgeworICAgICAgICBTdHJpbmdbXSBpbmZvID0gZ2V0Q2Fub25pY2FsSW5mbyh0emlkKTsKKyAgICAgICAgaWYgKGluZm8gIT0gbnVsbCAmJiBpbmZvWzJdICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBpbmZvWzFdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEhhbmRsZSBmYWxsYmFja3MgZm9yIGdlbmVyaWMgdGltZSAocnVsZXMgRS4uIEcpCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZGlzcGxheUZhbGxiYWNrKFN0cmluZyB0emlkLCBTdHJpbmcgY2l0eSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgU3RyaW5nW10gaW5mbyA9IGdldENhbm9uaWNhbEluZm8odHppZCk7CisgICAgICAgIGlmIChpbmZvID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBlcnJvcgorICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGNvdW50cnlfY29kZSA9IGluZm9bMV07CisgICAgICAgIGlmIChjb3VudHJ5X2NvZGUgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIGVycm9yISAgIAorICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSBudWxsOworICAgICAgICBpZiAoY291bnRyeV9jb2RlICE9IG51bGwpIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gCisgICAgICAgICAgICAgICAgKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUpOworICAgICAgICAgICAgaWYgKHJiLmdldExvYWRpbmdTdGF0dXMoKSAhPSByYi5GUk9NX1JPT1QgJiYgcmIuZ2V0TG9hZGluZ1N0YXR1cygpICE9IHJiLkZST01fREVGQVVMVCkgeworICAgICAgICAgICAgICAgIGNvdW50cnkgPSBVTG9jYWxlLmdldERpc3BsYXlDb3VudHJ5KCJ4eF8iICsgY291bnRyeV9jb2RlLCBsb2NhbGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNvdW50cnkgPT0gbnVsbCB8fCBjb3VudHJ5Lmxlbmd0aCgpID09IDApIGNvdW50cnkgPSBjb3VudHJ5X2NvZGU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFRoaXMgaXMgbm90IGJlaGF2aW9yIHNwZWNpZmllZCBpbiB0cjM1LCBidXQgYmVoYXZpb3IgYWRkZWQgYnkgTWFyay4gIAorICAgICAgICAvLyBUUjM1IHNheXMgdG8gZGlzcGxheSB0aGUgY291bnRyeSBfb25seV8gaWYgdGhlcmUgaXMgYSBsb2NhbGl6YXRpb24uCisgICAgICAgIGlmIChpbmZvWzJdICE9IG51bGwpIHsgLy8gc2luZ2xlIGNvdW50cnkKKyAgICAgICAgICAgIHJldHVybiBkaXNwbGF5UmVnaW9uKGNvdW50cnksIGxvY2FsZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY2l0eSA9PSBudWxsKSB7CisgICAgICAgICAgICBjaXR5ID0gdHppZC5zdWJzdHJpbmcodHppZC5sYXN0SW5kZXhPZignLycpKzEpLnJlcGxhY2UoJ18nLCcgJyk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgZmxiUGF0ID0gZ2V0VFpMb2NhbGl6YXRpb25JbmZvKGxvY2FsZSwgRkFMTEJBQ0tfRk9STUFUKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KGZsYlBhdCk7CisKKyAgICAgICAgcmV0dXJuIG1mLmZvcm1hdChuZXcgT2JqZWN0W10geyBjaXR5LCBjb3VudHJ5IH0pOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpc3BsYXlSZWdpb24oU3RyaW5nIGNpdHlPckNvdW50cnksIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIFN0cmluZyByZWdQYXQgPSBnZXRUWkxvY2FsaXphdGlvbkluZm8obG9jYWxlLCBSRUdJT05fRk9STUFUKTsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCBtZiA9IG5ldyBNZXNzYWdlRm9ybWF0KHJlZ1BhdCk7CisgICAgICAgIHJldHVybiBtZi5mb3JtYXQobmV3IE9iamVjdFtdIHsgY2l0eU9yQ291bnRyeSB9KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBkaXNwbGF5R01UKGxvbmcgdmFsdWUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIFN0cmluZyBtc2dwYXQgPSBnZXRUWkxvY2FsaXphdGlvbkluZm8obG9jYWxlLCBHTVQpOworICAgICAgICBTdHJpbmcgZHRlcGF0ID0gZ2V0VFpMb2NhbGl6YXRpb25JbmZvKGxvY2FsZSwgSE9VUik7CisgICAgICAgIAorICAgICAgICBpbnQgbiA9IGR0ZXBhdC5pbmRleE9mKCc7Jyk7CisgICAgICAgIGlmIChuICE9IC0xKSB7CisgICAgICAgICAgICBpZiAodmFsdWUgPCAwKSB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSAtIHZhbHVlOworICAgICAgICAgICAgICAgIGR0ZXBhdCA9IGR0ZXBhdC5zdWJzdHJpbmcobisxKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZHRlcGF0ID0gZHRlcGF0LnN1YnN0cmluZygwLCBuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGxvbmcgbXBoID0gMzYwMDAwMDsKKyAgICAgICAgZmluYWwgbG9uZyBtcG0gPSA2MDAwMDsKKworICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHNkZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KGR0ZXBhdCwgbG9jYWxlKTsKKyAgICAgICAgc2RmLnNldFRpbWVab25lKFRpbWVab25lLmdldFRpbWVab25lKCJHTVQiKSk7CisgICAgICAgIFN0cmluZyByZXMgPSBzZGYuZm9ybWF0KG5ldyBMb25nKHZhbHVlKSk7CisgICAgICAgIE1lc3NhZ2VGb3JtYXQgbWYgPSBuZXcgTWVzc2FnZUZvcm1hdChtc2dwYXQpOworICAgICAgICByZXMgPSBtZi5mb3JtYXQobmV3IE9iamVjdFtdIHsgcmVzIH0pOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nCisgICAgICAgIEhPVVIgPSAiaG91ckZvcm1hdCIsCisgICAgICAgIEdNVCA9ICJnbXRGb3JtYXQiLAorICAgICAgICBSRUdJT05fRk9STUFUID0gInJlZ2lvbkZvcm1hdCIsCisgICAgICAgIEZBTExCQUNLX0ZPUk1BVCA9ICJmYWxsYmFja0Zvcm1hdCIsCisgICAgICAgIFpPTkVfU1RSSU5HUyA9ICJ6b25lU3RyaW5ncyIsCisgICAgICAgIEZPUldBUkRfU0xBU0ggPSAiLyI7CisgICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgaW5kZXgnZCB0eiBkYXR1bSBmb3IgdGhpcyBsb2NhbGUuICBJbmRleCBtdXN0IGJlIG9uZSBvZiB0aGUgCisgICAgICogdmFsdWVzIFBSRUZJWCwgSE9VUiwgR01ULCBSRUdJT05fRk9STUFULCBGQUxMQkFDS19GT1JNQVQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRUWkxvY2FsaXphdGlvbkluZm8oVUxvY2FsZSBsb2NhbGUsIFN0cmluZyBmb3JtYXQpIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKSBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShsb2NhbGUpOworICAgICAgICByZXR1cm4gYnVuZGxlLmdldFN0cmluZ1dpdGhGYWxsYmFjayhaT05FX1NUUklOR1MrRk9SV0FSRF9TTEFTSCtmb3JtYXQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFNldCBnZXRWYWxpZElEcygpIHsKKyAgICAgICAgLy8gQ29uc3RydWN0IGxpc3Qgb2YgdGltZSB6b25lcyB0aGF0IGFyZSB2YWxpZCwgYWNjb3JkaW5nCisgICAgICAgIC8vIHRvIHRoZSBjdXJyZW50IHVuZGVybHlpbmcgY29yZSBKREsuICBXZSBoYXZlIHRvIGRvIHRoaXMKKyAgICAgICAgLy8gYXQgcnVudGltZSBzaW5jZSB3ZSBkb24ndCBrbm93IHdoYXQgd2UncmUgcnVubmluZyBvbi4KKyAgICAgICAgU2V0IHZhbGlkID0gbmV3IFRyZWVTZXQoKTsKKyAgICAgICAgdmFsaWQuYWRkQWxsKEFycmF5cy5hc0xpc3QoamF2YS51dGlsLlRpbWVab25lLmdldEF2YWlsYWJsZUlEcygpKSk7CisgICAgICAgIHJldHVybiB2YWxpZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbXB0eSBzdHJpbmcgYXJyYXkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gRU1QVFkgPSBuZXcgU3RyaW5nWzBdOworCisKKworICAgIC8qKgorICAgICAqIEdpdmVuIGFuIElELCBvcGVuIHRoZSBhcHByb3ByaWF0ZSByZXNvdXJjZSBmb3IgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBEZXJlZmVyZW5jZSBhbGlhc2VzIGlmIG5lY2Vzc2FyeS4KKyAgICAgKiBAcGFyYW0gaWQgem9uZSBpZAorICAgICAqIEBwYXJhbSByZXMgcmVzb3VyY2UsIHdoaWNoIG11c3QgYmUgcmVhZHkgZm9yIHVzZSAoaW5pdGlhbGl6ZWQgYnV0IG5vdCBvcGVuKQorICAgICAqIEByZXR1cm4gdG9wLWxldmVsIHJlc291cmNlIGJ1bmRsZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSUNVUmVzb3VyY2VCdW5kbGUgb3Blbk9sc29uUmVzb3VyY2UoU3RyaW5nIGlkKQorICAgIHsKKyAgICAgICAgaWYoIWdldE9sc29uTWV0YSgpKXsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRvcCA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCAiem9uZWluZm8iLCBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfREFUQV9DTEFTU19MT0FERVIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXMgPSBnZXRab25lQnlOYW1lKHRvcCwgaWQpOworICAgICAgICAvLyBEZXJlZmVyZW5jZSBpZiB0aGlzIGlzIGFuIGFsaWFzLiAgRG9jcyBzYXkgcmVzdWx0IHNob3VsZCBiZSAxCisgICAgICAgIC8vIGJ1dCBpdCBpcyAwIGluIDIuOCAoPykuCisgICAgICAgICBpZiAocmVzLmdldFNpemUoKSA8PSAxICYmIGdldE9sc29uTWV0YSh0b3ApKSB7CisgICAgICAgICAgICBpbnQgZGVyZWYgPSByZXMuZ2V0SW50KCkgKyAwOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYXJlcyA9IHRvcC5nZXQoa1pPTkVTKTsgLy8gZGVyZWZlcmVuY2UgWm9uZXMgc2VjdGlvbgorICAgICAgICAgICAgcmVzID0gYXJlcy5nZXQoZGVyZWYpOworICAgICAgICB9IAorICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICAvKioKKyAgICAgKiBGZXRjaCBhIHNwZWNpZmljIHpvbmUgYnkgbmFtZS4gIFJlcGxhY2VzIHRoZSBnZXRCeUtleSBjYWxsLiAKKyAgICAgKiBAcGFyYW0gdG9wIFRvcCB0aW1lem9uZSByZXNvdXJjZQorICAgICAqIEBwYXJhbSBpZCBUaW1lIHpvbmUgSUQKKyAgICAgKiBAcmV0dXJuIHRoZSB6b25lJ3MgYnVuZGxlIGlmIGZvdW5kLCBvciB1bmRlZmluZWQgaWYgZXJyb3IuICBSZXVzZXMgb2xkYnVuZGxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIElDVVJlc291cmNlQnVuZGxlIGdldFpvbmVCeU5hbWUoSUNVUmVzb3VyY2VCdW5kbGUgdG9wLCBTdHJpbmcgaWQpIHsKKyAgICAgICAgLy8gbG9hZCB0aGUgUnVsZXMgb2JqZWN0CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHRtcCA9IHRvcC5nZXQoa05BTUVTKTsKKyAgICAgICAgCisgICAgICAgIC8vIHNlYXJjaCBmb3IgdGhlIHN0cmluZworICAgICAgICBpbnQgaWR4ID0gZmluZEluU3RyaW5nQXJyYXkodG1wLCBpZCk7CisgICAgICAgIAorICAgICAgICBpZigoaWR4ID09IC0xKSkgeworICAgICAgICAgICAgLy8gbm90IGZvdW5kIAorICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihrTkFNRVMsIHRtcC5yZXNQYXRoLCBpZCk7CisgICAgICAgICAgICAvL3VyZXNfY2xvc2Uob2xkYnVuZGxlKTsKKyAgICAgICAgICAgIC8vb2xkYnVuZGxlID0gTlVMTDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRtcCA9IHRvcC5nZXQoa1pPTkVTKTsgLy8gZ2V0IFpvbmVzIG9iamVjdCBmcm9tIHRvcAorICAgICAgICAgICAgdG1wID0gdG1wLmdldChpZHgpOyAvLyBnZXQgbnRoIFpvbmUgb2JqZWN0CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRtcDsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRJblN0cmluZ0FycmF5KElDVVJlc291cmNlQnVuZGxlIGFycmF5LCBTdHJpbmcgaWQpeworICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICBpbnQgbGltaXQgPSBhcnJheS5nZXRTaXplKCk7CisgICAgICAgIGludCBtaWQ7CisgICAgICAgIFN0cmluZyB1ID0gbnVsbDsKKyAgICAgICAgaW50IGxhc3RNaWQgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgaWYoKGxpbWl0IDwgMSkpIHsgCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgbWlkID0gKGludCkoKHN0YXJ0ICsgbGltaXQpIC8gMik7CisgICAgICAgICAgICBpZiAobGFzdE1pZCA9PSBtaWQpIHsgICAvKiBIYXZlIHdlIG1vdmVkPyAqLworICAgICAgICAgICAgICAgIGJyZWFrOyAgLyogV2UgaGF2ZW4ndCBtb3ZlZCwgYW5kIGl0IHdhc24ndCBmb3VuZC4gKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxhc3RNaWQgPSBtaWQ7CisgICAgICAgICAgICB1ID0gYXJyYXkuZ2V0U3RyaW5nKG1pZCk7CisgICAgICAgICAgICBpZih1PT1udWxsKXsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCByID0gaWQuY29tcGFyZVRvKHUpOworICAgICAgICAgICAgaWYocj09MCkgeworICAgICAgICAgICAgICAgIHJldHVybiBtaWQ7CisgICAgICAgICAgICB9IGVsc2UgaWYocjwwKSB7CisgICAgICAgICAgICAgICAgbGltaXQgPSBtaWQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0YXJ0ID0gbWlkOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGtaT05FSU5GTyA9ICJ6b25laW5mbyI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGtSRUdJT05TICA9ICJSZWdpb25zIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga1pPTkVTICAgID0gIlpvbmVzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga1JVTEVTICAgID0gIlJ1bGVzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga05BTUVTICAgID0gIk5hbWVzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga0RFRkFVTFQgID0gIkRlZmF1bHQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBrR01UX0lEICAgPSAiR01UIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcga0NVU1RPTV9JRD0gIkN1c3RvbSI7ICAgIAorICAgIC8vcHJpdmF0ZSBzdGF0aWMgSUNVUmVzb3VyY2VCdW5kbGUgem9uZUJ1bmRsZSA9IG51bGw7CisgICAgcHJpdmF0ZSBzdGF0aWMgamF2YS51dGlsLkVudW1lcmF0aW9uIGlkRW51bSAgPSBudWxsOworICAgIHByaXZhdGUgc3RhdGljIFNvZnRDYWNoZSB6b25lQ2FjaGUgPSBuZXcgU29mdENhY2hlKCk7CisgICAgLyoqCisgICAgICogVGhlIE9sc29uIGRhdGEgaXMgc3RvcmVkIHRoZSAiem9uZWluZm8iIHJlc291cmNlIGJ1bmRsZS4KKyAgICAgKiBTdWItcmVzb3VyY2VzIGFyZSBvcmdhbml6ZWQgaW50byB0aHJlZSByYW5nZXMgb2YgZGF0YTogWm9uZXMsIGZpbmFsCisgICAgICogcnVsZXMsIGFuZCBjb3VudHJ5IHRhYmxlcy4gIFRoZXJlIGlzIGFsc28gYSBtZXRhLWRhdGEgcmVzb3VyY2UKKyAgICAgKiB3aGljaCBoYXMgMyBpbnRlZ2VyczogVGhlIG51bWJlciBvZiB6b25lcywgcnVsZXMsIGFuZCBjb3VudHJpZXMsCisgICAgICogcmVzcGVjdGl2ZWx5LiAgVGhlIGNvdW50cnkgY291bnQgaW5jbHVkZXMgdGhlIG5vbi1jb3VudHJ5ICdEZWZhdWx0Jy4KKyAgICAgKi8KKyAgICBzdGF0aWMgaW50IE9MU09OX1pPTkVfU1RBUlQgPSAtMTsgLy8gc3RhcnRpbmcgaW5kZXggb2Ygem9uZXMKKyAgICBzdGF0aWMgaW50IE9MU09OX1pPTkVfQ09VTlQgPSAwOyAgLy8gY291bnQgb2Ygem9uZXMKKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgcG9pbnRlciB0byBhbiBvcGVuICJ6b25laW5mbyIgcmVzb3VyY2UsIGxvYWQgdXAgdGhlIE9sc29uCisgICAgICogbWV0YS1kYXRhLiBSZXR1cm4gdHJ1ZSBpZiBzdWNjZXNzZnVsLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZ2V0T2xzb25NZXRhKElDVVJlc291cmNlQnVuZGxlIHRvcCkgeworICAgICAgICBpZiAoT0xTT05fWk9ORV9TVEFSVCA8IDApIHsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJlcyA9IHRvcC5nZXQoa1pPTkVTKTsKKyAgICAgICAgICAgIE9MU09OX1pPTkVfQ09VTlQgPSByZXMuZ2V0U2l6ZSgpOworICAgICAgICAgICAgT0xTT05fWk9ORV9TVEFSVCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChPTFNPTl9aT05FX1NUQVJUID49IDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIExvYWQgdXAgdGhlIE9sc29uIG1ldGEtZGF0YS4gUmV0dXJuIHRydWUgaWYgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGdldE9sc29uTWV0YSgpIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdG9wID0gKElDVVJlc291cmNlQnVuZGxlKUlDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsICJ6b25laW5mbyIsIElDVVJlc291cmNlQnVuZGxlLklDVV9EQVRBX0NMQVNTX0xPQURFUik7CisgICAgICAgIGlmKE9MU09OX1pPTkVfU1RBUlQgPCAwKSB7CisgICAgICAgICAgICBnZXRPbHNvbk1ldGEodG9wKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKE9MU09OX1pPTkVfU1RBUlQgPj0gMCk7CisgICAgfQorICAgIC8qKgorICAgICAqIExvb2t1cCB0aGUgZ2l2ZW4gbmFtZSBpbiBvdXIgc3lzdGVtIHpvbmUgdGFibGUuICBJZiBmb3VuZCwKKyAgICAgKiBpbnN0YW50aWF0ZSBhIG5ldyB6b25lIG9mIHRoYXQgbmFtZSBhbmQgcmV0dXJuIGl0LiAgSWYgbm90CisgICAgICogZm91bmQsIHJldHVybiAwLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVGltZVpvbmUgZ2V0U3lzdGVtVGltZVpvbmUoU3RyaW5nIGlkKSB7CisgICAgICAgIFRpbWVab25lIHogPSAoVGltZVpvbmUpem9uZUNhY2hlLmdldChpZCk7CisgICAgICAgIGlmICh6ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0b3AgPSAoSUNVUmVzb3VyY2VCdW5kbGUpSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgInpvbmVpbmZvIiwgSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0RBVEFfQ0xBU1NfTE9BREVSKTsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXMgPSBvcGVuT2xzb25SZXNvdXJjZShpZCk7CisgICAgICAgICAgICAgICAgeiA9IG5ldyBPbHNvblRpbWVab25lKHRvcCwgcmVzKTsKKyAgICAgICAgICAgICAgICB6LnNldElEKGlkKTsKKyAgICAgICAgICAgICAgICB6b25lQ2FjaGUucHV0KGlkLCB6KTsKKyAgICAgICAgICAgIH1jYXRjaChFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAoVGltZVpvbmUpei5jbG9uZSgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFRpbWVab25lIGdldEdNVCgpeworICAgICAgICBUaW1lWm9uZSB6ID0gbmV3IFNpbXBsZVRpbWVab25lKDAsIGtHTVRfSUQpOworICAgICAgICB6LnNldElEKGtHTVRfSUQpOworICAgICAgICByZXR1cm4gejsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGN1c3RvbSB0aW1lIHpvbmUgaWRlbnRpZmllciBhbmQgcmV0dXJuIGEgY29ycmVzcG9uZGluZyB6b25lLgorICAgICAqIEBwYXJhbSBpZCBhIHN0cmluZyBvZiB0aGUgZm9ybSBHTVRbKy1daGg6bW0sIEdNVFsrLV1oaG1tLCBvcgorICAgICAqIEdNVFsrLV1oaC4KKyAgICAgKiBAcmV0dXJuIGEgbmV3bHkgY3JlYXRlZCBTaW1wbGVUaW1lWm9uZSB3aXRoIHRoZSBnaXZlbiBvZmZzZXQgYW5kCisgICAgICogbm8gRGF5bGlnaHQgU2F2aW5ncyBUaW1lLCBvciBudWxsIGlmIHRoZSBpZCBjYW5ub3QgYmUgcGFyc2VkLgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBUaW1lWm9uZSBnZXRDdXN0b21UaW1lWm9uZShTdHJpbmcgaWQpeworCisgICAgICAgIE51bWJlckZvcm1hdCBudW1iZXJGb3JtYXQgPSBudWxsOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGlkVXBwZXJjYXNlID0gaWQudG9VcHBlckNhc2UoKTsKKworICAgICAgICBpZiAoaWQubGVuZ3RoKCkgPiBrR01UX0lELmxlbmd0aCgpICYmCisgICAgICAgICAgICBpZFVwcGVyY2FzZS5zdGFydHNXaXRoKGtHTVRfSUQpKQorICAgICAgICB7CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKGtHTVRfSUQubGVuZ3RoKCkpOworICAgICAgICAgICAgYm9vbGVhbiBuZWdhdGl2ZSA9IGZhbHNlOworICAgICAgICAgICAgbG9uZyBvZmZzZXQ7CisKKyAgICAgICAgICAgIGlmIChpZC5jaGFyQXQocG9zLmdldEluZGV4KCkpID09IDB4MDAyRCAvKictJyovKQorICAgICAgICAgICAgICAgIG5lZ2F0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGlkLmNoYXJBdChwb3MuZ2V0SW5kZXgoKSkgIT0gMHgwMDJCIC8qJysnKi8pCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICBwb3Muc2V0SW5kZXgocG9zLmdldEluZGV4KCkgKyAxKTsKKworICAgICAgICAgICAgbnVtYmVyRm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCk7CisKKyAgICAgICAgICAgIG51bWJlckZvcm1hdC5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOworCisgICAgICAgIAorICAgICAgICAgICAgLy8gTG9vayBmb3IgZWl0aGVyIGhoOm1tLCBoaG1tLCBvciBoaAorICAgICAgICAgICAgaW50IHN0YXJ0ID0gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE51bWJlciBuID0gbnVtYmVyRm9ybWF0LnBhcnNlKGlkLCBwb3MpOworICAgICAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpID09IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvZmZzZXQgPSBuLmxvbmdWYWx1ZSgpOworCisgICAgICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgPCBpZC5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgIGlkLmNoYXJBdChwb3MuZ2V0SW5kZXgoKSkgPT0gMHgwMDNBIC8qJzonKi8pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gaGg6bW0KKyAgICAgICAgICAgICAgICBvZmZzZXQgKj0gNjA7CisgICAgICAgICAgICAgICAgcG9zLnNldEluZGV4KHBvcy5nZXRJbmRleCgpICsgMSk7CisgICAgICAgICAgICAgICAgaW50IG9sZFBvcyA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIG4gPSBudW1iZXJGb3JtYXQucGFyc2UoaWQsIHBvcyk7CisgICAgICAgICAgICAgICAgaWYgKHBvcy5nZXRJbmRleCgpID09IG9sZFBvcykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IG4ubG9uZ1ZhbHVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIGhobW0gb3IgaGgKKworICAgICAgICAgICAgICAgIC8vIEJlIHN0cmljdCBhYm91dCBpbnRlcnByZXRpbmcgc29tZXRoaW5nIGFzIGhoOyBpdCBtdXN0IGJlCisgICAgICAgICAgICAgICAgLy8gYW4gb2Zmc2V0IDwgMzAsIGFuZCBpdCBtdXN0IGJlIG9uZSBvciB0d28gZGlnaXRzLiBUaHVzCisgICAgICAgICAgICAgICAgLy8gMDAxMCBpcyBpbnRlcnByZXRlZCBhcyAwMDoxMCwgYnV0IDEwIGlzIGludGVycHJldGVkIGFzCisgICAgICAgICAgICAgICAgLy8gMTA6MDAuCisgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA8IDMwICYmIChwb3MuZ2V0SW5kZXgoKSAtIHN0YXJ0KSA8PSAyKQorICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKj0gNjA7IC8vIGhoLCBmcm9tIDAwIHRvIDI5OyAzMCBpcyAwMDozMAorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0ICUgMTAwICsgb2Zmc2V0IC8gMTAwICogNjA7IC8vIGhobW0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYobmVnYXRpdmUpCisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gLW9mZnNldDsKKworICAgICAgICAgICAgVGltZVpvbmUgeiA9IG5ldyBTaW1wbGVUaW1lWm9uZSgoaW50KShvZmZzZXQgKiA2MDAwMCksIGtDVVNUT01fSUQpOworICAgICAgICAgICAgei5zZXRJRChrQ1VTVE9NX0lEKTsKKyAgICAgICAgICAgIHJldHVybiB6OworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvQnJlYWtJdGVyYXRvclJ1bGVzLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0JyZWFrSXRlcmF0b3JSdWxlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRhMjIzNGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0JyZWFrSXRlcmF0b3JSdWxlcy5qYXZhCkBAIC0wLDAgKzEsMzg1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCisvKioKKyAqIERlZmF1bHQgYnJlYWstaXRlcmF0b3IgcnVsZXMuICBUaGVzZSBydWxlcyBhcmUgbW9yZSBvciBsZXNzIGdlbmVyYWwgZm9yCisgKiBhbGwgbG9jYWxlcywgYWx0aG91Z2ggdGhlcmUgYXJlIHByb2JhYmx5IGEgZmV3IHdlJ3JlIG1pc3NpbmcuICBUaGUKKyAqIGJlaGF2aW9yIGN1cnJlbnRseSBtaW1pY3MgdGhlIGJlaGF2aW9yIG9mIEJyZWFrSXRlcmF0b3IgaW4gSkRLIDEuMi4KKyAqIFRoZXJlIGFyZSBrbm93biBkZWZpY2llbmNpZXMgaW4gdGhpcyBiZWhhdmlvciwgaW5jbHVkaW5nIHRoZSBmYWN0IHRoYXQKKyAqIHRoZSBsb2dpYyBmb3IgaGFuZGxpbmcgQ0pLIGNoYXJhY3RlcnMgd29ya3MgZm9yIEphcGFuZXNlIGJ1dCBub3QgZm9yCisgKiBDaGluZXNlLCBhbmQgdGhhdCB3ZSBkb24ndCBjdXJyZW50bHkgaGF2ZSBhbiBhcHByb3ByaWF0ZSBsb2NhbGUgZm9yCisgKiBUaGFpLiAgVGhlIHJlc291cmNlcyB3aWxsIGV2ZW50dWFsbHkgYmUgdXBkYXRlZCB0byBmaXggdGhlc2UgcHJvYmxlbXMuCisgKi8KKworIC8qIE1vZGlmaWVkIGZvciBIaW5kaSAzLzEvOTkuICovCisKK3B1YmxpYyBjbGFzcyBCcmVha0l0ZXJhdG9yUnVsZXMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworICAgICAgICByZXR1cm4gY29udGVudHM7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIE9iamVjdFtdW10gY29udGVudHMgPSB7CisgICAgICAgIC8vIEJyZWFrSXRlcmF0b3JDbGFzc2VzIGxpc3RzIHRoZSBjbGFzcyBuYW1lcyB0byBpbnN0YW50aWF0ZSBmb3IgZWFjaAorICAgICAgICAvLyBidWlsdC1pbiB0eXBlIG9mIEJyZWFrSXRlcmF0b3IKKyAgICAgICAgeyAiQnJlYWtJdGVyYXRvckNsYXNzZXMiLAorICAgICAgICAgICAgbmV3IFN0cmluZ1tdIHsgIlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfTmV3IiwgICAgIC8vIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfTmV3IiwgICAgIC8vIHdvcmQtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX05ldyIsICAgICAvLyBsaW5lLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9OZXciLCAgICAgLy8gc2VudGVuY2UtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX05ldyJ9ICAgICAvLyBUaXRsZS1DYXNlIGJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgIH0sCisKKyAgICAgICAgLy8gcnVsZXMgZGVzY3JpYmluZyBob3cgdG8gYnJlYWsgYmV0d2VlbiBsb2dpY2FsIGNoYXJhY3RlcnMKKyAgICAgICAgeyAiQ2hhcmFjdGVyQnJlYWtSdWxlcyIsCisgICAgICAgICAgICAvLyBpZ25vcmUgbm9uLXNwYWNpbmcgbWFya3MgYW5kIGVuY2xvc2luZyBtYXJrcyAoc2luY2Ugd2UgbmV2ZXIKKyAgICAgICAgICAgIC8vIHB1dCBhIGJyZWFrIGJlZm9yZSBpZ25vcmUgY2hhcmFjdGVycywgdGhpcyBrZWVwcyBjb21iaW5pbmcKKyAgICAgICAgICAgIC8vIGFjY2VudHMgd2l0aCB0aGUgYmFzZSBjaGFyYWN0ZXJzIHRoZXkgbW9kaWZ5KQorICAgICAgICAgICAgLy8gRklYTUU6IHRoZSB2aXJhbWEgdGhpbmcgaXMgcHJvYmFibHkgYSBoYWNrLi4uCisgICAgICAgICAgICAgICIkZGV2YVZpcmFtYT1bXHUwOTRkXTsiCisgICAgICAgICAgICArICIkX2lnbm9yZV89W1tbOk1uOl0tJGRldmFWaXJhbWFdWzpNZTpdXTsiCisKKyAgICAgICAgICAgIC8vIG90aGVyIGNhdGVnb3J5IGRlZmluaXRpb25zCisgICAgICAgICAgICArICIkY2hvc2Vvbmc9W1x1MTEwMC1cdTExNWZdOyIKKyAgICAgICAgICAgICsgIiRqdW5nc2Vvbmc9W1x1MTE2MC1cdTExYTddOyIKKyAgICAgICAgICAgICsgIiRqb25nc2Vvbmc9W1x1MTFhOC1cdTExZmZdOyIKKyAgICAgICAgICAgICsgIiRzdXJyX2hpPVtcdWQ4MDAtXHVkYmZmXTsiCisgICAgICAgICAgICArICIkc3Vycl9sbz1bXHVkYzAwLVx1ZGZmZl07IgorCisgICAgICAgICAgICAvLyBicmVhayBhZnRlciBldmVyeSBjaGFyYWN0ZXIsIGV4Y2VwdCBhcyBmb2xsb3dzOgorICAgICAgICAgICAgKyAiLjsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgQ1JMRiBzZXF1ZW5jZXMgdG9nZXRoZXIKKyAgICAgICAgICAgICsgIlxyXG47IgorCisgICAgICAgICAgICAvLyBrZWVwIHN1cnJvZ2F0ZSBwYWlycyB0b2dldGhlcgorICAgICAgICAgICAgKyAiJHN1cnJfaGkkc3Vycl9sbzsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgSGFuZ3VsIHN5bGxhYmxlcyBzcGVsbGVkIG91dCB1c2luZyBjb25qb2luaW5nIGphbW8gdG9nZXRoZXIKKyAgICAgICAgICAgICsgIiRjaG9zZW9uZyokanVuZ3Nlb25nKiRqb25nc2VvbmcqOyIKKworICAgICAgICAgICAgLy8gcmV2aXNlZCBEZXZhbmFnYXJpIHN1cHBvcnQgLSBmdWxsIHN5bGxhYmxlcworICAgICAgICAgICAgLy8gc2ltcGxpZmllZCBieSBhbGxvd2luZyBzb21lIG5vbnNlbnNlIHN5bGxhYmxlcworICAgICAgICAgICAgLy8gRklYTUU6IG51a3RhLCBub24tc3BhY2luZyBtYXRyYXMsIGFuZCB0aGUgbW9kaWZpZXJzCisgICAgICAgICAgICAvLyBhcmUgYWxsIGlnbm9yYWJsZSwgc28gdGhleSBkb24ndCBuZWVkIHRvIGJlIG1lbnRpb25lZAorICAgICAgICAgICAgLy8gaGVyZS4uLiAoYnV0IHRoZSBydWxlcyByZWFkIGJldHRlciBpZiB0aGV5IGFyZS4uLikKKyAgICAgICAgICAgICsgIiRkZXZhTnVrdGE9W1x1MDkzY107IgorICAgICAgICAgICAgKyAiJGRldmFWb3dlbD1bXHUwOTA1LVx1MDkxNF07IgorICAgICAgICAgICAgKyAiJGRldmFNYXRyYT1bXHUwOTNlLVx1MDk0Y1x1MDk2Mlx1MDk2M107IgorICAgICAgICAgICAgKyAiJGRldmFDb25zb25hbnQ9W1x1MDkxNS1cdTA5MzlcdTA5NTgtXHUwOTVmXTsiCisgICAgICAgICAgICArICIkZGV2YU1vZGlmaWVyPVtcdTA5MDEtXHUwOTAzXHUwOTUxLVx1MDk1NF07IgorICAgICAgICAgICAgKyAiJHp3bmo9W1x1MjAwY107IgorICAgICAgICAgICAgKyAiJHp3aj1bXHUyMDBkXTsiCisKKyAgICAgICAgICAgIC8vIGNvbnNvbmFudCBmb2xsb3dlZCBvcHRpb25hbGx5IGJ5IGEgbnVrdGEKKyAgICAgICAgICAgICsgIiRkZXZhQ049KCRkZXZhQ29uc29uYW50JGRldmFOdWt0YT8pOyIKKworICAgICAgICAgICAgLy8gYSB2aXJhbWEgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgendqIG9yIHp3bmoKKyAgICAgICAgICAgICsgIiRkZXZhSm9pbj0oJGRldmFWaXJhbWFbJHp3aiR6d25qXT8pOyIKKworICAgICAgICAgICAgLy8gYSBzeWxsYWJsZSB3aXRoIGF0IGxlYXN0IG9uZSBjb25zb25hbnQKKyAgICAgICAgICAgICsgIigkZGV2YUNOJGRldmFKb2luKSokZGV2YUNOKCRkZXZhSm9pbnwkZGV2YU1hdHJhPyRkZXZhTW9kaWZpZXIqKTsiCisKKyAgICAgICAgICAgIC8vIGEgc3lsbGFibGUgd2l0aG91dCBjb25zb25hbnRzCisgICAgICAgICAgICArICIkZGV2YVZvd2VsJGRldmFNb2RpZmllcio7IgorICAgICAgICB9LAorCisgICAgICAgIC8vIGRlZmF1bHQgcnVsZXMgZm9yIGZpbmRpbmcgd29yZCBib3VuZGFyaWVzCisgICAgICAgIHsgIldvcmRCcmVha1J1bGVzIiwKKworICAgICAgICAgICAgLy8gU3Vycm9nYXRlcy4gIFVudGlsIGJldHRlciBzdXBwb3J0IGlzIGF2YWlsYWJsZSwgaWdub3JlIGxvdyBzdXJyb2dhdGVzCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgYW5kIGNsYXNzaWZ5IGhpZ2ggc3Vycm9nYXRlcyBhY2NvcmRpbmcgdG8gdGhlIGNoYXJhY3RlcnMgd2l0aGluIHRoZSBibG9jay4KKyAgICAgICAgICAgICAgIiRzdXJyX2xvPVtcdWRjMDAtXHVkZmZmXTsiCisgICAgICAgICAgICArICIkc3Vycl9oaV9sZXQ9W1x1ZDgwMFx1ZDgwMVx1ZDgzNFx1ZDgzNV07IiAgIC8vIEhpIFN1cnJvZ2F0ZXMgZm9yIE9sZCBJdGFsaWMsIEdvdGhpYywgRGVzZXJldCwgTXVzaWMsIE1hdGgKKyAgICAgICAgICAgICsgIiRzdXJyX2hpX2lkZW89W1x1ZDg0MC1cdWQ4ODBdOyIgICAgICAgICAgICAgLy8gSGkgU3Vycm9nYXRlcyBmb3IgQ0pLCisgICAgICAgICAgICArICIkc3Vycl9oaV90YWc9W1x1ZGI0MF07IiAgICAgICAgICAgICAgICAgICAgIC8vIEhpIFN1cnJvZ2F0ZXMgZm9yIFRhZ3MKKyAgICAgICAgICAgICsgIiRzdXJyX2hpX3B1YT1bXHVkYjgwLVx1ZGJmZl07IiAgICAgICAgICAgICAgLy8gSGkgU3Vycm9nYXRlcyBmb3IgUHJpdmF0ZSBVc2UuCisKKyAgICAgICAgICAgIC8vIFByaXZhdGUgVXNlIEFyZWEuICBUcmVhdCBsaWtlIGlkZW9ncmFwaHMuCisgICAgICAgICAgICArICIkcHVhPVtcdWUwMDAtXHVmOGZmJHN1cnJfaGlfcHVhXTsiCisKKyAgICAgICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMsCisgICAgICAgICAgICAvLyBhbGwgb2Ygd2hpY2ggc2hvdWxkIG5vdCBpbmZsdWVuY2UgdGhlIGFsZ29yaXRobQorICAgICAgICAgICAgKyAiJF9pZ25vcmVfPVtbOk1uOl1bOk1lOl1bOkNmOl0kc3Vycl9sbyRzdXJyX2hpX3RhZ107IgorCisgICAgICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9yLCBrYW5qaSwga2F0YWthbmEsIGhpcmFnYW5hLCBDSksgZGlhY3JpdGljYWxzLAorICAgICAgICAgICAgLy8gb3RoZXIgbGV0dGVycywgYW5kIGRpZ2l0cworICAgICAgICAgICAgKyAiJGRhbmRhPVtcdTA5NjRcdTA5NjVdOyIKKyAgICAgICAgICAgICsgIiRrYW5qaT1bXHUzMDA1XHUzNDAwLVx1NGRiNVx1NGUwMC1cdTlmYTVcdWY5MDAtXHVmYTZhJHN1cnJfaGlfaWRlbyRwdWFdOyIKKyAgICAgICAgICAgICsgIiRrYXRhPVtcdTMwOTktXHUzMDljXHUzMGExLVx1MzBmZV07IgorICAgICAgICAgICAgKyAiJGhpcmE9W1x1MzA0MS1cdTMwOWVcdTMwZmNdOyIKKyAgICAgICAgICAgICsgIiRsZXQ9W1tbOkw6XVs6TWM6XSRzdXJyX2hpX2xldF0tWyRrYW5qaSRrYXRhJGhpcmFdXTsiCisgICAgICAgICAgICArICIkZGd0PVs6TjpdOyIKKworICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQ6IGN1cnJlbnRseQorICAgICAgICAgICAgLy8gZGFzaGVzLCBhcG9zdHJvcGhlcywgcXVvdGF0aW9uIG1hcmtzLCBhbmQgcGVyaW9kcworICAgICAgICAgICAgKyAiJG1pZF93b3JkPVtbOlBkOl1cdTAwYWRcdTIwMjdcXFwiXFxcJ1xcLl07IgorCisgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBpbiB0aGUgbWlkZGxlIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgIC8vIGFwb3N0cm9waGVzLCBxb3V0YXRpb24gbWFya3MsIHBlcmlvZHMsIGNvbW1hcywgYW5kIHRoZSBBcmFiaWMKKyAgICAgICAgICAgIC8vIGRlY2ltYWwgcG9pbnQKKyAgICAgICAgICAgICsgIiRtaWRfbnVtPVtcXFwiXFxcJ1xcLFx1MDY2YlxcLl07IgorCisgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgIC8vIHRoZSBwZXJpb2QsIHRoZSBudW1iZXIgc2lnbiwgYW5kIGFsbCBjdXJyZW5jeSBzeW1ib2xzIGV4Y2VwdCB0aGUgY2VudHMgc2lnbgorICAgICAgICAgICAgKyAiJHByZV9udW09W1tbOlNjOl0tW1x1MDBhMl1dXFwjXFwuXTsiCisKKyAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHRoYXQgY2FuIG9jY3VyIGF0IHRoZSBlbmQgb2YgYSBudW1iZXI6IGN1cnJlbnRseQorICAgICAgICAgICAgLy8gdGhlIHBlcmNlbnQsIHBlci10aG91c2FuZCwgcGVyLXRlbi10aG91c2FuZCwgYW5kIEFyYWJpYyBwZXJjZW50CisgICAgICAgICAgICAvLyBzaWducywgdGhlIGNlbnRzIHNpZ24sIGFuZCB0aGUgYW1wZXJzYW5kCisgICAgICAgICAgICArICIkcG9zdF9udW09W1xcJVxcJlx1MDBhMlx1MDY2YVx1MjAzMFx1MjAzMV07IgorCisgICAgICAgICAgICAvLyBsaW5lIHNlcGFyYXRvcnM6IGN1cnJlbnRseSBMRiwgRkYsIFBTLCBhbmQgTFMKKyAgICAgICAgICAgICsgIiRscz1bXG5cdTAwMGNcdTIwMjhcdTIwMjldOyIKKworICAgICAgICAgICAgLy8gd2hpdGVzcGFjZTogYWxsIHNwYWNlIHNlcGFyYXRvcnMgYW5kIHRoZSB0YWIgY2hhcmFjdGVyCisgICAgICAgICAgICArICIkd3M9W1s6WnM6XVx0XTsiCisKKyAgICAgICAgICAgIC8vIGEgd29yZCBpcyBhIHNlcXVlbmNlIG9mIGxldHRlcnMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAorICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24sIGFzIGxvbmcgYXMgaXQgYmVnaW5zIGFuZCBlbmRzIHdpdGggYSBsZXR0ZXIgYW5kCisgICAgICAgICAgICAvLyBuZXZlciBjb250YWlucyB0d28gcHVuY3R1YXRpb24gbWFya3MgaW4gYSByb3cKKyAgICAgICAgICAgICsgIiR3b3JkPSgkbGV0KygkbWlkX3dvcmQkbGV0KykqJGRhbmRhPyk7IgorCisgICAgICAgICAgICAvLyBhIG51bWJlciBpcyBhIHNlcXVlbmNlIG9mIGRpZ2l0cyB0aGF0IG1heSBjb250YWluIGludGVybmFsCisgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiwgYXMgbG9uZyBhcyBpdCBiZWdpbnMgYW5kIGVuZHMgd2l0aCBhIGRpZ2l0IGFuZAorICAgICAgICAgICAgLy8gbmV2ZXIgY29udGFpbnMgdHdvIHB1bmN0dWF0aW9uIG1hcmtzIGluIGEgcm93LgorICAgICAgICAgICAgKyAiJG51bWJlcj0oJGRndCsoJG1pZF9udW0kZGd0KykqKTsiCisKKyAgICAgICAgICAgIC8vIGJyZWFrIGFmdGVyIGV2ZXJ5IGNoYXJhY3Rlciwgd2l0aCB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbnMKKyAgICAgICAgICAgIC8vICh0aGlzIHdpbGwgY2F1c2UgcHVuY3R1YXRpb24gbWFya3MgdGhhdCBhcmVuJ3QgY29uc2lkZXJlZAorICAgICAgICAgICAgLy8gcGFydCBvZiB3b3JkcyBvciBudW1iZXJzIHRvIGJlIHRyZWF0ZWQgYXMgd29yZHMgdW50byB0aGVtc2VsdmVzKQorICAgICAgICAgICAgKyAiLjsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgYW55IHNlcXVlbmNlIG9mIGNvbnRpZ3VvdXMgd29yZHMgYW5kIG51bWJlcnMKKyAgICAgICAgICAgIC8vIChpbmNsdWRpbmcganVzdCBvbmUgb2YgZWl0aGVyKSwgcGx1cyBhbiBvcHRpb25hbCB0cmFpbGluZworICAgICAgICAgICAgLy8gbnVtYmVyLXN1ZmZpeCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICsgIiR3b3JkPygkbnVtYmVyJHdvcmQpKigkbnVtYmVyJHBvc3RfbnVtPyk/OyIKKworICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBhbmQgc2VxdWVuY2Ugb2YgY29udGlndW91cyB3b3JkcyBhbmQgbnVtYmVycworICAgICAgICAgICAgLy8gdGhhdCBzdGFydHMgd2l0aCBhIG51bWJlci1wcmVmaXggY2hhcmFjdGVyIGFuZCBhIG51bWJlciwKKyAgICAgICAgICAgIC8vIGFuZCBtYXkgZW5kIHdpdGggYSBudW1iZXItc3VmZml4IGNoYXJhY3RlcgorICAgICAgICAgICAgKyAiJHByZV9udW0oJG51bWJlciR3b3JkKSooJG51bWJlciRwb3N0X251bT8pPzsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiB3aGl0ZXNwYWNlIChvcHRpb25hbGx5IHdpdGggYSBzaW5nbGUgdHJhaWxpbmcKKyAgICAgICAgICAgIC8vIGxpbmUgc2VwYXJhdG9yIG9yIENSTEYgc2VxdWVuY2UpCisgICAgICAgICAgICArICIkd3MqXHI/JGxzPzsiCisKKyAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBLYXRha2FuYQorICAgICAgICAgICAgKyAiJGthdGEqOyIKKworICAgICAgICAgICAgLy8ga2VlcCB0b2dldGhlciBydW5zIG9mIEhpcmFnYW5hCisgICAgICAgICAgICArICIkaGlyYSo7IgorCisgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIHJ1bnMgb2YgS2FuamkKKyAgICAgICAgICAgICsgIiRrYW5qaSo7IgorICAgICAgICB9LAorCisgICAgICAgIC8vIGRlZmF1bHQgcnVsZXMgZm9yIGRldGVybWluaW5nIGxlZ2FsIGxpbmUtYnJlYWtpbmcgcG9zaXRpb25zCisgICAgICAgIHsgIkxpbmVCcmVha1J1bGVzIiwKKyAgICAgICAgICAgIC8vIFN1cnJvZ2F0ZXMuICBVbnRpbCBiZXR0ZXIgc3VwcG9ydCBpcyBhdmFpbGFibGUsIGlnbm9yZSBsb3cgc3Vycm9nYXRlcworICAgICAgICAgICAgLy8gICAgICAgICAgICAgIGFuZCBjbGFzc2lmeSBoaWdoIHN1cnJvZ2F0ZXMgYWNjb3JkaW5nIHRvIHRoZSBjaGFyYWN0ZXJzIHdpdGhpbiB0aGUgYmxvY2suCisgICAgICAgICAgICAgICIkc3Vycl9sbz1bXHVkYzAwLVx1ZGZmZl07IgorICAgICAgICAgICAgKyAiJHN1cnJfaGlfbGV0PVtcdWQ4MDBcdWQ4MDFcdWQ4MzRcdWQ4MzVdOyIgICAvLyBIaSBTdXJyb2dhdGVzIGZvciBPbGQgSXRhbGljLCBHb3RoaWMsIERlc2VyZXQsIE11c2ljLCBNYXRoCisgICAgICAgICAgICArICIkc3Vycl9oaV9pZGVvPVtcdWQ4NDAtXHVkODgwXTsiICAgICAgICAgICAgIC8vIEhpIFN1cnJvZ2F0ZXMgZm9yIENKSworICAgICAgICAgICAgKyAiJHN1cnJfaGlfdGFnPVtcdWRiNDBdOyIgICAgICAgICAgICAgICAgICAgICAvLyBIaSBTdXJyb2dhdGVzIGZvciBUYWdzCisgICAgICAgICAgICArICIkc3Vycl9oaV9wdWE9W1x1ZGI4MC1cdWRiZmZdOyIgICAgICAgICAgICAgIC8vIEhpIFN1cnJvZ2F0ZXMgZm9yIFByaXZhdGUgVXNlLgorCisgICAgICAgICAgICAvLyBQcml2YXRlIFVzZSBBcmVhLiAgVHJlYXQgbGlrZSBpZGVvZ3JhcGhzLgorICAgICAgICAgICAgICsgIiRwdWE9W1x1ZTAwMC1cdWY4ZmYkc3Vycl9oaV9wdWFdOyIKKworICAgICAgICAgICAgLy8gaWdub3JlIG5vbi1zcGFjaW5nIG1hcmtzLCBlbmNsb3NpbmcgbWFya3MsIGFuZCBmb3JtYXQgY2hhcmFjdGVycworICAgICAgICAgICAgKyAiJF9pZ25vcmVfPVtbOk1uOl1bOk1lOl1bOkNmOl0kc3Vycl9sbyRzdXJyX2hpX3RhZ107IgorCisgICAgICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9ycworICAgICAgICAgICAgKyAiJGRhbmRhPVtcdTA5NjRcdTA5NjVdOyIKKworICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBjYXVzZSBhIGJyZWFrOiBFVFgsIHRhYiwgTEYsIEZGLCBMUywgYW5kIFBTCisgICAgICAgICAgICArICIkYnJlYWs9W1x1MDAwM1x0XG5cZlx1MjAyOFx1MjAyOV07IgorCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgYWx3YXlzIHByZXZlbnQgYSBicmVhazogdGhlIG5vbi1icmVha2luZyBzcGFjZQorICAgICAgICAgICAgLy8gYW5kIHNpbWlsYXIgY2hhcmFjdGVycworICAgICAgICAgICAgKyAiJG5ic3A9W1x1MDBhMFx1MjAwN1x1MjAxMVx1ZmVmZl07IgorCisgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlOiBzcGFjZSBzZXBhcmF0b3JzIGFuZCBjb250cm9sIGNoYXJhY3RlcnMsIGV4Y2VwdCBmb3IKKyAgICAgICAgICAgIC8vIENSIGFuZCB0aGUgb3RoZXIgY2hhcmFjdGVycyBtZW50aW9uZWQgYWJvdmUKKyAgICAgICAgICAgICsgIiRzcGFjZT1bW1s6WnM6XVs6Q2M6XV0tWyRuYnNwJGJyZWFrXHJdXTsiCisKKyAgICAgICAgICAgIC8vIGRhc2hlczogZGFzaCBwdW5jdHVhdGlvbiBhbmQgdGhlIGRpc2NyZXRpb25hcnkgaHlwaGVuLCBleGNlcHQgZm9yCisgICAgICAgICAgICAvLyBub24tYnJlYWtpbmcgaHlwaGVucworICAgICAgICAgICAgKyAiJGRhc2g9W1tbOlBkOl1cdTAwYWRdLVskbmJzcF1dOyIKKworICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IHN0aWNrIHRvIGEgd29yZCBpZiB0aGV5IHByZWNlZGUgaXQ6IGN1cnJlbmN5IHN5bWJvbHMKKyAgICAgICAgICAgIC8vIChleGNlcHQgdGhlIGNlbnRzIHNpZ24pIGFuZCBzdGFydGluZyBwdW5jdHVhdGlvbgorICAgICAgICAgICAgKyAiJHByZV93b3JkPVtbWzpTYzpdLVtcdTAwYTJdXVs6UHM6XVs6UGk6XVxcXCJcXFwnXTsiCisKKyAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBmb2xsb3cgaXQ6IGVuZGluZyBwdW5jdHVhdGlvbiwKKyAgICAgICAgICAgIC8vIG90aGVyIHB1bmN0dWF0aW9uIHRoYXQgdXN1YWxseSBvY2N1cnMgYXQgdGhlIGVuZCBvZiBhIHNlbnRlbmNlLAorICAgICAgICAgICAgLy8gc21hbGwgS2FuYSBjaGFyYWN0ZXJzLCBzb21lIENKSyBkaWFjcml0aWNzLCBldGMuCisgICAgICAgICAgICArICIkcG9zdF93b3JkPVtbOlBlOl1bOlBmOl1cXCFcXFwiXFxcJ1xcJVxcLlxcLFxcOlxcO1xcP1x1MDBhMlx1MDBiMFx1MDY2YVx1MjAzMC1cdTIwMzQiCisgICAgICAgICAgICAgICAgICAgICsgIlx1MjEwM1x1MjEwNVx1MjEwOVx1MzAwMVx1MzAwMlx1MzAwNVx1MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2MyIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhlXHUzMDk5LVx1MzA5ZVx1MzBhMVx1MzBhM1x1MzBhNVx1MzBhN1x1MzBhOSIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHUzMGMzXHUzMGUzXHUzMGU1XHUzMGU3XHUzMGVlXHUzMGY1XHUzMGY2XHUzMGZjLVx1MzBmZVx1ZmYwMVx1ZmYwYyIKKyAgICAgICAgICAgICAgICAgICAgKyAiXHVmZjBlXHVmZjFmXTsiCisKKyAgICAgICAgICAgIC8vIEthbmppOiBhY3R1YWxseSBpbmNsdWRlcyBib3RoIEthbmppIGFuZCBLYW5hLCBleGNlcHQgZm9yIHNtYWxsIEthbmEgYW5kCisgICAgICAgICAgICAvLyBDSksgZGlhY3JpdGljcworICAgICAgICAgICAgKyAiJGthbmppPVtbJHN1cnJfaGlfaWRlbyRwdWFcdTM0MDAtXHU0ZGI1XHU0ZTAwLVx1OWZhNVx1ZjkwMC1cdWZhNmFcdTMwNDEtXHUzMDk0XHUzMGExLVx1MzBmYV0tWyRwb3N0X3dvcmQkX2lnbm9yZV9dXTsiCisKKyAgICAgICAgICAgIC8vIGRpZ2l0cworICAgICAgICAgICAgKyAiJGRpZ2l0PVtbOk5kOl1bOk5vOl1dOyIKKworICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIG51bWJlcjogcGVyaW9kcyBhbmQgY29tbWFzCisgICAgICAgICAgICArICIkbWlkX251bT1bXFwuXFwsXTsiCisKKyAgICAgICAgICAgIC8vIGV2ZXJ5dGhpbmcgbm90IG1lbnRpb25lZCBhYm92ZSwgcGx1cyB0aGUgcXVvdGUgbWFya3MgKHdoaWNoIGFyZSBib3RoCisgICAgICAgICAgICAvLyA8cHJlLXdvcmQ+LCA8cG9zdC13b3JkPiwgYW5kIDxjaGFyPikKKyAgICAgICAgICAgICsgIiRjaGFyPVteJGJyZWFrJHNwYWNlJGRhc2gka2FuamkkbmJzcCRfaWdub3JlXyRwcmVfd29yZCRwb3N0X3dvcmQkbWlkX251bSRkYW5kYVxyXFxcIlxcXCddOyIKKworICAgICAgICAgICAgLy8gYSAibnVtYmVyIiBpcyBhIHJ1biBvZiBwcmVmaXggY2hhcmFjdGVycyBhbmQgZGFzaGVzLCBmb2xsb3dlZCBieSBvbmUgb3IKKyAgICAgICAgICAgIC8vIG1vcmUgZGlnaXRzIHdpdGggaXNvbGF0ZWQgbnVtYmVyLXB1bmN0dWF0aW9uIGNoYXJhY3RlcnMgaW50ZXJzcGVyc2VkCisgICAgICAgICAgICArICIkbnVtYmVyPShbJHByZV93b3JkJGRhc2hdKiRkaWdpdCsoJG1pZF9udW0kZGlnaXQrKSopOyIKKworICAgICAgICAgICAgLy8gdGhlIGJhc2ljIGNvcmUgb2YgYSB3b3JkIGNhbiBiZSBlaXRoZXIgYSAibnVtYmVyIiBhcyBkZWZpbmVkIGFib3ZlLCBhIHNpbmdsZQorICAgICAgICAgICAgLy8gIkthbmppIiBjaGFyYWN0ZXIsIG9yIGEgcnVuIG9mIGFueSBudW1iZXIgb2Ygbm90LWV4cGxpY2l0bHktbWVudGlvbmVkCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzICh0aGlzIGluY2x1ZGVzIExhdGluIGxldHRlcnMpCisgICAgICAgICAgICArICIkd29yZF9jb3JlPShbJHByZV93b3JkJGNoYXJdKnwka2Fuaml8JG51bWJlcik7IgorCisgICAgICAgICAgICAvLyBhIHdvcmQgbWF5IGVuZCB3aXRoIGFuIG9wdGlvbmFsIHN1ZmZpeCB0aGF0IGJlIGVpdGhlciBhIHJ1biBvZiBvbmUgb3IKKyAgICAgICAgICAgIC8vIG1vcmUgZGFzaGVzIG9yIGEgcnVuIG9mIHdvcmQtc3VmZml4IGNoYXJhY3RlcnMsIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsCisgICAgICAgICAgICAvLyBydW4gb2Ygd2hpdGVzcGFjZQorICAgICAgICAgICAgKyAiJHdvcmRfc3VmZml4PSgoJGRhc2grfCRwb3N0X3dvcmQqKSRzcGFjZSopOyIKKworICAgICAgICAgICAgLy8gYSB3b3JkLCB0aHVzLCBpcyBhbiBvcHRpb25hbCBydW4gb2Ygd29yZC1wcmVmaXggY2hhcmFjdGVycywgZm9sbG93ZWQgYnkKKyAgICAgICAgICAgIC8vIGEgd29yZCBjb3JlIGFuZCBhIHdvcmQgc3VmZml4ICh0aGUgc3ludGF4IG9mIDx3b3JkLWNvcmU+IGFuZCA8d29yZC1zdWZmaXg+CisgICAgICAgICAgICAvLyBhY3R1YWxseSBhbGxvd3MgZWl0aGVyIG9mIHRoZW0gdG8gbWF0Y2ggdGhlIGVtcHR5IHN0cmluZywgcHV0dGluZyBhIGJyZWFrCisgICAgICAgICAgICAvLyBiZXR3ZWVuIHRoaW5ncyBsaWtlICIpKCIgb3IgImFhYShhYWEiCisgICAgICAgICAgICArICIkd29yZD0oJHByZV93b3JkKiR3b3JkX2NvcmUkd29yZF9zdWZmaXgpOyIKKworICAgICAgICAgICAgLy8gZmluYWxseSwgdGhlIHJ1bGUgdGhhdCBkb2VzIHRoZSB3b3JrOiBLZWVwIHRvZ2V0aGVyIGFueSBydW4gb2Ygd29yZHMgdGhhdAorICAgICAgICAgICAgLy8gYXJlIGpvaW5lZCBieSBydW5zIG9mIG9uZSBvZiBtb3JlIG5vbi1zcGFjaW5nIG1hcmsuICBBbHNvIGtlZXAgYSB0cmFpbGluZworICAgICAgICAgICAgLy8gbGluZS1icmVhayBjaGFyYWN0ZXIgb3IgQ1JMRiBjb21iaW5hdGlvbiB3aXRoIHRoZSB3b3JkLiAgKGxpbmUgc2VwYXJhdG9ycworICAgICAgICAgICAgLy8gIndpbiIgb3ZlciBuYnNwJ3MpCisgICAgICAgICAgICArICIkd29yZCgkbmJzcCskd29yZCkqXHI/JGJyZWFrPzsiCisgICAgICAgIH0sCisKKyAgICAgICAgLy8gZGVmYXVsdCBydWxlcyBmb3IgZmluZGluZyBzZW50ZW5jZSBib3VuZGFyaWVzCisgICAgICAgIHsgIlNlbnRlbmNlQnJlYWtSdWxlcyIsCisgICAgICAgICAgICAvLyBTdXJyb2dhdGVzLiAgVW50aWwgYmV0dGVyIHN1cHBvcnQgaXMgYXZhaWxhYmxlLCBpZ25vcmUgbG93IHN1cnJvZ2F0ZXMKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICBhbmQgY2xhc3NpZnkgaGlnaCBzdXJyb2dhdGVzIGFjY29yZGluZyB0byB0aGUgY2hhcmFjdGVycyB3aXRoaW4gdGhlIGJsb2NrLgorICAgICAgICAgICAgICAiJHN1cnJfbG89W1x1ZGMwMC1cdWRmZmZdOyIKKworICAgICAgICAgICAgLy8gaWdub3JlIG5vbi1zcGFjaW5nIG1hcmtzLCBlbmNsb3NpbmcgbWFya3MsIGFuZCBmb3JtYXQgY2hhcmFjdGVycworICAgICAgICAgICAgKyAiJF9pZ25vcmVfPVtbOk1uOl1bOk1lOl1bOkNmOl0kc3Vycl9sb107IgorCisgICAgICAgICAgICAvLyBsb3dlcmNhc2UgbGV0dGVycworICAgICAgICAgICAgKyAiJGxjPVs6TGw6XTsiCisKKyAgICAgICAgICAgIC8vIHVwcGVyY2FzZSBMYXRpbiBsZXR0ZXJzCisgICAgICAgICAgICArICIkdWNMYXRpbj1bQS1aXTsiCisKKyAgICAgICAgICAgIC8vIHdoaXRlc3BhY2UgKGxpbmUgc2VwYXJhdG9ycyBhcmUgdHJlYXRlZCBhcyB3aGl0ZXNwYWNlKQorICAgICAgICAgICAgKyAiJHNwYWNlPVtcdFxyXGZcblx1MjAyOFs6WnM6XV07IgorCisgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB3aGljaCBtYXkgb2NjdXIgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHNlbnRlbmNlOiAic3RhcnRpbmcKKyAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIiBhbmQgcXVvdGF0aW9uIG1hcmtzCisgICAgICAgICAgICArICIkc3RhcnQ9W1s6UHM6XVs6UGk6XVxcXCJcXFwnXTsiCisKKyAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uIHdpdGggbWF5IG9jY3VyIGF0IHRoZSBlbmQgb2YgYSBzZW50ZW5jZTogImVuZGluZyBwdW5jdHVhdGlvbiIKKyAgICAgICAgICAgIC8vIGFuZCBxdW90YXRpb24gbWFya3MKKyAgICAgICAgICAgICsgIiRlbmQ9W1s6UGU6XVs6UGY6XVxcXCJcXFwnXTsiCisKKyAgICAgICAgICAgIC8vIGRpZ2l0cworICAgICAgICAgICAgKyAiJGRpZ2l0PVs6TjpdOyIKKworICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IHVuYW1iaWd1b3VzbHkgc2lnbmFsIHRoZSBlbmQgb2YgYSBzZW50ZW5jZQorICAgICAgICAgICAgKyAiJHRlcm09W1xcIVxcP1x1MzAwMlx1ZmYwMVx1ZmYxZl07IgorCisgICAgICAgICAgICAvLyBwZXJpb2RzLCB3aGljaCBNQVkgc2lnbmFsIHRoZSBlbmQgb2YgYSBzZW50ZW5jZQorICAgICAgICAgICAgKyAiJHBlcmlvZD1bXFwuXHVmZjBlXTsiCisKKyAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBtYXkgb2NjdXIgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHNlbnRlbmNlOiBiYXNpY2FsbHkgYW55dGhpbmcKKyAgICAgICAgICAgIC8vIG5vdCBtZW50aW9uZWQgYWJvdmUgKGxvd2VyY2FzZSBsZXR0ZXJzIGFuZCBkaWdpdHMgYXJlIHNwZWNpZmljYWxseSBleGNsdWRlZCkKKyAgICAgICAgICAgICsgIiRzZW50X3N0YXJ0PVteJGxjJHVjTGF0aW4kc3BhY2Ukc3RhcnQkZW5kJGRpZ2l0JHRlcm0kcGVyaW9kXHUyMDI5JF9pZ25vcmVfXTsiCisKKyAgICAgICAgICAgIC8vIEhpbmRpIHBocmFzZSBzZXBhcmF0b3IKKyAgICAgICAgICAgICsgIiRkYW5kYT1bXHUwOTY0XHUwOTY1XTsiCisKKyAgICAgICAgICAgIC8vIGFsd2F5cyBicmVhayBzZW50ZW5jZXMgYWZ0ZXIgcGFyYWdyYXBoIHNlcGFyYXRvcnMKKyAgICAgICAgICAgICsgIi4qP1x1MjAyOT87IgorCisgICAgICAgICAgICAvLyBhbHdheXMgYnJlYWsgYWZ0ZXIgYSBkYW5kYSwgaWYgaXQncyBmb2xsb3dlZCBieSB3aGl0ZXNwYWNlCisgICAgICAgICAgICArICIuKj8kZGFuZGEkc3BhY2UqOyIKKworICAgICAgICAgICAgLy8gaWYgeW91IHNlZSBhIHBlcmlvZCwgc2tpcCBvdmVyIGFkZGl0aW9uYWwgcGVyaW9kcyBhbmQgZW5kaW5nIHB1bmN0dWF0aW9uCisgICAgICAgICAgICAvLyBhbmQgaWYgdGhlIG5leHQgY2hhcmFjdGVyIGlzIGEgcGFyYWdyYXBoIHNlcGFyYXRvciwgYnJlYWsgYWZ0ZXIgdGhlCisgICAgICAgICAgICAvLyBwYXJhZ3JhcGggc2VwYXJhdG9yCisgICAgICAgICAgICArICIuKj8kcGVyaW9kWyRwZXJpb2QkZW5kXSokc3BhY2UqXHUyMDI5OyIKKworICAgICAgICAgICAgLy8gaWYgeW91IHNlZSBhIHBlcmlvZCwgc2tpcCBvdmVyIGFkZGl0aW9uYWwgcGVyaW9kcyBhbmQgZW5kaW5nIHB1bmN0dWF0aW9uLAorICAgICAgICAgICAgLy8gZm9sbG93ZWQgYnkgb3B0aW9uYWwgd2hpdGVzcGFjZSwgZm9sbG93ZWQgYnkgb3B0aW9uYWwgc3RhcnRpbmcgcHVuY3R1YXRpb24sCisgICAgICAgICAgICAvLyBhbmQgaWYgdGhlIG5leHQgY2hhcmFjdGVyIGlzIHNvbWV0aGluZyB0aGF0IGNhbiBzdGFydCBhIHNlbnRlbmNlCisgICAgICAgICAgICAvLyAoYmFzaWNhbGx5LCBhIGNhcGl0YWwgbGV0dGVyKSwgdGhlbiBwdXQgdGhlIHNlbnRlbmNlIGJyZWFrIGJldHdlZW4gdGhlCisgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlIGFuZCB0aGUgb3BlbmluZyBwdW5jdHVhdGlvbgorICAgICAgICAgICAgKyAiLio/JHBlcmlvZFskcGVyaW9kJGVuZF0qJHNwYWNlKi8oJHN0YXJ0KiRzZW50X3N0YXJ0fCRzdGFydCskdWNMYXRpbik7IgorCisgICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlLCBleGNlcHQgdGhhdCB0aGVyZSdzIGEgc2VudGVuY2UgYnJlYWsgYmVmb3JlIGEgTGF0aW4gY2FwaXRhbAorICAgICAgICAgICAgLy8gbGV0dGVyIG9ubHkgaWYgdGhlcmUncyBhdCBsZWFzdCBvbmUgc3BhY2UgYWZ0ZXIgdGhlIHBlcmlvZAorICAgICAgICAgICAgKyAiLio/JHBlcmlvZFskcGVyaW9kJGVuZF0qJHNwYWNlKy8kdWNMYXRpbjsiCisKKyAgICAgICAgICAgIC8vIGlmIHlvdSBzZWUgYSBzZW50ZW5jZS10ZXJtaW5hdGluZyBjaGFyYWN0ZXIsIHNraXAgb3ZlciBhbnkgYWRkaXRpb25hbAorICAgICAgICAgICAgLy8gdGVybWluYXRvcnMsIHBlcmlvZHMsIG9yIGVuZGluZyBwdW5jdHVhdGlvbiwgZm9sbG93ZWQgYnkgYW55IHdoaXRlc3BhY2UsCisgICAgICAgICAgICAvLyBmb2xsb3dlZCBieSBhIFNJTkdMRSBvcHRpb25hbCBwYXJhZ3JhcGggc2VwYXJhdG9yLCBhbmQgcHV0IHRoZSBicmVhayB0aGVyZQorICAgICAgICAgICAgKyAiLio/JHRlcm1bJHRlcm0kcGVyaW9kJGVuZF0qJHNwYWNlKlx1MjAyOT87IgorCisgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIHJ1bGVzIGFyZSBoZXJlIHRvIGFpZCBpbiBiYWNrd2FyZHMgaXRlcmF0aW9uLiAgVGhlIGF1dG9tYXRpY2FsbHkKKyAgICAgICAgICAgIC8vIGdlbmVyYXRlZCBiYWNrd2FyZHMgc3RhdGUgdGFibGUgd2lsbCByZXdpbmQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUKKyAgICAgICAgICAgIC8vIHBhcmFncmFwaCBhbGwgdGhlIHRpbWUgKG9yIGFsbCB0aGUgd2F5IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50CisgICAgICAgICAgICAvLyBpZiB0aGUgZG9jdW1lbnQgZG9lc24ndCB1c2UgdGhlIFVuaWNvZGUgUFMgY2hhcmFjdGVyKSBiZWNhdXNlIHRoZSBvbmx5CisgICAgICAgICAgICAvLyB1bmFtYmlndW91cyBjaGFyYWN0ZXIgcGFpcnMgYXJlIHRob3NlIGludm9sdmluZyBwYXJhZ3JhcGggc2VwYXJhdG9ycy4KKyAgICAgICAgICAgIC8vIFRoZXNlIHNwZWNpZnkgYSBmZXcgbW9yZSB1bmFtYmlndW91cyBicmVha2luZyBzaXR1YXRpb25zLgorCisgICAgICAgICAgICAvLyBpZiB5b3Ugc2VlIGEgc2VudGVuY2Utc3RhcnRpbmcgY2hhcmFjdGVyLCBmb2xsb3dlZCBieSBzdGFydGluZyBwdW5jdHVhdGlvbgorICAgICAgICAgICAgLy8gKHJlbWVtYmVyLCB3ZSdyZSBpdGVyYXRpbmcgYmFja3dhcmRzKSwgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgcnVuIG9mCisgICAgICAgICAgICAvLyB3aGl0ZXNwYWNlLCBmb2xsb3dlZCBieSBhbiBvcHRpb25hbCBydW4gb2YgZW5kaW5nIHB1bmN0dWF0aW9uLCBmb2xsb3dlZAorICAgICAgICAgICAgLy8gYnkgYSBwZXJpb2QsIHRoaXMgaXMgYSBzYWZlIHBsYWNlIHRvIHR1cm4gYXJvdW5kCisgICAgICAgICAgICArICIhWyRzZW50X3N0YXJ0JHVjTGF0aW5dJHN0YXJ0KiRzcGFjZSskZW5kKiRwZXJpb2Q7IgorCisgICAgICAgICAgICAvLyBpZiB5b3Ugc2VlIGEgbGV0dGVyIG9yIGEgZGlnaXQsIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsIHJ1biBvZgorICAgICAgICAgICAgLy8gc3RhcnRpbmcgcHVuY3R1YXRpb24sIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsIHJ1biBvZiB3aGl0ZXNwYWNlLAorICAgICAgICAgICAgLy8gZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwgcnVuIG9mIGVuZGluZyBwdW5jdHVhdGlvbiwgZm9sbG93ZWQgYnkKKyAgICAgICAgICAgIC8vIGEgc2VudGVuY2UgdGVybWluYXRvciwgdGhpcyBpcyBhIHNhZmUgcGxhY2UgdG8gdHVybiBhcm91bmQKKyAgICAgICAgICAgICsgIiFbJHNlbnRfc3RhcnQkbGMkZGlnaXRdJHN0YXJ0KiRzcGFjZSokZW5kKiR0ZXJtOyIKKyAgICAgICAgfSwKKworICAgICAgICAvLyBkZWZhdWx0IHJ1bGVzIGZvciBmaW5kaW5nIFRpdGxlIENhc2UgYm91bmRhcmllcy4KKyAgICAgICAgLy8gICBTZWUgIFVuaWNvZGUgVGVjaG5pY2FsIFJlcG9ydCAjMjEgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGVzZSBydWxlcy4KKyAgICAgICAgeyAiVGl0bGVCcmVha1J1bGVzIiwKKyAgICAgICAgICAgICAgICIkY2FzZV9pZ25vcmFibGU9W1s6TW46XVs6TWU6XVs6Q2Y6XVs6TG06XVs6U2s6XVxcdTAwMjdcdTAwQURcdTIwMTldOyIKKyAgICAgICAgICAgICArICIkY2FzZWQ9W1tbOkx1Ol1bOkx0Ol1bOkxsOl0iCisgICAgICAgICAgICAgKyAgICAgIlx1MjE2MC1cdTIxNmYiICAgICAgICAgICAgICAgICAgICAgICAvLyBPdGhlciBVcHBlcmNhc2UKKyAgICAgICAgICAgICArICAgICAiXHUyNGI2LVx1MjRjZiIKKyAgICAgICAgICAgICArICAgICAiXHUwMmIwLVx1MDJiOCIgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyIExvd2VyIGNhc2UKKyAgICAgICAgICAgICArICAgICAiXHUwMmMwLVx1MDJjMSIKKyAgICAgICAgICAgICArICAgICAiXHUwMmUwLVx1MDJlNCIKKyAgICAgICAgICAgICArICAgICAiXHUwMzQ1XHUwMzdhIgorICAgICAgICAgICAgICsgICAgICJcdTIxNzAtXHUyMTdmIgorICAgICAgICAgICAgICsgICAgICJcdTI0ZDAtXHUyNGU5XSIKKyAgICAgICAgICAgICArICAgICAiLSRjYXNlX2lnbm9yYWJsZV07IiAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBhbnl0aGluZyB0aGF0IGlzIGNhc2VfaWdub3JhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGZyb20gJGNhc2VkLgorICAgICAgICAgICAgICsgIiRub3RfY2FzZWQ9W14kY2FzZWQkY2FzZV9pZ25vcmFibGVdOyIKKyAgICAgICAgICAgICAvLyBGaXJzdCB0aW1lIG9ubHksIGVhdCB0aHJvdWdoIGFueSBsZWFkaW5nIG5vbi13b3JkLWxpa2Ugc3R1ZmYuCisgICAgICAgICAgICAgKyAiWyRub3RfY2FzZWQkY2FzZV9pZ25vcmFibGVdKjsiCisgICAgICAgICAgICAgLy8gIE1hdGNoIGEgd29yZCAoYSBjYXNlZCBpdGVtKSwgcGx1cyBhbnkgZm9sbG93aW5nIHNwYWNlcyBvciBvdGhlciBub24tY2FzZWQganVuaywKKyAgICAgICAgICAgICAvLyAgICB1cCB0byB0aGUgc3RhcnQgb2YgdGhlIG5leHQgY2FzZWQgaXRlbS4KKyAgICAgICAgICAgICArICIkY2FzZWRbJGNhc2VkJGNhc2VfaWdub3JhYmxlXSpbJG5vdF9jYXNlZF0qOyIKKyAgICAgICAgICAgICArICIhJG5vdF9jYXNlZCpbJGNhc2VkJGNhc2VfaWdub3JhYmxlXSokbm90X2Nhc2VkKjsiICAgLy8gQmFja3dhcmRzIHJ1bGUuCisgICAgICAgIH0KKworICAgIH07Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0JyZWFrSXRlcmF0b3JSdWxlc190aC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9CcmVha0l0ZXJhdG9yUnVsZXNfdGguamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMDE3MzFkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9CcmVha0l0ZXJhdG9yUnVsZXNfdGguamF2YQpAQCAtMCwwICsxLDIzOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGF0YTsKKworcHVibGljIGNsYXNzIEJyZWFrSXRlcmF0b3JSdWxlc190aCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfTkFNRSA9ICJkYXRhL3RoLmJyayI7CisKKyAgICBwdWJsaWMgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKyAgICAgICAgZmluYWwgYm9vbGVhbiBleGlzdHMgPSBJQ1VEYXRhLmV4aXN0cyhEQVRBX05BTUUpOworCisgICAgICAgIC8vIGlmIGRpY3Rpb25hcnkgd2Fzbid0IGZvdW5kLCB0aGVuIHRoaXMgcmVzb3VyY2UgYnVuZGxlIGRvZXNuJ3QgaGF2ZQorICAgICAgICAvLyBtdWNoIHRvIGNvbnRyaWJ1dGUuLi4KKyAgICAgICAgaWYgKCFleGlzdHMpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0WzBdWzBdOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIC8vIG5hbWVzIG9mIGNsYXNzZXMgdG8gaW5zdGFudGlhdGUgZm9yIHRoZSBkaWZmZXJlbnQga2luZHMgb2YgYnJlYWsKKyAgICAgICAgICAgIC8vIGl0ZXJhdG9yLiAgTm90aWNlIHdlJ3JlIG5vdyB1c2luZyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICAgICAgICAvLyBmb3Igd29yZCBhbmQgbGluZSBicmVha2luZy4KKyAgICAgICAgICAgIHsgIkJyZWFrSXRlcmF0b3JDbGFzc2VzIiwKKyAgICAgICAgICAgICAgICBuZXcgU3RyaW5nW10geyAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9OZXciLCAgICAgICAgICAgLy8gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIGNsYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IiLCAgICAgLy8gd29yZC1icmVhayBpdGVyYXRvciBjbGFzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIiwgICAgIC8vIGxpbmUtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9OZXciIH0gICAgICAgICAgLy8gc2VudGVuY2UtYnJlYWsgaXRlcmF0b3IgY2xhc3MKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgIHsgIldvcmRCcmVha1J1bGVzIiwKKyAgICAgICAgICAgICAgICAiJF9kaWN0aW9uYXJ5Xz1bXHUwZTAxLVx1MGUyZVx1MGUzMC1cdTBlM2FcdTBlNDAtXHUwZTQ0XHUwZTQ3LVx1MGU0ZV07IiAvLyB0aGlzIHJ1bGUgYnJlYWtzIHRoZSBpdGVyYXRvciB3aXRoIG1peGVkIFRoYWkgYW5kIEVuZ2xpc2gKKworICAgICAgICAgICAgICAgIC8vIFN1cnJvZ2F0ZXMuICBVbnRpbCBiZXR0ZXIgc3VwcG9ydCBpcyBhdmFpbGFibGUsIGlnbm9yZSBsb3cgc3Vycm9nYXRlcworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICBhbmQgY2xhc3NpZnkgaGlnaCBzdXJyb2dhdGVzIGFjY29yZGluZyB0byB0aGUgY2hhcmFjdGVycyB3aXRoaW4gdGhlIGJsb2NrLgorICAgICAgICAgICAgICAgICsgIiRzdXJyX2xvPVtcdWRjMDAtXHVkZmZmXTsiCisgICAgICAgICAgICAgICAgKyAiJHN1cnJfaGlfbGV0PVtcdWQ4MDBcdWQ4MDFcdWQ4MzRcdWQ4MzVdOyIgICAvLyBIaSBTdXJyb2dhdGVzIGZvciBPbGQgSXRhbGljLCBHb3RoaWMsIERlc2VyZXQsIE11c2ljLCBNYXRoCisgICAgICAgICAgICAgICAgKyAiJHN1cnJfaGlfaWRlbz1bXHVkODQwLVx1ZDg4MF07IiAgICAgICAgICAgICAvLyBIaSBTdXJyb2dhdGVzIGZvciBDSksKKyAgICAgICAgICAgICAgICArICIkc3Vycl9oaV90YWc9W1x1ZGI0MF07IiAgICAgICAgICAgICAgICAgICAgIC8vIEhpIFN1cnJvZ2F0ZXMgZm9yIFRhZ3MKKyAgICAgICAgICAgICAgICArICIkc3Vycl9oaV9wdWE9W1x1ZGI4MC1cdWRiZmZdOyIgICAgICAgICAgICAgIC8vIEhpIFN1cnJvZ2F0ZXMgZm9yIFByaXZhdGUgVXNlLgorCisgICAgICAgICAgICAgICAgLy8gUHJpdmF0ZSBVc2UgQXJlYS4gIFRyZWF0IGxpa2UgaWRlb2dyYXBocy4KKyAgICAgICAgICAgICAgICArICIkcHVhPVtcdWUwMDAtXHVmOGZmJHN1cnJfaGlfcHVhXTsiCisKKyAgICAgICAgICAgICAgICAvLyBpZ25vcmUgbm9uLXNwYWNpbmcgbWFya3MsIGVuY2xvc2luZyBtYXJrcywgYW5kIGZvcm1hdCBjaGFyYWN0ZXJzLAorICAgICAgICAgICAgICAgIC8vIGFsbCBvZiB3aGljaCBzaG91bGQgbm90IGluZmx1ZW5jZSB0aGUgYWxnb3JpdGhtCisgICAgICAgICAgICAgICAgKyAiJF9pZ25vcmVfPVtbWzpNbjpdWzpNZTpdWzpDZjpdJHN1cnJfbG8kc3Vycl9oaV90YWddLSRfZGljdGlvbmFyeV9dOyIKKworICAgICAgICAgICAgICAgICsgIiRwYWl5YW5ub2k9W1x1MGUyZl07IgorICAgICAgICAgICAgICAgICsgIiRtYWl5YW1vaz1bXHUwZTQ2XTsiCisKKworICAgICAgICAgICAgICAgIC8vIEhpbmRpIHBocmFzZSBzZXBhcmF0b3IsIGthbmppLCBrYXRha2FuYSwgaGlyYWdhbmEsIENKSyBkaWFjcml0aWNhbHMsCisgICAgICAgICAgICAgICAgLy8gb3RoZXIgbGV0dGVycywgYW5kIGRpZ2l0cworICAgICAgICAgICAgICAgICsgIiRkYW5kYT1bXHUwOTY0XHUwOTY1XTsiCisgICAgICAgICAgICAgICAgKyAiJGthbmppPVtcdTMwMDVcdTRlMDAtXHU5ZmE1XHVmOTAwLVx1ZmEyZCRzdXJyX2hpX2lkZW8kcHVhXTsiCisgICAgICAgICAgICAgICAgKyAiJGthdGE9W1x1MzBhMS1cdTMwZmFdOyIKKyAgICAgICAgICAgICAgICArICIkaGlyYT1bXHUzMDQxLVx1MzA5NF07IgorICAgICAgICAgICAgICAgICsgIiRjamtfZGlhY3JpdD1bXHUzMDk5LVx1MzA5Y107IgorICAgICAgICAgICAgICAgICsgIiRsZXQ9W1tbOkw6XVs6TWM6XSRzdXJyX2hpX2xldF0tWyRrYW5qaSRrYXRhJGhpcmEkY2prX2RpYWNyaXQkX2RpY3Rpb25hcnlfXV07IgorICAgICAgICAgICAgICAgICsgIiRkZ3Q9WzpOOl07IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQ6IGN1cnJlbnRseQorICAgICAgICAgICAgICAgIC8vIGRhc2hlcywgYXBvc3Ryb3BoZXMsIHF1b3RhdGlvbiBtYXJrcywgYW5kIHBlcmlvZHMKKyAgICAgICAgICAgICAgICArICIkbWlkX3dvcmQ9W1s6UGQ6XVx1MDBhZFx1MjAyN1xcXCJcXFwnXFwuXTsiCisKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBpbiB0aGUgbWlkZGxlIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgICAgICAvLyBhcG9zdHJvcGhlcywgcW91dGF0aW9uIG1hcmtzLCBwZXJpb2RzLCBjb21tYXMsIGFuZCB0aGUgQXJhYmljCisgICAgICAgICAgICAgICAgLy8gZGVjaW1hbCBwb2ludAorICAgICAgICAgICAgICAgICsgIiRtaWRfbnVtPVtcXFwiXFxcJ1xcLFx1MDY2YlxcLl07IgorCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24gdGhhdCBjYW4gb2NjdXIgYXQgdGhlIGJlZ2lubmluZyBvZiBhIG51bWJlcjogY3VycmVudGx5CisgICAgICAgICAgICAgICAgLy8gdGhlIHBlcmlvZCwgdGhlIG51bWJlciBzaWduLCBhbmQgYWxsIGN1cnJlbmN5IHN5bWJvbHMgZXhjZXB0IHRoZSBjZW50cyBzaWduCisgICAgICAgICAgICAgICAgKyAiJHByZV9udW09W1tbOlNjOl0tW1x1MDBhMl1dXFwjXFwuXTsiCisKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBhdCB0aGUgZW5kIG9mIGEgbnVtYmVyOiBjdXJyZW50bHkKKyAgICAgICAgICAgICAgICAvLyB0aGUgcGVyY2VudCwgcGVyLXRob3VzYW5kLCBwZXItdGVuLXRob3VzYW5kLCBhbmQgQXJhYmljIHBlcmNlbnQKKyAgICAgICAgICAgICAgICAvLyBzaWducywgdGhlIGNlbnRzIHNpZ24sIGFuZCB0aGUgYW1wZXJzYW5kCisgICAgICAgICAgICAgICAgKyAiJHBvc3RfbnVtPVtcXCVcXCZcdTAwYTJcdTA2NmFcdTIwMzBcdTIwMzFdOyIKKworICAgICAgICAgICAgICAgIC8vIGxpbmUgc2VwYXJhdG9yczogY3VycmVudGx5IExGLCBGRiwgUFMsIGFuZCBMUworICAgICAgICAgICAgICAgICsgIiRscz1bXG5cdTAwMGNcdTIwMjhcdTIwMjldOyIKKworICAgICAgICAgICAgICAgIC8vIHdoaXRlc3BhY2U6IGFsbCBzcGFjZSBzZXBhcmF0b3JzIGFuZCB0aGUgdGFiIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICsgIiR3cz1bWzpaczpdXHRdOyIKKworICAgICAgICAgICAgICAgIC8vIGEgd29yZCBpcyBhIHNlcXVlbmNlIG9mIGxldHRlcnMgdGhhdCBtYXkgY29udGFpbiBpbnRlcm5hbAorICAgICAgICAgICAgICAgIC8vIHB1bmN0dWF0aW9uLCBhcyBsb25nIGFzIGl0IGJlZ2lucyBhbmQgZW5kcyB3aXRoIGEgbGV0dGVyIGFuZAorICAgICAgICAgICAgICAgIC8vIG5ldmVyIGNvbnRhaW5zIHR3byBwdW5jdHVhdGlvbiBtYXJrcyBpbiBhIHJvdworICAgICAgICAgICAgICAgICsgIiR3b3JkPSgoJGxldCsoJG1pZF93b3JkJGxldCspKikkZGFuZGE/KTsiCisKKyAgICAgICAgICAgICAgICAvLyBhIG51bWJlciBpcyBhIHNlcXVlbmNlIG9mIGRpZ2l0cyB0aGF0IG1heSBjb250YWluIGludGVybmFsCisgICAgICAgICAgICAgICAgLy8gcHVuY3R1YXRpb24sIGFzIGxvbmcgYXMgaXQgYmVnaW5zIGFuZCBlbmRzIHdpdGggYSBkaWdpdCBhbmQKKyAgICAgICAgICAgICAgICAvLyBuZXZlciBjb250YWlucyB0d28gcHVuY3R1YXRpb24gbWFya3MgaW4gYSByb3cuCisgICAgICAgICAgICAgICAgKyAiJG51bWJlcj0oJGRndCsoJG1pZF9udW0kZGd0KykqKTsiCisKKyAgICAgICAgICAgICAgICArICIkdGhhaV9ldGM9KCRwYWl5YW5ub2lcdTBlMjUkcGFpeWFubm9pKTsiCisKKworICAgICAgICAgICAgICAgIC8vIGJyZWFrIGFmdGVyIGV2ZXJ5IGNoYXJhY3Rlciwgd2l0aCB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbnMKKyAgICAgICAgICAgICAgICAvLyAodGhpcyB3aWxsIGNhdXNlIHB1bmN0dWF0aW9uIG1hcmtzIHRoYXQgYXJlbid0IGNvbnNpZGVyZWQKKyAgICAgICAgICAgICAgICAvLyBwYXJ0IG9mIHdvcmRzIG9yIG51bWJlcnMgdG8gYmUgdHJlYXRlZCBhcyB3b3JkcyB1bnRvIHRoZW1zZWx2ZXMpCisgICAgICAgICAgICAgICAgKyAiLjsiCisKKyAgICAgICAgICAgICAgICAvLyBrZWVwIHRvZ2V0aGVyIGFueSBzZXF1ZW5jZSBvZiBjb250aWd1b3VzIHdvcmRzIGFuZCBudW1iZXJzCisgICAgICAgICAgICAgICAgLy8gKGluY2x1ZGluZyBqdXN0IG9uZSBvZiBlaXRoZXIpLCBwbHVzIGFuIG9wdGlvbmFsIHRyYWlsaW5nCisgICAgICAgICAgICAgICAgLy8gbnVtYmVyLXN1ZmZpeCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICArICIkd29yZD8oJG51bWJlciR3b3JkKSooJG51bWJlciRwb3N0X251bT8pPzsiCisgICAgICAgICAgICAgICAgKyAiJHByZV9udW0oJG51bWJlciR3b3JkKSooJG51bWJlciRwb3N0X251bT8pPzsiCisKKyAgICAgICAgICAgICAgICAvLysgIiRfZGljdGlvbmFyeV8rKCRwYWl5YW5ub2kkbWFpeWFtb2s/KT87IgorICAgICAgICAgICAgICAgICsgIiRfZGljdGlvbmFyeV8rKCRwYWl5YW5ub2k/JG1haXlhbW9rKT87IgorCisgICAgICAgICAgICAgICAgKyAiJF9kaWN0aW9uYXJ5XyskcGFpeWFubm9pLyhbXlx1MGUyNSRtYWl5YW1vayRfaWdub3JlX10iCisgICAgICAgICAgICAgICAgICAgICAgICArICJ8XHUwZTI1W14kcGFpeWFubm9pJF9pZ25vcmVfXSk7IgorCisgICAgICAgICAgICAgICAgKyAiJHRoYWlfZXRjOyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiB3aGl0ZXNwYWNlIChvcHRpb25hbGx5IHdpdGggYSBzaW5nbGUgdHJhaWxpbmcKKyAgICAgICAgICAgICAgICAvLyBsaW5lIHNlcGFyYXRvciBvciBDUkxGIHNlcXVlbmNlKQorICAgICAgICAgICAgICAgICsgIiR3cypccj8kbHM/OyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBLYXRha2FuYQorICAgICAgICAgICAgICAgICsgIlska2F0YSRjamtfZGlhY3JpdF0qOyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBIaXJhZ2FuYQorICAgICAgICAgICAgICAgICsgIlskaGlyYSRjamtfZGlhY3JpdF0qOyIKKworICAgICAgICAgICAgICAgIC8vIGtlZXAgdG9nZXRoZXIgcnVucyBvZiBLYW5qaQorICAgICAgICAgICAgICAgICsgIiRrYW5qaSo7IgorICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgeyAiTGluZUJyZWFrUnVsZXMiLAorICAgICAgICAgICAgICAgICIkX2RpY3Rpb25hcnlfPVtcdTBlMDEtXHUwZTJlXHUwZTMwLVx1MGUzYVx1MGU0MC1cdTBlNDRcdTBlNDctXHUwZTRlXTsiIC8vIHRoaXMgcnVsZSBicmVha3MgdGhlIGl0ZXJhdG9yIHdpdGggbWl4ZWQgVGhhaSBhbmQgRW5nbGlzaAorCisgICAgICAgICAgICAgICAgLy8gU3Vycm9nYXRlcy4gIFVudGlsIGJldHRlciBzdXBwb3J0IGlzIGF2YWlsYWJsZSwgaWdub3JlIGxvdyBzdXJyb2dhdGVzCisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgIGFuZCBjbGFzc2lmeSBoaWdoIHN1cnJvZ2F0ZXMgYWNjb3JkaW5nIHRvIHRoZSBjaGFyYWN0ZXJzIHdpdGhpbiB0aGUgYmxvY2suCisgICAgICAgICAgICAgICAgKyAiJHN1cnJfbG89W1x1ZGMwMC1cdWRmZmZdOyIKKyAgICAgICAgICAgICAgICArICIkc3Vycl9oaV9sZXQ9W1x1ZDgwMFx1ZDgwMVx1ZDgzNFx1ZDgzNV07IiAgIC8vIEhpIFN1cnJvZ2F0ZXMgZm9yIE9sZCBJdGFsaWMsIEdvdGhpYywgRGVzZXJldCwgTXVzaWMsIE1hdGgKKyAgICAgICAgICAgICAgICArICIkc3Vycl9oaV9pZGVvPVtcdWQ4NDAtXHVkODgwXTsiICAgICAgICAgICAgIC8vIEhpIFN1cnJvZ2F0ZXMgZm9yIENKSworICAgICAgICAgICAgICAgICsgIiRzdXJyX2hpX3RhZz1bXHVkYjQwXTsiICAgICAgICAgICAgICAgICAgICAgLy8gSGkgU3Vycm9nYXRlcyBmb3IgVGFncworICAgICAgICAgICAgICAgICsgIiRzdXJyX2hpX3B1YT1bXHVkYjgwLVx1ZGJmZl07IiAgICAgICAgICAgICAgLy8gSGkgU3Vycm9nYXRlcyBmb3IgUHJpdmF0ZSBVc2UuCisKKyAgICAgICAgICAgICAgICAvLyBQcml2YXRlIFVzZSBBcmVhLiAgVHJlYXQgbGlrZSBpZGVvZ3JhcGhzLgorICAgICAgICAgICAgICAgICsgIiRwdWE9W1x1ZTAwMC1cdWY4ZmYkc3Vycl9oaV9wdWFdOyIKKworICAgICAgICAgICAgICAgIC8vIGlnbm9yZSBub24tc3BhY2luZyBtYXJrcywgZW5jbG9zaW5nIG1hcmtzLCBhbmQgZm9ybWF0IGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICArICIkX2lnbm9yZV89W1tbOk1uOl1bOk1lOl1bOkNmOl0kc3Vycl9sbyRzdXJyX2hpX3RhZ10tWyRfZGljdGlvbmFyeV9dXTsiCisKKyAgICAgICAgICAgICAgICAvLyBIaW5kaSBwaHJhc2Ugc2VwYXJhdG9ycworICAgICAgICAgICAgICAgICsgIiRkYW5kYT1bXHUwOTY0XHUwOTY1XTsiCisKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgYWx3YXlzIGNhdXNlIGEgYnJlYWs6IEVUWCwgdGFiLCBMRiwgRkYsIExTLCBhbmQgUFMKKyAgICAgICAgICAgICAgICArICIkYnJlYWs9W1x1MDAwM1x0XG5cZlx1MjAyOFx1MjAyOV07IgorCisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycyB0aGF0IGFsd2F5cyBwcmV2ZW50IGEgYnJlYWs6IHRoZSBub24tYnJlYWtpbmcgc3BhY2UKKyAgICAgICAgICAgICAgICAvLyBhbmQgc2ltaWxhciBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgKyAiJG5ic3A9W1x1MDBhMFx1MjAwN1x1MjAxMVx1ZmVmZl07IgorCisgICAgICAgICAgICAgICAgLy8gd2hpdGVzcGFjZTogc3BhY2Ugc2VwYXJhdG9ycyBhbmQgY29udHJvbCBjaGFyYWN0ZXJzLCBleGNlcHQgZm9yCisgICAgICAgICAgICAgICAgLy8gQ1IgYW5kIHRoZSBvdGhlciBjaGFyYWN0ZXJzIG1lbnRpb25lZCBhYm92ZQorICAgICAgICAgICAgICAgICsgIiRzcGFjZT1bW1s6WnM6XVs6Q2M6XV0tWyRuYnNwJGJyZWFrXHJdXTsiCisKKyAgICAgICAgICAgICAgICAvLyBkYXNoZXM6IGRhc2ggcHVuY3R1YXRpb24gYW5kIHRoZSBkaXNjcmV0aW9uYXJ5IGh5cGhlbiwgZXhjZXB0IGZvcgorICAgICAgICAgICAgICAgIC8vIG5vbi1icmVha2luZyBoeXBoZW5zCisgICAgICAgICAgICAgICAgKyAiJGRhc2g9W1tbOlBkOl1cdTAwYWRdLSRuYnNwXTsiCisKKyAgICAgICAgICAgICAgICArICIkcGFpeWFubm9pPVtcdTBlMmZdOyIKKyAgICAgICAgICAgICAgICArICIkbWFpeWFtb2s9W1x1MGU0Nl07IgorICAgICAgICAgICAgICAgICsgIiR0aGFpX2V0Yz0oJHBhaXlhbm5vaVx1MGUyNSRwYWl5YW5ub2kpOyIKKworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBwcmVjZWRlIGl0OiBjdXJyZW5jeSBzeW1ib2xzCisgICAgICAgICAgICAgICAgLy8gKGV4Y2VwdCB0aGUgY2VudHMgc2lnbikgYW5kIHN0YXJ0aW5nIHB1bmN0dWF0aW9uCisgICAgICAgICAgICAgICAgKyAiJHByZV93b3JkPVtbWzpTYzpdLVtcdTAwYTJdXVs6UHM6XVs6UGk6XVxcXCJdOyIKKworICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgdGhhdCBzdGljayB0byBhIHdvcmQgaWYgdGhleSBmb2xsb3cgaXQ6IGVuZGluZyBwdW5jdHVhdGlvbiwKKyAgICAgICAgICAgICAgICAvLyBvdGhlciBwdW5jdHVhdGlvbiB0aGF0IHVzdWFsbHkgb2NjdXJzIGF0IHRoZSBlbmQgb2YgYSBzZW50ZW5jZSwKKyAgICAgICAgICAgICAgICAvLyBzbWFsbCBLYW5hIGNoYXJhY3RlcnMsIHNvbWUgQ0pLIGRpYWNyaXRpY3MsIGV0Yy4KKyAgICAgICAgICAgICAgICArICIkcG9zdF93b3JkPVtbOlBlOl1bOlBmOl1cXCFcXCVcXC5cXCxcXDpcXDtcXD9cXFwiXHUwMGEyXHUwMGIwXHUwNjZhXHUyMDMwLVx1MjAzNFx1MjEwMyIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx1MjEwNVx1MjEwOVx1MzAwMVx1MzAwMlx1MzAwNVx1MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2MyIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIlx1MzA4M1x1MzA4NVx1MzA4N1x1MzA4ZVx1MzA5OS1cdTMwOWVcdTMwYTFcdTMwYTNcdTMwYTVcdTMwYTdcdTMwYTkiCisgICAgICAgICAgICAgICAgICAgICAgICArICJcdTMwYzNcdTMwZTNcdTMwZTVcdTMwZTdcdTMwZWVcdTMwZjVcdTMwZjZcdTMwZmMtXHUzMGZlXHVmZjAxXHVmZjBlIgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHVmZjFmJG1haXlhbW9rXTsiCisKKyAgICAgICAgICAgICAgICAvLyBLYW5qaTogYWN0dWFsbHkgaW5jbHVkZXMgYm90aCBLYW5qaSBhbmQgS2FuYSwgZXhjZXB0IGZvciBzbWFsbCBLYW5hIGFuZAorICAgICAgICAgICAgICAgIC8vIENKSyBkaWFjcml0aWNzCisgICAgICAgICAgICAgICAgKyAiJGthbmppPVtbJHN1cnJfaGlfaWRlbyRwdWFcdTRlMDAtXHU5ZmE1XHVmOTAwLVx1ZmEyZFx1MzA0MS1cdTMwOTRcdTMwYTEtXHUzMGZhXS1bJHBvc3Rfd29yZCRfaWdub3JlX11dOyIKKworICAgICAgICAgICAgICAgIC8vIGRpZ2l0cworICAgICAgICAgICAgICAgICsgIiRkaWdpdD1bWzpOZDpdWzpObzpdXTsiCisKKyAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbiB0aGF0IGNhbiBvY2N1ciBpbiB0aGUgbWlkZGxlIG9mIGEgbnVtYmVyOiBwZXJpb2RzIGFuZCBjb21tYXMKKyAgICAgICAgICAgICAgICArICIkbWlkX251bT1bXFwuXFwsXTsiCisKKyAgICAgICAgICAgICAgICAvLyBldmVyeXRoaW5nIG5vdCBtZW50aW9uZWQgYWJvdmUsIHBsdXMgdGhlIHF1b3RlIG1hcmtzICh3aGljaCBhcmUgYm90aAorICAgICAgICAgICAgICAgIC8vIDxwcmUtd29yZD4sIDxwb3N0LXdvcmQ+LCBhbmQgPGNoYXI+KQorICAgICAgICAgICAgICAgICsgIiRjaGFyPVteJGJyZWFrJHNwYWNlJGRhc2gka2FuamkkbmJzcCRfaWdub3JlXyRwcmVfd29yZCRwb3N0X3dvcmQiCisgICAgICAgICAgICAgICAgICAgICAgICArICIkbWlkX251bVxyJGRhbmRhJF9kaWN0aW9uYXJ5XyRwYWl5YW5ub2kkbWFpeWFtb2tdOyIKKworICAgICAgICAgICAgICAgIC8vIGEgIm51bWJlciIgaXMgYSBydW4gb2YgcHJlZml4IGNoYXJhY3RlcnMgYW5kIGRhc2hlcywgZm9sbG93ZWQgYnkgb25lIG9yCisgICAgICAgICAgICAgICAgLy8gbW9yZSBkaWdpdHMgd2l0aCBpc29sYXRlZCBudW1iZXItcHVuY3R1YXRpb24gY2hhcmFjdGVycyBpbnRlcnNwZXJzZWQKKyAgICAgICAgICAgICAgICArICIkbnVtYmVyPShbJHByZV93b3JkJGRhc2hdKiRkaWdpdCsoJG1pZF9udW0kZGlnaXQrKSopOyIKKworICAgICAgICAgICAgICAgIC8vIHRoZSBiYXNpYyBjb3JlIG9mIGEgd29yZCBjYW4gYmUgZWl0aGVyIGEgIm51bWJlciIgYXMgZGVmaW5lZCBhYm92ZSwgYSBzaW5nbGUKKyAgICAgICAgICAgICAgICAvLyAiS2FuamkiIGNoYXJhY3Rlciwgb3IgYSBydW4gb2YgYW55IG51bWJlciBvZiBub3QtZXhwbGljaXRseS1tZW50aW9uZWQKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzICh0aGlzIGluY2x1ZGVzIExhdGluIGxldHRlcnMpCisgICAgICAgICAgICAgICAgKyAiJHdvcmRfY29yZT0oJGNoYXIqfCRrYW5qaXwkbnVtYmVyfCRfZGljdGlvbmFyeV8rfCR0aGFpX2V0Yyk7IgorCisgICAgICAgICAgICAgICAgLy8gYSB3b3JkIG1heSBlbmQgd2l0aCBhbiBvcHRpb25hbCBzdWZmaXggdGhhdCBiZSBlaXRoZXIgYSBydW4gb2Ygb25lIG9yCisgICAgICAgICAgICAgICAgLy8gbW9yZSBkYXNoZXMgb3IgYSBydW4gb2Ygd29yZC1zdWZmaXggY2hhcmFjdGVycywgZm9sbG93ZWQgYnkgYW4gb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAvLyBydW4gb2Ygd2hpdGVzcGFjZQorICAgICAgICAgICAgICAgICsgIiR3b3JkX3N1ZmZpeD0oKCRkYXNoK3wkcG9zdF93b3JkKikkc3BhY2UqKTsiCisKKyAgICAgICAgICAgICAgICAvLyBhIHdvcmQsIHRodXMsIGlzIGFuIG9wdGlvbmFsIHJ1biBvZiB3b3JkLXByZWZpeCBjaGFyYWN0ZXJzLCBmb2xsb3dlZCBieQorICAgICAgICAgICAgICAgIC8vIGEgd29yZCBjb3JlIGFuZCBhIHdvcmQgc3VmZml4ICh0aGUgc3ludGF4IG9mIDx3b3JkLWNvcmU+IGFuZCA8d29yZC1zdWZmaXg+CisgICAgICAgICAgICAgICAgLy8gYWN0dWFsbHkgYWxsb3dzIGVpdGhlciBvZiB0aGVtIHRvIG1hdGNoIHRoZSBlbXB0eSBzdHJpbmcsIHB1dHRpbmcgYSBicmVhaworICAgICAgICAgICAgICAgIC8vIGJldHdlZW4gdGhpbmdzIGxpa2UgIikoIiBvciAiYWFhKGFhYSIKKyAgICAgICAgICAgICAgICArICIkd29yZD0oJHByZV93b3JkKiR3b3JkX2NvcmUkd29yZF9zdWZmaXgpOyIKKworICAgICAgICAgICAgICAgIC8vIGZpbmFsbHksIHRoZSBydWxlIHRoYXQgZG9lcyB0aGUgd29yazogS2VlcCB0b2dldGhlciBhbnkgcnVuIG9mIHdvcmRzIHRoYXQKKyAgICAgICAgICAgICAgICAvLyBhcmUgam9pbmVkIGJ5IHJ1bnMgb2Ygb25lIG9mIG1vcmUgbm9uLXNwYWNpbmcgbWFyay4gIEFsc28ga2VlcCBhIHRyYWlsaW5nCisgICAgICAgICAgICAgICAgLy8gbGluZS1icmVhayBjaGFyYWN0ZXIgb3IgQ1JMRiBjb21iaW5hdGlvbiB3aXRoIHRoZSB3b3JkLiAgKGxpbmUgc2VwYXJhdG9ycworICAgICAgICAgICAgICAgIC8vICJ3aW4iIG92ZXIgbmJzcCdzKQorICAgICAgICAgICAgICAgICsgIiR3b3JkKCRuYnNwKyR3b3JkKSooXHI/JGJyZWFrP3wkcGFpeWFubm9pXHIkYnJlYWt8JHBhaXlhbm5vaSRicmVhayk/OyIKKyAgICAgICAgICAgICAgICArICIkd29yZCgkbmJzcCskd29yZCkqJHBhaXlhbm5vaS8oW15bXHUwZTI1JF9pZ25vcmVfXV18IgorICAgICAgICAgICAgICAgICAgICAgICAgKyAiXHUwZTI1W14kcGFpeWFubm9pJF9pZ25vcmVfXSk7IgorICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgeyAiV29yZEJyZWFrRGljdGlvbmFyeSIsIERBVEFfTkFNRSB9LCAvLyBub3cgYSBwYXRoIHRvIElDVTRKLXNwZWNpZmljIHJlc291cmNlCisgICAgICAgICAgICB7ICJMaW5lQnJlYWtEaWN0aW9uYXJ5IiwgREFUQV9OQU1FIH0KKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI2YWUwZTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGUuamF2YQpAQCAtMCwwICsxLDI4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIC8vIE5vcm1hbGx5LCBlYWNoIEhvbGlkYXlCdW5kbGUgdXNlcyB0aGUgaG9saWRheSdzIFVTIEVuZ2xpc2ggbmFtZQorICAgIC8vIGFzIHRoZSBzdHJpbmcga2V5IGZvciBsb29raW5nIHVwIHRoZSBsb2NhbGl6ZWQgbmFtZS4gIFRoaXMgbWVhbnMKKyAgICAvLyB0aGF0IHRoZSBrZXkgaXRzZWxmIGNhbiBiZSB1c2VkIGlmIG5vIG5hbWUgaXMgZm91bmQgZm9yIHRoZSByZXF1ZXN0ZWQKKyAgICAvLyBsb2NhbGUuCisgICAgLy8KKyAgICAvLyBGb3IgaG9saWRheXMgd2hlcmUgdGhlIGtleSBpcyBfbm90XyB0aGUgRW5nbGlzaCBuYW1lLCBlLmcuIGluIHRoZQorICAgIC8vIGNhc2Ugb2YgY29uZmxpY3RzLCB0aGUgRW5nbGlzaCBuYW1lIG11c3QgYmUgZ2l2ZW4gaGVyZS4KKyAgICAvLworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICAgIiIsICIiICB9LCAgICAgIC8vIENhbid0IGJlIGVtcHR5IQorICAgIH07CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RhLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNGNlN2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RhLmphdmEKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9kYSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZQoreworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0KKyAgICB7CisgICAgICAgIHsgICAiQXJtaXN0aWNlIERheSIsICAgICAgICAidlx1MDBlNWJlbmh2aWxlIiB9LAorICAgICAgICB7ICAgIkFzY2Vuc2lvbiIsICAgICAgICAgICAgImhpbW1lbGZhcnQiIH0sCisgICAgICAgIHsgICAiQm94aW5nIERheSIsICAgICAgICAgICAiYW5kZW4ganVsZWRhZyIgfSwKKyAgICAgICAgeyAgICJDaHJpc3RtYXMgRXZlIiwgICAgICAgICJqdWxlYWZ0ZW4iIH0sCisgICAgICAgIHsgICAiRWFzdGVyIiwgICAgICAgICAgICAgICAicFx1MDBlNXNrZSIgfSwKKyAgICAgICAgeyAgICJFcGlwaGFueSIsICAgICAgICAgICAgICJoZWxsaWd0cmVrb25nZXJzZGFnIiB9LAorICAgICAgICB7ICAgIkdvb2QgRnJpZGF5IiwgICAgICAgICAgImxhbmdmcmVkYWciIH0sCisgICAgICAgIHsgICAiSGFsbG93ZWVuIiwgICAgICAgICAgICAiYWxsZWhlbGdlbnNhZnRlbiIgfSwKKyAgICAgICAgeyAgICJNYXVuZHkgVGh1cnNkYXkiLCAgICAgICJza1x1MDBlNnJ0b3JzZGFnIiB9LAorICAgICAgICB7ICAgIlBhbG0gU3VuZGF5IiwgICAgICAgICAgInBhbG1lc1x1MDBmOG5kYWciIH0sCisgICAgICAgIHsgICAiUGVudGVjb3N0IiwgICAgICAgICAgICAicGluc2UiIH0sCisgICAgICAgIHsgICAiU2hyb3ZlIFR1ZXNkYXkiLCAgICAgICAiaHZpZGV0aXJzZGFnIiB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGFfREsuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9kYV9ESy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVkNTllNDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGFfREsuamF2YQpAQCAtMCwwICsxLDM4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZGFfREsgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUKK3sKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19EQVksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkFQUklMLCAgIDMwLCAtQ2FsZW5kYXIuRlJJREFZLCAiR2VuZXJhbCBQcmF5ZXIgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkpVTkUsICAgIDUsICAgICAgICAgICAgICAgICAgICAiQ29uc3RpdHV0aW9uIERheSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BU19FVkUsCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkJPWElOR19EQVksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0VWRSwKKworICAgICAgICAvLyBFYXN0ZXIgYW5kIHJlbGF0ZWQgaG9saWRheXMKKyAgICAgICAgRWFzdGVySG9saWRheS5NQVVORFlfVEhVUlNEQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuR09PRF9GUklEQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX1NVTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfTU9OREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkFTQ0VOU0lPTiwKKyAgICAgICAgRWFzdGVySG9saWRheS5XSElUX01PTkRBWSwKKyAgICB9OworCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgICAiaG9saWRheXMiLCAgICAgICAgICAgICBmSG9saWRheXMgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNWIxMGYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlLmphdmEKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9kZSBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgICAiQWxsIFNhaW50cycgRGF5IiwgICAgICAgICAgICAgICJBbGxlcmhlaWxpZ2VuIiB9LAorICAgICAgICB7ICAgIkFsbCBTb3VscycgRGF5IiwgICAgICAgICAgICAgICAiQWxsZXJzZWVsZW4iIH0sCisgICAgICAgIHsgICAiQXJtaXN0aWNlIERheSIsICAgICAgICAgICAgICAgICJXYWZmZW5zdGlsbHN0YW5kc3RhZyIgfSwKKyAgICAgICAgeyAgICJBc2NlbnNpb24iLCAgICAgICAgICAgICAgICAgICAgIkNocmlzdGkgSGltbWVsZmFocnQiIH0sCisgICAgICAgIHsgICAiQXNoIFdlZG5lc2RheSIsICAgICAgICAgICAgICAgICJBc2NoZXJtaXR0d29jaCIgfSwKKyAgICAgICAgeyAgICJBc3N1bXB0aW9uIiwgICAgICAgICAgICAgICAgICAgIk1hcmlcdTAwZTQgSGltbWVsZmFocnQiIH0sCisgICAgICAgIHsgICAiQm94aW5nIERheSIsICAgICAgICAgICAgICAgICAgICIyLiBXZWlobmFjaHRzdGFnIiB9LAorICAgICAgICB7ICAgIkNhcm5pdmFsIiwgICAgICAgICAgICAgICAgICAgICAiS2FybmV2YWwiIH0sCisgICAgICAgIHsgICAiQ2hyaXN0bWFzIiwgICAgICAgICAgICAgICAgICAgICJXZWlobmFjaHRzdGFnIiB9LAorICAgICAgICB7ICAgIkNpdmljIEhvbGlkYXkiLCAgICAgICAgICAgICAgICAiQlx1MDBmY3JnZXJmZWllcnRhZyIgfSwKKyAgICAgICAgeyAgICJDb25zdGl0dXRpb24gRGF5IiwgICAgICAgICAgICAgIlZlcmZhc3N1bmdzdGFnIiB9LAorICAgICAgICB7ICAgIkNvcnB1cyBDaHJpc3RpIiwgICAgICAgICAgICAgICAiRnJvbmxlaWNobmFtIiB9LAorICAgICAgICB7ICAgIkRheSBvZiBQcmF5ZXIgYW5kIFJlcGVudGFuY2UiLCAiQnVcdTAwZGYtIHVuZCBCZXR0YWciIH0sCisgICAgICAgIHsgICAiRWFzdGVyIE1vbmRheSIsICAgICAgICAgICAgICAgICJPc3Rlcm1vbm50YWciIH0sCisgICAgICAgIHsgICAiRWFzdGVyIFN1bmRheSIsICAgICAgICAgICAgICAgICJPc3RlcnNvbm50YWciIH0sCisgICAgICAgIHsgICAiRXBpcGhhbnkiLCAgICAgICAgICAgICAgICAgICAgICJIZWlsaWdlIDMgS1x1MDBmNm5pZ2UiIH0sCisgICAgICAgIHsgICAiRmF0aGVyJ3MgRGF5IiwgICAgICAgICAgICAgICAgICJWYXRlcnRhZyIgfSwKKyAgICAgICAgeyAgICJGbGFnIERheSIsICAgICAgICAgICAgICAgICAgICAgIkphaHJlc3RhZyBkZXIgTmF0aW9uYWxmbGFnZ2UiIH0sCisgICAgICAgIHsgICAiR2VybWFuIFVuaXR5IERheSIsICAgICAgICAgICAgICJUYWcgZGVyIGRldXRzY2hlbiBFaW5oZWl0IiB9LAorICAgICAgICB7ICAgIkdvb2QgRnJpZGF5IiwgICAgICAgICAgICAgICAgICAiS2FyZnJlaXRhZyIgfSwKKyAgICAgICAgeyAgICJIYWxsb3dlZW4iLCAgICAgICAgICAgICAgICAgICAgIkFiZW5kIHZvciBBbGxlcmhlaWxpZ2VuIiB9LAorICAgICAgICB7ICAgIkltbWFjdWxhdGUgQ29uY2VwdGlvbiIsICAgICAgICAiTWFyaVx1MDBlNCBFbXBmXHUwMGU0bmduaXMiIH0sCisgICAgICAgIHsgICAiSW5kZXBlbmRlbmNlIERheSIsICAgICAgICAgICAgICJVbmFiaFx1MDBlNG5naWdrZWl0c3RhZyIgfSwKKyAgICAgICAgeyAgICJMYWJvciBEYXkiLCAgICAgICAgICAgICAgICAgICAgIlRhZyBkZXIgQXJiZWl0IiB9LAorICAgICAgICB7ICAgIkxpYmVyYXRpb24gRGF5IiwgICAgICAgICAgICAgICAiQmVmcmVpdW5nc3RhZyIgfSwKKyAgICAgICAgeyAgICJNYXJkaSBHcmFzIiwgICAgICAgICAgICAgICAgICAgIkZhc2NoaW5nc2RpZW5zdGFnIiB9LAorICAgICAgICB7ICAgIk1hdW5keSBUaHVyc2RheSIsICAgICAgICAgICAgICAiR3JcdTAwZmNuZG9ubmVyc3RhZyIgfSwKKyAgICAgICAgeyAgICJNYXkgRGF5IiwgICAgICAgICAgICAgICAgICAgICAgIk1haWZlaWVydGFnIiB9LAorICAgICAgICB7ICAgIk1lbW9yaWFsIERheSIsICAgICAgICAgICAgICAgICAiVGFnIGRlcyBHZWRlbmtlbnMiIH0sCisgICAgICAgIHsgICAiTW90aGVyJ3MgRGF5IiwgICAgICAgICAgICAgICAgICJNdXR0ZXJ0YWciIH0sCisgICAgICAgIHsgICAiTmF0aW9uYWwgSG9saWRheSIsICAgICAgICAgICAgICJOYXRpb25hbGZlaWVydGFnIiB9LAorICAgICAgICB7ICAgIk5ldyBZZWFyJ3MgRGF5IiwgICAgICAgICAgICAgICAiTmV1amFociIgfSwKKyAgICAgICAgeyAgICJOZXcgWWVhcidzIEV2ZSIsICAgICAgICAgICAgICAgIlNpbHZlc3RlcmFiZW5kIiB9LAorICAgICAgICB7ICAgIlBhbG0gU3VuZGF5IiwgICAgICAgICAgICAgICAgICAiUGFsbXNvbm50YWciIH0sCisgICAgICAgIHsgICAiUGVudGVjb3N0IiwgICAgICAgICAgICAgICAgICAgICJQZmluZ3N0ZW4iIH0sCisgICAgICAgIHsgICAiUHJlc2lkZW50cycgRGF5IiwgICAgICAgICAgICAgICJQclx1MDBlNHNpZGVudHN0YWciIH0sCisgICAgICAgIHsgICAiUmVtZW1icmFuY2UgRGF5IiwgICAgICAgICAgICAgICJWb2xrc3RyYXVlcnRhZyIgfSwKKyAgICAgICAgeyAgICJSZXZvbHV0aW9uIERheSIsICAgICAgICAgICAgICAgIkphaHJlc3RhZyBkZXIgUmV2b2x1dGlvbiIgfSwKKyAgICAgICAgeyAgICJSb3NlIE1vbmRheSIsICAgICAgICAgICAgICAgICAgIlJvc2VubW9udGFnIiB9LAorICAgICAgICB7ICAgIlN0LiBTdGVwaGVuJ3MgRGF5IiwgICAgICAgICAgICAiU3RlcGhhbml0YWciIH0sCisgICAgICAgIHsgICAiU2hyb3ZlIFR1ZXNkYXkiLCAgICAgICAgICAgICAgICJGYXNjaGluZ3NkaWVuc3RhZyIgfSwKKyAgICAgICAgeyAgICJTcHJpbmcgSG9saWRheSIsICAgICAgICAgICAgICAgIlRhZyBkZXMgRnJcdTAwZmNobGluZ3MiIH0sCisgICAgICAgIHsgICAiU3VtbWVyIEJhbmsgSG9saWRheSIsICAgICAgICAgICJCYW5rZmVpZXJ0YWciIH0sCisgICAgICAgIHsgICAiVGhhbmtzZ2l2aW5nIiwgICAgICAgICAgICAgICAgICJEYW5rZmVzdCIgfSwKKyAgICAgICAgeyAgICJVbml0eSBEYXkiLCAgICAgICAgICAgICAgICAgICAgIkVpbmhlaXRzdGFnIiB9LAorICAgICAgICB7ICAgIlZldGVyYW5zJyBEYXkiLCAgICAgICAgICAgICAgICAiVmV0ZXJhbnN0YWciIH0sCisgICAgICAgIHsgICAiVmljdG9yeSBEYXkiLCAgICAgICAgICAgICAgICAgICJUYWcgZGVyIEJlZnJlaXVuZyIgfSwKKyAgICAgICAgeyAgICJXYXNoaW5ndG9uJ3MgQmlydGhkYXkiLCAgICAgICAgIldhc2hpbmd0b25zIEdlYnVydHN0YWciIH0sCisgICAgICAgIHsgICAiV2hpdCBNb25kYXkiLCAgICAgICAgICAgICAgICAgICJQZmluZ3N0bW9udGFnIiB9LAorICAgICAgICB7ICAgIldoaXQgU3VuZGF5IiwgICAgICAgICAgICAgICAgICAiUGZpbmdzdHNvbm50YWciIH0sCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlX0FULmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGVfQVQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZTZmNzE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlX0FULmphdmEKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2RlX0FUIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19EQVksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuRVBJUEhBTlksCisgICAgICAgIEVhc3RlckhvbGlkYXkuR09PRF9GUklEQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX1NVTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfTU9OREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkFTQ0VOU0lPTiwKKyAgICAgICAgRWFzdGVySG9saWRheS5XSElUX1NVTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5XSElUX01PTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5DT1JQVVNfQ0hSSVNUSSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5BU1NVTVBUSU9OLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkFMTF9TQUlOVFNfREFZLAorICAgICAgICBTaW1wbGVIb2xpZGF5LklNTUFDVUxBVEVfQ09OQ0VQVElPTiwKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVMsCisgICAgICAgIFNpbXBsZUhvbGlkYXkuU1RfU1RFUEhFTlNfREFZLAorCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgIDEsICAwLCAgICAgICAgICAgICAgICJOYXRpb25hbCBIb2xpZGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk9DVE9CRVIsICAgMzEsIC1DYWxlbmRhci5NT05EQVksICJOYXRpb25hbCBIb2xpZGF5IiksCisgICAgfTsKKworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgZkhvbGlkYXlzIH0sCisKKyAgICAgICAgLy8gT25seSBob2xpZGF5cyBuYW1lcyBkaWZmZXJlbnQgZnJvbSB0aG9zZSB1c2VkIGluIEdlcm1hbnkgYXJlIGxpc3RlZCBoZXJlCisgICAgICAgIHsgICAiQ2hyaXN0bWFzIiwgICAgICAgICJDaHJpc3R0YWciIH0sCisgICAgICAgIHsgICAiTmV3IFllYXIncyBEYXkiLCAgICJOZXVqYWhyc3RhZyIgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlX0RFLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZGVfREUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMzlmZWVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2RlX0RFLmphdmEKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2RlX0RFIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19EQVksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuTUFZX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVORSwgICAgICAxNSwgIENhbGVuZGFyLldFRE5FU0RBWSwgICJNZW1vcmlhbCBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuT0NUT0JFUiwgICAgMywgIDAsICAgICAgICAgICAgICAgICAgICJVbml0eSBEYXkiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5BTExfU0FJTlRTX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAxOCwgIDAsICAgICAgICAgICAgICAgICAgICJEYXkgb2YgUHJheWVyIGFuZCBSZXBlbnRhbmNlIiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkJPWElOR19EQVksCisKKyAgICAgICAgLy8gRWFzdGVyIGFuZCByZWxhdGVkIGhvbGlkYXlzCisgICAgICAgIEVhc3RlckhvbGlkYXkuR09PRF9GUklEQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX1NVTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfTU9OREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkFTQ0VOU0lPTiwKKyAgICAgICAgRWFzdGVySG9saWRheS5XSElUX1NVTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5XSElUX01PTkRBWSwKKyAgICB9OworCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgImhvbGlkYXlzIiwgICBmSG9saWRheXMgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VsLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mOWQ3NmJhNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbC5qYXZhCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZWwgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0KKyAgICB7CisgICAgICAgIHsgICAiQXNzdW1wdGlvbiIsICAgICAgICAgICAiMTUgXHUwMzkxXHUwM2NkXHUwM2IzXHUwM2JmXHUwM2NkXHUwM2MzXHUwM2M0XHUwM2JmXHUwM2M1IiB9LAorICAgICAgICB7ICAgIkJveGluZyBEYXkiLCAgICAgICAgICAgIlx1MDM5NFx1MDNiNVx1MDNjZFx1MDNjNFx1MDNiNVx1MDNjMVx1MDNiNyBcdTAzYmNcdTAzYWRcdTAzYzFcdTAzYjEgXHUwM2M0XHUwM2NlXHUwM2JkIFx1MDNhN1x1MDNjMVx1MDNiOVx1MDNjM1x1MDNjNFx1MDNiZlx1MDNjNVx1MDNiM1x1MDNhZFx1MDNiZFx1MDNiZFx1MDNjOVx1MDNiZCIgfSwKKyAgICAgICAgeyAgICJDaHJpc3RtYXMiLCAgICAgICAgICAgICJcdTAzYTdcdTAzYzFcdTAzYjlcdTAzYzNcdTAzYzRcdTAzYmZcdTAzY2RcdTAzYjNcdTAzYjVcdTAzYmRcdTAzYmRcdTAzYjEiIH0sCisgICAgICAgIHsgICAiQ2xlYW4gTW9uZGF5IiwgICAgICAgICAiXHUwMzlhXHUwM2IxXHUwM2I4XHUwM2IxXHUwM2MxXHUwM2FlIFx1MDM5NFx1MDNiNVx1MDNjNVx1MDNjNFx1MDNhZFx1MDNjMVx1MDNiMSIgfSwKKyAgICAgICAgeyAgICJFYXN0ZXIgTW9uZGF5IiwgICAgICAgICJcdTAzOTRcdTAzYjVcdTAzY2RcdTAzYzRcdTAzYjVcdTAzYzFcdTAzYjcgXHUwM2JjXHUwM2FkXHUwM2MxXHUwM2IxIFx1MDNjNFx1MDNiZlx1MDNjZCBcdTAzYTBcdTAzYWNcdTAzYzNcdTAzYzdcdTAzYjEiIH0sCisgICAgICAgIHsgICAiRXBpcGhhbnkiLCAgICAgICAgICAgICAiXHUwMzg4XHUwM2MwXHUwM2I5XHUwM2M2XHUwM2FjXHUwM2JkXHUwM2I1XHUwM2I5XHUwM2IxIiB9LAorICAgICAgICB7ICAgIkdvb2QgRnJpZGF5IiwgICAgICAgICAgIlx1MDM5Y1x1MDNiNVx1MDNiM1x1MDNhY1x1MDNiYlx1MDNiNyBcdTAzYTBcdTAzYjFcdTAzYzFcdTAzYjFcdTAzYzNcdTAzYmFcdTAzYjVcdTAzYzVcdTAzYWUiIH0sCisgICAgICAgIHsgICAiTWF5IERheSIsICAgICAgICAgICAgICAiXHUwM2EwXHUwM2MxXHUwM2M5XHUwM2M0XHUwM2JmXHUwM2JjXHUwM2IxXHUwM2IzXHUwM2I5XHUwM2FjIiB9LAorICAgICAgICB7ICAgIk5ldyBZZWFyJ3MgRGF5IiwgICAgICAgIlx1MDNhMFx1MDNjMVx1MDNjOVx1MDNjNFx1MDNiZlx1MDNjN1x1MDNjMVx1MDNiZlx1MDNiZFx1MDNiOVx1MDNhYyIgfSwKKyAgICAgICAgeyAgICJPY2hpIERheSIsICAgICAgICAgICAgICIyOCBcdTAzOGNcdTAzYmFcdTAzYzRcdTAzYzlcdTAzYjJcdTAzYzFcdTAzYWZcdTAzYmZcdTAzYzUiIH0sCisgICAgICAgIHsgICAiV2hpdCBNb25kYXkiLCAgICAgICAgICAiXHUwMzk0XHUwM2I1XHUwM2NkXHUwM2M0XHUwM2I1XHUwM2MxXHUwM2I3IFx1MDNiY1x1MDNhZFx1MDNjMVx1MDNiMSBcdTAzYzRcdTAzYmZcdTAzY2QgXHUwM2EwXHUwM2I1XHUwM2JkXHUwM2M0XHUwM2I3XHUwM2JhXHUwM2JmXHUwM2MzXHUwM2M0XHUwM2FlIiB9LAorCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbF9HUi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VsX0dSLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWUxZmFiYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbF9HUi5qYXZhCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9lbF9HUiBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfREFZLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkVQSVBIQU5ZLAorCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BUkNILCAgICAgMjUsICAwLCAgICAiSW5kZXBlbmRlbmNlIERheSIpLAorCisgICAgICAgIFNpbXBsZUhvbGlkYXkuTUFZX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5BU1NVTVBUSU9OLAorCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk9DVE9CRVIsICAgMjgsICAwLCAgICAiT2NoaSBEYXkiKSwKKworICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICAgICAgU2ltcGxlSG9saWRheS5CT1hJTkdfREFZLAorCisgICAgICAgIC8vIEVhc3RlciBhbmQgcmVsYXRlZCBob2xpZGF5cyBpbiB0aGUgT3J0aG9kb3ggY2FsZW5kYXIKKyAgICAgICAgbmV3IEVhc3RlckhvbGlkYXkoLTIsICAgdHJ1ZSwgIkdvb2QgRnJpZGF5IiksCisgICAgICAgIG5ldyBFYXN0ZXJIb2xpZGF5KCAwLCAgIHRydWUsICJFYXN0ZXIgU3VuZGF5IiksCisgICAgICAgIG5ldyBFYXN0ZXJIb2xpZGF5KCAxLCAgIHRydWUsICJFYXN0ZXIgTW9uZGF5IiksCisgICAgICAgIG5ldyBFYXN0ZXJIb2xpZGF5KDUwLCAgIHRydWUsICJXaGl0IE1vbmRheSIpLAorICAgIH07CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgICAiaG9saWRheXMiLCAgICAgICAgIGZIb2xpZGF5cyAgIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VuLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWJjNTFlNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbi5qYXZhCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZW4gZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgLy8gTm9ybWFsbHksIGVhY2ggSG9saWRheUJ1bmRsZSB1c2VzIHRoZSBob2xpZGF5J3MgVVMgRW5nbGlzaCBuYW1lCisgICAgLy8gYXMgdGhlIHN0cmluZyBrZXkgZm9yIGxvb2tpbmcgdXAgdGhlIGxvY2FsaXplZCBuYW1lLiAgVGhpcyBtZWFucworICAgIC8vIHRoYXQgdGhlIGtleSBpdHNlbGYgY2FuIGJlIHVzZWQgaWYgbm8gbmFtZSBpcyBmb3VuZCBmb3IgdGhlIHJlcXVlc3RlZAorICAgIC8vIGxvY2FsZS4KKyAgICAvLworICAgIC8vIEZvciBob2xpZGF5cyB3aGVyZSB0aGUga2V5IGlzIF9ub3RfIHRoZSBFbmdsaXNoIG5hbWUsIGUuZy4gaW4gdGhlCisgICAgLy8gY2FzZSBvZiBjb25mbGljdHMsIHRoZSBFbmdsaXNoIG5hbWUgbXVzdCBiZSBnaXZlbiBoZXJlLgorICAgIC8vCisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgICAiIiwgIiIgIH0sICAgICAgLy8gQ2FuJ3QgYmUgZW1wdHkhCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fQ0EuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbl9DQS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRlOWY4MDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fQ0EuamF2YQpAQCAtMCwwICsxLDQwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZW5fQ0EgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIEhvbGlkYXlbXSBmSG9saWRheXMgPSB7CisgICAgICAgIFNpbXBsZUhvbGlkYXkuTkVXX1lFQVJTX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFZLCAgICAgICAxOSwgMCwgICAgICAgICAgICAgICAgICAiVmljdG9yaWEgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkpVTFksICAgICAgIDEsIDAsICAgICAgICAgICAgICAgICAgIkNhbmFkYSBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuQVVHVVNULCAgICAgMSwgQ2FsZW5kYXIuTU9OREFZLCAgICAiQ2l2aWMgSG9saWRheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5TRVBURU1CRVIsICAxLCBDYWxlbmRhci5NT05EQVksICAgICJMYWJvciBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuT0NUT0JFUiwgICAgOCwgQ2FsZW5kYXIuTU9OREFZLCAgICAiVGhhbmtzZ2l2aW5nIiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgMTEsIDAsICAgICAgICAgICAgICAgICAgIlJlbWVtYnJhbmNlIERheSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICAgICAgU2ltcGxlSG9saWRheS5CT1hJTkdfREFZLAorICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19FVkUsCisKKyAgICAgICAgLy8gRWFzdGVyIGFuZCByZWxhdGVkIGhvbGlkYXlzCisgICAgICAgIC8vaGV5IHtqZn0gLSB3aGVyZSBhcmUgdGhlc2UgZnJvbT8KKy8vICAgICAgICBFYXN0ZXJIb2xpZGF5LkdPT0RfRlJJREFZLAorLy8gICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX1NVTkRBWSwKKy8vICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9NT05EQVksCisgICAgfTsKKworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgZkhvbGlkYXlzIH0sCisKKyAgICAgICAgeyAiTGFib3IgRGF5IiwgICJMYWJvdXIgRGF5IiB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fR0IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbl9HQi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlhNzE0MjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fR0IuamF2YQpAQCAtMCwwICsxLDM2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZW5fR0IgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUKK3sKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19EQVksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuTUFZX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFZLCAgICAgICAgMzEsIC1DYWxlbmRhci5NT05EQVksICAgICJTcHJpbmcgSG9saWRheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5BVUdVU1QsICAgICAzMSwgLUNhbGVuZGFyLk1PTkRBWSwgICAgIlN1bW1lciBCYW5rIEhvbGlkYXkiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVMsCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQk9YSU5HX0RBWSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuREVDRU1CRVIsICAgMzEsIC1DYWxlbmRhci5NT05EQVksICAgICJDaHJpc3RtYXMgSG9saWRheSIpLAorCisgICAgICAgIC8vIEVhc3RlciBhbmQgcmVsYXRlZCBob2xpZGF5cworICAgICAgICBFYXN0ZXJIb2xpZGF5LkdPT0RfRlJJREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9TVU5EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX01PTkRBWSwKKyAgICB9OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgZkhvbGlkYXlzIH0sCisKKyAgICAgICAgeyAiTGFib3IgRGF5IiwgICJMYWJvdXIgRGF5IiB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fVVMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lbl9VUy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjExZDE1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZW5fVVMuamF2YQpAQCAtMCwwICsxLDQ2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZW5fVVMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUKK3sKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19EQVksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkpBTlVBUlksICAgMTUsIENhbGVuZGFyLk1PTkRBWSwgICAgICAiTWFydGluIEx1dGhlciBLaW5nIERheSIsICAgMTk4NiksCisKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuRkVCUlVBUlksICAxNSwgQ2FsZW5kYXIuTU9OREFZLCAgICAgICJQcmVzaWRlbnRzJyBEYXkiLCAgICAgICAgICAxOTc2KSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuRkVCUlVBUlksICAyMiwgICAgICAgICAgICAgICAgICAgICAgICJXYXNoaW5ndG9uJ3MgQmlydGhkYXkiLCAgICAxNzc2LCAxOTc1KSwKKworICAgICAgICBFYXN0ZXJIb2xpZGF5LkdPT0RfRlJJREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9TVU5EQVksCisKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFZLCAgICAgICAgOCwgQ2FsZW5kYXIuU1VOREFZLCAgICAgICJNb3RoZXIncyBEYXkiLCAgICAgICAgICAgICAxOTE0KSwKKworICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgIDMxLCAtQ2FsZW5kYXIuTU9OREFZLCAgICAgIk1lbW9yaWFsIERheSIsICAgICAgICAgICAgIDE5NzEpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgIDMwLCAgICAgICAgICAgICAgICAgICAgICAgIk1lbW9yaWFsIERheSIsICAgICAgICAgICAgIDE4NjgsIDE5NzApLAorCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkpVTkUsICAgICAgMTUsIENhbGVuZGFyLlNVTkRBWSwgICAgICAiRmF0aGVyJ3MgRGF5IiwgICAgICAgICAgICAgMTk1NiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkpVTFksICAgICAgIDQsICAgICAgICAgICAgICAgICAgICAgICAiSW5kZXBlbmRlbmNlIERheSIsICAgICAgICAgMTc3NiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLlNFUFRFTUJFUiwgIDEsIENhbGVuZGFyLk1PTkRBWSwgICAgICAiTGFib3IgRGF5IiwgICAgICAgICAgICAgICAgMTg5NCksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgIDIsIENhbGVuZGFyLlRVRVNEQVksICAgICAiRWxlY3Rpb24gRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk9DVE9CRVIsICAgIDgsIENhbGVuZGFyLk1PTkRBWSwgICAgICAiQ29sdW1idXMgRGF5IiwgICAgICAgICAgICAgMTk3MSksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk9DVE9CRVIgLCAgMzEsICAgICAgICAgICAgICAgICAgICAgICAiSGFsbG93ZWVuIiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgMTEsICAgICAgICAgICAgICAgICAgICAgICAiVmV0ZXJhbnMnIERheSIsICAgICAgICAgICAgMTkxOCksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgMjIsIENhbGVuZGFyLlRIVVJTREFZLCAgICAiVGhhbmtzZ2l2aW5nIiwgICAgICAgICAgICAgMTg2MyksCisKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVMsCisgICAgfTsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAiaG9saWRheXMiLCAgIGZIb2xpZGF5cyB9LAorICAgIH07CisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZXMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9lcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE0OTI1NjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZXMuamF2YQpAQCAtMCwwICsxLDUwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LmltcGwuZGF0YTsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2VzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAgICJBbGwgU2FpbnRzJyBEYXkiLCAgICAgICAgICAiVG9kb3MgbG9zIFNhbnRvcyIgfSwKKyAgICAgICAgeyAgICJBcm1pc3RpY2UgRGF5IiwgICAgICAgICAgICAiRFx1MDBlZGEgZGVsIEFybWlzdGljaW8iIH0sCisgICAgICAgIHsgICAiQXNjZW5zaW9uIiwgICAgICAgICAgICAgICAgIkFzY2Vuc2lcdTAwZjNuIiB9LAorICAgICAgICB7ICAgIkJlbml0byBKdVx1MDBlMXJleiBEYXkiLCAgICAgICAgIkRcdTAwZWRhIGRlIGxhIEJlbml0byBKdVx1MDBlMXJleiIgfSwKKyAgICAgICAgeyAgICJCb3hpbmcgRGF5IiwgICAgICAgICAgICAgICAiRFx1MDBlZGEgZW4gcXVlIHNlIGRhbiBBZ3VpbmFsZG9zIE5hdmlkZVx1MDBmMW9zIiB9LAorICAgICAgICB7ICAgIkNhbmFkYSBEYXkiLCAgICAgICAgICAgICAgICJEXHUwMGVkYSBkZWwgQ2FuYWRcdTAwZTEiIH0sCisgICAgICAgIHsgICAiQ2hyaXN0bWFzIEV2ZSIsICAgICAgICAgICAgIlZcdTAwRURzcGVyYSBkZSBOYXZpZGFkIiB9LAorICAgICAgICB7ICAgIkNocmlzdG1hcyIsICAgICAgICAgICAgICAgICJOYXZpZGFkIiB9LAorICAgICAgICB7ICAgIkNvbnN0aXR1dGlvbiBEYXkiLCAgICAgICAgICJEXHUwMGVkYSBkZSBsYSBDb25zdGl0dWNpXHUwMGYzbiIgfSwKKyAgICAgICAgeyAgICJEYXkgb2YgdGhlIERlYWQiLCAgICAgICAgICAiRFx1MDBlZGEgZGUgbG9zIE11ZXJ0b3MiIH0sCisgICAgICAgIHsgICAiRWFzdGVyIFN1bmRheSIsICAgICAgICAgICAgIlBhc2N1YSIgfSwKKyAgICAgICAgeyAgICJFYXN0ZXIgTW9uZGF5IiwgICAgICAgICAgICAiUGFzY3VhIEx1bmVzIiB9LAorICAgICAgICB7ICAgIkVwaXBoYW55IiwgICAgICAgICAgICAgICAgICJFcGlmYW5cdTAwZWRhIiB9LAorICAgICAgICB7ICAgIkZhdGhlcidzIERheSIsICAgICAgICAgICAgICJEXHUwMGVkYSBkZWwgUGFkcmUiIH0sCisgICAgICAgIHsgICAiRmxhZyBEYXkiLCAgICAgICAgICAgICAgICAgIkRcdTAwZWRhIGRlIGxhIEJhbmRlcmEiIH0sCisgICAgICAgIHsgICAiR29vZCBGcmlkYXkiLCAgICAgICAgICAgICAgIlZpZXJuZXMgU2FudG8iIH0sCisgICAgICAgIHsgICAiSGFsbG93ZWVuIiwgICAgICAgICAgICAgICAgInZcdTAwZWRzcGVyYSBkZSBUb2RvcyBsb3MgU2FudG9zIiB9LAorICAgICAgICB7ICAgIkluZGVwZW5kZW5jZSBEYXkiLCAgICAgICAgICJEXHUwMGVkYSBkZSBsYSBJbmRlcGVuZGVuY2lhIiB9LAorICAgICAgICB7ICAgIkxhYm9yIERheSIsICAgICAgICAgICAgICAgICJEXHUwMGVkYSBkZSBUcmFiYWphZG9yZXMiIH0sCisgICAgICAgIHsgICAiTWF1bmR5IFRodXJzZGF5IiwgICAgICAgICAgIkp1ZXZlcyBTYW50byIgfSwKKyAgICAgICAgeyAgICJNYXkgRGF5IiwgICAgICAgICAgICAgICAgICAiUHJpbWVybyBkZSBNYXlvIiB9LAorICAgICAgICB7ICAgIk1lbW9yaWFsIERheSIsICAgICAgICAgICAgICJEXHUwMGVkYSBkZSBsYSBSZW1lbW9yYWNpXHUwMGYzbiIgfSwKKyAgICAgICAgeyAgICJNb3RoZXIncyBEYXkiLCAgICAgICAgICAgICAiRFx1MDBlZGEgZGUgbGEgTWFkcmUiIH0sCisgICAgICAgIHsgICAiTmV3IFllYXIncyBEYXkiLCAgICAgICAgICAgIkFcdTAwZjFvIE51ZXZvIiB9LAorICAgICAgICB7ICAgIlBhbG0gU3VuZGF5IiwgICAgICAgICAgICAgICJEb21pbmdvIGRlIFJhbW9zIiB9LAorICAgICAgICB7ICAgIlBlbnRlY29zdCIsICAgICAgICAgICAgICAgICJQZW50ZWNvc3RcdTAwZTlzIiB9LAorICAgICAgICB7ICAgIlByZXNpZGVudHMnIERheSIsICAgICAgICAgICJEXHUwMGVkYSBkZSBQcmVzaWRlbnRlcyIgfSwKKyAgICAgICAgeyAgICJSZXZvbHV0aW9uIERheSIsICAgICAgICAgICAiRFx1MDBlZGEgZGUgbGEgUmV2b2x1Y2lcdTAwZjNuIiB9LAorICAgICAgICB7ICAgIlNocm92ZSBUdWVzZGF5IiwgICAgICAgICAgICJNYXJ0ZXMgZGUgQ2FybmF2YWwiIH0sCisgICAgICAgIHsgICAiVGhhbmtzZ2l2aW5nIiwgICAgICAgICAgICAgIkRcdTAwZWRhIGRlIEFjY2lcdTAwZjNuIGRlIEdyYWNpYXMiIH0sCisgICAgICAgIHsgICAiVmV0ZXJhbnMnIERheSIsICAgICAgICAgICAgIkRcdTAwZWRhIGRlIFZldGVyYW5vcyIgfSwKKyAgICAgICAgeyAgICJWaWN0b3JpYSBEYXkiLCAgICAgICAgICAgICAiRFx1MDBlZGEgZGUgVmljdG9yaWEiIH0sCisgICAgICAgIHsgICAiV2hpdCBTdW5kYXkiLCAgICAgICAgICAgICAgIlBlbnRlY29zdFx1MDBlOXMiIH0sCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VzX01YLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZXNfTVguamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYzUyZmNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2VzX01YLmphdmEKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2VzX01YIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19EQVksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkZFQlJVQVJZLCAgIDUsICAwLCAgICAiQ29uc3RpdHV0aW9uIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVJDSCwgICAgIDIxLCAgMCwgICAgIkJlbml0byBKdVx1MDBFMXJleiBEYXkiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5NQVlfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5NQVksICAgICAgICA1LCAgMCwgICAgIkNpbmNvIGRlIE1heW8iKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVORSwgICAgICAgMSwgIDAsICAgICJOYXZ5IERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5TRVBURU1CRVIsIDE2LCAgMCwgICAgIkluZGVwZW5kZW5jZSBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuT0NUT0JFUiwgICAxMiwgIDAsICAgICJEXHUwMEVEYSBkZSBsYSBSYXphIiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQUxMX1NBSU5UU19EQVksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgIDIsICAwLCAgICAiRGF5IG9mIHRoZSBEZWFkIiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk5PVkVNQkVSLCAgMjAsICAwLCAgICAiUmV2b2x1dGlvbiBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuREVDRU1CRVIsICAxMiwgIDAsICAgICJGbGFnIERheSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICB9OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgZkhvbGlkYXlzIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9mci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2ZyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDU2NDc3OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9mci5qYXZhCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfZnIgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICAgIkFsbCBTYWludHMnIERheSIsICAgICAgIlRvdXNzYWludCIgfSwKKyAgICAgICAgeyAgICJBcm1pc3RpY2UgRGF5IiwgICAgICAgICJKb3VyIGRlIGwnQXJtaXN0aWNlIiB9LAorICAgICAgICB7ICAgIkFzY2Vuc2lvbiIsICAgICAgICAgICAgIkFzY2Vuc2lvbiIgfSwKKyAgICAgICAgeyAgICJCYXN0aWxsZSBEYXkiLCAgICAgICAgICJGXHUwMEVBdGUgZGUgbGEgQmFzdGlsbGUiIH0sCisgICAgICAgIHsgICAiQmVuaXRvIEp1XHUwMEUxcmV6IERheSIsICAgICJGXHUwMEVBdGUgZGUgQmVuaXRvIEp1XHUwMEUxcmV6IiB9LAorICAgICAgICB7ICAgIkJveGluZyBEYXkiLCAgICAgICAgICAgIkxlbmRlbWFpbiBkZSBOb1x1MDBFQmwiIH0sCisgICAgICAgIHsgICAiQ2hyaXN0bWFzIEV2ZSIsICAgICAgICAiVmVpbGxlIGRlIE5vXHUwMEVCbCIgfSwKKyAgICAgICAgeyAgICJDaHJpc3RtYXMiLCAgICAgICAgICAgICJOb1x1MDBFQmwiIH0sCisgICAgICAgIHsgICAiRWFzdGVyIE1vbmRheSIsICAgICAgICAiUFx1MDBFMnF1ZXMgbHVuZGkiIH0sCisgICAgICAgIHsgICAiRWFzdGVyIFN1bmRheSIsICAgICAgICAiUFx1MDBFMnF1ZXMiIH0sCisgICAgICAgIHsgICAiRXBpcGhhbnkiLCAgICAgICAgICAgICAibCdcdTAwQzlwaXBoYW5pZSIgfSwKKyAgICAgICAgeyAgICJGbGFnIERheSIsICAgICAgICAgICAgICJGXHUwMEVBdGUgZHUgRHJhcGVhdSIgfSwKKyAgICAgICAgeyAgICJHb29kIEZyaWRheSIsICAgICAgICAgICJWZW5kcmVkaSBTYWludCIgfSwKKyAgICAgICAgeyAgICJIYWxsb3dlZW4iLCAgICAgICAgICAgICJWZWlsbGUgZGUgbGEgVG91c3NhaW50IiB9LAorICAgICAgICB7ICAgIkFsbCBTYWludHMnIERheSIsICAgICAgIlRvdXNzYWludCIgfSwKKyAgICAgICAgeyAgICJJbmRlcGVuZGVuY2UgRGF5IiwgICAgICJGXHUwMEVBdGUgSW5kXHUwMEU5cGVuZGFuY2UiIH0sCisgICAgICAgIHsgICAiTWF1bmR5IFRodXJzZGF5IiwgICAgICAiSmV1ZGkgU2FpbnQiIH0sCisgICAgICAgIHsgICAiTW90aGVyJ3MgRGF5IiwgICAgICAgICAiRlx1MDBFQXRlIGRlcyBtXHUwMEU4cmVzIiB9LAorICAgICAgICB7ICAgIk5hdGlvbmFsIERheSIsICAgICAgICAgIkZcdTAwRUF0ZSBOYXRpb25hbGUiIH0sCisgICAgICAgIHsgICAiTmV3IFllYXIncyBEYXkiLCAgICAgICAiSm91ciBkZSBsJ2FuIiB9LAorICAgICAgICB7ICAgIlBhbG0gU3VuZGF5IiwgICAgICAgICAgImxlcyBSYW1lYXV4IiB9LAorICAgICAgICB7ICAgIlBlbnRlY29zdCIsICAgICAgICAgICAgIlBlbnRlY1x1MDBGNHRlIiB9LAorICAgICAgICB7ICAgIlNocm92ZSBUdWVzZGF5IiwgICAgICAgIk1hcmRpIEdyYXMiIH0sCisgICAgICAgIHsgICAiU3QuIFN0ZXBoZW4ncyBEYXkiLCAgICAiU2FpbnQtXHUwMEM5dGllbm5lIiB9LAorICAgICAgICB7ICAgIlZpY3RvcmlhIERheSIsICAgICAgICAgIkZcdTAwRUF0ZSBkZSBsYSBWaWN0b3JpYSIgfSwKKyAgICAgICAgeyAgICJWaWN0b3J5IERheSIsICAgICAgICAgICJGXHUwMEVBdGUgZGUgbGEgVmljdG9pcmUiIH0sCisgICAgfTsKKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2ZyX0NBLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnJfQ0EuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZDM0Nzc3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2ZyX0NBLmphdmEKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2ZyX0NBIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5KQU5VQVJZLCAgICAxLCAgMCwgICAgICAgICAgICAgICAgICAiTmV3IFllYXIncyBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTUFZLCAgICAgICAxOSwgIDAsICAgICAgICAgICAgICAgICAgIlZpY3RvcmlhIERheSIpLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5KVU5FLCAgICAgIDI0LCAgMCwgICAgICAgICAgICAgICAgICAiTmF0aW9uYWwgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkpVTFksICAgICAgIDEsICAwLCAgICAgICAgICAgICAgICAgICJDYW5hZGEgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkFVR1VTVCwgICAgIDEsICBDYWxlbmRhci5NT05EQVksICAgICJDaXZpYyBIb2xpZGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLlNFUFRFTUJFUiwgIDEsICBDYWxlbmRhci5NT05EQVksICAgICJMYWJvdXIgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk9DVE9CRVIsICAgIDgsICBDYWxlbmRhci5NT05EQVksICAgICJUaGFua3NnaXZpbmciKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAxMSwgIDAsICAgICAgICAgICAgICAgICAgIlJlbWVtYnJhbmNlIERheSIpLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkNIUklTVE1BUywKKyAgICAgICAgU2ltcGxlSG9saWRheS5CT1hJTkdfREFZLAorICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19FVkUsCisKKyAgICAgICAgLy8gRWFzdGVyIGFuZCByZWxhdGVkIGhvbGlkYXlzCisgICAgICAgIEVhc3RlckhvbGlkYXkuR09PRF9GUklEQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX1NVTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfTU9OREFZLAorICAgIH07CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgImhvbGlkYXlzIiwgICBmSG9saWRheXMgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2ZyX0ZSLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfZnJfRlIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNDRhOWI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2ZyX0ZSLmphdmEKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLio7CitpbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2ZyX0ZSIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBTaW1wbGVIb2xpZGF5Lk5FV19ZRUFSU19EQVksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgIDEsICAwLCAiTGFib3IgRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgIDgsICAwLCAiVmljdG9yeSBEYXkiKSwKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSlVMWSwgICAgICAxNCwgIDAsICJCYXN0aWxsZSBEYXkiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5BU1NVTVBUSU9OLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkFMTF9TQUlOVFNfREFZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5OT1ZFTUJFUiwgIDExLCAgMCwgIkFybWlzdGljZSBEYXkiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5DSFJJU1RNQVMsCisKKyAgICAgICAgLy8gRWFzdGVyIGFuZCByZWxhdGVkIGhvbGlkYXlzCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX1NVTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5FQVNURVJfTU9OREFZLAorICAgICAgICBFYXN0ZXJIb2xpZGF5LkFTQ0VOU0lPTiwKKyAgICAgICAgRWFzdGVySG9saWRheS5XSElUX1NVTkRBWSwKKyAgICAgICAgRWFzdGVySG9saWRheS5XSElUX01PTkRBWSwKKyAgICB9OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgZkhvbGlkYXlzIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzEyYmRjNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pdC5qYXZhCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS51dGlsLkxpc3RSZXNvdXJjZUJ1bmRsZTsKKworcHVibGljIGNsYXNzIEhvbGlkYXlCdW5kbGVfaXQgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0KKyAgICB7CisgICAgICAgIHsgICAiQWxsIFNhaW50cycgRGF5IiwgICAgICAiT2duaXNzYW50aSIgfSwKKyAgICAgICAgeyAgICJBcm1pc3RpY2UgRGF5IiwgICAgICAgICJhcm1pc3RpemlvIiB9LAorICAgICAgICB7ICAgIkFzY2Vuc2lvbiIsICAgICAgICAgICAgImFzY2Vuc2lvbmUiIH0sCisgICAgICAgIHsgICAiQXNoIFdlZG5lc2RheSIsICAgICAgICAibWVyY29sZWRcdTAwZWMgZGVsbGUgY2VuZXJpIiB9LAorICAgICAgICB7ICAgIkJveGluZyBEYXkiLCAgICAgICAgICAgIlNhbnRvIFN0ZWZhbm8iIH0sCisgICAgICAgIHsgICAiQ2hyaXN0bWFzIiwgICAgICAgICAgICAibmF0YWxlIiB9LAorICAgICAgICB7ICAgIkVhc3RlciBTdW5kYXkiLCAgICAgICAgInBhc3F1YSIgfSwKKyAgICAgICAgeyAgICJFcGlwaGFueSIsICAgICAgICAgICAgICJFcGlmYW5pYSIgfSwKKyAgICAgICAgeyAgICJHb29kIEZyaWRheSIsICAgICAgICAgICJ2ZW5lcmRcdTAwZWMgc2FudG8iIH0sCisgICAgICAgIHsgICAiSGFsbG93ZWVuIiwgICAgICAgICAgICAidmlnaWxpYSBkaSBPZ25pc3NhbnRpIiB9LAorICAgICAgICB7ICAgIk1hdW5keSBUaHVyc2RheSIsICAgICAgImdpb3ZlZFx1MDBlYyBzYW50byIgfSwKKyAgICAgICAgeyAgICJOZXcgWWVhcidzIERheSIsICAgICAgICJhbm5vIG51b3ZvIiB9LAorICAgICAgICB7ICAgIlBhbG0gU3VuZGF5IiwgICAgICAgICAgImRvbWVuaWNhIGRlbGxlIHBhbG1lIiB9LAorICAgICAgICB7ICAgIlBlbnRlY29zdCIsICAgICAgICAgICAgImRpIFBlbnRlY29zdGUiIH0sCisgICAgICAgIHsgICAiU2hyb3ZlIFR1ZXNkYXkiLCAgICAgICAibWFydGVkaSBncmFzc28iIH0sCisgICAgICAgIHsgICAiU3QuIFN0ZXBoZW4ncyBEYXkiLCAgICAiU2FudG8gU3RlZmFubyIgfSwKKyAgICAgICAgeyAgICJUaGFua3NnaXZpbmciLCAgICAgICAgICJHaW9ybm8gZGVsIFJpbmdyYXppYW1lbnRvIiB9LAorCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pdF9JVC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l0X0lULmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTE5NjQ4ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pdF9JVC5qYXZhCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9pdF9JVCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfREFZLAorICAgICAgICBTaW1wbGVIb2xpZGF5LkVQSVBIQU5ZLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5BUFJJTCwgICAgICAxLCAgMCwgICAgIkxpYmVyYXRpb24gRGF5IiksCisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgIDEsICAwLCAgICAiTGFib3IgRGF5IiksCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQVNTVU1QVElPTiwKKyAgICAgICAgU2ltcGxlSG9saWRheS5BTExfU0FJTlRTX0RBWSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5JTU1BQ1VMQVRFX0NPTkNFUFRJT04sCisgICAgICAgIFNpbXBsZUhvbGlkYXkuQ0hSSVNUTUFTLAorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgIDI2LCAgMCwgICAgIlN0LiBTdGVwaGVucyBEYXkiKSwKKyAgICAgICAgU2ltcGxlSG9saWRheS5ORVdfWUVBUlNfRVZFLAorCisgICAgICAgIC8vIEVhc3RlciBhbmQgcmVsYXRlZCBob2xpZGF5cworICAgICAgICBFYXN0ZXJIb2xpZGF5LkVBU1RFUl9TVU5EQVksCisgICAgICAgIEVhc3RlckhvbGlkYXkuRUFTVEVSX01PTkRBWSwKKyAgICB9OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgICAgICAgICBmSG9saWRheXMgfSwKKyAgICB9OworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsgcmV0dXJuIGZDb250ZW50czsgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l3LmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL0hvbGlkYXlCdW5kbGVfaXcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41M2FiN2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l3LmphdmEKQEAgLTAsMCArMSwyMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9pdyBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBPYmplY3RbXVtdIGZDb250ZW50cyA9IHsKKyAgICAgICAgeyAgICIiLCAiIiAgfSwgICAgICAvLyBDYW4ndCBiZSBlbXB0eSEKKyAgICB9OworCisgICAgcHVibGljIHN5bmNocm9uaXplZCBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeyByZXR1cm4gZkNvbnRlbnRzOyB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pd19JTC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2l3X0lMLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2Q2MGIwOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9pd19JTC5qYXZhCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBjbGFzcyBIb2xpZGF5QnVuZGxlX2l3X0lMIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBIb2xpZGF5W10gZkhvbGlkYXlzID0geworICAgICAgICBIZWJyZXdIb2xpZGF5LlJPU0hfSEFTSEFOQUgsCisgICAgICAgIEhlYnJld0hvbGlkYXkuWU9NX0tJUFBVUiwKKyAgICAgICAgSGVicmV3SG9saWRheS5IQU5VS0tBSCwKKyAgICAgICAgSGVicmV3SG9saWRheS5QVVJJTSwKKyAgICAgICAgSGVicmV3SG9saWRheS5QQVNTT1ZFUiwKKyAgICAgICAgSGVicmV3SG9saWRheS5TSEFWVU9ULAorICAgICAgICBIZWJyZXdIb2xpZGF5LlNFTElIT1QsCisgICAgfTsKKworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIE9iamVjdFtdW10gZkNvbnRlbnRzID0geworICAgICAgICB7ICJob2xpZGF5cyIsICAgZkhvbGlkYXlzIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9qYV9KUC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ib2xpZGF5QnVuZGxlX2phX0pQLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTdlZjhmZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvSG9saWRheUJ1bmRsZV9qYV9KUC5qYXZhCkBAIC0wLDAgKzEsMjIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworaW1wb3J0IGphdmEudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgSG9saWRheUJ1bmRsZV9qYV9KUCBleHRlbmRzIExpc3RSZXNvdXJjZUJ1bmRsZSB7CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgSG9saWRheVtdIGZIb2xpZGF5cyA9IHsKKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuRkVCUlVBUlksICAxMSwgIDAsICAgICJOYXRpb25hbCBGb3VuZGF0aW9uIERheSIpLAorICAgIH07CisgICAgc3RhdGljIHByaXZhdGUgZmluYWwgT2JqZWN0W11bXSBmQ29udGVudHMgPSB7CisgICAgICAgIHsgICAiaG9saWRheXMiLCAgICAgICAgIGZIb2xpZGF5cyAgIH0sCisgICAgfTsKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7IHJldHVybiBmQ29udGVudHM7IH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvUmVzb3VyY2VSZWFkZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvUmVzb3VyY2VSZWFkZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYjJlZjYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9SZXNvdXJjZVJlYWRlci5qYXZhCkBAIC0wLDAgKzEsMjI5IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UuaW1wbC5kYXRhOworCitpbXBvcnQgamF2YS5pby4qOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBBIHJlYWRlciBmb3IgdGV4dCByZXNvdXJjZSBkYXRhIGluIHRoZSBjdXJyZW50IHBhY2thZ2Ugb3IgdGhlIHBhY2thZ2UKKyAqIG9mIGEgZ2l2ZW4gY2xhc3Mgb2JqZWN0LiAgVGhlCisgKiByZXNvdXJjZSBkYXRhIGlzIGxvYWRlZCB0aHJvdWdoIHRoZSBjbGFzcyBsb2FkZXIsIHNvIGl0IHdpbGwKKyAqIHR5cGljYWxseSBiZSBhIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoZSAqLmNsYXNzIGZpbGVzLCBvcgorICogYSBmaWxlIHdpdGhpbiBhIEpBUiBmaWxlIGluIHRoZSBjb3JyZXNwb25kaW5nIHN1YmRpcmVjdG9yeS4gIFRoZQorICogZmlsZSBtdXN0IGJlIGEgdGV4dCBmaWxlIGluIG9uZSBvZiB0aGUgc3VwcG9ydGVkIGVuY29kaW5nczsgd2hlbiB0aGUKKyAqIHJlc291cmNlIGlzIG9wZW5lZCBieSBjb25zdHJ1Y3RpbmcgYSA8Y29kZT5SZXNvdXJjZVJlYWRlcjwvY29kZT4KKyAqIG9iamVjdCB0aGUgZW5jb2RpbmcgaXMgc3BlY2lmaWVkLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworcHVibGljIGNsYXNzIFJlc291cmNlUmVhZGVyIHsKKyAgICBwcml2YXRlIEJ1ZmZlcmVkUmVhZGVyIHJlYWRlcjsKKyAgICBwcml2YXRlIFN0cmluZyByZXNvdXJjZU5hbWU7CisgICAgcHJpdmF0ZSBTdHJpbmcgZW5jb2Rpbmc7IC8vIG51bGwgZm9yIGRlZmF1bHQgZW5jb2RpbmcKKyAgICBwcml2YXRlIENsYXNzIHJvb3Q7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIG9uZS1iYXNlZCBsaW5lIG51bWJlci4gSGFzIHRoZSBzcGVjaWFsIHZhbHVlIC0xIGJlZm9yZSB0aGUKKyAgICAgKiBvYmplY3QgaXMgaW5pdGlhbGl6ZWQuIEhhcyB0aGUgc3BlY2lhbCB2YWx1ZSAwIGFmdGVyIGluaXRpYWxpemF0aW9uCisgICAgICogYnV0IGJlZm9yZSB0aGUgZmlyc3QgbGluZSBpcyByZWFkLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGxpbmVObzsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHJlYWRlciBvYmplY3QgZm9yIHRoZSB0ZXh0IGZpbGUgb2YgdGhlIGdpdmVuIG5hbWUKKyAgICAgKiBpbiB0aGlzIHBhY2thZ2UsIHVzaW5nIHRoZSBnaXZlbiBlbmNvZGluZy4KKyAgICAgKiBAcGFyYW0gcmVzb3VyY2VOYW1lIHRoZSBuYW1lIG9mIHRoZSB0ZXh0IGZpbGUgbG9jYXRlZCBpbiB0aGlzCisgICAgICogcGFja2FnZSdzICIuZGF0YSIgc3VicGFja2FnZS4KKyAgICAgKiBAcGFyYW0gZW5jb2RpbmcgdGhlIGVuY29kaW5nIG9mIHRoZSB0ZXh0IGZpbGU7IGlmIHVuc3VwcG9ydGVkCisgICAgICogYW4gZXhjZXB0aW9uIGlzIHRocm93bgorICAgICAqIEBleGNlcHRpb24gVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiBpZgorICAgICAqIDxjb2RlPmVuY29kaW5nPC9jb2RlPiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBKREsuCisgICAgICovCisgICAgcHVibGljIFJlc291cmNlUmVhZGVyKFN0cmluZyByZXNvdXJjZU5hbWUsIFN0cmluZyBlbmNvZGluZykKKyAgICAgICAgdGhyb3dzIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24geworICAgICAgICB0aGlzKElDVURhdGEuY2xhc3MsICJkYXRhLyIgKyByZXNvdXJjZU5hbWUsIGVuY29kaW5nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSByZWFkZXIgb2JqZWN0IGZvciB0aGUgdGV4dCBmaWxlIG9mIHRoZSBnaXZlbiBuYW1lCisgICAgICogaW4gdGhpcyBwYWNrYWdlLCB1c2luZyB0aGUgZGVmYXVsdCBlbmNvZGluZy4KKyAgICAgKiBAcGFyYW0gcmVzb3VyY2VOYW1lIHRoZSBuYW1lIG9mIHRoZSB0ZXh0IGZpbGUgbG9jYXRlZCBpbiB0aGlzCisgICAgICogcGFja2FnZSdzICIuZGF0YSIgc3VicGFja2FnZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgUmVzb3VyY2VSZWFkZXIoU3RyaW5nIHJlc291cmNlTmFtZSkgeworICAgICAgICB0aGlzKElDVURhdGEuY2xhc3MsICJkYXRhLyIgKyByZXNvdXJjZU5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHJlYWRlciBvYmplY3QgZm9yIHRoZSB0ZXh0IGZpbGUgb2YgdGhlIGdpdmVuIG5hbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gY2xhc3MncyBwYWNrYWdlLCB1c2luZyB0aGUgZ2l2ZW4gZW5jb2RpbmcuCisgICAgICogQHBhcmFtIHJlc291cmNlTmFtZSB0aGUgbmFtZSBvZiB0aGUgdGV4dCBmaWxlIGxvY2F0ZWQgaW4gdGhlCisgICAgICogZ2l2ZW4gY2xhc3MncyBwYWNrYWdlLgorICAgICAqIEBwYXJhbSBlbmNvZGluZyB0aGUgZW5jb2Rpbmcgb2YgdGhlIHRleHQgZmlsZTsgaWYgdW5zdXBwb3J0ZWQKKyAgICAgKiBhbiBleGNlcHRpb24gaXMgdGhyb3duCisgICAgICogQGV4Y2VwdGlvbiBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIGlmCisgICAgICogPGNvZGU+ZW5jb2Rpbmc8L2NvZGU+IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIEpESy4KKyAgICAgKi8KKyAgICBwdWJsaWMgUmVzb3VyY2VSZWFkZXIoQ2xhc3Mgcm9vdENsYXNzLCBTdHJpbmcgcmVzb3VyY2VOYW1lLCBTdHJpbmcgZW5jb2RpbmcpCisgICAgICAgIHRocm93cyBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIHsKKyAgICAgICAgdGhpcy5yb290ID0gcm9vdENsYXNzOworICAgICAgICB0aGlzLnJlc291cmNlTmFtZSA9IHJlc291cmNlTmFtZTsKKyAgICAgICAgdGhpcy5lbmNvZGluZyA9IGVuY29kaW5nOworICAgICAgICBsaW5lTm8gPSAtMTsKKyAgICAgICAgX3Jlc2V0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgIHB1YmxpYyBSZXNvdXJjZVJlYWRlcihJbnB1dFN0cmVhbSBpcywgU3RyaW5nIHJlc291cmNlTmFtZSkgeworICAgICAgICAgdGhpcy5yb290ID0gbnVsbDsKKyAgICAgICAgIHRoaXMucmVzb3VyY2VOYW1lID0gcmVzb3VyY2VOYW1lOworICAgICAgICAgdGhpcy5lbmNvZGluZyA9IG51bGw7CisKKyAgICAgICAgIHRoaXMubGluZU5vID0gLTE7CisgICAgICAgICB0cnkgeworICAgICAgICAgICAgIElucHV0U3RyZWFtUmVhZGVyIGlzciA9IChlbmNvZGluZyA9PSBudWxsKSAKKyAgICAgICAgICAgICAgICAgPyBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMpCisgICAgICAgICAgICAgICAgIDogbmV3IElucHV0U3RyZWFtUmVhZGVyKGlzLCBlbmNvZGluZyk7CisKKyAgICAgICAgICAgICB0aGlzLnJlYWRlciA9IG5ldyBCdWZmZXJlZFJlYWRlcihpc3IpOworICAgICAgICAgICAgIHRoaXMubGluZU5vPSAwOworICAgICAgICAgfQorICAgICAgICAgY2F0Y2ggKFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24gZSkgeworICAgICAgICAgfQorICAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSByZWFkZXIgb2JqZWN0IGZvciB0aGUgdGV4dCBmaWxlIG9mIHRoZSBnaXZlbiBuYW1lCisgICAgICogaW4gdGhlIGdpdmVuIGNsYXNzJ3MgcGFja2FnZSwgdXNpbmcgdGhlIGRlZmF1bHQgZW5jb2RpbmcuCisgICAgICogQHBhcmFtIHJlc291cmNlTmFtZSB0aGUgbmFtZSBvZiB0aGUgdGV4dCBmaWxlIGxvY2F0ZWQgaW4gdGhlCisgICAgICogZ2l2ZW4gY2xhc3MncyBwYWNrYWdlLgorICAgICAqLworICAgIHB1YmxpYyBSZXNvdXJjZVJlYWRlcihDbGFzcyByb290Q2xhc3MsIFN0cmluZyByZXNvdXJjZU5hbWUpIHsKKyAgICAgICAgdGhpcy5yb290ID0gcm9vdENsYXNzOworICAgICAgICB0aGlzLnJlc291cmNlTmFtZSA9IHJlc291cmNlTmFtZTsKKyAgICAgICAgdGhpcy5lbmNvZGluZyA9IG51bGw7CisgICAgICAgIGxpbmVObyA9IC0xOworICAgICAgICB0cnkgeworICAgICAgICAgICAgX3Jlc2V0KCk7CisgICAgICAgIH0gY2F0Y2ggKFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24gZSkge30KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkIGFuZCByZXR1cm4gdGhlIG5leHQgbGluZSBvZiB0aGUgZmlsZSBvciA8Y29kZT5udWxsPC9jb2RlPgorICAgICAqIGlmIHRoZSBlbmQgb2YgdGhlIGZpbGUgaGFzIGJlZW4gcmVhY2hlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHJlYWRMaW5lKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKGxpbmVObyA9PSAwKSB7CisgICAgICAgICAgICAvLyBSZW1vdmUgQk9NcworICAgICAgICAgICAgKytsaW5lTm87CisgICAgICAgICAgICBTdHJpbmcgbGluZSA9IHJlYWRlci5yZWFkTGluZSgpOworICAgICAgICAgICAgaWYgKGxpbmUuY2hhckF0KDApID09ICdcdUZGRUYnIHx8CisgICAgICAgICAgICAgICAgbGluZS5jaGFyQXQoMCkgPT0gJ1x1RkVGRicpIHsKKyAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbGluZTsKKyAgICAgICAgfQorICAgICAgICArK2xpbmVObzsKKyAgICAgICAgcmV0dXJuIHJlYWRlci5yZWFkTGluZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlYWQgYSBsaW5lLCBpZ25vcmluZyBibGFuayBsaW5lcyBhbmQgbGluZXMgdGhhdCBzdGFydCB3aXRoCisgICAgICogJyMnLgorICAgICAqIEBwYXJhbSB0cmltIGlmIHRydWUgdGhlbiB0cmltIGxlYWRpbmcgcnVsZSB3aGl0ZSBzcGFjZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHJlYWRMaW5lU2tpcHBpbmdDb21tZW50cyhib29sZWFuIHRyaW0pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIFN0cmluZyBsaW5lID0gcmVhZExpbmUoKTsKKyAgICAgICAgICAgIGlmIChsaW5lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGluZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFNraXAgb3ZlciB3aGl0ZSBzcGFjZQorICAgICAgICAgICAgaW50IHBvcyA9IFV0aWxpdHkuc2tpcFdoaXRlc3BhY2UobGluZSwgMCk7CisgICAgICAgICAgICAvLyBJZ25vcmUgYmxhbmsgbGluZXMgYW5kIGNvbW1lbnQgbGluZXMKKyAgICAgICAgICAgIGlmIChwb3MgPT0gbGluZS5sZW5ndGgoKSB8fCBsaW5lLmNoYXJBdChwb3MpID09ICcjJykgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gUHJvY2VzcyBsaW5lCisgICAgICAgICAgICBpZiAodHJpbSkgbGluZSA9IGxpbmUuc3Vic3RyaW5nKHBvcyk7CisgICAgICAgICAgICByZXR1cm4gbGluZTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogUmVhZCBhIGxpbmUsIGlnbm9yaW5nIGJsYW5rIGxpbmVzIGFuZCBsaW5lcyB0aGF0IHN0YXJ0IHdpdGgKKyAgICAgKiAnIycuIERvIG5vdCB0cmltIGxlYWRpbmcgcnVsZSB3aGl0ZSBzcGFjZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHJlYWRMaW5lU2tpcHBpbmdDb21tZW50cygpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiByZWFkTGluZVNraXBwaW5nQ29tbWVudHMoZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgb25lLWJhc2VkIGxpbmUgbnVtYmVyIG9mIHRoZSBsYXN0IGxpbmUgcmV0dXJuZWQgYnkKKyAgICAgKiByZWFkTGluZSgpIG9yIHJlYWRMaW5lU2tpcHBpbmdDb21tZW50cygpLiBTaG91bGQgb25seSBiZSBjYWxsZWQKKyAgICAgKiBhZnRlciBhIGNhbGwgdG8gb25lIG9mIHRoZXNlIG1ldGhvZHM7IG90aGVyd2lzZSB0aGUgcmV0dXJuCisgICAgICogdmFsdWUgaXMgdW5kZWZpbmVkLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TGluZU51bWJlcigpIHsKKyAgICAgICAgcmV0dXJuIGxpbmVObzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIGRlc2NyaXB0aW9uIG9mIHRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBsaW5lCisgICAgICogcmV0dXJuZWQgYnkgcmVhZExpbmUoKSBvciByZWFkTGluZVNraXBwaW5nQ29tbWVudHMoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGRlc2NyaWJlUG9zaXRpb24oKSB7CisgICAgICAgIHJldHVybiByZXNvdXJjZU5hbWUgKyAnOicgKyBsaW5lTm87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlc2V0IHRoaXMgcmVhZGVyIHNvIHRoYXQgdGhlIG5leHQgY2FsbCB0bworICAgICAqIDxjb2RlPnJlYWRMaW5lKCk8L2NvZGU+IHJldHVybnMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGZpbGUKKyAgICAgKiBhZ2Fpbi4gIFRoaXMgaXMgYSBzb21ld2hhdCBleHBlbnNpdmUgY2FsbCwgaG93ZXZlciwgY2FsbGluZworICAgICAqIDxjb2RlPnJlc2V0KCk8L2NvZGU+IGFmdGVyIGNhbGxpbmcgaXQgdGhlIGZpcnN0IHRpbWUgZG9lcworICAgICAqIG5vdGhpbmcgaWYgPGNvZGU+cmVhZExpbmUoKTwvY29kZT4gaGFzIG5vdCBiZWVuIGNhbGxlZCBpbgorICAgICAqIGJldHdlZW4uCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBfcmVzZXQoKTsKKyAgICAgICAgfSBjYXRjaCAoVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiBlKSB7fQorICAgICAgICAvLyBXZSBzd2FsbG93IHRoaXMgZXhjZXB0aW9uLCBpZiB0aGVyZSBpcyBvbmUuICBJZiB0aGUgZW5jb2RpbmcgaXMKKyAgICAgICAgLy8gaW52YWxpZCwgdGhlIGNvbnN0cnVjdG9yIHdpbGwgaGF2ZSB0aHJvd24gdGhpcyBleGNlcHRpb24gYWxyZWFkeSBhbmQKKyAgICAgICAgLy8gdGhlIGNhbGxlciBzaG91bGRuJ3QgdXNlIHRoZSBvYmplY3QgYWZ0ZXJ3YXJkcy4KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0byB0aGUgc3RhcnQgYnkgcmVjb25zdHJ1Y3RpbmcgdGhlIHN0cmVhbSBhbmQgcmVhZGVycy4KKyAgICAgKiBXZSBjb3VsZCBhbHNvIHVzZSBtYXJrKCkgYW5kIHJlc2V0KCkgb24gdGhlIHN0cmVhbSBvciByZWFkZXIsCisgICAgICogYnV0IHRoYXQgd291bGQgY2F1c2UgdGhlbSB0byBrZWVwIHRoZSBzdHJlYW0gZGF0YSBhcm91bmQgaW4KKyAgICAgKiBtZW1vcnkuICBXZSBkb24ndCB3YW50IHRoYXQgYmVjYXVzZSBzb21lIG9mIHRoZSByZXNvdXJjZSBmaWxlcworICAgICAqIGFyZSBsYXJnZSwgZS5nLiwgNDAway4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgX3Jlc2V0KCkgdGhyb3dzIFVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb24geworICAgICAgICBpZiAobGluZU5vID09IDApIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IElDVURhdGEuZ2V0U3RyZWFtKHJvb3QsIHJlc291cmNlTmFtZSk7CisgICAgICAgIGlmIChpcyA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDYW4ndCBvcGVuICIgKyByZXNvdXJjZU5hbWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBJbnB1dFN0cmVhbVJlYWRlciBpc3IgPQorICAgICAgICAgICAgKGVuY29kaW5nID09IG51bGwpID8gbmV3IElucHV0U3RyZWFtUmVhZGVyKGlzKSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMsIGVuY29kaW5nKTsKKyAgICAgICAgcmVhZGVyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKGlzcik7CisgICAgICAgIGxpbmVObyA9IDA7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ub2tlbkl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1Rva2VuSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzBhYjVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9Ub2tlbkl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxNTkgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBNYXJjaCAxNiAyMDA0CisqIFNpbmNlOiBJQ1UgMy4wCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS5pbXBsLmRhdGE7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKy8qKgorICogQW4gaXRlcmF0b3IgY2xhc3MgdGhhdCByZXR1cm5zIHN1Y2Nlc3NpdmUgc3RyaW5nIHRva2VucyBmcm9tIHNvbWUKKyAqIHNvdXJjZS4gIFN0cmluZyB0b2tlbnMgYXJlLCBpbiBnZW5lcmFsLCBzZXBhcmF0ZWQgYnkgcnVsZSB3aGl0ZQorICogc3BhY2UgaW4gdGhlIHNvdXJjZSB0ZXN0LiAgRnVydGhlcm1vcmUsIHRoZXkgbWF5IGJlIGRlbGltaXRlZCBieQorICogZWl0aGVyIHNpbmdsZSBvciBkb3VibGUgcXVvdGVzIChvcGVuaW5nIGFuZCBjbG9zaW5nIHF1b3RlcyBtdXN0CisgKiBtYXRjaCkuICBFc2NhcGVzIGFyZSBwcm9jZXNzZWQgdXNpbmcgc3RhbmRhcmQgSUNVIHVuZXNjYXBpbmcuCisgKi8KK3B1YmxpYyBjbGFzcyBUb2tlbkl0ZXJhdG9yIHsKKworICAgIHByaXZhdGUgUmVzb3VyY2VSZWFkZXIgcmVhZGVyOworICAgIHByaXZhdGUgU3RyaW5nIGxpbmU7CisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgYnVmOworICAgIHByaXZhdGUgYm9vbGVhbiBkb25lOworICAgIHByaXZhdGUgaW50IHBvczsKKyAgICBwcml2YXRlIGludCBsYXN0cG9zOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRva2VucyByZXR1cm5lZCBieSB0aGUgZ2l2ZW4KKyAgICAgKiBSZXNvdXJjZVJlYWRlciwgaWdub3JpbmcgYmxhbmsgbGluZXMgYW5kIGNvbW1lbnQgbGluZXMgKGZpcnN0CisgICAgICogbm9uLWJsYW5rIGNoYXJhY3RlciBpcyAnIycpLiAgTm90ZSB0aGF0IHRyYWlsaW5nIGNvbW1lbnRzIG9uIGEKKyAgICAgKiBsaW5lLCBiZWdpbm5pbmcgd2l0aCB0aGUgZmlyc3QgdW5xdW90ZWQgJyMnLCBhcmUgcmVjb2duaXplZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVG9rZW5JdGVyYXRvcihSZXNvdXJjZVJlYWRlciByKSB7CisgICAgICAgIHJlYWRlciA9IHI7CisgICAgICAgIGxpbmUgPSBudWxsOworICAgICAgICBkb25lID0gZmFsc2U7CisgICAgICAgIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcG9zID0gbGFzdHBvcyA9IC0xOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmV4dCB0b2tlbiBmcm9tIHRoaXMgaXRlcmF0b3IsIG9yIG51bGwgaWYgdGhlIGxhc3QKKyAgICAgKiB0b2tlbiBoYXMgYmVlbiByZXR1cm5lZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIG5leHQoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxpbmUgPSByZWFkZXIucmVhZExpbmVTa2lwcGluZ0NvbW1lbnRzKCk7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBvcyA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgbGFzdHBvcyA9IHBvczsKKyAgICAgICAgICAgIHBvcyA9IG5leHRUb2tlbihwb3MpOworICAgICAgICAgICAgaWYgKHBvcyA8IDApIHsKKyAgICAgICAgICAgICAgICBsaW5lID0gbnVsbDsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgb25lLWJhc2VkIGxpbmUgbnVtYmVyIG9mIHRoZSBsaW5lIG9mIHRoZSBsYXN0IHRva2VuIHJldHVybmVkIGJ5CisgICAgICogbmV4dCgpLiBTaG91bGQgb25seSBiZSBjYWxsZWQKKyAgICAgKiBhZnRlciBhIGNhbGwgdG8gbmV4dCgpOyBvdGhlcndpc2UgdGhlIHJldHVybgorICAgICAqIHZhbHVlIGlzIHVuZGVmaW5lZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExpbmVOdW1iZXIoKSB7CisgICAgICAgIHJldHVybiByZWFkZXIuZ2V0TGluZU51bWJlcigpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdHJpbmcgZGVzY3JpcHRpb24gb2YgdGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGxpbmUKKyAgICAgKiByZXR1cm5lZCBieSByZWFkTGluZSgpIG9yIHJlYWRMaW5lU2tpcHBpbmdDb21tZW50cygpLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZGVzY3JpYmVQb3NpdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHJlYWRlci5kZXNjcmliZVBvc2l0aW9uKCkgKyAnOicgKyAobGFzdHBvcysxKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVhZCB0aGUgbmV4dCB0b2tlbiBmcm9tICd0aGlzLmxpbmUnIGFuZCBhcHBlbmQgaXQgdG8KKyAgICAgKiAndGhpcy5idWYnLiAgVG9rZW5zIGFyZSBzZXBhcmF0ZWQgYnkgcnVsZSB3aGl0ZSBzcGFjZS4gIFRva2VucworICAgICAqIG1heSBhbHNvIGJlIGRlbGltaXRlZCBieSBkb3VibGUgb3Igc2luZ2xlIHF1b3Rlcy4gIFRoZSBjbG9zaW5nCisgICAgICogcXVvdGUgbXVzdCBtYXRjaCB0aGUgb3BlbmluZyBxdW90ZS4gIElmIGEgJyMnIGlzIGVuY291bnRlcmVkLAorICAgICAqIHRoZSByZXN0IG9mIHRoZSBsaW5lIGlzIGlnbm9yZWQsIHVubGVzcyBpdCBpcyBiYWNrc2xhc2gtZXNjYXBlZAorICAgICAqIG9yIHdpdGhpbiBxdW90ZXMuCisgICAgICogQHBhcmFtIHBvcyB0aGUgb2Zmc2V0IGludG8gdGhlIHN0cmluZworICAgICAqIEByZXR1cm4gb2Zmc2V0IHRvIHRoZSBuZXh0IGNoYXJhY3RlciB0byByZWFkIGZyb20gbGluZSwgb3IgaWYKKyAgICAgKiB0aGUgZW5kIG9mIHRoZSBsaW5lIGlzIHJlYWNoZWQgd2l0aG91dCBzY2FubmluZyBhIHZhbGlkIHRva2VuLAorICAgICAqIC0xCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dFRva2VuKGludCBwb3MpIHsKKyAgICAgICAgcG9zID0gVXRpbGl0eS5za2lwV2hpdGVzcGFjZShsaW5lLCBwb3MpOworICAgICAgICBpZiAocG9zID09IGxpbmUubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBpbnQgc3RhcnRwb3MgPSBwb3M7CisgICAgICAgIGNoYXIgYyA9IGxpbmUuY2hhckF0KHBvcysrKTsKKyAgICAgICAgY2hhciBxdW90ZSA9IDA7CisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICBjYXNlICciJzoKKyAgICAgICAgY2FzZSAnXCcnOgorICAgICAgICAgICAgcXVvdGUgPSBjOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJyMnOgorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGludFtdIHBvc3JlZiA9IG51bGw7CisgICAgICAgIHdoaWxlIChwb3MgPCBsaW5lLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBjID0gbGluZS5jaGFyQXQocG9zKTsgLy8gMTYtYml0IG9rCisgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgaWYgKHBvc3JlZiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHBvc3JlZiA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBvc3JlZlswXSA9IHBvcysxOworICAgICAgICAgICAgICAgIGludCBjMzIgPSBVdGlsaXR5LnVuZXNjYXBlQXQobGluZSwgcG9zcmVmKTsKKyAgICAgICAgICAgICAgICBpZiAoYzMyIDwgMCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiSW52YWxpZCBlc2NhcGUgYXQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5kZXNjcmliZVBvc2l0aW9uKCkgKyAnOicgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBjMzIpOworICAgICAgICAgICAgICAgIHBvcyA9IHBvc3JlZlswXTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoKHF1b3RlICE9IDAgJiYgYyA9PSBxdW90ZSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgKHF1b3RlID09IDAgJiYgVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICsrcG9zOworICAgICAgICAgICAgfSBlbHNlIGlmIChxdW90ZSA9PSAwICYmIGMgPT0gJyMnKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBvczsgLy8gZG8gTk9UIGluY3JlbWVudAorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGMpOworICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChxdW90ZSAhPSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiVW50ZXJtaW5hdGVkIHF1b3RlIGF0ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLmRlc2NyaWJlUG9zaXRpb24oKSArICc6JyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydHBvcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbl9EZWZpbml0aW9uLnR4dCBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSGFuX0xhdGluX0RlZmluaXRpb24udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4OWY3YjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL1RyYW5zbGl0ZXJhdG9yX0hhbl9MYXRpbl9EZWZpbml0aW9uLnR4dApAQCAtMCwwICsxLDU1Nzk4IEBACivvu78jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDb252ZXJ0IENKSyBjaGFyYWN0ZXJzLCBhY2NvcmRpbmcgdG8gdGhlIGRlZmludGlvbnMgaW4gQ0VESUNUIGFuZCBVbmloYW4udHh0CisjIE5vdGU6IGFkZHMgc3BhY2UgYmV0d2VlbiB0aGVtIGFuZCBsZXR0ZXJzLgoreyAoWzpIYW46XSkgfSBbOkw6XSA+IHwgJDEgJyAnOworW1wuXCxcP1wh77yO77yM77yf77yB44CB44CCWzpQZTpdWzpQZjpdXSB7IH0gWzpMOl0gPiAnICc7CitbOkw6XSB7IH0gW1s6SGFuOl1bOlBzOl1bOlBpOl1dPiAnICc7CisKK+iuiuaWhyA8IGFcLXBvcHVsYXJcLWZvcm1cLW9mXC1uYXJyYXRpdmVcLWxpdGVyYXR1cmVcLWZsb3VyaXNoaW5nXC1pblwtdGhlXC10YW5nXC1keW5hc3R5XC1cKDYxOFwtOTA3XClcLXdpdGhcLWFsdGVybmF0ZVwtcHJvc2VcLWFuZFwtcmh5bWVkXC1wYXJ0c1wtZm9yXC1yZWNpdGF0aW9uXC1hbmRcLXNpbmdpbmdcLVwob2Z0ZW5cLW9uXC1idWRkaGlzdGljXC10aGVtZXNcKTsKK+mCiuW5oyA8IGJvcmRlclwtcmVnaW9uXC1jdXJyZW5jeVwtXChjb25zaXN0aW5nXC1vZlwtdGhlXC1jdXJyZW5jeVwtbm90ZXNcLWlzc3VlZFwtYnlcLXRoZVwtYm9yZGVyXC1yZWdpb25cLWdvdmVybm1lbnRzXC1kdXJpbmdcLXRoZVwtd2FyXC1vZlwtcmVzaXN0YW5jZVwtYWdhaW5zdFwtamFwYW5cLWFuZFwtdGhlXC13YXJcLW9mXC1saWJlcmF0aW9uXCk7Civnm7TpgJrou4ogPCBcInRocm91Z2hcLXRyYWluXCJcLVwocmVmZXJzXC10b1wtdGhlXC1pZGVhXC1vZlwtcmV0YWluaW5nXC1wcmV2aW91c1wtbGVnaXNsYXR1cmVcLWFmdGVyXC10cmFuc2l0aW9uXC10b1wtY2hpbmVzZVwtcnVsZVwtaW5cLWhvbmdcLWtvbmdcLW9yXC1tYWNhdVwpOwor5bCP6Ief6ay8IDwgZGlydHlcLWxpdHRsZVwtbW9uc3RlclwtXChzcG9rZW5cLWFmZmVjdGlvbmF0ZWx5XC10b1wtYVwtY2hpbGRcLXdob1wtaGFzXC1nb3R0ZW5cLWhpbVwoaGVyXClzZWxmXC1kaXJ0eVw7XC1saXRlcmFsbHlcLVwibGl0dGxlXC1kaXJ0eVwtZ2hvc3RcIlwpOwor5q666Zue57Wm54y055yLIDwgXCJraWxsXC1hXC1jaGlja2VuXC1pblwtZnJvbnRcLW9mXC1hXC1tb25rZXlcIlwtXC1cLVwtbWFrZVwtYW5cLWV4YW1wbGVcLW91dFwtb2ZcLXNvbWVvbmVcLVwoYnlcLXB1bmlzaGluZ1wtdGhlbVwpXC10b1wtZnJpZ2h0ZW5cLW90aGVyczsKK+aKseiWquaVkeeBqyA8IGNhcnJ5XC1mYWdnb3RzXC10b1wtcHV0XC1vdXRcLWFcLWZpcmVcLVwtXC1hZG9wdFwtYVwtd3JvbmdcLW1ldGhvZFwtdG9cLXNhdmVcLWFcLXNpdHVhdGlvblwtYW5kXC1lbmRcLXVwXC1ieVwtbWFraW5nXC1pdFwtd29yc2U7CivkuI3opovmo7rmnZDkuI3okL3mt5ogPCBub3RcLXNoZWRcLWFcLXRlYXJcLXVudGlsXC1vbmVcLXNlZXNcLXRoZVwtY29mZmluXC1cLVwtcmVmdXNlXC10b1wtYmVcLWNvbnZpbmNlZFwtdW50aWxcLW9uZVwtaXNcLWZhY2VkXC13aXRoXC1ncmltXC1yZWFsaXR5Owor5ZCM5pyfIDwgdGhlXC1jb3JyZXNwb25kaW5nXC10aW1lXC1wZXJpb2RcLVwoZWdcLFwtY29tcGFyZVwtaW5mbGF0aW9uXC1ub3dcLXdpdGhcLXRoZVwtcmF0ZVwtZHVyaW5nXC10aGVcLXNhbWVcLW1vbnRoXC1sYXN0XC15ZWFyXCk7CivjoY4gPCB0aGVcLWxvbmdcLWJhbmRzXC1vclwtcmliYm9uc1wtYXR0cmFjaGVkXC10b1wtZmxhZ3NcLWFuZFwtYmFubmVyc1wtdGhlXC1mZWF0aGVyXC1kZWNvcmVjdGVkXC1jYXJyaWFnZXNcLW9yXC1kcmVzc2VzOwor6YOvIDwgbmFtZVwtb2ZcLWFcLXNtYWxsXC1hbmNpZW50XC1wcmluY2lwYWxpdHlcLXdoaWNoXC13YXNcLXNpdHVhdGVkXC1pblwtd2hhdFwtaXNcLW5vd1wtcGFydFwtb2ZcLXNoYW50dW5nXC1hbmRcLWtpYW5nc3U7Civmna/msLTou4rolqogPCB0cnlpbmdcLXRvXC1wdXRcLW91dFwtYVwtYnVybmluZ1wtY2FydGxvYWRcLW9mXC1mYWdnb3RzXC13aXRoXC1hXC1jdXBcLW9mXC13YXRlclwtXC1cLWFuXC11dHRlcmx5XC1pbmFkZXF1YXRlXC1tZWFzdXJlOwor5JCeIDwgdGhlXC10aGluXC1tZW1icmFuZVwtYmV0d2Vlblwtc2tpblwtYW5kXC1mbGVzaFwtdGhhdFwtcHJvdGVjdHNcLWludGVybmFsXC1vcmdhbnNcLW9yXC10aXNzdWVzXC1pblwtdGhlXC1odW1hblwtYm9keTsKK+WBj+WBjyA8IFwoaW5kaWNhdGVzXC10aGF0XC1zdGhcLlwtdHVybnNcLW91dFwtanVzdFwtdGhlXC1vcHBvc2l0ZVwtb2ZcLXdoYXRcLW9uZVwtd291bGRcLWV4cGVjdFwtb3JcLXdoYXRcLXdvdWxkXC1iZVwtbm9ybWFsXCk7CivmlaznpZ0gPCB0b1wtcmVzcGVjdGZ1bGx5XC1vZmZlclwtXCh3cml0dGVuXC1hdFwtdGhlXC1lbmRcLW9mXC1sZXR0ZXJcLWZyb21cLXNvbWVvbmVcLW9mXC1sb3dlclwtc3RhdHVzXC10b1wtaGlnaGVyXC1zdGF0dXNcKTsKK+WNnOi+rSA8IG9yYWNsZVwtaW5zY3JpcHRpb25zXC1vZlwtdGhlXC1zaGFuZ1wtZHluYXN0eVwtXCgxNnRoXC0xMXRoXC1jZW50dXJ5XC1iY1wpXC1vblwtdG9ydG9pc2VzaGVsbHNcLW9yXC1hbmltYWxcLWJvbmVzOwor55eF5oCl5LqC5oqV6YarIDwgdHVyblwtdG9cLWFueVwtZG9jdG9yXC1vbmVcLWNhblwtZmluZFwtd2hlblwtY3JpdGljYWxseVwtaWxsXC1cLVwtdHJ5XC1hbnl0aGluZ1wtd2hlblwtaW5cLWFcLWRlc3BlcmF0ZVwtc2l0dWF0aW9uOwor6L6v6Ki85pa95rK7IDwgZGlhZ25vc2lzXC1hbmRcLXRyZWF0bWVudFwtYmFzZWRcLW9uXC1hblwtb3ZlcmFsbFwtYW5hbHlzaXNcLW9mXC10aGVcLWlsbG5lc3NcLWFuZFwtdGhlXC1wYXRpZW50JydzXC1jb25kaXRpb247Civnj6ogPCBhXC1qYWRlXC10YWJsZVwtY29uZmVycmVkXC11cG9uXC1mZXVkYWxcLXByaW5jZXNcLWJ5XC10aGVcLWVtcGVyb3JcLWFzXC1hXC1zeW1ib2xcLW9mXC1kaWduaXR5XC1hbmRcLWF1dGhvcml0eTsKK+aVneW4muiHquePjSA8IHZhbHVlXC1vbmUnJ3NcLW93blwtb2xkXC1icm9vbVwtXC1cLWNoZXJpc2hcLXNvbWV0aGluZ1wtb2ZcLWxpdHRsZVwtdmFsdWVcLXNpbXBseVwtYmVjYXVzZVwtaXRcLWlzXC1vbmUnJ3NcLW93bjsKK+S4jeefpeWkqemrmOWcsOWOmiA8IG5vdFwta25vd1wtdGhlXC1pbW1lbnNpdHlcLW9mXC1oZWF2ZW5cLWFuZFwtZWFydGhcLVwtXC1oYXZlXC1hblwtZXhhZ2dlcmF0ZWRcLW9waW5pb25cLW9mXC1vbmUnJ3NcLWFiaWxpdGllczsKK+O6uiA8IGFcLXZlcnlcLXByZWNpb3VzXC1waWVjZVwtb2ZcLWphZGVcLXdvcm5cLWJ5XC1hbmNpZW50XC1lbXBlcm9yc1wtdG9cLW1hdGNoXC10YWJsZXNcLWJvcm5lXC1ieVwtdGhlXC1ub2JsZXM7CivkgJggPCB0b1wtY292ZXJcLXRoZVwtbGluZVwtb2ZcLXZpc2lvblwtb3JcLXNpZ2h0XC1cLVwtdGhlXC1zdHJhaWdodFwtbGluZVwtYmV0d2VlblwtYW5cLW9iamVjdFwtYW5kXC1vbmUnJ3NcLWV5ZXM7CivlhbXkuI3ooYDliIMgPCB0aGVcLWVkZ2VzXC1vZlwtdGhlXC1zd29yZHNcLW5vdFwtYmVpbmdcLXN0YWluZWRcLXdpdGhcLWJsb29kXC1cLVwtd2luXC12aWN0b3J5XC13aXRob3V0XC1maXJpbmdcLWFcLXNob3Q7CivjqKcgPCB3b29kZW5cLXN0aWNrXC1vclwtYmFtYm9vXC1jYW5lXC11c2VkXC10b1wtc3VwcG9ydFwtdGhlXC1jb3ZlcmluZ1wtb2ZcLWFcLWNhcnJpYWdlXC1pblwtYW5jaWVudFwtdGltZXM7CivjlKMgPCBpblwtYW5jaWVudFwtdGltZXNcLXRvXC1maWdodFwtYWdhaW5zdFwtdGhlXC1lbmVteVwtYnlcLXB1c2hpbmdcLWRvd25cLXRoZVwtYmlnXC1yb2Nrc1wtZnJvbVwtdXBcLWhpZ2g7CivmtJvlvrcgPCBcKHdpbnN0b25cKVwtbG9yZFwtXChmb3JtZXJcLWFzc2lzdGFudFwtc2VjcmV0YXJ5XC1vZlwtc3RhdGVcLWZvclwtZWFzdFwtYXNpYVwtYW5kXC1wYWNpZmljXC1hZmZhaXJzXCk7CivkuI3liLDpu4PmsrPlv4PkuI3mrbsgPCBub3RcLXN0b3BcLXVudGlsXC1vbmVcLXJlYWNoZXNcLXRoZVwtaHVhbmdoZVwtcml2ZXJcLVwtXC1ub3RcLXN0b3BcLXVudGlsXC1vbmVcLXJlYWNoZXNcLW9uZScnc1wtZ29hbDsKK+W9t+W+qCA8IG5hbWVcLW9mXC1hXC1jb2xsZWN0aW9uXC1vZlwtc2hvcnRcLXN0b3JpZXNcLFwtcGFuZ1wtaHVhbmdcLFwtXCJ3YW5kZXJpbmdcLWFib3V0XCJcLFwtYnlcLWx1M1wteHVuNFwt6a2v6L+FOwor5JqrIDwgb3JuYW1lbnRhbFwtYXJ0aWNsZXNcLW1hZGVcLW9mXC1ob3Juc1wtdXNlZFwtdG9cLWRlY29yYXRlXC10aGVcLXRvcFwtb2ZcLWFcLXN0aWNrXC1vclwtaG9yc2V3aGlwOwor6aSK5YWS6Ziy6ICBIDwgXChvZlwtcGFyZW50c1wpXC10b1wtYnJpbmdcLXVwXC1jaWhsZHJlblwtZm9yXC10aGVcLXB1cnBvc2VcLW9mXC1iZWluZ1wtbG9va2VkXC1hZnRlclwtaW5cLW9sZFwtYWdlOwor6Zmz5q+FIDwgY2hlblwteWlcLFwtZm9ybWVyXC1tYXlvclwtb2ZcLXNoYW5naGFpXC1hbmRcLWhpZ2hlc3RcLXJhbmtpbmdcLW1pbGl0YXJ5XC1jb21tYW5kZXJcLWluXC1jaGluYTsKK+e2uuiJsuS9syA8IGl0aGFjYVwsXC1ueVwtXChidXRcLXByb25vdW5jZWRcLXlpM1wtc2U0XC1qaWExXCxcLWZvbGxvd2luZ1wtYVwtbWlzdGFrZVwtbWFkZVwtYnlcLWh1Mlwtc2hpNFwt6IOh6YGpXCk7CivnrJAgPCBiYW1ib29zXC1wbGFjZWRcLWFjcm9zc1wtd29vZGVuXC1mcmFtZXNcLW9uXC13aGljaFwtZ3JhaW5cLW1heVwtYmVcLXN0b3JlZFwtaW5cLWRhbXBcLWNsaW1hdGVzOwor5KOeIDwgbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1zdGF0ZVwtd2hpY2hcLW9jY3VwaWVkXC10aGVcLXNpdGVcLW9mXC10aGVcLXByZXNlbnRcLXByb3ZpbmNlXC1vZlwtaHViZWk7Civkh7YgPCBhXC1zbWFsbFwtcmFmdGVyc1wtbWFkZVwtb2ZcLWJhbWJvb1wtd2hpY2hcLXByb2plY3RcLWZvcm1cLXRoZVwtZWF2ZXNcLWFuZFwtc3VwcG9ydFwtdGhlXC10aWxlczsKK+mbt+WzsOWhlCA8IGxlaWZlbmdcLXBhZ29kYVwsXC1ieVwtd2VzdFwtbGFrZVwtdW50aWxcLWl0XC13YXNcLWRlc3Ryb3llZFwtXChhbHNvXC1mcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlXCk7Civos6ggPCB0cmlidXRlXC1wYWlkXC1pblwtY2xvdGhcLWJ5XC10aGVcLXRyaWJlc1wtaW5cLXN6ZWNod2FuXC1hbmRcLXl1bm5hblwtdW5kZXJcLXRoZVwtaGFuXC1keW5hc3R5Owor5LiN5YWx5oi05aSpIDwgd2lsbFwtbm90XC1saXZlXC11bmRlclwtdGhlXC1zYW1lXC1za3lcLVwod2l0aFwtb25lJydzXC1lbmVteVwpXC1cLVwtYWJzb2x1dGVseVwtaXJyZWNvbmNpbGFibGU7CivnpqsgPCBzYWNyaWZpY2VcLW9mZmVyZWRcLWF0XC10aGVcLWVuZFwtb2ZcLXRoZVwtdGhyZWVcLXllYXJzJydcLW1vdXJuaW5nXC10aGVcLWRlYXRoXC1vZlwtYVwtcGFyZW50Owor5IKpIDwgYW5cLWluXC1zbGFiXC1vclwtaW5rXC1zdG9uZVwtc291bmRcLW9mXC1wZWJibGVzXC1vclwtc3RvbmVzXC1ydWJiaW5nXC1vclwta25vY2tpbmdcLXRvZ2V0aGVyOwor5IKNIDwgYVwta2luZFwtb2ZcLXdlYXBvblwtY2FycmllZFwtYnlcLXRoZVwtaG9ub3JcLWd1YXJkXC1iZWZvcmVcLXRoZVwtZW1wZXJvclwtaW5cLWFuY2llbnRcLXRpbWVzOwor5pOK5YW25oOw5q24IDwgYXZvaWRcLXRoZVwtZW5lbXlcLXdoZW5cLWhlXC1pc1wtZnJlc2hcLWFuZFwtc3RyaWtlXC1oaW1cLXdoZW5cLWhlXC1pc1wtdGlyZWRcLWFuZFwtd2l0aGRyYXdzOwor5L+d55Sy5Yi25bqmIDwgdGhlXC1iYW9cLWppYVwtc3lzdGVtXC1cKGFuXC1hZG1pbmlzdHJhdGl2ZVwtc3lzdGVtXC1vcmdhbml6ZWRcLW9uXC1iYXNpc1wtb2ZcLWhvdXNlaG9sZHNcKTsKK+WMheW3pSA8IHVuZGVydGFrZVwtdG9cLXBlcmZvcm1cLXdvcmtcLXdpdGhpblwtYVwtdGltZVwtbGltaXRcLWFuZFwtYWNjb3JkaW5nXC10b1wtc3BlY2lmaWNhdGlvbnM7Civpg6jpppYgPCByYWRpY2Fsc1wtYnlcLXdoaWNoXC1jaGFyYWN0ZXJzXC1hcmVcLWFycmFuZ2VkXC1pblwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLWRpY3Rpb25hcmllczsKK+mcuOS4uyA8IGFcLXBvd2VyZnVsXC1jaGllZlwtb2ZcLXRoZVwtcHJpbmNlc1wtb2ZcLXRoZVwtc3ByaW5nXC1hbmRcLWF1dHVtblwtcGVyaW9kXC1cKDc3MFwtNDc2XC1iY1wpOwor6KGIIDwgdGhlXC1ibG9vZFwtb2ZcLWFcLXNhY3JpZmljaWFsXC1mb3dsXC13aGljaFwtd2FzXC1zcHJpbmtsZWRcLW9uXC10aGVcLWRvb3JzXC1hbmRcLXZlc3NlbHM7Civjr6kgPCB0b1wtcHV0XC10aGVcLWdyb3dpbmdcLXVwXC1zaWxrd29ybXNcLWluXC1kaWZmZXJlbnRcLWZyYW1lc1wtYWNjb3JkaW5nXC10b1wtdGhlaXJcLXNpemVzOwor45qzIDwgYVwtbGFkeVwtdGVhY2hlclwtdG9cLXRlYWNoXC10aGVcLXByb3BlclwtcnVsZXNcLW9mXC1mZW1hbGVcLWJlaGF2aW9yXC1pblwtYW5jaWVudFwtdGltZXM7CivkuI3ovqjoj73puqUgPCBiZVwtdW5hYmxlXC10b1wtdGVsbFwtYmVhbnNcLWZyb21cLXdoZWF0XC1cLVwtaGF2ZVwtbm9cLWtub3dsZWRnZVwtb2ZcLXByYWN0aWNhbFwtbWF0dGVyczsKK+e1pSA8IHRvXC1oYXJuZXNzXC1hXC1ob3JzZVwtYVwtYm9hcmRcLWluXC1mcm9udFwtb2ZcLWFcLWNhcnJpYWdlXC1mb3JcLXRoZVwtZHJpdmVyXC10b1wtbGVhblwtb247Civki60gPCB0b1wtd2VhdmVcLXNpbGtcLWZhYnJpY3NcLXdpdGhcLWdyZWVuXC1jb2xvclwtZm9yXC1sb25naXR1ZGVcLWFuZFwtd2hpdGVcLWZvclwtbGF0aXR1ZGU7CivjrbwgPCBhXC1yZWN0YW5nbGVcLXNoYXBlZFwtcGVnXC1vclwtc2hvcnRcLXBvc3RcLWJldHdlZW5cLXRoZVwtYmVhbnNcLWFuZFwtdGhlXC1yb29mXC10aW1iZXJzOwor5oGt5Zac55m86LKhIDwgY29uZ3JhdHVsYXRpb25zXC1mb3JcLWdldHRpbmdcLXJpY2hcLVwodHJhZGl0aW9uYWxcLWNoaW5lc2VcLW5ld1wteWVhcicnc1wtZnV0dXJlXC11c2U7CivnkYQgPCBhXC1vcm5hbWVudGFsXC1waWVjZVwtb2ZcLWphZGVcLXNldmVyYWxcLWluY2hlc1wtYWNyb3NzXC13aXRoXC1hXC1ob2xlXC1pblwtdGhlXC1jZW50ZXI7CivniaHkuLnljaEgPCBwZW9ueVwtY2FyZFwtXChjcmVkaXRcLWNhcmRcLWlzc3VlZFwtYnlcLWluZHVzdHJpYWxcLWFuZFwtY29tbWVyY2lhbFwtYmFua1wtb2ZcLWNoaW5hXCk7CivkrKQgPCB0b1wtcHV0XC10aGVcLXRoaWNrXC1zb3VwXC1vclwtYnJvdGhcLW9uXC10b3BcLW9mXC10aGVcLXJpY2VcLXRoaWNrXC1jb25nZWVcLW9yXC1wb3JyaWRnZTsKK+WcqOaWvCA8IFwodGhlXC1wcm9ibGVtXC1vclwtZXhwbGFuYXRpb25cLW9yXC1hZHZhbnRhZ2VcLWV0Y1wuXClcLWxpZXNcLWluXC1cKHRoZVwtZmFjdFwtdGhhdFwuXC5cLlwpOwor5KWvIDwgYVwtZmFybVwtdG9vbFwtdG9cLWNydXNoXC10aGVcLWNsb2RcLW9mXC1lYXJ0aFwtaW50b1wtcGllY2VzXC1hbmRcLW1ha2VcLXRoZVwtbGFuZFwtZmxhdDsKK+SNliA8IGFcLWtpbmRcLW9mXC1uZXRcLWVxdWlwdGVkXC13aXRoXC10cmlja3lcLW1hY2hpbmVcLXVzZWRcLXRvXC1jYXRjaFwtYmlyZHNcLWFuZFwtYmVhc3RzOwor5aGe6Z+L6KOh6Ku+IDwgXFtqZWFuXC1taWNoZWxcXVwtc2V2ZXJpbm9cLVxbd29ybGRcLWJhbmtcLXZpY2VcLXByZXNpZGVudFwsXC1lYXN0XC1hc2lhXC1hbmRcLXBhY2lmaWNcXTsKK+SOrSA8IGFcLWtpbmRcLW9mXC1mYXJtXC10b29sXC1tYWRlXC1vZlwtdHdpc3RlZFwtdGhyb25cLXN0cmlwc1wtdXNlZFwtdG9cLWZsYXRlblwtdGhlXC1sYW5kOwor5pWZ6KiTIDwgXCh0ZWFjaFwtc29tZW9uZVwtb3JcLWxlYXJuXC1hXClcLWxlc3NvblwtXChpZVwsXC1vYnRhaW5cLXdpc2RvbVwtZnJvbVwtYW5cLWV4cGVyaWVuY2VcKTsKK+S4ieWylOWPoyA8IGF0XC10aGVcLWNyb3Nzcm9hZHNcLFwtdGhlXC1uYW1lXC1vZlwtYVwtZmFtb3VzXC1vcGVyYVwsXC1zdG9yeVwtZnJvbVwtc2h1aVwtaHVcLXpodWFuOwor562TIDwgYVwtaGFpcnBpblwtb25cLXdoaWNoXC10aGVcLWhhaXJcLWlzXC1ib3VuZFwtYXRcLXRoZVwtYmFja1wtb2ZcLXRoZVwtaGVhZFwuXC0xNVwtb2ZcLWFnZTsKK+adjuiHquaIkCA8IG5hbWVcLW9mXC1hXC1wZXJzb25cLFwtbGlcLXppXC1jaGVuZ1wsXC1sZWFkZXJcLW9mXC1taW5nXC1keW5hc3R5XC1wZWFzYW50XC1yZWJlbGxpb247CivmnInmnJ/lvpLliJEgPCBsaW1pdGVkXC10ZXJtXC1vZlwtaW1wcmlzb25tZW50XC1cKGllXCxcLWFueXRoaW5nXC1sZXNzXC10aGFuXC1saWZlXC1pbXByaXNvbm1lbnRcKTsKK+axn+WFq+m7niA8IFwiamlhbmdcLXplbWluJydzXC1laWdodFwtcG9pbnRcLWZvcm11bGFcIlwtXChmb3JcLXJlc3VtaW5nXC1hXC1kaWFsb2dcLXdpdGhcLXRhaXdhblwpOwor6YSn5Lqu5rSqIDwgdGFuZ1wtbGlhbmdcLWhvbmdcLVwob3Bwb3NpdGlvblwtY2FuZGlkYXRlXC1pblwtamFuXC0xOTk2XC1zaW5nYXBvcmVcLWVsZWN0aW9uc1wpOwor6ZaJ55uu5aGe6IG9IDwgc2h1dHNcLW9uZScnc1wtZXllc1wtYW5kXC1zdG9wXC11cFwtb25lJydzXC1lYXJzXC1cLVwtYmVcLW91dFwtb2ZcLXRvdWNoXC13aXRoXC1yZWFsaXR5Owor56yo6bOl5YWI6aObIDwgY2x1bXN5XC1iaXJkc1wtaGF2ZVwtdG9cLXN0YXJ0XC1mbHlpbmdcLWVhcmx5XC1cLVwtdGhlXC1zbG93XC1uZWVkXC10b1wtc3RhcnRcLWVhcmx5Owor466yIDwgYVwtc21hbGxcLXJpbmdcLW9yXC1hXC1zbWFsbFwtcGllY2VcLW9mXC1ib2FyZFwtYXR0YWNoZWRcLXRvXC10aGVcLW11enpsZVwtb2ZcLWFuXC1veDsKK+mngeWyuCA8IGFcLWxvd1wtc3RvbmVcLXdhbGxcLWJ1aWx0XC1hbG9uZ1wtdGhlXC13YXRlcicnc1wtZWRnZVwtdG9cLXByb3RlY3RcLWFuXC1lbWJhbmttZW50Owor55m+6IGe5LiN5aaC5LiA6KaLIDwgc2VlaW5nXC1mb3JcLW9uZXNlbGZcLWlzXC1hXC1odW5kcmVkXC10aW1lc1wtYmV0dGVyXC10aGFuXC1oZWFyaW5nXC1mcm9tXC1vdGhlcnM7Civoo5zms5UgPCB0cmVhdG1lbnRcLWludm9sdmluZ1wtdGhlXC11c2VcLW9mXC10b25pY3NcLXRvXC1yZXN0b3JlXC10aGVcLXBhdGllbnQnJ3NcLWhlYWx0aDsKK+S1uyA8IGFcLXNtYWxsXC10cmlwb2RcLW9mXC1icm9uemVcLXdpdGhcLXR3b1wtZWFyc1wtdHJpcG9kXC1vZlwtYnJvbnplXC13aXRoXC10d29cLWVhcnM7CivkuInkuI0gPCBcInRoZVwtdGhyZWVcLW5vJydzXCJcLVwoYW5cLWV4YW1wbGVcLW9mXC1hblwtYWJicmV2aWF0ZWRcLXNsb2dhblwtb3JcLWNhdGNocGhyYXNlXCk7Civnmb3mnK4gPCB0aGVcLXJoaXpvbWVcLW9mXC1sYXJnZVwtaGVhZGVkXC1hdHJhY3R5bG9kZXNcLVwoYXRyYWN0eWxvZGVzXC1tYWNyb2NlcGhhaWFcKTsKK+acrOiNiee2seebriA8IGFuXC1vdXRsaW5lXC10cmVhdGlzZVwtb2ZcLW1lZGljYWxcLWhlcmJzXCxcLWNvbXBpbGVkXC1ieVwtbGkzXC1zaGkyXC16aGVuMVwt5p2O5pmC54+NOwor546gIDwgbGFyZ2VcLWphZGVcLXRhYmxldFwtdXNlZFwtYnlcLW9mZmljaWFsc1wtYXRcLWNvdXJ0XC10b1wtaW5kaWNhdGVcLXRoZWlyXC1yYW5rczsKK+WQg+Wkp+aItiA8IG1hc3NcLXNlaXp1cmVcLW9mXC1mb29kXC1mcm9tXC1sYW5kbG9yZHNcLWR1cmluZ1wtZmFtaW5lc1wtYmVmb3JlXC1saWJlcmF0aW9uOwor5IKcIDwgcm9ja3lcLWZpbmVcLXN0b25lXC13aGljaFwtaXNcLWxpdHRsZVwtbGVzc1wtdmFsdWFibGVcLXRoYW5cLWphZGVcLXRvXC1jb2xsYXBzZTsKK+OhhiA8IGFuXC1hcnRpc2FuXC10b1wtc29mdGVuXC1yYXdcLXNpbGtcLWJ5XC1ib2lsaW5nXC1hbmRcLXRvXC1keWVcLXRoZVwtZHJlc3NlZFwtc2lsazsKK+adjuaZguePjSA8IGxpXC1zaGlcLXpoZW5cLVwoMTUxOFwtMTU5M1wsXC1mYW1vdXNcLWRvY3RvclwsXC1hdXRob3JcLW9mXC1iZW4zXC1jYW8zXC1nYW5nMVwtbXU0Owor5YW15by36aas5aOvIDwgc3Ryb25nXC1zb2xkaWVyc1wtYW5kXC1zdHVyZHlcLWhvcnNlc1wtXC1cLWFcLXdlbGxcLXRyYWluZWRcLWFuZFwtcG93ZXJmdWxcLWFybXk7Civoo44gPCB0b1wtdGFrZVwtb2ZmXC10aGVcLWNsb3RoZXNcLWFuZFwtZXhwb3NlXC10aGVcLWJvZHlcLlwtdG9cLWNhcnJ5XC1pblwtdGhlXC1naXJkbGU7CivpjosgPCB0aGVcLWxpbmNoXC1waW5cLW9mXC1hXC13aGVlbFwtdG9cLWdvdmVyblwtb3JcLWNvbnRyb2xcLXRoZVwtbm9pc2VcLW9mXC1hXC1iYXJyb3c7Civnpr3mtYHmhJ8gPCBcImJpcmRcLWZsdVwiXC1cKGZsdVwtY2FycmllZFwtYnlcLWJpcmRzXC1cLVwtZm91bmRcLWluXC1ob25nXC1rb25nXC1pblwtbGF0ZVwtMTk5N1wpOwor5KqQIDwgc29tZXRoaW5nXC1tYWRlXC1vZlwtYmFtYm9vXC1wdXRcLWluXC10aGVcLWJvd1wtY2FzZVwtdG9cLXByZXRlY3RcLWZyb21cLWRhbWFnZTsKK+alreS9meWkp+WtuCA8IGNvbGxlZ2VcLWZvclwtcGVvcGxlXC13aG9cLWF0dGVuZFwtYWZ0ZXJcLXdvcmtcLVwobGl0XC5cOlwtc3BhcmVcLXRpbWVcLWNvbGxlZ2VcKTsKK+SHrSA8IGNvbnRhaW5lcnNcLW1hZGVcLW9mXC10aGluXC1hbmRcLWxvbmdcLXN0cmlwXC1vZlwtYmFtYm9vXC1vclwtd2lsbG93XC1icmFuY2hlczsKK+OfrCA8IGFcLW1vdW50YWluXC1pblwtdG9kYXknJ3NcLXNoYW5kb25nXC1wcm92aW5jZVwtc291dGh3ZXN0XC1vZlwtbWVuZ3lpblwtY291bnR5Owor45qlIDwgdG9cLWJlY29tZVwtYXNzb2NpYXRlZFwtd2l0aFwtZWFjaFwtb3RoZXJcLWluXC1nb29kXC1tYW5uZXJzXC1hbmRcLXBvbGl0ZW5lc3M7CivlrqPliKQgPCBwcm9ub3VuY2VcLWFcLVwoanVkaWNpYWxcKVwtc2VudGVuY2VcLVwoYWZ0ZXJcLWFcLXZlcmRpY3RcLWluXC1hXC1jb3VydFwtb2ZcLWxhd1wpOwor6JKZ5Luj54i+IDwgXCh3YWx0ZXJcKVwtbW9uZGFsZVwtXCh1c1wtYW1iYXNzYWRvclwtdG9cLWphcGFuXCxcLWZvcm1lclwtdXNcLXZpY2VcLXByZXNpZGVudFwpOwor6Zmz57SN5b63IDwgXChjbGFpcmVcKVwtY2hlbm5hdWx0XCxcLWNvbW1hbmRlclwtb2ZcLWZseWluZ1wtdGlnZXJzXC1kdXJpbmdcLXdvcmxkXC13YXJcLWlpOwor55eF5Y+LIDwgYVwtZnJpZW5kXC1tYWRlXC1pblwtaG9zcGl0YWxcLW9yXC1wZW9wbGVcLXdob1wtYmVjb21lXC1mcmllbmRzXC1pblwtaG9zcGl0YWw7CivmjZXpoqjmjYnlvbEgPCBjaGFzZVwtdGhlXC13aW5kXC1hbmRcLWNsdXRjaFwtYXRcLXNoYWRvd3NcLVwtXC1tYWtlXC1ncm91bmRsZXNzXC1hY2N1c2F0aW9uczsKK+WwseaYryA8IFwoZW1waGFzaXplc1wtdGhhdFwtc29tZXRoaW5nXC1pc1wtcHJlY2lzZWx5XC1vclwtZXhhY3RseVwtd2hhdFwtaXNcLXN0YXRlZFwpOwor5KSeIDwgYVwta2luZFwtb2ZcLXdlYXBvbnNcLWhlbGRcLWJ5XC10aGVcLW9mZmljaWFsc1wtaW5cLWF0dGVuZGFuY2VcLWluXC1vbGRcLXRpbWVzOwor47mrIDwgYVwta2luZFwtb2ZcLWFuaW1hbFwtZ2VuZXJhbGx5XC1jYWxsZWRcLWZvclwtbWlub3JpdHlcLWdyb3Vwc1wtaW5cLW9sZFwtY2hpbmE7Civjs7sgPCBhXC1iYW5rXC1vZlwtZWFydGhcLW9yXC1hblwtZW1iYW5rbWVudFwtdG9cLWJsb2NrXC10aGVcLWN1cnJlbnRcLW9mXC10aGVcLXdhdGVyOwor46+iIDwgYVwtcGllY2VcLW9mXC1jcm9zc1wtd2lzZVwtYm9hcmRcLXVzZWRcLWZvclwtZnJhbWVcLW9uXC13aGljaFwtc2lsa3dvcm1zXC1zcGluOwor57at54i+5a65IDwgXChqb2hhbm5lc1wtbG9kZXdpa3VzXClcLXZpbGpvZW5cLVwoc291dGhcLWFmcmljYW5cLWFtYmFzc2Fkb3JcLXRvXC10YWl3YW5cKTsKK+iRm+a0suWjqSA8IG5hbWVcLW9mXC1hXC1wbGFjZVwsXC1nZXpob3ViYVwtZGFtXC1vblwtdGhlXC1jaGFuZ2ppYW5nXC1yaXZlclwsXC1pblwtc2ljaHVhbjsKK+SDmCA8IHNpbXBsZVwtYW5kXC1jcnVkZVwtdGhlXC1zb3VuZFwtb2ZcLXBlYmJsZXNcLW9yXC1zdG9uZXNcLWtub2NraW5nXC10b2dldGhlcjsKK+OwsSA8IHRvXC1zbWVhclwtdGhlXC1tb3V0aFwtd2l0aFwtdGhlXC1ibG9vZFwtb2ZcLWFcLXZpY3RpbVwtd2hlblwtdGFraW5nXC1hblwtb2F0aDsKK+S4jeWIhuW9vOatpCA8IG1ha2VcLW5vXC1kaXN0aW5jdGlvblwtYmV0d2Vlblwtd2hhdCcnc1wtb25lJydzXC1vd25cLWFuZFwtd2hhdCcnc1wtYW5vdGhlcicnczsKK+iAgemppeS8j+arquW/l+WcqOWNg+mHjCA8IFwobGl0XC5cKVwtYW5cLW9sZFwtc3RlZWRcLWluXC10aGVcLXN0YWJsZVwtc3RpbGxcLWFzcGlyZXNcLXRvXC1nYWxsb3BcLTEwMDBcLWxpOwor5aSn56a5IDwgZGFcLXl1XCxcLW5hbWVcLW9mXC1hblwtYW5jaWVudFwtaGVyb1wtd2hvXC1zdWNjZXNzZnVsbHlcLWNvbnRyb2xsZWRcLWZsb29kczsKK+eNryA8IGFcLXRyaWJlXC1vZlwtc2N5dGhpYW5zXC13aGljaFwtaW52YWRlZFwtY2hpbmFcLWR1cmluZ1wtdGhlXC1oc2lhXC1keW5hc3R5Owor6Z6UIDwgc2lkZXNcLW9yXC11cHBlcnNcLW9mXC1zaG9lc1wtdG9cLXN0cmV0Y2hcLWFcLXNraW5cLW9uXC1hXC1mcmFtZVwtZm9yXC1hXC1kcnVtOwor6KGo6K2JIDwgaWxsbmVzc1wtdGhhdFwtaGFzXC1ub3RcLWF0dGFja2VkXC10aGVcLXZpdGFsXC1vcmdhbnNcLW9mXC10aGVcLWh1bWFuXC1ib2R5Owor5ZyL6Zqb6Zu76Kmx6Zu75aCx6Kuu6Kmi5aeU5ZOh5pyDIDwgaW50ZXJuYXRpb25hbFwtY29uc3VsdGF0aXZlXC1jb21taXR0ZWVcLWZvclwtdGVsZXBob25lXC1hbmRcLXRlbGVncmFwaDsKK+S4jeefpeWHoeW5viA8IGNhbicndFwtdGVsbFwtaG93XC1tYW55XC10aGVyZVwtYXJlXC1cLVwtdGhlcmVcLWFyZVwtbnVtZXJvdXNcLXNpbWlsYXJcLWNhc2VzOwor5JW9IDwgdGhlXC1yaG9kb2RlbmRyb25cLVwtXC1cLWl0XC1pc1wtc2FpZFwtdG9cLWNhdXNlXC1zaGVlcFwtdG9cLXN0YWdnZXJcLWFuZFwtZGllOwor6by76Z+75q+NIDwgXChvZlwtY2hpbmVzZVwtcHJvbnVuY2lhdGlvblwpXC1hXC12b3dlbFwtZm9sbG93ZWRcLWJ5XC1hXC1uYXNhbFwtY29uc29uYW50Owor5bmr6ZaRIDwgaGFuZ1wtb25cLXRvXC1hbmRcLXNlcnZlXC10aGVcLXJpY2hcLWFuZFwtcG93ZXJmdWxcLWJ5XC1saXRlcmFyeVwtaGFja1wtd29yazsKK+mDnCA8IG5hbWVcLW9mXC1maWVmXC1pblwtc2hhbnRvbmdcLWJlc3Rvd2VkXC1vblwtdGhlXC1lbGRlc3RcLXNvblwtb2ZcLXdlblwtd2FuZzsKK+aPj+e0hSA8IHRvXC10cmFjZVwtb3ZlclwtcmVkXC1jaGFyYWN0ZXJzXC1cKGFzXC1hXC1tZXRob2RcLW9mXC1sZWFybmluZ1wtdG9cLXdyaXRlXCk7Civph5HmsLjljZcgPCBraW1cLXlvbmdcLW5hbVwtXChub3J0aFwta29yZWFuXC1kZXB1dHlcLXByZW1pZXJcLWFuZFwtZm9yZWlnblwtbWluaXN0ZXJcKTsKK+aKl+aIsCA8IHdhclwtb2ZcLXJlc2lzdGFuY2VcLFwtZXNwZWNpYWxseVwtdGhlXC13YXJcLWFnYWluc3RcLWphcGFuXC1cKDE5MzdcLTE5NDVcKTsKK+aKseaumOWuiOe8uiA8IGNoZXJpc2hcLXRoZVwtb3V0bW9kZWRcLWFuZFwtcHJlc2VydmVcLXRoZVwtb3V0d29yblwtXC1cLWJlXC1jb25zZXJ2YXRpdmU7CivplonloZ7nnLznnZvmjYnpurvpm4AgPCB0cnlcLXRvXC1jYXRjaFwtc3BhcnJvd3NcLXdpdGhcLW9uZScnc1wtZXllc1wtYmxpbmRmb2xkZWRcLVwtXC1hY3RcLWJsaW5kbHk7Civkjb8gPCBhXC1raW5kXC1vZlwtZGFuY2VcLWFjY29tcGFuaWVkXC1ieVwtbXVzaWNcLXBlcmZvcm1lZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5IyeIDwgYVwta25vdFwtdG9cLWhhbmdcLXRoZVwtYXBwYXJhdHVzXC1tYWRlXC1vZlwtcmVlZFwtZm9yXC1yYWlzaW5nXC1zaWxrd29ybXM7Civkh4kgPCBjYXBhY2l0eVwtdW5pdFwtaW5cLWZyYW5jZVwtZXF1YWxcLXRvXC1vbmVcLWh1bmRyZWRcLXRpbWVzXC1vZlwtb25lXC1saXRyZTsKK+O9iCA8IGFcLWxhcmdlXC1lYXJ0aGVud2FyZVwtamFyXC13aXRoXC1hXC1zbWFsbFwtbW91dGhcLWFuZFwtdHdvXC1vclwtZm91clwtZWFyczsKK+O5kCA8IHRvXC10b3dcLWFcLWJvYXRcLWFnYWluc3RcLXRoZVwtY3VycmVudFwtaW5cLXN3aWZ0XC1zdHJlYW1cLWZyb21cLXRoZVwtYmFuazsKK+ayhSA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXdlc3Rlcm5cLWh1bmFuXC10aGF0XC1mbG93c1wtaW50b1wtZG9uZ3RpbmdcLWxha2U7CivnsIsgPCBhXC1zcXVhcmVcLWJhc2tldFwtb2ZcLWJhbWJvb1wtZm9yXC1ob2xkaW5nXC1ncmFpblwtdXNlZFwtYXRcLXNhY3JpZmljZXM7CivkuI3osrvlkLnngbDkuYvlipsgPCBhc1wtZWFzeVwtYXNcLWJsb3dpbmdcLW9mZlwtZHVzdFwtXC1cLW5vdFwtbmVlZGluZ1wtdGhlXC1zbGlnaHRlc3RcLWVmZm9ydDsKK+aWl+aJueaUuSA8IHN0cnVnZ2xlXC1jcml0aWNpc21cLXRyYW5zZm9ybWF0aW9uXC1cKGN1bHR1cmFsXC1yZXZvbHV0aW9uXC1zbG9nYW5cKTsKK+mYv+S4jeS+huaPkFwu6Zi/5LiN6YO954ax6KW/5o+QIDwgYWJkdWxhaWRpXC1hbXVkdXJleGl0aVwtXChjaGFpcm1hblwtb2ZcLXhpbmppYW5nXC1hdXRvbm9tb3VzXC1yZWdpb25cKTsKK+m3tCA8IHNpbHZlclwtcGhlYXNhbnRcLWJhZGdlXC13b3JuXC1ieVwtY2l2aWxcLW9mZmljaWFsc1wtb2ZcLXRoZVwtNXRoXC1ncmFkZTsKK+WNmuWPpOmAmuS7iiA8IGNvbnZlcnNhbnRcLXdpdGhcLXRoaW5nc1wtcGFzdFwtYW5kXC1wcmVzZW50XC1cLVwtZXJ1ZGl0ZVwtYW5kXC1pbmZvcm1lZDsKK+iflSA8IGFcLXNwZWNpZXNcLW9mXC10b3J0b2lzZVwtZm91bmRcLW5lYXJcLXRoZVwtbW91dGhcLW9mXC10aGVcLXllbGxvd1wtcml2ZXI7Civku4rpn7MgPCBtb2Rlcm5cLVwoaVwuZVwuXC1ub3RcLWFuY2llbnRcKVwtcHJvbnVuY2lhdGlvblwtb2ZcLWFcLWNoaW5lc2VcLWNoYXJhY3RlcjsKK+aWr+eJueWHoeirvuaZrua0m+aWryA8IHN0ZXBoYW5vcG91bG9zXC1cKGVnXCxcLWZvcm1lclwtY2xpbnRvblwtYWlkZVwtZ2VvcmdlXC1zdGVwaGFub3BvdWxvc1wpOwor46yGIDwgcG9zdGh1bW91c1wtdGl0bGVcLWNvbmZlcnJlZFwtdXBvblwtZW1wZXJvcnNcLWFuZFwtZW1pbmVudFwtb2ZmaWNpYWxzOwor5LiN5YWl6JmO56m054SJ5b6X6JmO5a2QIDwgaG93XC1jYW5cLXlvdVwtY2F0Y2hcLXRpZ2VyXC1jdWJzXC13aXRob3V0XC1lbnRlcmluZ1wtdGhlXC10aWdlcicnc1wtbGFpcjsKK+menSA8IHRoZVwtcGllY2VcLW9mXC1sZWF0aGVyXC11c2VkXC1mb3JcLXNvbGVzXC1vblwtY2hpbmVzZVwtc2hvZXNcLlwtYVwtcGF0Y2g7CivlpKfprKflpKnlrq4gPCBcInRoZVwtbW9ua2V5XC1jcmVhdGVzXC1oYXZvY1wtaW5cLWhlYXZlblwiXCxcLXN0b3J5XC1hYm91dFwtc3VuXC13dVwta29uZzsKK+iUmyA8IGFcLXNtYWxsXC1vcmNoaWRcLWxpa2VcLXBsYW50XC1pdFwtYmVhcnNcLXdoaXRlXC1mbG93ZXJzXC1hXC1kZW5kcm9iaXVtOwor56uv5Y2I56+AIDwgdGhlXC1kcmFnb25cLWJvYXRcLWZlc3RpdmFsXC1cKHRoZVwtNXRoXC1kYXlcLW9mXC10aGVcLTV0aFwtbHVuYXJcLW1vbnRoXCk7CivksJkgPCBhblwtYW5jaWVudFwtdW5pdFwtb2ZcLWNhcGFjaXR5XC13aXRoXC10aHJlZVwtZmVldFwtYW5kXC1hXC1iaWdcLW9wZW5pbmc7CivklLkgPCBhXC1mdW5ndXNcLXdoaWNoXC1ncm93c1wtb25cLXJvdHRlblwtcGxhbnRzXC1hbmRcLWlzXC1lYXRlblwtd2hlblwtZnJlc2g7Civjr6MgPCBhXC1raW5kXC1vZlwtZnJhZ3JhbnRcLXRyZWVcLXVzZWRcLXRvXC1wcm9kdWNlXC1wZXJmdW1lXC1ieVwtYnVybmluZ1wtaXQ7Civjr6EgPCB0b1wtbGFjcXVlclwtc29tZVwta2luZFwtb2ZcLWFzaGVzXC1vblwtd29vZGVuXC1hcnRpY2Fsc1wtb3JcLWZ1cm5pdHVyZTsKK+aCsuWkqeaGq+S6uiA8IGJlbW9hblwtdGhlXC1zdGF0ZVwtb2ZcLXRoZVwtdW5pdmVyc2VcLWFuZFwtcGl0eVwtdGhlXC1mYXRlXC1vZlwtbWFua2luZDsKK+aDi+aDnCA8IHRvXC1mZWVsXC1zb3JyeVwtZm9yXC1hXC1wZXJzb25cLW92ZXJcLXN0aFwtdGhhdFwtc2hvdWxkXC1oYXZlXC1oYXBwZW5lZDsKK+WziyA8IHJhbmdlc1wtb2ZcLWhpbGxzXC1zdHJldGNoaW5nXC1vblwtYmV5b25kXC1hbm90aGVyXC1pcnJlZ3VsYXJcLXBlYWtzOwor5q2DIDwgc21lYXJcLW9uZScnc1wtbW91dGhcLXdpdGhcLWJsb29kXC1vZlwtYVwtdmljdGltXC13aGVuXC10YWtpbmdcLWFuXC1vYXRoOwor55m96Iyr6IyrIDwgXChvZlwtbWlzdFwsXC1zbm93XCxcLWZsb29kd2F0ZXJcLFwtZXRjXClcLWFcLXZhc3RcLWV4cGFuc2VcLW9mXC13aGl0ZW5lc3M7CivnnaXnnaggPCBsb29rXC1hdFwtc29tZWJvZHlcLWRpc2RhaW5mdWxseVwtb3V0XC1vZlwtdGhlXC1jb3JuZXJcLW9mXC1vbmUnJ3NcLWV5ZTsKK+e+lyA8IHRyaWJlc1wtaW5cLXdlc3RcLWNoaW5hXC1zdHJvbmdcLlwtZWR1Y2F0ZWRcLlwtb2JzdGluYXRlXC5cLWFcLXBhcnRpY2xlOwor6IOh6YGpIDwgaHVcLXNoaVwtXCgxODkxXC0xOTYyXClcLFwtb3JpZ2luYWxcLXByb3BvbmVudFwtb2ZcLWJhaTJcLWh1YTRcLXdlbjJcLeeZveipseaWhzsKK+i7jeWnlCA8IG1pbGl0YXJ5XC1jb21taXNzaW9uXC1vZlwtdGhlXC1jb21tdW5pc3RcLXBhcnR5XC1jZW50cmFsXC1jb21taXR0ZWU7CivkuI3mnI3msLTlnJ8gPCBcKG9mXC1hXC1zdHJhbmdlclwpXC1ub3RcLWFjY3VzdG9tZWRcLXRvXC10aGVcLWNsaW1hdGVcLW9mXC1hXC1uZXdcLXBsYWNlOwor5pav5L2p576FIDwgXChqb2FuXClcLXNwZXJvXC1cKHVuZGVyXC1zZWNyZXRhcnlcLW9mXC1zdGF0ZVwtZm9yXC1lY29ub21pY1wtYWZmYWlyc1wpOwor5LijIDwgYW5jaWVudFwtZm9ybVwtb2ZcLXRoZVwtdGVudGhcLW9mXC10aGVcLXR3ZWx2ZVwtdGVycmVzdHJpYWxcLWJyYW5jaGVzOwor5KGFIDwgc29tZXRoaW5nXC11c2VkXC10b1wtYmluZFwtdGhlXC1mcmFtZVwtd29ya1wtaW5cLWFcLWNhcnRcLW9mXC1vbGRcLXRpbWVzOwor5JqoIDwgYVwtc3RyaW5nXC1mYXN0ZW5lZFwtdG9cLWFuXC1hcnJvd1wtdG9cLWRyYXdcLWl0XC1iYWNrXC1hZnRlclwtc2hvb3Rpbmc7CivkjqAgPCB0b1wtdHdpc3RcLW9yXC10b1wtY3J1bXBsZVwtYmV0d2VlblwtaGFuZHNcLWFuZFwtbWFrZVwtc29tZXRoaW5nXC10dXJuOwor45+5IDwgdGhlXC1hcHBlYXJhbmNlXC1vZlwtYVwtbW91bnRhaW5cLWlzXC1sb2Z0eVwtYW5kXC1zdGVlcFwtYW5kXC1wcm9mb3VuZDsKK+OduCA8IGFcLWNvbmljYWxcLWNhcFwtd29yblwtb25cLWNlcmVtb25pb3VzXC1vY2Nhc2lvbnNcLWluXC1hbmNpZW50XC10aW1lczsKK+OZqCA8IHRoZVwtcm95YWxcLWRvbWFpbnNcLXNldFwtYXBhcnRcLWluXC1hbmNpZW50XC10aW1lc1wtZm9yXC10aGVcLWVtcGVyb3I7Civnh4jnr4AgPCB0aGVcLWxhbnRlcm5cLWZlc3RpdmFsXC1cKDE1dGhcLW9mXC1maXJzdFwtbW9udGhcLW9mXC1sdW5hclwtY2FsZW5kYXJcKTsKK+ihqSA8IHRoZVwtb3Blblwtc2VhbVwtb2ZcLWFcLWdhcm1lbnRcLXdoaWNoXC1hbGxvd3NcLWZyZWVkb21cLW9mXC1tb3ZlbWVudDsKK+WxuiA8IGFcLWhpbGxcLXdpdGhcLXRyZWVzXC1vclwtZ3Jhc3NcLVwtXC1zb21lXC1naXZlXC10aGVcLW9wcG9zaXRlXC1tZWFuaW5nOwor5YyX5rSLIDwgdGhlXC1xaW5nXC1keW5hc3R5XC1uYW1lXC1mb3JcLXRoZVwtY29hc3RhbFwtcHJvdmluY2VzXC1vZlwtbGlhb25pbmc7Civlhavml5cgPCB0aGVcLVwiZWlnaHRcLWJhbm5lcnNcIlwtXChtaWxpdGFyeVwtb3JnYW5pc2F0aW9uXC1pblwtcWluZ1wtZHluYXN0eVwpOwor5LamIDwgdXBwZXJcLWFuZFwtbG93ZXJcLXRlZXRoXC1pblwtb3JkZXJcLWFuZFwtY29ycmVzcG9uZGluZ1wtZWFjaFwtb3RoZXI7Civkp4IgPCB0b1wtdHVyblwtb3ZlclwtdGhlXC1jbG9kXC1vZlwtdGhlXC1lYXJ0aFwtd2l0aFwtYVwtc2hvdmVsXC1vclwtYVwtc3BhZGU7Civol6Tph44gPCBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLXRlbmdcLXllXCxcLWFcLWphcGFuZXNlXC1mcmllbmRcLW9mXC1sdTNcLXh1bjRcLemtr+i/hTsKK+iPr+ihqCA8IG1hcmJsZVwtcGlsbGFyXC1cKG9ybmFtZW50YWxcLWNvbHVtblwtaW5cLWZyb250XC1vZlwtcGxhY2VzXCxcLXRvbWJzXCk7CivlvoXmpa0gPCB0b1wtYXdhaXRcLWpvYlwtYXNzaWdubWVudFwtXCh0ZXJtXC11c2VkXC1vbmx5XC1pblwtbWFpbmxhbmRcLWNoaW5hXCk7CivlpKrmpbXmi7MgPCBhXC1raW5kXC1vZlwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLXNoYWRvd2JveGluZ1wtXCh0YWlcLWNoaVwtY2h1YW5cKTsKK+WTgOWFteW/heWLnSA8IGFuXC1hcm15XC1idXJuaW5nXC13aXRoXC1yaWdodGVvdXNcLWluZGlnbmF0aW9uXC1pc1wtYm91bmRcLXRvXC13aW47CivmnIPkuI3mnIMgPCBcKHBvc2luZ1wtYVwtcXVlc3Rpb25cOlwtd2hldGhlclwtc29tZW9uZVwsXC1zb21ldGhpbmdcKVwtY2FuXC1vclwtbm90Owor5omu55u4IDwgdGhlXC1hcHBlYXJhbmNlXC1vZlwtYW5cLWFjdG9yXC1vclwtYWN0cmVzc1wtaW5cLWNvc3R1bWVcLW9yXC1tYWtldXA7CivmirHkvZvohbMgPCBjbGFzcFwtYnVkZGEnJ3NcLWZlZXRcLVwtXC1wcm9mZXNzXC1kZXZvdGlvblwtb25seVwtd2hlblwtaW5cLXRyb3VibGU7CivlmZ4gPCB0aGVcLW1vdmVtZW50XC1vZlwtYVwtZmlzaCcnc1wtbW91dGhcLWF0XC10aGVcLXN1cmZhY2VcLW9mXC10aGVcLXdhdGVyOwor5ZS1IDwgdXNlZFwtaW5cLWJ1ZGRoaXN0XC10ZXh0c1wtdG9cLXRyYW5zbGl0ZXJhdGVcLW5vblwtY2hpbmVzZVwtc291bmRzOwor5KCCIDwgbmFtZVwtb2ZcLWFcLXBvd2VyZnVsXC1mZXVkYWxcLXN0YXRlXC13aGljaFwtZXhpc3RlZFwtNzQwXC0zMzBcLWJcLmNcLjsKK+SWtiA8IHRvXC1yYWlzZVwtdXBcLXRoZVwtbm9zZVwtaW5cLW9yZGVyXC10b1wtZ2V0XC10aGVcLWJ1Z3NcLWluXC10aGVcLWVhcnRoOwor6JuL6Iqx5rmvIDwgY2xlYXJcLXNvdXBcLWNvbnRhaW5pbmdcLWJlYXRlblwtZWdnXC1hbmRcLWdyZWVuXC1sZWFmeVwtdmVnZXRhYmxlOwor5ISbIDwgc2VydmljZVwtb3JcLXJpdGVzXC1vZlwtb2ZmZXJpbmdcLXNhY3JpZmljZXNcLWZvclwtZHJpbmtcLWFuZFwtZm9vZDsKK+O8sCA8IGFuXC1lYXJ0aGVud2FyZVwtamFyXC13aXRoXC1hXC1zbWFsbFwtbW91dGhcLWFuZFwtdHdvXC1vclwtZm91clwtZWFyczsKK+O4liA8IGhpZGVcLW9yXC10b1wta2VlcFwtaW5cLXN0b3JlXC10aGVcLXZlZ2V0YWJsZVwtaW5cLWNvbGRcLXdpbnRlclwtZGF5czsKK+O3nyA8IHRvXC1zY2FsZFwtdGhlXC1icmlzdGxlc1wtb2ZmXC1hXC1waWdcLW9yXC10aGVcLWZlYXRoZXJzXC1vZmZcLWFcLWJpcmQ7CivjsIcgPCB0aGVcLXNxdWFyZVwtcGVja1wtc2hhcGVkXC1ib3hcLWhhbGZcLXdheVwtdXBcLWFcLWNoaW5lc2VcLWZsYWdzdGFmZjsKK+OmvCA8IGFcLXdvb2RlblwtcGlsZXNcLXVzZWRcLWFzXC1hXC1jYWJsZVwtdG9cLW1ha2VcLWltbW92YWJsZVwtb2ZcLWFcLWJvYXQ7CivjoqcgPCBhXC1ib29rXC1vclwtcGFpbnRpbmdcLXdoaWNoXC1jYW5cLWJlXC1lYXNpbHlcLWZvbGRlZFwtb3JcLXJvbGxlZFwtdXA7Civph5HlsbHlr7ogPCBqaW5zaGFuXC10ZW1wbGVcLFwtd2hlcmVcLWZhaGFpXC1saXZlc1wtXChmcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlXCk7CivkuKbokoLok64gPCB0d2luXC1sb3R1c1wtZmxvd2Vyc1wtb25cLW9uZVwtc3RhbGtcLVwtXC1hXC1kZXZvdGVkXC1tYXJyaWVkXC1jb3VwbGU7CivmrabooZMgPCB3dXNodVwsXC1tYXJ0aWFsXC1hcnRzXC1zdWNoXC1hc1wtc2hhZG93XC1ib3hpbmdcLFwtc3dvcmRwbGF5XCxcLWV0Y1wuOwor5Lit5YWxIDwgXChhYmJyZXZpYXRpb25cLWZvclwpXC1jaGluZXNlXC1jb21tdW5pc3RcLVwocGFydHlcLFwtcmVnaW1lXCxcLWV0Y1wuXCk7CivpkrIgPCBraW5kXC1vZlwtZ29uZ1wtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzXC1ieVwtdHJvb3BzXC1vblwtdGhlXC1tYXJjaDsKK+aUv+WNlCA8IGNwcGNjXC1cKGNoaW5lc2VcLXBlb3BsZScnc1wtcG9saXRpY2FsXC1jb25zdWx0YXRpdmVcLWNvbW1pdHRlZVwpOwor5o6h5Y+WIDwgYWRvcHRcLW9yXC1jYXJyeVwtb3V0XC1cKG1lYXN1cmVzXCxcLXBvbGljaWVzXCxcLWNvdXJzZVwtb2ZcLWFjdGlvblwpOwor55mf5LiJIDwgYVwtd3JldGNoZWRcLWxvb2tpbmdcLXRyYW1wXC13aG9cLWxpdmVzXC1ieVwtYmVnZ2luZ1wtb3JcLXN0ZWFsaW5nOwor6KGo5YWEIDwgbWFsZVwtY291c2luXC13aXRoXC1hXC1kaWZmZXJlbnRcLXN1cm5hbWVcLVwob2xkZXJcLXRoYW5cLW9uZXNlbGZcKTsKK+efm+mgreaMh+WQkSA8IHRhcmdldFwtc29tZW9uZVwtb3JcLXNvbWV0aGluZ1wtXChmb3JcLWF0dGFja1wsXC1jcml0aWNpc21cLFwtZXRjXC5cKTsKK+S7meiNiSA8IGFcLWtpbmRcLW9mXC1wbGFudFwtdXNlZFwtYXNcLWFcLW1lZGljaW5hbFwtaGVyYlwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KqzIDwgc2xhbnRlZFwtZmFjZVwtY2F1c2luZ1wtYnlcLXRoZVwtcGFyYWx5emVkXC1vZlwtdGhlXC1mYWNpYWxcLW5lcnZlOwor5p2/6IOhIDwgYVwtYm93ZWRcLXN0cmluZ2VkXC1pbnN0cnVtZW50XC13aXRoXC1hXC10aGluXC13b29kZW5cLXNvdW5kYm9hcmQ7CivknosgPCB0b1wtZG9cLWFsbXNcLWZvclwtdGhlXC1idWRkaGlzdFwtcHJpZXN0c1wtb3JcLW1vbmtzXC1pblwtb2xkXC10aW1lczsKK+SZhiA8IHNsaXRzXC1vblwtdGhlXC1sb3dlclwtcGFydFwtb2ZcLWFcLWdvd25cLWZvclwtZnJlZWRvbVwtb2ZcLW1vdmVtZW50Owor5ICPIDwgdG9cLW1vdmVcLW9uZScnc1wtZXllc1wtdG9cLWV4cHJlc3NcLW9yXC1pbmRpY2F0ZVwtd2l0aFwtZXllc1wtZGl6enk7Civjv4QgPCB0aGVcLWdyb2Fuc1wtb3JcLW1vYW5zXC1mcm9tXC1hXC1wZXJzb25cLWluXC1hXC1jcml0aWNhbFwtY29uZGl0aW9uOwor47aPIDwgYW5cLWFuY2llbnRcLW5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWhlbmFuXC1wcm92aW5jZVwtZGVuZ2Zlbmd4aWFuOwor47OHIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLWppYW5nc3VcLXByb3ZpbmNlXC15aXhpbmdcLWNvdW50eTsKK+OriyA8IGFcLXNpbGtlblwtYmFubmVyXC1oYW5naW5nXC1mcm9tXC1hXC1zdGFmZlwtYmVudFwtb3ZlclwtYXRcLXRoZVwtdG9wOwor5pav5Y2h5Lyv5YuS56SBIDwgc2NhcmJvcm91Z2hcLXNob2FsXC1cKHBoaWxpcHBpbmVzJydcLW5hbWVcLWZvclwtaHVhbmd5YW5cLWlzbGFuZFwpOwor5LiN5oGl5LiL5ZWPIDwgbm90XC1mZWVsXC1hc2hhbWVkXC10b1wtYXNrXC1hbmRcLWxlYXJuXC1mcm9tXC1vbmUnJ3NcLXN1Ym9yZGluYXRlczsKK+eLvSA8IGFcLWxlZ2VuZGFyeVwtYW5pbWFsXC13aXRoXC1zaG9ydFwtZm9yZWxlZ3NcLXdoaWNoXC1yb2RlXC1hXC13b2xmOwor5q2QIDwgdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGluZ1wtbm9uXC1jaGluZXNlXC13b3Jkc1wtc3VjaFwtYXNcLWV1cm9wZTsKK+axqCA8IG1pXC1yaXZlclwtaW5cLWh1bmFuXC1wcm92aW5jZVwtd2hlcmVcLXF1XC15dWFuXC1kcm93bmVkXC1oaW1zZWxmOwor5rGcIDwgYVwtc3RyZWFtXC13aGljaFwtbGVhdmVzXC10aGVcLW1haW5cLWJyYW5jaFwtdGhlblwtbGF0ZXJcLXJldHVybnM7CivljaHmi4lPSyA8IGthcmFva2VcLVwoc2luZ2luZ1wtdG9cLXJlY29yZGVkXC1pbnN0cnVtZW50YWxcLWFjY29tcGFuaW1lbnRcKTsKK+S4reWci+awkeiIqiA8IGdlbmVyYWxcLWFkbWluaXN0cmF0aW9uXC1vZlwtY2l2aWxcLWF2aWF0aW9uXC1vZlwtY2hpbmFcLVwoY2FhY1wpOwor6KOc6aSKIDwgdGFrZVwtYVwtdG9uaWNcLW9yXC1ub3VyaXNoaW5nXC1mb29kXC10b1wtYnVpbGRcLXVwXC1vbmUnJ3NcLWhlYWx0aDsKK+aymeWIqeenkeS7gOe2reWIqSA8IGdlbmVyYWxcLXNoYWxpa2FzaHZpbGlcLVwoaGVhZFwtb2ZcLXVzXC1qb2ludFwtY2hpZWZzXC1vZlwtc3RhZmZcKTsKK+ewiCA8IGJhbWJvb1wtbWF0XC11c2VkXC10b1wtcHJvdGVjdFwtY2FycmlhZ2VcLXBhc3NlbmdlcnNcLWZyb21cLWR1c3Q7CivniLwgPCBhXC1zbWFsbFwtdGFibGVcLW9yXC10aWVyZWRcLXN0YW5kXC1maWxsZWRcLXdpdGhcLW1lYXRcLW9mZmVyaW5nczsKK+S4ieWci+a8lOe+qSA8IG5hbWVcLW9mXC1hXC1jbGFzc2ljXC1ub3ZlbFwsXC1cInJvbWFuY2VcLW9mXC10aGVcLXRocmVlXC1raW5nZG9tc1wiOwor5ou85ZG9IDwgdG9cLWJlXC1yZWFkeVwtdG9cLXJpc2tcLW9uZScnc1wtbGlmZVwtXChpblwtZmlnaHRpbmdcLFwtd29ya1wsXC1ldGNcLlwpOwor6IOM5rC05LiA5oiwIDwgZmlnaHRcLXdpdGhcLW9uZScnc1wtYmFja1wtdG9cLXRoZVwtcml2ZXJcLVwtXC1maWdodFwtdG9cLXdpblwtb3JcLWRpZTsKK+SzmiA8IGFcLXNvcnRcLW9mXC1uaWdodGluZ2FsZVwtd2hpY2hcLWlzXC1zYWlkXC10b1wtc2luZ1wtZm9yXC10aGVcLWRhd247CivkoYIgPCB0aGVcLWxvbmdcLXdvb2RlblwtYnVtcGVyXC1hdFwtdGhlXC1yZWFyXC1vZlwtYVwtY2FydFwtb3JcLWNhcnJpYWdlOwor5p2v5byT6JuH5b2xIDwgbWlzdGFraW5nXC10aGVcLXJlZmxlY3Rpb25cLW9mXC1hXC1ib3dcLWluXC10aGVcLWN1cFwtZm9yXC1hXC1zbmFrZTsKK+SDviA8IHRvXC1vZmZlclwtc21hbGxcLXBpZ1wtYXNcLXNhY3JpZmljZVwtd2hlblwtd2Fyc2hpcFwtZ29kXC1vZlwtbGlmZTsKK+O8qiA8IGZyYWdtZW50c1wtb2ZcLWFcLXRpbGVcLWhhdmVuJyd0XC10XC1iZWVuXC1raWxuXC1kcmllZFwtY29tcGxldGVseTsKK+O0liA8IG5hbWVcLW9mXC1hXC1zdHJlYW1cLWluXC1zaGFuZG9uZ1wtcHJvdmluY2VcLXNvdXRod2VzdFwtb2ZcLWppbmFuOwor452JIDwgc3BhY2VcLWJldHdlZW5cLXRoZVwtdGhyb25lXC1hbmRcLXRoZVwtcmV0aXJpbmdcLXJvb21cLWJlaGluZFwtaXQ7CivjlqsgPCB1c2VkXC1pblwtbmFtZXNcLWZvclwtbWlub3JpdHlcLWV0aG5pY1wtZ3JvdXBcLWluXC1hbmNpZW50XC1jaGluYTsKK+iDjOS6lemboumEiSA8IGxlYXZlXC1vbmUnJ3NcLW5hdGl2ZVwtcGxhY2VcLVwoZXNwZWNpYWxseVwtYWdhaW5zdFwtb25lJydzXC13aWxsXCk7Civngp0gPCBzdGlyXC1mcnlcLW9yXC1ib2lsXC1pblwtd2F0ZXJcLW9yXC1vaWxcLXRoZW5cLWNvb2tcLXdpdGhcLWFcLXNhdWNlOwor6YG35oCSIDwgdG9cLXRha2VcLW9uZScnc1wtYW5nZXJcLW91dFwtb25cLXNiXC1cKHdob1wtZG9lc1wtbm90XC1kZXNlcnZlXC1pdFwpOwor5rOi54C+6LW35LyPIDwgb2ZcLWFcLXBpZWNlXC1vZlwtd3JpdGluZ1wtd2l0aFwtb25lXC1jbGltYXhcLWZvbGxvd2luZ1wtYW5vdGhlcjsKK+S4jeeCuuW3sueUmiA8IHJlZnJhaW5cLWZyb21cLWdvaW5nXC10b1wtZXh0cmVtZXNcLWluXC1tZXRpbmdcLW91dFwtcHVuaXNobWVudDsKK+S4jee0hOiAjOWQjCA8IHRha2VcLXRoZVwtc2FtZVwtYWN0aW9uXC1vclwtdmlld1wtd2l0aG91dFwtcHJpb3JcLWNvbnN1bHRhdGlvbjsKK+mjm+iZjumaiiA8IGZseWluZ1wtdGlnZXJzXC1cKHVzXC1haXJtZW5cLWluXC1jaGluYVwtZHVyaW5nXC13b3JsZFwtd2FyXC10d29cKTsKK+aOm+WlvSA8IHRvXC1oYW5nXC11cFwtcHJvcGVybHlcLVwodGVsZXBob25lXCxcLXBpY3R1cmVcLFwtY2xvdGhlc1wsXC1ldGNcLlwpOwor5ouU5q+SIDwgZHJhd1wtb3V0XC1wdXNcLWJ5XC1hcHBseWluZ1wtYVwtcGxhc3RlclwtdG9cLXRoZVwtYWZmZWN0ZWRcLWFyZWE7CivlvK4gPCBhXC1jcm93d2Jvd1wtd2hpY2hcLWRpc2NoYXJnZWRcLXNldmVyYWxcLWJvbHRzXC1pblwtc3VjY2Vzc2lvbjsKK+SqmSA8IGxlYXRoZXJcLXdyYXBwZWRcLWNvbGxhclwtZm9yXC1hXC1kcmFmdFwtYW5pbWFsXC1vZlwtYVwtY2FycmlhZ2U7Civkp5ogPCB0aGVcLW5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRoZVwtc291dGhcLXdlc3RcLW9mXC1oZWJlaVwtcHJvdmluY2U7CivnlZzlipsgPCBhbmltYWxcLXBvd2VyZWRcLVwoYXNcLW9wcG9zZWRcLXRvXC1odW1hblwtb3JcLW1hY2hpbmVcLXBvd2VyZWRcKTsKK+ShniA8IGxlYXRoZXJcLXRoYXRcLXdpbmRcLXJvdW5kXC1vblwtdGhlXC1zaGFmdHNcLW9mXC1hXC1iaWdcLWNhcnJpYWdlOwor5I2cIDwgYVwtYmFza2V0XC1vclwtYVwtY2FnZVwtdXNlZFwtdG9cLWtlZXBcLXdpbGRcLWFuZFwtZG9tZXN0aWNcLWZvd2xzOwor5IeGIDwgY2FwYWNpdHlcLXVuaXRcLWluXC1mcmFuY2VcLWVxdWFsXC10b1wtdGVuXC10aW1lc1wtb2ZcLW9uZVwtbGl0cmU7CivkgoUgPCB0b1wtaGF2ZVwtaW5zaWdodFwtb3JcLXZpc2lvblwtb2ZcLWFcLXNpbXBsZVwtYW5kXC1ob25lc3RcLXBlcnNvbjsKK+OyvSA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXRvZGF5JydzXC1zb3V0aHdlc3RcLW9mXC1zaGFueGlcLXByb3ZpbmNlOwor466QIDwgYVwtcmFja1wtb3JcLWFcLXN0YW5kXC13aXRoXC10aHJlZVwtc3RpY2tzXC10b1wtY3Jvc3NcLWVhY2hcLW90aGVyOwor46y4IDwgYVwta2luZFwtb2ZcLXNlcnZpY2VzXC1vclwtY2VyZW1vbmllc1wtb2ZcLW9mZmVyaW5nXC1zYWNyaWZpY2VzOwor5pqX6Iqx5YWSIDwgYVwtdmVpbGVkXC1kZXNpZ25cLWluY2lzZWRcLWluXC1wb3JjZWxhaW5cLW9yXC13b3ZlblwtaW5cLWZhYnJpYzsKK+WGsOeCreS4jeebuOWuuSA8IGFzXC1pbmNvbXBhdGlibGVcLW9yXC1pcnJlY29uY2lsYWJsZVwtYXNcLWljZVwtYW5kXC1ob3RcLWNvYWxzOwor5bmr6IWUIDwgdm9jYWxcLWFjY29tcGFuaW1lbnRcLWluXC1zb21lXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtb3BlcmFzOwor5aWU5ZaqIDwgaGFzdGVuXC1ob21lXC1mb3JcLXRoZVwtZnVuZXJhbFwtb2ZcLWFcLXBhcmVudFwtb3JcLWdyYW5kcGFyZW50Owor55m96IqNIDwgXChwZWVsZWRcKVwtcm9vdFwtb2ZcLWhlcmJhY2VvdXNcLXBlb255XC1cKHBhZW9uaWFcLWxhY3RpZmxvcmFcKTsKK+mDjCA8IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtaHNpZW5cLWluXC1tb2Rlcm5cLWdhbnN1XC9zaGFhbnhpXC1hcmVhXC47CivoiIjotqMgPCBpbnRlcmVzdFwtXChkaXJlY3RlZFwtdG93YXJkc1wsXC1ub3RcLWluaGVyZW50XC1pblwtc29tZXRoaW5nXCk7Civmi5TnvZDlrZAgPCBjdXBwaW5nXC10ZWNobmlxdWVcLXVzZWRcLWluXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtbWVkaWNpbmU7CivogLAgPCB0b290aGxlc3NcLXJha2VcLWZvclwtZHJhd2luZ1wtZWFydGhcLW92ZXJcLW5ld2x5XC1zb3duXC1ncmFpbjsKK+eQgCA8IGdlbXNcLW9mXC1wZWFybHNcLWZvcm1lcmx5XC1wdXRcLWludG9cLXRoZVwtbW91dGhcLW9mXC1hXC1jb3Jwc2U7CivmqJnlhbUgPCBwYXJhZGVcLWd1YXJkc1wtXCh1c3VhbGx5XC1zcGFjZWRcLW91dFwtYWxvbmdcLXBhcmFkZVwtcm91dGVzXCk7CivkqoMgPCB3aW5lXC1jb250YWluZXJcLXVzZWRcLWJ5XC1taW5vcml0eVwtdHJpYmVcLWluXC1hbmNpZW50XC10aW1lczsKK+SltyA8IGFcLWhpbmdlZFwtc2hlYXJcLW9yXC1sb25nXC1rbmlmZVwtZm9yXC1jdXR0aW5nXC1mb2RkZXJcLW9yXC1oYXk7CivkpKkgPCBhblwtb3JuYW1lbnRcLWF0XC10aGVcLWVuZFwtb2ZcLWFcLWJlbHRcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SdqiA8IHRvXC1wcm92aWRlXC1tb25leVwtb3JcLWdpZnRcLWFuZFwtdG9cLWNvbnN1bHRcLWZvcnR1bmVcLXRlbGxlcjsKK+SZmyA8IGNlcmVtb25pYWxcLWRyZXNzXC1vZlwtdGhlXC1lbXBlcm9yXC1vclwtdmVyeVwtaGlnaFwtb2ZmaWNpYWxzOwor5JimIDwgYVwta2luZFwtb2ZcLWhlYWRcLWRyZXNzXC13b3JlXC1pblwtZnVuZXJhbFwtcml0ZXNcLWluXC1vbGRcLWRheXM7CivkmJ8gPCBraW5kXC1vZlwtc2lsa1wtd292ZW5cLXdpdGhcLWRvdWJsZVwtdGhyZWFkc1wtYW5kXC13YXRlclwtcHJvb2Y7CivklJEgPCBhXC13aGl0ZVwtY29sb3JlZFwtY2x1c3RlclwtZ3Jvd25cLWF0XC10aGVcLXRpcFwtb2ZcLWNvZ29uZ3Jhc3M7CivkibIgPCB0aGluXC1hbmRcLWZsYXRcLXNsaXBzXC1vZlwtYmFtYm9vXC11c2VkXC1mb3JcLXdlYXZpbmdcLXB1cnBvc2U7CivjvL0gPCBmcmFnbWVudHNcLW9mXC1hXC10aWxlXC1oYXZlbicndFwtYmVlblwta2lsblwtZHJpZWRcLWNvbXBsZXRlbHk7CivjtoEgPCBhZnRlclwtYmxvY2tpbmdcLXRoZVwtd2F0ZXJcLWZsb3dcLXRha2VzXC1kaWZmZXJlbnRcLXdhdGVyd2F5Owor46+AIDwgYm9uZHNcLWFuZFwtZmV0dGVyc1wtZm9yXC1mYWxjb25zXC1hbmRcLWRvZ3NcLXVzZWRcLWluXC1odW50aW5nOwor45K+IDwgYVwta2luZFwtb2ZcLXdyYXBwZXJcLXVzZWRcLXRvXC1jb3Zlclwtb3ZlclwtdGhlXC1mYWNlXC1hbmRcLWhlYWQ7CivlhavpnaLnjrLnk48gPCBiZVwtc21vb3RoXC1hbmRcLXNsaWNrXC1cKGluXC1lc3RhYmxpc2hpbmdcLXNvY2lhbFwtcmVsYXRpb25zXCk7CivlhYPlrrXnr4AgPCB0aGVcLWxhbnRlcm5cLWZlc3RpdmFsXCxcLWphbnVhcnlcLTE1XC1vblwtdGhlXC1sdW5hclwtY2FsZW5kYXI7CivnnL7lv5fmiJDln44gPCBcInVuaXR5XC1vZlwtd2lsbFwtaXNcLWFuXC1pbXByZWduYWJsZVwtc3Ryb25naG9sZFwiXC1cKHByb3ZlcmJcKTsKK+WAi+mrlOaItiA8IGFcLXNtYWxsXC1wcml2YXRlXC1idXNpbmVzc1wtXCh1c2VkXC1pblwtbWFpbmxhbmRcLWNoaW5hXC1vbmx5XCk7Civms5XmtbcgPCBuYW1lXC1vZlwtYVwtYnVkZGhpc3RcLW1vbmtcLFwtZmFoYWlcLFwtZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZTsKK+igsiA8IHRoZVwtbWlsbGlwZWRlXC1zb21ldGltZXNcLWNvbmZvdW5kZWRcLXdpdGhcLXRoZVwtZ3Jvd1wtd29ybTsKK+iYpyA8IGFcLXBsYW50XC13aGljaFwtcmVzZW1ibGVzXC13aGVhdFwtYnV0XC1oYXNcLW5vXC1lZGlibGVcLWdyYWluOwor5pmv5b636Y6uIDwgamluZ1wtZGVcLXpoZW5cLVwoYVwtY2hpbmVzZVwtY2l0eVwtaW5cLWppYW5nXC14aVwt5rGf6KW/XC1wcm92aW5jZVwpOwor6Z+L54i+5byX6Zu36IyyIDwgXChnZW9yZ2VcKVwtd2VocmZyaXR6XC1cKGJlaWppbmdcLWJ1cmVhdVwtY2hpZWZcLW9mXC1uZXdzd2Vla1wpOwor6ZW35Z+O5Y2hIDwgZ3JlYXRcLXdhbGxcLWNhcmRcLVwoY3JlZGl0XC1jYXJkXC1pc3N1ZWRcLWJ5XC1iYW5rXC1vZlwtY2hpbmFcKTsKK+WTiOiyneeIviA8IFwod2Vic3RlclwpXC1odWJiZWxsXC1cKGZvcm1lclwtYXNzb2NpYXRlXC1hdHRvcm5leVwtZ2VuZXJhbFwpOwor6JCs5aO95bGxIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXCxcLWxvbmdldml0eVwtaGlsbFwsXC1pblwtc3VtbWVyXC1wYWxhY2VcLemgpOWSjOWckjsKK+aLiemCo+eDiCA8IFwocHJpbmNlXClcLXJhbmFyaWRkaFwtXChzb25cLW9mXC1raW5nXC1zaWhhbm91a1wtb2ZcLWNhbWJvZGlhXCk7CivkobQgPCBjYXJyaWFnZVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzXC10b1wtdGFrZVwtZW5lbXlcLXBvc2l0aW9uOwor5J+6IDwgd2Fsa1wtc2xvd2x5XC1iZWNhdXNlXC1vZlwtdGhlXC13cm9uZ1wtcG9zaXRpb25cLW9mXC10aGVcLWZlZXQ7CivkiaMgPCBzbGlwc1wtb2ZcLWJhbWJvb1wtcHJvdmlkZWRcLWZvclwtd3JpdGluZ1wtaW5cLWFuY2llbnRcLXRpbWVzOwor5IG5IDwgdG9cLWxvb2tcLWFza2FuY2VcLVwtXC1cLWFcLWV4cHJlc3Npb25cLW9mXC1kaXNkYWluXC1vclwtZGVzcGlzZTsKK+O8jCA8IGxvdFwtb2ZcLW1lbG9uc1wtZ3Jvd2luZ1wtYnV0XC10aGVcLXJvb3RcLWlzXC13ZWFrXC1hbmRcLWZlZWJsZTsKK+O7oCA8IGphZGVcLWhhbmdpbmdcLW9uXC10aGVcLXNpZGVzXC1vZlwtdGhlXC1jYXBcLWluXC1hbmNpZW50XC10aW1lczsKK+OuoyA8IGFcLXBpZWNlXC1vZlwtd29vZFwtdXNlZFwtdG9cLXN0cmlrZVwtb2ZmXC1ncmFpblwtaW5cLWFcLW1lYXN1cmU7Civjk6QgPCB0b1wtc3RyaXBcLXRoZVwtc2tpblwtb2ZcLXRoZVwtZmFjZVwtXC1cLVwtYW5cLWltbWluZW50XC1jYWxhbWl0eTsKK+WMheW5suWItiA8IGFcLXN5c3RlbVwtb2ZcLXBheW1lbnRcLXBhcnRseVwtaW5cLWtpbmRcLWFuZFwtcGFydGx5XC1pblwtY2FzaDsKK+aKl+aXpeaIsOeIrSA8IFwoY2hpbmEnJ3NcKVwtd2FyXC1vZlwtcmVzaXN0YW5jZVwtYWdhaW5zdFwtamFwYW5cLVwoMTkzN1wtMTk0NVwpOwor6aGP55yf5Y2/IDwgbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC15YW5cLXpoZW5xaW5nXCxcLWFcLWZhbW91c1wtY2FsbGlncmFwaGVyOwor55m957Sg6LKeIDwgXChuYW1lXC1vZlwtYVwtcGVyc29uXClcLWJhaVwtc3V6aGVuXCxcLWZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2U7CivnoIAgPCBicmlsbGlhbnRseVwtY29sb3JlZFwtc3RvbmVcLXdpdGhcLXZlaW5lZFwtcGF0dGVybnNcLWluXC1pdDsKK+W9iOeQtCA8IHRvXC1wbGF5XC1vclwtc3RydW1cLWFcLWx1dGVcLW9yXC1vdGhlclwtc3RyaW5nZWRcLWluc3RydW1lbnQ7Civnmb3pmbYgPCB3aGl0ZVwtcG90dGVyeVwtXChvZlwtc2hhbmdcLWR5bmFzdHJ5XC0xNlwtMTF0aFwtY2VudHVyeVwtYmNcKTsKK+WMheW5siA8IGJlXC1yZXNwb25zaWJsZVwtZm9yXC1hXC10YXNrXC11bml0XC11bnRpbFwtaXRcLWlzXC1jb21wbGV0ZWQ7CivlpKfmnZDlsI/nlKggPCB1c2luZ1wtYVwtdGFsZW50ZWRcLXBlcnNvblwtaW5cLWFuXC1pbnNpZ25pZmljYW50XC1wb3NpdGlvbjsKK+eQs1wu5oi057at5pavIDwgbHlublwtZGF2aXNcLVwodXNcLXN0YXRlXC1kZXBhcnRtZW50XC1hcm1zXC1jb250cm9sXC1leHBlcnRcKTsKK+W5s+aWuSA8IHNxdWFyZVwtXChhc1wtaW5cLXNxdWFyZVwtZm9vdFwsXC1zcXVhcmVcLW1pbGVcLFwtc3F1YXJlXC1yb290XCk7CivomZIgPCBhblwtYW1waGliaW91c1wtYmVhc3RcLXJlc2VtYmxpbmdcLWFcLXRpZ2VyXC13aXRoXC1vbmVcLWhvcm47CivnrYEgPCBhXC1iYW1ib29cLWZyYW1lXC1vblwtd2hpY2hcLXNpbGt3b3Jtc1wtc3BpblwtdGhlaXJcLWNvY29vbnM7CivkurrmsJHoi7Hpm4TntIDlv7XnopEgPCBtb251bWVudFwtdG9cLXRoZVwtcGVvcGxlJydzXC1oZXJvZXNcLFwtYXRcLXRpYW5hbm1lblwtc3F1YXJlOwor5YaLIDwgYVwtZGVzZXJ0XC1hXC1ib3JkZXJcLXByYWlyaWVcLXRoZVwtMXN0XC1mb3JtXC1pc1wtcmFkaWNhbFwtMTM7CivktLcgPCB1c2VcLXRoZVwtd2hvbGVcLXBpZWNlXC1vZlwtYmFybGV5XC10b1wtZmVybWVudFwtZm9yXC1icmV3aW5nOwor5K2eIDwgYVwta2luZFwtb2ZcLXNhY3JpZmljZXNcLW9mZmVyZWRcLXRvXC1nb2RzXC1vclwtdGhlXC1kZWNlYXNlZDsKK+SnoCA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXdoYXRcLWlzXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlOwor5JGpIDwgYVwta2luZFwtb2ZcLWlubGFuZFwtcml2ZXJzXC13YXJzaGlwXC11c2VkXC1pblwtcWluZ1wtZHluYXN0eTsKK+SNuCA8IGFcLWxlZ2VuZGFyeVwtZ29hdFwtbGlrZVwtYW5pbWFsXC13aXRoXC00XC1lYXJzXC1hbmRcLTlcLXRhaWxzOwor5IOrIDwgYVwtc2lsaWNhdGVcLXN1YnN0YW5jZVwtZnJvbVwtdGhlXC1zYWx0XC13ZWxsc1wtaW5cLXN6ZWNod2FuOwor47icIDwgdG9cLWdldFwtdGhyb3VnaFwtdGhlXC1zcGFjZVwtZW5jbG9zZWRcLWJ5XC1hXC1jb25zdGVsbGF0aW9uOwor47etIDwgYVwtY29uaWNhbFwtYnJpY2tcLXN0cnVjdHVyZVwtaW5cLXdoaWNoXC10b1wtbGlnaHRcLWFcLWJlYWNvbjsKK+S4jeiBnuS4jeWVjyA8IG5vdFwtYm90aGVyXC10b1wtYXNrXC1xdWVzdGlvbnNcLW9yXC1saXN0ZW5cLXRvXC13aGF0JydzXC1zYWlkOwor5Lim6KGM5LiN5oKWIDwgYm90aFwtY2FuXC1iZVwtaW1wbGVtZW50ZWRcLXdpdGhvdXRcLWNvbWluZ1wtaW50b1wtY29uZmxpY3Q7CivmraXmraXngrrnh58gPCBhZHZhbmNlXC1ncmFkdWFsbHlcLWFuZFwtZW50cmVuY2hcLW9uZXNlbGZcLWF0XC1ldmVyeVwtc3RlcDsKK+eUviA8IGdyb3VuZFwtdGhhdFwtaGFzXC1iZWVuXC11bmRlclwtY3VsdGl2YXRpb25cLWZvclwtb25lXC15ZWFyOwor5LiA5pyb54Sh6ZqbIDwgYXNcLWZhclwtYXNcLXRoZVwtZXllXC1jYW5cLXNlZVwtXChsaXRcOlwtbG9va1wtYWZhclwtbm9cLWJvdW5kXCk7CivkuI3opovntpPlgrMgPCBub3RcLXRvXC1iZVwtZm91bmRcLWluXC10aGVcLWNsYXNzaWNzXC1cLVwtbm90XC1hdXRob3JpdGF0aXZlOwor5pKl6Zuy6KaL5pelIDwgZGlzcGVsXC10aGVcLWNsb3Vkc1wtYW5kXC1zZWVcLXRoZVwtc3VuXC1cLVwtcmVzdG9yZVwtanVzdGljZTsKK+avlOS4iuS4jei2s+avlOS4i+acieS9mSA8IGZhbGxcLXNob3J0XC1vZlwtdGhlXC1iZXN0XC1idXRcLWJlXC1iZXR0ZXJcLXRoYW5cLXRoZVwtd29yc3Q7Civnmb3lhrDlhrAgPCBwYWlcLXBpbmdcLXBpbmdcLVwod2VsbFwta25vd25cLXRhaXdhblwtcGVyZm9ybWluZ1wtYXJ0aXN0XCk7Civmi4nosp0gPCBcKGpvaG5cKVwtcmFiZVwtXChnZXJtYW5cLWV5ZXdpdG5lc3NcLXRvXC1uYW5qaW5nXC1tYXNzYWNyZVwpOwor5ber5bGxIDwgbXRcLlwtd3VcLFwtb25cLXRoZVwtY2hhbmdqaWFuZ1wtcml2ZXJcLWJ5XC10aGVcLXRocmVlXC1nb3JnZXM7CivnpqEgPCBhXC1zYWNyaWZpY2VcLWF0XC10aGVcLWJlZ2lubmluZ1wtb2ZcLWFcLW1pbGl0YXJ5XC1jYW1wYWlnbjsKK+ekriA8IGFuY2llbnRcLWJhbGxpc3RhXC1mb3JcLXRocm93aW5nXC1oZWF2eVwtc3RvbmVzXC1hXC1jYW5ub247CivmjZXkv5ggPCBjYXB0dXJlXC1lbmVteVwtcGVyc29ubmVsXC1cKGZvclwtaW50ZWxsaWdlbmNlXC1wdXJwb3Nlc1wpOwor5Lyv5oGp5pavIDwgXChuaWNob2xhc1wpXC1idXJuc1wtXCh1c1wtc3RhdGVcLWRlcGFydG1lbnRcLXNwb2tlc3BlcnNvblwpOwor5K+gIDwgdGhlXC1maXZlXC1sb3dlc3RcLXBpZWNlc1wtb2ZcLWJvbmVcLW9mXC10aGVcLXNwaW5hbFwtY29sdW1uOwor5KymIDwgZm9vZFwtaXRlbXNcLW1lcmVseVwtYXJyYW5nZWRcLWZvclwtZGlzcGxheVwtcHVycG9zZVwtb25seTsKK+SZkSA8IGFcLXBpZWNlXC1vZlwtc2Fja2Nsb3RoXC13b3JuXC1vblwtdGhlXC1icmVhc3RcLWluXC1tb3VybmluZzsKK+mPouWuoiA8IGFybWVkXC1lc2NvcnRcLVwob2ZcLXRyYXZlbGxlcnNcLW9yXC1tZXJjaGFudHMnJ1wtY2FyYXZhbnNcKTsKK+SIsSA8IGFuXC1vcGVuXC1iYW1ib29cLWJhc2tldFwtdXNlZFwtdG9cLWZlZWRcLWRvbWVzdGljXC1hbmltYWxzOwor46q1IDwgaGFsZlwtb2ZcLWFcLXVuaXRcLW9mXC1tZWFzdXJlbWVudFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor46GIIDwgdGhlXC1yb3Blc1wtYXR0YWNoZWRcLXRvXC10aGVcLWJpZXJcLWFuZFwtaGVsZFwtYnlcLW1vdXJuZXJzOwor45qkIDwgYVwtbGFkeVwtb2ZmaWNlclwtb2ZcLXRoZVwtbW9uYXJjaCcnc1wtcGFsYWNlXC1pblwtb2xkXC10aW1lczsKK+WuieatpeeVtui7iiA8IHdhbGtcLW92ZXJcLWxlaXN1cmVseVwtaW5zdGVhZFwtb2ZcLXJpZGluZ1wtaW5cLWFcLWNhcnJpYWdlOwor6LKd5q+NIDwgdGhlXC1idWxiXC1vZlwtdGhlXC1mcml0aWxsYXJ5XC1cKGZyaXRpbGxhcmlhXC10aHVuYmVyZ2lpXCk7CivlkI3li50gPCBhXC1wbGFjZVwtZmFtb3VzXC1mb3JcLWl0c1wtc2NlbmVyeVwtb3JcLWhpc3RvcmljYWxcLXJlbGljczsKK+awkeaogiA8IG11c2ljXCxcLWVzcFwuXC1mb2xrXC1tdXNpY1wsXC1mb3JcLXRyYWRpdGlvbmFsXC1pbnN0cnVtZW50czsKK+WRgCA8IHBhcnRpY2xlXC11c2VkXC10b1wtZXhwcmVzc1wtc3VycHJpc2VcLW9yXC1taWxkXC1lbXBoYXNpczsKK+mZneilvyA8IHNoYWFueGlcLXByb3ZpbmNlXCxcLWNoaW5hXC1cKGNhcGl0b2xcLWNpdHlcLWlzXC14aScnYW5cLeilv+WuiVwpOwor5pel5pa5IDwgdGhlXC1qYXBhbmVzZVwtc2lkZVwtb3JcLXBhcnR5XC1cKGluXC1uZWdvdGlhdGlvbnNcLFwtZXRjXC5cKTsKK+S4jeWLneaemuiIiSA8IHRvb1wtbnVtZXJvdXNcLXRvXC1tZW50aW9uXC1pbmRpdmlkdWFsbHlcLW9yXC1vbmVcLWJ5XC1vbmU7CivpnbcgPCB0aGVcLWxlYXRoZXJcLWJlbHRcLXRoYXRcLWNvbm5lY3RzXC1hXC1ob3JzZVwtd2l0aFwtYVwtY2FydDsKK+itvCA8IHRvXC1zdXBlcnZpc2VcLXRvXC1jb25maW5lXC1hXC1nb3Zlcm5tZW50XC1lc3RhYmxpc2htZW50Owor5qmr5oqYIDwgXChob3Jpem9udGFsXC1zdGFydGluZ1wtcmlnaHRcLWFuZ2xlXC1jaGFyYWN0ZXJcLXN0cm9rZVwpOwor6KW/5a6JIDwgeGknJ2FuXC1cKGNpdHlcKVwsXC10aGVcLWNhcGl0b2xcLWNpdHlcLW9mXC1zaGFhbnhpXC1wcm92aW5jZTsKK+Wwj+mdkiA8IG5hbWVcLW9mXC1hXC1wZXJzb25cLFwteGlhb3FpbmdcLFwtZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZTsKK+iHqOaRuSA8IHRvXC1jb3B5XC1cKGFcLW1vZGVsXC1vZlwtY2FsbGlncmFwaHlcLW9yXC1wYWludGluZ1wsXC1ldGNcLlwpOwor5Z2rIDwgYVwtc3RhbmRcLW9uXC13aGljaFwtdG9cLXJlcGxhY2VcLWdvYmxldHNcLWFmdGVyXC1kcmlua2luZzsKK+WCmeWPliA8IGJlXC1vblwtdGhlXC13YWl0aW5nXC1saXN0XC1cKGZvclwtYWRtaXNzaW9uXC10b1wtYVwtc2Nob29sXCk7CivktL0gPCBhXC1zbWFsbFwtcm91bmRcLXBpZWNlXC1vZlwtZGlzdGlsbGVyJydzXC1ncmFpbnNcLW9yXC15ZWFzdDsKK+SwjiA8IHRvXC10d2lzdFwtdGhlXC1oYWlyXC1pblwtYVwta25vdFwtb25cLXRoZVwtdG9wXC1vZlwtdGhlXC1oZWFkOwor5KqdIDwgbGVhdGhlclwtY29yZFwtdGhhdFwtd2luZGluZ1wtb25cLXRoZVwtaGFuZGxlXC1vZlwtYVwta25pZmU7Civos5Poh7PlpoLmrbggPCBndWVzdHNcLWZlZWxcLWF0XC1ob21lXC1cKGluXC1hXC1ob3RlbFwsXC1ndWVzdGhvdXNlXCxcLWV0Y1wuXCk7CivkoYcgPCB0aGVcLWNyb3NzXC1iYXJcLWF0XC10aGVcLWVuZFwtb2ZcLXRoZVwtcG9sZVwtb2ZcLWFcLWNhcnJpYWdlOwor5J6AIDwgdG9cLWRlc2lyZVwtZm9yXC1tb3JlXC1tb25leVwtdGhhblwtb25lJydzXC1yaWdodGZ1bFwtc2hhcmU7CivkmK0gPCB0aGVcLXBsZWF0ZXNcLW9uXC10aGVcLWxhcGVsXC1vZlwtYVwtZ2FybWVudFwtb2ZcLXRoaW5cLXNpbGs7CivkkIggPCBhXC1waWVjZVwtb2ZcLW9uZVwtZm9vdFwtdHdvXC1pbmNoZXNcLWRyaWVkXC1zZWFzb25lZFwtbWVhdDsKK+SNhSA8IGNvbnRhaW5lcnNcLWZvclwtd2F0ZXJcLW9yXC13aW5lXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7Civki74gPCBjb3R0b25cLWFuZFwtc2lsa1wtdG9cLWJlXC1sYWlkXC1hbmRcLWF0dGFjaGVkXC1lYWNoXC1vdGhlcjsKK+SJkCA8IGFcLXRoaW5cLWFuZFwtbG9uZ1wtc3RyaXBcLW9mXC1iYW1ib29cLWZvclwtbWFraW5nXC1iYXNrZXRzOwor5Ii7IDwgYVwtaGVhdnlcLW1hdHNcLW9mXC1iYW1ib29cLXVzZWRcLWZvclwtZGVlcFwtd2F0ZXJcLWZpc2hpbmc7Civkh6AgPCB3cmVuY2hcLXRvXC1hZGp1c3RcLXRoZVwtc3RyaW5nXC1vblwtc3RyaW5nZWRcLWluc3RydW1lbnQ7CivkhIwgPCB0b1wtcGVyZm9ybVwtcml0aWVzXC1pblwtaG9ub3JcLW9mXC10aGVcLWFuY2VzdHJhbFwtdGVtcGxlOwor5IOmIDwgYVwtZmxhdFwtYW5kXC1ncmVhdFwtcm9ja1wtcGVvcGxlXC1zcXVhdFwtb3JcLWNyb3VjaFwtb25cLWl0Owor47uAIDwgZmluZVwtc3RvbmVcLXdoaWNoXC1pc1wtbGl0dGxlXC1sZXNzXC12YWx1YWJsZVwtdGhhblwtamFkZTsKK+OyrCA8IGhhaXJcLWRlY29yYXRpb25zXC1vblwtYVwtaGVsbWV0XC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7Civjsa8gPCBnZXRcLXRoZVwtdW5ib3JuXC1iYWJ5XC1nb2F0XC1ieVwta2lsbG5nXC10aGVcLW1vdGhlclwtZ29hdDsKK+OusCA8IHRoZVwtc21hbGxcLWJlYW1cLXN1cHBvcnRpbmdcLXRoZVwtcmFmdGVyc1wtYXRcLXRoZVwtZWF2ZXM7CivjqrYgPCBhXC1kcnlcLW1lYXN1cmVcLTEwXC1vclwtNVwtdGltZXNcLXRoYXRcLW9mXC1hXC1jaGluZXNlXC1wZWNrOwor5bC86LWr6a2vIDwgXChqYXdhaGFybGFsXClcLW5laHJ1XC1cKGZpcnN0XC1wcmltZVwtbWluaXN0ZXJcLW9mXC1pbmRpYVwpOwor45+XIDwgbmFtZVwtb2ZcLWFcLXNtYWxsXC1wcmluY2lwYWxpdHlcLWluXC13aGF0XC1pc1wtbm93XC1zaGFueGk7CivmkqXmtarpvJMgPCBhXC1kcnVtXC1zaGFwZWRcLXJhdHRsZVwtXCh1c2VkXC1ieVwtcGVkbGFyc1wtb3JcLWFzXC1hXC10b3lcKTsKK+WwlumWo+WIl+WztiA8IHNlbmtha3VcLWlzbGFuZHNcLVwoamFwYW5lc2VcLW5hbWVcLWZvclwtZGlhb3l1XC1pc2xhbmRzXCk7CivmnKzmnKsgPCB0aGVcLXdob2xlXC1jb3Vyc2VcLW9mXC1hblwtZXZlbnRcLWZyb21cLWJlZ2lubmluZ1wtdG9cLWVuZDsKK+mgk+aMqyA8IHdpdGhcLXN5bmNvcGF0ZWRcLWNhZGVuY2VcLVwoYnJ1c2hcLXN0cm9rZVwtaW5cLXBhaW50aW5nXCk7Civntq3lkL7niL7ml48gPCB0aGVcLXV5Z3VyXC1cKHVpZ2h1clwpXC1uYXRpb25hbGl0eVwsXC1saXZpbmdcLWluXC14aW5qaWFuZzsKK+eJiOeVqyA8IGFcLXBpY3R1cmVcLXByaW50ZWRcLWZyb21cLWFuXC1lbmdyYXZlZFwtb3JcLWV0Y2hlZFwtcGxhdGU7Civpgb/oq7EgPCB0YWJvb1wtYWdhaW5zdFwtdXNpbmdcLXRoZVwtcGVyc29uYWxcLW5hbWVzXC1vZlwtZW1wZXJvcnM7CivmjInkuIvokavomIbmta7otbfnk6IgPCBzb2x2ZVwtb25lXC1wcm9ibGVtXC1vbmx5XC10b1wtZmluZFwtYW5vdGhlclwtY3JvcHBpbmdcLXVwOwor5Ly9IDwgdHJhbnNjcmlwdGlvblwtb2ZcLXNhbnNrcml0XC0nJ2doYScnXC1pblwtYnVkZGhpc3RcLXRleHRzOwor5bGjIDwgc3RyYXdcLXNhbmRhbHNcLW9yXC1zbGlwcGVyc1wtdGhhdFwtaGF2ZVwtbm9cLWhlZWxcLWJhY2tzOwor5YyX5aSn6I2SIDwgdGhlXC1ncmVhdFwtbm9ydGhlcm5cLXdpbGRlcm5lc3NcLVwoaW5cLW5vcnRoZXJuXC1jaGluYVwpOwor5q2m5p2+IDwgd3Vzb25nXCxcLW5hbWVcLW9mXC1hXC1wZXJzb25cLFwtYVwtaGVyb1wtaW5cLXNodWlcLWh1XC16aHVhbjsKK+WNgeS6lOWkpyA8IDFcLTV0aFwtcGFydHlcLWNvbmdyZXNzXC1cKG9mXC1jaGluZXNlXC1jb21tdW5pc3RcLXBhcnR5XCk7CivmnY7lhYnogIAgPCBsZWVcLWt1YW5cLXlld1wtXChmb3JtZXJcLXByaW1lXC1taW5pc3Rlclwtb2ZcLXNpbmdhcG9yZVwpOwor6Kix5LuZIDwgbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC14dVwteGlhblwsXC1mcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlOwor5YSQ55u4IDwgYXR0ZW5kYW50XC1vZlwtdGhlXC1icmlkZVwtb3JcLWJyaWRlZ3Jvb21cLWF0XC1hXC13ZWRkaW5nOwor6KOc54CJIDwgcmVpbmZvcmNpbmdcLWFuZFwtcmVkdWNpbmdcLW1ldGhvZHNcLVwoaW5cLWFjdXB1bmN0dXJlXCk7CivljZfoj6/ml6nloLEgPCBzb3V0aFwtY2hpbmFcLW1vcm5pbmdcLXBvc3RcLVwobmV3c3BhcGVyXC1pblwtaG9uZ1wta29uZ1wpOwor5bm55LqLIDwgYWRtaW5pc3RyYXRpdmVcLXNlY3JldGFyeVwtXChpblwtY2hhcmdlXC1vZlwtc29tZXRoaW5nXCk7Civnl4XlhaXoho/ogpMgPCB0aGVcLWRpc2Vhc2VcLWhhc1wtYXR0YWNrZWRcLXRoZVwtdml0YWxzXC1cLVwtYmV5b25kXC1jdXJlOwor5ber5bO9IDwgd3V4aWFcLWdvcmdlXCxcLWluXC10aGVcLWNoYW5namlhbmdcLXJpdmVyXC10aHJlZVwtZ29yZ2VzOwor5ryOIDwgYVwtcGxhY2VcLXdoZXJlXC1zbWFsbFwtc3RyZWFtc1wtZmxvd1wtaW50b1wtYVwtbGFyZ2VcLW9uZTsKK+aKmOethiA8IGFnYWluc3RcLXRoZVwtYnJpc3RsZXNcLVwoYnJ1c2hcLW1vdmVtZW50XC1pblwtcGFpbnRpbmdcKTsKK+aqviA8IGdyYXNzeVwtcGxhbnRcLXdpdGhcLWZpYnJlc1wtZnJvbVwtd2hpY2hcLWNsb3RoXC1pc1wtbWFkZTsKK+WwiOe3miA8IHNwZWNpYWxcLXB1cnBvc2VcLXBob25lXC1saW5lXC1vclwtY29tbXVuaWNhdGlvbnNcLWxpbms7CivlnJblhYsgPCBcKGdhcnlcLWxcLlwpXC10b29rZXJcLVwobW90b3JvbGFcLWNoYWlybWFuXC1vZlwtdGhlXC1ib2FyZFwpOwor5LCMIDwgdG9cLWJpbmRcLXRoZVwtaGFpclwtaW5cLWFcLWtub3RcLW9uXC10aGVcLXRvcFwtb2ZcLXRoZVwtaGVhZDsKK+SptSA8IHRhbm5lclwtd2hvXC1tYWRlXC10aGVcLWxlYXRoZXJcLWRydW1cLWluXC1hbmNpZW50XC10aW1lczsKK+S6uuawkeihjOWLlem7qCA8IHBlb3BsZScnc1wtYWN0aW9uXC1wYXJ0eVwtXChydWxpbmdcLXBhcnR5XC1pblwtc2luZ2Fwb3JlXCk7CivkmpkgPCBhXC1zcG9vblwtZm9yXC1jb29rZWRcLXJpY2VcLW1hZGVcLW9mXC1ob3JuXC1vZlwtYW5cLWFuaW1hbDsKK+SMsyA8IGFcLWtpbmRcLW9mXC11bnJlZmluZWRcLW9yXC11bnBvbGlzaGVkXC1zaWxrZW5cLXRleHRpbGVzOwor5Iq6IDwgYW5cLWltcGxlbWVudFwtdG9cLWRyYXdcLW9yXC10b1wtY29sbGVjdFwtcm9wZXNcLW9yXC1jb3JkczsKK+SJgyA8IHNsaXBlZFwtb3BlblwtYmFtYm9vXC13aXRoXC10aGVcLWpvaW50c1wtdXNlZFwtYXNcLWFuXC1vYXI7CivkiYAgPCByZWN0YW5ndWxhclwtY2hlc3RcLW9yXC1ib3hcLXdvdmVuXC1mcm9tXC1iYW1ib29cLXN0cmlwczsKK+SEiyA8IHRvXC1wcmF5XC1mb3JcLXByZXZlbnRpbmdcLW9yXC1mb3Jlc3RhbGxpbmdcLWNhbGFtaXRpZXM7Civkg64gPCBhXC1zdG9uZVwtYnVpbGRcLWh5ZHJhdWxpY1wtbWVhc3VyZXNcLWluXC1hbmNpZW50XC10aW1lczsKK+O+vyA8IHJvYXJcLW9mXC1hc3RobWFcLW9yXC1leHBlY3RvcmF0ZVwtZnJvbVwtYVwtZHlpbmdcLXBlcnNvbjsKK+O7qCA8IGluZVwtc3RvbmVcLXdoaWNoXC1pc1wtbGl0dGxlXC1sZXNzXC12YWx1YWJsZVwtdGhhblwtamFkZTsKK+O6kCA8IGdlbmVyYWxseVwtY2FsbGVkXC1mb3JcLW1pbm9yaXR5XC1ncm91cHNcLWluXC1vbGRcLWNoaW5hOwor46+CIDwgcGlsbGFyXC1vclwtcG9zdFwtb2ZcLWFcLWZyYW1lXC1vblwtd2hpY2hcLXNpbGt3b3Jtc1wtc3BpbjsKK+OfiyA8IGRlZXBcLWFuZFwtbGV2ZWxcLWdyb3VuZFwtZ3VsbHlcLWF0XC10aGVcLWZvb3RcLW9mXC1hXC1oaWxsOwor456qIDwgdGhlXC1hcHBlYXJhbmNlXC1vZlwtdGhlXC1tb3VudGFpblwtaXNcLWZsYXRcLWFuZFwtc21vb3RoOwor5pac6YmkIDwgXChkb3dud2FyZHNcLXJpZ2h0XC1jb25jYXZlXC1ob29rZWRcLWNoYXJhY3Rlclwtc3Ryb2tlXCk7CivosY7mipggPCBcKGRvd253YXJkc1wtc3RhcnRpbmdcLXJpZ2h0XC1hbmdsZVwtY2hhcmFjdGVyXC1zdHJva2VcKTsKK+iAgeWFhCA8ICcnb2xkXC1jaGFwJydcLVwoZm9ybVwtb2ZcLWFkZHJlc3NcLWJldHdlZW5cLW1hbGVcLWZyaWVuZHNcKTsKK+e0hOe/sOaLieiynSA8IGpvaG5cLXJhYmVcLVwoZ2VybWFuXC1leWV3aXRuZXNzXC10b1wtbmFuamluZ1wtbWFzc2FjcmVcKTsKK+ihhSA8IGNvbnNlY3JhdGVcLXNhY3JpZmljaWFsXC12ZXNzZWxzXC1ieVwtc21lYXJpbmdcLWJsb29kOwor6JmiIDwgbmFtZVwtb2ZcLWFuY2llbnRcLWZldWRhbFwtc3RhdGVcLWluXC1zaGVueGlcLWFuZFwtaHVuYW47Civot5HmsZ/muZYgPCB0b1wtbWFrZVwtYVwtbGl2aW5nXC1hc1wtYVwtdHJhdmVsbGluZ1wtcGVyZm9ybWVyXCxcLWV0Y1wuOwor5Lqk5piT6aGNIDwgc3VtXC1vclwtdm9sdW1lXC1vclwtYW1vdW50XC1vZlwtYnVzaW5lc3NcLXRyYW5zYWN0aW9uczsKK+m9iSA8IHN0b3BwYWdlXC1vZlwtdGhlXC1ub3NlXC10b1wtc3BlYWtcLXdpdGhcLWFcLW5hc2FsXC10d2FuZzsKK+apq+ethiA8IGJyaXN0bGVzXC1seWluZ1wtZG93blwtXChicnVzaFwtbW92ZW1lbnRcLWluXC1wYWludGluZ1wpOwor5LiN5pWi6LaK6Zu35rGg5LiA5q2lIDwgZGFyZVwtbm90XC1nb1wtb25lXC1zdGVwXC1iZXlvbmRcLXRoZVwtcHJlc2NyaWJlZFwtbGltaXQ7CivmjqHos7wgPCBtYWtlXC1wdXJjaGFzZXNcLWZvclwtYW5cLW9yZ2FuaXphdGlvblwtb3JcLWVudGVycHJpc2U7CivmraPlnKggPCBpblwtdGhlXC1wcm9jZXNzXC1vZlwtXChkb2luZ1wtc29tZXRoaW5nXC1vclwtaGFwcGVuaW5nXCk7CivopK8gPCBjaGlsZHJlbicnc1wtZ2FybWVudHNcLlwtYVwtbWF0XC1mb3JcLXdyYXBwaW5nXC1nYXJtZW50czsKK+ael+ixkOatoyA8IGxpblwtZmVuZ1wtY2hlbmdcLVwodGFpd2FuXC1taW5pc3Rlclwtb2ZcLXRoZVwtaW50ZXJpb3JcKTsKK+WgseWciyA8IGRlZGljYXRlXC1vbmVzZWxmXC10b1wtdGhlXC1zZXJ2aWNlXC1vZlwtb25lJydzXC1jb3VudHJ5Owor6JGj5bu66I+vIDwgdHVuZ1wtY2hlZVwtaHdhXC1cKGhvbmdcLWtvbmdcLWxlYWRlclwtYWZ0ZXJcLWp1bHlcLTE5OTdcKTsKK+ethuinuCA8IGJydXNoXC1zdHJva2VcLWluXC1jaGluZXNlXC1wYWludGluZ1wtYW5kXC1jYWxsaWdyYXBoeTsKK+S4jeegtOS4jeeriyA8IHdpdGhvdXRcLWRlc3RydWN0aW9uXC10aGVyZVwtY2FuXC1iZVwtbm9cLWNvbnN0cnVjdGlvbjsKK+WNl+S6rOi3ryA8IG5hbmppbmdcLXN0XC5cLFwtbGFyZ2VcLWNvbW1lcmNpYWxcLXN0cmVldFwtaW5cLXNoYW5naGFpOwor5qKgIDwgYVwtc21hbGxcLWJlYW1cLXN1cHBvcnRpbmdcLXRoZVwtcmFmdGVyc1wtYXRcLXRoZVwtZWF2ZXM7CivmkaMgPCBhXC1oYW5kZnVsXC5cLXRvXC1waWNrXC11cFwtd2l0aFwtdGhlXC1maW5nZXJzXC5cLXRvXC1zZWl6ZTsKK+WgmCA8IGFcLXJhaXNlZFwtcGF0aFwtYmV0d2VlblwtZmllbGRcLXdoaWNoXC1hY3RzXC1hc1wtYVwtZHlrZTsKK+S2nCA8IHRoZVwtcHJvY2Vzc1wtdG9cLXdoaXRlblwtdGhlXC1pdm9yeVwtb3JcLWVsZXBoYW50XC10dXNrOwor5K6JIDwgaG9yc2VzXC1rZXB0XC1hdFwtYVwtY291cmllclwtc3RhdGlvblwtaW5cLWZvcm1lclwtdGltZXM7CivkorUgPCBuYW1lXC1vZlwtYW5cLW9sZFwtY291bnRyeVwtaW5cLXRvZGF5JydzXC1odWJlaVwtcHJvdmluY2U7CivkoZ8gPCBhXC1yaW5nXC1vZlwtdGhlXC1ob3Jpem9udGFsXC1mcm9udFwtYmFyXC1vblwtYVwtY2FycmlhZ2U7CivknpsgPCBkYW5jaW5nXC1vZlwtYVwtZWFzdGVyblwtbWlub3JpdHlcLWdyb3VwXC1pblwtb2xkXC1jaGluYTsKK+SdjCA8IGFcLXBpZ1wtc2Vla1wtZm9yXC1mb29kXC10aHJvdWdoXC1kaWdnaW5nXC1vblwtdGhlXC1lYXJ0aDsKK+SSgSA8IGFcLXNtYWxsXC1ib2F0XC1jb25uZWN0ZWRcLXRvXC10aGVcLWJhY2tcLW9mXC1hXC1iaWdcLWJvYXQ7CivkiYsgPCBhXC12YXJpZXR5XC1vZlwtYmFtYm9vXC1zaG9vdHNcLXRoYXRcLXNwcm91dFwtaW5cLXdpbnRlcjsKK+SIlCA8IHdoaXN0bGVcLW1hZGVcLW9mXC1yZWVkXC13aXRob3V0XC1ob2xlc1wtZm9yXC1maW5nZXJpbmc7CivjvZkgPCBvZmZpY2lhbFwtaW5cLWNoYXJnZVwtb2ZcLWZhcm1sYW5kc1wtaW5cLWFuY2llbnRcLXRpbWVzOwor47OOIDwgZ3VpZGVcLW9yXC1sZWFkXC10b1wtbWFrZVwtdGhlXC13YXRlclwtZmxvd2luZ1wtc21vb3RobHk7CivjsqogPCB3b29sZW5cLWJsYW5rZXRcLXdpdGhcLWRlY29yYXRpdmVcLWRlc2lnblwtb3JcLXBhdHRlcm47CivjsqggPCBhXC1kZWNvcmF0aXZlXC1maW5lXC1ibGFua2V0XC1vblwtdGhlXC10b3BcLW9mXC1hXC1zYWRkbGU7Civjp4sgPCB0b1wtbGVuZ3RoZW5cLWFuZFwtZXh0ZW51YXRlXC1cLVwtXC1hc1wtaW5cLW1ha2luZ1wtbm9vZGxlOwor46CcIDwgeW91bmdcLWtpZHNcLXNtYXJ0XC1hbmRcLWZhbWlsaWFyXC13aXRoXC1odW1hblwtYWZmYWlyczsKK+S+v+S6uiA8IHNvbWVib2R5XC13aG9cLWhhcHBlbnNcLXRvXC1iZVwtb25cLWhhbmRcLWZvclwtYW5cLWVycmFuZDsKK+OZsSA8IGVhcnRoZW53YXJlXC11c2VkXC10b1wtYmFrZVwtY2FrZXNcLWluXC1ub3J0aGVyblwtY2hpbmE7CivorJ3ovpsgPCBjaGVhXC1zaW1cLVwoY2FtYm9kaWFuXC1uYXRpb25hbFwtYXNzZW1ibHlcLXByZXNpZGVudFwpOwor5aSW6Zu7IDwgcmVwb3J0c1wtZnJvbVwtZm9yZWlnblwtXChub25cLWNoaW5lc2VcKVwtbmV3c1wtYWdhbmNpZXM7CivlloEgPCB0aGVcLW1vdXRoXC1vZlwtYVwtZmlzaFwtYXRcLXRoZVwtc3VyZmFjZVwtb2ZcLXRoZVwtd2F0ZXI7Civmj44gPCB0b1wtcHVsbFwtdXBcLXRoZVwtc2xlZXZlc1wtYW5kXC1zdHJldGNoXC1vdXRcLXRoZVwtYXJtczsKK+eurCA8IHRoZVwtY3V0aWNsZVwtb2ZcLXRoZVwtYmFtYm9vXC1hXC1icm9hZFwtbGVhdmVkXC1iYW1ib287CivnvbfkuoYgPCBhXC1tb2RhbFwtcGFydGljbGVcLWluZGljYXRpbmdcLVwoZG9uJyd0XC1taW5kXC1pdFwsXC1va1wpOwor6Z2c5bGxIDwgY2hlbmdcLXNhblwtXChlbGVjdG9yYWxcLWNvbnN0aXR1ZW5jeVwtaW5cLXNpbmdhcG9yZVwpOwor5YWr5LuZ5qGMIDwgb2xkXC1mYXNoaW9uZWRcLXNxdWFyZVwtdGFibGVcLXRvXC1zZWF0XC1laWdodFwtcGVvcGxlOwor5YyF55Si5Yiw5oi2IDwgZml4aW5nXC1vZlwtZmFybVwtb3V0cHV0XC1xdW90YXNcLWZvclwtZWFjaFwtaG91c2Vob2xkOwor6Lu+IDwgaG9yaXpvbnRhbFwtd29vZGVuXC1iYXJcLWluXC1mcm9udFwtb2ZcLWFcLXNlZGFuXC1jaGFpcjsKK+aKk+mjryA8IGFcLWtpbmRcLW9mXC1mb29kXC1wb3B1bGFyXC1hbW9uZ1wtYmVsaWV2ZXJzXC1pblwtaXNsYW07CivokIYgPCB0aGVcLWNhc3Rvclwtb2lsXC1wbGFudFwtYWxzb1wtdXNlZFwtZm9yXC1vdGhlclwtcGxhbnRzOwor5aGe5ouJ5YehIDwgXChzb25ueVwpXC1zZXJhcGhpblwtXChoYWl0aWFuXC1hbWJhc3NhZG9yXC10b1wtdGFpd2FuXCk7Civph5HlpKfkuK0gPCBraW1cLWRhZVwtanVuZ1wtXChuZXdseVwtZWxlY3RlZFwtcHJlc2lkZW50XC1vZlwta29yZWFcKTsKK+eZveaPjyA8IGxpbmVcLWRyYXdpbmdcLWluXC10cmFkaXRpb25hbFwtaW5rXC1hbmRcLWJydXNoXC1zdHlsZTsKK+ewoCA8IGFuXC1hbmNpZW50XC12ZXNzZWxcLXVzZWRcLWZvclwtaG9sZGluZ1wtYm9pbGVkXC1ncmFpbjsKK+iMg+aWr+WdpiA8IFwoZGlhbm5lXClcLWZlaW5zdGVpblwtXCh1c1wtc2VuYXRvclwtZnJvbVwtY2FsaWZvcm5pYVwpOwor6aex6aed56Wl5a2QIDwgbmFtZVwtb2ZcLWFcLW5vdmVsXCxcLWx1b1wtdHVvXC14aWFuZ3ppXCxcLWJ5XC1sYW9cLXNoZVwt6ICB6IiNOwor5LKwIDwgYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXRoZVwtcGlnZW9uXC1vclwtdGhlXC10dXJ0bGVcLWRvdmU7CivogLbnqYzln7rnnaPmnKvkuJbogZblvpLmlZnmnIMgPCB0aGVcLWNodXJjaFwtb2ZcLWplc3VzXC1jaHJpc3RcLW9mXC1sYXR0ZXJcLWRheVwtc2FpbnRzOwor5J2lIDwgdG9cLXJvYXJcLW9yXC1ob3dsXC1mcmFudGljXC1iYXJrc1wtb2ZcLWRvZ3NcLW9yXC13b2x2ZXM7CivklKQgPCB0aGVcLWx1c2hcLWFuZFwtbHV4dXJpYW50XC1vZlwtdGhlXC1ncmFzc1wtYW5kXC1mbG93ZXJzOwor5ray5oWL5rC0IDwgbGlxdWlkXC13YXRlclwtXChhc1wtb3Bwb3NlZFwtdG9cLXN0ZWFtXC1vclwtaWNlXCxcLWVcLmdcLlwpOwor46+uIDwgYVwta2luZFwtb2ZcLXRyZWVcLXdpdGhcLWJpZ1wtbGVhdmVzXC1hbmRcLWluXC1yZWRcLWNvbG9yOwor6YC85LiK5qiR5bGxIDwgYmVcLWRyaXZlblwtdG9cLWpvaW5cLXRoZVwtbGlhbmdzaGFuXC1tb3VudGFpblwtcmViZWxzOwor45SNIDwgYVwtaGluZ2VkXC1zaGVhclwtb3JcLWxvbmdcLWtuaWZlXC1mb3JcLWN1dHRpbmdcLWZvZGRlcjsKK+ino+aUvui7jSA8IHBlb3BsZScnc1wtbGliZXJhdGlvblwtYXJteVwtXChpZVwsXC10aGVcLWNoaW5lc2VcLWFybXlcKTsKK+WUkOWxsSA8IHRhbmdcLXNoYW5cLVwoYVwtY2hpbmVzZVwtY2l0eVwtaW5cLWhlYmVpXC3msrPljJdcLXByb3ZpbmNlXCk7CivluLjku7vnkIbkuovlnIsgPCBwZXJtYW5lbnRcLW1lbWJlclwtc3RhdGVcLVwob2ZcLXVuXC1zZWN1cml0eVwtY291bmNpbFwpOwor55KcIDwgYVwtc2VtaWNpcmN1bGFyXC1qYWRlXC1vcm5hbWVudFwtdXNlZFwtYXNcLWFcLXBlbmRhbnQ7Civpgb/lq4wgPCBhdm9pZFwtZG9pbmdcLWFueXRoaW5nXC10aGF0XC1tYXlcLWFyb3VzZVwtc3VzcGljaW9uOwor6LaZ57Sr6Zm9IDwgemhhb1wteml5YW5nXC1cKGZvcm1lclwtY2hpbmVzZVwtbGVhZGVyc2hpcFwtZmlndXJlXCk7CivloLHluZUgPCBhbm5vdW5jZVwtdGhlXC1pdGVtc1wtb25cLWFcLVwodGhlYXRyaWNhbFwpXC1wcm9ncmFtbWU7Civoq6wgPCB0b1wtb3BlblwtdG9cLWJlZ2luXC10b1wtZXhwbGFpblwtdG9cLWluZm9ybVwtYVwtbGV0dGVyOwor6Kaq5a62IDwgcGFyZW50c1wtb2ZcLW9uZScnc1wtZGF1Z2h0ZXJcLWluXC1sYXdcLW9yXC1zb25cLWluXC1sYXc7CivljZfovYXljJfovY0gPCBcKGZpZ1wuXClcLWFjdFwtaW5cLWFcLXdheVwtdGhhdFwtZGVmZWF0c1wtb25lJydzXC1wdXJwb3NlOwor54y5IDwgd2lsZFwtYW5pbWFsXC1tZW50aW9uZWRcLWluXC1zaG9ydFwtc3RvcnlcLWJ5XC1sdVwteHVuOwor54q8IDwgYVwtZmllcmNlXC1tb25nb2xpYW5cLXdvbGZcLWRyYWdvbicnc1wtaGVhZFwtb25cLXJvb2ZzOwor5rmTIDwgYW5cLWFmZmx1ZW50XC1vZlwtdGhlXC1yaXZlclwteWFuZ3R6ZVwtbmVhclwta2l1a2lhbmc7CivmrZogPCB1c2VkXC1pblwtbmFtZVwtb2ZcLWZhbW91c1wta29yZWFuXC1wYWludGVyXC1jZW5nXC1zZW47Civkv53lpJblsLHphqsgPCBcKG9mXC1hXC1wcmlzb25lclwpXC1yZWxlYXNlZFwtZm9yXC1tZWRpY2FsXC10cmVhdG1lbnQ7Civllpzns5YgPCBzd2VldFwtZ2l2ZW5cLW9uXC1hXC1oYXBweVwtb2NjYXNpb25cLVwoZXNwXC5cLXdlZGRpbmdcKTsKK+aLnOWjvSA8IGNvbmdyYXR1bGF0ZVwtYW5cLWVsZGVybHlcLXBlcnNvblwtb25cLWhpc1wtYmlydGhkYXk7Civokrjokrjml6XkuIogPCBiZWNvbWluZ1wtbW9yZVwtcHJvc3Blcm91c1wtd2l0aFwtZWFjaFwtcGFzc2luZ1wtZGF5Owor5LabIDwgdG9cLXNlcGFyYXRlXC10aGVcLW1lYXRcLWZyb21cLXRoZVwtYm9uZXNcLXdpdGhcLXRlZXRoOwor5LOcIDwgYVwta2luZFwtb2ZcLWJpcmRcLXdoaWNoXC1zaGFyZXNcLWl0c1wtbmVzdFwtd2l0aFwtcmF0czsKK+SyjSA8IGFcLXBlcmNoXC1saWtlXC1maXNoXC13aXRoXC13aGl0ZVwtYm9keVwtYW5kXC1yZWRcLXRhaWw7CivkqbYgPCBzYWRkbGVcLWFuZFwtcmVpblwtZXRjXC5cLWZvclwtdGhlXC1pbXBlcmlhbFwtY2FycmlhZ2U7Civng4/pra/mnKjpvYogPCB1cnVtcWlcLVwoY2FwaXRhbFwtb2ZcLXhpbmppYW5nXC1hdXRvbm9tb3VzXC1yZWdpb25cKTsKK+WuieWcn+mHjemBtyA8IGhhdGVcLXRvXC1sZWF2ZVwtYVwtcGxhY2VcLXdoZXJlXC1vbmVcLWhhc1wtbGl2ZWRcLWxvbmc7Civkl70gPCBhXC1zbWFsbFwtZ2FkZmx5XC10aGF0XC1zdWNrXC1ibG9vZFwtb2ZcLWhvcnNlXC1vclwtY293Owor5Im0IDwgYVwtYmFtYm9vXC13YXJlXC10b1wtY29sbGVjdFwtYW5kXC1rZWVwXC1zb21ldGhpbmdcLWluOwor5ImFIDwgc21hbGxcLWJhbWJvb1wtd2hvc2VcLWpvaW50c1wtYXJlXC10aHJlZVwtZmVldFwtYXBhcnQ7CivkhKYgPCB0b1wtcHV0XC1mb3J0aFwtZWFyc1wtYW5kXC10b1wtYmxvc3NvbVwtb2ZcLXRoZVwtZ3JhaW5zOwor5pS/5bqc5qmf6Zec6ZaL5pS+57O757Wx5LqS6YCj57i95YmHIDwgZ292ZXJubWVudFwtb3Blblwtc3lzdGVtXC1pbnRlcmNvbm5lY3Rpb25cLXByb2ZpbGU7CivjvakgPCBjb25uZWN0ZWRcLWJhbmtzXC1vZlwtZWFydGhcLW9yXC1wYXRoc1wtaW5cLXRoZVwtZmllbGQ7CivkuKbooYwgPCBpblwtcGFyYWxsZWxcLVxbZGV2ZWxvcG1lbnRcLFwtaW1wbGVtZW50YXRpb25cLFwtZXRjXF07CivjuYMgPCB0d29cLWJyaW5kbGVkXC1jb3dzXC10b1wtcGxvdWdoXC1mYWNlXC10b1wtZWFjaFwtb3RoZXI7CivkvK/mnbAgPCBcKHNhbXVlbFwpXC1iZXJnZXJcLVwodXNcLW5hdGlvbmFsXC1zZWN1cml0eVwtYWR2aXNvclwpOwor47afIDwgYW5cLWFuY2llbnRcLW5lbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW54aVwtYW5kXC1oZWJlaTsKK+adseebnyA8IGFzZWFuXC1cKGFzc29jaWF0aW9uXC1vZlwtc291dGhlYXN0XC1hc2lhblwtbmF0aW9uc1wpOwor47KIIDwgdGhlXC1uYW1lXC1vZlwtdGhlXC1tdXNpY1wtb2ZcLXRoZVwtbGVnZW5kYXJ5XC1lbXBlcm9yOwor46yQIDwgYVwtc3RhdGVcLWR1cmluZ1wtdGhlXC1wZXJpb2RcLW9mXC1zcHJpbmdcLWFuZFwtYXV0dW1uOwor46GbIDwgbmFtZVwtZm9yXC1hXC13b3JrbWFuXC13aG9cLWFwcGx5XC1jb2xvclwtaW5cLXBhaW50aW5nOwor5bel5ZWG6YqA6KGMIDwgaW5kdXN0cmlhbFwtYW5kXC1jb21tZXJjaWFsXC1iYW5rXC1vZlwtY2hpbmFcLVwoaWNiY1wpOwor45+iIDwgdGhlXC1yb2Nrc1wtb25cLXRoZVwtaGlsbHNcLWFyZVwtb2ZcLWRpZmZlcmVudFwtc2hhcGVzOwor45y8IDwgY2hpbGRyZW5cLW9mXC1vbmUnJ3NcLWJyb3RoZXJcLVwtXC1cLW5lcGhld3NcLW9yXC1uaWVjZXM7Civmm77ntpMgPCBcKHJlZmVyc1wtdG9cLXNvbWV0aGluZ1wtdGhhdFwtaGFwcGVuZWRcLXByZXZpb3VzbHlcKTsKK+OUvSA8IGFcLWtpbmRcLW9mXC13aW5lXC1wb3RcLW9yXC1qYXJcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lOwor45ODIDwgdG9cLXNhY3JpZmljZVwtYnlcLXBvdXJpbmdcLW91dFwtYVwtbGliYXRpb25cLW9mXC13aW5lOwor45GeIDwgYVwtbWFpZFwtd2hvXC1hY2NvbXBhbmllc1wtYVwtYnJpZGVcLXRvXC1oZXJcLW5ld1wtaG9tZTsKK+WPr+imiyA8IGl0XC1jYW5cLWNsZWFybHlcLWJlXC1zZWVuXC1cKHRoYXRcLXRoaXNcLWlzXC10aGVcLWNhc2VcKTsKK+S6i+iIh+mhmOmBlSA8IHRoaW5nc1wtZG9uJyd0XC10dXJuXC1vdXRcLXRoZVwtd2F5XC15b3VcLXdhbnRcLW9yXC1wbGFuOwor5oWw5ZWPIDwgZXhwcmVzc1wtc3ltcGF0aHlcLFwtZ3JlZXRpbmdzXCxcLWNvbnNvbGF0aW9uXCxcLWV0Y1wuOwor5rW35b63IDwgaHlkZVwtXChlZ1wsXC1ob3VzZVwtanVkaWNpYXJ5XC1jaGFpcm1hblwtaGVucnlcLWh5ZGVcKTsKK+W8teeHiOe1kOe2tSA8IGJlXC1kZWNvcmF0ZWRcLXdpdGhcLWxhbnRlcm5zXC1hbmRcLWNvbG9yZWRcLWJhbm5lcnM7CivplonploDmgJ3pgY4gPCBzaHV0XC1vbmVzZWxmXC11cFwtYW5kXC1wb25kZXJcLW92ZXJcLW9uZScnc1wtbWlzdGFrZXM7CivnvoXmlq8gPCByb3RoXC1cKGVnXCxcLWhyd1wtZXhlY3V0aXZlXC1kaXJlY3Rvclwta2VubmV0aFwtcm90aFwpOwor6ZaJ6Zec6Ieq5a6IIDwgY2xvc2VcLXRoZVwtY291bnRyeVwtdG9cLWludGVybmF0aW9uYWxcLWludGVyY291cnNlOwor5peB6IG9IDwgYmVcLWFcLXZpc2l0b3JcLVwoYXRcLWFcLW1lZXRpbmdcLFwtY2xhc3NcLFwtdHJpYWxcLFwtZXRjXCk7CivkupLpgJrmgKcgPCBpbnRlcm9wZXJhYmlsaXR5XC1cKG9mXC1jb21tdW5pY2F0aW9uc1wtZXF1aXBtZW50XCk7CivnlbIgPCB0b1wtY3VsdGl2YXRlXC1sYW5kXC1ieVwtZmlyc3RcLXNldHRpbmdcLWZpcmVcLXRvXC1pdDsKK+evmiA8IHJvdW5kXC1vclwtb3ZhbFwtY292ZXJlZFwtYmFza2V0c1wtd2l0aFwtc2hvcnRcLWxlZ3M7Civmjqjovq0gPCB0b1wtZGVjbGluZVwtXChhblwtYXBwb2ludG1lbnRcLFwtaW52aXRhdGlvblwsXC1ldGNcLlwpOwor5LiN6YG/6Imx6ZqqIDwgc2hyaW5rXC1vclwtZmxpbmNoXC1mcm9tXC1ub1wtZGlmZmljdWx0eVwtb3JcLWRhbmdlcjsKK+eZveeXoiA8IGR5c2VudGVyeVwtY2hhcmFjdGVyaXplZFwtYnlcLXdoaXRlXC1tdWNvdXNcLXN0b29sOwor6I+v5L2XIDwgbmFtZVwtb2ZcLWFcLWZhbW91c1wtZG9jdG9yXC1pblwtb2xkXC10aW1lc1wsXC1odWFcLXR1bzsKK+eylCA8IGNha2VzXC1tYWRlXC1mcm9tXC1yaWNlXC1mbG91clwtdHdpc3RlZFwtaW50b1wtcmluZ3M7CivmiKQgPCB0b1wtaW5mcmluZ2VcLWFcLXRyYWRlXC1tYXJrXC10b1wtcGxlZGdlXC1hblwtYXJ0aWNsZTsKK+mYv+aXuuabsuaymyA8IG5nYXdhbmdcLWNob2VwZWxcLVwodGliZXRhblwsXC1mdWxsYnJpZ2h0XC1zY2hvbGFyXCk7Civmo5Lmp4wgPCB3b29kZW5cLWNsdWJcLVwodXNlZFwtdG9cLWJlYXRcLWNsb3RoZXNcLWluXC13YXNoaW5nXCk7CivlhajmlpfnhaUgPCBjaHVuXC1kb29cLWh3YW5cLVwoZm9ybWVyXC1zb3V0aFwta29yZWFuXC1wcmVzaWRlbnRcKTsKK+S5pCA8IGZpcnN0XC1jaGFyYWN0ZXJcLW9mXC1rb3JlYW5cLXBsYWNlXC1uYW1lXC0nJ2hhbHBobycnOwor5LaoIDwgaW5cLXRoZVwtbWFubmVyXC1hXC10b290aGxlc3NcLXBlcnNvblwtY2hld2luZ1wtZm9vZDsKK+SumyA8IGV4dHJhXC1ob3JzZVwtaGFybmVzc2VkXC1ieVwtdGhlXC1zaWRlXC1vZlwtdGhlXC10ZWFtOwor5KOgIDwgbmFtZVwtb2ZcLWFcLXZpbGxhZ2VcLWluXC10b2RheScnc1wtc2ljaHVhblwtcHJvdmluY2U7Civko58gPCBuYW1lXC1vZlwtcGF2aWxpb25cLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlOwor5KCSIDwgY291cnRlc3lcLW9mXC1hXC1taW5vcml0eVwtZ3JvdXBcLWluXC1hbmNpZW50XC10aW1lczsKK+SdsCA8IHRvXC1zdG9yZVwtb3JcLXRvXC1hY2N1bXVsYXRlXC1yaWNoZXNcLW9yXC12YWx1YWJsZXM7CivknLEgPCBuYW1lXC1vZlwtYVwtcGF2aWxpb25cLWluXC10b2RheScnc1wtc2hhbnhpXC1wcm92aW5jZTsKK+STnSA8IGNoaW5lc2VcLXBlbm5pc2V0dW1cKVwtcGVubmlzZXR1bVwtYWxvcGVjdXJvaWRlc1wpOwor5IuJIDwgYVwtbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtcHJhY3RpY2FsbHlcLWV2ZXJ5dGhpbmc7CivkiqMgPCBsaWdodFwteWVsbG93XC1kdXN0XC1saWtlXC1mdW5nb2lkXC1ncm93dGhcLW9uXC13aW5lOwor5IeSIDwgbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtcGVyaW9kaWNcLXRlcm1zXC1vclwtZXZlbnRzOwor47+XIDwgZGlzZWFzZVwtb2ZcLXRoZVwtcHJpdmF0ZVwtcGFydFwtb2ZcLXRoZVwtaHVtYW5cLWJvZHk7CivjvqsgPCBoZW1pcGxlZ2lhXC1cLVwtXC1wYXJhbHlzaXNcLW9mXC1oYWxmXC1vZlwtb25lJydzXC1ib2R5Owor47ueIDwgZmxvdXJpc2hpbmdcLWFuZFwtcmFkaWFudFwtb2ZcLXRoZVwtY29sb3JmdWxcLWphZGVzOwor47mxIDwgbmFtZVwtb2ZcLWFcLWRvZ1wtaW5cLXRoZVwtcGVyaW9kXC1vZlwtd2FycmluZ1wtc3RhdGVzOwor47KlIDwgYVwta2luZFwtb2ZcLXdvb2xlblwtdGV4dGlsZXNcLXdpdGhcLWN1cnZlZFwtcGF0dGVybjsKK+OtuSA8IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlOwor46OvIDwgdGhlXC1kcmVzc2VzXC10b3NzXC1hbmRcLWZseWluZ1wtYWJvdXRcLWluXC10aGVcLXdpbmQ7Civjoq8gPCBib3dzXC11c2VkXC1ieVwtdGhlXC1zb25cLW9mXC1oZWF2ZW5cLVwtXC1cLXRoZVwtZW1wZXJvcjsKK+OhiiA8IGFcLWtpbmRcLW9mXC1jYXBcLXdvcm5cLWJ5XC1hblwtb2ZmaWNlclwtaW5cLW9sZFwtY2hpbmE7CivkurrmsJHlpKfmnIPloIIgPCBncmVhdFwtaGFsbFwtb2ZcLXRoZVwtcGVvcGxlXCxcLWF0XC10aWFuYW5tZW5cLXNxdWFyZTsKK+OZqyA8IGFcLWZvdW50YWluXC1vclwtc3ByaW5nXC1vdXRcLWZyb21cLXRoZVwtdW5kZXJncm91bmQ7CivjmY0gPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtZ3Vhbmdkb25nXC1wcm92aW5jZTsKK+aOoui3r+iAhSA8IHBhdGhmaW5kZXJcLVwoc3BhY2VcLWNyYWZ0XC1zZW50XC10b1wtbWFyc1wtYnlcLW5hc2FcKTsKK+eVq+ibh+a3u+i2syA8IHJ1aW5cLXRoZVwtZWZmZWN0XC1ieVwtYWRkaW5nXC13aGF0XC1pc1wtc3VwZXJmbHVvdXM7CivltJTkup7nkLMgPCBjaGFybGVzXC15YWhcLWxpblwtdHJpZVwtXChhcmthbnNhc1wtcmVzdGF1cmFudGV1clwpOwor5YyX5aSn6KW/5rSL5YWs57SE57WE57mUIDwgdGhlXC1ub3J0aFwtYXRsYW50aWNcLXRyZWF0eVwtb3JnYW5pemF0aW9uXC1cKG5hdG9cKTsKK+WwiOahiOe1hCA8IHNwZWNpYWxcLVwobGVnYWxcfGp1ZGljaWFsXClcLWludmVzdGlnYXRpb25zXC1ncm91cDsKK+S7l+e+qeWft+iogCA8IHNwZWFrXC1vdXRcLW9uXC1hXC1tYXR0ZXJcLW9mXC1wcmluY2lwbGVcLW9yXC1qdXN0aWNlOwor5YW16Ieo5Z+O5LiLIDwgdGhlXC1hdHRhY2tpbmdcLWFybXlcLWhhc1wtcmVhY2hlZFwtdGhlXC1jaXR5XC1nYXRlczsKK+WQnuWQkCA8IHRvXC10YWtlXC1pblwtYW5kXC1zZW5kXC1vdXRcLVwoaW5cLWxhcmdlXC1xdWFudGl0aWVzXCk7CivpkqcgPCB1bml0XC1vZlwtbWVhc3VyZVwtZXF1aXZhbGVudFwtdG9cLXRoaXJ0eVwtY2F0dGllczsKK+WmsiA8IGNvbmN1YmluZVwtb2ZcLWxhc3RcLXJ1bGVyXC1vZlwtdGhlXC1zaGFuZ1wtZHluYXN0eTsKK+eTtCA8IGNvbmNhdmVcLWNoYW5uZWxzXC1vZlwtdGlsaW5nXC1hXC1sb25nXC1uZWNrZWRcLWphcjsKK+WqtSA8IGFcLW1haWRcLXdob1wtYWNjb21wYW5pZXNcLWJyaWRlXC10b1wtaGVyXC1uZXdcLWhvbWU7Civog5kgPCBtZWF0XC1vZmZlcmVkXC1pblwtc2FjcmlmaWNlXC10b1wtb25lJydzXC1hbmNlc3RvcnM7Civon4ogPCBhXC1mbHlcLXdoaWNoXC1pc1wtdXNlZFwtc2ltaWxhcmx5XC10b1wtY2FudGhhcmlkZXM7CivmlrfmqYsgPCB0aGVcLWJyb2tlblwtYnJpZGdlXC1cKGF0XC13ZXN0XC1sYWtlXC1pblwtaGFuZ3pob3VcKTsKK+WkseaVl+aYr+aIkOWKn+S5i+avjSA8IFwiZmFpbHVyZVwtaXNcLXRoZVwtbW90aGVyXC1vZlwtc3VjY2Vzc1wiXC1cKHByb3ZlcmJcKTsKK+awo+WKnyA8IHFpZ29uZ1wsXC1hXC1zeXN0ZW1cLW9mXC1kZWVwXC1icmVhdGhpbmdcLWV4ZXJjaXNlczsKK+ecgee0miA8IHByb3ZpbmNpYWxcLWxldmVsXC1cKGVnXCxcLXByb3ZpbmNpYWxcLWdvdmVybm1lbnRcKTsKK+atpuaJkyA8IGFjcm9iYXRpY1wtZmlnaHRpbmdcLWluXC1jaGluZXNlXC1vcGVyYVwtb3JcLWRhbmNlOwor5qmL5pys6b6N5aSq6YOOIDwgaGFzaGltb3RvXCxcLXJ5dXRhcm9cLVwocHJpbWVcLW1pbmlzdGVyXC1vZlwtamFwYW5cKTsKK+mosiA8IHRoZVwtZmVtYWxlXC1vZlwtY2VydGFpblwtYW5pbWFsc1wtc3VjaFwtYXNcLWhvcnNlczsKK+WgseWksSA8IHJlcG9ydFwtdGhlXC1sb3NzXC10b1wtdGhlXC1hdXRob3JpdGllc1wtY29uY2VybmVkOwor5L+d6aSKIDwgdGFrZVwtZ29vZFwtY2FyZVwtb2ZcLVwob3JcLWNvbnNlcnZlXClcLW9uZScnc1wtaGVhbHRoOwor5bmz5L+hIDwgb3JkaW5hcnlcLW1haWxcLVwoYXNcLW9wcG9zZWRcLXRvXC1haXJcLW1haWxcLFwtZXRjXC5cKTsKK+WIhuS6qyA8IG9idGFpblwtb25lJydzXC1zaGFyZVwtXChvZlwtd2VhbHRoXCxcLXJpZ2h0c1wsXC1ldGNcLlwpOwor57SF5aChIDwgcmVkXC1mb3J0XC1cKGhpc3RvcmljXC1idWlsZGluZ1wtaW5cLWRlbGhpXCxcLWluZGlhXCk7Civnj5MgPCB0d29cLWhlbWlzcGhlcmljYWxcLW9iamVjdHNcLXVzZWRcLWluXC1kaXZpbmF0aW9uOwor5YWD5a61IDwgc3dlZXRcLWR1bXBsaW5nc1wtbWFkZVwtb2ZcLWdsdXRpbm91c1wtcmljZVwtZmxvdXI7Civog4zln47lgJ/kuIAgPCBtYWtlXC1hXC1sYXN0XC1kaXRjaFwtc3RhbmRcLWJlZm9yZVwtdGhlXC1jaXR5XC13YWxsOwor5pWnIDwgdG9cLXBpY2tcLXVwXC10aGluZ1wtd2l0aFwtY2hvcHN0aWNrc1wtb3JcLXBpbmNlcnNcLjsKK+aJhCA8IGxhcmdlXC1yaW5nXC1vblwtYVwtZnJvbnRcLWRvb3JcLXVzZWRcLWFzXC1hXC1rbm9ja2VyOwor5auPIDwgdGhlXC1wbGFjZVwtd2hlcmVcLXRoZVwtc3VwcmVtZVwtc3RvcmVzXC1oaXNcLWJvb2tzOwor6Ieo5a+rIDwgdG9cLWNvcHlcLVwoYVwtbW9kZWxcLW9mXC1jYWxsaWdyYXBoeVwtb3JcLXBhaW50aW5nXCk7CivmnIjppIUgPCBtb29uXC1jYWtlXC1cKGVzcFwuXC1mb3JcLXRoZVwtbWlkXC1hdXR1bW5cLWZlc3RpdmFsXCk7Civnmb7mhJ/kuqTpm4YgPCBhbGxcLXNvcnRzXC1vZlwtZmVlbGluZ3NcLXdlbGxcLXVwXC1pblwtb25lJydzXC1oZWFydDsKK+SxgSA8IGFcLWtpbmRcLW9mXC1tZWRpdW1cLXNpemVkXC1maXNoXC1ncm93blwtaW5cLXRoZVwtc2VhOwor5LCPIDwgc3BhcnNlXC1oYWlyXC1vblwtYVwta25vdFwtb25cLXRoZVwtdG9wXC1vZlwtdGhlXC1oZWFkOwor5K6GIDwgYVwtaG9yc2VcLXdpdGhcLW1peGVkXC1jb2xvclwtb2ZcLXllbGxvd1wtYW5kXC13aGl0ZTsKK+SpmyA8IGxlYXRoZXJcLWJlbHRcLXVzZWRcLXRvXC1iaW5kXC1vclwtcmVzdHJhaW5cLWFcLWNhcnQ7CivmioTlrrYgPCB0b1wtc2VhcmNoXC1hXC1ob3VzZVwtYW5kXC1jb25maXNjYXRlXC1wb3NzZXNzaW9uczsKK+SmuSA8IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC10b2RheScnc1wtc2ljaHVhblwtcHJvdmluY2U7Civko5QgPCBuYW1lXC1vZlwtYVwtcGF2aWxpb25cLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor5KORIDwgbGl2aW5nXC1zcGFjZVwtZm9yXC1vbmVcLWZhbWlseVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KOEIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLXNoYW5kb25nXC1wcm92aW5jZTsKK+SiuSA8IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLXRvZGF5JydzXC1odW5hblwtcHJvdmluY2U7CivkoqogPCBhXC1zbGVkZ2VcLWZvclwtdHJhbnNwb3J0YXRpb25cLW92ZXJcLW11ZFwtb3JcLXNub3c7Civkn4YgPCB0b1wta2VlcFwtcGVyc29uc1wtb2ZmXC10aGVcLXJvdXRlXC1vZlwtdGhlXC1lbXBlcm9yOwor5pyD6KaLIDwgdG9cLW1lZXRcLXdpdGhcLVwoc29tZW9uZVwtd2hvXC1pc1wtcGF5aW5nXC1hXC12aXNpdFwpOwor5IiQIDwgYW5cLWFyY2hlZFwtZnJhbWVcLW1hZGVcLW9mXC1iYW1ib29cLW9mXC13b29kXC1ib2FyZDsKK+SFvyA8IGx1eHVyaWFudFwtb3JcLWV4dWJlcmFudFwtb2ZcLXRoZVwtZ3JhaW5zXC1mbG93ZXJ5Owor5IOIIDwgbW91bnRhaW5cLXJvY2tzXC1hXC1ibGFja1wtc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7CivkgqwgPCBiaWdcLXJvY2tzXC1vblwtdGhlXC1yaXZlcnNpZGVcLWFuXC1hcmNoZWRcLW9wZW5pbmc7CivkgZ0gPCBkZWx1ZGluZ1wtYW5kXC1jYXVzaW5nXC1kaXNvcmRlclwtbGlnaHRzXC1zaGluaW5nOwor472fIDwgdG9cLXRpbGxcLW9yXC10b1wtcGxvdWdoXC10aGVcLWZpZWxkc1wtYW5cLWVuY2xvc3VyZTsKK+OuhCA8IHB1YmxpY2x5XC1wb3N0ZWRcLXJvbGxcLW9mXC1zdWNjZXNzZnVsXC1leGFtaW5lZXM7CivjrbggPCB0aGVcLWJyYW5jaGVzXC10b1wtc3ByZWFkXC1vdXRcLWluXC1hbGxcLWRpcmVjdGlvbnM7CivjqYkgPCB0b1wtdGFrZVwtYVwtcnViYmluZ1wtb2ZcLWFuXC1pbnNjcmlwdGlvblwtb25cLXN0b25lOwor46OBIDwgdG9cLWVxdWlwdFwtYVwtYm93XC13aXRoXC1zaWxrXC1hbmRcLW11c2N1bGFyXC1maWJyZTsKK+OdmSA8IHRoZVwtdGhpcmRcLW9mXC10aGVcLXR3ZWx2ZVwtdGVycmVzdHJpYWxcLWJyYW5jaGVzOwor6ZW35rKZ54GjIDwgY2hldW5nXC1zaGFcLXdhblwtXChwb3VsdHJ5XC1tYXJrZXRcLWluXC1ob25nXC1rb25nXCk7CivlpafniL7luIPos7TnibkgPCBcKG1hZGVsZWluZVwpXC1hbGJyaWdodFwtXCh1c1wtc2VjcmV0YXJ5XC1vZlwtc3RhdGVcKTsKK+ato+W4uOWMliA8IG5vcm1hbGl6YXRpb25cLVwob2ZcLWRpcGxvbWF0aWNcLXJlbGF0aW9uc1wsXC1ldGNcKTsKK+WFteS4jeWOreipkCA8IHRoZXJlXC1jYW5cLW5ldmVyXC1iZVwtdG9vXC1tdWNoXC1kZWNlcHRpb25cLWluXC13YXI7CivkupTlha3ljYHmrbIgPCBcKGluXC1vbmUnJ3NcKVwtZmlmdGllc1wtb3JcLXNpeHRpZXNcLVwoeWVhcnNcLW9mXC1hZ2VcKTsKK+mBv+mHjeWwsei8lSA8IGF2b2lkXC10aGVcLWltcG9ydGFudFwtYW5kXC1kd2VsbFwtb25cLXRoZVwtdHJpdmlhbDsKK+Wkp+iIiSA8IGNhcnJ5XC1vdXRcLWFcLWxhcmdlXC1zY2FsZVwtXChtaWxpdGFyeVwpXC1vcGVyYXRpb247Civml6XmvLggPCBcKGtlZXBcLWluY3JlYXNpbmdcLFwtY2hhbmdpbmdcLFwtZXRjXC5cKVwtZGF5XC1ieVwtZGF5Owor5qiZ5paw56uL55WwIDwgc3RhcnRcLXNvbWV0aGluZ1wtbmV3XC1pblwtb3JkZXJcLXRvXC1iZVwtZGlmZmVyZW50Owor6K2w5bitIDwgc2VhdFwtaW5cLWFcLXBhcmxpYW1lbnRcLW9yXC1sZWdpc2xhdGl2ZVwtYXNzZW1ibHk7CivkuY4gPCBpbnRlcnJvZ2F0aXZlXC1vclwtZXhjbGFtYXRvcnlcLWZpbmFsXC1wYXJ0aWNsZTsKK+a+hCA8IHB1cmlmeVwtd2F0ZXJcLWJ5XC1hbGxvd2luZ1wtc2VkaW1lbnRcLXRvXC1zZXR0bGU7CivmrZ8gPCBhXC1maW5hbFwtcGFydGljbGVcLXVzZWRcLXRvXC1leHByZXNzXC1hZG1pcmF0aW9uOwor5qKiIDwgcG9pbnRlZFwtdGlwXC1vZlwtc29tZXRoaW5nXC1sb25nXC1saWtlXC1hXC1icmFuY2g7Civlk5IgPCBhXC1zb3VuZFwtbWFkZVwtdG9cLWdldFwtYVwtaG9yc2VcLXRvXC1tb3ZlXC1mb3J3YXJkOwor55CuIDwgb2N0YWdvbmFsXC1waWVjZVwtb2ZcLWphZGVcLXdpdGhcLWhvbGVcLWluXC1taWRkbGU7CivllLwgPCBzcGVha2luZ1wtZXZpbFwuXC1nb2JibGluZ1wtc291bmRcLW1hZGVcLWJ5XC1kdWNrczsKK+Wkp+WKn+WRiuaIkCA8IHN1Y2Nlc3NmdWxseVwtYWNjb21wbGlzaGVkXC1cKHByb2plY3RcLW9yXC1nb2FsXCk7CivpgJrnt50gPCB3YW50ZWRcLWJ5XC10aGVcLXBvbGljZVwtXChmdWdpdGl2ZVwtb3JcLWNyaW1pbmFsXCk7CivnnJ/ntI0gPCBcKG1vaGFtbWFkXC1hbGlcKVwtamlubmFoXC1cKGZvdW5kZXJcLW9mXC1wYWtpc3RhblwpOwor6Kyd6KOh5aSrIDwgXChuYXdhelwpXC1zaGFyaWZcLVwocHJpbWVcLW1pbmlzdGVyXC1vZlwtcGFraXN0YW5cKTsKK+mtr+izkyA8IHJ1YmluXC1cKGVnXCxcLXRyZWFzdXJ5XC1zZWNyZXRhcnlcLXJvYmVydFwtcnViaW5cKTsKK+WKm+WvtiA8IGxpcHBvXC1cKGdyb3VwXClcLVwoaW5kb25lc2lhblwtYnVzaW5lc3NcLWNvbmNlcm5cKTsKK+WQs+S9nOajnyA8IGdvaFwtY2hva1wtdG9uZ1wtXChwcmltZVwtbWluaXN0ZXJcLW9mXC1zaW5nYXBvcmVcKTsKK+eEoeaJgOeUqOW/gyA8IGVhdFwtdGhyZWVcLXNxdWFyZVwtbWVhbHNcLWFcLWRheVwtYW5kXC1kb1wtbm9cLXdvcms7CivlgbTpi5IgPCBvYmxpcXVlXC1hdHRhY2tcLVwoYnJ1c2hcLW1vdmVtZW50XC1pblwtcGFpbnRpbmdcKTsKK+mCtCA8IG5hbWVcLW9mXC1hXC1jaXR5XC1pblwtdGhlXC1hbmNpZW50XC1zdGF0ZVwtb2ZcLXNvbmc7Civnj63ploDlvITmlqcgPCBkaXNwbGF5XC1vbmUnJ3NcLXNsaWdodFwtc2tpbGxcLWJlZm9yZVwtYW5cLWV4cGVydDsKK+S4reWci+aXpeWgsSA8IGNoaW5hXC1kYWlseVwtXChhblwtZW5nbGlzaFwtbGFuZ3VhZ2VcLW5ld3NwYXBlclwpOwor5bSH56aOIDwgY2hvbmd6aGVuXCxcLWxhc3RcLWVtcGVyb3JcLW9mXC10aGVcLW1pbmdcLWR5bmFzdHk7Civnmb3lrZcgPCB3cm9uZ2x5XC13cml0dGVuXC1hbmRcLW1pc3Byb25vdW5jZWRcLWNoYXJhY3RlcjsKK+S4jeWPr+e1guaXpSA8IGJlXC11bmFibGVcLXRvXC1jYXJyeVwtb25cLWV2ZW5cLWZvclwtYVwtc2luZ2xlXC1kYXk7Civlr4TkuojlvojlpKfmnJ/mnJsgPCB0b1wtcGxhY2VcLWdyZWF0XC1ob3BlXC1vclwtZXhwZWN0YXRpb25cLW9uXC1cKHN0aFwpOwor5bel5Lq66buoIDwgd29ya2VycycnXC1wYXJ0eVwtXChzaW5nYXBvcmVcLW9wcG9zaXRpb25cLXBhcnR5XCk7CivlsI3nrZYgPCBjb3VudGVybWVhc3VyZVwtZm9yXC1kZWFsaW5nXC13aXRoXC1hXC1zaXR1YXRpb247CivktpggPCB0aGVcLXNvdW5kXC1vZlwtY2hld2luZ1wtc29tZXRoaW5nXC1kcnlcLWFuZFwtaGFyZDsKK+SusiA8IGhvcnNlXC13aXRoXC1taXhlZFwtY29sb3JzXC1vZlwteWVsbG93XC1hbmRcLXdoaXRlOwor5Ka8IDwgdG9cLWRpZ1wtYVwtcGFzc2FnZVwtdGhyb3VnaFwtYVwtbW91bnRhaW5cLW9yXC1oaWxsOwor5KWRIDwgYVwta2luZFwtb2ZcLWRlY29yYXRpb25cLW9uXC10aGVcLWhlYWRcLW9mXC1hXC1ob3JzZTsKK+SjryA8IHdpbmVcLW9yXC1hbnlcLXRoaWNrXC1mbHVpZFwtb2ZcLXRoZVwtYmVzdFwtcXVhbGl0eTsKK+SjmiA8IG5hbWVcLW9mXC1hXC12aWxsYWdlXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+SjmSA8IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC10b2RheScnc1wtc2hhbnhpXC1wcm92aW5jZTsKK+SiuiA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1zaWNodWFuXC1wcm92aW5jZTsKK+ShvyA8IGZyYW1lc1wtb25cLXRoZVwtc2lkZXNcLWFuZFwtZnJvbnRcLW9mXC1hXC1jYXJyaWFnZTsKK+ScryA8IG5hbWVcLW9mXC1hXC12YWxsZXlcLWluXC10b2RheScnc1wtc2hhbnhpXC1wcm92aW5jZTsKK+SYvyA8IHNoaXJ0XC1vclwtYVwtamFja2V0XC13aXRob3V0XC1hbnlcLWRlY29yYXRlZFwtaGVtOwor5JaCIDwgYW5cLWVkaWJcLWxlXC13YXRlclwtcGxhbnRcLVwtXC1cLWJyYXNlbmlhXC1wdXJwdXJjYTsKK+SPriA8IHRoZVwtc2lkZXNcLW9mXC10aGVcLXRydW5rXC1mcm9tXC1hcm1waXRzXC10b1wtcmliczsKK+SFjSA8IHN0cmFpZ2h0XC11cHdhcmRcLW9mXC10aGVcLXdoZWF0XC1hbmRcLXJpY2VcLXBsYW50Owor5IK4IDwgdG9cLXNtYXNoXC1vclwtdG9cLWtub2NrXC10b1wtcGllY2VzXC1vZlwtdGhlXC1zdG9uZTsKK+ethuWKmyA8IHZpZ291clwtb2ZcLXN0cm9rZXNcLWluXC1jYWxsaWdyYXBoeVwtb3JcLWRyYXdpbmc7CivnvbDphZIgPCB0b1wtZHJpbmtcLWFzXC10aGVcLXJlc3VsdFwtb2ZcLWhhdmluZ1wtbG9zdFwtYVwtYmV0Owor4768IDwgdG9cLXN1ZmZlclwtYVwtc3Ryb2tlXC1vZlwtcGFyYWx5c2lzXC1vclwtYXBvcGxleHk7CivjvasgPCBzZWVkc1wtb2ZcLXRoZVwtcGxhbnRcLWFsbGllZFwtdG9cLXRoZVwtd2F0ZXJcLWxpbHk7CivjuLcgPCBhXC1raW5kXC1vZlwtY2F0dGxlXC13aXRoXC10d29cLWhvcm5zXC1zdHJhaWdodFwtdXA7CivjtqwgPCBicmlnaHRcLWxpZ2h0c1wtYW5kXC1pbGx1bWluYXRpb25zXC1vZlwtdGhlXC1maXJlOwor47aGIDwgbmFtZVwtb2ZcLWFcLXN0cmVhbVwtaW5cLWhlYmVpXC1wcm92aW5jZVwtaGVuZ3NoYW47Civmlq/kvanmnpcgPCBzcGVsbGluZ1wtXChlZ1wsXC1zcGVsbGluZ1wtZW50ZXJ0YWlubWVudFwtZ3JvdXBcKTsKK+OuqyA8IGFcLXdvb2RlblwtYXJ0aWNhbFwtdG9cLWJlXC11c2VkXC10b1wtYWRqdXN0XC1hXC1ib3c7Civjq40gPCB0aGVcLXNjYWxsb3BzXC1hbG9uZ1wtdGhlXC1sb3dlclwtZWRnZVwtb2ZcLWFcLWZsYWc7Civjp48gPCB0b1wtY2FycnlcLW9uXC10aGVcLXNob3VsZGVyc29mXC10d29cLW9yXC1tb3JlXC1tZW47CivmmJ/pq5QgPCBjZWxlc3RpYWxcLWJvZHlcLVwoZWdcLFwtcGxhbmV0XCxcLXNhdGVsbGl0ZVwsXC1ldGNcKTsKK+ObtiA8IGRvXC1ub3RcLWNhcmVcLWFib3V0XC1hcHBlYXJhbmNlXC1hbmRcLWRlcG9ydG1lbnQ7CivjmpQgPCBpbnN0cnVtZW50XC1vZlwtdG9ydHVyZVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor45mHIDwgdGhlXC1jYXR0bGVcLWFuZFwtaG9yc2VzXC10cmFtcGxlZFwtb25cLXRoZVwtZmllbGQ7CivkuLvnrqEgPCBcKGJlXClcLXBlcnNvblwtaW5cLWNoYXJnZVwtb2ZcLVwoYVwtcG9zaXRpb25cLFwtZXRjXC5cKTsKK+WWruanjeWMuemmrCA8IHNpbmdsZVwtaGFuZGVkXC1cKGxpdFw6XC1zaW5nbGVcLXNwZWFyXC1vbmVcLWhvcnNlXCk7Civnm6fms7DmhJogPCByb2hcLXRhZVwtd29vXC1cKGZvcm1lclwtc291dGhcLWtvcmVhblwtcHJlc2lkZW50XCk7CivmraXpn7sgPCB0b1wtd3JpdGVcLWFcLXBvZW1cLXVzaW5nXC1hbm90aGVyXC1wb2VtJydzXC1yaHltZXM7Civlj6PmsKMgPCBcKGZyaWVuZGx5XC1vclwtdW5mcmllbmRseVwpXC10b25lXC1cKG9mXC1jb21tZW50c1wpOwor5q2j6YuSIDwgZnJvbnRhbFwtYXR0YWNrXC1cKGJydXNoXC1tb3ZlbWVudFwtaW5cLXBhaW50aW5nXCk7CivpvYrnmb3nn7MgPCBuYW1lXC1vZlwtYVwtZmFtb3VzXC1jaGluZXNlXC1hcnRpc3RcLFwtcWlcLWJhaVwtc2hpOwor5LiL5L6GIDwgXCh2ZXJiXC1zdWZmaXhcLWluZGljYXRpbmdcLWNvbnRpbnVhdGlvblwsXC1ldGNcLlwpOwor5bm56YOoIDwgYVwtY2FkcmVcLVwoaWVcLFwtbWFuYWdlclwsXC1zdGFmZlwsXC1vZmZpY2VyXCxcLWV0Y1wuXCk7CivlqIUgPCBtdXR1YWxcLXRlcm1cLW9mXC1hZGRyZXNzXC11c2VkXC1ieVwtc29uc1wtaW5cLWxhdzsKK+WVhuWLmemDqCA8IGNvbW1lcmNlXC1kZXBhcnRtZW50XC1cKG9mXC10aGVcLXVzXC1nb3Zlcm5tZW50XCk7CivlkI3lia/lhbblr6YgPCBub3RcLWp1c3RcLWluXC1uYW1lXC1vbmx5XCxcLWJ1dFwtYWxzb1wtaW5cLXJlYWxpdHk7CivkuI3nlbbkuIDlm57kuosgPCBub3RcLXJlZ2FyZFwtYXNcLWFcLW1hdHRlclwtXChvZlwtYW55XC1pbXBvcnRhbmNlXCk7CivogIHkvLTlhZIgPCBcKG9mXC1hblwtb2xkXC1tYXJyaWVkXC1jb3VwbGVcKVwtaHVzYmFuZFwtb3JcLXdpZmU7CivkuI3miZPkuI3nm7jorZggPCBmcm9tXC1hblwtZXhjaGFuZ2VcLW9mXC1ibG93c1wtZnJpZW5kc2hpcFwtZ3Jvd3M7Civlt7TniL7oiI3lpKvmlq/ln7ogPCBcKGNoYXJsZW5lXClcLWJhcnNoZWZza3lcLFwtdXNcLXRyYWRlXC1uZWdvdGlhdG9yOwor6a6gIDwgYVwta2luZFwtb2ZcLXNoYWRcLXdpdGhcLWFcLWhlYWRcLWxpa2VcLWFcLXN0dXJnZW9uOwor5o6l57SNIDwgYWRtaXRcLVwoaW50b1wtbWVtYmVyc2hpcFwtb2ZcLWFuXC1vcmdhbml6YXRpb25cKTsKK+WWnOaWsOWOreiIiiA8IGxpdGVyYWxcOlwtdG9cLWxpa2VcLXRoZVwtbmV3XCxcLWFuZFwtaGF0ZVwtdGhlXC1vbGQ7CivmiorpoqggPCBrZWVwXC13YXRjaFwtXChkdXJpbmdcLWFcLWNsYW5kZXN0aW5lXC1hY3Rpdml0eVwpOwor5YKZ6ICVIDwgbWFrZVwtcHJlcGFyYXRpb25zXC1mb3JcLXBsb3VnaGluZ1wtYW5kXC1zb3dpbmc7CivmkqXlhpcgPCBmaW5kXC10aW1lXC1pblwtdGhlXC1taWRzdFwtb2ZcLXByZXNzaW5nXC1hZmZhaXJzOwor6IORIDwgdGhlXC1saW1ic1wuXC13aW5nc1wtb2ZcLWJpcmRzXC5cLWxlZ3NcLW9mXC1hbmltYWxzOwor562tIDwgYW5cLWFuY2llbnRcLWRldmljZVwtZm9yXC13b3JraW5nXC13aXRoXC1udW1iZXJzOwor5qKG5a2Q6IWUIDwgYVwtZ2VuZXJhbFwtdGVybVwtZm9yXC1sb2NhbFwtb3BlcmFzXC1pblwtc2hhbmd4aTsKK+a7nSA8IG9ub21hdG9wb2VpY1wtZm9yXC10aGVcLXNvdW5kXC1vZlwtZmFsbGluZ1wtcmFpbjsKK+agvei0kyA8IHRvXC1mcmFtZVwtc29tZW9uZVwtXChieVwtcGxhbnRpbmdcLXN0aFwtb25cLXRoZW1cKTsKK+aPm+WPliA8IGdpdmVcLXNvbWV0aGluZ1wtYW5kXC1nZXRcLXNvbWV0aGluZ1wtaW5cLXJldHVybjsKK+aLjeahiOWPq+e1lSA8IGxpdFwuXDpcLXNsYXBcLXRoZVwtdGFibGVcLWFuZFwtc2hvdXRcLXdpdGhcLXByYWlzZTsKK+WBveabuCA8IFwoZm9yZ2VkXCxcLWR1YmlvdXNcLFwtbWlzY2xhc3NpZmllZFwpXC1vbGRcLWJvb2tzOwor5qKF6Jit6IqzIDwgbmFtZVwtb2ZcLWFcLXZlcnlcLWZhbW91c1wtYmVpamluZ1wtb3BlcmFcLWFydGlzdDsKK+ewv+WGiiA8IGJvb2tzXC1mb3JcLXRha2luZ1wtbm90ZXNcLW9yXC1rZWVwaW5nXC1hY2NvdW50czsKK+SztSA8IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZFwtd2l0aFwtY29sb3JmdWxcLWZlYXRoZXI7Civks5sgPCBhXC1zbWFsbFwtYnJvd25cLXNwZWNrbGVkXC1iaXJkXC1saWtlXC10aGVcLXF1YWlsOwor5KmRIDwgaG9yaXpvbnRhbFwtZnJvbnRcLWJhclwtb25cLWFcLWNhcnRcLW9yXC1jYXJyaWFnZTsKK+SmkyA8IHRvXC13YWl0XC1mb3JcLXNvbWV0aGluZ1wtdG9oYXBwZW5cLWltbWVkaWF0ZWx5Owor5KOkIDwgbmFtZVwtb2ZcLXZpbGxhZ2VcLWluXC10b2RheScnc1wtc2hhbnhpXC1wcm92aW5jZTsKK+SjnSA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5KOCIDwgbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLXRvZGF5JydzXC1odW5hblwtcHJvdmluY2U7CivkoakgPCBzb3VuZFwtb2ZcLWNhcnRzXC1vclwtc3RvbmVzXC1rbm9ja2luZ1wtdG9nZXRoZXI7CivkoIAgPCB0b1wtc2l0XC1jcm9zc1wtbGVnZ2VkXC1saWtlXC1hXC1idWRkaGlzdFwtcHJpZXN0Owor5JyrIDwgbmFtZVwtb2ZcLWFcLXZhbGxleVwtaW5cLXRvZGF5JydzXC1ob2JlaVwtcHJvdmluY2U7CivknJogPCB0b1wtc3BlYWtcLXJlY2tsZXNzbHlcLW9yXC13aXRob3V0XC1mb3JldGhvdWdodDsKK+STpSA8IHNvdW5kXC1vZlwtdGhlXC13cmlnZ2xlZFwtaW5zZWN0c1wtb25cLXRoZVwtZ3Jhc3M7CivkkIQgPCB0aGVcLXVuc2F0aXNmYWN0aW9uXC1vZlwtaHVuZ2VyXC1yZXF1aXJlc1wtbWVhdDsKK+SNtCA8IHRvXC1zcXVlZXplXC1hbmRcLXRvXC1jcm93ZFwtYWdhaW5zdFwtZWFjaFwtb3RoZXI7CivkjYYgPCBjb250YWluZXJcLWZvclwtZ3JhaW5zXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkuIrou4ogPCB0b1wtZ2V0XC1vblwtb3JcLWludG9cLVwoYVwtYnVzXCxcLXRyYWluXCxcLWNhclwtZXRjXC5cKTsKK+SHryA8IGFcLWtpbmRcLW9mXC1iYW1ib29cLXdpdGhcLXBhdHRlcm5zXC1vblwtdGhlXC1oZWFkOwor6KGM5pS/6ZmiIDwgZXhlY3V0aXZlXC15dWFuXC1cKGdvdmVybm1lbnRcLWJvZHlcLWluXC10YWl3YW5cKTsKK+O8sSA8IHRvXC1tYW5hZ2VcLW9yXC1yZWd1bGF0ZVwtdGhlXC1sZWF0aGVyXC1tYXRlcmlhbDsKK+OviiA8IGV2ZW5cLW1lYXN1cmluZ1wtYm9hcmRcLWZvclwtcGVja3NcLWFuZFwtYnVzaGVsczsKK+ethuS4iyA8IHRoZVwtd29yZGluZ1wtYW5kXC1wdXJwb3J0XC1vZlwtd2hhdFwtb25lXC13cml0ZXM7Civkvr/lh70gPCBhblwtaW5mb3JtYWxcLWxldHRlclwtc2VudFwtYnlcLWFuXC1vcmdhbml6YXRpb247CivjqJAgPCB0b1wtc2xhcFwtbGlnaHRseVwtb25cLXRoZVwtY2xvdGhlc1wtb3JcLWNvdmVybGV0Owor46KlIDwgYVwtYmlnXC1waWVjZVwtb2ZcLWxvZ1wtdG9cLWpvaW5cLXRoZVwtdGhpY2tcLXJvcGVzOwor6aaW5bitIDwgY2hpZWZcLVwocmVwcmVzZW50YXRpdmVcLFwtY29ycmVzcG9uZGVudFwsXC1ldGNcKTsKK+i0heWpvyA8IHNvblwtaW5cLWxhd1wtbGl2aW5nXC1hdFwtd2lmZScnc1wtcGFyZW50JydzXC1ob3VzZTsKK+adsOS9m+iMsiA8IFwoamFtZXNcKVwtamVmZm9yZHNcLVwodXNcLXNlbmF0b3JcLWZyb21cLXZlcm1vbnRcKTsKK+iZleaWvCA8IGJlXC1cKGluXC1zb21lXC1zdGF0ZVwsXC1wb3NpdGlvblwsXC1vclwtY29uZGl0aW9uXCk7CivpoqjlnJ/kurrmg4UgPCBsb2NhbFwtY29uZGl0aW9uc1wtXChodW1hblwtYW5kXC1lbnZpcm9ubWVudGFsXCk7CivpmL/mi4nloZTmlq8gPCBcKGFsaVwpXC1hbGF0YXNcLVwoaW5kb25lc2lhblwtZm9yZWlnblwtbWluaXN0ZXJcKTsKK+e+heW4g+aziiA8IGxvcFwtbm9yXC1cKG51Y2xlYXJcLXRlc3RpbmdcLXNpdGVcLWluXC14aW5qaWFuZ1wpOwor5rCR6YCy6buoIDwgZHBwXC1cKGRlbW9jcmF0aWNcLXByb2dyZXNzaXZlXC1wYXJ0eVwsXC10YWl3YW5cKTsKK+aVl+ethiA8IGFcLWZhdWx0eVwtc3Ryb2tlXC1pblwtY2FsbGlncmFwaHlcLW9yXC1wYWludGluZzsKK+ePiCA8IGFuXC1vcm5hbWVudFwtYXR0YWNoZWRcLXRvXC1hXC13b21hbicnc1wtaGFpcnBpbjsKK+icgyA8IG1hcmluZVwtbW9uc3Rlclwtd2hpY2hcLWNhblwtY2hhbmdlXC1pdHNcLXNoYXBlOwor5pabIDwgZHJ5XC1tZWFzdXJlXC1lcXVhbFwtdG9cLXNvbWVcLWZpdmVcLW9yXC10ZW5cLWRvdTsKK+mEryA8IGRpc3RyaWN0XC1pblwtZ2Fuc3VcLWR1cmluZ1wtdGhlXC10YW5nXC1keW5hc3R5Owor5bq5IDwgdGhlXC1sZW5ndGhcLW9mXC1vbmUnJ3NcLXR3b1wtb3V0c3RyZXRjaGVkXC1hcm1zOwor5o+yIDwgdG9cLXNvcnRcLW91dFwtdGhlXC1zdGFsa3NcLXVzZWRcLWluXC1kaXZpbmF0aW9uOwor5Ye66LevIDwgYVwtd2F5XC1vdXRcLVwob2ZcLWFcLWRpZmZpY3VsdFwtc2l0dWF0aW9uXCxcLWV0Y1wpOwor57SE5a6a6LOH6KiK6YCf546HIDwgY29tbWl0dGVkXC1pbmZvcnJtYXRpb25cLXJhdGVcLVwoZnJhbWVcLXJlbGF5XCk7Civnmb3oirHom4cgPCBsb25nXC1ub3NlZFwtcGl0XC12aXBlclwtXChhZ2tpc3Ryb2RvblwtYWN1dHVzXCk7CivkuK3lhbHkuK3lpK4gPCBjaGluZXNlXC1jb21tdW5pc3RcLXBhcnR5XC1jZW50cmFsXC1jb21taXR0ZWU7CivljZrogZ7lvLfoqJggPCBoYXZlXC13aWRlXC1sZWFybmluZ1wtYW5kXC1hXC1yZXRlbnRpdmVcLW1lbW9yeTsKK+W6puaXpSA8IHNjcmF0Y2hcLW91dFwtYVwtZGlmZmljdWx0XCxcLW1lYWdlclwtZXhpc3RlbmNlOwor55y+6K2w5ZOhIDwgbWVtYmVyXC1vZlwtdGhlXC11c1wtaG91c2VcLW9mXC1yZXByZXNlbnRhdGl2ZXM7Civpn40gPCBhXC1sZWF0aGVyXC1rbmVlXC1wYWRcLXdvcm5cLWR1cmluZ1wtc2FjcmlmaWNlczsKK+WgseahiCA8IHJlcG9ydFwtYVwtY2FzZVwtdG9cLXRoZVwtc2VjdXJpdHlcLWF1dGhvcml0aWVzOwor6Y+eIDwgYVwtbGFyZ2VcLWJlbGxcLXVzZWRcLWFzXC1hXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor6LuOIDwgYVwtYnJhc3NcLXBhcnRzXC1mb3JcLWFcLWNhcnRcLWluXC1hbmNpZW50XC1jaGluYTsKK+WFtea6kCA8IG1hbnBvd2VyXC1yZXNvdXJjZXNcLVwoZm9yXC1taWxpdGFyeVwtc2VydmljZVwpOwor6JmLIDwgYXNwYXJhZ3VzXC1hXC12YXJpZXR5XC1vZlwtcmVkXC1zdGFsa2VkXC1taWxsZXQ7Civnmb7lubTlpKfoqIggPCBhXC1wcm9qZWN0XC1vZlwtdml0YWxcLWFuZFwtbGFzdGluZ1wtaW1wb3J0YW5jZTsKK+mCgeenkeijoSA8IFwobWlrZVwpXC1tY2N1cnJ5XC1cKHdoaXRlXC1ob3VzZVwtc3Bva2VzcGVyc29uXCk7Civmi5Toi5fliqnplbcgPCBzcG9pbFwtdGhpbmdzXC10aHJvdWdoXC1leGNlc3NpdmVcLWVudGh1c2lhc207CivloLHlkYrmnIMgPCBwdWJsaWNcLWxlY3R1cmVcLVwod2l0aFwtZ3Vlc3RcLXNwZWFrZXJzXCxcLWV0Y1wpOwor5Yip5Lyv5pu8IDwgXChjb25uZWN0aWN1dFwtc2VuYXRvclwtam9zZXBoXC1pXC5cKVwtbGllYmVybWFuOwor6IKv5pmu57Si5oGpIDwgXChkaXJrXClcLWtlbXB0aG9ybmVcLVwodXNcLXNlbmF0b3JcLWZyb21cLWlkYWhvXCk7Civlu54gPCB0b1wtcHJlcGFyZVwtaG9yc2VzXC1hbmRcLWNoYXJpb3RzXC1mb3JcLWJhdHRsZTsKK+WplyA8IGFcLW5ld1wtYm9yblwtY2hpbGRcLXRoZVwtd2hpbXBlclwtb2ZcLWFuXC1pbmZhbnQ7CivlprogPCB3aWZlXC1vZlwtdGhlXC1sYXN0XC1ydWxlclwtb2ZcLXRoZVwteGlhXC1keW5hc3R5Owor5ZmgIDwgc291bmRcLW1hZGVcLXRvXC1nZXRcLWFcLWhvcnNlXC10b1wtbW92ZVwtZm9yd2FyZDsKK+WkluWtq+Wls+WFkiA8IGdyYW5kZGF1Z2h0ZXJcLVwoZGF1Z2h0ZXJcLW9mXC1vbmUnJ3NcLWRhdWdoZXJcKTsKK+aciembuyA8IFwob2ZcLWFcLWR3ZWxsaW5nXClcLXN1cHBsaWVkXC13aXRoXC1lbGVjdHJpY2l0eTsKK+eZvuaKmOS4jeaSkyA8IGtlZXBcLW9uXC1maWdodGluZ1wtaW5cLXNwaXRlXC1vZlwtYWxsXC1zZXRiYWNrczsKK+elnuWls+WzsCA8IG5hbWVcLW9mXC1hXC1wZWFrXC1ieVwtY2hhbmdqaWFuZ1wtdGhyZWVcLWdvcmdlczsKK+S4giA8IG9ic3RydWN0aW9uXC1vZlwtYnJlYXRoXC1hc1wtaXRcLXNlZWtzXC1yZWxlYXNlOwor6LOB6IeoIDwgXChvZlwtZGlzdGluZ3Vpc2hlZFwtZ3Vlc3RzXClcLWhvbm91clwtbXlcLWhvdXNlOwor5LC/IDwgYVwta2luZFwtb2ZcLXNtYWxsXC1maXNoXC1ncm93blwtaW5cLWZyZXNoXC13YXRlcjsKK+Wuiei6q+eri+WRvSA8IHNldHRsZVwtZG93blwtYW5kXC1nZXRcLW9uXC13aXRoXC1vbmUnJ3NcLXB1cnN1aXQ7Civkor8gPCBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC10b2RheScnc1wtaG9iZWlcLXByb3ZpbmNlOwor5KGIIDwgdGhlXC1jcm9zc1wtYmFyXC1hdFwtdGhlXC1zaWRlc1wtb2ZcLWFcLWNhcnJpdGFnZTsKK+SUiSA8IHNjYXR0ZXJlZFwtb3JcLWRpc3BlcnNlZFwtb2ZcLWdyYXNzXC1hbmRcLXRyZWVzOwor5JGSIDwgYVwta2luZFwtb2ZcLWZhcm1cLXRvb2xcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SQoyA8IHNvdXBcLW1hZGVcLW9mXC1jdXR0ZWRcLW1lYXRcLW1peGVkXC13aXRoXC1ibG9vZDsKK+SMriA8IHNpbGtcLWZhYnJpY3NcLXdpdGhcLXRoZVwtY29sb3JcLW9mXC1uZXdcLWxlYXZlczsKK+SEqCA8IGdyYWluc1wtcHJvZHVjaW5nXC1uZWl0aGVyXC1mbG93ZXJcLW5vclwtZnJ1aXQ7CivkhJ0gPCBzaG93XC1ub1wtcmVzcGVjdFwtdG9cLXRoZVwtc2VydmljZVwtb2ZcLXdvcnNoaXA7CivjvK0gPCB0b1wtc3RlYWR5XC1ieVwtcHV0dGluZ1wtc29tZXRoaW5nXC11bmRlcm5lYXRoOwor47uyIDwgYVwtcml0ZVwtb3JcLXNlcnZpY2VcLWZvclwtYmVnaW5uaW5nXC1vZlwtYXV0dW1uOwor6YCG5ZCR5pOB5aGe6YCa55+lIDwgYmFja3dhcmRcLWV4cGxpY2l0XC1jb25nZXN0aW9uXC1ub3RpZmljYXRpb247CivntpPnh5/nrqHnkIblkozntq3orbcgPCBvcGVyYXRpb25zXC1hZG1pbmlzdHJhdGlvblwtYW5kXC1tYWludGVuYW5jZTsKK+OqqiA8IHRvXC11c2VcLWFcLXdvb2RlblwtcG9sZVwtdG9cLXN1cHBvcnRcLXNvbWV0aGluZzsKK+OipiA8IHdvb2RlblwtcG9zdFwtb3JcLXBpbGVcLWZvclwtdGV0aGVyaW5nXC1hbmltYWxzOwor45yiIDwgYVwtYmFkXC10ZXJtXC1ieVwtd2hpY2hcLW9uZVwtYWRkcmVzc2VzXC1hXC13b21hbjsKK+OakiA8IGNvbmNlYWxlZFwtdGhlXC1zdG9sZW5cLWdvb2RzXC1pblwtb25lJydzXC1kcmVzczsKK+eZveabieeHlSA8IHBhaVwtaHNpYW9cLXllblwtXChkYXVnaHRlclwtb2ZcLXBhaVwtcGluZ1wtcGluZ1wpOwor5LiN57aT5LiA5LqL5LiN6ZW35LiA5pm6IDwgeW91XC1jYW4nJ3RcLWdhaW5cLWtub3dsZWRnZVwtd2l0aG91dFwtcHJhY3RpY2U7Civmnb7kuIsgPCBtYXRzdXNoaXRhXC1cKGphcGFuZXNlXC1lbGVjdHJvbmljc1wtY29tcGFueVwpOwor5LiN5aaZIDwgXChvZlwtYVwtdHVyblwtb2ZcLWV2ZW50c1wpXC1ub3RcLXRvb1wtZW5jb3VyYWdpbmc7CivouKMgPCB0b1wtc3R1bWJsZVwtYW5kXC1mYWxsXC1wcm9uZVwtc3RpZmZcLWluXC1kZWF0aDsKK+m7vCA8IGVtYnJvaWRlcmVkXC1vZmZpY2lhbFwtb3JcLXNhY3JpZmljaWFsXC1yb2JlOwor5bOEIDwgYVwtcmFuZ2VcLW9mXC1wZWFrc1wtaW5cLXNoYW5kb25nXC1hbmRcLWppYW5nc3U7Civli4nlvLcgPCBtYW5hZ2VcLVwodG9cLWRvXC1zb21ldGhpbmdcKVwtd2l0aFwtZGlmZmljdWx0eTsKK+WIpeeEoSA8IGhhdmVcLW5vXC1vdGhlclwtXChjaG9pY2VcLFwtYWx0ZXJuYXRpdmVcLFwtZXRjXCk7CivkuI3lj6/kuIDkuJYgPCBjb25zaWRlclwtb25lc2VsZlwtdW5leGNlbGxlZFwtaW5cLXRoZVwtd29ybGQ7Civph5Hml6XmiJAgPCBraW1cLWlsXC1zdW5nXC1cKGZvcm1lclwtbm9ydGhcLWtvcmVhblwtbGVhZGVyXCk7CivlhazntIQgPCBjb252ZW50aW9uXC1cKGllXCxcLWludGVybmF0aW9uYWxcLWFncmVlbWVudFwpOwor6ZeXIDwgYVwtZnJvbnRpZXJcLXBhc3NcLW9yXC1nYXRlXC10b1wtc2h1dFwtb3JcLWNsb3NlOwor6YK+IDwgYVwtZmV1ZGFsXC1zdGF0ZVwtd2hpY2hcLWV4aXN0ZWRcLWJcLmNcLjcwMFwtNDY5Owor5aSq5qW15YqNIDwgYVwta2luZFwtb2ZcLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1zd29yZFwtcGxheTsKK+W5tOW6piA8IHllYXJcLVwoZWdcLFwtc2Nob29sXC15ZWFyXCxcLWZpc2NhbFwteWVhclwsXC1ldGNcKTsKK+e1leWwjeaVuOWtlyA8IGFic29sdXRlXC1cKGFzXC1vcHBvc2VkXC10b1wtcmVsYXRpdmVcKVwtbnVtYmVyOwor6JapIDwgdHJhbnNsaXRlcmF0aW9uXC1vZlwtJydzYXQnJ1wtaW5cLScnYm9kaGlzYXR0dmE7CivnrYbpoIYgPCBvcmRlclwtb2ZcLXN0cm9rZXNcLW9ic2VydmVkXC1pblwtY2FsbGlncmFwaHk7CivohrAgPCB0b1wtY29va1wtbWVhdFwtZm9yXC1hXC1zYWNyaWZpY2VcLW9yXC1vZmZlcmluZzsKK+aJjumHnSA8IHRvXC1naXZlXC1vclwtaGF2ZVwtYW5cLWFjdXB1bmN0dXJlXC10cmVhdG1lbnQ7Civlj7jms5Xpg6ggPCBqdXN0aWNlXC1kZXBhcm1lbnRcLVwob2ZcLXRoZVwtdXNcLWdvdmVybm1lbnRcKTsKK+eRjCA8IGFcLXdoaXRlXC1vcGFxdWVcLXF1YXJ0elwtdXNlZFwtZm9yXC1vcm5hbWVudHM7CivmvZ8gPCBsYW5kXC1pbXByZWduYXRlZFwtd2l0aFwtc2FsdFwtZnJvbVwtdGhlXC10aWRlOwor6KO95YqRIDwgXChjaGVtaWNhbFwtb3JcLXBoYXJtYWNldXRpY2FsXClcLXByZXBhcmF0aW9uOwor6auU5pyDIDwga25vd1wtXCh0aHJvdWdoXC1sZWFybmluZ1wtb3JcLWJ5XC1leHBlcmllbmNlXCk7Civlgb3miZggPCBmYWtpbmdcLWFcLW1vZGVyblwtb2JqZWN0XC1hc1wtYW5cLWFuY2llbnRcLW9uZTsKK+W6q+e0jeWNlyA8IFwoYW5kcmV3XClcLWN1bmFuYW5cLVwoYWxsZWdlZFwtc2VyaWFsXC1raWxsZXJcKTsKK+a1t+mXnCA8IGN1c3RvbXNcLVwoaWVcLFwtYm9yZGVyXC1jcm9zc2luZ1wtaW5zcGVjdGlvblwpOwor5oqx6aCt6byg56uEIDwgY292ZXJcLXRoZVwtaGVhZFwtYW5kXC1zbmVha1wtYXdheVwtbGlrZVwtYVwtcmF0Owor6buD5bu65Y2XIDwgam9oblwtaHVhbmdcLVwoZGVtb2NyYXRpY1wtcGFydHlcLWZ1bmRyYWlzZXJcKTsKK+S1niA8IGFuY2llbnRcLXB1bmlzaG1lbnRcLW9mXC10YXR0b29pbmdcLXRoZVwtZmFjZTsKK+SxuSA8IGFcLWNvbmRpbWVudFwtbWFkZVwtZnJvbVwtbWluY2VkXC1maXNoXC1zYWx0ZWQ7Civkr7AgPCB1c2VcLWFcLWhhaXJcLXBpblwtdG9cLXNldFwtYW5kXC1kcmVzc1wtdGhlXC1oYWlyOwor5KyvIDwgdG9cLWhhdmVcLWNvbmdlZVwtd2l0aFwtZnJpZW5kc1wtaW5cLW9sZFwtdGltZXM7CivkoYsgPCBkZWNvcmF0aW9uXC1vblwtdGhlXC1uYXZlXC1vclwtaHViXC1vZlwtYVwtd2hlZWw7CivknoMgPCB0b1wtcmVsaWV2ZVwtb3JcLWdpdmVcLWFpZFwtdG9cLXRoZVwtZGlzdHJlc3NlZDsKK+SYryA8IHRoZVwtbGFwZWxcLW9yXC1jb2xsYXJcLW9mXC1hXC1nYXJtZW50XC1vclwtcm9iZTsKK+SYpCA8IGFcLXN3b3JkXC1jb3ZlcmluZ1wtdG9cLXByb3RlY3RcLXRoZVwtc2NhYmJhcmQ7CivkkYwgPCBsd2hhdFwtaXNcLWxlZnRcLW92ZXJcLW9mXC10aGVcLWZvb2RcLVwtb3ZlcnJpcGU7Civki6cgPCBvcm5hbWVubnRzXC1mb3JcLXRoZVwtZnJvbnRhbFwtcGFydFwtb2ZcLXNob2VzOwor5IujIDwgZGVjb3JhdGlvbnNcLXB1dFwtb25cLXRoZVwtbWFuZVwtb3JcLWhvcnNlaGFpcjsKK+SIlSA8IHRoZVwtbWV0YWxcLXRvbmd1ZVwtaW5cLXRoZVwtcmVlZFwtaW5zdHJ1bWVudHM7Civkg7QgPCBhXC13aGV0c3RvbmVcLXVzZWRcLXRvXC1ncmluZFwtcHJlY2lvdXNcLXN0b25lOwor5IG8IDwgdG9cLWxvb2tcLWJ1dFwtc2VlXC1ub3RoaW5nXC1cLVwtXC1hYnNlbnRcLW1pbmRlZDsKK+O/hiA8IGRhbWFnZVwtYnlcLXRoZVwtcGVzdHNcLXRvXC10aGVcLXJpY2VcLXNlZWRsaW5nOwor47u2IDwgYVwtamFkZVwtdHViZVwtd2l0aFwtd2hpdGVcLWFuZFwtbmF0dXJlXC1jb2xvcnM7Civju7AgPCBkZWNvcmF0ZWRcLWphZGVcLW9yXC1vcm5hbWVudFwtb25cLWFcLXNjYWJiYXJkOwor47uhIDwgYVwtamFkZVwtcmluZ1wtd2l0aFwtYVwtc21hbGxcLXNlZ21lbnRcLWN1dFwtb2ZmOwor466GIDwgZWF2ZXNcLXNwcm91dGluZ1wtZnJvbVwtdGhlXC1zdHVtcFwtb2ZcLWFcLXRyZWU7Civjq5QgPCBvbmVcLW9mXC10aGVcLWVpZ2h0XC1kaWFncmFtc1wtZm9yXC1kaXZpbmF0aW9uOwor46q7IDwgYVwta2luZFwtb2ZcLXV0ZW5zaWxcLXVzZWRcLXRvXC1sYWRsZVwtb3V0XC13aW5lOwor46mKIDwgdG9cLXB1bGxcLXVwXC10aGVcLXNsZWV2ZXNcLWFuZFwtc2hvd1wtdGhlXC1hcm1zOwor46etIDwgdG9cLWdldFwtc29tZXRoaW5nXC13aXRoXC1ib3RoXC1yYWlzaW5nXC1oYW5kczsKK+OnmiA8IHRoZVwtZ2VzdHVyZVwtb2ZcLXVzaW5nXC1hblwtaW5kZW50ZWRcLWNvbnRhaW47Civjp4YgPCB0b1wtY292ZXJcLXNvbWV0aGluZ1wtd2l0aFwtYVwtcGllY2VcLW9mXC1jbG90aDsKK+eZvuW7ouS/seiIiCA8IGFsbFwtbmVnbGVjdGVkXC10YXNrc1wtYXJlXC1iZWluZ1wtdW5kZXJ0YWtlbjsKK+OhiyA8IGFcLWtpbmRcLW9mXC1oZWFkZHJlc3NcLWZvclwtbWFuXC1pblwtb2xkXC1jaGluYTsKK+OguCA8IHRoZVwtbGFwZWxcLW9yXC1jb2xsb3JcLW9mXC1hXC1nYXJtZW50XC1vclwtcm9iZTsKK+OcmiA8IGFcLWxvY2FsXC1nb3Zlcm5tZW50XC1wb3N0XC1pblwtYW5jaWVudFwtdGltZXM7CivjmZ8gPCBsb3dcLWx5aW5nXC1vblwtdGhlXC1zaWRlXC1vZlwtYVwtcml2ZXJcLW9yXC1sYWtlOwor6YG/5a+m5bCx6JmbIDwgc3RheVwtY2xlYXJcLW9mXC10aGVcLWVuZW15JydzXC1tYWluXC1mb3JjZVwtYW5kOwor5LiN5rGC55Sa6KejIDwgbm90XC1zZWVrXC10b1wtdW5kZXJzdGFuZFwtdGhpbmdzXC10aG9yb3VnaGx5Owor56KR6KiYIDwgYVwtcmVjb3JkXC1vZlwtZXZlbnRzXC1pbnNjcmliZWRcLW9uXC1hXC10YWJsZXQ7CivkuK3lpK7lhajmnIMgPCBwbGVuYXJ5XC1zZXNzaW9uXC1vZlwtdGhlXC1jZW50cmFsXC1jb21taXR0ZWU7CivljIXovqYgPCB0YWtlXC1jYXJlXC1vZlwtZXZlcnl0aGluZ1wtY29uY2VybmluZ1wtYVwtam9iOwor5Y+k5p2w5ouJ54i+IDwgXChpXC5cLWtcLlwpXC1ndWpyYWxcLVwocHJpbWVcLW1pbmlzdGVyXC1vZlwtaW5kaWFcKTsKK+m7g+WyqeWztiA8IGh1YW5neWFuXC1pc2xhbmRcLVwoaW5cLXRoZVwtc291dGhcLWNoaW5hXC1zZWFcKTsKK+apn+mXnOWgsSA8IG9mZmljaWFsXC1cKGdvdmVybm1lbnRcLW9wZXJhdGVkXClcLW5ld3NwYXBlcjsKK+WJjeWQkeaTgeWhnumAmuefpSA8IGZvcndhcmRcLWV4cGxpY2l0XC1jb25nZXN0aW9uXC1ub3RpZmljYXRpb247Civlh7rpnaIgPCBhY3RcLWluXC1hXC1cKG9mZmljaWFsXC1vclwtcGVyc29uYWxcKVwtY2FwYWNpdHk7Civllo8gPCByZXNwZWN0ZnVsXC1yZXBseVwtb2ZcLWFzc2VudFwtdG9cLXN1cGVyaW9yczsKK+esjyA8IHRhYmxldFwtaGVsZFwtYnlcLXNvbWVvbmVcLWhhdmluZ1wtYXV0aG9yaXR5Owor6La8IDwgY2FsbG91c1wtc2tpblwtb25cLWhhbmRzXC1vclwtZmVldFwuXC1ibGlzdGVyczsKK+ebuOmalCA8IGJlXC1zZXBhcmF0ZWRcLWJ5XC1cKGRpc3RhbmNlXC1vclwtdGltZVwsXC1ldGNcKTsKK+e+juWci+W7o+aSreWFrOWPuCA8IGFiY1wtXChhbWVyaWNhblwtYnJvYWRjYXN0aW5nXC1jb3Jwb3JhdGlvblwpOwor5pmC5aCxIDwgXCJ0aW1lc1wiXC1cKG5ld3NwYXBlclwsXC1lZ1wsXC1uZXdcLXlvcmtcLXRpbWVzXCk7CivpgJroiKogPCBjb25uZWN0ZWRcLWJ5XC1haXJcfHNlYVwtdHJhZmZpY1wtb3JcLXNlcnZpY2U7CivmoLjmrablmajnoJToo73oqIjlioMgPCBudWNsZWFyXC13ZWFwb25zXC1cKG1hbnVmYWN0dXJpbmdcKVwtcHJvZ3JhbTsKK+WGt+a3oemXnOS/giA8IGNvbGRcLXJlbGF0aW9uc1wtXChlXC5nXC5cLWJldHdlZW5cLWNvdW50cmllc1wpOwor5LiN5LqG5LqG5LmLIDwgc2V0dGxlXC1hXC1tYXR0ZXJcLWJ5XC1sZWF2aW5nXC1pdFwtdW5zZXR0bGVkOwor6YG35bGFIDwgdG9cLW1vdmVcLVwoZnJvbVwtb25lXC1yZXNpZGVuY2VcLXRvXC1hbm90aGVyXCk7CivppZ0gPCB0b1wtZmVlZFwtYW5cLWluZmFudFwtYnlcLWhhbmRcLXN0ZWFtZWRcLWJyZWFkOwor5LiN5Y2z5LiN6ZuiIDwgYmVcLW5laXRoZXJcLXRvb1wtZmFtaWxpYXJcLW5vclwtdG9vXC1kaXN0YW50Owor57i95pS/5rK76YOoIDwgXChtaWxpdGFyeVwpXC1nZW5lcmFsXC1wb2xpdGljYWxcLWRlcGFydG1lbnQ7Civlk4joo6Hmo67lj7Llr4bnibkgPCBoYXJyaXNvblwtc2NobWl0dFwtXChhcG9sbG9cLTFcLTdcLWFzdHJvbmF1dFwpOwor5YWl5a24546HIDwgcGVyY2VudGFnZVwtb2ZcLWNoaWxkcmVuXC13aG9cLWVudGVyXC1zY2hvb2w7Civoo40gPCBhXC1ib3JkZXJcLW9yXC1iYW5kXC1vblwtdGhlXC1lZGdlXC1vZlwtYVwtZHJlc3M7CivlubTku6MgPCBhXC1kZWNhZGVcLW9mXC1hXC1jZW50dXJ5XC1cKGVnXCxcLXRoZVwtc2l4dGllc1wpOwor55Wi5YW25Yqf5LqO5LiA5b25IDwgYWNjb21wbGlzaFwtdGhlXC13aG9sZVwtdGFza1wtYXRcLW9uZVwtc3Ryb2tlOwor5Y2K6Lev5Ye65a62IDwgc3dpdGNoXC10b1wtYVwtam9iXC1vbmVcLXdhc1wtbm90XC10cmFpbmVkXC1mb3I7CivnsaogPCBhXC13ZWlyXC1vZlwtYmFtYm9vXC10b1wtY2F0Y2hcLWZpc2hcLW9yXC1jcmFiczsKK+eYsiA8IHNwYXNtc1wtb3JcLWNvbnZ1bHNpb25zXC1pblwteW91bmdcLWNoaWxkcmVuOwor55GyIDwgdGlua2xpbmdcLXNvdW5kXC10aW5rbGluZ1wtb2ZcLXBlbmRhbnRcLWdlbXM7Civnl4Xmr5LlrbjlrrYgPCB2aXJvbG9naXN0XC1cKHBlcnNvblwtd2hvXC1zdHVkaWVzXC12aXJ1c2VzXCk7Civlu7rnq4vmraPlvI/lpJbkuqTpl5zkv4IgPCBmb3JtYWxseVwtZXN0YWJsaXNoXC1kaXBsb21hdGljXC1yZWxhdGlvbnM7CivojIXoh7rphZIgPCBtYW90YWlcLW9yXC1tYWl0YWlcLVwoY2hpbmVzZVwtc3Ryb25nXC1kcmlua1wpOwor57WQ56S+6Ieq55SxIDwgXChjb25zdGl0dXRpb25hbFwpXC1mcmVlZG9tXC1vZlwtYXNzb2NpYXRpb247CivlvJ0gPCB0aGVcLXBhcnRcLW9mXC1hXC1ib3dcLWdyYXNwZWRcLXdoZW5cLXNob290aW5nOwor5Zas55+zIDwgcWlhb1wtc2hpXC1cKGNoaW5lc2VcLWxlYWRlcnNoaXBcLWNvbnRlbmRlclwpOwor6LGO6YmkIDwgXChzdHJhaWdodFwtZG93blwtaG9va2VkXC1jaGFyYWN0ZXJcLXN0cm9rZVwpOwor5KWcIDwgcHJvdGVjdGl2ZVwtbWV0YWxcLW9uXC10aGVcLWF4aXNcLW9mXC1hXC13aGVlbDsKK+aIkOacrCA8IFwobWFudWZhY3R1cmluZ1wsXC1wcm9kdWN0aW9uXCxcLWV0Y1wuXClcLWNvc3RzOwor5JmWIDwgYVwtY2xvdGhcLXRvXC1jYXJyeVwtYW5cLWlpbmZhbnRcLW9uXC10aGVcLWJhY2s7CivnjovnvrLkuYsgPCBuYW1lXC1vZlwtYVwtcGVyc29uXCxcLWFcLWZhbW91c1wtY2FsbGlncmFwaGVyOwor5I+rIDwgaW5cLWJldHdlZW5cLW9mXC10aGVcLWFiZG9tZW5cLWFuZFwtdGhlXC1zcGluZTsKK+SNiSA8IHRyYWNlc1wtb3JcLW1hcmtzXC1vZlwtaW5jb21wbGV0ZVwtb3JcLWRhbWFnZTsKK+SMuCA8IGZpbmVcLXNpbGtcLWZhYnJpY1wtb2ZcLWJyaWdodFwtd2hpdGVcLWNvbG91cjsKK+mCiuinkuenkSA8IGxlZnRvdmVyXC1iaXRzXC1hbmRcLXBpZWNlc1wtXChvZlwtaW5kdXN0cmlhbDsKK+SLvyA8IGFcLWRlY29yYXRpdmVcLWtub3RcLW1hZGVcLW9mXC1jb2xvcmZ1bFwtc2lsazsKK+SInCA8IGFcLXRocmVhZFwtdXNlZFwtYnlcLWNhcnBlbnRlcnNcLWZvclwtbWFya2luZzsKK+SIhiA8IGFcLXNoYWxsb3dcLWFuZFwtbG9uZ1wtc2hhcGVkXC1iYW1ib29cLWJhc2tldDsKK+S7o+eQhiA8IGFjdGluZ1wtXCh0ZW1wb3JhcmlseVwtZmlsbGluZ1wtYVwtcG9zaXRpb25cKTsKK+O/uSA8IGp1dHRpbmdcLW9uXC10aGVcLWVwaWRlcm1pc1wtb3JcLXRoZVwtY3V0aWNsZTsKK+O8qyA8IGVhcnRoZW53YXJlXC1vclwtcG90dGVyeVwtd2l0aFwtYmlnXC1vcGVuaW5nOwor47W7IDwgdG9cLXBlcnNwaXJlXC1mcm9tXC1lbWJhcnJhc3NtZW50XC1vclwtc2hhbWU7CivolJPlu7blhajlnIsgPCB0b1wtc3ByZWFkXC10aHJvdWdob3V0XC10aGVcLWVudGlyZVwtY291bnRyeTsKK+OtqSA8IGFcLWtpbmRcLW9mXC10cmVlXC1jYW5cLWJlXC11c2VkXC1hc1wtZHllXC1zdHVmZjsKK+OjmSA8IHRvXC13YWxrXC1pblwtYW5cLWVhc3lcLWFuZFwtbGVpc3VyZWx5XC1tYW5uZXI7CivjoqogPCB0b1wtZHJhd1wtYVwtZnVsbFwtYm93XC10b1wtYWltXC1hdFwtdGhlXC10YXJnZXQ7CivlrqLlu7MgPCBkcmF3aW5nXC1yb29tXC1cKHJvb21cLWZvclwtYXJyaXZpbmdcLWd1ZXN0c1wpOwor45iKIDwgdGhlXC1hYnJ1cHRcLWFuZFwtaGFzdHlcLXNvdW5kXC1vZlwtdGhlXC1jcm93ZDsKK+OWriA8IGFuXC1pbnRlcmplY3Rpb25cLXVzZWRcLWluXC1wb2Vtc1wtYW5kXC1zb25nczsKK+OUriA8IGFcLWtpbmRcLW9mXC1hbmltYWxcLXdoaWNoXC1sb29rc1wtbGlrZVwtYVwtcmF0Owor6JOu6ZynIDwgd2F4XC1hcHBsZVwtXChhXC1yZWRkaXNoXC1wZWFyXC1zaGFwZWRcLWZydWl0XCk7CivpoYznsL0gPCB0b1wtd3JpdGVcLXRoZVwtdGl0bGVcLW9mXC1hXC1ib29rXC1vblwtYVwtbGFiZWw7Civnmb7mgJ3kuI3op6MgPCByZW1haW5cLXB1enpsZWRcLWFmdGVyXC1wb25kZXJpbmdcLW92ZXJcLXN0aDsKK+WNiuWLnuWLleWKmyA8IG9uZVwtYWJsZVwtdG9cLWRvXC1saWdodFwtbWFudWFsXC1sYWJvdXJcLW9ubHk7CivnuL3lvozli6Tpg6ggPCBcKG1pbGl0YXJ5XClcLWdlbmVyYWxcLWxvZ2lzdGljc1wtZGVwYXJ0bWVudDsKK+S4gOWci+WFqeWItiA8IG9uZVwtY291bnRyeVwsXC10d29cLXN5c3RlbXNcLVwoY2hpbmFcLXRhaXdhblwpOwor5pO65LqL5a+m6Kyb6YGT55CGIDwgcHJlc2VudFwtdGhlXC1mYWN0c1wtYW5kXC1yZWFzb25cLXRoaW5nc1wtb3V0Owor6ICB5LqMIDwgdGhlXC1zZWNvbmRcLWNoaWxkXC1vclwtYnJvdGhlclwtXChvclwtc2lzdGVyXCk7CivkuK3ljZcgPCBcKGFiYnJldmlhdGlvblwtZm9yXClcLWNoaW5hXC1cLVwtc291dGhcLWFmcmljYTsKK+mYv+aYjOaXjyA8IHRoZVwtYWNoYW5nXC1uYXRpb25hbGl0eVwtbGl2aW5nXC1pblwteXVubmFuOwor54mI5qyhIDwgdGhlXC1vcmRlclwtaW5cLXdoaWNoXC1lZGl0aW9uc1wtYXJlXC1wcmludGVkOwor5ZWnIDwgaW50ZXJqZWN0aW9uXC1vZlwtYXBwcm92YWxcLW9yXC1hZG1pcmF0aW9uOwor5o26IDwgdG9cLXByZXNzXC1kb3duXC1oZWF2aWx5XC13aXRoXC10aGVcLWZpbmdlcnM7CivlgqMgPCB0aGVcLWRhaVwtbWlub3JpdHlcLWxpdmluZ1wtaW5cLXNvdXRoXC1jaGluYTsKK+m4qSA8IGFcLWJpcmRcLXJlc2VtYmxpbmdcLXRoZVwtc2VjcmV0YXJ5XC1mYWxjb247Civmt50gPCBuYW1lXC1vZlwtYW5cLWFmZmx1ZW50XC1vZlwtdGhlXC1wb3lhbmdcLWxha2U7Civpg4UgPCB0b1wtZ29cLXVwXC10b1wuXC1mbG91cmlzaGluZ1wtYVwtc3VwZXJsYXRpdmU7CivovasgPCBhXC1ibG9ja1wtdGhhdFwta2VlcHNcLWFcLXdoZWVsXC1mcm9tXC1tb3Zpbmc7CivltrcgPCBhXC1yYW5nZVwtb2ZcLW1vdW50YWluc1wtaW5cLWh1bmFuXC1wcm92aW5jZTsKK+mssiA8IHR5cGVcLW9mXC1jYWxkcm9uXC13aXRoXC10aHJlZVwtaG9sbG93XC1sZWdzOwor5YiWIDwgY3V0dGluZ1wtb2ZmXC1mZWV0XC1hc1wtZm9ybVwtb2ZcLXB1bmlzaG1lbnQ7CivnqbggPCB0aGVcLWdsb29tXC1vZlwtdGhlXC1ncmF2ZVwtYVwtdG9tYlwtb3JcLWdyYXZlOwor6JiFIDwgYVwtZnJhZ3JhbnRcLXBsYW50XC10aGVcLXJvb3RcLWlzXC1tZWRpY2luYWw7Civnmb3poK3oq6fogIEgPCBsaXZlXC10b1wtcmlwZVwtb2xkXC1hZ2VcLWluXC1jb25qdWdhbFwtYmxpc3M7Civlj5flgrcgPCBzdWZmZXJcLWluanVyaWVzXC1cKGluXC1hblwtYWNjaWRlbnRcLFwtZXRjXC5cKTsKK+iogueriyA8IGFncmVlXC10b1wtXCh0cmVhdHlcLFwtY29udHJhY3RcLFwtYWdyZWVtZW50XCk7CivlpI/mm4YgPCB0aGVcLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1sdW5hclwtY2FsZW5kYXI7CivmiJDljYPkuIrokKwgPCBieVwtdGhlXC10aG91c2FuZHNcLWFuZFwtdGVuc1wtb2ZcLXRob3VzYW5kczsKK+W4q+evhCA8IG5vcm1hbFwtXChlZ1wsXC1iZWlqaW5nXC1ub3JtYWxcLXVuaXZlcnNpdHlcKTsKK+S9qea0m+ilvyA8IFwobmFuY3lcKVwtcGVsb3NpXC1cKG1lbWJlclwtb2ZcLXVzXC1jb25ncmVzc1wpOwor6amGIDwgdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGluZ1wtYnVkZGhpc3RcLWJvb2tzOwor6aePIDwgb2Zmc3ByaW5nXC1vZlwtYVwtc3RhbGxpb25cLWFuZFwtYVwtc2hlXC1tdWxlOwor5buj5aC0IDwgYVwtcHVibGljXC1zcXVhcmVcLVwoZWdcLFwtdGlhbmFubWVuXC1zcXVhcmVcKTsKK+mJjCA8IHRoZVwtYmVsbHNcLW9uXC10aGVcLWNhcnRcLWluXC1hbmNpZW50XC1jaGluYTsKK+ijnOelqCA8IGJ1eVwtb25lJydzXC10aWNrZXRcLWFmdGVyXC10aGVcLW5vcm1hbFwtdGltZTsKK+eZvOeHkiA8IGhhdmVcLWFcLWhpZ2hcLXRlbXBlcmF0dXJlXC1cKGZyb21cLWlsbG5lc3NcKTsKK+ippyA8IHRvXC1leGFtaW5lXC1pbnRvXC1qdWRpY2lhbGx5XC10b1wtZmluZFwtb3V0Owor57azIDwgYVwtY2xvdGhcLXRvXC1jYXJyeVwtYW5cLWluZmFudFwtb25cLXRoZVwtYmFjazsKK+e2liA8IHRoZVwtaGFuZ2luZ1wtZmxhcFwtaW5cLXRoZVwtZnJvbnRcLW9mXC1hXC1oYXQ7CivnpasgPCB0cmllbm5pYWxcLXNhY3JpZmljZVwtdG9cLW9uZScnc1wtYW5jZXN0b3JzOwor55uG5ZywIDwgYmFzaW5cLVwobG93XC1seWluZ1wtZ2VvZ3JhcGhpY2FsXC1mZWF0dXJlXCk7Civno7sgPCBhXC10cmlidXRhcnlcLW9mXC10aGVcLXdlaVwtcml2ZXJcLWluXC1zaGFueGk7CivmiYvot6EgPCBzYlwuJydzXC1vcmlnaW5hbFwtaGFuZHdyaXRpbmdcLW9yXC1wYWludGluZzsKK+eSp+mChCA8IHJldHVyblwtXChhXC1ib3Jyb3dlZFwtb2JqZWN0XClcLXdpdGhcLXRoYW5rczsKK+S4jeWuo+iAjOaIsCA8IG9wZW5cLWhvc3RpbGl0aWVzXC13aXRob3V0XC1kZWNsYXJpbmdcLXdhcjsKK+Wci+mam+mbu+S/oeiBr+ebnyA8IGludGVybmF0aW9uYWxcLXRlbGVjb21tdW5pY2F0aW9uc1wtdW5pb247CivkuI3pgaDljYPph4wgPCBtYWtlXC1saWdodFwtb2ZcLXRyYXZlbGxpbmdcLWFcLXRob3VzYW5kXC1saTsKK+aWtCA8IHRoZVwtc291bmRcLW9mXC13YXRlclwtZmxvd2luZ1wtYW1vbmdcLXJvY2tzOwor5a6J5bGF5qiC5qWtIDwgbGl2ZVwtYW5kXC13b3JrXC1pblwtcGVhY2VcLWFuZFwtY29udGVudG1lbnQ7CivooajlprkgPCBmZW1hbGVcLWNvdXNpblwtd2l0aFwtYVwtZGlmZmVyZW50XC1zdXJuYW1lOwor5bSRIDwga3VubHVuXC1tb3VudGFpbnNcLWluXC1qaWFuZ1wtc3VcLXByb3ZpbmNlXC47Civmi4bmlaMgPCB0b1wtYnJlYWtcLXVwXC1cKGFcLW1hcnJpYWdlXCxcLWZhbWlseVwsXC1ldGNcLlwpOwor5ZCQ6a2v55WqIDwgdGhlXC10dXJmYW5cLWJhc2luXCxcLWluXC14aW5qaWFuZ1wtcHJvdmluY2U7Civlgpnlk4EgPCBtYWNoaW5lXC1wYXJ0c1wtb3JcLXRvb2xzXC1rZXB0XC1pblwtcmVzZXJ2ZTsKK+SwmCA8IHRvXC1raWxsXC1ieVwtaGFuZ2luZ1wtb3JcLXRvXC1zdHJhbmd1bGF0aW9uOwor5K6XIDwgd2hpdGVcLWZyb21cLWZvcmVoZWFkXC10b1wtbGlwc1wtb2ZcLWFcLWhvcnNlOwor5KqyIDwgYW5jaWVudFwtcHVuaXNobWVudFwtb2ZcLXNoYXZpbmdcLXRoZVwtaGVhZDsKK+SpuCA8IGZpbmVcLXdvb2xlblwtYmxhbmtldFwtb25cLXRvcFwtb2ZcLWFcLXNhZGRsZTsKK+SpqyA8IGFcLXVuaXRcLXRvXC1jb3VudFwtc2hvZXNcLWluXC1hbmNpZW50XC10aW1lczsKK+SmhSA8IGFcLWtpbmRcLW9mXC13ZWFwb25cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SlkCA8IGNvb2tpbmdcLXV0ZW5zaWxzXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkoocgPCBhXC1zb25cLXdob1wtaXNcLW5vdFwtc29cLWdvb2RcLWFzXC1oaXNcLWZhdGhlcjsKK+SblyA8IHRvXC1wcnlcLWludG9cLW9yXC1leHBvc2VcLWFub3RoZXInJ3NcLXNlY3JldDsKK+SahSA8IHRvXC1sb29rXC1hZnRlclwtaG9tZVwtb3JcLWRvbWVzdGljXC1hZmZhaXJzOwor5JioIDwgc2hvcnRcLWxlZ2dpbmdzXC1kcmF3blwtb3ZlclwtdGhlXC10cm91c2VyczsKK+SWvyA8IGFcLWtpbmRcLW9mXC1jbGFtXC13aXRoXC10aGlja1wtd2hpdGVcLXNoZWxsczsKK+SVsCA8IGFcLXNlY29uZFwtbmFtZVwtZm9yXC1yaGl6b21lXC1vZlwtd2luZFwtd2VlZDsKK+STrSA8IHdlZWRcLW9yXC1ncmFzc1wtd2l0aFwtbmFycm93XC10aGlja1wtZ2xhZGVzOwor5Y2K6ISr55SiIDwgcGFydGx5XC1yZWxlYXNlZFwtZnJvbVwtcHJvZHVjdGl2ZVwtbGFib3VyOwor5I27IDwgeW91bmdcLWdvYXRcLW9mXC1zaGVlcFwtdW5kZXJcLW9uZVwteWVhclwtb2xkOwor5I2mIDwgYVwta2luZFwtb2ZcLXR1cmJhblwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5Iy5IDwgYVwtZ2FybWVudFwtb2ZcLW9uZVwtY29sb3VyXC13aXRoXC1ub1wtbGluaW5nOwor5LiN5Y+v5ZCM5pel6ICM6KqeIDwgY2Fubm90XC1iZVwtbWVudGlvbmVkXC1pblwtdGhlXC1zYW1lXC1icmVhdGg7CivkhKogPCBoYW5naW5nXC1kb3duXC1vZlwtdGhlXC1lYXJzXC1vZlwtdGhlXC1ncmFpbnM7CivkhI0gPCB5ZWFyXC1lbmRcLXNhY3JpZmljZVwtb2ZcLXRoZVwtemhvdVwtZHluYXN0eTsKK+O9oCA8IGNvbm5lY3Rpb25cLW9mXC10aGVcLWRpdGNoZXNcLW9yXC13YXRlcndheXM7CivjvK4gPCB0b1wtcnViXC1vdXRcLXRoZVwtZmlsdGhcLXdpdGhcLWJyb2tlblwtdGlsZXM7Civjq6kgPCB0aGVcLWZpcnN0XC1vZlwtdGhlXC1mb3VyXC1zZWFzb25cLVwtXC1cLXNwcmluZzsKK+OknSA8IHBhbHBpdGF0aW9uXC1vclwtZmx1dHRlcmluZ1wtb2ZcLXRoZVwtaGVhcnQ7Civjn4wgPCBhXC1tb3VudGFpblwtaW5cLXRvZGF5JydzXC1zaWNodWFuXC1wcm92aW5jZTsKK+OUryA8IGFcLWxhcmdlXC1iYXNrZXRcLWZvclwtaG9sZGluZ1wtY29va2VkXC1yaWNlOwor6aaW5Lu7IDwgZmlyc3RcLXBlcnNvblwtdG9cLWJlXC1hcHBvaW50ZWRcLXRvXC1hXC1wb3N0Owor57i95pu46KiYIDwgZ2VuZXJhbFwtc2VjcmV0YXJ5XC1cKG9mXC1jb21tdW5pc3RcLXBhcnR5XCk7Civpg6jplbcgPCBoZWFkXC1vZlwtYVwtXChnb3Zlcm5tZW50XCxcLWV0Y1wpXC1kZXBhcnRtZW50Owor5q+U6YePIDwgdGFrZVwtcm91Z2hcLW1lYXN1cmVtZW50c1wtXCh3aXRoXC10aGVcLWhhbmQ7CivpgY3pq5TpsZflgrcgPCBjb3ZlcmVkXC1hbGxcLW92ZXJcLXdpdGhcLWN1dHNcLWFuZFwtYnJ1aXNlczsKK+esmSA8IHNtYWxsXC1nb3VyZFwtc2hhcGVkXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5ruVIDwgYW5cLWFuY2llbnRcLXN0YXRlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6ZWbIDwgbGFyZ2VcLWJlbGxcLXVzZWRcLWFzXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor6K61IDwgYW5cLWludGVyamVjdGlvblwtdXNlZFwtZXhwcmVzc1wtc3VycHJpc2U7Civms5QgPCB3YXRlclwtZnJvbVwtd2FzaGluZ1wtcmljZVwtdG9cLWJvaWxcLXRoaWNrOwor55iQIDwgdG9cLWRpZVwtaW5cLXByaXNvblwtZnJvbVwtY29sZFwtYW5kXC1odW5nZXI7Civmo7wgPCBiZWFtc1wtaW5cLXRoZVwtcm9vZlwtb2ZcLWFcLWhvdXNlXC1jb25mdXNlZDsKK+aVmeaOiOeVouern+aYr+aVmeaOiCA8IHByb2Zlc3NvcnNcLWFyZVwtXChhZnRlclwtYWxsXClcLXByb2Zlc3NvcnM7Civnmb7otrPkuYvon7LmrbvogIzkuI3lg7UgPCBhXC1jZW50aXBlZGVcLWRpZXNcLWJ1dFwtbmV2ZXJcLWZhbGxzXC1kb3duOwor5Y2a5oSbIDwgdW5pdmVyc2FsXC1mcmF0ZXJuaXR5XC1cKG9yXC1icm90aGVyaG9vZFwpOwor5pWX54GrIDwgcmVsaWV2ZVwtaW5mbGFtbWF0aW9uXC1vclwtaW50ZXJuYWxcLWhlYXQ7CivntpPnh58gPCBlbmdhZ2VcLWluXC1cKGFcLWJ1c2luZXNzXC1hY3Rpdml0eVwsXC1ldGNcLlwpOwor6ZuG5oiQIDwgaW50ZWdyYXRlZFwtXChhc1wtaW5cLWludGVncmF0ZWRcLWNpcmN1aXRcKTsKK+m6hSA8IGFcLXNtYWxsXC1zcG90dGVkXC1kZWVyXC1mb3VuZFwtaW5cLW5cLmNoaW5hOwor5YWn5oeu5aSW5oKjIDwgZG9tZXN0aWNcLXN0cmlmZVwtYW5kXC1mb3JlaWduXC1hZ3Jlc3Npb247CivlronlhajoiIfkuqTmj5vlp5Tlk6HmnIMgPCBzZWN1cml0aWVzXC1hbmRcLWV4Y2hhbmdlXC1jb21tdW5pY2F0aW9uOwor5pS/5aeUIDwgcG9saXRpY2FsXC1jb21taXNzYXJcLVwod2l0aGluXC10aGVcLWFybXlcKTsKK+ayiOWci+aUviA8IGNoaW5lc2VcLWZvcmVpZ25cLW1pbmlzdHJ5XC1zcG9rZXNwZXJzb247Civnt6jlsI4gPCB3cml0ZVwtYW5kXC1kaXJlY3RcLVwoYVwtcGxheVwsXC1maWxtXCxcLWV0Y1wuXCk7CivooYzpp5sgPCBcKHZlaGljbGVzXCxcLWV0Y1wuXClcLXRyYXZlbFwtYWxvbmdcLWFcLXJvdXRlOwor5YW156iuIDwgXChtaWxpdGFyeVwpXC1icmFuY2hcLW9mXC10aGVcLWFybWVkXC1mb3JjZXM7CivpmLwgPCB0aGVcLXN0ZXBzXC1sZWFkaW5nXC10b1wtdGhlXC1lYXN0ZXJuXC1kb29yOwor6YC85a6uIDwgZm9yY2VcLXRoZVwta2luZ1wtb3JcLWVtcGVyb3JcLXRvXC1hYmRpY2F0ZTsKK+i8lyA8IGFcLWNyb3NzXC1iYXJcLWF0XC1lbmRcLW9mXC1hXC1jYXJyaWFnZVwtcG9sZTsKK+iIquihjCA8IHNhaWxcLW9yXC1mbHlcLVwoaW5cLWFpclwsXC13YXRlclwsXC1vclwtc3BhY2VcKTsKK+ipjiA8IGludGVyamVjdGlvblwtdXNlZFwtdG9cLWV4cHJlc3NcLXN1cnByaXNlOwor57yMIDwgY29hcnNlXC1jb3R0b25cLWNsb3RoXC11c2VkXC1mb3JcLW1vdXJuaW5nOwor56GcIDwgdGhlXC1zb3VuZFwtb2ZcLXN0b25lc1wta25vY2tpbmdcLXRvZ2V0aGVyOwor55u45L+hIDwgYmVcLWNvbnZpbmNlZFwtXCh0aGF0XC1zb21ldGhpbmdcLWlzXC10cnVlXCk7CivniokgPCBhblwtb3hcLXdpdGhcLXllbGxvd1wtaGFpclwtYW5kXC1ibGFja1wtbGlwczsKK+aLlOenpyA8IHB1bGxcLXVwXC1zZWVkbGluZ3NcLVwoZm9yXC10cmFuc3BsYW50aW5nXCk7CivnhZ0gPCB0d2lzdGVkXC1wYXBlclwtZm9yXC1saWdodGluZ1wtY2lnYXJldHRlczsKK+aJi+ijoSA8IFwoYVwtc2l0dWF0aW9uXC1pc1wpXC1pblwtXChzb21lb25lJydzXClcLWhhbmRzOwor5o2V5pKIIDwgZmlzaFwtZm9yXC1cKGFxdWF0aWNcLWFuaW1hbHNcLWFuZFwtcGxhbnRzXCk7CivnqYbmoYLoi7EgPCBtdVwtZ3VpXC15aW5nXC1cKG5hbWVcLW9mXC1hXC13b21hblwtd2FycmlvclwpOwor57C95ZCNIDwgdG9cLXNpZ25cLVwob25lJydzXC1uYW1lXC13aXRoXC1hXC1wZW5cLFwtZXRjXC5cKTsKK+a/n+WNlyA8IGppJyduYW5cLVwoY2FwaXRhbFwtb2ZcLXNoYW5kb25nXC1wcm92aW5jZVwpOwor5bisIDwgdGhlXC1za2lydFwtb2ZcLWFcLWxhZHknJ3NcLWRyZXNzXC1wZXR0aWNvYXQ7CivltaAgPCBhXC12YWxsZXlcLXdpdGhcLWFcLXN0cmVhbVwtaW5cLWl0XC5cLWFcLWdvcmdlOwor6Jmb5pOs6YCa6YGT5qiZ6KqM56ymIDwgdmlydHVhbFwtY2hhbm5lbFwtY29ubmVjdGlvblwtaWRlbnRpZmllcjsKK+Wxj+ainSA8IHNldFwtb2ZcLVwodXN1YWxseVwtZm91clwpXC1oYW5naW5nXC1zY3JvbGxzOwor5a2r5aWz5YWSIDwgZ3JhbmRkYXVnaHRlclwtXChkYXVnaHRlclwtb2ZcLW9uZScnc1wtc29uXCk7Civnqbbnq58gPCBhZnRlclwtYWxsXC1cKHdoZW5cLWFsbFwtaXNcLXNhaWRcLWFuZFwtZG9uZVwpOwor6Y6u5rGfIDwgemhlbmppYW5nXC1cKGNpdHlcKVwsXC1pblwtamlhbmdzdVwtcHJvdmluY2U7CivksZcgPCBhXC1sb25nXC1uYXJyb3dcLWZpc2hcLXRyaWNoaXVydXNcLWFybWF0dXM7CivksZQgPCBhXC1sb25nXC1uYXJyb3dcLWFuZFwtc2lsdmVyXC1jb2xvcmVkXC1maXNoOwor5KqTIDwgYVwtbWV0YWxcLW9ybmFtZW50XC1vblwtc29tZVwta2luZFwtb2ZcLWJlbHQ7CivkqJkgPCB0b1wtcmFpblwtY2F0c1wtYW5kXC1kb2dzXC1mb3JcLWFcLWxvbmdcLXRpbWU7CivkpoogPCBhblwtYXBwbGlhbmNlXC1mb3JcLXdhbGtpbmdcLW9uXC10aGVcLXNhbmRzOwor5KWCIDwgdGhlXC1zaGFycFwtZWRnZVwtb2ZcLWFcLXNob3ZlbFwtb3JcLWFcLXNwYWRlOwor5KGVIDwgdGhlXC1yZWFyXC1wbGF0Zm9ybVwtb2ZcLWFcLWxpZ2h0XC1jYXJyaWFnZTsKK+SclCA8IHRvXC1zcGVha1wtb25cLXRoZVwtaWRlYXNcLW9mXC1zb21lb25lXC1lbHNlOwor5rK755eF5pWR5Lq6IDwgY3VyZVwtdGhlXC1zaWNrbmVzc1wtdG9cLXNhdmVcLXRoZVwtcGF0aWVudDsKK+SWoCA8IGFcLWtpbmRcLW9mXC1saXphcmRcLWZvdW5kXC1pblwtZGFtcFwtcGxhY2VzOwor5JacIDwgdGhlXC1maWdodGluZ1wtc291bmRcLW1hZGVcLWJ5XC10d29cLXRpZ2VyczsKK+acieW/l+iAheS6i+ern+aIkCA8IHdoZXJlXC10aGVyZVwtaXNcLWFcLXdpbGxcLFwtdGhlcmVcLWlzXC1hXC13YXk7CivkjpIgPCBmbHlpbmdcLXF1aWNrbHlcLWFuZFwtdG9cLWF0dGFja1wtc3VkZGVubHk7Civki4ogPCBkZWNvcmF0aW9uc1wtb2ZcLXRoZVwtZW1wZXJvcicnc1wtY2FycmlhZ2U7CivkgJsgPCB0b1wtbG9va1wtZmFyXC13aXRoXC10aGVcLWV5ZXNcLWhhbGZcLWNsb3NlZDsKK+O8qCA8IGFcLXdhdGVyXC1qYXJcLXdpdGhcLWVhcnNcLWZvclwtY2FycnlpbmdcLWl0Owor47uOIDwgYVwtbGFyZ2VcLWhvcml6b250YWxcLW11c2ljYWxcLWluc3RydW1lbnQ7CivjuqogPCBhblwtdW5jYXJ2ZWRcLW9mXC11bnBvbGlzaGVkXC1qYWRlXC1vclwtZ2VtOwor47W/IDwgZW5kbGVzc2x5XC1sb25nXC1vclwtdmFzdFwtd2F0ZXJcLWN1cnJlbnRzOwor47SpIDwgbmFtZVwtb2ZcLWFcLXN0cmVhbVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+OvmCA8IGFcLXNtYWxsXC13b29kZW5cLXN0YW5kXC1oYXZpbmdcLWZvdXJcLWxlZ3M7CivjpI0gPCBuZXZlclwtcmV2ZWFsXC1vbmUnJ3NcLWZlZWxpbmdcLW9yXC1lbW90aW9uOwor46OgIDwgYVwtcm9wZVwtZGVjb3JhdGVkXC13aXRoXC1icm9uemVcLW9ybmFtZW50Owor46GRIDwgYW5jaWVudFwtbW91cm5pbmdcLXR1cmJhblwtd29yblwtYnlcLXdvbWVuOwor46CRIDwgaGlnaFwtbW91bnRhaW5cLXN0ZWVwXC1ydWdnZWRcLWFuZFwtdW5ldmVuOwor46CEIDwgbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1pblwteXVubmFuXC1wcm92aW5jZTsKK+OggSA8IGlycmVndWxhclwtb3V0bGluZVwtb2ZcLWFcLXJhbmdlXC1vZlwtaGlsbHM7Civjn5ogPCBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWluXC1zaGFueGlcLXByb3ZpbmNlOwor45q2IDwgd2lmZVwtb2ZcLW9uZScnc1wtaHVzYmFuZCcnc1wtZWxkZXJcLWJyb3RoZXI7CivjmIggPCBhYmxlXC10b1wtdGFrZVwtYVwtY29ycmVjdFwtdmlld1wtb2ZcLXRoaW5nczsKK+OXsCA8IHRoZVwtY2hhcmFjdGVyXC11c2VkXC1pblwtdHJhbnNsaXRlcmF0aW9uOwor45K/IDwgYVwta2luZFwtb2ZcLXR1cmJhblwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWU7CivkuLvnp5EgPCByZXF1aXJlZFwtY291cnNlc1wtaW5cLXRoZVwtbWFqb3JcLXN1YmplY3Q7CivlsJrmhZXmnbAgPCBqYW1lc1wtc2Fzc2VyXC1cKHVzXC1hbWJhc3NhZG9yXC10b1wtY2hpbmFcKTsKK+WTgOm0u+mBjemHjiA8IGFcLWxhbmRcLXN3YXJtaW5nXC13aXRoXC1kaXNhc3RlclwtdmljdGltczsKK+eXheW+nuWPo+WFpSA8IGlsbG5lc3NcLWZpbmRzXC1pdHNcLXdheVwtaW5cLWJ5XC10aGVcLW1vdXRoOwor54+t5bqVIDwgb3JkaW5hcnlcLW1lbWJlcnNcLW9mXC10aGVhdHJpY2FsXC10cm91cGU7Civph5HnvL0gPCBcKGdvbGRcKVwtYWxtc1wtYm93bFwtXChvZlwtYVwtYnVkZGhpc3RcLW1vbmtcKTsKK+WhnueIvuWNlyA8IFwoZXVnZW5lXClcLWNlcm5hblwtXChhcG9sbG9cLTE3XC1hc3Ryb25hdXRcKTsKK+iBr+WQjSA8IGpvaW50bHlcLVwoc2lnbmVkXCxcLWRlY2xhcmVkXCxcLXNwb25zb3JlZFwpOwor57i95Y+D6KyA6YOoIDwgXChtaWxpdGFyeVwpXC1nZW5lcmFsXC1zdGFmZlwtaGVhZHF1YXJ0ZXJzOwor5LiL5qa7IDwgc3RheVwtYXRcLVwoYVwtaG90ZWxcLFwtZXRjXC5cLWR1cmluZ1wtYVwtdHJpcFwpOwor5bm055Wr5YWSIDwgbmV3XC15ZWFyXC1cKG9yXC1zcHJpbmdcLWZlc3RpdmFsXClcLXBpY3R1cmU7CivpkLXpo6/nopcgPCBcImlyb25cLXJpY2VcLWJvd2xcIlwtXC1cLVwtc2VjdXJlXC1lbXBsb3ltZW50Owor6IGv6YKm6Kq/5p+l5bGAIDwgZmJpXC1cKGZlZGVyYWxcLWJ1cmVhdVwtb2ZcLWludmVzdGlnYXRpb25cKTsKK+iDoeW/l+aYjiA8IGhvXC1jaGlcLW1pbmhcLVwodmlldG5hbWVzZVwtbGVhZGVyXCxcLWNpdHlcKTsKK+iomOi/sCA8IG1ha2VcLWFcLWRlc2NyaXB0aXZlXC1yZWNvcmRcLVwob2ZcLWV2ZW50c1wpOwor5pKl57WD5qiC5ZmoIDwgcGx1Y2tlZFwtc3RyaW5nXC1vclwtc3RyaW5nZWRcLWluc3RydW1lbnQ7CivlvIEgPCBjb25pY2FsXC1jYXBcLXdvcm5cLWR1cmluZ1wtemhvdVwtZHluYXN0eTsKK+mFiSA8IHRlbnRoXC1vZlwtdGhlXC10d2VsdmVcLWVhcnRobHlcLWJyYW5jaGVzOwor5peMIDwgYmFubmVyXC1vclwtZmxhZ1wtYWRvcm5lZFwtd2l0aFwtZmVhdGhlcnM7Civooa4gPCBjZXJlbW9uaWFsXC1kcmVzc1wtd29yblwtYnlcLXRoZVwtZW1wZXJvcjsKK+a6pyA8IHJpdmVyXC1pblwtYW5odWlcLWFuZFwtamlhbmdzdVwtcHJvdmluY2VzOwor57ONIDwgZm9vZFwtbWFkZVwtb2ZcLWNydXNoZWRcLWFuZFwtY29va2VkXC1yaWNlOwor5q6bIDwgdG9cLXB1dFwtdG9cLWRlYXRoXC10b1wtaW1wcmlzb25cLWZvclwtbGlmZTsKK+eLjSA8IHNwZWNpZXNcLW9mXC1kZWVyXC1mb3VuZFwtaW5cLW5vcnRoXC1jaGluYTsKK+e7giA8IHJpYmJvblwtb3JcLWNvcmRcLXVzZWRcLWF0dGFjaFwtb3JuYW1lbnRzOwor56OJIDwgdGhlXC1zdG9uZVwtYmFzZVwtb3JcLXBsaW50aFwtb2ZcLWFcLXBpbGxhcjsKK+iVuSA8IGlwb21vZWFcLWFxdWF0aWNhXC11c2VkXC1hc1wtYVwtdmVnZXRhYmxlOwor5pqX5YK3IDwgaW50ZXJuYWxcLVwoaW52aXNpYmxlXClcLWluanVyeVwtXChkYW1hZ2VcKTsKK+aqlOahiOi9iemAgeWtmOWPluWPiueuoeeQhiA8IGZpbGVcLXRyYW5zZmVyXCxcLWFjY2Vzc1wtYW5kXC1tYW5hZ2VtZW50Owor5aSq5rmWIDwgdGFpXC1odVwtbGFrZVwsXC1hXC1iaWdcLWxha2VcLWJ5XC13dXhpXC1jaXR5Owor5qmr6YmkIDwgXChob3Jpem9udGFsXC1ob29rZWRcLWNoYXJhY3Rlclwtc3Ryb2tlXCk7CivljJflrosgPCB0aGVcLW5vcnRoZXJuXC1zb25nXC1keW5hc3R5XC1cKDk2MFwtMTEyN1wpOwor6b2IIDwgY29sZFwtaW5cLXRoZVwtaGVhZFwtY2F0YXJyaFwtb2ZcLXRoZVwtbm9zZTsKK+m5uyA8IGltcHVyZVwtY2FyYm9uYXRlXC1vZlwtc29kaXVtXC1vZlwtbmF0cm9uOwor6YSJ5LiLIDwgY291bnRyeVwtXChhc1wtb3Bwb3NlZFwtdG9cLXRvd25cLW9yXC1jaXR5XCk7CivptqIgPCBhXC1iaXJkXC13aGljaFwtZnJlcXVlbnRzXC10aGVcLXNlYVwtc2hvcmU7CivliKXlhbfkuIDmoLwgPCBoYXZpbmdcLWFcLXVuaXF1ZVwtb3JcLWRpc3RpbmN0aXZlXC1zdHlsZTsKK+ewveiogiA8IHRvXC1hZ3JlZVwtdG9cLWFuZFwtc2lnblwtXChhXC10cmVhdHlcLFwtZXRjXCk7Civpg6ogPCBuYW1lXC1vZlwtYVwtc3RyZWFtXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivlvpDmgrLptLsgPCBuYW1lXC1vZlwtYVwtZmFtb3VzXC1wYWludGVyXCxcLXh1XC1iZWlob25nOwor6L2eIDwgYVwtdmVoaWNsZVwtZm9yXC10cmFuc3BvcnRpbmdcLXByaXNvbmVyczsKK+i8uSA8IHR3b1wtcGllY2VzXC1vZlwtd29vZFwtdW5kZXJuZWF0aFwtYVwtY2FydDsKK+iugOizo+aWsOiBniA8IHlvbWl1cmlcLXNoaW1idW5cLVwoamFwYW5lc2VcLW5ld3NwYXBlclwpOwor5aKe5YC8IDwgYXBwcmVjaWF0aW9uXC1cKG9mXC1hXC1jYXJcLFwtaG91c2VcLFwtZXRjXC5cKTsKK+S4gOS5neWbm+S5neW5tCA8IHRoZVwteWVhclwtMTk0OVwtXChjb21tdW5pc3RcLXJldm9sdXRpb25cKTsKK+iKvyA8IGdyYXNzXC13aGljaFwtaGFzXC1iZWVuXC1jdXRcLWFuZFwtcmVncm93bjsKK+iDrCA8IGFcLWRpc2Vhc2UnJ3NcLW5hbWVcLWluXC1jaGluZXNlXC1tZWRpY2luZTsKK+emiiA8IHNlbWlcLWFubnVhbFwtY2VyZW1vbnlcLW9mXC1wdXJpZmljYXRpb247CivlhbXlrrYgPCBtaWxpdGFyeVwtc3RyYXRlZ2lzdFwtaW5cLWFuY2llbnRcLWNoaW5hOwor6Iux5bC6IDwgXChlbmdsaXNoXClcLWZvb3RcLVwodW5pdFwtb2ZcLW1lYXN1cmVtZW50XCk7CivlnIvpmpvmqJnmupbntYTnuZQgPCBpbnRlcm5hdGlvbmFsXC1zdGFuZGFyZHNcLW9yZ2FuaXphdGlvbjsKK+aJjeeWj+WtuOa3uiA8IGhhdmVcLWxpdHRsZVwtdGFsZW50XC1hbmRcLWxlc3NcLWxlYXJuaW5nOwor5req6Zm3IDwgXCh0ZXJyaXRvcnlcKVwtZmFsbFwtdG9cLWVuZW15XC1vY2N1cGF0aW9uOwor5oilIDwgYVwtc21hbGxcLXN0ZWVseWFyZFwtZm9yXC13ZWlnaGluZ1wtbW9uZXk7CivoirHmnKjomK0gPCBodWFcLW11XC1sYW5cLVwobmFtZVwtb2ZcLWFcLXdvbWFuXC13YXJyaW9yXCk7CivmiZPkuI3pgY4gPCBub3RcLXRvXC1iZVwtYWJsZVwtdG9cLWJlYXRcLW9yXC1kZWZlYXRcLXNiXC47CivkuJbnlYzmgKflj6TogIHllY/poYwgPCBhXC1wcm9ibGVtXC1hc1wtb2xkXC1hc1wtdGhlXC13b3JsZFwtaXRzZWxmOwor6YG/5Z2R6JC95LqVIDwgZG9kZ2VcLWFcLXBpdFwtb25seVwtdG9cLWZhbGxcLWludG9cLWFcLXdlbGw7Civlr40gPCB1c2VkXC1hc1wtYVwtdGVybVwtb2ZcLWNvbXBhcmlzb25cOlwtcmF0aGVyOwor5Lq66YG4IDwgcGVyc29uXChzXClcLXNlbGVjdGVkXC1cKGZvclwtYVwtam9iXCxcLWV0Y1wuXCk7CivnmbzkuoboqIAgPCBcKFwicGFzdFwtdGVuc2VcIlwtb2ZcLVw655m86KiAXClcLXNwb2tlXC1wdWJsaWNseTsKK+WSlyA8IHZlcmJhbFwtcGFydGljbGVcLW9mXC1wZXJmZWN0aXZlXC1hc3BlY3Q7Civorormuqvli5XniakgPCBwb2lraWxvdGhlcm1hbFwtXChjb2xkXC1ibG9vZGVkXClcLWFuaW1hbDsKK+acg+mVtyA8IHByZXNpZGVudFwtb2ZcLWFcLWNsdWJcLFwtY29tbWl0dGVlXCxcLWV0Y1wuOwor5LixIDwgY2hpbGQnJ3NcLWhhaXJzdHlsZVwtYm91bmRcLWluXC10d29cLXR1ZnRzOwor5LiN6Ieq6YePIDwgbm90XC10YWtlXC1hXC1wcm9wZXJcLW1lYXN1cmVcLW9mXC1vbmVzZWxmOwor5K6kIDwgb25lXC1vZlwtdGhlXC0zNlwtZ2FyZGVuc1wtaW5cLWhhblwtZHluYXN0eTsKK+SsrSA8IG5hbWVcLW9mXC1hXC1sZWdlbmRhcnlcLWZlcm9jaW91c1wtYW5pbWFsOwor5KqUIDwgY3Jvc3NcLWJhclwtb2ZcLXdvb2RcLXVuZGVyXC10aGVcLWNhcnJpYWdlOwor5KekIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5KSMIDwgYVwta2luZFwtb2ZcLXdpbmVcLWJlXC1icmV3ZWRcLWZyb21cLWdyYWluczsKK+SgtyA8IHRoZVwtYXBwZWFyYW5jZVwtb2ZcLWhlaWdodFwtaW5cLWFcLXBlcnNvbjsKK+SghSA8IGhhbmRzXC1hbmRcLWZlZXRcLWNoYXBwZWRcLWZyb21cLXRoZVwtY29sZDsKK+SdpCA8IGFcLXByaW1pdGl2ZVwtdHJpYmVcLWluXC1zb3V0aHdlc3RcLWNoaW5hOwor5J2fIDwgYVwtZmllcmNlXC1tYW5cLWVhdGluZ1wtYW5pbWFsXC1pblwtbGVnZW5kOwor5J2dIDwgYW5cLWV4Y2xhbWF0aW9uXC1pbmRpY2F0aW5nXC1hZG1pcmF0aW9uOwor5JuTIDwgYW5cLW9mZmljaWFsXC1wb3NpdGlvblwtaW5cLWZvcm1lclwtdGltZXM7CivkmpggPCB0aGVcLWxvbmdcLWFuZFwtdXByaWdodFwtaG9ybnNcLW9mXC1jYXR0bGU7CivklpIgPCBlYXJ0aGVud2FyZVwtd2l0aFwtdGhlXC1zaGFwZVwtb2ZcLWFcLWJlYW47CivklY4gPCBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzXC1wZXJlbm5pYWw7Civkk5EgPCBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzXC1kdWNrd2VlZHM7CivkkZcgPCB0b1wtcG91bmRcLWluXC1vcmRlclwtdG9cLXJlbW92ZVwtdGhlXC1odXNrOwor5JCxIDwgdG9cLXBpY2tcLXRoZVwtbWVhdFwtaW5cLWJldHdlZW5cLW9mXC1ib25lczsKK+SPgSA8IHVuYWJsZVwtdG9cLWhlYXJcLWRpc3RpbmN0bHlcLW9yXC1jbGVhcmx5Owor5a+r5oiQIDwgdG9cLWNvbXBpbGVcLVwoZmFzaGlvblwtdGhyb3VnaFwtd3JpdGluZ1wpOwor5IqgIDwgdG9cLWdpdmVcLWFcLXN1cHBseVwtZlwtZ3JhaW5cLWZvclwtcmF0aW9uczsKK+SJnyA8IGFcLWJhbWJvb1wtYmFza2V0XC11c2VkXC10b1wtY2F0Y2hcLWZpc2hlczsKK+SIsCA8IGFcLWJydXNoXC1mb3JcLXdhc2hpbmdcLWtpdGNoZW5cLXV0ZW5zaWxzOwor5Ie8IDwgYVwtYmFtYm9vXC12ZXNzZWxcLXVzZWRcLXRvXC1jYXRjaFwtZmlzaGVzOwor5ZCe6YeRIDwgdG9cLWNvbW1pdFwtc3VpY2lkZVwtYnlcLXN3YWxsb3dpbmdcLWdvbGQ7CivkhKsgPCBhXC1raW5kXC1vZlwtc29yZ2h1bVwtd2l0aFwtd2hpdGVcLXNwcm91dHM7CivkhIggPCBzYWNyaWZpY2VcLXRvXC1oYXBwaW5lc3NcLWFuZFwtZ29vZFwtbHVjazsKK+SDpCA8IGJsYWNrXC1jb2xvcmVkXC1ncmluZHN0b25lXC1vclwtd2hlc3RvbmU7Civkg44gPCBuYW1lXC1vZlwtYVwtcGxhY2VcLVwtc21hbGxcLXBpZWNlXC1vZlwtY29hbDsKK+SCuSA8IHNvdW5kXC1vZlwtdGhlXC1mYWxsaW5nXC1waWVjZXNcLW9mXC1yb2NrczsKK+SBtiA8IHRvXC1sb29rXC1hdFwtc29tZXRoaW5nXC13aXRob3V0XC13aW5raW5nOwor5IG1IDwgbmV3Ym9yblwtYmFieVwtd2l0aFwtdGhlXC1leWVsaWRzXC1jbG9zZWQ7Civmnb/nnLwgPCBtZWFzdXJlXC1pblwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLW11c2ljOwor472FIDwgdmVzc2VsXC1mb3JcLWNlcmVtb255XC1pblwtYW5jaWVudFwtdGltZXM7CivjuLkgPCBjYXR0bGVcLXdpdGhcLXdoaXRlXC1zdHJpcGVcLW9uXC10aGVcLWJhY2s7CivjuJcgPCBub3RcLWFcLXJlYWxcLWZhdGhlclwtb3JcLWFcLW5hdHVyZVwtZmF0aGVyOwor47OYIDwgYVwtZm91bnRhaW5cLW9yXC1zcHJpbmdcLWZsb3dzXC1kb3dud2FyZHM7Civjrq8gPCB3aG9sZVwtcGllY2VcLW9mXC1vclwtdW5icm9rZW5cLWZpcmV3b29kczsKK+OunCA8IGFcLWJsb2Nrc1wtZW5ncmF2ZWRcLWZvclwtaG9sZGluZ1wtdGhpbmdzOwor45+8IDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6aaW5bqcIDwgY2FwaXRhbFwtY2l0eVwtb2ZcLWFuXC1hdXRvbm9tb3VzXC1yZWdpb247CivjnpQgPCB0aGVcLXVwcmlnaHRcLWJhclwtZm9yXC1mYXN0ZW5pbmdcLWFcLWRvb3I7CivjnZ4gPCBwcmV0ZW5kXC10b1wtYmVcLWRlbGljYXRlXC1hbmRcLWJlYXV0aWZ1bDsKK+OcuSA8IG5hbWVcLW9mXC1hXC1mb2xrXC1zb25nXC1pblwtYW5jaWVudFwtdGltZXM7CivjmoEgPCB0aGVcLWxvbmdcLXRhaWxcLWZlYXRoZXJzXC13aGljaFwtY3VybFwtdXA7Civnj63mrKEgPCBvcmRlclwtb2ZcLWNsYXNzZXNcLW9yXC1ncmFkZXNcLWF0XC1zY2hvb2w7CivmioTlvozot68gPCB0b1wtb3V0ZmxhbmtcLWFuZFwtYXR0YWNrXC1mcm9tXC10aGVcLXJlYXI7Civnt6jlubTpq5QgPCBhbm5hbGlzdGljXC1zdHlsZVwtXChpblwtaGlzdG9yaW9ncmFwaHlcKTsKK+WutumEiembniA8ICcnaG9tZVwtdG93blwtY2hpY2tlbicnXC1cKGFcLXR5cGVcLW9mXC1kaXNoXCk7Civnq6DlrZ3lmrQgPCBqb2huXC1jaGFuZ1wtXCh0YWl3YW5cLWZvcmVpZ25cLW1pbmlzdGVyXCk7CivosrTlt54gPCBuYW1lXC1vZlwtYVwtcHJvdmluY2VcLWluXC1jaGluYVwsXC1ndWl6aG91Owor6JOL6IyoIDwgXChiaWxsXClcLWdhdGVzXC1cKGNoYWlybWFuXC1vZlwtbWljcm9zb2Z0XCk7CivlkLjlvJUgPCBhdHRyYWN0XC1cKGludGVyZXN0XCxcLWludmVzdG1lbnRcLFwtZXRjXC5cKTsKK+S+huS4jeWPiiA8IHRoZXJlJydzXC1ub3RcLWVub3VnaFwtdGltZVwtXCh0b1wtZG9cLXN0aFwuXCk7CivmmpflqLwgPCB1bmxpY2Vuc2VkXC1cKHVucmVnaXN0ZXJlZFwpXC1wcm9zdGl0dXRlOwor6Z2e5bCN56ix5byP5pW45pOa55So5oi257eaIDwgYXN5bW1ldHJpY2FsXC1kaWdpdGFsXC1zdWJzY3JpYmVyXC1saW5lOwor6Zy4546LIDwgeGlhbmc0eXUzXC1cKDIzMlwtMjAyXC1iY1wpXC10aGVcLWNvbnF1ZXJvcjsKK+WjveemriA8IGJpcnRoZGF5XC1wcmVzZW50XC1cKGZvclwtYW5cLW9sZFwtcGVyc29uXCk7CivpmK4gPCBhbmNpZW50XC1tdXNpY2FsXC1pbnN0cnVtZW50XDpcLXN1cm5hbWU7CivllpQgPCBkZXNjcmlwdGl2ZVwtb2ZcLWNyeWluZ1wtb3JcLW9mXC1jcm93aW5nOwor55CPIDwgdmVzc2VsXC11c2VkXC10b1wtaG9sZFwtZ3JhaW5cLW9mZmVyaW5nczsKK+mClSA8IGZvcm1lclwtb3JcLWxpdGVyYXJ5XC1uYW1lXC1mb3JcLW5hbm5pbmc7CivprZEgPCBhXC1tb3VudGFpblwtZGVtb25cLXJlc2VtYmxpbmdcLWFcLXRpZ2VyOwor5pi2IDwgYVwtbG9uZ1wtZGF5XC5cLWJyaWdodFwuXC1leHRlbmRlZFwuXC1jbGVhcjsKK+e8pyA8IGFcLWNoYWluXC1vclwtcm9wZVwtdXNlZFwtYmluZFwtY3JpbWluYWxzOwor6J6tIDwgYVwtZHJhZ29uXC13aG9zZVwtaG9ybnNcLWhhdmVcLW5vdFwtZ3Jvd247CivpvoAgPCBsb3NlXC1iYWJ5XC10ZWV0aFwtYW5kXC1nZXRcLWFkdWx0XC10ZWV0aDsKK+iCnCA8IHRvXC1zYWNyaWZpY2VcLW9uXC10d29cLXN1Y2Nlc3NpdmVcLWRheXM7CivpgpcgPCBhblwtYW5jaWVudFwtcGxhY2VcLWluXC10aGVcLXN0YXRlXC1vZlwtd3U7CivokKznuKMgPCB3YW54aWFuXC1jb3VudHlcLFwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor5q275LiN5LqGIDwgcG9ydHVsYWNhXC1zdW5kaWFsXC1cKGFcLXR5cGVcLW9mXC1wbGFudFwpOwor5aSn5Lit5a2455SfIDwgdW5pdmVyc2l0eVwtYW5kXC1oaWdoXC1zY2hvb2xcLXN0dWRlbnRzOwor6L+O5pil6IqxIDwgd2ludGVyXC1qYXNtaW5lXCxcLWphc21pbnVtXC1udWRpZmxvcnVtOwor57SE57+w5YWn5pav5aChIDwgam9oYW5uZXNidXJnXC1cKGNpdHlcLWluXC1zb3V0aFwtYWZyaWNhXCk7CivkuLvkurrnv4EgPCBtYXN0ZXJcLVwob2ZcLW9uZScnc1wtb3duXC1kZXN0aW55XCxcLWV0Y1wuXCk7CivliIbkvYjlvI/nkrDlooMgPCBkaXN0cmlidXRlZFwtXChjb21wdXRpbmdcKVwtZW52aXJvbm1lbnQ7CivlhbXpg6ggPCB0aGVcLW1pbmlzdHJ5XC1vZlwtd2FyXC1pblwtZmV1ZGFsXC1jaGluYTsKK+WMl+WRqCA8IHRoZVwtbm9ydGhlcm5cLXpob3VcLWR5bmFzdHlcLVwoNTU3XC01ODFcKTsKK+WuieWIhuWuiOW3sSA8IGFiaWRlXC1ieVwtdGhlXC1sYXdcLWFuZFwtYmVoYXZlXC1vbmVzZWxmOwor5YyX5LqsIDwgYmVpamluZ1wtXChjYXBpdGFsXC1vZlwtbWFpbmxhbmRcLWNoaW5hXCk7CivlpKfpoa/ouqvmiYsgPCBmdWxseVwtZGlzcGxheWluZ1wtb25lJydzXC1jYXBhYmlsaXRpZXM7Civpm7vkv6HmnI3li5nkvpvmh4nllYYgPCB0ZWxlY29tbXVuaWNhdGlvbnNcLXNlcnZpY2VcLXByb3ZpZGVyOwor5ZOI5a+G55OcIDwgaGFtaVwtbWVsb25cLVwoYVwtdmFyaWV0eVwtb2ZcLW11c2ttZWxvblwpOwor6ZCkIDwgaHVnZVwtdHJpcG9kXC1vZlwtYnJvbnplXC13aXRoXC10d29cLWVhcnM7Civosr/mmJPpoY0gPCB2b2x1bWVcLW9mXC10cmFkZVwtXChiZXR3ZWVuXC1jb3VudHJpZXNcKTsKK+iNieahiCA8IGRyYWZ0XC1cKGxlZ2lzbGF0aW9uXCxcLXByb3Bvc2FsXCxcLWV0Y1wuXCk7CivopqrmhJsgPCBkZWFyXC1cLlwuXC5cLVwod2F5XC1vZlwtc3RhcnRpbmdcLWFcLWxldHRlclwpOwor6KetIDwgb25lXC10dXJuaW5nXC11cFwtYW5kXC1vbmVcLXR1cm5pbmdcLWRvd247Civoo5znmb0gPCBmaWxsZXJcLVwoaW5cLWFcLW5ld3NwYXBlclwtb3JcLW1hZ2F6aW5lXCk7CivopLEgPCB0b1wtY2FycnlcLWluXC10aGVcLWJvc29tXC1vclwtdGhlXC1zbGVldmU7Civms6LngL7lo6/pl4ogPCBzdXJnaW5nXC1mb3J3YXJkXC13aXRoXC1ncmVhdFwtbW9tZW50dW07CivoiInooYwgPCB0b1wtaG9sZFwtXChhXC1tZWV0aW5nXCxcLWNlcmVtb255XCxcLWV0Y1wuXCk7Civlm57mrbjkuK3lnIsgPCB0b1wtcmV0dXJuXC10b1wtY2hpbmFcLVwoZVwuZ1wuXC1ob25nXC1rb25nXCk7CivoiZwgPCBhXC1sb25nXC1uYXJyb3dcLXZlc3NlbFwtd2l0aFwtdHdvXC1tYXN0czsKK+e4veWLleWToSA8IGdlbmVyYWxcLW1vYmlsaXphdGlvblwtXChmb3JcLXdhclwsXC1ldGNcKTsKK+iHvyA8IHRvXC1zZXBhcmF0ZVwtdGhlXC1ncmFpblwtZnJvbVwtdGhlXC1odXNrOwor57WwIDwgd2hpdGVcLWhlbXBlblwtY2xvdGhcLXdvcm5cLWJ5XC1tb3VybmVyczsKK+S/nemAgSA8IHJlY29tbWVuZFwtXChmb3JcLWFkbWlzc2lvblwtdG9cLXNjaG9vbFwpOwor5oSb6I6r6IO95YqpIDwgd2lsbGluZ1wtdG9cLWhlbHBcLWJ1dFwtdW5hYmxlXC10b1wtZG9cLXNvOwor56KqIDwgc3RvbmVcLXNsYWJcLXVzZWRcLWZvclwtd2FzaGluZ1wtY2xvdGhlczsKK+i9ieW4syA8IHRyYW5zZmVyXC1tb25leVwtZnJvbVx8aW50b1wtYW5cLWFjY291bnQ7CivluK3kvY0gPCBwYXJsaWFtZW50YXJ5XC1vclwtY29uZ3Jlc3Npb25hbFwtc2VhdDsKK+ebhyA8IHdoeVwtbm90XD9cLXdvdWxkXC1pdFwtbm90XC1iZVwtYmV0dGVyXC10b1w/Owor5biD5LuAIDwgXChnZW9yZ2VcKVwtYnVzaFwtXChmb3JtZXJcLXVzXC1wcmVzaWRlbnRcKTsKK+W0qem+jeaXjyA8IHRoZVwtYmVuZ2xvbmdcLVwocGVuZ2x1bmdcKVwtbmF0aW9uYWxpdHk7Civmu6sgPCB3YXRlclwtaW5cLXdoaWNoXC1yaWNlXC1oYXNcLWJlZW5cLWJvaWxlZDsKK+mdnuaUv+W6nOe1hOe5lCA8IG5vblwtZ292ZXJubWVudGFsXC1vcmdhbml6YXRpb25cLVwobmdvXCk7Civlr6noqIogPCBhXC1cKGp1ZGljaWFsXClcLXRyaWFsXC1cKGluXC1hXC1jb3VydHJvb21cKTsKK+aqkSA8IGxvZ3NcLXJvbGxlZFwtZG93blwtaW5cLWRlZmVuc2VcLW9mXC1jaXR5Owor5qOzIDwgc21hbGxcLXBpbGxhcnNcLXRoYXRcLXN1cHBvcnRcLXRoZVwtcm9vZjsKK+W4lyA8IGFcLW11bHRpY29sb3JlZFwtcHJvcFwtdXNlZFwtaW5cLWRhbmNpbmc7CivntpzlkIjmnI3li5nmlbjkvY3ntrLntaEgPCBpbnRlZ3JhdGVkXC1zZXJ2aWNlc1wtZGlnaXRhbFwtbmV0d29yazsKK+WYoCA8IHRoZVwtY2hpcnBpbmdcLW9mXC1iaXJkc1wtbG91ZFwtbGF1Z2h0ZXI7CivnrYbmob8gPCB0aGVcLXNoYWZ0XC1vZlwtYVwtcGVuXC1vclwtd3JpdGluZ1wtYnJ1c2g7Civnl4Xli6IgPCBkZWdyZWVcLW9mXC1zZXJpb3VzbmVzc1wtb2ZcLWFuXC1pbGxuZXNzOwor5ZSEIDwgZmluYWxcLXBhcnRpY2xlXC1vZlwtYXNzZXJ0aW9uXC1wYXRoYWthOwor5YC7IDwgcGhvbmV0aWNcLXVzZWRcLWluXC1rb3JlYW5cLXBsYWNlXC1uYW1lczsKK+S1uiA8IGJvdW5kYXJ5XC1iZXR3ZWVuXC1hZ3JpY3VsdHVyYWxcLWxhbmRzOwor5LW5IDwgaW5zZWN0c1wtdGhhdFwtYXJlXC1pbmp1cmlvdXNcLXRvXC1jcm9wczsKK+StjSA8IHRvXC1saXZlXC13aXRoXC1hbm90aGVyXC1hdFwtaGlzXC1leHBlbnNlOwor5KylIDwgY29va2VkXC1mb29kXC13aGljaFwtaGFzXC1iZWNvbWVcLW1vdWxkeTsKK+SsmSA8IHRvXC1kYW5jZVwtYW5kXC10b3NzXC1hYm91dFwtaW5cLXRoZVwtd2luZDsKK+S4u+i+piA8IGhvc3RcLVwoYVwtY29uZmVyZW5jZVwtb3JcLXNwb3J0c1wtZXZlbnRcKTsKK+SgqyA8IHRvXC1zdWNjdW1iXC10b1wtdGhlXC1lZmZlY3RcLW9mXC1hbGNvaG9sOwor5J2mIDwgYVwta2luZFwtb2ZcLWFuaW1hbFwtbG9va3NcLWxpa2VcLWxlb3BhcmQ7CivknKAgPCBsYW5ndWFnZVwtb2ZcLXRoZVwtc2F2YWdlXC1vclwtYmFyYmFyaWFuOwor5Ja6IDwgYVwtbGVnZW5kYXJ5XC1hbmltYWxcLWluXC1hbmNpZW50XC10aW1lczsKK+SSvCA8IGFcLWJhbWJvb1wtdHJheVwtZm9yXC1yYWlzaW5nXC1zaWxrd29ybXM7CivkkbMgPCBhXC1ob3Jpem9udGFsXC1iYXJcLWluXC1mcm9udFwtb2ZcLWFcLWJvYXQ7CivkkKcgPCB0b1wtcmV3YXJkXC1vclwtY2hlZXJcLXRyb29wc1wtd2l0aFwtZm9vZDsKK+SOsCA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor5I2fIDwgYVwta2luZFwtb2ZcLWZpc2hcLW5ldFwtd2l0aFwtZmluZVwtbWVzaGVzOwor5IeoIDwgYVwtYmFtYm9vXC1iYXNrZXRcLWZvclwtZm9vZFwtY29udGFpbmVyczsKK+mcuOeOi+merSA8IGFcLXJhdHRsZVwtc3RpY2tcLXVzZWRcLWluXC1mb2xrXC1kYW5jaW5nOwor5pys6I2JIDwgYVwtYm9va1wtb25cLWNoaW5lc2VcLVwoaGVyYmFsXClcLW1lZGljaW5lOwor5IaOIDwgZ3Jhc3NcLWFuZFwtZ3JhaW5zXC1wcm9kdWNpbmdcLW5vXC1mcnVpdDsKK+SEuyA8IGFcLXNlY29uZFwtdGltZVwtZ3Jvd2luZ1wtb2ZcLXJpY2VcLXBsYW50Owor5ICaIDwgdG9cLWxpZnRcLXVwXC10aGVcLWV5ZXNcLWFuZFwtbG9va1wtYXJvdW5kOwor47+WIDwgY2FyYnVuY2xlXC11c2VkXC1pblwtbmFtaW5nXC1vZlwtYVwtcGxhY2U7CivjupsgPCBuYW1lXC1vZlwtYVwtdmlsbGFnZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+O3iCA8IGVtYmVyc1wta2VwdFwtZm9yXC1zdGFydGluZ1wtYVwtbmV3XC1maXJlOwor47WBIDwgdmFzdFwtYW5kXC1ib3VuZGxlc3NcLW9mXC1mbG93aW5nXC13YXRlcjsKK+OzlSA8IHdhdGVyXC1pblwtd2hpY2hcLXJpY2VcLWhhc1wtYmVlblwtd2FzaGVkOwor46+qIDwgY2FydmVkXC1vclwtcGF0dGVybmVkXC13aW5kb3dcLXJhaWxpbmdzOwor5Lq654mpIDwgY2hhcmFjdGVyc1wtXChpblwtYVwtcGxheVwsXC1ub3ZlbFwsXC1ldGNcLlwpOwor6K2w6ZW3IDwgc3BlYWtlclwtXChvZlwtYVwtbGVnaXNsYXRpdmVcLWFzc2VtYmx5XCk7CivjoJkgPCBhXC1tb3VudGFpblwtcGF0aHNcLW5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+iqv+afpee1kOaenCA8IHJlc3VsdHNcLVwob2ZcLWFuXC1pbnZlc3RpZ2F0aW9uXCxcLXBvbGxcKTsKK+OTrSA8IHRvXC1tYWtlXC1yZWFkeVwtdGhlXC1sZWF0aGVyXC1mb3JcLXNob2VzOwor45C3IDwgYVwta2luZFwtb2ZcLXB1bmlzaG1lbnRcLWluXC1oYW5cLWR5bmFzdHk7Civnmb7nq6/lvoXoiIkgPCBhXC10aG91c2FuZFwtdGhpbmdzXC1yZW1haW5cLXRvXC1iZVwtZG9uZTsKK+WuieWNlyA8IFxba29maVxdXC1hbm5hblwtXFt1blwtc2VjcmV0YXJ5XC1nZW5lcmFsXF07CivljIXpo68gPCBnZXRcLW9yXC1zdXBwbHlcLW1lYWxzXC1hdFwtYVwtZml4ZWRcLXJhdGU7CivmnInmsLQgPCBcKG9mXC1hXC1kd2VsbGluZ1wpXC1zdXBwbGllZFwtd2l0aFwtd2F0ZXI7Civnmb3mrq3ooLYgPCB0aGVcLWxhcnZhXC1vZlwtc2lsa3dvcm1cLXdpdGhcLWJhdHJ5dGlzOwor6Kmx6aGMIDwgc3ViamVjdFwtXChvZlwtYVwtdGFsa1wtb3JcLWNvbnZlcnNhdGlvblwpOwor5LqL5YuZIDwgXChwb2xpdGljYWxcLFwtZWNvbm9taWNcLFwtZXRjXC5cKVwtYWZmYWlyczsKK+WSseWAkSA8IHdlXC1cKGluY2x1ZGluZ1wtdGhlXC1wZXJzb25cLXNwb2tlblwtdG9cKTsKK+WwpOmHkeWhnueIvuWNlyA8IGV1Z2VuZVwtY2VybmFuXC1cKGFwb2xsb1wtMTdcLWFzdHJvbmF1dFwpOwor546H5YWIIDwgdGFrZVwtdGhlXC1sZWFkXC1cKHNob3dpbmdcLWluaXRpdGF0aXZlXCk7Civnm67liY3pgoTkuI3muIXmpZogPCBhdFwtcHJlc2VudFwtaXRcLWlzXC1zdGlsbFwtdW5jbGVhclwtXC5cLlwuXC47Civnp4vpq5jmsKPniL0gPCBjbGVhclwtYW5kXC1yZWZyZXNoaW5nXC1hdXR1bW5cLXdlYXRoZXI7CivljIXnp58gPCByZW50XC1sYW5kXC1vclwtYVwtaG91c2VcLWZvclwtc3VibGV0dGluZzsKK+aYjuaWhyA8IFwobGF3c1wsXC1ydWxlc1wsXC1ldGNcKVwtc3RhdGVcLWluXC13cml0aW5nOwor6KKxIDwgYVwtcGllY2VcLW9mXC1jbG90aFwtdXNlZFwtd3JhcFwtYnVuZGxlczsKK+aMsiA8IHRvXC1mZWVsXC1vclwtZm9uZGxlXC13aXRoXC10aGVcLWZpbmdlcnM7Civnr5EgPCBhXC1iYW1ib29cLWJhc2tldFwtZm9yXC1jYXJyeWluZ1wtZWFydGg7CivogpMgPCByZWdpb25cLWJldHdlZW5cLWhlYXJ0XC1hbmRcLWRpYXBocmFnbTsKK+a7piA8IHJpdmVyXC1hbmRcLWNvdW50eVwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+mDlyA8IGNpdHlcLXVuZGVyXC10aGVcLWNob3VcLWR5blwuXC1hXC1zdXJuYW1lOwor54+PIDwgdHdvXC1waWVjZXNcLW9mXC1qYWRlXC1qb2luZWRcLXRvZ2V0aGVyOwor57amIDwgZGFya1wtZ3JleVwuXC12YXJpZWdhdGVkXC5cLXN1cGVybGF0aXZlOwor6bqHIDwgZ2VuZXJhbFwtbmFtZVwtZm9yXC10aGVcLWhvcm5sZXNzXC1kZWVyOwor55KOIDwgYVwtbmVja2xhY2VcLW1hZGVcLW9mXC1wcmVjaW91c1wtc3RvbmVzOwor5o6+IDwgYVwtZ2VuZXJhbFwtZGVzaWduYXRpb25cLW9mXC1vZmZpY2lhbHM7Civpg4cgPCBhblwtYW5jaWVudFwtZmV1ZGFsXC1zdGF0ZVwtaW5cLXNoYWFueGk7CivpgI/oppYgPCB0b1wtZXhhbWluZVwtYnlcLWZsdW9yb3Njb3BlXC1vclwteFwtcmF5Owor5aCx6K2mIDwgcmVwb3J0XC1cKGFuXC1pbmNpZGVudFwpXC10b1wtdGhlXC1wb2xpY2U7CivnopHluJYgPCBhXC1ydWJiaW5nXC1mcm9tXC1hXC1zdG9uZVwtaW5zY3JpcHRpb247CivniZvlubQgPCB5ZWFyXC1vZlwtdGhlXC1veFwtXChpblwtY2hpbmVzZVwtem9kaWFjXCk7CivnsKHllq7ntrLntaHnrqHnkIbljZTorbAgPCBzaW1wbGVcLW5ldHdvcmtcLW1hbmFnZW1lbnRcLXByb3RvY29sOwor6Ieo5pmC55qE5pys5Zyw566h55CG5o6l5Y+jIDwgaW50ZXJpbVwtbG9jYWxcLW1hbmFnZW1lbnRcLWludGVyZmFjZTsKK+WMheW7giA8IGJveFwtXChpblwtYVwtdGhlYXRyZVwtb3JcLWNvbmNlcnRcLWhhbGxcKTsKK+i9ieiukyA8IHRyYW5zZmVyXC1cKHRlY2hub2xvZ3lcLFwtZ29vZHNcLFwtZXRjXC5cKTsKK+WGsOa2iOeTpuinoyA8IG1lbHRcLWxpa2VcLWljZVwtYW5kXC1icmVha1wtbGlrZVwtdGlsZXM7CivpvpggPCB0aGVcLWFwcGVhcmFuY2VcLW9mXC1hXC1kcmFnb25cLXdhbGtpbmc7CivljYrmlqTlhavlhakgPCBub3RcLW11Y2hcLXRvXC1jaG9vc2VcLWJldHdlZW5cLXRoZVwtdHdvOwor6bS9IDwgYVwtc3BlY2llc1wtb2ZcLWJpcmRcLXJlc2VtYmxpbmdcLXF1YWlsOwor55uc54mIIDwgcGlyYXRlXC12ZXJzaW9uXC1cKG9mXC1zb2Z0d2FyZVwsXC1lXC5nXC5cKTsKK+atpeS6uuW+jOWhtSA8IGZvbGxvd1wtaW5cLW90aGVyXC1wZW9wbGUnJ3NcLWZvb3RzdGVwczsKK+mEqyA8IHN0YXRlXC1pblwtdG9kYXknJ3NcLXNoYW5kb25nXC1wcm92aW5jZTsKK+mEhyA8IGFcLW5hbWVcLW9mXC1hXC10b3duXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6L+/IDwgdG9cLWJlXC10aGVcLWZpcnN0XC10b1wtYmVnaW5cLWFcLXF1YXJyZWw7CivovZUgPCBncmVhdFwtYXJyYXlcLW9mXC1zcGVhcnNcLWFuZFwtY2hhcmlvdHM7CivovKAgPCBncmVhc2VcLXBvdFwtaHVuZ1wtdW5kZXJcLWF4bGVcLW9mXC1jYXJ0Owor6b6N6aOb6bOz6IieIDwgbGl0XC5cOlwtZHJhZ29uXC1mbGllc1wsXC1waG9lbml4XC1kYW5jZXM7Civnt6Pku70gPCBmYXRlXC1cKHdoaWNoXC1icmluZ3NcLXBlb3BsZVwtdG9nZXRoZXI7CivlubPlo6QgPCBweW9uZ3lhbmdcLVwoY2FwaXRhbFwtb2ZcLW5vcnRoXC1rb3JlYVwpOwor5ZyL6Zqb6KaL6IGeIDwgaW50ZXJuYXRpb25hbFwtYmFja2dyb3VuZFwta25vd2xlZGdlOwor5pOU5Lu7IDwgaG9sZFwtYVwtZ292ZXJubWVudGFsXC1vZmZpY2VcLW9yXC1wb3N0Owor6IayIDwgdGhlXC10aHJlZVwtZGl2aXNpb25zXC1vZlwtdGhlXC12aXNjZXJhOwor5YWL5pyNIDwgXCh0cnlcLXRvXClcLW92ZXJjb21lXC1cKGhhcmRzaGlwc1wsXC1ldGNcKTsKK+aKhOmAgSA8IHRvXC1tYWtlXC1hXC1jb3B5XC1cKGFuZFwtc2VuZFwtaXRcLXRvXC1zYlwpOwor5LiN5aSx54K6IDwgY2FuXC1zdGlsbFwtYmVcLWNvbnNpZGVyZWRcLVwodG9cLWJlXC5cLlwuXCk7CivntJYgPCBhXC1yb3BlXC1mb3JcLWxlYWRpbmdcLWNhdHRsZVwtb3JcLWhvcnNlOwor5pyA5oOg5ZyLIDwgbW9zdFwtZmF2b3JlZFwtbmF0aW9uXC1cKHRyYWRlXC1zdGF0dXNcKTsKK+esriA8IGJvYXJkc1wtd2hpY2hcLXN1cHBvcnRcLXRpbGVzXC1vblwtcm9vZjsKK+ahiOmplyA8IGludmVzdGlnYXRlXC10aGVcLWV2aWRlbmNlXC1vZlwtYVwtY2FzZTsKK+aJmOmBiyA8IHRvXC1ib29rXC1vclwtY2hlY2tcLXRocm91Z2hcLVwoYmFnZ2FnZVwpOwor56CFIDwgY3Jvc3NcLXN0cmVhbVwtYnlcLXN0ZXBwaW5nXC1vblwtc3RvbmVzOwor5ZyL5YuZ5aeU5ZOhIDwgbWVtYmVyXC1vZlwtc3RhdGVcLWNvdW5jaWxcLVwoaW5cLWNoaW5hXCk7CivmiLbpg6ggPCBmZXVkYWxcLWNoaW5lc2VcLW1pbmlzdHJ5XC1vZlwtcmV2ZW51ZTsKK+eSiSA8IGFcLXZlc3NlbFwtdXNlZFwtaG9sZFwtZ3JhaW5cLW9mZmVyaW5nczsKK+aioSA8IHRyYXlcLWZvclwtY2FycnlpbmdcLXNhY3JpZmljaWFsXC1tZWF0Owor5Y+v56e75qSN5oCnIDwgcG9ydGFiaWxpdHlcLVwocHJvZ3JhbW1pbmdcLWxhbmd1YWdlXCk7Civmjqjli5UgPCB0b1wtcHVzaFwtXChmb3JcLWFjY2VwdGFuY2VcLW9mXC1hXC1wbGFuXCk7CivlubUgPCBldmVuXC1sZXZlbFwuXC10b1wtcmFpc2VcLWluXC1ib3RoXC1oYW5kczsKK+WrhCA8IGFuXC1hbmNpZW50XC1lbXBlcm9yJydzXC1tb3RoZXInJ3NcLW5hbWU7CivmlbTpq5TmlbjkvY3mnI3li5nntrLot68gPCBpbnRlZ3JhdGVkXC1zZXJ2aWNlXC1kaWdpdGFsXC1uZXR3b3JrOwor5Zu3IDwgcm91bmRcLXNoYXBlZFwtc3RvcmFnZVwtYmluXC1mb3JcLWdyYWluOwor5Lqe6LuNIDwgc2Vjb25kXC1wbGFjZVwtXChpblwtYVwtc3BvcnRzXC1jb250ZXN0XCk7CivlkbzlkozmtannibkgPCBob2hob3RcLVwoY2FwaXRhbFwtb2ZcLWlubmVyXC1tb25nb2xpYVwpOwor5Z+66YeR5pyDIDwgYVwtZm91bmRhdGlvblwtXChpZVwsXC1hblwtb3JnYW5pemF0aW9uXCk7CivktJkgPCBhXC1raW5kXC1vZlwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC1kdWNrOwor5LKDIDwgYVwtY2FycFwtbGlrZVwtZmlzaFwtd2l0aFwtY2hpY2tlblwtZmVldDsKK+mhj+mrlCA8IHlhblwtc3R5bGVcLVwoaW5cLWNoaW5lc2VcLWNhbGxpZ3JhcGh5XCk7CivkuYXpgZUgPCBcKGhhdmVuJyd0XC1kb25lXC1zdGhcKVwtZm9yXC1hXC1sb25nXC10aW1lOwor5KmXIDwgdG9cLXJ1bGVcLWJ5XC1taWdodFwtcmF0aGVyXC10aGFuXC1yaWdodDsKK+SilSA8IGFcLWdyb3VwXC1vZlwtcGVvcGxlXC13YWxraW5nXC10b2dldGhlcjsKK+SaoSA8IGJvbmVzXC1pblwtYVwtaG9yblwtb2ZcLWNhdHRsZVwtYW5kXC1nb2F0Owor5JmsIDwgcGxhaXRzXC1vblwtdGhlXC1zaWRlc1wtb2ZcLWFcLXBldHRpY29hdDsKK+SQgCA8IHRvXC1kaXNtZW1iZXJcLWJvZHlcLW9mXC10aGVcLWxpdmVzdG9jazsKK+SOjiA8IHRvXC1nbGlkZVwtb3JcLXRvXC1ob3ZlclwtdXBcLWluXC10aGVcLWFpcjsKK+SNiiA8IGNsYXlcLW1hZGVcLWJsb3dpbmdcLXdpbmRcLWluc3RydW1lbnRzOwor5Ii/IDwgYmVsdFwtb2ZcLXRoZVwtY2FudmFzXC10b3BcLW9uXC12ZWhpY2xlczsKK+SHriA8IGFcLWJhbWJvb1wtbWF0XC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivlsI/poYzlpKflgZogPCBtYWtlXC1hXC1iaWdcLWZ1c3NcLW92ZXJcLWFcLW1pbm9yXC1pc3N1ZTsKK+SFmiA8IGNsb3NlbHlcLWdyb3dpbmdcLW9mXC10aGVcLXJpY2VcLXBsYW50czsKK+SEtiA8IHJpY2VcLXBsYW50XC1ncm93aW5nXC10aGVcLXNlY29uZFwtdGltZTsKK+SBviA8IHJlZFwtYW5kXC1zd2VsbGluZ1wtb2ZcLXRoZVwtZXllXC1zb2NrZXQ7CivkgaggPCB0b1wtb3BlblwtdGhlXC1leWVzXC13aXRoXC1hc3RvbmlzaG1lbnQ7CivjvZsgPCBuYXJyb3dcLXRyYWlsXC1vZlwtcGF0aFwtaW5cLXRoZVwtZmllbGRzOwor47qRIDwgZG9nc1wtd29ybWVkXC10aHJvdWdoXC1hXC1uYXJyb3dcLXBsYWNlOwor47miIDwgYVwtbGFyZ2VcLWFwZVwtZm91bmRcLWluXC13ZXN0ZXJuXC1jaGluYTsKK+O5nCA8IHR3b1wtZG9nc1wtYXJlXC1iYXJraW5nXC10b1wtZWFjaFwtb3RoZXI7CivjuYkgPCBhXC1sZWdlbmRhcnlcLWFuaW1hbFwtd2l0aFwtdGhyZWVcLWZlZXQ7CivjtoAgPCBkZWVwXC1hbmRcLXZhc3RcLW9mXC10aGVcLWZsb3dpbmdcLXdhdGVyOwor5omT6Yyv5LqGIDwgXCJ5b3VcLWhhdmVcLWRpYWxlZFwtdGhlXC13cm9uZ1wtbnVtYmVyXCI7CivjsLYgPCB0b1wtd3JpbmtsZVwtdGhlXC1ub3NlXC13aXRoXC1zb3Jyb3dmdWw7CivjrbIgPCBhXC13b29kZW5cLWZyYW1lXC1mb3JcLWNhcnJ5aW5nXC10aGluZ3M7Civnl4XljIXlhZIgPCBhXC1wZXJzb25cLXdob1wtaXNcLWFsd2F5c1wtZmFsbGluZ1wtaWxsOwor46GhIDwgc2NyZWVuXC10b1wtbWFrZVwtYVwtdGVtcG9yYXJ5XC1raXRjaGVuOwor46C/IDwgYVwta2luZFwtb2ZcLWRlbGljYXRlXC1hbmRcLWZpbmVcLWZhYnJpYzsKK+OcuiA8IG5pY2VcLXdoaXRlXC1jb2xvclwtYW5kXC1sb29rc1wtc29cLWdvb2Q7CivjnLUgPCB3aXRoXC1hXC1jaGFybWluZ1wtc3ByaWdodGx5XC1jYXJyaWFnZTsKK+OZiCA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivpppnlsbEgPCBmcmFncmFuY2VcLWhpbGxcLVwoYVwtcGFya1wtaW5cLWJlaWppbmdcKTsKK+OWoSA8IHRoZVwtYmlyZHNcLXNpbmdpbmdcLWR1cmluZ1wtdGhlXC1uaWdodDsKK+OVuiA8IGxvb2tzXC1iaWdcLW91dHNpZGVcLWJ1dFwtZW1wdHlcLWluc2lkZTsKK+OVhCA8IHRvXC1hcHBseVwta25vd2xlZGdlXC10b1wtZmluYWxcLWNhdXNlczsKK+S4jeiZm+atpOihjCA8IHRoZVwtdHJpcFwtaGFzXC1ub3RcLWJlZW5cLW1hZGVcLWluXC12YWluOwor6Yq35q+AIDwgdG9cLWRlc3Ryb3lcLVwoYnlcLW1lbHRpbmdcLW9yXC1idXJuaW5nXCk7Civmi4nojqvmlq8gPCBcKHBoaWxpcHBpbmVcLXByZXNpZGVudFwtZmlkZWxcKVwtcmFtb3M7Civmr5Tli5LpmYDliKnkup4gPCBwcmV0b3JpYVwtXChjYXBpdGFsXC1vZlwtc291dGhcLWFmcmljYVwpOwor5YyX6a2PIDwgdGhlXC1ub3J0aGVyblwtd2VpXC1keW5hc3R5XC1cKDM4NlwtNTM0XCk7CivoqIDoq5boh6rnlLEgPCBcKGNvbnN0aXR1dGlvbmFsXClcLWZyZWVkb21cLW9mXC1zcGVlY2g7CivmmrTnl4UgPCBzdWRkZW5cLWF0dGFja1wtb2ZcLWFcLXNlcmlvdXNcLWlsbG5lc3M7CivkurrlpKcgPCBcKGNoaW5hXClcLW5hdGlvbmFsXC1wZW9wbGUnJ3NcLWNvbmdyZXNzOwor54ax6aynIDwgYnVzdGxpbmdcLXdpdGhcLW5vaXNlXC1hbmRcLWV4Y2l0ZW1lbnQ7CivlkYjmlocgPCBwZXRpdGlvblwtXChzdWJtaXR0ZWRcLXRvXC1hXC1zdXBlcmlvclwpOwor5pil56+AIDwgc3ByaW5nXC1mZXN0aXZhbFwtXChjaGluZXNlXC1uZXdcLXllYXJcKTsKK+mWi+eZvOeSsOWigyA8IGRldmVsb3BtZW50XC1lbnZpcm9ubWVudFwtXChjb21wdXRlclwpOwor5LiN6K2Y5pmC5YuZIDwgc2hvd1wtbm9cLXVuZGVyc3RhbmRpbmdcLW9mXC10aGVcLXRpbWVzOwor8KC8uyA8IGFcLXBhcnRpY2xlXC11c2VkXC1pblwtdHJhbnNsaXRlcmF0aW9uOwor6IOh5b+X5by3IDwgamFzb25cLWh1XC1cKHRhaXdhblwtZm9yZWlnblwtbWluaXN0ZXJcKTsKK+aWsOeWhiA8IHhpbmppYW5nXC1cKHV5Z3VyXC1hdXRvbm9tb3VzXC1yZWdpb25cKTsKK+W5q+WAkuW/mSA8IGJlXC1tb3JlXC1vZlwtYVwtaGluZHJhbmNlXC10aGFuXC1hXC1oZWxwOwor5L+x5qiC6YOoIDwgY2x1YlwtXChpZVwsXC1hXC1ncm91cFwtb3JcLW9yZ2FuaXphdGlvblwpOwor56S+IDwgZ29kXC1vZlwtdGhlXC1zb2lsXC1hbmRcLWFsdGFyc1wtdG9cLWhpbTsKK+eRnyA8IGxhcmdlXC1zdHJpbmdlZFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+alniA8IHVzZWRcLWZvclwtY2V5bG9uXC1pblwtYnVkZGhpc3RcLXRleHRzOwor5Za9IDwgdXNlZFwtaW5cLW9ub21hdG9wb2V0aWNcLWV4cHJlc3Npb25zOwor5ZqFIDwgdGFsa1wtaW5kaXN0aW5jdGx5XC1hbmRcLWZhbHRlcmluZ2x5Owor6KOxIDwgdG9cLW1vdW50XC1tYXBzXC1vclwtc2Nyb2xsc1wtdG9cLXBhc3RlOwor54yiIDwgYVwta2luZFwtb2ZcLW1vbmtleVwtZm91bmRcLWluXC13XC5jaGluYTsKK+icriA8IGFcLWZhYnVsb3VzXC1jcmVhdHVyZVwtbGlrZVwtYVwtdHVydGxlOwor56KhIDwgc3RvbmVcLXJvbGxlclwtdXNlZFwtdG9cLWxldmVsXC1maWVsZHM7CivphKMgPCBuYW1lXC1vZlwtYW5jaWVudFwtY2l0eVwtaW5cLW5cLmppYW5nc3U7CivnsqIgPCBncmFpblwtb2ZmZXJlZFwtaW5cLXJpdHVhbFwtc2FjcmlmaWNlOwor57CmIDwgbGFyZ2VcLXVtYnJlbGxhXC13aXRoXC1hXC1sb25nXC1oYW5kbGU7CivonpMgPCBhXC1zbWFsbFwtY2ljYWRhXC13aXRoXC1hXC1zcXVhcmVcLWhlYWQ7CivkuI3mmYLkuYvpnIAgPCBhXC1wb3NzaWJsZVwtcGVyaW9kXC1vZlwtd2FudFwtb3JcLW5lZWQ7CivlhazlhbHkuqTmj5vpm7voqbHntrLot68gPCBwdWJsaWNcLXN3aXRjaGVkXC10ZWxlcGhvbmVcLW5ldHdvcms7CivntrLntaEgPCBcKGNvbXB1dGVyXCxcLXRlbGVjb21cLFwtZXRjXC5cKVwtbmV0d29yazsKK+S7peeJmemChOeJmSA8IGFcLXRvb3RoXC1mb3JcLWFcLXRvb3RoXC1cKHJldGFsaWF0aW9uXCk7Civlo4Hmr68gPCB0YXBlc3RyeVwtXCh1c2VkXC1hc1wtYVwtd2FsbFwtaGFuZ2luZ1wpOwor5pOm5r6hIDwgcnViXC1vbmVzZWxmXC1kb3duXC13aXRoXC1hXC13ZXRcLXRvd2VsOwor6KqN5a6aIDwgbWFpbnRhaW5cLVwodGhhdFwtc29tZXRoaW5nXC1pc1wtdHJ1ZVwpOwor55m+5oiw55m+5YudIDwgZW1lcmdlXC12aWN0b3Jpb3VzXC1pblwtZXZlcnlcLWJhdHRsZTsKK+mtiiA8IGFcLW15dGhpY2FsXC1jcmVhdHVyZVwtc2FpZFwtaHVybFwtc2FuOwor5YiG5q2nIDwgZGlmZmVyZW5jZVwtXChvZlwtb3BpbmlvblwsXC1wb3NpdGlvblwpOwor5Yue5YuV56+AIDwgaW50ZXJuYXRpb25hbFwtbGFib3JcLWRheVwtXChtYXlcLWRheVwpOwor6Z+QIDwga25lZVwtcGFkXC1tYWRlXC1vZlwtcmVkXC1keWVkXC1sZWF0aGVyOwor6YCj5oiwIDwgbGllblwtY2hhblwtXCh0YWl3YW5cLXZpY2VcLXByZXNpZGVudFwpOwor5oqx57KX6IW/IDwgbGF0Y2hcLW9uXC10b1wtdGhlXC1yaWNoXC1hbmRcLXBvd2VyZnVsOwor5Yi25bqmIDwgXChwb2xpdGljYWxcKVwtc3lzdGVtXC1vclwtaW5zdGl0dXRpb247Civoo5znv5IgPCB0YWtlXC1sZXNzb25zXC1hZnRlclwtc2Nob29sXC1vclwtd29yazsKK+eUseatpOWPr+imiyA8IGZyb21cLXRoaXNcLFwtaXRcLWNhblwtYmVcLXNlZW5cLXRoYXRcLlwuXC47Civoga/pgqbpm7vkv6HkuqTpgJrlp5Tlk6HmnIMgPCBmZWRlcmFsXC1jb21tdW5pY2F0aW9uc1wtY29tbWlzc2lvbjsKK+W7uuS6pCA8IHRvXC1lc3RhYmxpc2hcLWRpcGxvbWF0aWNcLXJlbGF0aW9uczsKK+i7jyA8IGNyb3NzXC1iYXJcLWF0XC1lbmRcLW9mXC1wb2xlc1wtb2ZcLWNhcnQ7Civngavngb0gPCBmaXJlXC1cKHRoYXRcLWJ1cm5zXC1idWlsZGluZ3NcLFwtZXRjXC5cKTsKK+WCmeiqsiA8IFwob2ZcLWFcLXRlYWNoZXJcKVwtdG9cLXByZXBhcmVcLWxlc3NvbnM7Civph5HmraPml6UgPCBraW1cLWpvbmdcLWlsXC1cKG5vcnRoXC1rb3JlYW5cLWxlYWRlclwpOwor6ZaL5ryUIDwgXChvZlwtYVwtcGxheVwsXC1tb3ZpZVwsXC1ldGNcLlwpXC10b1wtYmVnaW47CivlgpnojZIgPCBwcmVwYXJlXC1hZ2FpbnN0XC1uYXR1cmFsXC1kaXNhc3RlcnM7CivoloAgPCB0aGVcLWhpcHB1cmlzXC1vclwtbWFyZScnc1wtdGFpbFwtcGxhbnQ7CivkuI3mkbjpoK0gPCBub3RcLWFjcXVhaW50ZWRcLXdpdGhcLXRoZVwtc2l0dWF0aW9uOwor5YWo5pyDIDwgcGxlbmFyeVwtc2Vzc2lvblwtXChhdFwtYVwtY29uZmVyZW5jZVwpOwor6a2P5Lqs55SfIDwgd2VpXC1qaW5nc2hlbmdcLVwoY2hpbmVzZVwtZGlzc2lkZW50XCk7CivogZ0gPCB0b1wtY3V0XC10aGVcLWxlZnRcLWVhcnNcLW9mXC10aGVcLXNsYWluOwor6ICUIDwgdG9cLWhvZVwtdXBcLXRoZVwtZWFydGhcLWFyb3VuZFwtcGxhbnRzOwor5L6/6ZujIDwgcmV0b3J0XC13aXRoXC1jaGFsbGVuZ2luZ1wtcXVlc3Rpb25zOwor562U6L6vIDwgdG9cLXJlcGx5XC1cKHRvXC1hblwtYWNjdXNhdGlvblwsXC1lXC5nXC5cKTsKK+ewqyA8IG11c2ljYWxcLWluc3RydW1lbnRcLWxpa2VcLXBhblwtcGlwZXM7CivnsKggPCBhXC1iZWFtXC1mb3JcLWhhbmdpbmdcLWJlbGxzXC1vclwtZHJ1bXM7CivnpLMgPCBuYW1lXC1vZlwtcGxhY2VcLWluXC1zaGFuXC14aVwtcHJvdmluY2U7Civlr7jojYnkuI3nlJ8gPCBcIm5vdFwtZXZlblwtYVwtYmxhZGVcLW9mXC1ncmFzc1wtZ3Jvd3NcIjsKK+eiqyA8IGNvYXJzZVwtc3RvbmVcLVwodXNlZFwtZm9yXC13aGV0c3RvbmVcKTsKK+eSryA8IGphZGVcLW9ybmFtZW50XC1pblwtdGhlXC1zZWFtc1wtb2ZcLWNhcDsKK+eQryA8IGFcLWphZGVcLXR1YmVcLXVzZWRcLWFzXC1hblwtaW5zdHJ1bWVudDsKK+eOgSA8IGFcLWRvZ1wtd2l0aFwtYVwtbG9uZ1wtc25vdXRcLW9yXC1tdXp6bGU7CivlnJbmm7ggPCBib29rc1wtXChpblwtYVwtbGlicmFyeVwtb3JcLWJvb2tzdG9yZVwpOwor5a626ZW3IDwgdGhlXC1wYXJlbnRcLW9yXC1ndWFyZGlhblwtb2ZcLWFcLWNoaWxkOwor5Zue5q24IDwgdG9cLXJldHVyblwtXCh0b1wtcHJldmlvdXNcLWNvbmRpdGlvblwpOwor5pOm5Lqu55y8552bIDwgcmVtb3ZlXC10aGVcLXNjYWxlc1wtZnJvbVwtb25lJydzXC1leWVzOwor6KOc5YGP5pWR5byKIDwgcmVtZWR5XC1kZWZlY3RzXC1hbmRcLXJlY3RpZnlcLWVycm9yczsKK+ajnyA8IHRoZVwtbWFpblwtYmVhbXNcLXN1cHBvcnRpbmdcLWFcLWhvdXNlOwor6aqo5rOVIDwgYm9uZVwtXChwcm9wZXJ0eVwtb2ZcLWFcLWJydXNoXC1zdHJva2VcKTsKK+eZvuW3neatuOa1tyA8IGFsbFwtdGhpbmdzXC10ZW5kc1wtaW5cLW9uZVwtZGlyZWN0aW9uOwor6KqT5LiN5Y+N5oKUIDwgdG9cLXZvd1wtbm90XC10b1wtYnJlYWtcLW9uZScnc1wtcHJvbWlzZTsKK+WQg+S4jeS4iiA8IGJlXC11bmFibGVcLXRvXC1nZXRcLXNvbWV0aGluZ1wtdG9cLWVhdDsKK+aIoCA8IGFcLXN3b3JkXC5cLXBvdHRlcicnc1wtY2xheVwuXC10b1wtZ2F0aGVyOwor56eR5a2457eo6LyvIDwgc2NpZW5jZVwtZWRpdG9yXC1cKG9mXC1hXC1wdWJsaWNhdGlvblwpOwor5piC6aaW6ZeK5q2lIDwgc3RyaWRlXC1mb3J3YXJkXC13aXRoXC1vbmUnJ3NcLWNoaW5cLXVwOwor5pel57aT5oyH5pW4IDwgbmlra2VpXC1pbmRleFwtXChvZlwtamFwYW5lc2VcLXN0b2Nrc1wpOwor56eR6ZqGIDwgY29sb2duZVwsXC1nZXJtYW55XC1vclwtY29sb25cLFwtcGFuYW1hOwor5omT5raIIDwgZGlzcGVsXC1cKGRvdWJ0c1wsXC1taXNnaXZpbmdzXCxcLWV0Y1wuXCk7Civlka0gPCBmaW5hbFwtcGFydGljbGVcLWV4cHJlc3NpbmdcLWNvbnNlbnQ7CivlkaEgPCB0aGVcLWNvcm5lcnNcLW9mXC10aGVcLW1vdXRoXC10aGVcLWxpcHM7Civnlr7nl4XpoJDpmLLkuK3lv4MgPCBcKHVcLnNcLlwpXC1jZW50ZXJcLWZvclwtZGlzZWFzZVwtY29udHJvbDsKK+S2rCA8IGhhcmRcLWZpbnNcLW9uXC10aGVcLWJhY2tcLW9mXC1hXC1kcmFnb247CivktoUgPCBhXC1tYXJtb3RcLWxpa2VcLXJhdFwtd2l0aFwtYVwtYmlnXC1oZWFkOwor5LSTIDwgZ2VuZXJhbFwtdGVybVwtZm9yXC1zbWFsbFwtYmlyZFwtZ3JvdXA7CivkrJcgPCBibG93blwtb3JcLXRvc3NlZFwtYWJvdXRcLWJ5XC10aGVcLXdpbmQ7Civkp4kgPCBuYW1lXC1vZlwtYVwtcGF2aWxpb25cLWluXC1oYW5cLWR5bmFzdHk7CivkpbYgPCBjb29raW5nXC11dGVuc2lsXC11c2VkXC1pblwtb2xkXC10aW1lczsKK+SlrCA8IGFcLW11c2ljYWxcLWluc3RydW1lbnRcLWluXC1vbGRcLXRpbWVzOwor5KOcIDwgbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KOMIDwgcmVzaWRlbmNlXC1vZlwtYVwtcHJpbmNlXC1vclwtbm9iaWxpdHk7CivkoZ0gPCBhXC1yZWFyXC1jb3ZlcmluZ1wtb2ZcLWFcLWJpZ1wtY2FycmlhZ2U7CivkoYogPCB0aGVcLXByb3RydWRlZFwtc2lkZXNcLW9mXC1hXC1jYXJyaWFnZTsKK+SgmiA8IHRvXC1zdGVwXC1vblwtdGhlXC1ncm91bmRcLXdpdGhcLWFcLWJhbmc7CivkloMgPCB0aGVcLXdhdGVyXC1pc1wtd2F2aW5nXC1pblwtdGhlXC1icmVlemU7CivkkqcgPCBhXC12ZXNzZWxcLW9yXC11dGVuc2lsXC1tYWRlXC1vZlwtc3RyYXc7CivkjbIgPCBhXC1raW5kXC1vZlwtc2hlZXBcLXdpdGhcLWN1cmxlZFwtaGFpcnM7Civki7ggPCBiYWNrXC1jZW50ZXJcLXN1dHVyZVwtb2ZcLXRoZVwtY2xvdGhlczsKK+SLmyA8IHRoZVwtY2x1c3RlcmVkXC1lbWJyb2lkZXJ5XC1wYXR0ZXJuczsKK+SKliA8IHRvXC1lYXRcLXJpY2VcLWdydWVsXC1taXhlZFwtd2l0aFwtbWVhdDsKK+SGhSA8IHRvXC1hY2N1bXVsYXRlXC1vclwtdG9cLXN0b3JlXC11cFwtcmljZTsKK+SCpyA8IHJvY2tzXC1jbHVzdGVyZWRcLXBpbGVcLXVwXC10b2dldGhlcnM7CivkgL8gPCB0b1wtaGF2ZVwtYVwtY2FzdWFsXC1hbmRcLXNob3J0XC1nbGFuY2U7Civmib7liLAgPCBmaW5kXC1cKHdoYXRcLW9uZVwtd2FzXC1zZWFyY2hpbmdcLWZvclwpOwor5Y+s6ZaLIDwgY29udmVuZVwtXChhXC1jb25mZXJlbmNlXC1vclwtbWVldGluZ1wpOwor47mXIDwgY2F0dGxlXC1hbmRcLXNoZWVwXC1oYXZlXC1ub1wtY2hpbGRyZW47CivjtrIgPCBtZWFzdXJpbmdcLXVuaXRcLWZvclwtdGhlcm1vZHluYW1pY3M7CivjtbogPCBuYW1lXC1vZlwtYVwtc3RyZWFtXC1pblwtYW5jaWVudFwtdGltZXM7CivjtZAgPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7CivjtYsgPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1odW5hblwtcHJvdmluY2U7CivjsZIgPCB0b1wtc2NvbGRcLW9yXC1ibGFtZVwtaW5cLWFcLWxvdWRcLXZvaWNlOwor466+IDwgYVwtcGxhY2VcLWluXC10b2RheScnc1wtaHVuYW5cLXByb3ZpbmNlOwor46yIIDwgdGhlXC1zdW5cLXdhc1wtc2hpbmluZ1wtYW5kXC1pdCcnc1wtd2FybTsKK+OqiiA8IGluZmVzdGVkXC13aXRoXC1iYW5kaXRzXC1hbmRcLXJvYmJlcnM7CivjqJggPCB0b1wtYmxvd1wtdGhlXC1ub3NlXC13aXRoXC10aGVcLWZpbmdlcnM7Civjn74gPCBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWluXC1jb3VudHlcLWppYW47Civjn7ggPCBuYW1lXC1vZlwtcGF2aWxpb25cLWluXC1hbmNpZW50XC1jaGluYTsKK+OfgiA8IG5hbWVcLW9mXC1jYXBlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5ZG857GyIDwgY2FsbFwtb25cLVwoc29tZW9uZVwtdG9cLWRvXC1zb21ldGhpbmdcKTsKK+OaqiA8IHRvXC1tYWtlXC1hXC1kZWNlcHRpdmVcLXNob3dcLW9mXC1wb3dlcjsKK+mbu+iFpui8lOWKqeioreioiOiIh+e5quWcliA8IGNvbXB1dGVyXC1haWRlZFwtZGVzaWduXC1hbmRcLWRyYXdpbmc7Civjko0gPCB1dHRlcmx5XC13ZWFyeVwtaW5cLWJvZHlcLWFuZFwtc3Bpcml0czsKK+OQjCA8IGFcLXRyaWJlXC1vZlwtc2F2YWdlc1wtaW5cLXNvdXRoXC1jaGluYTsKK+enkeeIviA8IFwoaGVsbXV0XClcLWtvaGxcLVwoZ2VybWFuXC1jaGFuY2VsbG9yXCk7CivpvYvmnIggPCByYW1hZGFuXC1cKG11c2xpbVwtbW9udGhcLW9mXC1mYXN0aW5nXCk7Civlvpflr7jpgLLlsLogPCBsaXRlcmFsXDpcLWdldFwtYW5cLWluY2hcLFwtd2FudFwtYVwtZm9vdDsKK+i1t+S+hiA8IGJlZ2lubmluZ1wtb3JcLWNvbnRpbnVpbmdcLWFuXC1hY3Rpb247CivljJfpvYogPCB0aGVcLW5vcnRoZXJuXC1xaVwtZHluYXN0eVwtXCg1NTBcLTU1N1wpOwor5YyX5rSL6LuN6ZalIDwgdGhlXC1ub3J0aGVyblwtd2FybG9yZHNcLVwoMTkxMlwtMTkyN1wpOwor5ZCQ56mXIDwgdG9cLWhhdmVcLXRoZVwtZWFyc1wtb2ZcLWdyYWluXC1jb21lXC11cDsKK+Wkp+aDkeS4jeinoyA8IGRvXC1ub3RcLXVuZGVyc3RhbmRcLWFcLWNlcnRhaW5cLXRoaW5nOwor6KuL6aGYIDwgcGV0aXRpb25cLVwoZm9yXC1hY3Rpb25cLXRvXC1iZVwtdGFrZW5cKTsKK+WNiuaXpeWItuWtuOagoSA8IGhhbGZcLWRheVwtXChvclwtZG91YmxlXC1zaGlmdFwtc2Nob29sXCk7CivmmI7mlofopo/lrpogPCBleHByZXNzbHlcLXN0aXB1bGF0ZWRcLVwoaW5cLXdyaXRpbmdcKTsKK+S6q+WPlyA8IHRvXC1lbmpveVwtXChyaWdodHNcLFwtYmVuZWZpdHNcLFwtZXRjXC5cKTsKK+Wkp+W6reW7o+ecviA8IHB1YmxpY1wtcGxhY2VcLXdpdGhcLW51bWVyb3VzXC1wZW9wbGU7Civnmb7nhKHkuIDlpLEgPCBub1wtZGFuZ2VyXC1vZlwtYW55dGhpbmdcLWdvaW5nXC13cm9uZzsKK+S4ieWzvSA8IHRoZVwtdGhyZWVcLWNoYW5namlhbmdcLXJpdmVyXC1nb3JnZXM7Civlj5bmmpYgPCB0b1wtd2FybVwtb25lc2VsZlwtXChieVwtYVwtZmlyZVwsXC1ldGNcLlwpOwor5Lq65qyK6KeA5a+fIDwgaHVtYW5cLXJpZ2h0c1wtd2F0Y2hcLVwob3JnYW5pemF0aW9uXCk7CivpmaLplbcgPCBwcmVzaWRlbnRcLVwob2ZcLWFcLXVuaXZlcnNpdHlcLFwtZXRjXC5cKTsKK+aqouWvn+WumCA8IHRoZVwtcHJvc2VjdXRpb25cLVwoaW5cLWFcLWNvdXJ0XC1jYXNlXCk7CivlgpnogIzkuI3nlKggPCBoYXZlXC1zb21ldGhpbmdcLXJlYWR5XC1qdXN0XC1pblwtY2FzZTsKK+iogOirliA8IGV4cHJlc3Npb25cLW9mXC1cKHBvbGl0aWNhbFwpXC1vcGluaW9uOwor5oeJ55So56iL5byP5LuL6Z2iIDwgYXBwbGljYXRpb25cLXByb2dyYW1taW5nXC1pbnRlcmZhY2U7CivmjbsgPCB0b1wtdHdpc3RcLW9yXC1uaXBcLXdpdGhcLXRoZVwtZmluZ2VyczsKK+aIjCA8IGVsZXZlbnRoXC1vZlwtdGVycmVzdHJpYWxcLWJyYW5jaGVzOwor5pCTIDwgdG9cLXJ1Ylwtb3JcLXJvbGxcLWJldHdlZW5cLXRoZVwtaGFuZHM7CivlsKcgPCBhXC1sZWdlbmRhcnlcLWFuY2llbnRcLWVtcGVyb3JcLXNhZ2U7CivlqbYgPCB3aWZlXC1vZlwtZmF0aGVyJydzXC15b3VuZ2VyXC1icm90aGVyOwor5o6sIDwgdG9cLWdyYXNwXC1vclwtaG9sZFwtd2l0aFwtYm90aFwtaGFuZHM7CivluZsgPCBzY3JvbGxcLW9mXC1zaWxrXC1vclwtY2xvdGhcLXByZXNlbnRlOwor5qOCIDwgY2FydmVkXC1vclwtcGF0dGVybmVkXC13aW5kb3dcLXNpbGxzOwor5rCyIDwgbGlmZVwtZ2l2aW5nXC1pbmZsdWVuY2VzXC1vZlwtbmF0dXJlOwor6JqdIDwgaGFpcnlcLWFuZFwtcG9pc29ub3VzXC1jYXRlcnBpbGxhcnM7CivmvqcgPCByaXZlclwtaW5cLW5vcnRoZXJuXC1odW5hblwtcHJvdmluY2U7Civnra4gPCBkaXZpbmF0aW9uXC13aXRoXC1zdGFsa3NcLW9mXC1wbGFudHM7CivnrKogPCBhXC1jb2Fyc2VcLW1hdFwtb2ZcLXJ1c2hlc1wtb3JcLWJhbWJvbzsKK+mmkyA8IGZyaWVkXC1yb3VuZFwtY2FrZXNcLW9mXC13aGVhdFwtZmxvdXI7CivnrpAgPCB0b1wtZHJhd1wtYVwtYmFtYm9vXC1ib3dcLW9yXC1jcm9zc2JvdzsKK+aJgyA8IGFcLWRvb3JcLWJhclwtcGxhY2VkXC1vdXRzaWRlXC1hXC1kb29yOwor5LuJIDwgc3VybmFtZVwtb2ZcLXRoZVwtbW90aGVyXC1vZlwtbWVuY2l1czsKK+evgOWklueUn+aenSA8IG5ld1wtcHJvYmxlbXNcLWNvbXBsaWNhdGVcLWFuXC1pc3N1ZTsKK+m8u+mdkuiHieiFqyA8IGFcLWJsb29keVwtbm9zZVwtYW5kXC1hXC1zd29sbGVuXC1mYWNlOwor5pS/55WMIDwgcG9saXRpY2FsXC1hbmRcLWdvdmVybm1lbnRcLWNpcmNsZXM7CivmgKfliKUgPCBkaXN0aW5ndWlzaGluZ1wtYmV0d2VlblwtdGhlXC1zZXhlczsKK+mBleemgSA8IHRvXC12aW9sYXRlXC1hXC1wcm9oaWJ0aXRpb25cLW9yXC1iYW47CivphazlkowgPCB0b1wtcmVzcG9uZFwtdG9cLWFcLXBvZW1cLXdpdGhcLWFcLXBvZW07CivloLHogIMgPCBlbnRlclwtb25lc2VsZlwtZm9yXC1hblwtZXhhbWluYXRpb247CivljJflnIsgPCB0aGVcLW5vcnRoZXJuXC1wYXJ0XC1vZlwtdGhlXC1jb3VudHJ5Owor5LyB5qWt566h55CGIDwgYnVzaW5lc3NcLW1hbmFnZW1lbnRcLVwoYXNcLWFcLXN0dWR5XCk7CivlpJblrasgPCBncmFuZHNvblwtXChzb25cLW9mXC1vbmUnJ3NcLWRhdWdodGVyXCk7CivlhYnnupbliIbkvYjlvI/mlbjmk5rku4vpnaIgPCBmaWJlclwtZGlzdHJpYnV0ZWRcLWRhdGFcLWludGVyZmFjZTsKK+Weg+Wcvui7iiA8IGdhcmJhZ2VcLXRydWNrXC1cKG9yXC1vdGhlclwtdmVoaWNsZVwpOwor5aSn5ZyLIDwgYVwtcG93ZXJcLVwoaWVcLFwtYVwtZG9taW5hbnRcLWNvdW50cnlcKTsKK+mqviA8IGFueVwtb2JqZWN0XC10aGF0XC1zdGlja3NcLWluXC10aHJvYXQ7CivmjqLopqogPCB0b1wtZ29cLWhvbWVcLXRvXC12aXNpdFwtb25lJydzXC1mYW1pbHk7CivluIPms5XnvoUgPCBidWZmYWxvXC1cKGNpdHlcLWluXC1uZXdcLXlvcmtcLXN0YXRlXCk7CivlhavmnIPnqbQgPCB0aGVcLWVpZ2h0XC1zdHJhdGVnaWNcLW5lcnZlXC1wb2ludHM7Civpm6Pku6UgPCBoYXJkXC10b1wtXChwcmVkaWN0XCxcLWltYWdpbmVcLFwtZXRjXC5cKTsKK+WgseaViCA8IHJlbmRlclwtc2VydmljZVwtdG9cLXJlcGF5XC1raW5kbmVzczsKK+mGvCA8IG9mZmVyXC1mb29kXC1hbmRcLXdpbmVcLW9uZScnc1wtZ3Vlc3RzOwor6LynIDwgY3VydGFpbmVkXC1jYXJyaWFnZVwtdXNlZFwtYnlcLXdvbWVuOwor6LuZIDwgYVwtY2hpbmVzZVwtZmFtaWx5XC1uYW1lXC10b1wtYXJyYW5nZTsKK+imquaImiA8IFwoYVwpXC1yZWxhdGl2ZVwtXChpZVwsXC1mYW1pbHlcLW1lbWJlclwpOwor54K65pyfIDwgXCh0b1wtYmVcLWRvbmVcKVwtYnlcLVwoYVwtY2VydGFpblwtZGF0ZVwpOwor6L6y5puGIDwgdGhlXC10cmFkaXRpb25hbFwtY2hpbmVzZVwtY2FsZW5kYXI7CivotIEgPCB0b1wtZGVmZWF0XC10b1wtc3BvaWxcLW9yXC1iZVwtc3BvaWxlZDsKK+izjyA8IHBlYXJsc1wtb3JcLXNoZWxsc1wtc3RydW5nXC10b2dldGhlcjsKK+iriiA8IHRvXC1tYWtlXC1hXC1qdWRpY2lhbFwtaW52ZXN0aWdhdGlvbjsKK+aMieiqqiA8IGluXC10aGVcLW9yZGluYXJ5XC1jb3Vyc2VcLW9mXC1ldmVudHM7CivpgKPku7sgPCBjb250aW51ZVwtaW5cLVwoYVwtcG9saXRpY2FsXClcLW9mZmljZTsKK+efruWtkOijoeaLlOWwh+i7jSA8IGNob29zZVwtdGhlXC1iZXN0XC1wZXJzb25cLWF2YWlsYWJsZTsKK+iHieitnCA8IHR5cGVzXC1vZlwtZmFjaWFsXC1tYWtldXBcLWluXC1vcGVyYXM7CivnupkgPCBzdHJpbmdcLW9uXC13aGljaFwtY29pbnNcLWFyZVwtc3RydW5nOwor5620IDwgdHlwZVwtb2ZcLWdyYXNzXC11c2VkXC1pblwtZGl2aW5hdGlvbjsKK+mWi+W6rSA8IGJlZ2luXC1hXC1cKGp1ZGljaWFsXClcLWNvdXJ0XC1zZXNzaW9uOwor5YWs5a+pIDwgcHVibGljXC10cmlhbFwtXChpblwtYVwtY291cnRcLW9mXC1sYXdcKTsKK+eQhyA8IGNvYXJzZVwtdmFyaWV0eVwtb2ZcLWphc3Blclwtb3JcLWphZGU7CivkvYbpoZggPCBpZlwtb25seVwtXChpdFwtd2VyZVwtcG9zc2libGVcLXRvXC5cLlwuXCk7Civplovmma7mlaYgPCBjYXBlXC10b3duXC1cKGNpdHlcLWluXC1zb3V0aFwtYWZyaWNhXCk7CivotorkvobotorlmrTph40gPCB0b1wtYmVjb21lXC1tb3JlXC1zZXJpb3VzXC1ldmVyeVwtZGF5Owor5LiN6KyA6ICM5ZCIIDwgYWdyZWVcLXdpdGhvdXRcLXByaW9yXC1jb25zdWx0YXRpb247CivmjajlvpcgPCB0b1wtYmVcLXdpbGxpbmdcLXRvXC1wYXJ0XC13aXRoXC1cKHN0aFwpOwor5qOrIDwgdGhvcm55XC1zaHJ1Ylwtd2l0aFwteWVsbG93XC1mbG93ZXJzOwor6KaL5LiN5b6XIDwgbWF5XC1ub3RcLWJlXC1zZWVuXC1ieVwtb3JcLWV4cG9zZWRcLXRvOwor5peTIDwgc2VycmF0ZWRcLWVkZ2VzXC1vblwtYVwtY2hpbmVzZVwtZmxhZzsKK+aMgeaciSA8IGhvbGRcLVwoZWdcLFwtcGFzc3BvcnRcLFwtdmlld3NcLFwtZXRjXC5cKTsKK+aKl+eIrSA8IG1ha2VcLWFcLXN0YW5kXC1hbmRcLWZpZ2h0XC1cKGFnYWluc3RcKTsKK+i/keS5juWQjOatpeaVuOS9jemajuWxpCA8IHBsZXNpb2Nocm9ub3VzXC1kaWdpdGFsXC1oaWVyYXJjaHk7CivmjInlhbXkuI3li5UgPCBub3RcLXRocm93XC10aGVcLXRyb29wc1wtaW50b1wtYmF0dGxlOwor5bayIDwgYVwtbmFtZVwtb2ZcLWFuXC1vbGRcLXRvd25cLWluXC1zaWNodWFuOwor56+m5a2QIDwgYVwtZG91YmxlXC1lZGdlZFwtZmluZVwtdG9vdGhlZFwtY29tYjsKK+aKleapnyA8IGJlXC1hXC1zcGVjdWxhdG9yXC1cKHByb2ZpdFwtc2Vla2luZ1wpOwor5aGxIDwgcGxhY2VcLW5hbWVcLWluXC1ndWFuZ2RvbmdcLXByb3ZpbmNlOwor5YmoIDwgc291bmRcLW9mXC1zb21ldGhpbmdcLWJlaW5nXC1zbWFzaGVkOwor5oyq5YCfIDwgdG9cLWJvcnJvd1wtbW9uZXlcLWZvclwtYVwtc2hvcnRcLXRpbWU7CivlrrDnm7ggPCBwcmltZVwtbWluaXN0ZXJcLVwoaW5cLWZldWRhbFwtY2hpbmFcKTsKK+S4gOS4reS4gOiHuiA8IFwib25lXC1jaGluYVwsXC1vbmVcLXRhaXdhblwiXC1cKHBvbGljeVwpOwor5LWsIDwgYmxhY2tcLXNvdW5kXC1vZlwtdGhlXC1mbG93aW5nXC13YXRlcjsKK+S0jSA8IGFcLWtpbmRcLW9mXC1zdHJhbmdlXC1hbmRcLXdlaXJkXC1iaXJkOwor5LSJIDwgZ2VuZXJhbFwtdGVybVwtZm9yXC1hXC1ncm91cFwtb2ZcLWJpcmQ7Civks7AgPCBhXC1iaXJkXC1yZXNlbWJsaW5nXC10aGVcLXdpbGRcLWdvb3NlOwor5LGZIDwgYVwtc21hbGxcLWtpbmRcLW9mXC10dW5hXC1vclwtc3R1cmdlb247CivksJQgPCBkcmVzc2VkXC1oYWlyXC1pblwtYVwtaG9yaXpvbnRhbFwtd2F5Owor5KqsIDwgc291bmRcLW9mXC1wcmVzc2luZ1wtc29tZXRoaW5nXC1kb3duOwor5KmsIDwgYW5cLW9ybmFtZW50YWxcLWl0ZW1cLW9uXC1hXC1zY2FiYmFyZDsKK+SntSA8IGFcLWJpcmRcLWxpa2VcLXRoZVwtc2VjcmV0YXJ5XC1mYWxjb247Civkpo4gPCBhXC1tZWNoYW5pY2FsXC1kZXZpY2VcLWZvclwtbGVhZFwtb3JlOwor5KW+IDwgdG9cLW1lbHRcLW9yXC1jYXN0XC1ieVwtdXNpbmdcLWFcLW1vdWxkOwor5KWZIDwgYVwtc3BlY3VsdW1cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SktyA8IGFcLWxhbmNlXC13aXRoXC10aHJlZVwtb3JcLXR3b1wtcG9pbnRzOwor5Lit5pel6Z+T6LaKIDwgY2hpbmFcLFwtamFwYW5cLFwta29yZWFcLFwtYW5kXC12aWV0bmFtOwor5KOiIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtYW5jaWVudFwtdGltZXM7CivknYEgPCBhXC1raW5kXC1vZlwtd2lsZFwtbGVndW1pbm91c1wtcGxhbnRzOwor5Ju2IDwgd3JpdGluZ3NcLWV1bG9naXppbmdcLWFkZWFkXC1wZXJzb247CivomZvohZUgPCBlbXB0eVwtd3Jpc3RcLVwobWV0aG9kXC1vZlwtcGFpbnRpbmdcKTsKK+SXpCA8IGFcLWtpbmRcLW9mXC13b3JtXC1wcm9kdWNlZFwtaW5cLXdhdGVyOwor5Y+W5b6X5aSn5a245a245L2NIDwgdG9cLW9idGFpblwtYVwtdW5pdmVyc2l0eVwtZWR1Y2F0aW9uOwor5I2wIDwgYVwtcGxhZ3VlXC1vclwtYVwtcGVzdGlsZW5jZVwtb2ZcLWdvYXQ7CivkioogPCB3ZWxsXC1ib2lsZWRcLWNvbmdlZVwtb3JcLXJpY2VcLWdydWVsOwor5ImIIDwgYVwta2luZFwtb2ZcLWJhbWJvb1wtd2l0aFwtYVwtcmVkXC1za2luOwor5IeIIDwgdG9cLXB1dFwtaW50b1wtYVwtY3VwYm9hcmRcLW9yXC1jbG9zZXQ7Civkh4AgPCBvcm5hbWVudHNcLW9mXC1maW5lXC1mZWF0aGVyXC1vclwtZnVyOwor5IW5IDwgYVwta2luZFwtb2ZcLWRyaWxsXC1mb3JcLXNvd2luZ1wtZ3JhaW47CivkhakgPCBjcm9va2VkXC1hbmRcLXdpbmRpbmdcLW9mXC10aGVcLWdyYXNzOwor5IS3IDwgYVwtbWVhc3VyZW1lbnRcLWVxdWFsXC10b1wtMTIwXC1jYXR0eTsKK+SDqiA8IGFcLXBsYXRmb3JtXC1mb3JcLXNhY3JpZmljaWFsXC1yaXRlczsKK+SCniA8IGFcLXRob3JueVwtdHJlZVwtYWJvdXRcLTE1XC1mZWV0XC1oaWdoOwor5Ym16L6m5Lq6IDwgZm91bmRlclwtXChvZlwtYW5cLWluc3RpdHV0aW9uXCxcLWV0Y1wpOwor47qcIDwgZmllcmNlXC1kb2dcLXdpdGhcLWxvbmdcLXNoYWdneVwtaGFpcjsKK+O6iSA8IGFcLWZpZXJjZVwtYW5pbWFsXC1vZlwtdGhlXC1kb2dcLXRyaWJlOwor5LiN6KuWIDwgbm9cLW1hdHRlclwtXCh3aGF0XCxcLXdob1wsXC1ob3dcLFwtZXRjXC5cKTsKK+O5oSA8IGFcLXJ1c2hcLWFuZFwtaW1wYXRpZW50XC1kaXNwb3NpdGlvbjsKK+O4oSA8IGJvYXJkXC10b1wtYmxvY2tcLXRoZVwtd2F0ZXJcLWN1cnJlbnQ7CivjuJogPCBzY2F0dGVyZWRcLW9yXC1kaXNwZXJzZWRcLWFuZFwtY2xlYXI7CivjtK0gPCBpbW1lYXN1cmFibGVcLWRlcHRoXC1vclwtcHJvZnVuZGl0eTsKK+OxqCA8IHRvXC1wcmVwYXJlXC1hXC1ib2R5XC1mb3JcLXRoZVwtY29mZmluOwor5L+d5L+uIDwgZ3VhcmFudGVlXC10b1wta2VlcFwtaW5cLWdvb2RcLXJlcGFpcjsKK+OshyA8IG5hbWVcLW9mXC1hXC1zdGF0ZVwtaW5cLWFuY2llbnRcLWNoaW5hOwor46m9IDwgYnJhbmNoZXNcLXRvXC1iZVwtYVwtcGFyYXNpdGVcLWFcLXRyZWU7CivjqJIgPCB0b1wtY3V0XC1vcGVuXC1hbmRcLWNsZWFuXC1cLVwtXC1hc1wtZmlzaDsKK+mHkemCiiA8IHBobm9tXC1wZW5oXC1cKGNhcGl0YWxcLW9mXC1jYW1ib2RpYVwpOwor46KyIDwgdGhlXC01dGhcLW9mXC10aGVcLWVpZ2h0XC1kaWFncmFtc1wt5YWr5Y2mOwor45+oIDwgYVwtZm91bnRhaW5cLWluXC10aGVcLXNpZGVcLW9mXC1hXC1oaWxsOwor45uNIDwgdG9cLWhhdmVcLW9uZScnc1wtYW1iaXRpb25cLWZ1bGZpbGxlZDsKK+OaoSA8IHN0YW5kaW5nXC13aXRob3V0XC1hXC1zdHJhaWdodFwtYmFjazsKK+OaiSA8IHRvXC1tYWtlXC1hXC1wcm9maXRcLW9uXC1zZWxsXC1hbmRcLWJ1eTsKK+S+teS9lCA8IHRvXC1pbnZhZGVcLWFuZFwtb2NjdXB5XC1cKHRlcnJpdG9yeVwpOwor45WjIDwgYVwtbWFyc2hcLWF0XC10aGVcLWZvb3RcLW9mXC10aGVcLWhpbGxzOwor5p+v5a+GIDwga2VybWl0XC1cKGNvbW11bmljYXRpb25zXC1wcm90b2NvbFwpOwor5Lqr5pyJIDwgZW5qb3lcLVwocmlnaHRzXCxcLXByaXZpbGVnZXNcLFwtZXRjXC5cKTsKK+emrueCriA8IGFcLWd1blwtc2FsdXRlXC1cKGVnXCxcLTIxXC1ndW5cLXNhbHV0ZVwpOwor56qB5Y6lIDwgdHVya2ljXC1cKG1pbm9yaXR5XC1ncm91cFwtaW5cLWNoaW5hXCk7CivmiIjniL7lt7TllqzlpKsgPCBcKGZvcm1lclwtc292aWV0XC1sZWFkZXJcKVwtZ29yYmFjaGV2Owor6YC85L6b5L+hIDwgb2J0YWluXC1jb25mZXNzaW9uc1wtYnlcLWNvbXB1bHNpb247Civlronkv50gPCBcKGFiYnJldmlhdGlvblwpXC1tYWludGFpblwtc2VjdXJpdHk7Civlo73purUgPCBiaXJ0aGRheVwtbm9vZGxlc1wtXChmb3JcLWxvbmdldml0eVwpOwor5rW05a6kIDwgYmF0aHJvb21cLVwocm9vbVwtdXNlZFwtZm9yXC1iYXRoaW5nXCk7Civku6TkurogPCBjYXVzZVwtc29tZW9uZVwtdG9cLVwoYmVcLFwtZmVlbFwsXC1ldGNcKTsKK+W9ouW9seS4jemboiA8IGluc2VwYXJhYmxlXC1cKGFzXC1mb3JtXC1hbmRcLXNoYWRvd1wpOwor5ZWG5qWt54mI5pysIDwgY29tbWVyY2lhbFwtdmVyc2lvblwtXChvZlwtc29mdHdhcmVcKTsKK+eZvuiugOS4jeWOrSA8IGJlXC13b3J0aFwtcmVhZGluZ1wtYVwtaHVuZHJlZFwtdGltZXM7CivpmaTpnZ4gPCBvbmx5XC1pZlwtXChcLlwuXC5cLFwtb3JcLW90aGVyd2lzZVwsXC1cLlwuXC5cKTsKK+atp+imliA8IGRpc2NyaW1pbmF0aW9uXC1cKGFnYWluc3RcLXNvbWVvbmVcKTsKK+aVl+iQvSA8IGRlY2xpbmVcLVwoaW5cLXdlYWx0aFwtYW5kXC1wb3NpdGlvblwpOwor54Sh6YyrIDwgd3V4aVwtXChjaXR5XClcLFwtaW5cLWppYW5nc3VcLXByb3ZpbmNlOwor5YiG5rOi5aSa5belIDwgd2F2ZWxlbmd0aFwtZGl2aXNpb25cLW11bHRpcGxleGluZzsKK+W/heeUseS5i+i3ryA8IHRoZVwtcm9hZFwtb25lXC1tdXN0XC1mb2xsb3dcLW9yXC10YWtlOwor5LusIDwgYWRqdW5jdFwtcHJvbm91blwtaW5kaWNhdGVcLXBsdXJhbDsKK+WRoiA8IGludGVycm9nYXRpdmVcLW9yXC1lbXBoYXRpY1wtZmluYWw7CivmpbwgPCBidWlsZGluZ1wtb2ZcLXR3b1wtb3JcLW1vcmVcLXN0b3JpZXM7Civoja8gPCBsZWFmXC1vZlwtZGFodXJpYW5cLWFuZ2VsaWNhXC1wbGFudDsKK+m9jiA8IHRha2VcLWluXC1ib3RoXC1oYW5kc1wtYW5kXC1vZmZlclwtdG87CivkuIggPCB1bml0XC1vZlwtbGVuZ3RoXC1lcXVhbFwtM1wuM1wtbWV0ZXJzOwor5oyRIDwgYVwtbG9hZFwtY2FycmllZFwtb25cLXRoZVwtc2hvdWxkZXJzOwor56WdIDwgcHJheVwtZm9yXC1oYXBwaW5lc3NcLW9yXC1ibGVzc2luZ3M7CivmnYkgPCB2YXJpb3VzXC1zcGVjaWVzXC1vZlwtcGluZVwtYW5kXC1maXI7CivmnKcgPCBjb25kaXRpb25cLW9yXC1hcHBlYXJhbmNlXC1vZlwtbW9vbjsKK+mcuCA8IHJ1bGVcLWJ5XC1taWdodFwtcmF0aGVyXC10aGFuXC1yaWdodDsKK+euqiA8IHNtYWxsXC1iYW1ib29cLWJhc2tldFwtZm9yXC1ob2xkaW5nOwor6YakIDwgYW55XC1qYW1cLWxpa2VcLW9yXC1wYXN0ZVwtbGlrZVwtZm9vZDsKK+eClSA8IHRoZVwtYnJpY2tcLWJlZFwtaW5cLW5vcnRoZXJuXC1jaGluYTsKK+S6pSA8IGxhc3RcLW9mXC10d2VsdmVcLWVhcnRobHlcLWJyYW5jaGVzOwor57KkIDwgZ3Vhbmdkb25nXC1hbmRcLWd1YW5neGlcLXByb3ZpbmNlczsKK+eyvSA8IGR1bXBsaW5nXC1tYWRlXC1vZlwtZ2x1dGlub3VzXC1yaWNlOwor6ZmHIDwgbW91bnRhaW5cLWxvY2F0ZWRcLWJldHdlZW5cLXNoYW54aTsKK+mXviA8IHZpbGxhZ2VcLW9mXC10d2VudHlcLWZpdmVcLWZhbWlsaWVzOwor6YOmIDwgcGxhY2VcLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor6Z6FIDwgbGVhdGhlclwtc3RyYXBcLW92ZXJcLWhvcnNlJydzXC1uZWNrOwor6ZOhIDwgc2lja2xlXC1mb3JcLWN1dHRpbmdcLWdyYXNzXC1vclwtaGF5Owor6aqnIDwgZ2FsbG9wXC1hYm91dFwtd2l0aFwtaGVhZFwtdXBsaWZ0ZWQ7CivpqqIgPCBob3JzZVwtd2l0aFwtYVwtYmx1aXNoXC13aGl0ZVwtY29sb3I7Civom7MgPCBraW5kXC1vZlwtc25haWxcLXdpdGhcLXNwaXJhbFwtc2hlbGw7CivpgrMgPCBhXC1kZXBhcnRtZW50XC1pblwtdGhlXC1zdGF0ZVwtb2ZcLWx1Owor6YOiIDwgc3RhdGVcLWluXC10b2RheScnc1wtaHViZWlcLXByb3ZpbmNlOwor6aqWIDwgdHdvXC1vdXRzaWRlXC1vbmVzXC1pblwtdGhyZWVcLWhvcnNlOwor6L24IDwgY3Jvc3NcLWJvYXJkXC1hdFwtcmVhclwtb2ZcLWNhcnJpYWdlOwor566cIDwgYW5jaWVudFwtc3RyaW5nXC1tdXNpY1wtaW5zdHJ1bWVudDsKK+mDkCA8IHN0YXRlXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+i9uSA8IHJ1blwtb3Zlclwtc29tZXRoaW5nXC13aXRoXC12ZWhpY2xlOwor5qCdIDwgYVwtYnVpbGRlcicnc1wtZnJhbWVcLWZvclwtbWVhc3VyaW5nOwor542NIDwgYW5cLWFuaW1hbFwtd2hpY2hcLWVhdHNcLWl0c1wtbW90aGVyOwor6LKg6LKs5Lq6IDwgcGVyc29uXC1pblwtY2hhcmdlXC1cKG9mXC1zb21ldGhpbmdcKTsKK+WnkOWkqyA8IGJyb3RoZXJcLWluXC1sYXdcLVwoaHVzYmFuZCcnc1wtc2lkZVwpOwor5Y2B5LiJ57aTIDwgdGhlXC10aGlydGVlblwtY29uZnVjaWFuXC1jbGFzc2ljczsKK+WvpuaZguaTjeS9nOeSsOWigyA8IHJlYWxcLXRpbWVcLW9wZXJhdGluZ1wtZW52aXJvbm1lbnQ7CivnibnljYAgPCBzcGVjaWFsXC1cKGFkbWluaXN0cmF0aXZlXClcLXJlZ2lvbjsKK+aXpeWckyA8IGphcGFuZXNlXC15ZW5cLVwodW5pdFwtb2ZcLWN1cnJlbmN5XCk7Civnl4Xon7LlrrMgPCBwbGFudFwtZGlzZWFzZXNcLWFuZFwtaW5zZWN0XC1wZXN0czsKK+S6qOeJueazsOe+hSA8IGh1bnRlclwtdHlsb1wtXChob2xseXdvb2RcLWFjdHJlc3NcKTsKK+WjgearpSA8IGFcLWJ1aWx0XC1pblwtd2FyZHJvYmVcLW9yXC1jdXBib2FyZDsKK+mWiemWgOmAoOi7iiA8IG1ha2VcLWFcLWNhcnRcLWJlaGluZFwtY2xvc2VkXC1kb29yczsKK+mBv+aakSA8IGJlXC1hd2F5XC1mb3JcLXRoZVwtc3VtbWVyXC1ob2xpZGF5czsKK+atpeaQliA8IGRhbmdsaW5nXC1vcm5hbWVudFwtd29yblwtYnlcLXdvbWVuOwor5ZyL6Zqb5ZWG5qWt5qmf5ZmoIDwgaW50ZXJuYXRpb25hbFwtYnVzaW5lc3NcLW1hY2hpbmVzOwor6byXIDwgc21hbGxcLXJldm9sdmluZ1wtZHJ1bVwtd2l0aFwta25vYnM7CivpvJIgPCBsYXJnZVwtdHJpcG9kXC1jYWxkcm9uXC13aXRoXC1zbWFsbDsKK+m2liA8IGxhcmdlXC13YXRlcmZvd2xcLXdpdGhcLW5ha2VkXC1oZWFkOwor6aiEIDwgbmFtZVwtb2ZcLWFcLWxlZ2VuZGFyeVwtc3dpZnRcLWhvcnNlOwor6aSWIDwgZm9vZFwtaXRlbVwtc2V0XC1vdXRcLWZvclwtc2hvd1wtb25seTsKK+mgoyA8IHRvXC12aWV3XC1vdGhlcnNcLXdpdGhcLXJhaXNlZFwtZXllczsKK+mCpuS6pCA8IHJlbGF0aW9uc1wtYmV0d2VlblwtdHdvXC1jb3VudHJpZXM7CivphLQgPCBwbGFjZVwtaW5cLXRvZGF5JydzXC1ob25hblwtcHJvdmluY2U7CivphJogPCBwbGFjZVwtaW5cLXRvZGF5JydzXC1oZWJlaVwtcHJvdmluY2U7Civpg5QgPCBwbGFjZVwtbmFtZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mCvSA8IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1oYW5cLWR5bmFzdHk7Civou6ggPCBsYXR0aWNlXC13b3JrXC1vblwtZnJvbnRcLWFuZFwtc2lkZXM7CivouIsgPCB0aGVcLWZvb3RcLW9yXC1mZWV0XC1jYXN0XC1vZlwtYVwtcGxheTsKK+aVuOaTmumPiOi3r+mAo+aOpeitmOWIpeeivCA8IGRhdGFcLWxpbmtcLWNvbm5lY3Rpb25cLWlkZW50aWZpZXI7Civopa0gPCB0dWNrXC11cFwtaGVtXC1vZlwtZ2FybWVudFwtYW5kXC13cmFwOwor6KOLIDwgY290dG9uXC1jbG90aGVzXC1vZlwtYVwtYm95XC1zZXJ2YW50Owor6KG6IDwgc2xpdFwtaW5cLWdhcm1lbnRcLXRvXC1haWRcLW1vdmVtZW50Owor6KCoIDwgYVwta2luZFwtb2ZcLXNwaWRlclwtd2l0aFwtbG9uZ1wtbGVnczsKK+ieoyA8IG15dGhvbG9naWNhbFwtd2luZ2xlc3NcLWRyYWdvblwtb2Y7Civmj5DnhYkgPCB0b1wtZXh0cmFjdFwtXChvcmVcLFwtbWluZXJhbHNcLFwtZXRjXCk7Civoi6QgPCBicmFzc2ljYVwtY2FtcGVzdHJpc1wtc3Vic3BcLlwtcmFwYTsKK+api+aOpSA8IGJyaWRnaW5nXC1cKGluXC1jb21wdXRlclwtbmV0d29ya3NcKTsKK+iJlSA8IHR3b1wtYm9hdHNcLWZhc3RlbmVkXC1zaWRlXC1ieVwtc2lkZTsKK+WFq+aWuSA8IHRoZVwtZWlnaHRcLXBvaW50c1wtb2ZcLXRoZVwtY29tcGFzczsKK+iGqyA8IHRoZVwtZmF0XC1jb3ZlcmluZ1wtdGhlXC1pbnRlc3RpbmVzOwor5oKy5Zac5Lqk6ZuGIDwgbWl4ZWRcLWZlZWxpbmdzXC1vZlwtZ3JpZWZcLWFuZFwtam95Owor5YWn5pS/IDwgaW50ZXJuYWxcLWFmZmFpcnNcLVwob2ZcLWFcLWNvdW50cnlcKTsKK+e4lyA8IHNhY2tjbG90aFwtd29yblwtb25cLWJyZWFzdFwtZHVyaW5nOwor6L+r5L2/IDwgZm9yY2VcLVwoc29tZW9uZVwtdG9cLWRvXC1zb21ldGhpbmdcKTsKK+evqiA8IGFcLWJhbWJvb1wtZmx1dGVcLXdpdGhcLXNldmVuXC1ob2xlczsKK+WQg+S4jeacjSA8IG5vdFwtYmVcLWFjY3VzdG9tZWRcLXRvXC1lYXRpbmdcLXN0aDsKK+mVt+W7iiA8IHRoZVwtbG9uZ1wtY29ycmlkb3JcLWF0XC15aVwtaGVcLXl1YW47CivnnpYgPCBhXC1jYXRhcmFjdFwtb3JcLWZpbG1cLW92ZXJcLXRoZVwtZXllOwor5LiN5L+u6YKK5bmFIDwgbm90XC1jYXJlXC1hYm91dFwtb25lJydzXC1hcHBlYXJhbmNlOwor55WkIDwgcGxhY2VcLWZvclwtd29yc2hpcHBpbmdcLXRoZVwtaGF2ZW47CivlhYPluKUgPCBhXC1tYXJzaGFsXC1cKGluXC10aGVcLWFybWVkXC1mb3JjZXNcKTsKK+eUlyA8IGVhcnRoZW53YXJlXC12ZXNzZWxcLWluXC10d29cLXBhcnRzOwor56ym5ZCI576O5ZyL5Yip55uKIDwgaW5cLWxpbmVcLXdpdGhcLWFtZXJpY2FuXC1pbnRlcmVzdHM7CivlpKflv6vkurrlv4MgPCB0b1wtdGhlXC1zYXRpc2ZhY3Rpb25cLW9mXC1ldmVyeW9uZTsKK+agoemVtyA8IFwoY29sbGVnZVwsXC11bml2ZXJzaXR5XClcLXByZXNpZGVudDsKK+eDsyA8IHRvXC10cmF2ZWxcLWJ5XC10aGVcLWxpZ2h0XC1vZlwtdG9yY2g7CivngZUgPCBzaG9ydFwtbmFtZVwtZm9yXC1ndWFuZ3hpXC1wcm92aW5jZTsKK+mmrOWwvOaLiSA8IG1hbmlsYVwtXChjYXBpdGFsXC1vZlwtcGhpbGlwcGluZXNcKTsKK+mWi+WIgCA8IHRvXC1wZXJmb3JtXC1vclwtaGF2ZVwtYW5cLW9wZXJhdGlvbjsKK+aytCA8IGZvdWxcLWFuZFwtcG9pc29ub3VzXC1pblwtY29uZnVzaW9uOwor5qiQIDwgYVwtbG9va291dFwtdHVycmV0XC1vblwtYVwtY2l0eVwtd2FsbDsKK+ajuyA8IGtpbmRcLW9mXC13b29kXC1mcm9tXC13aGljaFwtcGVyZnVtZTsKK+i8qeWIhiA8IHNlbmlvcml0eVwtaW5cLXRoZVwtZmFtaWx5XC1vclwtY2xhbjsKK+aejCA8IHZhcmlldHlcLW9mXC1lbG1cLXdpdGhcLXNtYWxsXC1zZWVkczsKK+meremVt+iOq+WPiiA8IGJleW9uZFwtdGhlXC1yZWFjaFwtb2ZcLW9uZScnc1wtcG93ZXI7CivkuI3lrbjnhKHooZMgPCBoYXZlXC1uZWl0aGVyXC1sZWFybmluZ1wtbm9yXC1za2lsbDsKK+aHieipsuiqqiA8IGl0XC1zaG91bGRcLWJlXC1tZW50aW9uZWRcLXRoYXRcLVwuXC5cLjsKK+S4jeW+l+S4jSA8IGhhdmVcLW5vXC1jaG9pY2VcLW9yXC1vcHRpb25cLWJ1dFwtdG87CivkuI3lr5LogIzmhYQgPCBzaGl2ZXJcLWFsbFwtb3ZlclwtdGhvdWdoXC1ub3RcLWNvbGQ7CivlsL7niZkgPCBhXC15ZWFyXC1lbmRcLWRpbm5lclwtZm9yXC1lbXBsb3llZXM7Civnj63ovKogPCByZWd1bGFyXC1wYXNzZW5nZXJcLW9yXC1jYXJnb1wtc2hpcDsKK+WenyA8IGNsYXlcLXNoZWVwXC1idXJpZWRcLXdpdGhcLXRoZVwtZGVhZDsKK+aKqOaTiiA8IGF0dGFja1wtXCh2ZXJiYWxseVwtb3JcLWluXC13cml0aW5nXCk7CivoiJ7lj7AgPCBcKHRoZWF0cmljYWxcLW9yXC1wb2xpdGljYWxcKVwtc3RhZ2U7CivlkqAgPCB0b1wtd2hpc3BlclwuXC10b1wtYmxhbWVcLXRvXC1zbGFuZGVyOwor5Y+nIDwgdG9cLWN1dFwtbWVhdFwtb2ZmXC1hd2F5XC1mcm9tXC1ib25lczsKK+WGlCA8IGNhcFwtd29yblwtZHVyaW5nXC10aGVcLXlpblwtZHluYXN0eTsKK+S6vCA8IHRvXC1hc3NlbWJsZVwuXC10b1wtZ2F0aGVyXC10b2dldGhlcjsKK+S5hCA8IHNoaW1lXDpcLXRvXC1maW5kXC1hXC1wbGFjZVwtdG9cLWR3ZWxsOwor5LW4IDwgdGhlXC10b2FkXC10aGF0XC1saXZlc1wtaW5cLXRoZVwtbW9vbjsKK+SzoSA8IGFcLWtpbmRcLW9mXC1iaXJkXC1pblwtYW5jaWVudFwtYm9va3M7CivljJfkvJDou40gPCB0aGVcLW5vcnRoZXJuXC1leHBlZGl0aW9uYXJ5XC1hcm15Owor5LKeIDwgYVwtc2Vjb25kXC1nZW5lcmFsXC1uYW1lXC1mb3JcLXBlcmNoOwor5LGMIDwgYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXRoZVwtZ2xvYmVmaXNoOwor5LCdIDwgYVwtbGFyZ2VcLWVhcnRoZW5cLXBvdFwtZm9yXC1jb29raW5nOwor5LCAIDwgZHJlc3NlZFwtaGFpclwtb2ZcLWFcLWNoaW5lc2VcLXdvbWFuOwor5K64IDwgdG9cLW1vdmVcLXNsb3dseVwtYW5kXC10aGVuXC1zd2lmdGx5Owor5Ky7IDwgdG9cLWVudGVydGFpblwtYVwtZGVwYXJ0aW5nXC1mcmllbmQ7Civkqr4gPCB0b1wtZGVhbFwtd2l0aFwtYWZmYWlyc1wtY2F1dGlvdXNseTsKK+SqjSA8IGFcLWNvbnRhaW5lclwtZm9yXC1ib3dzXC1hbmRcLWFycm93czsKK+SooyA8IGxlYXRoZXJcLXRvXC1iZVwtbW9pc3RlbmVkXC1ieVwtcmFpbjsKK+i7n+mrlOWHuueJiOWNlOacgyA8IHNvZnR3YXJlXC1wdWJsaXNoZXJzXC1hc3NvY2lhdGlvbjsKK+SjoyA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtbmFtZVwtb2ZcLWFcLXBsYWNlOwor5J+aIDwgdG9cLXNpdFwtd2l0aFwtdGhlXC1sZWdzXC1zcHJlYWRcLW91dDsKK+SctyA8IGZlcm1lbnRlZFwtYW5kXC1zZWFzb25lZFwtc295YmVhbnM7CivknKogPCBuYW1lXC1vZlwtYVwtcGF2aWxpb25cLWluXC1vbGRcLXRpbWVzOwor5JuAIDwgcmVhc29uYWJsZVwtYXV0aG9yaXR5XC1zdGF0ZW1lbnRzOwor5JiFIDwgYVwtc21hbGxcLWdhZGZsaWVzXC1hbmRcLW1vc3F1aXRvZXM7Civlj6/np7vmpI0gPCBwb3J0YWJsZVwtXChwcm9ncmFtbWluZ1wtbGFuZ3VhZ2VcKTsKK+SQgyA8IGZhdFwtaW5cLXRoZVwtYWJkb21lblwtb3JcLWludGVzdGluZTsKK+SNmyA8IGFcLWtpbmRcLW9mXC10b29sXC11c2VkXC10b1wtZ2V0XC1maXNoOwor5IqkIDwgdmVnZXRhYmxlXC1taXhlZFwtd2l0aFwtdGhpY2tcLXNvdXA7CivkgrIgPCBzdGFuZGFyZFwtd2VpZ2h0c1wtdXNlZFwtaW5cLXNjYWxlczsKK+SBsCA8IHRvXC1sb29rXC1pblwtYVwtZXZpbFwtb3JcLXdpY2tlZFwtd2F5Owor47yWIDwgZ291cmRcLXVzZWRcLWFzXC1hXC1sYWRsZVwtb3JcLWRpcHBlcjsKK+O7qyA8IGFcLWdlbVwtb3JcLW9ybmFtZW50XC1vblwtYVwtc2NhYmJhcmQ7CivnjJvot4wgPCBkcm9wXC1zaGFycGx5XC1cKGVnXCxcLXN0b2NrXC1wcmljZXNcKTsKK+WxpOWHuuS4jeeqriA8IHRvXC1jb21lXC1vdXRcLW9uZVwtYWZ0ZXJcLXRoZVwtb3RoZXI7Civkv6Hku7YgPCBhXC1sZXR0ZXJcLVwoaWVcLFwtc2VudFwtaW5cLXRoZVwtbWFpbFwpOwor46y5IDwgdGVuZG9uc1wtb2ZcLXRoZVwtaGVlbFwtb2ZcLXRoZVwtZm9vdDsKK+OsgSA8IHRoZVwtc3VuXC1pc1wtc2hpbmluZ1wtb25cLXRoZVwtd2F0ZXI7CivjpYYgPCBpbmR1bGdlbnRcLWFuZFwtd2l0aG91dFwtcmVzdHJhaW50Owor5YWr57Sa5bel6LOH5Yi2IDwgZWlnaHRcLWdyYWRlXC13YWdlXC1zY2FsZVwtXChzeXN0ZW1cKTsKK+OXmCA8IHRvXC1iaXRlXC10aGVcLWhhcmRcLWFuZFwtc29saWRcLWZvb2Q7Civkvb/lkb0gPCBhXC1cKGRpcGxvbWF0aWNcLW9yXC1vdGhlclwpXC1taXNzaW9uOwor45OiIDwgdG9cLWN1dFwtdGhlXC1mbGVzaFwtZnJvbVwtdGhlXC1ib25lczsKK+OTlCA8IGZhZGVkXC1hbmRcLWZhbGxlblwtXC1cLVwtYXNcLWJsb3Nzb21zOwor45K7IDwgdG9cLWdvXC1mb3J3YXJkXC13aXRoXC1leWVzXC1jb3ZlcmVkOwor5Li555quIDwgdGhlXC1yb290XC1iYXJrXC1vZlwtdGhlXC1wZW9ueVwtdHJlZTsKK+WumuWBmiA8IHRvXC1oYXZlXC1zb21ldGhpbmdcLW1hZGVcLXRvXC1vcmRlcjsKK+WcqOWvhuWIh+azqOaEjyA8IHRvXC1wYXlcLWNsb3NlXC1hdHRlbnRpb25cLVwodG9cLXN0aFwpOwor5a6J5rCR5ZGK56S6IDwgYVwtbm90aWNlXC10b1wtcmVhc3N1cmVcLXRoZVwtcHVibGljOwor5p2+5LiL6Zu75rCj5bel5qWtIDwgbWF0c3VzaGl0YVwtZWxlY3Ryb25pY3NcLWluZHVzdHJ5Owor6YeN55SoIDwgdG9cLXB1dFwtaW5cLWFuXC1pbXBvcnRhbnRcLXBvc2l0aW9uOwor57Sw6I+M5q2m5ZmoIDwgYmlvbG9naWNhbFwtd2VhcG9uXC1cKHVzaW5nXC1nZXJtc1wpOwor5q+U6LO9IDwgXFthdGhsZXRpY1wtb3JcLW90aGVyXF1cLWNvbXBldGl0aW9uOwor5Yil6ZaL55Sf6Z2iIDwgc3RhcnRcLXNvbWV0aGluZ1wtbmV3XC1vclwtb3JpZ2luYWw7CivmlZjov7AgPCByZWxhdGVcLVwoYVwtc3RvcnlcLW9yXC1pbmZvcm1hdGlvblwpOwor5Yqg6YeNIDwgYmVjb21lXHxtYWtlXC1tb3JlXC1zZXJpb3VzXHxncmF2ZXI7CivolJrngrogPCB0b1wtYWZmb3JkXC1cKGFcLXZpZXdcLW9mXC1zdGhcLFwtZVwuZ1wuXCk7CivntpPmv5/lrbggPCBlY29ub21pY3NcLVwoYXNcLWFcLWZpZWxkXC1vZlwtc3R1ZHlcKTsKK+mbu+iHuiA8IHJhZGlvXC1cKG9yXC1icm9hZGNhc3RpbmdcKVwtc3RhdGlvbjsKK+WmgumjouS8vOa4tCA8IHRoaXJzdGluZ1wtb3JcLWh1bmdlcmluZ1wtZm9yXC1zdGhcLjsKK+mWi+Wci+WFg+WLmyA8IGZvdW5kaW5nXC1mYXRoZXJzXC1cKG9mXC1hXC1jb3VudHJ5XCk7CivnopHmnpcgPCB0aGVcLWZvcmVzdFwtb2ZcLXN0ZWxlc1wtXChpblwteGknJ2FuXCk7CivlubkgPCB0cnVua1wtb2ZcLXRyZWVcLW9yXC1vZlwtaHVtYW5cLWJvZHk7CivlsLogPCBjaGluZXNlXC1tZWFzdXJlXC1hcHByb3hcLlwtJydmb290Jyc7CivnsbMgPCBodWxsZWRcLW9yXC1odXNrZWRcLXVuY29va2VkXC1yaWNlOwor6bmPIDwgZmFidWxvdXNcLWJpcmRcLW9mXC1lbm9ybW91c1wtc2l6ZTsKK+WWgiA8IGludGVyamVjdGlvblwtdG9cLWNhbGxcLWF0dGVudGlvbjsKK+a9hyA8IHNvdW5kXC1vZlwtYmVhdGluZ1wtd2luZFwtYW5kXC1yYWluOwor56a5IDwgbGVnZW5kYXJ5XC1oc2lhXC1keW5hc3R5XC1mb3VuZGVyOwor5pafIDwgdG9cLXBvdXJcLXdpbmVcLW9yXC10ZWFcLWludG9cLWFcLWN1cDsKK+iQvCA8IHRoZVwtc3RlbVwtYW5kXC1jYWx5eFwtb2ZcLWFcLWZsb3dlcjsKK+mYgCA8IHBvd2VyZnVsXC1hbmRcLWluZmx1ZW50aWFsXC1ncm91cDsKK+altyA8IG1vZGVsXC1zdHlsZVwtb2ZcLWNoaW5lc2VcLXdyaXRpbmc7CivovoQgPCBzaWRlc1wtb2ZcLWNoYXJpb3RcLXdoZXJlXC13ZWFwb25zOwor5L+RIDwgd29vZGVuXC1maWd1cmVcLWJ1cmllZFwtd2l0aFwtZGVhZDsKK+WYuSA8IHVzZWRcLWRlc2NyaWJlXC1jbGFyaXR5XC1vZlwtdm9pY2U7CivovbwgPCBob3Jpem9udGFsXC13b29kZW5cLWJhclwtaW5cLWZyb250Owor6aaRIDwgdGltZVwtb2ZcLWZhbWluZVwtb3JcLWNyb3BcLWZhaWx1cmU7CivkvKUgPCBnaG9zdFwtb2ZcLW9uZVwtZGV2b3VyZWRcLWJ5XC10aWdlcjsKK+e7tiA8IHNpbGtcLXJpYmJvblwtYXR0YWNoZWRcLWFzXC1hXC1zZWFsOwor6ayIIDwgZmluZVwtZ3Jvd3RoXC1vZlwtaGFpclwtY3VybHlcLWhhaXI7Civno5QgPCBkb3dud2FyZFwtc3Ryb2tlXC1zbGFudGluZ1wtcmlnaHQ7Civoo6IgPCBmb2xkaW5nXC1wdXJzZVwtaW5zZXJ0ZWRcLWluXC1iZWx0Owor5p64IDwga2luZFwtb2ZcLWFzcGVuXC1mb3VuZFwtaW5cLXNpY2h1YW47CivoioogPCBleHViZXJhbnRcLWFuZFwtdmlnb3JvdXNcLWZvbGlhZ2U7CivphIQgPCBuYW1lXC1vZlwtYVwtZGlzdHJpY3RcLWluXC1zaGFuZG9uZzsKK+m8uSA8IGFcLWtpbmRcLW9mXC1pbnNlY3Rpdm9yb3VzXC1yb2RlbnQ7CivojrwgPCBhblwtZWRpYmxlXC13YXRlclwtcGxhbnRcLWJyYXNlbmlhOwor5ZysIDwgcGxhc3Rlclwtb3Zlclwtd2l0aFwtbGF5ZXJcLW9mXC1tdWQ7CivojqkgPCBtZW1icmFuZVwtbGluaW5nXC1pbnNpZGVcLW9mXC1yZWVkOwor6K+2IDwgYW5cLWV4Y2xhbWF0aW9uXC1vZlwtY29uZmlybWF0aW9uOwor6KSZIDwgcGFwZXJcLW9yXC1jbG90aFwtcGFzdGVkXC10b2dldGhlcjsKK+ebtOaOpeaVuOaTmiA8IGRhdGFcLWRpcmVjdFwtXChpblwtbGFuXC1lbXVsYXRpb25cKTsKK+WklueBmCA8IHdhaXRhblwtXCh0aGVcLWJ1bmRcKVwsXC1pblwtc2hhbmdoYWk7CivorYnlr6YgPCBjb25maXJtXC1cKHNvbWV0aGluZ1wtdG9cLWJlXC10cnVlXCk7CivmhJvpnaLlrZAgPCBiZVwtY29uY2VybmVkXC1hYm91dFwtZmFjZVwtc2F2aW5nOwor6K2w5ZOhIDwgbWVtYmVyXC1cKG9mXC1hXC1sZWdpc2xhdGl2ZVwtYm9keVwpOwor5aCx6KGoIDwgZm9ybXNcLWZvclwtcmVwb3J0aW5nXC1zdGF0aXN0aWNzOwor5piO5aCxIDwgbWluZ1wtcGFvXC1uZXdzcGFwZXJcLVwoaG9uZ1wta29uZ1wpOwor5YmN56iLIDwgZnV0dXJlXC1cKGNhcmVlclwsXC1ldGNcKVwtcHJvc3BlY3RzOwor55m76ZaAIDwgcGF5XC1hXC12aXNpdFwtdG9cLXNvbWVvbmUnJ3NcLWhvdXNlOwor6YKK5rCRIDwgcGVvcGxlXC1saXZpbmdcLW9uXC10aGVcLWZyb250aWVyczsKK+mCo+acqyA8IGlmXC10aGF0JydzXC10aGVcLWNhc2VcLFwtdGhlblwtXChcLlwuXC5cKTsKK+aViOaHiSA8IGVmZmVjdFwtXChlZ1wsXC1ncmVlbmhvdXNlXC1lZmZlY3RcKTsKK+WiqOeIvue8vSA8IG1lbGJvdXJuZVwtXChhblwtYXVzdHJhbGlhblwtY2l0eVwpOwor5q255b6SIDwgZXZpbFwtcGVyc29uXC13aG9cLWNvbW1pdHNcLWNyaW1lczsKK+aUtuW+qSA8IHJlY292ZXJcLVwobG9zdFwtdGVycml0b3J5XCxcLWV0Y1wuXCk7CivlgrLpqqggPCBsb2Z0eVwtYW5kXC11bnlpZWxkaW5nXC1jaGFyYWN0ZXI7CivmlrfkuqQgPCBicmVha1wtb2ZmXC1kaXBsb21hdGljXC1yZWxhdGlvbnM7Civpm7vohaboiIfpm7voqbHns7vntbHmlbTlkIggPCBjb21wdXRlclwtdGVsZXBob255XC1pbnRlZ3JhdGlvbjsKK+m2iyA8IGFcLXNlYVwtYmlyZFwtd2l0aFwtYVwtd2hpdGVcLWJyZWFzdDsKK+mvjyA8IGFcLWRpYWxlY3RcLlwuXC5cLlwuXC5cLlwuXC1uYW1lXC1vZlwtZmlzaDsKK+mlgSA8IGNhcnJ5XC1tZWFsXC10b1wtd29ya2Vyc1wtaW5cLWZpZWxkOwor5pel5pys6Zu75aCx6Zu76Kmx5YWs5Y+4IDwgbmlwcG9uXC10ZWxlZ3JhcGhcLWFuZFwtdGVsZXBob25lOwor6Y6rIDwgb3JuYW1lbnRcLW92ZXJcLXRoZVwtaG9yc2UnJ3NcLWhlYWQ7CivlgrPntbHphqvol6UgPCBcKGNoaW5lc2VcKVwtdHJhZGl0aW9uYWxcLW1lZGljaW5lOwor6LWZIDwgZ2lmdFwtb2ZcLW1vbmV5XC1oZWxwXC1wYXlcLWZ1bmVyYWw7CivmnInlj7Lku6XkvoYgPCBzaW5jZVwtdGhlXC1iZWdpbm5pbmdcLW9mXC1oaXN0b3J5Owor5biz5oi2IDwgXChiYW5rXCxcLWNvbXB1dGVyXCxcLWV0Y1wuXClcLWFjY291bnQ7CivoqaQgPCB0b1wtbWFrZVwtd2lsZFwtc3RhdGVtZW50c1wtdG9cLWxpZTsKK+aguOWogeaHvuaUv+etliA8IHBvbGljeVwtb2ZcLW51Y2xlYXJcLWludGltaWRhdGlvbjsKK+iYtCA8IHlvdW5nXC1zaG9vdHNcLW9mXC10aGVcLXJhcGV0dXJuaXA7Civojp0gPCB0b1wtY2hvcFwtc3RyYXdcLWZpbmVcLWZvclwtYW5pbWFsczsKK+e0ouadsOe0jSA8IHNvam91cm5lclwtXChtYXJ0aWFuXC1sYW5kXC1yb3ZlclwpOwor6IWgIDwgYmV0d2VlblwtdGhlXC1za2luXC1hbmRcLXRoZVwtZmxlc2g7CivljIXmsrvnmb7nl4UgPCBndWFyYW50ZWVcLXRvXC1jdXJlXC1hbGxcLWRpc2Vhc2VzOwor57+/IDwgc3RyZWFtZXJcLWFkb3JuZWRcLXdpdGhcLWZlYXRoZXJzOwor562lIDwgcm91bmRcLXNoYXBlZFwtYmFtYm9vXC1iYXNrZXRcLWZvcjsKK+WbuueEtiA8IGFkbWl0dGVkbHlcLVwoaXQnJ3NcLXRydWVcLXRoYXRcLlwuXC5cKTsKK+eXhCA8IHNjcm9mdWxvdXNcLXN3ZWxsaW5nc1wtYW5kXC1zb3JlczsKK+S4reiPr+S6uuawkeWFseWSjOWciyA8IHRoZVwtcGVvcGxlJydzXC1yZXB1YmxpY1wtb2ZcLWNoaW5hOwor546kIDwgYVwta2luZFwtb2ZcLWdlbVwtaW5mZXJpb3JcLXRvXC1qYWRlOwor5pyN5YuZ5buj5ZGK5Y2U6K2wIDwgc2VydmljZVwtYWR2ZXJ0aXNlbWVudFwtcHJvdG9jb2w7CivnhaAgPCB0b1wtZnJ5XC1pblwtZmF0XC1vclwtb2lsXC5cLXRvXC1zY2FsZDsKK+iHuueNqCA8IHRhaXdhblwtaW5kZXBlbmRlbmNlXC1cKG1vdmVtZW50XCk7CivmvY8gPCBmYXJlc2hhcmVcLXJlY2xhaW1lZFwtZnJvbVwtcml2ZXI7CivmvLwgPCBoYXZpbmdcLXRoZVwtYXBwZWFyYW5jZVwtb2ZcLWRlcHRoOwor5L+d6IuXIDwga2VlcFwtYVwtZnVsbFwtc3RhbmRcLW9mXC1zZWVkbGluZ3M7CivmrJ4gPCB0aGVcLWxhdHRpY2VcLW9mXC1hXC13aW5kb3dcLWFcLXNpbGw7CivmjInpnIDliIbphY0gPCBkaXN0cmlidXRpb25cLWFjY29yZGluZ1wtdG9cLW5lZWQ7CivkuJbosr/ntYTnuZQgPCB3dG9cLVwod29ybGRcLXRyYWRlXC1vcmdhbml6YXRpb25cKTsKK+abmiA8IHR3aWxpZ2h0XC1qdXN0XC1iZWZvcmVcLXN1blwtcmlzZXM7CivmspLmnInku4DpurwgPCB0aGVyZScnc1wtbm90aGluZ1wtXChcLlwuXC5cLWFib3V0XC1pdFwpOwor5paaIDwgYVwtc21hbGxcLWN1cFwtb2ZcLXN0b25lXC13aXRoXC1lYXJzOwor5oyJ5Yue5YiG6YWNIDwgZGlzdHJpYnV0aW9uXC1hY2NvcmRpbmdcLXRvXC13b3JrOwor6Lev55SxIDwgcm91dGluZ1wtXChpblwtY29tcHV0ZXJcLW5ldHdvcmtzXCk7CivlsI3nvo4gPCBcKHBvbGljeVwsXC1ldGNcLlwpXC10b3dhcmRzXC1hbWVyaWNhOwor5oyH5pW4IDwgXChudW1lcmljYWxcLFwtc3RhdGlzdGljYWxcKVwtaW5kZXg7CivnrYbnlasgPCBzdHJva2VzXC1vZlwtYVwtY2hpbmVzZVwtY2hhcmFjdGVyOwor5omKIDwgdXByaWdodFwtYmFyXC1mb3JcLWZhc3RlbmluZ1wtZG9vcjsKK+aFnCA8IG5hbWVcLW9mXC1hXC1tb25rXC1pblwtdGFuZ1wtZHluYXN0eTsKK+epuuilsiA8IFwobWlsaXRhcnlcKVwtYXR0YWNrXC1mcm9tXC10aGVcLWFpcjsKK+W0oCA8IHBsYWNlXC1uYW1lXC1pblwtZ3Vhbmd4aVwtcHJvdmluY2U7CivooajloLEgPCBzdGF0aXN0aWNhbFwtdGFibGVzXC1hbmRcLXJlcG9ydHM7Civlsp0gPCBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWluXC1zaGFuZG9uZzsKK+aLmOaKvCA8IFwoYXJyZXN0XC1hbmRcKVwtdGFrZVwtaW50b1wtY3VzdG9keTsKK+irh+W+l+S+hiA8IGFibGVcLXRvXC10YWxrXC10b1wtb3JcLWdldFwtb25cLXdpdGg7CivloK0gPCBhXC1kcnlcLW1vYXRcLW91dHNpZGVcLWFcLWNpdHlcLXdhbGw7CivloI4gPCBjaGFyYWN0ZXJcLXVzZWRcLWZvclwtcGxhY2VcLW5hbWVzOwor5Zq5IDwgYVwtcGFydGljbGVcLWltcGx5aW5nXC1jb21wbGV0aW9uOwor6Zi/5ouJ5pyo5ZyWIDwgYWxtYXR5XC1cKGNhcGl0YWxcLW9mXC1rYXpha2hzdGFuXCk7CivljLMgPCBsYWRpZXNcLXRvaWxldFwtY2FzZVwtd2l0aFwtbWlycm9yOwor5Yi1IDwgcHVuaXNobWVudFwtYnlcLWN1dHRpbmdcLW9mZlwtZWFyczsKK+WwmuabuCA8IGhpZ2hcLW9mZmljaWFsXC1pblwtYW5jaWVudFwtY2hpbmE7CivksoEgPCBnZW5lcmFsXC10ZXJtXC1vZlwtYVwta2luZFwtb2ZcLWZpc2g7CivkuIPlsaTmnrbmp4sgPCBzZXZlblwtbGF5ZXJcLWFyY2hpdGVjdHVyZVwtXChvc2lcKTsKK+SwmiA8IHRoZVwtdG9wXC1wYXJ0XC1vZlwtdGhlXC1yaWNlXC1ncnVlbDsKK+SvtSA8IGhhaXJcLXN0eWxlXC1mb3JcLWxpdHRsZVwtY2hpbGRyZW47Civkr6QgPCBib25ld2FyZVwtdXNlZFwtdG9cLWNvbWJcLXRoZVwtaGFpcjsKK+SvkiA8IHRoZVwtdXBwZXJcLXBhcnRcLW9mXC10aGVcLXNoaW5ib25lOwor5K6UIDwgYVwteW91bmdcLWFuZFwtZmxlZXRcLWZvb3RlZFwtaG9yc2U7CivkrbogPCBhXC1ob3JzZVwtdG9cLXJhaXNlXC1pdHNcLWhlYWRcLWhpZ2g7Civkq64gPCB0b1wtYmVuZFwtb3JcLWxvd2VyXC1vZlwtb25lJydzXC1oZWFkOwor5KuGIDwgdGhlXC1mcm9udFwtYW5kXC1iYWNrXC1vZlwtdGhlXC1uZWNrOwor5KeSIDwgc3RlcHNcLWxlYWRpbmdcLXVwXC10b1wtYVwtYnVpbGRpbmc7CivkpJsgPCBjb21wb25lbnRcLXBhcnRzXC1vZlwtYVwtY3Jvc3NcLWJvdzsKK+SjuSA8IHRvXC1icmV3XC0xMFwtcGVyY2VudFwtb2ZcLXRoZVwtd2luZTsKK+SjtSA8IHRvXC1icmV3XC10aGVcLXdpbmVcLWFcLXNlY29uZFwtdGltZTsKK+SjrCA8IHRoZVwtc2hpbnlcLWNvbG9yZnVsXC1vZlwtdGhlXC13aW5lOwor6IGz56uLIDwgdG9cLXRvd2VyXC1hYm92ZVwtXChvblwtdG9wXC1vZlwtc3RoXCk7Civkor4gPCBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXNtYWxsXC1zdGF0ZTsKK+ShgyA8IGFcLXRvb2xcLWZvclwtYnJ1c2hpbmdcLXRoZVwtdGhyZWFkOwor5JyyIDwgbmFtZVwtb2ZcLWFcLXZpbGxhZ2VcLWluXC1vbGRcLWNoaW5hOwor54+t57WEIDwgdGVhbXNcLWFuZFwtZ3JvdXBzXC1cKGluXC1mYWN0b3JpZXM7CivkmJMgPCB0aGlja1wtYmxvb2RcLW9mXC1jYXR0bGVcLWFuZFwtZ29hdDsKK+STvyA8IGFcLXNlY29uZFwtbmFtZVwtZm9yXC1sb3R1c1wtZmxvd2VyOwor5JO5IDwgdG9cLXN0dWZmXC1mdWxsXC1hbmRcLXRvXC1ndWxwXC1kb3duOwor5I2BIDwgdGhlXC1oZW1cLW9yXC1ib3JkZXJcLW9mXC1hXC1nYXJtZW50Owor5Iu0IDwgc2lsa1wtZmFicmljc1wtd2l0aFwtbWl4ZWRcLWNvbG9yczsKK+SLsyA8IGNsb3RoXC1vclwtcGFwZXJcLXBhc3RlZFwtdG9nZXRoZXI7CivkvK/mr40gPCB3aWZlXC1vZlwtZmF0aGVyJydzXC1lbGRlclwtYnJvdGhlcjsKK+SJpCA8IGFcLWJhbWJvb1wtd2FyZVwtZm9yXC13YXNoaW5nXC1yaWNlOwor5ImbIDwgYmFtYm9vXC1iYXNrZXRcLWZvclwtd2FzaGluZ1wtcmljZTsKK+SJkyA8IG1hdHRyZXNzXC1tYWRlXC1vZlwtYmFtYm9vXC1zdHJpcHM7Civkh6wgPCB0aGluXC1iYW1ib29cLWxhdGhzXC1rbml0dGVkXC1zYWlsOwor5IenIDwgdG9cLWZpbGxcLWFuXC1vcGVuaW5nXC13aXRoXC1iYW1ib287CivkhKEgPCBub3J0aGVyblwtbWlub3JpdHlcLWV0aG5pY1wtZ3JvdXA7Civkg7YgPCBydWdnZWRcLWFuZFwtdW5ldmVuXC1vZlwtdGhlXC1yb2NrczsKK+SDmiA8IHJ1Z2dlZFwtbGFuZFwtb2ZcLXNhbmRcLWFuZFwtcGViYmxlOwor5IOCIDwgZHVsbFwtc291bmRcLW9mXC10aGVcLXRvbGxpbmdcLWJlbGw7CivjvKEgPCBhXC1zbWFsbFwtamFyXC13aXRoXC1hXC1zbWFsbFwtbW91dGg7CivjtbcgPCB0dXJidWxlbnRcLWZsb3dpbmdcLW9mXC10aGVcLXdhdGVyOwor5Lit6JelIDwgXCh0cmFkaXRpb25hbFwpXC1jaGluZXNlXC1tZWRpY2luZTsKK+iqnumfs+mAmuioiumAmumBkyA8IHZvaWNlXC1cKGNvbW11bmljYXRpb25zXClcLWNoYW5uZWw7CivjsrkgPCB0aGVcLWRyeVwtc29pbFwtb25cLXRoZVwtcml2ZXJcLXNpZGU7Civjsp0gPCBmaW5lXC1oYWlyXC1vZlwtYmlyZHNcLWFuZFwtYW5pbWFsczsKK+OvhSA8IHRoZVwtYnJhbmNoZXNcLWdyb3dpbmdcLWRvd253YXJkczsKK+OugiA8IGFuXC1hcHBsaWFuY2VcLXVzZWRcLXRvXC1saWZ0XC1mb29kOwor46ykIDwgd2V0XC1jbG90aGVzXC1ub3RcLWNvbXBsZXRlbHlcLWRyeTsKK+OqviA8IHRvXC1jdXRcLXRoZVwtZmxlc2hcLWZyb21cLXRoZVwtYm9uZTsKK+OomSA8IHRvXC1jbGFzcFwtb3JcLWhvbGRcLXVuZGVyXC10aGVcLWFybTsKK+OmsiA8IGFcLXBhcnRpY2xlXC1leHByZXNzaW5nXC1zdXJwcmlzZTsKK+OliyA8IHNvdW5kXC1vZlwtdGhlXC1hbmd1aXNoXC1vZlwtc29ycm93Owor46SvIDwgY2xldmVyXC1vclwtc21hcnRcLWluXC1hXC1zbWFsbFwtd2F5Owor46SUIDwgdG9cLWNvbmNlZGVcLW9yXC1zdWJtaXRcLXdpbGxpbmdseTsKK+OjhyA8IGFcLWtpbmRcLW9mXC1iZWFzdFwtd2l0aFwtbG9uZ1wtaGFpcjsKK+OhniA8IGFcLXNhY2tcLXVzZWRcLXRvXC1mZWVkXC10aGVcLWhvcnNlczsKK+OgoyA8IGFcLW1vdW50YWluXC1pblwtamlhbmd4aVwtcHJvdmluY2U7Civjnq8gPCB0aGVcLXR1cm5pbmdcLWFyZWFcLW9mXC1hXC1tb3VudGFpbjsKK+ePreS4u+S7uyA8IGFcLXRlYWNoZXJcLWluXC1jaGFyZ2VcLW9mXC1hXC1jbGFzczsKK+OchiA8IGNvbW1vbmx5XC1rbm93blwtYXNcLW1vdGhlclwtaW5cLXd1Owor45maIDwgcmVkXC1jb2xvcmVkXC1oYXJkXC1hbmRcLXNvbGlkXC1tdWQ7CivjmJ4gPCB5ZWxsaW5nXC1zb3VuZFwtb2ZcLXRvd2luZ1wtYVwtYm9hdDsKK+OUqSA8IGhhaXJcLW9ybm1lbnRzXC11c2VkXC1pblwtb2xkXC10aW1lOwor45SAIDwgdG9cLWJyYW5kXC1jcmltaW5hbHNcLW9uXC10aGVcLWZhY2U7CivmmpfooosgPCBjYW1lcmFcLWJhZ1wtXChmb3JcLWNoYW5naW5nXC1maWxtXCk7Civlj6/pgbjmk4fkuJ/mo4QgPCBkaXNjYXJkXC1lbGlnaWJsZVwtXChmcmFtZVwtcmVsYXlcKTsKK+iZleaxuiA8IGV4ZWN1dGVcLVwoYVwtY29uZGVtbmVkXC1jcmltaW5hbFwpOwor5oeJ5pyJ55uh5pyJIDwgZXZlcnl0aGluZ1wtXChvbmVcLWNvdWxkXC1pbWFnaW5lXCk7CivmlrDprq4gPCBmcmVzaFwtXChleHBlcmllbmNlXCxcLWZvb2RcLFwtZXRjXC5cKTsKK+WwjuiIquWToSA8IG5hdmlnYXRvclwtXChvblwtYVwtcGxhbmVcLW9yXC1ib2F0XCk7Civlj6vogbIgPCB5ZWxsaW5nXC1cKHNvdW5kXC1tYWRlXC1ieVwtcGVyc29uXCk7Civnj63luKsgPCB3aXRoZHJhd1wtdHJvb3BzXC1mcm9tXC10aGVcLWZyb250Owor5ZOA5oK8IDwgZ3JpZXZlXC1cKG1vdXJuXClcLW92ZXJcLXNiJydzXC1kZWF0aDsKK+enkeaBqSA8IGNvaGVuXC1cKHVcLnNcLlwtZGVmZW5jZVwtc2VjcmV0YXJ5XCk7CivmlZfpmaMgPCBiZVwtZGVmZWF0ZWRcLW9uXC10aGVcLWJhdHRsZWZpZWxkOwor55y+6K2w6ZmiIDwgaG91c2VcLW9mXC1yZXByZXNlbnRhdGl2ZXNcLVwodXNhXCk7CivljIXos6AgPCBndWFyYW50ZWVcLXRvXC1wYXlcLWNvbXBlbnNhdGlvbnM7CivlkI3mrKEgPCBwb3NpdGlvblwtaW5cLWFcLXJhbmtpbmdcLW9mXC1uYW1lczsKK+WrguWrgiA8IHNpc3RlclwtaW5cLWxhd1wtXChodXNiYW5kJydzXC1zaWRlXCk7CivlpYnooYwgPCB0b1wtcHVyc3VlXC1cKGFcLWNvdXJzZVwsXC1hXC1wb2xpY3lcKTsKK+mdkuWxsee2oOawtCA8IHZlcmRhbnRcLWhpbGxzXC1hbmRcLWdyZWVuXC13YXRlcnM7CivlkbzllpogPCBjYWxsXC1vdXRcLVwoc29tZW9uZScnc1wtbmFtZVwsXC1ldGNcKTsKK/CggIEgPCB0aGVcLW9yaWdpbmFsXC1mb3JtXC1mb3JcLeS4g1wtdVwrNGUwMzsKK/CggIAgPCB0aGVcLXNvdW5kXC1tYWRlXC1ieVwtYnJlYXRoaW5nXC1pbjsKK+iZueapi+apn+WgtCA8IGhvbmdxaWFvXC1haXJwb3J0XC1cKGluXC1zaGFuZ2hhaVwpOwor57Wx5LiA5oub55SfIDwgbmF0aW9uYWxcLXVuaWZpZWRcLWVudHJhbmNlXC1leGFtOwor56S65aiBIDwgaG9sZFwtYVwtXChwcm90ZXN0XClcLWRlbW9uc3RyYXRpb247CivmnbHpg6jmmYLplpMgPCBcKHVcLnNcLlwpXC1lYXN0ZXJuXC1cKHN0YW5kYXJkXClcLXRpbWU7CivnlbbkuovkurogPCBwZXJzb25zXC1pbnZvbHZlZFwtb3JcLWltcGxpY2F0ZWQ7CivmmYLlpKfmmYLlsI8gPCBzb21ldGltZXNcLWJpZ1wsXC1zb21ldGltZXNcLXNtYWxsOwor5bi46KaP6YqF6Zu76Kmx57eaIDwgb3JkaW5hcnlcLWNvcHBlclwtdGVsZXBob25lXC1saW5lOwor6L+mIDwgY2hhcmFjdGVyXC1mb3JcLXRyYW5zbGl0ZXJhdGlvbjsKK+W6tSA8IGJ1ZGRoaXN0XC1tb25hc3RlcnlcLW9yXC1udW5uZXJ5Owor5bqaIDwgc2V2ZW50aFwtb2ZcLXRlblwtY3ljbGljYWxcLXN0ZW1zOwor6LajIDwgd2hhdFwtYXR0cmFjdHNcLW9uZScnc1wtYXR0ZW50aW9uOwor55WUIDwgYm91bmRhcnlcLXBhdGhcLWRpdmlkaW5nXC1maWVsZHM7CivlpL4gPCBiZVwtd2VkZ2VkXC1vclwtaW5zZXJ0ZWRcLWJldHdlZW47CivovoYgPCBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC12ZWhpY2xlczsKK+aAlCA8IGFcLWRpc2Vhc2VcLXJlc2VtYmxpbmdcLW5ldXJvc2lzOwor6ZmMIDwgZm9vdFwtcGF0aFwtYmV0d2VlblwtcmljZVwtZmllbGRzOwor6aqGIDwgYVwtd2hpdGVcLWhvcnNlXC13aXRoXC1ibGFja1wtbWFuZTsKK+aloyA8IGNyb3NzYmVhbVwtYWJvdmVcLW9yXC11bmRlclwtZ2F0ZTsKK+eSpyA8IHBpZWNlXC1vZlwtamFkZVwtd2l0aFwtaG9sZVwtaW5cLWl0Owor6Ia7IDwgcmFua1wtb2RvclwtXChvZlwtc2hlZXBcLW9yXC1nb2F0c1wpOwor546RIDwgcGVhcmxcLXRoYXRcLWlzXC1ub3RcLXF1aXRlXC1yb3VuZDsKK+WUoiA8IGZsdXRlXC1saWtlXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5qWCIDwgYVwtcmFmdFwuXC10b1wtaGV3XC5cLXRvXC1mZWxsXC10cmVlczsKK+eKkiA8IGVudGVydGFpblwtdmljdG9yaW91c1wtc29sZGllcnM7Civnn40gPCBsb29rXC1hYm91dFwtaW5cLWZyaWdodFwtb3JcLWFsYXJtOwor5pOkIDwgdG9cLWJsb3dcLXRoZVwtbm9zZVwtd2l0aFwtZmluZ2VyczsKK+iKoSA8IHBsYW50XC1hbGxpZWRcLXRvXC10aGVcLXdhdGVybGlseTsKK+exvCA8IG5vblwtZ2x1dGlub3VzXC1sb25nXC1ncmFpblwtcmljZTsKK+ahoSA8IGJlbnRcLW9yXC10d2lzdGVkXC1waWVjZVwtb2ZcLXdvb2Q7Civpu7sgPCBzcGVjaWFsXC1wYXR0ZXJuXC1vZlwtZW1icm9pZGVyeTsKK+W1nSA8IGdvdWxvdVwtbW91bnRhaW5cLXBlYWtcLWluXC1odW5hbjsKK+WerSA8IGNoYXJhY3RlclwtdXNlZFwtaW5cLXBsYWNlXC1uYW1lczsKK+ehliA8IFw8YXJjaFw+XC10b3duXC1pblwtaGViZWlcLXByb3ZpbmNlOwor6YKhIDwgbmFtZVwtb2ZcLWFcLWRpc3RyaWN0XC1pblwtc2ljaHVhbjsKK+iuoCA8IHNpbXBsaWZpZWRcLWthbmd4aVwtcmFkaWNhbFwtMTQ5Owor5Zm7IDwgY2hhcmFjdGVyXC11c2VkXC1pblwtdHJhbnNsYXRpb247CivnlqwgPCBzY3JvZnVsb3VzXC1sdW1wc1wtb3JcLXN3ZWxsaW5nczsKK+iUnyA8IGZyYW1lXC1vblwtd2hpY2hcLXNpbGt3b3Jtc1wtc3BpbjsKK+WepyA8IHZhcmlhYmxlXC11bml0XC1vZlwtbGFuZFwtbWVhc3VyZTsKK+msjyA8IGFcLWNvaWZmdXJlXC1vblwtdG9wXC1vZlwtdGhlXC1oZWFkOwor562YIDwgXChhXC1tZWFzdXJlXC1vZlwtd2lkdGhcLW9mXC1jbG90aFwpOwor57yRIDwgY29yZFwtYmluZGluZ1wtb25cLWhpbHRcLW9mXC1zd29yZDsKK+ewliA8IGJhbWJvb1wtdHJhcFwtZm9yXC1jYXRjaGluZ1wtZmlzaDsKK+W6iyA8IGFcLWN1cGJvYXJkXC1vclwtcGFudHJ5XC10b1wtc3RvcmU7CivnlI0gPCByYWZ0ZXJzXC1zdXBwb3J0aW5nXC1yb29mXC10aWxlczsKK+WQg+WIgCA8IHBlbmV0cmF0aW9uXC1vZlwtYVwtY3V0dGluZ1wtdG9vbDsKK+WQhOS9jSA8IGV2ZXJ5Ym9keVwtXChhXC10ZXJtXC1vZlwtYWRkcmVzc1wpOwor6Z+T5ZyTIDwga29yZWFuXC13b25cLVwodW5pdFwtb2ZcLWN1cnJlbmN5XCk7CivkuI3ovq3ogIzliKUgPCBsZWF2ZVwtd2l0aG91dFwtc2F5aW5nXC1nb29kXC1ieWU7Civnmb7ogb3kuI3ljq0gPCB3b3J0aFwtaGVhcmluZ1wtYVwtaHVuZHJlZFwtdGltZXM7CivkvY7pmo7oqp7oqIAgPCBsb3dcLWxldmVsXC1cKGNvbXB1dGVyXClcLWxhbmd1YWdlOwor5LiN6Laz54K66KiTIDwgbm90XC10b1wtYmVcLXRha2VuXC1hc1wtYW5cLWV4YW1wbGU7CivloLHnpL4gPCBnZW5lcmFsXC1vZmZpY2VcLW9mXC1hXC1uZXdzcGFwZXI7Civnmbzot6EgPCB0b1wtcmlzZVwtdG9cLXBvd2VyXC1hbmRcLXBvc2l0aW9uOwor5pSv5o+0IDwgcHJvdmlkZVwtYXNzaXN0YW5jZVwtb3JcLWJhY2tpbmc7Civop4DmuKwgPCBcKHNjaWVudGlmaWNcLFwtZXRjXClcLW9ic2VydmF0aW9uOwor6YGV5b+DIDwgYWdhaW5zdFwtb25lc1wtd2lsbFwtb3JcLWZlZWxpbmdzOwor6ae5IDwgYmxhY2tcLWhvcnNlXC13aXRoXC1hXC13aGl0ZVwtZmFjZTsKK+mljiA8IHdpbmVcLWFuZFwtZm9vZFwtZWF0ZW5cLXdpdGhcLXdpbmU7CivlkIzmraXmlbjkvY3pmo7lsaQgPCBzeW5jaHJvbm91c1wtZGlnaXRhbFwtaGllcmFyY2h5Owor5ou86Z+zIDwgcGlueWluXC1cKGNoaW5lc2VcLXJvbWFuaXphdGlvblwpOwor5aSn5ZC55aSn5pOCIDwgbWFrZVwtYW5cLWV4aGliaXRpb25cLW9mXC1vbmVzZWxmOwor6YeEIDwgd2luZVwtYnJld1wtZm9yXC10aGVcLXNlY29uZFwtdGltZTsKK+mHgSA8IHNtZWFyXC13aXRoXC1ibG9vZFwtaW5cLXNhY3JpZmljZTsKK+Wig+WkliA8IG91dHNpZGVcLVwoYVwtY291bnRyeScnc1wpXC1ib3JkZXJzOwor5LiK5rW35oiy5YqH5a246ZmiIDwgc2hhbmdoYWlcLXRoZWF0cmljYWxcLWluc3RpdHV0ZTsKK+i/pyA8IGFcLWNoaW5lc2VcLWZhbWlseVwtbmFtZVwtYXJyYW5nZTsKK+i9mCA8IHRlYXJcLWFzdW5kZXJcLWJldHdlZW5cLWNoYXJpb3RzOwor6LyZIDwgc2lkZXNcLW9mXC1jaGFyaW90XC13ZXJlXC13ZWFwb25zOwor5ouM6Z2iIDwgbm9vZGxlc1wtc2VydmVkXC13aXRoXC1zb3lcLXNhdWNlOwor55u05o6lIDwgZGlyZWN0XC1cKG9wcG9zaXRlXC1vZlwtaW5kaXJlY3RcKTsKK+ipgCA8IGdhcnJ1bG91c1wtdG9cLXdoaXNwZXJcLlwtdG9cLWpva2U7CivoqLkgPCB0b1wtYmVndWlsZVwtd2l0aFwtZmFsc2VcLXN0b3JpZXM7Civol4ogPCBhXC1raW5kXC1vZlwtYmVhblwtd2l0aFwtZmxhdFwtcG9kczsKK+WuieS5i+iLpee0oCA8IGJlYXJcLWhhcmRzaGlwXC13aXRoXC1lcXVhbmltaXR5Owor6IigIDwgbG9uZ1wtbmFycm93XC1rbmlmZVwtc2hhcGVkXC1ib2F0Owor6Y+h6aCtIDwgY2FtZXJhXC1zaG90XC1cKGluXC1hXC1tb3ZpZVwsXC1ldGNcKTsKK+e/oyA8IGZlYXRoZXJzXC11c2VkXC1kZWNvcmF0ZVwtY29mZmluOwor6I6r5LiNIDwgdGhlcmVcLWlzXC1ub1wtb25lXC1cKHdob1wtZG9lc24nJ3RcKTsKK+mAgeS6uiA8IHRvXC1zZWVcLVwob3JcLXdhbGtcKVwtc29tZW9uZVwtaG9tZTsKK+eZveaWhyA8IHRoZVwtdGV4dFwtb2ZcLWFuXC1hbm5vdGF0ZWRcLWJvb2s7CivnuJMgPCBvcmFuZ2VcLW9yXC1yZWRkaXNoXC15ZWxsb3dcLXNpbGs7Civopb/lk4jliqrlhYsgPCBcKGtpbmdcKVwtc2loYW5vdWtcLVwob2ZcLWNhbWJvZGlhXCk7CivlsIfpoJggPCBoaWdoXC1yYW5raW5nXC1taWxpdGFyeVwtb2ZmaWNlcjsKK+auuuS6uuahiOS7tiA8IFwoY2FzZVwtb2ZcLFwtaW5jaWRlbnRcLW9mXClcLW11cmRlcjsKK+ezjyA8IHJpY2VcLWdyaXRzXC1sZWZ0XC1hZnRlclwtaHVsbGluZzsKK+evmCA8IGFcLXV0ZW5zaWxcLXVzZWRcLXRvXC1maWx0ZXJcLXdpbmU7CivntIXntqDnh4ggPCBcKHJlZFwtYW5kXC1ncmVlblwpXC10cmFmZmljXC1saWdodDsKK+aOjOasiiA8IHdpZWxkXC1cKHBvbGl0aWNhbFwsXC1ldGNcLlwpXC1wb3dlcjsKK+S/g+mAsiA8IHRvXC1wcm9tb3RlXC1cKGFuXC1pZGVhXC1vclwtY2F1c2VcKTsKK+efsCA8IGFycm93XC13aXRoXC1hdHRhY2hlZFwtc2lsa1wtY29yZDsKK+WFrOWuiSA8IFwobWluaXN0cnlcLW9mXClcLXB1YmxpY1wtc2VjdXJpdHk7CivnjoMgPCBhXC1sYXJnZVwtYXBlXC1mb3VuZFwtaW5cLXdcLlwtY2hpbmE7CivnjIcgPCB0aGVcLXNjcmVhbVwtb3JcLXJvYXJcLW9mXC1hXC10aWdlcjsKK+eJuCA8IHRoZVwtZmVtYWxlXC1vZlwtY2VydGFpblwtYW5pbWFsczsKK+iDjOmBk+iAjOmmsyA8IHJ1blwtaW5cLXRoZVwtb3Bwb3NpdGVcLWRpcmVjdGlvbjsKK+a7mSA8IHdhdGVyc1wtY29udmVyZ2luZ1wtdG9cLW9uZVwtc3BvdDsKK+WCs+i8uOaOp+WItuWNlOWumiA8IHRyYW5zbWlzc2lvblwtY29udHJvbFwtcHJvdG9jb2w7Civnl4XmoLkgPCBhblwtaW5jb21wbGV0ZWx5XC1jdXJlZFwtaWxsbmVzczsKK+ijnOWgsSA8IG1ha2VcLWFcLXJlcG9ydFwtYWZ0ZXJcLXRoZVwtZXZlbnQ7Civph43opIfnr4AgPCByZXBlYXRlZFwtc2VnbWVudFwtXChuZXR3b3JraW5nXCk7CivmpIogPCB0b1wtZml0XC1hXC1oYW5kbGVcLWludG9cLWFcLXNvY2tldDsKK+S4jeWQjeS4gOaWhyA8IHdpdGhvdXRcLWFcLXBlbm55XC10b1wtb25lJydzXC1uYW1lOwor5LiN54Sh5bCP6KOcIDwgbm90XC1iZVwtd2l0aG91dFwtc29tZVwtYWR2YW50YWdlOwor5bCN6Ie6IDwgXChwb2xpY3lcLFwtZXRjXC5cKVwtdG93YXJkc1wtdGFpd2FuOwor5p2/6byTIDwgYVwtc21hbGxcLWRydW1cLWZvclwtbWFya2luZ1wtdGltZTsKK+aakCA8IHRoZVwtYnJpZ2h0XC1zaGluaW5nXC1vZlwtdGhlXC1zdW47CivmmLMgPCB0aGVcLWRlY2xpbmluZ1wtc3VuXC1pblwtdGhlXC13ZXN0Owor54m55Yil6KGM5pS/5Y2AIDwgc3BlY2lhbFwtYWRtaW5pc3RyYXRpdmVcLXJlZ2lvbjsKK+i0hei/sCA8IHRvXC1zYXlcLW1vcmVcLXRoYW5cLWlzXC1uZWNlc3Nhcnk7CivmjawgPCBwcmVzc1wtZG93blwtaGVhdmlseVwtd2l0aFwtaGFuZHM7CivmipQgPCB0YWtlXC1vclwtaG9sZFwtdXBcLWluXC1ib3RoXC1oYW5kczsKK+WvpuiCmCA8IGZ1bGxcLWFybVwtXChtZXRob2RcLW9mXC1wYWludGluZ1wpOwor5reY6YeRIDwgcGFubmluZ1wtXChmb3JcLXByZWNpb3VzXC1tZXRhbHNcKTsKK+W0viA8IHBsYWNlXC1uYW1lXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+WzqyA8IG1vdW50YWluXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5aeFIDwgd29tYW5cLWF0XC10aW1lXC1vZlwtbWVuc3RydWF0aW9uOwor5aO8IDwgcGFsYWNlXC1jb3JyaWRvclwtb3JcLXBhc3NhZ2V3YXk7Civlo40gPCBtb2F0XC1hcm91bmRcLWFcLWNpdHlcLlwtYVwtY2hhbm5lbDsKK+WKoOW8t+euoeWItiA8IHRvXC10aWdodGVuXC1jb250cm9sXC1cKG92ZXJcLXN0aFwpOwor5ZWpIDwgcGFydGljbGVcLWltcGx5aW5nXC1wcm9iYWJpbGl0eTsKK+WPkCA8IHRvXC1wcmlja1wtYVwtZG9nXC10b1wtbWFrZVwtaGltXC1nbzsKK+WNkCA8IHN3YXN0aWthXC1mb3VydGhcLW9mXC1hdXNwaWNpb3VzOwor5oiI54i+IDwgXChhbFwpXC1nb3JlXC1cKHVzXC12aWNlXC1wcmVzaWRlbnRcKTsKK+S2lSA8IGlycmVndWxhclwtYW5kXC1wcm9taW5lbnRcLXRlZXRoOwor5LWYIDwgZG9zZW4nJ3RcLXRcLXN0aWNrXC10b1wtZWFjaFwtb3RoZXI7CivksrUgPCBhXC1nZW5lcmFsXC1uYW1lXC1vZlwtc21hbGxcLWJpcmRzOwor5LqC6KqqIDwgdG9cLW1ha2VcLWlycmVzcG9uc2libGVcLXJlbWFya3M7Civkr4YgPCBzbWFsbFwtYW5kXC10aGluXC1waWVjZVwtb2ZcLWJvbmVzOwor5Lq65rCR5pel5aCxIDwgcmVubWluXC1yaWJhb1wtXChwZW9wbGUnJ3NcLWRhaWx5XCk7Civkq7IgPCB0aGluXC1hbmRcLXNpY2tseVwtaW5cLWFwcGVhcmFuY2U7Civkq6QgPCBiZXR3ZWVuXC10aGVcLWV5ZWJyb3dzXC1hbmRcLWV5ZXM7Civkq6EgPCBhXC1sb25nXC1zaGFwZVwtb2ZcLWhlYWRcLWFuZFwtZmFjZTsKK+SriyA8IGZlbWFsZVwtYXR0ZW5kYW50c1wtb3JcLXNlcnZhbnRzOwor6ZaL5aeL5Lul5YmNIDwgYmVmb3JlXC10aGVcLWJlZ2lubmluZ1wtXChvZlwtc3RoXCk7Civkp5AgPCBhXC1tb3VudGFpblwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivkpaMgPCBhblwtaW5zdHJ1bWVudFwtZm9yXC1ib3JpbmdcLXdvb2Q7CivkpYkgPCB0aGVcLWN1cnZlZFwtaXJvblwtcGFydFwtb2ZcLWFcLWhvZTsKK+SkkiA8IHdpbmVcLW1hZGVcLWZyb21cLWdsdXRpbm91c1wtcmljZTsKK+SkjSA8IHJvdHRlblwtcGFzdGVcLW9yXC1zb3liZWFuXC1zYXVjZTsKK+S4jeitmOWkp+mrlCA8IGZhaWxcLXRvXC1zZWVcLXRoZVwtbGFyZ2VyXC1pc3N1ZXM7CivkoL0gPCBoZWlnaHRcLW9yXC1zdGF0dXJlXC1vZlwtYVwtcGVyc29uOwor5KCxIDwgdG9cLXdhbGtcLXNsb3dseVwtYW5kXC1jYXV0aW91c2x5Owor5J+nIDwgc291bmRcLW9mXC10cmVhZGluZ1wtb3JcLXN0ZXBwaW5nOwor5J6HIDwgZ2lmdHNcLXRvXC1zdXBlcmlvcnNcLW9yXC1mcmllbmRzOwor5J29IDwgbmFtZVwtb2ZcLWFcLXBlcnNvblwtaW5cLW9sZFwtY2hpbmE7CivlhbXlt6Xlu6AgPCBtdW5pdGlvbnNcLW9yXC1vcmRuYW5jZVwtZmFjdG9yeTsKK+SdmSA8IGFcLWtpbmRcLW9mXC1hbmltYWxcLWxpa2VcLWFcLXRpZ2VyOwor5JyIIDwgdG9cLXNwZWFrXC1vblwtYmVoYWxmXC1vZlwtYW5vdGhlcjsKK+SYsyA8IGFcLWdhcm1lbnRcLW9mXC1zaW5nbGVcLXRoaWNrbmVzczsKK+SPvCA8IHdoYXRcLWlzXC1sZWZ0XC1vdmVyXC1vZlwtdGhlXC1mb29kOwor5LiN5omT6Ieq5oubIDwgY29uZmVzc1wtd2l0aG91dFwtYmVpbmdcLXByZXNzZWQ7CivkjqIgPCB0b1wtbWVhc3VyZVwtYnlcLXBpbnRzXC1hbmRcLXBlY2tzOwor5I6RIDwgZmx5aW5nXC1vdmVyXC10aGVcLXdhdGVyXC1zdXJmYWNlOwor5I2uIDwgeW91bmdcLWdvYXRcLXVuZGVyXC1vbmVcLXllYXJcLW9sZDsKK+SNgiA8IHRvb2xzXC10b1wtZHJhd1wtd2F0ZXJcLW9yXC1saXF1aWQ7CivkjL8gPCB0aGVcLWJyZWFkdGhcLW9mXC1jbG90aFwtb3JcLXBhcGVyOwor5IyXIDwgdGhlXC1sZWZ0XC1vdmVyXC1vZlwtZHJhd2luZ1wtc2lsazsKK+SMiCA8IHRvXC1nZXRcLXNvbWV0aGluZ1wtd2l0aFwtYVwtbGFzc287CivkuIDoiInlhanlvpcgPCBraWxsXC10d29cLWJpcmRzXC13aXRoXC1vbmVcLXN0b25lOwor5LiN6LuMIDwgYWdhaW5zdFwtdGhlXC1sYXdcLW9yXC1kaXNjaXBsaW5lOwor5ImlIDwgYVwtc21hbGxcLWJhc2tldFwtZm9yXC1jaG9wc3RpY2tzOwor5Y2K6Lqr5YOPIDwgaGFsZlwtbGVuZ3RoXC1waG90b1wtb3JcLXBvcnRyYWl0Owor5Ia6IDwgd2hpcmxpbmdcLW9mXC10aGVcLWZsb3dpbmdcLXdhdGVyOwor5IWiIDwgbWF0dXJlXC1vclwtcmlwZW5cLW9mXC10aGVcLWdyYWluczsKK+S/neWVhiA8IHByZXNlcnZhdGlvblwtb2ZcLXNvaWxcLW1vaXN0dXJlOwor47+2IDwgdGhlXC1zaWRlc1wtb2ZcLWFcLXNob2VcLW9yXC1ndXR0ZXI7CivjvbAgPCBjYXJ2ZWRcLXdpbmRvd1wtZnJhbWVcLW9uXC1hXC1kb29yOwor5L2c5oiwIDwgY29uZHVjdFwtXChtaWxpdGFyeVwtb3BlcmF0aW9uc1wpOwor47mCIDwgdW50YW1lZFwtYW5kXC1pbmRvY2lsaXR5XC1jYXR0bGU7CivjtIQgPCB0aGVcLXdhdGVyXC1mbG93aW5nXC1pblwtYVwtdHVybmVkOwor5LiW6KGMIDwgXFthYmJyZXZpYXRpb25cLWZvclxdXC13b3JsZFwtYmFuazsKK+OwiSA8IHRoZVwtaGF6ZWxcLW51dFwtb3JcLWZpbGJlcnRcLXRyZWU7CivkuK3oj68gPCBjaGluYVwtXChhbHRlcm5hdGVcLWZvcm1hbFwtbmFtZVwpOwor462fIDwgdG9ydHVyZVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor46uQIDwgZGlzdGFudFwtYW5kXC1pbmRpc3Rpbmd1aXNoYWJsZTsKK+OhuyA8IG5hbWVcLW9mXC1hXC1zbWFsbFwtYW5jaWVudFwtc3RhdGU7CivkvrXlhaUgPCB0b1wtbWFrZVwtXChtaWxpdGFyeVwpXC1pbmN1cnNpb25zOwor55CD5qqvIDwgdGFibGVcLVwoZm9yXC1nYW1lc1wtdXNpbmdcLWJhbGxzXCk7Civjm5AgPCB3aWZlXC1vZlwtb25lJydzXC1lbGRlcicnc1wtYnJvdGhlcjsKK+OahiA8IHRvXC1kb1wtc29tZXRoaW5nXC1pblwtYW5cLW9sZFwtd2F5Owor45afIDwgdG9cLWRlbGl2ZXJcLW92ZXJcLXRvXC1wZXJzb25hbGx5Owor5LiL6Ie6IDwgc3RlcFwtZG93blwtXChmcm9tXC1vZmZpY2VcLFwtZXRjXC5cKTsKK+iyquaxoSA8IFwocG9saXRpY2FsXCxcLW1vcmFsXClcLWNvcnJ1cHRpb247CivkuK3ntJogPCBtaWRkbGVcLWxldmVsXC1cKGluXC1hXC1oaWVyYXJjaHlcKTsKK+acieeahCA8IFwodGhlcmVcLWFyZVwpXC1zb21lXC1cKHdob1wtYXJlXC5cLlwuXCk7Civok4vpo68gPCByaWNlXC13aXRoXC1tZWF0XC1hbmRcLXZlZ2l0YWJsZXM7CivkuI3pgJ/kuYvlrqIgPCB1bmludml0ZWRcLW9yXC11bmV4cGVjdGVkXC1ndWVzdDsKK+S4i+ePrSA8IHRvXC1jb21lXC1vclwtZ29cLW9yXC1nZXRcLW9mZlwtd29yazsKK+eZvOmbu+mHjyA8IFwoZ2VuZXJhdGVkXClcLWVsZWN0cmljYWxcLWVuZXJneTsKK+S4jeW+l+imgemgmCA8IGZhaWxcLXRvXC1ncmFzcFwtdGhlXC1tYWluXC1wb2ludHM7CivljIXpircgPCBoYXZlXC1leGNsdXNpdmVcLXNlbGxpbmdcLXJpZ2h0czsKK+mAsuihjOiqv+afpSA8IHRvXC1jYXJyeVwtb3V0XC1hblwtaW52ZXN0aWdhdGlvbjsKK+iuk+eQgyA8IHRvXC1jb25jZWRlXC1wb2ludHNcLVwoaW5cLWFcLWdhbWVcKTsKK+abuOaIvyA8IHN0dWR5XC1cKGlcLmVcLlwtdGhlXC1raW5kXC1vZlwtcm9vbVwpOwor6YCa55So6LOH5rqQ6K2Y5Yil6JmfIDwgdW5pdmVyc2FsXC1yZXNvdXJjZVwtaWRlbnRpZmllcjsKK+iqjeitmCA8IGJlXC1hY3F1YWludGVkXC13aXRoXC1cKGFcLXBlcnNvblwpOwor5Y2755eFIDwgdG9cLXByZXZlbnRcLW9yXC10cmVhdFwtYVwtZGlzZWFzZTsKK+mBsumBsiA8IFwoYmVcKVwtbGF0ZVwtXCh3aXRoXC1hXC10YXNrXCxcLWV0Y1wuXCk7CivlpKfooZflsI/lt7cgPCBsYXJnZVwtc3RyZWV0c1wtYW5kXC1zbWFsbFwtbGFuZXM7CivwoICFIDwgYW5cLWFsdGVybmF0ZVwtZm9ybVwtb2ZcLXVcKzRlYTVcLeS6pTsKK+W+t+ePrSA8IGR1cmJhblwtXChjaXR5XC1pblwtc291dGhcLWFmcmljYVwpOwor5L+d5a6J5pePIDwgdGhlXC1iYW9hblwtXChwYW9hblwpXC1uYXRpb25hbGl0eTsKK+aTuui8qiA8IGJhbGFuY2VcLVwob2ZcLWFcLXdhdGNoXC1vclwtY2xvY2tcKTsKK+aTuuiorSA8IGZ1cm5pc2hcLWFuZFwtZGVjb3JhdGVcLVwoYVwtcm9vbVwpOwor5rGf5r6k5rCRIDwgamlhbmdcLXplbWluXC1cKGNoaW5lc2VcLXByZW1pZXJcKTsKK+eGsee3miA8IGhvdGxpbmVcLVwoY29tbXVuaWNhdGlvbnNcLWxpbmtcKTsKK+azleWItiA8IGxlZ2FsXC1zeXN0ZW1cLWFuZFwtaW5zdGl0dXRpb25zOwor5Lu2IDwgbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtYXJ0aWNsZTsKK+WQlyA8IGZpbmFsXC1pbnRlcnJvZ2F0aXZlXC1wYXJ0aWNsZTsKK+m6vSA8IGludGVycm9nYXRpdmVcLWZpbmFsXC1wYXJ0aWNsZTsKK+efoyA8IHBhcnRpY2xlXC1vZlwtY29tcGxldGVkXC1hY3Rpb247CivkuZIgPCB1c2VkXC13aXRoXC1wb25nXC1mb3JcLXBpbmdcLXBvbmc7CivkuZMgPCB1c2VkXC13aXRoXC1waW5nXC1mb3JcLXBpbmdcLXBvbmc7CivlkpogPCB1c2VkXC1hc1wtZGVzY3JpcHRpb25cLW9mXC1zb3VuZDsKK+eQhSA8IGFcLXZhcmlldHlcLW9mXC13aGl0ZVwtY2FybmVsaWFuOwor5a2wIDwgd2hvXD9cLXdoaWNoXD9cLXdoYXRcP1wtd2hpY2hcLW9uZVw/Owor5oiKIDwgZmlmdGhcLW9mXC10ZW5cLWNlbGVzdGlhbFwtc3RlbXM7CivmuLIgPCBhZGRcLXJlcGVhdGVkXC13YXNoZXNcLW9mXC1jb2xvcjsKK+WSqyA8IGZvb3RcLW1lYXN1cmVcLW9mXC16aG91XC1keW5hc3R5Owor6aW3IDwgcmF0aW9uc1wtYW5kXC1wYXlcLWZvclwtc29sZGllcnM7CivmsbYgPCBhXC1yaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+WPgSA8IGJhbmtcLWZvcm1cLW9mXC1udW1lcmFsXC0nJ3RocmVlJyc7Civlo6wgPCBuaW50aFwtb2ZcLXRlblwtY2VsZXN0aWFsXC1zdGVtczsKK+afqSA8IGNvZmZpblwtd2hpY2hcLWNvbnRhaW5zXC1jb3Jwc2U7CivmoaAgPCB0aGVcLWZvcmtpbmdcLWJyYW5jaFwtb2ZcLWFcLXRyZWU7CivnlI8gPCBhXC1zcXVhdFwtamFyXC1mb3JcLWhvbGRpbmdcLXdpbmU7CivnrJ4gPCBiYW1ib29cLXJvZFwtdXNlZFwtZm9yXC1iZWF0aW5nczsKK+mYlyA8IGFcLXBsYWNlXC1pblwteGluamlhbmdcLXByb3ZpbmNlOwor6ZOJIDwgZGV2aWNlXC1mb3JcLWNhcnJ5aW5nXC1hXC10cmlwb2Q7Civop6UgPCBhXC1jdXBcLW1hZGVcLW9mXC1ob3JuXC1vYnN0aW5hdGU7Civoo6MgPCBkcmF3XC1vbmUnJ3NcLWhhbmRzXC1pbnRvXC1zbGVldmU7CivltIMgPCBtb3VudGFpblwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor572YIDwgc2NyZWVuXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivmsIcgPCB0aGlja1wtcm91Z2hcLXNlcmdlXC1mcm9tXC10aWJldDsKK+WftCA8IHNvaWxcLXdpdGhcLWxhcmdlXC1jbGF5XC1jb250ZW50Owor5pi0IDwgb25lXC1vZlwtdGhlXC0yOFwtY29uc3RlbGxhdGlvbnM7Civoj7kgPCBzYWx0ZWRcLW9yXC1waWNrbGVkXC12ZWdldGFibGVzOwor5ZCE5aSn6LuN5Y2AIDwgXCJ0aGVcLWdyZWF0ZXJcLW1pbGl0YXJ5XC1hcmVhc1wiOwor5rC05bmzIDwgbGV2ZWxcLVwob2ZcLWFjaGlldmVtZW50XCxcLWV0Y1wuXCk7CivlpKvmrIogPCBhdXRob3JpdHlcLW92ZXJcLXRoZVwtaG91c2Vob2xkOwor5Y2w5bC8IDwgXChhYmJyZXZpYXRpb25cLWZvclwpXC1pbmRvbmVzaWE7Civororlg7kgPCBhcHByYWlzZVwtYXRcLXRoZVwtY3VycmVudFwtcmF0ZTsKK+W5tOWknOmjryA8IG5ld1wteWVhcicnc1wtZXZlXC1mYW1pbHlcLWRpbm5lcjsKK+WmueWkqyA8IGJyb3RoZXJcLWluXC1sYXdcLVwod2lmZScnc1wtc2lkZVwpOwor6YCy6ICMIDwgYW5kXC10aGVuXC1cKHdoYXRcLWZvbGxvd3NcLW5leHRcKTsKK+adjueZu+i8nSA8IGxlZVwtdGVuZ1wtaHVpXC1cKHRhaXdhblwtbGVhZGVyXCk7CivpmaPnt5ogPCBhXC1mcm9udFwtXChpZVwsXC1taWxpdGFudFwtZ3JvdXBcKTsKK+WRvOexsue+juWciyA8IHRvXC1jYWxsXC1vblwtdGhlXC11bml0ZWRcLXN0YXRlczsKK+WCs+e1seS4reWci+mGq+iXpSA8IGNoaW5lc2VcLXRyYWRpdGlvbmFsXC1tZWRpY2luZTsKK+atsuaciCA8IHRoZVwteWVhcnNcLW9mXC1hXC1wZXJzb24nJ3NcLWxpZmU7CivosZDooaPotrPpo58gPCBoYXZlXC1hbXBsZVwtZm9vZFwtYW5kXC1jbG90aGluZzsKK+S4jeefpeWlveatuSA8IG5vdFwta25vd1wtd2hhdCcnc1wtZ29vZFwtZm9yXC1vbmU7CivmrbjlsawgPCBiZVwtdW5kZXJcLXRoZVwtanVyaXNkaWN0aW9uXC1vZjsKK+WcqOmHjiA8IGJlXC1vdXRcLW9mXC1cKHBvbGl0aWNhbFwpXC1vZmZpY2U7Civlu6DmiL8gPCBhXC1idWlsZGluZ1wtdXNlZFwtYXNcLWFcLWZhY3Rvcnk7CivliKTmsbogPCBqdWRnbWVudFwtXChieVwtYVwtY291cnRcLW9mXC1sYXdcKTsKK+WbsOmboyA8IFwoZmluYW5jaWFsXCxcLWV0Y1wuXClcLWRpZmZpY3VsdHk7Civpta0gPCBhXC1zbWFsbFwtYmlyZFwtd2l0aFwtYmxhY2tcLW5lY2s7CivlpKfoh6rnhLYgPCBuYXR1cmVcLVwoYXNcLWluXC1tb3RoZXJcLW5hdHVyZVwpOwor57ay566h5o6l5Y+jIDwgbmV0d29ya1wtbWFuYWdlbWVudFwtaW50ZXJmYWNlOwor6ZqSIDwgdGhlXC1hcHBlYXJhbmNlXC1vZlwtYVwtbW91bnRhaW47CivmjpvomZ8gPCB0b1wtcmVnaXN0ZXJcLVwoYVwtbGV0dGVyXCxcLWV0Y1wuXCk7Civoo5zoi5cgPCBmaWxsXC10aGVcLWdhcHNcLXdpdGhcLXNlZWRsaW5nczsKK+agueaTmuS4iuihqCA8IGFjY29yZGluZ1wtdG9cLXRoZVwtYWJvdmVcLXRhYmxlOwor5q2m5YqbIDwgXChtYWtlXC11c2VcLW9mXClcLW1pbGl0YXJ5XC1mb3JjZTsKK+aUvuWBhyA8IHRvXC1oYXZlXC1hXC1ob2xpZHlcLW9yXC12YWNhdGlvbjsKK+mGgSA8IGFcLWtpbmRcLW9mXC1ncmVlblwtY29sb3JlZFwtd2luZTsKK+iIiemHjSA8IFwodGhlXC1zcG9ydFwtb2ZcKVwtd2VpZ2h0bGlmdGluZzsKK+mCvyA8IGFcLXN0YXRlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6L2WIDwgZnJhbWV3b3JrXC1vZlwtbGF0dGljZVwtb25cLWNhcnQ7CivlmrToqZ4gPCBcKGNyaXRpY2l6ZVwsXC1ldGNcLlwpXC1mb3JjZWZ1bGx5Owor6Ke1IDwgYVwtY3VwXC1tYWRlXC1vZlwtY29yblwtb2JzdGluYXRlOwor6I+v55ub6aCT5pmC5aCxIDwgd2FzaGluZ3RvblwtdGltZXNcLVwobmV3c3BhcGVyXCk7CivlooPlhacgPCB3aXRoaW5cLVwoYVwtY291bnRyeScnc1wpXC1ib3JkZXJzOwor6I+v5Lq6IDwgZXRobmljXC1jaGluZXNlXC1wZXJzb25cfHBlb3BsZTsKK+api+acrCA8IFwoamFwYW5lc2VcLXN1cm5hbWVcKVwtaGFzaGltb3RvOwor5Zyw55quIDwgbG90XCxcLXNlY3Rpb25cLW9mXC1sYW5kXCxcLWdyb3VuZDsKK+eri+aWueexsyA8IGN1YmljXC1tZXRlclwtXCh1bml0XC1vZlwtdm9sdW1lXCk7CivovYnmqZ8gPCBcKHRha2VcLWFcKVwtdHVyblwtZm9yXC10aGVcLWJldHRlcjsKK+WbuuWumuiZm+aTrOmAo+aOpSA8IHBlcm1hbmVudFwtdmlydHVhbFwtY29ubmVjdGlvbjsKK+W4uOWnlCA8IG1lbWJlclwtb2ZcLXN0YW5kaW5nXC1jb21taXR0ZWU7CivlkIPkuI3mtoggPCBiZVwtdW5hYmxlXC10b1wtc3RhbmRcLVwoZXhlcnRpb247CivmipXnpajnq5kgPCBwb2xsaW5nXC1zdGF0aW9uXC1cKGZvclwtYVwtdm90ZVwpOwor6ICHIDwgd3JpbmtsZWRcLWZhY2VcLW9mXC10aGVcLWVsZGVybHk7CivnvrQgPCByYW5rXC1vZG91clwtb2ZcLXNoZWVwXC1vclwtZ29hdHM7CivlvpfnpajnjocgPCBwZXJjZW50YWdlXC1vZlwtdm90ZXNcLW9idGFpbmVkOwor57WDIDwgc3RyaW5nXC1vblwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+Wci+mYsuWIqeebiiA8IFwobmF0aW9uYWxcKVwtZGVmZW5jZVwtaW50ZXJlc3RzOwor6ZaL5pS+57O757Wx5LqS6YCjIDwgb3Blblwtc3lzdGVtc1wtaW50ZXJjb25uZWN0aW9uOwor5627IDwgcGxhY2VcLW5hbWVcLWluXC1odW5hblwtcHJvdmluY2U7Civnq5ogPCBzdGFuZFwtYW5kXC13YWl0XC1mb3JcLWxvbmdcLXRpbWU7Civotbfpo5sgPCB0b1wtdGFrZVwtb2ZmXC1cKGluXC1hblwtYWlycGxhbmVcKTsKK+mWi+W5lSA8IHRvXC1vcGVuXC1cKGFcLWNvbmZlcmVuY2VcLFwtZVwuZ1wuXCk7CivmiZPph50gPCB0b1wtZ2l2ZVwtb3JcLWhhdmVcLWFuXC1pbmplY3Rpb247CivnnZkgPCB0b1wtcm9sbFwtdGhlXC1leWViYWxsc1wtdG9cLWxvb2s7CivnkYIgPCBcKHN0b25lXC13aGljaFwtcmVzZW1ibGVzXC1qYWRlXCk7CivmnKzmnKvlgJLnva4gPCB0YWtlXC10aGVcLWJyYW5jaFwtZm9yXC10aGVcLXJvb3Q7Civnh7ogPCB0aGVcLWRyeVwtYXRcLXRoZVwtZmlyZVwtdG9cLXJvYXN0Owor54CUIDwgcml2ZXJcLW5hbWVcLWluXC1oZW5hblwtcHJvdmluY2U7CivmirHpoK3nl5vlk60gPCBjcnlcLW9uXC1lYWNoXC1vdGhlcicnc1wtc2hvdWxkZXI7CivmsacgPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFuZ2Rvbmc7CivnkqforJ0gPCBkZWNsaW5lXC1cKGFcLWdpZnRcKVwtd2l0aFwtdGhhbmtzOwor5qm1IDwgd29vZFwtcGxhY2VkXC11bmRlclwtcm9vZlwtdGlsZXM7CivlsI3oj68gPCBcKHBvbGljeVwsXC1ldGNcLlwpXC10b3dhcmRzXC1jaGluYTsKK+S4jeS4gOiAjOi2syA8IGJ5XC1ub1wtbWVhbnNcLWFuXC1pc29sYXRlZFwtY2FzZTsKK+abiCA8IHR3aWxpZ2h0XC1qdXN0XC1iZWZvcmVcLXN1bnJpc2U7Civml58gPCBhblwtbWlsaXRhcnlcLWZsYWdcLW9hXC1zdGFuZGFyZDsKK+WEgOWZqCA8IFwoc2NpZW50aWZpY1wsXC1ldGNcKVwtaW5zdHJ1bWVudDsKK+WOn+WtkOenkeWtuOWutumAmuWgsSA8IGpvdXJuYWxcLW9mXC1hdG9taWNcLXNjaWVudGlzdHM7CivnqbbovqYgPCB0b1wtaW52ZXN0aWdhdGVcLWFuZFwtZGVhbFwtd2l0aDsKK+WQg+S4jeS9jyA8IGJlXC11bmFibGVcLXRvXC1iZWFyXC1vclwtc3VwcG9ydDsKK+aJqCA8IHBpY2tcLXVwXC13aXRoXC1mb3JrXC1vclwtcGluY2VyczsKK+W5sCA8IGN1cnRhaW5cLWF0XC1mcm9udFwtb2ZcLWNhcnJpYWdlOwor5aiAIDwgbmFtZVwtb2ZcLWFcLWNvbmN1YmluZVwtb2ZcLWRpXC1rdTsKK+eZvee0mem7keWtlyA8IFwod3JpdHRlblwpXC1pblwtYmxhY2tcLWFuZFwtd2hpdGU7Civln4QgPCB3aGlybGluZ1wtb2ZcLWR1c3RcLWluXC10aGVcLXdpbmQ7CivlrprnvaogPCBjb252aWN0XC1cKHNvbWVvbmVcLW9mXC1hXC1jcmltZVwpOwor5pys6aGMIDwgdGhlXC1zdWJqZWN0XC11bmRlclwtZGlzY3Vzc2lvbjsKK+iDjOewjSA8IGFcLWJhc2tldFwtY2FycmllZFwtb25cLXRoZVwtYmFjazsKK+WMl+S6rOiXneihk+WtuOmZoiA8IGJlaWppbmdcLWFjYWRlbXlcLW9mXC1maW5lXC1hcnRzOwor5LiN56KO546755KDIDwgc2hhdHRlcnByb29mXC1vclwtc2FmZXR5XC1nbGFzczsKK+aciemXnCA8IHRvXC1oYXZlXC1zb21ldGhpbmdcLXRvXC1kb1wtd2l0aDsKK+S+hua6kCA8IHNvdXJjZVwtXChvZlwtaW5mb3JtYXRpb25cLFwtZXRjXCk7CivktaAgPCBydXNoZXNcLXVzZWRcLWZvcm1cLW1ha2luZ1wtbWF0czsKK+SzjSA8IGFcLWtpbmRcLW9mXC1waGVhc2FudFwtbGlrZVwtYmlyZDsKK+eNsumHiyA8IG9idGFpblwtcmVsZWFzZVwtXChmcm9tXC1wcmlzb25cKTsKK+SxsSA8IGFcLWtpbmRcLW9mXC1zbGlwcGVyeVwtbG9uZ1wtZmlzaDsKK+SuhyA8IGJsYWNrXC1ob3JzZVwtd2l0aFwtd2hpdGVcLXRoaWdoOwor5bCN5pelIDwgXChwb2xpY3lcLFwtZXRjXC5cKVwtdG93YXJkc1wtamFwYW47CivkrKAgPCB0aGVcLWZhbGxpbmdcLW9mXC1zbm93XC1hbmRcLXJhaW47Civkqq0gPCBhXC1raW5kXC1vZlwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+SqiSA8IG1ldGFsXC1kZWNvcmF0aW9uXC1vblwtYVwtaGFsdGVyOwor5KmhIDwgYVwta2luZFwtb2ZcLWJvb3RzXC1pblwtb2xkXC10aW1lczsKK+iOq+iht+S4gOaYryA8IGNhbm5vdFwtZGVjaWRlXC13aGljaFwtaXNcLXJpZ2h0Owor5KacIDwgbmFtZVwtb2ZcLWFcLXN0YXRlXC1pblwtb2xkXC10aW1lczsKK+SluiA8IG5hbWVcLW9mXC1hXC1kb3VibGVcLWVkZ2VkXC1zd29yZDsKK+SllSA8IHRoZVwtYmxhZGVcLW9yXC1lZGdlXC1vZlwtYVwtc3BhZGU7CivkpIkgPCBlbXB0aWVkXC10aGVcLWRyaW5rXC1jb21wbGV0ZWx5Owor5KOhIDwgbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtb2xkXC10aW1lczsKK+ShkSA8IHRoZVwtcmltXC1vclwtZmVsbG9lXC1vZlwtYVwtd2hlZWw7CivkoLQgPCB3aXRoXC1hXC1zeW1tZXRyaWNcLXdlbGxcLWZvcm1lZDsKK+SdtSA8IHRvXC10aGFua1wtd2l0aFwtbW9uZXlcLW9yXC1naWZ0czsKK+SZlyA8IGFcLXN3YWRkbGluZ1wtY2xvdGhcLWZvclwtaW5mYW50Owor5Ji7IDwgY3VydGFpblwtb25cLWFcLWNhcnJpYWdlXC1vclwtY2FyOwor5Ji6IDwgYVwtc2VhbVwtd2hpY2hcLWhhc1wtY29tZVwtdW5zZXduOwor5Ji1IDwgaGlzc2luZ1wtc291bmRcLW9mXC10aGVcLWNsb3RoZXM7CivklJsgPCBmaWJyb3VzXC1wbGFudFwtb2ZcLXdoaWNoXC1jbG90aDsKK+SRuSA8IGFcLW51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXNoaXBzOwor5I2gIDwgdHVyYmFuXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkjIsgPCBhXC1oZXJjaGllZlwtaHVuZ1wtYXRcLXRoZVwtd2Fpc3Q7Civki6kgPCBwcmV0dHlcLWFuZFwtZmluZVwtc2lsa1wtZmFicmljczsKK+SLjyA8IHRoaWNrXC1hbmRcLWJpZ1wtcm9wZXNcLW9yXC1jb3JkczsKK+SLiyA8IGFcLWtpbmRcLW9mXC1zcHJpbmdcLWZpc2hpbmdcLW5ldDsKK+WFq+Wci+iBr+i7jSA8IHRoZVwtZWlnaHRcLXBvd2VyXC1hbGxpZWRcLWZvcmNlOwor5Ia2IDwgbm9pc2VcLW9mXC1hXC1tb3VzZVwtaW5cLXRoZVwtY2F2ZTsKK+SFsyA8IHN0YWxrXC1vZlwtdGhlXC1wYW5pY2xlZFwtbWlsbGV0Owor5IWtIDwgYVwtdmFyaWV0eVwtb2ZcLXBhbmljbGVkXC1taWxsZXQ7CivkhYwgPCBzdGFsa1wtb2ZcLXdoZWF0XC1vclwtcmljZVwtcGxhbnQ7Civkg4sgPCBhXC1maW5lXC1zdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+SCtSA8IHNvdW5kXC1vZlwtYnVtcGluZ1wtb3JcLXN0cmlraW5nOwor5IKrIDwgbm9pc2VcLW9mXC1zdG9uZXNcLXJvbGxpbmdcLWRvd247CivkgLMgPCBub3RcLXRvXC1sb29rXC1zdHJhaWdodFwtZm9yd2FyZDsKK+O+tCA8IHRoZVwtZXJ5dGhlbWFcLW9mXC1hY25lXC1yb3NhY2VhOwor5aSa5bm05Lul5L6GIDwgZm9yXC1tYW55XC15ZWFyc1wtXChpblwtdGhlXC1wYXN0XCk7CivjuaUgPCBhXC15ZWxsb3dcLWRvZ1wtd2l0aFwtYmxhY2tcLWhlYWQ7CivjuYEgPCBnZW5lcmFsbHlcLWNhbGxlZFwtdGhlXC1hbmltYWxzOwor47W1IDwgc3dpZnRcLWN1cnJlbnRzXC1vZlwtdGhlXC1zdHJlYW07CivjtY4gPCBhXC1tb3VudGFpblwtc3RyZWFtXC1vclwtdG9ycmVudDsKK+O0miA8IHRoZVwtc21hbGxcLWRpdGNoXC1pblwtdGhlXC1maWVsZDsKK+efpeitmOeUouasiiA8IGludGVsbGVjdHVhbFwtcHJvcGVydHlcLXJpZ2h0czsKK+aGi+awoyA8IGZlZWxcLXN1ZmZvY2F0ZWRcLW9yXC1vcHByZXNzZWQ7CivjsIYgPCBhblwtaW5zdHJ1bWVudFwtdG9cLWJsb3dcLWFcLWZpcmU7CivjsIEgPCBhXC10cmVlXC13aXRoXC1zbGFudGVkXC1icmFuY2hlczsKK+OvsyA8IGFcLWtpbmRcLW9mXC10b29sXC10b1wtYWRqdXN0XC1ib3c7CivjpZwgPCB1bnN1Y2Nlc3NmdWxcLWluXC1vbmUnJ3NcLWNhcmVlcjsKK+OhsSA8IHRvXC1jYXV0ZXJpemVcLWJ5XC1idXJuaW5nXC1tb3hhOwor46CxIDwgdG9cLXNldFwtd2l0aFwtdGhlXC1sZWdzXC1jbG9zc2VkOwor45yMIDwgYVwtZGlmZmVyZW50XC1uYW1lXC1mb3JcLWJyZWFzdHM7Civjmb4gPCBoaWxsc1wtd2l0aFwtbG90c1wtb2ZcLWJpZ1wtcm9ja3M7CivjmZsgPCBhXC1wZXJzb24nJ3NcLW5hbWVcLWluXC1vbGRcLXRpbWVzOwor45e+IDwgdG9cLWdpdmVcLXZlbnRcLXRvXC10aGVcLWZlZWxpbmdzOwor45eGIDwgc291bmRcLW9mXC10aGVcLXJpbmdlZFwtcGhlYXNhbnQ7Civjk7MgPCB1c2VcLWtuaWZlXC10b1wtc3BsaXRcLXNvbWV0aGluZzsKK+ORnyA8IGluc2luY2VyZVwtYW5kXC1jdW5uaW5nXC1wZXJzb247Civoh6rmsrvljYAgPCBhdXRvbm9tb3VzXC1yZWdpb25cLVwoaW5cLWNoaW5hXCk7CivlkIzog54gPCBmZWxsb3dcLWNpdGl6ZW5cLW9yXC1jb3VudHJ5bWFuOwor5Yy+6aGNIDwgYVwtaG9yaXpvbnRhbFwtaW5zY3JpYmVkXC1ib2FyZDsKK+W7o+aSreWSjOacquefpeacjeWLmeWZqCA8IGJyb2FkY2FzdFwtYW5kXC11bmtub3duXC1zZXJ2ZXI7CivnorroqLogPCB0b1wtbWFrZVwtYVwtZGVmaW5pdGVcLWRpYWdub3NpczsKK+W8tee0lOWmgiA8IFwoYW1lcmljYW5cLWF1dGhvclwpXC1pcmlzXC1jaGFuZzsKK+Wug+WAkSA8IHRoZXlcLVwoZm9yXC1pbmFuaW1hdGVcLW9iamVjdHNcKTsKK+ePvuWgtCA8IHNjZW5lXC1cKG9mXC1ldmVudFwtb3JcLWluY2lkZW50XCk7CivmhJvmg4UgPCBsb3ZlXC1cKGJldHdlZW5cLW1hblwtYW5kXC13b21hblwpOwor6K6K56+AIDwgbWFrZVwtYVwtcG9saXRpY2FsXC1yZWNhbnRhdGlvbjsKK+iqk+atu+S4jemZjSA8IHRvXC12b3dcLXRvXC1maWdodFwtdG9cLXRoZVwtZGVhdGg7CivmspLmnInlv4XopoEgPCB0aGVyZVwtaXNcLW5vXC1uZWVkXC10b1wtXChkb1wtc3RoXCk7Civmtonlq4wgPCB0b1wtYmVcLWFcLXN1c3BlY3RcLVwoaW5cLWFcLWNyaW1lXCk7Civnj63li5nmnIMgPCBhXC1yb3V0aW5lXC1tZWV0aW5nXC1vZlwtYVwtc3F1YWQ7CivmlrDlvrfoo6EgPCBuZXdcLWRlbGhpXC1cKGNhcGl0YWxcLW9mXC1pbmRpYVwpOwor5Y+N5bCN6buoIDwgb3Bwb3NpdGlvblwtXChwb2xpdGljYWxcKVwtcGFydHk7CivlpLHotrMgPCB0b1wtdGFrZVwtYVwtd3JvbmdcLXN0ZXBcLWluXC1saWZlOwor5Lit5paH5buj5pKtIDwgY2hpbmVzZVwtXChsYW5ndWFnZVwpXC1icm9hZGNhc3Q7Civnp7vmrpbmiYvooZMgPCBcKG9yZ2FuXClcLXRyYW5zcGxhbnRcLW9wZXJhdGlvbjsKK+eKp+eJsiA8IHNhY3JpZmljZVwtXChvbmUnJ3NcLWxpZmVcLFwtZXRjXC5cKTsKK+S6nuS8ryA8IGFiZVwtXChzaG9ydFwtZm9ybVwtZm9yXC1hYnJhaGFtXCk7CivnjJzlv4wgPCBiZVwtc3VzcGljaW91c1wtYW5kXC1qZWFsb3VzXC1vZjsKK+m7qOWFpyA8IHdpdGhpblwtdGhlXC1cKGNvbW11bmlzdFwpXC1wYXJ0eTsKK+iqquaYjuabuCA8IHN5bm9wc2lzXC1cKG9mXC1hXC1wbGF5XC1vclwtZmlsbVwpOwor5YuV6JWpIDwgXChzb2NpYWxcLW9yXC1wb2xpdGljYWxcKVwtdW5yZXN0Owor546L5Li5IDwgd2FuZ1wtZGFuXC1cKGNoaW5lc2VcLWRpc3NpZGVudFwpOwor5Y+b5LqC572qIDwgdGhlXC1jcmltZVwtb2ZcLWFybWVkXC1yZWJlbGxpb247CivmtarlrZDlm57poK0gPCB0aGVcLXJldHVyblwtb2ZcLWFcLXByb2RpZ2FsXC1zb247Civlt67lvpflpJogPCBmYWxsXC1zaG9ydFwtYnlcLWFcLWxhcmdlXC1hbW91bnQ7CivkuI3mgKXkuYvli5kgPCBhXC1tYXR0ZXJcLW9mXC1ub1wtZ3JlYXRcLXVyZ2VuY3k7Civpm7vno4HlubLmk74gPCBlbGVjdHJvbWFnbmV0aWNcLWludGVyZmVyZW5jZTsKK+WPsOeBo+ipsSA8IHRhaXdhbmVzZVwtY2hpbmVzZVwtXChsYW5ndWFnZVwpOwor5ZWmIDwgZmluYWxcLXBhcnRpY2xlXC1vZlwtYXNzZXJ0aW9uOwor57u8IDwgYXJyYW5nZVwtdGhyZWFkc1wtZm9yXC13ZWF2aW5nOwor5outIDwgd2lwZVwtYXdheVwtc3RhaW5zXC13aXRoXC1jbG90aDsKK+WPriA8IGV4aG9ydFwtb3JcLWVuam9pblwtcmVwZWF0ZWRseTsKK+aInyA8IGhhbGJlcmRcLXdpdGhcLWNyZXNjZW50XC1ibGFkZTsKK+WHmyA8IHRvXC1zaGl2ZXJcLXdpdGhcLWNvbGRcLW9yXC1mZWFyOwor5qCLIDwgbWFpblwtYmVhbXNcLXN1cHBvcnRpbmdcLWhvdXNlOwor6aumIDwgZmxvd2luZ1wtaGFpclwtb2ZcLXlvdW5nXC1jaGlsZDsKK+etnSA8IHN0cmluZ2VkXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5LiZIDwgdGhpcmRcLW9mXC10aGVcLWhlYXZlbmx5XC1zdGVtczsKK+aygiA8IHJpdmVyXC1pblwtc291dGhlYXN0XC1zaGFuZG9uZzsKK+esiCA8IGJhbWJvb1wtYm94XC11c2VkXC1jYXJyeVwtYm9va3M7Civnk6IgPCBsYWRsZVwtbWFkZVwtZnJvbVwtZHJpZWRcLWdvdXJkOwor57CnIDwgcmVlZFwtb2ZcLXdvb2R3aW5kXC1pbnN0cnVtZW50Owor6JufIDwgc2NhbHlcLWRyYWdvblwtd2l0aFwtZm91clwtbGVnczsKK+aVlSA8IGFuXC1pbXBlcmlhbFwtb3JkZXJcLW9yXC1kZWNyZWU7Civoo58gPCBhXC1jYXNzb2NrXC1vclwtcm9iZVwtb2ZcLWFcLW1vbms7CivnorQgPCBjaGlwcGVkXC1lZGdlXC1vZlwtYVwtY29udGFpbmVyOwor55i0IDwgbWFsYXJpYVwtcGVzdGlsZW50aWFsXC12YXBvcnM7CivnurYgPCBncmVlblwtc2lsa1wtdGhyZWFkXC1vclwtdGFzc2VsOwor572hIDwgdGhlXC1uYW1lXC1vZlwtYVwtY2VydGFpblwtc3RhcnM7CivnmbggPCBsYXN0XC1vZlwtdGVuXC1jZWxlc3RpYWxcLXN0ZW1zOwor5qmHIDwgYVwtc2xlZGdlXC1mb3JcLXRyYW5zcG9ydGF0aW9uOwor55qLIDwgdGhlXC1oaWdoXC1sYW5kXC1hbG9uZ1wtYVwtcml2ZXI7CivmvY0gPCBjb3VudHlcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivmtJkgPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFuZG9uZzsKK+eNoCA8IHRvXC1odW50XC1hdFwtbmlnaHRcLWJ5XC10b3JjaGVzOwor6bqSIDwgbGVnZW5kYXJ5XC1hdXNwaWNpb3VzXC1hbmltYWw7Civnj6kgPCB0aGVcLXRvcFwtZ2VtXC1vZlwtdGhlXC1wZW5kYW50czsKK+iwpSA8IHRvXC1jb25mZXJcLXBvc3RodW1vdXNcLXRpdGxlczsKK+enqyA8IGdsdXRpbm91c1wtdmFyaWV0eVwtb2ZcLW1pbGxldDsKK+ervSA8IGFuY2llbnRcLXdvb2R3aW5kXC1pbnN0cnVtZW50Owor5bSuIDwgXChlbGVtZW50XC1pblwtbW91bnRhaW5cLW5hbWVzXCk7CivmhIAgPCB0b1wtY2hhbmdlXC1vbmUnJ3NcLWNvdW50ZW5hbmNlOwor6YSiIDwgbmFtZVwtb2ZcLWFcLWRpc3RyaWN0XC1pblwtaG9uYW47CivnmY0gPCB1bmhlYWx0aHlcLW1hcmtzXC1vblwtdGhlXC1za2luOwor6YSeIDwgY291bnR5XC1pblwtemhlamlhbmdcLXByb3ZpbmNlOwor6ZuSIDwgYmxhY2tcLWhvcnNlXC13aXRoXC13aGl0ZVwtbWFuZTsKK+aXkiA8IGZyaW5nZXNcLW9mXC1wZWFybHNcLW9uXC1jcm93bnM7CivnkIogPCBhXC1wbGFjZVwtaW5cLWVhc3Rlcm5cLXNoYW5kb25nOwor6JqoIDwgYVwta2luZFwtb2ZcLXdhdGVyXC1iZWV0bGVcLWNhc2g7Civmr7MgPCBmaW5lXC1oYWlyXC1vclwtZnVyXC1vblwtYW5pbWFsczsKK+eYpSA8IHRvXC1yZWNvdmVyXC1mcm9tXC1hbnlcLWRpc2Vhc2U7CivmtYggPCByaXZlclwtaW5cLWd1YW5nZG9uZ1wtcHJvdmluY2U7CivlmKcgPCBcKHBob25ldGljXClcLWFzXC1pblwtcHlyaW1pZGluZTsKK+S4jeaYk+S5i+irliA8IHBlcmZlY3RseVwtc291bmRcLXByb3Bvc2l0aW9uOwor5Ly85LmO5b6I5a6J5YWoIDwgdG9cLWFwcGVhclwtXCh0b1wtYmVcKVwtdmVyeVwtc2FmZTsKK+axuuWumiA8IHRvXC1kZWNpZGVcLVwodG9cLWRvXC1zb21ldGhpbmdcKTsKK+WniuWmuSA8IFwob2xkZXJcLWFuZFwteW91bmdlclwpXC1zaXN0ZXJzOwor6YC86IKWIDwgYmVhclwtYVwtY2xvc2VcLXJlc2VtYmxhbmNlXC10bzsKK+iRieWIqeasvSA8IFwocnVzc2lhblwtcHJlc2lkZW50XClcLXllbHRzaW47Civlvqnlr6kgPCByZWV4YW1pbmVcLVwoYVwtanVkaWNpYWxcLWNhc2VcKTsKK+WFpemWgCA8IGludHJvZHVjdGlvblwtXCh0b1wtYVwtc3ViamVjdFwpOwor55m96ZyyIDwgd2hpdGVcLWRld1wtXCgxNXRoXC1zb2xhclwtdGVybVwpOwor5ZCE56iu5ZCE5qijIDwgdmFyaW91c1wtc29ydHNcLWFuZFwtdmFyaWV0aWVzOwor6KOc6auUIDwgY29tcGxlbWVudFwtXChpblwtYmxvb2RcLXNlcnVtXCk7CivoqZXmr5QgPCB0b1wtZXZhbHVhdGVcLVwoYnlcLWNvbXBhcmlzb25cKTsKK+S4jemBlei+suaZgiA8IG5vdFwtbWlzc1wtdGhlXC1mYXJtaW5nXC1zZWFzb247Civpu4PmtabmsZ8gPCBodWFuZ3B1XC1yaXZlclwtXChpblwtc2hhbmdoYWlcKTsKK+i9iei6qyA8IFwob2ZcLWFcLXBlcnNvblwpXC10b1wtdHVyblwtcm91bmQ7CivniKrlk4cgPCBqYXZhXC1cKHByb2dyYW1taW5nXC1sYW5ndWFnZVwpOwor5pWI5b+gIDwgdm93XC1sb3lhbHR5XC1hbmRcLWRldm90aW9uXC10bzsKK+S6guS9nOaxuuWumiA8IHRvXC1tYWtlXC1hcmJpdHJhcnlcLWRlY2lzaW9uczsKK+aOoei+piA8IGJ1eVwtb25cLWFcLWNvbnNpZGVyYWJsZVwtc2NhbGU7CivlvJ/lprkgPCBzaXN0ZXJcLWluXC1sYXdcLVwod2lmZScnc1wtc2lkZVwpOwor6Zm35pa8IDwgY2F1Z2h0XC1pblwtXChhXC1iYWRcLXNpdHVhdGlvblwpOwor6bW+IDwgYVwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC1jcmFuZTsKK+WkluWMryA8IGZvcmVpZ25cLVwoY3VycmVuY3lcKVwtZXhjaGFuZ2U7CivlpKflmajmmZrmiJAgPCBncmFuZFwtdGFsZW50c1wtbWF0dXJlXC1zbG93bHk7CivmkZjnlLEgPCBoaWdoXC1wb2ludHNcLVwob2ZcLWFcLWRvY3VtZW50XCk7CivprqggPCBlcGluZXBoZWx1c1wtc2VwdGVtZmFzY2lhdHVzOwor6aOmIDwgd2VsbFwtYm9pbGVkXC1jb25nZWVcLW9yXC1ncnVlbDsKK+mbiiA8IHRoZVwtY3Jvd1wtb2ZcLWFcLW1hbGVcLXBoZWFzYW50Owor6Zq6IDwgYVwtYmlyZFwtZmx5aW5nXC1oaWdoXC1hbWJpdGlvbjsKK+iDjOWMheiisSA8IGhhdmVcLWFcLXdlaWdodFwtb25cLW9uZScnc1wtbWluZDsKK+aMieatpeWwseePrSA8IGZvbGxvd1wtdGhlXC1wcmVzY3JpYmVkXC1vcmRlcjsKK+WkluS6pOmDqOmVtyA8IG1pbmlzdGVyXC1vZlwtZm9yZWlnblwtYWZmYWlyczsKK+mGsSA8IHRvXC1icmV3XC1mb3JcLXRoZVwtc2Vjb25kXC10aW1lOwor6YWWIDwgd2luZVwtd2l0aFwtYmlyZFwtcG9pc29uXC1hZGRlZDsKK+eZvuWwuuadhumgreabtOeboeS4gOatpSA8IG1ha2VcLXN0aWxsXC1mdXJ0aGVyXC1wcm9ncmVzczsKK+mEvyA8IGNvdW50eVwtaW5cLXhpbmppYW5nXC1wcm92aW5jZTsKK+mEjSA8IGFcLXRvd25cLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivouZogPCB0cmVhZFwtdGhyb3VnaFwtbXVkXC1hbmRcLXdhdGVyOwor5Lit5aSu5oOF5aCx5bGAIDwgY2VudHJhbFwtaW50ZWxsaWdlbmNlXC1hZ2VuY3k7CivlgbTourogPCB0b1wtbGllXC1kb3duXC1cKG9uXC1vbmUnJ3NcLXNpZGVcKTsKK+WgseaItuWPoyA8IGFwcGx5XC1mb3JcLWFcLXJlc2lkZW50XC1wZXJtaXQ7CivopJggPCBjZXJlbW9uaWFsXC1nb3duc1wtb2ZcLWFcLXF1ZWVuOwor6J+wIDwgc21hbGxcLXNwaWRlclwtd2l0aFwtbG9uZ1wtbGVnczsKK+iblSA8IHRoZVwtY29tbW9uXC1pbnRlc3RpbmFsXC13b3JtczsKK+acjeWLmeaPkOS+m+WVhiA8IFwoaW50ZXJuZXRcKVwtc2VydmljZVwtcHJvdmlkZXI7CivmkJzmjZUgPCBodW50XC1hbmRcLWFycmVzdFwtXChmdWdpdGl2ZXNcKTsKK+aPueabuCA8IHJlY2l0ZVwtYVwtbGVzc29uXC1mcm9tXC1tZW1vcnk7CivlubjlhY0gPCBuYXJyb3dseVwtYW5kXC1sdWNraWx5XC1lc2NhcGU7CivkuI3nmbvlpKfpm4XkuYvloIIgPCBub3RcLWFwcGVhbFwtdG9cLXJlZmluZWRcLXRhc3RlOwor6IK3IDwgYXJlYVwtYmV0d2Vlblwtd2Fpc3RcLWFuZFwtaGlwczsKK+iIieS4luefmuebriA8IGF0dHJhY3RcLXdvcmxkd2lkZVwtYXR0ZW50aW9uOwor542o5pa35bCI6KGMIDwgYWN0XC1pblwtYW5cLWFyYml0cmFyeVwtZmFzaGlvbjsKK+exhCA8IGFcLWJhc2tldFwtZm9yXC1jYXJyeWluZ1wtZWFydGg7CivlnIvpmpvntJogPCBcKGF0XC1hblwpXC1pbnRlcm5hdGlvbmFsXC1sZXZlbDsKK+etjiA8IHRoaW5cLW91dHNpZGVcLXNraW5cLW9mXC1iYW1ib287CivnnqQgPCB0b1wtYmxpbmtcLW9yXC10d2l0Y2hcLXRoZVwtZXllczsKK+euoeeQhuS/oeaBr+W6qyA8IG1hbmFnZW1lbnRcLWluZm9ybWF0aW9uXC1iYXNlOwor6I+v55ub6aCT6YO15aCxIDwgd2FzaGluZ3RvblwtcG9zdFwtXChuZXdzcGFwZXJcKTsKK+Wci+aomSA8IGd1b2JpYW9cLVwoZW5jb2RpbmdcLXN0YW5kYXJkXCk7Civkvr/ooYAgPCBoYXZpbmdcLWJsb29kXC1pblwtb25lJydzXC1zdG9vbDsKK+a3oCA8IGx1eHVyaWFudFwtXChvZlwtd2F0ZXJcLXBsYW50c1wpOwor5rWwIDwgYXR0ZW5kXC1cKG9mZmljaWFsXC1mdW5jdGlvbnNcKTsKK+eXheapnyA8IGludGVycHJldGF0aW9uXC1vZlwtdGhlXC1jYXVzZTsKK+azkSA8IHRoZVwtdml0cmVvdXNcLWdsYXplXC1vblwtY2hpbmE7CivmrqggPCB0b1wtb3BlblwtYXNcLWFuXC11bGNlclwtb3JcLXNvcmU7CivmiY3oj68gPCBsaXRlcmFyeVwtb3JcLWFydGlzdGljXC10YWxlbnQ7CivmjIfms5UgPCBmaW5nZXJcLW1ldGhvZFwtXChpblwtcGFpbnRpbmdcKTsKK+WvtuiXjyA8IHByZWNpb3VzXC1cKG1pbmVyYWxcKVwtZGVwb3NpdHM7Civmj5DliY0gPCB0b1wtc2hpZnRcLXRvXC1hblwtZWFybGllclwtZGF0ZTsKK+i8qeWHuiA8IGNvbWVcLWZvcnRoXC1pblwtbGFyZ2VcLW51bWJlcnM7Civmno8gPCBhXC12YXJpZXR5XC1vZlwtZXZlcmdyZWVuXC10cmVlOwor5p2/6bSoIDwgcHJlc3NlZFwtXChkcmllZFwpXC1zYWx0ZWRcLWR1Y2s7Civmi5TmtbcgPCBlbGV2YXRpb25cLVwoYWJvdmVcLXNlYVwtbGV2ZWxcKTsKK+mhmOaEj+S4jemhmOaEjyA8IHdoZXRoZXJcLW9uZVwtd2FudHNcLXRvXC1vclwtbm90Owor5ZCD5LiN5L6GIDwgbm90XC1iZVwtZm9uZFwtb2ZcLWNlcnRhaW5cLWZvb2Q7CivmkIcgPCB0b1wtcHJlc3NcLWRvd25cLXdpdGhcLXRoZVwtaGFuZDsKK+aTmuWgseWwjiA8IGFjY29yZGluZ1wtdG9cLVwobmV3c1wpXC1yZXBvcnRzOwor6LaF5paH5Lu25YKz6Ly45Y2U5a6aIDwgaHlwZXJ0ZXh0XC10cmFuc2ZlclwtcHJvdG9jb2w7CivlvLggPCBhXC1ib3dcLXN0cmV0Y2hlZFwtdG9cLXRoZVwtZnVsbDsKK+W3oCA8IHN0cmVhbXNcLXJ1bm5pbmdcLXVuZGVyZ3JvdW5kOwor5bSZIDwga3VubHVuXC1tb3VudGFpbnNcLWluXC1qaWFuZ3N1Owor5YCr5pWmIDwgbG9uZG9uXC1cKGNhcGl0YWxcLW9mXC1lbmdsYW5kXCk7CivloLMgPCBsYW5kXC1hbGxvdG1lbnRcLWZldWRhbFwtbm9ibGU7CivljJfkuqzoqp7oqIDlrbjpmaIgPCBiZWlqaW5nXC1sYW5ndWFnZXNcLWluc3RpdHV0ZTsKK+WZlSA8IHRvXC1zcGVha1wtZmFsc2VseVwtb3JcLXdyb25nbHk7Civmop3mrL4gPCBjbGF1c2VcLVwob2ZcLWNvbnRyYWN0XC1vclwtbGF3XCk7Civnl4XkvosgPCBcW21lZGljYWxcXVwtY2FzZVwtXFtvZlwtaWxsbmVzc1xdOwor5Zmo5a6YIDwgb3JnYW5cLVwocGFydFwtb2ZcLWJvZHlcLXRpc3N1ZVwpOwor5LipIDwgdG9cLWpvaW5cLW9yXC1jb25uZWN0XC10aGVcLXZpbmU7CivkuJIgPCB0aGVcLXBlcmlvZFwtZnJvbVwtMVwtdG9cLTNcLWFcLm1cLjsKK+S1hSA8IHRvXC1leHRyYWN0XC1ieVwtYXBwbHlpbmdcLWhlYXQ7CivktLMgPCBkaXN0aWxsZXInJ3NcLWdyYWluc1wtb3JcLXllYXN0Owor5LOeIDwgYmlyZHNcLWZseWluZ1wtYWxsXC1kaXJlY3Rpb25zOwor5LOKIDwgYVwtd2lsZFwtZHVja1wtbGlrZVwtd2F0ZXJcLWJpcmQ7Civks4MgPCBhXC1raW5kXC1vZlwtcGhvZW5peFwtbGlrZVwtYmlyZDsKK+SqtyA8IHRvXC10b2lsXC1vclwtbGFib3JcLXNlZHVsb3VzbHk7CivkqocgPCBjdXNoaW9uZWRcLXNlYXRcLW9uXC1hXC12ZWhpY2xlOwor5Km/IDwgYVwtYmlnXC1kcnVtXC11c2VkXC1pblwtdGhlXC1hcm15Owor5KeYIDwgYVwtbG93XC13YWxsXC1vblwtdGhlXC1yb2FkXC1zaWRlOwor5KayIDwgZWF2ZXNcLW9mXC1hXC1hbmNlc3RyYWxcLXRlbXBsZTsKK+SkuyA8IGhlYXZ5XC1pcm9uXC1wYXJ0XC1vZlwtYVwtcGxvdWdoOwor5KOyIDwgdG9cLWhlYXRcLXRoZVwtd2luZVwtb3ZlclwtbmlnaHQ7Civkoq8gPCB0b1wtY2hvb3NlXC1vclwtc2VsZWN0XC1jYXJlZnVsOwor5KCLIDwgYmVsbFwtc2hhcGVkXC13aXRoXC1sYXJnZVwtYmFzZTsKK+SfriA8IHRvXC1jcmF3bFwtb25cLWhhbmRzXC1hbmRcLWtuZWVzOwor5Jy4IDwgc21hbGxcLXBpZWNlc1wtb2ZcLWJlYW5cLXN0YWxrczsKK+SchyA8IHRvXC1zcGVha1wtbm90XC1pblwtYVwtY2xlYXJcLXdheTsKK+ePree0miA8IGNsYXNzZXNcLW9yXC1ncmFkZXNcLWluXC1zY2hvb2w7CivkmqMgPCBjcm9va2VkXC1ob3Juc1wtb2ZcLXRoZVwtYW5pbWFsOwor5JqcIDwgY2F0dGxlXC13aXRoXC1jcm9zc3dpc2VcLWhvcm5zOwor5JmjIDwgcmFnZ2VkXC1nYXJtZW50c1wtb3JcLWNsb3RoaW5nOwor5JmVIDwgY2xvdGhlc1wtdGhhdFwtaGF2ZVwtbm9cLWxpbmluZzsKK+SZlCA8IGNsb3RoZXNcLW1hZGVcLW9mXC1wb29yXC1mYWJyaWM7CivkmZMgPCB0aGVcLWxvd2VyXC1wYXJ0XC1vZlwtYVwtZ2FybWVudDsKK+SYpSA8IHRoZVwtZnJvbnRcLW9mXC1hXC1jaGluZXNlXC1nb3duOwor5JiBIDwgYVwtYmx1ZVwtZ3JlZW5cLWNvbG9yZWRcLWNpY2FkYTsKK+SXtSA8IGFcLWRpc2Vhc2VcLWF0dGFja2VkXC1zaWxrd29ybTsKK+SVriA8IGZsb3dlclwtb2ZcLXRoZVwtY2hyeXNhbnRoZW11bTsKK+SUpSA8IGNvbW1vblwtdmFyaWV0eVwtb2ZcLWFydGVtaXNpYTsKK+SUnyA8IHNoYWtlXC1hbmRcLXdhdmVcLW9mXC10aGVcLWdyYXNzOwor55eF5q+S5a24IDwgdmlyb2xvZ3lcLVwoc3R1ZHlcLW9mXC12aXJ1c2VzXCk7CivkkLwgPCB0aGluXC1tZW1icmFuZVwtb2ZcLXRoZVwtdGhyb2F0Owor5JCvIDwgdWdseVwtYXBwZWFyYW5jZVwtb2ZcLWFcLXBlcnNvbjsKK+SQkSA8IHRoaW5cLWN1dFwtb2ZcLXRoZVwtc2xpY2VkXC1tZWF0Owor5I26IDwgYVwtbGVnZW5kYXJ5XC1nb2F0XC1saWtlXC1iZWFzdDsKK+SMvCA8IGFcLWtpbmRcLW9mXC1maW5lXC1zaWxrXC1mYWJyaWNzOwor5IyEIDwgYVwtcm9wZVwtZm9yXC1kcmF3aW5nXC11cFwtd2F0ZXI7Civnp4HkurrpkbDljJkgPCBwcml2YXRlXC1rZXlcLVwoaW5cLWVuY3J5cHRpb25cKTsKK+SKniA8IHRvXC1yb2xsXC1yb3VuZFwtd2l0aFwtdGhlXC1oYW5kOwor5Im6IDwgZGV0ZXJpb3JhdGVkXC1hbmRcLWJlY29tZVwtcmVkOwor5Im5IDwgbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkibggPCBzbGlwc1wtb2ZcLWJhbWJvb1wtZm9yXC13cml0aW5nOwor5IiyIDwgYVwtYmFtYm9vXC1iYXNrZXRcLWZvclwtZmlzaGluZzsKK+SHuiA8IGJlYW5zXC1hbmRcLXBlYXNcLWNvbGxlY3RpdmVseTsKK+SHtSA8IG9uZVwtb2ZcLXRoZVwtd2luZFwtaW5zdHJ1bWVudHM7CivmhrLms5UgPCBjb25zdGl0dXRpb25cLVwob2ZcLWFcLWNvdW50cnlcKTsKK+SFqiA8IGRpc2Vhc2VcLW9mXC10aGVcLXByaXZhdGVcLXBhcnQ7CivkhLAgPCBmb3J0eVwtYnVuZGxlc1wtb2ZcLXJpY2VcLXBsYW50Owor5IOHIDwgaW5rXC1mb3JcLWltcHJpbnRpbmdcLW9mXC1zZWFsczsKK+SAkSA8IHRvXC1nb3VnZVwtb3V0XC1hblwtZXllXC1vclwtZXllczsKK+O9jiA8IHRoZVwtcHJvZnVuZGl0eVwtb2ZcLXRoZVwtaGFyZW07CivjvKAgPCBhXC1jcm9ja1wtd2l0aFwtbmFycm93XC1vcGVuaW5nOwor47qsIDwgYVwtbGFyZ2VcLXBpZWNlXC1vZlwtamFkZVwtc3RvbmU7CivjupIgPCBiYXJraW5nXC1vZlwtYVwtZnJpZ2h0ZW5lZFwtZG9nOwor5LiN6KuxIDwgd2l0aG91dFwtY29uY2VhbGluZ1wtYW55dGhpbmc7CivjuZYgPCB0b1wtZmVlZFwtYW5pbWFsc1wtd2l0aFwtZ3JhaW5zOwor47iSIDwgdG9cLWFic3VyZFwtcHVyc3VpdFwtb3JcLWRlc2lyZTsKK+WcsOWdgOino+aekOWNlOitsCA8IGFkZHJlc3NcLXJlc29sdXRpb25cLXByb3RvY29sOwor466AIDwgdG9vbFwtdG9cLWNsZWFyXC1vdXRcLXRoZVwtd2F0ZXI7CivjrZUgPCBhXC1ib2FyZFwtZm9yXC1jYXJyeWluZ1wtdGhpbmdzOwor46mGIDwgdG9cLWJlXC1pblwtZnVsbFwtcG9zc2Vzc2lvblwtb2Y7CivogIzkuI3pnIAgPCB3aXRob3V0XC1uZWVkaW5nXC1cKHRvXC1zb1wtc3RoXCk7Civjp5UgPCB0b1wtZmVlbFwtb3JcLXRvdWNoXC13aXRoXC1oYW5kczsKK+OngiA8IGFcLWNhdmVcLWFcLWhvbGRcLWluXC10aGVcLWdyb3VuZDsKK+OmkCA8IGFcLXN0cmFpZ2h0Zm9yd2FyZFwtY2hhcmFjdGVyOwor5a6J5o+SIDwgcGxhY2VcLWluXC1hXC1jZXJ0YWluXC1wb3NpdGlvbjsKK+OltCA8IGRvXC1ub3RcLWNhcmVcLWFib3V0XC1zb21ldGhpbmc7CivkuqTmj5vmqZ8gPCBzd2l0Y2hcLVwodGVsZWNvbW11bmljYXRpb25zXCk7CivvpJogPCB3aGl0ZVwtaG9yc2VcLXdpdGhcLWJsYWNrXC1tYW5lOwor46G1IDwgcm9vZlwtb2ZcLXRoZVwtaG91c2VcLWNvbm5lY3RlZDsKK+OgnyA8IGFcLW1vdW50YWluXC1pblwtYW5jaWVudFwtdGltZXM7Civlj6TouZ8gPCBwbGFjZXNcLW9mXC1oaXN0b3JpY1wtaW50ZXJlc3Q7Civjm70gPCB0b1wtd2Fsa1wtc2xvd2x5XC1saWtlXC1hXC13b21hbjsKK+ObriA8IHdpZmVcLW9mXC1vbmUnJ3NcLWVsZGVyXC1icm90aGVyOwor45OIIDwgc291bmRcLW9mXC1mbHlpbmdcLW9yXC1zcGVlZGluZzsKK+OSqyA8IGNob2tlZFwtYW5kXC11bmFibGVcLXRvXC1icmVhdGg7CivjkpYgPCB0aGVcLXJvb3RcLXN0b2NrXC1vZlwtdGhlXC1sb3R1czsKK+awo+mrlCA8IGdhc1wtXChpZVwsXC1nYXNlb3VzXC1zdWJzdGFuY2VcKTsKK+Wkp+mZuOipsSA8IG1haW5sYW5kXC1jaGluZXNlXC1cKGxhbmd1YWdlXCk7CivlravlrZAgPCBncmFuZHNvblwtXChzb25cLW9mXC1vbmUnJ3NcLXNvblwpOwor5aWU6aiwIDwgXChvZlwtd2F2ZXNcKVwtdG9cLXN1cmdlXC1mb3J3YXJkOwor5Y275LmL5LiN5oGtIDwgdG9cLXJlZnVzZVwtd291bGRcLWJlXC1pbXBvbGl0ZTsKK+S6pOaPm+WZqCA8IFwodGVsZWNvbVwtb3JcLW5ldHdvcmtcKVwtc3dpdGNoOwor6YCa6KiK56S+IDwgYVwtbmV3c1wtc2VydmljZVwtXChlZ1wsXC14aW5odWFcKTsKK+mDtembuyA8IHBvc3RcLWFuZFwtdGVsZWNvbW11bmljYXRpb25zOwor5ZWP5YCZIDwgZ2l2ZVwtc29tZW9uZVwtb25lJydzXC1yZXNwZWN0czsKK+ellueItiA8IGdyYW5kZmF0aGVyXC1cKGZhdGhlcicnc1wtc2lkZVwpOwor5oSb5aW96ICFIDwgbG92ZXJcLVwob2ZcLWFydFwsXC1zcG9ydHNcLFwtZXRjXCk7CivmsbrnrZYgPCBcKG1ha2VcLWFcKVwtc3RyYXRlZ2ljXC1kZWNpc2lvbjsKK+elluavjSA8IGdyYW5kbW90aGVyXC1cKGZhdGhlcicnc1wtc2lkZVwpOwor5ZyL6Zqb6LKo5bmj5Z+66YeR57WE57mUIDwgaW50ZXJuYXRpb25hbFwtbW9uZXRhcnlcLWZ1bmQ7CivppqzlpKrnpo/pn7MgPCBnb3NwZWxcLWFjY29yZGluZ1wtdG9cLW1hdHRoZXc7Civph53ngbggPCBhY3VwdW5jdHVyZVwtYW5kXC1tb3hpYnVzdGlvbjsKK+mbu+ipseacg+itsCA8IFwodGVsZXBob25lXClcLWNvbmZlcmVuY2VcLWNhbGw7CivkuIDml6YgPCBpblwtY2FzZVwtXChzb21ldGhpbmdcLWhhcHBlbnNcKTsKK+Wjvei+sCA8IGJpcnRoZGF5XC1cKG9mXC1hblwtb2xkXC1wZXJzb25cKTsKK+S4jeiQveeqoOiHvCA8IG5vdFwtZm9sbG93XC10aGVcLWJlYXRlblwtdHJhY2s7CivmjInnhafoqIjlioMgPCBhY2NvcmRpbmdcLXRvXC1cKHRoZVwpXC1wbGFuXC1cLlwuXC47Civlhazlronpg6ggPCBtaW5pc3RyeVwtb2ZcLXB1YmxpY1wtc2VjdXJpdHk7CivmirHkuI3lubMgPCBiZVwtb3V0cmFnZWRcLWJ5XC1hblwtaW5qdXN0aWNlOwor5LqL5oOF6KaB5YGaIDwgdGhpbmdcLXRoYXRcLW5lZWRzXC10b1wtYmVcLWRvbmU7CivlvqnnlKYgPCByZWNvdmVyeVwtXChoZWFsdGhcLFwtZWNvbm9taWNcKTsKK+aZguacnyA8IGFcLXBlcmlvZFwtaW5cLXRpbWVcLW9yXC1oaXN0b3J5Owor5ZCE5ZywIDwgaW5cLWFsbFwtcGFydHNcLW9mXC1cKGFcLWNvdW50cnlcKTsKK+eUt+WtkOa8oiA8IG1hblwtXChpXC5lXC5cLW1hbmx5XCxcLW1hc2N1bGluZVwpOwor55WmIDwgc2VjdGlvbnNcLWluXC12ZWdldGFibGVcLWZhcm07CivnlLogPCByYWlzZWRcLXBhdGhcLWJldHdlZW5cLWZpZWxkczsKK+WbgSA8IG1vdmVcLWxpcHNcLWFzXC13aGVuXC1zcGVha2luZzsKK+S8piA8IG5vcm1hbFwtaHVtYW5cLXJlbGF0aW9uc2hpcHM7CivlmJsgPCBmaW5hbFwtZXhjbGFtYXRvcnlcLXBhcnRpY2xlOwor6JCoIDwgYnVkZGhpc3RcLWdvZHNcLW9yXC1pbW1vcnRhbHM7CivmoZAgPCBuYW1lXC1hcHBsaWVkXC12YXJpb3VzXC10cmVlczsKK+iSgiA8IHBlZHVuY2xlXC1vclwtc3RlbVwtb2ZcLXBsYW50czsKK+e0uiA8IGRhcmtcLWJsdWVcLW9yXC1yZWRkaXNoXC1jb2xvcjsKK+ajtSA8IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXRyZWVzOwor5oaLIDwgdG9cLXN1cHByZXNzXC1pbm5lclwtZmVlbGluZ3M7CivlrZwgPCBiZVwtYXNcLWRpbGlnZW50XC1hc1wtcG9zc2libGU7CivnsrEgPCBiZXR0ZXJcLXZhcmlldGllc1wtb2ZcLW1pbGxldDsKK+WzkiA8IG1vdW50YWluXC1pblwtZ2Fuc3VcLXByb3ZpbmNlOwor5qaoIDwgdG9cLXByZXNzXC1vclwtZXh0cmFjdFwtanVpY2VzOwor6YSxIDwgY291bnR5XC1hbmRcLWxha2VcLWluXC1qaWFuZ3hpOwor6I+gIDwgc3BpbmFjaFwtYW5kXC1zaW1pbGFyXC1ncmVlbnM7Civmt54gPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1qaWFuZ3N1Owor5reEIDwgcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivmgrEgPCB0b1wtYmVcLWRlc2lyb3VzXC1vZlwtc3BlYWtpbmc7CivmvK8gPCByaXZlclwtaW5cLW5vcnRoZXJuXC1zaGFuZG9uZzsKK+iVmSA8IHNwZWNpZXNcLW9mXC1mcmFncmFudFwtb3JjaGlkOwor5ruBIDwgZGlzdHJpY3RcLWluXC1hbmh1aVwtcHJvdmluY2U7Civni4EgPCBhXC10cmliZVwtb2ZcLXNjeXRoaWFuXC1ub21hZHM7CivphaIgPCB0b2FzdFwtb25lJydzXC1ob3N0XC13aXRoXC13aW5lOwor6KG/IDwgY29sbGFyXC1vclwtbGFwZWxcLW9mXC1nYXJtZW50Owor5badIDwgcGF0aFwtbGVhZGluZ1wtdXBcLWFcLW1vdW50YWluOwor5peDIDwgc2lsa1wtYmFubmVyXC13aXRoXC1iZW50XC1wb2xlOwor6b2RIDwgYnJlYWtcLW9yXC1zbWFzaFwtaW50b1wtcGllY2VzOwor6ISYIDwgaW50ZXJuYWxcLWNhdml0eVwtb2ZcLXN0b21hY2g7CivplZIgPCBtZWFzdXJlXC1vZlwtd2VpZ2h0XC1mb3JcLWdvbGQ7CivnnK0gPCBldmlsXC1sb29rXC1vZlwtZGVlcFwtc2V0XC1leWVzOwor6ZSWIDwgdGhlXC1jb2xvclwtb2ZcLXRoZVwtYVwtbWluZXJhbDsKK+mCmSA8IG1vdW50YWluXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor5pWrIDwgYW5jaWVudFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+iQkSA8IGdyYXNzXC11c2VkXC1mb3JcLW1ha2luZ1wtbWF0czsKK+inryA8IHdpbmVcLWdvYmxldFwtbWFkZVwtZnJvbVwtaG9ybjsKK+iIoyA8IHRvXC1tb29yXC1hXC1ib2F0XC10b1wtdGhlXC1iYW5rOwor56KR5paHIDwgYW5cLWluc2NyaXB0aW9uXC1vblwtYVwtdGFibGV0Owor5be05YWS54uXIDwgcGVraW5nZXNlXC1cKGFcLWJyZWVkXC1vZlwtZG9nXCk7CivkuIDot6/lubPlrokgPCB0b1wtaGF2ZVwtYVwtcGxlYXNhbnRcLWpvdXJuZXk7CivntJDntITmmYLloLEgPCBuZXdcLXlvcmtcLXRpbWVzXC1cKG5ld3NwYXBlclwpOwor5Y+w5YyXIDwgdGFpcGVpXC1cKGNhcGl0YWxcLW9mXC10YWl3YW5cKTsKK+W4uOWVj+WVj+mhjCA8IGZyZXF1ZW50bHlcLWFza2VkXC1xdWVzdGlvbnM7Civnmb7lrZTljYPnmKEgPCByaWRkbGVkXC13aXRoXC1nYXBpbmdcLXdvdW5kczsKK+WFtemAo+emjee1kCA8IHJhdmFnZWRcLWJ5XC1zdWNjZXNzaXZlXC13YXJzOwor5rKz5YWnIDwgaGFub2lcLVwoY2FwaXRhbFwtb2ZcLXZpZXRuYW1cKTsKK+mHj+WKmyA8IHRvXC1lc3RpbWF0ZVwtb25lJydzXC1zdHJlbmd0aDsKK+acrOWcsOeuoeeQhueVjOmdoiA8IGxvY2FsXC1tYW5hZ2VtZW50XC1pbnRlcmZhY2U7CivplbfmnJ/ku6XkvoYgPCBldmVyXC1zaW5jZVwtYVwtbG9uZ1wtdGltZVwtYWdvOwor5a2Y6LuK6JmVIDwgcGFya2luZ1wtbG90XC1cKGZvclwtYmljeWNsZXNcKTsKK+aWoeaXiyA8IG1lZGlhdGVcLVwoYVwtY29uZmxpY3RcLFwtZXRjXC5cKTsKK+eZvOWxleaguOatpuWZqCA8IHRvXC1kZXZlbG9wXC1udWNsZWFyXC13ZWFwb25zOwor5a6J5a626JC95oi2IDwgbWFrZVwtb25lJydzXC1ob21lXC1pblwtYVwtcGxhY2U7CivlhaXmnKjkuInliIYgPCB3cml0dGVuXC1pblwtYVwtZm9yY2VmdWxcLWhhbmQ7CivniYzljL4gPCBib2FyZFwtXChhdHRhY2hlZFwtdG9cLWFcLXdhbGxcKTsKK+WLleaJiyA8IHRvXC1oaXRcLXdpdGhcLWhhbmRzXC1vclwtZmlzdHM7CivpvLvniZvlhZIgPCBoYXJkZW5lZFwtbXVjdXNcLWluXC1ub3N0cmlsczsKK+atpeaciCA8IHRvXC1zdHJvbGxcLWJlbmVhdGhcLXRoZVwtbW9vbjsKK+eVsOatpeWCs+i8uOaooeW8jyA8IGFzeW5jaHJvbm91c1wtdHJhbnNmZXJcLW1vZGU7CivoqpPluKsgPCB0b1wtdm93XC1iZWZvcmVcLW9uZScnc1wtdHJvb3BzOwor6YOo5aeUIDwgbWluaXN0cmllc1wtYW5kXC1jb21taXNzaW9uczsKK+mbo+aAqiA8IFwoaXQnJ3NcKVwtbm9cLXdvbmRlclwtXCh0aGF0XC5cLlwuXCk7Civlh43ntZAgPCBcKGxvYW5cLFwtd2FnZVwsXC1wcmljZVwpXC1mcmVlemU7Civmlr3liqAgPCBleGVydFwtXChlZmZvcnRcLW9yXC1wcmVzc3VyZVwpOwor6KaW56qXIDwgd2luZG93c1wtXChvcGVyYXRpbmdcLXN5c3RlbVwpOwor5beo6JGXIDwgbW9udW1lbnRhbFwtXChsaXRlcmFyeVwpXC13b3JrOwor5YiG5pmC5aSa5belIDwgdGltZVwtZGl2aXNpb25cLW11bHRpcGxleGluZzsKK+WLn+WMliA8IHRvXC1jb2xsZWN0XC1hbG1zXC1cKGJ1ZGRoaXNtXCk7CivmoLnmt7HokoLlm7ogPCBkZWVwXC1yb290ZWRcLVwocHJvYmxlbVwsXC1ldGNcKTsKK+WPm+iuiueahOecgeS7vSA8IHJlbmVnYWRlXC1wcm92aW5jZVwtXCh0YWl3YW5cKTsKK+mDqOS4iyA8IHRyb29wc1wtdW5kZXJcLW9uZScnc1wtY29tbWFuZDsKK+mmtSA8IGhvcnNlXC13aXRoXC13aGl0ZVwtYmFja1wtbGVnczsKK+mjoyA8IGRpc3BsYXlcLWZvb2RcLWZvclwtc2hvd1wtb25seTsKK+aYn+WztuaXpeWgsSA8IHNpbmdcLXRhb1wtZGFpbHlcLVwobmV3c3BhcGVyXCk7Civpl5IgPCB1cHBlclwtc3RvcnlcLWRvb3JcLW9yXC13aW5kb3c7CivlhajnqIsgPCBcKGR1cmluZ1wtYW5cKVwtZW50aXJlXC1qb3VybmV5Owor6ZW356+HIDwgbGVuZ3RoeVwtXChyZXBvcnRcLW9yXC1zcGVlY2hcKTsKK+mbu+iFpui8lOWKqeaVmeadkCA8IGNvbXB1dGVyXC1haWRlZFwtaW5zdHJ1Y3Rpb247Civopb/muZYgPCB0aGVcLXdlc3RcLWxha2VcLFwtaW5cLWhhbmd6aG91Owor5a6i5oi25qmf5pyN5YuZ5Zmo55Kw5aKDIDwgY2xpZW50XC1zZXJ2ZXJcLWVudmlyb25lbWVudDsKK+mKgSA8IGFcLXdlaWdodFwtb2ZcLXRoaXJ0eVwtY2F0dGljczsKK+mGiiA8IHRvXC1wb3VyXC13aW5lXC1pblwtYVwtbGliYXRpb247Civpg78gPCBjb3VudHlcLWluXC1zaGFhbnhpXC1wcm92aW5jZTsKK+mDsyA8IHN0YXRlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YOgIDwgcGxhY2VcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civpg5ogPCB0b3duc1wtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+i8pCA8IGFcLXBhbGxcLXRvXC1jb3ZlclwtdGhlXC1oZWFyc2U7CivmkqXlvIQgPCBtb3ZlXC10b1wtYW5kXC1mcm9cLVwod2l0aFwtaGFuZDsKK+ihqOiomCA8IHNvbWV0aGluZ1wtZ2l2ZW5cLWFzXC1hXC10b2tlbjsKK+i4kiA8IHRvXC1zbGlwXC1hbmRcLXNwcmFpblwtYVwtYmxpbWI7Civooajoo6EgPCB0aGVcLW91dHNpZGVcLWFuZFwtdGhlXC1pbnNpZGU7CivoppAgPCBhXC1zbGVlcFwtdG9cLXJlYWxpemVcLXRvXC1mZWVsOwor5qGD6Iqx6YGLIDwgbHVja1wtd2l0aFwtdGhlXC1vcHBvc2l0ZVwtc2V4Owor6Zu75L+h5pyN5YuZIDwgdGVsZWNvbW11bmljYXRpb25zXC1zZXJ2aWNlOwor6YC85YK1IDwgcHJlc3NcLWZvclwtcGF5bWVudFwtb2ZcLWRlYnRzOwor5YWs6ZaL6ZGw5YyZIDwgcHVibGljXC1rZXlcLVwoaW5cLWVuY3J5cHRpb25cKTsKK+iZoSA8IHN1cHBvcnRcLXN0cnVjdHVyZVwtZm9yXC1iZWxsOwor6Ja+IDwgbHV4dXJpYW50XC1ncm93dGhcLW9mXC1mbG93ZXI7CivlvJfloZ7lpYcgPCB2ZXJzYWNlXC1cKGZhc2hpb25cLWRlc2lnbmVyXCk7CivojIggPCBhXC1wbGFudFwteWllbGRpbmdcLWFcLXJlZFwtZHllOwor5pmu6YCa6KmxIDwgbWFuZGFyaW5cLVwoY29tbW9uXC1sYW5ndWFnZVwpOwor6Zu75L+h57ay6LevIDwgdGVsZWNvbW11bmljYXRpb25zXC1uZXR3b3JrOwor6IaGIDwgdGhlXC1jb3JwXC1vZlwtYVwtYmlyZFwtb3JcLWZvd2w7Civpm7vohabovJTliqnlt6XnqIsgPCBjb21wdXRlclwtYWlkZWRcLWVuZ2luZWVyaW5nOwor5oSf5p+T5Lq65pW4IDwgbnVtYmVyXC1vZlwtaW5mZWN0ZWRcLXBlcnNvbnM7CivnrYbpi5IgPCB0aGVcLXRpcFwtb2ZcLWFcLXdyaXRpbmdcLWJydXNoOwor5aCx5YiKIDwgbmV3c3BhcGVyc1wtYW5kXC1wZXJpb2RpY2FsczsKK+eZvuatpeepv+aliiA8IHNob290XC13aXRoXC1ncmVhdFwtcHJlY2lzaW9uOwor572tIDwgZHJhZ1wtbmV0XC1tYWRlXC1vZlwtZmluZVwtbWVzaDsKK+e9jyA8IGVhcnRoZW5cLXN0YW5kXC1mb3JcLXdpbmVcLWp1ZzsKK+e9jSA8IGxhcmdlXC1lYXJ0aGVud2FyZVwtd2luZVwtamFyOwor5ryU6KybIDwgXChnaXZlXClcLWFcLXNwZWVjaFwtb3JcLWxlY3R1cmU7CivnubggPCBoZW1cLW9yXC1ib3JkZXJcLW9mXC1hXC1nYXJtZW50Owor5ZyL54i2IDwgZmF0aGVyXHxmb3VuZGVyXC1vZlwtYVwtbmF0aW9uOwor56+fIDwgbHV4dXJpYW50XC1ncm93dGhcLW9mXC1iYW1ib287Civkvp3pnaAgPCByZWx5XC1vblwtXChmb3JcLXN1cHBvcnRcLFwtZXRjXCk7CivmiYDplbcgPCBoZWFkXC1vZlwtYW5cLWluc3RpdHV0ZVwsXC1ldGNcLjsKK+eqhiA8IHRvXC1wdXRcLWFcLWNvZmZpblwtaW5cLWFcLWdyYXZlOwor56WyIDwgb21pbm91c1wtb3JcLXNpbmlzdGVyXC1zcGlyaXQ7Civlub7lubTkvoYgPCBmb3JcLXRoZVwtcGFzdFwtc2V2ZXJhbFwteWVhcnM7Civoi6XlubIgPCBhXC1jZXJ0YWluXC1udW1iZXJcfGFtb3VudFwtb2Y7CivnmZUgPCBsb3NzXC1vZlwtdGhlXC1zZW5zZVwtb2ZcLXNtZWxsOwor6aCk5ZKM5ZySIDwgc3VtbWVyXC1wYWxhY2VcLVwoaW5cLWJlaWppbmdcKTsKK+ertumBuCA8IHJ1blwtZm9yXC1cKGVsZWN0b3JhbFwpXC1vZmZpY2U7CivmkLblhYggPCB0b1wtcnVzaFwtXCh0b1wtZG9cLXN0aFwtdXJnZW50XCk7Civnj5sgPCBxdWlja2x5XC1kZXRlcmlvcmF0aW5nXC1qYWRlOwor5YGc55WZIDwgc3RheVwtc29tZXdoZXJlXC10ZW1wb3JhcmlseTsKK+a+tyA8IHdhdGVyXC1vdmVyZmxvd2luZ1wtZGlmZnVzZWQ7Civlh7rnj77mhI/lpJYgPCBcKHRvXC1hcHBlYXJcKVwtdW5leHBlY3RlZFwobHlcKTsKK+avqSA8IGFcLWxlYXRoZXJcLWJhbGxcLWZvclwta2lja2luZzsKK+eXheagqiA8IGRpc2Vhc2VkXC1vclwtaW5mZWN0ZWRcLXBsYW50Owor5L+X56ixIDwgYmVcLWNvbW1vbmx5XC1yZWZlcnJlZFwtdG9cLWFzOwor5o+5IDwgY2FycnlcLXRoaW5nc1wtb25cLW9uZScnc1wtYmFjazsKK+aPgSA8IHNvdW5kXC1vZlwtc2V0dGluZ1wtdXBcLWFcLWtvdG87CivkuIDop7jljbPnmbwgPCBjb3VsZFwtaGFwcGVuXC1hdFwtYW55XC1tb21lbnQ7CivooYzlsIcgPCBiZVwtYWJvdXRcLXRvXC1cKGRvXC1zb21ldGhpbmdcKTsKK+i2s+eQgyA8IGZvb3RiYWxsXC1cKGJyaXRpc2hcLWVuZ2xpc2hcKTsKK+e6luiKr+ebtOW+kSA8IGNvcmVcLWRpYW1ldGVyXC1cKG9mXC1hXC1maWJlclwpOwor5aqnIDwgbXl0aG9sb2dpY2FsXC1zbmFpbFwtZ29kZGVzczsKK+iDjOiEiiA8IHRoZVwtYmFja1wtb2ZcLXRoZVwtaHVtYW5cLWJvZHk7Civlm4kgPCBleGNsYW1hdG9yeVwtZmluYWxcLXBhcnRpY2xlOwor5a6i5oi25pyN5YuZ5Zmo57WQ5qeLIDwgY2xpZW50XC1zZXJ2ZXJcLWFyY2hpdGVjdHVyZTsKK+WYtyA8IHRoZVwtcm9hcmluZ1wtb2ZcLXdpbGRcLWJlYXN0czsKK+mAsuihjOS6pOaYkyA8IHRvXC1jYXJyeVwtb3V0XC1hXC10cmFuc2FjdGlvbjsKK+aKl+aTiiA8IHJlc2lzdFwtXChhXC1taWxpdGFyeVwtYXR0YWNrXCk7CivliZ4gPCBjYXJ2aW5nXC1vclwtZW5ncmF2aW5nXC1rbmlmZTsKK+mmrOS+huS6uiA8IG1hbGF5c2lhblwtcGVyc29uXC1vclwtcGVvcGxlOwor5YaPIDwgYWJ1dGlsb25cLWF2aWNlbm5hZVwtXChwbGFudFwpOwor5Yil5Ye65b+D6KOBIDwgYWRvcHRcLWFuXC1vcmlnaW5hbFwtYXBwcm9hY2g7CivlsIvmqZ8gPCB0b1wtbG9va1wtZm9yXC1hblwtb3Bwb3J0dW5pdHk7CivkuasgPCB1c2VkXC1pblwta29yZWFuXC1wbGFjZVwtbmFtZXM7Civlr6bms4EgPCB3aGF0XC1pc1wtYWN0dWFsbHlcLWhhcHBlbmluZzsKK+S1hiA8IGdyYWluc1wtZnJvbVwtdGhlXC1kaXN0aWxsZXJ5Owor5LKvIDwgYVwta2luZFwtb2ZcLWJsYWNrXC1zbWFsbFwtYmlyZDsKK+SvkyA8IHRoZVwtaGVhZFwtYm9uZVwtb2ZcLWxpdmVzdG9jazsKK+SutiA8IGZsb2NrXC1vZlwtaG9yc2VzXC1zdGFtcGVkaW5nOwor5K6jIDwgYVwteWVsbG93XC13aXRoXC1hXC13aGl0ZVwtdGFpbDsKK+WqkumrlOaOpeWPo+mAo+aOpeWZqCA8IG1lZGl1bVwtaW50ZXJmYWNlXC1jb25uZWN0b3I7CivlupXnibnlvosgPCBkZXRyb2l0XC1cKGFcLWNpdHlcLWluXC10aGVcLXVzXCk7CivkrLEgPCBjb2Fyc2VcLWdyYWluc1wtc3VjaFwtYXNcLWNvcm47CivkuK3lnIvnp5HlrbjpmaIgPCBjaGluZXNlXC1hY2FkYW15XC1vZlwtc2NpZW5jZTsKK+SpsiA8IGFcLXRvb2xcLXVzZWRcLXRvXC1jdXRcLWxlYXRoZXI7CivkqZogPCB0b1wtbWVuZFwtdGhlXC1zb2xlc1wtb2ZcLXNob2VzOwor55m+55m855m+5LitIDwgZXZlcnlcLXNob3RcLWhpdHNcLXRoZVwtdGFyZ2V0Owor5LiB6ZuyIDwgZGluZ1wteXVuXC1cKGFcLXBlcnNvbmFsXC1uYW1lXCk7CivomZvmk6zpgJrpgZPpgKPmjqUgPCB2aXJ0dWFsXC1jaGFubmVsXC1jb25uZWN0aW9uOwor5KGmIDwgdGhlXC1lbXB0eVwtc3BhY2VcLW9mXC1hXC13aGVlbDsKK+ahiOadvyA8IGtuZWFkaW5nXC1vclwtY2hvcHBpbmdcLWJvYXJkOwor5KCJIDwgdG9cLXJ1blwtYXdheVwtb3JcLWVzY2FwZVwtZnJvbTsKK+SekSA8IGFcLXJlZFwtc3dlbGxpbmdcLW9mXC10aGVcLXNraW47Civkv53lroggPCBcKHBvbGl0aWNhbGx5XClcLWNvbnNlcnZhdGl2ZTsKK+SbryA8IHRoZVwtcmVhc29uYWJsZVwtb2ZcLXNwZWVraW5nOwor5JaFIDwgbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUhSA8IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtdHJlZXM7CivkkrEgPCB0d2lnc1wtb2ZcLWhlbXBcLXVzZWRcLWZvXC1mdWVsOwor5I63IDwgYW5cLW9sZFwtbWFuXC13aXRoXC13aGl0ZVwtaGFpcjsKK+S4jemAgSA8IGRvbicndFwtYm90aGVyXC10b1wtc2VlXC1tZVwtb3V0Owor5IygIDwgaG9sZFwtb25cLXRvXC1vbmUnJ3NcLW93blwtdmlld3M7CivpnaLlmq7lsI3osaHnmoTmioDooZMgPCBvYmplY3RcLW9yaWVudGVkXC10ZWNobm9sb2d5Owor56We6YGTIDwgc2hpbnRvXC1cKGphcGFuZXNlXC1yZWxpZ2lvblwpOwor5IuAIDwgc2hvZXNcLW1hZGVcLW9mXC1oZW1wXC1vclwtaGFpcjsKK+SKriA8IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3JhaW47CivkiYIgPCBhXC1iYXNrZXRcLWZvclwtZWFydGhcLW9yXC1zb2lsOwor5IeWIDwgcm9wZVwtbWFkZVwtb2ZcLWJhbWJvb1wtc3RyaXBzOwor5IaAIDwgdG9cLWNvcnJ1cHRcLW9yXC1iZVwtY29ycnVwdGVkOwor5IW+IDwgc3RhcnRpbmdcLXRvXC1wdXRcLWZvcnRoXC1lYXJzOwor5IWsIDwgc21hbGxcLWJ1bmRsZVwtb2ZcLXJpY2VcLXBsYW50Owor5bCH5bCxIDwgYWNjZXB0XC1cKGFcLWJpdFwtcmVsdWN0YW50bHlcKTsKK+S4jeS6ouS4jeWNkSA8IG5laXRoZXJcLWhhdWdodHlcLW5vclwtaHVtYmxlOwor5IGOIDwgdG9cLW1ha2VcLWFcLWNsb3NlXC1pbnNwZWN0aW9uOwor5ICKIDwgYVwta2luZFwtb2ZcLXdhdGVyXC1jb250YWluZXJzOwor5oe35oqxIDwgXCh3aXRoaW5cLXNvbWVvbmUnJ3NcKVwtZW1icmFjZTsKK+O8qSA8IGNvbmNhdmVcLWNoYW5uZWxzXC1vZlwtdGlsaW5nOwor55So5oi256uv6Kit5YKZIDwgY3VzdG9tZXJcLXByZW1pc2VcLWVxdWlwbWVudDsKK+aDheazgeS4iyA8IHVuZGVyXC1cKHRoaXNcKVwtY2lyY3Vtc3RhbmNlczsKK+O6oCA8IGFcLWJsYWNrXC1hcGVcLXdpdGhcLWxvbmdcLXRhaWw7CivjupUgPCB0aGVcLWZpZ2h0aW5nXC1zb3VuZFwtb2ZcLWRvZ3M7CivjuZogPCBzb3VuZFwtb2ZcLWNhbGxpbmdcLXRvXC1hXC1jYWxmOwor47e2IDwgdG9cLWRyeVwtb3JcLXdhcm1cLW5lYXJcLWFcLWZpcmU7Civmuqvlk6Xoj68gPCB2YW5jb3V2ZXJcLVwoY2l0eVwtaW5cLWNhbmFkYVwpOwor47eDIDwgZmlyZVwtYnVybnNcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+O0lCA8IHRoZVwtbm9pc2VcLW9mXC1mbG93aW5nXC13YXRlcjsKK+O0iyA8IGRlZXBcLWFuZFwtY2xlYXJcLVwtdG9cLXVyaW5hdGU7Civjs6cgPCB0aGVcLXdhdGVyXC1mbG93aW5nXC1mcm9tXC1cLlwuXC47Civjsb0gPCB0b1wtaGl0XC1vclwtdG9cLXN0cmlrZWhlYXZpbHk7CivjsbsgPCBkaXNlYXNlc1wtb2ZcLWR1bWJcLWNyZWF0dXJlczsKK+OxoSA8IHRoZVwtc291bFwtb3V0XC1vZlwtb25lJydzXC1ib2R5Owor47GUIDwgYVwtc21hbGxcLXF1YW50aXR5XC1vclwtbnVtYmVyOwor46+fIDwgZm9vdFwtb2ZcLWFcLWhpbGxcLW9yXC1tb3VudGFpbjsKK+OtriA8IGFcLWtpbmRcLW9mXC1saXF1b3JcLWNvbnRhaW5lcjsKK+WPs+mCiiA8IHJpZ2h0XC1cKGFzXC1vcHBvc2VkXC10b1wtbGVmdFwpOwor5LiN562J5YO55Lqk5o+bIDwgZXhjaGFuZ2VcLW9mXC11bmVxdWFsXC12YWx1ZXM7Civnmb3poK3nv4EgPCByb290XC1vZlwtY2hpbmVzZVwtcHVsc2F0aWxsYTsKK++ojCA8IGR1cGxpY2F0ZVwtb2ZcLWJpZ1wtZml2ZVwtYTQ2MTsKK+eZveWjgeeEoeeRlSA8IGltcGVjY2FibGVcLW1vcmFsXC1pbnRlZ3JpdHk7CivjpoMgPCBwZXJmZWN0XC1wZXJzb25hbFwtY2hhcmFjdGVyOwor56S+6KuWIDwgZWRpdG9yaWFsXC1cKGluXC1hXC1uZXdzcGFwZXJcKTsKK+WutuW4uCA8IHRoZVwtZGFpbHlcLWxpZmVcLW9mXC1hXC1mYW1pbHk7CivjpY0gPCB0b1wtYmVhclwtamVhbG91c1wtaGF0cmVkXC1mb3I7CivjpKwgPCBmdWxsXC1vZlwtYW5nZXJcLWFuZFwtdmV4YXRpb247CivjpI4gPCBhXC1tb2RlbFwtb3JcLXR5cGljYWxcLWV4YW1wbGU7CivjpIQgPCByYWdpbmdcLWFuaW1vc2l0eVwtb3JcLWhhdHJlZDsKK+OjpyA8IHRoZVwtc3VjY2Vzc2lvblwtaW5cLWFcLWZhbWlseTsKK+OjoyA8IHRvXC13YWxrXC1pblwtYW5cLXVuc3RlYWR5XC13YXk7CivjorggPCBkZXZpY2VcLWZvclwtcmVndWxhdGluZ1wtYm93czsKK+OikiA8IGFuXC1hbG1vc3RcLWNvbGxhcHNpbmdcLWhvdXNlOwor5pu46IGWIDwgYVwtZ3JlYXRcLWNhbGxpZ3JhcGh5XC1tYXN0ZXI7CivjnKogPCBuYW1lXC1vZlwtYVwtZmFtaWx5XC1vclwtYVwtY2xhbjsKK+OclSA8IHJlbGF0aXZlc1wtdGhyb3VnaFwtbWFycmlhZ2U7Civjm7IgPCB0aGVcLWhhaXJcLW9uXC10aGVcLWh1bWFuXC1oZWFkOwor45q/IDwgYVwtZ29kZGVzcycnc1wtbmFtZVwtaW5cLWxlZ2VuZDsKK+OZoSA8IGFcLWtpbmRcLW9mXC1lYXRhYmxlXC1tdXNocm9vbTsKK+OYuSA8IHRvXC1zcHJlYWRcLXNvaWxcLW9uXC10aGVcLXJvYWQ7CivkuK3mlofniYggPCBjaGluZXNlXC1cKGxhbmd1YWdlXClcLXZlcnNpb247CivjmKQgPCBjaXJjbGVcLW9mXC10aGVcLW1vdmluZ1wtd2F0ZXI7CivjlqggPCBpbmRpc3RpbmN0XC1uYXNhbFwtdXR0ZXJhbmNlOwor45K9IDwgYVwta2luZFwtb2ZcLWNhcFwtZm9yXC1jaGlsZHJlbjsKK+mrmOS4reeUnyA8IHNlbmlvclwtaGlnaFwtc2Nob29sXC1zdHVkZW50Owor45CWIDwgYVwtdHJhbnNsYXRlZFwtbmFtZVwtb2ZcLWluZGlhOwor6LOH5pysIDwgY2FwaXRhbFwtXChhc1wtaW5cLWNhcGl0YWxpc21cKTsKK+adv+e+veeQgyA8IGJhdHRsZWRvcmVcLWFuZFwtc2h1dHRsZWNvY2s7CivpoqjnkLQgPCBvcmdhblwtXChtdXNpY2FsXC1pbnN0cnVtZW50XCk7CivlrZfluJYgPCBjb3B5Ym9va1wtXChmb3JcLWNhbGxpZ3JhcGh5XCk7CivmlZflrZDlm57poK0gPCByZXR1cm5cLW9mXC10aGVcLXByb2RpZ2FsXC1zb247CivoqKrllY/nvo7lnIsgPCB0b1wtdmlzaXRcLXRoZVwtdW5pdGVkXC1zdGF0ZXM7CivkuI3lpLHmmYLmqZ8gPCBzZWl6ZVwtdGhlXC1vcHBvcnR1bmVcLW1vbWVudDsKK+WuieWIhiA8IG5vdFwtZ29cLWJleW9uZFwtb25lJydzXC1ib3VuZHM7CivmmpfnrJEgPCBsYXVnaFwtaW5cLVwodXBcKVwtb25lJydzXC1zbGVldmU7CivlsI7lvYjmvZvoiYcgPCBcKGd1aWRlZFwpXC1taXNzaWxlXC1zdWJtYXJpbmU7Civnvo7njrIgPCBtZWlcLWxpbmdcLVwoYVwtcGVyc29uJydzXC1uYW1lXCk7CivnoqfooYAgPCBibG9vZFwtc2hlZFwtaW5cLWFcLWp1c3RcLWNhdXNlOwor5Y+D5YWp6ZmiIDwgYm90aFwtaG91c2VzXC1vZlwtdXNcLWNvbmdyZXNzOwor5rSq5qOuIDwgaHVuXC1zZW5cLVwoY2FtYm9kaWFuXC1sZWFkZXJcKTsKK+eon+WRiiA8IHJlcG9ydFwtXCh0b1wtb25lJydzXC1zdXBlcmlvclwpOwor6YG66auUIDwgcmVtYWluc1wtXChvZlwtYVwtZGVhZFwtcGVyc29uXCk7Civpgb/poqggPCB0YWtlXC1zaGVsdGVyXC1mcm9tXC10aGVcLXdpbmQ7Civnpo/lu7ogPCBmdWppYW5cLVwocHJvdmluY2VcLW9mXC1jaGluYVwpOwor5a6J5aaC5rOw5bGxIDwgYXNcLXNlY3VyZVwtYXNcLW1vdW50XC10YWlzaGFuOwor5YuY6KqkIDwgdG9cLWNvcnJlY3RcLXByaW50aW5nXC1lcnJvcnM7CivljYfntJogPCB0b1wtZXNjYWxhdGVcLVwoaW5cLWludGVuc2l0eVwpOwor5by36Kq/IDwgdG9cLWVtcGhhc2l6ZVwtXChhXC1zdGF0ZW1lbnRcKTsKK+iAjOS4lCA8IG5vdFwtb25seVwtXC5cLlwuXC1idXRcLWFsc29cLVwuXC5cLlwuOwor6YG36YO9IDwgdG9cLW1vdmVcLXRoZVwtY2FwaXRvbFwtXChjaXR5XCk7CivkuI3nvqnkuYvosqEgPCBpbGxcLWdvdHRlblwtd2VhbHRoXC1vclwtZ2FpbnM7Civph43opoHnmoTmmK8gPCBpdFwtaXNcLWltcG9ydGFudFwtXCh0aGF0XClcLVwuXC5cLjsKK+S4jeS9hiA8IG5vdFwtb25seVwtXChcLlwuXC5cLWJ1dFwtYWxzb1wuXC5cLlwpOwor5YyF55SiIDwgbWFrZVwtYVwtcHJvZHVjdGlvblwtY29udHJhY3Q7CivnmZ/onrrnl6cgPCBjaG9sZXJhXC1cKHdpdGhcLWRlaHlkcmF0aW9uXCk7CivlsYogPCBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC10aW1lOwor6LCBIDwgd2hvXD9cLXdob21cP1wtd2hvc2VcP1wtYW55b25lXD87CivpmL8gPCBwcmVmaXhcLWZvclwtcGVvcGxlJydzXC1uYW1lczsKK+iOoiA8IHBvZHNcLW9mXC1sZWd1bWlub3VzXC1wbGFudHM7Civni4QgPCB0cmliZVwtZnJvbVwtbm9ydGhlcm5cLWNoaW5hOwor57mwIDwgdG9cLXJlZWxcLXNpbGtcLWZyb21cLWNvY29vbnM7CivmvJMgPCByaXZlclwtaW5cLWd1YW5neGlcLXByb3ZpbmNlOwor5ZKLIDwgcXVlc3Rpb25cLWZvcm1pbmdcLXBhcnRpY2xlOwor6bqfIDwgZmVtYWxlXC1vZlwtY2hpbmVzZVwtdW5pY29ybjsKK+a4rSA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW54aTsKK+iKnCA8IGx1eHVyaW91c1wtZ3Jvd3RoXC1vZlwtd2VlZHM7Civnu44gPCB0b1wtdW5yYXZlbFwtb3JcLXVucmVlbFwtc2lsazsKK+eSkCA8IGJlYXV0aWZ1bFwtdmFyaWV0eVwtb2ZcLWphZGU7Civpn7YgPCBtdXNpY1wtb2ZcLXRoZVwtZW1wZXJvclwtc2h1bjsKK+msnyA8IGRyZXNzXC1oYWlyXC1pblwtY29pbGVkXC1rbm90Owor572CIDwgbG9uZ1wtbmVja2VkXC1qYXJcLW9yXC1ib3R0bGU7CivpnbMgPCBzdHJhcFwtb25cLWFcLWhvcnNlJydzXC1icmVhc3Q7Civmt6YgPCByaXZlclwtaW5cLWppYW5neGlcLXByb3ZpbmNlOwor5pChIDwgdG9cLXB1c2hcLW92ZXJcLW9yXC1wdXNoXC1iYWNrOwor6ImuIDwgc2V2ZW50aFwtb2ZcLWVpZ2h0XC1kaWFncmFtczsKK+a5nyA8IHJpdmVyXC1pblwtcWluZ2hhaVwtcHJvdmluY2U7CivnjLEgPCBhXC1tb25rZXlcLXdpdGhcLXllbGxvd1wtaGFpcjsKK+a2qiA8IHJpdmVyXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivkurMgPCBuYW1lXC1vZlwtZGlzdHJpY3RcLWluXC1hbmh1aTsKK+iUuiA8IHJ1c2hcLXVzZWRcLWZvclwtbWFraW5nXC1tYXRzOwor55CsIDwgdGhlXC12aXJ0dWVcLW9mXC1hXC1nZW50bGVtYW47CivnjJcgPCBleGNsYW1hdGlvblwtb2ZcLWFkbWlyYXRpb247CivpvJkgPCBkcnVtXC1jYXJyaWVkXC1vblwtaG9yc2ViYWNrOwor6JWyIDwgdmFyaWV0eVwtb2ZcLWFydGVtaXNpYVwtc2VlazsKK+eTniA8IHlvdW5nXC1tZWxvbnNcLWp1c3RcLWZvcm1pbmc7CivovoEgPCBjYXJ0XC13aGVlbFwtd2l0aFwtbm9cLXNwb2tlczsKK+mFhiA8IG5hbWVcLW9mXC16aG91XC1wZXJpb2RcLXN0YXRlOwor5YyX5pydIDwgdGhlXC1ub3J0aGVyblwtZHluYXN0aWVzXC1cKGE7CivotoXmlofmnKzmqJnoqJjoqp7oqIAgPCBoeXBlcnRleHRcLW1hcmt1cFwtbGFuZ3VhZ2U7CivmsLjkuYXomZvpm7vot68gPCBwZXJtYW5lbnRcLXZpcnR1YWxcLWNpcmN1aXQ7CivljIXmlKwgPCB1bmRlcnRha2VcLXRoZVwtd2hvbGVcLXRoaW5nOwor5Yue5pWZIDwgcmVlZHVjYXRpb25cLXRocm91Z2hcLWxhYm9yOwor5Y2K5aC0IDwgaGFsZlwtb2ZcLWFcLWdhbWVcLW9yXC1jb250ZXN0Owor6YCa5L+h5oqA6KGTIDwgY29tbXVuaWNhdGlvbnNcLXRlY2hub2xvZ3k7CivnmbzpgZQgPCBkZXZlbG9wZWRcLVwoY291bnRyeVwsXC1ldGNcLlwpOwor5aGe54i+57at5Lqe5YWL576F5Zyw5Lqe6KqeIDwgc2VyYm9cLWNyb2F0aWFuXC1cKGxhbmd1YWdlXCk7CivngInpnLIgPCB0b1wtbGVha1wtb3V0XC1cKGluZm9ybWF0aW9uXCk7CivmrbLmlbggPCBhZ2VcLVwobnVtYmVyXC1vZlwteWVhcnNcLW9sZFwpOwor5aSW5Yyv5YSy5YKZIDwgZm9yZWlnblwtZXhjaGFuZ2VcLXJlc2VydmVzOwor6ZaL6KitIDwgb2ZmZXJcLVwoZ29vZHNcLW9yXC1zZXJ2aWNlc1wpOwor5buj5p2xIDwgZ3Vhbmdkb25nXC1wcm92aW5jZVwsXC1jaGluYTsKK+aUvuW/gyA8IHRvXC1zZXRcLW9uZScnc1wtbWluZFwtYXRcLXJlc3Q7Civpra/ov4UgPCBuYW1lXC1vZlwtYW5cLWF1dGhvclwsXC1sdVwteHVuOwor6YGZ5pybIDwgdG9cLWxvb2tcLWludG9cLXRoZVwtZGlzdGFuY2U7Civpm7vlrZDpg7Xku7blgrPpgIHmnI3li5kgPCBcKGVcLVwpbWFpbFwtZGVsaXZlcnlcLXNlcnZpY2U7Civoo5zotrMgPCBicmluZ1wtdXBcLXRvXC1mdWxsXC1zdHJlbmd0aDsKK+mAj+mAmuaApyA8IHRyYW5zcGFyZW5jeVwtXChuZXR3b3JraW5nXCk7CivnhqzlpJwgPCBzdGF5XC11cFwtbGF0ZVwtb3JcLWFsbFwtbmlnaHQ7CivpsLwgPCB0aGVcLXdlYXRoZXJcLW9yXC1kb2pvXC1sb2FjaDsKK+mrlOmplyA8IHRvXC1leHBlcmllbmNlXC1mb3JcLW9uZXNlbGY7CivmkpXmr4AgPCB0ZWFyXC11cFwtXChhXC1jb250cmFjdFwsXC1ldGNcKTsKK+WCvumKtyA8IHRvXC1kdW1wXC1cKGdvb2RzXCxcLXByb2R1Y3RzXCk7Civpn5QgPCBhXC13cmFwcGVyXC1vclwtY2FzZVwtZm9yXC1ib3c7CivnnIvms5UgPCB3YXlcLW9mXC1sb29raW5nXC1hdFwtYVwtdGhpbmc7CivpmZcgPCBhXC1zdGVlcFwtaGlsbFwuXC1wcmVjaXBpdG91czsKK+eHn+alremhjSA8IHN1bVwtb3JcLXZvbHVtZVwtb2ZcLWJ1c2luZXNzOwor6Y++IDwgdGhlXC10cmlnZ2VyXC1vZlwtYVwtY3Jvc3Nib3c7Civpl5zms6ggPCBmb2xsb3dcLVwoYW5cLWlzc3VlXClcLWNsb3NlbHk7CivphKAgPCBjb3VudHlcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor6YSOIDwgYVwtcGxhY2VcLWluXC1oZW5hblwtcHJvdmluY2U7CivliZ3llYQgPCB0YXBcLVwob25cLWFcLWRvb3JcLW9yXC13aW5kb3dcKTsKK+i+qOaekCA8IGRpZmZlcmVudGlhdGVcLWFuZFwtYW5hbHlzZTsKK+S4jei+rei+m+iLpiA8IG1ha2VcLW5vdGhpbmdcLW9mXC1oYXJkc2hpcHM7CivnqIvlvI/nkIblk6EgPCBwcm9ncmFtXC1tYW5hZ2VyXC1cKHdpbmRvd3NcKTsKK+intyA8IHRvXC1wcm9jZXNzXC1vclwtY2FydmVcLWhvcm5zOwor5rCR5Li76buo5Lq6IDwgYVwtZGVtb2NyYXRpY1wtcGFydHlcLW1lbWJlcjsKK+idsCA8IHZpcGVyYVwtcnVzc2VsaWlcLXNpYW1lbnNpczsKK+WNgeWEhOS9jeWFg+S7peWkque2sue1oeiBr+ebnyA8IGdpZ2FiaXRcLWV0aGVybmV0XC1hbGxpYW5jZTsKK+iRtiA8IGRyYWJhXC1uZW1lcm9zYVwtYmViZVwtY2FycGE7CivoipQgPCBhXC1nZW5lcmFsXC10ZXJtXC1mb3JcLXBsYW50czsKK+iGpSA8IGVnZ3NcLW9mXC1iaXJkc1wtb3JcLXJlcHRpbGVzOwor5LiJ5Y2B5bm05L6GIDwgZm9yXC10aGVcLXBhc3RcLXRoaXJ0eVwteWVhcnM7CivmioDooZPnmbzlsZUgPCB0ZWNobm9sb2dpY2FsXC1kZXZlbG9wbWVudDsKK+Wci+eUoiA8IG1hZGVcLWluXC1vbmUnJ3NcLW93blwtY291bnRyeTsKK+mrmOetieWtuOagoSA8IGNvbGxlZ2VzXC1hbmRcLXVuaXZlcnNpdGllczsKK+eZveaXjyA8IHRoZVwtYmFpXC1cKHBhaVwpXC1uYXRpb25hbGl0eTsKK+e6kSA8IHRvXC1zb2Z0ZW5cLWhlbXBcLWJ5XC1ib2lsaW5nOwor5Y6f5Zug5b6I57Ch5ZauIDwgdGhlXC1yZWFzb25cLWlzXC12ZXJ5XC1zaW1wbGU7CivnsakgPCBiYW1ib29cLWNvbnRhaW5lclwtZm9yXC1mb29kOwor57GdIDwgYVwtdHViZVwtdG9cLWhvbGRcLWNob3BzdGlja3M7CivlurfmtoXni4TmoLwgPCBjb25uZWN0aWN1dFwtXChzdGF0ZVwtaW5cLXVzXCk7CivnrI4gPCBiYW1ib29cLXdpdGhcLWJsYWNrXC1wYXRjaGVzOwor5Zau6YCj5o6l56uZIDwgc2luZ2xlXC1hdHRhY2htZW50XC1zdGF0aW9uOwor56aYIDwgaW1wZXJpYWxcLWFuY2VzdG9yXC13b3JzaGlwOwor55+u5YCL5YWSIDwgYVwtcGVyc29uXC1vZlwtc2hvcnRcLXN0YXR1cmU7Civnl4XnmZIgPCByZWNvdmVyXC1cKGZyb21cLWFuXC1pbGxuZXNzXCk7CivnpIQgPCBwbGFjZVwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor5a+s6ZmQIDwgZXh0ZW5kXC1cKGFcLWRlYWRsaW5lXCxcLWV0Y1wuXCk7CivnkqogPCBwZWFybFwtcGVuZGFudHNcLW9uXC1jb3JvbmV0Owor55G9IDwgdGlua2xpbmdcLW9mXC1qYWRlXC1wZW5kYW50czsKK+eMsiA8IHNtb2tlXC1vclwtZmxhbWVzXC1mcm9tXC1maXJlOwor56ym5ZCI5qiZ5rqWIDwgdG9cLWNvbXBseVwtd2l0aFwtYVwtc3RhbmRhcmQ7CivnpLrlqIHpgYrooYwgPCBhXC1cKHByb3Rlc3RcKVwtZGVtb25zdHJhdGlvbjsKK+aznCA8IGFcLXJpdmVyXC1pblwtaGViZWlcLXByb3ZpbmNlOwor5rOSIDwgYVwtcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7Civmsa0gPCBjb25mbHVlbmNlXC1vZlwtdHdvXC1zdHJlYW1zOwor5qu9IDwgc2hhcGVcLXdvb2RcLWJ5XC11c2VcLW9mXC1oZWF0Owor5pmsIDwgZmlyc3RcLWJpcnRoZGF5XC1vZlwtYVwtY2hpbGQ7CivooajmhYsgPCBtYWtlXC1rbm93blwtb25lJydzXC1wb3NpdGlvbjsKK+Wuo+iqkyA8IHN3ZWFyXC1hblwtb2F0aFwtXChvZlwtb2ZmaWNlXCk7CivlpKfmlbXnlbbliY0gPCBjb25mcm9udFwtYVwtcG93ZXJmdWxcLWVuZW15Owor5oKKIDwgd2lzZVwuXC10b1wta25vd1wtaW50dWl0aXZlbHk7Civmi5zmnJsgPCBjYWxsXC10b1wtcGF5XC1vbmUnJ3NcLXJlc3BlY3Q7CivlvY0gPCB0b1wtZHJhd1wtYVwtYm93XC10b1wtdGhlXC1mdWxsOwor5qC45aSn5ZyLIDwgYVwtbnVjbGVhclwtcG93ZXJcLVwoY291bnRyeVwpOwor5bqFIDwgYW5cLWludGVycm9nYXRpdmVcLXBhcnRpY2xlOwor56CU6KO96YGO56iLIDwgbWFudWZhY3R1cmluZ1wtZW52aXJvbm1lbnQ7Civnr4fluYUgPCBcKHRha2VcLXVwXC1vclwtZGV2b3RlXClcLXNwYWNlOwor5Y+N5ZSH55u46K2PIDwgYW5zd2VyXC1iYWNrXC1zYXJjYXN0aWNhbGx5Owor5qC46L2f54K45qmfIDwgbnVjbGVhclwtYm9tYmVyXC1cKGFpcmNyYWZ0XCk7CivluIzoh5joqp4gPCBcKG1vZGVyblwpXC1ncmVla1wtXChsYW5ndWFnZVwpOwor6aaW55u4IDwgXChqYXBhbmVzZVwpXC1wcmltZVwtbWluaXN0ZXI7CivmmYLplpPlhacgPCB3aXRoaW5cLVwoYVwtcGVyaW9kXC1vZlwtdGltZVwpOwor57ay57Wh566h55CG57O757WxIDwgbmV0d29ya1wtbWFuYWdlbWVudFwtc3lzdGVtOwor5oqK5byPIDwgcGVyc29uXC1za2lsbGVkXC1pblwtYVwtdHJhZGU7CivktbUgPCB5ZWxsb3dpc2hcLWJsYWNrXC1hbmRcLXdoaXRlOwor5LWrIDwgbGlnaHRcLXJlZFwteWVsbG93aXNoXC1ibGFjazsKK+S0myA8IHRvXC1tYWtlXC1kZWNvY3Rpb25cLW9mXC1zYWx0Owor5LO3IDwgYVwtc2Vjb25kXC1uYW1lXC1mb3JcLWNoaWNrZW47Civks4YgPCBhXC1raW5kXC1vZlwtc3BlY2llc1wtb2ZcLW15bmE7CivksIIgPCBhXC1jb2lmZnVyZVwtd2l0aFwtYVwtdG9wa25vdDsKK+SulSA8IGhvcnNlXC13aXRoXC13aGl0ZVwtZm9yZWhlYWQ7CivkraggPCB3aW5lXC1wb3VyZWRcLWluXC1hXC1saWJhdGlvbjsKK+SrgCA8IHRoZVwtbG93ZXJcLWVuZFwtb2ZcLXRoZVwtamF3czsKK+SpnSA8IHRvXC10YW5cLWFuZFwtc29mdGVuXC1sZWF0aGVyOwor5LiN5b6X5Lq65b+DIDwgbm90XC1lbmpveVwtcG9wdWxhclwtc3VwcG9ydDsKK+a3mOexriA8IGJhc2tldFwtXChmb3JcLXdhc2hpbmdcLXJpY2VcKTsKK+SkgiA8IGFcLXNlY29uZFwtbmFtZVwtZm9yXC12aW5lZ2FyOwor55Sl5aWzIDwgbmllY2VcLVwoc2lzdGVyJydzXC1kYXVnaHRlclwpOwor5KO0IDwgdG9cLWxvc2VcLXRlbXBlclwtd2hlblwtZHJ1bms7Civko4YgPCBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtZ2FvbWk7CivkorIgPCB0b1wtZ29cLWFsbFwtdGhlXC13YXlcLWZvcndhcmQ7Civkoq4gPCByYXBpZFwtbWFyY2hpbmdcLW9yXC1ydW5uaW5nOwor5KKhIDwgdG9cLXN0YW1wXC10aGVcLWZvb3RcLWZvcndhcmQ7CivkobkgPCB0aGVcLWxvd1wtcmVhclwtb2ZcLWFcLWNoYXJpb3Q7Civkoa8gPCBzb3VuZFwtb2ZcLW1vdmluZ1wtY2FycmlhZ2VzOwor5KGhIDwgdG9cLWdldFwtdXBcLWludG9cLWFcLWNhcnJpYWdlOwor55u06KiA5LiN6KuxIDwgc3BlYWtcLWZyYW5rbHlcLWFuZFwtYmx1bnRseTsKK+aZr+WxseWFrOWckiA8IG5hbWVcLW9mXC1hXC1wYXJrXC1pblwtYmVpamluZzsKK+SYuCA8IHRoZVwtbG93ZXJcLWZyb250XC1vZlwtYVwtcm9iZTsKK+SYkiA8IGJveScnc1wtcmVwcm9kdWN0aXZlXC1vcmdhbnM7CivklYQgPCBtZWF0XC1pblwtdGhlXC1mb3JtXC1vZlwtcGFzdGU7Civkk4sgPCBlbG1cLXNlZWRzXC1cLVwtXC11c2VkXC1hc1wtZm9vZDsKK+SRoiA8IGFcLWtuaWZlXC1zaGFwZWRcLXNtYWxsXC1ib2F0Owor5JGIIDwgbWVhdFwtdG9cLW9mZmVyXC1mb3JcLXdvcnNoaXA7CivmvKLkurogPCBoYW5cLWNoaW5lc2VcLXBlcnNvblx8cGVvcGxlOwor5I2vIDwgZ2FvdFwtd2l0aFwtZGlmZmVyZW50XC1ob3JuczsKK+SNoiA8IG5ldHRlZFwtdmVpbmVkXC13aW5kb3dcLXNpbGw7Civki58gPCB0aGVcLXdlaWdodFwtb25cLWFcLXN0ZWVseWFyZDsKK+SKtiA8IGFcLXJvcGVcLWZvclwtbGVhZGluZ1wtY2F0dGxlOwor5LiW55WM6KGb55Sf57WE57mUIDwgd29ybGRcLWhlYWx0aFwtb3JnYW5pemF0aW9uOwor5Ly65qmfIDwgdG9cLXdhdGNoXC1mb3JcLW9uZScnc1wtY2hhbmNlOwor5ImXIDwgYVwtcmVjZXB0YWNsZVwtb3JcLWNvbnRhaW5lcjsKK+SEuCA8IGdyYWluc1wtcHJvZHVjaW5nXC1ub1wtZnJ1aXQ7CivkhJIgPCByaXBlbmluZ1wtb2ZcLXBhZGR5XC1vclwtcmljZTsKK+SDgSA8IHVuZXZlblwtb3JcLXJ1Z2dlZFwtdGVycmFpbnM7CivkgZQgPCBiaWdcLWV5ZXNcLXByb3R1YmVyYW50XC1leWVzOwor47+wIDwgZHVyYWJsZVwtYW5kXC1zb2xpZFwtbGVhdGhlcjsKK+mguOmDqCA8IHRoZVwtbmVja1wtYXJlYVwtb2ZcLXRoZVwtYm9keTsKK+O/giA8IG9ic3RyYWN0aW9uXC1vZlwtdGhlXC1ib3dlbHM7CivjvrUgPCBhXC1kYXJrXC1jb2xvcmVkXC1iaXJ0aFwtbWFyazsKK+O+nCA8IHdlYWtcLWJyZWF0aFwtb2ZcLWFcLXNpY2tcLW1hbjsKK+O9viA8IGFcLWtpbmRcLW9mXC13b21hbicnc1wtZGlzZWFzZTsKK+mAmuioiuiHquWLleWMliA8IGNvbW11bmljYXRpb25zXC1hdXRvbWF0aW9uOwor47iyIDwgYVwta2luZFwtb2ZcLW1vdW50YWluXC1jYXR0bGU7Civjt68gPCBzbW9rZVwtYW5kXC1kdXN0XC1ldmVyeXdoZXJlOwor47a6IDwgdGhlXC1saWdodFwtb3JcLWdsb3dcLW9mXC1maXJlOwor47W9IDwgdGhlXC1zdHJlbmd0aFwtb2ZcLWFcLWN1cnJlbnQ7CivjsaUgPCB0aGVcLWV2aWxcLXNwaXJpdHNcLWNvbWVcLW91dDsKK+OwpiA8IHRvXC1icmVhdGhcLXdpdGhcLW1vdXRoXC1vcGVuOwor47CUIDwgYVwta2luZFwtb2ZcLWVkaWJsZVwtbXVzaHJvb207CivjsI4gPCBhXC13b29kZW5cLXBlc3RsZVwtb3JcLXJhbW1lcjsKK+OtmyA8IGFcLWtpbmRcLW9mXC1jbGltYmluZ1wtcGxhbnRzOwor46mgIDwgYVwtZmllcmNlXC1vclwtYmxvb2R5XC1iYXR0bGU7CivjppsgPCB0b1wtd2Fsa1wtaW5cLWFcLWNvbXBvc2VkXC13YXk7CivpnaLoh6jlm7Dpm6MgPCB0b1wtYmVcLWZhY2VkXC13aXRoXC1wcm9ibGVtczsKK+iDjOW9sSA8IGFcLXZpZXdcLW9mXC1zb21lYm9keScnc1wtYmFjazsKK+OgnSA8IGxvZnR5XC1hbmRcLXN0ZWVwXC1tb3VudGFpbnM7CivjoJAgPCBoaWdoXC1hbmRcLXBvaW50ZWRcLW1vdW50YWluOwor456aIDwgdG9cLXBpbGVcLXVwXC1sYXllclwtYnlcLWxheWVyOwor45yvIDwgYVwtd29yZFwtdG9cLWRlc2lnbmF0ZVwtd29tYW47CivjnK4gPCB0b1wtZ29cLWJleW9uZFwtbm9ybWFsXC1saW1pdDsKK+S4jeWLmeato+alrSA8IG5vdFwtZW5nYWdlXC1pblwtaG9uZXN0XC13b3JrOwor45qTIDwgdGllXC1iZWFtc1wtb2ZcLWFcLXNtYWxsXC1ib2F0Owor54uh6LO0IDwgdG9cLWRlbnlcLVwodGhyb3VnaFwtc29waGlzbVwpOwor45iMIDwgdG9cLWxhdWdoXC13aXRob3V0XC1zdG9wcGluZzsKK+OXpiA8IGFcLWxvdWRcLWFuZFwtY29uZnVzZWRcLW5vaXNlOwor45eaIDwgdmV4aW5nbHlcLXZlcmJvc2VcLW9yXC13b3JkeTsKK+OXlSA8IHRoZVwtY3Jvd2luZ1wtb2ZcLWFcLXBoZWFzYW50Owor45aEIDwgc291bmRcLW9mXC1jYWxsaW5nXC1jaGlja2VuczsKK+OVmiA8IGNsYXdzXC1vZlwtYmlyZHNcLW9yXC1hbmltYWxzOwor5oSb55CG5LiN55CGIDwgbG9va1wtY29sZFwtYW5kXC1pbmRpZmZlcmVudDsKK+OQsyA8IGhpZ2hcLWFuZFwtbGV2ZWxcLW9uXC10aGVcLXRvcDsKK+iuiuizoyA8IHNlbGxcLW9mZlwtXChvbmUnJ3NcLXByb3BlcnR5XCk7CivkuIvlt6XlpKsgPCB0b1wtcHV0XC1pblwtdGltZVwtYW5kXC1lbmVyZ3k7Civmsbros70gPCBmaW5hbHNcLVwob2ZcLWFcLWNvbXBldGl0aW9uXCk7Civmnb/mm7ggPCB3cml0aW5nXC1vblwtdGhlXC1ibGFja2JvYXJkOwor54+A5pavIDwgcGVydGhcLVwoY2l0eVwtaW5cLWF1c3RyYWxpYVwpOwor5pS55ZaE6YCa6KiKIDwgdG9cLWltcHJvdmVcLWNvbW11bmljYXRpb25zOwor57i95Y+D6KyA6ZW3IDwgXChtaWxpdGFyeVwpXC1jaGllZlwtb2ZcLXN0YWZmOwor5oSb5oaQIDwgc2hvd1wtdGVuZGVyXC1hZmZlY3Rpb25cLWZvcjsKK+aatOa8siA8IHJpc2VcLXN1ZGRlbmx5XC1hbmRcLXNoYXJwbHk7CivpjITlhbEgPCB0b1wtdGFrZVwtZG93blwtYVwtY29uZmVzc2lvbjsKK+acrOWutiA8IGFcLW1lbWJlclwtb2ZcLXRoZVwtc2FtZVwtY2xhbjsKK+mdouiHqCA8IGJlXC1mYWNlZFwtd2l0aFwtXChhXC1wcm9ibGVtXCk7Civog4zkv6Hmo4TnvqkgPCBicmVha1wtZmFpdGhcLXdpdGhcLXNvbWVib2R5Owor5YC85b6X5rOo5oSP55qE5pivIDwgaXQnJ3NcLXdvcnRoXC1ub3RpbmdcLXRoYXRcLlwuXC47Civot6jlnIvlhazlj7ggPCB0cmFuc25hdGlvbmFsXC1jb3Jwb3JhdGlvbjsKK+aXpeacrOS6uiA8IGphcGFuZXNlXC1wZXJzb25cLW9yXC1wZW9wbGU7CivlhbHlkozpu6jkurogPCBhXC1yZXB1YmxpY2FuXC1wYXJ0eVwtbWVtYmVyOwor5rGg5rmvIDwgbGFyZ2VcLXBvb2xcLWluXC1hXC1iYXRoaG91c2U7CivnhKHpmZDmnJ8gPCB1bmxpbWl0ZWRcLVwodGltZVwpXC1kdXJhdGlvbjsKK+eNjuWLtSA8IHJld2FyZFwtXChhc1wtZW5jb3VyYWdlbWVudFwpOwor6aCG5beuIDwgXCh0cmFkZVwtb3JcLWJ1ZGdldFwpXC1zdXJwbHVzOwor55Kw55CD5a6a5L2N57O757WxIDwgZ2xvYmFsXC1wb3NpdGlvbmluZ1wtc3lzdGVtOwor5Yid6YG4IDwgXCh1c1wpXC1wcmltYXJpZXNcLVwoZWxlY3Rpb25cKTsKK+W4leiYreWNoSA8IHBhbGFua2FcLVwoYVwtcGVyc29uYWxcLW5hbWVcKTsKK+WgsemKtyA8IHN1Ym1pdFwtYW5cLWV4cGVuc2VcLWFjY291bnQ7CivonIAgPCBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXN0YXRlOwor5rSbIDwgcml2ZXJcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor5Y+UIDwgZmF0aGVyJydzXC15b3VuZ2VyXC1icm90aGVyOwor57W5IDwga2luZFwtb2ZcLXRoaWNrXC1zdGlmZlwtc2lsazsKK+e9qSA8IGJhc2tldFwtZm9yXC1jYXRjaGluZ1wtZmlzaDsKK+WktyA8IGFuY2llbnRcLWJhcmJhcmlhblwtdHJpYmVzOwor56CwIDwgc291bmRcLW9mXC1jcmFzaGluZ1wtc3RvbmVzOwor5ZOOIDwgaW50ZXJqZWN0aW9uXC1vZlwtc3VycHJpc2U7CivmnJQgPCBmaXJzdFwtZGF5XC1vZlwtbHVuYXJcLW1vbnRoOwor5o+jIDwgcHV0XC10aGluZ3NcLXVuZGVyXC1jbG90aGVzOwor5bWLIDwgb21laVwtbW91bnRhaW5cLWluXC1zaWNodWFuOwor57yJIDwgdG9cLXNld1wtaW5cLWNsb3NlXC1zdGl0Y2hlczsKK+WZtiA8IHVzZWRcLWluXC10cmFuc2xpdGVyYXRpb25zOwor5o6wIDwgdG9cLWJyZWFrXC13aXRoXC1ib3RoXC1oYW5kczsKK+mchiA8IGFcLXN1ZGRlblwtcGVhbFwtb2ZcLXRodW5kZXI7CivmvLMgPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1oZW5hbjsKK+W3syA8IHNpeHRoXC1vZlwtdHdlbHZlXC1icmFuY2hlczsKK+WXnSA8IGNhY2tsaW5nXC1vZlwtZm93bHNcLXRvXC1nYWc7Civlp5ggPCBpbGxpY2l0XC1zZXh1YWxcLXJlbGF0aW9uczsKK+mcjyA8IGZhbGxpbmdcLW9mXC1zbm93XC1hbmRcLXJhaW47Civpg7ggPCBjb3VudHlcLWluXC1oZWJlaVwtcHJvdmluY2U7CivlkaYgPCB0aGVcLWJsZWF0aW5nXC1vZlwtdGhlXC1kZWVyOwor5o6uIDwgdG9cLWJlYXJcLW9uXC10aGVcLXNob3VsZGVyczsKK+iOhiA8IGFcLWtpbmRcLW9mXC1sZWdlbmRhcnlcLXRyZWU7CivpmKEgPCBmb290cGF0aHNcLWJldHdlZW5cLWZpZWxkczsKK+m4qiA8IHNwZWNpZXNcLW9mXC10YWl3YW5cLXBpZ2VvbjsKK+awkCA8IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtdHJpYmU7CivlkaQgPCBwdXJpbmVcLWluXC1jaGVtXC5cLWNvbXBvdW5kOwor5ayXIDwgc3VjY2Vzc2lvblwtdG9cLXRoZVwtdGhyb25lOwor6KePIDwgbWVldFwtb3JcLXNlZVwtdW5leHBlY3RlZGx5Owor5r+uIDwgY291bnR5XC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6YO0IDwgY291bnR5XC1pblwtaHVuYW5cLXByb3ZpbmNlOwor6L2+IDwgbG93XC1yZWFyXC1wb3J0aW9uXC1vZlwtY2FydDsKK+eoniA8IGdyYWluXC1yZWFkeVwtZm9yXC1ncmluZGluZzsKK+mDpyA8IGNvdW50eVwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+i5vCA8IHdlYmJlZFwtZmVldFwtb2ZcLXdhdGVyZm93bDsKK+eUkSA8IGJvaWxlclwtZm9yXC1zdGVhbWluZ1wtcmljZTsKK+WmlyA8IHdpZmVcLW9mXC1tb3RoZXInJ3NcLWJyb3RoZXI7CivmtaAgPCBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1odWJlaTsKK+mzlCA8IHN3aW1taW5nXC1ibGFkZGVyXC1vZlwtZmlzaDsKK+evjCA8IGFuY2llbnRcLW11c2ljXC1pbnN0cnVtZW50Owor56eVIDwgZW1wdHlcLWdyYWluXC1vclwtcmljZVwtaHVzazsKK+eQmiA8IG9ybmFtZW50YWxcLWdlbXNcLWZvclwtYmVsdDsKK+mytSA8IGNyeXB0b2JyYW5jaHVzXC1qYXBvbmljdXM7CivoiaggPCBsb25nXC1hbmRcLW5hcnJvd1wtd2FyXC1ib2F0Owor5raRIDwgcml2ZXJcLWluXC1zaGFuc2lcLXByb3ZpbmNlOwor6ZupIDwgb2ZmZXJcLXNhY3JpZmljZVwtZm9yXC1yYWluOwor5L2+IDwgYVwtcm93XC1vclwtZmlsZVwtb2ZcLWRhbmNlcnM7CivnvIIgPCB0aGVcLXdvb2ZcLW9mXC1hXC13b3ZlblwtaXRlbTsKK+iJtCA8IHRoZVwtY291bnRlbmFuY2VcLWNoYW5naW5nOwor5ruPIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaGViZWk7CivkurrmsJHluaMgPCBjaGluZXNlXC11bml0XC1vZlwtY3VycmVuY3k7Civppqzlj6/npo/pn7MgPCBnb3NwZWxcLWFjY29yZGluZ1wtdG9cLW1hcms7CivmtYHmsJPnvaogPCB0aGVcLWNyaW1lXC1vZlwtaG9vbGlnYW5pc207Civln47pl5wgPCBhcmVhXC1vdXRzaWRlXC1hXC1jaXR5XC1nYXRlOwor6YyE6Z+z5qmfIDwgXCh0YXBlXClcLXJlY29yZGluZ1wtbWFjaGluZTsKK+mBi+eulyA8IFwobWF0aGVtYXRpY2FsXClcLW9wZXJhdGlvbjsKK+W3numVtyA8IGdvdmVybm9yXC1cKG9mXC1hXC11c1wtc3RhdGVcKTsKK+avj+W5tOS4gOW6piA8IG9uY2VcLWFcLXllYXJcLVwoZXZlcnlcLXllYXJcKTsKK+Wfn+WQjeiou+WGiiA8IGRvbWFpblwtbmFtZVwtcmVnaXN0cmF0aW9uOwor5Luj5LmL5LulIDwgXChoYXNcLWJlZW5cKVwtcmVwbGFjZWRcLXdpdGg7Civpg6jlsawgPCBhZmZpbGlhdGVkXC10b1wtYVwtbWluaXN0cnk7CivlvJXmk44gPCBlbmdpbmVcLVwodHJhbnNsaXRlcmF0aW9uXCk7CivlhbXosrTnpZ7pgJ8gPCBzcGVlZFwtaXNcLXByZWNpb3VzXC1pblwtd2FyOwor6K6K5oiy5rOVIDwgcGVyZm9ybVwtY29uanVyaW5nXC10cmlja3M7CivlpJrpgorlkIjkvZwgPCBtdWx0aWxhdGVyYWxcLWNvb3BlcmF0aW9uOwor55m86KGM6aGNIDwgXChwZXJpb2RpY2FsXClcLWNpcmN1bGF0aW9uOwor55m76KiYIDwgdG9cLXJlZ2lzdGVyXC1cKG9uZScnc1wtbmFtZVwpOwor5Y2B5LiJ5pelIDwgdGhpcnRpZXRoXC1kYXlcLW9mXC1hXC1tb250aDsKK+W5gOmmluWumueVjOespiA8IHN0YXJ0XC1vZlwtZnJhbWVcLWRlbGltaXRlcjsKK+aKleaUvuW4guWgtCA8IHRvXC1wdXRcLXN0aFwtb25cLXRoZVwtbWFya2V0Owor5qmf57WEIDwgZmxpZ2h0XC1jcmV3XC1cKG9uXC1hXC1wbGFuZVwpOwor6beeIDwgdGhlXC10dXJxdW9pc2VcLWtpbmdmaXNoZXI7CivkuIvljYrouqsgPCBsb3dlclwtaGFsZlwtb2ZcLW9uZScnc1wtYm9keTsKK+m1gSA8IG15Y3RpY29yYXhcLXByYXNpbm9zY2VsZXM7CivojZLnhKHkurrnhZkgPCBkZXNvbGF0ZVwtYW5kXC11bmluaGFiaXRlZDsKK+musCA8IGFcLXNtYWxsXC1raW5kXC1vZlwtc3R1cmdlb247Civpgbzlr6cgPCBsaWFvbmluZ1wtcHJvdmluY2VcLFwtY2hpbmE7Civpq6AgPCBzaGF2ZVwtaGVhZFwtYXNcLXB1bmlzaG1lbnQ7CivpqJUgPCBuYW1lXC1vZlwtYVwtZmFidWxvdXNcLWhvcnNlOwor54Wn5bi4IDwgXChidXNpbmVzc1wsXC1ldGNcKVwtYXNcLXVzdWFsOwor6Z+CIDwgYVwtc2FkZGxlXC1mbGFwXC5cLXRyYXBwaW5nczsKK+WboOeJuee2suaPkOS+m+WVhiA8IGludGVybmV0XC1zZXZpY2VcLXByb3ZpZGVyOwor57SE57+w56aP6Z+zIDwgZ29zcGVsXC1hY2NvcmRpbmdcLXRvXC1qb2huOwor6Zm0IDwgYVwtcGFyYXBldFwtb25cLWFcLWNpdHlcLXdhbGw7Civpl6QgPCB3YWxsXC1hcm91bmRcLW1hcmtldFwtcGxhY2U7CivljbDmrZDoqp7oqIAgPCBpbmRvXC1ldXJvcGVhblwtXChsYW5ndWFnZVwpOwor5pKr5pG4IDwgZ2VudGx5XC1jYXJlc3NcLWFuZFwtc3Ryb2tlOwor5YiH5pa3IDwgY3V0XC1vZmZcLVwoYVwtc3VwcGx5XCxcLWV0Y1wuXCk7CivntrLntaHmk43kvZzns7vntbEgPCBuZXR3b3JrXC1vcGVyYXRpbmdcLXN5c3RlbTsKK+e/kuS7peeCuuW4uCA8IGJlXC1hY2N1c3RvbWVkXC1vclwtdXNlZFwtdG87CivlhbXojZLppqzkuoIgPCB0dXJtb2lsXC1hbmRcLWNoYW9zXC1vZlwtd2FyOwor5bu65Yi2IDwgb3JnYW5pemF0aW9uYWxcLXN0cnVjdHVyZTsKK+S4jeaJv+iqjeS4u+e+qSA8IHBvbGljeVwtb2ZcLW5vbnJlY29nbml0aW9uOwor6YCA5b25IDwgcmV0aXJlXC1mcm9tXC10aGVcLW1pbGl0YXJ5Owor6YGV5Y+NIDwgdG9cLXZpb2xhdGVcLVwoYVwtbGF3XCxcLWVcLmdcLlwpOwor5bmr5buaIDwgaGVscFwtaW5cLXRoZVwtbWVzc1wta2l0Y2hlbjsKK+S4jeWLleiBsuiJsiA8IG1haW50YWluXC1vbmUnJ3NcLWNvbXBvc3VyZTsKK+a1rum7numBi+eulyA8IGZsb2F0aW5nXC1wb2ludFwtb3BlcmF0aW9uOwor6LSRIDwgXDxhYmJydlw+XC1qaWFuZ3hpXC1wcm92aW5jZTsKK+ijnOeohSA8IHBheVwtYVwtdGF4XC1vbmVcLWhhc1wtZXZhZGVkOwor6KihIDwgdG9cLWNoYW50XC10b1wtbW9hblwtdG9cLXNpZ2g7CivopbLmk4ogPCBcKG1ha2VcLWFcKVwtc3VycHJpc2VcLWF0dGFjazsKK+WFp+aUv+mDqOmVtyA8IG1pbmlzdGVyXC1vZlwtdGhlXC1pbnRlcmlvcjsKK+eZvea3qCA8IFwob2ZcLXNraW5cKVwtZmFpclwtYW5kXC1jbGVhcjsKK+ibgSA8IHBvbXBvbmlhXC1tYWN1bGF0aW9jb2xsaXM7Civlt6Hmn6UgPCB0b1wtZ29cLWFyb3VuZFwtYW5kXC1pbnNwZWN0Owor6JiAIDwgZmFsbGluZ1wtbGVhdmVzXC1hbmRcLWJhcmtzOwor6Je6IDwgcnVzaFwtdXNlZFwtaW5cLW1ha2luZ1wtbWF0czsKK+WFteabuCA8IGFcLWJvb2tcLW9uXC10aGVcLWFydFwtb2ZcLXdhcjsKK+iPtCA8IHNtYWxsXC1idWRkaGlzdFwtbW9uYXN0ZXJ5Owor6by76Yed55mC5rOVIDwgbm9zZVwtYWN1cHVuY3R1cmVcLXRoZXJhcHk7CivojpQgPCBmcml0aWxsYXJpYVwtdmVydGljaWxsYXRhOwor6Iy8IDwgY2hyeXNhbnRoZW11bVwtY29yb25hcml1bTsKK+iJpSA8IGFuXC1vYXJcLW9yXC1wYWRkbGVcLlwtdG9cLXJvdzsKK+eUoumKtyA8IHByb2R1Y3Rpb25cLWFuZFwtbWFya2V0aW5nOwor6IaZIDwgY2FsbG91c1wtc2tpblwtb25cLXRoZVwtZmVldDsKK+iFnCA8IHF1aWNrZW5pbmdcLW9mXC10aGVcLWZvZXR1czsKK+iCsyA8IHRoZVwtY29ybmVyc1wtb2ZcLXRoZVwtbW91dGg7Civpl4zlsL4gPCBhcHBlbmRpeFwtXChpblwtaHVtYW5cLWJvZHlcKTsKK+e/myA8IGxvb2tcLW9mXC1ydW1wbGVkXC1mZWF0aGVyczsKK+e9nSA8IG5ldFwtZm9yXC1jYXRjaGluZ1wtcmFiYml0czsKK+W5heWToSA8IGFcLWNvdW50cnknJ3NcLXN1cmZhY2VcLWFyZWE7CivomZvmk6znkrDlooMgPCB0aGVvcmhldGljYWxcLWVudmlyb25tZW50Owor5pKl5LuYIDwgYXBwcm9wcmlhdGVcLXN1bVwtb2ZcLW1vbmV5Owor57eMIDwgdGFzc2Vsc1wtaGFuZ2luZ1wtZnJvbVwtaGF0Owor5a+G5YiH5rOo5oSPIDwgY2xvc2VcLWF0dGVudGlvblwtXCh0b1wtc3RoXCk7CivlnIvnh58gPCBzdGF0ZVwtcnVuXC1cKGNvbXBhbnlcLFwtZXRjXCk7CivlnJblg4/nlKjmiLbku4vpnaIgPCBncmFwaGljYWxcLXVzZXJcLWludGVyZmFjZTsKK+etuCA8IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLWhvbmFuOwor6Z2i5Zqu5bCN6LGh6Kqe6KiAIDwgb2JqZWN0XC1vcmllbnRlZFwtbGFuZ3VhZ2U7CivmkI3lpLEgPCBhXC1cKGZpbmFuY2lhbFwsXC1ldGNcLlwpXC1sb3NzOwor6L6m5YWsIDwgaGFuZGxlXC1vZmZpY2lhbFwtYnVzaW5lc3M7CivmpYrnmb7nv7DlpKflrbggPCBicmlnaGFtXC15b3VuZ1wtdW5pdmVyc2l0eTsKK+eSoCA8IGFcLXBpZWNlXC1vZlwtcHJlY2lvdXNcLWphZGU7CivnjrYgPCBuYW1lXC1vZlwtb25lXC1raW5kXC1vZlwtamFkZTsKK+eNniA8IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZG9nOwor5LiN5ouY5LiA5qC8IDwgbm90XC1zdGlja1wtdG9cLW9uZVwtcGF0dGVybjsKK+S9memchyA8IFwoZWFydGhxdWFrZVwpXC1hZnRlcnNob2NrczsKK+eVmueulSA8IGFcLWJhbWJvb1wtb3JcLXdpY2tlclwtc2Nvb3A7CivngaggPCB0aGVcLXJpdmVyXC1nYW5cLWluXC1qaWFuZ3hpOwor5r+yIDwgbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaHVuYW47Civlrozlhajmh4LlvpcgPCB0b1wtdW5kZXJzdGFuZFwtY29tcGxldGVseTsKK+eqgemhryA8IG1ha2VcLXNvbWV0aGluZ1wtc3RhbmRcLW91dDsKK+S4jeW5s+WJh+mztCA8IHdoZXJlXC10aGVyZVwtaXNcLWluanVzdGljZTsKK+a0pyA8IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWhvbmFuOwor5qC45LiN5pO05pWjIDwgbnVjbGVhclwtbm9ucHJvbGlmZXJhdGlvbjsKK+aPoeWKmyA8IFwoc3RyZW5ndGhcLW9mXC1vbmUnJ3NcKVwtZ3JpcDsKK+aopyA8IHphbnRob3h5bHVtXC1haWxhbnRob2lkZXM7CivmpqQgPCBwZXJjaFwtZm9yXC1mb3dsc1wtcm9vc3RcLW9uOwor5YWn5pS/6YOoIDwgbWluaXN0cnlcLW9mXC10aGVcLWludGVyaW9yOwor5YWx5ZCM6ZaY6YGT5LuL6Z2iIDwgY29tbW9uXC1nYXRld2F5XC1pbnRlcmZhY2U7Civmk7rohKvljbHmqZ8gPCB0b1wtYnJlYWtcLW91dFwtb2ZcLWFcLWNyaXNpczsKK+aggiA8IGFcLWtpbmRcLW9mXC1ldmVyZ3JlZW5cLXRyZWU7Civlr4zluIPos7TnibkgPCBmdWxsYnJpZ2h0XC1cKHNjaG9sYXJzaGlwXCk7Civml6EgPCBjaG9rZVwtb25cLXNvbWV0aGluZ1wtZWF0ZW47Civppqzoo6EgPCBtYWxpXC1cKG5hbWVcLW9mXC1hXC1jb3VudHJ5XCk7CivmkosgPCB0b1wtcnViXC1iZXR3ZWVuXC10aGVcLWhhbmRzOwor55eF5oWLIDwgbW9yYmlkXC1vclwtYWJub3JtYWxcLXN0YXRlOwor5o6n5Yi2IDwgdG9cLVwoaGF2ZVwpXC1jb250cm9sXC1cKG92ZXJcKTsKK+aSpeS6guWPjeatoyA8IGJyaW5nXC1vcmRlclwtb3V0XC1vZlwtY2hhb3M7Civmg4wgPCB0b1wtYmVhclwtYVwtZ3J1ZGdlXC1hZ2FpbnN0Owor5L2z6IO9IDwgY2Fub25cLVwoamFwYW5lc2VcLWNvbXBhbnlcKTsKK+eXheWutiA8IGFcLXBhdGllbnRcLWFuZFwtaGlzXC1mYW1pbHk7CivnlpHmg5EgPCBcKGFcLXNlbnNlXC1vZlwpXC11bmNlcnRhaW50eTsKK+W0tiA8IG5hbWVcLW9mXC1hXC1sZWdlbmRhcnlcLWhpbGw7CivltIEgPCBhXC1wbGFjZVwtaW5cLXRhaXdhblwtdGFpbmFuOwor5bCeIDwgZnVlbFwtdXNlZFwtZm9yXC1zYWNyaWZpY2VzOwor54Sh6buo5rS+IDwgcG9saXRpY2FsbHlcLXVuYWZmaWxpYXRlZDsKK+aJk+eJjCA8IHRvXC1wbGF5XC1tYWhqb25nXC1vclwtY2FyZHM7CivlpZ4gPCB0aGVcLXN0cmlkZVwtbWFkZVwtYnlcLWFcLW1hbjsKK+WklyA8IHRvXC10dXJuXC1vdmVyXC13aGVuXC1hc2xlZXA7Civororpm7vnq5kgPCBcKHRyYW5zZm9ybWVyXClcLXN1YnN0YXRpb247CivlgZrlrqIgPCB0b1wtYmVcLWFcLWd1ZXN0XC1vclwtdmlzaXRvcjsKK+WuieesrOaWr+WxsSA8IHRoZVwtYW5kZXNcLW1vdW50YWluXC1yYW5nZTsKK+WHnCA8IHNoaXZlclwtd2l0aFwtY29sZFwtb3JcLWZlYXI7Civlg7AgPCBhbmNpZW50XC1hYm9yaWdpbmFsXC10cmliZTsKK+eZvueFieaIkOmLvCA8IGJlXC10ZW1wZXJlZFwtaW50b1wtYVwtc3RlZWw7CivooYzkvb8gPCBleGVyY2lzZVwtXChhXC1yaWdodFwsXC1ldGNcLlwpOwor562G5oy6IDwgXChzdGFuZGluZ1wpXC12ZXJ5XC1zdHJhaWdodDsKK+WIhuS9iOW8j+e1kOaniyA8IGRpc3RyaWJ1dGVkXC1hcmNoaXRlY3R1cmU7CivlronnpZ4gPCBjYWxtXC1cKHNvb3RoZVwpXC10aGVcLW5lcnZlczsKK+iBs+iCqSA8IHRvXC1zaHJ1Z1wtb25lJydzXC1zaG91bGRlcnM7CivkuoMgPCBuYW1lXC1vZlwtYVwta2luZFwtb2ZcLWFuaW1hbDsKK+S5uiA8IHBhaW50aW5nXC10b29sXC1wbGFjZVwtbmFtZTsKK+S5tiA8IGtvcmVhblwtcGxhY2VcLW5hbWVcLXBob2xoYTsKK+S1giA8IHRvXC1ncmluZFwtd2hlYXRcLXRvXC1wb3dkZXI7CivksrMgPCBiaXJkc1wtZmx5aW5nXC11cFwtYW5kXC1kb3duOwor5ZyL5YuZ5qyh5Y2/IDwgdW5kZXJcLXNlY3JldGFyeVwtb2ZcLXN0YXRlOwor5LKbIDwgYW5cLWFuY2llbnRcLW5hbWVcLWZvclwtdHVuYTsKK+SyhCA8IGFcLWtpbmRcLW9mXC1maWlzaFwtaW5cLW9jZWFuOwor5LCNIDwgYVwta2luZFwtb2ZcLWRhcmtcLXJlZFwtcGFpbnQ7CivksIYgPCBiZWF1dGlmdWxcLWFuZFwtaGFpcnlcLW1hbmU7Civkr5YgPCB0aGVcLW11c2NsZXNcLW9mXC10aGVcLXRoaWdoOwor5Y2K5L+h5Y2K55aRIDwgaGFsZlwtYmVsaWV2ZVwsXC1oYWxmXC1kb3VidDsKK+SssyA8IGNha2VzXC1tYWRlXC1vZlwtcmljZVwtZmxvdXI7Civkq68gPCB0b1wtdGFrZVwtYVwtY2FzdWFsXC1sb29rXC1hdDsKK+a3seepuiA8IGRlZXBcLXNwYWNlXC1cKG91dGVyXC1zcGFjZVwpOwor5KqAIDwga25vd25cLXRvZ2V0aGVyXC1hc1wtc2FkZGxlOwor5KiSIDwgc291bmRcLW9mXC10aGVcLXdhdGVyXC1kcm9wczsKK+WUkOe0jSA8IHRhbm5lclwtXChlbmdsaXNoXC1zdXJuYW1lXCk7CivkpqggPCBhXC1kb29yXC1jdXJ0YWluXC1vclwtc2NyZWVuOwor5KSvIDwgY29udGFpbmVyXC1mb3JcLXRoaWNrXC1zb3VwOwor5pyo5LmD5LyKIDwgbXVtbXlcLVwocHJlc2VydmVkXC1jb3Jwc2VcKTsKK+ShjSA8IHRoZVwtbGluY2hcLXBpblwtb2ZcLWFcLXNoZWVsOwor5J+XIDwgdG9cLXN0YW5kXC1mb3JcLWFcLWxvbmdcLXRpbWU7Civkn4MgPCB0b1wtbW92ZVwtb3JcLW1hcmNoXC1zd2lmdGx5Owor5Jq2IDwgdG9cLXNjb2xkXC1pblwtYVwtbG91ZFwtdm9pY2U7CivkmZwgPCBsZWdlbmRhcnlcLW1vdW50YWluXC1kZWl0eTsKK+SZiCA8IGFcLWxvb3NlXC1nYXJtZW50XC1vclwtY2xvYWs7CivkmYcgPCBjbG90aGVzXC1vZlwtY29hcnNlXC1mYWJyaWM7Civkl4IgPCBkaWVteWN0eWx1c1wtcHlycmhvZ2FzdGVyOwor5JSjIDwgYVwtdHJpYmVcLWluXC1hbmNpZW50XC10aW1lczsKK+STtCA8IGVkaWJsZVwtZnVuZ3VzXC1mcm9tXC10cmVlczsKK+SRjiA8IHNvdXBcLW9mXC1waWcnJ3NcLWludGVzdGluZXM7CivkkLsgPCBiaWdcLXBpZWNlc1wtb2ZcLWRyaWVkXC1tZWF0Owor5JC5IDwgcGVyc2VydmVkXC1hbmRcLWRyaWVkXC1tZWF0Owor5JCwIDwgdG9cLW9mZmVyXC1mb29kXC1hc1wtdHJpYnV0ZTsKK+WkluS6pOmDqCA8IGZvcmVpZ25cLWFmZmFpcnNcLW1pbmlzdHJ5Owor5JCCIDwgZmF0XC1vZlwtYW5pbWFsc1wtb3JcLXBsYW50czsKK+SOtSA8IHRvXC1sb29rXC1zdHJhaWdodFwtZm9yd2FyZDsKK+SKkCA8IGZsdWZmeVwtc3R1ZmZlZFwtZHVtcGxpbmdzOwor5IqNIDwgdGhpY2tcLWNvbmdlZVwtb3JcLXBvcnJpZGdlOwor5oyB5LiN5ZCM5pS/6KaLIDwgXChwb2xpdGljYWxseVwpXC1kaXNzZW50aW5nOwor5IePIDwgdG9cLXBpbGVcLW9uZVwtdXBvblwtYW5vdGhlcjsKK+SEnCA8IGhhcHBpbmVzc1wtYW5kXC13ZWxsXC1iZWluZzsKK+SEliA8IHVzZWRcLWluXC1uYW1lXC1vZlwtYVwtcGVyc29uOwor5IOiIDwgbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1sb2Z0eTsKK+SBhyA8IHRvXC1sb29rXC1mb3JcLWFcLXNob3J0XC10aW1lOwor5ICrIDwgbmFycm93XC1hbmRcLWRpbVwtZXllXC1zaWdodDsKK+O/uiA8IGp1dHRpbmdcLW9uXC10aGVcLWVwaWRlcm1pczsKK+WRiOiriyA8IHRvXC1zdWJtaXRcLVwodG9cLXN1cGVyaW9yc1wpOwor472SIDwgdGhlXC1jaGlsZHJlblwtb2ZcLWFcLXNpc3RlcjsKK+O8vyA8IHRoZVwtYnJpY2tcLXdhbGxcLW9mXC1hXC13ZWxsOwor47ybIDwgbG9uZ1wtbmVja2VkXC13aW5lXC12ZXNzZWxzOwor47uqIDwgYVwta2luZFwtb2ZcLWphZGVcLWZpbmVcLWphZGU7CivjtoUgPCBkcmllZFwtdXBcLW1vdW50YWluXC1jcmVla3M7CivkuIroqLQgPCBhcHBlYWxcLVwoYVwtanVkaWNpYWxcLWNhc2VcKTsKK+O1oiA8IGFcLW1hcnNoXC1pblwtYW5jaWVudFwtdGltZXM7CivjtLAgPCBhXC1yaXZlclwtaW5cLWFuY2llbnRcLXRpbWVzOwor5oe35b+1IDwgdG9cLWNoZXJpc2hcLXRoZVwtbWVtb3J5XC1vZjsKK+OzjSA8IGFcLXBsYWNlXC1pblwtYW5jaWVudFwtdGltZXM7Civjs4ogPCB0aGVcLWZsb3dpbmdcLW9mXC10aGVcLXdhdGVyOwor47KKIDwgdG9cLXVuZGVyc3RhbmRcLXRob3JvdWdobHk7CivjsL4gPCBzb25nc1wtb2ZcLXRoZVwtcGVvcGxlXC1vZlwt5qWaOwor47C9IDwgdG9cLWV4ZXJ0XC1vbmVzZWxmXC10b1wteWVsbDsKK+OvqyA8IGFcLXdhdHRsZVwtb3JcLWJhbWJvb1wtZmVuY2U7CivjrqYgPCBicmFuY2hlc1wtZ3Jvd2luZ1wtdXB3YXJkczsKK+eJuem7niA8IGNoYXJhY3RlcmlzdGljXC1cKGZlYXR1cmVcKTsKK+Wtl+avjSA8IGxldHRlclwtXChvZlwtdGhlXC1hbHBoYWJldFwpOwor46qbIDwgdG9cLXBvdW5kXC1yb2Nrc1wtdG9cLXBpZWNlczsKK+OqmSA8IHRvXC1nb1wtdG9cLXRoZVwtdmVyeVwtc291cmNlOwor46mtIDwgdG9cLWRpc3R1cmJcLW9yXC10b1wtYWdpdGF0ZTsKK+aLlOeBq+e9kOWFkiA8IGRldGFjaGFibGVcLXN0b3ZlXC1jaGltbmV5Owor5ZCM6KyAIDwgdG9cLWNvbnNwaXJlXC13aXRoXC1zb21lb25lOwor46GqIDwgdGhlXC12YXJuaXNoXC1vblwtdGhlXC1mbG9vcjsKK+OhpyA8IHRvXC1zdHJldGNoXC1vcGVuXC1wYWludGluZzsKK+OghyA8IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtcmlkZ2U7CivmoYPlnJIgPCB0YW95dWFuXC1cKGNpdHlcLWluXC10YWl3YW5cKTsKK+OcvyA8IG5hbWVcLW9mXC1hXC1maXNoXC1pblwtbGVnZW5kOwor5rGf6Z2iIDwgdGhlXC1zdXJmYWNlXC1vZlwtdGhlXC1yaXZlcjsKK+OXqSA8IHNvdW5kXC1vZlwtZW5kdXJlXC1jb2xkbmVzczsKK+OXpyA8IHRvXC1zY29sZFwtd2l0aFwtbG91ZFwtdm9pY2U7Civlj6TluIzoh5joqp4gPCBhbmNpZW50XC1ncmVla1wtXChsYW5ndWFnZVwpOwor45OhIDwgdGhlXC1taWRkbGVcLXBhcnRcLW9mXC1hXC1ib3c7CivjkKggPCBhXC1raW5kXC1vZlwtZmlzaFwtaW5cLWxlZ2VuZDsKK+mBsua1qeeUsCA8IGNoaW5lc2VcLWRlZmVuc2VcLW1pbmlzdGVyOwor56KR6aGNIDwgdGhlXC10b3BcLXBhcnRcLW9mXC1hXC10YWJsZXQ7CivkvLTlpY8gPCB0b1wtYWNjb21wYW55XC1cKG11c2ljYWxseVwpOwor5YyX5rqr5bi2IDwgdGhlXC1ub3J0aFwtdGVtcGVyYXRlXC16b25lOwor5omT6Zu76KmxIDwgdG9cLW1ha2VcLWFcLXRlbGVwaG9uZVwtY2FsbDsKK+WPs+e/vCA8IFwocG9saXRpY2FsbHlcKVwtcmlnaHRcLXdpbmc7CivmtZnmsZ8gPCB6aGVqaWFuZ1wtcHJvdmluY2VcLFwtY2hpbmE7CivkurrmsJHop6PmlL7ou40gPCBwZW9wbGUnJ3NcLWxpYmVyYXRpb25cLWFybXk7CivorZjoposgPCBrbm93bGVkZ2VcLWFuZFwtZXhwZXJpZW5jZTsKK+iyt+W4syA8IHRvXC1zaG93XC1yZXNwZWN0XC1cKGZvclwtc2JcKTsKK+aal+eurSA8IGF0dGFja1wtYnlcLWFcLWhpZGRlblwtZW5lbXk7Civmt7HlnLMgPCBzaGVuemhlblwtXChjaXR5XC1pblwtY2hpbmFcKTsKK+eoi+W6piA8IGRlZ3JlZVwtXChsZXZlbFwtb3JcLWV4dGVudFwpOwor5aSn6ZecIDwgXChyZWFjaFwtYVwpXC1jcml0aWNhbFwtcG9pbnQ7Civlvp7lpJbooajkvobnnIsgPCBsb29raW5nXC1mcm9tXC10aGVcLW91dHNpZGU7CivpoK3niYggPCBcKG5ld3NwYXBlcicnc1wpXC1mcm9udFwtcGFnZTsKK+WNg+e1suiQrOe4tyA8IGxpbmtlZFwtaW5cLWNvdW50bGVzc1wtd2F5czsKK+aYpeiBryA8IHNwcmluZ1wtZmVzdGl2ZWxcLWNvdXBsZXRzOwor5YWs55y+6Zu75L+h57ay6LevIDwgcHVibGljXC10ZWxlcGhvbmVcLW5ldHdvcms7CivkuqTmj5vomZvpm7vot68gPCBzd2l0Y2hlZFwtdmlydHVhbFwtY2lyY3VpdDsKK+S7peS+hiA8IHNpbmNlXC1cKGFcLXByZXZpb3VzXC1ldmVudFwpOwor6JOu6IqxIDwgbG90dXNcLVwoY29tcHV0ZXJcLWNvbXBhbnlcKTsKK+S4jeaXpSA8IHdpdGhpblwtdGhlXC1uZXh0XC1mZXdcLWRheXM7Civoq5Lop6MgPCBcKHJlYWNoXClcLWFuXC11bmRlcnN0YW5kaW5nOwor56C05Zyf5YW456auIDwgZ3JvdW5kXC1icmVha2luZ1wtY2VyZW1vbnk7CivmlZnlrbjmqZ/mp4sgPCBlZHVjYXRpb25hbFwtb3JnYW5pemF0aW9uOwor5LiN6YG65L2Z5YqbIDwgc3BhcmVcLW5vXC1wYWluc1wtb3JcLWVmZm9ydDsKK+ihqOekuuaVrOaEjyA8IHJlc3BlY3RmdWxcLFwtc2hvd1wtcmVzcGVjdDsKK+iTi+eroCA8IHRvXC1hZmZpeFwtYVwtc2VhbFwtXCh0b1wtc3RoXCk7CivmraLnl5vms5UgPCBtZXRob2RcLW9mXC1yZWxpZXZpbmdcLXBhaW47Civop7jpm7sgPCB0b1wtZ2V0XC1hblwtZWxlY3RyaWNcLXNob2NrOwor5Li75YuVIDwgXCh0b1wtdGFrZVwtdGhlXClcLWluaXRpYXRpdmU7Civot6/liqDnpo/pn7MgPCBnb3NwZWxcLWFjY29yZGluZ1wtdG9cLWx1a2U7CivoqLToqqogPCB0ZWxsXC1cKHRvXC1hbm90aGVyXC1wZXJzb25cKTsKK+e4vee1sSA8IHByZXNpZGVudFwtXChvZlwtYVwtY291bnRyeVwpOwor5aCx6aCtIDwgbWFzdGhlYWRcLVwob2ZcLWFcLW5ld3NwYXBlcjsKK+WNl+aymSA8IG5hbnNoYVwtXChzcHJhdGx5XClcLWlzbGFuZHM7CivpgJrpgZMgPCBcKGNvbW11bmljYXRpb25zXClcLWNoYW5uZWw7CivmlL/nuL4gPCBcKHBvbGl0aWNhbFwpXC1hY2hpZXZlbWVudHM7CivnnqUgPCB0YWtlXC1mbGVldGluZ1wtZ2xhbmNlXC1hdDsKK+W3niA8IGFkbWluaXN0cmF0aXZlXC1kaXZpc2lvbjsKK+WQpyA8IGVtcGhhdGljXC1maW5hbFwtcGFydGljbGU7Civmn5AgPCBjZXJ0YWluXC10aGluZ1wtb3JcLXBlcnNvbjsKK+elqCA8IHNsaXBcLW9mXC1wYXBlclwtb3JcLWJhbWJvbzsKK+iAtiA8IHVzZWRcLWluXC10cmFuc2xpdGVyYXRpb247CivljpggPCB0aG91c2FuZHRoXC1wYXJ0XC1vZlwtdGFlbDsKK+W9rSA8IG5hbWVcLW9mXC1hbmNpZW50XC1jb3VudHJ5Owor6IK0IDwgY29va2VkXC1vclwtcHJlcGFyZWRcLW1lYXQ7Civkv44gPCBjaG9wcGluZ1wtYm9hcmRcLW9yXC1ibG9jazsKK+a3riA8IHJpdmVyXC1pblwtYW5odWlcLXByb3ZpbmNlOwor5ZOmIDwgb2hcP1wtcmVhbGx5XD9cLWlzXC10aGF0XC1zb1w/Owor6ZSkIDwgYmFsYW5jZVwtd2VpZ2h0XC1vblwtc2NhbGU7Civku54gPCBhbmNpZW50XC11bml0XC1vZlwtbWVhc3VyZTsKK+iKrSA8IHBsYW50YWluXC1vclwtYmFuYW5hXC1wYWxtOwor56OKIDwgcGlsZVwtb2ZcLXJvY2tzXC1vclwtc3RvbmVzOwor5ZG4IDwgZXhwcmVzc2lvblwtb2ZcLXJlcHJpbWFuZDsKK+aLtyA8IHRvcnR1cmVcLWFuZFwtaW50ZXJyb2dhdGU7Civmir8gPCBwdWNrZXJcLXVwXC1saXBzXC1pblwtc21pbGU7CivljYkgPCBnZW5lcmFsXC10ZXJtXC1mb3JcLXBsYW50czsKK+mruyA8IGhhaXJcLXJvbGxlZFwtdXBcLWluXC1hXC1idW47Civoo4YgPCBjcm90Y2hcLW9yXC1zZWF0XC1vZlwtcGFudHM7CivomJEgPCB0eXBlXC1vZlwtZWRpYmxlXC1tdXNocm9vbTsKK+WSvyA8IGRlc2NyaXB0aXZlXC1vZlwtY3JlYWtpbmc7Civnr74gPCBiYW1ib29cLXNwbGludHNcLW9yXC1zbGF0czsKK+a3hyA8IHJpdmVyXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6JORIDwgcmFpblwtY29hdFwtbWFkZVwtb2ZcLXN0cmF3Owor5qqsIDwgdHlwZVwtb2ZcLWxvY3VzdFwtb3JhY2FjaWE7Civmt5kgPCBndXJnbGluZ1wtc291bmRcLW9mXC13YXRlcjsKK+aukyA8IGRyZXNzXC1jb3Jwc2VcLWZvclwtYnVyaWFsOwor55ClIDwgamV3ZWxcLWluXC1zaGFwZVwtb2ZcLXRpZ2VyOwor5r2eIDwgcml2ZXJcLWluXC1ub3J0aGVyblwtY2hpbmE7Civpho0gPCBlc3NlbnRpYWxcLW9pbFwtb2ZcLWJ1dHRlcjsKK+WmryA8IHdpdmVzXC1vZlwtb25lJydzXC1icm90aGVyczsKK+W4jyA8IGN1cnRhaW5cLXRoYXRcLWZvcm1zXC13YWxsOwor55OSIDwgY2VyZW1vbmlhbFwtbGliYXRpb25cLWN1cDsKK+eRlyA8IGxhcmdlXC1yaW5nXC1vZlwtZmluZVwtamFkZTsKK+a2niA8IHJpdmVyXC1pblwtaGViZWlcLXByb3ZpbmNlOwor54i7IDwgZGlhZ3JhbXNcLWZvclwtZGl2aW5hdGlvbjsKK+mUnyA8IGFuY2llbnRcLXRyZWFzdXJlZFwtc3dvcmQ7CivoipcgPCBmcmFncmFudFwtc21lbGxcLW9mXC1ncmFpbjsKK+alpiA8IGFcLWxhc3RcLWZvclwtbWFraW5nXC1zaG9lczsKK+iIgSA8IGNhcnJ5XC1vblwtb25lJydzXC1zaG91bGRlcjsKK+a7oCA8IHJpdmVyXC1pblwtaHViZWlcLXByb3ZpbmNlOwor5b+M5oGoIDwgaGF0ZVwtXChkdWVcLXRvXC1lbnZ5XCxcLWV0Y1wpOwor6Zu554G9IDwgZGlzYXN0ZXJcLWNhdXNlZFwtYnlcLWhhaWw7Civlh7roqKogPCB2aXNpdFwtYVwtZm9yZWlnblwtY291bnRyeTsKK+aguOatpuWZqOadkOaWmSA8IG51Y2xlYXJcLXdlYXBvblwtbWF0ZXJpYWw7CivpgJroqIrooYzmpa0gPCBjb21tdW5pY2F0aW9uc1wtaW5kdXN0cnk7CivljJfljYrnkIMgPCB0aGVcLW5vcnRoZXJuXC1oZW1pc3BoZXJlOwor6ZuZ57We57eaIDwgdW5zaGllbGRlZFwtdHdpc3RlZFwtcGFpdDsKK+eZvOS9iOaWsOi7n+S7tiA8IHRvXC1yZWxlYXNlXC1uZXdcLXNvZnR3YXJlOwor5paR5paRIDwgZnVsbFwtb2ZcLXN0YWluc1wtb3JcLXNwb3RzOwor6KW/6KOdIDwgXCh3ZXN0ZXJuXC1zdHlsZVwpXC1jbG90aGVzOwor5Yqg5rK5IDwgdG9cLW1ha2VcLWFuXC1leHRyYVwtZWZmb3J0Owor5Yuf5o2QIDwgdG9cLXNvbGljdFwtY29udHJpYnV0aW9uczsKK+WwiOWxrOe2k+a/n+WNgCA8IGV4Y2x1c2l2ZVwtZWNvbm9taWNcLXpvbmU7CivnmrToo4IgPCBjaGFwXC1cKGxpcHNcLFwtc2tpblwsXC1ldGNcLlwpOwor6KaL6IGeIDwgd2hhdFwtb25lXC1zZWVzXC1hbmRcLWhlYXJzOwor5YyF5om/5Yi2IDwgcmVzcG9uc2libGVcLWNyZXdcLXN5c3RlbTsKK+WNl+S6rCA8IG5hbmppbmdcLVwoY2l0eVwtaW5cLWNoaW5hXCk7Civopo/ntIQgPCB0ZXJtc1wtXChvZlwtYW5cLWFncmVlbWVudFwpOwor5q245b+DIDwgY29udmVydGVkXC10b1wtXChyZWxpZ2lvblwpOwor6YC85q27IDwgaG91bmRcLXNvbWVib2R5XC10b1wtZGVhdGg7CivmnKzkvY3kuLvnvqkgPCBzZWxmaXNoXC1kZXBhcnRtZW50YWxpc207CivngrrmiYDmrLLngrogPCBkb1wtd2hhdGV2ZXJcLW9uZVwtcGxlYXNlczsKK+S6uuawkeazlemZoiA8IHBlb3BsZScnc1wtY291cnRcLVwob2ZcLWxhd1wpOwor5ZWG5qWt5qmf5qeLIDwgY29tbWVyY2lhbFwtb3JnYW5pemF0aW9uOwor6byPIDwgY292ZXJcLW9mXC10cmlwb2RcLWNhbGRyb247Civpu7AgPCB5b3VuZ1wtZ2lybCcnc1wtaGFpclwtc3R5bGU7CivntbHmsrsgPCBcKHBvbGl0aWNhbFwpXC1ydWxlXC1cKG92ZXJcKTsKK+ijnOiqsiA8IG1ha2VcLXVwXC1hXC1taXNzZWRcLWxlc3NvbjsKK+mAmeaooyA8IHRoaXNcLVwoa2luZFwtb2ZcLFwtc29ydFwtb2ZcKTsKK+aSreaUvuapnyA8IHBsYXllclwtXChlXC5nXC5cLWNkXC1wbGF5ZXJcKTsKK+mBlOaIkCA8IHRvXC1yZWFjaFwtXChhblwtYWdyZWVtZW50XCk7Civnmb7oiKwgPCBpblwtaHVuZHJlZFwtYW5kXC1vbmVcLXdheXM7CivprIIgPCB0aGVcLWhhaXJcLW9uXC10aGVcLXRlbXBsZXM7CivnpoHmraLmoLjmrablmajoqabpqZfmop3ntIQgPCBudWNsZWFyXC10ZXN0XC1iYW5cLXRyZWF0eTsKK+mnriA8IGFcLWtpbmRcLW9mXC1maWVyY2VcLWFuaW1hbDsKK+S4jee/vOiAjOmjmyA8IGRpc2FwcGVhclwtd2l0aG91dFwtdHJhY2U7CivmjojoqIggPCB0b1wtY29uZmlkZVwtYVwtcGxhblwtdG9cLXNiOwor55Wi5oGt55Wi5pWsIDwgcmV2ZXJlbnRcLWFuZFwtcmVzcGVjdGZ1bDsKK+enkeeglOS6uuWToSA8IFwoc2NpZW50aWZpY1wpXC1yZXNlYXJjaGVyOwor5aCx5puJIDwgaGVyYWxkXC10aGVcLWJyZWFrXC1vZlwtZGF5Owor5pOa57Wx6KiIIDwgYWNjb3JkaW5nXC10b1wtc3RhdGlzdGljczsKK+mAj+mcsua2iOaBryA8IHRvXC1kaXNjbG9zZVwtaW5mb3JtYXRpb247CivkuK3lnIvmmYLloLEgPCBjaGluYVwtdGltZXNcLVwobmV3c3BhcGVyXCk7CivphL4gPCBwbGFjZVwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+mErCA8IHBsYWNlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6YSYIDwgc3RhdGVcLWluXC1oZW5hblwtcHJvdmluY2U7CivliKnluIIgPCBcImxhaVwtc2VlXCJcLVwobHVja3lcLW1vbmV5XCk7Civpg7AgPCBiaXJ0aHBsYWNlXC1vZlwtY29uZnVjaXVzOwor6YKnIDwgdG93blwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivlgbTph40gPCBwbGFjZVwtZXh0cmFcLWVtcGhhc2lzXC1vbjsKK+WgseaBqSA8IHBheVwtYVwtZGVidFwtb2ZcLWdyYXRpdHVkZTsKK+eVmeWtuOeUnyA8IHN0dWRlbnRcLXN0dWR5aW5nXC1hYnJvYWQ7CivlqIHlu4nmlq/loKEgPCB3aWxsaWFtc2J1cmdcLVwodmlyZ2luaWFcKTsKK+S+v+WunOihjOS6iyA8IGFjdFwtYXRcLW9uZScnc1wtZGlzY3JldGlvbjsKK+W5q+WtkCA8IG91dGVyXC1cKG9mXC1jYWJiYWdlXCxcLWV0Y1wpOwor6Ieq6LGqIDwgXChmZWVsXC1hXC1zZW5zZVwtb2ZcKVwtcHJpZGU7Civlj43oiaboiYflt6HoiKrlsI7lvYggPCBhbnRpXC1zaGlwXC1jcnVpc2VcLW1pc3NsZTsKK+iauyA8IHNtYWxsXC1zcGVjaWVzXC1vZlwtY2ljYWRhOwor6JKxIDwgZ2FtYmxpbmdcLWdhbWVcLXdpdGhcLWRpY2U7CivokacgPCBoZWxlb2NoYXJpc1wtcGxhbnRhZ2luZWE7CivmtYHkuqHlnKjmtbflpJYgPCB0b1wtYmVcLWluXC1leGlsZVwtb3ZlcnNlYXM7CivpmLLli5kgPCBcKHBlcnRhaW5pbmdcLXRvXClcLWRlZmVuc2U7Civmpa3nuL4gPCBvdXRzdGFuZGluZ1wtYWNoaWV2ZW1lbnQ7CivoiLIgPCBzbWFsbFwtYm9hdFwtd2l0aFwtd2luZG93czsKK+WVhualreeuoeeQhiA8IGJ1c2luZXNzXC1hZG1pbmlzdHJhdGlvbjsKK+eVmeiogCA8IHRvXC1sZWF2ZVwtb25lJydzXC1jb21tZW50czsKK+e+qyA8IHRoZVwtc2tlbGV0b25cLW9mXC1hXC1zaGVlcDsKK+W5tOS+hiA8IG92ZXJcLXRoZVwtbGFzdFwtXC5cLlwuXC15ZWFyczsKK+e9vSA8IGFcLWtpbmRcLW9mXC13b29sZW5cLWZhYnJpYzsKK+mWi+aLjSA8IGJlZ2luXC1zaG9vdGluZ1wtXChhXC1maWxtXCk7CivliIbkuYsgPCBcKGluZGljYXRpbmdcLWFcLWZyYWN0aW9uXCk7CivnsrogPCBwb2xpc2hlZFwtcmljZVwtb3JcLW1pbGxldDsKK+WkmuW5tOS+hiA8IGZvclwtdGhlXC1wYXN0XC1tYW55XC15ZWFyczsKK+evpyA8IGNyZWVsXC1mb3JcLXRyYXBwaW5nXC1maXNoOwor56+bIDwgY3V0aWNsZVwtb2ZcLWJhbWJvb1wtcGxhbnQ7Civln7rnpI7pgJ/njocgPCBiYXNpY1wtcmF0ZVwtXChhc1wtaW5cLWlzZG5cKTsKK+etlOisnSA8IHRvXC1leHByZXNzXC1vbmUnJ3NcLXRoYW5rczsKK+ellCA8IHdvcnNoaXBcLW9uZScnc1wtYW5jZXN0b3JzOwor562G6KuHIDwgY29udmVyc2F0aW9uXC1ieVwtd3JpdGluZzsKK+eRqum6lyA8IG1hbGlcLVwoYVwtcGVyc29uJydzJydcLW5hbWVcKTsKK+edliA8IHRvXC1zdGFyZVwtc3RyYWlnaHRcLWFoZWFkOwor55yiIDwgZXllc1wtd2l0aG91dFwtYnJpZ2h0bmVzczsKK+eXh+eLgCA8IHN5bXB0b21cLVwob2ZcLWFuXC1pbGxuZXNzXCk7Civnlb4gPCBmaWVsZHNcLWRpdmlkZWRcLWJ5XC1kaWtlczsKK+eSsiA8IHBlbmRhbnRcLWdpcmRsZVwtb3JuYW1lbnQ7Civnkb8gPCBhXC1ibGFja1wtc3RvbmVcLWxpa2VcLWphZGU7Civnka8gPCBraW5kXC1vZlwtd2hpdGVcLWNvcm5lbGlhbjsKK+eRoiA8IGdlbVwtb3JuYW1lbnRzXC1mb3JcLWJlbHRzOwor54+2IDwgd2hpdGVcLWphZGVcLXdvcm5cLW9uXC1iZWx0Owor5Lit56eL56+AIDwgdGhlXC1taWRcLWF1dHVtblwtZmVzdGl2YWw7CivnjpUgPCBpbmZlcmlvclwtdmFyaWV0eVwtb2ZcLWdlbTsKK+S9lOmgmCA8IHRvXC1vY2N1cHlcLVwoYVwtdGVycml0b3J5XCk7CivnjIggPCBkb2dcLXdpdGhcLXNob3J0XC1zaGluYm9uZTsKK+aJi+Wvq+itmOWIpSA8IGhhbmR3cml0aW5nXC1yZWNvZ25pdGlvbjsKK+a+iSA8IHRvXC13YXNoXC1uYW1lXC1vZlwtYVwtcGxhY2U7CivmvZYgPCBuYW1lXC1vZlwtYVwtY2VydGFpblwtcml2ZXI7CivpnZ7nm4jliKnnmoTntYTnuZQgPCBub25cLXByb2ZpdFwtb3JnYW5pemF0aW9uOwor5q6ZIDwgdG9cLWRpZVwtYnlcLXRha2luZ1wtcG9pc29uOwor5q2BIDwgdW5zYXRpc2ZpZWRcLVwob2ZcLWVhdGluZ1wpOwor5qyoIDwgdG9cLWJsb3dcLW9yXC1icmVhdGhlXC11cG9uOwor5qyPIDwgdHJlZVwtdGhlXC1ob3JzZVwtY2hlc3RudXQ7CivmqocgPCB3b29kZW5cLXJhbW1lclwtb3JcLXBlc3RsZTsKK+aplCA8IGFcLXdvb2RlblwtY2hvcHBpbmdcLWJsb2NrOwor6KiK5oGv6JmV55CG57O757WxIDwgbWVzc2FnZVwtaGFuZGxpbmdcLXN5c3RlbTsKK+WCmeaWmSA8IGdldFwtdGhlXC1tYXRlcmlhbHNcLXJlYWR5Owor5Z2m5YWLIDwgdGFua1wtXChtaWxpdGFyeVwtdmVoaWNsZVwpOwor6aas6Lev5Y+jIDwgaW50ZXJzZWN0aW9uXC1cKG9mXC1yb2Fkc1wpOwor5Zub5bedIDwgc2ljaHVhblwtcHJvdmluY2VcLFwtY2hpbmE7CivmgLggPCBjbnNcLTJcLTJhNDBcLWlzXC1kaWZmZXJlbnQ7Civmr5Tmr5TnmobmmK8gPCBjYW5cLWJlXC1mb3VuZFwtZXZlcnl3aGVyZTsKK+S4jeaKteaKl+S4u+e+qSA8IHBvbGljeVwtb2ZcLW5vbnJlc2lzdGFuY2U7CivosqnpgYsgPCB0b1wtdHJhbnNwb3J0XC1cKGZvclwtc2FsZVwpOwor5aKEIDwgdGhlXC1zdGVwc1wtb2ZcLWFcLXN0YWlyd2F5Owor5pW45a2X6KiC6LO857ea6LevIDwgZGlnaXRhbFwtc3Vic2NyaWJlclwtbGluZTsKK+ajhOiIiuaPm+aWsCA8IHRvXC10dXJuXC1vdmVyXC1hXC1uZXdcLWxlYWY7Civku4rora8gPCBtb2Rlcm5cLWxhbmd1YWdlXC12ZXJzaW9uOwor5LiN5oOF5LmL6KuLIDwgbXlcLXByZXN1bXB0dW91c1wtcmVxdWVzdDsKK+WVqyA8IGludGVyamVjdGlvblwtb2ZcLXdhcm5pbmc7CivmipXmlL4gPCB0b1wtcHV0XC1pblwtXChjaXJjdWxhdGlvblwpOwor5ZCaIDwgdXNlZFwtdG9cLXJlcHJlc2VudFwtc291bmQ7CivljIEgPCBqYXBhbmVzZVwtdW5pdFwtb2ZcLXdlaWdodDsKK+eXheWAkiA8IGJlXC1kb3duXC13aXRoXC1hblwtaWxsbmVzczsKK+aLt+WVjyA8IHRvXC1xdWVzdGlvblwtdmlhXC10b3J0dXJlOwor5Lu+IDwgdG9cLWhhbmdcLW9yXC1ib3dcLXRoZVwtaGVhZDsKK+S2nSA8IGdyb3dpbmdcLWlycmVndWxhclwtdGVldGg7CivktYggPCB1bnNtZWx0ZWRcLWhlbXBcLWFuZFwtc2lsazsKK+S1gCA8IGNvYXJzZVwtY3J1bWJzXC1vZlwtYmFybGV5Owor5LSRIDwgYVwtbGVnZW5kYXJ5XC13ZWlyZWRcLWJpcmQ7CivktIcgPCBhXC1zZWNvbmRcLW5hbWVcLWZvclwtY3JhbmU7CivktIEgPCBhXC1raW5kXC1vZlwtcmF0XC1saWtlXC1iaXJkOwor5LOyIDwgYVwtc3dhcm1cLW9mXC1mbHlpbmdcLWJpcmRzOwor5LK0IDwgYVwta2luZFwtb2ZcLXZlbm9tb3VzXC1iaXJkOwor5LG+IDwgYVwtY2FycFwtbGlrZVwtc2F2b3J5XC1maXNoOwor5LCrIDwgbmltYmxlXC1hbmRcLWFjdGl2ZVwtZ2hvc3Q7Civpm5npgKPmjqXnq5kgPCBkdWFsXC1hdHRhY2htZW50XC1zdGF0aW9uOwor5K2HIDwgdG9cLWJlXC1jaG9ja2VkXC13aXRoXC1mb29kOwor5K2GIDwgc21hbGxcLWNoaWxkcmVuXC1lYXRcLWxlc3M7CivkrLIgPCB0b1wtZWF0XC10b1wtdGhlXC1oYWxmXC1mdWxsOwor5KyqIDwgYVwta2luZFwtb2ZcLWNvb2tlZFwtbm9vZGxlOwor5KybIDwgdGhlXC1yb2FyaW5nXC1vZlwtdGhlXC13aW5kOwor5oKj6ZujIDwgdHJpYWxzXC1hbmRcLXRyaWJ1bGF0aW9uczsKK+SolyA8IGV4Y2Vzc2l2ZVwtcmFpblwtYW5kXC1zbm93Owor5KiFIDwgc21hbGxcLWJpcmRzXC1cLVwtXC10aGVcLXdyZW47CivpjZvnhYkgPCB0b1wtZG9cLXBoeXNpY2FsXC10cmFpbmluZzsKK+SlliA8IHNpbHZlclwtb2ZcLWdvbGRcLWZpbGFncmVlOwor5KWPIDwgdW5maXR0ZWRcLWZvclwtZWFjaFwtb3RoZXI7CivkpKUgPCBhZ3JpY3VsdHVyYWxcLWltcGxlbWVudHM7CivkopwgPCB0aGVcLW1hcnJpYWdlXC1vZlwtYVwtd29tYW47Civkob0gPCB0aGVcLXNoYWZ0c1wtb2ZcLWFcLXZlaGljbGU7CivkobogPCB0aGVcLWVuZFwtb2ZcLWFuXC1heGxlXC10cmVlOwor5KGjIDwgYVwtcGllY2VcLW9mXC1jdXJ2ZWRcLWJvYXJkOwor5KCjIDwgbmV0XC10b1wtdHJhcFwtdGhlXC1hbmltYWxzOwor5J2IIDwgYVwtYmlnXC1hbmRcLXN0cmVudW91c1wtcGlnOwor5JqQIDwgZ2V0dGluZ1wtcmVkXC1pblwtdGhlXC1leWVzOwor5JqKIDwgdG9cLWxvb2tcLWZyb21cLWFcLWRpc3RhbmNlOwor5JmQIDwgZnVyc1wtYW5kXC1saW5lblwtZ2FybWVudHM7CivkmIYgPCBhXC1zZWNvbmRcLWZvcm1cLWVhcnRod29ybTsKK+SXoCA8IHRoZVwtbGFydmFcLW9mXC1tb3NxdWl0b2VzOwor5JeUIDwgYVwtaG91c2VcLWxpemFyZFwtb3JcLWdlY2tvOwor5JaxIDwgbGFyZ2VcLXNocmltcFwtaW5cLXRoZVwtc2VhOwor5JS+IDwgYVwta2luZFwtb2ZcLWZyYWdyYW50XC1oZXJiOwor5JOxIDwgYVwta2luZFwtb2ZcLWhlcmJcLW1lZGljaW5lOwor5oi057at5pavIDwgZGF2aXNcLVwoZW5nbGlzaFwtc3VybmFtZVwpOwor6KOc5Yqp57WE57mUIDwgYXV4aWxpYXJ5XC1vcmdhbml6YXRpb25zOwor5JCkIDwgZHJpZWRcLWFuZFwtc2Vhc29uZWRcLW1lYXQ7CivkkJAgPCBjdXJ2ZWRcLXBhcnRcLW9mXC10aGVcLWtuZWU7Civkj5kgPCBicmluZVwtZnJvbVwtcGlja2xlZFwtbWVhdDsKK+SPlSA8IHRvXC1jb29rXC1mb29kXC10aG9yb3VnaGx5Owor57SF5qiT5aSiIDwgYVwtZHJlYW1cLW9mXC1yZWRcLW1hbnNpb25zOwor5I25IDwgb2Rvclwtb2ZcLWFcLXNoZWVwXC1vclwtZ29hdDsKK+SNmSA8IG5ldHNcLWZvclwtY2F0Y2hpbmdcLWJpcmRzOwor5I2YIDwgYVwtZ2VuZXJhbFwtdGVybVwtZm9yXC1uZXRzOwor5I2TIDwgbmV0XC1mb3JcLWNhdGNoaW5nXC1yYWJiaXQ7Civki6sgPCB0b1wtd2luZFwtcm91bmRcLXRoZVwtcm9wZXM7Civki6ggPCB0b1wtc2V0XC1pblwtb3JkZXJcLXRoZVwtb2xkOwor5Iq0IDwgZm9vZFwtbWFkZVwtb2ZcLXJpY2VcLWZsb3VyOwor5IqqIDwgY29hcnNlXC1yaWNlXC1cLVwtXC11bmh1bGxlZDsKK+SJnCA8IHlvdW5nXC1hbmRcLXRlbmRlclwtYmFtYm9vOwor5ImWIDwgZnJhbWV3b3JrXC1vZlwtYVwtY2FycmlhZ2U7Civkh5cgPCBiYW1ib29cLXdpdGhcLWxvbmdcLWpvaW50czsKK+SHkSA8IGFcLXN0YW5kaW5nXC1zaG9ydFwtcGVyc29uOwor5IaKIDwgdW5odXNrZWRcLWdsdXRpbm91c1wtcmljZTsKK+SGiSA8IHRoZVwtc3dpbmdcLW9mXC1yaWNlXC1wbGFudDsKK+ibmeazsyA8IFwoc3dpbW1pbmdcKVwtYnJlYXN0c3Ryb2tlOwor5IOJIDwgYVwtc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7CivmgI7purwgPCBcKGludGVycm9nYXRpdmVcLXByb25vdW5cKTsKK+SBjCA8IHRvXC1zZWVcLWZvclwtYVwtc2hvcnRcLXRpbWU7CivjvoAgPCB0b1wtYmVcLXdlYWtlZFwtYnlcLWRpc2Vhc2U7CivjvbggPCBkaXNlYXNlc1wtb2ZcLXRoZVwtYWJkb21lbjsKK+WcqOS7iuW5tOW5tOW6lSA8IGF0XC10aGVcLWVuZFwtb2ZcLXRoaXNcLXllYXI7CivjvKcgPCB0aWxlc1wtaW5cLWN5bGluZGVyXC1zaGFwZTsKK+mBjuS4jeWOuyA8IG1ha2VcLWxpZmVcLWRpZmZpY3VsdFwtZm9yOwor47myIDwgYVwtZnJpZ2h0ZW5lZFwtcGlnXC1vclwtZG9nOwor47muIDwgYVwta2luZFwtb2ZcLWFuaW1hbFwtXC10YXBpcjsKK+O5nSA8IGFcLWxlZ2VuZGFyeVwtd2lsZFwtYW5pbWFsOwor47mRIDwgYVwtZm91clwteWVhcnNcLW9sZFwtY2F0dGxlOwor47mKIDwgYVwtY2F0dGxlXC1vZlwtd2hpdGVcLWNvbG9yOwor47mGIDwgdGhlXC1jb3VsdGVyXC1vZlwtYVwtcGxvdWdoOwor5Zue6aGn5q235Y+yIDwgdG9cLWxvb2tcLWJhY2tcLWF0XC1oaXN0b3J5Owor6YCa6KiK5Y2U5a6aIDwgY29tbXVuaWNhdGlvbnNcLXByb3RvY29sOwor47iLIDwgbWVhdHNcLXVzZWRcLWluXC1zYWNyaWZpY2U7Civjt64gPCBzY29yY2hlZFwtb3JcLWJ1cm5lZFwtd29vZDsKK+O3qyA8IGZpcmVcLWNhdXNpbmdcLWJ5XC1kcnluZXNzOwor47aSIDwgdGhlXC1jdXJyZW50XC1vZlwtYVwtc3RyZWFtOwor47SyIDwgYVwtcml2ZXJcLWluXC1hbmNpZW50XC10aW1lOwor47SRIDwgdG9cLXRyYWNlXC11cFwtdG9cLWFcLXNvdXJjZTsKK+O0jyA8IHRoZVwtcG9uZFwtd2F0ZXJcLWlzXC1zdGlsbDsKK+OyvyA8IGV4dGVuc2l2ZVwtYm9keVwtb2ZcLXdhdGVyOwor47KEIDwgdW5idXJudFwtYnJpY2tzXC1vclwtdGlsZXM7CivjsawgPCBjYW5ub3RcLXJlY29nbml6ZVwtcGVvcGxlOwor46+ZIDwgdGhlXC1idWNrdGhvcm5cLW9yXC1qdWp1YmU7Civpp5DlroggPCBcKG1hblwtYVwtcG9zdFwtYW5kXClcLWRlZmVuZDsKK+OtviA8IHRvXC1jdXRcLXRoZVwtdGltYmVyXC1hcGFydDsKK+a6q+WSjCA8IG1vZGVyYXRlXC1cKHBvbGljeVwsXC1ldGNcLlwpOwor462DIDwgdGhlXC1sYXJnZVwtcm9wZVwtb2ZcLWFcLW5ldDsKK+OtgiA8IGhlaWdodFwtb2ZcLXRoZVwtZW5kXC1wb2ludDsKK+OsuyA8IGluXC1iZXR3ZWVuXC1vZlwtdGhlXC1mbGVzaDsKK+WQpuiqjSA8IHRvXC1kZWNsYXJlXC10b1wtYmVcLXVudHJ1ZTsKK+OnryA8IGFcLWJ1Y2tldFwtbWFkZVwtb2ZcLXdpbGxvdzsKK+OnpSA8IHRvXC1uaXBcLXdpdGhcLXRoZVwtZmluZ2VyczsKK+OmvSA8IHdpdGhcLWVsZWdhbnRcLWFwcGVhcmFuY2U7Civmg4XloLHomZUgPCBzb3VyY2VcLVwob2ZcLWluZm9ybWF0aW9uXCk7CivjprogPCBhXC1sYW5jZVwtd2l0aFwtdHdvXC1wb2ludHM7CivjpocgPCBhXC1wZWFjZWZ1bFwtb3JcLWVhc3lcLW1vb2Q7CivjpYUgPCB1c2VkXC1pblwtYVwtcGVyc29uJydzXC1uYW1lOwor46SMIDwgdG9cLWhhdmVcLW9uZScnc1wtaGVhcnRcLW93bjsKK+OjuyA8IHRvXC1yZW1lZHlcLWJ5XC1wdW5pc2htZW50Owor46OqIDwgdG9cLXdhbGtcLXdpdGhcLXNsb3dcLXN0ZXBzOwor46OGIDwgdG9cLWxvb3NlXC10aGVcLWJvd1wtc3RyaW5nOwor46K+IDwgdGhlXC1jdXJ2ZWRcLWVuZFwtb2ZcLWFcLWJvdzsKK+OitSA8IHBvd2VyZnVsXC1hbmRcLXN0cm9uZ1wtYm93Owor46G5IDwgdG9cLXJlbHlcLXVwb25cLWVhY2hcLW90aGVyOwor46GSIDwgYVwtY2FsaWNvXC1zYWNrXC1mb3JcLWdyYWluOwor46GPIDwgdG9cLWN1dFwtYVwtc3RyaXBcLW9mXC1jbG90aDsKK+OevCA8IHRvXC1yZXNwZWN0ZnVsbHlcLXJlY2VpdmU7CivjmqwgPCBhXC1sYWR5XC1zdGFydFwtdG9cLWRvbGxcLXVwOwor45qWIDwgdG9cLWNvbWVcLW91dFwtdG9cLXRoZVwtb3BlbjsKK+OZiiA8IGFuXC1hcmVhXC1vZlwtbGV2ZWxcLWdyb3VuZDsKK+OVuCA8IHNvdW5kXC1vZlwtcm9sbGluZ1wtYVwtYm9hdDsKK+OUpCA8IHRvXC1leGVydFwtb25lJydzXC1zdHJlbmd0aDsKK+iFkOaVl+e9qiA8IHRoZVwtY3JpbWVcLW9mXC1jb3JydXB0aW9uOwor45KkIDwgdG9cLWhhdmVcLW9uZScnc1wtaGVhcnRcLXdvbjsKK+OSmSA8IHRvXC1oYW5kXC1vclwtYm93XC10aGVcLWhlYWQ7CivmraXlsaXntq3oibEgPCBoYXZlXC1kaWZmaWN1bHR5XC13YWxraW5nOwor5YWx5ZCM56+p6YG4IDwgY29sbGFib3JhdGl2ZVwtZmlsdGVyaW5nOwor55m96JuH5YKzIDwgdGFsZVwtb2ZcLXRoZVwtd2hpdGVcLXNuYWtlOwor5aSn6ama5bCP5oCqIDwgbXVjaFwtZnVzc1wtYWJvdXRcLW5vdGhpbmc7Civovq/oqLzllK/niankuLvnvqkgPCBkaWFsZWN0aWNhbFwtbWF0ZXJpYWxpc207CivmsZ/opb8gPCBqaWFuZ3hpXC1wcm92aW5jZVwsXC1jaGluYTsKK+aEm+aSqyA8IHRvXC1zaG93XC10ZW5kZXJcLWNhcmVcLWZvcjsKK+WPg+iIhyA8IHRvXC1wYXJ0aWNpcGF0ZVwtXChpblwtc3RoXCk7CivmuK/kurogPCBob25nXC1rb25nXC1wZXJzb25cfHBlb3BsZTsKK+m7g+aysyA8IHllbGxvd1wtcml2ZXJcLVwoaHVhbmdcLWhlXCk7CivmsZ/omIcgPCBqaWFuZ3N1XC1wcm92aW5jZVwsXC1jaGluYTsKK+S7u+WRvSA8IHRvXC1hcHBvaW50XC1hbmRcLW5vbWluYXRlOwor5YWs5a6J5a6Y5ZOhIDwgcHVibGljXC1zYWZldHlcLW9mZmljaWFsczsKK+mkheWtkCA8IG1haXplXC1vclwtbWlsbGV0XC1wYW5jYWtlOwor5pyf5pS3IDwgZW5kXC1vZlwtdGVybVwtZXhhbWluYXRpb247CivnuL3poY0gPCB0b3RhbFwtXChhbW91bnRcLW9yXC12YWx1ZVwpOwor6KyC6KqeIDwgXChncmFtbWF0aWNhbFwpXC1wcmVkaWNhdGU7CivljYrmiJDlk4EgPCBzZW1pXC1tYW51ZmFjdHVyZWRcLWdvb2RzOwor5Lit5pesIDwgbWlkZGxlXC10aGlyZFwtb2ZcLWFcLW1vbnRoOwor5LiL5pesIDwgbGFzdFwtdGhpcmRcLW9mXC10aGVcLW1vbnRoOwor5YKz6Ly45oqA6KGTIDwgdHJhbnNtaXNzaW9uXC10ZWNobm9sb2d5Owor6LKd5YWLIDwgYmFrZXJcLVwoZW5nbGlzaFwtc3VybmFtZVwpOwor5LqC5ZCDIDwgdG9cLWVhdFwtaW5kaXNjcmltaW5hbnRseTsKK+WllOmgreWFkiA8IHNvbWV0aGluZ1wtdG9cLXN0cml2ZVwtZm9yOwor5Yaw5aSp6Zuq5ZywIDwgYVwtd29ybGRcLW9mXC1pY2VcLWFuZFwtc25vdzsKK+aUv+W6nOapn+aniyA8IGdvdmVybm1lbnRcLW9yZ2FuaXphdGlvbjsKK+S4rei9ieermSA8IGh1YlwtXChuZXR3b3JrXC1lcXVpcG1lbnRcKTsKK+aBqeaAqCA8IFwoZmVlbGluZ1wtb2ZcKVwtcmVzZW50bWVudDsKK+S4jeWkliA8IG5vdFwtYmV5b25kXC10aGVcLXNjb3BlXC1vZjsKK+acjeWIkSA8IHNlcnZlXC1hXC1wcmlzb25cLXNlbnRlbmNlOwor6I6r6Z2eIDwgY2FuXC1pdFwtYmVcLXBvc3NpYmxlXC10aGF0Owor5buj6KW/IDwgZ3Vhbmd4aVwtcHJvdmluY2VcLFwtY2hpbmE7CivkuI3lj6/nkIbllrsgPCBiZVwtaW1wZXJ2aW91c1wtdG9cLXJlYXNvbjsKK+WllOeAiSA8IFwob2ZcLXRvcnJlbnRzXClcLXJ1c2hcLWRvd247CivkuYggPCBpbnRlcnJvZ2F0aXZlXC1wYXJ0aWNsZTsKK+iiqyA8IHBhc3NpdmVcLWluZGljYXRvclwtJydieScnOwor55SzIDwgdG9cLXN0YXRlXC10b1wtYVwtc3VwZXJpb3I7CivlsqEgPCByaWRnZVwtb3JcLWNyZXN0XC1vZlwtaGlsbDsKK+eQtCA8IGNoaW5lc2VcLWx1dGVcLW9yXC1ndWl0YXI7CivlrIwgPCBzZWR1Y3RpdmVcLWFuZFwtbG92ZWFibGU7CivnvZcgPCBuZXRcLWZvclwtY2F0Y2hpbmdcLWJpcmRzOwor5pG4IDwgZ2VudGx5XC10b3VjaFwtd2l0aFwtaGFuZDsKK+S7sCA8IHJhaXNlXC10aGVcLWhlYWRcLXRvXC1sb29rOwor6IeNIDwgYWJkb21pbmFsXC1hcmVhXC1vZlwtY3JhYjsKK+mDkSA8IHN0YXRlXC1pblwtdG9kYXknJ3NcLWhlbmFuOwor6LSvIDwgYVwtc3RyaW5nXC1vZlwtMTAwMFwtY29pbnM7Civnq60gPCBwdXRcLWZvcnRoXC1ncmVhdFwtZWZmb3J0Owor56eSIDwgYmVhcmRcLW9mXC1ncmFpblwtb3JcLWNvcm47CivlpZogPCB3aGVyZVw/XC13aGF0XD9cLWhvd1w/XC13aHlcPzsKK+ebjyA8IHNtYWxsXC1jdXBcLW9yXC1jb250YWluZXI7CivokJ0gPCB0eXBlXC1vZlwtY3JlZXBpbmdcLXBsYW50Owor5qKnIDwgc3RlcmN1bGlhXC1wbGF0YW5pZm9saWE7CivlkqYgPCBleHByZXNzaW9uXC1vZlwtc3VycHJpc2U7CivnrZAgPCBiYW1ib29cLWJhc2tldFwtb3JcLWNoZXN0Owor6LCNIDwgYW5cLWludGVsbGlnZW5jZVwtcmVwb3J0Owor56+xIDwgYmFtYm9vXC1vclwtd29vZGVuXC1mZW5jZTsKK+eQtiA8IGd1aXRhclwtbGlrZVwtaW5zdHJ1bWVudDsKK+a9uiA8IHNvdW5kXC1vZlwtZmxvd2luZ1wtd2F0ZXI7CivlnbMgPCBhXC1ob2xsb3dcLWluXC10aGVcLWdyb3VuZDsKK+WfgiA8IGRpdGNoZXNcLWZvclwtaXJyaWdhdGlvbjsKK+WAjCA8IGFzc2lzdGFudFwtaW5cLXdpbmVcLXNob3A7CivpnIEgPCB0b1wtY2xlYXJcLXVwXC1hZnRlclwtcmFpbjsKK+mCryA8IGNpdHlcLWluXC1oZWJlaVwtcHJvdmluY2U7CivnspEgPCB0c2FtYmFcLVwoZm9vZFwtaW5cLXRpYmV0XCk7Civom4AgPCBpbnNlY3RzXC10aGF0XC1lYXRcLWJvb2tzOwor5aumIDwgbmFtZVwtb2ZcLWFcLW1vb25cLWdvZGRlc3M7CivotYogPCBidXlcLWFuZFwtc2VsbFwtb25cLWNyZWRpdDsKK+W8kSA8IHRvXC1raWxsXC1vbmUnJ3NcLXN1cGVyaW9yOwor5pGBIDwgdG9cLXByZXNzXC13aXRoXC10aGVcLWhhbmQ7CivnlbkgPCBhXC1maWVsZFwtb2ZcLTIwXC1vclwtMzBcLW11Owor6KeQIDwgaGF2ZVwtaW1wZXJpYWxcLWF1ZGllbmNlOwor6K6mIDwgZXhwb3NlXC1vdGhlcicnc1wtc2VjcmV0czsKK+aXhCA8IGFcLWtpbmRcLW9mXC1hbmNpZW50XC1mbGFnOwor6La1IDwgbm9pc2VcLW9mXC10cmFtcGluZ1wtZmVldDsKK+mFuSA8IHRvXC1wb3VyXC1vdXRcLWFcLWxpYmF0aW9uOwor5a2zIDwgYnJlZWRcLWluXC1sYXJnZVwtbnVtYmVyczsKK+WhhCA8IGVsZXZhdGVkXC1iYW5rXC1pblwtZmllbGQ7CivonoggPCBkaWVteWVsaWx1c1wtcHlyb2dhc3RlcjsKK+eqrCA8IGFcLXNtYWxsXC1kb29yXC1vclwtd2luZG93Owor56yxIDwgYVwtYmFza2V0XC10cmFwXC1mb3JcLWZpc2g7Civnib8gPCBzaGVkXC1vclwtcGVuXC1mb3JcLWNhdHRsZTsKK+ibmCA8IGFcLXdlZXZpbFwtZm91bmRcLWluXC1yaWNlOwor55WOIDwgYVwtZHJhaW5cLWJldHdlZW5cLWZpZWxkczsKK+iBt+alreS4reWtuCA8IHZvY2F0aW9uYWxcLWhpZ2hcLXNjaG9vbDsKK+e2sui3r+evgOm7nuS7i+mdoiA8IG5ldHdvcmtcLW5vZGVcLWludGVyZmFjZTsKK+ato+WcqOS4reWci+ioquWVjyA8IGR1cmluZ1wtYVwtdHJpcFwtdG9cLWNoaW5hOwor6YG655WZIDwgXChsZWF2ZVwtb3JcLWJlXC1hXClcLWxlZ2FjeTsKK+W4uOimjyA8IGNvbnZlbnRpb25hbFwtXCh3ZWFwb25zXCk7Civoh6rpo5/lhbbmnpwgPCByZWFwXC13aGF0XC1vbmVcLWhhc1wtc293bjsKK+itieWIuCA8IFwoZmluYW5jaWFsXClcLXNlY3VyaXRpZXM7CivkuI3pnLLogbLoibIgPCBub3RcLXNob3dcLW9uZScnc1wtZmVlbGluZzsKK+aFlemBk+WPiyA8IHJlbGlnaW91c1wtaW52ZXN0aWdhdG9yOwor5b6A5bi4IDwgaGFiaXR1YWxseVwtaW5cLXRoZVwtcGFzdDsKK+Wkp+eFnumiqOaZryA8IGRhbXBlbmluZ1wtb25lJydzXC1zcGlyaXQ7CivliZ3mjqHmr5QgPCBzdHJpcHBpbmdcLXRvXC1vcmVcLXJhdGlvOwor576F5pu86Kqe5pePIDwgcm9tYW5jZVwtbGFuZ3VhZ2VcLWdyb3VwOwor5a2w6IO955Sf5benIDwgcHJhY3RpY2VcLW1ha2VzXC1wZXJmZWN0Owor5aaW5Ya2IDwgcHJldHR5XC1hbmRcLWZsaXJ0YXRpb3VzOwor6Z2p5ZG9IDwgXChwb2xpdGljYWxcKVwtcmV2b2x1dGlvbjsKK+irluWjhyA8IGZvcnVtXC1cKGZvclwtZGlzY3Vzc2lvblwpOwor5aOf5pa3IDwgZW5qb3lcLW1hcmtldFwtZG9taW5hbmNlOwor54mh5Li5IDwgcGVvbnlcLVwodHlwZVwtb2ZcLWZsb3dlclwpOwor5aCx56iFIDwgZGVjbGFyZVwtZHV0aWFibGVcLWdvb2RzOwor55uu55qE5ZywIDwgZGVzdGluYXRpb25cLVwobG9jYXRpb25cKTsKK+WFrOiqjSA8IHB1YmxpY2x5XC1rbm93blwtXCh0b1wtYmVcKTsKK+WXt+WXt+W+heWTuiA8IGNyeVwtcGl0ZW91c2x5XC1mb3JcLWZvb2Q7CivnmbzooaggPCB0b1wtaXNzdWVcLVwoYVwtc3RhdGVtZW50XCk7CivkuI3nl5vkuI3nl5IgPCBzY3JhdGNoaW5nXC10aGVcLXN1cmZhY2U7CivlnIvli5npmaIgPCBzdGF0ZVwtZGVwYXJ0bWVudFwtXCh1c2FcKTsKK+m9ryA8IHRlZXRoXC1ncm93blwtaW5cLW9sZFwtYWdlOwor6Zu75ZmoIDwgXChlbGVjdHJpY2FsXClcLWFwcGxpYW5jZTsKK+m5oyA8IGZhYnVsb3VzXC1teXRoaWNhbFwtYmlyZDsKK+aut+WLpCA8IHBvbGl0ZWx5XCxcLXNvbGljaXRvdXNseTsKK+WNgeS6lOWEhCA8IG9uZVwtYW5kXC1hXC1oYWxmXC1iaWxsaW9uOwor6bCGIDwgc2NvbWJlcm9tb3J1c1wtc2luZW5zaXM7CivprpMgPCBtaW5jZWRcLWFuZFwtc2FsdGVkXC1maXNoOwor57SF54eS6IKJIDwgcmVkXC1jb29rZWRcLVwocG9ya1wpXC1tZWF0Owor5Yiw5pyfIDwgYmVjb21lXC1kdWVcLVwoZWdcLFwtbG9hbnNcKTsKK+mpjCA8IG5hbWVcLW9mXC1hXC1mYW1vdXNcLWhvcnNlOwor5YWs5a6J5bGAIDwgcHVibGljXC1zZWN1cml0eVwtYnVyZWF1Owor55eF6ZmiIDwgYVwtc3BlY2lhbGl6ZWRcLWhvc3BpdGFsOwor6IGv57ay55Kw5aKDIDwgbmV0d29ya2luZ1wtZW52aXJvbm1lbnQ7Civpn7kgPCBtdXNpY1wtb2ZcLWJlbGxcLWFuZFwtZHJ1bTsKK+ino+mHi+Wft+ihjCA8IGludGVycHJldGVkXC1cKGNvbXB1dGVyXCk7CivlhavlsI/mmYLlt6XkvZzliLYgPCBlaWdodFwtaG91clwtd29ya2luZ1wtZGF5Owor5raI5oGv6Z2I6YCa5Lq65aOrIDwgYVwtd2VsbFwtaW5mb3JtZWRcLXNvdXJjZTsKK+mbmCA8IGR5ZVwtbWFkZVwtZnJvbVwtcmVkXC1zb2lsOwor6ZiHIDwgYVwtYnVkZGhpc3RcLWhpZ2hcLXByaWVzdDsKK+S4jei/keS6uuaDhSA8IG5vdFwtYW1lbmFibGVcLXRvXC1yZWFzb247CivpkZAgPCBib2x0XC1vZlwtYVwtY2hpbmVzZVwtbG9jazsKK+aUv+ayu+apn+aniyA8IHBvbGl0aWNhbFwtb3JnYW5pemF0aW9uOwor6YyGIDwgdGhlXC1jb2xvclwtb2ZcLWFcLW1pbmVyYWw7CivphJAgPCB0b3duXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6YGwIDwgZ3J1bnRpbmdcLXNvdW5kXC1vZlwtcGlnczsKK+i+pSA8IHZhcmlldHlcLW9mXC1tYXJzaFwtZ3Jhc3M7Civnl4XosaEgPCBzeW1wdG9tXC1cKG9mXC1hXC1kaXNlYXNlXCk7Civml6XmnKzntpPmv5/mlrDogZ4gPCBqYXBhbmVzZVwtZWNvbm9taWNcLW5ld3M7CivmrLrlh4wgPCB0b1wtYnVsbHlcLWFuZFwtaHVtaWxpYXRlOwor6YGN5Y+KIDwgdG9cLWV4dGVuZFwtXChldmVyeXdoZXJlXCk7CivosIIgPCBjb25zdWx0XC1jYXJlZnVsbHlcLXdpdGg7CivnsL3nvbIgPCB0b1wtc2lnblwtXChhblwtYWdyZWVtZW50XCk7CivoqaogPCBkaWZmaWN1bHR5XC1pblwtc3BlYWtpbmc7CivloLHlsI4gPCB0b1wtY292ZXJcLVwocmVwb3J0XClcLW5ld3M7Civop78gPCBhXC1ib2RraW5cLW1hZGVcLW9mXC1pdm9yeTsKK+W4g+aclyA8IGVuZ2xpc2hcLXN1cm5hbWVcLFwtYnJvd247CivopoAgPCB2YXJpYW50XC1vZlwtcmFkaWNhbFwtMTQ2Owor6KSfIDwgaW5uZXJcLXNoaXJ0XC1vclwtc2luZ2xldDsKK+ihrSA8IHRoZVwtbGFwZWxcLW9mXC1hXC1nYXJtZW50Owor6KGmIDwgc21vb3RoXC1vdXRcLXRoZVwtY2xvdGhlczsKK+aomea6liA8IFwoYW5cLW9mZmljaWFsXClcLXN0YW5kYXJkOwor6KiK5oGv5YKz6YGe5Lit5LuLIDwgbWVzc2FnZVwtdHJhbnNmZXJcLWFnZW50Owor5Y+m55y855u455yLIDwgdG9cLXZpZXdcLWluXC1hXC1uZXdcLWxpZ2h0Owor6JWVIDwgY2FyeW9wdGVyaXNcLWRpdmFyaWNhdGE7CivolK8gPCBhXC12YXJpZXR5XC1vZlwtYXJ0ZW1pc2lhOwor6JC0IDwgbWVkaWNpbmFsXC1wb2lzb25cLXBsYW50Owor6I+2IDwgc3BlY2llc1wtb2ZcLXdhdGVyXC1wbGFudDsKK+S/oeaBr+aKgOihkyA8IGluZm9ybWF0aW9uXC10ZWNobm9sb2d5Owor6ISkIDwgcmF3XC1tZWF0XC1mb3JcLXNhY3JpZmljZTsKK+eZvOeXheeOhyA8IGluY2lkZW5jZVwtb2ZcLWFcLWRpc2Vhc2U7CivogKwgPCBkcmlsbFwtZm9yXC1zb3dpbmdcLWdyYWluOwor55aR5ZWP5Y+lIDwgaW50ZXJyb2dhdGl2ZVwtc2VudGFuY2U7CivogIIgPCB2YXJpYW50XC1vZlwtcmFkaWNhbFwtMTI1Owor6YCA5LyRIDwgcmV0aXJlbWVudFwtXChmcm9tXC13b3JrXCk7CivnuaYgPCBzdHJpbmdcLW9mXC1jb3BwZXJcLWNvaW5zOwor5L6G5Zue5L6G5Y675ZywIDwgYmFja3dhcmRzXC1hbmRcLWZvcndhcmRzOwor5a6J5YWo6ICD5oWuIDwgc2VjdXJpdHlcLWNvbnNpZGVyYXRpb247Civnt4UgPCBzaWxrXC1vZlwtcHVycGxpc2hcLWNvbG9yOwor6Lao6ZmEIDwgdG9cLWluZ3JhdGlhdGlvblwtb25zZWxmOwor5q2k5LiA5pmCIDwgdGhhdFwtd2FzXC1vbmVcLXNpdHVhdGlvbjsKK+evoiA8IHRoZVwtbmFtZVwtb2ZcLWJhbWJvb1wtaGF0Owor562G6LehIDwgYVwtcGVyc29uJydzXC1oYW5kd3JpdGluZzsKK+S/oeaBr+euoeeQhiA8IGluZm9ybWF0aW9uXC1tYW5hZ2VtZW50Owor55uh5YqbIDwgZG9cLW9uZScnc1wtYmVzdFwtXChlZmZvcnRcKTsKK+e2sue1oeWxpOWNlOitsCA8IG5ldHdvcmtcLWxheWVyXC1wcm90b2NvbDsKK+ethuiomCA8IHRha2VcLWRvd25cLVwoaW5cLXdyaXRpbmdcKTsKK+S4jeWlveaDuSA8IG5vdFwtdG9cLWJlXC10cmlmbGVkXC13aXRoOwor6KSl5a2QIDwgY290dG9uXC1wYWRkZWRcLW1hdHRyZXNzOwor55mKIDwgYVwtZGlzZWFzZVwtb2ZcLXRoZVwtaGVhcnQ7CivnkbEgPCBhXC1nZW1cLXVzZWRcLWFzXC1lYXJcLXBsdWc7Civouabouabot7Pot7MgPCBib3VuY2luZ1wtYW5kXC12aXZhY2lvdXM7Civnj6MgPCBuYW1lXC1vZlwtYVwta2luZFwtb2ZcLWphZGU7CivnjrwgPCBiZWF1dGlmdWxcLWNvbG9yXC1vZlwtZ2VtOwor54m3IDwgY293XC1vclwtb3hcLW9mXC1vbmVcLWNvbG9yOwor5YSY5b+rIDwgYXNcLXF1aWNrbHlcLWFzXC1wb3NzaWJsZTsKK+mAmuS/oeWvhuW6piA8IGNvbW11bmljYXRpb25zXC1kZW5zaXR5Owor5LiN5b6X5beyIDwgYWN0XC1hZ2FpbnN0XC1vbmUnJ3NcLXdpbGw7CivnhIQgPCByaXNpbmdcLWZsYW1lc1wtb3JcLWZ1bWVzOwor54OWIDwgY2FsYW1pdGllc1wtZnJvbVwtaGVhdmVuOwor5rKS5pyJ5beu5YilIDwgdGhlcmVcLWlzXC1ub1wtZGlmZmVyZW5jZTsKK+a/gOaYgiA8IGFyb3VzZWRcLXRvXC1pbmRpZ25hdGlvbjsKK+S4jeiogOiAjOWWuyA8IGl0XC1nb2VzXC13aXRob3V0XC1zYXlpbmc7Civlt6Xmpa3ljJblnIvlrrYgPCBpbmR1c3RyaWFsaXplZFwtY291bnRyeTsKK+atpeiqv+S4gOiHtCA8IHRvXC1iZVwtdW5pdGVkXC1pblwtYWN0aW9uOwor56ul6KmxIDwgY2hpbGRyZW4nJ3NcLWZhaXJ5XC10YWxlczsKK+auoiA8IGJlXC1pblwtZ3JlYXRcLWRpZmZpY3VsdHk7Civmp7EgPCBmaXJld29vZFwtZm9yXC1zYWNyaWZpY2U7CivkuIrljYrlubQgPCBmaXJzdFwtaGFsZlwtXChvZlwtYVwteWVhclwpOwor5LiN6KaB6IeJIDwgaGF2ZVwtbm9cLXNlbnNlXC1vZlwtc2hhbWU7Civog4zlnLDpoqggPCBiZWhpbmRcLXNvbWVib2R5JydzXC1iYWNrOwor55So5oi25Yiw57ay57Wh55qE5o6l5Y+jIDwgdXNlclwtbmV0d29ya1wtaW50ZXJmYWNlOwor5pyPIDwgbGlnaHRcLW9mXC1jcmVzY2VudFwtbW9vbjsKK+aXkCA8IGFuXC1lbWJyb2lkZXJlZFwtcGVubmFudDsKK+aUmSA8IHRvXC1naXZlXC1hXC1oZWxwaW5nXC1oYW5kOwor5o+Q5LqkIDwgc3VibWl0XC1cKGFcLXJlcG9ydFwsXC1ldGNcKTsKK+aRsCA8IHRvXC1zZWl6ZVwtd2l0aFwtdGhlXC1oYW5kOwor5L6b6IG3IDwgaG9sZFwtYW5cLW9mZmljZVwtb3JcLXBvc3Q7CivmkYAgPCB0b1wtY292ZXJcLXdpdGhcLXRoZVwtaGFuZDsKK+aQviA8IHRvXC1jcnVzaFwtd2l0aFwtdGhlXC1oYW5kOwor5L6G6IeqIDwgdG9cLWNvbWVcLWZyb21cLVwoYVwtcGxhY2VcKTsKK+WumuiqniA8IGF0dHJpYnV0aXZlXC1cKG1vZGlmaWVyXCk7Civov5HlubTkvoYgPCBmb3JcLXRoZVwtcGFzdFwtZmV3XC15ZWFyczsKK+aAuSA8IGFcLXBvbGl0ZVwtdmVyc2lvblwtb2ZcLWhlOwor5ryC5rWBIDwgY2FycmllZFwtYnlcLXRoZVwtY3VycmVudDsKK+W6iCA8IHVzZWRcLWluXC1wZXJzb24nJ3NcLW5hbWVzOwor5bW2IDwgbG93XC1wYXJ0XC1vZlwtYVwtbW91bnRhaW47CivlrZIgPCBsYXJ2YWVcLW9mXC10aGVcLW1vc3F1aXRvOwor5qOE5qyKIDwgdG9cLWFic3RhaW5cLWZyb21cLXZvdGluZzsKK+aNj+WQiCA8IHRvXC1hY3RcLWFzXC1hXC1nb1wtYmV0d2VlbjsKK+WjliA8IG9wZW5cLXNwYWNlXC1hbG9uZ1wtd2F0ZXI7CivnlLLmnb8gPCBkZWNrXC1cKG9mXC1hXC1ib2F0XCxcLWV0Y1wuXCk7Civlhbboh6rouqsgPCBvbmUnJ3NcLW93blwtXChyZXNwZWN0aXZlXCk7CivmlZnnvqnlkozogZbntIQgPCBkb2N0cmluZVwtYW5kXC1jb3ZlbmFudHM7CivlmYAgPCBzcGlydFwtb3V0XC1vZlwtdGhlXC1tb3V0aDsKK+aihea0viA8IHRoZVwtbWVpXC1sYW5mYW5nXC1zY2hvb2w7CivngavnhLDlsbEgPCB0aGVcLW1vdW50YWluXC1vZlwtZmxhbWVzOwor5raJ6YGOIDwgZm9yZFwtXChhXC1zdHJlYW1cLFwtcml2ZXJcKTsKK+WPnSA8IHRvXC1yZXNwZWN0ZnVsbHlcLWluZm9ybTsKK+W3peS9nOermSA8IFwoY29tcHV0ZXJcKVwtd29ya3N0YXRpb247Civpq5TlhacgPCBpbnRlcm5hbFwtXCh0b1wtdGhlXC1ib2R5XCk7CivkvK4gPCB0b1wtbWFrZVwtYVwtZ3JlYXRcLWVmZm9ydDsKK+mAmuioiumAmumBkyA8IGNvbW11bmljYXRpb25zXC1jaGFubmVsOwor5LalIDwgdW5ldmVubHlcLWZpdHRpbmdcLXRlZXRoOwor5LakIDwgc291bmRcLW9mXC1jaGV3aW5nXC1ib25lczsKK+S2giA8IGFcLXNxdWlycmVsXC1saWtlXC1hbmltYWw7Civks64gPCB0b1wtbG9va1wtYXRcLWluXC1zdXJwcmlzZTsKK+SymiA8IGFcLXNlY29uZFwtbmFtZVwtZm9yXC1zaGFkOwor5o6h6Kiq6KiY6ICFIDwgaW52ZXN0aWdhdGl2ZVwtcmVwb3J0ZXI7CivksLUgPCBsb29rc1wtbGlrZVwtY29tbW9uXC1jYXJwOwor5LCwIDwgZHJlYXJ5XC1jcmllc1wtb2ZcLWdob3N0czsKK+SuuiA8IGx1eHVyaWFudFwtb2ZcLXRoZVwtZ3Jhc3M7CivkrqogPCB0b1wtZ2VsZFwtYVwtaG9yc2VcLW9yXC1hc3M7CivkqbwgPCBzdGl0Y2hlc1wtb25cLWFcLWNvdmVybGV0Owor5KmNIDwgdG9cLWxvb2tcLXBhbGVcLW9yXC1wYWxsaWQ7CivkqLUgPCByYWluZWRcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+SmiCA8IHRvXC1zaWdoXC1pblwtbGFtZW50YXRpb247CivkpZ8gPCBhXC1tZXRhbFwtbWFya2luZ1wtXC1zdGFrZTsKK+iEiuakjiA8IGJhY2tcLVwob2ZcLWFcLXZlcnRpYnJhdGVcKTsKK+S8r+eItiA8IGZhdGhlcicnc1wtZWxkZXJcLWJyb3RoZXI7Civkoo4gPCBpbmRpY2F0aW5nXC1leGNsYW1hdGlvbjsKK+ShtSA8IGRlY29yYXRpb25cLW9uXC1jYXJyaWFnZTsKK+ShsCA8IHN0cm9uZ1wtYW5kXC1kdXJhYmxlXC1odWI7CivkoawgPCBjb3ZlcmluZ1wtb2ZcLWFcLWNhcnJpYWdlOwor5KGBIDwgbm90XC13ZWxsXC1mb3JtZWRcLWZpZ3VyZTsKK+SfvSA8IHNjYXR0ZXJlZFwtb3JcLWRpc3BlcnNlZDsKK+SemCA8IHRvXC1nb1wtc3RyYWlnaHRcLWZvcndhcmQ7CivknaIgPCBhblwtYW5pbWFsXC1pblwtb2xkXC10aW1lczsKK+S/neWuiSA8IGVuc3VyZVwtcHVibGljXC1zZWN1cml0eTsKK+SdkyA8IGxvbmdcLWJlYXJkXC1vclwtd2hpc2tlcnM7CivknLogPCBodXNraW5nXC1iZWFuc1wtZm9yXC1jYWtlOwor5JyhIDwgdG9cLXNtZWxsXC10aGVcLWZyYWdyYW50czsKK+SbmSA8IHRvXC1zbWVsbFwtdGhlXC1mcmFncmFuY2U7Civkmp4gPCB0aGVcLW1pZGRsZVwtb2ZcLXRoZVwtaG9ybjsKK+WNsOatkOS6uiA8IGluZG9cLWV1cm9wZWFuXC1cKHBlcnNvblwpOwor5JmEIDwgY2xvdGhlc1wtd2l0aFwtdGhpY2tcLWhlbTsKK+SYvSA8IGNsb3RoaW5nXC1hbmRcLW9ybmFtZW50czsKK+SVtCA8IGFcLXNlY29uZFwtZm9yXC1tb25rc2hvb2Q7CivklKAgPCB0aGluXC1yb290XC1vZlwtdGhlXC1sb3R1czsKK+SPqSA8IHRvXC1zaHJ1Z1wtdGhlXC1zaG91bGRlcnM7CivkjbEgPCB0aGVcLXdpbGRcLWdvYXRcLW9yXC1zaGVlcDsKK+SLqiA8IGZpbmVcLWFuZFwtZGVsaWNhdGVcLXNpbGs7Civkio8gPCBtaXhpbmdcLXJpY2VcLXdpdGhcLWJyb3RoOwor5IiEIDwgYVwta2luZFwtb2ZcLXNvbGlkXC1iYW1ib287CivkuIrouqsgPCB1cHBlclwtcGFydFwtb2ZcLXRoZVwtYm9keTsKK+SHoyA8IGJhbWJvb1wtd2l0aFwtd2hpdGVcLWJhcms7CivkhKAgPCB0b1wtc2FjcmlmaWNlXC10b1wtaGVhdmVuOwor5IOnIDwgc291bmRcLW9mXC1mYWxsaW5nXC1yb2NrczsKK+SAhCA8IGNvbnRhaW5lclwtZnVsbFwtb2ZcLWZvb2Q7Civjv4sgPCBhXC1raW5kXC1vZlwtc2tpblwtZGlzZWFzZTsKK+O8niA8IGphclwtd2l0aFwtYVwtc21hbGxcLW1vdXRoOwor47qeIDwgdG9cLXNpZ25cLWluXC1sYW1lbnRhdGlvbjsKK+WdpuWFi+i7iiA8IHRhbmtcLVwoYXJtb3JlZFwtdmVoaWNsZVwpOwor47ivIDwgYVwtZmluZVwtYnJlZWRcLW9mXC1jYXR0bGU7Civmr5TovIPogIzoqIAgPCBjb21wYXJhdGl2ZWx5XC1zcGVha2luZzsKK+O1ryA8IHNvdW5kXC1vZlwtd2F0ZXJcLWZsb3dpbmc7Civjs68gPCBnb2RkZXNzXC1vZlwtYW5cLWlua1wtc2xhYjsKK+OxhiA8IHRvXC1zbWlsZVwtYXRcLWVhY2hcLW90aGVyOwor47CoIDwgdG9cLXRha2VcLWJyZWF0aFwtb3JcLXJlc3Q7CivjrpEgPCBzb3VuZFwtb2ZcLWJyb2tlblwtc3RpY2tzOwor462vIDwgdHJlZVwtd2l0aFwtc21hbGxcLWxlYXZlczsKK+Wtl+autSA8IFwobnVtZXJpY1wsXC1kYXRkYVwpXC1maWVsZDsKK+OriiA8IGZsdXR0ZXJpbmdcLW9mXC10aGVcLWZsYWc7CivjqqMgPCBhXC1wbGFjZVwtaW5cLWhhblwtZHluYXN0eTsKK+OqnyA8IHRvXC1yZWdhcmRcLWFzXC1pbXBvcnRhbnQ7Civjqp4gPCB0b1wtYmVcLWhlbGRcLWJ5XC10aGVcLWhhbmQ7CivjqbogPCBhXC1jcmFja1wtb25cLXRoZVwtdXRlbnNpbDsKK+OpnCA8IHRvXC1iZVwtaW5cLXBvc3Nlc3Npb25cLW9mOwor46mOIDwgdG9cLXByZXNzXC13aXRoXC1hXC1maW5nZXI7Civjp7YgPCB0aGVcLWppbmdsaW5nXC1vZlwtbWV0YWxzOwor46eZIDwgdG9cLWdpdmVcLWFcLXBsYXlmdWxcLWJsb3c7Civjp4MgPCB0b1wtcmVjZWl2ZVwtd2hhdFwtaXNcLWR1ZTsKK+OmoyA8IHRvXC10YWxrXC1pblwtb25lJydzXC1zbGVlcDsKK+OmhCA8IGhhcmRcLXRvXC1zYXlcLW9yXC1wcmVkaWN0Owor46SKIDwgY2hlZXJmdWxcLWFuZFwtZXh1YmVyYW50Owor5Lim6IiJIDwgZGV2ZWxvcFwtc2ltdWx0YW5lb3VzbHk7CivjookgPCBhXC1yb29tXC13aXRoXC1vcGVuXC1zcGFjZTsKK+S4gOiZnyA8IGZpcnN0XC1kYXlcLW9mXC10aGVcLW1vbnRoOwor46CUIDwgc2hhcGVzXC1vZlwtdGhlXC1tb3VudGFpbjsKK+OfuyA8IHRoZVwtbW9hdFwtYXJvdW5kXC1hXC1jaXR5Owor6Zui6ZaL5pWF6YSJIDwgdG9cLWxlYXZlXC1vbmUnJ1wtaG9tZWxhbmQ7Civjm7MgPCBhblwtYWJub21hbFwtdW5ib3JuXC1iYWJ5Owor45q3IDwgdGhlXC1icmVhc3RzXC1vZlwtYVwtd29tYW47CivjmbMgPCBydWdnZWRuZXNzXC1vZlwtdGhlXC1yb2FkOwor45mkIDwgYVwtY3JhY2tcLWluXC1lYXJ0aGVud2FyZTsKK+OZmCA8IHVzZWRcLWluXC1uYW1pbmdcLWFcLXBsYWNlOwor45eCIDwgdG9cLWtlZXBcLXRoZVwtbW91dGhcLXNodXQ7CivjlpAgPCBzb3VuZFwtb2ZcLWNhbGxpbmdcLWR1Y2tzOwor45S0IDwgYWdyaWN1bHR1cmFsXC1pbXBsZW1lbnQ7Civjk7kgPCBhXC1zaGFycFwtcG9pbnRlZFwtd2VhcG9uOwor45OmIDwgdG9cLWRlbGliZXJhdGVcLWFuZFwtcGxhbjsKK+OTmCA8IGphZGVcLXdpdGhcLXNvbWVcLWRlZmVjdHM7CivkuI3lg4/mqKMgPCBpblwtbm9cLXNoYXBlXC10b1wtYmVcLXNlZW47Civlr6nliKQgPCBwdXRcLVwoc29tZW9uZVwpXC10b1wtdHJpYWw7CivlkJDolYMgPCBhbmNpZW50XC1uYW1lXC1mb3JcLXRpYmV0Owor5ris5a6aIDwgdG9cLXN1cnZleVwtYW5kXC1ldmFsdWF0ZTsKK+azsOe+hSA8IFwoZW5nbGlzaFwtc3VybmFtZVwpXC10eWxvOwor5ZCe6IGyIDwgdG9cLXN3YWxsb3dcLW9uZScnc1wtY3JpZXM7CivororliIbms5UgPCBjYWxjdWx1c1wtb2ZcLXZhcmlhdGlvbnM7CivosqHmnIMgPCBmaW5hbmNlXC1hbmRcLWFjY291bnRpbmc7CivpgJrkv6HntrLntaEgPCBjb21tdW5pY2F0aW9uc1wtbmV0d29yazsKK+S6pOaYkyA8IFwoYnVzaW5lc3NcKVwtdHJhbnNhY3Rpb247Civopb/pgYroqJggPCBwaWxncmltYWdlXC10b1wtdGhlXC13ZXN0Owor5pW45a2X6YCa5L+hIDwgZGlnaXRhbFwtY29tbXVuaWNhdGlvbnM7Civnj77lvbkgPCBcKG1pbGl0YXJ5XClcLWFjdGl2ZVwtZHV0eTsKK+WFseeUoum7qOWToSA8IGNvbW11bmlzdFwtcGFydHlcLW1lbWJlcjsKK+awkemBuCA8IGRlbW9jcmF0aWNhbGx5XC1lbGVjdGVkOwor5rW35ouUIDwgaGVpZ2h0XC1hYm92ZVwtc2VhXC1sZXZlbDsKK+e2sui3r+aetuaniyA8IG5ldHdvcmtcLWluZnJhc3RydWN0dXJlOwor56eR5oqAIDwgc2NpZW5jZVwtYW5kXC10ZWNobm9sb2d5Owor5Lu75YWNIDwgdG9cLWFwcG9pbnRcLWFuZFwtZGlzbWlzczsKK+eVoualreeUnyA8IGdyYWR1YXRlXC1cKG9mXC1hXC1zY2hvb2xcKTsKK+S6guWvqyA8IHRvXC13cml0ZVwtd2l0aG91dFwtYmFzaXM7Civpm7bpjKIgPCBjaGFuZ2VcLVwoc2FpZFwtb2ZcLW1vbmV5XCk7CivkuI3mnI0gPCBub3RcLWFjY2VwdFwtXChzb21ldGhpbmdcKTsKK+m8u+WFkiA8IGFcLWhvbGVcLWluXC1hblwtaW1wbGVtZW50Owor5oSf5ZiGIDwgdG9cLXNpZ2hcLVwod2l0aFwtZmVlbGluZ1wpOwor5YyW6KOdIDwgXChvZlwtYWN0b3JzXClcLXRvXC1tYWtlXC11cDsKK+S6keWNlyA8IHl1bm5hblwtcHJvdmluY2VcLFwtY2hpbmE7CivmnI3lrowgPCBzZXJ2ZVwtb3V0XC1cKGFcLXNlbnRlbmNlXCk7Civpu4PlsbEgPCBtdFwuXC1odWFuZ1wtXChodWFuZ1wtc2hhblwpOwor5Y+k5rOiIDwgZ3Vib1wtXChhXC1wZXJzb25hbFwtbmFtZVwpOwor54yc5ouzIDwgYVwtZmluZ2VyXC1ndWVzc2luZ1wtZ2FtZTsKK+e+juWci+S5i+mfsyA8IHZvaWNlXC1vZlwtYW1lcmljYVwtcmFkaW87Civog4zpu5HpjYsgPCB0b1wtYmVcLW1hZGVcLWFcLXNjYXBlZ29hdDsKK+WKqeipniA8IHBhcnRpY2xlXC1cKGdyYW1tYXRpY2FsXCk7CivpnYjmlY/luqYgPCBcKGxldmVsXC1vZlwpXC1zZW5zaXRpdml0eTsKK+aomea6lue1hOe5lCA8IHN0YW5kYXJkc1wtb3JnYW5pemF0aW9uOwor542o5pSs5biC5aC0IDwgdG9cLW1vbm9wb2xpemVcLWFcLW1hcmtldDsKK+iniSA8IHRvXC13YWtlXC11cFwtZnJvbVwtc2xlZXA7CivnkrAgPCBqYWRlXC1yaW5nXC1vclwtYnJhY2VsZXQ7CivliJIgPCB0b1wtcm93XC1vclwtcGFkZGxlXC1ib2F0Owor5aCqIDwgYWRlcXVhdGVseVwtY2FwYWJsZVwtb2Y7CivlkLQgPCBuYW1lXC1vZlwtd2FycmluZ1wtc3RhdGU7Civps7QgPCBjcnlcLW9mXC1iaXJkXC1vclwtYW5pbWFsOwor5ZGJIDwgb25lXC1vZlwtd2FycmluZ1wtc3RhdGVzOwor6aazIDwgZ29cLXF1aWNrbHlcLW9yXC1zd2lmdGx5Owor5qaOIDwgc21hbGxcLWV2ZXJncmVlblwtc2hydWI7Civlp7sgPCByZWxhdGl2ZXNcLWJ5XC1tYXJyaWFnZTsKK+etkiA8IHRoaWNrXC1waWVjZVwtb2ZcLWJhbWJvbzsKK+W4mCA8IGZsYWdcLXNpZ25cLW9mXC1hXC10YXZlcm47CivnqLsgPCByaWNlXC1ncm93aW5nXC1pblwtZmllbGQ7CivnprAgPCBvbmUnJ3NcLWRlY2Vhc2VkXC1mYXRoZXI7CivliYIgPCBtZWRpY2luYWxcLXByZXBhcmF0aW9uOwor54+CIDwgaW5mZXJpb3JcLWtpbmRcLW9mXC1qYWRlOwor5ZifIDwgc291bmRcLW9mXC1ob3JuXC10b290aW5nOwor55GcIDwgZmxhd2xlc3NcLWdlbVwtb3JcLWpld2VsOwor54+RIDwgYVwtZ2VtXC1jdXRcLWxpa2VcLWRyYWdvbjsKK+ivrCA8IG1ha2VcLWZhbHNlXC1hY2N1c2F0aW9uOwor5auWIDwgcGF0cm9uaXplXC1wcm9zdGl0dXRlczsKK+mjkiA8IHRoZVwtc291bmRcLW9mXC10aGVcLXdpbmQ7CivplKIgPCBydW5cLW1ldGFsXC1pbnRvXC1jcmFja3M7CivmjpYgPCBzdXBwb3J0XC13aXRoXC10aGVcLWFybXM7Civmo6MgPCBrZXJyaWFcLWphcG9uaWNhXC1wbGFudDsKK+iPgSA8IGZsb3dlclwtb2ZcLWxlZWtcLWZhbWlseTsKK+WSqSA8IHRoZVwtYmxlYXRpbmdcLW9mXC1zaGVlcDsKK+ePiSA8IHN0b25lXC1yZXNlbWJsaW5nXC1qYWRlOwor6ZKOIDwgdG9vbFwtZm9yXC1ib3JpbmdcLWhvbGVzOwor5oqfIDwgcm9sbFwtYXJvdW5kXC13aXRoXC1oYW5kOwor6La4IDwgc2VsbFwtb3JcLWJ1eVwtd2hvbGVzYWxlOwor5aajIDwgb25lJydzXC1kZWNlYXNlZFwtbW90aGVyOwor5bWKIDwgZGlzdHJpY3RcLWluXC1zaGFvaHNpbmc7CivnrLggPCBmbGF0XC1iYXNrZXRcLWZvclwtZ3JhaW47CivogqsgPCB0aGVcLWdpenphcmRcLW9mXC1hXC1mb3dsOwor6IurIDwgcnVzaFwtb3JcLXN0cmF3XC1tYXR0aW5nOwor5bOkIDwgaGlnaFwtcG9pbnRlZFwtbW91bnRhaW47Civnp60gPCBvbmVcLXRob3VzYW5kXC1taWxsaW9uczsKK+WnkiA8IHdpZmVcLW9mXC1lbGRlclwtYnJvdGhlcjsKK+iTsCA8IHRvXC1pbmNyZWFzZVwtZml2ZVwtZm9sZDsKK+iSjCA8IGFydGVtaXNpYVwtc3RlbGxlcmlhbmE7CivphYMgPCB0aGVcLXNwaXJpdFwtb2ZcLWFcLWJlaW5nOwor57OXIDwgcGFyY2hlZFwtd2hlYXRcLW9yXC1yaWNlOwor6L6LIDwgZXh0ZXJpb3JcLXJpbVwtb2ZcLXdoZWVsOwor6aurIDwgY2hpbGRyZW4nJ3NcLWhhaXJcLXN0eWxlOwor6Jm6IDwgbGFyZ2VcLXBvaXNvbm91c1wtc25ha2U7CivphrUgPCBjb250cmlidXRlXC1mb3JcLWRyaW5rczsKK+iarCA8IGFcLXZhcmlldHlcLW9mXC1iaXZhbHZlczsKK+ijvCA8IHRvXC10YWtlXC1vZmZcLW9uZScnc1wtdG9wOwor55y1IDwgZXllc1wtZGlzZWFzZWRcLWFuZFwtZGltOwor5p61IDwgaG9sbG9cLXN0dW1wXC1vZlwtYVwtdHJlZTsKK+iYqSA8IGFydGVtaXNpYVwtc3RlbGxhcmlhbmE7CivorpPlnZAgPCB0b1wtZ2l2ZVwtdXBcLW9uZScnc1wtc2VhdDsKK+W9rOW9rOacieemriA8IHJlZmluZWRcLWFuZFwtY291cnRlb3VzOwor57ay57Wh566h55CG5ZOhIDwgbmV0d29ya1wtYWRtaW5pc3RyYXRvcjsKK+ayueWDuSA8IG9pbFwtXChwZXRyb2xldW1cKVwtcHJpY2U7Civou5/noazku7YgPCBzb2Z0d2FyZVwtYW5kXC1oYXJkd2FyZTsKK+W3qOmhjSA8IGFcLWh1Z2VcLXN1bVwtXChvZlwtbW9uZXlcKTsKK+WllOaUviA8IGJvbGRcLWFuZFwtdW5yZXN0cmFpbmVkOwor5b6X5oSPIDwgXChiZVwpXC1wcm91ZFwtb2ZcLW9uZXNlbGY7CivlrozlhajlhbzlrrkgPCBjb21wbGV0ZWx5XC1jb21wYXRpYmxlOwor54ax6ZaA6LKoIDwgZ29vZHNcLWluXC1ncmVhdFwtZGVtYW5kOwor6YCa5L+h6YePIDwgY29tbXVuaWNhdGlvbnNcLXZvbHVtZTsKK+WllOW/mSA8IGJlXC1idXN5XC1ydXNoaW5nXC1hYm91dDsKK+ingOa4rOihm+aYnyA8IG9ic2VydmF0aW9uXC1zYXRlbGxpdGU7CivliZvnm7QgPCB1cHJpZ2h0XC1hbmRcLW91dHNwb2tlbjsKK+W3oemCjyA8IGJlXC1vblwtXChwb2xpY2VcKVwtcGF0cm9sOwor56Wd6LOA6KmeIDwgY29uZ3JhdHVsYXRvcnlcLXNwZWVjaDsKK+mbu+iFpui8lOWKqeioreioiCA8IGNvbXB1dGVyXC1haWRlZFwtZGVzaWduOwor6ZmN56aPIDwgYmxlc3NpbmdzXC1mcm9tXC1oZWF2ZW47Civngrjol6UgPCBleHBsb3NpdmVcLVwoc3Vic3RhbmNlXCk7Civlub7ljYHlubQgPCBzZXZlcmFsXC10ZW5zXC1vZlwteWVhcnM7CivlpKLmg7MgPCB0b1wtZHJlYW1cLW9mXC1cKGluXC12YWluXCk7CivpmLLnqbogPCBhbnRpXC1haXJjcmFmdFwtZGVmZW5zZTsKK+S4ieiQrOS4g+WNgyA8IHRoaXJ0eVwtc2V2ZW5cLXRob3VzYW5kOwor5YWI6YCyIDwgYWR2YW5jZWRcLVwodGVjaG5vbG9neVwpOwor5aSn6LWm5ZyL6ZqbIDwgYW1uZXN0eVwtaW50ZXJuYXRpb25hbDsKK+aDheWgseWumOWToSA8IGludGVsbGlnZW5jZVwtb2ZmaWNpYWw7CivlpZTlkb0gPCBydXNoXC1hYm91dFwtb25cLWVycmFuZHM7Civmr5TmlrnoqqogPCB0b1wtbWFrZVwtYW5cLWFuYWxvZ3lcLlwuXC47Civpm7vno4HlmarogbIgPCBlbGVjdHJvbWFnbmV0aWNcLW5vaXNlOwor6ZW36YCU57ay6LevIDwgbG9uZ1wtZGlzdGFuY2VcLW5ldHdvcms7Civoip3liqDlk6XlpKflrbggPCB1bml2ZXJzaXR5XC1vZlwtY2hpY2FnbzsKK+ino+axuiA8IHRvXC1zZXR0bGVcLVwoYVwtZGlzcHV0ZVwpOwor6byDIDwgdGhlXC1lZGlibGVcLXdhdGVyXC1mcm9nOwor6bql6Iq957OWIDwgbWFsdG9zZVwtXChzd2VldFwtc3lydXBcKTsKK+m3gCA8IHRoZVwtZmlzaGluZ1wtY29ybW9yYW50Owor576O6IGv56S+IDwgYXNzb2NpYXRlZFwtcHJlc3NcLVwoYXBcKTsKK+m0oCA8IGFcLWtpbmRcLW9mXC1uaWdodGluZ2FsZTsKK+mYsuayuyA8IFwocHJldmVudGlvblwtYW5kXClcLWN1cmU7CivpsKQgPCBzZXJpb2xhXC1xaW5xdWVyYWRpYXRhOwor5q+U6Imy5YiG5p6QIDwgY29sb3JpbWV0cmljXC1hbmFseXNpczsKK+mvhCA8IGxlcGlkb3RyaWdsYVwtc3RyYXVjaGk7Civpq4ggPCBkZWZpbmVkXC1hc1wtdGhlXC1wZWx2aXM7Civmjqjolqbkv6EgPCByZWNvbW1lbmRhdGlvblwtbGV0dGVyOwor5bqr54i+5b635Lq6IDwga3VyZGlzaFwtcGVyc29uXHxwZW9wbGU7Civlvq7ou5/lhazlj7ggPCBtaWNyb3NvZnRcLWNvcnBvcmF0aW9uOwor5YiG5qmfIDwgXCh0ZWxlcGhvbmVcKVwtZXh0ZW5zaW9uOwor6aK4IDwgY29vbFwtYnJlZXplXC1vZlwtYXV0dW1uOwor55y+5pybIDwgcGVvcGxlJydzXC1leHBlY3RhdGlvbnM7CivkuI3orZjmiqzoiIkgPCBmYWlsXC10b1wtYXBwcmVjaWF0ZVwtc2I7Civnmb3ns5YgPCBcKHJlZmluZWRcKVwtd2hpdGVcLXN1Z2FyOwor5pOB5oi0IDwgdG9cLXN1cHBvcnRcLVwoYVwtcGVyc29uXCk7CivluK3ljbfkup7mtLIgPCB0b1wtc3dlZXBcLXRocm91Z2hcLWFzaWE7CivooajpgZQgPCB0b1wtdm9pY2VcLVwoYW5cLW9waW5pb25cKTsKK+W5vuWkqeS+hiA8IGZvclwtdGhlXC1wYXN0XC1mZXdcLWRheXM7CivloLHmmYIgPCBnaXZlXC10aGVcLWNvcnJlY3RcLXRpbWU7CivpmqjlkowgPCBhbWlhYmxlXC1cKGRpc3Bvc2l0aW9uXCk7CivkvZzmpa3nkrDlooMgPCBvcGVyYXRpbmdcLWVudmlyb25tZW50Owor6YWOIDwgZG91YmxlXC1mZXJtZW50ZWRcLXdpbmU7Civlh73mjoggPCBjb3JyZXNwb25kZW5jZVwtY291cnNlOwor6L+35oiAIDwgdG9cLWJlXC1pbmZhdHVhdGVkXC13aXRoOwor6Zm45rW356m65LiJ6LuNIDwgYXJteVwsXC1uYXZ5XCxcLWFpclwtZm9yY2U7CivmipXkuobnpaggPCBwYXN0XC10ZW5zZVwtb2ZcLXRvXC12b3RlOwor6IKv5bC86L+qIDwga2VubmVkeVwtXChwcm9wZXJcLW5hbWVcKTsKK+aLl+mZtyA8IGdlb2xvZ2ljYWxcLWRlcHJlc3Npb247CivlhY3nlqsgPCBpbW11bml0eVwtXCh0b1wtZGlzZWFzZVwpOwor5YWs54S2IDwgXChkb1wtc29tZXRoaW5nXClcLW9wZW5seTsKK+aZuuaFp+eUouasiiA8IGludGVsbGVjdHVhbFwtcHJvcGVydHk7CivosLogPCB0aGVcLW1vdXRoXC1vZlwtYVwtdmFsbGV5Owor5aCF5oyBIDwgdG9cLWNvbnRpbnVlXC11cGhvbGRpbmc7Civlh7rlt64gPCBiZVwtb25cLWFcLWJ1c2luZXNzXC10cmlwOwor6KC4IDwgYXVsYWNvcGhvcmFcLWZlbW9yYWxpczsKK+a8uOmAsiA8IHByb2dyZXNzXC1zdGVwXC1ieVwtc3RlcDsKK+icuiA8IHJlZmxlY3Rpb25cLW9mXC1yYWluYm93Owor5pys5Zyf5YyW6Luf5Lu2IDwgc29mdHdhcmVcLWxvY2FsaXphdGlvbjsKK+iYmCA8IGFcLWtpbmRcLW9mXC13aWxkXC1naW5nZXI7CivpmZDliLYgPCBcKGltcG9zZVwpXC1yZXN0cmljdGlvbnM7CivolZogPCB0aGVcLWNhbHl4XC1vZlwtYVwtZmxvd2VyOwor5L+d6K235Y2AIDwgY29uc2VydmF0aW9uXC1kaXN0cmljdDsKK+iRuSA8IGtpbmRcLW9mXC1jaHJ5c2FudGhlbXVtOwor6JC7IDwgc21hbGxcLWJ1ZGRoaXN0XC10ZW1wbGU7CivlubTliJ0gPCBiZWdpbm5pbmdcLW9mXC10aGVcLXllYXI7CivoiJogPCB0b1wtcHV0XC1vdXRcLXRoZVwtdG9uZ3VlOwor5aWn5b636LO9IDwgdGhlXC1vZHlzc2V5XCxcLWJ5XC1ob21lcjsKK+mrmOe0muWumOWToSA8IGhpZ2hcLXJhbmtpbmdcLW9mZmljaWFsOwor5Y2K5aSc5LiJ5pu0IDwgaW5cLXRoZVwtZGVwdGhcLW9mXC1uaWdodDsKK+ethumMhCA8IHB1dFwtZG93blwtXChpblwtd3JpdGluZ1wpOwor5oyJ6ISIIDwgZmVlbFwtXCh0YWtlXClcLXRoZVwtcHVsc2U7CivnubQgPCBhXC1raW5kXC1vZlwtZmlzaGluZ1wtbmV0Owor56u8IDwgYmFtYm9vXC1jb3ZlclwtZm9yXC1ib2F0Owor5Y+W5raI56aB5LukIDwgdG9cLWxpZmVcLWFcLXByb2hpYml0aW9uOwor56aoIDwgcHJheVwtZm9yXC1nb29kXC1mb3J0dW5lOwor5oub6IGYIDwgdGFrZVwtam9iXC1hcHBsaWNhdGlvbnM7CivotorljZfoqp4gPCB2aWV0bmFtZXNlXC1cKGxhbmd1YWdlXCk7CivnmaUgPCBvYnN0cnVjdGlvblwtb2ZcLWJvd2VsczsKK+eXjyA8IGFcLWJydWlzZVwtb3JcLWNvbnR1c2lvbjsKK+aMgeS4jeWQjOaUv+imi+iAhSA8IFwocG9saXRpY2FsXClcLWRpc3NpZGVudDsKK+WFieW3niA8IGt3YW5nanVcLVwoc291dGhcLWtvcmVhXCk7Civlr6bpmpvmh4nnlKggPCBwcmFjdGljYWxcLWFwcGxpY2F0aW9uOwor55KhIDwgamFkZVwtbG9va1wtYWxpa2VcLXN0b25lOwor5bel5ZWGIDwgaW5kdXN0cnlcLWFuZFwtY29tbWVyY2U7CivmvrPmtLIgPCBhdXN0cmFsaWFcLVwoY29udGluZW50XCk7CivnlJ/nlKLog73lipsgPCBtYW51ZmFjdHVyaW5nXC1hYmlsaXR5Owor57i957Wx6YG46IiJIDwgcHJlc2lkZW50aWFsXC1lbGVjdGlvbjsKK+earuWFkiA8IFwoZG91Z2hcLFwtZXRjXC5cKXdyYXBwZXJzOwor5r6CIDwgY2xlYXJcLWFuZFwtc3RpbGxcLXdhdGVyOwor55SY6IKFIDwgZ2Fuc3VcLXByb3ZpbmNlXCxcLWNoaW5hOwor5LiN5pOH5omL5q61IDwgYnlcLWZhaXJcLW1lYW5zXC1vclwtZm91bDsKK+a3nCA8IHJvYXJcLW9mXC1kYXNoaW5nXC13YXZlczsKK+ayhyA8IGZsb3dpbmdcLWFuZFwtZW5ndWxmaW5nOwor5a6J6ZaSIDwgcGVhY2VmdWxcLWFuZFwtY2FyZWZyZWU7CivoibHlt6ggPCB2ZXJ5XC1kaWZmaWN1bHRcLVwodGFza1wpOwor6KC75qmrIDwgcnVkZVwtYW5kXC11bnJlYXNvbmFibGU7CivnsL3lrZcgPCB0b1wtc2lnblwtXChhXC1zaWduYXR1cmVcKTsKK+aajiA8IHN1blwtYmVnaW5uaW5nXC1kZWNsaW5lOwor5a6J6YGpIDwgcXVpZXRcLWFuZFwtY29tZm9ydGFibGU7CivlnIvpmpvmqJnmupYgPCBpbnRlcm50aW9uYWxcLXN0YW5kYXJkOwor6YeR6Zm15aSn5a24IDwgdW5pdmVyc2l0eVwtb2ZcLW5hbmtpbmc7CivnlbDos6rntrLot68gPCBoZXRlcm9nZW5lb3VzXC1uZXR3b3JrOwor55m95omL6LW35a62IDwgYnVpbGRcLXVwXC1mcm9tXC1ub3RoaW5nOwor5bW8IDwgd2luZGluZ1wtbW91bnRhaW5cLXBhdGg7CivokaHokITniZnoqp4gPCBwb3J0dWd1ZXNlXC1cKGxhbmd1YWdlXCk7CivmuKzoia8gPCB0b1wtc3VydmV5XC1hbmRcLW1lYXN1cmU7Civos4fmlpnlgrPpgIHmnI3li5kgPCBkYXRhXC1kZWxpdmVyeVwtc2VydmljZTsKK+ePrei7iiA8IHJlZ3VsYXJcLWJ1c1wtXChzZXJ2aWNlXCk7Civln7UgPCBoYXJkZW5lZFwtZGlydFwtb3JcLWNsYXk7Civll7sgPCB0b1wtc2NyZWVuXC5cLWxvcXVhY2lvdXM7CivmoYjnlLEgPCBtYWluXC1wb2ludHNcLW9mXC1hXC1jYXNlOwor6LK26KyrIDwgYmFuaXNoXC1mcm9tXC10aGVcLWNvdXJ0Owor6buD6a2aIDwgeWVsbG93XC1jcm9ha2VyXC1cKGZpc2hcKTsKK+i6q+S4liA8IG9uZScnc1wtbGlmZVwtZXhwZXJpZW5jZTsKK+aKseaBqCA8IGhhdmVcLWFcLWduYXdpbmdcLXJlZ3JldDsKK+WMnyA8IGRpdmFuXC1mb3JcLXR3b1wtcGVyc29uczsKK+WJviA8IHRvXC1waWNrXC11cFwtd2l0aFwta25pZmU7Civlm5vlubTliY0gPCBmb3VyXC15ZWFyc1wtcHJldmlvdXNseTsKK+iHquWPpCA8IFwoc2luY2VcKVwtYW5jaWVudFwtdGltZXM7CivktZcgPCB0b1wtY2xlYW5cLXRoZVwtd2l0aGVyZWQ7CivktYQgPCB0b1wtYm9pbFwtb3JcLXN0ZXdcLXdoZWF0Owor5LO5IDwgYVwta2luZFwtZG92ZVwtbGlrZVwtYmlyZDsKK+SznSA8IGFcLWtpbmRcLW9mXC1zbWFsbFwtYmlyZHM7CivksZ8gPCBhXC1raW5kXC1vZlwtc2lsdmVyXC1maXNoOwor5LuL6LOq6Kiq5ZWP5o6n5Yi2IDwgbWVkaXVtXC1hY2Nlc3NcLWNvbnRyb2w7Civkr68gPCBoYW5nXC1kb3duXC1vZlwtdGhlXC1oYWlyOwor5K+tIDwgb2ZcLW5pY2VcLWFuZFwtZ29vZFwtaGFpcjsKK+SuhCA8IGFuXC1vbmVcLXllYXJcLW9sZFwtaG9yc2U7CivnrIbmlpcgPCByb3VuZFwtYm90dG9tZWRcLWJhc2tldDsKK+S4gOiHguS5i+WKmyA8IFwobGVuZFwpXC1hXC1oZWxwaW5nXC1oYW5kOwor5KqlIDwgc2hhbGxvdHNcLW9yXC1zY2FsbGlvbnM7CivkqakgPCBhXC1tZWFzdXJlXC1vZlwtY2FwYWNpdHk7Civkpr0gPCBhblwtZWFzdFwtYW5kXC13ZXN0XC13YWxsOwor6KO96YCg5ZWGIDwgbWFudWZhY3R1cmluZ1wtY29tcGFueTsKK+SmmiA8IHdpZGVcLW9wZW5cLW9mXC10aGVcLWRvb3I7CivkpowgPCB0aGVcLWRvb3JcLWlzXC13aWRlXC1vcGVuOwor5LqM6JmfIDwgMlwtbmRcLWRheVwtb2ZcLXRoZVwtbW9udGg7CivkpYggPCB0aGVcLXN5bWJvbFwtZm9yXC1jb2JhbHQ7CivkuI3lgKvkuI3poZ4gPCBuZWl0aGVyXC1maXNoXC1ub3JcLWZvd2w7CivkpJcgPCB0YXN0ZVwtb2ZcLXN0cm9uZ1wtZHJpbms7CivkoqkgPCB0b1wtZm9yYmlkXC10b1wtcHJvaGliaXQ7CivkobYgPCB2ZWhpY2xlc1wtYW5kXC1nYXJtZW50czsKK+SemiA8IHRvXC1oYW5nXC1vblwtYVwtYmlnXC10cmVlOwor5J2WIDwgcmVwdGlsZXNcLXdpdGhvdXRcLWZlZXQ7Civkm7EgPCB0b1wtdGFsa1wtdW5yZW1pdHRpbmdseTsKK+SbiiA8IGNoZWVyZnVsXC1hbGxcLXRoZVwtdGltZTsKK+SbgyA8IHVzZWRcLWluXC1wZXJzb24nJ3NcLW5hbWU7CivkmJAgPCB0aGVcLWJsZWVkXC1hdFwtdGhlXC1ub3NlOwor5JeJIDwgYVwtc21hbGxcLXNvbGl0YXJ5XC13YXNwOwor5Z+65pys5Y6f55CGIDwgZnVuZGFtZW50YWxcLXByaW5jaXBsZTsKK+SWlCA8IGFcLWtpbmRcLW9mXC13aGl0ZVwtdGlnZXI7Civklo0gPCB0b1wtYWN0XC13aXRoXC1yZXZlcmVuY2U7CivklLUgPCBmcmFncmFudFwtdGhvcm91Z2h3b3J0Owor6LKh57aTIDwgZmluYW5jZVwtYW5kXC1lY29ub21pY3M7CivklIogPCBkZW5zZVwtZ3Jvd3RoXC1vZlwtZ3Jhc3M7Civkk5IgPCBzY2lycHVzXC1jeXBlcmludXNcLXZhcjsKK+aSq+mkiuaIkOS6uiA8IHRvXC1icmluZ1wtdXBcLVwoYVwtY2hpbGRcKTsKK+SSpiA8IGdyYXNzXC1mbG9hdHNcLW9uXC13YXRlcjsKK+SShCA8IGZ1bGx5XC1sYWRlblwtb2ZcLWFcLWJvYXQ7CivkkZ0gPCBhXC1zbWFsbFwtY3VwXC13aXRoXC1lYXJzOwor5I+kIDwgdG9wXC1vZlwtdGhlXC1odW1hblwtaGVhZDsKK+S4u+iqniA8IFwoZ3JhbW1hdGljYWxcKVwtc3ViamVjdDsKK+SOtiA8IG9mZmVyaW5nXC1ibG9vZFwtdG9cLWdvZDsKK+mAmuS/oeacjeWLmSA8IGNvbW11bmljYXRpb25cLXNlcnZpY2U7CivkjpogPCB0aGVcLWVuZFwtb2ZcLWJpcmRcLXdpbmdzOwor5I6WIDwgc29hcmluZ1wtdXBcLWluXC10aGVcLXNreTsKK+SMpyA8IGFcLWtpbmRcLW9mXC1zaWxrXC1mYWJyaWM7CivkjJ8gPCB0b1wtd2VhdmVcLXNpbGtcLXJpYmJvbnM7CivlmJblmJYgPCB0b1wtY2xpY2tcLW9uZScnc1wtdG9uZ3VlOwor5IuCIDwgZHJlc3Nlc1wtZm9yXC10aGVcLWJyaWRlOwor5IinIDwgc2tpblwtb2ZcLWJhbWJvb1wtc2hvb3RzOwor5IieIDwgYW5jaWVudFwtbmFtZVwtb2ZcLWluZGlhOwor5Ie+IDwgYVwtZmx1dGVcLXdpdGhcLTIzXC10dWJlczsKK+SHsCA8IGFcLWJhbWJvb1wtYmluZGVkXC10b3JjaDsKK+SHoSA8IHRoZVwtc2h1dHRsZVwtb2ZcLWFcLWxvb207CivkhqAgPCBhXC1nb3Zlcm5tZW50XC1vZmZpY2lhbDsKK+SGmyA8IHNvbWV0aGluZ1wtaW5cLXRoZVwtY2F2ZTsKK+m8u+elliA8IHRoZVwtZWFybGllc3RcLWFuY2VzdG9yOwor5IWXIDwgZm91clwtYnVuZGxlXC1vZlwtZ3JhaW5zOwor5Y+N6Z2p5ZG9IDwgY291bnRlclwtcmV2b2x1dGlvbmFyeTsKK+SBrSA8IHRvXC1naXZlXC1hblwtYW5ncnlcLWxvb2s7CivkgZogPCBhXC1raW5kXC1vZlwtZXllXC1kaXNlYXNlOwor5IC9IDwgdG9cLWxvb2tcLWF0XC1lYWNoXC1vdGhlcjsKK+SAoCA8IGFcLWNoaW5lc2VcLWZhbWlseVwtbmFtZTsKK+SAkyA8IHRvXC10dXJuXC1vbmUnJ3NcLWV5ZXNcLXRvOwor47+0IDwgd2lkZVwtcGllY2VcLW9mXC1sZWF0aGVyOwor47+rIDwgdG9cLXNwbGl0XC10YW5nbGVkXC1oZW1wOwor47+PIDwgcGFyYWx5c2lzXC1vZlwtdGhlXC1ib2R5Owor476+IDwgZGlzZWFzZVwtb2ZcLXRoZVwtdGhyb2F0Owor47yyIDwgc291bmRcLW9mXC1icm9rZW5cLXRpbGVzOwor5oiA5oSbIDwgdG9cLWhhdmVcLWFcLWxvdmVcLWFmZmFpcjsKK+O8kCA8IGFcLWtpbmRcLW9mXC13aGl0ZVwtbWVsb247CivjubYgPCBhXC1raW5kXC1vZlwtd2lsZFwtYW5pbWFsOwor47mmIDwgZG9nXC13aXRoXC1hXC1zaG9ydFwtdGFpbDsKK+O5lCA8IGNhdHRsZVwtd2l0aFwtbG9uZ1wtYmFjazsKK+aatOi3jCA8IHN0ZWVwXC1mYWxsXC1cKGluXC1wcmljZVwpOwor47WoIDwgYVwtZHJ5XC1sYW5kXC1pblwtYVwtcml2ZXI7Civjs4ggPCBhXC1ncmVhdFwtZmxvd1wtb2ZcLXdhdGVyOwor6K6T6ZaLIDwgdG9cLWdldFwtb3V0XC1vZlwtdGhlXC13YXk7CivjsZ8gPCB0b1wtcmlwXC1vcGVuXC10aGVcLWZsZXNoOwor47CEIDwgYVwtc21hbGxcLWNoZXN0bnV0XC10cmVlOwor466XIDwgdGhlXC1oYW5kbGVcLW9mXC1hXC1zcGVhcjsKK+OtjSA8IGNhcGl0YWxcLWZvcm1cLW9mXC1zZXZlbjsKK+OsoCA8IHRvXC1leHBvc2VcLXRvXC1zdW5saWdodDsKK+aqlOahiOWIhumFjeWNgCA8IGZpbGVcLWFsbG9jYXRpb25cLXRhYmxlOwor46mfIDwgdG9cLXNld1wtc29tZVwtb3JuYW1lbnRzOwor46iMIDwgdG9cLW1pbGtcLWFcLWNvd1wtb3JcLWdvYXQ7CivlsLHkvr8gPCBhdFwtXCh5b3VyXClcLWNvbnZlbmllbmNlOwor5Y+v6LqrIDwgdG9cLWZpdFwtd2VsbFwtXChjbG90aGVzXCk7Civnp5HnoJQgPCBcKHNjaWVudGlmaWNcKVwtcmVzZWFyY2g7CivjoIsgPCBhXC1sb2Z0eVwtbW91bnRhaW5cLXBlYWs7Civjn54gPCBwcmVjaXBpdG91c1wtYW5kXC1sb2Z0eTsKK+OfnSA8IHRvXC1iYW5rXC11cFwtd2l0aFwtZWFydGg7Civjn5wgPCBzaGFwZVwtb2ZcLXRoZVwtbW91bnRhaW47Civjn5YgPCBhXC1kaWFsZWN0XC1vZlwtbWlub3JpdHk7Civjn44gPCBhXC1sb25nXC1tb3VudGFpblwtcmlkZ2U7CivjnoEgPCBjYW5cLW5vdFwtd2Fsa1wtbm9ybWFsbHk7CivjmLAgPCBuYW1lXC1vZlwtYVwtb2xkXC1jb3VudHJ5Owor45ihIDwgYVwtcGVuXC1mb3JcLXdpbGRcLWJlYXN0czsKK+OYliA8IHRvXC1tYWtlXC1hXC1kaXN0dXJiYW5jZTsKK+iAgeWFqeWPoyA8IGFuXC1vbGRcLW1hcnJpZWRcLWNvdXBsZTsKK+OXgSA8IHRoZVwtcm9vZlwtb2ZcLXRoZVwtbW91dGg7CivjlpcgPCBoaWdoXC1yaWRnZXNcLW9mXC1jbGlmZnM7CivlnLDlsI3nqbrlsI7lvYggPCBncm91bmRcLXRvXC1haXJcLW1pc3NpbGU7CivjlaIgPCBwcm9mb3VuZFwtc2lnbmlmaWNhbmNlOwor5Y+v6KyCIDwgaXRcLWNvdWxkXC1ldmVuXC1iZVwtc2FpZDsKK+iuk+i3ryA8IHRvXC1tYWtlXC13YXlcLVwoZm9yXC1zdGhcKTsKK+OShiA8IHRvXC1nYXRoZXJcLXRoZVwtaGFydmVzdDsKK+aItuS4uyA8IGhlYWRcLW9mXC10aGVcLWhvdXNlaG9sZDsKK+mgkuihjCA8IGlzc3VlXC1mb3JcLWVuZm9yY2VtZW50Owor5ZyL54ef5LyB5qWtIDwgbmF0aW9uYWxpemVkXC1pbmR1c3RyeTsKK+S6jOWNgeWFq+iZnyA8IDI4dGhcLWRheVwtb2ZcLXRoZVwtbW9udGg7CivmuZbljZcgPCBodW5hblwtcHJvdmluY2VcLFwtY2hpbmE7CivmnKzlm7rmnp3mpq4gPCB3aGVuXC10aGVcLXJvb3RcLWlzXC1maXJtOwor5YKz6Ly46Kit5YKZIDwgdHJhbnNtaXNzaW9uXC1mYWNpbGl0eTsKK+mkmOaVuCA8IFwobnVtZXJpY2FsXClcLXJlbWFpbmRlcjsKK+S4jeeuoSA8IG5vXC1tYXR0ZXJcLVwod2hhdFwsXC1ob3dcKTsKK+eJiOmdoiA8IHNwYWNlXC1vZlwtYVwtd2hvbGVcLXBhZ2U7CivkuI3mmK/lkbPlhZIgPCBub3RcLXRoZVwtcmlnaHRcLWZsYXZvdXI7CivkuI3npoEgPCBjYW4nJ3RcLWhlbHBcLVwoZG9pbmdcLXN0aDsKK+maqOapn+aZgumWkyA8IHJhbmRvbVwtcGVyaW9kXC1vZlwtdGltZTsKK+aYj+i/tyA8IHRvXC1sb3NlXC1jb25zY2lvdXNuZXNzOwor5ZCQ57WuIDwgdGhlXC1vcGVuaW5nXC1vZlwtYVwtYm9sbDsKK+mLquW5syA8IHNwcmVhZFwtb3V0XC1cKG1hdGVyaWFsXCk7CivlgrPovLjot53pm6IgPCB0cmFuc21pc3Npb25cLWRpc3RhbmNlOwor5ouc5oqK5a2QIDwgYmVjb21lXC1zd29yblwtYnJvdGhlcnM7CivljJflr5LluLYgPCB0aGVcLW5vcnRoXC1mcmlnaWRcLXpvbmU7CivkuI3nkIYgPCByZWZ1c2VcLXRvXC1hY2tub3dsZWRnZTsKK+iuiuiHiSA8IHN1ZGRlbmx5XC10dXJuXC1ob3N0aWxlOwor5Y2w5bqm5bC86KW/5Lqe6KqeIDwgaW5kb25lc2lhblwtXChsYW5ndWFnZVwpOwor5rW35pavIDwgaGF5ZXNcLVwobWljcm9jb21wdXRlclwpOwor5p2x5b63IDwgXChmb3JtZXJcKVwtZWFzdFwtZ2VybWFueTsKK+aal+ekgSA8IHN1Ym1lcmdlZFwtcmVlZlwtXChyb2NrXCk7Civosrflpb0gPCB0b1wtaW5ncmF0aWF0ZVwtb25lc2VsZjsKK+WFq+i3r+i7jSA8IHRoZVwtZWlnaHRoXC1yb3V0ZVwtYXJteTsKK+aal+eWviA8IHVubWVudGlvbmFibGVcLWRpc2Vhc2U7CivogbPli5UgPCB0b1wtY3JlYXRlXC1hXC1zZW5zYXRpb247Civlj6botbfniJDngbYgPCB0b1wtc3RhcnRcLWZyb21cLXNjcmF0Y2g7CivpppbohabmnIPorbAgPCBsZWFkZXJzaGlwXC1jb25mZXJlbmNlOwor5p2/5YezIDwgd29vZGVuXC1iZW5jaFwtb3JcLXN0b29sOwor5LiN5pqHIDwgaGF2ZVwtbm9cLXRpbWVcLVwoZm9yXC1zdGg7CivmgrLmhqQgPCBncmllZlwtYW5kXC1pbmRpZ25hdGlvbjsKK+S4jeS/oeS7u+aKleelqCA8IHZvdGVcLW9mXC1ub1wtY29uZmlkZW5jZTsKK+WNl+WMl+altSA8IHNvdXRoXC1hbmRcLW5vcnRoXC1wb2xlczsKK+WmguWHuuS4gOi9jSA8IGJlXC1wcmVjaXNlbHlcLXRoZVwtc2FtZTsKK+iRo+S6i+mVtyA8IGNoYWlybWFuXC1vZlwtdGhlXC1ib2FyZDsKK+acrOS6uueahOingOm7niA8IFwob25lJydzXClcLXBlcnNvbmFsXC12aWV3Owor54m555SiIDwgc3BlY2lhbFwtbG9jYWxcLXByb2R1Y3Q7Civola3mop0gPCBcKGVjb25vbWljXClcLWRlcHJlc3Npb247CivkuI3ooYzkuoYgPCBvblwtdGhlXC1wb2ludFwtb2ZcLWRlYXRoOwor55+u5p2G5ZOB56iuIDwgc2hvcnRcLXN0YWxrZWRcLXZhcmlldHk7Civmrq/okawgPCBmdW5lcmFsXC1hbmRcLWludGVybWVudDsKK+WRveS7pCA8IFwoYW5cKVwtb3JkZXJcLW9yXC1jb21tYW5kOwor5rWB5LqhIDwgdG9cLVwoZm9yY2VcLWludG9cKVwtZXhpbGU7CivntZ7nm6HohabmsYEgPCB0b1wtd3JhY2tcLW9uZScnc1wtYnJhaW5zOwor5YWJ56OB56Kf5qmfIDwgbWFnbmV0b1wtb3B0aWNhbFwtZHJpdmU7CivljaHopb/lsLwgPCBjYXNzaW5pXC1cKHByb3BlclwtbmFtZVwpOwor5Y2R5rGhIDwgZGVzcGljYWJsZVwtYW5kXC1maWx0aHk7CivlnIvmnInkvIHmpa0gPCBuYXRpb25hbGl6ZWRcLWJ1c2luZXNzOwor5pq05Y2SIDwgZGllXC1vZlwtc3VkZGVuXC1pbGxuZXNzOwor6YC86KaWIDwgbG9va1wtYXRcLWZyb21cLWNsb3NlXC11cDsKK+aXuuaciCA8IGJ1c3lcLVwoYnVzaW5lc3NcKVwtbW9udGg7Civku4AgPCBmaWxlXC1vZlwtdGVuXC1zb2xkaWVyczsKK+iyrCA8IG9uZScnc1wtcmVzcG9uc2liaWxpdHk7CivniLUgPCBmZXVkYWxcLXRpdGxlXC1vclwtcmFuazsKK+WViiA8IGV4Y2xhbWF0b3J5XC1wYXJ0aWNsZTsKK+almiA8IG5hbWVcLW9mXC1mZXVkYWxcLXN0YXRlOwor5omYIDwgdG9cLWhvbGRcLXVwXC13aXRoXC1wYWxtOwor5rGyIDwgZHJhd1wtd2F0ZXJcLWZyb21cLXdlbGw7CivprYUgPCBraW5kXC1vZlwtZm9yZXN0XC1kZW1vbjsKK+S8iiA8IHRoaXJkXC1wZXJzb25cLXByb25vdW47CivpuL8gPCBzcGVjaWVzXC1vZlwtd2lsZFwtc3dhbjsKK+WnpSA8IG1hdGVybmFsXC1ncmFuZG1vdGhlcjsKK+aNpyA8IGhvbGRcLXVwXC1pblwtdHdvXC1oYW5kczsKK+S5mSA8IHNlY29uZFwtaGVhdmVuJydzXC1zdGVtOwor5ZCBIDwgaW50ZXJqZWN0aW9uXC0nJ2FsYXNcIScnOwor5aeoIDwgbW90aGVyXC93aWZlJydzXC1zaXN0ZXI7CivkuqkgPCBjaGluZXNlXC1sYW5kXC1tZWFzdXJlOwor5YO1IDwgc3RpZmZcLWFuZFwtbW90aW9ubGVzczsKK+aLsSA8IGZvbGRcLWhhbmRzXC1vblwtYnJlYXN0Owor56a+IDwgZ3JhaW5cLXN0aWxsXC1vblwtc3RhbGs7Civll6EgPCBzb3VuZFwtb2ZcLWZseWluZ1wtYmVlczsKK+eMqSA8IHNwZWNpZXNcLW9mXC1vcmFuZ3V0YW47Civni54gPCBmZXJvY2lvdXNcLWFwcGVhcmFuY2U7Civmi4ggPCBwaWNrXC11cFwtd2l0aFwtZmluZ2VyczsKK+mZmyA8IHN0ZXBzXC1sZWFkaW5nXC10aHJvbmU7CivpuK8gPCBmZW1hbGVcLW1hbmRhcmluXC1kdWNrOwor5Y2vIDwgdGhcLW9mXC1lYXJ0aFwtYnJhbmNoZXM7CivnhqAgPCBicmlnaHRcLWFuZFwtc3BhcmtsaW5nOwor6ZiCIDwgYmxvY2tlZFwtb3JcLXNlcGFyYXRlZDsKK+a3hSA8IHdhdGVyXC11c2VkXC13YXNoXC1yaWNlOwor5L2aIDwgaW5kdWxnZVwtaW5cLXBsZWFzdXJlczsKK+i+miA8IHJ1bWJsaW5nXC1vZlwtdmVoaWNsZXM7Civlt70gPCB0aFwtb2ZcLXRoZVwtOFwtdHJpZ3JhbXM7CivoqIcgPCB0aGVcLXNvdW5kXC1vZlwtYVwtY3Jhc2g7Civni7ogPCB0aGVcLXNuYXJsaW5nXC1vZlwtZG9nczsKK+a1lCA8IHN0ZWVwXC1iYW5rXC1ieVwtc3RyZWFtOwor6JOKIDwgbHV4dXJpYW50XC12ZWdldGF0aW9uOwor6JOgIDwgZ3JhY2lsYXJpYVwtdmVycnVjb3NhOwor6I+AIDwgbHV4dXJpYW5jZVwtb2ZcLWdyb3d0aDsKK+iDlyA8IHB1c3R1bGVzXC1vZlwtYW55XC1raW5kOwor6aKDIDwgZmx5XC1kb3duXC1vclwtZG93bndhcmQ7CivlnoYgPCBibGFja1wtY2xvZHNcLW9mXC1lYXJ0aDsKK+aolyA8IGFpbGFudGh1c1wtZ2xhbmR1bG9zYTsKK+iapyA8IGFcLXJlZFwtc3BvdHRlZFwtbGl6YXJkOwor57y2IDwgZWFydGhlblwtY3JvY2tcLW9yXC1qYXI7CivosbMgPCBhXC16aG91XC1keW5hc3R5XC1zdGF0ZTsKK+i9uiA8IHNtYWxsXC1saWdodFwtY2FycmlhZ2U7CivpgK8gPCBsZWF2ZVwtd2l0aG91dFwtcmVhc29uOwor5YiX6LuKIDwgdHJhaW5cLVwocmFpbHdheVwtdGVybVwpOwor5Y+L5aW9IDwgZnJpZW5kbHlcLVwocmVsYXRpb25zXCk7Civmq4PpgoogPCB0b1wtbGllXC1vblwtb25lJydzXC1zaWRlOwor5Yi26KOBIDwgXChlY29ub21pY1wpXC1zYW5jdGlvbnM7CivnpL7kuqQgPCBcKHNvY2lhbFwpXC1pbnRlcmFjdGlvbjsKK+aTjeihjCA8IFwoc3R1ZGVudCcnc1wpXC1iZWhhdmlvcjsKK+WFieejgeeinyA8IG1hZ25ldG9cLW9wdGljYWxcLWRpc2s7Civnt6jntYQgPCBvcmdhbml6ZVwtaW50b1wtZ3JvdXBzOwor6Kaq6L+RIDwgZ2V0XC1jbG9zZVwtdG9cLXNvbWVvbmU7CivljZropr3mnIMgPCBcKGludGVybmF0aW9uYWxcKVwtZmFpcjsKK+WkmueoruiqnuiogOaUr+aMgSA8IG11bHRpbGluZ3VhbFwtc3VwcG9ydDsKK+e1kOirliA8IFwocmVhY2hcLWFcKVwtY29uY2x1c2lvbjsKK+mXoei/sCA8IGV4cG91bmRcLVwoYVwtcG9zaXRpb25cKTsKK+e2reWQvueIvuS6uiA8IHVpZ2h1clwtcGVyc29uXHxwZW9wbGU7CivplovpmaTlrbjnsY0gPCB0b1wtZXhwZWxcLWZyb21cLXNjaG9vbDsKK+W/g+WvkiA8IGJlXC12ZXJ5XC1kaXNhcHBvaW50ZWQ7CivntYToo50gPCBhc3NlbWJsZVwtYW5kXC1pbnN0YWxsOwor6KqT5q27IDwgdG9cLXBsZWRnZVwtb25lJydzXC1saWZlOwor5LiA6Iis5oCnIDwgXChpblwpXC1nZW5lcmFsXC1cKHRlcm1zXCk7Civln47phIkgPCBjaXR5XC1hbmRcLWNvdW50cnlzaWRlOwor5Y2U5a6aIDwgXChyZWFjaFwtYW5cKVwtYWdyZWVtZW50Owor6YCL6YCD6JeqIDwgcmVmdWdlXC1mb3JcLWZ1Z2l0aXZlczsKK+mmluW4reS7o+ihqCA8IGNoaWVmXC1yZXByZXNlbnRhdGl2ZTsKK+awtOWfnyA8IFwodGVycml0b3JpYWxcKVwtd2F0ZXJzOwor5Yu75pW0IDwgbmVhdFwtYW5kXC13ZWxsXC1zcGFjZWQ7Civnmb3nnLznj6AgPCB0aGVcLXdoaXRlXC1vZlwtdGhlXC1leWU7CivniannkIbntZDmp4sgPCBwaHlzaWNhbFwtY29tcG9zaXRpb247CivlhafplqMgPCBcKGdvdmVybm1lbnRcKVwtY2FiaW5ldDsKK+W7oOeJjCA8IGJyYW5kXC1cKG9mXC1hXC1wcm9kdWN0XCk7CivlpbblpbYgPCBwYXRlcm5hbFwtZ3JhbmRtb3RoZXI7Civnt6jmrKEgPCBvcmRlclwtb2ZcLWFycmFuZ2VtZW50Owor5ZyL5pyD6K2w6ZW3IDwgc3BlYWtlclwtb2ZcLXRoZVwtaG91c2U7Civmh4nnlKjlubPlj7AgPCBhcHBsaWNhdGlvblwtcGxhdGZvcm07CivmlZnmjoggPCB1bml2ZXJzaXR5XC1wcm9mZXNzb3I7Civli6Llv4UgPCBpc1wtYm91bmRcLXRvXC1cKGhhcHBlblwpOwor5aKo5rGBIDwgcHJlcGFyZWRcLWNoaW5lc2VcLWluazsKK+Wkp+WwhyA8IGFcLWdlbmVyYWxcLW9yXC1hZG1pcmFsOwor5rCj5Lq6IDwgdG9cLWdldFwtc29tZW9uZVwtYW5ncnk7CivljIXloLQgPCBib29rXC1hXC13aG9sZVwtdGhlYXRyZTsKK+WFreiZnyA8IDZ0aFwtZGF5XC1vZlwtdGhlXC1tb250aDsKK+WMiOeJmeWIqeiqniA8IGh1bmdhcmlhblwtXChsYW5ndWFnZVwpOwor6Kme5b2ZIDwgXChsaXN0XC1vZlwpXC12b2NhYnVsYXJ5Owor6Luf6auU6YWN6YCB6ICFIDwgc29mdHdhcmVcLWRpc3RyaWJ1dG9yOwor5LiN5L+h5Lu75qGIIDwgbm9cLWNvbmZpZGVuY2VcLW1vdGlvbjsKK+m9niA8IHRvXC1kaXNwbGF5XC10aGVcLXRlZXRoOwor6byIIDwgYVwtZnJlc2hcLXdhdGVyXC10dXJ0bGU7CivpvIIgPCBhXC1raW5kXC1vZlwtc2VhXC10dXJ0bGU7CivmjZXon7LokYkgPCBpbnNlY3RcLWNhdGNoaW5nXC1sZWFmOwor6biHIDwga2luZFwtb2ZcLWJpcmRcLW9mXC1wcmV5Owor5pSd5b2xIDwgdG9cLXRha2VcLWFcLXBob3RvZ3JhcGg7CivpuIIgPCBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmQ7Civpt6sgPCB0dXJxdW9pc2VcLWtpbmdmaXNoZXI7Civpt4EgPCBmaXNoaGF3a1wtYm93XC1vclwtcHJvdzsKK+aUueWWhOmXnOS/giA8IHRvXC1pbXByb3ZlXC1yZWxhdGlvbnM7Civovq/nmb0gPCBvZmZlclwtYW5cLWV4cGxhbmF0aW9uOwor6bCcIDwgYmlnXC1tb3V0aGVkXC1mbG91bmRlcjsKK+mruiA8IHRoZVwtaGFpclwtZGlzaGV2ZWxsZWQ7CivmjqHoqKogPCBjb3ZlclwtXChhXC1uZXdzXC1zdG9yeVwpOwor6aqjIDwgaG9yc2VcLXdpdGhvdXRcLXNhZGRsZTsKK+WBnOeBq+WNlOitsCA8IGNlYXNlXC1maXJlXC1hZ3JlZW1lbnQ7CivppL0gPCBtYWtlXC1wcmVzZW50XC1vZlwtZm9vZDsKK+WFteermSA8IGFybXlcLXNlcnZpY2VcLXN0YXRpb247Civpn7EgPCB3aWxkXC1vbmlvbnNcLW9yXC1sZWVrczsKK+i7jeiyuyA8IG1pbGl0YXJ5XC1leHBlbmRpdHVyZTsKK+S6jOWNgeS6jOiZnyA8IDIyXC1uZFwtZGF5XC1vZlwtYVwtbW9udGg7CivpnIMgPCBsb25nXC1jb250aW51ZWRcLXJhaW5zOwor5pOa5oKJIDwgYWNjb3JkaW5nXC10b1wtcmVwb3J0czsKK+WJjeW5tCA8IHRoZVwteWVhclwtYmVmb3JlXC1sYXN0Owor6ZeNIDwgdG93ZXJcLW92ZXJcLWNpdHlcLWdhdGU7Civoo5zoibIgPCBjb21wbGVtZW50YXJ5XC1jb2xvdXI7CivmlLvli6IgPCBcKG1pbGl0YXJ5XClcLW9mZmVuc2l2ZTsKK+eiuuacieWFtuS6iyA8IFwoY29uZmlybVwtdG9cLWJlXClcLXRydWU7CivlpKflnovkvIHmpa0gPCBsYXJnZVwtc2NhbGVcLWluZHVzdHJ5Owor5YiG5pOUIDwgc2hhcmVcLXJlc3BvbnNpYmlsaXR5Owor6Y2xIDwgdGhpblwtcGxhdGVzXC1vZlwtbWV0YWw7Civkvb/lvpLooYzlgrMgPCBhY3RzXC1vZlwtdGhlXC1hcG9zdGxlczsKK+mJtiA8IHNhY3JpZmljaWFsXC1jYXVsZHJvbjsKK+mWi+eZvCA8IGV4cGxvaXRcLVwoYVwtcmVzb3VyY2VcKTsKK+att+S7oyA8IHN1Y2Nlc3NpdmVcLWR5bmFzdGllczsKK+mGsCA8IGJpdHRlclwtdGFzdGVcLWluXC13aW5lOwor6L+R5pelIDwgaW5cLXRoZVwtcGFzdFwtZmV3XC1kYXlzOwor5Zue6KiqIDwgXChwYXlcLWFcKVwtcmV0dXJuXC12aXNpdDsKK+W/heS4jeWPr+WwkSA8IGFic29sdXRlbHlcLW5lY2Vzc2FyeTsKK+eXheiuiiA8IHBhdGhvbG9naWNhbFwtY2hhbmdlczsKK+WHjOaZqCA8IGVhcmx5XC1pblwtdGhlXC1tb3JuaW5nOwor6LaCIDwgdG9cLXRha2VcLWFkdmFudGFnZVwtb2Y7CivkuI3pm4Xop4AgPCBvZmZlbnNpdmVcLXRvXC10aGVcLWV5ZTsKK+aOpeaUtuWZqOmdiOaVj+W6piA8IHJlY2VpdmVyXC1zZW5zaXRpdml0eTsKK+S4jeWcqOipseS4iyA8IGJlXC1ub3RoaW5nXC1kaWZmaWN1bHQ7CivpmbPov7Dlj6UgPCBkZWNsYXJhdGl2ZVwtc2VudGVuY2U7CivopawgPCBsb3dlclwtcGFydFwtb2ZcLWFcLXJvYmU7CivpgJnlgIvmnIggPCB0aGlzXC1cKGN1cnJlbnRcKVwtbW9udGg7CivoorMgPCBzcHJlYWRcLW9uZScnc1wtY2xvdGhlczsKK+att+S+huacgOS9jum7niA8IGFsbFwtdGltZVwtbG93XC1cKHBvaW50XCk7CivlgI3poLvlmaggPCBmcmVxdWVuY3lcLW11bHRpcGxpZXI7Civmp7Pni4AgPCBjZXJ0aWZpY2F0ZVwtb2ZcLW1lcml0Owor6JybIDwgaHlkcm9waGlsdXNcLWNvZ25hdHVzOwor6JuaIDwgY3lydG94aXBodXNcLXJpdHNlbWFlOwor5rCR5peP5Li7576p5oOF57eSIDwgbmF0aW9uYWxpc3RcLWZlZWxpbmdzOwor6aCY5bCO5qyKIDwgbGVhZGVyc2hpcFwtYXV0aG9yaXR5Owor6JaiIDwgd29vZHlcLWNsaW1iaW5nXC1wbGFudDsKK+WAmumHjSA8IHRvXC1yZWx5XC1oZWF2aWx5XC11cG9uOwor57SA5b+15pelIDwgZGF5XC1vZlwtY29tbWVtb3JhdGlvbjsKK+iMgCA8IG92ZXJncm93blwtd2l0aFwtZ3Jhc3M7CivoioQgPCBtZXRhcGxleGlzXC1zdGF1bnRvbmk7Civmh4nnlKjou5/ku7YgPCBhcHBsaWNhdGlvblwtc29mdHdhcmU7CivoiLogPCBwbGFjZVwtbmFtZVwtaW5cLXRhaXdhbjsKK+iEoSA8IHN0cmlwc1wtb2ZcLWRyaWVkXC1tZWF0Owor5oqK6YWSIDwgcmFpc2VcLW9uZScnc1wtd2luZVwtY3VwOwor6LuN55SoIDwgXChmb3JcKVwtbWlsaXRhcnlcLVwodXNlXCk7CivkuqTmj5vmioDooZMgPCBzd2l0Y2hpbmdcLXRlY2hub2xvZ3k7CivnsbPlvrfniL7kvK/oo6EgPCBtaWRkbGVidXJ5XC1cKGNvbGxlZ2VcKTsKK+S/nemHjSA8IHRha2VcLWNhcmVcLW9mXC1vbmVzZWxmOwor5aCx5LuHIDwgdG9cLXJldmVuZ2VcLVwob25lc2VsZlwpOwor5oqE6LqrIDwgdG9cLXNlYXJjaFwtXChhXC1wZXJzb25cKTsKK+eygyA8IGVtcHR5XC1odXNrc1wtb2ZcLWdyYWluOwor56iL5byP6Kqe6KiAIDwgcHJvZ3JhbW1pbmdcLWxhbmd1YWdlOwor55m95qOJ57SZIDwgc3RlbmNpbFwtdGlzc3VlXC1wYXBlcjsKK+eqoyA8IHRvXC1ydXNoXC1vdXRcLW9mXC1hXC1kZW47CivnqYcgPCBwYW5pY3VtXC1mcnVtZW50YWNldW07Civmo4nopZYgPCBjb3R0b25cLXBhZGRlZFwtamFja2V0Owor56OSIDwgdG9cLWZhbGxcLWZyb21cLW9yXC1pbnRvOwor5YSY5pepIDwgYXNcLWVhcmx5XC1hc1wtcG9zc2libGU7Civnn5EgPCB0aGVcLXB1cGlsXC1vZlwtdGhlXC1leWU7CivnnY0gPCB0b1wtbG9va1wtYXRcLWZlYXJmdWxseTsKK+WfueS/riA8IHRvXC1yZXBhaXJcLWVhcnRod29ya3M7CivlsIrph40gPCB0b1wtdmFsdWVcLVwoc29tZXRoaW5nXCk7CivnlL0gPCBkcmFpblwtYmV0d2VlblwtZmllbGRzOwor55SDIDwgYnJpY2tcLXdhbGxcLW9mXC1hXC13ZWxsOwor55m86KGo6IGy5piOIDwgdG9cLWlzc3VlXC1hXC1zdGF0ZW1lbnQ7CivnkJYgPCBjYXJ2ZWRcLWphZGVcLXdpbmVcLWN1cDsKK+eOpiA8IGJyb2tlblwtcGllY2VcLW9mXC1qYWRlOwor55eF54G2IDwgZm9jdXNcLVwob2ZcLWluZmVjdGlvblwpOwor5YWp6bue5Y2B5Lmd5YiGIDwgMlwtXDoxXC05XC1cKHRpbWVcLW9mXC1kYXlcKTsKK+S+teilsiA8IHRvXC1pbnZhZGVcLWFuZFwtYXR0YWNrOwor54CzIDwgdG9cLWFycml2ZVwtXChvZlwtd2F0ZXJcKTsKK+mbu+WtkOW3pealrSA8IGVsZWN0cm9uaWNzXC1pbmR1c3RyeTsKK+a+rCA8IHRvXC1yYWluXC1jb250aW51b3VzbHk7CivnsKHmnLQgPCBzaW1wbGVcLWFuZFwtdW5hZG9ybmVkOwor6aeB6YGLIDwgdHJhbnNwb3J0XC1ieVwtbGlnaHRlcjsKK+aMqueqqeWFkiA8IHRvXC1tb3ZlXC1cKHRvXC1hXC1ob3VzZVwpOwor5Y+s6ZaL5pyD6K2wIDwgdG9cLWNhbGxcLWFcLWNvbmZlcmVuY2U7CivmtKQgPCBhXC1mb3VudGFpblwtb3JcLXNwcmluZzsKK+S+i+iogCA8IGludHJvZHVjdG9yeVwtcmVtYXJrczsKK+WCmeafpSA8IGZvclwtZnV0dXJlXC1yZWZlcmVuY2U7Civmp74gPCBwYXN0ZVwtd2FsbFwtd2l0aFwtZGlydDsKK+W+t+Wci+S6uiA8IGdlcm1hblwtcGVyc29uXHxwZW9wbGU7Civmo6ggPCB0YWxseVwtb3JcLXdvb2RlblwtcGFzczsKK+ahrCA8IHBlYXJcLWFuZFwtb3RoZXJcLXRyZWVzOwor5a6J6YC4IDwgZWFzeVwtYW5kXC1jb21mb3J0YWJsZTsKK+aVsyA8IHRvXC1nb3Zlcm5cLWZvcmNlZnVsbHk7CivmlYEgPCB0b1wtd2VpZ2hcLWluXC10aGVcLWhhbmQ7Civnl4XmiL8gPCB3YXJkXC1cKG9mXC1hXC1ob3NwaXRhbFwpOwor55m+5LqL6YCaIDwga25vd2xlZGdlYWJsZVwtcGVyc29uOwor6KGo5b2wIDwgY2l0ZVwtXChpblwtZGlzcGF0Y2hlc1wpOwor5pCOIDwgdG9cLXJ1Ylwtd2l0aFwtdGhlXC1oYW5kOwor5LiN5q275b+DIDwgdW53aWxsaW5nXC10b1wtZ2l2ZVwtdXA7CivnpKbms4nmsLQgPCBtaW5lcmFsXC1zcHJpbmdcLXdhdGVyOwor5ZCD5LiN5LiLIDwgbm90XC1mZWVsXC1saWtlXC1lYXRpbmc7CivluYDmqqLpqZfluo/liJcgPCBmcmFtZVwtY2hlY2tcLXNlcXVlbmNlOwor6JCs57at57ayIDwgd29ybGRcLXdpZGVcLXdlYlwtXCh3d3dcKTsKK+WVhualreaHieeUqCA8IGJ1c2luZXNzXC1hcHBsaWNhdGlvbjsKK+avj+azgeaEiOS4iyA8IHN0ZWFkaWx5XC1kZXRlcmlvcmF0ZTsKK+aLnOacgyA8IHBheVwtYW5cLW9mZmljaWFsXC1jYWxsOwor5bCI56iLIDwgc3BlY2lhbFwtcHVycG9zZVwtdHJpcDsKK+WqkumrlOioquWVj+aOp+WItiA8IG1lZGlhXC1hY2Nlc3NcLWNvbnRyb2w7Civlgb3luaMgPCBjb3VudGVyZmVpdFwtY3VycmVuY3k7Civou43kuovmqZ/mp4sgPCBtaWxpdGFyeVwtaW5zdGl0dXRpb247CivltY8gPCBhXC1tb3VudGFpblwtaW5cLXNoZW54aTsKK+aJjeeVpSA8IGFiaWxpdHlcLWFuZFwtc2FnYWNpdHk7Civlra0gPCB0b1wtY2FycnlcLW9uXC10aGVcLWJhY2s7Civlm5vlubTliLbnmoTlpKflrbggPCBmb3VyXC15ZWFyXC11bml2ZXJzaXR5Owor5bGk5qyhIDwgYXJyYW5nZW1lbnRcLW9mXC1pZGVhczsKK+WIpOiZleatu+WIkSA8IHRvXC1zZW50YW5jZVwtdG9cLWRlYXRoOwor5auLIDwgc2xlbmRlclwtYW5kXC1kZWxpY2F0ZTsKK+WpoyA8IG1hcnJpYWdlXC1jb25uZWN0aW9uczsKK+ethuazlSA8IHRlY2huaXF1ZVwtb2ZcLXdyaXRpbmc7Civlr6bpq5TlsaQgPCBwaHlzaWNhbFwtbGF5ZXJcLVwob3NpXCk7Civlm6wgPCB0b1wtcmV0dXJuXC10b1wtb3JcLWZyb207CivkuqTpgJogPCBcKGF1dG9tb2JpbGVcKVwtdHJhZmZpYzsKK+ePvumajuautSA8IGF0XC10aGVcLXByZXNlbnRcLXN0YWdlOwor6LKo5bmj6LK25YC8IDwgY3VycmVuY3lcLWRldmFsdWF0aW9uOwor5Y+b5ZyL572qIDwgdGhlXC1jcmltZVwtb2ZcLXRyZWFzb247CivmjInnhafms5XlvosgPCBhY2NvcmRpbmdcLXRvXC10aGVcLWxhdzsKK+WKgiA8IGNoaXNlbFwtZm9yXC1lbmdyYXZpbmc7CivllZ/nqIsgPCBzZXRcLW91dFwtb25cLWFcLWpvdXJuZXk7CivkuI3lrozlhajkuK3nq4sgPCBpbXBlcmZlY3RcLW5ldXRyYWxpdHk7CivnlavloLEgPCBwaWN0b3JpYWxcLVwobWFnYXppbmVcKTsKK+WMl+WbnuatuOe3miA8IHRoZVwtdHJvcGljXC1vZlwtY2FuY2VyOwor5YWL6YeM5pav5omY5byXIDwgXCh3YXJyZW5cKVwtY2hyaXN0b3BoZXI7Civpm7vlrZDlhYPku7YgPCBlbGVjdHJvbmljXC1jb21wb25lbnQ7CivntpPmv5/oobDpgIAgPCBcKGVjb25vbWljXClcLXJlY2Vzc2lvbjsKK+S2mSA8IHN3ZWxsaW5nXC1vZlwtdGhlXC1ndW1zOwor5LaKIDwgdG9cLWJsZWVkXC1hdFwtdGhlXC1ub3NlOwor5YWJ5LqM5qW1566hIDwgbGlnaHRcLWVtaXR0aW5nXC1kaW9kZTsKK+S0nyA8IGFuXC1vbmVcLXllYXJcLW9sZFwtZGVlcjsKK+SzsyA8IGFcLWtpbmRcLW9mXC1zbWFsbFwtYmlyZDsKK+SzkSA8IGFcLXBoZWFzYW50XC1saWtlXC1iaXJkOwor5LKxIDwgYVwta2luZFwtb2ZcLWJsYWNrXC1iaXJkOwor5LKVIDwgdGhlXC15YW5ndHplXC1wb3Jwb2lzZTsKK+SxkCA8IGFcLWtpbmRcLW9mXC1ibGFja1wtZmlzaDsKK+SxgCA8IGFcLWtpbmRcLW9mXC1zbWFsbFwtZmlzaDsKK+S+teaTviA8IHRvXC1pbnZhZGVcLWFuZFwtaGFyYXNzOwor5bGP5bmVIDwgXCh0dlwtb3JcLW1vdmllXClcLXNjcmVlbjsKK+SuoSA8IGFcLXN1cGVybmF0dXJhbFwtaG9yc2U7CivkroIgPCBob3JzZVwtd2l0aFwtbG9uZ1wtaGFpcjsKK+SttyA8IGhvcnNlXC13aXRoXC1sb25nXC1tYW5lOwor5KypIDwgdG9cLWFic3RhaW5cLWZyb21cLW1lYXQ7CivkrKMgPCBhXC1zYWNyaWZpY2lhbFwtdmljdGltOwor5KugIDwgc2hvcnRcLWhhaXJcLWFuZFwtYmVhcmQ7CivpjKbmqJnos70gPCBjaGFtcGlvbnNoaXBcLWNvbnRlc3Q7Civkqb0gPCBhXC1xdWl2ZXJcLW9uZVwtYVwtaG9yc2U7CivkqYIgPCB0b1wtY29tZVwtdG9cLXRoZVwtZnJvbnQ7CivnkIPntrIgPCBuZXRcLVwoZm9yXC1iYWxsXC1nYW1lc1wpOwor5KeXIDwgbW91bnRhaW5zXC1jb2xsYXBzaW5nOwor5KamIDwgYVwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+SlpCA8IHRoZVwtbmVja1wtb2ZcLWFcLXBlc3RsZTsKK+SlhCA8IHRvXC1wbGFzdGVyXC13aXRoXC1nb2xkOwor5KS4IDwgc2hvcnRcLXNwZWFyXC1vclwtbGFuY2U7CivkuI3nqanlubPooaEgPCB1bnN0YWJsZVwtZXF1aWxpYnJpdW07CivmvKLljJYgPCBjaGluZXNlXC1sb2NhbGl6YXRpb247CivkoJEgPCBiZXR3ZWVuXC10aGVcLWJ1dHRvY2tzOwor5KCIIDwgaGFyZFwtdG9cLW1vdmVcLWZvcndhcmQ7Civkn6kgPCBoYXJkXC1vZlwtd2Fsa1wtZm9yd2FyZDsKK+SemSA8IHRvXC13YWxrXC1pblwtaHVycmllZGx5Owor5J2RIDwgYVwtbG9jYWxcLXByb2R1Y2VkXC1waWc7CivknKcgPCB0b1wtaW5zdWx0XC13aXRoXC13b3JkczsKK+SckyA8IGFcLXNsaXBcLW9mXC10aGVcLXRvbmd1ZTsKK+SbjCA8IHRvXC1wcm92b2tlXC1vclwtYXJvdXNlOwor5JmuIDwgc3RyaXBcLW9mXC10aGVcLWNsb3RoZXM7CivkmL4gPCBsZWdzXC1vZlwtdGhlXC10cm91c2VyczsKK+S/oeaBr+izh+a6kCA8IGluZm9ybWF0aW9uXC1yZXNvdXJjZTsKK+SVqyA8IGFcLW9uZVwtbGVnZ2VkXC1tb25zdGVyOwor5JSIIDwgbHVzaFwtZ3Jvd3RoXC1vZlwtZ3Jhc3M7Civlha3ljYHkupTmrbIgPCBzaXh0eVwtZml2ZVwteWVhcnNcLW9sZDsKK+SRoCA8IGxvbmdcLWFuZFwtbmFycm93XC1ib2F0Owor5JC4IDwgdGhlXC1iYWNrXC1vZlwtdGhlXC1rbmVlOwor5I+/IDwgdGhlXC1jYWxmXC1vZlwtdGhlXC1sZWdzOwor5I+hIDwgdW5jb29rZWRcLW9yXC1yYXdcLW1lYXQ7CivkirMgPCB0b1wtYnJlYWtcLWludG9cLXBpZWNlczsKK+SKsiA8IHRvXC1odWxsXC1yaWNlXC1yb3VnaGx5Owor5IqCIDwgcG9vclwtcXVhbGl0eVwtb2ZcLXJpY2U7CivlsI3ls5kgPCBtdXR1YWxcLWNvbmZyb250YXRpb247CivkiZEgPCBibGFja1wtc2tpbm5lZFwtYmFtYm9vOwor5IimIDwgYVwtY3VydmVkXC1iYW1ib29cLXdoaXA7CivkiJEgPCB0b29sc1wtdG9cLXVucmVlbFwtc2lsazsKK+SIgSA8IHRvb2xzXC11c2VkXC1vblwtYVwtYm9hdDsKK+SHmCA8IHRvb2xcLXRvXC1jb2xsZWN0XC1yb3BlOwor5IajIDwgYWJvZGVcLW9mXC10aGVcLWVtcGVyb3I7Civkho8gPCBhXC1raW5kXC1vZlwtcmljZVwtcGxhbnQ7Civkha4gPCBhXC1mdWxsXC1oZWFkXC1vZlwtZ3JhaW47CivkhZMgPCBjdXJ2ZWRcLXBpZWNlXC1vZlwtd29vZDsKK+SFjyA8IHJpY2VcLWJvaWxlZFwtdG9cLWdydWVsOwor5ISvIDwgdGVuXC1oYW5kbGVcLW9mXC1ncmFpbnM7Civnvo7ou40gPCB1c1wtYXJteVx8YXJtZWRcLWZvcmNlczsKK+SEgiA8IHRvXC1wcmF5XC1hbmRcLXRvXC1jdXJzZTsKK+SDsCA8IGJyaWNrXC1vclwtc3RvbmVcLXN0ZXBzOwor5IKSIDwgc2hvcnRcLXRvXC1jdXJyeVwtZmF2b3I7CivkgoIgPCB0b1wtZ2F6ZVwtYXRcLWluXC10ZXJyb3I7CivkgawgPCB0b1wtYWN0XC1wcmV0ZW50aW91c2x5Owor5IC3IDwgdG9cLWhhdmVcLXF1aWNrXC1nbGFuY2U7CivkgLIgPCBkaXNlYXNlc1wtaW5cLXRoZVwtZXllczsKK+S9jeaWvCA8IGJlXC1zaXR1YXRlZFwtXChpblwsXC1hdFwpOwor47+4IDwgdG9cLWNhc3RcLW9mZlwtdGhlXC1za2luOwor47+eIDwgYW5cLW9sZFwtbWFuXC1vZlwtZWlnaHR5Owor472kIDwgYVwtc21hbGxcLXBsb3RcLW9mXC1sYW5kOwor472iIDwgdG9cLXBsb3VnaFwtdGhlXC1maWVsZHM7CivjvZUgPCBuZXdcLWJyYW5jaGVzXC1ncm93aW5nOwor472DIDwgYVwtYmlnXC1waWVjZVwtb2ZcLWJyaWNrOwor47yiIDwgYnJpY2tzXC1hblwtZWF0aGVuXC1qYXI7CivjvIkgPCBncmVlblwtY29sb3JlZFwtbWVsb25zOwor47uuIDwgYnJpZ2h0XC1hbmRcLWJyaWxsaWFudDsKK+O6riA8IGZpbmVcLXN0b25lXC1saWtlXC1qYWRlOwor47qCIDwgYmlnXC1hbmRcLXN0cm9uZ1wtc2hlZXA7CivjuZggPCBzaGluYm9uZVwtb2ZcLWFcLWNhdHRsZTsKK+O4qiA8IGFuXC1veFwtd2Fsa2luZ1wtc2xvd2x5Owor6K6K6aC7IDwgZnJlcXVlbmN5XC1jb252ZXJzaW9uOwor56u254it5YqbIDwgY29tcGV0aXRpdmVcLXN0cmVuZ3RoOwor47eZIDwgdG9cLWZyeVwtaW5cLWZhdFwtb3JcLW9pbDsKK+O2lCA8IHN3aWZ0XC1hbmRcLXRvcnJlbnRpYWw7CivjtZ4gPCBiZWxsaWVkXC1pblwtd2F0ZXJcLWdhczsKK+OzvCA8IGJ1YmJsaW5nXC1vZlwtZm91bnRhaW47Civjs5ogPCBmbG93aW5nXC1vZlwtdGhlXC13YXRlcjsKK+OzlCA8IHRvXC1zb2FrXC1vclwtYmVcLXNvYWtlZDsKK+OyqyA8IGhhaXJcLWtub3RzXC1pblwtYVwtbWVzczsKK+OwiyA8IGFcLWtpbmRcLW9mXC1mcnVpdFwtdHJlZTsKK+OvjCA8IHRvXC1vcGVyYXRlXC1vclwtbWFuYWdlOwor5pm66IO95aSn5qiTIDwgaW50ZWxsaWdlbnRcLWJ1aWxkaW5nOwor5bCR5pW45rCR5pePIDwgbWlub3JpdHlcLW5hdGlvbmFsaXR5Owor5Zau5a2XIDwgaW5kaXZpZHVhbFwtY2hhcmFjdGVyOwor462eIDwgYVwta2luZFwtaW5mZXJpb3JcLXdvb2Q7CivjrZIgPCBhXC1mYXJtaW5nXC1pbnN0cnVtZW50Owor46m7IDwgcnVnZ2VkXC1tb3VudGFpblwtcGF0aDsKK+OplCA8IGFcLXRvb2xcLXRvXC1tYWtlXC1hXC1ib3c7Civjp7kgPCB0b1wtc3RyaWtlXC13aXRoXC1maXN0czsKK+iDjOW/gyA8IGFcLXNsZWV2ZWxlc3NcLWdhcm1lbnQ7CivmiLblj6MgPCByZWdpc3RlcmVkXC1yZXNpZGVuY2U7CivjoZkgPCBjdXJ0YWluXC1mb3JcLWNhcnJpYWdlOwor5pys56eRIDwgdW5kZXJncmFkdWF0ZVwtY291cnNlOwor46CXIDwgZGVlcFwtaW5cLXRoZVwtbW91bnRhaW47Civjnp8gPCBzYXZpbmdzXC1hbmRcLXJlc2VydmVzOwor45mjIDwgdG9cLXBpbGVcLWFcLXNhbmRcLWhpbGxzOwor5L6/5LitIDwgYXRcLW9uZScnc1wtY29udmVuaWVuY2U7CivjmZEgPCB0aGVcLWNhbm9weVwtb2ZcLWhlYXZlbjsKK+OYjiA8IHRoZVwtcm9hcnNcLW9mXC1hXC10aWdlcjsKK+mRkuWumuWnlOWToeacgyA8IGV2YWx1YXRpb25cLWNvbW1pdHRlZTsKK+OYhSA8IHRvXC1ob2xkXC1pblwtdGhlXC1tb3V0aDsKK+WvtuWKjSA8IGFcLWRvdWJsZVwtZWRnZWRcLXN3b3JkOwor45WhIDwgdGhlXC1iZWRcLW9mXC1hXC10b3JyZW50Owor45WMIDwgdG9cLXJhaXNlXC10aGVcLWN1cnRhaW47CivjlIsgPCBjdXRcLWludG9cLXRoaW5cLXNsaWNlczsKK+OShSA8IHRvXC11bmJpbmRcLXRoZVwtY29sbGFyOwor45GJIDwgY2Fubm90XC1zdHJhaWdodGVuXC11cDsKK+mGnumHgCA8IG11bGxcLW92ZXJcLVwoYW5cLWlzc3VlXCk7CivlhajpnaLnpoHmraIgPCBjb21wbGV0ZVwtcHJvaGliaXRpb247CivmmpfomZ8gPCBzZWNyZXRcLXNpZ25hbFwtXChzaWduXCk7CivogIHniLogPCBtYXRlcm5hbFwtZ3JhbmRmYXRoZXI7Civnj63mnJ8gPCBzY2hlZHVsZVwtXChmb3JcLWZsaWdodDsKK+iyt+aWuSA8IGJ1eWVyXC1cKGluXC1jb250cmFjdHNcKTsKK+WuieWonCA8IGFubmFcLVwocGVyc29uJydzXC1uYW1lXCk7CivpqL7ppqzlpKfou4ogPCBtdWxlXC1hbmRcLWhvcnNlXC1jYXJ0czsKK+e2k+a/n+eZvOWxlSA8IGVjb25vbWljXC1kZXZlbG9wbWVudDsKK+mAmuioiuezu+e1sSA8IGNvbW11bmljYXRpb25cLXN5c3RlbTsKK+iyrOaIkCA8IGdpdmVcLXNvbWVib2R5XC1hXC10YXNrOwor5LiN5LqM5rOV6ZaAIDwgdGhlXC1vbmVcLWFuZFwtb25seVwtd2F5Owor6YKP6Lyv6Y+I6Lev5o6n5Yi2IDwgbG9naWNhbFwtbGlua1wtY29udHJvbDsKK+Wkmum6vCA8IGhvd1wtXCh3b25kZXJmdWxcLFwtZXRjXCk7CivphazorJ0gPCB0b1wtdGhhbmtcLXdpdGhcLWFcLWdpZnQ7CivnhKHlg7nnj43nj6AgPCBwZWFybFwtb2ZcLWdyZWF0XC1wcmljZTsKK+W+gOi/lCA8IHRvXC1nb1wtYmFja1wtYW5kXC1mb3J0aDsKK+WMhemHkSA8IGNvdmVyXC13aXRoXC1nb2xkXC1sZWFmOwor5pyq5oiQ5bm06ICFIDwgbWlub3JcLVwobm90XC1hblwtYWR1bHRcKTsKK+aakeeGsSA8IGhvdFwtXChzdW1tZXJcKVwtd2VhdGhlcjsKK+W3oei/tOWIhuaekOerr+WPoyA8IHJvdmluZ1wtYW5hbHlzaXNcLXBvcnQ7CivkvIrmlq/omK3loKEgPCBpc2xhbWFiYWRcLVwocGFraXN0YW5cKTsKK+mBi+WLleacgyA8IGFcLXNwb3J0c1wtY29tcGV0aXRpb247CivkuI3mm74gPCBuZXZlclwtXChoYXZlXC1kb25lXC1zdGg7CivnuL3pg6ggPCBnZW5lcmFsXC1oZWFkcXVhcnRlcnM7CivosrblgLwgPCB0b1wtYmVjb21lXC1kZXZhbHVhdGVkOwor6YG66aq4IDwgXChkZWFkXClcLWh1bWFuXC1yZW1haW5zOwor5LqM5Y2B5Zub6JmfIDwgMjRcLXRoXC1kYXlcLW9mXC1hXC1tb250aDsKK+mhnuaOqCA8IHRvXC1yZWFzb25cLWJ5XC1hbmFsb2d5Owor5aSn5aSx5omA5pybIDwgZ3JlYXRseVwtZGlzc2Fwb2ludGVkOwor5ZKM5aW9IDwgdG9cLWJlY29tZVwtcmVjb25jaWxlZDsKK+acrOWcnyA8IG9uZScnc1wtbmF0aXZlXC1jb3VudHJ5Owor5Lqe5YCrIDwgYWFyb25cLVwoYVwtbWFuJydzXC1uYW1lXCk7Civnvp7mgaUgPCBcKGFcLWZlZWxpbmdcLW9mXClcLXNoYW1lOwor5ZOI5L2bIDwgaGFydmFyZFwtXCh1bml2ZXJzaXR5XCk7CivmmpHmnJ8gPCBzdW1tZXJcLXZhY2F0aW9uXC10aW1lOwor5LyB5qWt6ZuG5ZyYIDwgaW5kdXN0cnlcLWFzc29jaWF0aW9uOwor566h55CG5o6l5Y+jIDwgbWFuYWdlbWVudFwtaW50ZXJmYWNlOwor5ZG85ZaKIDwgc2hvdXRcLVwoc2xvZ2Fuc1wsXC1ldGNcKTsKK+e5vee0myA8IGluXC1yaW90b3VzXC1wcm9mdXNpb247CivlkYjloLEgPCB0b1wtXChzdWJtaXRcLWFcKVwtcmVwb3J0Owor55Sf55Si6Kit5YKZIDwgcHJvZHVjdGlvblwtZXF1aXBtZW50Owor5Y2K55m9IDwgZmlmdHlcLVwoeWVhcnNcLW9mXC1hZ2VcKTsKK/CggaUgPCB0aGVcLWhvcm5zXC1vZlwtYVwtc2hlZXA7Civot5Hpvo3lpZcgPCB0b1wtcGxheVwtYVwtc21hbGxcLXJvbGU7CivmmILnhLYgPCB1cHJpZ2h0XC1hbmRcLXVuYWZyYWlkOwor6YKE6KqqIDwgdG9cLWFkZFwtXChpblwtc3BlYWtpbmdcKTsKK+abtOWKoCA8IG1vcmVcLVwodGhhblwtc3RoXC1lbHNlXCk7Civlvrfpm7fniL4gPCBcKGp1bmVcLXRldWZlbFwpXC1kcmV5ZXI7Civnvqnli5nmlZnogrIgPCBjdW1wdWxzb3J5XC1lZHVjYXRpb247CivniLrniLogPCBwYXRlcm5hbFwtZ3JhbmRmYXRoZXI7CivlgrPovLjmjqfliLYgPCB0cmFuc21pc3Npb25cLWNvbnRyb2w7CivkuI3li50gPCBjYW5ub3RcLWJlYXJcLW9yXC1zdGFuZDsKK+aVl+iDgyA8IHNwb2lsXC1vbmUnJ3NcLWFwcGV0aXRlOwor6K6K5b+DIDwgY2Vhc2VcLXRvXC1iZVwtZmFpdGhmdWw7CivkuI3mh7flpb3mhI8gPCBoYXJib3VyXC1ldmlsXC1kZXNpZ25zOwor5LiK5YCLIDwgZmlyc3RcLVwob2ZcLXR3b1wtcGFydHNcKTsKK+WPquS4jemBjuW5vuW5tOWJjSA8IG9ubHlcLWFcLWZld1wteWVhcnNcLWFnbzsKK+W5viA8IGhvd1wtbWFueVw/XC1ob3dcLW11Y2hcPzsKK+WljyA8IG1lbW9yaWFsaXplXC1lbXBlcm9yOwor5oKoIDwgaG9ub3JpZmljXC1mb3JcLScneW91Jyc7CivlkI8gPCBnb3Zlcm5tZW50XC1vZmZpY2lhbDsKK+WFgCA8IHRvXC1jdXRcLW9mZlwtdGhlXC1mZWV0Owor6IO0IDwgdGhlXC1sYXJnZVwtaW50ZXN0aW5lOwor56emIDwgZmV1ZGFsXC1zdGF0ZVwtb2ZcLXFpbjsKK+ahgSA8IGNyb3NzXC1iZWFtc1wtb2ZcLXJvb2Y7Civojo4gPCBraW5kXC1vZlwtc2VkZ2VcLWdyYXNzOwor6JabIDwga2luZFwtb2ZcLW1hcnNoXC1ncmFzczsKK+e1oyA8IHRvXC1iYXN0ZVwtZm9yXC1zZXdpbmc7CivmgpYgPCBiZVwtY29udHJhZGljdG9yeVwtdG87CivoipIgPCBtaXNjYW50aHVzXC1zaW5lbnNpczsKK+WYtiA8IG5laWdoaW5nXC1vZlwtYVwtaG9yc2U7Civlj70gPCBzaWdoXC1pblwtZGlzYXBwcm92YWw7CivljqUgPCBwZXJzb25hbFwtcHJvbm91blwtaGU7CivlnK0gPCBqYWRlXC1wb2ludGVkXC1hdFwtdG9wOwor5b6YIDwgd2Fsa1wtYmFja1wtYW5kXC1mb3J0aDsKK+aZpCA8IGhhdmVcLWludGVydmlld1wtd2l0aDsKK+iItyA8IHRoZVwtc2lkZXNcLW9mXC1hXC1ib2F0Owor6YKsIDwgdmFyaW91c1wtcGxhY2VcLW5hbWVzOwor6KSQIDwgY29hcnNlXC13b29sZW5cLWNsb3RoOwor6aaIIDwgb2ZmZXJcLWZvb2RcLXN1cGVyaW9yOwor5ZSnIDwgY2hpcnBpbmdcLW9mXC1pbnNlY3RzOwor5ZKUIDwgdXNlZFwtaW5cLXRyYW5zbGF0aW9uOwor54G4IDwgY2F1dGVyaXplXC13aXRoXC1tb3hhOwor6am3IDwgdGVhbVwtb2ZcLWZvdXJcLWhvcnNlczsKK+eyvCA8IGNsZWFyXC1cKGFzXC1vZlwtd2F0ZXJcKTsKK+e+miA8IHNwZWNpZXNcLW9mXC1hbnRlbG9wZTsKK+WRkyA8IHRhbGtcLWluXC1vbmUnJ3NcLXNsZWVwOwor56+ZIDwgcG9sZVwtdXNlZFwtcHVudFwtYm9hdDsKK+a5jSA8IHJhcGlkXC13YXRlclwtY3VycmVudDsKK+iEjSA8IG1pbmNlZFwtbWVhdFwtb3JcLWZpc2g7Civpj5YgPCB0b1wtZmlnaHRcLXRvXC10aGVcLWVuZDsKK+iCvSA8IGFcLWNoZW1pY2FsXC1jb21wb3VuZDsKK+mKriA8IGJlbGxzXC1odW5nXC1vblwtaG9yc2U7CivnrLMgPCBhXC1yZWVkXC1sZWFmXC13aGlzdGxlOwor6JaPIDwgc2VlZFwtb2ZcLWpvYicnc1wtdGVhcnM7Civmgp0gPCB0b1wtbGF1Z2hcLWF0XC10b1wtcGl0eTsKK+ixhyA8IGFcLXNtYWxsXC1raWRuZXlcLWJlYW47CivmoYkgPCBldWNhbHlwdHVzXC1nbG9idWx1czsKK+i5gSA8IHRvXC13YWxrXC13aXRoXC1hXC1saW1wOwor6IWIIDwgYW5cLW9yZ2FuaWNcLWNvbXBvdW5kOwor6J6fIDwga2luZFwtb2ZcLWNhdGVycGlsbGFyOwor5rOuIDwgemhvdVwtZHluYXN0eVwtc2Nob29sOwor6bKzIDwgdGhlXC1zaWx2ZXJ5XC1wb21mcmV0Owor6ZyqIDwgbG9uZ1wtYW5kXC1oZWF2eVwtcmFpbjsKK+aemCA8IHRoZVwtaGFuZGxlXC1vZlwtdG9vbHM7Civmu7kgPCB0aGVcLWJhbmtcLW9mXC1hXC1zdGVhbTsKK+W9syA8IHN0ZXBcLXdpdGhcLWxlZnRcLWZvb3Q7Civkuo0gPCB0b1wtdGFrZVwtc21hbGxcLXN0ZXBzOwor56CYIDwgYVwta2luZFwtb2ZcLWZhcm1cLXRvb2w7CivmoI4gPCBjaGVzdG51dFwtbGVhdmVkXC1vYWs7CivpuYcgPCB0aGVcLXNpbHZlclwtcGhlYXNhbnQ7Civoi4wgPCBhdmVycmhvcmFcLWNhcmFtYm9sYTsKK+mDmyA8IG91dGVyXC13YWxsc1wtb2ZcLWNpdHk7CivphqIgPCBtaW5jZWRcLXBpY2tsZWRcLW1lYXQ7CivnnJogPCBkaXNlYXNlXC1vZlwtdGhlXC1leWVzOwor6KOJIDwgc1wtc2VhbVwtaW5cLWFcLWdhcm1lbnQ7CivltKYgPCBhXC1tb3VudGFpblwtaW5cLWthbnN1Owor5YWVIDwgYVwtZmVtYWxlXC1yaGlub2Nlcm9zOwor6Ki65pa35Yqf6IO9IDwgZGlhZ25vc3RpY1wtZnVuY3Rpb247CivosqHmlL/pg6ggPCBtaW5pc3RyeVwtb2ZcLWZpbmFuY2U7CivlpZTmtYEgPCBmbG93XC1hdFwtZ3JlYXRcLXNwZWVkOwor5buj5ZGK5ZWGIDwgYWR2ZXJ0aXNpbmdcLWNvbXBhbnk7CivkuIDnmb7kupTljYHlpJrlubQgPCBtb3JlXC10aGFuXC0xNTBcLXllYXJzOwor5pel5paHIDwgamFwYW5lc2VcLVwobGFuZ3VhZ2VcKTsKK+mmrOS+huilv+S6nuiqniA8IG1hbGFzaWFuXC1cKGxhbmd1YWdlXCk7Civmkp7oposgPCB0b1wtbWVldFwtYnlcLWFjY2lkZW50Owor5beu6aGNIDwgYmFsYW5jZVwtXChmaW5hbmNpYWxcKTsKK+WNiuaIqiA8IGhhbGZcLVwob2ZcLWFcLXNlY3Rpb25cKTsKK+WJm+e6lCA8IFwoanVzdFwpXC1hXC1tb21lbnRcLWFnbzsKK+aFsOWuieWppiA8IGNvbWZvcnRcLXdvbWFuXHx3b21lbjsKK+aKmOWwhOeOhyA8IGluZGV4XC1vZlwtcmVmcmFjdGlvbjsKK+W7oOekpiA8IGZhY3Rvcmllc1wtYW5kXC1taW5lczsKK+WCs+i8uOWqkumrlCA8IHRyYW5zbWlzc2lvblwtbWVkaXVtOwor6LW35q275Zue55SfIDwgYXJpc2VcLWZyb21cLXRoZVwtZGVhZDsKK+eGseeDiCA8IHdhcm1cLVwod2VsY29tZVwsXC1ldGNcKTsKK+mrmOmajuiqnuiogCA8IGhpZ2hcLWxldmVsXC1sYW5ndWFnZTsKK+W5tOS7o+WInSA8IGJlZ2lubmluZ1wtb2ZcLWFuXC1hZ2U7Civkup7mtLLoiIflpKrlubPmtIvlnLDljYAgPCBhc2lhXC1wYWNpZmljXC1yZWdpb247Civovq/orbcgPCBzcGVha1wtaW5cLWRlZmVuY2VcLW9mOwor576O5ZyL5Lq65rCRIDwgdGhlXC1hbWVyaWNhblwtcGVvcGxlOwor5ZOl5YCr5q+U5Lqe5aSn5a24IDwgY29sdW1iaWFcLXVuaXZlcnNpdHk7CivpmLLnpqbmgKcgPCBkZWZlbnNpdmVcLVwod2VhcG9uc1wpOwor6YGO5LqG5LqU5YiG6ZCYIDwgZml2ZVwtbWludXRlc1wtcGFzc2VkOwor5omT5qmr54KuIDwgc3BlYWtcLXVud2FycmFudGVkbHk7CivlpKfmibkgPCBsYXJnZVwtcXVhbnRpdGllc1wtb2Y7CivpnaLlmq7pgKPmjqUgPCBjb25uZWN0aW9uXC1vcmllbnRlZDsKK+WwiOalreS6uuaJjSA8IGV4cGVydFwtXChpblwtYVwtZmllbGRcKTsKK+eEoee4q+mAo+aOpSA8IHNlYW1sZXNzXC1jb25uZWN0aW9uOwor57aB56WoIDwga2lkbmFwXC1cKGZvclwtcmFuc29tXCk7Civnmb3pioUgPCBjb3BwZXJcLW5pY2tlbFwtYWxsb3k7CivlhYvnvoXlnLDkup7oqp4gPCBjcm9hdGlhblwtXChsYW5ndWFnZVwpOwor57Wx56ixIDwgY29sbGVjdGl2ZWx5XC1jYWxsZWQ7CivnmbzoqIDmrIogPCB0aGVcLXJpZ2h0XC1vZlwtc3BlZWNoOwor5bui5rCjIDwgd2FzdGVcLVwoZXhoYXVzdFwpXC1nYXM7CivoqI7oq5bnmoTorbDpoYwgPCB0b3BpY1wtb2ZcLWRpc2N1c3Npb247CivljIXlrZAgPCBzdGVhbWVkXC1zdHVmZmVkXC1idW47CivntIXokYkgPCByZWRcLWF1dHVtbmFsXC1sZWF2ZXM7CivlsaTopovov63lh7ogPCB0b1wtb2NjdXJcLWZyZXF1ZW50bHk7Civnmb7osqggPCBnZW5lcmFsXC1tZXJjaGFuZGlzZTsKK+msoumrriA8IGhhaXJcLW9uXC10aGVcLXRlbXBsZXM7Civnvo7lnIvku6XlpJYgPCBvdXRzaWRlXC1vZlwtdGhlXC11XC5zXC47CivlhJjph48gPCBhc1wtbXVjaFwtYXNcLXBvc3NpYmxlOwor6Lqr6auYIDwgXChhXC1wZXJzb24nJ3NcKVwtaGVpZ2h0Owor5pWZ5a24IDwgdGVhY2hlclwtYW5kXC1zdHVkZW50Owor6YSZ5Lq6IDwgeW91clwtaHVtYmxlXC1zZXJ2YW50Owor5Zyw5Z2A55qE6L2J5o+bIDwgYWRkcmVzc1wtdHJhbnNsYXRpb247CivmlYXlrq4gPCB0aGVcLWltcGVyaWFsXC1wYWxhY2U7CivmlL/lsYAgPCBwb2xpdGljYWxcLXNpdHVhdGlvbjsKK+edv+aZuiA8IHdpc2VcLWFuZFwtZmFyc2lnaHRlZDsKK+iHquWLleWcsOW3peS9nCA8IGF1dG9tYXRpY1wtb3BlcmF0aW9uOwor5q2k5pmC5q2k5Yi7IDwgYXRcLXRoaXNcLXZlcnlcLW1vbWVudDsKK+m4kiA8IHRoZVwtZWFzdGVyblwtamFja2RhdzsKK+m2siA8IHNpYmVyaWFuXC1mbHljYXRjaGVyOwor5bm05LmL5LmFIDwgcGVyaW9kXC1vZlwtXC5cLlwuXC15ZWFyczsKK+ijnOinkiA8IHN1cHBsZW1lbnRhcnlcLWFuZ2xlOwor6bC2IDwga29ub3NpcnVzXC1wdW5jdGF0dXM7Civpr6UgPCBwb21hdG9tdXNcLXNhbHRhdHJpeDsKK+mvlSA8IGNvcnlwaGFlbmFcLWhpcHB1cnVzOwor6a62IDwgc2ViYXN0b2Rlc1wtZ3VudGhlcmk7CivpgLLmlLsgPCBhdHRhY2tcLVwobWlsaXRhcmlseVwpOwor5pO65byEIDwgbW92ZVwtYmFja1wtYW5kXC1mb3J0aDsKK+S4jeS4reaEjyA8IG5vdFwtdG9cLW9uZScnc1wtbGlraW5nOwor6aOCIDwgd2luZFwtaW5cLWhpZ2hcLXBsYWNlczsKK+miviA8IGJsb3dpbmdcLW9mXC10aGVcLXdpbmQ7CivpoI0gPCB0b1wtcmFpc2VcLW9uZScnc1wtaGVhZDsKK+mfmCA8IGFyY2hlcicnc1wtdGh1bWJcLXJpbmc7CivpnqwgPCBhXC1xdWl2ZXJcLW9uXC1hXC1ob3JzZTsKK+iyv+aYk+S/neitt+S4u+e+qSA8IHRyYWRlXC1wcm90ZWN0aW9uaXNtOwor6YGN5biDIDwgYmVcLWZvdW5kXC1ldmVyeXdoZXJlOwor5aSa6buo6YG46IiJIDwgbXVsdGlwYXJ0eVwtZWxlY3Rpb247CivpnLYgPCBkb3ducG91cmluZ1wtb2ZcLXJhaW47CivpnK4gPCBkZW5zZW5lc3NcLW9mXC1jbG91ZHM7CivlhYnnupboobDmuJsgPCBvcHRpY2FsXC1hdHRlbnVhdGlvbjsKK+aUueWQjSA8IHRvXC1jaGFuZ2VcLW9uZXNcLW5hbWU7CivpkbQgPCB0b1wtZW5ncmF2ZVwtb3JcLWNhcnZlOwor5LiN5Yue6ICM542yIDwgcmVhcFwtd2l0aG91dFwtc293aW5nOwor6Y6EIDwgaXJpZGl1bVwtZWluc3RlaW5pdW07CivmioDooZPmqJnmupYgPCB0ZWNobm9sb2d5XC1zdGFuZGFyZDsKK+ijnOiAgyA8IG1ha2VcLXVwXC1leGFtaW5hdGlvbjsKK+mWi+eZvOmBjueoiyA8IGRldmVsb3BtZW50XC1wcm9jZXNzOwor55m+5YiG5Yi2IDwgaHVuZHJlZFwtbWFya1wtc3lzdGVtOwor6YiDIDwgYW5jaWVudFwtd2luZVwtdmVzc2VsOwor6YWnIDwgdG9cLXBsZWRnZVwtd2l0aFwtd2luZTsKK+WIhuaekOWutiA8IFwocG9saXRpY2FsXClcLWFuYWx5c3Q7Civmkq3lvIQgPCBvcmRlclwtc3ViamVjdFwtYWJvdXQ7CivlubTlupUgPCB0aGVcLWVuZFwtb2ZcLXRoZVwteWVhcjsKK+e0hOargyA8IGFya1wtb2ZcLXRoZVwtY292ZW5hbnQ7Civluavlt6UgPCBoZWxwXC13aXRoXC1mYXJtXC13b3JrOwor5aCx5buiIDwgcmVwb3J0XC1hc1wtd29ydGhsZXNzOwor6YCa5L+h6LKg6LyJIDwgY29tbXVuaWNhdGlvbnNcLWxvYWQ7CivluLjopo/mrablmaggPCBjb252ZW50aW9uYWxcLXdlYXBvbjsKK+e1seioiOe1kOaenCA8IHN0YXRpc3RpY2FsXC1yZXN1bHRzOwor5Y+456m66KaL5oWjIDwgYVwtY29tbW9uXC1vY2N1cnJlbmNlOwor56uL5rOV5pyDIDwgbGVnaXNsYXRpdmVcLWNvdW5jaWw7Civln7fmjowgPCB3aWVsZFwtXChwb3dlclwsXC1ldGNcLlwpOwor6KW0IDwgYVwtb25lXC1waWVjZVwtZ2FybWVudDsKK+ikgyA8IGFcLXNlYW1cLWluXC1hXC1nYXJtZW50Owor5byV5Yqb5aC0IDwgZ3Jhdml0YXRpb25hbFwtZmllbGQ7CivlhbXmrIogPCBtaWxpdGFyeVwtbGVhZGVyc2hpcDsKK+igsCA8IGNlcmFtYnl4XC1ydWdpY29sbGlzOwor6J+oIDwgdGhlXC1zaWJlcmlhblwtamVyYm9hOwor6J2dIDwgdGhlXC1sYXJ2YVwtb2ZcLWxvY3VzdDsKK+S6jOWNgeS4g+iZnyA8IDI3dGhcLWRheVwtb2ZcLWFcLW1vbnRoOwor6YC85L6bIDwgZXh0b3J0XC1hXC1jb25mZXNzaW9uOwor6KaW6ICM5LiN6KaLIDwgdHVyblwtYVwtYmxpbmRcLWV5ZVwtdG87Civkv53lronoh6rli5XljJYgPCBzZWN1cml0eVwtYXV0b21hdGlvbjsKK+iUiiA8IG5hc3R1cnRpdW1cLW1vbnRhbnVtOwor6JOHIDwgZm9sbGljbGVzXC1vZlwtcGxhbnRzOwor6JGHIDwgZWxzaG9sdHJpYVwtcGFsdHJpbmk7CivojpUgPCBueW1waG9pZGVzXC1wZWx0YXR1bTsKK+iMsyA8IGN5cGVydXNcLW1hbGFjY2Vuc2lzOwor6IuzIDwgcGV0YXNpdGVzXC1qYXBvbmljdXM7CivoiasgPCBib3dcLW9yXC1wcm93XC1vZlwtYm9hdDsKK+a2iOiAl+mHjyA8IHJhdGVcLW9mXC1jb25zdW1wdGlvbjsKK+mbu+WtkOaWh+S7tiA8IGVsZWN0cm9uaWNcLWRvY3VtZW50Owor6ZaL5pS+IDwgbGlmdFwtXChyZXN0cmljdGlvbnNcKTsKK+eZu+aciCA8IGdvXC1cKHVwXClcLXRvXC10aGVcLW1vb247CivnvqIgPCBmaW5lXC13b29sZW5cLWZhYnJpY3M7CivmoLjpm7vnq5kgPCBudWNsZWFyXC1wb3dlclwtcGxhbnQ7CivnvpEgPCBhXC1ndWlkZVwtdG9cLWdvb2RuZXNzOwor57WQ5qeL5Yqp6KmeIDwgc3RydWN0dXJhbFwtcGFydGljbGU7CivlrZfmlp/lj6XphYwgPCB3ZWlnaGluZ1wtZXZlcnlcLXdvcmQ7CivnubIgPCB0b1wtd29ya1wtYXNcLWFcLXRhaWxvcjsKK+W5o+WAvCA8IHZhbHVlXC1vZlwtYVwtY3VycmVuY3k7CivntoAgPCBhXC1raW5kXC1vZlwtc2Fja2Nsb3RoOwor5pS/5rK76Zec5L+CIDwgcG9saXRpY2FsXC1yZWxhdGlvbnM7CivlhrDloLQgPCBza2F0aW5nXC1vclwtaWNlXC1yaW5rOwor55u45LqS5YW85a65IDwgbXV0dWFsbHlcLWNvbXBhdGlibGU7CivlsIvkuovnlJ/pnZ4gPCB0b1wtbG9va1wtZm9yXC10cm91YmxlOwor56uRIDwgYmVcLXZhc3RcLWFuZFwtZW5kbGVzczsKK+emkyA8IHRvXC1kcml2ZVwtb3V0XC1kZW1vbnM7CivnpZAgPCBkaXZpbmVcLWludGVydmVudGlvbjsKK+ebruWJjSA8IGF0XC10aGVcLXByZXNlbnRcLXRpbWU7CivooajpnaLljJYgPCBjb21lXC10b1wtdGhlXC1zdXJmYWNlOwor562G6K2vIDwgd3JpdHRlblwtdHJhbnNsYXRpb247CivnrYboqaYgPCB3cml0dGVuXC1leGFtaW5hdGlvbjsKK+eflCA8IGJyaWxsaWFudFwtXChvZlwtZXllc1wpOwor6Zec5YiHIDwgYmVcLWRlZXBseVwtY29uY2VybmVkOwor5bCP5a+r5a2X5q+NIDwgbG93ZXJjYXNlXC1cKGxldHRlcnNcKTsKK+eelSA8IGNhdGFyYWN0XC1pblwtdGhlXC1leWU7CivotbDplosgPCBnZXRcLW91dFwtb2ZcLXRoZVwtd2F5XCE7CivopobkuqEgPCBmYWxsXC1cKG9mXC1hblwtZW1waXJlXCk7Civpm7voqbHmqZ8gPCB0ZWxlcGhvbmVcLWVxdWlwbWVudDsKK+ijgeaWtyA8IGNvbnNpZGVyXC1hbmRcLWRlY2lkZTsKK+e4vee1seW6nCA8IHByZXNpZGVudGlhbFwtcGFsYWNlOwor57SA5YWDIDwgYmVnaW5uaW5nXC1vZlwtYW5cLWVyYTsKK+WFteWcmCA8IGxhcmdlXC1taWxpdGFyeVwtdW5pdDsKK+i+puS6iyA8IHRvXC1oYW5kbGVcLVwoYWZmYWlyc1wpOwor57O+5YGPIDwgdG9cLWNvcnJlY3RcLWFuXC1lcnJvcjsKK+aJjeitmCA8IGFiaWxpdHlcLWFuZFwtaW5zaWdodDsKK+aMieeQhiA8IGFjY29yZGluZ1wtdG9cLXJlYXNvbjsKK+i8lOW5oyA8IGZyYWN0aW9uYWxcLWN1cnJlbmN5Owor5pCt5Ly0IDwgdHJhdmVsXC13aXRoXC1hbm90aGVyOwor5Zyo5p+Q56iu56iL5bqm5LiKIDwgdG9cLWFcLWNlcnRhaW5cLWV4dGVudDsKK+Wci+aXlyA8IGZsYWdcLVwob2ZcLWFcLWNvdW50cnlcKTsKK+i7jeaUvyA8IGFybXlcLWFuZFwtZ292ZXJubWVudDsKK+eXheazgSA8IHN0YXRlXC1vZlwtYW5cLWlsbG5lc3M7CivliIbkvYjlvI/ntrLntaEgPCBkaXN0cmlidXRlZFwtbmV0d29yazsKK+euoeeQhuWKn+iDvSA8IG1hbmFnZW1lbnRcLWZ1bmN0aW9uOwor6L2J5ZCRIDwgY2hhbmdlXC1vZlwtZGlyZWN0aW9uOwor5qmL5o6l5ZmoIDwgYnJpZGdlXC1cKG5ldHdvcmtpbmdcKTsKK+eZveWNtyA8IGJsYW5rXC1leGFtaW5lXC1wYXBlcjsKK+abvOW+ueaWr+eJuee3qOeivCA8IG1hbmNoZXN0ZXJcLWVuY29kaW5nOwor5YWr5LuZIDwgdGhlXC1laWdodFwtaW1tb3J0YWxzOwor6LyD5aSnIDwgY29tcGFyYXRpdmVseVwtbGFyZ2U7CivnrYbnrpcgPCBkb1wtYVwtc3VtXC1pblwtd3JpdGluZzsKK+ahqiA8IG15dGhpY2FsXC1naWFudFwtdHJlZTsKK+aPkOWHuiA8IHRvXC1yYWlzZVwtXChhblwtaXNzdWVcKTsKK+eZveS6uiA8IHdoaXRlXC1tYW5cLWFuZFwtd29tYW47Civmn64gPCBmbGF0XC1waWVjZXNcLW9mXC13b29kOwor5YGa5rOVIDwgd2F5XC1vZlwtZG9pbmdcLXRoaW5nczsKK+aatSA8IGRyeVwtYnlcLWV4cG9zaW5nXC1zdW47Civmir3nhZkgPCBzbW9rZVwtXChhXC1jaWdhcmV0dGVcKTsKK+aWnSA8IHNtYWxsXC1qYWRlXC13aW5lXC1jdXA7Civooajmg4UgPCBcKGZhY2lhbFwpXC1leHByZXNzaW9uOwor6KOc5YqpIDwgXChmaW5hbmNpYWxcKVwtc3Vic2lkeTsKK+aVhCA8IHRvXC1wdXRcLWZvcnRoXC1lZmZvcnQ7CivohqDniYcgPCBcKHBob3RvZ3JhcGhpY1wpXC1maWxtOwor5pKNIDwgdG9cLWhvbGRcLWluXC10aGVcLWhhbmQ7CivkuI3mnJ/nhLbogIznhLYgPCBoYXBwZW5cLXVuZXhwZWN0ZWRseTsKK+aPlSA8IHJvbGxcLXVwXC10aGVcLXNsZWV2ZXM7Civmn5TpgZMgPCBcKHRoZVwtc3BvcnRcLW9mXClcLWp1ZG87CivliqDlgLzlnovntrLot68gPCB2YWx1ZVwtYWRkZWRcLW5ldHdvcms7CivmjqHliLYgPCBjb2xsZWN0XC1hbmRcLXByb2Nlc3M7CivkuI3lvpfkuoYgPCBkZXNwZXJhdGVseVwtc2VyaW91czsKK+aKhOeNsiA8IHRvXC1zZWFyY2hcLWFuZFwtc2VpemU7Civooajlp5AgPCBvbGRlclwtZmVtYWxlXC1jb3VzaW47CivliIbkvYjmjqfliLYgPCBkaXN0cmlidXRlZFwtY29udHJvbDsKK+WwlyA8IHlvdW5nZXJcLW9mXC1icm90aGVyczsKK+i7n+S7tiA8IFwoY29tcHV0ZXJcKVwtc29mdHdhcmU7Civlo5AgPCB0aGVcLWltcGVyaWFsXC1zaWduZXQ7Civmi5vlvoUgPCB0b1wtcmVjZWl2ZVwtXChndWVzdHNcKTsKK+adv+aigeapiyA8IHBsYXRlXC1naXJkZXJcLWJyaWRnZTsKK+WelSA8IHVzZWRcLWluXC1wbGFjZVwtbmFtZXM7Civmi5zlubQgPCBwYXlcLWFcLW5ld1wteWVhclwtY2FsbDsKK+agvei3n+mgrSA8IHRvXC1zdWZmZXJcLWFcLXNldGJhY2s7CivllJogPCB2b21pdGluZ1wtb2ZcLWFuaW1hbHM7CivmoLjlt6XnqIsgPCBudWNsZWFyXC1lbmdpbmVlcmluZzsKK+WboOeJuee2suiBr+mAmiA8IGludGVybmV0XC1jb25uZWN0aW9uOwor5ZG6IDwgdm9pY2VcLW9mXC1hbmdlclwtdmFzdDsKK+S6kumAmiA8IHRvXC1pbnRlcmNvbW11bmljYXRlOwor56eR5a2455qE5Lqk5rWBIDwgc2NpZW50aWZpY1wtZXhjaGFuZ2U7CivlronnkIbmnIMgPCB1blwtc2VjdXJpdHlcLWNvdW5jaWw7CivntrLntaHmh4nnlKggPCBuZXR3b3JrXC1hcHBsaWNhdGlvbjsKK+WBmCA8IGFuY2llbnRcLWZhbWlseVwtbmFtZTsKK+evoeS9jSA8IHRvXC1zZWl6ZVwtdGhlXC10aHJvbmU7CivmqZ/morDnv7vora8gPCBtYWNoaW5lXC10cmFuc2xhdGlvbjsKK+e9t+m7nCA8IGRpc21pc3NcLWZyb21cLW9mZmljZTsKK+S2ryA8IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor5LaSIDwgb3V0c3RhbmRpbmdcLWFiaWxpdHk7CivktowgPCBhXC1wdXN0dWxlXC1vclwtcGltcGxlOwor5LaEIDwgc3RyaXBlZFwtbW90dGxlZFwtcmF0Owor5LWxIDwgcmVkXC1hbmRcLWJsYWNrXC1jb2xvcjsKK+S1lCA8IHRvXC10dXJuXC1vblwtdGhlXC1oZWVsOwor5LSqIDwgYVwtZmFidWxvdXNcLWNyZWF0dXJlOwor5LSgIDwgYVwteW91bmdcLXRhaWxlZFwtZGVlcjsKK+WxrOWvpiA8IHR1cm5cLW91dFwtdG9cLWJlXC10cnVlOwor5LGnIDwgYVwta2luZFwtb2ZcLWZpc2hcLWVlbHM7CivksJwgPCBhXC1sYXJnZVwtZWFydGhlblwtcG90Owor5K63IDwgbW92ZW1lbnRcLW9mXC1hXC1ob3JzZTsKK+SugyA8IHRvXC1nb1wtYmVmb3JlXC1vdGhlcnM7CivmtL7pgaMgPCBzZW5kXC1cKG9uXC1hXC1taXNzaW9uXCk7Civkq7EgPCBhXC1wYXJ0XC1vZlwtdGhlXC1za3VsbDsKK+SrqSA8IHRvXC1zaGFrZVwtb25lJydzXC1oZWFkOwor5Kq/IDwgdGhlXC10b3BcLW9mXC10aGVcLWhlYWQ7Civkqr0gPCBob2FyeVwtaGFpcmVkXC1wZXJzb247CivkqbcgPCB0aGVcLXNpZGVzXC1vZlwtYVwtc2hvZTsKK+SppyA8IHRvXC10aWVcLXVwXC1odXJyaWVkbHk7CivkqYwgPCB0b1wtaGF2ZVwtYVwtd29yblwtbG9vazsKK+SnlCA8IHRvXC1tZWV0XC1hdFwtdGhlXC1iYW5rOwor5KaZIDwgYVwtZ292ZXJubWVudFwtYWdlbmN5Owor5KWnIDwgYVwtZmluZVwta2luZFwtb2ZcLWphZGU7CivoqIrmoYblgrPpgIHmnI3li5kgPCBmcmFtZVwtcmVsYXlcLXNlcnZpY2U7CivkpIYgPCBhXC1raW5kXC1vZlwtcmljZVwtd2luZTsKK+SkgSA8IGNvb2tlZFwtb3JcLXdlbGxcLWRvbmU7CivkoosgPCBhXC1tYXJzaGFsXC1vclwtaGVyYWxkOwor5Lim6YeNIDwgbGF5XC1lcXVhbFwtc3RyZXNzXC1vbjsKK+i7n+S7tuaKgOihkyA8IHNvZnR3YXJlXC10ZWNobm9sb2d5Owor5J+jIDwgYW5cLWFuaW1hbFwtaW5cLWxlZ2VuZDsKK+SesyA8IHRvXC1zdHVtYmxlXC1hbmRcLWZhbGw7CivknaAgPCBhXC1raW5kXC1vZlwtd2lsZFwtYm9hcjsKK+ScgSA8IHRvXC1hYnVzZVwtYW5kXC1pbnN1bHQ7CivkmZIgPCB0b1wtc3RvcmVcLW9yXC1zYXZlXC11cDsKK+SZjyA8IHNob3J0XC1zbGVldmVzXC1zaGlydDsKK+SZgSA8IGNoaWxkcmVuJydzXC1nYXJtZW50czsKK+SYqiA8IGNsb3RoZXNcLXdpdGhvdXRcLWhlbTsKK+SWoiA8IGZpcnN0XC1ib3JuXC1zaWxrd29ybTsKK+SWliA8IHRvXC1zaG93XC1mYW1pbGlhcml0eTsKK+SVviA8IGFcLWtpbmRcLW9mXC12ZWdldGFibGU7CivklZggPCBhXC12YXJpZXR5XC1vZlwtZnVuZ3VzOwor5JWDIDwgdGhlXC1zaGFkZVwtb2ZcLWFcLXRyZWU7Civkk7cgPCBueW1waG9pZGVzXC1wZWx0YWx1bTsKK+STjSA8IGNydWNpZmVyb3VzXC1mbG93ZXJzOwor5JKIIDwgc2lkZVwtYmVhbVwtb2ZcLWFcLWJvYXQ7CivkkoAgPCBzaG9ydFwtYW5kXC1kZWVwXC1ib2F0Owor5JGHIDwgbWVkaWNpbmVcLWZvclwtYVwtc29yZTsKK+SQrSA8IGFcLWRpc2NoYXJnZVwtb3JcLWZsdXg7Civkj7kgPCB0b1wtd2F0Y2hcLXN0ZWFsdGhpbHk7Civkj6ggPCB0b1wtc3dlbGxcLXVwXC1ncmVhdGx5Owor5I+GIDwgYnV6emluZ1wtaW5cLXRoZVwtZWFyczsKK+SNtyA8IHRvXC1jaGFzZVwtZWFjaFwtb3RoZXI7Civki7kgPCBicmVhZHRoXC1vZlwtbWF0ZXJpYWw7Civki7AgPCB0b1wtYmluZFwtb3JcLXJlc3RyYWluOwor5omN5a24IDwgdGFsZW50XC1hbmRcLWxlYXJuaW5nOwor6ICV6ICYIDwgcGxvd2luZ1wtYW5kXC13ZWVkaW5nOwor5pO66ZaA6Z2iIDwga2VlcFwtdXBcLWFwcGVhcmFuY2VzOwor6KiK5qGG5YKz6YCB57ay6LevIDwgZnJhbWVcLXJlbGF5XC1uZXR3b3JrOwor5Ie9IDwgYVwtY29hcnNlXC1iYW1ib29cLW1hdDsKK+SGryA8IGFcLXNob3J0XC1zaGFwZWRcLWZhY2U7Civkha8gPCBhXC12YXJpZXR5XC1vZlwtbWlsbGV0Owor5IWfIDwgdmFyaWV0aWVzXC1vZlwtbWlsbGV0Owor5IWSIDwgYVwtc2hhcnBcLWVkZ2VkXC1ncmFzczsKK+aFiOelpSA8IFwoYVwpXC1raW5kbHlcLVwocGVyc29uXCk7CivkgYsgPCB3aXRoXC1vbmVcLWV5ZVwtY2xvc2VkOwor5IGDIDwgdG9cLWxvb2tcLWF0dGVudGl2ZWx5Owor5ICkIDwgaW5zaWdodFwtb2ZcLWplYWxvdXN5Owor5ICjIDwgdG9cLWxvb2tcLXN0ZWFkaWx5XC1hdDsKK+WltuayueiPnOiKsSA8IGNyZWFtZWRcLWNhdWxpZmxvd2VyOwor47+TIDwgZGlzZWFzZVwtb2ZcLXRoZVwtaG9vZjsKK+WFieeZvOmAgeWZqCA8IG9wdGljYWxcLXRyYW5zbWl0dGVyOwor4767IDwgbm90XC1hbnlcLXByb2dyZXNzaXZlOwor4762IDwgZGlzZWFzZVwtb2ZcLXRoZVwta25lZTsKK+WuieaogiA8IHBlYWNlXC1hbmRcLWhhcHBpbmVzczsKK+O+oiA8IGFcLW1hbGlnbmFudFwtZGlzZWFzZTsKK+O9rSA8IHZhY2FudFwtbG90XC1vclwtc3BhY2U7CivjvYwgPCB0aGVcLXJpZGdlXC1vZlwtYVwtcm9vZjsKK+O9giA8IGFcLWNyYWNrZWRcLWNvbnRhaW5lcjsKK+O8mSA8IGJyaWNrd29ya1wtb2ZcLWFcLXdlbGw7CivjvJIgPCBhXC1raW5kXC1vZlwtYmlnXC1tZWxvbjsKK+e2sue1oeeSsOWigyA8IG5ldHdvcmtcLWVudmlyb25tZW50Owor5oSb5Lq65aaC5bexIDwgbG92ZVwtb3RoZXJzXC1hc1wtc2VsZjsKK+O4tiA8IGNvbG9yXC1vZlwtdGhlXC1veHRhaWw7CivjuLUgPCB0aGVcLWxvd2luZ1wtb2ZcLWFuXC1veDsKK+O4pSA8IGhvdXNlaG9sZFwtcmVnaXN0ZXJzOwor47iiIDwgY3Jvc3NcLWJlYW1cLW9mXC1hXC1iZWQ7CivjuJ4gPCBibG9ja3NcLWZvclwtcHJpbnRpbmc7CivjuJMgPCB0b1wtaGF2ZVwtZGlzYXBwZWFyZWQ7CivjuIAgPCBibGFja2VuZWRcLXdpdGhcLXNvb3Q7Civjt6QgPCByb3N5XC1jbG91ZHNcLW9mXC1kYXduOwor6aiZ5Y+WIDwgdG9cLWdhaW5cLWJ5XC1jaGVhdGluZzsKK+OyhyA8IHRoZVwtcmF0dGxlXC1vZlwtZHJ1bXM7Civjsb4gPCBhXC1raW5kXC1vZlwtb3JuYW1lbnRzOwor47G5IDwgdG9cLWRpZVwtZnJvbVwtZGlzZWFzZTsKK+OxqyA8IGRlc3Ryb3llZFwtb3JcLXJ1aW5lZDsKK+OxqiA8IHN0dXBpZFwtYW5kXC1jb25mdXNlZDsKK+OxiiA8IGFzdGhtYXRpY1wtYnJlYXRoaW5nOwor47GJIDwgbW92aW5nXC1vZlwtdGhlXC1tb3V0aDsKK+OwtCA8IHRvXC1ncmF0ZVwtb25cLXRoZVwtZWFyOwor47CvIDwgdGhlXC13YXlcLW9mXC1zcGVha2luZzsKK+i3r+mAj+ekviA8IHJldXRlcnNcLW5ld3NcLWFnZW5jeTsKK+a2vOeIvSA8IGNvb2xcLWFuZFwtcmVmcmVzaGluZzsKK+m7qOe1hCA8IGxlYWRpbmdcLXBhcnR5XC1ncm91cDsKK+S+i+WkliA8IFwobWFrZVwtYW5cKVwtZXhjZXB0aW9uOwor46uvIDwgaW5cLWNvbnRyYXZlbnRpb25cLW9mOwor6LOH5rqQIDwgXChuYXR1cmFsXClcLXJlc291cmNlczsKK+WVhuacgyA8IGNoYW1iZXJcLW9mXC1jb21tZXJjZTsKK+i1pOWtlyA8IFwoZmluYW5jaWFsXClcLWRlZmljaXQ7CivjqaYgPCB0b1wtbGVhZFwtYnlcLXRoZVwtaGFuZDsKK+OpmCA8IHRvXC1tb29yXC10b1wtdGhlXC1iYW5rOwor46idIDwgdGhlXC12ZXJ5XC1oYXJkXC1zdHVmZjsKK+OnhSA8IHRvXC10dXJuXC11cHNpZGVcLWRvd247CivjppMgPCBkaWZmaWN1bHRcLWludGVudGlvbjsKK+OlnSA8IHRvXC1hcm91c2VcLXRvXC1hY3Rpb247CivpmL/mi4nlt7TppqwgPCBhbGFiYW1hXC1cKHVcLnNcLnN0YXRlXCk7CivjooogPCB0b1wtc2V0XC1zaWRlXC1ieVwtc2lkZTsKK+OigiA8IG9mXC1oaWdobHlcLXN0cmF0ZWdpYzsKK+mLsOmbouWtkOmbu+axoCA8IGxpdGhpdW1cLWlvblwtYmF0dGVyeTsKK+e1gum7nuWcsOWdgCA8IGRlc3RpbmF0aW9uXC1hZGRyZXNzOwor45+xIDwgc2hhcGVcLW9mXC1hXC1tb3VudGFpbjsKK+OfkyA8IGxvZnR5XC1hbmRcLWRhbmdlcm91czsKK+OfkiA8IG1vdW50YWluc1wtYWRqb2luaW5nOwor5Lim6IGvIDwgcGFyYWxsZWxcLWNvbm5lY3Rpb247CivjmKsgPCB0b1wtZmFsbFwtaW50b1wtYVwtd2VsbDsKK+iyoea6kCA8IGZpbmFuY2lhbFwtcmVzb3VyY2VzOwor45e2IDwgdG9cLWV4cGVsXC10aGVcLWJyZWF0aDsKK+enkeWtuOmZoiA8IGFjYWRlbXlcLW9mXC1zY2llbmNlczsKK+OWqiA8IHNvdW5kXC1vZlwtc3VycHJpc2luZzsKK+OUuSA8IGFcLXN1cnBsdXNcLW9yXC1leGNlc3M7Civjk7cgPCB0b1wtY3V0XC1vZmZcLXRoZVwtbm9zZTsKK+OShCA8IGJyaXR0bGVcLWFuZFwtZnJpYWJsZTsKK+OSgyA8IGNhcGl0YWxcLWZvcm1cLW9mXC10d287Civph4/oroogPCBxdWFudGl0YXRpdmVcLWNoYW5nZTsKK+iAkOeFqSA8IHBhdGllbnRcLVwoYWRqZWN0aXZlXCk7CivkuJnntrggPCBwb2x5cHJvcHlsZW5lXC1maWJyZTsKK+S6jOWNgeWFreiZnyA8IDI2dGhcLWRheVwtb2ZcLWFcLW1vbnRoOwor5q2l6YCy5Yi2IDwgc3RlcFwtYnlcLXN0ZXBcLXN5c3RlbTsKK+WJjeiYh+iBryA8IGZvcm1lclwtc292aWV0XC11bmlvbjsKK+S4jeWcqOaEjyA8IHBheVwtbm9cLWF0dGVudGlvblwtdG87CivmsbrorbAgPCBcKHBhc3NcLWFcKVwtcmVzb2x1dGlvbjsKK+mMr+WtlyA8IGluY29ycmVjdFwtY2hhcmFjdGVyOwor5Lit5ZyL55W25bGAIDwgY2hpbmVzZVwtYXV0aG9yaXRpZXM7CivkvLTllLEgPCB2b2NhbFwtYWNjb21wYW5pbWVudDsKK+itmOiyqCA8IHRvXC1rbm93XC13aGF0JydzXC13aGF0Owor56if5oCnIDwgbmF0dXJhbFwtZGlzcG9zaXRpb247CivpoJDnv5IgPCB0b1wtcHJlcGFyZVwtYVwtbGVzc29uOwor5ZCI5oOF5ZCI55CGIDwgcmVhc29uYWJsZVwtYW5kXC1mYWlyOwor5rWB5rS+IDwgc2Nob29sXC1cKG9mXC10aG91Z2h0XCk7Civnmb7kvp3nmb7poIYgPCBkb2NpbGVcLWFuZFwtb2JlZGllbnQ7CivljYroh6rogJXovrIgPCBzZW1pXC10ZW5hbnRcLXBlYXNhbnQ7Civlk4DmhpAgPCBmZWVsXC1jb21wYXNzaW9uXC1mb3I7Civlj43lvYjlsI7lvYggPCBhbnRpbWlzc2lsZVwtbWlzc2lsZTsKK+iyoeWvtiA8IG1vbmV5XC1hbmRcLXZhbHVhYmxlczsKK+eUn+eUouioreaWvSA8IHByb2R1Y3Rpb25cLWZhY2lsaXR5Owor6JGh6JCE54mZ5Lq6IDwgcG9ydHVndWVzZVwtXChwZXJzb25cKTsKK+S6i+WunCA8IFwobWFrZVwpXC1hcnJhbmdlbWVudHM7CivmlZfpoZ4gPCBzY3VtXC1vZlwtYVwtY29tbXVuaXR5Owor5LiN57WV5aaC57i3IDwgaGFuZ2luZ1wtYnlcLWFcLXRocmVhZDsKK+aXl+iijSA8IGNoaW5lc2VcLXN0eWxlXC1kcmVzczsKK+mVt+acn+epqeWumuaApyA8IGxvbmdcLXRlcm1cLXN0YWJpbGl0eTsKK+aKgOihk+efpeitmCA8IHRlY2huaWNhbFwta25vd2xlZGdlOwor5b6Q6KGMIDwgd2Fsa1wtc2xvd2x5XCxcLXN0cm9sbDsKK+iXj+aXjyA8IHRpYmV0YW5cLW5hdGlvbmFsaXR5Owor5qiT5a6H6Ieq5YuV5YyWIDwgYnVpbGRpbmdcLWF1dG9tYXRpb247CivlpJblravlpbMgPCBkYXVnaHRlcicnc1wtZGF1Z2h0ZXI7CivlhrDphovphbggPCBnbGFjaWFsXC1hY2V0aWNcLWFjaWQ7Civnvo7lnIvou43kurogPCBhbWVyaWNhblwtc2VydmljZW1hbjsKK+mYv+avlOilv+WwvOS6nuS6uiA8IGFieXNzaW5pYW5cLVwocGVyc29uXCk7Civmtojngo7ol6UgPCBhbnRpYmlvdGljXC1tZWRpY2luZTsKK+eFp+mhpyA8IHRha2VcLVwoZ29vZFwpXC1jYXJlXC1vZjsKK+WnlOWToemVtyA8IGhlYWRcLW9mXC1hXC1jb21taXR0ZWU7CivoppbnqpfliqDpgJ/lmaggPCB3aW5kb3dzXC1hY2NlbGFyYXRvcjsKK+iuk+atpSA8IFwobWFrZVwtYVwpXC1jb25jZXNzaW9uOwor6YKK6YGgIDwgZmFyXC1mcm9tXC10aGVcLWNlbnRlcjsKK+iPr+eIvuihl+aXpeWgsSA8IHdhbGxcLXN0cmVldFwtam91cm5hbDsKK+aTuumXiiA8IHBhcmFkZVwtb25lJydzXC13ZWFsdGg7Civmg4XloLHlsYAgPCBpbnRlbGxpZ2VuY2VcLWFnZW5jeTsKK+aZtOaclyA8IHN1bm55XC1hbmRcLWNsb3VkbGVzczsKK+aCsuWjryA8IHNvbGVtblwtYW5kXC1zdGlycmluZzsKK+Wci+mam+iyv+aYkyA8IGludGVybmF0aW9uYWxcLXRyYWRlOwor57235biCIDwgc2hvcGtlZXBlcicnc1wtc3RyaWtlOwor5LiN5aaoIDwgdGhlcmVcLWlzXC1ub1wtaGFybVwtaW47CivkurrpgKDoqp7oqIAgPCBhcnRpZmljaWFsXC1sYW5ndWFnZTsKK+S6nuWkque2k+WQiOe1hOe5lCA8IGFwZWNcLVwob3JnYW5pemF0aW9uXCk7CivkuLnlj4MgPCBzYWx2aWFcLW1pbHRpb3JyaGl6YTsKK+mbtuiQvSA8IHdpdGhlcmVkXC1hbmRcLWZhbGxlbjsKK+WMhei6q+W3pSA8IGluZGVudHVyZWRcLWxhYm91cmVyOwor5b6X55+lIDwgXChmaW5kXC1vdXRcLWFuZFwpXC1rbm93Owor6K6K5pWFIDwgYW5cLXVuZm9yZXNlZW5cLWV2ZW50Owor5LiN5pWX5LmL5ZywIDwgaW52aW5jaWJsZVwtcG9zaXRpb247CivmgZDmgJUgPCBcKGknJ21cKVwtYWZyYWlkXC1cKHRoYXRcKTsKK+iHqui6q+WIqeebiiA8IG9uZScnc1wtb3duXC1pbnRlcmVzdHM7Civlu6Dopo8gPCBmYWN0b3J5XC1yZWd1bGF0aW9uczsKK+mgkOWumiA8IHNjaGVkdWxlXC1pblwtYWR2YW5jZTsKK+S4jeWHoSA8IG91dFwtb2ZcLXRoZVwtb3JkaW5hcnk7Civnq7bniK3nlKLlk4EgPCBjb21wZXRpdGl2ZVwtcHJvZHVjdDsKK+aVl+e4viA8IGJlXC11dHRlcmx5XC1kZWZlYXRlZDsKK+aatOWIqSA8IHN1ZGRlblwtaHVnZVwtcHJvZml0czsKK+mdnuaguOWci+WutiA8IG5vblwtbnVjbGVhclwtY291bnRyeTsKK+e9quWQjSA8IGFcLVwoY3JpbWluYWxcKVwtY2hhcmdlOwor5LiN5LmPIDwgdGhlcmVcLWlzXC1ub1wtbGFja1wtb2Y7CivlkIjlkIwgPCBcKGJ1c2luZXNzXClcLWNvbnRyYWN0Owor5YyX5Lqs5Lq6IDwgcGVyc29uXC1mcm9tXC1iZWlqaW5nOwor5rCj5YCZ54uA5rOBIDwgY2xpbWF0aWNcLWNvbmRpdGlvbnM7CivnjpYgPCBibGFja1wtY29sb3JlZFwtamFkZTsKK+WTqiA8IHdoaWNoXD9cLXdoZXJlXD9cLWhvd1w/Owor54myIDwgc2FjcmlmaWNpYWxcLWFuaW1hbDsKK+a8oiA8IHRoZVwtY2hpbmVzZVwtcGVvcGxlOwor5ryVIDwgdHJhbnNwb3J0XC1ieVwtd2F0ZXI7CivpmLQgPCAnJ2ZlbWFsZScnXC1wcmluY2lwbGU7Civku5kgPCB0YW9pc3RcLXN1cGVyXC1iZWluZzsKK+mpuyA8IHRvXC1iZVwtc3RhdGlvbmVkXC1hdDsKK+iFriA8IGxvd2VyXC1wYXJ0XC1vZlwtZmFjZTsKK+aLkiA8IHdhcmRcLW9mZlwtd2l0aFwtaGFuZDsKK+ahgiA8IGNhc3NpYVwtb3JcLWNpbm5hbW9uOwor5py1IDwgY2x1c3Rlclwtb2ZcLWZsb3dlcnM7Civmm7kgPCBtaW5pc3RyeVwtb2ZmaWNpYWxzOwor572OIDwgYW5cLWVhcnRoZW53YXJlXC1qYXI7CivkuLggPCBzbWFsbFwtcm91bmRcLW9iamVjdDsKK+efqSA8IGNhcnBlbnRlcicnc1wtc3F1YXJlOwor6IWKIDwgeWVhclwtZW5kXC1zYWNyaWZpY2U7Civpvp8gPCB0dXJ0bGVcLW9yXC10b3J0b2lzZTsKK+mCuCA8IG9mZmljaWFsXC1yZXNpZGVuY2U7CivkvoMgPCB1cHJpZ2h0XC1hbmRcLXN0cm9uZzsKK+mCgiA8IHVuZXhwZWN0ZWRcLW1lZXRpbmc7CivmgK8gPCBsYWNraW5nXC1pblwtY291cmFnZTsKK+eUuCA8IHN1YnVyYnNcLW9mXC1jYXBpdGFsOwor5o2eIDwgc2Nvb3BcLW91dFwtb2ZcLXdhdGVyOwor5ombIDwgY2FycnlcLW9uXC1zaG91bGRlcnM7CivomZQgPCBhY3RcLXdpdGhcLXJldmVyZW5jZTsKK+mcliA8IGxvbmdcLXNwZWxsXC1vZlwtcmFpbjsKK+mfpyA8IHN0cm9uZ1wtYW5kXC1wbGlhYmxlOwor55G+IDwgYnJpbGxpYW5jZVwtb2ZcLWdlbXM7CivmoZQgPCBjaGluZXNlXC1iZWxsZmxvd2VyOwor6bizIDwgbWFsZVwtbWFuZGFyaW5cLWR1Y2s7CivpkpcgPCBvcm5hbWVudGFsXC1oYWlycGluOwor5beFIDwgc3VtbWl0XC1vZlwtbW91bnRhaW47CivmqKggPCBvc21hbnRodXNcLWZyYWdyYW5zOwor6KChIDwgd29vZFwtYm9yaW5nXC1pbnNlY3Q7CivouYIgPCB0cmFtcGxlXC11bmRlclwtZm9vdDsKK+mqpSA8IHRob3JvdWdoYnJlZFwtaG9yc2U7CivllIEgPCBleHByZXNzXC1jb25kb2xlbmNlOwor6aqFIDwgYW5cLWV4Y2VsbGVudFwtaG9yc2U7CivnookgPCByb29tXC1tYWRlXC1vZlwtc3RvbmU7Civnlp8gPCBpbnRlcm1pdHRlbnRcLWZldmVyOwor57qjIDwgbmFtZVwtb2ZcLWFuXC1lbXBlcm9yOwor56OsIDwgbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+eIvyA8IGhhbGZcLW9mXC10cmVlXC10cnVuazsKK+aXjiA8IGZsdXR0ZXJpbmdcLW9mXC1mbGFnOwor5aSUIDwgb25lXC1sZWdnZWRcLW1vbnN0ZXI7Civmro0gPCB0b1wtc3RhcnZlXC10b1wtZGVhdGg7CivpqoogPCBhXC1wdXJlXC1ibGFja1wtaG9yc2U7CivmuY4gPCBmbHVzaGVkXC13aXRoXC1kcmluazsKK+WWtSA8IHRoZVwtbWV3XC1vZlwtdGhlXC1jYXQ7CivnhJkgPCBkcnlcLW92ZXJcLXNsb3dcLWZpcmU7Civnu74gPCB0b1wtc3RyaW5nXC10b2dldGhlcjsKK+ecpiA8IGNvcm5lclwtb2ZcLXRoZVwtZXllczsKK+eRgSA8IGZpbmVcLXBpZWNlXC1vZlwtamFkZTsKK+eysyA8IG5vblwtZ2x1dGlub3VzXC1yaWNlOwor6aSuIDwgYVwtbGVnZW5kYXJ5XC1hbmltYWw7CivmsYogPCBhXC1icmFuY2hpbmdcLXN0cmVhbTsKK+e8gyA8IGxpZ2h0XC15ZWxsb3dcLWNvbG9yOwor5qqpIDwgdGhlXC1ib2xlXC1vZlwtYVwtdHJlZTsKK+WlgSA8IGxhZHknJ3NcLXZhbml0eVwtY2FzZTsKK+aluCA8IG1hbGxvdHVzXC1qYXBvbmljdXM7CivpqrogPCB0aXBcLW9mXC1hXC1sb25nXC1ib25lOwor6Je/IDwgbG9waGFudGh1c1wtcnVnb3N1czsKK+aoviA8IHRoZVwtc2hhZGVcLW9mXC10cmVlczsKK+mFpCA8IHRvXC1kZWFsXC1pblwtc3Bpcml0czsKK+iHjCA8IGRyb3BzaWNhbFwtc3dlbGxpbmc7Civot6sgPCBzb3VuZFwtb2ZcLWZvb3RzdGVwczsKK+e2riA8IGVtYnJvaWRlcmVkXC1iYW5uZXI7Civop7MgPCBhblwtYW5jaWVudFwtbWVhc3VyZTsKK+adjCA8IHRoZVwtc3R1bXBcLWZcLWFcLXRyZWU7CivltasgPCBhXC1oaWxsXC1pblwtc2hhbnR1bmc7Civmk5cgPCB0b1wtYmVhdFwtdGhlXC1icmVhc3Q7CivohJQgPCBzbWFsbFwtbHVtcFwtb2ZcLW1lYXQ7CivphoUgPCB1bnN0cmFpbmVkXC1zcGlyaXRzOwor576wIDwgY2FyYm9ueWxcLVwocmFkaWNhbFwpOwor6Ju4IDwgbG9uZ1wtbGVnZ2VkXC1zcGlkZXI7CivnnoAgPCB0b1wtbG9va1wtYXRcLWNsb3NlbHk7CivmrrMgPCBuYW1lXC1vZlwtb2xkXC13ZWFwb247CivltJ4gPCBtb3VudGFpblwtaW5cLXNoYW54aTsKK+WesiA8IGhpZ2hcLWFuZFwtZHJ5XC1wbGFjZTsKK+iZvyA8IGFcLWtpbmRcLW9mXC1zY29ycGlvbjsKK+eWsyA8IGNoaWxkaG9vZFwtZGlzZWFzZXM7Civnvb4gPCBhXC1sYXJnZVwtc3F1YXJlXC1uZXQ7CivnjawgPCBhXC1mYWJ1bG91c1wtbW9uc3RlcjsKK+iyoOiyrOS7uyA8IHJlc3BvbnNpYmlsaXR5XC1mb3I7CivluavovqYgPCBhc3Npc3RcLWluXC1tYW5hZ2luZzsKK+mFrOaHiSA8IHNvY2lhbFwtaW50ZXJhY3Rpb247CivnhKHoq5YgPCBub1wtbWF0dGVyXC13aGF0XHxob3c7Civljp/lrpogPCBvcmlnaW5hbGx5XC1wbGFubmVkOwor6YCa6KGMIDwgbGljZW5jZVwtXChjb21wdXRlclwpOwor55Kw5b2i57WQ5qeLIDwgcmluZ1wtY29uZmlndXJhdGlvbjsKK+WPuOS7pCA8IGNvbW1hbmRpbmdcLW9mZmljZXI7Civns77pm4YgPCB0b1wtZ2F0aGVyXC10b2dldGhlcjsKK+mAgeihjCA8IHRvXC1zZWVcLXNvbWVvbmVcLW9mZjsKK+ilv+ePreeJmeiqniA8IHNwYW5pc2hcLVwobGFuZ3VhZ2VcKTsKK+mBlee0hCA8IHRvXC1icmVha1wtYVwtcHJvbWlzZTsKK+WNseWxgCA8IHBlcmlsb3VzXC1zaXR1YXRpb247CivkuIDoiKzkvoboqqogPCBnZW5lcmFsbHlcLXNwZWFraW5nOwor6Luf5Lu26ZaL55m85Lq65ZOhIDwgc29mdHdhcmVcLWRldmVsb3BlcjsKK+aSpeiZnyA8IGRpYWxcLVwoYVwtdGVsZXBob25lXCk7CivlnIvmsJHpu6jou43pmoogPCBuYXRpb25hbGlzdFwtZm9yY2VzOwor6aaW6IWm5pyD5pmkIDwgbGVhZGVyc2hpcFwtbWVldGluZzsKK+iuiuS/riA8IGJlY29tZVwtcmV2aXNpb25pc3Q7CivpgZXnq6AgPCB0b1wtYnJlYWtcLXRoZVwtcnVsZXM7Civph43opoHllY/poYwgPCBhblwtaW1wb3J0YW50XC1pc3N1ZTsKK+e2sueuoSA8IG5ldHdvcmtcLW1hbmFnZW1lbnQ7CivokpnmlocgPCBtb25nb2xpYW5cLWxhbmd1YWdlOwor5oCn5LqkIDwgc2V4dWFsXC1pbnRlcmNvdXJzZTsKK+S4reWxseijnSA8IGNoaW5lc2VcLXR1bmljXC1zdWl0Owor57es55S46KqeIDwgYnVybWVzZVwtXChsYW5ndWFnZVwpOwor5pS/5rK754qvIDwgcG9saXRpY2FsXC1wcmlzb25lcjsKK+W5tOS7peS+hiA8IHNpbmNlXC10aGVcLXllYXJcLVwuXC5cLjsKK+aWsOiPr+ekviA8IHhpbmh1YVwtbmV3c1wtYWdlbmN5Owor5LiN5Lit55SoIDwgdW5maXRcLWZvclwtYW55dGhpbmc7CivkuIDlsI/mmYLku6XlvowgPCBhXC1zaG9ydFwtdGltZVwtbGF0ZXI7CivpoJjlhYjlnLDkvY0gPCBsZWFkXChpbmdcKVwtcG9zaXRpb247CivpgLLkuIDmraUgPCBcKG9uZVwtc3RlcFwpXC1mdXJ0aGVyOwor54mp5YO5IDwgXChjb21tb2RpdHlcKVwtcHJpY2VzOwor5L+h5oGv57O757WxIDwgaW5mb3JtYXRpb25cLXN5c3RlbTsKK+W+jOWkqSA8IGRheVwtYWZ0ZXJcLXRvbW9ycm93Owor5o+Q5L6b5ZWGIDwgcHJvdmlkZXJcLVwoY29tcGFueVwpOwor5aSq5bmzIDwgcGVhY2VcLWFuZFwtc2VjdXJpdHk7Civnn5rmnJsgPCB0b1wtbG9va1wtZm9yd2FyZFwtdG87CivljZTliqkgPCBwcm92aWRlXC1hc3Npc3RhbmNlOwor5o6h6aKoIDwgY29sbGVjdFwtZm9sa1wtc29uZ3M7CivnqK7ml4/muIXmtJcgPCBcImV0aG5pY1wtY2xlYW5zaW5nXCI7Civmj4/ph5EgPCB0b1wtb3V0bGluZVwtaW5cLWdvbGQ7CivliqnmlZkgPCB0ZWFjaGluZ1wtYXNzaXN0YW50Owor5aSr5ammIDwgYVwtXChtYXJyaWVkXClcLWNvdXBsZTsKK+S5kuS5k+eQg+aqryA8IHRhYmxlXC10ZW5uaXNcLXRhYmxlOwor6Iux6KqeIDwgZW5nbGlzaFwtXChsYW5ndWFnZVwpOwor6YGL5rCjIDwgbHVja1wtXChnb29kXC1vclwtYmFkXCk7CivpnZ7luLjlmrTljrIgPCB0b1wtcHVuaXNoXC1zZXZlcmVseTsKK+WOn+iYh+iBryA8IGZvbWVyXC1zb3ZpZXRcLXVuaW9uOwor5o6h6YyEIDwgY29sbGVjdFwtYW5kXC1yZWNvcmQ7CivnhormjowgPCBiZWFyXC1wYXdcLVwoYXNcLWZvb2RcKTsKK+WFp+mDqOe1kOaniyA8IGludGVybmFsXC1zdHJ1Y3V0cmU7CivmlrDlhbUgPCBuZXdcLVwoYXJteVwpXC1yZWNydWl0Owor5pW45pOa6YCa5L+hIDwgZGF0YVwtY29tbXVuaWNhdGlvbjsKK+WkqeWuiemWgCA8IHRpYW5hbm1lblwtXChzcXVhcmVcKTsKK+mdnuW4uOaEn+isnSA8IGV4dHJlbWVseVwtZ3JhdGVmdWw7CivpvpYgPCBmbGlnaHRcLW9mXC1hXC1kcmFnb247CivmloPlkb0gPCBtZWV0XC12aW9sZW50XC1kZWF0aDsKK+m4nCA8IGFcLXNwZWNpZXNcLW9mXC1teW5haDsKK+m3vSA8IG9yaWVudGFsXC1idWxsZmluY2g7CivlhYvpmobmioDooZMgPCBjbG9uaW5nXC10ZWNobm9sb2d5Owor6Zu75a2Q57ay57WhIDwgZWxlY3Ryb25pY1wtbmV0d29yazsKK+m0lyA8IGFsY2Vkb1wtYmVuZ2FsZW5zaXM7CivpsbUgPCBoeXBvcmhhbXB1c1wtc2FqdXJpOwor5aSx5LqLIDwgXChoYXZlXC1hblwpXC1hY2NpZGVudDsKK+S4jeWPl+eQhiA8IHJlamVjdFwtYVwtY29tcGxhaW50Owor6aygIDwgdG9cLW1ha2VcLWFcLXRvcFwta25vdDsKK+eZvOmBlOWciyA8IGRldmVsb3BpbmdcLWNvdW50cnk7Civnmb3purXmm7jnlJ8gPCBwYWxlXC1mYWNlZFwtc2Nob2xhcjsKK+i3keitpuWgsSA8IHRvXC1ydW5cLWZvclwtc2hlbHRlcjsKK+mkvCA8IHNhY3JpZmljaWFsXC12aWN0aW07Civpm7vkv6EgPCB0ZWxlY29tbXVuaWNhdGlvbnM7CivmjajouqsgPCB0b1wtZ2l2ZVwtb25lJydzXC1saWZlOwor6aCUIDwgZ29vZFwtYW5kXC1iZWF1dGlmdWw7Civoip3omK0gPCBpcmlzZXNcLWFuZFwtb3JjaGlkczsKK+iyoeWLmei7n+S7tiA8IGZpbmFuY2lhbFwtc29mdHdhcmU7CivmlLnlj6MgPCB0b1wtY29ycmVjdFwtb25lc2VsZjsKK+eZvemWi+awtCA8IHBsYWluXC1ib2lsZWRcLXdhdGVyOwor5pS/5YuZIDwgZ292ZXJubWVudFwtYWZmYWlyczsKK+WFp+enkSA8IG1lZGljYWxcLWRlcGFydG1lbnQ7CivlhYPntKAgPCBcKGNoZW1pY2FsXClcLWVsZW1lbnQ7CivliqDlhaUgPCB0b1wtYmVjb21lXC1hXC1tZW1iZXI7Civmi5vlvoXmnIMgPCBcKHByZXNzXClcLWNvbmZlcmVuY2U7CivpgbjljYAgPCBlbGVjdG9yYWxcLWRpc3RyaWN0Owor6YeSIDwga2FuZ3hpXC1yYWRpY2FsXC0xNjc7CivphK4gPCBhbmNpZW50XC1wbGFjZVwtbmFtZTsKK+Wcn+iRlyA8IG5hdGl2ZVwsXC1hYm9yaWdpbmFsOwor5oe35L+E5piOIDwgd3lvbWluZ1wtXCh1c1wtc3RhdGVcKTsKK+WNoeaLieWlhyA8IGthcmFjaGlcLVwocGFraXN0YW5cKTsKK+aTjeWuiCA8IHBlcnNvbmFsXC1pbnRlZ3JpdHk7CivovZkgPCByaW5nc1wtb25cLXRoZVwteW9rZXM7CivlgrLoppYgPCB0dXJuXC11cFwtb25lJydzXC1ub3NlOwor6LuwIDwgYVwtcm93XC1vZlwtY2FycmlhZ2VzOwor5Y2K6KaP566hIDwgc2VtaWNpcmN1bGFyXC1jYW5hbDsKK+mmrOS+huiqniA8IG1hbGF5c2lhblwtbGFuZ3VhZ2U7Civlj6Tlhbjoqp7oqIAgPCBjbGFzc2ljYWxcLWxhbmd1YWdlOwor6LC9IDwgYVwtbW91dGhcLW9yXC1vcGVuaW5nOwor6I6r5aaCIDwgaXRcLXdvdWxkXC1iZVwtYmV0dGVyOwor57WQ5bizIDwgdG9cLXNldHRsZVwtYWNjb3VudHM7Civlm5vomZUgPCBhbGxcLW92ZXJcLXRoZVwtcGxhY2U7Civmr5TkuI3kuIogPCBjYW4nJ3RcLWNvbXBhcmVcLXdpdGg7CivntrLot6/pgKPmjqXlsaQgPCBuZXR3b3JrXC1saW5rXC1sYXllcjsKK+iogSA8IGthbmd4aVwtcmFkaWNhbFwtMTQ5Owor6KW1IDwgYVwtcGxlYXRcLWluXC1hXC1za2lydDsKK+iksCA8IGxpZnRcLXVwXC10aGVcLXNraXJ0czsKK+WdpueOhyA8IGZyYW5rXC1cKGRpc2N1c3Npb25cKTsKK+mBi+S9nCA8IHRocmVhZFwtXChjb21wdXRpbmdcKTsKK+Wkmuexs+WwvOWKoOWFseWSjOWciyA8IGRvbWluaWNhblwtcmVwdWJsaWM7CivpgLHliIogPCB3ZWVrbHlcLXB1YmxpY2F0aW9uOwor6Jq5IDwgZXVsb3RhXC1wZWxpb21waGFsYTsKK+iWtyA8IGVsc2hvdHJpYVwtcGFsdHJpbmk7Civkv53pp5UgPCBlc2NvcnRcLXRoZVwtZW1wZXJvcjsKK+iVuiA8IGhvdXR0dXluaWFcLWNvcmRhdGE7Civok7QgPCBlZGlibGVcLXdhdGVyXC1wbGFudDsKK+WFqeWAi+S4reWciyA8IHR3b1wtY2hpbmFcLVwocG9saWN5XCk7CivokbQgPCBwaHlzYWxpc1wtYWxrZWtlbmdpOwor5YWx5pyJIDwgdG9cLWhhdmVcLWFsdG9nZXRoZXI7CivloLHllpwgPCBhbm5vdW5jZVwtZ29vZFwtbmV3czsKK+i3kembuyA8IGVsZWN0cmljYWxcLWxlYWthZ2U7CivojYUgPCBhbnN3ZXJcOlwtc21hbGxcLWJlYW47CivojJYgPCBhbGxpdW1cLXZpY3RvcmlhbGlzOwor5ZyL6Ziy6YOoIDwgZGVmZW5zZVwtZGVwYXJ0bWVudDsKK+iKoyA8IG1lZGljaW5hbFwtcGxhbnRhZ287CivmkqXliLogPCBzcGxhc2hcLVwob2ZcLWFcLWZpc2hcKTsKK+aLnOimiyA8IHBheVwtYVwtZm9ybWFsXC12aXNpdDsKK+WkluS+huaKleizhyA8IGZvcmVpZ25cLWludmVzdG1lbnQ7CivotpXkuI3kuIogPCBjYW4nJ3RcLWtlZXBcLXVwXC13aXRoOwor57+vIDwgZ2xpc3RlbmluZ1wtcGx1bWFnZTsKK+e/liA8IGtzY1wtZXh0ZW5zaW9uXC0zMTA4Owor5Yid5LitIDwganVuaW9yXC1oaWdoXC1zY2hvb2w7CivnvqcgPCBjYXJib3h5bFwtXChyYWRpY2FsXCk7CivlnJ/ogLPlhbboqp4gPCB0dXJraXNoXC1cKGxhbmd1YWdlXCk7CivkuI3mraPkuYvpoqggPCB1bmhlYWx0aHlcLXRlbmRlbmN5Owor5oqE6YGTIDwgdG9cLXRha2VcLWFcLXNob3J0Y3V0Owor5ryU6KqqIDwgXChkZWxpdmVyXC1hXClcLXNwZWVjaDsKK+imgeWcsCA8IHN0cmF0ZWdpY1wtbG9jYXRpb247CivovqbloLEgPCB0b1wtcnVuXC1hXC1uZXdzcGFwZXI7Civpm4bmiJDpm7vot68gPCBpbnRlZ3JhdGVkXC1jaXJjdWl0Owor57OSIDwgZm9vZFwtZm9yXC1hXC1qb3VybmV5Owor5Ye65Lu7IDwgc3RhcnRcLWluXC1hXC1uZXdcLWpvYjsKK+mWiemXnOaUv+etliA8IGNsb3NlZFwtZG9vclwtcG9saWN5Owor5YWn5oOFIDwgaW5zaWRlXC1pbmZvcm1hdGlvbjsKK+aLv+S4u+aEjyA8IHRvXC1tYWtlXC1hXC1kZWNpc2lvbjsKK+e2sue1oeaKgOihkyA8IG5ldHdvcmtcLXRlY2hub2xvZ3k7CivluLjlp5TmnIMgPCBzdGFuZGluZ1wtY29tbWl0dGVlOwor5Lit5ZyL5pS/5bqcIDwgY2hpbmVzZVwtZ292ZXJubWVudDsKK+mWi+WxlSA8IFwoYmVnaW5cLXRvXClcLWRldmVsb3A7Civku6TniYznkrDntrIgPCB0b2tlblwtcmluZ1wtbmV0d29yazsKK+eaqiA8IGx1c3RlclwtXChvZlwtcGVhcmxzXCk7CivlpKfmmI7pvI7pvI4gPCBhXC1ncmFuZFwtcmVwdXRhdGlvbjsKK+eXnCA8IGFcLXNjYWJieVwtYmFsZFwtaGVhZDsKK+Wkp+WtuOeUnyA8IHVuaXZlcnNpdHlcLXN0dWRlbnQ7CivnlL8gPCBmYXJtaW5nXC1wb3B1bGF0aW9uOwor6LK/5piT57WE57mUIDwgdHJhZGVcLW9yZ2FuaXphdGlvbjsKK+eUiyA8IGFcLWphclwtd2l0aG91dFwtZWFyczsKK+eQpCA8IGphZGVcLW9mXC1qYWRlXC1iZWluZzsKK+eOmCA8IGNvdXJ0XC1kcmVzc1wtamV3ZWxzOwor6YGN5Zyw6ZaL6IqxIDwgYmxvc3NvbVwtZXZlcnl3aGVyZTsKK+eNsyA8IGZpZXJjZVwtZG9nXC1sb29raW5nOwor5L+E6KqeIDwgcnVzc2lhblwtXChsYW5ndWFnZVwpOwor5bGx6IWzIDwgZm9vdFwtb2ZcLWFcLW1vdW50YWluOwor54WNIDwgdG9cLWNvbG91clwtYnlcLXNtb2tlOwor6auY6YCf57ay57WhIDwgaGlnaFwtc3BlZWRcLW5ldHdvcms7CivngaUgPCBhXC1ncm91cFwtb2ZcLXNwcmluZ3M7CivlurflpYjniL7lpKflrbggPCBjb3JuZWxsXC11bml2ZXJzaXR5Owor5YWs5Y+4IDwgXChidXNpbmVzc1wpXC1jb21wYW55Owor5ouJ56WoIDwgY2FtcGFpZ25cLWZvclwtdm90ZXM7CivmiYvooZMgPCBzdXJnaWNhbFwtb3BlcmF0aW9uOwor5YWr5Y2mIDwgdGhlXC1laWdodFwtZGlhZ3JhbXM7CivngI/opr3lmaggPCBicm93c2VyXC1cKHNvZnR3YXJlXCk7Civpq5TmuqsgPCBcKGJvZHlcKVwtdGVtcGVyYXR1cmU7Civmm7jpnaLoqLHlj68gPCB3cml0dGVuXC1wZXJtaXNzaW9uOwor5rOyIDwga2luZFwtb2ZcLXdoaXRlXC13aW5lOwor5LiW57SA5pyrIDwgZW5kXC1vZlwtdGhlXC1jZW50dXJ5Owor5rCNIDwgZmluZVwtd29vbGxlblwtY2xvdGg7CivmvILnp7sgPCBkcmlmdFwtXChlbGVjdHJpY2FsXCk7Civoga/lkIjlhazloLEgPCBqb2ludFwtYW5ub3VuY2VtZW50Owor56CU56m25qmf5qeLIDwgcmVzZWFyY2hcLWluc3RpdHV0ZTsKK+S9m+iYreiKkuiqniA8IGZsZW1pc2hcLVwobGFuZ3VhZ2VcKTsKK+WBnOa7ryA8IGJlXC1hdFwtYVwtc3RhbmRzdGlsbDsKK+Wci+acg+itsOWToSA8IG1lbWJlclwtb2ZcLWNvbmdyZXNzOwor5pyA6L+R5bm+5bm0IDwgdGhlXC1sYXN0XC1mZXdcLXllYXJzOwor57K+57Ch6ZaL5pSvIDwgdG9cLXJlZHVjZVwtc3BlbmRpbmc7Civmn7ogPCBhblwtb2xkXC1tYW4nJ3NcLXN0YWZmOwor5p27IDwgbGlndXN0cnVtXC1zaW5lbmVzZTsKK+admSA8IGFcLXRpbnlcLXdvb2RlblwtcG9zdDsKK+S4jee9ruWPr+WQpiA8IGRlY2xpbmVcLXRvXC1jb21tZW50Owor6LuN5a6YIDwgXChtaWxpdGFyeVwpXC1vZmZpY2VyOwor5pi3IDwgdG9cLWZlZWRcLWFcLXByaXNvbmVyOwor5pe8IDwgZ2VudGxlXC1hbmRcLWFmZmFibGU7CivloZ7niL7ntq3kup7oqp4gPCBzZXJiaWFuXC1cKGxhbmd1YWdlXCk7Civmk60gPCB0cmFwXC1jYXRjaFwtYW5pbWFsczsKK+S4ieinkuiFueW4tiA8IGF0aGxldGljXC1zdXBwb3J0ZXI7CivnrYbnm7QgPCBwZXJmZWN0bHlcLXN0cmFpZ2h0Owor55Si55SfIDwgdG9cLWNvbWVcLWludG9cLWJlaW5nOwor6aeQ6I+vIDwgc3RhdGlvbmVkXC1pblwtY2hpbmE7Civmlq/nk6bluIzoo6Hoqp4gPCBzd2FoaWxpXC1cKGxhbmd1YWdlXCk7Civmjojlj5cgPCB0b1wtZ2l2ZVwtYW5kXC1hY2NlcHQ7Civnlqvmg4UgPCBlcGlkZW1pY1wtc2l0dWF0aW9uOwor5rex6YCgIDwgYWR2YW5jZWRcLVwoc3R1ZGllc1wpOwor6KGb55Sf6Kit5YKZIDwgc2FuaXRhcnlcLWVxdWlwbWVudDsKK+mAoOaIkOWVj+mhjCA8IHRvXC1jcmVhdGVcLWFuXC1pc3N1ZTsKK+W9hCA8IG5vY2tcLWF0XC1lbmRcLW9mXC1ib3c7Civmjajlkb0gPCB0b1wtcmlza1wtb25lJydzXC1saWZlOwor5pOB6K236ICFIDwgc3VwcG9ydGVyXC1cKHBlcnNvblwpOwor5ZyL5YuZ5Y2/IDwgc2VjcmV0YXJ5XC1vZlwtc3RhdGU7CivltqggPCBiaWdcLXJvY2t5XC1tb3VudGFpbjsKK+ijgeS4piA8IGN1dFwtZG93blwtYW5kXC1tZXJnZTsKK+W1liA8IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+S9v+evgCA8IFwoZGlwbG9tYXRpY1wpXC1lbnZveTsKK+Wci+Wutuaomea6lueivCA8IGdiXC1cKGd1b1wtYmlhb1wpXC1jb2RlOwor5Y2K6Lyp5a2QIDwgaGFsZlwtb2ZcLWFcLWxpZmV0aW1lOwor5pys5Yid5a2Q5Y2I57eaIDwgdGhlXC1maXJzdFwtbWVyaWRpYW47Civlrrbluq3mtojosrvogIUgPCBob3VzZWhvbGRcLWNvbnN1bWVyOwor5aOcIDwgZWFydGhlblwtamFyXC1vclwtanVnOwor6Iez5bCRIDwgXCh0b1wtc2F5XC10aGVcKVwtbGVhc3Q7CivlopAgPCB0b1wtYnVpbGRcLXdpdGhcLXNvaWw7Civnq5nnrqHnkIYgPCBzdGF0aW9uXC1tYW5hZ2VtZW50Owor6LK36LOjIDwgYnV5aW5nXC1hbmRcLXNlbGxpbmc7CivlmYsgPCB0b1wtc3dhbGxvd1wtaGFzdGlseTsKK+a4rOe5qiA8IHRvXC1zdXJ2ZXlcLWFuZFwtZHJhdzsKK+iDjOe0hCA8IGJyZWFrXC1hblwtYWdyZWVtZW50Owor6Imy5oOF5bCP6KqqIDwgcG9ybm9ncmFwaGljXC1ub3ZlbDsKK+WTsCA8IGluY29oZXJlbnRcLWNoYXR0ZXI7CivoiqzomK3oqp4gPCBmaW5uaXNoXC1cKGxhbmd1YWdlXCk7CivosrTlpoPphonphZIgPCB0aGVcLWRydW5rZW5cLWJlYXV0eTsKK+iuiuazleWFkiA8IHRyeVwtZGlmZmVyZW50XC13YXlzOwor5rW356m66LuNIDwgbmF2eVwtYW5kXC1haXJcLWZvcmNlOwor6Zu75a2Q5L+h566xIDwgZWxlY3Ryb25pY1wtbWFpbGJveDsKK+i3r+W+kSA8IHJvdXRlXC1cKG5ldHdvcmtpbmdcKTsKK+S9tyA8IHRvXC1hY3RcLWNvbnRyYXJ5XC10bzsKK+iIieS+iyA8IHRvXC1naXZlXC1hblwtZXhhbXBsZTsKK+aSkuWTiOaLieS7peWNl+mdnua0siA8IHN1Ylwtc2FoYXJhblwtYWZyaWNhOwor5LmRIDwgc3RhbmRcLXNpZGVcLWJ5XC1zaWRlOwor5omN5pm6IDwgYWJpbGl0eVwtYW5kXC13aXNkb207CivktqMgPCB0b1wtZ3JpbmRcLXRoZVwtdGVldGg7Civktp8gPCB0b1wtZ25hc2hcLXRoZVwtdGVldGg7CivktZUgPCBhXC12YXJpZXR5b2ZcLW1pbGxldDsKK+S0sSA8IGNha2VzXC1hbmRcLWJpc2N1aXRzOwor5LOoIDwgdGhlXC1mZW1hbGVcLXBob2VuaXg7Civks5QgPCBhXC1waWdlb25cLWxpa2VcLWJpcmQ7CivksbMgPCBhXC1raW5kXC1vZlwtc3R1cmdlb247CivksaMgPCBhXC1sb25nXC1uYXJyb3dcLWZpc2g7CivksKogPCBtaXNjaGlldm91c1wtc3Bpcml0Owor5K+xIDwgdGhlXC1oYWlyXC1zdGFuZHNcLXVwOwor5K+PIDwgdGhlXC1zaG91bGRlclwtYmxhZGU7CivkrqUgPCBjb2xvclwtb2ZcLXRoZVwtaG9yc2U7CivntLDoj4zmiLAgPCBiaW9sb2dpY2FsXC13YXJmYXJlOwor5K2wIDwgc3Ryb25nXC1zd2VldFwtc21lbGw7CivkrYsgPCB0b1wtZWF0XC10b1wtdGhlXC1mdWxsOwor5K2DIDwgdG9cLWVhdFwtdG9cLXRoZVwtZm9vbDsKK+SstCA8IGZvZGRlclwtZm9yXC1hbmltYWxzOwor5KynIDwgcm91bmRcLXNoYXBlZFwtY2FrZXM7CivmiZPmi7MgPCB0b1wtZG9cLXNoYWRvd2JveGluZzsKK+iEiOasgiA8IGJlYXRpbmdcLVwob2ZcLWhlYXJ0XCk7Civkq5AgPCB0b1wtYmVuZFwtb25lJydzXC1oZWFkOwor5KqMIDwgY3VzaGlvblwtZm9yXC1zYWRkbGU7CivkqIYgPCBhXC1raW5kXC1vZlwtcGhlYXNhbnQ7Civkp7wgPCB0aGVcLXRoZVwtc25vd1wtZ29vc2U7Civkp6YgPCBuYW1lXC1vZlwtYVwtaGlsbHNpZGU7CivmlrDliqDlnaHkurogPCBzaW5nYXBvcmVhblwtcGVyc29uOwor5KauIDwgZG9vclwtb2ZcLXRoZVwtY2VudGVyOwor6Ieq5Li7IDwgdG9cLWFjdFwtZm9yXC1vbmVzZWxmOwor5KaSIDwgdGhlXC1kb29yXC1pc1wtY2xvc2VkOwor5KaQIDwgdGhlXC1ib2x0XC1vZlwtYVwtZG9vcjsKK+acn+iyqCA8IGZ1dHVyZXNcLVwob25cLWdvb2RzXCk7CivkpbMgPCBhXC1jaGVtaWNhbFwtZWxlbWVudDsKK+SlniA8IHRvXC1jdXRcLXdpdGhcLXNoZWFyczsKK+SlnSA8IGRlc3BlcmF0ZVwtZmlnaHRpbmc7CivkvrXmiKogPCB0b1wtaGFja1wtXChjb21wdXRlclwpOwor5KO6IDwgZmlsdHJhdGVkXC10aGVcLXdpbmU7CivpoK3pq64gPCBoYWlyXC1cKG9uXC10aGVcLWhlYWRcKTsKK+ShoCA8IHN0cm9uZ1wtYW5kXC1kdXJhYmxlOwor5KGbIDwgbmFtZVwtb2ZcLWFcLWNhcnJpYWdlOwor5KCnIDwgaGFyZFwtdG9cLWdvXC1mb3J3YXJkOwor5J+dIDwgdG9cLXdhbGtcLXJpZ2h0XC1pbnRvOwor5J2eIDwgbmFtZVwtb2ZcLWFcLWltbW9ydGFsOwor5JuJIDwgdG9cLWluZHVjZVwtYnlcLXdvcmRzOwor5JqnIDwgY3VydmVkXC13aXRoXC1hbmdsZXM7CivlpKflipvnmbzlsZUgPCB2aWdvcm91c1wtZXhwYW5zaW9uOwor5JmDIDwgc2xlZXZlbGVzc1wtY2xvdGhlczsKK+izqueWkSA8IGNhbGxcLWludG9cLXF1ZXN0aW9uOwor5Je7IDwgYVwta2luZFwtb2ZcLXNlYVwtY3JhYjsKK+SXqCA8IGxlcHNpbWFcLXNhY2NoYXJpbmE7Civkl6MgPCBpbnNlY3RcLW9mXC1tdWxiZXJyeTsKK+acjeWLmeimj+eroCA8IHNlcnZpY2VcLXJlZ3VsYXRpb247CivklqcgPCBhXC1wb2lzb25vdXNcLWluc2VjdDsKK+SWkyA8IG9mXC1hXC13YWxraW5nXC10aWdlcjsKK+SVqiA8IHRoZVwtd2F0ZXJcLXBsYW50YWluOwor5JS8IDwgc291bmRcLW9mXC10aGVcLWdyYXNzOwor5JSDIDwgY29yZGF0ZVwtaG91dHR1eW5pYTsKK+STqCA8IGxvbmdcLW5lY2tlZFwtYm90dGxlOwor5JOWIDwgY25pZGl1bVwtb2ZmaWNpbmFsZTsKK+STgyA8IG1lbGFuY2hvbHlcLWFuZFwtc2FkOwor5JKdIDwgcm9vdFwtb2ZcLXRoZVwtdGhhdGNoOwor6aaW5qyhIDwgZm9yXC10aGVcLWZpcnN0XC10aW1lOwor5JGZIDwgcHV0XC1vdXRcLXRoZVwtdG9uZ3VlOwor5JGGIDwgZmVlbFwtbGlrZVwtdm9taXRpbmc7CivlnKjlgrPovLjpgY7nqIvkuK0gPCB3aGlsZVwtdHJhbnNtaXR0aW5nOwor5JCUIDwgbXVzY2xlXC1vZlwtdGhlXC1jYWxmOwor5I6+IDwgYmlnXC1hbmRcLXJvdW5kXC1leWVzOwor5Z+f5ZCN5pyN5YuZ5ZmoIDwgZG9tYWluXC1uYW1lXC1zZXJ2ZXI7CivkjrQgPCBhXC1sZWdlbmRhcnlcLXNwaXJpdDsKK+SOqiA8IHRoZVwtc3RhbGtcLW9mXC1ncmFpbjsKK+aihuWtkCA8IHdhdGNobWFuJydzXC1jbGFwcGVyOwor5I6UIDwgZmluZVwtYW5kXC1zb2Z0XC1oYWlyOwor5I6PIDwgeW91bmdcLWJpcmRzXC1mbHlpbmc7CivmsrnppIUgPCBkZWVwXC1mcmllZFwtcGFuY2FrZTsKK+SNqSA8IHRvXC1vZmZlclwtcHJvdmlzaW9uOwor5I2jIDwgYVwta2luZFwtb2ZcLWZpc2hcLW5ldDsKK+SMjSA8IGZpbmVcLXdvdmVuXC1wYXR0ZXJuOwor5IyJIDwgdGhlXC1sYXJnZVwtb2ZcLWFcLW5ldDsKK+azhOmcsiA8IGxlYWtcLVwoaW5mb3JtYXRpb25cKTsKK+SLiCA8IHRvXC1iaW5kXC1sb29zZVwtaGVtcDsKK+SJrCA8IGNvYXJzZVwtYmFtYm9vXC1tYXRzOwor5IiuIDwgYVwtd292ZW5cLWluc3RydW1lbnQ7Civkh7MgPCBhXC1tZW1vcmFkdW1cLXRhYmxldDsKK+SGqiA8IGNvbG9yXC1vZlwtdGhlXC1saWdodDsKK+SGpSA8IHRvXC1waWVyY2VcLXRocm91Z2hqOwor5IaRIDwgYVwtbGl0dGxlXC1wcm90cnVkZWQ7CivmipXlhaUgPCBwdXRcLWludG9cLW9wZXJhdGlvbjsKK+SFvSA8IGZyYWdyYW5jZVwtb3JcLWFyb21hOwor5IWnIDwgZmluZVwtcmljZVwtc2VlZGxpbmc7CivkhZwgPCB0b1wtc3RvcmVcLXVwXC1ncmFpbnM7CivkhJogPCB0b1wtd29yc2hpcFwtdGhlXC1nb2Q7Civkg5wgPCBhXC1maW5lXC1ibGFja1wtc3RvbmU7CivkgYogPCBkYXJrXC1hbmRcLWRlZXBcLWV5ZWQ7CivkgJ4gPCB3aXRoXC1oZWF2eVwtZXllbGlkczsKK+SAlyA8IHRvXC1sb29rXC1hc2thbmNlXC1hdDsKK+aekOeWkSA8IHRvXC1yZXNvbHZlXC1hXC1kb3VidDsKK+O/jCA8IGx1bXBcLWluXC10aGVcLXRocm9hdDsKK+erreeboeWFqOWKmyA8IHRvXC1zcGFyZVwtbm9cLWVmZm9ydDsKK+eRnuWFuOiqniA8IHN3ZWRpc2hcLVwobGFuZ3VhZ2VcKTsKK+O8oyA8IGJyaWNrc1wtb2ZcLXRoZVwtd2VsbDsKK+O8hyA8IGZpbmVcLWphZGVcLW9yXC1hZ2F0ZTsKK+a2ieWrjOS6uiA8IFwoY3JpbWluYWxcKVwtc3VzcGVjdDsKK+O7lyA8IGFcLXN0cmluZ1wtb2ZcLXBlYXJsczsKK+O7iiA8IGFcLXJlZFwtY29sb3JlZFwtamFkZTsKK+O7hSA8IGphZGVcLWRlY29yYXRlZFwtY2FwOwor6JeP6KqeIDwgdGliZXRhblwtXChsYW5ndWFnZVwpOwor5LiN5oqY5LiN5omjIDwgYVwtaHVuZHJlZFwtcGVyXC1jZW50Owor47qnIDwgYVwtd2hpdGVcLXllbGxvd1wtZG9nOwor47i9IDwgYVwtdHdvXC15ZWFyc1wtb2xkXC1veDsKK+acqOiAsyA8IGVkaWJsZVwtdHJlZVwtZnVuZ3VzOwor47iIIDwgc2NvcmNoZWRcLW9yXC1idXJuZWQ7Civjt7MgPCBjb2xvclwtb2ZcLXRoZVwtZmxhbWU7Civllpjmga8gPCB0b1wtZ2FzcFwtZm9yXC1icmVhdGg7Civmo4TkuJYgPCB0b1wtbGVhdmVcLXRoaXNcLXdvcmQ7Civjt6IgPCBidW5kbGVcLW9mXC1jaGFyY29hbDsKK+O3oCA8IGFcLXdpbGxcLW8nJ1wtdGhlXC13aXNwOwor47WTIDwgdGhlXC13YXRlclwtaXNcLWNsZWFyOwor47S+IDwgc3dlbGxpbmdcLW9yXC1yaXNpbmc7CivkvbXmjbLmqZ8gPCByaWJib25cLWxhcFwtbWFjaGluZTsKK+WIpeWLlemaiiA8IHNwZWNpYWxcLWRldGFjaG1lbnQ7Civjs4IgPCB0b1wtZm9sbG93XC1hXC1jb3Vyc2U7CivjsqEgPCB0aGlja1wtY29hdFwtb2ZcLWhhaXI7CivjspcgPCB0b1wtc21vb3RoXC10aGVcLWhhaXI7CivmhJvnqLEgPCB0ZXJtXC1vZlwtZW5kZWFybWVudDsKK+enkeeglOaoo+apnyA8IHJlc2VhcmNoXC1wcm90b3R5cGU7Civjr7YgPCB0aGVcLWNvaXJcLXBhbG1cLXRyZWU7Civjr7IgPCBhXC13b29kZW5cLWZyYW1ld29yazsKK+OvmyA8IGdvdXJkXC1zaGFwZWRcLWRhdGVzOwor4667IDwgdG9cLXNjcmF0Y2hcLWxpZ2h0bHk7CivljYDln5/ntrLot68gPCBsb2NhbFwtYXJlYVwtbmV0d29yazsKK+OujSA8IGFtZW1vcmFuZHVtXC10YWJsZXQ7CivjraggPCB0aGVcLWNvY29hXC1udXRcLXBhbG07CivjrZ0gPCBuYW1lXC1vZlwtYVwtcGF2aWxpb247CivnmbzpgIHlip/njocgPCB0cmFuc21pc3Npb25cLXBvd2VyOwor46y0IDwgdGhlXC1tb29uXC1pc1wtZGltbWVkOwor46ySIDwgdGhlXC1zdW5cLWFyZVwtZGltbWVkOwor46yOIDwgbW90ZXNcLWluXC1hXC1zdW5iZWFtOwor5pS/5bqc6K2m5ZGKIDwgZ292ZXJubWVudFwtd2FybmluZzsKK+OrpiA8IG9mXC1sb29rXC1vZlwtdGhlXC1zdW47CivjqrggPCB0b1wtZmlsbFwtYVwtY3VwXC13aXRoOwor46mDIDwgdG9cLXRha2VcLW9yXC1jYXB0dXJlOwor46i9IDwgdG9cLWN1dFwtb3JcLXJpcFwtb3BlbjsKK+OooSA8IHRvXC1wdXNoXC13aXRoXC1oYW5kczsKK+OonCA8IHRvXC1oZWxwXC1lYWNoXC1vdGhlcjsKK+aguOiDveaKgOihkyA8IG51Y2xlYXJcLXRlY2hub2xvZ3k7CivlubTovJXljJYgPCBtYWtlXC1tb3JlXC15b3V0aGZ1bDsKK+WwiOWToSA8IGFzc2lzdGFudFwtZGlyZWN0b3I7CivjpbggPCB0b1wtc3ltcGF0aGl6ZVwtd2l0aDsKK+OlqCA8IHVuaGFwcHlcLWRpc3BsZWFzZWQ7CivjpKogPCB0b1wtZmluZFwtZmF1bHRcLXdpdGg7Civjo4wgPCB0b1wtam9pblwtdHdvXC10aGluZ3M7Civjoa8gPCB3YWxsXC1vZlwtYVwtYnVpbGRpbmc7CivpoJPotrMgPCBzdGFtcFwtXChvbmUnJ3NcLWZlZXRcKTsKK+WKoOmAn+WZqCA8IGFjY2VsZXJhdG9yXC1cKGNvbXBcKTsKK+OYsyA8IGFcLWhpbGxvY2tcLW9yXC1tb3VuZDsKK+OYsSA8IHRvXC1mYWxsXC1pbnRvXC1ydWluczsKK+aEj+Wkp+WIqeiqniA8IGl0YWxpYW5cLVwobGFuZ3VhZ2VcKTsKK+OYnCA8IGFcLWtpbmRcLW9mXC1zaWxrd29ybTsKK+OWhSA8IHNvdW5kXC1vZlwtYVwtd2hpc3RsZTsKK+OWgyA8IHRvXC1yb2FyXC1vZlwtYW5pbWFsczsKK+OUoiA8IHRvXC1icmVha1wtc29tZXRoaW5nOwor5LiN562J6JmfIDwgc2lnblwtb2ZcLWluZXF1YWxpdHk7Civnj77mnIkgPCBjdXJyZW50bHlcLWV4aXN0aW5nOwor6KW/5Y2K55CDIDwgd2VzdGVyblwtaGVtaXNwaGVyZTsKK+m8u+aokSA8IGJyaWRnZVwtb2ZcLXRoZVwtbm9zZTsKK+WPg+i0iiA8IGRpcGxvbWF0aWNcLW9mZmljZXI7CivkuKbnq4sgPCBleGlzdFwtc2lkZVwtYnlcLXNpZGU7Civosr/mmJMgPCBcKGNvbW1lcmNpYWxcKVwtdHJhZGU7CivlpJrnq6/kuK3nubzlmaggPCBtdWx0aXBvcnRcLXJlcGVhdGVyOwor5YyX5Lqs5aSn5a24IDwgYmVpamluZ1wtdW5pdmVyc2l0eTsKK+WgseWLmeWToSA8IHRlbGVncmFwaFwtb3BlcmF0b3I7CivphazphaIgPCB0b1wtZXhjaGFuZ2VcLXRvYXN0czsKK+a1qua2jCA8IFwoZWxlY3RyaWNhbFwpXC1zdXJnZTsKK+S9lOWFiCA8IHRvXC10YWtlXC1wcmVjZWRlbmNlOwor6IOM5YWJIDwgYmVcLWluXC1hXC1wb29yXC1saWdodDsKK+WFieazoumVtyA8IG9wdGljYWxcLXdhdmVsZW5ndGg7Civmt7HlpJwgPCB2ZXJ5XC1sYXRlXC1hdFwtbmlnaHQ7Civllonmk6bpn7MgPCBndXR0dXJhbFwtZnJpY2F0aXZlOwor5YWr57Sa5belIDwgZWlnaHRcLWdyYWRlXC13b3JrZXI7CivkvZvokpnnibkgPCB2ZXJtb250XC1cW3VzXC1zdGF0ZVxdOwor6Zyy6Z2iIDwgYXBwZWFyXC1cKGluXC1wdWJsaWNcKTsKK+WVhuWLmSA8IGNvbW1lcmNpYWxcLWFmZmFpcnM7Civoga/pgqbmlL/lupwgPCBmZWRlcmFsXC1nb3Zlcm5tZW50Owor54yc55aRIDwgaGFyYm91clwtc3VzcGljaW9uczsKK+eUn+a0u+W/hemcgOWTgSA8IGxpZmUnJ3NcLW5lY2Vzc2l0aWVzOwor6LK05aeTIDwgd2hhdFwtaXNcLXlvdXJcLW5hbWVcPzsKK+eMmeeNsCA8IG1lYW5cLWFuZFwtZmVyb2Npb3VzOwor6YCy6KGM57eo56iLIDwgZXhlY3V0YWJsZVwtcHJvZ3JhbTsKK+a2suWjkyA8IGh5ZHJhdWxpY1wtcHJlc3N1cmU7CivnrqHnkIbnq5kgPCBtYW5hZ2VtZW50XC1zdGF0aW9uOwor6by75aGeIDwgaGF2ZVwtYVwtc3R1ZmZ5XC1ub3NlOwor6Jmb5pOs6YCj5o6lIDwgdmlydHVhbFwtY29ubmVjdGlvbjsKK+m7nuW/gyA8IGxpZ2h0XC1yZWZyZXNobWVudHM7CivlrqLmiLbmh4nnlKggPCBjbGllbnRcLWFwcGxpY2F0aW9uOwor5LiN6Zqo5oSP6IKMIDwgaW52b2x1bnRhcnlcLW11c2NsZTsKK+iqquS4jeWumiA8IGNhbicndFwtc2F5XC1mb3JcLXN1cmU7Civms6Lmlq/oqp4gPCBib3NuaWFuXC1cKGxhbmd1YWdlXCk7Civmtbfln58gPCB0ZXJyaXRvcmlhbFwtd2F0ZXJzOwor5q+U6KmmIDwgaGF2ZVwtYVwtY29tcGV0aXRpb247CivmjqHlj5bmjqrmlr0gPCB0b1wtYWRvcHRcLWFcLW1lYXN1cmU7CivlhJjlj6/og70gPCBhc1wtZmFyXC1hc1wtcG9zc2libGU7Civlk4jkvZvlpKflrbggPCBoYXJ2YXJkXC11bml2ZXJzaXR5Owor6Zu76LevIDwgXChlbGVjdHJpY1wpXC1jaXJjdWl0Owor5Lit5bCHIDwgbGlldXRlbmFudFwtZ2VuZXJhbDsKK+WMheaJv+e1hCA8IFwocmVzcG9uc2libGVcKVwtY3JldzsKK+eZvuiRieeusSA8IHRoZXJtb21ldGVyXC1zY3JlZW47Civmmpfnt5rlhYnorZwgPCBkYXJrXC1saW5lXC1zcGVjdHJ1bTsKK+aWh+iXnSA8IGxpdGVyYXR1cmVcLWFuZFwtYXJ0Owor54mI56iFIDwgcm95YWx0eVwtXChvblwtYm9va3NcKTsKK+mbu+imluevgOebriA8IHRlbGV2aXNpb25cLXByb2dyYW07Civmg4XloLEgPCBcKHNweVwpXC1pbnRlbGxpZ2VuY2U7Civnt6jpgaMgPCByZW9yZ2FuaXplXC1cKHRyb29wczsKK+mBv+mbt+WZqCA8IGxpZ2h0bmluZ1wtYXJyZXN0ZXI7Civlv4XkuI3lj6/lsJHntYTmiJAgPCBhYnNvbHV0ZVwtbmVjZXNzaXR5Owor5rOw5bGxIDwgdGFpc2hhblwtXChtb3VudGFpblwpOwor5oKJ5bC8IDwgc3lkbmV5XC1cKGF1c3RyYWxpYVwpOwor5oiw6ayl5qmfIDwgZmlnaHRlclwtXChhaXJjcmFmdFwpOwor6JaE5oOFIDwgaW5jb25zdGFudFwtaW5cLWxvdmU7CivmsJHnlKggPCBcKGZvclwpXC1jaXZpbGlhblwtdXNlOwor57eo6K2vIDwgdHJhbnNsYXRlXC1hbmRcLWVkaXQ7Civnpo/liKkgPCBcKG1hdGVyaWFsXClcLXdlbGZhcmU7CivnsKHnn63ku4vntLkgPCBicmllZlwtaW50cm9kdWN0aW9uOwor5rW354Gj5oiw54itIDwgXChwZXJzaWFuXClcLWd1bGZcLXdhcjsKK+WcsOeQg+Wkp+awoyA8IGVhcnRoJydzXC1hdG1vc3BoZXJlOwor5ZCM5a24IDwgXChmZWxsb3dcKVwtY2xhc3NtYXRlOwor5LiN5ZKMIDwgbm90XC1nZXRcLWFsb25nXC13ZWxsOwor5LiN5Y6tIDwgbm90XC1taW5kXC1kb2luZ1wtc3RoOwor5Y+N5oSfIDwgXChzdHJvbmdseVwpXC1kaXNsaWtlOwor6Yed5bCNIDwgaW5cLWNvbm5lY3Rpb25cLXdpdGg7CivmnI3li5nos6rph48gPCBxdWFsaXR5XC1vZlwtc2VydmljZTsKK+WPpuWvhCA8IHRvXC1tYWlsXC1zZXBhcmF0ZWx5Owor6K6K5bm7IDwgY2hhbmdlXC1pcnJlZ3VsYXJseTsKK+WgsemXnCA8IGRlY2xhcmVcLWF0XC1jdXN0b21zOwor572y5ZCNIDwgc2lnblwtXChhXC1zaWduYXR1cmVcKTsKK+mBiuimvSA8IHRvXC1nb1wtc2lnaHRcLXNlZWluZzsKK+S4jeaUu+iHquegtCA8IGNvbGxhcHNlXC1vZlwtaXRzZWxmOwor5paH5YyW5YKz57WxIDwgY3VsdHVyYWxcLXRyYWRpdGlvbjsKK+mhr+ekuuWZqCA8IG1vbml0b3JcLVwoY29tcHV0ZXJcKTsKK+eavyA8IHNoYWxsb3dcLWNvbnRhaW5lcjsKK+WxkyA8IGdpZ2FudGljXC1zdHJlbmd0aDsKK+a0viA8IHNjaG9vbFwtb2ZcLXRob3VnaHQ7Civlp5MgPCBvbmUnJ3NcLWZhbWlseVwtbmFtZTsKK+eFjiA8IGZyeVwtaW5cLWZhdFwtb3JcLW9pbDsKK+ilgSA8IHN3YWRkbGluZ1wtY2xvdGhlczsKK+WTiCA8IHNvdW5kXC1vZlwtbGF1Z2h0ZXI7CivpuJogPCBzcGVjaWVzXC1vZlwtcGFycm90Owor5qynIDwgdHJhbnNsaXRcLlw6XC1ldXJvcGU7CivorqIgPCBkcmF3XC11cFwtYWdyZWVtZW50Owor5YGPIDwgaW5jbGluZWRcLW9uZVwtc2lkZTsKK+atlCA8IGJsb3dcLXRocm91Z2hcLW5vc2U7Civln7kgPCBiYW5rXC11cFwtd2l0aFwtZGlydDsKK+a8qyA8IG92ZXJmbG93XC1vZlwtd2F0ZXI7CivkvqAgPCBjaGl2YWxyb3VzXC1wZXJzb247Civlp4YgPCBjaGlsZCcnc1wtZ292ZXJuZXNzOwor55uSIDwgc21hbGxcLWJveFwtb3JcLWNhc2U7CivlhJIgPCBjb25mdWNpYW5cLXNjaG9sYXI7CivpmKogPCBoaWxsc2lkZVwtZmFybWxhbmQ7Civov4ggPCB0YWtlXC1hXC1iaWdcLXN0cmlkZTsKK+aNjyA8IHBpY2tcLXdpdGhcLWZpbmdlcnM7CivmtZkgPCB6aGVqaWFuZ1wtcHJvdmluY2U7CivnracgPCBiYW1ib29cLXdhdGVyXC1waXBlOwor6ImYIDwgY291bnRlclwtZm9yXC1zaGlwczsKK+i2gSA8IHRha2VcLWFkdmFudGFnZVwtb2Y7CivpiaIgPCBlYXJ0aGVud2FyZVwtYmFzaW47Civok6wgPCB0eXBlXC1vZlwtcmFzcGJlcnJ5Owor6L6WIDwgbGluY2hwaW5cLW9mXC13aGVlbDsKK+mAhSA8IG1lZXRcLXVuZXhwZWN0ZWRseTsKK+mFoyA8IGVuam95XC1pbnRveGljYW50czsKK+mluiA8IHN0dWZmZWRcLWR1bXBsaW5nczsKK+WSjyA8IHNpbmdcLXNvbmdcLW9yXC1wb2VtOwor5pCAIDwgZ2l2ZVwtaGVscGluZ1wtaGFuZDsKK+aNtiA8IHN0cmlrZVwtd2l0aFwtc3RpY2s7CivliKggPCBjYXJwZW50ZXInJ3NcLXBsYW5lOwor6KCVIDwgZXVtZW5lc1wtcG9saWZvbWlzOwor5bSGIDwga29uZ3RvbmdcLW1vdW50YWluOwor55uFIDwgc21hbGxcLWN1cFwtb3JcLWJvd2w7CivmooYgPCB3YXRjaG1hbicnc1wtcmF0dGxlOwor5bWHIDwgbW91bnRhaW5cLWluXC1oZW5hbjsKK+iAtyA8IGVhcnNcLWhhbmdpbmdcLWRvd247CivnvowgPCBxaWFuZ1wtbmF0aW9uYWxpdHk7Civoi54gPCBhXC12YXJpZXR5XC1vZlwtcnVzaDsKK+iXnCA8IGNoZW5vcG9kaXVtXC1hbGJ1bTsKK+iJhCA8IHN0ZXJuXC1vZlwtYVwtdmVzc2VsOwor5bOBIDwgeWVsbG93XC1kaXJ0XC1tb3VudDsKK+mVlCA8IGhpZ2hcLXF1YWxpdHlcLWlyb247CivpsqsgPCBjYXJhc3NpdXNcLWF1cmF0dXM7CivpvocgPCB0b1wtc2hvd1wtdGhlXC10ZWV0aDsKK+ayrSA8IHJpdmVyXC1pblwtc2hhbnR1bmc7CivmpqsgPCBtb3J0aXNlXC1hbmRcLXRlbm9uOwor6JCLIDwgbHV4dXJpYW50XC1mb2xpYWdlOwor6YauIDwgcmVsaWdpb3VzXC1zZXJ2aWNlOwor54mdIDwgZmVtYWxlXC1vZlwtc3BlY2llczsKK+abtyA8IHdoeVw/XC13aGF0XD9cLXdoZXJlXD87CivnkbcgPCBmaW5lXC1xdWFsaXR5XC1qYWRlOwor6ICmIDwgcGxvd1wtc2lkZVwtYnlcLXNpZGU7CivpuLYgPCB0aGVcLWVhc3Rlcm5cLWVncmV0Owor56+mIDwgZmluZVwtdG9vdGhlZFwtY29tYjsKK+WmgSA8IGFjdFwtYXNcLWdvXC1iZXR3ZWVuOwor6I2lIDwgYVwtY291bnR5XC1pblwtaGVuYW47CivmiL0gPCB0b1wtYmFsZVwtb3V0XC13YXRlcjsKK+aesyA8IHRyaWZvbGlhdGVcLW9yYW5nZTsKK+akkCA8IHplbGtvd2FcLWFjdW1pbmF0YTsKK+mtiSA8IGFcLWtpbmRcLW9mXC1tb25zdGVyOwor6aKeIDwgdGhlXC10ZW1wb3JhbFwtYm9uZTsKK+iAqSA8IHRvXC1wbG91Z2hcLlwtdG9cLXNvdzsKK+W7qCA8IGdvdmVybm1lbnRcLW9mZmljZTsKK+ifriA8IHR5cGVcLW9mXC1lYXJ0aHdvcm07Civom7EgPCBraW5kXC1vZlwtYnV0dGVyZmx5Owor56azIDwgcHJheVwtb3JcLXNhY3JpZmljZTsKK+eeoiA8IGV5ZXNpZ2h0XC1vYnNjdXJlZDsKK+iUuCA8IGNvdW50ZXJcLWZvclwtcGxhbnQ7CivonoUgPCBcKGludGVzdGluYWxcLXdvcm1cKTsKK+elpyA8IGFuXC1hbmNlc3RyYWxcLWhhbGw7CivooIMgPCB0aGVcLXNvbGl0YXJ5XC13YXNwOwor6IGDIDwgZWFyc1wtd2l0aG91dFwtcmltczsKK+iAnCA8IHNwYWRlXC1zaGFwZWRcLXRvb2w7CivmhZ0gPCBkb1wtZXZpbFwtaW5cLXNlY3JldDsKK+W6syA8IGFcLWxvd1wtYnVpbHRcLWhvdXNlOwor6byiIDwgYVwtdmFyaWV0eVwtb2ZcLW1vbGU7CivomrogPCBhXC1ib2FcLWNvbnN0cmljdG9yOwor56GHIDwgYVwta2luZFwtb2ZcLW1pbmVyYWw7Civnoa0gPCBhXC1jcnVkZVwtc2FsdHBldHJlOwor6IOoIDwgYVwta2luZFwtb2ZcLXByb3RlaW47CivlpJbnlYwgPCB0aGVcLW91dHNpZGVcLXdvcmxkOwor6K6K5aSpIDwgY2hhbmdlXC1vZlwtd2VhdGhlcjsKK+avlOa/lSA8IHNwZWNpZmljXC1odW1pZGl0eTsKK+WPr+ihjOaAp+eglOeptiA8IGZlYXNpYmlsaXR5XC1zdHVkeTsKK+e2sue1oemBt+enuyA8IG5ldHdvcmtcLW1pZ3JhdGlvbjsKK+mbu+iFpui7n+S7tiA8IGNvbXB1dGVyXC1zb2Z0d2FyZTsKK+W/heS/ruiqsiA8IGFcLXJlcXVpcmVkXC1jb3Vyc2U7CivlvrfmlocgPCBnZXJtYW5cLVwobGFuZ3VhZ2VcKTsKK+WDheasoeS6jiA8IHNlY29uZFwtb25seVwtdG9cLlwuXC47CivmnJ3prq7oqp4gPCBrb3JlYW5cLVwobGFuZ3VhZ2VcKTsKK+izh+aWmeWCs+i8uCA8IGRhdGFcLXRyYW5zbWlzc2lvbjsKK+WNkeaAryA8IG1lYW5cLWFuZFwtY293YXJkbHk7CivlhbXppqwgPCB0cm9vcHNcLWFuZFwtaG9yc2VzOwor5pW45pOa5bqr6Luf5Lu2IDwgZGF0YWJhc2VcLXNvZnR3YXJlOwor56Kp5aOrIDwgbWFzdGVyJydzXC1cKGRlZ3JlZVwpOwor6KW/6KOh54i+5a2X5q+NIDwgY3lyaWxsaWNcLWFscGhhYmV0Owor5ZyL6Ziy6YOo6ZW3IDwgZGVmZW5jZVwtc2VjcmV0YXJ5Owor55m96aqoIDwgYm9uZXNcLW9mXC10aGVcLWRlYWQ7Civlt6jlpKflo5PlipsgPCBlbm9ybW91c1wtcHJlc3N1cmU7Civnhafnm7ggPCB0YWtlXC1hXC1waG90b2dyYXBoOwor55m96aOvIDwgcGxhaW5cLWNvb2tlZFwtcmljZTsKK+aXpeWtkCA8IGFcLVwoY2FsZW5kYXJcKVwtZGF0ZTsKK+W7uueviealrSA8IGJ1aWxkaW5nXC1pbmR1c3RyeTsKK+aUv+ayu+awo+WAmSA8IHBvbGl0aWNhbFwtY2xpbWF0ZTsKK+W7o+Wfn+e2sui3ryA8IHdpZGVcLWFyZWFcLW5ldHdvcms7CivmlZnlj4vlpKfmnIMgPCBjaHVyY2hcLWNvbmZlcmVuY2U7Civnvo7lnIvoiKrnqbrlhazlj7ggPCBhbWVyaWNhblwtYWlybGluZXM7CivmlZnmnZAgPCB0ZWFjaGluZ1wtbWF0ZXJpYWw7CivphLDlnIsgPCBib3JkZXJpbmdcLWNvdW50cnk7CivmqZ/oo70gPCBtYWNoaW5lXC1wcm9jZXNzZWQ7CivplbfpgZQgPCBleHRlbmRcLWFzXC1sb25nXC1hczsKK+WMluWmnSA8IHRvXC1wdXRcLW9uXC1tYWtlXC11cDsKK+mbo+aNsSA8IHRyeWluZ1wsXC1kaWZmaWN1bHQ7CivlpKflsYAgPCBnZW5lcmFsXC1zaXR1YXRpb247CivmkpLov6bliKnkup7mm7ggPCBib29rXC1vZlwtemVjaGFyaWFoOwor5pWP5oSfIDwgc2Vuc2l0aXZlXC1cKGlzc3VlXCk7CivntKHnuZQgPCBzcGlubmluZ1wtXCh0aHJlYWRcKTsKK+Wkp+WkmiA8IGZvclwtdGhlXC1tb3N0XC1wYXJ0Owor5b6S5YiRIDwgXChwcmlzb25cKVwtc2VudGVuY2U7Civou43kuovlipvph48gPCBtaWxpdGFyeVwtc3RyZW5ndGg7Civms6Llo6vpoJPlpKflrbggPCBib3N0b25cLXVuaXZlcnNpdHk7CivmlK/mjIEgPCB0b1wtYmVcLWluXC1mYXZvclwtb2Y7CivntJvntJsgPCBvbmVcLWFmdGVyXC1hbm90aGVyOwor6bql5YWL57atIDwgXCh0aW1vdGh5XClcLW1jdmVpZ2g7Civmh4nnlKjlsaQgPCBhcHBsaWNhdGlvblwtbGF5ZXI7CivmoYzliKXmnpcgPCBcKGNoYXJsaWVcKVwtY2hhcGxpbjsKK+mbu+ipseacjeWLmSA8IHRlbGVwaG9uZVwtc2VydmljZTsKK+iTi+eIvuiqniA8IGdhZWxpY1wtXChsYW5ndWFnZVwpOwor5Lqk5o+b5Lul5aSq57ay57WhIDwgc3dpdGNoZWRcLWV0aGVybmV0Owor5aSW5ZyLIDwgZm9yZWlnblwtXChjb3VudHJ5XCk7CivpmL/mi4nkvK/oqp4gPCBhcmFiaWNcLVwobGFuZ3VhZ2VcKTsKK+aNlemjnyA8IGNhdGNoXC1hbmRcLWZlZWRcLW9uOwor5pSv5p+x55Si5qWtIDwgbWFpbnN0YXlcLWluZHVzdHJ5Owor54Sh5omA6KyCIDwgdG9cLWJlXC1pbmRpZmZlcmVudDsKK+WkmuermeWcsOWdgCA8IG11bHRpY2FzdFwtYWRkcmVzczsKK+m9hCA8IHJlZFwtc29yZXNcLW9uXC1ub3NlOwor57aT5r+f5a6J5YWoIDwgZWNvbm9taWNcLXNlY3VyaXR5Owor6bufIDwgYmxhY2tcLWFuZFwtc2hpbmluZzsKK+m5gSA8IHNwZWNpZXNcLW9mXC1waWdlb247CivovJToqrIgPCBzdWJzaWRpYXJ5XC1jb3Vyc2U7CivlpJbkuqTpoqjms6IgPCBkaXBsb21hdGljXC1jcmlzaXM7CivptbUgPCBzY29wc1wtc2VtaXRvcnF1ZXM7CivlhavogqEgPCBlaWdodFwtXC1wYXJ0XC1lc3NheTsKK+W5s+awkSA8IFwob3JkaW5hcnlcKVwtcGVvcGxlOwor6YOK5Y2AIDwgc3VidXJiYW5cLWRpc3RyaWN0Owor5YWp6ICFIDwgYm90aFwtc2lkZXNcfHRoaW5nczsKK+muuCA8IHNjaWFlbmFcLWFsYmlmbG9yYTsKK+mtqyA8IHRoZVwteW91bmdcLW9mXC1maXNoOwor6YOo5Lu9IDwgcGFydFwtXChvZlwtYVwtd2hvbGVcKTsKK+mrvSA8IHRvXC1kcmVzc1wtdGhlXC1oYWlyOwor6Zu76Kmx57ay6LevIDwgdGVsZXBob25lXC1uZXR3b3JrOwor55m96IKJIDwgcGxhaW5cLWJvaWxlZFwtcG9yazsKK+mlqSA8IHNhY3JmaWNpYWxcLXZpY3RpbTsKK+mCiuWhniA8IGZyb250aWVyXC1mb3J0cmVzczsKK+mkgiA8IHRvXC1vYnRhaW5cLWJ5XC1ob29rOwor55+z5Yi7IDwgc3RvbmVcLWluc2NyaXB0aW9uOwor6Z64IDwgbGVhdGhlclwtYXJtXC1ndWFyZDsKK+mdvyA8IHRoZVwtbGVnXC1vZlwtYVwtYm9vdDsKK+e3iuWvhiA8IGluc2VwYXJhYmx5XC1jbG9zZTsKK+mauCA8IGJlXC1zdWJzZXJ2aWVudFwtdG87CivmqZ/lmajkurogPCBtZWNoYW5pY2FsXC1wZXJzb247CivplqogPCB0b1wtbG9zZVwtbG9zdFwtaXRlbTsKK+mCiuWNoSA8IGJvcmRlclwtY2hlY2twb2ludDsKK+e3qeWSjCA8IHRvXC1lYXNlXC1cKHRlbnNpb25cKTsKK+WPjemBjuS+huiqqiA8IG9uXC10aGVcLW90aGVyXC1oYW5kOwor57at5oyB6LK7IDwgbWFpbnRlbmFuY2VcLWNvc3RzOwor6YqgIDwgcmhvZGl1bVwtcnV0aGVuaXVtOwor57eo5Y2wIDwgY29tcGlsZVwtYW5kXC1wcmludDsKK+mJlSA8IHByb21ldGhpdW1cLWJyb256ZTsKK+i+puWFrOiHquWLleWMliA8IG9mZmljZVwtYXV0b21hdGlvbjsKK+mIsyA8IGNvbHVtYml1bVwtbmlvYml1bTsKK+WHseaXiyA8IHJldHVyblwtdHJpdW1waGFudDsKK+atkOa0suiqnuiogCA8IGV1cm9wZWFuXC1sYW5ndWFnZTsKK+eAieiCmiA8IHRvXC1oYXZlXC1kaWFycmhvZWE7Civphq0gPCBtb3VsZHNcLW9uXC1saXF1aWRzOwor6YaRIDwgdG9cLXN0cmFpblwtc3Bpcml0czsKK+mFuiA8IGRyaW5rXC13aXRoXC1vdGhlcnM7CivntrLntaHoqK3lgpkgPCBuZXR3b3JrXC1lcXVpcG1lbnQ7Civnmb3nnLwgPCBzdXBlcmNpbGlvdXNcLWxvb2s7Civmnb/mk6blhZIgPCBibGFja2JvYXJkXC1lcmFzZXI7Civml6Xnm4rlop7liqAgPCB0b1wtaW5jcmVhc2VcLWRhaWx5Owor6LKNIDwgYVwtZm94XC1saWtlXC1hbmltYWw7CivnnLzlsJYgPCB0b1wtaGF2ZVwtZ29vZFwtZXllczsKK+ixiyA8IGNlcmVtb25pYWxcLXZlc3NlbDsKK+WgseW4syA8IHJlbmRlclwtYW5cLWFjY291bnQ7CivntpPmv5/lipvph48gPCBlY29ub21pY1wtc3RyZW5ndGg7CivoprwgPCBleHBsYWluXC1pblwtZGV0YWlsOwor5ZCM5oCn5oiAIDwgaG9tb3NleHVhbFwtXChsb3ZlXCk7Civoo5znmbwgPCBzdXBwbHlcLWFnYWluXC1cKHN0aDsKK+iuiuacrOWKoOWOsiA8IGJlY29tZVwtYWdncmF2YXRlZDsKK+S4jeWPiueJqeWLleipniA8IGludHJhbnNpdGl2ZVwtdmVyYjsKK+WFiee6luaOpeWPoyA8IG9wdGljYWxcLWludGVyZmFjZTsKK+irvuiyneeIvuWSjOW5s+eNjiA8IG5vYmVsXC1wZWFjZVwtcHJpemU7CivonJQgPCBpbmxhaWRcLXNoZWxsXC13b3JrOwor5oqK6aCtIDwgbGFib3VyXC1jb250cmFjdG9yOwor5ZWG5qWt6KGM54K6IDwgYnVzaW5lc3NcLWFjdGl2aXR5Owor6LuN6LK76ZaL5pSvIDwgbWlsaXRhcnlcLXNwZW5kaW5nOwor6Ji1IDwgcGh5c2FsaXNcLWFuZ3VsYXRhOwor5oCn6ai35pO+IDwgc2V4dWFsXC1oYXJhc3NtZW50Owor6JeoIDwga2luZFwtb2ZcLXJhc3BiZXJyeTsKK+iVuCA8IHdhdGVyXC1saWx5JydzXC1sZWFmOwor6JWRIDwgdmFsZXJpYW5hXC12aWxsb3NhOwor6Luf5Lu25bmz6Ie6IDwgc29mdHdhcmVcLXBsYXRmb3JtOwor6JGOIDwgaHVtdWx1c1wtamFwb25pY3VzOwor5bGP6ZqcIDwgcHJvdGVjdGl2ZVwtc2NyZWVuOwor6I+jIDwgYXJ0ZW1pc2lhXC1hcGlhY2VhOwor6I6bIDwgc3RhbGtzXC1vZlwtZ3Jhc3NlczsKK+eBq+aYnyA8IG1hcnNcLVwodGhlXC1wbGFuZXRcKTsKK+iMjSA8IHRvXC1iZVwtY2lyY3Vtc3BlY3Q7CivpqI7ppqwgPCByaWRlXC1vblwtaG9yc2ViYWNrOwor5qmr5pa354mpIDwgdHJhbnN2ZXJzZVwtb2JqZWN0Owor5oqE6YyEIDwgdG9cLW1ha2VcLWFcLWNvcHlcLW9mOwor5o+t5puJIDwgYW5ub3VuY2VcLXB1YmxpY2x5Owor572bIDwgbGFyZ2VcLWZpc2hpbmdcLW5ldDsKK+eZveWxiOiPnCA8IGdyZWF0ZXJcLWNlbGFuZGluZTsKK+e4sCA8IGJhbmRcLWZvclwtdGhlXC1oYWlyOwor57aOIDwgc2lsa1wtYnJhaWRlZFwtY29yZDsKK+aMieWclue0oumppSA8IHRyeVwtdG9cLWxvY2F0ZVwtc3RoOwor57SsIDwga2luZFwtb2ZcLXRoaW5cLXNpbGs7Civnl4XnqIsgPCBjb3Vyc2VcLW9mXC1kaXNlYXNlOwor5YKz6Ly4546HIDwgdHJhbnNtaXNzaW9uXC1yYXRlOwor57G4IDwgcG93ZGVyeVwtc3Vic3RhbmNlOwor5biM5Lyv5L6G6KqeIDwgaGVicmV3XC1cKGxhbmd1YWdlXCk7CivnsZMgPCBiaWdcLXdpbm5vd1wtYmFza2V0Owor6ZaL55m86YCx5pyfIDwgZGV2ZWxvcG1lbnRcLWN5Y2xlOwor56+oIDwgY29hcnNlXC1iYW1ib29cLW1hdDsKK+eUs+iotCA8IHRvXC1hcHBlYWxcLVwodG9cLXNiXCk7CivkvLrmnI3lmaggPCBzZXJ2ZXJcLVwoY29tcHV0ZXJcKTsKK+S+m+mcgCA8IHN1cHBseVwtYW5kXC1kZW1hbmQ7CivlnLDmrrwgPCB0aGVcLWVhcnRoJydzXC1jcnVzdDsKK+mWieW5lSA8IHRoZVwtY3VydGFpblwtZmFsbHM7CivnpYogPCByaXZlclwtaW5cLXNoYW5kb25nOwor55ub5ZCNIDwgZmFtb3VzXC1yZXB1dGF0aW9uOwor5bel5aeUIDwgd29ya2luZ1wtY29tbWl0dGVlOwor5oiw55Wl5aSl5Ly0IDwgc3RyYXRlZ2ljXC1wYXJ0bmVyOwor562G6Kq/IDwgXChvZlwtd3JpdGluZ1wpXC10b25lOwor5bGV6Ka9IDwgdG9cLXB1dFwtb25cLWRpc3BsYXk7Civnmb3luIMgPCBwbGFpblwtd2hpdGVcLWNsb3RoOwor6Z2c6ISI5ZC45q+SIDwgaW50cmF2ZW5lb3VzXC1kcnVnOwor55i1IDwgYVwtd2FzdGluZ1wtZGlzZWFzZTsKK+eEoeacn+W+kuWIkSA8IGxpZmVcLWltcHJpc29ubWVudDsKK+W3peWcsCA8IGNvbnN0cnVjdGlvblwtc2l0ZTsKK+eSqyA8IHBlbmRhbnRcLW9ybmFtZW50czsKK+eZvuWIhuS5i+eZviA8IGFcLWh1bmRyZWRcLXBlcmNlbnQ7Civmo5XoibIgPCBicm93blwtXCh0aGVcLWNvbG9yXCk7Civnr4fnm64gPCB0YWJsZVwtb2ZcLWNvbnRlbnRzOwor546eIDwgYW5cLWluZmVyaW9yXC1hZ2F0ZTsKK+iGneS4iuWei+mbu+iFpiA8IGxhcHRvcFwtXChjb21wdXRlclwpOwor6JCK5rqr5pav5Z+6IDwgXChtb25pY2FcKVwtbGV3aW5za3k7CivnhoAgPCB0aGVcLWJsYXplXC1vZlwtZmlyZTsKK+S9j+mZoiA8IHRvXC1iZVwtaW5cLWhvc3BpdGFsOwor5YKz6Ly45pyN5YuZIDwgdHJhbnNwb3J0XC1zZXJ2aWNlOwor5pCP5YuVIDwgYmVhdFwtcmh5dGhtaWNhbGx5Owor5o6l5b6FIDwgcmVjZWl2ZVwtXChhXC12aXNpdFwpOwor54GOIDwgbW92ZW1lbnRcLW9mXC13YXRlcjsKK+WFrOWLmSA8IG9mZmljaWFsXC1idXNpbmVzczsKK+a4sCA8IGZvcm1pbmdcLW9yXC1yaXNpbmc7Civmi5jnlZkgPCBkZXRhaW5cLVwocHJpc29uZXJcKTsKK+a0tiA8IHRoZVwtcnVzaFwtb2ZcLXdhdGVyOwor57ac5ZCI5biD57eaIDwgaW50ZWdyYXRlZFwtd2lyaW5nOwor5ZyL6Zqb5rOVIDwgaW50ZXJuYXRpb25hbFwtbGF3Owor5YWs5L2IIDwgcHVibGljbHlcLWFubm91bmNlOwor5YWn5LqCIDwgaW50ZXJuYWxcLWRpc29yZGVyOwor6KGb5pifIDwgXChzcGFjZVwpXC1zYXRlbGxpdGU7Civmi43nhacgPCB0b1wtdGFrZVwtYVwtcGljdHVyZTsKK+eXheaVhSA8IGRpZVwtb2ZcLWFuXC1pbGxuZXNzOwor6KGd5pOKIDwgXChiZVwtdW5kZXJcKVwtYXR0YWNrOwor6ZW35LmFIDwgXChmb3JcLWFcKVwtbG9uZ1wtdGltZTsKK+acoCA8IGNvbG9yXC1vZlwtdGhlXC1tb29uOwor5YKz6Ly46YCa6YGTIDwgdHJhbnNwb3J0XC1jaGFubmVsOwor5pS/5bqc6YOo6ZaAIDwgZ292ZXJubWVudFwtYnJhbmNoOwor5pqUIDwgbmFtZVwtb2ZcLWFcLWNvdW50cnk7CivpjITpn7MgPCBcKHNvdW5kXClcLXJlY29yZGluZzsKK+aWsOiBnumAseWIiiA8IG5ld3N3ZWVrXC1tYWdhemluZTsKK+aUsCA8IHRvdGFsbHlcLWV4aGF1c3RlZDsKK+S/neelkCA8IGJsZXNzXC1hbmRcLXByb3RlY3Q7CivmjqsgPCBiZVwtb25cLW5pZ2h0XC13YXRjaDsKK+aNt+WgsSA8IHJlcG9ydFwtb2ZcLXN1Y2Nlc3M7CivmjaUgPCB0b1wtYmVuZFwtdGhlXC13cmlzdDsKK+WcmOWckyA8IHRvXC1oYXZlXC1hXC1yZXVuaW9uOwor55u05o6l56u254itIDwgZGlyZWN0XC1jb21wZXRpdG9yOwor5Lit5aSu5aeU5ZOh5pyDIDwgY2VudHJhbFwtY29tbWl0dGVlOwor6Yar55mC57aT6amXIDwgbWVkaWNhbFwtZXhwZXJ0aXNlOwor5buj5pKt5Zyw5Z2AIDwgYnJvYWRjYXN0XC1hZGRyZXNzOwor5oSwIDwgY2xlYXJuZXNzXC1vZlwtbWluZDsKK+aOiOWLmyA8IHRvXC1hd2FyZFwtYW5cLWhvbm9yOwor5ZOA6bO0IDwgYVwtcGxhaW50aXZlXC13aGluZTsKK+eUn+eJqeatpuWZqCA8IGJpb2xvZ2ljYWxcLXdlYXBvbjsKK+W8liA8IHBob25ldGljXC1mb3JcLScndGUnJzsKK+aHguihjCA8IHRvXC1rbm93XC10aGVcLXJvcGVzOwor6LuN5Y2AIDwgYVwtbWlsaXRhcnlcLXJlZ2lvbjsKK+S/neeIviA8IFwoYVwtcGVyc29uYWxcLW5hbWVcKTsKK+iyoemWpSA8IGZpbmFuY2lhbFwtbWFnbmF0ZTsKK+aal+eEoeWkqeaXpSA8IGNvbXBsZXRlXC1kYXJrbmVzczsKK+WwqCA8IHNoYWdneVwtaGFpcmVkXC1kb2c7Civmi43mlJ0gPCBcKHNob290XC1hXClcLXBpY3R1cmU7CivkvrXmiKrogIUgPCBcKGNvbXB1dGVyXClcLWhhY2tlcjsKK+iAg+mplyA8IFwocHV0XC10b1wtdGhlXClcLXRlc3Q7Civkv53muqsgPCBoZWF0XC1wcmVzZXJ2YXRpb247Civpq5jntJrnoJTnqbYgPCBhZHZhbmNlZFwtcmVzZWFyY2g7CivlsY/msKMgPCBob2xkXC1vbmUnJ3NcLWJyZWF0aDsKK+iHquS4u+ezu+e1sSA8IGF1dG9ub21vdXNcLXN5c3RlbTsKK+eZvemHkea8ouWuriA8IGJ1Y2tpbmdoYW1cLXBhbGFjZTsKK+mBi+ihjOeLgOazgSA8IG9wZXJhdGlvbmFsXC1zdGF0ZTsKK+WkiiA8IGthbmd4aVwtcmFkaWNhbFwtMzU7Civlm7Dpm6PlnKjmlrwgPCB0aGVcLXByb2JsZW1cLWlzXC5cLlwuOwor5pel6ICz5pu86KqeIDwgZ2VybWFuaWNcLWxhbmd1YWdlOwor56if6LOmIDwgbmF0dXJhbFwtZW5kb3dtZW50Owor55eF5Y2xIDwgYmVcLWNyaXRpY2FsbHlcLWlsbDsKK+WCs+i8uOWNlOWumiA8IHRyYW5zZmVyXC1wcm90b2NvbDsKK+WWvyA8IGNoaXJwaW5nXC1vZlwtYmlyZHM7CivllrwgPCB1c2VkXC1waG9uZXRpY2FsbHk7CivllrkgPCBjaGVtaWNhbFwtY29tcG91bmQ7CivkvbXnmbwgPCBiZVwtY29tcGxpY2F0ZWRcLWJ5Owor5ZO1IDwgdGhlXC1jcnlcLW9mXC1hXC1iaXJkOwor5ZO0IDwgY3J5aW5nXC1vZlwtaW5mYW50czsKK+iyoeiyvyA8IGZpbmFuY2VcLWFuZFwtdHJhZGU7CivlpKfliIDpl4rmlqcgPCBib2xkXC1hbmRcLWRlY2lzaXZlOwor54m55Yil5b6F6YGHIDwgc3BlY2lhbFwtdHJlYXRtZW50Owor5ZCiIDwgdm9taXRpbmdcLW9mXC1hXC1kb2c7CivliJ3lrbjogIUgPCBiZWdpbm5pbmdcLXN0dWRlbnQ7CivlsIjnlKjntrLot68gPCBkZWRpY2F0ZWRcLW5ldHdvcms7Civopb/njovmr40gPCBuYW1lXC1vZlwtYVwtZ29kZGVzczsKK+S6lOinkuWkp+aok+WumOWToSA8IHBlbnRhZ29uXC1vZmZpY2lhbDsKK+aVmOWIqeS6nuaWhyA8IHN5cmlhY1wtXChsYW5ndWFnZVwpOwor5ryi5a2XIDwgY2hpbmVzZVwtY2hhcmFjdGVyOwor5a6J56mpIDwgc21vb3RoXC1hbmRcLXN0ZWFkeTsKK+WAiCA8IHRvXC1pbmR1Y2VcLXRvXC1jb21lOwor5L+IIDwgdG9cLWluZm9ybVwtcXVpY2tseTsKK+WIsOmCo+WAi+aZguWAmSA8IHVudGlsXC10aGlzXC1tb21lbnQ7Civku4IgPCBzdXJwbHVzXC1vclwtZXhjZXNzOwor5Zyo6aCt54mIIDwgb25cLXRoZVwtZnJvbnRcLXBhZ2U7CivlsIjmpa0gPCBzcGVjaWFsaXplZFwtZmllbGQ7CivkuaogPCBhXC1iZW5kXC1pblwtYVwtcml2ZXI7CivotqjmmYIgPCB0b1wtZm9sbG93XC1mYXNoaW9uOwor5LawIDwgZmVhdGhlclwtb3JuYW1lbnRzOwor5LaWIDwgZGlzZWFzZVwtb2ZcLXRvbmd1ZTsKK+S1nCA8IHRvXC1wbG91Z2hcLWFuZFwtc293Owor5LSKIDwgdGhlXC1jcm93XC1waGVhc2FudDsKK+S7jeiIiiA8IHN0aWxsXC1cKHJlbWFpbmluZ1wpOwor5LOkIDwgYVwta2luZFwtb2ZcLXN0cmFuZ2U7Civks5kgPCBhXC1lZ3JldFwtbGlrZVwtYmlyZDsKK+aLl+WPoyA8IGhhcmRcLXRvXC1wcm9ub3VuY2U7Civkr6UgPCB3aXRoXC1hXC1oaWdoXC1za3VsbDsKK+SvoiA8IHBhcnRpYWxcLXBhcmFseXNpczsKK+SuqyA8IGFcLWJpZ1wtbXVsZVwtYW5cLWFzczsKK+SumiA8IGRpc2Vhc2VzXC1vZlwtaG9yc2U7CivkrpAgPCBpblwtZ29vZFwtY29uZGl0aW9uOwor5K2UIDwgc3RlYW1lZFwtZHVtcGxpbmdzOwor5KywIDwgbGlnaHRcLXJlZnJlc2htZW50Owor5KyVIDwgc291bmRcLW9mXC10aGVcLXdpbmQ7CivkrI0gPCB0aGVcLXNvdW5kXC1vZlwtd2luZDsKK+SshiA8IGFcLWJsdXN0ZXJpbmdcLWdhbGU7Civkq6YgPCB0aGVcLWxvd2VyXC1qYXdib25lOwor5KufIDwgZmFjaWFsXC1jb21wbGV4aW9uOwor5KuNIDwgdG9cLWJvd1wtb25lJydzXC1oZWFkOwor5KuJIDwgZmFjaWFsXC1hcHBlYXJhbmNlOwor5LiN5q2h6ICM5pWjIDwgcGFydFwtb25cLWJhZFwtdGVybXM7CivkqJUgPCBwb3VyaW5nXC13aXRoXC1yYWluOwor5Lit6I+v5rCR5ZyLIDwgcmVwdWJsaWNcLW9mXC1jaGluYTsKK+SnuiA8IHRoZVwtbWFsZVwtb2ZcLWJpcmRzOwor5KaqIDwgc291bmRcLW9mXC10aGVcLWRvb3I7CivllpjmsKMgPCB0b1wtYnJlYXRoZVwtZGVlcGx5Owor5KaDIDwgdG9cLWRpZ1wtd2l0aFwtYVwtaG9lOwor5KO7IDwgY29sb3JcLW9mXC10aGVcLXdpbmU7Civmi5zlgJIgPCBwcm9zdHJhdGVcLW9uZXNlbGY7Civms6LomK3oqp4gPCBwb2xpc2hcLVwobGFuZ3VhZ2VcKTsKK+SinSA8IHRoZVwtbmV4dFwtaW5cLW9yZGVyOwor5KG3IDwgbm9pc2VcLW9mXC12ZWhpY2xlczsKK+ShqiA8IGZhblwtb2ZcLWFcLWNhcnJpYWdlOwor5KGZIDwgYW5cLWFybWVkXC1jYXJyaWFnZTsKK+SelSA8IGNvbG9yXC1vZlwtdGhlXC1maXJlOwor5J6CIDwgZmFpcmx5XC1wcm9zcGVyb3VzOwor5omN5oCdIDwgaW1hZ2luYXRpdmVcLXBvd2VyOwor5J26IDwgdG9cLXBpZXJjZVwtdGhyb3VnaDsKK+SdsyA8IHRvXC1raWxsXC1mb3JcLW1vbmV5Owor5J2yIDwgZmFyZXdlbGxcLXByZXNlbnRzOwor5Lim6aeV6b2K6amFIDwgcnVuXC1uZWNrXC1hbmRcLW5lY2s7Civms6Lpn7MgPCBib2VpbmdcLVwoYWlyY3JhZnRcKTsKK+i9n+eCuOapnyA8IGJvbWJlclwtXChhaXJjcmFmdFwpOwor5JyiIDwgY3J1ZWxcLWFuZFwtdmlvbGVudDsKK+mbo+S7peaHieS7mCA8IGhhcmRcLXRvXC1kZWFsXC13aXRoOwor5JqgIDwgdW5icm9rZW5cLWZpcmV3b29kOwor5JqdIDwgbmV3XC1ncm93aW5nXC1ob3JuczsKK+SamiA8IGhvcm5cLW9mXC1hblwtYW5pbWFsOwor5JqRIDwgdG9cLXN0ZWFsXC1hXC1nbGFuY2U7CivkmoAgPCB0b1wtc2VlXC1zdGVhbHRoaWx5Owor5Jm0IDwgdG9cLXNvYXJcLWFzXC1hXC1iaXJkOwor5JmqIDwgYVwtbG9vcFwtZm9yXC1idXR0b247CivmtJvmnYnno6/mmYLloLEgPCBsb3NcLWFuZ2VsZXNcLXRpbWVzOwor5JiOIDwgbmFtZVwtb2ZcLWFuXC1pbnNlY3Q7Civnoazku7blubPoh7ogPCBoYXJkd2FyZVwtcGxhdGZvcm07Civkl7kgPCBoYWlyeVwtY2F0ZXJwaWxsYXI7CivkvZzmpa0gPCBzY2hvb2xcLWFzc2lnbm1lbnQ7Civlrpjmlrnoqp7oqIAgPCBvZmZpY2lhbFwtbGFuZ3VhZ2U7CivpvJPoiJ4gPCBoZWFydGVuaW5nXC1cKG5ld3NcKTsKK+SVpyA8IHppemFuaWFcLWxhdGlmb2xpYTsKK+SVhiA8IHJvdW5kXC1zdHJhd1wtcXVpbHQ7CivphqvlrbjlrrYgPCBtZWRpY2FsXC1zY2llbnRpc3Q7Civkk5sgPCBtb2xlY3VsYXJcLWZvcm11bGE7Civkkr0gPCBpbGxpY2l1bVwtYW5pc2F0dW07CivkkpAgPCBkaXN0dXJiZWRcLWluXC1taW5kOwor5JG8IDwgb2NlYW5cLWdvaW5nXC1saW5lcjsKK+WMl+S6rOi/kemDiiA8IHN1YnVyYlwtb2ZcLWJlaWppbmc7CivkkKAgPCBiZXR3ZWVuXC10aGVcLWZsZXNoOwor5JCYIDwgdG9cLWxhdWdoXC1oZWFydGlseTsKK+SPsCA8IGFcLWtpbmRcLW9mXC1pbnNlY3RzOwor6I+v55ub6aCTIDwgd2FzaGluZ3RvblwtXChkXC5jXC5cKTsKK+SNrSA8IGFcLWV3ZVwtb3JcLXNoZVwtZ29hdDsKK+SNhyA8IGZsYXRcLWJvdHRvbVwtY3JvY2s7CivkjKggPCB0aGluXC1zaWxrXC1mYWJyaWNzOwor5Iu7IDwgdG9cLXNwaW5cLWFuZFwtd2VhdmU7Civki7ogPCBhXC1zd2luZ1wtYVwtY3J1cHBlcjsKK+SLmCA8IHRvXC1oYW5kXC1ieVwtYVwtcm9wZTsKK+aWh+WMlueahOS6pOa1gSA8IGN1bHR1cmFsXC1leGNoYW5nZTsKK+SKryA8IGdyYWluc1wtd2l0aFwtYmVhcmQ7CivkiYwgPCBjcnVkZVwtYmFtYm9vXC1tYXRzOwor5IigIDwgYm9va3NcLWFuZFwtdm9sdW1lczsKK+aWr+a0m+S8kOWFi+iqniA8IHNsb3Zha1wtXChsYW5ndWFnZVwpOwor5qGI5oOFIDwgZGV0YWlsc1wtb2ZcLWFcLWNhc2U7CivkuJ/po6/nopcgPCB0b1wtbG9zZVwtb25lJydzXC1qb2I7CivkhIkgPCBhXC1yaXRlXC1vclwtc2VydmljZTsKK+iyoeelniA8IHRoZVwtZ29kXC1vZlwtd2VhbHRoOwor5IGEIDwgdG9cLWNsb3NlXC10aGVcLWV5ZXM7CivkgLkgPCB0b1wtd2lua1wtZXllbGFzaGVzOwor5q+U6LyD5pawIDwgY29tcGFyYXRpdmVseVwtbmV3Owor47+DIDwgYW5cLW94XC1oZWFkZWRcLWJvaWw7CivjvrEgPCBpbmN1cmFibGVcLWRpc2Vhc2U7CivjvY0gPCBhblwtZWFydGhlblwtdmVzc2VsOwor47q/IDwgYVwtamFkZVwtbGlrZVwtc3RvbmU7CivlpJblnIvml4XpgYrogIUgPCBmb3JlaWduXC10cmF2ZWxsZXI7Civnj77ni4AgPCBjdXJyZW50XC1zaXR1YXRpb247CivlsI/loLEgPCB0YWJsb2lkXC1uZXdzcGFwZXI7Civjtr8gPCB0aGVcLXNtb2tlXC13ZW50XC11cDsKK+O2tCA8IGFcLXZlcnlcLWdyZWF0XC1maXJlOwor5LiA6Iis5Y6f5YmHIDwgZ2VuZXJhbFwtcHJpbmNpcGxlOwor47WrIDwgd2F0ZXJcLWd1c2hpbmdcLW91dDsKK+O1jSA8IGZpbGxlZFwtd2l0aFwtd2F0ZXI7CivjtYQgPCBuYW1lXC1vZlwtYVwtZHluYXN0eTsKK+acneiBliA8IG1ha2VcLWFcLXBpbGdyaW1hZ2U7Civjs5wgPCB0aGVcLWZsb3dpbmdcLXdhdGVyOwor47KyIDwgZmluZVwtY290dG9uXC1jbG90aDsKK+OymCA8IGZpbmVcLXdvb2xlblwtY2xvdGg7CivjsosgPCBhXC1raW5kXC1vZlwtYW5pbWFsczsKK+OygyA8IHNtb290aFwtYW5kXC1jdXJ2ZWQ7Civkv53lgaUgPCBoZWFsdGhcLXByb3RlY3Rpb247Civjr78gPCBoYW5kbGVcLW9mXC1hXC1sYWRsZTsKK+OvpiA8IHRoZVwtZ2FtZVwtb2ZcLWNoZXNzOwor5rer5rC0IDwgc2V4dWFsXC1zZWNyZXRpb25zOwor4661IDwgY29tbW9uXC1zYW5kYWx3b29kOwor466oIDwgY29kaXVtXC1tYWNyb25hdHVtOwor466aIDwgdGhlXC1jaGVzdG51dFwtdHJlZTsKK+OsmyA8IHRvXC1kcnlcLWluXC10aGVcLXN1bjsKK+WwhOmgu+W5suaTviA8IHJhZGlvXC1pbnRlcmZlcmVjZTsKK+OpriA8IHRvXC1saWZ0XC11cFwtb3JcLW9mZjsKK+OpqSA8IHRvXC1jb21lXC10b1wtYW5cLWVuZDsKK+OpmSA8IGFcLWNvcmtcLW9yXC1zdG9wcGVyOwor46iiIDwgdG9cLXJpcFwtb3BlblwtZmxlc2g7Civpm7vkv6HomZ8gPCBlbGVjdHJpY2FsXC1zaWduYWw7CivlsIvlkbMgPCB0b1wtdGhpbmtcLXN0aFwtb3ZlcjsKK+adv+eFmSA8IHBsdWdcLVwob2ZcLXRvYmFjY29cKTsKK+azqOimliA8IHdhdGNoXC1hdHRlbnRpdmVseTsKK+OjoiA8IHRvXC1yZXN0XC1mcm9tXC13b3JrOwor46OTIDwgbGl0ZXJhcnlcLWluXC10YXN0ZTsKK+OjjSA8IGFcLXJhaXNlZFwtcGxhdGZvcm07Civjoq4gPCB0b1wtdW5zdHJpbmdcLWFcLWJvdzsKK+OikSA8IGFcLWNvbGxhcHNlZFwtaG91c2U7CivjooQgPCBhXC1raW5kXC1vZlwtdXRlbnNpbDsKK+azleiqniA8IGZyZW5jaFwtXChsYW5ndWFnZVwpOwor46GfIDwgYmVkXC1tYXRzXC1mb3JcLWJhYnk7CivjoLcgPCBhXC12ZXNzZWxcLWZvclwtcmljZTsKK+OgpSA8IHJ1Z2dlZFwtYW5kXC11bmV2ZW47Civjn7QgPCBsdW1wXC1vblwtdGhlXC1oaWxsczsKK+OfpCA8IHpodWFuZ1wtaW5cLWd1YW5neGk7Civjn4MgPCB0b1wtaGF2ZVwtY2hhcmdlXC1vZjsKK+OerSA8IG5hbWVcLW9mXC1hblwtaXNsYW5kOwor5Zub6Z2i5YWr5pa5IDwgaW5cLWFsbFwtZGlyZWN0aW9uczsKK+OdjCA8IHByb2xvbmdlZFwtaWxsbmVzczsKK+ObtCA8IHRvXC1hbmdlclwtdG9cLWFubm95Owor45qFIDwgdG9cLXdvcnNoaXBcLW9mXC1nb2Q7CivjmakgPCBhblwtZW5jbG9zaW5nXC13YWxsOwor45imIDwgd2FsbFwtbWFkZVwtb2ZcLXNvaWw7CivjmJogPCBhbmdyeVwtYWlyXC1vZlwtbG9vazsKK+OXvCA8IGVhdGluZ1wtb3JcLXRhbGtpbmc7Civjl6UgPCBzb3VuZFwtb2ZcLXN0cmlraW5nOwor45anIDwgY2FuXC1ub3RcLXNlZVwtY2xlYXI7CivjlJ0gPCBzdHJvbmdcLXJlc2lzdGFuY2U7Civjk74gPCB0b1wtd291bmRcLXRoZVwtc2tpbjsKK+eNqOeriyA8IHRvXC1iZVwtaW5kZXBlbmRlbnQ7CivjkZ0gPCB0b1wtbWFrZVwtYVwtZm9vbFwtb2Y7CivjkY8gPCB0b1wtc3RhbmRcLWFuZFwtd2FpdDsKK+ORiiA8IGFcLWtpbmRcLW9mXC1kaXNlYXNlOwor56eY5pu46ZW3IDwgc2VjcmV0YXJ5XC1nZW5lcmFsOwor6LWw5Ye6IDwgdG9cLW1vdmVcLWF3YXlcLWZyb207CivogbLmj7QgPCBzdXBwb3J0XC1cKGFcLWNhdXNlXCk7CivnpKbol48gPCBtaW5lcmFsXC1yZXNvdXJjZXM7Civlr6vkv6EgPCB0b1wtd3JpdGVcLWFcLWxldHRlcjsKK+S4iee2rSA8IHRocmVlXC1kaW1lbnNpb25hbDsKK+eptOWxhSA8IHRvXC1saXZlXC1pblwtYVwtY2F2ZTsKK+eLgOiqniA8IGFkdmVyYmlhbFwtYWRqdW5jdDsKK+WcqOWkp+WkmuaVuOaDheazgeS4iyA8IGluXC1tb3N0XC1pbnN0YW5jZXM7Civphazph5EgPCBcKG1vbmV0YXJ5XClcLXJld2FyZDsKK+Wci+WutuWuieWFqCA8IG5hdGlvbmFsXC1zZWN1cml0eTsKK+iyoeaUvyA8IGZpbmFuY2VzXC1cKHB1YmxpY1wpOwor5rW35rSL5rqr5bqmIDwgb2NlYW5cLXRlbXBlcmF0dXJlOwor57ay6Zqb5Y2U5a6aIDwgaW50ZXJuZXRcLXByb3RvY29sOwor5aSW5Lqk6Zec5L+CIDwgZm9yZWlnblwtcmVsYXRpb25zOwor5a6J5Y2xIDwgc2FmZXR5XC1hbmRcLWRhbmdlcjsKK+W3tOWFi+Wkj+ixrCA8IGJlcmtzaGlyZVwtXChzd2luZVwpOwor5ZCN56ixIDwgbmFtZVwtXChvZlwtYVwtdGhpbmdcKTsKK+eJqeizqiA8IFwocGh5c2ljYWxcKVwtbWF0dGVyOwor5ZCD56m/IDwgZm9vZFwtYW5kXC1jbG90aGluZzsKK+ioiuahhuWCs+mAgeirluWjhyA8IGZyYW1lXC1yZWxheVwtZm9ydW07CivnqbTkvY0gPCBhY3VwdW5jdHVyZVwtcG9pbnQ7CivlrbjkvY0gPCBlZHVjYXRpb25hbFwtbGV2ZWw7CivlkITnlYwgPCBhbGxcLXdhbGtzXC1vZlwtbGlmZTsKK+iAs+WtkCA8IGhhbmRsZVwtXChvblwtYVwtcG90XCk7CivmrZDmtLLkurogPCBldXJvcGVhblwtXChwZXJzb25cKTsKK+aAnee2rSA8IFwobGluZVwtb2ZcKVwtdGhvdWdodDsKK+ihm+eUn+mDqCA8IGhlYWx0aFwtZGVwYXJ0bWVudDsKK+alreeVjOaomea6liA8IGluZHVzdHJ5XC1zdGFuZGFyZDsKK+S7peWFjSA8IGluXC1vcmRlclwtdG9cLWF2b2lkOwor5LiA5Y2D5LiD55m+6JCsIDwgc2V2ZW50ZWVuXC1taWxsaW9uOwor5LqL5a+mIDwgXCh0aGVcKVwtZmFjdFwtXCh0aGF0XCk7CivmnKzmgKcgPCBuYXR1cmFsXC1pbnN0aW5jdHM7Civpm6PpoYwgPCBkaWZmaWN1bHRcLXByb2JsZW07Civlp5Tlk6HmnIPmnIPorbAgPCBjb21taXR0ZWVcLW1lZXRpbmc7Civorornm7ggPCBpblwtZGlzZ3Vpc2VkXC1mb3JtOwor6LKh5YuZIDwgZmluYW5jaWFsXC1hZmZhaXJzOwor5pyN5b25IDwgc2VydmVcLWluXC10aGVcLWFybXk7CivphqvnmYIgPCBtZWRpY2FsXC10cmVhdG1lbnQ7Civpmbjln7rlsI7lvYggPCBsYW5kXC1iYXNlZFwtbWlzc2xlOwor5pWs6YeNIDwgdG9cLXJlc3BlY3RcLWRlZXBseTsKK+aal+aysyA8IHVuZGVyZ3JvdW5kXC1yaXZlcjsKK+mguOakjiA8IGNlcnZpY2FsXC12ZXJ0aWJyYTsKK+e2sum7niA8IG5vZGVcLWluXC1hXC1uZXR3b3JrOwor6buR5a6iIDwgaGFja2VyXC1cKGNvbXB1dGVyXCk7Civnupboiq8gPCBjb3JlXC1cKG9mXC1hXC1maWJlclwpOwor57eo6ZqKIDwgZm9ybVwtaW50b1wtY29sdW1uczsKK+aVl+mAgCA8IHJldHJlYXRcLWluXC1kZWZlYXQ7CivmnKzlnIsgPCBvbmUnJ3NcLW93blwtY291bnRyeTsKK+WkquW5s+a0iyA8IHRoZVwtcGFjaWZpY1wtb2NlYW47Civljp/lm6DmmK8gPCB0aGVcLXJlYXNvblwtaXNcLVwuXC5cLjsKK+ioiOeul+apn+W3pealrSA8IGNvbXB1dGVyXC1pbmR1c3RyeTsKK+ilv+eVqumbheabuCA8IGJvb2tcLW9mXC16ZXBoYW5pYWg7Civoqp7oqIAgPCBcKHNwb2tlblwpXC1sYW5ndWFnZTsKK+S4gOW5tOWNiiA8IGFcLXllYXJcLWFuZFwtYVwtaGFsZjsKK+WwiOWutuipleirliA8IGV4cGVydFwtY29tbWVudGFyeTsKK+mYv+eIvuW3tOWwvOS6nuS6uiA8IGFsYmFuaWFuXC1cKHBlcnNvblwpOwor5LiN5bGRIDwgZGlzZGFpblwtdG9cLWRvXC1zdGg7CivlmoflvpfnmbzmipYgPCB0cmVtYmxlXC13aXRoXC1mZWFyOwor5Y2K56WoIDwgaGFsZlwtcHJpY2VcLXRpY2tldDsKK+eNqOWUsSA8IFwoaW5cLXNpbmdpbmdcKVwtc29sbzsKK+S4jeeUmOW/gyA8IG5vdFwtcmVjb25jaWxlZFwtdG87Civlm5vploDovY7ou4ogPCBzZWRhblwtXChtb3RvclwtY2FyXCk7Civnp4HkurogPCBwcml2YXRlXC1cKGNpdGl6ZW5cKTsKK+eNsuWHhiA8IG9idGFpblwtcGVybWlzc2lvbjsKK+WuouaItuapnyA8IGNsaWVudFwtXChjb21wdXRlclwpOwor5qyK6ZGwIDwga2V5c1wtb2ZcLWF1dGhvcml0eTsKK+WksealreeOhyA8IHVuZW1wbG95bWVudFwtcmF0ZTsKK+eIhueuoSA8IGNhcnRyaWRnZVwtaWduaXRlcjsKK+ekpuW6iiA8IFwobWluZXJhbFwpXC1kZXBvc2l0Owor5oSb5LiN6YeL5omLIDwgZm9uZGxlXC1hZG1pcmluZ2x5Owor5q2i6KGAIDwgc3RhbmNoXC1cKGJsZWVkaW5nXCk7CivlkI3lrZcgPCBcKGFcLXBlcnNvbicnc1wpXC1uYW1lOwor6K2m5a+f5bGAIDwgcG9saWNlXC1kZXBhcnRtZW50Owor5Y+w5bmjIDwgbmV3XC10YWl3YW5cLWRvbGxhcjsKK+mhp+WPiiA8IHRha2VcLWludG9cLWFjY291bnQ7Civmrbjlv4PogIUgPCByZWxpZ2lvdXNcLWNvbnZlcnQ7CivmspLpl5zkv4IgPCBpdFwtZG9lc24nJ3RcLW1hdHRlcjsKK+S4i+WOuyA8IGdvXC1kb3duXC1cKGRlc2NlbmRcKTsKK+W+numgreWIsOiFsyA8IGZyb21cLWhlYWRcLXRvXC1mb290Owor5Yu756ixIDwgd2VsbFwtcHJvcG9ydGlvbmVkOwor5LiN5YqbIDwgbm90XC1kb1wtb25lJydzXC1iZXN0Owor6YGT6KydIDwgdG9cLWV4cHJlc3NcLXRoYW5rczsKK+ehneeFmSA8IHNtb2tlXC1cKGZyb21cLWd1bnNcKTsKK+iXneS6uiA8IHBlcmZvcm1pbmdcLWFydGlzdDsKK+WMheWckuWFkiA8IGJ1eVwtdGhlXC13aG9sZVwtbG90Owor5pWZ57e0IDwgXChhdGhsZXRlJydzXClcLWNvYWNoOwor5Ye66ZmiIDwgdG9cLWxlYXZlXC1ob3NwaXRhbDsKK+mYv+mHjCA8IGFsaVwtXChwcm9wZXJcLW5hbWVcKTsKK+S4gOi6q+axlyA8IHN3ZWF0aW5nXC1hbGxcLW92ZXI7CivpmYTov5EgPCBcKGluXC10aGVcKVwtdmljaW5pdHk7Civlu6Pmkq3ntrLot68gPCBicm9hZGNhc3RcLW5ldHdvcms7CivnrKjlj6Pmi5noiIwgPCBhd2t3YXJkXC1pblwtc3BlZWNoOwor54mM5qiTIDwgZGVjb3JhdGVkXC1hcmNod2F5Owor5be05pav5YWL6KqeIDwgYmFzcXVlXC1cKGxhbmd1YWdlXCk7CivniLbmr40gPCBmYXRoZXJcLWFuZFwtbW90aGVyOwor6I+v5YyX5bmz5Y6fIDwgbm9ydGhcLWNoaW5hXC1wbGFpbjsKK+aVkeaBqeioiOWKgyA8IHBsYW5cLW9mXC1zYWx2YXRpb247CivkuKogPCBudW1lcmFyeVwtYWRqdW5jdDsKK+mHjCA8IHVuaXRcLW9mXC1kaXN0YW5jZTsKK+mYsyA8ICcnbWFsZScnXC1wcmluY2lwbGU7CivoqJ0gPCBleHByZXNzXC1zdXJwcmlzZTsKK+m7jSA8IGdsdXRpbm91c1wtbWlsbGV0Owor5YmnIDwgdGhlYXRyaWNhbFwtcGxheXM7CivomIIgPCBzdGFtZW5cLW9yXC1waXN0aWw7CivmjLogPCB0b1wtc3RhbmRcLXVwcmlnaHQ7CivnoYAgPCBmb3VuZGF0aW9uXC1zdG9uZTsKK+iIhSA8IG1vdGhlcicnc1wtYnJvdGhlcjsKK+iQpyA8IGNvbW1vblwtYXJ0ZW1pc2lhOwor5L+6IDwgcGVyc29uYWxcLXByb25vdW47CivnjrIgPCB0aW5rbGluZ1wtb2ZcLWphZGU7CivmjakgPCB0d2lzdFwtd2l0aFwtaGFuZHM7Civpu5sgPCBibGFja2VuXC1leWVicm93czsKK+WmhiA8IHRvXC1hZG9yblwtb25lc2VsZjsKK+W5oiA8IGNhcnJpYWdlXC1jdXJ0YWluOwor5qKtIDwgd2VhdmVyJydzXC1zaHV0dGxlOwor5ryqIDwgcmlwcGxlc1wtb25cLXdhdGVyOwor55y3IDwgdGFrZVwtaW50ZXJlc3RcLWluOwor5YuLIDwgbWVyaXRvcmlvdXNcLWRlZWQ7CivnlK0gPCB0aGVyZVwtaXNcLW5vXC1uZWVkOwor56WgIDwgYW5jZXN0cmFsXC10ZW1wbGU7CivoiJQgPCBsaWNrXC13aXRoXC10b25ndWU7CivolYogPCB1bm9wZW5lZFwtZmxvd2VyczsKK+i1oyA8IGppYW5neGlcLXByb3ZpbmNlOwor6Le3IDwgcmFpc2VcLW9uZScnc1wtZm9vdDsKK+WJgSA8IGNob3BcLWJ5XC1wb3VuZGluZzsKK+iWsCA8IGFcLW1lZGljaW5hbFwtaGVyYjsKK+WPvCA8IGhvbGRpbmdcLWluXC1tb3V0aDsKK+iNvCA8IGJpdHRlclwtdmVnZXRhYmxlOwor5b6ZIDwgbW92ZVwtb25lJydzXC1hYm9kZTsKK+a2lCA8IHJpdmVyXC1pblwtc2hhYW54aTsKK+a9oiA8IGV4cGFuc2VcLW9mXC13YXRlcjsKK+enuCA8IHN0YWxrc1wtb2ZcLW1pbGxldDsKK+iiiCA8IGJ1ZGRoaXN0XC1jYXNzb2NrOwor54+eIDwga2luZFwtb2ZcLW5lY2tsYWNlOwor5ZW+IDwgd2FpbGluZ1wtb2ZcLWNoaWxkOwor5Lq7IDwgcmFkaWNhbFwtbnVtYmVyXC05Owor5aSZIDwgZWFybHlcLWluXC1tb3JuaW5nOwor6bmYIDwgYVwta2luZFwtb2ZcLXBpZ2VvbjsKK+WoqSA8IGdpdmVcLWJpcnRoXC1jaGlsZDsKK+WnnSA8IGFcLWJlYXV0aWZ1bFwtZ2lybDsKK+aHkSA8IGJlXC1zaWNrXC1hdFwtaGVhcnQ7CivplIkgPCBjYXJwZW50ZXInJ3NcLWZpbGU7CivmtLEgPCBhXC1sYWtlXC1pblwteXVubmFuOwor6J2IIDwgc21hbGxcLWdyZWVuXC1mcm9nOwor5bi8IDwgd29tZW4nJ3NcLWhlYWRnZWFyOwor54uOIDwgYmVcLWZhbWlsaWFyXC13aXRoOwor6IOqIDwgYXJyYW5nZVwtaW5cLW9yZGVyOwor6LGiIDwgZG9tZXN0aWNcLWFuaW1hbHM7CivnnIcgPCBibGluZFwtaW5cLW9uZVwtZXllOwor576/IDwgbGVnZW5kYXJ5XC1hcmNoZXI7CivoiqkgPCBzYWx0XC1tYXJzaFwtcGxhbnQ7CivojK0gPCBhblwtYXF1YXRpY1wtZ3Jhc3M7Civok5YgPCBjYXN0b3JcLW9pbFwtcGxhbnQ7CivlgqcgPCBlbnRlcnRhaW5cLWd1ZXN0czsKK+iWnCA8IGV2ZXJncmVlblwtc2hydWJzOwor6La6IDwgc2l0XC1jcm9zc1wtbGVnZ2VkOwor5qS5IDwgYVwtY2hvcHBpbmdcLWJvYXJkOwor6ZyIIDwgdG9ycmVudGlhbFwtcmFpbnM7Civmm6kgPCBpblwtYW5jaWVudFwtdGltZXM7CivmoIwgPCBzdXBwb3J0aW5nXC1ibG9jazsKK+WTmiA8IGNoZW1pY2FsXC1lbGVtZW50Owor562MIDwgYmFtYm9vXC1maXNoXC10cmFwOwor5rWNIDwgaXJyaWdhdGlvblwtZGl0Y2g7CivnjIEgPCBhXC1raW5kXC1vZlwtbW9ua2V5Owor5ZW2IDwgXC1kXC1cK1wtaW5lXC1cKGNoZW1cLlwpOwor6ayvIDwgc2FjcmlmaWNpYWxcLXdpbmU7CivpsrcgPCBwYWdyb3NvbXVzXC1tYWpvcjsKK+iBsSA8IGJlbnRcLWFuZFwtdHdpc3RlZDsKK+WKoiA8IHB1dFwtZm9ydGhcLWVmZm9ydDsKK+ifqiA8IGFcLWtpbmRcLW9mXC1jaWNhZGE7CivotYYgPCBmYXJld2VsbFwtcHJlc2VudDsKK+WfryA8IGNvdmVyXC13aXRoXC1lYXJ0aDsKK+mylCA8IGtpbmRcLW9mXC1zdHVyZ2VvbjsKK+e9qCA8IG1lZGljYWxcLWNvbXByZXNzOwor5aucIDwgaHVzYmFuZCcnc1wtcGFyZW50Owor5rykIDwgbWFyaW5hdGVcLWluXC1zYWx0Owor5ZqGIDwgZ2l2ZVwtZm9ydGhcLXNvdW5kOwor6Ja5IDwgY3lwZXJ1c1wtcm90dW5kdXM7CivojIYgPCBzcGVjaWVzXC1vZlwtZ3Jhc3M7Civno6jlrZAgPCBtaWxsXCxcLW1pbGxzdG9uZXM7CivlhbHnlKLpu6jpg6jpmoogPCBjb21tdW5pc3RcLWZvcmNlczsKK+WQjuS6uiA8IGxhdGVyXC1nZW5lcmF0aW9uOwor6Iiq56m65q+N6ImmIDwgYWlyY3JhZnRcLWNhcnJpZXI7CivorZjlrZcgPCB0b1wtbGVhcm5cLXRvXC1yZWFkOwor5Lit5ZyL5aSn6Zm4IDwgY2hpbmVzZVwtbWFpbmxhbmQ7CivlvbHlg4/mnIPorbAgPCB2aWRlb1wtY29uZmVyZW5jZTsKK+W/g+W+lyA8IGtub3dsZWRnZVwtZ2FpbmVkOwor5oKy5q2h6Zui5ZCIIDwgam95c1wtYW5kXC1zb3Jyb3dzOwor55m+6YeM5oyR5LiAIDwgb25lXC1pblwtYVwtaHVuZHJlZDsKK+eZvee0sOiDniA8IHdoaXRlXC1ibG9vZFwtY2VsbDsKK+iqnuazleihk+iqniA8IGdyYW1tYXRpY2FsXC10ZXJtOwor5rGC5amaIDwgcHJvcG9zZVwtbWFycmlhZ2U7Civnt6jnm64gPCBtYWtlXC1hXC1jYXRhbG9ndWU7Civpm7vmtYEgPCBlbGVjdHJpY1wtY3VycmVudDsKK+WfjumOriA8IGNpdGllc1wtYW5kXC10b3duczsKK+WnlOWToSA8IGNvbW1pdHRlZVwtbWVtYmVyOwor5aOB55WrIDwgbXVyYWxcLVwocGFpbnRpbmdcKTsKK+Wnk+WQjSA8IG5hbWVcLWFuZFwtc3VybmFtZTsKK+aYr+WQpiA8IHdoZXRoZXJcLVwob3JcLW5vdFwpOwor57i95qmfIDwgY2VudHJhbFwtZXhjaGFuZ2U7CivpgY7nqIsgPCBjb3Vyc2VcLW9mXC1ldmVudHM7CivnhornjLQgPCBhc3NhbWVzZVwtbWFjYXF1ZTsKK+Wkp+acgyA8IGdlbmVyYWxcLWFzc2VtYmx5Owor5Z+66Kq/IDwgXChzcGVlY2hcKVwta2V5bm90ZTsKK+iqpOacgyA8IHRvXC1taXN1bmRlcnN0YW5kOwor5pu06auY5oCn6IO9IDwgaGlnaFwtcGVyZm9ybWFuY2U7CivotoXpq5jpgJ/kuZnlpKrntrLot68gPCBnaWdhYml0XC1ldGhlcm5ldDsKK+ioguelqCA8IHRvXC1pc3N1ZVwtdGlja2V0czsKK+WjveahgyA8IGJpcnRoZGF5XC1wZWFjaGVzOwor6LuN5LqL56eR5a24IDwgbWlsaXRhcnlcLXNjaWVuY2U7CivmnI3li5nmj5DkvpvogIUgPCBzZXJ2aWNlXC1wcm92aWRlcjsKK+WZqOWumOenu+auliA8IG9yZ2FuXC10cmFuc3BsYW50Owor56e75YuV5byP6Zu76KmxIDwgbW9iaWxlXC10ZWxlcGhvbmU7Civlt7TosYYgPCBcKHB1cmdpbmdcKVwtY3JvdG9uOwor5aO95pifIDwgZ29kXC1vZlwtbG9uZ2V2aXR5Owor5b2x5YOP6JmV55CGIDwgaW1hZ2VcLXByb2Nlc3Npbmc7CivlhaXov7cgPCB0b1wtYmVcLWZhc2NpbmF0ZWQ7CivmmI7ku6MgPCB0aGVcLW1pbmdcLWR5bmFzdHk7CivmgKfpl5zkv4IgPCBzZXh1YWxcLXJlbGF0aW9uczsKK+S6uuS6i+mDqOmWgCA8IHBlcnNvbm5lbFwtb2ZmaWNlOwor6YCA56WoIDwgYm91bmNlXC1cKGFcLWNoZWNrXCk7CivmvZvlnKjlqIHohIUgPCBwb3RlbnRpYWxcLXRocmVhdDsKK+aur+WEgOmkqCA8IHRoZVwtdW5kZXJ0YWtlcicnczsKK+e1seioiOaVuOaTmiA8IHN0YXRpc3RpY2FsXC1kYXRhOwor57mD5a2QIDwgZW1icm9pZGVyeVwtZnJhbWU7Civlvpflh7ogPCBvYnRhaW5cLVwocmVzdWx0c1wpOwor5YWN6LK7IDwgZnJlZVwtXChvZlwtY2hhcmdlXCk7CivpgbLmmq4gPCBwYXN0XC1vbmUnJ3NcLXByaW1lOwor56CU6KiO5pyDIDwgZGlzY3Vzc2lvblwtZm9ydW07CivkuI3liIbpnZLntIXnmoLnmb0gPCBpbmRpc2NyaW1pbmF0ZWx5Owor54m55a6a5ZCr576pIDwgc3BlY2lmaWNcLW1lYW5pbmc7Civph5Hono3ns7vntbEgPCBmaW5hbmNpYWxcLXN5c3RlbTsKK+WwjuiHtOatu+S6oSA8IHRvXC1sZWFkXC10b1wtZGVhdGg7Civmnb/kuIrph5jph5ggPCB0aGF0XC1jbGluY2hlc1wtaXQ7CivntrLmqYsgPCBcKG5ldHdvcmtcKVwtYnJpZGdlOwor5YiX54K6IDwgYmVcLWNsYXNzaWZpZWRcLWFzOwor5ama5aSW5oCn5o6l6Ke4IDwgZXh0cmFtYXJpdGFsXC1zZXg7CivlnIvpmLIgPCBuYXRpb25hbFwtZGVmZW5jZTsKK+aVheWxhSA8IGZvcm1lclwtcmVzaWRlbmNlOwor5rOi576O5q+U6YeN6KiIIDwgYmF1bWVcLWh5ZHJvbWV0ZXI7CivpvZkgPCBwcm9qZWN0aW5nXC10ZWV0aDsKK+m5tiA8IHNhbHR5XC1hbmRcLWJpdHRlcjsKK+WJveaCjSA8IHN3aWZ0XC1hbmRcLWZpZXJjZTsKK+atpuWumCA8IG1pbGl0YXJ5XC1hdHRhY2hlOwor5LiN562J6YKK5LiJ6KeS5b2iIDwgc2NhbGVuZVwtdHJpYW5nbGU7CivpgZXmhrIgPCB1bmNvbnN0aXR1dGlvbmFsOwor6a+GIDwgdGhlXC1za2F0ZVwtb3JcLXJheTsKK+WLnuWLlSA8IFwocGh5c2ljYWxcKVwtbGFib3I7CivngrrnlJ8gPCB0b1wtbWFrZVwtYVwtbGl2aW5nOwor6Zu76IWm5LyB5qWtIDwgY29tcHV0ZXJcLWNvbXBhbnk7CivlhaznvoogPCByYW1cLVwobWFsZVwtc2hlZXBcKTsKK+iIuemaiiA8IGZsZWV0XC1cKG9mXC1zaGlwc1wpOwor6a2sIDwgc29sZVwtb3JcLWZsb3VuZGVyOwor5buj5beeIDwgZ3Vhbmd6aG91XC1cKGNpdHlcKTsKK+WUieiBsuWYhuawoyA8IGhlYXZlXC1kZWVwXC1zaWdoczsKK+S4jeWlveaEj+aAnSA8IGZlZWxcLWVtYmFycmFzc2VkOwor6Zu75YqbIDwgZWxlY3RyaWNhbFwtcG93ZXI7Civoo5zooYAgPCBlbnJpY2hcLXRoZVwtYmxvb2Q7CivpqrQgPCBhXC1wdXRyaWRcLWNhcmNhc2U7CivlpJblnIvmipXos4fogIUgPCBmb3JlaWduXC1pbnZlc3RvcjsKK+mmmCA8IGN1dFwtb2ZmXC1sZWZ0XC1lYXI7Civlt7TluIPkup7mlrDlub7lhafkup4gPCBwYXBhdVwtbmV3XC1ndWluZWE7Civos4fmlpnph48gPCBxdWFudGl0eVwtb2ZcLWRhdGE7Civnt6jovK/lrqQgPCBlZGl0b3JpYWxcLW9mZmljZTsKK+mjgCA8IHNvdWdoaW5nXC1vZlwtd2luZDsKK+eHiOWFiSA8IFwoc3RhZ2VcKVwtbGlnaHRpbmc7Civpn50gPCBsZWF0aGVyXC1hcm1cLWJhbmQ7Civpn4ogPCBhXC1jYXNlXC1mb3JcLWFcLWJvdzsKK+metiA8IGJpZ1wtbGVhdGhlclwtYmVsdDsKK+mAj+aUryA8IFwoYmFua1wpXC1vdmVyZHJhZnQ7CivmraPluLjlt6XkvZwgPCBub3JtYWxcLW9wZXJhdGlvbjsKK+mblyA8IGFcLXdoaXRlXC1waGVhc2FudDsKK+mapCA8IHRvXC1mYWxsXC1pblwtcnVpbnM7CivlgrPnnJ/nmbzpgIEgPCBmYXhcLXRyYW5zbWlzc2lvbjsKK+mXoCA8IGdhdGVcLW9mXC1hXC1tYXJrZXQ7CivnlbDmgKfmgKfmjqXop7ggPCBoZXRlcm9zZXh1YWxcLXNleDsKK+i/tOaXiyA8IG1hbmV1dmVyaW5nXC1yb29tOwor5ouJ5LiB6KqeIDwgbGF0aW5cLVwobGFuZ3VhZ2VcKTsKK+aTjeS9nOezu+e1sSA8IG9wZXJhdGluZ1wtc3lzdGVtOwor6Yq7IDwgYW50aW1vbnlcLXN0aWJpdW07CivpiqcgPCBwb2ludFwtb2ZcLWFcLXN3b3JkOwor6YmAIDwgcG90YXNzaXVtXC1rYWxpdW07Civnmb3no7cgPCB3aGl0ZVwtcGhvc3Bob3J1czsKK+mBqemFjeWxpCA8IGFkYXB0YXRpb25cLWxheWVyOwor5Ye66aKo6aCtIDwgdG9cLWNyZWF0ZVwtYVwtc3RpcjsKK+WgseaNtyA8IHJlcG9ydFwtYVwtc3VjY2VzczsKK+ioquWVjyA8IHBheVwtYVwtdmlzaXRcLVwodG9cKTsKK+WCs+i8uOWqkueVjCA8IHRyYW5zcG9ydFwtbWV0aG9kOwor6Zmk5aSVIDwgXChuZXdcLXllYXInJ3NcKVwtZXZlOwor6Lq3IDwgb2ZcLXNob3J0XC1zdGF0dXJlOwor6LmxIDwgdG9cLXN0YWdnZXJcLWFsb25nOwor6LmQIDwgdGFrZVwtc2hvcnRcLXN0ZXBzOwor5qGM5LiK5Z6L6Zu76IWmIDwgZGVza3RvcFwtY29tcHV0ZXI7CivovqbmoYggPCB0b1wtaGFuZGxlXC1hXC1jYXNlOwor6LOZIDwgZ2l2ZVwtZm9yXC1jaGFyaXR5Owor6LaK6YeO6LuKIDwgb2ZmXC1yb2FkXC12ZWhpY2FsOwor6LGPIDwgaGFsZlwtZ3Jvd25cLWJlYW5zOwor57ay57Wh55u05b6RIDwgbmV0d29ya1wtZGlhbWV0ZXI7CivoqILllq4gPCBcKHB1cmNoYXNlXClcLW9yZGVyOwor5oiQ576k57WQ6ZqKIDwgaW5cLWxhcmdlXC1udW1iZXJzOwor6YGp6YWN5ZmoIDwgYWRhcHRlclwtXChkZXZpY2VcKTsKK+WJr+S4u+W4rSA8IHZpY2VcLWNoYWlycGVyc29uOwor6I+v5YORIDwgb3ZlcnNlYXNcLWNoaW5lc2U7CivoqpUgPCB0b1wtYmVhclwtY2hpbGRyZW47Civmu5HpvKAgPCBtb3VzZVwtXChjb21wdXRlclwpOwor6KaCIDwgdG9cLXRocm93XC1hXC1yaWRlcjsKK+ilsSA8IGxlZ3NcLW9mXC10cm91c2VyczsKK+ijmyA8IHRvXC13cmFwXC1hbmRcLWJpbmQ7CivoopcgPCB1bmxpbmVkXC1nYXJtZW50czsKK+eEoeaJgOS4jeizoyA8IHRvXC1zZWxsXC1hbnl0aGluZzsKK+ihjiA8IHRvXC1naXZlXC1wbGVhc3VyZTsKK+ifvyA8IGFjcmlkYVwtY2hpbmVuc2lzOwor6J6LIDwgc3BpZGVyXC1taWxsaXBlZGU7CivonbsgPCBpbW1hdHVyZVwtbG9jdXN0czsKK+eXheiPjCA8IGhhcm1mdWxcLWJhY3RlcmlhOwor6KiY6ICF5oub5b6F5pyDIDwgcHJlc3NcLWNvbmZlcmVuY2U7CivmjbflhYvoqp4gPCBjemVjaFwtXChsYW5ndWFnZVwpOwor6JmlIDwgc3RyaXBlZFwtd2lsZFwtY2F0Owor562G5bqV5LiLIDwgYWJpbGl0eVwtdG9cLXdyaXRlOwor6YCy5L+uIDwgYWR2YW5jZWRcLXN0dWRpZXM7Civol6YgPCBlZGlibGVcLW11c2hyb29tczsKK+mVt+axnyA8IGNoYW5namlhbmdcLXJpdmVyOwor6JeLIDwgc2FtYnVjdVwtamF2aW5pY2E7CivoloMgPCBjeXBlcnVzXC1hbXVyaWN1czsKK+mAmueUqOmbu+WZqCA8IGdlbmVyYWxcLWVsZWN0cmljOwor6JSHIDwgbHV4dXJpYW50XC1ncm93dGg7Civlub7ljYMgPCBzZXZlcmFsXC10aG91c2FuZDsKK+acnemuruWNiuWztiA8IGtvcmVhblwtcGVuaW5zdWxhOwor6JGZIDwgY2Vsb3NpYVwtYXJnZW50ZWE7Civoj4kgPCB0aGVcLWdyZWVuXC1iYW1ib287CivoipggPCBtYWx2YVwtc3lsdmVzdHJpczsKK+WIsOS6hiA8IGluXC1cKGFcLXBhc3RcLXRpbWVcKTsKK+aguOWOn+aWmSA8IG51Y2xlYXJcLW1hdGVyaWFsOwor5pyJ6Zec5Lq65aOrIDwgcGVyc29uc1wtaW52b2x2ZWQ7CivloLHlkI0gPCBlbnRlclwtb25lJydzXC1uYW1lOwor5Ye65ZCNIDwgd2VsbFwta25vd25cLVwoZm9yXCk7CivmjojnjY4gPCB0b1wtYXdhcmRcLWFcLXByaXplOwor6auU6IKyIDwgcGh5c2ljYWxcLWN1bHR1cmU7CivogLbliKnnsbPmm7ggPCBib29rXC1vZlwtamVyZW1pYWg7CivogLwgPCBlYXJzXC13aXRob3V0XC1yaW07CivkuI3niK3msKMgPCBiZVwtZGlzYXBwb2ludGluZzsKK+a8ouiqniA8IGNoaW5lc2VcLWxhbmd1YWdlOwor6YeR6J6N5biC5aC0IDwgZmluYW5jaWFsXC1tYXJrZXQ7CivntrUgPCB2YXJpY29sb3JlZFwtc2lsazsKK+e0vSA8IGFcLXN0cmFuZFwtb2ZcLXNpbGs7Civns7UgPCBmZXJtZW50aW5nXC1ncmFpbjsKK+eziCA8IHNhY3JpZmljaWFsXC1yaWNlOwor5YW15b25IDwgbWlsaXRhcnlcLXNlcnZpY2U7CivnsacgPCBjcnVkZVwtYmFtYm9vXC1tYXQ7CivljJflhrDmtIsgPCB0aGVcLWFyY3RpY1wtb2NlYW47CivlhanlsrjlsI3oqbEgPCBiaWxhdGVyaWFsXC10YWxrczsKK+euryA8IGJhbWJvb1wtcGFsYW5xdWluOwor566KIDwgYmFtYm9vXC13aXRoXC10aGluOwor56e3IDwgc291bmRcLW9mXC1yZWFwaW5nOwor56OlIDwgYVwtaGVhcFwtb2ZcLXN0b25lczsKK+e+heWvhuatkOiIh+acsem6l+iRiSA8IHJvbWVvXC1hbmRcLWp1bGlldDsKK+egqyA8IGFuY2VzdHJhbFwtdGFibGV0Owor556YIDwgZGVlcGx5XC1zdW5rXC1leWVzOwor556LIDwgZ2xhcmVcLXdpdGhcLWFuZ2VyOwor55Wi6IKWIDwgcmVzZW1ibGVcLWNsb3NlbHk7CivnnZwgPCB0b1wtb3BlblwtdGhlXC1leWVzOwor5LiN57aT5LmL6KuHIDwgYWJzdXJkXC1zdGF0ZW1lbnQ7CivltKnmvI8gPCB1dGVyaW5lXC1ibGVlZGluZzsKK+ebpiA8IGxpZFwtb2ZcLWFcLWNhbGRyb247CivnmYkgPCB0b1wtaGF0ZVwtYml0dGVybHk7Civlhpflk6EgPCBleGNlc3NcLXBlcnNvbm5lbDsKK+WFteWjqyA8IG9yZGluYXJ5XC1zb2xkaWVyOwor6KaB5Lq6IDwgaW1wb3J0YW50XC1wZXJzb247CivmjqHmk4cgPCBzZWxlY3RcLWFuZFwtYWRvcHQ7CivouKnnt5ogPCBzdGVwXC1vblwtdGhlXC1saW5lOwor55OfIDwgdGhlXC1ib3R0bGVcLWdvdXJkOwor54y4IDwgYVwta2luZFwtb2ZcLWFuaW1hbDsKK+WPiOS+huS6hiA8IGhlcmVcLXdlXC1nb1wtYWdhaW47CivnmbHlrZAgPCBwYXJhbHl6ZWRcLXBlcnNvbjsKK+eLuyA8IGFcLWZhYnVsb3VzXC1iZWFzdDsKK+W3qOWMoCA8IG1hc3RlclwtY3JhZnRzbWFuOwor6Zax5YW1IDwgdG9cLXJldmlld1wtdHJvb3BzOwor5YKy5rCjIDwgYWlyXC1vZlwtYXJyb2dhbmNlOwor54OcIDwgbGlnaHRcLW9mXC10aGVcLXN1bjsKK+S+v+ihoyA8IGNpdmlsaWFuXC1jbG90aGVzOwor57ay6Zqb57ay6Lev5Y2U5pyDIDwgaW50ZXJuZXRcLXNvY2lldHk7Civot6/nlLHljZTlrpogPCByb3V0aW5nXC1wcm90b2NvbDsKK+a+piA8IHBsYWNlXC1pblwtc2ljaHVhbjsKK+a+pSA8IGFcLWJsb2NrZWRcLXN0cmVhbTsKK+a+lCA8IHJhZGlhbmNlXC1vZlwtZ2VtczsKK+Wwi+ioqiA8IHRvXC1pbnF1aXJlXC1hZnRlcjsKK+WvtuiynSA8IHRyZWFzdXJlZFwtb2JqZWN0Owor6Zax5LiWIDwgdG9cLXNlZVwtdGhlXC13b3JsZDsKK+a4qyA8IGJlYXRpbmdcLW9mXC1vY2VhbjsKK+ewoeaYjiA8IHNpbXBsZVwtYW5kXC1jbGVhcjsKK+e2sui3r+W5s+WPsCA8IG5ldHdvcmtcLXBsYXRmb3JtOwor5a6J6aCTIDwgZmluZFwtYVwtcGxhY2VcLWZvcjsKK+WFrOWFrCA8IGh1c2JhbmQnJ3NcLWZhdGhlcjsKK+S+i+iqniA8IGV4YW1wbGVcLXNlbnRhbmNlOwor5q+uIDwgdG9cLXB1bGxcLW91dFwtaGFpcjsKK+avqiA8IHNlcmdlXC1mcm9tXC10aWJldDsKK+aomyA8IGJlbmRpbmdcLWJyYW5jaGVzOwor6ZaD5LquIDwgYnJpbGxpYW50XCxcLXNoaW55Owor5YWJ5qqi5ris5ZmoIDwgb3B0aWNhbFwtZGV0ZWN0b3I7CivmnrIgPCBtYWxlXC1uZXR0bGVcLWhlbXA7Civpm7vohabntrLot68gPCBjb21wdXRlclwtbmV0d29yazsKK+aekiA8IHRoZVwtY29jb251dFwtdHJlZTsKK+azoueIvuWkmua2siA8IGJvcmRlYXV4XC1taXh0dXJlOwor5pa1IDwgdG9cLWN1dFwtdG9cLXBpZWNlczsKK+aWniA8IGFcLXN0YWNrXC1vZlwtZ3JhaW47CivmkpogPCB0d2lybFwtaW5cLWZpbmdlcnM7Civljp/lrZDnp5HlrbjlrrYgPCBhdG9taWNcLXNjaWVudGlzdDsKK+Wdh+WLoiA8IGJhbGFuY2VcLW9mXC1wb3dlcjsKK+eZvOmBlOWci+WutiA8IGRldmVsb3BlZFwtbmF0aW9uOwor5Y2B5aSa5YSEIDwgb3Zlclwtb25lXC1iaWxsaW9uOwor5bey57aT6YCy6KGMIDwgYWxyZWFkeVwtdW5kZXJ3YXk7CivlgrPpgIHmnI3li5kgPCBkZWxpdmVyeVwtc2VydmljZTsKK+aMtyA8IHRvXC1wcm9wZWxcLWFcLWJvYXQ7Civkv53nlZkgPCBjb250aW51ZVwtdG9cLWhhdmU7CivkurrpoK0gPCBudW1iZXJcLW9mXC1wZW9wbGU7CivmjqXkurogPCB0b1wtbWVldFwtYVwtcGVyc29uOwor6K6A6ICF5L6G5L+hIDwgcmVhZGVyJydzXC1sZXR0ZXJzOwor5byzIDwgY2lyY3VsYXJcLW1lYXN1cmU7Civlu7UgPCB0b1wtZ29cLW9uXC1jaXJjdWl0Owor5LiA5LiL5a2QIDwgaW5cLWFcLXNob3J0XC13aGlsZTsKK+WTiOW3tOiwt+abuCA8IGJvb2tcLW9mXC1oYWJha2t1azsKK+aguOioreaWvSA8IG51Y2xlYXJcLWZhY2lsaXR5Owor5ZyL5YqbIDwgYVwtbmF0aW9uJydzXC1wb3dlcjsKK+eZveWjgeW+rueRlSA8IGFcLXNsaWdodFwtYmxlbWlzaDsKK+WNgeW5vuWAi+aciCA8IHRlblwtbW9udGhzXC1vclwtc287CivpnZ7mlL/lupwgPCBub25cLWdvdmVybm1lbnRhbDsKK+S4u+W5uee3miA8IGJhY2tib25lXC1cKGNhYmxlXCk7CivlrI4gPCB0b1wtYmVhclwtbXVsdGlwbGU7Civpm7voppbmqZ8gPCB0ZWxldmlzaW9uXC1cKHNldFwpOwor5aqkIDwgaHVzYmFuZCcnc1wtZmFtaWx5Owor5omu5ryUIDwgcGxheVwtdGhlXC1wYXJ0XC1vZjsKK+a1geihjOeXhSA8IGVwaWRlbWljXC1kaXNlYXNlOwor55eF5ZugIDwgY2F1c2VcLW9mXC1kaXNlYXNlOwor6LuN5LqLIDwgbWlsaXRhcnlcLWFmZmFpcnM7CivkvZTnt5ogPCBidXN5XC1cKHRlbGVwaG9uZVwpOwor5bGx5p2RIDwgbW91bnRhaW5cLXZpbGxhZ2U7Civkv6HnlKjorYkgPCBsZXR0ZXJcLW9mXC1jcmVkaXQ7CivkuI3liqDmgJ3ntKIgPCB3aXRob3V0XC10aGlua2luZzsKK+WbjSA8IGRvdWJsZVwtaGFwcGluZXNzOwor5ZqzIDwgbXl0aGljYWxcLWVtcGVyb3I7CivlrbjooZPnlYwgPCBhY2FkZW1pY1wtY2lyY2xlczsKK+aLkOW9jiA8IHRvXC10dXJuXC1hXC1jb3JuZXI7CivogZroroogPCBcKG51Y2xlYXJcKVwtZnVzaW9uOwor6KGo5YaKIDwgc3RhdGlzdGljYWxcLWZvcm07CivlmIUgPCBzb3VuZFwtb2ZcLXNpZ2hpbmc7Civllq7mqKHlhYnnupYgPCBzaW5nbGVtb2RlXC1maWJlcjsKK+acgOWkp+iDveWKmyA8IG1heGltdW1cLWNhcGFjaXR5Owor6KGb5pif5Z+OIDwgXCJzYXRlbGxpdGVcIlwtdG93bjsKK+WXniA8IHRvXC1jb25zdWx0XC1hYm91dDsKK+WWuiA8IHRvXC1iZVwtbG9jYXRlZFwtYXQ7Civlr6nnkIYgPCB0b1wtaGVhclwtXChhXC1jYXNlXCk7CivmioTmnKwgPCBoYW5kd3JpdHRlblwtY29weTsKK+iIlOWQriA8IHRvXC1saWNrXC1hbmRcLXN1Y2s7CivnmoTkuIDnqK4gPCBpc1wtb25lXC1cKGtpbmRcLW9mXCk7Civmm7zlvrfmi4kgPCBcKG5lbHNvblwpXC1tYW5kZWxhOwor5pyJ57ea6Zu76KaWIDwgY2FibGVcLXRlbGV2aXNpb247CivljbDlnLDoqp4gPCBoaW5kaVwtXChsYW5ndWFnZVwpOwor5L6/5qmLIDwgdGVtcG9yYXJ5XC1icmlkZ2U7Civlt6Xmpa3ljJYgPCB0b1wtaW5kdXN0cmlhbGl6ZTsKK+WGkyA8IGFcLXNlY2x1ZGVkXC1wbGFjZTsKK+S4jeiuiuizh+acrCA8IGNvbnN0YW50XC1jYXBpdGFsOwor5YSKIDwgcm91Z2hcLWFuZFwtcnVnZ2VkOwor5YKcIDwgYVwtbWlub3JpdHlcLXRyaWJlOwor562G5oiwIDwgd3JpdHRlblwtcG9sZW1pY3M7Civkvr/mnI0gPCBldmVyeWRheVwtY2xvdGhlczsKK+aEn+isnSA8IFwoZXhwcmVzc1wpXC10aGFua3M7CivktrEgPCBhXC1raW5kXC1vZlwtdHVydGxlOwor5LWkIDwgdG9cLWNyYWNrXC1vclwtY2hhcDsKK+S1oyA8IHdoaXRlXC13aXRoXC1ibGFjazsKK+S1gyA8IGFcLWtpbmRcLW9mXC1iYXJsZXk7CivktKwgPCBjcnVtYnNcLW9mXC1iYXJsZXk7Civlh7rniYjnpL4gPCBwdWJsaXNoaW5nXC1ob3VzZTsKK+S4i+mmrCA8IGRpc21vdW50XC1hXC1ob3JzZTsKK+S0hSA8IGFcLWxlZ2VuZGFyeVwtYmlyZDsKK+aylue5qeWztiA8IG9raW5hd2FcLVwoaXNsYW5kXCk7Civks6IgPCBzbWFsbFwtd2lsZFwtZ29vc2U7Civks5AgPCBhblwtb3dsXC1saWtlXC1iaXJkOwor5a6J55ygIDwgc2xlZXBcLXBlYWNlZnVsbHk7CivksrIgPCBhXC1oYXdrXC1saWtlXC1iaXJkOwor5bGk5bGkIDwgbGF5ZXJcLXVwb25cLWxheWVyOwor5LCDIDwgZGlzaGV2ZWxsZWRcLWhhaXI7Civkr7MgPCBsb29zZWx5XC1hcnJhbmdlZDsKK+ethuW4vSA8IHRoZVwtY2FwXC1vZlwtYVwtcGVuOwor5K+HIDwgdG9cLWV4ZXJ0XC1vbmVzZWxmOwor5K60IDwgdW5zdGFibGVcLXdhbGtpbmc7CivkrrMgPCB0b1wtZ2l2ZVwtYmlydGhcLXRvOwor5K6BIDwgYVwtcGFpclwtb2ZcLWhvcnNlczsKK+SrjCA8IGJvd2VkXC1vbmUnJ3NcLWhlYWQ7Civkqo4gPCBzdHJpbmdzXC1vZlwtYVwtY2FwOwor5KmlIDwgYVwtYmVsdFwtZm9yXC1ob3JzZTsKK+SouyA8IHJvYXJcLW9mXC10aHVuZGVyczsKK+SotCA8IGdhdGhlcmluZ1wtY2xvdWRzOwor5KizIDwgdGhlXC1yYWluXC1zdG9wcGVkOwor5KiPIDwgc291bmRcLW9mXC1yYWluaW5nOwor5KiKIDwgYVwtZmxvY2tcLW9mXC1iaXJkczsKK+SnoSA8IGFcLWZvcnRpZmllZFwtd2FsbDsKK+iytue+qSA8IGRlcm9nYXRvcnlcLXNlbnNlOwor5KeEIDwgbmFtZVwtb2ZcLWFcLXBlcnNvbjsKK+SmlSA8IGJhbmdcLW9mXC10aGVcLWRvb3I7CivkpZsgPCBhXC1raW5kXC1vZlwtc2lja2xlOwor6ZW35bqm5oyH56S656ymIDwgbGVuZ3RoXC1pbmRpY2F0b3I7CivkvZzms5UgPCBjb3Vyc2VcLW9mXC1hY3Rpb247Civko64gPCBzbWVsbFwtb2ZcLWFsY29ob2w7Civko6sgPCBzb3VyZWRcLWJlYW5cLWN1cmQ7Civkop4gPCByb3dzXC1hbmRcLWNvbHVtbnM7Civkoa4gPCB0cmFjZVwtb2ZcLWFcLXdoZWVsOwor5KGiIDwgYVwtc21hbGxcLWNhcnJpYWdlOwor5ryU5ZOhIDwgYWN0b3JcLW9yXC1hY3RyZXNzOwor5KC7IDwgdG9cLWJlbmRcLXRoZVwtYm9keTsKK+mRkuWIpSA8IHRvXC1kaWZmZXJlbnRpYXRlOwor5J+LIDwgdG9cLXByZXNzXC1mb3J3YXJkOwor5L+d5a+GIDwgbWFpbnRhaW5cLXNlY3JlY3k7CivknowgPCB0b1wtbG9zZVwtaW5cLXRyYWRlOwor5J2LIDwgYVwtbGl0dGxlXC1vZlwtcGlnczsKK+SdhyA8IGdydW50aW5nXC1vZlwtcGlnczsKK+SbjyA8IHRvXC1jYWxsXC1zb21lYm9keTsKK+SbjiA8IHRvXC1zaG91dFwtaW5cLXJhZ2U7Civkm4IgPCB0b1wtc2VwYXJhdGVcLWZyb207CivkmpQgPCB0b1wtbG9va1wtc3VkZGVubHk7CivkmpIgPCBleWVzaWdodFwtYmx1cnJlZDsKK+SagyA8IHRvXC1yZWFsaXplXC1mdWxseTsKK+WAn+WKqSA8IHRvXC1nZXRcLWhlbHBcLWZyb207Civkma0gPCB0b1wtbGlmdFwtb3JcLXJhaXNlOwor6Zu76Kmx5L+h6JmfIDwgdGVsZXBob25lXC1zaWduYWw7CivkmIsgPCBhXC1raW5kXC1vZlwtaW5zZWN0Owor5rCR5Li76buoIDwgZGVtb2NyYXRpY1wtcGFydHk7Civkl48gPCBuYW1lXC1vZlwtYVwtaW5zZWN0Owor5JavIDwgcG9pc29ub3VzXC1pbnNlY3Q7CivklpAgPCBzb3VuZFwtb2ZcLWFcLXRpZ2VyOwor55SY5ZywIDwgXChtYWhhdG1hXClcLWdhbmRoaTsKK+S7v+ecn+acjeWLmeWZqCA8IGVtdWxhdGlvblwtc2VydmVyOwor5JKjIDwgbHVzaFwtb3JcLWRlbGljYXRlOwor5JG4IDwgYVwtZ3JvdXBcLW9mXC1ib2F0czsKK+SRhSA8IGRpenp5XC1hbmRcLXNsZWVweTsKK+SQqCA8IGJhY2tcLW9mXC10aGVcLWZvb3Q7Civkj5IgPCBoYWxmXC1vZlwtdGhlXC1ib2R5Owor5I+PIDwgc2lnbnNcLWFuZFwtZ3JvYW5zOwor5I6vIDwgd2ludGVyXC1wbG91Z2hpbmc7CivkjoIgPCBjb2xvcmZ1bFwtZmVhdGhlcjsKK+mbu+imluWKhyA8IHR2XC1kcmFtYVwtcHJvZ3JhbTsKK+SLpCA8IHBsYWluXC13aGl0ZVwtc2lsazsKK+SLlCA8IHRvXC1iYW5kXC10b2dldGhlcjsKK+SJtyA8IGFcLWZlYXRoZXJcLXNjcmVlbjsKK+SJiSA8IGFcLXdyaXRpbmdcLXRhYmxldDsKK+SImSA8IGJhbWJvb1wtdG9cLXdpdGhlcjsKK+SIiCA8IGFcLWtpbmRcLW9mXC1iYW1ib287Civms6jph40gPCBwYXlcLWF0dGVudGlvblwtdG87Civkhr8gPCB0b1wtdGFsa1wtaW5cLXNsZWVwOwor5IayIDwgYVwtc3BhY2lvdXNcLWhvdXNlOwor5IaIIDwgeW91bmdcLWFuZFwtdGVuZGVyOwor5IW8IDwgYVwta2luZFwtb2ZcLWdyYWluczsKK+SFuiA8IGdyYWluXC1pblwtdGhlXC1lYXI7CivovLvlsITms6IgPCByYWRpYXRpb25cLVwod2F2ZVwpOwor5oe45o6bIDwgXChjYXJcKVwtc3VzcGVuc2lvbjsKK+SCqiA8IGhhcmRcLWJhcnJlblwtbGFuZDsKK+SAgyA8IGFcLWtpbmRcLW9mXC12ZXNzZWw7CivjvqYgPCBzY2FiXC1vdmVyXC1hXC1zb3JlOwor476BIDwgd2Fsa2luZ1wtbGlrZVwtbWFkOwor472uIDwgYVwtcG9pbnRcLW9mXC1saWdodDsKK+O9iiA8IGNyYWNraW5nXC1vZlwtdGlsZTsKK+O7kiA8IHJlZFwtY29sb3JlZFwtamFkZTsKK+O7gSA8IGFcLWtpbmRcLW9mXC1qYXNwZXI7CivkuI3orJ0gPCBkb24nJ3RcLW1lbnRpb25cLWl0Owor47q1IDwgYmxhY2tcLWphZGVcLXN0b25lOwor47q0IDwgbmFtZVwtb2ZcLWFcLXNwaXJpdDsKK+O6piA8IGFcLXJ1bm5pbmdcLWFuaW1hbDsKK+O5uiA8IGRvZ1wtdG9cLXRha2VcLWZvb2Q7CivjuYcgPCBhXC1raW5kXC1vZlwtY2F0dGxlOwor47ijIDwgaW5cLWFuY2llbnRcLWNoaW5hOwor5pys576pIDwgb3JpZ2luYWxcLW1lYW5pbmc7Civjtr4gPCB0b3VnaFwtYW5kXC1ob25lc3Q7Civjto0gPCBuYW1lXC1vZlwtYVwtc3RyZWFtOwor5Ly05pifIDwgY29tcGFuaW9uXC1cKHN0YXJcKTsKK+S/neWFqCA8IHNhdmVcLWZyb21cLWRhbWFnZTsKK+O0pyA8IG9mXC1mbG93aW5nXC13YXRlcjsKK+WogeeIvuWjq+iqniA8IHdlbHNoXC1cKGxhbmd1YWdlXCk7CivmioTku7YgPCBkdXBsaWNhdGVcLVwoY29weVwpOwor47O9IDwgYVwtd2F0ZXJ5XC1leHBhbnNlOwor47G2IDwgYVwtc3dlbGxlblwtY29ycHNlOwor47GtIDwgYW5cLWluZmVydGlsZVwtZWdnOwor47CkIDwgdG9cLWxhdWdoXC1oZXJ0aWx5Owor47CbIDwgbmFtZVwtb2ZcLWFcLWNvdW50eTsKK+OwhSA8IGVhdmVzXC1vZlwtYVwtaG91c2U7Civjr5UgPCBzdGlja3NcLW9yXC1mcmFtZXM7Civjr4MgPCB0aGVcLXZhcm5pc2hcLXRyZWU7CivnlLflrZDnsYPnkIMgPCBtZW4nJ3NcLWJhc2tldGJhbGw7CivjrpMgPCBhblwtZXh0cmVtZVwtbGltaXQ7CivjrbogPCB0aGVcLWNoZXJyeVwtYXBwbGU7Civoga/pgqblpKfmqJMgPCBmZWRlcmFsXC1idWlsZGluZzsKK+OqrSA8IHRvXC1kcmF3XC10b2dldGhlcjsKK+OqliA8IHNvdW5kXC1vZlwtYmVhdGluZzsKK+aZrumAmuWVj+mhjCA8IGNvbW1vblwtcXVlc3Rpb25zOwor46i8IDwgdG9cLXRha2VcLWJ5XC1mb3JjZTsKK+e9t+iqsiA8IHN0dWRlbnQnJ3NcLXN0cmlrZTsKK+OnuiA8IGFcLWZpbmdlclwtd3JhcHBlcjsKK+i8uOmAgeWqkuS7iyA8IHRyYW5zcG9ydFwtbWVkaXVtOwor46acIDwgdG9cLW1vdmVcLXRoZVwtbWluZDsKK+aHieaIsCA8IGZhY2VcLWFcLWNoYWxsZW5nZTsKK+aguOWogSA8IG51Y2xlYXJcLXN0cmVuZ3RoOwor46KwIDwgdG9cLXN0cmV0Y2hcLWFcLWJvdzsKK+iZnOeNsiA8IGNhcHR1cmVcLVwocGVvcGxlXCk7Civjob0gPCBkZXByYXZlZFwtdGFsa2luZzsKK+OhiSA8IGFcLWtpbmRcLW9mXC1mYWJyaWM7CivjoKcgPCBhXC1saXR0bGVcLXNsYW50ZWQ7CivjoI4gPCBhXC1sb2Z0eVwtbW91bnRhaW47CivmnKznpaggPCBjYXNoaWVyJydzXC1jaGVxdWU7CivpmLLooZvmrablmaggPCBkZWZlbnNpdmVcLXdlYXBvbjsKK+OdqyA8IHNoYXBlXC1vZlwtdGhlXC1za3k7CivjnaogPCBhXC1zbGFudGluZ1wtaG91c2U7CivjnakgPCBzcGFjaW91c2x5XC1yb29tczsKK+mBjuS7veewoeWWruWMliA8IG92ZXJzaW1wbGljYXRpb247CivjnLQgPCBkYXJrXC1hbmRcLW9ic2N1cmU7CivjnJ0gPCB0b1wtY2hlcmlzaFwtYW5nZXI7CivjnIggPCBhXC1iZWF1Z2lmdWxcLWZhY2U7Civpq5TogrLkuYvnqpcgPCB3aW5kb3dcLW9uXC1zcG9ydHM7Civmm7jlr6voqp7oqIAgPCB3cml0dGVuXC1sYW5ndWFnZTsKK+OanCA8IHdpdGhcLWdyZWF0XC1wb3dlcjsKK+OalyA8IHdpdGhcLWFcLWJpZ1wtbW91dGg7CivjmocgPCBkcmF3XC10aGVcLWZlZXRcLXVwOwor45meIDwgYVwtc21hbGxcLW1vdW50YWluOwor45mOIDwgYnJlYWNoXC1vZlwtYVwtdGFuazsKK+OZhSA8IGFcLXdhbGxlZFwtdmlsaWFnZTsKK+OZgCA8IGFcLXZlZ2V0YWJsZVwtcGxvdDsKK+OXuyA8IGJhYnknJ3NcLWFuc3dlcmluZzsKK+OXmSA8IHRvXC1zaG91dFwtb3JcLWJhd2w7Civjla0gPCB0b1wtYmFya1wtYXNcLWFcLWRvZzsKK+OVqSA8IHNvdW5kXC1vZlwtdGFwcGluZzsKK+WuieW+vSA8IGFuaHVpXC1cKHByb3ZpbmNlXCk7CivjlYcgPCByb2Nrc1wtY29sbGFwc2luZzsKK+OUkSA8IGFuXC1pbmNpc2VkXC13b3VuZDsKK+WVhualreWMliA8IHRvXC1jb21tZXJjaWFsaXplOwor45KtIDwgYW5cLWVsZGVyXC1icm90aGVyOwor45KBIDwgb2ZcLWdyZWF0XC1zdGF0dXJlOwor56uZ5Y+wIDwgcmFpbHdheVwtcGxhdGZvcm07CivlhbHkuqvluLblr6wgPCBzaGFyZWRcLWJhbmR3aWR0aDsKK+OQgCA8IGhpbGxvY2tcLW9yXC1tb3VuZDsKK+aWh+WMlumanOekmSA8IGN1bHR1cmFsXC1iYXJyaWVyOwor55u05o6l5b2x6Z+/IDwgZGlyZWN0XC1pbmZsdWVuY2U7CivoiIfmraTlkIzmmYIgPCBhdFwtdGhlXC1zYW1lXC10aW1lOwor5Li76KaB5L6G5rqQIDwgcHJpbmNpcGxlXC1zb3VyY2U7CivkurrmsJHlhaznpL4gPCBwZW9wbGUnJ3NcLWNvbW11bmU7CivnjbLnm4ogPCBvYnRhaW5cLWFcLWJlbmVmaXQ7CivkuIvpnaLoq4vnnIsgPCBwbGVhc2VcLXNlZVwtYmVsb3c7Civku4rmmJQgPCBwYXN0XC1hbmRcLXByZXNlbnQ7Civmnb/moJcgPCBjaGluZXNlXC1jaGVzdG51dDsKK+WQuOeuoSA8IFwoZHJpbmtpbmdcKVwtc3RyYXc7Civlrrbli5kgPCBob3VzZWhvbGRcLWR1dGllczsKK+mHkeiejemiqOazoiA8IGZpbmFuY2lhbFwtY3Jpc2lzOwor6ZaL5bmV5byPIDwgb3BlbmluZ1wtY2VyZW1vbnk7Civlr6bnv5LnlJ8gPCBpbnRlcm5cLVwoc3R1ZGVudFwpOwor5rCR6ZaTIDwgYW1vbmdcLXRoZVwtcGVvcGxlOwor5ama56auIDwgd2VkZGluZ1wtY2VyZW1vbnk7CivorabooZsgPCBcKHNlY3VyaXR5XClcLWd1YXJkOwor55+l6K2Y5bel56iL5birIDwga25vd2xlZGdlXC13b3JrZXI7CivlnIvos5PppKggPCBzdGF0ZVwtZ3Vlc3Rob3VzZTsKK+S5vuadryA8IHRvXC1kcmlua1wtYVwtdG9hc3Q7CivnjL/njLQgPCBhcGVzXC1hbmRcLW1vbmtleXM7CivntrLntaHljZTorbAgPCBuZXR3b3JrXC1wcm90b2NvbDsKK+S4pua/gCA8IHNodW50XC1leGNpdGF0aW9uOwor6YeP57axIDwgZGltZW5zaW9uXC1cKHVuaXRcKTsKK+izquWVjyA8IFwoYXNrXC1hXClcLXF1ZXN0aW9uOwor6JKQ6ZuGIDwgdG9cLWdhdGhlclwtXChkYXRhXCk7CivkuInljYPliLDkupTljYPokKwgPCAzMFwtdG9cLTUwXC1taWxsaW9uOwor5LiN6Iez5pa8IDwgY2Fubm90XC1nb1wtc29cLWZhcjsKK+aakeeYnyA8IHRyb3BpY2FsXC1kaXNlYXNlOwor5Y2a6Ka9IDwgcmVhZFwtZXh0ZW5zaXZlbHk7Civmt7HlhaUgPCBwZW5ldHJhdGVcLWRlZXBseTsKK+S4ueahgiA8IG9yYW5nZVwtb3NtYW50aHVzOwor5p2/5aOBIDwgd29vZGVuXC1wYXJ0aXRpb247Civmn5DkurogPCBhXC1jZXJ0YWluXC1wZXJzb247CivmnIjmm4YgPCBtb250aGx5XC1jYWxlbmRhcjsKK+ayu+eXhSA8IHRyZWF0XC1hblwtaWxsbmVzczsKK+WNgeiqoSA8IHRlblwtY29tbWFuZG1lbnRzOwor55m96KGj5oiw5aOrIDwgd2FycmlvclwtaW5cLXdoaXRlOwor5a6J5aaC56OQ55+zIDwgYXNcLXNvbGlkXC1hc1wtcm9jazsKK+WklumVtyA8IGZvcmVpZ25cLW1pbmlzdGVyOwor55m+5YiG6bueIDwgcGVyY2VudGFnZVwtcG9pbnQ7CivphY3ol6UgPCBkaXNwZW5zZVwtXChkcnVnc1wpOwor5Yqf6IO96ZuGIDwgZnVuY3Rpb25cLWxpYnJhcnk7CivlrZfkuLIgPCBjaGFyYWN0ZXJcLXN0cmluZzsKK+aVhemanOaOkumZpCA8IGZhdWx0XC1yZXNvbHV0aW9uOwor6YeR6J6N5pS56Z2pIDwgZmluYW5jaWFsXC1yZWZvcm07CivkuIDlgIvkuK3lnIvmlL/nrZYgPCBvbmVcLWNoaW5hXC1wb2xpY3k7CivljJblrbjmiLAgPCBjaGVtaWNhbFwtd2FyZmFyZTsKK+Wkp+WkmuaVuCA8IFwoZ3JlYXRcKVwtbWFqb3JpdHk7CivlpKfpgbggPCBnZW5lcmFsXC1lbGVjdGlvbjsKK+WUkOS7oyA8IHRoZVwtdGFuZ1wtZHluYXN0eTsKK+aAp+eXhSA8IHZlbmVyZWFsXC1kaXNlYXNlOwor5ZCb5qyKIDwgbW9uYXJjaGlhbFwtcG93ZXI7Civpm4zmgKfmjqXlj6MgPCBmZW1hbGVcLWNvbm5lY3RvcjsKK+iXj+aWhyA8IHRpYmV0YW5cLWxhbmd1YWdlOwor5b+D6Ief56e75q6WIDwgaGVhcnRcLXRyYW5zcGxhbnQ7Civoj4/omK3oqp4gPCBkdXRjaFwtXChsYW5ndWFnZVwpOwor5LiA5bm05aSaIDwgbW9yZVwtdGhhblwtYVwteWVhcjsKK+mBmeaOp+aTjeS9nCA8IHJlbW90ZVwtb3BlcmF0aW9uOwor57Ch5Zau55qE6KqqIDwgdG9cLXB1dFwtaXRcLXNpbXBseTsKK+WFieaOpeaUtuWZqCA8IG9wdGljYWxcLXJlY2VpdmVyOwor5qmf5qKw6Kqe6KiAIDwgbWFjaGluZVwtbGFuZ3VhZ2U7Civog6Hlv5fmmI7luIIgPCBob1wtY2hpXC1taW5oXC1jaXR5Owor6K6A54mpIDwgcmVhZGluZ1wtbWF0ZXJpYWw7CivpgorpmLIgPCBmcm9udGllclwtZGVmZW5jZTsKK+WFseWSjOm7qCA8IHJlcHVibGljYW5cLXBhcnR5Owor6ISW6aC45YWSIDwgYmFja1wtb2ZcLXRoZVwtbmVjazsKK+WQkeadsSA8IHRvd2FyZHNcLXRoZVwtZWFzdDsKK+Wkp+eEoeeVjyA8IHV0dGVybHlcLWZlYXJsZXNzOwor6ZuG6YymIDwgYmVzdFwtb2ZcLXRoZVwtYmVzdDsKK+e9t+aVmSA8IHRlYWNoZXInJ3NcLXN0cmlrZTsKK+WkluiqniA8IGZvcmVpZ25cLWxhbmd1YWdlOwor6Kqy6KGoIDwgc2Nob29sXC10aW1ldGFibGU7CivoqqTop6MgPCBtaXN1bmRlcnN0YW5kaW5nOwor5LiN55+l5omA5LqRIDwgbm90XC1rbm93XC13aGF0XC1zYjsKK+S4jeW/mSA8IHRoZXJlJydzXC1ub1wtaHVycnk7CivotoXpq5jpgJ8gPCB1bHRyYVwtaGlnaFwtc3BlZWQ7Civpm4bpg7UgPCBzdGFtcFwtY29sbGVjdGluZzsKK+W7oOmVtyA8IGZhY3RvcnlcLWRpcmVjdG9yOwor6K6K5rOVIDwgcG9saXRpY2FsXC1yZWZvcm07Civms6LmipggPCB0d2lzdHNcLWFuZFwtdHVybnM7CivnvqTls7YgPCBncm91cFwtb2ZcLWlzbGFuZHM7CivlpKrpmb3lvq7ns7vntbHlhazlj7ggPCBzdW5cLW1pY3Jvc3lzdGVtczsKK+iBr+W4reacg+itsCA8IGpvaW50XC1jb25mZXJlbmNlOwor5Lqk5o+b57ay6LevIDwgc3dpdGNoZWRcLW5ldHdvcms7Civniq/ms5UgPCB0b1wtYnJlYWtcLXRoZVwtbGF3Owor5LiN5bCRIDwgbm90XC1cKGp1c3RcKVwtYVwtZmV3Owor5bm06b2hIDwgXChhXC1wZXJzb24nJ3NcKVwtYWdlOwor5oCn5o6l6Ke4IDwgc2V4dWFsXC1lbmNvdW50ZXI7Civmr5Tnv7wgPCBmbHlcLXdpbmdcLXRvXC13aW5nOwor6aqo5bm557ay6LevIDwgYmFja2JvbmVcLW5ldHdvcms7Civou5/ku7bkvIHmpa0gPCBzb2Z0d2FyZVwtY29tcGFueTsKK+aLv+aJi+iPnCA8IHNwZWNpYWx0eVwtXChkaXNoXCk7Civmlr3mtJfntITnv7AgPCBqb2huXC10aGVcLWJhcHRpc3Q7CivnpZ7lpYcgPCBtYWdpY2FsXC1teXN0aWNhbDsKK+emgeWTgSA8IGNvbnRyYWJhbmRcLWdvb2RzOwor5bC85biM57Gz6KiYIDwgYm9va1wtb2ZcLW5laGVtaWFoOwor5aCx57SZ5aCx5bCOIDwgbmV3c3BhcGVyXC1yZXBvcnQ7CivmnIDlhYggPCBcKHRoZVwpXC12ZXJ5XC1maXJzdDsKK+aYjua3qCA8IGJyaWdodFwtYW5kXC1jbGVhbjsKK+mHjeaFtiA8IGNob25ncWluZ1wtXChjaXR5XCk7CivlqYblqYYgPCBodXNiYW5kJydzXC1tb3RoZXI7CivkupLmk43mgKcgPCBpbnRlcm9wZXJhYmlsaXR5Owor5ZCD5a6MIDwgdG9cLWZpbmlzaFwtZWF0aW5nOwor6YC86L+RIDwgcHJlc3NcLW9uXC10b3dhcmRzOwor5aCx6aSoIDwgbmV3c3BhcGVyXC1vZmZpY2U7Civpm7vnupwgPCBcKGVsZWN0cmljXClcLWNhYmxlOwor5Yqf6IO9576kIDwgZnVuY3Rpb25hbFwtZ3JvdXA7Civni4DmhYsgPCBzdGF0ZVwtb2ZcLWFmZmFpcnM7CivkuK3ku4sgPCBhZ2VudFwtXChjb21wdXRlclwpOwor5LiN5YWJIDwgbm90XC10aGVcLW9ubHlcLW9uZTsKK+aakeWkqSA8IGhvdFwtXChzdW1tZXJcKVwtZGF5Owor5Y+N5bCNIDwgdG9cLWZpZ2h0XC1hZ2FpbnN0Owor5LiN5LmFIDwgbm90XC1sb25nXC1cKGFmdGVyXCk7Civpm6LplovljJfkuqwgPCB0b1wtbGVhdmVcLWJlaWppbmc7CivkuIDovKnlrZAgPCBcKGZvclwpXC1hXC1saWZldGltZTsKK+edqCA8IGxvb2tcLWFza2FuY2VcLWF0Owor5oCOIDwgd2hhdFw/XC13aHlcP1wtaG93XD87CivmlLYgPCBnYXRoZXJcLXRvZ2V0aGVyOwor5YWaIDwgcG9saXRpY2FsXC1wYXJ0eTsKK+eJiCA8IHByaW50aW5nXC1ibG9ja3M7CivlraMgPCBxdWFydGVyXC1vZlwteWVhcjsKK+eJoSA8IG1hbGVcLW9mXC1hbmltYWxzOwor6Ki6IDwgZXhhbWluZVwtcGF0aWVudDsKK+WnkSA8IGZhdGhlcicnc1wtc2lzdGVyOwor6KSTIDwgc3dhZGRsaW5nXC1jbG90aDsKK+mmhiA8IHB1YmxpY1wtYnVpbGRpbmc7CivmvL8gPCBhbnlcLXRoaWNrXC1mbHVpZDsKK+mbhCA8IG1hbGVcLW9mXC1zcGVjaWVzOwor5Lq/IDwgaHVuZHJlZFwtbWlsbGlvbjsKK+WbuiA8IHRvXC1iZWNvbWVcLXNvbGlkOwor5rqqIDwgbW91bnRhaW5cLXN0cmVhbTsKK+iZniA8IGNvbmNlcm5lZFwtYWJvdXQ7Civll5ogPCBzb3VuZFwtb2ZcLWNyeWluZzsKK+iWhyA8IG9zbXVuZGFcLXJlZ2FsaXM7CivmiI8gPCB0aGVhdHJpY2FsXC1wbGF5Owor5Y+sIDwgaW1wZXJpYWxcLWRlY3JlZTsKK+eRniA8IGZlbGljaXRvdXNcLW9tZW47CivprKIgPCBoYWlyXC1vblwtdGVtcGxlczsKK+WDpyA8IGJ1ZGRoaXN0XC1wcmllc3Q7CivmqpwgPCBjaGluZXNlXC1jeXByZXNzOwor5qqOIDwgc21hbGxcLXJlZFwtYXBwbGU7CivpqYUgPCBzcHVyXC1hXC1ob3JzZVwtb247Civoh58gPCBpbnRlcm5hbFwtb3JnYW5zOwor5ZyzIDwgZnVycm93XC1pblwtZmllbGQ7CivnubsgPCBmaW5lXC1zaWxrXC1ndWF6ZTsKK+WtnyA8IGZpcnN0XC1pblwtc2VyaWVzOwor57iLIDwgY2xpbWJcLWRvd25cLXJvcGU7CivplqQgPCBzbWFsbFwtc2lkZVwtZG9vcjsKK+aWjiA8IHZlZ2V0YXJpYW5cLWRpZXQ7Civnm68gPCByaXZldFwtZ2F6ZVwtdXBvbjsKK+eynyA8IHVuaHVza2VkXC1taWxsZXQ7CivnsZAgPCBjbGltYmluZ1wtcGxhbnRzOwor5o67IDwgc2NyYXRjaFwtbGlnaHRseTsKK+S/mCA8IHByaXNvbmVyXC1vZlwtd2FyOwor5oy+IDwgY2xhc3BcLXVuZGVyXC1hcm07CivlqrMgPCBkYXVnaHRlclwtaW5cLWxhdzsKK+WumSA8IHRpbWVcLWFzXC1jb25jZXB0Owor5Y2cIDwgZm9ydHVuZVwtdGVsbGluZzsKK+W4liA8IGludml0YXRpb25cLWNhcmQ7CivpgJ4gPCBpbmR1bGdlXC1vbmVzZWxmOwor5o+qIDwgZ3Jhc3BcLXdpdGhcLWhhbmQ7Civku5EgPCBsb2dpY2FsXC1yZWFzb25zOwor54WeIDwgbWFsaWduYW50XC1kZWl0eTsKK+mzjCA8IGh1Z2VcLXNlYVwtdHVydGxlOwor556pIDwgd2F0Y2hcLWNhcmVmdWxseTsKK+eWmiA8IGNocm9uaWNcLWRpc2Vhc2U7CivolJMgPCBjcmVlcGluZ1wtcGxhbnRzOwor6aqPIDwgZXhjZWxsZW50XC1ob3JzZTsKK+mXvSA8IGZ1amlhblwtcHJvdmluY2U7CivoooUgPCBjdXJsaW5nXC11cHdhcmRzOwor6L6QIDwgc3Bva2VzXC1vZlwtd2hlZWw7CivnkIkgPCBzcGFya2xpbmdcLXN0b25lOwor6IicIDwgbGVnZW5kYXJ5XC1ydWxlcjsKK+i9pyA8IGNydXNoXC1ieVwtd2VpZ2h0Owor5ruHIDwgeXVubmFuXC1wcm92aW5jZTsKK+ahkyA8IHZhcmlldHlcLW9mXC10cmVlOwor5qOgIDwgY3JhYlwtYXBwbGVcLXRyZWU7CivlkK4gPCBzdWNrXC13aXRoXC1tb3V0aDsKK+ictyA8IGNyZWVwXC1saWtlXC13b3JtOwor5p63IDwgY2FuZ3VlXC1zY2FmZm9sZDsKK+e+siA8IGFuY2llbnRcLWVtcGVyb3I7CivlrZogPCBicm9vZFwtb3ZlclwtZWdnczsKK+eakSA8IGJyaWxsaWFudFwtd2hpdGU7CivnvKUgPCBsaWdodFwtYmx1ZVwtc2lsazsKK+ivjCA8IHBsYXlcLXdpdGhcLXdvcmRzOwor5rO+IDwgbmFtZVwtb2ZcLWFcLXJpdmVyOwor6KeOIDwgZGVzaXJlXC1zdHJvbmdseTsKK+eOuiA8IGltcGVyaWFsXC1zaWduZXQ7CivljZ4gPCB0b1wtYmVcLWltcGF0aWVudDsKK+i+lCA8IGJyaWRsZVwtb2ZcLWhvcnNlOwor6LaUIDwgbm90XC1wcm9ncmVzc2luZzsKK+W+nCA8IHdhbGtpbmdcLWFuZFwtZnJvOwor6I2gIDwgd2F0ZXJcLWNoZXN0bnV0czsKK+axniA8IGVsZW1lbnRcLW1lcmN1cnk7Civnlb8gPCBpbXBlcmlhbFwtZG9tYWluOwor6IiCIDwgZ3JpbmRcLWluXC1tb3J0YXI7CivnsbQgPCBwdXJjaGFzZVwtZ3JhaW5zOwor56mwIDwgc3RhbGtzXC1vZlwtZ3JhaW47Civll4QgPCBob2Fyc2VcLW9mXC12b2ljZTsKK+a4miA8IHNtYWxsXC1zYW5kXC1iYW5rOwor56CdIDwgYmFsYW5jZVwtd2VpZ2h0czsKK+advCA8IHNodXR0bGVcLW9mXC1sb29tOwor6b6DIDwgaXJyZWd1bGFyXC10ZWV0aDsKK+WLkCA8IGltcGVyaWFsXC1kZWdyZWU7Civnn7ggPCBhXC1yb2NrXC1vclwtY2xpZmY7CivolaggPCBwdGVyaXNcLWFxdWlsaW5hOwor6LGJIDwgZmVybWVudGVkXC1iZWFuczsKK+W+rSA8IGNvbnNjcmlwdFwtbGFib3I7CivpuoggPCBzcGVjaWVzXC1vZlwtZGVlcjsKK+iVpCA8IGRyb29waW5nXC1sZWF2ZXM7Civnu6EgPCByYXdcLXNpbGtcLWZhYnJpYzsKK+iKqCA8IG5hbWVcLW9mXC1hXC1wbGFudDsKK+iLoyA8IGtpbmRcLW9mXC1sZXR0dWNlOwor56KbIDwgc2FuZFwtYW5kXC1ncmF2ZWw7CivojpIgPCBoZW1wXC1saWtlXC1wbGFudDsKK+iQgSA8IGtpbmRcLW9mXC1ncmFzc2VzOwor55yEIDwgdG9cLWxvb2tcLWFza2FuY2U7Civlm58gPCB0b3BcLW9mXC10aGVcLWhlYWQ7CivlsqMgPCBhXC1oaWxsXC1pblwtaHVuYW47Civll74gPCB0b1wtc2V0XC1hXC1kb2dcLW9uOwor6I2cIDwgc3BlY2llc1wtb2ZcLWJlYW47Civns4EgPCBhXC1ncmFpblwtb2ZcLXJpY2U7Civnsp0gPCB1bnBvbGlzaGVkXC1yaWNlOwor6KOwIDwgdG9cLW1lbmRcLWNsb3RoZXM7CivolqggPCBkZWF0aFwtb2ZcLXByaW5jZTsKK+iMkSA8IHRoZVwtY29udm92dWx2dXM7Civnv64gPCBzdGVtXC1vZlwtZmVhdGhlcjsKK+iJnyA8IGFuY2llbnRcLXdhcnNoaXA7CivpvK8gPCBmbHlpbmdcLXNxdWlycmVsOwor56CpIDwgbmFtZVwtb2ZcLWFcLXN0b25lOwor54K7IDwgYVwta2luZFwtb2ZcLWNoaW5hOwor5qqrIDwgc2Fzc2FmcmFzXC10enVtdTsKK+eLtCA8IGFcLWtpbmRcLW9mXC10YXBpcjsKK+mrmOaViOeOhyA8IGhpZ2hcLWVmZmljaWVuY3k7CivlpKnniLYgPCBoZWF2ZW5seVwtZmF0aGVyOwor5bm+5LmO5a6M5YWoIDwgYWxtb3N0XC1lbnRpcmVseTsKK+eJueW+tSA8IGNoYXJhY3RlcmlzdGljczsKK+S/oeaBr+aZguS7oyA8IGluZm9ybWF0aW9uXC1hZ2U7CivmmpHlgYcgPCBzdW1tZXJcLXZhY2F0aW9uOwor5pO66ISrIDwgYnJlYWtcLWF3YXlcLWZyb207CivljYrmlbggPCBoYWxmXC10aGVcLW51bWJlcjsKK+WGsOmcnCA8IG1vcmFsXC1pbnRlZ3JpdHk7Civli7vmupwgPCBldmVuXC1hbmRcLXNtb290aDsKK+WOn+WnlCA8IHRoZVwtd2hvbGVcLXN0b3J5Owor55Si5ZOB57aT55CGIDwgcHJvZHVjdFwtbWFuYWdlcjsKK+izh+aWmemPiOe1kOWxpCA8IGRhdGFcLWxpbmtcLWxheWVyOwor6LuN5LqL5aiB6ISFIDwgbWlsaXRhcnlcLXRocmVhdDsKK+eJueWvqyA8IGZlYXR1cmVcLWFydGljbGU7CivmmKXlpKkgPCBzcHJpbmdcLVwoc2Vhc29uXCk7CivntrLot6/mnI3li5kgPCBuZXR3b3JrXC1zZXJ2aWNlOwor56CU56m25Lit5b+DIDwgcmVzZWFyY2hcLWNlbnRlcjsKK+atoueXmyA8IHRvXC1yZWxpZXZlXC1wYWluOwor5YmN5LiN5LmFIDwgbm90XC1sb25nXC1iZWZvcmU7Civlj5vkuoIgPCBhcm1lZFwtcmViZWxsaW9uOwor5paH5qqUIDwgXChjb21wdXRlclwpXC1maWxlOwor5bSH5ouc5YSA5byPIDwgd29yc2hpcFwtc2VydmljZTsKK+e3rOeUuCA8IG15YW5tYXJcLVwoYnVybWFcKTsKK+aWueiIiOacquiJviA8IHRvXC1iZVwtdW5mb2xkaW5nOwor6ZuZ6YKK6LK/5piTIDwgYmlsYXRlcmFsXC10cmFkZTsKK+WkseacmyA8IGJlXC1kaXNhcHBvaW50ZWQ7Civou43kuovpg6jploAgPCBtaWxpdGFyeVwtYnJhbmNoOwor57ay56uZIDwgbmV0d29ya1wtc3RhdGlvbjsKK+mZpOatpOS5i+WkliA8IGFwYXJ0XC1mcm9tXC10aGlzOwor5aSq6Zm95YWs5Y+4IDwgc3VuXC1jb3Jwb3JhdGlvbjsKK+WkluWci+izh+acrCA8IGZvcmVpZ25cLWNhcGl0YWw7CivplovploAgPCBvcGVuXC1cKHRoZVwpXC1kb29yOwor55Sf55Si6ZqKIDwgcHJvZHVjdGlvblwtdGVhbTsKK+e2k+euoSA8IGJlXC1pblwtY2hhcmdlXC1vZjsKK+eUqOaItue3miA8IHN1YnNjcmliZXJcLWxpbmU7Civnvo7lnIvkurogPCBhbWVyaWNhblwtcGVyc29uOwor5Y2K5aSpIDwgaGFsZlwtb2ZcLXRoZVwtZGF5Owor6Kqe5pePIDwgbGFuZ3VhZ2VcLWJyYW5jaDsKK+W+gOW5tCA8IGluXC1mb3JtZXJcLXllYXJzOwor5pel5aCxIDwgZGFpbHlcLW5ld3NwYXBlcjsKK+WFiembuyA8IG9wdG9cLWVsZWN0cmljYWw7Civnmb3pkLUgPCBnYWx2YW5pemVkXC1pcm9uOwor6ZuF5q2MIDwgc29uZ1wtb2ZcLXNvbG9tb247CivlvbzlsrggPCB0aGVcLW90aGVyXC1zaG9yZTsKK+mFjeWQiCA8IGNvb3JkaW5hdGVcLXdpdGg7CivloLHns7sgPCBuZXdzcGFwZXJcLWNoYWluOwor6LGQ5a+M5aSa5b2pIDwgcmljaGx5XC1jb2xvcmZ1bDsKK+aomemHjyA8IHNjYWxhclwtcXVhbnRpdHk7CivljZfljJcgPCBub3J0aFwtYW5kXC1zb3V0aDsKK+avlOWuuSA8IHNwZWNpZmljXC12b2x1bWU7CivnnIvkuIrljrsgPCBpdFwtd291bGRcLWFwcGVhcjsKK+ebiOiZpyA8IHByb2ZpdFwtYW5kXC1sb3NzOwor5Yu45bCOIDwgdHJ5XC10b1wtY29udmluY2U7CivpmaPnh58gPCBncm91cFwtb2ZcLXBlb3BsZTsKK+W5vueZviA8IHNldmVyYWxcLWh1bmRyZWQ7CivlpKflr6sgPCBjYXBpdGFsXC1sZXR0ZXJzOwor6YGO5rS7IDwgbGl2ZVwtb25lJydzXC1saWZlOwor54mM5L2NIDwgbWVtb3JpYWxcLXRhYmxldDsKK+aXqeS6myA8IFwoYVwtYml0XClcLWVhcmxpZXI7CivoqrLlpJYgPCBleHRyYWN1cnJpY3VsYXI7Civpm7bnrYnlvoXni4DmhYsgPCB6ZXJvXC13YWl0XC1zdGF0ZTsKK+aUtuaLviA8IHRvXC1wdXRcLWluXC1vcmRlcjsKK+S4jeeZveS5i+WGpCA8IHVucmlnaHRlZFwtd3Jvbmc7CivntrLmrrUgPCBuZXR3b3JrXC1zZWdtZW50Owor5byf5byfIDwgeW91bmdlclwtYnJvdGhlcjsKK+mBsuaXqSA8IHNvb25lclwtb3JcLWxhdGVyOwor5oiS5YKZ5qOu5Zq0IDwgaGVhdmlseVwtZ3VhcmRlZDsKK+efruWwjyA8IHNob3J0XC1hbmRcLXNtYWxsOwor5Y2K6YCU6ICM5buiIDwgZ2l2ZVwtdXBcLWhhbGZ3YXk7Civmr5Tlg7kgPCBwcmljZVwtcmVsYXRpb25zOwor6b6RIDwgaGlnaFwtYW5kXC1icmlnaHQ7CivmlrDku7sgPCBuZXdseVwtYXBwb2ludGVkOwor6Zy45L2UIDwgZm9yY2libHlcLW9jY3VweTsKK+m8lSA8IHJhdHRsZVwtb2ZcLWRydW1zOwor5bm+5Y2B5YSEIDwgc2V2ZXJhbFwtYmlsbGlvbjsKK+eXhemtlCA8IHNlcmlvdXNcLWlsbG5lc3M7CivluLjnlKggPCBpblwtY29tbW9uXC11c2FnZTsKK+WGsOejmiA8IGljZVwtY3JlYW1cLWJyaWNrOwor6bSSIDwgc3BlY2llc1wtb2ZcLWxhcms7Civnmb3oj5wgPCBjaGluZXNlXC1jYWJiYWdlOwor6bSCIDwgdGhlXC10YWlsb3JcLWJpcmQ7Civps7sgPCB0aGVcLXdpbGRcLXBpZ2VvbjsKK+mzkyA8IGNoaW5lc2VcLWhlcnJpbmc7CivpsaEgPCB0aGVcLWN1dHRsZVwtZmlzaDsKK+mxhSA8IGFcLWtpbmRcLW9mXC10ZW5jaDsKK+S4jeW+heiqqiA8IG5lZWRsZXNzXC10b1wtc2F5Owor5om56YeP55Sf55SiIDwgdG9cLW1hc3NcLXByb2R1Y2U7CivprbAgPCB0aGVcLWZseWluZ1wtZmlzaDsKK+WcqOW+iOWkmuaWuemdoiA8IGluXC1tYW55XC1hc3BlY3RzOwor6au+IDwgdGFpbFwtb2ZcLWFcLWNvbWV0Owor6au0IDwgZGlzaGV2ZWxlZFwtaGFpcjsKK+aTjeS9nOmAn+eOhyA8IG9wZXJhdGluZ1wtc3BlZWQ7CivlvLfliqAgPCBpbXBvc2VcLWJ5XC1mb3JjZTsKK+momCA8IGFcLXBpZWJhbGRcLWhvcnNlOwor6aWHIDwgdG9cLWVhdFwtdG9vXC1tdWNoOwor6aK7IDwgZmxvYXRpbmdcLWluXC1haXI7Civpoq4gPCBzdG9ybVwtd2hpcmx3aW5kOwor5aSW5LqLIDwgZm9yZWlnblwtYWZmYWlyczsKK+iBr+WQiOeZvOihqCA8IGpvaW50XC1zdGF0ZW1lbnQ7CivpgorlnLAgPCBib3JkZXJcLWRpc3RyaWN0Owor6Z+eIDwgYW5cLW9yYW5nZVwtY29sb3I7CivpnrQgPCBzYWRkbGVcLXVwXC1ob3JzZTsKK+mduCA8IGFcLWNoaWxkJydzXC1zaG9lczsKK+mbsSA8IHNub3dpbmdcLWhlYXZpbHk7CivoiIzpnaIgPCBibGFkZVwtb2ZcLXRvbmd1ZTsKK+WJteiomOmMhCA8IHRvXC1zZXRcLWFcLXJlY29yZDsKK+iRl+S9nCA8IGFcLWxpdGVyYXJ5XC13b3JrOwor55m957GzIDwgXChwb2xpc2hlZFwpXC1yaWNlOwor54CV6IeoIDwgb25cLXRoZVwtdmVyZ2VcLW9mOwor5LiN5a6M5YWo6JGJIDwgaW5jb21wbGV0ZVwtbGVhZjsKK+mBuOWWriA8IFwoc29mdHdhcmVcKVwtbWVudTsKK+Wft+azlSA8IGxhd1wtZW5mb3JjZW1lbnQ7CivpjqQgPCBzb3VuZFwtb2ZcLWFcLWJlbGw7CivkuI3lkI3mlbggPCBhYnN0cmFjdFwtbnVtYmVyOwor6YCy5bGVIDwgdG9cLW1ha2VcLWhlYWR3YXk7CivngrrmraQgPCBmb3JcLXRoaXNcLXJlYXNvbjsKK+mGviA8IHVuZmlsdGVyZWRcLXdpbmU7CivmoLjlj43mh4nloIYgPCBudWNsZWFyXC1yZWFjdG9yOwor57aT5r+f5pS56Z2pIDwgZWNvbm9taWNcLXJlZm9ybTsKK+mEuSA8IG5hbWVcLW9mXC1hXC1zdGF0ZTsKK+W7oOWPsiA8IGZhY3RvcnlcLWhpc3Rvcnk7CivlhYnno4EgPCBtYWduZXRvXC1vcHRpY2FsOwor6ZqY5Y+jIDwgXChtb3VudGFpblwpXC1wYXNzOwor57ay5Z2AIDwgXChpbnRlcm5ldFwpXC1zaXRlOwor55Wr6Z2iIDwgXChwaWN0dXJlXClcLWZyYW1lOwor6I+c5ZywIDwgdmVnZXRhYmxlXC1maWVsZDsKK+eVnOmhniA8IGRvbWVzdGljXC1hbmltYWw7CivouoAgPCB0b1wtc3R1bWJsZVwtb3ZlcjsKK+e4vee2k+eQhiA8IGdlbmVyYWxcLW1hbmFnZXI7Civotq4gPCBlYXNpbHlcLXByb3Zva2VkOwor5Y2K5aOB5rGf5bGxIDwgaGFsZlwtb2ZcLWNvdW50cnk7CivmirHppIogPCBhZG9wdFwtXChhXC1jaGlsZFwpOwor5Z+O5qiTIDwgY2l0eVwtZ2F0ZVwtdG93ZXI7Civoq6EgPCBwb3N0aHVtb3VzXC1uYW1lOwor5o6h56iuIDwgc2VlZFwtY29sbGVjdGluZzsKK+S/hOW3tOW6leS6nuabuCA8IGJvb2tcLW9mXC1vYmFkaWFoOwor6KiSIDwgaGVzaXRhdGVcLXRvXC1zYXk7Civlj6Tlhbjpn7PmqIIgPCBjbGFzc2ljYWxcLW11c2ljOwor6Iqx55m9IDwgZ3JpenpsZWRcLVwoaGFpclwpOwor5LiN5Y+v5aSa5b6XIDwgaGFyZFwtdG9cLWNvbWVcLWJ5Owor6KW8IDwgJydraW1vbm8nJ1wtc2xlZXZlOwor6KWMIDwgdW5saW5lZFwtZ2FybWVudDsKK+ikpyA8IHVubGluZWRcLWNsb3RoZXM7Civph43mlrDplovlp4sgPCByZXN1bWVcLFwtcmVzdGFydDsKK+WxjemrlCA8IFwobGlmZWxlc3NcKVwtYm9keTsKK+WcluewvSA8IFwoY29tcHV0ZXJcKVwtaWNvbjsKK+W3tOacmyA8IGxvb2tcLWZvcndhcmRcLXRvOwor6J6aIDwgZXJpc3RhbGlzXC10ZW5heDsKK+WxpOmbsiA8IHN0cmF0dXNcLVwoY2xvdWRcKTsKK+aVuOeZvuiQrCA8IHNldmVyYWxcLW1pbGxpb247Civmi7zotbfkvoYgPCB0b1wtcHV0XC10b2dldGhlcjsKK+exjOeivCA8IGJhcmdhaW5pbmdcLWNoaXA7Civol7YgPCBhXC1raW5kXC1vZlwtcGxhbnQ7CivolaIgPCBlZGlibGVcLWFtYXJhbnRoOwor6JWNIDwgYWxpc21hXC1wbGFudGFnczsKK+iUviA8IGtpbmRcLW9mXC1icmFtYmxlOwor6JKoIDwgbHVzaFwtdmVnZXRhdGlvbjsKK+iSkyA8IGFuXC1lZGlibGVcLXdhdGVyOwor6Zu75a2Q6YO15Lu2IDwgZWxlY3Ryb25pY1wtbWFpbDsKK+mZjeWDuSA8IHByaWNlXC1yZWR1Y3Rpb247CivokZEgPCB0aGVcLXJhcGVcLXR1cm5pcDsKK+exs+eyieiCiSA8IHJpY2VcLWZsb3VyXC1tZWF0Owor5qiZ5qiBIDwgXChtYXJraW5nXClcLXN0YWtlOwor6ZaJ5pyDIDwgY2xvc2VcLWFcLW1lZXRpbmc7CivoiYUgPCBhXC1kZXNwYXRjaFwtYm9hdDsKK+e0lOWxrCA8IHB1cmVcLWFuZFwtc2ltcGxlOwor5YWJ5qauIDwgaG9ub3JcLWFuZFwtZ2xvcnk7CivohaIgPCB0aGVcLWNvbGxhclwtYm9uZTsKK+i+puWtuCA8IHRvXC1ydW5cLWFcLXNjaG9vbDsKK+aomeadhiA8IHN1cnZleW9yJydzXC1wb2xlOwor5bmj5Yi2IDwgY3VycmVuY3lcLXN5c3RlbTsKK+WgseWIsCA8IHJlcG9ydFwtZm9yXC1kdXR5Owor572/IDwgbmV0XC1jYXRjaFwtYmlyZHM7CivntpPmv5/liY3pgJQgPCBlY29ub21pY1wtZnV0dXJlOwor5bm05Lu9IDwgcGFydGljdWxhclwteWVhcjsKK+W3peiugOWtuOagoSA8IHRoZVwtcmVmb3JtYXRvcnk7Civln7rlnLAgPCBcKG1pbGl0YXJ5XClcLWJhc2U7CivlmrTph43pl5zliIcgPCBzZXJpb3VzXC1jb25jZXJuOwor5YWJ5piOIDwgYnJpZ2h0XC1cKGZ1dHVyZVwpOwor6auY5oqA6KGTIDwgaGlnaFwtdGVjaG5vbG9neTsKK+S/nemHiyA8IHJlbGVhc2VcLW9uXC1iYWlsOwor57WNIDwgdG9cLWxheVwtdGhlXC13YXJwOwor57aT5r+f5Y2x5qmfIDwgZWNvbm9taWNcLWNyaXNpczsKK+WwhOmguyA8IHJhZGlvXC1mcmVxdWVuY3k7Civli5XmhYvliqnoqZ4gPCBhc3BlY3RcLXBhcnRpY2xlOwor6ZaJ6Z+z56+AIDwgY2xvc2VkXC1zeWxsYWJsZTsKK+ewlCA8IGFcLWNvYXRcLXJhaW5jb2F0Owor56+wIDwgYVwtYmFtYm9vXC1iYXNrZXQ7CivprKXniK0gPCBzdHJ1Z2dsZVwtXCh3aXRoXCk7Civoo6HmoLkgPCBcKHJvbmFsZFwpXC1yZWFnYW47CivnqYQgPCBwYW5pY2xlZFwtbWlsbGV0Owor56aLIDwgb2ZmZXJcLXNhY3JpZmljZTsKK+ejqiA8IGFcLWhpZ2hcLW1vdW50YWluOwor5pq06Lez5aaC6Zu3IDwgc3RhbXBcLXdpdGhcLWZ1cnk7CivmipfooaEgPCBjb250ZW5kXC1hZ2FpbnN0Owor57Sa5YilIDwgXChtaWxpdGFyeVwpXC1yYW5rOwor562G6KqkIDwgYVwtc2xpcFwtb2ZcLWFcLXBlbjsKK+WFq+WvtiA8IGVpZ2h0XC10cmVhc3VyZXM7Civnmb7lubQgPCBhXC1odW5kcmVkXC15ZWFyczsKK+S7peilv+e1kOabuCA8IGJvb2tcLW9mXC1lemVraWVsOwor5pGY5YCfIDwgdG9cLWJvcnJvd1wtbW9uZXk7CivljJblrbjmrablmaggPCBjaGVtaWNhbFwtd2VhcG9uOwor55iIIDwgcHJvbG9uZ2VkXC1mZXZlcjsKK+eYgyA8IHNvcmVzXC1mcm9tXC1jb2xkOwor55e+IDwgY2hyb25pY1wtaWxsbmVzczsKK+eXtSA8IGFcLWhlYXJ0XC1zeW1wdG9tOwor55euIDwgYVwtc3dlbGxlZFwtYmVsbHk7Civnl6AgPCBhY2hpbmdcLW9mXC1saW1iczsKK+eXgSA8IGNocm9uaWNcLW1hbGFyaWE7CivnlawgPCByZWNsYWltZWRcLWZpZWxkOwor6ZW35a6YIDwgc2VuaW9yXC1vZmZpY2lhbDsKK+iZm+mbu+i3ryA8IHZpcnR1YWxcLWNpcmN1aXQ7CivnmbvoqJjnlKjmiLYgPCByZWdpc3RlcmVkXC11c2VyOwor56iu5peP5Li7576p6ICFIDwgcmFjaXN0XC1cKHBlcnNvblwpOwor55CtIDwgamFkZVwtbGlrZVwtc3RvbmU7Civlvp7ljrvlubQgPCBzaW5jZVwtbGFzdFwteWVhcjsKK+ePpyA8IG1vdGhlclwtb2ZcLXBlYXJsOwor5YWl5aKDIDwgZW50ZXJcLWFcLWNvdW50cnk7Civnj4cgPCBjYXJ2aW5nXC1vblwtamFkZTsKK+WatOmHjeWVj+mhjCA8IHNlcmlvdXNcLXByb2JsZW07Civoh4LntJcgPCBcKGJsYWNrXClcLWFybWJhbmQ7Civnjp8gPCBzdHJlYWtzXC1pblwtamFkZTsKK+eVtuWLmeS5i+aApSA8IHVyZ2VudFwtcHJpb3JpdHk7CivnjbEgPCBhXC1raW5kXC1vZlwtb3R0ZXI7Civou43moKEgPCBtaWxpdGFyeVwtc2Nob29sOwor54urIDwgbmFtZVwtb2ZcLWFcLXRyaWJlOwor6Luf5Lu257O757WxIDwgc29mdHdhcmVcLXN5c3RlbTsKK+eJhCA8IHRvXC13YWxrXC1yYXBpZGx5Owor54aTIDwgdGhlXC1iYW5rXC1hXC1maXJlOwor54S1IDwgdG9cLXRlbXBlclwtc3RlZWw7CivmioroiLUgPCBob2xkXC10aGVcLXJ1ZGRlcjsKK+iPsuW+i+izkyA8IHRoZVwtcGhpbGlwcGluZXM7CivooqvmjZUgPCBiZVwtdW5kZXJcLWFycmVzdDsKK+eAniA8IHBvb2xcLWluXC1hXC1yaXZlcjsKK+a9mSA8IHJpdmVyXC1pblwtc2hhbnhpOwor57ay57Wh54CP6Ka95ZmoIDwgbmV0d29ya1wtYnJvd3NlcjsKK+a7jiA8IGNvdW50eVwtaW5cLWhlbmFuOwor5pys5peP6KqeIDwgbmF0aXZlXC1sYW5ndWFnZTsKK+azqSA8IHJpc2luZ1wtb2ZcLXdhdGVyOwor6LO854mp5Lit5b+DIDwgc2hvcHBpbmdcLWNlbnRlcjsKK+aymiA8IGlzbGV0XC1pblwtc3RyZWFtOwor55m+5Y2BIDwgYVwtaHVuZHJlZFwtb3JcLXNvOwor5Z2Q5aW9IDwgdG9cLXNpdFwtcHJvcGVybHk7CivntYbohbPnn7MgPCBzdHVtYmxpbmdcLWJsb2NrOwor5oSf5p+T6ICFIDwgaW5mZWN0ZWRcLXBlcnNvbjsKK+Wkmuaoo+WMliA8IGRpdmVyc2lmaWNhdGlvbjsKK+amoSA8IHF1ZXJjdXNcLWRlbnRhdGE7Civlo4Hlo5jmo67lmrQgPCBjbG9zZWx5XC1ndWFyZGVkOwor5qS6IDwgYmVhbVwtb2ZcLWFcLWhvdXNlOwor57ay566h5ZOhIDwgbmV0d29ya1wtbWFuYWdlcjsKK+W4luaSkue+heWwvOi/puW+jOabuCA8IDJcLXRoZXNzYWxvbmlhbnM7CivpjKbpm54gPCBnb2xkZW5cLXBoZWFzYW50Owor5p+OIDwgY2FseXhcLW9mXC1mbG93ZXI7Civmn4EgPCBsYXJnZVwtdGllXC1iZWFtczsKK+aerCA8IGFuXC1ldmVuXC1ncmFpbmVkOwor6Ieq5q66IDwgdG9cLWtpbGxcLW9uZXNlbGY7CivmnKMgPCB0aGVcLXJpc2luZ1wtbW9vbjsKK+eRquaLieWfuuabuCA8IGJvb2tcLW9mXC1tYWxhY2hpOwor6auY5piCIDwgaW5cLWhpZ2hcLXNwaXJpdHM7Civosr/mmJPlpKXkvLQgPCB0cmFkaW5nXC1wYXJ0bmVyOwor56m/6YGOIDwgdG9cLXBhc3NcLXRocm91Z2g7CivlgpnmiLAgPCBwcmVwYXJlXC1mb3JcLXdhcjsKK+aciOS7veacg+itsCA8IG1vbnRobHlcLW1lZXRpbmc7CivmkbsgPCBhXC1kZWxpY2F0ZVwtaGFuZDsKK+Wuiei6qyA8IG1ha2VcLW9uZScnc1wtaG9tZTsKK+a4uOiqqiA8IGRydW1cLXVwXC1zdXBwb3J0Owor6Iez5pa8IDwgZ29cLXNvXC1mYXJcLWFzXC10bzsKK+aIhCA8IHRvXC1iZVwtaW5cLWF3ZVwtb2Y7CivnoJTnqbbloLHlkYogPCByZXNlYXJjaFwtcmVwb3J0Owor5YWI6YCy5q2m5ZmoIDwgYWR2YW5jZWRcLXdlYXBvbjsKK+eUn+eJqSA8IGxpdmluZ1wtY3JlYXR1cmU7CivmiLbnsY0gPCBjZW5zdXNcLXJlZ2lzdGVyOwor5aSn55m86Zu36ZyGIDwgZXh0cmVtZWx5XC1hbmdyeTsKK+W+rCA8IHRvXC13YW5kZXJcLWFib3V0Owor5by0IDwgcmVkXC1sYWNxdWVyXC1ib3c7Civnvo7lnIvmlL/lupwgPCB1XC5zXC5cLWdvdmVybm1lbnQ7CivmoKHoiI0gPCBzY2hvb2xcLWJ1aWxkaW5nOwor5be5IDwgbnVwdGlhbFwtd2luZWN1cDsKK+S4jeW5sua2iSA8IG5vbmludGVyZmVyZW5jZTsKK+WWhOiJryA8IGdvb2RcLWFuZFwtaG9uZXN0Owor5bWOIDwgbW91bnRhaW5cLXJlY2VzczsKK+S6nueIvueZvOWSjOWlp+exs+WKoCA8IGFscGhhXC1hbmRcLW9tZWdhOwor5bOeIDwgaGlnaFwtYW5kXC11bmV2ZW47CivloZ7niL7nibnoqp4gPCBjZWx0aWNcLWxhbmd1YWdlOwor5qC45q2m5bqrIDwgbnVjbGVhclwtYXJzZW5hbDsKK+WuouaItuapn+i7n+S7tiA8IGNsaWVudFwtc29mdHdhcmU7Civmjqrovq3lvLfnoawgPCBzdHJvbmdseVwtd29yZGVkOwor6LuN5YKZIDwgXChtaWxpdGFyeVwpXC1hcm1zOwor6aaW6IWmIDwgaGVhZFwtXChvZlwtc3RhdGVcKTsKK+WuieiRrCA8IGJ1cnlcLVwodGhlXC1kZWFkXCk7Civoh6rli5XllK7osqjmqZ8gPCB2ZW5kaW5nXC1tYWNoaW5lOwor5aSyIDwgYWR2YW5jZVwtcXVpY2tseTsKK+S4ree+jua0siA8IGNlbnRyYWxcLWFtZXJpY2E7CivmpbXlipsgPCBkb1wtYXRcLWFsbFwtY29zdHM7Civot5HmraUgPCB0b1wtd2Fsa1wtcXVpY2tseTsKK+WdtCA8IGFcLWNsb2RcLW9mXC1lYXJ0aDsKK+WWoyA8IHRvXC1icmVhdGhlXC11cG9uOwor5ZSyIDwgZm9yY2VkXC1sYXVnaHRlcjsKK+WFrOWPuOacg+itsCA8IGNvbXBhbnlcLW1lZXRpbmc7CivosrboqZ4gPCBkZXJvZ2F0b3J5XC10ZXJtOwor5LqS6YCjIDwgaW50ZXJjb25uZWN0aW9uOwor5Y6cIDwgYVwtbW91bnRhaW5cLXBlYWs7CivlpKnkuLvmlZkgPCBjYXRob2xpY1wtY2h1cmNoOwor5YyJIDwgbm9pc2VcLW9mXC13YXRlcnM7CivljIQgPCB0b1wtYmVnXC1mb3JcLWFsbXM7CivmlLnororlvaLlg48gPCB0cmFuc2ZpZ3VyYXRpb247CivlipggPCBtYWtlXC1pbnRvXC1taW5jZTsKK+aCsumztCA8IHV0dGVyXC1zYWRcLWNhbGxzOwor5ru/5oSPIDwgdG9cLWJlXC1zYXRpc2ZpZWQ7CivmtbfpgYsgPCBzaGlwcGluZ1wtYnlcLXNlYTsKK+eVmeWtuCA8IHRvXC1zdHVkeVwtYWJyb2FkOwor6YeR6KOh5aWHIDwgXChuZXd0XClcLWdpbmdyaWNoOwor5L6/5qKdIDwgXChpbmZvcm1hbFwpXC1ub3RlOwor5YK9IDwgdGVycm9yXC1zdHJpY2tlbjsKK+eUmuaIliA8IHNvXC1tdWNoXC1zb1wtdGhhdDsKK+S9lCA8IG9jY3VweVwtYnlcLWZvcmNlOwor5bGx5bOwIDwgXChtb3VudGFpblwpXC1wZWFrOwor5rqr5p+UIDwgZ2VudGxlXC1hbmRcLXNvZnQ7CivkubggPCBmZW1pbmluZVwtc3VmZml4Owor6auY5LitIDwgaGlnaFwtYW5kXC1taWRkbGU7Civnmb7lhZLlhavljYEgPCBhYm91dFwtYVwtaHVuZHJlZDsKK+W4luaSkue+heWwvOi/puWJjeabuCA8IDFcLXRoZXNzYWxvbmlhbnM7CivktqEgPCBzb3VuZFwtb2ZcLWJpdGluZzsKK+S2jiA8IHNvdW5kXC1vZlwtYnJlYXRoOwor6IOD55eFIDwgc3RvbWFjaFwtdHJvdWJsZTsKK+S0viA8IHRvXC1ncmluZFwtYmFybGV5Owor5LSuIDwgY2FrZXNcLXBmXC1sZWF2ZW47CivlpJrmqKHlhYnnupYgPCBtdWx0aW1vZGVcLWZpYmVyOwor5ZCM6b2hIDwgb2ZcLXRoZVwtc2FtZVwtYWdlOwor6Luf5Lu25biC5aC0IDwgc29mdHdhcmVcLW1hcmtldDsKK+agoeWckumqqOW5uSA8IGNhbXB1c1wtYmFja2JvbmU7Civkr4QgPCBhXC1waWViYWxrXC1ob3JzZTsKK+SuvSA8IGJpdFwtZm9yXC1hXC1ob3JzZTsKK+SutSA8IG5hbWVcLW9mXC1hXC1ob3JzZTsKK+SusSA8IGFcLWtpbmRcLW9mXC1iZWFzdDsKK+SupyA8IGxvbmdcLWhhaXJcLWhvcnNlOwor5K6iIDwgYVwtd2Fsa2luZ1wtaG9yc2U7Civkro4gPCBhXC1ydW5uaW5nXC1ob3JzZTsKK+StvCA8IGRhcmtcLWJsdWVcLWhvcnNlOwor5KyrIDwgY2xhcmZpZWRcLWJ1dHRlcjsKK+SsgSA8IGFcLWxpZ2h0XC1jeWNsb25lOwor5ZC46Z+zIDwgc291bmRcLWFic29yYmluZzsKK+aykuacieiBr+e5qyA8IHRvXC1iZVwtdW5yZWxhdGVkOwor5KquIDwgYmVhdXRpZnVsXC1zb3VuZDsKK+SqlSA8IHRvXC13cmFwXC1vclwtYmFuZDsKK+SpuSA8IHRvXC1yZXBhaXJcLXNob2VzOwor5KmSIDwgZHJlc3NlZFwtbGVhdGhlcjsKK+m6u+mGiSA8IHRvXC1hbmFlc3RoZXRpemU7CivkqYQgPCB0b1wtZmFjZVwtdG9cLWZhY2U7CivkqKIgPCBhXC1wYXNzaW5nXC1jbG91ZDsKK+SoliA8IHRvXC1zdG9wXC1yYWluaW5nOwor5KiAIDwgdG9cLWxheVwtaW5cLWdyYWluOwor5KevIDwgbmFtZVwtb2ZcLWFcLXBsYWNlOwor57ay57Wh6KaP5YqD5Lq65ZOhIDwgbmV0d29ya1wtcGxhbm5lcjsKK+SmqyA8IGluc2lkZVwtdGhlXC1kb29yOwor5oqV5aWUIDwgdG9cLXNlZWtcLXNoZWx0ZXI7CivkpZcgPCBhXC1icmFuZGluZ1wtaXJvbjsKK+SksSA8IGFcLXNvbGVtblwtcGxlZGdlOwor5KO2IDwgdW5zdHJhaW5lZFwtd2luZTsKK+S+i+acgyA8IHJlZ3VsYXJcLW1lZXRpbmc7CivlhbHnlKLpu6ggPCBjb21tdW5pc3RcLXBhcnR5Owor5KKmIDwgdG9cLWxlYWRcLXRoZVwtd2F5Owor5KKWIDwgdG9cLWJlXC1zY2F0dGVyZWQ7CivkooEgPCB0aXJlXC1vZlwtYVwtd2hlZWw7CivkobsgPCBzaGFrZVwtb2ZcLWFcLWNhcnQ7CivkoaggPCBjb25uZWN0ZWRcLWNhcnRzOwor6aSF6IKlIDwgY2FrZVwtZmVydGlsaXplcjsKK+ShkCA8IHRvXC1tb3ZlXC1zd2lmdGx5Owor5LiW55WM5pyA5aSnIDwgd29ybGQnJ3NcLWxhcmdlc3Q7CivkoLUgPCB0b1wtd2VhclwtY2xvdGhlczsKK+SgqCA8IHdhbGtpbmdcLXJhcGlkbHk7CivlsJbpirPmibnoqZUgPCBzaGFycFwtY3JpdGljaXNtOwor5LiN6KaL5b6XIDwgbm90XC1uZWNlc3NhcmlseTsKK+SdryA8IHRvXC1jaGFuZ2VcLWhhbmRzOwor5J2QIDwgYVwtY2FzdHJhdGVkXC1ob2c7CivknIQgPCBzbG93XC1vblwtdGFsa2luZzsKK+SbtSA8IHRvXC10ZWFjaFwtb3JhbGx5Owor5JufIDwgd2lsZFwtc3RhdGVtZW50czsKK+SblCA8IHRvXC1ob2xkXC1pblwtaGFuZDsKK+aatOmbqCA8IHRvcnJlbnRpYWxcLXJhaW47CivkmqYgPCBzbGFudGVkXC1jb3JuZXJzOwor5JqlIDwgdG9cLWFkanVzdFwtYVwtYm93Owor5Jm7IDwgdG9cLXN0ZWFsXC1hXC1sb29rOwor5JmoIDwgdG9cLXdyYXBcLW9yXC1iaW5kOwor5JmdIDwgdW5kZXJcLWdhcnJtZW50czsKK+SXviA8IGNvcmJpY3VsYVwtbGVhbmE7CivklrwgPCB0aGVcLWR1bmdcLWJlZXRsZTsKK+SWmSA8IGFcLXJlc3RpbmdcLXRpZ2VyOwor5JaJIDwgdG9cLXJvYXJcLW9yXC1ob3dsOwor5JWZIDwgdG9cLXNldFwtaW5cLW9yZGVyOwor5JKMIDwgZGFya1wtYmx1ZVwtY29sb3I7Civkj7IgPCBwcm90cnVkZWRcLWJvbmVzOwor5L6/5a60IDwgaW5mb3JtYWxcLWRpbm5lcjsKK+SOsyA8IGxvc2VcLW9mXC10aGVcLWVhcjsKK+SOiSA8IHRvXC13YWxrXC1zd2lmdGx5Owor5LiK6L+wIDwgYWJvdmVcLW1lbnRpb25lZDsKK+SLtyA8IGFcLWtpbmRcLW9mXC10aGljazsKK+SKtSA8IHlvdW5nXC1hbmRcLXNtYWxsOwor5IqXIDwgYVwta2luZFwtb2ZcLWdyYWluOwor5IqJIDwgcHJlc2VydmVkXC1mcnVpdDsKK+SJpyA8IHNvdW5kXC1vZlwtYmFtYm9vOwor6LOA5bm054mHIDwgbmV3XC15ZWFyJydzXC1jYXJkOwor5IW3IDwgYW5cLWVhclwtb2ZcLWdyYWluOwor5IWwIDwgYVwta2luZFwtb2ZcLWdyYXNzOwor5qiZ5rqW5YyWIDwgc3RhbmRhcmRpemF0aW9uOwor5ISuIDwgZGFya1wtcmljZVwtcGxhbnQ7CivkhJUgPCBnb2RcLW9mXC10aGVcLWxhbmQ7Civpm7vohabns7vntbEgPCBjb21wdXRlclwtc3lzdGVtOwor5IO3IDwgYVwta2luZFwtb2ZcLXN0b25lOwor5IOSIDwgcG9vclwtYW5kXC1iYXJyZW47CivkgbQgPCBrZWVwXC1vblwtbG9va2luZzsKK+SBsyA8IHRvXC1sb3NlXC1vbmVcLWV5ZTsKK+WvpuW9iCA8IGxpdmVcLWFtbXVuaXRpb247CivosqjluaPljbHmqZ8gPCBtb25ldGFyeVwtY3Jpc2lzOwor5ICJIDwgZm9vZFwtY29udGFpbmVyczsKK+O/sSA8IGRyeVwtYW5kXC1kZWNheWVkOwor476pIDwgbWFsaWduYW50XC1ib2lsczsKK+WFseS6q+S7peWkque2sue1oSA8IHNoYXJlZFwtZXRoZXJuZXQ7CivnlKLlgLwgPCB2YWx1ZVwtb2ZcLW91dHB1dDsKK+aal+mAgeeni+azoiA8IG1ha2VcLWV5ZXNcLWF0XC1zYjsKK+S9v+a7v+aEjyA8IHRvXC1tYWtlXC1jb250ZW50Owor56Wd6LOAIDwgdG9cLWNvbmdyYXR1bGF0ZTsKK+O8lSA8IHB1bHBcLW9mXC1hXC1tZWxvbjsKK+O8lCA8IGFcLWtpbmRcLW9mXC1tZWxvbjsKK+S4jemPvemLvCA8IHN0YWlubGVzc1wtc3RlZWw7CivjvIIgPCBhXC1jcmFja1wtaW5cLWphZGU7Civju40gPCBuYW1lXC1vZlwtYVwtc3dvcmQ7CivjuowgPCBlbmRsZXNzXC1iYXJraW5nOwor5Lul54K6IDwgY29uc2lkZXJcLVwodGhhdFwpOwor47mnIDwgZm94XC1saWtlXC1hbmltYWw7CivjuLEgPCBob3JubGVzc1wtY2F0dGxlOwor47ipIDwgdG9cLWRlc2lzdFwtYW5cLW94Owor5qC45b2IIDwgbnVjbGVhclwtd2FyaGVhZDsKK+O4kSA8IGFcLWNvb2tpbmdcLXN0b3ZlOwor5Y2w5bqm5Lq6IDwgaW5kaWFuXC1cKHBlcnNvblwpOwor5LiK6KqyIDwgdG9cLWF0dGVuZFwtY2xhc3M7CivlpafpgYvmnZEgPCBvbHltcGljXC12aWxsYWdlOwor47eNIDwgYVwtY2hlbWljYWxcLXRlcm07CivnrKblkIggPCBpblwta2VlcGluZ1wtd2l0aDsKK+aKgOWAhiA8IHRyaWNreVwtbWFuZXV2ZXI7Civmmpfpganmh4kgPCBkYXJrXC1hZGFwdGF0aW9uOwor5pW45L2N57ay6LevIDwgZGlnaXRhbFwtbmV0d29yazsKK+OzvyA8IHJvbGxpbmdcLWJpbGxvd3M7Civjs5cgPCBiYW5rXC1vZlwtYVwtcml2ZXI7CivjspQgPCB3b29sZW5cLXRleHRpbGVzOwor47GOIDwgY2Fubm90XC1iZVwta25vd247CivjsKwgPCBzaG9ydHdpbmRlZG5lc3M7CivjsJcgPCBhXC1raW5kXC1vZlwtbWFwbGU7CivjsIggPCBuaWNlXC1hbmRcLXByZXR0eTsKK+OvsSA8IGFuXC1lbmxhcmdlZFwtYmFnOwor46+kIDwgdGhlXC1qdWp1YmVcLXRyZWU7Civjr5QgPCB0b1wtaHVsbFwtaGVhdmlseTsKK+azsOiqniA8IHRoYWlcLVwobGFuZ3VhZ2VcKTsKK+OuoSA8IHRvXC1saWdodFwtYVwtZmlyZTsKK+WvteWjniA8IHNwb2lsXC1cKGFcLWNoaWxkXCk7CivjraQgPCB0aGVcLWNvbnZvbHZ1bHVzOwor5Lqk55WMIDwgY29tbW9uXC1ib3VuZGFyeTsKK+iZm+aTrOe2sue1oSA8IHZpcnR1YWxcLW5ldHdvcms7CivlhYnmmI7ml6XloLEgPCBndWFuZ21pbmdcLWRhaWx5Owor46ugIDwgYVwta2luZFwtb2ZcLXdhdGVyOwor46qrIDwgd2lzZVwtYW5kXC1jbGV2ZXI7Civmrbflj7LkuYXpgaAgPCBhbmNpZW50XC1oaXN0b3J5Owor46eOIDwgZm9ya2VkXC1icmFuY2hlczsKK+iAgeeZvuWnkyA8IG9yZGluYXJ5XC1wZW9wbGU7CivjpZ4gPCB0b1wtdGhpbmtcLWRlZXBseTsKK+OlmyA8IHdpdGhcLWV4cGVkaXRpb247Civjop4gPCByb29tc1wtY29ubmVjdGVkOwor46KNIDwgYVwtbG9uZ1wtdmVyYWJkYWg7CivlpKvlprvlupcgPCBmYW1pbHlcLXJ1blwtc2hvcDsKK+OhsiA8IHRpbGVzXC1vblwtYVwtcm9vZjsKK+OhgCA8IHJhZ2dlZFwtY2xvdGhpbmc7Civjn5QgPCBzdGVlcFwtYW5kXC1sb2Z0eTsKK+OdpSA8IGhhdmVcLWFcLW5pZ2htYXJlOwor5LiJ6JCsIDwgdGhpcnR5XC10aG91c2FuZDsKK+OdhSA8IHRvXC1naXZlXC1zdWNrXC10bzsKK+OcsiA8IHRvXC1oYXZlXC1zdXJwbHVzOwor6LKo5rqQIDwgc3VwcGx5XC1vZlwtZ29vZHM7Civjm7AgPCB0b1wtbWFycnlcLWFcLXdpZmU7CivjmqYgPCBhXC1jaGFybWluZ1wtZ2lybDsKK+OZvCA8IGFcLW1pbGl0YXJ5XC13YWxsOwor56qX5biYIDwgd2luZG93XC1jdXJ0YWluczsKK+OZlyA8IGFcLWx1bXBcLW9mXC1lYXJ0aDsKK+OYuiA8IGN1bHRpdmF0ZWRcLWxhbmQ7CivmnJ/npaggPCBwcm9taXNzb3J5XC1ub3RlOwor45e/IDwgdG9cLWxhdWdoXC1sb3VkbHk7CivjlbIgPCB0b1wtZ2FnXC1vclwtYnJpYmU7CivjlZggPCB0b1wtdGFrZVwtcGFydFwtaW47Civjkp8gPCB3aXRoXC1hXC1jaGFybWluZzsKK+WPo+iqniA8IHNwb2tlblwtbGFuZ3VhZ2U7Civmlq/mi4nlpKvoqp4gPCBzbGF2aWNcLWxhbmd1YWdlOwor56eB54efIDwgcHJpdmF0ZWx5XC1vd25lZDsKK+WkluWci+WFrOWPuCA8IGZvcmVpZ25cLWNvbXBhbnk7Civlr5LlgYcgPCB3aW50ZXJcLXZhY2F0aW9uOwor5ZOA5q2MIDwgYVwtbW91cm5mdWxcLXNvbmc7CivlhZLljJbpn7sgPCByZXRyb2ZsZXhcLWZpbmFsOwor54m96YCjIDwgXChiZVwpXC1pbXBsaWNhdGVkOwor5oCn6KGMIDwgc2V4dWFsXC1hY3Rpdml0eTsKK+WtuOWjqyA8IGJhY2hlbG9yXC1kZWdyZWU7CivosqDmk5QgPCBcKGJlYXJcLWFcKVwtYnVyZGVuOwor5ZWG5qWt5Lit5b+DIDwgYnVzaW5lc3NcLWNlbnRlcjsKK+S4gOenmCA8IGZpcnN0XC1zZWNyZXRhcnk7Civol6Xnk7YgPCBtZWRpY2luZVwtYm90dGxlOwor5oWa5oSnIDwgXCh0b1wtYmVcKVwtYXNoYW1lZDsKK+S6uuaJjSA8IHRhbGVudGVkXC1wZXJzb247CivkuI3nlJggPCB1bnJlY29uY2lsZWRcLXRvOwor5LiN55u45LiK5LiLIDwgZXF1YWxseVwtbWF0Y2hlZDsKK+ePreWtkCA8IG9yZ2FuaXplZFwtZ3JvdXA7Civmr4/pmpQgPCBhdFwtaW50ZXJ2YWxzXC1vZjsKK+aEm+aItCA8IGxvdmVcLWFuZFwtZXN0ZWVtOwor5oSb5oiAIDwgYmVcLWluXC1sb3ZlXC13aXRoOwor5qmf5a+G5paH5Lu2IDwgc2VjcmV0XC1kb2N1bWVudDsKK+adreW3niA8IGhhbmd6aG91XC1cKGNpdHlcKTsKK+WVj+S4liA8IHRvXC1iZVwtcHVibGlzaGVkOwor5oKy5rOjIDwgd2VlcFwtd2l0aFwtZ3JpZWY7Civms5XnkIYgPCBsZWdhbFwtcHJpbmNpcGxlOwor56ep5bqPIDwgb3JkZXJcLVwob3JkZXJseVwpOwor57ay57Wh5omT5Y2w5qmfIDwgbmV0d29ya1wtcHJpbnRlcjsKK+WQjeeJhyA8IFwoYnVzaW5lc3NcKVwtY2FyZDsKK+aXheiyuyA8IHRyYXZlbFwtZXhwZW5zZXM7CivosqHlnJggPCBmaW5hbmNpYWxcLWdyb3VwOwor5rKZ55+zIDwgc2FuZFwtYW5kXC1zdG9uZXM7CivnpoHmnpwgPCBmb3JiaWRkZW5cLWZydWl0Owor6YO16YGeIDwgdG9cLXNlbmRcLWJ5XC1tYWlsOwor5p2/5p2/5YWt5Y2B5ZubIDwgdW5hY2NvbW1vZGF0aW5nOwor5p6Q5Ye6IDwgdG9cLXNlcGVyYXRlXC1vdXQ7CivnrKzkuIDlgIvlsaTmrKEgPCB0aGVcLWZpcnN0XC1zdGFnZTsKK+WFt+mrlOioiOWKgyA8IGFcLWNvbmNyZXRlXC1wbGFuOwor5aWU6KWyIDwgbG9uZ1wtcmFuZ2VcLXJhaWQ7Civmnb/liLcgPCBzY3J1YmJpbmdcLWJydXNoOwor5pyN5b6eIDwgb2JleVwtXChhblwtb3JkZXJcKTsKK+aWveihjCA8IHRvXC1wdXRcLWluXC1wbGFjZTsKK+iOq+WwvOWNoeiQiua6q+aWr+WfuiA8IG1vbmljYVwtbGV3aW5za3k7Civmlofmm7jomZXnkIYgPCB3b3JkXC1wcm9jZXNzaW5nOwor572w5qy+IDwgXChpbXBvc2VcLWFcKVwtZmluZTsKK+mbjOmbhCA8IG1hbGVcLWFuZFwtZmVtYWxlOwor6YKK6Z+zIDwgbGF0ZXJhbFwtXChzb3VuZFwpOwor5q+N6KaqIDwgbW90aGVyXC1cKGZvcm1hbFwpOwor5pyJ6IGv57mrIDwgdG9cLWJlXC1jb25uZWN0ZWQ7Civno4Hnm6QgPCBcKGNvbXB1dGVyXClcLWRpc2s7CivpoJDpmLLmjqrmlr0gPCBwcm90ZWN0aXZlXC1zdGVwOwor56Sm5qWtIDwgbWluaW5nXC1pbmR1c3RyeTsKK+WFrOeEtuihqOekuiA8IHRvXC1zdGF0ZVwtb3Blbmx5Owor5rWB5aSxIDwgYmVcLWRyYWluZWRcLWF3YXk7CivlvJXotbcgPCB0b1wtZ2l2ZVwtcmlzZVwtdG87Civwo460IDwgc3R1bXBcLW9mXC1hXC10cmVlOwor6K2J54mpIDwgZXhoaWJpdFwtXChsZWdhbFwpOwor57ir6KOcIDwgZGFyblwtXChjbG90aGluZ1wpOwor57eo6YG4IDwgc2VsZWN0XC1hbmRcLWVkaXQ7CivosqDlgrXnuo3nuo0gPCBoZWF2aWx5XC1pblwtZGVidDsKK+WvqeWIpOmVtyA8IHByZXNpZGluZ1wtanVkZ2U7CivkuIrlrbggPCB0b1wtZ29cLXRvXC1zY2hvb2w7CivpoLvluLYgPCBmcmVxdWVuY3lcLXJhbmdlOwor5pS/6KaLIDwgcG9saXRpY2FsXC12aWV3czsKK+aCsuWYhiA8IHNpZ2hcLW1vdXJuZnVsbHk7CivljYrnlJ8gPCBoYWxmXC1hXC1saWZldGltZTsKK+WNmueJqSA8IG5hdHVyYWxcLXNjaWVuY2U7CivntpPmv5/pq5TliLYgPCBlY29ub21pY1wtc3lzdGVtOwor5LiN6YGO54i+54i+IDwgbWVyZWx5XC1tZWRpb2NyZTsKK+ebnOeJiOiAhSA8IHNvZnR3YXJlXC1waXJhdGU7CivlpKfpg6jku70gPCBcKGluXClcLWxhcmdlXC1wYXJ0Owor5rWB5oSf55eF5q+SIDwgaW5mbHVlbnphXC12aXJ1czsKK+mDteelqCA8IFwocG9zdGFnZVwpXC1zdGFtcDsKK+aBsOWlvSA8IGFzXC1pdFwtdHVybnNcLW91dDsKK+awo+a6qyA8IGFpclwtdGVtcGVyYXR1cmU7Civnn67og5YgPCBzaG9ydFwtYW5kXC1zdG91dDsKK+iqnuezuyA8IGxhbmd1YWdlXC1zeXN0ZW07CivororlvaIgPCBiZVwtb3V0XC1vZlwtc2hhcGU7CivljZfmtbcgPCBzb3V0aFwtY2hpbmFcLXNlYTsKK+WGt+awo+apnyA8IGFpclwtY29uZGl0aW9uZXI7Civnvo7lhYMgPCBhbWVyaWNhblwtZG9sbGFyOwor5LiW5Lq6IDwgXChjb21tb25cKVwtcGVvcGxlOwor5ZCN5ZauIDwgbGlzdFwtXChvZlwtbmFtZXNcKTsKK+mbu+ejgSA8IGVsZWN0cm9tYWduZXRpYzsKK+awkeasiiA8IGNpdmlsXC1saWJlcnRpZXM7Civmk5roqqogPCBpdFwtaXNcLXNhaWRcLXRoYXQ7Civljp/mgKcgPCBvcmlnaW5hbFwtbmF0dXJlOwor6KGb55Sf5a6Y5ZOhIDwgaGVhbHRoXC1vZmZpY2lhbDsKK+i6hSA8IHdhbGtcLWNhcmVmdWxseTsKK+W3tCA8IGdyZWF0bHlcLWRlc2lyZTsKK+acnyA8IHBlcmlvZFwtb2ZcLXRpbWU7Civlj7ggPCB0YWtlXC1jaGFyZ2VcLW9mOwor55SlIDwgc2lzdGVyJydzXC1jaGlsZDsKK+WxjyA8IGZvbGRpbmdcLXNjcmVlbjsKK+eLkCA8IHNwZWNpZXNcLW9mXC1mb3g7CivmsYkgPCBjaGluZXNlXC1wZW9wbGU7CivlprkgPCB5b3VuZ2VyXC1zaXN0ZXI7CivkvIEgPCBwbGFuXC1hXC1wcm9qZWN0Owor6KWWIDwgb3V0ZXJcLWdhcm1lbnRzOwor5aOBIDwgcGFydGl0aW9uXC13YWxsOwor6Z+mIDwgdGFubmVkXC1sZWF0aGVyOwor5r2wIDwgZmxvb2RpbmdcLXJpdmVyOwor54+gIDwgcHJlY2lvdXNcLXN0b25lOwor6ZSLIDwgcG9pbnRcLW9mXC1zcGVhcjsKK+S/lyA8IHNvY2lhbFwtY3VzdG9tczsKK+aqkCA8IGVhdmVzXC1vZlwtaG91c2U7CivpqpEgPCByaWRlXC1ob3JzZWJhY2s7Civlh70gPCBjb3JyZXNwb25kZW5jZTsKK+mtjyA8IGtpbmdkb21cLW9mXC13ZWk7CivmnpogPCBzdGFsa1wtb2ZcLXNocnViOwor5LuyIDwgbWlkZGxlXC1icm90aGVyOwor55CzIDwgYmVhdXRpZnVsXC1qYWRlOwor5YeRIDwgcGllY2VcLXRvZ2V0aGVyOwor6YOBIDwgc3dlZXRcLXNtZWxsaW5nOwor6IqvIDwgcGl0aFwtZnJvbVwtcnVzaDsKK+e4niA8IHdoaXRlXC1yYXdcLXNpbGs7Civml6wgPCB0ZW5cLWRheVwtcGVyaW9kOwor57a6IDwgZmluZVwtdGhpblwtc2lsazsKK+WmqCA8IGludGVyZmVyZVwtd2l0aDsKK+mqhCA8IHNwaXJpdGVkXC1ob3JzZTsKK+aOtCA8IGJveFwtb25lJydzXC1lYXJzOwor5ZevIDwgZmluYWxcLXBhcnRpY2xlOwor5bKtIDwgbW91bnRhaW5cLXJpZGdlOwor5rmYIDwgaHVuYW5cLXByb3ZpbmNlOwor6YqDIDwgYW5jaWVudFwtd2VhcG9uOwor6ZOuIDwgY2xhbmdpbmdcLXNvdW5kOwor6I65IDwgbHVzdGVyXC1vZlwtZ2VtczsKK+WDuyA8IG91dFwtb2ZcLXRoZVwtd2F5Owor5ri6IDwgZW5kbGVzc2x5XC1sb25nOwor5L2jIDwgY29tbWlzc2lvblwtZmVlOwor5ZGbIDwgY2hva2VcLWJ5XC1zbW9rZTsKK+WHsCA8IGZlbWFsZVwtcGhvZW5peDsKK+mXuiA8IHNtYWxsXC1lbnRyYW5jZTsKK+e8gCA8IHBhdGNoXC10b2dldGhlcjsKK+eSiyA8IGphZGVcLXBsYXl0aGluZzsKK+aLtCA8IGJpbmRcLXdpdGhcLXJvcGU7Civnp6cgPCByaWNlXC1zZWVkbGluZ3M7CivolYMgPCBmb3JlaWduXC10aGluZ3M7CivphIIgPCBodWJlaVwtcHJvdmluY2U7Civmo7EgPCBzcXVhcmVkXC10aW1iZXI7CivmopcgPCBzdGVtXC1vZlwtZmxvd2VyOwor6I+xIDwgd2F0ZXJcLWNoZXN0bnV0Owor6ZWRIDwgcG91bmRcLXN0ZXJsaW5nOwor5qCpIDwgc3BlY2llc1wtb2ZcLW9hazsKK+eSniA8IHVucG9saXNoZWRcLWdlbTsKK+mbryA8IGNsb3VkXC1wYXR0ZXJuczsKK+iutyA8IHNsb3dcLW9mXC1zcGVlY2g7Civni7AgPCBmaWVyY2VcLWxvb2tpbmc7Civls6YgPCBtb3VudGFpblwtcmFuZ2U7CivmuYMgPCBzb3VuZFwtb2ZcLXdhdmVzOwor6J2XIDwga2luZFwtb2ZcLWxvY3VzdDsKK+ealiA8IGFuaHVpXC1wcm92aW5jZTsKK+mFiyA8IGNoaWVmXC1vZlwtdHJpYmU7Civlo5EgPCBiZWRcLW9mXC10b3JyZW50Owor57OvIDwgZ2x1dGlub3VzXC1yaWNlOwor56i3IDwgZ29kXC1vZlwtY2VyZWFsczsKK+WhviA8IHZpbGxhZ2VcLXNjaG9vbDsKK+eLqSA8IHdpbnRlclwtaHVudGluZzsKK+aIjSA8IGRlZmVuZFwtYm9yZGVyczsKK+eSgCA8IGx1c3RyZVwtb2ZcLWdlbXM7CivniY0gPCB3cml0aW5nXC10YWJsZXQ7CivplYwgPCBlbmdyYXZpbmdcLXRvb2w7Civppa8gPCBmYXJld2VsbFwtcGFydHk7CivpuYIgPCBjaGluZXNlXC1vcmlvbGU7Civlm6EgPCBvbmUnJ3NcLWRhdWdodGVyOwor5rqfIDwgZHJpenpsaW5nXC1yYWluOwor6ZSPIDwga2luZFwtb2ZcLXJhcGllcjsKK+WxmSA8IHRvXC1lYXNlXC1uYXR1cmU7CivnjrMgPCB0b3J0b2lzZVwtc2hlbGw7Civnka0gPCBhXC1raW5kXC1vZlwtamFkZTsKK+adiCA8IGZvcmtcLW9mXC1hXC10cmVlOwor5YyQIDwgZmFsbFwtcHJvc3RyYXRlOwor56CjIDwgYVwtc3RvbmVcLXJvbGxlcjsKK+mToiA8IHVuaXRcLW9mXC13ZWlnaHQ7CivpqoggPCB0ZWFtXC1vZlwtaG9yc2VzOwor5ZmxIDwgbGF1Z2hcLWhlYXJ0aWx5Owor55uxIDwgd2lkZVwtb3BlblwtZXllczsKK+iAhCA8IGVsZGVybHlcLXBlcnNvbjsKK+amlCA8IGJldGVsXC1udXRcLXRyZWU7Civor6QgPCB0b1wtZXhwb3N0dWxhdGU7Civona4gPCB2ZW5vbW91c1wtc25ha2U7Civpoo0gPCByaXZlclwtaW5cLWFuaHVpOwor5qWdIDwgbWVsaWFcLWphcG9uaWNhOwor6J28IDwgYVwtbW9sZVwtY3JpY2tldDsKK+iNqiA8IGFyb21hdGljXC1ncmFzczsKK+WojCA8IGJyb3RoZXInJ3NcLXdpZmU7CivmmbcgPCBzaGFkb3dzXC1vZlwtc3VuOwor5Ze1IDwgdXNlZFwtZm9yXC1zb3VuZDsKK+i4hSA8IHRvXC13YWxrXC1hcm91bmQ7Civmj4YgPCBwcmltZVwtbWluaXN0ZXI7CivnjJUgPCBtYWNhY3VzXC1tb25rZXk7Civljp0gPCBjdXRcLW9yXC1lbmdyYXZlOwor6JGaIDwgbXVsYmVycnlcLWZydWl0Owor6ICSIDwgaGFuZGxlXC1vZlwtcGxvdzsKK+S/hSA8IG9ybmFtZW50YWxcLWNhcDsKK+iPvSA8IGJlYW5zXC1hbmRcLXBlYXM7Civpnq8gPCBzYWRkbGVcLWJsYW5rZXQ7CivpvJAgPCBpbmNlbnNlXC10cmlwb2Q7CivosLAgPCBhY2N1c2VcLWZhbHNlbHk7CivpqrEgPCBqb2ludFwtb2ZcLWJvbmVzOwor6KymIDwgdFwtc3BlYWtcLXNvZnRseTsKK+ejtCA8IHN0ZXBzXC1vblwtbGVkZ2U7CivlqbogPCBuYW1lXC1vZlwtYVwtc3RhcjsKK+WgjSA8IHNpZGVcLW9mXC1icmlkZ2U7CivmoasgPCBob3JzZVwtY2hlc3RudXQ7CivmvLYgPCBpbmRlY2lwaGVyYWJsZTsKK+WtpSA8IG9uZScnc1wtY2hpbGRyZW47CivmurEgPCByaXZlclwtaW5cLWhlbmFuOwor6bulIDwgdGF0dG9vaW5nXC1mYWNlOwor6LqQIDwgdG9cLXN0cmlkZVwtb3ZlcjsKK+i5ryA8IHBhd3NcLW9mXC1hbmltYWw7Civnm40gPCB3aGF0XD9cLXdoeVwtbm90XD87CivmuoYgPCByaXZlclwtaW5cLWh1bmFuOwor56OyIDwgdHJpZGFjbmFcLWdpZ2FzOwor5pidIDwgYVwtZHVhbFwtcHJvbm91bjsKK+afvSA8IHR5cGVcLW9mXC13aWxsb3c7CivnvKwgPCBwYXR0ZXJuZWRcLXNpbGs7CivpqbogPCBtb3VudGVkXC1lc2NvcnQ7CivpmIogPCBnYXRlXC1vZlwtaGVhdmVuOwor6I2pIDwgYVwta2luZFwtb2ZcLXdlZWQ7Civoio4gPCBhXC1raW5kXC1vZlwtaGVyYjsKK+mLiCA8IHNpbHZlclwtcGxhdGluZzsKK+m+hSA8IHRlZXRoXC1wcm90cnVkZTsKK+aZoSA8IGxhdGVcLWFmdGVybm9vbjsKK+aqoCA8IHN0YW5kXC1mb3JcLWxhbXA7CivpgK0gPCB0b1wtZXNjYXBlXC1mcm9tOwor5pON6KqyIDwgbWlsaXRhcnlcLWRyaWxsOwor5LyK55S45ZySIDwgZ2FyZGVuXC1vZlwtZWRlbjsKK+aIkOWToeWciyA8IG1lbWJlclwtY291bnRyeTsKK+WFt+mrlOWVj+mhjCA8IGNvbmNyZXRlXC1pc3N1ZTsKK+WNlOacgyA8IGFuXC1hc3NvY2lhdGlvbjsKK+aWh+eJqSA8IGN1bHR1cmFsXC1yZWxpYzsKK+mAmuioiiA8IGNvbW11bmljYXRpb25zOwor5Y2x5oi/IDwgZGVjcmVwaXRcLWhvdXNlOwor54m55belIDwgc2VjcmV0XC1zZXJ2aWNlOwor6Zu754eIIDwgZWxlY3RyaWNcLWxpZ2h0Owor6Yej6a2a6Ie6IDwgZGlhb3l1XC1pc2xhbmRzOwor5YyX5qW1IDwgdGhlXC1ub3J0aFwtcG9sZTsKK+ikh+mfu+avjSA8IGNvbXBvdW5kXC1maW5hbDsKK+mgkOS7mCA8IHBheVwtaW5cLWFkdmFuY2U7CivlnIvpmLLpoJDnrpcgPCBkZWZlbmNlXC1idWRnZXQ7CivmrrrmsKMgPCBtdXJkZXJvdXNcLWxvb2s7Civno4HloLQgPCBtYWduZXRpY1wtZmllbGQ7Civoo4HmuJvou43lgpkgPCBhcm1zXC1yZWR1Y3Rpb247CivniZnluoogPCBhbHZlb2xhclwtcmlkZ2U7Civlj4PliqAgPCB0b1wtcGFydGljaXBhdGU7CivmsJHmhI8gPCBwdWJsaWNcLW9waW5pb247Civlh7rlj6PllYblk4EgPCBleHBvcnRcLXByb2R1Y3Q7CivlvoDml6UgPCBpblwtZm9ybWVyXC1kYXlzOwor5YuY5risIDwgdG9cLWludmVzdGlnYXRlOwor5Yaw6YeLIDwgXChvZlwtbWlzZ2l2aW5nczsKK+Wkp+aokyA8IGxhcmdlXC1idWlsZGluZzsKK+aUuemdqemAsueoiyA8IHJlZm9ybVwtcHJvY2VzczsKK+WFqOeQg+izh+ioiue2siA8IHdvcmxkXC13aWRlXC13ZWI7CivoloTog47nk7flmaggPCBlZ2dzaGVsbFwtY2hpbmE7CivmgKrkurogPCBzdHJhbmdlXC1wZXJzb247Civnh5/mpa0gPCB0b1wtZG9cLWJ1c2luZXNzOwor5aGR6IagIDwgcGxhc3RpY1wtY2VtZW50Owor5pma5LiKIDwgaW5cLXRoZVwtZXZlbmluZzsKK+aVo+atpSA8IHRvXC10YWtlXC1hXC13YWxrOwor6K2Y5YilIDwgdG9cLWRpc3Rpbmd1aXNoOwor5bmA5aSq6ZW3IDwgb3ZlcnNpemVcLWZyYW1lOwor5pO66JWp5ZCK55KwIDwgc3dpbmdpbmdcLXJpbmdzOwor5YWo55CD5rCj5YCZIDwgZ2xvYmFsXC1jbGltYXRlOwor5aSx5o6nIDwgb3V0XC1vZlwtY29udHJvbDsKK+aVuOaciCA8IHNldmVyYWxcLW1vbnRoczsKK+W+gOW+qSA8IHRvXC1yZWNpcHJvY2F0ZTsKK+WwjeWkluaUv+etliA8IGZvcmVpZ25cLXBvbGljeTsKK+mdtuWgtCA8IHNob290aW5nXC1yYW5nZTsKK+ezlumGiyA8IHN3ZWV0XC1hbmRcLXNvdXI7CivkvLTnlJ/msKMgPCBhc3NvY2lhdGVkXC1nYXM7CivluLPomZ8gPCBhY2NvdW50XC1udW1iZXI7CivniKrlrZAgPCBcKGFuaW1hbCcnc1wpXC1wYXc7CivliKXnrqEgPCBub1wtbWF0dGVyXC1cKHdobzsKK+mAsuihjOmAmuS/oSA8IHRvXC1jb21tdW5pY2F0ZTsKK+WIqOeoiyA8IHBsYW5pbmdcLWxlbmd0aDsKK+e0oOiPnCA8IHZlZ2V0YWJsZVwtZGlzaDsKK+S4jeWSjuaXouW+gCA8IG5vdFwtY2Vuc3VyZVwtc2I7Civplovou4ogPCB0b1wtZHJpdmVcLWFcLWNhcjsKK+eFmeeBqyA8IHNtb2tlXC1hbmRcLWZpcmU7CivovYnpgYsgPCB0cmFuc3BvcnRhdGlvbjsKK+W3oeitpiA8IHBvbGljZVwtb2ZmaWNlcjsKK+agoeWckue2sue1oSA8IGNhbXB1c1wtbmV0d29yazsKK+aVuOS9jeS/oeiZnyA8IGRpZ2l0YWxcLXNpZ25hbDsKK+aUvuaYoCA8IHNob3dcLVwoYVwtbW92aWVcKTsKK+eJqeeQhuWxpCA8IHBoeXNpY2FsXC1sYXllcjsKK+iBr+WQiOWciyA8IHVuaXRlZFwtbmF0aW9uczsKK+ijvemAoCA8IHRvXC1tYW51ZmFjdHVyZTsKK+WIqeeOhyA8IGludGVyZXN0XC1yYXRlczsKK+iLseWci+S6uiA8IGJyaXRpc2hcLXBlcnNvbjsKK+eUn+mVt+a/gOe0oCA8IGdyb3d0aFwtaG9ybW9uZTsKK+eZveeGseWMliA8IHR1cm5cLXdoaXRlXC1ob3Q7CivlvLHlsI8gPCBzbWFsbFwtYW5kXC13ZWFrOwor5pWd5bGjIDwgd29yblwtb3V0XC1zaG9lczsKK+WNgeS4gOaciCA8IGVsZXZlbnRoXC1tb250aDsKK+aMh+aPruS4reW/gyA8IGNvbW1hbmRcLWNlbnRlcjsKK+efruWtkCA8IGFcLXNob3J0XC1wZXJzb247Civljp/lrZDmoLggPCBhdG9taWNcLW51Y2xldXM7CivmiorlhYTlvJ8gPCBzd29yblwtYnJvdGhlcnM7CivpgJ/msbogPCBxdWlja1wtZGVjaXNpb247Civpl5znqIUgPCBcKGN1c3RvbXNcKVwtZHV0eTsKK+eZveiYhyA8IGNvbW1vblwtcGVyaWxsYTsKK+avlOWAvCA8IHNwZWNpZmljXC12YWx1ZTsKK+mbu+ipsee3mui3ryA8IHRlbGVwaG9uZVwtbGluZTsKK+WfuuedoyA8IGplc3VzXC1cKGNocmlzdFwpOwor5o6i6LevIDwgdG9cLWZpbmRcLWFcLXBhdGg7CivpgZnmjqcgPCByZW1vdGVcLWNvbnRyb2w7CivljJfmlpfmmJ8gPCB0aGVcLWJpZ1wtZGlwcGVyOwor6ZaL546p56yRIDwgdG9cLXBsYXlcLWFcLWpva2U7CivpuI4gPCB0aGVcLW1hbmdvXC1iaXJkOwor6baXIDwgYVwta2luZFwtb2ZcLWhhd2s7Civku6XlpKrntrLntaHluYAgPCBldGhlcm5ldFwtZnJhbWU7CivpgZnmhJ8gPCByZW1vdGVcLXNlbnNpbmc7Civnmb3oibIgPCB3aGl0ZVwtXChjb2xvdXJcKTsKK+mupyA8IHRoZVwtc2hlYXRcLWZpc2g7CivmkqXmrL4gPCBhbGxvY2F0ZVwtZnVuZHM7CivprJggPCBiZWF1dGlmdWxcLWhhaXI7CivprJcgPCBoZWFkXC1vcm5hbWVudHM7Civlu6Dlt6UgPCBmYWN0b3J5XC13b3JrZXI7Civoqp7msKPliqnoqZ4gPCBtb2RhbFwtcGFydGljbGU7Civpq4YgPCBzaG91bGRlclwtYmxhZGU7CivmraPlpb0gPCBqdXN0XC1cKGluXC10aW1lXCk7CivntITmm7jkup7oqJggPCBib29rXC1vZlwtam9zaHVhOwor5o6i6KaWIDwgcGF5XC1hXC12aXNpdFwtdG87CivpqIwgPCBhXC1ob3JzZScnc1wtbWFuZTsKK+mkoSA8IHBhc3RyeVwtZmlsbGluZzsKK+mklyA8IGZvb2RcLWluXC10cmlwb2Q7CivlvJXlko4gPCB0YWtlXC10aGVcLWJsYW1lOwor5a+p5Yik5bitIDwganVkZ2VtZW50XC1zZWF0Owor55m957KJ55eFIDwgcG93ZGVyeVwtbWlsZGV3Owor5aOB5aCxIDwgd2FsbFwtbmV3c3BhcGVyOwor5pS55ZaEIDwgdG9cLW1ha2VcLWJldHRlcjsKK+e2k+a/n+acieaViCA8IGNvc3RcLWVmZmVjdGl2ZTsKK+WgheaxuuWQpuiqjSA8IHRvXC1maXJtbHlcLWRlbnk7CivpgKDmiJAgPCB0b1wtYnJpbmdcLWFib3V0Owor5bmr5pyDIDwgc2VjcmV0XC1zb2NpZXR5Owor6ZSqIDwgYVwta2luZFwtb2ZcLXRvb2w7Civmk43lv4MgPCB0b1wtd29ycnlcLWFib3V0Owor6Y+0IDwgdG9cLXBsdWdcLWFcLWhvbGU7CivpjqkgPCBtb3VsdFwtc2FtYXJpdW07Civmm7jlr6vnrKbomZ8gPCB3cml0aW5nXC1zeW1ib2w7Civnmb3nqK4gPCB0aGVcLXdoaXRlXC1yYWNlOwor6Y2GIDwgbWRcLW1lbmRlbGV2aXVtOwor6YupIDwgcG9pbnRcLW9mXC1zd29yZDsKK+mLgyA8IGxvY2tcLWxhbnRoYW51bTsKK+ijnOe8uiA8IGZpbGxcLWFcLXZhY2FuY3k7Civlj6TluIzoh5ggPCBhbmNpZW50XC1ncmVlY2U7Civopb/mrZAgPCB3ZXN0ZXJuXC1ldXJvcGU7CivkuK3lnIvkurogPCBjaGluZXNlXC1wZXJzb247CivpgJXluq0gPCB2ZXJ5XC1kaWZmZXJlbnQ7CivljaHntI3ntq3mi4nniL7op5IgPCBjYXBlXC1jYW5hdmVyYWw7Civoo5zntrQgPCBtZW5kXC1cKGNsb3RoZXNcKTsKK+S4jeefpeatu+a0uyA8IGFjdFwtcmVja2xlc3NseTsKK+ebo+edo+S6uiA8IHN1cGVyaW50ZW5kZW50Owor6ZuG5LitIDwgdG9cLWNvbmNlbnRyYXRlOwor6YCpIDwgdG9cLXJ1blwtcXVpY2tseTsKK+mBsuWIsCA8IHRvXC1hcnJpdmVcLWxhdGU7CivovLYgPCBsaWdodFwtY2FycmlhZ2U7Civms6LnvoXnmoTmtbcgPCB0aGVcLWJhbHRpY1wtc2VhOwor6La5IDwga2lja1wtd2l0aFwtaG9vZjsKK+WgseW+qSA8IG1ha2VcLXJlcHJpc2FsczsKK+ecn+aDhSA8IHJlYWxcLXNpdHVhdGlvbjsKK+ahjOmdouezu+e1sSA8IGRlc2t0b3BcLXN5c3RlbTsKK+adseWNl+S6nuWciyA8IHNvdXRoZWFzdFwtYXNpYTsKK+W3qOa1gSA8IHN0cm9uZ1wtY3VycmVudDsKK+ixoyA8IHBpZ1wtb2ZcLTNcLXllYXJzOwor6LGWIDwgYVwtc2hhY2tsZWRcLXBpZzsKK+mAgOWtuCA8IHRvXC1xdWl0XC1zY2hvb2w7CivoroUgPCBrbm93XC1pblwtZGV0YWlsOwor5buJ5YO5IDwgY2hlYXBseVwtcHJpY2VkOwor5bCP5Z6L5LyB5qWtIDwgc21hbGxcLWJ1c2luZXNzOwor6KmoIDwga2luZFwtb2ZcLWNpY2FkYTsKK+mghuW6j+aVuCA8IG9yZGluYWxcLW51bWJlcjsKK+eXheiZnyA8IHNpY2tcLXBlcnNvbm5lbDsKK+WcmOe1kCA8IFwoaG9sZFwtYVwpXC1yYWxseTsKK+ikiSA8IHNob3J0XC1nYXJtZW50czsKK+Wcjee5niA8IHJldm9sdmVcLWFyb3VuZDsKK+i/keW5tCA8IHJlY2VudFwteWVhclwoc1wpOwor6KGCIDwgdG9cLWJlXC1kZWZlYXRlZDsKK+iggiA8IHBvZGlzbWFcLW1pa2FkbzsKK+ifsyA8IGFcLWtpbmRcLW9mXC1jcmFiOwor6J+tIDwgdmVyeVwtc21hbGxcLWJ1ZzsKK+WAkumWiSA8IHRvXC1nb1wtYmFua3J1cHQ7CivonqwgPCBncnVic1wtaW5cLWZydWl0Owor5Ya35oiwIDwgXCh0aGVcKVwtY29sZFwtd2FyOwor6JyOIDwgbW9zcXVpdG9cLWxhcnZhOwor6LOH5paZ5LuL6Z2iIDwgZGF0YVwtaW50ZXJmYWNlOwor6JmAIDwgbWluY2VkXC1waWNrbGVzOwor6JazIDwgbmFtZVwtb2ZcLWFcLWhlcmI7CivolpggPCBwbGFudGFnb1wtbWFqb3I7Civlg7nnm64gPCBcKG1hcmtlZFwpXC1wcmljZTsKK+iTryA8IG1lZGljaW5hbFwtaGVyYjsKK+iTjyA8IGZydWl0XC1vZlwtcGxhbnQ7CivokaUgPCBydWJ1c1wtcGFsbWF0dXM7Civnl4XohIggPCBhYm5vcm1hbFwtcHVsc2U7CivkuI3mgI7purzmqKMgPCBub3RcLXVwXC10b1wtbXVjaDsKK+a8uOiuiiA8IGdyYWR1YWxcLWNoYW5nZTsKK+iMniA8IGZyYWdyYW50XC1wbGFudDsKK+mdnuW4uOmHjeimgSA8IHZlcnlcLWltcG9ydGFudDsKK+e0gOW/tSA8IHRvXC1jb21tZW1vcmF0ZTsKK+mWi+acgyA8IGhhdmVcLWFcLW1lZXRpbmc7CivphqvlrbjlsIjlrrYgPCBtZWRpY2FsXC1leHBlcnQ7CivoioggPCBibGVhdFwtb2ZcLXNoZWVwOwor5YWI6YCy5rC05bmzIDwgYWR2YW5jZWRcLWxldmVsOwor5Y2A5Z+f57ay6Lev5oqA6KGTIDwgbGFuXC10ZWNobm9sb2d5Owor5YWo5pmvIDwgcGFub3JhbWljXC12aWV3Owor5YiA5Y+JIDwga25pZmVcLWFuZFwtZm9yazsKK+iEpiA8IHVzZWRcLWluXC0nJ2xlZGUnJzsKK+mAo+mOluWPjeaHiSA8IGNoYWluXC1yZWFjdGlvbjsKK+eJueWIpeaEn+isnSA8IHNwZWNpYWxcLXRoYW5rczsKK+S6uuWjveS/nemaqiA8IGxpZmVcLWluc3VyYW5jZTsKK+W4g+W4myA8IGNsb3RoXC1hbmRcLXNpbGs7Civmib7pjKIgPCB0b1wtZ2l2ZVwtY2hhbmdlOwor6KOc5rayIDwgZmx1aWRcLWluZnVzaW9uOwor6LW36bueIDwgc3RhcnRpbmdcLXBvaW50Owor5bCx5piv6KqqIDwgaW5cLW90aGVyXC13b3JkczsKK+WgseWIhiA8IGNhbGxcLXRoZVwtc2NvcmU7CivmlZnogrLnlYwgPCBhY2FkZW1pY1wtd29ybGQ7CivmjLrnq4sgPCB0b1wtc3RhbmRcLWVyZWN0Owor5LiN5bmz562J5qKd57SEIDwgdW5lcXVhbFwtdHJlYXR5Owor5YWr5oiQIDwgZWlnaHR5XC1wZXJjZW50Owor5YWp5omLIDwgZG91YmxlXC10YWN0aWNzOwor57WcIDwgYVwtbWFya2luZ1wtbGluZTsKK+aOoeayuSA8IG9pbFwtZXh0cmFjdGlvbjsKK+e0viA8IHR1cm5zXC1vclwtdHdpc3Q7Civns7ogPCB0b1wtY29sbGFib3JhdGU7Civot6jotoogPCB0b1wtc3RlcFwtYWNyb3NzOwor6LeR6YGTIDwgYXRobGV0aWNcLXRyYWNrOwor5LiN5pWi55W2IDwgeW91XC1mbGF0dGVyXC1tZTsKK+exqyA8IGJhbWJvb1wtdXRlbnNpbDsKK+etrCA8IHJlZWRcLW9mXC1hXC1sb29tOwor5ZaY5LiN6YGO5rCj5L6GIDwgY2Fubm90XC1icmVhdGhlOwor5o+h5ouzIDwgdG9cLW1ha2VcLWFcLWZpc3Q7Civlia/nuL3ntbEgPCB2aWNlXC1wcmVzaWRlbnQ7CivnlJroh7PmlrwgPCBzb1wtbXVjaFwtXCh0aGF0XCk7Civmj6HmiYsgPCB0b1wtc2hha2VcLWhhbmRzOwor56itIDwgc3RhbGtcLW9mXC1ncmFpbjsKK+eyvuW5siA8IGNyYWNrXC1cKHRyb29wc1wpOwor6ZW35b6BIDwgdGhlXC1sb25nXC1tYXJjaDsKK+eXheeXmyA8IHNsaWdodFwtaWxsbmVzczsKK+S4jeW5s+ihoSA8IGRpc2VxdWlsaWJyaXVtOwor56CiIDwgcGlsZVwtb2ZcLXN0b25lczsKK+efiSA8IGFuXC1hbmdyeVwtZ2xhcmU7CivnnbEgPCB0b1wtZ2F6ZVwtc2xvd2x5Owor552vIDwgdG9cLWJlXC1hZ29uaXplZDsKK+iLseWvuCA8IFwoZW5nbGlzaFwpXC1pbmNoOwor55yjIDwgcHJvbWluZW50XC1leWVzOwor5o6h5pS2546HIDwgcmVjb3ZlcnlcLXJhdGlvOwor6Ieq55Sx5YyWIDwgbGliZXJhbGl6YXRpb247CivmqJnlsLogPCBzdXJ2ZXlvcicnc1wtcm9kOwor6Jap6YGU5aeG5L6v6LO95ZugIDwgc2FkZGFtXC1odXNzZWluOwor55K4IDwgamFkZScnc1wtc3RyZWFrczsKK+eSmCA8IGx1c3Rlclwtb2ZcLWphZGU7CivlsIfou40gPCBcKGFybXlcKVwtZ2VuZXJhbDsKK+eOpSA8IG15c3RlcmlvdXNcLWdlbTsKK+eLqCA8IGhhcGFsZVwtamFjY2h1czsKK+WFqeWciyA8IGJvdGhcLWNvdW50cmllczsKK+WFqOWciyA8IGVudGlyZVwtY291bnRyeTsKK+eKqCA8IHBhbnRpbmdcLW9mXC1jb3c7CivkuI3pgannlKggPCBub3RcLWFwcGxpY2FibGU7CivkvYbku6XnkIbmm7ggPCBib29rXC1vZlwtZGFuaWVsOwor54eJIDwgaGVhdFwtd2l0aFwtZmlyZTsKK+eHgCA8IHRvXC1tYWtlXC1hXC1maXJlOwor54aJIDwgXCh5ZWxsb3dcLWNvbG9yXCk7CivovKnlrZAgPCBhbGxcLW9uZScnc1wtbGlmZTsKK+mVt+WfjiA8IHRoZVwtZ3JlYXRcLXdhbGw7CivooajmsbogPCBkZWNpZGVcLWJ5XC12b3RlOwor5oiQ6YO9IDwgY2hlbmdkdVwtXChjaXR5XCk7CivprKXmmbogPCBiYXR0bGVcLW9mXC13aXRzOwor5YWr5Y2DIDwgZWlnaHRcLXRob3VzYW5kOwor5rqbIDwgdG9cLWZvcm1cLWhvbGxvdzsKK+a5sSA8IHNvdW5kXC1vZlwtd2F0ZXI7CivmjbflhYvlhbHlkozlnIsgPCBjemVjaFwtcmVwdWJsaWM7Civnl4XmrbcgPCBtZWRpY2FsXC1yZWNvcmQ7CivmuKIgPCBwbGVhc2FudFwtc291bmQ7CivmtqwgPCB3YXRlcnlcLWV4cGFuc2U7CivnsKHllq7ljJYgPCBzaW1wbGlmaWNhdGlvbjsKK+S8uOmWiyA8IHRvXC1zdHJldGNoXC1vdXQ7CivmtL8gPCBzdGFnbmFudFwtd2F0ZXI7Civov6vkuI3lvpflt7IgPCBoYXZlXC1ub1wtY2hvaWNlOwor6KmV5YO55YiG6aGeIDwgcmFua1wsXC1jbGFzc2lmeTsKK+azgiA8IGNsZWFyXC1hbmRcLWRlZXA7CivmvJTnpLogPCB0b1wtZGVtb25zdHJhdGU7CivmsrcgPCB0b1wtcmVtb3ZlXC1ldmlsOwor5b6e5LqL56CU56m2IDwgdG9cLWRvXC1yZXNlYXJjaDsKK+aurSA8IGFcLXN0aWZmXC1jb3Jwc2U7Civku6Xos73kup7mm7ggPCBib29rXC1vZlwtaXNhaWFoOwor6bm95rmW5Z+OIDwgc2FsdFwtbGFrZVwtY2l0eTsKK+aqliA8IHdpbGRcLXBlYXJcLXRyZWU7Civmqb8gPCBxdWVyY3VzXC1nbGF1Y2E7CivlgrPmkq0gPCB0b1wtZGlzc2VtaW5hdGU7CivlhaXkvI0gPCBlbnRlclwtdGhlXC1hcm15Owor6aaW6YO9IDwgY2FwaXRhbFwtXChjaXR5XCk7Civmpr4gPCBwaWVjZXNcLW9mXC13b29kOwor5qagIDwgY2hpbmVzZVwtcXVpbmNlOwor5qaWIDwgcGFwZXJcLW11bGJlcnJ5Owor5qSqIDwgbWFjaGlsdXNcLW5hbm11Owor5r2U5reoIDwgY2xlYW5zZVwtXChzaW5zXCk7Civmo5AgPCBzcGVjaWVzXC1vZlwteWV3Owor5qKKIDwgc3F1ZWV6ZVwtb3V0XC1vZjsKK+WNiuaVuOS7peS4iiA8IG1vcmVcLXRoYW5cLWhhbGY7Civmn74gPCBzdHJhaWdodFwtZ3JhaW47Civmn4MgPCBldXJ5YVwtamFwb25pY2E7CivoiIzmoLkgPCBiYWNrXC1vZlwtdG9uZ3VlOwor5qqU5qGI5bGs5oCnIDwgZmlsZVwtYXR0cmlidXRlOwor5puPIDwgb25jZVwtdXBvblwtdGltZTsKK+ihjOaUvyA8IGFkbWluaXN0cmF0aW9uOwor6KGA6KO95ZOBIDwgYmxvb2RcLXByb2R1Y3RzOwor5pmiIDwgbGlnaHRcLW9mXC1zdGFyczsKK+Wwj+iBsiA8IGluXC1hXC1sb3dcLXZvaWNlOwor5piwIDwgdmFyXC1vZlwtJyd0b1wtYmUnJzsKK+evoeaUuSA8IHRvXC10YW1wZXJcLXdpdGg7CivmiKroh7MgPCB1cFwtdG9cLVwoYVwtdGltZVwpOwor5pSCIDwgdG9cLWJlYXRcLWFcLWRydW07CivotbfojYkgPCBkcmFmdFwtXChhXC1iaWxsXCk7CivmjKjmiZMgPCB0YWtlXC1hXC1iZWF0aW5nOwor5bGk55CGIDwgc3RyYXRpZmljYXRpb247CivnkIPpnosgPCBhdGhsZXRpY1wtc2hvZXM7CivpjYvosrwgPCBmcmllZFwtZHVtcGxpbmc7Civlh7npnaLpj6EgPCBjb25jYXZlXC1taXJyb3I7Civmjojlkb0gPCB0b1wtZ2l2ZVwtb3JkZXJzOwor6ZaL5b+D5p6cIDwgcGlzdGFjaGlvXC1udXRzOwor5b6e5L6G5rKS5pyJIDwgaGF2ZVx8aGFzXC1uZXZlcjsKK+S7peaWr+W4luiomCA8IGJvb2tcLW9mXC1lc3RoZXI7CivmnIDkvbPliKnnm4ogPCBiZXN0XC1pbnRlcmVzdHM7CivkuJbnlYzoqp4gPCB3b3JsZFwtbGFuZ3VhZ2U7Civmg6HmgKflvqrnkrAgPCB2aWNpb3VzXC1jaXJjbGU7CivmoLjog70gPCBudWNsZWFyXC1lbmVyZ3k7Civmta7pu54gPCBmbG9hdGluZ1wtcG9pbnQ7CivlubEgPCBvZmZpY2lhbFwtZHJlc3M7CivkuI3nnIHkurrkuosgPCBiZVwtdW5jb25zY2lvdXM7Civlt58gPCBhXC13YXRlcnlcLXdhc3RlOwor55m+54Sh6IGK6LO0IDwgYm9yZWRcLXRvXC1kZWF0aDsKK+ihjOaYn+mamyA8IGludGVycGxhbmV0YXJ5Owor5Lit5b+D6KqeIDwgcXVhbGlmaWVkXC13b3JkOwor5Y+D6KyA6ZW3IDwgY2hpZWZcLW9mXC1zdGFmZjsKK+iHquW+niA8IHNpbmNlXC1cKGFcLXRpbWVcKTsKK+ajhOaruyA8IGFiYW5kb25lZFwtYmFieTsKK+eUouasiiA8IHByb3BlcnR5XC1yaWdodDsKK+m9kui8qiA8IFwobWFjaGluZVwpXC1nZWFyOwor5L6154qvIDwgdG9cLWluZnJpbmdlXC1vbjsKK+mGq+WtuOS4reW/gyA8IG1lZGljYWxcLWNlbnRlcjsKK+ihgOWjkyA8IGJsb29kXC1wcmVzc3VyZTsKK+mMhOWDj+apnyA8IHZpZGVvXC1yZWNvcmRlcjsKK+WhlSA8IGFcLWd1c3RcLW9mXC13aW5kOwor5Z+HIDwgbmFtZVwtb2ZcLWJyaWRnZTsKK+WFieS/oeiZnyA8IG9wdGljYWxcLXNpZ25hbDsKK+e2nOWQiOWgseWwjiA8IHN1bW1hcnlcLXJlcG9ydDsKK+WZuSA8IHNvdW5kXC1vZlwtYmVsbHM7CivlmJMgPCBndXJnbGluZ1wtc291bmQ7CivmuJvogqUgPCB0b1wtbG9zZVwtd2VpZ2h0Owor5Luj6KGoIDwgcmVwcmVzZW50YXRpdmU7CivlpKflkIzlsI/nlbAgPCBhbG1vc3RcLXNpbWlsYXI7CivllYwgPCBhbmltYWxcLWRpc2Vhc2U7CivnlavlsZUgPCBhcnRcLWV4aGliaXRpb247CivnlJ/mlYggPCB0b1wtdGFrZVwtZWZmZWN0Owor5qC45q2m5ZmoIDwgbnVjbGVhclwtd2VhcG9uOwor6YGU5LiN5YiwIDwgY2Fubm90XC1hY2hpZXZlOwor5omN5rCjIDwgbGl0ZWFyeVwtdGFsZW50Owor5Y6DIDwgdG9cLWxvb2tcLXVwd2FyZDsKK+WNrSA8IGhpZ2hcLlwtdG9cLXJhaXNlOwor5Y2CIDwgdG9cLWZseVwtcmFwaWRseTsKK+WNkei6rOWxiOevgCA8IGJvd1wtYW5kXC1zY3JhcGU7Civmga3os4DmlrDnpqcgPCBoYXBweVwtbmV3XC15ZWFyOwor5bCI5qyEIDwgc3BlY2lhbFwtY29sdW1uOwor5a2457GNIDwgc2Nob29sXC1yb2xsXChzXCk7CivnpoHpo58gPCBmYXN0XC1cKG5vdFwtZWF0XCk7CivlhYvmnpfpoJMgPCBcKGJpbGxcKVwtY2xpbnRvbjsKK+S8lSA8IGNvbW1vblwtbGFib3JlcjsKK+S6hyA8IGt3dWt5ZWxcLWhhbW1lcjsKK+S2lCA8IHByb21pbmVudFwtZ3VtczsKK+S2kCA8IHRvXC10YWtlXC1icmVhdGg7CivktoAgPCBzb3VuZFwtb2ZcLWRydW1zOwor5LW2IDwgYVwta2luZFwtb2ZcLWZyb2c7CivktYwgPCByZWRkaXNoXC15ZWxsb3c7CivktLQgPCBhXC1raW5kXC1vZlwtY2FrZTsKK+S0qSA8IGFcLWtpbmRcLW9mXC1kZWVyOwor5LSYIDwgYVwta2luZFwtb2ZcLWJpcmQ7Civks7ggPCB0aGVcLXdpbGRcLWdvb3NlOwor5LOrIDwgYVwtc21hbGxcLXBpZ2VvbjsKK+SyoiA8IGFcLWtpbmRcLW9mXC1maXNoOwor5p+Q56iuIDwgc29tZVwta2luZFwtXChvZlwpOwor5LC5IDwgdGhlXC1jdXR0bGVmaXNoOwor5LC0IDwgYVwtd2FmdGluZ1wtZmlzaDsKK+SwoSA8IGFcLWZpZXJjZVwtZ2hvc3Q7CivlsIfmnIMgPCB3aWxsXCxcLWdvaW5nXC10bzsKK+SvmyA8IHRoZVwta25lZVwtYm9uZXM7CivkrrkgPCBhblwtYW5ncnlcLWhvcnNlOwor5K6uIDwgYVwta2luZFwtb2ZcLW11bGU7CivkrbsgPCBhXC1zd2lmdHlcLWhvcnNlOwor5K2tIDwgdGhlXC1lbGRlc3RcLXNvbjsKK+StqSA8IHRvXC1mZWVkXC1hXC1iYWJ5Owor5YmN55Sf5Y+s5ZaaIDwgZm9yZW9yZGluYXRpb247CivkrYEgPCBzdGlua2luZ1wtc21lbGw7CivkrLogPCBzYW1lXC1hc1wtdVwrNGI1MDsKK+SsmCA8IHRoZVwtd2luZFwtYmxvd3M7CivkrJIgPCB0b1wtYmxvd1wtY2hpbGx5Owor6LGO6LW3IDwgaG9sZFwtdXBcLVwoaGlnaFwpOwor57ay6Zqb6Zu76KmxIDwgaW50ZXJuZXRcLXBob25lOwor5KurIDwgaHVtYW5cLXNrZWxldG9uOwor5Kq8IDwgdGhlXC1jaGVla1wtYm9uZTsKK+SqiCA8IGFcLWxlYXRoZXJcLWJlbHQ7CivkqZAgPCB0aWVcLWl0XC10aWdodGx5Owor5KilIDwgYVwtcG91cmluZ1wtcmFpbjsKK+SnpyA8IGhpZ2hcLW1vdW50YWluczsKK+WvtuabuCA8IHRyZWFzdXJlZFwtYm9vazsKK+SmuiA8IG5hbWVcLW9mXC1hXC1oaWxsOwor5KakIDwgc2VlZFwtb2ZcLWdyYWluczsKK+SmkSA8IHdpdGhvdXRcLWFcLWRvb3I7Civkpo8gPCB3aW5nXC1vZlwtYVwtZG9vcjsKK+iBluiqleevgCA8IGNocmlzdG1hc1wtdGltZTsKK+SkliA8IGFcLWtpbmRcLW9mXC13aW5lOwor5KOOIDwgbmFtZVwtb2ZcLWNvdW50eTsKK+eZveS7pOa1tyA8IHRoZVwtYmVyaW5nXC1zZWE7CivkoqggPCB0b1wtd2Fsa1wtc2xvd2x5Owor5KG+IDwgaGlnaFwtY2FydGxvYWRzOwor5KGyIDwgcmltXC1vZlwtYVwtd2hlZWw7CivmkanploDntpMgPCBib29rXC1vZlwtbW9ybW9uOwor5KGJIDwgYVwta2luZFwtb2ZcLWNhcnQ7CivomIvmnpzpm7vohaYgPCBhcHBsZVwtY29tcHV0ZXI7CivknL0gPCBhXC1raW5kXC1vZlwtYmVhbjsKK+ScnCA8IHdvcmRzXC1vZlwtYW5nZXI7Civkm6AgPCB1bmFibGVcLXRvXC10YWxrOwor5ZCD6amaIDwgdG9cLWJlXC1zdGFydGxlZDsKK+SaliA8IG1vdW50YWluXC1kZWl0eTsKK+SahCA8IHRvXC1tYWtlXC1mdW5cLW9mOwor5JmzIDwgc3BpdGluZ1wtZmxhbWVzOwor5JmmIDwgdXBwZXJcLWdhcm1lbnRzOwor5JiiIDwgb2xkXC1hbmRcLXNoYWJieTsKK+SXtyA8IGFcLWtpbmRcLW9mXC13YXNwOwor5JeqIDwgYVwta2luZFwtb2ZcLXdvcm07Civkl5ogPCBlZ2dzXC1vZlwtbWFudGlzOwor5JeSIDwgYVwta2luZFwtb2ZcLWNsYW07CivklrAgPCBhXC1raW5kXC1vZlwtZ25hdDsKK+aSnuaTiuW8j+WNsOihqOapnyA8IGltcGFjdFwtcHJpbnRlcjsKK+SVmiA8IGFcLXN0cmF3XC1iYXNrZXQ7CivklJUgPCBjaGlja2VuXC1icmVhc3Q7CivklIsgPCBhXC1raW5kXC1vZlwtdHJlZTsKK+WwjuW9iCA8IGd1aWRlZFwtbWlzc2lsZTsKK+SUgiA8IHZlZ2V0YWJsZVwtc291cDsKK+a4heeIvSA8IGZyZXNoXC1hbmRcLWNvb2w7Civkk6EgPCBhXC1tZWRpY2FsXC1oZXJiOwor5JKTIDwgdG9cLWRvXC12aW9sZW5jZTsKK+SShyA8IG5hbWVcLW9mXC1hXC1zaGlwOwor5JKFIDwgYmVhdXRpZnVsXC1leWVzOwor5JG2IDwgc3ByaWdodGx5XC1ib2F0Owor5JGrIDwgdG9vbHNcLWZvclwtYm9hdDsKK+SRoyA8IGFcLXNhaWxpbmdcLWJvYXQ7CivkkZwgPCB0b1wtZWF0XC1oZWF2aWx5Owor5LqS6IGvIDwgaW50ZXJjb25uZWN0ZWQ7CivkkJUgPCBvaWxcLWFuZFwtZ3JlYXNlOwor5JCNIDwgZXhjZWxsZW50XC1mb29kOwor5I2hIDwgc21hbGxcLWZpc2hcLW5ldDsKK+SNkSA8IGFcLW5ldFwtb3JcLXNuYXJlOwor5I2NIDwgdW5idXJudFwtYnJpY2tzOwor5ZSx54mHIDwgXCh2aW55bFwpXC1yZWNvcmQ7CivkjLUgPCBsYXBlbFwtYW5kXC1iZWx0Owor5IywIDwgY29ubmVjdGVkXC1zaWxrOwor5IylIDwgdG9cLXNld1wtY2xvdGhlczsKK+SMoSA8IHRvXC13aW5kXC1hcm91bmQ7CivkuozogIUgPCBib3RoXC1cW29mXC10aGVtXF07Civki70gPCBoZW1wZW5cLXNhbmRhbHM7Civki68gPCBjcnVjaWFsXC1wb2ludHM7Civki6IgPCB0b1wtdHdpc3RcLXJvcGVzOwor5Iq8IDwgbWVhc3VyaW5nXC11bml0Owor5omN5a2QIDwgZ2lmdGVkXC1zY2hvbGFyOwor5L615a6zIDwgdG9cLWVuY3JvYWNoXC1vbjsKK+SKqCA8IHN0b3JpbmdcLWdyYWluczsKK+SItyA8IGFcLWJhbWJvb1wtZmVuY2U7CivkiJogPCBhXC1iYW1ib29cLXNob290Owor5LiN6ISb6ICM6LWwIDwgZ2V0XC1yb3VuZFwtZmFzdDsKK+SHqyA8IGJhbWJvb1wtc3BsaW50czsKK+SHhSA8IHRvXC1zdGFuZFwtc3RpbGw7CivkuInovKrou4rkvJUgPCBwZWRpY2FiXC1kcml2ZXI7Civlr7bluqsgPCB0cmVhc3VyZVwtaG91c2U7Civkv53llq4gPCBndWFyYW50ZWVcLXNsaXA7Civpo73ntpPpoqjpnJwgPCB3ZWF0aGVyXC1iZWF0ZW47CivkhaUgPCByaXBlbmluZ1wtY3JvcHM7CivlsI/lrbggPCBwcmltYXJ5XC1zY2hvb2w7Civku5TnlZwgPCBuZXdib3JuXC1hbmltYWw7Civkg7kgPCBqYWRlXC1hbmRcLXN0b25lOwor5IOhIDwgYVwtc21hbGxcLXBlYmJsZTsKK+acrOiJsiA8IG5hdHVyYWxcLWNvbG91cjsKK+SDjyA8IGFcLWtpbmRcLW9mXC1yb2NrOwor5IOMIDwgcm9ja3lcLW1vdW50YWluOwor5L6G5b6AIDwgdG9cLWNvbWVcLWFuZFwtZ287CivkgowgPCBhXC1zaG9ydFwtd2VhcG9uOwor5YWo5b+D5YWo5oSPIDwgaGVhcnRcLWFuZFwtc291bDsKK+SBpCA8IG1vaXN0ZW5lZFwtZXllczsKK+SBjyA8IGZhcnNpZ2h0ZWRuZXNzOwor5IC6IDwgc3F1aW50aW5nXC1leWVzOwor5bel5qWt55qE5beo6aCtIDwgaW5kdXN0cnlcLW1vZ29sOwor472mIDwgcmVjbGFpbWVkXC1sYW5kOwor472lIDwgZmVydGlsZVwtZmllbGRzOwor472LIDwgYVwta2luZFwtb2ZcLXRpbGU7CivjvYQgPCBhblwtZWFydGhlblwtamFyOwor6aGM6LeLIDwgc2hvcnRcLWNvbW1lbnRzOwor47irIDwgY2FzdHJhdGVkXC1idWxsOwor47ikIDwgYnJva2VuXC1sZWF0aGVyOwor47iKIDwgZmllcmNlXC1vZlwtZmlyZTsKK+O2oCA8IHdhdGVyXC1jdXJyZW50czsKK+S4jeinoyA8IG5vdFwtdW5kZXJzdGFuZDsKK+azsOexs+eIvuiqniA8IHRhbWlsXC1sYW5ndWFnZTsKK+O1mCA8IGdyZWF0XC1jdXJyZW50czsKK+aHruaFriA8IFwoZmVlbFwpXC1hbnhpZXR5Owor47S4IDwgc3dpZnRcLWN1cnJlbnRzOwor54qv5LiN6JGXIDwgbm90XC13b3J0aHdoaWxlOwor47SZIDwgd2F0ZXJcLWRyaXBwaW5nOwor47ODIDwgdG9cLXRlbXBlclwtaXJvbjsKK+OyjyA8IGZseWluZ1wtZmVhdGhlcjsKK+S9meaCuCA8IGxpbmdlcmluZ1wtZmVhcjsKK+OxjyA8IHRoZVwtcmlnaHRcLXNpZGU7CivmiJDlsLEgPCBhY2NvbXBsaXNobWVudDsKK+OtuyA8IHRoZVwtY3JhYlwtYXBwbGU7CivkuI3nlKjorJ0gPCB5b3UnJ3JlXC13ZWxjb21lOwor462PIDwgYVwta2luZFwtb2ZcLXdvb2Q7CivjrYQgPCBhXC1raW5nXC1vZlwtdHJlZTsKK+WuueW/jSA8IHRvXC1wdXRcLXVwXC13aXRoOwor46uPIDwgYVwta2luZFwtb2ZcLWZsYWc7Civjq4IgPCB0b1wtY2hvcFwtb3JcLWN1dDsKK+e9t+irliA8IGFiYW5kb25lZFwtaWRlYTsKK+aCo+iZlSA8IGFmZmxpY3RlZFwtcGFydDsKK+OohyA8IHRvXC1zd2VlcFwtY2xlYW47CivjpbogPCB0b1wtYmxvd1wtYVwtZmlyZTsKK+S4jeacn+iAjOmBhyA8IG1lZXRcLWJ5XC1jaGFuY2U7CivjpYkgPCBhXC1saXR0bGVcLWFuZ3J5Owor46WHIDwgdG9cLWJlXC1wZXJ2ZXJzZTsKK+OkviA8IG5vdFwtZG9pbmdcLXdlbGw7CivjpJYgPCB0b1wtaGF2ZVwtd2lzZG9tOwor46OmIDwgYVwtd2luZGluZ1wtcGF0aDsKK+aetuaniyA8IGluZnJhc3RydWN0dXJlOwor56m05pKtIDwgYnVuY2hcLXBsYW50aW5nOwor5Y2K6Ieq5YuVIDwgc2VtaVwtYXV0b21hdGljOwor46GcIDwgcmFnZ2VkXC1jbG90aGVzOwor5oe35a2VIDwgdG9cLWJlXC1wcmVnbmFudDsKK+OgqCA8IG1pc3R5XC1tb3VudGFpbjsKK+OgoSA8IGhpZ2hcLWFuZFwtbG9mdHk7Civjn78gPCBoaWdoXC1hbmRcLXN0ZWVwOwor6IG35qWtIDwgam9iXC1vY2N1cGF0aW9uOwor5YWn6JKZ5Y+kIDwgaW5uZXJcLW1vbmdvbGlhOwor6YCA5LyR6YeRIDwgcmV0aXJlbWVudFwtcGF5Owor55WZ6KiA57C/IDwgdmlzaXRvcicnc1wtYm9vazsKK+OeqSA8IG1vdW50YWluXC12YXBvcjsKK+OelyA8IHRoZVwtbWFsZVwtb3JnYW47Civku7vmnJ8gPCB0ZXJtXC1vZlwtb2ZmaWNlOwor456KIDwgdW5hYmxlXC10b1wtd2FsazsKK+OdsCA8IHVuYWJsZVwtdG9cLW1lZXQ7CivjnZsgPCBhaGFsdGluZ1wtcGxhY2U7CivjnKQgPCBmb29saW5nXC1hcm91bmQ7CivjnJEgPCBhblwtb2xkZXJcLXdvbWFuOwor6L+R5LmO5ZCM5q2lIDwgcGxlc2lvY2hyb25vdXM7Civjm6kgPCBzaXN0ZXJzXC1pblwtbGF3Owor45uCIDwgd2Vha1wtYW5kXC1zbWFsbDsKK+OagyA8IHRvXC10YWtlXC1hXC1oaW50Owor45m3IDwgbG93XC1seWluZ1wtYXJlYTsKK+S4jeiIiCA8IG91dFwtb2ZcLWZhc2hpb247CivjlqIgPCB0b1wtcmVqZWN0XC1mb29kOwor45WkIDwgYVwtcHJvdWRcLXRlbXBlcjsKK+eQg+ajkiA8IFwoYmFzZWJhbGxcKVwtYmF0Owor45SZIDwgZ3JlYXRcLXN0cmVuZ3RoOwor45KbIDwgdG9cLXN0YW5kXC1hbG9uZTsKK+OSgCA8IGRvXC1ub3RcLWZlYXJcLXRvOwor6LOH5qC8IDwgcXVhbGlmaWNhdGlvbnM7CivmnbHmtbcgPCBlYXN0XC1jaGluYVwtc2VhOwor5q275Lqh546HIDwgbW9ydGFsaXR5XC1yYXRlOwor5ZOl5pys5ZOI5qC5IDwgY29wZW5oYWdlblwtXD9cP1w/Owor5p2x5q2QIDwgZWFzdGVyblwtZXVyb3BlOwor5Lu75oaRIDwgbm9cLW1hdHRlclwtd2hhdDsKK+S7iuacnSA8IGF0XC10aGVcLXByZXNlbnQ7CivkvZzlk4EgPCB3b3Jrc1wtXChvZlwtYXJ0XCk7CivmhovmgrYgPCBmZWVsXC1vcHByZXNzZWQ7Civpo7zmp70gPCBmZWVkaW5nXC10cm91Z2g7Civorabou4ogPCBwb2xpY2VcLXZlaGljbGU7Civlr5LlhrcgPCBjb2xkXC1cKGNsaW1hdGVcKTsKK+WTiOipsuabuCA8IGJvb2tcLW9mXC1oYWdnYWk7Civlronlpb0gPCBzYWZlXC1hbmRcLXNvdW5kOwor5ray5pm2IDwgbGlxdWlkXC1jcnlzdGFsOwor5Y+D6KeAIDwgdG9cLWxvb2tcLWFyb3VuZDsKK+mYv+S8j+S8veW+t+e+heWumuW+iyA8IGF2b2dhZHJvJydzXC1sYXc7Civmk7rmlKTlrZAgPCBzZXRcLXVwXC1hXC1zdGFsbDsKK+WPr+iDvSA8IG1pZ2h0XC1cKGhhcHBlblwpOwor6aaW5YWIIDwgZmlyc3RcLVwob2ZcLWFsbFwpOwor55Ge5aOr5Lq6IDwgc3dpc3NcLVwocGVyc29uXCk7Civmr4/nq6/lj6Plg7nmoLwgPCBwcmljZVwtcGVyXC1wb3J0Owor5ray5oWLIDwgbGlxdWlkXC1cKHN0YXRlXCk7CivlrZXlqaYgPCBwcmVnbmFudFwtd29tYW47CivkuZjms5UgPCBtdWx0aXBsaWNhdGlvbjsKK+W3ruS4jeWkmiA8IGFsbW9zdFwsXC1uZWFybHk7Civlrprlg7kgPCB0b1wtc2V0XC1hXC1wcmljZTsKK+aLrOW8p+ijoSA8IGluXC1wYXJlbnRoZXNlczsKK+aal+eusSA8IGNhbWVyYVwtYmVsbG93czsKK+a4m+WIkSA8IHJlZHVjZVwtcGVuYWx0eTsKK+eZvuexs+izvei3kSA8IDEwMFwtbWV0cmVcLWRhc2g7Civkv6HomZ/oh7ogPCBzaWduYWxcLXN0YXRpb247CivkuJbnlYzkuIogPCBcKG9mXC10aGVcKVwtd29ybGQ7Civoqr/mn6XloLHlkYogPCBtZW1vaXJcLFwtcmVwb3J0Owor5ZyT54+g562GIDwgYmFsbFwtcG9pbnRcLXBlbjsKK+S4reatkCA8IGNlbnRyYWxcLWV1cm9wZTsKK+WFqOeQg+awo+WAmeWNh+a6qyA8IGdsb2JhbFwtd2FybWluZzsKK+eKr+e9qiA8IFwoY29tbWl0XClcLWNyaW1lOwor5Lu95YWSIDwgZGVncmVlXCxcLWV4dGVudDsKK+i3keiFv+WFkiA8IHRvXC1ydW5cLWVycmFuZHM7CivkuI3mraPluLjni4Dms4EgPCBhYm5vcm1hbFwtc3RhdGU7CivnibnoibIgPCBjaGFyYWN0ZXJpc3RpYzsKK+S4reaWtyA8IHRvXC1kaXNjb250aW51ZTsKK+enleWtkCA8IGJsaWdodGVkXC1ncmFpbjsKK+S4lueVjOe2k+a/nyA8IGdsb2JhbFwtZWNvbm9teTsKK+acieW+hSA8IG5vdFwteWV0XC1cKGRvbmVcKTsKK+mhjOadkCA8IHN1YmplY3RcLW1hdHRlcjsKK+ekpuaziSA8IG1pbmVyYWxcLXNwcmluZzsKK+mAmueUqOaxvei7iiA8IGdlbmVyYWxcLW1vdG9yczsKK+avm+ihoyA8IFwod29vbFwpXC1zd2VhdGVyOwor6LKs5Lu7IDwgcmVzcG9uc2liaWxpdHk7CivljJfkuqzpgLHloLEgPCBiZWlqaW5nXC1yZXZpZXc7CivljYrogbcgPCBwYXJ0XC10aW1lXC13b3JrOwor5rOi54uA54axIDwgdW5kdWxhbnRcLWZldmVyOwor6aGv5b6XIDwgYXBwZWFyXC1cKHRvXC1iZVwpOwor5LiN5b+NIDwgY2Fubm90XC1iZWFyXC10bzsKK+efpeitmOW6qyA8IGtub3dsZWRnZVwtYmFzZTsKK+a6kOm7nuWcsOWdgCA8IHNvdXJjZVwtYWRkcmVzczsKK+mAmeasoeWNseapnyA8IHByZXNlbnRcLWNyaXNpczsKK+WkmuW3pemBi+S9nCA8IG11bHRpdGhyZWFkaW5nOwor5aq95ZKqIDwgbXVtbXlcLVwobW90aGVyXCk7Civms6LmgakgPCBib25uXC1cKGdlcm1hbnlcKTsKK+aVl+iotCA8IGxvc2VcLWFcLWxhd3N1aXQ7Civpm7vkv6HlsYAgPCBjZW50cmFsXC1vZmZpY2U7Civlo73ooaMgPCBidXJpYWxcLWNsb3RoZXM7Civopb/ljZfkup4gPCBzb3V0aHdlc3RcLWFzaWE7CivkuozmsKfljJbnorMgPCBjYXJib25cLWRpb3hpZGU7Civmk7rpkJggPCBwZW5kdWx1bVwtY2xvY2s7CivmkqXomZ/nm6QgPCB0ZWxlcGhvbmVcLWRpYWw7CivljJfnt68gPCBub3J0aFwtbGF0aXR1ZGU7Civlj4rmoLwgPCB0b1wtcGFzc1wtYVwtdGVzdDsKK+azleW6rSA8IGNvdXJ0XC1cKG9mXC1sYXdcKTsKK+mAmemhniA8IHRoaXNcLWtpbmRcLVwob2ZcKTsKK+e2sue1oeioreioiCA8IG5ldHdvcmtcLWRlc2lnbjsKK+W+jOWFqeiAhSA8IHRoZVwtbGF0dGVyXC10d287CivkuLvkv64gPCBcKHNjaG9vbFwpXC1tYWpvcjsKK+iuiuaIkCA8IHRvXC1jaGFuZ2VcLWludG87Civlu6Dnpq7mi5wgPCBkYXlcLW9mZlwtXCh3b3JrXCk7CivkuI3lkIggPCBub3RcLWNvbmZvcm1cLXRvOwor6ZaL5pS+5byP57O757WxIDwgb3Blblwtc3lzdGVtXChzXCk7CivmlpHnq7kgPCBtb3R0bGVkXC1iYW1ib287CivkuI3lj4ogPCBub3RcLWFzXC1nb29kXC1hczsKK+WIhumhniA8IGNsYXNzaWZpY2F0aW9uOwor5YWp55m+5YSEIDwgdHdlbnR5XC1iaWxsaW9uOwor54Sh6YCj5o6lIDwgY29ubmVjdGlvbmxlc3M7Civph43lu7ogPCByZWNvbnN0cnVjdGlvbjsKK+eMnOisjuWFkiA8IGd1ZXNzXC1hXC1yaWRkbGU7Civoq4vnnIsgPCBwbGVhc2VcLXNlZVwtXC5cLlwuOwor5LqU5bm06KiI5YqDIDwgZml2ZVwteWVhclwtcGxhbjsKK+awq+awoyA8IGh5ZHJvZ2VuXC1cKGdhc1wpOwor5biC5aC057aT5r+fIDwgbWFya2V0XC1lY29ub215Owor5qqU5qGI5Z+36KGMIDwgZmlsZVwtZXhlY3V0aW9uOwor5LqS5YuV6Zu76KaWIDwgaW50ZXJhY3RpdmVcLXR2Owor576O5beu5LqLIDwgYVwtdGVycmlmaWNcLWpvYjsKK+aVuOeoriA8IG51bWVyb3VzXC10eXBlczsKK+WGsOm7niA8IGZyZWV6aW5nXC1wb2ludDsKK+atkOa0suiBr+ebnyA8IGV1cm9wZWFuXC11bmlvbjsKK+iPr+ijlCA8IGV0aG5pY1wtY2hpbmVzZTsKK+S4jeS7gSA8IG5vdFwtYmVuZXZvbGVudDsKK+aUtuiBvSA8IHRvXC1saXN0ZW5cLVwodG9cKTsKK+e7jyA8IGNsYXNzaWNcLXdvcmtzOwor5byfIDwgeW91bmdcLWJyb3RoZXI7Civlu7sgPCBjaXJjbGVcLWFyb3VuZDsKK+WFsyA8IGZyb250aWVyXC1wYXNzOwor5bidIDwgc3VwcmVtZVwtcnVsZXI7CivnlaogPCB0b1wtdGFrZVwtdHVybnM7CivnlaUgPCBhcHByb3hpbWF0ZWx5Owor5YWxIDwgdG9nZXRoZXJcLXdpdGg7CivkuYkgPCByaWdodFwtY29uZHVjdDsKK+WrgiA8IHNpc3RlclwtaW5cLWxhdzsKK+WTpSA8IGVsZGVyXC1icm90aGVyOwor5ammIDwgbWFycmllZFwtd29tZW47CivoqKMgPCB0YWtlXC1sZWF2ZVwtb2Y7Civml48gPCBhXC1mYW1pbHlcLWNsYW47CivlpaogPCB0YWtlXC1ieVwtZm9yY2U7CivnrJQgPCB3cml0aW5nXC1icnVzaDsKK+iityA8IGxpbmVkXC1nYXJtZW50Owor54CsIDwgc3dpZnRcLWN1cnJlbnQ7CivkvK8gPCBvbGRlclwtYnJvdGhlcjsKK+a8siA8IHJpc2VcLWluXC1wcmljZTsKK+ekvCA8IHNvY2lhbFwtY3VzdG9tOwor5ZipIDwgcnVzaGluZ1wtc291bmQ7CivllaMgPCBob2xkXC1pblwtbW91dGg7Civms4ogPCBhbmNob3JcLXZlc3NlbDsKK+ayvyA8IGZvbGxvd1wtY291cnNlOwor5ZKEIDwgbm9pc2VcLW9mXC1yYWdlOwor6I+KIDwgY2hyeXNhbnRoZW11bTsKK+WysyA8IG1vdW50YWluXC1wZWFrOwor5Yy5IDwgYm9sdFwtb2ZcLWNsb3RoOwor6aKHIDwgbGVhblwtb25lXC1zaWRlOwor5pmoIDwgZWFybHlcLW1vcm5pbmc7Civmkp4gPCBrbm9ja1wtYWdhaW5zdDsKK+aEiCA8IG1vcmVcLWFuZFwtbW9yZTsKK+anhyA8IHRpcFwtb2ZcLWFcLXRyZWU7Civpp4UgPCByZWxheVwtc3RhdGlvbjsKK+mlhSA8IHN0ZWFtZWRcLWJyZWFkOwor54K4IDwgdG9cLWZyeVwtaW5cLW9pbDsKK+iEiCA8IGJsb29kXC12ZXNzZWxzOwor57uqIDwgZW5kXC1vZlwtdGhyZWFkOwor6aO8IDwgcmFpc2VcLWFuaW1hbHM7CivmopMgPCBjYXRhbHBhXC1vdmF0YTsKK+iCjCA8IG11c2NsZVwtdGlzc3VlOwor5L2pIDwgYmVsdFwtb3JuYW1lbnQ7CivnvbIgPCBwdWJsaWNcLW9mZmljZTsKK+aQrSA8IGpvaW5cLXRvZ2V0aGVyOwor5qCXIDwgY2hlc3RudXRcLXRyZWU7CivmoZEgPCBtdWxiZXJyeVwtdHJlZTsKK+mehCA8IHRvXC13b3JrXC1oaWRlczsKK+adkyA8IGhhbmRsZVwtb2ZcLWN1cDsKK+S9gyA8IHRlbmFudFwtZmFybWVyOwor6LShIDwgb2ZmZXJcLXRyaWJ1dGU7Civmm4cgPCBiZWNvbWVcLWNsb3VkeTsKK+S6mSA8IGV4dGVuZFwtYWNyb3NzOwor6K+eIDwgYmVhclwtY2hpbGRyZW47CivmmbQgPCBjbGVhclwtd2VhdGhlcjsKK+WhkSA8IG1vZGVsXC1pblwtY2xheTsKK+a1piA8IGJhbmtcLW9mXC1yaXZlcjsKK+exlCA8IGJhbWJvb1wtYmFza2V0Owor5oWOIDwgYWN0XC13aXRoXC1jYXJlOwor6I6JIDwgd2hpdGVcLWphc21pbmU7CivmjZcgPCBtYWtlXC1wcm9ncmVzczsKK+WhjCA8IGZhbGxcLWluXC1ydWluczsKK+erliA8IHBlcnBlbmRpY3VsYXI7CivpmZUgPCBtb3VudGFpblwtcGFzczsKK+aDmiA8IGFic2VudFwtbWluZGVkOwor5reAIDwgc2hhbGxvd1wtd2F0ZXI7Civmt5ggPCB3YXNoXC1pblwtc2lldmU7CivnkbAgPCBleHRyYW9yZGluYXJ5Owor5Z6rIDwgYWR2YW5jZVwtbW9uZXk7CivngbYgPCBraXRjaGVuXC1yYW5nZTsKK+avkyA8IGdpdmVcLWJpcnRoXC10bzsKK+WSpyA8IHN0cmV0Y2hcLW1vdXRoOwor5aWOIDwgc3RyaWRlXC1vZlwtbWFuOwor5rS9IDwgdG9cLWJsZW5kXC13aXRoOwor55G2IDwgcHJlY2lvdXNcLWphZGU7CivpkrAgPCByYXJlXC10cmVhc3VyZTsKK+eRmyA8IGx1c3Rlclwtb2ZcLWdlbTsKK+auiSA8IGRpZVwtZm9yXC1jYXVzZTsKK+WUrCA8IHRvXC1pbnRpbWlkYXRlOwor55iqIDwgc2hyaXZlbGxlZFwtdXA7CivllIYgPCBtYWtlXC1taXNjaGllZjsKK+WymiA8IG1vdW50YWluXC1taXN0Owor5qGmIDwgdHlwZVwtb2ZcLWJpcmNoOwor5rafIDwgZmxvd2luZ1wtd2F0ZXI7Civpo5UgPCBzb3VuZFwtb2ZcLXdpbmQ7CivlnbcgPCBjbG9kXC1vZlwtZWFydGg7CivpkasgPCB1c2VkXC1pblwtbmFtZXM7CivnrIsgPCBiYW1ib29cLXNob290czsKK+iNgyA8IGFyb21hdGljXC1oZXJiOwor6aaEIDwgZHVtcGxpbmdcLXNvdXA7CivnqbkgPCBoaWdoXC1hbmRcLXZhc3Q7CivlvIggPCBjaGluZXNlXC1jaGVzczsKK+mpriA8IGNhcnJ5XC1vblwtYmFjazsKK+iKpSA8IG11c3RhcmRcLXBsYW50Owor54KcIDwgYnJpbGxpYW50XC1yZWQ7CivlspwgPCByb2NrXC1tb3VudGFpbjsKK+e6qyA8IHRocmVhZFwtbmVlZGxlOwor5qGAIDwgY2hpY2tlblwtcm9vc3Q7Civmi64gPCBsYWJvcmluZ1wtaGFyZDsKK+e6pSA8IGluZmVyaW9yXC1zaWxrOwor5b+kIDwgaW5zdWJvcmRpbmF0ZTsKK+m4viA8IGZhYnVsb3VzXC1iaXJkOwor5ZiBIDwgdG9cLWJlXC1ncmlldmVkOwor6L6OIDwgYVwtc3VwcGx5XC1jYXJ0Owor6IqrIDwgZGFwaG5lXC1nZW5rd2E7CivkvKcgPCB2dWxnYXJcLXBlcnNvbjsKK+azoCA8IG5pY2VcLWFuZFwtY29vbDsKK+e4uyA8IGhhbHRlclwtZm9yXC1veDsKK+i4vSA8IHRvXC13YWxrXC1hbG9uZTsKK+i1rSA8IHJlZGRpc2hcLWJyb3duOwor6aKAIDwgdGFsbFwtYW5kXC1zbGltOwor5p+YIDwgYVwtdGhvcm55XC10cmVlOwor6LCUIDwgaG9uZXN0XC1zcGVlY2g7CivpqpMgPCBwaWViYWxkXC1ob3JzZTsKK+W0pyA8IGhpZ2hcLW1vdW50YWluOwor6YWaIDwgY2FyYm9saWNcLWFjaWQ7CivlpKQgPCBkaXN0YW50XC1wbGFjZTsKK+aajCA8IGluXC1vcHBvc2l0aW9uOwor5oCNIDwgdG9cLWJlXC1hc2hhbWVkOwor6LS9IDwgZ2lmdFwtc3VwZXJpb3I7Civmr5YgPCBndWFyZFwtYWdhaW5zdDsKK+i/kyA8IHRvXC1nb1wtdG9cLW1lZXQ7Civmr7UgPCBsb25nXC1mZWF0aGVyczsKK+edmiA8IGNvcm5lclwtb2ZcLWV5ZTsKK+avvSA8IGFcLXNodXR0bGVjb2NrOwor5YOzIDwgbWlub3JpdHlcLW5hbWU7Civovo8gPCBodWJzXC1vZlwtd2hlZWw7Civml4YgPCBmbGFnXC1vcm5hbWVudDsKK+iNhyA8IGFcLXdhdGVyXC1wbGFudDsKK+WNriA8IG1lYXN1cmluZ1wtY3VwOwor6auhIDwgdG9cLXNoZWFyXC10cmVlOwor6bOcIDwgbWFuZGFyaW5cLWZpc2g7CivpvI0gPCBsYXJnZVwtcmVwdGlsZTsKK+esqyA8IHBsYW5rc1wtb2ZcLWJlZDsKK+e8oSA8IGFcLWJyaWRhbFwtdmVpbDsKK+e7qCA8IGNvYXJzZVwtcG9uZ2VlOwor6IqwIDwgd2F0ZXJcLWNhbHRyb3A7CivprYMgPCBkcm91Z2h0XC1kZW1vbjsKK+iIsyA8IHN0ZXJuXC1vZlwtc2hpcDsKK+WxpiA8IHN0cmF3XC1zYW5kYWxzOwor6JOQIDwgc3RyYXdcLWJlZFwtbWF0Owor6YqOIDwgZXllXC1vZlwtYW5cLWF4ZTsKK+mGoyA8IGNhcmJvaHlkcmF0ZXM7Civom5EgPCBhXC1tYXJpbmVcLWNyYWI7CivmpKAgPCB3b29kZW5cLXRhYmxldDsKK+WquCA8IGFuXC11Z2x5XC13b21hbjsKK+mmhyA8IHN0aXJcLWFuZFwtY29vazsKK+eUmSA8IHN1Z2FyXC1wcm9kdWN0Owor6JakIDwgYWxsaXVtXC1iYWtlcmk7CivloaUgPCBkcnlcLWNsYXlcLWx1bXA7CivmqpTmoYjovYnpgIEgPCBmaWxlXC10cmFuc2ZlcjsKK+irvuiyneeIviA8IG5vYmVsXC1cKHByaXplXCk7Civoj7Loj7IgPCB2ZXJ5XC1mcmFncmFudDsKK+aYguaPmiA8IGhpZ2hcLXNwaXJpdGVkOwor5L+d6K2J6YeRIDwgZWFybmVzdFwtbW9uZXk7Civno4HluLYgPCBtYWduZXRpY1wtdGFwZTsKK+ino+iqvyA8IHRvXC1kZW1vZHVsYXRlOwor5YyX5rW3IDwgdGhlXC1ub3J0aFwtc2VhOwor6JaE5YipIDwgc21hbGxcLXByb2ZpdHM7CivmjpLlsbHlgJLmtbcgPCBlYXJ0aFwtc2hha2luZzsKK+aZmuWgsSA8IGV2ZW5pbmdcLXBhcGVyOwor5pif5bqnIDwgY29uc3RlbGxhdGlvbjsKK+a/gOWFieaJk+W8leapnyA8IGxhc2VyXC1wcmludGVyOwor5Yaw6Z6LIDwgc2thdGluZ1wtYm9vdHM7CivmjpvomZ/orYkgPCByZWdpc3RlclwtY2FyZDsKK+W7oOe1siA8IGZpbGF0dXJlXC1zaWxrOwor55+b55u+IDwgY29udHJhZGljdG9yeTsKK+WHuuizoyA8IHRvXC1zZWxsXC1cKG9mZlwpOwor5Yiw6JmVIDwgaW5cLWFsbFwtcGxhY2VzOwor57aT54ef6LK755SoIDwgYnVzaW5lc3NcLWNvc3Q7Civljp/lrZDog70gPCBhdG9taWNcLWVuZXJneTsKK+WPpOS7oyA8IGFuY2llbnRcLXRpbWVzOwor5paw5pyIIDwgY3Jlc2NlbnRcLW1vb247CivntIDlv7XppKggPCBtZW1vcmlhbFwtaGFsbDsKK+WWrumfu+avjSA8IHNpbXBsZVwtZmluYWxzOwor5Y2z5bCHIDwgb25cLXRoZVwtZXZlXC1vZjsKK+WNkeW+riA8IHBldHR5XC1hbmRcLWxvdzsKK+WNseWusyA8IHRvXC1qZW9wYXJkaXplOwor55u05oiq5LqG55W2IDwgcGxhaW5cLXRhbGtpbmc7CivlhrfmiLDku6XlvowgPCBwb3N0XC1jb2xkXC13YXI7CivmnInlj6/og70gPCBpdCcnc1wtcG9zc2libGU7CivliKjoirEgPCB3b29kXC1zaGF2aW5nczsKK+iOqOiPqiA8IGJsYWNrXC1oZW5iYW5lOwor6Kq/5p+lIDwgaW52ZXN0aWdhdGlvbjsKK+e2geiFvyA8IGxlZ1wtd3JhcHBpbmdzOwor5YiX6IiJIDwgXChtYWtlXC1hXClcLWxpc3Q7CivpgannlKggPCBiZVwtYXBwbGljYWJsZTsKK+aRmOiomCA8IHRvXC10YWtlXC1ub3RlczsKK+WFg+mmliA8IGhlYWRcLW9mXC1zdGF0ZTsKK+acquaPkOWPiiA8IG5vdFwtbWVudGlvbmVkOwor5pa55byPIDwgd2F5XC1cKG9mXC1saWZlXCk7Civml6XlpJwgPCBkYXlcLWFuZFwtbmlnaHQ7Civoip3pursgPCBzZXNhbWVcLVwoc2VlZFwpOwor5pys55Sf54eIIDwgYnVuc2VuXC1idXJuZXI7CivniYzlnYogPCBtZW1vcmlhbFwtYXJjaDsKK+W/g+iHn+eXhSA8IGhlYXJ0XC1kaXNlYXNlOwor5YmN55SfIDwgcHJlXC1leGlzdGVuY2U7Civli6LlnKjlv4XooYwgPCBiZVwtaW1wZXJhdGl2ZTsKK+aYh+WAvCA8IHJpc2VcLWluXC12YWx1ZTsKK+WNgeS6lOW5tCA8IGZpZnRlZW5cLXllYXJzOwor57Gz6aOvIDwgXChjb29rZWRcKVwtcmljZTsKK+mEp+Wwj+W5syA8IGRlbmdcLXhpYW9waW5nOwor6L2J6YGTIDwgbWFrZVwtYVwtZGV0b3VyOwor6IiK57SE5YWo5pu4IDwgb2xkXC10ZXN0YW1lbnQ7CivplbfpgJQgPCBsb25nXC1kaXN0YW5jZTsKK+aXpeWJjSA8IHRoZVwtb3RoZXJcLWRheTsKK+W5vuWAi+Wwj+aZgiA8IHNldmVyYWxcLWhvdXJzOwor6YKj6bS75pu4IDwgYm9va1wtb2ZcLW5haHVtOwor57ay57Wh5bGkIDwgbmV0d29ya1wtbGF5ZXI7Civlopzmr4AgPCBcKHBsYW5lXClcLWNyYXNoOwor6ZuZ5omLIDwgcGFpclwtb2ZcLWhhbmRzOwor5ZOl5p6X5aSa5b6M5pu4IDwgMlwtY29yaW50aGlhbnM7CivljZfkup4gPCBzb3V0aGVyblwtYXNpYTsKK+WIiueZuyA8IGNhcnJ5XC1hXC1zdG9yeTsKK+iqh+W8tSA8IHRvXC1leGFnZ2VyYXRlOwor6Zuj5b+YIDwgdW5mb3JnZXR0YWJsZTsKK+WkquWkqiA8IG1hcnJpZWRcLXdvbWFuOwor5pKl55SoIDwgYXBwcm9wcmlhdGlvbjsKK+WvqeWIpOashCA8IGp1ZGdlbWVudFwtYmFyOwor5aKD5rOBIDwgY2lyY3Vtc3RhbmNlczsKK+awkeS6iyA8IGNpdmlsXC1tYXR0ZXJzOwor5aWz5L2jIDwgXChmZW1hbGVcKVwtbWFpZDsKK+S4jeWPr+e8uuWwkSA8IGluZGlzcGVuc2FibGU7Civli5jlr58gPCByZWNvbm5haXNhbmNlOwor57GM6ZuGIDwgY29sbGVjdFwtbW9uZXk7Civmk43mvJQgPCBkZW1vbnN0cmF0aW9uOwor55m96Iqx6IqxIDwgc2hpbmluZ1wtd2hpdGU7Civlu7rnr4nlrbggPCBhcmNoaXRlY3R1cmFsOwor6KaW56qX5Z+65rqWIDwgd2luZG93c1wtYmFzZWQ7Civpm7vpg7XkvY3nva4gPCBlbWFpbFwtYWRkcmVzczsKK+W5u+eHiCA8IGxhdGVyblwtc2xpZGVzOwor56CU56m26aCY5Z+fIDwgcmVzZWFyY2hcLWFyZWE7CivkuK3lnIvlvI8gPCBjaGluZXNlXC1zdHlsZTsKK+WKoOW/qyA8IHRvXC1hY2NlbGVyYXRlOwor5Yaw57OWIDwgY3J5c3RhbFwtc3VnYXI7CivlnIvpmpsgPCBpbnRlcm5hdGlvbmFsOwor5Y2K5aSx5qWtIDwgc2VtaVwtZW1wbG95ZWQ7CivprKXpm54gPCBjb2NrXC1maWdodGluZzsKK+mBjuaZgiA8IG9sZFwtZmFzaGlvbmVkOwor6YCy5o6l5pyN5YuZIDwgYWNjZXNzXC1zZXJ2ZXI7CivpmqjmhI8gPCBhc1wtb25lXC13aXNoZXM7CivlpLHliKkgPCBzdWZmZXJcLWRlZmVhdDsKK+ihqOaxuuasiiA8IHJpZ2h0XC10b1wtdm90ZTsKK+epuumWk+ermSA8IHNwYWNlXC1zdGF0aW9uOwor5pCN6ICXIDwgd2VhclwtYW5kXC10ZWFyOwor55u455W2IDwgZXF1aXZhbGVudFwtdG87CivpgJDmraUgPCBwcm9ncmVzc2l2ZWx5Owor6bWpIDwgb3dsXC1saWtlXC1iaXJkOwor5aSn5YWs5Y+4IDwgbGFyZ2VcLWNvbXBhbnk7CivkuI3oqJjlkI3mipXnpaggPCBzZWNyZXRcLWJhbGxvdDsKK+S6jOasoeWkp+aIsCA8IHdvcmxkXC13YXJcLXR3bzsKK+W5vuasoSA8IHNldmVyYWxcLXRpbWVzOwor5beo57SwIDwgYmlnXC1hbmRcLXNtYWxsOwor5bm+5qijIDwgc2V2ZXJhbFwta2luZHM7CivlpKfkvb8gPCBhblwtYW1iYXNzYWRvcjsKK+e3qOWvqSA8IHJlYWRcLWFuZFwtZWRpdDsKK+W8t+WMliA8IHRvXC1zdHJlbmd0aGVuOwor6YG/5a2VIDwgY29udHJhY2VwdGlvbjsKK+mrgyA8IHNob3VsZGVyXC1ib25lOwor5LiN5YiX6aGb6Ku45bO2IDwgYnJpdGlzaFwtaXNsZXM7CivpqqogPCBjcm9va2VkXC1ib25lczsKK+Wkp+WuuemHjyA8IGhpZ2hcLWNhcGFjaXR5Owor5aSn5LqLIDwgYVwtbWFqb3JcLWV2ZW50Owor5qWK55m+57+wIDwgYnJpZ2hhbVwteW91bmc7CivlpKfllY/poYwgPCBncmVhdFwtcHJvYmxlbTsKK+mmoyA8IGZyYWdyYW50XC1vZG9yOwor5pWZ5Y+LIDwgY2h1cmNoXC1tZW1iZXI7CivlhYnlip/njocgPCBvcHRpY2FsXC1wb3dlcjsKK+mAn+aViCA8IHF1aWNrXC1yZXN1bHRzOwor6aSaIDwgcHJlcGFyZWRcLW1lYXQ7CivmrIrlqIHmgKcgPCBhdXRob3JpdGF0aXZlOwor5Yip5pa8IDwgYmVcLWJlbmVmaWNpYWw7CivliJ3mnJ8gPCBpbml0aWFsXC1zdGFnZTsKK+Wls+aci+WPiyA8IGZlbWFsZVwtZnJpZW5kOwor5Z+65pys5qaC5b+1IDwgYmFzaWNcLWNvbmNlcHQ7CivkuI3lkajlu7YgPCB1bmRpc3RyaWJ1dGVkOwor6Z6uIDwgbGVhdGhlclwtc2hvZXM7CivoqaLllY8gPCBpbnF1aXJlXC1hYm91dDsKK+mcnSA8IGRyb3BzXC1vZlwtcmFpbjsKK+aRgemHpuWFkiA8IHNuYXBcLWZhc3RlbmVyOwor5q275YiRIDwgZGVhdGhcLXBlbmFsdHk7Civpk5YgPCBwZXJzb24nJ3NcLW5hbWU7Civnmb3nmq7mnb4gPCBsYWNlYmFya1wtcGluZTsKK+mMoSA8IGFcLWtpbmRcLW9mXC1wZW47CivlhbXnl54gPCBhcm15XC1yaWZmcmFmZjsKK+WtmOWEsuWZqCA8IG1lbW9yeVwtXCh1bml0XCk7Civosr/mmJPpoIblt64gPCB0cmFkZVwtc3VycGx1czsKK+W9jOi/puabuCA8IGJvb2tcLW9mXC1taWNhaDsKK+mIhCA8IGFcLXdpbmVcLWZsYWdvbjsKK+atpuWZqOezu+e1sSA8IHdlYXBvblwtc3lzdGVtOwor6YetIDwgdGlyZVwtb2ZcLXdoZWVsOwor6YaoIDwgZHJlZ3NcLW9mXC13aW5lOwor6auU6YeNIDwgXChib2R5XClcLXdlaWdodDsKK+eZveegkiA8IHdoaXRlXC1hcnNlbmljOwor5qKF5aGe6L+q5pav5aWU6aazIDwgbWVyY2VkZXNcLWJlbno7Civnm7jmnrYgPCBwaWN0dXJlXC1mcmFtZTsKK+i+oSA8IHJlY3JpbWluYXRpb247CivlrrbnlKjpm7vohaYgPCBob21lXC1jb21wdXRlcjsKK+ePvuS7o+WMliA8IG1vZGVybml6YXRpb247CivovY8gPCBzbGVlcGluZ1wtY2FydDsKK+WFteeHnyA8IG1pbGl0YXJ5XC1jYW1wOwor5Li756ax5paHIDwgbG9yZCcnc1wtcHJheWVyOwor5biC5rCRIDwgY2l0eVwtcmVzaWRlbnQ7Civluq3lnJIgPCBmbG93ZXJcLWdhcmRlbjsKK+i3riA8IGhhc3R5XC13YWxraW5nOwor6L2f54K4IDwgXChkcm9wXC1hXClcLWJvbWI7CivpgY7ljrsgPCBcKGluXC10aGVcKVwtcGFzdDsKK+izriA8IGZhcmV3ZWxsXC1naWZ0Owor6Imm6ImHIDwgbmF2YWxcLXZlc3NlbHM7CivlpKflhaznhKHnp4EgPCBqdXN0XC1hbmRcLWZhaXI7Civlk6XmnpflpJrliY3mm7ggPCAxXC1jb3JpbnRoaWFuczsKK+WGsOacnyA8IGdsYWNpYWxcLWVwb2NoOwor6Zec5pa8IDwgcGVydGFpbmluZ1wtdG87CivliZvliZsgPCBqdXN0XC1yZWNlbnRseTsKK+W7oOS4uyA8IGZhY3RvcnlcLW93bmVyOwor5YaN5qyhIDwgb25lXC1tb3JlXC10aW1lOwor6KyNIDwgaHVtbWluZ1wtc291bmQ7CivmlrDntITlhajmm7ggPCBuZXdcLXRlc3RhbWVudDsKK+imtiA8IHRvXC1sb29rXC1hYm91dDsKK+imlCA8IHRvXC1zZWFyY2hcLWZvcjsKK+ilmiA8IGdyYXZlXC1jbG90aGVzOwor5qyK5YqbIDwgXCh3aWVsZFwpXC1wb3dlcjsKK+igtSA8IGxhcmdlXC10dXJ0bGVzOwor57C/57GNIDwgYWNjb3VudFwtYm9va3M7Civonr4gPCB0aGVcLWVhcnRod29ybTsKK+iepSA8IHRoZVwtaG91c2VcLWZseTsKK+iemSA8IGdydWJzXC1pblwtd29vZDsKK+ibhSA8IGFcLWNhdGVycGlsbGFyOwor5qmr5o6DIDwgdG9cLXN3ZWVwXC1hd2F5Owor5bqm5YGHIDwgZ29cLW9uXC1ob2xpZGF5Owor6JivIDwgdG9cLXRvc3NcLWFib3V0Owor55Ww6LOqIDwgaGV0ZXJvZ2VuZW91czsKK+i7iuermSA8IFwoYnVzXClcLXN0YXRpb247Civkup7mtLLlnIvlrrYgPCBhc2lhblwtY291bnRyeTsKK+aatOmiqOmpn+mbqCA8IHZpb2xlbnRcLXN0b3JtOwor6JSOIDwgdGhlYVwtc2luZW5zaXM7Civlgpnoh7MgPCB0b1wtdGhlXC11dG1vc3Q7Civokb0gPCB0eXBlXC1vZlwtZ3JhaW47Civoj7wgPCBydXNoXC1vclwtc2VkZ2U7Civoj7ogPCBhbHRoYWVhXC1yb3NlYTsKK+i3kemeiyA8IHJ1bm5pbmdcLXNob2VzOwor6I+RIDwgdG9cLXdlZWRcLWdyYXNzOwor5aCx5ZauIDwgdGF4YXRpb25cLWZvcm07CivojqcgPCBlZGlibGVcLWdyZWVuczsKK+iMpSA8IHJ1YnVzXC10b2trdXJhOwor6ZGS6LOeIDwgdG9cLWFwcHJlY2lhdGU7Civoi5ggPCBpbmRpYW5cLW1hbGxvdzsKK+mAmeS9jSA8IHRoaXNcLVwocGVyc29uXCk7Civlm7DnqpggPCBlbWJhcnJhc3NtZW50Owor6ZmN5LiWIDwgY29tZVwtdG9cLWVhcnRoOwor6ISlIDwgcGVsdmljXC1jYXZpdHk7Civkvr/po68gPCBhXC1zaW1wbGVcLW1lYWw7Civog7IgPCBoeWRyb3h5bGFtaW5lOwor6Ly75qKdIDwgXCh3aGVlbFwpXC1zcG9rZTsKK+WlveW5vuW5tCA8IHNldmVyYWxcLXllYXJzOwor572zIDwgd29vZGVuXC1zY3JlZW47CivnvIcgPCByZWRkaXNoXC1jb2xvcjsKK+aJk+mWiyA8IHRvXC1icmVha1wtb3BlbjsKK+WUruelqOiZlSA8IHRpY2tldFwtb2ZmaWNlOwor55m85o+uIDwgYnJpbmdcLXRvXC1iZWFyOwor57OtIDwgcmljZVwtZHVtcGxpbmc7CivmjYnlj5blnJblg48gPCBjYXB0dXJlXC1pbWFnZTsKK+exviA8IHVuaHVsbGVkXC1yaWNlOwor57GcIDwgYmFtYm9vXC1zaGVhdGg7Civlha3pu57ljYogPCBoYWxmXC1wYXN0XC1zaXg7Civplovlv4MgPCB0b1wtZmVlbFwtaGFwcHk7CivnhKHmhI/orZggPCB1bmNvbnNjaW91c2x5Owor5a+m6amXIDwgdG9cLWV4cGVyaW1lbnQ7CivnrLUgPCBhXC1iYW1ib29cLWZvcm07CivnrK0gPCBiYW1ib29cLXNjcmVlbjsKK+i9ieW9jiA8IHR1cm5cLVwoYXJvdW5kXCk7CivmoYjpoK0gPCBvblwtb25lJydzXC1kZXNrOwor5ouc6YeR5Li7576pIDwgbW9uZXlcLXdvcnNoaXA7CivmsLjkuYXlkozlubMgPCBsYXN0aW5nXC1wZWFjZTsKK+egniA8IHRvXC1zbWFzaFwtcm9jazsKK+efniA8IGJvcmVcLXdpdGhcLWF3bDsKK+i+qOWIpSA8IGRpZmZlcmVudGlhdGU7CivmioTopbIgPCB0b1wtcGxhZ2lhcml6ZTsKK+i+puWIsCA8IHRvXC1hY2NvbXBsaXNoOwor5YWI5b6MIDwgaW5cLXN1Y2Nlc3Npb247CivnlZzogqUgPCBhbmltYWxcLW1hbnVyZTsKK+aOqOWLleWKmyA8IGRyaXZpbmdcLWZvcmNlOwor5ouJ576OIDwgbGF0aW5cLWFtZXJpY2E7CivmoLjpm7sgPCBudWNsZWFyXC1wb3dlcjsKK+i2iumHjiA8IGNyb3NzXC1jb3VudHJ5Owor55KCIDwgamFkZVwtb3JuYW1lbnQ7CivnkJUgPCB0eXBlXC1vZlwtcGVhcmw7CivnjZkgPCBkaWVcLXZpb2xlbnRseTsKK+WFrOWckiA8IGFcLXB1YmxpY1wtcGFyazsKK+eZvuWnkyA8IGNvbW1vblwtcGVvcGxlOwor5ZOI6Jap5YWL5Lq6IDwga2F6YWtoXC1wZXJzb247Civngb3ljYAgPCBkaXNhc3RlclwtYXJlYTsKK+mBv+miqOiZlSA8IGxlZVwsXC13aW5kc3RvcDsKK+eJgSA8IG1vb3JpbmdcLXN0YWtlOwor5qeL5oiQIDwgdG9cLWNvbnN0aXR1dGU7CivnhrAgPCBncmVhdFwtZHJvdWdodDsKK+S/neiXjyA8IGtlZXBcLWluXC1zdG9yZTsKK+eRnummmSA8IHdpbnRlclwtZGFwaG5lOwor5ouM56iuIDwgc2VlZFwtZHJlc3Npbmc7CivnsYzmjqogPCByYWlzZVwtXChtb25leVwpOwor5qOE572uIDwgdG9cLXRocm93XC1hd2F5Owor5L2/55So6YePIDwgdm9sdW1lXC1vZlwtdXNlOwor6LOj6bueIDwgc2VsbGluZ1wtcG9pbnQ7CivnmKblvLEgPCB0aGluXC1hbmRcLXdlYWs7CivmtawgPCBuYXV0aWNhbFwtbWlsZTsKK+eZveWMqiA8IHdoaXRlXC1iYW5kaXRzOwor6IKJ6auUIDwgcGh5c2ljYWxcLWJvZHk7CivmrLUgPCB0b1wtdHJlYXRcLXdlbGw7CivmrJMgPCBhXC1jcm9zc1wtcGllY2U7CivljYrlsI7pq5QgPCBzZW1pY29uZHVjdG9yOwor5YKZ5qGIIDwgcHV0XC1vblwtcmVjb3JkOwor5quMIDwgYVwta2luZFwtb2ZcLWhvZTsKK+aqriA8IGJsb2NrXC1vZlwtd29vZDsKK+W3oeiIquWwjuW9iCA8IGNydWlzZVwtbWlzc2xlOwor5LiN5Y+v6IO955qE5LqLIDwgaW1wb3NzaWJpbGl0eTsKK+amjCA8IHdvb2RlblwtbGFkZGVyOwor55m+5YiG5LmL5LqU5Y2BIDwgZmlmdHlcLXBlcmNlbnQ7CivprKXlv5cgPCB3aWxsXC10b1wtZmlnaHQ7CivmiYHojbMgPCBoeWFjaW50aFwtYmVhbjsKK+eZvuWAjSA8IGFcLWh1bmRyZWRmb2xkOwor5qWZIDwgbmFtZVwtb2ZcLXBsYW50Owor562G562SIDwgcGVuXC1jb250YWluZXI7CivmorkgPCB0aGVcLWFyZWNhXC1udXQ7Civlr7bol40gPCBzYXBwaGlyZVwtYmx1ZTsKK+aijiA8IHNpY2tsZVwtaGFuZGxlOwor5qCwIDwgYVwtYmFtYm9vXC1yYWZ0Owor5ruy56KzIDwgY2FyYnVyaXphdGlvbjsKK+aatOWKm+eKr+e9qiA8IHZpb2xlbnRcLWNyaW1lOwor5pypIDwga3d1a3llbFw6XC1yYW5rOwor5rih6YGOIDwgdG9cLWNyb3NzXC1vdmVyOwor5a2X6ZuGIDwgY2hhcmFjdGVyXC1zZXQ7Civpp4Hmrrzmp40gPCBtYXVzZXJcLXBpc3RvbDsKK+S9leilv+mYv+abuCA8IGJvb2tcLW9mXC1ob3NlYTsKK+epuumBiyA8IGFpclwtdHJhbnNwb3J0Owor5aWn5YWL5ouJ6I236aas5biCIDwgb2tsYWhvbWFcLWNpdHk7CivmkKIgPCB0b1wtc3RpY2tcLWludG87Civmjq0gPCB0b1wtbWFuaXB1bGF0ZTsKK+aMtiA8IGhvbGRcLWluXC1oYW5kczsKK+aLlSA8IHRvXC1kcmFnXC1hZnRlcjsKK+aKgyA8IHRvXC1jbGFwXC1oYW5kczsKK+S4jeaIkOaWh+azlSA8IHVud3JpdHRlblwtbGF3Owor5oi6IDwgc3RvbmVcLWJvYXJkZXI7CivmiLkgPCBpblwtZGlmZmljdWx0eTsKK+mrmOmAn+S5meWkque2sui3ryA8IGZhc3RcLWV0aGVybmV0Owor5LiN5pa55L6/IDwgaW5jb252ZW5pZW5jZTsKK+aykue2k+mplyA8IGluZXhwZXJpZW5jZWQ7CivooajlsaQgPCBzdXJmYWNlXC1sYXllcjsKK+aAviA8IG1vdW50YWluXC1uYW1lOwor5ZyT5ZGoIDwgY2lyY3VtZmVyZW5jZTsKK+W9vSA8IGdvXC10b1wtYW5kXC1mcm87CivlvbIgPCB5ZWxsb3dcLWRyYWdvbjsKK+W9lCA8IHRvXC1jYXJ2ZVwtd29vZDsKK+S4u+aXpeWtuCA8IHN1bmRheVwtc2Nob29sOwor55eF5a6zIDwgcGxhbnRcLWRpc2Vhc2U7Civlt7AgPCBhblwtYXRvbVwtZ3JvdXA7CivllK7osqggPCB0b1wtc2VsbFwtZ29vZHM7Civls4IgPCBuYW1lXC1vZlwtcGxhY2U7CivmnInliqnkuo4gPCBjb250cmlidXRlXC10bzsKK+WvgCA8IGZldWRhbFwtZXN0YXRlOwor6IiM5bCWIDwgdGlwXC1vZlwtdG9uZ3VlOwor5qGI56ixIDwgY291bnRlclwtc2NhbGU7CivlqqIgPCBiZVwtamVhbG91c1wtb2Y7CivmtojpmLIgPCBmaXJlXC1maWdodGluZzsKK+WWiee1kCA8IGFkYW0nJ3MnJ1wtYXBwbGU7Civls7blnIsgPCBpc2xhbmRcLW5hdGlvbjsKK+msp+S6iyA8IGNhdXNlXC10cm91YmxlOwor5Lqs6YO9IDwga3lvdG9cLVwoamFwYW5cKTsKK+Wbm+WNgyA8IGZvdXJcLXRob3VzYW5kOwor55W25bm0IDwgaW5cLXRob3NlXC1kYXlzOwor5Z67IDwgYW5cLWVtYmFua21lbnQ7CivosqHov7cgPCBtb25leVwtZ3J1YmJlcjsKK+S4ieWNgeWEhCA8IHRocmVlXC1iaWxsaW9uOwor55CG6KejIDwgdG9cLWNvbXByZWhlbmQ7CivlmpogPCBhcmd1bWVudGF0aXZlOwor5LiN5YeN5rivIDwgaWNlXC1mcmVlXC1wb3J0Owor5q2l6Kmx5qmfIDwgd2Fsa2llXC10YWxraWU7Civlr4bnorwgPCBcKHNlY3JldFwpXC1jb2RlOwor56+J5Z+OIDwgZm9ydGlmaWNhdGlvbjsKK+WSoSA8IHNpZGVcLW9mXC1tb3V0aDsKK+ihm+WFtSA8IFwoYm9keVwpXC1ndWFyZFwpOwor6Im+5ruL55eF5oqX6auUIDwgYWlkc1wtYW50aWJvZHk7Civpm4bnt5rlmaggPCBodWJcLVwobmV0d29ya1wpOwor55aR5ZWPIDwgaW50ZXJyb2dhdGlvbjsKK+WHnyA8IHRvXC1iZVwtcnVkZVwtdG87Civllonnl6cgPCBzY2FybGV0XC1mZXZlcjsKK+WAi+aApyA8IGluZGl2aWR1YWxpdHk7CivlhLkgPCB0b1wtYWNjdW11bGF0ZTsKK+WEsiA8IHRvXC1zYXZlXC1tb25leTsKK+WEmyA8IHRvXC1za2lwXC1hYm91dDsKK+S4jeiIkumBqSA8IHVuY29tZm9ydGFibGU7CivlgpIgPCBwZXJzb25hbFwtbmFtZTsKK+WFqeWNg+W5tCA8IHRoZVwteWVhclwtMjAwMDsKK+aomeacrOifsiA8IHNwaWRlclwtYmVldGxlOwor5ZWf56S6IDwgZW5saWdodGVubWVudDsKK+mAsuWHuuWPoyA8IGltcG9ydFx8ZXhwb3J0Owor5LiN5Y+v5L6154qv5qyKIDwgaW52aW9sYWJpbGl0eTsKK+S+giA8IHRvXC1jb21taXNzaW9uOwor5ZCR6KW/5Y2XIDwgc291dGh3ZXN0d2FyZDsKK+iHtOWHvSA8IHNlbmRcLWFcLWxldHRlcjsKK+S5qCA8IHRoZVwtYmVnaW5uaW5nOwor5LaaIDwgZGVjYXllZFwtdG9vdGg7CivktoggPCBhXC1raW5kXC1vZlwtcmF0Owor5LW/IDwgYVwtc2lsZW50XC1kcnVtOwor5LWBIDwgZGVjYXllZFwtZG91Z2g7CivktLAgPCBhXC1mYW1pbHlcLW5hbWU7CivksrogPCBiaXJkc1wtc2luZ2luZzsKK+SyhSA8IHRoZVwtZ2xvYmVmaXNoOwor5LC7IDwgdG9cLWNhdGNoXC1maXNoOwor5oSP6K2YIDwgY29uc2Npb3VzbmVzczsKK+SwsSA8IG5hbWVcLW9mXC1hXC1nb2Q7CivllK7npajlk6EgPCB0aWNrZXRcLXNlbGxlcjsKK+SvhSA8IGFcLXN3aWZ0XC1ob3JzZTsKK+SuiCA8IHRvXC1nb1wtc3dpZnRseTsKK+SrvyA8IGFcLWNvb2xcLWJyZWV6ZTsKK+SrtCA8IHdlYWtcLWFuZFwtZHVsbDsKK+iBr+e1oSA8IGNvbW11bmljYXRpb247CivllK7npajlj6MgPCB0aWNrZXRcLXdpbmRvdzsKK+aJgeaTlCA8IGNhcnJ5aW5nXC1wb2xlOwor5KuBIDwgdGhlXC1maXJzdFwtc29uOwor5KqrIDwgYW5jaWVudFwtbXVzaWM7CivkqpIgPCBsZWF0aGVyXC1wYW50czsKK+SpviA8IGhlcmJcLW1lZGljaW5lOwor5KmkIDwgdG9cLWxlYWRcLWFuXC1veDsKK+SpoyA8IHNob2VcLWN1c2hpb25zOwor5KmeIDwgYVwtc2FkZGxlXC1mbGFwOwor5KiOIDwgZGVlcFwtYW5kXC1kYXJrOwor5a6J5a6a5YyWIDwgc3RhYmlsaXphdGlvbjsKK+SnliA8IGFcLXNtYWxsXC1tb3VuZDsKK+SmtCA8IG9wZW5cLXRoZVwtZG9vcjsKK+SmsyA8IGJldHdlZW5cLXN0ZXBzOwor5Lqk5o+b56uvIDwgc3dpdGNoZWRcLXBvcnQ7Civlk4DomZ8gPCBjcnlcLXBpdGVvdXNseTsKK+SmoSA8IGFcLWRvb3JcLWtlZXBlcjsKK+SlqSA8IGhvb2tzXC10b1wtaGFuZzsKK+SktSA8IGFcLXRpbnlcLW5lZWRsZTsKK+SkjiA8IHNveWJlYW5cLXNhdWNlOwor5KSDIDwgZHJ1bmtlblwtc291bmQ7Civko7AgPCB0b1wtcG9vbFwtbW9uZXk7CivkoqcgPCB0b1wtZ29cLWZvcndhcmQ7CivkopogPCBhXC1uYXJyb3dcLXBhdGg7CivkooMgPCB0b1wtYWRtaW5pc3RlcjsKK+ShpSA8IGFcLW1vdmluZ1wtY2FydDsKK+SfmCA8IHRvXC1zdHJhaWdodGVuOwor5J+KIDwgc2hvcnRcLXN0cmlkZXM7CivmoYLmnpcgPCBndWlsaW5cLVwoY2l0eVwpOwor5J6BIDwgY29ycmVzcG9uZGluZzsKK+SdtiA8IHRvXC1sZXZ5XC10YXhlczsKK+SdrCA8IGFcLXdlYWx0aHlcLW1hbjsKK+mHkem7gyA8IGdvbGRlblwteWVsbG93Owor5Ju+IDwgZmFtaWxpYXJcLXdpdGg7CivkuI3nm7jlubIgPCBiZVwtaXJyZWxldmFudDsKK+ebruaomeW4guWgtCA8IHRhcmdldFwtbWFya2V0Owor5JuQIDwgYW5cLWV4cHJlc3Npb247CivlpKnmm4nlvpcgPCBoZWF2ZW5cLWtub3dzXCE7CivkmpUgPCB0b1wtc2VhcmNoXC1vdXQ7CivkmbkgPCB0b1wtdm9taXRcLW1pbGs7CivkmaUgPCBzaGlueVwtZHJlc3NlczsKK+SZoiA8IHNob3J0XC10XC1zaGlydDsKK+SZoCA8IHNob3J0XC1jbG90aGVzOwor5JmfIDwgaGVhdnlcLWNsb3RoZXM7CivkmZ4gPCB3b29sZW5cLXN0cmluZzsKK+SZhSA8IHRoZVwtd2Fpc3RsaW5lOwor6Leo5ZyLIDwgdHJhbnNuYXRpb25hbDsKK+SXlyA8IHRoZVwtbWlsbGlwZWRlOwor5JapIDwgYVwta2luZFwtb2ZcLWJlZTsKK+SWkSA8IGFcLXdoaXRlXC10aWdlcjsKK+SWhyA8IGZyYWdyYW50XC1oZXJiOwor5ryU5Ye6IDwgXChhY3RpbmdcKVwtcGxheTsKK+WQg+mjryA8IHRvXC1lYXRcLWFcLW1lYWw7Civkko4gPCB3aXRob3V0XC1jb2xvcjsKK+SRsiA8IHRvXC1yb3dcLWFcLWJvYXQ7CivkkaUgPCBhXC1tb3ZpbmdcLWJvYXQ7CivkkLIgPCBoYWxmXC1yYXdcLW1lYXQ7CivkkJkgPCB0aGVcLWRpYXBocmFnbTsKK+SPmCA8IGFcLWJpZ1wtYWJkb21lbjsKK+SPhCA8IG5vdFwtdG9cLWxpc3RlbjsKK+S4jemAmiA8IGJlXC1vYnN0cnVjdGVkOwor5pyA6auY5rOV6ZmiIDwgc3VwcmVtZVwtY291cnQ7Civkjb0gPCBhXC1maWVyY2VcLWdvYXQ7CivkjbwgPCBzYWx0ZWRcLW11dHRvbjsKK+SNqiA8IGNhc3RyYXRlZFwtcmFtOwor5I2kIDwgdG9cLXN0cmFpblwtb3V0Owor5oiS5oyHIDwgXChmaW5nZXJcKVwtcmluZzsKK+acgOW+jOabtOaWsCA8IGxhdGVzdFwtdXBkYXRlOwor5IyZIDwgaGFua1wtb2ZcLXJvcGVzOwor5IyFIDwgYVwtdGhpY2tcLXJvcGVzOwor5IumIDwgcmF2ZWxsZWRcLXNpbGs7Civki50gPCBhXC10aHJvYXRcLWJhbmQ7CivmnY/ku4HosYbohZAgPCBhbG1vbmRcLWp1bmtldDsKK+SKvSA8IGFcLWZpbmVcLXRocmVhZDsKK+SKlCA8IHBvbGlzaGVkXC1yaWNlOwor5ImpIDwgYVwtYmFtYm9vXC13YXJlOwor5ImoIDwgYmFtYm9vXC1qb2ludHM7CivkiL4gPCBtb3ZlXC1hXC1saXR0bGU7CivkiLMgPCBhXC13aW5kb3dcLWxlYWY7CivlsJHlsIcgPCBtYWpvclwtZ2VuZXJhbDsKK+SGmiA8IHRvXC1nb1wtdGhyb3VnaDsKK+adnOe1lSA8IHB1dFwtYW5cLWVuZFwtdG87CivkhZsgPCBodXNrc1wtb2ZcLXJpY2U7Civkg7MgPCBmYWxsaW5nXC1zdG9uZTsKK+SCtiA8IHRoZVwtY3J1c3RhY2VhOwor5IKXIDwgdG9cLWJlXC1jYXJlZnVsOwor5IKOIDwgYVwtc2hvcnRcLXNwZWFyOwor5IKBIDwgYW5cLWFuZ3J5XC1sb29rOwor5IGZIDwgZWxvcXVlbnRcLWV5ZXM7CivkgK4gPCBzaWdodFwtYmx1cnJlZDsKK+SArSA8IHdpdGhcLWJpZ1wtZXllczsKK+SAliA8IHRvXC1sb29rXC11cFwtdG87CivkgJUgPCBhbmdyeVwtZ2xhbmNlczsKK+aal+mOliA8IGJ1aWx0XC1pblwtbG9jazsKK+O/rCA8IG5hc2FsXC1kaXNlYXNlOwor4769IDwgc3dlbGxpbmdcLWZlZXQ7CivjvbIgPCBncmlwaW5nXC1jb2xpYzsKK+O9hyA8IHVuYnVybnRcLXRpbGVzOwor47y1IDwgYVwtc21hbGxcLWJhc2luOwor47yfIDwgYVwtdGlsZWRcLWhvdXNlOwor47yOIDwgYVwtc21hbGxcLW1lbG9uOwor47u+IDwgamFkZVwtYXJ0aWNsZXM7CivlkIznm5/lnIsgPCBjb25mZWRlcmF0aW9uOwor47qIIDwgdG9cLWdvXC1odW50aW5nOwor47m5IDwgYVwta2luZFwtb2ZcLWRvZzsKK+O5tSA8IGFcLWh1bnRpbmdcLWRvZzsKK+O5syA8IGFcLWtpbmRcLW9mXC1hcGU7Civmh7LmiJIgPCB0b1wtZGlzY2lwbGluZTsKK+mAmeeoruaWueW8jyA8IFwoaW5cKVwtdGhpc1wtd2F5Owor5LiL6KqyIDwgY2xhc3NcLWlzXC1vdmVyOwor5LiN6KmzIDwgbm90XC1pblwtZGV0YWlsOwor47iEIDwgYVwtcmFnaW5nXC1maXJlOwor47e+IDwgYmxhemVcLW9mXC1maXJlOwor5Y+N6Z+/IDwgcmVwZXJjdXNzaW9uczsKK+O3liA8IHRvXC1zaGluZVwtdXBvbjsKK+O3lSA8IGhlYXJpbmdcLXNvdW5kOwor47eSIDwgdG9cLWNvb2tcLW1lYWxzOwor47aYIDwgZnVsbFwtb2ZcLXdhdGVyOwor5aWn6YGL5pyDIDwgb2x5bXBpY1wtZ2FtZXM7CivjtbMgPCBjcnlzdGFsXC1jbGVhcjsKK+O1oCA8IHRvXC1ndXNoXC1mb3J0aDsKK+O0vSA8IHdhdGVyXC1jdXJyZW50Owor47SrIDwgZ3JlYXRcLWZsb3dpbmc7CivjtKYgPCB0b1wtd2FzaFwtaGFuZHM7CivjtKUgPCBncmVhdFwtYmlsbG93czsKK+O0kCA8IGdyZWF0XC1jdXJyZW50Owor5L+d6K235Li7576pIDwgcHJvdGVjdGlvbmlzbTsKK+OymyA8IGhhaXJ5XC1hbmltYWxzOwor5Zyo5pyq5L6GIDwgaW5cLXRoZVwtZnV0dXJlOwor5a6/5oCoIDwgYW5cLW9sZFwtZ3J1ZGdlOwor47C7IDwgYXNzZXNcLWJyYXlpbmc7CivjsI8gPCBhXC1iYW1ib29cLXBvbGU7CivjsIwgPCB0b1wtbW9ub3BvbGl6ZTsKK+OtvyA8IG9ibGlxdWVcLWFuZ2xlOwor5Zau5a2QIDwgbGlzdFwtb2ZcLWl0ZW1zOwor462TIDwgYVwtcGlsbGFyXC1hcmNoOwor6LKi5427IDwgdG9cLWNvbnRyaWJ1dGU7CivjrKUgPCB0b1wtc3VuXC10b1wtYWlyOwor5Y+r6YaSIDwgdG9cLWNhbGxcLWF3YWtlOwor46yEIDwgd2FybVwtYW5kXC1kYW1wOwor46ufIDwgZGF5XC1hZnRlclwtZGF5Owor5Y2X576O5rSyIDwgc291dGhcLWFtZXJpY2E7Civnvo7ooZMgPCB0aGVcLWZpbmVcLWFydHM7CivjqaUgPCBkZWxpY2F0ZVwtaGFuZDsKK+OoniA8IHRvXC1mZWVsXC1hYm91dDsKK+OnvCA8IHRvXC1kaXN0cmlidXRlOwor46e3IDwgdG9cLXdpcGVcLXRlYXJzOwor46arIDwgbGF4XC1hbmRcLWNydWRlOwor46aMIDwga2Vlblwtb3JcLXNoYXJwOwor46W8IDwgdG9cLWJlXC1uZWFyXC10bzsKK+OjvyA8IHBhaW5mdWxseVwtc2FkOwor46OkIDwgdG9cLXRyZWFkXC11cG9uOwor46K7IDwgdG9cLWRyYXdcLWFcLWJvdzsKK+OiliA8IGFcLXN0b3JlXC1ob3VzZTsKK+S4g+eZvuiQrCA8IHNldmVuXC1taWxsaW9uOwor46C0IDwgYVwtcGlsbG93XC1jYXNlOwor46CbIDwgbmFtZVwtYVwtY291bnR5Owor5pyI55CD6KGo6Z2iIDwgbHVuYXJcLXN1cmZhY2U7Civjn60gPCB0aGVcLW1pblwtcml2ZXI7Civog73lpKAgPCBiZVwtY2FwYWJsZVwtb2Y7CivjnqwgPCBjbG9zZVwtb3JcLW5lYXI7CivjnosgPCBzb2Z0XC1hbmRcLW1lZWs7CivlrrblsawgPCBmYW1pbHlcLW1lbWJlcjsKK+OduyA8IGJhcmVseVwtZW5vdWdoOwor452DIDwgdG9cLWJlYXJcLWFcLXNvbjsKK+WcsOaWueWBnOi7iiA8IHBhcmtpbmdcLXBsYWNlOwor45uSIDwgY2FuXC1ub3RcLXNwZWFrOwor45q0IDwgYVwtcHJldHR5XC1naXJsOwor6by75re1IDwgbmFzb3NpbnVzaXRpczsKK+aHguW+lyA8IHRvXC11bmRlcnN0YW5kOwor45ibIDwgYVwtZGVlcFwtdmFsbGV5Owor5pyJ6Imv5b+DIDwgY29uc2NpZW50aW91czsKK+OYkyA8IHByb2xpeFwtc3BlZWNoOwor45iJIDwgdG9cLW1ha2VcLXNvdW5kOwor45e0IDwgZG9nc1wtZmlnaHRpbmc7CivjlbAgPCBzb3VuZFwtYW5ncmlseTsKK+OVqiA8IGJpcmRzJydcLWNoaXJwczsKK+OVmSA8IGFcLXdpbHlcLXJhYmJpdDsKK+OViSA8IHRvXC1kaWdcLWFcLWhvbGU7CivjlKUgPCBmdWxsXC1vZlwtYW5nZXI7Civjk7QgPCB0b1wtY3V0XC1pblwtdHdvOwor5Y2K6bueIDwgdGhlXC1sZWFzdFwtYml0Owor45OWIDwgYml0dGVybHlcLWNvbGQ7Civku6XlpKrntrLntaHnq6/lj6MgPCBldGhlcm5ldFwtcG9ydDsKK+ORpSA8IGRpc3Jlc3BlY3RmdWw7CivpiZvnrYYgPCBcKGxlYWRcKVwtcGVuY2lsOwor5Zau5ZCRIDwgdW5kaXJlY3Rpb25hbDsKK+OQsCA8IHRvXC1iZWxpZXZlXC1pbjsKK+WPl+izhCA8IGFjY2VwdFwtYnJpYmVzOwor6by76aO85rOVIDwgbmFzYWxcLWZlZWRpbmc7Civnn6XlkI3kurrlo6sgPCBwdWJsaWNcLWZpZ3VyZTsKK+e0hOaLv+abuCA8IGJvb2tcLW9mXC1qb25haDsKK+S+i+WBhyA8IGxlZ2FsXC1ob2xpZGF5Owor5rC06Z2iIDwgd2F0ZXJcLXN1cmZhY2U7CivmraXooYzon7IgPCBncm91bmRcLWJlZXRsZTsKK+enu+auliA8IHRvXC10cmFuc3BsYW50Owor6LW35LyPIDwgdXBzXC1hbmRcLWRvd25zOwor6K6K6Kq/IDwgbW9kaWZpZWRcLXRvbmU7Civlj4voqrwgPCBjb21wYW5pb25zaGlwOwor576O5ZyL5ZyL5pyDIDwgdVwuc1wuXC1jb25ncmVzczsKK+WTgOaogiA8IGZ1bmVyYWxcLW11c2ljOwor5LiN5bm455qE5pivIDwgdW5mb3J0dW5hdGVseTsKK+WvjOS6jiA8IHRvXC1iZVwtZnVsbFwtb2Y7Civkvr/mraXotbAgPCBtYXJjaFwtYXRcLWVhc2U7CivogbLluLYgPCB2b2NhbFwtY29yZFwoc1wpOwor5LiN55+lIDwgdW5rbm93aW5nXChseVwpOwor5a2r5aWzIDwgZ3JhbmRkYXVnaHRlcjsKK+WFiee6lumbu+e6nCA8IG9wdGljYWxcLWZpYmVyOwor56S+5Lqk6Kqe6KiAIDwgbGluZ3VhXC1mcmFuY2E7Civmtrzlv6sgPCBuaWNlXC1hbmRcLWNvbGQ7CivkuInnmb4gPCB0aHJlZVwtaHVuZHJlZDsKK+mAo+aOpeiHsyA8IHRvXC1jb25uZWN0XC10bzsKK+S6rOaIsiA8IGJlaWppbmdcLW9wZXJhOwor5L2O5LqOIDwgYmVcLWxvd2VyXC10aGFuOwor6bO25bC+6IqxIDwgaXJpc1wtXChmbG93ZXJcKTsKK+WNl+mDqCA8IHNvdXRoZXJuXC1wYXJ0Owor6K6K6ImyIDwgY2hhbmdlXC1jb2xvdXI7CivljYrlrpjmlrkgPCBzZW1pXC1vZmZpY2lhbDsKK+WMl+mdoiA8IG5vcnRoZXJuXC1zaWRlOwor5LiK54+tIDwgdG9cLWdvXC10b1wtd29yazsKK+eZvuenkeWFqOabuCA8IGVuY3ljbG9wYWVkaWE7CivlkITnqK4gPCBldmVyeVwta2luZFwtb2Y7Civosp3lvasgPCBzaGVsbFwtY2FydmluZzsKK+aXpei7jSA8IGphcGFuZXNlXC1hcm15Owor5Yqf546H5oOh5YyWIDwgcG93ZXJcLXBlbmFsdHk7CivljZfotoogPCBzb3V0aFwtdmlldG5hbTsKK+aEm+aGjiA8IGxvdmVcLWFuZFwtaGF0ZTsKK+iBt+WToSA8IG9mZmljZVwtd29ya2VyOwor5rSL5rqiIDwgYnJpbW1pbmdcLXdpdGg7CivkuI3lj6/mipflipsgPCBmb3JjZVwtbWFqZXVyZTsKK+WNlOiqvyA8IHRvXC1jb29yZGluYXRlOwor5aSn6ZiqIDwgb3Nha2FcLVwoamFwYW5cKTsKK+iAg+aFriA8IHRvXC10aGlua1wtb3ZlcjsKK+eUn+WRveeahOmBuui3oSA8IHRyYWNlXC1vZlwtbGlmZTsKK+WMl+mDqCA8IG5vcnRoZXJuXC1wYXJ0Owor5YW85a655oCnIDwgY29tcGF0aWJpbGl0eTsKK+ino+Wjk+e4riA8IHRvXC1kZWNvbXByZXNzOwor5pys5oSPIDwgb3JpZ2luYWxcLWlkZWE7CivlkLjmr5IgPCB0b1wtdGFrZVwtZHJ1Z3M7CivkuK3lnIvpioDooYwgPCBiYW5rXC1vZlwtY2hpbmE7Civms7PmsaAgPCBzd2ltbWluZ1wtcG9uZDsKK+S4gOatpSA8IFwoc2luZ2xlXClcLXN0ZXA7CivljJfotoogPCBub3J0aFwtdmlldG5hbTsKK+mfv+aHieaZgumWkyA8IHJlc3BvbnNlXC10aW1lOwor6Zuc6aCFIDwgbWlzY2VsbGFuZW91czsKK+WCs+i8uOaooeW8jyA8IHRyYW5zZmVyXC1tb2RlOwor5o6h5qOJ5qmfIDwgY290dG9uXC1waWNrZXI7CivlpJbpg6ggPCBleHRlcm5hbFwtcGFydDsKK+iBnuS6uiA8IGZhbW91c1wtcGVyc29uOwor5YmN5omA5pyq5pyJIDwgdW5wcmVjZWRlbnRlZDsKK+WSjOWwmiA8IGJ1ZGRoaXN0XC1tb25rOwor6JiH5beeIDwgc3V6aG91XC1cKGNpdHlcKTsKK+ekpuawtCA8IG1pbmVyYWxcLXdhdGVyOwor5pqR5rCjIDwgXChzdW1tZXJcKVwtaGVhdDsKK+S4gOS5neS5neS4g+W5tCA8IHRoZVwteWVhclwtMTk5NzsKK+WTgOWRiiA8IGJlZ1wtcGl0ZW91c2x5Owor5aSW6LK/IDwgZm9yZWlnblwtdHJhZGU7Civpgb/pm6MgPCBcW3Rha2VcXVwtcmVmdWdlOwor5YyF6KKxIDwgY2xvdGhcLXdyYXBwZXI7CivmhJ/lhpIgPCB0b1wtY2F0Y2hcLWNvbGQ7CivlvanomowgPCBwYWludGVkXC1zaGVsbDsKK+iKreiVieaJhyA8IHBhbG1cLWxlYWZcLWZhbjsKK+emruWggiA8IGFzc2VtYmx5XC1oYWxsOwor57i96KiIIDwgXChncmFuZFwpXC10b3RhbDsKK+Wom+aogiA8IGVudGVydGFpbm1lbnQ7CivkuK3lrbggPCBtaWRkbGVcLXNjaG9vbDsKK+S6lOS4gCA8IDVcLTFcLVwobWF5XC0xc3RcKTsKK+ejgeeJhyA8IG1hZ25ldGljXC1kaXNrOwor5pyD5aC0IDwgbWVldGluZ1wtcGxhY2U7Civlqr7lkowgPCB0b1wtbWFrZVwtcGVhY2U7CivlhazlhYPliY0gPCBiZWZvcmVcLWNocmlzdDsKK+S4iuW4giA8IG9uXC10aGVcLW1hcmtldDsKK+ioquWVj+aWueW8jyA8IGFjY2Vzc1wtbWV0aG9kOwor5qqU5qGI5bu656uLIDwgZmlsZVwtY3JlYXRpb247Civnp4HliKkgPCBwZXJzb25hbFwtZ2FpbjsKK+mBsumIjSA8IHNsb3dcLVwod2l0dGVkXCk7Civms6Lnvo7luqYgPCBiYXVtZVwtZGVncmVlczsKK+WMl+e+jiA8IG5vcnRoXC1hbWVyaWNhOwor57aT6amXIDwgdG9cLWV4cGVyaWVuY2U7Civlh7rnlJ/ml6XmnJ8gPCBkYXRlXC1vZlwtYmlydGg7CivkuI3lj6/mgJ3orbAgPCBpbmNvbmNlaXZhYmxlOwor5qC85a2Q6Iqx5ZGiIDwgcGxhaWRcLFwtdGFydGFuOwor5rGy5rC0IDwgdG9cLWRyYXdcLXdhdGVyOwor542y5YudIDwgYmVcLXZpY3RvcmlvdXM7Civop4Dpu54gPCBwb2ludFwtb2ZcLXZpZXc7CivljYrlvqnos70gPCBlaWdodGhcLWZpbmFsczsKK+awtOeJmyA8IHdhdGVyXC1idWZmYWxvOwor6ZuZ55Sf5YWE5byfIDwgdHdpblwtYnJvdGhlcnM7CivlkIzlubQgPCB0aGVcLXNhbWVcLXllYXI7CivmnIDlpKfpgJ/njocgPCBtYXhpbXVtXC1zcGVlZDsKK+iuiuaYnyA8IHZhcmlhYmxlXC1zdGFyOwor6YKK55WM57eaIDwgYm91bmRhcnlcLWxpbmU7CivomIfkv4QgPCBzb3ZpZXRcLXJ1c3NpYTsKK+ePvuWvpuaDheazgSA8IGN1cnJlbnRcLXN0YXRlOwor5q2l6KGMIDwgdG9cLWdvXC1vblwtZm9vdDsKK+aThemVtyA8IHRvXC1iZVwtZ29vZFwtYXQ7CivkuI3llbsgPCBub3RcLWxlc3NcLXRoYW47CivniYznhacgPCBsaWNlbnNlXC1wbGF0ZTsKK+aUr+aMgeeOhyA8IHN1cHBvcnRcLWxldmVsOwor6Kmm5LiA6KmmIDwgdG9cLWhhdmVcLWFcLXRyeTsKK+aal+WusyA8IGtpbGxcLXNlY3JldGx5Owor5YyF576F6JCs6LGhIDwgYWxsXC1lbWJyYWNpbmc7Civli4PoiIggPCByaXNlXC1zdWRkZW5seTsKK+iuiuaFiyA8IG1ldGFtb3JwaG9zaXM7CivmgKfmhb4gPCBzZXh1YWxcLWRlc2lyZTsKK+WMr+eOhyA8IGV4Y2hhbmdlXC1yYXRlOwor5rK75a6JIDwgbGF3XC1hbmRcLW9yZGVyOwor6KaW6aC756+A55uuIDwgdmlkZW9cLXByb2dyYW07Civpm4zoirEgPCBmZW1hbGVcLWZsb3dlcjsKK+WFqOS4lueVjOesrOS4gCA8IHdvcmxkJydzXC1maXJzdDsKK+WkmueoriA8IG1hbnlcLWtpbmRzXC1vZjsKK+WQuOWFpSA8IHRvXC1icmVhdGhlXC1pbjsKK+iuiuW3pSA8IGV4Y2hhbmdlXC13b3JrOwor5LiL6Iez5LiKIDwgYm90dG9tXC10b1wtdG9wOwor5Y+X5a6zIDwgdG9cLWJlXC1pbmp1cmVkOwor5om+5LiN5YiwIDwgY291bGRuJyd0XC1maW5kOwor5rG65b+DIDwgZGV0ZXJtaW5hdGlvbjsKK+S4i+S7pCA8IGdpdmVcLWFuXC1vcmRlcjsKK+iOq+mAhiA8IHZlcnlcLWZyaWVuZGx5Owor576F6aas5a2X5q+NIDwgcm9tYW5cLWxldHRlcnM7Civmr5TnhrEgPCBzcGVjaWZpY1wtaGVhdDsKK+S4jeWPr+WQjeeLgCA8IGluZGVzY3JpYmFibGU7CivnnrMgPCBwdXBpbFwtb2ZcLWV5ZTsKK+S4hyA8IHRlblwtdGhvdXNhbmQ7CivluIMgPCBjb3R0b25cLWNsb3RoOwor6YCaIDwgcGFzc1wtdGhyb3VnaDsKK+aPkCA8IGhvbGRcLWluXC1oYW5kOwor5LqsIDwgY2FwaXRhbFwtY2l0eTsKK+eUmiA8IGdyZWF0XC1leHRlbnQ7CivlkaggPCB6aG91XC1keW5hc3R5Owor5bC7IDwgZW5kXC1vZlwtc3BpbmU7CivlrrQgPCB0b1wtZW50ZXJ0YWluOwor5a6wIDwgdG9cLXNsYXVnaHRlcjsKK+eKryA8IGNvbW1pdFwtY3JpbWU7CivlqaIgPCBzZXJ2YW50XC1naXJsOwor5Y+CIDwgdGFrZVwtcGFydFwtaW47CivmjowgPCBwYWxtXC1vZlwtaGFuZDsKK+WnvyA8IG9uZScnc1wtbWFubmVyOwor5aeJIDwgZWxkZXJcLXNpc3RlcjsKK+aWlyA8IGNoaW5lc2VcLXBlY2s7CivlkbwgPCBicmVhdGhlXC1zaWdoOwor6KGdIDwgcnVzaFwtYWdhaW5zdDsKK+ieuiA8IHNwaXJhbFwtc2hlbGw7CivlnYogPCBuZWlnaGJvcmhvb2Q7CivlsLwgPCBidWRkaGlzdFwtbnVuOwor6by+IDwgc25vcmVcLWxvdWRseTsKK+WPtiA8IHRvXC1oYXJtb25pemU7Civph44gPCBvcGVuXC1jb3VudHJ5Owor56e7IDwgY2hhbmdlXC1wbGFjZTsKK+WUkCA8IHRhbmdcLWR5bmFzdHk7Civnp4AgPCBlYXJcLW9mXC1ncmFpbjsKK+iSsiA8IHR5cGVcLW9mXC1ydXNoOwor5bqGIDwgY29uZ3JhdHVsYXRlOwor6JKfIDwgYmV0ZWxcLXBlcHBlcjsKK+axlyA8IHBlcnNwaXJhdGlvbjsKK+aLnCA8IGRvXC1vYmVpc2FuY2U7CivomZEgPCBiZVwtY29uY2VybmVkOwor5a6LIDwgc29uZ1wtZHluYXN0eTsKK+iDhiA8IGdhbGxcLWJsYWRkZXI7CivliZYgPCBzcGxpdFwtaW5cLXR3bzsKK+WHpCA8IG1hbGVcLXBob2VuaXg7Civor6IgPCBpbnF1aXJlXC1pbnRvOwor562RIDwgYW5jaWVudFwtbHV0ZTsKK+WBtiA8IGFjY2lkZW50YWxseTsKK+mjvSA8IGVhdFwtaGVhcnRpbHk7Civog44gPCB1bmJvcm5cLWNoaWxkOwor5oKfIDwgdG9cLWFwcHJlaGVuZDsKK+iChSA8IHBheVwtcmVzcGVjdHM7CivkvpggPCBkaXNhcHBvaW50ZWQ7Civnpa0gPCBzYWNyaWZpY2VcLXRvOwor5a6qIDwgY29uc3RpdHV0aW9uOwor56KRIDwgc3RvbmVcLXRhYmxldDsKK+aYjCA8IGxpZ2h0XC1vZlwtc3VuOwor5pC6IDwgbGVhZFwtYnlcLWhhbmQ7CivljqYgPCBiaWdcLWJ1aWxkaW5nOwor5LuGIDwgZmFsbFwtZm9yd2FyZDsKK+WmpSA8IHNhdGlzZmFjdG9yeTsKK+adrSA8IGNyb3NzXC1zdHJlYW07CivotaAgPCBnaXZlXC1wcmVzZW50Owor6IWUIDwgY2hlc3RcLWNhdml0eTsKK+WtnSA8IGZpbGlhbFwtcGlldHk7CivnrLkgPCBzbWFsbFwtYmFtYm9vOwor56ybIDwgYmFtYm9vXC1mbHV0ZTsKK+atpyA8IGZvcmtcLW9mXC1yb2FkOwor6YmbIDwgbGVhZFwtcGx1bWJ1bTsKK+WWgyA8IGtlZXBcLXRhbGtpbmc7CivoiLEgPCBob2xkXC1vZlwtc2hpcDsKK+mGnCA8IHVnbHlcLWxvb2tpbmc7Civoo5ggPCBmdXJcLWdhcm1lbnRzOwor5qC9IDwgdG9cLWN1bHRpdmF0ZTsKK+ivpyA8IGJlXC1zdXJwcmlzZWQ7CivpmI4gPCB2aWxsYWdlXC1nYXRlOwor5oSjIDwgYmVcLWluXC1hXC1kYXplOwor55CqIDwgdHlwZVwtb2ZcLWphZGU7CivlqKUgPCBiZVwtYmVhdXRpZnVsOwor5ZKqIDwgc291bmRcLW9mXC1jYXQ7CivmuJcgPCBzb2FrXC10aHJvdWdoOwor6JGrIDwgYm90dGxlXC1nb3VyZDsKK+WdqiA8IGxldmVsXC1ncm91bmQ7CivlnZ4gPCBlbnRyZW5jaG1lbnQ7CivmqaEgPCBjaGVzdG51dFwtb2FrOwor57WuIDwgd2FzdGVcLWNvdHRvbjsKK+i3hCA8IHdhbGtcLXJhcGlkbHk7CivlsbkgPCB0b1wtcmlzZVwtaGlnaDsKK+aDmCA8IGRpc2NvbmNlcnRlZDsKK+aPqSA8IHJ1YlwtYW5kXC13aXBlOwor5qWgIDwgbmFtZVwtb2ZcLXRyZWU7CivpupMgPCBmb290XC1vZlwtaGlsbDsKK+aBuyA8IGZlZWxcLWFuZ3Vpc2g7CivmoYUgPCBtYXN0XC1vZlwtc2hpcDsKK+mqiyA8IGdhbGxvcFwtaG9yc2U7CivouZIgPCB0b1wtanVtcFwtb3ZlcjsKK+elgCA8IHRvXC1zYWNyaWZpY2U7Civlr7AgPCBncmVhdFwtZG9tYWluOwor5paTIDwgbXVsdGljb2xvcmVkOwor5LyrIDwgbG9va1wtdG93YXJkczsKK+i6jyA8IHRyYW1wbGVcLWRvd247Civmsr0gPCBidXlcLWFuZFwtc2VsbDsKK+ePpSA8IGVhclwtb3JuYW1lbnQ7CivnrIYgPCBiYW1ib29cLWZlbmNlOwor6JmsIDwgeW91bmdcLWRyYWdvbjsKK+aDrCA8IGJlXC1zYXRpc2ZpZWQ7CivnvKggPCBhXC1jaGluXC1zdHJhcDsKK+WKviA8IGV4YW1pbmVcLWludG87CivlmKQgPCBzZWVrXC1mcmllbmRzOwor6K+DIDwgc2NvbGRcLWxvdWRseTsKK+WGvSA8IGNvbGRcLWFuZFwtcmF3Owor6aOoIDwgaG9zdFwtYmFucXVldDsKK+aAjyA8IGRpc2NvbnRlbnRlZDsKK+WGoiA8IGJ1cmlhbFwtbW91bmQ7Civll7MgPCBpbnRlcmplY3Rpb247CivlrpUgPCBzdG9uZVwtcXVhcnJ5Owor6ICGIDwgbWFuXC1vZlwtc2l4dHk7CivpnZMgPCBtYWtlXC11cFwtZmFjZTsKK+ibsCA8IHRvXC1oaWJlcm5hdGU7CivmjrwgPCB0aHJvd1wtZ3JvdW5kOwor5ZukIDwgZ3JhaW5cLWJhc2tldDsKK+etsSA8IGR3YXJmXC1iYW1ib287CivmqJ8gPCBjYW1waG9yXC10cmVlOwor6bKlIDwgcmVldmVzJydcLXNoYWQ7CivpgLUgPCB0aG9yb3VnaGZhcmU7CivlsrcgPCBtaW5cLW1vdW50YWluOwor5p6wIDwgc21vb3RoXC1ib2FyZDsKK+WxkCA8IHdvb2Rlblwtc2hvZXM7Civog5sgPCB0aGVcLXNob3VsZGVyOwor6bmeIDwgc3BhcnJvd1wtaGF3azsKK+eKhCA8IGFuaW1hbFwtaG9ybnM7Civot7kgPCB3YW5kZXJcLWFib3V0Owor5pixIDwgYnJpZ2h0XC1saWdodDsKK+a5hCA8IHdhdGVyJydzXC1lZGdlOwor6I+FIDwgY29hcnNlXC1ncmFzczsKK+e7uyA8IGFmZmVjdGlvbmF0ZTsKK+evgSA8IGJhbWJvb1wtZ3JvdmU7CivotYUgPCBwcmVwYXJlZFwtZm9yOwor5qSBIDwgb3V0ZXJcLWNvZmZpbjsKK+e6sCA8IHNwb2lsZWRcLXNpbGs7CivpvIsgPCBsYXJnZVwtdHVydGxlOwor6YaQIDwgcHVyZXN0XC1jcmVhbTsKK+m+iSA8IHVuZXZlblwtdGVldGg7Civoi7sgPCBraW5kXC1vZlwtaGVyYjsKK+msoyA8IGhvcnNlJydzXC1tYW5lOwor57yXIDwgZmlzaGluZ1wtbGluZTsKK+a5qyA8IGFcLXNtYWxsXC1wb25kOwor5LufIDwgb25lXC10aG91c2FuZDsKK+iatiA8IGtpbmRcLW9mXC1jbGFtOwor6JuEIDwgbW9sZVwtY3JpY2tldDsKK+avgiA8IGh1Ylwtb2ZcLXdoZWVsOwor55WaIDwgc3RyYXdcLWJhc2tldDsKK+a0hCA8IGFcLWJhY2tcLXdhdGVyOwor6aOnIDwgZXZlbmluZ1wtbWVhbDsKK+mGqiA8IHVuY2xlYXJcLXdpbmU7Civpqp0gPCBmYW1vdXNcLWhvcnNlOwor6aqSIDwgbW90aGVyXC1ob3JzZTsKK+aHlCA8IGJlXC1hZnJhaWRcLW9mOwor5YqTIDwgY3V0XC1vZmZcLW5vc2U7CivouJQgPCB0b1wtZ2V0XC1haGVhZDsKK+mioSA8IHRoZVwtZm9yZWhlYWQ7CivmvbIgPCBkcml2aW5nXC1yYWluOwor57yvIDwgc2lsa1wtZmFicmljczsKK+eUkyA8IGdsYXplZFwtdGlsZXM7CivojawgPCBhXC1wbGFudFwtbmFtZTsKK+afkiA8IG51bWJlclwtc2V2ZW47CivnmLMgPCB0b1wtYmVcLWhlYWxlZDsKK+iwhyA8IHNwZWFrXC1pbGxcLW9mOwor5LmHIDwgdG9cLWRlcGVuZFwtb247Civlhbbku5bnmoTkurogPCBvdGhlclwtcGVvcGxlOwor5Yqg57eKIDwgdG9cLWludGVuc2lmeTsKK+iQrOS6i+mBlCA8IG1hc3RlclwoY2FyZFwpOwor552h6Ka6IDwgdG9cLWdvXC10b1wtYmVkOwor5pep5pyfIDwgZWFybHlcLXBlcmlvZDsKK+e0hOePpeabuCA8IGJvb2tcLW9mXC1qb2VsOwor5aqS6auU5aCx5bCOIDwgbWVkaWFcLXJlcG9ydDsKK+ebuOmXnCA8IGludGVycmVsYXRlZDsKK+iJvua7i+eXheaCo+iAhSA8IGFpZHNcLXBhdGllbnQ7Civngavpvo0gPCBmaWVyeVwtZHJhZ29uOwor5ZCI5L2cIDwgdG9cLWNvb3BlcmF0ZTsKK+izoOWEn+mHkSA8IGNvbXBlbnNhdGlvbjsKK+ewv+iomOeuoeeQhuWToSA8IGNvbW1pc3NhcmlhbjsKK+aZuuWKmyA8IGludGVsbGlnZW5jZTsKK+ekuuWogeiAhSA8IGRlbW9uc3RyYXRvcjsKK+aYlOW5tCA8IGZvcm1lclwteWVhcnM7CivlkozlubPmop3ntIQgPCBwZWFjZVwtdHJlYXR5Owor5q+b5Li75bitIDwgY2hhaXJtYW5cLW1hbzsKK+ekpuS6lSA8IG1pbmVcLVwoc2hhZnRcKTsKK+eGn+efpSA8IGFjcXVhaW50YW5jZTsKK+aUr+elqCA8IFwoYmFua1wpXC1jaGVjazsKK+W7uuevieeJqSA8IFwoYVwpXC1idWlsZGluZzsKK+WnkOWnkCA8IG9sZGVyXC1zaXN0ZXI7CivogqHnpajluILloLQgPCBzdG9ja1wtbWFya2V0Owor6Zax6Ka95a6kIDwgcmVhZGluZ1wtcm9vbTsKK+itpuWgsSA8IFwoZmlyZVwpXC1hbGFybTsKK+W+jOaenCA8IGNvbnNlcXVlbmNlczsKK+S4jeWQjeitvSA8IGRpc3JlcHV0YWJsZTsKK+aUtuebpCA8IG1hcmtldFwtY2xvc2U7Civln47pmLIgPCBjaXR5XC1kZWZlbmNlOwor6aCC5L2PIDwgdG9cLXdpdGhzdGFuZDsKK+ilv+mDqCA8IHdlc3Rlcm5cLXBhcnQ7Civlpb3mhJ8gPCBnb29kXC1vcGluaW9uOwor5qmf5qKw56K8IDwgbWFjaGluZVwtY29kZTsKK+WksealrSA8IHVuZW1wbG95bWVudDsKK+aTheiHqiA8IHVuYXV0aG9yaXplZDsKK+Wkp+mpmuWkseiJsiA8IGFwcHJlaGVuc2l2ZTsKK+mrmOWxpOaXhemkqCA8IGx1eHVyeVwtaG90ZWw7CivpgJXoh6ogPCBvblwtb25lJydzXC1vd247Civov5HoppYgPCBzaG9ydHNpZ2h0ZWQ7CivmraXnioEgPCB3YWxraW5nXC1wbG93Owor5LiN5oiQ5YqfIDwgdW5zdWNjZXNzZnVsOwor5rC05ru45YKzIDwgd2F0ZXJcLW1hcmdpbjsKK+S4jemHjeimliA8IGluZGlmZmVyZW5jZTsKK+mWi+mXnCA8IHBvd2VyXC1zd2l0Y2g7CivljrvkuJYgPCB0b1wtcGFzc1wtYXdheTsKK+S6nua0suiIh+WkquW5s+a0iyA8IGFzaWFcLXBhY2lmaWM7CivljYHkuZ3mrbIgPCAxOVwteWVhcnNcLW9sZDsKK+mdiOeahOS4lueVjCA8IHNwaXJpdFwtd29ybGQ7CivlpJrmlrkgPCBpblwtbWFueVwtd2F5czsKK+aQtuizvCA8IHBhbmljXC1idXlpbmc7Civlt6Hov7QgPCB0b1wtZ29cLWFyb3VuZDsKK+mAmeeoriA8IHRoaXNcLWtpbmRcLW9mOwor5aSn5oSPIDwgZ2VuZXJhbFwtaWRlYTsKK+WNiuaWh+ebsiA8IHNlbWlsaXRlcmF0ZTsKK+WIpeeosSA8IGFub3RoZXJcLW5hbWU7CivmraXmraUgPCBzdGVwXC1ieVwtc3RlcDsKK+WNlOWVhiA8IGNvbnN1bHRcLXdpdGg7Civnn67mmJ8gPCBkd2FyZlwtXChzdGFyXCk7CivmoLjmrablmajoqabpqZcgPCBudWNsZWFyXC10ZXN0Owor5LiZ54Ov6YW4IDwgYWNyeWxpY1wtYWNpZDsKK+WNiueGn+e3tCA8IHNlbWlcLXNraWxsZWQ7CivpgqPmmYIgPCBhdFwtdGhhdFwtdGltZTsKK+WQg+S4jemWiyA8IGJlXC11bnBvcHVsYXI7CivlpKfluKsgPCBncmVhdFwtbWFzdGVyOwor57WE57mUIDwgb3JnYW5pemF0aW9uOwor5Ye65LmO6aCQ5paZIDwgdW5leHBlY3RlZGx5Owor6YCa55SoIDwgY29tbW9uXC1cKHVzZVwpOwor5aSa5belIDwgdG9cLW11bHRpcGxleDsKK+ezvuiRmyA8IGVudGFuZ2xlbWVudDsKK+ippuaOoiA8IHRvXC1zb3VuZFwtb3V0Owor5aSr5aa7IDwgbWFuXC1hbmRcLXdpZmU7CivlnLDmlrnkuLvnvqkgPCBcImxvY2FsXC1cLWlzbVwiOwor6YGT5q2JIDwgdG9cLWFwb2xvZ2l6ZTsKK+aVheaEjyA8IGRlbGliZXJhdGVseTsKK+iri+WVjyA8IG1heVwtaVwtYXNrXC5cLlwuOwor5r+A5YWJ5ZSx54mHIDwgY29tcGFjdFwtZGlzazsKK+S6jOWNgeS4gOS4lue0gCA8IDIxc3RcLWNlbnR1cnk7Civlh7rnmbwgPCB0b1wtc3RhcnRcLW91dDsKK+e4ruWvqyA8IGFiYnJldmlhdGlvbjsKK+S4reWkrumKgOihjCA8IGNlbnRyYWxcLWJhbms7Civlo4HmjpsgPCB3YWxsXC1oYW5naW5nOwor54af5oKJIDwgdG9cLWtub3dcLXdlbGw7Civnhp/mgJ0gPCBkZWxpYmVyYXRpb247CivmlbTlpKkgPCBhbGxcLWRheVwtbG9uZzsKK+mxieeUsiA8IHR1cnRsZVwtc2hlbGw7Civouqvpq5QgPCBcKGh1bWFuXClcLWJvZHk7Civmlq/lr4bntITnkZ8gPCBqb3NlcGhcLXNtaXRoOwor57O+57qPIDwgYmVcLWVudGFuZ2xlZDsKK+S4jeWQiOeQhiA8IHVucmVhc29uYWJsZTsKK+ebruWJjeS4lueVjCA8IG1vZGVyblwtd29ybGQ7CivopIfoo70gPCB0b1wtZHVwbGljYXRlOwor6ZqK5peXIDwgdGVhbVwtcGVubmFudDsKK+WKoOW8tyA8IHRvXC1yZWluZm9yY2U7Civlh7rnjYQgPCBsZWF2ZVwtcHJpc29uOwor5LiN5oSJ5b+rIDwgZGlzYWdyZWVhYmxlOwor6KuH5YikIDwgdG9cLW5lZ290aWF0ZTsKK+eci+eXhSA8IHNlZVwtYVwtZG9jdG9yOwor5rCR5oSP6Kq/5p+lIDwgb3BpbmlvblwtcG9sbDsKK+W+iOS4jSA8IHZlcnlcLXVuXC1cLlwuXC5cLjsKK+avheWKmyA8IHBlcnNldmVyYW5jZTsKK+iQveWvpiA8IHRvXC1pbXBsZW1lbnQ7CivmlK/lupcgPCBicmFuY2hcLXN0b3JlOwor6b2GIDwgc3R1ZmZlZFwtbm96ZTsKK+m8vSA8IGNsb2dnZWRcLW5vc2U7Civnmb3olq8gPCBzd2VldFwtcG90YXRvOwor57a15peXIDwgY29sb3JlZFwtZmxhZzsKK+mkiumbnuWgtCA8IGNoaWNrZW5cLWZhcm07CivpupUgPCBtdW50amFjXC1kZWVyOwor54++5Luj6Z+z5qiCIDwgbW9kZXJuXC1tdXNpYzsKK+WbnumhpyA8IHRvXC1sb29rXC1iYWNrOwor5q6t5YyWIDwgYmVjb21lXC1yaWdpZDsKK+mzkCA8IHRoZVwtbmF1dGlsdXM7CivpsZEgPCB0aGVcLXN0dXJnZW9uOwor6bGCIDwgbmFtZVwtb2ZcLWZpc2g7Civoo73pgKDmpa3ogIUgPCBtYW51ZmFjdHVyZXI7Civohp3kuIrlnosgPCBsYXB0b3BcLVwoYWRqXCk7CivngI/opr0gPCB0b1wtc2tpbVwtb3ZlcjsKK+W/g+eQhuWtuOWutiA8IHBzeWNob2xvZ2lzdDsKK+mtpiA8IHNoYXJrXC1mYW1pbHk7CivprLUgPCBiaWdcLWlyb25cLXBvdDsKK+mshSA8IHVua2VtcHRcLWhhaXI7CivoqrLkvZkgPCBhZnRlclwtc2Nob29sOwor6LuK6YGTIDwgdHJhZmZpY1wtbGFuZTsKK+ato+WmgiA8IGJlXC1qdXN0XC1saWtlOwor6amIIDwgYmxhY2tcLWhvcnNlczsKK+mohiA8IGRpdmluZVwtaG9yc2U7Civpp5wgPCBzdHJvbmdcLWhvcnNlOwor6aeXIDwgY2hhdHRlclwtbWFyazsKK+acieaineacieeQhuWcsCA8IG1ldGhvZGljYWxseTsKK+S4jeaYr+eOqeWFkueahCA8IGl0JydzXC1ub1wtam9rZTsKK+Wvpumam+aApyA8IHByYWN0aWNhbGl0eTsKK+WNgeS4gOW5tCA8IGVsZXZlblwteWVhcnM7CivppIAgPCB0YWludGVkXC1mb29kOwor5LiN6IO95oq15oqXIDwgaXJyZXNpc3RpYmxlOwor6aKtIDwgc3dheVwtaW5cLXdpbmQ7CivntJnniYwgPCBwbGF5aW5nXC1jYXJkOwor6Z6mIDwgbGVhdGhlclwtc3RhcDsKK+mBjuWig+ewveiovCA8IHRyYW5zaXRcLXZpc2E7CivpnJEgPCBiZVwtbW9pc3RlbmVkOwor6ZmBIDwgYVwtc3RlZXBcLWJhbms7CivnmbzntIUgPCBmbHVzaFwtXChmYWNlXCk7Civpm4blkIggPCBjb25ncmVnYXRpb247CivpgJ/miJAgPCBjcmFzaFwtY291cnNlOwor6ZeRIDwgdGhlXC1kb29yc2lsbDsKK+WFiee3miA8IG9wdGljYWxcLWxpbmU7CivplaggPCBwcmFzZW9keW1pdW07CivliqrlipsgPCBncmVhdFwtZWZmb3J0Owor5byV5YWlIDwgdG9cLWRyYXdcLWludG87Civlu6DlnYAgPCBmYWN0b3J5XC1zaXRlOwor6Y+3IDwgcHJvdGFjdGluaXVtOwor55u45Ly85oCnIDwgcmVzc2VtYmxhbmNlOwor6Z2e5ZCM5q2lIDwgYXN5bmNocm9ub3VzOwor6Y2KIDwgc21lbHRcLW1ldGFsczsKK+mMiCA8IHRvXC1iZW5kXC1pcm9uOwor5YKz6YGT5pu4IDwgZWNjbGVzaWFzdGVzOwor6Zqo5ZCMIDwgYWNjb21wYW55aW5nOwor6IC256mM5Z+6552jIDwgamVzdXNcLWNocmlzdDsKK+eGkuWFiSA8IGZsb3VyZXNjZW5jZTsKK+iomOiAheWgseWwjiA8IHByZXNzXC1yZXBvcnQ7Civph6ogPCBhblwtYWxtc1wtYm93bDsKK+W7o+WRiiA8IHRvXC1hZHZlcnRpc2U7Civphr0gPCBraW5kXC1vZlwtd2luZTsKK+aMqOi/kSA8IGdldFwtY2xvc2VcLXRvOwor57eo5YqHIDwgd3JpdGVcLWFcLXBsYXk7Civlo5PlgJIgPCBvdmVyd2hlbG1pbmc7CivmjqHohIIgPCB0cmVlXC10YXBwaW5nOwor6YOZIDwgdG9cLWJlXC1leGlsZWQ7CivpgrIgPCBnb29kXC1sb29raW5nOwor6L+jIDwgdG9cLWxlYXBcLW92ZXI7CivpgJ/lr6sgPCBxdWlja1wtc2tldGNoOwor5aSa5bel5L2c5qWtIDwgbXVsdGl0YWtzaW5nOwor55m86KiA5Lq6IDwgc3Bva2VzcGVyc29uOwor6Li8IDwgdG9cLWZhbGxcLWZsYXQ7CivouKQgPCBidXR0XC1hZ2FpbnN0Owor6ZuG5Lit5ZmoIDwgY29uY2VudHJhdG9yOwor5LiN5aSn6Zui5YWSIDwgcHJldHR5XC1jbG9zZTsKK+mAseWcjSA8IHN1cnJvdW5kaW5nczsKK+a/vue0mSA8IGZpbHRlclwtcGFwZXI7Civos4kgPCB0b1wtZ2l2ZVwtYWxtczsKK+iyhiA8IHNtYWxsXC1iYWRnZXI7CivosbYgPCBjYXN0cmF0ZVwtcGlnOwor6Laz55CD6L+3IDwgZm9vdGJhbGxcLWZhbjsKK+acrOS+humdouebriA8IHRydWVcLWNvbG91cnM7CivoqKrkv4QgPCB2aXNpdFwtcnVzc2lhOwor5ouU6YyoIDwgd2VpZ2hcLWFuY2hvcjsKK+aomeeHiCA8IGJlYWNvblwtbGlnaHQ7CivlhrDmmbYgPCBpY2VcLWNyeXN0YWxzOwor6Kq+IDwgc3BlYWtcLWdlbnRseTsKK+W5vuWkqSA8IHNldmVyYWxcLWRheXM7Civmjojnsr4gPCBpbnNlbWluYXRpb247Civpq5LoqbEgPCBiYWRcLWxhbmd1YWdlOwor5Ye55bK4IDwgY29uY2F2ZVwtYmFuazsKK+ilmyA8IGZpbmVcLWNsb3RoZXM7CivopYYgPCBob29kXC1vclwtY293bDsKK+mBjuS+hiA8IHRvXC1jb21lXC1vdmVyOwor5pON5YueIDwgdG9cLXdvcmtcLWhhcmQ7CivpgqPmqKPnmoQgPCB0aGF0XC1raW5kXC1vZjsKK+WFiea6kCA8IGxpZ2h0XC1zb3VyY2U7Civnspfkv5fnmoTpmo7ntJogPCB2dWxnYXJcLWNsYXNzOwor6YCf5YeNIDwgcXVpY2tcLWZyZWV6ZTsKK+e2sui3r+evgOm7niA8IG5ldHdvcmtcLW5vZGU7CivlnZDniaIgPCBpbXByaXNvbm1lbnQ7Civoo5zniZkgPCBmaWxsXC1hXC10b290aDsKK+WIqOWIgCA8IHBsYW5pbmdcLXRvb2w7Civmiorpl5wgPCBndWFyZFwtYVwtcGFzczsKK+aJk+WNsOacjeWLmeWZqCA8IHByaW50XC1zZXJ2ZXI7CivkuI3lj6/mlLbmi74gPCBpcnJlbWVkaWFibGU7CivljYrpgorlpKkgPCBoYWxmXC10aGVcLXNreTsKK+iRnCA8IHNtaWxheFwtY2hpbmE7CivokKkgPCBzY2FuZGVudFwtaG9wOwor6JCYIDwgbmFwaHRoYW5sZW5lOwor6Ieq6KGbIDwgc2VsZlwtZGVmZW5zZTsKK+izk+ilv+azleWwvOS6niA8IHBlbm5zeWx2YW5pYTsKK+iOpiA8IGp1bmdsZVwtZ3Jhc3M7CivlnIvlrrbmqZ/lr4YgPCBzdGF0ZVwtc2VjcmV0Owor6Zmb5LiLIDwgeW91clwtbWFqZXN0eTsKK+WFq+aciCA8IGVpZ2h0aFwtbW9udGg7CivoipogPCBncmVlblwtc3Byb3V0Owor5YKZ6ICDIDwgXChhblwtYXBwZW5kaXg7CivoipEgPCB3aGl0ZVwtbWlsbGV0Owor5bm05YmNIDwgXC5cLlwueWVhcnNcLWFnbzsKK+iGlyA8IHVnbHlcLWFuZFwtZmF0Owor6ZaL5pSvIDwgZXhwZW5kaXR1cmVzOwor5o2P56mNIDwgY2hpcm9wcmFjdGljOwor6JGh6JCE6YWSIDwgXChncmFwZVwpXC13aW5lOwor6IKZIDwgYVwtc21hbGxcLXdvcm07CivnvoAgPCBmaXNoaW5nXC10cmFwOwor6Kq/5p+l5Lq65ZOhIDwgaW52ZXN0aWdhdG9yOwor5q2m6KOd6YOo6ZqKIDwgYXJtZWRcLWZvcmNlczsKK+WgseWDuSA8IHF1b3RlZFwtcHJpY2U7Civov7fkv6EgPCBzdXBlcnN0aXRpb247CivnuoEgPCBzaGFkZVwtb2ZcLXJlZDsKK+e5mSA8IHRvXC1pbnRlcnByZXQ7CivnuJUgPCB0YW5nbGVkXC1oZW1wOwor6L2J5o+bIDwgdG9cLXRyYW5zZm9ybTsKK+aQrOWutiA8IG1vdmVcLVwoaG91c2VcKTsKK+aItumgrSA8IGJhbmtcLWFjY291bnQ7CivovrLkvZzniakgPCBcKGZhcm1cKVwtY3JvcHM7Civnsa8gPCBiYW1ib29cLWNoZXN0Owor5Zub5Y2B5aSaIDwgbW9yZVwtdGhhblwtNDA7Civopqrkv6EgPCB0cnVzdGVkXC1haWRlOwor562kIDwgeW91bmdcLWJhbWJvbzsKK+ihjOeoiyA8IHRyYXZlbFwtcm91dGU7CivnrY0gPCBiYW1ib29cLXNob290Owor562FIDwgYmFtYm9vXC1icnVzaDsKK+WatOeroyA8IHRpZ2h0XC5zdHJpY3Q7CivorYnlr6bnpq4gPCBjb25maXJtYXRpb247CivlkI3pjITmnI3li5kgPCBuYW1lXC1zZXJ2aWNlOwor56esIDwgYmxhY2tcLW1pbGxldDsKK+eci+S9nCA8IGxvb2tcLXVwb25cLWFzOwor6Kqe6Z+z5L+h6JmfIDwgdm9pY2VcLXNpZ25hbDsKK+Wvp+mhmCA8IHdvdWxkXC1yYXRoZXI7CivnpZggPCB0b1wtY2FsY3VsYXRlOwor56OgIDwgc2FsXC1hbW1vbmlhYzsKK+eitiA8IGFcLWZsb29kXC1nYXRlOwor5o6l5p6dIDwgXCh0cmVlXClcLWdyYWZ0Owor5o6I5qyKIDwgdG9cLWF1dGhvcml6ZTsKK+efvCA8IHN0b25lXC1icmlkZ2U7CivplovlrbggPCBzY2hvb2xcLW9wZW5zOwor552SIDwgdG9cLWdsYW5jZVwtYXQ7Civkv53orYkgPCB0b1wtZ3VhcmFudGVlOwor5om56KmVIDwgdG9cLWNyaXRpY2l6ZTsKK+Wuh+iIquWxgCA8IHNwYWNlXC1hZ2VuY3k7CivnmqYgPCBicmlnaHRcLXdoaXRlOwor5Luk5Lq66ama55WwIDwgc3VycHJpc2luZ2x5Owor55i6IDwgYW5hbFwtZmlzdHVsYTsKK+WOu+Wci+WkliA8IHRvXC1nb1wtYWJyb2FkOwor55a/IDwgcHJpY2tseVwtaGVhdDsKK+aLlOe1siA8IHdpcmVcLWRyYXdpbmc7CivmiZPos60gPCBcKG1ha2VcLWFcKVwtYmV0Owor5YSq5oOgIDwgcHJlZmVyZW50aWFsOwor56ys5LqM5L2NIDwgc2Vjb25kXC1wbGFjZTsKK+WFrOWgsSA8IGFubm91bmNlbWVudDsKK+WfuuekjuioreaWvSA8IGJhc2VcLXN0YXRpb247Civlr4bpm4YgPCBjb25jZW50cmF0ZWQ7CivmjojmmYIgPCB0aW1lXC1zZXJ2aWNlOwor5Zyo5peBIDwgYnlcLVwoYVwtcGxhY2VcKTsKK+WQjOaZguS7oyA8IGNvbnRlbXBvcmFyeTsKK+eOjSA8IGlsbFwtdGVtcGVyZWQ7Civmi7znm6QgPCBjb2xkXC1wbGF0dGVyOwor54uGIDwgcGVraW5lc2VcLWRvZzsKK+eJgiA8IGZlbWFsZVwtc2hlZXA7CivmjZDmrL4gPCBkb25hdGVcLW1vbmV5Owor5Ymv57i955CGIDwgdmljZVwtcHJlbWllcjsKK+Wci+aciSA8IG5hdGlvbmFsaXplZDsKK+ezu+S4iiA8IHRvXC1idWNrbGVcLXVwOwor6IOM6ZuiIDwgZGV2aWF0ZVwtZnJvbTsKK+aMieeFpyA8IGFjY29yZGluZ1wtdG87CivlgbbnhLYgPCBpbmNpZGVudGFsbHk7Civllonpj6EgPCBsYXJ5bmdvc2NvcGU7Civog4zpmbAgPCBpblwtdGhlXC1zaGFkZTsKK+eUn+WRvei3oeixoSA8IHNpZ25cLW9mXC1saWZlOwor5YWp5Y2DIDwgdHdvXC10aG91c2FuZDsKK+a7iiA8IGFcLXJpdmVyXC1uYW1lOwor6Lev5b6X6KiYIDwgYm9va1wtb2ZcLXJ1dGg7Civmj5LlnJYgPCBpbGx1c3RyYXRpb247Civms5YgPCBzdGlsbFwtd2F0ZXJzOwor55+l6K2Y5YiG5a2QIDwgaW50ZWxsZWN0dWFsOwor566h55CGIDwgdG9cLXN1cGVydmlzZTsKK+S4ieWQiOS4gCA8IHRocmVlXC1pblwtb25lOwor5q+IIDwgZmVydGlsZVwtZWdnczsKK+aunCA8IGhhbGZcLXNpdHRpbmc7Civlm5vnmb7okKwgPCBmb3VyXC1taWxsaW9uOwor5qKF6IqxIDwgcGx1bVwtYmxvc3NvbTsKK+mYv+aRqeWPuOabuCA8IGJvb2tcLW9mXC1hbW9zOwor55W254S2IDwgb25seVwtbmF0dXJhbDsKK+apkiA8IHdvb2RcLXN0cmVha3M7Civpq5jos6rph48gPCBoaWdoXC1xdWFsaXR5Owor5qiZ5YO5IDwgbWFya1wtYVwtcHJpY2U7Civmp7sgPCB6ZWxrb3ZhXC10cmVlOwor5qOS56GrIDwgcm9sbFwtc3VscGh1cjsKK+anlCA8IHdhdGVyXC1wdWxsZXk7CivlpKLmuLjnl4cgPCB0b1wtc2xlZXB3YWxrOwor6IC25Yip57Gz5ZOA5q2MIDwgbGFtZW50YXRpb25zOwor6aWF6aCtIDwgc3RlYW1lZFwtcm9sbDsKK+S/neeuoSA8IHRha2VcLWNhcmVcLW9mOwor55So5oi25a6a576pIDwgdXNlclwtZGVmaW5lZDsKK+WeguS4iyA8IHRvXC1oYW5nXC1kb3duOwor5oiQ5ZCJ5oCd5rGXIDwgZ2VuZ2hpc1wta2hhbjsKK+aRmSA8IHRvXC10cmFuc3BvcnQ7Civoo4Hlk6EgPCB0b1wtY3V0XC1zdGFmZjsKK+a4hemGkiA8IGNsZWFyXC1oZWFkZWQ7Civoo5zlhYUgPCB0b1wtcmVwbGVuaXNoOwor5LiN57WQ55ufIDwgbm9uYWxpZ25tZW50Owor5o+RIDwgdG9cLWZhYnJpY2F0ZTsKK+WFq+e0mumiqCA8IGZvcmNlXC04XC13aW5kOwor5oiJIDwgYVwtYmF0dGxlXC1heGU7Civkvr/np5ggPCBjb25zdGlwYXRpb247Civnl4XluoogPCBob3NwaXRhbFwtYmVkOwor5bm85YWS5ZySIDwga2luZGVyZ2FydGVuOwor5qGU5a2Q5rC0IDwgb3JhbmdlXC1qdWljZTsKK+aemOmRvyA8IGluY29tcGF0aWJsZTsKK+S4u+W5uee2sui3ryA8IGNvcmVcLW5ldHdvcms7Civlu7kgPCB0b1wtcGVyc2VjdXRlOwor5Ym16YCg5oCnIDwgY3JlYXRpdmVuZXNzOwor5Zqu5b6AIDwgdG9cLXllYXJuXC1mb3I7Civoh6rmi5QgPCBmcmVlXC1vbmVzZWxmOwor5bioIDwgaGFuZGtlcmNoaWVmOwor5baiIDwgaGlnaFwtb3JcLXRhbGw7CivlsZggPCB0aGVcLXlvdW5nZXN0Owor6Iiq5aSpIDwgc3BhY2VcLWZsaWdodDsKK+mrmOWvhiA8IGhpZ2hcLWRlbnNpdHk7CivooajlnJ8gPCBzdXJmYWNlXC1zb2lsOwor5q235Luj5b+X5LiLIDwgMlwtY2hyb25pY2xlczsKK+att+S7o+W/l+S4iiA8IDFcLWNocm9uaWNsZXM7Civlq7IgPCBncmFuZFwtbW90aGVyOwor6LOe6K2YIDwgYXBwcmVjaWF0aW9uOwor5raI6ZmkIDwgdG9cLWVsaW1pbmF0ZTsKK+eRnuiJsiA8IGxvdmVseVwtY29sb3I7Civogb3oqqogPCB0b1wtaGVhclwtdG9sZDsKK+WRqOe4veeQhiA8IHByZW1pZXJcLXpob3U7Civln7fmlL/pu6ggPCBydWxpbmdcLXBhcnR5Owor55W25b+DIDwgdG9cLXRha2VcLWNhcmU7CivnlbDmgKcgPCBoZXRlcm9zZXh1YWw7CivkuqTpi5IgPCBjcm9zc1wtc3dvcmRzOwor6IiI5aWuIDwgXChiZVwpXC1leGNpdGVkOwor5oyH5Luk5ZCN5a2XIDwgY29tbWFuZFwtbmFtZTsKK+emvemhniA8IGJpcmRcLXNwZWNpZXM7Civmr43opqrnr4AgPCBtb3RoZXInJ3NcLWRheTsKK+WWrSA8IGNvbmRvbGVcLXdpdGg7CivkuIDlsI/pg6jliIYgPCBhXC1zbWFsbFwtcGFydDsKK+WBveWWhCA8IGh5cG9jcml0aWNhbDsKK+aKseaEpyA8IGZlZWxcLWFzaGFtZWQ7CivlkbkgPCB0b1wtZWF0XC1ncmFzczsKK+S4gOS4i+WFkiA8IGFcLWxpdHRsZVwtYml0Owor6LKg6LKsIDwgaW5cLWNoYXJnZVwtb2Y7Civnj77ooYwgPCBiZVwtaW5cLWVmZmVjdDsKK+WxiOacjSA8IHRvXC1zdXJyZW5kZXI7CivljrcgPCB0aGVcLWZvcmVcLWFybTsKK+a4m+e3qSA8IHRvXC1zbG93XC1kb3duOwor5YujIDwgYWNoaWV2ZW1lbnRzOwor5LiL6b2SIDwgYm90dG9tXC10ZWV0aDsKK+WqkumrlCA8IFwobmV3c1wpXC1tZWRpYTsKK+WJtyA8IHRvXC1sZXZlbFwtb2ZmOwor6ama5oSVIDwgYXN0b25pc2htZW50Owor55W25aC0IDwgYXRcLXRoZVwtc2NlbmU7CivopIfoo73lk4EgPCByZXByb2R1Y3Rpb247CivlhJcgPCBjb21wYXJlXC13aXRoOwor5Y+45rOV5qyKIDwganVyaXNkaWN0aW9uOwor5ama6b2hIDwgbWFycnlpbmdcLWFnZTsKK+aKseWxiCA8IGZlZWxcLXdyb25nZWQ7CivkvZTkvr/lrpwgPCBhZHZlbnRhZ2VvdXM7Civkva0gPCB1bnN1Ym1pc3NpdmU7Civpo5/orZwgPCBjb29rZXJ5XC1ib29rOwor5Li8IDwgYm93bFwtb2ZcLWZvb2Q7CivkuKbpnZ4gPCByZWFsbHlcLWlzbicndDsKK+eqgeegtCA8IGJyZWFrdGhyb3VnaDsKK+m8u+S4remalCA8IG5hc2FsXC1zZXB0dW07CivmlrDogZ7omZUgPCBuZXdzXC1zZXJ2aWNlOwor5L615pmoIDwgdG93YXJkc1wtZGF3bjsKK+S0vCA8IHRvXC1leHRpcnBhdGU7CivktJUgPCBhXC13b29kcGVja2VyOwor5ryi5Z+OIDwgc2VvdWxcLFwta29yZWE7Civks5YgPCBmbHlpbmdcLWJpcmRzOwor5LKcIDwgbG90c1wtb2ZcLWZpc2g7CivksYogPCByb2VcLW9yXC1zcGF3bjsKK+SvtiA8IGZhaXJcLW9mXC1oYWlyOwor5K+nIDwgYVwtc21hbGxcLWhhbGw7CivpgYvli5XpnosgPCBzcG9ydHNcLXNob2VzOwor5K6fIDwgYmlnXC1hbmRcLXRhbGw7CivlsJHmlbggPCBzbWFsbFwtbnVtYmVyOwor5K6RIDwgYVwtZ3JheVwtaG9yc2U7CivkrZggPCB3ZWxsXC1zdGFja2VkOwor5K2WIDwgYW5pbWFsXC1mZWVkczsKK+aLjOWSjCA8IG1peFwtYW5kXC1zdGlyOwor5K2JIDwgbWFzaGVkXC1iZWFuczsKK+SsnCA8IGV2aWxcLXNwaXJpdHM7CivkrJogPCB0b1wtbW92ZVwtZmFzdDsKK+SsiyA8IHZpb2xlbnRcLXdpbmQ7CivmtYHpgJogPCB0b1wtY2lyY3VsYXRlOwor5KuoIDwgdGFsbFwtYW5kXC1iaWc7Civkq5ogPCBzaG9ydFwtaGVhZGVkOwor5KuVIDwgc21hbGxcLWhlYWRlZDsKK+WSqOipoiA8IGNvbnN1bHRhdGl2ZTsKK+SrhyA8IHRoZVwtd2hpc2tlcnM7CivmiZLmi4kgPCBwdXNoXC1saWdodGx5Owor5Kq5IDwgYVwtbGFyZ2VcLWZhY2U7CivkqqEgPCB0b1wtZmFsbFwtZG93bjsKK+SqiyA8IHNpbGtcLWNvcmRhZ2U7CivkqY8gPCBhXC1zbWFsbFwtZmFjZTsKK+SpiyA8IGFcLWdyZWVuXC1mYWNlOwor5KmHIDwgYVwtc21hbGxcLWhlYWQ7CivlsIjmlL8gPCBkaWN0YXRvcnNoaXA7CivkqLYgPCB0aHVuZGVyc3Rvcm07CivkqLIgPCBhXC1zbWFsbFwtaGFyZTsKK+SoqiA8IGFcLWR1c3RcLXN0b3JtOwor5KidIDwgYVwtcHVyZVwtd29tYW47CivkqIggPCBhXC1zbWFsbFwtYmlyZDsKK+mjvOiNiSA8IGZvcmFnZVwtZ3Jhc3M7Civkp6IgPCBhXC1yb3VnaFwtcm9hZDsKK+SnmSA8IGFcLWhpZ2hcLW1vdW5kOwor6by76IWUIDwgbmFzYWxcLWNhdml0eTsKK+aguOi9n+eCuCA8IG51Y2xlYXJcLWJvbWI7CivmtbTooYAgPCBibG9vZFwtc29ha2VkOwor5KWDIDwgYVwtYmlnXC1oYW1tZXI7CivkpKwgPCBhXC1zbWFsbFwtZ29uZzsKK+SkoyA8IGFcLW1ldGFsXC1yaW5nOwor5KSLIDwgeWVsbG93XC1mYWNlZDsKK+SjviA8IGNoZWVzZVwtZHJlZ3M7Civko7wgPCBtaXhlZFwtc3RhcmNoOwor5bGs5ZyLIDwgdmFzc2FsXC1zdGF0ZTsKK+SglCA8IGZhclwtYW5kXC1kZWVwOwor5J+/IDwgdG9cLXJldmVyZW5jZTsKK+SfuSA8IHRvXC1ob3BcLWFib3V0Owor6L2J6LOs5Y2hIDwgYVwtZGViaXRcLWNhcmQ7Civpi7znrYYgPCBmb3VudGFpblwtcGVuOwor5J+VIDwgdG9cLXN0ZXBcLXVwb247CivknrEgPCB0b1wtZmFsbFwtb3ZlcjsKK+SepyA8IGhhcmRcLXRvXC13YWxrOwor5YGJ5Lq6IDwgZ3JlYXRcLXBlcnNvbjsKK+WuieeHnyA8IHBpdGNoXC1hXC1jYW1wOwor5ZKM6KejIDwgY29uY2lsaWF0b3J5Owor6Z2i5bCN6Z2iIDwgZmFjZVwtdG9cLWZhY2U7CivkmqogPCBjdXJ2ZWRcLWhvcm5zOwor5qKd5a2QIDwgYVwtc2hvcnRcLW5vdGU7Civmj67pnI3nhKHluqYgPCBleHRyYXZhZ2FuY2U7CivmoLnmnKwgPCBcKG5vdFwpXC1hdFwtYWxsOwor5JiEIDwgY2ljYWRhXC1mYW1peTsKK+SYgCA8IGdyYXNzaG9wcGVyczsKK+SXpyA8IGxpYmVsbHVsaWRhZTsKK+eorueoriA8IGFsbFwta2luZHNcLW9mOwor5JaeIDwgYVwtc2VhXC1pbnNlY3Q7CivklbsgPCB0b1wtYWRoZXJlXC10bzsKK+SVuiA8IGRlbnNlXC1ncm93dGg7CivklZ0gPCBtZWRpY2FsXC1oZXJiOwor5JWLIDwgb2ZcLWVsbVwtZ3JvdXA7Civkk68gPCB3YXRlclwtcGVwcGVyOwor55m76Zm45pyI55CDIDwgbW9vblwtbGFuZGluZzsKK+ikh+Wvq+e0mSA8IGNhcmJvblwtcGFwZXI7Civkkb0gPCBhXC1sYXJnZVwtYm9hdDsKK+SRtSA8IGFcLXNtYWxsXC1ib2F0Owor5rOV6ZmiIDwgY291cnRcLW9mXC1sYXc7CivkkIUgPCB0aGVcLWJ1dHRvY2tzOwor5I+AIDwgaW5oYXJtb25pb3VzOwor5I6YIDwgYmlyZHNcLWZseWluZzsKK+ays+mmrCA8IGhpcHBvcG90YW11czsKK+eUn+WRvSA8IGxpZmVcLVwoZm9yY2VcKTsKK+SNhCA8IGFuXC1pbmRlbnR1cmU7CivkjLYgPCBcKVwtYmxhY2tcLXNpbGs7CivkjIcgPCBhXC10aGlja1wtcm9wZTsKK+S4u+inkiA8IGxlYWRpbmdcLXJvbGU7Civmt6vnjKUgPCBhYm9taW5hdGlvbnM7CivnlKLljbUgPCBsYXlcLVwoYW5cLWVnZ1wpOwor5p6c55quIDwgXChmcnVpdFwpXC1wZWVsOwor5IqFIDwgdG9cLXNvYWtcLXJpY2U7Civkia8gPCBkcmllZFwtYmFtYm9vOwor5ImVIDwgYVwtYmFtYm9vXC1oYXQ7CivkiZQgPCBiYW1ib29cLXNsaXBzOwor5IifIDwgYnJva2VuXC1zb3VuZDsKK+SHuCA8IGFcLWJhbWJvb1wtbWF0Owor5IedIDwgdG9cLWJyZWFrXC1vZmY7CivkhqIgPCB0b1wtcGVuZXRyYXRlOwor5IafIDwgY29yZXNwb25kaW5nOwor5IaNIDwgY3V0dGVkXC1jcm9wczsKK+S4jei2syA8IGluc3VmZmljaWVudDsKK+SFgSA8IHRvXC1odXNrXC1yaWNlOwor5omT5a2U5ZmoIDwgaG9sZVwtcHVuY2hlcjsKK+SDsiA8IGFcLWdyZWF0XC1yb2NrOwor5IOvIDwgc21hbGxcLXN0b25lczsKK+SDnSA8IHJ1Z2dlZFwtcm9ja3M7CivkgpAgPCBzaG9ydFwtc3R1cGlkOwor5IGnIDwgdG9cLW9wZW5cLXdpZGU7CivlrrbmlL8gPCBob3VzZWtlZXBpbmc7CivkuI3osrIgPCBpbW1lYXN1cmFibGU7CivkgIEgPCBhXC1zbWFsbFwtYm93bDsKK+O/tSA8IHNvZnRcLWxlYXRoZXI7Civjv7IgPCBhXC1maWVyY2VcLWRvZzsKK+O/qiA8IHNraW5cLWRpc2Vhc2U7Civjv4ogPCB2ZXJ5XC1wYWluZnVsOwor476UIDwgbG9uZ1wtaWxsbmVzczsKK+S7gOm6vOaYryA8IHdoYXRcLWlzXC1cLlwuXC5cPzsKK+i7jeS6i+aPtOWKqSA8IG1pbGl0YXJ5XC1haWQ7Civlh7npgI/pj6EgPCBjb25jYXZlXC1sZW5zOwor47yLIDwgdGhlXC1jdWN1bWJlcjsKK+acrOacrOS4u+e+qSA8IGJvb2tcLXdvcnNoaXA7CivjupYgPCBkb2dzXC1iYXJraW5nOwor47qOIDwgZmllcmNlXC1iZWFzdDsKK+S6lOinkuWkp+aokyA8IHRoZVwtcGVudGFnb247CivjuL4gPCB0b1wtZmlsbGVkXC11cDsKK+O4rSA8IHRoZVwtb3Bwb3NpdGU7Civjt7kgPCBpbnRlbnNlXC1oZWF0Owor47aVIDwgdG9cLXdhc2hcLXJpY2U7CivkvZzmhJsgPCB0b1wtbWFrZVwtbG92ZTsKK+O1iiA8IG1vdmluZ1wtaW1hZ2U7CivjtJUgPCB0b1wtYm9pbFwtYXdheTsKK+OzniA8IGRlZXBcLWFuZFwtZmFyOwor47ORIDwgdG9cLWZsb3dcLW92ZXI7CivjsLcgPCByZXN1cnJlY3Rpb247Civjr6AgPCBhXC1jcm9zc1wtYmVhbTsKK+OvnCA8IGRlY2F5ZWRcLXdvb2Q7Civjrq4gPCBhXC13ZWxsXC1zd2VlcDsKK+OurCA8IGFcLWZydWl0XC10cmVlOwor6JiH6IGvIDwgc292aWV0XC11bmlvbjsKK+OstSA8IHRoZVwtc2hpbmJvbmU7Civmkanopb/lvovms5UgPCBsYXdcLW9mXC1tb3NlczsKK+OrkiA8IGhhbmRzXC1qb2luZWQ7CivlrrPmgJUgPCB0b1wtYmVcLWFmcmFpZDsKK+OrgyA8IGZsYWdzXC1mbHlpbmc7Civjq4EgPCB0b1wtY3V0XC1hcGFydDsKK+aZmumWkyA8IGV2ZW5pbmdcLXRpbWU7CivkupTnmb4gPCBmaXZlXC1odW5kcmVkOwor46e0IDwgdG9cLXJ1YlwtaGFuZHM7Civjpo4gPCBjYW50YW5rZXJvdXM7CivjpbUgPCB0b1wtZGlzaG9ub3VyOwor46SnIDwgY29uY2lsaWF0aW9uOwor46OSIDwgaGFpclwtcmFpc2luZzsKK+OjkSA8IGRvdWJsZVwtaW1hZ2U7Civov4XpgJ/olJPlu7YgPCByYXBpZFwtc3ByZWFkOwor46KXIDwgYVwtaGlnaFwtaG91c2U7CivjoZQgPCBvaWxlZFwtY2FsaWNvOwor46GFIDwgc3RvcmFnZVwtcm9vbTsKK+itiemplyA8IHJlYWxcLXJlc3VsdHM7CivjoL4gPCBhXC1kaXNoXC1jbG90aDsKK+aHiuaClCA8IGZlZWxcLXJlbW9yc2U7CivjoJIgPCBtb3VudGFpblwtdG9wOwor45+QIDwgYmlnXC1hbmRcLWhpZ2g7Civjn4cgPCBhXC1sYW5kXC1zbGlkZTsKK+OeoiA8IHRvXC1hcnJpdmVcLWF0Owor456bIDwgcmVkXC1zbGlwcGVyczsKK+OehSA8IG5vdFwtc3RyYWlnaHQ7Civlj6TnvoXppqwgPCBhbmNpZW50XC1yb21lOwor45yXIDwgY292ZXRvdXNuZXNzOwor45u8IDwgdG9cLWludGVycnVwdDsKK+S/hOS4rSA8IHJ1c3NpYVwtY2hpbmE7Civjm6UgPCB0b1wtcHJvc3RyYXRlOwor45uKIDwgdG9cLXNwZWN1bGF0ZTsKK+S6jOWNgeiQrCA8IDIwMFwtdGhvdXNhbmQ7CivjmKIgPCBhXC1yb3VuZFwtY2F2ZTsKK+OYjSA8IHNvdW5kXC1vZlwtcmF0Owor6K6K6YCfIDwgc3BlZWRcLWNoYW5nZTsKK+OWtyA8IGJpcmRcLXNpbmdpbmc7CivlubTovJXkurogPCB5b3VuZ1wtcGVvcGxlOwor45agIDwgYW5cLWF1eGlsaWFyeTsKK+OVryA8IHNsb3dcLXRvbmd1ZWQ7Civlronlv4MgPCBmZWVsXC1hdFwtZWFzZTsKK+OVkiA8IGFcLWxvZnR5XC1wZWFrOwor45SsIDwgdG9cLWVzdGFibGlzaDsKK+OUpiA8IHRvXC1lbmNvdXJhZ2U7CivjlJUgPCB3aXRoXC1wdXJwb3NlOwor45SDIDwgdG9cLWN1dFwtc2hvcnQ7Civjk6MgPCB0b1wtc2lua1wtaW50bzsKK+S6uuawkSA8IFwodGhlXClcLXBlb3BsZTsKK+Wwh+S+hiA8IFwodGhlXClcLWZ1dHVyZTsKK+ORqiA8IGFcLWdlbmVyYXRpb247CivjkZQgPCBhbGxcLXRvZ2V0aGVyOwor45C4IDwgdG9cLW93blwtbW9uZXk7CivjkLQgPCB0b1wtZHJhZ1wtZG93bjsKK+mhjOiKsSA8IHRpdGxlXC1kZXNpZ247Civlj6/op4AgPCBjb25zaWRlcmFibGU7CivkurrmrIogPCBodW1hblwtcmlnaHRzOwor5LmS5LmT55CDIDwgdGFibGVcLXRlbm5pczsKK+majue0muW8jyA8IGhpZXJhcmNoaWNhbDsKK+S7peaWr+aLieiomCA8IGJvb2tcLW9mXC1lenJhOwor6LaV5LiKIDwga2VlcFwtdXBcLXdpdGg7Civogb3oqqrpgY4gPCB0b1wtaGVhclwtc2FpZDsKK+mXjOWwvueCjiA8IGFwcGVuZGljaXRpczsKK+enu+awkSA8IHRvXC1pbW1pZ3JhdGU7Civku4rmmaggPCB0aGlzXC1tb3JuaW5nOwor5a+G5Y+LIDwgY2xvc2VcLWZyaWVuZDsKK+WNl+mdniA8IHNvdXRoXC1hZnJpY2E7CivkuI3nrKYgPCBpbmNvbnNpc3RlbnQ7CivplovmlL7lvI/ntrLot68gPCBvcGVuXC1uZXR3b3JrOwor5Li555SwIDwgcHViaWNcLXJlZ2lvbjsKK+WNiumfvyA8IGhhbGZcLXRoZVwtZGF5Owor5Li755KwIDwgcHJpbWFyeVwtcmluZzsKK+Wkp+S4gOS6myA8IGFcLWJpdFwtYmlnZ2VyOwor5L2g5YCRIDwgeW91XC1cKHBsdXJhbFwpOwor5LiA55u0IDwgY29udGludW91c2x5Owor55Sf54mp5oiwIDwgZ2VybVwtd2FyZmFyZTsKK+S4jeefpeaJgOaOqiA8IGJlXC1hdFwtYVwtbG9zczsKK+aal+eulyA8IHBsb3RcLWFnYWluc3Q7Civlu7roqK3mgKcgPCBjb25zdHJ1Y3RpdmU7Civkuq7luqYgPCBpbGx1bWluYXRpb247Civlj4PogIMgPCBjb25zdWx0YXRpb247CivllonloZ7pn7MgPCBnbG90dGFsXC1zdG9wOwor5aOv6bqXIDwgbWFnbmlmaWNlbmNlOwor6buo5pS/IDwgcGFydHlcLXBvbGljeTsKK+aqlOahiOacjeWLmSA8IGZpbGVcLXNlcnZvY2U7CivomZDlvoUgPCBtaXN0cmVhdG1lbnQ7CivmhJ/mgakgPCB0aGFua3NnaXZpbmc7CivlpKfpg73mnIMgPCBtZXRyb3BvbGl0YW47CivnvbDnkIMgPCBwZW5hbHR5XC1zaG90Owor6LK75Z+OIDwgcGhpbGFkZWxwaGlhOwor5pyA5L2O6bueIDwgbG93ZXN0XC1wb2ludDsKK+ayueeVqyA8IG9pbFwtcGFpbnRpbmc7Civnvo7mtLIgPCB0aGVcLWFtZXJpY2FzOwor6LKn5ZuwIDwgaW1wb3ZlcmlzaGVkOwor6ZmN6JC95Zyw6bueIDwgbGFuZGluZ1wtc2l0ZTsKK+Wfuuedo+aVmSA8IGNocmlzdGlhbml0eTsKK+Wkp+mHjyA8IGdyZWF0XC1hbW91bnQ7CivpoILnlKggPCB0b1wtYmVcLW9mXC11c2U7CivlronnnKDpha4gPCBtZXRoYXF1YWxvbmU7CivmmpfngZggPCBoaWRkZW5cLXNob2FsOwor6Jel5pa5IDwgcHJlc2NyaXB0aW9uOwor6Kmm6amX5oCnIDwgZXhwZXJpbWVudGFsOwor5Li75oyBIDwgcHJlc2lkZVwtb3ZlcjsKK+mKgOW5lSA8IG1vdmllXC1zY3JlZW47CivogIHlrrYgPCBuYXRpdmVcLXBsYWNlOwor5pqX5r2uIDwgdW5kZXJjdXJyZW50Owor6LK35YO5IDwgYnV5aW5nXC1wcmljZTsKK+WkmumCiiA8IG11bHRpbGF0ZXJhbDsKK+ePvuS7oyA8IG1vZGVyblwtdGltZXM7Civku5bkurogPCBvdGhlclwtcGVyc29uOwor5LmL5b6MIDwgYWZ0ZXJcKHdhcmRzXCk7CivmhaPkvosgPCBjb252ZW50aW9uYWw7CivkuKbmjpIgPCBzaWRlXC1ieVwtc2lkZTsKK+iAleWcsCA8IGFyaWFibGVcLWxhbmQ7CivosrTml4/ljJYgPCBhcmlzdG9jcmF0aWM7CivmtbTloLQgPCBiYXRoaW5nXC1zcG90Owor5LqU55m+6JCsIDwgZml2ZVwtbWlsbGlvbjsKK+iTi+iPnCA8IGxlYWZcLW11c3RhcmQ7CivlhrDmtLLnn7MgPCBpY2VsYW5kXC1zcGFyOwor5qC46LuN5YKZIDwgbnVjbGVhclwtYXJtczsKK+S4jeaLmCA8IG5vdFwtc3RpY2tcLXRvOwor5LiJ5Y2B5LqU5YSEIDwgM1wtXC41XC1iaWxsaW9uOwor6Z6t56CyIDwgZmlyZWNyYWNrZXJzOwor5LqM5Y2B5YWt5q2yIDwgMjZcLXllYXJzXC1vbGQ7CivmhJ/li5UgPCB0b1wtbW92ZVwtXChzYlwpOwor5oSP5ZGzIDwgc2lnbmlmaWNhbmNlOwor6YCf6KiY5ZOhIDwgc3Rlbm9ncmFwaGVyOwor55m95rC05rOlIDwgd2hpdGVcLWNlbWVudDsKK+S4jeaEpyA8IGJlXC13b3J0aHlcLW9mOwor6Z2257SZIDwgdGFyZ2V0XC1zaGVldDsKK+aVuOaTmue2sue1oSA8IGRhdGFcLW5ldHdvcms7CivpvpDnhLblpKfniakgPCBodWdlXC1tb25zdGVyOwor6LGh6IGy6KmeIDwgb25vbWF0b3BvZWlhOwor5oSI5YqgIDwgYWxsXC10aGVcLW1vcmU7CivpgaDpm6IgPCByZW1vdmVkXC1mcm9tOwor5ZKM5ZaEIDwgZ29vZFwtbmF0dXJlZDsKK+iqjeitiSA8IGF1dGhlbnRpY2F0ZTsKK+WIqOm9kiA8IGdlYXJcLXNoYXBpbmc7Civms6jmhI8gPCB0YWtlXC1ub3RlXC1vZjsKK+miqOWRsyA8IGxvY2FsXC1mbGF2b3I7CivnuaHoirEgPCB0b1wtZW1icm9pZGVyOwor5pqX5o6iIDwgc2VjcmV0XC1hZ2VudDsKK+aatOaAkiA8IHZpb2xlbnRcLXJhZ2U7CivkuI3lrrkgPCBub3RcLXRvbGVyYXRlOwor5LiN5a6cIDwgbm90XC1zdWl0YWJsZTsKK+eKr+avkiA8IGlsbGVnYWxcLWRydWc7CivkuJbnlYznn6XlkI0gPCB3b3JsZFwtZmFtb3VzOwor5bmA5qC85byPIDwgZnJhbWVcLWZvcm1hdDsKK+Wkp+iHtCA8IG1vcmVcLW9yXC1sZXNzOwor5LiN5aaCIDwgbm90XC1lcXVhbFwtdG87CivlvpfnpaggPCB2b3RlXC1nZXR0aW5nOwor5rS+5YilIDwgZGVub21pbmF0aW9uOwor57ea6Lu4IDwgdGhyZWFkXC1zcG9vbDsKK+acieWIqSA8IGFkdmFudGFnZW91czsKK+ihm+eUn+e0mSA8IHRvaWxldFwtcGFwZXI7CivoqILplrEgPCBzdWJzY3JpcHRpb247CivmgaLlvqkgPCB0b1wtcmVpbnN0YXRlOwor6YCZ6aCFIDwgdGhpc1wtXCh0aGluZ1wpOwor5b+r6YCf55m85bGVIDwgcmFwaWRcLWdyb3d0aDsKK+WkmueoruiqnuiogCA8IG11bHRpbGluZ3VhbDsKK+WPr+aDnCA8IGl0XC1pc1wtYVwtcGl0eTsKK+eVtuaZgueahCA8IG9mXC10aGF0XC10aW1lOwor5ama5aSWIDwgZXh0cmFtYXJpdGFsOwor5LiN5ZauIDwgbm90XC10aGVcLW9ubHk7CivlronlhajllY/poYwgPCBzYWZldHlcLWlzc3VlOwor5LmL5LiAIDwgb25lXC1vZlwtXChzdGhcKTsKK+Wig+mBhyA8IGNpcmN1bXN0YW5jZTsKK+mHjuW/gyA8IHdpbGRcLXNjaGVtZXM7CivljbvmraUgPCB0b1wtc3RlcFwtYmFjazsKK+S4reS/hCA8IGNoaW5hXC1ydXNzaWE7CivljbHmroYgPCBncmF2ZVwtZGFuZ2VyOwor5Lit5LqeIDwgY2VudHJhbFwtYXNpYTsKK+iuiuaApyA8IGRlbmF0dXJhdGlvbjsKK+WOn+aWmSA8IHJhd1wtbWF0ZXJpYWw7CivmtojpmLLmoJMgPCBmaXJlXC1oeWRyYW50Owor5LiN5YipIDwgdW5mYXZvdXJhYmxlOwor6YCP5piO5bqmIDwgdHJhbnNwYXJlbmN5Owor54iG55m8IDwgdG9cLWJyZWFrXC1vdXQ7CivlpJrnq5kgPCBtdWx0aXN0YXRpb247CivmsKfmsKMgPCBveHlnZW5cLVwoZ2FzXCk7Civlv7Xml6UgPCBtZW1vcmlhbFwtZGF5Owor5ZCE5ZyLIDwgZWFjaFwtY291bnRyeTsKK+S4jeS+vyA8IGluY29udmVuaWVudDsKK+aZguaFiyA8IFwodmVyYlwpXC10ZW5zZTsKK+e+heWIlyA8IHRvXC1zcGVhZFwtb3V0Owor5LiA5YSEIDwgMVwtMDBcLW1pbGxpb247CivmmrTli5UgPCBpbnN1cnJlY3Rpb247CivpnbbmqZ8gPCB0YXJnZXRcLWRyb25lOwor6YGL6KGMIDwgYmVcLWluXC1tb3Rpb247Civnt6joiJ4gPCBjaG9yZW9ncmFwaHk7CivkuozljYHkuIMgPCB0d2VudHlcLXNldmVuOwor5LulIDwgYnlcLW1lYW5zXC1vZjsKK+i+siA8IGFncmljdWx0dXJlOwor5b6EIDwgbmFycm93XC1wYXRoOwor5YegIDwgc21hbGxcLXRhYmxlOwor5L6/IDwgY29udmVuaWVuY2U7CivnlLUgPCBlbGVjdHJpY2l0eTsKK+eZviA8IG9uZVwtaHVuZHJlZDsKK+i3oyA8IGJhcmVcLWZvb3RlZDsKK+i0hSA8IHVubmVjZXNzYXJ5Owor5YqfIDwgYWNoaWV2ZW1lbnQ7CivmsZ8gPCBsYXJnZVwtcml2ZXI7Civms6ggPCBjb25jZW50cmF0ZTsKK+eJpyA8IHRlbmRcLWNhdHRsZTsKK+WpmiA8IGdldFwtbWFycmllZDsKK+WIiiA8IHB1YmxpY2F0aW9uOwor54afIDwgd2VsbFwtY29va2VkOwor6aWtIDwgY29va2VkXC1yaWNlOwor5aWiIDwgZXh0cmF2YWdhbnQ7Civmn6UgPCBpbnZlc3RpZ2F0ZTsKK+eroCA8IGNvbXBvc2l0aW9uOwor5oyJIDwgcHV0XC1oYW5kXC1vbjsKK+idoCA8IGtpbmRcLW9mXC1iYXQ7CivonZUgPCBuaWJibGVcLWF3YXk7Civlm7AgPCB0b1wtc3Vycm91bmQ7CivpmakgPCBuYXJyb3dcLXBhc3M7Civnu4MgPCB0b1wtcHJhY3RpY2U7Civmuq8gPCBnb1wtdXBzdHJlYW07CivmuIkgPCBmb3JkXC1zdHJlYW07CivotKUgPCBiZVwtZGVmZWF0ZWQ7CivnurcgPCBpblwtZGlzb3JkZXI7CivnvLogPCBiZVwtc2hvcnRcLW9mOwor6YGtIDwgY29tZVwtYWNyb3NzOwor5oi0IDwgd2Vhclwtb25cLXRvcDsKK+WLpCA8IGluZHVzdHJpb3VzOwor6auEIDwgYm9uZVwtbWFycm93Owor5Yq5IDwgZWZmaWNhY2lvdXM7CivosowgPCBjb3VudGVuYW5jZTsKK+e5gSA8IGNvbXBsaWNhdGVkOwor5p+zIDwgd2lsbG93XC10cmVlOwor5YeEIDwgYml0dGVyXC1jb2xkOwor6ZyeIDwgcm9zeVwtY2xvdWRzOwor6aO0IDwgc3dlZXRcLW1lYXRzOwor6IGqIDwgaW50ZWxsaWdlbnQ7CivlgKYgPCBiZVwtdGlyZWRcLW9mOwor5pGUIDwgZmFsbFwtZ3JvdW5kOwor6YaJIDwgaW50b3hpY2F0ZWQ7CivmtpsgPCBsYXJnZVwtd2F2ZXM7CivplIUgPCBjb29raW5nXC1wb3Q7Civku5QgPCBzbWFsbFwtdGhpbmc7CivmnIMgPCB0b1wtYXNzZW1ibGU7Civmi4YgPCB0b1wtYnJlYWtcLXVwOwor57+gIDwgY29sb3JcLWdyZWVuOwor5pmVIDwgaGFsb1wtaW5cLXNreTsKK+i+qCA8IGRpc3Rpbmd1aXNoOwor6JGbIDwgZWRpYmxlXC1iZWFuOwor6L2/IDwgc2VkYW5cLWNoYWlyOwor5pSrIDwgc25hdGNoXC1hd2F5Owor6Y2bIDwgZm9yZ2VcLW1ldGFsOwor5Y6VIDwgbWluZ2xlXC13aXRoOwor56u/IDwgYmFtYm9vXC1wb2xlOwor5Yi4IDwgY2VydGlmaWNhdGU7CivnqYkgPCB5b3VuZ1wtZ3JhaW47CivpqbMgPCB2YXJpY29sb3JlZDsKK+aGlCA8IGJlXC13b3JuXC1vdXQ7Civnsp4gPCBncm91bmRcLXJpY2U7CivpgYIgPCBjb21wbHlcLXdpdGg7CivpmrYgPCBzdWJzZXJ2aWVudDsKK+e8uCA8IGVhcnRoZW5cLWp1ZzsKK+iCoiA8IGh1bWFuXC1saW1iczsKK+WwtCA8IGVtYmFycmFzc2VkOwor5ZGQIDwgcmFpc2VcLXZvaWNlOwor6aKWIDwgcmljZVwtdGFzc2VsOwor56ClIDwgYVwtd2hldHN0b25lOwor5a2VIDwgYmVcLXByZWduYW50Owor6ZKeIDwgcGFwZXJcLW1vbmV5Owor55CiIDwgcG9saXNoXC1qYWRlOwor57u9IDwgcmlwcGVkXC1zZWFtOwor5aWgIDwgcGF5XC1yZXNwZWN0Owor5r6cIDwgb3ZlcmZsb3dpbmc7Civmg5UgPCBiZVwtY2F1dGlvdXM7CivotrQgPCBseWluZ1wtcHJvbmU7CivpmosgPCBzdWlcLWR5bmFzdHk7CivnnoQgPCB0YWtlXC1haW1cLWF0Owor56WfIDwgZXZpbFwtc3Bpcml0Owor5ZeUIDwgYmVcLWFuZ3J5XC1hdDsKK+WllSA8IGluXC1zZXF1ZW5jZTsKK+amtCA8IHBvbWVncmFuYXRlOwor5qOYIDwganVqdWJlXC10cmVlOwor5bOZIDwgc3RhbmRcLWVyZWN0Owor56CMIDwgc3RvbmVcLXN0ZXBzOwor5qeQIDwgbG9jdXN0XC10cmVlOwor6bOeIDwgZmlzaFwtc2NhbGVzOwor54K9IDwgYnVybmluZ1wtaG90Owor6L+CIDwgZG9jdHJpbmFpcmU7CivnvKogPCB3aW5kXC1hcm91bmQ7Civlh4sgPCBiZVwtd2l0aGVyZWQ7CivnvKQgPCBmbG91cmlzaGluZzsKK+mbsyA8IHRodW5kZXJjbGFwOwor6am4IDwgZXh0cmFcLWhvcnNlOwor5Ze3IDwgbG91ZFwtY2xhbW9yOwor54KWIDwgc3Rld1wtc2xvd2x5Owor6LCPIDwgcmVtb25zdHJhdGU7Civnr4YgPCBzZWFsXC1zY3JpcHQ7CivlrqYgPCBvZmZpY2lhbGRvbTsKK+eTriA8IGVhcnRoZW5cLWphcjsKK+aclSA8IHByb25vdW5cLScnaScnOwor6ZiRIDwgZG9vclwtc2NyZWVuOwor5Y2kIDwgc2FsaW5lXC1zb2lsOwor5ZSPIDwgd2VlcFwtb3JcLXNvYjsKK+axqSA8IHJ1blwtc3dpZnRseTsKK+amlSA8IGJhbnlhblwtdHJlZTsKK+mXsCA8IGludGVyY2FsYXJ5Owor5piKIDwgc3VtbWVyXC10aW1lOwor5463IDwgZmxhd1wtaW5cLWdlbTsKK+mYmSA8IHdhdGNoXC10b3dlcjsKK+azjCA8IHRvXC1zZWVwXC1vdXQ7Civng70gPCBzaWduYWxcLWZpcmU7CivlrbUgPCBzaXRcLW9uXC1lZ2dzOwor5qStIDwgb3ZhbFwtc2hhcGVkOwor55eJIDwgY29udnVsc2lvbnM7CivljJ0gPCBmdWxsXC1jaXJjbGU7CivppaogPCBjb29rZWRcLWZvb2Q7CivltpkgPCBwcmVjaXBpdG91czsKK+mipyA8IGNoZWVrXC1ib25lczsKK+mVlyA8IGJvcmluZ1wtdG9vbDsKK+aPtiA8IG1ha2VcLWZ1blwtb2Y7CivngrcgPCBjYW5kbGVcLXdpY2s7CivotLIgPCBmb3JnZVwtYWhlYWQ7CivomrEgPCBncmFzc2hvcHBlcjsKK+eXqCA8IGNvbnN1bXB0aW9uOwor5r+CIDwgYVwtd2F0ZXJmYWxsOwor5rGQIDwgbmlnaHRcLXRpZGVzOwor562gIDwgYmFtYm9vXC1za2luOwor5rCkIDwgaGFuZ2luZ1wtZm9nOwor55eUIDwgaGVtb3JyaG9pZHM7Civotr8gPCB0b1wtdHJlYWRcLW9uOwor6KeeIDwgd2luZVwtdmVzc2VsOwor5oy5IDwgdG9cLWJhbGVcLW91dDsKK+iGkSA8IHRoZVwta25lZWNhcDsKK+WUsyA8IGNyeVwtb2ZcLWJpcmQ7CivnpIUgPCBzdG9uZVwtYmxvY2s7CivnrpQgPCByZWVkXC1zY3JlZW47CivosbggPCByYWRpY2FsXC0xNTM7Civng4MgPCBoeWRyb2NhcmJvbjsKK+egrSA8IHN0b25lXC1wcm9iZTsKK+a+jSA8IHRpbWVseVwtcmFpbjsKK+m+iyA8IHRvb3RoXC1kZWNheTsKK+e8sSA8IGF0dGFjaGVkXC10bzsKK+WlgiA8IGJlXC1udW1lcm91czsKK+m7qSA8IHRvXC1kaXNob25vcjsKK+WjhSA8IHRvXC1vYnN0cnVjdDsKK+a+tiA8IHN0aWxsXC13YXRlcjsKK+mkjSA8IGJlXC1zYXRpYXRlZDsKK+aepSA8IHR5cGVcLW9mXC1vYWs7CivmoZUgPCB0YWxsb3dcLXRyZWU7CivpsqIgPCBzaWx2ZXJcLWNhcnA7CivotrEgPCBnb1wtaW5cLWh1cnJ5Owor5aarIDwgZmFtaWx5XC1uYW1lOwor5pq+IDwgbW9ybmluZ1wtc3VuOwor6I2mIDwgYnJpbmRsZWRcLW94Owor6YKbIDwgaW5cLWRpc3RyZXNzOwor5oiiIDwgdG9cLXB1dFwtYXdheTsKK+ampyA8IHR5cGVcLW9mXC15ZXc7CivloIcgPCB5ZWxsb3dcLWxvYW07CivliqwgPCBiZVwtZGlsaWdlbnQ7CivprYggPCBtaXNjaGV2aW91czsKK+mNqiA8IGFuXC1pcm9uXC1wYW47CivonKMgPCBkdW5nXC1iZWV0bGU7Civnl6YgPCBcKGZsYXRcKVwtbW9sZTsKK+aIrCA8IGV4dGVybWluYXRlOwor5ZeJIDwgYmlyZCcnc1wtY3JvcDsKK+WEiyA8IGFcLXNtYWxsXC1qYXI7CivompwgPCBwbGFudFwtbG91c2U7CivnspwgPCBzZWxsXC1ncmFpbnM7CivmlK4gPCB0b1wtZmVuZFwtb2ZmOwor6IuOIDwgY2hpbmFcLWdyYXNzOwor5Z2pIDwgZWFydGhlbndhcmU7CivmpokgPCB0eXBlXC1vZlwtZWxtOwor546iIDwgcG9ycGh5cml0ZXM7Civnu4EgPCB0b1wtY29udHJhY3Q7CivmvYYgPCB0aW55XC1zdHJlYW07Civpq7kgPCByZWRcLWxhY3F1ZXI7Civop5YgPCB0b1wtbG9uZ1wtZm9yOwor6J61IDwgYVwtY2hyeXNhbGlzOwor5p2qIDwgdGlwXC1vZlwtdHdpZzsKK+W5giA8IGNvdmVyXC1jbG90aDsKK+ehlyA8IGJhcnJlblwtbGFuZDsKK+iEniA8IG1pbmNlZFwtbWVhdDsKK+i9tSA8IGVuZFwtb2ZcLWF4bGU7CivmpZcgPCBiYXJcLW9mXC1kb29yOwor5qGEIDwgYVwtY29pclwtcGFsbTsKK+WgoCA8IGJhdHRsZW1lbnRzOwor5L+cIDwgdG9cLXRydXN0XC10bzsKK+Wjk+e4riA8IHRvXC1jb21wcmVzczsKK+Wkp+imj+aooSA8IGxhcmdlXC1zY2FsZTsKK+W6pumHj+ihoSA8IG1lYXN1cmVtZW50Owor6Iiq56m66KGTIDwgYWVyb25hdXRpY3M7CivoqKroj68gPCB2aXNpdFwtY2hpbmE7Civoqo3nn6UgPCBhY2tub3dsZWRnZTsKK+WPq+WWiiA8IGV4Y2xhbWF0aW9uOwor6Kiq5ZWP6ICFIDwgaW50ZXJ2aWV3ZXI7Civmsonph43miZPmk4ogPCB0b1wtaGl0XC1oYXJkOwor6YCj6KmeIDwgY29uanVuY3Rpb247Civlpb3mnIvlj4sgPCBnb29kXC1mcmllbmQ7Civlm5vpnaLpq5QgPCB0ZXRyYWhlZHJvbjsKK+iHqueEtuiAjOeEtiA8IGludm9sdW50YXJ5Owor5byK56uvIDwgbWFscHJhY3RpY2U7CivpnZ7moLggPCBub25cLW51Y2xlYXI7Civmi5Tph5jpjJggPCBjbGF3XC1oYW1tZXI7CivnlLPlkb3oqJggPCBkZXV0ZXJvbm9teTsKK+aUtuepqyA8IGFjcXVpc2l0aW9uOwor5omN5aSW5rWBIDwgYnJhaW5cLWRyYWluOwor5rCR5pePIDwgbmF0aW9uYWxpdHk7CivkuI3otIrkuIDoqZ4gPCBrZWVwXC1zaWxlbnQ7CivmmpfkupUgPCBibGluZFwtc2hhZnQ7CivmmpfkuK0gPCBpblwtdGhlXC1kYXJrOwor55+a55uuIDwgdG9cLWZvY3VzXC1vbjsKK+W4g+meiyA8IGNsb3RoXC1zaG9lczsKK+S6uumrlOWZqOWumCA8IGh1bWFuXC1vcmdhbjsKK+Wfi+mgrSA8IHN0ZWFtZWRcLWJ1bjsKK+WJteS9nOWKmyA8IG9yaWdpbmFsaXR5Owor55m955+u5pifIDwgd2hpdGVcLWR3YXJmOwor5Yik6JmVIDwgdG9cLXNlbnRhbmNlOwor5rCR5peP5Li7576pIDwgbmF0aW9uYWxpc207CivliLvoi6YgPCBoYXJkd29ya2luZzsKK+aomem7niA8IHB1bmN0dWF0aW9uOwor55m96bq1IDwgd2hlYXRcLWZsb3VyOwor5YaS6ZqqIDwgdGFrZVwtYVwtcmlzazsKK+eZvem2tCA8IHdoaXRlXC1jcmFuZTsKK+S4jei0iuaIkCA8IGRpc2FwcHJvdmFsOwor5b6A5piUIDwgaW5cLXRoZVwtcGFzdDsKK+WNiuaciOWIiiA8IHNlbWltb250aGx5Owor6YKK55aGIDwgYm9yZGVyXC1hcmVhOwor6K6T5L2NIDwgdG9cLWFiZGljYXRlOwor5oCq5YO7IDwgcGVjdWxpYXJpdHk7CivlvoHmlLYgPCBsZXZ5XC1cKGZpbmVcKTsKK+avjeadvyA8IG1vdGhlcmJvYXJkOwor6ZyA5rGCIDwgcmVxdWlyZW1lbnQ7CivlpKfmpa0gPCBncmVhdFwtY2F1c2U7Civml7rlraMgPCBidXN5XC1zZWFzb247CivlgpnnlKjnkrAgPCBiYWNrdXBcLXJpbmc7Civlv4XlrpogPCBiZVwtYm91bmRcLXRvOwor5Y2K5bm0IDwgaGFsZlwtYVwteWVhcjsKK+iqsuahjCA8IHNjaG9vbFwtZGVzazsKK+a7tOetlOiBsiA8IHRpY2tcLVwodG9ja1wpOwor6ZaT6ZqUIDwgY29tcGFydG1lbnQ7CivpgbLnlpEgPCB0b1wtaGVzaXRhdGU7CivpnYjmhJ8gPCBpbnNwaXJhdGlvbjsKK+eyvuWtkOWvhuW6piA8IHNwZXJtXC1jb3VudDsKK+a6q+W6puioiCA8IHRoZXJtb2dyYXBoOwor6YG35bGF56e75rCRIDwgaW1taWdyYXRpb247CivkuI3ph43opoEgPCB1bmltcG9ydGFudDsKK+mHjueUn+WLleeJqSA8IHdpbGRcLWFuaW1hbDsKK+iqquacjSA8IHRvXC1wZXJzdWFkZTsKK+WItue0hCA8IHRvXC1yZXN0cmljdDsKK+acieW9semfvyA8IGluZmx1ZW50aWFsOwor6Z6P5Zu6IDwgY29uc29saWRhdGU7Civnmbzpm7vlu6AgPCBwb3dlclwtcGxhbnQ7CivogZboqpXogIHkurogPCBzYW50YVwtY2xhdXM7CivljIXmi6wgPCB0b1wtY29tcHJpc2U7CivlpqXlloQgPCBhcHByb3ByaWF0ZTsKK+i+r+iovCA8IGRpYWxlY3RpY2FsOwor5rWq5ryr5Li7576pIDwgcm9tYW50aWNpc207Civmn4/mnpfniYYgPCBiZXJsaW5cLXdhbGw7CivngInpub0gPCBlcHNvbVwtc2FsdHM7CivkuI3lj6/nn6Xoq5YgPCBhZ25vc3RpY2lzbTsKK+S4jeWIh+WvpumamyA8IHVucmVhbGlzdGljOwor5YW45Z6L55So6YCUIDwgdHlwaWNhbFwtdXNlOwor5a+M5pa85oOz5YOPIDwgaW1hZ2luYXRpdmU7Civlt6Hpgo/oiYcgPCBwYXRyb2xcLWJvYXQ7CivkuI3lkKvns4ogPCB1bmFtYmlndW91czsKK+acrOWcn+WMliA8IHRvXC1sb2NhbGl6ZTsKK+WNs+WIuyA8IGltbWVkaWF0ZWx5Owor5a6J5YWo54eIIDwgc2FmZXR5XC1sYW1wOwor5YuY5o6iIDwgZXhwbG9yYXRpb247CivmnInmhI/mgJ0gPCBpbnRlcmVzdGluZzsKK+WNmuWPliA8IHRyeVwtdG9cLWdhaW47CivnqpfnjrvnkoMgPCB3aW5kb3dcLXBhbmU7CivmlL7mo4QgPCB0b1wtcmVub3VuY2U7CivlhrDom4sgPCBmcm96ZW5cLWVnZ3M7Civpg7XlsYAgPCBwb3N0XC1vZmZpY2U7Civpm5nmlbggPCBldmVuXC1udW1iZXI7CivokpDlsIsgPCB0b1wtbG9va1wtZm9yOwor55m96YGTIDwgbW9vbicnc1wtcGF0aDsKK+WLleaFiyA8IGRldmVsb3BtZW50Owor5rC45LmFIDwgZXZlcmxhc3Rpbmc7CivnmbzpgIEgPCB0b1wtdHJhbnNtaXQ7CivphY3lgpkgPCB0b1wtYWxsb2NhdGU7CivmlrDopb/omK0gPCBuZXdcLXplYWxhbmQ7Civmr5TlpoIgPCBmb3JcLWV4YW1wbGU7CivlnIvkuovoqKrllY8gPCBzdGF0ZVwtdmlzaXQ7CivlhYvoo6Hlp4bmnpflrq4gPCB0aGVcLWtyZW1saW47CivlpJrlsbEgPCBtb3VudGFpbm91czsKK+WNiuWNiuaLieaLiSA8IGluY29tcGxldGVkOwor6Zu75belIDwgZWxlY3RyaWNpYW47CivntIXoibIgPCByZWRcLVwoY29sb3JcKTsKK+aPj+i/sCA8IHRvXC1kZXNjcmliZTsKK+WNgeWEhCA8IG9uZVwtYmlsbGlvbjsKK+S4jeWPr+WIhumboiA8IGluc2VwYXJhYmxlOwor5YW16J+7IDwgc29sZGllclwtYW50Owor5q+A5aOeIDwgZGVzdHJ1Y3Rpb247CivliYrmuJsgPCB0b1wtY3V0XC1kb3duOwor5pel5LitIDwgamFwYW5cLWNoaW5hOwor6Zu757qc6Kq/5Yi26Kej6Kq/5ZmoIDwgY2FibGVcLW1vZGVtOwor6Zqo5pmCIDwgYXRcLWFueVwtdGltZTsKK+S4gOWNg+mbtuS6lOWNgeWEhCA8IDEwNVwtYmlsbGlvbjsKK+mVt+irhyA8IGFcLWxvbmdcLXRhbGs7Civoo5zpgbggPCBieVwtZWxlY3Rpb247CivmlZfooYDnl4cgPCBzZXB0aWNhZW1pYTsKK+eEoeeUoumajue0miA8IHByb2xldGFyaWF0Owor6JC95b6MIDwgZmFsbFwtYmVoaW5kOwor5YiG5L2I5byPIDwgZGlzdHJ1YnV0ZWQ7CivlpLHljrvmhI/orZggPCB1bmNvbnNjaW91czsKK+aOqOmBsiA8IHRvXC1wb3N0cG9uZTsKK+eZvuiQrOWvjOe/gSA8IG1pbGxpb25haXJlOwor6LK05peP56S+5pyDIDwgYXJpc3RvY3JhY3k7Civmk43ms5UgPCBkcmlsbFwtcnVsZXM7Civou43pmoogPCBhcm15XC10cm9vcHM7CivmqLnokYkgPCB0cmVlXC1sZWF2ZXM7CivliZvmnrYgPCByaWdpZFwtZnJhbWU7Civoq4fliLAgPCB0b1wtcmVmZXJcLXRvOwor5YaN6ICFIDwgZnVydGhlcm1vcmU7Civoqr/liLYgPCB0b1wtbW9kdWxhdGU7Civln7rnn7MgPCBjb3JuZXJzdG9uZTsKK+W+gOS6iyA8IHBhc3RcLWV2ZW50czsKK+m6gCA8IGZlbWFsZVwtZGVlcjsKK+Wkp+WKnyA8IGdyZWF0XC1tZXJpdDsKK+acieS6m+S6uiA8IHNvbWVcLXBlb3BsZTsKK+ijgei7jSA8IGRpc2FybWFtZW50Owor6Kqh5ZG9IDwgY29tbWFuZG1lbnQ7CivpuI8gPCB0cm9waWNcLWJpcmQ7Civlhafoh6MgPCBjaGFtYmVybGFpbjsKK+azouWkmum7juWQhCA8IHB1ZXJ0b1wtcmljbzsKK+m0uiA8IHRoZVwtcGVsaWNhbjsKK+eri+azleapn+mXnCA8IGxlZ2lzbGF0dXJlOwor6bGgIDwgbWluY2VkXC1maXNoOwor6ayZIDwgbWF0dGVkXC1oYWlyOwor5Z2m6JWpIDwgbWFnbmFuaW1vdXM7CivkuI3lkJDmsKMgPCB1bmFzcGlyYXRlZDsKK+S4u+imgeWOn+WboCA8IG1haW5cLXJlYXNvbjsKK+WinuW8tyA8IHRvXC1pbmNyZWFzZTsKK+mplCA8IGJsYWNrXC1ob3JzZTsKK+mphyA8IGhlYXZ5XC1ob3JzZTsKK+aciee2k+mplyA8IGV4cGVyaWVuY2VkOwor6ZmQ5pa8IDwgcmVzdHJpY3RcLWF0Owor6ZaJ57aTIDwgYW1lbm9ycmhvZWE7Civoqo3lh7ogPCByZWNvZ25pdGlvbjsKK+WFjeiBtyA8IGRlZ3JhZGF0aW9uOwor5bel56iLIDwgZW5naW5lZXJpbmc7CivoqJjlvpcgPCB0b1wtcmVtZW1iZXI7Civmk7rluIMgPCBvcmRlclwtYWJvdXQ7CivpoIsgPCB0b1wtY2FyZVwtZm9yOwor6YCP5piOIDwgdHJhbnNwYXJlbnQ7CivlipvlnJYgPCB0cnlcLWhhcmRcLXRvOwor5pyJ55Sf5Lul5L6GIDwgc2luY2VcLWJpcnRoOwor6Z6rIDwgaW50ZXJyb2dhdGU7Civosp3liqDniL7muZYgPCBsYWtlXC1iYWlrYWw7Civlhbjnpq4gPCBjZWxlYnJhdGlvbjsKK+WIkeacnyA8IHByaXNvblwtdGVybTsKK+eyvuewoSA8IHRvXC1zaW1wbGlmeTsKK+WSjOW5s+acg+irhyA8IHBlYWNlXC10YWxrczsKK+iKseiMtiA8IHNjZW50ZWRcLXRlYTsKK+aVo+S9iCA8IGRpc3NlbWluYXRlOwor57C/6KiYIDwgYm9va2tlZXBpbmc7CivlpKrlubPmtIvpgLHpgoogPCBwYWNpZmljXC1yaW07Civop7jmgJIgPCBwcm92b2NhdGlvbjsKK+aUquWSjCA8IHRvXC1taXhcLVwodXBcKTsKK+mAseW5tCA8IGFubml2ZXJzYXJ5Owor57WV5pybIDwgZGVzcGVyYXRpb247CivmlZfku5cgPCBsb3N0XC1iYXR0bGU7CivkuI3ororlg7nmoLwgPCBmaXhlZFwtcHJpY2U7CivpkKYgPCBjYWxpZm9ybml1bTsKK+e1kOadnyA8IHRlcm1pbmF0aW9uOwor54Sh5oSPIDwgaW5hZHZlcnRhbnQ7Civpj7sgPCBwaG9zcGhvbml1bTsKK+eUt+aci+WPiyA8IG1hbGVcLWZyaWVuZDsKK+ebuOavlCA8IGNvbXBhcmVkXC10bzsKK+imhuaykiA8IGFubmloaWxhdGVkOwor55m955qu5pu4IDwgd2hpdGVcLXBhcGVyOwor6Y2QIDwgYVwtaGVhZHN0YWxsOwor55yJ5qKiIDwgdGlwXC1vZlwtYnJvdzsKK+WIh+aPmyA8IHRvXC1jdXRcLW92ZXI7Civnv7vora/ogIUgPCBpbnRlcnByZXRlcjsKK+WFqeeZviA8IHR3b1wtaHVuZHJlZDsKK+Wls+e5vOaJv+S6uiA8IGluaGVyaXRyZXNzOwor5YGH6Kit6Kqe5rCjIDwgc3VianVuY3RpdmU7CivlnLDlv4PlkLjlipsgPCBncmF2aXRhdGlvbjsKK+mGuSA8IHN0cm9uZ1wtd2luZTsKK+mGkyA8IHNhbHRlZFwtbWVhdDsKK+S4jeazqOaEjyA8IHRob3VnaHRsZXNzOwor6KmV5YO5IDwgdG9cLWV2YWx1YXRlOwor6YWPIDwgbWlsbGV0XC13aW5lOwor5L+d5LiN5L2PIDwgbW9zdFwtbGlrZWx5Owor5bSp6KOCIDwgYnVyc3RcLWFwYXJ0Owor5be05ZOI6aasIDwgdGhlXC1iYWhhbWFzOwor5r+A5YWJ5LqM5qW1566hIDwgbGFzZXJcLWRpb2RlOwor55m86YCB5ZmoIDwgdHJhbnNtaXR0ZXI7CivliqDku6UgPCBpblwtYWRkaXRpb247CivmjInpiJUgPCBwdXNoXC1idXR0b247Civov4ogPCB0b1wtZ29cLXJvdW5kOwor5aCx5oeJIDwgcmV0cmlidXRpb247Civlub7lubQgPCBhXC1mZXdcLXllYXJzOwor55u85pybIDwgdG9cLWhvcGVcLWZvcjsKK+maiuWToSA8IHRlYW1cLW1lbWJlcjsKK+ihjOi5pCA8IHdoZXJlYWJvdXRzOwor5pSv5LuYIDwgcGF5XC1cKG1vbmV5XCk7CivnrKzkuIDnq6AgPCBjaGFwdGVyXC1vbmU7CivpgYvosqjppqzou4ogPCBjYXJnb1wtd2Fnb247Civooajoqp4gPCBwcmVkaWNhdGl2ZTsKK+i8piA8IGFcLWhhbmRcLWNhcnQ7CivoqLvlhoogPCB0b1wtcmVnaXN0ZXI7CivpmYTlsawgPCBzdWJvcmRpbmF0ZTsKK+mAo+eSsOWcliA8IGNvbWljXC1zdHJpcDsKK+WBvei7jSA8IHB1cHBldFwtYXJteTsKK+WEquengCA8IG91dHN0YW5kaW5nOwor6LSXIDwgY291bnRlcmZlaXQ7CivospggPCB0aGVcLXBhbnRoZXI7Civpq5TosrwgPCBjb25zaWRlcmF0ZTsKK+ixpiA8IGFcLXdpbGRcLWJvYXI7CivosZggPCBhXC1zbWFsbFwtcGlnOwor5Z+35pS/IDwgYmVcLWluXC1wb3dlcjsKK+WcqOWcsOS4iyA8IHVuZGVyZ3JvdW5kOwor56ys5LiJ5LiW55WMIDwgdGhpcmRcLXdvcmxkOwor6a2a56u/IDwgZmlzaGluZ1wtcm9kOwor54Sh6Zec57eK6KaBIDwgaW5kaWZmZXJlbnQ7CivluIzmnJsgPCByb1wtd2lzaFwtZm9yOwor57SE5pyDIDwgYXBwb2ludG1lbnQ7Civpq5Toqo0gPCByZWFsaXphdGlvbjsKK+W5uOWlvSA8IGZvcnR1bmF0ZWx5Owor5o6I57KJIDwgcG9sbGluYXRpb247Civop7EgPCB0YXJ0YXJcLWhvcm47CivopLUgPCBicmlkYWxcLXZlaWw7Civoo73niYcgPCBtb3ZpZW1ha2luZzsKK+WCs+ecn+apnyA8IGZheFwtbWFjaGluZTsKK+apn+acgyA8IG9wcG9ydHVuaXR5Owor6Zec5oq8IDwgcHV0XC1pblwtamFpbDsKK+Wkp+S+v+S5vueHpSA8IGNvbnN0aXBhdGVkOwor6KOd55Sy6LuKIDwgYXJtb3JlZFwtY2FyOwor6KCLIDwgY2F0ZXJwaWxsYXI7CivkuI3lgY/kuI3lgJogPCBldmVuXC1oYW5kZWQ7Civon5sgPCBhXC1sYW5kXC1jcmFiOwor54GM5rqJIDwgdG9cLWlycmlnYXRlOwor6YCa5ZGKIDwgdG9cLWFubm91bmNlOwor6J2bIDwgdGhlXC1zb3dcLWJ1ZzsKK+idjSA8IGFcLWNlbnRpcGVkZTsKK+mplemZvSA8IGJsYXppbmdcLXN1bjsKK+WJjeS7uyA8IHByZWRlY2Vzc29yOwor6JeaIDwgd2F0ZXJcLXBsYW50Owor5YiG5pWj5rOo5oSPIDwgdG9cLWRpc3RyYWN0Owor6JeEIDwgZWRpYmxlXC1mZXJuOwor6Luf56KfIDwgZmxvcHB5XC1kaXNrOwor6JOqIDwgcGFwZXJcLXBsYW50Owor6JOCIDwgbHVja3lcLXBsYWNlOwor6JKtIDwgdG9cLWN1dGdyYXNzOwor6JCQIDwgbHVja3lcLXBsYW50Owor6I+iIDwgdG9cLWluY3ViYXRlOwor542y55uK6ICFIDwgYmVuZWZpY2lhcnk7CivlsY/ploAgPCBzY3JlZW5cLWRvb3I7Civmi5zoqKogPCBwYXlcLWFcLXZpc2l0Owor5Y2K6YCP5piOIDwgdHJhbnNsdWNlbnQ7CivoiZcgPCBib3dcLW9mXC1qdW5rOwor6YCA5Ye6IDwgdG9cLXdpdGhkcmF3Owor5o6h54WkIDwgY29hbFwtbWluaW5nOwor56ys5LiA5rWBIDwgZmlyc3RcLWNsYXNzOwor5bmz5YehIDwgY29tbW9ucGxhY2U7CivorIDmrrrmoYggPCBtdXJkZXJcLWNhc2U7Civmi6zomZ8gPCBwYXJlbnRoZXNpczsKK+iDlCA8IHJvdHRlblwtbWVhdDsKK+iCiCA8IHRvXC1jb21tZW5jZTsKK+iBpiA8IHRoZVwtaGVhcmluZzsKK+iAkSA8IHNwZWNpYWxpemVkOwor576WIDwgYVwtYmxhY2tcLXJhbTsKK+eNjuWtuOmHkSA8IHNjaG9sYXJzaGlwOwor572xIDwgZmlzaGluZ1wtbmV0Owor5ruy6YCPIDwgdG9cLXBlcm1lYXRlOwor572gIDwgYW5pbWFsXC10cmFwOwor572SIDwgcmFkaWNhbFwtMTIyOwor5YG36IG9IDwgdG9cLWV2ZXNkcm9wOwor5Ye65YW1IDwgc2VuZFwtdHJvb3BzOwor5Z+55ZyfIDwgdG9cLWVhcnRoXC11cDsKK+mWi+aIsCA8IHN0YXJ0XC1hXC13YXI7CivliIbkvYggPCBkaXN0cmlidXRlZDsKK+i/t+S6uiA8IGZhc2NpbmF0aW5nOwor5LiN5YuV55SiIDwgcmVhbFwtZXN0YXRlOwor57OiIDwgcmljZVwtc25hY2tzOwor5Ye65L6GIDwgdG9cLWNvbWVcLW91dDsKK+S/oemBkyA8IHNpZ25hbFwtcGF0aDsKK+WVn+ekuumMhCA8IHJldmVsYXRpb25zOwor57C5IDwgdGFsbFwtYmFtYm9vOwor57C1IDwgZmluZVwtYmFtYm9vOwor57CwIDwgYmFtYm9vXC1yYWZ0Owor6a2U5rOVIDwgZW5jaGFudG1lbnQ7CivnlLPoq4sgPCBhcHBseVwtXChmb3JcKTsKK+esrOS4ieaWuSA8IHRoaXJkXC1wYXJ0eTsKK+etqSA8IGJhbWJvb1wtcGlwZTsKK+etiiA8IGJhbWJvb1wtcm9wZTsKK+ethyA8IGJhbWJvb1wtbmFtZTsKK+i3kei7iiA8IHJhY2luZ1wtYmlrZTsKK+esryA8IGFcLWJpcmRcLWNhZ2U7CivooajokpnlrZAgPCB3YXRjaFwtZ2xhc3M7Civmk7rmnrblrZAgPCBwdXRcLW9uXC1haXJzOwor56q4IDwgZmFpbnRcLXNvdW5kOwor5LiN56K65a6aIDwgdW5jZXJ0YWludHk7CivlhavlubQgPCBlaWdodFwteWVhcnM7CivnqbUgPCBkZWVwXC1ob2xsb3c7CivotoXntJrluILloLQgPCBzdXBlcm1hcmtldDsKK+ejuSA8IHN0b25lXC13ZWRnZTsKK+eilCA8IFwvMlwtcHJcLXN0b25lOwor57GM5qy+IDwgZnVuZHJhaXNpbmc7Civln5/lkI0gPCBkb21haW5cLW5hbWU7CivnoIMgPCB3aGl0ZVwtc3RvbmU7CivnnrUgPCB0b1wtc3RhcmVcLWF0Owor5Y+k5YW45rS+IDwgY2xhc3NpY2lzdHM7CivlhavlrZcgPCBjaGFyYWN0ZXJcLTg7Civnm7jkvLwgPCB0b1wtcmVzZW1ibGU7CivmjKrnlKggPCB0b1wtZW1iZXp6bGU7Civlj6/ooYzmgKcgPCBmZWFzaWJpbGl0eTsKK+ecpSA8IGV5ZVwtc29ja2V0czsKK+eckSA8IHN1bmtlblwtZXllczsKK+eciiA8IGRpbVwtc2lnaHRlZDsKK+eYmiA8IHRvXC1oaWNjb3VnaDsKK+eXsyA8IHBvY2tcLW1hcmtlZDsKK+eXrSA8IG1lbm9ycmhhZ2lhOwor55eDIDwgaW5kaWdlc3Rpb247Civoo53mia4gPCBkcmVzc1wtdXBcLWFzOwor5Z+O5Y2AIDwgY2l0eVwtcHJvcGVyOwor5rqd6YCaIDwgY29tbXVuaWNhdGU7CivngrrkuoYgPCBpblwtb3JkZXJcLXRvOwor55m95a6uIDwgd2hpdGVcLWhvdXNlOwor5ZCI5rOV5YyWIDwgdG9cLWxlZ2FsaXplOwor5Yag5YaVIDwgcm95YWxcLWNyb3duOwor54+9IDwgamFkZVwtdGFibGV0Owor5YOP5qijIDwgcHJlc2VudGFibGU7Civlt6flkIggPCBjb2luY2lkZW5jZTsKK+eLoiA8IGFuaW1hbFwtbmFtZTsKK+aIsOi7iiA8IHdhclwtY2hhcmlvdDsKK+aOoueFp+eHiCA8IHNlYXJjaGxpZ2h0Owor5a6J5a+n54mHIDwgbWVwcm9iYW1hdGU7Civnmb3lpJwgPCB3aGl0ZVwtbmlnaHQ7CivmmK/kuI3mmK8gPCBpc1wtb3JcLWlzbicndDsKK+iKseW6lyA8IGZsb3dlclwtc2hvcDsKK+S+v+imvSA8IGJyaWVmXC1ndWlkZTsKK+eHliA8IHJlaGVhdFwtZm9vZDsKK+iIiueJiCA8IG9sZFwtdmVyc2lvbjsKK+WkmuW3peWZqCA8IG11bHRpcGxleGVyOwor54WfIDwgYnJpZ2h0XC1yb29tOwor54WPIDwgZHJ5XC1ieVwtZmlyZTsKK+eFhiA8IHJhZ2luZ1wtZmlyZTsKK+WboOatpCA8IHRoYXRcLWlzXC13aHk7Civmvb4gPCBjbGVhclwtd2F0ZXI7Civli57li5XlipsgPCBsYWJvclwtZm9yY2U7Civoqp7oqIDlrbggPCBsaW5ndWlzdGljczsKK+a9oCA8IHRvXC1ibG93XC1vdXQ7Civmu7cgPCB0aGlja1wtZ3Jhdnk7CivliIbmnJ/ku5jmrL4gPCBpbnN0YWxsbWVudDsKK+eRnumbqiA8IHRpbWVseVwtc25vdzsKK+a4nyA8IG5vdFwtZmxvd2luZzsKK+WFrOWFgyA8IFwoeWVhclwpXC1hXC5kXC47CivmtaEgPCBidXJzdFwtZm9ydGg7CivlubjpgYvlhZIgPCBhXC1sdWNreVwtZ3V5Owor5rKwIDwgdG9cLWxldFwtZHJvcDsKK+iJsuaDhSA8IHBvcm5vZ3JhcGh5Owor5pys6LOq5LiKIDwgZXNzZW50aWFsbHk7CivlnLDkuIvmsLQgPCBncm91bmR3YXRlcjsKK+eUs+iri+abuCA8IGFwcGxpY2F0aW9uOwor5q6wIDwgYW5cLWFib3J0aW9uOwor55m95YiDIDwgbmFrZWRcLXN3b3JkOwor55m85Ye6IDwgdG9cLXNlbmRcLW91dDsKK+aVmeiCsuaApyA8IGluc3RydWN0aXZlOwor5bCx6IG3IDwgdGFrZVwtb2ZmaWNlOwor57m85om/5qyKIDwgaW5oZXJpdGFuY2U7Civmp6IgPCBhXC1oYXJkXC13b29kOwor5ouU54efIDwgc3RyaWtlXC1jYW1wOwor5oqK56mpIDwgdHJ1c3R3b3J0aHk7CivmopggPCBiYW1ib29cLXR1YmU7CivmopYgPCBhXC1wYWxtXC10cmVlOwor5qKEIDwgYVwtc29mdFwtd29vZDsKK+S4lueVjOiyv+aYkyA8IHdvcmxkXC10cmFkZTsKK+iIkuacjSA8IGNvbWZvcnRhYmxlOwor5picIDwgdG9cLW9wZW5cLW91dDsKK+aYiSA8IGJyaWdodFwtZGF3bjsKK+aXiSA8IHRvXC1zdGF0ZVwtdG87CivmiYvnuowgPCBmb3JtYWxpdGllczsKK+aMieacnyA8IG9uXC1zY2hlZHVsZTsKK+aRjiA8IHRvXC1zdHJhbmdsZTsKK+aVl+WutuWtkCA8IHNwZW5kdGhyaWZ0Owor6Lip5rC0IDwgdHJlYWRcLXdhdGVyOwor5a6j6KiAIDwgZGVjbGFyYXRpb247Civojo7lo6vmr5Tkup4gPCBzaGFrZXNwZWFyZTsKK+WxgOmZkOaApyA8IGxpbWl0YXRpb25zOwor5oWJIDwgdG9cLWJyaW5nXC11cDsKK+WUruiyqOWToSA8IHNhbGVzcGVyc29uOwor5Y+v5bCK5pWsIDwgcmVzcGVjdGFibGU7Civlgbfmh7YgPCB0b1wtZ29vZlwtb2ZmOwor6by76Z+zIDwgbmFzYWxcLXNvdW5kOwor6Z2e5pW45a2XIDwgbm9uXC1udW1lcmljOwor5b67IDwgYVwtd2lkZVwtcm9vbTsKK+WbsOWigyA8IHByZWRpY2FtZW50Owor54iG57Gz6IqxIDwgcHVmZmVkXC1yaWNlOwor5LiJ5Y2B5aSpIDwgdGhpcnR5XC1kYXlzOwor5ruy5r++IDwgcGVyY29sYXRpb247CivlvLAgPCBlbmRzXC1vZlwtYm93Owor5Zub5YiG5LmL5LiAIDwgb25lXC1xdWFydGVyOwor55eF5a65IDwgc2lja2x5XC1sb29rOwor5oiQ57i+IDwgcGVyZm9ybWFuY2U7CivkurrplpMgPCBtYW4nJ3NcLXdvcmxkOwor56uv56uZIDwgZW5kXC1zdGF0aW9uOwor6IyF5bGL6aCCIDwgdGhhdGNoXC1yb29mOwor6KGN5bCEIDwgZGlmZnJhY3Rpb247CivltKogPCByb2NreVwtcGVha3M7Civlm57loLEgPCBcKGluXClcLXJldHVybjsKK+S4ieWNgeWbmyA8IHRoaXJ0eVwtZm91cjsKK+WxsCA8IGRpc29iZWRpZW50Owor5bGdIDwgc3RyYXdcLXNob2VzOwor5bCcIDwgYVwtY2hpbGRcLXRveTsKK+WZqOWumOaNkOeNu+iAhSA8IG9yZ2FuXC1kb25vcjsKK+ioiuahhuWCs+mAgSA8IGZyYW1lXC1yZWxheTsKK+aAp+S8tOS+tiA8IHNleFwtcGFydG5lcjsKK+WslCA8IGJhYnlcLXJhYmJpdDsKK+aIlueosSA8IGFsc29cLWNhbGxlZDsKK+S5s+eZveiJsiA8IG1pbGt5XC13aGl0ZTsKK+eVq+aPkuWcluiAhSA8IGlsbHVzdHJhdG9yOwor56ys5LqM5qyh5LiW55WM5aSn5oiwIDwgd29ybGRcLXdhclwtMjsKK+mrmOWjkyA8IGhpZ2hcLWhhbmRlZDsKK+WhvyA8IHNtYWxsXC1tb3VuZDsKK+S7suijgSA8IGFyYml0cmF0aW9uOwor5aCKIDwgd2hpdGVcLWVhcnRoOwor5Z6dIDwgZGlsYXBpZGF0ZWQ7CivlnpQgPCB0b1wtcmVzdHJhaW47CivlgLzlvpcgPCB0b1wtYmVcLXdvcnRoOwor55Ww5bi4IDwgZXhjZXB0aW9uYWw7Civpkb3lrZQgPCBib3JlXC1hXC1ob2xlOwor6JOL54S25oCnIDwgcHJvYmFiaWxpdHk7Civmlofku7bmnI3li5nlmaggPCBmaWxlXC1zZXJ2ZXI7CivnlbblsYAgPCBhdXRob3JpdGllczsKK+WWjiA8IGFcLXdyeVwtbW91dGg7Civpq5jllLEgPCBzaW5nXC1sb3VkbHk7CivotorljZfmiLDniK0gPCB2aWV0bmFtXC13YXI7CivllLkgPCB0b1wtc21pbGVcLWF0Owor5LuL6KmeIDwgcHJlcG9zaXRpb247Civlj6/og73mgKcgPCBwb3NzaWJpbGl0eTsKK+WShSA8IHRvXC1zcGl0XC1vdXQ7CivoiJ7liocgPCBkYW5jZVwtZHJhbWE7Civlj7sgPCBwbGFjZVwtbmFtZXM7Civljr4gPCBsaWdodGx5XC10YXA7CivlgpHlh7ogPCBpbGx1c3RyaW91czsKK+eWhuWgtCA8IGJhdHRsZWZpZWxkOwor55m75bGx5a62IDwgbW91bnRhaW5lZXI7Civkv6HmnI0gPCB0b1wtY29udmluY2U7CivljK8gPCBhXC1jb25jb3Vyc2U7Civli6AgPCBqb2luXC1mb3JjZXM7CivnhKHmiYDkuI3lnKggPCBvbW5pcHJlc2VudDsKK+WKvCA8IGJlXC1kaXNjcmVldDsKK+iEvuawoyA8IHRlbXBlcmFtZW50Owor5LiN5Ye65omA5paZIDwgYXNcLWV4cGVjdGVkOwor5LiK6b2SIDwgdXBwZXJcLXRlZXRoOwor5oWw6JeJIDwgY29uc29sYXRpb247CivliaYgPCB0b1wtY2FzdHJhdGU7Civmnb/opo8gPCBwbGF0ZVwtZ2F1Z2U7Civlh6kgPCB3aW50cnlcLXdpbmQ7Civnl4XkurogPCBzaWNrXC1wZXJzb247CivpkZLlrpogPCB0b1wtYXBwcmFpc2U7CivkuJbnlYzlkozlubMgPCB3b3JsZFwtcGllY2U7Civlgpnku7YgPCBzcGFyZVwtcGFydHM7Civlk7LlrbjlrrYgPCBwaGlsb3NvcGhlcjsKK+eUn+aIkCA8IGJlXC1wcm9kdWNlZDsKK+S+v+ahtiA8IGNoYW1iZXJcLXBvdDsKK+WCjyA8IHRvXC13YXJkXC1vZmY7CivohKvmsKcgPCBkZW94aWRhdGlvbjsKK+aDhemhmCA8IHdpbGxpbmduZXNzOwor55Sf5oWLIDwgd2F5XC1vZlwtbGlmZTsKK+aMh+WHuiA8IHRvXC1pbmRpY2F0ZTsKK+S/myA8IG1ha2VcLWVmZm9ydDsKK+ezu+WIl+eJhyA8IGZpbG1cLXNlcmllczsKK+mYv+WvjOaxlyA8IGFmZ2hhbmlzdGFuOwor5L25IDwgZGVwZW5kXC11cG9uOwor5rSb5p2J56OvIDwgbG9zXC1hbmdlbGVzOwor5omB5qGDIDwgYWxtb25kXC10cmVlOwor6LeL5omIIDwgZG9taW5lZXJpbmc7CivktqogPCBzaGFycFwtdGVldGg7CivpmbDmtrzomZUgPCBzaGFkeVwtcGxhY2U7Civkv67lvqkgPCByZXN0b3JhdGlvbjsKK+S1tCA8IGJsYWNrXC1jb2xvcjsKK+S1syA8IGxpZ2h0XC1ibGFjazsKK+S1qSA8IGRhcmtcLXllbGxvdzsKK+ethuW/gyA8IHBlbmNpbFwtbGVhZDsKK+SyuyA8IHRoZVwtc3dhbGxvdzsKK+S/oeaBryA8IGluZm9ybWF0aW9uOwor5LG9IDwgdGhlXC1wb21mcmV0Owor5LG6IDwgYVwtbWFsZVwtY3JhYjsKK+SxkiA8IHNhbHRlZFwtZmlzaDsKK+i9ieS+hui9ieWOuyA8IHJvdmVcLWFyb3VuZDsKK+S4jemhpyA8IGluXC1zcGl0ZVwtb2Y7CivkrpggPCB5b3VuZ1wtaG9yc2U7Civnq4vms5UgPCBsZWdpc2xhdGlvbjsKK+WwjeaWuSA8IGNvdW50ZXJwYXJ0Owor56m655m9IDwgYmxhbmtcLXNwYWNlOwor55S35aWzIDwgbWFsZVwtZmVtYWxlOwor5KuzIDwgaHVtYW5cLXNrdWxsOwor5KuwIDwgc3BhcnNlXC1oYWlyOwor5KutIDwgYmFsZFwtaGVhZGVkOwor6Yed6YuS55u45bCNIDwgdGl0XC1mb3JcLXRhdDsKK+SrhCA8IGJldHRlclwtdGhhbjsKK+SqtCA8IHRoZVwtb2NjaXB1dDsKK+S8uOe4ruaApyA8IGZsZXhpYmlsaXR5Owor5KqEIDwgZ3JlYXRcLWJsYXplOwor5Km7IDwgdG9cLWJlXC1jaGllZjsKK+SpnCA8IGRlc2NlbmRhbnRzOwor6ZaJ5pyD56WI56axIDwgYmVuZWRpY3Rpb247CivkqLEgPCBzcGlsdFwtd2F0ZXI7Civkp5MgPCBhXC1iaWdcLW1vdW5kOwor5Ka3IDwgdG9cLXN0cnVnZ2xlOwor55W25YGaIDwgdG9cLXRyZWF0XC1hczsKK+SmmCA8IGFcLXRocmVzaG9sZDsKK+mWieWFg+mfsyA8IGNsb3NlXC12b3dlbDsKK+SlgCA8IHRvXC1wdWxsXC1vdXQ7CivkpK0gPCB0b1wtb3JuYW1lbnQ7CivkpIUgPCBzb3V0aGVyd29vZDsKK+i3m+WtkCA8IGxhbWVcLXBlcnNvbjsKK+S4jeWPr+S8sOmHjyA8IGluZXN0aW1hYmxlOwor5LqU6JCsIDwgNTBcLXRob3VzYW5kOwor5KCdIDwgdG9cLXN0YW5kXC11cDsKK+SgjSA8IGF0XC10aGVcLWZlZXQ7CivmnIDlpKfljJYgPCB0b1wtbWF4aW1pemU7Civkn4UgPCB0b1wtZ29cLWFoZWFkOwor5J+BIDwgYVwtZm9vdFwtcmFjZTsKK+SevSA8IHRvXC1saWVcLWZsYXQ7CivknqggPCBoYWxmXC1hXC1wYWNlOwor5J6EIDwgdG9cLWRpc3BlcnNlOwor5J2AIDwgZ2FyZGVuXC1wZWFzOwor5JywIDwgZGVlcFwtdmFsbGV5Owor5L+d5a2YIDwgdG9cLWNvbnNlcnZlOwor5JyXIDwgYW5ncnlcLXdvcmRzOwor5JyGIDwgaGFzdHlcLXdvcmRzOwor5JuYIDwgdG9cLXRoaW5rXC1vZjsKK+SasyA8IGRvXC1ub3RcLWtub3c7CivkmrIgPCB0b1wtbGF1Z2hcLWF0Owor5reY56WeIDwgdHJvdWJsZXNvbWU7Civkmb4gPCB0b1wtd2FpdFwtZm9yOwor5JmxIDwgYVwtbG9uZ1wtY29hdDsKK+SZsCA8IG5ld1wtZmVhdGhlcjsKK+SZgiA8IHNob3J0XC1wYW50czsKK+ethuWiqCA8IHBlblwtYW5kXC1pbms7Civkl5YgPCB0aGVcLXJhaW5ib3c7CivolpHppIUgPCBnaW5nZXJicmVhZDsKK+esrOWNgeS4gyA8IHNldmVudGVlbnRoOwor5JW4IDwgd2hlYXRcLXN0cmF3Owor5rqr5bqmIDwgdGVtcGVyYXR1cmU7CivklL8gPCBsdXNoXC1ncm93dGg7Civot5Hlo5ggPCBiYXNlcnVubmluZzsKK+mWi+aUvuezu+e1sSA8IG9wZW5cLXN5c3RlbTsKK+icnOahgyA8IGhvbmV5XC1wZWFjaDsKK+mRkuS6jiA8IGluXC1saWdodFwtb2Y7CivkkosgPCBhaXJcLWN1cnJlbnQ7Civlj6/pqZogPCBhc3RvbmlzaGluZzsKK+aciemZkOWFrOWPuCA8IGNvcnBvcmF0aW9uOwor56m66ZaT5o6i5risIDwgc3BhY2VcLXByb2JlOwor5JCaIDwgZ29vZFwtZ3JhY2VzOwor5I+2IDwgdGhlXC1zdG9tYWNoOwor5I+UIDwgdG9cLWVhdFwtbWVhdDsKK+S+v+WunCA8IGluZXhwZW5zaXZlOwor5ZOy5a245LiKIDwgcGhpbG9zb3BoaWM7CivlkKbmnInmlYggPCBpbmVmZmljaWVudDsKK+S4jei/rSA8IGNhbm5vdFwtY29wZTsKK+WMl+acnemuriA8IG5vcnRoXC1rb3JlYTsKK+SMqiA8IHRvXC1jb250aW51ZTsKK+SMpiA8IGdyZWVuXC1jb2xvcjsKK+WQieeIvuWQieaWr+aWr+WdpiA8IGtpcmdoaXpzdGFuOwor5omL5a+rIDwgaGFuZHdyaXRpbmc7Civkiq0gPCB0b1wtb3ZlcnR1cm47CivkiqsgPCBjb2Fyc2VcLXJpY2U7CivkiqIgPCB0aGlja1wtZmx1aWQ7CivkipMgPCB0b1wtcGFzdGVcLXVwOwor5LiL6LyJIDwgdG9cLWRvd25sb2FkOwor5ImdIDwgYmFtYm9vXC13YXJlOwor5Ii4IDwgYVwtYmlnXC1jaGVzdDsKK+i4j+S4iiA8IHNldFwtZm9vdFwtb247CivkhrMgPCBmYXJcLWRpc3RhbnQ7CivkhpggPCBhY3VwdW5jdHVyZTsKK+SGliA8IGFcLWJpZ1wtaG91c2U7CivkhYQgPCBsb25nXC1ncmFpbnM7CivkhL0gPCBjb21tb25cLXJpY2U7Civkg60gPCBhXC1zdG9uZVwtYm94Owor55Kw5b2iIDwgcmluZ1wtc2hhcGVkOwor5IKxIDwgdG9cLXdlYXJcLW91dDsKK+SCkyA8IHJlZ3VsYXRpb25zOwor5IG7IDwgcHJldHR5XC1leWVzOwor5IG3IDwgYnJpZ2h0XC1leWVzOwor5IGxIDwgaG9sbG93XC1leWVkOwor5L2I5pmvIDwgXChzdGFnZVwpXC1zZXQ7CivkgIIgPCBhXC1iaWdcLWJhc2luOwor5Z+656SO5ZWP6aGMIDwgYmFzaWNcLWlzc3VlOwor47+jIDwgd2hpdGVcLWNvbG9yOwor47+YIDwgdG9cLWdldFwtc2ljazsKK+O+uiA8IGV5ZVwtZGlzZWFzZTsKK+O+nSA8IHRvXC1sZWFrXC1vdXQ7CivpqLfli5UgPCBkaXN0dXJiYW5jZTsKK+O+iCA8IGh1bmNoYmFja2VkOwor476DIDwgaHVtcFwtYmFja2VkOwor472qIDwgcGFkZHlcLWZpZWxkOwor5oKy6KeAIDwgcGVzc2ltaXN0aWM7Civlj6Ppppnns5YgPCBjaGV3aW5nXC1ndW07CivjvJggPCBvZlwtbW91bnRhaW47CivjvJMgPCBtZWxvblwtc2VlZHM7Civopb/kuYPlsbEgPCBtb3VudFwtc2luYWk7Civju5MgPCBhXC1maW5lXC1qYWRlOwor576O6LKMIDwgZ29vZGxvb2tpbmc7Civpurvol6UgPCBhbmFlc3RoZXRpYzsKK+O5oCA8IGFcLXNtYWxsXC1iaWc7CivpgoHpmL/lr4bngZggPCBtaWFtaVwtYmVhY2g7CivjuKAgPCB0aGlja1wtc3RpY2s7CivlsI/lnosgPCBzbWFsbFwtc2NhbGU7CivjtaQgPCB0b1wtb3ZlcmZsb3c7CivjtJggPCB0b1wtb296ZVwtb3V0Owor6YeR5bGs5p2/IDwgbWV0YWxcLXBsYXRlOwor47KwIDwgYVwtaGFpcnlcLWRvZzsKK+OwsiA8IHRvXC1ibG93XC1vZmY7Civjr4ggPCBzbWFsbFwtdHJlZXM7CivpoYzoqZ4gPCBpbnNjcmlwdGlvbjsKK+OunSA8IGFuZ2xlXC1zdGVlbDsKK+OttCA8IHRoZVwtb3NjaW5lczsKK+OtjiA8IGFcLXRhbGxcLXRyZWU7CivotqPlkbMgPCB0b1wtaW50ZXJlc3Q7Civkv6Hku7AgPCBmaXJtXC1iZWxpZWY7CivjrKkgPCBhXC10aW55XC1zdGFyOwor6IKh5p2xIDwgc3RvY2tob2xkZXI7Civpjq7lo5MgPCBzdXBwcmVzc2lvbjsKK+OrmCA8IGRpc2FwcGVhcmVkOwor5p2/54mZIDwgZnJvbnRcLXRvb3RoOwor5rOz6KSyIDwgc3dpbVwtdHJ1bmtzOwor5ZCM6LOqIDwgaG9tb2dlbmVvdXM7CivjqYUgPCB0b1wtZHJhd1wtb3V0Owor5YWp55m+6JCsIDwgdHdvXC1taWxsaW9uOwor46i1IDwgdG9cLWN1dFwtYXdheTsKK+OotCA8IHRvXC10dXJub3ZlcjsKK+OolSA8IHRvXC1zaG91bGRlcjsKK+eSsOWigyA8IGVudmlyb25tZW50Owor46eUIDwgdG9cLWRpc3R1cmJlOwor5L+u55CG5bugIDwgcmVwYWlyXC1zaG9wOwor46aSIDwgdG9cLWRlY2VpdmVkOwor46ShIDwgdG9cLXN1cnByaXNlOwor46SVIDwgbWVsYW5jaG9sb3k7CivjpIEgPCB0b1wtZGlzZ3JhY2U7Civjo74gPCBkb1wtbm90XC1jYXJlOwor46O1IDwgdG9cLXJ1blwtYXdheTsKK+OjpSA8IHRvXC1zdG9yZVwtdXA7CivjopMgPCB0b1wtc2VwYXJhdGU7CivmnpzmsYEgPCBmcnVpdFwtanVpY2U7CivogJXnlZwgPCBmYXJtXC1hbmltYWw7Civlop7plbfnjocgPCBncm93dGhcLXJhdGU7Civph43ov5QgPCByZXR1cm5cLVwodG9cKTsKK+S4n+iHiSA8IGh1bWlsaWF0aW9uOwor4520IDwgYVwtcm91bmRcLW9mZjsKK+OdlCA8IGRlZXBcLWJvdHRvbTsKK+aIkeWciyA8IG91clwtY291bnRyeTsKK+OcoyA8IGFcLWxhc3RcLW5hbWU7CivjnI4gPCBzbGF2ZVwtZ2lybHM7Civjm5EgPCB0aHJlZVwtd29tZW47Civjmr4gPCB0b1wtaGF2ZVwtZnVuOwor54675oSP6ICz5a6a5b6LIDwgYm95bGUnJ3NcLWxhdzsKK+OYtiA8IGFcLWhlblwtcm9vc3Q7Civouqvlv4PniL3lv6sgPCByZWZyZXNobWVudDsKK+OYpSA8IHRvXC1pbnZlaWdsZTsKK+S9iOWxgCA8IGFycmFuZ2VtZW50Owor5LuW5YCR6YO9IDwgYWxsXC1vZlwtdGhlbTsKK+iuiumAmiA8IGJlXC1mbGV4aWJsZTsKK+m8u+a2lSA8IG5hc2FsXC1tdWN1czsKK+OWvSA8IHRvXC1jYWxsXC1vdXQ7CivosrjmrL4gPCBcKGJhbmtcKVwtbG9hbjsKK+OWkSA8IHRvXC1zaG91dFwtYXQ7CivjlLwgPCB0b1wtZml0XC1pbnRvOwor45S2IDwgYVwtc21hbGxcLWN1cDsKK+OUjyA8IHRvXC1jdXRcLW9wZW47Civjk6kgPCBob3JuZWRcLWhhaXI7CivmupblgpkgPCBwcmVwYXJhdGlvbjsKK+OSqCA8IGFuXC1pbW1vcnRhbDsKK+WuieW6tyA8IGdvb2RcLWhlYWx0aDsKK+mgkOioiCA8IHRvXC1mb3JlY2FzdDsKK+elreWPuOasiuihkyA8IHByaWVzdGNyYWZ0Owor6aGe5Ly86bueIDwgcmVzZW1ibGFuY2U7Civph4/oqZ4gPCBtZWF1cmVcLXdvcmQ7Civpm5nkurrmiL8gPCBkb3VibGVcLXJvb207CivlkI3okZcgPCBtYXN0ZXJwaWVjZTsKK+e+juihk+mkqCA8IGFydFwtZ2FsbGVyeTsKK+S7u+aEjyA8IGFyYml0cmFyaWx5Owor5a6J5a62IDwgc2V0dGxlXC1kb3duOwor6aWS5oGVIDwgZm9yZ2l2ZW5lc3M7CivlroflrpkgPCBvdXRlclwtc3BhY2U7CivnkZ7lo6sgPCBzd2l0emVybGFuZDsKK+WcqOmAmeacn+mWkyA8IGR1cmluZ1wtdGltZTsKK+WWh+WPrSA8IGxvdWRzcGVha2VyOwor57SE5Lyv6KiYIDwgYm9va1wtb2ZcLWpvYjsKK+eEoeazleW/jeWPlyA8IGludG9sZXJhYmxlOwor5oKy5Zac5YqHIDwgdHJhZ2ljb21lZHk7Civpp4HlgJIgPCBkZW1vbGlzaFwtc2I7CivljYrlsIHlu7ogPCBzZW1pXC1mZXVkYWw7CivmtbTmsaAgPCBwdWJsaWNcLWJhdGg7Civlj43li5XliIblrZAgPCByZWFjdGlvbmFyeTsKK+WvpuizquaApyA8IHN1YnN0YW50aXZlOwor6K6K5aOT5ZmoIDwgdHJhbnNmb3JtZXI7Civkvb/nlKjmlrnkvr8gPCBlYXN5XC10b1wtdXNlOwor5aWU6aazIDwgcnVuXC1xdWlja2x5Owor54++5bm0IDwgY3VycmVudFwtYWdlOwor54Sh5rOV5b2i5a65IDwgdW5zcGVha2FibGU7CivomIvmnpzmsYEgPCBhcHBsZVwtanVpY2U7CivnpLrnr4QgPCBkZW1vbnN0cmF0ZTsKK+S6pOaPmyA8IHRvXC1leGNoYW5nZTsKK+iXpeeJqSA8IG1lZGljYW1lbnRzOwor5pyJ5ZCM5oOF5b+DIDwgc3ltcGF0aGV0aWM7CivmmpfoqJjlhZIgPCBzZWNyZXRcLW1hcms7CivphJnpmYsgPCBzdXBlcmZpY2lhbDsKK+WknOm2ryA8IG5pZ2h0aW5nYWxlOwor6aSQ5buzIDwgZGluaW5nXC1oYWxsOwor5aiB6ISFIDwgdG9cLXRocmVhdGVuOwor56m65YmNIDwgdW5wcmVjZWRlbnQ7CivpoJDntIQgPCByZXNlcnZhdGlvbjsKK+eisOimiyA8IHRvXC1ydW5cLWludG87Civmn6Xlh7ogPCB0b1wtZmluZFwtb3V0Owor5Y2K6YKKIDwgaGFsZlwtb2ZcLXN0aDsKK+aal+ekuiA8IGRyb3BcLWFcLWhpbnQ7CivkuqTlvoAgPCBhc3NvY2lhdGlvbjsKK+mFjemAgeiAhSA8IGRpc3RyaWJ1dG9yOwor5pu45rOVIDwgY2FsbGlncmFwaHk7Civph5HpioDoirEgPCBob25leXN1Y2tsZTsKK+WFg+iAgemZoiA8IHVwcGVyXC1ob3VzZTsKK+WNk+i2iiA8IGRpc3RpbmN0aW9uOwor6IKh5YO5IDwgc3RvY2tcLXByaWNlOwor5Lmd5pyIIDwgbmludGhcLW1vbnRoOwor5Li75qyKIDwgc292ZXJlaWdudHk7Civlj6/mg7Plg48gPCBjb25jZWl2YWJsZTsKK+WkmumkmCA8IHN1cGVyZmx1b3VzOwor6IG95Y+WIDwgaGVhclwtXChuZXdzXCk7CivmhJ/mgKcgPCBzZW5zaWJpbGl0eTsKK+WVhuS6uiA8IGJ1c2luZXNzbWFuOwor56aB5q2iIDwgdG9cLXByb2hpYml0Owor56eJ5om/IDwgdGFrZVwtb3JkZXJzOwor5ZSu5YO5IDwgdG9cLXNlbGxcLWZvcjsKK+WsjOWqmiA8IGZsaXJ0YXRpb3VzOwor6aCB56K8IDwgcGFnZVwtbnVtYmVyOwor5Lqk5aq+IDwgdG9cLWhhdmVcLXNleDsKK+S4iua1gSA8IHVwcGVyXC1jbGFzczsKK+S/oeeUqOWNoSA8IGNyZWRpdFwtY2FyZDsKK+mcuOmBkyA8IG92ZXJiZWFyaW5nOwor5rOi54C+IDwgZ3JlYXRcLXdhdmVzOwor5LiN5q2iIDwgaW5jZXNzYW50bHk7CivniK3orbAgPCBjb250cm92ZXJzeTsKK+S4readsSA8IG1pZGRsZVwtZWFzdDsKK+Wls+euoeWutiA8IGhvdXNla2VlcGVyOwor5LiA5Y2D5Zub55m+5YSEIDwgMTQwXC1iaWxsaW9uOwor5Li55pa5IDwgZm9sa1wtcmVtZWR5Owor6YeN55aKIDwgb3ZlcmxhcHBpbmc7CivkuK3ml6UgPCBjaGluYVwtamFwYW47Civoh6rnlLHpgbjmk4fmrIogPCBmcmVlXC1hZ2VuY3k7CivllpzmraHlkLXmnrYgPCBxdWFycmVsc29tZTsKK+acieWus+eahCA8IGRlc3RydWN0aXZlOwor6YeN54++IDwgdG9cLXJlYXBwZWFyOwor5qih57OK6YKP6LyvIDwgZnV6enlcLWxvZ2ljOwor6Z226Ii5IDwgdGFyZ2V0XC1zaGlwOwor5Y2D6JCsIDwgdGVuXC1taWxsaW9uOwor5LiA5pyIIDwgZmlyc3RcLW1vbnRoOwor54qv55eFIDwgdG9cLWZhbGxcLWlsbDsKK+WQjOatpSA8IHN5bmNocm9ub3VzOwor5ZO65LmzIDwgYnJlYXN0XC1mZWVkOwor5Li75by1IDwgdG9cLWFkdm9jYXRlOwor5ama5pyfIDwgd2VkZGluZ1wtZGF5Owor5pqX5q66IDwgYXNzYXNzaW5hdGU7CivkuLvluK0gPCBjaGFpcnBlcnNvbjsKK+WNseevpCA8IGRlYXRobHlcLWlsbDsKK+S6kuWLlSA8IGludGVyYWN0aXZlOwor5aSp54S25rCjIDwgbmF0dXJhbFwtZ2FzOwor5L6b6KGA6ICFIDwgYmxvb2RcLWRvbm9yOwor5Lit5bm0IDwgbWlkZGxlXC1hZ2VkOwor54ef6aSK5ZOBIDwgbm91cmlzaG1lbnQ7Civosp3kuJggPCBzaGVsbFwtbW91bmQ7CivmhI/lkJEgPCBkaXNwb3NpdGlvbjsKK+mBqeaHieaApyA8IHN1aXRhYmlsaXR5Owor5rKI5r6xIDwgcHJlY2lwaXRhdGU7CivlpKnmloflj7AgPCBvYnNlcnZhdG9yeTsKK+mRv+efs+WgtCA8IHJvY2tcLXF1YXJyeTsKK+Wwse+5jeiAjOiogCA8IGNvbnNpZGVyaW5nOwor5LiJ5bm0IDwgdGhyZWVcLXllYXJzOwor8KG9sSA8IGFcLWhpZ2hcLWhpbGw7CivkuIrlsaQgPCB1cHBlclwtbGF5ZXI7Civlo6/op4AgPCBzcGVjdGFjdWxhcjsKK+aciemBuOiIieasiiA8IGNvbnN0aXR1ZW50Owor5pS/6K6KIDwgY291cFwtZCcnZXRhdDsKK+elnuWtuCA8IHRoZW9sb2dpY2FsOwor5ris6amX57WQ5p6cIDwgdGVzdFwtcmVzdWx0Owor5ZCI5b2xIDwgam9pbnRcLXBob3RvOwor5aaC55WrIDwgcGljdHVyZXNxdWU7CivkuI3loKogPCBjYW5ub3RcLWJlYXI7CivntYLpu54gPCBkZXN0aW5hdGlvbjsKK+eIhueruSA8IGZpcmVjcmFja2VyOwor566h5a626IG35YuZIDwgc3Rld2FyZHNoaXA7CivlsI/msb3ou4ogPCBjb21wYWN0XC1jYXI7CivnibnmrIogPCBwcmVyb2dhdGl2ZTsKK+ieuue1suWIgCA8IHNjcmV3ZHJpdmVyOwor54uX5Lqk5aq+6IisIDwgZG9nZ3lcLXN0eWxlOwor5YiG6ZuiIDwgdG9cLXNlcGVyYXRlOwor5Ymv5L2c55SoIDwgc2lkZVwtZWZmZWN0Owor56aB5LukIDwgcHJvaGliaXRpb247CivkuI3lhY0gPCB1bmF2b2lkYWJsZTsKK+iqk+e0hCA8IGhvbm9yXC1ib3VuZDsKK+itieabuCA8IGNyZWRlbnRpYWxzOwor5rKI5oCdIDwgY29udGVtcGxhdGU7Civop6Pph4sgPCBleHBsYW5hdGlvbjsKK+ekgeWztiA8IHJlZWZcLWlzbGFuZDsKK+amrueNsuirvuiyneeIvueNjiA8IG5vYmVsXC1wcml6ZTsKK+S6jOWNgeWEhCA8IHR3b1wtYmlsbGlvbjsKK+i/jumiqCA8IGluXC10aGVcLXdpbmQ7Civnp7vmpI3mgKcgPCBwb3J0YWJpbGl0eTsKK+WmguatpCA8IGluXC10aGlzXC13YXk7CivmgqDkuYUgPCBlc3RhYmxpc2hlZDsKK+WwiOacieWQjeipniA8IHByb3Blclwtbm91bjsKK+S4iuS4iyA8IHVwXC1hbmRcLWRvd247CivkuozljYHkupQgPCB0d2VudHlcLWZpdmU7CivmnIvmr5TngrrlpbggPCB0b1wtY29uc3BpcmU7CivmkKzlvITmmK/pnZ4gPCBzb3dcLWRpc2NvcmQ7CivnmoQgPCBwb3NzZXNzaXZlOwor6L68IDwgY3Jvd2RcLWludG87CivovrsgPCBjcm9zc3JvYWRzOwor6IO9IDwgdG9cLWJlXC1hYmxlOwor6YO9IDwgbWV0cm9wb2xpczsKK+aWhyA8IGxpdGVyYXR1cmU7CivovY0gPCB3YWdvblwtcnV0czsKK+i8qSA8IGdlbmVyYXRpb247CivnnKkgPCB0b1wtY29uZnVzZTsKK+ecoCA8IGNsb3NlXC1leWVzOwor6LydIDwgYnJpZ2h0bmVzczsKK+W8kCA8IG51bWJlclwtdHdvOwor6ICFIDwgdGhhdFwtd2hpY2g7CivkuJogPCBwcm9mZXNzaW9uOwor5bqcIDwgcHJlZmVjdHVyZTsKK+aUvyA8IGdvdmVybm1lbnQ7CivkuqcgPCBnaXZlXC1iaXJ0aDsKK+WcuiA8IG9wZW5cLXNwYWNlOwor5q+UIDwgdG9cLWNvbXBhcmU7CivnlrIgPCBmZWVsXC10aXJlZDsKK+eUuyA8IGFcLXBhaW50aW5nOwor5pybIDwgdG9cLWxvb2tcLWF0Owor6LO6IDwgbWFrZVwtbW9uZXk7Civlha0gPCBudW1iZXJcLXNpeDsKK+WxoSA8IGZyZXF1ZW50bHk7CivlsKQgPCBlc3BlY2lhbGx5Owor5bCIIDwgbW9ub3BvbGl6ZTsKK+WfuiA8IGZvdW5kYXRpb247Civlj4wgPCBzZXRcLW9mXC10d287CivlrasgPCBncmFuZGNoaWxkOwor5ayqIDwgY291cnRcLWxhZHk7CivnprsgPCByYXJlXC1iZWFzdDsKK+WqkiA8IGdvXC1iZXR3ZWVuOwor6KqMIDwgd3JpdGVcLWRvd247CivoqocgPCBleGFnZ2VyYXRlOwor5ZONIDwgbWFrZVwtc291bmQ7Civlqb8gPCBzb25cLWluXC1sYXc7CivniK0gPCB0b1wtZGlzcHV0ZTsKK+WZqCA8IHJlY2VwdGFjbGU7Civnh58gPCBlbmNhbXBtZW50Owor5aaZIDwgbXlzdGVyaW91czsKK+iDoSA8IHJlY2tsZXNzbHk7CivlppMgPCBwcm9zdGl0dXRlOwor6KWmIDwgc2hvcnRcLWNvYXQ7Civlo7EgPCBudW1iZXJcLW9uZTsKK+mDrSA8IG91dGVyXC1wYXJ0Owor6K6oIDwgdG9cLWRpc2N1c3M7Civmu4UgPCBleHRpbmd1aXNoOwor6JmcIDwgdG9cLWNhcHR1cmU7Civnp68gPCBhY2N1bXVsYXRlOwor6I+cIDwgdmVnZXRhYmxlczsKK+WXoyA8IHRvXC1jb25uZWN0Owor5ZecIDwgYmVcLWZvbmRcLW9mOwor5LuLIDwgZm9yZXJ1bm5lcjsKK+e0oiA8IGxhcmdlXC1yb3BlOwor5LiBIDwgbWFsZVwtYWR1bHQ7CivpgY0gPCBldmVyeXdoZXJlOwor6JKUIDwgdHJhbnNwbGFudDsKK+aHgiA8IHVuZGVyc3RhbmQ7Civph4ogPCBpbnRlcnByZXRlOwor57q1IDwgaW5kdWxnZVwtaW47CivmrbQgPCB0YWtlXC1wbGFjZTsKK+S7gSA8IGh1bWFuZW5lc3M7CivmqoAgPCBzYW5kYWx3b29kOwor5YmKIDwgc2NyYXBlXC1vZmY7CivliJEgPCBwdW5pc2htZW50Owor5bKCIDwgaG93XD9cLXdoYXRcPzsKK+mahiA8IHByb3NwZXJvdXM7CivliIMgPCBlZGdlZFwtdG9vbDsKK+aekCA8IHNwbGl0XC13b29kOwor6IW4IDwgaW50ZXN0aW5lczsKK+alkyA8IG1hcGxlXC10cmVlOwor6aSFIDwgcmljZVwtY2FrZXM7Civlgo0gPCBieVwtc2lkZVwtb2Y7CivmoJMgPCB3b29kZW5cLXBlZzsKK+WHryA8IHRyaXVtcGhhbnQ7Civmga0gPCByZXNwZWN0ZnVsOwor56W4IDwgbWlzZm9ydHVuZTsKK+emhSA8IG1lZGl0YXRpb247Civmn68gPCBheGVcLWhhbmRsZTsKK+aNkCA8IGNvbnRyaWJ1dGU7CivouKogPCBmb290cHJpbnRzOwor5bGBIDwgYnJlYWtcLXdpbmQ7CivosIogPCBmcmllbmRzaGlwOwor5YKoIDwgc2F2ZVwtbW9uZXk7Civpm4EgPCB3aWxkXC1nb29zZTsKK+aRiiA8IHNwcmVhZFwtb3V0Owor5ZCoIDwgbWV0cmljXC10b247CivkuY0gPCBmaXJzdFwtdGltZTsKK+mZgCA8IHN0ZWVwXC1iYW5rOwor57a/IDwgY290dG9uXC13YWQ7CivntrEgPCBoZWF2eVwtcm9wZTsKK+aKkSA8IHByZXNzXC1kb3duOwor5b2sIDwgY3VsdGl2YXRlZDsKK+aSriA8IGxpdHRsZVwtYml0Owor57KlIDwgcmljZVwtZ3J1ZWw7Civom64gPCBiYXJiYXJpYW5zOwor5664IDwgY2hvcHN0aWNrczsKK+ettSA8IGJhbWJvb1wtbWF0Owor6ImHIDwgc21hbGxcLWJvYXQ7CivmjYwgPCBicmVha1wtb3BlbjsKK+esoCA8IGJhbWJvb1wtaGF0Owor5bqeIDwgZGlzb3JkZXJseTsKK+ernSA8IHRvXC1jb21iaW5lOwor5omJIDwgZG9vclwtcGFuZWw7CivlnZ0gPCBlbWJhbmttZW50Owor5oanIDwgaXJyZXNvbHV0ZTsKK+eUqSA8IHRocm93XC1hd2F5Owor6YWMIDwgc2VydmVcLXdpbmU7Civno5AgPCBsYXJnZVwtcm9jazsKK+i+hSA8IGNoZWVrXC1ib25lOwor5o2hIDwgdG9cLXBpY2tcLXVwOwor6LmIIDwgc3RhbXBcLWZlZXQ7CivmmZIgPCBkcnlcLWluXC1zdW47CivmrbwgPCBhbm5paGlsYXRlOwor5rapIDwgYXN0cmluZ2VudDsKK+mcjiA8IGxpZ2h0XC1yYWluOwor57u4IDwgc2lsa1wtY2xvdGg7CivnnK8gPCBiZVwtYmxpbmRlZDsKK+WvhSA8IHRvXC1yZXNwZWN0Owor55y2IDwgZXllXC1zb2NrZXQ7Civnop8gPCBzbWFsbFwtZGlzaDsKK+iVtCA8IHRvXC1jb2xsZWN0Owor6L+tIDwgcmVwZWF0ZWRseTsKK+aXrSA8IHJpc2luZ1wtc3VuOwor5oKNIDwgY291cmFnZW91czsKK+aeoiA8IGRvb3JcLWhpbmdlOwor6LeLIDwgZ29cLWJ5XC1mb290Owor5ZyqIDwgXChwaG9uZXRpY1wpOwor5pCUIDwgdG9cLXNjcmF0Y2g7Civlmo4gPCBjcnlcLWxvdWRseTsKK+axmyA8IGhpZ2hcLXdhdGVyOwor6ISvIDwgZHJpZWRcLW1lYXQ7Civll5IgPCB0b1wtZGVzcGFpcjsKK+WinyA8IGhpZ2hcLW1vdW5kOwor6aaLIDwgZ2x1dHRvbm91czsKK+i5rSA8IHRvXC1zaHVmZmxlOwor5r6IIDwgdGhvcm91Z2hseTsKK+e8rSA8IHdpbmRcLXJvdW5kOwor5ZazIDwgd2hpc3BlcmluZzsKK+W8pyA8IHdvb2RlblwtYm93Owor5oOGIDwgZGlzdHJlc3NlZDsKK+aStSA8IGRyaXZlXC1hd2F5Owor6L22IDwgcnVzaFwtZm9ydGg7Civnqr8gPCBtaW5lXC1zaGFmdDsKK+aotSA8IHdvb2RjdXR0ZXI7CivnioAgPCByaGlub2Nlcm9zOwor57uaIDwgdmFyaWVnYXRlZDsKK+iXlSA8IGxvdHVzXC1yb290Owor5pGeIDwgdG9cLXBpbGVcLXVwOwor5rukIDwgc3RyYWluXC1vdXQ7CivnvIggPCBpbmRpc3RpbmN0Owor6IKqIDwgYW5pbWFsXC1mYXQ7CivnlIQgPCB0b1wtZXhhbWluZTsKK+mTmyA8IGZyeWluZ1wtcGFuOwor5auhIDwgbGVnYWxcLXdpZmU7Civno7cgPCBwaG9zcGhvcnVzOwor57+hIDwga2luZ2Zpc2hlcjsKK+mcrSA8IGNsb3VkeVwtc2t5Owor6IirIDwgZmFuY3lcLWJvYXQ7CivnuqggPCB3aGl0ZVwtc2lsazsKK+amtyA8IGZvb3RicmlkZ2U7CivolJcgPCBzdWdhclwtY2FuZTsKK+W9lyA8IGJyb29tc3RpY2s7Civllp8gPCBoZWF2ZVwtc2lnaDsKK+WWkSA8IHRvXC1iZVwtZHVtYjsKK+mxvyA8IGN1dHRsZWZpc2g7CivlgJwgPCByYWlzZVwtaGlnaDsKK+a7giA8IHRvcnJlbnRpYWw7Civlv7sgPCBkZWxpZ2h0ZnVsOwor54enIDwgZmxpbnRzdG9uZTsKK+eolCA8IHJpcGVcLWdyYWluOwor6aKJIDwgZmx5XC11cHdhcmQ7CivoiLggPCBsYXJnZVwtYm9hdDsKK+ecmSA8IHRvXC1nYXplXC1hdDsKK+eYgCA8IGFcLWhlbWF0b21hOwor5aSvIDwgaGVhdnlcLWxvYWQ7CivpsqAgPCBmaXNoXC1ib25lczsKK+iMjyA8IHRhbGxcLWdyYXNzOwor6IyvIDwgY2hpbmFcLXJvb3Q7CivpsqcgPCBnaWFudFwtZmlzaDsKK+mApiA8IG1lYW5kZXJpbmc7CivpqpwgPCB3aWxkXC1ob3JzZTsKK+asuSA8IGZpZXJjZVwtZG9nOwor57ybIDwgZGVjb3JhdGl2ZTsKK+iLlSA8IHJ1c2hcLXBsYW50Owor6aG4IDwgbGFyZ2VcLWZhY2U7CivnvKYgPCBwbGFpblwtc2lsazsKK+W4mSA8IGJvb2tcLWNvdmVyOwor6bODIDwgZmlzaFwtZ2lsbHM7CivphrQgPCBzd2VldFwtd2luZTsKK+i+iiA8IHR1cm5cLXJvdW5kOwor5bKYIDwgc3RlZXBcLWhpbGw7CivlgKwgPCBub3RpY2VhYmxlOwor6bKeIDwgZHJpZWRcLWZpc2g7CivnvIEgPCBibGFja1wtc2lsazsKK+eupyA8IHJhdHRhblwtYm94Owor5aKBIDwgdG9cLXBsYXN0ZXI7CivnvbQgPCBicm93blwtYmVhcjsKK+eIsCA8IGxlYWRcLW9uXC10bzsKK+adsiA8IGJyaWdodFwtc3VuOwor55mUIDwgaHlzdGVyaWNhbDsKK+iOnCA8IGF2ZW5hXC1udWRhOwor5Z+ZIDwgaW5zdHJ1bWVudDsKK+eNviA8IHRoZVwtYmFkZ2VyOwor6YOrIDwgcGxhY2VcLW5hbWU7Civom48gPCByYXpvclwtY2xhbTsKK+W4kSA8IGFcLXRyZWFzdXJ5Owor5o+gIDwgdG9cLXB1bGxcLXVwOwor6LaRIDwgY2FuJyd0XC1tb3ZlOwor6ZiNIDwgZ2F0ZWtlZXBlcjsKK+aOiiA8IHRvXC1leHRyYWN0Owor6ZWdIDwgZHlzcHJvc2l1bTsKK+eglyA8IGdpYW50XC1jbGFtOwor5aurIDwgdWdseVwtd29tYW47Civot5cgPCB0aGVcLWluc3RlcDsKK+a1vCA8IHRvXC1yZXF1ZXN0Owor5ZeMIDwgdGhlXC10aHJvYXQ7CivmsYYgPCB0b1wtcGFyYm9pbDsKK+WIrSA8IGN1dFwtdGhyb2F0Owor6auCIDwgdGhlXC1wZWx2aXM7CivpkrwgPCBtb2x5YmRlbnVtOwor5oadIDwgdG9cLWRpc2xpa2U7CivngoUgPCBicmlsbGlhbmNlOwor6ZqzIDwgdG9cLWRlc3Ryb3k7CivojJsgPCByYW51bmN1bHVzOwor57OHIDwgZHJpZWRcLXJpY2U7CivpkoYgPCBnYWRvbGluaXVtOwor5r6MIDwgdG9cLWV4aGF1c3Q7CivluoAgPCB0b1wtcHJlcGFyZTsKK+eKtCA8IGFcLXdpbGRcLWRvZzsKK+WfjyA8IGFcLWJvdW5kYXJ5Owor6LCuIDwgdG9cLXNsYW5kZXI7CivnuK7nn60gPCB0b1wtY3VydGFpbDsKK+aUuee1hCA8IHJlb3JnYW5pemU7CivmspLllY/poYwgPCBub1wtcHJvYmxlbTsKK+esrOS6lOmhniA8IGNhdGVnb3J5XC01Owor5pOB6K23IDwgdG9cLWVuZG9yc2U7CivpgLLooYwgPCB0b1wtYWR2YW5jZTsKK+WllOazoiA8IHJ1c2hcLWFib3V0Owor5b6M5q+NIDwgc3RlcG1vdGhlcjsKK+aVo+eZvCA8IGRpc3RyaWJ1dGU7CivlpLHngasgPCBjYXRjaFwtZmlyZTsKK+iqleeUnyA8IHRvXC1iZVwtYm9ybjsKK+WkmueIviA8IFwoYm9iXClcLWRvbGU7Civlt7Tmnq/lr6fkuLvnvqkgPCBiYWt1bmluaXNtOwor5b285q2kIDwgZWFjaFwtb3RoZXI7CivpoJDlhYggPCBiZWZvcmVoYW5kOwor6Zec6ZaAIDwgY2xvc2VcLWRvd247CivpgZXog4wgPCB0b1wtdmlvbGF0ZTsKK+WGsOafk+afk+aWmSA8IGF6b2ljXC1keWVzOwor57Wx6KiIIDwgc3RhdGlzdGljczsKK+WHveizvCA8IG1haWxcLW9yZGVyOwor5aOB56uLIDwgXChvZlwtY2xpZmZzOwor5pil5a2jIDwgc3ByaW5ndGltZTsKK+mgkuS9iCA8IHByb211bGdhdGU7Civmr4/mrKEgPCBldmVyeVwtdGltZTsKK+e3qOeoiyA8IHRvXC1wcm9ncmFtOwor5YiG6KmeIDwgcGFydGljaXBsZTsKK+W+jOacnyA8IGxhdGVcLXN0YWdlOwor5pWI55SoIDwgdXNlZnVsbmVzczsKK+ezp+mjnyA8IGZvb2RzdHVmZnM7CivojZLph44gPCB3aWxkZXJuZXNzOwor5pKS6KyKIDwgdGVsbFwtYVwtbGllOwor54eD54eSIDwgY29tYnVzdGlvbjsKK+W8hOebtCA8IHN0cmFpZ2h0ZW47Civpgbfnp7sgPCB0b1wtbWlncmF0ZTsKK+mdnuWumOaWuSA8IHVub2ZmaWNpYWw7CivlpKfmsKMgPCBhdG1vc3BoZXJlOwor6KqN54K6IDwgdG9cLWJlbGlldmU7CivpmY3okL0gPCB0b1wtZGVzY2VuZDsKK+WJjeiAhSA8IHRoZVwtZm9ybWVyOwor5pWI546HIDwgZWZmaWNpZW5jeTsKK+mdtuW/gyA8IGJ1bGwnJ3NcLWV5ZTsKK+Wci+awkem7qCA8IGt1b21pbnRhbmc7Civli4PnhLYgPCBhZ2l0YXRlZGx5Owor6Kyb5birIDwgaW5zdHJ1Y3RvcjsKK+WPluS7oyA8IHN1YnN0aXR1dGU7CivmlrDmlZkgPCBwcm90ZXN0YW50Owor5aSa5qyhIDwgbWFueVwtdGltZXM7CivlpYfmlbggPCBvZGRcLW51bWJlcjsKK+W/heWwhyA8IGluZXZpdGFibHk7CivpmbDnsr4gPCBzZXhcLWZsdWlkczsKK+eZveiJsumrlCA8IGxldWNvcGxhc3Q7CivlppblrIggPCBlbmNoYW50aW5nOwor5LiN6ICQ54WpIDwgaW1wYXRpZW5jZTsKK+eZvuWIhueOhyA8IHBlcmNlbnRhZ2U7Civnubzmib8gPCB0b1wtaW5oZXJpdDsKK+S7pOeJjOeSsCA8IHRva2VuXC1yaW5nOwor5pON57ixIDwgdG9cLW9wZXJhdGU7CivlhajpnaIgPCBhbGxcLWFyb3VuZDsKK+Wbm+WAi+Wwj+aZgiA8IGZvdXJcLWhvdXJzOwor5Y6Y5Y2HIDwgY2VudGlsaXRlcjsKK+iqv+aVtCA8IGFkanVzdG1lbnQ7CivojZLorKwgPCByaWRpY3Vsb3VzOwor6Ieq55m95pu4IDwgY29uZmVzc2lvbjsKK+WxleimveacgyA8IGV4aGliaXRpb247Civnmb3poK0gPCBob2FyeVwtaGVhZDsKK+WkqeaWh+WtuOWutiA8IGFzdHJvbm9tZXI7CivmsbrkuI0gPCBub3RcLWF0XC1hbGw7CivoqqrmmI4gPCB0b1wtZXhwbGFpbjsKK+ecvOiKsee5muS6giA8IGJlXC1kYXp6bGVkOwor6a2v5L2b54i+5a6uIDwgdGhlXC1sb3V2cmU7Civlh7roibIgPCByZW1hcmthYmxlOwor5LiN5aCq5b+N5Y+XIDwgdW5iZWFyYWJsZTsKK+mrmOmAn+eOhyA8IGhpZ2hcLXNwZWVkOwor5YWN6ZmkIDwgdG9cLXByZXZlbnQ7CivlpqXljZQgPCBjb21wcm9taXNlOwor5beo6LyqIDwgbGFyZ2VcLXNoaXA7CivnhafniYcgPCBwaG90b2dyYXBoOwor6ZmE562GIDwgcG9zdHNjcmlwdDsKK+imquiHqiA8IHBlcnNvbmFsbHk7CivoqqrkuI3lh7roqbHkvoYgPCBzcGVlY2hsZXNzOwor5aib5qiC5Lit5b+DIDwgcmVjcmVhdGlvbjsKK+aUueatoyA8IHRvXC1jb3JyZWN0Owor5aSn5Z+O5biCIDwgbWFqb3JcLWNpdHk7Civoh6rnlLHosr/mmJMgPCBmcmVlXC10cmFkZTsKK+WNiuWckyA8IHNlbWljaXJjbGU7CivniK3lpaogPCBmaWdodFwtb3ZlcjsKK+efreacnyA8IHNob3J0XC10ZXJtOwor5q+P5bm0IDwgZXZlcnlcLXllYXI7CivllqzmsrvmlaYgPCBnZW9yZ2V0b3duOwor5LiJ5YiG5LmL5LqMIDwgdHdvXC10aGlyZHM7CivlgrPpgZPogIUgPCBtaXNzaW9uYXJ5Owor5pW15omLIDwgYW50YWdvbmlzdDsKK+WNsOWDjyA8IGltcHJlc3Npb247CivkuI3lj6/og70gPCBpbXBvc3NpYmxlOwor57K+6YCaIDwgcHJvZmljaWVudDsKK+W+iOWkpyA8IHRyZW1lbmRvdXM7Civnmb3phZIgPCBzcGlyaXRcLXVzdTsKK+mMhOmfs+W4tiA8IGF1ZGlvXC10YXBlOwor6I2J6I6TIDwgc3RyYXdiZXJyeTsKK+mMq+WuieWxsSA8IG1vdW50XC16aW9uOwor5aGU5ZCJ5YWL5pav5Z2mIDwgdGFqaWtpc3RhbjsKK+WgseeroCA8IG5ld3NwYXBlcnM7CivlpJrlubQgPCBtYW55XC15ZWFyczsKK+iqnuW9mSA8IHZvY2FidWxhcnk7Civml6nlhYggPCBwcmV2aW91c2x5Owor57i957Wx5Lu75pyfIDwgcHJlc2lkZW5jeTsKK+eJjOWDuSA8IGxpc3RcLXByaWNlOwor5ber6KGTIDwgd2l0Y2hjcmFmdDsKK+mBjua4oSA8IHRyYW5zaXRpb247CivmjqLpmqogPCB0b1wtZXhwbG9yZTsKK+Wkp+WtuCA8IHVuaXZlcnNpdHk7CivnhKHnkIYgPCBpcnJhdGlvbmFsOwor5Y2K5YO5IDwgaGFsZlwtcHJpY2U7CivljYDliKUgPCBkaWZmZXJlbmNlOwor6Zec6IGvIDwgYmVcLXJlbGF0ZWQ7Civnoazno4Hnm6QgPCBoYXJkXC1kcml2ZTsKK+WcsOmchyA8IGVhcnRocXVha2U7Civop4DnnL4gPCBzcGVjdGF0b3JzOwor5o6S6ZqKIDwgdG9cLWxpbmVcLXVwOwor5pSq5pO+IDwgdG9cLWRpc3R1cmI7CivkuI3lj6/pgL7otoogPCBpbXBhc3NhYmxlOwor5pW45a24IDwgbWF0aGVtYXRpYzsKK+eGseW/gyA8IGVudGh1c2lhc207CivliqDliKnnpo/lsLzkup4gPCBjYWxpZm9ybmlhOwor5q235Y+y5LiKIDwgaGlzdG9yaWNhbDsKK+iomOW4s+WToSA8IGJvb2trZWVwZXI7Civpm7vlrZAgPCBlbGVjdHJvbmljOwor55m96KmxIDwgdmVybmFjdWxhcjsKK+eCuOezlSA8IGZyaWVkXC1jYWtlOwor5pWj5bCEIDwgc2NhdHRlcmluZzsKK+iTi+S4liA8IHVucml2ZWxsZWQ7Civnt6jmjpIgPCB0b1wtYXJyYW5nZTsKK+aNlemtmiA8IGNhdGNoXC1maXNoOwor5YWB6Ku+IDwgdG9cLXByb21pc2U7Civoqr/lkowgPCBoYXJtb25pb3VzOwor5b6M5L6GIDwgYWZ0ZXJ3YXJkczsKK+S9v+WkseacmyA8IGRpc2FwcG9pbnQ7CivlpKfllpwgPCBleHVsdGF0aW9uOwor6Kit5pa9IDwgZmFjaWxpdGllczsKK+aWueS+vyA8IGNvbnZlbmllbnQ7CivmraTlvowgPCBhZnRlclwtdGhpczsKK+W6p+aomSA8IGNvb3JkaW5hdGU7CivntpPmrbcgPCBleHBlcmllbmNlOwor5qiC6KeAIDwgb3B0aW1pc3RpYzsKK+WkquWPpCA8IGltbWVtb3JpYWw7Civpm6LlqZogPCB0b1wtZGl2b3JjZTsKK+aVmeWgguWik+WcsCA8IGNodXJjaHlhcmQ7CivpvqIgPCBpblwtaGFybW9ueTsKK+eHiOWhlCA8IGxpZ2h0aG91c2U7Civlh7rniYggPCB0b1wtcHVibGlzaDsKK+WFteiIuSA8IG1hblwtb2ZcLXdhcjsKK+ihjOaUv+mVt+WumCA8IG1hZ2lzdHJhdGU7CivpvKcgPCB0aGVcLW1hcm1vdDsKK+m8hCA8IHRoZVwtc3BpZGVyOwor6bu5IDwgZW1icm9pZGVyeTsKK+m7siA8IGdyZXlcLWJsYWNrOwor6bukIDwgYmx1ZVwtYmxhY2s7CivlgrfpoqggPCBjYXRjaFwtY29sZDsKK+aUvuWwhCA8IHRvXC1yYWRpYXRlOwor5q+U5L6LIDwgcHJvcG9ydGlvbjsKK+m4uiA8IGhvcm5lZFwtb3dsOwor6Zqo5b6MIDwgc29vblwtYWZ0ZXI7CivliY3mma8gPCBmb3JlZ3JvdW5kOwor6YG35bu2IDwgbG9uZ1wtZGVsYXk7Civoo5zoqp4gPCBjb21wbGVtZW50Owor6bWSIDwgbXluYWhcLWJpcmQ7CivptLcgPCB3b29kcGVja2VyOwor5Yqg5a+GIDwgdG9cLWVuY3J5cHQ7CivmlbTlkIggPCB0b1wtY29uZm9ybTsKK+aJv+WMheS6uiA8IGNvbnRyYWN0b3I7CivpgZXmipcgPCB0b1wtZGlzb2JleTsKK+ebo+edoyA8IHRvXC1jb250cm9sOwor6bOyIDwgdHVydGxlZG92ZTsKK+aWh+WFtyA8IHN0YXRpb25lcnk7Civmr4/kurogPCBwZXJcLXBlcnNvbjsKK+eJqeizquS4iiA8IG1hdGVyaWFsbHk7CivpsrAgPCBzbWFsbFwtZmlzaDsKK+mYsuawtCA8IHdhdGVycHJvb2Y7CivpsYcgPCBhbmdsZXJmaXNoOwor6LK05peP6KuW6ICFIDwgYXJpc3RvY3JhdDsKK+WNiuWFrOmWiyA8IHNlbWlcLW92ZXJ0Owor5L2/5YWN6ZmkIDwgZ2V0XC1yaWRcLW9mOwor5pu06KGj5a6kIDwgY2hhbmdlcm9vbTsKK+mugSA8IHRoZVwtYm9uaXRvOwor6YCA5q2lIDwgZGVnZW5lcmF0ZTsKK+mBqeW6piA8IG1vZGVyYXRlbHk7CivprZsgPCB0aGVcLW11bGxldDsKK+mBoOW+gSA8IGV4cGVkaXRpb247CivprKggPCBib2lzdGVyb3VzOwor6aycIDwgdG9cLWdvXC1iYWxkOwor55m96IeJIDwgd2hpdGVcLWZhY2U7CivnuL3lhbEgPCBhbHRvZ2V0aGVyOwor6aujIDwgc2ltaWxhclwtdG87Civpq4EgPCB0aGlnaFwtYm9uZTsKK+ino+aekCA8IHRvXC1hbmFseXplOwor6aiXIDwgdG9cLXN3aW5kbGU7CivpqIsgPCB0YWxsXC1ob3JzZTsKK+moiSA8IGZpbmVcLWhvcnNlOwor6aewIDwgZ3JleVwtaG9yc2U7CivpprkgPCBwb3N0XC1ob3JzZTsKK+ippuWcliA8IHRvXC1hdHRlbXB0Owor6Imm6LyJIDwgc2hpcFwtYmFzZWQ7Civnn6XlkI0gPCB3ZWxsXC1rbm93bjsKK+WkmuS6iyA8IG1lZGRsZXNvbWU7CivlhrDnkIMgPCBpY2VcLWhvY2tleTsKK+ino+aUviA8IGxpYmVyYXRpb247CivpnqEgPCBsZWdcLXdhcm1lcjsKK+mdnSA8IHRoZVwtaGVhdmVuOwor5YG96aCCIDwgZmFsc2VcLXJvb2Y7Civpq5jpmo4gPCBoaWdoXC1sZXZlbDsKK+aNj+mAoCA8IHRvXC1tYWtlXC11cDsKK+mariA8IHRpXC1yaXNlXC11cDsKK+mZuyA8IHNtYWxsXC1oaWxsOwor5paw6IGe6KiY6ICFIDwgam91cm5hbGlzdDsKK+aTgeaKsSA8IHRvXC1lbWJyYWNlOwor6Zu25LiLIDwgYmVsb3dcLXplcm87Civpl58gPCBwZWFjZWZ1bGx5Owor6Z6t6Zei5YWl6KOhIDwgcGVuZXRyYXRlZDsKK+i2heWqkumrlCA8IGh5cGVybWVkaWE7CivplZogPCBzbWFsbFwtY29pbjsKK+mUrCA8IGxvbmdcLXNwZWFyOwor5LiN5piO56K6IDwgaW5kZWZpbml0ZTsKK+mStyA8IHByb21ldGhpdW07CivmlL7lh7ogPCB0b1wtbGV0XC1vZmY7CivpkLYgPCBtZXRhbFwtcmluZzsKK+mQmiA8IHNvZnRcLXN0ZWVsOwor5YWs55+zIDwgaGVjdG9saXRlcjsKK+mQkiA8IGxhd3JlbmNpdW07CivpkIAgPCBhXC1jdXBib2FyZDsKK+S4jeaZr+awoyA8IGRlcHJlc3Npb247Civku5blgJHoh6rlt7EgPCB0aGVtc2VsdmVzOwor6LOH5pys5a62IDwgY2FwaXRhbGlzdDsKK+mOqiA8IHRvXC1lbmdyYXZlOwor6Y6bIDwgbGFyZ2VcLWJlbGw7CivloLHmlbggPCBudW1iZXJcLW9mZjsKK+mNgCA8IHRlY2huZXRpdW07CivmlLblhaUgPCB0b1wtdGFrZVwtaW47CivoqZ7lhbggPCBkaWN0aW9uYXJ5Owor6Kit5ZyoIDwgbG9jYXRlZFwtYXQ7CivpmZDluqYgPCBsaW1pdGF0aW9uOwor6KOx57OKIDwgd2FsbFwtcGFwZXI7CivpiIogPCBjYWRvbGluaXVtOwor6YahIDwgd2luZVwtcHJlc3M7Civphp0gPCB3aGl0ZVwtd2luZTsKK+aqouafpSA8IGluc3BlY3Rpb247CivphYUgPCByYWlzZVwtZmVldDsKK+mYv+WhnuaLnOeWhiA8IGF6ZXJiYWlqYW47CivngIbogbcgPCB3cm9uZ2RvaW5nOwor5bqH5buVIDwgXChvZlwtYVwtdHJlZTsKK+S6jOaJi+iyqCA8IHNlY29uZGhhbmQ7CivpmbDlpKkgPCBjbG91ZHlcLWRheTsKK+e1guaWvCA8IGV2ZW50dWFsbHk7CivoqILlqZogPCBlbmdhZ2VtZW50Owor6Zm45Z+6IDwgbGFuZFwtYmFzZWQ7Civpgo/ovK/ngrjlvYggPCBsb2dpY1wtYm9tYjsKK+W7muWPuCA8IGNvb2tcLFwtY2hlZjsKK+WCs+iqqiA8IGl0XC1pc1wtc2FpZDsKK+WItuWumiA8IHRvXC1kcmF3XC11cDsKK+aYk+aOpei/kSA8IGFjY2Vzc2libGU7CivpgKwgPCB0b1wtc2NhdHRlcjsKK+mAn+WwhCA8IHJhcGlkXC1maXJlOwor6YG65YKzIDwgaGVyZWRpdGFyeTsKK+iIiei+piA8IHRvXC1jb25kdWN0Owor5Yip5a6zIDwgZm9ybWlkYWJsZTsKK+i6qSA8IHRha2VcLXF1aWNrOwor5YWl542EIDwgZ29cLXRvXC1qYWlsOwor57Gz57KJIDwgcmljZVwtZmxvdXI7CivlnJbop6PoqqrmmI4gPCBpbGx1c3RyYXRlOwor5LiN5bGI5LiN5pKTIDwgdW55aWVsZGluZzsKK+i4pyA8IHVuZWFzaW5lc3M7CivouJwgPCB0b1wtc3R1bWJsZTsKK+i4liA8IHRyYW1wbGVcLW9uOwor6L6y5p2RIDwgcnVyYWxcLWFyZWE7Civmg7Plg4/lipsgPCBjb25jZXB0aW9uOwor6LeQIDwgdG9cLXRyYW1wbGU7Civlia/liIogPCBzdXBwbGVtZW50Owor5pyJ5rG65b+DIDwgZGV0ZXJtaW5lZDsKK+aphOasluaouSA8IG9saXZlXC10cmVlOwor5pON5aC0IDwgcGxheWdyb3VuZDsKK+WfuuaWvCA8IGJlY2F1c2VcLW9mOwor6KGN6K6KIDwgdG9cLWRldmVsb3A7CivlhajnhLYgPCBjb21wbGV0ZWx5Owor5aSn6IWm5q275LqhIDwgYnJhaW5cLWRlYWQ7CivlnJjogZogPCB0b1wtcmV1bml0ZTsKK+ixgCA8IHRvXC1xdWFycmVsOwor54it6KuW6bueIDwgY29udGVudGlvbjsKK+eZveeLkCA8IGFyY3RpY1wtZm94Owor5pOB5aGeIDwgY29uZ2VzdGlvbjsKK+iojuWOrSA8IGRpc2d1c3Rpbmc7CivorKogPCB0b1wtY29uc3VsdDsKK+eZveeGviA8IHdoaXRlXC1oZWF0Owor6KSH6Zuc5oCnIDwgY29tcGxleGl0eTsKK+eZveeGiiA8IHBvbGFyXC1iZWFyOwor55m954WkIDwgYW50aHJhY2l0ZTsKK+WAmumdoCA8IHRvXC1sZWFuXC1vbjsKK+W5vOWlsyA8IHlvdW5nXC1naXJsOwor6KeA5a+fIDwgdG9cLW9ic2VydmU7Civkvb/nlKjogIXkuK3ku4sgPCB1c2VyXC1hZ2VudDsKK+WFteazlSA8IGFydFwtb2ZcLXdhcjsKK+eVtumBuCA8IGJlXC1lbGVjdGVkOwor6Ka4IDwgc3RlYWxcLWxvb2s7Civnm6PmjqcgPCB0b1wtbW9uaXRvcjsKK+e1kOWxgCA8IGNvbmNsdXNpb247Civoo6ogPCB0aGVcLXNsZWV2ZTsKK+asoOS9syA8IHN1Ym9wdGltYWw7CivpgLHliLAgPCB0aG91Z2h0ZnVsOwor6KaP5b6LIDwgZGlzY2lwbGluZTsKK+ifqyA8IHNpbHZlcmZpc2g7Civon6MgPCBsb3VzZVwtZWdnczsKK+euoei9hCA8IGFkbWluaXN0ZXI7Civon4EgPCBhXC1tb3NxdWl0bzsKK+iDoeaAneS6guaDsyA8IGltYWdpbmluZ3M7CivlpbbniZvloLQgPCBkYWlyeVwtZmFybTsKK+aoueaogSA8IHRyZWVcLXN0dW1wOwor6KWv5omYIDwgdG9cLXNldFwtb2ZmOwor6JucIDwgd29vZFwtbG91c2U7Civmk43lhbggPCBkcmlsbFwtYm9vazsKK+i3kemmrCA8IGhvcnNlXC1yYWNlOwor6JanIDwgZHJpZWRcLWZvb2Q7CivmqqLlr58gPCB0b1wtaW5zcGVjdDsKK+iVoSA8IGhlbXBcLXNlZWRzOwor5beo5pifIDwgZ2lhbnRcLXN0YXI7CivlrZfnr4DmlbggPCBieXRlXC1jb3VudDsKK+iTtyA8IG1vdGhlcndvcnQ7CivpmYTliqAgPCBhZGRpdGlvbmFsOwor6JK9IDwgYW50aHJhY2VuZTsKK+iSpiA8IHRvXC1tZWFzdXJlOwor6JKWIDwgcGxhbnRcLW5hbWU7CivkuIDliIfkuovniakgPCBldmVyeXRoaW5nOwor6JGvIDwgb3JyaXNcLXJvb3Q7CivmrYznvoXopb/mm7ggPCBjb2xvc3NpYW5zOwor55u45bCNIDwgcmVsYXRpdmVseTsKK+eEoeWDuSA8IGludmFsdWFibGU7CivmkI/mlpcgPCB0b1wtd3Jlc3RsZTsKK+iNtSA8IHBvbGVtb25pdW07Civlh7rnlJ/lnLAgPCBiaXJ0aHBsYWNlOwor5LiN55Sx6Ieq5Li7IDwgY2FuJyd0XC1oZWxwOwor5ouc6KiXIDwgcmVxdWVzdFwtc2I7CivmjpLnkIMgPCB2b2xsZXliYWxsOwor5bqX5Li7IDwgc2hvcFwtb3duZXI7CivkuI3kuIvkuo4gPCBhc1wtbWFueVwtYXM7Civnk7bpoLggPCBib3R0bGVuZWNrOwor5bmr5YqpIDwgYXNzaXN0YW5jZTsKK+iEqiA8IGVyeXNpcGVsYXM7CivohJcgPCBjb2luY2lkaW5nOwor5bmr5Ye2IDwgYWNjb21wbGljZTsKK+WFrOaSriA8IG1pbGxpbGl0ZXI7CivogqYgPCBsYXJnZVwtaGVhZDsKK+exg+eQgyA8IGJhc2tldGJhbGw7CivmirHosqAgPCBhc3BpcmF0aW9uOwor5pu85b655pav54m5IDwgbWFuY2hlc3RlcjsKK+S8vemmrOWwhOe3miA8IGdhbW1hXC1yYXlzOwor5aSn5aqS6auUIDwgbWFjcm9tZWRpYTsKK+eul+ihkyA8IGFyaXRobWV0aWM7CivmjqjmuKwgPCBjb25qZWN0dXJlOwor6KaB5aGeIDwgc3Ryb25naG9sZDsKK+eZveaXlyA8IHdoaXRlXC1mbGFnOwor5ru/6LazIDwgdG9cLXNhdGlzZnk7CivpqYXpgJAgPCBiYW5pc2htZW50Owor5qW154K66b6Q5aSnIDwgbW9udW1lbnRhbDsKK+e5kCA8IGZpbmVcLWNsb3RoOwor5YKZ5b+Y6YyEIDwgbWVtb3JhbmR1bTsKK+e4hyA8IGRlY29yYXRpb247CivooajnpLogPCB0b1wtZXhwcmVzczsKK+aMqOWAi+WFkiA8IG9uZVwtYnlcLW9uZTsKK+i+suWckiA8IHBsYW50YXRpb247CivlhYTlvJ/mnIMgPCBmcmF0ZXJuaXR5Owor55WZ6IGy5qmfIDwgZ3JhbW9waG9uZTsKK+e1uiA8IGZpbmVcLWxpbmVuOwor5pyJ5Yip5Y+v5ZyWIDwgcHJvZml0YWJsZTsKK+e1myA8IHNpbGtcLWJyYWlkOwor57WWIDwgZmluZVwtc2lsa3M7CivntZMgPCBvYnN0cnVjdGVkOwor5oqV6LOHIDwgaW52ZXN0bWVudDsKK+eyuyA8IHByb3Zpc2lvbnM7CivnhKHmiYDkuI3og70gPCBvbW5pcG90ZW50Owor55yL5YiwIDwgc2VlXC1cKHRoYXRcKTsKK+aPkOaYhyA8IHRvXC1wcm9tb3RlOwor5ZOI6Jap5YWL5pav5Z2mIDwga2F6YWtoc3RhbjsKK+ewpSA8IGxhcmdlXC1waXBlOwor5YiG6Zui5Li7576pIDwgc2VwYXJhdGlzbTsKK+WFjOaPmyA8IHRvXC1jb252ZXJ0Owor5LiW55WM6YqA6KGMIDwgd29ybGRcLWJhbms7Civpu5HojpPlrZAgPCBibGFja2JlcnJ5Owor56+LIDwgcmF0dG9uXC1ib3g7CivnrqAgPCBob3JzZVwtd2hpcDsKK+eumiA8IGJyaWVmXC1ub3RlOwor5YWs5byVIDwgaGVjdG9tZXRlcjsKK+eqsCA8IGJyaWNrXC1raWxuOwor5bCI6ZaAIDwgc3BlY2lhbGlzdDsKK+eprSA8IHdpbGRcLWdyYWluOwor55yL5L6GIDwgYXBwYXJlbnRseTsKK+iHieiJsiA8IGNvbXBsZXhpb247CivojYnlj6IgPCB1bmRlcmJydXNoOwor5YW85a65IDwgY29tcGF0aWJsZTsKK+WcqOS4i+mdoiA8IHVuZGVybmVhdGg7CivnpYUgPCBjYWxhbWl0aWVzOwor5LiN6K6K5YyWIDwgaW52YXJpYWJseTsKK+i7jea4ryA8IG5hdmFsXC1wb3J0Owor5oyJ56uLIDwgb3JkaW5hdGlvbjsKK+eUn+ioiCA8IGxpdmVsaWhvb2Q7Civno5EgPCBzdG9uZVwtbWlsbDsKK+aOjOargyA8IHNob3BrZWVwZXI7Civooajnj74gPCBleHByZXNzaW9uOwor5YWp5bK4IDwgYmlsYXRlcmlhbDsKK+ehgyA8IGFcLXJlZFwtbW9sZTsKK+WFseWtmCA8IHRvXC1jb2V4aXN0Owor552fIDwgY2xlYXJcLWV5ZWQ7Civlm5rniq8gPCBhXC1wcmlzb25lcjsKK+WBiee4viA8IGdyZWF0XC1hY3RzOwor6KGN55SfIDwgZGVydmlhdGl2ZTsKK+WGsOWIgCA8IGljZVwtc2thdGVzOwor5o6l5pS2IDwgdG9cLXJlY2VpdmU7CivmioDooZMgPCB0ZWNobm9sb2d5Owor55aVIDwgaGVhZFwtc29yZXM7CivnlZMgPCByaWNlXC1maWVsZDsKK+eVgSA8IHRvXC1naXZlXC10bzsKK+Wuv+mhjCA8IGFzc2lnbm1lbnQ7CivpmYznlJ/kurogPCBhXC1zdHJhbmdlcjsKK+eOlCA8IGdyZWVuXC1qYWRlOwor6a2a5o6SIDwgZmlzaFwtc3RlYWs7CivnhKHmiYDkuI3nn6UgPCBvbW5pc2NpZW50Owor5oyH55SyIDwgZmluZ2VybmFpbDsKK+mWi+acg+eliOemsSA8IGludm9jYXRpb247CivlrbjpvaEgPCBzY2hvb2xcLWFnZTsKK+eKmyA8IGFcLWJsYWNrXC1veDsKK+S4jemBqeeVtiA8IGluYWRlcXVhdGU7Civmjajmo4QgPCB0b1wtZ2l2ZVwtdXA7Civpm7voppboh7ogPCB0dlwtc3RhdGlvbjsKK+eJjyA8IHByaXZ5XC1ob2xlOwor54irIDwgcmFkaWNhbFwtODc7Civkvb/phokgPCBpbnRveGljYXRlOwor5ouY56aBIDwgY29uc3RyYWludDsKK+eGhSA8IHNtb290aFwtb3V0Owor5ZyL5pyDIDwgcGFybGlhbWVudDsKK+mgmOWwjuiDveWKmyA8IGxlYWRlcnNoaXA7CivotoXotoogPCB0b1wtc3VycGFzczsKK+eBuiA8IGNhbmRsZVwtZW5kOwor54GSIDwgdG9cLXNwYXR0ZXI7Civmjqjlu6MgPCBwb3B1bGFyaXplOwor5Li75Yqb6ImmIDwgYmF0dGxlc2hpcDsKK+a/mSA8IHRvXC1yZXZvbHZlOwor5r+GIDwgcml2ZXJcLWJhbms7CivkvaPph5EgPCBjb21taXNzaW9uOwor55m95ZaJIDwgZGlwaHRoZXJpYTsKK+aOiOaEjyA8IHRvXC1pbnNwaXJlOwor5YWs5YiGIDwgY2VudGltZXRlcjsKK+ethuiAhSA8IHRoZVwtYXV0aG9yOwor5rOGIDwgbGljZW50aW91czsKK+S/neiCsiA8IGNoaWxkXC1jYXJlOwor55m95Y2AIDwgd2hpdGVcLWFyZWE7Civmj7nlgrUgPCBiZVwtaW5cLWRlYnQ7CivmvKvnlasgPCBjYXJpY2F0dXJlOwor6KGM5LiN6YCaIDwgd29uJyd0XC13b3JrOwor5YGc54GrIDwgY2Vhc2VcLWZpcmU7Civnq7bniK3ogIUgPCBjb21wZXRpdG9yOwor6Imv5b+DIDwgY29uc2NpZW5jZTsKK+arviA8IHRoZVwtcG9tZWxvOwor5Zau6Kq/IDwgbW9ub3Rvbm91czsKK+aqvCA8IHJpZGdlXC1wb2xlOwor6KGo5piOIDwgbWFrZVwta25vd247CivmnInns7vntbEgPCBzeXN0ZW1hdGljOwor5rKS5Lq65L2PIDwgdW5vY2N1cGllZDsKK+amvCA8IHdpbmVcLWdsYXNzOwor5qamIDwgdHJlZVwtdHJ1bms7Civli5XnianlrbggPCB6b29sb2dpY2FsOwor5qS1IDwgcG9tcGVsbW91czsKK+aksyA8IHRoZVwtcGl2b3RzOwor5qih5Lu/IDwgdG9cLWltaXRhdGU7CivmhI/opovkuI3lkIggPCBkaXNzZW5zaW9uOwor55un5qOu5aChIDwgbHV4ZW1ib3VyZzsKK+eZvOS9iCA8IHRvXC1yZWxlYXNlOwor56ys5LiD5Y2BIDwgc2V2ZW50aWV0aDsKK+agmyA8IHRoZVwtbGljaGVlOwor5qCYIDwgZnJ1aXRcLXRyZWU7Civmop3ntIQgPCB0cmVhdHlwYWN0Owor5bCO6IiqIDwgbmF2aWdhdGlvbjsKK+aOkuWkliA8IHhlbm9waG9iaWM7CivlsI7oh7QgPCB0b1wtbGVhZFwtdG87CivlsZXnpLogPCB0b1wtb3BlblwtdXA7CivlhrDlh53lmaggPCBjcnlvcGhvcnVzOwor5bCL6IiLIDwgdG9cLXByb3Zva2U7CivmnaIgPCB3b29kd29ya2VyOwor5YWI5L6LIDwgYW50ZWNlZGVudDsKK+izk+mkqCA8IGd1ZXN0aG91c2U7CivmqJPkuIsgPCBkb3duc3RhaXJzOwor5paiIDwgdG9cLXBsdW5kZXI7CivmiZPntZAgPCB0aWVcLWFcLWtub3Q7CivlrZ/liqDmi4nlnIsgPCBiYW5nbGFkZXNoOwor6IeG5risIDwgYXNzdW1wdGlvbjsKK+W/g+eQhuWtuCA8IHBzeWNob2xvZ3k7Civmk6ogPCB0b1wtdHVja1wtaW47CivmkrEgPCB0b1wtc2hvcnRlbjsKK+awo+WWmOWWmCA8IGJyZWF0aGxlc3M7Civmi5TmsrMgPCB0dWdcLW9mXC13YXI7CivnrKzkuIDkvosgPCBmaXJzdFwtY2FzZTsKK+eUn+eUoiA8IHRvXC1wcm9kdWNlOwor6KOc5YSfIDwgY29tcGVuc2F0ZTsKK+aOsSA8IHBpY2twb2NrZXQ7Civmjo4gPCBkcmFnXC1hc2lkZTsKK+S6uumrlCA8IGh1bWFuXC1ib2R5Owor6IOe6KGjIDwgYWZ0ZXJiaXJ0aDsKK+aMluaOmCA8IGV4Y2F2YXRpb247Civlm5vlubQgPCBmb3VyXC15ZWFyczsKK+eZvuWIhuS5i+S5neWNgSA8IDkwXC1wZXJjZW50Owor5omhIDwgZHJhZ1wtYWxvbmc7CivppJDppKggPCByZXN0YXVyYW50Owor6IGW6Z2IIDwgaG9seVwtZ2hvc3Q7CivmhrggPCB0b1wtZmxhdHRlcjsKK+aMh+aOpyA8IGFjY3VzYXRpb247Civmho0gPCBiZVwtaGF1Z2h0eTsKK+aGgCA8IHRvXC1yZWx5XC1vbjsKK+W8leS6uuazqOaEjyA8IGF0dHJhY3RpdmU7CivmiYvnqL8gPCBtYW51c2NyaXB0Owor5oq55rK5IDwgdG9cLWFubm9pbnQ7CivmhJMgPCBwcm9mbGlnYXRlOwor6KGo5bC6IDwgcmVhclwtc2lnaHQ7Civmg48gPCBhdmFyaWNpb3VzOwor5pGp5aSp5pGfIDwgc2t5c2NyYXBlcjsKK+eVoualrSA8IGdyYWR1YXRpb247CivmgZsgPCBkaXNvcmRlcmVkOwor5Zu65Z+3IDwgcGVyc2lzdGVudDsKK+aAsiA8IGJlXC1hbnhpb3VzOwor5b2/IDwgcmVzZW1ibGluZzsKK+afpeipoiA8IHRvXC1pbnF1aXJlOwor5byHIDwgY292ZXJcLW92ZXI7Civlu4AgPCB0b1wtY29uY2VhbDsKK+W/mOaBqeiyoOe+qSA8IHVuZ3JhdGVmdWw7CivnlpHmha4gPCBoZXNpdGF0aW9uOwor5ZaJ6IiMIDwgbW91dGhwaWVjZTsKK+iBr+mAmiA8IGNvbm5lY3Rpb247CivlvpfkuI3liLAgPCBjYW5ub3RcLWdldDsKK+mnkOe0riA8IHRvXC1zdGF0aW9uOwor57C95Ye6IDwgdG9cLWxvZ1wtb2ZmOwor5bGEIDwgdGhlXC12YWdpbmE7Civph43opoHmgKcgPCBpbXBvcnRhbmNlOwor6aSF6ZC6IDwgYmFraW5nXC1wYW47CivlrrwgPCB0eXJhbm5pY2FsOwor5oqA6KGT5ZOhIDwgdGVjaG5pY2lhbjsKK+mOl+euoSA8IGd1blwtYmFycmVsOwor5aqfIDwgbHVzdFwtYWZ0ZXI7CivpkLXmnb8gPCBpcm9uXC1wYW5lbDsKK+mPiOeSsCA8IGNoYWluXC1saW5rOwor55u45ZCM5ZCN5a2XIDwgbGlrZVwtbmFtZWQ7Civnq63nm6EgPCBleGhhdXN0aW9uOwor6LuN5Lq6IDwgc2VydmljZW1hbjsKK+S9v+S6uuS/oeacjSA8IGNvbnZpbmNpbmc7CivogIHpoK0gPCBvbGRcLWZlbGxvdzsKK+WRqOaBqeS+hiA8IHpob3VcLWVubGFpOwor54++6LGhIDwgYXBwZWFyYW5jZTsKK+mOrueXmyA8IGFuYWxnZXNpYWM7CivloIMgPCBjb21wbGlhbmNlOwor5pyJ6IiI6LajIDwgaW50ZXJlc3RlZDsKK+iHquWwiiA8IHNlbGZcLXByaWRlOwor5a6a576pIDwgZGVmaW5pdGlvbjsKK+WcpiA8IHdhdGVyXC1nYXRlOwor5ZuMIDwgbG9xdWFjaW91czsKK+WasiA8IHJlYWRcLWFsb3VkOwor5LiN57aT5oSPIDwgY2FyZWxlc3NseTsKK+ertueIrSA8IHRvXC1jb21wZXRlOwor5omT5a2X5qmfIDwgdHlwZXdyaXRlcjsKK+WUvSA8IHRvXC10d2l0dGVyOwor5a+m54++IDwgdG9cLWFjaGlldmU7CivlgrfkuqEgPCBjYXN1YWx0aWVzOwor5ZG0IDwgYnJlYXRoZVwtb247CivlgI3lop7lmaggPCBtdWx0aXBsaWVyOwor5qWt5L2ZIDwgc3BhcmVcLXRpbWU7Civph5Hlsaznt5ogPCBtZXRhbFwtd2lyZTsKK+ihjOWIlyA8IHByb2Nlc3Npb247CivljZ0gPCBoYWlyXC1zdHlsZTsKK+eXheWBhyA8IHNpY2tcLWxlYXZlOwor5pyf6ZmQIDwgdGltZVwtbGltaXQ7Civlio8gPCB0b1wtYnV0Y2hlcjsKK+mbu+WtkOepuumWkyA8IGN5YmVyc3BhY2U7CivlhpggPCB0b1wtbW92ZVwtb247CivorZjliKXomZ8gPCBpZGVudGlmaWVyOwor5oqK5oiyIDwgYWNyb2JhdGljczsKK+eUn+acieasiiA8IGJpcnRocmlnaHQ7Civlga0gPCB0cmFuc2dyZXNzOwor5YGdIDwgbm90XC1mYWNpbmc7CivmtojosrsgPCB0b1wtY29uc3VtZTsKK+aMgeWNoeS6uiA8IGNhcmRob2xkZXI7CivooYzkurogPCBwZWRlc3RyaWFuOwor5YCAIDwgYmV3aWxkZXJlZDsKK+avm+a+pOadsSA8IG1hb1wtemVkb25nOwor5pu46Z2iIDwgaW5cLXdyaXRpbmc7Civlha3ljYHkupQgPCBzaXh0eVwtZml2ZTsKK+S8tyA8IGRlc2NlbmRlbnQ7CivlpJrlqpLpq5QgPCBtdWx0aW1lZGlhOwor56+A5Yi2IDwgdGVtcGVyYW5jZTsKK+aKteaKl+WKmyA8IHJlc2lzdGFuY2U7CivohZDmlZcgPCBjb3JydXB0aW9uOwor5LarIDwgZmluZVwtdGVldGg7CivktokgPCBndWluZWFcLXBpZzsKK+S1qiA8IHB1cmVcLWJsYWNrOwor5LWdIDwgZGFya1wtYmxhY2s7CivnjbjphqsgPCB2ZXRlcmluYXJ5Owor5b6u5LiN6Laz6YGTIDwgbmVnbGlnaWJsZTsKK+WBmuWHuiA8IHRvXC1wdXRcLW91dDsKK+S9nOeCuiA8IGFjY29tcGxpc2g7Civks5UgPCB0aGVcLXBpZ2VvbjsKK+SzjCA8IHRoZVwtY3Vja29vOwor5oqY5bCEIDwgcmVmcmFjdGlvbjsKK+SxnSA8IGJsYWNrXC1jYXJwOwor5LGEIDwgYVwtZmxhdGZpc2g7Civllonngo4gPCBsYXJ5bmdpdGlzOwor5LCsIDwgd2lsZFwtZ2hvc3Q7Civkv6Hlv4MgPCBjb25maWRlbmNlOwor5LCEIDwgc2hvcnRcLWhhaXI7Civkr5QgPCB0b1wtaW5jbGluZTsKK+SvjCA8IHRoZVwtc2FjcnVtOwor54+N6JePIDwgY29sbGVjdGlvbjsKK+Wkp+S4u+aVmSA8IGFyY2hiaXNob3A7Civkro0gPCBjdXJsaW5nXC11cDsKK+StuCA8IGFcLXN0YWxsaW9uOwor6Kmm566X6KGoIDwgc3BlYWRzaGVldDsKK+SstyA8IHdlbGxcLWZlZWRcLjsKK+iBluiBtyA8IHByaWVzdGhvb2Q7Civkq6UgPCBhXC13cnlcLW5lY2s7CivpgZTos7TlloflmJsgPCBkYWxhaVwtbGFtYTsKK+SquiA8IHRlZXRocmlkZ2U7CivkqqAgPCBwdWx2ZXJpemVkOwor6Yy255ukIDwgZGlhbFwtcGxhdGU7CivkqbEgPCBhXC1zY2FiYmFyZDsKK+ahg+aouSA8IHBlYWNoXC10cmVlOwor55m95Y+j6ZC1IDwgd2hpdGVcLWlyb247CivkqYEgPCB0aGluXC1oYWlyczsKK+WWruaooSA8IHNpbmdsZW1vZGU7CivkqL0gPCB0b1wtcmVzb2x2ZTsKK+SoqSA8IHRoZVwtc3Bpcml0Owor5LiN5o+j5YaS5pinIDwgdmVudHVyZVwtdG87Civkp78gPCB0aGVcLW1hZ3BpZTsKK+SnoyA8IHRvXC1zdG9wXC11cDsKK+aDs+ixoSA8IHRvXC1pbWFnaW5lOwor5KavIDwgdmVyeVwtZGVuc2U7CivkuIvpmY0gPCB0b1wtZGVjbGluZTsKK+SmjSA8IHRvXC1pbmNsdWRlOwor5KS+IDwgdG9cLWNvbnRhaW47CivkpL0gPCBmYXJtXC10b29sczsKK+WxpOWjkyA8IGxhbWluYXRpb247CivnrKzljYHlhasgPCBlaWdodGVlbnRoOwor5ZGo6YCfIDwgY3ljbGVcLXRpbWU7CivmmrTpoqggPCBzdG9ybVwtd2luZDsKK+Wvpumpl+WupCA8IGxhYm9yYXRvcnk7CivkoacgPCBhXC1jYXJyaWFnZTsKK+ShmiA8IGltcGxlbWVudHM7CivlsazlnLAgPCBkZXBlbmRlbmN5Owor5KGOIDwgYVwtd2luZGxhc3M7CivkoLggPCBvYnNlcXVpb3VzOwor5KC2IDwgdG9cLXByb2plY3Q7CivkoKkgPCB0b1wtdXJpbmF0ZTsKK+SgnyA8IHRvXC10cmlwXC11cDsKK+a8suWDuSA8IGFwcHJlY2lhdGU7CivkoJggPCBvbmVcLWxlZ2dlZDsKK+iBlue2kyA8IGhvbHlcLWJpYmxlOwor5Lu/55yfIDwgdG9cLWVtdWxhdGU7CivnnIHnlaXnrKbomZ8gPCBhcG9zdHJvcGhlOwor5LiN5bCN56K05YWSIDwgbm90XC1wcm9wZXI7Civku4vntLkgPCB0b1wtcHJlc2VudDsKK+SfmSA8IHRvXC1zdGFnZ2VyOwor5J+EIDwgaW5cLWFcLWh1cnJ5Owor5J2/IDwgaG9ub3VyYWJlbDsKK+SdtyA8IHNlY3VyaXRpZXM7CivknbEgPCB0b1wtdHJvdWJsZTsKK+ScmSA8IG5vdFwtY2xldmVyOwor5JyLIDwgdG9cLXN1c3BlbmQ7CivnvLrpu54gPCB3ZWFrXC1wb2ludDsKK+SbsiA8IHRvXC1kZWNlaXZlOwor5JumIDwgbGl0aWdhdGlvbjsKK+SbhCA8IHRvXC1jb25zb2xlOwor5pys6KGMIDwgb25lJydzXC1saW5lOwor5ruy5Z2RIDwgc2V3YWdlXC1waXQ7Civnq7bmioAgPCB0b3VybmFtZW50Owor56ys5Y2B5LmdIDwgbmluZXRlZW50aDsKK+SWsyA8IGplbGx5XC1maXNoOwor6ZC15YygIDwgYmxhY2tzbWl0aDsKK+S7u+eUqCA8IHRvXC1hcHBvaW50Owor5p2/57SZIDwgcGFwZXJib2FyZDsKK+esrOWNgeS4iSA8IHRoaXJ0ZWVudGg7CivklaEgPCBjb21wb3NpdGFlOwor5qmf6Zec6LuKIDwgbG9jb21vdGl2ZTsKK+S/nea9lOeusSA8IGxpdHRlclwtYmluOwor5JSYIDwgZmlzaFwtcGFzdGU7CivogIHlubTkurogPCBvbGRcLXBlb3BsZTsKK+STtSA8IHRvXC1ibG9zc29tOwor5rOi6ZW3IDwgd2F2ZWxlbmd0aDsKK+STpCA8IHZlZ2V0YXRpb247CivlsIjlv4MgPCBhYnNvcnB0aW9uOwor5JOGIDwgdG9cLWN1dFwtdGhlOwor5JKiIDwgc3dlZXRcLWZsYWc7CivnmbzogbLms5UgPCBpbnRvbmF0aW9uOwor5JGtIDwgd2FyXC12ZXNzZWw7CivkkY0gPCB0b1wtc3dhbGxvdzsKK+SQoiA8IHRvXC13cmlua2xlOwor5I+tIDwgdGhlXC1jaGVla3M7Civkj4wgPCB0b1wtdmlicmF0ZTsKK+SOnyA8IHRvXC1mYXduXC1vbjsKK+WAi+WIpSA8IGluZGl2aWR1YWw7CivmnIPoqIggPCBhY2NvdW50YW50Owor5I21IDwgeW91bmdcLWdvYXQ7CivkjZ4gPCBhXC1kcmFnXC1uZXQ7CivkjZcgPCB0b1wtaGFuZ1wtdXA7CivkjZQgPCBhXC1mdWxsXC1uZXQ7CivmhI/mg7PkuI3liLAgPCB1bmV4cGVjdGVkOwor5rWB6KGAIDwgc2hlZFwtYmxvb2Q7CivogonniYcgPCBtZWF0XC1zbGljZTsKK+SLsSA8IGFcLXdpbGRcLXlhazsKK+WGsOS4iumBi+WLlSA8IGljZVwtc3BvcnRzOwor5YWs6ZaL6KiO6KuW5pyDIDwgb3BlblwtZm9ydW07CivkiqkgPCByaWNlXC1ncmF2eTsKK+a6q+WupCA8IGdyZWVuaG91c2U7Civnvo7kuYPmu4vphqwgPCBtYXlvbm5haXNlOwor5LiN5bmz5YehIDwgbWFydmVsbG91czsKK+aKkeWItiA8IHRvXC1pbmhpYml0Owor5IeOIDwgdG9cLXN0YXJ0bGU7CivkvZzmlpkgPCBjb25kaW1lbnRzOwor5IeHIDwgdGhlXC1wZW9wbGU7CivkhosgPCB0aGVcLWF1dHVtbjsKK+SFlCA8IGRlYWRcLWNyb3BzOwor5bSR5bSZ5bGxIDwgbXRcLlwta3VubHVuOwor5L6/5aO6IDwgYmVkXC11cmluYWw7CivkhJ8gPCB0b1wtd29yc2hpcDsKK+S9v+aAkiA8IGV4YXNwZXJhdGU7Civkvp3lsawgPCBkZXBlbmRlbmNlOwor5IGeIDwgYVwtcHJvdmluY2U7CivkgYEgPCBzdHJhYmlzbXVzOwor562J5YiwIDwgd2FpdFwtdW50aWw7CivlsI/lp5AgPCB5b3VuZ1wtbGFkeTsKK+S7o+ihqOWcmCA8IGRlbGVnYXRpb247CivjvaggPCBmcmFnbWVudGVkOwor472jIDwgYVwtZnJvbnRpZXI7CivjvZggPCBib3JkZXJsYW5kOwor5qGM5biDIDwgdGFibGVjbG90aDsKK+O8uSA8IGVhcnRlbndhcmU7Civog4zmma8gPCBiYWNrZ3JvdW5kOwor5LiN6K6KIDwgdW5jaGFuZ2luZzsKK+S4gOiyqyA8IGNvbnNpc3RlbnQ7CivjurMgPCBibGFja1wtbWljYTsKK+O6hSA8IHRoZVwtbW9ua2V5Owor5om55YeGIDwgdG9cLWFwcHJvdmU7CivjuKggPCBhXC1iaWdcLWJ1bGw7CivjuIwgPCB0b1wtdHdpbmtsZTsKK+O3tyA8IHRoaWNrXC1zb3VwOwor47atIDwgYWxtb3N0XC1kcnk7CivjtpwgPCBkZWVwXC13YXRlcjsKK+enkeezuyA8IGRlcGFydG1lbnQ7CivjtYAgPCB3YXRlclwtZmxvdzsKK+aEgee3kiA8IG1lbGFuY2hvbHk7CivnpZ7oqbEgPCBmYWlyeVwtdGFsZTsKK+S9j+aJgCA8IGhhYml0YXRpb247CivlvbHlg4/mqpQgPCBpbWFnZVwtZmlsZTsKK+OyryA8IGxvbmdcLWhhaXJ5Owor6aGb6KaGIDwgc3VidmVyc2lvbjsKK+OyjCA8IGRvZycnc1wtaGFpcjsKK+OyiSA8IGVnZ1wtc2hlbGxzOwor47GmIDwgdG9cLWRpc2NhcmQ7CivjsZwgPCBwZXN0aWxlbmNlOwor5qGI5a2QIDwgbG9uZ1wtdGFibGU7Civjr4cgPCBhXC1zdG9ja2FkZTsKK+WxheS9j+iAhSA8IGluaGFiaXRhbnQ7CivjrLEgPCB0b1wtcmVwbGFjZTsKK+OsqiA8IHRvXC1mb2xkXC11cDsKK+OrpCA8IGFcLWxvbmdcLWRheTsKK+OqjCA8IHRvXC1sZWFkXC1vbjsKK+OpuSA8IHRvXC1waWxlXC1vbjsKK+OpniA8IHRvXC1iYWNrXC11cDsKK+OoryA8IHRvXC1lbmxhcmdlOwor46iuIDwgdG9cLWxpZnRcLXVwOwor5reY5rGwIDwgdG9cLWRpZVwtb3V0Owor6IKl5paZIDwgZmVydGlsaXplcjsKK+OmgiA8IGNvbnN0YW50bHk7CivjpbYgPCB0b1wtZmlsbFwtdXA7CivjpaMgPCB0b1wtYmVuZWZpdDsKK+OktyA8IHRvXC1kZWJhdWNoOwor46SQIDwgZGlzaGFybW9ueTsKK+eLoei+ryA8IHRvXC1xdWliYmxlOwor46O9IDwgdG9cLWZvcmdpdmU7Civjo4UgPCBib3dcLXN0cmluZzsKK+OjgCA8IHRvXC1yZWJvdW5kOwor46KtIDwgYVwtYm93XC1jYXNlOwor46KaIDwgYVwtY29ycmlkb3I7Civjoo8gPCBhXC1jZXNzcG9vbDsKK+OhpSA8IHRvXC1jdXJsXC11cDsKK+aatOihjCA8IHNhdmFnZVwtYWN0Owor5Zub55m+5YSEIDwgNDBcLWJpbGxpb247Civlr6blnKggPCBpblwtcmVhbGl0eTsKK+iJvua7i+eXheeXheavkiA8IGFpZHNcLXZpcnVzOwor456gIDwgbWFsZVwtb3JnYW47Civpmbjou43kuK3lsIkgPCBsaWV1dGVuYW50Owor456OIDwgYm9keVwtd2FzdGU7Civjna8gPCB0b1wtc29qb3VybjsKK+OaoCA8IGZ1bGxcLWdyb3duOwor45m6IDwgY3Jvc3NcLXJvYWQ7CivotoXljYcgPCBleGFsdGF0aW9uOwor5Y+b6LuNIDwgcmViZWxcLWFybXk7CivjmKcgPCBwcmVjZWRlbmNlOwor542456m0IDwgYW5pbWFsXC1kZW47Civjl6wgPCB0aGlja1wtbGlwczsKK+OXqyA8IHRvXC13aGlzcGVyOwor5b2q5b2i5aSn5ryiIDwgYnVybHlcLWNoYXA7CivorabpkJggPCBhbGFybVwtYmVsbDsKK+OWhiA8IHRvXC1jb25kZW1uOwor6IOW5a2QIDwgZmF0XC1wZXJzb247CivjlY0gPCB0b1wtaGVhcFwtdXA7CivjlYYgPCBmaW5lXC1zdG9uZTsKK+OUtyA8IHRvXC1zZWNyZXRlOwor45SYIDwgdG9cLWRlZ3JhZGU7CivjlJMgPCB0b1wtc3RhbW1lcjsKK+OUjCA8IHRvXC1jdXRcLW9mZjsKK+OTuiA8IGNhc3RyYXRpb247CivlrZjmlL4gPCB0b1wtZGVwb3NpdDsKK+mkk+atuyA8IHN0YXJ2YXRpb247CivjkrcgPCB0b1wtcHJvc3BlcjsKK+OQpCA8IHRvXC1pbXBsb3JlOwor6JCs5LqL6YGU5Y2hIDwgbWFzdGVyY2FyZDsKK+S9teWQniA8IHN3YWxsb3dcLXVwOwor5a245b6SIDwgYXBwcmVudGljZTsKK+adv+aogSA8IHNoZWV0XC1waWxlOwor5ZCm5rG65qyKIDwgdmV0b1wtcG93ZXI7CivmiJDliIYgPCBpbmdyZWRpZW50Owor5bSH5ouc6ICFIDwgd29yc2hpcHBlcjsKK+aClOe9qiA8IGNvbnZpY3Rpb247Civog73lipsgPCBjYXBhYmlsaXR5Owor5oiy5YqH5YyWIDwgdGhlYXRyaWNhbDsKK+W/hemgiCA8IHRvXC1oYXZlXC10bzsKK+iCr+WumiA8IHRvXC1iZVwtc3VyZTsKK+S7u+aApyA8IGNhcHJpY2lvdXM7CivnjovniYwgPCB0cnVtcFwtY2FyZDsKK+aWsOiBnuWqkumrlCA8IG5ld3NcLW1lZGlhOwor5aCF5a6a5LiN56e7IDwgdW5zd2VydmluZzsKK+mdnuebiOWIqSA8IG5vblwtcHJvZml0Owor5Y2X6Z2iIDwgc291dGhcLXNpZGU7Civkvb/lrrnmmJMgPCBmYWNpbGl0YXRlOwor56CU56m25ZOhIDwgcmVzZWFyY2hlcjsKK+iWhOiNtyA8IGZpZWxkXC1taW50Owor6aas5YqbIDwgaG9yc2Vwb3dlcjsKK+aciOeQgyA8IFwodGhlXClcLW1vb247Civnj77miJAgPCByZWFkeVwtbWFkZTsKK+itsOirliA8IHRvXC1jb21tZW50Owor6aKo5r+VIDwgcmhldW1hdGlzbTsKK+e+pOecviA8IHRoZVwtbWFzc2VzOwor5LiJ5pyI5LqM5Y2B5LiJ6JmfIDwgbWFyY2hcLTIzcmQ7CivmraTmmYLku6XliY0gPCBoZXJldG9mb3JlOwor5LuB5oWIIDwgYmVuZXZvbGVudDsKK+ebruaTiuiAhSA8IGV5ZXdpdG5lc3M7Civku4rlvowgPCBoZW5jZWZvcnRoOwor6Jmb5pOsIDwgZmljdGl0aW91czsKK+WwiOmWgOWMliA8IHNwZWNpYWxpemU7CivlpJrpu6ggPCBtdWx0aXBhcnR5Owor5LiN55W2IDwgdW5zdWl0YWJsZTsKK+ayiOiQvSA8IHNpbmtcLFwtZmFsbDsKK+ism+i/sCA8IHRhbGtcLWFib3V0Owor5a6j5L2IIDwgdG9cLWRlY2xhcmU7CivmkanmiZjou4ogPCBtb3RvcmN5Y2xlOwor5pyd6a6u5oiw54itIDwga29yZWFuXC13YXI7CivpvJPmjowgPCB0b1wtYXBwbGF1ZDsKK+S7peWkliA8IGFwYXJ0XC1mcm9tOwor6KiC6LO86ICFIDwgc3Vic2NyaWJlcjsKK+eIhumfsyA8IHNvbmljXC1ib29tOwor5aSn6auUIDwgaW5cLWdlbmVyYWw7Civpo5/mjIcgPCBmb3JlZmluZ2VyOwor54m06Ke4IDwgY29udHJhZGljdDsKK+eoi+W6jyA8IHByb2NlZHVyZXM7CivmmI7oqIAgPCBwcm9ub3VuY2VkOwor6aGv5b6u6Y+hIDwgbWljcm9zY29wZTsKK+acrOaciCA8IHRoaXNcLW1vbnRoOwor5Y6f55Sf6LOqIDwgcHJvdG9wbGFzbTsKK+WkmuaWuemdoiA8IG1hbnlcLXNpZGVkOwor5ZOy5a24IDwgcGhpbG9zb3BoeTsKK+awo+ixoSA8IG1ldGVvcm9sZ3k7CivkupLmg6AgPCByZWNpcHJvY2FsOwor5ZCr54eQIDwgcGhvc3Bob3JpYzsKK+abtOatoyA8IGNvcnJlY3Rpb247Civpu5Hmnb8gPCBibGFja2JvYXJkOwor5paw6IGe5a24IDwgam91cm5hbGlzbTsKK+S4jeWumuipniA8IGluZmluaXRpdmU7CivpoJDnn6UgPCBhbnRpY2lwYXRlOwor5Lul5Y+KIDwgYXNcLXdlbGxcLWFzOwor5Li75qC8IDwgbm9taW5hdGl2ZTsKK+mMhOWPliA8IHRvXC1yZWNydWl0Owor5paw6YOOIDwgYnJpZGVncm9vbTsKK+iAjOW+jCA8IGFmdGVyXC10aGF0Owor5oKy5q2MIDwgc2FkXC1tZWxvZHk7CivkurrlnYcgPCBwZXJcLWNhcGl0YTsKK+WPr+eWkSA8IHN1c3BpY2lvdXM7CivogIzlt7IgPCB0aGF0JydzXC1hbGw7Civpm6Pku6Xnva7kv6EgPCBpbmNyZWRpYmxlOwor5rW05be+IDwgYmF0aFwtdG93ZWw7CivlkIrnh4ggPCBjaGFuZGVsaWVyOwor5YWx5ZKM5pS/6auUIDwgcmVwdWJsaWNhbjsKK+iBsuWDuSA8IHJlcHV0YXRpb247CivkuI3nsKHllq4gPCBub3RcLXNpbXBsZTsKK+WPl+WCt+WusyA8IGJlXC1pbmp1cmVkOwor56uv57O757WxIDwgZW5kXC1zeXN0ZW07CivoloTniYcgPCB0aGluXC1zbGljZTsKK+abtOaWsCA8IHVwXC10b1wtZGF0ZTsKK+mhq+aglyA8IHRvXC10cmVtYmxlOwor6ZuG6auUIDwgY29sbGVjdGl2ZTsKK+WkluS6pOaJi+iFlSA8IGRpcGxvbWF0aWM7CivmlZfpnLIgPCBcKG9mXC1hXC1wbG90Owor6Kmm6amXIDwgZXhwZXJpbWVudDsKK+S6uuWPoyA8IHBvcHVsYXRpb247CivkuInnmb7lhIQgPCAzMFwtYmlsbGlvbjsKK+atuOmghiA8IHN1Ym1pc3Npb247CivlpLHouaQgPCBiZVwtbWlzc2luZzsKK+mjveWSjCA8IHNhdHVyYXRpb247CivmraHpqLAgPCBqdWJpbGF0aW9uOwor5b6M6KOUIDwgZGVzY2VuZGFudDsKK+mHkeeJjCA8IGdvbGRcLW1lZGFsOwor6Z2e5bCN56ixIDwgYXN5bW1ldHJpYzsKK+S4jeacgyA8IGltcHJvYmFibGU7CivkuIrmnIggPCBsYXN0XC1tb250aDsKK+WNiuaxuuizvSA8IHNlbWlmaW5hbHM7CivnoqfntqAgPCBkYXJrXC1ncmVlbjsKK+iAgeWllyA8IG9sZFwtdGhpbmdzOwor5Y+K54mpIDwgdHJhbnNpdGl2ZTsKK+iOq+mgiOaciSA8IGdyb3VuZGxlc3M7CivkuI3osrfos6wgPCBub3RcLWJ1eVwtaXQ7Civno4Hnm6TpqYXli5XlmaggPCBkaXNsXC1kcml2ZTsKK+mbu+i7iiA8IHRyb2xsZXlidXM7Civpoafmha4gPCBtaXNnaXZpbmdzOwor5Y+v5q+UIDwgY29tcGFyYWJsZTsKK+iFk+eri+avlOabuCA8IHBoaWxpcGlhbnM7CivkuovlhYggPCBpblwtYWR2YW5jZTsKK+itpueKrCA8IHBvbGljZVwtZG9nOwor5Ymb6auUIDwgcmlnaWRcLWJvZHk7Civmma/msKMgPCBwcm9zcGVyaXR5Owor5Y2c562uIDwgZGl2aW5hdGlvbjsKK+Wls+ijneijgee4q+W4qyA8IGRyZXNzbWFrZXI7CivkuI3lv6sgPCBiZVwtdW5oYXBweTsKK+Wls+WtuOeUnyA8IHNjaG9vbGdpcmw7CivmlLnpgLIgPCB0b1wtaW1wcm92ZTsKK+mbu+imliA8IHRlbGV2aXNpb247CivlvozogIUgPCB0aGVcLWxhdHRlcjsKK+e6j+e5niA8IGludGVydHdpbmU7CivliqDpgJ8gPCBhY2NlbGVyYXRlOwor6Kuz57e0IDwgY29udmVyc2FudDsKK+S4i+WAi+aciCA8IG5leHRcLW1vbnRoOwor6aiO5aOr6aKo5qC8IDwga25pZ2h0aG9vZDsKK+mPiOi3r+WxpCA8IGxpbmtcLWxheWVyOwor5LiA5bqmIDwgZm9yXC1hXC10aW1lOwor5q2h6L+OIDwgdG9cLXdlbGNvbWU7CivljJblpp3oiJ7mnIMgPCBtYXNxdWVyYWRlOwor5aKo6Y+hIDwgc3VuZ2xhc3NlczsKK+WJnemboiA8IFwob2ZcLXRpc3N1ZTsKK+W9iOiXpSA8IGFtbXVuaXRpb247CivmuqvlkozmgKcgPCB0ZW5kZXJuZXNzOwor5LiN5a6JIDwgaW50cmFucXVpbDsKK+acn+WIiiA8IHBlcmlvZGljYWw7Civnn6XoprogPCBwZXJjZXB0aW9uOwor5omA5pyJ6ICFIDwgcHJvcHJpZXRvcjsKK+WQjOaDhSA8IGNvbXBhc3Npb247CivpganphY0gPCBhZGFwdGF0aW9uOwor5ZCI5oSPIDwgYWNjZXB0YWJsZTsKK+Wkp+iHoyA8IGNoYW5jZWxsb3I7CivlkIzmgKcgPCBob21vc2V4dWFsOwor5pel55uKIDwgZGF5XC1ieVwtZGF5Owor5Y2K56m65LitIDwgaW5cLW1pZFwtYWlyOwor5pys5Lu9IDwgb25lJydzXC1kdXR5Owor5aWz5pyN54mp5ZOhIDwgc3Rld2FyZGVzczsKK+aykuacieefpeimuiA8IGluc2Vuc2libGU7CivkuI3nrYnlvI8gPCBpbmVxdWFsaXR5Owor5pyD5Y+LIDwgbWVtYmVyc2hpcDsKK+aal+mWk+WFkiA8IGlubmVyXC1yb29tOwor6Ieq5YuV5YyWIDwgYXV0b21hdGlvbjsKK+S4jeWkoCA8IG5vdFwtZW5vdWdoOwor5Zau5pa56Z2iIDwgdW5pbGF0ZXJhbDsKK+engeS4iyA8IGluXC1wcml2YXRlOwor5rOi5bOwIDwgd2F2ZVwtY3Jlc3Q7CivkuInlpKkgPCB0aHJlZVwtZGF5czsKK+WPjeaXpSA8IGFudGlcLWphcGFuOwor5bu66K2wIDwgdG9cLXByb3Bvc2U7CivkvZvmlZnlvpIgPCBhXC1idWRkaGlzdDsKK+azouWwjiA8IHdhdmVcLWd1aWRlOwor5ami5aWzIDwgc2xhdmVcLWdpcmw7CivmspLmlLYgPCBjb25maXNjYXRlOwor5b+r5rS7IDwgZ2F5XCxcLWhhcHB5Owor5Y+v5oKyIDwgbGFtZW50YWJsZTsKK+ipleiouyA8IGNvbW1lbnRhcnk7Civlv4XnhLYgPCBpbmV2aXRhYmxlOwor5Y2K55CDIDwgaGVtaXNwaGVyZTsKK+mfv+aHiSA8IHJlc3BvbmRcLXRvOwor5aSn57axIDwgbWFpblwtcG9pbnQ7CivmsKPli6LmtLbmtLYgPCBhZ2dyZXNzaXZlOwor54Ok6bSoIDwgcm9hc3RcLWR1Y2s7CivmrYzoqZ4gPCBzb25nXC1seXJpYzsKK+S4puWFpSA8IG1lcmdlXC1pbnRvOwor5byx6ISIIDwgd2Vha1wtcHVsc2U7Civmk43oiLXlrqQgPCBwaWxvdGhvdXNlOwor5Y6f5pysIDwgb3JpZ2luYWxseTsKK+WQuOWQriA8IHRvXC1zdWNrXC1pbjsKK+eIhuegtCA8IHRvXC1ibG93XC11cDsKK+mBk+izgCA8IGNvbXBsaW1lbnQ7Civlj5blvpcgPCB0b1wtYWNxdWlyZTsKK+S4iuWNiiA8IGZpcnN0XC1oYWxmOwor5pWZ6IKyIDwgdG9cLWVkdWNhdGU7CivkuI3li5UgPCBtb3Rpb25sZXNzOwor5LiD5Y2B5bm05LujIDwgdGhlXC0xOTcwJydzOwor6KW/6bueIDwgd2VzdFwtcG9pbnQ7CivmlpfnnLwgPCBjcm9zc1wtZXllZDsKK+ecvOmPoSA8IHNwZWN0YWNsZXM7CivkuI3lgpkgPCB1bnByZXBhcmVkOwor5oGr5ZqHIDwgaW50aW1pZGF0ZTsKK+WlieeNuyA8IGNvbnNlY3JhdGU7CivkuI3kvp0gPCBub3RcLWNvbXBseTsKK+mbu+WUseapnyA8IHBob25vZ3JhcGg7Civmlofnm7IgPCBpbGxpdGVyYXRlOwor5piO5pm6IDwgbm90XC11bndpc2U7CivmtYHnqIvlnJYgPCBmbG93XC1jaGFydDsKK+ebo+edo+iAhSA8IHN1cGVydmlzb3I7CivkuIDnmb7kupTljYHlhIQgPCAxNVwtYmlsbGlvbjsKK+aSnumHnSA8IGZpcmluZ1wtcGluOwor5Y2X5qW1IDwgc291dGhcLXBvbGU7CivmiYDmnInniakgPCBiZWxvbmdpbmdzOwor6KaW56qX5paw5oqAIDwgd2luZG93c1wtbnQ7CivkuozljYHkuIAgPCB0d2VudHlcLW9uZTsKK+S6hiA8IHRvXC1maW5pc2g7CivlrZAgPCBvZmZzcHJpbmc7CivlvrkgPCBwZW5ldHJhdGU7CivopoEgPCBuZWNlc3Nhcnk7CivovrEgPCBodW1pbGlhdGU7CivnnYAgPCBtYWtlXC1tb3ZlOwor5oiQIDwgY29tcGxldGVkOwor552jIDwgc3VwZXJ2aXNlOwor6LyvIDwgZ2F0aGVyXC11cDsKK+W8pSA8IGV4dGVuc2l2ZTsKK+e+jiA8IGJlYXV0aWZ1bDsKK+W7giA8IHNpZGVcLXJvb207Civpl64gPCBhc2tcLWFib3V0Owor5bqtIDwgY291cnR5YXJkOwor55mCIDwgYmVcLWhlYWxlZDsKK+eXuiA8IHBhcmFseXNpczsKK+W3riA8IHRvXC1kaWZmZXI7Civpmr4gPCBkaWZmaWN1bHQ7CivotoUgPCBqdW1wXC1vdmVyOwor55WwIDwgZGlmZmVyZW50Owor5LqyIDwgcmVsYXRpdmVzOwor55WrIDwgZGVsaW5lYXRlOwor55WcIDwgbGl2ZXN0b2NrOwor55WRIDwgZHJ5XC1maWVsZDsKK+eUmCA8IHN3ZWV0bmVzczsKK+iupCA8IHJlY29nbml6ZTsKK+iytCA8IGV4cGVuc2l2ZTsKK+iynSA8IHNlYVwtc2hlbGw7Civovr4gPCBhcnJpdmVcLWF0Owor5LyXIDwgbXVsdGl0dWRlOwor5YCSIDwgZmFsbFwtb3ZlcjsKK+eOqSA8IHBsYXlcLXdpdGg7Civlg48gPCBhXC1waWN0dXJlOwor5a6FIDwgcmVzaWRlbmNlOwor5o2uIDwgdG9cLW9jY3VweTsKK+itryA8IHRyYW5zbGF0ZTsKK+itqyA8IHRhbGthdGl2ZTsKK+mAoCA8IGNvbnN0cnVjdDsKK+WqvCA8IG9sZFwtd29tYW47CivniqAgPCBzYWNyaWZpY2U7CivniZIgPCBkb2N1bWVudHM7CivniYwgPCBzaWduYm9hcmQ7CivniJAgPCBmaXJlcGxhY2U7CivkuYUgPCBsb25nXC10aW1lOwor5aa+IDwgY29uY3ViaW5lOwor5YidIDwgYmVnaW5uaW5nOwor6ZmkIDwgZWxpbWluYXRlOwor5Ya1IDwgY29uZGl0aW9uOwor5LmxIDwgY29uZnVzaW9uOwor5YibIDwgZXN0YWJsaXNoOwor56aPIDwgaGFwcGluZXNzOwor5YGHIDwgZmFsc2Vob29kOwor6aG+IDwgbG9va1wtYmFjazsKK+igtiA8IHNpbGt3b3JtczsKK+a4kCA8IGdyYWR1YWxseTsKK+eepyA8IGdsYW5jZVwtYXQ7Civln5IgPCBlbmNsb3N1cmU7Civln4MgPCBmaW5lXC1kdXN0Owor6J6iIDwgZ2xvd1wtd29ybTsKK+mAgCA8IHN0ZXBcLWJhY2s7CivonLsgPCBkcmFnb25mbHk7Civnv7sgPCBmbGlwXC1vdmVyOwor5ZyPIDwgdG9cLWNpcmNsZTsKK+aZriA8IHVuaXZlcnNhbDsKK+ibuSA8IGNocnlzYWxpczsKK+S4tCA8IGRyYXdcLW5lYXI7CivljY8gPCBiZVwtdW5pdGVkOwor5rmvIDwgaG90XC13YXRlcjsKK+S+iyA8IHByZWNlZGVudDsKK+a0siA8IGNvbnRpbmVudDsKK+adviA8IHBpbmVcLXRyZWU7CivkvJkgPCBjb21wYW5pb247Civmr6sgPCBmaW5lXC1oYWlyOwor6JWOIDwgYnVja3doZWF0Owor6L6TIDwgdHJhbnNwb3J0Owor5oqYIDwgYnJlYWtcLW9mZjsKK+axsCA8IGV4Y2Vzc2l2ZTsKK+WQmyA8IHNvdmVyZWlnbjsKK+WNsSA8IGRhbmdlcm91czsKK+amgiA8IGdlbmVyYWxseTsKK+WOhCA8IGFkdmVyc2l0eTsKK+axhyA8IGNvbmNvdXJzZTsKK+WOiSA8IHdoZXRzdG9uZTsKK+mZhCA8IGFkaGVyZVwtdG87CivogqkgPCBzaG91bGRlcnM7CivprZggPCBuaWdodG1hcmU7CivojZIgPCB3YXN0ZWxhbmQ7CivprLEgPCBsdXh1cmlhbnQ7CivljKAgPCBjcmFmdHNtYW47CivljIIgPCBmcmFncmFuY2U7Civli7ggPCByZWNvbW1lbmQ7Civpo5ggPCB3aGlybHdpbmQ7Civngq4gPCBsYXJnZVwtZ3VuOwor6YOOIDwgZ2VudGxlbWFuOwor6ZmqIDwgYWNjb21wYW55Owor5YedIDwgY29hZ3VsYXRlOwor5YmpIDwgbGVmdG92ZXJzOwor6aWSIDwgYm91bnRpZnVsOwor6IKYIDwgdGhlXC1lbGJvdzsKK+iCliA8IGxvb2tcLWxpa2U7CivmmKggPCB5ZXN0ZXJkYXk7CivmmoIgPCB0ZW1wb3Jhcnk7CivpgJIgPCBoYW5kXC1vdmVyOwor56WlIDwgZ29vZFwtbHVjazsKK+WAuSA8IHRlbXBlcmF0ZTsKK+S7lyA8IHJlbHlcLXVwb247Civmn78gPCBwZXJzaW1tb247CivplK4gPCBkb29yXC1ib2x0Owor5p6vIDwgZHJpZWRcLW91dDsKK+iOsSA8IGdvb3NlZm9vdDsKK+i1lCA8IGluZGVtbmlmeTsKK+mAoiA8IGNvbWVcLXVwb247CivnnYEgPCBvcGVuXC1leWVzOwor5Zi/IDwgYmVcLXNpbGVudDsKK+i0qiA8IGJlXC1ncmVlZHk7CivpgJ0gPCBwYXNzXC1hd2F5Owor6Im+IDwgYXJ0ZW1pc2lhOwor6KKNIDwgbG9uZ1wtZ293bjsKK+WGpCA8IGdyaWV2YW5jZTsKK+i/qiA8IGVubGlnaHRlbjsKK+WYiSA8IGV4Y2VsbGVudDsKK+mWviA8IHRocmVzaG9sZDsKK+e2viA8IHRoaW5cLXNpbGs7CivohoAgPCB1cHBlclwtYXJtOwor6aG9IDwgb2JzdGluYXRlOwor5q2JIDwgZGVmaWNpZW50Owor5biFIDwgY29tbWFuZGVyOwor5oa+IDwgdG9cLXJlZ3JldDsKK+WKiCA8IGN1dFwtYXBhcnQ7Civmi4IgPCBzaGFrZVwtb2ZmOwor562IIDwgYXJyb3dcLWVuZDsKK+eGrCA8IGNvb2tcLWRvd247CivnqLwgPCBzb3dcLWdyYWluOwor5oGNIDwgc2VlbWluZ2x5Owor57ujIDwgZW1icm9pZGVyOwor5oeDIDwgY291cnRlb3VzOwor6KGsIDwgdW5kZXJ3ZWFyOwor5oWKIDwgdG9cLXJlc2VudDsKK+a9rSA8IGRlZXBcLXBvb2w7CivnoZ0gPCBzYWx0cGV0ZXI7CivpqqQgPCBwcm9jZWR1cmU7Civlv78gPCBnZXRcLWFuZ3J5Owor5Z2gIDwgZmFsbFwtZG93bjsKK+idtiA8IGJ1dHRlcmZseTsKK+eEiSA8IHRoZXJldXBvbjsKK+emgCA8IHJlcG9ydFwtdG87CivmjKsgPCBwdXNoXC1kb3duOwor6bOEIDwgYWxsaWdhdG9yOwor6LCQIDwgaGFybW9uaXplOwor5bGOIDwgZXhjcmVtZW50Owor6JGxIDwgc2NhbGxpb25zOwor5p6jIDwgZGF0ZVwtdHJlZTsKK+iwtCA8IHJlcHJpbWFuZDsKK+axuSA8IHR1cmJ1bGVudDsKK+azuyA8IGRyYWluXC1vZmY7CivngJEgPCB3YXRlcmZhbGw7CivmqIogPCBhXC1yYWlsaW5nOwor5pWbIDwgZHJhd1wtYmFjazsKK+iMtSA8IGFcLWN1c2hpb247Civmo5UgPCBoZW1wXC1wYWxtOwor6L6XIDwgdHVyblwtb3ZlcjsKK+aBpCA8IHNob3dcLXBpdHk7CivkvoggPCBsdXh1cmlvdXM7CivmsoEgPCBzb2FrXC1pbnRvOwor5YyjIDwgc21hbGxcLWJveDsKK+aNjiA8IHRvXC1zZWxlY3Q7Civnl54gPCBkeXNwZXBzaWE7CivnnZAgPCBzcXVpbnRcLWF0Owor5Z6mIDwgY3VsdGl2YXRlOwor5rWSIDwgcml2ZXJiYW5rOwor6JG1IDwgc3VuZmxvd2VyOwor552rIDwgZXllbGFzaGVzOwor5ZO6IDwgY2hld1wtZm9vZDsKK+eroyA8IHRlcm1pbmF0ZTsKK+WblCA8IG11dHRlcmluZzsKK+iXkCA8IGRpc3JlZ2FyZDsKK+WfoCA8IHBvcnRcLWNpdHk7CivojaQgPCBtZWF0XC1kaWV0Owor6JySIDwgbWlsbGlwZWRlOwor6I+HIDwgbXVzaHJvb21zOwor6LGaIDwgc21hbGxcLXBpZzsKK+aykyA8IGNvbm5lY3RlZDsKK+W8qSA8IGNyb3NzXC1ib3c7CivmrocgPCBkaWVcLXlvdW5nOwor5qCIIDwgd2FyZWhvdXNlOwor6Ya6IDwgZ2V0XC1kcnVuazsKK+iciCA8IGNlbnRpcGVkZTsKK+aEqyA8IGd1aWxlbGVzczsKK+iwmSA8IHZlcnNlZFwtaW47CivnhrkgPCBkaW1cLWxpZ2h0Owor5oCCIDwgaW5zdGlnYXRlOwor6YGbIDwgdGFrZVwtd2FsazsKK+m6viA8IGFcLXBlbm5hbnQ7CivlqrIgPCBtYXJyeVwtb2ZmOwor6ZWBIDwgbWFnbmVzaXVtOwor5qSwIDwgcGFsbVwtdHJlZTsKK+eXoiA8IGR5c2VudGVyeTsKK+WXkSA8IGVhdFwtc2VlZHM7Civomq8gPCBlYXJ0aHdvcm07CivonJogPCBjb2Nrcm9hY2g7CivpmIYgPCBoaWdoXC1kb29yOwor5pOAIDwgcm9sbFwtZmxhdDsKK+iipCA8IGxvbmdpdHVkZTsKK+m6nSA8IG11c2tcLWRlZXI7CivkvbsgPCBmcml2b2xvdXM7Civpkr4gPCBwb3Rhc3NpdW07CivlrZEgPCByZW1haW5pbmc7CivmqoQgPCBjYWxsXC1hcm1zOwor6ZqNIDwgZHJ5XC1kaXRjaDsKK+ivvyA8IHBhc3NcLWJ1Y2s7CivpgIQgPCBhXC1zdXJuYW1lOwor5qKPIDwgaGFuZGN1ZmZzOwor6ZK6IDwgYnJvYWRcLWF4ZTsKK+afkSA8IHRhbmdlcmluZTsKK+S5nCA8IHRvXC1zcXVpbnQ7CivlqLIgPCBhXC1nb2RkZXNzOwor5b+dIDwgZGlzZ3JhY2VkOwor6K+uIDwgY3JpdGljaXplOwor6bOPIDwgaHVnZVwtZmlzaDsKK+ichyA8IGplbGx5ZmlzaDsKK+WKrSA8IGVuY291cmFnZTsKK+eZoyA8IHJpbmd3b3JtczsKK+e7piA8IHNpbGtcLWNvcmQ7CivpkrggPCBwbHV0b25pdW07CivpppcgPCBjaGVla2JvbmU7CivplLAgPCBtYW5nYW5lc2U7CivkvqogPCBhXC1jb21wYW55Owor5YerIDwgd2lsZFwtZHVjazsKK+eXsSA8IGhlYXRcLXJhc2g7Civnl4ggPCBjYXJidW5jbGU7CivmgowgPCBicm90aGVybHk7CivlhrwgPCBcKHN1cm5hbWVcKTsKK+m5pyA8IHBhcnRyaWRnZTsKK+aCkiA8IHNvcnJvd2Z1bDsKK+aAgyA8IHJlZ3JldGZ1bDsKK+WikiA8IHdldFwtdGlsdGg7CivoqL4gPCBiYWRcLW1vdXRoOwor5ZyuIDwgZGVzdHJveWVkOwor6bKIIDwgc2VhXC1wZXJjaDsKK+aUiSA8IHRvXC1iZWNrb247CivpsocgPCBzaGVhdGZpc2g7CivohoggPCBkaWFwaHJhZ207Civnio0gPCBhXC1idWxsb2NrOwor6ZSXIDwgZ2VybWFuaXVtOwor6Y6PIDwgcHVyZVwtZ29sZDsKK+mVhSA8IGFtZXJpY2l1bTsKK+i+giA8IGFcLWNoYXJpb3Q7Civot7ggPCBjbGVhclwtd2F5Owor54WzIDwgYmVcLWJ1cm5lZDsKK+eJviA8IHRvXC1vcHBvc2U7CivmmIAgPCBzdW5cLWxpZ2h0Owor5LmpIDwgdG9cLWRpdmluZTsKK+e+nyA8IGh5ZHJveGlkZTsKK+iNvSA8IGNvcmlhbmRlcjsKK+e7oCA8IHdlbGxcLXJvcGU7Civlk5MgPCBnYXJydWxvdXM7CivohKwgPCBhXC1ibGFkZGVyOwor5oihIDwgc3VianVnYXRlOwor6L6HIDwgaGFuZFwtY2FydDsKK+m5miA8IGNvcm1vcmFudDsKK+mVniA8IGFycm93aGVhZDsKK+iPsCA8IHdpbGRcLXJpY2U7CivooJYgPCBpbmNoXC13b3JtOwor6ZOrIDwgbGFyZ2VcLWhvZTsKK+awmCA8IGRldXRlcml1bTsKK+m7viA8IHRvXC1zdHJpdmU7CivplacgPCBsYW50aGFudW07CivlnqEgPCBwbG93XC1zb2lsOwor54KUIDwgYWNldHlsZW5lOwor6ZWxIDwgeXR0ZXJiaXVtOwor6ZKVIDwgbmVvZHltaXVtOwor5b+tIDwgZGVsaWdodGVkOwor6Iu0IDwgc2Fja2Nsb3RoOwor6LCzIDwgdG9cLWRlY2lkZTsKK+mSryA8IHBhbGxhZGl1bTsKK+eisiA8IHRlbGx1cml1bTsKK+eSqSA8IGphZGVcLXJpbmc7CivppasgPCBzdXJmZWl0ZWQ7CivmkpkgPCBlY29ub21pemU7Civok7wgPCBzbWFydHdlZWQ7CivppZQgPCBicmVha2Zhc3Q7CivplLYgPCBzdHJvbnRpdW07CivmmIMgPCBhZnRlcm5vb247CivllKogPCB0b1wtcmVjaXRlOwor5YSHIDwgaW5nZW5pb3VzOwor6bK0IDwgZmlzaFwtZ3V0czsKK+myhSA8IGZpc2hcLW5hbWU7Civpk40gPCBiZXJ5bGxpdW07CivnhrMgPCB0b1wtc3ByZWFkOwor6IONIDwgZ3VhbmlkaW5lOwor6bKQIDwgZ2xvYmVmaXNoOwor6YWQIDwgYW5oeWRyaWRlOwor6KGEIDwgZXBpc3RheGlzOwor55+nIDwgbXVjaFwtbW9yZTsKK+aCqyA8IHNpbmNlcml0eTsKK+iGpiA8IHBob3NwaGluZTsKK+e8oyA8IGZpbmVcLXNpbGs7CivlroQgPCBhXC10cmFpdG9yOwor6ZiMIDwgd2VuXC14aWFuZzsKK+mFniA8IHBodGhhbGVpbjsKK+aUtue4riA8IHB1bGxcLWJhY2s7CivlpJrnlpEgPCBza2VwdGljYWw7CivlkIjlipsgPCBjb29wZXJhdGU7CivniIbngrggPCBleHBsb3Npb247CivnuK7lsI/mqKHlnosgPCBtaW5pYXR1cmU7CivlibLojYkgPCBtb3dcLWdyYXNzOwor6K6K5aWPIDwgdmFyaWF0aW9uOwor6aCY5Y+XIDwgdG9cLWFjY2VwdDsKK+S7peW8l+aJgOabuCA8IGVwaGVzaWFuczsKK+WLleebqiA8IGNvbW1vdGlvbjsKK+WPr+WTgCA8IG1pc2VyYWJseTsKK+aykuacieW9oueLgCA8IHNoYXBlbGVzczsKK+iPoOiYvyA8IHBpbmVhcHBsZTsKK+epqeWumuaApyA8IHN0YWJpbGl0eTsKK+WOmuW6piA8IHRoaWNrbmVzczsKK+mAn+iomCA8IHNob3J0aGFuZDsKK+eUqOaItuaVuOaTmiA8IHVzZXJcLWRhdGE7CivlvpDmraUgPCB0b1wtc3Ryb2xsOwor6KW/6Z2iIDwgd2VzdFwtc2lkZTsKK+mAo+aOpeWZqCA8IGNvbm5lY3RvcjsKK+aRmOmZpCA8IHRvXC1leGNpc2U7CivorablrpggPCBjb25zdGFibGU7Civplovnmbzkurrlk6EgPCBkZXZlbG9wZXI7CivlkI3kurogPCBwZXJzb25hZ2U7CivolJPlu7YgPCB0b1wtZXh0ZW5kOwor5Zyw6LOq5a245a62IDwgZ2VvbG9naXN0Owor5ZCM5LqLIDwgY29sbGVhZ3VlOwor5b2i5a656L6tIDwgYWRqZWN0aXZlOwor5Y2K5peXIDwgaGFsZlwtbWFzdDsKK+mHkeWMoCA8IGdvbGRzbWl0aDsKK+WQjOS4gCA8IGlkZW50aWNhbDsKK+WPr+W+l+WIsCA8IGF2YWlsYWJsZTsKK+eisOW3pyA8IGJ5XC1jaGFuY2U7Civnp5HlrbjlrrYgPCBzY2llbnRpc3Q7Civmma7lj4ogPCB3aWRlc3BlYWQ7CivoqK3nva4gPCB0b1wtc2V0XC11cDsKK+W/l+mhmOiAhSA8IHZvbHVudGVlcjsKK+eHkueHrCA8IGJ1cm5cLWRvd247CivmmI7lubQgPCBuZXh0XC15ZWFyOwor5pOm6YKK55CDIDwgZWRnZVwtYmFsbDsKK+WPpOWFuCA8IGNsYXNzaWNhbDsKK+WPq+WBmiA8IGJlXC1jYWxsZWQ7CivntqDojLYgPCBncmVlblwtdGVhOwor5oCO6bq85qijIDwgaG93XC1hYm91dDsKK+aJgOacieasiiA8IG93bmVyc2hpcDsKK+WIpeiZlSA8IGVsc2V3aGVyZTsKK+i/sOiqniA8IHByZWRpY2F0ZTsKK+eZveWgsee0mSA8IG5ld3NwcmludDsKK+mYsuihmyA8IHRvXC1kZWZlbmQ7CivoqI7oq5bmnIMgPCBzeW1wb3NpdW07CivmlZnniLYgPCBnb2RmYXRoZXI7Civlj5flg7EgPCBtZXJjZW5hcnk7Civoqp7mupAgPCBldHltb2xvZ3k7Civoqqrms5UgPCBzdGF0ZW1lbnQ7Civln47ploAgPCBjaXR5XC1nYXRlOwor5o6l5Y+X6ICFIDwgcmVjaXBpZW50Owor55Sf54mp5a245a62IDwgYmlvbG9naXN0Owor6Z2I5pWPIDwgc2Vuc2l0aXZlOwor5Yqp55CGIDwgYXNzaXN0YW50Owor5q+P5YCL5Lq6IDwgZXZlcnlib2R5Owor5LiN6IKy5oCnIDwgc3RlcmlsaXR5Owor5qqi5p+l5ZOhIDwgaW5zcGVjdG9yOwor6KuW5pa3IDwgaW5mZXJlbmNlOwor5Y+X5LqLIDwgcmVjZXBpZW50Owor54as54WOIDwgc3VmZmVyaW5nOwor5YiG6JmfIDwgc2VtaWNvbG9uOwor5Y6f5ZGKIDwgY29tcGxhaW50Owor55m96a2aIDwgd2hpdGVmaXNoOwor6KGo54++5Z6LIDwgcGhlbm90eXBlOwor5aSa5qijIDwgZGl2ZXJzaXR5Owor5aSa5qihIDwgbXVsdGltb2RlOwor54Sh6IO9IDwgaW5hYmlsaXR5Owor55m96auUIDwgbGVhblwtdHlwZTsKK+aomemrmCA8IGVsZXZhdGlvbjsKK+WmluWqmiA8IHNlZHVjdGl2ZTsKK+eEoeiBsiA8IG5vaXNlbGVzczsKK+WNgeW5tCA8IHRlblwteWVhcnM7CivljYrls7YgPCBwZW5pbnN1bGE7CivkuI3lj6/no6jmu4UgPCBpbmRlbGlibGU7CivpgKPnuowgPCBjb250aW5vdXM7Civljp/liYcgPCBwcmluY2lwbGU7Civnmq7pnovljKAgPCBzaG9lbWFrZXI7CivpmL/mr5Topb/lsLzkup4gPCBhYnlzc2luaWE7CivphK3lt54gPCB6aGVuZ3pob3U7CivoqIjnrZYgPCBzdHJhdGFnZW07CivlupXnt5ogPCB1bmRlcmxpbmU7CivploPpm7sgPCBsaWdodG5pbmc7CivlvJXmuKEgPCBleHRyYWRpdGU7Civkv53orbfogIUgPCBwcm90ZWN0b3I7CivmlZnmr40gPCBnb2Rtb3RoZXI7CivmlofmmI4gPCBjaXZpbGl6ZWQ7Civlgb3lkJvlrZAgPCBoeXBvY3J5dGU7Civnm7ToprogPCBpbnR1aXRpb247Civlo4Hnh4ggPCB3YWxsXC1sYW1wOwor55m86Z+zIDwgcHJvbm91bmNlOwor5Y6Y5YWLIDwgY2VudGlncmFtOwor6aas6LmE6ZC1IDwgaG9yc2VzaG9lOwor5pOU5p625bqKIDwgc3RyZXRjaGVyOwor54Sh57GfIDwgc2NvdW5kcmVsOwor5Yqg5rexIDwgdG9cLWRlZXBlbjsKK+Wft+ihjCA8IGltcGxlbWVudDsKK+mbueaatCA8IGhhaWxzdG9ybTsKK+eiuuS/oSA8IGNvbmZpZGVudDsKK+mCo+aooyA8IHRoYXRcLWtpbmQ7Civlhazph4wgPCBraWxvbWV0ZXI7CivoqqDmka8gPCBzaW5jZXJlbHk7Civlt67ot50gPCBkaXNwYXJpdHk7CivkuI3kuqbmqILkuY4gPCBleHRyZW1lbHk7Civopa/oo5kgPCBwZXR0aWNvYXQ7CivpsL7ohqAgPCBpc2luZ2xhc3M7CivmjInnhaflrZfpnaIgPCBsaXRlcmFsbHk7CivorYnku7YgPCBwYXBlcndvcms7CivntLDoj4wgPCBiYWN0ZXJpYWw7CivokrzlpKkgPCBmaXJtYW1lbnQ7CivkuInliIbkuYvkuIAgPCBvbmVcLXRoaXJkOwor57ep5rKWIDwgdG9cLWJ1ZmZlcjsKK+mBuOa0viA8IHNldFwtYXBhcnQ7CivkuI3lrozlloQgPCBpbXBlcmZlY3Q7CivlpKflv5cgPCBoaWdoXC1haW1zOwor6LyU6Z+zIDwgY29uc29uYW50Owor5by15o+aIDwgcHVibGljaXplOwor6Kej56K8IDwgdG9cLWRlY29kZTsKK+aSreeoriA8IHNvd1wtc2VlZHM7CivljJblrbggPCBjaGVtaXN0cnk7CivloLHntJkgPCBuZXdzcGFwZXI7CivnhKHnn6UgPCBpZ25vcmFuY2U7CivmjqXpp4EgPCB0b1wtYWNjZXNzOwor5LiN5Y+v5pWR6JelIDwgaW5jdXJhYmxlOwor5b6I5aSaIDwgdmVyeVwtbWFueTsKK+iAtui3r+aSkuWGtyA8IGplcnVzYWxlbTsKK+mbmeaWuSA8IGJpbGF0ZXJhbDsKK+aZtOmbqOihqCA8IGJhcm9tZXRlcjsKK+WNg+emp+W5tCA8IG1pbGxlbml1bTsKK+mVt+mBoCA8IGxvbmdcLXRlcm07CivljYPlkaggPCBraWxvaGVydHo7CivpgY7mv74gPCB0b1wtZmlsdGVyOwor6KS754CG55qE6KmxIDwgYmxhc3BoZW15Owor5aWH5aaZIDwgZmFudGFzdGljOwor5Yaw6JOLIDwgaWNlXC1zaGVldDsKK+Wci+WFp+aIsOeIrSA8IGNpdmlsXC13YXI7CivljbHlnLDppqzmi4kgPCBndWF0YW1hbGE7CivpgZnmuKwgPCB0ZWxlbWV0cnk7CivmjqXnj63kurogPCBzdWNjZXNzb3I7CivovrLoiI0gPCBmYXJtaG91c2U7CivliarosrznsL8gPCBzY3JhcGJvb2s7CivlgYnmmbblsqkgPCBwZWdtYXRpdGU7CivntIXok64gPCByZWRcLWxvdHVzOwor5oyH56S656ymIDwgaW5kaWNhdG9yOwor5YWx6K2YIDwgY29uc2Vuc3VzOwor5Yqg5a+G5b6M55qEIDwgZW5jcnlwdGVkOwor5pyJ5pS75pOK5oCnIDwgb2ZmZW5zaXZlOwor5aSn5bCPIDwgZGltZW5zaW9uOwor5oOh5ZCN5pit5b2wIDwgbm90b3Jpb3VzOwor5L+d5oOg5birIDwgY29tZm9ydGVyOwor5aSn5a62IDwgYXV0aG9yaXR5Owor54it5Y+WIDwgZmlnaHRcLWZvcjsKK+avj+WkqSA8IGV2ZXJ5XC1kYXk7CivntpPmv5/lrbjlrrYgPCBlY29ub21pc3Q7CivmlLvmk4ogPCB0b1wtYXR0YWNrOwor57SF6Iy2IDwgYmxhY2tcLXRlYTsKK+aWh+WtlyA8IGNoYXJhY3RlcjsKK+W4uOe2oCA8IGV2ZXJncmVlbjsKK+aumOW7oiA8IGRlZm9ybWl0eTsKK+maseaZpiA8IG9ic2N1cml0eTsKK+W7uuevieW4qyA8IGFyY2hpdGVjdDsKK+eFp+aooyA8IGFzXC1iZWZvcmU7CivmlrnlkJEgPCBkaXJlY3Rpb247CivnhLDngasgPCBmaXJld29ya3M7CivmlZHmgakgPCBzYWx2YXRpb247CivpmL/nqbrliqDnk5wgPCBhY29uY2FndWE7CivliqDmi4nlpKrmm7ggPCBnYWxhdGlhbnM7Civlvozli6QgPCBsb2dpc3RpY3M7Civlp5Tlk6HmnIMgPCBjb21taXR0ZWU7CivntrLpmpvoibLmg4UgPCBjeWJlcnBvcm47CivovqbnvaogPCB0b1wtcHVuaXNoOwor6KaB57eKIDwgaW1wb3J0YW50Owor5rCR5Li7IDwgZGVtb2NyYWN5Owor5YuZ5a+mIDwgcHJhZ21hdGljOwor5o6o6Yq3IDwgdG9cLW1hcmtldDsKK+W9meWgsSA8IHRvXC1yZXBvcnQ7CivopoHntKAgPCBlc3NlbnRpYWw7CivoiKrmtbfogIUgPCBuYXZpZ2F0b3I7CivlpKLlooMgPCBkcmVhbWxhbmQ7CivoqrLloIIgPCBjbGFzc3Jvb207CivloLHnlYwgPCB0aGVcLXByZXNzOwor5Y2B5LiDIDwgc2V2ZW50ZWVuOwor54Gr6JelIDwgZ3VucG93ZGVyOwor6Ki65pa3IDwgZGlhZ25vc2lzOwor5q+r5YWLIDwgbWlsbGlncmFtOwor5Ymv5pysIDwgZHVwbGljYXRlOwor6Iqx57KJ6YGO5pWPIDwgaGF5XC1mZXZlcjsKK+W7o+aSrSA8IGJyb2FkY2FzdDsKK+aVl+WxgCA8IGxvc3RcLWdhbWU7Civpg4rlpJYgPCBvdXRza2lydHM7Civnmb3ooJ8gPCB3aGl0ZVwtd2F4Owor5Ye654++IDwgdG9cLWFwcGVhcjsKK+WGsOezlSA8IGljZVwtY3JlYW07CivlhYHoqLEgPCB0b1wtcGVybWl0Owor5bCP5ZCD5bqXIDwgc25hY2tcLWJhcjsKK+W+jOS7oyA8IHBvc3Rlcml0eTsKK+e2reWjq+WNoSA8IHZpc2FcLWNhcmQ7CivngrrmmYLpgY7ml6kgPCBwcmVtYXR1cmU7Civoga/lkIjntYTnuZQgPCBzeW5kaWNhdGU7Civmp4vpgKAgPCBzdHJ1Y3R1cmU7CivpvbMgPCB0b290aGxlc3M7Civpva0gPCB0b290aGFjaGU7Civlpb3lpYflv4MgPCBjdXJpb3NpdHk7Civli77lioMgPCB0b1wtc2tldGNoOwor5Lq654mp5o+P5a+rIDwgcG9ydHJheWFsOwor5aKe5o+0IDwgcmVpbmZvcmNlOwor54Sh5q+UIDwgbWF0Y2hsZXNzOwor5pWZ5aOrIDwgY2h1cmNobWFuOwor5qyh5pW4IDwgZnJlcXVlbmN5Owor5aSn5YqbIDwgZW5lcmdldGljOwor5pS/5rK75oCnIDwgcG9saXRpY2FsOwor5ruR6byg5aKKIDwgbW91c2VcLXBhZDsKK+Wjr+WkpyA8IHRvXC1leHBhbmQ7Civpt74gPCBhXC1zd2FsbG93Owor6betIDwgd2F0ZXJcLWhlbjsKK+aLnOeJqeaVmSA8IGZldGlzaGlzbTsKK+mBteW+qiA8IHRvXC1mb2xsb3c7Civpt6UgPCB0aGVcLWVncmV0Owor6YGp5oSPIDwgYWdyZWVhYmxlOwor6bePIDwgYmlyZFwtbmFtZTsKK+m2oSA8IGNyb3NzYmlsbDsKK+iqv+WBnCA8IHJlY29uY2lsZTsKK+m1tyA8IGNvXC13b3JrZXI7CivlubLmtokgPCBpbnRlcmZlcmU7Civps6IgPCBzbmFrZWhlYWQ7CivnpL7mnIPkuLvnvqnogIUgPCBzb2NpYWxpc3Q7CivkvY7pgJ/njocgPCBsb3dcLXNwZWVkOwor6bKOIDwga2luZ1wtY3JhYjsKK+mxtyA8IGNyb2NvZGlsZTsKK+WLpOWLiSA8IGRpbGlnZW5jZTsKK+asvuW+hSA8IGVudGVydGFpbjsKK+S7pOS6uuasveS9qSA8IGFkbWlyYWJsZTsKK+mvoCA8IHRvXC1jb25mZXI7Civnmbzoir0gPCBnZXJtaW5hdGU7CivprqYgPCBzbmFrZWZpc2g7CivmkqXmraMgPCBzZXRcLXJpZ2h0Owor6a2eIDwgZmlzaFwtdHJhcDsKK+mYv+Wlh+mHjOaWryA8IGFlc2NoeWx1czsKK+WjveWRvSA8IGxpZmVcLXNwYW47CivprJYgPCB3aWxkXC1oYWlyOwor6aunIDwgbG9uZ1wtaGFpcjsKK+mrlyA8IHRoZVwtc2t1bGw7Civmj5DmkanlpKrlkI7mm7ggPCAyXC10aW1vdGh5Owor6aqtIDwgc2hpblwtYm9uZTsKK+aUv+ayu+WxgCA8IHBvbGl0YnVybzsKK+e2k+aWhyA8IHNjcmlwdHVyZTsKK+mbtuWUruWVhiA8IHRyYWRlc21hbjsKK+aVsuWFpSA8IHRvXC1rZXlcLWluOwor6ZqK5b2iIDwgZm9ybWF0aW9uOwor6ainIDwgdGFuXC1ob3JzZTsKK+mokCA8IHRvXC12ZXJpdHk7CivlpKnkuIogPCBjZWxlc3RpYWw7Civpp7ggPCBnYWxsb3Bpbmc7CivmlL/msrvlrrYgPCBzdGF0ZXNtYW47CivppaAgPCByaWNlXC1jYWtlOwor6L6m55CGIDwgdG9cLWhhbmRsZTsKK+mksSA8IGRyeVwtZ29vZHM7CivlronlhajluLYgPCBzZWF0XC1iZWx0Owor5a2f5Yqg5ouJ6KqeIDwgYmVuZ2FsZXNlOwor6Ki75a6aIDwgYmVcLWRvb21lZDsKK+eEoeaVuCA8IGNvdW50bGVzczsKK+aUtuWbniA8IHRvXC1yZWdhaW47CivlpJbkuqQgPCBkaXBsb21hY3k7CivpgY7luqYgPCBleGNlZWRpbmc7Civmk43mjIEgPCB0b1wtbWFuYWdlOwor55m75buj5ZGKIDwgYWR2ZXJ0aXNlOwor5qqi5risIDwgdG9cLWRldGVjdDsKK+efruWHsyA8IGxvd1wtc3Rvb2w7Civpmo7lsaQgPCBoaWVyYXJjaHk7CivpnaogPCB0b1wtY29iYmxlOwor6aaZ5qqz6YWSIDwgY2hhbXBhZ25lOwor6Z2nIDwgd2FzaFwtZmFjZTsKK+iHs+mrmCA8IHBhcmFtb3VudDsKK+mdgCA8IGRyaXp6bGluZzsKK+aOkuihjCA8IHNlbmlvcml0eTsKK+mcgiA8IGZpbmVcLXJhaW47CivliY3lvoAgPCBsZWF2ZVwtZm9yOwor5pWZ5YSAIDwgb3JkaW5hbmNlOwor5qmf5qKw6KOd572uIDwgbWFjaGluZXJ5Owor6ZqDIDwgdG9cLWV4Y2VlZDsKK+Wis+WikyA8IHNlcHVsY2hlcjsKK+e2nOWQiOaApyA8IHN5bnRoZXNpczsKK+WFrOeniSA8IGtpbG9saXRlcjsKK+mYu+aSkyA8IHRvXC10aHdhcnQ7CivlgrPpgIEgPCB0b1wtY29udmV5Owor6Za6IDwgbG9va1wtZG93bjsKK+mBuuWbkSA8IHRlc3RhbWVudDsKK+atoeWRvCA8IGNoZWVyXC1mb3I7CivplKsgPCBiZXJrZWxpdW07CivplIYgPCB6aXJjb25pdW07CivpkrYgPCBjb2x1bWJpdW07CivpgYrlrqIgPCB0cmF2ZWxsZXI7CivpkowgPCBydXRoZW5pdW07CivmkYHph5jlhZIgPCB0aHVtYnRhY2s7CivpkoEgPCBhXC1tYXR0b2NrOwor5paH5YW35ZWGIDwgc3RhdGlvbmVyOwor5paw5Yqg5Z2hIDwgc2luZ2Fwb3JlOwor5Z+O54mGIDwgY2l0eVwtd2FsbDsKK+WFp+eivCA8IHRvXC1lbmNvZGU7CivpkLsgPCBkcnVtc3RpY2s7CivmkafmrpggPCB0b1wtcmF2YWdlOwor5pKe5pOKIDwgdG9cLXN0cmlrZTsKK+WKoOWKhyA8IGFnZ3JhdmF0ZTsKK+mPmyA8IHRvXC1wb2xpc2g7CivpmLvmipcgPCBpbXBlZGFuY2U7CivmjZDotIggPCB0b1wtZG9uYXRlOwor6Ieq6aGYIDwgdm9sdW50YXJ5Owor6Y6/IDwgbmVwdHVuaXVtOwor5qi555quIDwgdHJlZVwtYmFyazsKK+mOniA8IHBsb3dzaGFyZTsKK+maqOWToSA8IGF0dGVuZGFudDsKK+WFieethiA8IGxpZ2h0XC1wZW47CivloLHmlKQgPCBuZXdzc3RhbmQ7Civlh7rmlrwgPCBiZVwtZHVlXC10bzsKK+eEoeW9oiA8IGludmlzaWJsZTsKK+ijnee9riA8IGVxdWlwbWVudDsKK+mIjCA8IHRvXC1waWVyY2U7CivmlYXkuosgPCBuYXJyYXRpdmU7CivlhbHnlKIgPCBjb21tdW5pc3Q7Civmjqjnv7sgPCBvdmVydGhyb3c7CivpoJjkuovppKggPCBjb25zdWxhdGU7CivlnJLol50gPCBnYXJkZW5pbmc7CivlioPliIYgPCB0b1wtZGl2aWRlOwor5YKz6KiYIDwgYmlvZ3JhcGh5Owor6L+35oORIDwgdG9cLXB1enpsZTsKK+WKoOS4iiA8IHRvXC1wdXRcLWluOwor6LyYIDwgYVwtY2FyXC1ydXQ7CivpgJrlrrUgPCBvdmVybmlnaHQ7Civou4QgPCB0b1wtZ292ZXJuOwor6LqUIDwgZm9sbG93XC1pbjsKK+W7o+WCsyA8IHByb3BhZ2F0ZTsKK+eZvOeUnyA8IHRvXC1oYXBwZW47Civot6kgPCB0b1wtd2FkZGxlOwor6LaF6IGv57WQIDwgaHlwZXJsaW5rOwor6LadIDwgdG9cLXB1cnN1ZTsKK+i1vyA8IGxhdGVcLXNsb3c7CivntYTmiJAgPCBjb21wb25lbnQ7CivmjqXnrqEgPCB0YWtlXC1vdmVyOwor6LG1IDwgeW91bmdcLXBpZzsKK+e4veacg+acg+mVtyA8IHByZXNpZGVudDsKK+mahuWGrCA8IG1pZHdpbnRlcjsKK+WHueW6piA8IGNvbmNhdml0eTsKK+a8q+mVtyA8IHZlcnlcLWxvbmc7CivnlYzpnaIgPCBpbnRlcmZhY2U7CivlibXkvZwgPCB0b1wtY3JlYXRlOwor5Yiw55uu5YmN54K65q2iIDwgdW50aWxcLW5vdzsKK+itiiA8IHdyYW5nbGluZzsKK+ithSA8IHdyaWdnbGluZzsKK+irnSA8IGtub3dsZWRnZTsKK+avq+eEoeeWkeWVjyA8IGNlcnRhaW50eTsKK+e2nOWQiCA8IGNvbXBvc2l0ZTsKK+aKq+mcsiA8IHRvXC1yZXZlYWw7CivnnIvlvoUgPCBsb29rXC11cG9uOwor6Zm35YWlIDwgc2lua1wtaW50bzsKK+ihsOiQvSA8IGRlY29tcG9zZTsKK+aSpeWljyA8IHBpenppY2F0bzsKK+i/q+WusyA8IHBlcnNlY3V0ZTsKK+mAsuWMliA8IGV2b2x1dGlvbjsKK+a1geihjOaAp+aEn+WGkiA8IGluZmx1ZW56YTsKK+ijsiA8IHdhaXN0Y29hdDsKK+i+r+aJjSA8IGVsb3F1ZW5jZTsKK+iHquiyoCA8IGNvbmNlaXRlZDsKK+iejCA8IGFcLXN0cmlwZWQ7CivluILmlL8gPCBtdW5pY2lwYWw7CivlhLznhLYgPCBqdXN0XC1saWtlOwor5L+d55qH6buoIDwgcm95YWxpc3RzOwor57WV5aaZIDwgZXhxdWlzaXRlOwor5p2x5YyX5pa5IDwgbm9ydGhlYXN0Owor5oqV6ZmNIDwgc3VycmVuZGVyOwor57C956ugIDwgc2lnbmF0dXJlOwor6JieIDwgd2lsZFwtdmluZTsKK+e2geWMqiA8IGtpZG5hcHBlcjsKK+eEoeWKmyA8IHBvd2VybGVzczsKK+WlveiQiuWhoiA8IGhvbGx5d29vZDsKK+aTlOS/nSA8IGd1YXJhbnRlZTsKK+aOqOeQhiA8IHJlYXNvbmluZzsKK+iVlyA8IGxldWNhY2VuZTsKK+WboOiAjCA8IHRoZXJlZm9yZTsKK+mAhuWQkSA8IGJhY2t3YXJkczsKK+iThiA8IHN0cmF3XC1tYXQ7CivmjInomoogPCBhbm9waGVsZXM7CivmqKPmqZ8gPCBwcm90b3R5cGU7CivokqIgPCBoZWR5c2FydW07CivliKjlhrAgPCB3YXRlclwtaWNlOwor5bi25a+sIDwgYmFuZHdpZHRoOwor6JGTIDwgdmVnZXRhYmxlOwor55Ww6K2wIDwgb2JqZWN0aW9uOwor6KaP5a6aIDwgcHJvdmlzaW9uOwor5bGV6ZaLIDwgdG9cLXVuZm9sZDsKK+i8qua1gSA8IGFsdGVybmF0ZTsKK+aMgeS5heaApyA8IGNvbnN0YW5jeTsKK+WCs+e1sSA8IHRyYWRpdGlvbjsKK+WBj+imiyA8IHByZWp1ZGljZTsKK+eZveihgOeXhSA8IGxldWthZW1pYTsKK+WFqOS4lueVjCA8IHdvcmxkd2lkZTsKK+WcsOeQhiA8IGdlb2dyYXBoeTsKK+WcsOeQgyA8IHRoZVwtZWFydGg7Civoi5kgPCBhXC1waWdcLXN0eTsKK+iKvCA8IHRvXC1jaG9vc2U7CivpmY3kvY4gPCB0b1wtcmVkdWNlOwor5L+d6ZqqIDwgaW5zdXJhbmNlOwor5L+d6ZqcIDwgdG9cLWVuc3VyZTsKK+iJoyA8IHN0ZXJuXC1vYXI7CivloLTlkIggPCBzaXR1YXRpb247CivoiY4gPCBmYXN0XC1ib2F0Owor5aCx5ZGKIDwgdG9cLWluZm9ybTsKK+iInSA8IGxpbmNoXC1waW47CivoiJggPCBhXC1tYW5zaW9uOwor6IevIDwgdG9cLXByYWlzZTsKK+a+s+Wkp+WIqeS6niA8IGF1c3RyYWxpYTsKK+WFrOaWlyA8IGRlY2FsaXRlcjsKK+i/lOWbniA8IHJldHVyblwtdG87CivlpKflr6vpjpblrpogPCBjYXBzXC1sb2NrOwor5YiG5YmyIDwgdG9cLWN1dFwtdXA7Civog6YgPCB0aGVcLW5hdmVsOwor5omB6aqoIDwgZmxhdFwtYm9uZTsKK+iApSA8IGZhcm1cLXRvb2w7CivnvrYgPCByYW5rXC1vZG9yOwor5L+d6Y+iIDwgYm9keWd1YXJkOwor6LeR6Yy2IDwgc3RvcHdhdGNoOwor57SZ5aS+IDwgcGFwZXJjbGlwOwor572BIDwgYVwtY2lzdGVybjsKK+eZvOaYjiA8IHRvXC1pbnZlbnQ7CivmqKHmk6wgPCBpbWl0YXRpb247CivljYrlt6XljYroroAgPCBwYXJ0XC13b3JrOwor5r+A55m8IDwgdG9cLWFyb3VzZTsKK+WGjeW6piA8IG9uY2VcLW1vcmU7Civns77lr58gPCB0b1wtcGlja2V0Owor5ou36IqxIDwgdG9cLWVtYm9zczsKK+aIkeWAkeiHquW3sSA8IG91cnNlbHZlczsKK+a9m+iJhyA8IHN1Ym1hcmluZTsKK+i/t+S9jyA8IGZhc2NpbmF0ZTsKK+iJvueCtyA8IG1veGFcLWNvbmU7Civlm5rnpoEgPCBjYXB0aXZpdHk7Civnt6UgPCBzd2FkZGxpbmc7CivnvoXlvrnmlq/nibkgPCByb2NoZXN0ZXI7Civkvr/ploAgPCBzaWRlXC1kb29yOwor5oqX6K2w6ICFIDwgcHJvdGVzdGVyOwor6KGj5bi96ZaTIDwgY2xvYWtyb29tOwor5LiA5Yy56aasIDwgb25lXC1ob3JzZTsKK+acieaZguWAmSA8IHNvbWV0aW1lczsKK+ezsCA8IHJpY2VcLWJhbGw7Civns50gPCBzY2F0dGVyZWQ7CivlgJnpgbjkurogPCBjYW5kaWRhdGU7CivnrqHlvKbmqILlnJggPCBvcmNoZXN0cmE7CivlkJHljJflnLAgPCBub3J0aHdhcmQ7CivnsaggPCB0cm91c3NlYXU7CivkuIvmsbrlv4MgPCBkZXRlcm1pbmU7Civopo/li7ggPCB0b1wtYWR2aXNlOwor6KGo55quIDwgZXBpZGVybWlzOwor6KGo55m9IDwgdmluZGljYXRlOwor55m95pel5YGa5aSiIDwgZGF5XC1kcmVhbTsKK+erlSA8IGRlY2lsaXRlcjsKK+S/neitieS6uiA8IGd1YXJhbnRvcjsKK+erhiA8IGV4aGF1c3RlZDsKK+eci+WBmiA8IHJlZ2FyZFwtYXM7CivnqosgPCBpblwtYVwtaG9sZTsKK+eorCA8IGdsdXRpbm91czsKK+S4iuaYn+acnyA8IGxhc3RcLXdlZWs7CivlhYfmiYsgPCBhc3NhaWxhbnQ7Civlr6zpoLsgPCBicm9hZGJhbmQ7Civopb/ljZcgPCBzb3V0aHdlc3Q7Civopb/ljJcgPCBub3J0aHdlc3Q7CivnpL0gPCBibGVzc2luZ3M7CivnpJ4gPCBcKG1pbmVyYWxcKTsKK+eyvuW3pyA8IGVsYWJvcmF0ZTsKK+esrOS6jOWNgSA8IHR3ZW50aWV0aDsKK+W2hOaWsCA8IGJyYW5kXC1uZXc7CivnooYgPCBhcnJvd1wtdGlwOwor5omT6YCyIDwgdG9cLWJyZWFjaDsKK+egrCA8IGJpZ1wtc3RvbmU7Civlhazlr7ggPCBkZWNpbWV0ZXI7Civlhazlr5MgPCBhcGFydG1lbnQ7CivluLjku7sgPCBwZXJtYW5lbnQ7CivlhYnlvakgPCBob25vcmFibGU7CivnnaHpgY7poK0gPCBvdmVyc2xlZXA7CivmjIfnpLogPCBwb2ludFwtb3V0Owor55yVIDwgcmVzdHJhaW50Owor55eF55CGIDwgcGF0aG9sb2d5Owor5Lu75L2V5YW25LuWIDwgYW55XC1vdGhlcjsKK+i+m+WLniA8IGxhYm9yaW91czsKK+aQjeWjniA8IHRvXC1kYW1hZ2U7CivnmK0gPCBhXC13aGl0bG93Owor55icIDwgYVwtcG9seXB1czsKK+W3tOWLkuaWr+WdpiA8IHBhbGVzdGluZTsKK+eXoSA8IGFcLWRpc2Vhc2U7CivliKnmnKroqJggPCBsZXZpdGljdXM7Civnq6XlrZDou40gPCBib3lcLXNjb3V0Owor55WxIDwgdG9cLWRldGFpbjsKK+WYieiosSA8IGZhdm9yYWJsZTsKK+eViyA8IHRpbGxcLWxhbmQ7CivlhavlpKkgPCBlaWdodFwtZGF5Owor55SmIDwgYmVcLXJlYm9ybjsKK+eTuCA8IGhlY3RvZ3JhbTsKK+aLkue1lSA8IHRvXC1yZWZ1c2U7CivopoHkuI0gPCBvdGhlcndpc2U7Civnkr8gPCBmaW5lXC1qYWRlOwor5qiZ5a6aIDwgZGVtYXJjYXRlOwor55G0IDwgdHdpblwtZ2VtczsKK+eRoyA8IGZyYWdtZW50czsKK+i8u+WwhCA8IHJhZGlhdGlvbjsKK+Wbm+WNgeWFrSA8IGZvcnR5XC1zaXg7CivmjpLmlL4gPCBkaXNjaGFyZ2U7Civpq5Tnj74gPCB0b1wtZW1ib2R5Owor6KGw5ribIDwgdG9cLXdlYWtlbjsKK+exg+advyA8IGJhY2tib2FyZDsKK+WcqO+5jeaXgemCiiA8IGFsb25nc2lkZTsKK+mmrOmerSA8IGhvcnNld2hpcDsKK+eNgCA8IHRvXC1nYXRoZXI7CivnrKzkuZ3ljYEgPCBuaW5ldGlldGg7Civni7MgPCBhcm1hZGlsbG87Civnh7YgPCB0b1wtc2NvcmNoOwor55Wi56ufIDwgYWZ0ZXJcLWFsbDsKK+eGvyA8IGJyaWxsaWFudDsKK+WFiOimi+S5i+aYjiA8IGZvcmVzaWdodDsKK+S9jumajiA8IGxvd1wtbGV2ZWw7CivmiYDorIIgPCBzb1wtY2FsbGVkOwor5r2w54ibIDwgdG9cLWZlc3RlcjsKK+WEsuWtmCA8IHN0b2NrcGlsZTsKK+i7iuWJjeeHiCA8IGhlYWRsaWdodDsKK+a/qSA8IHBvdXJcLWRvd247Civmjpvlv7UgPCBjb25jZXJuZWQ7CivlrofoiKrlk6EgPCBhc3Ryb25hdXQ7CivovZ/li5UgPCBzZW5zYXRpb247Civoh7rnh4ggPCBkZXNrXC1sYW1wOwor5L2/5Zuw56qYIDwgZW1iYXJyYXNzOwor5rm8IDwgYmxhY2tcLW11ZDsKK+a5hSA8IGJvaWxcLXNpbGs7Civmt6kgPCBwYXNzXC1vdmVyOwor5a+m6LOqIDwgc3Vic3RhbmNlOwor6Zqo5LmL6ICM5b6MIDwgZnJvbVwtdGhhdDsKK+a2tyA8IHJhaW5zdG9ybTsKK+a0kSA8IHdoaXJscG9vbDsKK+W3p+WFi+WKmyA8IGNob2NvbGF0ZTsKK+aciembhOW/gyA8IGFtYml0aW91czsKK+auiCA8IGluZmVydGlsZTsKK+aslSA8IHRyZWVcLW5hbWU7CivmpI3niakgPCBib3RhbmljYWw7CivnqbrpmLIgPCBhaXJcLWZvcmNlOwor5YWl5L61IDwgdG9cLWludmFkZTsKK+iZleeQhuWZqCA8IHByb2Nlc3NvcjsKK+S4u+euoeS6uuWToSA8IGV4ZWN1dGl2ZTsKK+apmiA8IHRhbGxcLXRyZWU7CivlhazkuIggPCBkZWNhbWV0ZXI7CivovLjlh7ogPCB0b1wtZXhwb3J0Owor5qaqIDwgaGVhZGJvYXJkOwor55+l5pu06bOlIDwgcmVkYnJlYXN0Owor5ZWf56S66ICFIDwgcmV2ZWxhdG9yOwor6Ly45YWlIDwgdG9cLWltcG9ydDsKK+etieetiSA8IGV0XC1jZXRlcmE7CivnrKzkuInljYEgPCB0aGlydGlldGg7Civmo5YgPCBkb29yXC1zdG9wOwor5qKcIDwgY2hvcHN0aWNrOwor5r+A5oCSIDwgaW5mdXJpYXRlOwor5qCxIDwgbGFyZ2VcLXBlZzsKK+agrSA8IGtpbmdcLXBvc3Q7CivmoJIgPCBjcm9zc1wtYmFyOwor5YGc5rOKIDwgYW5jaG9yYWdlOwor5p+IIDwgY29udGFpbmVyOwor5p6ZIDwgdHJlZVwta25vdDsKK+eZvemOouekpiA8IHNjaGVlbGl0ZTsKK+acniA8IGZ1bGxcLXllYXI7CivmiYvmj5DljIUgPCBcKGhhbmRcKWJhZzsKK+aKgOihk+aApyA8IHRlY2huaWNhbDsKK+a8sua9riA8IGhpZ2hcLXRpZGU7Civmmo0gPCBzdW5zdHJva2U7CivlrrborZwgPCBnZW5lYWxvZ3k7CivpqZrnlbAgPCBhbWF6ZW1lbnQ7CivovJTliqkgPCB0b1wtYXNzaXN0Owor5peqIDwgdW5pdGVkXC1pbjsKK+aPkOS+myA8IHRvXC1zdXBwbHk7CivkuI3oqqDlr6YgPCBkaXNob25lc3Q7CivosYzosYbnsqUgPCBwZWFcLWdydWVsOwor6K6K5rWB5ZmoIDwgY29udmVydGVyOwor5pSLIDwgdG9cLWNsdXRjaDsKK+aUgyA8IHByZWNlZGluZzsKK+aTkCA8IHRvXC1wdXRcLW9uOwor6auU5pONIDwgZ3ltbmFzdGljOwor5pG9IDwgdGhyb3dcLW91dDsKK+aPkOaRqeWkquWJjeabuCA8IDFcLXRpbW90aHk7Civmka4gPCB0b1wtcmF0dGxlOwor5o+lIDwgc2NyYXRjaGVyOwor5L6/566LIDwgbm90ZXBhcGVyOwor6IGW6aSQIDwgc2FjcmFtZW50Owor6LKh5YuZ56eY5pu4IDwgdHJlYXN1cmVyOwor5om555m8IDwgd2hvbGVzYWxlOwor6LaV57eKIDwgaHVycmllZGx5Owor5omz6YGT5ZOhIDwgcG9pbnRzbWFuOwor5omkIDwgdG9cLXRocnVzdDsKK+mqqOaetiA8IGZyYW1ld29yazsKK+aInCA8IHRvXC1zY3JhcGU7CivlgbXmjqIgPCBkZXRlY3RpdmU7CivlhanmmJ/mnJ8gPCBmb3J0bmlnaHQ7CivmjJHmiLAgPCBjaGFsbGVuZ2U7CivmoLzlvI/ljJYgPCB0b1wtZm9ybWF0Owor6KKr5ZGKIDwgZGVmZW5kYW50Owor5rOi5Yip5bC86KW/5LqeIDwgcG9seW5lc2lhOwor5oKBIDwgaXJyaXRhYmxlOwor5oGRIDwgdG9cLWNoYW5nZTsKK+aAuiA8IHRvXC1lbmR1cmU7CivmgJ4gPCB0b1wtZ3JpZXZlOwor5oCXIDwgb2JzZXJ2YW50Owor5o6h55+z5aC0IDwgc3RvbmVcLXBpdDsKK+WKoOWLkuavlCA8IGNhcmliYmVhbjsKK+mbu+WgseapnyA8IHRlbGVncmFwaDsKK+iynemhniA8IHNoZWxsZmlzaDsKK+WcqOWFpyA8IGluY2x1ZGluZzsKK+aLv+aJiyA8IGV4cGVydFwtaW47Civlt6XkvZzooaggPCB3b3Jrc2hlZXQ7CivmmrTpoqjpm6ogPCBzbm93c3Rvcm07Civnq4rogb0gPCBlYXZlc2Ryb3A7Civlu74gPCB0d29cLWhhbmRzOwor5bqJIDwgYVwtdmlsbGFnZTsKK+W5qSA8IHRyYXBwaW5nczsKK+W5mSA8IGFcLWN1cnRhaW47Civlrr/oiI0gPCBkb3JtaXRvcnk7CivlsbHmsLQgPCBsYW5kc2NhcGU7Civlm5vlpKkgPCBmb3VyXC1kYXlzOwor5oy65aW9IDwgdmVyeVwtZ29vZDsKK+ewveWFpSA8IHRvXC1sb2dcLW9uOwor6aas6IOMIDwgaG9yc2ViYWNrOwor6amV5rCjIDwgYXJyb2dhbmNlOwor55aR5b+DIDwgc3VzcGljaW9uOwor5ri66IyrIDwgdW5jZXJ0YWluOwor5a+9IDwgYVwtaGFuZGZ1bDsKK+aWh+Wtl+aqlCA8IHRleHRcLWZpbGU7Civlr5ggPCBwdXRcLWFzaWRlOwor5r+A5YuVIDwgdG9cLWV4Y2l0ZTsKK+WrmyA8IGNvbXBsaWFudDsKK+WqrCA8IGdvdmVybmVzczsKK+WqlSA8IHVuZGVjaWRlZDsKK+a3u+ijnCA8IGZpbGxcLVwodXBcKTsKK+iyv+aYk+aIsCA8IHRyYWRlXC13YXI7CivlpYnmib/ogIUgPCBmbGF0dGVyZXI7CivnlJ/ogrLog73lipsgPCBmZXJ0aWxpdHk7Civkv67mraMgPCB0b1wtcmV2aXNlOwor5oyH5o+u6ICFIDwgY29uZHVjdG9yOwor5aSMIDwgdG9cLWRhd2RsZTsKK+afkOiZlSA8IHNvbWV3aGVyZTsKK+WhnSA8IGZsYXRcLWJhbms7Civlj4PogIPmm7ggPCByZWZlcmVuY2U7CivlhbHkuqvou5/pq5QgPCBzaGFyZXdhcmU7CivosqjovKogPCBmcmVpZ2h0ZXI7CivljYroobDmnJ8gPCBoYWxmXC1saWZlOwor5ZyKIDwgcmVzdFwtcm9vbTsKK+mrlOWcmCA8IGNvbW11bml0eTsKK+aKteaKlyA8IHRvXC1yZXNpc3Q7CivkuI3lj5fmraHov44gPCB1bndlbGNvbWU7CivlmYEgPCBuYXN0aW5lc3M7CivporHpoqggPCBodXJyaWNhbmU7CivlmJEgPCB0b1wtbWVuYWNlOwor5ouJ5paQ54m5IDwgbGFmYXlldHRlOwor6LSW572qIDwgYXRvbmVtZW50Owor5a+154mpIDwgaG91c2VcLXBldDsKK+iBluiqlSA8IGNocmlzdG1hczsKK+WTqyA8IHRvXC1jYWpvbGU7CivlkrUgPCB0b1wtcmV2aWxlOwor5LiN57WQ5p6cIDwgZnJ1aXRsZXNzOwor5ZGnIDwgdG9cLXJlYnVrZTsKK+WBh+WumiA8IHRvXC1hc3N1bWU7CivnlLPoq4vkurogPCBhcHBsaWNhbnQ7CivooYzli5UgPCBvcGVyYXRpb247CivkuLvpq5QgPCBtYWluXC1wYXJ0Owor5omL5rOVIDwgdGVjaG5pcXVlOwor5raI6YGjIDwgYW11c2VtZW50Owor5Ye654mI6ICFIDwgcHVibGlzaGVyOwor5Y+FIDwgdG9cLWNvdW5lbDsKK+WOkyA8IHByZWNpcGljZTsKK+WHueWHuOWNsOWItyA8IGVtYm9zc2luZzsKK+WwsealrSA8IGdldFwtYVwtam9iOwor55aG5Z+fIDwgdGVycml0b3J5Owor5pys5pif5pyfIDwgdGhpc1wtd2VlazsKK+WMmCA8IHRoZVwtYnJhaW47Civli6kgPCB3b3JrXC1oYXJkOwor5oCq5LiN5b6XIDwgbm9cLXdvbmRlcjsKK+aSkumDveipsuS6uiA8IHNhZGR1Y2VlczsKK+aJv+aTlCA8IHVuZGVydGFrZTsKK+WIlCA8IHNjb29wXC1vdXQ7Civohr3lsI8gPCBjb3dhcmRpY2U7Civlh7cgPCBkaXJ0XC1jbG9kOwor5YeZIDwgYW5cLWljaWNsZTsKK+WJtemAoOWKmyA8IGluZ2VudWl0eTsKK+WxrOaApyA8IGF0dHJpYnV0ZTsKK+WFhyA8IGF0cm9jaW91czsKK+S4u+mggSA8IGhvbWVcLXBhZ2U7Civlj6/lrrnlv40gPCB0b2xlcmFibGU7CivmnIPpnaIgPCBtZWV0XC13aXRoOwor5YK6IDwgdG9cLWhpbmRlcjsKK+aIkOeCuiA8IHRvXC1iZWNvbWU7CivkuqToqrwgPCBjb21tdW5pb247CivlnJbmm7jnrqHnkIblk6EgPCBsaWJyYXJpYW47Civln7rmnKzkuIogPCBiYXNpY2FsbHk7Civkvo4gPCB0b1wtc29vdGhlOwor5Ly7IDwgbWVzc2VuZ2VyOwor5LyLIDwgZGVjZXB0aXZlOwor5r2b5YqbIDwgcG90ZW50aWFsOwor56i76I2J5Lq6IDwgc2NhcmVjcm93Owor5a2456ulIDwgc2Nob29sYm95Owor5aSa55So5oi2IDwgbXVsdGl1c2VyOwor6Ieq5YuVIDwgYXV0b21hdGljOwor5YWx55Si5Li7576pIDwgY29tbXVuaXNtOwor5LazIDwgdG9cLWxvb2t1cDsKK+S2kSA8IHRvXC1zbmVlemU7CivooJXli5UgPCB0b1wtd2lnZ2xlOwor5omT5pWXIDwgdG9cLWRlZmVhdDsKK+ixquixrCA8IHBvcmN1cGluZTsKK+S4jeS7peeCuueEtiA8IG9iamVjdFwtdG87Civks7ogPCB0aGVcLXF1YWlsOwor5rWB6YePIDwgZmxvd1wtcmF0ZTsKK+SyqCA8IHdpbGRcLXN3YW47CivnpL7mnIPkuLvnvqkgPCBzb2NpYWxpc207CivksYggPCBmaXNoXC1wdWxwOwor5LClIDwgYVwtY3ljbG9uZTsKK+iznOe1piA8IHRvXC1iZXN0b3c7CivonJzmnIjlgYfmnJ8gPCBob25leW1vb247Civkr6YgPCB0aW55XC1ib25lOwor5K6cIDwgdG9cLWdhbGxvcDsKK+aLm+WLnyA8IHRvXC1yZWN1aXQ7CivkrawgPCB0b1wta293dG93Owor5bCN5pa8IDwgcmVnYXJkaW5nOwor5K2bIDwgdGFzdGVsZXNzOwor5K2RIDwgaW5jb3JydXB0Owor5ZCM54+t5ZCM5a24IDwgY2xhc3NtYXRlOwor5Ky2IDwgdG9cLXN0cmF2ZTsKK+SruyA8IGFcLXR5cGhvb247Civkq5QgPCBhXC1zZXJ2YW50Owor5LiK6Z2iIDwgb25cLXRvcFwtb2Y7Civnvr3mr5vnkIMgPCBiYWRtaW50b247CivkqaYgPCB0aGVcLXJlaW5zOwor5LqU6JmfIDwgdGhlXC1maWZ0aDsKK+SorSA8IHRoZVwtc2tpZXM7CivkqI0gPCBkZWVwXC1wb25kOwor5Ka1IDwgaW5jYXBhYmxlOwor5KasIDwgYVwtdmFjYW5jeTsKK+SmhiA8IGFcLWJpZ1wtaG9lOwor5ouG5Y24IDwgdG9cLXVubG9hZDsKK+aVkeitt+i7iiA8IGFtYnVsYW5jZTsKK+ibi+eZvSA8IGVnZ1wtd2hpdGU7CivnrKzljYHlha0gPCBzaXh0ZWVudGg7CivkorEgPCB0b1wtc2xpZ2h0Owor5KKfIDwgdG9cLXRyYXZlbDsKK+WQnumjnyA8IHRvXC1kZXZvdXI7Civkoo0gPCB0b1wtaGFzdGVuOwor5L2/55Sf5rCjIDwgZGlzcGxlYXNlOwor6IOD54KOIDwgZ2FzdHJpdGlzOwor5bCN5oqXIDwgd2l0aHN0YW5kOwor5KCyIDwgdG9cLWxpc3RlbjsKK+SgryA8IHRvXC1hc2NlbmQ7CivkoK4gPCB0b1wtcHJhbmNlOwor5J+7IDwgYmFyZVwtZmVldDsKK+SfniA8IHRvXC1mYWx0ZXI7CivkuI3lhazmraMgPCBpbmp1c3RpY2U7CivohKvmjokgPCBzdHJpcFwtb2ZmOwor6aaZ5rivIDwgaG9uZ1wta29uZzsKK+SfjCA8IGRpdmVyZ2luZzsKK+SevCA8IHRvXC1lc2NhcGU7CivknpIgPCByZWRcLWNvbG9yOwor5J6QIDwgcGxlbnRpZnVsOwor5J6JIDwgYVwtc3VycGx1czsKK+ScrSA8IHRvXC1kcmVkZ2U7Civlr6bmmYIgPCByZWFsXC10aW1lOwor6IK654KOIDwgcG5ldW1vbmlhOwor5JyfIDwgdG9cLXZlcmlmeTsKK+WFieWwhOe3miA8IGxpZ2h0XC1yYXk7Civkm7sgPCB0b1wtaW5kdWNlOwor5Ju5IDwgdG9cLWFjY3VzZTsKK+SbsyA8IHRvXC1tYWxpZ247Civkm6wgPCBiYWJ5XC10YWxrOwor5JuqIDwgbG9xdWFjaXR5Owor5JuLIDwgdG9cLXNjaGVtZTsKK+SbgSA8IHRvXC1tdXJtdXI7CivmhbbnpZ0gPCBjZWxlYnJhdGU7CivkmbggPCB0b1wtb2J0YWluOwor5aSW5ZyL5Lq6IDwgZm9yZWlnbmVyOwor5Ji8IDwgc3RvY2tpbmdzOwor5a6w5q66IDwgc2xhdWdodGVyOwor56ys5Y2B5LqUIDwgZmlmdGVlbnRoOwor5JiRIDwgdGhlXC1wdWxzZTsKK+SVqSA8IGRyeVwtZnJ1aXQ7CivmtarolakgPCB0b1wtbG9pdGVyOwor5JSzIDwgY2hpY2tsaW5nOwor5JOwIDwgYWJzaW50aGluOwor5p+Q54mpIDwgc29tZXRoaW5nOwor5JKKIDwgYVwtcGF0aWVudDsKK+SRqiA8IGFcLXNhaWxpbmc7CivkkZMgPCBhXC1sb29rb3V0Owor5rSl6LK8IDwgYWxsb3dhbmNlOwor5JC6IDwgZGVsaWNpb3VzOwor5JCbIDwgdG9cLWxvb3NlbjsKK+SQhiA8IGJpZ1wtYmVsbHk7Civkj70gPCBtZWF0XC1wdWxwOwor5I+sIDwgdGhlXC1zcGluZTsKK+SPoCA8IG1lYXRcLXNvdXA7Civkj54gPCB0aGVcLWJlbGx5Owor6IKd54KOIDwgaGVwYXRpdGlzOwor5I6hIDwgdG9cLXNocmluazsKK+a2iOiAlyA8IHRvXC11c2VcLXVwOwor5I6DIDwgZmluZVwtZG93bjsKK+mYv+agueW7tyA8IGFyZ2VudGluYTsKK+SNjiA8IGFcLXNwaW5kbGU7CivkjLIgPCBsaWdodFwtcmVkOwor5IybIDwgZW50b3VyYWdlOwor5IugIDwgdG9cLXJlcGFpcjsKK+SKsCA8IGZvb2RzdHVmZjsKK+SKnCA8IGR1bXBsaW5nczsKK+SJvCA8IG1hdGVyaWFsczsKK+S4iui8iSA8IHRvXC11cGxvYWQ7CivomK3oirEgPCBjeW1iaWRpdW07Civmm7joqJggPCBzZWNyZXRhcnk7CivmtaroiLkgPCBzd2luZ2JvYXQ7Civlgb3lloTogIUgPCBoeXBvY3JpdGU7Civkh5AgPCB0b1wtYXJyaXZlOwor5bCP5a+rIDwgbG93ZXJjYXNlOwor5IaQIDwgYVwtY291bnRyeTsKK+ieuuaXi+ansyA8IHByb3BlbGxlcjsKK+eUqOWFtyA8IGFwcGxpYW5jZTsKK+WPpOmiqCA8IGFudGlxdWl0eTsKK+SFgyA8IGxhdGVcLWNyb3A7CivlronmrYcgPCBnb1wtdG9cLWJlZDsKK+SDqSA8IGFcLW1pbmVyYWw7Civlrrbml48gPCBob3VzZWhvbGQ7Civkg5UgPCBzdG9uZXdhcmU7Civoh6rli5XmqJPmoq8gPCBlc2NhbGF0b3I7Civnt4rmgKXkuovku7YgPCBlbWVyZ2VuY3k7Civkg4AgPCBtaWxsc3RvbmU7CivkvZXmlYUgPCB3aGVyZWZvcmU7CivohbPljbAgPCBmb290cHJpbnQ7Civnk7flmaggPCBjaGluYXdhcmU7Civosq/msLTomZUgPCByZXNlcnZvaXI7CivkgZAgPCBkZWVwXC1leWVkOwor56ul5bm0IDwgY2hpbGRob29kOwor5Y2w5bqm5bC86KW/5LqeIDwgaW5kb25lc2lhOwor5Y2K5rWB6auUIDwgc2VtaWZsdWlkOwor5ICsIDwgdG9cLWdsYW5jZTsKK+SAoSA8IHRvXC1zcHlcLW9uOwor5ICQIDwgdG9cLXJlZ2FyZDsKK+i1t+W6iiA8IHRvXC1nZXRcLXVwOwor47+/IDwgd2luZVwtY3VwczsKK+awkeS4u+S4u+e+qeiAhSA8IGRlbW9jcmF0czsKK+O/nyA8IGhlXC1icmlnaHQ7CivlvoHmnI3ogIUgPCBjb25xdWVyb3I7CivjvqUgPCBiZWxseWFjaGU7CivjvqMgPCB0b1wtc2hpdmVyOwor5LuK55SfIDwgdGhpc1wtbGlmZTsKK+aNlem8oOWZqCA8IG1vdXNldHJhcDsKK+O9niA8IHRvXC1yZW1haW47CivjvYkgPCBhXC1iaWdcLWphcjsKK+O8uiA8IHBvcmNlbGFpbjsKK+iuiuiJsum+jSA8IGNoYW1lbGVvbjsKK+O8miA8IGVhcnRod2FyZTsKK+WwjeaKl+iAhSA8IGFkdmVyc2FyeTsKK+acrOiBtyA8IG9uZScnc1wtam9iOwor6YCA6buR5r+A57SgIDwgbWVsYXRvbmluOwor6IOM5pacIDwgYW50aWNsaW5lOwor5pq06LqBIDwgaXJhc2NpYmxlOwor5rGg6bm9IDwgbGFrZVwtc2FsdDsKK+iWhOayueWxpCA8IG9pbFwtc2hlZXQ7CivkuI3oqLEgPCBub3RcLWFsbG93Owor5ZWG5qiZIDwgdHJhZGVtYXJrOwor6aOv56KXIDwgcmljZVwtYm93bDsKK+eEoeefpeimuiA8IHNlbnNlbGVzczsKK+aZpOmdoiA8IGludGVydmlldzsKK+mHjemWiyA8IHRvXC1yZW9wZW47CivjtZQgPCBub3RcLWNsZWFyOwor6K6K6Z2pIDwgdHJhbnNmb3JtOwor47SBIDwgdG9cLWFkZFwtdG87Civnmb3kupHmr40gPCBtdXNjb3ZpdGU7Civjs6ggPCB0b1wtc3BsYXNoOwor5oiq5aWqIDwgaW50ZXJjZXB0Owor5b2r5Yi75ZOBIDwgc2N1bHB0dXJlOwor5rex5rC0IDwgZGVlcHdhdGVyOwor47CWIDwgdGhlXC1vbGl2ZTsKK+OvuiA8IGFcLWNhYmluZXQ7CivorornhKbot53pj6HpoK0gPCB6b29tXC1sZW5zOwor46+vIDwgc21hbGxcLWN1cDsKK+OvnSA8IHBhdWxvd25pYTsKK+OumSA8IGFcLXBpdGZhbGw7CivjraIgPCBtZWNoYW5pY3M7Civotbflp4sgPCBvcmlnaW5hdGU7CivjrL8gPCBtb29ubGlnaHQ7CivnpYforoAgPCByZWFkXC1vbmx5Owor46yrIDwgY2xlYXJcLXNreTsKK+S4gOWNg+WZuCA8IDEwMDBcLXRvbnM7CivkuI3opo/liYcgPCBpcnJlZ3VsYXI7Civms6Lni4Dpm7IgPCB1bmR1bGF0dXM7CivlrbjmnIMgPCBpbnN0aXR1dGU7CivjqoggPCB0b1wtbGV0XC1nbzsKK+OpkiA8IHRvXC1hcnJlc3Q7CivjqYcgPCB0aGVcLXRodW1iOwor46i2IDwgdG9cLXRocmVzaDsKK+OoiSA8IHRvXC1zbW9vdGg7Civjp6kgPCB0b1wtZGlzcGVsOwor46eXIDwgdG9cLWNsYXRjaDsKK++muyA8IG9mZmljaWFsczsKK+OmryA8IGFcLWNlcnRhaW47CivjppYgPCByZXNlbnRmdWw7Civjpb4gPCBtb3J0aWZpZWQ7CivjpbMgPCB0b1wtc3VydmV5Owor46WmIDwgc2F0aXNmaWVkOwor46WAIDwgZXhjbHVzaXZlOwor46S1IDwgY29wYXNzaW9uOwor5pyr56uvIDwgZXh0cmVtaXR5Owor46SHIDwgdGVycmlmaWVkOwor46SGIDwgbmF1c2VhdGVkOwor46O6IDwgdGhlXC1oZWFydDsKK+eTnOWIhiA8IHBhcnRpdGlvbjsKK+OioSA8IHRvXC1leGhvcnQ7CivjobwgPCBhXC1ncmFuYXJ5Owor46G6IDwgYVwtY290dGFnZTsKK+OhlyA8IHJlZFwtcGFwZXI7CivjoJggPCBhblwtaXNsYW5kOwor5raM54++IDwgc3ByaW5nXC11cDsKK+emruevgCA8IGV0aXF1ZXR0ZTsKK+iuiumGnCA8IGRpc2ZpZ3VyZTsKK+OcuyA8IHRvXC1hZG1pcmU7CivonILlt6IgPCBob25leWNvbWI7CivjnJggPCBkZWxpY2F0ZWQ7CivjnI8gPCBsYXN0XC1uYW1lOwor5Lit576OIDwgY2hpbmFcLXVzYTsKK+ObviA8IG5vdFwtY2xlYW47Civmmpfoqp4gPCBjb2RlXC13b3JkOwor5pO06Z+z5ZmoIDwgbWVnYXBob25lOwor5LiN6KaL5LqGIDwgZGlzYXBwZWFyOwor45qwIDwgYW5cLWVtYnJ5bzsKK+OamyA8IGNvcnB1bGVudDsKK+OamCA8IGFcLXBhcnRuZXI7Civph43ouYggPCB0b1wtcmVwZWF0Owor45ijIDwgY29tcGFzc2VzOwor45ezIDwgZm9yZ2V0ZnVsOwor5Lmd5pyI5Lu9IDwgc2VwdGVtYmVyOwor6LaF5paH5pysIDwgaHlwZXJ0ZXh0Owor5Z+6552j5pWZ5b6SIDwgY2hyaXN0aWFuOwor45W5IDwgYVwtYnVja2xlcjsKK+OVlSA8IGRlY2VwdGlvbjsKK+OVkSA8IGFcLWtpdGNoZW47CivkvJHmiLAgPCBhcm1pc3RpY2U7CivjlYsgPCByb2NrXC1sYW5kOwor45WIIDwgdG9cLWxpbmdlcjsKK+OUpyA8IHRvXC1pbmNpdGU7CivoroDmm7jkurogPCBhXC1zY2hvbGFyOwor45OLIDwgdG9cLWZyZWV6ZTsKK+OThCA8IHRvXC1wbG91Z2g7Civlj5vos6MgPCB0b1wtYmV0cmF5Owor45GnIDwgcGVydHVyYmVkOwor45GEIDwgdG9cLWluc3VsdDsKK+OQryA8IHRvXC1lbXBsb3k7CivkvLjlsZUgPCBleHRlbnNpb247CivkuIDoh7QgPCB1bmFuaW1vdXM7CivlvJXnlKjlj6UgPCBxdW90YXRpb247CivogIHniYwgPCBvbGRcLWJyYW5kOwor5aaW6aKoIDwgZXZpbFwtd2luZDsKK+mMtuW4tiA8IHdhdGNoYmFuZDsKK+a4m+WwkSA8IHRvXC1sZXNzZW47CivmnInnm4ogPCB3aG9sZXNvbWU7Civnq4vliLsgPCBmb3J0aHdpdGg7CivlhavlgI3pq5QgPCBvY3RvcGxvaWQ7Civmt7HmgJ0gPCB0b1wtcG9uZGVyOwor6YeO6KC7IDwgYmFyYmFyb3VzOwor6LKh5p2xIDwgc2hvcG93bmVyOwor6Jmb5qeLIDwgaW1hZ2luYXJ5Owor6KKr56aB5q2iIDwgZm9yYmlkZGVuOwor6IGv5oOzIDwgYXNzb2NpYXRlOwor5rW45rKSIDwgaW1tZXJzaW9uOwor5reS5oWYIDwgbWlzZXJhYmxlOwor5LiA56+HIDwgb25lXC1zaWRlZDsKK+S7i+izquioquWVj+aOp+WItuWxpCA8IG1hY1wtbGF5ZXI7CivkuI3oh6rnhLYgPCB1bm5hdHVyYWw7CivmnJ/mu78gPCB0b1wtZXhwaXJlOwor6K2m6Ka6IDwgdmlnaWxhbmNlOwor5Y6f6KuSIDwgdG9cLWV4Y3VzZTsKK+WutuS/sSA8IGZ1cm5pdHVyZTsKK+mrmOenkeaKgCA8IGhpZ2hcLXRlY2g7CivmhJ/mn5MgPCBpbmZlY3Rpb247CivlrZTlrZAgPCBjb25mdWNpdXM7Civkup7moLzploDovrIgPCBhZ2FtZW1ub247CivlrrbkuosgPCBob3VzZXdvcms7CivmgKrniankvLwgPCBtb25zdHJvdXM7CivlhrDmo43lhZIgPCBpY2VcLWxvbGx5Owor5LuK5bm0IDwgdGhpc1wteWVhcjsKK+eZveePreWFkiA8IGRheVwtc2hpZnQ7CivkuIDnmb4gPCBhXC1odW5kcmVkOwor5Luy5aSPIDwgbWlkc3VtbWVyOwor6K2J6KmeIDwgdGVzdGltb255Owor5LiN6YCe5LmL5b6SIDwgZGVzcGVyYWRvOwor56qB5Ye6IDwgcHJvbWluZW50Owor5pif5pyf5LiJIDwgd2VkbmVzZGF5Owor5oOh5q+SIDwgbWFsaWNpb3VzOwor6YeO6KC75Lq6IDwgYmFyYmFyaWFuOwor5Y2B5a2X6LuNIDwgY3J1c2FkZXJzOwor6Zyy6Z+TIDwgdG9cLWV4cG9zZTsKK+azleWci+S6uiA8IGZyZW5jaG1hbjsKK+S6lOWNg+WZuCA8IDUwMDBcLXRvbnM7CivlvbHpn78gPCBpbmZsdWVuY2U7CivmmrTnmbwgPCBicmVha1wtb3V0Owor5oeJ5LuYIDwgZGVhbFwtd2l0aDsKK+acieavkiA8IHBvaXNvbm91czsKK+W8sem5vCA8IHdlYWtcLWJhc2U7Civmsb3oiLkgPCBzdGVhbWJvYXQ7CivpgYfpm6PoiLkgPCBzaGlwd3JlY2s7Civlj6/nrJEgPCBsYXVnaGFibGU7CivljYrovIkgPCBoYWxmXC1sb2FkOwor5b6u6LufIDwgbWljcm9zb2Z0Owor5LuZ5aKDIDwgZmFpcnlsYW5kOwor5peo6LajIDwgb2JqZWN0aXZlOwor5aSn6aGeIDwgbWFpblwtdHlwZTsKK+acrOaWhyA8IHRoaXNcLXRleHQ7Civnvornmq7ntJkgPCBwYXJjaG1lbnQ7CivmhqTmhqTkuI3lubMgPCBpbmRpZ25hbnQ7Civnh5/ppIogPCBudXRyaXRpb247Civlj43oiaboiYcgPCBhbnRpXC1zaGlwOwor5Y2U6K2wIDwgYWdyZWVtZW50Owor6YKj6bq8IDwgc29cLVwobXVjaFwpOwor5b+F6ZyA5ZOBIDwgbmVjZXNzaXR5Owor56Kn6JeNIDwgZGFya1wtYmx1ZTsKK+W+hemBhyA8IHRyZWF0bWVudDsKK+S4i+WAi+aYn+acnyA8IG5leHRcLXdlZWs7CivlkIjnkIYgPCByYXRpb25hbGU7CivnjqnlvIQgPCByZXNvcnRcLXRvOwor5peB6LevIDwgdG9cLWJ5cGFzczsKK+WknOmWkyA8IG5pZ2h0dGltZTsKK+avlOmEsCA8IG5laWdoYm91cjsKK+abuOaetiA8IGJvb2tzaGVsZjsKK+acieaViCA8IGVmZmVjdGl2ZTsKK+e8veebgiA8IGFsbXNcLWJvd2w7Civnn7PngbDnn7MgPCBsaW1lc3RvbmU7Civos4fliqkgPCBzdWJzaWRpemU7Civmrbflj7LlrbjlrrYgPCBoaXN0b3JpYW47Civkv67pgZPpmaIgPCBtb25hc3Rlcnk7CivkuIrmrKEgPCBsYXN0XC10aW1lOwor5pyb6YGg6Y+hIDwgdGVsZXNjb3BlOwor5pO66Kit5YWSIDwgb3JuYW1lbnRzOwor5LqU5aSpIDwgZml2ZVwtZGF5czsKK+W/g+mdiOS4iiA8IHNwaXJpdHVhbDsKK+aXgeingCA8IHNwZWN0YXRvcjsKK+WgheW/jeS4jeaLlCA8IGZvcnRpdHVkZTsKK+S7i+WFpSA8IGludGVydmVuZTsKK+S7peS4iiA8IG1vcmVcLXRoYW47Civnn5vpoK0gPCBzcGVhcmhlYWQ7CivlpKLpgbogPCB3ZXRcLWRyZWFtOwor5aSp5paH5a24IDwgYXN0cm9ub215Owor5be05q+U5aalIDwgYmFyYml0b25lOwor5rOi5q61IDwgd2F2ZVwtYmFuZDsKK+mboumWiyA8IHRvXC1kZXBhcnQ7Civlr6bos6rkuIogPCB2aXJ0dWFsbHk7CivlkJDmsKMgPCBhc3BpcmF0ZWQ7CivmnbHljZcgPCBzb3V0aGVhc3Q7CivlpYfop4AgPCBzcGVjdGFjbGU7CivmlLnpnakgPCB0b1wtcmVmb3JtOwor5oSb5ZyLIDwgcGF0cmlvdGljOwor5LiN5pa3IDwgdW5jZWFzaW5nOwor5pyq5amaIDwgdW5tYXJyaWVkOwor5byx6YW4IDwgd2Vha1wtYWNpZDsKK+S5mOWuoiA8IHBhc3NlbmdlcjsKK+mFjee9riA8IHRvXC1kZXBsb3k7CivlpLHoqr8gPCBpbWJhbGFuY2U7CivmnKzlo5ggPCBob21lXC1iYXNlOwor5Lq65LqLIDwgcGVyc29ubmVsOwor5pyJ5oSP6K2YIDwgY29uc2Npb3VzOwor5pu45bqXIDwgYm9va3N0b3JlOwor5Y+X5a6z6ICFIDwgY2FzdWx0aWVzOwor5LiN5a6M576OIDwgZGVmZWN0aXZlOwor5Y+45qmfIDwgY2hhdWZmZXVyOwor5p2x5LqeIDwgZWFzdFwtYXNpYTsKK+WQiOagvCA8IHF1YWxpZmllZDsKK+aDhee3kuWMliA8IGVtb3Rpb25hbDsKK+iAkOWKmyA8IGVuZHVyYW5jZTsKK+aUr+aMgeiAhSA8IHN1cHBvcnRlcjsKK+aYjueiuiA8IGNsZWFyXC1jdXQ7CivkuI3mg5wgPCBub3RcLXN0aW50Owor5YCf5pu45ZauIDwgYm9va1wtc2xpcDsKK+S4u+WppiA8IGhvdXNld2lmZTsKK+ihqOaEj+aWh+WtlyA8IGlkZW9ncmFwaDsKK+mAmuiyqOiGqOiEuSA8IGluZmxhdGlvbjsKK+eOqeWFtyA8IHBsYXl0aGluZzsKK+mbu+ipsSA8IHRlbGVwaG9uZTsKK+aWveiCpSA8IGZlcnRpbGl6ZTsKK+esrOWFq+WNgSA8IGVpZ2h0aWV0aDsKK+mHjOeoi+eikSA8IG1pbGVzdG9uZTsKK+S4jeW3siA8IGVuZGxlc3NseTsKK+mbnOiyqCA8IGdyb2NlcmllczsKK+acqOWMoCA8IGNhcnBlbnRlcjsKK+mGrOayuSA8IHNveVwtc2F1Y2U7CivkuI3mg4XpoZggPCB1bndpbGxpbmc7Civop7jprJogPCB0ZW50YWNsZXM7CivkuIvlrprnvqkgPCB0b1wtZGVmaW5lOwor5pOm6Z+zIDwgZnJpY2F0aXZlOwor5ZGo5ZyNIDwgZW5jb21wYXNzOwor5bCN5LiN6LW3IDwgaScnbVwtc29ycnk7CivkuI3lsI0gPCBpbmNvcnJlY3Q7Civlv4Pnm64gPCBtZW50YWxpdHk7Civlj6/mlawgPCB2ZW5lcmFibGU7CivlpKfojbMgPCBzb3lhXC1iZWFuOwor8KKlniA8IHNhbWVcLWFzXC3lv6E7CivlgYfosaHniZkgPCBjZWxsdWxvaWQ7CivpmY3okL3lgpggPCBwYXJhY2h1dGU7Civms6LluYUgPCBhbXBsaXR1ZGU7Civlj7PmiYsgPCByaWdodGhhbmQ7CivmtYHlhaUgPCBmbG93XC1pbnRvOwor5rOo5bCEIDwgaW5qZWN0aW9uOwor56Gs55ukIDwgaGFyZFwtZGlzazsKK+WKn+iqsiA8IGNsYXNzd29yazsKK+mAsemVtyA8IHBlcmltZXRlcjsKK+izvOiyt+iAhSA8IHB1cmNoYXNlcjsKK+Wkp+aVmeWggiA8IGNhdGhlZHJhbDsKK+e1hOe5lOiAhSA8IG9yZ2FuaXplcjsKK+WpmuWnuyA8IG1hdHJpbW9ueTsKK+S4jeWcqCA8IG5vdFwtYmVcLWluOwor5LiZ56iu5bCE57eaIDwgZ2FtbWFcLXJheTsKK+mereavmyA8IGZsYWdlbGx1bTsKK+aSq+mkiiA8IHRvXC1mb3N0ZXI7CivliKrpmaQgPCB0b1wtZGVsZXRlOwor6YGg6LazIDwgZXhjdXJzaW9uOwor54Sh6ZmQIDwgdW5saW1pdGVkOwor6aCR5by3IDwgdGVuYWNpb3VzOwor54Sh6ZecIDwgdW5yZWxhdGVkOwor6JK455m8IDwgZXZhcG9yYXRlOwor5Y+k5oCqIDwgZWNjZW50cmljOwor5b6X55W2IDwgZXhwZWRpZW50Owor5rK55biDIDwgdGFycGF1bGluOwor5LiL5ZSHIDwgbG93ZXJcLWxpcDsKK+S4iuWUhyA8IHVwcGVyXC1saXA7CivogZbov63lk6UgPCBzYW5cLWRpZWdvOwor6aCB5b+DIDwgdHlwZVwtcGFnZTsKK+axoeafkyA8IHBvbGx1dGlvbjsKK+aEj+awo+ebuOaKlSA8IGNvbmdlbmlhbDsKK+mVt+aWueW9oiA8IHJlY3RhbmdsZTsKK+WJjemAlCA8IHByb3NwZWN0czsKK+eGiuicgiA8IGJ1bWJsZWJlZTsKK+e4vee1kCA8IHN1bW1hcml6ZTsKK+WQuOWPliA8IHRvXC1hYnNvcmI7CivpgLHpgoogPCBwZXJpcGhlcnk7CivlubTpmZAgPCBhZ2VcLWxpbWl0Owor5LiL5YiXIDwgZm9sbG93aW5nOwor6aGM5ZCNIDwgYXV0b2dyYXBoOwor5aSa56uvIDwgbXVsdGlwb3J0Owor5pWI6IO9IDwgZWZmaWNpZW50Owor54Gw542154qsIDwgZ3JleWhvdW5kOwor542y5pq05Yip6ICFIDwgcHJvZml0ZWVyOwor5LiN5YGcIDwgaW5jZXNzYW50Owor5aSn56CyIDwgYXJ0aWxsZXJ5Owor5LiN5YC8IDwgbm90XC13b3J0aDsKK+aymeWyqSA8IHNhbmRzdG9uZTsKK+azouWPiiA8IHNwcmVhZFwtdG87Civlvq7ms6IgPCBtaWNyb3dhdmU7CivnhKHovpwgPCBpbm5vY2VuY2U7CivmrKHopoEgPCBzZWNvbmRhcnk7CivkuI3kuoggPCBub3RcLWdyYW50Owor5Y675bm0IDwgbGFzdFwteWVhcjsKK+S4jeS6hiA8IHVuYWJsZVwtdG87Civpn4zmgKcgPCB0b3VnaG5lc3M7CivniYjmrIogPCBjb3B5cmlnaHQ7CivlkJHljZcgPCBzb3V0aHdhcmQ7CivmsJHmrYwgPCBmb2xrXC1zb25nOwor5Y2z5pmCIDwgaW1tZWRpYXRlOwor57+S5oWj5oCnIDwgY3VzdG9tYXJ5Owor5bm46YGLIDwgZm9ydHVuYXRlOwor576O5LitIDwgdXNhXC1jaGluYTsKK+eGn+e3tCA8IHByYWN0aWNlZDsKK+W/tSA8IHRoaW5rXC1vZjsKK+S8miA8IGFzc2VtYmxlOwor5a2mIDwgbGVhcm5pbmc7CivlvpIgPCBkaXNjaXBsZTsKK+edpiA8IGZyaWVuZGx5Owor5pegIDwgbmVnYXRpdmU7CivmlrkgPCBhXC1zcXVhcmU7CivliY0gPCBpblwtZnJvbnQ7CivnnIkgPCBleWVicm93czsKK+ecgSA8IHByb3ZpbmNlOwor55u0IDwgc3RyYWlnaHQ7Civlu6IgPCBhYnJvZ2F0ZTsKK+ebmyA8IGFidW5kYW50Owor6LuSIDwgY2FycmlhZ2U7CivlhaggPCBtYWludGFpbjsKK+W7iiA8IGNvcnJpZG9yOwor55q6IDwgd3JpbmtsZXM7CivlurcgPCBwZWFjZWZ1bDsKK+mXtCA8IG1pZHBvaW50Owor6LqKIDwgaGVzaXRhdGU7CivnrKwgPCBzZXF1ZW5jZTsKK+W5uyA8IGlsbHVzaW9uOwor55mHIDwgZXBpbGVwc3k7CivlsbEgPCBtb3VudGFpbjsKK+W3viA8IGtlcmNoaWVmOwor5benIDwgc2tpbGxmdWw7Civot50gPCBkaXN0YW5jZTsKK+eVjCA8IGJvdW5kYXJ5Owor5Lu7IDwgdHJ1c3RcLXRvOwor5Y+wIDwgcGxhdGZvcm07CivosaEgPCBlbGVwaGFudDsKK+mimCA8IGZvcmVoZWFkOwor6LOiIDwgdmlydHVvdXM7Civos4cgPCBwcm9wZXJ0eTsKK+iyvCA8IHBhc3RlXC10bzsKK+iyuyA8IGV4cGVuc2VzOwor5bGlIDwgZm9vdHdlYXI7CivmraYgPCBtaWxpdGFyeTsKK+eQsiA8IG5lY2tsYWNlOwor5bCgIDwgdmVyeVwtZmV3Owor5a6MIDwgY29tcGxldGU7CivljbMgPCBwcm9tcHRseTsKK+WvtSA8IGZhdm9yaXRlOwor6K+tIDwgbGFuZ3VhZ2U7Civnj40gPCBwcmVjaW91czsKK+WVhiA8IGNvbW1lcmNlOwor5a6dIDwgdHJlYXN1cmU7CivljYMgPCB0aG91c2FuZDsKK+WunCA8IHN1aXRhYmxlOwor5a6YIDwgb2ZmaWNpYWw7Civnq5kgPCBzdGFuZFwtdXA7CivorawgPCBtZXRhcGhvcjsKK+mmmSA8IGZyYWdyYW50Owor5Ly8IDwgcmVzZW1ibGU7CivlrKIgPCB0cm91YmxlZDsKK+iZvSA8IGFsdGhvdWdoOwor5LiUIDwgbW9yZW92ZXI7CivosIMgPCB0cmFuc2ZlcjsKK+WriSA8IGplYWxvdXN5Owor54uDIDwgdG9cLWNvdmV0Owor5auBIDwgdG9cLW1hcnJ5Owor5aqaIDwgY2hhcm1pbmc7CivoqpggPCBwZXJzdWFkZTsKK+iqhCA8IGV1bG9naXplOwor6KmzIDwgZGV0YWlsZWQ7CivoqbAgPCBxdWVzdGlvbjsKK+aDiiA8IGZyaWdodGVuOwor5pSvIDwgZGlzcGVyc2U7CivnqoEgPCBzdWRkZW5seTsKK+iplSA8IGFwcHJhaXNlOwor5aigIDwgcHJlZ25hbnQ7Civlj6UgPCBzZW50ZW5jZTsKK+aYviA8IG1hbmlmZXN0Owor5aKeIDwgaW5jcmVhc2U7CivmlpkgPCBjb25zaWRlcjsKK+WmiiA8IGNvbmNlaXZlOwor57utIDwgY29udGludWU7Civngq0gPCBjaGFyY29hbDsKK+WbtCA8IHN1cnJvdW5kOwor54G9IDwgY2FsYW1pdHk7CivloZogPCBjZW1ldGVyeTsKK+eAlSA8IGFwcHJvYWNoOwor5r+6IDwgc3ByaW5rbGU7Civmv68gPCB3YXNoXC1vdXQ7CivlnqMgPCBsb3dcLXdhbGw7CivkuaAgPCBwcmFjdGljZTsKK+WegiA8IGxldFwtZG93bjsKK+WdgiA8IGhpbGxzaWRlOwor56WWIDwgYW5jZXN0b3I7CivkvJggPCBzdXBlcmlvcjsKK+a7ryA8IGJsb2NrXC11cDsKK+a6oiA8IG92ZXJmbG93Owor5ripIDwgbHVrZXdhcm07CivomoogPCBtb3NxdWl0bzsKK+m5uCA8IGFsa2FsaW5lOwor5ZmqIDwgYmVcLW5vaXN5Owor5ZiyIDwgcmlkaWN1bGU7CivmuJsgPCBkZWNyZWFzZTsKK+WYlCA8IHRvXC12b21pdDsKK+aBqSA8IGtpbmRuZXNzOwor6ISxIDwgdGFrZVwtb2ZmOwor5ra4IDwgZHJpZWRcLXVwOwor5ZaqIDwgbW91cm5pbmc7CivlpZQgPCBydW5cLWZhc3Q7CivmtowgPCBzdXJnZVwtdXA7CivnpoEgPCByZXN0cmljdDsKK+a1riA8IHRvXC1mbG9hdDsKK+S6kiA8IG11dHVhbGx5Owor5pCeIDwgdG9cLWNsZWFyOwor5pyxIDwgY2lubmFiYXI7Civln58gPCBkaXN0cmljdDsKK+adkCA8IG1hdGVyaWFsOwor5YG3IDwgdG9cLXN0ZWFsOwor6JOJIDwgaGliaXNjdXM7Civmir0gPCBkcmF3XC1vdXQ7Civku6ogPCBjZXJlbW9ueTsKK+WNuCA8IGxheVwtZG93bjsKK+W/hiA8IHJlbWVtYmVyOwor6ZqUIDwgc2VwYXJhdGU7CivljZMgPCBwcm9mb3VuZDsKK+aNnyA8IGRpbWluaXNoOwor6IyEIDwgZWdncGxhbnQ7Civli78gPCBtdXN0XC1ub3Q7Civpq60gPCBtdXN0YWNoZTsKK+mBpSA8IGZhclwtYXdheTsKK+armyA8IGNvbWJcLW91dDsKK+W4gSA8IGN1cnJlbmN5Owor5YuJIDwgZW5kZWF2b3I7CivpqrggPCBza2VsZXRvbjsKK+WKqiA8IHRvXC1leGVydDsKK+iQjSA8IGR1Y2t3ZWVkOwor5qiFIDwgZmlyXC10cmVlOwor57ypIDwgY29udHJhY3Q7Civoh6UgPCBsaWVcLWRvd247CivmhZUgPCBsb25nXC1mb3I7Civoh6MgPCBtaW5pc3RlcjsKK+aMoSA8IG9ic3RydWN0Owor6IacIDwgbWVtYnJhbmU7CivmppsgPCBoYXplbG51dDsKK+S/iiA8IHRhbGVudGVkOwor5p6dIDwgYnJhbmNoZXM7CivpmbcgPCBzdWJtZXJnZTsKK+WLkiA8IHN0cmFuZ2xlOwor6IGKIDwgc29tZXdoYXQ7Civpo74gPCBkZWNvcmF0ZTsKK+aWnCA8IHNsYW50aW5nOwor5paQIDwgZ3JhY2VmdWw7Civmop8gPCBvd2xcLXRodXM7CivlgpggPCB1bWJyZWxsYTsKK+S6rSA8IHBhdmlsaW9uOwor5rObIDwgdG9cLWRyaWZ0Owor56ymIDwgaVwuZFwuXC10YWc7CivlhYEgPCB0b1wtZ3JhbnQ7Civot6ggPCBzdHJhZGRsZTsKK+aOqSA8IHRvXC1jb3ZlcjsKK+mggyA8IGFcLW1vbWVudDsKK+aftCA8IGZpcmV3b29kOwor5L+vIDwgYm93XC1kb3duOwor5L+lIDwgcmlja3NoYXc7CivpgrsgPCBuZWlnaGJvcjsKK+mpviA8IHRvXC1kcml2ZTsKK+e+niA8IGRpc2dyYWNlOwor6KOkIDwgdHJvdXNlcnM7CivkvLAgPCBtZXJjaGFudDsKK+memCA8IHNjYWJiYXJkOwor5ZKQIDwgaW5zdHJ1Y3Q7CivmgZIgPCBjb25zdGFudDsKK+eznyA8IHNlZGltZW50Owor5omuIDwgZHJlc3NcLXVwOwor5pucIDwgZ2xvcmlvdXM7CivmmqIgPCBzbW9vdGhseTsKK+aKvCA8IG1vcnRnYWdlOwor5oiaIDwgcmVsYXRpdmU7CivnqYYgPCBtYWplc3RpYzsKK+WYuyA8IG1pcnRoZnVsOwor5LimIDwgZXF1YWxcLXRvOwor5piUIDwgZm9ybWVybHk7Civpl5ggPCBzdHJ1Z2dsZTsKK+eeqiA8IHN0YXJlXC1hdDsKK+aWpSA8IHRvXC1zY29sZDsKK+WJqiA8IHNjaXNzb3JzOwor5aeaIDwgaGFuZHNvbWU7Civmjo8gPCB0YWtlXC1vdXQ7CivplpMgPCBpbnRlcnZhbDsKK+aDuSA8IGlycml0YXRlOwor57C/IDwgcmVnaXN0ZXI7CivoircgPCBhbmdlbGljYTsKK+ejgSA8IG1hZ25ldGljOwor5q+FIDwgcmVzb2x1dGU7CivnrKUgPCBhXC1oYW1wZXI7Civmi5ggPCByZXN0cmFpbjsKK+S8kCA8IGN1dFwtZG93bjsKK+eriiA8IHNlY3JldGx5Owor6YqYIDwgaW5zY3JpYmU7CivmhIkgPCBwbGVhc2FudDsKK+eqnCA8IHJ1blwtYXdheTsKK+WvqCA8IHN0b2NrYWRlOwor5oi7IDwgcGVydmVyc2U7CivmsqogPCBzaGFuZ2hhaTsKK+mHnCA8IGNhdWxkcm9uOwor5ZekIDwgbGF1Z2hcLWF0Owor5aixIDwgcGxlYXN1cmU7CivnpoQgPCBibGVzc2luZzsKK+aElSA8IHN0YXJ0bGVkOwor5ZWhIDwgbW9ycGhpbmU7Civlm5ogPCBwcmlzb25lcjsKK+i0piA8IGFjY291bnRzOwor55O3IDwgY3JvY2tlcnk7CivohaUgPCByYXdcLW1lYXQ7CivlkrggPCB0b2dldGhlcjsKK+eWqyA8IGVwaWRlbWljOwor5ZWqIDwgc3lsbGFibGU7CivohqggPCB0b1wtc3dlbGw7CivlkLEgPCBjaGlycGluZzsKK+iPjCA8IG11c2hyb29tOwor55CQIDwgdHJpZmxpbmc7Civoi58gPCBjYXJlbGVzczsKK+W0myA8IHRvd2VyaW5nOwor5Ye4IDwgcHJvdHJ1ZGU7CivlmIAgPCBiYWNrYml0ZTsKK+mTkCA8IHNoYWNrbGVzOwor6LCVIDwgcHJvY2xhaW07Civov7ggPCBndXNoXC1vdXQ7CivliZQgPCBwaWNrXC1vdXQ7CivlhoAgPCBob3BlXC1mb3I7CivnoJogPCBpbmtzdG9uZTsKK+aNjSA8IHdhcmRcLW9mZjsKK+iHgCA8IGJ1dHRvY2tzOwor5YCUIDwgc3R1YmJvcm47CivlpYQgPCBlcmVcLWxvbmc7CivkvqUgPCBiZVwtbHVja3k7CivmorUgPCBidWRkaGlzdDsKK+ikpSA8IG1hdHRyZXNzOwor5pmWIDwgc3Vuc2hpbmU7CivnlbQgPCBmYXJtbGFuZDsKK+eenyA8IGdsYXJlXC1hdDsKK+eYuCA8IGxhbWVuZXNzOwor5r6OIDwgc3BsYXR0ZXI7CivmvaYgPCB0b1wtZmxvb2Q7CivlgY4gPCBjbGluZ1wtdG87CivonY4gPCBzY29ycGlvbjsKK+ewuCA8IHdpbm5vd2VyOwor5bq2IDwgbnVtZXJvdXM7CivmkoIgPCBwdXRcLWRvd247CivmmZcgPCBwcmVcLWRhd247CivouYogPCBmb290cGF0aDsKK+mYiSA8IGNhc3RyYXRlOwor5reGIDwgY29uZnVzZWQ7CivokKYgPCBlbnRhbmdsZTsKK+amhiA8IGVsbVwtdHJlZTsKK+eMnSA8IGFicnVwdGx5Owor5pumIDwgc3VubGlnaHQ7CivmuKQgPCBzd2VsbGluZzsKK+i+mCA8IHdpbmRsYXNzOwor6ZOdIDwgYWx1bWludW07CivmjYsgPCB0b1wtcGx1Y2s7CivombsgPCBob3JzZWZseTsKK+eejCA8IGRvemVcLW9mZjsKK+S6nyA8IHVyZ2VudGx5Owor5b6oIDwgZG91YnRmdWw7CivllZAgPCB0b1wtdGFzdGU7Civpla8gPCBicmFjZWxldDsKK+WIvSA8IGFtcHV0YXRlOwor6Je7IDwgc3BsZW5kaWQ7Civmg7AgPCBpbmRvbGVudDsKK+eHlCA8IHRvXC1yb2FzdDsKK+a2nSA8IGludW5kYXRlOwor57ubIDwgZGVlcFwtcmVkOwor5rCvIDwgY2hsb3JpbmU7CivlnY0gPCBjb2xsYXBzZTsKK+W/kCA8IHRpbW9yb3VzOwor5q6hIDwgZW5jb2ZmaW47CivmmLUgPCBpbnRpbWF0ZTsKK+S/nyA8IHdhaXRcLWZvcjsKK+ahoiA8IGhhcmR3b29kOwor6buPIDwgc3RpY2tcLXRvOwor55eYIDwgc21hbGxwb3g7Civmp58gPCBiZXRlbG51dDsKK+mfrSA8IHNjYWxsaW9uOwor6JSrIDwgd2l0aGVyZWQ7CivohoIgPCBiYWNrYm9uZTsKK+iDqyA8IHNoaW5ib25lOwor6IeDIDwgc3dlbGxcLXVwOwor5bKMIDwgcGVyaWxvdXM7Civnjo4gPCBqaW5nbGluZzsKK+mavCA8IGFxdWlsaW5lOwor6ZmyIDwgZnJvbnRpZXI7CivosLYgPCBwcm9waGVjeTsKK+WBuyA8IGh1bXBiYWNrOwor6ZOCIDwgcGxhdGludW07CivnupsgPCBhXC1iYW5uZXI7Civpk6wgPCBjaHJvbWl1bTsKK+iDsCA8IHBhbmNyZWFzOwor6KaDIDwgcmVhY2hcLXRvOwor552+IDwgdGVzdGljbGU7CivlgKggPCBhcnJvZ2FudDsKK+iuoyA8IG9iaXR1YXJ5Owor6ZKbIDwgdGl0YW5pdW07CivmtYMgPCBzYXR1cmF0ZTsKK+aXliA8IHJvbWFudGljOwor57yZIDwgcmVkXC1zaWxrOwor6KG+IDwgY292ZXJsZXQ7CivlrrggPCBpbXBlcmlhbDsKK+S9niA8IGZsYXR0ZXJ5Owor6JuUIDwgdGFwZXdvcm07CivmsIUgPCBvdmVyY29hdDsKK+awnyA8IGZsdW9yaW5lOwor5rCwIDwgY3lhbm9nZW47Civpsp8gPCBzdHVyZ2VvbjsKK+ehkiA8IHNlbGVuaXVtOwor6IioIDwgYVwtc2FtcGFuOwor54OKIDwgdG9cLXNtZWx0Owor6JCxIDwgZGF5XC1saWx5Owor55a4IDwgamF1bmRpY2U7Civpk4ogPCB0aGFsbGl1bTsKK+ivgiA8IGV4ZWdlc2lzOwor6ZuJIDwgcGhlYXNhbnQ7CivpoqIgPCBsdW1pbm91czsKK+aggCA8IGdhcmRlbmlhOwor6K+SIDwgYmVxdWVhdGg7Civpop8gPCBkYXdkbGluZzsKK+iLiyA8IGFtYXJhbnRoOwor54CjIDwgc2VhXC1taXN0Owor566dIDwgdHdlZXplcnM7Civmpa4gPCBtdWxiZXJyeTsKK+mBhCA8IHRvXC1odXJyeTsKK+mSkiA8IHZhbmFkaXVtOwor6Iu3IDwgbGljb3JpY2U7CivpkqggPCB0dW5nc3RlbjsKK+WfuCA8IGFcLWJvcmRlcjsKK+WrkiA8IGRhdWdodGVyOwor55mcIDwgZXJ5dGhlbWE7CivpuLkgPCB0aGVcLWNyb3c7Civmm5sgPCB0d2lsaWdodDsKK+mqmCA8IHN0YWxsaW9uOwor5Z27IDwgYW5cLWlzbGV0Owor6KerIDwgdG9cLXN0YXJ0Owor6ZO1IDwgYW1tb25pdW07CivmsKkgPCBhcmdvbml1bTsKK+WNoyA8IHdpbmVcLXBvdDsKK+mUkSA8IGFudGltb255Owor6YabIDwgYWxkZWh5ZGU7Civpkr0gPCB0YW50YWx1bTsKK+egvCA8IGNvbmNyZXRlOwor54aYIDwgdG9cLXN0ZWFtOwor56qoIDwgYVwtY2VsbGFyOwor5qCyIDwgbWFuZ3JvdmU7CivpsqMgPCBza2lwamFjazsKK+mTtyA8IHJ1YmlkaXVtOwor6ZOVIDwgZXVyb3BpdW07CivpkosgPCBwb2xvbml1bTsKK+egkSA8IHRvXC1ncmluZDsKK+a0qyA8IHRvXC1kaXRjaDsKK+WfmiA8IGNydWNpYmxlOwor5Z6kIDwgYW50XC1oaWxsOwor5Y26IDwgd2luZWN1cHM7CivlmI8gPCBmZWxpY2l0eTsKK+myvSA8IGZsYXRmaXNoOwor6bKtIDwgbWFja2VyZWw7CivpkqogPCBzY2FuZGl1bTsKK+mSqyA8IGZyYW5jaXVtOwor6ZKQIDwgc2FtYXJpdW07CivnpZMgPCBleG9yY2lzZTsKK+agsyA8IGFcLWJhc2tldDsKK+WQsiA8IHNtaWxlXC1hdDsKK+iOsCA8IGNhbXBoYW5lOwor6Iq0IDwgZmx1b3JlbmU7CivotZwgPCBhYnN0cnVzZTsKK+aUuee3qCA8IHRvXC1hZGFwdDsKK+eZveWFp+manCA8IGNhdGFyYWN0Owor5aOT57eKIDwgY29tcHJlc3M7CivphqvlrbggPCBtZWRpY2luZTsKK+WQnuS9tSA8IHRvXC1hbm5leDsKK+mdiOa0uyA8IGZsZXhpYmxlOwor5aSn56+36LuKIDwgc2Nob29uZXI7CivmlofnjbsgPCBkb2N1bWVudDsKK+WklueUqCA8IGV4dGVybmFsOwor55uj6K235Lq6IDwgZ3VhcmRpYW47Civpgornt5ogPCBzaWRlbGluZTsKK+ato+e1sSA8IG9ydGhvZG94Owor5pav5rSb5LyQ5YWLIDwgc2xvdmFraWE7CivpoLvku40gPCBmcmVxdWVudDsKK+e3r+e3miA8IGxhdGl0dWRlOwor5LiN5ZCI6YGpIDwgaW1wcm9wZXI7CivnhKHoqqQgPCB2ZXJpZmllZDsKK+aXpeabhiA8IGNhbGVuZGFyOwor5Ymd6JC9IDwgcGVlbFwtb2ZmOwor6aCQ5Y2cIDwgZm9yZXRlbGw7CivorLnmhY4gPCBjYXV0aW91czsKK+iMtumkqCA8IHRlYWhvdXNlOwor5LyB5qWt6ZaT57ay6LevIDwgZXh0cmFuZXQ7Civop4Dlr5/ogIUgPCBvYnNlcnZlcjsKK+mzpeexoCA8IGJpcmRjYWdlOwor5bu656+JIDwgYnVpbGRpbmc7Civol6XlipHlo6sgPCBkcnVnZ2lzdDsKK+S4jeS/oeS7uyA8IG1pc3RydXN0Owor5bu656uLIDwgY3JlYXRpb247Civlm6DnibnntrIgPCBpbnRlcm5ldDsKK+W/g+aJiyA8IG5ld1wtaGFuZDsKK+WGsOmamSA8IGNyZXZhc3NlOwor6Zy45qyKIDwgaGVnZW1vbnk7CivljbHmgKUgPCBjcml0aWNhbDsKK+mamee4qyA8IGFwZXJ0dXJlOwor5bCN56ix5oCnIDwgc3ltbWV0cnk7CivopqrouqsgPCBwZXJzb25hbDsKK+eiuuWumiA8IGRlZmluaXRlOwor5qqi5ris5ZmoIDwgZGV0ZWN0b3I7CivntYLouqsgPCBsaWZlbG9uZzsKK+mtlOihk+W4qyA8IG1hZ2ljaWFuOwor6KiY6ICFIDwgcmVwb3J0ZXI7Civopo/pgb8gPCB0b1wtZXZhZGU7CivniafluKsgPCBjaGFwbGFpbjsKK+aUtuebiiA8IGVhcm5pbmdzOwor5bmz6KGMIDwgcGFyYWxsZWw7Civlv6Dlr6YgPCBmYWl0aGZ1bDsKK+atpeeZvCA8IGZvb3R3b3JrOwor5YiG6KOCIDwgc3BsaXRcLXVwOwor5paw5pu4IDwgbmV3XC1ib29rOwor5LiN5py955qEIDwgaW1tb3J0YWw7Civlj6PkuqQgPCBvcmFsXC1zZXg7CivlibXnq4sgPCB0b1wtZm91bmQ7CivnhaTnrrEgPCBjb2FsXC1ib3g7CivmsrnngrjlnIjppIUgPCBkb3VnaG51dDsKK+e8uuS5jyA8IHNob3J0YWdlOwor5pel5b6MIDwgc29tZXRpbWU7Civmrbflj7LmgKcgPCBoaXN0b3JpYzsKK+WboO+5jeS5i+aVhSA8IGluYXNtdWNoOwor54G96ZujIDwgZGlzYXN0ZXI7CivlvrnlupUgPCB0aG9yb3VnaDsKK+aquOaqrOawtCA8IGxlbW9uYWRlOwor6bGJ6KOZIDwgY2FsaXBhc2g7Civorablj6UgPCBhcGhvcmlzbTsKK+aXqeW3siA8IGxvbmdcLWFnbzsKK+egtOabiSA8IGRheWJyZWFrOwor6Zuo5ru0IDwgcmFpbmRyb3A7Civku6XlpKrntrIgPCBldGhlcm5ldDsKK+aYjuWkqSA8IHRvbW9ycm93Owor5aaW5a29IDwgZXZpbGRvZXI7Civpm7vmsKMgPCBlbGVjdHJpYzsKK+mFrOWgsSA8IHRvXC1yZXBheTsKK+iyoOmHjeaTlCA8IGJ1cmRlbmVkOwor6YG655SiIDwgaGVyaXRhZ2U7CivnoazluqYgPCBoYXJkbmVzczsKK+eEoeiBiiA8IG5vbnNlbnNlOwor5qmr6YGOIDwgdHJhdmVyc2U7Civpm43lrrnlpKfluqYgPCBnZW5lcm91czsKK+W+geaIsCA8IGNhbXBhaWduOwor6Kqy5pysIDwgdGV4dGJvb2s7Civlh4vorJ0gPCBsYW5ndWlzaDsKK+WNgeS6jOaciCA8IGRlY2VtYmVyOwor6KiI566XIDwgdG9cLWNvdW50Owor6ZaL6ZmkIDwgdG9cLWV4cGVsOwor57qW5benIDwgZGVsaWNhdGU7Civmk6bntrLnkIMgPCBuZXRcLWJhbGw7CivnhKHnuKsgPCBzZWFtbGVzczsKK+WGoOi7jSA8IGNoYW1waW9uOwor5YeG6KixIDwgdG9cLWFsbG93Owor6Zu75qKvIDwgZWxldmF0b3I7Civok4vlsaQgPCBjYXBcLXJvY2s7CivpnaLlsI0gPCBjb25mcm9udDsKK+eEoee3miA8IHdpcmVsZXNzOwor6IGW5L+d576FIDwgc3RcLlwtcGF1bDsKK+mAmue0hSA8IHZlcnlcLXJlZDsKK+WMheaKhCA8IG91dGZsYW5rOwor6L6o6KqNIDwgaWRlbnRpZnk7Civljp/kvoYgPCBvcmlnaW5hbDsKK+WlveWlveWFkuWcsCA8IHByb3Blcmx5Owor5aSa5pW4IDwgbWFqb3JpdHk7Civnianlk4EgPCBhcnRpY2xlczsKK+aUv+ayuyA8IHBvbGl0aWNzOwor5Y2K5aScIDwgbWlkbmlnaHQ7CivmlrDlubQgPCBuZXdcLXllYXI7Civml4XlrqIgPCB0cmF2ZWxlcjsKK+mAvOecnyA8IGxpZmVsaWtlOwor6aiO5aOr5rCj5qaCIDwgY2hpdmFscnk7Civopb/oo6HniL4gPCBjeXJpbGxpYzsKK+WFrOmHkCA8IGRlY2lncmFtOwor5q665oiuIDwgbWFzc2FjcmU7Civoib7lvrfolb7lvrcgPCBhZGVsYWlkZTsKK+WKm+awoyA8IHN0cmVuZ3RoOwor5YWn6YOoIDwgaW50ZXJpb3I7CivnuaHluLcgPCB0YXBlc3RyeTsKK+WkquW/mSA8IHRvb1wtYnVzeTsKK+edoeecoCA8IHNsZWVwaW5nOwor5Y2B5ZubIDwgZm91cnRlZW47CivluLjlnZDmsb3ou4rogIUgPCBtb3RvcmlzdDsKK+W5s+etiSA8IGVxdWFsaXR5Owor5YyF5bGkIDwgY2xhZGRpbmc7Civmsb3ou4rlsZXopr3mnIMgPCBjYXJcLXNob3c7Civlho3oposgPCBnb29kXC1ieWU7Civlj6/mk6blr6sgPCBlcmFzYWJsZTsKK+WFjeiyu+i7n+S7tiA8IGZyZWV3YXJlOwor5Y2x5LqhIDwgYXRcLXN0YWtlOwor5ben6KiIIDwgbWFuZXV2ZXI7CivokZfmiYsgPCBjb21tZW5jZTsKK+ahg+iKseW/g+acqCA8IG1haG9nYW55Owor55uy6IW4IDwgYXBwZW5kaXg7CivniafnvorogIUgPCBzaGVwaGVyZDsKK+aUr+afsSA8IG1haW5zdGF5Owor5b2i5a65IDwgZGVzY3JpYmU7CivnhKHnlpEgPCBub1wtZG91YnQ7CivlvLfmgo0gPCB2YWxsaWFudDsKK+eyl+mHjiA8IGluc29sZW50Owor6KKL6bygIDwga2FuZ2Fyb287Civou5/pq5QgPCBzb2Z0d2FyZTsKK+aWsOWeiyA8IG5ld1wtdHlwZTsKK+WfueiCsiA8IHRvXC10cmFpbjsKK+eFpOayuSA8IGtlcm9zZW5lOwor5Yqg5pmCIDwgb3ZlcnRpbWU7CivmqJnmupbopo/moLwgPCBzdGFuZGFyZDsKK+WFiei8nSA8IHJhZGlhbmNlOwor5b6p5YWDIDwgcmVjb3Zlcnk7CivljYHlhasgPCBlaWdodGVlbjsKK+WkmuWwkSA8IGhvd1wtbXVjaDsKK+WNgeWFiyA8IGRlY2FncmFtOwor5Zyw6Zu3IDwgbGFuZG1pbmU7CivlpoLku4ogPCBub3dhZGF5czsKK+mCquaDoSA8IHNpbmlzdGVyOwor54Sh6KuW5L2V5pmCIDwgd2hlbmV2ZXI7Civop4DnnIsgPCB0b1wtd2F0Y2g7CivlvpfliIYgPCB0b1wtc2NvcmU7CivnrYboqJjmnKwgPCBub3RlYm9vazsKK+i7gOmrlCA8IHRoZVwtYm9keTsKK+ehrOS7tiA8IGhhcmR3YXJlOwor5aSp5aCCIDwgcGFyYWRpc2U7CivolrDooaPojYkgPCBsYXZlbmRlcjsKK+WNgeS5nSA8IG5pbmV0ZWVuOwor5YWJ6K2cIDwgc3BlY3RydW07Civoo5zpgbogPCBhZGRlbmR1bTsKK+mBoOadsSA8IGZhclwtZWFzdDsKK+W5vuS5juaykuaciSA8IHNjYXJjZWx5Owor5Y2B5LiJIDwgdGhpcnRlZW47CivkuI3lv4XopoEgPCBuZWVkbGVzczsKK+apn+iDvSA8IGZ1bmN0aW9uOwor6JKZ5Y+kIDwgbW9uZ29saWE7CivniafluKvkuYvogbcgPCBtaW5pc3RyeTsKK+mBoOaZryA8IHByb3NwZWN0Owor57SQ57SEIDwgbmV3XC15b3JrOwor5o+Q6K2wIDwgcHJvcG9zYWw7CivpgLLmraUgPCBwcm9ncmVzczsKK+mbu+WgsSA8IHRlbGVncmFtOwor6KuL6aGY5pu4IDwgcGV0aXRpb247Civou4rplpMgPCB3b3Jrc2hvcDsKK+W+gOS+hiA8IGRlYWxpbmdzOwor5byV5bCOIDwgdG9cLWd1aWRlOwor6b6TIDwgYVwtaGFsdGVyOwor6KOd6LKoIDwgc2hpcHBpbmc7CivlipvluqYgPCBkeW5hbWlzbTsKK+aKleizh+iAhSA8IGludmVzdG9yOwor6YGO5pa8IDwgdG9vXC1tdWNoOwor6byaIDwgZHJ1bW1pbmc7Civnm6PnpoEgPCBpbXByaXNvbjsKK+WGsOeqliA8IGljZWhvdXNlOwor5aCC55qHIDwgaW1wb3Npbmc7Civpuq4gPCBwb3JyaWRnZTsKK+ecgeeVpSA8IG9taXNzaW9uOwor5YWt5Y2B5Zub6JCsIDwgNjRcLTBcLTAwMDsKK+WvhOeUn+eJqSA8IHBhcmFzaXRlOwor6IKv5aGU5Z+6IDwga2VudHVja3k7Civmr43kv4IgPCBtYXRlcm5hbDsKK+afrOWflOWvqCA8IGNhbWJvZGlhOwor6bWZIDwgYVwtc2hyaWtlOwor5o6h6LK3IDwgcHVyY2hhc2U7CivovJXoppYgPCBjb250ZW1wdDsKK+eyvuiHtCA8IGRlbGljYWN5Owor6bOuIDwgY2hpY2tlbnM7CivpgbLlu7YgPCB0b1wtZGVsYXk7CivpsrogPCBjYXRcLWZpc2g7CivmlJzluLYgPCB0b1wtY2Fycnk7Civlu7blsZUgPCB0b1wtc2NhbGU7Civpr7ogPCBibG93ZmlzaDsKK+S4gOWwj+aZgiA8IG9uZVwtaG91cjsKK+mDqOS9jSA8IHBvc2l0aW9uOwor6JKZ5omY576F5ouJIDwgbW90b3JvbGE7CivkurrooYzpgZMgPCBzaWRld2FsazsKK+msiyA8IGZvcmVsb2NrOwor6ayAIDwgdG9cLXNoYXZlOwor6au1IDwgd2hpc2tlcnM7Civlhafnva4gPCBpbnRlcm5hbDsKK+mZkOacnyA8IGRlYWRsaW5lOwor5a6J5YWo5oCnIDwgc2VjdXJpdHk7Civpq44gPCBoaXBcLWJvbmU7CivoqJjmhrYgPCBtZW1vcmllczsKK+mBt+WwsSA8IHRvXC15aWVsZDsKK+W8t+WLgSA8IHBvd2VyZnVsOwor5q665Lq6IDwgaG9taWNpZGU7Civlho3kv53oqLwgPCByZWFzc3VyZTsKK+mnpiA8IHRvXC1tb3VudDsKK+mmqSA8IGFyb21hdGljOwor5Lq65bel5rWB55SiIDwgYWJvcnRpb247CivliZvmgKcgPCByaWdpZGl0eTsKK+mkqyA8IGR1bXBsaW5nOwor6aSpIDwgaGljY291Z2g7CivppJ8gPCBsaWJhdGlvbjsKK+mkmSA8IHRvXC1hZG9ybjsKK+misSA8IHRhaXBob29uOwor5YuD5YuDIDwgdGhyaXZpbmc7Civmk4Hmk6AgPCB0b1wtY3Jvd2Q7CivmjojoqrIgPCB0b1wtdGVhY2g7Civop6PmlaMgPCBkaXNzb2x2ZTsKK+mfoSA8IGdvcmdlb3VzOwor6Z+gIDwga25lZVwtcGFkOwor6Zmw5oCnIDwgZmVtaW5pbmU7CivpnbogPCBzdG9ja2luZzsKK+WLleS9nCA8IG1vdmVtZW50Owor6Zue5bC+6YWSIDwgY29ja3RhaWw7Civmlabkv4MgPCB0b1wtcHJlc3M7CivpnKggPCBjbG91ZGluZzsKK+aphOaslueQgyA8IGZvb3RiYWxsOwor6ZuH5ZOhIDwgZW1wbG95ZWU7CivngInol6UgPCBsYXhhdGl2ZTsKK+aPm+e9riA8IGRpc3BsYWNlOwor5bmz5bqV6Y2LIDwgc2F1Y2VwYW47CivntIDlv7XnopEgPCBtb251bWVudDsKK+WcluisgCA8IGNvbnNwaXJlOwor6JGj5LqLIDwgZGlyZWN0b3I7Civli5XkurogPCB0b3VjaGluZzsKK+mYuCA8IGRpc3RyZXNzOwor6Zi75pOKIDwgdG9cLWNoZWNrOwor6KOc6IqxIDwgYXBwbGlxdWU7CivplaUgPCBsdXRldGl1bTsKK+Whl+aKuSA8IHRvXC1zbWVhcjsKK+ijneiIuSA8IHNoaXBtZW50Owor5qy65aOTIDwgdG9cLWJ1bGx5Owor6I2S5ra8IDwgZGVzb2xhdGU7Civlh7nmnb8gPCBpbnRhZ2xpbzsKK+WKo+WLoiA8IGluZmVyaW9yOwor5ZaH5Y+t5rC05LuZIDwgZGFmZm9kaWw7CivliIbmlbggPCBmcmFjdGlvbjsKK+Wjk+WKmyA8IHByZXNzdXJlOwor6YKj5YCLIDwgdGhhdFwtb25lOwor54Sh5oOFIDwgcGl0aWxlc3M7Civmk6blr6sgPCB0b1wtZXJhc2U7Civlo5PliLYgPCBzdXBwcmVzczsKK+eyvueiuiA8IGFjY3VyYXRlOwor6Y2pIDwgbm9iZWxpdW07CivpjZogPCBmcm9udGxldDsKK+S+teWFpeiAhSA8IGludHJ1ZGVyOwor57aT5bi4IDwgZXZlcnlkYXk7CivpjJIgPCBhY3Rpbml1bTsKK+aUuemdqeiAhSA8IHJlZm9ybWVyOwor5q2l5YW1IDwgaW5mYW50cnk7Civpio0gPCBhXC1zaWNrbGU7CivlubPmiL8gPCBidW5nYWxvdzsKK+WGsOa2vCA8IGljZVwtY29sZDsKK+S8gealreWFp+e2sui3ryA8IGludHJhbmV0Owor5bm75oOzIDwgZGVsdXNpb247Civluo/luZUgPCBwcm9sb2d1ZTsKK+mGhiA8IHdpbmVcLWN1cDsKK+mGgyA8IG1hcmluYXRlOwor6YWyIDwgaGFuZ292ZXI7CivphIggPCBzbGlwcGVyczsKK+mBv+WFjSA8IHRvXC1hdmVydDsKK+WgtOaJgCA8IGxvY2F0aW9uOwor6YKFIDwgaGVzaXRhbnQ7Civpm4fkuLsgPCBlbXBsb3llcjsKK+aPreeZvCA8IGRpc2Nsb3NlOwor6L+7IDwgdG9cLXNoaWZ0Owor5YKz6KiKIDwgc3VicG9lbmE7CivoqZXkvLAgPCBldmFsdWF0ZTsKK+aJi+aPkOeusSA8IHN1aXRjYXNlOwor5YG96YCgIDwgdG9cLWZvcmdlOwor54Gr54mGIDwgZmlyZXdhbGw7CivovYogPCBheGxlXC10aXA7CivovKwgPCBhXC1oZWFyc2U7Civlh7bmiYsgPCBtdXJkZXJlcjsKK+S4jeWQjOaEjyA8IGRpc2FncmVlOwor5YWx5ZKM5ZyLIDwgcmVwdWJsaWM7CivnhKHlrrMgPCBoYXJtbGVzczsKK+i7n+iGjyA8IG9pbnRtZW50Owor6Lm+IDwgdG9cLXNxdWF0Owor5o6M6IGyIDwgYXBwbGF1c2U7Civooajop4AgPCBhcHBhcmVudDsKK+i5pyA8IHRvXC1zcG9pbDsKK+Wfi+aykiA8IG9ibGl2aW9uOwor5bmz5bi4IDwgb3JkaW5hcnk7CivouKYgPCB0aGVcLXNoaW47Civmi5TpmaQgPCBwdWxsXC1vdXQ7Civlop7liqAgPCB0b1wtcmFpc2U7Civot4IgPCBjcmVlcGluZzsKK+eEoeirluS9leS6iyA8IGFueXRoaW5nOwor5pGp5pOmIDwgZnJpY3Rpb247CivoprrlvpcgPCB0b1wtdGhpbms7Civpq5josrQgPCBncmFuZGV1cjsKK+ajkuejqOapnyA8IHJvZFwtbWlsbDsKK+WFheeVtiA8IHNlcnZlXC1hczsKK+eCuuaZgiA8IHRpbWV3aXNlOwor6YGU5YiwIDwgdG9cLXJlYWNoOwor6LGOIDwgdmVydGljYWw7Civopb/mlrkgPCB0aGVcLXdlc3Q7Civnsr7lipvlhYXmspsgPCB2aWdvcm91czsKK+ituSA8IHRvXC1zaG91dDsKK+mAmuWgsSA8IGJ1bGxldGluOwor5pKl5a2QIDwgcGxlY3RydW07Civmipfpq5QgPCBhbnRpYm9keTsKK+iHqOi/kSA8IGNsb3NlXC10bzsKK+iOq+WkpyA8IGdyZWF0ZXN0Owor5ZOl5YCr5biD57SAIDwgY29sdW1idXM7CivliIflr6YgPCBmZWFzaWJsZTsKK+irhiA8IHRvXC1jaGVhdDsKK+ipiyA8IHRvXC1jdXJzZTsKK+ipiiA8IHBsZWFzaW5nOwor5YiG5a2QIDwgbW9sZWN1bGU7Civnm7jmh4kgPCByZWxldmFudDsKK+W3pui8quaJi+anjSA8IHJldm9sdmVyOwor6Zi75aGeIDwgdG9cLWJsb2NrOwor6KW2IDwgaWdub3JhbnQ7CivntZXlsI0gPCBhYnNvbHV0ZTsKK+ilqyA8IHJhaW5jb2F0Owor5YiG5aipIDwgZGVsaXZlcnk7CivnrqHpgZMgPCBwaXBlbGluZTsKK+WTpeWAq+avlOS6niA8IGNvbG9tYmlhOwor6YGK5Ly0IDwgcGxheW1hdGU7Civlt6Xmpa0gPCBpbmR1c3RyeTsKK+WGsOaOkiA8IGljZVwtcmFmdDsKK+mAsuWFpSA8IHRvXC1lbnRlcjsKK+Wwj+WknOabsiA8IHNlcmVuYWRlOwor5bCP5qiZ6aGMIDwgc3VidGl0bGU7Civot6/pnaIgPCBwYXZlbWVudDsKK+idnyA8IGhlZGdlaG9nOwor6J2PIDwgXChpbnNlY3RcKTsKK+aSkuavjeiAs+iomOS4iyA8IDJcLXNhbXVlbDsKK+aSkuavjeiAs+iomOS4iiA8IDFcLXNhbXVlbDsKK+acieapn+mrlCA8IG9yZ2FuaXNtOwor55u05b6RIDwgZGlhbWV0ZXI7CivnhKHlkI0gPCBuYW1lbGVzczsKK+WgteWhniA8IGJsb2NrYWdlOwor5pKk5ZueIDwgd2l0aGRyYXc7CivomrMgPCBhbnRcLWVnZ3M7CivntpPlhbggPCBjbGFzc2ljczsKK+atu+ihmuihlSA8IGRlYWRcLWVuZDsKK+mosOmosCA8IHN0ZWFtaW5nOwor5Lqk6Z+/5puyIDwgc3ltcGhvbnk7CivpgLzkurogPCBwcmVzc2luZzsKK+eEoeWKqSA8IGhlbHBsZXNzOwor5o6h55SoIDwgdG9cLWFkb3B0Owor5bey5pWFIDwgdGhlXC1sYXRlOwor55m85rGXIDwgdG9cLXN3ZWF0Owor5ZyL56uLIDwgbmF0aW9uYWw7CivmmYLplpPooaggPCBzY2hlZHVsZTsKK+iUiSA8IGVhcnRoXC11cDsKK+eutOiogCA8IHByb3ZlcmJzOwor6KOc54iQIDwgZmV0dGxpbmc7Civoh6roo70gPCBob21lbWFkZTsKK+iRliA8IGZvbGxpY2xlOwor6aCt5ZCR5YmNIDwgaGVhZGxvbmc7CivpmLvlipsgPCBvYnN0YWNsZTsKK+aOoumaquiAhSA8IGV4cGxvcmVyOwor6KCV6KCVIDwgd2lnZ2xpbmc7CivoiakgPCB0aG9sZXBpbjsKK+mAgeWIpSA8IGZhcmV3ZWxsOwor6ImMIDwgdG9cLWNhdWxrOwor54Sh5Lq6IDwgdW5tYW5uZWQ7CivlhazmlqQgPCBraWxvZ3JhbTsKK+WQm+S4u+aUv+ayuyA8IG1vbmFyY2h5Owor5Y+X6Zuj6ICFIDwgc3VmZmVyZXI7Civmir3osaEgPCBhYnN0cmFjdDsKK+WHuuWPoyA8IHRvXC1zcGVhazsKK+iEsCA8IHRoZVwtbmVjazsKK+imquWWhCA8IGdvb2R3aWxsOwor6IiI6Ie0IDwgaW50ZXJlc3Q7CivpgJTkuK0gPCBlblwtcm91dGU7Civogo8gPCBjb3B1bGF0ZTsKK+mWk+aOpSA8IGluZGlyZWN0Owor6ZC16LevIDwgcmFpbHJvYWQ7CivmkKzlvIQgPCBtb3ZlXC1zdGg7Civlt7Tmi4nlnK0gPCBwYXJhZ3VheTsKK+aomeacrCA8IHNwZWNpbWVuOwor56ys5LiA5q2lIDwgc3RlcFwtb25lOwor6Kq/5ZGz5rGBIDwgZHJlc3Npbmc7CivpgIDkvY0gPCBhYmRpY2F0ZTsKK+e9hyA8IGFcLWdvYmxldDsKK+mAg+S6oSA8IGZ1Z2l0aXZlOwor5oiw6aylIDwgdG9cLWZpZ2h0Owor57Wx5LiAIDwgdG9cLXVuaWZ5Owor5YiR5LqLIDwgY3JpbWluYWw7Civmlbjmk5rluqsgPCBkYXRhYmFzZTsKK+e4vyA8IHN0cmVhbWVyOwor57i0IDwgdG93XC1saW5lOwor5YK15qyK5Lq6IDwgY3JlZGl0b3I7CivooZ3nqoEgPCBjb25mbGljdDsKK+i/veS4iiA8IG92ZXJ0YWtlOwor57avIDwgdG9cLWJyYWlkOwor57aqIDwgZGFya1wtcmVkOwor6Iiq56m6IDwgYXZpYXRpb247Civkv67ovq0gPCByaGV0b3JpYzsKK+a/vua2siA8IGZpbHRyYXRlOwor5Lq65Y+j56ig5a+GIDwgcG9wdWxvdXM7CivntJ4gPCBhXC1mcmluZ2U7CivlsI3pnaIgPCBvcHBvc2l0ZTsKK+WHveS7tiA8IGxldHRlcmVzOwor5byf5YWE5YCRIDwgYnJldGhyZW47CivlsI/oqqrlrrYgPCBub3ZlbGlzdDsKK+exoyA8IGJvd1wtY2FzZTsKK+ewrCA8IFwoYmFtYm9vXCk7CivpprTpub8gPCByZWluZGVlcjsKK+mpmuionSA8IGNvbmZvdW5kOwor5o2V542yIDwgdG9cLWNhdGNoOwor5o6h5qijIDwgc2FtcGxpbmc7CivntJTlk4EgPCBzdGVybGluZzsKK+i/keS+hiA8IHJlY2VudGx5Owor56ePIDwgdG9cLXdhc3RlOwor56ys5LqU5Y2BIDwgZmlmdGlldGg7CivkuInmmI7msrsgPCBzYW5kd2ljaDsKK+WvuumZoiA8IGNsb2lzdGVyOwor562U6KmxIDwgdG9cLXJlcGx5Owor5YKs5YyW5YqRIDwgY2F0YWx5c3Q7CivngavlsbEgPCB2b2xjYW5pYzsKK+WFtuWvpiA8IGFjdHVhbGx5Owor55Sf6KmeIDwgbmV3XC13b3JkOwor56OfIDwgbWVkaW9jcmU7CivmorXoqp4gPCBzYW5za3JpdDsKK+eijyA8IGNvbG91cmVkOwor5L6/6YGTIDwgc2hvcnRjdXQ7CivmtojosrvogIUgPCBjb25zdW1lcjsKK+Wvp+mdnCA8IHRyYW5xdWlsOwor56C5IDwgYXN0YXRpbmU7Civnn4sgPCB0b1wtc3RhcmU7CivlsIHpjpYgPCBibG9ja2FkZTsKK+S/r+imliA8IG92ZXJsb29rOwor556TIDwgdG9cLXNsZWVwOwor552PIDwgYmVcLXRpcmVkOwor5byV5Lq65rOo55uuIDwgc3RyaWtpbmc7CivnnYUgPCBiaWdcLWV5ZWQ7Civmv5XmsKMgPCBtb2lzdHVyZTsKK+ebrCA8IHNhbHRcLXBpdDsKK+mYv+Wlh+att+aWryA8IGFjaGlsbGVzOwor57K+5a+GIDwgYWNjdXJhY3k7CivojLbljJkgPCB0ZWFzcG9vbjsKK+WFhOW8nyA8IGJyb3RoZXJzOwor55mSIDwgZ2V0XC13ZWxsOwor55mDIDwgd2Vha25lc3M7CivnmLwgPCBzaWNrbmVzczsKK+eYtiA8IHRvXC1jb3VnaDsKK+eYsCA8IHNjcm9mdWxhOwor6IiI55ubIDwgZmxvdXJpc2g7CivlgJjoi6UgPCBwcm92aWRlZDsKK+mXnOS/giA8IHJlbGF0aW9uOwor55m85bCEIDwgdG9cLXNob290Owor55OpIDwga2lsb3dhdHQ7CivnkKsgPCBvcm5hbWVudDsKK+aOoeaOmCA8IGV4Y2F2YXRlOwor6LaK6YGOIDwgdG9cLWNyb3NzOwor54+3IDwgXC8yXC1wclwtc3Q7CivlhbXlmaggPCB3ZWFwb25yeTsKK+aLlOevgCA8IGpvaW50aW5nOwor5ryU57+SIDwgZXhlcmNpc2U7Civlpaflvrfkv67mlq8gPCBvZHlzc2V1czsKK+e0iuS6giA8IGRpc29yZGVyOwor6Lez6IieIDwgdG9cLWRhbmNlOwor54qOIDwgdGhlXC16ZWJ1Owor54mzIDwgXChib3ZpbmVcKTsKK+evhOeWhyA8IGNhdGVnb3J5Owor5YW15ZOhIDwgc29sZGllcnM7Civmu7LoibIgPCBibGVlZGluZzsKK+eGpCA8IFwocGVyc29uXCk7Civom4vpu4MgPCBlZ2dcLXlvbGs7CivnhIwgPCB0b1wtbGlnaHQ7CivngqQgPCBpbGx1bWluZTsKK+iDjOmdoiA8IHRoZVwtYmFjazsKK+eAoSA8IHNsaXBwZXJ5Owor5Z2m5qGR5bC85LqeIDwgdGFuemFuaWE7CivovJTlsI4gPCB0b1wtY29hY2g7Civlr7bosrQgPCB2YWx1YWJsZTsKK+a9jiA8IHJpcHBsaW5nOwor5YWl5Y+jIDwgZW50cmFuY2U7CivmuaIgPCBiYXRocm9vbTsKK+mWi+WJtSA8IGluaXRpYXRlOwor5L616J2VIDwgdG9cLWVyb2RlOwor5omB6J+yIDwgZmxhdHdvcm07CivntpPpmbjot68gPCBvdmVybGFuZDsKK+WuuemHjyA8IGNhcGFjaXR5Owor5o+P5ZyWIDwgdG9cLXRyYWNlOwor5Zub5pyI5Y2B5LiD6JmfIDwgYXByaWxcLTE3Owor6LWk6LazIDwgYmFyZWZvb3Q7Civms5AgPCB0b1wtd3JpdGU7Civmso0gPCBmcmVlemluZzsKK+WcqOaItuWkliA8IG91dGRvb3JzOwor5rCJIDwgcmVzdGxlc3M7Civmr74gPCBhXC1jb2Fyc2U7Civmr7sgPCB0b1wtbW91bHQ7CivkuI3poafkuIDliIcgPCByZWNrbGVzczsKK+auvSA8IG1peGVkXC11cDsKK+ijveWTgSA8IHByb2R1Y3RzOwor5YWx5LqrIDwgdG9cLXNoYXJlOwor5qybIDwgYVwtaGFuZGxlOwor5pOm5qOS55CDIDwgZm91bFwtdGlwOwor5quDIDwgY3VwYm9hcmQ7CivlhazkuLsgPCBwcmluY2VzczsKK+aPkOWQjSA8IG5vbWluYXRlOwor5Zub5pa5IDwgZm91clwtd2F5Owor5Lit5LiW57SAIDwgbWVkaWV2YWw7CivmqJogPCBhXC1wdWxsZXk7CivnspfljrIgPCBhYnJhc2l2ZTsKK+WCvuiBveiAhSA8IGxpc3RlbmVyOwor5qSEIDwgdG9cLWdyYWZ0Owor5qKxIDwgZG9vcnNpbGw7CivmjqXmlLblmaggPCByZWNlaXZlcjsKK+WLouWmguegtOeruSA8IHN3ZWVwaW5nOwor6Ieq5rK7IDwgYXV0b25vbXk7Civpq5jmnrYgPCBvdmVyaGVhZDsKK+WbsOaDkSA8IGJld2lsZGVyOwor5p+kIDwgaGF3dGhvcm47CivmnrsgPCBsb25nXC1vYXI7CivnrJHogbIgPCBsYXVnaHRlcjsKK+i+suWutuW6remZoiA8IGZhcm15YXJkOwor5p2+6bygIDwgc3F1aXJyZWw7Civlrrbluq3kvZzmpa0gPCBob21ld29yazsKK+WFiOS7pCA8IHNoaWxsaW5nOwor5rig6YGTIDwgY2hhbm5lbHM7CivmmKEgPCBsb25nXC1kYXk7CivmoKHoqIIgPCByZXZpc2lvbjsKK+aXmCA8IGFcLXBlbm5vbjsKK+ajkueQgyA8IGJhc2ViYWxsOwor5YSq5YWIIDwgcHJpb3JpdHk7CivmlaogPCB0b1wtd2VpZ2g7CivmlJ4gPCB0b1wtc3BsaXQ7Civmk6kgPCB0b1wtc3RhaW47CivlmbTms4kgPCBmb3VudGFpbjsKK+aRtyA8IHRvXC1rbm9jazsKK+aQtSA8IHdpcGVcLW9mZjsKK+aQsiA8IHRvXC1zZWl6ZTsKK+aQiyA8IHRvXC10aHVtcDsKK+aPsCA8IHBva2VcLW91dDsKK+aPnCA8IGNvdmVyXC11cDsKK+i7jeWjqyA8IHNlcmdlYW50Owor5o+MIDwgdG9cLXNoYWtlOwor6KGj5buaIDwgd2FyZHJvYmU7Civmi5EgPCB0b1wtY2xhbXA7Civku73ph48gPCBxdWFudGl0eTsKK+aJhSA8IGdhdGVcLWJhcjsKK+aHieipsiA8IG91Z2h0XC10bzsKK+aOoeWFiSA8IGxpZ2h0aW5nOwor5oeVIDwgc2F0aWF0ZWQ7CivmhqogPCBjb21wb3NlZDsKK+iRoeiQhOeJmSA8IHBvcnR1Z2FsOwor6KOB5YikIDwganVkZ21lbnQ7CivljbPlsIfkvoboh6ggPCBpbW1pbmVudDsKK+aFqyA8IHRvXC1hbGFybTsKK+aFhSA8IGFnaXRhdGVkOwor5oWBIDwgZGlzaG9ub3I7CivkurrpoZ4gPCBodW1hbml0eTsKK+S8sOioiCA8IGVzdGltYXRlOwor5oOUIDwgY2hlZXJmdWw7CivlnZDkuIsgPCBzaXRcLWRvd247Civlm57lrrYgPCBob21ld2FyZDsKK+S9v+iAhSA8IGVtaXNzYXJ5Owor5oGdIDwgY2FyZWZyZWU7CivmiZPnoLQgPCB0b1wtYnJlYWs7CivmgYwgPCB0b1wtd29ycnk7CivlgYfmnJ8gPCB2YWNhdGlvbjsKK+S4jeato+W4uCA8IGFibm9ybWFsOwor6KGj5a2QIDwgY292ZXJpbmc7Civpn7PmqILlhYnnop8gPCBtdXNpY1wtY2Q7Civou7zkuosgPCBhbmVjZG90ZTsKK+W7pCA8IHRvXC1wbGFjZTsKK+aKseatiSA8IGJlXC1zb3JyeTsKK+alteWlvSA8IGZhYnVsb3VzOwor5qW15aSnIDwgZW5vcm1vdXM7CivnlYzmqJkgPCBsYW5kbWFyazsKK+S4jemAj+awoyA8IGFpcnRpZ2h0Owor5LqU5b2p6LOT57SbIDwgY29sb3JmdWw7CivluLUgPCByZW1uYW50czsKK+evgOaFtiA8IGZlc3RpdmFsOwor5pqW5rCj5qmfIDwgcmFkaWF0b3I7Civltq0gPCBlbGV2YXRlZDsKK+mYv+iCr+iJsiA8IGFya2Fuc2FzOwor56We5a2456CU56m25omAIDwgc2VtaW5hcnk7CivprKfljYAgPCBkb3dudG93bjsKK+WyiiA8IGZvb3RoaWxsOwor6byT5ZC56ICFIDwgYWR2b2NhdGU7CivkvrXnlaUgPCBpbnZhc2lvbjsKK+S9tee0lyA8IGRvdWJsaW5nOwor55eF5aSrIDwgc2lja1wtbWFuOwor5o6I5LqIIDwgdG9cLWF3YXJkOwor5Zyw5LiL5a6kIDwgYmFzZW1lbnQ7CivlnIvlhacgPCBkb21lc3RpYzsKK+WurCA8IGFyY2hpdmVzOwor5aysIDwgbWlzdHJlc3M7CivnsKHljJYgPCBzaW1wbGlmeTsKK+a8ouWvhueIvumgkyA8IGhhbWlsdG9uOwor6LK36YCaIDwgdG9cLWJyaWJlOwor5YaS54qv6ICFIDwgb2ZmZW5kZXI7Civlp6YgPCBhZHVsdGVyeTsKK+evoeWlqiA8IHRvXC11c3VycDsKK+iHqOW6iiA8IGNsaW5pY2FsOwor5L+d55yf5bqmIDwgZmlkZWxpdHk7CivmoL3nqK4gPCB0b1wtcGxhbnQ7CivmiLDnlaUgPCBzdHJhdGVneTsKK+WckuS4gSA8IGdhcmRlbmVyOwor5pys6auUIDwgbm91bWVub247CivkurrpgKAgPCBtYW5cLW1hZGU7Civoqp7oqIDlrbjlrrYgPCBsaW5ndWlzdDsKK+WxheawkSA8IHJlc2lkZW50Owor6IWz5q2lIDwgZm9vdHN0ZXA7Civln7wgPCBoZWFkbGFuZDsKK+aLvOWtlyA8IHNwZWxsaW5nOwor5p2x6YOoIDwgdGhlXC1lYXN0Owor5LiN6auU6Z2iIDwgc2hhbWVmdWw7Civpq5jlnLAgPCBoaWdobGFuZDsKK+WbuuS7tiA8IGZpcm13YXJlOwor6b6N6aCt6ICB5aSnIDwgYmlnXC1ib3NzOwor6IWT5Yip6ZaA5pu4IDwgcGhpbGVtb247CivpkbLltYwgPCB0b1wtaW5sYXk7Civmpa3li5kgPCBidXNpbmVzczsKK+WAjeaVuCA8IG11bHRpcGxlOwor5bCN54WnIDwgY29udHJhc3Q7Civlm64gPCBpbnZlaWdsZTsKK+iCqeiGgCA8IHNob3VsZGVyOwor6Lqr5Lu9IDwgaWRlbnRpdHk7Civll4MgPCB0b1wtZmx1dGU7CivlsLHmraQgPCBhbmRcLXRodXM7Civln4PloZ7kv4Tmr5Tkup4gPCBldGhpb3BpYTsKK+WVhyA8IHRvXC1zdGFsazsKK+ethuaetiA8IHBlblwtcmFjazsKK+WUpSA8IGFcLWJ1bmRsZTsKK+eUn+aXpSA8IGJpcnRoZGF5Owor5ZGgIDwgdG9cLXNwdXJ0Owor6ZCY5pO6IDwgcGVuZHVsdW07CivlsI/ooZ3nqoEgPCBza2lybWlzaDsKK+WPkiA8IG9iZWRpZW50Owor5Y61IDwgYVwtc3ByaW5nOwor5oqx5oCoIDwgY29tcGxhaW47CivljbwgPCB1bnN0ZWFkeTsKK+WNuSA8IHN5bXBhdGh5Owor5a2457+SIDwgdG9cLWxlYXJuOwor5oqY5omjIDwgZGlzY291bnQ7Civli4wgPCB0b1wtbGFib3I7CivlirsgPCBmbHVycmllZDsKK+aHuOeWkSA8IHN1c3BlbnNlOwor5YqZIDwgYVwtZGl2aWRlOwor5oe355aRIDwgdG9cLWRvdWJ0Owor55W25aSpIDwgdGhhdFwtZGF5Owor5YmfIDwgdG9cLXByaWNrOwor6Y2155ukIDwga2V5Ym9hcmQ7Civlh6UgPCB0b1wtZHdlbGw7CivlhocgPCBoYXZlXC1ub3Q7CivmjpLmsLTmuKAgPCBkcmFpbmFnZTsKK+W3tOWfuuaWr+WdpiA8IHBha2lzdGFuOwor6bq76YaJ5YqRIDwgbmFyY290aWM7Civlg4MgPCBwcmVwYXJlZDsKK+WutueUqCA8IGhvbWVcLXVzZTsKK+S9tCA8IGFcLXNlY29uZDsKK+iiq+S+teWusyA8IHN0cmlja2VuOwor6Ie05YqbIDwgd29ya1wtZm9yOwor5LqU6KeSIDwgcGVudGFnb247CivktrIgPCB0aGVcLWVkZ2U7CivktbIgPCByYXdcLWhlbXA7CivktZogPCBrYW9saWFuZzsKK+S1kyA8IHRoZVwtbW9sZTsKK+S1iSA8IGFidXRpbG9uOwor5LS7IDwgZHJ5XC1mb29kOwor5LSrIDwgYW50ZWxvcGU7CivmiL/mnbEgPCBsYW5kbG9yZDsKK+S0miA8IHNhbHRwb25kOwor5LO7IDwgYW5cLWVhZ2xlOwor5L+u5bu6IDwgdG9cLWJ1aWxkOwor5LKWIDwgYmlnXC1maXNoOwor6KiI566X5qmfIDwgY29tcHV0ZXI7CivnqoHnmbwgPCBvdXRidXJzdDsKK+SwnyA8IHRoZVwtc291bDsKK+SvqiA8IGJpZ1wtaGVhZDsKK+S/oeW+kiA8IGJlbGlldmVyOwor5K+aIDwgdGhlXC1yaWJzOwor5K+JIDwgdG9cLWNob2tlOwor55m95pyo6ICzIDwgdHJlbWVsbGE7CivmiZPmjoMgPCB0b1wtY2xlYW47CivmioDlt6UgPCBtZWNoYW5pYzsKK+aMgeS5hSA8IGR1cmF0aW9uOwor5K2xIDwgYVwtbGl0dGxlOwor6aKo6LuKIDwgd2luZG1pbGw7Civnjajoo4HogIUgPCBkaWN0YXRvcjsKK+SsiSA8IGhvdFwtd2luZDsKK+SrtyA8IHRoZVwtam93bDsKK+aJi+aPkCA8IHBvcnRhYmxlOwor5LiN6Z2IIDwgbm90XC13b3JrOwor5KuDIDwgdGhlXC1saXBzOwor5Kq2IDwgdGhlXC1jaGluOwor5KqpIDwgdG9cLWNoYW50Owor5KqcIDwgYVwtc2hpZWxkOwor5KqRIDwgdG9cLXN0aWNrOwor5KqFIDwgYVwtcXVpdmVyOwor5KmgIDwgYVwtZ2lyZGxlOwor5KmJIDwgdGhlXC1mYWNlOwor5KmIIDwgYVwtcGx1bXB5Owor5Ki8IDwgZHllc3R1ZmY7CivnlJ/lrZggPCB0b1wtZXhpc3Q7Civos6bnqIUgPCB0YXhhdGlvbjsKK+SnqyA8IGFcLXRyZW5jaDsKK+SngSA8IHRvXC1sZWF2ZTsKK+a1tOihoyA8IGJhdGhyb2JlOwor5LiA6Z2iIDwgb25lXC1zaWRlOwor5KWtIDwgZXZpZGVuY2U7CivmgZDpvo0gPCBkaW5vc2F1cjsKK+iomOmMhOWToSA8IHJlY29yZGVyOwor5KS/IDwgdG9cLWNhcnZlOwor5KS2IDwgYVwtaGFtbWVyOwor5KSzIDwgYVwtbWlycm93Owor5be05be05aSa5pavIDwgYmFyYmFkb3M7CivkpKsgPCBhXC1jaGlzZWw7CivkpJAgPCB0b1wtZHJpbms7Civnlavlg48gPCBwb3J0cmFpdDsKK+eVtuS9nCA8IHRyZWF0XC1hczsKK+emruiyjCA8IGNvdXJ0ZXN5Owor5KKQIDwgdG9cLWdvXC10bzsKK+iYh+agvOiYrSA8IHNjb3RsYW5kOwor5L+h5bCBIDwgZW52ZWxvcGU7CivkoL4gPCB0b1wtZG9kZ2U7CivkoKwgPCBpbnNvbW5pYTsKK+SgniA8IHdyaW5rbGVkOwor6IGy56ixIDwgdG9cLWNsYWltOwor5KCBIDwgdG9cLWdvXC11cDsKK+SfuCA8IHRoZVwtY2FsZjsKK+WwjeaJiyA8IG9wcG9uZW50Owor5L+h5a6IIDwgYWJpZGVcLWJ5Owor5J6uIDwgdG9cLWNyYXdsOwor6IGW57SEIDwgY292ZW5hbnQ7CivmoKHmraMgPCByZWd1bGF0ZTsKK+SdgiA8IHRvXC1lcmVjdDsKK+ScrCA8IGFcLWNhdmVybjsKK+ScmCA8IHRvXC1ndWFyZDsKK+SckCA8IHRvXC1saWJlbDsKK+ScgyA8IHRvXC1ibGFtZTsKK+SbkiA8IHRvXC1hcmd1ZTsKK+mHjem7niA8IGVtcGhhc2lzOwor5JuHIDwgdG9cLWxhdWdoOwor5Jq3IDwgdG9cLXRyZWF0Owor5JqvIDwgdG9cLXF1ZWxsOwor6IG955y+IDwgYXVkaWVuY2U7CivokaHokITlnJIgPCB2aW5leWFyZDsKK+SYqyA8IG9sZFwtcmFnczsKK+SYnCA8IGFcLW5hcGtpbjsKK+SYiSA8IHNpbGt3b3JtOwor6aiO5birIDwgaG9yc2VtYW47Civnp6foi5cgPCBzZWVkbGluZzsKK+SXmCA8IGFcLXdlZXZpbDsKK+SXiCA8IGFcLWdhZGZseTsKK+S9v+iIiOWlriA8IGV4Y2l0aW5nOwor5JeHIDwgdGhlXC10b2FkOwor5Ja7IDwgZXBoZW1lcmE7CivklqQgPCB0b1wtY3JlZXA7CivklpsgPCBvZlwtdGlnZXI7CivnrKzljYHkuIAgPCBlbGV2ZW50aDsKK+aBremghiA8IGRlZmVyZW50Owor6Y215qe9IDwga2V5XC1zbG90Owor6LO854mpIDwgc2hvcHBpbmc7Civllq7mk5ogPCByZWNlaXB0czsKK+acg+iuiiA8IHZhcmlhYmxlOwor5JOVIDwgcG9seWdhbGE7CivkkrMgPCBhXC1mbG93ZXI7CivlsJHlubQgPCBqdXZlbmlsZTsKK+momeWtkCA8IHN3aW5kbGVyOwor6IGv55ufIDwgYWxsaWFuY2U7CivkkZggPCB0b1wtcG91bmQ7CivkkYMgPCBkaW1cLW1vb247CivkkJIgPCBub3RcLWZpbmU7CivmlrnnqIvlvI8gPCBlcXVhdGlvbjsKK+i3r+WPoyA8IGNyb3NzaW5nOwor5I+fIDwgZmF0XC1tZWF0Owor6JmV572wIDwgcGVuYWxpemU7Civkj4kgPCB0b1wtd2F2ZXI7Civkj4ggPCB0b1wtdW5pdGU7Civph5HprZogPCBnb2xkZmlzaDsKK+SOsiA8IGVhclwtbG9iZTsKK+SOoyA8IGFcLXBsb3VnaDsKK+W9q+WIu+WutiA8IHNjdWxwdG9yOwor5Iy3IDwgYVwtdGhyZWFkOwor5IyvIDwgYVwtdHJ1YmFuOwor5IyrIDwgYVwtaGF3c2VyOwor5ZCr6YePIDwgY29udGVudHM7CivkjIMgPCByYXdcLXNpbGs7CivpmL/miZjlk4EgPCBhdHJvcGluZTsKK+SLoSA8IHRvXC1yZWxheDsKK+SLgyA8IHN0aW5naW5nOwor5Iq4IDwgdG9cLXR3aXN0Owor5IqdIDwgdG9cLWV4aWxlOwor55So5YqfIDwgZGlsaWdlbnQ7CivkioEgPCBsZWF2aW5nczsKK+SJuyA8IHJlZFwtcmljZTsKK+SJsSA8IGFcLWNyYWRsZTsKK+SJkiA8IGFcLXdpbm5vdzsKK+SItiA8IGFuXC1hcnJvdzsKK+WcsOWNgOaApyA8IHJlZ2lvbmFsOwor5IeMIDwgdG9cLXN0YW5kOwor5Ia4IDwgc3BhY2lvdXM7CivnrYblkI0gPCBwZW5cLW5hbWU7CivkvZvmlZkgPCBidWRkaGlzbTsKK+WPr+mdoCA8IHJlbGlhYmxlOwor5LiJ6KeS5b2iIDwgdHJpYW5nbGU7Civlr5PmiYAgPCBkd2VsbGluZzsKK+SDkSA8IHNwZWNrbGVzOwor5IGlIDwgdG9cLWJsaW5rOwor5IGcIDwgYmlnXC1leWVzOwor55Sx5L2ZIDwgb3dpbmdcLXRvOwor5ICIIDwgYVwtdmVzc2VsOwor47+iIDwgdG9cLXNoaW5lOwor47+hIDwgYVwtaGVsbWV0Owor47+IIDwgYW5cLXVsY2VyOwor47+FIDwgcmluZ3dvcm07CivjvrggPCBhXC1zY2FiYnk7CivpoIHpnaIgPCB3ZWJcLXBhZ2U7Civjvo0gPCBkaXNlYXNlczsKK+O9uSA8IHRvXC1mYWludDsKK+a4tOacmyA8IGRlc2lyb3VzOwor5pys6IO9IDwgaW5zdGluY3Q7Civll5zlpb0gPCBmb25kbmVzczsKK+e1guerr+eUqOaItiA8IGVuZFwtdXNlcjsKK+WiqOawtOeTtuaetiA8IGlua3N0YW5kOwor47qaIDwgYW5cLW90dGVyOwor6KqY5ouQ6ICFIDwgYWJkdWN0b3I7CivnvLrpmbcgPCBhXC1kZWZlY3Q7CivjuocgPCBhXC13YXJkZW47CivjubggPCB0aGVcLWxpb247Civom4vmrrwgPCBlZ2dzaGVsbDsKK+aIsuWKh+aApyA8IGRyYW1hdGljOwor5oey572w5oCnIDwgcHVuaXRpdmU7CivjuJ0gPCBhXC1zaG92ZWw7Civlhavop5LmpZMgPCBhbGFuZ2l1bTsKK+O3gCA8IHNvbGl0YXJ5Owor47a8IDwgdmVyeVwtaG90Owor47S2IDwgdG9cLXdhdGVyOwor5ruR5YawIDwgdG9cLXNrYXRlOwor47SKIDwgYW5cLWFieXNzOwor47OrIDwgcmVwZWF0ZWQ7Civjs5IgPCBzdGF0dXRlczsKK+WMl+a1t+mBkyA8IGhva2thaWRvOwor47K3IDwgbml0cm9nZW47CivjsrMgPCB0b1wtdG91Y2g7CivlrpfmlZkgPCByZWxpZ2lvbjsKK+S9juaIkOacrCA8IGxvd1wtY29zdDsKK+OxvyA8IHRoZVwtaHVzazsKK+OxuiA8IHRoZVwtc2tpbjsKK+OxoiA8IHRoZVwtZGVhZDsKK+OxlyA8IGFcLWJyZWF0aDsKK+WRveiEiCA8IGxpZmVsaW5lOwor5LmD6IezIDwgYW5kXC1ldmVuOwor56ef56iFIDwgbGFuZFwtdGF4Owor5LiN6KGMIDwgd29uJyd0XC1kbzsKK+WuiOaZgiA8IHB1bmN0dWFsOwor466tIDwgYVwtY2Fza2V0Owor5pqX6L2JIDwgYmxhY2tvdXQ7CivmiZPljbAgPCB0b1wtcHJpbnQ7CivjrKcgPCBhXC1jb2xsYXI7CivmmI7kv6HniYcgPCBwb3N0Y2FyZDsKK+aVkei0luS4uyA8IHJlZGVlbWVyOwor46u9IDwgZGFya25lc3M7CivjqpAgPCB1bnN0YWJsZTsKK+iygueariA8IG1pbmtcLWZ1cjsKK+OpqCA8IHRvXC1jcmFjazsKK+OpkyA8IHRvXC13b3VuZDsKK+mGq+mZoiA8IGhvc3BpdGFsOwor46iTIDwgdG9cLWNsb3NlOwor46iBIDwgdG9cLXRocm93Owor46e1IDwgdG9cLWV4YWN0Owor46exIDwgdG9cLWJyaW5nOwor5rOz6KGjIDwgc3dpbXN1aXQ7Civjpr8gPCBhXC13aW5kb3c7Civmt5rmsLQgPCB0ZWFyZHJvcDsKK+eUn+WRveWKmyA8IHZpdGFsaXR5Owor46WwIDwgbW91cm5mdWw7CivjpYEgPCBtb3JhbGl0eTsKK+OkriA8IGFuXC1lcnJvcjsKK+OkjyA8IGdyaWV2b3VzOwor6IKJ5qGCIDwgY2lubmFtb247Civjo6sgPCB0aGVcLWhlZWw7CivmuJvmjokgPCBzdWJ0cmFjdDsKK+OjniA8IHRvXC13YWxraTsKK+m8u+eCjiA8IHJoaW5pdGlzOwor46C5IDwgYVwtdHVyYmFuOwor55Si6YeP5aSaIDwgZnJ1aXRmdWw7CivnnIvlrojogIUgPCB3YXRjaG1hbjsKK+OgiiA8IGFcLXJ1Z2dlZDsKK+azleWIqeizveS6uiA8IHBoYXJpc2VlOwor4563IDwgbHV4dWlhbnQ7CivlkJHopb8gPCB3ZXN0d2FyZDsKK+WPm+mAhiA8IHRvXC1yZWJlbDsKK+OekSA8IHRoZVwtdGFpbDsKK+OeiSA8IGJpZ1wtZm9vdDsKK+OdrSA8IHRvXC1hd2FrZTsKK+OdmCA8IGhhcm1vbm95Owor45y2IDwgYVwtY291cGxlOwor5oiw5Y2AIDwgd2FyXC16b25lOwor5Y+x6LKsIDwgcmVwcm9hY2g7CivkvZTpoJjogIUgPCBvY2N1cGFudDsKK+enkee+heaLieWkmiA8IGNvbG9yYWRvOwor6LKe5r2UIDwgY2hhc3RpdHk7CivjmaIgPCBhXC10cm93ZWw7CivjmYMgPCBhXC1jYXZpdHk7CivmoJflrZAgPCBjaGVzdG51dDsKK+OYmSA8IHRvXC1ncm9hbjsKK+OYgCA8IHRvXC1zb3VuZDsKK+S4ree5vCA8IHRvXC1yZWxheTsKK+OXqiA8IG1vdXRoZnVsOwor45ecIDwgdG9cLXNtZWxsOwor45eJIDwgaW5jaXNpdmU7CivjlqkgPCBub3RcLXB1cmU7CivjlbwgPCB0b1wtYnJhd2w7Civpjq7ljYAgPCB0b3duc2hpcDsKK+OVmyA8IGFcLWZyaWVuZDsKK+OVkCA8IGluY2xpbmVkOwor45WKIDwgdG9cLXNsYW50Owor5p2/5rK5IDwgbGVhZlwtZmF0Owor5Yyq5b6S6ZuG5ZyYIDwgZ2FuZ3N0ZXI7Civjk5MgPCB0aGluXC1pY2U7CivjkrkgPCB0b1wtdXBzZXQ7Civmh7jlnoIgPCBvdmVyaGFuZzsKK+WwhOmgu+WZqumfsyA8IHJmXC1ub2lzZTsKK+mFkumsvCA8IGRydW5rYXJkOwor5LiN6IKWIDwgdW53b3J0aHk7Civnj63mqZ8gPCBhaXJsaW5lcjsKK+OQnCA8IGFuXC1lbmVteTsKK+S9v+WQg+mpmiA8IGFzdG9uaXNoOwor56qX5a2QIDwgY2FzZW1lbnQ7Civmh4nlsI0gPCByZXNwb25zZTsKK+S6pOa1gSA8IGV4Y2hhbmdlOwor5Y+b6K6KIDwgcmVuZWdhZGU7CivmiLDkuosgPCBmaWdodGluZzsKK+W5uOWtmOiAhSA8IHN1cnZpdm9yOwor5Lq66YGT5Li7576pIDwgaHVtYW5pc207CivkuIDlv4PkuIDmhI8gPCBpbnRlbnRseTsKK+aru+iKseiNiSA8IHByaW1yb3NlOwor5qC45YeGIDwgc2FuY3Rpb247CivmmJ/mnJ/lm5sgPCB0aHVyc2RheTsKK+axuuWumuaApyA8IGRlY2lzaXZlOwor5pel6ICz5pu8IDwgZ2VybWFuaWM7CivorbTosqwgPCBkZW5vdW5jZTsKK+ahiOS7tiA8IGxhd1wtY2FzZTsKK+W5vuS9leWtuCA8IGdlb21ldHJ5Owor5ae76KaqIDwgYWZmaW5pdHk7CivmnZHmsJEgPCB2aWxsYWdlcjsKK+aFt+aFqCA8IHZlaGVtZW50Owor6KuW6bueIDwgYXJndW1lbnQ7Civlgr7lkJHmlrwgPCBwcm9uZVwtdG87Civpu4Pnk5wgPCBjdWN1bWJlcjsKK+aal+iHqiA8IGlud2FyZGx5Owor5oeK5ZaqIDwgZGVqZWN0ZWQ7CivnqIDmnIkgPCB1bmNvbW1vbjsKK+mjm+apnyA8IGFpcnBsYW5lOwor5a6k5Y+LIDwgcm9vbW1hdGU7CivosrbmipEgPCBiZWxpdHRsZTsKK+iDjOWMhSA8IGtuYXBzYWNrOwor57K+56We6Yyv5LqCIDwgaW5zYW5pdHk7Civpu6jmtL4gPCBwYXJ0aXNhbjsKK+WtkOWxpCA8IHN1YmxheWVyOwor6aOy5paZIDwgYmV2ZXJhZ2U7CivkuInmnIjkuozljYHkuIDomZ8gPCBtYXJjaFwtMjE7CivkurrmiYsgPCBtYW5wb3dlcjsKK+aYn+acn+WFrSA8IHNhdHVyZGF5Owor6Ziy5a6I6ICFIDwgZGVmZW5kZXI7CivkuozmnIggPCBmZWJydWFyeTsKK+aykuiQvSA8IGRvd25mYWxsOwor5ZCr56KzIDwgY2FyYm9uaWM7CivlmInlubToj6/mnIMgPCBjYXJuaXZhbDsKK+acgOeCuiA8IHRoZVwtbW9zdDsKK+WNmuiMqOeTpue0jSA8IGJvdHN3YW5hOwor5LiN55SoIDwgbmVlZFwtbm90Owor6aKo5rC0IDwgZmVuZ3NodWk7CivmsLTot68gPCB3YXRlcndheTsKK+WtkOWlsyA8IGNoaWxkcmVuOwor5LqL5pWFIDwgYWNjaWRlbnQ7CivliLrmv4DniakgPCBzdGltdWx1czsKK+Wjn+aWt+iyqeizoyA8IG1vbm9wb2x5Owor5LiN542oIDwgbm90XC1vbmx5Owor5aWn5YWL5ouJ6I236aasIDwgb2tsYWhvbWE7CivlrbXljJYgPCBicmVlZGluZzsKK+mereifsiA8IHdoaXB3b3JtOwor5LiN54i9IDwgbm90XC13ZWxsOwor5L+d5Yqg5Yip5LqeIDwgYnVsZ2FyaWE7Civmh4LkuosgPCBzZW5zaWJsZTsKK+mjn+aFviA8IGFwcGV0aXRlOwor6ZyH6amaIDwgdG9cLXNob2NrOwor5ZC454WZIDwgdG9cLXNtb2tlOwor6Kyd6KydIDwgdG9cLXRoYW5rOwor5LiN5r+fIDwgbm90XC1nb29kOwor6aCt55ebIDwgaGVhZGFjaGU7Civmmpfnm5IgPCBtYWdhemluZTsKK+S4reatoiA8IHRvXC1jZWFzZTsKK+ism+ipsSA8IGFcLXNwZWVjaDsKK+ael+WcsCA8IHdvb2RsYW5kOwor5p625YuiIDwgYXR0aXR1ZGU7CivosrTml4/ouqvku70gPCBsb3Jkc2hpcDsKK+S4jeS/oeeUqCA8IGRpc3RydXN0Owor5aSq6ZW3IDwgb3ZlcnNpemU7Civli6LpoK0gPCBtb21lbnR1bTsKK+aEmuW8hCA8IGRlcmlzaW9uOwor5b6A6YKEIDwgY29udGFjdHM7CivnpKbnlKIgPCBtaW5lcmFsczsKK+aPkOS+m+iruCA8IHByb3ZpZGVyOwor54iQ6YKKIDwgZmlyZXNpZGU7CivogozogonnmbzpgZQgPCBtdXNjdWxhcjsKK+W3peeoi+W4qyA8IGVuZ2luZWVyOwor6K6K56iuIDwgbXV0YXRpb247CivkuK3nubzlmaggPCByZXBlYXRlcjsKK+irlui/sCA8IHRyZWF0aXNlOwor5rSL55C155C2IDwgbWFuZG9saW47CivogZbljJYgPCBzYW5jdGlmeTsKK+aDoeS9nOWKhyA8IG1pc2NoaWVmOwor6YeN55SzIDwgcmVhZmZpcm07CivmmrTmtKogPCBhXC1zdWRkZW47CivlrZDljYjnt5ogPCBtZXJpZGlhbjsKK+ijveS9nOiAhSA8IHByb2R1Y2VyOwor5LiN5Zyo5LmOIDwgbm90XC1taW5kOwor6aSh5YWSIDwgc3R1ZmZpbmc7Civpn7PmqILlrrYgPCBtdXNpY2lhbjsKK+S9v+m6u+eXuiA8IHBhcmFseXplOwor5Y2D5a2X56+AIDwga2lsb2J5dGU7CivororpmLvlmaggPCB0aGVvc3RhdDsKK+a1geaEn+eWq+iLlyA8IGZsdVwtc2hvdDsKK+a1t+WkliA8IG92ZXJzZWFzOwor546L5a62IDwgcHJpbmNlbHk7Civlk6jlhbUgPCBzZW50aW5lbDsKK+aDs+WutiA8IGhvbWVzaWNrOwor6LK35Li7IDwgY3VzdG9tZXI7CivpoJDmuKwgPCBmb3JlY2FzdDsKK+e+juaXpSA8IHVzXC1qYXBhbjsKK+iyoOWCtSA8IGluZGVidGVkOwor6Zuo6YePIDwgcmFpbmZhbGw7Civlj7jms5UgPCBqdWRpY2lhbDsKK+Wls+aIv+adsSA8IGxhbmRsYWR5Owor5bel5L2c6YGO5bqmIDwgb3Zlcndvcms7CivliqDplbcgPCBsZW5ndGhlbjsKK+WQkOajhCA8IHRvXC1zcHVybjsKK+iZleWIhiA8IGRpc3Bvc2FsOwor5pel576OIDwgamFwYW5cLXVzOwor5aKe6auYIDwgaGVpZ2h0ZW47CivpgbLpoJMgPCBpbmFjdGl2ZTsKK+iyoeS4uyA8IHJpY2hcLW1hbjsKK+WkouipsSA8IGRheWRyZWFtOwor5o+Q5L6b6ICFIDwgc3VwcGxpZXI7CivkuI3mh4ggPCB1bnRpcmluZzsKK+acgOWwkSA8IHNtYWxsZXN0Owor5aCF5Zu65oCnIDwgZmlybW5lc3M7CivorbfnhacgPCBwYXNzcG9ydDsKK+S4u+WusCA8IGRvbWluYXRlOwor5aSi6KaLIDwgdG9cLWRyZWFtOwor5LiN5oCVIDwgZmVhcmxlc3M7CivmspbmtJcgPCB0b1wtcmluc2U7CivkuI3lvoggPCBub3RcLXZlcnk7Civnmb3ljJbnl4UgPCBhbGJpbmlzbTsKK+WJt+mZpCA8IHJvb3RcLW91dDsKK+elnuaApyA8IGRpdmluaXR5Owor57i96KOBIDwgY2hhaXJtYW47CivmsonmtbggPCBwZXJtZWF0ZTsKK+esrOWFreWNgSA8IHNpeHRpZXRoOwor576O5b63IDwgYVwtdmlydHVlOwor6ZuE6L6vIDwgZWxvcXVlbnQ7Civpu57lkI0gPCByb2xsY2FsbDsKK+ixquS/oCA8IGNhdmFsaWVyOwor5paH5piO5YyWIDwgY2l2aWxpemU7CivlpJbomZ8gPCBuaWNrbmFtZTsKK+a1t+S4iiA8IG1hcml0aW1lOwor54ax6KqgIDwgZGV2b3Rpb247CivlkIjmiJAgPCBjb21wb3VuZDsKK+WkluS6pOWumCA8IGRpcGxvbWF0Owor5ZCM5oSPIDwgdG9cLWFncmVlOwor5ZCR5b6MIDwgYmFja3dhcmQ7CivmnI3li5kgPCB0b1wtc2VydmU7CivmsJHnnL4gPCBwb3B1bGFjZTsKK+WogeacmyA8IHByZXN0aWdlOwor5rS75YuVIDwgYWN0aXZpdHk7Civlj5vmlZkgPCBhcG9zdGFjeTsKK+eZvembsuefsyA8IGRvbG9taXRlOwor5aSn6IO9IDwgYWxtaWdodHk7CivmmYLmqZ8gPCBvY2Nhc2lvbjsKK+WPjeaYoCA8IHJlYWN0aW9uOwor5paH6IG3IDwgY2l2aWxpYW47CivlqZrlq4EgPCBtYXJyaWFnZTsKK+WQm+WtkCA8IG5vYmxlbWFuOwor54m55rS+IDwgZGlzcGF0Y2g7Civkvb/nv5LmhaMgPCBhY2N1c3RvbTsKK+S4gOWcmCA8IHJlZ2ltZW50Owor5pKt6Z+zIDwgdHJhbnNtaXQ7Civlj7DluqcgPCBwZWRlc3RhbDsKK+mBjui8iSA8IG92ZXJsb2FkOwor56WW5ZyLIDwgaG9tZWxhbmQ7Civms7DlnIsgPCB0aGFpbGFuZDsKK+ino+mWiyA8IHRvXC11bnRpZTsKK+aEm+WboOaWr+WdpiA8IGVpbnN0ZWluOwor5pqX5a6kIDwgZGFya3Jvb207CivlpbbniZsgPCBtaWxrXC1jb3c7CivlhrDmmbbnn7MgPCBjcnlvbGl0ZTsKK+W5tOmdkiA8IHlvdXRoZnVsOwor5LiA5ZGoIDwgb25lXC13ZWVrOwor5LiA5ZCRIDwgYWxsXC1sb25nOwor5pud5YWJIDwgZXhwb3N1cmU7CivkuI3lsI/lv4MgPCBoZWVkbGVzczsKK+e0jeeoheS6uiA8IHRheHBheWVyOwor54Sh6KuW5L2V6JmVIDwgYW55d2hlcmU7Civlho3lh7rnj74gPCByZWFwcGVhcjsKK+S4gOWMmSA8IHNwb29uZnVsOwor56CU56m2IDwgcmVzZWFyY2g7CivmgKDmg7AgPCBpZGxlbmVzczsKK+WMheeariA8IHdyYXBwaW5nOwor6Z2g6IOM5qSFIDwgYXJtY2hhaXI7CivlpYnnj74gPCBvZmZlcmluZzsKK+S4jeWApiA8IHRpcmVsZXNzOwor5pON5L2c6ICFIDwgb3BlcmF0b3I7CivoqILos7wgPCB0b1wtb3JkZXI7CivntbLni4DniakgPCBmaWxhbWVudDsKK+aWkeeZvSA8IGdyaXp6bGVkOwor5pq05YqbIDwgdmlvbGVuY2U7Civorabmg5UgPCB2aWdpbGFudDsKK+azouWLlSA8IHVuZHVsYXRlOwor5aWH54m5IDwgcGVjdWxpYXI7Civlv6DmlrwgPCBsb3lhbFwtdG87CivnmbzmmI7lrrYgPCBpbnZlbnRvcjsKK+mBuOiIiSA8IHRvXC1lbGVjdDsKK+Wkp+ilv+a0iyA8IGF0bGFudGljOwor6Z+M5bi2IDwgbGlnYW1lbnQ7Civov7cgPCBiZXdpdGNoOwor6L+wIDwgbmFycmF0ZTsKK+i/pSA8IGRpc3RhbnQ7CivkuK0gPCBjZW50cmFsOwor5b+XIDwgcHVycG9zZTsKK+i/jiA8IHJlY2VpdmU7Civlv4wgPCBqZWFsb3VzOwor5ZKMIDwgaGFybW9ueTsKK+i+ryA8IGRpc3B1dGU7CivljrsgPCBnb1wtYXdheTsKK+WvuSA8IGNvcnJlY3Q7CivnnqAgPCBsb29rXC1hdDsKK+W+iyA8IHN0YXR1dGU7CivlvbkgPCBzZXJ2aWNlOwor5by1IDwgc3RyZXRjaDsKK+W3siA8IGFscmVhZHk7CivlvJggPCBlbmxhcmdlOwor5byVIDwgdG9cLXB1bGw7CivlvJQgPCBjb25kb2xlOwor6LyDIDwgY29tcGFyZTsKK+aEjyA8IHRob3VnaHQ7Civov5sgPCBhZHZhbmNlOwor55uhIDwgZXhoYXVzdDsKK+W7iSA8IHVwcmlnaHQ7Civmg4UgPCBmZWVsaW5nOwor55qwIDwgcGltcGxlczsKK+W6liA8IGtpdGNoZW47CivoupMgPCBzdHVtYmxlOwor5bqEIDwgdmlsbGFnZTsKK+W5tiA8IGNvbWJpbmU7CivouaAgPCBzdGVwXC1vbjsKK+eZliA8IGNyYXZpbmc7CivluZUgPCBjdXJ0YWluOwor5LujIDwgcmVwbGFjZTsKK+W4qyA8IHRlYWNoZXI7CivmgLsgPCBjb2xsZWN0Owor55e0IDwgZm9vbGlzaDsKK+WNjiA8IGZsb3dlcnk7Civnl4cgPCBkaXNlYXNlOwor55eFIDwgaWxsbmVzczsKK+WPjSA8IHJldmVyc2U7Civnlo4gPCBuZWdsZWN0Owor5YqhIDwgYWZmYWlyczsKK+W0qSA8IHJ1cHR1cmU7CivnibkgPCBzcGVjaWFsOwor5pyNIDwgY2xvdGhlczsKK+izvSA8IGNvbXBldGU7Civos5EgPCByZWxpZXZlOwor56eRIDwgc2VjdGlvbjsKK+ixqyA8IHJlbGF4ZWQ7CivogZQgPCBjb25uZWN0Owor5L+dIDwgcHJvdGVjdDsKK+mdqSA8IGxlYXRoZXI7CivlsIogPCByZXNwZWN0Owor5ZOBIDwgYXJ0aWNsZTsKK+WwiSA8IG9mZmljZXI7Civlo6sgPCBzY2hvbGFyOwor6YePIDwgbWVhc3VyZTsKK+eoiyA8IGpvdXJuZXk7Civlr6kgPCBleGFtaW5lOwor5p6BIDwgZXh0cmVtZTsKK+S7pCA8IGNvbW1hbmQ7CivmnKogPCBub3RcLXlldDsKK+aMgSA8IHN1c3RhaW47CivljoYgPCBoaXN0b3J5Owor5a6jIDwgZGVjbGFyZTsKK+WulyA8IGxpbmVhZ2U7Civorq4gPCBjb25zdWx0Owor546HIDwgdG9cLWxlYWQ7Civlp5QgPCBhcHBvaW50Owor5YW1IDwgc29sZGllcjsKK+WtlCA8IG9wZW5pbmc7CivorLkgPCBwcnVkZW50Owor6KybIDwgZXhwbGFpbjsKK+agvCA8IHBhdHRlcm47Civoq7ggPCBzZXZlcmFsOwor6KumIDwgY2FyZWZ1bDsKK+aAlSA8IHRvXC1mZWFyOwor54uhIDwgY3VubmluZzsKK+WHhiA8IGFwcHJvdmU7Civnsr4gPCBlc3NlbmNlOwor56ufIDwgZmluYWxseTsKK+iqoCA8IHNpbmNlcmU7CivmlbQgPCBvcmRlcmx5Owor5amJIDwgYW1pYWJsZTsKK+WkhyA8IHByZXBhcmU7Civlj6YgPCBhbm90aGVyOwor6ZmIIDwgZXhoaWJpdDsKK+aVhSA8IGFuY2llbnQ7CivoqJsgPCBzd2luZGxlOwor6KiXIDwgZW50cnVzdDsKK+ioiiA8IGlucXVpcmU7CivniIYgPCBjcmFja2xlOwor5om5IDwgY29tbWVudDsKK+mAgSA8IHNlZVwtb2ZmOwor5aWHIDwgc3RyYW5nZTsKK+eHlSA8IHN3YWxsb3c7Civnh4ggPCBsYW50ZXJuOwor5ri4IDwgdG9cLXN3aW07Civku70gPCBwb3J0aW9uOwor5pWiIDwgdG9cLWRhcmU7Civnhb0gPCBzdGlyXC11cDsKK+acnSA8IGR5bmFzdHk7CivogrIgPCBwcm9kdWNlOwor5Zu+IDwgZGlhZ3JhbTsKK+WImCA8IHN1cm5hbWU7CivlpJUgPCBldmVuaW5nOwor5om/IDwgaW5oZXJpdDsKK+S5oSA8IGNvdW50cnk7Civoo4EgPCBjdXRcLW91dDsKK+a8lCA8IHBlcmZvcm07CivoooIgPCBzbGVldmVzOwor6KGwIDwgZGVjbGluZTsKK+WhniA8IHN0b3BcLXVwOwor5pmvIDwgc2NlbmVyeTsKK+igoiA8IHdyaWdnbGU7Civkvp0gPCByZWx5XC1vbjsKK+eAnSA8IHRyaWNrbGU7Civog5wgPCB2aWN0b3J5Owor5r+hIDwgaW1tZXJzZTsKK+a/nyA8IHRvXC1oZWxwOwor6J+LIDwgY3JpY2tldDsKK+a8hiA8IHZhcm5pc2g7CivmvIEgPCB0b1wtZmlzaDsKK+aVoyA8IHNjYXR0ZXI7Civom4YgPCBtYWdnb3RzOwor5puyIDwgY3Jvb2tlZDsKK+a6tiA8IHRvXC1tZWx0Owor5Y6CIDwgZmFjdG9yeTsKK+iCryA8IHdpbGxpbmc7CivmipMgPCBzY3JhdGNoOwor6JmrIDwgaW5zZWN0czsKK+a5pyA8IHdlbGxcLXVwOwor6Z2gIDwgbGVhblwtb247CivmjoggPCBnaXZlXC10bzsKK+a4hyA8IHRoaXJzdHk7Civmt7ogPCBzaGFsbG93Owor5rerIDwgb2JzY2VuZTsKK+m3hCA8IGNoaWNrZW47Civll4cgPCBtaXNlcmx5Owor5oqxIDwgZW1icmFjZTsKK+edmyA8IGV5ZWJhbGw7Civmi6wgPCBpbmNsdWRlOwor6ZmNIDwgZGVzY2VuZDsKK+engSA8IHByaXZhdGU7CivolJEgPCBkaXNkYWluOwor5rOhIDwgYnViYmxlczsKK+mXuSA8IHF1YXJyZWw7CivphpIgPCB3YWtlXC11cDsKK+ayjCA8IGNoYW90aWM7CivmmrQgPCB2aW9sZW50Owor5oqiIDwgcGx1bmRlcjsKK+evhyA8IGNoYXB0ZXI7CivpsYggPCBjb2RmaXNoOwor6K+4IDwgdmFyaW91czsKK+WPrSA8IHRydW1wZXQ7Civlj5kgPCBleHByZXNzOwor5Y6tIDwgZGlzbGlrZTsKK+mbhSA8IGVsZWdhbnQ7Civpm7cgPCB0aHVuZGVyOwor56ueIDwgY29udGVuZDsKK+aTjSA8IGNvbmR1Y3Q7Civor7ogPCBwcm9taXNlOwor5YyGIDwgaGFzdGlseTsKK+ashSA8IHplbGtvdmE7Civoi7ogPCBiZXJyaWVzOwor6IuXIDwgc3Byb3V0czsKK+eisCA8IGNvbGxpZGU7Civoi5EgPCBwYXN0dXJlOwor5Lu/IDwgaW1pdGF0ZTsKK+apnyA8IG1hY2hpbmU7CivmoI8gPCByYWlsaW5nOwor5YiIIDwgY3V0XC1vZmY7Civni6AgPCB2aWNpb3VzOwor5pigIDwgcHJvamVjdDsKK+W/oCA8IGxveWFsdHk7CivmiY4gPCBwdWxsXC11cDsKK+iFuSA8IHN0b21hY2g7CivoiJIgPCBvcGVuXC11cDsKK+WHtiA8IGN1bHByaXQ7CivmhbAgPCBjb21mb3J0Owor6aSYIDwgc3VycGx1czsKK+aSkiA8IHJlbGVhc2U7CivmhIEgPCBhbnhpZXR5Owor5pakIDwgYVwtY2F0dHk7Civlg5EgPCBzb2pvdXJuOwor5om2IDwgc3VwcG9ydDsKK+avgSA8IGRlc3Ryb3k7CivmorAgPCB3ZWFwb25zOwor6L+dIDwgZGlzb2JleTsKK+S4oiA8IGRpc2NhcmQ7CivogoYgPCBpbmR1bGdlOwor57uVIDwgZW50d2luZTsKK+iBsyA8IHVyZ2VcLW9uOwor6IiwIDwgd2Fyc2hpcDsKK+aBvCA8IGFuZ2VyZWQ7CivovqMgPCBwZXBwZXJ5Owor5peLIDwgcmV2b2x2ZTsKK+WAiSA8IGdyYW5hcnk7CivnvZogPCBwZW5hbHR5Owor5ou+IDwgcGlja1wtdXA7CivmgaIgPCByZXN0b3JlOwor57+BIDwgb2xkXC1tYW47Civnvr0gPCBmZWF0aGVyOwor5oqWIDwgdHJlbWJsZTsKK+S+ryA8IG1hcnF1aXM7Civmg5EgPCBjb25mdXNlOwor6ZuVIDwgZW5ncmF2ZTsKK+WvvyA8IG9sZFwtYWdlOwor6ZSmIDwgYnJvY2FkZTsKK+adjyA8IGFwcmljb3Q7CivmhYwgPCBuZXJ2b3VzOwor5bGgIDwgYnV0Y2hlcjsKK+afjyA8IGN5cHJlc3M7CivpnI0gPCBxdWlja2x5Owor6Zm2IDwgcG90dGVyeTsKK+aRhCA8IHRha2VcLWluOwor6ZevIDwgcnVzaFwtaW47CivmibAgPCBkaXN0dXJiOwor6ZuAIDwgc3BhcnJvdzsKK+mYgSA8IGNoYW1iZXI7CivljaIgPCBjb3R0YWdlOwor5p+cIDwgY2FiaW5ldDsKK+aahyA8IGxlaXN1cmU7CivmhKcgPCBhc2hhbWVkOwor5pm2IDwgY3J5c3RhbDsKK+aZnSA8IGRheXRpbWU7CivnrYsgPCBtdXNjbGVzOwor5pKRIDwgcHJvcFwtdXA7CivloasgPCBmaWxsXC1pbjsKK+aXuiA8IHByb3NwZXI7CivogJcgPCBjb25zdW1lOwor5oKmIDwgcGxlYXNlZDsKK+aWkSA8IG1vdHRsZWQ7Civot7UgPCB0cmFtcGxlOwor5oO2IDwgZmVhcmZ1bDsKK+ewviA8IGFcLWJsaW5kOwor6LSpIDwgcGVkZGxlcjsKK+aIiCA8IGhhbGJlcmQ7CivpkJAgPCBmZXR0ZXJzOwor6Jm5IDwgcmFpbmJvdzsKK+WvoSA8IHdpZG93ZWQ7Civpg4ogPCBzdWJ1cmJzOwor5b69IDwgYVwtYmFkZ2U7Civpso0gPCBhYmFsb25lOwor56yEIDwgaGFpcnBpbjsKK+ayviA8IG1vaXN0ZW47CivnnpIgPCBkZWNlaXZlOwor56uDIDwgZnVybmFjZTsKK+ijlCA8IHByb2dlbnk7CivljKogPCBiYW5kaXRzOwor5qacIDwgcGxhY2FyZDsKK+aeiSA8IHVzZWxlc3M7CivpqocgPCB0ZXJyaWZ5Owor5pKwIDwgY29tcG9zZTsKK+WegyA8IGdhcmJhZ2U7CivpqbwgPCBhXC1jYW1lbDsKK+ixuSA8IGxlb3BhcmQ7CivnvLQgPCBkZWxpdmVyOwor5ZOoIDwgd2hpc3RsZTsKK+WavCA8IHByYXR0bGU7CivmmKcgPCBvYnNjdXJlOwor5pexIDwgZHJvdWdodDsKK+iBgiA8IHdoaXNwZXI7Civojr0gPCB0aGlja2V0Owor5Y6uIDwgc2VydmFudDsKK+iMqCA8IGNhbHRyb3A7CivnspggPCB2aXNjb3VzOwor5py9IDwgZGVjYXllZDsKK+eElSA8IHNoaW5pbmc7CivnhoQgPCBwdXRcLW91dDsKK+mAviA8IGdvXC1vdmVyOwor6YaLIDwgdmluZWdhcjsKK+aWjCA8IHJlZmluZWQ7CivmgZUgPCBmb3JnaXZlOwor5rKmIDwgYmVcLWxvc3Q7CivlsrEgPCBkYWlzaGFuOwor6K6zIDwgY29uY2VhbDsKK+WylCA8IGRpdmVyZ2U7CivlnpIgPCByYW1wYXJ0Owor57+YIDwgdHVyblwtdXA7Civop5EgPCBwZWVwXC1hdDsKK+aLjiA8IHRvXC1oYXVsOwor5ZmcIDwgdmVyYm9zZTsKK+WHuSA8IGNvbmNhdmU7CivmkqkgPCBsaWZ0XC11cDsKK+W0vSA8IGFcLWNoaWxkOwor5raFIDwgYmxhY2tlbjsKK+ewjCA8IGZhbGxpbmc7Civor5sgPCBleGVjdXRlOwor5o6zIDwgY2FwdHVyZTsKK+mmhSA8IGZpbGxpbmc7CivnoYUgPCBzaWxpY29uOwor5oqoIDwgaW1wZWFjaDsKK+iCviA8IGtpZG5leXM7CivplK0gPCBzcGluZGxlOwor6IysIDwgaGFydmVzdDsKK+iwpCA8IHNsYW5kZXI7CivpkrMgPCBwaW5jZXJzOwor5529IDwgc3RhcmluZzsKK+mYsSA8IHBpdGZhbGw7CivmsYAgPCBzYW5kYmFyOwor56ekIDwgYmFsYW5jZTsKK+aZviA8IGFpclwtZHJ5Owor6LeaIDwgc3RhZ2dlcjsKK+iOniA8IHNtaWxpbmc7CivpuKUgPCBzZWFndWxsOwor6JGGIDwgcmVzZXJ2ZTsKK+awoiA8IGFtbW9uaWE7CivluKcgPCBwaWN0dXJlOwor5L2vIDwgcHJldGVuZDsKK+eDrCA8IGNpbmRlcnM7CivomowgPCBveXN0ZXJzOwor6LCGIDwgcGF0aWVudDsKK+eZniA8IGxlcHJvc3k7CivllYQgPCB0b1wtcGVjazsKK+eHjiA8IHRvXC1idXJuOwor6L+zIDwgcGFzc1wtYnk7CivmgbggPCBzYWRuZXNzOwor5ZKCIDwgdG9cLXN1Y2s7Civnm7kgPCB0b1wtZG96ZTsKK+S/viA8IHNvXC10aGF0Owor6LCaIDwgcHJvdmVyYjsKK+aOuCA8IHRvXC1kdXN0Owor5YyuIDwgdG9cLWxhY2s7CivluaEgPCBwZW5uYW50Owor5ZuxIDwgY2hpbW5leTsKK+W0giA8IGxhb3NoYW47CivonYwgPCB0YWRwb2xlOwor6ZOAIDwgdXJhbml1bTsKK+aMmyA8IHRhbmdsZWQ7Civnu68gPCBzY2FybGV0Owor6bioIDwgYnVzdGFyZDsKK+iclyA8IGFcLXNuYWlsOwor5oGrIDwgaW5cLXBhaW47CivosIAgPCBmbGF0dGVyOwor6LiuIDwgdGlwXC10b2U7CivppoogPCBzcG9pbGVkOwor6ZKZIDwgY2FsY2l1bTsKK+aNsSA8IHB1dFwtb2ZmOwor6JK/IDwgbXVnd29ydDsKK+mFtiA8IGVuenltZXM7CivooaIgPCBoaWdod2F5Owor56O6IDwgc3VscGh1cjsKK+i5qSA8IHRvXC1saW1wOwor5rWjIDwgdG9cLXdhc2g7CivnlrkgPCBtZWFzbGVzOwor6Z2lIDwgZGltcGxlczsKK+aEhiA8IGFcLWZhdWx0Owor6bi1IDwgb3N0cmljaDsKK+eqlSA8IHNsZW5kZXI7Civov6kgPCBiZVwtbmVhcjsKK+S9sCA8IGh1bmRyZWQ7CivpkrkgPCBjeW1iYWxzOwor6Z28IDwgdGFydGFyczsKK+eFsiA8IHRvXC1oZWF0Owor542QIDwgcm9lYnVjazsKK+S9nSA8IHJpY2tldHM7Civok58gPCBjaXJjaXVtOwor6bucIDwgZGlzbWlzczsKK+aRiCA8IGV4Y2x1ZGU7Civpo5MgPCBjeWNsb25lOwor6IOxIDwgYmxhZGRlcjsKK+mlvSA8IGZlcnJ1bGU7Civppo8gPCBkaXN0aWxsOwor6IuvIDwgYmVuemVuZTsKK+a3vCA8IGFcLWZsb29kOwor6ZOxIDwgaXJpZGl1bTsKK+iRqSA8IGZsb3dlcnM7CivpgKEgPCByZXRyZWF0Owor6YC2IDwgd2luZGluZzsKK+iQuCA8IGRvZ3dvb2Q7CivmjJ0gPCB0b1wtYmVhdDsKK+eGtSA8IGVudHJvcHk7CivnhaggPCB0b1wtc3RldzsKK+egkiA8IGFyc2VuaWM7CivmmYEgPCBtb3JuaW5nOwor5YeHIDwgZGV3ZHJvcDsKK+WZmCA8IHBvdXRpbmc7CivllKMgPCBjaGF0dGVyOwor6aqgIDwgY2hhcmdlcjsKK+aAhCA8IGFubm95ZWQ7CivplIIgPCBsaXRoaXVtOwor55alIDwgc2NhYmllczsKK+eolyA8IGRhcm5lbHM7CivmtK4gPCBjbGVhbnNlOwor6YWuIDwga2V0b25lczsKK+iFmiA8IGJ1dHRvY2s7CivohbEgPCB0ZW5kb25zOwor6aaUIDwgdG9cLWZlZWQ7CivmkKAgPCB0b1wtZGF1YjsKK+mFoSA8IGZsdXNoZWQ7CivlkZIgPCB1bmNsZWFyOwor55enIDwgY2hvbGVyYTsKK+espCA8IGFcLWJyb29tOwor6Z+rIDwgc2VjcmV0ZTsKK+aAmyA8IGdyaWV2ZWQ7CivnmrQgPCBjaGFwcGVkOwor552iIDwgZ2F6ZVwtYXQ7CivloawgPCBwbGF0ZWF1Owor6J6vIDwgbmlwcGVyczsKK+eNkiA8IG1hc3RpZmY7CivmsoYgPCBhXC1mZXJyeTsKK+W4lCA8IGFcLXNraXJ0Owor6JaFIDwgdG9cLXdlZWQ7CivojrQgPCBsZXR0dWNlOwor5o2tIDwgdG9cLW9wZW47Civoka0gPCBidWxydXNoOwor5YClIDwgYm9vcmlzaDsKK+a6tCA8IGJyb21pbmU7Civlu5sgPCBhXC1zdG9yZTsKK+aPuCA8IGhhbmRmdWw7Civku7UgPCBzaW1pbGFyOwor6auLIDwgaGlwYm9uZTsKK+iCsSA8IGZvcmVhcm07Civomo0gPCBtdXNzZWxzOwor6ZWTIDwgZ2FsbGl1bTsKK+mTiyA8IGJpc211dGg7Civog50gPCBjYWxsb3VzOwor6LWNIDwgcHJlc2VudDsKK+e/pSA8IHRvXC1zb2FyOwor6JyeIDwgZ3JhcHN1czsKK+iwoCA8IGNvdW5zZWw7Civnn6wgPCBhXC1kd2FyZjsKK+a6siA8IHVyaW5hdGU7CivolbsgPCBidWRkaW5nOwor6bmIIDwgcGVsaWNhbjsKK+mViSA8IGNhZG1pdW07CivorIcgPCBzdHV0dGVyOwor5oa3IDwgcGFpbmZ1bDsKK+iwoSA8IHJpc2VcLXVwOwor6KSKIDwgY3JhbXBlZDsKK+mSjSA8IHRob3JpdW07CivmsKogPCBrcnlwdG9uOwor6L+uIDwgdG9cLXJpc2U7Civok40gPCBtaWxmb2lsOwor6J69IDwga2F0eWRpZDsKK+WJgCA8IHNoYXJwZW47CivouYAgPCB0b1wtc2tpcDsKK+mUjiA8IGNhZXNpdW07CivpkocgPCB5dHRyaXVtOwor5rCaIDwgdHJpdGl1bTsKK+eKuCA8IG1hbW1vdGg7Civoj7ggPCB0b1wtZmFkZTsKK+mysSA8IGhlcnJpbmc7Civoup4gPCB0b1wtd2FsazsKK+mTjCA8IG5pb2JpdW07CivnlYAgPCB0b1wtZ2l2ZTsKK+mBmCA8IHRvXC1tZWV0Owor5rO3IDwgcmFpbmluZzsKK+iSoSA8IGJ1cmRvY2s7Civpq4wgPCBrbmVlY2FwOwor6bOZIDwgYmlnaGVhZDsKK+e1tyA8IGNvbmZpbmU7CivnrqYgPCBiZWRcLW1hdDsKK+eYmCA8IGZpc3R1bGE7CivplYQgPCBmZXJtaXVtOwor56WGIDwgb3JtYXpkYTsKK+WroCA8IGFcLXdpZG93Owor5pC0IDwgZXh0cmFjdDsKK+WDpiA8IHRvXC1oZWlyOwor54m95omvIDwgaW52b2x2ZTsKK+eci+W+l+imiyA8IHZpc2libGU7CivlqZrkuosgPCB3ZWRkaW5nOwor5qqi6ZaxIDwgaW5zcGVjdDsKK+iotOiLpiA8IGdydW1ibGU7CivmnInos4fmoLwgPCBlbnRpdGxlOwor5pqr5YGcIDwgc3VzcGVuZDsKK+atoei/juWFieiHqCA8IHdlbGNvbWU7Civop7jop5IgPCBhbnRlbm5hOwor5ZyT55+z6aCtIDwgYm91bGRlcjsKK+e9t+S8kSA8IGdpdmVcLXVwOwor5aWn5Zyw5YipIDwgYXVzdHJpYTsKK+iqjeecnyA8IGVhcm5lc3Q7CivmmYLlsJogPCBmYXNoaW9uOwor54mI5pysIDwgdmVyc2lvbjsKK+W6h+ittyA8IHNoZWx0ZXI7CivphbjmgKcgPCBhY2lkaXR5Owor57eo57qCIDwgY29tcGlsZTsKK+WQm+S4uyA8IG1vbmFyY2g7CivnuL3nkIYgPCBwcmVtaWVyOwor5aSp54S2IDwgbmF0dXJhbDsKK+edoeihoyA8IHBhamFtYXM7CivmlbTnkIYgPCBhcnJhbmdlOwor54WZ6I2JIDwgdG9iYWNjbzsKK+eHpueImyA8IGdsaXR0ZXI7Civlj6/li5UgPCBtb3ZhYmxlOwor5rC05omLIDwgbWFyaW5lcjsKK+WCs+mBk+mDqCA8IG1pc3Npb247Civlj6PlkIMgPCBzdGFtbWVyOwor5Ym15LiW57SAIDwgZ2VuZXNpczsKK+iPj+iYrSA8IGhvbGxhbmQ7Civoj6Doj5wgPCBzcGluYWNoOwor5Y2B5pyIIDwgb2N0b2JlcjsKK+WNg+S9jeWFgyA8IGtpbG9iaXQ7Civmj5rogbLlmaggPCBzcGVha2VyOwor5q+b5q+vIDwgYmxhbmtldDsKK+euoeeQhuWToSA8IG1hbmFnZXI7Civpmb3oh7ogPCBiYWxjb255Owor54uC5ZacIDwgZWNzdGFzeTsKK+awuOaBhiA8IGV0ZXJuYWw7Civoq4vmsYIgPCByZXF1ZXN0Owor5rW36LuN57i95Y+45LukIDwgYWRtaXJhbDsKK+WHuui1sCA8IHRvXC1mbGVlOwor6ICB6LOH5qC8IDwgdmV0ZXJhbjsKK+aViOebiiA8IGJlbmVmaXQ7Civph43lipsgPCBncmF2aXR5Owor6YeR6YqA5aGKIDwgYnVsbGlvbjsKK+eivOWtlyA8IG51bWVyYWw7CivlvITnoo4gPCBjcnVtYmxlOwor5rKZ5LiB6a2aIDwgc2FyZGluZTsKK+WnkOWmuSA8IHNpc3RlcnM7Civnm67pjIQgPCBjYXRhbG9nOwor5b+D5oSbIDwgYmVsb3ZlZDsKK+W8hOefrSA8IHNob3J0ZW47CivnhKHomZUgPCBub3doZXJlOwor6K6K5Y6aIDwgdGhpY2tlbjsKK+WmluaAqiA8IG1vbnN0ZXI7Civnt4rnt4ogPCBjbG9zZWx5Owor6Zqx56eBIDwgcHJpdmFjeTsKK+mXnOmNtSA8IGNydWNpYWw7Civlp7/li6IgPCBwb3N0dXJlOwor5a6J5o+Q55Oc5bO2IDwgYW50aWd1YTsKK+WWquW/g+eXheeLgiA8IGx1bmF0aWM7CivlvLfng4ggPCBpbnRlbnNlOwor5aW95oiwIDwgd2FybGlrZTsKK+W8hOeauiA8IGNydW1wbGU7Civnm7jpgKMgPCB0b1wtbGluazsKK+aWh+azlSA8IGdyYW1tYXI7Civlj6TkvoYgPCBvbGR0aW1lOwor5aSp5rCjIDwgd2VhdGhlcjsKK+mFkuW7oCA8IGJyZXdlcnk7CivlvoHmnI0gPCBjb25xdWVyOwor57Si6YGTIDwgcm9wZXdheTsKK+mZuOe6jCA8IGluXC10dXJuOwor6Zqx556eIDwgdG9cLWhpZGU7CivlpJbmtYEgPCBvdXRmbG93Owor5bel6aCtIDwgZm9yZW1hbjsKK+mBoOerryA8IGZhclwtZW5kOwor5Ye657SN5ZOhIDwgY2FzaGllcjsKK+WKoOeUnCA8IHN3ZWV0ZW47Civpn7Pkv6EgPCBtZXNzYWdlOwor6Zqc56SZIDwgYmFycmllcjsKK+itpuWRiiA8IHRvXC13YXJuOwor54S26ICMIDwgaG93ZXZlcjsKK+Wkp+amgiA8IHJvdWdobHk7CivmhJvpgYrnjqkgPCBwbGF5ZnVsOwor5qC85a2Q5qOJ5biDIDwgZ2luZ2hhbTsKK+mLvOeQtOWutiA8IHBpYW5pc3Q7Civpm7vmsaAgPCBiYXR0ZXJ5Owor5q+U5pa5IDwgYW5hbG9neTsKK+ioiOaVuOiAhSA8IGNvdW50ZXI7CivpgIDokL0gPCBzdWJzaWRlOwor6K6K5LqCIDwgdHVybW9pbDsKK+eGsea9riA8IHVwc3VyZ2U7Civop6PliZblrbggPCBhbmF0b215Owor5qy6556eIDwgdG9cLWZvb2w7CivmnInlrbjllY8gPCBsZWFybmVkOwor6K2w5YO5IDwgYmFyZ2FpbjsKK+e6luW8sSA8IGZyYWdpbGU7CivopovorYkgPCB3aXRuZXNzOwor5Yqg54axIDwgaGVhdGluZzsKK+WNiuWQiuWtkCA8IGRhYmJsZXI7CivpnZ7luLggPCB1bnVzdWFsOwor5YuH5rCjIDwgY291cmFnZTsKK+WkseaViCA8IHRvXC1mYWlsOwor5YWI6amFIDwgcGlvbmVlcjsKK+eKr+S6uiA8IGNvbnZpY3Q7Civpm6PmsJEgPCByZWZ1Z2VlOwor6YG654mpIDwgcmVtbmFudDsKK+avkuaJkyA8IGJlYXRcLXVwOwor6Yac5LqLIDwgc2NhbmRhbDsKK+mZjee0miA8IGRlZ3JhZGU7CivnhKbns5YgPCBjYXJhbWVsOwor5pGY6KaBIDwgc3VtbWFyeTsKK+mAsueoiyA8IHByb2Nlc3M7CivmkZTop5IgPCB3cmVzdGxlOwor5YyF5omOIDwgd3JhcFwtdXA7Civlu6LniakgPCBydWJiaXNoOwor5aSp6Iqx5p2/IDwgY2VpbGluZzsKK+aumOagqiA8IHN0dWJibGU7Civlpb3lpYcgPCBjdXJpb3VzOwor55m76Zm4IDwgdG9cLWxhbmQ7Civnm6PoppYgPCBvdmVyc2VlOwor5b2i5oiQIDwgdG9cLWZvcm07CivnuL3mlbggPCBhXC10b3RhbDsKK+W+t+WciyA8IGdlcm1hbnk7CivntbHntbEgPCB0b3RhbGx5Owor5aSn55uk5a2QIDwgcGxhdHRlcjsKK+eEoeeqriA8IGVuZGxlc3M7Civnn67mnpcgPCBjb3BwaWNlOwor5aKD55WMIDwgYm91bmRyeTsKK+S4jeiDveS4jSA8IGhhdmVcLXRvOwor5byE5q2qIDwgZGlzdG9ydDsKK+WGsOiiiyA8IGljZVwtYmFnOwor5Ye65YWl5Y+jIDwgZ2F0ZXdheTsKK+a2iOmYsumaiuWToSA8IGZpcmVtYW47CivotbfnmrrntIsgPCBzaHJpdmVsOwor6Zax6K6AIDwgdG9cLXJlYWQ7Civpg7Xlt64gPCBwb3N0bWFuOwor6Z2i5ZquIDwgdG9cLWZhY2U7Civop7jnmbwgPCB0cmlnZ2VyOwor54Cd6Z2SIDwgYXNwaGFsdDsKK+WNs+S+vyA8IGV2ZW5cLWlmOwor5aSn5buIIDwgZWRpZmljZTsKK+eZvOmFtSA8IGZlcm1lbnQ7Civlubjnpo8gPCBibGVzc2VkOwor54Sh55uKIDwgbm9cLWdvb2Q7CivpmLLnpqYgPCBkZWZlbnNlOwor5q235pmCIDwgdG9cLWxhc3Q7CivmiZjlhZLmiYAgPCBudXJzZXJ5Owor6Im357SF6ImyIDwgY3JpbXNvbjsKK+eJueioseeLgCA8IGNoYXJ0ZXI7Civmi5bmm7PmqZ8gPCB0cmFjdG9yOwor54mI5Yi7IDwgY2FydmluZzsKK+mFjeWBtiA8IGNvbnNvcnQ7CivpoJDoqIDlrrYgPCBwcm9waGV0Owor5pWR5o+0IDwgdG9cLXNhdmU7Civml6Xlh7ogPCBzdW5yaXNlOwor5rCj5YCZIDwgY2xpbWF0ZTsKK+e5g+W4tiA8IGJhbmRhZ2U7CivpgJfnlZkgPCBzdGF5XC1hdDsKK+WIqeeUqCA8IGV4cGxvaXQ7CivljYDljYAgPCB0cml2aWFsOwor6IOM5Y+b6ICFIDwgdHJhaXRvcjsKK+W+ruWFiSA8IGdsaW1tZXI7Civmr4/lpJwgPCBuaWdodGx5Owor6YGV5rOVIDwgaWxsZWdhbDsKK+WHuuennyA8IHRvXC1yZW50Owor6ZuA5paRIDwgZnJlY2tsZTsKK+Wkp+S9v+mkqCA8IGVtYmFzc3k7CivlpKfojYnljp8gPCBwcmFpcmllOwor54mp55CG5a24IDwgcGh5c2ljczsKK+aUtuaTmiA8IHJlY2VpcHQ7CivljYHlha0gPCBzaXh0ZWVuOwor57mq5ZyWIDwgdG9cLWRyYXc7Civnn6XmgokgPCB0b1wta25vdzsKK+eGseaDhSA8IGNvcmRpYWw7CivljYHlgI0gPCB0ZW5mb2xkOwor5Ymb5q+bIDwgYnJpc3RsZTsKK+apq+iHpSA8IHJlY2xpbmU7CivliLrmv4AgPCBwcm92b2tlOwor57aT5r+fIDwgZWNvbm9teTsKK+e0sOevgCA8IGRldGFpbHM7CivmibPkuI3lgJLlhZIgPCB0dW1ibGVyOwor5qiC6LajIDwgZGVsaWdodDsKK+eIrOifsuWLleeJqSA8IHJlcHRpbGU7CivntKLppqzoo6EgPCBzb21hbGlhOwor5Y2B5LqUIDwgZmlmdGVlbjsKK+WkmuWkpyA8IGhvd1wtYmlnOwor5YWx6JmVIDwgY29leGlzdDsKK+aUquaLjCA8IHRvXC1zdGlyOwor6LyV6LyVIDwgbGlnaHRseTsKK+W7o+aSree2siA8IG5ldHdvcms7Civlt7TmoLzpgZQgPCBiYWdoZGFkOwor5Yip5r2kIDwgcHJvZml0czsKK+WkluenkemGq+eUnyA8IHN1cmdlb247Civoo53ovIkgPCB0b1wtbG9hZDsKK+WMheWQqyA8IGNvbnRhaW47Civmk6/mo4QgPCBhYmFuZG9uOwor5Zyo77mN5LmL6ZaTIDwgYmV0d2VlbjsKK+eZvOihjCA8IHB1Ymxpc2g7Civnmb3on7sgPCB0ZXJtaXRlOwor6YG45omLIDwgYXRobGV0ZTsKK+WkseWOuyA8IHRvXC1sb3NlOwor6Lyq6KmiIDwgdG9cLXBvbGw7CivoirHosrsgPCBleHBlbnNlOwor6JGJ5a2QIDwgZm9saWFnZTsKK+iNieeovyA8IG91dGxpbmU7CivmrabluqsgPCBhcnNlbmFsOwor6YqA6KGM5qWtIDwgYmFua2luZzsKK+W8hOW5syA8IGZsYXR0ZW47CivliLbmraIgPCB0b1wtY3VyYjsKK+eFp+aQrCA8IHRvXC1jb3B5Owor6b6hIDwgdG9cLWJsb3c7Civoo5zosrwgPCBzdWJzaWR5Owor6b2wIDwgdG9cLWJpdGU7CivpvakgPCB0b1wtY2hldzsKK+ato+W4uCA8IHJlZ3VsYXI7CivpvLcgPCBhXC1tb3VzZTsKK+aWh+WMliA8IGN1bHR1cmU7CivltKnpmbcgPCBmYWxsXC1pbjsKK+m4kSA8IGFcLWxhcmdlOwor5be057WQIDwgZmF3blwtb247Civpt58gPCBwaG9lbml4Owor6ba6IDwgd2FndGFpbDsKK+m2uSA8IHRoZVwtb3dsOwor5omL5o6o6LuKIDwgdHJvbGxleTsKK+eauue0iyA8IHdyaW5rbGU7CivmrIrmnZYgPCBzY2VwdGVyOwor55m+6JCsIDwgbWlsbGlvbjsKK+WkmuWNiiA8IGNoaWVmbHk7CivpgLHmnKsgPCB3ZWVrZW5kOwor6bSrIDwgYVwtc25pcGU7CivliJ3mraUgPCBpbml0aWFsOwor5Yue5YuV6ICFIDwgbGFib3JlcjsKK+eFqeaDsSA8IGFnb25pemU7CivpspogPCBhbmNob3Z5Owor54Wp5oK2IDwgYW5ndWlzaDsKK+W5q+a0viA8IGZhY3Rpb247Civnvo7mtLLosbkgPCBwYW50aGVyOwor6KGo6Z2iIDwgc3VyZmFjZTsKK+ezn+ezlSA8IHRvb1wtYmFkOwor57i95YmHIDwgcHJvZmlsZTsKK+maquWzuyA8IGFyZHVvdXM7CivliLbmnI0gPCB1bmlmb3JtOwor5YOP6YqAIDwgc2lsdmVyeTsKK+mtnCA8IG1lcm1haWQ7CivliY3mj5AgPCBwcmVtaXNlOwor57at5oyBIDwgdG9cLWtlZXA7CivmjqXop7ggPCBjb250YWN0Owor6Iqx5bSX55+zIDwgZ3Jhbml0ZTsKK+WkpeS8tCA8IHBhcnRuZXI7CivpqqsgPCBiZVwtYmVudDsKK+mqiSA8IHJ1bm5pbmc7Civmk4HmnIkgPCB0b1wtaGF2ZTsKK+WcqOWFtuS4rSA8IHRoZXJlaW47CivpqZkgPCBcKGhvcnNlXCk7CivpqZIgPCBkYXBwbGVkOwor5q2k5aSWIDwgYmVzaWRlczsKK+W8t+WItiA8IGVuZm9yY2U7Civou4rovJsgPCB2ZWhpY2xlOwor6Iqs6JitIDwgZmlubGFuZDsKK+aVuOS9jSA8IGRpZ2l0YWw7CivljYHlhITkvY3lhYMgPCBnaWdhYml0Owor6aKrIDwgYVwtc3Rvcm07Civln7fnhacgPCBsaWNlbnNlOwor54Sh5pWIIDwgaW5cLXZhaW47Civpn6MgPCBib3dcLWJhZzsKK+mfhSA8IGhhcm5lc3M7CivntJnnhZkgPCBjaWdhcmV0Owor55y65pybIDwgbG9va291dDsKK+mXnOeFpyA8IGNvbmNlcm47Civpm5ogPCBhXC1oZXJvbjsKK+WGsOeJhyA8IGJvcm5lb2w7CivliofloLQgPCB0aGVhdGVyOwor54ax5YiHIDwgZmVydmVudDsKK+mZviA8IGluXC1maWxlOwor5LqU5pyI5Y2B5LqU6JmfIDwgbWF5XC0xXC01Owor6ZmeIDwgcHJvbW90ZTsKK+mYu+aUlCA8IHRvXC1zdG9wOwor6ZinIDwgc2xvcGluZzsKK+W8n+WFhCA8IGJyb3RoZXI7CivnnInmr5sgPCBleWVicm93Owor6KKr6KSlIDwgYmVkZGluZzsKK+aTuuWtkCA8IG1hbGFyaWE7Civmk5Tlv4MgPCBhbnhpb3VzOwor6Lqr6auU6Zqc5a6zIDwgY3JpcHBsZTsKK+WFrOekviA8IGNvbW11bmU7Civpk70gPCB0ZXJiaXVtOwor6ZO8IDwgcmhlbml1bTsKK+mTqiA8IGhhZm5pdW07Civpk6UgPCB0aHVsaXVtOwor6ZORIDwgcmhvZGl1bTsKK+mSrCA8IGhvbG1pdW07CivntZDmnpwgPCBvdXRjb21lOwor5q2y5YWlIDwgcmV2ZW51ZTsKK+WiiuWtkCA8IGN1c2hpb247Civnm6PmuKwgPCBtb25pdG9yOwor5qK15bid5bKhIDwgdmF0aWNhbjsKK+WQjOe+qeWtlyA8IHN5bm9ueW07CivpjLYgPCBhXC13YXRjaDsKK+msouinkiA8IHRlbXBsZXM7CivpjIAgPCBcKG1ldGFsXCk7Civmj63npLogPCB0b1wtc2hvdzsKK+mLiiA8IGFcLXBva2VyOwor6YuCIDwgYml0XC1jdXA7Civnl5Xot6EgPCB2ZXN0aWdlOwor5Ymd5aWqIDwgZGVwcml2ZTsKK+i+suawkSA8IHBlYXNhbnQ7CivmhJvlnIvogIUgPCBwYXRyaW90Owor5bug5ZWGIDwgY29tcGFueTsKK+Wls+S4u+S6uiA8IGhvc3Rlc3M7Civnmb3mprTnn7MgPCBsZXVjaXRlOwor5L2g6Ieq5bexIDwgdGh5c2VsZjsKK+WGkueFmSA8IHNtb2tpbmc7CivnsKHopoEgPCBjb25jaXNlOwor57SF5rW3IDwgcmVkXC1zZWE7CivlhrDmsrMgPCBnbGFjaWFsOwor57SU5q2jIDwgZ2VudWluZTsKK+WIqOW3pSA8IHBsYW5pbmc7CivmtL7ntablt6XkvZwgPCB0b1wtdGFzazsKK+W5u+W9sSA8IHBoYW50b207Civoh6rnlLHmtL4gPCBsaWJlcmFsOwor5ouU6aCCIDwgdG9wcGluZzsKK+eWvui1sCA8IHNjYW1wZXI7CivovZIgPCBjaGFyaW90Owor5bey5ruFIDwgZXh0aW5jdDsKK+exoOe9qSA8IGVudmVsb3A7Civou7IgPCBhXC13aGVlbDsKK+i7mCA8IHdhclwtY2FyOwor6J6i54Gr6J+yIDwgZmlyZWZseTsKK+i6piA8IHRvXC1qdW1wOwor6LqdIDwgdG9cLXBhc3M7Civnmb7liIbkuYsgPCBwZXJjZW50Owor6ayG57eK5bi2IDwgZWxhc3RpYzsKK+iWlOiWh+iKseiVviA8IHJvc2VidWQ7CivpmYTlr4QgPCBlbmNsb3NlOwor54Sh6KuW5L2V5Lq6IDwgd2hvZXZlcjsKK+i3rCA8IHRvXC1zdGVwOwor5a+E5a6/55SfIDwgYm9hcmRlcjsKK+i3lSA8IHNodWZmbGU7CivotrcgPCB0b1wtam9sdDsKK+e1qOW4gyA8IGZsYW5uZWw7CivlhJjnrqEgPCBkZXNwaXRlOwor6Zi75bC8IDwgZGFtcGluZzsKK+eUnOm7niA8IGRlc3NlcnQ7Civnmbznj74gPCB0b1wtZmluZDsKK+i0hyA8IGFmZmFibGU7CivotIMgPCB0b1wtZWFybjsKK+mWg+eIjSA8IGZsaWNrZXI7CivooaPoo50gPCBnYXJtZW50Owor6LOdIDwgcHJlaW91czsKK+WCmeiouyA8IHJlbWFya3M7Civpl6HmmI4gPCBjbGFyaWZ5Owor5Y+X5q2h6L+OIDwgcG9wdWxhcjsKK+ixlyA8IGNsYW1vdXI7CivliLDloLQgPCBzaG93XC11cDsKK+ebm+acgyA8IHBhZ2VhbnQ7CivorowgPCBhXC1mZWFzdDsKK+issyA8IHRvXC1zaW5nOwor6KyGIDwgYmVndWlsZTsKK+mjm+apn+WgtCA8IGFpcnBvcnQ7Civoqb4gPCBub2lzaWx5Owor5YG96K2JIDwgcGVyanVyeTsKK+ipqyA8IHRvXC1icmFnOwor6KmFIDwgdG9cLXNlbGw7Civnhafkuq4gPCBsaWdodGVuOwor6Zmz5YiXIDwgZGlzcGxheTsKK+mYv+eIvuWPiuWIqeS6niA8IGFsZ2VyaWE7Civop6EgPCBhbnRsZXJzOwor6Zm95YKYIDwgcGFyYXNvbDsKK+WxsemggiA8IGhpbGx0b3A7CivmjoznrqEgPCBjb250cm9sOwor6KWcIDwgZmx1dHRlcjsKK+ilgyA8IGNvbW1lbmQ7CivopJQgPCBjb21wbGV4Owor6KK6IDwgaG9sZFwtdXA7Civmk6DlhaUgPCBpbnRydWRlOwor6KG1IDwgY2hlbWlzZTsKK+asiuWIqSA8IGFcLXBvd2VyOwor6Iqx55KwIDwgZ2FybGFuZDsKK+WFrOawkSA8IGNpdGl6ZW47Civlt7TmnpcgPCBiYWhyYWluOwor5YG96KOdIDwgdG9cLWZha2U7CivloIXlvLcgPCBzdGF1bmNoOwor5pav55Om5biM6KOhIDwgc3dhaGlsaTsKK+iIquepuumDteS7tiA8IGFpcm1haWw7Civkup7nibnomK3lpKcgPCBhdGxhbnRhOwor6YCy6YCA5YWp6ZujIDwgZGlsZW1tYTsKK+W5s+WdhyA8IGF2ZXJhZ2U7Civlr6bpmpvkuIogPCBpblwtZmFjdDsKK+WIuuWIgCA8IGJheW9uZXQ7CivnsLjnrpUgPCBkdXN0cGFuOwor5YWF5ru/IDwgZnVsbFwtb2Y7CivluLPluJggPCBkcmFwZXJ5Owor6Ja9IDwgXChncmFzc1wpOwor6Ja2IDwgdG9cLWJ1cnk7Civlj43mh4nloIYgPCByZWFjdG9yOwor6JaTIDwgZ2luc2VuZzsKK+a/gOe0oCA8IGhvcm1vbmU7Civop6PliZYgPCBkaXNzZWN0Owor6I6K5Zq0IDwgc3RhdGVseTsKK+W5s+WPsCA8IHRlcnJhY2U7Civoj6ogPCBoZW5iYW5lOwor6I+nIDwgc3RpYmVuZTsKK+aLjeizoyA8IGF1Y3Rpb247Civmu4vppIogPCBub3VyaXNoOwor6Kej5YOxIDwgdG9cLWZpcmU7CivojoAgPCB0b1wtZmFybTsKK+WIsOS+hiA8IGFycml2YWw7CivluorlgbQgPCBiZWRzaWRlOwor5qiZ5qeNIDwgamF2ZWxpbjsKK+eWq+iLlyA8IHZhY2NpbmU7CivotoXpvaEgPCB0b29cLW9sZDsKK+WboOe0oCA8IGVsZW1lbnQ7CivlhrDlt50gPCBnbGFjaWVyOwor6ZeK5bqmIDwgYnJlYWR0aDsKK+iIkyA8IHRvXC1saWNrOwor6IedIDwgYmVcLWJhcmU7CivovZ/mk4ogPCBib21iYXJkOwor6IWWIDwgcGVwdG9uZTsKK+WGsOWztiA8IGljZWxhbmQ7CivnlbDmlZnlvpIgPCBoZWF0aGVuOwor5ZyW55WrIDwgZHJhd2luZzsKK+iEnSA8IGRpc3RlbmQ7CivliIbmnpDkurrlo6sgPCBhbmFseXN0Owor5Yaw5bGxIDwgaWNlYmVyZzsKK+WklumCpuS6uiA8IGdlbnRpbGU7Civnp7vmsJHogIUgPCBtaWdyYW50Owor5LiN5ZCJ5YipIDwgb21pbm91czsKK+e9liA8IGt3dWt5ZWw7CivmnIDkvY7pmZDluqYgPCBtaW5pbXVtOwor57yyIDwgdG9cLXJlZWw7CivnmYLms5UgPCB0aGVyYXB5Owor5Ym16YCg6ICFIDwgY3JlYXRvcjsKK+WwlumggiA8IHN0ZWVwbGU7Civohbnpg6ggPCBhYmRvbWVuOwor55m85pS+IDwgcHJvdmlkZTsKK+eYi+eLgiA8IG1hZG5lc3M7Civnt4EgPCB0b1wtam9pbjsKK+aPkuabsiA8IGVwaXNvZGU7CivntaogPCBtYXR0aW5nOwor5YWL5LuA57Gz54i+IDwga2FzaG1pcjsKK+Wls+iLsembhCA8IGhlcm9pbmU7CivmtLvli5XmiL/lsYsgPCB0cmFpbGVyOwor5LuA5LiA5aWJ5427IDwgdGl0aGluZzsKK+WFp+e+heeVoiA8IG5haXJvYmk7CivmipforbAgPCBwcm90ZXN0Owor5bi25YuVIDwgdG9cLXNwdXI7CivlhazlvI8gPCBmb3JtdWxhOwor56yTIDwgdG9cLWNvbWI7Civloqjopb/lk6XkurogPCBtZXhpY2FuOwor54G95a6zIDwgc2NvdXJnZTsKK+iKseadnyA8IGJvdXF1ZXQ7Civlt7LlqZogPCBtYXJyaWVkOwor55eS55eSIDwgdG9cLWl0Y2g7Civkvb/pq5josrQgPCBkaWduaWZ5Owor5L6L6aGMIDwgZXhhbXBsZTsKK+eohyA8IHRvXC1iaW5kOwor5YSq5pa8IDwgc3VycGFzczsKK+e1guS6jiA8IGF0XC1sYXN0Owor5Yqg5qau6ICA5pa8IDwgZ2xvcmlmeTsKK+emgiA8IHRvXC1wcmF5Owor5L+h6LO0IDwgY29uZmlkZTsKK+iKpeacqyA8IG11c3RhcmQ7CivlnLDos6rlrbggPCBnZW9sb2d5Owor5Ya35Y27IDwgY29vbGluZzsKK+ahjOmdoiA8IGRlc2t0b3A7CivlsaXooYwgPCBmdWxmaWxsOwor55qH5bidIDwgZW1wZXJvcjsKK+eigyA8IFwoc3RvbmVcKTsKK+evh+eroCA8IHdyaXRpbmc7Civnn58gPCAnJ1wtbGFuY2U7Civnnq8gPCB0b1wtcGVlcDsKK+S4jeW5suS4jea3qCA8IHVuY2xlYW47Civlr6zpl4ogPCBleHBhbnNlOwor6Zec6Y216KmeIDwga2V5d29yZDsKK+WFp+WuuSA8IGNvbnRlbnQ7CivnnL0gPCB0b1wtZ2F6ZTsKK+ectCA8IGRhenpsZWQ7CivkuInkvY3kuIDpq5QgPCB0cmluaXR5Owor5YKy54S2IDwgbG9mdGlseTsKK+W3tOadvueuoSA8IGJhc3Nvb247Civlm6DngrogPCBiZWNhdXNlOwor5qi15aSrIDwgd29vZG1hbjsKK+W4g+mahui/qiA8IGJ1cnVuZGk7CivnlZAgPCB0b1wtZmlsbDsKK+iHquengSA8IHNlbGZpc2g7CivlhbjlnosgPCB0eXBpY2FsOwor6Iy25YW3IDwgdGVhXC1zZXQ7CivnlJQgPCBiaWdcLWphcjsKK+eziuWhlyA8IG11ZGRsZWQ7Civnk5sgPCBzY2FwdHJlOwor55K6IDwgYVwtY3JhY2s7CivnkoogPCByZWRkaXNoOwor6JKZ5aSn5ou/IDwgbW9udGFuYTsKK+eNuSA8IGFcLWhvdW5kOwor54Kt55a955eFIDwgYW50aHJheDsKK+eNmiA8IHNwYW5pZWw7Civlhaznm4rkuovmpa0gPCB1dGlsaXR5Owor56+A55uuIDwgcHJvZ3JhbTsKK+mRveefsyA8IGRpYW1vbmQ7CivlnJLmnpcgPCBnYXJkZW5zOwor54uJIDwgZm94XC1jdWI7Civou4zmnpUgPCBzbGVlcGVyOwor6Iux5ZyLIDwgZW5nbGFuZDsKK+mmlumjviA8IGpld2Vscnk7Civml6XluLjlt6XkvZwgPCByb3V0aW5lOwor5bel5YygIDwgYXJ0aXNhbjsKK+eGryA8IGJ5XC1maXJlOwor5L+Y6JmcIDwgY2FwdGl2ZTsKK+eFuyA8IHRvXC13YXJtOwor6IeC56ugIDwgYXJtYmFuZDsKK+iHqueUsSA8IGZyZWVkb207Civlj7Llr4bnibkgPCBzY2htaXR0Owor54G0IDwgdG9cLWJha2U7CivluIPkuIEgPCBwdWRkaW5nOwor54C5IDwgdG9cLWJvaWw7CivlnI3mlLsgPCBiZXNpZWdlOwor5Zad6YeHIDwgYWNjbGFpbTsKK+a+kCA8IGJpbGxvd3M7CivnlJ/ogrIgPCB0b1wtYmVhcjsKK+i1pOmBkyA8IGVxdWF0b3I7CivmvawgPCBhXC1yYXBpZDsKK+WvjOWjq+mAmiA8IGZ1aml0c3U7CivnlLfmgKfopqrlsawgPCBraW5zbWFuOwor5rqmIDwgZHJpenpsZTsKK+mWgOWPoyA8IGRvb3J3YXk7Civng7noqr/ooZMgPCBjb29rZXJ5Owor6LKo54mp6YGL6Ly4IDwgZnJlaWdodDsKK+aQjeWCtyA8IHRvXC1oYXJtOwor5ri8IDwgcmlwcGxlczsKK+a4pyA8IHRvXC1kcm9wOwor6Lqr5p2QIDwgc3RhdHVyZTsKK+iLseWLhyA8IGJyYXZlcnk7CivljbDliLfogIUgPCBwcmludGVyOwor5re35ZCI54mpIDwgbWl4dHVyZTsKK+mYv+WFi+WAqyA8IGFjaGVyb247CivmtrYgPCB0b1wtc3BpdDsKK+a2kiA8IG1lYW5kZXI7CivmtLggPCBzcGFya2xlOwor54mZ56eR6Yar55SfIDwgZGVudGlzdDsKK+WVj+mhjCA8IHByb2JsZW07Civlr4TpgIEgPCB0b1wtc2VuZDsKK+WCvuaWnCA8IGluY2xpbmU7Civpg6HmsrvlronlrpggPCBzaGVyaWZmOwor54Sh56We6KuWIDwgYXRoZWlzbTsKK+axiyA8IHRvXC1wb3VyOwor5LiN5YuV5pCWIDwgdW5tb3ZlZDsKK+awvCA8IHRvXC1zaW5rOwor5Zuw5pO+IDwgcGVycGxleDsKK+awlSA8IHByb3RpdW07Civmirzmspnpvo0gPCBhYnNhbG9tOwor5oqE57ayIDwgZGlwXC1uZXQ7CivmrZwgPCBmdXJpb3VzOwor5Zq05q2jIDwgc3Rlcm5seTsKK+WCrOecoOabsiA8IGx1bGxhYnk7Civkup7kvK/mi4nnvZUgPCBhYnJhaGFtOwor5oiW6KixIDwgcGVyaGFwczsKK+amruW5uCA8IGhvbm9yZWQ7CivlhYvnvoXlnLDkup4gPCBjcm9hdGlhOwor6aas6LmsIDwgc3RpcnJ1cDsKK+aphiA8IHdpdGhvdXQ7CivllYbpmoogPCBjYXJhdmFuOwor54mb6aCt54qsIDwgYnVsbGRvZzsKK+WtuOmZoiA8IGNvbGxlZ2U7Civlg7XlsYAgPCBpbXBhc3NlOwor5o2V5omLIDwgY2F0Y2hlcjsKK+amoiA8IGFcLWZyYW1lOwor5oqV56WoIDwgdG9cLXZvdGU7Civkvb/prZTms5UgPCBjb25qdXJlOwor5YWo56We54GM5rOoIDwgcmFwdHVyZTsKK+aklyA8IFwocGxhbnRcKTsKK+WuieS5g+i/kSA8IGFuYWxnaW47Civom4vnmb3os6ogPCBwcm90ZWluOwor5bCI56eR6Zmi5qChIDwgYWNhZGVteTsKK+ihjOadjiA8IGx1Z2dhZ2U7Civmj5DliLAgPCBtZW50aW9uOwor6amV55+cIDwgaGF1Z2h0eTsKK+iKneWKoOWTpSA8IGNoaWNhZ287CivlhavluLbprZogPCBvY3RvcHVzOwor5rSX6KGj5bqXIDwgbGF1bmRyeTsKK+S/oeeusSA8IG1haWxib3g7CivmnrwgPCBhXC10YWJsZTsKK+aekyA8IGNhcGl0YWw7CivmnbggPCB0b1wta2lsbDsKK+acviA8IHRvXC1idW1wOwor5qaC5b+1IDwgY29uY2VwdDsKK+S4jeW+l+WLgSA8IGF3a3dhcmQ7CivlnLDlnYAgPCBhZGRyZXNzOwor5a2U6ZuAIDwgcGVhY29jazsKK+a7keeovSA8IGNvbWljYWw7Civmlb4gPCB0b1wtcnVsZTsKK+aVryA8IHRvXC1kZWZ5Owor5pWcIDwgZmlsbFwtdXA7CivkvY7oqr8gPCBsb3dcLWtleTsKK+aTuCA8IHRvXC1ob2xkOwor5oyJ5pmCIDwgb25cLXRpbWU7CivmkaAgPCBnZW5lcmFsOwor6ZW36aC46bm/IDwgZ2lyYWZmZTsKK+aJk+eulyA8IHRvXC1wbGFuOwor5o6vIDwgb3BwcmVzczsKK+Wwj+e1hCA8IGFcLWdyb3VwOwor5oyNIDwgY29sbGF0ZTsKK+Wls+mrmOmfsyA8IHNvcHJhbm87CivmjInmkakgPCBtYXNzYWdlOwor5oqIIDwgdG9cLWJlbmQ7Civmib0gPCB0b1wtbW92ZTsKK+izqumHjyA8IHF1YWxpdHk7Civnr4Dml6UgPCBob2xpZGF5Owor5q+U5Yip5pmCIDwgYmVsZ2l1bTsKK+S4jeiqv+WSjCA8IGRpc2NvcmQ7Civmh7AgPCBiZVwtZ2xhZDsKK+aHqyA8IGVucmFnZWQ7CivmnInpmbDlvbEgPCBzaGFkb3d5Owor5oebIDwgYWxhcm1lZDsKK+aHhSA8IGJhc2hmdWw7CivnlKLniakgPCBwcm9kdWN0Owor5L6b57WmIDwgZnVybmlzaDsKK+aDoyA8IG92ZXJhbGw7Civmg4cgPCBiZVwta2luZDsKK+iInuW8hCA8IHRvXC13YXZlOwor5oyH6Zec56+AIDwga251Y2tsZTsKK+aJk+eijiA8IHNoYXR0ZXI7CivmgYkgPCBtZWFuaW5nOwor5Zyo5YmNIDwgZm9yd2FyZDsKK+e1puiIh+izh+agvCA8IHF1YWxpZnk7CivkuIPmnIjkuInljYHomZ8gPCBqdWx5XC0zMDsKK+adjum1rCA8IGxpXC1wZW5nOwor5a6J6KitIDwgaW5zdGFsbDsKK+iyrOmboyA8IGNlbnN1cmU7Civls7bltrwgPCBpc2xhbmRzOwor5p+l6Kq/IDwgaW5xdWlyeTsKK+S+v+ebhiA8IGJlZFwtcGFuOwor6KCx5oORIDwgZW5jaGFudDsKK+W7jCA8IHVuaWNvcm47Civmu7LmvI8gPCBzZWVwYWdlOwor5bmz5bi45pelIDwgd2Vla2RheTsKK+iBr+mCpiA8IGZlZGVyYWw7CivmvILms4ogPCBkcmlmdGVyOwor5YSy6JeP5a6kIDwgc3RvcmFnZTsKK+WZuOaVuCA8IHRvbm5hZ2U7CivljIjniZnliKkgPCBodW5nYXJ5Owor5ZWG6KiOIDwgZGlzY3VzczsKK+mmmeiPnCA8IHBhcnNsZXk7Civmtbfprq4gPCBzZWFmb29kOwor6Iel5oi/IDwgYmVkcm9vbTsKK+WNsOWcsOWuiemCoyA8IGluZGlhbmE7Civlg6XlgJYgPCBsdWNraWx5Owor5YKz5ZauIDwgbGVhZmxldDsKK+S4jeW+l+iAjOefpSA8IHVua25vd247CivlopPoqozpipggPCBlcGl0YXBoOwor6aaZ6IW4IDwgc2F1c2FnZTsKK+iIquepuuWFrOWPuCA8IGFpcmxpbmU7Civlqp4gPCBhdFwtZWFzZTsKK+i1sOengSA8IHNtdWdnbGU7CivmnInogJDkuYXlipsgPCBkdXJhYmxlOwor5LiA5pyD5YWSIDwgYVwtd2hpbGU7CivkuI3pgZPlvrcgPCBpbW1vcmFsOwor6b6N6J2mIDwgbG9ic3RlcjsKK+eDj+WFi+iYrSA8IHVrcmFpbmU7CivlpKrpmb3pu5HlrZAgPCBzdW5zcG90Owor5Zyo5a6k5YWnIDwgaW5kb29yczsKK+WkoyA8IGFcLWRyZWFtOwor5aOdIDwgYVwtbW91bmQ7CivluIzkvK/kvobmm7ggPCBoZWJyZXdzOwor5aGTIDwgcGxhc3RlcjsKK+aksOWtkCA8IGNvY29udXQ7CivpkZLmiJIgPCB3YXJuaW5nOwor5aCEIDwgcGFyYXBldDsKK+S7o+ipniA8IHByb25vdW47Civln5cgPCBhXC13aGFyZjsKK+S4uem6pSA8IGRlbm1hcms7CivkuI3pm6LlhZIgPCBub3RcLWJhZDsKK+WclSA8IGxpYnJhcnk7CivlnIIgPCBwaWdcLXN0eTsKK+eVq+W7iiA8IGdhbGxlcnk7Civnmb3om4vnmb0gPCBhbGJ1bWluOwor5ZqKIDwgdG9cLXBhbnQ7CivkuLvluK3oh7ogPCByb3N0cnVtOwor6KGd5YqbIDwgaW1wdWxzZTsKK+mhnuWbuumGhyA8IHN0ZXJvaWQ7CivllqUgPCBhXC1wbGFjZTsKK+WujOe+jiA8IHBlcmZlY3Q7CivlsZXmnJsgPCBvdXRsb29rOwor6KmV6K2w5pyDIDwgY291bmNpbDsKK+acieW4jOacmyA8IGhvcGVmdWw7Civnq4rnm5wgPCBidXJnbGFyOwor5ZSeIDwgdG9cLWdhc3A7CivllIUgPCBhXC1zb3VuZDsKK+WutuemvSA8IHBvdWx0cnk7Civlgrflr5Lnl4cgPCB0eXBob2lkOwor5ZK+IDwgYVwtbm9pc2U7CivlkokgPCBhblwtZWNobzsKK+Wlp+ael+WMueWFiyA8IG9seW1waWM7CivliLDpgqPoo6EgPCB0aGl0aGVyOwor5ZG/IDwgdG9cLXlhd247CivlkawgPCB0b1wtcmVzdDsKK+S6nuWIqeahkemCoyA8IGFyaXpvbmE7CivlkYwgPCB0b1wtY2FsbDsKK+epuue8uiA8IHZhY2FuY3k7CivmnIDpq5ggPCBoaWdoZXN0Owor55Wr5a62IDwgcGFpbnRlcjsKK+mkiuiAgemHkSA8IHBlbnNpb247CivnlrLli54gPCBmYXRpZ3VlOwor5Y2yIDwgZW1pbmVudDsKK+WMpyA8IGFcLXRydW5rOwor5LiN6b2SIDwgZGVzcGlzZTsKK+aKleaJiyA8IHBpdGNoZXI7CivmtbfpgoogPCBzZWFzaWRlOwor6JOL5LiW5aSq5L+dIDwgZ2VzdGFwbzsKK+WZgeW/gyA8IHRvXC1oYXRlOwor5bCL5rGCIDwgdG9cLXNlZWs7CivlhLYgPCB2YWxpYW50Owor5bCP5YaK5a2QIDwgYm9va2xldDsKK+WEpiA8IG1pbGxpbmc7CivlhKQgPCBvblwtZHV0eTsKK+acquatpuijnSA8IHVuYXJtZWQ7CivlmbTloqggPCBpbmtcLWpldDsKK+aciemZkCA8IGxpbWl0ZWQ7CivmiZjmnrYgPCBicmFja2V0Owor5L6HIDwgYVwtY2xhc3M7CivkvIAgPCBleGNpdGVkOwor5pyA6ZW3IDwgbG9uZ2VzdDsKK+S5vyA8IHRvXC1jdXJlOwor5LmsIDwgdG9cLWhhbmc7CivmibPmiYsgPCBzcGFubmVyOwor5L6/5pa8IDwgZWFzeVwtdG87CivmtbfosZogPCBkb2xwaGluOwor5oSb6K23IDwgY2hlcmlzaDsKK+S2qSA8IHRvXC1nbmF3Owor5oSb5bGL5Y+K54OPIDwgbG92ZVwtbWU7Civnr4DlhIkgPCB0aHJpZnR5Owor56We6auUIDwgZ29kaGVhZDsKK+S0pyA8IHZlbmlzb247CivkuK3plpMgPCBiZXR3aXh0Owor5LKdIDwgcG9tZnJldDsKK+SylCA8IGFcLXdoYWxlOwor5oSf6Ka6IDwgdG9cLWZlZWw7CivmnInluavliqkgPCBoZWxwZnVsOwor5LGJIDwgdGhlXC1lZWw7CivksJ4gPCB0b1wtY29vazsKK+WtpOeriyA8IGlzb2xhdGU7CivkrrwgPCBwaWViYWxkOwor55W25YmNIDwgY3VycmVudDsKK+SupiA8IHVudGFtZWQ7CivlsaTlrZAgPCBzdHJhdHVtOwor5K2gIDwgYVwtc25hY2s7CivnlKjlrZcgPCBkaWN0aW9uOwor5KyOIDwgaG90XC1haXI7CivpmL/mi4nkvK8gPCBhcmFiaWFuOwor5KuYIDwgaGVhbHRoeTsKK+S/g+aIkCA8IHByb2N1cmU7Civlronnk78gPCBhbXBvdWxlOwor5KqjIDwgc21hc2hlZDsKK+iHs+S4iiA8IHN1cHJlbWU7CivkqbMgPCB0YW5uaW5nOwor5KmUIDwgdGhlXC1oZW07Civku6XppqzlhafliKkgPCBlbWFudWVsOwor5KieIDwgdG9cLXJhaW47CivkuIDpoIUgPCBhblwtaXRlbTsKK+SogiA8IGFcLWNoaWNrOwor5KefIDwgdG9cLXNraW47CivpmL/mi4nkuIEgPCBhbGFkZGluOwor5LiN6Ka65a+fIDwgdW5hd2FyZTsKK+a4heecnyA8IGlzbGFtaWM7CivkposgPCB0b1wtZ3JvdzsKK+WWnOatoSA8IHRvXC1saWtlOwor55SY6JeN6I+cIDwgY2FiYmFnZTsKK+SknyA8IGFcLXNwYWRlOwor5LiK6ZaAIDwgZHJvcFwtaW47CivkorYgPCBhXC1zdGF0ZTsKK+WtuOeUnyA8IHN0dWRlbnQ7CivlpbPkv67pgZMgPCBjb252ZW50Owor5KKZIDwgdG9cLXJ1aW47CivnjY7ph5EgPCBwcmVtaXVtOwor6KaP5YqD5Lq65ZOhIDwgcGxhbm5lcjsKK+SgvCA8IHRvXC13ZWFyOwor5Lq6576kIDwgYVwtY3Jvd2Q7CivlgYfkvb8gPCBzdXBwb3NlOwor55m854++54mpIDwgZmluZGluZzsKK+abtOmBoCA8IGZhcnRoZXI7CivlnKjkuIvmlrkgPCBiZW5lYXRoOwor6ama5ZqHIDwgaG9ycmlmeTsKK+ScliA8IHRvXC10YWxrOwor5JyJIDwgdG9cLWplc3Q7Civkm7cgPCB0b1wtb2JleTsKK+SbsCA8IHNrZXRjaHk7Civokrjmsb3mqZ8gPCBzdGVhbWVyOwor5JqxIDwgaG9uZXN0eTsKK+SariA8IHRoaWNrZXI7CivkmpcgPCB0b1wtbGlmdDsKK+SajyA8IHRvXC1sb3ZlOwor5LiZ6YWuIDwgYWNldG9uZTsKK+Wwj+eAkeW4gyA8IGNhc2NhZGU7CivmhYjlloTmqZ/mp4sgPCBjaGFyaXR5Owor55S35oCn5bCK56ixIDwgZXNxdWlyZTsKK+SYsSA8IHdlYWx0aHk7CivkmKAgPCBncmVhdmVzOwor5JidIDwgYVwtc2hpcnQ7CivnrKzljYHkuowgPCB0d2VsZnRoOwor5LiN5LiJ5LiN5ZubIDwgZHViaW91czsKK+aJjeW5siA8IGFiaWxpdHk7CivpppnmsLQgPCBwZXJmdW1lOwor6aaZ5rCjIDwgaW5jZW5zZTsKK+SWmiA8IGFcLXRpZ2VyOwor5oiQ5paHIDwgd3JpdHRlbjsKK+SUuiA8IGhlYWRpbmc7CivlkJDpnLIgPCB0b1wtdGVsbDsKK+acquaxuuWumiA8IHBlbmRpbmc7CivotpXlv6sgPCBhdFwtb25jZTsKK+acg+itsCA8IG1lZXRpbmc7Civpo5voiLkgPCBhaXJzaGlwOwor5pu86LC3IDwgYmFuZ2tvazsKK+SStiA8IHRoZVwtc2t5Owor5YiX546L57SA5LiLIDwgMlwta2luZ3M7CivliJfnjovntIDkuIogPCAxXC1raW5nczsKK+SRpyA8IGFcLXNob3J0Owor5JC/IDwgZ2l6emFyZDsKK+SQtyA8IHBhdW5jaHk7CivkkLQgPCBsdW1iYWdvOwor5JCrIDwgb2Jlc2l0eTsKK+SPliA8IGFcLXdvdW5kOwor5I+HIDwgdG9cLWhlYXI7CivkjqkgPCB0b1wtdGlsbDsKK+aXhemBiuiAhSA8IHRvdXJpc3Q7CivkuLvoqZ4gPCBzdWJqZWN0Owor5rKJ6buYIDwgc2lsZW5jZTsKK+aJk+WtlyA8IHRvXC10eXBlOwor5Y+X6KiX5Lq6IDwgdHJ1c3RlZTsKK+SMmCA8IHRvXC1rbml0Owor5IyUIDwgdG9cLXNvYWs7CivkjIEgPCBhXC1wbGVhdDsKK+SLjiA8IHRvXC1tZW5kOwor5IqfIDwgYWRvcm5lZDsKK+SKmCA8IGFcLWdyYWluOwor5ImiIDwgYVwtc2lldmU7CivkiY4gPCBhXC1jb3ZlcjsKK+SIrCA8IGFcLXNtYWxsOwor5a605pyDIDwgYmFucXVldDsKK+SHlCA8IGF0cm9waHk7Civkh40gPCB0b1wtd2FpdDsKK+mgmOmaiiA8IGNhcHRhaW47CivmnIjonZUgPCBlY2xpcHNlOwor5ISPIDwgYml6YXJyZTsKK+WAieS/gyA8IGh1cnJpZWQ7CivogqXmsoMgPCBmZXJ0aWxlOwor5IKAIDwgdG9cLXdpbms7Civlj6zpm4YgPCBjb252ZW5lOwor5IGbIDwgdG9cLWxvb2s7CivnpZ7ot6EgPCBtaXJhY2xlOwor5L2/5b6SIDwgYXBvc3RsZTsKK+O+tyA8IHRvXC1hY2hlOwor476gIDwgYVwtZmV2ZXI7Civjvp8gPCByZWxhcHNlOwor476YIDwgYWlsbWVudDsKK+O+lSA8IGFcLWNoaWxsOwor476GIDwgZWNkeXNpczsKK+O+hSA8IGRlZmVjdHM7Civpmbjou43kuIrmoKEgPCBjb2xvbmVsOwor472WIDwgYVwtaHVtYW47CivjvLwgPCBhXC1sYWRsZTsKK+O8tyA8IGFcLWJhc2luOwor6IS55aSnIDwgc3dvbGxlbjsKK+O8lyA8IGFcLWJyaWNrOwor6Jmb5qeL5bCP6KqqIDwgZmljdGlvbjsKK+WvtuWvtiA8IGRhcmxpbmc7CivjurIgPCBidXR0b25zOwor47qKIDwgYVwtYmVhc3Q7CivjuZ4gPCB0b1wtYmFyazsKK+O5myA8IGFcLXRhbWVkOwor562J5YCZIDwgd2FpdGluZzsKK+i3jOWIsCA8IHRvXC1mYWxsOwor5oe65oKUIDwgY29uZmVzczsKK+O3kyA8IGFcLXRvcmNoOwor47eJIDwgdG9cLWlyb247CivmiLblpJYgPCBvdXRkb29yOwor55+z5Y2X5bGsIDwgaGVhdGhlcjsKK+WvrOWuuSA8IGxlbmllbnQ7CivjtZIgPCBib2lsaW5nOwor47WMIDwgdG9cLWZsb3c7CivjtYUgPCBhXC1yaXZlcjsKK+iDveW5uSA8IGNhcGFibGU7CivkuI3oposgPCBub3RcLXNlZTsKK+O0hyA8IHRvXC13YWRlOwor47OtIDwgc3BpdHRsZTsKK+OzrCA8IGFuXC1lZGR5Owor5L2P5oi/IDwgaG91c2luZzsKK+OzmSA8IGFcLWJyb29rOwor5oiw5aOrIDwgZmlnaHRlcjsKK+OygiA8IHRvXC1wdXNoOwor47GWIDwgdG9cLXN0YXk7CivjsYwgPCB0b1wtdGFrZTsKK+e/oee/oCA8IGVtZXJhbGQ7CivlsIrlmrQgPCBkaWduaXR5Owor6JaE54Ok6aSFIDwgcGFuY2FrZTsKK+OvkyA8IGFcLWNvdWNoOwor46+QIDwgdHVidWxhcjsKK+OviyA8IGFcLWNoZXN0Owor5a+G5bqmIDwgZGVuc2l0eTsKK+OumyA8IGFcLXNwb29uOwor462qIDwgYVwtc2hydWI7Civmr5LojYnlkI0gPCBoZW1sb2NrOwor46u0IDwgdG9cLXJvYXI7Civjq50gPCB0aGVcLXN1bjsKK+WcsOW5s+e3miA8IGhvcml6b247CivlsJblj6sgPCBzY3JlZWNoOwor46mwIDwgdG9cLXN0YWI7Civlpbnoh6rlt7EgPCBoZXJzZWxmOwor5a6J5pKrIDwgcGxhY2F0ZTsKK+OotyA8IHRvXC13aXBlOwor6aCC6YedIDwgdGhpbWJsZTsKK+OosCA8IHRvXC10dXJuOwor5qC45a2QIDwgbnVjbGVhcjsKK+S8keacgyA8IGFkam91cm47CivosqLniakgPCB0cmlidXRlOwor46e7IDwgYVwtdGhvcm47CivjprkgPCBhXC1zcGVhcjsKK+OmrSA8IHRvXC1waXR5Owor6aOb55ukIDwgZnJpc2JlZTsKK+a3mOawoyA8IG5hdWdodHk7CivjpZIgPCBjb3JydXB0Owor6aiO5YW1IDwgY2F2YWxyeTsKK+OkuiA8IGJsdXJyZWQ7Civjo7cgPCB3YWxraW5nOwor55+u5aOv57SgIDwgY3ljb2NlbDsKK+WkluenkeaJi+ihkyA8IHN1cmdlcnk7CivjobggPCBhXC1ob3VzZTsKK+esrOS4gyA8IHNldmVudGg7CivjoaggPCBhXC1sYWJlbDsKK+OhmCA8IHNjcmVlbnM7CivjoZMgPCBkcmF3ZXJzOwor46GCIDwgcmVtYWluczsKK+S/g+S9vyA8IHNwdXJcLW9uOwor6aKo566xIDwgYmVsbG93czsKK+OfpyA8IGFcLWNsaWZmOwor5rW055uGIDwgYmF0aHR1YjsKK+OeuiA8IGFcLXRyaWJlOwor576k6IqxIDwgYmxvc3NvbTsKK+WQhOiJsuWQhOaooyA8IGRpdmVyc2U7CivkvZvnvoXoo6HpgZQgPCBmbG9yaWRhOwor6aas5a2QIDwgY29tbW9kZTsKK+i2iuWNlyA8IHZpZXRuYW07CivlkJHkvZXomZUgPCB3aGl0aGVyOwor45yTIDwgd29tYW5seTsKK+epuuaIsCA8IGFpclwtd2FyOwor5oiQ5ZyIIDwgd3JlYXRoZTsKK+OchyA8IHVuaGFwcHk7Civmh4nlvpcgPCBkZXNlcnZlOwor5oiw5YudIDwgcHJldmFpbDsKK+OaoiA8IGFcLXNsYXZlOwor5LiN6IufIDwgbm90XC1sYXg7CivnsYPmnb/nkIMgPCByZWJvdW5kOwor5L2P5a6/IDwgbG9kZ2luZzsKK+OZlCA8IGFcLWZlbmNlOwor45mPIDwgY2F2ZXJuczsKK+iuiumBtyA8IGNoYW5nZXM7CivjmKkgPCB0b1wtbWF0ZTsKK+OXgyA8IHRoZVwtbGlwOwor5bCB5YWlIDwgaW5jbG9zZTsKK+mmrOWFi+aAneS4u+e+qSA8IG1hcnhpc207CivjlZ8gPCB0b1wtc2lnbjsKK+OVniA8IGFcLWJydXNoOwor45S/IDwgYVwtdGFsbHk7CivjlKEgPCBncmVhdGx5Owor45SCIDwgdG9cLXBhcmU7Civjk7AgPCB0b1wtcml2ZTsKK+OTnyA8IHRvXC1wZWVsOwor45K0IDwgdG9cLWNvbWU7CivjkqYgPCBwdXBwZXRzOwor6IG95b6X6KaLIDwgYXVkaWJsZTsKK+mHjuiykyA8IHdpbGRjYXQ7CivjkpUgPCB1bnlpZWxkOwor45KRIDwgZ3Jvd1wtdXA7Civku6Pmm78gPCBpbnN0ZWFkOwor45GFIDwgdG9cLW1ha2U7CivmoYjljbcgPCByZWNvcmRzOwor55m+5oWV5aSnIDwgYmVybXVkYTsKK+S7o+aVuCA8IGFsZ2VicmE7CivmnInmop3ntIsgPCBzdHJpcGVkOwor5pyo55OmIDwgc2hpbmdsZTsKK+aIkOWKnyA8IHN1Y2Nlc3M7Civlronmga/ml6UgPCBzYWJiYXRoOwor5Lit56uLIDwgbmV1dHJhbDsKK+S4lue0gCA8IGNlbnR1cnk7CivkvY7lnLAgPCBsb3dsYW5kOwor5rW35r6hIDwgc2Vhd2VlZDsKK+S7iuaZmiA8IHRvbmlnaHQ7Civoo4HntJnmqZ8gPCB0cmltbWVyOwor5ZOA5rGCIDwgZW50cmVhdDsKK+a0l+emriA8IGJhcHRpc207CivlppPpmaIgPCBicm90aGVsOwor5LiN562JIDwgdG9cLXZhcnk7CivlhazniLXlpKvkurogPCBkdWNoZXNzOwor5ZCN576pIDwgdGl0dWxhcjsKK+a2iOaltSA8IHBhc3NpdmU7CivmsLTpioAgPCBtZXJjdXJ5Owor5pqI6Ii5IDwgc2Vhc2ljazsKK+aHt+aVteaEjyA8IGhvc3RpbGU7Civogbflt6UgPCB3b3JrZXJzOwor5a2f5a2QIDwgbWVuY2l1czsKK+WumOWPuCA8IGxhd3N1aXQ7CivpnZ7pm6MgPCByZXByb29mOwor5rC46YGgIDwgZm9yZXZlcjsKK+mFrOi8iSA8IHBheWxvYWQ7Civogb3lr6sgPCBkaWN0YXRlOwor6Jmn5pCNIDwgZGVmaWNpdDsKK+m6u+eFqSA8IHRyb3VibGU7CivpmL/niL7lt7TlsLzkup4gPCBhbGJhbmlhOwor5b285b6X5b6M5pu4IDwgMlwtcGV0ZXI7CivlibXnq4vogIUgPCBmb3VuZGVyOwor57at5LuW5ZG9IDwgdml0YW1pbjsKK+itj+iqmiA8IGN5bmljYWw7Civnorroqo0gPCBjb25maXJtOwor6KOd572u54mpIDwgZml4dHVyZTsKK+eOi+asiiA8IHJveWFsdHk7CivnjrvliKnntq3kup4gPCBib2xpdmlhOwor5LyB5ZyWIDwgYXR0ZW1wdDsKK+WPg+itsOWToSA8IHNlbmF0b3I7CivnvoXnm6QgPCBjb21wYXNzOwor5pif5pyf5LqMIDwgdHVlc2RheTsKK+ePvuWvpiA8IHJlYWxpdHk7Civos6rlnLAgPCB0ZXh0dXJlOwor6Z+z5qiC5pyDIDwgY29uY2VydDsKK+i0iuWKqSA8IHNwb25zb3I7Civlv6DoqqAgPCBkZXZvdGVkOwor6auU6IKy5aC0IDwgc3RhZGl1bTsKK+mEremHjSA8IHNlcmlvdXM7CivljbDlg4/mt7HliLsgPCBpbXByZXNzOwor5Y2K6YCUIDwgaGFsZndheTsKK+Wlvei9iSA8IGltcHJvdmU7Civmg6Hmo40gPCB2aWxsYWluOwor5oSb54i+6JitIDwgaXJlbGFuZDsKK+mAg+S6oeiAhSA8IHJ1bmF3YXk7CivpvLvlrZQgPCBub3N0cmlsOwor5ZOA5oCdIDwgcGVuc2l2ZTsKK+aMh+WwjuaVmeaOiCA8IGFkdmlzZXI7CivnjJbnjZcgPCByYW1wYW50Owor5p6c5ZySIDwgb3JjaGFyZDsKK+aXgemCiiA8IGxhdGVyYWw7Civlkq/lkq/nrJEgPCBjaHVja2xlOwor55Sf54mp5a24IDwgYmlvbG9neTsKK+mjm+W9iCA8IG1pc3NpbGU7Civogb3lipsgPCBoZWFyaW5nOwor5L2/5oak5oWoIDwgb3V0cmFnZTsKK+aXpeiqjCA8IGpvdXJuYWw7CivlsYXkvY/mlrwgPCBpbmhhYml0Owor5aSW6Z2iIDwgb3V0c2lkZTsKK+mbhOm7gyA8IHJlYWxnYXI7CivmnIPmnJ8gPCBzZXNzaW9uOwor5LiN5rOVIDwgbGF3bGVzczsKK+S4jeefpeS9leaVhSA8IHNvbWVob3c7Civmt6HlhYkgPCBzaGltbWVyOwor5b2M6LO95LqeIDwgbWVzc2lhaDsKK+aykueUmum6vCA8IG5vdGhpbmc7CivlpKfpjK8gPCBibHVuZGVyOwor6ICB5bm0IDwgZWxkZXJseTsKK+iuiuehrCA8IHN0aWZmZW47CivmtbflsrggPCBjb2FzdGFsOwor54WZ54Gw57y4IDwgYXNodHJheTsKK+ekpueJqSA8IG1pbmVyYWw7CivokZfpmbggPCBsYW5kaW5nOwor5LiN5Zyo5LqGIDwgYmVcLWRlYWQ7CivntKHnuZTlk4EgPCB0ZXh0aWxlOwor56eR5a24IDwgc2NpZW5jZTsKK+a2suWMliA8IGxpcXVpZnk7CivpmL/lj7jljLnmnpcgPCBhc3BpcmluOwor5pa56KiAIDwgZGlhbGVjdDsKK+WPpOeJqSA8IGFudGlxdWU7Civml6XokL0gPCBzdW5kb3duOwor6YeR5YWJ6ZaD54iNIDwgc3BhbmdsZTsKK+mDteiyuyA8IHBvc3RhZ2U7Civmm5bmmKcgPCBpbGxpY2l0Owor5LiN5Lq66YGTIDwgaW5odW1hbjsKK+mbhOmbniA8IHJvb3N0ZXI7CivmlL7plosgPCB1bmxlYXNoOwor6KKr5rKS5pS2IDwgZm9yZmVpdDsKK+WltOmauOWItuW6piA8IHNsYXZlcnk7CivnvqjmhZUgPCBlbnZpb3VzOwor6Lev6KW/5byXIDwgbHVjaWZlcjsKK+WMluWtuOWutiA8IGNoZW1pc3Q7CivppIXkub4gPCBiaXNjdWl0Owor5pyJ5a6zIDwgaGFybWZ1bDsKK+mFkueyviA8IGFsY29ob2w7CivnpL7mnIMgPCBzb2NpZXR5Owor5pq05pS/IDwgdHlyYW5ueTsKK+eOi+WciyA8IGtpbmdkb207CivmmJPnoo4gPCBicml0dGxlOwor6YeY5q27IDwgY3J1Y2lmeTsKK+iok+e3tOiAhSA8IHRyYWluZXI7CivmuIXmvZTlmaggPCBjbGVhbmVyOwor6aGn5b+MIDwgc2NydXBsZTsKK+aEiOWQiCA8IHRvXC1oZWFsOwor6Kmz6L+wIDwgcmVjb3VudDsKK+mhmOaEjyA8IHRvXC13aXNoOwor5oSb5b63546yIDwgYWRlbGluZTsKK+i/q+WIh+aApyA8IHVyZ2VuY3k7CivnjqnlhZIgPCB0b1wtcGxheTsKK+Wls+a8lOWToSA8IGFjdHJlc3M7CivkuK3lrZAgPCBuZXV0cm9uOwor6YeR5qmYIDwga3VtcXVhdDsKK+mcgOimgSA8IHRvXC1uZWVkOwor5oKU5oGoIDwgcmVtb3JzZTsKK+acgOWkpyA8IGJpZ2dlc3Q7CivmnIDlpJogPCBhdFwtbW9zdDsKK+iAleS9nCA8IGZhcm1pbmc7CivmgKXmtYEgPCB0b3JyZW50Owor5be05q+U5YCrIDwgYmFieWxvbjsKK+iAgeWFrCA8IGh1c2JhbmQ7CivlrLDlhZLmnJ8gPCBpbmZhbmN5Owor55m+6JGJ56qXIDwgc2h1dHRlcjsKK+mBv+W9iOWdkSA8IGZveGhvbGU7Civppqzkvobopb/kup4gPCBtYWxhc2lhOwor5bGx6IOh5qGD5pyoIDwgaGlja29yeTsKK+iEq+iho+acjSA8IHVuZHJlc3M7CivkuY/lkbMgPCB0ZWRpb3VzOwor8KGcsSA8IHRvXC1lbnZ5Owor5ZG85ZC4IDwgYnJlYXRoZTsKK+eMnOW6piA8IHN1cm1pc2U7CivlkbvlkJ8gPCB0b1wtbW9hbjsKK+W9vOW+l+WJjeabuCA8IDFcLXBldGVyOwor6YG06YG4IDwgdG9cLXBpY2s7CivlpbPnpZ4gPCBnb2RkZXNzOwor5oOz5YOPIDwgaW1hZ2luZTsKK+alremkmOiAhSA8IGFtYXRldXI7CivlkIzlv5cgPCBjb21yYWRlOwor5rKS5pyJIDwgaGF2ZW4nJ3Q7CivljZfnk5wgPCBwdW1wa2luOwor6K6K5pqWIDwgd2FybWluZzsKK+mHkeWtl+WhlCA8IHB5cmFtaWQ7CivmsKPnkIMgPCBiYWxsb29uOwor54uC5pq0IDwgZnJhbnRpYzsKK+S7luiHquW3sSA8IGhpbXNlbGY7CivlkIrluoogPCBoYW1tb2NrOwor5Y+K5pmCIDwgaW5cLXRpbWU7Civpg6jnvbIgPCBkaXNwb3NlOwor5Lmf5LiNIDwgbmVpdGhlcjsKK+WPr+aGkCA8IHBpdGlmdWw7CivlpbPnmocgPCBlbXByZXNzOwor5a6a5bGF6ICFIDwgc2V0dGxlcjsKK+S4gOWkqSA8IG9uZVwtZGF5Owor5LqM5Y2B5aSaIDwgb3ZlclwtMjA7CivmlLnoo50gPCByZW1vZGVsOwor6Zi/6aObIDwgaG9vZGx1bTsKK+WPr+aBqCA8IGhhdGVmdWw7CivmlLbnlZnmiYAgPCBiYXJyYWNrOwor5rOV5a6YIDwgYVwtanVkZ2U7Civnvo7lnIsgPCBhbWVyaWNhOwor5pyA5L2zIDwgb3B0aW11bTsKK+W5vemdiCA8IHNwZWN0ZXI7CivpgYvovYkgPCB0b1wtd29yazsKK+mBi+i8uCA8IHRyYW5zaXQ7CivmgrLliocgPCB0cmFnZWR5Owor5pu45L+hIDwgZXBpc3RsZTsKK+WKjeihkyA8IGZlbmNpbmc7CivlsLHlr6LmmYLplpMgPCBiZWR0aW1lOwor57eS6KiAIDwgcHJlZmFjZTsKK+iqh+iAgCA8IHByb3VkbHk7CivnvLrluK0gPCBhYnNlbmNlOwor5LiA5Y+jIDwgcmVhZGlseTsKK+S4g+WNgSA8IHNldmVudHk7Civnh5XpuqXnsqUgPCBvYXRtZWFsOwor5paw55SfIDwgbmV3Ym9ybjsKK+S4jeWGjSA8IG5vXC1tb3JlOwor5Lqe5ouJ5be06aasIDwgYWxhYmFtYTsKK+S4luS/lyA8IHByb2ZhbmU7CivlubTpkZEgPCBhbG1hbmFjOwor5q+U55WrIDwgZ2VzdHVyZTsKK+mHj+WtkCA8IHF1YW50dW07CivnjL/kurogPCBhcGVcLW1hbjsKK+WPq+WlvSA8IGFwcGxhdWQ7Civoh6rooYzou4ogPCBiaWN5Y2xlOwor6YCQ6YCAIDwgcmVwdWxzZTsKK+awkeaVuOiomCA8IG51bWJlcnM7CivlsI/mlpHpu54gPCBzcGVja2xlOwor5rOo5YWlIDwgcG91clwtaW47CivmraPnvqkgPCBqdXN0aWNlOwor5L2/5Y6t54WpIDwgZGlzZ3VzdDsKK+iJvui/queUnyA8IGFkZGlzb247CivmmK8gPCBpbmRlZWQ7Civov6sgPCBjb2VyY2U7Civlv5wgPCBzaG91bGQ7Civlv5ggPCBmb3JnZXQ7Civlm70gPCBuYXRpb247Civov5QgPCByZXR1cm47Civlv40gPCBlbmR1cmU7Civov4QgPCBleHRlbmQ7Civlv4UgPCBzdXJlbHk7Civlh7ogPCBnb1wtb3V0Owor6L6/IDwgZm9sbG93Owor5568IDwgZXllbGlkOwor5b6XIDwgb2J0YWluOwor6L63IDwgc21vb3RoOwor5b60IDwgc3VtbW9uOwor5b6zIDwgdmlydHVlOwor556tIDwgYnJpZ2h0Owor6L6bIDwgYml0dGVyOwor5b6QIDwgc2xvd2x5Owor5b6MIDwgYmVoaW5kOwor5b6KIDwgbGluZ2VyOwor5b2xIDwgc2hhZG93Owor5LqLIDwgYWZmYWlyOwor6L2fIDwgcnVtYmxlOwor5b2IIDwgcGVsbGV0Owor5Li7IDwgbWFzdGVyOwor5by3IDwgc3Ryb25nOwor5bybIDwgbG9vc2VuOwor5rCRIDwgcGVvcGxlOwor55yMIDwgY291bnR5Owor546wIDwgYXBwZWFyOwor5YiGIDwgZGl2aWRlOwor5LqbIDwgbGl0dGxlOwor55u4IDwgbXV0dWFsOwor55CGIDwgcmVhc29uOwor55uKIDwgcHJvZml0Owor6K+dIDwgc3BlZWNoOwor5ZCRIDwgdG93YXJkOwor5a6aIDwgZGVjaWRlOwor5bqrIDwgYXJtb3J5Owor5bqmIDwgZGVncmVlOwor5bqVIDwgYm90dG9tOwor5omTIDwgc3RyaWtlOwor5L2NIDwgdGhyb25lOwor5bqPIDwgc2VyaWVzOwor5bm8IDwgaW5mYW50Owor5bmyIDwgb3Bwb3NlOwor5YaFIDwgaW5zaWRlOwor55mqIDwgc3Bhc21zOwor5YqgIDwgYWRkXC10bzsKK+WMliA8IGNoYW5nZTsKK+eZjCA8IGNhbmNlcjsKK+W4uCA8IGNvbW1vbjsKK+i4sCA8IGV4Y2VlZDsKK+W4giA8IG1hcmtldDsKK+aJjSA8IHRhbGVudDsKK+S9jyA8IHJlc2lkZTsKK+WRmCA8IG1lbWJlcjsKK+W3uyA8IHNjcm9sbDsKK+aApyA8IG5hdHVyZTsKK+aKpSA8IHJlcG9ydDsKK+elniA8IHNwaXJpdDsKK+aVsCA8IG51bWJlcjsKK+i3oSA8IHNlYXJjaDsKK+WOnyA8IHNvdXJjZTsKK+W3oSA8IHBhdHJvbDsKK+W3nSA8IHN0cmVhbTsKK+eWiiA8IHJlcGVhdDsKK+ezuyA8IHN5c3RlbTsKK+eVoCA8IGdhcmRlbjsKK+iusCA8IHJlY29yZDsKK+aelyA8IGZvcmVzdDsKK+e7nyA8IGdvdmVybjsKK+WtlyA8IGxldHRlcjsKK+WztiA8IGlzbGFuZDsKK+izqiA8IG1hdHRlcjsKK+iuuiA8IGRlYmF0ZTsKK+iysCA8IGJvcnJvdzsKK+aMhyA8IGZpbmdlcjsKK+iyoSA8IHdlYWx0aDsKK+iKsSA8IGZsb3dlcjsKK+WxpCA8IHN0b3JleTsKK+adoSA8IGNsYXVzZTsKK+WxjSA8IGNvcnBzZTsKK+WxgCA8IGJ1cmVhdTsKK+WKniA8IG1hbmFnZTsKK+iwtyA8IHZhbGxleTsKK+WfjiA8IGNhc3RsZTsKK+eItiA8IGZhdGhlcjsKK+WwjiA8IGRpcmVjdDsKK+WvpyA8IHJlcG9zZTsKK+m7hCA8IHllbGxvdzsKK+W+tyA8IGV0aGljczsKK+WusyA8IGluanVyZTsKK+WuriA8IHBhbGFjZTsKK+WPiyA8IGZyaWVuZDsKK+WuiCA8IGRlZmVuZDsKK+iugyA8IHByYWlzZTsKK+mZhSA8IGJvcmRlcjsKK+WNlSA8IHNpbmdsZTsKK+WtpCA8IG9ycGhhbjsKK+agoSA8IHNjaG9vbDsKK+eNhCA8IHByaXNvbjsKK+eMviA8IGNyYWZ0eTsKK+ismSA8IGh1bWJsZTsKK+isjiA8IHJpZGRsZTsKK+eLuSA8IG5hcnJvdzsKK+avjSA8IG1vdGhlcjsKK+eLmSA8IGFuXC1hcGU7Civlm6IgPCBzcGhlcmU7Civni4IgPCBpbnNhbmU7CivoqrIgPCBsZXNzb247Civmi5sgPCBiZWNrb247CivlhbQgPCB0aHJpdmU7CivnuqYgPCB0cmVhdHk7CivoqakgPCBwb2V0cnk7Civnu50gPCB0b1wtY3V0Owor6YCJIDwgY2hvb3NlOwor5pifIDwgYVwtc3RhcjsKK+iotCA8IGFjY3VzZTsKK+eImyA8IHJvdHRlbjsKK+a2iCA8IHZhbmlzaDsKK+eHrSA8IGNhbmRsZTsKK+WnqyA8IGJlYXV0eTsKK+adqCA8IHdpbGxvdzsKK+S4pSA8IHN0cmljdDsKK+eGiiA8IGFcLWJlYXI7CivlpoQgPCBhYnN1cmQ7Civoi48gPCByZXZpdmU7CivnrZQgPCBhbnN3ZXI7Civlpa4gPCBzdHJpdmU7CivnhakgPCBib3RoZXI7CivopaQgPCByYWdnZWQ7CivkvpsgPCBzdXBwbHk7CivlpK4gPCBjZW50ZXI7CivliJcgPCBhXC1saW5lOwor54SmIDwgYnVybmVkOwor6b6ZIDwgZHJhZ29uOwor5aSPIDwgc3VtbWVyOwor5pilIDwgc3ByaW5nOwor5oCBIDwgbWFubmVyOwor6KKWIDwgc2xlZXZlOwor6KKLIDwgcG9ja2V0Owor5YmvIDwgYXNzaXN0Owor5aSfIDwgZW5vdWdoOwor6KGXIDwgc3RyZWV0Owor5r+AIDwgYXJvdXNlOwor6ZO2IDwgc2lsdmVyOwor6Zi1IDwgY29sdW1uOwor566AIDwgc2ltcGxlOwor5q+SIDwgcG9pc29uOwor5rmWIDwgYVwtbGFrZTsKK+idiSA8IGNpY2FkYTsKK+i/vSA8IHB1cnN1ZTsKK+m8rCA8IHdlYXNlbDsKK+e7nCA8IGVubWVzaDsKK+a8oCA8IGRlc2VydDsKK+icmCA8IHNwaWRlcjsKK+WNoCA8IGRpdmluZTsKK+WckyA8IGNpcmNsZTsKK+WFsCA8IG9yY2hpZDsKK+mYtiA8IHN0YWlyczsKK+m7mSA8IHNpbGVudDsKK+S9myA8IGJ1ZGRoYTsKK+aViCA8IHJlc3VsdDsKK+aUuyA8IGF0dGFjazsKK+etliA8IHNjaGVtZTsKK+iCoSA8IHRoaWdoczsKK+iOqyA8IGRvXC1ub3Q7CivlmJggPCBleGhhbGU7CivnqpcgPCB3aW5kb3c7Civmt7sgPCBhcHBlbmQ7Civmt7cgPCB0b1wtbWl4Owor6beyIDwgY29uZG9yOwor5Y2aIDwgZ2FtYmxlOwor6JekIDwgcmF0dGFuOwor5pm6IDwgd2lzZG9tOwor5oqXIDwgcmVzaXN0Owor5ZawIDwgdG9cLWVhdDsKK+WWpyA8IGxpdmVseTsKK+WWiSA8IHRocm9hdDsKK+a1miA8IGRyZWRnZTsKK+mAgyA8IGVzY2FwZTsKK+WUuCA8IHJlY2l0ZTsKK+mdliA8IHBhY2lmeTsKK+enmCA8IHNlY3JldDsKK+assiA8IGRlc2lyZTsKK+W+gSA8IGludmFkZTsKK+eniyA8IGF1dHVtbjsKK+WQuCA8IGluaGFsZTsKK+mzqSA8IHBpZ2VvbjsKK+aCsiA8IHNvcnJvdzsKK+ahpSA8IGJyaWRnZTsKK+iSuyA8IHJ1c2hlczsKK+iRoSA8IGdyYXBlczsKK+axmiA8IGZpbHRoeTsKK+iDuCA8IGJyZWFzdDsKK+mCriA8IHBvc3RhbDsKK+WQnSA8IHN0aW5neTsKK+aoqiA8IGFjcm9zczsKK+iQjiA8IHdpdGhlcjsKK+iPqyA8IGNlbGVyeTsKK+aLqSA8IHNlbGVjdDsKK+aBqCA8IGhhdHJlZDsKK+eruSA8IGJhbWJvbzsKK+iPkyA8IGZydWl0czsKK+aXlyA8IGJhbm5lcjsKK+auuyA8IGNhc2luZzsKK+eosyA8IHN0YWJsZTsKK+i/uSA8IHRyYWNlczsKK+mSiCA8IG5lZWRsZTsKK+aruyA8IGNoZXJyeTsKK+W8gyA8IHJlamVjdDsKK+e0qyA8IHB1cnBsZTsKK+aLlCA8IHVwcm9vdDsKK+iKnSA8IHNlc2FtZTsKK+i1jyA8IHJld2FyZDsKK+aPkiA8IGluc2VydDsKK+mpoiA8IGRvbmtleTsKK+WGrCA8IHdpbnRlcjsKK+aJqSA8IGV4cGFuZDsKK+apmCA8IG9yYW5nZTsKK+mAvCA8IGNvbXBlbDsKK+motyA8IGhhcmFzczsKK+WIuSA8IHRlbXBsZTsKK+mVnCA8IG1pcnJvcjsKK+aomSA8IGFcLW1hcms7CivoiIwgPCB0b25ndWU7Civmp70gPCB0cm91Z2g7Civoh7wgPCBtb3J0YXI7CivkvI8gPCBjcm91Y2g7CivmhKQgPCByZXNlbnQ7Civkv4QgPCBzdWRkZW47Civlh40gPCBmcmVlemU7Civmp4wgPCBoYW1tZXI7CivpmLsgPCBpbXBlZGU7CivppZEgPCBzdGFydmU7CivohZEgPCBib3dlbHM7CivlhY4gPCByYWJiaXQ7CivohYsgPCBhcm1waXQ7CivlhJggPCB1dG1vc3Q7CivltIcgPCBlc3RlZW07CivppJMgPCBodW5ncnk7Civmo7ogPCBjb2ZmaW47CivnsokgPCBwb3dkZXI7Civnm74gPCBzaGllbGQ7Civpo6IgPCBodW5nZXI7CivmjZUgPCBhcnJlc3Q7Civmoq8gPCBsYWRkZXI7CivogZggPCBlbmdhZ2U7CivmooMgPCBhXC1jbHViOwor6aGrIDwgc2hpdmVyOwor6Ze3IDwgZ2xvb215Owor5oKUIDwgcmVwZW50Owor6YKAIDwgaW52aXRlOwor6aCsIDwgY2hlZWtzOwor5oKjIDwgc3VmZmVyOwor5LiQIDwgYmVnZ2FyOwor5p+xIDwgcGlsbGFyOwor5p+aIDwgcG9tZWxvOwor5p+EIDwgaGFuZGxlOwor5L6uIDwgaW5zdWx0Owor6ZOcIDwgY29wcGVyOwor5p6VIDwgcGlsbG93Owor5p21IDwgcGVzdGxlOwor5omvIDwgcmlwXC11cDsKK+i2iyA8IGhhc3RlbjsKK+S4siA8IHN0cmluZzsKK+mbsiA8IGNsb3VkczsKK+mbjCA8IGZlbWFsZTsKK+mbhyA8IGVtcGxveTsKK+mahSA8IGNvcm5lcjsKK+e5lSA8IHJlcGFpcjsKK+ajiSA8IGNvdHRvbjsKK+e4myA8IHRvXC10aWU7CivosIUgPCBleGN1c2U7CivlkYggPCBzdWJtaXQ7Civnt5ogPCB0aHJlYWQ7CivmlbcgPCBzcHJlYWQ7CivohL4gPCBzcGxlZW47CivntLMgPCBnaXJkbGU7CivpubAgPCBmYWxjb247CivmhJogPCBzdHVwaWQ7Civns54gPCBtYW51cmU7CivnsqcgPCB0b2lsZXQ7CivmjqEgPCBnYXRoZXI7CivluJUgPCB0dXJiYW47CivkuKsgPCBmb3JrZWQ7Civmi5AgPCBraWRuYXA7CivlgKogPCBmZWVibGU7CivpjJAgPCBnaW1sZXQ7Civnr64gPCBiYXNrZXQ7CivkvoQgPCBuZXBoZXc7Civlj4kgPCBjcm90Y2g7CivmgJYgPCB0ZXJyb3I7CivpooEgPCBjb25mZXI7CivlkpUgPCBtdW1ibGU7CivoiLUgPCBydWRkZXI7Civmg6kgPCBwdW5pc2g7CivlkpYgPCBjb2ZmZWU7Civmt7MgPCBob25lc3Q7CivnjLQgPCBtb25rZXk7CivpnIkgPCBtaWxkZXc7CivmgrwgPCBncmlldmU7CivpgI0gPCByYW1ibGU7CivogI0gPCBmcm9saWM7CivmjYYgPCB0aWVcLXVwOwor6YGKIDwgd2FuZGVyOwor5bu/IDwgdHdlbnR5Owor6IW7IDwgZ3JlYXN5Owor57yGIDwgaGF3c2VyOwor6Z6RIDwgdGF0YXJzOwor5oW3IDwgYXJkZW50Owor56+3IDwgYXduaW5nOwor6I2GIDwgdGhvcm5zOwor6IaPIDwgZ3JlYXNlOwor6Z6NIDwgc2FkZGxlOwor552sIDwgbm90aWNlOwor57ulIDwgc29vdGhlOwor5rCnIDwgb3h5Z2VuOwor5am3IDwgcHJldHR5Owor5Ye/IDwgY2hpc2VsOwor5berIDwgd2l6YXJkOwor6Jm+IDwgc2hyaW1wOwor5Ly2IDwgbG9uZWx5Owor5qSSIDwgcGVwcGVyOwor5o+WIDwgc2FsdXRlOwor5YaJIDwgdGVuZGVyOwor6LixIDwgc3Ryb2xsOwor54ysIDwgdnVsZ2FyOwor6KSCIDwgamFja2V0Owor57OZIDwgY29hcnNlOwor6Ze4IDwgc2x1aWNlOwor6aKTIDwgcnVpbmVkOwor5bGJIDwgZHJhd2VyOwor5YiBIDwgdHJpY2t5Owor5rS8IDwgaG9sbG93Owor6JKcIDwgZ2FybGljOwor5rijIDwgcmVmdXNlOwor5oWRIDwgYWZyYWlkOwor5b+PIDwgcmVncmV0Owor56K+IDwgcm9sbGVyOwor55aZIDwgcGltcGxlOwor5ryJIDwgZmlsdGVyOwor6ZqnIDwgdHVubmVsOwor6YWlIDwgYnV0dGVyOwor6ZKuIDwgYnV0dG9uOwor5ryxIDwgZ2FyZ2xlOwor55uUIDwgaGVsbWV0Owor56OLIDwgcG9saXNoOwor6JWJIDwgYmFuYW5hOwor55ewIDwgcGhsZWdtOwor576BIDwgaGFsdGVyOwor6K+PIDwgZGVjcmVlOwor6Z22IDwgdGFyZ2V0Owor6YWdIDwgbGlxdW9yOwor5Lq1IDwgc2xpZ2h0Owor6LKCIDwgbWFydGVuOwor6IGGIDwgbGlzdGVuOwor6Z+sIDwgc2hlYXRoOwor6bmKIDwgbWFncGllOwor5Y2FIDwgdGhpcnR5Owor56KzIDwgY2FyYm9uOwor56GrIDwgc3VsZnVyOwor6ZWwIDwgc2lja2xlOwor5raOIDwgc2FsaXZhOwor5aOVIDwgdHJlbmNoOwor6ZSaIDwgYW5jaG9yOwor6ZKgIDwgc29kaXVtOwor552/IDwgc2hyZXdkOwor6I66IDwgb3Jpb2xlOwor6IOvIDwgcGVsdmlzOwor6Le7IDwgYXNjZW5kOwor6bOWIDwgdHVydGxlOwor6IW8IDwgbW9kZXN0Owor5aiTIDwgY29tcGx5Owor5YiOIDwgYmVoZWFkOwor6LmZIDwgdXJnZW50Owor6IOaIDwgZW1icnlvOwor6I2UIDwgbGljaGVlOwor6ZS1IDwgdGlua2xlOwor6IynIDwgY29jb29uOwor6J+SIDwgcHl0aG9uOwor6bmDIDwgY3Vja29vOwor542XIDwgdW5ydWx5Owor6JKvIDwgYVwtcnVzaDsKK+ayjyA8IGluZnVzZTsKK+WajyA8IHNuZWV6ZTsKK+egviA8IGdyYXZlbDsKK+S9nyA8IGFcLW5hbWU7CivojJwgPCBtYWRkZXI7CivmiYggPCBlc2NvcnQ7CivlkpsgPCBlbmpvaW47Civms5cgPCBtdWNvdXM7CivplLkgPCBzaG92ZWw7CivpuZcgPCBvc3ByZXk7CivlhKEgPCBwdXBwZXQ7CivonoIgPCBtYW50aXM7Civoi5MgPCBmdW5ndXM7Civlj7UgPCBjYW5ub3Q7Civlr64gPCBzaGFudHk7CivnircgPCBmaWVyY2U7CivmsrEgPCByaXZlcnM7CivnlqEgPCB1bGNlcnM7CivlvpUgPCBpbmR1Y2U7CivpqpsgPCBnYWxsb3A7CivlvokgPCB3b25kZXI7CivosKogPCBjaGFyZ2U7Civkv5ogPCBydXN0aWM7Civkv6ogPCBzcG91c2U7Civoh74gPCBtb21lbnQ7CivlrLQgPCB0b1wtd2luOwor54OpIDwgcmFnb3V0Owor6ZOkIDwgaW5nb3RzOwor6IyBIDwgc3Byb3V0Owor6IiiIDwgc2FtcGFuOwor56KcIDwgZ3JpdHR5Owor5YOtIDwgYXNzdW1lOwor56KYIDwgaW9kaW5lOwor54OvIDwgYWxrZW5lOwor5Zu/IDwgcGVuXC11cDsKK+WbqyA8IGVudGlyZTsKK+mVjSA8IG5pY2tlbDsKK+apkCA8IGFcLXNhY2s7CivmnbcgPCBsb3F1YXQ7CivogZIgPCBjbGFtb3I7Civnvq8gPCB3ZXRoZXI7Civnp6MgPCBmb2RkZXI7CivmqL0gPCBnb2JsZXQ7CivnhJYgPCBzaW1tZXI7CivovbMgPCBwdWxsZXk7Civpla0gPCByYWRpdW07CivmroQgPCB0b1wtZW5kOwor6K+wIDwgaW5mb3JtOwor6I6FIDwgYXR0ZW5kOwor6K6rIDwgZmluaXNoOwor5resIDwgdGVtcGVyOwor5ZisIDwgdG9cLWxhcDsKK+eDtyA8IGFsa2FuZTsKK+ibjiA8IG95c3RlcjsKK+eEsSA8IGZsYW1lczsKK+icpSA8IGxpemFyZDsKK+iRuiA8IHRoYXRjaDsKK+aBvSA8IGRldmlzZTsKK+iTvyA8IGNsb3ZlcjsKK+eYjCA8IHNldmVyZTsKK+WWsSA8IGdyYW1tZTsKK+mStCA8IGNvYmFsdDsKK+iyiSA8IGJhZGdlcjsKK+iciSA8IG1heWZseTsKK+mykSA8IHNhbG1vbjsKK+WoiCA8IGxvdmVseTsKK+iNqCA8IG5ldHRsZTsKK+erpiA8IHJldmVyZTsKK+eLkiA8IGJhYm9vbjsKK+iYvCA8IG1pbGxldDsKK+iMtCA8IGZlbm5lbDsKK+mypiA8IG1pbm5vdzsKK+a4jCA8IHN0cmFpbjsKK+mYmiA8IGdsYW5jZTsKK+ePkCA8IGVuYW1lbDsKK+mdmyA8IGluZGlnbzsKK+m7pyA8IGFcLWRhcms7CivooJMgPCBtaWRnZXM7CivmqbwgPCBjaXRydXM7CivprY0gPCBkZW1vbnM7Civnv4ogPCBmbHlpbmc7CivplY8gPCBkaXN0aWw7Civog7wgPCBjYWxsdXM7Civnio8gPCB5YWtcLW94Owor56KaIDwgc3VidXJiOwor6IWtIDwgcGFsYXRlOwor6bOfIDwgYmFyYmVsOwor5q6CIDwgdG9cLWRpZTsKK+etmiA8IHdpY2tlcjsKK+eWnSA8IGhlcm5pYTsKK+mqgCA8IGFuXC1vbGQ7CivokpcgPCBcKGhlcmJcKTsKK+iPnyA8IGRvZGRlcjsKK+mZiSA8IGRlZmlsZTsKK+eWoCA8IGFcLXNvcmU7Civml7AgPCBzdW5zZXQ7CivogY0gPCBlYXJ3YXg7CivplIcgPCBvc21pdW07CivpkqEgPCBiYXJpdW07CivopbsgPCBhXC1sb29wOwor6ZOSIDwgZXJiaXVtOwor6ZOIIDwgY2VyaXVtOwor5qS0IDwgcG9wbGFyOwor6IuhIDwgYmFybGV5Owor6IiEIDwgYVwtc2hvZTsKK+m4qyA8IHRocnVzaDsKK+mUlCA8IGN1cml1bTsKK+mTnyA8IGluZGl1bTsKK+ecjSA8IHN1bmtlbjsKK+ahtyA8IHJhZnRlcjsKK+iLhCA8IGJlbnp5bDsKK+mZlCA8IGFcLXN0ZXA7CivpqrYgPCBjb2NjeXg7CivpsrsgPCBtdWxsZXQ7CivonqggPCBpbnNlY3Q7CivombwgPCBhXC1mbGVhOwor55iVIDwgYXN0aG1hOwor6ZWYIDwgdHJvd2VsOwor6IOCIDwgYXJzaW5lOwor6I+UIDwgdHVybmlwOwor5b6e5q2kIDwgdGhlbmNlOwor6bOl5769IDwgcGluaW9uOwor57eo6ICFIDwgZWRpdG9yOwor6Kqk55SoIDwgbWlzdXNlOwor5by355ucIDwgYmFuZGl0Owor6Kmp56+HIDwgcHNhbG1zOwor5pa55rOVIDwgbWV0aG9kOwor5pS/562WIDwgcG9saWN5Owor5ZO65Lmz5YuV54mpIDwgbWFtbWFsOwor5LyK5bC85LyK5b63IDwgYWVuZWlkOwor6K2m5a+fIDwgcG9saWNlOwor5aOr5bir6KiYIDwganVkZ2VzOwor55m86Zu75qmfIDwgZHluYW1vOwor572q5Lq6IDwgc2lubmVyOwor5aSn54KuIDwgY2Fubm9uOwor5aSn54G9IDwgcGxhZ3VlOwor5aGe54i+57at5LqeIDwgc2VyYmlhOwor5ZCJ5LuWIDwgZ3VpdGFyOwor5q+A5ruFIDwgcGVyaXNoOwor56mG5pav5p6XIDwgbXVzbGltOwor6ZaL6LuK5Lq6IDwgZHJpdmVyOwor5bi26YemIDwgYnVja2xlOwor5YuV54mpIDwgYW5pbWFsOwor5L2/77mN6LGQ5a+MIDwgZW5yaWNoOwor57eK57iuIDwgcmVkdWNlOwor54eS54SmIDwgc2NvcmNoOwor6aCY5LqLIDwgY29uc3VsOwor5Zi25ZWe6IGyIDwgaG9hcnNlOwor5aSn5rWqIDwgYmlsbG93Owor552h6JGXIDwgYXNsZWVwOwor5rCj5oGvIDwgYnJlYXRoOwor5pOx572uIDwgc2hlbHZlOwor5pW05r2UIDwgbmVhdGx5Owor5byK55eFIDwgbWFsYWR5Owor6YG456WoIDwgYVwtdm90ZTsKK+WJveeriiA8IHBpcmF0ZTsKK+e3qOeivCA8IGNvZGluZzsKK+aLlOWwluWFkiA8IHRpcHRvcDsKK+W3qOmgrSA8IHR5Y29vbjsKK+mgguS6iyA8IHVzZWZ1bDsKK+aSleijgiA8IG1hbmdsZTsKK+mZhOiRlyA8IGFkaGVyZTsKK+S8iuWwvOS6nuaWryA8IGFlbmVhczsKK+ato+eVtiA8IHRpbWVseTsKK+aAkuWQvCA8IGJlbGxvdzsKK+Wlh+aZryA8IG1hcnZlbDsKK+eJiOW8jyA8IGZvcm1hdDsKK+mphemAkOWHuuWigyA8IGRlcG9ydDsKK+mBoOeoiyA8IHJlbW90ZTsKK+WNiuW+kSA8IHJhZGl1czsKK+mZjeiHqCA8IGJlZmFsbDsKK+euoeeQhuS6uiA8IGtlZXBlcjsKK+mGnOWMliA8IGRlZmFtZTsKK+eLguS6uiA8IG1hZG1hbjsKK+Wkp+ahtiA8IGJhcnJlbDsKK+acieS6uuaDhSA8IGh1bWFuZTsKK+ilv+e0heafvyA8IHRvbWF0bzsKK+eci+imiyA8IHRvXC1zZWU7Civop6PohKsgPCByZWxpZWY7CivnoLTmlZcgPCBiZWF0ZW47Civml5fluZ8gPCBlbnNpZ247CivmsLTlo7ogPCBrZXR0bGU7CivmrpbmsJEgPCBjb2xvbnk7Civml4vlvosgPCBtZWxvZHk7Civli5XmqZ8gPCBtb3RpdmU7Civljq3lgKYgPCBkcmVhcnk7CivlhafpmbggPCBpbmxhbmQ7Civlt6XpjKIgPCBzYWxhcnk7CivlhazplosgPCBwdWJsaWM7Civljp/lhYggPCBmb3JtZXI7CivlhavplosgPCBvY3Rhdm87CivnhornhoogPCByYWdpbmc7Civnn63mrYwgPCBiYWxsYWQ7CivljZrlo6sgPCBkb2N0b3I7Civlv6DlkYogPCBhZHZpY2U7CivnoLLmiYsgPCBndW5uZXI7CivlpJrmmJ8gPCBzdGFycnk7CivlvovluKsgPCBsYXd5ZXI7CivlhavliIbpn7PnrKYgPCBxdWF2ZXI7Civlvq7lppkgPCBzdWJ0bGU7Civlpb3lpb0gPCBuaWNlbHk7CivnuL3mmK8gPCBhbHdheXM7CivplovpjpYgPCB1bmxvY2s7CivmraXmuKwgPCBwYWNpbmc7Civnh5/mlZEgPCByZXNjdWU7CivmlazmnI0gPCBhZG1pcmU7CivlpKnnq7rniaHkuLkgPCBkYWhsaWE7CivlvpflrpwgPCBwcm9wZXI7CivliJ3ntJogPCBqdW5pb3I7CivovJXprIYgPCBnZW50bGU7CivniJDluoogPCBoZWFydGg7CivorIrloLEgPCB0b1wtbGllOwor56K65L+dIDwgZW5zdXJlOwor6Zui5aWH5pyJ6LajIDwgcXVhaW50Owor6YGL55SoIDwgdG9cLXVzZTsKK+e1sue1qCA8IHZlbHZldDsKK+eJiOWcliA8IGRvbWFpbjsKK+aUv+asiiA8IHJlZ2ltZTsKK+W+iOWwkSA8IHNlbGRvbTsKK+eIteWjqyA8IGtuaWdodDsKK+ilr+ijoSA8IGxpbmluZzsKK+ismeWSjCA8IG1lZWtseTsKK+e2sueQgyA8IHRlbm5pczsKK+iNkuiVqiA8IGJhcnJlbjsKK+mbu+W9semZoiA8IGNpbmVtYTsKK+WkqeaApyA8IGluYm9ybjsKK+Wwj+WmlueyviA8IGdvYmxpbjsKK+mHkee1sumbgCA8IGNhbmFyeTsKK+atkOa0siA8IGV1cm9wZTsKK+WLvuW8lSA8IHNlZHVjZTsKK+eGseacmyA8IGFzcGlyZTsKK+eyvumBuCA8IGNob3NlbjsKK+iqmOaLkCA8IGFiZHVjdDsKK+iqoOaHhyA8IGhlYXJ0eTsKK+WLleWQjeipniA8IGdlcnVuZDsKK+mAmuefpSA8IG5vdGlmeTsKK+WIuueXmyA8IHRpbmdsZTsKK+W+teWPrCA8IGVubGlzdDsKK+atoeaogiA8IGdhaWV0eTsKK+ertuizveiAhSA8IHBsYXllcjsKK+WFiOmLkiA8IGhlcmFsZDsKK+e3qOW5tOWPsiA8IGFubmFsczsKK+aVteaEjyA8IGVubWl0eTsKK+W3tOilvyA8IGJyYXppbDsKK+e8uuawp+eXhyA8IGFub3hpYTsKK+eJqeS7tiA8IG9iamVjdDsKK+WNuOS4iyA8IHVubG9hZDsKK+WMheWuuSA8IHBhcmRvbjsKK+iqmOaDkSA8IGVudGljZTsKK+eJp+S6uiA8IHBhc3RvcjsKK+Wkp+WcsOa0niA8IGNhdmVybjsKK+WkluW9oiA8IGZpZ3VyZTsKK+maqOapnyA8IHJhbmRvbTsKK+WFteiuiiA8IG11dGlueTsKK+eZvOWYjuWYjuiBsiA8IHJhdHRsZTsKK+aVj+aNtyA8IG5pbWJsZTsKK+eJm+S7lCA8IGNvd2JveTsKK+aPkOmGkiA8IHJlbWluZDsKK+inuOeKryA8IG9mZmVuZDsKK+WlquWPliA8IHNuYXRjaDsKK+Wkq+WtkCA8IHBlZGFudDsKK+WkquWtkCA8IHByaW5jZTsKK+ecn+epuiA8IHZhY3VcOm07CivmrrrlrrMgPCBtdXJkZXI7Civmrpjlv40gPCBibG9vZHk7CivplpLoqbEgPCBnb3NzaXA7Civovq3ogbcgPCByZXNpZ247Civnt5rmop0gPCBzdHJlYWs7Civmu5Hnv5TmqZ8gPCBnbGlkZXI7CivlvpLli54gPCBmdXRpbGU7CivlvpfliLAgPCB0b1wtZ2V0Owor5biM6IeYIDwgZ3JlZWNlOwor5r+66ZaLIDwgc3BsYXNoOwor6YGK5q23IDwgdHJhdmVsOwor5b6p5LuHIDwgYXZlbmdlOwor5q6Y6aSY54mpIDwgbGl0dGVyOwor5aOT5omBIDwgc3F1YXNoOwor6Kmp5oSPIDwgcG9ldGljOwor5pSd5pS/IDwgcmVnZW50Owor5qiZ6KqeIDwgc2xvZ2FuOwor5LiN5Y+v5ZGK5Lq6IDwgaGlkZGVuOwor55m86KqTIDwgdG9cLXZvdzsKK+apoeiGoCA8IHJ1YmJlcjsKK+WKm+i2s+S7peWBmiA8IGFmZm9yZDsKK+WcqO+5jeacn+mWkyA8IGR1cmluZzsKK+WcsOmQtSA8IHN1YndheTsKK+WNgeS4gCA8IGVsZXZlbjsKK+W+nuS6iyA8IGdvXC1mb3I7CivnhrHluLYgPCB0cm9waWM7CivmnInosqzku7sgPCBsaWFibGU7Civpm5zlt6UgPCBwb3J0ZXI7Civlh7rnlKIgPCBvdXRwdXQ7CivlpaLkvoggPCBsdXh1cnk7CivmjpvpiaQgPCBjb3VwbGU7CivntJTnsrkgPCBwdXJlbHk7CivnqK7ml4/kuLvnvqkgPCByYWNpc207CivlranlrZDmsKMgPCBib3lpc2g7CivlsI/niZ3niZsgPCBoZWlmZXI7Civot5HmraXogIUgPCBydW5uZXI7CivpnLLlh7ogPCBleHBvc2U7CivmlIDmmIcgPCByaXNpbmc7Civop6PmuLQgPCBxdWVuY2g7CivmrYzmiYsgPCBzaW5nZXI7CivlkJDntqzpm54gPCB0dXJrZXk7Civlt6HoiKogPCBjcnVpc2U7CivluIPnt5ogPCB3aXJpbmc7CivmraPlvI8gPCBmb3JtYWw7CivlhrDnrrEgPCBpY2Vib3g7CivnhKHms5UgPCB1bmFibGU7CivpgJXmtYEgPCBydW5vZmY7CivlpKflkIMgPCBnb2JibGU7Civmr6vkuI0gPCBoYXJkbHk7CivpgZPmlZkgPCB0YW9pc207CivpvbUgPCB1bmV2ZW47CivoqLrmiYAgPCBjbGluaWM7CivpgbrmgaggPCBncnVkZ2U7CivpvKsgPCBtYXJtb3Q7CivpvJQgPCBhXC1kcnVtOwor6ayG6aSFIDwgbXVmZmluOwor5Yqg5bSZIDwgZ2FsbG9uOwor6bmoIDwgYW50aHVzOwor6Leo5o6l5ZmoIDwganVtcGVyOwor5pWZ5aCCIDwgY2h1cmNoOwor6beHIDwgY2hpY2tzOwor6ba9IDwgYVwtaGF3azsKK+m2uCA8IHNpc2tpbjsKK+ipnuWwviA8IHN1ZmZpeDsKK+m1gCA8IGhvb3BvZTsKK+mAseacnyA8IHBlcmlvZDsKK+m0oiA8IFwoZHVja1wpOwor6LKg5pOU6ICFIDwgYmVhcmVyOwor6Zu25ZSuIDwgcmV0YWlsOwor6bSDIDwgc2hyaWtlOwor5Zyo6LuKIDwgYWJvYXJkOwor5b6S5q2l5peF6KGMIDwgaGlraW5nOwor6bGOIDwgXChmaXNoXCk7CivpsYYgPCBwb3VscGU7CivojLbnopcgPCB0ZWFjdXA7Civnt57luLYgPCByaWJib247CivliIbmtL4gPCBhc3NpZ247CivlkIjllLHlnJggPCBjaG9ydXM7CivpmLvmqYggPCB0aHdhcnQ7CivmkJbnsYMgPCBjcmFkbGU7CivpoJjlsI7ogIUgPCBsZWFkZXI7CivokZflkI0gPCBmYW1vdXM7CivlvLfli6IgPCBtaWdodHk7CivntK7nh58gPCBlbmNhbXA7CivpqasgPCBob3JzZXM7Civlh7nmtJ4gPCBjYXZpdHk7CivlvLHljJYgPCB3ZWFrZW47CivpmbDmiLYgPCB2YWdpbmE7Civmk4rmlZcgPCBkZWZlYXQ7CivpgLLmjqUgPCBhY2Nlc3M7Civppr8gPCBhblwtYXNzOwor57WV5rCjIDwgZXhwaXJlOwor5puy5qON55CDIDwgaG9ja2V5Owor6Ki85a+mIDwgdmVyaWZ5Owor6aSkIDwgaW5jaXRlOwor6YCj5pOKIDwgYmF0dGVyOwor5pWZ5Y2AIDwgcGFyaXNoOwor54Gr566tIDwgcm9ja2V0Owor6Zqx5aOrIDwgaGVybWl0Owor6Lev55Sx5ZmoIDwgcm91dGVyOwor55+t5YqNIDwgZGFnZ2VyOwor6aGSIDwgc29sZW1uOwor5by35YGlIDwgc3R1cmR5Owor5LiA56+AXCjoqalcKSA8IHN0YW56YTsKK+atpuWZqCA8IHdlYXBvbjsKK+memiA8IGJyaWRsZTsKK+eFpOWxkSA8IGNpbmRlcjsKK+W5s+advyA8IHRhYmxldDsKK+WHueanvSA8IHNvY2tldDsKK+WIruaOiSA8IHNjcmFwZTsKK+mrmOmbhSA8IGRhaW50eTsKK+mbgiA8IFwoYmlyZFwpOwor54i25q+N6KaqIDwgcGFyZW50Owor5q2h5ZacIDwgam95ZnVsOwor5YiG5p6dIDwgYnJhbmNoOwor5q2l5ZOoIDwgc2VudHJ5Owor5YKz6YGUIDwgY29udmV5Owor5YyW5aad5ZOBIDwgbWFrZXVwOwor5oCl5L+D6IGyIDwgcGF0dGVyOwor6ZeJIDwgY3VydmVkOwor6KGh6YePIDwgd2VpZ2h0Owor5L2/56Gs5YyWIDwgaGFyZGVuOwor6aqo6auTIDwgbWFycm93Owor6ZOvIDwgY2VzaXVtOwor5pCU55miIDwgdGlja2xlOwor6ZuV5YOPIDwgc3RhdHVlOwor6ZGeIDwgc29sZGVyOwor5q2j5Y2IIDwgbWlkZGF5Owor6ZGAIDwgaW9uaXVtOwor6ZCdIDwgYVwtcGljazsKK+mOkiA8IHRvXC1ob2U7CivkuqTmmJPogIUgPCBkZWFsZXI7CivpjoUgPCB0b1wtc2F3Owor5pKr5oqxIDwgY2FyZXNzOwor6YypIDwgdmVzc2VsOwor5pWR5Li7IDwgc2F2aW9yOwor57KY57KYIDwgc3RpY2t5Owor5pel5YWn55OmIDwgZ2VuZXZhOwor6YuZIDwgbWlzZml0Owor5be054i+IDwgYmFsdGljOwor55qE56K6IDwgcmVhbGx5Owor6YuFIDwgemluY3VtOwor6YGO5aSxIDwgZGVmZWN0Owor6YqA6KGM5a62IDwgYmFua2VyOwor5qSN54mp5a24IDwgYm90YW55Owor57SA5b+1542OIDwgdHJvcGh5Owor6YW0IDwgbGVhdmVuOwor6ZW355+tIDwgbGVuZ3RoOwor5bmr5omLIDwgaGVscGVyOwor5YG96YCg55qEIDwgZm9yZ2VkOwor5peF6KGM6KOd5YKZIDwgb3V0Zml0Owor6ZmE5bq4IDwgdmFzc2FsOwor6YGp5ZCIIDwgdG9cLWZpdDsKK+esrOS6jOasoSA8IHNlY29uZDsKK+mrmOmBlCA8IGF0dGFpbjsKK+m1neWNteefsyA8IHBlYmJsZTsKK+acieawo+a0viA8IGxvcmRseTsKK+WCteWLmeS6uiA8IGRlYnRvcjsKK+iKseeyiSA8IHBvbGxlbjsKK+mAjCA8IHBsZWFzZTsKK+i/jSA8IGZhbHRlcjsKK+i9nCA8IGhlYXJzZTsKK+eZveeXtCA8IGlkaW9jeTsKK+WzveiwtyA8IGNhbnlvbjsKK+i6pyA8IHNhbmRhbDsKK+ihqOimqiA8IGNvdXNpbjsKK+ingOW/tSA8IG5vdGlvbjsKK+i4oSA8IGN1cmxlZDsKK+ijgee4qyA8IHRhaWxvcjsKK+aOoee0jSA8IGFjY2VwdDsKK+ijnOeoriA8IHJlc2VlZDsKK+Wwj+ein+WtkCA8IHNhdWNlcjsKK+iyqiA8IGdyZWVkeTsKK+WGsOafsSA8IGljaWNsZTsKK+iInui5iOWutiA8IGRhbmNlcjsKK+mYv+WnqCA8IGF1bnRpZTsKK+e3muS4iiA8IG9ubGluZTsKK+ithiA8IHNjcmVhbTsKK+irtSA8IG11dHRlcjsKK+mpmumnrSA8IGZyaWdodDsKK+e0oOaPjyA8IHNrZXRjaDsKK+mWkua3tyA8IGxvaXRlcjsKK+ipuyA8IG9yZGVyczsKK+iplyA8IHRvXC1zcHk7CivmkZ/mirEgPCB0b1wtaHVnOwor6Ieq6LqrIDwgaXRzZWxmOwor6YCy5Y+jIDwgaW1wb3J0Owor5o6h56SmIDwgbWluaW5nOwor6KWuIDwgY29sbGFyOwor5pO+5LqCIDwgaW5mZXN0Owor57WQ5bC+IDwgZW5kaW5nOwor6Zaj5qiTIDwgZ2FycmV0Owor6Iqx55SfIDwgcGVhbnV0Owor6KKaIDwgZ3JlYXZlOwor6YGO5Lu9IDwgdW5kdWx5Owor6amf6ZuoIDwgc2hvd2VyOwor5bmD5bmVIDwgc2NyZWVuOwor5L2/5r+V6YCPIDwgZHJlbmNoOwor6KCpIDwgYVwtdG9hZDsKK+iggSA8IGxhcnZhZTsKK+WogeWjq+W/jOmFkiA8IHdoaXNreTsKK+WFiea+pCA8IGx1c3RlcjsKK+mAneWOuyA8IGVsYXBzZTsKK+iboyA8IGJlZXRsZTsKK+ibjCA8IGNyaWNrZTsKK+WFiea7kSA8IGdsb3NzeTsKK+mAleWQkSA8IHJhZGlhbDsKK+iZliA8IHRvXC1jcnk7CivmibnoqZXlrrYgPCBjcml0aWM7Civnm7jlt64gPCBkaWZmZXI7CivolpEgPCBnaW5nZXI7Civpl5zlv4MgPCBjYXJpbmc7CivlnKjmt7HomZUgPCBkZWVwbHk7CivolJQgPCByYWRpc2g7Civok5ogPCBveGFsaWM7Civoko4gPCBwaW5hbmU7CivmirXpgZQgPCBhcnJpdmU7Civli53liKnogIUgPCB2aWN0b3I7CivlnLDnlKIgPCBlc3RhdGU7CivpgKPlrZfnrKbomZ8gPCBoeXBoZW47Civoj4YgPCBqdW5nbGU7Civlu6LpmaTou43lgpkgPCBkaXNhcm07CivlsYDpnaIgPCBhc3BlY3Q7CivojKIgPCBzZWRnZXM7Civoubroubrmnb8gPCBzZWVzYXc7CivmvrHnsokgPCBzdGFyY2g7CivmqJnmppwgPCBmbGF1bnQ7CivoiaIgPCBhXC1tYXN0Owor5ruR6ZuqIDwgdG9cLXNraTsKK+Wbnue1lSA8IHJlYnVmZjsKK+ilquW4tiA8IGdhcnRlcjsKK+e2geS9jyA8IGZhc3RlbjsKK+ecvOWFiSA8IHZpc2lvbjsKK+ejqOWdiuS4uyA8IG1pbGxlcjsKK+aoo+acrCA8IHNhbXBsZTsKK+eDiOWjqyA8IG1hcnR5cjsKK+eyvuaYjiA8IGFzdHV0ZTsKK+iFs+mQkCA8IGZldHRlcjsKK+iDuSA8IGNvb2tlZDsKK+eZveaenCA8IGdpbmtnbzsKK+W4huW4gyA8IGNhbnZhczsKK+i3s+mAsiA8IHBsdW5nZTsKK+aciemXnOmAoyA8IHJlbGF0ZTsKK+WkmuaoueacqCA8IHdvb2RlZDsKK+mZhOS4iiA8IGF0dGFjaDsKK+aKrOi1tyA8IHVwbGlmdDsKK+mhm+WAkumBjuS+hiA8IGludmVydDsKK+iApCA8IHBsb3VnaDsKK+WQseWQseiBsiA8IHNxdWVhazsKK+W5vuS5jiA8IGFsbW9zdDsKK+eAiea5liA8IGxhZ29vbjsKK+e9qyA8IGhpbmRlcjsKK+e9pSA8IGltcGV0ZTsKK+ewoeebtCA8IHNpbXBseTsKK+acquWujOaIkCA8IHVuZG9uZTsKK+e5qCA8IGFcLWtub3Q7CivlhYnmmK8gPCBzb2xlbHk7CivnuIYgPCBhXC1yb3BlOwor57Wm5LqIIDwgYWNjb3JkOwor5LiD5pyI5LiA6JmfIDwganVseVwtMTsKK+ikh+aVuCA8IHBsdXJhbDsKK+eZveaQrSA8IG5vXC11c2U7CivprZTos73lhYsgPCBtb3NhaWM7CivoiKrnqIsgPCBmbGlnaHQ7CivntKkgPCB0b1wtc2V3Owor57SfIDwgYVwtc2FzaDsKK+e0gyA8IGFcLWNvcmQ7Civmj7TmiYsgPCBzdWNjb3I7CivluJ3lnIsgPCBlbXBpcmU7CivojLblo7ogPCB0ZWFwb3Q7CivkvK/ku7Llj5TlraMgPCBlbGRlc3Q7CivnsbIgPCBhcHBlYWw7Civnm5/lnIsgPCBhbGxpZXM7CivnsIkgPCBkZXB1dHk7Civoo4HmsbogPCBydWxpbmc7Civnr6UgPCBidWxnbGU7Civlr6bpq5QgPCBlbnRpdHk7CivnrpkgPCBxdWl2ZXI7Civng4/lubLpgZQgPCB1Z2FuZGE7CivntKLlj5YgPCB0b1wtYXNrOwor5bit5Y23IDwgZW5ndWxmOwor5LiN56K65a+mIDwgdW50cnVlOwor5Zyw5q+vIDwgY2FycGV0Owor56uJIDwgYVwtaG9sZTsKK+WFq+W6piA8IG9jdGF2ZTsKK+eUqOiqniA8IHN5bnRheDsKK+m8u+WPo+mDqOWIhiA8IG11enpsZTsKK+WwluiBsuWVvOWTrSA8IHNxdWVhbDsKK+evgOe0hCA8IGZydWdhbDsKK+eljyA8IHNocmluZTsKK+i+puWFrOWupCA8IG9mZmljZTsKK+aJv+irviA8IGVmZm9ydDsKK+ihm+eUnyA8IGhlYWx0aDsKK+ijnOaVkSA8IHJlbWVkeTsKK+S/ruiogiA8IHJldmlzZTsKK+e+hemmrOabuCA8IHJvbWFuczsKK+i/hOS7iiA8IHNvXC1mYXI7Civlr6bpmpsgPCBhY3R1YWw7CivnnaogPCBzcHlcLW9uOwor55y+IDwgbWFzc2VzOwor5ZiX6KmmIDwgdG9cLXRyeTsKK+WeguW5lSA8IGNhbm9weTsKK+ign+ethiA8IGNyYXlvbjsKK+acjeWLmeWToSA8IHdhaXRlcjsKK+WRvemBi+iou+WumiA8IG9yZGFpbjsKK+S6uumgreeNhei6qyA8IHNwaGlueDsKK+eagCA8IGtlcm5lbDsKK+S4jeW5uOS5i+S6iyA8IG1pc2hhcDsKK+icmOibm+e2siA8IGNvYndlYjsKK+eWgyA8IGhhbWxldDsKK+Wft+S6iyA8IGRlYWNvbjsKK+eVvSA8IGdyb3VuZDsKK+aIkOmVtyA8IG1hdHVyZTsKK+a6nemBkyA8IGdyb292ZTsKK+mYv+exs+W3tCA8IGFtb2ViYTsKK+i+suS6uiA8IGZhcm1lcjsKK+a7vuiQvSA8IHR1bWJsZTsKK+iejeinoyA8IG1vbHRlbjsKK+WcluahiCA8IGRlc2lnbjsKK+iFlOiqvyA8IGFjY2VudDsKK+S/ruijnOWMoCA8IHRpbmtlcjsKK+i1sOmMryA8IGFzdHJheTsKK+ePlCA8IFwoamFkZVwpOwor546TIDwgcGVhcmx5Owor56+A55yBIDwgc2F2aW5nOwor54y6IDwgamFja2FsOwor5L+h6JmfIDwgc2lnbmFsOwor5bCP6LKTIDwga2l0dGVuOwor6KGM54K6IDwgYWN0aW9uOwor5aSn55CG55+zIDwgbWFyYmxlOwor5Zyo77mN5LmL5peBIDwgYmVzaWRlOwor5oyB5pyJ5Lq6IDwgaG9sZGVyOwor54WDIDwgcmVtb3ZlOwor5pKS5ZOI5ouJIDwgc2FoYXJhOwor5aSn6ZCu5YiAIDwgc2N5dGhlOwor5Z+L5LyPIDwgYW1idXNoOwor57SE57+w5LqM5pu4IDwgMlwtam9objsKK+WwjeipsSA8IGRpYWxvZzsKK+espuiZnyA8IHN5bWJvbDsKK+eAjCA8IHBsZW50eTsKK+iDuOmHnSA8IGJyb29jaDsKK+a/tSA8IGFcLWJhbms7CivmkK3kuZggPCBlbWJhcms7CivmvrwgPCBibGVhY2g7CivlqJvmqILloLQgPCByZXNvcnQ7CivlhavljYEgPCBlaWdodHk7CivnsLjmj5ogPCB3aW5ub3c7Civmo5Lns5YgPCBzdWNrZXI7Civnrpfnm6QgPCBhYmFjdXM7CivphoPpu4Pnk5wgPCBwaWNrbGU7CivmuKggPCBhXC1jb3ZlOwor5refIDwgdHVyYmlkOwor57K+5YqbIDwgZW5lcmd5Owor5pS25Ymy6ICFIDwgcmVhcGVyOwor5YKz5p+TIDwgaW5mZWN0Owor5bel5Lq6IDwgd29ya2VyOwor5rSfIDwgc25pdmVsOwor5rOtIDwgYVwtcmFmdDsKK+awqyA8IGFtb25pYTsKK+i1t+iotCA8IHRvXC1zdWU7CivonZfon7IgPCBsb2N1c3Q7CivlgrPmlZkgPCBwcmVhY2g7CivovIPlpb0gPCBiZXR0ZXI7CivoirHlnIggPCB3cmVhdGg7CivmqbAgPCBhXC1zcGFyOwor6IWO6IefIDwga2lkbmV5Owor5qmkIDwgc3RhbWVuOwor5qmcIDwgYVwtcG9zdDsKK+aplSA8IGFcLXByb3A7CivmqLIgPCBqdWp1YmU7Civot6/nqIsgPCBjb3Vyc2U7CivlhYjliY0gPCBiZWZvcmU7CivmhoLprLEgPCBzdWxsZW47Civonrrml4vpiZcgPCB3cmVuY2g7Civlj4PorbDpmaIgPCBzZW5hdGU7CivnqZfpo74gPCB0YXNzZWw7CivmpaIgPCB0aW5kZXI7CivnkZ7ph5EgPCBydWlqaW47CivmirHnl4UgPCBiZVwtaWxsOwor5YKz5o6IIDwgaW1wYXJ0Owor6LuK5bqrIDwgZ2FyYWdlOwor5ris6YePIDwgc3VydmV5Owor5a2X6aaWIDwgcHJlZml4Owor6a2a5aSrIDwgZmlzaGVyOwor5qSnIDwgZ3V0dGVyOwor5qODIDwgYVwtcGVhcjsKK+ahsiA8IHF1aW5jZTsKK+iKseWTqCA8IGdhcmlzaDsKK+i8leWSrCA8IG5pYmJsZTsKK+ainee0iyA8IHN0cmlwZTsKK+iHtOatuyA8IGRlYWRseTsKK+S7u+S9leS6uiA8IGFueW9uZTsKK+i0lumHkSA8IHJhbnNvbTsKK+ihjOaYnyA8IHBsYW5ldDsKK+abgCA8IHN0b3JteTsKK+WbnuaGtiA8IHJlY2FsbDsKK+epgOmhniA8IGNlcmVhbDsKK+WBteafpSA8IGRldGVjdDsKK+aXuyA8IGhlYXZlbjsKK+WuueiosSA8IHBlcm1pdDsKK+aVoSA8IHJlYnVrZTsKK+aVgiA8IGRlZHVjdDsKK+WNgeWbm+ihjOipqSA8IHNvbm5ldDsKK+aTkyA8IHRvXC1ydWI7CivmnInpgZPlvrcgPCBjaGFzdGU7CivmvKPmvKogPCByaXBwbGU7CivkuozogIXkuYvkuIAgPCBlaXRoZXI7Civmjb0gPCBjbHV0Y2g7CivlnIvlpJYgPCBhYnJvYWQ7CivmtrLpq5QgPCBsaXF1aWQ7Civol53ooZPlrrYgPCBhcnRpc3Q7CivltI7ltocgPCBydWdnZWQ7CivppJHppJEgPCBwYXN0cnk7CivppJDpo7IgPCByZXBhc3Q7Civkvb/ohqjohLkgPCBkaWxhdGU7CivkvZXomZUgPCB3aGVuY2U7Civkv6HnlKggPCBjcmVkaXQ7CivntITnv7DkuInmm7ggPCAzXC1qb2huOwor5bCP5o+Q55C0IDwgZmlkZGxlOwor5Zug5a2QIDwgZmFjdG9yOwor5oGfIDwgc2NhcmVkOwor5ouz5pOKIDwgYm94aW5nOwor6Luf5YyWIDwgc29mdGVuOwor5a6J6KmzIDwgc2VyZW5lOwor5oe25rSL5rSLIDwgbGF6aWx5Owor57SE57+w5LiA5pu4IDwgMVwtam9objsKK+aJo+eVmSA8IGRldGFpbjsKK+advumbniA8IGdyb3VzZTsKK+W8oyA8IG1pZGRsZTsKK+mrmOW6piA8IGhlaWdodDsKK+W7hiA8IGFcLXJvb207CivnlbDmlZkgPCBoZXJlc3k7Civlt6QgPCBhXC1tYW5lOwor5beYIDwgc3VtbWl0Owor5baTIDwgYm9zaGFuOwor5bS/IDwgY2xpZmZzOwor5Zyw5Li7IDwgYVwtaG9zdDsKK+mmrOaIsuWcmCA8IGNpcmN1czsKK+mrmOWxsSA8IGFscGluZTsKK+eUn+a2ryA8IGNhcmVlcjsKK+S9nOiAhSA8IGF1dGhvcjsKK+aMquWogSA8IG5vcndheTsKK+WwhSA8IHN1YmR1ZTsKK+Wwi+eahCA8IGhvbWluZzsKK+WvjiA8IGRyb3dzeTsKK+mmrOmItOiWryA8IHBvdGF0bzsKK+WtviA8IGFcLWJhYnk7Civkvb/ovYnlkJEgPCBkaXZlcnQ7CivmspLmnInkurogPCBub2JvZHk7CivlrIMgPCBzaXN0ZXI7Civlq6ogPCBoYW5rZXI7CivlqbwgPCBwZXJzb247CivljZrnianppKggPCBtdXNldW07CivlqJIgPCBtYXRyb247CivmnIvpu6ggPCBjbGlxdWU7Civnpq7mi5zloIIgPCBjaGFwZWw7Civmt7fooYAgPCBoeWJyaWQ7Civot4vmtokgPCB0cnVkZ2U7CivlpKwgPCBwYXJ0ZWQ7Civlg4Xlg4UgPCBiYXJlbHk7CivmvI/mlpcgPCBmdW5uZWw7CivkuI3pgI/mmI4gPCBvcGFxdWU7CivloKcgPCBhZGpvaW47CivkubPpoK0gPCBuaXBwbGU7CivnkIboq5YgPCB0aGVvcnk7Civku4vos6ogPCBtZWRpdW07Civlmr8gPCBhXC1sdW1wOwor55Sx5pa8IDwgZHVlXC10bzsKK+WZmiA8IGZhdGhvbTsKK+WSjOmiqCA8IGJyZWV6ZTsKK+WWhiA8IGFcLXNhZ2U7CivmibbmpI0gPCBmb3N0ZXI7CivnkrDnkIMgPCBnbG9iYWw7CivllKsgPCB0b1wtaHVtOwor6Zmk5LqG5LmL5aSWIDwgZXhjZXB0Owor5ZSIIDwgdG9cLXNvYjsKK+WTpCA8IGphcmdvbjsKK+S+v+axoCA8IHVyaW5hbDsKK+WRriA8IHRvXC1zaXQ7Civljo4gPCBzZXR0bGU7CivlrqPnqLEgPCBhc3NlcnQ7Civlk4Dovq0gPCBsYW1lbnQ7CivmiYHmoYPpq5QgPCB0b25zaWw7Civli4QgPCBhY3RpdmU7Civkub7phaogPCBjaGVlc2U7Civmm7Tpq5ggPCBoaWdoZXI7CivlgYzlpKcgPCBzb1wtYmlnOwor5q2j5pa55b2iIDwgc3F1YXJlOwor6IKM6IKJIDwgbXVzY2xlOwor6ama5oGQIDwgYXBwYWxsOwor5Y+v5L+h5Lu7IDwgdHJ1c3R5Owor5paH5a245a62IDwgd3JpdGVyOwor5omL5qeNIDwgcGlzdG9sOwor5YOsIDwgY2xldmVyOwor5YKOIDwgdG9wcGxlOwor56e75YuV5byPIDwgbW9iaWxlOwor5a6255WcIDwgY2F0dGxlOwor56aP6Z+zIDwgZ29zcGVsOwor6LW35rqQIDwgb3JpZ2luOwor5YCDIDwgZGFtYWdlOwor5LqC6LezIDwgYm91bmNlOwor5Yiw5q2k6JmVIDwgaGl0aGVyOwor6Ia95aSnIDwgZGFyaW5nOwor5LuaIDwgdG9cLWZseTsKK+ijvemZtuW3peS6uiA8IHBvdHRlcjsKK+WBpeWFqCA8IHJvYnVzdDsKK+S2gSA8IG5vaXNlczsKK+S1pyA8IHRvXC1keWU7CivktKUgPCBhXC1zdGFnOwor5LO+IDwgYW5cLW93bDsKK+aLjOWYtCA8IGJpY2tlcjsKK+aJk+aTiiA8IHRvXC1oaXQ7Civks4cgPCBwYXJyb3Q7CivnrKjmi5kgPCBjbHVtc3k7CivksrkgPCBvc3Blcnk7Civkurrlj6Poqr/mn6UgPCBjZW5zdXM7CivksowgPCBhXC1maXNoOwor5LGVIDwgbGFicnVzOwor5LCjIDwgYW5cLWVsZjsKK+eRleeWtSA8IHN0aWdtYTsKK+SvqCA8IHRvXC1yYXA7Civkr4EgPCBhXC1tdWxlOwor5aKo6KW/5ZOlIDwgbWV4aWNvOwor5riF55yf5a+6IDwgbW9zcXVlOwor5K2qIDwgZ3JhaW5zOwor5K2lIDwgYVwtYmFpdDsKK+StjCA8IGNvbmdlZTsKK+SsuCA8IGFcLW1lYWw7CivkrJEgPCBhXC1nYWxlOwor5KusIDwgdG9cLWJvdzsKK+a1t+ijoSA8IG1hcmluZTsKK+WRs+mBkyA8IGZsYXZvcjsKK+SouiA8IGNsb3VkeTsKK+SonyA8IHB1ZGRsZTsKK+SohyA8IGFcLXBhaXI7CivnhKHoq5blpoLkvZUgPCBhbnlob3c7Civkp7QgPCBhXC1iaXJkOwor5KeRIDwgYVwtZGlrZTsKK+WHuuWfg+WPiuiomCA8IGV4b2R1czsKK+WuieWTpeaLiSA8IGFuZ29sYTsKK+acieiXpeeZruiAhSA8IGFkZGljdDsKK+SlqiA8IHRvXC1jdXA7CivkpaggPCBhXC1maWxlOwor5KWNIDwgYVwtd2hpcDsKK+S7peiJsuWIlyA8IGlzcmFlbDsKK+engeiqniA8IG11cm11cjsKK+mHo+mtmueUqOWFtyA8IHRhY2tsZTsKK+acgOi/kSA8IHJlY2VudDsKK+SjmCA8IGFcLWhhbGw7CivmuIXnmKYgPCBtZWFnZXI7Civko4ggPCBhXC1sYW5lOwor6YeY5pu46YedIDwgc3RhcGxlOwor5bK45LiKIDwgYXNob3JlOwor54Wn55u45qmfIDwgY2FtZXJhOwor5KCwIDwgY29pbGVkOwor5KCkIDwgdG9kZGxlOwor57Sh57mU6ICFIDwgd2VhdmVyOwor5Lit6YCUIDwgbWlkd2F5Owor5pav5ouJ5aSrIDwgc2xhdmljOwor5J2cIDwgYVwtbGlvbjsKK+SdhCA8IGNvd3BlYTsKK+S/hOe+heaWryA8IHJ1c3NpYTsKK+ScniA8IGFcLWRvc2U7CivmnKjoo70gPCB3b29kZW47CivlronnhLYgPCBzYWZlbHk7Civpo6LojZIgPCBmYW1pbmU7CivkmLAgPCBhXC1ob29kOwor6La+5bCWIDwgdGlwdG9lOwor5JisIDwgYXJtb3VyOwor5JiMIDwgZ2FkZmx5Owor5JerIDwgYVwtZnJvZzsKK+SWuSA8IHdlZXZpbDsKK+S/oeWliSA8IGJlbGllZjsKK+aIkOaViCA8IGVmZmVjdDsKK+SUryA8IHNhbHRlZDsKK+eTtuWtkCA8IGJvdHRsZTsKK+SUoiA8IGNhdGhheTsKK+SUjyA8IGFcLWx1c2g7CivkuInph40gPCB0cmVibGU7Civkk6YgPCBhXC1ydWxlOwor5a6i5rCjIDwgcG9saXRlOwor5JOEIDwgZ3Jhc3N5Owor5rWu6JGXIDwgYWZsb2F0Owor6K6K6buRIDwgZGFya2VuOwor5JKJIDwgYVwtbG9uZzsKK+SSgiA8IGFuXC1vYXI7CivlvJPnrq3miYsgPCBhcmNoZXI7CivkkbogPCBhXC1zYWlsOwor5JG0IDwgYVwtYm9hdDsKK+a1ruiPryA8IHZhbml0eTsKK+SQpiA8IHNsZWVweTsKK+SQpSA8IHN0aW5reTsKK+mngeaWpSA8IHJlZnV0ZTsKK+S4jemBqSA8IHVud2VsbDsKK+SPqiA8IHRlbmRvbjsKK+e+nui+sSA8IGJhZmZsZTsKK+eVmeS4iyA8IHJlbWFpbjsKK+SPoyA8IG1hZ2dvdDsKK+S4iumCiiA8IHVwc2lkZTsKK+SOsSA8IGFcLWRyYWc7Civog6HmoYMgPCB3YWxudXQ7CivkjYMgPCBhXC12YXNlOwor5bCB5bu6IDwgZmV1ZGFsOwor5ZKM6Je5IDwga2luZGx5Owor5IuQIDwgZmFicmljOwor5IqnIDwgYVwtZmFydDsKK+WhnueIvueJuSA8IGNlbHRpYzsKK+SKmyA8IHNocmVkczsKK+epv+a0niA8IHBpZXJjZTsKK+SItCA8IGFcLWNhZ2U7CivkiI4gPCBhXC1sZWFmOwor5IeaIDwgdG9cLXRhcDsKK+SHgSA8IGFcLWNhdmU7CivkhrwgPCBhXC1uZXN0Owor5IauIDwgdG9cLWRpcDsKK+SGmSA8IGFcLWtpbG47CivlrqLmo6cgPCB0YXZlcm47Civlj6npoK0gPCBrb3d0b3c7CivmiL/lrqIgPCB0ZW5hbnQ7CivnrKzlm5sgPCBmb3VydGg7CivkhLkgPCBhXC15ZWFyOwor6YeO6aSQIDwgcGljbmljOwor5ISYIDwgYVwtcml0ZTsKK+SDpSA8IHN0b25lczsKK+WwiOWutiA8IGV4cGVydDsKK+SCtyA8IGJyb2tlbjsKK+S9v+W+lyA8IHVzYWJsZTsKK+O/vCA8IGFcLWJvd2w7Civjv7sgPCBhXC10cmF5Owor5omT5a2X5ZOhIDwgdHlwaXN0Owor47+tIDwgY3JhY2tzOwor47+nIDwgZmllbGRzOwor6JyD5pmvIDwgbWlyYWdlOwor47+UIDwgYVwtd2FydDsKK+WPjemngSA8IHJldG9ydDsKK+WwkeWlsyA8IG1haWRlbjsKK+O9tyA8IGRyb3BzeTsKK+O8viA8IGJyaWNrczsKK+a1t+e2vyA8IHNwb25nZTsKK+aYn+acn+aXpSA8IHN1bmRheTsKK+O8hCA8IHBlYXJsczsKK+eUqOS6jiA8IHVzZVwtaW47CivjuL8gPCBhXC1jYWxmOwor5pma6aOvIDwgc3VwcGVyOwor47eLIDwgZW1iZXJzOwor6JGh6JCE5Lm+IDwgcmFpc2luOwor6LOt5rOoIDwgc3Rha2VzOwor47akIDwgdG9cLWZyeTsKK+O2iCA8IGNyZWVrczsKK+elnuirrSA8IG9yYWNsZTsKK+O1nSA8IG1vdmluZzsKK+S4jeimgSA8IGRvbicndFwhOwor47SeIDwgZmx1ZW50Owor5oiR6Ieq5bexIDwgbXlzZWxmOwor5p2Q56mNIDwgdm9sdW1lOwor5omB5ZyTIDwgb2JsYXRlOwor47OMIDwgbWFyc2h5Owor47GeIDwgZGFuZ2VyOwor47GNIDwgdG9cLW93ZTsKK+WPrumItCA8IGppbmdsZTsKK+OwgyA8IGFcLXRyZWU7CivlpKfmraXotbAgPCBzdHJpZGU7CivnrKzlhasgPCBlaWdodGg7CivkuIrooasgPCBibG91c2U7CivjrpYgPCB0b1wtbGF5Owor462xIDwgYVwtY2FzZTsKK+avlOi8g+WWnOatoSA8IHByZWZlcjsKK+WvtuWhlCA8IHBhZ29kYTsKK+OruiA8IGJ5Z29uZTsKK+S4jeWFrOW5syA8IHVuZmFpcjsKK+WuouaItiA8IGNsaWVudDsKK+OrhSA8IGFcLWZsYWc7CivjqrkgPCB0b1wtcm9iOwor46myIDwgYVwtZmlzdDsKK+iKreiVvuiIniA8IGJhbGxldDsKK+OoviA8IGFcLXR5cGU7Civjp6cgPCBhXC1jb21iOwor5a625bqtIDwgZmFtaWx5Owor5p+P5p6XIDwgYmVybGluOwor46aUIDwgc2lsa2x5Owor5pyJ572qIDwgZ3VpbHR5Owor46aKIDwgbGF2aXNoOwor46aFIDwgdW5lYXN5Owor6Y215bi9IDwga2V5Y2FwOwor5bCP5YyFIDwgcGFja2V0Owor5Lqo54m5IDwgaHVudGVyOwor5omT5YK3IDwgYnJ1aXNlOwor6aCB6YKKIDwgbWFyZ2luOwor5omL5YaKIDwgbWFudWFsOwor46GBIDwgYVwtcm9iZTsKK+OgsiA8IHJpcHBlZDsKK+eJmem9kiA8IGRlbnRhbDsKK+WQjeiogCA8IHNheWluZzsKK+OduSA8IGFcLWhhcmU7CivogIDnnLwgPCBkYXp6bGU7CivkvK/liKnojLIgPCBiZWxpemU7CivmuK/lvY4gPCBoYXJib3I7Civog4zluLYgPCBicmFjZXM7Civonrrml4vlvaIgPCBzcGlyYWw7CivjmrwgPCBhXC1naXJsOwor45q7IDwgc29kb215Owor45qMIDwgYVwtYmFuZDsKK+OZuSA8IGFcLWRhbXA7Civmr5TovIPlsJEgPCBsZXNzZXI7Civniq/pjK8gPCB0b1wtZXJyOwor5Zyo5q2k6JmVIDwgaGVyZWluOwor5pq06JmQIDwgYnJ1dGFsOwor6KKr5a6z5Lq6IDwgdmljdGltOwor6Zi/5aSa5bC85pavIDwgYWRvbmlzOwor5rOi6JitIDwgcG9sYW5kOwor45S6IDwgYW5cLWFnZTsKK+OUiSA8IHRvXC1kaWc7Civjk7UgPCBzd29yZHM7Civjk6AgPCBhXC1mbGF3Owor45OFIDwgZnJvemVuOwor5pif6ZuyIDwgbmVidWxhOwor5rW354u4IDwgYmVhdmVyOwor6Zi/5rOi576FIDwgYXBvbGxvOwor5L6d5YGOIDwgbmVzdGxlOwor5oem5aSrIDwgY293YXJkOwor5L2/6ICz6IG+IDwgZGVhZmVuOwor5LyR5oOcIDwgcmVjZXNzOwor6JOs6ayGIDwgZmx1ZmZ5Owor56OB6ZC1IDwgbWFnbmV0Owor5qCh5ZySIDwgY2FtcHVzOwor6K6K6LOqIDwgZ29cLWJhZDsKK+e+qeizo+acgyA8IGJhemFhcjsKK+e+iuiCiSA8IG11dHRvbjsKK+W3peS9nOWupCA8IHN0dWRpbzsKK+WQiuiRlyA8IGRhbmdsZTsKK+e0q+e+heiYreiJsiA8IHZpb2xldDsKK+mWgOWklua8oiA8IGxheW1hbjsKK+aGjuaDoSA8IGxvYXRoZTsKK+mAj+WNsOeJiOWNsOWItyA8IG9mZnNldDsKK+WcqOmZhOi/kSA8IG5lYXJieTsKK+aGjuaBqCA8IGRldGVzdDsKK+Whl+ayueaWvCA8IGFub2ludDsKK+mbnOiyqOWVhiA8IGdyb2NlcjsKK+WWnOWKhyA8IGNvbWVkeTsKK+WvkuWGrCA8IHdpbnRyeTsKK+iytuaWpSA8IGRlbW90ZTsKK+WWruS9jSA8IGFcLXVuaXQ7CivnkIPmi40gPCByYWNrZXQ7Civntq3lkL7niL4gPCB1aWdodXI7Civoi7Hpm4TlvI8gPCBoZXJvaWM7CivlrZDlvYggPCBidWxsZXQ7CivnkIbpq67luKsgPCBiYXJiZXI7Civlgq3kurrpoJjnj60gPCBidXRsZXI7Civlronln7kgPCBhbXBlcmU7Civpo5/mp70gPCBtYW5nZXI7Civog4zlj5sgPCBiZXRyYXk7CivotJblm54gPCByZWRlZW07CivnjajnibkgPCB1bmlxdWU7Civmr5vnuZTpgYvli5XooasgPCBqZXJzZXk7Civph5HoibIgPCBnb2xkZW47Civotbfms6HmsqsgPCBzZWV0aGU7CivkuI3miLDkuI3lkowgPCBub1wtd2FyOwor5a6k5YWnIDwgaW5kb29yOwor6LOT5a6iIDwgZ3Vlc3RzOwor55Ge5YW4IDwgc3dlZGVuOwor6LSK5ZCMIDwgYXNzZW50Owor6JaE57SZIDwgdGlzc3VlOwor5oK254axIDwgc3VsdHJ5Owor5pif5pyf5LqUIDwgZnJpZGF5Owor5pif5pyf5LiAIDwgbW9uZGF5Owor54++5a2YIDwgZXh0YW50Owor6aSQ5be+IDwgbmFwa2luOwor5Lul5aSqIDwgZXRoZXJcLTsKK+W3tOeIvuW5siA8IGJhbGthbjsKK+eRo+S6iyA8IHRyaWZsZTsKK+agvOagvOeskSA8IGdpZ2dsZTsKK+mgkOeulyA8IGJ1ZGdldDsKK+Wtn+WKoOaLiSA8IGJlbmdhbDsKK+mdkumKhSA8IGJyb256ZTsKK+mgkeerpSA8IHVyY2hpbjsKK+acg+atuyA8IG1vcnRhbDsKK+S4jeeEtiA8IG5vdFwtc287CivoroDogIUgPCByZWFkZXI7CivmtKrmsLQgPCBkZWx1Z2U7Civnmb3omK3lnLAgPCBicmFuZHk7CivmnKjmlpkgPCBsdW1iZXI7CivmhJvlvrfoj68gPCBlZHdhcmQ7Civmt7HljJYgPCBkZWVwZW47Civnj77lnKggPCBtb2Rlcm47CivomIfmoLzomK3luL0gPCBib25uZXQ7CivororntIUgPCByZWRkZW47CivmuJvkvY7pgJ/luqYgPCByZXRhcmQ7CivnjJbni4IgPCBzYXZhZ2U7Civmt6jljJYgPCBwdXJpZnk7CivlvozpgIAgPCByZWNvaWw7CivpmL/mi4nmlq/liqAgPCBhbGFza2E7CivniYfoqp4gPCBwaHJhc2U7CivmtYHmmJ8gPCBtZXRlb3I7CivmgrLmrY4gPCBiZXdhaWw7CivlrZjlhLIgPCBtZW1vcnk7Civkvb/lhbfpq5TljJYgPCBlbWJvZHk7CivlhbjnjYTplbcgPCB3YXJkZW47CivnnIvkuI3oposgPCB1bnNlZW47Civkvb/kvZzlmJQgPCBzaWNrZW47CivosaHlvrUgPCBlbWJsZW07CivkuI3mr5QgPCB1bmxpa2U7CivlpKfpjJggPCBzbGVkZ2U7CivmnIDmlrAgPCBsYXRlc3Q7CivkuLvmlZkgPCBiaXNob3A7CivmgZDmsLTnl4UgPCByYWJpZXM7CivomZXlpbMgPCB2aXJnaW47Civos6PkuLsgPCBzZWxsZXI7Civnvormr5sgPCBmbGVlY2U7CivlkKvmsLQgPCB3YXRlcnk7CivliqDvuY3mlrwgPCBpbXBvc2U7CivomZXlooMgPCBwbGlnaHQ7CivorbDnqIsgPCBhZ2VuZGE7Civmg6HmhI8gPCBtYWxpY2U7CivmnKzlt54gPCBob25zaHU7CivmqaHnmq7mkL0gPCBlcmFzZXI7Civmlbjph48gPCBhbW91bnQ7CivmlrfoqIAgPCBhZmZpcm07CivmtarlrZAgPCBsb2FmZXI7CivmnInmhI8gPCBpbnRlbmQ7Civms6Llo6vpoJMgPCBib3N0b247CivlkI3mtYEgPCBnZW50cnk7Civlj7DngaMgPCB0YWl3YW47CivkuI3mmbogPCB1bndpc2U7CivmlYXpmpwgPCBnbGl0Y2g7CivlkIjms5UgPCBsYXdmdWw7CivlkI3msKMgPCByZXB1dGU7CivlpKfot68gPCBhdmVudWU7CivmtbfloLEgPCBwb3N0ZXI7CivkuqbljbMgPCBuYW1lbHk7CivntpPntIDkurogPCBicm9rZXI7CivntIXomL/olJQgPCBjYXJyb3Q7CivmgoTmgoTlnLAgPCBnZW50bHk7CivmmpbmsKMgPCBoZWF0ZXI7Civkvb/vuY3og73lpKAgPCBlbmFibGU7CivlkLjmlLYgPCBhYnNvcmI7CivmhI/lnJYgPCBpbnRlbnQ7Civnt6Ppo74gPCBmcmluZ2U7Civpgb/pm6PmiYAgPCByZWZ1Z2U7CivlkajlubQgPCBhbm51YWw7Civnmb3purXlhZIgPCBoZXJvaW47Civlj6PmuLQgPCB0aGlyc3Q7Civph53ms5UgPCBzdGl0Y2g7CivmtojljJYgPCBkaWdlc3Q7CivmraPploAgPCBwb3J0YWw7Civmtbflk6EgPCBzYWlsb3I7CivlkJDmoLkgPCBpcGVjYWM7Civpm5nph40gPCBkb3VibGU7CivpnZLoi5QgPCBsaWNoZW47CivlpJroroogPCBmaWNrbGU7CivpiYvluoogPCBwbGFuZXI7Civpo7zppIrogIUgPCBmZWVkZXI7CivlkI3mnJsgPCByZW5vd247Civlj5bmtoggPCBjYW5jZWw7CivpgqPpgoogPCB5b25kZXI7Civlt7Tmlq/lhYsgPCBiYXNxdWU7CivliojplosgPCBjbGVhdmU7CivphZLnqqkgPCBkaW1wbGU7Civli5XorbAgPCBtb3Rpb247CivmlL7pgJAgPCBiYW5pc2g7CivphY3nqLEgPCB3b3J0aHk7CivmtLvloZ4gPCBwaXN0b247Civojqvmlq/np5EgPCBtb3Njb3c7CivwpZyMIDwgYVwtY29hdDsKK+adj+S7gSA8IGFsbW9uZDsKK+aciOahguaouSA8IGxhdXJlbDsKK+mgkOacnyA8IGV4cGVjdDsKK+enieWFrCA8IGp1c3RseTsKK+emseWRiiA8IHByYXllcjsKK+abtOWkpyA8IGJpZ2dlcjsKK+S5neWNgSA8IG5pbmV0eTsKK+egtOiIiiA8IHNoYWJieTsKK+S4gOW4tiA8IHJlZ2lvbjsKK+eip+eOiSA8IGphc3BlcjsKK+W+ruiWhOeahCA8IG1lYWdyZTsKK+WPquaYryA8IG1lcmVseTsKK+Wwj+a3mOawoyA8IHJhc2NhbDsKK+aDoeWMliA8IHdvcnNlbjsKK+S4gOWxgCA8IGlubmluZzsKK+eEoeazleeEoeWkqSA8IG91dGxhdzsKK+acquS+hiA8IGZ1dHVyZTsKK+mEiee0syA8IHNxdWlyZTsKK+ipreioiCA8IGRlY2VpdDsKK+ixgeWFjSA8IGV4ZW1wdDsKK+W/g+eQhiA8IG1lbnRhbDsKK+eJoueJoiA8IGZpcm1seTsKK+miqOS/lyA8IGN1c3RvbTsKK/CggIkgPCBhXC1oaWxsOwor5Ym16L6mIDwgbGF1bmNoOwor6YGO6YePIDwgZXhjZXNzOwor6LW36Ki06ICFIDwgc3VpdG9yOwor54aU6KejIDwgZnVzaW9uOwor55+z6IuxIDwgcXVhcnR6Owor5be05ou/6aasIDwgcGFuYW1hOwor5YyF566hIDwgYXNzdXJlOwor5YuV6ISIIDwgYXJ0ZXJ5Owor5pyA5L2OIDwgbG93ZXN0Owor56Wt5Y+4IDwgcHJpZXN0Owor54m55q2kIDwgaGVyZWJ5Owor6ZuM6JWKIDwgcGlzdGlsOwor5bmy6aCQIDwgbWVkZGxlOwor5YyW55+zIDwgZm9zc2lsOwor5o2V6a+o6Ii5IDwgd2hhbGVyOwor5rC05rOlIDwgY2VtZW50Owor5rC05rOhIDwgYnViYmxlOwor5ryU6Kqq6ICFIDwgb3JhdG9yOwor6JOL54i+IDwgZ2FlbGljOwor5YmN6LypIDwgc2VuaW9yOwor5pO65qij5a2QIDwgZG9cLXN0aDsKK+WJr+ipniA8IGFkdmVyYjsKK+WNseapnyA8IGNyaXNpczsKK+S4jeWFrCA8IHVuanVzdDsKK+azleWciyA8IGZyYW5jZTsKK+ayieaAnSA8IHBvbmRlcjsKK+aal+WgoSA8IGJ1bmtlcjsKK+eLl+WxiyA8IGtlbm5lbDsKK+aatOWQmyA8IHR5cmFudDsKK+azouaWr+WwvOS6niA8IGJvc25pYTsKK+S4ieWAjSA8IHRyaXBsZTsKK+mcnOeZvSA8IGZyb3N0eTsKK+WQpuWJhyA8IGlmXC1ub3Q7CivliIbpkJggPCBtaW51dGU7Civokaznpq4gPCBidXJpYWw7CivmsLTmobYgPCBidWNrZXQ7CivmkqTpircgPCByZXBlYWw7CivliqDmi7/lpKcgPCBjYW5hZGE7Civlj43lsIQgPCByZWZsZXg7CivkuI3kuLkgPCBiaHV0YW47CivpnZ7mtLIgPCBhZnJpY2E7CivliZ3onZUgPCBkZW51ZGU7CivkuIDkuLIgPCBzdHJhbmQ7Civnupbmr5sgPCBjaWxpdW07Civnn7MgPCBzdG9uZTsKK+efrSA8IHNob3J0Owor5b+rIDwgcmFwaWQ7CivlnKggPCBiZVwtYXQ7Civku5YgPCBvdGhlcjsKK+efoiA8IGFycm93Owor5YiwIDwgZ29cLXRvOwor6K+0IDwgc3BlYWs7Civov4UgPCBxdWljazsKK+WcsCA8IGVhcnRoOwor5b+DIDwgaGVhcnQ7CivkuIsgPCB1bmRlcjsKK+i+rSA8IHdvcmRzOwor5b6uIDwgc21hbGw7CivlrrYgPCBob3VzZTsKK+W+oSA8IGRyaXZlOwor5ZCOIDwgcXVlZW47CivlvoUgPCB0cmVhdDsKK+i/mCA8IHN0aWxsOwor5Y+RIDwgaXNzdWU7CivlvasgPCBjYXJ2ZTsKK+aDsyA8IHRoaW5rOwor552hIDwgc2xlZXA7CivovYkgPCBzaGlmdDsKK+aJgCA8IHBsYWNlOwor6LyqIDwgd2hlZWw7CivkuIkgPCB0aHJlZTsKK+i8lSA8IGxpZ2h0Owor5byPIDwgc3R5bGU7CivmoLcgPCBzaGFwZTsKK+W7uiA8IGJ1aWxkOwor5bu2IDwgZGVsYXk7Civnm7IgPCBibGluZDsKK+W7oyA8IGJyb2FkOwor5aOwIDwgc291bmQ7Civlt6UgPCBsYWJvcjsKK+ebhiA8IGJhc2luOwor55uDIDwgZ2xhc3M7CivmraMgPCByaWdodDsKK+W6uCA8IHVzdWFsOwor5aWzIDwgd29tYW47CivlipsgPCBwb3dlcjsKK+i6kSA8IHdhdmVyOwor5ZugIDwgY2F1c2U7Civph40gPCBoZWF2eTsKK+eahyA8IHJveWFsOwor5bqHIDwgY292ZXI7CivmrKEgPCBvcmRlcjsKK+WPoyA8IG1vdXRoOwor55m9IDwgd2hpdGU7Civlub0gPCBxdWlldDsKK+aVmSA8IHRlYWNoOwor5YaNIDwgYWdhaW47CivmsJQgPCBzdGVhbTsKK+S/oSA8IHRydXN0Owor5YyXIDwgbm9ydGg7CivoubIgPCBzcXVhdDsKK+i5nyA8IHRyYWNlOwor5bmFIDwgcGllY2U7CivlhaUgPCBlbnRlcjsKK+WFiCA8IGZpcnN0Owor5rC0IDwgd2F0ZXI7Civlt7cgPCBhbGxleTsKK+eskSA8IHNtaWxlOwor56uLIDwgc3RhbmQ7Civot6ogPCBrbmVlbDsKK+mprCA8IGhvcnNlOwor5beoIDwgbGFyZ2U7CivnlpEgPCBkb3VidDsKK+WIqSA8IGdhaW5zOwor5p6cIDwgZnJ1aXQ7CivotacgPCBibHVzaDsKK+iHsyA8IHJlYWNoOwor5riFIDwgY2xlYXI7CivniakgPCB0aGluZzsKK+W1jCA8IGlubGF5Owor55SyIDwgYXJtb3I7CivnlLAgPCBmaWVsZDsKK+iuuCA8IGFsbG93Owor5YWrIDwgZWlnaHQ7CivltJYgPCBjbGlmZjsKK+W0jiA8IHJvdWdoOwor5Y2XIDwgc291dGg7CivoibIgPCBjb2xvcjsKK+eTnCA8IG1lbG9uOwor566XIDwgY291bnQ7Civos4ogPCB0aGllZjsKK+iyryA8IHN0b3JlOwor6LKoIDwgZ29vZHM7Civmr48gPCBldmVyeTsKK+WxrCA8IGNsYXNzOwor6LGqIDwgYnJhdmU7CivosYYgPCBiZWFuczsKK+S4gyA8IHNldmVuOwor5bCWIDwgc2hhcnA7CivlsIQgPCBzaG9vdDsKK+epuiA8IGVtcHR5Owor5oqAIDwgc2tpbGw7Civlr7ogPCBjb3VydDsKK+WvqyA8IHdyaXRlOwor6IuxIDwgcGV0YWw7Civlr4YgPCBkZW5zZTsKK+mSsSA8IG1vbmV5Owor5a65IDwgbG9va3M7CivlrrUgPCBuaWdodDsKK+WniyA8IGJlZ2luOwor5a6iIDwgZ3Vlc3Q7CivniYcgPCBzbGljZTsKK+eglCA8IGdyaW5kOwor5pepIDwgZWFybHk7CivnjbsgPCBvZmZlcjsKK+eNuiA8IG90dGVyOwor5424IDwgYmVhc3Q7CivnjaggPCBhbG9uZTsKK+itpiA8IGd1YXJkOwor5a2YIDwgZXhpc3Q7CivorYkgPCBwcm9vZjsKK+isnSA8IHRoYW5rOwor54ycIDwgZ3Vlc3M7CivlrIkgPCBlbmpveTsKK+m7kSA8IGJsYWNrOwor6KyBIDwgdmlzaXQ7CivliZEgPCBzd29yZDsKK+S5kCA8IGhhcHB5Owor57qnIDwgbGV2ZWw7CivkuL4gPCByYWlzZTsKK+ivgSA8IHByb3ZlOwor54WnIDwgc2hpbmU7CivoqpMgPCBzd2VhcjsKK+e+pCA8IGdyb3VwOwor6KqCIDwgdGVtcHQ7CivkvKQgPCB3b3VuZDsKK+aWrSA8IHNldmVyOwor5Lu3IDwgcHJpY2U7CivohJEgPCBicmFpbjsKK+inhCA8IHJ1bGVzOwor5aiRIDwgZGFuY2U7CivnoLQgPCBicmVhazsKK+azvSA8IG1hcnNoOwor54e7IDwgc21va2U7CivntKcgPCB0ZW5zZTsKK+inuCA8IHRvdWNoOwor6KOFIDwgZHJlc3M7CivmsrMgPCByaXZlcjsKK+ihgCA8IGJsb29kOwor5oqVIDwgdGhyb3c7CivlpbQgPCBzbGF2ZTsKK+WIgCA8IGtuaWZlOwor6KWfIDwgbGFwZWw7Civllp0gPCBkcmluazsKK+ikqiA8IHN0cmlwOwor5aSiIDwgZHJlYW07CivplJkgPCBlcnJvcjsKK+ahiCA8IHRhYmxlOwor5Y2wIDwgcHJpbnQ7Civlo5MgPCBwcmVzczsKK+eDiCA8IGZpZXJ5Owor5aOHIDwgYWx0YXI7Civoo4IgPCBzcGxpdDsKK+iitCA8IHBhbnRzOwor5aKTIDwgZ3JhdmU7Civngo4gPCBmbGFtZTsKK+eBsCA8IGFzaGVzOwor5aGXIDwgc21lYXI7CivmlYwgPCBlbmVteTsKK+WhlCA8IHRvd2VyOwor5oCAIDwgYm9zb207CivnvaogPCBjcmltZTsKK+ifsiA8IHdvcm1zOwor5r+xIDwgYmVhY2g7CivmkZggPCBwbHVjazsKK+aWvSA8IGdyYW50Owor5qihIDwgbW9kZWw7CivojYkgPCBncmFzczsKK+a/gyA8IHRoaWNrOwor5r+BIDwgbXVkZHk7Civkv64gPCBzdHVkeTsKK+WRsyA8IHRhc3RlOwor57uHIDwgd2VhdmU7CivpvpUgPCBuaWNoZTsKK+idvyA8IGZsaWVzOwor5YWNIDwgc3BhcmU7Civms6IgPCB3YXZlczsKK+a9lCA8IGNsZWFuOwor5rSLIDwgb2NlYW47CivlnYcgPCBlcXVhbDsKK+WlliA8IHByaXplOwor6aG/IDwgcGF1c2U7CivmvIIgPCBmbG9hdDsKK+WIpCA8IGp1ZGdlOwor5ouFIDwgY2Fycnk7Civmnb8gPCBwbGFuazsKK+mSnyA8IGNsb2NrOwor6buQIDwgc3RpY2s7Civom4cgPCBzbmFrZTsKK+aehCA8IGZyYW1lOwor5rq6IDwgZHJvd247CivpuqYgPCB3aGVhdDsKK+a6nSA8IGRpdGNoOwor5rqcIDwgc2xpZGU7CivogokgPCBmbGVzaDsKK+e6uCA8IHBhcGVyOwor6JmaIDwgZmFsc2U7CivomY4gPCB0aWdlcjsKK+WZjCA8IHNjb2xkOwor5p2CIDwgbWl4ZWQ7CivmgJIgPCBhbmdlcjsKK+eovyA8IGRyYWZ0Owor5rimIDwgc3dpcmw7CivmuKEgPCBjcm9zczsKK+e9oiA8IGNlYXNlOwor6be6IDwgaGVyb247Civpt7kgPCBlYWdsZTsKK+iXqSA8IGZlbmNlOwor6JelIDwgZHJ1Z3M7CivpspwgPCBmcmVzaDsKK+WXhSA8IHNtZWxsOwor6JeBIDwgc3RyYXc7CivptrQgPCBjcmFuZTsKK+aeqiA8IHNwZWFyOwor5ravIDwgc2hvcmU7CivmtpkgPCB0ZWFyczsKK+mFjSA8IG1hdGNoOwor5rW0IDwgYmF0aGU7CivljYcgPCBhcmlzZTsKK+a1nCA8IGNyZWVrOwor6JStIDwgc2hhZGU7CivmtKUgPCBmZXJyeTsKK+msvCA8IGdob3N0Owor6JOuIDwgbG90dXM7Civpgb8gPCBhdm9pZDsKK+S6oSA8IGRlYXRoOwor6ZeqIDwgZmxhc2g7CivpnIcgPCBzaGFrZTsKK+WSsyA8IGNvdWdoOwor57u/IDwgZ3JlZW47Civlko4gPCBmYXVsdDsKK+e6syA8IGFkbWl0Owor5ZGqIDwgY3Vyc2U7Civnq6UgPCBjaGlsZDsKK+S8nyA8IGdyZWF0Owor5rGBIDwganVpY2U7CivojaMgPCBnbG9yeTsKK+WQkCA8IHZvbWl0Owor6bCMIDwgbG9hY2g7CivlloogPCBzaG91dDsKK+WQiSA8IGx1Y2t5Owor6YCQIDwgY2hhc2U7Civlj6kgPCBrbm9jazsKK+ajgCA8IGNoZWNrOwor5o+hIDwgZ3Jhc3A7CivniZkgPCB0b290aDsKK+auliA8IGJyZWVkOwor5Y2/IDwgbm9ibGU7Civmra8gPCB0ZWV0aDsKK+atqiA8IHNsYW50Owor5qOLIDwgY2hlc3M7CivprZQgPCBkZW1vbjsKK+iFsCA8IHdhaXN0Owor5qKFIDwgcGx1bXM7CivpkqIgPCBzdGVlbDsKK+iMuSA8IHJvb3RzOwor5qy6IDwgY2hlYXQ7CivprJogPCBiZWFyZDsKK+WMmSA8IHNwb29uOwor5YyNIDwgY3Jhd2w7CivojIUgPCByZWVkczsKK+e0ryA8IHRpcmVkOwor5pyrIDwgZmluYWw7Civns4ogPCBwYXN0ZTsKK+eojiA8IHRheGVzOwor5oOvIDwgaGFiaXQ7CivlgL4gPCB1cHNldDsKK+i0uCA8IHRyYWRlOwor5omrIDwgc3dlZXA7CivlkJMgPCBzY2FyZTsKK+WJgyA8IHNoYXZlOwor5Yi3IDwgYnJ1c2g7CivnvoogPCBzaGVlcDsKK+aJkSA8IHBvdW5kOwor5YCNIDwgdGltZXM7CivlhrYgPCBzbWVsdDsKK+iGsyA8IG1lYWxzOwor5YW8IDwgdW5pdGU7CivpnosgPCBzaG9lczsKK+aMpCA8IGNyb3dkOwor6aKXIDwgZ3JhaW47Civmg6AgPCBmYXZvcjsKK+iFlSA8IHdyaXN0Owor5qGDIDwgcGVhY2g7CivlnaEgPCBzbG9wZTsKK+WEnyA8IHJlcGF5Owor5qSNIDwgcGxhbnQ7CivohIogPCBzcGluZTsKK+akhSA8IGNoYWlyOwor6IKaIDwgYmVsbHk7Civmo7IgPCBwZXJjaDsKK+iCnSA8IGxpdmVyOwor55avIDwgY3Jhenk7CivogLsgPCBzaGFtZTsKK+S+jSA8IHNlcnZlOwor6KGrIDwgc2hpcnQ7CivpkrsgPCBkcmlsbDsKK+WzoSA8IGdvcmdlOwor6Z+7IDwgcmh5bWU7CivkuJEgPCBjbG93bjsKK+a+syA8IGlubGV0Owor55a8IDwgYWNoZXM7CivmoaMgPCBzaGVsZjsKK+eOmyA8IGFnYXRlOwor6Z20IDwgYm9vdHM7CivlgrIgPCBwcm91ZDsKK+mcnCA8IGZyb3N0Owor5ZC1IDwgYXJndWU7CivpgqogPCB3cm9uZzsKK+iEhiA8IGNyaXNwOwor5puzIDwgdHJhaWw7Civpm6IgPCBsZWF2ZTsKK+WPmyA8IHJlYmVsOwor57+8IDwgd2luZ3M7CivnlJwgPCBzd2VldDsKK+mamSA8IGNyYWNrOwor5YKFIDwgdHV0b3I7CivllrcgPCBzcHVydDsKK+WotiA8IG1hcnJ5Owor6ZeHIDwgY2xvc2U7Civns5YgPCBzdWdhcjsKK+ePiiA8IGNvcmFsOwor56C4IDwgc21hc2g7CivntZ4gPCB0d2lzdDsKK+i9qCA8IHRyYWNrOwor57GWIDwgdGFsbHk7Civmk5IgPCBjYXRjaDsKK+aPgyA8IHNoZWFyOwor566SIDwgYnJvb207Civpja4gPCBicmFzczsKK+WXkyA8IHZvaWNlOwor5ZWlIDwgd2hhdFw/Owor6JycIDwgaG9uZXk7Civpi48gPCB0b25nczsKK+iCvyA8IHN3ZWxsOwor6KOZIDwgc2tpcnQ7CivlsL8gPCB1cmluZTsKK+mAriA8IHNlaXplOwor5YChIDwgZ3VpZGU7CivlhZwgPCBwb3VjaDsKK+mthCA8IHZpZ29yOwor57OVIDwgY2FrZXM7CivnqJogPCB5b3VuZzsKK+mIjSA8IGJsdW50Owor56a9IDwgYmlyZHM7CivmhrogPCBwZWFjZTsKK+mTviA8IGNoYWluOwor5oasIDwgcm91c2U7Civlh7MgPCBiZW5jaDsKK+mFrCA8IHRvYXN0Owor54G/IDwgdml2aWQ7CivmlIAgPCBjbGltYjsKK+ayqyA8IGZyb3RoOwor6a2BIDwgY2hpZWY7Civmu6UgPCBmbG9vZDsKK+aIsyA8IHByaWNrOwor5qGpIDwgc3Rha2U7CivogrogPCBsdW5nczsKK+e6sSA8IGdhdXplOwor6ZmhIDwgc3RlZXA7Civng6sgPCBzY2FsZDsKK+m5hSA8IGdvb3NlOwor5pWeIDwgcm9vbXk7Civls6ggPCBsb2Z0eTsKK+iZkCA8IGNydWVsOwor6L6rIDwgYnJhaWQ7CivmgKYgPCBlYWdlcjsKK+a1hyA8IHNwcmF5Owor6IabIDwgY2hlc3Q7Civpl7UgPCBtb3VybjsKK+iinCA8IHNvY2tzOwor6LS/IDwgYnJpYmU7CivlooUgPCB2aWxsYTsKK+envSA8IGRpcnR5Owor5ZG7IDwgZ3JvYW47Civmi6cgPCBwaW5jaDsKK+adoCA8IGxldmVyOwor57yOIDwgc2F0aW47Civmg64gPCBkcmVhZDsKK+WZlyA8IGJ1cnN0Owor55+2IDwgamV0dHk7CivnsIcgPCBzd2FybTsKK+aHiiA8IHZleGVkOwor5ouHIDwgdGh1bWI7Civpk7IgPCBzcGFkZTsKK+WTvSA8IGNob2tlOwor5YaVIDwgY3Jvd247Civnlq4gPCB0dW1vcjsKK+i1gyA8IGJvb3R5Owor5amKIDwgd2hvcmU7CivplK8gPCBhXC1zYXc7CivlmIggPCBub2lzeTsKK+e8sCA8IHJlaW5zOwor6K6qIDwgYWJ1c2U7Civlv6EgPCBhXC1zYWQ7Civppo0gPCBicmVhZDsKK+mihSA8IHNrdWxsOwor54OZIDwgYnJhbmQ7Civln5QgPCBwbGFpbjsKK+mYnCA8IG1vdW5kOwor54KsIDwgdG9yY2g7CivngpkgPCByb2FzdDsKK+WpqiA8IGNvdmV0Owor6LmRIDwgdHJlYWQ7Civnq7ogPCBpbmRpYTsKK+WJjCA8IHNsYXNoOwor562bIDwgc2lldmU7Civnr6EgPCB1c3VycDsKK+myuCA8IHdoYWxlOwor5oqhIDwgc3dpbmc7Civmtq4gPCByaW5zZTsKK+mFtSA8IHllYXN0Owor5qmEIDwgb2xpdmU7Civpm48gPCBjaGljazsKK+a2pyA8IGJyb29rOwor6IW6IDwgZ2xhbmQ7Civlv7EgPCB0cnV0aDsKK+icvyA8IGNyZWVwOwor6ZWAIDwgcGxhdGU7Civog60gPCByb3VnZTsKK+i1syA8IGdyYW5kOwor57OgIDwgY2hhZmY7CivluJsgPCBzaWxrczsKK+myqCA8IHNoYXJrOwor6LidIDwgYW5rbGU7CivnnIggPCBnbG9hdDsKK+WArSA8IGR3YXJmOwor6ZWQIDwgc3RvdmU7CivombEgPCBsb3VzZTsKK+aQkCA8IGNyYW1wOwor5oibIDwgbGFuY2U7CivlkYMgPCBiZWxjaDsKK+amrSA8IGtpb3NrOwor6YWqIDwgY3JlYW07CivlrYAgPCB3aWRvdzsKK+WtqiA8IHR3aW5zOwor556wIDwgd2F0Y2g7CivmsK4gPCB4ZW5vbjsKK+eXoyA8IHNwb3RzOwor5pGSIDwgZXhwZWw7Civkv7ggPCB3YWdlczsKK+aEoCA8IGFuZ3J5Owor5omqIDwgc3Rva2U7Civnu4kgPCBjcmVwZTsKK+ePgCA8IGFtYmVyOwor6K+pIDwgYm9hc3Q7Civoio0gPCBwZW9ueTsKK+iktiA8IHBsZWF0Owor6YWXIDwgZHJ1bms7Civmn6AgPCBsZW1vbjsKK+ivmSA8IHRlYXNlOwor57u6IDwgc2tlaW47Civph4kgPCBnbGF6ZTsKK+WtmyA8IGNvbWV0Owor5qS9IDwgYmVhbXM7CivpoqYgPCBmcm93bjsKK+a3liA8IHNsdXNoOwor6I6gIDwgd2VlZHM7CivmqZsgPCBhXC1wZWc7CivokrogPCBmdXJ6ZTsKK+e/lSA8IGFncmVlOwor6Zy+IDwgbWlzdHk7CivnoKcgPCBhbnZpbDsKK+iDuiA8IGFtaW5lOwor6JutIDwgbGVlY2g7Civor6ggPCBqb2tlczsKK+aAqyA8IHNvcnJ5Owor5qWUIDwgd2VkZ2U7Civnlr0gPCB1bGNlcjsKK+ahpCA8IGFsZGVyOwor6ZOGIDwgcml2ZXQ7CivmkrogPCBodXJyeTsKK+iChCA8IGxlYXJuOwor5a2iIDwgc3BvcmU7CivpsrIgPCBzcGF3bjsKK+mTqCA8IHdlaWdoOwor6LGVIDwgYVwtcGlnOwor56yKIDwgbGFkbGU7Civlm5cgPCBlcmVjdDsKK+mTqSA8IG1vdWx0Owor6bmRIDwgcXVhaWw7CivllYEgPCBjaGlycDsKK+mGmiA8IGV0aGVyOwor55CwIDwgamV3ZWw7Civov6ggPCB1bnRpbDsKK+m5rCA8IHNuaXBlOwor5YKIIDwgdHJpYmU7Civpk7AgPCBoaW5nZTsKK+ehvCA8IGJvcmF4Owor6YWvIDwgZXN0ZXI7CivplaogPCBjb2luczsKK+aJpiA8IHByb2JlOwor5rq3IDwgcHJpdnk7Civkv7MgPCBhY3RvcjsKK+iYliA8IHN0dW1wOwor5aKAIDwgcG9yY2g7CivlloggPCBtdXNpYzsKK+WQoSA8IGJsYW1lOwor55iKIDwgd2FydHM7CivljqMgPCBzaGVsbDsKK+ezhSA8IGJsZW5kOwor6ZiPIDwgYmxvY2s7CivpsoIgPCBicmVhbTsKK+a6vSA8IG1vaXN0Owor57CPIDwgYVwtYm94Owor6KOlIDwgZm9sZHM7CivnvLMgPCBub29zZTsKK+m+oCA8IGZsdXRlOwor6J2kIDwgbGFydmE7Civln60gPCBhXC1kYW07CivpsrYgPCBzaGVhdDsKK+mUniA8IGluZ290Owor5rChIDwgcmFkb247Civmp60gPCBtYXBsZTsKK+W9mCA8IHN3aW5lOwor5b2WIDwgYVwtaG9nOwor5ruXIDwgZHJhaW47Civlu5EgPCBhXC1odXQ7CivljI8gPCBnb3VyZDsKK+evvCA8IHNlZGFuOwor6JueIDwgc25haWw7CivnkoEgPCBcKGdlbVwpOwor57uXIDwgYmFzdGU7Civln5ggPCByb29zdDsKK+W3tOm7jiA8IHBhcmlzOwor5Luj55CG5Lq6IDwgYWdlbnQ7CivpgYrolakgPCBzdHJheTsKK+W8hOeznyA8IHNwb2lsOwor5oGp5YW4IDwgZ3JhY2U7CivlpKfniLogPCB1bmNsZTsKK+aXpeacrCA8IGphcGFuOwor5Y+v5Y+vIDwgY29jb2E7Civlj6/lj6MgPCB0YXN0eTsKK+W7tue3qSA8IGRlZmVyOwor5aeq5aWzIDwgbmllY2U7CivpmbfokL0gPCBzbHVtcDsKK+eJm+aOkiA8IHN0ZWFrOwor6Zqx57SEIDwgdmFndWU7CivlkIjkvbUgPCBhbm5leDsKK+itt+WjqyA8IG51cnNlOwor5rOK5L2NIDwgYmVydGg7CivnjajmnKjoiJ8gPCBjYW5vZTsKK+aineadv+eusSA8IGNyYXRlOwor6Zmz5YiX6Ie6IDwgc3RhbGw7CivpgYroiYcgPCBiYXJnZTsKK+mZsOiOliA8IHBlbmlzOwor5pm65YipIDwgY2hpbGU7Civlo5Pnoo4gPCBjcnVzaDsKK+avj+avjyA8IG9mdGVuOwor6Z+T5ZyLIDwga29yZWE7Civnn7Pni4AgPCBzdG9ueTsKK+eUt+S/rumBk+mZoumVtyA8IGFiYm90Owor5Yil6JmfIDwgYWxpYXM7CivlvJXnlKggPCBxdW90ZTsKK+W4gumVtyA8IG1heW9yOwor54iQ5p62IDwgZ3JhdGU7CivmqZ/pl5wgPCBvcmdhbjsKK+azpeawtOWMoCA8IG1hc29uOwor6bSJ54mHIDwgb3BpdW07CivmpI3niannvqQgPCBmbG9yYTsKK+WcqOmrmOiZlSA8IGFsb2Z0Owor5pKQ56u/6LezIDwgdmF1bHQ7CivmlL7niacgPCBncmF6ZTsKK+avj+aXpSA8IGRhaWx5Owor5aWX5oi/IDwgc3VpdGU7CivpgZXnpJkgPCB0YWJvbzsKK+WEqum7niA8IG1lcml0Owor5b6Y5b6KIDwgaG92ZXI7CivoppboprogPCBzaWdodDsKK+aVmOWIqeS6niA8IHN5cmlhOwor5YiA6JGJIDwgYmxhZGU7Civmkanopb8gPCBtb3NlczsKK+iZm+W8teiBsuWLoiA8IGJsdWZmOwor6Kq/5Yi26Kej6Kq/5ZmoIDwgbW9kZW07CivpnZLlubQgPCB5b3V0aDsKK+aomemhjCA8IHRpdGxlOwor5rCo5Z+6IDwgYW1pbm87CivmqZ/ou7ggPCBhcmJvcjsKK+mGkuS+hiA8IHdha2VuOwor6ZaA6ZaCIDwgbGF0Y2g7CivpnYjlt6cgPCBoYW5keTsKK+WFg+mfsyA8IHZvd2VsOwor5YWL6ZqGIDwgY2xvbmU7CivmlbTmlbQgPCB3aG9sZTsKK+WMr+WvhCA8IHJlbWl0Owor5YmB56KOIDwgbWluY2U7Civoqr/mg4UgPCBmbGlydDsKK+acquaIkOW5tOS6uiA8IG1pbm9yOwor5YyG5b+ZIDwgaGFzdHk7Civmr5vlt74gPCB0b3dlbDsKK+iKs+mmmSA8IGJhbG15Owor5bm057SaIDwgZ3JhZGU7CivntKvkuIHpppkgPCBsaWxhYzsKK+aVo+aWhyA8IHByb3NlOwor5LiN5paw6a6uIDwgc3RhbGU7Civopb/ol48gPCB0aWJldDsKK+Wkp+i+suWgtCA8IHJhbmNoOwor54Gr6LuKIDwgdHJhaW47Civmrbvmnb8gPCByaWdpZDsKK+efm+afhCA8IHNoYWZ0Owor6ZW36YeYIDwgc3Bpa2U7CivmraXmp40gPCByaWZsZTsKK+WIu+eXlSA8IG5vdGNoOwor6YG45rCRIDwgdm90ZXI7CivprZTprLwgPCBkZXZpbDsKK+aWsOWomCA8IGJyaWRlOwor6Kyg5YKzIDwgcnVtb3I7CivmlrDlpYcgPCBub3ZlbDsKK+eFpOa4oyA8IHNsYWNrOwor6Iqx6ZaLIDwgYmxvb207CivniankuLsgPCBvd25lcjsKK+W9iOW8kyA8IHNsaW5nOwor5aSa5rC05YiGIDwganVpY3k7CivloLHnqqkgPCBicm9vZDsKK+m6teWMheW4q+WChSA8IGJha2VyOwor6Zu75b2xIDwgbW92aWU7CivmkbjntKIgPCBncm9wZTsKK+mAn+eOhyA8IHNwZWVkOwor56C05aOeIDwgd3JlY2s7CivntITojqsgPCBhYm91dDsKK+WjgeaetiA8IGxlZGdlOwor5ZG85Y+r5ZmoIDwgcGFnZXI7Civpmo7mrrUgPCBzdGFnZTsKK+WNgeWIhiA8IGZ1bGx5Owor5Zyw6Z2iIDwgZmxvb3I7Civoq7fliLogPCBpcm9ueTsKK+eZveiyuyA8IHdhc3RlOwor6YGL5rKzIDwgY2FuYWw7Civlhavop5IgPCBhbmlzZTsKK+mZsOa2vCA8IHNoYWR5Owor5pOm5rSXIDwgc2NvdXI7CivnhrHlv7EgPCBhcmRvcjsKK+e2oOa0siA8IG9hc2lzOwor5LiL5rC06YGTIDwgc2V3ZXI7Civlm7rpq5QgPCBzb2xpZDsKK+WDp+mZoiA8IGFiYmV5Owor5o6o6YG4IDwgZWxlY3Q7CivmjqjpgLIgPCBpbXBlbDsKK+mXnOevgCA8IGpvaW50Owor5b6e5L6G5LiNIDwgbmV2ZXI7CivoiabpmoogPCBmbGVldDsKK+avlOWIhiA8IHNjb3JlOwor5Ymb5p6cIDwgY29uZ287CivngavoirEgPCBzcGFyazsKK+W9seWDjyA8IGltYWdlOwor55uc56uKIDwgc3RlYWw7CivpurogPCBmbG91cjsKK+m6mCA8IHNjZW50Owor6bm+IDwgc2FsdHk7CivpuLIgPCBteW5haDsKK+S6jOalteeuoSA8IGRpb2RlOwor552h5qSFIDwgY291Y2g7Civnq7bmioDloLQgPCBhcmVuYTsKK+WKoOWvrCA8IHdpZGVuOwor6bSqIDwgc3dvb3A7Civlj6/mk6blr6vlj6/nt6jnqIvnpYforoDlrZjlhLLlmaggPCBlcHJvbTsKK+iqquWHuiA8IHV0dGVyOwor5r6z6ZaAIDwgYW9tZW47Civmjqjoq5YgPCBpbmZlcjsKK+ezoueziiA8IGZvZ2d5Owor6bCeIDwgc3F1aWQ7Civli5XlkJEgPCB0cmVuZDsKK+WkqeS9vyA8IGFuZ2VsOwor6KSQ6ImyIDwgYnJvd247CivprIbplosgPCBsb29zZTsKK+aruOacqCA8IGJlZWNoOwor6YOo5Lu2IDwgcGFydHM7Civou4zpgZMgPCBvcmJpdDsKK+msjiA8IGZhdnVzOwor6ZaD6ICAIDwgZ2xpbnQ7Civoh63pvKwgPCBza3VuazsKK+mrsyA8IHN0YXRlOwor6auyIDwgYVwtd2lnOwor55a+6aKoIDwgYmxhc3Q7CivmlKTlrZAgPCBib290aDsKK+Wkp+S6uiA8IGFkdWx0Owor6bql6Zi/5a+GIDwgbWlhbWk7Civlh7rmspIgPCBoYXVudDsKK+mnniA8IGNhbWVsOwor6YGT5b63IDwgbW9yYWw7CivnmbzogbIgPCB2b2NhbDsKK+mVt+iAgSA8IGVsZGVyOwor5LyR5oGv5a6kIDwgbG9iYnk7CivmqLnnsawgPCBoZWRnZTsKK+mlmCA8IGdydWVsOwor55CD54uA54mpIDwgZ2xvYmU7CivppKogPCBmZWFzdDsKK+mkpiA8IGNhbmR5Owor5bid546LIDwgcmVnYWw7CivlvLflhYkgPCBnbGFyZTsKK+mjtiA8IG9kb3VyOwor6aORIDwgc3Rvcm07Civou4zot6EgPCBsb2N1czsKK+i7jOi3nSA8IGdhdWdlOwor6KOc6JelIDwgdG9uaWM7CivlsI3mlbXogIUgPCByaXZhbDsKK+W5veaalyA8IGdsb29tOwor5pOU5oeuIDwgd29ycnk7Civmpq7orb0gPCBob25vcjsKK+mtlOihkyA8IG1hZ2ljOwor6Z6DIDwgYm9hcmQ7CivpnaYgPCB0aW1pZDsKK+mcsSA8IGNsb3VkOwor6ZyZIDwgc2xlZXQ7Civplovnq68gPCBzdGFydDsKK+mbnuWGoCA8IGNyZXN0Owor6Zm8IDwgaXNsZXQ7CivpmLkgPCBhXC1wZW47CivliIfmnJsgPCBjcmF2ZTsKK+WGrOmdkuaouSA8IGhvbGx5Owor5qiZ57GkIDwgbGFiZWw7CivplZ8gPCBsYXRoZTsKK+eEtuW+jCA8IGFmdGVyOwor6YKj5YWSIDwgdGhlcmU7CivpkoMgPCBtZXRhbDsKK+WcluihqCA8IGNoYXJ0Owor5ZyN6KOZIDwgYXByb247Civnspfns5kgPCBjcnVkZTsKK+aenOWtkOWHjSA8IGplbGx5Owor5aSn5Zyw5ZyWIDwgYXRsYXM7CivliarloLEgPCBzY3JhcDsKK+imj+aooSA8IHNjYWxlOwor6YKj5LqbIDwgdGhvc2U7CivpiIcgPCBhblwtYXg7Civovqbms5UgPCBtZWFuczsKK+iIueiyqCA8IGNhcmdvOwor5q2M5YqHIDwgb3BlcmE7Civng4/mnKggPCBlYm9ueTsKK+mbheWQhOabuCA8IGphbWVzOwor57KJ562GIDwgY2hhbGs7CivntZXmioAgPCBzdHVudDsKK+iHiemgsCA8IGNoZWVrOwor55m955mhIDwgaWRpb3Q7Civop5LluqYgPCBhbmdsZTsKK+eZvOeXhSA8IG9uc2V0Owor5oSf5YyW6aSF5Lm+IDwgd2FmZXI7Civln7rmnKwgPCBiYXNpYzsKK+eBq+eEsCA8IGJsYXplOwor5o6i57SiIDwgcXVlc3Q7CivloavloZ4gPCBzdHVmZjsKK+ezlua8vyA8IHN5cnVwOwor57KJ56KOIDwgY3Jhc2g7Civoi7Hku6PniL4gPCBpbnRlbDsKK+iypCA8IHN0ZXBzOwor6IiJ6LW3IDwgaGVhdmU7CivosZQgPCBwbHVtcDsKK+mAmeWkqSA8IHRvZGF5Owor6K6ZIDwgY2hlZXI7CivorYEgPCBub2lzZTsKK+WwvOm+jSA8IG55bG9uOwor5q+b6Iy46Iy4IDwgaGFpcnk7CivpmorkvI0gPCByYW5rczsKK+inlCA8IGNhdHR5Owor5bmF5bqmIDwgd2lkdGg7CivmqaHmnKggPCBvYWtlbjsKK+eyvua2siA8IHNlbWVuOwor5bqK5ZauIDwgc2hlZXQ7CivliYPliIAgPCByYXpvcjsKK+iglyA8IFwoYXBlXCk7CivlsLzml6XniL4gPCBuaWdlcjsKK+ifoiA8IGNhdWxrOwor5Yez5a2QIDwgc3Rvb2w7Civohr3ph48gPCBuZXJ2ZTsKK+idmCA8IGdlY2tvOwor5YaN5pyDIDwgYWRpZXU7CivmqrPlrZAgPCBiaW56aTsKK+WFqeasoSA8IHR3aWNlOwor5L+u6aO+IDwgYWRvcm47CivntKLlvJUgPCBpbmRleDsKK+WDteehrCA8IHN0YXJrOwor6JiTIDwgdGh5bWU7CivomIsgPCBhcHBsZTsKK+W3peacgyA8IHVuaW9uOwor6KOC55eVIDwgY2hhc207CivntLDlsI8gPCBwZXR0eTsKK+mphemZpCA8IHJlcGVsOwor5qi55p6XIDwgd29vZHM7CivmvZvooYwgPCBzbmVhazsKK+WeguatuyA8IGR5aW5nOwor5qi65pyoIDwgYmlyY2g7Civojr8gPCB0aG9ybjsKK+WFrOacgyA8IGd1aWxkOwor6Iu2IDwgd2Vhcnk7CivmlLbpn7PmqZ8gPCByYWRpbzsKK+aQk+aPiSA8IGtuZWFkOwor6Ie9IDwgYVwtcGl0Owor6IeyIDwganVtcHk7Civoh5sgPCBicm90aDsKK+mAmeS6myA8IHRoZXNlOwor5bqH5L2RIDwgYmxlc3M7CivlgYfoo50gPCBmZWlnbjsKK+i+ruWtkCA8IHBsYWl0Owor6ZmN5LiLIDwgbG93ZXI7CivohaEgPCBsaW5lczsKK+aok+airyA8IHN0YWlyOwor56ys5LiJ5qyhIDwgdGhpcmQ7Civpq5jogbIgPCBhbG91ZDsKK+WwiumtmiA8IHRyb3V0Owor6IKVIDwgdG91Z2g7Civlm57nrZQgPCByZXBseTsKK+iAniA8IGZsYWlsOwor5oub5b6F5ZOhIDwgdXNoZXI7CivnsKHnn60gPCBicmllZjsKK+e/vSA8IHdoaXJyOwor5Zuk56mNIDwgaG9hcmQ7Civnv4QgPCB3aW5kczsKK+mnv+mmrCA8IHN0ZWVkOwor572JIDwgYVwtcG90Owor6Imy54u8IDwgc2F0eXI7CivnursgPCByYW1pZTsKK+i9ieaSrSA8IHJlbGF5Owor5om56YePIDwgYmF0Y2g7CivnuI8gPCBwdXJzZTsKK+e2jCA8IGNsb3RoOwor55qu5bi2IDwgc3RyYXA7CivmkpLkvYYgPCBzYXRhbjsKK+WGsOWhlCA8IHNlcmFjOwor57KOIDwgbWV0cmU7CivnrpsgPCBidWdsZTsKK+i8leafkyA8IHRpbmdlOwor562wIDwgY2FibGU7CivnraYgPCBhXC1rZXk7Civnq5QgPCBsaXRyZTsKK+aLm+iHtCA8IGluY3VyOwor5LiA57ea5b6u5YWJIDwgZ2xlYW07CivnqacgPCBzaGVhZjsKK+agl+m8oCA8IGJ1bm55Owor5ber5amGIDwgd2l0Y2g7CivploDlu4ogPCBzdG9vcDsKK+ektiA8IGFcLWp1ZzsKK+aEj+Wkp+WIqSA8IGl0YWx5Owor56OIIDwgcm9ja3k7Civng5jkub4gPCBwYXJjaDsKK+awtOW5s+mdoiA8IHBsYW5lOwor5YWs5bC6IDwgbWV0ZXI7Civnn5MgPCBmYWludDsKK+eejyA8IHJvdW5kOwor5Lqe6bq75biDIDwgbGluZW47CivnnLkgPCBwdXBpbDsKK+S6lOiKseWFq+mWgCA8IG15cmlkOwor55uO5Y+4IDwgb3VuY2U7Civnmr0gPCBzY3VyZjsKK+mojui7iiA8IGN5Y2xlOwor57K+5a2QIDwgc3Blcm07CivnmaEgPCBzaWxseTsKK+WHjOS6giA8IGNoYW9zOwor5L+a6KqeIDwgc2xhbmc7CivntIXliKkgPCBib251czsKK+a6nOWGsOmeiyA8IHNrYXRlOwor55SOIDwgYnJpY2s7CivkvZzlk7zogbIgPCBzbm9ydDsKK+Wfg+WPiiA8IGVneXB0Owor6KO96YCg6ICFIDwgbWFrZXI7CivnkZQgPCBcKGphZGU7Civnj5YgPCBjYXJhdDsKK+espuiomCA8IHRva2VuOwor5Zaq6ZCYIDwga25lbGw7CivohLnotbcgPCBidWxnZTsKK+WFrOWZuCA8IHRvbm5lOwor54Sh55Sf5ZG9IDwgaW5lcnQ7CivniZwgPCBhblwtb3g7CivniZQgPCBnYWJsZTsKK+mFqui+sualrSA8IGRhaXJ5Owor55Sf6IuUIDwgbW9zc3k7CivpqJnooZMgPCB0cmljazsKK+aJk+ijvSA8IGZvcmdlOwor54GjIDwgYVwtYmF5Owor6IWQ6J2VIDwgcnVzdHk7CivmsLTokrjmsKMgPCB2YXBvcjsKK+WFreWNgSA8IHNpeHR5Owor5YWs5Y2HIDwgbGl0ZXI7CivkvLzpm6ogPCBzbm93eTsKK+eXheavkiA8IHZpcnVzOwor5o6o5bSHIDwgdmFsdWU7Civot6/nt5ogPCByb3V0ZTsKK+W3qOS6uiA8IGdpYW50Owor5YOP54mH57C/IDwgYWxidW07CivmiYvol50gPCBjcmFmdDsKK+i0iOiIh+iAhSA8IGdpdmVyOwor5pac57SL6Luf5ZGiIDwgdHdlZWQ7CivmsbMgPCBoZW5hbjsKK+W+t+WFi+iWqeaWryA8IHRleGFzOwor6aas6YGUIDwgbW90b3I7Civlm5vmnIggPCBhcHJpbDsKK+aukSA8IHN3b29uOwor5YW25LitIDwgYW1vbmc7CivmrYggPCBzb25nczsKK+asuCA8IHNpZ2hzOwor5ruR57+UIDwgZ2xpZGU7CivlpKnol43oibIgPCBhenVyZTsKK+ihsOaVlyA8IGRlY2F5Owor6Iub5Yi7IDwgaGFyc2g7CivmqqggPCBtYW5nbzsKK+epuumWkyA8IHNwYWNlOwor5qiVIDwgc2hydWI7CivmjqDlpaogPCBoYXJyeTsKK+Wvn+imuiA8IGF3YXJlOwor5bGL57C3IDwgZWF2ZXM7CivmoLzoqIAgPCBtYXhpbTsKK+alhSA8IGJ1YXJkOwor55Oj6IacIDwgdmFsdmU7CivmpIggPCBjZWRhcjsKK+ajgSA8IGpvaXN0Owor5ZyN5be+IDwgc2NhcmY7Civlr5PoqIAgPCBmYWJsZTsKK+iiq+WtkCA8IHF1aWx0Owor5qCNIDwgYVwtbG90Owor5bCP6IiMIDwgdXZ1bGE7CivlsLHnt5IgPCByZWFkeTsKK+i7gOW5uSA8IHRydW5rOwor5omL6IKYIDwgZWxib3c7CivlrqLou4ogPCBjb2FjaDsKK+iJvuWnrCA8IGFnZ2llOwor6aOb6KGM5ZOhIDwgcGlsb3Q7CivlnKjlpJYgPCBvdXRlcjsKK+W0h+aLnCA8IGFkb3JlOwor5YWF5Lu9IDwgYW1wbGU7Civpq5jmmI4gPCBzbWFydDsKK+eXm+aBqCA8IGFiaG9yOwor55eb5b+rIDwgam9sbHk7CivmjZDotIjogIUgPCBkb25vcjsKK+aVlCA8IGdhdmVsOwor6KW/54+t54mZIDwgc3BhaW47CivnlLfniLUgPCBiYXJvbjsKK+WbuuWumiA8IGZpeGVkOwor5bCW57SwIDwgdGFwZXI7CivoirHkv48gPCBmYW5jeTsKK+i1q+iMsiA8IGhlcnR6Owor5oyMIDwgZmlnaHQ7Civmj5DlpJrmm7ggPCB0aXR1czsKK+WcjeWfjiA8IHNpZWdlOwor5omiIDwgY2FwZXI7Civoh7TmlawgPCBncmVldDsKK+i7jeWcmCA8IGNvcnBzOwor5oSDIDwgcmVsYXg7CivmjpLliJcgPCBhcnJheTsKK+S/j+eariA8IHNhdWN5Owor6Iie5byKIDwgZnJhdWQ7Civmgr4gPCBuYWl2ZTsKK+ijnOS4gSA8IHBhdGNoOwor55Sf6bq157OwIDwgZG91Z2g7Civmu7/ouqvlobXln4MgPCBkdXN0eTsKK+a8v+aenCA8IGJlcnJ5Owor6Zi/5ouJ5pGpIDwgYWxhbW87CivprYXlipsgPCBjaGFybTsKK+a8gua4uCA8IGRyaWZ0Owor5b2RIDwgc25vdXQ7Civoqr/lkbPogonmsYEgPCBncmF2eTsKK+a9keaOiSA8IHNwaWxsOwor5biSIDwgYVwtYmFnOwor6LOH6YeRIDwgZnVuZHM7CivnlLfpq5jpn7MgPCB0ZW5vcjsKK+S4gOm7nuWFkiA8IGFcLWJpdDsKK+W2niA8IHJpZGdlOwor6Ieq5oiRIDwgc2VsZlwtOwor5p6c6YWSIDwgY2lkZXI7CivltJogPCBoaWxseTsKK+aNt+WFiyA8IGN6ZWNoOwor55So5rOVIDwgdXNhZ2U7CivlrZjosqggPCBzdG9jazsKK+mrmOWwmiA8IG5vYmx5Owor5ouN5pOKIDwgc21hY2s7Civlq5ogPCBzY29ybjsKK+Wwj+aoueaelyA8IGdyb3ZlOwor5biD6JCK54i+IDwgYmxhaXI7CivlnKjvuY3kuYvkuIsgPCBiZWxvdzsKK+WcqO+5jeS5i+S4iiA8IGFib3ZlOwor5r+A5YWJIDwgbGFzZXI7Civlronoj68gPCBhbndhcjsKK+aLguaOgyA8IHdoaXNrOwor6Ii55Y+qIDwgc2hpcHM7Civlo4YgPCBzdGlmZjsKK+WiuiA8IHdhbGxzOwor5aKNIDwgcGFpbnQ7CivloZkgPCB0cnVseTsKK+Wbm+WNgSA8IGZvcnR5Owor5Z2wIDwgd2lsZHM7CivmkqXngavmo40gPCBwb2tlcjsKK+WZuiA8IHN0b3J5Owor5ZeQIDwgYWxhc1whOwor5rWB6auUIDwgZmx1aWQ7CivllrQgPCBoZWxsbzsKK+WVsiA8IGFcLWZldzsKK+WVjSA8IGNyZWFrOwor5ZO2IDwgYmxlYXQ7Civlko0gPCBsYXVnaDsKK+WQsCA8IGNsYW5nOwor56+E5ZyNIDwgcmFuZ2U7CivljrogPCB0b1wtZ287CivljpYgPCBidWxreTsKK+S4ieiJsue0q+e+heiYrSA8IHBhbnN5Owor5L+u5pS5IDwgYW1lbmQ7CivmnInpoqggPCB3aW5keTsKK+mpmuaFjCA8IHBhbmljOwor5Zyo5peB6YKKIDwgYXNpZGU7CivlhqcgPCBhXC1idWQ7CivkuLvpoYwgPCB0aGVtZTsKK+eHn+alreWToSA8IGNsZXJrOwor5ZOq6KOhIDwgd2hlcmU7CivlnIvpmpvpm7vloLHpm7voqbHlkqjoqaLlp5Tlk6HmnIMgPCBjY2l0dDsKK+itpuWgseWZqCA8IHNpcmVuOwor55W25ZywIDwgbG9jYWw7CivlgInluqsgPCBkZXBvdDsKK+S9uiA8IGZhaXJ5Owor5LyK57SiIDwgYWVzb3A7Civli5XmhYvlvbHlg48gPCB2aWRlbzsKK+S4ieinkua0siA8IGRlbHRhOwor56yR5p6XIDwgaHVtb3I7CivlqIHniL7lo6sgPCB3YWxlczsKK+ajmuWtkCA8IHNoYWNrOwor5LaHIDwgYVwtcmF0Owor6IKv5bC85LqeIDwga2VueWE7CivnlLflrZAgPCBhXC1tYW47CivogqHnpaggPCBzaGFyZTsKK+SzsSA8IGR1Y2tzOwor6bq15YyF55quIDwgY3J1c3Q7CivogqXnoqkgPCBzdG91dDsKK+SvjSA8IGJvbmVzOwor55+z5Y2X5qi5IDwgaGVhdGg7Civmi7TkvY8gPCBoaXRjaDsKK+igouS6iyA8IGZvbGx5Owor5Kq7IDwgYVwtY2FwOwor5KmVIDwgY2xvZ3M7CivkuIvpm6ggPCByYWlueTsKK+mpmuWlhyA8IGFtYXplOwor5Ki5IDwgc3dpZnQ7CivlmbTlh7ogPCBzcG91dDsKK+SnqiA8IHNpc3N5Owor5KaeIDwgZXh0cmE7CivkpZMgPCBhXC1ob2U7CivkpJkgPCBkcmVnczsKK+iFseWtkCA8IHNpbmV3Owor5pu06YGyIDwgbGF0ZXI7Civpu5HosoIgPCBzYWJsZTsKK+SdkiA8IGFcLXNvdzsKK+SanyA8IGhvcm5zOwor6J6657Wy6YeYIDwgc2NyZXc7CivkmokgPCBvXC1zZWU7Civmspnpvo0gPCBzYWxvbjsKK+SXlSA8IGJlbmRzOwor5L+d5aeGIDwgbmFubnk7CivllLHoqannj60gPCBjaG9pcjsKK+aLieS4gSA8IGxhdGluOwor5JGBIDwgZmF0dHk7CivmnIPoq4cgPCB0YWxrczsKK+iEiOaQjyA8IHB1bHNlOwor5I+zIDwgb2xlaW47Civkj68gPCBtb2xlczsKK+SNpSA8IHNtb2t5Owor6YeR6auuIDwgYmxvbmQ7CivkjYwgPCBhXC1qYXI7CivkuInljYPkupTnmb4gPCAzXC01MDA7CivkjJEgPCB0aWdodDsKK+SMkCA8IHJvcGVzOwor5Iq7IDwgc2lsa3k7CivlsI/lsYsgPCBjYWJpbjsKK+SIiSA8IGFcLWZhbjsKK+WYjuWYjiA8IHF1YWNrOwor5ISlIDwgYVwtZ29kOwor5ISiIDwgcGlvdXM7Civkvr/lo6sgPCBwZW5ueTsKK+iAtuepjCA8IGplc3VzOwor5IOZIDwgcm9ja3M7Civpi7znkLQgPCBwaWFubzsKK+mojuWjqyA8IHJpZGVyOwor5omL5aWXIDwgZ2xvdmU7Civot5/liY0gPCBmcm9udDsKK+S/ruWJqiA8IHBydW5lOwor476aIDwgaXRjaHk7CivpppnmlpkgPCBzcGljZTsKK+S8uuacjSA8IHNlcnZvOwor56ef57SEIDwgbGVhc2U7CivjvI8gPCBhXC1iYWQ7CivlsJbloZQgPCBzcGlyZTsKK+WXtuWYsCA8IHNlcmdlOwor5rGh6bueIDwgc3RhaW47Civms5Xpg44gPCBmcmFuYzsKK+a0u+iRlyA8IGFsaXZlOwor47qDIDwgYVwtZG9nOwor47m7IDwgcHVwcHk7CivjuYsgPCBhXC1jb3c7CivogoXmuIUgPCBwdXJnZTsKK+O4gyA8IGFcLWRvdDsKK+eZvOeJoumotyA8IHdoaW5lOwor5re55rKSIDwgZmx1c2g7CivnrKzljYEgPCB0ZW50aDsKK+aZgumrpiA8IHZvZ3VlOwor5omT5ZG8IDwgc25vcmU7CivjsLwgPCBncmVlZDsKK+mkmOeHvCA8IGVtYmVyOwor46+3IDwgZGF0ZXM7CivnrKzlha0gPCBzaXh0aDsKK+OupSA8IHNhaWxzOwor57696I6WIDwgcXVpbGw7CivlsIHlnLAgPCBtYW5vcjsKK+mhjOinoyA8IG5vdGVzOwor6ZW36aC455O2IDwgZmxhc2s7CivkuIDooYwgPCBwYXJ0eTsKK+OolyA8IGFsZXJ0Owor46iDIDwgYVwtcm93Owor5bCP5ZCDIDwgc25hY2s7CivlronlhajnkIbkuovmnIMgPCB0aGVcLXU7Civjp40gPCBhbGlrZTsKK+ePjeePoCA8IHBlYXJsOwor6by754WZIDwgc251ZmY7CivmtIvolKUgPCBvbmlvbjsKK+ekuuWogemBi+WLlSA8IHJhbGx5Owor6Laj5YqHIDwgZmFyY2U7CivkvY7lu4kgPCBjaGVhcDsKK+WTgOeXmyA8IGdyaWVmOwor56ys5LqUIDwgZmlmdGg7CivnrKzkuZ0gPCBuaW50aDsKK+OhtiA8IGR3ZWxsOwor46GQIDwgZmxhZ3M7CivjoYwgPCBhXC1oYXQ7CivjoYcgPCBjb2xhcjsKK+aciee3miA8IHdpcmVkOwor456+IDwgYVwtbnVuOwor456VIDwgY2hpcHM7CivjnpIgPCBsdXN0eTsKK+aIsuWKhyA8IGRyYW1hOwor6LyJ6LKo5rG96LuKIDwgbG9ycnk7CivnvanooasgPCBzbW9jazsKK+OWpCA8IHdyYXRoOwor45WOIDwgY2F2ZXM7CivnmrrnnInpoK0gPCBzY293bDsKK+OTnSA8IGFcLWxhdzsKK+OTgSA8IGFcLW5ldDsKK+OSqSA8IG5ha2VkOwor45KMIDwgYWxvbmc7Civnjofnm7QgPCBmcmFuazsKK+OQsSA8IGJ1c2h5Owor5pmv6LGhIDwgc2NlbmU7CivosaHniZkgPCBpdm9yeTsKK+WWneWPsSA8IGNoaWRlOwor55C05bymIDwgY2hvcmQ7CivnjY7nq6AgPCBtZWRhbDsKK+WtkOaIvyA8IG92YXJ5Owor5oCq6KqVIDwgZnJlYWs7Civmt7HluqYgPCBkZXB0aDsKK+WNiOmkkCA8IGx1bmNoOwor542154qsIDwgaG91bmQ7CivnkIbmg7MgPCBpZGVhbDsKK+iAveaTsSA8IHRhcnJ5Owor5peF6aSoIDwgaG90ZWw7CivppqzkvoYgPCBtYWxheTsKK+mmrOS8lSA8IGdyb29tOwor5aSn6bm/IDwgbW9vc2U7CivogZblvpIgPCBzYWludDsKK+S4lueVjCA8IHdvcmxkOwor5LyK5pav6Jit5pWZIDwgaXNsYW07CivmuJvljrsgPCBtaW51czsKK+S6uuaApyA8IGh1bWFuOwor5oWI5oKyIDwgbWVyY3k7Civoq5bpoYwgPCB0b3BpYzsKK+WNoei7iiA8IHRydWNrOwor572M57KfIDwgcG9wcHk7CivmlpHppqwgPCB6ZWJyYTsKK+Wll+mQmCA8IGNoaW1lOwor5a6I5YCZIDwgYWJpZGU7Civmnb/lsqkgPCBzbGF0ZTsKK+mgreeariA8IHNjYWxwOwor5Y2R6LOkIDwgbG93bHk7CivljYfotbcgPCBob2lzdDsKK+a1gea1quiAhSA8IHJvdmVyOwor6LKd5a+nIDwgYmVuaW47Civml4vovYkgPCB3aGlybDsKK+eBjOacqOWPoiA8IHNjcnViOwor5pel6KiYIDwgZGlhcnk7CivkuYPmmK8gPCB0b1wtYmU7CivmlrDov5EgPCBuZXdseTsKK+WQuOawoyA8IHNuaWZmOwor6KqY6Zm3IDwgc25hcmU7CivmnZPlrZAgPCBzY29vcDsKK+aEn+WumCA8IHNlbnNlOwor5pys5b2xIDwgdW1icmE7Civkurrlk6EgPCBzdGFmZjsKK+e6jOiogiA8IHJlbmV3Owor5pu05pS5IDwgYWx0ZXI7CivlkInmma7os73kurogPCBneXBzeTsKK+aUtumkiiA8IGFkb3B0Owor5oCq55WwIDwgd2VpcmQ7CivospPlkqogPCBraXR0eTsKK+ayvOa+pCA8IGdsYWRlOwor56KO5biD5qKdIDwgc2hyZWQ7CivmsaHnqaIgPCBuYXN0eTsKK+S4ieaciCA8IG1hcmNoOwor5YWn5Zyo55qEIDwgaW5uZXI7Civpm7vpg7UgPCBlbWFpbDsKK+WLnemBjiA8IGV4Y2VsOwor6K2J56ugIDwgYmFkZ2U7CivmtbflnLAgPCBoYWl0aTsKK+mbt+mBlCA8IHJhZGFyOwor6ayx6YeR6aaZIDwgdHVsaXA7CivlpLHoqqQgPCBsYXBzZTsKK+mCiumamyA8IGxpbWl0Owor54uC54axIDwgY3JhemU7CivkupTljYEgPCBmaWZ0eTsKK+mbquiMhOeFmSA8IGNpZ2FyOwor5p2x5LqsIDwgdG9reW87Civmr5Lom4cgPCB2aXBlcjsKK+mgjOatjCA8IGNhcm9sOwor5ZKV5ZqVIDwgZ3J1bnQ7CivkuIDmiZMgPCBkb3plbjsKK+ippumHkSA8IGFzc2F5Owor6aCt5pqIIDwgZGl6enk7CivlkLnnrJvogIUgPCBwaXBlcjsKK+S4gOW3tOaOjCA8IHNwYW5rOwor54Sm6bueIDwgZm9jdXM7CivntbHmsrvogIUgPCBydWxlcjsKK+e6lue2rSA8IGZpYmVyOwor5LqL5Lu2IDwgZXZlbnQ7CivpgJfpu54gPCBjb21tYTsKK+WShuWTriA8IGdyb3dsOwor5ZG85Y+r6IGyIDwgd2hvb3A7Civpgo/ovK8gPCBsb2dpYzsKK+abtOWjniA8IHdvcnNlOwor5bqn5Y+z6YqYIDwgbW90dG87CivkuInnqJzpj6EgPCBwcmlzbTsKK+S4reWciyA8IGNoaW5hOwor5aSa6JGJIDwgbGVhZnk7CivkuIDlsaQgPCBsYXllcjsKK+eHu+iCiSA8IGJhY29uOwor5pOi6ZmeIDwgZXhhbHQ7CivmhJvlhYvmlq/lhYkgPCB4XC1yYXk7CivlpKfohb8gPCB0aGlnaDsKK+acrOS6uiA8IGlcLVwobWU7Civpn7vmlocgPCB2ZXJzZTsKK+eGiuiykyA8IHBhbmRhOwor5paR576aIDwgZ29yYWw7Civnn67loqnloqkgPCBwdWRneTsKK+iRoeiQhCA8IGdyYXBlOwor542O5ZOBIDwgYXdhcmQ7Civpu4/kvY8gPCBjbGluZzsKK+WPr+aAlSA8IGF3ZnVsOwor6YGO6YGTIDwgYWlzbGU7CivnpKblt6UgPCBtaW5lcjsKK+atjOisoCA8IGNoYW50Owor5rKZ5ouJIDwgc2FsYWQ7Civmlpfnr7cgPCBjbG9hazsKK+aciOS7vSA8IG1vbnRoOwor6Zub6I+KIDwgZGFpc3k7CivljIXnqYAgPCBtYWl6ZTsKK+mYv+eIvuazlSA8IGFscGhhOwor6YC86L+rIDwgZm9yY2U7CivlqpLku4sgPCBtZWRpYTsKK+WTquS4gOWAiyA8IHdoaWNoOwor5pWZ576pIDwgY3JlZWQ7CivlkIjogqHnt5ogPCB0d2luZTsKK+mggeWyqSA8IHNoYWxlOwor55Ge5YW45Lq6IDwgc3dlZGU7Civljq3mg6EgPCBsb2F0aDsKK+S9v+e+nuaEpyA8IGFiYXNoOwor5piP5pqXIDwgZHVza3k7Civmr5TnjocgPCByYXRpbzsKK+mcjuecvCA8IGJsaW5rOwor5pm05aSpIDwgc3Vubnk7CivnlLflrZDmsKMgPCBtYW5seTsKK+S9v+Wom+aogiA8IGFtdXNlOwor5pyJIDwgaGF2ZTsKK+efpSA8IGtub3c7Civov5kgPCB0aGlzOwor55+cIDwgcGl0eTsKK+W/mSA8IGJ1c3k7CivmnaUgPCBjb21lOwor6L+RIDwgbmVhcjsKK+mBkyA8IHBhdGg7CivkuZ8gPCBhbHNvOwor5pe2IDwgdGltZTsKK+W5tCA8IHllYXI7CivnnrsgPCBsb29rOwor6L66IDwgZWRnZTsKK+WwsSA8IGp1c3Q7CivpgqMgPCB0aGF0Owor55SfIDwgbGlmZTsKK+iHqiA8IHNlbGY7CivnnqwgPCB3aW5rOwor6L+HIDwgcGFzczsKK+W+qiA8IG9iZXk7Civlvp4gPCBmcm9tOwor5aSaIDwgbXVjaDsKK+WlvSA8IGdvb2Q7CivotbcgPCByaXNlOwor5Y+qIDwgb25seTsKK+S9nCA8IG1ha2U7CivlvZMgPCBiZWFyOwor5b2iIDwgZm9ybTsKK+W8gCA8IG9wZW47CivmiYsgPCBoYW5kOwor5byxIDwgd2VhazsKK+acrCA8IHJvb3Q7CivlpLQgPCBoZWFkOwor55yfIDwgcmVhbDsKK+mdoiA8IGZhY2U7CivlhawgPCBmYWlyOwor5ZCMIDwgc2FtZTsKK+WKqCA8IG1vdmU7Civplb8gPCBsb25nOwor6LyJIDwgbG9hZDsKK+WwhiA8IHdpbGw7CivouqsgPCBib2R5Owor6auYIDwgaGlnaDsKK+aKiiA8IGhvbGQ7Civnm6UgPCB3YXNoOwor5pyIIDwgbW9vbjsKK+enjSA8IHNlZWQ7Civou40gPCBhcm15Owor6LuKIDwgY2FydDsKK+mDqCA8IHBhcnQ7CivlkI0gPCBuYW1lOwor55quIDwgc2tpbjsKK+acuiA8IGRlc2s7Civnu5kgPCBnaXZlOwor562JIDwgcmFuazsKK+W6pyA8IHNlYXQ7CivlvoggPCB2ZXJ5Owor5pyAIDwgbW9zdDsKK+W6lyA8IHNob3A7Civouo0gPCBza2lwOwor6LWwIDwgd2FsazsKK+WbmyA8IGZvdXI7Civpl6ggPCBnYXRlOwor5LicIDwgZWFzdDsKK+W6gSA8IGhhbGw7Civopb8gPCB3ZXN0Owor5bmzIDwgZmxhdDsKK+WQrCA8IGhlYXI7CivlubggPCBsdWNrOwor6Lm0IDwga2ljazsKK+S6lCA8IGZpdmU7CivluLcgPCB0ZW50Owor5bi2IDwgYmVsdDsKK+W4jCA8IHJhcmU7CivouIogPCBsZWFwOwor5LmmIDwgYm9vazsKK+S5nSA8IG5pbmU7Civot7MgPCBqdW1wOwor6LevIDwgcm9hZDsKK+eXqSA8IHRoaW47CivmtLsgPCBsaXZlOwor5bemIDwgbGVmdDsKK+W3oyA8IG5lc3Q7CivooaggPCBzaG93Owor6LefIDwgaGVlbDsKK+eXmyA8IHBhaW47Civnl5UgPCBzY2FyOwor55eSIDwgaXRjaDsKK+aEnyA8IGZlZWw7CivotrMgPCBmb290Owor6YeRIDwgZ29sZDsKK+S9lSA8IHdoYXQ7Civmm7QgPCBtb3JlOwor55aLIDwgcm9sbDsKK+WBmiA8IHdvcms7CivorqEgPCBwbGFuOwor546LIDwga2luZzsKK+WQhCA8IGVhY2g7CivnlZkgPCBzdG9wOwor55WPIDwgZmVhcjsKK+eUtyA8IG1hbGU7Civpo44gPCB3aW5kOwor5bSXIDwgcG9zdDsKK+avmyA8IGhhaXI7Civls7AgPCBwZWFrOwor54ixIDwgbG92ZTsKK+eTpiA8IHRpbGU7Civos6MgPCBzZWxsOwor6LODIDwgcmVudDsKK+iyuCA8IGxlbmQ7CivlsrggPCBiYW5rOwor57uTIDwga25vdDsKK+WyrCA8IGNhcGU7CivmtYEgPCBmbG93Owor6LKnIDwgcG9vcjsKK+mdkiA8IGJsdWU7CivnrqEgPCBwaXBlOwor6L+eIDwgam9pbjsKK+mYnyA8IHRlYW07CivlsZEgPCBiaXRzOwor6aKGIDwgbmVjazsKK+WxiCA8IGJlbmQ7CivlsL4gPCB0YWlsOwor5Y2KIDwgaGFsZjsKK+WAmSA8IHdhaXQ7CivmraUgPCBzdGVwOwor5rexIDwgZGVlcDsKK+WMuiA8IGFyZWE7CivlsIsgPCBzZWVrOwor55CDIDwgYmFsbDsKK+WRiiA8IHRlbGw7Civlr7ggPCBpbmNoOwor5ruhIDwgZmlsbDsKK+adjiA8IHBsdW07Civmga8gPCByZXN0Owor5a+SIDwgY29sZDsKK+WvhCA8IHNlbmQ7Civlj5YgPCB0YWtlOwor5a6kIDwgcm9vbTsKK+WumyA8IHNlZW07CivlrakgPCBiYWJ5Owor5bm/IDwgd2lkZTsKK+eOiSA8IGphZGU7CivngasgPCBmaXJlOwor6K6AIDwgcmVhZDsKK+itvSA8IGZhbWU7CivliJkgPCBydWxlOwor5aSxIDwgbG9zZTsKK+WMhSA8IHdyYXA7CivnjLYgPCBsaWtlOwor6JC9IDwgZmFsbDsKK+a1jiA8IGhlbHA7CivorKEgPCBzaW5nOwor57yWIDwga25pdDsKK+iwiCA8IHRhbGs7Civmi4kgPCBwdWxsOwor54u8IDwgd29sZjsKK+adgCA8IGtpbGw7Civlq4wgPCBoYXRlOwor5YWLIDwgZ3JhbTsKK+WGsiA8IHNvYXI7CivmjqggPCBwdXNoOwor56ewIDwgY2FsbDsKK+ippiA8IHRlc3Q7Civlj7cgPCBtYXJrOwor5LqaIDwgYXNpYTsKK+a4ryA8IHBvcnQ7CivoiKwgPCBzb3J0Owor54iqIDwgY2xhdzsKK+WImiA8IGhhcmQ7CivpmYYgPCBsYW5kOwor56GuIDwgc3VyZTsKK+WFtyA8IHRvb2w7CivlqIEgPCBwb21wOwor57q/IDwgbGluZTsKK+inpiA8IGJ1dHQ7Civop5IgPCBob3JuOwor54eSIDwgYnVybjsKK+WmuyA8IHdpZmU7CivpnIAgPCBuZWVkOwor6YWSIDwgd2luZTsKK+mTgSA8IGlyb247CivoppcgPCBwZWVrOwor5Yy7IDwgY3VyZTsKK+ilsiA8IHJhaWQ7Civnha4gPCBjb29rOwor5ZyfIDwgc29pbDsKK+i9ryA8IHNvZnQ7CivnhaQgPCBjb2FsOwor5aWXIDwgY2FzZTsKK+aItyA8IGRvb3I7Civog4wgPCBiYWNrOwor5pqXIDwgZGFyazsKK+mhuyA8IG11c3Q7Civoo7ggPCBiYXJlOwor5qCRIDwgdHJlZTsKK+ayiSA8IHNpbms7CivogYwgPCBkdXR5Owor57uGIDwgZmluZTsKK+ijnCA8IG1lbmQ7CivooqIgPCByb2JlOwor5peBIDwgc2lkZTsKK+WhtSA8IGR1c3Q7CivloakgPCBzYWx0Owor5q2MIDwgc29uZzsKK+eBjCA8IHBvdXI7CivloYAgPCB3YWxsOwor5aCkIDwgZGlrZTsKK+aBtiA8IGV2aWw7CivloIYgPCBoZWFwOwor5oWiIDwgc2xvdzsKK+WggCA8IGNhdmU7Civon7sgPCBhbnRzOwor6JePIDwgaGlkZTsKK+WfiyA8IGJ1cnk7CivmvrkgPCBjYWxtOwor5Z6iIDwgZGlydDsKK+iejSA8IG1lbHQ7Civmva4gPCB0aWRlOwor5pWRIDwgc2F2ZTsKK+S4nSA8IHNpbGs7CivpvYogPCBldmVuOwor6by7IDwgbm9zZTsKK+a8rCA8IHNvYWs7CivpvJMgPCBkcnVtOwor5ryPIDwgbGVhazsKK+W9lSA8IGNvcHk7CivpgYcgPCBtZWV0Owor6Ii5IDwgc2hpcDsKK+m7tCA8IG1vbGQ7Civmu7QgPCBkcmlwOwor6ZuoIDwgcmFpbjsKK+ibmSA8IGZyb2c7Civmu5EgPCBzbGlwOwor6bq7IDwgaGVtcDsKK+iapCA8IGZsZWE7Civpub8gPCBkZWVyOwor5rKZIDwgc2FuZDsKK+WZmyA8IGJpdGU7Civmi40gPCBjbGFwOwor5o6JIDwgdHVybjsKK+WTrSA8IHdlZXA7CivlmIYgPCBzaWdoOwor5Y2IIDwgbm9vbjsKK+WNoSA8IGNhcmQ7Civpm6ogPCBzbm93Owor5re1IDwgZ3VsZjsKK+a2vCA8IGNvb2w7CivliLogPCBzdGFiOwor6JaqIDwgZnVlbDsKK+mxvCA8IGZpc2g7CivllpggPCBwYW50Owor55uYIDwgdHJheTsKK+iWlCA8IHJvc2U7CivmnrYgPCByYWNrOwor5qy+IDwgaXRlbTsKK+a1qiA8IHdhdmU7CivolakgPCBwb25kOwor5rSqIDwgdmFzdDsKK+mVhyA8IHRvd247CivmtYQgPCBwdXJlOwor5peFIDwgdHJpcDsKK+WUviA8IHNwaXQ7CivpqqggPCBib25lOwor5ZSWIDwgZHVtYjsKK+m0iSA8IGNyb3c7CivllIcgPCBsaXBzOwor5rOzIDwgZGl2ZTsKK+WTsiA8IHdpc2U7Civlk6kgPCBtaWxlOwor5ZyjIDwgaG9seTsKK+mzpSA8IGJpcmQ7CivmmZMgPCBkYXduOwor5rK8IDwgbGFrZTsKK+iFvyA8IGxlZ3M7CivmjqIgPCBmaW5kOwor6JGmIDwgcmVlZDsKK+axoCA8IHBvb2w7CivokYkgPCBsZWFmOwor5p2fIDwgYmluZDsKK+WRhiA8IGR1bGw7CivlkLsgPCBraXNzOwor5ZC5IDwgYmxvdzsKK+awjyA8IGNsYW47Civnrb4gPCBzaWduOwor5rCIIDwgZmVsdDsKK+WltiA8IG1pbGs7Civoj6kgPCBoZXJiOwor5Y+iIDwgYnVzaDsKK+aMgiA8IGhhbmc7CivoiKogPCBzYWlsOwor5ouzIDwgZmlzdDsKK+S5mCA8IHJpZGU7CivlnYAgPCBzaXRlOwor5q+GIDwgYmVhdDsKK+mtgiA8IHNvdWw7CivkuZQgPCB0YWxsOwor57KuIDwgZm9vZDsKK+aVjyA8IGZhc3Q7CivojI4gPCBzdGVtOwor6Zu2IDwgemVybzsKK+WLviA8IGhvb2s7CivkuYMgPCB0aGVuOwor5oqsIDwgbGlmdDsKK+iLlCA8IG1vc3M7CivlhpIgPCByaXNrOwor5qqjIDwgbWFzdDsKK+mXrSA8IHNodXQ7CivnopcgPCBib3dsOwor5YmlIDwgcGVlbDsKK+ibiyA8IGVnZ3M7Civkv4MgPCB1cmdlOwor5p2wIDwgaGVybzsKK+iInyA8IGJvYXQ7Civov58gPCBsYXRlOwor6LWWIDwgcmVseTsKK+mnkiA8IGNvbHQ7CivpprQgPCB0YW1lOwor6IadIDwga25lZTsKK+aLliA8IGRyYWc7CivmmI8gPCBkdXNrOwor5oiSIDwgd2FybjsKK+mhtSA8IHBhZ2U7CivkupUgPCB3ZWxsOwor6ISHIDwgcmliczsKK+S5jyA8IGxhY2s7Civog54gPCB3b21iOwor5qKoIDwgcGVhcjsKK+mFuCA8IHRhcnQ7CivmobYgPCBwYWlsOwor57upIDwgc3BpbjsKK+aTpiA8IHdpcGU7CivmrrcgPCBtYW55Owor6ICVIDwgcGxvdzsKK+aaliA8IHdhcm07CivplIEgPCBsb2NrOwor56CNIDwgaGFjazsKK+aFiCA8IGtpbmQ7CivnvrkgPCBzb3VwOwor6Z6tIDwgd2hpcDsKK+e+qCA8IGVudnk7CivmkqQgPCBvbWl0Owor5625IDwgY2hpcDsKK+adliA8IGNhbmU7CivpnLAgPCBoYWlsOwor5ruLIDwgZ3JvdzsKK+iwsSA8IGxpc3Q7CivkuJggPCBoaWxsOwor5p2GIDwgcG9sZTsKK+maiCA8IGNvdmU7CivnuoIgPCBlZGl0Owor5ZSJIDwgYWxhczsKK+esvCA8IGNhZ2U7CivnuaogPCBkcmF3Owor57mpIDwgcm9wZTsKK+efvyA8IG1pbmU7CivplZYgPCBkYXJ0Owor5YWGIDwgb21lbjsKK+aKqyA8IHdlYXI7CivlgLogPCBkZWJ0Owor5aChIDwgZm9ydDsKK+migiA8IGxhdWQ7CivntYYgPCBsb29wOwor6ZKJIDwgbmFpbDsKK+WThCA8IGNvYXg7Civpk4MgPCBiZWxsOwor5aWRIDwgZGVlZDsKK+aHkiA8IGxhenk7CivnjI4gPCBodW50Owor5pG6IDwgZm9sZDsKK+euiyA8IG5vdGU7CivmjbIgPCBjdXJsOwor56eDIDwgYmFsZDsKK+m4rSA8IGR1Y2s7CivlkLwgPCByb2FyOwor56q6IDwgcGVlcDsKK+WPoCA8IHBpbGU7CivpipEgPCBtaWxsOwor6YC4IDwgZmxlZTsKK+i0sSA8IG1lYW47Civni64gPCBsaW9uOwor5aauIDwgbWFpZDsKK+eqkSA8IGtpbG47Civmhb4gPCBsdXN0Owor56W3IDwgcHJheTsKK+i5hCA8IGhvb2Y7Civng6QgPCBiYWtlOwor5bCsIDwgbGltcDsKK+mAsSA8IHdlZWs7CivmgKAgPCBpZGxlOwor6IO2IDwgZ2x1ZTsKK+aisyA8IGNvbWI7CivllaQgPCBiZWVyOwor6YW/IDwgYnJldzsKK+aNoyA8IGh1bGw7CivlmaIgPCBtb2FuOwor56qfIDwgaG9sZTsKK+WFkSA8IGNhc2g7CivmsrggPCBib2lsOwor55i+IDwgcmFzaDsKK+WmniA8IGdpcmw7CivluJwgPCBmbGFnOwor6JW+IDwgYnVkczsKK+mThSA8IGxlYWQ7CivplKMgPCBnb25nOwor5ZemIDwgc3VjazsKK+i9tCA8IGF4bGU7CivmtpUgPCB0ZWFyOwor5ZCGIDwgYmF3bDsKK+iBiyA8IGRlYWY7Civli58gPCBsZXZ5Owor55qCIDwgc29hcDsKK+ifuSA8IGNyYWI7CivllKAgPCBjaGF0Owor5ZWDIDwgZ25hdzsKK+e+lCA8IGxhbWI7CivplIggPCBydXN0Owor6IWTIDwgY2FsZjsKK+mqoSA8IG11bGU7CivphocgPCByaWNoOwor57qsIDwgd29vZjsKK+ibpCA8IGNsYW07CivlkbEgPCB3YWlsOwor5oiOIDwgYXJtczsKK+iUvCA8IGx1c2g7CivnpIEgPCByZWVmOwor6ZepIDwgYm9sdDsKK+i3myA8IGxhbWU7CivlgYwgPCB0aHVzOwor566NIDwgaG9vcDsKK+ifoCA8IGNvaWw7CivmjoIgPCBoZWZ0Owor6YGQIDwgYWZhcjsKK+WQoCA8IGJhcms7Civom74gPCBtb3RoOwor6ICYIDwgd2VlZDsKK+ifviA8IHRvYWQ7CivnrY8gPCByYWZ0Owor6bKkIDwgY2FycDsKK+iKiyA8IHRhcm87CivpuaogPCB3cmVuOwor6JyVIDwgbW9sdDsKK+eEiiA8IHdlbGQ7CivogJkgPCByYWtlOwor57yEIDwgc2VhbDsKK+a8qSA8IGVkZHk7CivppbUgPCBiYWl0Owor6LCRIDwgamVlcjsKK+mijyA8IGNoaW47Civoiq4gPCB0aW55Owor55KoIDwgZ2VtczsKK+aztSA8IHB1bXA7CivosYwgPCBwZWFzOwor5aCRIDwgbW9hdDsKK+eWtSA8IGZsYXc7CivmpoggPCBwYWxtOwor6ayDIDwgbWFuZTsKK+WSnSA8IGhpc3M7CivpgosgPCByYWdzOwor6IOkIDwgaGVpcjsKK+eylSA8IGxlZXM7CivmjJ4gPCBmbG9nOwor6ZWrIDwgbGFtcDsKK+mYhCA8IGxvdHM7CivplIwgPCB6aW5jOwor5ZaZIDwgYmVhazsKK+iCmyA8IGFudXM7Civnl4IgPCBzY2FiOwor6biiIDwga2l0ZTsKK+i9rSA8IHlva2U7CivmtLUgPCB0cnVlOwor5rOFIDwgc3dpbTsKK+efviA8IGFsdW07CivomqkgPCB3b3JtOwor6bi3IDwgaGF3azsKK+iAiyA8IGFnZWQ7CivlnaggPCBsdW1wOwor55axIDwgYWNuZTsKK+eIqCA8IG92ZW47Civmi4ogPCBzbGFwOwor6aqfIDwgZ2VsZDsKK+WcuSA8IHRvbWI7CivpvoggPCBndW1zOwor6ZiLIDwgZmV1ZDsKK+mFsCA8IGFjeWw7CivnlqMgPCB3YXJ0Owor56mRIDwgZmFybTsKK+ekuyA8IGN1bHQ7CivkvaQgPCBrYXdhOwor6bq4IDwgYnJhbjsKK+iPliA8IGlyaXM7Civlq7EgPCBsYWR5Owor6LCdIDwgYnJhZzsKK+awliA8IG5lb247Civot5YgPCBzb2xlOwor6JqLIDwgZ25hdDsKK+WBviA8IHJ1aW47CivnlpIgPCBzaWNrOwor5ZmNIDwgY2hldzsKK+a0syA8IGRhbXA7CivngrEgPCBzb290Owor6IaqIDwgcG9yazsKK+e7siA8IGNvcmQ7CivlroAgPCByb29mOwor5bi26ZyyIDwgZGV3eTsKK+iWhOWRvSA8IFwodXN1Owor5Yqf57i+IDwgZmVhdDsKK+aatOS6giA8IHJpb3Q7CivniJvms6UgPCBvb3plOwor5pel5pyfIDwgZGF0ZTsKK+WnqOWqvSA8IGF1bnQ7CivkvIrmi4nlhYsgPCBpcmFxOwor5bm96LC3IDwgZGVsbDsKK+aVmeeahyA8IHBvcGU7CivlkJHkuIsgPCBkb3duOwor6YCf6KGMIDwgcnVzaDsKK+acieiDveWKmyA8IGFibGU7CivpgJnoo6EgPCBoZXJlOwor57y65Y+jIDwgbmljazsKK+WOn+WtkCA8IGF0b207Civni4LlkKAgPCBob3dsOwor5b+D5oOFIDwgbW9vZDsKK+mHjuWFlCA8IGhhcmU7Civln7rph5EgPCBmdW5kOwor5Z+D57Gz54i+IDwgZW1pcjsKK+efs+eJhyA8IHNsYWI7CivlkpbllaHppKggPCBjYWZlOwor5Yaw6Y6uIDwgaWNlZDsKK+eGvueGsSA8IGdsb3c7Civnn7PngbAgPCBsaW1lOwor55qu6Z6tIDwgbGFzaDsKK+WGt+mFtyA8IGdyaW07CivnoazluaMgPCBjb2luOwor5Yed6KaWIDwgZ2F6ZTsKK+aVmea0viA8IHNlY3Q7Civlhazpm54gPCBjb2NrOwor6KeS6ImyIDwgcm9sZTsKK+e6luW6piA8IHNpemU7CivlpYnmib8gPCBmYXduOwor6Zyy6b2S6ICM56yRIDwgZ3JpbjsKK+iqsuaWhyA8IHRleHQ7CivplbfpnbQgPCBib290Owor54mi5Zu6IDwgZmlybTsKK+eZvumdiCA8IGxhcms7CivpgJrooYznqIUgPCB0b2xsOwor546J6JyA6buNIDwgY29ybjsKK+mAj+e0hSA8IHJvc3k7Civmlbjmk5ogPCBkYXRhOwor6Kmp5q2MIDwgcG9lbTsKK+Wwj+avm+ifsiA8IHNsdWc7CivmqILpmoogPCBiYW5kOwor5rCj5ZGzIDwgb2RvcjsKK+eEoeemriA8IHJ1ZGU7Civpg73luIIgPCBjaXR5Owor6KW/6JaEIDwgY2FrZTsKK+acgOS4u+imgSA8IG1haW47Civpm6rmkqwgPCBzbGVkOwor6YGo5ri4IDwgcm9hbTsKK+avkuWusyA8IGJhbmU7CivnjLbku5blt54gPCB1dGFoOwor57Sw6IOeIDwgY2VsbDsKK+WNkeWKoyA8IGJhc2U7Civlvqnljp8gPCBoZWFsOwor5Yil55qEIDwgZWxzZTsKK+WFrOixrCA8IGJvYXI7Civoqr/lrZAgPCB0dW5lOwor55y855yLIDwgc29vbjsKK+mdouWFtyA8IG1hc2s7CivlvKflvaIgPCBhcmNoOwor5L2/5Y+X5YK3IDwgaHVydDsKK+eYpumVtyA8IHNsaW07CivoirHpgoogPCBsYWNlOwor5aGr5ru/IDwgY3JhbTsKK+irvuS6niA8IG5vYWg7CivlpJblpZcgPCBjb2F0Owor6ZW36KWqIDwgaG9zZTsKK+eri+aWuemrlCA8IGN1YmU7Civplbfooo0gPCBnb3duOwor5by35aemIDwgcmFwZTsKK+eFp+aWmSA8IHRlbmQ7CivmjqHpgpEgPCBmaWVmOwor5o6g6YGOIDwgZmxpdDsKK+eBsOiJsiA8IGdyYXk7Civnmb3pqqjpoIIgPCBjb290Owor57Sw55yLIDwgcGVlcjsKK+m7tiA8IG1vbGU7CivopKroibIgPCBmYWRlOwor6bqaIDwgYnVjazsKK+mBqeaHiSA8IHN1aXQ7CivpuowgPCBzdGFnOwor6bqDIDwgdGlsbDsKK+m5hiA8IG15bmE7CivkuIDop5LpioDluaMgPCBkaW1lOwor5Ymd5o6JIDwgcGFyZTsKK+mDteS7tiA8IG1haWw7CivnnpHmg7MgPCBtdXNlOwor6YGK5oiyIDwgZ2FtZTsKK+evgOm7niA8IG5vZGU7CivpqK8gPCBsb3VkOwor6ae9IDwgZ3JleTsKK+aNsui7uCA8IHJlZWw7CivppYwgPCBmZWVkOwor5pWj5Ye6IDwgc2hlZDsKK+mjoSA8IG1lYWw7Civlt6LnqbQgPCBsYWlyOwor5rSL5aiD5aiDIDwgZG9sbDsKK+mYv+abvCA8IG9tYW47Civlu6DlrZAgPCB5YXJkOwor6Lqy6YG/IDwgc2h1bjsKK+eGseWKmyA8IGhlYXQ7CivpmJ4gPCB2ZWluOwor5LiL5LiA5qyhIDwgbmV4dDsKK+a3uum7g+iJsiA8IGJ1ZmY7Civpl4YgPCBib3NzOwor57C96Ki8IDwgdmlzYTsKK+mztOWPqyA8IGhvb3Q7CivplakgPCBwaWNrOwor6ZWVIDwgZnVzZTsKK+mRoiA8IGZpbGU7CivpkKkgPCBsZW5zOwor5pS25YmyIDwgcmVhcDsKK+e2suWtlCA8IG1lc2g7Civpm5zkuoIgPCBtZXNzOwor5o6J6JC9IDwgZmxvcDsKK+mjsumjn+eZgumkiiA8IGRpZXQ7CivoqankurogPCBiYXJkOwor5aSn6KKL5a2QIDwgc2FjazsKK+ihqOixoSA8IGlkZWE7CivoiJLpgakgPCBjb3p5Owor6Iux55WdIDwgYWNyZTsKK+atpeS8kCA8IHBhY2U7CivovZcgPCBmYWlsOwor5o6l57irIDwgc2VhbTsKK+WFrOeJmyA8IGJ1bGw7CivnspfnoIIgPCBncml0Owor5YWs54i1IDwgZHVrZTsKK+i3vCA8IGJlbnQ7Civlh7rnp5/ou4ogPCB0YXhpOwor6LeyIDwgaG9vZDsKK+iPnOWWriA8IG1lbnU7CivmqavmqJEgPCBiZWFtOwor6LO1IDwgZ2lmdDsKK+ihk+iqniA8IHRlcm07CivliZvli4EgPCBib2xkOwor6KGa6KGVIDwgbGFuZTsKK+iJvue1qCA8IG1veGE7CivoqqcgPCBodWdlOwor6KedIDwgZ29yZTsKK+WFiOimi+iAhSA8IHNlZXI7CivoirHnk7YgPCB2YXNlOwor6KCtIDwgYmVlczsKK+apn+aZuiA8IHRhY3Q7Civlgr7ogb0gPCBoYXJrOwor6J6JIDwgd2FzcDsKK+mQmOmgrSA8IGhvdXI7CivomJIgPCBcOjE0MzsKK+iXnyA8IHZpbmU7CivngrjlvYggPCBib21iOwor5Zue6IGyIDwgZWNobzsKK+iTqyA8IGRvY2s7Civop6Plh40gPCB0aGF3Owor6JCcIDwgYzVoODsKK+iPviA8IGJlZXQ7Civplbfmp40gPCBwaWtlOwor5YWt5pyIIDwganVuZTsKK+WDseeUqCA8IGhpcmU7CivlnJPnm6QgPCBkaXNrOwor5Zyw542EIDwgaGVsbDsKK+eIteWjq+iIniA8IGpheno7CivpmL/lgJEgPCBhbWVuOwor6IW2IDwgbWVhdDsKK+iEsiA8IHVyZWE7Civot6/pgoogPCBjdXJiOwor6KaW5ZyWIDwgdmlldzsKK+aSh+WOuyA8IHNraW07CivovrLlpbQgPCBzZXJmOwor6Im+5ruL55eFIDwgYWlkczsKK+W4s+WWriA8IGJpbGw7CivojYnlnaogPCBsYXduOwor5pC25aWqIDwgc25hcDsKK+mbu+eHiOazoSA8IGJ1bGI7Civnq4EgPCBib3JlOwor56mcIDwgcmljZTsKK+emuCA8IHJ1bXA7Civlg7nmrL4gPCBjb3N0Owor5qij5byPIDwgdHlwZTsKK+aQjeWusyA8IGhhcm07CivmqKHlvI8gPCBtb2RlOwor55uf5Y+LIDwgYWxseTsKK+efuyA8IHRvaWw7Civnlrznl5sgPCBhY2hlOwor5qiT5buCIDwgbG9mdDsKK+ebrueequWPo+WRhiA8IHN0dW47CivlsYHoqbEgPCBzaGl0Owor6Y+I6LevIDwgbGluazsKK+eMtuWkp+abuCA8IGp1ZGU7CivkvY7pn7MgPCBiYXNzOwor55So6IazIDwgZGluZTsKK+eskeipsSA8IGpva2U7CivlsbHnvoogPCBnb2F0Owor56u26LO9IDwgcmFjZTsKK+esqOibiyA8IGZvb2w7Civlsqnnn7MgPCByb2NrOwor55Wl56K8IDwgY29kZTsKK+a2tCA8IGRhdWI7CivovIPlsJEgPCBsZXNzOwor55m+5ZCIIDwgbGlseTsKK+iFsOiCiSA8IGxvaW47CivlnLDluLYgPCB6b25lOwor6Zaj5LiLIDwgc2lyZTsKK+m+jemqqCA8IGtlZWw7CivlpKfpoK3ph5ggPCB0YWNrOwor5L+d576FIDwgcGF1bDsKK+iJsuW9qSA8IHRpbnQ7Civmqo0gPCBpbGV4Owor5qe5IDwgc3BhcjsKK+aNsuW4tiA8IHRhcGU7CivmpJEgPCBvdmFsOwor6Y2N6YeRIDwgZ2lsZDsKK+aMh+aomSA8IG5vcm07CivooZ3mkp4gPCBkYXNoOwor5p+jIDwgc2lsbDsKK+Wyqea8vyA8IGxhdmE7Civmn4IgPCBoZWxtOwor5o+h5L2PIDwgZ3JpcDsKK+acmCA8IHdhbmU7CivlnJPlsYvpoIIgPCBkb21lOwor5pOrIDwgdHVjazsKK+etlueVpSA8IHBsb3Q7CivmkbIgPCByYXplOwor5pCYIDwgcHJvcDsKK+S6num6uyA8IGZsYXg7Civmjp4gPCBlYXN5Owor5ZyI5aWXIDwgdHJhcDsKK+mbmeiDnuiDjiA8IHR3aW47CivnsYPlnIggPCByaW5nOwor6Ia95rGBIDwgZ2FsbDsKK+aGsCA8IHdpbHk7CivmgLMgPCB3aWxkOwor5o6h5LyQIDwgZmVsbDsKK+S4gOWhium6tSA8IGxvYWY7Civpm7vmqZ/lj4rpm7vlrZDlrbjlt6XnqIvluKvoga/lkIjmnIMgPCBpZWVlOwor5YCf5qy+IDwgbG9hbjsKK+WIsO+5jeS5i+S4iiA8IG9udG87Civoopblj6MgPCBjdWZmOwor5YWo6auU5Lq65ZOhIDwgY3JldzsKK+S9v+eUqOiAhSA8IHVzZXI7Civnp5jpra8gPCBwZXJ1Owor5YOn5L62IDwgbW9uazsKK+WtuyA8IGxhc3Q7Civmi5bmi4kgPCBoYXVsOwor5aqKIDwgc3RhcjsKK+WouCA8IHVnbHk7CivpgaDnqIvnm6PmjqcgPCBybW9uOwor5Zyo77mN5LmL5LitIDwgYW1pZDsKK+WcjeS9jyA8IGdpcmQ7Civlp6QgPCBtYXRlOwor5qON5qOSIDwgY2x1YjsKK+aLjeaJkyA8IGZsYXA7Civpo77ph5ggPCBzdHVkOwor5YGP5beuIDwgYmlhczsKK+mqsOWtkCA8IGRpY2U7CivogZboqakgPCBoeW1uOwor5aSW5bCP6IW/IDwgc2hpbjsKK+mLquiorSA8IHBhdmU7CivlkL0gPCAnJ29tJyc7Civom4vnmb3nn7MgPCBvcGFsOwor5p6v6JCOIDwgd2lsdDsKK+WInCA8IGNob3A7CivliJMgPCB0cmltOwor5LiA5YiG6YyiIDwgY2VudDsKK+eWsuWApiA8IHRpcmU7Civos6Log70gPCBzYWdlOwor5rW36LuNIDwgbmF2eTsKK+iHreWRsyA8IGZ1bWU7CivkvpwgPCBsaWVzOwor5LyxIDwgdGhvdTsKK+WBtuWDjyA8IGlkb2w7CivlsI/otbfph43mqZ8gPCBqYWNrOwor6Leo5bqmIDwgc3BhbjsKK+SzvCA8IGd1bGw7CivmnpzogokgPCBwdWxwOwor5LG0IDwgdHVuYTsKK+SvlSA8IGJvbnk7Civlkb3pgYsgPCBmYXRlOwor5a2X56+AIDwgYnl0ZTsKK+e+hemmrCA8IHJvbWU7CivogIPoqaYgPCBleGFtOwor5Ke7IDwgZG92ZTsKK+WAjeWhlCA8IGJldGE7CivlnJPpjJDpq5QgPCBjb25lOwor5oKg6ZaSIDwgZWFzZTsKK+S8r+eItSA8IGVhcmw7CivlkajpgYogPCB0b3VyOwor5KGAIDwgbnVkZTsKK+SgjyA8IGZlZXQ7Civkmr0gPCBuZXdzOwor55C155C2IDwgbHV0ZTsKK+SZiiA8IGFyaWQ7CivohqDljbcgPCBmaWxtOwor5JatIDwgZ3J1YjsKK+WwiOeUqOmbhuaIkOmbu+i3ryA8IGFzaWM7CivkkrogPCBjbGF5Owor5ZOB6ISrIDwgcGludDsKK+Wwj+WztiA8IGlzbGU7CivoloTpnKcgPCBtaXN0Owor5L2V5pmCIDwgd2hlbjsKK+WPo+mgrSA8IG9yYWw7Civku6Tni4AgPCB3cml0Owor5IGGIDwgZXllczsKK+SBhSA8IHJhZ2U7CivolajpoZ4gPCBmZXJuOwor5ICAIDwgY3VwczsKK+O/mSA8IGZ1bGw7CivjvrkgPCBsZWFuOwor5oqT5L2PIDwgZ3JhYjsKK+icguicnOmFkiA8IG1lYWQ7CivmoLjlv4MgPCBjb3JlOwor5rG66aylIDwgZHVlbDsKK+ixhuiFkCA8IHRvZnU7CivlkpLnvbUgPCBkYW1uOwor47K7IDwgc3VuazsKK+OytCA8IG1pbmQ7CivjspwgPCBydWdzOwor47CrIDwgZ2xhZDsKK+OwnyA8IGhvcGU7CivjrqQgPCBwaW5lOwor6JyC5oi/IDwgaGl2ZTsKK+OukiA8IHdvb2Q7Civjq7EgPCBtaWxkOwor6aas5buEIDwgYmFybjsKK+S6nueVtiA8IGFkYW07Civnv4XohoAgPCB3aW5nOwor6YeR5bGs6JaE54mHIDwgZm9pbDsKK+S8iuaclyA8IGlyYW47CivkuLvnvqkgPCBcLWlzbTsKK+m6peiKvSA8IG1hbHQ7Civni7nosLcgPCBnbGVuOwor54mh6bm/IDwgaGFydDsKK+WcqOS5i+S4iiA8IG92ZXI7CivlkI3oqZ4gPCBub3VuOwor5a2Y5qC5IDwgc3R1YjsKK+mgreiFpua4healmiA8IHNhbmU7CivjmqcgPCBhZ2lsOwor5Y+y6KmpIDwgZXBpYzsKK+iytOWppuS6uiA8IGRhbWU7CivlrrblnJIgPCBob21lOwor54mb6aOyIDwgZ3VscDsKK+izuuW+lyA8IGVhcm47CivosY7nkLQgPCBoYXJwOwor5LiA576kIDwgZ2FuZzsKK+mfs+iqvyA8IHRvbmU7Civmnb/mop0gPCBsYXRoOwor6LK05pePIDwgbG9yZDsKK+WTiOasoCA8IHlhd247CivosazmsrkgPCBsYXJkOwor6Yyr5a6JIDwgemlvbjsKK+eNteeJqSA8IHByZXk7CivntIXlr7bnn7MgPCBydWJ5Owor54qv6KaPIDwgZm91bDsKK+i7n+acqOWhniA8IGNvcms7Civmsrnoho8gPCBiYWxtOwor54+t5oi/IDwgamFpbDsKK+aWkem7niA8IHNwb3Q7Civmta7mqJkgPCBidW95Owor5a625LyZIDwgY2hhcDsKK+W+jOmdoiA8IHJlYXI7CivlpKnptZ0gPCBzd2FuOwor5pW06b2KIDwgdGlkeTsKK+WcqOawtOatpeihjCA8IHdhZGU7Civmr43ppqwgPCBtYXJlOwor5a2X5Z6LIDwgZm9udDsKK+WuieWFqCA8IHNhZmU7CivnsonntIXoibIgPCBwaW5rOwor5a2k5ZauIDwgbG9uZTsKK+acqOahtiA8IGNhc2s7Civpo77luLYgPCBzYXNoOwor6ICB5pK+IDwgbGFvczsKK+acpuacpyA8IGJsdXI7CivoqrLpoYwgPCB0YXNrOwor54+g5a2QIDwgYmVhZDsKK+WRvOWRvOiBsiA8IHdoaXI7Civlv6vmraXot5EgPCB0cm90Owor5rOi54m5IDwgYmF1ZDsKK+mHjuemvSA8IGZvd2w7CivmmojnnKkgPCBkYXplOwor6Kqq6KyK6ICFIDwgbGlhcjsKK+afkOS6myA8IHNvbWU7CivlvLfpoqggPCBnYWxlOwor6bq75pyoIDwgbnVtYjsKK+mZquWvqeWcmCA8IGp1cnk7Civpn4HnuakgPCByZWluOwor5ZCm5rG6IDwgdmV0bzsKK+aymeeZvCA8IHNvZmE7Civku5blgJEgPCB0aGV5Owor5rOh5rKrIDwgZm9hbTsKK+eJm+iCiSA8IGJlZWY7CivkuIPmnIggPCBqdWx5Owor5LiA5pyNIDwgZG9zZTsKK+ixhuWtkCA8IGJlYW47Civlqr3lqr0gPCBtYW1hOwor5pWP6YqzIDwga2VlbjsKK+ayueayuSA8IG9pbHk7CivljIXoo50gPCBwYWNrOwor5rGh55eVIDwgYmxvdDsKK+eMm+aSniA8IHNsYW07CivpnaLnvakgPCB2ZWlsOwor6Z6t55eVIDwgd2VsdDsKK+S6nuS4gSA8IGFkZW47CivnjajlpY8gPCBzb2xvOwor5rKQ5rW0IDwgYmF0aDsKK+acgOWlvSA8IGJlc3Q7CivoqpPoqZ4gPCBvYXRoOwor5YuV6KmeIDwgdmVyYjsKK+mrmOeIvuWkq+eQgyA8IGdvbGY7CivmmrTlvpIgPCB0aHVnOwor5rG95rC0IDwgc29kYTsKK+efreilqiA8IHNvY2s7CivlvJXorYkgPCBjaXRlOwor6YiV5bi2IDwgYm9uZDsKK+WJjemdoiA8IGZvcmU7CivpmaPpoqggPCBndXN0Owor5oOh5YqjIDwgdmlsZTsKK+avm+e3miA8IHlhcm47CivljJfntIQgPCBuYXRvOwor6YeN5pOKIDwgYmFuZzsKK+atpeiqvyA8IGdhaXQ7CivpgJrpoqggPCBhaXJ5Owor6K6K5o+bIDwgdmFyeTsKK+iSvOeZvSA8IHBhbGU7CivmsLTmu7QgPCBkcm9wOwor57mU5biD5qmfIDwgbG9vbTsKK+mbu+ipsemItOiBsiA8IGJ1eno7CivmlLbol48gPCBrZWVwOwor6Zu757eaIDwgd2lyZTsKK+S4gOWQuSA8IHB1ZmY7Civmr5vnmq4gPCBwZWx0Owor6YGL6LK7IDwgZmFyZTsKK+WjgeiZsSA8IHRpY2s7CivmkqXplosgPCBwb2tlOwor6L+36ZmjIDwgbWF6ZTsKK+iXpeS4uCA8IHBpbGw7CivlhYnnupbliIbkvYjmlbjmk5rmjqXlj6MgPCBmZGRpOwor6Zyy54efIDwgY2FtcDsKK+avkueJqSA8IHBlc3Q7CivkuIAgPCBvbmU7CivkurogPCBtYW47CivmiJEgPCBvdXI7CivlpKcgPCBiaWc7CivkuIogPCB0b3A7CivkvaAgPCB5b3U7Civlj68gPCBtYXk7CivlpbkgPCBzaGU7CivlpKkgPCBza3k7CivogIwgPCBhbmQ7CivnhLYgPCB5ZXM7CivmsqEgPCBub3Q7Civml6UgPCBzdW47CivlvakgPCBodWU7CivljYEgPCB0ZW47CivnlKggPCB1c2U7CivnnLwgPCBleWU7Civop4EgPCBzZWU7CivogIEgPCBvbGQ7CivkuKQgPCB0d287CivlpJYgPCBvdXQ7Civms5UgPCBsYXc7CivngrkgPCBkb3Q7Civnm5wgPCByb2I7CivlhbYgPCBoaXM7CivlhL8gPCBzb247CivmlrAgPCBuZXc7CivluoogPCBiZWQ7CivnmoYgPCBhbGw7CivmtbcgPCBzZWE7CivlsJEgPCBmZXc7CivluL0gPCBoYXQ7Civlj6sgPCBjcnk7CivmrbsgPCBkaWU7CivmlL4gPCBwdXQ7Civku4ogPCBub3c7CivotaQgPCByZWQ7CivnlaIgPCBlbmQ7CivmiJggPCB3YXI7Civos7wgPCBidXk7Civnk7YgPCBqdWc7Civor7cgPCBhc2s7CivkuqQgPCBtaXg7CivlkIMgPCBlYXQ7Civov5AgPCBydW47CivnvZEgPCBuZXQ7Civpo54gPCBmbHk7CivnjL8gPCBhcGU7CivnjKsgPCBjYXQ7CivnjKogPCBwaWc7CivlnZAgPCBzaXQ7CivorIIgPCBzYXk7Civni5cgPCBkb2c7CivliIcgPCBjdXQ7CivoqqQgPCBlcnI7Civng60gPCBob3Q7CivniZsgPCBjb3c7CivkvY4gPCBsb3c7Civku40gPCB5ZXQ7CivohJogPCBsZWc7CivlpYggPCBidXQ7CivmjpIgPCByb3c7Civlo54gPCBiYWQ7Civmub4gPCBiYXk7CivloqggPCBpbms7CivooZMgPCBhcnQ7Civmv5ggPCBtdWQ7Civmv5UgPCB3ZXQ7CivpnLIgPCBkZXc7CivpvaIgPCBhZ2U7CivonZkgPCBiYXQ7CivonYsgPCB3YXg7CivpvKAgPCByYXQ7CivonIIgPCBiZWU7CivmkYcgPCB3YWc7CivmsrkgPCBvaWw7Civol4kgPCBtYXQ7CivmtrIgPCBzYXA7Civolq8gPCB5YW07CivogLMgPCBlYXI7CivllosgPCBuYWc7CivllZwgPCBzaXA7Civlk4AgPCBzYWQ7CivlhrAgPCBpY2U7Civmna8gPCBjdXA7CivmsKMgPCBhaXI7CivokIwgPCBidWQ7CivpgJQgPCB3YXk7CivojLYgPCB0ZWE7CivljbUgPCBlZ2c7Civmkq0gPCBzb3c7Civoh4IgPCBhcm07CivmrLcgPCBzb2I7CivljJogPCBib3g7CivmkakgPCBydWI7CivlhqAgPCBjYXA7CivoirggPCBydWU7CivnvJggPCBoZW07Civmn5MgPCBkeWU7Civohr8gPCBwdXM7CivmprsgPCBjb3Q7CivlhoYgPCB5ZW47CivohZAgPCByb3Q7CivohIIgPCBmYXQ7Civmj7QgPCBhaWQ7Civlk7wgPCBodW07CivlgbUgPCBzcHk7CivpoY4gPCBqYXc7CivnvZAgPCBqYXI7CivmjbcgPCB3aW47CivpnKcgPCBmb2c7Civkub4gPCBkcnk7CivnvJ0gPCBzZXc7CivmipogPCBwYXQ7CivmjJYgPCBkaWc7CivmiYcgPCBmYW47CivkuZ4gPCBiZWc7CivotYwgPCBiZXQ7CivmrKAgPCBvd2U7CivmsJsgPCBnYXM7Civnt6AgPCB0aWU7CivngpIgPCBmcnk7CivplKEgPCB0aW47CivlnZEgPCBwaXQ7CivmkpUgPCByaXA7Civno5UgPCBoaXQ7CivosI4gPCBsaWU7CivpipwgPCBiaXQ7CivotYsgPCB0YXg7Civlm4ogPCBiYWc7CivmkIIgPCBodWc7CivlvJMgPCBib3c7CivlupAgPCBodXQ7Civmr68gPCBydWc7CivpkqUgPCBrZXk7CivmlqcgPCBheGU7CivouaYgPCBob3A7Civov6IgPCBmYXI7CivomoIgPCBhbnQ7CivplIQgPCBob2U7CivmjYUgPCBqYWI7CivmoaggPCBvYXI7Civni7ggPCBmb3g7CivnjJYgPCBtYWQ7Civotr4gPCB0b2U7CivomLggPCBkaXA7CivnkKYgPCBnZW07CivnlbggPCBvZGQ7Civlna8gPCBkYW07Civps50gPCBlZWw7CivmgKkgPCBzaHk7Civpu6AgPCBzbHk7CivplJsgPCBhZHo7CivpuosgPCBlbGs7Civps40gPCBmaW47CivliI0gPCBtb3c7Civmn54gPCBvYWs7CivpnqMgPCB0YW47Civlg5YgPCBqb3k7Civnvp0gPCByYW07Civln6QgPCBhZGQ7Civnqbrnmb3pu54gPCBnYXA7CivmsYLmhJsgPCB3b287CivlkIzkvY0gPCBwYXI7CivngrrnlJrpurwgPCB3aHk7Civlj5fliLAgPCBnZXQ7Civlj6/ku6UgPCBjYW47CivphZLlu4ogPCBiYXI7CivnlLflranlrZAgPCBib3k7CivmtrLmmbbpoa/npLogPCBsY2Q7CivnoLTluIMgPCByYWc7CivlvLfmi4kgPCB0dWc7CivnhKHoirHmnpwgPCBmaWc7CivntpPnlLEgPCB2aWE7CivoqK3ms5UgPCB0cnk7CivlpoLkvZUgPCBob3c7CivnnLznlYwgPCBrZW47CivlubznjbggPCBjdWI7Civpm6LlrZAgPCBpb247CivospPlj6vogbIgPCBtZXc7CivnhKbmsrkgPCB0YXI7CivpgIDmva4gPCBlYmI7CivpvaMgPCBhY3Q7Civngavohb8gPCBoYW07CivpuYsgPCBlbXU7CivpmbDmmpcgPCBkaW07CivnuL3lkowgPCBzdW07CivptJ4gPCBvd2w7CivpspUgPCByb2U7CivprLcgPCBwb3Q7CivprIYgPCBsYXg7Civpq6IgPCB3aWc7CivnoI3kvJAgPCBoZXc7CivliLrmjqIgPCBwcnk7CivluLjmmKXol6QgPCBpdnk7Civpka8gPCBhd2w7Civng4/lkIjkuYvnnL4gPCBtb2I7CivliY3lpJUgPCBldmU7CivloIXmnpwgPCBudXQ7CivovZEgPCBydXQ7CivouLYgPCBwYXc7CivlhYjnlJ8gPCBzaXI7CivmrITlnIggPCBwZW47CivlsI/nsr7pnYggPCBlbGY7CivopqrlsawgPCBraW47CivntKLlhbfoo53nva4gPCByaWc7Civmi5bou4ogPCB0b3c7CivloavlhYUgPCBwYWQ7CivlhazlhbHmsb3ou4ogPCBidXM7CivokrQgPCBwb2Q7CivogIHlpKnniLogPCBnb2Q7Civpm7bpu57lha0gPCAwXC42Owor5qiF5qi5IDwgZmlyOwor55Sc6YWSIDwgcnVtOwor576HIDwgaW5uOwor5Ye65YO5IDwgYmlkOwor5YKz55yfIDwgZmF4Owor6Ium5oOxIDwgYWlsOwor5YWt6bue5YWtIDwgNlwuNjsKK+mqqOe9iCA8IHVybjsKK+i7n+avmyA8IGZ1cjsKK+egsiA8IGd1bjsKK+eZmSA8IGlsbDsKK+i8leaJkyA8IHRhcDsKK+Wwj+iyuyA8IHRpcDsKK+amhuaouSA8IGVsbTsKK+a9miA8IGdheTsKK+W3peS9nCA8IGpvYjsKK+iCi+mqqCA8IHJpYjsKK+aljiA8IHBlZzsKK+aiqSA8IGhvZDsKK+mrlOiCsumkqCA8IGd5bTsKK+adhSA8IHR1YjsKK+S4g+m7nuS6lCA8IDdcLjU7CivkuIPpu57kuowgPCA3XC4yOwor5Zyw5ZyWIDwgbWFwOwor5pS1IDwgcmFwOwor5YuV54mp5ZySIDwgem9vOwor6ayG5bybIDwgc2FnOwor6aSh6aSFIDwgcGllOwor5ZyW5YOP5LqS5o+b5qC85byPIDwgZ2lmOwor5bCE57eaIDwgcmF5Owor6Yu46ZaLIDwgc2F3Owor5p6c6YasIDwgamFtOwor5ZyN5YWcIDwgYmliOwor5aybIDwgYXB0Owor54y25aSq5Lq6IDwgamV3Owor5ouW5oqKIDwgbW9wOwor5LmI6bueIDwgYWNlOwor5bCP54uXIDwgcHVwOwor6LKo6LuKIDwgdmFuOwor5ZyT5b2i5pyo5p2QIDwgbG9nOwor6bue6aCtIDwgbm9kOwor5bCN5rqWIDwgYWltOwor5Zm05bCEIDwgamV0Owor5YKi5LyZIDwgZ3V5Owor5LmiIDwgbGlkOwor6ami5a2QIDwgYXNzOwor6aOb6J+yIDwgYnVnOwor562G5bCWIDwgbmliOwor5KGcIDwgY2FyOwor6bql6YWSIDwgYWxlOwor5L+u5aWzIDwgbnVuOwor5J2GIDwgaG9nOwor5pyD6LK7IDwgZHVlOwor5Lm+6I2JIDwgaGF5Owor5IyiIDwgcmF3Owor5IueIDwgd2ViOwor5IqRIDwgcGF5Owor5bGi5YqgIDwgcGx5Owor5Lmd5LiD5bm0IDwgJyc5NzsKK+Wck+W9oum6teWMhSA8IGJ1bjsKK+WuieaUviA8IGxheTsKK+OcuCA8IHNpbjsKK+ioiOS5mOi7iiA8IGNhYjsKK+mgjOipniA8IG9kZTsKK+iEq+awp+aguOezluaguOmFuCA8IGRuYTsKK+adnOadvuWtkOmFkiA8IGdpbjsKK+S9leS6uiA8IHdobzsKK+eHlem6pSA8IG9hdDsKK+avjembniA8IGhlbjsKK+ekpuefsyA8IG9yZTsKK+aAlee+niA8IGNveTsKK+S7u+S9lSA8IGFueTsKK+a1geaEnyA8IGZsdTsKK+WTjuWWsiA8IGhleTsKK+aWueiInyA8IGFyazsKK+eIhuiBsiA8IHBvcDsKK+aUtuiyuyA8IGZlZTsKK+avjee+iiA8IGV3ZTsKK+Wwj+S8meWtkCA8IGxhZDsKK+WIpemHnSA8IHBpbjsKK+W5s+mNiyA8IHBhbjsKK+S4jSA8IG5vOwor5Li6IDwgZG87CivkuYsgPCAnJ3M7CivlvoMgPCBnbzsKK+S6jiA8IGluOwor5aaCIDwgaWY7CivmiJYgPCBvcjsKK+WugyA8IGl0Owor5ZKxIDwgdXM7Civlk58gPCBhaDsKK+WXqCA8IGhpOwor5b2dIDwgeWk7CivplLEgPCBvejsKK+mSlCA8IG1kOwor5LyyIDwgd2U7CivplaQgPCBwYTsKK+mVjiA8IG5wOwor6ZO5IDwgbHI7CivlkJHkuIrlnLAgPCB1cDsKK+mUvyA8IGVzOwor6ZSdIDwgdGM7CivplJUgPCBhYzsKK+WFieeinyA8IGNkOwor57mEIDwgYmU7Civns44gPCBtbTsKK+eyqCA8IGhtOwor57KBIDwga207CivnsbUgPCBkbTsKK+Wah+iBsiA8IGhvOwor56WCIDwgaGU7CivmiJHnmoQgPCBteTsKK+WXiCA8IG9oOwor5ZKBIDwgc287CivlhaEgPCBoZzsKK+WFniA8IG1nOwor5YWdIDwgZGc7CivmlqfpoK0gPCBheDsKK+S9mSA8IGk7CivmqLYgPCBjOwor5LiA5YCLIDwgYTsKK+aUv+W6nOapn+mXnOmWi+aUvuezu+e1seS6kumAo+e4veWJhyA+IGdvdmVybm1lbnRcLW9wZW5cLXN5c3RlbVwtaW50ZXJjb25uZWN0aW9uXC1wcm9maWxlOwor6Zu75qmf5Y+K6Zu75a2Q5a245bel56iL5bir6IGv5ZCI5pyDID4gaWVlZTsKK+Wci+mam+mbu+ipsembu+WgseirruipouWnlOWToeacgyA+IGludGVybmF0aW9uYWxcLWNvbnN1bHRhdGl2ZVwtY29tbWl0dGVlXC1mb3JcLXRlbGVwaG9uZVwtYW5kXC10ZWxlZ3JhcGg7CivpmL/kuI3kvobmj5BcLumYv+S4jemDveeGseilv+aPkCA+IGFiZHVsYWlkaVwtYW11ZHVyZXhpdGlcLVwoY2hhaXJtYW5cLW9mXC14aW5qaWFuZ1wtYXV0b25vbW91c1wtcmVnaW9uXCk7Civlj6/mk6blr6vlj6/nt6jnqIvnpYforoDlrZjlhLLlmaggPiBlcHJvbTsKK+Wci+mam+mbu+Wgsembu+ipseWSqOipouWnlOWToeacgyA+IGNjaXR0Owor6IC256mM5Z+6552j5pyr5LiW6IGW5b6S5pWZ5pyDID4gdGhlXC1jaHVyY2hcLW9mXC1qZXN1c1wtY2hyaXN0XC1vZlwtbGF0dGVyXC1kYXlcLXNhaW50czsKK+WNgeWEhOS9jeWFg+S7peWkque2sue1oeiBr+ebnyA+IGdpZ2FiaXRcLWV0aGVybmV0XC1hbGxpYW5jZTsKK+aqlOahiOi9iemAgeWtmOWPluWPiueuoeeQhiA+IGZpbGVcLXRyYW5zZmVyXCxcLWFjY2Vzc1wtYW5kXC1tYW5hZ2VtZW50Owor6Z2e5bCN56ix5byP5pW45pOa55So5oi257eaID4gYXN5bW1ldHJpY2FsXC1kaWdpdGFsXC1zdWJzY3JpYmVyXC1saW5lOwor6Ieo5pmC55qE5pys5Zyw566h55CG5o6l5Y+jID4gaW50ZXJpbVwtbG9jYWxcLW1hbmFnZW1lbnRcLWludGVyZmFjZTsKK+iBr+mCpumbu+S/oeS6pOmAmuWnlOWToeacgyA+IGZlZGVyYWxcLWNvbW11bmljYXRpb25zXC1jb21taXNzaW9uOwor6Zu76IWm6LyU5Yqp6Kit6KiI6IiH57mq5ZyWID4gY29tcHV0ZXJcLWFpZGVkXC1kZXNpZ25cLWFuZFwtZHJhd2luZzsKK+WFiee6luWIhuS9iOW8j+aVuOaTmuS7i+mdoiA+IGZpYmVyXC1kaXN0cmlidXRlZFwtZGF0YVwtaW50ZXJmYWNlOwor5YWJ57qW5YiG5pWj5byP6LOH5paZ5LuL6Z2iID4gZmliZXJcLWRpc3RyaWJ1dGVkXC1kYXRhXC1pbnRlcmZhY2U7Civmlbjmk5rpj4jot6/pgKPmjqXorZjliKXnorwgPiBkYXRhXC1saW5rXC1jb25uZWN0aW9uXC1pZGVudGlmaWVyOwor6Zu76IWm6IiH6Zu76Kmx57O757Wx5pW05ZCIID4gY29tcHV0ZXJcLXRlbGVwaG9ueVwtaW50ZWdyYXRpb247CivloZ7niL7ntq3kup7lhYvnvoXlnLDkup7oqp4gPiBzZXJib1wtY3JvYXRpYW5cLVwobGFuZ3VhZ2VcKTsKK+emgeatouaguOatpuWZqOippumpl+ainee0hCA+IG51Y2xlYXJcLXRlc3RcLWJhblwtdHJlYXR5Owor6ICB6aml5LyP5quq5b+X5Zyo5Y2D6YeMID4gXChsaXRcLlwpXC1hblwtb2xkXC1zdGVlZFwtaW5cLXRoZVwtc3RhYmxlXC1zdGlsbFwtYXNwaXJlc1wtdG9cLWdhbGxvcFwtMTAwMFwtbGk7CivkuI3lhaXomY7nqbTnhInlvpfomY7lrZAgPiBob3dcLWNhblwteW91XC1jYXRjaFwtdGlnZXJcLWN1YnNcLXdpdGhvdXRcLWVudGVyaW5nXC10aGVcLXRpZ2VyJydzXC1sYWlyOwor5q+U5LiK5LiN6Laz5q+U5LiL5pyJ5L2ZID4gZmFsbFwtc2hvcnRcLW9mXC10aGVcLWJlc3RcLWJ1dFwtYmVcLWJldHRlclwtdGhhblwtdGhlXC13b3JzdDsKK+WMl+Wkp+ilv+a0i+WFrOe0hOe1hOe5lCA+IHRoZVwtbm9ydGhcLWF0bGFudGljXC10cmVhdHlcLW9yZ2FuaXphdGlvblwtXChuYXRvXCk7CivkuI3ntpPkuIDkuovkuI3plbfkuIDmmbogPiB5b3VcLWNhbicndFwtZ2Fpblwta25vd2xlZGdlXC13aXRob3V0XC1wcmFjdGljZTsKK+W7uueri+ato+W8j+WkluS6pOmXnOS/giA+IGZvcm1hbGx5XC1lc3RhYmxpc2hcLWRpcGxvbWF0aWNcLXJlbGF0aW9uczsKK+eZvui2s+S5i+ifsuatu+iAjOS4jeWDtSA+IGFcLWNlbnRpcGVkZVwtZGllc1wtYnV0XC1uZXZlclwtZmFsbHNcLWRvd247CivlronlhajoiIfkuqTmj5vlp5Tlk6HmnIMgPiBzZWN1cml0aWVzXC1hbmRcLWV4Y2hhbmdlXC1jb21tdW5pY2F0aW9uOwor57ac5ZCI5pyN5YuZ5pW45L2N57ay57WhID4gaW50ZWdyYXRlZFwtc2VydmljZXNcLWRpZ2l0YWxcLW5ldHdvcms7CivmlbTpq5TmnI3li5nmlbjkvY3ntrLot68gPiBpbnRlZ3JhdGVkXC1zZXJ2aWNlc1wtZGlnaXRhbFwtbmV0d29yazsKK+ewoeWWrue2sue1oeeuoeeQhuWNlOitsCA+IHNpbXBsZVwtbmV0d29ya1wtbWFuYWdlbWVudFwtcHJvdG9jb2w7CivmlbTpq5TmlbjkvY3mnI3li5nntrLot68gPiBpbnRlZ3JhdGVkXC1zZXJ2aWNlXC1kaWdpdGFsXC1uZXR3b3JrOwor5YWs5YWx5Lqk5o+b6Zu76Kmx57ay6LevID4gcHVibGljXC1zd2l0Y2hlZFwtdGVsZXBob25lXC1uZXR3b3JrOwor6L+R5LmO5ZCM5q2l5pW45L2N6ZqO5bGkID4gcGxlc2lvY2hyb25vdXNcLWRpZ2l0YWxcLWhpZXJhcmNoeTsKK+aXpeacrOmbu+Wgsembu+ipseWFrOWPuCA+IG5pcHBvblwtdGVsZWdyYXBoXC1hbmRcLXRlbGVwaG9uZTsKK+W7o+aSreWSjOacquefpeacjeWLmeWZqCA+IGJyb2FkY2FzdFwtYW5kXC11bmtub3duXC1zZXJ2ZXI7Civnmb7lsLrmnYbpoK3mm7Tnm6HkuIDmraUgPiBtYWtlXC1zdGlsbFwtZnVydGhlclwtcHJvZ3Jlc3M7CivlnIvpmpvosqjluaPln7rph5HntYTnuZQgPiBpbnRlcm5hdGlvbmFsXC1tb25ldGFyeVwtZnVuZDsKK+WuouaItuapn+acjeWLmeWZqOeSsOWigyA+IGNsaWVudFwtc2VydmVyXC1lbnZpcm9uZW1lbnQ7Civpm7vlrZDpg7Xku7blgrPpgIHmnI3li5kgPiBcKGVcLVwpbWFpbFwtZGVsaXZlcnlcLXNlcnZpY2U7CivnlKjmiLbliLDntrLntaHnmoTmjqXlj6MgPiB1c2VyXC1uZXR3b3JrXC1pbnRlcmZhY2U7Civkup7mtLLoiIflpKrlubPmtIvlnLDljYAgPiBhc2lhXC1wYWNpZmljXC1yZWdpb247CivljYHlhITkvY3lhYPku6XlpKrntrLntaEgPiBnaWdhYml0XC1ldGhlcm5ldDsKK+WFiee6luWIhuS9iOaVuOaTmuaOpeWPoyA+IGZkZGk7CivkuI3opovmo7rmnZDkuI3okL3mt5ogPiBub3RcLXNoZWRcLWFcLXRlYXJcLXVudGlsXC1vbmVcLXNlZXNcLXRoZVwtY29mZmluXC1cLVwtcmVmdXNlXC10b1wtYmVcLWNvbnZpbmNlZFwtdW50aWxcLW9uZVwtaXNcLWZhY2VkXC13aXRoXC1ncmltXC1yZWFsaXR5Owor5LiN5Yiw6buD5rKz5b+D5LiN5q27ID4gbm90XC1zdG9wXC11bnRpbFwtb25lXC1yZWFjaGVzXC10aGVcLWh1YW5naGVcLXJpdmVyXC1cLVwtbm90XC1zdG9wXC11bnRpbFwtb25lXC1yZWFjaGVzXC1vbmUnJ3NcLWdvYWw7CivplonloZ7nnLznnZvmjYnpurvpm4AgPiB0cnlcLXRvXC1jYXRjaFwtc3BhcnJvd3NcLXdpdGhcLW9uZScnc1wtZXllc1wtYmxpbmRmb2xkZWRcLVwtXC1hY3RcLWJsaW5kbHk7Civmlq/nibnlh6Hoq77mma7mtJvmlq8gPiBzdGVwaGFub3BvdWxvc1wtXChlZ1wsXC1mb3JtZXJcLWNsaW50b25cLWFpZGVcLWdlb3JnZVwtc3RlcGhhbm9wb3Vsb3NcKTsKK+S6uuawkeiLsembhOe0gOW/teeikSA+IG1vbnVtZW50XC10b1wtdGhlXC1wZW9wbGUnJ3NcLWhlcm9lc1wsXC1hdFwtdGlhbmFubWVuXC1zcXVhcmU7CivmjInkuIvokavomIbmta7otbfnk6IgPiBzb2x2ZVwtb25lXC1wcm9ibGVtXC1vbmx5XC10b1wtZmluZFwtYW5vdGhlclwtY3JvcHBpbmdcLXVwOwor5LiN5pWi6LaK6Zu35rGg5LiA5q2lID4gZGFyZVwtbm90XC1nb1wtb25lXC1zdGVwXC1iZXlvbmRcLXRoZVwtcHJlc2NyaWJlZFwtbGltaXQ7CivmnbHljZfkup7lnIvlrrboga/nm58gPiBhc2VhblwtXChhc3NvY2lhdGlvblwtb2ZcLXNvdXRoZWFzdFwtYXNpYW5cLW5hdGlvbnNcKTsKK+WkseaVl+aYr+aIkOWKn+S5i+avjSA+IFwiZmFpbHVyZVwtaXNcLXRoZVwtbW90aGVyXC1vZlwtc3VjY2Vzc1wiXC1cKHByb3ZlcmJcKTsKK+e2k+eHn+euoeeQhuWSjOe2reittyA+IG9wZXJhdGlvbnNcLWFkbWluaXN0cmF0aW9uXC1hbmRcLW1haW50ZW5hbmNlOwor5qC45q2m5Zmo56CU6KO96KiI5YqDID4gbnVjbGVhclwtd2VhcG9uc1wtXChtYW51ZmFjdHVyaW5nXClcLXByb2dyYW07CivmlZnmjojnlaLnq5/mmK/mlZnmjoggPiBwcm9mZXNzb3JzXC1hcmVcLVwoYWZ0ZXJcLWFsbFwpXC1wcm9mZXNzb3JzOwor6Jmb5pOs6YCa6YGT5qiZ6KqM56ymID4gdmlydHVhbFwtY2hhbm5lbFwtY29ubmVjdGlvblwtaWRlbnRpZmllcjsKK+S4lueVjOaAp+WPpOiAgeWVj+mhjCA+IGFcLXByb2JsZW1cLWFzXC1vbGRcLWFzXC10aGVcLXdvcmxkXC1pdHNlbGY7Civpm7vkv6HmnI3li5nkvpvmh4nllYYgPiB0ZWxlY29tbXVuaWNhdGlvbnNcLXNlcnZpY2VcLXByb3ZpZGVyOwor5YWs55So5Lqk5o+b6Zu76Kmx57ayID4gcHVibGljXC1zd2l0Y2hlZFwtdGVsZXBob25lXC1uZXR3b3JrOwor5Lit6I+v5Lq65rCR5YWx5ZKM5ZyLID4gdGhlXC1wZW9wbGUnJ3NcLXJlcHVibGljXC1vZlwtY2hpbmE7CivpgJrnlKjos4fmupDorZjliKXomZ8gPiB1bml2ZXJzYWxcLXJlc291cmNlXC1pZGVudGlmaWVyOwor5Y6f5a2Q56eR5a245a626YCa5aCxID4gam91cm5hbFwtb2ZcLWF0b21pY1wtc2NpZW50aXN0czsKK+i2heaWh+S7tuWCs+i8uOWNlOWumiA+IGh5cGVydGV4dFwtdHJhbnNmZXJcLXByb3RvY29sOwor6LaF5paH5pys5YKz6Ly45Y2U5a6aID4gaHlwZXJ0ZXh0XC10cmFuc2ZlclwtcHJvdG9jb2w7CivlrqLmiLbmnI3li5nlmajntZDmp4sgPiBjbGllbnRcLXNlcnZlclwtYXJjaGl0ZWN0dXJlOwor5aqS6auU5o6l5Y+j6YCj5o6l5ZmoID4gbWVkaXVtXC1pbnRlcmZhY2VcLWNvbm5lY3RvcjsKK+mdouWaruWwjeixoeeahOaKgOihkyA+IG9iamVjdFwtb3JpZW50ZWRcLXRlY2hub2xvZ3k7CivpnZ7lkIzmraXlgrPovLjmqKHlvI8gPiBhc3luY2hyb25vdXNcLXRyYW5zZmVyXC1tb2RlOwor6LaF5paH5pys5qiZ6KiY6Kqe6KiAID4gaHlwZXJ0ZXh0XC1tYXJrdXBcLWxhbmd1YWdlOwor5Y+N6Imm6ImH5beh6Iiq5bCO5b2IID4gYW50aVwtc2hpcFwtY3J1aXNlXC1taXNzbGU7CivnlKjmiLbliLDntrLntaHmjqXlj6MgPiB1c2VyXC1uZXR3b3JrXC1pbnRlcmZhY2U7Civkup7mtLLlpKrlubPmtIvlnLDljYAgPiBhc2lhXC1wYWNpZmljXC1yZWdpb247CivlpJrnsbPlsLzliqDlhbHlkozlnIsgPiBkb21pbmljYW5cLXJlcHVibGljOwor5pKS5ZOI5ouJ5Lul5Y2X6Z2e5rSyID4gc3ViXC1zYWhhcmFuXC1hZnJpY2E7CivlnKjlpKflpJrmlbjmg4Xms4HkuIsgPiBpblwtbW9zdFwtaW5zdGFuY2VzOwor6LaF6auY6YCf5LmZ5aSq57ay6LevID4gZ2lnYWJpdFwtZXRoZXJuZXQ7Civlt7TluIPkup7mlrDlub7lhafkup4gPiBwYXBhdVwtbmV3XC1ndWluZWE7CivnvoXlr4bmrZDoiIfmnLHpupfokYkgPiByb21lb1wtYW5kXC1qdWxpZXQ7CivlpKrpmb3lvq7ns7vntbHlhazlj7ggPiBzdW5cLW1pY3Jvc3lzdGVtczsKK+W4luaSkue+heWwvOi/puW+jOabuCA+IDJcLXRoZXNzYWxvbmlhbnM7Civkup7niL7nmbzlkozlpafnsbPliqAgPiBhbHBoYVwtYW5kXC1vbWVnYTsKK+W4luaSkue+heWwvOi/puWJjeabuCA+IDFcLXRoZXNzYWxvbmlhbnM7CivojqvlsLzljaHokIrmuqvmlq/ln7ogPiBtb25pY2FcLWxld2luc2t5Owor6Zi/5LyP5Ly95b63576F5a6a5b6LID4gYXZvZ2Fkcm8nJ3NcLWxhdzsKK+mbu+e6nOiqv+WItuino+iqv+WZqCA+IGNhYmxlXC1tb2RlbTsKK+esrOS6jOasoeS4lueVjOWkp+aIsCA+IHdvcmxkXC13YXJcLTI7Civku4vos6roqKrllY/mjqfliLblsaQgPiBtYWNcLWxheWVyOwor5LiN55+l5aSp6auY5Zyw5Y6aID4gbm90XC1rbm93XC10aGVcLWltbWVuc2l0eVwtb2ZcLWhlYXZlblwtYW5kXC1lYXJ0aFwtXC1cLWhhdmVcLWFuXC1leGFnZ2VyYXRlZFwtb3Bpbmlvblwtb2ZcLW9uZScnc1wtYWJpbGl0aWVzOwor55m+6IGe5LiN5aaC5LiA6KaLID4gc2VlaW5nXC1mb3JcLW9uZXNlbGZcLWlzXC1hXC1odW5kcmVkXC10aW1lc1wtYmV0dGVyXC10aGFuXC1oZWFyaW5nXC1mcm9tXC1vdGhlcnM7CivkuI3osrvlkLnngbDkuYvlipsgPiBhc1wtZWFzeVwtYXNcLWJsb3dpbmdcLW9mZlwtZHVzdFwtXC1cLW5vdFwtbmVlZGluZ1wtdGhlXC1zbGlnaHRlc3RcLWVmZm9ydDsKK+aymeWIqeenkeS7gOe2reWIqSA+IGdlbmVyYWxcLXNoYWxpa2FzaHZpbGlcLVwoaGVhZFwtb2ZcLXVzXC1qb2ludFwtY2hpZWZzXC1vZlwtc3RhZmZcKTsKK+WvhOS6iOW+iOWkp+acn+acmyA+IHRvXC1wbGFjZVwtZ3JlYXRcLWhvcGVcLW9yXC1leHBlY3RhdGlvblwtb25cLVwoc3RoXCk7Civlt7TniL7oiI3lpKvmlq/ln7ogPiBcKGNoYXJsZW5lXClcLWJhcnNoZWZza3lcLFwtdXNcLXRyYWRlXC1uZWdvdGlhdG9yOwor57SE5a6a6LOH6KiK6YCf546HID4gY29tbWl0dGVkXC1pbmZvcnJtYXRpb25cLXJhdGVcLVwoZnJhbWVcLXJlbGF5XCk7CivpgIblkJHmk4HloZ7pgJrnn6UgPiBiYWNrd2FyZFwtZXhwbGljaXRcLWNvbmdlc3Rpb25cLW5vdGlmaWNhdGlvbjsKK+WJjeWQkeaTgeWhnumAmuefpSA+IGZvcndhcmRcLWV4cGxpY2l0XC1jb25nZXN0aW9uXC1ub3RpZmljYXRpb247Civnvo7lnIvlu6Pmkq3lhazlj7ggPiBhYmNcLVwoYW1lcmljYW5cLWJyb2FkY2FzdGluZ1wtY29ycG9yYXRpb25cKTsKK+WTiOijoeajruWPsuWvhueJuSA+IGhhcnJpc29uXC1zY2htaXR0XC1cKGFwb2xsb1wtMVwtN1wtYXN0cm9uYXV0XCk7CivnlaLlhbblip/kuo7kuIDlvbkgPiBhY2NvbXBsaXNoXC10aGVcLXdob2xlXC10YXNrXC1hdFwtb25lXC1zdHJva2U7Civmk7rkuovlr6borJvpgZPnkIYgPiBwcmVzZW50XC10aGVcLWZhY3RzXC1hbmRcLXJlYXNvblwtdGhpbmdzXC1vdXQ7CivlnIvpmpvpm7vkv6Hoga/nm58gPiBpbnRlcm5hdGlvbmFsXC10ZWxlY29tbXVuaWNhdGlvbnNcLXVuaW9uOwor5LiN5Y+v5ZCM5pel6ICM6KqeID4gY2Fubm90XC1iZVwtbWVudGlvbmVkXC1pblwtdGhlXC1zYW1lXC1icmVhdGg7CivmnInlv5fogIXkuovnq5/miJAgPiB3aGVyZVwtdGhlcmVcLWlzXC1hXC13aWxsXCxcLXRoZXJlXC1pc1wtYVwtd2F5Owor5ZyL6Zqb5qiZ5rqW57WE57mUID4gaW50ZXJuYXRpb25hbFwtc3RhbmRhcmRzXC1vcmdhbml6YXRpb247Civnm67liY3pgoTkuI3muIXmpZogPiBhdFwtcHJlc2VudFwtaXRcLWlzXC1zdGlsbFwtdW5jbGVhclwtXC5cLlwuXC47Civnlr7nl4XpoJDpmLLkuK3lv4MgPiBcKHVcLnNcLlwpXC1jZW50ZXJcLWZvclwtZGlzZWFzZVwtY29udHJvbDsKK+aHieeUqOeoi+W8j+S7i+mdoiA+IGFwcGxpY2F0aW9uXC1wcm9ncmFtbWluZ1wtaW50ZXJmYWNlOwor55+u5a2Q6KOh5ouU5bCH6LuNID4gY2hvb3NlXC10aGVcLWJlc3RcLXBlcnNvblwtYXZhaWxhYmxlOwor5Y+W5b6X5aSn5a245a245L2NID4gdG9cLW9idGFpblwtYVwtdW5pdmVyc2l0eVwtZWR1Y2F0aW9uOwor5a+m5pmC5pON5L2c55Kw5aKDID4gcmVhbFwtdGltZVwtb3BlcmF0aW5nXC1lbnZpcm9ubWVudDsKK+Wci+mam+WVhualreapn+WZqCA+IGludGVybmF0aW9uYWxcLWJ1c2luZXNzXC1tYWNoaW5lczsKK+espuWQiOe+juWci+WIqeebiiA+IGluXC1saW5lXC13aXRoXC1hbWVyaWNhblwtaW50ZXJlc3RzOwor6Luf6auU5Ye654mI5Y2U5pyDID4gc29mdHdhcmVcLXB1Ymxpc2hlcnNcLWFzc29jaWF0aW9uOwor5p2+5LiL6Zu75rCj5bel5qWtID4gbWF0c3VzaGl0YVwtZWxlY3Ryb25pY3NcLWluZHVzdHJ5Owor5pyN5YuZ5buj5ZGK5Y2U6K2wID4gc2VydmljZVwtYWR2ZXJ0aXNlbWVudFwtcHJvdG9jb2w7Civoqp7pn7PpgJroqIrpgJrpgZMgPiB2b2ljZVwtXChjb21tdW5pY2F0aW9uc1wpXC1jaGFubmVsOwor5LiW55WM6LK/5piT57WE57mUID4gd3RvXC1cKHdvcmxkXC10cmFkZVwtb3JnYW5pemF0aW9uXCk7CivluLjopo/pioXpm7voqbHnt5ogPiBvcmRpbmFyeVwtY29wcGVyXC10ZWxlcGhvbmVcLWxpbmU7CivlkIzmraXmlbjkvY3pmo7lsaQgPiBzeW5jaHJvbm91c1wtZGlnaXRhbFwtaGllcmFyY2h5Owor5LiK5rW35oiy5YqH5a246ZmiID4gc2hhbmdoYWlcLXRoZWF0cmljYWxcLWluc3RpdHV0ZTsKK+WCs+i8uOaOp+WItuWNlOWumiA+IHRyYW5zbWlzc2lvblwtY29udHJvbFwtcHJvdG9jb2w7CivlgrPntbHkuK3lnIvphqvol6UgPiBjaGluZXNlXC10cmFkaXRpb25hbFwtbWVkaWNpbmU7Civlm7rlrpromZvmk6zpgKPmjqUgPiBwZXJtYW5lbnRcLXZpcnR1YWxcLWNvbm5lY3Rpb247CivplovmlL7ns7vntbHkupLpgKMgPiBvcGVuXC1zeXN0ZW1zXC1pbnRlcmNvbm5lY3Rpb247CivljJfkuqzol53ooZPlrbjpmaIgPiBiZWlqaW5nXC1hY2FkZW15XC1vZlwtZmluZVwtYXJ0czsKK+S4jeeZu+Wkp+mbheS5i+WggiA+IG5vdFwtYXBwZWFsXC10b1wtcmVmaW5lZFwtdGFzdGU7CivljJfkuqzoqp7oqIDlrbjpmaIgPiBiZWlqaW5nXC1sYW5ndWFnZXNcLWluc3RpdHV0ZTsKK+WcsOWdgOino+aekOWNlOitsCA+IGFkZHJlc3NcLXJlc29sdXRpb25cLXByb3RvY29sOwor5pys5Zyw566h55CG55WM6Z2iID4gbG9jYWxcLW1hbmFnZW1lbnRcLWludGVyZmFjZTsKK+eVsOatpeWCs+i8uOaooeW8jyA+IGFzeW5jaHJvbm91c1wtdHJhbnNmZXJcLW1vZGU7Civpm7vohabovJTliqnmlZnmnZAgPiBjb21wdXRlclwtYWlkZWRcLWluc3RydWN0aW9uOwor6Zu76IWm6LyU5Yqp5bel56iLID4gY29tcHV0ZXJcLWFpZGVkXC1lbmdpbmVlcmluZzsKK+iZm+aTrOmAmumBk+mAo+aOpSA+IHZpcnR1YWxcLWNoYW5uZWxcLWNvbm5lY3Rpb247CivntrLntaHnrqHnkIbns7vntbEgPiBuZXR3b3JrXC1tYW5hZ2VtZW50XC1zeXN0ZW07CivkuJbnlYzooZvnlJ/ntYTnuZQgPiB3b3JsZFwtaGVhbHRoXC1vcmdhbml6YXRpb247CivlgLzlvpfms6jmhI/nmoTmmK8gPiBpdCcnc1wtd29ydGhcLW5vdGluZ1wtdGhhdFwuXC5cLjsKK+eSsOeQg+WumuS9jeezu+e1sSA+IGdsb2JhbFwtcG9zaXRpb25pbmdcLXN5c3RlbTsKK+WboOeJuee2suaPkOS+m+WVhiA+IGludGVybmV0XC1zZXZpY2VcLXByb3ZpZGVyOwor57ay57Wh5pON5L2c57O757WxID4gbmV0d29ya1wtb3BlcmF0aW5nXC1zeXN0ZW07CivlnJblg4/nlKjmiLbku4vpnaIgPiBncmFwaGljYWxcLXVzZXJcLWludGVyZmFjZTsKK+mdouWaruWwjeixoeiqnuiogCA+IG9iamVjdFwtb3JpZW50ZWRcLWxhbmd1YWdlOwor5YWx5ZCM6ZaY6YGT5LuL6Z2iID4gY29tbW9uXC1nYXRld2F5XC1pbnRlcmZhY2U7CivntrLot6/kvZzmpa3ns7vntbEgPiBuZXR3b3JrXC1vcGVyYXRpbmdcLXN5c3RlbTsKK+WFrOecvumbu+S/oee2sui3ryA+IHB1YmxpY1wtdGVsZXBob25lXC1uZXR3b3JrOwor6Z2e55uI5Yip55qE57WE57mUID4gbm9uXC1wcm9maXRcLW9yZ2FuaXphdGlvbjsKK+ioiuaBr+iZleeQhuezu+e1sSA+IG1lc3NhZ2VcLWhhbmRsaW5nXC1zeXN0ZW07CivmlbjlrZfoqILos7znt5rot68gPiBkaWdpdGFsXC1zdWJzY3JpYmVyXC1saW5lOwor6L6v6Ki85ZSv54mp5Li7576pID4gZGlhbGVjdGljYWxcLW1hdGVyaWFsaXNtOwor57ay6Lev56+A6bue5LuL6Z2iID4gbmV0d29ya1wtbm9kZVwtaW50ZXJmYWNlOwor5q2j5Zyo5Lit5ZyL6Kiq5ZWPID4gZHVyaW5nXC1hXC10cmlwXC10b1wtY2hpbmE7CivlhavlsI/mmYLlt6XkvZzliLYgPiBlaWdodFwtaG91clwtd29ya2luZ1wtZGF5Owor5raI5oGv6Z2I6YCa5Lq65aOrID4gYVwtd2VsbFwtaW5mb3JtZWRcLXNvdXJjZTsKK+aXpeacrOe2k+a/n+aWsOiBniA+IGphcGFuZXNlXC1lY29ub21pY1wtbmV3czsKK+ioiuaBr+WCs+mBnuS4reS7iyA+IG1lc3NhZ2VcLXRyYW5zZmVyXC1hZ2VudDsKK+mbu+iFpui8lOWKqeioreioiCA+IGNvbXB1dGVyXC1haWRlZFwtZGVzaWduOwor5oyB5LiN5ZCM5pS/6KaL6ICFID4gXChwb2xpdGljYWxcKVwtZGlzc2lkZW50Owor6LOH5paZ5YKz6YCB5pyN5YuZID4gZGF0YVwtZGVsaXZlcnlcLXNlcnZpY2U7Civku4vos6roqKrllY/mjqfliLYgPiBtZWRpdW1cLWFjY2Vzc1wtY29udHJvbDsKK+WNsOW6puWwvOilv+S6nuiqniA+IGluZG9uZXNpYW5cLVwobGFuZ3VhZ2VcKTsKK+WkmueoruiqnuiogOaUr+aMgSA+IG11bHRpbGluZ3VhbFwtc3VwcG9ydDsKK+aOpeaUtuWZqOmdiOaVj+W6piA+IHJlY2VpdmVyXC1zZW5zaXRpdml0eTsKK+awkeaXj+S4u+e+qeaDhee3kiA+IG5hdGlvbmFsaXN0XC1mZWVsaW5nczsKK+WqkumrlOioquWVj+aOp+WItiA+IG1lZGlhXC1hY2Nlc3NcLWNvbnRyb2w7Civlm5vlubTliLbnmoTlpKflrbggPiBmb3VyXC15ZWFyXC11bml2ZXJzaXR5Owor6YKP6Lyv6Y+I6Lev5o6n5Yi2ID4gbG9naWNhbFwtbGlua1wtY29udHJvbDsKK+iQrOe2reWkqee+heWcsOe2siA+IHdvcmxkXC13aWRlXC13ZWJcLVwod3d3XCk7Civlt6Hov7TliIbmnpDnq6/lj6MgPiByb3ZpbmdcLWFuYWx5c2lzXC1wb3J0Owor5Y+q5LiN6YGO5bm+5bm05YmNID4gb25seVwtYVwtZmV3XC15ZWFyc1wtYWdvOwor5LiA55m+5LqU5Y2B5aSa5bm0ID4gbW9yZVwtdGhhblwtMTUwXC15ZWFyczsKK+WTpeWAq+avlOS6nuWkp+WtuCA+IGNvbHVtYmlhXC11bml2ZXJzaXR5Owor6LK/5piT5L+d6K235Li7576pID4gdHJhZGVcLXByb3RlY3Rpb25pc207CivlnKjmn5DnqK7nqIvluqbkuIogPiB0b1wtYVwtY2VydGFpblwtZXh0ZW50Owor5pu85b655pav54m557eo56K8ID4gbWFuY2hlc3RlclwtZW5jb2Rpbmc7CivoqIrmoYblgrPpgIHmnI3li5kgPiBmcmFtZVwtcmVsYXlcLXNlcnZpY2U7CivoqIrmoYblgrPpgIHntrLot68gPiBmcmFtZVwtcmVsYXlcLW5ldHdvcms7CivpmL/mr5Topb/lsLzkup7kurogPiBhYnlzc2luaWFuXC1cKHBlcnNvblwpOwor5Lqe5aSq57aT5ZCI57WE57mUID4gYXBlY1wtXChvcmdhbml6YXRpb25cKTsKK+i7n+S7tumWi+eZvOS6uuWToSA+IHNvZnR3YXJlXC1kZXZlbG9wZXI7CivlnKjlgrPovLjpgY7nqIvkuK0gPiB3aGlsZVwtdHJhbnNtaXR0aW5nOwor5b+F5LiN5Y+v5bCR57WE5oiQID4gYWJzb2x1dGVcLW5lY2Vzc2l0eTsKK+e+juWci+iIquepuuWFrOWPuCA+IGFtZXJpY2FuXC1haXJsaW5lczsKK+S6pOaPm+S7peWkque2sue1oSA+IHN3aXRjaGVkXC1ldGhlcm5ldDsKK+irvuiyneeIvuWSjOW5s+eNjiA+IG5vYmVsXC1wZWFjZVwtcHJpemU7CivkupTop5LlpKfmqJPlrpjlk6EgPiBwZW50YWdvblwtb2ZmaWNpYWw7CivoqIrmoYblgrPpgIHoq5blo4cgPiBmcmFtZVwtcmVsYXlcLWZvcnVtOwor6Zi/54i+5be05bC85Lqe5Lq6ID4gYWxiYW5pYW5cLVwocGVyc29uXCk7CivkuI3liIbpnZLntIXnmoLnmb0gPiBpbmRpc2NyaW1pbmF0ZWx5Owor5LiN562J6YKK5LiJ6KeS5b2iID4gc2NhbGVuZVwtdHJpYW5nbGU7CivntrLpmpvntrLot6/ljZTmnIMgPiBpbnRlcm5ldFwtc29jaWV0eTsKK+S4ieWNg+WIsOS6lOWNg+iQrCA+IDMwXC10b1wtNTBcLW1pbGxpb247CivkuIDlgIvkuK3lnIvmlL/nrZYgPiBvbmVcLWNoaW5hXC1wb2xpY3k7CivntrLntaHopo/lioPkurrlk6EgPiBuZXR3b3JrXC1wbGFubmVyOwor5YWx5Lqr5Lul5aSq57ay57WhID4gc2hhcmVkXC1ldGhlcm5ldDsKK+WNoee0jee2reaLieeIvuinkiA+IGNhcGVcLWNhbmF2ZXJhbDsKK+WNgOWfn+e2sui3r+aKgOihkyA+IGxhblwtdGVjaG5vbG9neTsKK+iWqemBlOWnhuS+r+izveWboCA+IHNhZGRhbVwtaHVzc2VpbjsKK+aSnuaTiuW8j+WNsOihqOapnyA+IGltcGFjdFwtcHJpbnRlcjsKK+aSnuaTiuW8j+aJk+WNsOapnyA+IGltcGFjdFwtcHJpbnRlcjsKK+WFqOeQg+awo+WAmeWNh+a6qyA+IGdsb2JhbFwtd2FybWluZzsKK+aiheWhnui/quaWr+WllOmmsyA+IG1lcmNlZGVzXC1iZW56Owor5aWn5YWL5ouJ6I236aas5biCID4gb2tsYWhvbWFcLWNpdHk7Civpq5jpgJ/kuZnlpKrntrLot68gPiBmYXN0XC1ldGhlcm5ldDsKK+W/q+mAn+S7peWkque2sue1oSA+IGZhc3RcLWV0aGVybmV0Owor5Lul5aSq57ay57Wh56uv5Y+jID4gZXRoZXJuZXRcLXBvcnQ7Civkup7mtLLoiIflpKrlubPmtIsgPiBhc2lhXC1wYWNpZmljOwor5LiA5Y2D6Zu25LqU5Y2B5YSEID4gMTA1XC1iaWxsaW9uOwor5ZCJ54i+5ZCJ5pav5pav5Z2mID4ga2lyZ2hpenN0YW47Civmpq7njbLoq77osp3niL7njY4gPiBub2JlbFwtcHJpemU7CivkuInmnIjkuozljYHkuInomZ8gPiBtYXJjaFwtMjNyZDsKK+aykuacieeUn+iCsuiDveWKmyA+IGluZmVydGlsZTsKK+Wci+mam+S6kuiBr+e2sue1oSA+IGludGVybmV0Owor5LiJ5pyI5LqM5Y2B5LiA6JmfID4gbWFyY2hcLTIxOwor5bCI55So6ZuG5oiQ6Zu76LevID4gYXNpYzsKK+WcluWDj+S6kuaPm+agvOW8jyA+IGdpZjsKK+iEq+awp+aguOezluaguOmFuCA+IGRuYTsKK+auuumbnue1pueMtOeciyA+IFwia2lsbFwtYVwtY2hpY2tlblwtaW5cLWZyb250XC1vZlwtYVwtbW9ua2V5XCJcLVwtXC1cLW1ha2VcLWFuXC1leGFtcGxlXC1vdXRcLW9mXC1zb21lb25lXC1cKGJ5XC1wdW5pc2hpbmdcLXRoZW1cKVwtdG9cLWZyaWdodGVuXC1vdGhlcnM7Civnl4XmgKXkuoLmipXphqsgPiB0dXJuXC10b1wtYW55XC1kb2N0b3JcLW9uZVwtY2FuXC1maW5kXC13aGVuXC1jcml0aWNhbGx5XC1pbGxcLVwtXC10cnlcLWFueXRoaW5nXC13aGVuXC1pblwtYVwtZGVzcGVyYXRlXC1zaXR1YXRpb247Civmlq/ljaHkvK/li5LnpIEgPiBzY2FyYm9yb3VnaFwtc2hvYWxcLVwocGhpbGlwcGluZXMnJ1wtbmFtZVwtZm9yXC1odWFuZ3lhblwtaXNsYW5kXCk7CivlhrDngq3kuI3nm7jlrrkgPiBhc1wtaW5jb21wYXRpYmxlXC1vclwtaXJyZWNvbmNpbGFibGVcLWFzXC1pY2VcLWFuZFwtaG90XC1jb2FsczsKK+mfi+eIvuW8l+mbt+iMsiA+IFwoZ2VvcmdlXClcLXdlaHJmcml0elwtXChiZWlqaW5nXC1idXJlYXVcLWNoaWVmXC1vZlwtbmV3c3dlZWtcKTsKK+eQs1wu5oi057at5pavID4gbHlublwtZGF2aXNcLVwodXNcLXN0YXRlXC1kZXBhcnRtZW50XC1hcm1zXC1jb250cm9sXC1leHBlcnRcKTsKK+S6uuawkeihjOWLlem7qCA+IHBlb3BsZScnc1wtYWN0aW9uXC1wYXJ0eVwtXChydWxpbmdcLXBhcnR5XC1pblwtc2luZ2Fwb3JlXCk7CivluLjku7vnkIbkuovlnIsgPiBwZXJtYW5lbnRcLW1lbWJlclwtc3RhdGVcLVwob2ZcLXVuXC1zZWN1cml0eVwtY291bmNpbFwpOwor5Lq65rCR5aSn5pyD5aCCID4gZ3JlYXRcLWhhbGxcLW9mXC10aGVcLXBlb3BsZVwsXC1hdFwtdGlhbmFubWVuXC1zcXVhcmU7CivmqYvmnKzpvo3lpKrpg44gPiBoYXNoaW1vdG9cLFwtcnl1dGFyb1wtXChwcmltZVwtbWluaXN0ZXJcLW9mXC1qYXBhblwpOwor5aWn54i+5biD6LO054m5ID4gXChtYWRlbGVpbmVcKVwtYWxicmlnaHRcLVwodXNcLXNlY3JldGFyeVwtb2ZcLXN0YXRlXCk7CivkuI3nlbbkuIDlm57kuosgPiBub3RcLXJlZ2FyZFwtYXNcLWFcLW1hdHRlclwtXChvZlwtYW55XC1pbXBvcnRhbmNlXCk7CivkuI3miZPkuI3nm7jorZggPiBmcm9tXC1hblwtZXhjaGFuZ2VcLW9mXC1ibG93c1wtZnJpZW5kc2hpcFwtZ3Jvd3M7Civoga/pgqboqr/mn6XlsYAgPiBmYmlcLVwoZmVkZXJhbFwtYnVyZWF1XC1vZlwtaW52ZXN0aWdhdGlvblwpOwor5LiA5Lmd5Zub5Lmd5bm0ID4gdGhlXC15ZWFyXC0xOTQ5XC1cKGNvbW11bmlzdFwtcmV2b2x1dGlvblwpOwor57SE57+w5YWn5pav5aChID4gam9oYW5uZXNidXJnXC1cKGNpdHlcLWluXC1zb3V0aFwtYWZyaWNhXCk7CivliIbkvYjlvI/nkrDlooMgPiBkaXN0cmlidXRlZFwtXChjb21wdXRpbmdcKVwtZW52aXJvbm1lbnQ7CivpnZ7mlL/lupzntYTnuZQgPiBub25cLWdvdmVybm1lbnRhbFwtb3JnYW5pemF0aW9uXC1cKG5nb1wpOwor5bCk6YeR5aGe54i+5Y2XID4gZXVnZW5lXC1jZXJuYW5cLVwoYXBvbGxvXC0xN1wtYXN0cm9uYXV0XCk7Civmr5Tli5LpmYDliKnkup4gPiBwcmV0b3JpYVwtXChjYXBpdGFsXC1vZlwtc291dGhcLWFmcmljYVwpOwor5Y2K5pel5Yi25a245qChID4gaGFsZlwtZGF5XC1cKG9yXC1kb3VibGVcLXNoaWZ0XC1zY2hvb2xcKTsKK+i2iuS+hui2iuWatOmHjSA+IHRvXC1iZWNvbWVcLW1vcmVcLXNlcmlvdXNcLWV2ZXJ5XC1kYXk7CivmiIjniL7lt7TllqzlpKsgPiBcKGZvcm1lclwtc292aWV0XC1sZWFkZXJcKVwtZ29yYmFjaGV2Owor5YWr57Sa5bel6LOH5Yi2ID4gZWlnaHRcLWdyYWRlXC13YWdlXC1zY2FsZVwtXChzeXN0ZW1cKTsKK+WcqOWvhuWIh+azqOaEjyA+IHRvXC1wYXlcLWNsb3NlXC1hdHRlbnRpb25cLVwodG9cLXN0aFwpOwor5qC45aiB5oe+5pS/562WID4gcG9saWN5XC1vZlwtbnVjbGVhclwtaW50aW1pZGF0aW9uOwor5Y+v6YG45pOH5Lif5qOEID4gZGlzY2FyZFwtZWxpZ2libGVcLVwoZnJhbWVcLXJlbGF5XCk7CivnibnliKXooYzmlL/ljYAgPiBzcGVjaWFsXC1hZG1pbmlzdHJhdGl2ZVwtcmVnaW9uOwor6I+v55ub6aCT5pmC5aCxID4gd2FzaGluZ3RvblwtdGltZXNcLVwobmV3c3BhcGVyXCk7CivkvLzkuY7lvojlronlhaggPiB0b1wtYXBwZWFyXC1cKHRvXC1iZVwpXC12ZXJ5XC1zYWZlOwor5Lit5aSu5oOF5aCx5bGAID4gY2VudHJhbFwtaW50ZWxsaWdlbmNlXC1hZ2VuY3k7CivmnI3li5nmj5DkvpvllYYgPiBcKGludGVybmV0XClcLXNlcnZpY2VcLXByb3ZpZGVyOwor566h55CG5L+h5oGv5bqrID4gbWFuYWdlbWVudFwtaW5mb3JtYXRpb25cLWJhc2U7Civoj6/nm5vpoJPpg7XloLEgPiB3YXNoaW5ndG9uXC1wb3N0XC1cKG5ld3NwYXBlclwpOwor6aGY5oSP5LiN6aGY5oSPID4gd2hldGhlclwtb25lXC13YW50c1wtdG9cLW9yXC1ub3Q7CivnmbzlsZXmoLjmrablmaggPiB0b1wtZGV2ZWxvcFwtbnVjbGVhclwtd2VhcG9uczsKK+WPm+iuiueahOecgeS7vSA+IHJlbmVnYWRlXC1wcm92aW5jZVwtXCh0YWl3YW5cKTsKK+S4reWci+enkeWtuOmZoiA+IGNoaW5lc2VcLWFjYWRhbXlcLW9mXC1zY2llbmNlOwor55So5oi256uv6Kit5YKZID4gY3VzdG9tZXJcLXByZW1pc2VcLWVxdWlwbWVudDsKK+S4jeetieWDueS6pOaPmyA+IGV4Y2hhbmdlXC1vZlwtdW5lcXVhbFwtdmFsdWVzOwor5rC45LmF6Jmb6Zu76LevID4gcGVybWFuZW50XC12aXJ0dWFsXC1jaXJjdWl0Owor5Y6f5Zug5b6I57Ch5ZauID4gdGhlXC1yZWFzb25cLWlzXC12ZXJ5XC1zaW1wbGU7CivpgJroqIroh6rli5XljJYgPiBjb21tdW5pY2F0aW9uc1wtYXV0b21hdGlvbjsKK+W5gOmmluWumueVjOespiA+IHN0YXJ0XC1vZlwtZnJhbWVcLWRlbGltaXRlcjsKK+S4jeaJv+iqjeS4u+e+qSA+IHBvbGljeVwtb2ZcLW5vbnJlY29nbml0aW9uOwor5qWK55m+57+w5aSn5a24ID4gYnJpZ2hhbVwteW91bmdcLXVuaXZlcnNpdHk7CivliIbkvYjlvI/ntZDmp4sgPiBkaXN0cmlidXRlZFwtYXJjaGl0ZWN0dXJlOwor5oyB5LiN5ZCM5pS/6KaLID4gXChwb2xpdGljYWxseVwpXC1kaXNzZW50aW5nOwor5Lq65rCR6Kej5pS+6LuNID4gcGVvcGxlJydzXC1saWJlcmF0aW9uXC1hcm15Owor5b6e5aSW6KGo5L6G55yLID4gbG9va2luZ1wtZnJvbVwtdGhlXC1vdXRzaWRlOwor5Lqk5o+b6Jmb6Zu76LevID4gc3dpdGNoZWRcLXZpcnR1YWxcLWNpcmN1aXQ7CivmoLjmrablmajmnZDmlpkgPiBudWNsZWFyXC13ZWFwb25cLW1hdGVyaWFsOwor55m85L2I5paw6Luf5Lu2ID4gdG9cLXJlbGVhc2VcLW5ld1wtc29mdHdhcmU7CivlsIjlsazntpPmv5/ljYAgPiBleGNsdXNpdmVcLWVjb25vbWljXC16b25lOwor5rWB5Lqh5Zyo5rW35aSWID4gdG9cLWJlXC1pblwtZXhpbGVcLW92ZXJzZWFzOwor5LiN5oq15oqX5Li7576pID4gcG9saWN5XC1vZlwtbm9ucmVzaXN0YW5jZTsKK+WcqOS7iuW5tOW5tOW6lSA+IGF0XC10aGVcLWVuZFwtb2ZcLXRoaXNcLXllYXI7Civkvoblm57kvobljrvlnLAgPiBiYWNrd2FyZHNcLWFuZFwtZm9yd2FyZHM7CivntrLntaHlsaTljZTorbAgPiBuZXR3b3JrXC1sYXllclwtcHJvdG9jb2w7Civlt6Xmpa3ljJblnIvlrrYgPiBpbmR1c3RyaWFsaXplZFwtY291bnRyeTsKK+aVmee+qeWSjOiBlue0hCA+IGRvY3RyaW5lXC1hbmRcLWNvdmVuYW50czsKK+e2sue1oeeuoeeQhuWToSA+IG5ldHdvcmtcLWFkbWluaXN0cmF0b3I7Civoip3liqDlk6XlpKflrbggPiB1bml2ZXJzaXR5XC1vZlwtY2hpY2FnbzsKK+mZuOa1t+epuuS4iei7jSA+IGFybXlcLFwtbmF2eVwsXC1haXJcLWZvcmNlOwor5pys5Zyf5YyW6Luf5Lu2ID4gc29mdHdhcmVcLWxvY2FsaXphdGlvbjsKK+aqlOahiOWIhumFjeWNgCA+IGZpbGVcLWFsbG9jYXRpb25cLXRhYmxlOwor5Zyw5bCN56m65bCO5b2IID4gZ3JvdW5kXC10b1wtYWlyXC1taXNzaWxlOwor5LiN5L+h5Lu75oqV56WoID4gdm90ZVwtb2ZcLW5vXC1jb25maWRlbmNlOwor5pys5Lq655qE6KeA6bueID4gXChvbmUnJ3NcKVwtcGVyc29uYWxcLXZpZXc7Civou5/pq5TphY3pgIHogIUgPiBzb2Z0d2FyZVwtZGlzdHJpYnV0b3I7CivmrbfkvobmnIDkvY7pu54gPiBhbGxcLXRpbWVcLWxvd1wtXChwb2ludFwpOwor57Gz5b6354i+5Lyv6KOhID4gbWlkZGxlYnVyeVwtXChjb2xsZWdlXCk7Civlhanpu57ljYHkuZ3liIYgPiAyXC1cOjFcLTlcLVwodGltZVwtb2ZcLWRheVwpOwor5bmA5qqi6amX5bqP5YiXID4gZnJhbWVcLWNoZWNrXC1zZXF1ZW5jZTsKK+S4jeWujOWFqOS4reeriyA+IGltcGVyZmVjdFwtbmV1dHJhbGl0eTsKK+WFi+mHjOaWr+aJmOW8lyA+IFwod2FycmVuXClcLWNocmlzdG9waGVyOwor6ZGS5a6a5aeU5ZOh5pyDID4gZXZhbHVhdGlvblwtY29tbWl0dGVlOwor6aas5L6G6KW/5Lqe6KqeID4gbWFsYXNpYW5cLVwobGFuZ3VhZ2VcKTsKK+mBjuS6huS6lOWIhumQmCA+IGZpdmVcLW1pbnV0ZXNcLXBhc3NlZDsKK+WFi+e+heWcsOS6nuiqniA+IGNyb2F0aWFuXC1cKGxhbmd1YWdlXCk7CivoqI7oq5bnmoTorbDpoYwgPiB0b3BpY1wtb2ZcLWRpc2N1c3Npb247CivlnLDlnYDnmoTovYnmj5sgPiBhZGRyZXNzXC10cmFuc2xhdGlvbjsKK+iHquWLleWcsOW3peS9nCA+IGF1dG9tYXRpY1wtb3BlcmF0aW9uOwor5L+d5a6J6Ieq5YuV5YyWID4gc2VjdXJpdHlcLWF1dG9tYXRpb247CivliIbkvYjlvI/ntrLntaEgPiBkaXN0cmlidXRlZFwtbmV0d29yazsKK+S4jeacn+eEtuiAjOeEtiA+IGhhcHBlblwtdW5leHBlY3RlZGx5Owor5Yqg5YC85Z6L57ay6LevID4gdmFsdWVcLWFkZGVkXC1uZXR3b3JrOwor5Zug54m557ay6IGv6YCaID4gaW50ZXJuZXRcLWNvbm5lY3Rpb247Civnp5HlrbjnmoTkuqTmtYEgPiBzY2llbnRpZmljXC1leGNoYW5nZTsKK+mLsOmbouWtkOmbu+axoCA+IGxpdGhpdW1cLWlvblwtYmF0dGVyeTsKK+mVt+acn+epqeWumuaApyA+IGxvbmdcLXRlcm1cLXN0YWJpbGl0eTsKK+aok+Wuh+iHquWLleWMliA+IGJ1aWxkaW5nXC1hdXRvbWF0aW9uOwor6KaW56qX5Yqg6YCf5ZmoID4gd2luZG93c1wtYWNjZWxhcmF0b3I7Civoj6/niL7ooZfml6XloLEgPiB3YWxsXC1zdHJlZXRcLWpvdXJuYWw7CivlnIvmsJHpu6jou43pmoogPiBuYXRpb25hbGlzdFwtZm9yY2VzOwor5LiA5bCP5pmC5Lul5b6MID4gYVwtc2hvcnRcLXRpbWVcLWxhdGVyOwor57ay6Lev6YCj5o6l5bGkID4gbmV0d29ya1wtbGlua1wtbGF5ZXI7CivlurflpYjniL7lpKflrbggPiBjb3JuZWxsXC11bml2ZXJzaXR5Owor5aGe54i+57at5Lqe6KqeID4gc2VyYmlhblwtXChsYW5ndWFnZVwpOwor5pav55Om5biM6KOh6KqeID4gc3dhaGlsaVwtXChsYW5ndWFnZVwpOwor5ZyL5a625qiZ5rqW56K8ID4gZ2JcLVwoZ3VvXC1iaWFvXClcLWNvZGU7CivmnKzliJ3lrZDljYjnt5ogPiB0aGVcLWZpcnN0XC1tZXJpZGlhbjsKK+WutuW6rea2iOiyu+iAhSA+IGhvdXNlaG9sZFwtY29uc3VtZXI7Civln5/lkI3mnI3li5nlmaggPiBkb21haW5cLW5hbWVcLXNlcnZlcjsKK+eZvOWxleS4reWci+WutiA+IGRldmVsb3BpbmdcLWNvdW50cnk7CivlpJrnq6/kuK3nubzlmaggPiBtdWx0aXBvcnRcLXJlcGVhdGVyOwor55m85bGV55qE5ZyL5a62ID4gZGV2ZWxvcGluZ1wtY291bnRyeTsKK+eUn+a0u+W/hemcgOWTgSA+IGxpZmUnJ3NcLW5lY2Vzc2l0aWVzOwor5Y+v6KGM5oCn56CU56m2ID4gZmVhc2liaWxpdHlcLXN0dWR5Owor5pW45pOa5bqr6Luf5Lu2ID4gZGF0YWJhc2VcLXNvZnR3YXJlOwor6KW/6KOh54i+5a2X5q+NID4gY3lyaWxsaWNcLWFscGhhYmV0Owor5pKS6L+m5Yip5Lqe5pu4ID4gYm9va1wtb2ZcLXplY2hhcmlhaDsKK+azouWjq+mgk+Wkp+WtuCA+IGJvc3RvblwtdW5pdmVyc2l0eTsKK+i+puWFrOiHquWLleWMliA+IG9mZmljZVwtYXV0b21hdGlvbjsKK+S4jeWPiueJqeWLleipniA+IGludHJhbnNpdGl2ZVwtdmVyYjsKK+iGneS4iuWei+mbu+iFpiA+IGxhcHRvcFwtXChjb21wdXRlclwpOwor5Lit5aSu5aeU5ZOh5pyDID4gY2VudHJhbFwtY29tbWl0dGVlOwor5Yiw6YKj5YCL5pmC5YCZID4gdW50aWxcLXRoaXNcLW1vbWVudDsKK+a0m+adieejr+aZguWgsSA+IGxvc1wtYW5nZWxlc1wtdGltZXM7CivmlofljJbnmoTkuqTmtYEgPiBjdWx0dXJhbFwtZXhjaGFuZ2U7Civmlq/mtJvkvJDlhYvoqp4gPiBzbG92YWtcLVwobGFuZ3VhZ2VcKTsKK+WkluWci+aXhemBiuiAhSA+IGZvcmVpZ25cLXRyYXZlbGxlcjsKK+S4gOWNg+S4g+eZvuiQrCA+IHNldmVudGVlblwtbWlsbGlvbjsKK+WnlOWToeacg+acg+itsCA+IGNvbW1pdHRlZVwtbWVldGluZzsKK+ioiOeul+apn+W3pealrSA+IGNvbXB1dGVyXC1pbmR1c3RyeTsKK+WFseeUoum7qOmDqOmaiiA+IGNvbW11bmlzdFwtZm9yY2VzOwor5pyN5YuZ5o+Q5L6b6ICFID4gc2VydmljZVwtcHJvdmlkZXI7Civnp7vli5XlvI/pm7voqbEgPiBtb2JpbGVcLXRlbGVwaG9uZTsKK+WpmuWkluaAp+aOpeinuCA+IGV4dHJhbWFyaXRhbFwtc2V4Owor5rOi576O5q+U6YeN6KiIID4gYmF1bWVcLWh5ZHJvbWV0ZXI7CivlpJblnIvmipXos4fogIUgPiBmb3JlaWduXC1pbnZlc3RvcjsKK+eVsOaAp+aAp+aOpeinuCA+IGhldGVyb3NleHVhbFwtc2V4Owor5qGM5LiK5Z6L6Zu76IWmID4gZGVza3RvcFwtY29tcHV0ZXI7CivoqJjogIXmi5vlvoXmnIMgPiBwcmVzc1wtY29uZmVyZW5jZTsKK+WOn+WtkOenkeWtuOWutiA+IGF0b21pY1wtc2NpZW50aXN0Owor6ZW35bqm5oyH56S656ymID4gbGVuZ3RoXC1pbmRpY2F0b3I7Civku7/nnJ/mnI3li5nlmaggPiBlbXVsYXRpb25cLXNlcnZlcjsKK+ioiOeul+apn+e2sue1oSA+IGNvbXB1dGVyXC1uZXR3b3JrOwor6YGO5Lu957Ch5Zau5YyWID4gb3ZlcnNpbXBsaWNhdGlvbjsKK+efpeitmOW3peeoi+W4qyA+IGtub3dsZWRnZVwtd29ya2VyOwor6LOH5paZ6Y+I57WQ5bGkID4gZGF0YVwtbGlua1wtbGF5ZXI7Civpm7bnrYnlvoXni4DmhYsgPiB6ZXJvXC13YWl0XC1zdGF0ZTsKK+WcqOW+iOWkmuaWuemdoiA+IGluXC1tYW55XC1hc3BlY3RzOwor5L+E5be05bqV5Lqe5pu4ID4gYm9va1wtb2ZcLW9iYWRpYWg7Civmlbjmk5rpj4jot6/lsaQgPiBkYXRhXC1saW5rXC1sYXllcjsKK+eoruaXj+S4u+e+qeiAhSA+IHJhY2lzdFwtXChwZXJzb25cKTsKK+e2sue1oeeAj+imveWZqCA+IG5ldHdvcmtcLWJyb3dzZXI7CivlrqLmiLbmqZ/ou5/ku7YgPiBjbGllbnRcLXNvZnR3YXJlOwor6Ieq5YuV5ZSu6LKo5qmfID4gdmVuZGluZ1wtbWFjaGluZTsKK+e2sue1oeaJk+WNsOapnyA+IG5ldHdvcmtcLXByaW50ZXI7Civmnb/mnb/lha3ljYHlm5sgPiB1bmFjY29tbW9kYXRpbmc7CivnrKzkuIDlgIvlsaTmrKEgPiB0aGVcLWZpcnN0XC1zdGFnZTsKK+WFqOeQg+izh+ioiue2siA+IHdvcmxkXC13aWRlXC13ZWI7Civku6XlpKrntrLntaHluYAgPiBldGhlcm5ldFwtZnJhbWU7CivkuI3lubPnrYnmop3ntIQgPiB1bmVxdWFsXC10cmVhdHk7CivllpjkuI3pgY7msKPkvoYgPiBjYW5ub3RcLWJyZWF0aGU7CivmjbflhYvlhbHlkozlnIsgPiBjemVjaFwtcmVwdWJsaWM7Civlt6Xmpa3nmoTlt6jpoK0gPiBpbmR1c3RyeVwtbW9nb2w7Civmr4/nq6/lj6Plg7nmoLwgPiBwcmljZVwtcGVyXC1wb3J0Owor5LiN5q2j5bi454uA5rOBID4gYWJub3JtYWxcLXN0YXRlOwor6ZaL5pS+5byP57O757WxID4gb3Blblwtc3lzdGVtXChzXCk7CivkuJbnlYznmoToqp7oqIAgPiB3b3JsZFwtbGFuZ3VhZ2U7Civmv4DlhYnmiZPlvJXmqZ8gPiBsYXNlclwtcHJpbnRlcjsKK+WTpeael+WkmuW+jOabuCA+IDJcLWNvcmludGhpYW5zOwor5LiN6KiY5ZCN5oqV56WoID4gc2VjcmV0XC1iYWxsb3Q7CivkuI3liJfpoZvoq7jls7YgPiBicml0aXNoXC1pc2xlczsKK+WTpeael+WkmuWJjeabuCA+IDFcLWNvcmludGhpYW5zOwor5LiN5Y+v6IO955qE5LqLID4gaW1wb3NzaWJpbGl0eTsKK+eZvuWIhuS5i+S6lOWNgSA+IGZpZnR5XC1wZXJjZW50Owor6Im+5ruL55eF5oqX6auUID4gYWlkc1wtYW50aWJvZHk7CivkuI3lj6/kvrXniq/mrIogPiBpbnZpb2xhYmlsaXR5Owor6ZCz5bCE5Y2w6KGo5qmfID4gbGFzZXJcLXByaW50ZXI7CivnlJ/lkb3nmoTpgbrot6EgPiB0cmFjZVwtb2ZcLWxpZmU7CivkuIDkuZ3kuZ3kuIPlubQgPiB0aGVcLXllYXJcLTE5OTc7CivlhajkuJbnlYznrKzkuIAgPiB3b3JsZCcnc1wtZmlyc3Q7Civmma7pgJrogIHnmb7lp5MgPiBjb21tb25cLXBlb3BsZTsKK+iJvua7i+eXheaCo+iAhSA+IGFpZHNcLXBhdGllbnQ7CivnsL/oqJjnrqHnkIblk6EgPiBjb21taXNzYXJpYW47CivmoLjmrablmajoqabpqZcgPiBudWNsZWFyXC10ZXN0Owor5LqM5Y2B5LiA5LiW57SAID4gMjFzdFwtY2VudHVyeTsKK+acieaineacieeQhuWcsCA+IG1ldGhvZGljYWxseTsKK+S4jeaYr+eOqeWFkueahCA+IGl0JydzXC1ub1wtam9rZTsKK+eyl+S/l+eahOmajue0miA+IHZ1bGdhclwtY2xhc3M7CivmiZPljbDmnI3li5nlmaggPiBwcmludFwtc2VydmVyOwor6LOT6KW/5rOV5bC85LqeID4gcGVubnN5bHZhbmlhOwor6IC25Yip57Gz5ZOA5q2MID4gbGFtZW50YXRpb25zOwor5YWr5Lmd5LiN6Zui5Y2BID4gcHJldHR5XC1jbG9zZTsKK+mWi+aUvuW8j+e2sui3ryA+IG9wZW5cLW5ldHdvcms7CivlhYvoo6Hlp4bmnpflrq4gPiB0aGVcLWtyZW1saW47CivlpKrlubPmtIvpgLHpgoogPiBwYWNpZmljXC1yaW07Civmv4DlhYnkuozmpbXnrqEgPiBsYXNlclwtZGlvZGU7CivlmajlrpjmjZDnjbvogIUgPiBvcmdhblwtZG9ub3I7Civmlofku7bmnI3li5nlmaggPiBmaWxlXC1zZXJ2ZXI7CivnjrvmhI/ogLPlrprlvosgPiBib3lsZScnc1wtbGF3Owor5LiA5Y2D5Zub55m+5YSEID4gMTQwXC1iaWxsaW9uOwor6Ieq55Sx6YG45pOH5qyKID4gZnJlZVwtYWdlbmN5Owor5be05p6v5a+n5Li7576pID4gYmFrdW5pbmlzbTsKK+iqquS4jeWHuuipseS+hiA+IHNwZWVjaGxlc3M7CivloZTlkInlhYvmlq/lnaYgPiB0YWppa2lzdGFuOwor5Yqg5Yip56aP5bC85LqeID4gY2FsaWZvcm5pYTsKK+S9v+eUqOiAheS4reS7iyA+IHVzZXJcLWFnZW50Owor5ZOI6Jap5YWL5pav5Z2mID4ga2F6YWtoc3RhbjsKK+eZvuWIhuS5i+S5neWNgSA+IDkwXC1wZXJjZW50Owor5YWs6ZaL6KiO6KuW5pyDID4gb3BlblwtZm9ydW07Civoib7mu4vnl4Xnl4Xmr5IgPiBhaWRzXC12aXJ1czsKK+WcsOaWueWumOiBt+S9jSA+IHByZWZlY3R1cmU7Civno4Hnm6TpqYXli5XlmaggPiBkaXNsXC1kcml2ZTsKK+Wls+ijneijgee4q+W4qyA+IGRyZXNzbWFrZXI7CivplbflrZDnmoTlkI3ku70gPiBiaXJ0aHJpZ2h0Owor5LiA55m+5LqU5Y2B5YSEID4gMTVcLWJpbGxpb247CivpmL/mr5Topb/lsLzkup4gPiBhYnlzc2luaWE7CivnpL7mnIPkuLvnvqnogIUgPiBzb2NpYWxpc3Q7Civmj5DmkanlpKrlkI7mm7ggPiAyXC10aW1vdGh5Owor5Yiw55uu5YmN54K65q2iID4gdW50aWxcLW5vdzsKK+a1geihjOaAp+aEn+WGkiA+IGluZmx1ZW56YTsKK+S4jeepqeWumuawo+a1gSA+IHR1cmJ1bGVudDsKK+aPkOaRqeWkquWJjeabuCA+IDFcLXRpbW90aHk7Civms6LliKnlsLzopb/kup4gPiBwb2x5bmVzaWE7CivlnJbmm7jnrqHnkIblk6EgPiBsaWJyYXJpYW47CivljbDluqblsLzopb/kup4gPiBpbmRvbmVzaWE7CivmsJHkuLvkuLvnvqnogIUgPiBkZW1vY3JhdHM7CivorornhKbot53pj6HpoK0gPiB6b29tXC1sZW5zOwor5LyB5qWt6ZaT57ay6LevID4gZXh0cmFuZXQ7CivluLjlnZDmsb3ou4rogIUgPiBtb3RvcmlzdDsKK+axvei7iuWxleimveacgyA+IGNhclwtc2hvdzsKK+S8gealreWFp+e2sui3ryA+IGludHJhbmV0Owor5pKS5q+N6ICz6KiY5LiLID4gMlwtc2FtdWVsOwor5pKS5q+N6ICz6KiY5LiKID4gMVwtc2FtdWVsOwor5Zub5pyI5Y2B5LiD6JmfID4gYXByaWxcLTE3Owor56We5a2456CU56m25omAID4gc2VtaW5hcnk7Civln4PloZ7kv4Tmr5Tkup4gPiBldGhpb3BpYTsKK+Wlp+WFi+aLieiNt+mmrCA+IG9rbGFob21hOwor5LiN5ZCN6K295LqL54mpID4gZGlzaG9ub3I7Civmtbfou43nuL3lj7jku6QgPiBhZG1pcmFsOwor5LqU5pyI5Y2B5LqU6JmfID4gbWF5XC0xXC01Owor6Zi/54i+5Y+K5Yip5LqeID4gYWxnZXJpYTsKK+S4g+aciOS4ieWNgeiZnyA+IGp1bHlcLTMwOwor6aas5YWL5oCd5Li7576pID4gbWFyeGlzbTsKK+mYv+eIvuW3tOWwvOS6niA+IGFsYmFuaWE7CivkuIDnr4BcKOipqVwpID4gc3RhbnphOwor6YCP5Y2w54mI5Y2w5Yi3ID4gb2Zmc2V0Owor5q+b57mU6YGL5YuV6KGrID4gamVyc2V5Owor55S35L+u6YGT6Zmi6ZW3ID4gYWJib3Q7Civoqr/liLbop6Poqr/lmaggPiBtb2RlbTsKK+S4ieiJsue0q+e+heiYrSA+IHBhbnN5Owor5a6J5YWo55CG5LqL5pyDID4gdGhlXC11Owor5oqx6Jaq5pWR54GrID4gY2FycnlcLWZhZ2dvdHNcLXRvXC1wdXRcLW91dFwtYVwtZmlyZVwtXC1cLWFkb3B0XC1hXC13cm9uZ1wtbWV0aG9kXC10b1wtc2F2ZVwtYVwtc2l0dWF0aW9uXC1hbmRcLWVuZFwtdXBcLWJ5XC1tYWtpbmdcLWl0XC13b3JzZTsKK+adr+awtOi7iuiWqiA+IHRyeWluZ1wtdG9cLXB1dFwtb3V0XC1hXC1idXJuaW5nXC1jYXJ0bG9hZFwtb2ZcLWZhZ2dvdHNcLXdpdGhcLWFcLWN1cFwtb2ZcLXdhdGVyXC1cLVwtYW5cLXV0dGVybHlcLWluYWRlcXVhdGVcLW1lYXN1cmU7Civovq/oqLzmlr3msrsgPiBkaWFnbm9zaXNcLWFuZFwtdHJlYXRtZW50XC1iYXNlZFwtb25cLWFuXC1vdmVyYWxsXC1hbmFseXNpc1wtb2ZcLXRoZVwtaWxsbmVzc1wtYW5kXC10aGVcLXBhdGllbnQnJ3NcLWNvbmRpdGlvbjsKK+aVneW4muiHquePjSA+IHZhbHVlXC1vbmUnJ3NcLW93blwtb2xkXC1icm9vbVwtXC1cLWNoZXJpc2hcLXNvbWV0aGluZ1wtb2ZcLWxpdHRsZVwtdmFsdWVcLXNpbXBseVwtYmVjYXVzZVwtaXRcLWlzXC1vbmUnJ3NcLW93bjsKK+WFteS4jeihgOWIgyA+IHRoZVwtZWRnZXNcLW9mXC10aGVcLXN3b3Jkc1wtbm90XC1iZWluZ1wtc3RhaW5lZFwtd2l0aFwtYmxvb2RcLVwtXC13aW5cLXZpY3RvcnlcLXdpdGhvdXRcLWZpcmluZ1wtYVwtc2hvdDsKK+mkiuWFkumYsuiAgSA+IFwob2ZcLXBhcmVudHNcKVwtdG9cLWJyaW5nXC11cFwtY2lobGRyZW5cLWZvclwtdGhlXC1wdXJwb3NlXC1vZlwtYmVpbmdcLWxvb2tlZFwtYWZ0ZXJcLWluXC1vbGRcLWFnZTsKK+S4jeWFseaItOWkqSA+IHdpbGxcLW5vdFwtbGl2ZVwtdW5kZXJcLXRoZVwtc2FtZVwtc2t5XC1cKHdpdGhcLW9uZScnc1wtZW5lbXlcKVwtXC1cLWFic29sdXRlbHlcLWlycmVjb25jaWxhYmxlOwor5pOK5YW25oOw5q24ID4gYXZvaWRcLXRoZVwtZW5lbXlcLXdoZW5cLWhlXC1pc1wtZnJlc2hcLWFuZFwtc3RyaWtlXC1oaW1cLXdoZW5cLWhlXC1pc1wtdGlyZWRcLWFuZFwtd2l0aGRyYXdzOwor6YG/5YW26Yqz5rCjID4gYXZvaWRcLXRoZVwtZW5lbXlcLXdoZW5cLWhlXC1pc1wtZnJlc2hcLWFuZFwtc3RyaWtlXC1oaW1cLXdoZW5cLWhlXC1pc1wtdGlyZWRcLWFuZFwtd2l0aGRyYXdzOwor5L+d55Sy5Yi25bqmID4gdGhlXC1iYW9cLWppYVwtc3lzdGVtXC1cKGFuXC1hZG1pbmlzdHJhdGl2ZVwtc3lzdGVtXC1vcmdhbml6ZWRcLW9uXC1iYXNpc1wtb2ZcLWhvdXNlaG9sZHNcKTsKK+S4jei+qOiPvem6pSA+IGJlXC11bmFibGVcLXRvXC10ZWxsXC1iZWFuc1wtZnJvbVwtd2hlYXRcLVwtXC1oYXZlXC1ub1wta25vd2xlZGdlXC1vZlwtcHJhY3RpY2FsXC1tYXR0ZXJzOwor5oGt5Zac55m86LKhID4gY29uZ3JhdHVsYXRpb25zXC1mb3JcLWdldHRpbmdcLXJpY2hcLVwodHJhZGl0aW9uYWxcLWNoaW5lc2VcLW5ld1wteWVhcicnc1wtZnV0dXJlXC11c2U7CivloZ7pn4voo6Hoq74gPiBcW2plYW5cLW1pY2hlbFxdXC1zZXZlcmlub1wtXFt3b3JsZFwtYmFua1wtdmljZVwtcHJlc2lkZW50XCxcLWVhc3RcLWFzaWFcLWFuZFwtcGFjaWZpY1xdOwor5pyJ5pyf5b6S5YiRID4gbGltaXRlZFwtdGVybVwtb2ZcLWltcHJpc29ubWVudFwtXChpZVwsXC1hbnl0aGluZ1wtbGVzc1wtdGhhblwtbGlmZVwtaW1wcmlzb25tZW50XCk7Civplonnm67loZ7ogb0gPiBzaHV0c1wtb25lJydzXC1leWVzXC1hbmRcLXN0b3BcLXVwXC1vbmUnJ3NcLWVhcnNcLVwtXC1iZVwtb3V0XC1vZlwtdG91Y2hcLXdpdGhcLXJlYWxpdHk7CivnrKjps6XlhYjpo5sgPiBjbHVtc3lcLWJpcmRzXC1oYXZlXC10b1wtc3RhcnRcLWZseWluZ1wtZWFybHlcLVwtXC10aGVcLXNsb3dcLW5lZWRcLXRvXC1zdGFydFwtZWFybHk7CivmnKzojYnntrHnm64gPiBhblwtb3V0bGluZVwtdHJlYXRpc2VcLW9mXC1tZWRpY2FsXC1oZXJic1wsXC1jb21waWxlZFwtYnlcLWxpM1wtc2hpMlwtemhlbjFcLeadjuaZguePjTsKK+WFteW8t+mmrOWjryA+IHN0cm9uZ1wtc29sZGllcnNcLWFuZFwtc3R1cmR5XC1ob3JzZXNcLVwtXC1hXC13ZWxsXC10cmFpbmVkXC1hbmRcLXBvd2VyZnVsXC1hcm15Owor5qWt5L2Z5aSn5a24ID4gY29sbGVnZVwtZm9yXC1wZW9wbGVcLXdob1wtYXR0ZW5kXC1hZnRlclwtd29ya1wtXChsaXRcLlw6XC1zcGFyZVwtdGltZVwtY29sbGVnZVwpOwor5o2V6aKo5o2J5b2xID4gY2hhc2VcLXRoZVwtd2luZFwtYW5kXC1jbHV0Y2hcLWF0XC1zaGFkb3dzXC1cLVwtbWFrZVwtZ3JvdW5kbGVzc1wtYWNjdXNhdGlvbnM7CivkuI3liIblvbzmraQgPiBtYWtlXC1ub1wtZGlzdGluY3Rpb25cLWJldHdlZW5cLXdoYXQnJ3NcLW9uZScnc1wtb3duXC1hbmRcLXdoYXQnJ3NcLWFub3RoZXInJ3M7CivkuI3nn6Xlh6Hlub4gPiBjYW4nJ3RcLXRlbGxcLWhvd1wtbWFueVwtdGhlcmVcLWFyZVwtXC1cLXRoZXJlXC1hcmVcLW51bWVyb3VzXC1zaW1pbGFyXC1jYXNlczsKK+aKseaumOWuiOe8uiA+IGNoZXJpc2hcLXRoZVwtb3V0bW9kZWRcLWFuZFwtcHJlc2VydmVcLXRoZVwtb3V0d29yblwtXC1cLWJlXC1jb25zZXJ2YXRpdmU7CivljZrlj6TpgJrku4ogPiBjb252ZXJzYW50XC13aXRoXC10aGluZ3NcLXBhc3RcLWFuZFwtcHJlc2VudFwtXC1cLWVydWRpdGVcLWFuZFwtaW5mb3JtZWQ7CivlpKfprKflpKnlrq4gPiBcInRoZVwtbW9ua2V5XC1jcmVhdGVzXC1oYXZvY1wtaW5cLWhlYXZlblwiXCxcLXN0b3J5XC1hYm91dFwtc3VuXC13dVwta29uZzsKK+aCsuWkqeaGq+S6uiA+IGJlbW9hblwtdGhlXC1zdGF0ZVwtb2ZcLXRoZVwtdW5pdmVyc2VcLWFuZFwtcGl0eVwtdGhlXC1mYXRlXC1vZlwtbWFua2luZDsKK+S4jeacjeawtOWcnyA+IFwob2ZcLWFcLXN0cmFuZ2VyXClcLW5vdFwtYWNjdXN0b21lZFwtdG9cLXRoZVwtY2xpbWF0ZVwtb2ZcLWFcLW5ld1wtcGxhY2U7Civlk4DlhbXlv4Xli50gPiBhblwtYXJteVwtYnVybmluZ1wtd2l0aFwtcmlnaHRlb3VzXC1pbmRpZ25hdGlvblwtaXNcLWJvdW5kXC10b1wtd2luOwor55+b6aCt5oyH5ZCRID4gdGFyZ2V0XC1zb21lb25lXC1vclwtc29tZXRoaW5nXC1cKGZvclwtYXR0YWNrXCxcLWNyaXRpY2lzbVwsXC1ldGNcLlwpOwor5LiN5oGl5LiL5ZWPID4gbm90XC1mZWVsXC1hc2hhbWVkXC10b1wtYXNrXC1hbmRcLWxlYXJuXC1mcm9tXC1vbmUnJ3NcLXN1Ym9yZGluYXRlczsKK+WNoeaLiU9LID4ga2FyYW9rZVwtXChzaW5naW5nXC10b1wtcmVjb3JkZWRcLWluc3RydW1lbnRhbFwtYWNjb21wYW5pbWVudFwpOwor5Lit5ZyL5rCR6IiqID4gZ2VuZXJhbFwtYWRtaW5pc3RyYXRpb25cLW9mXC1jaXZpbFwtYXZpYXRpb25cLW9mXC1jaGluYVwtXChjYWFjXCk7CivkuInlnIvmvJTnvqkgPiBuYW1lXC1vZlwtYVwtY2xhc3NpY1wtbm92ZWxcLFwtXCJyb21hbmNlXC1vZlwtdGhlXC10aHJlZVwta2luZ2RvbXNcIjsKK+iDjOawtOS4gOaIsCA+IGZpZ2h0XC13aXRoXC1vbmUnJ3NcLWJhY2tcLXRvXC10aGVcLXJpdmVyXC1cLVwtZmlnaHRcLXRvXC13aW5cLW9yXC1kaWU7Civmna/lvJPom4flvbEgPiBtaXN0YWtpbmdcLXRoZVwtcmVmbGVjdGlvblwtb2ZcLWFcLWJvd1wtaW5cLXRoZVwtY3VwXC1mb3JcLWFcLXNuYWtlOwor6IOM5LqV6Zui6YSJID4gbGVhdmVcLW9uZScnc1wtbmF0aXZlXC1wbGFjZVwtXChlc3BlY2lhbGx5XC1hZ2FpbnN0XC1vbmUnJ3NcLXdpbGxcKTsKK+azoueAvui1t+S8jyA+IG9mXC1hXC1waWVjZVwtb2ZcLXdyaXRpbmdcLXdpdGhcLW9uZVwtY2xpbWF4XC1mb2xsb3dpbmdcLWFub3RoZXI7CivkuI3ngrrlt7LnlJogPiByZWZyYWluXC1mcm9tXC1nb2luZ1wtdG9cLWV4dHJlbWVzXC1pblwtbWV0aW5nXC1vdXRcLXB1bmlzaG1lbnQ7CivkuI3ntITogIzlkIwgPiB0YWtlXC10aGVcLXNhbWVcLWFjdGlvblwtb3JcLXZpZXdcLXdpdGhvdXRcLXByaW9yXC1jb25zdWx0YXRpb247CivlhavpnaLnjrLnk48gPiBiZVwtc21vb3RoXC1hbmRcLXNsaWNrXC1cKGluXC1lc3RhYmxpc2hpbmdcLXNvY2lhbFwtcmVsYXRpb25zXCk7CivnnL7lv5fmiJDln44gPiBcInVuaXR5XC1vZlwtd2lsbFwtaXNcLWFuXC1pbXByZWduYWJsZVwtc3Ryb25naG9sZFwiXC1cKHByb3ZlcmJcKTsKK+aKl+aXpeaIsOeIrSA+IFwoY2hpbmEnJ3NcKVwtd2FyXC1vZlwtcmVzaXN0YW5jZVwtYWdhaW5zdFwtamFwYW5cLVwoMTkzN1wtMTk0NVwpOwor5aSn5p2Q5bCP55SoID4gdXNpbmdcLWFcLXRhbGVudGVkXC1wZXJzb25cLWluXC1hblwtaW5zaWduaWZpY2FudFwtcG9zaXRpb247CivkuI3ogZ7kuI3llY8gPiBub3RcLWJvdGhlclwtdG9cLWFza1wtcXVlc3Rpb25zXC1vclwtbGlzdGVuXC10b1wtd2hhdCcnc1wtc2FpZDsKK+S4puihjOS4jeaCliA+IGJvdGhcLWNhblwtYmVcLWltcGxlbWVudGVkXC13aXRob3V0XC1jb21pbmdcLWludG9cLWNvbmZsaWN0Owor5q2l5q2l54K654efID4gYWR2YW5jZVwtZ3JhZHVhbGx5XC1hbmRcLWVudHJlbmNoXC1vbmVzZWxmXC1hdFwtZXZlcnlcLXN0ZXA7CivkuIDmnJvnhKHpmpsgPiBhc1wtZmFyXC1hc1wtdGhlXC1leWVcLWNhblwtc2VlXC1cKGxpdFw6XC1sb29rXC1hZmFyXC1ub1wtYm91bmRcKTsKK+S4jeimi+e2k+WCsyA+IG5vdFwtdG9cLWJlXC1mb3VuZFwtaW5cLXRoZVwtY2xhc3NpY3NcLVwtXC1ub3RcLWF1dGhvcml0YXRpdmU7CivmkqXpm7Lopovml6UgPiBkaXNwZWxcLXRoZVwtY2xvdWRzXC1hbmRcLXNlZVwtdGhlXC1zdW5cLVwtXC1yZXN0b3JlXC1qdXN0aWNlOwor5a6J5q2l55W26LuKID4gd2Fsa1wtb3ZlclwtbGVpc3VyZWx5XC1pbnN0ZWFkXC1vZlwtcmlkaW5nXC1pblwtYVwtY2FycmlhZ2U7CivkuI3li53mnproiIkgPiB0b29cLW51bWVyb3VzXC10b1wtbWVudGlvblwtaW5kaXZpZHVhbGx5XC1vclwtb25lXC1ieVwtb25lOwor6LOT6Iez5aaC5q24ID4gZ3Vlc3RzXC1mZWVsXC1hdFwtaG9tZVwtXChpblwtYVwtaG90ZWxcLFwtZ3Vlc3Rob3VzZVwsXC1ldGNcLlwpOwor5bCW6Zaj5YiX5bO2ID4gc2Vua2FrdVwtaXNsYW5kc1wtXChqYXBhbmVzZVwtbmFtZVwtZm9yXC1kaWFveXVcLWlzbGFuZHNcKTsKK+e2reWQvueIvuaXjyA+IHRoZVwtdXlndXJcLVwodWlnaHVyXClcLW5hdGlvbmFsaXR5XCxcLWxpdmluZ1wtaW5cLXhpbmppYW5nOwor5Y2X6I+v5pep5aCxID4gc291dGhcLWNoaW5hXC1tb3JuaW5nXC1wb3N0XC1cKG5ld3NwYXBlclwtaW5cLWhvbmdcLWtvbmdcKTsKK+eXheWFpeiGj+iCkyA+IHRoZVwtZGlzZWFzZVwtaGFzXC1hdHRhY2tlZFwtdGhlXC12aXRhbHNcLVwtXC1iZXlvbmRcLWN1cmU7CivntITnv7Dmi4nosp0gPiBqb2huXC1yYWJlXC1cKGdlcm1hblwtZXlld2l0bmVzc1wtdG9cLW5hbmppbmdcLW1hc3NhY3JlXCk7CivkuI3noLTkuI3nq4sgPiB3aXRob3V0XC1kZXN0cnVjdGlvblwtdGhlcmVcLWNhblwtYmVcLW5vXC1jb25zdHJ1Y3Rpb247CivljIXnlKLliLDmiLYgPiBmaXhpbmdcLW9mXC1mYXJtXC1vdXRwdXRcLXF1b3Rhc1wtZm9yXC1lYWNoXC1ob3VzZWhvbGQ7Civpp7Hpp53npaXlrZAgPiBuYW1lXC1vZlwtYVwtbm92ZWxcLFwtbHVvXC10dW9cLXhpYW5nemlcLFwtYnlcLWxhb1wtc2hlXC3ogIHoiI07CivpgLzkuIrmqJHlsbEgPiBiZVwtZHJpdmVuXC10b1wtam9pblwtdGhlXC1saWFuZ3NoYW5cLW1vdW50YWluXC1yZWJlbHM7CivljZfovYXljJfovY0gPiBcKGZpZ1wuXClcLWFjdFwtaW5cLWFcLXdheVwtdGhhdFwtZGVmZWF0c1wtb25lJydzXC1wdXJwb3NlOwor5L+d5aSW5bCx6YarID4gXChvZlwtYVwtcHJpc29uZXJcKVwtcmVsZWFzZWRcLWZvclwtbWVkaWNhbFwtdHJlYXRtZW50Owor6JK46JK45pel5LiKID4gYmVjb21pbmdcLW1vcmVcLXByb3NwZXJvdXNcLXdpdGhcLWVhY2hcLXBhc3NpbmdcLWRheTsKK+eDj+mtr+acqOm9iiA+IHVydW1xaVwtXChjYXBpdGFsXC1vZlwteGluamlhbmdcLWF1dG9ub21vdXNcLXJlZ2lvblwpOwor5a6J5Zyf6YeN6YG3ID4gaGF0ZVwtdG9cLWxlYXZlXC1hXC1wbGFjZVwtd2hlcmVcLW9uZVwtaGFzXC1saXZlZFwtbG9uZzsKK+W3peWVhumKgOihjCA+IGluZHVzdHJpYWxcLWFuZFwtY29tbWVyY2lhbFwtYmFua1wtb2ZcLWNoaW5hXC1cKGljYmNcKTsKK+S6i+iIh+mhmOmBlSA+IHRoaW5nc1wtZG9uJyd0XC10dXJuXC1vdXRcLXRoZVwtd2F5XC15b3VcLXdhbnRcLW9yXC1wbGFuOwor5by154eI57WQ57a1ID4gYmVcLWRlY29yYXRlZFwtd2l0aFwtbGFudGVybnNcLWFuZFwtY29sb3JlZFwtYmFubmVyczsKK+mWiemWgOaAnemBjiA+IHNodXRcLW9uZXNlbGZcLXVwXC1hbmRcLXBvbmRlclwtb3Zlclwtb25lJydzXC1taXN0YWtlczsKK+mWiemXnOiHquWuiCA+IGNsb3NlXC10aGVcLWNvdW50cnlcLXRvXC1pbnRlcm5hdGlvbmFsXC1pbnRlcmNvdXJzZTsKK+S4jemBv+iJsemaqiA+IHNocmlua1wtb3JcLWZsaW5jaFwtZnJvbVwtbm9cLWRpZmZpY3VsdHlcLW9yXC1kYW5nZXI7CivpmL/ml7rmm7LmspsgPiBuZ2F3YW5nXC1jaG9lcGVsXC1cKHRpYmV0YW5cLFwtZnVsbGJyaWdodFwtc2Nob2xhclwpOwor55Wr6JuH5re76LazID4gcnVpblwtdGhlXC1lZmZlY3RcLWJ5XC1hZGRpbmdcLXdoYXRcLWlzXC1zdXBlcmZsdW91czsKK+S7l+e+qeWft+iogCA+IHNwZWFrXC1vdXRcLW9uXC1hXC1tYXR0ZXJcLW9mXC1wcmluY2lwbGVcLW9yXC1qdXN0aWNlOwor5YW16Ieo5Z+O5LiLID4gdGhlXC1hdHRhY2tpbmdcLWFybXlcLWhhc1wtcmVhY2hlZFwtdGhlXC1jaXR5XC1nYXRlczsKK+iDjOWfjuWAn+S4gCA+IG1ha2VcLWFcLWxhc3RcLWRpdGNoXC1zdGFuZFwtYmVmb3JlXC10aGVcLWNpdHlcLXdhbGw7Civnmb7mhJ/kuqTpm4YgPiBhbGxcLXNvcnRzXC1vZlwtZmVlbGluZ3NcLXdlbGxcLXVwXC1pblwtb25lJydzXC1oZWFydDsKK+WFteS4jeWOreipkCA+IHRoZXJlXC1jYW5cLW5ldmVyXC1iZVwtdG9vXC1tdWNoXC1kZWNlcHRpb25cLWluXC13YXI7CivkupTlha3ljYHmrbIgPiBcKGluXC1vbmUnJ3NcKVwtZmlmdGllc1wtb3JcLXNpeHRpZXNcLVwoeWVhcnNcLW9mXC1hZ2VcKTsKK+mBv+mHjeWwsei8lSA+IGF2b2lkXC10aGVcLWltcG9ydGFudFwtYW5kXC1kd2VsbFwtb25cLXRoZVwtdHJpdmlhbDsKK+aomeaWsOeri+eVsCA+IHN0YXJ0XC1zb21ldGhpbmdcLW5ld1wtaW5cLW9yZGVyXC10b1wtYmVcLWRpZmZlcmVudDsKK+Wkp+WKn+WRiuaIkCA+IHN1Y2Nlc3NmdWxseVwtYWNjb21wbGlzaGVkXC1cKHByb2plY3RcLW9yXC1nb2FsXCk7CivnhKHmiYDnlKjlv4MgPiBlYXRcLXRocmVlXC1zcXVhcmVcLW1lYWxzXC1hXC1kYXlcLWFuZFwtZG9cLW5vXC13b3JrOwor54+t6ZaA5byE5panID4gZGlzcGxheVwtb25lJydzXC1zbGlnaHRcLXNraWxsXC1iZWZvcmVcLWFuXC1leHBlcnQ7CivkuK3lnIvml6XloLEgPiBjaGluYVwtZGFpbHlcLVwoYW5cLWVuZ2xpc2hcLWxhbmd1YWdlXC1uZXdzcGFwZXJcKTsKK+S4jeWPr+e1guaXpSA+IGJlXC11bmFibGVcLXRvXC1jYXJyeVwtb25cLWV2ZW5cLWZvclwtYVwtc2luZ2xlXC1kYXk7Civpo73po5/ntYLml6UgPiBlYXRcLXRocmVlXC1zcXVhcmVcLW1lYWxzXC1hXC1kYXlcLWFuZFwtZG9cLW5vXC13b3JrOwor5Zau5qeN5Yy56aasID4gc2luZ2xlXC1oYW5kZWRcLVwobGl0XDpcLXNpbmdsZVwtc3BlYXJcLW9uZVwtaG9yc2VcKTsKK+WQjeWJr+WFtuWvpiA+IG5vdFwtanVzdFwtaW5cLW5hbWVcLW9ubHlcLFwtYnV0XC1hbHNvXC1pblwtcmVhbGl0eTsKK+WWnOaWsOWOreiIiiA+IGxpdGVyYWxcOlwtdG9cLWxpa2VcLXRoZVwtbmV3XCxcLWFuZFwtaGF0ZVwtdGhlXC1vbGQ7Civmi43moYjlj6vntZUgPiBsaXRcLlw6XC1zbGFwXC10aGVcLXRhYmxlXC1hbmRcLXNob3V0XC13aXRoXC1wcmFpc2U7CivpoqjlnJ/kurrmg4UgPiBsb2NhbFwtY29uZGl0aW9uc1wtXChodW1hblwtYW5kXC1lbnZpcm9ubWVudGFsXCk7CivpmL/mi4nloZTmlq8gPiBcKGFsaVwpXC1hbGF0YXNcLVwoaW5kb25lc2lhblwtZm9yZWlnblwtbWluaXN0ZXJcKTsKK+S4reWFseS4reWkriA+IGNoaW5lc2VcLWNvbW11bmlzdFwtcGFydHlcLWNlbnRyYWxcLWNvbW1pdHRlZTsKK+WNmuiBnuW8t+iomCA+IGhhdmVcLXdpZGVcLWxlYXJuaW5nXC1hbmRcLWFcLXJldGVudGl2ZVwtbWVtb3J5Owor55m+5bm05aSn6KiIID4gYVwtcHJvamVjdFwtb2ZcLXZpdGFsXC1hbmRcLWxhc3RpbmdcLWltcG9ydGFuY2U7Civmi5Toi5fliqnplbcgPiBzcG9pbFwtdGhpbmdzXC10aHJvdWdoXC1leGNlc3NpdmVcLWVudGh1c2lhc207Civogq/mma7ntKLmgakgPiBcKGRpcmtcKVwta2VtcHRob3JuZVwtXCh1c1wtc2VuYXRvclwtZnJvbVwtaWRhaG9cKTsKK+WkluWtq+Wls+WFkiA+IGdyYW5kZGF1Z2h0ZXJcLVwoZGF1Z2h0ZXJcLW9mXC1vbmUnJ3NcLWRhdWdoZXJcKTsKK+eZvuaKmOS4jeaSkyA+IGtlZXBcLW9uXC1maWdodGluZ1wtaW5cLXNwaXRlXC1vZlwtYWxsXC1zZXRiYWNrczsKK+Wuiei6q+eri+WRvSA+IHNldHRsZVwtZG93blwtYW5kXC1nZXRcLW9uXC13aXRoXC1vbmUnJ3NcLXB1cnN1aXQ7CivkuI3lj6/kuIDkuJYgPiBjb25zaWRlclwtb25lc2VsZlwtdW5leGNlbGxlZFwtaW5cLXRoZVwtd29ybGQ7CivntZXlsI3mlbjlrZcgPiBhYnNvbHV0ZVwtXChhc1wtb3Bwb3NlZFwtdG9cLXJlbGF0aXZlXClcLW51bWJlcjsKK+aKsemgrem8oOerhCA+IGNvdmVyXC10aGVcLWhlYWRcLWFuZFwtc25lYWtcLWF3YXlcLWxpa2VcLWFcLXJhdDsKK+eZvuW7ouS/seiIiCA+IGFsbFwtbmVnbGVjdGVkXC10YXNrc1wtYXJlXC1iZWluZ1wtdW5kZXJ0YWtlbjsKK+mBv+WvpuWwseiZmyA+IHN0YXlcLWNsZWFyXC1vZlwtdGhlXC1lbmVteScnc1wtbWFpblwtZm9yY2VcLWFuZDsKK+S4jeaxgueUmuinoyA+IG5vdFwtc2Vla1wtdG9cLXVuZGVyc3RhbmRcLXRoaW5nc1wtdGhvcm91Z2hseTsKK+S4reWkruWFqOacgyA+IHBsZW5hcnlcLXNlc3Npb25cLW9mXC10aGVcLWNlbnRyYWxcLWNvbW1pdHRlZTsKK+WPpOadsOaLieeIviA+IFwoaVwuXC1rXC5cKVwtZ3VqcmFsXC1cKHByaW1lXC1taW5pc3Rlclwtb2ZcLWluZGlhXCk7Civlhrfmt6Hpl5zkv4IgPiBjb2xkXC1yZWxhdGlvbnNcLVwoZVwuZ1wuXC1iZXR3ZWVuXC1jb3VudHJpZXNcKTsKK+S4jeS6huS6huS5iyA+IHNldHRsZVwtYVwtbWF0dGVyXC1ieVwtbGVhdmluZ1wtaXRcLXVuc2V0dGxlZDsKK+S4jeWNs+S4jemboiA+IGJlXC1uZWl0aGVyXC10b29cLWZhbWlsaWFyXC1ub3JcLXRvb1wtZGlzdGFudDsKK+e4veaUv+ayu+mDqCA+IFwobWlsaXRhcnlcKVwtZ2VuZXJhbFwtcG9saXRpY2FsXC1kZXBhcnRtZW50Owor5Y2K6Lev5Ye65a62ID4gc3dpdGNoXC10b1wtYVwtam9iXC1vbmVcLXdhc1wtbm90XC10cmFpbmVkXC1mb3I7Civnl4Xmr5LlrbjlrrYgPiB2aXJvbG9naXN0XC1cKHBlcnNvblwtd2hvXC1zdHVkaWVzXC12aXJ1c2VzXCk7CivntZDnpL7oh6rnlLEgPiBcKGNvbnN0aXR1dGlvbmFsXClcLWZyZWVkb21cLW9mXC1hc3NvY2lhdGlvbjsKK+iUk+W7tuWFqOWciyA+IHRvXC1zcHJlYWRcLXRocm91Z2hvdXRcLXRoZVwtZW50aXJlXC1jb3VudHJ5Owor55m+5oCd5LiN6KejID4gcmVtYWluXC1wdXp6bGVkXC1hZnRlclwtcG9uZGVyaW5nXC1vdmVyXC1zdGg7CivljYrli57li5XlipsgPiBvbmVcLWFibGVcLXRvXC1kb1wtbGlnaHRcLW1hbnVhbFwtbGFib3VyXC1vbmx5Owor57i95b6M5Yuk6YOoID4gXChtaWxpdGFyeVwpXC1nZW5lcmFsXC1sb2dpc3RpY3NcLWRlcGFydG1lbnQ7CivkuIDlnIvlhanliLYgPiBvbmVcLWNvdW50cnlcLFwtdHdvXC1zeXN0ZW1zXC1cKGNoaW5hXC10YWl3YW5cKTsKK+eZvemgreirp+iAgSA+IGxpdmVcLXRvXC1yaXBlXC1vbGRcLWFnZVwtaW5cLWNvbmp1Z2FsXC1ibGlzczsKK+aIkOWNg+S4iuiQrCA+IGJ5XC10aGVcLXRob3VzYW5kc1wtYW5kXC10ZW5zXC1vZlwtdGhvdXNhbmRzOwor5LiN5a6j6ICM5oiwID4gb3BlblwtaG9zdGlsaXRpZXNcLXdpdGhvdXRcLWRlY2xhcmluZ1wtd2FyOwor5LiN6YGg5Y2D6YeMID4gbWFrZVwtbGlnaHRcLW9mXC10cmF2ZWxsaW5nXC1hXC10aG91c2FuZFwtbGk7CivlronlsYXmqILmpa0gPiBsaXZlXC1hbmRcLXdvcmtcLWluXC1wZWFjZVwtYW5kXC1jb250ZW50bWVudDsKK+mBjemrlOmxl+WCtyA+IGNvdmVyZWRcLWFsbFwtb3Zlclwtd2l0aFwtY3V0c1wtYW5kXC1icnVpc2VzOwor5YWn5oeu5aSW5oKjID4gZG9tZXN0aWNcLXN0cmlmZVwtYW5kXC1mb3JlaWduXC1hZ3Jlc3Npb247Civmsrvnl4XmlZHkurogPiBjdXJlXC10aGVcLXNpY2tuZXNzXC10b1wtc2F2ZVwtdGhlXC1wYXRpZW50Owor5ZOA6bS76YGN6YeOID4gYVwtbGFuZFwtc3dhcm1pbmdcLXdpdGhcLWRpc2FzdGVyXC12aWN0aW1zOwor55eF5b6e5Y+j5YWlID4gaWxsbmVzc1wtZmluZHNcLWl0c1wtd2F5XC1pblwtYnlcLXRoZVwtbW91dGg7CivnuL3lj4PorIDpg6ggPiBcKG1pbGl0YXJ5XClcLWdlbmVyYWxcLXN0YWZmXC1oZWFkcXVhcnRlcnM7CivmkqXntYPmqILlmaggPiBwbHVja2VkXC1zdHJpbmdcLW9yXC1zdHJpbmdlZFwtaW5zdHJ1bWVudDsKK+WIpeWFt+S4gOagvCA+IGhhdmluZ1wtYVwtdW5pcXVlXC1vclwtZGlzdGluY3RpdmVcLXN0eWxlOwor6K6A6LOj5paw6IGeID4geW9taXVyaVwtc2hpbWJ1blwtXChqYXBhbmVzZVwtbmV3c3BhcGVyXCk7CivmiY3nlo/lrbjmt7ogPiBoYXZlXC1saXR0bGVcLXRhbGVudFwtYW5kXC1sZXNzXC1sZWFybmluZzsKK+mBv+WdkeiQveS6lSA+IGRvZGdlXC1hXC1waXRcLW9ubHlcLXRvXC1mYWxsXC1pbnRvXC1hXC13ZWxsOwor6K6K5rqr5YuV54mpID4gcG9pa2lsb3RoZXJtYWxcLVwoY29sZFwtYmxvb2RlZFwpXC1hbmltYWw7CivlpKfkuK3lrbjnlJ8gPiB1bml2ZXJzaXR5XC1hbmRcLWhpZ2hcLXNjaG9vbFwtc3R1ZGVudHM7CivlronliIblrojlt7EgPiBhYmlkZVwtYnlcLXRoZVwtbGF3XC1hbmRcLWJlaGF2ZVwtb25lc2VsZjsKK+Wkp+mhr+i6q+aJiyA+IGZ1bGx5XC1kaXNwbGF5aW5nXC1vbmUnJ3NcLWNhcGFiaWxpdGllczsKK+azoueAvuWjr+mXiiA+IHN1cmdpbmdcLWZvcndhcmRcLXdpdGhcLWdyZWF0XC1tb21lbnR1bTsKK+WbnuatuOS4reWciyA+IHRvXC1yZXR1cm5cLXRvXC1jaGluYVwtXChlXC5nXC5cLWhvbmdcLWtvbmdcKTsKK+aEm+iOq+iDveWKqSA+IHdpbGxpbmdcLXRvXC1oZWxwXC1idXRcLXVuYWJsZVwtdG9cLWRvXC1zbzsKK+iqv+afpee1kOaenCA+IHJlc3VsdHNcLVwob2ZcLWFuXC1pbnZlc3RpZ2F0aW9uXCxcLXBvbGxcKTsKK+eZvuerr+W+heiIiSA+IGFcLXRob3VzYW5kXC10aGluZ3NcLXJlbWFpblwtdG9cLWJlXC1kb25lOwor56eL6auY5rCj54i9ID4gY2xlYXJcLWFuZFwtcmVmcmVzaGluZ1wtYXV0dW1uXC13ZWF0aGVyOwor5Yaw5raI55Om6KejID4gbWVsdFwtbGlrZVwtaWNlXC1hbmRcLWJyZWFrXC1saWtlXC10aWxlczsKK+WNiuaWpOWFq+WFqSA+IG5vdFwtbXVjaFwtdG9cLWNob29zZVwtYmV0d2VlblwtdGhlXC10d287CivmraXkurrlvozlobUgPiBmb2xsb3dcLWluXC1vdGhlclwtcGVvcGxlJydzXC1mb290c3RlcHM7Civpvo3po5vps7PoiJ4gPiBsaXRcLlw6XC1kcmFnb25cLWZsaWVzXCxcLXBob2VuaXhcLWRhbmNlczsKK+Wci+mam+imi+iBniA+IGludGVybmF0aW9uYWxcLWJhY2tncm91bmRcLWtub3dsZWRnZTsKK+Wci+WLmeWnlOWToSA+IG1lbWJlclwtb2ZcLXN0YXRlXC1jb3VuY2lsXC1cKGluXC1jaGluYVwpOwor5Y+v56e75qSN5oCnID4gcG9ydGFiaWxpdHlcLVwocHJvZ3JhbW1pbmdcLWxhbmd1YWdlXCk7CivlkbzlkozmtannibkgPiBob2hob3RcLVwoY2FwaXRhbFwtb2ZcLWlubmVyXC1tb25nb2xpYVwpOwor5bCP6aGM5aSn5YGaID4gbWFrZVwtYVwtYmlnXC1mdXNzXC1vdmVyXC1hXC1taW5vclwtaXNzdWU7CivkuI3omZvmraTooYwgPiB0aGVcLXRyaXBcLWhhc1wtbm90XC1iZWVuXC1tYWRlXC1pblwtdmFpbjsKK+iogOirluiHqueUsSA+IFwoY29uc3RpdHV0aW9uYWxcKVwtZnJlZWRvbVwtb2ZcLXNwZWVjaDsKK+mWi+eZvOeSsOWigyA+IGRldmVsb3BtZW50XC1lbnZpcm9ubWVudFwtXChjb21wdXRlclwpOwor5LiN6K2Y5pmC5YuZID4gc2hvd1wtbm9cLXVuZGVyc3RhbmRpbmdcLW9mXC10aGVcLXRpbWVzOwor5LiN5pmC5LmL6ZyAID4gYVwtcG9zc2libGVcLXBlcmlvZFwtb2ZcLXdhbnRcLW9yXC1uZWVkOwor5Lul54mZ6YKE54mZID4gYVwtdG9vdGhcLWZvclwtYVwtdG9vdGhcLVwocmV0YWxpYXRpb25cKTsKK+eZvuaIsOeZvuWLnSA+IGVtZXJnZVwtdmljdG9yaW91c1wtaW5cLWV2ZXJ5XC1iYXR0bGU7CivnlLHmraTlj6/oposgPiBmcm9tXC10aGlzXCxcLWl0XC1jYW5cLWJlXC1zZWVuXC10aGF0XC5cLlwuOwor5a+46I2J5LiN55SfID4gXCJub3RcLWV2ZW5cLWFcLWJsYWRlXC1vZlwtZ3Jhc3NcLWdyb3dzXCI7Civmk6bkuq7nnLznnZsgPiByZW1vdmVcLXRoZVwtc2NhbGVzXC1mcm9tXC1vbmUnJ3NcLWV5ZXM7Civoo5zlgY/mlZHlvIogPiByZW1lZHlcLWRlZmVjdHNcLWFuZFwtcmVjdGlmeVwtZXJyb3JzOwor55m+5bed5q245rW3ID4gYWxsXC10aGluZ3NcLXRlbmRzXC1pblwtb25lXC1kaXJlY3Rpb247CivoqpPkuI3lj43mgpQgPiB0b1wtdm93XC1ub3RcLXRvXC1icmVha1wtb25lJydzXC1wcm9taXNlOwor56eR5a2457eo6LyvID4gc2NpZW5jZVwtZWRpdG9yXC1cKG9mXC1hXC1wdWJsaWNhdGlvblwpOwor5piC6aaW6ZeK5q2lID4gc3RyaWRlXC1mb3J3YXJkXC13aXRoXC1vbmUnJ3NcLWNoaW5cLXVwOwor5pel57aT5oyH5pW4ID4gbmlra2VpXC1pbmRleFwtXChvZlwtamFwYW5lc2VcLXN0b2Nrc1wpOwor5b6X5a+46YCy5bC6ID4gbGl0ZXJhbFw6XC1nZXRcLWFuXC1pbmNoXCxcLXdhbnRcLWFcLWZvb3Q7CivljJfmtIvou43plqUgPiB0aGVcLW5vcnRoZXJuXC13YXJsb3Jkc1wtXCgxOTEyXC0xOTI3XCk7CivlpKfmg5HkuI3op6MgPiBkb1wtbm90XC11bmRlcnN0YW5kXC1hXC1jZXJ0YWluXC10aGluZzsKK+aYjuaWh+imj+WumiA+IGV4cHJlc3NseVwtc3RpcHVsYXRlZFwtXChpblwtd3JpdGluZ1wpOwor5aSn5bqt5buj55y+ID4gcHVibGljXC1wbGFjZVwtd2l0aFwtbnVtZXJvdXNcLXBlb3BsZTsKK+eZvueEoeS4gOWksSA+IG5vXC1kYW5nZXJcLW9mXC1hbnl0aGluZ1wtZ29pbmdcLXdyb25nOwor5Lq65qyK6KeA5a+fID4gaHVtYW5cLXJpZ2h0c1wtd2F0Y2hcLVwob3JnYW5pemF0aW9uXCk7CivlgpnogIzkuI3nlKggPiBoYXZlXC1zb21ldGhpbmdcLXJlYWR5XC1qdXN0XC1pblwtY2FzZTsKK+evgOWklueUn+aenSA+IG5ld1wtcHJvYmxlbXNcLWNvbXBsaWNhdGVcLWFuXC1pc3N1ZTsKK+m8u+mdkuiHieiFqyA+IGFcLWJsb29keVwtbm9zZVwtYW5kXC1hXC1zd29sbGVuXC1mYWNlOwor5LyB5qWt566h55CGID4gYnVzaW5lc3NcLW1hbmFnZW1lbnRcLVwoYXNcLWFcLXN0dWR5XCk7CivkuI3orIDogIzlkIggPiBhZ3JlZVwtd2l0aG91dFwtcHJpb3JcLWNvbnN1bHRhdGlvbjsKK+aMieWFteS4jeWLlSA+IG5vdFwtdGhyb3dcLXRoZVwtdHJvb3BzXC1pbnRvXC1iYXR0bGU7CivkuIDkuK3kuIDoh7ogPiBcIm9uZVwtY2hpbmFcLFwtb25lXC10YWl3YW5cIlwtXChwb2xpY3lcKTsKK+S4reaXpemfk+i2iiA+IGNoaW5hXCxcLWphcGFuXCxcLWtvcmVhXCxcLWFuZFwtdmlldG5hbTsKK+W9ouW9seS4jemboiA+IGluc2VwYXJhYmxlXC1cKGFzXC1mb3JtXC1hbmRcLXNoYWRvd1wpOwor5ZWG5qWt54mI5pysID4gY29tbWVyY2lhbFwtdmVyc2lvblwtXChvZlwtc29mdHdhcmVcKTsKK+eZvuiugOS4jeWOrSA+IGJlXC13b3J0aFwtcmVhZGluZ1wtYVwtaHVuZHJlZFwtdGltZXM7CivliIbms6LlpJrlt6UgPiB3YXZlbGVuZ3RoXC1kaXZpc2lvblwtbXVsdGlwbGV4aW5nOwor5b+F55Sx5LmL6LevID4gdGhlXC1yb2FkXC1vbmVcLW11c3RcLWZvbGxvd1wtb3JcLXRha2U7Civkuqjnibnms7DnvoUgPiBodW50ZXJcLXR5bG9cLVwoaG9sbHl3b29kXC1hY3RyZXNzXCk7CivplonploDpgKDou4ogPiBtYWtlXC1hXC1jYXJ0XC1iZWhpbmRcLWNsb3NlZFwtZG9vcnM7CivmgrLllpzkuqTpm4YgPiBtaXhlZFwtZmVlbGluZ3NcLW9mXC1ncmllZlwtYW5kXC1qb3k7CivkuI3kv67pgorluYUgPiBub3RcLWNhcmVcLWFib3V0XC1vbmUnJ3NcLWFwcGVhcmFuY2U7CivlpKflv6vkurrlv4MgPiB0b1wtdGhlXC1zYXRpc2ZhY3Rpb25cLW9mXC1ldmVyeW9uZTsKK+meremVt+iOq+WPiiA+IGJleW9uZFwtdGhlXC1yZWFjaFwtb2ZcLW9uZScnc1wtcG93ZXI7CivkuI3lrbjnhKHooZMgPiBoYXZlXC1uZWl0aGVyXC1sZWFybmluZ1wtbm9yXC1za2lsbDsKK+S4jeWvkuiAjOaFhCA+IHNoaXZlclwtYWxsXC1vdmVyXC10aG91Z2hcLW5vdFwtY29sZDsKK+WxpOWHuuS4jeeqriA+IHRvXC1jb21lXC1vdXRcLW9uZVwtYWZ0ZXJcLXRoZVwtb3RoZXI7CivlronmsJHlkYrnpLogPiBhXC1ub3RpY2VcLXRvXC1yZWFzc3VyZVwtdGhlXC1wdWJsaWM7CivntLDoj4zmrablmaggPiBiaW9sb2dpY2FsXC13ZWFwb25cLVwodXNpbmdcLWdlcm1zXCk7CivliKXplovnlJ/pnaIgPiBzdGFydFwtc29tZXRoaW5nXC1uZXdcLW9yXC1vcmlnaW5hbDsKK+WmgumjouS8vOa4tCA+IHRoaXJzdGluZ1wtb3JcLWh1bmdlcmluZ1wtZm9yXC1zdGhcLjsKK+mWi+Wci+WFg+WLmyA+IGZvdW5kaW5nXC1mYXRoZXJzXC1cKG9mXC1hXC1jb3VudHJ5XCk7Civnm7TmjqXmlbjmk5ogPiBkYXRhXC1kaXJlY3RcLVwoaW5cLWxhblwtZW11bGF0aW9uXCk7CivlgrPntbHphqvol6UgPiBcKGNoaW5lc2VcKVwtdHJhZGl0aW9uYWxcLW1lZGljaW5lOwor5pyJ5Y+y5Lul5L6GID4gc2luY2VcLXRoZVwtYmVnaW5uaW5nXC1vZlwtaGlzdG9yeTsKK+WMheayu+eZvueXhSA+IGd1YXJhbnRlZVwtdG9cLWN1cmVcLWFsbFwtZGlzZWFzZXM7CivmjInpnIDliIbphY0gPiBkaXN0cmlidXRpb25cLWFjY29yZGluZ1wtdG9cLW5lZWQ7CivkuJbosr/ntYTnuZQgPiB3dG9cLVwod29ybGRcLXRyYWRlXC1vcmdhbml6YXRpb25cKTsKK+aykuacieS7gOm6vCA+IHRoZXJlJydzXC1ub3RoaW5nXC1cKFwuXC5cLlwtYWJvdXRcLWl0XCk7CivmjInli57liIbphY0gPiBkaXN0cmlidXRpb25cLWFjY29yZGluZ1wtdG9cLXdvcms7CivpmL/mi4nmnKjlnJYgPiBhbG1hdHlcLVwoY2FwaXRhbFwtb2ZcLWthemFraHN0YW5cKTsKK+S4g+WxpOaetuaniyA+IHNldmVuXC1sYXllclwtYXJjaGl0ZWN0dXJlXC1cKG9zaVwpOwor5oeJ5pyJ55uh5pyJID4gZXZlcnl0aGluZ1wtXChvbmVcLWNvdWxkXC1pbWFnaW5lXCk7CivpnZLlsbHntqDmsLQgPiB2ZXJkYW50XC1oaWxsc1wtYW5kXC1ncmVlblwtd2F0ZXJzOwor6Jm55qmL5qmf5aC0ID4gaG9uZ3FpYW9cLWFpcnBvcnRcLVwoaW5cLXNoYW5naGFpXCk7CivntbHkuIDmi5vnlJ8gPiBuYXRpb25hbFwtdW5pZmllZFwtZW50cmFuY2VcLWV4YW07CivmnbHpg6jmmYLplpMgPiBcKHVcLnNcLlwpXC1lYXN0ZXJuXC1cKHN0YW5kYXJkXClcLXRpbWU7CivmmYLlpKfmmYLlsI8gPiBzb21ldGltZXNcLWJpZ1wsXC1zb21ldGltZXNcLXNtYWxsOwor5LiN6L6t6ICM5YilID4gbGVhdmVcLXdpdGhvdXRcLXNheWluZ1wtZ29vZFwtYnllOwor55m+6IG95LiN5Y6tID4gd29ydGhcLWhlYXJpbmdcLWFcLWh1bmRyZWRcLXRpbWVzOwor5L2O6ZqO6Kqe6KiAID4gbG93XC1sZXZlbFwtXChjb21wdXRlclwpXC1sYW5ndWFnZTsKK+S4jei2s+eCuuiokyA+IG5vdFwtdG9cLWJlXC10YWtlblwtYXNcLWFuXC1leGFtcGxlOwor5aSn5ZC55aSn5pOCID4gbWFrZVwtYW5cLWV4aGliaXRpb25cLW9mXC1vbmVzZWxmOwor5a6J5LmL6Iul57SgID4gYmVhclwtaGFyZHNoaXBcLXdpdGhcLWVxdWFuaW1pdHk7Civopb/lk4jliqrlhYsgPiBcKGtpbmdcKVwtc2loYW5vdWtcLVwob2ZcLWNhbWJvZGlhXCk7CivmrrrkurrmoYjku7YgPiBcKGNhc2VcLW9mXCxcLWluY2lkZW50XC1vZlwpXC1tdXJkZXI7Civog4zpgZPogIzpprMgPiBydW5cLWluXC10aGVcLW9wcG9zaXRlXC1kaXJlY3Rpb247CivkvY7ntJroqp7oqIAgPiBsb3dcLWxldmVsXC1cKGNvbXB1dGVyXClcLWxhbmd1YWdlOwor5LiN5ZCN5LiA5paHID4gd2l0aG91dFwtYVwtcGVubnlcLXRvXC1vbmUnJ3NcLW5hbWU7CivkuI3nhKHlsI/oo5wgPiBub3RcLWJlXC13aXRob3V0XC1zb21lXC1hZHZhbnRhZ2U7CivliqDlvLfnrqHliLYgPiB0b1wtdGlnaHRlblwtY29udHJvbFwtXChvdmVyXC1zdGhcKTsKK+S6uuawkeaXpeWgsSA+IHJlbm1pblwtcmliYW9cLVwocGVvcGxlJydzXC1kYWlseVwpOwor6ZaL5aeL5Lul5YmNID4gYmVmb3JlXC10aGVcLWJlZ2lubmluZ1wtXChvZlwtc3RoXCk7CivkuI3orZjlpKfpq5QgPiBmYWlsXC10b1wtc2VlXC10aGVcLWxhcmdlclwtaXNzdWVzOwor5LiN5omT6Ieq5oubID4gY29uZmVzc1wtd2l0aG91dFwtYmVpbmdcLXByZXNzZWQ7CivkuIDoiInlhanlvpcgPiBraWxsXC10d29cLWJpcmRzXC13aXRoXC1vbmVcLXN0b25lOwor5LiN6YCf5LmL5a6iID4gdW5pbnZpdGVkXC1vclwtdW5leHBlY3RlZFwtZ3Vlc3Q7CivkuI3lvpfopoHpoJggPiBmYWlsXC10b1wtZ3Jhc3BcLXRoZVwtbWFpblwtcG9pbnRzOwor6YCy6KGM6Kq/5p+lID4gdG9cLWNhcnJ5XC1vdXRcLWFuXC1pbnZlc3RpZ2F0aW9uOwor5aSn6KGX5bCP5be3ID4gbGFyZ2VcLXN0cmVldHNcLWFuZFwtc21hbGxcLWxhbmVzOwor5ZCE5aSn6LuN5Y2AID4gXCJ0aGVcLWdyZWF0ZXJcLW1pbGl0YXJ5XC1hcmVhc1wiOwor5ZG857Gy576O5ZyLID4gdG9cLWNhbGxcLW9uXC10aGVcLXVuaXRlZFwtc3RhdGVzOwor6LGQ6KGj6Laz6aOfID4gaGF2ZVwtYW1wbGVcLWZvb2RcLWFuZFwtY2xvdGhpbmc7CivkuI3nn6Xlpb3mrbkgPiBub3RcLWtub3dcLXdoYXQnJ3NcLWdvb2RcLWZvclwtb25lOwor57ay566h5o6l5Y+jID4gbmV0d29ya1wtbWFuYWdlbWVudFwtaW50ZXJmYWNlOwor5qC55pOa5LiK6KGoID4gYWNjb3JkaW5nXC10b1wtdGhlXC1hYm92ZVwtdGFibGU7CivlnIvpmLLliKnnm4ogPiBcKG5hdGlvbmFsXClcLWRlZmVuY2VcLWludGVyZXN0czsKK+acrOacq+WAkue9riA+IHRha2VcLXRoZVwtYnJhbmNoXC1mb3JcLXRoZVwtcm9vdDsKK+aKsemgreeXm+WTrSA+IGNyeVwtb25cLWVhY2hcLW90aGVyJydzXC1zaG91bGRlcjsKK+S4jeS4gOiAjOi2syA+IGJ5XC1ub1wtbWVhbnNcLWFuXC1pc29sYXRlZFwtY2FzZTsKK+eZvee0mem7keWtlyA+IFwod3JpdHRlblwpXC1pblwtYmxhY2tcLWFuZFwtd2hpdGU7CivkuI3noo7njrvnkoMgPiBzaGF0dGVycHJvb2ZcLW9yXC1zYWZldHlcLWdsYXNzOwor6I6r6KG35LiA5pivID4gY2Fubm90XC1kZWNpZGVcLXdoaWNoXC1pc1wtcmlnaHQ7CivlhavlnIvoga/ou40gPiB0aGVcLWVpZ2h0XC1wb3dlclwtYWxsaWVkXC1mb3JjZTsKK+WkmuW5tOS7peS+hiA+IGZvclwtbWFueVwteWVhcnNcLVwoaW5cLXRoZVwtcGFzdFwpOwor55+l6K2Y55Si5qyKID4gaW50ZWxsZWN0dWFsXC1wcm9wZXJ0eVwtcmlnaHRzOwor6KqT5q275LiN6ZmNID4gdG9cLXZvd1wtdG9cLWZpZ2h0XC10b1wtdGhlXC1kZWF0aDsKK+aykuacieW/heimgSA+IHRoZXJlXC1pc1wtbm9cLW5lZWRcLXRvXC1cKGRvXC1zdGhcKTsKK+S4reaWh+W7o+aSrSA+IGNoaW5lc2VcLVwobGFuZ3VhZ2VcKVwtYnJvYWRjYXN0Owor56e75q6W5omL6KGTID4gXChvcmdhblwpXC10cmFuc3BsYW50XC1vcGVyYXRpb247CivmtarlrZDlm57poK0gPiB0aGVcLXJldHVyblwtb2ZcLWFcLXByb2RpZ2FsXC1zb247CivkuI3mgKXkuYvli5kgPiBhXC1tYXR0ZXJcLW9mXC1ub1wtZ3JlYXRcLXVyZ2VuY3k7Civpm7vno4HlubLmk74gPiBlbGVjdHJvbWFnbmV0aWNcLWludGVyZmVyZW5jZTsKK+S4jeaYk+S5i+irliA+IHBlcmZlY3RseVwtc291bmRcLXByb3Bvc2l0aW9uOwor5ZCE56iu5ZCE5qijID4gdmFyaW91c1wtc29ydHNcLWFuZFwtdmFyaWV0aWVzOwor5LiN6YGV6L6y5pmCID4gbm90XC1taXNzXC10aGVcLWZhcm1pbmdcLXNlYXNvbjsKK+S6guS9nOaxuuWumiA+IHRvXC1tYWtlXC1hcmJpdHJhcnlcLWRlY2lzaW9uczsKK+Wkp+WZqOaZmuaIkCA+IGdyYW5kXC10YWxlbnRzXC1tYXR1cmVcLXNsb3dseTsKK+aMieatpeWwseePrSA+IGZvbGxvd1wtdGhlXC1wcmVzY3JpYmVkXC1vcmRlcjsKK+WkluS6pOmDqOmVtyA+IG1pbmlzdGVyXC1vZlwtZm9yZWlnblwtYWZmYWlyczsKK+iIieS4luefmuebriA+IGF0dHJhY3RcLXdvcmxkd2lkZVwtYXR0ZW50aW9uOwor542o5pa35bCI6KGMID4gYWN0XC1pblwtYW5cLWFyYml0cmFyeVwtZmFzaGlvbjsKK+engeS6uumRsOWMmSA+IHByaXZhdGVcLWtleVwtXChpblwtZW5jcnlwdGlvblwpOwor5Y275LmL5LiN5oGtID4gdG9cLXJlZnVzZVwtd291bGRcLWJlXC1pbXBvbGl0ZTsKK+mmrOWkquemj+mfsyA+IGdvc3BlbFwtYWNjb3JkaW5nXC10b1wtbWF0dGhldzsKK+mbu+ipseacg+itsCA+IFwodGVsZXBob25lXClcLWNvbmZlcmVuY2VcLWNhbGw7CivkuI3okL3nqqDoh7wgPiBub3RcLWZvbGxvd1wtdGhlXC1iZWF0ZW5cLXRyYWNrOwor5oyJ54Wn6KiI5YqDID4gYWNjb3JkaW5nXC10b1wtXCh0aGVcKVwtcGxhblwtXC5cLlwuOwor5LqL5oOF6KaB5YGaID4gdGhpbmdcLXRoYXRcLW5lZWRzXC10b1wtYmVcLWRvbmU7CivkuIDot6/lubPlrokgPiB0b1wtaGF2ZVwtYVwtcGxlYXNhbnRcLWpvdXJuZXk7CivntJDntITmmYLloLEgPiBuZXdcLXlvcmtcLXRpbWVzXC1cKG5ld3NwYXBlclwpOwor5bi45ZWP5ZWP6aGMID4gZnJlcXVlbnRseVwtYXNrZWRcLXF1ZXN0aW9uczsKK+eZvuWtlOWNg+eYoSA+IHJpZGRsZWRcLXdpdGhcLWdhcGluZ1wtd291bmRzOwor5YW16YCj56aN57WQID4gcmF2YWdlZFwtYnlcLXN1Y2Nlc3NpdmVcLXdhcnM7CivplbfmnJ/ku6XkvoYgPiBldmVyXC1zaW5jZVwtYVwtbG9uZ1wtdGltZVwtYWdvOwor5a6J5a626JC95oi2ID4gbWFrZVwtb25lJydzXC1ob21lXC1pblwtYVwtcGxhY2U7CivlhaXmnKjkuInliIYgPiB3cml0dGVuXC1pblwtYVwtZm9yY2VmdWxcLWhhbmQ7CivliIbmmYLlpJrlt6UgPiB0aW1lXC1kaXZpc2lvblwtbXVsdGlwbGV4aW5nOwor5qC55rex6JKC5Zu6ID4gZGVlcFwtcm9vdGVkXC1cKHByb2JsZW1cLFwtZXRjXCk7CivmmJ/ls7bml6XloLEgPiBzaW5nXC10YW9cLWRhaWx5XC1cKG5ld3NwYXBlclwpOwor6Zu75L+h5pyN5YuZID4gdGVsZWNvbW11bmljYXRpb25zXC1zZXJ2aWNlOwor5YWs6ZaL6ZGw5YyZID4gcHVibGljXC1rZXlcLVwoaW5cLWVuY3J5cHRpb25cKTsKK+mbu+S/oee2sui3ryA+IHRlbGVjb21tdW5pY2F0aW9uc1wtbmV0d29yazsKK+aEn+afk+S6uuaVuCA+IG51bWJlclwtb2ZcLWluZmVjdGVkXC1wZXJzb25zOwor55m+5q2l56m/5qWKID4gc2hvb3RcLXdpdGhcLWdyZWF0XC1wcmVjaXNpb247Civlh7rnj77mhI/lpJYgPiBcKHRvXC1hcHBlYXJcKVwtdW5leHBlY3RlZFwobHlcKTsKK+S4gOinuOWNs+eZvCA+IGNvdWxkXC1oYXBwZW5cLWF0XC1hbnlcLW1vbWVudDsKK+e6luiKr+ebtOW+kSA+IGNvcmVcLWRpYW1ldGVyXC1cKG9mXC1hXC1maWJlclwpOwor6YCy6KGM5Lqk5piTID4gdG9cLWNhcnJ5XC1vdXRcLWFcLXRyYW5zYWN0aW9uOwor5Yil5Ye65b+D6KOBID4gYWRvcHRcLWFuXC1vcmlnaW5hbFwtYXBwcm9hY2g7Civnmb7nmbznmb7kuK0gPiBldmVyeVwtc2hvdFwtaGl0c1wtdGhlXC10YXJnZXQ7CivkuI3kuqLkuI3ljZEgPiBuZWl0aGVyXC1oYXVnaHR5XC1ub3JcLWh1bWJsZTsKK+eZveWjgeeEoeeRlSA+IGltcGVjY2FibGVcLW1vcmFsXC1pbnRlZ3JpdHk7CivmlZflrZDlm57poK0gPiByZXR1cm5cLW9mXC10aGVcLXByb2RpZ2FsXC1zb247CivoqKrllY/nvo7lnIsgPiB0b1wtdmlzaXRcLXRoZVwtdW5pdGVkXC1zdGF0ZXM7CivkuI3lpLHmmYLmqZ8gPiBzZWl6ZVwtdGhlXC1vcHBvcnR1bmVcLW1vbWVudDsKK+WwjuW9iOa9m+iJhyA+IFwoZ3VpZGVkXClcLW1pc3NpbGVcLXN1Ym1hcmluZTsKK+WuieWmguazsOWxsSA+IGFzXC1zZWN1cmVcLWFzXC1tb3VudFwtdGFpc2hhbjsKK+S4jee+qeS5i+iyoSA+IGlsbFwtZ290dGVuXC13ZWFsdGhcLW9yXC1nYWluczsKK+mHjeimgeeahOaYryA+IGl0XC1pc1wtaW1wb3J0YW50XC1cKHRoYXRcKVwtXC5cLlwuOwor6YCa5L+h5oqA6KGTID4gY29tbXVuaWNhdGlvbnNcLXRlY2hub2xvZ3k7CivlpJbljK/lhLLlgpkgPiBmb3JlaWduXC1leGNoYW5nZVwtcmVzZXJ2ZXM7Civli57li5XmlZnppIogPiByZWVkdWNhdGlvblwtdGhyb3VnaFwtbGFib3I7CivkuI3ovq3ovpvoi6YgPiBtYWtlXC1ub3RoaW5nXC1vZlwtaGFyZHNoaXBzOwor56iL5byP55CG5ZOhID4gcHJvZ3JhbVwtbWFuYWdlclwtXCh3aW5kb3dzXCk7CivmsJHkuLvpu6jkurogPiBhXC1kZW1vY3JhdGljXC1wYXJ0eVwtbWVtYmVyOwor5LiJ5Y2B5bm05L6GID4gZm9yXC10aGVcLXBhc3RcLXRoaXJ0eVwteWVhcnM7CivmioDooZPnmbzlsZUgPiB0ZWNobm9sb2dpY2FsXC1kZXZlbG9wbWVudDsKK+mrmOetieWtuOagoSA+IGNvbGxlZ2VzXC1hbmRcLXVuaXZlcnNpdGllczsKK+W6t+a2heeLhOagvCA+IGNvbm5lY3RpY3V0XC1cKHN0YXRlXC1pblwtdXNcKTsKK+WWrumAo+aOpeermSA+IHNpbmdsZVwtYXR0YWNobWVudFwtc3RhdGlvbjsKK+espuWQiOaomea6liA+IHRvXC1jb21wbHlcLXdpdGhcLWFcLXN0YW5kYXJkOwor56S65aiB6YGK6KGMID4gYVwtXChwcm90ZXN0XClcLWRlbW9uc3RyYXRpb247CivlpKfmlbXnlbbliY0gPiBjb25mcm9udFwtYVwtcG93ZXJmdWxcLWVuZW15Owor56CU6KO96YGO56iLID4gbWFudWZhY3R1cmluZ1wtZW52aXJvbm1lbnQ7Civlj43llIfnm7jorY8gPiBhbnN3ZXJcLWJhY2tcLXNhcmNhc3RpY2FsbHk7CivmoLjovZ/ngrjmqZ8gPiBudWNsZWFyXC1ib21iZXJcLVwoYWlyY3JhZnRcKTsKK+S4jeW+l+S6uuW/gyA+IG5vdFwtZW5qb3lcLXBvcHVsYXJcLXN1cHBvcnQ7Civnm7ToqIDkuI3oq7EgPiBzcGVha1wtZnJhbmtseVwtYW5kXC1ibHVudGx5Owor5pmv5bGx5YWs5ZySID4gbmFtZVwtb2ZcLWFcLXBhcmtcLWluXC1iZWlqaW5nOwor6Z2i6Ieo5Zuw6ZujID4gdG9cLWJlXC1mYWNlZFwtd2l0aFwtcHJvYmxlbXM7CivkuI3li5nmraPmpa0gPiBub3RcLWVuZ2FnZVwtaW5cLWhvbmVzdFwtd29yazsKK+aEm+eQhuS4jeeQhiA+IGxvb2tcLWNvbGRcLWFuZFwtaW5kaWZmZXJlbnQ7CivmlLnlloTpgJroqIogPiB0b1wtaW1wcm92ZVwtY29tbXVuaWNhdGlvbnM7CivnuL3lj4PorIDplbcgPiBcKG1pbGl0YXJ5XClcLWNoaWVmXC1vZlwtc3RhZmY7Civog4zkv6Hmo4TnvqkgPiBicmVha1wtZmFpdGhcLXdpdGhcLXNvbWVib2R5Owor6Leo5ZyL5YWs5Y+4ID4gdHJhbnNuYXRpb25hbFwtY29ycG9yYXRpb247CivlhbHlkozpu6jkurogPiBhXC1yZXB1YmxpY2FuXC1wYXJ0eVwtbWVtYmVyOwor6aas5Y+v56aP6Z+zID4gZ29zcGVsXC1hY2NvcmRpbmdcLXRvXC1tYXJrOwor5q+P5bm05LiA5bqmID4gb25jZVwtYVwteWVhclwtXChldmVyeVwteWVhclwpOwor5Z+f5ZCN6Ki75YaKID4gZG9tYWluXC1uYW1lXC1yZWdpc3RyYXRpb247CivlhbXosrTnpZ7pgJ8gPiBzcGVlZFwtaXNcLXByZWNpb3VzXC1pblwtd2FyOwor5aSa6YKK5ZCI5L2cID4gbXVsdGlsYXRlcmFsXC1jb29wZXJhdGlvbjsKK+aKleaUvuW4guWgtCA+IHRvXC1wdXRcLXN0aFwtb25cLXRoZVwtbWFya2V0Owor6I2S54Sh5Lq654WZID4gZGVzb2xhdGVcLWFuZFwtdW5pbmhhYml0ZWQ7CivntITnv7Dnpo/pn7MgPiBnb3NwZWxcLWFjY29yZGluZ1wtdG9cLWpvaG47CivljbDmrZDoqp7oqIAgPiBpbmRvXC1ldXJvcGVhblwtXChsYW5ndWFnZVwpOwor57+S5Lul54K65bi4ID4gYmVcLWFjY3VzdG9tZWRcLW9yXC11c2VkXC10bzsKK+WFteiNkummrOS6giA+IHR1cm1vaWxcLWFuZFwtY2hhb3NcLW9mXC13YXI7CivkuI3li5XogbLoibIgPiBtYWludGFpblwtb25lJydzXC1jb21wb3N1cmU7Civmta7pu57pgYvnrpcgPiBmbG9hdGluZ1wtcG9pbnRcLW9wZXJhdGlvbjsKK+WFp+aUv+mDqOmVtyA+IG1pbmlzdGVyXC1vZlwtdGhlXC1pbnRlcmlvcjsKK+m8u+mHneeZguazlSA+IG5vc2VcLWFjdXB1bmN0dXJlXC10aGVyYXB5Owor6Jmb5pOs55Kw5aKDID4gdGhlb3JoZXRpY2FsXC1lbnZpcm9ubWVudDsKK+WvhuWIh+azqOaEjyA+IGNsb3NlXC1hdHRlbnRpb25cLVwodG9cLXN0aFwpOwor5LiN5ouY5LiA5qC8ID4gbm90XC1zdGlja1wtdG9cLW9uZVwtcGF0dGVybjsKK+WujOWFqOaHguW+lyA+IHRvXC11bmRlcnN0YW5kXC1jb21wbGV0ZWx5Owor5LiN5bmz5YmH6bO0ID4gd2hlcmVcLXRoZXJlXC1pc1wtaW5qdXN0aWNlOwor5qC45LiN5pO05pWjID4gbnVjbGVhclwtbm9ucHJvbGlmZXJhdGlvbjsKK+aTuuiEq+WNseapnyA+IHRvXC1icmVha1wtb3V0XC1vZlwtYVwtY3Jpc2lzOwor5a+M5biD6LO054m5ID4gZnVsbGJyaWdodFwtXChzY2hvbGFyc2hpcFwpOwor5pKl5LqC5Y+N5q2jID4gYnJpbmdcLW9yZGVyXC1vdXRcLW9mXC1jaGFvczsKK+WuieesrOaWr+WxsSA+IHRoZVwtYW5kZXNcLW1vdW50YWluXC1yYW5nZTsKK+eZvueFieaIkOmLvCA+IGJlXC10ZW1wZXJlZFwtaW50b1wtYVwtc3RlZWw7CivlnIvli5nmrKHljb8gPiB1bmRlclwtc2VjcmV0YXJ5XC1vZlwtc3RhdGU7CivljYrkv6HljYrnlpEgPiBoYWxmXC1iZWxpZXZlXCxcLWhhbGZcLWRvdWJ0Owor5ouU54Gr572Q5YWSID4gZGV0YWNoYWJsZVwtc3RvdmVcLWNoaW1uZXk7Civlj6TluIzoh5joqp4gPiBhbmNpZW50XC1ncmVla1wtXChsYW5ndWFnZVwpOwor5Y2D57Wy6JCs57i3ID4gbGlua2VkXC1pblwtY291bnRsZXNzXC13YXlzOwor56C05Zyf5YW456auID4gZ3JvdW5kXC1icmVha2luZ1wtY2VyZW1vbnk7CivmlZnlrbjmqZ/mp4sgPiBlZHVjYXRpb25hbFwtb3JnYW5pemF0aW9uOwor5LiN6YG65L2Z5YqbID4gc3BhcmVcLW5vXC1wYWluc1wtb3JcLWVmZm9ydDsKK+ihqOekuuaVrOaEjyA+IHJlc3BlY3RmdWxcLFwtc2hvd1wtcmVzcGVjdDsKK+i3r+WKoOemj+mfsyA+IGdvc3BlbFwtYWNjb3JkaW5nXC10b1wtbHVrZTsKK+mAmuioiuihjOalrSA+IGNvbW11bmljYXRpb25zXC1pbmR1c3RyeTsKK+acrOS9jeS4u+e+qSA+IHNlbGZpc2hcLWRlcGFydG1lbnRhbGlzbTsKK+eCuuaJgOassueCuiA+IGRvXC13aGF0ZXZlclwtb25lXC1wbGVhc2VzOwor5Lq65rCR5rOV6ZmiID4gcGVvcGxlJydzXC1jb3VydFwtXChvZlwtbGF3XCk7CivllYbmpa3mqZ/mp4sgPiBjb21tZXJjaWFsXC1vcmdhbml6YXRpb247CivkuI3nv7zogIzpo5sgPiBkaXNhcHBlYXJcLXdpdGhvdXRcLXRyYWNlOwor55Wi5oGt55Wi5pWsID4gcmV2ZXJlbnRcLWFuZFwtcmVzcGVjdGZ1bDsKK+enkeeglOS6uuWToSA+IFwoc2NpZW50aWZpY1wpXC1yZXNlYXJjaGVyOwor6YCP6Zyy5raI5oGvID4gdG9cLWRpc2Nsb3NlXC1pbmZvcm1hdGlvbjsKK+S4reWci+aZguWgsSA+IGNoaW5hXC10aW1lc1wtXChuZXdzcGFwZXJcKTsKK+WogeW7ieaWr+WgoSA+IHdpbGxpYW1zYnVyZ1wtXCh2aXJnaW5pYVwpOwor5L6/5a6c6KGM5LqLID4gYWN0XC1hdFwtb25lJydzXC1kaXNjcmV0aW9uOwor5ZWG5qWt566h55CGID4gYnVzaW5lc3NcLWFkbWluaXN0cmF0aW9uOwor5Z+656SO6YCf546HID4gYmFzaWNcLXJhdGVcLVwoYXNcLWluXC1pc2RuXCk7CivmiYvlr6vorZjliKUgPiBoYW5kd3JpdGluZ1wtcmVjb2duaXRpb247CivmiYvlr6vovq/orZggPiBoYW5kd3JpdGluZ1wtcmVjb2duaXRpb247Civmr5Tmr5TnmobmmK8gPiBjYW5cLWJlXC1mb3VuZFwtZXZlcnl3aGVyZTsKK+ajhOiIiuaPm+aWsCA+IHRvXC10dXJuXC1vdmVyXC1hXC1uZXdcLWxlYWY7CivkuI3mg4XkuYvoq4sgPiBteVwtcHJlc3VtcHR1b3VzXC1yZXF1ZXN0Owor6ZuZ6YCj5o6l56uZID4gZHVhbFwtYXR0YWNobWVudFwtc3RhdGlvbjsKK+ijnOWKqee1hOe5lCA+IGF1eGlsaWFyeVwtb3JnYW5pemF0aW9uczsKK+Wbnumhp+att+WPsiA+IHRvXC1sb29rXC1iYWNrXC1hdFwtaGlzdG9yeTsKK+mAmuioiuWNlOWumiA+IGNvbW11bmljYXRpb25zXC1wcm90b2NvbDsKK+atpeWxpee2reiJsSA+IGhhdmVcLWRpZmZpY3VsdHlcLXdhbGtpbmc7CivlhbHlkIznr6npgbggPiBjb2xsYWJvcmF0aXZlXC1maWx0ZXJpbmc7CivlpKfpqZrlsI/mgKogPiBtdWNoXC1mdXNzXC1hYm91dFwtbm90aGluZzsKK+mAmuS/oeWNlOWumiA+IGNvbW11bmljYXRpb25zXC1wcm90b2NvbDsKK+WFrOWuieWumOWToSA+IHB1YmxpY1wtc2FmZXR5XC1vZmZpY2lhbHM7CivlgrPovLjmioDooZMgPiB0cmFuc21pc3Npb25cLXRlY2hub2xvZ3k7CivlhrDlpKnpm6rlnLAgPiBhXC13b3JsZFwtb2ZcLWljZVwtYW5kXC1zbm93Owor5pS/5bqc5qmf5qeLID4gZ292ZXJubWVudFwtb3JnYW5pemF0aW9uOwor5LiN5Y+v55CG5Za7ID4gYmVcLWltcGVydmlvdXNcLXRvXC1yZWFzb247Civogbfmpa3kuK3lrbggPiB2b2NhdGlvbmFsXC1oaWdoXC1zY2hvb2w7Civoh6rpo5/lhbbmnpwgPiByZWFwXC13aGF0XC1vbmVcLWhhc1wtc293bjsKK+S4jemcsuiBsuiJsiA+IG5vdFwtc2hvd1wtb25lJydzXC1mZWVsaW5nOwor5aSn54We6aKo5pmvID4gZGFtcGVuaW5nXC1vbmUnJ3NcLXNwaXJpdDsKK+e+heabvOiqnuaXjyA+IHJvbWFuY2VcLWxhbmd1YWdlXC1ncm91cDsKK+WtsOiDveeUn+W3pyA+IHByYWN0aWNlXC1tYWtlc1wtcGVyZmVjdDsKK+WXt+WXt+W+heWTuiA+IGNyeVwtcGl0ZW91c2x5XC1mb3JcLWZvb2Q7CivkuI3nl5vkuI3nl5IgPiBzY3JhdGNoaW5nXC10aGVcLXN1cmZhY2U7Civoga/ntrLnkrDlooMgPiBuZXR3b3JraW5nXC1lbnZpcm9ubWVudDsKK+ino+mHi+Wft+ihjCA+IGludGVycHJldGVkXC1cKGNvbXB1dGVyXCk7CivkuI3ov5Hkurrmg4UgPiBub3RcLWFtZW5hYmxlXC10b1wtcmVhc29uOwor5pS/5rK75qmf5qeLID4gcG9saXRpY2FsXC1vcmdhbml6YXRpb247Civlj6bnnLznm7jnnIsgPiB0b1wtdmlld1wtaW5cLWFcLW5ld1wtbGlnaHQ7Civkv6Hmga/mioDooZMgPiBpbmZvcm1hdGlvblwtdGVjaG5vbG9neTsKK+WuieWFqOiAg+aFriA+IHNlY3VyaXR5XC1jb25zaWRlcmF0aW9uOwor5L+h5oGv566h55CGID4gaW5mb3JtYXRpb25cLW1hbmFnZW1lbnQ7Civouabouabot7Pot7MgPiBib3VuY2luZ1wtYW5kXC12aXZhY2lvdXM7CivpgJrkv6Hlr4bluqYgPiBjb21tdW5pY2F0aW9uc1wtZGVuc2l0eTsKK+aykuacieW3ruWIpSA+IHRoZXJlXC1pc1wtbm9cLWRpZmZlcmVuY2U7CivkuI3oqIDogIzllrsgPiBpdFwtZ29lc1wtd2l0aG91dFwtc2F5aW5nOwor5q2l6Kq/5LiA6Ie0ID4gdG9cLWJlXC11bml0ZWRcLWluXC1hY3Rpb247CivpgJroqIrpgJrpgZMgPiBjb21tdW5pY2F0aW9uc1wtY2hhbm5lbDsKK+aOoeioquiomOiAhSA+IGludmVzdGlnYXRpdmVcLXJlcG9ydGVyOwor5q+U6LyD6ICM6KiAID4gY29tcGFyYXRpdmVseVwtc3BlYWtpbmc7Civpm6LplovmlYXphIkgPiB0b1wtbGVhdmVcLW9uZScnXC1ob21lbGFuZDsKK+mAmuS/oee2sue1oSA+IGNvbW11bmljYXRpb25zXC1uZXR3b3JrOwor5pW45a2X6YCa5L+hID4gZGlnaXRhbFwtY29tbXVuaWNhdGlvbnM7CivlhbHnlKLpu6jlk6EgPiBjb21tdW5pc3RcLXBhcnR5XC1tZW1iZXI7CivntrLot6/mnrbmp4sgPiBuZXR3b3JrXC1pbmZyYXN0cnVjdHVyZTsKK+aKgOihk+aDheWgsSA+IGluZm9ybWF0aW9uXC10ZWNobm9sb2d5Owor576O5ZyL5LmL6Z+zID4gdm9pY2VcLW9mXC1hbWVyaWNhXC1yYWRpbzsKK+aomea6lue1hOe5lCA+IHN0YW5kYXJkc1wtb3JnYW5pemF0aW9uOwor542o5pSs5biC5aC0ID4gdG9cLW1vbm9wb2xpemVcLWFcLW1hcmtldDsKK+W9rOW9rOacieemriA+IHJlZmluZWRcLWFuZFwtY291cnRlb3VzOwor5a6M5YWo5YW85a65ID4gY29tcGxldGVseVwtY29tcGF0aWJsZTsKK+ingOa4rOihm+aYnyA+IG9ic2VydmF0aW9uXC1zYXRlbGxpdGU7CivkuInokKzkuIPljYMgPiB0aGlydHlcLXNldmVuXC10aG91c2FuZDsKK+Wkp+i1puWci+mamyA+IGFtbmVzdHlcLWludGVybmF0aW9uYWw7Civmg4XloLHlrpjlk6EgPiBpbnRlbGxpZ2VuY2VcLW9mZmljaWFsOwor6Zu756OB5Zmq6IGyID4gZWxlY3Ryb21hZ25ldGljXC1ub2lzZTsKK+mVt+mAlOe2sui3ryA+IGxvbmdcLWRpc3RhbmNlXC1uZXR3b3JrOwor5q+U6Imy5YiG5p6QID4gY29sb3JpbWV0cmljXC1hbmFseXNpczsKK+W6q+eIvuW+t+S6uiA+IGt1cmRpc2hcLXBlcnNvblx8cGVvcGxlOwor5b6u6Luf5YWs5Y+4ID4gbWljcm9zb2Z0XC1jb3Jwb3JhdGlvbjsKK+S4jeitmOaKrOiIiSA+IGZhaWxcLXRvXC1hcHByZWNpYXRlXC1zYjsKK+W4reWNt+S6nua0siA+IHRvXC1zd2VlcFwtdGhyb3VnaFwtYXNpYTsKK+S9nOalreeSsOWigyA+IG9wZXJhdGluZ1wtZW52aXJvbm1lbnQ7CivmmbrmhafnlKLmrIogPiBpbnRlbGxlY3R1YWxcLXByb3BlcnR5Owor6auY57Sa5a6Y5ZOhID4gaGlnaFwtcmFua2luZ1wtb2ZmaWNpYWw7CivljYrlpJzkuInmm7QgPiBpblwtdGhlXC1kZXB0aFwtb2ZcLW5pZ2h0Owor5Y+W5raI56aB5LukID4gdG9cLWxpZmVcLWFcLXByb2hpYml0aW9uOwor5a+m6Zqb5oeJ55SoID4gcHJhY3RpY2FsXC1hcHBsaWNhdGlvbjsKK+eUn+eUouiDveWKmyA+IG1hbnVmYWN0dXJpbmdcLWFiaWxpdHk7CivnuL3ntbHpgbjoiIkgPiBwcmVzaWRlbnRpYWxcLWVsZWN0aW9uOwor5LiN5pOH5omL5q61ID4gYnlcLWZhaXJcLW1lYW5zXC1vclwtZm91bDsKK+Wci+mam+aomea6liA+IGludGVybnRpb25hbFwtc3RhbmRhcmQ7Civph5HpmbXlpKflrbggPiB1bml2ZXJzaXR5XC1vZlwtbmFua2luZzsKK+eVsOizque2sui3ryA+IGhldGVyb2dlbmVvdXNcLW5ldHdvcms7Civnmb3miYvotbflrrYgPiBidWlsZFwtdXBcLWZyb21cLW5vdGhpbmc7CivokaHokITniZnoqp4gPiBwb3J0dWd1ZXNlXC1cKGxhbmd1YWdlXCk7CivkuIDoh4LkuYvlipsgPiBcKGxlbmRcKVwtYVwtaGVscGluZ1wtaGFuZDsKK+S4jeWAq+S4jemhniA+IG5laXRoZXJcLWZpc2hcLW5vclwtZm93bDsKK+WfuuacrOWOn+eQhiA+IGZ1bmRhbWVudGFsXC1wcmluY2lwbGU7CivmkqvppIrmiJDkurogPiB0b1wtYnJpbmdcLXVwXC1cKGFcLWNoaWxkXCk7CivpgJrkv6HmnI3li5kgPiBjb21tdW5pY2F0aW9uXC1zZXJ2aWNlOwor5ZyL54ef5LyB5qWtID4gbmF0aW9uYWxpemVkXC1pbmR1c3RyeTsKK+S6jOWNgeWFq+iZnyA+IDI4dGhcLWRheVwtb2ZcLXRoZVwtbW9udGg7CivmnKzlm7rmnp3mpq4gPiB3aGVuXC10aGVcLXJvb3RcLWlzXC1maXJtOwor5YKz6Ly46Kit5YKZID4gdHJhbnNtaXNzaW9uXC1mYWNpbGl0eTsKK+S4jeaYr+WRs+WFkiA+IG5vdFwtdGhlXC1yaWdodFwtZmxhdm91cjsKK+aTjeS9nOeSsOWigyA+IG9wZXJhdGluZ1wtZW52aXJvbm1lbnQ7CivpmqjmqZ/mmYLplpMgPiByYW5kb21cLXBlcmlvZFwtb2ZcLXRpbWU7CivlgrPovLjot53pm6IgPiB0cmFuc21pc3Npb25cLWRpc3RhbmNlOwor5Y+m6LW354iQ54G2ID4gdG9cLXN0YXJ0XC1mcm9tXC1zY3JhdGNoOwor6aaW6IWm5pyD6K2wID4gbGVhZGVyc2hpcFwtY29uZmVyZW5jZTsKK+WmguWHuuS4gOi9jSA+IGJlXC1wcmVjaXNlbHlcLXRoZVwtc2FtZTsKK+efruadhuWTgeeoriA+IHNob3J0XC1zdGFsa2VkXC12YXJpZXR5Owor6YGL566X55Kw5aKDID4gb3BlcmF0aW5nXC1lbnZpcm9ubWVudDsKK+e1nueboeiFpuaxgSA+IHRvXC13cmFja1wtb25lJydzXC1icmFpbnM7CivlhYnno4Hnop/mqZ8gPiBtYWduZXRvXC1vcHRpY2FsXC1kcml2ZTsKK+Wci+acieS8gealrSA+IG5hdGlvbmFsaXplZFwtYnVzaW5lc3M7Civntq3lkL7niL7kurogPiB1aWdodXJcLXBlcnNvblx8cGVvcGxlOwor6ZaL6Zmk5a2457GNID4gdG9cLWV4cGVsXC1mcm9tXC1zY2hvb2w7CivpppbluK3ku6PooaggPiBjaGllZlwtcmVwcmVzZW50YXRpdmU7CivniannkIbntZDmp4sgPiBwaHlzaWNhbFwtY29tcG9zaXRpb247CivlnIvmnIPorbDplbcgPiBzcGVha2VyXC1vZlwtdGhlXC1ob3VzZTsKK+aHieeUqOW5s+WPsCA+IGFwcGxpY2F0aW9uXC1wbGF0Zm9ybTsKK+WMiOeJmeWIqeiqniA+IGh1bmdhcmlhblwtXChsYW5ndWFnZVwpOwor5LiN5L+h5Lu75qGIID4gbm9cLWNvbmZpZGVuY2VcLW1vdGlvbjsKK+aUueWWhOmXnOS/giA+IHRvXC1pbXByb3ZlXC1yZWxhdGlvbnM7CivlgZzngavljZTorbAgPiBjZWFzZVwtZmlyZVwtYWdyZWVtZW50Owor5LqM5Y2B5LqM6JmfID4gMjJcLW5kXC1kYXlcLW9mXC1hXC1tb250aDsKK+eiuuacieWFtuS6iyA+IFwoY29uZmlybVwtdG9cLWJlXClcLXRydWU7CivlpKflnovkvIHmpa0gPiBsYXJnZVwtc2NhbGVcLWluZHVzdHJ5Owor5L2/5b6S6KGM5YKzID4gYWN0c1wtb2ZcLXRoZVwtYXBvc3RsZXM7Civlv4XkuI3lj6/lsJEgPiBhYnNvbHV0ZWx5XC1uZWNlc3Nhcnk7CivkuI3lnKjoqbHkuIsgPiBiZVwtbm90aGluZ1wtZGlmZmljdWx0Owor5oeJ55So6Luf5Lu2ID4gYXBwbGljYXRpb25cLXNvZnR3YXJlOwor5Lqk5o+b5oqA6KGTID4gc3dpdGNoaW5nXC10ZWNobm9sb2d5Owor56iL5byP6Kqe6KiAID4gcHJvZ3JhbW1pbmdcLWxhbmd1YWdlOwor55m86KGo6IGy5piOID4gdG9cLWlzc3VlXC1hXC1zdGF0ZW1lbnQ7Civpm7vohaboqp7oqIAgPiBwcm9ncmFtbWluZ1wtbGFuZ3VhZ2U7Civpm7vlrZDlt6Xmpa0gPiBlbGVjdHJvbmljc1wtaW5kdXN0cnk7Civlj6zplovmnIPorbAgPiB0b1wtY2FsbFwtYVwtY29uZmVyZW5jZTsKK+WVhualreaHieeUqCA+IGJ1c2luZXNzXC1hcHBsaWNhdGlvbjsKK+avj+azgeaEiOS4iyA+IHN0ZWFkaWx5XC1kZXRlcmlvcmF0ZTsKK+i7jeS6i+apn+aniyA+IG1pbGl0YXJ5XC1pbnN0aXR1dGlvbjsKK+WIpOiZleatu+WIkSA+IHRvXC1zZW50YW5jZVwtdG9cLWRlYXRoOwor6LKo5bmj6LK25YC8ID4gY3VycmVuY3lcLWRldmFsdWF0aW9uOwor5oyJ54Wn5rOV5b6LID4gYWNjb3JkaW5nXC10b1wtdGhlXC1sYXc7CivljJflm57mrbjnt5ogPiB0aGVcLXRyb3BpY1wtb2ZcLWNhbmNlcjsKK+mbu+WtkOWFg+S7tiA+IGVsZWN0cm9uaWNcLWNvbXBvbmVudDsKK+e2k+a/n+ihsOmAgCA+IFwoZWNvbm9taWNcKVwtcmVjZXNzaW9uOwor5YWJ5LqM5qW1566hID4gbGlnaHRcLWVtaXR0aW5nXC1kaW9kZTsKK+S4jeepqeW5s+ihoSA+IHVuc3RhYmxlXC1lcXVpbGlicml1bTsKK+S/oeaBr+izh+a6kCA+IGluZm9ybWF0aW9uXC1yZXNvdXJjZTsKK+WFreWNgeS6lOatsiA+IHNpeHR5XC1maXZlXC15ZWFyc1wtb2xkOwor5pm66IO95aSn5qiTID4gaW50ZWxsaWdlbnRcLWJ1aWxkaW5nOwor5bCR5pW45rCR5pePID4gbWlub3JpdHlcLW5hdGlvbmFsaXR5Owor5YWo6Z2i56aB5q2iID4gY29tcGxldGVcLXByb2hpYml0aW9uOwor6ai+6aas5aSn6LuKID4gbXVsZVwtYW5kXC1ob3JzZVwtY2FydHM7CivntpPmv5/nmbzlsZUgPiBlY29ub21pY1wtZGV2ZWxvcG1lbnQ7CivpgJroqIrns7vntbEgPiBjb21tdW5pY2F0aW9uXC1zeXN0ZW07CivkuI3kuozms5XploAgPiB0aGVcLW9uZVwtYW5kXC1vbmx5XC13YXk7CivnhKHlg7nnj43nj6AgPiBwZWFybFwtb2ZcLWdyZWF0XC1wcmljZTsKK+acquaIkOW5tOiAhSA+IG1pbm9yXC1cKG5vdFwtYW5cLWFkdWx0XCk7CivkvIrmlq/omK3loKEgPiBpc2xhbWFiYWRcLVwocGFraXN0YW5cKTsKK+S6jOWNgeWbm+iZnyA+IDI0XC10aFwtZGF5XC1vZlwtYVwtbW9udGg7CivlpKflpLHmiYDmnJsgPiBncmVhdGx5XC1kaXNzYXBvaW50ZWQ7CivkvIHmpa3pm4blnJggPiBpbmR1c3RyeVwtYXNzb2NpYXRpb247CivnrqHnkIbmjqXlj6MgPiBtYW5hZ2VtZW50XC1pbnRlcmZhY2U7Civmh4nnlKjou5/pq5QgPiBhcHBsaWNhdGlvblwtc29mdHdhcmU7CivnlJ/nlKLoqK3lgpkgPiBwcm9kdWN0aW9uXC1lcXVpcG1lbnQ7Civnvqnli5nmlZnogrIgPiBjdW1wdWxzb3J5XC1lZHVjYXRpb247CivlgrPovLjmjqfliLYgPiB0cmFuc21pc3Npb25cLWNvbnRyb2w7CivkuI3mh7flpb3mhI8gPiBoYXJib3VyXC1ldmlsXC1kZXNpZ25zOwor6Ki65pa35Yqf6IO9ID4gZGlhZ25vc3RpY1wtZnVuY3Rpb247CivlgrPovLjlqpLpq5QgPiB0cmFuc21pc3Npb25cLW1lZGl1bTsKK+i1t+atu+WbnueUnyA+IGFyaXNlXC1mcm9tXC10aGVcLWRlYWQ7Civpq5jpmo7oqp7oqIAgPiBoaWdoXC1sZXZlbFwtbGFuZ3VhZ2U7Civnvo7lnIvkurrmsJEgPiB0aGVcLWFtZXJpY2FuXC1wZW9wbGU7CivpnaLlmq7pgKPmjqUgPiBjb25uZWN0aW9uXC1vcmllbnRlZDsKK+WwiOalreS6uuaJjSA+IGV4cGVydFwtXChpblwtYVwtZmllbGRcKTsKK+eEoee4q+mAo+aOpSA+IHNlYW1sZXNzXC1jb25uZWN0aW9uOwor5YKz6Ly45aqS6LOqID4gdHJhbnNtaXNzaW9uXC1tZWRpdW07CivlsaTopovov63lh7ogPiB0b1wtb2NjdXJcLWZyZXF1ZW50bHk7Civnvo7lnIvku6XlpJYgPiBvdXRzaWRlXC1vZlwtdGhlXC11XC5zXC47CivmraTmmYLmraTliLsgPiBhdFwtdGhpc1wtdmVyeVwtbW9tZW50Owor5aSa6buo6YG46IiJID4gbXVsdGlwYXJ0eVwtZWxlY3Rpb247CivlhYnnupboobDmuJsgPiBvcHRpY2FsXC1hdHRlbnVhdGlvbjsKK+S4jeWLnuiAjOeNsiA+IHJlYXBcLXdpdGhvdXRcLXNvd2luZzsKK+aKgOihk+aomea6liA+IHRlY2hub2xvZ3lcLXN0YW5kYXJkOwor6ZaL55m86YGO56iLID4gZGV2ZWxvcG1lbnRcLXByb2Nlc3M7CivpgJrkv6HosqDovIkgPiBjb21tdW5pY2F0aW9uc1wtbG9hZDsKK+W4uOimj+atpuWZqCA+IGNvbnZlbnRpb25hbFwtd2VhcG9uOwor57Wx6KiI57WQ5p6cID4gc3RhdGlzdGljYWxcLXJlc3VsdHM7Civlj7jnqbropovmhaMgPiBhXC1jb21tb25cLW9jY3VycmVuY2U7CivkuozljYHkuIPomZ8gPiAyN3RoXC1kYXlcLW9mXC1hXC1tb250aDsKK+imluiAjOS4jeimiyA+IHR1cm5cLWFcLWJsaW5kXC1leWVcLXRvOwor6Zu75a2Q5paH5Lu2ID4gZWxlY3Ryb25pY1wtZG9jdW1lbnQ7CivntZDmp4vliqnoqZ4gPiBzdHJ1Y3R1cmFsXC1wYXJ0aWNsZTsKK+Wtl+aWn+WPpemFjCA+IHdlaWdoaW5nXC1ldmVyeVwtd29yZDsKK+aUv+ayu+mXnOS/giA+IHBvbGl0aWNhbFwtcmVsYXRpb25zOwor55u45LqS5YW85a65ID4gbXV0dWFsbHlcLWNvbXBhdGlibGU7CivlsIvkuovnlJ/pnZ4gPiB0b1wtbG9va1wtZm9yXC10cm91YmxlOwor5bCP5a+r5a2X5q+NID4gbG93ZXJjYXNlXC1cKGxldHRlcnNcKTsKK+euoeeQhuWKn+iDvSA+IG1hbmFnZW1lbnRcLWZ1bmN0aW9uOwor6auY57Sa6Kqe6KiAID4gaGlnaFwtbGV2ZWxcLWxhbmd1YWdlOwor5YiG5L2I5o6n5Yi2ID4gZGlzdHJpYnV0ZWRcLWNvbnRyb2w7CivntrLntaHmh4nnlKggPiBuZXR3b3JrXC1hcHBsaWNhdGlvbjsKK+apn+aisOe/u+itryA+IG1hY2hpbmVcLXRyYW5zbGF0aW9uOwor6Luf5Lu25oqA6KGTID4gc29mdHdhcmVcLXRlY2hub2xvZ3k7Civlpbbmsrnoj5zoirEgPiBjcmVhbWVkXC1jYXVsaWZsb3dlcjsKK+WFieeZvOmAgeWZqCA+IG9wdGljYWxcLXRyYW5zbWl0dGVyOwor57ay57Wh55Kw5aKDID4gbmV0d29ya1wtZW52aXJvbm1lbnQ7CivmhJvkurrlpoLlt7EgPiBsb3ZlXC1vdGhlcnNcLWFzXC1zZWxmOwor6Zi/5ouJ5be06aasID4gYWxhYmFtYVwtXCh1XC5zXC5zdGF0ZVwpOwor57WC6bue5Zyw5Z2AID4gZGVzdGluYXRpb25cLWFkZHJlc3M7CivntrLot6/mh4nnlKggPiBuZXR3b3JrXC1hcHBsaWNhdGlvbjsKK+ebruaomeWcsOWdgCA+IGRlc3RpbmF0aW9uXC1hZGRyZXNzOwor5LqM5Y2B5YWt6JmfID4gMjZ0aFwtZGF5XC1vZlwtYVwtbW9udGg7CivkuK3lnIvnlbblsYAgPiBjaGluZXNlXC1hdXRob3JpdGllczsKK+WQiOaDheWQiOeQhiA+IHJlYXNvbmFibGVcLWFuZFwtZmFpcjsKK+eZvuS+neeZvumghiA+IGRvY2lsZVwtYW5kXC1vYmVkaWVudDsKK+WNiuiHquiAlei+siA+IHNlbWlcLXRlbmFudFwtcGVhc2FudDsKK+e2sui3r+eSsOWigyA+IG5ldHdvcmtcLWVudmlyb25tZW50Owor5Y+N5b2I5bCO5b2IID4gYW50aW1pc3NpbGVcLW1pc3NpbGU7CivnlJ/nlKLoqK3mlr0gPiBwcm9kdWN0aW9uXC1mYWNpbGl0eTsKK+iRoeiQhOeJmeS6uiA+IHBvcnR1Z3Vlc2VcLVwocGVyc29uXCk7CivkuI3ntZXlpoLnuLcgPiBoYW5naW5nXC1ieVwtYVwtdGhyZWFkOwor5oqA6KGT55+l6K2YID4gdGVjaG5pY2FsXC1rbm93bGVkZ2U7Civnvo7lnIvou43kurogPiBhbWVyaWNhblwtc2VydmljZW1hbjsKK+Wci+mam+iyv+aYkyA+IGludGVybmF0aW9uYWxcLXRyYWRlOwor5Lq66YCg6Kqe6KiAID4gYXJ0aWZpY2lhbFwtbGFuZ3VhZ2U7CivkuI3mlZfkuYvlnLAgPiBpbnZpbmNpYmxlXC1wb3NpdGlvbjsKK+iHqui6q+WIqeebiiA+IG9uZScnc1wtb3duXC1pbnRlcmVzdHM7Civnq7bniK3nlKLlk4EgPiBjb21wZXRpdGl2ZVwtcHJvZHVjdDsKK+mdnuaguOWci+WutiA+IG5vblwtbnVjbGVhclwtY291bnRyeTsKK+awo+WAmeeLgOazgSA+IGNsaW1hdGljXC1jb25kaXRpb25zOwor55Kw5b2i57WQ5qeLID4gcmluZ1wtY29uZmlndXJhdGlvbjsKK+ilv+ePreeJmeiqniA+IHNwYW5pc2hcLVwobGFuZ3VhZ2VcKTsKK+S4gOiIrOS+huiqqiA+IGdlbmVyYWxseVwtc3BlYWtpbmc7CivpppbohabmnIPmmaQgPiBsZWFkZXJzaGlwXC1tZWV0aW5nOwor6YeN6KaB5ZWP6aGMID4gYW5cLWltcG9ydGFudFwtaXNzdWU7CivpoJjlhYjlnLDkvY0gPiBsZWFkXChpbmdcKVwtcG9zaXRpb247Civkv6Hmga/ns7vntbEgPiBpbmZvcm1hdGlvblwtc3lzdGVtOwor56iu5peP5riF5rSXID4gXCJldGhuaWNcLWNsZWFuc2luZ1wiOwor5LmS5LmT55CD5qqvID4gdGFibGVcLXRlbm5pc1wtdGFibGU7CivpnZ7luLjlmrTljrIgPiB0b1wtcHVuaXNoXC1zZXZlcmVseTsKK+WFp+mDqOe1kOaniyA+IGludGVybmFsXC1zdHJ1Y3V0cmU7Civmlbjmk5rpgJrkv6EgPiBkYXRhXC1jb21tdW5pY2F0aW9uOwor6Z2e5bi45oSf6KydID4gZXh0cmVtZWx5XC1ncmF0ZWZ1bDsKK+WFi+mahuaKgOihkyA+IGNsb25pbmdcLXRlY2hub2xvZ3k7Civpm7vlrZDntrLntaEgPiBlbGVjdHJvbmljXC1uZXR3b3JrOwor55m96bq15pu455SfID4gcGFsZVwtZmFjZWRcLXNjaG9sYXI7CivosqHli5nou5/ku7YgPiBmaW5hbmNpYWxcLXNvZnR3YXJlOwor6KW/54+t54mZ5paHID4gc3BhbmlzaFwtXChsYW5ndWFnZVwpOwor5Y+k5YW46Kqe6KiAID4gY2xhc3NpY2FsXC1sYW5ndWFnZTsKK+WFqeWAi+S4reWciyA+IHR3b1wtY2hpbmFcLVwocG9saWN5XCk7CivlpJbkvobmipXos4cgPiBmb3JlaWduXC1pbnZlc3RtZW50Owor5Zyf6ICz5YW26KqeID4gdHVya2lzaFwtXChsYW5ndWFnZVwpOwor5LiN5q2j5LmL6aKoID4gdW5oZWFsdGh5XC10ZW5kZW5jeTsKK+mbhuaIkOmbu+i3ryA+IGludGVncmF0ZWRcLWNpcmN1aXQ7Civplonpl5zmlL/nrZYgPiBjbG9zZWRcLWRvb3JcLXBvbGljeTsKK+e2sue1oeaKgOihkyA+IG5ldHdvcmtcLXRlY2hub2xvZ3k7CivkuK3lnIvmlL/lupwgPiBjaGluZXNlXC1nb3Zlcm5tZW50Owor5Luk54mM55Kw57ayID4gdG9rZW5cLXJpbmdcLW5ldHdvcms7CivlpKfmmI7pvI7pvI4gPiBhXC1ncmFuZFwtcmVwdXRhdGlvbjsKK+iyv+aYk+e1hOe5lCA+IHRyYWRlXC1vcmdhbml6YXRpb247CivpgY3lnLDplovoirEgPiBibG9zc29tXC1ldmVyeXdoZXJlOwor57ay57Wh566h55CGID4gbmV0d29ya1wtbWFuYWdlbWVudDsKK+mrmOmAn+e2sue1oSA+IGhpZ2hcLXNwZWVkXC1uZXR3b3JrOwor5pu46Z2i6Kix5Y+vID4gd3JpdHRlblwtcGVybWlzc2lvbjsKK+iBr+WQiOWFrOWgsSA+IGpvaW50XC1hbm5vdW5jZW1lbnQ7CivnoJTnqbbmqZ/mp4sgPiByZXNlYXJjaFwtaW5zdGl0dXRlOwor5L2b6Jit6IqS6KqeID4gZmxlbWlzaFwtXChsYW5ndWFnZVwpOwor5ZyL5pyD6K2w5ZOhID4gbWVtYmVyXC1vZlwtY29uZ3Jlc3M7CivmnIDov5Hlub7lubQgPiB0aGVcLWxhc3RcLWZld1wteWVhcnM7Civnsr7nsKHplovmlK8gPiB0b1wtcmVkdWNlXC1zcGVuZGluZzsKK+S4jee9ruWPr+WQpiA+IGRlY2xpbmVcLXRvXC1jb21tZW50Owor5LiJ6KeS6IW55bi2ID4gYXRobGV0aWNcLXN1cHBvcnRlcjsKK+ihm+eUn+ioreWCmSA+IHNhbml0YXJ5XC1lcXVpcG1lbnQ7CivpgKDmiJDllY/poYwgPiB0b1wtY3JlYXRlXC1hblwtaXNzdWU7CivnuL3nmoTkvoboqqogPiBnZW5lcmFsbHlcLXNwZWFraW5nOwor6Imy5oOF5bCP6KqqID4gcG9ybm9ncmFwaGljXC1ub3ZlbDsKK+iytOWmg+mGiemFkiA+IHRoZVwtZHJ1bmtlblwtYmVhdXR5Owor6Zu75a2Q5L+h566xID4gZWxlY3Ryb25pY1wtbWFpbGJveDsKK+aWsOWKoOWdoeS6uiA+IHNpbmdhcG9yZWFuXC1wZXJzb247CivpqZrmv6Tpp63mtaogPiBwZXJpbG91c1wtc2l0dWF0aW9uOwor5aSn5Yqb55m85bGVID4gdmlnb3JvdXNcLWV4cGFuc2lvbjsKK+acjeWLmeimj+eroCA+IHNlcnZpY2VcLXJlZ3VsYXRpb247Civnq63nm6HlhajlipsgPiB0b1wtc3BhcmVcLW5vXC1lZmZvcnQ7CivkuI3mipjkuI3miaMgPiBhXC1odW5kcmVkXC1wZXJcLWNlbnQ7Civnp5HnoJTmqKPmqZ8gPiByZXNlYXJjaFwtcHJvdG90eXBlOwor5Y2A5Z+f57ay6LevID4gbG9jYWxcLWFyZWFcLW5ldHdvcms7CivnmbzpgIHlip/njocgPiB0cmFuc21pc3Npb25cLXBvd2VyOwor5pS/5bqc6K2m5ZGKID4gZ292ZXJubWVudFwtd2FybmluZzsKK+aguOiDveaKgOihkyA+IG51Y2xlYXJcLXRlY2hub2xvZ3k7CivmhI/lpKfliKnoqp4gPiBpdGFsaWFuXC1cKGxhbmd1YWdlXCk7CivljJfkuqzlpKflrbggPiBiZWlqaW5nXC11bml2ZXJzaXR5Owor5Y2A5Z+f57ay57WhID4gbG9jYWxcLWFyZWFcLW5ldHdvcms7CivntrLntaHnp5HmioAgPiBuZXR3b3JrXC10ZWNobm9sb2d5Owor6IGv6YKm5pS/5bqcID4gZmVkZXJhbFwtZ292ZXJubWVudDsKK+mbu+iFpualreiAhSA+IHNvZnR3YXJlXC1kZXZlbG9wZXI7CivpgLLooYznt6jnqIsgPiBleGVjdXRhYmxlXC1wcm9ncmFtOwor6Jmb5pOs6YCj5o6lID4gdmlydHVhbFwtY29ubmVjdGlvbjsKK+WuouaItuaHieeUqCA+IGNsaWVudFwtYXBwbGljYXRpb247CivkuI3pmqjmhI/ogowgPiBpbnZvbHVudGFyeVwtbXVzY2xlOwor5o6h5Y+W5o6q5pa9ID4gdG9cLWFkb3B0XC1hXC1tZWFzdXJlOwor5ZOI5L2b5aSn5a24ID4gaGFydmFyZFwtdW5pdmVyc2l0eTsKK+e2sueuoeezu+e1sSA+IG5ldHdvcmtcLW1hbmFnZW1lbnQ7Civmmpfnt5rlhYnorZwgPiBkYXJrXC1saW5lXC1zcGVjdHJ1bTsKK+mbu+imluevgOebriA+IHRlbGV2aXNpb25cLXByb2dyYW07CivkuK3lnIvkurrmsJEgPiB0aGVcLWNoaW5lc2VcLXBlb3BsZTsKK+ewoeefreS7i+e0uSA+IGJyaWVmXC1pbnRyb2R1Y3Rpb247CivmtbfngaPmiLDniK0gPiBcKHBlcnNpYW5cKVwtZ3VsZlwtd2FyOwor5Zyw55CD5aSn5rCjID4gZWFydGgnJ3NcLWF0bW9zcGhlcmU7CivnsKHopoHku4vntLkgPiBicmllZlwtaW50cm9kdWN0aW9uOwor5pyN5YuZ6LOq6YePID4gcXVhbGl0eVwtb2ZcLXNlcnZpY2U7CivkuI3mlLvoh6rnoLQgPiBjb2xsYXBzZVwtb2ZcLWl0c2VsZjsKK+aWh+WMluWCs+e1sSA+IGN1bHR1cmFsXC10cmFkaXRpb247CivntrLntaHpgbfnp7sgPiBuZXR3b3JrXC1taWdyYXRpb247Civpm7vohabou5/ku7YgPiBjb21wdXRlclwtc29mdHdhcmU7Civos4fmlpnlgrPovLggPiBkYXRhXC10cmFuc21pc3Npb247CivlnIvpmLLpg6jplbcgPiBkZWZlbmNlXC1zZWNyZXRhcnk7Civlt6jlpKflo5PlipsgPiBlbm9ybW91c1wtcHJlc3N1cmU7Civmlbjmk5rlgrPovLggPiBkYXRhXC10cmFuc21pc3Npb247CivmlL/msrvmsKPlgJkgPiBwb2xpdGljYWxcLWNsaW1hdGU7Civlu6Pln5/ntrLot68gPiB3aWRlXC1hcmVhXC1uZXR3b3JrOwor5pWZ5Y+L5aSn5pyDID4gY2h1cmNoXC1jb25mZXJlbmNlOwor6LuN5LqL5Yqb6YePID4gbWlsaXRhcnlcLXN0cmVuZ3RoOwor6Zu76Kmx5pyN5YuZID4gdGVsZXBob25lXC1zZXJ2aWNlOwor6Zi/5ouJ5Lyv6KqeID4gYXJhYmljXC1cKGxhbmd1YWdlXCk7CivmlK/mn7HnlKLmpa0gPiBtYWluc3RheVwtaW5kdXN0cnk7CivlpJrnq5nlnLDlnYAgPiBtdWx0aWNhc3RcLWFkZHJlc3M7CivntpPmv5/lronlhaggPiBlY29ub21pY1wtc2VjdXJpdHk7CivlpJbkuqTpoqjms6IgPiBkaXBsb21hdGljXC1jcmlzaXM7Civpm7voqbHntrLot68gPiB0ZWxlcGhvbmVcLW5ldHdvcms7Civlj43pgY7kvoboqqogPiBvblwtdGhlXC1vdGhlclwtaGFuZDsKK+atkOa0suiqnuiogCA+IGV1cm9wZWFuXC1sYW5ndWFnZTsKK+e2sue1oeioreWCmSA+IG5ldHdvcmtcLWVxdWlwbWVudDsKK+aXpeebiuWinuWKoCA+IHRvXC1pbmNyZWFzZVwtZGFpbHk7CivntpPmv5/lipvph48gPiBlY29ub21pY1wtc3RyZW5ndGg7CivorormnKzliqDljrIgPiBiZWNvbWVcLWFnZ3JhdmF0ZWQ7CivlhYnnupbmjqXlj6MgPiBvcHRpY2FsXC1pbnRlcmZhY2U7CivllYbmpa3ooYzngrogPiBidXNpbmVzc1wtYWN0aXZpdHk7Civou43osrvplovmlK8gPiBtaWxpdGFyeVwtc3BlbmRpbmc7Civou5/ku7blubPoh7ogPiBzb2Z0d2FyZVwtcGxhdGZvcm07CivmjInlnJbntKLpqaUgPiB0cnlcLXRvXC1sb2NhdGVcLXN0aDsKK+W4jOS8r+S+huiqniA+IGhlYnJld1wtXChsYW5ndWFnZVwpOwor6ZaL55m86YCx5pyfID4gZGV2ZWxvcG1lbnRcLWN5Y2xlOwor6Zi/5ouJ5Lyv5paHID4gYXJhYmljXC1cKGxhbmd1YWdlXCk7CivmiLDnlaXlpKXkvLQgPiBzdHJhdGVnaWNcLXBhcnRuZXI7CivpnZzohIjlkLjmr5IgPiBpbnRyYXZlbmVvdXNcLWRydWc7CivnhKHmnJ/lvpLliJEgPiBsaWZlXC1pbXByaXNvbm1lbnQ7Civnmb7liIbkuYvnmb4gPiBhXC1odW5kcmVkXC1wZXJjZW50Owor6JCK5rqr5pav5Z+6ID4gXChtb25pY2FcKVwtbGV3aW5za3k7CivlgrPovLjmnI3li5kgPiB0cmFuc3BvcnRcLXNlcnZpY2U7CivntpzlkIjluIPnt5ogPiBpbnRlZ3JhdGVkXC13aXJpbmc7CivlgrPovLjpgJrpgZMgPiB0cmFuc3BvcnRcLWNoYW5uZWw7CivmlL/lupzpg6jploAgPiBnb3Zlcm5tZW50XC1icmFuY2g7CivmlrDogZ7pgLHliIogPiBuZXdzd2Vla1wtbWFnYXppbmU7Civnm7TmjqXnq7bniK0gPiBkaXJlY3RcLWNvbXBldGl0b3I7CivphqvnmYLntpPpqZcgPiBtZWRpY2FsXC1leHBlcnRpc2U7Civlu6Pmkq3lnLDlnYAgPiBicm9hZGNhc3RcLWFkZHJlc3M7CivnlJ/nianmrablmaggPiBiaW9sb2dpY2FsXC13ZWFwb247CivmmpfnhKHlpKnml6UgPiBjb21wbGV0ZVwtZGFya25lc3M7Civpq5jntJrnoJTnqbYgPiBhZHZhbmNlZFwtcmVzZWFyY2g7Civoh6rkuLvns7vntbEgPiBhdXRvbm9tb3VzXC1zeXN0ZW07Civnmb3ph5HmvKLlrq4gPiBidWNraW5naGFtXC1wYWxhY2U7CivpgYvooYzni4Dms4EgPiBvcGVyYXRpb25hbFwtc3RhdGU7Civlm7Dpm6PlnKjmlrwgPiB0aGVcLXByb2JsZW1cLWlzXC5cLlwuOwor5pel6ICz5pu86KqeID4gZ2VybWFuaWNcLWxhbmd1YWdlOwor5YKz6Ly45Y2U5a6aID4gdHJhbnNmZXJcLXByb3RvY29sOwor5aSn5YiA6ZeK5panID4gYm9sZFwtYW5kXC1kZWNpc2l2ZTsKK+eJueWIpeW+hemBhyA+IHNwZWNpYWxcLXRyZWF0bWVudDsKK+WwiOeUqOe2sui3ryA+IGRlZGljYXRlZFwtbmV0d29yazsKK+aVmOWIqeS6nuaWhyA+IHN5cmlhY1wtXChsYW5ndWFnZVwpOwor5YKz6Ly46YCf546HID4gdHJhbnNtaXNzaW9uXC1yYXRlOwor5LiN5q2h6ICM5pWjID4gcGFydFwtb25cLWJhZFwtdGVybXM7CivkuK3oj6/msJHlnIsgPiByZXB1YmxpY1wtb2ZcLWNoaW5hOwor5Lim6aeV6b2K6amFID4gcnVuXC1uZWNrXC1hbmRcLW5lY2s7Civpm6Pku6Xmh4nku5ggPiBoYXJkXC10b1wtZGVhbFwtd2l0aDsKK+ehrOS7tuW5s+iHuiA+IGhhcmR3YXJlXC1wbGF0Zm9ybTsKK+WumOaWueiqnuiogCA+IG9mZmljaWFsXC1sYW5ndWFnZTsKK+WMl+S6rOi/kemDiiA+IHN1YnVyYlwtb2ZcLWJlaWppbmc7CivkuIDoiKzljp/liYcgPiBnZW5lcmFsXC1wcmluY2lwbGU7CivlsITpoLvlubLmk74gPiByYWRpb1wtaW50ZXJmZXJlY2U7Civlm5vpnaLlhavmlrkgPiBpblwtYWxsXC1kaXJlY3Rpb25zOwor5ZyL5a625a6J5YWoID4gbmF0aW9uYWxcLXNlY3VyaXR5Owor5rW35rSL5rqr5bqmID4gb2NlYW5cLXRlbXBlcmF0dXJlOwor57ay6Zqb5Y2U5a6aID4gaW50ZXJuZXRcLXByb3RvY29sOwor5aSW5Lqk6Zec5L+CID4gZm9yZWlnblwtcmVsYXRpb25zOwor5be05YWL5aSP6LGsID4gYmVya3NoaXJlXC1cKHN3aW5lXCk7CivkuI3msrvkuYvnl4cgPiBpbmN1cmFibGVcLWRpc2Vhc2U7Civmpa3nlYzmqJnmupYgPiBpbmR1c3RyeVwtc3RhbmRhcmQ7Civpmbjln7rlsI7lvYggPiBsYW5kXC1iYXNlZFwtbWlzc2xlOwor6KW/55Wq6ZuF5pu4ID4gYm9va1wtb2ZcLXplcGhhbmlhaDsKK+WwiOWutuipleirliA+IGV4cGVydFwtY29tbWVudGFyeTsKK+Wah+W+l+eZvOaKliA+IHRyZW1ibGVcLXdpdGhcLWZlYXI7Civlm5vploDovY7ou4ogPiBzZWRhblwtXChtb3RvclwtY2FyXCk7CivmhJvkuI3ph4vmiYsgPiBmb25kbGVcLWFkbWlyaW5nbHk7Civlvp7poK3liLDohbMgPiBmcm9tXC1oZWFkXC10b1wtZm9vdDsKK+i7jeS6i+WvpuWKmyA+IG1pbGl0YXJ5XC1zdHJlbmd0aDsKK+W7o+aSree2sui3ryA+IGJyb2FkY2FzdFwtbmV0d29yazsKK+esqOWPo+aLmeiIjCA+IGF3a3dhcmRcLWluXC1zcGVlY2g7Civlt7Tmlq/lhYvoqp4gPiBiYXNxdWVcLVwobGFuZ3VhZ2VcKTsKK+iPr+WMl+W5s+WOnyA+IG5vcnRoXC1jaGluYVwtcGxhaW47CivmlZHmganoqIjlioMgPiBwbGFuXC1vZlwtc2FsdmF0aW9uOwor6Iiq56m65q+N6ImmID4gYWlyY3JhZnRcLWNhcnJpZXI7CivkuK3lnIvlpKfpmbggPiBjaGluZXNlXC1tYWlubGFuZDsKK+W9seWDj+acg+itsCA+IHZpZGVvXC1jb25mZXJlbmNlOwor5oKy5q2h6Zui5ZCIID4gam95c1wtYW5kXC1zb3Jyb3dzOwor55m+6YeM5oyR5LiAID4gb25lXC1pblwtYVwtaHVuZHJlZDsKK+iqnuazleihk+iqniA+IGdyYW1tYXRpY2FsXC10ZXJtOwor5pu06auY5oCn6IO9ID4gaGlnaFwtcGVyZm9ybWFuY2U7Civou43kuovnp5HlrbggPiBtaWxpdGFyeVwtc2NpZW5jZTsKK+WZqOWumOenu+auliA+IG9yZ2FuXC10cmFuc3BsYW50Owor5b2x5YOP6JmV55CGID4gaW1hZ2VcLXByb2Nlc3Npbmc7Civkurrkuovpg6jploAgPiBwZXJzb25uZWxcLW9mZmljZTsKK+a9m+WcqOWogeiEhSA+IHBvdGVudGlhbFwtdGhyZWF0Owor57Wx6KiI5pW45pOaID4gc3RhdGlzdGljYWxcLWRhdGE7CivnibnlrprlkKvnvqkgPiBzcGVjaWZpY1wtbWVhbmluZzsKK+mHkeiejeezu+e1sSA+IGZpbmFuY2lhbFwtc3lzdGVtOwor5bCO6Ie05q275LqhID4gdG9cLWxlYWRcLXRvXC1kZWF0aDsKK+adv+S4iumHmOmHmCA+IHRoYXRcLWNsaW5jaGVzXC1pdDsKK+mbu+iFpuS8gealrSA+IGNvbXB1dGVyXC1jb21wYW55Owor5ZSJ6IGy5ZiG5rCjID4gaGVhdmVcLWRlZXBcLXNpZ2hzOwor5LiN5aW95oSP5oCdID4gZmVlbFwtZW1iYXJyYXNzZWQ7CivmraPluLjlt6XkvZwgPiBub3JtYWxcLW9wZXJhdGlvbjsKK+WCs+ecn+eZvOmAgSA+IGZheFwtdHJhbnNtaXNzaW9uOwor5pON5L2c57O757WxID4gb3BlcmF0aW5nXC1zeXN0ZW07CivlgrPovLjlqpLnlYwgPiB0cmFuc3BvcnRcLW1ldGhvZDsKK+enu+WLlembu+ipsSA+IG1vYmlsZVwtdGVsZXBob25lOwor57ay57Wh55u05b6RID4gbmV0d29ya1wtZGlhbWV0ZXI7CivmiJDnvqTntZDpmoogPiBpblwtbGFyZ2VcLW51bWJlcnM7CivnhKHmiYDkuI3os6MgPiB0b1wtc2VsbFwtYW55dGhpbmc7CivpgJrnlKjpm7vlmaggPiBnZW5lcmFsXC1lbGVjdHJpYzsKK+acnemuruWNiuWztiA+IGtvcmVhblwtcGVuaW5zdWxhOwor5pyJ6Zec5Lq65aOrID4gcGVyc29uc1wtaW52b2x2ZWQ7CivogLbliKnnsbPmm7ggPiBib29rXC1vZlwtamVyZW1pYWg7Civph5Hono3luILloLQgPiBmaW5hbmNpYWxcLW1hcmtldDsKK+WFqeWyuOWwjeipsSA+IGJpbGF0ZXJpYWxcLXRhbGtzOwor5LiN57aT5LmL6KuHID4gYWJzdXJkXC1zdGF0ZW1lbnQ7Civot6/nlLHljZTlrpogPiByb3V0aW5nXC1wcm90b2NvbDsKK+e2sui3r+W5s+WPsCA+IG5ldHdvcmtcLXBsYXRmb3JtOwor5YWJ5qqi5ris5ZmoID4gb3B0aWNhbFwtZGV0ZWN0b3I7Civpm7vohabntrLot68gPiBjb21wdXRlclwtbmV0d29yazsKK+azoueIvuWkmua2siA+IGJvcmRlYXV4XC1taXh0dXJlOwor55m86YGU5ZyL5a62ID4gZGV2ZWxvcGVkXC1uYXRpb247Civlt7LntpPpgLLooYwgPiBhbHJlYWR5XC11bmRlcndheTsKK+WCs+mAgeacjeWLmSA+IGRlbGl2ZXJ5XC1zZXJ2aWNlOwor6K6A6ICF5L6G5L+hID4gcmVhZGVyJydzXC1sZXR0ZXJzOwor5ZOI5be06LC35pu4ID4gYm9va1wtb2ZcLWhhYmFra3VrOwor55m95aOB5b6u55GVID4gYVwtc2xpZ2h0XC1ibGVtaXNoOwor5Y2B5bm+5YCL5pyIID4gdGVuXC1tb250aHNcLW9yXC1zbzsKK+S4jeWKoOaAnee0oiA+IHdpdGhvdXRcLXRoaW5raW5nOwor5Zau5qih5YWJ57qWID4gc2luZ2xlbW9kZVwtZmliZXI7CivmnIDlpKfog73lipsgPiBtYXhpbXVtXC1jYXBhY2l0eTsKK+aciee3mumbu+imliA+IGNhYmxlXC10ZWxldmlzaW9uOwor5LiN6K6K6LOH5pysID4gY29uc3RhbnRcLWNhcGl0YWw7Civpm7voqbHkv6HomZ8gPiB0ZWxlcGhvbmVcLXNpZ25hbDsKK+WogeeIvuWjq+iqniA+IHdlbHNoXC1cKGxhbmd1YWdlXCk7CivnlLflrZDnsYPnkIMgPiBtZW4nJ3NcLWJhc2tldGJhbGw7Civoga/pgqblpKfmqJMgPiBmZWRlcmFsXC1idWlsZGluZzsKK+aZrumAmuWVj+mhjCA+IGNvbW1vblwtcXVlc3Rpb25zOwor6Ly46YCB5aqS5LuLID4gdHJhbnNwb3J0XC1tZWRpdW07CivpmLLooZvmrablmaggPiBkZWZlbnNpdmVcLXdlYXBvbjsKK+S9nOalreezu+e1sSA+IG9wZXJhdGluZ1wtc3lzdGVtOwor6auU6IKy5LmL56qXID4gd2luZG93XC1vblwtc3BvcnRzOwor5pu45a+r6Kqe6KiAID4gd3JpdHRlblwtbGFuZ3VhZ2U7CivlhbHkuqvluLblr6wgPiBzaGFyZWRcLWJhbmR3aWR0aDsKK+aWh+WMlumanOekmSA+IGN1bHR1cmFsXC1iYXJyaWVyOwor55u05o6l5b2x6Z+/ID4gZGlyZWN0XC1pbmZsdWVuY2U7CivoiIfmraTlkIzmmYIgPiBhdFwtdGhlXC1zYW1lXC10aW1lOwor5Li76KaB5L6G5rqQID4gcHJpbmNpcGxlXC1zb3VyY2U7CivkurrmsJHlhaznpL4gPiBwZW9wbGUnJ3NcLWNvbW11bmU7CivkuIvpnaLoq4vnnIsgPiBwbGVhc2VcLXNlZVwtYmVsb3c7Civph5Hono3poqjms6IgPiBmaW5hbmNpYWxcLWNyaXNpczsKK+e2sue1oeWNlOitsCA+IG5ldHdvcmtcLXByb3RvY29sOwor55m96KGj5oiw5aOrID4gd2FycmlvclwtaW5cLXdoaXRlOwor5a6J5aaC56OQ55+zID4gYXNcLXNvbGlkXC1hc1wtcm9jazsKK+aVhemanOaOkumZpCA+IGZhdWx0XC1yZXNvbHV0aW9uOwor6YeR6J6N5pS56Z2pID4gZmluYW5jaWFsXC1yZWZvcm07CivooYzli5Xpm7voqbEgPiBtb2JpbGVcLXRlbGVwaG9uZTsKK+mbjOaAp+aOpeWPoyA+IGZlbWFsZVwtY29ubmVjdG9yOwor5b+D6Ief56e75q6WID4gaGVhcnRcLXRyYW5zcGxhbnQ7CivpgZnmjqfmk43kvZwgPiByZW1vdGVcLW9wZXJhdGlvbjsKK+ewoeWWrueahOiqqiA+IHRvXC1wdXRcLWl0XC1zaW1wbHk7CivlhYnmjqXmlLblmaggPiBvcHRpY2FsXC1yZWNlaXZlcjsKK+apn+aisOiqnuiogCA+IG1hY2hpbmVcLWxhbmd1YWdlOwor6IOh5b+X5piO5biCID4gaG9cLWNoaVwtbWluaFwtY2l0eTsKK+S4jeefpeaJgOS6kSA+IG5vdFwta25vd1wtd2hhdFwtc2I7Civpm7vohablhazlj7ggPiBjb21wdXRlclwtY29tcGFueTsKK+iBr+W4reacg+itsCA+IGpvaW50XC1jb25mZXJlbmNlOwor5Lqk5o+b57ay6LevID4gc3dpdGNoZWRcLW5ldHdvcms7CivpqqjlubnntrLot68gPiBiYWNrYm9uZVwtbmV0d29yazsKK+i7n+S7tuS8gealrSA+IHNvZnR3YXJlXC1jb21wYW55Owor5Yqb6YeP5Z2H6KGhID4gYmFsYW5jZVwtb2ZcLXBvd2VyOwor5pa95rSX57SE57+wID4gam9oblwtdGhlXC1iYXB0aXN0Owor5bC85biM57Gz6KiYID4gYm9va1wtb2ZcLW5laGVtaWFoOwor5aCx57SZ5aCx5bCOID4gbmV3c3BhcGVyXC1yZXBvcnQ7Civph5Hono3ljbHmqZ8gPiBmaW5hbmNpYWxcLWNyaXNpczsKK+mboumWi+WMl+S6rCA+IHRvXC1sZWF2ZVwtYmVpamluZzsKK+W5vuS5juWujOWFqCA+IGFsbW9zdFwtZW50aXJlbHk7Civkv6Hmga/mmYLku6MgPiBpbmZvcm1hdGlvblwtYWdlOwor55Si5ZOB57aT55CGID4gcHJvZHVjdFwtbWFuYWdlcjsKK+i7jeS6i+WogeiEhSA+IG1pbGl0YXJ5XC10aHJlYXQ7CivntrLot6/mnI3li5kgPiBuZXR3b3JrXC1zZXJ2aWNlOwor56CU56m25Lit5b+DID4gcmVzZWFyY2hcLWNlbnRlcjsKK+W0h+aLnOWEgOW8jyA+IHdvcnNoaXBcLXNlcnZpY2U7CivmlrnoiIjmnKroib4gPiB0b1wtYmVcLXVuZm9sZGluZzsKK+mbmemCiuiyv+aYkyA+IGJpbGF0ZXJhbFwtdHJhZGU7Civou43kuovpg6jploAgPiBtaWxpdGFyeVwtYnJhbmNoOwor6Zmk5q2k5LmL5aSWID4gYXBhcnRcLWZyb21cLXRoaXM7CivlpKrpmb3lhazlj7ggPiBzdW5cLWNvcnBvcmF0aW9uOwor5aSW5ZyL6LOH5pysID4gZm9yZWlnblwtY2FwaXRhbDsKK+ixkOWvjOWkmuW9qSA+IHJpY2hseVwtY29sb3JmdWw7CivkuI3nmb3kuYvlhqQgPiB1bnJpZ2h0ZWRcLXdyb25nOwor5oiS5YKZ5qOu5Zq0ID4gaGVhdmlseVwtZ3VhcmRlZDsKK+WNiumAlOiAjOW7oiA+IGdpdmVcLXVwXC1oYWxmd2F5Owor5om56YeP55Sf55SiID4gdG9cLW1hc3NcLXByb2R1Y2U7Civmk43kvZzpgJ/njocgPiBvcGVyYXRpbmdcLXNwZWVkOwor6IGv5ZCI55m86KGoID4gam9pbnRcLXN0YXRlbWVudDsKK+S4jeWujOWFqOiRiSA+IGluY29tcGxldGVcLWxlYWY7CivmoLjlj43mh4nloIYgPiBudWNsZWFyXC1yZWFjdG9yOwor57aT5r+f5pS56Z2pID4gZWNvbm9taWNcLXJlZm9ybTsKK+WNiuWjgeaxn+WxsSA+IGhhbGZcLW9mXC1jb3VudHJ5Owor5Y+k5YW46Z+z5qiCID4gY2xhc3NpY2FsXC1tdXNpYzsKK+S4jeWPr+WkmuW+lyA+IGhhcmRcLXRvXC1jb21lXC1ieTsKK+mHjeaWsOmWi+WniyA+IHJlc3VtZVwsXC1yZXN0YXJ0Owor6Zu75a2Q6YO15Lu2ID4gZWxlY3Ryb25pY1wtbWFpbDsKK+e2k+a/n+WJjemAlCA+IGVjb25vbWljXC1mdXR1cmU7Civlt6XoroDlrbjmoKEgPiB0aGVcLXJlZm9ybWF0b3J5Owor5Zq06YeN6Zec5YiHID4gc2VyaW91c1wtY29uY2VybjsKK+e2k+a/n+WNseapnyA+IGVjb25vbWljXC1jcmlzaXM7Civli5XmhYvliqnoqZ4gPiBhc3BlY3RcLXBhcnRpY2xlOwor5pq06Lez5aaC6Zu3ID4gc3RhbXBcLXdpdGhcLWZ1cnk7Civku6Xopb/ntZDmm7ggPiBib29rXC1vZlwtZXpla2llbDsKK+WMluWtuOatpuWZqCA+IGNoZW1pY2FsXC13ZWFwb247CivnmbvoqJjnlKjmiLYgPiByZWdpc3RlcmVkXC11c2VyOwor5Zq06YeN5ZWP6aGMID4gc2VyaW91c1wtcHJvYmxlbTsKK+eVtuWLmeS5i+aApSA+IHVyZ2VudFwtcHJpb3JpdHk7Civou5/ku7bns7vntbEgPiBzb2Z0d2FyZVwtc3lzdGVtOwor6LO854mp5Lit5b+DID4gc2hvcHBpbmdcLWNlbnRlcjsKK+WjgeWjmOajruWatCA+IGNsb3NlbHlcLWd1YXJkZWQ7Civnkarmi4nln7rmm7ggPiBib29rXC1vZlwtbWFsYWNoaTsKK+iyv+aYk+WkpeS8tCA+IHRyYWRpbmdcLXBhcnRuZXI7CivmnIjku73mnIPorbAgPiBtb250aGx5XC1tZWV0aW5nOwor56CU56m25aCx5ZGKID4gcmVzZWFyY2hcLXJlcG9ydDsKK+WFiOmAsuatpuWZqCA+IGFkdmFuY2VkXC13ZWFwb247CivlpKfnmbzpm7fpnIYgPiBleHRyZW1lbHlcLWFuZ3J5Owor576O5ZyL5pS/5bqcID4gdVwuc1wuXC1nb3Zlcm5tZW50Owor5aGe54i+54m56KqeID4gY2VsdGljXC1sYW5ndWFnZTsKK+aOqui+reW8t+ehrCA+IHN0cm9uZ2x5XC13b3JkZWQ7Civlhazlj7jmnIPorbAgPiBjb21wYW55XC1tZWV0aW5nOwor5pS56K6K5b2i5YOPID4gdHJhbnNmaWd1cmF0aW9uOwor55m+5YWS5YWr5Y2BID4gYWJvdXRcLWFcLWh1bmRyZWQ7CivlpJrmqKHlhYnnupYgPiBtdWx0aW1vZGVcLWZpYmVyOwor6Luf5Lu25biC5aC0ID4gc29mdHdhcmVcLW1hcmtldDsKK+agoeWckumqqOW5uSA+IGNhbXB1c1wtYmFja2JvbmU7CivmspLmnInoga/nuasgPiB0b1wtYmVcLXVucmVsYXRlZDsKK+S4lueVjOacgOWkpyA+IHdvcmxkJydzXC1sYXJnZXN0Owor5bCW6Yqz5om56KmVID4gc2hhcnBcLWNyaXRpY2lzbTsKK+mbu+iFpuezu+e1sSA+IGNvbXB1dGVyXC1zeXN0ZW07CivosqjluaPljbHmqZ8gPiBtb25ldGFyeVwtY3Jpc2lzOwor5pqX6YCB56eL5rOiID4gbWFrZVwtZXllc1wtYXRcLXNiOwor5pW45L2N57ay6LevID4gZGlnaXRhbFwtbmV0d29yazsKK+WFqOWKm+S7pei1tCA+IGRvXC1hdFwtYWxsXC1jb3N0czsKK+iZm+aTrOe2sue1oSA+IHZpcnR1YWxcLW5ldHdvcms7CivlhYnmmI7ml6XloLEgPiBndWFuZ21pbmdcLWRhaWx5Owor5q235Y+y5LmF6YGgID4gYW5jaWVudFwtaGlzdG9yeTsKK+aWr+aLieWkq+iqniA+IHNsYXZpY1wtbGFuZ3VhZ2U7CivlpJblnIvlhazlj7ggPiBmb3JlaWduXC1jb21wYW55Owor5ZWG5qWt5Lit5b+DID4gYnVzaW5lc3NcLWNlbnRlcjsKK+S4jeebuOS4iuS4iyA+IGVxdWFsbHlcLW1hdGNoZWQ7CivmqZ/lr4bmlofku7YgPiBzZWNyZXRcLWRvY3VtZW50Owor5YW36auU6KiI5YqDID4gYVwtY29uY3JldGVcLXBsYW47Civmlofmm7jomZXnkIYgPiB3b3JkXC1wcm9jZXNzaW5nOwor6aCQ6Ziy5o6q5pa9ID4gcHJvdGVjdGl2ZVwtc3RlcDsKK+WFrOeEtuihqOekuiA+IHRvXC1zdGF0ZVwtb3Blbmx5Owor6LKg5YK157qN57qNID4gaGVhdmlseVwtaW5cLWRlYnQ7CivntpPmv5/pq5TliLYgPiBlY29ub21pY1wtc3lzdGVtOwor5LiN6YGO54i+54i+ID4gbWVyZWx5XC1tZWRpb2NyZTsKK+a1geaEn+eXheavkiA+IGluZmx1ZW56YVwtdmlydXM7CivooZvnlJ/lrpjlk6EgPiBoZWFsdGhcLW9mZmljaWFsOwor5YW36auU5ZWP6aGMID4gY29uY3JldGVcLWlzc3VlOwor5ZyL6Ziy6aCQ566XID4gZGVmZW5jZVwtYnVkZ2V0Owor6KOB5rib6LuN5YKZID4gYXJtc1wtcmVkdWN0aW9uOwor5Ye65Y+j5ZWG5ZOBID4gZXhwb3J0XC1wcm9kdWN0Owor5pS56Z2p6YCy56iLID4gcmVmb3JtXC1wcm9jZXNzOwor6JaE6IOO55O35ZmoID4gZWdnc2hlbGxcLWNoaW5hOwor5pO66JWp5ZCK55KwID4gc3dpbmdpbmdcLXJpbmdzOwor5YWo55CD5rCj5YCZID4gZ2xvYmFsXC1jbGltYXRlOwor5bCN5aSW5pS/562WID4gZm9yZWlnblwtcG9saWN5Owor6YCy6KGM6YCa5L+hID4gdG9cLWNvbW11bmljYXRlOwor5LiN5ZKO5pei5b6AID4gbm90XC1jZW5zdXJlXC1zYjsKK+agoeWckue2sue1oSA+IGNhbXB1c1wtbmV0d29yazsKK+aVuOS9jeS/oeiZnyA+IGRpZ2l0YWxcLXNpZ25hbDsKK+eUn+mVt+a/gOe0oCA+IGdyb3d0aFwtaG9ybW9uZTsKK+aMh+aPruS4reW/gyA+IGNvbW1hbmRcLWNlbnRlcjsKK+mbu+ipsee3mui3ryA+IHRlbGVwaG9uZVwtbGluZTsKK+iqnuawo+WKqeipniA+IG1vZGFsXC1wYXJ0aWNsZTsKK+e0hOabuOS6nuiomCA+IGJvb2tcLW9mXC1qb3NodWE7CivntpPmv5/mnInmlYggPiBjb3N0XC1lZmZlY3RpdmU7CivloIXmsbrlkKboqo0gPiB0b1wtZmlybWx5XC1kZW55Owor5pu45a+r56ym6JmfID4gd3JpdGluZ1wtc3ltYm9sOwor5LiN55+l5q275rS7ID4gYWN0XC1yZWNrbGVzc2x5Owor5rOi576F55qE5rW3ID4gdGhlXC1iYWx0aWNcLXNlYTsKK+ahjOmdouezu+e1sSA+IGRlc2t0b3BcLXN5c3RlbTsKK+adseWNl+S6nuWciyA+IHNvdXRoZWFzdFwtYXNpYTsKK+Wwj+Wei+S8gealrSA+IHNtYWxsXC1idXNpbmVzczsKK+izh+aWmeS7i+mdoiA+IGRhdGFcLWludGVyZmFjZTsKK+S4jeaAjum6vOaooyA+IG5vdFwtdXBcLXRvXC1tdWNoOwor6Z2e5bi46YeN6KaBID4gdmVyeVwtaW1wb3J0YW50Owor6Yar5a245bCI5a62ID4gbWVkaWNhbFwtZXhwZXJ0Owor5YWI6YCy5rC05bmzID4gYWR2YW5jZWRcLWxldmVsOwor5pW45pOa5o6l5Y+jID4gZGF0YVwtaW50ZXJmYWNlOwor6YCj6Y6W5Y+N5oeJID4gY2hhaW5cLXJlYWN0aW9uOwor54m55Yil5oSf6KydID4gc3BlY2lhbFwtdGhhbmtzOwor5Lq65aO95L+d6ZqqID4gbGlmZVwtaW5zdXJhbmNlOwor5pW45pOa5LuL6Z2iID4gZGF0YVwtaW50ZXJmYWNlOwor5L2G5Lul55CG5pu4ID4gYm9va1wtb2ZcLWRhbmllbDsKK+i/q+S4jeW+l+W3siA+IGhhdmVcLW5vXC1jaG9pY2U7CivoqZXlg7nliIbpoZ4gPiByYW5rXCxcLWNsYXNzaWZ5Owor5b6e5LqL56CU56m2ID4gdG9cLWRvXC1yZXNlYXJjaDsKK+S7peizveS6nuabuCA+IGJvb2tcLW9mXC1pc2FpYWg7CivljYrmlbjku6XkuIogPiBtb3JlXC10aGFuXC1oYWxmOwor5qqU5qGI5bGs5oCnID4gZmlsZVwtYXR0cmlidXRlOwor5b6e5L6G5rKS5pyJID4gaGF2ZVx8aGFzXC1uZXZlcjsKK+S7peaWr+W4luiomCA+IGJvb2tcLW9mXC1lc3RoZXI7CivmnIDkvbPliKnnm4ogPiBiZXN0XC1pbnRlcmVzdHM7Civmg6HmgKflvqrnkrAgPiB2aWNpb3VzXC1jaXJjbGU7CivkuI3nnIHkurrkuosgPiBiZVwtdW5jb25zY2lvdXM7Civnmb7nhKHogYros7QgPiBib3JlZFwtdG9cLWRlYXRoOwor6Yar5a245Lit5b+DID4gbWVkaWNhbFwtY2VudGVyOwor55m96Imy5Lq656iuID4gdGhlXC13aGl0ZVwtcmFjZTsKK+e2nOWQiOWgseWwjiA+IHN1bW1hcnlcLXJlcG9ydDsKK+Wkp+WQjOWwj+eVsCA+IGFsbW9zdFwtc2ltaWxhcjsKK+WNkei6rOWxiOevgCA+IGJvd1wtYW5kXC1zY3JhcGU7Civmga3os4DmlrDnpqcgPiBoYXBweVwtbmV3XC15ZWFyOwor5YmN55Sf5Y+s5ZaaID4gZm9yZW9yZGluYXRpb247CivntrLpmpvpm7voqbEgPiBpbnRlcm5ldFwtcGhvbmU7CivomIvmnpzpm7vohaYgPiBhcHBsZVwtY29tcHV0ZXI7CivkuI3ohJvogIzotbAgPiBnZXRcLXJvdW5kXC1mYXN0Owor5LiJ6Lyq6LuK5LyVID4gcGVkaWNhYlwtZHJpdmVyOwor6aO957aT6aKo6ZycID4gd2VhdGhlclwtYmVhdGVuOwor5YWo5b+D5YWo5oSPID4gaGVhcnRcLWFuZFwtc291bDsKK+azsOexs+eIvuiqniA+IHRhbWlsXC1sYW5ndWFnZTsKK+S4jeacn+iAjOmBhyA+IG1lZXRcLWJ5XC1jaGFuY2U7Civov5HkuY7lkIzmraUgPiBwbGVzaW9jaHJvbm91czsKK+WTpeacrOWTiOaguSA+IGNvcGVuaGFnZW5cLVw/XD9cPzsKK+eZvuexs+izvei3kSA+IDEwMFwtbWV0cmVcLWRhc2g7Civoqr/mn6XloLHlkYogPiBtZW1vaXJcLFwtcmVwb3J0Owor5pW45a2X5L+h6JmfID4gZGlnaXRhbFwtc2lnbmFsOwor5LiW55WM57aT5r+fID4gZ2xvYmFsXC1lY29ub215Owor6YCa55So5rG96LuKID4gZ2VuZXJhbFwtbW90b3JzOwor5YyX5Lqs6YCx5aCxID4gYmVpamluZ1wtcmV2aWV3Owor5rqQ6bue5Zyw5Z2AID4gc291cmNlXC1hZGRyZXNzOwor6YCZ5qyh5Y2x5qmfID4gcHJlc2VudFwtY3Jpc2lzOwor5Ye65Y+j55Si5ZOBID4gZXhwb3J0XC1wcm9kdWN0Owor5aSa5bel6YGL5L2cID4gbXVsdGl0aHJlYWRpbmc7CivkuozmsKfljJbnorMgPiBjYXJib25cLWRpb3hpZGU7CivntrLntaHoqK3oqIggPiBuZXR3b3JrXC1kZXNpZ247CivkupTlubToqIjlioMgPiBmaXZlXC15ZWFyXC1wbGFuOwor5biC5aC057aT5r+fID4gbWFya2V0XC1lY29ub215Owor5qqU5qGI5Z+36KGMID4gZmlsZVwtZXhlY3V0aW9uOwor5LqS5YuV6Zu76KaWID4gaW50ZXJhY3RpdmVcLXR2Owor5YWs55y+5oSP6KaLID4gcHVibGljXC1vcGluaW9uOwor5q2Q5rSy6IGv55ufID4gZXVyb3BlYW5cLXVuaW9uOwor5qqU5qGI6L2J6YCBID4gZmlsZVwtdHJhbnNmZXI7CivmjpLlsbHlgJLmtbcgPiBlYXJ0aFwtc2hha2luZzsKK+e2k+eHn+iyu+eUqCA+IGJ1c2luZXNzXC1jb3N0Owor55u05oiq5LqG55W2ID4gcGxhaW5cLXRhbGtpbmc7CivlhrfmiLDku6XlvowgPiBwb3N0XC1jb2xkXC13YXI7Civli6LlnKjlv4XooYwgPiBiZVwtaW1wZXJhdGl2ZTsKK+iIiue0hOWFqOabuCA+IG9sZFwtdGVzdGFtZW50Owor5bm+5YCL5bCP5pmCID4gc2V2ZXJhbFwtaG91cnM7CivkuI3lj6/nvLrlsJEgPiBpbmRpc3BlbnNhYmxlOwor6KaW56qX5Z+65rqWID4gd2luZG93c1wtYmFzZWQ7Civpm7vpg7XkvY3nva4gPiBlbWFpbFwtYWRkcmVzczsKK+eglOeptumgmOWfnyA+IHJlc2VhcmNoXC1hcmVhOwor6YCy5o6l5pyN5YuZID4gYWNjZXNzXC1zZXJ2ZXI7CivkuozmrKHlpKfmiLAgPiB3b3JsZFwtd2FyXC10d287Civln7rmnKzmpoLlv7UgPiBiYXNpY1wtY29uY2VwdDsKK+iyv+aYk+mghuW3riA+IHRyYWRlXC1zdXJwbHVzOwor5q2m5Zmo57O757WxID4gd2VhcG9uXC1zeXN0ZW07CivlrrbnlKjpm7vohaYgPiBob21lXC1jb21wdXRlcjsKK+Wkp+WFrOeEoeengSA+IGp1c3RcLWFuZFwtZmFpcjsKK+aWsOe0hOWFqOabuCA+IG5ld1wtdGVzdGFtZW50Owor5Lqe5rSy5ZyL5a62ID4gYXNpYW5cLWNvdW50cnk7CivmmrTpoqjpqZ/pm6ggPiB2aW9sZW50XC1zdG9ybTsKK+aNieWPluWcluWDjyA+IGNhcHR1cmVcLWltYWdlOwor5ouc6YeR5Li7576pID4gbW9uZXlcLXdvcnNoaXA7CivmsLjkuYXlkozlubMgPiBsYXN0aW5nXC1wZWFjZTsKK+WTiOiWqeWFi+S6uiA+IGthemFraFwtcGVyc29uOwor5beh6Iiq5bCO5b2IID4gY3J1aXNlXC1taXNzbGU7CivmmrTlipvniq/nvaogPiB2aW9sZW50XC1jcmltZTsKK+S9leilv+mYv+abuCA+IGJvb2tcLW9mXC1ob3NlYTsKK+S4jeaIkOaWh+azlSA+IHVud3JpdHRlblwtbGF3Owor5Lqe5aSq5ZyL5a62ID4gYXNpYW5cLWNvdW50cnk7Civnm67mqJnluILloLQgPiB0YXJnZXRcLW1hcmtldDsKK+acgOmrmOazlemZoiA+IHN1cHJlbWVcLWNvdXJ0Owor5pyA5b6M5pu05pawID4gbGF0ZXN0XC11cGRhdGU7CivmnY/ku4HosYbohZAgPiBhbG1vbmRcLWp1bmtldDsKK+mAmeeoruaWueW8jyA+IFwoaW5cKVwtdGhpc1wtd2F5Owor5L+d6K235Li7576pID4gcHJvdGVjdGlvbmlzbTsKK+aciOeQg+ihqOmdoiA+IGx1bmFyXC1zdXJmYWNlOwor5Zyw5pa55YGc6LuKID4gcGFya2luZ1wtcGxhY2U7Civnn6XlkI3kurrlo6sgPiBwdWJsaWNcLWZpZ3VyZTsKK+e+juWci+Wci+acgyA+IHVcLnNcLlwtY29uZ3Jlc3M7CivkuI3lubjnmoTmmK8gPiB1bmZvcnR1bmF0ZWx5Owor5YWJ57qW6Zu757qcID4gb3B0aWNhbFwtZmliZXI7CivnpL7kuqToqp7oqIAgPiBsaW5ndWFcLWZyYW5jYTsKK+i2iuS+hui2iuWkmiA+IG1vcmVcLWFuZFwtbW9yZTsKK+eZvuenkeWFqOabuCA+IGVuY3ljbG9wYWVkaWE7Civlip/njofmg6HljJYgPiBwb3dlclwtcGVuYWx0eTsKK+S4jeWPr+aKl+WKmyA+IGZvcmNlXC1tYWpldXJlOwor5Lit5ZyL6YqA6KGMID4gYmFua1wtb2ZcLWNoaW5hOwor6Z+/5oeJ5pmC6ZaTID4gcmVzcG9uc2VcLXRpbWU7CivlgrPovLjmqKHlvI8gPiB0cmFuc2ZlclwtbW9kZTsKK+S4jeefpeS4jeimuiA+IHVuY29uc2Npb3VzbHk7CivliY3miYDmnKrmnIkgPiB1bnByZWNlZGVudGVkOwor6Kiq5ZWP5pa55byPID4gYWNjZXNzXC1tZXRob2Q7CivmqpTmoYjlu7rnq4sgPiBmaWxlXC1jcmVhdGlvbjsKK+WHuueUn+aXpeacnyA+IGRhdGVcLW9mXC1iaXJ0aDsKK+S4jeWPr+aAneitsCA+IGluY29uY2VpdmFibGU7CivmoLzlrZDoirHlkaIgPiBwbGFpZFwsXC10YXJ0YW47Civpm5nnlJ/lhYTlvJ8gPiB0d2luXC1icm90aGVyczsKK+acgOWkp+mAn+eOhyA+IG1heGltdW1cLXNwZWVkOwor54++5a+m5oOF5rOBID4gY3VycmVudFwtc3RhdGU7CivljIXnvoXokKzosaEgPiBhbGxcLWVtYnJhY2luZzsKK+imlumgu+evgOebriA+IHZpZGVvXC1wcm9ncmFtOwor576F6aas5a2X5q+NID4gcm9tYW5cLWxldHRlcnM7CivkuI3lj6/lkI3ni4AgPiBpbmRlc2NyaWJhYmxlOwor5YW25LuW55qE5Lq6ID4gb3RoZXJcLXBlb3BsZTsKK+WqkumrlOWgseWwjiA+IG1lZGlhXC1yZXBvcnQ7CivlkozlubPmop3ntIQgPiBwZWFjZVwtdHJlYXR5Owor6IKh56Wo5biC5aC0ID4gc3RvY2tcLW1hcmtldDsKK+Wkp+mpmuWkseiJsiA+IGFwcHJlaGVuc2l2ZTsKK+mrmOWxpOaXhemkqCA+IGx1eHVyeVwtaG90ZWw7CivpnYjnmoTkuJbnlYwgPiBzcGlyaXRcLXdvcmxkOwor5Ye65LmO6aCQ5paZID4gdW5leHBlY3RlZGx5Owor5Zyw5pa55Li7576pID4gXCJsb2NhbFwtXC1pc21cIjsKK+a/gOWFieWUseeJhyA+IGNvbXBhY3RcLWRpc2s7CivkuK3lpK7pioDooYwgPiBjZW50cmFsXC1iYW5rOwor5pav5a+G57SE55GfID4gam9zZXBoXC1zbWl0aDsKK+ebruWJjeS4lueVjCA+IG1vZGVyblwtd29ybGQ7CivmsJHmhI/oqr/mn6UgPiBvcGluaW9uXC1wb2xsOwor54++5Luj6Z+z5qiCID4gbW9kZXJuXC1tdXNpYzsKK+ijvemAoOalreiAhSA+IG1hbnVmYWN0dXJlcjsKK+W/g+eQhuWtuOWutiA+IHBzeWNob2xvZ2lzdDsKK+S4jeiDveaKteaKlyA+IGlycmVzaXN0aWJsZTsKK+mBjuWig+ewveiovCA+IHRyYW5zaXRcLXZpc2E7CivogLbnqYzln7rnnaMgPiBqZXN1c1wtY2hyaXN0Owor6KiY6ICF5aCx5bCOID4gcHJlc3NcLXJlcG9ydDsKK+WkmuW3peS9nOalrSA+IG11bHRpdGFrc2luZzsKK+S4jeWkp+mbouWFkiA+IHByZXR0eVwtY2xvc2U7CivmnKzkvobpnaLnm64gPiB0cnVlXC1jb2xvdXJzOwor57ay6Lev56+A6bueID4gbmV0d29ya1wtbm9kZTsKK+S4jeWPr+aUtuaLviA+IGlycmVtZWRpYWJsZTsKK+Wci+Wutuapn+WvhiA+IHN0YXRlXC1zZWNyZXQ7Civoqr/mn6Xkurrlk6EgPiBpbnZlc3RpZ2F0b3I7Civmraboo53pg6jpmoogPiBhcm1lZFwtZm9yY2VzOwor55Sf55Si5LyB5qWtID4gbWFudWZhY3R1cmVyOwor5ZCN6YyE5pyN5YuZID4gbmFtZVwtc2VydmljZTsKK+iqnumfs+S/oeiZnyA+IHZvaWNlXC1zaWduYWw7Civku6TkurrpqZrnlbAgPiBzdXJwcmlzaW5nbHk7Civln7rnpI7oqK3mlr0gPiBiYXNlXC1zdGF0aW9uOwor55Sf5ZG96Leh6LGhID4gc2lnblwtb2ZcLWxpZmU7Civnn6XorZjliIblrZAgPiBpbnRlbGxlY3R1YWw7CivpmL/mkanlj7jmm7ggPiBib29rXC1vZlwtYW1vczsKK+eUqOaItuWumue+qSA+IHVzZXJcLWRlZmluZWQ7CivmiJDlkInmgJ3msZcgPiBnZW5naGlzXC1raGFuOwor5Li75bm557ay6LevID4gY29yZVwtbmV0d29yazsKK+awkeaEj+a4rOmplyA+IG9waW5pb25cLXBvbGw7Civmrbfku6Plv5fkuIsgPiAyXC1jaHJvbmljbGVzOwor5q235Luj5b+X5LiKID4gMVwtY2hyb25pY2xlczsKK+aMh+S7pOWQjeWtlyA+IGNvbW1hbmRcLW5hbWU7CivkuIDlsI/pg6jliIYgPiBhXC1zbWFsbFwtcGFydDsKK+S4u+W5uee2sue1oSA+IGNvcmVcLW5ldHdvcms7Civmj67pnI3nhKHluqYgPiBleHRyYXZhZ2FuY2U7CivnmbvpmbjmnIjnkIMgPiBtb29uXC1sYW5kaW5nOwor6LuN5LqL5o+05YqpID4gbWlsaXRhcnlcLWFpZDsKK+acrOacrOS4u+e+qSA+IGJvb2tcLXdvcnNoaXA7CivkupTop5LlpKfmqJMgPiB0aGVcLXBlbnRhZ29uOwor5pGp6KW/5b6L5rOVID4gbGF3XC1vZlwtbW9zZXM7Civov4XpgJ/olJPlu7YgPiByYXBpZFwtc3ByZWFkOwor5Lul5pav5ouJ6KiYID4gYm9va1wtb2ZcLWV6cmE7CivkuI3nn6XmiYDmjqogPiBiZVwtYXRcLWFcLWxvc3M7CivlvaLlvaLoibLoibIgPiBhbGxcLWtpbmRzXC1vZjsKK+aqlOahiOacjeWLmSA+IGZpbGVcLXNlcnZvY2U7CivpmY3okL3lnLDpu54gPiBsYW5kaW5nXC1zaXRlOwor5LiJ5Y2B5LqU5YSEID4gM1wtXC41XC1iaWxsaW9uOwor5LqM5Y2B5YWt5q2yID4gMjZcLXllYXJzXC1vbGQ7Civmlbjmk5rntrLntaEgPiBkYXRhXC1uZXR3b3JrOwor6b6Q54S25aSn54mpID4gaHVnZVwtbW9uc3RlcjsKK+S4lueVjOefpeWQjSA+IHdvcmxkXC1mYW1vdXM7Civnn6XorZjku73lrZAgPiBpbnRlbGxlY3R1YWw7Civlv6vpgJ/nmbzlsZUgPiByYXBpZFwtZ3Jvd3RoOwor5aSa56iu6Kqe6KiAID4gbXVsdGlsaW5ndWFsOwor5a6J5YWo5ZWP6aGMID4gc2FmZXR5XC1pc3N1ZTsKK+ayiemHjeaJk+aTiiA+IHRvXC1oaXRcLWhhcmQ7Civoh6rnhLbogIznhLYgPiBpbnZvbHVudGFyeTsKK+S4jei0iuS4gOipniA+IGtlZXBcLXNpbGVudDsKK+S6uumrlOWZqOWumCA+IGh1bWFuXC1vcmdhbjsKK+awkeaXj+S4u+e+qSA+IG5hdGlvbmFsaXNtOwor57K+5a2Q5a+G5bqmID4gc3Blcm1cLWNvdW50Owor6YG35bGF56e75rCRID4gaW1taWdyYXRpb247Civph47nlJ/li5XniakgPiB3aWxkXC1hbmltYWw7CivogZboqpXogIHkurogPiBzYW50YVwtY2xhdXM7CivmtarmvKvkuLvnvqkgPiByb21hbnRpY2lzbTsKK+S4jeWPr+efpeirliA+IGFnbm9zdGljaXNtOwor5LiN5YiH5a+m6ZqbID4gdW5yZWFsaXN0aWM7CivlhbjlnovnlKjpgJQgPiB0eXBpY2FsXC11c2U7Civlr4zmlrzmg7Plg48gPiBpbWFnaW5hdGl2ZTsKK+Wci+S6i+ioquWVjyA+IHN0YXRlXC12aXNpdDsKK+WNiuWNiuaLieaLiSA+IGluY29tcGxldGVkOwor5LiN5Y+v5YiG6ZuiID4gaW5zZXBhcmFibGU7CivnhKHnlKLpmo7ntJogPiBwcm9sZXRhcmlhdDsKK+WkseWOu+aEj+itmCA+IHVuY29uc2Npb3VzOwor55m+6JCs5a+M57+BID4gbWlsbGlvbmFpcmU7CivosrTml4/npL7mnIMgPiBhcmlzdG9jcmFjeTsKK+azouWkmum7juWQhCA+IHB1ZXJ0b1wtcmljbzsKK+eri+azleapn+mXnCA+IGxlZ2lzbGF0dXJlOwor5Li76KaB5Y6f5ZugID4gbWFpblwtcmVhc29uOwor5pyJ55Sf5Lul5L6GID4gc2luY2VcLWJpcnRoOwor6LKd5Yqg54i+5rmWID4gbGFrZVwtYmFpa2FsOwor5ZKM5bmz5pyD6KuHID4gcGVhY2VcLXRhbGtzOwor5LiN6K6K5YO55qC8ID4gZml4ZWRcLXByaWNlOwor5aWz57m85om/5Lq6ID4gaW5oZXJpdHJlc3M7CivlgYfoqK3oqp7msKMgPiBzdWJqdW5jdGl2ZTsKK+WcsOW/g+WQuOWKmyA+IGdyYXZpdGF0aW9uOwor6YGL6LKo6aas6LuKID4gY2FyZ29cLXdhZ29uOwor56ys5LiJ5LiW55WMID4gdGhpcmRcLXdvcmxkOwor54Sh6Zec57eK6KaBID4gaW5kaWZmZXJlbnQ7CivlpKfkvr/kub7nh6UgPiBjb25zdGlwYXRlZDsKK+S4jeWBj+S4jeWAmiA+IGV2ZW5cLWhhbmRlZDsKK+WIhuaVo+azqOaEjyA+IHRvXC1kaXN0cmFjdDsKK+S4jeavm+S5i+WcsCA+IGJhcnJlblwtbGFuZDsKK+i2hee0muW4guWgtCA+IHN1cGVybWFya2V0Owor5b+F6KaB5qKd5Lu2ID4gcmVxdWlyZW1lbnQ7CivliIbmnJ/ku5jmrL4gPiBpbnN0YWxsbWVudDsKK+iIieS+i+S+huiqqiA+IGZvclwtZXhhbXBsZTsKK+S4lueVjOiyv+aYkyA+IHdvcmxkXC10cmFkZTsKK+iOjuWjq+avlOS6niA+IHNoYWtlc3BlYXJlOwor5Zub5YiG5LmL5LiAID4gb25lXC1xdWFydGVyOwor6KiK5qGG5YKz6YCBID4gZnJhbWVcLXJlbGF5Owor55Wr5o+S5ZyW6ICFID4gaWxsdXN0cmF0b3I7CivotorljZfmiLDniK0gPiB2aWV0bmFtXC13YXI7CivnhKHmiYDkuI3lnKggPiBvbW5pcHJlc2VudDsKK+S4jeWHuuaJgOaWmSA+IGFzXC1leHBlY3RlZDsKK+S4lueVjOWSjOW5syA+IHdvcmxkXC1waWVjZTsKK+S4jeWQjOWHoemfvyA+IG91dHN0YW5kaW5nOwor5oeJ55So56iL5byPID4gYXBwbGljYXRpb247CivovYnkvobovYnljrsgPiByb3ZlXC1hcm91bmQ7Civph53pi5Lnm7jlsI0gPiB0aXRcLWZvclwtdGF0Owor6ZaJ5pyD56WI56axID4gYmVuZWRpY3Rpb247CivkuI3lj6/kvLDph48gPiBpbmVzdGltYWJsZTsKK+mWi+aUvuezu+e1sSA+IG9wZW5cLXN5c3RlbTsKK+aciemZkOWFrOWPuCA+IGNvcnBvcmF0aW9uOwor56m66ZaT5o6i5risID4gc3BhY2VcLXByb2JlOwor5Z+656SO5ZWP6aGMID4gYmFzaWNcLWlzc3VlOwor6YKB6Zi/5a+G54GYID4gbWlhbWlcLWJlYWNoOwor6Lqr5b+D54i95b+rID4gcmVmcmVzaG1lbnQ7Civnpa3lj7jmrIrooZMgPiBwcmllc3RjcmFmdDsKK+aBsOWmguWFtuS7vSA+IGFwcHJvcHJpYXRlOwor5Zyo6YCZ5pyf6ZaTID4gZHVyaW5nXC10aW1lOwor54Sh5rOV5b+N5Y+XID4gaW50b2xlcmFibGU7Civlj43li5XliIblrZAgPiByZWFjdGlvbmFyeTsKK+S9v+eUqOaWueS+vyA+IGVhc3lcLXRvXC11c2U7CivnhKHms5XlvaLlrrkgPiB1bnNwZWFrYWJsZTsKK+acieWQjOaDheW/gyA+IHN5bXBhdGhldGljOwor6YCy6KGM5oCn5LqkID4gdG9cLWhhdmVcLXNleDsKK+WWnOatoeWQteaetiA+IHF1YXJyZWxzb21lOwor5qih57OK6YKP6LyvID4gZnV6enlcLWxvZ2ljOwor5bCx77mN6ICM6KiAID4gY29uc2lkZXJpbmc7CivmnInpgbjoiInmrIogPiBjb25zdGl0dWVudDsKK+a4rOmpl+e1kOaenCA+IHRlc3RcLXJlc3VsdDsKK+euoeWutuiBt+WLmSA+IHN0ZXdhcmRzaGlwOwor54uX5Lqk5aq+6IisID4gZG9nZ3lcLXN0eWxlOwor5bCI5pyJ5ZCN6KmeID4gcHJvcGVyXC1ub3VuOwor5pyL5q+U54K65aW4ID4gdG9cLWNvbnNwaXJlOwor5pCs5byE5piv6Z2eID4gc293XC1kaXNjb3JkOwor5Yaw5p+T5p+T5paZID4gYXpvaWNcLWR5ZXM7Civlm5vlgIvlsI/mmYIgPiBmb3VyXC1ob3VyczsKK+WkqeaWh+WtuOWutiA+IGFzdHJvbm9tZXI7CivnnLzoirHnuZrkuoIgPiBiZVwtZGF6emxlZDsKK+mtr+S9m+eIvuWuriA+IHRoZVwtbG91dnJlOwor5LiN5aCq5b+N5Y+XID4gdW5iZWFyYWJsZTsKK+Wom+aoguS4reW/gyA+IHJlY3JlYXRpb247Civoh6rnlLHosr/mmJMgPiBmcmVlXC10cmFkZTsKK+S4ieWIhuS5i+S6jCA+IHR3b1wtdGhpcmRzOwor57i957Wx5Lu75pyfID4gcHJlc2lkZW5jeTsKK+S4jeWPr+mAvui2iiA+IGltcGFzc2FibGU7CivmlZnloILlopPlnLAgPiBjaHVyY2h5YXJkOwor6KGM5pS/6ZW35a6YID4gbWFnaXN0cmF0ZTsKK+iytOaXj+irluiAhSA+IGFyaXN0b2NyYXQ7CivmlrDogZ7oqJjogIUgPiBqb3VybmFsaXN0Owor6Z6t6Zei5YWl6KOhID4gcGVuZXRyYXRlZDsKK+S7luWAkeiHquW3sSA+IHRoZW1zZWx2ZXM7CivpmL/loZ7mi5znloYgPiBhemVyYmFpamFuOwor6YKP6Lyv54K45b2IID4gbG9naWNcLWJvbWI7CivlnJbop6PoqqrmmI4gPiBpbGx1c3RyYXRlOwor5LiN5bGI5LiN5pKTID4gdW55aWVsZGluZzsKK+Wkp+iFpuatu+S6oSA+IGJyYWluXC1kZWFkOwor6IOh5oCd5LqC5oOzID4gaW1hZ2luaW5nczsKK+S4gOWIh+S6i+eJqSA+IGV2ZXJ5dGhpbmc7CivmrYznvoXopb/mm7ggPiBjb2xvc3NpYW5zOwor5LiN55Sx6Ieq5Li7ID4gY2FuJyd0XC1oZWxwOwor5pu85b655pav54m5ID4gbWFuY2hlc3RlcjsKK+S8vemmrOWwhOe3miA+IGdhbW1hXC1yYXlzOwor5qW154K66b6Q5aSnID4gbW9udW1lbnRhbDsKK+acieWIqeWPr+WcliA+IHByb2ZpdGFibGU7CivnhKHmiYDkuI3og70gPiBvbW5pcG90ZW50Owor5YiG6Zui5Li7576pID4gc2VwYXJhdGlzbTsKK+S4lueVjOmKgOihjCA+IHdvcmxkXC1iYW5rOwor54Sh5omA5LiN55+lID4gb21uaXNjaWVudDsKK+mWi+acg+eliOemsSA+IGludm9jYXRpb247CivpoJjlsI7og73lipsgPiBsZWFkZXJzaGlwOwor5oSP6KaL5LiN5ZCIID4gZGlzc2Vuc2lvbjsKK+Wtn+WKoOaLieWciyA+IGJhbmdsYWRlc2g7CivlvJXkurrms6jmhI8gPiBhdHRyYWN0aXZlOwor5b+Y5oGp6LKg576pID4gdW5ncmF0ZWZ1bDsKK+ebuOWQjOWQjeWtlyA+IGxpa2VcLW5hbWVkOwor5L2/5Lq65L+h5pyNID4gY29udmluY2luZzsKK+WPluiAjOS7o+S5iyA+IHN1YnN0aXR1dGU7Civpm7vlrZDnqbrplpMgPiBjeWJlcnNwYWNlOwor5b6u5LiN6Laz6YGTID4gbmVnbGlnaWJsZTsKK+mBlOiztOWWh+WYmyA+IGRhbGFpXC1sYW1hOwor5LiN5o+j5YaS5pinID4gdmVudHVyZVwtdG87CivnnIHnlaXnrKbomZ8gPiBhcG9zdHJvcGhlOwor5LiN5bCN56K05YWSID4gbm90XC1wcm9wZXI7CivmhI/mg7PkuI3liLAgPiB1bmV4cGVjdGVkOwor5Yaw5LiK6YGL5YuVID4gaWNlXC1zcG9ydHM7Civnvo7kuYPmu4vphqwgPiBtYXlvbm5haXNlOwor6Zm46LuN5Lit5bCJID4gbGlldXRlbmFudDsKK+W9quW9ouWkp+a8oiA+IGJ1cmx5XC1jaGFwOwor6JCs5LqL6YGU5Y2hID4gbWFzdGVyY2FyZDsKK+mBjua4oeaZguacnyA+IHRyYW5zaXRpb247CivmlrDogZ7lqpLpq5QgPiBuZXdzXC1tZWRpYTsKK+WgheWumuS4jeenuyA+IHVuc3dlcnZpbmc7CivmraTmmYLku6XliY0gPiBoZXJldG9mb3JlOwor5pyd6a6u5oiw54itID4ga29yZWFuXC13YXI7Civpm6Pku6Xnva7kv6EgPiBpbmNyZWRpYmxlOwor5YWx5ZKM5pS/6auUID4gcmVwdWJsaWNhbjsKK+WkluS6pOaJi+iFlSA+IGRpcGxvbWF0aWM7CivnlaLmpa3lhbjnpq4gPiBncmFkdWF0aW9uOwor6IWT56uL5q+U5pu4ID4gcGhpbGlwaWFuczsKK+mojuWjq+miqOagvCA+IGtuaWdodGhvb2Q7CivljJblpp3oiJ7mnIMgPiBtYXNxdWVyYWRlOwor5aWz5pyN54mp5ZOhID4gc3Rld2FyZGVzczsKK+aykuacieefpeimuiA+IGluc2Vuc2libGU7CivmlpHpp67pmbjpm6IgPiB2YXJpZWdhdGVkOwor5rCj5Yui5rS25rS2ID4gYWdncmVzc2l2ZTsKK+S4g+WNgeW5tOS7oyA+IHRoZVwtMTk3MCcnczsKK+W+nuS7iuS7peW+jCA+IGhlbmNlZm9ydGg7CivoppbnqpfmlrDmioAgPiB3aW5kb3dzXC1udDsKK+e4ruWwj+aooeWeiyA+IG1pbmlhdHVyZTsKK+S7peW8l+aJgOabuCA+IGVwaGVzaWFuczsKK+aykuacieW9oueLgCA+IHNoYXBlbGVzczsKK+eUqOaItuaVuOaTmiA+IHVzZXJcLWRhdGE7Civplovnmbzkurrlk6EgPiBkZXZlbG9wZXI7CivlnLDos6rlrbjlrrYgPiBnZW9sb2dpc3Q7CivnlJ/nianlrbjlrrYgPiBiaW9sb2dpc3Q7CivkuI3lj6/no6jmu4UgPiBpbmRlbGlibGU7CivkuI3kuqbmqILkuY4gPiBleHRyZW1lbHk7CivmjInnhaflrZfpnaIgPiBsaXRlcmFsbHk7CivkuInliIbkuYvkuIAgPiBvbmVcLXRoaXJkOwor5LiN5Y+v5pWR6JelID4gaW5jdXJhYmxlOwor6IC26Lev5pKS5Ya3ID4gamVydXNhbGVtOwor6KS754CG55qE6KmxID4gYmxhc3BoZW15Owor5ZyL5YWn5oiw54itID4gY2l2aWxcLXdhcjsKK+WNseWcsOmmrOaLiSA+IGd1YXRhbWFsYTsKK+WKoOWvhuW+jOeahCA+IGVuY3J5cHRlZDsKK+acieaUu+aTiuaApyA+IG9mZmVuc2l2ZTsKK+aDoeWQjeaYreW9sCA+IG5vdG9yaW91czsKK+e2k+a/n+WtuOWutiA+IGVjb25vbWlzdDsKK+mYv+epuuWKoOeTnCA+IGFjb25jYWd1YTsKK+WKoOaLieWkquabuCA+IGdhbGF0aWFuczsKK+e2sumam+iJsuaDhSA+IGN5YmVycG9ybjsKK+iKseeyiemBjuaVjyA+IGhheVwtZmV2ZXI7CivngrrmmYLpgY7ml6kgPiBwcmVtYXR1cmU7Civoga/lkIjntYTnuZQgPiBzeW5kaWNhdGU7CivmnInlibXpgKDlipsgPiBpbmdlbmlvdXM7Civkurrnianmj4/lr6sgPiBwb3J0cmF5YWw7Civku6TkurrmrL3kvakgPiBhZG1pcmFibGU7CivpmL/lpYfph4zmlq8gPiBhZXNjaHlsdXM7CivlrZ/liqDmi4noqp4gPiBiZW5nYWxlc2U7CivmqZ/morDoo53nva4gPiBtYWNoaW5lcnk7CivmlpHnv4XlsbHptokgPiBwYXJ0cmlkZ2U7CivkuI3lj6/li53mlbggPiBjb3VudGxlc3M7CivnuL3mnIPmnIPplbcgPiBwcmVzaWRlbnQ7Civmr6vnhKHnlpHllY8gPiBjZXJ0YWludHk7CivmvrPlpKfliKnkup4gPiBhdXN0cmFsaWE7CivlpKflr6vpjpblrpogPiBjYXBzXC1sb2NrOwor5Y2K5bel5Y2K6K6AID4gcGFydFwtd29yazsKK+aIkeWAkeiHquW3sSA+IG91cnNlbHZlczsKK+e+heW+ueaWr+eJuSA+IHJvY2hlc3RlcjsKK+euoeW8puaoguWcmCA+IG9yY2hlc3RyYTsKK+eZveaXpeWBmuWkoiA+IGRheVwtZHJlYW07Civku7vkvZXlhbbku5YgPiBhbnlcLW90aGVyOwor5be05YuS5pav5Z2mID4gcGFsZXN0aW5lOwor5Zyo77mN5peB6YKKID4gYWxvbmdzaWRlOwor5YWI6KaL5LmL5piOID4gZm9yZXNpZ2h0Owor6Zqo5LmL6ICM5b6MID4gZnJvbVwtdGhhdDsKK+S4iuWAi+aYn+acnyA+IGxhc3RcLXdlZWs7CivmsJHkuLvmlL/msrsgPiBkZW1vY3JhY3k7CivkuLvnrqHkurrlk6EgPiBleGVjdXRpdmU7CivosqHli5nnp5jmm7ggPiB0cmVhc3VyZXI7CivnlJ/ogrLog73lipsgPiBmZXJ0aWxpdHk7CivlhbHkuqvou5/pq5QgPiBzaGFyZXdhcmU7CivkuI3lj5fmraHov44gPiB1bndlbGNvbWU7Civlh7nlh7jljbDliLcgPiBlbWJvc3Npbmc7CivmkpLpg73oqbLkurogPiBzYWRkdWNlZXM7CivlhbHnlKLkuLvnvqkgPiBjb21tdW5pc207CivkuI3ku6XngrrnhLYgPiBvYmplY3RcLXRvOwor56S+5pyD5Li7576pID4gc29jaWFsaXNtOwor6Jyc5pyI5YGH5pyfID4gaG9uZXltb29uOwor5ZCM54+t5ZCM5a24ID4gY2xhc3NtYXRlOwor5YW35pyJ5Li75qyKID4gc292ZXJlaWduOwor6Ieq5YuV5qiT5qKvID4gZXNjYWxhdG9yOwor57eK5oCl5LqL5Lu2ID4gZW1lcmdlbmN5Owor6YCA6buR5r+A57SgID4gbWVsYXRvbmluOwor5LiN6KiI5YW25pW4ID4gY291bnRsZXNzOwor5Z+6552j5pWZ5b6SID4gY2hyaXN0aWFuOwor5Ye55Ye46LuL6IqxID4gZW1ib3NzaW5nOwor5LiN54S255qE6KmxID4gb3RoZXJ3aXNlOwor5Lqe5qC86ZaA6L6yID4gYWdhbWVtbm9uOwor5LiN6YCe5LmL5b6SID4gZGVzcGVyYWRvOwor572u5LmL5bqm5aSWID4gZGlzcmVnYXJkOwor5oak5oak5LiN5bmzID4gaW5kaWduYW50Owor5LiL5YCL5pif5pyfID4gbmV4dFwtd2VlazsKK+att+WPsuWtuOWutiA+IGhpc3RvcmlhbjsKK+WgheW/jeS4jeaLlCA+IGZvcnRpdHVkZTsKK+WFqOWgtOS4gOiHtCA+IHVuYW5pbW91czsKK+e+heWIh+aWr+eJuSA+IHJvY2hlc3RlcjsKK+ihqOaEj+aWh+WtlyA+IGlkZW9ncmFwaDsKK+mAmuiyqOiGqOiEuSA+IGluZmxhdGlvbjsKK+iuiuaPm+ioreWCmSA+IGNvbnZlcnRlcjsKK+e2k+a/n+WtuOiAhSA+IGVjb25vbWlzdDsKK+S4meeoruWwhOe3miA+IGdhbW1hXC1yYXk7CivmhI/msKPnm7jmipUgPiBjb25nZW5pYWw7CivnjbLmmrTliKnogIUgPiBwcm9maXRlZXI7Civmlq/mtJvkvJDlhYsgPiBzbG92YWtpYTsKK+ayueeCuOWciOmkhSA+IGRvdWdobnV0Owor5Zug77mN5LmL5pWFID4gaW5hc211Y2g7Civpm43lrrnlpKfluqYgPiBnZW5lcm91czsKK+WlveWlveWFkuWcsCA+IHByb3Blcmx5Owor6aiO5aOr5rCj5qaCID4gY2hpdmFscnk7Civoib7lvrfolb7lvrcgPiBhZGVsYWlkZTsKK+WFjeiyu+i7n+S7tiA+IGZyZWV3YXJlOwor5Lul5aSq57ay57WhID4gZXRoZXJuZXQ7CivmoYPoirHlv4PmnKggPiBtYWhvZ2FueTsKK+aomea6luimj+agvCA+IHN0YW5kYXJkOwor54Sh6KuW5L2V5pmCID4gd2hlbmV2ZXI7Civlub7kuY7mspLmnIkgPiBzY2FyY2VseTsKK+eJp+W4q+S5i+iBtyA+IG1pbmlzdHJ5Owor5YWt5Y2B5Zub6JCsID4gNjRcLTBcLTAwMDsKK+iSmeaJmOe+heaLiSA+IG1vdG9yb2xhOwor5Lq65bel5rWB55SiID4gYWJvcnRpb247Civlloflj63msLTku5kgPiBkYWZmb2RpbDsKK+Wci+mam+e2sue1oSA+IGludGVybmV0Owor54Sh6KuW5L2V5LqLID4gYW55dGhpbmc7Civnsr7lipvlhYXmspsgPiB2aWdvcm91czsKK+WTpeWAq+W4g+e0gCA+IGNvbHVtYnVzOwor5bem6Lyq5omL5qeNID4gcmV2b2x2ZXI7Civlk6XlgKvmr5Tkup4gPiBjb2xvbWJpYTsKK+WQm+S4u+aUv+ayuyA+IG1vbmFyY2h5Owor5Lq65Y+j56ig5a+GID4gcG9wdWxvdXM7CivlvJXkurrms6jnm64gPiBzdHJpa2luZzsKK+mYv+Wlh+att+aWryA+IGFjaGlsbGVzOwor5aWn5b635L+u5pavID4gb2R5c3NldXM7CivlnabmoZHlsLzkup4gPiB0YW56YW5pYTsKK+S4jemhp+S4gOWIhyA+IHJlY2tsZXNzOwor5Yui5aaC56C056u5ID4gc3dlZXBpbmc7CivovrLlrrbluq3pmaIgPiBmYXJteWFyZDsKK+WutuW6reS9nOalrSA+IGhvbWV3b3JrOwor5Y2z5bCH5L6G6IeoID4gaW1taW5lbnQ7Civpn7PmqILlhYnnop8gPiBtdXNpY1wtY2Q7CivkupTlvanos5PntJsgPiBjb2xvcmZ1bDsKK+a8ouWvhueIvumgkyA+IGhhbWlsdG9uOwor6Kqe6KiA5a245a62ID4gbGluZ3Vpc3Q7Civpvo3poK3ogIHlpKcgPiBiaWdcLWJvc3M7CivohZPliKnploDmm7ggPiBwaGlsZW1vbjsKK+mbu+iFpue2sue1oSA+IGludGVybmV0Owor5pGp5omY576F5ouJID4gbW90b3JvbGE7Civlt7Tln7rmlq/lnaYgPiBwYWtpc3RhbjsKK+W3tOW3tOWkmuaWryA+IGJhcmJhZG9zOwor56u26YG45rS75YuVID4gY2FtcGFpZ247CivntYLnq6/nlKjmiLYgPiBlbmRcLXVzZXI7CivloqjmsLTnk7bmnrYgPiBpbmtzdGFuZDsKK+e2sumam+e2sui3ryA+IGludGVybmV0Owor54Sh5Lq66aeV6aebID4gdW5tYW5uZWQ7Civms5XliKnos73kurogPiBwaGFyaXNlZTsKK+enkee+heaLieWkmiA+IGNvbG9yYWRvOwor5Yyq5b6S6ZuG5ZyYID4gZ2FuZ3N0ZXI7CivlsITpoLvlmarpn7MgPiByZlwtbm9pc2U7CivkurrpgZPkuLvnvqkgPiBodW1hbmlzbTsKK+S4gOW/g+S4gOaEjyA+IGludGVudGx5Owor57ay6Zqb57ay57WhID4gaW50ZXJuZXQ7Civnsr7npZ7pjK/kuoIgPiBpbnNhbml0eTsKK+WYieW5tOiPr+acgyA+IGNhcm5pdmFsOwor5Y2a6Iyo55Om57SNID4gYm90c3dhbmE7Civlo5/mlrfosqnos6MgPiBtb25vcG9seTsKK+S/neWKoOWIqeS6niA+IGJ1bGdhcmlhOwor6LK05peP6Lqr5Lu9ID4gbG9yZHNoaXA7CivogozogonnmbzpgZQgPiBtdXNjdWxhcjsKK+a1geaEn+eWq+iLlyA+IGZsdVwtc2hvdDsKK+W3peS9nOmBjuW6piA+IG92ZXJ3b3JrOwor5LmZ5aSq57ay6LevID4gZXRoZXJuZXQ7CivpqqjpoK3mnrblrZAgPiBza2VsZXRvbjsKK+aEm+WboOaWr+WdpiA+IGVpbnN0ZWluOwor54Sh6KuW5L2V6JmVID4gYW55d2hlcmU7CivlhazplovmjIfosqwgPiBkZW5vdW5jZTsKK+atoei/juWFieiHqCA+IHdlbGNvbWU7Civlronmj5Dnk5zls7YgPiBhbnRpZ3VhOwor5Zaq5b+D55eF54uCID4gbHVuYXRpYzsKK+agvOWtkOajieW4gyA+IGdpbmdoYW07CivokKzmnInlvJXlipsgPiBncmF2aXR5Owor5raI6Ziy6ZqK5ZOhID4gZmlyZW1hbjsKK+aJs+S4jeWAkuWFkiA+IHR1bWJsZXI7CivniKzon7Lli5XniakgPiByZXB0aWxlOwor6YCA5LyN6LuN5Lq6ID4gdmV0ZXJhbjsKK+WkluenkemGq+eUnyA+IHN1cmdlb247CivlnKjvuY3kuYvplpMgPiBiZXR3ZWVuOwor5Y2B5YSE5L2N5YWDID4gZ2lnYWJpdDsKK+i6q+mrlOmanOWusyA+IGNyaXBwbGU7CivpmL/mkanlsLzkup4gPiBhbW1vbmlhOwor6KCV5YuV5YmN6YCyID4gd3JpZ2dsZTsKK+a0vue1puW3peS9nCA+IHRvXC10YXNrOwor6JaU6JaH6Iqx6JW+ID4gcm9zZWJ1ZDsKK+eEoeirluS9leS6uiA+IHdob2V2ZXI7Civmlq/nk6bluIzoo6EgPiBzd2FoaWxpOwor6Iiq56m66YO15Lu2ID4gYWlybWFpbDsKK+S6nueJueiYreWkpyA+IGF0bGFudGE7CivpgLLpgIDlhanpm6MgPiBkaWxlbW1hOwor5LiN56iC5LiN6I6gID4gdXNlbGVzczsKK+WIhuaekOS6uuWjqyA+IGFuYWx5c3Q7CivmnIDkvY7pmZDluqYgPiBtaW5pbXVtOwor5YWL5LuA57Gz54i+ID4ga2FzaG1pcjsKK+a0u+WLleaIv+WxiyA+IHRyYWlsZXI7Civku4DkuIDlpYnnjbsgPiB0aXRoaW5nOwor5aKo6KW/5ZOl5Lq6ID4gbWV4aWNhbjsKK+WKoOamruiAgOaWvCA+IGdsb3JpZnk7CivkuI3lubLkuI3mt6ggPiB1bmNsZWFuOwor5LiJ5L2N5LiA6auUID4gdHJpbml0eTsKK+Wls+eUqOWFp+ihoyA+IGNoZW1pc2U7Civlhaznm4rkuovmpa0gPiB1dGlsaXR5Owor5pel5bi45bel5L2cID4gcm91dGluZTsKK+eUt+aAp+imquWxrCA+IGtpbnNtYW47CivosqjnianpgYvovLggPiBmcmVpZ2h0Owor54mZ56eR6Yar55SfID4gZGVudGlzdDsKK+mDoeayu+WuieWumCA+IHNoZXJpZmY7Civkup7kvK/mi4nnvZUgPiBhYnJhaGFtOwor5YWL576F5Zyw5LqeID4gY3JvYXRpYTsKK+WFqOelnueBjOazqCA+IHJhcHR1cmU7CivlsIjnp5HpmaLmoKEgPiBhY2FkZW15Owor6auY6YCf5YWs6LevID4gaGlnaHdheTsKK+e1puiIh+izh+agvCA+IHF1YWxpZnk7CivljbDlnLDlronpgqMgPiBpbmRpYW5hOwor5LiN5b6X6ICM55+lID4gdW5rbm93bjsKK+iIquepuuWFrOWPuCA+IGFpcmxpbmU7CivmnInogJDkuYXlipsgPiBkdXJhYmxlOwor5aSq6Zm96buR5a2QID4gc3Vuc3BvdDsKK+W4jOS8r+S+huabuCA+IGhlYnJld3M7CivlpafmnpfljLnlhYsgPiBvbHltcGljOwor5Lqe5Yip5qGR6YKjID4gYXJpem9uYTsKK+iTi+S4luWkquS/nSA+IGdlc3RhcG87CivllovllovkuI3kvJEgPiBjaGF0dGVyOwor5oSb5bGL5Y+K54OPID4gbG92ZVwtbWU7CivntpPmv5/liLbluqYgPiBlY29ub215Owor5Lul6aas5YWn5YipID4gZW1hbnVlbDsKK+imj+WKg+S6uuWToSA+IHBsYW5uZXI7CivmhYjlloTmqZ/mp4sgPiBjaGFyaXR5Owor55S35oCn5bCK56ixID4gZXNxdWlyZTsKK+S4jeS4ieS4jeWbmyA+IGR1YmlvdXM7CivliJfnjovntIDkuIsgPiAyXC1raW5nczsKK+WIl+eOi+e0gOS4iiA+IDFcLWtpbmdzOwor6Zm46LuN5LiK5qChID4gY29sb25lbDsKK+iZm+ani+Wwj+iqqiA+IGZpY3Rpb247CivlpJbnp5HmiYvooZMgPiBzdXJnZXJ5Owor5ZCE6Imy5ZCE5qijID4gZGl2ZXJzZTsKK+S9m+e+heijoemBlCA+IGZsb3JpZGE7CivlhazniLXlpKvkurogPiBkdWNoZXNzOwor5pyJ5aW95aWH5b+DID4gY3VyaW91czsKK+W9vOW+l+W+jOabuCA+IDJcLXBldGVyOwor54675Yip57at5LqeID4gYm9saXZpYTsKK+Wwj+Wei+arg+arpSA+IGNhYmluZXQ7CivljbDlg4/mt7HliLsgPiBpbXByZXNzOwor5oyH5bCO5pWZ5o6IID4gYWR2aXNlcjsKK+S4jeefpeS9leaVhSA+IHNvbWVob3c7CivpmL/lj7jljLnmnpcgPiBhc3BpcmluOwor6YeR5YWJ6ZaD54iNID4gc3BhbmdsZTsKK+S6kuiBr+e2sue1oSA+IG5ldHdvcms7CivlpbTpmrjliLbluqYgPiBzbGF2ZXJ5Owor5oGi5b6p5Y6f54uAID4gcmVzdG9yZTsKK+mmrOS+huilv+S6niA+IG1hbGFzaWE7CivlsbHog6HmoYPmnKggPiBoaWNrb3J5Owor5b285b6X5YmN5pu4ID4gMVwtcGV0ZXI7CivlsLHlr6LmmYLplpMgPiBiZWR0aW1lOwor5Zub6Lyq6aas6LuKID4gY2hhcmlvdDsKK+S6nuaLieW3tOmmrCA+IGFsYWJhbWE7CivlvYjpgZPlsI7lvYggPiBtaXNzaWxlOwor5pyJ57K+56We55eFID4gaW5zYW5lOwor5ZO65Lmz5YuV54mpID4gbWFtbWFsOwor5LyK5bC85LyK5b63ID4gYWVuZWlkOwor5aGe54i+57at5LqeID4gc2VyYmlhOwor5L2/77mN6LGQ5a+MID4gZW5yaWNoOwor5LyK5bC85Lqe5pavID4gYWVuZWFzOwor6amF6YCQ5Ye65aKDID4gZGVwb3J0Owor5YWr5YiG6Z+z56ymID4gcXVhdmVyOwor5aSp56u654mh5Li5ID4gZGFobGlhOwor6Zui5aWH5pyJ6LajID4gcXVhaW50Owor55m85ZiO5ZiO6IGyID4gcmF0dGxlOwor6LaF6YGO6ZmQ5bqmID4gZXhjZWVkOwor5LiN5Y+v5ZGK5Lq6ID4gaGlkZGVuOwor5Yqb6Laz5Lul5YGaID4gYWZmb3JkOwor5Zyo77mN5pyf6ZaTID4gZHVyaW5nOwor56iu5peP5Li7576pID4gcmFjaXNtOwor5b6S5q2l5peF6KGMID4gaGlraW5nOwor5peF6KGM6KOd5YKZID4gb3V0Zml0Owor5Zyw5LiL6ZC16LevID4gc3Vid2F5Owor5aiB5aOr5b+M6YWSID4gd2hpc2t5Owor6YCj5a2X56ym6JmfID4gaHlwaGVuOwor5bui6Zmk6LuN5YKZID4gZGlzYXJtOwor6aGb5YCS6YGO5L6GID4gaW52ZXJ0Owor5LiD5pyI5LiA6JmfID4ganVseVwtMTsKK+m7numgreaLm+WRvCA+IGJlY2tvbjsKK+S8r+S7suWPlOWtoyA+IGVsZGVzdDsKK+m8u+WPo+mDqOWIhiA+IG11enpsZTsKK+WwluiBsuWVvOWTrSA+IHNxdWVhbDsKK+WRvemBi+iou+WumiA+IG9yZGFpbjsKK+S6uumgreeNhei6qyA+IHNwaGlueDsKK+S4jeW5uOS5i+S6iyA+IG1pc2hhcDsKK+WcqO+5jeS5i+aXgSA+IGJlc2lkZTsKK+e0hOe/sOS6jOabuCA+IDJcLWpvaG47CivovZ/ovZ/ng4jng4ggPiBzdHJvbmc7CivljYHlm5vooYzoqakgPiBzb25uZXQ7CivkuozogIXkuYvkuIAgPiBlaXRoZXI7CivntITnv7DkuInmm7ggPiAzXC1qb2huOwor57SE57+w5LiA5pu4ID4gMVwtam9objsKK+e+jua0suWFgOm3uSA+IGNvbmRvcjsKK+S6lOWIhue+jumHkSA+IG5pY2tlbDsKK+mZpOS6huS5i+WkliA+IGV4Y2VwdDsKK+ijvemZtuW3peS6uiA+IHBvdHRlcjsKK+S6uuWPo+iqv+afpSA+IGNlbnN1czsKK+eEoeirluWmguS9lSA+IGFueWhvdzsKK+WHuuWfg+WPiuiomCA+IGV4b2R1czsKK+acieiXpeeZruiAhSA+IGFkZGljdDsKK+mHo+mtmueUqOWFtyA+IHRhY2tsZTsKK+avlOi8g+WWnOatoSA+IHByZWZlcjsKK+mYv+WkmuWwvOaWryA+IGFkb25pczsKK+mAg+S5i+WkreWkrSA+IGVzY2FwZTsKK+e0q+e+heiYreiJsiA+IHZpb2xldDsKK+WCreS6uumgmOePrSA+IGJ1dGxlcjsKK+S4jeaIsOS4jeWSjCA+IG5vXC13YXI7CivomIfmoLzomK3luL0gPiBib25uZXQ7CivmuJvkvY7pgJ/luqYgPiByZXRhcmQ7CivpmL/mi4nmlq/liqAgPiBhbGFza2E7Civkvb/lhbfpq5TljJYgPiBlbWJvZHk7CivphZLnsr7po7LmlpkgPiBsaXF1b3I7Civot5HloILlhZLnmoQgPiB3YWl0ZXI7Civkvb/vuY3og73lpKAgPiBlbmFibGU7CivnlJ/msKPli4Pli4MgPiBsaXZlbHk7CivnhKHms5XnhKHlpKkgPiBvdXRsYXc7Civms6Lmlq/lsLzkup4gPiBib3NuaWE7CivomZvlvLXogbLli6IgPiBibHVmZjsKK+acquaIkOW5tOS6uiA+IG1pbm9yOwor6bq15YyF5bir5YKFID4gYmFrZXI7CivmhJ/ljJbppIXkub4gPiB3YWZlcjsKK+mdnuW4uOWus+aAlSA+IGRyZWFkOwor5LiA57ea5b6u5YWJID4gZ2xlYW07CivkupToirHlhavploAgPiBteXJpZDsKK+aWnOe0i+i7n+WRoiA+IHR3ZWVkOwor5b635YWL6Jap5pavID4gdGV4YXM7Civmu7/ouqvlobXln4MgPiBkdXN0eTsKK+iqv+WRs+iCieaxgSA+IGdyYXZ5Owor5qiZ5rqW5bC65a+4ID4gZ2F1Z2U7CivlnKjvuY3kuYvkuIsgPiBiZWxvdzsKK+WcqO+5jeS5i+S4iiA+IGFib3ZlOwor6J+y6bOl5Y+r6IGyID4gY2hpcnA7Civli5XmhYvlvbHlg48gPiB2aWRlbzsKK+S4ieWNg+S6lOeZviA+IDNcLTUwMDsKK+ekuuWogemBi+WLlSA+IHJhbGx5Owor6LyJ6LKo5rG96LuKID4gbG9ycnk7CivluIPluJvoj73nsp8gPiBjbG90aDsKK+elnue2k+mBjuaVjyA+IGp1bXB5Owor5LyK5pav6Jit5pWZID4gaXNsYW07CivmhIHnnInoi6boh4kgPiBmcm93bjsKK+WQieaZruizveS6uiA+IGd5cHN5Owor5oSb5YWL5pav5YWJID4geFwtcmF5Owor5a625bqt5pWZ5birID4gdHV0b3I7CivpnLLpvZLogIznrJEgPiBncmluOwor5b6e5a655LiN6L+rID4gY2FsbTsKK+S4gOinkumKgOW5oyA+IGRpbWU7Civpo7Lpo5/nmYLppIogPiBkaWV0Owor55uu556q5Y+j5ZGGID4gc3R1bjsKK+aTuum+jemWgOmZoyA+IGNoYXQ7CivliLDvuY3kuYvkuIogPiBvbnRvOwor5YWo6auU5Lq65ZOhID4gY3JldzsKK+mBoOeoi+ebo+aOpyA+IHJtb247CivlnKjvuY3kuYvkuK0gPiBhbWlkOwor5bCP6LW36YeN5qmfID4gamFjazsKK+i8leiAjOaYk+iIiSA+IGVhc3k7Civph5HlsazoloTniYcgPiBmb2lsOwor6aCt6IWm5riF5qWaID4gc2FuZTsKK+WcqOawtOatpeihjCA+IHdhZGU7Civlh7rnp5/msb3ou4ogPiB0YXhpOwor6auY54i+5aSr55CDID4gZ29sZjsKK+mbu+ipsemItOiBsiA+IGJ1eno7CivmtrLmmbbpoa/npLogPiBsY2Q7Civng4/lkIjkuYvnnL4gPiBtb2I7CivntKLlhbfoo53nva4gPiByaWc7CivlhazlhbHmsb3ou4ogPiBidXM7CivojqvlkI3lhbblppkgPiBvZGQ7CivlnJPlvaLmnKjmnZAgPiBsb2c7CivkuI3liIbli53osqAgPiB0aWU7CivooaPmnI3nuKvpgoogPiBoZW07CivlnJPlvaLpurXljIUgPiBidW47CivmnZzmnb7lrZDphZIgPiBnaW47CivlnKjvuY3kuYvlhacgPiBpbjsKK+ebtOmAmui7iiA+IFwidGhyb3VnaFwtdHJhaW5cIlwtXChyZWZlcnNcLXRvXC10aGVcLWlkZWFcLW9mXC1yZXRhaW5pbmdcLXByZXZpb3VzXC1sZWdpc2xhdHVyZVwtYWZ0ZXJcLXRyYW5zaXRpb25cLXRvXC1jaGluZXNlXC1ydWxlXC1pblwtaG9uZ1wta29uZ1wtb3JcLW1hY2F1XCk7CivlsI/oh5/prLwgPiBkaXJ0eVwtbGl0dGxlXC1tb25zdGVyXC1cKHNwb2tlblwtYWZmZWN0aW9uYXRlbHlcLXRvXC1hXC1jaGlsZFwtd2hvXC1oYXNcLWdvdHRlblwtaGltXChoZXJcKXNlbGZcLWRpcnR5XDtcLWxpdGVyYWxseVwtXCJsaXR0bGVcLWRpcnR5XC1naG9zdFwiXCk7CivntrroibLkvbMgPiBpdGhhY2FcLFwtbnlcLVwoYnV0XC1wcm9ub3VuY2VkXC15aTNcLXNlNFwtamlhMVwsXC1mb2xsb3dpbmdcLWFcLW1pc3Rha2VcLW1hZGVcLWJ5XC1odTJcLXNoaTRcLeiDoemBqVwpOwor6Zu35bOw5aGUID4gbGVpZmVuZ1wtcGFnb2RhXCxcLWJ5XC13ZXN0XC1sYWtlXC11bnRpbFwtaXRcLXdhc1wtZGVzdHJveWVkXC1cKGFsc29cLWZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2VcKTsKK+eJoeS4ueWNoSA+IHBlb255XC1jYXJkXC1cKGNyZWRpdFwtY2FyZFwtaXNzdWVkXC1ieVwtaW5kdXN0cmlhbFwtYW5kXC1jb21tZXJjaWFsXC1iYW5rXC1vZlwtY2hpbmFcKTsKK+S4ieWylOWPoyA+IGF0XC10aGVcLWNyb3Nzcm9hZHNcLFwtdGhlXC1uYW1lXC1vZlwtYVwtZmFtb3VzXC1vcGVyYVwsXC1zdG9yeVwtZnJvbVwtc2h1aVwtaHVcLXpodWFuOwor5p2O6Ieq5oiQID4gbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC1saVwtemlcLWNoZW5nXCxcLWxlYWRlclwtb2ZcLW1pbmdcLWR5bmFzdHlcLXBlYXNhbnRcLXJlYmVsbGlvbjsKK+axn+WFq+m7niA+IFwiamlhbmdcLXplbWluJydzXC1laWdodFwtcG9pbnRcLWZvcm11bGFcIlwtXChmb3JcLXJlc3VtaW5nXC1hXC1kaWFsb2dcLXdpdGhcLXRhaXdhblwpOwor6YSn5Lqu5rSqID4gdGFuZ1wtbGlhbmdcLWhvbmdcLVwob3Bwb3NpdGlvblwtY2FuZGlkYXRlXC1pblwtamFuXC0xOTk2XC1zaW5nYXBvcmVcLWVsZWN0aW9uc1wpOwor5ZCD5aSn5oi2ID4gbWFzc1wtc2VpenVyZVwtb2ZcLWZvb2RcLWZyb21cLWxhbmRsb3Jkc1wtZHVyaW5nXC1mYW1pbmVzXC1iZWZvcmVcLWxpYmVyYXRpb247CivmnY7mmYLnj40gPiBsaVwtc2hpXC16aGVuXC1cKDE1MThcLTE1OTNcLFwtZmFtb3VzXC1kb2N0b3JcLFwtYXV0aG9yXC1vZlwtYmVuM1wtY2FvM1wtZ2FuZzFcLW11NDsKK+emvea1geaEnyA+IFwiYmlyZFwtZmx1XCJcLVwoZmx1XC1jYXJyaWVkXC1ieVwtYmlyZHNcLVwtXC1mb3VuZFwtaW5cLWhvbmdcLWtvbmdcLWluXC1sYXRlXC0xOTk3XCk7Civokpnku6PniL4gPiBcKHdhbHRlclwpXC1tb25kYWxlXC1cKHVzXC1hbWJhc3NhZG9yXC10b1wtamFwYW5cLFwtZm9ybWVyXC11c1wtdmljZVwtcHJlc2lkZW50XCk7CivpmbPntI3lvrcgPiBcKGNsYWlyZVwpXC1jaGVubmF1bHRcLFwtY29tbWFuZGVyXC1vZlwtZmx5aW5nXC10aWdlcnNcLWR1cmluZ1wtd29ybGRcLXdhclwtaWk7Civntq3niL7lrrkgPiBcKGpvaGFubmVzXC1sb2Rld2lrdXNcKVwtdmlsam9lblwtXChzb3V0aFwtYWZyaWNhblwtYW1iYXNzYWRvclwtdG9cLXRhaXdhblwpOwor6JGb5rSy5aOpID4gbmFtZVwtb2ZcLWFcLXBsYWNlXCxcLWdlemhvdWJhXC1kYW1cLW9uXC10aGVcLWNoYW5namlhbmdcLXJpdmVyXCxcLWluXC1zaWNodWFuOwor6by76Z+75q+NID4gXChvZlwtY2hpbmVzZVwtcHJvbnVuY2lhdGlvblwpXC1hXC12b3dlbFwtZm9sbG93ZWRcLWJ5XC1hXC1uYXNhbFwtY29uc29uYW50Owor6YeR5rC45Y2XID4ga2ltXC15b25nXC1uYW1cLVwobm9ydGhcLWtvcmVhblwtZGVwdXR5XC1wcmVtaWVyXC1hbmRcLWZvcmVpZ25cLW1pbmlzdGVyXCk7CivmlpfmibnmlLkgPiBzdHJ1Z2dsZVwtY3JpdGljaXNtXC10cmFuc2Zvcm1hdGlvblwtXChjdWx0dXJhbFwtcmV2b2x1dGlvblwtc2xvZ2FuXCk7Civnq6/ljYjnr4AgPiB0aGVcLWRyYWdvblwtYm9hdFwtZmVzdGl2YWxcLVwodGhlXC01dGhcLWRheVwtb2ZcLXRoZVwtNXRoXC1sdW5hclwtbW9udGhcKTsKK+eZveiMq+iMqyA+IFwob2ZcLW1pc3RcLFwtc25vd1wsXC1mbG9vZHdhdGVyXCxcLWV0Y1wpXC1hXC12YXN0XC1leHBhbnNlXC1vZlwtd2hpdGVuZXNzOwor5pav5L2p576FID4gXChqb2FuXClcLXNwZXJvXC1cKHVuZGVyXC1zZWNyZXRhcnlcLW9mXC1zdGF0ZVwtZm9yXC1lY29ub21pY1wtYWZmYWlyc1wpOwor5aSq5qW15ouzID4gYVwta2luZFwtb2ZcLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1zaGFkb3dib3hpbmdcLVwodGFpXC1jaGlcLWNodWFuXCk7CivmnIPkuI3mnIMgPiBcKHBvc2luZ1wtYVwtcXVlc3Rpb25cOlwtd2hldGhlclwtc29tZW9uZVwsXC1zb21ldGhpbmdcKVwtY2FuXC1vclwtbm90Owor5oqx5L2b6IWzID4gY2xhc3BcLWJ1ZGRhJydzXC1mZWV0XC1cLVwtcHJvZmVzc1wtZGV2b3Rpb25cLW9ubHlcLXdoZW5cLWluXC10cm91YmxlOwor6JuL6Iqx5rmvID4gY2xlYXJcLXNvdXBcLWNvbnRhaW5pbmdcLWJlYXRlblwtZWdnXC1hbmRcLWdyZWVuXC1sZWFmeVwtdmVnZXRhYmxlOwor6YeR5bGx5a+6ID4gamluc2hhblwtdGVtcGxlXCxcLXdoZXJlXC1mYWhhaVwtbGl2ZXNcLVwoZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZVwpOwor5Lim6JKC6JOuID4gdHdpblwtbG90dXNcLWZsb3dlcnNcLW9uXC1vbmVcLXN0YWxrXC1cLVwtYVwtZGV2b3RlZFwtbWFycmllZFwtY291cGxlOwor6aOb6JmO6ZqKID4gZmx5aW5nXC10aWdlcnNcLVwodXNcLWFpcm1lblwtaW5cLWNoaW5hXC1kdXJpbmdcLXdvcmxkXC13YXJcLXR3b1wpOwor5pqX6Iqx5YWSID4gYVwtdmVpbGVkXC1kZXNpZ25cLWluY2lzZWRcLWluXC1wb3JjZWxhaW5cLW9yXC13b3ZlblwtaW5cLWZhYnJpYzsKK+aLlOe9kOWtkCA+IGN1cHBpbmdcLXRlY2huaXF1ZVwtdXNlZFwtaW5cLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1tZWRpY2luZTsKK+WFg+WuteevgCA+IHRoZVwtbGFudGVyblwtZmVzdGl2YWxcLFwtamFudWFyeVwtMTVcLW9uXC10aGVcLWx1bmFyXC1jYWxlbmRhcjsKK+WAi+mrlOaItiA+IGFcLXNtYWxsXC1wcml2YXRlXC1idXNpbmVzc1wtXCh1c2VkXC1pblwtbWFpbmxhbmRcLWNoaW5hXC1vbmx5XCk7Civmma/lvrfpjq4gPiBqaW5nXC1kZVwtemhlblwtXChhXC1jaGluZXNlXC1jaXR5XC1pblwtamlhbmdcLXhpXC3msZ/opb9cLXByb3ZpbmNlXCk7Civplbfln47ljaEgPiBncmVhdFwtd2FsbFwtY2FyZFwtXChjcmVkaXRcLWNhcmRcLWlzc3VlZFwtYnlcLWJhbmtcLW9mXC1jaGluYVwpOwor5ZOI6LKd54i+ID4gXCh3ZWJzdGVyXClcLWh1YmJlbGxcLVwoZm9ybWVyXC1hc3NvY2lhdGVcLWF0dG9ybmV5XC1nZW5lcmFsXCk7CivokKzlo73lsbEgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLFwtbG9uZ2V2aXR5XC1oaWxsXCxcLWluXC1zdW1tZXJcLXBhbGFjZVwt6aCk5ZKM5ZySOwor5ouJ6YKj54OIID4gXChwcmluY2VcKVwtcmFuYXJpZGRoXC1cKHNvblwtb2ZcLWtpbmdcLXNpaGFub3VrXC1vZlwtY2FtYm9kaWFcKTsKK+WMheW5suWItiA+IGFcLXN5c3RlbVwtb2ZcLXBheW1lbnRcLXBhcnRseVwtaW5cLWtpbmRcLWFuZFwtcGFydGx5XC1pblwtY2FzaDsKK+mhj+ecn+WNvyA+IG5hbWVcLW9mXC1hXC1wZXJzb25cLFwteWFuXC16aGVucWluZ1wsXC1hXC1mYW1vdXNcLWNhbGxpZ3JhcGhlcjsKK+eZvee0oOiyniA+IFwobmFtZVwtb2ZcLWFcLXBlcnNvblwpXC1iYWlcLXN1emhlblwsXC1mcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlOwor55m95Yaw5YawID4gcGFpXC1waW5nXC1waW5nXC1cKHdlbGxcLWtub3duXC10YWl3YW5cLXBlcmZvcm1pbmdcLWFydGlzdFwpOwor5Lyv5oGp5pavID4gXChuaWNob2xhc1wpXC1idXJuc1wtXCh1c1wtc3RhdGVcLWRlcGFydG1lbnRcLXNwb2tlc3BlcnNvblwpOwor5bC86LWr6a2vID4gXChqYXdhaGFybGFsXClcLW5laHJ1XC1cKGZpcnN0XC1wcmltZVwtbWluaXN0ZXJcLW9mXC1pbmRpYVwpOwor5pKl5rWq6byTID4gYVwtZHJ1bVwtc2hhcGVkXC1yYXR0bGVcLVwodXNlZFwtYnlcLXBlZGxhcnNcLW9yXC1hc1wtYVwtdG95XCk7CivljJflpKfojZIgPiB0aGVcLWdyZWF0XC1ub3J0aGVyblwtd2lsZGVybmVzc1wtXChpblwtbm9ydGhlcm5cLWNoaW5hXCk7CivljYHkupTlpKcgPiAxXC01dGhcLXBhcnR5XC1jb25ncmVzc1wtXChvZlwtY2hpbmVzZVwtY29tbXVuaXN0XC1wYXJ0eVwpOwor5p2O5YWJ6ICAID4gbGVlXC1rdWFuXC15ZXdcLVwoZm9ybWVyXC1wcmltZVwtbWluaXN0ZXJcLW9mXC1zaW5nYXBvcmVcKTsKK+i3keaxn+a5liA+IHRvXC1tYWtlXC1hXC1saXZpbmdcLWFzXC1hXC10cmF2ZWxsaW5nXC1wZXJmb3JtZXJcLFwtZXRjXC47CivkuqTmmJPpoY0gPiBzdW1cLW9yXC12b2x1bWVcLW9yXC1hbW91bnRcLW9mXC1idXNpbmVzc1wtdHJhbnNhY3Rpb25zOwor5p6X6LGQ5q2jID4gbGluXC1mZW5nXC1jaGVuZ1wtXCh0YWl3YW5cLW1pbmlzdGVyXC1vZlwtdGhlXC1pbnRlcmlvclwpOwor6JGj5bu66I+vID4gdHVuZ1wtY2hlZVwtaHdhXC1cKGhvbmdcLWtvbmdcLWxlYWRlclwtYWZ0ZXJcLWp1bHlcLTE5OTdcKTsKK+WNl+S6rOi3ryA+IG5hbmppbmdcLXN0XC5cLFwtbGFyZ2VcLWNvbW1lcmNpYWxcLXN0cmVldFwtaW5cLXNoYW5naGFpOwor5YWr5LuZ5qGMID4gb2xkXC1mYXNoaW9uZWRcLXNxdWFyZVwtdGFibGVcLXRvXC1zZWF0XC1laWdodFwtcGVvcGxlOwor5aGe5ouJ5YehID4gXChzb25ueVwpXC1zZXJhcGhpblwtXChoYWl0aWFuXC1hbWJhc3NhZG9yXC10b1wtdGFpd2FuXCk7Civph5HlpKfkuK0gPiBraW1cLWRhZVwtanVuZ1wtXChuZXdseVwtZWxlY3RlZFwtcHJlc2lkZW50XC1vZlwta29yZWFcKTsKK+iMg+aWr+WdpiA+IFwoZGlhbm5lXClcLWZlaW5zdGVpblwtXCh1c1wtc2VuYXRvclwtZnJvbVwtY2FsaWZvcm5pYVwpOwor5ray5oWL5rC0ID4gbGlxdWlkXC13YXRlclwtXChhc1wtb3Bwb3NlZFwtdG9cLXN0ZWFtXC1vclwtaWNlXCxcLWVcLmdcLlwpOwor6Kej5pS+6LuNID4gcGVvcGxlJydzXC1saWJlcmF0aW9uXC1hcm15XC1cKGllXCxcLXRoZVwtY2hpbmVzZVwtYXJteVwpOwor6LaZ57Sr6Zm9ID4gemhhb1wteml5YW5nXC1cKGZvcm1lclwtY2hpbmVzZVwtbGVhZGVyc2hpcFwtZmlndXJlXCk7CivkupLpgJrmgKcgPiBpbnRlcm9wZXJhYmlsaXR5XC1cKG9mXC1jb21tdW5pY2F0aW9uc1wtZXF1aXBtZW50XCk7CivlhajmlpfnhaUgPiBjaHVuXC1kb29cLWh3YW5cLVwoZm9ybWVyXC1zb3V0aFwta29yZWFuXC1wcmVzaWRlbnRcKTsKK+aOoui3r+iAhSA+IHBhdGhmaW5kZXJcLVwoc3BhY2VcLWNyYWZ0XC1zZW50XC10b1wtbWFyc1wtYnlcLW5hc2FcKTsKK+W0lOS6nueQsyA+IGNoYXJsZXNcLXlhaFwtbGluXC10cmllXC1cKGFya2Fuc2FzXC1yZXN0YXVyYW50ZXVyXCk7CivlsIjmoYjntYQgPiBzcGVjaWFsXC1cKGxlZ2FsXHxqdWRpY2lhbFwpXC1pbnZlc3RpZ2F0aW9uc1wtZ3JvdXA7CivplbfmspnngaMgPiBjaGV1bmdcLXNoYVwtd2FuXC1cKHBvdWx0cnlcLW1hcmtldFwtaW5cLWhvbmdcLWtvbmdcKTsKK+ato+W4uOWMliA+IG5vcm1hbGl6YXRpb25cLVwob2ZcLWRpcGxvbWF0aWNcLXJlbGF0aW9uc1wsXC1ldGNcKTsKK+isneijoeWkqyA+IFwobmF3YXpcKVwtc2hhcmlmXC1cKHByaW1lXC1taW5pc3Rlclwtb2ZcLXBha2lzdGFuXCk7CivlkLPkvZzmo58gPiBnb2hcLWNob2tcLXRvbmdcLVwocHJpbWVcLW1pbmlzdGVyXC1vZlwtc2luZ2Fwb3JlXCk7Civlt6Xkurrpu6ggPiB3b3JrZXJzJydcLXBhcnR5XC1cKHNpbmdhcG9yZVwtb3Bwb3NpdGlvblwtcGFydHlcKTsKK+aWr+S9qeaelyA+IHNwZWxsaW5nXC1cKGVnXCxcLXNwZWxsaW5nXC1lbnRlcnRhaW5tZW50XC1ncm91cFwpOwor55un5rOw5oSaID4gcm9oXC10YWVcLXdvb1wtXChmb3JtZXJcLXNvdXRoXC1rb3JlYW5cLXByZXNpZGVudFwpOwor6b2K55m955+zID4gbmFtZVwtb2ZcLWFcLWZhbW91c1wtY2hpbmVzZVwtYXJ0aXN0XCxcLXFpXC1iYWlcLXNoaTsKK+WVhuWLmemDqCA+IGNvbW1lcmNlXC1kZXBhcnRtZW50XC1cKG9mXC10aGVcLXVzXC1nb3Zlcm5tZW50XCk7CivogIHkvLTlhZIgPiBcKG9mXC1hblwtb2xkXC1tYXJyaWVkXC1jb3VwbGVcKVwtaHVzYmFuZFwtb3JcLXdpZmU7CivmooblrZDohZQgPiBhXC1nZW5lcmFsXC10ZXJtXC1mb3JcLWxvY2FsXC1vcGVyYXNcLWluXC1zaGFuZ3hpOwor5qKF6Jit6IqzID4gbmFtZVwtb2ZcLWFcLXZlcnlcLWZhbW91c1wtYmVpamluZ1wtb3BlcmFcLWFydGlzdDsKK+ihjOaUv+mZoiA+IGV4ZWN1dGl2ZVwteXVhblwtXChnb3Zlcm5tZW50XC1ib2R5XC1pblwtdGFpd2FuXCk7CivmnbDkvZvojLIgPiBcKGphbWVzXClcLWplZmZvcmRzXC1cKHVzXC1zZW5hdG9yXC1mcm9tXC12ZXJtb250XCk7CivnvoXluIPms4ogPiBsb3BcLW5vclwtXChudWNsZWFyXC10ZXN0aW5nXC1zaXRlXC1pblwteGluamlhbmdcKTsKK+awkemAsum7qCA+IGRwcFwtXChkZW1vY3JhdGljXC1wcm9ncmVzc2l2ZVwtcGFydHlcLFwtdGFpd2FuXCk7Civnmb3oirHom4cgPiBsb25nXC1ub3NlZFwtcGl0XC12aXBlclwtXChhZ2tpc3Ryb2RvblwtYWN1dHVzXCk7CivnnL7orbDlk6EgPiBtZW1iZXJcLW9mXC10aGVcLXVzXC1ob3VzZVwtb2ZcLXJlcHJlc2VudGF0aXZlczsKK+mCgeenkeijoSA+IFwobWlrZVwpXC1tY2N1cnJ5XC1cKHdoaXRlXC1ob3VzZVwtc3Bva2VzcGVyc29uXCk7CivloLHlkYrmnIMgPiBwdWJsaWNcLWxlY3R1cmVcLVwod2l0aFwtZ3Vlc3RcLXNwZWFrZXJzXCxcLWV0Y1wpOwor5Yip5Lyv5pu8ID4gXChjb25uZWN0aWN1dFwtc2VuYXRvclwtam9zZXBoXC1pXC5cKVwtbGllYmVybWFuOwor6bql56eR6KOhID4gXChtaWtlXClcLW1jY3VycnlcLVwod2hpdGVcLWhvdXNlXC1zcG9rZXNwZXJzb25cKTsKK+elnuWls+WzsCA+IG5hbWVcLW9mXC1hXC1wZWFrXC1ieVwtY2hhbmdqaWFuZ1wtdGhyZWVcLWdvcmdlczsKK+eZveabieeHlSA+IHBhaVwtaHNpYW9cLXllblwtXChkYXVnaHRlclwtb2ZcLXBhaVwtcGluZ1wtcGluZ1wpOwor6YeR5pel5oiQID4ga2ltXC1pbFwtc3VuZ1wtXChmb3JtZXJcLW5vcnRoXC1rb3JlYW5cLWxlYWRlclwpOwor5aSq5qW15YqNID4gYVwta2luZFwtb2ZcLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1zd29yZFwtcGxheTsKK+WPuOazlemDqCA+IGp1c3RpY2VcLWRlcGFybWVudFwtXChvZlwtdGhlXC11c1wtZ292ZXJubWVudFwpOwor5bqr57SN5Y2XID4gXChhbmRyZXdcKVwtY3VuYW5hblwtXChhbGxlZ2VkXC1zZXJpYWxcLWtpbGxlclwpOwor6buD5bu65Y2XID4gam9oblwtaHVhbmdcLVwoZGVtb2NyYXRpY1wtcGFydHlcLWZ1bmRyYWlzZXJcKTsKK+m7g+WyqeWztiA+IGh1YW5neWFuXC1pc2xhbmRcLVwoaW5cLXRoZVwtc291dGhcLWNoaW5hXC1zZWFcKTsKK+apn+mXnOWgsSA+IG9mZmljaWFsXC1cKGdvdmVybm1lbnRcLW9wZXJhdGVkXClcLW5ld3NwYXBlcjsKK+WFpeWtuOeOhyA+IHBlcmNlbnRhZ2VcLW9mXC1jaGlsZHJlblwtd2hvXC1lbnRlclwtc2Nob29sOwor6IyF6Ie66YWSID4gbWFvdGFpXC1vclwtbWFpdGFpXC1cKGNoaW5lc2VcLXN0cm9uZ1wtZHJpbmtcKTsKK+eOi+e+suS5iyA+IG5hbWVcLW9mXC1hXC1wZXJzb25cLFwtYVwtZmFtb3VzXC1jYWxsaWdyYXBoZXI7Civpgorop5Lnp5EgPiBsZWZ0b3ZlclwtYml0c1wtYW5kXC1waWVjZXNcLVwob2ZcLWluZHVzdHJpYWw7CivpmL/mmIzml48gPiB0aGVcLWFjaGFuZ1wtbmF0aW9uYWxpdHlcLWxpdmluZ1wtaW5cLXl1bm5hbjsKK+S9qea0m+ilvyA+IFwobmFuY3lcKVwtcGVsb3NpXC1cKG1lbWJlclwtb2ZcLXVzXC1jb25ncmVzc1wpOwor5ZCQ6a2v55WqID4gdGhlXC10dXJmYW5cLWJhc2luXCxcLWluXC14aW5qaWFuZ1wtcHJvdmluY2U7CivljYrohKvnlKIgPiBwYXJ0bHlcLXJlbGVhc2VkXC1mcm9tXC1wcm9kdWN0aXZlXC1sYWJvdXI7CivnuL3mm7joqJggPiBnZW5lcmFsXC1zZWNyZXRhcnlcLVwob2ZcLWNvbW11bmlzdFwtcGFydHlcKTsKK+ayiOWci+aUviA+IGNoaW5lc2VcLWZvcmVpZ25cLW1pbmlzdHJ5XC1zcG9rZXNwZXJzb247CivnqYbmoYLoi7EgPiBtdVwtZ3VpXC15aW5nXC1cKG5hbWVcLW9mXC1hXC13b21hblwtd2FycmlvclwpOwor5a2r5aWz5YWSID4gZ3JhbmRkYXVnaHRlclwtXChkYXVnaHRlclwtb2ZcLW9uZScnc1wtc29uXCk7CivlsJrmhZXmnbAgPiBqYW1lc1wtc2Fzc2VyXC1cKHVzXC1hbWJhc3NhZG9yXC10b1wtY2hpbmFcKTsKK+WhnueIvuWNlyA+IFwoZXVnZW5lXClcLWNlcm5hblwtXChhcG9sbG9cLTE3XC1hc3Ryb25hdXRcKTsKK+W5tOeVq+WFkiA+IG5ld1wteWVhclwtXChvclwtc3ByaW5nXC1mZXN0aXZhbFwpXC1waWN0dXJlOwor6ZC16aOv56KXID4gXCJpcm9uXC1yaWNlXC1ib3dsXCJcLVwtXC1cLXNlY3VyZVwtZW1wbG95bWVudDsKK+iDoeW/l+aYjiA+IGhvXC1jaGlcLW1pbmhcLVwodmlldG5hbWVzZVwtbGVhZGVyXCxcLWNpdHlcKTsKK+W+kOaCsum0uyA+IG5hbWVcLW9mXC1hXC1mYW1vdXNcLXBhaW50ZXJcLFwteHVcLWJlaWhvbmc7CivoirHmnKjomK0gPiBodWFcLW11XC1sYW5cLVwobmFtZVwtb2ZcLWFcLXdvbWFuXC13YXJyaW9yXCk7CivmiZPkuI3pgY4gPiBub3RcLXRvXC1iZVwtYWJsZVwtdG9cLWJlYXRcLW9yXC1kZWZlYXRcLXNiXC47CivnmbzkuoboqIAgPiBcKFwicGFzdFwtdGVuc2VcIlwtb2ZcLVw655m86KiAXClcLXNwb2tlXC1wdWJsaWNseTsKK+S4jeiHqumHjyA+IG5vdFwtdGFrZVwtYVwtcHJvcGVyXC1tZWFzdXJlXC1vZlwtb25lc2VsZjsKK+aKhOW+jOi3ryA+IHRvXC1vdXRmbGFua1wtYW5kXC1hdHRhY2tcLWZyb21cLXRoZVwtcmVhcjsKK+e3qOW5tOmrlCA+IGFubmFsaXN0aWNcLXN0eWxlXC1cKGluXC1oaXN0b3Jpb2dyYXBoeVwpOwor5a626YSJ6ZueID4gJydob21lXC10b3duXC1jaGlja2VuJydcLVwoYVwtdHlwZVwtb2ZcLWRpc2hcKTsKK+eroOWtneWatCA+IGpvaG5cLWNoYW5nXC1cKHRhaXdhblwtZm9yZWlnblwtbWluaXN0ZXJcKTsKK+S+huS4jeWPiiA+IHRoZXJlJydzXC1ub3RcLWVub3VnaFwtdGltZVwtXCh0b1wtZG9cLXN0aFwuXCk7CivmrbvkuI3kuoYgPiBwb3J0dWxhY2FcLXN1bmRpYWxcLVwoYVwtdHlwZVwtb2ZcLXBsYW50XCk7Civov47mmKXoirEgPiB3aW50ZXJcLWphc21pbmVcLFwtamFzbWludW1cLW51ZGlmbG9ydW07CivkuLvkurrnv4EgPiBtYXN0ZXJcLVwob2ZcLW9uZScnc1wtb3duXC1kZXN0aW55XCxcLWV0Y1wuXCk7Civlk4jlr4bnk5wgPiBoYW1pXC1tZWxvblwtXChhXC12YXJpZXR5XC1vZlwtbXVza21lbG9uXCk7Civosr/mmJPpoY0gPiB2b2x1bWVcLW9mXC10cmFkZVwtXChiZXR3ZWVuXC1jb3VudHJpZXNcKTsKK+e4veWLleWToSA+IGdlbmVyYWxcLW1vYmlsaXphdGlvblwtXChmb3JcLXdhclwsXC1ldGNcKTsKK+W0qem+jeaXjyA+IHRoZVwtYmVuZ2xvbmdcLVwocGVuZ2x1bmdcKVwtbmF0aW9uYWxpdHk7CivpnLjnjovpnq0gPiBhXC1yYXR0bGVcLXN0aWNrXC11c2VkXC1pblwtZm9sa1wtZGFuY2luZzsKK+eZveaureigtiA+IHRoZVwtbGFydmFcLW9mXC1zaWxrd29ybVwtd2l0aFwtYmF0cnl0aXM7CivkuI3lpLHngrogPiBjYW5cLXN0aWxsXC1iZVwtY29uc2lkZXJlZFwtXCh0b1wtYmVcLlwuXC5cKTsKK+acgOaDoOWciyA+IG1vc3RcLWZhdm9yZWRcLW5hdGlvblwtXCh0cmFkZVwtc3RhdHVzXCk7Civln7rph5HmnIMgPiBhXC1mb3VuZGF0aW9uXC1cKGllXCxcLWFuXC1vcmdhbml6YXRpb25cKTsKK+aJk+mMr+S6hiA+IFwieW91XC1oYXZlXC1kaWFsZWRcLXRoZVwtd3JvbmdcLW51bWJlclwiOwor55eF5YyF5YWSID4gYVwtcGVyc29uXC13aG9cLWlzXC1hbHdheXNcLWZhbGxpbmdcLWlsbDsKK+aLieiOq+aWryA+IFwocGhpbGlwcGluZVwtcHJlc2lkZW50XC1maWRlbFwpXC1yYW1vczsKK+iDoeW/l+W8tyA+IGphc29uXC1odVwtXCh0YWl3YW5cLWZvcmVpZ25cLW1pbmlzdGVyXCk7CivluavlgJLlv5kgPiBiZVwtbW9yZVwtb2ZcLWFcLWhpbmRyYW5jZVwtdGhhblwtYVwtaGVscDsKK+S/seaogumDqCA+IGNsdWJcLVwoaWVcLFwtYVwtZ3JvdXBcLW9yXC1vcmdhbml6YXRpb25cKTsKK+WLnuWLleevgCA+IGludGVybmF0aW9uYWxcLWxhYm9yXC1kYXlcLVwobWF5XC1kYXlcKTsKK+aKseeyl+iFvyA+IGxhdGNoXC1vblwtdG9cLXRoZVwtcmljaFwtYW5kXC1wb3dlcmZ1bDsKK+mHkeato+aXpSA+IGtpbVwtam9uZ1wtaWxcLVwobm9ydGhcLWtvcmVhblwtbGVhZGVyXCk7CivkuI3mkbjpoK0gPiBub3RcLWFjcXVhaW50ZWRcLXdpdGhcLXRoZVwtc2l0dWF0aW9uOwor6a2P5Lqs55SfID4gd2VpXC1qaW5nc2hlbmdcLVwoY2hpbmVzZVwtZGlzc2lkZW50XCk7CivlkIPkuI3kuIogPiBiZVwtdW5hYmxlXC10b1wtZ2V0XC1zb21ldGhpbmdcLXRvXC1lYXQ7CivmqqLlr5/lrpggPiB0aGVcLXByb3NlY3V0aW9uXC1cKGluXC1hXC1jb3VydFwtY2FzZVwpOwor5Z6D5Zy+6LuKID4gZ2FyYmFnZVwtdHJ1Y2tcLVwob3JcLW90aGVyXC12ZWhpY2xlXCk7CivluIPms5XnvoUgPiBidWZmYWxvXC1cKGNpdHlcLWluXC1uZXdcLXlvcmtcLXN0YXRlXCk7CivlhavmnIPnqbQgPiB0aGVcLWVpZ2h0XC1zdHJhdGVnaWNcLW5lcnZlXC1wb2ludHM7Civplovmma7mlaYgPiBjYXBlXC10b3duXC1cKGNpdHlcLWluXC1zb3V0aFwtYWZyaWNhXCk7CivopovkuI3lvpcgPiBtYXlcLW5vdFwtYmVcLXNlZW5cLWJ5XC1vclwtZXhwb3NlZFwtdG87CivlibXovqbkurogPiBmb3VuZGVyXC1cKG9mXC1hblwtaW5zdGl0dXRpb25cLFwtZXRjXCk7CivpgLzkvpvkv6EgPiBvYnRhaW5cLWNvbmZlc3Npb25zXC1ieVwtY29tcHVsc2lvbjsKK+iyoOiyrOS6uiA+IHBlcnNvblwtaW5cLWNoYXJnZVwtXChvZlwtc29tZXRoaW5nXCk7CivljYHkuInntpMgPiB0aGVcLXRoaXJ0ZWVuXC1jb25mdWNpYW5cLWNsYXNzaWNzOwor55eF6J+y5a6zID4gcGxhbnRcLWRpc2Vhc2VzXC1hbmRcLWluc2VjdFwtcGVzdHM7CivlkIPkuI3mnI0gPiBub3RcLWJlXC1hY2N1c3RvbWVkXC10b1wtZWF0aW5nXC1zdGg7CivppqzlsLzmi4kgPiBtYW5pbGFcLVwoY2FwaXRhbFwtb2ZcLXBoaWxpcHBpbmVzXCk7Civmh4noqbLoqqogPiBpdFwtc2hvdWxkXC1iZVwtbWVudGlvbmVkXC10aGF0XC1cLlwuXC47CivkuI3lvpfkuI0gPiBoYXZlXC1ub1wtY2hvaWNlXC1vclwtb3B0aW9uXC1idXRcLXRvOwor5YyX5LyQ6LuNID4gdGhlXC1ub3J0aGVyblwtZXhwZWRpdGlvbmFyeVwtYXJteTsKK+WPr+enu+akjSA+IHBvcnRhYmxlXC1cKHByb2dyYW1taW5nXC1sYW5ndWFnZVwpOwor57aT5r+f5a24ID4gZWNvbm9taWNzXC1cKGFzXC1hXC1maWVsZFwtb2ZcLXN0dWR5XCk7CivmhJvpnaLlrZAgPiBiZVwtY29uY2VybmVkXC1hYm91dFwtZmFjZVwtc2F2aW5nOwor5aKo54i+57y9ID4gbWVsYm91cm5lXC1cKGFuXC1hdXN0cmFsaWFuXC1jaXR5XCk7CivntKLmnbDntI0gPiBzb2pvdXJuZXJcLVwobWFydGlhblwtbGFuZFwtcm92ZXJcKTsKK+irh+W+l+S+hiA+IGFibGVcLXRvXC10YWxrXC10b1wtb3JcLWdldFwtb25cLXdpdGg7Civnj63kuLvku7sgPiBhXC10ZWFjaGVyXC1pblwtY2hhcmdlXC1vZlwtYVwtY2xhc3M7CivlsI7oiKrlk6EgPiBuYXZpZ2F0b3JcLVwob25cLWFcLXBsYW5lXC1vclwtYm9hdFwpOwor55y+6K2w6ZmiID4gaG91c2VcLW9mXC1yZXByZXNlbnRhdGl2ZXNcLVwodXNhXCk7CivnlbbkuovkurogPiBwZXJzb25zXC1pbnZvbHZlZFwtb3JcLWltcGxpY2F0ZWQ7CivntIXntqDnh4ggPiBcKHJlZFwtYW5kXC1ncmVlblwpXC10cmFmZmljXC1saWdodDsKK+mHjeikh+evgCA+IHJlcGVhdGVkXC1zZWdtZW50XC1cKG5ldHdvcmtpbmdcKTsKK+WFteW3peW7oCA+IG11bml0aW9uc1wtb3JcLW9yZG5hbmNlXC1mYWN0b3J5Owor5Y2K6Lqr5YOPID4gaGFsZlwtbGVuZ3RoXC1waG90b1wtb3JcLXBvcnRyYWl0Owor55m86Zu76YePID4gXChnZW5lcmF0ZWRcKVwtZWxlY3RyaWNhbFwtZW5lcmd5Owor5L+d5a6J5pePID4gdGhlXC1iYW9hblwtXChwYW9hblwpXC1uYXRpb25hbGl0eTsKK+axn+a+pOawkSA+IGppYW5nXC16ZW1pblwtXChjaGluZXNlXC1wcmVtaWVyXCk7CivlubTlpJzpo68gPiBuZXdcLXllYXInJ3NcLWV2ZVwtZmFtaWx5XC1kaW5uZXI7CivmnY7nmbvovJ0gPiBsZWVcLXRlbmdcLWh1aVwtXCh0YWl3YW5cLWxlYWRlclwpOwor5aSn6Ieq54S2ID4gbmF0dXJlXC1cKGFzXC1pblwtbW90aGVyXC1uYXR1cmVcKTsKK+eri+aWueexsyA+IGN1YmljXC1tZXRlclwtXCh1bml0XC1vZlwtdm9sdW1lXCk7CivlkIPkuI3mtoggPiBiZVwtdW5hYmxlXC10b1wtc3RhbmRcLVwoZXhlcnRpb247CivmipXnpajnq5kgPiBwb2xsaW5nXC1zdGF0aW9uXC1cKGZvclwtYVwtdm90ZVwpOwor5b6X56Wo546HID4gcGVyY2VudGFnZVwtb2ZcLXZvdGVzXC1vYnRhaW5lZDsKK+WQg+S4jeS9jyA+IGJlXC11bmFibGVcLXRvXC1iZWFyXC1vclwtc3VwcG9ydDsKK+iHquayu+WNgCA+IGF1dG9ub21vdXNcLXJlZ2lvblwtXChpblwtY2hpbmFcKTsKK+W8tee0lOWmgiA+IFwoYW1lcmljYW5cLWF1dGhvclwpXC1pcmlzXC1jaGFuZzsKK+ePreWLmeacgyA+IGFcLXJvdXRpbmVcLW1lZXRpbmdcLW9mXC1hXC1zcXVhZDsKK+aWsOW+t+ijoSA+IG5ld1wtZGVsaGlcLVwoY2FwaXRhbFwtb2ZcLWluZGlhXCk7Civlj43lsI3pu6ggPiBvcHBvc2l0aW9uXC1cKHBvbGl0aWNhbFwpXC1wYXJ0eTsKK+iqquaYjuabuCA+IHN5bm9wc2lzXC1cKG9mXC1hXC1wbGF5XC1vclwtZmlsbVwpOwor5Y+b5LqC572qID4gdGhlXC1jcmltZVwtb2ZcLWFybWVkXC1yZWJlbGxpb247Civlt67lvpflpJogPiBmYWxsXC1zaG9ydFwtYnlcLWFcLWxhcmdlXC1hbW91bnQ7Civlj7DngaPoqbEgPiB0YWl3YW5lc2VcLWNoaW5lc2VcLVwobGFuZ3VhZ2VcKTsKK+iRieWIqeasvSA+IFwocnVzc2lhblwtcHJlc2lkZW50XClcLXllbHRzaW47Civpu4PmtabmsZ8gPiBodWFuZ3B1XC1yaXZlclwtXChpblwtc2hhbmdoYWlcKTsKK+iDjOWMheiisSA+IGhhdmVcLWFcLXdlaWdodFwtb25cLW9uZScnc1wtbWluZDsKK+WgseaItuWPoyA+IGFwcGx5XC1mb3JcLWFcLXJlc2lkZW50XC1wZXJtaXQ7CivlnIvpmpvntJogPiBcKGF0XC1hblwpXC1pbnRlcm5hdGlvbmFsXC1sZXZlbDsKK+WQg+S4jeS+hiA+IG5vdFwtYmVcLWZvbmRcLW9mXC1jZXJ0YWluXC1mb29kOwor5pOa5aCx5bCOID4gYWNjb3JkaW5nXC10b1wtXChuZXdzXClcLXJlcG9ydHM7Civnl4Xmr5LlrbggPiB2aXJvbG9neVwtXChzdHVkeVwtb2ZcLXZpcnVzZXNcKTsKK+iAjOS4jemcgCA+IHdpdGhvdXRcLW5lZWRpbmdcLVwodG9cLXNvXC1zdGhcKTsKK+S6pOaPm+apnyA+IHN3aXRjaFwtXCh0ZWxlY29tbXVuaWNhdGlvbnNcKTsKK+Wkp+mZuOipsSA+IG1haW5sYW5kXC1jaGluZXNlXC1cKGxhbmd1YWdlXCk7CivkuqTmj5vlmaggPiBcKHRlbGVjb21cLW9yXC1uZXR3b3JrXClcLXN3aXRjaDsKK+mAmuioiuekviA+IGFcLW5ld3NcLXNlcnZpY2VcLVwoZWdcLFwteGluaHVhXCk7CivmhJvlpb3ogIUgPiBsb3ZlclwtXChvZlwtYXJ0XCxcLXNwb3J0c1wsXC1ldGNcKTsKK+WFrOWuiemDqCA+IG1pbmlzdHJ5XC1vZlwtcHVibGljXC1zZWN1cml0eTsKK+aKseS4jeW5syA+IGJlXC1vdXRyYWdlZFwtYnlcLWFuXC1pbmp1c3RpY2U7CivnlLflrZDmvKIgPiBtYW5cLVwoaVwuZVwuXC1tYW5seVwsXC1tYXNjdWxpbmVcKTsKK+W3tOWFkueLlyA+IHBla2luZ2VzZVwtXChhXC1icmVlZFwtb2ZcLWRvZ1wpOwor5a2Y6LuK6JmVID4gcGFya2luZ1wtbG90XC1cKGZvclwtYmljeWNsZXNcKTsKK+m8u+eJm+WFkiA+IGhhcmRlbmVkXC1tdWN1c1wtaW5cLW5vc3RyaWxzOwor5qGD6Iqx6YGLID4gbHVja1wtd2l0aFwtdGhlXC1vcHBvc2l0ZVwtc2V4Owor5byX5aGe5aWHID4gdmVyc2FjZVwtXChmYXNoaW9uXC1kZXNpZ25lclwpOwor5pmu6YCa6KmxID4gbWFuZGFyaW5cLVwoY29tbW9uXC1sYW5ndWFnZVwpOwor5bm+5bm05L6GID4gZm9yXC10aGVcLXBhc3RcLXNldmVyYWxcLXllYXJzOwor6aCk5ZKM5ZySID4gc3VtbWVyXC1wYWxhY2VcLVwoaW5cLWJlaWppbmdcKTsKK+mmrOS+huS6uiA+IG1hbGF5c2lhblwtcGVyc29uXC1vclwtcGVvcGxlOwor5bqV54m55b6LID4gZGV0cm9pdFwtXChhXC1jaXR5XC1pblwtdGhlXC11c1wpOwor5oOF5rOB5LiLID4gdW5kZXJcLVwodGhpc1wpXC1jaXJjdW1zdGFuY2VzOwor5rqr5ZOl6I+vID4gdmFuY291dmVyXC1cKGNpdHlcLWluXC1jYW5hZGFcKTsKK+eZvemgree/gSA+IHJvb3RcLW9mXC1jaGluZXNlXC1wdWxzYXRpbGxhOwor5Lit5paH54mIID4gY2hpbmVzZVwtXChsYW5ndWFnZVwpXC12ZXJzaW9uOwor6auY5Lit55SfID4gc2VuaW9yXC1oaWdoXC1zY2hvb2xcLXN0dWRlbnQ7Civmnb/nvr3nkIMgPiBiYXR0bGVkb3JlXC1hbmRcLXNodXR0bGVjb2NrOwor5Y+D5YWp6ZmiID4gYm90aFwtaG91c2VzXC1vZlwtdXNcLWNvbmdyZXNzOwor55mf6J6655enID4gY2hvbGVyYVwtXCh3aXRoXC1kZWh5ZHJhdGlvblwpOwor6YCP6YCa5oCnID4gdHJhbnNwYXJlbmN5XC1cKG5ldHdvcmtpbmdcKTsKK+eHn+alremhjSA+IHN1bVwtb3JcLXZvbHVtZVwtb2ZcLWJ1c2luZXNzOwor55+u5YCL5YWSID4gYVwtcGVyc29uXC1vZlwtc2hvcnRcLXN0YXR1cmU7CivmoLjlpKflnIsgPiBhXC1udWNsZWFyXC1wb3dlclwtXChjb3VudHJ5XCk7CivluIzoh5joqp4gPiBcKG1vZGVyblwpXC1ncmVla1wtXChsYW5ndWFnZVwpOwor5pmC6ZaT5YWnID4gd2l0aGluXC1cKGFcLXBlcmlvZFwtb2ZcLXRpbWVcKTsKK+S4i+W3peWkqyA+IHRvXC1wdXRcLWluXC10aW1lXC1hbmRcLWVuZXJneTsKK+aXpeacrOS6uiA+IGphcGFuZXNlXC1wZXJzb25cLW9yXC1wZW9wbGU7CivnhKHpmZDmnJ8gPiB1bmxpbWl0ZWRcLVwodGltZVwpXC1kdXJhdGlvbjsKK+W4leiYreWNoSA+IHBhbGFua2FcLVwoYVwtcGVyc29uYWxcLW5hbWVcKTsKK+S6uuawkeW5oyA+IGNoaW5lc2VcLXVuaXRcLW9mXC1jdXJyZW5jeTsKK+a1geawk+e9qiA+IHRoZVwtY3JpbWVcLW9mXC1ob29saWdhbmlzbTsKK+mMhOmfs+apnyA+IFwodGFwZVwpXC1yZWNvcmRpbmdcLW1hY2hpbmU7Civku6PkuYvku6UgPiBcKGhhc1wtYmVlblwpXC1yZXBsYWNlZFwtd2l0aDsKK+iuiuaIsuazlSA+IHBlcmZvcm1cLWNvbmp1cmluZ1wtdHJpY2tzOwor55m86KGM6aGNID4gXChwZXJpb2RpY2FsXClcLWNpcmN1bGF0aW9uOwor5Y2B5LiJ5pelID4gdGhpcnRpZXRoXC1kYXlcLW9mXC1hXC1tb250aDsKK+S4i+WNiui6qyA+IGxvd2VyXC1oYWxmXC1vZlwtb25lJydzXC1ib2R5Owor5Y2w5q2Q6KqeID4gaW5kb1wtZXVyb3BlYW5cLVwobGFuZ3VhZ2VcKTsKK+WFp+aUv+mDqCA+IG1pbmlzdHJ5XC1vZlwtdGhlXC1pbnRlcmlvcjsKK+WNsOatkOaWhyA+IGluZG9cLWV1cm9wZWFuXC1cKGxhbmd1YWdlXCk7CivnhKHpu6jmtL4gPiBwb2xpdGljYWxseVwtdW5hZmZpbGlhdGVkOwor6K6K6Zu756uZID4gXCh0cmFuc2Zvcm1lclwpXC1zdWJzdGF0aW9uOwor5pyo5LmD5LyKID4gbXVtbXlcLVwocHJlc2VydmVkXC1jb3Jwc2VcKTsKK+WkluS6pOmDqCA+IGZvcmVpZ25cLWFmZmFpcnNcLW1pbmlzdHJ5Owor6YGy5rWp55SwID4gY2hpbmVzZVwtZGVmZW5zZVwtbWluaXN0ZXI7CivljJfmuqvluLYgPiB0aGVcLW5vcnRoXC10ZW1wZXJhdGVcLXpvbmU7CivmiZPpm7voqbEgPiB0b1wtbWFrZVwtYVwtdGVsZXBob25lXC1jYWxsOwor5q2i55eb5rOVID4gbWV0aG9kXC1vZlwtcmVsaWV2aW5nXC1wYWluOwor5YyX5Y2K55CDID4gdGhlXC1ub3J0aGVyblwtaGVtaXNwaGVyZTsKK+mbmee1nue3miA+IHVuc2hpZWxkZWRcLXR3aXN0ZWRcLXBhaXQ7CivljIXmib/liLYgPiByZXNwb25zaWJsZVwtY3Jld1wtc3lzdGVtOwor5pKt5pS+5qmfID4gcGxheWVyXC1cKGVcLmdcLlwtY2RcLXBsYXllclwpOwor5pOa57Wx6KiIID4gYWNjb3JkaW5nXC10b1wtc3RhdGlzdGljczsKK+eVmeWtuOeUnyA+IHN0dWRlbnRcLXN0dWR5aW5nXC1hYnJvYWQ7CivlpJrlubTkvoYgPiBmb3JcLXRoZVwtcGFzdFwtbWFueVwteWVhcnM7CivkuK3np4vnr4AgPiB0aGVcLW1pZFwtYXV0dW1uXC1mZXN0aXZhbDsKK+mmrOi3r+WPoyA+IGludGVyc2VjdGlvblwtXChvZlwtcm9hZHNcKTsKK+aItOe2reaWryA+IGRhdmlzXC1cKGVuZ2xpc2hcLXN1cm5hbWVcKTsKK+e0heaok+WkoiA+IGFcLWRyZWFtXC1vZlwtcmVkXC1tYW5zaW9uczsKK+mBjuS4jeWOuyA+IG1ha2VcLWxpZmVcLWRpZmZpY3VsdFwtZm9yOwor5oOF5aCx6JmVID4gc291cmNlXC1cKG9mXC1pbmZvcm1hdGlvblwpOwor6IWQ5pWX572qID4gdGhlXC1jcmltZVwtb2ZcLWNvcnJ1cHRpb247Civnmb3om4flgrMgPiB0YWxlXC1vZlwtdGhlXC13aGl0ZVwtc25ha2U7CivljYrmiJDlk4EgPiBzZW1pXC1tYW51ZmFjdHVyZWRcLWdvb2RzOwor5aWU6aCt5YWSID4gc29tZXRoaW5nXC10b1wtc3RyaXZlXC1mb3I7CivkuK3ovYnnq5kgPiBodWJcLVwobmV0d29ya1wtZXF1aXBtZW50XCk7CivpppnmuK/kurogPiBob25nXC1rb25nXC1wZXJzb25cfHBlb3BsZTsKK+aFlemBk+WPiyA+IHJlbGlnaW91c1wtaW52ZXN0aWdhdG9yOwor5Ymd5o6h5q+UID4gc3RyaXBwaW5nXC10b1wtb3JlXC1yYXRpbzsKK+ebrueahOWcsCA+IGRlc3RpbmF0aW9uXC1cKGxvY2F0aW9uXCk7CivlnIvli5npmaIgPiBzdGF0ZVwtZGVwYXJ0bWVudFwtXCh1c2FcKTsKK+WNgeS6lOWEhCA+IG9uZVwtYW5kXC1hXC1oYWxmXC1iaWxsaW9uOwor57SF54eS6IKJID4gcmVkXC1jb29rZWRcLVwocG9ya1wpXC1tZWF0Owor5YWs5a6J5bGAID4gcHVibGljXC1zZWN1cml0eVwtYnVyZWF1Owor55m855eF546HID4gaW5jaWRlbmNlXC1vZlwtYVwtZGlzZWFzZTsKK+eWkeWVj+WPpSA+IGludGVycm9nYXRpdmVcLXNlbnRhbmNlOwor5q2k5LiA5pmCID4gdGhhdFwtd2FzXC1vbmVcLXNpdHVhdGlvbjsKK+S4jeWlveaDuSA+IG5vdFwtdG9cLWJlXC10cmlmbGVkXC13aXRoOwor5LiN5b6X5beyID4gYWN0XC1hZ2FpbnN0XC1vbmUnJ3NcLXdpbGw7CivkuIrljYrlubQgPiBmaXJzdFwtaGFsZlwtXChvZlwtYVwteWVhclwpOwor5LiN6KaB6IeJID4gaGF2ZVwtbm9cLXNlbnNlXC1vZlwtc2hhbWU7Civog4zlnLDpoqggPiBiZWhpbmRcLXNvbWVib2R5JydzXC1iYWNrOwor6L+R5bm05L6GID4gZm9yXC10aGVcLXBhc3RcLWZld1wteWVhcnM7Civlhbboh6rouqsgPiBvbmUnJ3NcLW93blwtXChyZXNwZWN0aXZlXCk7CivngavnhLDlsbEgPiB0aGVcLW1vdW50YWluXC1vZlwtZmxhbWVzOwor5bel5L2c56uZID4gXChjb21wdXRlclwpXC13b3Jrc3RhdGlvbjsKK+WNsOatkOS6uiA+IGluZG9cLWV1cm9wZWFuXC1cKHBlcnNvblwpOwor5Z2m5YWL6LuKID4gdGFua1wtXChhcm1vcmVkXC12ZWhpY2xlXCk7CivkuI3lg4/mqKMgPiBpblwtbm9cLXNoYXBlXC10b1wtYmVcLXNlZW47CivororliIbms5UgPiBjYWxjdWx1c1wtb2ZcLXZhcmlhdGlvbnM7Civopb/pgYroqJggPiBwaWxncmltYWdlXC10b1wtdGhlXC13ZXN0Owor55Wi5qWt55SfID4gZ3JhZHVhdGVcLVwob2ZcLWFcLXNjaG9vbFwpOwor6IOM6buR6Y2LID4gdG9cLWJlXC1tYWRlXC1hXC1zY2FwZWdvYXQ7CivpnYjmlY/luqYgPiBcKGxldmVsXC1vZlwpXC1zZW5zaXRpdml0eTsKK+W9vOS4gOaZgiA+IHRoYXRcLXdhc1wtb25lXC1zaXR1YXRpb247Civou5/noazku7YgPiBzb2Z0d2FyZVwtYW5kXC1oYXJkd2FyZTsKK+eGsemWgOiyqCA+IGdvb2RzXC1pblwtZ3JlYXRcLWRlbWFuZDsKK+mAmuS/oemHjyA+IGNvbW11bmljYXRpb25zXC12b2x1bWU7CivnpZ3os4DoqZ4gPiBjb25ncmF0dWxhdG9yeVwtc3BlZWNoOwor5bm+5Y2B5bm0ID4gc2V2ZXJhbFwtdGVuc1wtb2ZcLXllYXJzOwor5q+U5pa56KqqID4gdG9cLW1ha2VcLWFuXC1hbmFsb2d5XC5cLlwuOwor6bql6Iq957OWID4gbWFsdG9zZVwtXChzd2VldFwtc3lydXBcKTsKK+e+juiBr+ekviA+IGFzc29jaWF0ZWRcLXByZXNzXC1cKGFwXCk7Civmjqjolqbkv6EgPiByZWNvbW1lbmRhdGlvblwtbGV0dGVyOwor5bm+5aSp5L6GID4gZm9yXC10aGVcLXBhc3RcLWZld1wtZGF5czsKK+aKleS6huelqCA+IHBhc3RcLXRlbnNlXC1vZlwtdG9cLXZvdGU7Civogq/lsLzov6ogPiBrZW5uZWR5XC1cKHByb3BlclwtbmFtZVwpOwor5L+d6K235Y2AID4gY29uc2VydmF0aW9uXC1kaXN0cmljdDsKK+Wlp+W+t+izvSA+IHRoZVwtb2R5c3NleVwsXC1ieVwtaG9tZXI7CivotorljZfoqp4gPiB2aWV0bmFtZXNlXC1cKGxhbmd1YWdlXCk7Civlm5vlubTliY0gPiBmb3VyXC15ZWFyc1wtcHJldmlvdXNseTsKK+ijvemAoOWVhiA+IG1hbnVmYWN0dXJpbmdcLWNvbXBhbnk7Civlj43pnanlkb0gPiBjb3VudGVyXC1yZXZvbHV0aW9uYXJ5Owor6ICB5YWp5Y+jID4gYW5cLW9sZFwtbWFycmllZFwtY291cGxlOwor5ouc5oqK5a2QID4gYmVjb21lXC1zd29yblwtYnJvdGhlcnM7CivljJflr5LluLYgPiB0aGVcLW5vcnRoXC1mcmlnaWRcLXpvbmU7Civlhavot6/ou40gPiB0aGVcLWVpZ2h0aFwtcm91dGVcLWFybXk7CivljZfljJfmpbUgPiBzb3V0aFwtYW5kXC1ub3J0aFwtcG9sZXM7CivokaPkuovplbcgPiBjaGFpcm1hblwtb2ZcLXRoZVwtYm9hcmQ7CivkuI3ooYzkuoYgPiBvblwtdGhlXC1wb2ludFwtb2ZcLWRlYXRoOwor5Y2h6KW/5bC8ID4gY2Fzc2luaVwtXChwcm9wZXJcLW5hbWVcKTsKK+WFieejgeeinyA+IG1hZ25ldG9cLW9wdGljYWxcLWRpc2s7CivljZropr3mnIMgPiBcKGludGVybmF0aW9uYWxcKVwtZmFpcjsKK+S4gOiIrOaApyA+IFwoaW5cKVwtZ2VuZXJhbFwtXCh0ZXJtc1wpOwor6YCL6YCD6JeqID4gcmVmdWdlXC1mb3JcLWZ1Z2l0aXZlczsKK+eZveecvOePoCA+IHRoZVwtd2hpdGVcLW9mXC10aGVcLWV5ZTsKK+aNleifsuiRiSA+IGluc2VjdFwtY2F0Y2hpbmdcLWxlYWY7CivkuI3pm4Xop4AgPiBvZmZlbnNpdmVcLXRvXC10aGVcLWV5ZTsKK+mZs+i/sOWPpSA+IGRlY2xhcmF0aXZlXC1zZW50ZW5jZTsKK+mAmeWAi+aciCA+IHRoaXNcLVwoY3VycmVudFwpXC1tb250aDsKK+S4gOa4heaXqSA+IGVhcmx5XC1pblwtdGhlXC1tb3JuaW5nOwor5YCN6aC75ZmoID4gZnJlcXVlbmN5XC1tdWx0aXBsaWVyOwor6aCY5bCO5qyKID4gbGVhZGVyc2hpcFwtYXV0aG9yaXR5Owor57SA5b+15pelID4gZGF5XC1vZlwtY29tbWVtb3JhdGlvbjsKK+eZveajiee0mSA+IHN0ZW5jaWxcLXRpc3N1ZVwtcGFwZXI7CivmjKrnqqnlhZIgPiB0b1wtbW92ZVwtXCh0b1wtYVwtaG91c2VcKTsKK+W+t+Wci+S6uiA+IGdlcm1hblwtcGVyc29uXHxwZW9wbGU7CivlpKfmuIXml6kgPiBlYXJseVwtaW5cLXRoZVwtbW9ybmluZzsKK+eZvuS6i+mAmiA+IGtub3dsZWRnZWFibGVcLXBlcnNvbjsKK+S4jeatu+W/gyA+IHVud2lsbGluZ1wtdG9cLWdpdmVcLXVwOwor56Sm5rOJ5rC0ID4gbWluZXJhbFwtc3ByaW5nXC13YXRlcjsKK+WQg+S4jeS4iyA+IG5vdFwtZmVlbFwtbGlrZVwtZWF0aW5nOwor6JCs57at57ayID4gd29ybGRcLXdpZGVcLXdlYlwtXCh3d3dcKTsKK+WvpumrlOWxpCA+IHBoeXNpY2FsXC1sYXllclwtXChvc2lcKTsKK+ePvumajuautSA+IGF0XC10aGVcLXByZXNlbnRcLXN0YWdlOwor5Y+b5ZyL572qID4gdGhlXC1jcmltZVwtb2ZcLXRyZWFzb247CivpjKbmqJnos70gPiBjaGFtcGlvbnNoaXBcLWNvbnRlc3Q7Civnq7bniK3lipsgPiBjb21wZXRpdGl2ZVwtc3RyZW5ndGg7CivpgYvli5XmnIMgPiBhXC1zcG9ydHNcLWNvbXBldGl0aW9uOwor6LeR6b6N5aWXID4gdG9cLXBsYXlcLWFcLXNtYWxsXC1yb2xlOwor5b636Zu354i+ID4gXChqdW5lXC10ZXVmZWxcKVwtZHJleWVyOwor6LKh5pS/6YOoID4gbWluaXN0cnlcLW9mXC1maW5hbmNlOwor5buj5ZGK5ZWGID4gYWR2ZXJ0aXNpbmdcLWNvbXBhbnk7CivmhbDlronlqaYgPiBjb21mb3J0XC13b21hblx8d29tZW47CivmipjlsITnjocgPiBpbmRleFwtb2ZcLXJlZnJhY3Rpb247CivlubTku6PliJ0gPiBiZWdpbm5pbmdcLW9mXC1hblwtYWdlOwor6Ziy56am5oCnID4gZGVmZW5zaXZlXC1cKHdlYXBvbnNcKTsKK+aJk+apq+eCriA+IHNwZWFrXC11bndhcnJhbnRlZGx5Owor55m86KiA5qyKID4gdGhlXC1yaWdodFwtb2ZcLXNwZWVjaDsKK+W5tOS5i+S5hSA+IHBlcmlvZFwtb2ZcLVwuXC5cLlwteWVhcnM7CivkuI3kuK3mhI8gPiBub3RcLXRvXC1vbmUnJ3NcLWxpa2luZzsKK+eZvuWIhuWItiA+IGh1bmRyZWRcLW1hcmtcLXN5c3RlbTsKK+WIhuaekOWutiA+IFwocG9saXRpY2FsXClcLWFuYWx5c3Q7Civnq4vms5XmnIMgPiBsZWdpc2xhdGl2ZVwtY291bmNpbDsKK+W8leWKm+WgtCA+IGdyYXZpdGF0aW9uYWxcLWZpZWxkOwor5raI6ICX6YePID4gcmF0ZVwtb2ZcLWNvbnN1bXB0aW9uOwor5qC46Zu756uZID4gbnVjbGVhclwtcG93ZXJcLXBsYW50Owor6KGo6Z2i5YyWID4gY29tZVwtdG9cLXRoZVwtc3VyZmFjZTsKK+mbu+ipseapnyA+IHRlbGVwaG9uZVwtZXF1aXBtZW50Owor57i957Wx5bqcID4gcHJlc2lkZW50aWFsXC1wYWxhY2U7CivmqYvmjqXlmaggPiBicmlkZ2VcLVwobmV0d29ya2luZ1wpOwor6aas5L6G5paHID4gbWFsYXNpYW5cLVwobGFuZ3VhZ2VcKTsKK+S4jeW+l+S6hiA+IGRlc3BlcmF0ZWx5XC1zZXJpb3VzOwor5p2/5qKB5qmLID4gcGxhdGVcLWdpcmRlclwtYnJpZGdlOwor5qC96Lef6aCtID4gdG9cLXN1ZmZlclwtYVwtc2V0YmFjazsKK+aguOW3peeoiyA+IG51Y2xlYXJcLWVuZ2luZWVyaW5nOwor5a6J55CG5pyDID4gdW5cLXNlY3VyaXR5XC1jb3VuY2lsOwor5pO66ZaA6Z2iID4ga2VlcFwtdXBcLWFwcGVhcmFuY2VzOwor6Lev6YCP56S+ID4gcmV1dGVyc1wtbmV3c1wtYWdlbmN5Owor56eR5a246ZmiID4gYWNhZGVteVwtb2ZcLXNjaWVuY2VzOwor5q2l6YCy5Yi2ID4gc3RlcFwtYnlcLXN0ZXBcLXN5c3RlbTsKK+WJjeiYh+iBryA+IGZvcm1lclwtc292aWV0XC11bmlvbjsKK+S4jeWcqOaEjyA+IHBheVwtbm9cLWF0dGVudGlvblwtdG87CivlpJblravlpbMgPiBkYXVnaHRlcicnc1wtZGF1Z2h0ZXI7CivlhrDphovphbggPiBnbGFjaWFsXC1hY2V0aWNcLWFjaWQ7Civmtojngo7ol6UgPiBhbnRpYmlvdGljXC1tZWRpY2luZTsKK+WnlOWToemVtyA+IGhlYWRcLW9mXC1hXC1jb21taXR0ZWU7Civmg4XloLHlsYAgPiBpbnRlbGxpZ2VuY2VcLWFnZW5jeTsKK+WMhei6q+W3pSA+IGluZGVudHVyZWRcLWxhYm91cmVyOwor5rG66K2w5qGIID4gXChwYXNzXC1hXClcLXJlc29sdXRpb247CivljJfkuqzkurogPiBwZXJzb25cLWZyb21cLWJlaWppbmc7CivosqDosqzku7sgPiByZXNwb25zaWJpbGl0eVwtZm9yOwor5Lit5bGx6KOdID4gY2hpbmVzZVwtdHVuaWNcLXN1aXQ7Civnt6znlLjoqp4gPiBidXJtZXNlXC1cKGxhbmd1YWdlXCk7CivmlL/msrvniq8gPiBwb2xpdGljYWxcLXByaXNvbmVyOwor5bm05Lul5L6GID4gc2luY2VcLXRoZVwteWVhclwtXC5cLlwuOwor5paw6I+v56S+ID4geGluaHVhXC1uZXdzXC1hZ2VuY3k7CivkuI3kuK3nlKggPiB1bmZpdFwtZm9yXC1hbnl0aGluZzsKK+mAsuS4gOatpSA+IFwob25lXC1zdGVwXClcLWZ1cnRoZXI7Civmj5DkvpvllYYgPiBwcm92aWRlclwtXChjb21wYW55XCk7Civljp/omIfoga8gPiBmb21lclwtc292aWV0XC11bmlvbjsKK+WkqeWuiemWgCA+IHRpYW5hbm1lblwtXChzcXVhcmVcKTsKK+S4jeWPl+eQhiA+IHJlamVjdFwtYVwtY29tcGxhaW50Owor55m86YGU5ZyLID4gZGV2ZWxvcGluZ1wtY291bnRyeTsKK+i3keitpuWgsSA+IHRvXC1ydW5cLWZvclwtc2hlbHRlcjsKK+eZvemWi+awtCA+IHBsYWluXC1ib2lsZWRcLXdhdGVyOwor5oub5b6F5pyDID4gXChwcmVzc1wpXC1jb25mZXJlbmNlOwor5oe35L+E5piOID4gd3lvbWluZ1wtXCh1c1wtc3RhdGVcKTsKK+WNoeaLieWlhyA+IGthcmFjaGlcLVwocGFraXN0YW5cKTsKK+WNiuimj+euoSA+IHNlbWljaXJjdWxhclwtY2FuYWw7Civppqzkvoboqp4gPiBtYWxheXNpYW5cLWxhbmd1YWdlOwor5q+U5LiN5LiKID4gY2FuJyd0XC1jb21wYXJlXC13aXRoOwor5ZyL6Ziy6YOoID4gZGVmZW5zZVwtZGVwYXJ0bWVudDsKK+i2leS4jeS4iiA+IGNhbicndFwta2VlcFwtdXBcLXdpdGg7Civmi7/kuLvmhI8gPiB0b1wtbWFrZVwtYVwtZGVjaXNpb247CivluLjlp5TmnIMgPiBzdGFuZGluZ1wtY29tbWl0dGVlOwor5aSn5a2455SfID4gdW5pdmVyc2l0eVwtc3R1ZGVudDsKK+eAj+imveWZqCA+IGJyb3dzZXJcLVwoc29mdHdhcmVcKTsKK+S4lue0gOacqyA+IGVuZFwtb2ZcLXRoZVwtY2VudHVyeTsKK+aTgeitt+iAhSA+IHN1cHBvcnRlclwtXChwZXJzb25cKTsKK+Wci+WLmeWNvyA+IHNlY3JldGFyeVwtb2ZcLXN0YXRlOwor5Y2K6Lyp5a2QID4gaGFsZlwtb2ZcLWFcLWxpZmV0aW1lOwor56uZ566h55CGID4gc3RhdGlvblwtbWFuYWdlbWVudDsKK+iKrOiYreiqniA+IGZpbm5pc2hcLVwobGFuZ3VhZ2VcKTsKK+iuiuazleWFkiA+IHRyeVwtZGlmZmVyZW50XC13YXlzOwor5rW356m66LuNID4gbmF2eVwtYW5kXC1haXJcLWZvcmNlOwor57Sw6I+M5oiwID4gYmlvbG9naWNhbFwtd2FyZmFyZTsKK+eRnuWFuOiqniA+IHN3ZWRpc2hcLVwobGFuZ3VhZ2VcKTsKK+a2ieWrjOS6uiA+IFwoY3JpbWluYWxcKVwtc3VzcGVjdDsKK+S9teaNsuapnyA+IHJpYmJvblwtbGFwXC1tYWNoaW5lOwor5Yil5YuV6ZqKID4gc3BlY2lhbFwtZGV0YWNobWVudDsKK+eglOeptuaJgCA+IHJlc2VhcmNoXC1pbnN0aXR1dGU7CivlubTovJXljJYgPiBtYWtlXC1tb3JlXC15b3V0aGZ1bDsKK+WKoOmAn+WZqCA+IGFjY2VsZXJhdG9yXC1cKGNvbXBcKTsKK+S4jeetieiZnyA+IHNpZ25cLW9mXC1pbmVxdWFsaXR5Owor6KW/5Y2K55CDID4gd2VzdGVyblwtaGVtaXNwaGVyZTsKK+aguOaKgOihkyA+IG51Y2xlYXJcLXRlY2hub2xvZ3k7CivloLHli5nlk6EgPiB0ZWxlZ3JhcGhcLW9wZXJhdG9yOwor5YWJ5rOi6ZW3ID4gb3B0aWNhbFwtd2F2ZWxlbmd0aDsKK+WWieaTpumfsyA+IGd1dHR1cmFsXC1mcmljYXRpdmU7CivlhavntJrlt6UgPiBlaWdodFwtZ3JhZGVcLXdvcmtlcjsKK+S9m+iSmeeJuSA+IHZlcm1vbnRcLVxbdXNcLXN0YXRlXF07CivnrqHnkIbnq5kgPiBtYW5hZ2VtZW50XC1zdGF0aW9uOwor6Kqq5LiN5a6aID4gY2FuJyd0XC1zYXlcLWZvclwtc3VyZTsKK+azouaWr+iqniA+IGJvc25pYW5cLVwobGFuZ3VhZ2VcKTsKK+WEmOWPr+iDvSA+IGFzXC1mYXJcLWFzXC1wb3NzaWJsZTsKK+WMheaJv+e1hCA+IFwocmVzcG9uc2libGVcKVwtY3JldzsKK+eZvuiRieeusSA+IHRoZXJtb21ldGVyXC1zY3JlZW47Civpgb/pm7flmaggPiBsaWdodG5pbmdcLWFycmVzdGVyOwor5oiw6ayl5qmfID4gZmlnaHRlclwtXChhaXJjcmFmdFwpOwor6aGv56S65ZmoID4gbW9uaXRvclwtXChjb21wdXRlclwpOwor5b+F5L+u6KqyID4gYVwtcmVxdWlyZWRcLWNvdXJzZTsKK+WDheasoeS6jiA+IHNlY29uZFwtb25seVwtdG9cLlwuXC47CivmnJ3prq7oqp4gPiBrb3JlYW5cLVwobGFuZ3VhZ2VcKTsKK+W7uueviealrSA+IGJ1aWxkaW5nXC1pbmR1c3RyeTsKK+m6peWFi+e2rSA+IFwodGltb3RoeVwpXC1tY3ZlaWdoOwor5oeJ55So5bGkID4gYXBwbGljYXRpb25cLWxheWVyOwor5qGM5Yil5p6XID4gXChjaGFybGllXClcLWNoYXBsaW47Civok4vniL7oqp4gPiBnYWVsaWNcLVwobGFuZ3VhZ2VcKTsKK+eEoeaJgOisgiA+IHRvXC1iZVwtaW5kaWZmZXJlbnQ7CivmqZ/lmajkurogPiBtZWNoYW5pY2FsXC1wZXJzb247Civlu6Pln5/ntrIgPiB3aWRlXC1hcmVhXC1uZXR3b3JrOwor57at5oyB6LK7ID4gbWFpbnRlbmFuY2VcLWNvc3RzOwor5p2/5pOm5YWSID4gYmxhY2tib2FyZFwtZXJhc2VyOwor5ZCM5oCn5oiAID4gaG9tb3NleHVhbFwtXChsb3ZlXCk7Civpm7voqbHntrIgPiB0ZWxlcGhvbmVcLW5ldHdvcms7CivmgKfpqLfmk74gPiBzZXh1YWxcLWhhcmFzc21lbnQ7CivmqavmlrfniakgPiB0cmFuc3ZlcnNlXC1vYmplY3Q7Civnmb3lsYjoj5wgPiBncmVhdGVyXC1jZWxhbmRpbmU7CivlgrPovLjnjocgPiB0cmFuc21pc3Npb25cLXJhdGU7CivkvLrmnI3lmaggPiBzZXJ2ZXJcLVwoY29tcHV0ZXJcKTsKK+acjeWLmeWZqCA+IHNlcnZlclwtXChjb21wdXRlclwpOwor5ZyL6Zqb5rOVID4gaW50ZXJuYXRpb25hbFwtbGF3Owor5L615oiq6ICFID4gXChjb21wdXRlclwpXC1oYWNrZXI7CivliJ3lrbjogIUgPiBiZWdpbm5pbmdcLXN0dWRlbnQ7Civopb/njovmr40gPiBuYW1lXC1vZlwtYVwtZ29kZGVzczsKK+WcqOmgreeJiCA+IG9uXC10aGVcLWZyb250XC1wYWdlOwor5rOi6Jit6KqeID4gcG9saXNoXC1cKGxhbmd1YWdlXCk7CivovZ/ngrjmqZ8gPiBib21iZXJcLVwoYWlyY3JhZnRcKTsKK+mGq+WtuOWutiA+IG1lZGljYWxcLXNjaWVudGlzdDsKK+iPr+ebm+mgkyA+IHdhc2hpbmd0b25cLVwoZFwuY1wuXCk7CivkuJ/po6/nopcgPiB0b1wtbG9zZVwtb25lJydzXC1qb2I7Civmr5TovIPmlrAgPiBjb21wYXJhdGl2ZWx5XC1uZXc7Civpm7vkv6HomZ8gPiBlbGVjdHJpY2FsXC1zaWduYWw7Civnp5jmm7jplbcgPiBzZWNyZXRhcnlcLWdlbmVyYWw7CivmrZDmtLLkurogPiBldXJvcGVhblwtXChwZXJzb25cKTsKK+ihm+eUn+mDqCA+IGhlYWx0aFwtZGVwYXJ0bWVudDsKK+WkquW5s+a0iyA+IHRoZVwtcGFjaWZpY1wtb2NlYW47Civljp/lm6DmmK8gPiB0aGVcLXJlYXNvblwtaXNcLVwuXC5cLjsKK+S4gOW5tOWNiiA+IGFcLXllYXJcLWFuZFwtYVwtaGFsZjsKK+S4jeeUmOW/gyA+IG5vdFwtcmVjb25jaWxlZFwtdG87CivlrqLmiLbmqZ8gPiBjbGllbnRcLVwoY29tcHV0ZXJcKTsKK+WksealreeOhyA+IHVuZW1wbG95bWVudFwtcmF0ZTsKK+itpuWvn+WxgCA+IHBvbGljZVwtZGVwYXJ0bWVudDsKK+atuOW/g+iAhSA+IHJlbGlnaW91c1wtY29udmVydDsKK+aykumXnOS/giA+IGl0XC1kb2VzbicndFwtbWF0dGVyOwor5YyF5ZyS5YWSID4gYnV5XC10aGVcLXdob2xlXC1sb3Q7CivkuIDouqvmsZcgPiBzd2VhdGluZ1wtYWxsXC1vdmVyOwor55m957Sw6IOeID4gd2hpdGVcLWJsb29kXC1jZWxsOwor5oCn6Zec5L+CID4gc2V4dWFsXC1yZWxhdGlvbnM7Civmrq/lhIDppKggPiB0aGVcLXVuZGVydGFrZXInJ3M7CivnoJToqI7mnIMgPiBkaXNjdXNzaW9uXC1mb3J1bTsKK+izh+aWmemHjyA+IHF1YW50aXR5XC1vZlwtZGF0YTsKK+e3qOi8r+WupCA+IGVkaXRvcmlhbFwtb2ZmaWNlOwor5ouJ5LiB6KqeID4gbGF0aW5cLVwobGFuZ3VhZ2VcKTsKK+mBqemFjeWxpCA+IGFkYXB0YXRpb25cLWxheWVyOwor5Ye66aKo6aCtID4gdG9cLWNyZWF0ZVwtYVwtc3RpcjsKK+i2iumHjui7iiA+IG9mZlwtcm9hZFwtdmVoaWNhbDsKK+mBqemFjeWZqCA+IGFkYXB0ZXJcLVwoZGV2aWNlXCk7Civlia/kuLvluK0gPiB2aWNlXC1jaGFpcnBlcnNvbjsKK+aNt+WFi+iqniA+IGN6ZWNoXC1cKGxhbmd1YWdlXCk7CivnrYblupXkuIsgPiBhYmlsaXR5XC10b1wtd3JpdGU7CivmoLjljp/mlpkgPiBudWNsZWFyXC1tYXRlcmlhbDsKK+eZveihgOeQgyA+IHdoaXRlXC1ibG9vZFwtY2VsbDsKK+S4jeeIreawoyA+IGJlXC1kaXNhcHBvaW50aW5nOwor5YyX5Yaw5rSLID4gdGhlXC1hcmN0aWNcLW9jZWFuOwor5Y+I5L6G5LqGID4gaGVyZVwtd2VcLWdvXC1hZ2FpbjsKK+WNgeWkmuWEhCA+IG92ZXJcLW9uZVwtYmlsbGlvbjsKK+S4gOS4i+WtkCA+IGluXC1hXC1zaG9ydFwtd2hpbGU7CivmoLjoqK3mlr0gPiBudWNsZWFyXC1mYWNpbGl0eTsKK+mdnuaUv+W6nCA+IG5vblwtZ292ZXJubWVudGFsOwor5Li75bm557eaID4gYmFja2JvbmVcLVwoY2FibGVcKTsKK+mbu+imluapnyA+IHRlbGV2aXNpb25cLVwoc2V0XCk7CivmtYHooYznl4UgPiBlcGlkZW1pY1wtZGlzZWFzZTsKK+S/oeeUqOitiSA+IGxldHRlclwtb2ZcLWNyZWRpdDsKK+WtuOihk+eVjCA+IGFjYWRlbWljXC1jaXJjbGVzOwor6KGb5pif5Z+OID4gXCJzYXRlbGxpdGVcIlwtdG93bjsKK+eahOS4gOeoriA+IGlzXC1vbmVcLVwoa2luZFwtb2ZcKTsKK+abvOW+t+aLiSA+IFwobmVsc29uXClcLW1hbmRlbGE7CivljbDlnLDoqp4gPiBoaW5kaVwtXChsYW5ndWFnZVwpOwor5bel5qWt5YyWID4gdG9cLWluZHVzdHJpYWxpemU7CivoqJjogIXmnIMgPiBwcmVzc1wtY29uZmVyZW5jZTsKK+WHuueJiOekviA+IHB1Ymxpc2hpbmdcLWhvdXNlOwor5rKW57mp5bO2ID4gb2tpbmF3YVwtXChpc2xhbmRcKTsKK+awkeS4u+m7qCA+IGRlbW9jcmF0aWNcLXBhcnR5Owor6Zu76KaW5YqHID4gdHZcLWRyYW1hXC1wcm9ncmFtOwor6Ly75bCE5rOiID4gcmFkaWF0aW9uXC1cKHdhdmVcKTsKK+WVhualreWMliA+IHRvXC1jb21tZXJjaWFsaXplOwor6Zu76IWm57ayID4gY29tcHV0ZXJcLW5ldHdvcms7Civpq5jmgKfog70gPiBoaWdoXC1wZXJmb3JtYW5jZTsKK+mWi+W5leW8jyA+IG9wZW5pbmdcLWNlcmVtb255Owor5a+m57+S55SfID4gaW50ZXJuXC1cKHN0dWRlbnRcKTsKK+Wci+izk+mkqCA+IHN0YXRlXC1ndWVzdGhvdXNlOwor5LiN6Iez5pa8ID4gY2Fubm90XC1nb1wtc29cLWZhcjsKK+eZvuWIhum7niA+IHBlcmNlbnRhZ2VcLXBvaW50Owor5Yqf6IO96ZuGID4gZnVuY3Rpb25cLWxpYnJhcnk7CivljJblrbjmiLAgPiBjaGVtaWNhbFwtd2FyZmFyZTsKK+Wkp+WkmuaVuCA+IFwoZ3JlYXRcKVwtbWFqb3JpdHk7Civoj4/omK3oqp4gPiBkdXRjaFwtXChsYW5ndWFnZVwpOwor5LiA5bm05aSaID4gbW9yZVwtdGhhblwtYVwteWVhcjsKK+WFseWSjOm7qCA+IHJlcHVibGljYW5cLXBhcnR5Owor6ISW6aC45YWSID4gYmFja1wtb2ZcLXRoZVwtbmVjazsKK+Wkp+eEoeeVjyA+IHV0dGVybHlcLWZlYXJsZXNzOwor6LaF6auY6YCfID4gdWx0cmFcLWhpZ2hcLXNwZWVkOwor5oCn5o6l6Ke4ID4gc2V4dWFsXC1lbmNvdW50ZXI7Civmi7/miYvoj5wgPiBzcGVjaWFsdHlcLVwoZGlzaFwpOwor6byg5qiZ5ZmoID4gbW91c2VcLVwoY29tcHV0ZXJcKTsKK+S6kuaTjeaApyA+IGludGVyb3BlcmFiaWxpdHk7Civlip/og73nvqQgPiBmdW5jdGlvbmFsXC1ncm91cDsKK+S4gOi8qeWtkCA+IFwoZm9yXClcLWFcLWxpZmV0aW1lOwor6auY5pWI546HID4gaGlnaFwtZWZmaWNpZW5jeTsKK+WJjeS4jeS5hSA+IG5vdFwtbG9uZ1wtYmVmb3JlOwor55Sf55Si6ZqKID4gcHJvZHVjdGlvblwtdGVhbTsKK+eUqOaItue3miA+IHN1YnNjcmliZXJcLWxpbmU7Civnvo7lnIvkurogPiBhbWVyaWNhblwtcGVyc29uOwor55yL5LiK5Y67ID4gaXRcLXdvdWxkXC1hcHBlYXI7Civlub7ljYHlhIQgPiBzZXZlcmFsXC1iaWxsaW9uOwor5LiN5b6F6KqqID4gbmVlZGxlc3NcLXRvXC1zYXk7CivlibXoqJjpjIQgPiB0b1wtc2V0XC1hXC1yZWNvcmQ7CivkuI3lkI3mlbggPiBhYnN0cmFjdFwtbnVtYmVyOwor5pW45Y2B5YSEID4gc2V2ZXJhbFwtYmlsbGlvbjsKK+e4vee2k+eQhiA+IGdlbmVyYWxcLW1hbmFnZXI7Civmlbjnmb7okKwgPiBzZXZlcmFsXC1taWxsaW9uOwor5ou86LW35L6GID4gdG9cLXB1dFwtdG9nZXRoZXI7CivnsbPnsonogokgPiByaWNlXC1mbG91clwtbWVhdDsKK+mrmOaKgOihkyA+IGhpZ2hcLXRlY2hub2xvZ3k7Civplonpn7Pnr4AgPiBjbG9zZWRcLXN5bGxhYmxlOwor6Jmb6Zu76LevID4gdmlydHVhbFwtY2lyY3VpdDsKK+W+nuWOu+W5tCA+IHNpbmNlXC1sYXN0XC15ZWFyOwor6I+y5b6L6LOTID4gdGhlXC1waGlsaXBwaW5lczsKK+acrOaXj+iqniA+IG5hdGl2ZVwtbGFuZ3VhZ2U7CivntYbohbPnn7MgPiBzdHVtYmxpbmdcLWJsb2NrOwor5oSf5p+T6ICFID4gaW5mZWN0ZWRcLXBlcnNvbjsKK+Wkmuaoo+WMliA+IGRpdmVyc2lmaWNhdGlvbjsKK+e2sueuoeWToSA+IG5ldHdvcmtcLW1hbmFnZXI7CivkuI3lubLmtokgPiBub25pbnRlcmZlcmVuY2U7CivmoLjmrabluqsgPiBudWNsZWFyXC1hcnNlbmFsOwor5Lit576O5rSyID4gY2VudHJhbFwtYW1lcmljYTsKK+WkqeS4u+aVmSA+IGNhdGhvbGljXC1jaHVyY2g7Civph5Hoo6HlpYcgPiBcKG5ld3RcKVwtZ2luZ3JpY2g7Civms6jmhI/nnIsgPiB3YXRjaFwtY2FyZWZ1bGx5Owor5YWx55Si6buoID4gY29tbXVuaXN0XC1wYXJ0eTsKK+S4jeimi+W+lyA+IG5vdFwtbmVjZXNzYXJpbHk7Civos4DlubTniYcgPiBuZXdcLXllYXInJ3NcLWNhcmQ7CivmqJnmupbljJYgPiBzdGFuZGFyZGl6YXRpb247Civkvb/mu7/mhI8gPiB0b1wtbWFrZVwtY29udGVudDsKK+S4jemPvemLvCA+IHN0YWlubGVzc1wtc3RlZWw7CivljbDluqbkurogPiBpbmRpYW5cLVwocGVyc29uXCk7CivlpafpgYvmnZEgPiBvbHltcGljXC12aWxsYWdlOwor5pqX6YGp5oeJID4gZGFya1wtYWRhcHRhdGlvbjsKK+iAgeeZvuWnkyA+IG9yZGluYXJ5XC1wZW9wbGU7CivlpKvlprvlupcgPiBmYW1pbHlcLXJ1blwtc2hvcDsKK+aVuOWtl+e2siA+IGRpZ2l0YWxcLW5ldHdvcms7CivlhZLljJbpn7sgPiByZXRyb2ZsZXhcLWZpbmFsOwor5pyJ6IGv57mrID4gdG9cLWJlXC1jb25uZWN0ZWQ7Civlr6nliKTplbcgPiBwcmVzaWRpbmdcLWp1ZGdlOwor6auY5pWI6IO9ID4gaGlnaFwtZWZmaWNpZW5jeTsKK+ebnOeJiOiAhSA+IHNvZnR3YXJlXC1waXJhdGU7CivlpKfpg6jku70gPiBcKGluXClcLWxhcmdlXC1wYXJ0Owor5Ya35rCj5qmfID4gYWlyXC1jb25kaXRpb25lcjsKK+S8iueUuOWckiA+IGdhcmRlblwtb2ZcLWVkZW47CivmiJDlk6HlnIsgPiBtZW1iZXJcLWNvdW50cnk7Civph6PprZroh7ogPiBkaWFveXVcLWlzbGFuZHM7CivopIfpn7vmr40gPiBjb21wb3VuZFwtZmluYWw7CivluYDlpKrplbcgPiBvdmVyc2l6ZVwtZnJhbWU7CivkvLTnlJ/msKMgPiBhc3NvY2lhdGVkXC1nYXM7CivniannkIblsaQgPiBwaHlzaWNhbFwtbGF5ZXI7Civoga/lkIjlnIsgPiB1bml0ZWRcLW5hdGlvbnM7Civoi7HlnIvkurogPiBicml0aXNoXC1wZXJzb247Civnmb3nhrHljJYgPiB0dXJuXC13aGl0ZVwtaG90Owor5Y2B5LiA5pyIID4gZWxldmVudGhcLW1vbnRoOwor5Y6f5a2Q5qC4ID4gYXRvbWljXC1udWNsZXVzOwor5oqK5YWE5byfID4gc3dvcm5cLWJyb3RoZXJzOwor5YyX5paX5pifID4gdGhlXC1iaWdcLWRpcHBlcjsKK+mWi+eOqeeskSA+IHRvXC1wbGF5XC1hXC1qb2tlOwor5a+p5Yik5bitID4ganVkZ2VtZW50XC1zZWF0Owor55m957KJ55eFID4gcG93ZGVyeVwtbWlsZGV3Owor6Yej6a2a5bO2ID4gZGlhb3l1XC1pc2xhbmRzOwor5Y+k5biM6IeYID4gYW5jaWVudFwtZ3JlZWNlOwor5Lit5ZyL5Lq6ID4gY2hpbmVzZVwtcGVyc29uOwor55uj552j5Lq6ID4gc3VwZXJpbnRlbmRlbnQ7CivpoIbluo/mlbggPiBvcmRpbmFsXC1udW1iZXI7Civpm7voqbHnt5ogPiB0ZWxlcGhvbmVcLWxpbmU7CivlsLHmmK/oqqogPiBpblwtb3RoZXJcLXdvcmRzOwor5pWZ6IKy55WMID4gYWNhZGVtaWNcLXdvcmxkOwor5LiN5pWi55W2ID4geW91XC1mbGF0dGVyXC1tZTsKK+WJr+e4vee1sSA+IHZpY2VcLXByZXNpZGVudDsKK+eUmuiHs+aWvCA+IHNvXC1tdWNoXC1cKHRoYXRcKTsKK+S4jeW5s+ihoSA+IGRpc2VxdWlsaWJyaXVtOwor5p2x5Y2X5LqeID4gc291dGhlYXN0XC1hc2lhOwor5o6h5pS2546HID4gcmVjb3ZlcnlcLXJhdGlvOwor6Ieq55Sx5YyWID4gbGliZXJhbGl6YXRpb247CivkuI3pgannlKggPiBub3RcLWFwcGxpY2FibGU7CivnsKHllq7ljJYgPiBzaW1wbGlmaWNhdGlvbjsKK+m5vea5luWfjiA+IHNhbHRcLWxha2VcLWNpdHk7CivooYDoo73lk4EgPiBibG9vZFwtcHJvZHVjdHM7Civlh7npnaLpj6EgPiBjb25jYXZlXC1taXJyb3I7Civplovlv4PmnpwgPiBwaXN0YWNoaW9cLW51dHM7CivkuJbnlYzoqp4gPiB3b3JsZFwtbGFuZ3VhZ2U7CivooYzmmJ/pmpsgPiBpbnRlcnBsYW5ldGFyeTsKK+S4reW/g+iqniA+IHF1YWxpZmllZFwtd29yZDsKK+WPg+isgOmVtyA+IGNoaWVmXC1vZlwtc3RhZmY7CivpjITlg4/mqZ8gPiB2aWRlb1wtcmVjb3JkZXI7CivlhYnkv6HomZ8gPiBvcHRpY2FsXC1zaWduYWw7CivmoLjmrablmaggPiBudWNsZWFyXC13ZWFwb247CivpgZTkuI3liLAgPiBjYW5ub3RcLWFjaGlldmU7CivlhYvmnpfpoJMgPiBcKGJpbGxcKVwtY2xpbnRvbjsKK+iBluiqleevgCA+IGNocmlzdG1hc1wtdGltZTsKK+eZveS7pOa1tyA+IHRoZVwtYmVyaW5nXC1zZWE7CivmkanploDntpMgPiBib29rXC1vZlwtbW9ybW9uOwor5bCL6ZaL5b+DID4gdG9cLW1ha2VcLWZ1blwtb2Y7Civniq/kuI3okZcgPiBub3RcLXdvcnRod2hpbGU7CivkuI3nlKjorJ0gPiB5b3UnJ3JlXC13ZWxjb21lOwor5Y2K6Ieq5YuVID4gc2VtaVwtYXV0b21hdGljOwor5YWn6JKZ5Y+kID4gaW5uZXJcLW1vbmdvbGlhOwor6YCA5LyR6YeRID4gcmV0aXJlbWVudFwtcGF5Owor55WZ6KiA57C/ID4gdmlzaXRvcicnc1wtYm9vazsKK+atu+S6oeeOhyA+IG1vcnRhbGl0eVwtcmF0ZTsKK+WTiOipsuabuCA+IGJvb2tcLW9mXC1oYWdnYWk7Civmk7rmlKTlrZAgPiBzZXRcLXVwXC1hXC1zdGFsbDsKK+eRnuWjq+S6uiA+IHN3aXNzXC1cKHBlcnNvblwpOwor5beu5LiN5aSaID4gYWxtb3N0XCxcLW5lYXJseTsKK+aLrOW8p+ijoSA+IGluXC1wYXJlbnRoZXNlczsKK+S/oeiZn+iHuiA+IHNpZ25hbFwtc3RhdGlvbjsKK+S4lueVjOS4iiA+IFwob2ZcLXRoZVwpXC13b3JsZDsKK+Wck+ePoOethiA+IGJhbGxcLXBvaW50XC1wZW47Civot5Hohb/lhZIgPiB0b1wtcnVuXC1lcnJhbmRzOwor5rOi54uA54axID4gdW5kdWxhbnRcLWZldmVyOwor55+l6K2Y5bqrID4ga25vd2xlZGdlXC1iYXNlOwor6Zu75L+h5bGAID4gY2VudHJhbFwtb2ZmaWNlOwor6KW/5Y2X5LqeID4gc291dGh3ZXN0XC1hc2lhOwor5pKl6Jmf55ukID4gdGVsZXBob25lXC1kaWFsOwor5b6M5YWp6ICFID4gdGhlXC1sYXR0ZXJcLXR3bzsKK+W7oOemruaLnCA+IGRheVwtb2ZmXC1cKHdvcmtcKTsKK+WFqeeZvuWEhCA+IHR3ZW50eVwtYmlsbGlvbjsKK+eEoemAo+aOpSA+IGNvbm5lY3Rpb25sZXNzOwor54yc6KyO5YWSID4gZ3Vlc3NcLWFcLXJpZGRsZTsKK+WNiuS7peS4iiA+IG1vcmVcLXRoYW5cLWhhbGY7CivkuI3lrqLmsKMgPiB5b3UnJ3JlXC13ZWxjb21lOwor576O5beu5LqLID4gYVwtdGVycmlmaWNcLWpvYjsKK+irvuiyneeIviA+IG5vYmVsXC1cKHByaXplXCk7Civkv53orYnph5EgPiBlYXJuZXN0XC1tb25leTsKK+aOm+iZn+itiSA+IHJlZ2lzdGVyXC1jYXJkOwor5Y6f5a2Q6IO9ID4gYXRvbWljXC1lbmVyZ3k7CivntIDlv7XppKggPiBtZW1vcmlhbFwtaGFsbDsKK+WWrumfu+avjSA+IHNpbXBsZVwtZmluYWxzOwor5pyJ5Y+v6IO9ID4gaXQnJ3NcLXBvc3NpYmxlOwor5pyq5o+Q5Y+KID4gbm90XC1tZW50aW9uZWQ7CivmnKznlJ/nh4ggPiBidW5zZW5cLWJ1cm5lcjsKK+W/g+iHn+eXhSA+IGhlYXJ0XC1kaXNlYXNlOwor5Y2B5LqU5bm0ID4gZmlmdGVlblwteWVhcnM7CivphKflsI/lubMgPiBkZW5nXC14aWFvcGluZzsKK+mCo+m0u+abuCA+IGJvb2tcLW9mXC1uYWh1bTsKK+e2sue1oeWxpCA+IG5ldHdvcmtcLWxheWVyOwor5a+p5Yik5qyEID4ganVkZ2VtZW50XC1iYXI7Civnmb3oirHoirEgPiBzaGluaW5nXC13aGl0ZTsKK+W7uuevieWtuCA+IGFyY2hpdGVjdHVyYWw7CivkuK3lnIvlvI8gPiBjaGluZXNlXC1zdHlsZTsKK+WNiuWksealrSA+IHNlbWlcLWVtcGxveWVkOwor6KGo5rG65qyKID4gcmlnaHRcLXRvXC12b3RlOwor56m66ZaT56uZID4gc3BhY2VcLXN0YXRpb247CivlpKflhazlj7ggPiBsYXJnZVwtY29tcGFueTsKK+Wkp+WuuemHjyA+IGhpZ2hcLWNhcGFjaXR5Owor5qWK55m+57+wID4gYnJpZ2hhbVwteW91bmc7CivlpKfllY/poYwgPiBncmVhdFwtcHJvYmxlbTsKK+WFieWKn+eOhyA+IG9wdGljYWxcLXBvd2VyOwor5qyK5aiB5oCnID4gYXV0aG9yaXRhdGl2ZTsKK+Wls+aci+WPiyA+IGZlbWFsZVwtZnJpZW5kOwor5LiN5ZGo5bu2ID4gdW5kaXN0cmlidXRlZDsKK+aRgemHpuWFkiA+IHNuYXBcLWZhc3RlbmVyOwor55m955qu5p2+ID4gbGFjZWJhcmtcLXBpbmU7CivlrZjlhLLlmaggPiBtZW1vcnlcLVwodW5pdFwpOwor5b2M6L+m5pu4ID4gYm9va1wtb2ZcLW1pY2FoOwor54++5Luj5YyWID4gbW9kZXJuaXphdGlvbjsKK+S4u+emseaWhyA+IGxvcmQnJ3NcLXByYXllcjsKK+WlveW5vuW5tCA+IHNldmVyYWxcLXllYXJzOwor5ZSu56Wo6JmVID4gdGlja2V0XC1vZmZpY2U7Civlha3pu57ljYogPiBoYWxmXC1wYXN0XC1zaXg7CivnhKHmhI/orZggPiB1bmNvbnNjaW91c2x5Owor5o6o5YuV5YqbID4gZHJpdmluZ1wtZm9yY2U7Civpgb/poqjomZUgPiBsZWVcLFwtd2luZHN0b3A7Civkvb/nlKjph48gPiB2b2x1bWVcLW9mXC11c2U7CivljYrlsI7pq5QgPiBzZW1pY29uZHVjdG9yOwor6aeB5q685qeNID4gbWF1c2VyXC1waXN0b2w7CivkuI3mlrnkvr8gPiBpbmNvbnZlbmllbmNlOwor5rKS57aT6amXID4gaW5leHBlcmllbmNlZDsKK+S4u+aXpeWtuCA+IHN1bmRheVwtc2Nob29sOwor5pyJ5Yqp5LqOID4gY29udHJpYnV0ZVwtdG87CivmnInmrIrlqIEgPiBhdXRob3JpdGF0aXZlOwor5LiJ5Y2B5YSEID4gdGhyZWVcLWJpbGxpb247CivkuI3lh43muK8gPiBpY2VcLWZyZWVcLXBvcnQ7CivmraXoqbHmqZ8gPiB3YWxraWVcLXRhbGtpZTsKK+mbhue3muWZqCA+IGh1YlwtXChuZXR3b3JrXCk7CivkuI3oiJLpgakgPiB1bmNvbWZvcnRhYmxlOwor5YWp5Y2D5bm0ID4gdGhlXC15ZWFyXC0yMDAwOwor5qiZ5pys6J+yID4gc3BpZGVyXC1iZWV0bGU7CivpgLLlh7rlj6MgPiBpbXBvcnRcfGV4cG9ydDsKK+WQkeilv+WNlyA+IHNvdXRod2VzdHdhcmQ7CivllK7npajlk6EgPiB0aWNrZXRcLXNlbGxlcjsKK+WUruelqOWPoyA+IHRpY2tldFwtd2luZG93Owor5a6J5a6a5YyWID4gc3RhYmlsaXphdGlvbjsKK+S6pOaPm+erryA+IHN3aXRjaGVkXC1wb3J0Owor5LiN55u45bmyID4gYmVcLWlycmVsZXZhbnQ7CivlpKnmm4nlvpcgPiBoZWF2ZW5cLWtub3dzXCE7CivloLHoqbHmqZ8gPiB3YWxraWVcLXRhbGtpZTsKK+WQjOebn+WciyA+IGNvbmZlZGVyYXRpb247CivlpafpgYvmnIMgPiBvbHltcGljXC1nYW1lczsKK+WcqOacquS+hiA+IGluXC10aGVcLWZ1dHVyZTsKK+WNl+e+jua0siA+IHNvdXRoXC1hbWVyaWNhOwor5LiD55m+6JCsID4gc2V2ZW5cLW1pbGxpb247CivmnInoia/lv4MgPiBjb25zY2llbnRpb3VzOwor6by76aO85rOVID4gbmFzYWxcLWZlZWRpbmc7CivntITmi7/mm7ggPiBib29rXC1vZlwtam9uYWg7CivmraXooYzon7IgPiBncm91bmRcLWJlZXRsZTsKK+S+v+atpei1sCA+IG1hcmNoXC1hdFwtZWFzZTsKK+mAo+aOpeiHsyA+IHRvXC1jb25uZWN0XC10bzsKK+mztuWwvuiKsSA+IGlyaXNcLVwoZmxvd2VyXCk7CivljYrlrpjmlrkgPiBzZW1pXC1vZmZpY2lhbDsKK+WFvOWuueaApyA+IGNvbXBhdGliaWxpdHk7Civop6Plo5PnuK4gPiB0b1wtZGVjb21wcmVzczsKK+aOoeajieapnyA+IGNvdHRvblwtcGlja2VyOwor6Iqt6JWJ5omHID4gcGFsbVwtbGVhZlwtZmFuOwor5YWs5YWD5YmNID4gYmVmb3JlXC1jaHJpc3Q7Civms6Lnvo7luqYgPiBiYXVtZVwtZGVncmVlczsKK+WNiuW+qeizvSA+IGVpZ2h0aFwtZmluYWxzOwor6YKK55WM57eaID4gYm91bmRhcnlcLWxpbmU7CivljJfnvo7mtLIgPiBub3J0aFwtYW1lcmljYTsKK+aguOiDvea6kCA+IG51Y2xlYXJcLXBvd2VyOwor5pSv5oyB546HID4gc3VwcG9ydFwtbGV2ZWw7CivoqabkuIDoqaYgPiB0b1wtaGF2ZVwtYVwtdHJ5Owor6LaK5L6G6LaKID4gbW9yZVwtYW5kXC1tb3JlOwor5LiL6Iez5LiKID4gYm90dG9tXC10b1wtdG9wOwor5om+5LiN5YiwID4gY291bGRuJyd0XC1maW5kOwor5b6I6YG65oa+ID4gdW5mb3J0dW5hdGVseTsKK+iQrOS6i+mBlCA+IG1hc3RlclwoY2FyZFwpOwor57SE54+l5pu4ID4gYm9va1wtb2ZcLWpvZWw7Civos6DlhJ/ph5EgPiBjb21wZW5zYXRpb247CivnpLrlqIHogIUgPiBkZW1vbnN0cmF0b3I7Civmr5vkuLvluK0gPiBjaGFpcm1hblwtbWFvOwor5bu656+J54mpID4gXChhXClcLWJ1aWxkaW5nOwor6Zax6Ka95a6kID4gcmVhZGluZ1wtcm9vbTsKK+S4jeWQjeitvSA+IGRpc3JlcHV0YWJsZTsKK+apn+aisOeivCA+IG1hY2hpbmVcLWNvZGU7CivkuI3miJDlip8gPiB1bnN1Y2Nlc3NmdWw7CivmsLTmu7jlgrMgPiB3YXRlclwtbWFyZ2luOwor5LiN6YeN6KaWID4gaW5kaWZmZXJlbmNlOwor5Y2B5Lmd5q2yID4gMTlcLXllYXJzXC1vbGQ7CivljYrmlofnm7IgPiBzZW1pbGl0ZXJhdGU7CivkuJnng6/phbggPiBhY3J5bGljXC1hY2lkOwor5Y2K54af57e0ID4gc2VtaVwtc2tpbGxlZDsKK+WQg+S4jemWiyA+IGJlXC11bnBvcHVsYXI7CivkuI3lkIjnkIYgPiB1bnJlYXNvbmFibGU7CivkuI3mhInlv6sgPiBkaXNhZ3JlZWFibGU7CivppIrpm57loLQgPiBjaGlja2VuXC1mYXJtOwor6Iad5LiK5Z6LID4gbGFwdG9wXC1cKGFkalwpOwor5a+m6Zqb5oCnID4gcHJhY3RpY2FsaXR5Owor5Y2B5LiA5bm0ID4gZWxldmVuXC15ZWFyczsKK+ebuOS8vOaApyA+IHJlc3NlbWJsYW5jZTsKK+mdnuWQjOatpSA+IGFzeW5jaHJvbm91czsKK+WCs+mBk+abuCA+IGVjY2xlc2lhc3RlczsKK+eZvOiogOS6uiA+IHNwb2tlc3BlcnNvbjsKK+mbhuS4reWZqCA+IGNvbmNlbnRyYXRvcjsKK+aEn+WYhuipniA+IGludGVyamVjdGlvbjsKK+i2s+eQg+i/tyA+IGZvb3RiYWxsXC1mYW47CivpgqPmqKPnmoQgPiB0aGF0XC1raW5kXC1vZjsKK+WNiumCiuWkqSA+IGhhbGZcLXRoZVwtc2t5Owor6JGh6JCE6YWSID4gXChncmFwZVwpXC13aW5lOwor6L6y5L2c54mpID4gXChmYXJtXClcLWNyb3BzOwor5Zub5Y2B5aSaID4gbW9yZVwtdGhhblwtNDA7CivorYnlr6bnpq4gPiBjb25maXJtYXRpb247CivlrofoiKrlsYAgPiBzcGFjZVwtYWdlbmN5Owor5Y675ZyL5aSWID4gdG9cLWdvXC1hYnJvYWQ7CivnrKzkuozkvY0gPiBzZWNvbmRcLXBsYWNlOwor5ZCM5pmC5LujID4gY29udGVtcG9yYXJ5Owor5Ymv57i955CGID4gdmljZVwtcHJlbWllcjsKK+i3r+W+l+iomCA+IGJvb2tcLW9mXC1ydXRoOwor5aSa5bel5YyWID4gdG9cLW11bHRpcGxleDsKK+S4ieWQiOS4gCA+IHRocmVlXC1pblwtb25lOwor5Zub55m+6JCsID4gZm91clwtbWlsbGlvbjsKK+mrmOizqumHjyA+IGhpZ2hcLXF1YWxpdHk7CivlpKLmuLjnl4cgPiB0b1wtc2xlZXB3YWxrOwor5LiN57WQ55ufID4gbm9uYWxpZ25tZW50Owor5YWr57Sa6aKoID4gZm9yY2VcLThcLXdpbmQ7CivlubzlhZLlnJIgPiBraW5kZXJnYXJ0ZW47CivmoZTlrZDmsLQgPiBvcmFuZ2VcLWp1aWNlOwor5Ym16YCg5oCnID4gY3JlYXRpdmVuZXNzOwor56CU56m26ICFID4gaW52ZXN0aWdhdG9yOwor5ZGo57i955CGID4gcHJlbWllclwtemhvdTsKK+Wft+aUv+m7qCA+IHJ1bGluZ1wtcGFydHk7Civmr43opqrnr4AgPiBtb3RoZXInJ3NcLWRheTsKK+S4gOS4i+WFkiA+IGFcLWxpdHRsZVwtYml0Owor5LiN5YOP6KmxID4gdW5yZWFzb25hYmxlOwor6KSH6KO95ZOBID4gcmVwcm9kdWN0aW9uOwor5Y+45rOV5qyKID4ganVyaXNkaWN0aW9uOwor5L2U5L6/5a6cID4gYWR2ZW50YWdlb3VzOwor6by75Lit6ZqUID4gbmFzYWxcLXNlcHR1bTsKK+aWsOiBnuiZlSA+IG5ld3NcLXNlcnZpY2U7CivpgYvli5XpnosgPiBzcG9ydHNcLXNob2VzOwor5qC46L2f54K4ID4gbnVjbGVhclwtYm9tYjsKK+i9ieizrOWNoSA+IGFcLWRlYml0XC1jYXJkOwor6Z2i5bCN6Z2iID4gZmFjZVwtdG9cLWZhY2U7CivopIflr6vntJkgPiBjYXJib25cLXBhcGVyOwor5LiN55u45a65ID4gaW5jb21wYXRpYmxlOwor5omT5a2U5ZmoID4gaG9sZVwtcHVuY2hlcjsKK+S7gOm6vOaYryA+IHdoYXRcLWlzXC1cLlwuXC5cPzsKK+WHuemAj+mPoSA+IGNvbmNhdmVcLWxlbnM7Civlj6TnvoXppqwgPiBhbmNpZW50XC1yb21lOwor5LqM5Y2B6JCsID4gMjAwXC10aG91c2FuZDsKK+W5tOi8leS6uiA+IHlvdW5nXC1wZW9wbGU7CivkuZLkuZPnkIMgPiB0YWJsZVwtdGVubmlzOwor6ZqO57Sa5byPID4gaGllcmFyY2hpY2FsOwor6IG96Kqq6YGOID4gdG9cLWhlYXJcLXNhaWQ7Civpl4zlsL7ngo4gPiBhcHBlbmRpY2l0aXM7CivlpKfkuIDkupsgPiBhXC1iaXRcLWJpZ2dlcjsKK+eUn+eJqeaIsCA+IGdlcm1cLXdhcmZhcmU7Civlu7roqK3mgKcgPiBjb25zdHJ1Y3RpdmU7CivllonloZ7pn7MgPiBnbG90dGFsXC1zdG9wOwor5aSn6YO95pyDID4gbWV0cm9wb2xpdGFuOwor5pyA5L2O6bueID4gbG93ZXN0XC1wb2ludDsKK+Wfuuedo+aVmSA+IGNocmlzdGlhbml0eTsKK+WuieecoOmFriA+IG1ldGhhcXVhbG9uZTsKK+ippumpl+aApyA+IGV4cGVyaW1lbnRhbDsKK+iytOaXj+WMliA+IGFyaXN0b2NyYXRpYzsKK+S6lOeZvuiQrCA+IGZpdmVcLW1pbGxpb247CivlhrDmtLLnn7MgPiBpY2VsYW5kXC1zcGFyOwor5qC46LuN5YKZID4gbnVjbGVhclwtYXJtczsKK+mAn+iomOWToSA+IHN0ZW5vZ3JhcGhlcjsKK+eZveawtOazpSA+IHdoaXRlXC1jZW1lbnQ7CivosaHogbLoqZ4gPiBvbm9tYXRvcG9laWE7CivluYDmoLzlvI8gPiBmcmFtZVwtZm9ybWF0Owor6KGb55Sf57SZID4gdG9pbGV0XC1wYXBlcjsKK+eVtuaZgueahCA+IG9mXC10aGF0XC10aW1lOwor5raI6Ziy5qCTID4gZmlyZVwtaHlkcmFudDsKK+mAj+aYjuW6piA+IHRyYW5zcGFyZW5jeTsKK+Wjk+WAkuaApyA+IG92ZXJ3aGVsbWluZzsKK+S6jOWNgeS4gyA+IHR3ZW50eVwtc2V2ZW47CivlpKfopo/mqKEgPiBsYXJnZVwtc2NhbGU7Civluqbph4/ooaEgPiBtZWFzdXJlbWVudDsKK+iIquepuuihkyA+IGFlcm9uYXV0aWNzOwor6Kiq5ZWP6ICFID4gaW50ZXJ2aWV3ZXI7Civlpb3mnIvlj4sgPiBnb29kXC1mcmllbmQ7Civlm5vpnaLpq5QgPiB0ZXRyYWhlZHJvbjsKK+aLlOmHmOmMmCA+IGNsYXdcLWhhbW1lcjsKK+eUs+WRveiomCA+IGRldXRlcm9ub215Owor5omN5aSW5rWBID4gYnJhaW5cLWRyYWluOwor5Ym15L2c5YqbID4gb3JpZ2luYWxpdHk7Civnmb3nn67mmJ8gPiB3aGl0ZVwtZHdhcmY7CivkuI3otIrmiJAgPiBkaXNhcHByb3ZhbDsKK+WNiuaciOWIiiA+IHNlbWltb250aGx5Owor5YKZ55So55KwID4gYmFja3VwXC1yaW5nOwor5ru0562U6IGyID4gdGlja1wtXCh0b2NrXCk7CivmuqvluqboqIggPiB0aGVybW9ncmFwaDsKK+S4jemHjeimgSA+IHVuaW1wb3J0YW50Owor5pyJ5b2x6Z+/ID4gaW5mbHVlbnRpYWw7Civnmbzpm7vlu6AgPiBwb3dlclwtcGxhbnQ7Civmn4/mnpfniYYgPiBiZXJsaW5cLXdhbGw7Civlt6Hpgo/oiYcgPiBwYXRyb2xcLWJvYXQ7CivkuI3lkKvns4ogPiB1bmFtYmlndW91czsKK+acrOWcn+WMliA+IHRvXC1sb2NhbGl6ZTsKK+WuieWFqOeHiCA+IHNhZmV0eVwtbGFtcDsKK+acieaEj+aAnSA+IGludGVyZXN0aW5nOwor56qX546755KDID4gd2luZG93XC1wYW5lOwor5paw6KW/6JitID4gbmV3XC16ZWFsYW5kOwor5pWX6KGA55eHID4gc2VwdGljYWVtaWE7CivliIbkvYjlvI8gPiBkaXN0cnVidXRlZDsKK+acieS6m+S6uiA+IHNvbWVcLXBlb3BsZTsKK+S4jeWQkOawoyA+IHVuYXNwaXJhdGVkOwor5pyJ57aT6amXID4gZXhwZXJpZW5jZWQ7CivnlLfmnIvlj4sgPiBtYWxlXC1mcmllbmQ7Civnmb3nmq7mm7ggPiB3aGl0ZVwtcGFwZXI7Civnv7vora/ogIUgPiBpbnRlcnByZXRlcjsKK+S4jeazqOaEjyA+IHRob3VnaHRsZXNzOwor5L+d5LiN5L2PID4gbW9zdFwtbGlrZWx5Owor5be05ZOI6aasID4gdGhlXC1iYWhhbWFzOwor55m86YCB5ZmoID4gdHJhbnNtaXR0ZXI7CivnrKzkuIDnq6AgPiBjaGFwdGVyXC1vbmU7CivpgKPnkrDlnJYgPiBjb21pY1wtc3RyaXA7CivlnKjlnLDkuIsgPiB1bmRlcmdyb3VuZDsKK+WCs+ecn+apnyA+IGZheFwtbWFjaGluZTsKK+ijneeUsui7iiA+IGFybW9yZWRcLWNhcjsKK+eNsuebiuiAhSA+IGJlbmVmaWNpYXJ5Owor5Y2K6YCP5piOID4gdHJhbnNsdWNlbnQ7CivnrKzkuIDmtYEgPiBmaXJzdFwtY2xhc3M7CivorIDmrrrmoYggPiBtdXJkZXJcLWNhc2U7CivnjY7lrbjph5EgPiBzY2hvbGFyc2hpcDsKK+S4jeWLleeUoiA+IHJlYWxcLWVzdGF0ZTsKK+WVn+ekuumMhCA+IHJldmVsYXRpb25zOwor56ys5LiJ5pa5ID4gdGhpcmRcLXBhcnR5Owor6KGo6JKZ5a2QID4gd2F0Y2hcLWdsYXNzOwor5pO65p625a2QID4gcHV0XC1vblwtYWlyczsKK+S4jeeiuuWumiA+IHVuY2VydGFpbnR5Owor5Y+k5YW45rS+ID4gY2xhc3NpY2lzdHM7Civlj6/ooYzmgKcgPiBmZWFzaWJpbGl0eTsKK+WQiOazleWMliA+IHRvXC1sZWdhbGl6ZTsKK+aOoueFp+eHiCA+IHNlYXJjaGxpZ2h0Owor5a6J5a+n54mHID4gbWVwcm9iYW1hdGU7CivmmK/kuI3mmK8gPiBpc1wtb3JcLWlzbicndDsKK+WkmuW3peWZqCA+IG11bHRpcGxleGVyOwor5Yue5YuV5YqbID4gbGFib3JcLWZvcmNlOwor6Kqe6KiA5a24ID4gbGluZ3Vpc3RpY3M7CivlubjpgYvlhZIgPiBhXC1sdWNreVwtZ3V5Owor5pys6LOq5LiKID4gZXNzZW50aWFsbHk7CivlnLDkuIvmsLQgPiBncm91bmR3YXRlcjsKK+eUs+iri+abuCA+IGFwcGxpY2F0aW9uOwor5pWZ6IKy5oCnID4gaW5zdHJ1Y3RpdmU7Civnubzmib/mrIogPiBpbmhlcml0YW5jZTsKK+ijveeJh+S6uiA+IG1vdmllbWFraW5nOwor5LiN6KaB57eKID4gdW5pbXBvcnRhbnQ7CivmlZflrrblrZAgPiBzcGVuZHRocmlmdDsKK+WxgOmZkOaApyA+IGxpbWl0YXRpb25zOwor5ZSu6LKo5ZOhID4gc2FsZXNwZXJzb247Civlj6/lsIrmlawgPiByZXNwZWN0YWJsZTsKK+mdnuaVuOWtlyA+IG5vblwtbnVtZXJpYzsKK+eIhuexs+iKsSA+IHB1ZmZlZFwtcmljZTsKK+S4ieWNgeWkqSA+IHRoaXJ0eVwtZGF5czsKK+iMheWxi+mggiA+IHRoYXRjaFwtcm9vZjsKK+S4ieWNgeWbmyA+IHRoaXJ0eVwtZm91cjsKK+S4jemAgeawoyA+IHVuYXNwaXJhdGVkOwor5oCn5Ly05L62ID4gc2V4XC1wYXJ0bmVyOwor5Lmz55m96ImyID4gbWlsa3lcLXdoaXRlOwor5q665Lq65qGIID4gbXVyZGVyXC1jYXNlOwor6JOL54S25oCnID4gcHJvYmFiaWxpdHk7Civlj6/og73mgKcgPiBwb3NzaWJpbGl0eTsKK+aIv+WcsOeUoiA+IHJlYWxcLWVzdGF0ZTsKK+eZu+WxseWutiA+IG1vdW50YWluZWVyOwor5ZOy5a245a62ID4gcGhpbG9zb3BoZXI7CivliIbmlaPlvI8gPiBkaXN0cmlidXRlZDsKK+ezu+WIl+eJhyA+IGZpbG1cLXNlcmllczsKK+mYv+WvjOaxlyA+IGFmZ2hhbmlzdGFuOwor5rSb5p2J56OvID4gbG9zXC1hbmdlbGVzOwor6Zmw5ra86JmVID4gc2hhZHlcLXBsYWNlOwor5Ly457iu5oCnID4gZmxleGliaWxpdHk7CivplonlhYPpn7MgPiBjbG9zZVwtdm93ZWw7CivmnIDlpKfljJYgPiB0b1wtbWF4aW1pemU7CivnrKzljYHkuIMgPiBzZXZlbnRlZW50aDsKK+WTsuWtuOS4iiA+IHBoaWxvc29waGljOwor5ZCm5pyJ5pWIID4gaW5lZmZpY2llbnQ7CivljJfmnJ3prq4gPiBub3J0aFwta29yZWE7CivpnYjmtLvmgKcgPiBmbGV4aWJpbGl0eTsKK+S9v+S/oeacjSA+IHRvXC1jb252aW5jZTsKK+WPo+mmmeezliA+IGNoZXdpbmdcLWd1bTsKK+ilv+S5g+WxsSA+IG1vdW50XC1zaW5haTsKK+mHkeWxrOadvyA+IG1ldGFsXC1wbGF0ZTsKK+S4jeWBmuiBsiA+IGtlZXBcLXNpbGVudDsKK+WFqeeZvuiQrCA+IHR3b1wtbWlsbGlvbjsKK+S/rueQhuW7oCA+IHJlcGFpclwtc2hvcDsKK+apn+WLleaApyA+IGZsZXhpYmlsaXR5Owor5aKe6ZW3546HID4gZ3Jvd3RoXC1yYXRlOwor5LuL57O76KmeID4gcHJlcG9zaXRpb247CivkuLvmqZ/mnb8gPiBtb3RoZXJib2FyZDsKK+S7luWAkemDvSA+IGFsbFwtb2ZcLXRoZW07CivpoZ7kvLzpu54gPiByZXNlbWJsYW5jZTsKK+mbmeS6uuaIvyA+IGRvdWJsZVwtcm9vbTsKK+e+juihk+mkqCA+IGFydFwtZ2FsbGVyeTsKK+mAo+aOpeipniA+IGNvbmp1bmN0aW9uOwor57SE5Lyv6KiYID4gYm9va1wtb2ZcLWpvYjsKK+aCsuWWnOWKhyA+IHRyYWdpY29tZWR5Owor6Luf56OB56KfID4gZmxvcHB5XC1kaXNrOwor5Y2K5bCB5bu6ID4gc2VtaVwtZmV1ZGFsOwor5a+m6LOq5oCnID4gc3Vic3RhbnRpdmU7Civou5/no4Hnm6QgPiBmbG9wcHlcLWRpc2s7Civororlo5PlmaggPiB0cmFuc2Zvcm1lcjsKK+iYi+aenOaxgSA+IGFwcGxlXC1qdWljZTsKK+aal+iomOWFkiA+IHNlY3JldFwtbWFyazsKK+mFjemAgeiAhSA+IGRpc3RyaWJ1dG9yOwor6YeR6YqA6IqxID4gaG9uZXlzdWNrbGU7CivlhYPogIHpmaIgPiB1cHBlclwtaG91c2U7Civlj6/mg7Plg48gPiBjb25jZWl2YWJsZTsKK+itieaYjuabuCA+IGNlcnRpZmljYXRlOwor5L+h55So5Y2hID4gY3JlZGl0XC1jYXJkOwor5aWz566h5a62ID4gaG91c2VrZWVwZXI7Civlt6XnqIvlrbggPiBlbmdpbmVlcmluZzsKK+acieWus+eahCA+IGRlc3RydWN0aXZlOwor5aSp54S25rCjID4gbmF0dXJhbFwtZ2FzOwor5L6b6KGA6ICFID4gYmxvb2RcLWRvbm9yOwor54ef6aSK5ZOBID4gbm91cmlzaG1lbnQ7Civpganmh4nmgKcgPiBzdWl0YWJpbGl0eTsKK+WkqeaWh+WPsCA+IG9ic2VydmF0b3J5Owor6ZG/55+z5aC0ID4gcm9ja1wtcXVhcnJ5Owor5bCP5rG96LuKID4gY29tcGFjdFwtY2FyOwor6J6657Wy5YiAID4gc2NyZXdkcml2ZXI7Civlia/kvZznlKggPiBzaWRlXC1lZmZlY3Q7CivkuozljYHlhIQgPiB0d29cLWJpbGxpb247Civnp7vmpI3mgKcgPiBwb3J0YWJpbGl0eTsKK+S6jOWNgeS6lCA+IHR3ZW50eVwtZml2ZTsKK+aykuWVj+mhjCA+IG5vXC1wcm9ibGVtOwor56ys5LqU6aGeID4gY2F0ZWdvcnlcLTU7CivpnZ7lrpjmlrkgPiB1bm9mZmljaWFsOwor5ZyL5rCR6buoID4ga3VvbWludGFuZzsKK+eZveiJsumrlCA+IGxldWNvcGxhc3Q7CivkuI3ogJDnhakgPiBpbXBhdGllbmNlOwor55m+5YiG546HID4gcGVyY2VudGFnZTsKK+S7pOeJjOeSsCA+IHRva2VuXC1yaW5nOwor6Ieq55m95pu4ID4gY29uZmVzc2lvbjsKK+WxleimveacgyA+IGV4aGliaXRpb247Civpq5jpgJ/njocgPiBoaWdoXC1zcGVlZDsKK+Wkp+WfjuW4giA+IG1ham9yXC1jaXR5Owor5Zas5rK75pWmID4gZ2VvcmdldG93bjsKK+eZvuWIhuavlCA+IHBlcmNlbnRhZ2U7CivlgrPpgZPogIUgPiBtaXNzaW9uYXJ5Owor5LiN5Y+v6IO9ID4gaW1wb3NzaWJsZTsKK+mMhOmfs+W4tiA+IGF1ZGlvXC10YXBlOwor6Yyr5a6J5bGxID4gbW91bnRcLXppb247Civnoazno4Hnm6QgPiBoYXJkXC1kcml2ZTsKK+eZvuWIhuaVuCA+IHBlcmNlbnRhZ2U7Civmrbflj7LkuIogPiBoaXN0b3JpY2FsOwor6KiY5biz5ZOhID4gYm9va2tlZXBlcjsKK+S9v+WkseacmyA+IGRpc2FwcG9pbnQ7Civmib/ljIXkurogPiBjb250cmFjdG9yOwor54mp6LOq5LiKID4gbWF0ZXJpYWxseTsKK+WNiuWFrOmWiyA+IHNlbWlcLW92ZXJ0Owor5L2/5YWN6ZmkID4gZ2V0XC1yaWRcLW9mOwor5pu06KGj5a6kID4gY2hhbmdlcm9vbTsKK+i2heWqkumrlCA+IGh5cGVybWVkaWE7CivkuI3mmI7norogPiBpbmRlZmluaXRlOwor5LiN5pmv5rCjID4gZGVwcmVzc2lvbjsKK+izh+acrOWutiA+IGNhcGl0YWxpc3Q7CivkuozmiYvosqggPiBzZWNvbmRoYW5kOwor5YKz5pWZ5aOrID4gbWlzc2lvbmFyeTsKK+aYk+aOpei/kSA+IGFjY2Vzc2libGU7Civmg7Plg4/lipsgPiBjb25jZXB0aW9uOwor5pyJ5rG65b+DID4gZGV0ZXJtaW5lZDsKK+aphOasluaouSA+IG9saXZlXC10cmVlOwor54it6KuW6bueID4gY29udGVudGlvbjsKK+ikh+mbnOaApyA+IGNvbXBsZXhpdHk7CivlpbbniZvloLQgPiBkYWlyeVwtZmFybTsKK+Wtl+evgOaVuCA+IGJ5dGVcLWNvdW50Owor5Ye655Sf5ZywID4gYmlydGhwbGFjZTsKK+S4jeS4i+S6jiA+IGFzXC1tYW55XC1hczsKK+Wkp+WqkumrlCA+IG1hY3JvbWVkaWE7Civlgpnlv5jpjIQgPiBtZW1vcmFuZHVtOwor5oyo5YCL5YWSID4gb25lXC1ieVwtb25lOwor5YWE5byf5pyDID4gZnJhdGVybml0eTsKK+eVmeiBsuapnyA+IGdyYW1vcGhvbmU7Civpu5HojpPlrZAgPiBibGFja2JlcnJ5Owor57Wx6KiI5a24ID4gc3RhdGlzdGljczsKK+WcqOS4i+mdoiA+IHVuZGVybmVhdGg7CivkuI3ororljJYgPiBpbnZhcmlhYmx5Owor6ZmM55Sf5Lq6ID4gYVwtc3RyYW5nZXI7CivkuI3pgannlbYgPiBpbmFkZXF1YXRlOwor6Zu76KaW6Ie6ID4gdHZcLXN0YXRpb247CivkuLvlipvoiaYgPiBiYXR0bGVzaGlwOwor6KGM5LiN6YCaID4gd29uJyd0XC13b3JrOwor56u254it6ICFID4gY29tcGV0aXRvcjsKK+acieezu+e1sSA+IHN5c3RlbWF0aWM7Civnn63mmYLplpMgPiBzaG9ydFwtdGVybTsKK+aykuS6uuS9jyA+IHVub2NjdXBpZWQ7Civli5XnianlrbggPiB6b29sb2dpY2FsOwor55un5qOu5aChID4gbHV4ZW1ib3VyZzsKK+esrOS4g+WNgSA+IHNldmVudGlldGg7CivlhrDlh53lmaggPiBjcnlvcGhvcnVzOwor5b+D55CG5a24ID4gcHN5Y2hvbG9neTsKK+awo+WWmOWWmCA+IGJyZWF0aGxlc3M7CivnrKzkuIDkvosgPiBmaXJzdFwtY2FzZTsKK+aRqeWkqeaRnyA+IHNreXNjcmFwZXI7CivkuI3pgI/msLQgPiB3YXRlcnByb29mOwor5b6X5LiN5YiwID4gY2Fubm90XC1nZXQ7Civph43opoHmgKcgPiBpbXBvcnRhbmNlOwor5oqA6KGT5ZOhID4gdGVjaG5pY2lhbjsKK+mdnuato+W8jyA+IHVub2ZmaWNpYWw7CivlkajmgankvoYgPiB6aG91XC1lbmxhaTsKK+acieiIiOi2oyA+IGludGVyZXN0ZWQ7CivkuI3ntpPmhI8gPiBjYXJlbGVzc2x5Owor5omT5a2X5qmfID4gdHlwZXdyaXRlcjsKK+WAjeWinuWZqCA+IG11bHRpcGxpZXI7Civph5Hlsaznt5ogPiBtZXRhbFwtd2lyZTsKK+acieiGvemHjyA+IGNvdXJhZ2VvdXM7CivorZjliKXomZ8gPiBpZGVudGlmaWVyOwor55Sf5pyJ5qyKID4gYmlydGhyaWdodDsKK+aMgeWNoeS6uiA+IGNhcmRob2xkZXI7CivliLrnuaHlk4EgPiBlbWJyb2lkZXJ5Owor5q+b5r6k5p2xID4gbWFvXC16ZWRvbmc7Civlha3ljYHkupQgPiBzaXh0eVwtZml2ZTsKK+WkmuWqkumrlCA+IG11bHRpbWVkaWE7CivkuI3lubPluLggPiByZW1hcmthYmxlOwor5oq15oqX5YqbID4gcmVzaXN0YW5jZTsKK+Wkp+S4u+aVmSA+IGFyY2hiaXNob3A7CivoqabnrpfooaggPiBzcGVhZHNoZWV0Owor55m95Y+j6ZC1ID4gd2hpdGVcLWlyb247CivnrKzljYHlhasgPiBlaWdodGVlbnRoOwor5a+m6amX5a6kID4gbGFib3JhdG9yeTsKK+esrOWNgeS5nSA+IG5pbmV0ZWVudGg7CivnrKzljYHkuIkgPiB0aGlydGVlbnRoOwor5qmf6Zec6LuKID4gbG9jb21vdGl2ZTsKK+S/nea9lOeusSA+IGxpdHRlclwtYmluOwor6ICB5bm05Lq6ID4gb2xkXC1wZW9wbGU7CivnmbzogbLms5UgPiBpbnRvbmF0aW9uOwor6K2Y5Yil56K8ID4gaWRlbnRpZmllcjsKK+S4jeW5s+WHoSA+IG1hcnZlbGxvdXM7CivltJHltJnlsbEgPiBtdFwuXC1rdW5sdW47Civku6PooajlnJggPiBkZWxlZ2F0aW9uOwor5b2x5YOP5qqUID4gaW1hZ2VcLWZpbGU7CivlsYXkvY/ogIUgPiBpbmhhYml0YW50Owor5YKz5p+T55eFID4gcGVzdGlsZW5jZTsKK+espuiomOeSsCA+IHRva2VuXC1yaW5nOwor5Zub55m+5YSEID4gNDBcLWJpbGxpb247Civnm6fmta7lrq4gPiB0aGVcLWxvdXZyZTsKK+WQpuaxuuasiiA+IHZldG9cLXBvd2VyOwor5bSH5ouc6ICFID4gd29yc2hpcHBlcjsKK+aIsuWKh+WMliA+IHRoZWF0cmljYWw7CivllYTmnKjps6UgPiB3b29kcGVja2VyOwor6Z2e55uI5YipID4gbm9uXC1wcm9maXQ7Civkvb/lrrnmmJMgPiBmYWNpbGl0YXRlOwor56CU56m25ZOhID4gcmVzZWFyY2hlcjsKK+ebruaTiuiAhSA+IGV5ZXdpdG5lc3M7CivlsIjploDljJYgPiBzcGVjaWFsaXplOwor5pGp5omY6LuKID4gbW90b3JjeWNsZTsKK+aMieaJi+emriA+IG9yZGluYXRpb247CivoqILos7zogIUgPiBzdWJzY3JpYmVyOwor6aGv5b6u6Y+hID4gbWljcm9zY29wZTsKK+WOn+eUn+izqiA+IHByb3RvcGxhc207CivlpJrmlrnpnaIgPiBtYW55XC1zaWRlZDsKK+acg+mVt+WcmCA+IHByZXNpZGVuY3k7CivmlrDogZ7lrbggPiBqb3VybmFsaXNtOwor5LiN5a6a6KmeID4gaW5maW5pdGl2ZTsKK+Wkp+awo+WxpCA+IGF0bW9zcGhlcmU7CivkuI3nsKHllq4gPiBub3RcLXNpbXBsZTsKK+WPl+WCt+WusyA+IGJlXC1pbmp1cmVkOwor56uv57O757WxID4gZW5kXC1zeXN0ZW07Civku6Pmm7/ogIUgPiBzdWJzdGl0dXRlOwor5LiJ55m+5YSEID4gMzBcLWJpbGxpb247CivpnZ7lsI3nqLEgPiBhc3ltbWV0cmljOwor54Sh54WZ54WkID4gYW50aHJhY2l0ZTsKK+WNiuaxuuizvSA+IHNlbWlmaW5hbHM7CivojqvpoIjmnIkgPiBncm91bmRsZXNzOwor5LiN6LK36LOsID4gbm90XC1idXlcLWl0Owor5aWz5a2455SfID4gc2Nob29sZ2lybDsKK+S4jeiHquWcqCA+IHVuZWFzaW5lc3M7CivkuIvlgIvmnIggPiBuZXh0XC1tb250aDsKK+mPiOi3r+WxpCA+IGxpbmtcLWxheWVyOwor5LiN55Sx5b6XID4gY2FuJyd0XC1oZWxwOwor5rqr5ZKM5oCnID4gdGVuZGVybmVzczsKK+aJgOacieiAhSA+IHByb3ByaWV0b3I7CivkuIrlgIvmnIggPiBsYXN0XC1tb250aDsKK+WNiuepuuS4rSA+IGluXC1taWRcLWFpcjsKK+S4jeetieW8jyA+IGluZXF1YWxpdHk7CivmmpfplpPlhZIgPiBpbm5lclwtcm9vbTsKK+iHquWLleWMliA+IGF1dG9tYXRpb247Civllq7mlrnpnaIgPiB1bmlsYXRlcmFsOwor6YGL5YuV5aC0ID4gcGxheWdyb3VuZDsKK+mZhOWKoOeJqSA+IGNvbXBsZW1lbnQ7CivkvZvmlZnlvpIgPiBhXC1idWRkaGlzdDsKK+aTjeiIteWupCA+IHBpbG90aG91c2U7Civpm7vllLHmqZ8gPiBwaG9ub2dyYXBoOwor5rWB56iL5ZyWID4gZmxvd1wtY2hhcnQ7Civnm6PnnaPogIUgPiBzdXBlcnZpc29yOwor5omA5pyJ54mpID4gYmVsb25naW5nczsKK+S6jOWNgeS4gCA+IHR3ZW50eVwtb25lOwor56mp5a6a5oCnID4gc3RhYmlsaXR5Owor6YCj5o6l5ZmoID4gY29ubmVjdG9yOwor5b2i5a656L6tID4gYWRqZWN0aXZlOwor5Y+v5b6X5YiwID4gYXZhaWxhYmxlOwor56eR5a245a62ID4gc2NpZW50aXN0Owor5b+X6aGY6ICFID4gdm9sdW50ZWVyOwor5pOm6YKK55CDID4gZWRnZVwtYmFsbDsKK+aAjum6vOaooyA+IGhvd1wtYWJvdXQ7CivmiYDmnInmrIogPiBvd25lcnNoaXA7Civnmb3loLHntJkgPiBuZXdzcHJpbnQ7CivoqI7oq5bmnIMgPiBzeW1wb3NpdW07CivmjqXlj5fogIUgPiByZWNpcGllbnQ7CivlvaLlrrnoqZ4gPiBhZGplY3RpdmU7Civmr4/lgIvkurogPiBldmVyeWJvZHk7CivkuI3ogrLmgKcgPiBzdGVyaWxpdHk7CivmqqLmn6Xlk6EgPiBpbnNwZWN0b3I7Civooajnj77lnosgPiBwaGVub3R5cGU7Civnmq7pnovljKAgPiBzaG9lbWFrZXI7Civkv53orbfogIUgPiBwcm90ZWN0b3I7Civlgb3lkJvlrZAgPiBoeXBvY3J5dGU7CivogbLmmI7mm7ggPiBzdGF0ZW1lbnQ7CivppqzouYTpkLUgPiBob3JzZXNob2U7Civmk5TmnrbluoogPiBzdHJldGNoZXI7CivkuI3lrozlloQgPiBpbXBlcmZlY3Q7CivmmbTpm6jooaggPiBiYXJvbWV0ZXI7CivljYPnpqflubQgPiBtaWxsZW5pdW07Civkvb/olJPlu7YgPiB0b1wtc3ByZWFkOwor5o6l54+t5Lq6ID4gc3VjY2Vzc29yOwor5Ymq6LK857C/ID4gc2NyYXBib29rOwor5YGJ5pm25bKpID4gcGVnbWF0aXRlOwor5oyH56S656ymID4gaW5kaWNhdG9yOwor5L+d5oOg5birID4gY29tZm9ydGVyOwor5bu656+J5birID4gYXJjaGl0ZWN0Owor5aeU5ZOh5pyDID4gY29tbWl0dGVlOwor6Iiq5rW36ICFID4gbmF2aWdhdG9yOwor5bCP5ZCD5bqXID4gc25hY2tcLWJhcjsKK+e2reWjq+WNoSA+IHZpc2FcLWNhcmQ7Civlpb3lpYflv4MgPiBjdXJpb3NpdHk7CivmlL/msrvmgKcgPiBwb2xpdGljYWw7Civmu5HpvKDlooogPiBtb3VzZVwtcGFkOwor5ouc54mp5pWZID4gZmV0aXNoaXNtOwor5L2O6YCf546HID4gbG93XC1zcGVlZDsKK+aUv+ayu+WxgCA+IHBvbGl0YnVybzsKK+mbtuWUruWVhiA+IHRyYWRlc21hbjsKK+aUv+ayu+WutiA+IHN0YXRlc21hbjsKK+WuieWFqOW4tiA+IHNlYXRcLWJlbHQ7Civnmbvlu6PlkYogPiBhZHZlcnRpc2U7CivmnInmtLvlipsgPiBlbmVyZ2V0aWM7CivpppnmqrPphZIgPiBjaGFtcGFnbmU7CivntpzlkIjmgKcgPiBzeW50aGVzaXM7CivmkYHph5jlhZIgPiB0aHVtYnRhY2s7CivmloflhbfllYYgPiBzdGF0aW9uZXI7CivmlrDliqDlnaEgPiBzaW5nYXBvcmU7CivpoJjkuovppKggPiBjb25zdWxhdGU7CivotoXoga/ntZAgPiBoeXBlcmxpbms7Civkv53nmofpu6ggPiByb3lhbGlzdHM7CivmnbHljJfmlrkgPiBub3J0aGVhc3Q7Civlpb3okIrloaIgPiBob2xseXdvb2Q7CivmjIHkuYXmgKcgPiBjb25zdGFuY3k7Civnmb3ooYDnl4UgPiBsZXVrYWVtaWE7CivlhajkuJbnlYwgPiB3b3JsZHdpZGU7Civnubzmib/ogIUgPiBzdWNjZXNzb3I7CivmipforbDogIUgPiBwcm90ZXN0ZXI7CivooaPluL3plpMgPiBjbG9ha3Jvb207CivkuIDljLnppqwgPiBvbmVcLWhvcnNlOwor5pyJ5pmC5YCZID4gc29tZXRpbWVzOwor5YCZ6YG45Lq6ID4gY2FuZGlkYXRlOwor5ZCR5YyX5ZywID4gbm9ydGh3YXJkOwor5LiL5rG65b+DID4gZGV0ZXJtaW5lOwor5L+d6K2J5Lq6ID4gZ3VhcmFudG9yOwor5LiK5pif5pyfID4gbGFzdFwtd2VlazsKK+esrOS6jOWNgSA+IHR3ZW50aWV0aDsKK+edoemBjumgrSA+IG92ZXJzbGVlcDsKK+WIqeacquiomCA+IGxldml0aWN1czsKK+erpeWtkOi7jSA+IGJveVwtc2NvdXQ7Civlm5vljYHlha0gPiBmb3J0eVwtc2l4Owor56ys5Lmd5Y2BID4gbmluZXRpZXRoOwor6LuK5YmN54eIID4gaGVhZGxpZ2h0Owor5a6H6Iiq5ZOhID4gYXN0cm9uYXV0Owor5L2/5Zuw56qYID4gZW1iYXJyYXNzOwor5ben5YWL5YqbID4gY2hvY29sYXRlOwor5pyJ6ZuE5b+DID4gYW1iaXRpb3VzOwor6JmV55CG5ZmoID4gcHJvY2Vzc29yOwor55+l5pu06bOlID4gcmVkYnJlYXN0Owor5ZWf56S66ICFID4gcmV2ZWxhdG9yOwor56ys5LiJ5Y2BID4gdGhpcnRpZXRoOwor55m96Y6i56SmID4gc2NoZWVsaXRlOwor5omL5o+Q5YyFID4gXChoYW5kXCliYWc7CivmioDooZPmgKcgPiB0ZWNobmljYWw7CivkuI3oqqDlr6YgPiBkaXNob25lc3Q7CivosYzosYbnsqUgPiBwZWFcLWdydWVsOwor6K6K5rWB5ZmoID4gY29udmVydGVyOwor5r2b5rC06ImHID4gc3VibWFyaW5lOwor5omz6YGT5ZOhID4gcG9pbnRzbWFuOwor57m85Lu76ICFID4gc3VjY2Vzc29yOwor5YWp5pif5pyfID4gZm9ydG5pZ2h0Owor5qC85byP5YyWID4gdG9cLWZvcm1hdDsKK+aOoeefs+WgtCA+IHN0b25lXC1waXQ7CivliqDli5Lmr5QgPiBjYXJpYmJlYW47Civpm7vloLHmqZ8gPiB0ZWxlZ3JhcGg7Civlt6XkvZzooaggPiB3b3Jrc2hlZXQ7CivmmrTpoqjpm6ogPiBzbm93c3Rvcm07CivmmrTpoqjpm6ggPiByYWluc3Rvcm07CivmloflrZfmqpQgPiB0ZXh0XC1maWxlOwor6LK/5piT5oiwID4gdHJhZGVcLXdhcjsKK+S/neiovOS6uiA+IGd1YXJhbnRvcjsKK+WlieaJv+iAhSA+IGZsYXR0ZXJlcjsKK+aMh+aPruiAhSA+IGNvbmR1Y3RvcjsKK+WPg+iAg+abuCA+IHJlZmVyZW5jZTsKK+mHneWwjeaApyA+IGRpcmVjdGlvbjsKK+WNiuihsOacnyA+IGhhbGZcLWxpZmU7Civmi4nmlpDnibkgPiBsYWZheWV0dGU7CivopoHkuI3nhLYgPiBvdGhlcndpc2U7CivkuI3ntZDmnpwgPiBmcnVpdGxlc3M7CivnlLPoq4vkurogPiBhcHBsaWNhbnQ7Civlh7rniYjogIUgPiBwdWJsaXNoZXI7CivmnKzmmJ/mnJ8gPiB0aGlzXC13ZWVrOwor5oCq5LiN5b6XID4gbm9cLXdvbmRlcjsKK+WJtemAoOWKmyA+IGluZ2VudWl0eTsKK+WPr+WuueW/jSA+IHRvbGVyYWJsZTsKK+WfuuacrOS4iiA+IGJhc2ljYWxseTsKK+eou+iNieS6uiA+IHNjYXJlY3JvdzsKK+WkmueUqOaItiA+IG11bHRpdXNlcjsKK+e+veavm+eQgyA+IGJhZG1pbnRvbjsKK+aVkeitt+i7iiA+IGFtYnVsYW5jZTsKK+esrOWNgeWFrSA+IHNpeHRlZW50aDsKK+S9v+eUn+awoyA+IGRpc3BsZWFzZTsKK+S4jeWFrOatoyA+IGluanVzdGljZTsKK+WFieWwhOe3miA+IGxpZ2h0XC1yYXk7CivlpJblnIvkurogPiBmb3JlaWduZXI7CivnrKzljYHkupQgPiBmaWZ0ZWVudGg7CivpmL/moLnlu7cgPiBhcmdlbnRpbmE7Civlgb3lloTogIUgPiBoeXBvY3JpdGU7Civonrrml4vmp7MgPiBwcm9wZWxsZXI7Civosq/msLTomZUgPiByZXNlcnZvaXI7CivljYrmtYHpq5QgPiBzZW1pZmx1aWQ7CivlvoHmnI3ogIUgPiBjb25xdWVyb3I7CivmjZXpvKDlmaggPiBtb3VzZXRyYXA7CivororoibLpvo0gPiBjaGFtZWxlb247CivlsI3mipfogIUgPiBhZHZlcnNhcnk7CivoloTmsrnlsaQgPiBvaWxcLXNoZWV0Owor54Sh55+l6Ka6ID4gc2Vuc2VsZXNzOwor5rCj5aOT6KiIID4gYmFyb21ldGVyOwor55m95LqR5q+NID4gbXVzY292aXRlOwor5b2r5Yi75ZOBID4gc2N1bHB0dXJlOwor5paw6IGe55WMID4gdGhlXC1wcmVzczsKK+S4gOWNg+WZuCA+IDEwMDBcLXRvbnM7CivkuI3opo/liYcgPiBpcnJlZ3VsYXI7Civms6Lni4Dpm7IgPiB1bmR1bGF0dXM7Civmk7Tpn7PlmaggPiBtZWdhcGhvbmU7CivkuI3opovkuoYgPiBkaXNhcHBlYXI7CivkuZ3mnIjku70gPiBzZXB0ZW1iZXI7CivotoXmlofmnKwgPiBoeXBlcnRleHQ7CivoroDmm7jkurogPiBhXC1zY2hvbGFyOwor5oyH5o+u5a6YID4gY29tbWFuZGVyOwor5byV55So5Y+lID4gcXVvdGF0aW9uOwor5Y2D6LWr6IyyID4ga2lsb2hlcnR6Owor5YWr5YCN6auUID4gb2N0b3Bsb2lkOwor6KKr56aB5q2iID4gZm9yYmlkZGVuOwor5LiN6Ieq54S2ID4gdW5uYXR1cmFsOwor6auY56eR5oqAID4gaGlnaFwtdGVjaDsKK+aAqueJqeS8vCA+IG1vbnN0cm91czsKK+WGsOajjeWFkiA+IGljZVwtbG9sbHk7Civnmb3nj63lhZIgPiBkYXlcLXNoaWZ0Owor5pif5pyf5LiJID4gd2VkbmVzZGF5Owor6YeO6KC75Lq6ID4gYmFyYmFyaWFuOwor5Y2B5a2X6LuNID4gY3J1c2FkZXJzOwor5rOV5ZyL5Lq6ID4gZnJlbmNobWFuOwor5LqU5Y2D5Zm4ID4gNTAwMFwtdG9uczsKK+mBh+mbo+iIuSA+IHNoaXB3cmVjazsKK+WHuuW4reiAhSA+IGF0dGVuZGFudDsKK+e+iuearue0mSA+IHBhcmNobWVudDsKK+WPjeiJpuiJhyA+IGFudGlcLXNoaXA7CivlhafooaPopLIgPiB1bmRlcndlYXI7Civlv4XpnIDlk4EgPiBuZWNlc3NpdHk7CivlhrDmt4fmt4sgPiBpY2VcLWNyZWFtOwor55+z54Gw55+zID4gbGltZXN0b25lOwor5L+u6YGT6ZmiID4gbW9uYXN0ZXJ5Owor6KW/5YyX5pa5ID4gbm9ydGh3ZXN0Owor5pyb6YGg6Y+hID4gdGVsZXNjb3BlOwor6LaF5paH5Lu2ID4gaHlwZXJ0ZXh0Owor5pO66Kit5YWSID4gb3JuYW1lbnRzOwor5aSq5aW95LqGID4gdmVyeVwtZ29vZDsKK+acrOW5tOW6piA+IHRoaXNcLXllYXI7Civlv4PpnYjkuIogPiBzcGlyaXR1YWw7CivlpKnmloflrbggPiBhc3Ryb25vbXk7Civlt7Tmr5TlpqUgPiBiYXJiaXRvbmU7Civlr6bos6rkuIogPiB2aXJ0dWFsbHk7CivmnInnr4DliLYgPiB0ZW1wZXJhdGU7CivmnInmhI/orZggPiBjb25zY2lvdXM7Civlj5flrrPogIUgPiBjYXN1bHRpZXM7CivkuI3lroznvo4gPiBkZWZlY3RpdmU7Civmg4Xnt5LljJYgPiBlbW90aW9uYWw7CivmlK/mjIHogIUgPiBzdXBwb3J0ZXI7CivmlbjkuI3nm6EgPiBjb3VudGxlc3M7CivlgJ/mm7jllq4gPiBib29rXC1zbGlwOwor5pyJ56au6LKMID4gY291cnRlb3VzOwor56ys5YWr5Y2BID4gZWlnaHRpZXRoOwor6YeM56iL56KRID4gbWlsZXN0b25lOwor5LiN5oOF6aGYID4gdW53aWxsaW5nOwor5LiL5a6a576pID4gdG9cLWRlZmluZTsKK+WwjeS4jei1tyA+IGknJ21cLXNvcnJ5Owor5YGH6LGh54mZID4gY2VsbHVsb2lkOwor6ZmN6JC95YKYID4gcGFyYWNodXRlOwor5LiN6IKy55eHID4gc3RlcmlsaXR5Owor5b+F6KaB5oCnID4gbmVjZXNzaXR5Owor5pW45LiN5riFID4gY291bnRsZXNzOwor6LO86LK36ICFID4gcHVyY2hhc2VyOwor5aSn5pWZ5aCCID4gY2F0aGVkcmFsOwor57WE57mU6ICFID4gb3JnYW5pemVyOwor6IGW6L+t5ZOlID4gc2FuXC1kaWVnbzsKK+mVt+aWueW9oiA+IHJlY3RhbmdsZTsKK+eUn+auluWKmyA+IGZlcnRpbGl0eTsKK+eBsOeNteeKrCA+IGdyZXlob3VuZDsKK+e/kuaFo+aApyA+IGN1c3RvbWFyeTsKK+eZveWFp+manCA+IGNhdGFyYWN0Owor5aSn56+36LuKID4gc2Nob29uZXI7Civnm6PorbfkurogPiBndWFyZGlhbjsKK+S4jeWQiOmBqSA+IGltcHJvcGVyOwor6KeA5a+f6ICFID4gb2JzZXJ2ZXI7Civol6XlipHlo6sgPiBkcnVnZ2lzdDsKK+S4jeS/oeS7uyA+IG1pc3RydXN0Owor5Zug54m557ayID4gaW50ZXJuZXQ7CivlsI3nqLHmgKcgPiBzeW1tZXRyeTsKK+aqoua4rOWZqCA+IGRldGVjdG9yOwor6a2U6KGT5birID4gbWFnaWNpYW47CivkuI3mnL3nmoQgPiBpbW1vcnRhbDsKK+att+WPsuaApyA+IGhpc3RvcmljOwor5qq45qqs5rC0ID4gbGVtb25hZGU7Civku6XlpKrntrIgPiBldGhlcm5ldDsKK+iyoOmHjeaTlCA+IGJ1cmRlbmVkOwor5o6i5ris5ZmoID4gZGV0ZWN0b3I7CivljYHkuozmnIggPiBkZWNlbWJlcjsKK+aTpue2sueQgyA+IG5ldFwtYmFsbDsKK+iBluS/nee+hSA+IHN0XC5cLXBhdWw7Civopb/oo6HniL4gPiBjeXJpbGxpYzsKK+Wls+WtqeWFkiA+IGRhdWdodGVyOwor5pyJ5b636KGMID4gdmlydHVvdXM7Civlj6/mk6blr6sgPiBlcmFzYWJsZTsKK+eJp+e+iuiAhSA+IHNoZXBoZXJkOwor5pyA5Zac5oSbID4gZmF2b3JpdGU7CivnrYboqJjmnKwgPiBub3RlYm9vazsKK+iWsOiho+iNiSA+IGxhdmVuZGVyOwor5LiN5b+F6KaBID4gbmVlZGxlc3M7Civoq4vpoZjmm7ggPiBwZXRpdGlvbjsKK+aKleizh+iAhSA+IGludmVzdG9yOwor5a+E55Sf54mpID4gcGFyYXNpdGU7Civogq/loZTln7ogPiBrZW50dWNreTsKK+afrOWflOWvqCA+IGNhbWJvZGlhOwor5LiA5bCP5pmCID4gb25lXC1ob3VyOwor5Lq66KGM6YGTID4gc2lkZXdhbGs7CivlronlhajmgKcgPiBzZWN1cml0eTsKK+WGjeS/neiovCA+IHJlYXNzdXJlOwor5pS/5rK75a24ID4gcG9saXRpY3M7Civop4Dlr5/lrrYgPiBvYnNlcnZlcjsKK+mbnuWwvumFkiA+IGNvY2t0YWlsOwor5qmE5qyW55CDID4gZm9vdGJhbGw7CivlubPlupXpjYsgPiBzYXVjZXBhbjsKK+e0gOW/teeikSA+IG1vbnVtZW50Owor5L615YWl6ICFID4gaW50cnVkZXI7CivmlLnpnanogIUgPiByZWZvcm1lcjsKK+aJi+aPkOeusSA+IHN1aXRjYXNlOwor5LiN5ZCM5oSPID4gZGlzYWdyZWU7CivlhbHlkozlnIsgPiByZXB1YmxpYzsKK+ajkuejqOapnyA+IHJvZFwtbWlsbDsKK+avlOebrumtmiA+IGZsYXRmaXNoOwor5aSn5bGg5q66ID4gbWFzc2FjcmU7CivlsI/lpJzmm7IgPiBzZXJlbmFkZTsKK+Wwj+aomemhjCA+IHN1YnRpdGxlOwor5pyJ5qmf6auUID4gb3JnYW5pc207CivmrbvooZrooZUgPiBkZWFkXC1lbmQ7CivkuqTpn7/mm7IgPiBzeW1waG9ueTsKK+aZgumWk+ihqCA+IHNjaGVkdWxlOwor6aCt5ZCR5YmNID4gaGVhZGxvbmc7CivmjqLpmqrogIUgPiBleHBsb3JlcjsKK+WPl+mbo+iAhSA+IHN1ZmZlcmVyOwor5be05ouJ5ZytID4gcGFyYWd1YXk7CivnrKzkuIDmraUgPiBzdGVwXC1vbmU7Civoqr/lkbPmsYEgPiBkcmVzc2luZzsKK+aVuOaTmuW6qyA+IGRhdGFiYXNlOwor5YK15qyK5Lq6ID4gY3JlZGl0b3I7CivlvJ/lhYTlgJEgPiBicmV0aHJlbjsKK+Wwj+iqquWutiA+IG5vdmVsaXN0Owor56ys5LqU5Y2BID4gZmlmdGlldGg7CivkuInmmI7msrsgPiBzYW5kd2ljaDsKK+WCrOWMluWKkSA+IGNhdGFseXN0Owor5raI6LK76ICFID4gY29uc3VtZXI7CivniafnvorkurogPiBzaGVwaGVyZDsKK+acieW9iOaApyA+IGZsZXhpYmxlOwor57aT6Zm46LevID4gb3ZlcmxhbmQ7CivlnKjmiLblpJYgPiBvdXRkb29yczsKK+aTpuajkueQgyA+IGZvdWxcLXRpcDsKK+S4reS4lue0gCA+IG1lZGlldmFsOwor5YK+6IG96ICFID4gbGlzdGVuZXI7CivmjqXmlLblmaggPiByZWNlaXZlcjsKK+izh+aWmeW6qyA+IGRhdGFiYXNlOwor5q665Lq654qvID4gbXVyZGVyZXI7CivokaHokITniZkgPiBwb3J0dWdhbDsKK+S4jeato+W4uCA+IGFibm9ybWFsOwor5YWn6YOo57ayID4gaW50cmFuZXQ7CivkuI3pgI/msKMgPiBhaXJ0aWdodDsKK+aaluawo+apnyA+IHJhZGlhdG9yOwor6Zi/6IKv6ImyID4gYXJrYW5zYXM7CivmlZnnp5Hmm7ggPiB0ZXh0Ym9vazsKK+m8k+WQueiAhSA+IGFkdm9jYXRlOwor5Zyw5LiL5a6kID4gYmFzZW1lbnQ7CivlpKfogprlrZAgPiBwcmVnbmFudDsKK+S4jemBjuaEjyA+IGJlXC1zb3JyeTsKK+WGkueKr+iAhSA+IG9mZmVuZGVyOwor5L+d55yf5bqmID4gZmlkZWxpdHk7CivkuI3pq5TpnaIgPiBzaGFtZWZ1bDsKK+Wwj+ihneeqgSA+IHNraXJtaXNoOwor5o6S5rC05rigID4gZHJhaW5hZ2U7CivpurvphonlipEgPiBuYXJjb3RpYzsKK+iiq+S+teWusyA+IHN0cmlja2VuOwor6KiI566X5qmfID4gY29tcHV0ZXI7Civnmb3mnKjogLMgPiB0cmVtZWxsYTsKK+eNqOijgeiAhSA+IGRpY3RhdG9yOwor6KiY6YyE5ZOhID4gcmVjb3JkZXI7CivomIfmoLzomK0gPiBzY290bGFuZDsKK+iRoeiQhOWckiA+IHZpbmV5YXJkOwor5L2/6IiI5aWuID4gZXhjaXRpbmc7CivnrKzljYHkuIAgPiBlbGV2ZW50aDsKK+aWueeoi+W8jyA+IGVxdWF0aW9uOwor54Sh57ea6Zu7ID4gd2lyZWxlc3M7CivlvavliLvlrrYgPiBzY3VscHRvcjsKK+W3peWVhueVjCA+IGluZHVzdHJ5Owor6Zi/5omY5ZOBID4gYXRyb3BpbmU7CivlnLDljYDmgKcgPiByZWdpb25hbDsKK+ijnemjvueJqSA+IG9ybmFtZW50Owor5LiJ6KeS5b2iID4gdHJpYW5nbGU7Civoqpjmi5DogIUgPiBhYmR1Y3RvcjsKK+aIsuWKh+aApyA+IGRyYW1hdGljOwor5oey572w5oCnID4gcHVuaXRpdmU7Civlhavop5LmpZMgPiBhbGFuZ2l1bTsKK+WMl+a1t+mBkyA+IGhva2thaWRvOwor5L2O5oiQ5pysID4gbG93XC1jb3N0Owor5piO5L+h54mHID4gcG9zdGNhcmQ7CivmlZHotJbkuLsgPiByZWRlZW1lcjsKK+eUn+WRveWKmyA+IHZpdGFsaXR5Owor5omA5Zyo5ZywID4gbG9jYXRpb247CivnlKLph4/lpJogPiBmcnVpdGZ1bDsKK+eci+WuiOiAhSA+IHdhdGNobWFuOwor5L2U6aCY6ICFID4gb2NjdXBhbnQ7CivmmpflnLDoo6EgPiBzZWNyZXRseTsKK+S9juiyu+eUqCA+IGxvd1wtY29zdDsKK+S9v+WQg+mpmiA+IGFzdG9uaXNoOwor5bm45a2Y6ICFID4gc3Vydml2b3I7Civkvb/pp63mgJUgPiBmcmlnaHRlbjsKK+aru+iKseiNiSA+IHByaW1yb3NlOwor5pif5pyf5ZubID4gdGh1cnNkYXk7CivmsbrlrprmgKcgPiBkZWNpc2l2ZTsKK+aXpeiAs+abvCA+IGdlcm1hbmljOwor5bm+5L2V5a24ID4gZ2VvbWV0cnk7Civlgr7lkJHmlrwgPiBwcm9uZVwtdG87CivnlJ/pgoTogIUgPiBzdXJ2aXZvcjsKK+aYn+acn+WFrSA+IHNhdHVyZGF5Owor6Ziy5a6I6ICFID4gZGVmZW5kZXI7CivmnInlg7nlgLwgPiB2YWx1YWJsZTsKK+WIuua/gOeJqSA+IHN0aW11bHVzOwor5LiN5L+h55SoID4gZGlzdHJ1c3Q7Civmj5Dkvpvoq7ggPiBwcm92aWRlcjsKK+W3peeoi+W4qyA+IGVuZ2luZWVyOwor5Lit57m85ZmoID4gcmVwZWF0ZXI7CivmtIvnkLXnkLYgPiBtYW5kb2xpbjsKK+aDoeS9nOWKhyA+IG1pc2NoaWVmOwor5a2Q5Y2I57eaID4gbWVyaWRpYW47Civoo73kvZzogIUgPiBwcm9kdWNlcjsKK+S4jeWcqOS5jiA+IG5vdFwtbWluZDsKK+mfs+aoguWutiA+IG11c2ljaWFuOwor5L2/6bq755e6ID4gcGFyYWx5emU7CivljYPlrZfnr4AgPiBraWxvYnl0ZTsKK+iuiumYu+WZqCA+IHRoZW9zdGF0Owor5aWz5oi/5p2xID4gbGFuZGxhZHk7CivkuI3lgLzlvpcgPiB1bndvcnRoeTsKK+aPkOS+m+iAhSA+IHN1cHBsaWVyOwor5aCF5Zu65oCnID4gZmlybW5lc3M7Civnmb3ljJbnl4UgPiBhbGJpbmlzbTsKK+esrOWFreWNgSA+IHNpeHRpZXRoOwor5paH5piO5YyWID4gY2l2aWxpemU7CivlpJbkuqTlrpggPiBkaXBsb21hdDsKK+eZvembsuefsyA+IGRvbG9taXRlOwor5L2/57+S5oWjID4gYWNjdXN0b207CivlhrDmmbbnn7MgPiBjcnlvbGl0ZTsKK+S4jeWwj+W/gyA+IGhlZWRsZXNzOwor5a+M6Imy5b2pID4gY29sb3JmdWw7CivntI3nqIXkurogPiB0YXhwYXllcjsKK+WGjeWHuuePviA+IHJlYXBwZWFyOwor6Z2g6IOM5qSFID4gYXJtY2hhaXI7Civmk43kvZzogIUgPiBvcGVyYXRvcjsKK+WFqOWci+aApyA+IG5hdGlvbmFsOwor57Wy54uA54mpID4gZmlsYW1lbnQ7CivnmbzmmI7lrrYgPiBpbnZlbnRvcjsKK+iXpeWKkeW4qyA+IGRydWdnaXN0Owor5LiN5oCO6bq8ID4gbm90XC12ZXJ5Owor5aSn6KW/5rSLID4gYXRsYW50aWM7CivnnIvlvpfoposgPiB2aXNpYmxlOwor5pyJ6LOH5qC8ID4gZW50aXRsZTsKK+Wck+efs+mgrSA+IGJvdWxkZXI7CivlpaflnLDliKkgPiBhdXN0cmlhOwor5YKz6YGT6YOoID4gbWlzc2lvbjsKK+WJteS4lue0gCA+IGdlbmVzaXM7CivljYPkvY3lhYMgPiBraWxvYml0Owor5o+a6IGy5ZmoID4gc3BlYWtlcjsKK+euoeeQhuWToSA+IG1hbmFnZXI7CivogIHos4fmoLwgPiB2ZXRlcmFuOwor6YeR6YqA5aGKID4gYnVsbGlvbjsKK+aymeS4gemtmiA+IHNhcmRpbmU7Civlh7rntI3lk6EgPiBjYXNoaWVyOwor5oSb6YGK546pID4gcGxheWZ1bDsKK+mLvOeQtOWutiA+IHBpYW5pc3Q7CivoqIjmlbjogIUgPiBjb3VudGVyOwor6Kej5YmW5a24ID4gYW5hdG9teTsKK+acieWtuOWVjyA+IGxlYXJuZWQ7CivljYrlkIrlrZAgPiBkYWJibGVyOwor5aSp6Iqx5p2/ID4gY2VpbGluZzsKK+Wkp+ebpOWtkCA+IHBsYXR0ZXI7CivkuI3og73kuI0gPiBoYXZlXC10bzsKK+WHuuWFpeWPoyA+IGdhdGV3YXk7CivotbfnmrrntIsgPiBzaHJpdmVsOwor5rK55YWJ5ryGID4gdmFybmlzaDsKK+aJmOWFkuaJgCA+IG51cnNlcnk7CivoibfntIXoibIgPiBjcmltc29uOwor54m56Kix54uAID4gY2hhcnRlcjsKK+aLluabs+apnyA+IHRyYWN0b3I7CivpoJDoqIDlrrYgPiBwcm9waGV0Owor6IOM5Y+b6ICFID4gdHJhaXRvcjsKK+Wkp+S9v+mkqCA+IGVtYmFzc3k7CivlpKfojYnljp8gPiBwcmFpcmllOwor54mp55CG5a24ID4gcGh5c2ljczsKK+S4jeiBveWRvSA+IGRpc29iZXk7CivntKLppqzoo6EgPiBzb21hbGlhOwor5buj5pKt57ayID4gbmV0d29yazsKK+W3tOagvOmBlCA+IGJhZ2hkYWQ7CivpioDooYzmpa0gPiBiYW5raW5nOwor5omL5o6o6LuKID4gdHJvbGxleTsKK+WLnuWLleiAhSA+IGxhYm9yZXI7Civnvo7mtLLosbkgPiBwYW50aGVyOwor6Iqx5bSX55+zID4gZ3Jhbml0ZTsKK+WcqOWFtuS4rSA+IHRoZXJlaW47CivkuI3lkIjms5UgPiBpbGxlZ2FsOwor5qK15bid5bKhID4gdmF0aWNhbjsKK+WQjOe+qeWtlyA+IHN5bm9ueW07CivmhJvlnIvogIUgPiBwYXRyaW90Owor5aWz5Li75Lq6ID4gaG9zdGVzczsKK+eZveamtOefsyA+IGxldWNpdGU7CivkvaDoh6rlt7EgPiB0aHlzZWxmOwor6Ieq55Sx5rS+ID4gbGliZXJhbDsKK+ieoueBq+ifsiA+IGZpcmVmbHk7Civnmb7liIbkuYsgPiBwZXJjZW50Owor6ayG57eK5bi2ID4gZWxhc3RpYzsKK+WvhOWuv+eUnyA+IGJvYXJkZXI7Civlj5fmraHov44gPiBwb3B1bGFyOwor6aOb5qmf5aC0ID4gYWlycG9ydDsKK+ioiOaVuOWZqCA+IGNvdW50ZXI7Civlr6bpmpvkuIogPiBpblwtZmFjdDsKK+WPjeaHieWghiA+IHJlYWN0b3I7CivnlbDmlZnlvpIgPiBoZWF0aGVuOwor5aSW6YKm5Lq6ID4gZ2VudGlsZTsKK+enu+awkeiAhSA+IG1pZ3JhbnQ7CivkuI3lkInliKkgPiBvbWlub3VzOwor5Ym16YCg6ICFID4gY3JlYXRvcjsKK+eGlOekpueIkCA+IGZ1cm5hY2U7CivlpbPoi7Hpm4QgPiBoZXJvaW5lOwor5YWn576F55WiID4gbmFpcm9iaTsKK+WPm+mAhuiAhSA+IHRyYWl0b3I7Civkvb/pq5josrQgPiBkaWduaWZ5Owor5Zyw6LOq5a24ID4gZ2VvbG9neTsKK+mXnOmNteipniA+IGtleXdvcmQ7Civlt7Tmnb7nrqEgPiBiYXNzb29uOwor5biD6ZqG6L+qID4gYnVydW5kaTsKK+WFhembu+WZqCA+IGNoYXJnZXI7CivokpnlpKfmi78gPiBtb250YW5hOwor54Kt55a955eFID4gYW50aHJheDsKK+WPsuWvhueJuSA+IHNjaG1pdHQ7Civlr4zlo6vpgJogPiBmdWppdHN1Owor54O56Kq/6KGTID4gY29va2VyeTsKK+WNsOWIt+iAhSA+IHByaW50ZXI7Civmt7flkIjniakgPiBtaXh0dXJlOwor6Zi/5YWL5YCrID4gYWNoZXJvbjsKK+eEoeelnuirliA+IGF0aGVpc207CivkuI3li5XmkJYgPiB1bm1vdmVkOwor6Zqx6JeP6JmVID4gc2hlbHRlcjsKK+aKvOaymem+jSA+IGFic2Fsb207CivlgqznnKDmm7IgPiBsdWxsYWJ5Owor54mb6aCt54qsID4gYnVsbGRvZzsKK+S9v+mtlOazlSA+IGNvbmp1cmU7CivlkLnlj6Plk6ggPiB3aGlzdGxlOwor5a6J5LmD6L+RID4gYW5hbGdpbjsKK+ibi+eZveizqiA+IHByb3RlaW47Civoip3liqDlk6UgPiBjaGljYWdvOwor5YWr5bi26a2aID4gb2N0b3B1czsKK+a0l+iho+W6lyA+IGxhdW5kcnk7CivkuI3lvpfli4EgPiBhd2t3YXJkOwor5Y2K55O26YaLID4gZGFiYmxlcjsKK+mVt+mguOm5vyA+IGdpcmFmZmU7CivlpbPpq5jpn7MgPiBzb3ByYW5vOwor5q+U5Yip5pmCID4gYmVsZ2l1bTsKK+S4jeiqv+WSjCA+IGRpc2NvcmQ7CivmnInpmbDlvbEgPiBzaGFkb3d5Owor5oyH6Zec56+AID4ga251Y2tsZTsKK+W5s+W4uOaXpSA+IHdlZWtkYXk7CivlhLLol4/lrqQgPiBzdG9yYWdlOwor5YyI54mZ5YipID4gaHVuZ2FyeTsKK+Wik+iqjOmKmCA+IGVwaXRhcGg7CivkuIDmnIPlhZIgPiBhXC13aGlsZTsKK+S4jemBk+W+tyA+IGltbW9yYWw7Civng4/lhYvomK0gPiB1a3JhaW5lOwor5Zyo5a6k5YWnID4gaW5kb29yczsKK+S4jembouWFkiA+IG5vdFwtYmFkOwor55m96JuL55m9ID4gYWxidW1pbjsKK+S4u+W4reiHuiA+IHJvc3RydW07CivpoZ7lm7rphocgPiBzdGVyb2lkOwor6KmV6K2w5pyDID4gY291bmNpbDsKK+acieW4jOacmyA+IGhvcGVmdWw7Civlgrflr5Lnl4cgPiB0eXBob2lkOwor5Yiw6YKj6KOhID4gdGhpdGhlcjsKK+mkiuiAgemHkSA+IHBlbnNpb247CivnnaHnnKDogIUgPiBzbGVlcGVyOwor5ZaY5ZCB5ZCBID4gdG9cLWJsb3c7CivlsI/lhorlrZAgPiBib29rbGV0Owor5pyq5q2m6KOdID4gdW5hcm1lZDsKK+W4tue0heiJsiA+IHJlZGRpc2g7CivlkIjlpKXkurogPiBwYXJ0bmVyOwor5pyJ5bmr5YqpID4gaGVscGZ1bDsKK+mYv+aLieS8ryA+IGFyYWJpYW47CivpmL/mi4nkuIEgPiBhbGFkZGluOwor5LiN6Ka65a+fID4gdW5hd2FyZTsKK+eUmOiXjeiPnCA+IGNhYmJhZ2U7CivlpbPkv67pgZMgPiBjb252ZW50Owor55m854++54mpID4gZmluZGluZzsKK+WcqOS4i+aWuSA+IGJlbmVhdGg7Civokrjmsb3mqZ8gPiBzdGVhbWVyOwor5bCP54CR5biDID4gY2FzY2FkZTsKK+esrOWNgeS6jCA+IHR3ZWxmdGg7Civlt7TkuI3lvpcgPiBhbnhpb3VzOwor5pyq5rG65a6aID4gcGVuZGluZzsKK+aXhemBiuiAhSA+IHRvdXJpc3Q7Civlj5foqJfkurogPiB0cnVzdGVlOwor6KaL6K2J5Lq6ID4gd2l0bmVzczsKK+efs+WNl+WxrCA+IGhlYXRoZXI7CivlnJbmm7jppKggPiBsaWJyYXJ5Owor6JaE54Ok6aSFID4gcGFuY2FrZTsKK+avkuiNieWQjSA+IGhlbWxvY2s7CivlnLDlubPnt5ogPiBob3Jpem9uOwor5aW56Ieq5bexID4gaGVyc2VsZjsKK+S9v+WtpOeriyA+IGlzb2xhdGU7Civnn67lo6/ntKAgPiBjeWNvY2VsOwor5ZCR5L2V6JmVID4gd2hpdGhlcjsKK+exg+adv+eQgyA+IHJlYm91bmQ7Civogb3lvpfoposgPiBhdWRpYmxlOwor5YGa56ax5ZGKID4gdG9cLXByYXk7Civnmb7mhZXlpKcgPiBiZXJtdWRhOwor5pyJ5qKd57SLID4gc3RyaXBlZDsKK+WuieaBr+aXpSA+IHNhYmJhdGg7CivkuI3lgJLnv4EgPiB0dW1ibGVyOwor6KOB57SZ5qmfID4gdHJpbW1lcjsKK+S4gOmDqOWIhiA+IHBvcnRpb247Civmh7fmlbXmhI8gPiBob3N0aWxlOwor5Ym156uL6ICFID4gZm91bmRlcjsKK+e2reS7luWRvSA+IHZpdGFtaW47Civoo53nva7niakgPiBmaXh0dXJlOwor5Y+D6K2w5ZOhID4gc2VuYXRvcjsKK+WNsOihqOapnyA+IHByaW50ZXI7CivmmJ/mnJ/kuowgPiB0dWVzZGF5Owor6Z+z5qiC5pyDID4gY29uY2VydDsKK+mrlOiCsuWgtCA+IHN0YWRpdW07CivmhJvniL7omK0gPiBpcmVsYW5kOwor6YCD5Lqh6ICFID4gcnVuYXdheTsKK+WSr+WSr+eskSA+IGNodWNrbGU7CivnlJ/nianlrbggPiBiaW9sb2d5Owor5oiw6ayl6ICFID4gZmlnaHRlcjsKK+S9v+aGpOaFqCA+IG91dHJhZ2U7CivlsYXkvY/mlrwgPiBpbmhhYml0Owor5omT5Y2w5qmfID4gcHJpbnRlcjsKK+S9v+aGpOaAkiA+IHByb3Zva2U7CivlvYzos73kup4gPiBtZXNzaWFoOwor5rKS55Sa6bq8ID4gbm90aGluZzsKK+eFmeeBsOe8uCA+IGFzaHRyYXk7Civmt7HntIXoibIgPiBzY2FybGV0Owor5LiN5Zyo5LqGID4gYmVcLWRlYWQ7CivntKHnuZTlk4EgPiB0ZXh0aWxlOwor5Luj5ZCN6KmeID4gcHJvbm91bjsKK+S4jea/n+S6iyA+IG5vXC1nb29kOwor6ZaL5ouT6ICFID4gcGlvbmVlcjsKK+S4jeS6uumBkyA+IGluaHVtYW47CivooqvmspLmlLYgPiBmb3JmZWl0Owor6Lev6KW/5byXID4gbHVjaWZlcjsKK+WMluWtuOWutiA+IGNoZW1pc3Q7CivoqJPnt7TogIUgPiB0cmFpbmVyOwor5riF5r2U5ZmoID4gY2xlYW5lcjsKK+aEm+W+t+eOsiA+IGFkZWxpbmU7Civov6vliIfmgKcgPiB1cmdlbmN5Owor5aWz5ryU5ZOhID4gYWN0cmVzczsKK+ahjOS4iuWeiyA+IGRlc2t0b3A7Civlt7Tmr5TlgKsgPiBiYWJ5bG9uOwor5ayw5YWS5pyfID4gaW5mYW5jeTsKK+eZvuiRieeqlyA+IHNodXR0ZXI7Civpgb/lvYjlnZEgPiBmb3hob2xlOwor5pyJ5omN5bm5ID4gY2FwYWJsZTsKK+iEq+iho+acjSA+IHVuZHJlc3M7Civop4DlhYnlrqIgPiB0b3VyaXN0Owor6YGL5YuV5a62ID4gYXRobGV0ZTsKK+alremkmOiAhSA+IGFtYXRldXI7Civph5HlrZfloZQgPiBweXJhbWlkOwor5LuW6Ieq5bexID4gaGltc2VsZjsKK+WumuWxheiAhSA+IHNldHRsZXI7CivkuozljYHlpJogPiBvdmVyXC0yMDsKK+aUtueVmeaJgCA+IGJhcnJhY2s7Civmr5vmr5vpm6ggPiBkcml6emxlOwor6YGL5YuV5ZOhID4gYXRobGV0ZTsKK+eHlem6peeypSA+IG9hdG1lYWw7CivmqJnoqp7niYwgPiBwbGFjYXJkOwor6Ieq6KGM6LuKID4gYmljeWNsZTsKK+awkeaVuOiomCA+IG51bWJlcnM7CivlsI/mlpHpu54gPiBzcGVja2xlOwor5L2/5Y6t54WpID4gZGlzZ3VzdDsKK+iJvui/queUnyA+IGFkZGlzb247Civlo6vluKvoqJggPiBqdWRnZXM7CivorbfpgIHogIUgPiBlc2NvcnQ7Civnmbzpm7vmqZ8gPiBkeW5hbW87CivnqYbmlq/mnpcgPiBtdXNsaW07Civplovou4rkurogPiBkcml2ZXI7CivlmLbllZ7ogbIgPiBob2Fyc2U7Civmi5TlsJblhZIgPiB0aXB0b3A7CivnrqHnkIbkurogPiBrZWVwZXI7Civpu4PpvKDni7wgPiB3ZWFzZWw7CivmnInkurrmg4UgPiBodW1hbmU7Civopb/ntIXmn78gPiB0b21hdG87Civpm7vlvbHpmaIgPiBjaW5lbWE7CivlsI/lppbnsr4gPiBnb2JsaW47Civph5HntbLpm4AgPiBjYW5hcnk7Civli5XlkI3oqZ4gPiBnZXJ1bmQ7Civnq7bos73ogIUgPiBwbGF5ZXI7Civnt6jlubTlj7IgPiBhbm5hbHM7CivnvLrmsKfnl4cgPiBhbm94aWE7CivlpKflnLDmtJ4gPiBjYXZlcm47Civmu5Hnv5TmqZ8gPiBnbGlkZXI7CivmrpjppJjniakgPiBsaXR0ZXI7CivmnInosqzku7sgPiBsaWFibGU7CivlranlrZDmsKMgPiBib3lpc2g7CivlsI/niZ3niZsgPiBoZWlmZXI7Civot5HmraXogIUgPiBydW5uZXI7CivlkJDntqzpm54gPiB0dXJrZXk7Civot6jmjqXlmaggPiBqdW1wZXI7CivosqDmk5TogIUgPiBiZWFyZXI7CivlkIjllLHlnJggPiBjaG9ydXM7CivpoJjlsI7ogIUgPiBsZWFkZXI7Civmm7Lmo43nkIMgPiBob2NrZXk7Civot6/nlLHlmaggPiByb3V0ZXI7CivniLbmr43opqogPiBwYXJlbnQ7CivljJblpp3lk4EgPiBtYWtldXA7CivmgKXkv4PogbIgPiBwYXR0ZXI7Civkvb/noazljJYgPiBoYXJkZW47CivkuqTmmJPogIUgPiBkZWFsZXI7Civml6Xlhafnk6YgPiBnZW5ldmE7CivpioDooYzlrrYgPiBiYW5rZXI7CivmpI3nianlrbggPiBib3Rhbnk7CivntIDlv7XnjY4gPiB0cm9waHk7Civlgb3pgKDnmoQgPiBmb3JnZWQ7CivnrKzkuozmrKEgPiBzZWNvbmQ7CivptZ3ljbXnn7MgPiBwZWJibGU7CivmnInmsKPmtL4gPiBsb3JkbHk7CivlgrXli5nkurogPiBkZWJ0b3I7CivnlavnnInps6UgPiB0aHJ1c2g7CivlsI/nop/lrZAgPiBzYXVjZXI7CivoiJ7ouYjlrrYgPiBkYW5jZXI7Civlj67lmbnogbIgPiB0aW5rbGU7Civkvb/mv5XpgI8gPiBkcmVuY2g7CivmibnoqZXlrrYgPiBjcml0aWM7CivlnKjmt7HomZUgPiBkZWVwbHk7Civli53liKnogIUgPiB2aWN0b3I7Civoubroubrmnb8gPiBzZWVzYXc7Civno6jlnYrkuLsgPiBtaWxsZXI7CivmnInpl5zpgKMgPiByZWxhdGU7CivlpJrmqLnmnKggPiB3b29kZWQ7CivlkLHlkLHogbIgPiBzcXVlYWs7CivmnKrlrozmiJAgPiB1bmRvbmU7CivprZTos73lhYsgPiBtb3NhaWM7CivlvLfmnInlipsgPiBzdHJvbmc7Civng4/lubLpgZQgPiB1Z2FuZGE7CivkuI3norrlr6YgPiB1bnRydWU7CivovqblhazlrqQgPiBvZmZpY2U7CivnvoXppqzmm7ggPiByb21hbnM7CivmnI3li5nlk6EgPiB3YWl0ZXI7CivonJjom5vntrIgPiBjb2J3ZWI7CivpmL/nsbPlt7QgPiBhbW9lYmE7Civkv67oo5zljKAgPiB0aW5rZXI7CivlpKfnkIbnn7MgPiBtYXJibGU7CivmjIHmnInkurogPiBob2xkZXI7CivmkpLlk4jmi4kgPiBzYWhhcmE7CivlpKfpkK7liIAgPiBzY3l0aGU7Civmv77ms6LlmaggPiBmaWx0ZXI7CivlqJvmqILloLQgPiByZXNvcnQ7Civkvb/pq5joiIggPiBwbGVhc2U7CivmnIDlubTplbcgPiBlbGRlc3Q7CivphoPpu4Pnk5wgPiBwaWNrbGU7CivmlLblibLogIUgPiByZWFwZXI7CivmnZzptZHps6UgPiBjdWNrb287CivmiZPlmbTlmo8gPiBzbmVlemU7Civonrrml4vpiZcgPiB3cmVuY2g7Civlj4PorbDpmaIgPiBzZW5hdGU7CivpoJjlsI7kurogPiBsZWFkZXI7CivororlvaLon7IgPiBhbW9lYmE7Civku7vkvZXkurogPiBhbnlvbmU7CivmnInpgZPlvrcgPiBjaGFzdGU7Civol53ooZPlrrYgPiBhcnRpc3Q7CivpoILmqJHmn7EgPiBwaWxsYXI7Civkvb/ohqjohLkgPiBkaWxhdGU7CivlsI/mj5DnkLQgPiBmaWRkbGU7Civmh7bmtIvmtIsgPiBsYXppbHk7CivppqzmiLLlnJggPiBjaXJjdXM7Civpq5johbPmna8gPiBnb2JsZXQ7CivppqzpiLTolq8gPiBwb3RhdG87Civkvb/ovYnlkJEgPiBkaXZlcnQ7CivmspLmnInkurogPiBub2JvZHk7CivljZrnianppKggPiBtdXNldW07Civkvb/lm7Dmk74gPiBoYXJhc3M7Civnpq7mi5zloIIgPiBjaGFwZWw7CivkuI3pgI/mmI4gPiBvcGFxdWU7CivlroPmnKzouqsgPiBpdHNlbGY7CivmiYHmoYPpq5QgPiB0b25zaWw7CivmjpLmsLTmup0gPiBndXR0ZXI7CivmraPmlrnlvaIgPiBzcXVhcmU7Civlj6/kv6Hku7sgPiB0cnVzdHk7CivmloflrbjlrrYgPiB3cml0ZXI7Civnp7vli5XlvI8gPiBtb2JpbGU7CivliLDmraTomZUgPiBoaXRoZXI7CivmrpbmsJHlnLAgPiBjb2xvbnk7Civloqjopb/lk6UgPiBtZXhpY287CivmuIXnnJ/lr7ogPiBtb3NxdWU7CivovqbkuovomZUgPiBvZmZpY2U7Civlronlk6Xmi4kgPiBhbmdvbGE7Civku6XoibLliJcgPiBpc3JhZWw7Civph5jmm7jph50gPiBzdGFwbGU7Civnhafnm7jmqZ8gPiBjYW1lcmE7CivntKHnuZTogIUgPiB3ZWF2ZXI7Civmlq/mi4nlpKsgPiBzbGF2aWM7Civkv4TnvoXmlq8gPiBydXNzaWE7Civoo4HnuKvluKsgPiB0YWlsb3I7CivlvJPnrq3miYsgPiBhcmNoZXI7CivloZ7niL7nibkgPiBjZWx0aWM7CivlpbPoiI3nm6MgPiBtYXRyb247CivmiZPlrZflk6EgPiB0eXBpc3Q7CivmmJ/mnJ/ml6UgPiBzdW5kYXk7CivokaHokITkub4gPiByYWlzaW47CivmiJHoh6rlt7EgPiBteXNlbGY7CivlpKfmraXotbAgPiBzdHJpZGU7CivkuI3lhazlubMgPiB1bmZhaXI7Civoiq3olb7oiJ4gPiBiYWxsZXQ7CivoqZXoq5blrrYgPiBjcml0aWM7CivkvK/liKnojLIgPiBiZWxpemU7Civonrrml4vlvaIgPiBzcGlyYWw7Civmr5TovIPlsJEgPiBsZXNzZXI7CivlnKjmraTomZUgPiBoZXJlaW47CivooqvlrrPkurogPiB2aWN0aW07CivpmL/ms6LnvoUgPiBhcG9sbG87Civkvb/ogLPogb4gPiBkZWFmZW47Civnvqnos6PmnIMgPiBiYXphYXI7CivmmJ/mnJ/lpKkgPiBzdW5kYXk7Civlt6XkvZzlrqQgPiBzdHVkaW87CivploDlpJbmvKIgPiBsYXltYW47CivlnKjpmYTov5EgPiBuZWFyYnk7CivloZfmsrnmlrwgPiBhbm9pbnQ7Civpm5zosqjllYYgPiBncm9jZXI7Civntq3lkL7niL4gPiB1aWdodXI7Civoi7Hpm4TlvI8gPiBoZXJvaWM7CivnkIbpq67luKsgPiBiYXJiZXI7Civotbfms6HmsqsgPiBzZWV0aGU7CivmmJ/mnJ/kupQgPiBmcmlkYXk7CivmmJ/mnJ/kuIAgPiBtb25kYXk7Civlt7TniL7lubIgPiBiYWxrYW47CivmoLzmoLznrJEgPiBnaWdnbGU7CivlrZ/liqDmi4kgPiBiZW5nYWw7CivlnJ/ogLPlhbYgPiB0dXJrZXk7Civnmb3omK3lnLAgPiBicmFuZHk7CivmhJvlvrfoj68gPiBlZHdhcmQ7CivljYrkuK3ohbAgPiBtaWRkbGU7Civnmb3kub7lhZIgPiBzcGlyaXQ7CivlhbjnjYTplbcgPiB3YXJkZW47CivnnIvkuI3oposgPiB1bnNlZW47Civkvb/kvZzlmJQgPiBzaWNrZW47CivmgZDmsLTnl4UgPiByYWJpZXM7CivliqDvuY3mlrwgPiBpbXBvc2U7CivmqaHnmq7mkL0gPiBlcmFzZXI7Civms6Llo6vpoJMgPiBib3N0b247CivntpPntIDkurogPiBicm9rZXI7CivntIXomL/olJQgPiBjYXJyb3Q7CivmgoTmgoTlnLAgPiBnZW50bHk7Civpgb/pm6PmiYAgPiByZWZ1Z2U7Civnmb3purXlhZIgPiBoZXJvaW47Civpo7zppIrogIUgPiBmZWVkZXI7Civlt7Tmlq/lhYsgPiBiYXNxdWU7Civojqvmlq/np5EgPiBtb3Njb3c7CivmnIjmoYLmqLkgPiBsYXVyZWw7CivploDoqLrlrqQgPiBjbGluaWM7Civlvq7oloTnmoQgPiBtZWFncmU7CivlsI/mt5jmsKMgPiByYXNjYWw7CivmlJ3lvbHmqZ8gPiBjYW1lcmE7CivotbfoqLTogIUgPiBzdWl0b3I7Civlt7Tmi7/ppqwgPiBwYW5hbWE7CivmjZXpr6joiLkgPiB3aGFsZXI7CivmvJToqqrogIUgPiBvcmF0b3I7Civmk7rmqKPlrZAgPiBkb1wtc3RoOwor5bm+5LmO5LiNID4gaGFyZGx5Owor5Yqg5ou/5aSnID4gY2FuYWRhOwor6Yar5YuZ5omAID4gY2xpbmljOwor5Y2B5a2X5p62ID4gY3Jvc3M7Civku6PnkIbkurogPiBhZ2VudDsKK+mpheWLleWZqCA+IGRyaXZlOwor542o5pyo6IifID4gY2Fub2U7Civmop3mnb/nrrEgPiBjcmF0ZTsKK+mZs+WIl+iHuiA+IHN0YWxsOwor6Kyb6Kej5ZOhID4gZ3VpZGU7Civms6XmsLTljKAgPiBtYXNvbjsKK+akjeeJqee+pCA+IGZsb3JhOwor5Zyo6auY6JmVID4gYWxvZnQ7CivmkpDnq7/ot7MgPiB2YXVsdDsKK+mgreiTi+mqqCA+IHNrdWxsOwor5pWY5Yip5LqeID4gc3lyaWE7CivntKvkuIHpppkgPiBsaWxhYzsKK+S4jeaWsOmuriA+IHN0YWxlOwor5aSn6L6y5aC0ID4gcmFuY2g7CivlpJrmsLTliIYgPiBqdWljeTsKK+WRvOWPq+WZqCA+IHBhZ2VyOwor5LiL5rC06YGTID4gc2V3ZXI7Civlvp7kvobkuI0gPiBuZXZlcjsKK+S6jOalteeuoSA+IGRpb2RlOwor56u25oqA5aC0ID4gYXJlbmE7CivpuqXpmL/lr4YgPiBtaWFtaTsKK+S8keaBr+WupCA+IGxvYmJ5Owor55CD54uA54mpID4gZ2xvYmU7CivlsI3mlbXogIUgPiByaXZhbDsKK+WGrOmdkuaouSA+IGhvbGx5Owor5p6c5a2Q5YeNID4gamVsbHk7CivlpKflnLDlnJYgPiBhdGxhczsKK+aIkOW5tOiAhSA+IGFkdWx0Owor6ZuF5ZCE5pu4ID4gamFtZXM7Civoi7Hku6PniL4gPiBpbnRlbDsKK+avm+iMuOiMuCA+IGhhaXJ5Owor5L2/54Wp5oOxID4gd29ycnk7CivlsLzml6XniL4gPiBuaWdlcjsKK+aUtumfs+apnyA+IHJhZGlvOwor56ys5LiJ5qyhID4gdGhpcmQ7Civmi5vlvoXlk6EgPiB1c2hlcjsKK+esrOS4gOasoSA+IGZpcnN0Owor5oSP5aSn5YipID4gaXRhbHk7CivmsLTlubPpnaIgPiBwbGFuZTsKK+S6num6u+W4gyA+IGxpbmVuOwor5rqc5Yaw6Z6LID4gc2thdGU7CivkvZzlk7zogbIgPiBzbm9ydDsKK+ijvemAoOiAhSA+IG1ha2VyOwor54Sh55Sf5ZG9ID4gaW5lcnQ7CivpharovrLmpa0gPiBkYWlyeTsKK+awtOiSuOawoyA+IHZhcG9yOwor5YOP54mH57C/ID4gYWxidW07CivotIjoiIfogIUgPiBnaXZlcjsKK+adv+aineeusSA+IGNyYXRlOwor5aSp6JeN6ImyID4gYXp1cmU7Civpo5vooYzlk6EgPiBwaWxvdDsKK+aNkOi0iOiAhSA+IGRvbm9yOwor6KW/54+t54mZID4gc3BhaW47Civmj5DlpJrmm7ggPiB0aXR1czsKK+eUn+m6teezsCA+IGRvdWdoOwor6Zi/5ouJ5pGpID4gYWxhbW87CivnlLfpq5jpn7MgPiB0ZW5vcjsKK+S4gOm7nuWFkiA+IGFcLWJpdDsKK+iLseeJueeIviA+IGludGVsOwor5bCP5qi55p6XID4gZ3JvdmU7CivluIPokIrniL4gPiBibGFpcjsKK+aSpeeBq+ajjSA+IHBva2VyOwor5Zyo5peB6YKKID4gYXNpZGU7Civnh5/mpa3lk6EgPiBjbGVyazsKK+S9v+WbuuWumiA+IHJpdmV0Owor6K2m5aCx5ZmoID4gc2lyZW47CivkuInop5LmtLIgPiBkZWx0YTsKK+WogeeIvuWjqyA+IHdhbGVzOwor6IKv5bC85LqeID4ga2VueWE7CivpurXljIXnmq4gPiBjcnVzdDsKK+efs+WNl+aouSA+IGhlYXRoOwor6J6657Wy6YeYID4gc2NyZXc7Civopb/mtIvmo4sgPiBjaGVzczsKK+WUseipqeePrSA+IGNob2lyOwor6KW/5rSL5p2JID4gY2VkYXI7Civkvb/murrmrbsgPiBkcm93bjsKK+WGjeS4gOasoSA+IGFnYWluOwor5Zyw5pa55oCnID4gbG9jYWw7CivnmbzniaLpqLcgPiB3aGluZTsKK+mVt+mguOeTtiA+IGZsYXNrOwor55q655yJ6aCtID4gc2Nvd2w7Civpp5Xpp5vlk6EgPiBwaWxvdDsKK+S+huemj+anjSA+IHJpZmxlOwor5ZC16ayn6IGyID4gbm9pc2U7CivmpZTlvaLniakgPiB3ZWRnZTsKK+a1gea1quiAhSA+IHJvdmVyOwor5q+b5Ze25ZiwID4gc2VyZ2U7CivngYzmnKjlj6IgPiBzY3J1YjsKK+i1t+mHjeapnyA+IGNyYW5lOwor56KO5biD5qKdID4gc2hyZWQ7CivlhaflnKjnmoQgPiBpbm5lcjsKK+mssemHkemmmSA+IHR1bGlwOwor6Zuq6IyE54WZID4gY2lnYXI7Civng6TpurXljIUgPiB0b2FzdDsKK+WQueesm+iAhSA+IHBpcGVyOwor5LiA5be05o6MID4gc3Bhbms7CivntbHmsrvogIUgPiBydWxlcjsKK+WRvOWPq+iBsiA+IHdob29wOwor5bqn5Y+z6YqYID4gbW90dG87CivkuInnqJzpj6EgPiBwcmlzbTsKK+efruWiqeWiqSA+IHB1ZGd5Owor6Zi/54i+5rOVID4gYWxwaGE7Civmr5TkvovlsLogPiBzY2FsZTsKK+WPjeaKl+iAhSA+IHJlYmVsOwor5ZOq5LiA5YCLID4gd2hpY2g7CivlkIjogqHnt5ogPiB0d2luZTsKK+mCgemYv+WvhiA+IG1pYW1pOwor6Ly/6KuW55WMID4gbWVkaWE7CivnkZ7lhbjkurogPiBzd2VkZTsKK+S9v+e+nuaEpyA+IGFiYXNoOwor55S35a2Q5rCjID4gbWFubHk7Civkvb/lqJvmqIIgPiBhbXVzZTsKK+Wqs+WppuWFkiA+IHdpZmU7CivkvIrmi4nlhYsgPiBpcmFxOwor5pyJ6IO95YqbID4gYWJsZTsKK+Wfg+exs+eIviA+IGVtaXI7CivlkpbllaHppKggPiBjYWZlOwor5LiA5a6a6KaBID4gbXVzdDsKK+mAmuihjOeohSA+IHRvbGw7CivnjononIDpu40gPiBjb3JuOwor5bCP5q+b6J+yID4gc2x1ZzsKK+acgOS4u+imgSA+IG1haW47CivnjLbku5blt54gPiB1dGFoOwor5L2/5Y+X5YK3ID4gaHVydDsKK+eri+aWuemrlCA+IGN1YmU7Civnmb3pqqjpoIIgPiBjb290Owor6K235Z+O5rKzID4gbW9hdDsKK+a0i+Wog+WogyA+IGRvbGw7CivmhJ/oprrliLAgPiBmZWVsOwor5LiL5LiA5qyhID4gbmV4dDsKK+a3uum7g+iJsiA+IGJ1ZmY7CivlpKfooovlrZAgPiBzYWNrOwor5ZyI54uA54mpID4gaG9vcDsKK+S4jeWPiuagvCA+IGZhaWw7Civlh7rnp5/ou4ogPiB0YXhpOwor5L+d6Zqq57WyID4gZnVzZTsKK+WFiOimi+iAhSA+IHNlZXI7CivmiYvmi4nou4ogPiBjYXJ0Owor54i15aOr6IieID4gamF6ejsKK+WSluWVoeW6lyA+IGNhZmU7Civoib7mu4vnl4UgPiBhaWRzOwor5YWr5ZOl5YWSID4gbXluYTsKK+mbu+eHiOazoSA+IGJ1bGI7CivnjLblpKfmm7ggPiBqdWRlOwor5aSn6aCt6YeYID4gdGFjazsKK+aEm+a7i+eXhSA+IGFpZHM7CivotaToo7joo7ggPiBiYXJlOwor5ZyT5bGL6aCCID4gZG9tZTsKK+mbmeiDnuiDjiA+IHR3aW47CivkuIDloYrpurUgPiBsb2FmOwor5L2/55So6ICFID4gdXNlcjsKK+WkluWwj+iFvyA+IHNoaW47Civom4vnmb3nn7MgPiBvcGFsOwor5LiA5YiG6YyiID4gY2VudDsKK+Wck+mMkOmrlCA+IGNvbmU7Civnmb7lkIjoirEgPiBsaWx5Owor6KiI56iL6LuKID4gdGF4aTsKK+icguicnOmFkiA+IG1lYWQ7CivpnZ7luLjlpJogPiBtdWNoOwor5Zyo5LmL5LiKID4gb3ZlcjsKK+ecqOecvOedmyA+IHdpbms7CivosrTlqabkurogPiBkYW1lOwor57SF5a+255+zID4gcnVieTsKK+i7n+acqOWhniA+IGNvcms7CivnsonntIXoibIgPiBwaW5rOwor5ZG85ZG86IGyID4gd2hpcjsKK+W/q+atpei3kSA+IHRyb3Q7CivoqqrorIrogIUgPiBsaWFyOwor6Zmq5a+p5ZyYID4ganVyeTsKK+e5vOS5mOS6uiA+IGhlaXI7CivlhYnnpr/npr8gPiBiYWxkOwor5p6c6aSh6aSFID4gdGFydDsKK+WYtuWYtuiBsiA+IGhpc3M7Civmk6bpu5HlhZIgPiBkdXNrOwor5rC05p6c6YWSID4gd2luZTsKK+eZqeWTiOifhiA+IHRvYWQ7CivnuZTluIPmqZ8gPiBsb29tOwor5qmi5ZyT5b2iID4gb3ZhbDsKK+epuueZvem7niA+IGdhcDsKK+eCuueUmum6vCA+IHdoeTsKK+eUt+WtqeWtkCA+IGJveTsKK+a1uOS4gOS4iyA+IGRpcDsKK+WcqOecvOWJjSA+IG5vdzsKK+eEoeiKseaenCA+IGZpZzsKK+eUt+WtqeWFkiA+IGJveTsKK+iyk+WPq+iBsiA+IG1ldzsKK+e0sOmguOeTtiA+IGp1ZzsKK+W4uOaYpeiXpCA+IGl2eTsKK+eCuuS7gOm6vCA+IHdoeTsKK+eEoeWwvueMvyA+IGFwZTsKK+Wwj+eyvumdiCA+IGVsZjsKK+iAgeWkqeeIuiA+IGdvZDsKK+mbtum7nuWFrSA+IDBcLjY7CivloqjmsLTlhZIgPiBpbms7Civlha3pu57lha0gPiA2XC42Owor55So5rK554K4ID4gZnJ5Owor6auU6IKy6aSoID4gZ3ltOwor5LiD6bue5LqUID4gN1wuNTsKK+S4g+m7nuS6jCA+IDdcLjI7Civli5XnianlnJIgPiB6b287CivnjLblpKrkurogPiBqZXc7Civpu4PopJDoibIgPiB0YW47CivnrYbmob/lrZAgPiBwZW47CivkuZ3kuIPlubQgPiAnJzk3Owor6KiI5LmY6LuKID4gY2FiOwor5bCP5LyZ5a2QID4gbGFkOwor6LKT6aCt6be5ID4gb3dsOwor5ZCR5LiK5ZywID4gdXA7CivorormlocgPiBhXC1wb3B1bGFyXC1mb3JtXC1vZlwtbmFycmF0aXZlXC1saXRlcmF0dXJlXC1mbG91cmlzaGluZ1wtaW5cLXRoZVwtdGFuZ1wtZHluYXN0eVwtXCg2MThcLTkwN1wpXC13aXRoXC1hbHRlcm5hdGVcLXByb3NlXC1hbmRcLXJoeW1lZFwtcGFydHNcLWZvclwtcmVjaXRhdGlvblwtYW5kXC1zaW5naW5nXC1cKG9mdGVuXC1vblwtYnVkZGhpc3RpY1wtdGhlbWVzXCk7CivpgorluaMgPiBib3JkZXJcLXJlZ2lvblwtY3VycmVuY3lcLVwoY29uc2lzdGluZ1wtb2ZcLXRoZVwtY3VycmVuY3lcLW5vdGVzXC1pc3N1ZWRcLWJ5XC10aGVcLWJvcmRlclwtcmVnaW9uXC1nb3Zlcm5tZW50c1wtZHVyaW5nXC10aGVcLXdhclwtb2ZcLXJlc2lzdGFuY2VcLWFnYWluc3RcLWphcGFuXC1hbmRcLXRoZVwtd2FyXC1vZlwtbGliZXJhdGlvblwpOwor5ZCM5pyfID4gdGhlXC1jb3JyZXNwb25kaW5nXC10aW1lXC1wZXJpb2RcLVwoZWdcLFwtY29tcGFyZVwtaW5mbGF0aW9uXC1ub3dcLXdpdGhcLXRoZVwtcmF0ZVwtZHVyaW5nXC10aGVcLXNhbWVcLW1vbnRoXC1sYXN0XC15ZWFyXCk7CivlgY/lgY8gPiBcKGluZGljYXRlc1wtdGhhdFwtc3RoXC5cLXR1cm5zXC1vdXRcLWp1c3RcLXRoZVwtb3Bwb3NpdGVcLW9mXC13aGF0XC1vbmVcLXdvdWxkXC1leHBlY3RcLW9yXC13aGF0XC13b3VsZFwtYmVcLW5vcm1hbFwpOwor5pWs56WdID4gdG9cLXJlc3BlY3RmdWxseVwtb2ZmZXJcLVwod3JpdHRlblwtYXRcLXRoZVwtZW5kXC1vZlwtbGV0dGVyXC1mcm9tXC1zb21lb25lXC1vZlwtbG93ZXJcLXN0YXR1c1wtdG9cLWhpZ2hlclwtc3RhdHVzXCk7CivljZzovq0gPiBvcmFjbGVcLWluc2NyaXB0aW9uc1wtb2ZcLXRoZVwtc2hhbmdcLWR5bmFzdHlcLVwoMTZ0aFwtMTF0aFwtY2VudHVyeVwtYmNcKVwtb25cLXRvcnRvaXNlc2hlbGxzXC1vclwtYW5pbWFsXC1ib25lczsKK+a0m+W+tyA+IFwod2luc3RvblwpXC1sb3JkXC1cKGZvcm1lclwtYXNzaXN0YW50XC1zZWNyZXRhcnlcLW9mXC1zdGF0ZVwtZm9yXC1lYXN0XC1hc2lhXC1hbmRcLXBhY2lmaWNcLWFmZmFpcnNcKTsKK+W9t+W+qCA+IG5hbWVcLW9mXC1hXC1jb2xsZWN0aW9uXC1vZlwtc2hvcnRcLXN0b3JpZXNcLFwtcGFuZ1wtaHVhbmdcLFwtXCJ3YW5kZXJpbmdcLWFib3V0XCJcLFwtYnlcLWx1M1wteHVuNFwt6a2v6L+FOwor6Zmz5q+FID4gY2hlblwteWlcLFwtZm9ybWVyXC1tYXlvclwtb2ZcLXNoYW5naGFpXC1hbmRcLWhpZ2hlc3RcLXJhbmtpbmdcLW1pbGl0YXJ5XC1jb21tYW5kZXJcLWluXC1jaGluYTsKK+WMheW3pSA+IHVuZGVydGFrZVwtdG9cLXBlcmZvcm1cLXdvcmtcLXdpdGhpblwtYVwtdGltZVwtbGltaXRcLWFuZFwtYWNjb3JkaW5nXC10b1wtc3BlY2lmaWNhdGlvbnM7Civpg6jpppYgPiByYWRpY2Fsc1wtYnlcLXdoaWNoXC1jaGFyYWN0ZXJzXC1hcmVcLWFycmFuZ2VkXC1pblwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLWRpY3Rpb25hcmllczsKK+mcuOS4uyA+IGFcLXBvd2VyZnVsXC1jaGllZlwtb2ZcLXRoZVwtcHJpbmNlc1wtb2ZcLXRoZVwtc3ByaW5nXC1hbmRcLWF1dHVtblwtcGVyaW9kXC1cKDc3MFwtNDc2XC1iY1wpOwor5Zyo5pa8ID4gXCh0aGVcLXByb2JsZW1cLW9yXC1leHBsYW5hdGlvblwtb3JcLWFkdmFudGFnZVwtZXRjXC5cKVwtbGllc1wtaW5cLVwodGhlXC1mYWN0XC10aGF0XC5cLlwuXCk7CivmlZnoqJMgPiBcKHRlYWNoXC1zb21lb25lXC1vclwtbGVhcm5cLWFcKVwtbGVzc29uXC1cKGllXCxcLW9idGFpblwtd2lzZG9tXC1mcm9tXC1hblwtZXhwZXJpZW5jZVwpOwor6aeB5bK4ID4gYVwtbG93XC1zdG9uZVwtd2FsbFwtYnVpbHRcLWFsb25nXC10aGVcLXdhdGVyJydzXC1lZGdlXC10b1wtcHJvdGVjdFwtYW5cLWVtYmFua21lbnQ7Civoo5zms5UgPiB0cmVhdG1lbnRcLWludm9sdmluZ1wtdGhlXC11c2VcLW9mXC10b25pY3NcLXRvXC1yZXN0b3JlXC10aGVcLXBhdGllbnQnJ3NcLWhlYWx0aDsKK+S4ieS4jSA+IFwidGhlXC10aHJlZVwtbm8nJ3NcIlwtXChhblwtZXhhbXBsZVwtb2ZcLWFuXC1hYmJyZXZpYXRlZFwtc2xvZ2FuXC1vclwtY2F0Y2hwaHJhc2VcKTsKK+eZveacriA+IHRoZVwtcmhpem9tZVwtb2ZcLWxhcmdlXC1oZWFkZWRcLWF0cmFjdHlsb2Rlc1wtXChhdHJhY3R5bG9kZXNcLW1hY3JvY2VwaGFpYVwpOwor5a6j5YikID4gcHJvbm91bmNlXC1hXC1cKGp1ZGljaWFsXClcLXNlbnRlbmNlXC1cKGFmdGVyXC1hXC12ZXJkaWN0XC1pblwtYVwtY291cnRcLW9mXC1sYXdcKTsKK+eXheWPiyA+IGFcLWZyaWVuZFwtbWFkZVwtaW5cLWhvc3BpdGFsXC1vclwtcGVvcGxlXC13aG9cLWJlY29tZVwtZnJpZW5kc1wtaW5cLWhvc3BpdGFsOwor5bCx5pivID4gXChlbXBoYXNpemVzXC10aGF0XC1zb21ldGhpbmdcLWlzXC1wcmVjaXNlbHlcLW9yXC1leGFjdGx5XC13aGF0XC1pc1wtc3RhdGVkXCk7CivlpKfnprkgPiBkYVwteXVcLFwtbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1oZXJvXC13aG9cLXN1Y2Nlc3NmdWxseVwtY29udHJvbGxlZFwtZmxvb2RzOwor6KGo6K2JID4gaWxsbmVzc1wtdGhhdFwtaGFzXC1ub3RcLWF0dGFja2VkXC10aGVcLXZpdGFsXC1vcmdhbnNcLW9mXC10aGVcLWh1bWFuXC1ib2R5Owor5bmr6ZaRID4gaGFuZ1wtb25cLXRvXC1hbmRcLXNlcnZlXC10aGVcLXJpY2hcLWFuZFwtcG93ZXJmdWxcLWJ5XC1saXRlcmFyeVwtaGFja1wtd29yazsKK+aPj+e0hSA+IHRvXC10cmFjZVwtb3ZlclwtcmVkXC1jaGFyYWN0ZXJzXC1cKGFzXC1hXC1tZXRob2RcLW9mXC1sZWFybmluZ1wtdG9cLXdyaXRlXCk7CivmipfmiLAgPiB3YXJcLW9mXC1yZXNpc3RhbmNlXCxcLWVzcGVjaWFsbHlcLXRoZVwtd2FyXC1hZ2FpbnN0XC1qYXBhblwtXCgxOTM3XC0xOTQ1XCk7Civku4rpn7MgPiBtb2Rlcm5cLVwoaVwuZVwuXC1ub3RcLWFuY2llbnRcKVwtcHJvbnVuY2lhdGlvblwtb2ZcLWFcLWNoaW5lc2VcLWNoYXJhY3RlcjsKK+aDi+aDnCA+IHRvXC1mZWVsXC1zb3JyeVwtZm9yXC1hXC1wZXJzb25cLW92ZXJcLXN0aFwtdGhhdFwtc2hvdWxkXC1oYXZlXC1oYXBwZW5lZDsKK+edpeedqCA+IGxvb2tcLWF0XC1zb21lYm9keVwtZGlzZGFpbmZ1bGx5XC1vdXRcLW9mXC10aGVcLWNvcm5lclwtb2ZcLW9uZScnc1wtZXllOwor6IOh6YGpID4gaHVcLXNoaVwtXCgxODkxXC0xOTYyXClcLFwtb3JpZ2luYWxcLXByb3BvbmVudFwtb2ZcLWJhaTJcLWh1YTRcLXdlbjJcLeeZveipseaWhzsKK+i7jeWnlCA+IG1pbGl0YXJ5XC1jb21taXNzaW9uXC1vZlwtdGhlXC1jb21tdW5pc3RcLXBhcnR5XC1jZW50cmFsXC1jb21taXR0ZWU7Civnh4jnr4AgPiB0aGVcLWxhbnRlcm5cLWZlc3RpdmFsXC1cKDE1dGhcLW9mXC1maXJzdFwtbW9udGhcLW9mXC1sdW5hclwtY2FsZW5kYXJcKTsKK+WMl+a0iyA+IHRoZVwtcWluZ1wtZHluYXN0eVwtbmFtZVwtZm9yXC10aGVcLWNvYXN0YWxcLXByb3ZpbmNlc1wtb2ZcLWxpYW9uaW5nOwor5YWr5peXID4gdGhlXC1cImVpZ2h0XC1iYW5uZXJzXCJcLVwobWlsaXRhcnlcLW9yZ2FuaXNhdGlvblwtaW5cLXFpbmdcLWR5bmFzdHlcKTsKK+iXpOmHjiA+IG5hbWVcLW9mXC1hXC1wZXJzb25cLFwtdGVuZ1wteWVcLFwtYVwtamFwYW5lc2VcLWZyaWVuZFwtb2ZcLWx1M1wteHVuNFwt6a2v6L+FOwor6I+v6KGoID4gbWFyYmxlXC1waWxsYXJcLVwob3JuYW1lbnRhbFwtY29sdW1uXC1pblwtZnJvbnRcLW9mXC1wbGFjZXNcLFwtdG9tYnNcKTsKK+W+healrSA+IHRvXC1hd2FpdFwtam9iXC1hc3NpZ25tZW50XC1cKHRlcm1cLXVzZWRcLW9ubHlcLWluXC1tYWlubGFuZFwtY2hpbmFcKTsKK+aJruebuCA+IHRoZVwtYXBwZWFyYW5jZVwtb2ZcLWFuXC1hY3Rvclwtb3JcLWFjdHJlc3NcLWluXC1jb3N0dW1lXC1vclwtbWFrZXVwOwor5q2m6KGTID4gd3VzaHVcLFwtbWFydGlhbFwtYXJ0c1wtc3VjaFwtYXNcLXNoYWRvd1wtYm94aW5nXCxcLXN3b3JkcGxheVwsXC1ldGNcLjsKK+S4reWFsSA+IFwoYWJicmV2aWF0aW9uXC1mb3JcKVwtY2hpbmVzZVwtY29tbXVuaXN0XC1cKHBhcnR5XCxcLXJlZ2ltZVwsXC1ldGNcLlwpOwor5pS/5Y2UID4gY3BwY2NcLVwoY2hpbmVzZVwtcGVvcGxlJydzXC1wb2xpdGljYWxcLWNvbnN1bHRhdGl2ZVwtY29tbWl0dGVlXCk7CivmjqHlj5YgPiBhZG9wdFwtb3JcLWNhcnJ5XC1vdXRcLVwobWVhc3VyZXNcLFwtcG9saWNpZXNcLFwtY291cnNlXC1vZlwtYWN0aW9uXCk7CivnmZ/kuIkgPiBhXC13cmV0Y2hlZFwtbG9va2luZ1wtdHJhbXBcLXdob1wtbGl2ZXNcLWJ5XC1iZWdnaW5nXC1vclwtc3RlYWxpbmc7CivooajlhYQgPiBtYWxlXC1jb3VzaW5cLXdpdGhcLWFcLWRpZmZlcmVudFwtc3VybmFtZVwtXChvbGRlclwtdGhhblwtb25lc2VsZlwpOwor5LuZ6I2JID4gYVwta2luZFwtb2ZcLXBsYW50XC11c2VkXC1hc1wtYVwtbWVkaWNpbmFsXC1oZXJiXC1pblwtYW5jaWVudFwtdGltZXM7Civmnb/og6EgPiBhXC1ib3dlZFwtc3RyaW5nZWRcLWluc3RydW1lbnRcLXdpdGhcLWFcLXRoaW5cLXdvb2Rlblwtc291bmRib2FyZDsKK+ijnOmkiiA+IHRha2VcLWFcLXRvbmljXC1vclwtbm91cmlzaGluZ1wtZm9vZFwtdG9cLWJ1aWxkXC11cFwtb25lJydzXC1oZWFsdGg7Civmi7zlkb0gPiB0b1wtYmVcLXJlYWR5XC10b1wtcmlza1wtb25lJydzXC1saWZlXC1cKGluXC1maWdodGluZ1wsXC13b3JrXCxcLWV0Y1wuXCk7CivpgbfmgJIgPiB0b1wtdGFrZVwtb25lJydzXC1hbmdlclwtb3V0XC1vblwtc2JcLVwod2hvXC1kb2VzXC1ub3RcLWRlc2VydmVcLWl0XCk7Civmjpvlpb0gPiB0b1wtaGFuZ1wtdXBcLXByb3Blcmx5XC1cKHRlbGVwaG9uZVwsXC1waWN0dXJlXCxcLWNsb3RoZXNcLFwtZXRjXC5cKTsKK+aLlOavkiA+IGRyYXdcLW91dFwtcHVzXC1ieVwtYXBwbHlpbmdcLWFcLXBsYXN0ZXJcLXRvXC10aGVcLWFmZmVjdGVkXC1hcmVhOwor55Wc5YqbID4gYW5pbWFsXC1wb3dlcmVkXC1cKGFzXC1vcHBvc2VkXC10b1wtaHVtYW5cLW9yXC1tYWNoaW5lXC1wb3dlcmVkXCk7CivluavohZQgPiB2b2NhbFwtYWNjb21wYW5pbWVudFwtaW5cLXNvbWVcLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1vcGVyYXM7CivlpZTllqogPiBoYXN0ZW5cLWhvbWVcLWZvclwtdGhlXC1mdW5lcmFsXC1vZlwtYVwtcGFyZW50XC1vclwtZ3JhbmRwYXJlbnQ7Civnmb3oio0gPiBcKHBlZWxlZFwpXC1yb290XC1vZlwtaGVyYmFjZW91c1wtcGVvbnlcLVwocGFlb25pYVwtbGFjdGlmbG9yYVwpOwor6IiI6LajID4gaW50ZXJlc3RcLVwoZGlyZWN0ZWRcLXRvd2FyZHNcLFwtbm90XC1pbmhlcmVudFwtaW5cLXNvbWV0aGluZ1wpOwor5qiZ5YW1ID4gcGFyYWRlXC1ndWFyZHNcLVwodXN1YWxseVwtc3BhY2VkXC1vdXRcLWFsb25nXC1wYXJhZGVcLXJvdXRlc1wpOwor5rOV5rW3ID4gbmFtZVwtb2ZcLWFcLWJ1ZGRoaXN0XC1tb25rXCxcLWZhaGFpXCxcLWZyb21cLW1hZGFtXC13aGl0ZVwtc25ha2U7CivlvYjnkLQgPiB0b1wtcGxheVwtb3JcLXN0cnVtXC1hXC1sdXRlXC1vclwtb3RoZXJcLXN0cmluZ2VkXC1pbnN0cnVtZW50Owor55m96Zm2ID4gd2hpdGVcLXBvdHRlcnlcLVwob2ZcLXNoYW5nXC1keW5hc3RyeVwtMTZcLTExdGhcLWNlbnR1cnlcLWJjXCk7CivljIXlubIgPiBiZVwtcmVzcG9uc2libGVcLWZvclwtYVwtdGFza1wtdW5pdFwtdW50aWxcLWl0XC1pc1wtY29tcGxldGVkOwor5bmz5pa5ID4gc3F1YXJlXC1cKGFzXC1pblwtc3F1YXJlXC1mb290XCxcLXNxdWFyZVwtbWlsZVwsXC1zcXVhcmVcLXJvb3RcKTsKK+aLieiynSA+IFwoam9oblwpXC1yYWJlXC1cKGdlcm1hblwtZXlld2l0bmVzc1wtdG9cLW5hbmppbmdcLW1hc3NhY3JlXCk7Civlt6vlsbEgPiBtdFwuXC13dVwsXC1vblwtdGhlXC1jaGFuZ2ppYW5nXC1yaXZlclwtYnlcLXRoZVwtdGhyZWVcLWdvcmdlczsKK+aNleS/mCA+IGNhcHR1cmVcLWVuZW15XC1wZXJzb25uZWxcLVwoZm9yXC1pbnRlbGxpZ2VuY2VcLXB1cnBvc2VzXCk7Civpj6LlrqIgPiBhcm1lZFwtZXNjb3J0XC1cKG9mXC10cmF2ZWxsZXJzXC1vclwtbWVyY2hhbnRzJydcLWNhcmF2YW5zXCk7Civosp3mr40gPiB0aGVcLWJ1bGJcLW9mXC10aGVcLWZyaXRpbGxhcnlcLVwoZnJpdGlsbGFyaWFcLXRodW5iZXJnaWlcKTsKK+WQjeWLnSA+IGFcLXBsYWNlXC1mYW1vdXNcLWZvclwtaXRzXC1zY2VuZXJ5XC1vclwtaGlzdG9yaWNhbFwtcmVsaWNzOwor5rCR5qiCID4gbXVzaWNcLFwtZXNwXC5cLWZvbGtcLW11c2ljXCxcLWZvclwtdHJhZGl0aW9uYWxcLWluc3RydW1lbnRzOwor6Zmd6KW/ID4gc2hhYW54aVwtcHJvdmluY2VcLFwtY2hpbmFcLVwoY2FwaXRvbFwtY2l0eVwtaXNcLXhpJydhblwt6KW/5a6JXCk7Civml6XmlrkgPiB0aGVcLWphcGFuZXNlXC1zaWRlXC1vclwtcGFydHlcLVwoaW5cLW5lZ290aWF0aW9uc1wsXC1ldGNcLlwpOwor5qmr5oqYID4gXChob3Jpem9udGFsXC1zdGFydGluZ1wtcmlnaHRcLWFuZ2xlXC1jaGFyYWN0ZXJcLXN0cm9rZVwpOwor6KW/5a6JID4geGknJ2FuXC1cKGNpdHlcKVwsXC10aGVcLWNhcGl0b2xcLWNpdHlcLW9mXC1zaGFhbnhpXC1wcm92aW5jZTsKK+Wwj+mdkiA+IG5hbWVcLW9mXC1hXC1wZXJzb25cLFwteGlhb3FpbmdcLFwtZnJvbVwtbWFkYW1cLXdoaXRlXC1zbmFrZTsKK+iHqOaRuSA+IHRvXC1jb3B5XC1cKGFcLW1vZGVsXC1vZlwtY2FsbGlncmFwaHlcLW9yXC1wYWludGluZ1wsXC1ldGNcLlwpOwor5YKZ5Y+WID4gYmVcLW9uXC10aGVcLXdhaXRpbmdcLWxpc3RcLVwoZm9yXC1hZG1pc3Npb25cLXRvXC1hXC1zY2hvb2xcKTsKK+acrOacqyA+IHRoZVwtd2hvbGVcLWNvdXJzZVwtb2ZcLWFuXC1ldmVudFwtZnJvbVwtYmVnaW5uaW5nXC10b1wtZW5kOwor6aCT5oyrID4gd2l0aFwtc3luY29wYXRlZFwtY2FkZW5jZVwtXChicnVzaFwtc3Ryb2tlXC1pblwtcGFpbnRpbmdcKTsKK+eJiOeVqyA+IGFcLXBpY3R1cmVcLXByaW50ZWRcLWZyb21cLWFuXC1lbmdyYXZlZFwtb3JcLWV0Y2hlZFwtcGxhdGU7Civpgb/oq7EgPiB0YWJvb1wtYWdhaW5zdFwtdXNpbmdcLXRoZVwtcGVyc29uYWxcLW5hbWVzXC1vZlwtZW1wZXJvcnM7Civmrabmnb4gPiB3dXNvbmdcLFwtbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC1hXC1oZXJvXC1pblwtc2h1aVwtaHVcLXpodWFuOwor6Kix5LuZID4gbmFtZVwtb2ZcLWFcLXBlcnNvblwsXC14dVwteGlhblwsXC1mcm9tXC1tYWRhbVwtd2hpdGVcLXNuYWtlOwor5YSQ55u4ID4gYXR0ZW5kYW50XC1vZlwtdGhlXC1icmlkZVwtb3JcLWJyaWRlZ3Jvb21cLWF0XC1hXC13ZWRkaW5nOwor6KOc54CJID4gcmVpbmZvcmNpbmdcLWFuZFwtcmVkdWNpbmdcLW1ldGhvZHNcLVwoaW5cLWFjdXB1bmN0dXJlXCk7CivlubnkuosgPiBhZG1pbmlzdHJhdGl2ZVwtc2VjcmV0YXJ5XC1cKGluXC1jaGFyZ2VcLW9mXC1zb21ldGhpbmdcKTsKK+W3q+WzvSA+IHd1eGlhXC1nb3JnZVwsXC1pblwtdGhlXC1jaGFuZ2ppYW5nXC1yaXZlclwtdGhyZWVcLWdvcmdlczsKK+aKmOethiA+IGFnYWluc3RcLXRoZVwtYnJpc3RsZXNcLVwoYnJ1c2hcLW1vdmVtZW50XC1pblwtcGFpbnRpbmdcKTsKK+WwiOe3miA+IHNwZWNpYWxcLXB1cnBvc2VcLXBob25lXC1saW5lXC1vclwtY29tbXVuaWNhdGlvbnNcLWxpbms7CivlnJblhYsgPiBcKGdhcnlcLWxcLlwpXC10b29rZXJcLVwobW90b3JvbGFcLWNoYWlybWFuXC1vZlwtdGhlXC1ib2FyZFwpOwor5pac6YmkID4gXChkb3dud2FyZHNcLXJpZ2h0XC1jb25jYXZlXC1ob29rZWRcLWNoYXJhY3Rlclwtc3Ryb2tlXCk7CivosY7mipggPiBcKGRvd253YXJkc1wtc3RhcnRpbmdcLXJpZ2h0XC1hbmdsZVwtY2hhcmFjdGVyXC1zdHJva2VcKTsKK+iAgeWFhCA+ICcnb2xkXC1jaGFwJydcLVwoZm9ybVwtb2ZcLWFkZHJlc3NcLWJldHdlZW5cLW1hbGVcLWZyaWVuZHNcKTsKK+apq+ethiA+IGJyaXN0bGVzXC1seWluZ1wtZG93blwtXChicnVzaFwtbW92ZW1lbnRcLWluXC1wYWludGluZ1wpOwor5o6h6LO8ID4gbWFrZVwtcHVyY2hhc2VzXC1mb3JcLWFuXC1vcmdhbml6YXRpb25cLW9yXC1lbnRlcnByaXNlOwor5q2j5ZyoID4gaW5cLXRoZVwtcHJvY2Vzc1wtb2ZcLVwoZG9pbmdcLXNvbWV0aGluZ1wtb3JcLWhhcHBlbmluZ1wpOwor5aCx5ZyLID4gZGVkaWNhdGVcLW9uZXNlbGZcLXRvXC10aGVcLXNlcnZpY2VcLW9mXC1vbmUnJ3NcLWNvdW50cnk7CivnrYbop7ggPiBicnVzaFwtc3Ryb2tlXC1pblwtY2hpbmVzZVwtcGFpbnRpbmdcLWFuZFwtY2FsbGlncmFwaHk7Civkvr/kurogPiBzb21lYm9keVwtd2hvXC1oYXBwZW5zXC10b1wtYmVcLW9uXC1oYW5kXC1mb3JcLWFuXC1lcnJhbmQ7CivorJ3ovpsgPiBjaGVhXC1zaW1cLVwoY2FtYm9kaWFuXC1uYXRpb25hbFwtYXNzZW1ibHlcLXByZXNpZGVudFwpOwor5aSW6Zu7ID4gcmVwb3J0c1wtZnJvbVwtZm9yZWlnblwtXChub25cLWNoaW5lc2VcKVwtbmV3c1wtYWdhbmNpZXM7CivnvbfkuoYgPiBhXC1tb2RhbFwtcGFydGljbGVcLWluZGljYXRpbmdcLVwoZG9uJyd0XC1taW5kXC1pdFwsXC1va1wpOwor6Z2c5bGxID4gY2hlbmdcLXNhblwtXChlbGVjdG9yYWxcLWNvbnN0aXR1ZW5jeVwtaW5cLXNpbmdhcG9yZVwpOwor5oqT6aOvID4gYVwta2luZFwtb2ZcLWZvb2RcLXBvcHVsYXJcLWFtb25nXC1iZWxpZXZlcnNcLWluXC1pc2xhbTsKK+eZveaPjyA+IGxpbmVcLWRyYXdpbmdcLWluXC10cmFkaXRpb25hbFwtaW5rXC1hbmRcLWJydXNoXC1zdHlsZTsKK+WUkOWxsSA+IHRhbmdcLXNoYW5cLVwoYVwtY2hpbmVzZVwtY2l0eVwtaW5cLWhlYmVpXC3msrPljJdcLXByb3ZpbmNlXCk7Civpgb/lq4wgPiBhdm9pZFwtZG9pbmdcLWFueXRoaW5nXC10aGF0XC1tYXlcLWFyb3VzZVwtc3VzcGljaW9uOwor5aCx5bmVID4gYW5ub3VuY2VcLXRoZVwtaXRlbXNcLW9uXC1hXC1cKHRoZWF0cmljYWxcKVwtcHJvZ3JhbW1lOwor6Kaq5a62ID4gcGFyZW50c1wtb2ZcLW9uZScnc1wtZGF1Z2h0ZXJcLWluXC1sYXdcLW9yXC1zb25cLWluXC1sYXc7Civllpzns5YgPiBzd2VldFwtZ2l2ZW5cLW9uXC1hXC1oYXBweVwtb2NjYXNpb25cLVwoZXNwXC5cLXdlZGRpbmdcKTsKK+aLnOWjvSA+IGNvbmdyYXR1bGF0ZVwtYW5cLWVsZGVybHlcLXBlcnNvblwtb25cLWhpc1wtYmlydGhkYXk7CivkuKbooYwgPiBpblwtcGFyYWxsZWxcLVxbZGV2ZWxvcG1lbnRcLFwtaW1wbGVtZW50YXRpb25cLFwtZXRjXF07CivkvK/mnbAgPiBcKHNhbXVlbFwpXC1iZXJnZXJcLVwodXNcLW5hdGlvbmFsXC1zZWN1cml0eVwtYWR2aXNvclwpOwor5p2x55ufID4gYXNlYW5cLVwoYXNzb2NpYXRpb25cLW9mXC1zb3V0aGVhc3RcLWFzaWFuXC1uYXRpb25zXCk7Civmm77ntpMgPiBcKHJlZmVyc1wtdG9cLXNvbWV0aGluZ1wtdGhhdFwtaGFwcGVuZWRcLXByZXZpb3VzbHlcKTsKK+WPr+imiyA+IGl0XC1jYW5cLWNsZWFybHlcLWJlXC1zZWVuXC1cKHRoYXRcLXRoaXNcLWlzXC10aGVcLWNhc2VcKTsKK+aFsOWVjyA+IGV4cHJlc3NcLXN5bXBhdGh5XCxcLWdyZWV0aW5nc1wsXC1jb25zb2xhdGlvblwsXC1ldGNcLjsKK+a1t+W+tyA+IGh5ZGVcLVwoZWdcLFwtaG91c2VcLWp1ZGljaWFyeVwtY2hhaXJtYW5cLWhlbnJ5XC1oeWRlXCk7CivnvoXmlq8gPiByb3RoXC1cKGVnXCxcLWhyd1wtZXhlY3V0aXZlXC1kaXJlY3Rvclwta2VubmV0aFwtcm90aFwpOwor5peB6IG9ID4gYmVcLWFcLXZpc2l0b3JcLVwoYXRcLWFcLW1lZXRpbmdcLFwtY2xhc3NcLFwtdHJpYWxcLFwtZXRjXCk7Civmjqjovq0gPiB0b1wtZGVjbGluZVwtXChhblwtYXBwb2ludG1lbnRcLFwtaW52aXRhdGlvblwsXC1ldGNcLlwpOwor55m955eiID4gZHlzZW50ZXJ5XC1jaGFyYWN0ZXJpemVkXC1ieVwtd2hpdGVcLW11Y291c1wtc3Rvb2w7Civoj6/kvZcgPiBuYW1lXC1vZlwtYVwtZmFtb3VzXC1kb2N0b3JcLWluXC1vbGRcLXRpbWVzXCxcLWh1YVwtdHVvOwor5qOS5qeMID4gd29vZGVuXC1jbHViXC1cKHVzZWRcLXRvXC1iZWF0XC1jbG90aGVzXC1pblwtd2FzaGluZ1wpOwor5ZCe5ZCQID4gdG9cLXRha2VcLWluXC1hbmRcLXNlbmRcLW91dFwtXChpblwtbGFyZ2VcLXF1YW50aXRpZXNcKTsKK+aWt+apiyA+IHRoZVwtYnJva2VuXC1icmlkZ2VcLVwoYXRcLXdlc3RcLWxha2VcLWluXC1oYW5nemhvdVwpOwor5rCj5YqfID4gcWlnb25nXCxcLWFcLXN5c3RlbVwtb2ZcLWRlZXBcLWJyZWF0aGluZ1wtZXhlcmNpc2VzOwor55yB57SaID4gcHJvdmluY2lhbFwtbGV2ZWxcLVwoZWdcLFwtcHJvdmluY2lhbFwtZ292ZXJubWVudFwpOwor5q2m5omTID4gYWNyb2JhdGljXC1maWdodGluZ1wtaW5cLWNoaW5lc2VcLW9wZXJhXC1vclwtZGFuY2U7CivloLHlpLEgPiByZXBvcnRcLXRoZVwtbG9zc1wtdG9cLXRoZVwtYXV0aG9yaXRpZXNcLWNvbmNlcm5lZDsKK+S/nemkiiA+IHRha2VcLWdvb2RcLWNhcmVcLW9mXC1cKG9yXC1jb25zZXJ2ZVwpXC1vbmUnJ3NcLWhlYWx0aDsKK+W5s+S/oSA+IG9yZGluYXJ5XC1tYWlsXC1cKGFzXC1vcHBvc2VkXC10b1wtYWlyXC1tYWlsXCxcLWV0Y1wuXCk7CivliIbkuqsgPiBvYnRhaW5cLW9uZScnc1wtc2hhcmVcLVwob2ZcLXdlYWx0aFwsXC1yaWdodHNcLFwtZXRjXC5cKTsKK+e0heWgoSA+IHJlZFwtZm9ydFwtXChoaXN0b3JpY1wtYnVpbGRpbmdcLWluXC1kZWxoaVwsXC1pbmRpYVwpOwor5YWD5a61ID4gc3dlZXRcLWR1bXBsaW5nc1wtbWFkZVwtb2ZcLWdsdXRpbm91c1wtcmljZVwtZmxvdXI7Civoh6jlr6sgPiB0b1wtY29weVwtXChhXC1tb2RlbFwtb2ZcLWNhbGxpZ3JhcGh5XC1vclwtcGFpbnRpbmdcKTsKK+aciOmkhSA+IG1vb25cLWNha2VcLVwoZXNwXC5cLWZvclwtdGhlXC1taWRcLWF1dHVtblwtZmVzdGl2YWxcKTsKK+aKhOWutiA+IHRvXC1zZWFyY2hcLWFcLWhvdXNlXC1hbmRcLWNvbmZpc2NhdGVcLXBvc3Nlc3Npb25zOwor5pyD6KaLID4gdG9cLW1lZXRcLXdpdGhcLVwoc29tZW9uZVwtd2hvXC1pc1wtcGF5aW5nXC1hXC12aXNpdFwpOwor5aSn6IiJID4gY2FycnlcLW91dFwtYVwtbGFyZ2VcLXNjYWxlXC1cKG1pbGl0YXJ5XClcLW9wZXJhdGlvbjsKK+aXpea8uCA+IFwoa2VlcFwtaW5jcmVhc2luZ1wsXC1jaGFuZ2luZ1wsXC1ldGNcLlwpXC1kYXlcLWJ5XC1kYXk7CivorbDluK0gPiBzZWF0XC1pblwtYVwtcGFybGlhbWVudFwtb3JcLWxlZ2lzbGF0aXZlXC1hc3NlbWJseTsKK+mAmue3nSA+IHdhbnRlZFwtYnlcLXRoZVwtcG9saWNlXC1cKGZ1Z2l0aXZlXC1vclwtY3JpbWluYWxcKTsKK+ecn+e0jSA+IFwobW9oYW1tYWRcLWFsaVwpXC1qaW5uYWhcLVwoZm91bmRlclwtb2ZcLXBha2lzdGFuXCk7Civpra/os5MgPiBydWJpblwtXChlZ1wsXC10cmVhc3VyeVwtc2VjcmV0YXJ5XC1yb2JlcnRcLXJ1YmluXCk7Civlipvlr7YgPiBsaXBwb1wtXChncm91cFwpXC1cKGluZG9uZXNpYW5cLWJ1c2luZXNzXC1jb25jZXJuXCk7CivlgbTpi5IgPiBvYmxpcXVlXC1hdHRhY2tcLVwoYnJ1c2hcLW1vdmVtZW50XC1pblwtcGFpbnRpbmdcKTsKK+W0h+emjiA+IGNob25nemhlblwsXC1sYXN0XC1lbXBlcm9yXC1vZlwtdGhlXC1taW5nXC1keW5hc3R5Owor55m95a2XID4gd3JvbmdseVwtd3JpdHRlblwtYW5kXC1taXNwcm9ub3VuY2VkXC1jaGFyYWN0ZXI7CivlsI3nrZYgPiBjb3VudGVybWVhc3VyZVwtZm9yXC1kZWFsaW5nXC13aXRoXC1hXC1zaXR1YXRpb247CivnrYblipsgPiB2aWdvdXJcLW9mXC1zdHJva2VzXC1pblwtY2FsbGlncmFwaHlcLW9yXC1kcmF3aW5nOwor572w6YWSID4gdG9cLWRyaW5rXC1hc1wtdGhlXC1yZXN1bHRcLW9mXC1oYXZpbmdcLWxvc3RcLWFcLWJldDsKK+aYn+mrlCA+IGNlbGVzdGlhbFwtYm9keVwtXChlZ1wsXC1wbGFuZXRcLFwtc2F0ZWxsaXRlXCxcLWV0Y1wpOwor5Li7566hID4gXChiZVwpXC1wZXJzb25cLWluXC1jaGFyZ2VcLW9mXC1cKGFcLXBvc2l0aW9uXCxcLWV0Y1wuXCk7CivmraXpn7sgPiB0b1wtd3JpdGVcLWFcLXBvZW1cLXVzaW5nXC1hbm90aGVyXC1wb2VtJydzXC1yaHltZXM7Civlj6PmsKMgPiBcKGZyaWVuZGx5XC1vclwtdW5mcmllbmRseVwpXC10b25lXC1cKG9mXC1jb21tZW50c1wpOwor5q2j6YuSID4gZnJvbnRhbFwtYXR0YWNrXC1cKGJydXNoXC1tb3ZlbWVudFwtaW5cLXBhaW50aW5nXCk7CivmmJ/nkIMgPiBjZWxlc3RpYWxcLWJvZHlcLVwoZWdcLFwtcGxhbmV0XCxcLXNhdGVsbGl0ZVwsXC1ldGNcKTsKK+S4i+S+hiA+IFwodmVyYlwtc3VmZml4XC1pbmRpY2F0aW5nXC1jb250aW51YXRpb25cLFwtZXRjXC5cKTsKK+W5uemDqCA+IGFcLWNhZHJlXC1cKGllXCxcLW1hbmFnZXJcLFwtc3RhZmZcLFwtb2ZmaWNlclwsXC1ldGNcLlwpOwor5o6l57SNID4gYWRtaXRcLVwoaW50b1wtbWVtYmVyc2hpcFwtb2ZcLWFuXC1vcmdhbml6YXRpb25cKTsKK+aKiumiqCA+IGtlZXBcLXdhdGNoXC1cKGR1cmluZ1wtYVwtY2xhbmRlc3RpbmVcLWFjdGl2aXR5XCk7CivlgpnogJUgPiBtYWtlXC1wcmVwYXJhdGlvbnNcLWZvclwtcGxvdWdoaW5nXC1hbmRcLXNvd2luZzsKK+aSpeWGlyA+IGZpbmRcLXRpbWVcLWluXC10aGVcLW1pZHN0XC1vZlwtcHJlc3NpbmdcLWFmZmFpcnM7CivmoL3otJMgPiB0b1wtZnJhbWVcLXNvbWVvbmVcLVwoYnlcLXBsYW50aW5nXC1zdGhcLW9uXC10aGVtXCk7Civmj5vlj5YgPiBnaXZlXC1zb21ldGhpbmdcLWFuZFwtZ2V0XC1zb21ldGhpbmdcLWluXC1yZXR1cm47Civlgb3mm7ggPiBcKGZvcmdlZFwsXC1kdWJpb3VzXCxcLW1pc2NsYXNzaWZpZWRcKVwtb2xkXC1ib29rczsKK+ewv+WGiiA+IGJvb2tzXC1mb3JcLXRha2luZ1wtbm90ZXNcLW9yXC1rZWVwaW5nXC1hY2NvdW50czsKK+S4iui7iiA+IHRvXC1nZXRcLW9uXC1vclwtaW50b1wtXChhXC1idXNcLFwtdHJhaW5cLFwtY2FyXC1ldGNcLlwpOwor562G5LiLID4gdGhlXC13b3JkaW5nXC1hbmRcLXB1cnBvcnRcLW9mXC13aGF0XC1vbmVcLXdyaXRlczsKK+S+v+WHvSA+IGFuXC1pbmZvcm1hbFwtbGV0dGVyXC1zZW50XC1ieVwtYW5cLW9yZ2FuaXphdGlvbjsKK+mmluW4rSA+IGNoaWVmXC1cKHJlcHJlc2VudGF0aXZlXCxcLWNvcnJlc3BvbmRlbnRcLFwtZXRjXCk7CivotIXlqb8gPiBzb25cLWluXC1sYXdcLWxpdmluZ1wtYXRcLXdpZmUnJ3NcLXBhcmVudCcnc1wtaG91c2U7CivomZXmlrwgPiBiZVwtXChpblwtc29tZVwtc3RhdGVcLFwtcG9zaXRpb25cLFwtb3JcLWNvbmRpdGlvblwpOwor5pWX562GID4gYVwtZmF1bHR5XC1zdHJva2VcLWluXC1jYWxsaWdyYXBoeVwtb3JcLXBhaW50aW5nOwor5Ye66LevID4gYVwtd2F5XC1vdXRcLVwob2ZcLWFcLWRpZmZpY3VsdFwtc2l0dWF0aW9uXCxcLWV0Y1wpOwor5bqm5pelID4gc2NyYXRjaFwtb3V0XC1hXC1kaWZmaWN1bHRcLFwtbWVhZ2VyXC1leGlzdGVuY2U7CivloLHmoYggPiByZXBvcnRcLWFcLWNhc2VcLXRvXC10aGVcLXNlY3VyaXR5XC1hdXRob3JpdGllczsKK+WFtea6kCA+IG1hbnBvd2VyXC1yZXNvdXJjZXNcLVwoZm9yXC1taWxpdGFyeVwtc2VydmljZVwpOwor5pyJ6Zu7ID4gXChvZlwtYVwtZHdlbGxpbmdcKVwtc3VwcGxpZWRcLXdpdGhcLWVsZWN0cmljaXR5Owor6LOB6IeoID4gXChvZlwtZGlzdGluZ3Vpc2hlZFwtZ3Vlc3RzXClcLWhvbm91clwtbXlcLWhvdXNlOwor5p2+5LiLID4gbWF0c3VzaGl0YVwtXChqYXBhbmVzZVwtZWxlY3Ryb25pY3NcLWNvbXBhbnlcKTsKK+S4jeWmmSA+IFwob2ZcLWFcLXR1cm5cLW9mXC1ldmVudHNcKVwtbm90XC10b29cLWVuY291cmFnaW5nOwor5YuJ5by3ID4gbWFuYWdlXC1cKHRvXC1kb1wtc29tZXRoaW5nXClcLXdpdGhcLWRpZmZpY3VsdHk7CivliKXnhKEgPiBoYXZlXC1ub1wtb3RoZXJcLVwoY2hvaWNlXCxcLWFsdGVybmF0aXZlXCxcLWV0Y1wpOwor5YWs57SEID4gY29udmVudGlvblwtXChpZVwsXC1pbnRlcm5hdGlvbmFsXC1hZ3JlZW1lbnRcKTsKK+W5tOW6piA+IHllYXJcLVwoZWdcLFwtc2Nob29sXC15ZWFyXCxcLWZpc2NhbFwteWVhclwsXC1ldGNcKTsKK+ethumghiA+IG9yZGVyXC1vZlwtc3Ryb2tlc1wtb2JzZXJ2ZWRcLWluXC1jYWxsaWdyYXBoeTsKK+aJjumHnSA+IHRvXC1naXZlXC1vclwtaGF2ZVwtYW5cLWFjdXB1bmN0dXJlXC10cmVhdG1lbnQ7Civoo73lipEgPiBcKGNoZW1pY2FsXC1vclwtcGhhcm1hY2V1dGljYWxcKVwtcHJlcGFyYXRpb247Civpq5TmnIMgPiBrbm93XC1cKHRocm91Z2hcLWxlYXJuaW5nXC1vclwtYnlcLWV4cGVyaWVuY2VcKTsKK+WBveaJmCA+IGZha2luZ1wtYVwtbW9kZXJuXC1vYmplY3RcLWFzXC1hblwtYW5jaWVudFwtb25lOwor5rW36ZecID4gY3VzdG9tc1wtXChpZVwsXC1ib3JkZXJcLWNyb3NzaW5nXC1pbnNwZWN0aW9uXCk7CivnopHoqJggPiBhXC1yZWNvcmRcLW9mXC1ldmVudHNcLWluc2NyaWJlZFwtb25cLWFcLXRhYmxldDsKK+WMhei+piA+IHRha2VcLWNhcmVcLW9mXC1ldmVyeXRoaW5nXC1jb25jZXJuaW5nXC1hXC1qb2I7Civlh7rpnaIgPiBhY3RcLWluXC1hXC1cKG9mZmljaWFsXC1vclwtcGVyc29uYWxcKVwtY2FwYWNpdHk7Civnm7jpmpQgPiBiZVwtc2VwYXJhdGVkXC1ieVwtXChkaXN0YW5jZVwtb3JcLXRpbWVcLFwtZXRjXCk7CivmmYLloLEgPiBcInRpbWVzXCJcLVwobmV3c3BhcGVyXCxcLWVnXCxcLW5ld1wteW9ya1wtdGltZXNcKTsKK+mAmuiIqiA+IGNvbm5lY3RlZFwtYnlcLWFpclx8c2VhXC10cmFmZmljXC1vclwtc2VydmljZTsKK+mBt+WxhSA+IHRvXC1tb3ZlXC1cKGZyb21cLW9uZVwtcmVzaWRlbmNlXC10b1wtYW5vdGhlclwpOwor5bm05LujID4gYVwtZGVjYWRlXC1vZlwtYVwtY2VudHVyeVwtXChlZ1wsXC10aGVcLXNpeHRpZXNcKTsKK+WWrOefsyA+IHFpYW9cLXNoaVwtXChjaGluZXNlXC1sZWFkZXJzaGlwXC1jb250ZW5kZXJcKTsKK+ixjumJpCA+IFwoc3RyYWlnaHRcLWRvd25cLWhvb2tlZFwtY2hhcmFjdGVyXC1zdHJva2VcKTsKK+aIkOacrCA+IFwobWFudWZhY3R1cmluZ1wsXC1wcm9kdWN0aW9uXCxcLWV0Y1wuXClcLWNvc3RzOwor5Luj55CGID4gYWN0aW5nXC1cKHRlbXBvcmFyaWx5XC1maWxsaW5nXC1hXC1wb3NpdGlvblwpOwor5a6i5buzID4gZHJhd2luZ1wtcm9vbVwtXChyb29tXC1mb3JcLWFycml2aW5nXC1ndWVzdHNcKTsKK+iTrumcpyA+IHdheFwtYXBwbGVcLVwoYVwtcmVkZGlzaFwtcGVhclwtc2hhcGVkXC1mcnVpdFwpOwor6aGM57C9ID4gdG9cLXdyaXRlXC10aGVcLXRpdGxlXC1vZlwtYVwtYm9va1wtb25cLWFcLWxhYmVsOwor6ICB5LqMID4gdGhlXC1zZWNvbmRcLWNoaWxkXC1vclwtYnJvdGhlclwtXChvclwtc2lzdGVyXCk7CivkuK3ljZcgPiBcKGFiYnJldmlhdGlvblwtZm9yXClcLWNoaW5hXC1cLVwtc291dGhcLWFmcmljYTsKK+eJiOasoSA+IHRoZVwtb3JkZXJcLWluXC13aGljaFwtZWRpdGlvbnNcLWFyZVwtcHJpbnRlZDsKK+WPl+WCtyA+IHN1ZmZlclwtaW5qdXJpZXNcLVwoaW5cLWFuXC1hY2NpZGVudFwsXC1ldGNcLlwpOwor6KiC56uLID4gYWdyZWVcLXRvXC1cKHRyZWF0eVwsXC1jb250cmFjdFwsXC1hZ3JlZW1lbnRcKTsKK+Wkj+abhiA+IHRoZVwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLWx1bmFyXC1jYWxlbmRhcjsKK+W4q+evhCA+IG5vcm1hbFwtXChlZ1wsXC1iZWlqaW5nXC1ub3JtYWxcLXVuaXZlcnNpdHlcKTsKK+W7o+WgtCA+IGFcLXB1YmxpY1wtc3F1YXJlXC1cKGVnXCxcLXRpYW5hbm1lblwtc3F1YXJlXCk7Civoo5znpaggPiBidXlcLW9uZScnc1wtdGlja2V0XC1hZnRlclwtdGhlXC1ub3JtYWxcLXRpbWU7Civnmbznh5IgPiBoYXZlXC1hXC1oaWdoXC10ZW1wZXJhdHVyZVwtXChmcm9tXC1pbGxuZXNzXCk7Civnm4blnLAgPiBiYXNpblwtXChsb3dcLWx5aW5nXC1nZW9ncmFwaGljYWxcLWZlYXR1cmVcKTsKK+aJi+i3oSA+IHNiXC4nJ3NcLW9yaWdpbmFsXC1oYW5kd3JpdGluZ1wtb3JcLXBhaW50aW5nOwor55Kn6YKEID4gcmV0dXJuXC1cKGFcLWJvcnJvd2VkXC1vYmplY3RcKVwtd2l0aFwtdGhhbmtzOwor6KGo5aa5ID4gZmVtYWxlXC1jb3VzaW5cLXdpdGhcLWFcLWRpZmZlcmVudFwtc3VybmFtZTsKK+aLhuaVoyA+IHRvXC1icmVha1wtdXBcLVwoYVwtbWFycmlhZ2VcLFwtZmFtaWx5XCxcLWV0Y1wuXCk7Civlgpnlk4EgPiBtYWNoaW5lXC1wYXJ0c1wtb3JcLXRvb2xzXC1rZXB0XC1pblwtcmVzZXJ2ZTsKK+mmluS7uyA+IGZpcnN0XC1wZXJzb25cLXRvXC1iZVwtYXBwb2ludGVkXC10b1wtYVwtcG9zdDsKK+mDqOmVtyA+IGhlYWRcLW9mXC1hXC1cKGdvdmVybm1lbnRcLFwtZXRjXClcLWRlcGFydG1lbnQ7Civmr5Tph48gPiB0YWtlXC1yb3VnaFwtbWVhc3VyZW1lbnRzXC1cKHdpdGhcLXRoZVwtaGFuZDsKK+WNmuaEmyA+IHVuaXZlcnNhbFwtZnJhdGVybml0eVwtXChvclwtYnJvdGhlcmhvb2RcKTsKK+aVl+eBqyA+IHJlbGlldmVcLWluZmxhbW1hdGlvblwtb3JcLWludGVybmFsXC1oZWF0Owor57aT54efID4gZW5nYWdlXC1pblwtXChhXC1idXNpbmVzc1wtYWN0aXZpdHlcLFwtZXRjXC5cKTsKK+mbhuaIkCA+IGludGVncmF0ZWRcLVwoYXNcLWluXC1pbnRlZ3JhdGVkXC1jaXJjdWl0XCk7CivmlL/lp5QgPiBwb2xpdGljYWxcLWNvbW1pc3NhclwtXCh3aXRoaW5cLXRoZVwtYXJteVwpOwor57eo5bCOID4gd3JpdGVcLWFuZFwtZGlyZWN0XC1cKGFcLXBsYXlcLFwtZmlsbVwsXC1ldGNcLlwpOwor6KGM6aebID4gXCh2ZWhpY2xlc1wsXC1ldGNcLlwpXC10cmF2ZWxcLWFsb25nXC1hXC1yb3V0ZTsKK+WFteeoriA+IFwobWlsaXRhcnlcKVwtYnJhbmNoXC1vZlwtdGhlXC1hcm1lZFwtZm9yY2VzOwor6YC85a6uID4gZm9yY2VcLXRoZVwta2luZ1wtb3JcLWVtcGVyb3JcLXRvXC1hYmRpY2F0ZTsKK+iIquihjCA+IHNhaWxcLW9yXC1mbHlcLVwoaW5cLWFpclwsXC13YXRlclwsXC1vclwtc3BhY2VcKTsKK+ebuOS/oSA+IGJlXC1jb252aW5jZWRcLVwodGhhdFwtc29tZXRoaW5nXC1pc1wtdHJ1ZVwpOwor5ouU56enID4gcHVsbFwtdXBcLXNlZWRsaW5nc1wtXChmb3JcLXRyYW5zcGxhbnRpbmdcKTsKK+aJi+ijoSA+IFwoYVwtc2l0dWF0aW9uXC1pc1wpXC1pblwtXChzb21lb25lJydzXClcLWhhbmRzOwor5o2V5pKIID4gZmlzaFwtZm9yXC1cKGFxdWF0aWNcLWFuaW1hbHNcLWFuZFwtcGxhbnRzXCk7CivnsL3lkI0gPiB0b1wtc2lnblwtXChvbmUnJ3NcLW5hbWVcLXdpdGhcLWFcLXBlblwsXC1ldGNcLlwpOwor5r+f5Y2XID4gamknJ25hblwtXChjYXBpdGFsXC1vZlwtc2hhbmRvbmdcLXByb3ZpbmNlXCk7CivlsY/mop0gPiBzZXRcLW9mXC1cKHVzdWFsbHlcLWZvdXJcKVwtaGFuZ2luZ1wtc2Nyb2xsczsKK+eptuernyA+IGFmdGVyXC1hbGxcLVwod2hlblwtYWxsXC1pc1wtc2FpZFwtYW5kXC1kb25lXCk7Civpjq7msZ8gPiB6aGVuamlhbmdcLVwoY2l0eVwpXCxcLWluXC1qaWFuZ3N1XC1wcm92aW5jZTsKK+S4u+enkSA+IHJlcXVpcmVkXC1jb3Vyc2VzXC1pblwtdGhlXC1tYWpvclwtc3ViamVjdDsKK+ePreW6lSA+IG9yZGluYXJ5XC1tZW1iZXJzXC1vZlwtdGhlYXRyaWNhbFwtdHJvdXBlOwor6YeR57y9ID4gXChnb2xkXClcLWFsbXNcLWJvd2xcLVwob2ZcLWFcLWJ1ZGRoaXN0XC1tb25rXCk7Civoga/lkI0gPiBqb2ludGx5XC1cKHNpZ25lZFwsXC1kZWNsYXJlZFwsXC1zcG9uc29yZWRcKTsKK+S4i+amuyA+IHN0YXlcLWF0XC1cKGFcLWhvdGVsXCxcLWV0Y1wuXC1kdXJpbmdcLWFcLXRyaXBcKTsKK+iomOi/sCA+IG1ha2VcLWFcLWRlc2NyaXB0aXZlXC1yZWNvcmRcLVwob2ZcLWV2ZW50c1wpOwor5pqX5YK3ID4gaW50ZXJuYWxcLVwoaW52aXNpYmxlXClcLWluanVyeVwtXChkYW1hZ2VcKTsKK+Wkqua5liA+IHRhaVwtaHVcLWxha2VcLFwtYVwtYmlnXC1sYWtlXC1ieVwtd3V4aVwtY2l0eTsKK+apq+mJpCA+IFwoaG9yaXpvbnRhbFwtaG9va2VkXC1jaGFyYWN0ZXJcLXN0cm9rZVwpOwor5YyX5a6LID4gdGhlXC1ub3J0aGVyblwtc29uZ1wtZHluYXN0eVwtXCg5NjBcLTExMjdcKTsKK+mEieS4iyA+IGNvdW50cnlcLVwoYXNcLW9wcG9zZWRcLXRvXC10b3duXC1vclwtY2l0eVwpOwor57C96KiCID4gdG9cLWFncmVlXC10b1wtYW5kXC1zaWduXC1cKGFcLXRyZWF0eVwsXC1ldGNcKTsKK+WinuWAvCA+IGFwcHJlY2lhdGlvblwtXChvZlwtYVwtY2FyXCxcLWhvdXNlXCxcLWV0Y1wuXCk7CivlhbXlrrYgPiBtaWxpdGFyeVwtc3RyYXRlZ2lzdFwtaW5cLWFuY2llbnRcLWNoaW5hOwor6Iux5bC6ID4gXChlbmdsaXNoXClcLWZvb3RcLVwodW5pdFwtb2ZcLW1lYXN1cmVtZW50XCk7Civmt6rpmbcgPiBcKHRlcnJpdG9yeVwpXC1mYWxsXC10b1wtZW5lbXlcLW9jY3VwYXRpb247CivkurrpgbggPiBwZXJzb25cKHNcKVwtc2VsZWN0ZWRcLVwoZm9yXC1hXC1qb2JcLFwtZXRjXC5cKTsKK+acg+mVtyA+IHByZXNpZGVudFwtb2ZcLWFcLWNsdWJcLFwtY29tbWl0dGVlXCxcLWV0Y1wuOwor5a+r5oiQID4gdG9cLWNvbXBpbGVcLVwoZmFzaGlvblwtdGhyb3VnaFwtd3JpdGluZ1wpOwor5ZCe6YeRID4gdG9cLWNvbW1pdFwtc3VpY2lkZVwtYnlcLXN3YWxsb3dpbmdcLWdvbGQ7Civmnb/nnLwgPiBtZWFzdXJlXC1pblwtdHJhZGl0aW9uYWxcLWNoaW5lc2VcLW11c2ljOwor6aaW5bqcID4gY2FwaXRhbFwtY2l0eVwtb2ZcLWFuXC1hdXRvbm9tb3VzXC1yZWdpb247Civnj63mrKEgPiBvcmRlclwtb2ZcLWNsYXNzZXNcLW9yXC1ncmFkZXNcLWF0XC1zY2hvb2w7CivosrTlt54gPiBuYW1lXC1vZlwtYVwtcHJvdmluY2VcLWluXC1jaGluYVwsXC1ndWl6aG91Owor6JOL6IyoID4gXChiaWxsXClcLWdhdGVzXC1cKGNoYWlybWFuXC1vZlwtbWljcm9zb2Z0XCk7CivlkLjlvJUgPiBhdHRyYWN0XC1cKGludGVyZXN0XCxcLWludmVzdG1lbnRcLFwtZXRjXC5cKTsKK+aal+WovCA+IHVubGljZW5zZWRcLVwodW5yZWdpc3RlcmVkXClcLXByb3N0aXR1dGU7CivpnLjnjosgPiB4aWFuZzR5dTNcLVwoMjMyXC0yMDJcLWJjXClcLXRoZVwtY29ucXVlcm9yOwor5aO956auID4gYmlydGhkYXlcLXByZXNlbnRcLVwoZm9yXC1hblwtb2xkXC1wZXJzb25cKTsKK+iQrOe4oyA+IHdhbnhpYW5cLWNvdW50eVwsXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivlhbXpg6ggPiB0aGVcLW1pbmlzdHJ5XC1vZlwtd2FyXC1pblwtZmV1ZGFsXC1jaGluYTsKK+WMl+WRqCA+IHRoZVwtbm9ydGhlcm5cLXpob3VcLWR5bmFzdHlcLVwoNTU3XC01ODFcKTsKK+WMl+S6rCA+IGJlaWppbmdcLVwoY2FwaXRhbFwtb2ZcLW1haW5sYW5kXC1jaGluYVwpOwor6I2J5qGIID4gZHJhZnRcLVwobGVnaXNsYXRpb25cLFwtcHJvcG9zYWxcLFwtZXRjXC5cKTsKK+imquaEmyA+IGRlYXJcLVwuXC5cLlwtXCh3YXlcLW9mXC1zdGFydGluZ1wtYVwtbGV0dGVyXCk7Civoo5znmb0gPiBmaWxsZXJcLVwoaW5cLWFcLW5ld3NwYXBlclwtb3JcLW1hZ2F6aW5lXCk7CivoiInooYwgPiB0b1wtaG9sZFwtXChhXC1tZWV0aW5nXCxcLWNlcmVtb255XCxcLWV0Y1wuXCk7Civkv53pgIEgPiByZWNvbW1lbmRcLVwoZm9yXC1hZG1pc3Npb25cLXRvXC1zY2hvb2xcKTsKK+i9ieW4syA+IHRyYW5zZmVyXC1tb25leVwtZnJvbVx8aW50b1wtYW5cLWFjY291bnQ7CivluK3kvY0gPiBwYXJsaWFtZW50YXJ5XC1vclwtY29uZ3Jlc3Npb25hbFwtc2VhdDsKK+W4g+S7gCA+IFwoZ2VvcmdlXClcLWJ1c2hcLVwoZm9ybWVyXC11c1wtcHJlc2lkZW50XCk7Civlr6noqIogPiBhXC1cKGp1ZGljaWFsXClcLXRyaWFsXC1cKGluXC1hXC1jb3VydHJvb21cKTsKK+ethuahvyA+IHRoZVwtc2hhZnRcLW9mXC1hXC1wZW5cLW9yXC13cml0aW5nXC1icnVzaDsKK+eXheWLoiA+IGRlZ3JlZVwtb2ZcLXNlcmlvdXNuZXNzXC1vZlwtYW5cLWlsbG5lc3M7CivkuLvovqYgPiBob3N0XC1cKGFcLWNvbmZlcmVuY2VcLW9yXC1zcG9ydHNcLWV2ZW50XCk7CivmnKzojYkgPiBhXC1ib29rXC1vblwtY2hpbmVzZVwtXChoZXJiYWxcKVwtbWVkaWNpbmU7CivkurrniakgPiBjaGFyYWN0ZXJzXC1cKGluXC1hXC1wbGF5XCxcLW5vdmVsXCxcLWV0Y1wuXCk7CivorbDplbcgPiBzcGVha2VyXC1cKG9mXC1hXC1sZWdpc2xhdGl2ZVwtYXNzZW1ibHlcKTsKK+WuieWNlyA+IFxba29maVxdXC1hbm5hblwtXFt1blwtc2VjcmV0YXJ5XC1nZW5lcmFsXF07CivljIXpo68gPiBnZXRcLW9yXC1zdXBwbHlcLW1lYWxzXC1hdFwtYVwtZml4ZWRcLXJhdGU7CivmnInmsLQgPiBcKG9mXC1hXC1kd2VsbGluZ1wpXC1zdXBwbGllZFwtd2l0aFwtd2F0ZXI7CivoqbHpoYwgPiBzdWJqZWN0XC1cKG9mXC1hXC10YWxrXC1vclwtY29udmVyc2F0aW9uXCk7Civkuovli5kgPiBcKHBvbGl0aWNhbFwsXC1lY29ub21pY1wsXC1ldGNcLlwpXC1hZmZhaXJzOwor5ZKx5YCRID4gd2VcLVwoaW5jbHVkaW5nXC10aGVcLXBlcnNvblwtc3Bva2VuXC10b1wpOwor546H5YWIID4gdGFrZVwtdGhlXC1sZWFkXC1cKHNob3dpbmdcLWluaXRpdGF0aXZlXCk7CivljIXnp58gPiByZW50XC1sYW5kXC1vclwtYVwtaG91c2VcLWZvclwtc3VibGV0dGluZzsKK+aYjuaWhyA+IFwobGF3c1wsXC1ydWxlc1wsXC1ldGNcKVwtc3RhdGVcLWluXC13cml0aW5nOwor6YCP6KaWID4gdG9cLWV4YW1pbmVcLWJ5XC1mbHVvcm9zY29wZVwtb3JcLXhcLXJheTsKK+WgseitpiA+IHJlcG9ydFwtXChhblwtaW5jaWRlbnRcKVwtdG9cLXRoZVwtcG9saWNlOwor56KR5biWID4gYVwtcnViYmluZ1wtZnJvbVwtYVwtc3RvbmVcLWluc2NyaXB0aW9uOwor54mb5bm0ID4geWVhclwtb2ZcLXRoZVwtb3hcLVwoaW5cLWNoaW5lc2VcLXpvZGlhY1wpOwor5YyF5buCID4gYm94XC1cKGluXC1hXC10aGVhdHJlXC1vclwtY29uY2VydFwtaGFsbFwpOwor6L2J6K6TID4gdHJhbnNmZXJcLVwodGVjaG5vbG9neVwsXC1nb29kc1wsXC1ldGNcLlwpOwor55uc54mIID4gcGlyYXRlXC12ZXJzaW9uXC1cKG9mXC1zb2Z0d2FyZVwsXC1lXC5nXC5cKTsKK+e3o+S7vSA+IGZhdGVcLVwod2hpY2hcLWJyaW5nc1wtcGVvcGxlXC10b2dldGhlcjsKK+W5s+WjpCA+IHB5b25neWFuZ1wtXChjYXBpdGFsXC1vZlwtbm9ydGhcLWtvcmVhXCk7Civmk5Tku7sgPiBob2xkXC1hXC1nb3Zlcm5tZW50YWxcLW9mZmljZVwtb3JcLXBvc3Q7CivlhYvmnI0gPiBcKHRyeVwtdG9cKVwtb3ZlcmNvbWVcLVwoaGFyZHNoaXBzXCxcLWV0Y1wpOwor5oqE6YCBID4gdG9cLW1ha2VcLWFcLWNvcHlcLVwoYW5kXC1zZW5kXC1pdFwtdG9cLXNiXCk7CivmoYjpqZcgPiBpbnZlc3RpZ2F0ZVwtdGhlXC1ldmlkZW5jZVwtb2ZcLWFcLWNhc2U7CivmiZjpgYsgPiB0b1wtYm9va1wtb3JcLWNoZWNrXC10aHJvdWdoXC1cKGJhZ2dhZ2VcKTsKK+aItumDqCA+IGZldWRhbFwtY2hpbmVzZVwtbWluaXN0cnlcLW9mXC1yZXZlbnVlOwor5o6o5YuVID4gdG9cLXB1c2hcLVwoZm9yXC1hY2NlcHRhbmNlXC1vZlwtYVwtcGxhblwpOwor5Lqe6LuNID4gc2Vjb25kXC1wbGFjZVwtXChpblwtYVwtc3BvcnRzXC1jb250ZXN0XCk7CivpoY/pq5QgPiB5YW5cLXN0eWxlXC1cKGluXC1jaGluZXNlXC1jYWxsaWdyYXBoeVwpOwor5LmF6YGVID4gXChoYXZlbicndFwtZG9uZVwtc3RoXClcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+mmmeWxsSA+IGZyYWdyYW5jZVwtaGlsbFwtXChhXC1wYXJrXC1pblwtYmVpamluZ1wpOwor6Yq35q+AID4gdG9cLWRlc3Ryb3lcLVwoYnlcLW1lbHRpbmdcLW9yXC1idXJuaW5nXCk7CivljJfprY8gPiB0aGVcLW5vcnRoZXJuXC13ZWlcLWR5bmFzdHlcLVwoMzg2XC01MzRcKTsKK+aatOeXhSA+IHN1ZGRlblwtYXR0YWNrXC1vZlwtYVwtc2VyaW91c1wtaWxsbmVzczsKK+S6uuWkpyA+IFwoY2hpbmFcKVwtbmF0aW9uYWxcLXBlb3BsZScnc1wtY29uZ3Jlc3M7CivnhrHprKcgPiBidXN0bGluZ1wtd2l0aFwtbm9pc2VcLWFuZFwtZXhjaXRlbWVudDsKK+WRiOaWhyA+IHBldGl0aW9uXC1cKHN1Ym1pdHRlZFwtdG9cLWFcLXN1cGVyaW9yXCk7CivmmKXnr4AgPiBzcHJpbmdcLWZlc3RpdmFsXC1cKGNoaW5lc2VcLW5ld1wteWVhclwpOwor8KC8uyA+IGFcLXBhcnRpY2xlXC11c2VkXC1pblwtdHJhbnNsaXRlcmF0aW9uOwor5paw55aGID4geGluamlhbmdcLVwodXlndXJcLWF1dG9ub21vdXNcLXJlZ2lvblwpOwor57ay57WhID4gXChjb21wdXRlclwsXC10ZWxlY29tXCxcLWV0Y1wuXClcLW5ldHdvcms7Civlo4Hmr68gPiB0YXBlc3RyeVwtXCh1c2VkXC1hc1wtYVwtd2FsbFwtaGFuZ2luZ1wpOwor5pOm5r6hID4gcnViXC1vbmVzZWxmXC1kb3duXC13aXRoXC1hXC13ZXRcLXRvd2VsOwor6KqN5a6aID4gbWFpbnRhaW5cLVwodGhhdFwtc29tZXRoaW5nXC1pc1wtdHJ1ZVwpOwor5YiG5q2nID4gZGlmZmVyZW5jZVwtXChvZlwtb3BpbmlvblwsXC1wb3NpdGlvblwpOwor6YCj5oiwID4gbGllblwtY2hhblwtXCh0YWl3YW5cLXZpY2VcLXByZXNpZGVudFwpOwor5Yi25bqmID4gXChwb2xpdGljYWxcKVwtc3lzdGVtXC1vclwtaW5zdGl0dXRpb247Civoo5znv5IgPiB0YWtlXC1sZXNzb25zXC1hZnRlclwtc2Nob29sXC1vclwtd29yazsKK+W7uuS6pCA+IHRvXC1lc3RhYmxpc2hcLWRpcGxvbWF0aWNcLXJlbGF0aW9uczsKK+eBq+eBvSA+IGZpcmVcLVwodGhhdFwtYnVybnNcLWJ1aWxkaW5nc1wsXC1ldGNcLlwpOwor5YKZ6KqyID4gXChvZlwtYVwtdGVhY2hlclwpXC10b1wtcHJlcGFyZVwtbGVzc29uczsKK+mWi+a8lCA+IFwob2ZcLWFcLXBsYXlcLFwtbW92aWVcLFwtZXRjXC5cKVwtdG9cLWJlZ2luOwor5YKZ6I2SID4gcHJlcGFyZVwtYWdhaW5zdFwtbmF0dXJhbFwtZGlzYXN0ZXJzOwor5YWo5pyDID4gcGxlbmFyeVwtc2Vzc2lvblwtXChhdFwtYVwtY29uZmVyZW5jZVwpOwor5L6/6ZujID4gcmV0b3J0XC13aXRoXC1jaGFsbGVuZ2luZ1wtcXVlc3Rpb25zOwor562U6L6vID4gdG9cLXJlcGx5XC1cKHRvXC1hblwtYWNjdXNhdGlvblwsXC1lXC5nXC5cKTsKK+WcluabuCA+IGJvb2tzXC1cKGluXC1hXC1saWJyYXJ5XC1vclwtYm9va3N0b3JlXCk7CivlrrbplbcgPiB0aGVcLXBhcmVudFwtb3JcLWd1YXJkaWFuXC1vZlwtYVwtY2hpbGQ7Civlm57mrbggPiB0b1wtcmV0dXJuXC1cKHRvXC1wcmV2aW91c1wtY29uZGl0aW9uXCk7Civpqqjms5UgPiBib25lXC1cKHByb3BlcnR5XC1vZlwtYVwtYnJ1c2hcLXN0cm9rZVwpOwor56eR6ZqGID4gY29sb2duZVwsXC1nZXJtYW55XC1vclwtY29sb25cLFwtcGFuYW1hOwor5omT5raIID4gZGlzcGVsXC1cKGRvdWJ0c1wsXC1taXNnaXZpbmdzXCxcLWV0Y1wuXCk7Civmib7liLAgPiBmaW5kXC1cKHdoYXRcLW9uZVwtd2FzXC1zZWFyY2hpbmdcLWZvclwpOwor5Y+s6ZaLID4gY29udmVuZVwtXChhXC1jb25mZXJlbmNlXC1vclwtbWVldGluZ1wpOwor5ZG857GyID4gY2FsbFwtb25cLVwoc29tZW9uZVwtdG9cLWRvXC1zb21ldGhpbmdcKTsKK+enkeeIviA+IFwoaGVsbXV0XClcLWtvaGxcLVwoZ2VybWFuXC1jaGFuY2VsbG9yXCk7CivpvYvmnIggPiByYW1hZGFuXC1cKG11c2xpbVwtbW9udGhcLW9mXC1mYXN0aW5nXCk7CivotbfkvoYgPiBiZWdpbm5pbmdcLW9yXC1jb250aW51aW5nXC1hblwtYWN0aW9uOwor5YyX6b2KID4gdGhlXC1ub3J0aGVyblwtcWlcLWR5bmFzdHlcLVwoNTUwXC01NTdcKTsKK+WQkOeplyA+IHRvXC1oYXZlXC10aGVcLWVhcnNcLW9mXC1ncmFpblwtY29tZVwtdXA7Civoq4vpoZggPiBwZXRpdGlvblwtXChmb3JcLWFjdGlvblwtdG9cLWJlXC10YWtlblwpOwor5Lqr5Y+XID4gdG9cLWVuam95XC1cKHJpZ2h0c1wsXC1iZW5lZml0c1wsXC1ldGNcLlwpOwor5LiJ5bO9ID4gdGhlXC10aHJlZVwtY2hhbmdqaWFuZ1wtcml2ZXJcLWdvcmdlczsKK+WPluaaliA+IHRvXC13YXJtXC1vbmVzZWxmXC1cKGJ5XC1hXC1maXJlXCxcLWV0Y1wuXCk7CivpmaLplbcgPiBwcmVzaWRlbnRcLVwob2ZcLWFcLXVuaXZlcnNpdHlcLFwtZXRjXC5cKTsKK+iogOirliA+IGV4cHJlc3Npb25cLW9mXC1cKHBvbGl0aWNhbFwpXC1vcGluaW9uOwor5pS/55WMID4gcG9saXRpY2FsXC1hbmRcLWdvdmVybm1lbnRcLWNpcmNsZXM7CivmgKfliKUgPiBkaXN0aW5ndWlzaGluZ1wtYmV0d2VlblwtdGhlXC1zZXhlczsKK+mBleemgSA+IHRvXC12aW9sYXRlXC1hXC1wcm9oaWJ0aXRpb25cLW9yXC1iYW47CivphazlkowgPiB0b1wtcmVzcG9uZFwtdG9cLWFcLXBvZW1cLXdpdGhcLWFcLXBvZW07CivloLHogIMgPiBlbnRlclwtb25lc2VsZlwtZm9yXC1hblwtZXhhbWluYXRpb247CivljJflnIsgPiB0aGVcLW5vcnRoZXJuXC1wYXJ0XC1vZlwtdGhlXC1jb3VudHJ5Owor5aSW5a2rID4gZ3JhbmRzb25cLVwoc29uXC1vZlwtb25lJydzXC1kYXVnaHRlclwpOwor5aSn5ZyLID4gYVwtcG93ZXJcLVwoaWVcLFwtYVwtZG9taW5hbnRcLWNvdW50cnlcKTsKK+aOouimqiA+IHRvXC1nb1wtaG9tZVwtdG9cLXZpc2l0XC1vbmUnJ3NcLWZhbWlseTsKK+mbo+S7pSA+IGhhcmRcLXRvXC1cKHByZWRpY3RcLFwtaW1hZ2luZVwsXC1ldGNcLlwpOwor5aCx5pWIID4gcmVuZGVyXC1zZXJ2aWNlXC10b1wtcmVwYXlcLWtpbmRuZXNzOwor6Kaq5oiaID4gXChhXClcLXJlbGF0aXZlXC1cKGllXCxcLWZhbWlseVwtbWVtYmVyXCk7CivngrrmnJ8gPiBcKHRvXC1iZVwtZG9uZVwpXC1ieVwtXChhXC1jZXJ0YWluXC1kYXRlXCk7CivovrLmm4YgPiB0aGVcLXRyYWRpdGlvbmFsXC1jaGluZXNlXC1jYWxlbmRhcjsKK+aMieiqqiA+IGluXC10aGVcLW9yZGluYXJ5XC1jb3Vyc2VcLW9mXC1ldmVudHM7CivpgKPku7sgPiBjb250aW51ZVwtaW5cLVwoYVwtcG9saXRpY2FsXClcLW9mZmljZTsKK+iHieitnCA+IHR5cGVzXC1vZlwtZmFjaWFsXC1tYWtldXBcLWluXC1vcGVyYXM7Civplovluq0gPiBiZWdpblwtYVwtXChqdWRpY2lhbFwpXC1jb3VydFwtc2Vzc2lvbjsKK+WFrOWvqSA+IHB1YmxpY1wtdHJpYWxcLVwoaW5cLWFcLWNvdXJ0XC1vZlwtbGF3XCk7CivkvYbpoZggPiBpZlwtb25seVwtXChpdFwtd2VyZVwtcG9zc2libGVcLXRvXC5cLlwuXCk7CivmjajlvpcgPiB0b1wtYmVcLXdpbGxpbmdcLXRvXC1wYXJ0XC13aXRoXC1cKHN0aFwpOwor5oyB5pyJID4gaG9sZFwtXChlZ1wsXC1wYXNzcG9ydFwsXC12aWV3c1wsXC1ldGNcLlwpOwor5oqX54itID4gbWFrZVwtYVwtc3RhbmRcLWFuZFwtZmlnaHRcLVwoYWdhaW5zdFwpOwor56+m5a2QID4gYVwtZG91YmxlXC1lZGdlZFwtZmluZVwtdG9vdGhlZFwtY29tYjsKK+aKleapnyA+IGJlXC1hXC1zcGVjdWxhdG9yXC1cKHByb2ZpdFwtc2Vla2luZ1wpOwor5oyq5YCfID4gdG9cLWJvcnJvd1wtbW9uZXlcLWZvclwtYVwtc2hvcnRcLXRpbWU7CivlrrDnm7ggPiBwcmltZVwtbWluaXN0ZXJcLVwoaW5cLWZldWRhbFwtY2hpbmFcKTsKK+iZm+iFlSA+IGVtcHR5XC13cmlzdFwtXChtZXRob2RcLW9mXC1wYWludGluZ1wpOwor5LiN6KuWID4gbm9cLW1hdHRlclwtXCh3aGF0XCxcLXdob1wsXC1ob3dcLFwtZXRjXC5cKTsKK+S/neS/riA+IGd1YXJhbnRlZVwtdG9cLWtlZXBcLWluXC1nb29kXC1yZXBhaXI7Civph5HpgoogPiBwaG5vbVwtcGVuaFwtXChjYXBpdGFsXC1vZlwtY2FtYm9kaWFcKTsKK+S+teS9lCA+IHRvXC1pbnZhZGVcLWFuZFwtb2NjdXB5XC1cKHRlcnJpdG9yeVwpOwor5p+v5a+GID4ga2VybWl0XC1cKGNvbW11bmljYXRpb25zXC1wcm90b2NvbFwpOwor5Lqr5pyJID4gZW5qb3lcLVwocmlnaHRzXCxcLXByaXZpbGVnZXNcLFwtZXRjXC5cKTsKK+emrueCriA+IGFcLWd1blwtc2FsdXRlXC1cKGVnXCxcLTIxXC1ndW5cLXNhbHV0ZVwpOwor56qB5Y6lID4gdHVya2ljXC1cKG1pbm9yaXR5XC1ncm91cFwtaW5cLWNoaW5hXCk7Civlronkv50gPiBcKGFiYnJldmlhdGlvblwpXC1tYWludGFpblwtc2VjdXJpdHk7Civlo73purUgPiBiaXJ0aGRheVwtbm9vZGxlc1wtXChmb3JcLWxvbmdldml0eVwpOwor5rW05a6kID4gYmF0aHJvb21cLVwocm9vbVwtdXNlZFwtZm9yXC1iYXRoaW5nXCk7Civku6TkurogPiBjYXVzZVwtc29tZW9uZVwtdG9cLVwoYmVcLFwtZmVlbFwsXC1ldGNcKTsKK+mZpOmdniA+IG9ubHlcLWlmXC1cKFwuXC5cLlwsXC1vclwtb3RoZXJ3aXNlXCxcLVwuXC5cLlwpOwor5q2n6KaWID4gZGlzY3JpbWluYXRpb25cLVwoYWdhaW5zdFwtc29tZW9uZVwpOwor5pWX6JC9ID4gZGVjbGluZVwtXChpblwtd2VhbHRoXC1hbmRcLXBvc2l0aW9uXCk7CivnhKHpjKsgPiB3dXhpXC1cKGNpdHlcKVwsXC1pblwtamlhbmdzdVwtcHJvdmluY2U7CivmmpflkIggPiBhZ3JlZVwtd2l0aG91dFwtcHJpb3JcLWNvbnN1bHRhdGlvbjsKK+WnkOWkqyA+IGJyb3RoZXJcLWluXC1sYXdcLVwoaHVzYmFuZCcnc1wtc2lkZVwpOwor54m55Y2AID4gc3BlY2lhbFwtXChhZG1pbmlzdHJhdGl2ZVwpXC1yZWdpb247Civml6XlnJMgPiBqYXBhbmVzZVwteWVuXC1cKHVuaXRcLW9mXC1jdXJyZW5jeVwpOwor5aOB5qulID4gYVwtYnVpbHRcLWluXC13YXJkcm9iZVwtb3JcLWN1cGJvYXJkOwor6YG/5pqRID4gYmVcLWF3YXlcLWZvclwtdGhlXC1zdW1tZXJcLWhvbGlkYXlzOwor5q2l5pCWID4gZGFuZ2xpbmdcLW9ybmFtZW50XC13b3JuXC1ieVwtd29tZW47CivpgqbkuqQgPiByZWxhdGlvbnNcLWJldHdlZW5cLXR3b1wtY291bnRyaWVzOwor5o+Q54WJID4gdG9cLWV4dHJhY3RcLVwob3JlXCxcLW1pbmVyYWxzXCxcLWV0Y1wpOwor5qmL5o6lID4gYnJpZGdpbmdcLVwoaW5cLWNvbXB1dGVyXC1uZXR3b3Jrc1wpOwor5YWr5pa5ID4gdGhlXC1laWdodFwtcG9pbnRzXC1vZlwtdGhlXC1jb21wYXNzOwor5YWn5pS/ID4gaW50ZXJuYWxcLWFmZmFpcnNcLVwob2ZcLWFcLWNvdW50cnlcKTsKK+i/q+S9vyA+IGZvcmNlXC1cKHNvbWVvbmVcLXRvXC1kb1wtc29tZXRoaW5nXCk7Civplbflu4ogPiB0aGVcLWxvbmdcLWNvcnJpZG9yXC1hdFwteWlcLWhlXC15dWFuOwor5YWD5bilID4gYVwtbWFyc2hhbFwtXChpblwtdGhlXC1hcm1lZFwtZm9yY2VzXCk7CivmoKHplbcgPiBcKGNvbGxlZ2VcLFwtdW5pdmVyc2l0eVwpXC1wcmVzaWRlbnQ7CivplovliIAgPiB0b1wtcGVyZm9ybVwtb3JcLWhhdmVcLWFuXC1vcGVyYXRpb247CivovKnliIYgPiBzZW5pb3JpdHlcLWluXC10aGVcLWZhbWlseVwtb3JcLWNsYW47CivlsL7niZkgPiBhXC15ZWFyXC1lbmRcLWRpbm5lclwtZm9yXC1lbXBsb3llZXM7Civnj63ovKogPiByZWd1bGFyXC1wYXNzZW5nZXJcLW9yXC1jYXJnb1wtc2hpcDsKK+aKqOaTiiA+IGF0dGFja1wtXCh2ZXJiYWxseVwtb3JcLWluXC13cml0aW5nXCk7CivoiJ7lj7AgPiBcKHRoZWF0cmljYWxcLW9yXC1wb2xpdGljYWxcKVwtc3RhZ2U7CivnjJvot4wgPiBkcm9wXC1zaGFycGx5XC1cKGVnXCxcLXN0b2NrXC1wcmljZXNcKTsKK+S/oeS7tiA+IGFcLWxldHRlclwtXChpZVwsXC1zZW50XC1pblwtdGhlXC1tYWlsXCk7Civkvb/lkb0gPiBhXC1cKGRpcGxvbWF0aWNcLW9yXC1vdGhlclwpXC1taXNzaW9uOwor5Li555quID4gdGhlXC1yb290XC1iYXJrXC1vZlwtdGhlXC1wZW9ueVwtdHJlZTsKK+WumuWBmiA+IHRvXC1oYXZlXC1zb21ldGhpbmdcLW1hZGVcLXRvXC1vcmRlcjsKK+mHjeeUqCA+IHRvXC1wdXRcLWluXC1hblwtaW1wb3J0YW50XC1wb3NpdGlvbjsKK+avlOizvSA+IFxbYXRobGV0aWNcLW9yXC1vdGhlclxdXC1jb21wZXRpdGlvbjsKK+aVmOi/sCA+IHJlbGF0ZVwtXChhXC1zdG9yeVwtb3JcLWluZm9ybWF0aW9uXCk7CivliqDph40gPiBiZWNvbWVcfG1ha2VcLW1vcmVcLXNlcmlvdXNcfGdyYXZlcjsKK+iUmueCuiA+IHRvXC1hZmZvcmRcLVwoYVwtdmlld1wtb2ZcLXN0aFwsXC1lXC5nXC5cKTsKK+mbu+iHuiA+IHJhZGlvXC1cKG9yXC1icm9hZGNhc3RpbmdcKVwtc3RhdGlvbjsKK+eikeaelyA+IHRoZVwtZm9yZXN0XC1vZlwtc3RlbGVzXC1cKGluXC14aScnYW5cKTsKK+WklueBmCA+IHdhaXRhblwtXCh0aGVcLWJ1bmRcKVwsXC1pblwtc2hhbmdoYWk7CivorYnlr6YgPiBjb25maXJtXC1cKHNvbWV0aGluZ1wtdG9cLWJlXC10cnVlXCk7CivorbDlk6EgPiBtZW1iZXJcLVwob2ZcLWFcLWxlZ2lzbGF0aXZlXC1ib2R5XCk7CivloLHooaggPiBmb3Jtc1wtZm9yXC1yZXBvcnRpbmdcLXN0YXRpc3RpY3M7CivmmI7loLEgPiBtaW5nXC1wYW9cLW5ld3NwYXBlclwtXChob25nXC1rb25nXCk7CivliY3nqIsgPiBmdXR1cmVcLVwoY2FyZWVyXCxcLWV0Y1wpXC1wcm9zcGVjdHM7CivnmbvploAgPiBwYXlcLWFcLXZpc2l0XC10b1wtc29tZW9uZScnc1wtaG91c2U7CivpgormsJEgPiBwZW9wbGVcLWxpdmluZ1wtb25cLXRoZVwtZnJvbnRpZXJzOwor6YKj5pyrID4gaWZcLXRoYXQnJ3NcLXRoZVwtY2FzZVwsXC10aGVuXC1cKFwuXC5cLlwpOwor5pWI5oeJID4gZWZmZWN0XC1cKGVnXCxcLWdyZWVuaG91c2VcLWVmZmVjdFwpOwor5q255b6SID4gZXZpbFwtcGVyc29uXC13aG9cLWNvbW1pdHNcLWNyaW1lczsKK+aUtuW+qSA+IHJlY292ZXJcLVwobG9zdFwtdGVycml0b3J5XCxcLWV0Y1wuXCk7CivlgrLpqqggPiBsb2Z0eVwtYW5kXC11bnlpZWxkaW5nXC1jaGFyYWN0ZXI7CivmlrfkuqQgPiBicmVha1wtb2ZmXC1kaXBsb21hdGljXC1yZWxhdGlvbnM7CivluLPmiLYgPiBcKGJhbmtcLFwtY29tcHV0ZXJcLFwtZXRjXC5cKVwtYWNjb3VudDsKK+WbuueEtiA+IGFkbWl0dGVkbHlcLVwoaXQnJ3NcLXRydWVcLXRoYXRcLlwuXC5cKTsKK+iHuueNqCA+IHRhaXdhblwtaW5kZXBlbmRlbmNlXC1cKG1vdmVtZW50XCk7Civkv53oi5cgPiBrZWVwXC1hXC1mdWxsXC1zdGFuZFwtb2ZcLXNlZWRsaW5nczsKK+i3r+eUsSA+IHJvdXRpbmdcLVwoaW5cLWNvbXB1dGVyXC1uZXR3b3Jrc1wpOwor5bCN576OID4gXChwb2xpY3lcLFwtZXRjXC5cKVwtdG93YXJkc1wtYW1lcmljYTsKK+aMh+aVuCA+IFwobnVtZXJpY2FsXCxcLXN0YXRpc3RpY2FsXClcLWluZGV4Owor562G55WrID4gc3Ryb2tlc1wtb2ZcLWFcLWNoaW5lc2VcLWNoYXJhY3RlcjsKK+epuuilsiA+IFwobWlsaXRhcnlcKVwtYXR0YWNrXC1mcm9tXC10aGVcLWFpcjsKK+ihqOWgsSA+IHN0YXRpc3RpY2FsXC10YWJsZXNcLWFuZFwtcmVwb3J0czsKK+aLmOaKvCA+IFwoYXJyZXN0XC1hbmRcKVwtdGFrZVwtaW50b1wtY3VzdG9keTsKK+WwmuabuCA+IGhpZ2hcLW9mZmljaWFsXC1pblwtYW5jaWVudFwtY2hpbmE7CivogbPnq4sgPiB0b1wtdG93ZXJcLWFib3ZlXC1cKG9uXC10b3BcLW9mXC1zdGhcKTsKK+ePree1hCA+IHRlYW1zXC1hbmRcLWdyb3Vwc1wtXChpblwtZmFjdG9yaWVzOwor5Lyv5q+NID4gd2lmZVwtb2ZcLWZhdGhlcicnc1wtZWxkZXJcLWJyb3RoZXI7CivkuK3ol6UgPiBcKHRyYWRpdGlvbmFsXClcLWNoaW5lc2VcLW1lZGljaW5lOwor5pqX6KKLID4gY2FtZXJhXC1iYWdcLVwoZm9yXC1jaGFuZ2luZ1wtZmlsbVwpOwor6JmV5rG6ID4gZXhlY3V0ZVwtXChhXC1jb25kZW1uZWRcLWNyaW1pbmFsXCk7CivmlrDprq4gPiBmcmVzaFwtXChleHBlcmllbmNlXCxcLWZvb2RcLFwtZXRjXC5cKTsKK+WPq+iBsiA+IHllbGxpbmdcLVwoc291bmRcLW1hZGVcLWJ5XC1wZXJzb25cKTsKK+ePreW4qyA+IHdpdGhkcmF3XC10cm9vcHNcLWZyb21cLXRoZVwtZnJvbnQ7Civlk4DmgrwgPiBncmlldmVcLVwobW91cm5cKVwtb3Zlclwtc2InJ3NcLWRlYXRoOwor56eR5oGpID4gY29oZW5cLVwodVwuc1wuXC1kZWZlbmNlXC1zZWNyZXRhcnlcKTsKK+aVl+mZoyA+IGJlXC1kZWZlYXRlZFwtb25cLXRoZVwtYmF0dGxlZmllbGQ7CivljIXos6AgPiBndWFyYW50ZWVcLXRvXC1wYXlcLWNvbXBlbnNhdGlvbnM7CivlkI3mrKEgPiBwb3NpdGlvblwtaW5cLWFcLXJhbmtpbmdcLW9mXC1uYW1lczsKK+WrguWrgiA+IHNpc3RlclwtaW5cLWxhd1wtXChodXNiYW5kJydzXC1zaWRlXCk7CivlpYnooYwgPiB0b1wtcHVyc3VlXC1cKGFcLWNvdXJzZVwsXC1hXC1wb2xpY3lcKTsKK+WRvOWWmiA+IGNhbGxcLW91dFwtXChzb21lb25lJydzXC1uYW1lXCxcLWV0Y1wpOwor8KCAgSA+IHRoZVwtb3JpZ2luYWxcLWZvcm1cLWZvclwt5LiDXC11XCs0ZTAzOwor8KCAgCA+IHRoZVwtc291bmRcLW1hZGVcLWJ5XC1icmVhdGhpbmdcLWluOwor56S65aiBID4gaG9sZFwtYVwtXChwcm90ZXN0XClcLWRlbW9uc3RyYXRpb247CivlkIPliIAgPiBwZW5ldHJhdGlvblwtb2ZcLWFcLWN1dHRpbmdcLXRvb2w7CivlkITkvY0gPiBldmVyeWJvZHlcLVwoYVwtdGVybVwtb2ZcLWFkZHJlc3NcKTsKK+mfk+WckyA+IGtvcmVhblwtd29uXC1cKHVuaXRcLW9mXC1jdXJyZW5jeVwpOwor5aCx56S+ID4gZ2VuZXJhbFwtb2ZmaWNlXC1vZlwtYVwtbmV3c3BhcGVyOwor55m86LehID4gdG9cLXJpc2VcLXRvXC1wb3dlclwtYW5kXC1wb3NpdGlvbjsKK+aUr+aPtCA+IHByb3ZpZGVcLWFzc2lzdGFuY2VcLW9yXC1iYWNraW5nOwor6KeA5risID4gXChzY2llbnRpZmljXCxcLWV0Y1wpXC1vYnNlcnZhdGlvbjsKK+mBleW/gyA+IGFnYWluc3RcLW9uZXNcLXdpbGxcLW9yXC1mZWVsaW5nczsKK+aLvOmfsyA+IHBpbnlpblwtXChjaGluZXNlXC1yb21hbml6YXRpb25cKTsKK+Wig+WkliA+IG91dHNpZGVcLVwoYVwtY291bnRyeScnc1wpXC1ib3JkZXJzOwor5ouM6Z2iID4gbm9vZGxlc1wtc2VydmVkXC13aXRoXC1zb3lcLXNhdWNlOwor55u05o6lID4gZGlyZWN0XC1cKG9wcG9zaXRlXC1vZlwtaW5kaXJlY3RcKTsKK+mPoemgrSA+IGNhbWVyYVwtc2hvdFwtXChpblwtYVwtbW92aWVcLFwtZXRjXCk7CivojqvkuI0gPiB0aGVyZVwtaXNcLW5vXC1vbmVcLVwod2hvXC1kb2VzbicndFwpOwor6YCB5Lq6ID4gdG9cLXNlZVwtXChvclwtd2Fsa1wpXC1zb21lb25lXC1ob21lOwor55m95paHID4gdGhlXC10ZXh0XC1vZlwtYW5cLWFubm90YXRlZFwtYm9vazsKK+Wwh+mgmCA+IGhpZ2hcLXJhbmtpbmdcLW1pbGl0YXJ5XC1vZmZpY2VyOwor5o6M5qyKID4gd2llbGRcLVwocG9saXRpY2FsXCxcLWV0Y1wuXClcLXBvd2VyOwor5L+D6YCyID4gdG9cLXByb21vdGVcLVwoYW5cLWlkZWFcLW9yXC1jYXVzZVwpOwor5YWs5a6JID4gXChtaW5pc3RyeVwtb2ZcKVwtcHVibGljXC1zZWN1cml0eTsKK+eXheaguSA+IGFuXC1pbmNvbXBsZXRlbHlcLWN1cmVkXC1pbGxuZXNzOwor6KOc5aCxID4gbWFrZVwtYVwtcmVwb3J0XC1hZnRlclwtdGhlXC1ldmVudDsKK+WwjeiHuiA+IFwocG9saWN5XCxcLWV0Y1wuXClcLXRvd2FyZHNcLXRhaXdhbjsKK+adv+m8kyA+IGFcLXNtYWxsXC1kcnVtXC1mb3JcLW1hcmtpbmdcLXRpbWU7CivotIXov7AgPiB0b1wtc2F5XC1tb3JlXC10aGFuXC1pc1wtbmVjZXNzYXJ5Owor5a+m6IKYID4gZnVsbFwtYXJtXC1cKG1ldGhvZFwtb2ZcLXBhaW50aW5nXCk7Civmt5jph5EgPiBwYW5uaW5nXC1cKGZvclwtcHJlY2lvdXNcLW1ldGFsc1wpOwor5oiI54i+ID4gXChhbFwpXC1nb3JlXC1cKHVzXC12aWNlXC1wcmVzaWRlbnRcKTsKK+S6guiqqiA+IHRvXC1tYWtlXC1pcnJlc3BvbnNpYmxlXC1yZW1hcmtzOwor5LiN6LuMID4gYWdhaW5zdFwtdGhlXC1sYXdcLW9yXC1kaXNjaXBsaW5lOwor5L+d5ZWGID4gcHJlc2VydmF0aW9uXC1vZlwtc29pbFwtbW9pc3R1cmU7CivkvZzmiLAgPiBjb25kdWN0XC1cKG1pbGl0YXJ5XC1vcGVyYXRpb25zXCk7CivkuJbooYwgPiBcW2FiYnJldmlhdGlvblwtZm9yXF1cLXdvcmxkXC1iYW5rOwor5Lit6I+vID4gY2hpbmFcLVwoYWx0ZXJuYXRlXC1mb3JtYWxcLW5hbWVcKTsKK+S+teWFpSA+IHRvXC1tYWtlXC1cKG1pbGl0YXJ5XClcLWluY3Vyc2lvbnM7CivnkIPmqq8gPiB0YWJsZVwtXChmb3JcLWdhbWVzXC11c2luZ1wtYmFsbHNcKTsKK+S4i+iHuiA+IHN0ZXBcLWRvd25cLVwoZnJvbVwtb2ZmaWNlXCxcLWV0Y1wuXCk7CivosqrmsaEgPiBcKHBvbGl0aWNhbFwsXC1tb3JhbFwpXC1jb3JydXB0aW9uOwor5Lit57SaID4gbWlkZGxlXC1sZXZlbFwtXChpblwtYVwtaGllcmFyY2h5XCk7CivmnInnmoQgPiBcKHRoZXJlXC1hcmVcKVwtc29tZVwtXCh3aG9cLWFyZVwuXC5cLlwpOwor6JOL6aOvID4gcmljZVwtd2l0aFwtbWVhdFwtYW5kXC12ZWdpdGFibGVzOwor5LiL54+tID4gdG9cLWNvbWVcLW9yXC1nb1wtb3JcLWdldFwtb2ZmXC13b3JrOwor5YyF6Yq3ID4gaGF2ZVwtZXhjbHVzaXZlXC1zZWxsaW5nXC1yaWdodHM7CivorpPnkIMgPiB0b1wtY29uY2VkZVwtcG9pbnRzXC1cKGluXC1hXC1nYW1lXCk7Civmm7jmiL8gPiBzdHVkeVwtXChpXC5lXC5cLXRoZVwta2luZFwtb2ZcLXJvb21cKTsKK+iqjeitmCA+IGJlXC1hY3F1YWludGVkXC13aXRoXC1cKGFcLXBlcnNvblwpOwor5Y2755eFID4gdG9cLXByZXZlbnRcLW9yXC10cmVhdFwtYVwtZGlzZWFzZTsKK+mBsumBsiA+IFwoYmVcKVwtbGF0ZVwtXCh3aXRoXC1hXC10YXNrXCxcLWV0Y1wuXCk7CivwoICFID4gYW5cLWFsdGVybmF0ZVwtZm9ybVwtb2ZcLXVcKzRlYTVcLeS6pTsKK+W+t+ePrSA+IGR1cmJhblwtXChjaXR5XC1pblwtc291dGhcLWFmcmljYVwpOwor5pO66LyqID4gYmFsYW5jZVwtXChvZlwtYVwtd2F0Y2hcLW9yXC1jbG9ja1wpOwor5pO66KitID4gZnVybmlzaFwtYW5kXC1kZWNvcmF0ZVwtXChhXC1yb29tXCk7CivnhrHnt5ogPiBob3RsaW5lXC1cKGNvbW11bmljYXRpb25zXC1saW5rXCk7Civms5XliLYgPiBsZWdhbFwtc3lzdGVtXC1hbmRcLWluc3RpdHV0aW9uczsKK+awtOW5syA+IGxldmVsXC1cKG9mXC1hY2hpZXZlbWVudFwsXC1ldGNcLlwpOwor5aSr5qyKID4gYXV0aG9yaXR5XC1vdmVyXC10aGVcLWhvdXNlaG9sZDsKK+WNsOWwvCA+IFwoYWJicmV2aWF0aW9uXC1mb3JcKVwtaW5kb25lc2lhOwor6K6K5YO5ID4gYXBwcmFpc2VcLWF0XC10aGVcLWN1cnJlbnRcLXJhdGU7CivlprnlpKsgPiBicm90aGVyXC1pblwtbGF3XC1cKHdpZmUnJ3NcLXNpZGVcKTsKK+mAsuiAjCA+IGFuZFwtdGhlblwtXCh3aGF0XC1mb2xsb3dzXC1uZXh0XCk7CivpmaPnt5ogPiBhXC1mcm9udFwtXChpZVwsXC1taWxpdGFudFwtZ3JvdXBcKTsKK+atsuaciCA+IHRoZVwteWVhcnNcLW9mXC1hXC1wZXJzb24nJ3NcLWxpZmU7CivmrbjlsawgPiBiZVwtdW5kZXJcLXRoZVwtanVyaXNkaWN0aW9uXC1vZjsKK+WcqOmHjiA+IGJlXC1vdXRcLW9mXC1cKHBvbGl0aWNhbFwpXC1vZmZpY2U7Civlu6DmiL8gPiBhXC1idWlsZGluZ1wtdXNlZFwtYXNcLWFcLWZhY3Rvcnk7CivliKTmsbogPiBqdWRnbWVudFwtXChieVwtYVwtY291cnRcLW9mXC1sYXdcKTsKK+WbsOmboyA+IFwoZmluYW5jaWFsXCxcLWV0Y1wuXClcLWRpZmZpY3VsdHk7CivmjpvomZ8gPiB0b1wtcmVnaXN0ZXJcLVwoYVwtbGV0dGVyXCxcLWV0Y1wuXCk7Civoo5zoi5cgPiBmaWxsXC10aGVcLWdhcHNcLXdpdGhcLXNlZWRsaW5nczsKK+atpuWKmyA+IFwobWFrZVwtdXNlXC1vZlwpXC1taWxpdGFyeVwtZm9yY2U7CivmlL7lgYcgPiB0b1wtaGF2ZVwtYVwtaG9saWR5XC1vclwtdmFjYXRpb247CivoiInph40gPiBcKHRoZVwtc3BvcnRcLW9mXClcLXdlaWdodGxpZnRpbmc7CivlmrToqZ4gPiBcKGNyaXRpY2l6ZVwsXC1ldGNcLlwpXC1mb3JjZWZ1bGx5Owor5aKD5YWnID4gd2l0aGluXC1cKGFcLWNvdW50cnknJ3NcKVwtYm9yZGVyczsKK+iPr+S6uiA+IGV0aG5pY1wtY2hpbmVzZVwtcGVyc29uXHxwZW9wbGU7CivmqYvmnKwgPiBcKGphcGFuZXNlXC1zdXJuYW1lXClcLWhhc2hpbW90bzsKK+WcsOeariA+IGxvdFwsXC1zZWN0aW9uXC1vZlwtbGFuZFwsXC1ncm91bmQ7CivovYnmqZ8gPiBcKHRha2VcLWFcKVwtdHVyblwtZm9yXC10aGVcLWJldHRlcjsKK+W4uOWnlCA+IG1lbWJlclwtb2ZcLXN0YW5kaW5nXC1jb21taXR0ZWU7Civotbfpo5sgPiB0b1wtdGFrZVwtb2ZmXC1cKGluXC1hblwtYWlycGxhbmVcKTsKK+mWi+W5lSA+IHRvXC1vcGVuXC1cKGFcLWNvbmZlcmVuY2VcLFwtZVwuZ1wuXCk7CivmiZPph50gPiB0b1wtZ2l2ZVwtb3JcLWhhdmVcLWFuXC1pbmplY3Rpb247CivnkqforJ0gPiBkZWNsaW5lXC1cKGFcLWdpZnRcKVwtd2l0aFwtdGhhbmtzOwor5bCN6I+vID4gXChwb2xpY3lcLFwtZXRjXC5cKVwtdG93YXJkc1wtY2hpbmE7CivlhIDlmaggPiBcKHNjaWVudGlmaWNcLFwtZXRjXClcLWluc3RydW1lbnQ7CivnqbbovqYgPiB0b1wtaW52ZXN0aWdhdGVcLWFuZFwtZGVhbFwtd2l0aDsKK+Wumue9qiA+IGNvbnZpY3RcLVwoc29tZW9uZVwtb2ZcLWFcLWNyaW1lXCk7CivmnKzpoYwgPiB0aGVcLXN1YmplY3RcLXVuZGVyXC1kaXNjdXNzaW9uOwor6IOM57CNID4gYVwtYmFza2V0XC1jYXJyaWVkXC1vblwtdGhlXC1iYWNrOwor5pyJ6ZecID4gdG9cLWhhdmVcLXNvbWV0aGluZ1wtdG9cLWRvXC13aXRoOwor5L6G5rqQID4gc291cmNlXC1cKG9mXC1pbmZvcm1hdGlvblwsXC1ldGNcKTsKK+eNsumHiyA+IG9idGFpblwtcmVsZWFzZVwtXChmcm9tXC1wcmlzb25cKTsKK+WwjeaXpSA+IFwocG9saWN5XCxcLWV0Y1wuXClcLXRvd2FyZHNcLWphcGFuOwor5oaL5rCjID4gZmVlbFwtc3VmZm9jYXRlZFwtb3JcLW9wcHJlc3NlZDsKK+WQjOiDniA+IGZlbGxvd1wtY2l0aXplblwtb3JcLWNvdW50cnltYW47CivljL7poY0gPiBhXC1ob3Jpem9udGFsXC1pbnNjcmliZWRcLWJvYXJkOwor56K66Ki6ID4gdG9cLW1ha2VcLWFcLWRlZmluaXRlXC1kaWFnbm9zaXM7CivlroPlgJEgPiB0aGV5XC1cKGZvclwtaW5hbmltYXRlXC1vYmplY3RzXCk7Civnj77loLQgPiBzY2VuZVwtXChvZlwtZXZlbnRcLW9yXC1pbmNpZGVudFwpOwor5oSb5oOFID4gbG92ZVwtXChiZXR3ZWVuXC1tYW5cLWFuZFwtd29tYW5cKTsKK+iuiuevgCA+IG1ha2VcLWFcLXBvbGl0aWNhbFwtcmVjYW50YXRpb247Civmtonlq4wgPiB0b1wtYmVcLWFcLXN1c3BlY3RcLVwoaW5cLWFcLWNyaW1lXCk7CivlpLHotrMgPiB0b1wtdGFrZVwtYVwtd3JvbmdcLXN0ZXBcLWluXC1saWZlOwor54qn54myID4gc2FjcmlmaWNlXC1cKG9uZScnc1wtbGlmZVwsXC1ldGNcLlwpOwor5Lqe5LyvID4gYWJlXC1cKHNob3J0XC1mb3JtXC1mb3JcLWFicmFoYW1cKTsKK+eMnOW/jCA+IGJlXC1zdXNwaWNpb3VzXC1hbmRcLWplYWxvdXNcLW9mOwor6buo5YWnID4gd2l0aGluXC10aGVcLVwoY29tbXVuaXN0XClcLXBhcnR5Owor5YuV6JWpID4gXChzb2NpYWxcLW9yXC1wb2xpdGljYWxcKVwtdW5yZXN0Owor546L5Li5ID4gd2FuZ1wtZGFuXC1cKGNoaW5lc2VcLWRpc3NpZGVudFwpOwor5rG65a6aID4gdG9cLWRlY2lkZVwtXCh0b1wtZG9cLXNvbWV0aGluZ1wpOwor5aeK5aa5ID4gXChvbGRlclwtYW5kXC15b3VuZ2VyXClcLXNpc3RlcnM7CivpgLzogpYgPiBiZWFyXC1hXC1jbG9zZVwtcmVzZW1ibGFuY2VcLXRvOwor5b6p5a+pID4gcmVleGFtaW5lXC1cKGFcLWp1ZGljaWFsXC1jYXNlXCk7CivlhaXploAgPiBpbnRyb2R1Y3Rpb25cLVwodG9cLWFcLXN1YmplY3RcKTsKK+eZvemcsiA+IHdoaXRlXC1kZXdcLVwoMTV0aFwtc29sYXJcLXRlcm1cKTsKK+ijnOmrlCA+IGNvbXBsZW1lbnRcLVwoaW5cLWJsb29kXC1zZXJ1bVwpOwor6KmV5q+UID4gdG9cLWV2YWx1YXRlXC1cKGJ5XC1jb21wYXJpc29uXCk7CivovYnouqsgPiBcKG9mXC1hXC1wZXJzb25cKVwtdG9cLXR1cm5cLXJvdW5kOwor54iq5ZOHID4gamF2YVwtXChwcm9ncmFtbWluZ1wtbGFuZ3VhZ2VcKTsKK+aViOW/oCA+IHZvd1wtbG95YWx0eVwtYW5kXC1kZXZvdGlvblwtdG87CivmjqHovqYgPiBidXlcLW9uXC1hXC1jb25zaWRlcmFibGVcLXNjYWxlOwor5byf5aa5ID4gc2lzdGVyXC1pblwtbGF3XC1cKHdpZmUnJ3NcLXNpZGVcKTsKK+mZt+aWvCA+IGNhdWdodFwtaW5cLVwoYVwtYmFkXC1zaXR1YXRpb25cKTsKK+WkluWMryA+IGZvcmVpZ25cLVwoY3VycmVuY3lcKVwtZXhjaGFuZ2U7CivmkZjnlLEgPiBoaWdoXC1wb2ludHNcLVwob2ZcLWFcLWRvY3VtZW50XCk7CivlgbTourogPiB0b1wtbGllXC1kb3duXC1cKG9uXC1vbmUnJ3NcLXNpZGVcKTsKK+aQnOaNlSA+IGh1bnRcLWFuZFwtYXJyZXN0XC1cKGZ1Z2l0aXZlc1wpOwor5o+55pu4ID4gcmVjaXRlXC1hXC1sZXNzb25cLWZyb21cLW1lbW9yeTsKK+W5uOWFjSA+IG5hcnJvd2x5XC1hbmRcLWx1Y2tpbHlcLWVzY2FwZTsKK+Wci+aomSA+IGd1b2JpYW9cLVwoZW5jb2RpbmdcLXN0YW5kYXJkXCk7Civkvr/ooYAgPiBoYXZpbmdcLWJsb29kXC1pblwtb25lJydzXC1zdG9vbDsKK+eXheapnyA+IGludGVycHJldGF0aW9uXC1vZlwtdGhlXC1jYXVzZTsKK+aJjeiPryA+IGxpdGVyYXJ5XC1vclwtYXJ0aXN0aWNcLXRhbGVudDsKK+aMh+azlSA+IGZpbmdlclwtbWV0aG9kXC1cKGluXC1wYWludGluZ1wpOwor5a+26JePID4gcHJlY2lvdXNcLVwobWluZXJhbFwpXC1kZXBvc2l0czsKK+aPkOWJjSA+IHRvXC1zaGlmdFwtdG9cLWFuXC1lYXJsaWVyXC1kYXRlOwor6Lyp5Ye6ID4gY29tZVwtZm9ydGhcLWluXC1sYXJnZVwtbnVtYmVyczsKK+adv+m0qCA+IHByZXNzZWRcLVwoZHJpZWRcKVwtc2FsdGVkXC1kdWNrOwor5ouU5rW3ID4gZWxldmF0aW9uXC1cKGFib3ZlXC1zZWFcLWxldmVsXCk7CivlgKvmlaYgPiBsb25kb25cLVwoY2FwaXRhbFwtb2ZcLWVuZ2xhbmRcKTsKK+aineasviA+IGNsYXVzZVwtXChvZlwtY29udHJhY3RcLW9yXC1sYXdcKTsKK+eXheS+iyA+IFxbbWVkaWNhbFxdXC1jYXNlXC1cW29mXC1pbGxuZXNzXF07CivlmajlrpggPiBvcmdhblwtXChwYXJ0XC1vZlwtYm9keVwtdGlzc3VlXCk7Civnj63ntJogPiBjbGFzc2VzXC1vclwtZ3JhZGVzXC1pblwtc2Nob29sOwor5oay5rOVID4gY29uc3RpdHV0aW9uXC1cKG9mXC1hXC1jb3VudHJ5XCk7CivkuI3oq7EgPiB3aXRob3V0XC1jb25jZWFsaW5nXC1hbnl0aGluZzsKK+WuieaPkiA+IHBsYWNlXC1pblwtYVwtY2VydGFpblwtcG9zaXRpb247Civlj6TouZ8gPiBwbGFjZXNcLW9mXC1oaXN0b3JpY1wtaW50ZXJlc3Q7CivmsKPpq5QgPiBnYXNcLVwoaWVcLFwtZ2FzZW91c1wtc3Vic3RhbmNlXCk7CivlravlrZAgPiBncmFuZHNvblwtXChzb25cLW9mXC1vbmUnJ3NcLXNvblwpOwor5aWU6aiwID4gXChvZlwtd2F2ZXNcKVwtdG9cLXN1cmdlXC1mb3J3YXJkOwor6YO16Zu7ID4gcG9zdFwtYW5kXC10ZWxlY29tbXVuaWNhdGlvbnM7CivllY/lgJkgPiBnaXZlXC1zb21lb25lXC1vbmUnJ3NcLXJlc3BlY3RzOwor56WW54i2ID4gZ3JhbmRmYXRoZXJcLVwoZmF0aGVyJydzXC1zaWRlXCk7CivmsbrnrZYgPiBcKG1ha2VcLWFcKVwtc3RyYXRlZ2ljXC1kZWNpc2lvbjsKK+elluavjSA+IGdyYW5kbW90aGVyXC1cKGZhdGhlcicnc1wtc2lkZVwpOwor6Yed54G4ID4gYWN1cHVuY3R1cmVcLWFuZFwtbW94aWJ1c3Rpb247CivkuIDml6YgPiBpblwtY2FzZVwtXChzb21ldGhpbmdcLWhhcHBlbnNcKTsKK+Wjvei+sCA+IGJpcnRoZGF5XC1cKG9mXC1hblwtb2xkXC1wZXJzb25cKTsKK+W+qeeUpiA+IHJlY292ZXJ5XC1cKGhlYWx0aFwsXC1lY29ub21pY1wpOwor5pmC5pyfID4gYVwtcGVyaW9kXC1pblwtdGltZVwtb3JcLWhpc3Rvcnk7CivlkITlnLAgPiBpblwtYWxsXC1wYXJ0c1wtb2ZcLVwoYVwtY291bnRyeVwpOwor56KR5paHID4gYW5cLWluc2NyaXB0aW9uXC1vblwtYVwtdGFibGV0Owor5Y+w5YyXID4gdGFpcGVpXC1cKGNhcGl0YWxcLW9mXC10YWl3YW5cKTsKK+ays+WFpyA+IGhhbm9pXC1cKGNhcGl0YWxcLW9mXC12aWV0bmFtXCk7Civph4/lipsgPiB0b1wtZXN0aW1hdGVcLW9uZScnc1wtc3RyZW5ndGg7CivmlqHml4sgPiBtZWRpYXRlXC1cKGFcLWNvbmZsaWN0XCxcLWV0Y1wuXCk7CivniYzljL4gPiBib2FyZFwtXChhdHRhY2hlZFwtdG9cLWFcLXdhbGxcKTsKK+WLleaJiyA+IHRvXC1oaXRcLXdpdGhcLWhhbmRzXC1vclwtZmlzdHM7CivmraXmnIggPiB0b1wtc3Ryb2xsXC1iZW5lYXRoXC10aGVcLW1vb247CivoqpPluKsgPiB0b1wtdm93XC1iZWZvcmVcLW9uZScnc1wtdHJvb3BzOwor6YOo5aeUID4gbWluaXN0cmllc1wtYW5kXC1jb21taXNzaW9uczsKK+mbo+aAqiA+IFwoaXQnJ3NcKVwtbm9cLXdvbmRlclwtXCh0aGF0XC5cLlwuXCk7Civlh43ntZAgPiBcKGxvYW5cLFwtd2FnZVwsXC1wcmljZVwpXC1mcmVlemU7Civmlr3liqAgPiBleGVydFwtXChlZmZvcnRcLW9yXC1wcmVzc3VyZVwpOwor6KaW56qXID4gd2luZG93c1wtXChvcGVyYXRpbmdcLXN5c3RlbVwpOwor5beo6JGXID4gbW9udW1lbnRhbFwtXChsaXRlcmFyeVwpXC13b3JrOwor5Yuf5YyWID4gdG9cLWNvbGxlY3RcLWFsbXNcLVwoYnVkZGhpc21cKTsKK+mDqOS4iyA+IHRyb29wc1wtdW5kZXJcLW9uZScnc1wtY29tbWFuZDsKK+WFqOeoiyA+IFwoZHVyaW5nXC1hblwpXC1lbnRpcmVcLWpvdXJuZXk7Civplbfnr4cgPiBsZW5ndGh5XC1cKHJlcG9ydFwtb3JcLXNwZWVjaFwpOwor6KW/5rmWID4gdGhlXC13ZXN0XC1sYWtlXCxcLWluXC1oYW5nemhvdTsKK+aSpeW8hCA+IG1vdmVcLXRvXC1hbmRcLWZyb1wtXCh3aXRoXC1oYW5kOwor6KGo6KiYID4gc29tZXRoaW5nXC1naXZlblwtYXNcLWFcLXRva2VuOwor6KGo6KOhID4gdGhlXC1vdXRzaWRlXC1hbmRcLXRoZVwtaW5zaWRlOwor6YC85YK1ID4gcHJlc3NcLWZvclwtcGF5bWVudFwtb2ZcLWRlYnRzOwor562G6YuSID4gdGhlXC10aXBcLW9mXC1hXC13cml0aW5nXC1icnVzaDsKK+WgseWIiiA+IG5ld3NwYXBlcnNcLWFuZFwtcGVyaW9kaWNhbHM7CivmvJTorJsgPiBcKGdpdmVcKVwtYVwtc3BlZWNoXC1vclwtbGVjdHVyZTsKK+Wci+eItiA+IGZhdGhlclx8Zm91bmRlclwtb2ZcLWFcLW5hdGlvbjsKK+S+nemdoCA+IHJlbHlcLW9uXC1cKGZvclwtc3VwcG9ydFwsXC1ldGNcKTsKK+aJgOmVtyA+IGhlYWRcLW9mXC1hblwtaW5zdGl0dXRlXCxcLWV0Y1wuOwor6Iul5bmyID4gYVwtY2VydGFpblwtbnVtYmVyXHxhbW91bnRcLW9mOwor56u26YG4ID4gcnVuXC1mb3JcLVwoZWxlY3RvcmFsXClcLW9mZmljZTsKK+aQtuWFiCA+IHRvXC1ydXNoXC1cKHRvXC1kb1wtc3RoXC11cmdlbnRcKTsKK+WBnOeVmSA+IHN0YXlcLXNvbWV3aGVyZVwtdGVtcG9yYXJpbHk7Civnl4XmoKogPiBkaXNlYXNlZFwtb3JcLWluZmVjdGVkXC1wbGFudDsKK+S/l+eosSA+IGJlXC1jb21tb25seVwtcmVmZXJyZWRcLXRvXC1hczsKK+ihjOWwhyA+IGJlXC1hYm91dFwtdG9cLVwoZG9cLXNvbWV0aGluZ1wpOwor6Laz55CDID4gZm9vdGJhbGxcLVwoYnJpdGlzaFwtZW5nbGlzaFwpOwor6IOM6ISKID4gdGhlXC1iYWNrXC1vZlwtdGhlXC1odW1hblwtYm9keTsKK+aKl+aTiiA+IHJlc2lzdFwtXChhXC1taWxpdGFyeVwtYXR0YWNrXCk7CivlsIvmqZ8gPiB0b1wtbG9va1wtZm9yXC1hblwtb3Bwb3J0dW5pdHk7Civlr6bms4EgPiB3aGF0XC1pc1wtYWN0dWFsbHlcLWhhcHBlbmluZzsKK+S4gembsiA+IGRpbmdcLXl1blwtXChhXC1wZXJzb25hbFwtbmFtZVwpOwor5qGI5p2/ID4ga25lYWRpbmdcLW9yXC1jaG9wcGluZ1wtYm9hcmQ7Civkv53lroggPiBcKHBvbGl0aWNhbGx5XClcLWNvbnNlcnZhdGl2ZTsKK+S4jemAgSA+IGRvbicndFwtYm90aGVyXC10b1wtc2VlXC1tZVwtb3V0Owor56We6YGTID4gc2hpbnRvXC1cKGphcGFuZXNlXC1yZWxpZ2lvblwpOwor5bCH5bCxID4gYWNjZXB0XC1cKGFcLWJpdFwtcmVsdWN0YW50bHlcKTsKK+aHt+aKsSA+IFwod2l0aGluXC1zb21lb25lJydzXClcLWVtYnJhY2U7Civlj7PpgoogPiByaWdodFwtXChhc1wtb3Bwb3NlZFwtdG9cLWxlZnRcKTsKK+ekvuirliA+IGVkaXRvcmlhbFwtXChpblwtYVwtbmV3c3BhcGVyXCk7CivlrrbluLggPiB0aGVcLWRhaWx5XC1saWZlXC1vZlwtYVwtZmFtaWx5Owor5pu46IGWID4gYVwtZ3JlYXRcLWNhbGxpZ3JhcGh5XC1tYXN0ZXI7Civos4fmnKwgPiBjYXBpdGFsXC1cKGFzXC1pblwtY2FwaXRhbGlzbVwpOwor6aKo55C0ID4gb3JnYW5cLVwobXVzaWNhbFwtaW5zdHJ1bWVudFwpOwor5a2X5biWID4gY29weWJvb2tcLVwoZm9yXC1jYWxsaWdyYXBoeVwpOwor5a6J5YiGID4gbm90XC1nb1wtYmV5b25kXC1vbmUnJ3NcLWJvdW5kczsKK+aal+eskSA+IGxhdWdoXC1pblwtXCh1cFwpXC1vbmUnJ3NcLXNsZWV2ZTsKK+e+jueOsiA+IG1laVwtbGluZ1wtXChhXC1wZXJzb24nJ3NcLW5hbWVcKTsKK+eip+ihgCA+IGJsb29kXC1zaGVkXC1pblwtYVwtanVzdFwtY2F1c2U7CivmtKrmo64gPiBodW5cLXNlblwtXChjYW1ib2RpYW5cLWxlYWRlclwpOwor56if5ZGKID4gcmVwb3J0XC1cKHRvXC1vbmUnJ3NcLXN1cGVyaW9yXCk7Civpgbrpq5QgPiByZW1haW5zXC1cKG9mXC1hXC1kZWFkXC1wZXJzb25cKTsKK+mBv+miqCA+IHRha2VcLXNoZWx0ZXJcLWZyb21cLXRoZVwtd2luZDsKK+emj+W7uiA+IGZ1amlhblwtXChwcm92aW5jZVwtb2ZcLWNoaW5hXCk7Civli5joqqQgPiB0b1wtY29ycmVjdFwtcHJpbnRpbmdcLWVycm9yczsKK+WNh+e0miA+IHRvXC1lc2NhbGF0ZVwtXChpblwtaW50ZW5zaXR5XCk7CivlvLfoqr8gPiB0b1wtZW1waGFzaXplXC1cKGFcLXN0YXRlbWVudFwpOwor6ICM5LiUID4gbm90XC1vbmx5XC1cLlwuXC5cLWJ1dFwtYWxzb1wtXC5cLlwuXC47Civpgbfpg70gPiB0b1wtbW92ZVwtdGhlXC1jYXBpdG9sXC1cKGNpdHlcKTsKK+S4jeS9hiA+IG5vdFwtb25seVwtXChcLlwuXC5cLWJ1dFwtYWxzb1wuXC5cLlwpOwor5YyF55SiID4gbWFrZVwtYVwtcHJvZHVjdGlvblwtY29udHJhY3Q7CivljJfmnJ0gPiB0aGVcLW5vcnRoZXJuXC1keW5hc3RpZXNcLVwoYTsKK+WMheaUrCA+IHVuZGVydGFrZVwtdGhlXC13aG9sZVwtdGhpbmc7Civli57mlZkgPiByZWVkdWNhdGlvblwtdGhyb3VnaFwtbGFib3I7CivljYrloLQgPiBoYWxmXC1vZlwtYVwtZ2FtZVwtb3JcLWNvbnRlc3Q7CivnmbzpgZQgPiBkZXZlbG9wZWRcLVwoY291bnRyeVwsXC1ldGNcLlwpOwor54CJ6ZyyID4gdG9cLWxlYWtcLW91dFwtXChpbmZvcm1hdGlvblwpOwor5q2y5pW4ID4gYWdlXC1cKG51bWJlclwtb2ZcLXllYXJzXC1vbGRcKTsKK+mWi+iorSA+IG9mZmVyXC1cKGdvb2RzXC1vclwtc2VydmljZXNcKTsKK+W7o+adsSA+IGd1YW5nZG9uZ1wtcHJvdmluY2VcLFwtY2hpbmE7CivmlL7lv4MgPiB0b1wtc2V0XC1vbmUnJ3NcLW1pbmRcLWF0XC1yZXN0Owor6a2v6L+FID4gbmFtZVwtb2ZcLWFuXC1hdXRob3JcLFwtbHVcLXh1bjsKK+mBmeacmyA+IHRvXC1sb29rXC1pbnRvXC10aGVcLWRpc3RhbmNlOwor6KOc6LazID4gYnJpbmdcLXVwXC10b1wtZnVsbFwtc3RyZW5ndGg7CivnhqzlpJwgPiBzdGF5XC11cFwtbGF0ZVwtb3JcLWFsbFwtbmlnaHQ7Civpq5TpqZcgPiB0b1wtZXhwZXJpZW5jZVwtZm9yXC1vbmVzZWxmOwor5pKV5q+AID4gdGVhclwtdXBcLVwoYVwtY29udHJhY3RcLFwtZXRjXCk7Civlgr7pircgPiB0b1wtZHVtcFwtXChnb29kc1wsXC1wcm9kdWN0c1wpOwor55yL5rOVID4gd2F5XC1vZlwtbG9va2luZ1wtYXRcLWFcLXRoaW5nOwor6Zec5rOoID4gZm9sbG93XC1cKGFuXC1pc3N1ZVwpXC1jbG9zZWx5Owor5Ymd5ZWEID4gdGFwXC1cKG9uXC1hXC1kb29yXC1vclwtd2luZG93XCk7CivovqjmnpAgPiBkaWZmZXJlbnRpYXRlXC1hbmRcLWFuYWx5c2U7CivlnIvnlKIgPiBtYWRlXC1pblwtb25lJydzXC1vd25cLWNvdW50cnk7Civnmb3ml48gPiB0aGVcLWJhaVwtXChwYWlcKVwtbmF0aW9uYWxpdHk7Civnl4XnmZIgPiByZWNvdmVyXC1cKGZyb21cLWFuXC1pbGxuZXNzXCk7Civlr6zpmZAgPiBleHRlbmRcLVwoYVwtZGVhZGxpbmVcLFwtZXRjXC5cKTsKK+ihqOaFiyA+IG1ha2VcLWtub3duXC1vbmUnJ3NcLXBvc2l0aW9uOwor5a6j6KqTID4gc3dlYXJcLWFuXC1vYXRoXC1cKG9mXC1vZmZpY2VcKTsKK+aLnOacmyA+IGNhbGxcLXRvXC1wYXlcLW9uZScnc1wtcmVzcGVjdDsKK+evh+W5hSA+IFwodGFrZVwtdXBcLW9yXC1kZXZvdGVcKVwtc3BhY2U7Civpppbnm7ggPiBcKGphcGFuZXNlXClcLXByaW1lXC1taW5pc3RlcjsKK+aKiuW8jyA+IHBlcnNvblwtc2tpbGxlZFwtaW5cLWFcLXRyYWRlOwor5reY57GuID4gYmFza2V0XC1cKGZvclwtd2FzaGluZ1wtcmljZVwpOwor55Sl5aWzID4gbmllY2VcLVwoc2lzdGVyJydzXC1kYXVnaHRlclwpOwor5ryi5Lq6ID4gaGFuXC1jaGluZXNlXC1wZXJzb25cfHBlb3BsZTsKK+S8uuapnyA+IHRvXC13YXRjaFwtZm9yXC1vbmUnJ3NcLWNoYW5jZTsKK+mguOmDqCA+IHRoZVwtbmVja1wtYXJlYVwtb2ZcLXRoZVwtYm9keTsKK+iDjOW9sSA+IGFcLXZpZXdcLW9mXC1zb21lYm9keScnc1wtYmFjazsKK+eLoeiztCA+IHRvXC1kZW55XC1cKHRocm91Z2hcLXNvcGhpc21cKTsKK+iuiuizoyA+IHNlbGxcLW9mZlwtXChvbmUnJ3NcLXByb3BlcnR5XCk7Civmsbros70gPiBmaW5hbHNcLVwob2ZcLWFcLWNvbXBldGl0aW9uXCk7Civmnb/mm7ggPiB3cml0aW5nXC1vblwtdGhlXC1ibGFja2JvYXJkOwor54+A5pavID4gcGVydGhcLVwoY2l0eVwtaW5cLWF1c3RyYWxpYVwpOwor5oSb5oaQID4gc2hvd1wtdGVuZGVyXC1hZmZlY3Rpb25cLWZvcjsKK+aatOa8siA+IHJpc2VcLXN1ZGRlbmx5XC1hbmRcLXNoYXJwbHk7CivpjITlhbEgPiB0b1wtdGFrZVwtZG93blwtYVwtY29uZmVzc2lvbjsKK+acrOWutiA+IGFcLW1lbWJlclwtb2ZcLXRoZVwtc2FtZVwtY2xhbjsKK+mdouiHqCA+IGJlXC1mYWNlZFwtd2l0aFwtXChhXC1wcm9ibGVtXCk7CivmsaDmua8gPiBsYXJnZVwtcG9vbFwtaW5cLWFcLWJhdGhob3VzZTsKK+eNjuWLtSA+IHJld2FyZFwtXChhc1wtZW5jb3VyYWdlbWVudFwpOwor6aCG5beuID4gXCh0cmFkZVwtb3JcLWJ1ZGdldFwpXC1zdXJwbHVzOwor5Yid6YG4ID4gXCh1c1wpXC1wcmltYXJpZXNcLVwoZWxlY3Rpb25cKTsKK+WgsemKtyA+IHN1Ym1pdFwtYW5cLWV4cGVuc2VcLWFjY291bnQ7Civlj5Tlj5QgPiBmYXRoZXInJ3NcLXlvdW5nZXJcLWJyb3RoZXI7Civln47pl5wgPiBhcmVhXC1vdXRzaWRlXC1hXC1jaXR5XC1nYXRlOwor6YGL566XID4gXChtYXRoZW1hdGljYWxcKVwtb3BlcmF0aW9uOwor5bee6ZW3ID4gZ292ZXJub3JcLVwob2ZcLWFcLXVzXC1zdGF0ZVwpOwor6YOo5bGsID4gYWZmaWxpYXRlZFwtdG9cLWFcLW1pbmlzdHJ5Owor5byV5pOOID4gZW5naW5lXC1cKHRyYW5zbGl0ZXJhdGlvblwpOwor55m76KiYID4gdG9cLXJlZ2lzdGVyXC1cKG9uZScnc1wtbmFtZVwpOwor5qmf57WEID4gZmxpZ2h0XC1jcmV3XC1cKG9uXC1hXC1wbGFuZVwpOwor6YG85a+nID4gbGlhb25pbmdcLXByb3ZpbmNlXCxcLWNoaW5hOwor54Wn5bi4ID4gXChidXNpbmVzc1wsXC1ldGNcKVwtYXNcLXVzdWFsOwor5pKr5pG4ID4gZ2VudGx5XC1jYXJlc3NcLWFuZFwtc3Ryb2tlOwor5YiH5pa3ID4gY3V0XC1vZmZcLVwoYVwtc3VwcGx5XCxcLWV0Y1wuXCk7Civlu7rliLYgPiBvcmdhbml6YXRpb25hbFwtc3RydWN0dXJlOwor6YCA5b25ID4gcmV0aXJlXC1mcm9tXC10aGVcLW1pbGl0YXJ5Owor6YGV5Y+NID4gdG9cLXZpb2xhdGVcLVwoYVwtbGF3XCxcLWVcLmdcLlwpOwor5bmr5buaID4gaGVscFwtaW5cLXRoZVwtbWVzc1wta2l0Y2hlbjsKK+ijnOeohSA+IHBheVwtYVwtdGF4XC1vbmVcLWhhc1wtZXZhZGVkOwor6KWy5pOKID4gXChtYWtlXC1hXClcLXN1cnByaXNlXC1hdHRhY2s7Civnmb3mt6ggPiBcKG9mXC1za2luXClcLWZhaXJcLWFuZFwtY2xlYXI7Civlt6Hmn6UgPiB0b1wtZ29cLWFyb3VuZFwtYW5kXC1pbnNwZWN0Owor5YW15pu4ID4gYVwtYm9va1wtb25cLXRoZVwtYXJ0XC1vZlwtd2FyOwor55Si6Yq3ID4gcHJvZHVjdGlvblwtYW5kXC1tYXJrZXRpbmc7Civpl4zlsL4gPiBhcHBlbmRpeFwtXChpblwtaHVtYW5cLWJvZHlcKTsKK+W5heWToSA+IGFcLWNvdW50cnknJ3NcLXN1cmZhY2VcLWFyZWE7CivmkqXku5ggPiBhcHByb3ByaWF0ZVwtc3VtXC1vZlwtbW9uZXk7CivlnIvnh58gPiBzdGF0ZVwtcnVuXC1cKGNvbXBhbnlcLFwtZXRjXCk7CivmkI3lpLEgPiBhXC1cKGZpbmFuY2lhbFwsXC1ldGNcLlwpXC1sb3NzOwor6L6m5YWsID4gaGFuZGxlXC1vZmZpY2lhbFwtYnVzaW5lc3M7CivkvZnpnIcgPiBcKGVhcnRocXVha2VcKVwtYWZ0ZXJzaG9ja3M7CivnlZrnrpUgPiBhXC1iYW1ib29cLW9yXC13aWNrZXJcLXNjb29wOwor56qB6aGvID4gbWFrZVwtc29tZXRoaW5nXC1zdGFuZFwtb3V0Owor5o+h5YqbID4gXChzdHJlbmd0aFwtb2ZcLW9uZScnc1wpXC1ncmlwOwor6aas6KOhID4gbWFsaVwtXChuYW1lXC1vZlwtYVwtY291bnRyeVwpOwor55eF5oWLID4gbW9yYmlkXC1vclwtYWJub3JtYWxcLXN0YXRlOwor5o6n5Yi2ID4gdG9cLVwoaGF2ZVwpXC1jb250cm9sXC1cKG92ZXJcKTsKK+S9s+iDvSA+IGNhbm9uXC1cKGphcGFuZXNlXC1jb21wYW55XCk7Civnl4XlrrYgPiBhXC1wYXRpZW50XC1hbmRcLWhpc1wtZmFtaWx5Owor55aR5oORID4gXChhXC1zZW5zZVwtb2ZcKVwtdW5jZXJ0YWludHk7CivmiZPniYwgPiB0b1wtcGxheVwtbWFoam9uZ1wtb3JcLWNhcmRzOwor5YGa5a6iID4gdG9cLWJlXC1hXC1ndWVzdFwtb3JcLXZpc2l0b3I7CivooYzkvb8gPiBleGVyY2lzZVwtXChhXC1yaWdodFwsXC1ldGNcLlwpOwor562G5oy6ID4gXChzdGFuZGluZ1wpXC12ZXJ5XC1zdHJhaWdodDsKK+WuieelniA+IGNhbG1cLVwoc29vdGhlXClcLXRoZVwtbmVydmVzOwor6IGz6IKpID4gdG9cLXNocnVnXC1vbmUnJ3NcLXNob3VsZGVyczsKK+a3seepuiA+IGRlZXBcLXNwYWNlXC1cKG91dGVyXC1zcGFjZVwpOwor5ZSQ57SNID4gdGFubmVyXC1cKGVuZ2xpc2hcLXN1cm5hbWVcKTsKK+WRiOiriyA+IHRvXC1zdWJtaXRcLVwodG9cLXN1cGVyaW9yc1wpOwor5LiK6Ki0ID4gYXBwZWFsXC1cKGFcLWp1ZGljaWFsXC1jYXNlXCk7Civmh7flv7UgPiB0b1wtY2hlcmlzaFwtdGhlXC1tZW1vcnlcLW9mOwor54m56bueID4gY2hhcmFjdGVyaXN0aWNcLVwoZmVhdHVyZVwpOwor5a2X5q+NID4gbGV0dGVyXC1cKG9mXC10aGVcLWFscGhhYmV0XCk7CivlkIzorIAgPiB0b1wtY29uc3BpcmVcLXdpdGhcLXNvbWVvbmU7CivmoYPlnJIgPiB0YW95dWFuXC1cKGNpdHlcLWluXC10YWl3YW5cKTsKK+axn+mdoiA+IHRoZVwtc3VyZmFjZVwtb2ZcLXRoZVwtcml2ZXI7CivnopHpoY0gPiB0aGVcLXRvcFwtcGFydFwtb2ZcLWFcLXRhYmxldDsKK+S8tOWljyA+IHRvXC1hY2NvbXBhbnlcLVwobXVzaWNhbGx5XCk7Civlj7Pnv7wgPiBcKHBvbGl0aWNhbGx5XClcLXJpZ2h0XC13aW5nOwor5rWZ5rGfID4gemhlamlhbmdcLXByb3ZpbmNlXCxcLWNoaW5hOwor6K2Y6KaLID4ga25vd2xlZGdlXC1hbmRcLWV4cGVyaWVuY2U7CivosrfluLMgPiB0b1wtc2hvd1wtcmVzcGVjdFwtXChmb3JcLXNiXCk7Civmmpfnrq0gPiBhdHRhY2tcLWJ5XC1hXC1oaWRkZW5cLWVuZW15Owor5rex5ZyzID4gc2hlbnpoZW5cLVwoY2l0eVwtaW5cLWNoaW5hXCk7CivnqIvluqYgPiBkZWdyZWVcLVwobGV2ZWxcLW9yXC1leHRlbnRcKTsKK+Wkp+mXnCA+IFwocmVhY2hcLWFcKVwtY3JpdGljYWxcLXBvaW50Owor6aCt54mIID4gXChuZXdzcGFwZXInJ3NcKVwtZnJvbnRcLXBhZ2U7CivmmKXoga8gPiBzcHJpbmdcLWZlc3RpdmVsXC1jb3VwbGV0czsKK+S7peS+hiA+IHNpbmNlXC1cKGFcLXByZXZpb3VzXC1ldmVudFwpOwor6JOu6IqxID4gbG90dXNcLVwoY29tcHV0ZXJcLWNvbXBhbnlcKTsKK+S4jeaXpSA+IHdpdGhpblwtdGhlXC1uZXh0XC1mZXdcLWRheXM7Civoq5Lop6MgPiBcKHJlYWNoXClcLWFuXC11bmRlcnN0YW5kaW5nOwor6JOL56ugID4gdG9cLWFmZml4XC1hXC1zZWFsXC1cKHRvXC1zdGhcKTsKK+inuOmbuyA+IHRvXC1nZXRcLWFuXC1lbGVjdHJpY1wtc2hvY2s7CivkuLvli5UgPiBcKHRvXC10YWtlXC10aGVcKVwtaW5pdGlhdGl2ZTsKK+iotOiqqiA+IHRlbGxcLVwodG9cLWFub3RoZXJcLXBlcnNvblwpOwor57i957WxID4gcHJlc2lkZW50XC1cKG9mXC1hXC1jb3VudHJ5XCk7CivloLHpoK0gPiBtYXN0aGVhZFwtXChvZlwtYVwtbmV3c3BhcGVyOwor5Y2X5rKZID4gbmFuc2hhXC1cKHNwcmF0bHlcKVwtaXNsYW5kczsKK+mAmumBkyA+IFwoY29tbXVuaWNhdGlvbnNcKVwtY2hhbm5lbDsKK+aUv+e4viA+IFwocG9saXRpY2FsXClcLWFjaGlldmVtZW50czsKK+W/jOaBqCA+IGhhdGVcLVwoZHVlXC10b1wtZW52eVwsXC1ldGNcKTsKK+mbueeBvSA+IGRpc2FzdGVyXC1jYXVzZWRcLWJ5XC1oYWlsOwor5Ye66KiqID4gdmlzaXRcLWFcLWZvcmVpZ25cLWNvdW50cnk7CivmlpHmlpEgPiBmdWxsXC1vZlwtc3RhaW5zXC1vclwtc3BvdHM7Civopb/oo50gPiBcKHdlc3Rlcm5cLXN0eWxlXClcLWNsb3RoZXM7CivliqDmsrkgPiB0b1wtbWFrZVwtYW5cLWV4dHJhXC1lZmZvcnQ7Civli5/mjZAgPiB0b1wtc29saWN0XC1jb250cmlidXRpb25zOwor55q06KOCID4gY2hhcFwtXChsaXBzXCxcLXNraW5cLFwtZXRjXC5cKTsKK+imi+iBniA+IHdoYXRcLW9uZVwtc2Vlc1wtYW5kXC1oZWFyczsKK+WNl+S6rCA+IG5hbmppbmdcLVwoY2l0eVwtaW5cLWNoaW5hXCk7Civopo/ntIQgPiB0ZXJtc1wtXChvZlwtYW5cLWFncmVlbWVudFwpOwor5q245b+DID4gY29udmVydGVkXC10b1wtXChyZWxpZ2lvblwpOwor6YC85q27ID4gaG91bmRcLXNvbWVib2R5XC10b1wtZGVhdGg7CivntbHmsrsgPiBcKHBvbGl0aWNhbFwpXC1ydWxlXC1cKG92ZXJcKTsKK+ijnOiqsiA+IG1ha2VcLXVwXC1hXC1taXNzZWRcLWxlc3NvbjsKK+mAmeaooyA+IHRoaXNcLVwoa2luZFwtb2ZcLFwtc29ydFwtb2ZcKTsKK+mBlOaIkCA+IHRvXC1yZWFjaFwtXChhblwtYWdyZWVtZW50XCk7Civnmb7oiKwgPiBpblwtaHVuZHJlZFwtYW5kXC1vbmVcLXdheXM7CivmjojoqIggPiB0b1wtY29uZmlkZVwtYVwtcGxhblwtdG9cLXNiOwor5aCx5puJID4gaGVyYWxkXC10aGVcLWJyZWFrXC1vZlwtZGF5Owor5Yip5biCID4gXCJsYWlcLXNlZVwiXC1cKGx1Y2t5XC1tb25leVwpOwor5YG06YeNID4gcGxhY2VcLWV4dHJhXC1lbXBoYXNpc1wtb247CivloLHmgakgPiBwYXlcLWFcLWRlYnRcLW9mXC1ncmF0aXR1ZGU7CivluavlrZAgPiBvdXRlclwtXChvZlwtY2FiYmFnZVwsXC1ldGNcKTsKK+iHquixqiA+IFwoZmVlbFwtYVwtc2Vuc2VcLW9mXClcLXByaWRlOwor6Ziy5YuZID4gXChwZXJ0YWluaW5nXC10b1wpXC1kZWZlbnNlOwor5qWt57i+ID4gb3V0c3RhbmRpbmdcLWFjaGlldmVtZW50Owor55WZ6KiAID4gdG9cLWxlYXZlXC1vbmUnJ3NcLWNvbW1lbnRzOwor5bm05L6GID4gb3ZlclwtdGhlXC1sYXN0XC1cLlwuXC5cLXllYXJzOwor6ZaL5ouNID4gYmVnaW5cLXNob290aW5nXC1cKGFcLWZpbG1cKTsKK+WIhuS5iyA+IFwoaW5kaWNhdGluZ1wtYVwtZnJhY3Rpb25cKTsKK+etlOisnSA+IHRvXC1leHByZXNzXC1vbmUnJ3NcLXRoYW5rczsKK+ethuirhyA+IGNvbnZlcnNhdGlvblwtYnlcLXdyaXRpbmc7CivnkarpupcgPiBtYWxpXC1cKGFcLXBlcnNvbicncycnXC1uYW1lXCk7Civnl4fni4AgPiBzeW1wdG9tXC1cKG9mXC1hblwtaWxsbmVzc1wpOwor5L2U6aCYID4gdG9cLW9jY3VweVwtXChhXC10ZXJyaXRvcnlcKTsKK+WCmeaWmSA+IGdldFwtdGhlXC1tYXRlcmlhbHNcLXJlYWR5Owor5Z2m5YWLID4gdGFua1wtXChtaWxpdGFyeVwtdmVoaWNsZVwpOwor5Zub5bedID4gc2ljaHVhblwtcHJvdmluY2VcLFwtY2hpbmE7CivosqnpgYsgPiB0b1wtdHJhbnNwb3J0XC1cKGZvclwtc2FsZVwpOwor5LuK6K2vID4gbW9kZXJuXC1sYW5ndWFnZVwtdmVyc2lvbjsKK+aKleaUviA+IHRvXC1wdXRcLWluXC1cKGNpcmN1bGF0aW9uXCk7Civnl4XlgJIgPiBiZVwtZG93blwtd2l0aFwtYW5cLWlsbG5lc3M7Civmi7fllY8gPiB0b1wtcXVlc3Rpb25cLXZpYVwtdG9ydHVyZTsKK+aCo+mboyA+IHRyaWFsc1wtYW5kXC10cmlidWxhdGlvbnM7CivpjZvnhYkgPiB0b1wtZG9cLXBoeXNpY2FsXC10cmFpbmluZzsKK+ibmeazsyA+IFwoc3dpbW1pbmdcKVwtYnJlYXN0c3Ryb2tlOwor5oCO6bq8ID4gXChpbnRlcnJvZ2F0aXZlXC1wcm9ub3VuXCk7Civpp5DlroggPiBcKG1hblwtYVwtcG9zdFwtYW5kXClcLWRlZmVuZDsKK+a6q+WSjCA+IG1vZGVyYXRlXC1cKHBvbGljeVwsXC1ldGNcLlwpOwor5ZCm6KqNID4gdG9cLWRlY2xhcmVcLXRvXC1iZVwtdW50cnVlOwor5rGf6KW/ID4gamlhbmd4aVwtcHJvdmluY2VcLFwtY2hpbmE7CivmhJvmkqsgPiB0b1wtc2hvd1wtdGVuZGVyXC1jYXJlXC1mb3I7Civlj4PoiIcgPiB0b1wtcGFydGljaXBhdGVcLVwoaW5cLXN0aFwpOwor5riv5Lq6ID4gaG9uZ1wta29uZ1wtcGVyc29uXHxwZW9wbGU7Civpu4PmsrMgPiB5ZWxsb3dcLXJpdmVyXC1cKGh1YW5nXC1oZVwpOwor5rGf6JiHID4gamlhbmdzdVwtcHJvdmluY2VcLFwtY2hpbmE7Civku7vlkb0gPiB0b1wtYXBwb2ludFwtYW5kXC1ub21pbmF0ZTsKK+mkheWtkCA+IG1haXplXC1vclwtbWlsbGV0XC1wYW5jYWtlOwor5pyf5pS3ID4gZW5kXC1vZlwtdGVybVwtZXhhbWluYXRpb247CivnuL3poY0gPiB0b3RhbFwtXChhbW91bnRcLW9yXC12YWx1ZVwpOwor6KyC6KqeID4gXChncmFtbWF0aWNhbFwpXC1wcmVkaWNhdGU7CivkuK3ml6wgPiBtaWRkbGVcLXRoaXJkXC1vZlwtYVwtbW9udGg7CivkuIvml6wgPiBsYXN0XC10aGlyZFwtb2ZcLXRoZVwtbW9udGg7Civosp3lhYsgPiBiYWtlclwtXChlbmdsaXNoXC1zdXJuYW1lXCk7CivkuoLlkIMgPiB0b1wtZWF0XC1pbmRpc2NyaW1pbmFudGx5Owor5oGp5oCoID4gXChmZWVsaW5nXC1vZlwpXC1yZXNlbnRtZW50Owor5LiN5aSWID4gbm90XC1iZXlvbmRcLXRoZVwtc2NvcGVcLW9mOwor5pyN5YiRID4gc2VydmVcLWFcLXByaXNvblwtc2VudGVuY2U7CivojqvpnZ4gPiBjYW5cLWl0XC1iZVwtcG9zc2libGVcLXRoYXQ7Civlu6Popb8gPiBndWFuZ3hpXC1wcm92aW5jZVwsXC1jaGluYTsKK+WllOeAiSA+IFwob2ZcLXRvcnJlbnRzXClcLXJ1c2hcLWRvd247CivpgbrnlZkgPiBcKGxlYXZlXC1vclwtYmVcLWFcKVwtbGVnYWN5Owor5bi46KaPID4gY29udmVudGlvbmFsXC1cKHdlYXBvbnNcKTsKK+itieWIuCA+IFwoZmluYW5jaWFsXClcLXNlY3VyaXRpZXM7CivlvoDluLggPiBoYWJpdHVhbGx5XC1pblwtdGhlXC1wYXN0Owor5aaW5Ya2ID4gcHJldHR5XC1hbmRcLWZsaXJ0YXRpb3VzOwor6Z2p5ZG9ID4gXChwb2xpdGljYWxcKVwtcmV2b2x1dGlvbjsKK+irluWjhyA+IGZvcnVtXC1cKGZvclwtZGlzY3Vzc2lvblwpOwor5aOf5pa3ID4gZW5qb3lcLW1hcmtldFwtZG9taW5hbmNlOwor54mh5Li5ID4gcGVvbnlcLVwodHlwZVwtb2ZcLWZsb3dlclwpOwor5aCx56iFID4gZGVjbGFyZVwtZHV0aWFibGVcLWdvb2RzOwor5YWs6KqNID4gcHVibGljbHlcLWtub3duXC1cKHRvXC1iZVwpOwor55m86KGoID4gdG9cLWlzc3VlXC1cKGFcLXN0YXRlbWVudFwpOwor6Zu75ZmoID4gXChlbGVjdHJpY2FsXClcLWFwcGxpYW5jZTsKK+aut+WLpCA+IHBvbGl0ZWx5XCxcLXNvbGljaXRvdXNseTsKK+WIsOacnyA+IGJlY29tZVwtZHVlXC1cKGVnXCxcLWxvYW5zXCk7Civnl4XpmaIgPiBhXC1zcGVjaWFsaXplZFwtaG9zcGl0YWw7Civnl4XosaEgPiBzeW1wdG9tXC1cKG9mXC1hXC1kaXNlYXNlXCk7CivmrLrlh4wgPiB0b1wtYnVsbHlcLWFuZFwtaHVtaWxpYXRlOwor6YGN5Y+KID4gdG9cLWV4dGVuZFwtXChldmVyeXdoZXJlXCk7CivnsL3nvbIgPiB0b1wtc2lnblwtXChhblwtYWdyZWVtZW50XCk7CivloLHlsI4gPiB0b1wtY292ZXJcLVwocmVwb3J0XClcLW5ld3M7CivluIPmnJcgPiBlbmdsaXNoXC1zdXJuYW1lXCxcLWJyb3duOwor5qiZ5rqWID4gXChhblwtb2ZmaWNpYWxcKVwtc3RhbmRhcmQ7CivpgIDkvJEgPiByZXRpcmVtZW50XC1cKGZyb21cLXdvcmtcKTsKK+i2qOmZhCA+IHRvXC1pbmdyYXRpYXRpb25cLW9uc2VsZjsKK+ethui3oSA+IGFcLXBlcnNvbicnc1wtaGFuZHdyaXRpbmc7Civnm6HlipsgPiBkb1wtb25lJydzXC1iZXN0XC1cKGVmZm9ydFwpOwor562G6KiYID4gdGFrZVwtZG93blwtXChpblwtd3JpdGluZ1wpOwor6KSl5a2QID4gY290dG9uXC1wYWRkZWRcLW1hdHRyZXNzOwor55eF54uAID4gc3ltcHRvbVwtXChvZlwtYVwtZGlzZWFzZVwpOwor5YSY5b+rID4gYXNcLXF1aWNrbHlcLWFzXC1wb3NzaWJsZTsKK+a/gOaYgiA+IGFyb3VzZWRcLXRvXC1pbmRpZ25hdGlvbjsKK+erpeipsSA+IGNoaWxkcmVuJydzXC1mYWlyeVwtdGFsZXM7Civmj5DkuqQgPiBzdWJtaXRcLVwoYVwtcmVwb3J0XCxcLWV0Y1wpOwor5L6b6IG3ID4gaG9sZFwtYW5cLW9mZmljZVwtb3JcLXBvc3Q7Civkvoboh6ogPiB0b1wtY29tZVwtZnJvbVwtXChhXC1wbGFjZVwpOwor55eF5b6BID4gc3ltcHRvbVwtXChvZlwtYVwtZGlzZWFzZVwpOwor5a6a6KqeID4gYXR0cmlidXRpdmVcLVwobW9kaWZpZXJcKTsKK+a8gua1gSA+IGNhcnJpZWRcLWJ5XC10aGVcLWN1cnJlbnQ7Civmo4TmrIogPiB0b1wtYWJzdGFpblwtZnJvbVwtdm90aW5nOwor5o2P5ZCIID4gdG9cLWFjdFwtYXNcLWFcLWdvXC1iZXR3ZWVuOwor55Sy5p2/ID4gZGVja1wtXChvZlwtYVwtYm9hdFwsXC1ldGNcLlwpOwor5o2P5LywID4gdG9cLWFjdFwtYXNcLWFcLWdvXC1iZXR3ZWVuOwor5qKF5rS+ID4gdGhlXC1tZWlcLWxhbmZhbmdcLXNjaG9vbDsKK+a2iemBjiA+IGZvcmRcLVwoYVwtc3RyZWFtXCxcLXJpdmVyXCk7Civpq5TlhacgPiBpbnRlcm5hbFwtXCh0b1wtdGhlXC1ib2R5XCk7Civku7vogbcgPiBob2xkXC1hblwtb2ZmaWNlXC1vclwtcG9zdDsKK+iEiuakjiA+IGJhY2tcLVwob2ZcLWFcLXZlcnRpYnJhdGVcKTsKK+S8r+eItiA+IGZhdGhlcicnc1wtZWxkZXJcLWJyb3RoZXI7Civkv53lrokgPiBlbnN1cmVcLXB1YmxpY1wtc2VjdXJpdHk7CivkuIrouqsgPiB1cHBlclwtcGFydFwtb2ZcLXRoZVwtYm9keTsKK+Wtl+autSA+IFwobnVtZXJpY1wsXC1kYXRkYVwpXC1maWVsZDsKK+S4puiIiSA+IGRldmVsb3BcLXNpbXVsdGFuZW91c2x5Owor5LiA6JmfID4gZmlyc3RcLWRheVwtb2ZcLXRoZVwtbW9udGg7Civlr6nliKQgPiBwdXRcLVwoc29tZW9uZVwpXC10b1wtdHJpYWw7CivlkJDolYMgPiBhbmNpZW50XC1uYW1lXC1mb3JcLXRpYmV0Owor5ris5a6aID4gdG9cLXN1cnZleVwtYW5kXC1ldmFsdWF0ZTsKK+azsOe+hSA+IFwoZW5nbGlzaFwtc3VybmFtZVwpXC10eWxvOwor5ZCe6IGyID4gdG9cLXN3YWxsb3dcLW9uZScnc1wtY3JpZXM7CivosqHmnIMgPiBmaW5hbmNlXC1hbmRcLWFjY291bnRpbmc7CivkuqTmmJMgPiBcKGJ1c2luZXNzXClcLXRyYW5zYWN0aW9uOwor54++5b25ID4gXChtaWxpdGFyeVwpXC1hY3RpdmVcLWR1dHk7CivmsJHpgbggPiBkZW1vY3JhdGljYWxseVwtZWxlY3RlZDsKK+S8r+S8ryA+IGZhdGhlcicnc1wtZWxkZXJcLWJyb3RoZXI7Civmtbfmi5QgPiBoZWlnaHRcLWFib3ZlXC1zZWFcLWxldmVsOwor56eR5oqAID4gc2NpZW5jZVwtYW5kXC10ZWNobm9sb2d5Owor5Lu75YWNID4gdG9cLWFwcG9pbnRcLWFuZFwtZGlzbWlzczsKK+S6guWvqyA+IHRvXC13cml0ZVwtd2l0aG91dFwtYmFzaXM7CivlppboibcgPiBwcmV0dHlcLWFuZFwtZmxpcnRhdGlvdXM7Civpm7bpjKIgPiBjaGFuZ2VcLVwoc2FpZFwtb2ZcLW1vbmV5XCk7CivkuI3mnI0gPiBub3RcLWFjY2VwdFwtXChzb21ldGhpbmdcKTsKK+m8u+WFkiA+IGFcLWhvbGVcLWluXC1hblwtaW1wbGVtZW50Owor5oSf5ZiGID4gdG9cLXNpZ2hcLVwod2l0aFwtZmVlbGluZ1wpOwor5YyW6KOdID4gXChvZlwtYWN0b3JzXClcLXRvXC1tYWtlXC11cDsKK+S6keWNlyA+IHl1bm5hblwtcHJvdmluY2VcLFwtY2hpbmE7CivmnI3lrowgPiBzZXJ2ZVwtb3V0XC1cKGFcLXNlbnRlbmNlXCk7Civpu4PlsbEgPiBtdFwuXC1odWFuZ1wtXChodWFuZ1wtc2hhblwpOwor5Y+k5rOiID4gZ3Vib1wtXChhXC1wZXJzb25hbFwtbmFtZVwpOwor54yc5ouzID4gYVwtZmluZ2VyXC1ndWVzc2luZ1wtZ2FtZTsKK+WKqeipniA+IHBhcnRpY2xlXC1cKGdyYW1tYXRpY2FsXCk7CivorpPlnZAgPiB0b1wtZ2l2ZVwtdXBcLW9uZScnc1wtc2VhdDsKK+ayueWDuSA+IG9pbFwtXChwZXRyb2xldW1cKVwtcHJpY2U7Civlt6jpoY0gPiBhXC1odWdlXC1zdW1cLVwob2ZcLW1vbmV5XCk7CivlpZTmlL4gPiBib2xkXC1hbmRcLXVucmVzdHJhaW5lZDsKK+W+l+aEjyA+IFwoYmVcKVwtcHJvdWRcLW9mXC1vbmVzZWxmOwor5aWU5b+ZID4gYmVcLWJ1c3lcLXJ1c2hpbmdcLWFib3V0Owor5Ymb55u0ID4gdXByaWdodFwtYW5kXC1vdXRzcG9rZW47Civlt6Hpgo8gPiBiZVwtb25cLVwocG9saWNlXClcLXBhdHJvbDsKK+mZjeemjyA+IGJsZXNzaW5nc1wtZnJvbVwtaGVhdmVuOwor54K46JelID4gZXhwbG9zaXZlXC1cKHN1YnN0YW5jZVwpOwor5aSi5oOzID4gdG9cLWRyZWFtXC1vZlwtXChpblwtdmFpblwpOwor6Ziy56m6ID4gYW50aVwtYWlyY3JhZnRcLWRlZmVuc2U7CivlhYjpgLIgPiBhZHZhbmNlZFwtXCh0ZWNobm9sb2d5XCk7CivlpZTlkb0gPiBydXNoXC1hYm91dFwtb25cLWVycmFuZHM7Civop6PmsbogPiB0b1wtc2V0dGxlXC1cKGFcLWRpc3B1dGVcKTsKK+mYsuayuyA+IFwocHJldmVudGlvblwtYW5kXClcLWN1cmU7CivliIbmqZ8gPiBcKHRlbGVwaG9uZVwpXC1leHRlbnNpb247CivnnL7mnJsgPiBwZW9wbGUnJ3NcLWV4cGVjdGF0aW9uczsKK+eZveezliA+IFwocmVmaW5lZFwpXC13aGl0ZVwtc3VnYXI7Civmk4HmiLQgPiB0b1wtc3VwcG9ydFwtXChhXC1wZXJzb25cKTsKK+ihqOmBlCA+IHRvXC12b2ljZVwtXChhblwtb3BpbmlvblwpOwor5aCx5pmCID4gZ2l2ZVwtdGhlXC1jb3JyZWN0XC10aW1lOwor6Zqo5ZKMID4gYW1pYWJsZVwtXChkaXNwb3NpdGlvblwpOwor5Ye95o6IID4gY29ycmVzcG9uZGVuY2VcLWNvdXJzZTsKK+i/t+aIgCA+IHRvXC1iZVwtaW5mYXR1YXRlZFwtd2l0aDsKK+aLl+mZtyA+IGdlb2xvZ2ljYWxcLWRlcHJlc3Npb247CivlhY3nlqsgPiBpbW11bml0eVwtXCh0b1wtZGlzZWFzZVwpOwor5YWs54S2ID4gXChkb1wtc29tZXRoaW5nXClcLW9wZW5seTsKK+WgheaMgSA+IHRvXC1jb250aW51ZVwtdXBob2xkaW5nOwor5Ye65beuID4gYmVcLW9uXC1hXC1idXNpbmVzc1wtdHJpcDsKK+a8uOmAsiA+IHByb2dyZXNzXC1zdGVwXC1ieVwtc3RlcDsKK+mZkOWItiA+IFwoaW1wb3NlXClcLXJlc3RyaWN0aW9uczsKK+W5tOWInSA+IGJlZ2lubmluZ1wtb2ZcLXRoZVwteWVhcjsKK+ethumMhCA+IHB1dFwtZG93blwtXChpblwtd3JpdGluZ1wpOwor5oyJ6ISIID4gZmVlbFwtXCh0YWtlXClcLXRoZVwtcHVsc2U7Civmi5vogZggPiB0YWtlXC1qb2JcLWFwcGxpY2F0aW9uczsKK+WFieW3niA+IGt3YW5nanVcLVwoc291dGhcLWtvcmVhXCk7Civlt6XllYYgPiBpbmR1c3RyeVwtYW5kXC1jb21tZXJjZTsKK+a+s+a0siA+IGF1c3RyYWxpYVwtXChjb250aW5lbnRcKTsKK+earuWFkiA+IFwoZG91Z2hcLFwtZXRjXC5cKXdyYXBwZXJzOwor55SY6IKFID4gZ2Fuc3VcLXByb3ZpbmNlXCxcLWNoaW5hOwor5a6J6ZaSID4gcGVhY2VmdWxcLWFuZFwtY2FyZWZyZWU7CivoibHlt6ggPiB2ZXJ5XC1kaWZmaWN1bHRcLVwodGFza1wpOwor6KC75qmrID4gcnVkZVwtYW5kXC11bnJlYXNvbmFibGU7CivnsL3lrZcgPiB0b1wtc2lnblwtXChhXC1zaWduYXR1cmVcKTsKK+WuiemBqSA+IHF1aWV0XC1hbmRcLWNvbWZvcnRhYmxlOwor5ris6ImvID4gdG9cLXN1cnZleVwtYW5kXC1tZWFzdXJlOwor54+t6LuKID4gcmVndWxhclwtYnVzXC1cKHNlcnZpY2VcKTsKK+ahiOeUsSA+IG1haW5cLXBvaW50c1wtb2ZcLWFcLWNhc2U7CivosrborKsgPiBiYW5pc2hcLWZyb21cLXRoZVwtY291cnQ7Civpu4PprZogPiB5ZWxsb3dcLWNyb2FrZXJcLVwoZmlzaFwpOwor6Lqr5LiWID4gb25lJydzXC1saWZlXC1leHBlcmllbmNlOwor5oqx5oGoID4gaGF2ZVwtYVwtZ25hd2luZ1wtcmVncmV0Owor6Ieq5Y+kID4gXChzaW5jZVwpXC1hbmNpZW50XC10aW1lczsKK+eshuaWlyA+IHJvdW5kXC1ib3R0b21lZFwtYmFza2V0Owor5LqM6JmfID4gMlwtbmRcLWRheVwtb2ZcLXRoZVwtbW9udGg7CivosqHntpMgPiBmaW5hbmNlXC1hbmRcLWVjb25vbWljczsKK+S4u+iqniA+IFwoZ3JhbW1hdGljYWxcKVwtc3ViamVjdDsKK+WYluWYliA+IHRvXC1jbGlja1wtb25lJydzXC10b25ndWU7CivpvLvnpZYgPiB0aGVcLWVhcmxpZXN0XC1hbmNlc3RvcjsKK+aIgOaEmyA+IHRvXC1oYXZlXC1hXC1sb3ZlXC1hZmZhaXI7CivmmrTot4wgPiBzdGVlcFwtZmFsbFwtXChpblwtcHJpY2VcKTsKK+iuk+mWiyA+IHRvXC1nZXRcLW91dFwtb2ZcLXRoZVwtd2F5Owor5bCx5L6/ID4gYXRcLVwoeW91clwpXC1jb252ZW5pZW5jZTsKK+WPr+i6qyA+IHRvXC1maXRcLXdlbGxcLVwoY2xvdGhlc1wpOwor56eR56CUID4gXChzY2llbnRpZmljXClcLXJlc2VhcmNoOwor5Y+v6KyCID4gaXRcLWNvdWxkXC1ldmVuXC1iZVwtc2FpZDsKK+iuk+i3ryA+IHRvXC1tYWtlXC13YXlcLVwoZm9yXC1zdGhcKTsKK+aItuS4uyA+IGhlYWRcLW9mXC10aGVcLWhvdXNlaG9sZDsKK+mgkuihjCA+IGlzc3VlXC1mb3JcLWVuZm9yY2VtZW50Owor5rmW5Y2XID4gaHVuYW5cLXByb3ZpbmNlXCxcLWNoaW5hOwor6aSY5pW4ID4gXChudW1lcmljYWxcKVwtcmVtYWluZGVyOwor5LiN566hID4gbm9cLW1hdHRlclwtXCh3aGF0XCxcLWhvd1wpOwor54mI6Z2iID4gc3BhY2VcLW9mXC1hXC13aG9sZVwtcGFnZTsKK+S4jeemgSA+IGNhbicndFwtaGVscFwtXChkb2luZ1wtc3RoOwor5piP6L+3ID4gdG9cLWxvc2VcLWNvbnNjaW91c25lc3M7CivlkJDnta4gPiB0aGVcLW9wZW5pbmdcLW9mXC1hXC1ib2xsOwor6Yuq5bmzID4gc3ByZWFkXC1vdXRcLVwobWF0ZXJpYWxcKTsKK+S4jeeQhiA+IHJlZnVzZVwtdG9cLWFja25vd2xlZGdlOwor6K6K6IeJID4gc3VkZGVubHlcLXR1cm5cLWhvc3RpbGU7Civmtbfmlq8gPiBoYXllc1wtXChtaWNyb2NvbXB1dGVyXCk7CivmnbHlvrcgPiBcKGZvcm1lclwpXC1lYXN0XC1nZXJtYW55Owor5pqX56SBID4gc3VibWVyZ2VkXC1yZWVmXC1cKHJvY2tcKTsKK+iyt+WlvSA+IHRvXC1pbmdyYXRpYXRlXC1vbmVzZWxmOwor5pqX55a+ID4gdW5tZW50aW9uYWJsZVwtZGlzZWFzZTsKK+iBs+WLlSA+IHRvXC1jcmVhdGVcLWFcLXNlbnNhdGlvbjsKK+adv+WHsyA+IHdvb2RlblwtYmVuY2hcLW9yXC1zdG9vbDsKK+S4jeaahyA+IGhhdmVcLW5vXC10aW1lXC1cKGZvclwtc3RoOwor5oKy5oakID4gZ3JpZWZcLWFuZFwtaW5kaWduYXRpb247CivnibnnlKIgPiBzcGVjaWFsXC1sb2NhbFwtcHJvZHVjdDsKK+iVreainSA+IFwoZWNvbm9taWNcKVwtZGVwcmVzc2lvbjsKK+aur+iRrCA+IGZ1bmVyYWxcLWFuZFwtaW50ZXJtZW50Owor5ZG95LukID4gXChhblwpXC1vcmRlclwtb3JcLWNvbW1hbmQ7CivmtYHkuqEgPiB0b1wtXChmb3JjZVwtaW50b1wpXC1leGlsZTsKK+WNkeaxoSA+IGRlc3BpY2FibGVcLWFuZFwtZmlsdGh5Owor5pq05Y2SID4gZGllXC1vZlwtc3VkZGVuXC1pbGxuZXNzOwor6YC86KaWID4gbG9va1wtYXRcLWZyb21cLWNsb3NlXC11cDsKK+aXuuaciCA+IGJ1c3lcLVwoYnVzaW5lc3NcKVwtbW9udGg7CivliJfou4ogPiB0cmFpblwtXChyYWlsd2F5XC10ZXJtXCk7Civlj4vlpb0gPiBmcmllbmRseVwtXChyZWxhdGlvbnNcKTsKK+arg+mCiiA+IHRvXC1saWVcLW9uXC1vbmUnJ3NcLXNpZGU7CivliLboo4EgPiBcKGVjb25vbWljXClcLXNhbmN0aW9uczsKK+ekvuS6pCA+IFwoc29jaWFsXClcLWludGVyYWN0aW9uOwor5pON6KGMID4gXChzdHVkZW50JydzXClcLWJlaGF2aW9yOwor5ael5aelID4gbWF0ZXJuYWxcLWdyYW5kbW90aGVyOwor57eo57WEID4gb3JnYW5pemVcLWludG9cLWdyb3VwczsKK+imqui/kSA+IGdldFwtY2xvc2VcLXRvXC1zb21lb25lOwor57WQ6KuWID4gXChyZWFjaFwtYVwpXC1jb25jbHVzaW9uOwor6Zeh6L+wID4gZXhwb3VuZFwtXChhXC1wb3NpdGlvblwpOwor5b+D5a+SID4gYmVcLXZlcnlcLWRpc2FwcG9pbnRlZDsKK+e1hOijnSA+IGFzc2VtYmxlXC1hbmRcLWluc3RhbGw7CivoqpPmrbsgPiB0b1wtcGxlZGdlXC1vbmUnJ3NcLWxpZmU7Civln47phIkgPiBjaXR5XC1hbmRcLWNvdW50cnlzaWRlOwor5Y2U5a6aID4gXChyZWFjaFwtYW5cKVwtYWdyZWVtZW50Owor5rC05Z+fID4gXCh0ZXJyaXRvcmlhbFwpXC13YXRlcnM7Civli7vmlbQgPiBuZWF0XC1hbmRcLXdlbGxcLXNwYWNlZDsKK+WFp+mWoyA+IFwoZ292ZXJubWVudFwpXC1jYWJpbmV0Owor5bug54mMID4gYnJhbmRcLVwob2ZcLWFcLXByb2R1Y3RcKTsKK+WltuWltiA+IHBhdGVybmFsXC1ncmFuZG1vdGhlcjsKK+e3qOasoSA+IG9yZGVyXC1vZlwtYXJyYW5nZW1lbnQ7CivmlZnmjoggPiB1bml2ZXJzaXR5XC1wcm9mZXNzb3I7Civli6Llv4UgPiBpc1wtYm91bmRcLXRvXC1cKGhhcHBlblwpOwor5aKo5rGBID4gcHJlcGFyZWRcLWNoaW5lc2VcLWluazsKK+Wkp+WwhyA+IGFcLWdlbmVyYWxcLW9yXC1hZG1pcmFsOwor5rCj5Lq6ID4gdG9cLWdldFwtc29tZW9uZVwtYW5ncnk7CivljIXloLQgPiBib29rXC1hXC13aG9sZVwtdGhlYXRyZTsKK+WFreiZnyA+IDZ0aFwtZGF5XC1vZlwtdGhlXC1tb250aDsKK+ipnuW9mSA+IFwobGlzdFwtb2ZcKVwtdm9jYWJ1bGFyeTsKK+aUneW9sSA+IHRvXC10YWtlXC1hXC1waG90b2dyYXBoOwor6L6v55m9ID4gb2ZmZXJcLWFuXC1leHBsYW5hdGlvbjsKK+aOoeioqiA+IGNvdmVyXC1cKGFcLW5ld3NcLXN0b3J5XCk7CivlhbXnq5kgPiBhcm15XC1zZXJ2aWNlXC1zdGF0aW9uOwor6LuN6LK7ID4gbWlsaXRhcnlcLWV4cGVuZGl0dXJlOwor5pOa5oKJID4gYWNjb3JkaW5nXC10b1wtcmVwb3J0czsKK+WJjeW5tCA+IHRoZVwteWVhclwtYmVmb3JlXC1sYXN0Owor6KOc6ImyID4gY29tcGxlbWVudGFyeVwtY29sb3VyOwor5pS75YuiID4gXChtaWxpdGFyeVwpXC1vZmZlbnNpdmU7CivliIbmk5QgPiBzaGFyZVwtcmVzcG9uc2liaWxpdHk7CivplovnmbwgPiBleHBsb2l0XC1cKGFcLXJlc291cmNlXCk7Civmrbfku6MgPiBzdWNjZXNzaXZlXC1keW5hc3RpZXM7Civov5Hml6UgPiBpblwtdGhlXC1wYXN0XC1mZXdcLWRheXM7Civlm57oqKogPiBcKHBheVwtYVwpXC1yZXR1cm5cLXZpc2l0Owor55eF6K6KID4gcGF0aG9sb2dpY2FsXC1jaGFuZ2VzOwor5YeM5pmoID4gZWFybHlcLWluXC10aGVcLW1vcm5pbmc7CivnsaDntbEgPiBcKGluXClcLWdlbmVyYWxcLVwodGVybXNcKTsKK+ans+eLgCA+IGNlcnRpZmljYXRlXC1vZlwtbWVyaXQ7CivlgJrph40gPiB0b1wtcmVseVwtaGVhdmlseVwtdXBvbjsKK+aKiumFkiA+IHJhaXNlXC1vbmUnJ3NcLXdpbmVcLWN1cDsKK+i7jeeUqCA+IFwoZm9yXClcLW1pbGl0YXJ5XC1cKHVzZVwpOwor5L+d6YeNID4gdGFrZVwtY2FyZVwtb2ZcLW9uZXNlbGY7CivloLHku4cgPiB0b1wtcmV2ZW5nZVwtXChvbmVzZWxmXCk7CivmioTouqsgPiB0b1wtc2VhcmNoXC1cKGFcLXBlcnNvblwpOwor5qOJ6KWWID4gY290dG9uXC1wYWRkZWRcLWphY2tldDsKK+WEmOaXqSA+IGFzXC1lYXJseVwtYXNcLXBvc3NpYmxlOwor5Z+55L+uID4gdG9cLXJlcGFpclwtZWFydGh3b3JrczsKK+WwiumHjSA+IHRvXC12YWx1ZVwtXChzb21ldGhpbmdcKTsKK+eXheeBtiA+IGZvY3VzXC1cKG9mXC1pbmZlY3Rpb25cKTsKK+S+teilsiA+IHRvXC1pbnZhZGVcLWFuZFwtYXR0YWNrOwor57Ch5py0ID4gc2ltcGxlXC1hbmRcLXVuYWRvcm5lZDsKK+mngemBiyA+IHRyYW5zcG9ydFwtYnlcLWxpZ2h0ZXI7CivkvovoqIAgPiBpbnRyb2R1Y3RvcnlcLXJlbWFya3M7Civlgpnmn6UgPiBmb3JcLWZ1dHVyZVwtcmVmZXJlbmNlOwor5a6J6YC4ID4gZWFzeVwtYW5kXC1jb21mb3J0YWJsZTsKK+eXheaIvyA+IHdhcmRcLVwob2ZcLWFcLWhvc3BpdGFsXCk7CivooajlvbAgPiBjaXRlXC1cKGluXC1kaXNwYXRjaGVzXCk7Civmi5zmnIMgPiBwYXlcLWFuXC1vZmZpY2lhbFwtY2FsbDsKK+WwiOeoiyA+IHNwZWNpYWxcLXB1cnBvc2VcLXRyaXA7Civlgb3luaMgPiBjb3VudGVyZmVpdFwtY3VycmVuY3k7CivmiY3nlaUgPiBhYmlsaXR5XC1hbmRcLXNhZ2FjaXR5Owor5bGk5qyhID4gYXJyYW5nZW1lbnRcLW9mXC1pZGVhczsKK+ethuazlSA+IHRlY2huaXF1ZVwtb2ZcLXdyaXRpbmc7CivkuqTpgJogPiBcKGF1dG9tb2JpbGVcKVwtdHJhZmZpYzsKK+WVn+eoiyA+IHNldFwtb3V0XC1vblwtYVwtam91cm5leTsKK+eVq+WgsSA+IHBpY3RvcmlhbFwtXChtYWdhemluZVwpOwor5L615pO+ID4gdG9cLWludmFkZVwtYW5kXC1oYXJhc3M7CivlsY/luZUgPiBcKHR2XC1vclwtbW92aWVcKVwtc2NyZWVuOwor55CD57ayID4gbmV0XC1cKGZvclwtYmFsbFwtZ2FtZXNcKTsKK+a8ouWMliA+IGNoaW5lc2VcLWxvY2FsaXphdGlvbjsKK+WwjeWzmSA+IG11dHVhbFwtY29uZnJvbnRhdGlvbjsKK+e+jui7jSA+IHVzXC1hcm15XHxhcm1lZFwtZm9yY2VzOwor5L2N5pa8ID4gYmVcLXNpdHVhdGVkXC1cKGluXCxcLWF0XCk7CivororpoLsgPiBmcmVxdWVuY3lcLWNvbnZlcnNpb247Civllq7lrZcgPiBpbmRpdmlkdWFsXC1jaGFyYWN0ZXI7CivmuIXml6kgPiBlYXJseVwtaW5cLXRoZVwtbW9ybmluZzsKK+iDjOW/gyA+IGFcLXNsZWV2ZWxlc3NcLWdhcm1lbnQ7CivmiLblj6MgPiByZWdpc3RlcmVkXC1yZXNpZGVuY2U7CivmnKznp5EgPiB1bmRlcmdyYWR1YXRlXC1jb3Vyc2U7Civkvr/kuK0gPiBhdFwtb25lJydzXC1jb252ZW5pZW5jZTsKK+WvtuWKjSA+IGFcLWRvdWJsZVwtZWRnZWRcLXN3b3JkOwor6Yae6YeAID4gbXVsbFwtb3ZlclwtXChhblwtaXNzdWVcKTsKK+aal+iZnyA+IHNlY3JldFwtc2lnbmFsXC1cKHNpZ25cKTsKK+iAgeeIuiA+IG1hdGVybmFsXC1ncmFuZGZhdGhlcjsKK+ePreacnyA+IHNjaGVkdWxlXC1cKGZvclwtZmxpZ2h0Owor6LK35pa5ID4gYnV5ZXJcLVwoaW5cLWNvbnRyYWN0c1wpOwor5a6J5aicID4gYW5uYVwtXChwZXJzb24nJ3NcLW5hbWVcKTsKK+iyrOaIkCA+IGdpdmVcLXNvbWVib2R5XC1hXC10YXNrOwor5aSa6bq8ID4gaG93XC1cKHdvbmRlcmZ1bFwsXC1ldGNcKTsKK+mFrOisnSA+IHRvXC10aGFua1wtd2l0aFwtYVwtZ2lmdDsKK+W+gOi/lCA+IHRvXC1nb1wtYmFja1wtYW5kXC1mb3J0aDsKK+WMhemHkSA+IGNvdmVyXC13aXRoXC1nb2xkXC1sZWFmOwor5pqR54axID4gaG90XC1cKHN1bW1lclwpXC13ZWF0aGVyOwor5LiN5pu+ID4gbmV2ZXJcLVwoaGF2ZVwtZG9uZVwtc3RoOwor57i96YOoID4gZ2VuZXJhbFwtaGVhZHF1YXJ0ZXJzOwor6LK25YC8ID4gdG9cLWJlY29tZVwtZGV2YWx1YXRlZDsKK+mBuumquCA+IFwoZGVhZFwpXC1odW1hblwtcmVtYWluczsKK+mBuumqqCA+IFwoZGVhZFwpXC1odW1hblwtcmVtYWluczsKK+mFrOetlCA+IHRvXC10aGFua1wtd2l0aFwtYVwtZ2lmdDsKK+mhnuaOqCA+IHRvXC1yZWFzb25cLWJ5XC1hbmFsb2d5Owor5ZKM5aW9ID4gdG9cLWJlY29tZVwtcmVjb25jaWxlZDsKK+acrOWcnyA+IG9uZScnc1wtbmF0aXZlXC1jb3VudHJ5Owor5Lqe5YCrID4gYWFyb25cLVwoYVwtbWFuJydzXC1uYW1lXCk7Civnvp7mgaUgPiBcKGFcLWZlZWxpbmdcLW9mXClcLXNoYW1lOwor5ZOI5L2bID4gaGFydmFyZFwtXCh1bml2ZXJzaXR5XCk7CivmmpHmnJ8gPiBzdW1tZXJcLXZhY2F0aW9uXC10aW1lOwor5ZG85ZaKID4gc2hvdXRcLVwoc2xvZ2Fuc1wsXC1ldGNcKTsKK+e5vee0myA+IGluXC1yaW90b3VzXC1wcm9mdXNpb247CivlkYjloLEgPiB0b1wtXChzdWJtaXRcLWFcKVwtcmVwb3J0Owor5Y2K55m9ID4gZmlmdHlcLVwoeWVhcnNcLW9mXC1hZ2VcKTsKK/CggaUgPiB0aGVcLWhvcm5zXC1vZlwtYVwtc2hlZXA7CivmmILnhLYgPiB1cHJpZ2h0XC1hbmRcLXVuYWZyYWlkOwor6YKE6KqqID4gdG9cLWFkZFwtXChpblwtc3BlYWtpbmdcKTsKK+abtOWKoCA+IG1vcmVcLVwodGhhblwtc3RoXC1lbHNlXCk7CivniLrniLogPiBwYXRlcm5hbFwtZ3JhbmRmYXRoZXI7CivkuI3li50gPiBjYW5ub3RcLWJlYXJcLW9yXC1zdGFuZDsKK+aVl+iDgyA+IHNwb2lsXC1vbmUnJ3NcLWFwcGV0aXRlOwor6K6K5b+DID4gY2Vhc2VcLXRvXC1iZVwtZmFpdGhmdWw7CivkuIrlgIsgPiBmaXJzdFwtXChvZlwtdHdvXC1wYXJ0c1wpOwor5aWU5rWBID4gZmxvd1wtYXRcLWdyZWF0XC1zcGVlZDsKK+aXpeaWhyA+IGphcGFuZXNlXC1cKGxhbmd1YWdlXCk7Civmkp7oposgPiB0b1wtbWVldFwtYnlcLWFjY2lkZW50Owor5beu6aGNID4gYmFsYW5jZVwtXChmaW5hbmNpYWxcKTsKK+WNiuaIqiA+IGhhbGZcLVwob2ZcLWFcLXNlY3Rpb25cKTsKK+WJm+e6lCA+IFwoanVzdFwpXC1hXC1tb21lbnRcLWFnbzsKK+W7oOekpiA+IGZhY3Rvcmllc1wtYW5kXC1taW5lczsKK+eGseeDiCA+IHdhcm1cLVwod2VsY29tZVwsXC1ldGNcKTsKK+i+r+ittyA+IHNwZWFrXC1pblwtZGVmZW5jZVwtb2Y7CivlpKfmibkgPiBsYXJnZVwtcXVhbnRpdGllc1wtb2Y7CivntoHnpaggPiBraWRuYXBcLVwoZm9yXC1yYW5zb21cKTsKK+eZvemKhSA+IGNvcHBlclwtbmlja2VsXC1hbGxveTsKK+e1seeosSA+IGNvbGxlY3RpdmVseVwtY2FsbGVkOwor5bui5rCjID4gd2FzdGVcLVwoZXhoYXVzdFwpXC1nYXM7CivljIXlrZAgPiBzdGVhbWVkXC1zdHVmZmVkXC1idW47CivntIXokYkgPiByZWRcLWF1dHVtbmFsXC1sZWF2ZXM7Civnmb7osqggPiBnZW5lcmFsXC1tZXJjaGFuZGlzZTsKK+msoumrriA+IGhhaXJcLW9uXC10aGVcLXRlbXBsZXM7CivlhJjph48gPiBhc1wtbXVjaFwtYXNcLXBvc3NpYmxlOwor6Lqr6auYID4gXChhXC1wZXJzb24nJ3NcKVwtaGVpZ2h0Owor5pWZ5a24ID4gdGVhY2hlclwtYW5kXC1zdHVkZW50Owor6YSZ5Lq6ID4geW91clwtaHVtYmxlXC1zZXJ2YW50Owor5pWF5a6uID4gdGhlXC1pbXBlcmlhbFwtcGFsYWNlOwor5pS/5bGAID4gcG9saXRpY2FsXC1zaXR1YXRpb247Civnnb/mmbogPiB3aXNlXC1hbmRcLWZhcnNpZ2h0ZWQ7Civoo5zop5IgPiBzdXBwbGVtZW50YXJ5XC1hbmdsZTsKK+mAsuaUuyA+IGF0dGFja1wtXChtaWxpdGFyaWx5XCk7Civmk7rlvIQgPiBtb3ZlXC1iYWNrXC1hbmRcLWZvcnRoOwor6YGN5biDID4gYmVcLWZvdW5kXC1ldmVyeXdoZXJlOwor5pS55ZCNID4gdG9cLWNoYW5nZVwtb25lc1wtbmFtZTsKK+ijnOiAgyA+IG1ha2VcLXVwXC1leGFtaW5hdGlvbjsKK+aSreW8hCA+IG9yZGVyXC1zdWJqZWN0XC1hYm91dDsKK+W5tOW6lSA+IHRoZVwtZW5kXC1vZlwtdGhlXC15ZWFyOwor57SE5quDID4gYXJrXC1vZlwtdGhlXC1jb3ZlbmFudDsKK+W5q+W3pSA+IGhlbHBcLXdpdGhcLWZhcm1cLXdvcms7CivloLHlu6IgPiByZXBvcnRcLWFzXC13b3J0aGxlc3M7CivmiqzpoK0gPiB0b1wtcmFpc2VcLW9uZScnc1wtaGVhZDsKK+Wft+aOjCA+IHdpZWxkXC1cKHBvd2VyXCxcLWV0Y1wuXCk7CivlhbXmrIogPiBtaWxpdGFyeVwtbGVhZGVyc2hpcDsKK+mAvOS+myA+IGV4dG9ydFwtYVwtY29uZmVzc2lvbjsKK+mWi+aUviA+IGxpZnRcLVwocmVzdHJpY3Rpb25zXCk7CivnmbvmnIggPiBnb1wtXCh1cFwpXC10b1wtdGhlXC1tb29uOwor5bmj5YC8ID4gdmFsdWVcLW9mXC1hXC1jdXJyZW5jeTsKK+WGsOWgtCA+IHNrYXRpbmdcLW9yXC1pY2VcLXJpbms7Civnm67liY0gPiBhdFwtdGhlXC1wcmVzZW50XC10aW1lOwor562G6K2vID4gd3JpdHRlblwtdHJhbnNsYXRpb247CivnrYboqaYgPiB3cml0dGVuXC1leGFtaW5hdGlvbjsKK+mXnOWIhyA+IGJlXC1kZWVwbHlcLWNvbmNlcm5lZDsKK+i1sOmWiyA+IGdldFwtb3V0XC1vZlwtdGhlXC13YXlcITsKK+imhuS6oSA+IGZhbGxcLVwob2ZcLWFuXC1lbXBpcmVcKTsKK+ijgeaWtyA+IGNvbnNpZGVyXC1hbmRcLWRlY2lkZTsKK+e0gOWFgyA+IGJlZ2lubmluZ1wtb2ZcLWFuXC1lcmE7CivlhbXlnJggPiBsYXJnZVwtbWlsaXRhcnlcLXVuaXQ7CivovqbkuosgPiB0b1wtaGFuZGxlXC1cKGFmZmFpcnNcKTsKK+ezvuWBjyA+IHRvXC1jb3JyZWN0XC1hblwtZXJyb3I7CivmiY3orZggPiBhYmlsaXR5XC1hbmRcLWluc2lnaHQ7CivmjInnkIYgPiBhY2NvcmRpbmdcLXRvXC1yZWFzb247CivovJTluaMgPiBmcmFjdGlvbmFsXC1jdXJyZW5jeTsKK+aQreS8tCA+IHRyYXZlbFwtd2l0aFwtYW5vdGhlcjsKK+Wci+aXlyA+IGZsYWdcLVwob2ZcLWFcLWNvdW50cnlcKTsKK+i7jeaUvyA+IGFybXlcLWFuZFwtZ292ZXJubWVudDsKK+eXheazgSA+IHN0YXRlXC1vZlwtYW5cLWlsbG5lc3M7CivovYnlkJEgPiBjaGFuZ2VcLW9mXC1kaXJlY3Rpb247Civnmb3ljbcgPiBibGFua1wtZXhhbWluZVwtcGFwZXI7Civlhavku5kgPiB0aGVcLWVpZ2h0XC1pbW1vcnRhbHM7CivovIPlpKcgPiBjb21wYXJhdGl2ZWx5XC1sYXJnZTsKK+ethueulyA+IGRvXC1hXC1zdW1cLWluXC13cml0aW5nOwor6KOB5aWqID4gY29uc2lkZXJcLWFuZFwtZGVjaWRlOwor5o+Q5Ye6ID4gdG9cLXJhaXNlXC1cKGFuXC1pc3N1ZVwpOwor55m95Lq6ID4gd2hpdGVcLW1hblwtYW5kXC13b21hbjsKK+WBmuazlSA+IHdheVwtb2ZcLWRvaW5nXC10aGluZ3M7Civmir3nhZkgPiBzbW9rZVwtXChhXC1jaWdhcmV0dGVcKTsKK+ihqOaDhSA+IFwoZmFjaWFsXClcLWV4cHJlc3Npb247Civoo5zliqkgPiBcKGZpbmFuY2lhbFwpXC1zdWJzaWR5Owor6Iag54mHID4gXChwaG90b2dyYXBoaWNcKVwtZmlsbTsKK+eXheaDhSA+IHN0YXRlXC1vZlwtYW5cLWlsbG5lc3M7Civmn5TpgZMgPiBcKHRoZVwtc3BvcnRcLW9mXClcLWp1ZG87CivmjqHliLYgPiBjb2xsZWN0XC1hbmRcLXByb2Nlc3M7CivmioTnjbIgPiB0b1wtc2VhcmNoXC1hbmRcLXNlaXplOwor6KGo5aeQID4gb2xkZXJcLWZlbWFsZVwtY291c2luOwor6Luf5Lu2ID4gXChjb21wdXRlclwpXC1zb2Z0d2FyZTsKK+aLm+W+hSA+IHRvXC1yZWNlaXZlXC1cKGd1ZXN0c1wpOwor5ouc5bm0ID4gcGF5XC1hXC1uZXdcLXllYXJcLWNhbGw7CivkupLpgJogPiB0b1wtaW50ZXJjb21tdW5pY2F0ZTsKK+evoeS9jSA+IHRvXC1zZWl6ZVwtdGhlXC10aHJvbmU7Civnvbfpu5wgPiBkaXNtaXNzXC1mcm9tXC1vZmZpY2U7Civlsazlr6YgPiB0dXJuXC1vdXRcLXRvXC1iZVwtdHJ1ZTsKK+a0vumBoyA+IHNlbmRcLVwob25cLWFcLW1pc3Npb25cKTsKK+S4pumHjSA+IGxheVwtZXF1YWxcLXN0cmVzc1wtb247CivmiY3lrbggPiB0YWxlbnRcLWFuZFwtbGVhcm5pbmc7CivogJXogJggPiBwbG93aW5nXC1hbmRcLXdlZWRpbmc7CivmhYjnpaUgPiBcKGFcKVwta2luZGx5XC1cKHBlcnNvblwpOwor5a6J5qiCID4gcGVhY2VcLWFuZFwtaGFwcGluZXNzOwor6aiZ5Y+WID4gdG9cLWdhaW5cLWJ5XC1jaGVhdGluZzsKK+a2vOeIvSA+IGNvb2xcLWFuZFwtcmVmcmVzaGluZzsKK+m7qOe1hCA+IGxlYWRpbmdcLXBhcnR5XC1ncm91cDsKK+S+i+WkliA+IFwobWFrZVwtYW5cKVwtZXhjZXB0aW9uOwor6K2w6aGMID4gdG9waWNcLW9mXC1kaXNjdXNzaW9uOwor6LOH5rqQID4gXChuYXR1cmFsXClcLXJlc291cmNlczsKK+WVhuacgyA+IGNoYW1iZXJcLW9mXC1jb21tZXJjZTsKK+i1pOWtlyA+IFwoZmluYW5jaWFsXClcLWRlZmljaXQ7CivkuKboga8gPiBwYXJhbGxlbFwtY29ubmVjdGlvbjsKK+iyoea6kCA+IGZpbmFuY2lhbFwtcmVzb3VyY2VzOwor6YeP6K6KID4gcXVhbnRpdGF0aXZlXC1jaGFuZ2U7CivogJDnhakgPiBwYXRpZW50XC1cKGFkamVjdGl2ZVwpOwor5LiZ57a4ID4gcG9seXByb3B5bGVuZVwtZmlicmU7CivmsbrorbAgPiBcKHBhc3NcLWFcKVwtcmVzb2x1dGlvbjsKK+mMr+WtlyA+IGluY29ycmVjdFwtY2hhcmFjdGVyOwor5Ly05ZSxID4gdm9jYWxcLWFjY29tcGFuaW1lbnQ7CivorZjosqggPiB0b1wta25vd1wtd2hhdCcnc1wtd2hhdDsKK+WumOWToSA+IGdvdmVybm1lbnRcLW9mZmljaWFsOwor56if5oCnID4gbmF0dXJhbFwtZGlzcG9zaXRpb247CivpoJDnv5IgPiB0b1wtcHJlcGFyZVwtYVwtbGVzc29uOwor5rWB5rS+ID4gc2Nob29sXC1cKG9mXC10aG91Z2h0XCk7Civlk4DmhpAgPiBmZWVsXC1jb21wYXNzaW9uXC1mb3I7CivosqHlr7YgPiBtb25leVwtYW5kXC12YWx1YWJsZXM7CivogJDlv4MgPiBwYXRpZW50XC1cKGFkamVjdGl2ZVwpOwor5pel6KqeID4gamFwYW5lc2VcLVwobGFuZ3VhZ2VcKTsKK+S6i+WunCA+IFwobWFrZVwpXC1hcnJhbmdlbWVudHM7CivmlZfpoZ4gPiBzY3VtXC1vZlwtYVwtY29tbXVuaXR5Owor5peX6KKNID4gY2hpbmVzZVwtc3R5bGVcLWRyZXNzOwor5b6Q6KGMID4gd2Fsa1wtc2xvd2x5XCxcLXN0cm9sbDsKK+iyoeWKmyA+IGZpbmFuY2lhbFwtcmVzb3VyY2VzOwor6JeP5pePID4gdGliZXRhblwtbmF0aW9uYWxpdHk7CivnhafpoacgPiB0YWtlXC1cKGdvb2RcKVwtY2FyZVwtb2Y7CivorpPmraUgPiBcKG1ha2VcLWFcKVwtY29uY2Vzc2lvbjsKK+mCiumBoCA+IGZhclwtZnJvbVwtdGhlXC1jZW50ZXI7Civmk7rpl4ogPiBwYXJhZGVcLW9uZScnc1wtd2VhbHRoOwor5pm05pyXID4gc3VubnlcLWFuZFwtY2xvdWRsZXNzOwor5oKy5aOvID4gc29sZW1uXC1hbmRcLXN0aXJyaW5nOwor57235biCID4gc2hvcGtlZXBlcicnc1wtc3RyaWtlOwor5LiN5aaoID4gdGhlcmVcLWlzXC1ub1wtaGFybVwtaW47CivlpKfohbggPiB0aGVcLWxhcmdlXC1pbnRlc3RpbmU7CivkuLnlj4MgPiBzYWx2aWFcLW1pbHRpb3JyaGl6YTsKK+mbtuiQvSA+IHdpdGhlcmVkXC1hbmRcLWZhbGxlbjsKK+W+l+efpSA+IFwoZmluZFwtb3V0XC1hbmRcKVwta25vdzsKK+e9t+WumCA+IGRpc21pc3NcLWZyb21cLW9mZmljZTsKK+iuiuaVhSA+IGFuXC11bmZvcmVzZWVuXC1ldmVudDsKK+aBkOaAlSA+IFwoaScnbVwpXC1hZnJhaWRcLVwodGhhdFwpOwor5LiN5ZWPID4gcGF5XC1ub1wtYXR0ZW50aW9uXC10bzsKK+W7oOimjyA+IGZhY3RvcnlcLXJlZ3VsYXRpb25zOwor6aCQ5a6aID4gc2NoZWR1bGVcLWluXC1hZHZhbmNlOwor5LiN5YehID4gb3V0XC1vZlwtdGhlXC1vcmRpbmFyeTsKK+aVl+e4viA+IGJlXC11dHRlcmx5XC1kZWZlYXRlZDsKK+aatOWIqSA+IHN1ZGRlblwtaHVnZVwtcHJvZml0czsKK+e9quWQjSA+IGFcLVwoY3JpbWluYWxcKVwtY2hhcmdlOwor5LiN5LmPID4gdGhlcmVcLWlzXC1ub1wtbGFja1wtb2Y7CivlkIjlkIwgPiBcKGJ1c2luZXNzXClcLWNvbnRyYWN0Owor5bmr6L6mID4gYXNzaXN0XC1pblwtbWFuYWdpbmc7Civphazmh4kgPiBzb2NpYWxcLWludGVyYWN0aW9uOwor54Sh6KuWID4gbm9cLW1hdHRlclwtd2hhdFx8aG93Owor5Y6f5a6aID4gb3JpZ2luYWxseVwtcGxhbm5lZDsKK+mAmuihjCA+IGxpY2VuY2VcLVwoY29tcHV0ZXJcKTsKK+WPuOS7pCA+IGNvbW1hbmRpbmdcLW9mZmljZXI7Civns77pm4YgPiB0b1wtZ2F0aGVyXC10b2dldGhlcjsKK+mAgeihjCA+IHRvXC1zZWVcLXNvbWVvbmVcLW9mZjsKK+mBlee0hCA+IHRvXC1icmVha1wtYVwtcHJvbWlzZTsKK+WNseWxgCA+IHBlcmlsb3VzXC1zaXR1YXRpb247CivmkqXomZ8gPiBkaWFsXC1cKGFcLXRlbGVwaG9uZVwpOwor6K6K5L+uID4gYmVjb21lXC1yZXZpc2lvbmlzdDsKK+mBleeroCA+IHRvXC1icmVha1wtdGhlXC1ydWxlczsKK+e2sueuoSA+IG5ldHdvcmtcLW1hbmFnZW1lbnQ7CivokpnmlocgPiBtb25nb2xpYW5cLWxhbmd1YWdlOwor5oCn5LqkID4gc2V4dWFsXC1pbnRlcmNvdXJzZTsKK+eJqeWDuSA+IFwoY29tbW9kaXR5XClcLXByaWNlczsKK+W+jOWkqSA+IGRheVwtYWZ0ZXJcLXRvbW9ycm93Owor5aSq5bmzID4gcGVhY2VcLWFuZFwtc2VjdXJpdHk7Civnn5rmnJsgPiB0b1wtbG9va1wtZm9yd2FyZFwtdG87CivljZTliqkgPiBwcm92aWRlXC1hc3Npc3RhbmNlOwor5o6h6aKoID4gY29sbGVjdFwtZm9sa1wtc29uZ3M7Civmj4/ph5EgPiB0b1wtb3V0bGluZVwtaW5cLWdvbGQ7CivliqnmlZkgPiB0ZWFjaGluZ1wtYXNzaXN0YW50Owor5aSr5ammID4gYVwtXChtYXJyaWVkXClcLWNvdXBsZTsKK+iLseiqniA+IGVuZ2xpc2hcLVwobGFuZ3VhZ2VcKTsKK+mBi+awoyA+IGx1Y2tcLVwoZ29vZFwtb3JcLWJhZFwpOwor5o6h6YyEID4gY29sbGVjdFwtYW5kXC1yZWNvcmQ7CivnhormjowgPiBiZWFyXC1wYXdcLVwoYXNcLWZvb2RcKTsKK+aWsOWFtSA+IG5ld1wtXChhcm15XClcLXJlY3J1aXQ7CivmloPlkb0gPiBtZWV0XC12aW9sZW50XC1kZWF0aDsKK+WkseS6iyA+IFwoaGF2ZVwtYW5cKVwtYWNjaWRlbnQ7Civpm7vkv6EgPiB0ZWxlY29tbXVuaWNhdGlvbnM7CivmjajouqsgPiB0b1wtZ2l2ZVwtb25lJydzXC1saWZlOwor6Iqd6JitID4gaXJpc2VzXC1hbmRcLW9yY2hpZHM7CivmlLnlj6MgPiB0b1wtY29ycmVjdFwtb25lc2VsZjsKK+aUv+WLmSA+IGdvdmVybm1lbnRcLWFmZmFpcnM7Civlhafnp5EgPiBtZWRpY2FsXC1kZXBhcnRtZW50Owor5YWD57SgID4gXChjaGVtaWNhbFwpXC1lbGVtZW50Owor5Yqg5YWlID4gdG9cLWJlY29tZVwtYVwtbWVtYmVyOwor6YG45Y2AID4gZWxlY3RvcmFsXC1kaXN0cmljdDsKK+Wcn+iRlyA+IG5hdGl2ZVwsXC1hYm9yaWdpbmFsOwor5pON5a6IID4gcGVyc29uYWxcLWludGVncml0eTsKK+WCsuimliA+IHR1cm5cLXVwXC1vbmUnJ3NcLW5vc2U7CivojqvlpoIgPiBpdFwtd291bGRcLWJlXC1iZXR0ZXI7CivntZDluLMgPiB0b1wtc2V0dGxlXC1hY2NvdW50czsKK+Wbm+iZlSA+IGFsbFwtb3ZlclwtdGhlXC1wbGFjZTsKK+mBleS+iyA+IHRvXC1icmVha1wtdGhlXC1ydWxlczsKK+WdpueOhyA+IGZyYW5rXC1cKGRpc2N1c3Npb25cKTsKK+mBi+S9nCA+IHRocmVhZFwtXChjb21wdXRpbmdcKTsKK+mAseWIiiA+IHdlZWtseVwtcHVibGljYXRpb247Civkv53pp5UgPiBlc2NvcnRcLXRoZVwtZW1wZXJvcjsKK+WFseaciSA+IHRvXC1oYXZlXC1hbHRvZ2V0aGVyOwor5aCx5ZacID4gYW5ub3VuY2VcLWdvb2RcLW5ld3M7Civot5Hpm7sgPiBlbGVjdHJpY2FsXC1sZWFrYWdlOwor5pKl5Yi6ID4gc3BsYXNoXC1cKG9mXC1hXC1maXNoXCk7Civmi5zoposgPiBwYXlcLWFcLWZvcm1hbFwtdmlzaXQ7Civoi7HmlocgPiBlbmdsaXNoXC1cKGxhbmd1YWdlXCk7CivliJ3kuK0gPiBqdW5pb3JcLWhpZ2hcLXNjaG9vbDsKK+aKhOmBkyA+IHRvXC10YWtlXC1hXC1zaG9ydGN1dDsKK+a8lOiqqiA+IFwoZGVsaXZlclwtYVwpXC1zcGVlY2g7CivopoHlnLAgPiBzdHJhdGVnaWNcLWxvY2F0aW9uOwor6L6m5aCxID4gdG9cLXJ1blwtYVwtbmV3c3BhcGVyOwor5Ye65Lu7ID4gc3RhcnRcLWluXC1hXC1uZXdcLWpvYjsKK+WFp+aDhSA+IGluc2lkZVwtaW5mb3JtYXRpb247CivplovlsZUgPiBcKGJlZ2luXC10b1wpXC1kZXZlbG9wOwor5L+E6KqeID4gcnVzc2lhblwtXChsYW5ndWFnZVwpOwor5bGx6IWzID4gZm9vdFwtb2ZcLWFcLW1vdW50YWluOwor5YWs5Y+4ID4gXChidXNpbmVzc1wpXC1jb21wYW55Owor5ouJ56WoID4gY2FtcGFpZ25cLWZvclwtdm90ZXM7CivmiYvooZMgPiBzdXJnaWNhbFwtb3BlcmF0aW9uOwor5YWr5Y2mID4gdGhlXC1laWdodFwtZGlhZ3JhbXM7Civpq5TmuqsgPiBcKGJvZHlcKVwtdGVtcGVyYXR1cmU7CivmvILnp7sgPiBkcmlmdFwtXChlbGVjdHJpY2FsXCk7CivlgZzmu68gPiBiZVwtYXRcLWFcLXN0YW5kc3RpbGw7CivlrpjpgrggPiBvZmZpY2lhbFwtcmVzaWRlbmNlOwor5ouc5ri0ID4gcGF5XC1hXC1mb3JtYWxcLXZpc2l0Owor6LuN5a6YID4gXChtaWxpdGFyeVwpXC1vZmZpY2VyOwor562G55u0ID4gcGVyZmVjdGx5XC1zdHJhaWdodDsKK+eUoueUnyA+IHRvXC1jb21lXC1pbnRvXC1iZWluZzsKK+mnkOiPryA+IHN0YXRpb25lZFwtaW5cLWNoaW5hOwor5o6I5Y+XID4gdG9cLWdpdmVcLWFuZFwtYWNjZXB0Owor55ar5oOFID4gZXBpZGVtaWNcLXNpdHVhdGlvbjsKK+a3semAoCA+IGFkdmFuY2VkXC1cKHN0dWRpZXNcKTsKK+aNqOWRvSA+IHRvXC1yaXNrXC1vbmUnJ3NcLWxpZmU7Civoo4HkuKYgPiBjdXRcLWRvd25cLWFuZFwtbWVyZ2U7Civkvb/nr4AgPiBcKGRpcGxvbWF0aWNcKVwtZW52b3k7Civoh7PlsJEgPiBcKHRvXC1zYXlcLXRoZVwpXC1sZWFzdDsKK+iyt+izoyA+IGJ1eWluZ1wtYW5kXC1zZWxsaW5nOwor5ris57mqID4gdG9cLXN1cnZleVwtYW5kXC1kcmF3Owor6IOM57SEID4gYnJlYWtcLWFuXC1hZ3JlZW1lbnQ7Civot6/lvpEgPiByb3V0ZVwtXChuZXR3b3JraW5nXCk7CivoiInkvosgPiB0b1wtZ2l2ZVwtYW5cLWV4YW1wbGU7Civkv4TmlocgPiBydXNzaWFuXC1cKGxhbmd1YWdlXCk7CivmiY3mmbogPiBhYmlsaXR5XC1hbmRcLXdpc2RvbTsKK+aJk+aLsyA+IHRvXC1kb1wtc2hhZG93Ym94aW5nOwor6ISI5qyCID4gYmVhdGluZ1wtXChvZlwtaGVhcnRcKTsKK+iHquS4uyA+IHRvXC1hY3RcLWZvclwtb25lc2VsZjsKK+acn+iyqCA+IGZ1dHVyZXNcLVwob25cLWdvb2RzXCk7CivkvrXmiKogPiB0b1wtaGFja1wtXChjb21wdXRlclwpOwor6aCt6auuID4gaGFpclwtXChvblwtdGhlXC1oZWFkXCk7Civos6rnlpEgPiBjYWxsXC1pbnRvXC1xdWVzdGlvbjsKK+mmluasoSA+IGZvclwtdGhlXC1maXJzdFwtdGltZTsKK+aihuWtkCA+IHdhdGNobWFuJydzXC1jbGFwcGVyOwor5rK56aSFID4gZGVlcFwtZnJpZWRcLXBhbmNha2U7Civms4TpnLIgPiBsZWFrXC1cKGluZm9ybWF0aW9uXCk7CivmipXlhaUgPiBwdXRcLWludG9cLW9wZXJhdGlvbjsKK+aekOeWkSA+IHRvXC1yZXNvbHZlXC1hXC1kb3VidDsKK+iXj+iqniA+IHRpYmV0YW5cLVwobGFuZ3VhZ2VcKTsKK+acqOiAsyA+IGVkaWJsZVwtdHJlZVwtZnVuZ3VzOwor5ZaY5oGvID4gdG9cLWdhc3BcLWZvclwtYnJlYXRoOwor5qOE5LiWID4gdG9cLWxlYXZlXC10aGlzXC13b3JkOwor5oSb56ixID4gdGVybVwtb2ZcLWVuZGVhcm1lbnQ7CivlsIjlk6EgPiBhc3Npc3RhbnRcLWRpcmVjdG9yOwor6aCT6LazID4gc3RhbXBcLVwob25lJydzXC1mZWV0XCk7Civnj77mnIkgPiBjdXJyZW50bHlcLWV4aXN0aW5nOwor6by75qiRID4gYnJpZGdlXC1vZlwtdGhlXC1ub3NlOwor5Y+D6LSKID4gZGlwbG9tYXRpY1wtb2ZmaWNlcjsKK+S4pueriyA+IGV4aXN0XC1zaWRlXC1ieVwtc2lkZTsKK+iyv+aYkyA+IFwoY29tbWVyY2lhbFwpXC10cmFkZTsKK+mFrOmFoiA+IHRvXC1leGNoYW5nZVwtdG9hc3RzOwor5rWq5raMID4gXChlbGVjdHJpY2FsXClcLXN1cmdlOwor5L2U5YWIID4gdG9cLXRha2VcLXByZWNlZGVuY2U7Civog4zlhYkgPiBiZVwtaW5cLWFcLXBvb3JcLWxpZ2h0Owor5rex5aScID4gdmVyeVwtbGF0ZVwtYXRcLW5pZ2h0Owor6Zyy6Z2iID4gYXBwZWFyXC1cKGluXC1wdWJsaWNcKTsKK+WVhuWLmSA+IGNvbW1lcmNpYWxcLWFmZmFpcnM7CivnjJznlpEgPiBoYXJib3VyXC1zdXNwaWNpb25zOwor6LK05aeTID4gd2hhdFwtaXNcLXlvdXJcLW5hbWVcPzsKK+eMmeeNsCA+IG1lYW5cLWFuZFwtZmVyb2Npb3VzOwor5ray5aOTID4gaHlkcmF1bGljXC1wcmVzc3VyZTsKK+m8u+WhniA+IGhhdmVcLWFcLXN0dWZmeVwtbm9zZTsKK+m7nuW/gyA+IGxpZ2h0XC1yZWZyZXNobWVudHM7CivmnJ/lvoUgPiB0b1wtbG9va1wtZm9yd2FyZFwtdG87Civmtbfln58gPiB0ZXJyaXRvcmlhbFwtd2F0ZXJzOwor5q+U6KmmID4gaGF2ZVwtYVwtY29tcGV0aXRpb247CivlpJbos4cgPiBmb3JlaWduXC1pbnZlc3RtZW50Owor6Zu76LevID4gXChlbGVjdHJpY1wpXC1jaXJjdWl0Owor5Lit5bCHID4gbGlldXRlbmFudFwtZ2VuZXJhbDsKK+aWh+iXnSA+IGxpdGVyYXR1cmVcLWFuZFwtYXJ0Owor54mI56iFID4gcm95YWx0eVwtXChvblwtYm9va3NcKTsKK+aDheWgsSA+IFwoc3B5XClcLWludGVsbGlnZW5jZTsKK+e3qOmBoyA+IHJlb3JnYW5pemVcLVwodHJvb3BzOwor5rOw5bGxID4gdGFpc2hhblwtXChtb3VudGFpblwpOwor5oKJ5bC8ID4gc3lkbmV5XC1cKGF1c3RyYWxpYVwpOwor6JaE5oOFID4gaW5jb25zdGFudFwtaW5cLWxvdmU7CivmsJHnlKggPiBcKGZvclwpXC1jaXZpbGlhblwtdXNlOwor57eo6K2vID4gdHJhbnNsYXRlXC1hbmRcLWVkaXQ7Civnpo/liKkgPiBcKG1hdGVyaWFsXClcLXdlbGZhcmU7CivlkIzlrbggPiBcKGZlbGxvd1wpXC1jbGFzc21hdGU7CivkuKbliJcgPiBzdGFuZFwtc2lkZVwtYnlcLXNpZGU7CivkuI3lkowgPiBub3RcLWdldFwtYWxvbmdcLXdlbGw7CivkuI3ljq0gPiBub3RcLW1pbmRcLWRvaW5nXC1zdGg7Civlj43mhJ8gPiBcKHN0cm9uZ2x5XClcLWRpc2xpa2U7Civph53lsI0gPiBpblwtY29ubmVjdGlvblwtd2l0aDsKK+WPpuWvhCA+IHRvXC1tYWlsXC1zZXBhcmF0ZWx5Owor6K6K5bm7ID4gY2hhbmdlXC1pcnJlZ3VsYXJseTsKK+WgsemXnCA+IGRlY2xhcmVcLWF0XC1jdXN0b21zOwor572y5ZCNID4gc2lnblwtXChhXC1zaWduYXR1cmVcKTsKK+mBiuimvSA+IHRvXC1nb1wtc2lnaHRcLXNlZWluZzsKK+WklueVjCA+IHRoZVwtb3V0c2lkZVwtd29ybGQ7CivororlpKkgPiBjaGFuZ2VcLW9mXC13ZWF0aGVyOwor5q+U5r+VID4gc3BlY2lmaWNcLWh1bWlkaXR5Owor5b635paHID4gZ2VybWFuXC1cKGxhbmd1YWdlXCk7CivljZHmgK8gPiBtZWFuXC1hbmRcLWNvd2FyZGx5Owor5YW16aasID4gdHJvb3BzXC1hbmRcLWhvcnNlczsKK+eiqeWjqyA+IG1hc3Rlcicnc1wtXChkZWdyZWVcKTsKK+eZvemqqCA+IGJvbmVzXC1vZlwtdGhlXC1kZWFkOwor54Wn55u4ID4gdGFrZVwtYVwtcGhvdG9ncmFwaDsKK+eZvemjryA+IHBsYWluXC1jb29rZWRcLXJpY2U7Civml6XlrZAgPiBhXC1cKGNhbGVuZGFyXClcLWRhdGU7CivmlZnmnZAgPiB0ZWFjaGluZ1wtbWF0ZXJpYWw7CivphLDlnIsgPiBib3JkZXJpbmdcLWNvdW50cnk7CivmqZ/oo70gPiBtYWNoaW5lXC1wcm9jZXNzZWQ7CivplbfpgZQgPiBleHRlbmRcLWFzXC1sb25nXC1hczsKK+WMluWmnSA+IHRvXC1wdXRcLW9uXC1tYWtlXC11cDsKK+mbo+aNsSA+IHRyeWluZ1wsXC1kaWZmaWN1bHQ7CivlpKflsYAgPiBnZW5lcmFsXC1zaXR1YXRpb247CivmlY/mhJ8gPiBzZW5zaXRpdmVcLVwoaXNzdWVcKTsKK+e0oee5lCA+IHNwaW5uaW5nXC1cKHRocmVhZFwpOwor5aSn5aSaID4gZm9yXC10aGVcLW1vc3RcLXBhcnQ7CivlvpLliJEgPiBcKHByaXNvblwpXC1zZW50ZW5jZTsKK+aUr+aMgSA+IHRvXC1iZVwtaW5cLWZhdm9yXC1vZjsKK+e0m+e0myA+IG9uZVwtYWZ0ZXJcLWFub3RoZXI7CivlpJblnIsgPiBmb3JlaWduXC1cKGNvdW50cnlcKTsKK+aNlemjnyA+IGNhdGNoXC1hbmRcLWZlZWRcLW9uOwor6LyU6KqyID4gc3Vic2lkaWFyeVwtY291cnNlOwor5YWr6IKhID4gZWlnaHRcLVwtcGFydFwtZXNzYXk7CivlubPmsJEgPiBcKG9yZGluYXJ5XClcLXBlb3BsZTsKK+mDiuWNgCA+IHN1YnVyYmFuXC1kaXN0cmljdDsKK+WFqeiAhSA+IGJvdGhcLXNpZGVzXHx0aGluZ3M7Civpg6jku70gPiBwYXJ0XC1cKG9mXC1hXC13aG9sZVwpOwor55m96IKJID4gcGxhaW5cLWJvaWxlZFwtcG9yazsKK+mCiuWhniA+IGZyb250aWVyXC1mb3J0cmVzczsKK+efs+WIuyA+IHN0b25lXC1pbnNjcmlwdGlvbjsKK+e3iuWvhiA+IGluc2VwYXJhYmx5XC1jbG9zZTsKK+mCiuWNoSA+IGJvcmRlclwtY2hlY2twb2ludDsKK+e3qeWSjCA+IHRvXC1lYXNlXC1cKHRlbnNpb25cKTsKK+e3qOWNsCA+IGNvbXBpbGVcLWFuZFwtcHJpbnQ7Civlh7Hml4sgPiByZXR1cm5cLXRyaXVtcGhhbnQ7CivngInogpogPiB0b1wtaGF2ZVwtZGlhcnJob2VhOwor55m955y8ID4gc3VwZXJjaWxpb3VzXC1sb29rOwor55y85bCWID4gdG9cLWhhdmVcLWdvb2RcLWV5ZXM7CivloLHluLMgPiByZW5kZXJcLWFuXC1hY2NvdW50Owor6KOc55m8ID4gc3VwcGx5XC1hZ2FpblwtXChzdGg7CivmiorpoK0gPiBsYWJvdXJcLWNvbnRyYWN0b3I7CivlsY/pmpwgPiBwcm90ZWN0aXZlXC1zY3JlZW47CivngavmmJ8gPiBtYXJzXC1cKHRoZVwtcGxhbmV0XCk7CivpqI7ppqwgPiByaWRlXC1vblwtaG9yc2ViYWNrOwor5oqE6YyEID4gdG9cLW1ha2VcLWFcLWNvcHlcLW9mOwor5o+t5puJID4gYW5ub3VuY2VcLXB1YmxpY2x5Owor55eF56iLID4gY291cnNlXC1vZlwtZGlzZWFzZTsKK+eUs+iotCA+IHRvXC1hcHBlYWxcLVwodG9cLXNiXCk7CivkvpvpnIAgPiBzdXBwbHlcLWFuZFwtZGVtYW5kOwor5Zyw5q68ID4gdGhlXC1lYXJ0aCcnc1wtY3J1c3Q7CivplonluZUgPiB0aGVcLWN1cnRhaW5cLWZhbGxzOwor55ub5ZCNID4gZmFtb3VzXC1yZXB1dGF0aW9uOwor5bel5aeUID4gd29ya2luZ1wtY29tbWl0dGVlOwor562G6Kq/ID4gXChvZlwtd3JpdGluZ1wpXC10b25lOwor5bGV6Ka9ID4gdG9cLXB1dFwtb25cLWRpc3BsYXk7Civnmb3luIMgPiBwbGFpblwtd2hpdGVcLWNsb3RoOwor5bel5ZywID4gY29uc3RydWN0aW9uXC1zaXRlOwor5qOV6ImyID4gYnJvd25cLVwodGhlXC1jb2xvclwpOwor56+H55uuID4gdGFibGVcLW9mXC1jb250ZW50czsKK+S9j+mZoiA+IHRvXC1iZVwtaW5cLWhvc3BpdGFsOwor5pCP5YuVID4gYmVhdFwtcmh5dGhtaWNhbGx5Owor5o6l5b6FID4gcmVjZWl2ZVwtXChhXC12aXNpdFwpOwor5YW15YqbID4gbWlsaXRhcnlcLXN0cmVuZ3RoOwor5YWs5YuZID4gb2ZmaWNpYWxcLWJ1c2luZXNzOwor5ouY55WZID4gZGV0YWluXC1cKHByaXNvbmVyXCk7CivmjKjmrKEgPiBvbmVcLWFmdGVyXC1hbm90aGVyOwor5YWs5L2IID4gcHVibGljbHlcLWFubm91bmNlOwor5YWn5LqCID4gaW50ZXJuYWxcLWRpc29yZGVyOwor6KGb5pifID4gXChzcGFjZVwpXC1zYXRlbGxpdGU7Civmi43nhacgPiB0b1wtdGFrZVwtYVwtcGljdHVyZTsKK+eXheaVhSA+IGRpZVwtb2ZcLWFuXC1pbGxuZXNzOwor6KGd5pOKID4gXChiZVwtdW5kZXJcKVwtYXR0YWNrOwor6ZW35LmFID4gXChmb3JcLWFcKVwtbG9uZ1wtdGltZTsKK+mMhOmfsyA+IFwoc291bmRcKVwtcmVjb3JkaW5nOwor5L+d56WQID4gYmxlc3NcLWFuZFwtcHJvdGVjdDsKK+aNt+WgsSA+IHJlcG9ydFwtb2ZcLXN1Y2Nlc3M7CivlnJjlnJMgPiB0b1wtaGF2ZVwtYVwtcmV1bmlvbjsKK+aOiOWLmyA+IHRvXC1hd2FyZFwtYW5cLWhvbm9yOwor5ZOA6bO0ID4gYVwtcGxhaW50aXZlXC13aGluZTsKK+aHguihjCA+IHRvXC1rbm93XC10aGVcLXJvcGVzOwor6LuN5Y2AID4gYVwtbWlsaXRhcnlcLXJlZ2lvbjsKK+S/neeIviA+IFwoYVwtcGVyc29uYWxcLW5hbWVcKTsKK+iyoemWpSA+IGZpbmFuY2lhbFwtbWFnbmF0ZTsKK+aLjeaUnSA+IFwoc2hvb3RcLWFcKVwtcGljdHVyZTsKK+iAg+mplyA+IFwocHV0XC10b1wtdGhlXClcLXRlc3Q7Civkv53muqsgPiBoZWF0XC1wcmVzZXJ2YXRpb247CivlsY/msKMgPiBob2xkXC1vbmUnJ3NcLWJyZWF0aDsKK+eon+izpiA+IG5hdHVyYWxcLWVuZG93bWVudDsKK+eXheWNsSA+IGJlXC1jcml0aWNhbGx5XC1pbGw7CivkvbXnmbwgPiBiZVwtY29tcGxpY2F0ZWRcLWJ5Owor6LKh6LK/ID4gZmluYW5jZVwtYW5kXC10cmFkZTsKK+a8ouWtlyA+IGNoaW5lc2VcLWNoYXJhY3RlcjsKK+WuieepqSA+IHNtb290aFwtYW5kXC1zdGVhZHk7CivlsIjmpa0gPiBzcGVjaWFsaXplZFwtZmllbGQ7CivlsY/mga8gPiBob2xkXC1vbmUnJ3NcLWJyZWF0aDsKK+i2qOaZgiA+IHRvXC1mb2xsb3dcLWZhc2hpb247Civku43oiIogPiBzdGlsbFwtXChyZW1haW5pbmdcKTsKK+aLl+WPoyA+IGhhcmRcLXRvXC1wcm9ub3VuY2U7CivllpjmsKMgPiB0b1wtYnJlYXRoZVwtZGVlcGx5Owor5ouc5YCSID4gcHJvc3RyYXRlXC1vbmVzZWxmOwor5omN5oCdID4gaW1hZ2luYXRpdmVcLXBvd2VyOwor5rOi6Z+zID4gYm9laW5nXC1cKGFpcmNyYWZ0XCk7CivkvZzmpa0gPiBzY2hvb2xcLWFzc2lnbm1lbnQ7CivpvJPoiJ4gPiBoZWFydGVuaW5nXC1cKG5ld3NcKTsKK+ahiOaDhSA+IGRldGFpbHNcLW9mXC1hXC1jYXNlOwor6LKh56WeID4gdGhlXC1nb2RcLW9mXC13ZWFsdGg7CivlsZXlh7ogPiB0b1wtcHV0XC1vblwtZGlzcGxheTsKK+ePvueLgCA+IGN1cnJlbnRcLXNpdHVhdGlvbjsKK+Wwj+WgsSA+IHRhYmxvaWRcLW5ld3NwYXBlcjsKK+acneiBliA+IG1ha2VcLWFcLXBpbGdyaW1hZ2U7Civkv53lgaUgPiBoZWFsdGhcLXByb3RlY3Rpb247Civmt6vmsLQgPiBzZXh1YWxcLXNlY3JldGlvbnM7CivlsIvlkbMgPiB0b1wtdGhpbmtcLXN0aFwtb3ZlcjsKK+adv+eFmSA+IHBsdWdcLVwob2ZcLXRvYmFjY29cKTsKK+azqOimliA+IHdhdGNoXC1hdHRlbnRpdmVseTsKK+azleiqniA+IGZyZW5jaFwtXChsYW5ndWFnZVwpOwor542o56uLID4gdG9cLWJlXC1pbmRlcGVuZGVudDsKK+i1sOWHuiA+IHRvXC1tb3ZlXC1hd2F5XC1mcm9tOwor6IGy5o+0ID4gc3VwcG9ydFwtXChhXC1jYXVzZVwpOwor56Sm6JePID4gbWluZXJhbFwtcmVzb3VyY2VzOwor5a+r5L+hID4gdG9cLXdyaXRlXC1hXC1sZXR0ZXI7CivkuInntq0gPiB0aHJlZVwtZGltZW5zaW9uYWw7CivnqbTlsYUgPiB0b1wtbGl2ZVwtaW5cLWFcLWNhdmU7Civni4Doqp4gPiBhZHZlcmJpYWxcLWFkanVuY3Q7Civphazph5EgPiBcKG1vbmV0YXJ5XClcLXJld2FyZDsKK+iyoeaUvyA+IGZpbmFuY2VzXC1cKHB1YmxpY1wpOwor5a6J5Y2xID4gc2FmZXR5XC1hbmRcLWRhbmdlcjsKK+WQjeeosSA+IG5hbWVcLVwob2ZcLWFcLXRoaW5nXCk7Civnianos6ogPiBcKHBoeXNpY2FsXClcLW1hdHRlcjsKK+WQg+epvyA+IGZvb2RcLWFuZFwtY2xvdGhpbmc7CivnqbTkvY0gPiBhY3VwdW5jdHVyZVwtcG9pbnQ7CivlrbjkvY0gPiBlZHVjYXRpb25hbFwtbGV2ZWw7Civlvrfoqp4gPiBnZXJtYW5cLVwobGFuZ3VhZ2VcKTsKK+WQhOeVjCA+IGFsbFwtd2Fsa3NcLW9mXC1saWZlOwor6ICz5a2QID4gaGFuZGxlXC1cKG9uXC1hXC1wb3RcKTsKK+aAnee2rSA+IFwobGluZVwtb2ZcKVwtdGhvdWdodDsKK+S7peWFjSA+IGluXC1vcmRlclwtdG9cLWF2b2lkOwor5LqL5a+mID4gXCh0aGVcKVwtZmFjdFwtXCh0aGF0XCk7CivmnKzmgKcgPiBuYXR1cmFsXC1pbnN0aW5jdHM7Civpm6PpoYwgPiBkaWZmaWN1bHRcLXByb2JsZW07Civorornm7ggPiBpblwtZGlzZ3Vpc2VkXC1mb3JtOwor6LKh5YuZID4gZmluYW5jaWFsXC1hZmZhaXJzOwor5pyN5b25ID4gc2VydmVcLWluXC10aGVcLWFybXk7CivphqvnmYIgPiBtZWRpY2FsXC10cmVhdG1lbnQ7Civmlazph40gPiB0b1wtcmVzcGVjdFwtZGVlcGx5Owor5pqX5rKzID4gdW5kZXJncm91bmRcLXJpdmVyOwor6aC45qSOID4gY2VydmljYWxcLXZlcnRpYnJhOwor57ay6bueID4gbm9kZVwtaW5cLWFcLW5ldHdvcms7Civpu5HlrqIgPiBoYWNrZXJcLVwoY29tcHV0ZXJcKTsKK+e6luiKryA+IGNvcmVcLVwob2ZcLWFcLWZpYmVyXCk7Civnt6jpmoogPiBmb3JtXC1pbnRvXC1jb2x1bW5zOwor5pWX6YCAID4gcmV0cmVhdFwtaW5cLWRlZmVhdDsKK+acrOWciyA+IG9uZScnc1wtb3duXC1jb3VudHJ5Owor5rOV5paHID4gZnJlbmNoXC1cKGxhbmd1YWdlXCk7Civoqp7oqIAgPiBcKHNwb2tlblwpXC1sYW5ndWFnZTsKK+S4jeWxkSA+IGRpc2RhaW5cLXRvXC1kb1wtc3RoOwor5Y2K56WoID4gaGFsZlwtcHJpY2VcLXRpY2tldDsKK+eNqOWUsSA+IFwoaW5cLXNpbmdpbmdcKVwtc29sbzsKK+engeS6uiA+IHByaXZhdGVcLVwoY2l0aXplblwpOwor542y5YeGID4gb2J0YWluXC1wZXJtaXNzaW9uOwor5qyK6ZGwID4ga2V5c1wtb2ZcLWF1dGhvcml0eTsKK+eIhueuoSA+IGNhcnRyaWRnZVwtaWduaXRlcjsKK+ekpuW6iiA+IFwobWluZXJhbFwpXC1kZXBvc2l0Owor5q2i6KGAID4gc3RhbmNoXC1cKGJsZWVkaW5nXCk7CivlkI3lrZcgPiBcKGFcLXBlcnNvbicnc1wpXC1uYW1lOwor5Y+w5bmjID4gbmV3XC10YWl3YW5cLWRvbGxhcjsKK+mhp+WPiiA+IHRha2VcLWludG9cLWFjY291bnQ7CivkuIvljrsgPiBnb1wtZG93blwtXChkZXNjZW5kXCk7Civli7vnqLEgPiB3ZWxsXC1wcm9wb3J0aW9uZWQ7CivkuI3lipsgPiBub3RcLWRvXC1vbmUnJ3NcLWJlc3Q7CivpgZPorJ0gPiB0b1wtZXhwcmVzc1wtdGhhbmtzOwor56Gd54WZID4gc21va2VcLVwoZnJvbVwtZ3Vuc1wpOwor6Jed5Lq6ID4gcGVyZm9ybWluZ1wtYXJ0aXN0Owor5pWZ57e0ID4gXChhdGhsZXRlJydzXClcLWNvYWNoOwor5Ye66ZmiID4gdG9cLWxlYXZlXC1ob3NwaXRhbDsKK+mYv+mHjCA+IGFsaVwtXChwcm9wZXJcLW5hbWVcKTsKK+mZhOi/kSA+IFwoaW5cLXRoZVwpXC12aWNpbml0eTsKK+eJjOaokyA+IGRlY29yYXRlZFwtYXJjaHdheTsKK+eItuavjSA+IGZhdGhlclwtYW5kXC1tb3RoZXI7Civno6jlrZAgPiBtaWxsXCxcLW1pbGxzdG9uZXM7CivlkI7kurogPiBsYXRlclwtZ2VuZXJhdGlvbjsKK+itmOWtlyA+IHRvXC1sZWFyblwtdG9cLXJlYWQ7Civlv4PlvpcgPiBrbm93bGVkZ2VcLWdhaW5lZDsKK+axguWpmiA+IHByb3Bvc2VcLW1hcnJpYWdlOwor57eo55uuID4gbWFrZVwtYVwtY2F0YWxvZ3VlOwor6Zu75rWBID4gZWxlY3RyaWNcLWN1cnJlbnQ7Civln47pjq4gPiBjaXRpZXNcLWFuZFwtdG93bnM7Civlp5Tlk6EgPiBjb21taXR0ZWVcLW1lbWJlcjsKK+WjgeeVqyA+IG11cmFsXC1cKHBhaW50aW5nXCk7Civlp5PlkI0gPiBuYW1lXC1hbmRcLXN1cm5hbWU7CivmmK/lkKYgPiB3aGV0aGVyXC1cKG9yXC1ub3RcKTsKK+e4veapnyA+IGNlbnRyYWxcLWV4Y2hhbmdlOwor6YGO56iLID4gY291cnNlXC1vZlwtZXZlbnRzOwor54aK54y0ID4gYXNzYW1lc2VcLW1hY2FxdWU7CivlpKfmnIMgPiBnZW5lcmFsXC1hc3NlbWJseTsKK+WfuuiqvyA+IFwoc3BlZWNoXClcLWtleW5vdGU7CivoqqTmnIMgPiB0b1wtbWlzdW5kZXJzdGFuZDsKK+ioguelqCA+IHRvXC1pc3N1ZVwtdGlja2V0czsKK+WjveahgyA+IGJpcnRoZGF5XC1wZWFjaGVzOwor5be06LGGID4gXChwdXJnaW5nXClcLWNyb3RvbjsKK+WjveaYnyA+IGdvZFwtb2ZcLWxvbmdldml0eTsKK+WFpei/tyA+IHRvXC1iZVwtZmFzY2luYXRlZDsKK+aYjuS7oyA+IHRoZVwtbWluZ1wtZHluYXN0eTsKK+mAgOelqCA+IGJvdW5jZVwtXChhXC1jaGVja1wpOwor57mD5a2QID4gZW1icm9pZGVyeVwtZnJhbWU7Civlvpflh7ogPiBvYnRhaW5cLVwocmVzdWx0c1wpOwor5YWN6LK7ID4gZnJlZVwtXChvZlwtY2hhcmdlXCk7CivpgbLmmq4gPiBwYXN0XC1vbmUnJ3NcLXByaW1lOwor57ay5qmLID4gXChuZXR3b3JrXClcLWJyaWRnZTsKK+WIl+eCuiA+IGJlXC1jbGFzc2lmaWVkXC1hczsKK+Wci+mYsiA+IG5hdGlvbmFsXC1kZWZlbmNlOwor5pWF5bGFID4gZm9ybWVyXC1yZXNpZGVuY2U7Civlib3mgo0gPiBzd2lmdFwtYW5kXC1maWVyY2U7CivmrablrpggPiBtaWxpdGFyeVwtYXR0YWNoZTsKK+mBleaGsiA+IHVuY29uc3RpdHV0aW9uYWw7Civli57li5UgPiBcKHBoeXNpY2FsXClcLWxhYm9yOwor54K655SfID4gdG9cLW1ha2VcLWFcLWxpdmluZzsKK+WFrOe+iiA+IHJhbVwtXChtYWxlXC1zaGVlcFwpOwor6Ii56ZqKID4gZmxlZXRcLVwob2ZcLXNoaXBzXCk7Civlu6Plt54gPiBndWFuZ3pob3VcLVwoY2l0eVwpOwor6Zu75YqbID4gZWxlY3RyaWNhbFwtcG93ZXI7Civoo5zooYAgPiBlbnJpY2hcLXRoZVwtYmxvb2Q7Civnh4jlhYkgPiBcKHN0YWdlXClcLWxpZ2h0aW5nOwor6YCP5pSvID4gXChiYW5rXClcLW92ZXJkcmFmdDsKK+i/tOaXiyA+IG1hbmV1dmVyaW5nXC1yb29tOwor55m956O3ID4gd2hpdGVcLXBob3NwaG9ydXM7CivloLHmjbcgPiByZXBvcnRcLWFcLXN1Y2Nlc3M7CivoqKrllY8gPiBwYXlcLWFcLXZpc2l0XC1cKHRvXCk7CivpmaTlpJUgPiBcKG5ld1wteWVhcicnc1wpXC1ldmU7CivovqbmoYggPiB0b1wtaGFuZGxlXC1hXC1jYXNlOwor6KiC5ZauID4gXChwdXJjaGFzZVwpXC1vcmRlcjsKK+iPr+WDkSA+IG92ZXJzZWFzXC1jaGluZXNlOwor5ruR6bygID4gbW91c2VcLVwoY29tcHV0ZXJcKTsKK+eXheiPjCA+IGhhcm1mdWxcLWJhY3RlcmlhOwor6YCy5L+uID4gYWR2YW5jZWRcLXN0dWRpZXM7CivplbfmsZ8gPiBjaGFuZ2ppYW5nXC1yaXZlcjsKK+ethumgrSA+IGFiaWxpdHlcLXRvXC13cml0ZTsKK+W5vuWNgyA+IHNldmVyYWxcLXRob3VzYW5kOwor5Yiw5LqGID4gaW5cLVwoYVwtcGFzdFwtdGltZVwpOwor5aCx5ZCNID4gZW50ZXJcLW9uZScnc1wtbmFtZTsKK+WHuuWQjSA+IHdlbGxcLWtub3duXC1cKGZvclwpOwor5o6I542OID4gdG9cLWF3YXJkXC1hXC1wcml6ZTsKK+mrlOiCsiA+IHBoeXNpY2FsXC1jdWx0dXJlOwor5ryi6KqeID4gY2hpbmVzZVwtbGFuZ3VhZ2U7CivlhbXlvbkgPiBtaWxpdGFyeVwtc2VydmljZTsKK+eVouiCliA+IHJlc2VtYmxlXC1jbG9zZWx5Owor5bSp5ryPID4gdXRlcmluZVwtYmxlZWRpbmc7Civlhpflk6EgPiBleGNlc3NcLXBlcnNvbm5lbDsKK+WFteWjqyA+IG9yZGluYXJ5XC1zb2xkaWVyOwor6KaB5Lq6ID4gaW1wb3J0YW50XC1wZXJzb247CivmjqHmk4cgPiBzZWxlY3RcLWFuZFwtYWRvcHQ7CivouKnnt5ogPiBzdGVwXC1vblwtdGhlXC1saW5lOwor55mx5a2QID4gcGFyYWx5emVkXC1wZXJzb247Civlt6jljKAgPiBtYXN0ZXJcLWNyYWZ0c21hbjsKK+mWseWFtSA+IHRvXC1yZXZpZXdcLXRyb29wczsKK+WCsuawoyA+IGFpclwtb2ZcLWFycm9nYW5jZTsKK+S+v+ihoyA+IGNpdmlsaWFuXC1jbG90aGVzOwor5bCL6KiqID4gdG9cLWlucXVpcmVcLWFmdGVyOwor5a+26LKdID4gdHJlYXN1cmVkXC1vYmplY3Q7CivplrHkuJYgPiB0b1wtc2VlXC10aGVcLXdvcmxkOwor57Ch5piOID4gc2ltcGxlXC1hbmRcLWNsZWFyOwor5a6J6aCTID4gZmluZFwtYVwtcGxhY2VcLWZvcjsKK+WFrOWFrCA+IGh1c2JhbmQnJ3NcLWZhdGhlcjsKK+S+i+iqniA+IGV4YW1wbGVcLXNlbnRhbmNlOwor6ZaD5LquID4gYnJpbGxpYW50XCxcLXNoaW55Owor5Z2H5YuiID4gYmFsYW5jZVwtb2ZcLXBvd2VyOwor5L+d55WZID4gY29udGludWVcLXRvXC1oYXZlOwor5Lq66aCtID4gbnVtYmVyXC1vZlwtcGVvcGxlOwor5o6l5Lq6ID4gdG9cLW1lZXRcLWFcLXBlcnNvbjsKK+Wci+WKmyA+IGFcLW5hdGlvbicnc1wtcG93ZXI7Civmia7mvJQgPiBwbGF5XC10aGVcLXBhcnRcLW9mOwor55eF5ZugID4gY2F1c2VcLW9mXC1kaXNlYXNlOwor6LuN5LqLID4gbWlsaXRhcnlcLWFmZmFpcnM7CivkvZTnt5ogPiBidXN5XC1cKHRlbGVwaG9uZVwpOwor5bGx5p2RID4gbW91bnRhaW5cLXZpbGxhZ2U7CivlsazmlrwgPiBiZVwtY2xhc3NpZmllZFwtYXM7Civmi5DlvY4gPiB0b1wtdHVyblwtYVwtY29ybmVyOwor55eF5Y6fID4gY2F1c2VcLW9mXC1kaXNlYXNlOwor6IGa6K6KID4gXChudWNsZWFyXClcLWZ1c2lvbjsKK+ihqOWGiiA+IHN0YXRpc3RpY2FsXC1mb3JtOwor5a+p55CGID4gdG9cLWhlYXJcLVwoYVwtY2FzZVwpOwor5oqE5pysID4gaGFuZHdyaXR0ZW5cLWNvcHk7Civlronnva4gPiBmaW5kXC1hXC1wbGFjZVwtZm9yOwor6IiU5ZCuID4gdG9cLWxpY2tcLWFuZFwtc3VjazsKK+S+v+apiyA+IHRlbXBvcmFyeVwtYnJpZGdlOwor562G5oiwID4gd3JpdHRlblwtcG9sZW1pY3M7Civkvr/mnI0gPiBldmVyeWRheVwtY2xvdGhlczsKK+aEn+isnSA+IFwoZXhwcmVzc1wpXC10aGFua3M7CivkuIvppqwgPiBkaXNtb3VudFwtYVwtaG9yc2U7CivlronnnKAgPiBzbGVlcFwtcGVhY2VmdWxseTsKK+WxpOWxpCA+IGxheWVyXC11cG9uXC1sYXllcjsKK+ethuW4vSA+IHRoZVwtY2FwXC1vZlwtYVwtcGVuOwor6LK2576pID4gZGVyb2dhdG9yeVwtc2Vuc2U7CivkvZzms5UgPiBjb3Vyc2VcLW9mXC1hY3Rpb247CivmvJTlk6EgPiBhY3Rvclwtb3JcLWFjdHJlc3M7CivpkZLliKUgPiB0b1wtZGlmZmVyZW50aWF0ZTsKK+S/neWvhiA+IG1haW50YWluXC1zZWNyZWN5Owor562G5aWXID4gdGhlXC1jYXBcLW9mXC1hXC1wZW47CivlgJ/liqkgPiB0b1wtZ2V0XC1oZWxwXC1mcm9tOwor55SY5ZywID4gXChtYWhhdG1hXClcLWdhbmRoaTsKK+azqOmHjSA+IHBheVwtYXR0ZW50aW9uXC10bzsKK+aHuOaOmyA+IFwoY2FyXClcLXN1c3BlbnNpb247CivkuI3orJ0gPiBkb24nJ3RcLW1lbnRpb25cLWl0Owor5pys576pID4gb3JpZ2luYWxcLW1lYW5pbmc7CivkvLTmmJ8gPiBjb21wYW5pb25cLVwoc3RhclwpOwor5L+d5YWoID4gc2F2ZVwtZnJvbVwtZGFtYWdlOwor5oqE5Lu2ID4gZHVwbGljYXRlXC1cKGNvcHlcKTsKK+e9t+iqsiA+IHN0dWRlbnQnJ3NcLXN0cmlrZTsKK+mHjemHjSA+IGxheWVyXC11cG9uXC1sYXllcjsKK+aHieaIsCA+IGZhY2VcLWFcLWNoYWxsZW5nZTsKK+aguOWogSA+IG51Y2xlYXJcLXN0cmVuZ3RoOwor6Jmc542yID4gY2FwdHVyZVwtXChwZW9wbGVcKTsKK+acrOelqCA+IGNhc2hpZXInJ3NcLWNoZXF1ZTsKK+S+i+WPpSA+IGV4YW1wbGVcLXNlbnRhbmNlOwor5a6J5b69ID4gYW5odWlcLVwocHJvdmluY2VcKTsKK+iTlum6uyA+IGNhc3Rvclwtb2lsXC1wbGFudDsKK+ermeWPsCA+IHJhaWx3YXlcLXBsYXRmb3JtOwor55CG5pyDID4gcGF5XC1hdHRlbnRpb25cLXRvOwor542y55uKID4gb2J0YWluXC1hXC1iZW5lZml0Owor5LuK5piUID4gcGFzdFwtYW5kXC1wcmVzZW50Owor5p2/5qCXID4gY2hpbmVzZVwtY2hlc3RudXQ7CivlkLjnrqEgPiBcKGRyaW5raW5nXClcLXN0cmF3Owor5Lq65pW4ID4gbnVtYmVyXC1vZlwtcGVvcGxlOwor5a625YuZID4gaG91c2Vob2xkXC1kdXRpZXM7CivmsJHplpMgPiBhbW9uZ1wtdGhlXC1wZW9wbGU7CivlqZrnpq4gPiB3ZWRkaW5nXC1jZXJlbW9ueTsKK+itpuihmyA+IFwoc2VjdXJpdHlcKVwtZ3VhcmQ7Civkub7mna8gPiB0b1wtZHJpbmtcLWFcLXRvYXN0Owor54y/54y0ID4gYXBlc1wtYW5kXC1tb25rZXlzOwor5Lim5r+AID4gc2h1bnRcLWV4Y2l0YXRpb247Civph4/ntrEgPiBkaW1lbnNpb25cLVwodW5pdFwpOwor6LOq5ZWPID4gXChhc2tcLWFcKVwtcXVlc3Rpb247CivokpDpm4YgPiB0b1wtZ2F0aGVyXC1cKGRhdGFcKTsKK+aakeeYnyA+IHRyb3BpY2FsXC1kaXNlYXNlOwor5Y2a6Ka9ID4gcmVhZFwtZXh0ZW5zaXZlbHk7Civmt7HlhaUgPiBwZW5ldHJhdGVcLWRlZXBseTsKK+S4ueahgiA+IG9yYW5nZVwtb3NtYW50aHVzOwor5p2/5aOBID4gd29vZGVuXC1wYXJ0aXRpb247Civmn5DkurogPiBhXC1jZXJ0YWluXC1wZXJzb247CivmnIjmm4YgPiBtb250aGx5XC1jYWxlbmRhcjsKK+ayu+eXhSA+IHRyZWF0XC1hblwtaWxsbmVzczsKK+WNgeiqoSA+IHRlblwtY29tbWFuZG1lbnRzOwor5aSW6ZW3ID4gZm9yZWlnblwtbWluaXN0ZXI7CivphY3ol6UgPiBkaXNwZW5zZVwtXChkcnVnc1wpOwor5a2X5LiyID4gY2hhcmFjdGVyXC1zdHJpbmc7CivkuK3mlocgPiBjaGluZXNlXC1sYW5ndWFnZTsKK+Wkp+mBuCA+IGdlbmVyYWxcLWVsZWN0aW9uOwor5ZSQ5LujID4gdGhlXC10YW5nXC1keW5hc3R5Owor5oCn55eFID4gdmVuZXJlYWxcLWRpc2Vhc2U7CivlkJvmrIogPiBtb25hcmNoaWFsXC1wb3dlcjsKK+iXj+aWhyA+IHRpYmV0YW5cLWxhbmd1YWdlOwor6K6A54mpID4gcmVhZGluZ1wtbWF0ZXJpYWw7CivpgorpmLIgPiBmcm9udGllclwtZGVmZW5jZTsKK+WQkeadsSA+IHRvd2FyZHNcLXRoZVwtZWFzdDsKK+mbhumMpiA+IGJlc3RcLW9mXC10aGVcLWJlc3Q7CivnvbfmlZkgPiB0ZWFjaGVyJydzXC1zdHJpa2U7CivlpJboqp4gPiBmb3JlaWduXC1sYW5ndWFnZTsKK+iqsuihqCA+IHNjaG9vbFwtdGltZXRhYmxlOwor6Kqk6KejID4gbWlzdW5kZXJzdGFuZGluZzsKK+WQjOaZgiA+IGF0XC10aGVcLXNhbWVcLXRpbWU7CivkuI3lv5kgPiB0aGVyZScnc1wtbm9cLWh1cnJ5Owor6ZuG6YO1ID4gc3RhbXBcLWNvbGxlY3Rpbmc7Civlu6DplbcgPiBmYWN0b3J5XC1kaXJlY3RvcjsKK+iuiuazlSA+IHBvbGl0aWNhbFwtcmVmb3JtOwor5rOi5oqYID4gdHdpc3RzXC1hbmRcLXR1cm5zOwor576k5bO2ID4gZ3JvdXBcLW9mXC1pc2xhbmRzOwor54qv5rOVID4gdG9cLWJyZWFrXC10aGVcLWxhdzsKK+S4jeWwkSA+IG5vdFwtXChqdXN0XClcLWFcLWZldzsKK+W5tOm9oSA+IFwoYVwtcGVyc29uJydzXClcLWFnZTsKK+avlOe/vCA+IGZseVwtd2luZ1wtdG9cLXdpbmc7CivnpZ7lpYcgPiBtYWdpY2FsXC1teXN0aWNhbDsKK+emgeWTgSA+IGNvbnRyYWJhbmRcLWdvb2RzOwor5pyA5YWIID4gXCh0aGVcKVwtdmVyeVwtZmlyc3Q7CivlqYblrrYgPiBodXNiYW5kJydzXC1mYW1pbHk7CivmmI7mt6ggPiBicmlnaHRcLWFuZFwtY2xlYW47Civph43mhbYgPiBjaG9uZ3FpbmdcLVwoY2l0eVwpOwor5amG5amGID4gaHVzYmFuZCcnc1wtbW90aGVyOwor5ZCD5a6MID4gdG9cLWZpbmlzaFwtZWF0aW5nOwor6YC86L+RID4gcHJlc3NcLW9uXC10b3dhcmRzOwor5aCx6aSoID4gbmV3c3BhcGVyXC1vZmZpY2U7Civpm7vnupwgPiBcKGVsZWN0cmljXClcLWNhYmxlOwor54uA5oWLID4gc3RhdGVcLW9mXC1hZmZhaXJzOwor5Lit5LuLID4gYWdlbnRcLVwoY29tcHV0ZXJcKTsKK+S4jeWFiSA+IG5vdFwtdGhlXC1vbmx5XC1vbmU7CivmmpHlpKkgPiBob3RcLVwoc3VtbWVyXClcLWRheTsKK+iPr+iqniA+IGNoaW5lc2VcLWxhbmd1YWdlOwor5LiN5YOFID4gbm90XC10aGVcLW9ubHlcLW9uZTsKK+WPjeWwjSA+IHRvXC1maWdodFwtYWdhaW5zdDsKK+S4jeS5hSA+IG5vdFwtbG9uZ1wtXChhZnRlclwpOwor5aSp54i2ID4gaGVhdmVubHlcLWZhdGhlcjsKK+eJueW+tSA+IGNoYXJhY3RlcmlzdGljczsKK+aakeWBhyA+IHN1bW1lclwtdmFjYXRpb247Civmk7rohKsgPiBicmVha1wtYXdheVwtZnJvbTsKK+WNiuaVuCA+IGhhbGZcLXRoZVwtbnVtYmVyOwor5Yaw6ZycID4gbW9yYWxcLWludGVncml0eTsKK+WLu+a6nCA+IGV2ZW5cLWFuZFwtc21vb3RoOwor5Y6f5aeUID4gdGhlXC13aG9sZVwtc3Rvcnk7Civnibnlr6sgPiBmZWF0dXJlXC1hcnRpY2xlOwor5pil5aSpID4gc3ByaW5nXC1cKHNlYXNvblwpOwor5q2i55ebID4gdG9cLXJlbGlldmVcLXBhaW47Civlj5vkuoIgPiBhcm1lZFwtcmViZWxsaW9uOwor5paH5qqUID4gXChjb21wdXRlclwpXC1maWxlOwor57es55S4ID4gbXlhbm1hclwtXChidXJtYVwpOwor5aSx5pybID4gYmVcLWRpc2FwcG9pbnRlZDsKK+e2suermSA+IG5ldHdvcmtcLXN0YXRpb247CivplovploAgPiBvcGVuXC1cKHRoZVwpXC1kb29yOwor57aT566hID4gYmVcLWluXC1jaGFyZ2VcLW9mOwor5Y2K5aSpID4gaGFsZlwtb2ZcLXRoZVwtZGF5Owor6Kqe5pePID4gbGFuZ3VhZ2VcLWJyYW5jaDsKK+W+gOW5tCA+IGluXC1mb3JtZXJcLXllYXJzOwor5pel5aCxID4gZGFpbHlcLW5ld3NwYXBlcjsKK+WFiembuyA+IG9wdG9cLWVsZWN0cmljYWw7Civoqp7mlK8gPiBsYW5ndWFnZVwtYnJhbmNoOwor55m96ZC1ID4gZ2FsdmFuaXplZFwtaXJvbjsKK+mbheatjCA+IHNvbmdcLW9mXC1zb2xvbW9uOwor5b285bK4ID4gdGhlXC1vdGhlclwtc2hvcmU7CivphY3lkIggPiBjb29yZGluYXRlXC13aXRoOwor5aCx57O7ID4gbmV3c3BhcGVyXC1jaGFpbjsKK+aomemHjyA+IHNjYWxhclwtcXVhbnRpdHk7CivljZfljJcgPiBub3J0aFwtYW5kXC1zb3V0aDsKK+avlOWuuSA+IHNwZWNpZmljXC12b2x1bWU7Civnm4jomacgPiBwcm9maXRcLWFuZFwtbG9zczsKK+WLuOWwjiA+IHRyeVwtdG9cLWNvbnZpbmNlOwor6Zmj54efID4gZ3JvdXBcLW9mXC1wZW9wbGU7Civlub7nmb4gPiBzZXZlcmFsXC1odW5kcmVkOwor5aSn5a+rID4gY2FwaXRhbFwtbGV0dGVyczsKK+mBjua0uyA+IGxpdmVcLW9uZScnc1wtbGlmZTsKK+eJjOS9jSA+IG1lbW9yaWFsXC10YWJsZXQ7Civml6nkupsgPiBcKGFcLWJpdFwpXC1lYXJsaWVyOwor6Kqy5aSWID4gZXh0cmFjdXJyaWN1bGFyOwor5pS25ou+ID4gdG9cLXB1dFwtaW5cLW9yZGVyOwor57ay5q61ID4gbmV0d29ya1wtc2VnbWVudDsKK+W8n+W8nyA+IHlvdW5nZXJcLWJyb3RoZXI7CivpgbLml6kgPiBzb29uZXJcLW9yXC1sYXRlcjsKK+efruWwjyA+IHNob3J0XC1hbmRcLXNtYWxsOwor5q+U5YO5ID4gcHJpY2VcLXJlbGF0aW9uczsKK+aWsOS7uyA+IG5ld2x5XC1hcHBvaW50ZWQ7CivpnLjkvZQgPiBmb3JjaWJseVwtb2NjdXB5Owor55eF6a2UID4gc2VyaW91c1wtaWxsbmVzczsKK+W4uOeUqCA+IGluXC1jb21tb25cLXVzYWdlOwor5Yaw56OaID4gaWNlXC1jcmVhbVwtYnJpY2s7Civnmb3oj5wgPiBjaGluZXNlXC1jYWJiYWdlOwor5by35YqgID4gaW1wb3NlXC1ieVwtZm9yY2U7CivlpJbkuosgPiBmb3JlaWduXC1hZmZhaXJzOwor6YKK5ZywID4gYm9yZGVyXC1kaXN0cmljdDsKK+iIjOmdoiA+IGJsYWRlXC1vZlwtdG9uZ3VlOwor6JGX5L2cID4gYVwtbGl0ZXJhcnlcLXdvcms7Civnmb3nsbMgPiBcKHBvbGlzaGVkXClcLXJpY2U7CivngJXoh6ggPiBvblwtdGhlXC12ZXJnZVwtb2Y7CivmkI3nm4ogPiBwcm9maXRcLWFuZFwtbG9zczsKK+mBuOWWriA+IFwoc29mdHdhcmVcKVwtbWVudTsKK+Wft+azlSA+IGxhd1wtZW5mb3JjZW1lbnQ7CivpgLLlsZUgPiB0b1wtbWFrZVwtaGVhZHdheTsKK+eCuuatpCA+IGZvclwtdGhpc1wtcmVhc29uOwor5bug5Y+yID4gZmFjdG9yeVwtaGlzdG9yeTsKK+WFieejgSA+IG1hZ25ldG9cLW9wdGljYWw7Civpmpjlj6MgPiBcKG1vdW50YWluXClcLXBhc3M7CivntrLlnYAgPiBcKGludGVybmV0XClcLXNpdGU7CivnlavpnaIgPiBcKHBpY3R1cmVcKVwtZnJhbWU7Civoj5zlnLAgPiB2ZWdldGFibGVcLWZpZWxkOwor55Wc6aGeID4gZG9tZXN0aWNcLWFuaW1hbDsKK+aKsemkiiA+IGFkb3B0XC1cKGFcLWNoaWxkXCk7Civln47mqJMgPiBjaXR5XC1nYXRlXC10b3dlcjsKK+aOoeeoriA+IHNlZWRcLWNvbGxlY3Rpbmc7CivoirHnmb0gPiBncml6emxlZFwtXChoYWlyXCk7CivlsY3pq5QgPiBcKGxpZmVsZXNzXClcLWJvZHk7CivlnJbnsL0gPiBcKGNvbXB1dGVyXClcLWljb247Civlt7TmnJsgPiBsb29rXC1mb3J3YXJkXC10bzsKK+WxpOmbsiA+IHN0cmF0dXNcLVwoY2xvdWRcKTsKK+exjOeivCA+IGJhcmdhaW5pbmdcLWNoaXA7CivpmY3lg7kgPiBwcmljZVwtcmVkdWN0aW9uOwor5qiZ5qiBID4gXChtYXJraW5nXClcLXN0YWtlOwor6ZaJ5pyDID4gY2xvc2VcLWFcLW1lZXRpbmc7CivntJTlsawgPiBwdXJlXC1hbmRcLXNpbXBsZTsKK+WFieamriA+IGhvbm9yXC1hbmRcLWdsb3J5Owor6L6m5a24ID4gdG9cLXJ1blwtYVwtc2Nob29sOwor5qiZ5p2GID4gc3VydmV5b3InJ3NcLXBvbGU7CivluaPliLYgPiBjdXJyZW5jeVwtc3lzdGVtOwor5aCx5YiwID4gcmVwb3J0XC1mb3JcLWR1dHk7CivlubTku70gPiBwYXJ0aWN1bGFyXC15ZWFyOwor5Z+65ZywID4gXChtaWxpdGFyeVwpXC1iYXNlOwor5YWJ5piOID4gYnJpZ2h0XC1cKGZ1dHVyZVwpOwor5L+d6YeLID4gcmVsZWFzZVwtb25cLWJhaWw7CivlsITpoLsgPiByYWRpb1wtZnJlcXVlbmN5Owor6ayl54itID4gc3RydWdnbGVcLVwod2l0aFwpOwor6KOh5qC5ID4gXChyb25hbGRcKVwtcmVhZ2FuOwor5oqX6KGhID4gY29udGVuZFwtYWdhaW5zdDsKK+e0muWIpSA+IFwobWlsaXRhcnlcKVwtcmFuazsKK+ethuiqpCA+IGFcLXNsaXBcLW9mXC1hXC1wZW47Civlhavlr7YgPiBlaWdodFwtdHJlYXN1cmVzOwor55m+5bm0ID4gYVwtaHVuZHJlZFwteWVhcnM7CivmkZjlgJ8gPiB0b1wtYm9ycm93XC1tb25leTsKK+WcluaomSA+IFwoY29tcHV0ZXJcKVwtaWNvbjsKK+mVt+WumCA+IHNlbmlvclwtb2ZmaWNpYWw7CivlhaXlooMgPiBlbnRlclwtYVwtY291bnRyeTsKK+WFkuWqsyA+IGRhdWdodGVyXC1pblwtbGF3Owor6IeC57SXID4gXChibGFja1wpXC1hcm1iYW5kOwor6LuN5qChID4gbWlsaXRhcnlcLXNjaG9vbDsKK+aKiuiItSA+IGhvbGRcLXRoZVwtcnVkZGVyOwor6KKr5o2VID4gYmVcLXVuZGVyXC1hcnJlc3Q7CivpppbplbcgPiBzZW5pb3JcLW9mZmljaWFsOwor55m+5Y2BID4gYVwtaHVuZHJlZFwtb3JcLXNvOwor5Z2Q5aW9ID4gdG9cLXNpdFwtcHJvcGVybHk7CivnlZznlJ8gPiBkb21lc3RpY1wtYW5pbWFsOwor6Yym6ZueID4gZ29sZGVuXC1waGVhc2FudDsKK+iHquauuiA+IHRvXC1raWxsXC1vbmVzZWxmOwor6auY5piCID4gaW5cLWhpZ2hcLXNwaXJpdHM7Civnqb/pgY4gPiB0b1wtcGFzc1wtdGhyb3VnaDsKK+WCmeaIsCA+IHByZXBhcmVcLWZvclwtd2FyOwor5a6J6LqrID4gbWFrZVwtb25lJydzXC1ob21lOwor5ri46KqqID4gZHJ1bVwtdXBcLXN1cHBvcnQ7Civoh7PmlrwgPiBnb1wtc29cLWZhclwtYXNcLXRvOwor55Sf54mpID4gbGl2aW5nXC1jcmVhdHVyZTsKK+aItuexjSA+IGNlbnN1c1wtcmVnaXN0ZXI7CivmoKHoiI0gPiBzY2hvb2xcLWJ1aWxkaW5nOwor5ZaE6ImvID4gZ29vZFwtYW5kXC1ob25lc3Q7Civou43lgpkgPiBcKG1pbGl0YXJ5XClcLWFybXM7CivpppbohaYgPiBoZWFkXC1cKG9mXC1zdGF0ZVwpOwor5a6J6JGsID4gYnVyeVwtXCh0aGVcLWRlYWRcKTsKK+alteWKmyA+IGRvXC1hdFwtYWxsXC1jb3N0czsKK+i3keatpSA+IHRvXC13YWxrXC1xdWlja2x5Owor6LK26KmeID4gZGVyb2dhdG9yeVwtdGVybTsKK+S6kumAoyA+IGludGVyY29ubmVjdGlvbjsKK+aCsumztCA+IHV0dGVyXC1zYWRcLWNhbGxzOwor5ru/5oSPID4gdG9cLWJlXC1zYXRpc2ZpZWQ7CivmtbfpgYsgPiBzaGlwcGluZ1wtYnlcLXNlYTsKK+eVmeWtuCA+IHRvXC1zdHVkeVwtYWJyb2FkOwor5L6/5qKdID4gXChpbmZvcm1hbFwpXC1ub3RlOwor55Sa5oiWID4gc29cLW11Y2hcLXNvXC10aGF0Owor5bGx5bOwID4gXChtb3VudGFpblwpXC1wZWFrOwor5rqr5p+UID4gZ2VudGxlXC1hbmRcLXNvZnQ7Civpq5jkuK0gPiBoaWdoXC1hbmRcLW1pZGRsZTsKK+iDg+eXhSA+IHN0b21hY2hcLXRyb3VibGU7CivlkIzpvaEgPiBvZlwtdGhlXC1zYW1lXC1hZ2U7CivlkLjpn7MgPiBzb3VuZFwtYWJzb3JiaW5nOwor6bq76YaJID4gdG9cLWFuYWVzdGhldGl6ZTsKK+aKleWllCA+IHRvXC1zZWVrXC1zaGVsdGVyOwor5L6L5pyDID4gcmVndWxhclwtbWVldGluZzsKK+mkheiCpSA+IGNha2VcLWZlcnRpbGl6ZXI7CivmmrTpm6ggPiB0b3JyZW50aWFsXC1yYWluOwor5L6/5a60ID4gaW5mb3JtYWxcLWRpbm5lcjsKK+S4iui/sCA+IGFib3ZlXC1tZW50aW9uZWQ7Civlr6blvYggPiBsaXZlXC1hbW11bml0aW9uOwor55Si5YC8ID4gdmFsdWVcLW9mXC1vdXRwdXQ7CivnpZ3os4AgPiB0b1wtY29uZ3JhdHVsYXRlOwor5Lul54K6ID4gY29uc2lkZXJcLVwodGhhdFwpOwor5qC45b2IID4gbnVjbGVhclwtd2FyaGVhZDsKK+S4iuiqsiA+IHRvXC1hdHRlbmRcLWNsYXNzOwor56ym5ZCIID4gaW5cLWtlZXBpbmdcLXdpdGg7CivmioDlgIYgPiB0cmlja3lcLW1hbmV1dmVyOwor5rOw6KqeID4gdGhhaVwtXChsYW5ndWFnZVwpOwor5a+15aOeID4gc3BvaWxcLVwoYVwtY2hpbGRcKTsKK+S6pOeVjCA+IGNvbW1vblwtYm91bmRhcnk7CivkuInokKwgPiB0aGlydHlcLXRob3VzYW5kOwor6LKo5rqQID4gc3VwcGx5XC1vZlwtZ29vZHM7CivnqpfluJggPiB3aW5kb3dcLWN1cnRhaW5zOwor5pyf56WoID4gcHJvbWlzc29yeVwtbm90ZTsKK+WPo+iqniA+IHNwb2tlblwtbGFuZ3VhZ2U7Civnp4Hnh58gPiBwcml2YXRlbHlcLW93bmVkOwor5a+S5YGHID4gd2ludGVyXC12YWNhdGlvbjsKK+WTgOatjCA+IGFcLW1vdXJuZnVsXC1zb25nOwor54m96YCjID4gXChiZVwpXC1pbXBsaWNhdGVkOwor5oCn6KGMID4gc2V4dWFsXC1hY3Rpdml0eTsKK+WtuOWjqyA+IGJhY2hlbG9yXC1kZWdyZWU7CivosqDmk5QgPiBcKGJlYXJcLWFcKVwtYnVyZGVuOwor5LiA56eYID4gZmlyc3RcLXNlY3JldGFyeTsKK+iXpeeTtiA+IG1lZGljaW5lXC1ib3R0bGU7CivmhZrmhKcgPiBcKHRvXC1iZVwpXC1hc2hhbWVkOwor5Lq65omNID4gdGFsZW50ZWRcLXBlcnNvbjsKK+S4jeeUmCA+IHVucmVjb25jaWxlZFwtdG87Civnj63lrZAgPiBvcmdhbml6ZWRcLWdyb3VwOwor5q+P6ZqUID4gYXRcLWludGVydmFsc1wtb2Y7CivmhJvmiLQgPiBsb3ZlXC1hbmRcLWVzdGVlbTsKK+aEm+aIgCA+IGJlXC1pblwtbG92ZVwtd2l0aDsKK+adreW3niA+IGhhbmd6aG91XC1cKGNpdHlcKTsKK+WVj+S4liA+IHRvXC1iZVwtcHVibGlzaGVkOwor5oKy5rOjID4gd2VlcFwtd2l0aFwtZ3JpZWY7Civms5XnkIYgPiBsZWdhbFwtcHJpbmNpcGxlOwor56ep5bqPID4gb3JkZXJcLVwob3JkZXJseVwpOwor5pS/6buoID4gcG9saXRpY2FsXC1wYXJ0eTsKK+WQjeeJhyA+IFwoYnVzaW5lc3NcKVwtY2FyZDsKK+aXheiyuyA+IHRyYXZlbFwtZXhwZW5zZXM7CivosqHlnJggPiBmaW5hbmNpYWxcLWdyb3VwOwor5rKZ55+zID4gc2FuZFwtYW5kXC1zdG9uZXM7CivnpoHmnpwgPiBmb3JiaWRkZW5cLWZydWl0Owor6YO16YGeID4gdG9cLXNlbmRcLWJ5XC1tYWlsOwor5p6Q5Ye6ID4gdG9cLXNlcGVyYXRlXC1vdXQ7CivlpZTopbIgPiBsb25nXC1yYW5nZVwtcmFpZDsKK+adv+WItyA+IHNjcnViYmluZ1wtYnJ1c2g7CivmnI3lvp4gPiBvYmV5XC1cKGFuXC1vcmRlclwpOwor5pa96KGMID4gdG9cLXB1dFwtaW5cLXBsYWNlOwor572w5qy+ID4gXChpbXBvc2VcLWFcKVwtZmluZTsKK+mbjOmbhCA+IG1hbGVcLWFuZFwtZmVtYWxlOwor6YKK6Z+zID4gbGF0ZXJhbFwtXChzb3VuZFwpOwor5q+N6KqeID4gbmF0aXZlXC1sYW5ndWFnZTsKK+avjeimqiA+IG1vdGhlclwtXChmb3JtYWxcKTsKK+azsOaWhyA+IHRoYWlcLVwobGFuZ3VhZ2VcKTsKK+ejgeebpCA+IFwoY29tcHV0ZXJcKVwtZGlzazsKK+Wqs+WppiA+IGRhdWdodGVyXC1pblwtbGF3Owor56Sm5qWtID4gbWluaW5nXC1pbmR1c3RyeTsKK+a1geWksSA+IGJlXC1kcmFpbmVkXC1hd2F5Owor5byV6LW3ID4gdG9cLWdpdmVcLXJpc2VcLXRvOwor8KOOtCA+IHN0dW1wXC1vZlwtYVwtdHJlZTsKK+itieeJqSA+IGV4aGliaXRcLVwobGVnYWxcKTsKK+e4q+ijnCA+IGRhcm5cLVwoY2xvdGhpbmdcKTsKK+e3qOmBuCA+IHNlbGVjdFwtYW5kXC1lZGl0Owor5LiK5a24ID4gdG9cLWdvXC10b1wtc2Nob29sOwor6aC75bi2ID4gZnJlcXVlbmN5XC1yYW5nZTsKK+W6remVtyA+IHByZXNpZGluZ1wtanVkZ2U7CivmlL/oposgPiBwb2xpdGljYWxcLXZpZXdzOwor5oKy5ZiGID4gc2lnaFwtbW91cm5mdWxseTsKK+mgu+WvrCA+IGZyZXF1ZW5jeVwtcmFuZ2U7CivljYrnlJ8gPiBoYWxmXC1hXC1saWZldGltZTsKK+WNmueJqSA+IG5hdHVyYWxcLXNjaWVuY2U7Civpg7XnpaggPiBcKHBvc3RhZ2VcKVwtc3RhbXA7CivmgbDlpb0gPiBhc1wtaXRcLXR1cm5zXC1vdXQ7CivmsKPmuqsgPiBhaXJcLXRlbXBlcmF0dXJlOwor55+u6IOWID4gc2hvcnRcLWFuZFwtc3RvdXQ7Civoqp7ns7sgPiBsYW5ndWFnZVwtc3lzdGVtOwor6K6K5b2iID4gYmVcLW91dFwtb2ZcLXNoYXBlOwor5Y2X5rW3ID4gc291dGhcLWNoaW5hXC1zZWE7Civnvo7lhYMgPiBhbWVyaWNhblwtZG9sbGFyOwor5LiW5Lq6ID4gXChjb21tb25cKVwtcGVvcGxlOwor5ZCN5ZauID4gbGlzdFwtXChvZlwtbmFtZXNcKTsKK+mbu+ejgSA+IGVsZWN0cm9tYWduZXRpYzsKK+awkeasiiA+IGNpdmlsXC1saWJlcnRpZXM7Civmk5roqqogPiBpdFwtaXNcLXNhaWRcLXRoYXQ7Civljp/mgKcgPiBvcmlnaW5hbFwtbmF0dXJlOwor5pW455m+ID4gc2V2ZXJhbFwtaHVuZHJlZDsKK+aTjeiqsiA+IG1pbGl0YXJ5XC1kcmlsbDsKK+WNlOacgyA+IGFuXC1hc3NvY2lhdGlvbjsKK+aWh+eJqSA+IGN1bHR1cmFsXC1yZWxpYzsKK+mAmuioiiA+IGNvbW11bmljYXRpb25zOwor5Y2x5oi/ID4gZGVjcmVwaXRcLWhvdXNlOwor54m55belID4gc2VjcmV0XC1zZXJ2aWNlOwor6Zu754eIID4gZWxlY3RyaWNcLWxpZ2h0Owor5YyX5qW1ID4gdGhlXC1ub3J0aFwtcG9sZTsKK+mgkOS7mCA+IHBheVwtaW5cLWFkdmFuY2U7CivmrrrmsKMgPiBtdXJkZXJvdXNcLWxvb2s7Civno4HloLQgPiBtYWduZXRpY1wtZmllbGQ7CivniZnluoogPiBhbHZlb2xhclwtcmlkZ2U7Civlj4PliqAgPiB0b1wtcGFydGljaXBhdGU7CivmsJHmhI8gPiBwdWJsaWNcLW9waW5pb247CivlprnlprkgPiB5b3VuZ2VyXC1zaXN0ZXI7CivlvoDml6UgPiBpblwtZm9ybWVyXC1kYXlzOwor5YuY5risID4gdG9cLWludmVzdGlnYXRlOwor5Yaw6YeLID4gXChvZlwtbWlzZ2l2aW5nczsKK+Wkp+aokyA+IGxhcmdlXC1idWlsZGluZzsKK+aAquS6uiA+IHN0cmFuZ2VcLXBlcnNvbjsKK+eHn+alrSA+IHRvXC1kb1wtYnVzaW5lc3M7CivloZHohqAgPiBwbGFzdGljXC1jZW1lbnQ7CivmmZrkuIogPiBpblwtdGhlXC1ldmVuaW5nOwor5pWj5q2lID4gdG9cLXRha2VcLWFcLXdhbGs7CivorZjliKUgPiB0b1wtZGlzdGluZ3Vpc2g7CivlpLHmjqcgPiBvdXRcLW9mXC1jb250cm9sOwor5pW45pyIID4gc2V2ZXJhbFwtbW9udGhzOwor5b6A5b6pID4gdG9cLXJlY2lwcm9jYXRlOwor6Z225aC0ID4gc2hvb3RpbmdcLXJhbmdlOwor57OW6YaLID4gc3dlZXRcLWFuZFwtc291cjsKK+W4s+iZnyA+IGFjY291bnRcLW51bWJlcjsKK+eIquWtkCA+IFwoYW5pbWFsJydzXClcLXBhdzsKK+WIpeeuoSA+IG5vXC1tYXR0ZXJcLVwod2hvOwor5Yio56iLID4gcGxhbmluZ1wtbGVuZ3RoOwor57Sg6I+cID4gdmVnZXRhYmxlXC1kaXNoOwor6ZaL6LuKID4gdG9cLWRyaXZlXC1hXC1jYXI7CivnhZnngasgPiBzbW9rZVwtYW5kXC1maXJlOwor6L2J6YGLID4gdHJhbnNwb3J0YXRpb247Civlt6HoraYgPiBwb2xpY2VcLW9mZmljZXI7CivmlL7mmKAgPiBzaG93XC1cKGFcLW1vdmllXCk7Civoo73pgKAgPiB0b1wtbWFudWZhY3R1cmU7CivliKnnjocgPiBpbnRlcmVzdFwtcmF0ZXM7CivovL/oq5YgPiBwdWJsaWNcLW9waW5pb247CivlvLHlsI8gPiBzbWFsbFwtYW5kXC13ZWFrOwor5pWd5bGjID4gd29yblwtb3V0XC1zaG9lczsKK+efruWtkCA+IGFcLXNob3J0XC1wZXJzb247CivpgJ/msbogPiBxdWlja1wtZGVjaXNpb247Civpl5znqIUgPiBcKGN1c3RvbXNcKVwtZHV0eTsKK+eZveiYhyA+IGNvbW1vblwtcGVyaWxsYTsKK+avlOWAvCA+IHNwZWNpZmljXC12YWx1ZTsKK+WfuuedoyA+IGplc3VzXC1cKGNocmlzdFwpOwor5o6i6LevID4gdG9cLWZpbmRcLWFcLXBhdGg7CivpgZnmjqcgPiByZW1vdGVcLWNvbnRyb2w7CivpgZnmhJ8gPiByZW1vdGVcLXNlbnNpbmc7Civnmb3oibIgPiB3aGl0ZVwtXChjb2xvdXJcKTsKK+aSpeasviA+IGFsbG9jYXRlXC1mdW5kczsKK+W7oOW3pSA+IGZhY3RvcnlcLXdvcmtlcjsKK+ato+WlvSA+IGp1c3RcLVwoaW5cLXRpbWVcKTsKK+aOouimliA+IHBheVwtYVwtdmlzaXRcLXRvOwor5Yik5piOID4gdG9cLWRpc3Rpbmd1aXNoOwor5byV5ZKOID4gdGFrZVwtdGhlXC1ibGFtZTsKK+WjgeWgsSA+IHdhbGxcLW5ld3NwYXBlcjsKK+aUueWWhCA+IHRvXC1tYWtlXC1iZXR0ZXI7CivpgKDmiJAgPiB0b1wtYnJpbmdcLWFib3V0Owor5bmr5pyDID4gc2VjcmV0XC1zb2NpZXR5Owor5pON5b+DID4gdG9cLXdvcnJ5XC1hYm91dDsKK+eZveeoriA+IHRoZVwtd2hpdGVcLXJhY2U7Civoo5znvLogPiBmaWxsXC1hXC12YWNhbmN5Owor6KW/5q2QID4gd2VzdGVyblwtZXVyb3BlOwor6YCV5bqtID4gdmVyeVwtZGlmZmVyZW50Owor6KOc57a0ID4gbWVuZFwtXChjbG90aGVzXCk7Civpm4bkuK0gPiB0b1wtY29uY2VudHJhdGU7CivpgbLliLAgPiB0b1wtYXJyaXZlXC1sYXRlOwor5aCx5b6pID4gbWFrZVwtcmVwcmlzYWxzOwor55yf5oOFID4gcmVhbFwtc2l0dWF0aW9uOwor5beo5rWBID4gc3Ryb25nXC1jdXJyZW50Owor6YCA5a24ID4gdG9cLXF1aXRcLXNjaG9vbDsKK+W7ieWDuSA+IGNoZWFwbHlcLXByaWNlZDsKK+eXheiZnyA+IHNpY2tcLXBlcnNvbm5lbDsKK+WcmOe1kCA+IFwoaG9sZFwtYVwpXC1yYWxseTsKK+Wcjee5niA+IHJldm9sdmVcLWFyb3VuZDsKK+i/keW5tCA+IHJlY2VudFwteWVhclwoc1wpOwor5YCS6ZaJID4gdG9cLWdvXC1iYW5rcnVwdDsKK+WGt+aIsCA+IFwodGhlXClcLWNvbGRcLXdhcjsKK+WDueebriA+IFwobWFya2VkXClcLXByaWNlOwor55eF6ISIID4gYWJub3JtYWxcLXB1bHNlOwor5ry46K6KID4gZ3JhZHVhbFwtY2hhbmdlOwor6YCa5L+hID4gdG9cLWNvbW11bmljYXRlOwor57SA5b+1ID4gdG9cLWNvbW1lbW9yYXRlOwor6ZaL5pyDID4gaGF2ZVwtYVwtbWVldGluZzsKK+WFqOaZryA+IHBhbm9yYW1pY1wtdmlldzsKK+WIgOWPiSA+IGtuaWZlXC1hbmRcLWZvcms7CivluIPluJsgPiBjbG90aFwtYW5kXC1zaWxrOwor5om+6YyiID4gdG9cLWdpdmVcLWNoYW5nZTsKK+ijnOa2siA+IGZsdWlkXC1pbmZ1c2lvbjsKK+i1t+m7niA+IHN0YXJ0aW5nXC1wb2ludDsKK+WgseWIhiA+IGNhbGxcLXRoZVwtc2NvcmU7CivmjLrnq4sgPiB0b1wtc3RhbmRcLWVyZWN0Owor5YWr5oiQID4gZWlnaHR5XC1wZXJjZW50Owor5YWp5omLID4gZG91YmxlXC10YWN0aWNzOwor5o6h5rK5ID4gb2lsXC1leHRyYWN0aW9uOwor6Leo6LaKID4gdG9cLXN0ZXBcLWFjcm9zczsKK+i3kemBkyA+IGF0aGxldGljXC10cmFjazsKK+aPoeaLsyA+IHRvXC1tYWtlXC1hXC1maXN0Owor5o+h5omLID4gdG9cLXNoYWtlXC1oYW5kczsKK+eyvuW5siA+IGNyYWNrXC1cKHRyb29wc1wpOwor6ZW35b6BID4gdGhlXC1sb25nXC1tYXJjaDsKK+eXheeXmyA+IHNsaWdodFwtaWxsbmVzczsKK+iLseWvuCA+IFwoZW5nbGlzaFwpXC1pbmNoOwor5qiZ5bC6ID4gc3VydmV5b3InJ3NcLXJvZDsKK+Wwh+i7jSA+IFwoYXJteVwpXC1nZW5lcmFsOwor5YWp5ZyLID4gYm90aFwtY291bnRyaWVzOwor5YWo5ZyLID4gZW50aXJlXC1jb3VudHJ5Owor6Lyp5a2QID4gYWxsXC1vbmUnJ3NcLWxpZmU7Civplbfln44gPiB0aGVcLWdyZWF0XC13YWxsOwor6KGo5rG6ID4gZGVjaWRlXC1ieVwtdm90ZTsKK+aIkOmDvSA+IGNoZW5nZHVcLVwoY2l0eVwpOwor6ayl5pm6ID4gYmF0dGxlXC1vZlwtd2l0czsKK+WFq+WNgyA+IGVpZ2h0XC10aG91c2FuZDsKK+eXheattyA+IG1lZGljYWxcLXJlY29yZDsKK+S8uOmWiyA+IHRvXC1zdHJldGNoXC1vdXQ7CivmvJTnpLogPiB0b1wtZGVtb25zdHJhdGU7CivnlaLnlJ8gPiBhbGxcLW9uZScnc1wtbGlmZTsKK+aPoeWIpSA+IHRvXC1zaGFrZVwtaGFuZHM7CivlgrPmkq0gPiB0b1wtZGlzc2VtaW5hdGU7CivlhaXkvI0gPiBlbnRlclwtdGhlXC1hcm15Owor6aaW6YO9ID4gY2FwaXRhbFwtXChjaXR5XCk7CivmvZTmt6ggPiBjbGVhbnNlXC1cKHNpbnNcKTsKK+iIjOaguSA+IGJhY2tcLW9mXC10b25ndWU7Civlgo3mmZogPiBpblwtdGhlXC1ldmVuaW5nOwor6KGM5pS/ID4gYWRtaW5pc3RyYXRpb247CivlsI/ogbIgPiBpblwtYVwtbG93XC12b2ljZTsKK+evoeaUuSA+IHRvXC10YW1wZXJcLXdpdGg7CivmiKroh7MgPiB1cFwtdG9cLVwoYVwtdGltZVwpOwor6LW36I2JID4gZHJhZnRcLVwoYVwtYmlsbFwpOwor5oyo5omTID4gdGFrZVwtYVwtYmVhdGluZzsKK+WxpOeQhiA+IHN0cmF0aWZpY2F0aW9uOwor55CD6Z6LID4gYXRobGV0aWNcLXNob2VzOwor6Y2L6LK8ID4gZnJpZWRcLWR1bXBsaW5nOwor5o6I5ZG9ID4gdG9cLWdpdmVcLW9yZGVyczsKK+aguOiDvSA+IG51Y2xlYXJcLWVuZXJneTsKK+a1rum7niA+IGZsb2F0aW5nXC1wb2ludDsKK+eUn+eBqyA+IHRvXC1tYWtlXC1hXC1maXJlOwor6Ieq5b6eID4gc2luY2VcLVwoYVwtdGltZVwpOwor5a+255+zID4gcHJlY2lvdXNcLXN0b25lOwor5qOE5qu7ID4gYWJhbmRvbmVkXC1iYWJ5Owor55Si5qyKID4gcHJvcGVydHlcLXJpZ2h0Owor6b2S6LyqID4gXChtYWNoaW5lXClcLWdlYXI7CivkvrXniq8gPiB0b1wtaW5mcmluZ2VcLW9uOwor6KGA5aOTID4gYmxvb2RcLXByZXNzdXJlOwor55eF5ZOhID4gc2lja1wtcGVyc29ubmVsOwor5rib6IKlID4gdG9cLWxvc2VcLXdlaWdodDsKK+S7o+ihqCA+IHJlcHJlc2VudGF0aXZlOwor55Wr5bGVID4gYXJ0XC1leGhpYml0aW9uOwor55Sf5pWIID4gdG9cLXRha2VcLWVmZmVjdDsKK+aJjeawoyA+IGxpdGVhcnlcLXRhbGVudDsKK+acn+mWkyA+IHBlcmlvZFwtb2ZcLXRpbWU7CivlsIjmrIQgPiBzcGVjaWFsXC1jb2x1bW47CivlrbjnsY0gPiBzY2hvb2xcLXJvbGxcKHNcKTsKK+emgemjnyA+IGZhc3RcLVwobm90XC1lYXRcKTsKK+afkOeoriA+IHNvbWVcLWtpbmRcLVwob2ZcKTsKK+Wwh+acgyA+IHdpbGxcLFwtZ29pbmdcLXRvOwor6LGO6LW3ID4gaG9sZFwtdXBcLVwoaGlnaFwpOwor5a+25pu4ID4gdHJlYXN1cmVkXC1ib29rOwor5ZCD6amaID4gdG9cLWJlXC1zdGFydGxlZDsKK+WwjuW9iCA+IGd1aWRlZFwtbWlzc2lsZTsKK+a4heeIvSA+IGZyZXNoXC1hbmRcLWNvb2w7CivkupLoga8gPiBpbnRlcmNvbm5lY3RlZDsKK+WUseeJhyA+IFwodmlueWxcKVwtcmVjb3JkOwor5LqM6ICFID4gYm90aFwtXFtvZlwtdGhlbVxdOwor5omN5a2QID4gZ2lmdGVkXC1zY2hvbGFyOwor5L615a6zID4gdG9cLWVuY3JvYWNoXC1vbjsKK+WvtuW6qyA+IHRyZWFzdXJlXC1ob3VzZTsKK+S/neWWriA+IGd1YXJhbnRlZVwtc2xpcDsKK+Wwj+WtuCA+IHByaW1hcnlcLXNjaG9vbDsKK+S7lOeVnCA+IG5ld2Jvcm5cLWFuaW1hbDsKK+acrOiJsiA+IG5hdHVyYWxcLWNvbG91cjsKK+S+huW+gCA+IHRvXC1jb21lXC1hbmRcLWdvOwor6aGM6LeLID4gc2hvcnRcLWNvbW1lbnRzOwor5LiN6KejID4gbm90XC11bmRlcnN0YW5kOwor5oeu5oWuID4gXChmZWVsXClcLWFueGlldHk7CivkvZnmgrggPiBsaW5nZXJpbmdcLWZlYXI7CivmiJDlsLEgPiBhY2NvbXBsaXNobWVudDsKK+WuueW/jSA+IHRvXC1wdXRcLXVwXC13aXRoOwor57236KuWID4gYWJhbmRvbmVkXC1pZGVhOwor5oKj6JmVID4gYWZmbGljdGVkXC1wYXJ0Owor5p625qeLID4gaW5mcmFzdHJ1Y3R1cmU7CivnqbTmkq0gPiBidW5jaFwtcGxhbnRpbmc7Civmh7flrZUgPiB0b1wtYmVcLXByZWduYW50Owor6IG35qWtID4gam9iXC1vY2N1cGF0aW9uOwor5Lu75pyfID4gdGVybVwtb2ZcLW9mZmljZTsKK+S4jeiIiCA+IG91dFwtb2ZcLWZhc2hpb247CivnkIPmo5IgPiBcKGJhc2ViYWxsXClcLWJhdDsKK+izh+agvCA+IHF1YWxpZmljYXRpb25zOwor5p2x5rW3ID4gZWFzdFwtY2hpbmFcLXNlYTsKK+adseatkCA+IGVhc3Rlcm5cLWV1cm9wZTsKK+S7u+aGkSA+IG5vXC1tYXR0ZXJcLXdoYXQ7Civku4rmnJ0gPiBhdFwtdGhlXC1wcmVzZW50Owor5L2c5ZOBID4gd29ya3NcLVwob2ZcLWFydFwpOwor5oaL5oK2ID4gZmVlbFwtb3BwcmVzc2VkOwor6aO85qe9ID4gZmVlZGluZ1wtdHJvdWdoOwor6K2m6LuKID4gcG9saWNlXC12ZWhpY2xlOwor5a+S5Ya3ID4gY29sZFwtXChjbGltYXRlXCk7Civlronlpb0gPiBzYWZlXC1hbmRcLXNvdW5kOwor5ray5pm2ID4gbGlxdWlkXC1jcnlzdGFsOwor5Y+D6KeAID4gdG9cLWxvb2tcLWFyb3VuZDsKK+WPr+iDvSA+IG1pZ2h0XC1cKGhhcHBlblwpOwor6aaW5YWIID4gZmlyc3RcLVwob2ZcLWFsbFwpOwor5ray5oWLID4gbGlxdWlkXC1cKHN0YXRlXCk7CivlrZXlqaYgPiBwcmVnbmFudFwtd29tYW47CivkuZjms5UgPiBtdWx0aXBsaWNhdGlvbjsKK+WumuWDuSA+IHRvXC1zZXRcLWFcLXByaWNlOwor5pqX566xID4gY2FtZXJhXC1iZWxsb3dzOwor5rib5YiRID4gcmVkdWNlXC1wZW5hbHR5Owor5LiA55SfID4gYWxsXC1vbmUnJ3NcLWxpZmU7CivkuK3mrZAgPiBjZW50cmFsXC1ldXJvcGU7Civniq/nvaogPiBcKGNvbW1pdFwpXC1jcmltZTsKK+S7veWFkiA+IGRlZ3JlZVwsXC1leHRlbnQ7CivnibnoibIgPiBjaGFyYWN0ZXJpc3RpYzsKK+S4reaWtyA+IHRvXC1kaXNjb250aW51ZTsKK+enleWtkCA+IGJsaWdodGVkXC1ncmFpbjsKK+ePvuS7uyA+IGF0XC10aGVcLXByZXNlbnQ7CivmnInlvoUgPiBub3RcLXlldFwtXChkb25lXCk7CivpoYzmnZAgPiBzdWJqZWN0XC1tYXR0ZXI7CivnpKbms4kgPiBtaW5lcmFsXC1zcHJpbmc7Civmr5vooaMgPiBcKHdvb2xcKVwtc3dlYXRlcjsKK+iyrOS7uyA+IHJlc3BvbnNpYmlsaXR5Owor5Y2K6IG3ID4gcGFydFwtdGltZVwtd29yazsKK+mhr+W+lyA+IGFwcGVhclwtXCh0b1wtYmVcKTsKK+eglOijvSA+IHRvXC1tYW51ZmFjdHVyZTsKK+S4jeW/jSA+IGNhbm5vdFwtYmVhclwtdG87Civlqr3lkqogPiBtdW1teVwtXChtb3RoZXJcKTsKK+azouaBqSA+IGJvbm5cLVwoZ2VybWFueVwpOwor5pWX6Ki0ID4gbG9zZVwtYVwtbGF3c3VpdDsKK+WjveihoyA+IGJ1cmlhbFwtY2xvdGhlczsKK+aTuumQmCA+IHBlbmR1bHVtXC1jbG9jazsKK+WMl+e3ryA+IG5vcnRoXC1sYXRpdHVkZTsKK+WPiuagvCA+IHRvXC1wYXNzXC1hXC10ZXN0Owor5rOV5bqtID4gY291cnRcLVwob2ZcLWxhd1wpOwor6YCZ6aGeID4gdGhpc1wta2luZFwtXChvZlwpOwor5Li75L+uID4gXChzY2hvb2xcKVwtbWFqb3I7CivorormiJAgPiB0b1wtY2hhbmdlXC1pbnRvOwor5LiN5ZCIID4gbm90XC1jb25mb3JtXC10bzsKK+aWkeeruSA+IG1vdHRsZWRcLWJhbWJvbzsKK+S4jeWPiiA+IG5vdFwtYXNcLWdvb2RcLWFzOwor5YiG6aGeID4gY2xhc3NpZmljYXRpb247Civph43lu7ogPiByZWNvbnN0cnVjdGlvbjsKK+iri+eciyA+IHBsZWFzZVwtc2VlXC1cLlwuXC47CivpoZ7liKUgPiBjbGFzc2lmaWNhdGlvbjsKK+awq+awoyA+IGh5ZHJvZ2VuXC1cKGdhc1wpOwor5pW456iuID4gbnVtZXJvdXNcLXR5cGVzOwor56C055SiID4gdG9cLWdvXC1iYW5rcnVwdDsKK+WGsOm7niA+IGZyZWV6aW5nXC1wb2ludDsKK+iPr+ijlCA+IGV0aG5pY1wtY2hpbmVzZTsKK+S4jeS7gSA+IG5vdFwtYmVuZXZvbGVudDsKK+aUtuiBvSA+IHRvXC1saXN0ZW5cLVwodG9cKTsKK+iPsuiPsiA+IHZlcnlcLWZyYWdyYW50Owor5piC5o+aID4gaGlnaFwtc3Bpcml0ZWQ7Civml6nmmaggPiBlYXJseVwtbW9ybmluZzsKK+ejgeW4tiA+IG1hZ25ldGljXC10YXBlOwor6Kej6Kq/ID4gdG9cLWRlbW9kdWxhdGU7CivljJfmtbcgPiB0aGVcLW5vcnRoXC1zZWE7CivoloTliKkgPiBzbWFsbFwtcHJvZml0czsKK+aZmuWgsSA+IGV2ZW5pbmdcLXBhcGVyOwor5pif5bqnID4gY29uc3RlbGxhdGlvbjsKK+WGsOmeiyA+IHNrYXRpbmdcLWJvb3RzOwor5bug57WyID4gZmlsYXR1cmVcLXNpbGs7Civnn5vnm74gPiBjb250cmFkaWN0b3J5Owor5Ye66LOjID4gdG9cLXNlbGxcLVwob2ZmXCk7CivliLDomZUgPiBpblwtYWxsXC1wbGFjZXM7Civlj6Tku6MgPiBhbmNpZW50XC10aW1lczsKK+aWsOaciCA+IGNyZXNjZW50XC1tb29uOwor5Y2z5bCHID4gb25cLXRoZVwtZXZlXC1vZjsKK+WNkeW+riA+IHBldHR5XC1hbmRcLWxvdzsKK+WNseWusyA+IHRvXC1qZW9wYXJkaXplOwor5Yio6IqxID4gd29vZFwtc2hhdmluZ3M7Civojqjoj6ogPiBibGFja1wtaGVuYmFuZTsKK+iqv+afpSA+IGludmVzdGlnYXRpb247CivntoHohb8gPiBsZWdcLXdyYXBwaW5nczsKK+WIl+iIiSA+IFwobWFrZVwtYVwpXC1saXN0Owor6YGp55SoID4gYmVcLWFwcGxpY2FibGU7CivmkZjoqJggPiB0b1wtdGFrZVwtbm90ZXM7CivlhYPpppYgPiBoZWFkXC1vZlwtc3RhdGU7CivmlrnlvI8gPiB3YXlcLVwob2ZcLWxpZmVcKTsKK+aXpeWknCA+IGRheVwtYW5kXC1uaWdodDsKK+iKnem6uyA+IHNlc2FtZVwtXChzZWVkXCk7CivniYzlnYogPiBtZW1vcmlhbFwtYXJjaDsKK+WJjeeUnyA+IHByZVwtZXhpc3RlbmNlOwor5piH5YC8ID4gcmlzZVwtaW5cLXZhbHVlOwor57Gz6aOvID4gXChjb29rZWRcKVwtcmljZTsKK+i9iemBkyA+IG1ha2VcLWFcLWRldG91cjsKK+mVt+mAlCA+IGxvbmdcLWRpc3RhbmNlOwor5pel5YmNID4gdGhlXC1vdGhlclwtZGF5Owor5aKc5q+AID4gXChwbGFuZVwpXC1jcmFzaDsKK+mbmeaJiyA+IHBhaXJcLW9mXC1oYW5kczsKK+WNl+S6niA+IHNvdXRoZXJuXC1hc2lhOwor5YiK55m7ID4gY2FycnlcLWFcLXN0b3J5Owor6KqH5by1ID4gdG9cLWV4YWdnZXJhdGU7Civpm6Plv5ggPiB1bmZvcmdldHRhYmxlOwor5pep5LiKID4gZWFybHlcLW1vcm5pbmc7CivlpKrlpKogPiBtYXJyaWVkXC13b21hbjsKK+aSpeeUqCA+IGFwcHJvcHJpYXRpb247CivlooPms4EgPiBjaXJjdW1zdGFuY2VzOwor5rCR5LqLID4gY2l2aWxcLW1hdHRlcnM7CivlpbPkvaMgPiBcKGZlbWFsZVwpXC1tYWlkOwor5YuY5a+fID4gcmVjb25uYWlzYW5jZTsKK+exjOmbhiA+IGNvbGxlY3RcLW1vbmV5Owor5pON5ryUID4gZGVtb25zdHJhdGlvbjsKK+W5u+eHiCA+IGxhdGVyblwtc2xpZGVzOwor5Yqg5b+rID4gdG9cLWFjY2VsZXJhdGU7CivlhrDns5YgPiBjcnlzdGFsXC1zdWdhcjsKK+Wci+mamyA+IGludGVybmF0aW9uYWw7CivprKXpm54gPiBjb2NrXC1maWdodGluZzsKK+W9ouWLoiA+IGNpcmN1bXN0YW5jZXM7CivpgY7mmYIgPiBvbGRcLWZhc2hpb25lZDsKK+maqOaEjyA+IGFzXC1vbmVcLXdpc2hlczsKK+WkseWIqSA+IHN1ZmZlclwtZGVmZWF0Owor5pCN6ICXID4gd2VhclwtYW5kXC10ZWFyOwor55u455W2ID4gZXF1aXZhbGVudFwtdG87CivpgJDmraUgPiBwcm9ncmVzc2l2ZWx5Owor5bm+5qyhID4gc2V2ZXJhbFwtdGltZXM7Civlt6jntLAgPiBiaWdcLWFuZFwtc21hbGw7Civlub7mqKMgPiBzZXZlcmFsXC1raW5kczsKK+Wkp+S9vyA+IGFuXC1hbWJhc3NhZG9yOwor57eo5a+pID4gcmVhZFwtYW5kXC1lZGl0Owor5by35YyWID4gdG9cLXN0cmVuZ3RoZW47Civpgb/lrZUgPiBjb250cmFjZXB0aW9uOwor5aSn5LqLID4gYVwtbWFqb3JcLWV2ZW50Owor5pWZ5Y+LID4gY2h1cmNoXC1tZW1iZXI7CivpgJ/mlYggPiBxdWlja1wtcmVzdWx0czsKK+WIqeaWvCA+IGJlXC1iZW5lZmljaWFsOwor5pWX5YyXID4gc3VmZmVyXC1kZWZlYXQ7CivliJ3mnJ8gPiBpbml0aWFsXC1zdGFnZTsKK+ipouWVjyA+IGlucXVpcmVcLWFib3V0Owor5q275YiRID4gZGVhdGhcLXBlbmFsdHk7CivlhbXnl54gPiBhcm15XC1yaWZmcmFmZjsKK+mrlOmHjSA+IFwoYm9keVwpXC13ZWlnaHQ7Civnmb3noJIgPiB3aGl0ZVwtYXJzZW5pYzsKK+ebuOaetiA+IHBpY3R1cmVcLWZyYW1lOwor5Z6C55u0ID4gcGVycGVuZGljdWxhcjsKK+Wig+WcsCA+IGNpcmN1bXN0YW5jZXM7CivlhbXnh58gPiBtaWxpdGFyeVwtY2FtcDsKK+W4guawkSA+IGNpdHlcLXJlc2lkZW50Owor6Zqo5L6/ID4gYXNcLW9uZVwtd2lzaGVzOwor5bqt5ZySID4gZmxvd2VyXC1nYXJkZW47CivovZ/ngrggPiBcKGRyb3BcLWFcKVwtYm9tYjsKK+mBjuWOuyA+IFwoaW5cLXRoZVwpXC1wYXN0Owor6Imm6ImHID4gbmF2YWxcLXZlc3NlbHM7CivlhrDmnJ8gPiBnbGFjaWFsXC1lcG9jaDsKK+mXnOaWvCA+IHBlcnRhaW5pbmdcLXRvOwor5Ymb5YmbID4ganVzdFwtcmVjZW50bHk7Civlu6DkuLsgPiBmYWN0b3J5XC1vd25lcjsKK+WGjeasoSA+IG9uZVwtbW9yZVwtdGltZTsKK+asiuWKmyA+IFwod2llbGRcKVwtcG93ZXI7CivpgKPlkIwgPiB0b2dldGhlclwtd2l0aDsKK+ewv+exjSA+IGFjY291bnRcLWJvb2tzOwor5qmr5o6DID4gdG9cLXN3ZWVwXC1hd2F5Owor5bqm5YGHID4gZ29cLW9uXC1ob2xpZGF5Owor55Ww6LOqID4gaGV0ZXJvZ2VuZW91czsKK+i7iuermSA+IFwoYnVzXClcLXN0YXRpb247Civlgpnoh7MgPiB0b1wtdGhlXC11dG1vc3Q7Civot5HpnosgPiBydW5uaW5nXC1zaG9lczsKK+WgseWWriA+IHRheGF0aW9uXC1mb3JtOwor6ZGS6LOeID4gdG9cLWFwcHJlY2lhdGU7CivpgJnkvY0gPiB0aGlzXC1cKHBlcnNvblwpOwor5Zuw56qYID4gZW1iYXJyYXNzbWVudDsKK+mZjeS4liA+IGNvbWVcLXRvXC1lYXJ0aDsKK+S+v+mjryA+IGFcLXNpbXBsZVwtbWVhbDsKK+i8u+ainSA+IFwod2hlZWxcKVwtc3Bva2U7CivmiZPplosgPiB0b1wtYnJlYWtcLW9wZW47Civnmbzmj64gPiBicmluZ1wtdG9cLWJlYXI7Civplovlv4MgPiB0b1wtZmVlbFwtaGFwcHk7Civlr6bpqZcgPiB0b1wtZXhwZXJpbWVudDsKK+i9ieW9jiA+IHR1cm5cLVwoYXJvdW5kXCk7CivmoYjpoK0gPiBvblwtb25lJydzXC1kZXNrOwor6L6o5YilID4gZGlmZmVyZW50aWF0ZTsKK+aKhOilsiA+IHRvXC1wbGFnaWFyaXplOwor6L6m5YiwID4gdG9cLWFjY29tcGxpc2g7CivlhYjlvowgPiBpblwtc3VjY2Vzc2lvbjsKK+eVnOiCpSA+IGFuaW1hbFwtbWFudXJlOwor5ouJ576OID4gbGF0aW5cLWFtZXJpY2E7CivmoLjpm7sgPiBudWNsZWFyXC1wb3dlcjsKK+i2iumHjiA+IGNyb3NzXC1jb3VudHJ5Owor6aeB6ZucID4gaGV0ZXJvZ2VuZW91czsKK+WFrOWckiA+IGFcLXB1YmxpY1wtcGFyazsKK+eZvuWnkyA+IGNvbW1vblwtcGVvcGxlOwor54G95Y2AID4gZGlzYXN0ZXJcLWFyZWE7Civmp4vmiJAgPiB0b1wtY29uc3RpdHV0ZTsKK+S/neiXjyA+IGtlZXBcLWluXC1zdG9yZTsKK+eRnummmSA+IHdpbnRlclwtZGFwaG5lOwor5ouM56iuID4gc2VlZFwtZHJlc3Npbmc7CivnsYzmjqogPiByYWlzZVwtXChtb25leVwpOwor5qOE572uID4gdG9cLXRocm93XC1hd2F5Owor6LOj6bueID4gc2VsbGluZ1wtcG9pbnQ7CivplovliJcgPiBcKG1ha2VcLWFcKVwtbGlzdDsKK+eYpuW8sSA+IHRoaW5cLWFuZFwtd2VhazsKK+eZveWMqiA+IHdoaXRlXC1iYW5kaXRzOwor6IKJ6auUID4gcGh5c2ljYWxcLWJvZHk7CivlgpnmoYggPiBwdXRcLW9uXC1yZWNvcmQ7CivprKXlv5cgPiB3aWxsXC10b1wtZmlnaHQ7CivmiYHojbMgPiBoeWFjaW50aFwtYmVhbjsKK+eZvuWAjSA+IGFcLWh1bmRyZWRmb2xkOwor562G562SID4gcGVuXC1jb250YWluZXI7Civlr7bol40gPiBzYXBwaGlyZVwtYmx1ZTsKK+a7sueisyA+IGNhcmJ1cml6YXRpb247CivmuKHpgY4gPiB0b1wtY3Jvc3NcLW92ZXI7CivlrZfpm4YgPiBjaGFyYWN0ZXJcLXNldDsKK+epuumBiyA+IGFpclwtdHJhbnNwb3J0Owor6KGo5bGkID4gc3VyZmFjZVwtbGF5ZXI7CivlnJPlkaggPiBjaXJjdW1mZXJlbmNlOwor55eF5a6zID4gcGxhbnRcLWRpc2Vhc2U7CivllK7osqggPiB0b1wtc2VsbFwtZ29vZHM7CivoiIzlsJYgPiB0aXBcLW9mXC10b25ndWU7CivmoYjnqLEgPiBjb3VudGVyXC1zY2FsZTsKK+a2iOmYsiA+IGZpcmVcLWZpZ2h0aW5nOwor5ZaJ57WQID4gYWRhbScncycnXC1hcHBsZTsKK+WztuWciyA+IGlzbGFuZFwtbmF0aW9uOwor6ayn5LqLID4gY2F1c2VcLXRyb3VibGU7Civkuqzpg70gPiBreW90b1wtXChqYXBhblwpOwor5Zub5Y2DID4gZm91clwtdGhvdXNhbmQ7CivnlbblubQgPiBpblwtdGhvc2VcLWRheXM7CivosqHov7cgPiBtb25leVwtZ3J1YmJlcjsKK+eQhuinoyA+IHRvXC1jb21wcmVoZW5kOwor5a+G56K8ID4gXChzZWNyZXRcKVwtY29kZTsKK+evieWfjiA+IGZvcnRpZmljYXRpb247CivooZvlhbUgPiBcKGJvZHlcKVwtZ3VhcmRcKTsKK+eWkeWVjyA+IGludGVycm9nYXRpb247Civllonnl6cgPiBzY2FybGV0XC1mZXZlcjsKK+WAi+aApyA+IGluZGl2aWR1YWxpdHk7CivllZ/npLogPiBlbmxpZ2h0ZW5tZW50Owor6Ie05Ye9ID4gc2VuZFwtYVwtbGV0dGVyOwor5oSP6K2YID4gY29uc2Npb3VzbmVzczsKK+iBr+e1oSA+IGNvbW11bmljYXRpb247Civmi5zliKUgPiB0YWtlXC1sZWF2ZVwtb2Y7CivmiYHmk5QgPiBjYXJyeWluZ1wtcG9sZTsKK+WTgOiZnyA+IGNyeVwtcGl0ZW91c2x5Owor5qGC5p6XID4gZ3VpbGluXC1cKGNpdHlcKTsKK+mHkem7gyA+IGdvbGRlblwteWVsbG93Owor6Leo5ZyLID4gdHJhbnNuYXRpb25hbDsKK+a8lOWHuiA+IFwoYWN0aW5nXClcLXBsYXk7CivlkIPpo68gPiB0b1wtZWF0XC1hXC1tZWFsOwor5LiN6YCaID4gYmVcLW9ic3RydWN0ZWQ7CivmiJLmjIcgPiBcKGZpbmdlclwpXC1yaW5nOwor5bCR5bCHID4gbWFqb3JcLWdlbmVyYWw7CivmnZzntZUgPiBwdXRcLWFuXC1lbmRcLXRvOwor5pqX6Y6WID4gYnVpbHRcLWluXC1sb2NrOwor5oey5oiSID4gdG9cLWRpc2NpcGxpbmU7CivkuIvoqrIgPiBjbGFzc1wtaXNcLW92ZXI7CivkuI3oqbMgPiBub3RcLWluXC1kZXRhaWw7Civlj43pn78gPiByZXBlcmN1c3Npb25zOwor5a6/5oCoID4gYW5cLW9sZFwtZ3J1ZGdlOwor5Zau5a2QID4gbGlzdFwtb2ZcLWl0ZW1zOwor6LKi5427ID4gdG9cLWNvbnRyaWJ1dGU7Civlj6vphpIgPiB0b1wtY2FsbFwtYXdha2U7Civnvo7ooZMgPiB0aGVcLWZpbmVcLWFydHM7Civog73lpKAgPiBiZVwtY2FwYWJsZVwtb2Y7CivlrrblsawgPiBmYW1pbHlcLW1lbWJlcjsKK+m8u+a3tSA+IG5hc29zaW51c2l0aXM7Civmh4LlvpcgPiB0b1wtdW5kZXJzdGFuZDsKK+WNium7niA+IHRoZVwtbGVhc3RcLWJpdDsKK+mJm+ethiA+IFwobGVhZFwpXC1wZW5jaWw7Civllq7lkJEgPiB1bmRpcmVjdGlvbmFsOwor5Y+X6LOEID4gYWNjZXB0XC1icmliZXM7CivkvovlgYcgPiBsZWdhbFwtaG9saWRheTsKK+awtOmdoiA+IHdhdGVyXC1zdXJmYWNlOwor56e75q6WID4gdG9cLXRyYW5zcGxhbnQ7CivotbfkvI8gPiB1cHNcLWFuZFwtZG93bnM7Civororoqr8gPiBtb2RpZmllZFwtdG9uZTsKK+WPi+iqvCA+IGNvbXBhbmlvbnNoaXA7Civnp7vmpI0gPiB0b1wtdHJhbnNwbGFudDsKK+WTgOaogiA+IGZ1bmVyYWxcLW11c2ljOwor5a+M5LqOID4gdG9cLWJlXC1mdWxsXC1vZjsKK+iBsuW4tiA+IHZvY2FsXC1jb3JkXChzXCk7CivkuI3nn6UgPiB1bmtub3dpbmdcKGx5XCk7CivlravlpbMgPiBncmFuZGRhdWdodGVyOwor5ra85b+rID4gbmljZVwtYW5kXC1jb2xkOwor5LiJ55m+ID4gdGhyZWVcLWh1bmRyZWQ7CivkuqzmiLIgPiBiZWlqaW5nXC1vcGVyYTsKK+S9juS6jiA+IGJlXC1sb3dlclwtdGhhbjsKK+WNl+mDqCA+IHNvdXRoZXJuXC1wYXJ0Owor5riF5ZauID4gbGlzdFwtb2ZcLWl0ZW1zOwor6K6K6ImyID4gY2hhbmdlXC1jb2xvdXI7CivljJfpnaIgPiBub3J0aGVyblwtc2lkZTsKK+S4iuePrSA+IHRvXC1nb1wtdG9cLXdvcms7CivlkITnqK4gPiBldmVyeVwta2luZFwtb2Y7Civosp3lvasgPiBzaGVsbFwtY2FydmluZzsKK+aXpei7jSA+IGphcGFuZXNlXC1hcm15Owor5Y2X6LaKID4gc291dGhcLXZpZXRuYW07Civmg4Xms4EgPiBjaXJjdW1zdGFuY2VzOwor5oSb5oaOID4gbG92ZVwtYW5kXC1oYXRlOwor6IG35ZOhID4gb2ZmaWNlXC13b3JrZXI7CivmtIvmuqIgPiBicmltbWluZ1wtd2l0aDsKK+WNlOiqvyA+IHRvXC1jb29yZGluYXRlOwor5aSn6ZiqID4gb3Nha2FcLVwoamFwYW5cKTsKK+iAg+aFriA+IHRvXC10aGlua1wtb3ZlcjsKK+WMl+mDqCA+IG5vcnRoZXJuXC1wYXJ0Owor5pys5oSPID4gb3JpZ2luYWxcLWlkZWE7CivnjajmlKwgPiB0b1wtbW9ub3BvbGl6ZTsKK+WQuOavkiA+IHRvXC10YWtlXC1kcnVnczsKK+azs+axoCA+IHN3aW1taW5nXC1wb25kOwor5LiA5q2lID4gXChzaW5nbGVcKVwtc3RlcDsKK+WMl+i2iiA+IG5vcnRoXC12aWV0bmFtOwor6Zuc6aCFID4gbWlzY2VsbGFuZW91czsKK+WTpeWTpSA+IG9sZGVyXC1icm90aGVyOwor5aSW6YOoID4gZXh0ZXJuYWxcLXBhcnQ7CivogZ7kurogPiBmYW1vdXNcLXBlcnNvbjsKK+S6rOWKhyA+IGJlaWppbmdcLW9wZXJhOwor5ZKM5bCaID4gYnVkZGhpc3RcLW1vbms7CivomIflt54gPiBzdXpob3VcLVwoY2l0eVwpOwor56Sm5rC0ID4gbWluZXJhbFwtd2F0ZXI7CivmmpHmsKMgPiBcKHN1bW1lclwpXC1oZWF0Owor5ZOA5ZGKID4gYmVnXC1waXRlb3VzbHk7Civmg4XlvaIgPiBjaXJjdW1zdGFuY2VzOwor5Lit5byPID4gY2hpbmVzZVwtc3R5bGU7CivlpJbosr8gPiBmb3JlaWduXC10cmFkZTsKK+mBv+mboyA+IFxbdGFrZVxdXC1yZWZ1Z2U7CivljIXoorEgPiBjbG90aFwtd3JhcHBlcjsKK+aEn+WGkiA+IHRvXC1jYXRjaFwtY29sZDsKK+W9qeiajCA+IHBhaW50ZWRcLXNoZWxsOwor56au5aCCID4gYXNzZW1ibHlcLWhhbGw7CivkuI3mga0gPiBkaXNyZXNwZWN0ZnVsOwor57i96KiIID4gXChncmFuZFwpXC10b3RhbDsKK+Wom+aogiA+IGVudGVydGFpbm1lbnQ7CivkuK3lrbggPiBtaWRkbGVcLXNjaG9vbDsKK+S6lOS4gCA+IDVcLTFcLVwobWF5XC0xc3RcKTsKK+ejgeeJhyA+IG1hZ25ldGljXC1kaXNrOwor5pyD5aC0ID4gbWVldGluZ1wtcGxhY2U7Civlqr7lkowgPiB0b1wtbWFrZVwtcGVhY2U7CivkuI3lt6cgPiB1bmZvcnR1bmF0ZWx5Owor5LiK5biCID4gb25cLXRoZVwtbWFya2V0Owor56eB5YipID4gcGVyc29uYWxcLWdhaW47CivpgbLpiI0gPiBzbG93XC1cKHdpdHRlZFwpOwor5YyX576OID4gbm9ydGhcLWFtZXJpY2E7CivntpPpqZcgPiB0b1wtZXhwZXJpZW5jZTsKK+axsuawtCA+IHRvXC1kcmF3XC13YXRlcjsKK+eNsuWLnSA+IGJlXC12aWN0b3Jpb3VzOwor6KeA6bueID4gcG9pbnRcLW9mXC12aWV3Owor5rC054mbID4gd2F0ZXJcLWJ1ZmZhbG87CivlkIzlubQgPiB0aGVcLXNhbWVcLXllYXI7CivorormmJ8gPiB2YXJpYWJsZVwtc3RhcjsKK+avm+ethiA+IHdyaXRpbmdcLWJydXNoOwor6JiH5L+EID4gc292aWV0XC1ydXNzaWE7CivmraXooYwgPiB0b1wtZ29cLW9uXC1mb290Owor5Yil6ZuiID4gdGFrZVwtbGVhdmVcLW9mOwor5pOF6ZW3ID4gdG9cLWJlXC1nb29kXC1hdDsKK+S4jeWVuyA+IG5vdFwtbGVzc1wtdGhhbjsKK+Wkp+e0hCA+IGFwcHJveGltYXRlbHk7CivniYznhacgPiBsaWNlbnNlXC1wbGF0ZTsKK+aal+WusyA+IGtpbGxcLXNlY3JldGx5Owor5YuD6IiIID4gcmlzZVwtc3VkZGVubHk7CivliY3pgLIgPiB0b1wtZ29cLWZvcndhcmQ7CivorormhYsgPiBtZXRhbW9ycGhvc2lzOwor5oCn5oW+ID4gc2V4dWFsXC1kZXNpcmU7CivljK/njocgPiBleGNoYW5nZVwtcmF0ZTsKK+ayu+WuiSA+IGxhd1wtYW5kXC1vcmRlcjsKK+aso+izniA+IHRvXC1hcHByZWNpYXRlOwor6ZuM6IqxID4gZmVtYWxlXC1mbG93ZXI7Civpgqboga8gPiBjb25mZWRlcmF0aW9uOwor5aSa56iuID4gbWFueVwta2luZHNcLW9mOwor5ZC45YWlID4gdG9cLWJyZWF0aGVcLWluOwor6K6K5belID4gZXhjaGFuZ2VcLXdvcms7Civlj5flrrMgPiB0b1wtYmVcLWluanVyZWQ7Civmsbrlv4MgPiBkZXRlcm1pbmF0aW9uOwor5LiL5LukID4gZ2l2ZVwtYW5cLW9yZGVyOwor6I6r6YCGID4gdmVyeVwtZnJpZW5kbHk7Civmr5TnhrEgPiBzcGVjaWZpY1wtaGVhdDsKK+aYguaYgiA+IGhpZ2hcLXNwaXJpdGVkOwor5YiG6YWNID4gdG9cLWRpc3RyaWJ1dGU7CivliqDnt4ogPiB0b1wtaW50ZW5zaWZ5Owor552h6Ka6ID4gdG9cLWdvXC10b1wtYmVkOwor5pep5pyfID4gZWFybHlcLXBlcmlvZDsKK+ebuOmXnCA+IGludGVycmVsYXRlZDsKK+eBq+m+jSA+IGZpZXJ5XC1kcmFnb247CivlkIjkvZwgPiB0b1wtY29vcGVyYXRlOwor5pm65YqbID4gaW50ZWxsaWdlbmNlOwor5b+M5oaaID4gYmVcLWFmcmFpZFwtb2Y7CivmmJTlubQgPiBmb3JtZXJcLXllYXJzOwor56Sm5LqVID4gbWluZVwtXChzaGFmdFwpOwor54af55+lID4gYWNxdWFpbnRhbmNlOwor5pSv56WoID4gXChiYW5rXClcLWNoZWNrOwor5aeQ5aeQID4gb2xkZXJcLXNpc3RlcjsKK+itpuWgsSA+IFwoZmlyZVwpXC1hbGFybTsKK+W+jOaenCA+IGNvbnNlcXVlbmNlczsKK+WniuWniiA+IG9sZGVyXC1zaXN0ZXI7CivmlLbnm6QgPiBtYXJrZXRcLWNsb3NlOwor5Z+O6ZiyID4gY2l0eVwtZGVmZW5jZTsKK+mgguS9jyA+IHRvXC13aXRoc3RhbmQ7Civopb/pg6ggPiB3ZXN0ZXJuXC1wYXJ0Owor5aW95oSfID4gZ29vZFwtb3BpbmlvbjsKK+WksealrSA+IHVuZW1wbG95bWVudDsKK+aTheiHqiA+IHVuYXV0aG9yaXplZDsKK+mAleiHqiA+IG9uXC1vbmUnJ3NcLW93bjsKK+e0ouizoCA+IGNvbXBlbnNhdGlvbjsKK+i/keimliA+IHNob3J0c2lnaHRlZDsKK+atpeeKgSA+IHdhbGtpbmdcLXBsb3c7Civnm7jorZggPiBhY3F1YWludGFuY2U7Civplovpl5wgPiBwb3dlclwtc3dpdGNoOwor5Y675LiWID4gdG9cLXBhc3NcLWF3YXk7Civln7noqJMgPiB0b1wtY3VsdGl2YXRlOwor5aSa5pa5ID4gaW5cLW1hbnlcLXdheXM7CivmkLbos7wgPiBwYW5pY1wtYnV5aW5nOwor5beh6L+0ID4gdG9cLWdvXC1hcm91bmQ7CivpgJnnqK4gPiB0aGlzXC1raW5kXC1vZjsKK+Wkp+aEjyA+IGdlbmVyYWxcLWlkZWE7CivliKXnqLEgPiBhbm90aGVyXC1uYW1lOwor5q2l5q2lID4gc3RlcFwtYnlcLXN0ZXA7CivljZTllYYgPiBjb25zdWx0XC13aXRoOwor55+u5pifID4gZHdhcmZcLVwoc3RhclwpOwor6YKj5pmCID4gYXRcLXRoYXRcLXRpbWU7CivlpKfluKsgPiBncmVhdFwtbWFzdGVyOwor57WE57mUID4gb3JnYW5pemF0aW9uOwor6YCa55SoID4gY29tbW9uXC1cKHVzZVwpOwor5aSa5belID4gdG9cLW11bHRpcGxleDsKK+ezvuiRmyA+IGVudGFuZ2xlbWVudDsKK+ippuaOoiA+IHRvXC1zb3VuZFwtb3V0Owor5aSr5aa7ID4gbWFuXC1hbmRcLXdpZmU7CivpgZPmrYkgPiB0b1wtYXBvbG9naXplOwor5pWF5oSPID4gZGVsaWJlcmF0ZWx5Owor6KuL5ZWPID4gbWF5XC1pXC1hc2tcLlwuXC47Civlh7rnmbwgPiB0b1wtc3RhcnRcLW91dDsKK+e4ruWvqyA+IGFiYnJldmlhdGlvbjsKK+WjgeaOmyA+IHdhbGxcLWhhbmdpbmc7Civnhp/mgokgPiB0b1wta25vd1wtd2VsbDsKK+eGn+aAnSA+IGRlbGliZXJhdGlvbjsKK+aVtOWkqSA+IGFsbFwtZGF5XC1sb25nOwor6bGJ55SyID4gdHVydGxlXC1zaGVsbDsKK+i6q+mrlCA+IFwoaHVtYW5cKVwtYm9keTsKK+ezvue6jyA+IGJlXC1lbnRhbmdsZWQ7CivopIfoo70gPiB0b1wtZHVwbGljYXRlOwor6ZqK5peXID4gdGVhbVwtcGVubmFudDsKK+WKoOW8tyA+IHRvXC1yZWluZm9yY2U7Civlh7rnjYQgPiBsZWF2ZVwtcHJpc29uOwor6KuH5YikID4gdG9cLW5lZ290aWF0ZTsKK+eci+eXhSA+IHNlZVwtYVwtZG9jdG9yOwor5b6I5LiNID4gdmVyeVwtdW5cLVwuXC5cLlwuOwor5q+F5YqbID4gcGVyc2V2ZXJhbmNlOwor6JC95a+mID4gdG9cLWltcGxlbWVudDsKK+aUr+W6lyA+IGJyYW5jaFwtc3RvcmU7Civnmb3olq8gPiBzd2VldFwtcG90YXRvOwor57a15peXID4gY29sb3JlZFwtZmxhZzsKK+WbnumhpyA+IHRvXC1sb29rXC1iYWNrOwor5q6t5YyWID4gYmVjb21lXC1yaWdpZDsKK+eAj+imvSA+IHRvXC1za2ltXC1vdmVyOwor6Kqy5L2ZID4gYWZ0ZXJcLXNjaG9vbDsKK+i7iumBkyA+IHRyYWZmaWNcLWxhbmU7CivmraPlpoIgPiBiZVwtanVzdFwtbGlrZTsKK+e0meeJjCA+IHBsYXlpbmdcLWNhcmQ7CivnmbzntIUgPiBmbHVzaFwtXChmYWNlXCk7Civpm4blkIggPiBjb25ncmVnYXRpb247CivpgJ/miJAgPiBjcmFzaFwtY291cnNlOwor5YWJ57eaID4gb3B0aWNhbFwtbGluZTsKK+WKquWKmyA+IGdyZWF0XC1lZmZvcnQ7CivlvJXlhaUgPiB0b1wtZHJhd1wtaW50bzsKK+W7oOWdgCA+IGZhY3RvcnlcLXNpdGU7CivpmqjlkIwgPiBhY2NvbXBhbnlpbmc7CivnhpLlhYkgPiBmbG91cmVzY2VuY2U7Civlu6PlkYogPiB0b1wtYWR2ZXJ0aXNlOwor5oyo6L+RID4gZ2V0XC1jbG9zZVwtdG87Civnt6jliocgPiB3cml0ZVwtYVwtcGxheTsKK+Wjk+WAkiA+IG92ZXJ3aGVsbWluZzsKK+aOoeiEgiA+IHRyZWVcLXRhcHBpbmc7Civnhp/kurogPiBhY3F1YWludGFuY2U7Civln7nmpI0gPiB0b1wtY3VsdGl2YXRlOwor6YCf5a+rID4gcXVpY2tcLXNrZXRjaDsKK+mAseWcjSA+IHN1cnJvdW5kaW5nczsKK+a/vue0mSA+IGZpbHRlclwtcGFwZXI7CivmqZ/mp4sgPiBvcmdhbml6YXRpb247CivoqKrkv4QgPiB2aXNpdFwtcnVzc2lhOwor5ouU6YyoID4gd2VpZ2hcLWFuY2hvcjsKK+aomeeHiCA+IGJlYWNvblwtbGlnaHQ7CivlhrDmmbYgPiBpY2VcLWNyeXN0YWxzOwor5bm+5aSpID4gc2V2ZXJhbFwtZGF5czsKK+aOiOeyviA+IGluc2VtaW5hdGlvbjsKK+mrkuipsSA+IGJhZFwtbGFuZ3VhZ2U7Civlh7nlsrggPiBjb25jYXZlXC1iYW5rOwor6YGO5L6GID4gdG9cLWNvbWVcLW92ZXI7Civmk43li54gPiB0b1wtd29ya1wtaGFyZDsKK+WIpeWQjSA+IGFub3RoZXJcLW5hbWU7CivlhYnmupAgPiBsaWdodFwtc291cmNlOwor6YCf5YeNID4gcXVpY2tcLWZyZWV6ZTsKK+WdkOeJoiA+IGltcHJpc29ubWVudDsKK+ijnOeJmSA+IGZpbGxcLWFcLXRvb3RoOwor5Yio5YiAID4gcGxhbmluZ1wtdG9vbDsKK+aKiumXnCA+IGd1YXJkXC1hXC1wYXNzOwor6Ieq6KGbID4gc2VsZlwtZGVmZW5zZTsKK+mZm+S4iyA+IHlvdXJcLW1hamVzdHk7CivlhavmnIggPiBlaWdodGhcLW1vbnRoOwor5YKZ6ICDID4gXChhblwtYXBwZW5kaXg7CivlubTliY0gPiBcLlwuXC55ZWFyc1wtYWdvOwor57Ch56ixID4gYWJicmV2aWF0aW9uOwor5Yil5Lq6ID4gb3RoZXJcLXBlb3BsZTsKK+mWi+aUryA+IGV4cGVuZGl0dXJlczsKK+aNj+epjSA+IGNoaXJvcHJhY3RpYzsKK+WgseWDuSA+IHF1b3RlZFwtcHJpY2U7Civov7fkv6EgPiBzdXBlcnN0aXRpb247CivovYnmj5sgPiB0b1wtdHJhbnNmb3JtOwor5pCs5a62ID4gbW92ZVwtXChob3VzZVwpOwor5oi26aCtID4gYmFua1wtYWNjb3VudDsKK+imquS/oSA+IHRydXN0ZWRcLWFpZGU7CivooYznqIsgPiB0cmF2ZWxcLXJvdXRlOwor5Zq056ujID4gdGlnaHRcLnN0cmljdDsKK+eci+S9nCA+IGxvb2tcLXVwb25cLWFzOwor5a+n6aGYID4gd291bGRcLXJhdGhlcjsKK+aOpeaenSA+IFwodHJlZVwpXC1ncmFmdDsKK+aOiOasiiA+IHRvXC1hdXRob3JpemU7CivplovlrbggPiBzY2hvb2xcLW9wZW5zOwor5L+d6K2JID4gdG9cLWd1YXJhbnRlZTsKK+aJueiplSA+IHRvXC1jcml0aWNpemU7Civmi5TntbIgPiB3aXJlXC1kcmF3aW5nOwor5ZiG6KmeID4gaW50ZXJqZWN0aW9uOwor5omT6LOtID4gXChtYWtlXC1hXClcLWJldDsKK+WEquaDoCA+IHByZWZlcmVudGlhbDsKK+WFrOWgsSA+IGFubm91bmNlbWVudDsKK+WvhumbhiA+IGNvbmNlbnRyYXRlZDsKK+aOiOaZgiA+IHRpbWVcLXNlcnZpY2U7CivlnKjml4EgPiBieVwtXChhXC1wbGFjZVwpOwor5ou855ukID4gY29sZFwtcGxhdHRlcjsKK+aNkOasviA+IGRvbmF0ZVwtbW9uZXk7CivlnIvmnIkgPiBuYXRpb25hbGl6ZWQ7Civkvp3os7QgPiB0b1wtZGVwZW5kXC1vbjsKK+ezu+S4iiA+IHRvXC1idWNrbGVcLXVwOwor6IOM6ZuiID4gZGV2aWF0ZVwtZnJvbTsKK+aMieeFpyA+IGFjY29yZGluZ1wtdG87CivlgbbnhLYgPiBpbmNpZGVudGFsbHk7Civllonpj6EgPiBsYXJ5bmdvc2NvcGU7Civog4zpmbAgPiBpblwtdGhlXC1zaGFkZTsKK+a8lOeulyA+IHRvXC1jYWxjdWxhdGU7CivlhanljYMgPiB0d29cLXRob3VzYW5kOwor5o+S5ZyWID4gaWxsdXN0cmF0aW9uOwor5a+p6K2wID4gZGVsaWJlcmF0aW9uOwor566h55CGID4gdG9cLXN1cGVydmlzZTsKK+aiheiKsSA+IHBsdW1cLWJsb3Nzb207CivnlbbnhLYgPiBvbmx5XC1uYXR1cmFsOwor5qiZ5YO5ID4gbWFya1wtYVwtcHJpY2U7Civmo5LnoasgPiByb2xsXC1zdWxwaHVyOwor5a2d6aCGID4gZmlsaWFsXC1waWV0eTsKK+mlhemgrSA+IHN0ZWFtZWRcLXJvbGw7Civkv53nrqEgPiB0YWtlXC1jYXJlXC1vZjsKK+WeguS4iyA+IHRvXC1oYW5nXC1kb3duOwor6KOB5ZOhID4gdG9cLWN1dFwtc3RhZmY7CivmuIXphpIgPiBjbGVhclwtaGVhZGVkOwor55Ww5q2lID4gYXN5bmNocm9ub3VzOwor6KOc5YWFID4gdG9cLXJlcGxlbmlzaDsKK+S+v+enmCA+IGNvbnN0aXBhdGlvbjsKK+eXheW6iiA+IGhvc3BpdGFsXC1iZWQ7Civmnpjpkb8gPiBpbmNvbXBhdGlibGU7Civlmq7lvoAgPiB0b1wteWVhcm5cLWZvcjsKK+iHquaLlCA+IGZyZWVcLW9uZXNlbGY7CivoiKrlpKkgPiBzcGFjZVwtZmxpZ2h0Owor5o2y5YWlID4gdG9cLWRyYXdcLWludG87Civpq5jlr4YgPiBoaWdoXC1kZW5zaXR5Owor6KGo5ZyfID4gc3VyZmFjZVwtc29pbDsKK+iznuitmCA+IGFwcHJlY2lhdGlvbjsKK+aFtuizgCA+IGNvbmdyYXR1bGF0ZTsKK+a2iOmZpCA+IHRvXC1lbGltaW5hdGU7CivooZflnYogPiBuZWlnaGJvcmhvb2Q7CivnkZ7oibIgPiBsb3ZlbHlcLWNvbG9yOwor6IG96KqqID4gdG9cLWhlYXJcLXRvbGQ7Civnlbblv4MgPiB0b1wtdGFrZVwtY2FyZTsKK+eVsOaApyA+IGhldGVyb3NleHVhbDsKK+S6pOmLkiA+IGNyb3NzXC1zd29yZHM7CivoiIjlpa4gPiBcKGJlXClcLWV4Y2l0ZWQ7CivlrofoiKogPiBzcGFjZVwtZmxpZ2h0Owor56a96aGeID4gYmlyZFwtc3BlY2llczsKK+WBveWWhCA+IGh5cG9jcml0aWNhbDsKK+aKseaEpyA+IGZlZWxcLWFzaGFtZWQ7CivosqDosqwgPiBpblwtY2hhcmdlXC1vZjsKK+ePvuihjCA+IGJlXC1pblwtZWZmZWN0Owor5bGI5pyNID4gdG9cLXN1cnJlbmRlcjsKK+a4m+e3qSA+IHRvXC1zbG93XC1kb3duOwor5LiL6b2SID4gYm90dG9tXC10ZWV0aDsKK+WqkumrlCA+IFwobmV3c1wpXC1tZWRpYTsKK+ern+eEtiA+IHVuZXhwZWN0ZWRseTsKK+mpmuaElSA+IGFzdG9uaXNobWVudDsKK+eVtuWgtCA+IGF0XC10aGVcLXNjZW5lOwor5ama6b2hID4gbWFycnlpbmdcLWFnZTsKK+aKseWxiCA+IGZlZWxcLXdyb25nZWQ7Civpo5/orZwgPiBjb29rZXJ5XC1ib29rOwor5Lim6Z2eID4gcmVhbGx5XC1pc24nJ3Q7CivnqoHnoLQgPiBicmVha3Rocm91Z2g7CivkvrXmmaggPiB0b3dhcmRzXC1kYXduOwor5ryi5Z+OID4gc2VvdWxcLFwta29yZWE7CivlsJHmlbggPiBzbWFsbFwtbnVtYmVyOwor55W25YidID4gYXRcLXRoYXRcLXRpbWU7Civmi4zlkowgPiBtaXhcLWFuZFwtc3RpcjsKK+a1gemAmiA+IHRvXC1jaXJjdWxhdGU7CivlkqjoqaIgPiBjb25zdWx0YXRpdmU7CivmiZLmi4kgPiBwdXNoXC1saWdodGx5Owor5bCI5pS/ID4gZGljdGF0b3JzaGlwOwor6aO86I2JID4gZm9yYWdlXC1ncmFzczsKK+m8u+iFlCA+IG5hc2FsXC1jYXZpdHk7CivmtbTooYAgPiBibG9vZFwtc29ha2VkOwor5L6d5pOaID4gYWNjb3JkaW5nXC10bzsKK+WxrOWciyA+IHZhc3NhbFwtc3RhdGU7Civpi7znrYYgPiBmb3VudGFpblwtcGVuOwor5YGJ5Lq6ID4gZ3JlYXRcLXBlcnNvbjsKK+WuieeHnyA+IHBpdGNoXC1hXC1jYW1wOwor5ZKM6KejID4gY29uY2lsaWF0b3J5Owor5a+m5pa9ID4gdG9cLWltcGxlbWVudDsKK+aineWtkCA+IGFcLXNob3J0XC1ub3RlOwor5qC55pysID4gXChub3RcKVwtYXRcLWFsbDsKK+eorueoriA+IGFsbFwta2luZHNcLW9mOwor5omL5biVID4gaGFuZGtlcmNoaWVmOwor5rOV6ZmiID4gY291cnRcLW9mXC1sYXc7CivmoLnmk5ogPiBhY2NvcmRpbmdcLXRvOwor5rKz6aasID4gaGlwcG9wb3RhbXVzOwor55Sf5ZG9ID4gbGlmZVwtXChmb3JjZVwpOwor5Li76KeSID4gbGVhZGluZ1wtcm9sZTsKK+a3q+eMpSA+IGFib21pbmF0aW9uczsKK+eUouWNtSA+IGxheVwtXChhblwtZWdnXCk7Civmnpznmq4gPiBcKGZydWl0XClcLXBlZWw7Civnjajoo4EgPiBkaWN0YXRvcnNoaXA7CivkuI3otrMgPiBpbnN1ZmZpY2llbnQ7CivlrrbmlL8gPiBob3VzZWtlZXBpbmc7CivkuI3osrIgPiBpbW1lYXN1cmFibGU7CivmmZrppJAgPiBldmVuaW5nXC1tZWFsOwor5L2c5oSbID4gdG9cLW1ha2VcLWxvdmU7CivomIfoga8gPiBzb3ZpZXRcLXVuaW9uOwor5a6z5oCVID4gdG9cLWJlXC1hZnJhaWQ7CivmmZrplpMgPiBldmVuaW5nXC10aW1lOwor5LqU55m+ID4gZml2ZVwtaHVuZHJlZDsKK+WSjOe0hCA+IHBlYWNlXC10cmVhdHk7CivorYnpqZcgPiByZWFsXC1yZXN1bHRzOwor5oeK5oKUID4gZmVlbFwtcmVtb3JzZTsKK+aJo+S4iiA+IHRvXC1idWNrbGVcLXVwOwor5L+E5LitID4gcnVzc2lhXC1jaGluYTsKK+S4gOiQrCA+IHRlblwtdGhvdXNhbmQ7CivororpgJ8gPiBzcGVlZFwtY2hhbmdlOwor5a6J5b+DID4gZmVlbFwtYXRcLWVhc2U7CivkurrmsJEgPiBcKHRoZVwpXC1wZW9wbGU7CivlsIfkvoYgPiBcKHRoZVwpXC1mdXR1cmU7CivpoYzoirEgPiB0aXRsZVwtZGVzaWduOwor5Y+v6KeAID4gY29uc2lkZXJhYmxlOwor5Lq65qyKID4gaHVtYW5cLXJpZ2h0czsKK+i2leS4iiA+IGtlZXBcLXVwXC13aXRoOwor6IKh5biCID4gc3RvY2tcLW1hcmtldDsKK+enu+awkSA+IHRvXC1pbW1pZ3JhdGU7Civmt7HmhJsgPiBhZmZlY3Rpb25hdGU7Civku4rmmaggPiB0aGlzXC1tb3JuaW5nOwor5a+G5Y+LID4gY2xvc2VcLWZyaWVuZDsKK+WtmOW/gyA+IGRlbGliZXJhdGVseTsKK+WNl+mdniA+IHNvdXRoXC1hZnJpY2E7CivkuI3nrKYgPiBpbmNvbnNpc3RlbnQ7CivlkYrnpLogPiBhbm5vdW5jZW1lbnQ7CivkuLnnlLAgPiBwdWJpY1wtcmVnaW9uOwor5Y2K6Z+/ID4gaGFsZlwtdGhlXC1kYXk7CivkuLvnkrAgPiBwcmltYXJ5XC1yaW5nOwor5L2g5YCRID4geW91XC1cKHBsdXJhbFwpOwor5LiA55u0ID4gY29udGludW91c2x5Owor5ae/6ImyID4gZ29vZFwtbG9va2luZzsKK+aal+eulyA+IHBsb3RcLWFnYWluc3Q7CivnqI3lvq4gPiBhXC1saXR0bGVcLWJpdDsKK+S6ruW6piA+IGlsbHVtaW5hdGlvbjsKK+WPg+iAgyA+IGNvbnN1bHRhdGlvbjsKK+S6uuWutiA+IG90aGVyXC1wZW9wbGU7Civlo6/pupcgPiBtYWduaWZpY2VuY2U7Civpu6jmlL8gPiBwYXJ0eVwtcG9saWN5Owor6JmQ5b6FID4gbWlzdHJlYXRtZW50Owor5oSf5oGpID4gdGhhbmtzZ2l2aW5nOwor572w55CDID4gcGVuYWx0eVwtc2hvdDsKK+iyu+WfjiA+IHBoaWxhZGVscGhpYTsKK+ayueeVqyA+IG9pbFwtcGFpbnRpbmc7Civnvo7mtLIgPiB0aGVcLWFtZXJpY2FzOwor6LKn5ZuwID4gaW1wb3ZlcmlzaGVkOwor5Lqe5aSqID4gYXNpYVwtcGFjaWZpYzsKK+Wkp+mHjyA+IGdyZWF0XC1hbW91bnQ7CivpoILnlKggPiB0b1wtYmVcLW9mXC11c2U7CivosrvlipsgPiBncmVhdFwtZWZmb3J0Owor5pqX54GYID4gaGlkZGVuXC1zaG9hbDsKK+iXpeaWuSA+IHByZXNjcmlwdGlvbjsKK+S4u+aMgSA+IHByZXNpZGVcLW92ZXI7CivpioDluZUgPiBtb3ZpZVwtc2NyZWVuOwor6ICB5a62ID4gbmF0aXZlXC1wbGFjZTsKK+aal+a9riA+IHVuZGVyY3VycmVudDsKK+iyt+WDuSA+IGJ1eWluZ1wtcHJpY2U7CivlpJrpgoogPiBtdWx0aWxhdGVyYWw7Civnj77ku6MgPiBtb2Rlcm5cLXRpbWVzOwor5LuW5Lq6ID4gb3RoZXJcLXBlcnNvbjsKK+S5i+W+jCA+IGFmdGVyXCh3YXJkc1wpOwor5oWj5L6LID4gY29udmVudGlvbmFsOwor5Lim5o6SID4gc2lkZVwtYnlcLXNpZGU7CivogJXlnLAgPiBhcmlhYmxlXC1sYW5kOwor5pqX5rWBID4gdW5kZXJjdXJyZW50Owor5rW05aC0ID4gYmF0aGluZ1wtc3BvdDsKK+S4jeaWmSA+IHVuZXhwZWN0ZWRseTsKK+iTi+iPnCA+IGxlYWZcLW11c3RhcmQ7CivorZjnoLQgPiB0b1wtcGVuZXRyYXRlOwor5LiN5ouYID4gbm90XC1zdGlja1wtdG87CivpvJPli7UgPiB0b1wtZW5jb3VyYWdlOwor6Z6t56CyID4gZmlyZWNyYWNrZXJzOwor5oSf5YuVID4gdG9cLW1vdmVcLVwoc2JcKTsKK+aEj+WRsyA+IHNpZ25pZmljYW5jZTsKK+S4jeaEpyA+IGJlXC13b3J0aHlcLW9mOwor5LiN5oSPID4gdW5leHBlY3RlZGx5Owor6Z2257SZID4gdGFyZ2V0XC1zaGVldDsKK+aEiOWKoCA+IGFsbFwtdGhlXC1tb3JlOwor6YGg6ZuiID4gcmVtb3ZlZFwtZnJvbTsKK+WSjOWWhCA+IGdvb2RcLW5hdHVyZWQ7Civoqo3orYkgPiBhdXRoZW50aWNhdGU7CivliKjpvZIgPiBnZWFyXC1zaGFwaW5nOwor5rOo5oSPID4gdGFrZVwtbm90ZVwtb2Y7CivwpomGID4gdG9cLWJyZWFrXC1vZmY7CivpoqjlkbMgPiBsb2NhbFwtZmxhdm9yOwor57mh6IqxID4gdG9cLWVtYnJvaWRlcjsKK+efpeitmCA+IGludGVsbGVjdHVhbDsKK+aal+aOoiA+IHNlY3JldFwtYWdlbnQ7CivmmrTmgJIgPiB2aW9sZW50XC1yYWdlOwor5LiN5a65ID4gbm90XC10b2xlcmF0ZTsKK+S4jeWunCA+IG5vdFwtc3VpdGFibGU7Civniq/mr5IgPiBpbGxlZ2FsXC1kcnVnOwor5aSn6Ie0ID4gbW9yZVwtb3JcLWxlc3M7Civlpb3nnIsgPiBnb29kXC1sb29raW5nOwor5LiN5aaCID4gbm90XC1lcXVhbFwtdG87CivlvpfnpaggPiB2b3RlXC1nZXR0aW5nOwor5rS+5YilID4gZGVub21pbmF0aW9uOwor57ea6Lu4ID4gdGhyZWFkXC1zcG9vbDsKK+acieWIqSA+IGFkdmFudGFnZW91czsKK+iogumWsSA+IHN1YnNjcmlwdGlvbjsKK+aBouW+qSA+IHRvXC1yZWluc3RhdGU7CivpgJnpoIUgPiB0aGlzXC1cKHRoaW5nXCk7Civlj6/mg5wgPiBpdFwtaXNcLWFcLXBpdHk7CivlqZrlpJYgPiBleHRyYW1hcml0YWw7CivkuI3llq4gPiBub3RcLXRoZVwtb25seTsKK+mBi+mAgSA+IHRvXC10cmFuc3BvcnQ7CivkuYvkuIAgPiBvbmVcLW9mXC1cKHN0aFwpOwor5aKD6YGHID4gY2lyY3Vtc3RhbmNlOwor6YeO5b+DID4gd2lsZFwtc2NoZW1lczsKK+aVl+iIiCA+IGRpc2FwcG9pbnRlZDsKK+WNu+atpSA+IHRvXC1zdGVwXC1iYWNrOwor5Lit5L+EID4gY2hpbmFcLXJ1c3NpYTsKK+WNseauhiA+IGdyYXZlXC1kYW5nZXI7CivkuK3kup4gPiBjZW50cmFsXC1hc2lhOwor6K6K5oCnID4gZGVuYXR1cmF0aW9uOwor5Y6f5paZID4gcmF3XC1tYXRlcmlhbDsKK+S4jeWIqSA+IHVuZmF2b3VyYWJsZTsKK+S4gOWNgyA+IG9uZVwtdGhvdXNhbmQ7CivniIbnmbwgPiB0b1wtYnJlYWtcLW91dDsKK+WkmuermSA+IG11bHRpc3RhdGlvbjsKK+awp+awoyA+IG94eWdlblwtXChnYXNcKTsKK+W/teaXpSA+IG1lbW9yaWFsXC1kYXk7CivlkITlnIsgPiBlYWNoXC1jb3VudHJ5Owor5LiN5L6/ID4gaW5jb252ZW5pZW50Owor5pmC5oWLID4gXCh2ZXJiXClcLXRlbnNlOwor576F5YiXID4gdG9cLXNwZWFkXC1vdXQ7CivkuIDlhIQgPiAxXC0wMFwtbWlsbGlvbjsKK+W+qea0uyA+IHJlc3VycmVjdGlvbjsKK+aatOWLlSA+IGluc3VycmVjdGlvbjsKK+mdtuapnyA+IHRhcmdldFwtZHJvbmU7CivpgYvooYwgPiBiZVwtaW5cLW1vdGlvbjsKK+e3qOiIniA+IGNob3Jlb2dyYXBoeTsKK+avlOeFpyA+IGFjY29yZGluZ1wtdG87Civlo5PnuK4gPiB0b1wtY29tcHJlc3M7CivoqKroj68gPiB2aXNpdFwtY2hpbmE7Civoqo3nn6UgPiBhY2tub3dsZWRnZTsKK+WPq+WWiiA+IGV4Y2xhbWF0aW9uOwor6YCj6KmeID4gY29uanVuY3Rpb247CivlvIrnq68gPiBtYWxwcmFjdGljZTsKK+mdnuaguCA+IG5vblwtbnVjbGVhcjsKK+aUtuepqyA+IGFjcXVpc2l0aW9uOwor5rCR5pePID4gbmF0aW9uYWxpdHk7CivmmpfkupUgPiBibGluZFwtc2hhZnQ7CivmmpfkuK0gPiBpblwtdGhlXC1kYXJrOwor55+a55uuID4gdG9cLWZvY3VzXC1vbjsKK+W4g+meiyA+IGNsb3RoXC1zaG9lczsKK+Wfi+mgrSA+IHN0ZWFtZWRcLWJ1bjsKK+WIpOiZlSA+IHRvXC1zZW50YW5jZTsKK+WIu+iLpiA+IGhhcmR3b3JraW5nOwor5qiZ6bueID4gcHVuY3R1YXRpb247Civnmb3purUgPiB3aGVhdFwtZmxvdXI7CivlhpLpmqogPiB0YWtlXC1hXC1yaXNrOwor55m96ba0ID4gd2hpdGVcLWNyYW5lOwor5b6A5piUID4gaW5cLXRoZVwtcGFzdDsKK+mCiueWhiA+IGJvcmRlclwtYXJlYTsKK+iuk+S9jSA+IHRvXC1hYmRpY2F0ZTsKK+aAquWDuyA+IHBlY3VsaWFyaXR5Owor5b6B5pS2ID4gbGV2eVwtXChmaW5lXCk7Civmr43mnb8gPiBtb3RoZXJib2FyZDsKK+mcgOaxgiA+IHJlcXVpcmVtZW50Owor5aSn5qWtID4gZ3JlYXRcLWNhdXNlOwor5pe65a2jID4gYnVzeVwtc2Vhc29uOwor5b+F5a6aID4gYmVcLWJvdW5kXC10bzsKK+WNiuW5tCA+IGhhbGZcLWFcLXllYXI7CivoqrLmoYwgPiBzY2hvb2xcLWRlc2s7CivplpPpmpQgPiBjb21wYXJ0bWVudDsKK+mBsueWkSA+IHRvXC1oZXNpdGF0ZTsKK+mdiOaEnyA+IGluc3BpcmF0aW9uOwor5aSx5pWXID4gYmVcLWRlZmVhdGVkOwor6Kqq5pyNID4gdG9cLXBlcnN1YWRlOwor5Yi257SEID4gdG9cLXJlc3RyaWN0Owor6Z6P5Zu6ID4gY29uc29saWRhdGU7CivljIXmi6wgPiB0b1wtY29tcHJpc2U7CivlpqXlloQgPiBhcHByb3ByaWF0ZTsKK+i+r+iovCA+IGRpYWxlY3RpY2FsOwor54CJ6bm9ID4gZXBzb21cLXNhbHRzOwor6KSH6ZucID4gY29tcGxpY2F0ZWQ7CivljbPliLsgPiBpbW1lZGlhdGVseTsKK+WLmOaOoiA+IGV4cGxvcmF0aW9uOwor5Y2a5Y+WID4gdHJ5XC10b1wtZ2FpbjsKK+aUvuajhCA+IHRvXC1yZW5vdW5jZTsKK+WGsOibiyA+IGZyb3plblwtZWdnczsKK+mYu+ekmSA+IHRvXC1vYnN0cnVjdDsKK+i/veeptiA+IGludmVzdGlnYXRlOwor6YO15bGAID4gcG9zdFwtb2ZmaWNlOwor6ZuZ5pW4ID4gZXZlblwtbnVtYmVyOwor6JKQ5bCLID4gdG9cLWxvb2tcLWZvcjsKK+eZvemBkyA+IG1vb24nJ3NcLXBhdGg7Civli5XmhYsgPiBkZXZlbG9wbWVudDsKK+awuOS5hSA+IGV2ZXJsYXN0aW5nOwor55m86YCBID4gdG9cLXRyYW5zbWl0Owor6YWN5YKZID4gdG9cLWFsbG9jYXRlOwor6KyA5Y+WID4gdHJ5XC10b1wtZ2FpbjsKK+avlOWmgiA+IGZvclwtZXhhbXBsZTsKK+WkmuWxsSA+IG1vdW50YWlub3VzOwor6Zu75belID4gZWxlY3RyaWNpYW47CivntIXoibIgPiByZWRcLVwoY29sb3JcKTsKK+aPj+i/sCA+IHRvXC1kZXNjcmliZTsKK+WNgeWEhCA+IG9uZVwtYmlsbGlvbjsKK+WFteifuyA+IHNvbGRpZXJcLWFudDsKK+avgOWjniA+IGRlc3RydWN0aW9uOwor5YmK5ribID4gdG9cLWN1dFwtZG93bjsKK+aXpeS4rSA+IGphcGFuXC1jaGluYTsKK+maqOaZgiA+IGF0XC1hbnlcLXRpbWU7CivoqLzmm7ggPiBjZXJ0aWZpY2F0ZTsKK+mVt+irhyA+IGFcLWxvbmdcLXRhbGs7CivlpKflnosgPiBsYXJnZVwtc2NhbGU7Civoo5zpgbggPiBieVwtZWxlY3Rpb247CivokL3lvowgPiBmYWxsXC1iZWhpbmQ7CivmjqjpgbIgPiB0b1wtcG9zdHBvbmU7Civmk43ms5UgPiBkcmlsbFwtcnVsZXM7Civou43pmoogPiBhcm15XC10cm9vcHM7CivmqLnokYkgPiB0cmVlXC1sZWF2ZXM7CivliZvmnrYgPiByaWdpZFwtZnJhbWU7Civoq4fliLAgPiB0b1wtcmVmZXJcLXRvOwor5YaN6ICFID4gZnVydGhlcm1vcmU7Civoqr/liLYgPiB0b1wtbW9kdWxhdGU7Civln7rnn7MgPiBjb3JuZXJzdG9uZTsKK+W+gOS6iyA+IHBhc3RcLWV2ZW50czsKK+Wkp+WKnyA+IGdyZWF0XC1tZXJpdDsKK+ijgei7jSA+IGRpc2FybWFtZW50Owor6Kqh5ZG9ID4gY29tbWFuZG1lbnQ7Civlhafoh6MgPiBjaGFtYmVybGFpbjsKK+WdpuiVqSA+IG1hZ25hbmltb3VzOwor5o6i6KiOID4gaW52ZXN0aWdhdGU7Civlop7lvLcgPiB0b1wtaW5jcmVhc2U7CivpgbXlroggPiBjb21wbHlcLXdpdGg7CivpmZDmlrwgPiByZXN0cmljdFwtYXQ7CivplonntpMgPiBhbWVub3JyaG9lYTsKK+iqjeWHuiA+IHJlY29nbml0aW9uOwor5YWN6IG3ID4gZGVncmFkYXRpb247Civlt6XnqIsgPiBlbmdpbmVlcmluZzsKK+iomOW+lyA+IHRvXC1yZW1lbWJlcjsKK+aTuuW4gyA+IG9yZGVyXC1hYm91dDsKK+mAj+aYjiA+IHRyYW5zcGFyZW50Owor5Yqb5ZyWID4gdHJ5XC1oYXJkXC10bzsKK+i/veafpSA+IGludmVzdGlnYXRlOwor5YW456auID4gY2VsZWJyYXRpb247CivliJHmnJ8gPiBwcmlzb25cLXRlcm07Civnsr7nsKEgPiB0b1wtc2ltcGxpZnk7CivoirHojLYgPiBzY2VudGVkXC10ZWE7CivmlaPkvYggPiBkaXNzZW1pbmF0ZTsKK+imhua7hSA+IGRlc3RydWN0aW9uOwor57C/6KiYID4gYm9va2tlZXBpbmc7Civop7jmgJIgPiBwcm92b2NhdGlvbjsKK+aUquWSjCA+IHRvXC1taXhcLVwodXBcKTsKK+aPj+e5qiA+IHRvXC1kZXNjcmliZTsKK+mAseW5tCA+IGFubml2ZXJzYXJ5Owor57WV5pybID4gZGVzcGVyYXRpb247CivmlZfku5cgPiBsb3N0XC1iYXR0bGU7Civlop7lpJogPiB0b1wtaW5jcmVhc2U7CivntZDmnZ8gPiB0ZXJtaW5hdGlvbjsKK+eEoeaEjyA+IGluYWR2ZXJ0YW50Owor6YKK5Y2AID4gYm9yZGVyXC1hcmVhOwor55u45q+UID4gY29tcGFyZWRcLXRvOwor6KaG5rKSID4gYW5uaWhpbGF0ZWQ7CivnnInmoqIgPiB0aXBcLW9mXC1icm93Owor5YiH5o+bID4gdG9cLWN1dFwtb3ZlcjsKK+WFqeeZviA+IHR3b1wtaHVuZHJlZDsKK+ipleWDuSA+IHRvXC1ldmFsdWF0ZTsKK+W0qeijgiA+IGJ1cnN0XC1hcGFydDsKK+WKoOS7pSA+IGluXC1hZGRpdGlvbjsKK+aMiemIlSA+IHB1c2hcLWJ1dHRvbjsKK+i+sualrSA+IGFncmljdWx0dXJlOwor5aCx5oeJID4gcmV0cmlidXRpb247Civlub7lubQgPiBhXC1mZXdcLXllYXJzOwor55u85pybID4gdG9cLWhvcGVcLWZvcjsKK+maiuWToSA+IHRlYW1cLW1lbWJlcjsKK+ihjOi5pCA+IHdoZXJlYWJvdXRzOwor5pSv5LuYID4gcGF5XC1cKG1vbmV5XCk7Civooajoqp4gPiBwcmVkaWNhdGl2ZTsKK+iou+WGiiA+IHRvXC1yZWdpc3RlcjsKK+mZhOWxrCA+IHN1Ym9yZGluYXRlOwor5YG96LuNID4gcHVwcGV0XC1hcm15Owor5YSq56eAID4gb3V0c3RhbmRpbmc7Civpq5TosrwgPiBjb25zaWRlcmF0ZTsKK+Wft+aUvyA+IGJlXC1pblwtcG93ZXI7CivprZrnq78gPiBmaXNoaW5nXC1yb2Q7CivluIzmnJsgPiByb1wtd2lzaFwtZm9yOwor57SE5pyDID4gYXBwb2ludG1lbnQ7Civpq5Toqo0gPiByZWFsaXphdGlvbjsKK+W5uOWlvSA+IGZvcnR1bmF0ZWx5Owor5o6I57KJID4gcG9sbGluYXRpb247Civoo73niYcgPiBtb3ZpZW1ha2luZzsKK+apn+acgyA+IG9wcG9ydHVuaXR5Owor6Zec5oq8ID4gcHV0XC1pblwtamFpbDsKK+iomOS9jyA+IHRvXC1yZW1lbWJlcjsKK+eBjOa6iSA+IHRvXC1pcnJpZ2F0ZTsKK+mAmuWRiiA+IHRvXC1hbm5vdW5jZTsKK+mplemZvSA+IGJsYXppbmdcLXN1bjsKK+a/g+e4riA+IGNvbmNlbnRyYXRlOwor5ZyL57GNID4gbmF0aW9uYWxpdHk7CivliY3ku7sgPiBwcmVkZWNlc3NvcjsKK+i7n+einyA+IGZsb3BweVwtZGlzazsKK+i7n+ebpCA+IGZsb3BweVwtZGlzazsKK+Wxj+mWgCA+IHNjcmVlblwtZG9vcjsKK+aLnOioqiA+IHBheVwtYVwtdmlzaXQ7CivpgIDlh7ogPiB0b1wtd2l0aGRyYXc7CivmjqHnhaQgPiBjb2FsXC1taW5pbmc7CivlubPlh6EgPiBjb21tb25wbGFjZTsKK+aLrOiZnyA+IHBhcmVudGhlc2lzOwor5L6/6Z6LID4gY2xvdGhcLXNob2VzOwor5ruy6YCPID4gdG9cLXBlcm1lYXRlOwor5YG36IG9ID4gdG9cLWV2ZXNkcm9wOwor5Ye65YW1ID4gc2VuZFwtdHJvb3BzOwor5Z+55ZyfID4gdG9cLWVhcnRoXC11cDsKK+mWi+aIsCA+IHN0YXJ0XC1hXC13YXI7CivliIbkvYggPiBkaXN0cmlidXRlZDsKK+i/t+S6uiA+IGZhc2NpbmF0aW5nOwor5Ye65L6GID4gdG9cLWNvbWVcLW91dDsKK+S/oemBkyA+IHNpZ25hbFwtcGF0aDsKK+mtlOazlSA+IGVuY2hhbnRtZW50Owor55Sz6KuLID4gYXBwbHlcLVwoZm9yXCk7Civot5Hou4ogPiByYWNpbmdcLWJpa2U7Civmj4/mkbkgPiB0b1wtZGVzY3JpYmU7CivlhavlubQgPiBlaWdodFwteWVhcnM7CivnsYzmrL4gPiBmdW5kcmFpc2luZzsKK+Wfn+WQjSA+IGRvbWFpblwtbmFtZTsKK+WFq+WtlyA+IGNoYXJhY3RlclwtODsKK+ebuOS8vCA+IHRvXC1yZXNlbWJsZTsKK+aMqueUqCA+IHRvXC1lbWJlenpsZTsKK+eZvOWxlSA+IGRldmVsb3BtZW50Owor6KOd5omuID4gZHJlc3NcLXVwXC1hczsKK+WfjuWNgCA+IGNpdHlcLXByb3BlcjsKK+a6nemAmiA+IGNvbW11bmljYXRlOwor54K65LqGID4gaW5cLW9yZGVyXC10bzsKK+eZveWuriA+IHdoaXRlXC1ob3VzZTsKK+WGoOWGlSA+IHJveWFsXC1jcm93bjsKK+WDj+aooyA+IHByZXNlbnRhYmxlOwor5ben5ZCIID4gY29pbmNpZGVuY2U7CivmiLDou4ogPiB3YXJcLWNoYXJpb3Q7Civnmb3lpJwgPiB3aGl0ZVwtbmlnaHQ7CivoirHlupcgPiBmbG93ZXJcLXNob3A7Civmj4/lr6sgPiB0b1wtZGVzY3JpYmU7Civkvr/opr0gPiBicmllZlwtZ3VpZGU7CivoiIrniYggPiBvbGRcLXZlcnNpb247Civlm6DmraQgPiB0aGF0XC1pc1wtd2h5Owor5a+m6LiQID4gdG9cLXByYWN0aWNlOwor5bCL6KaTID4gdG9cLWxvb2tcLWZvcjsKK+eRnumbqiA+IHRpbWVseVwtc25vdzsKK+WFrOWFgyA+IFwoeWVhclwpXC1hXC5kXC47CivoibLmg4UgPiBwb3Jub2dyYXBoeTsKK+S+huioqiA+IHBheVwtYVwtdmlzaXQ7Civnmb3liIMgPiBuYWtlZFwtc3dvcmQ7Civnmbzlh7ogPiB0b1wtc2VuZFwtb3V0Owor5bCx6IG3ID4gdGFrZVwtb2ZmaWNlOwor5ouU54efID4gc3RyaWtlXC1jYW1wOwor5oqK56mpID4gdHJ1c3R3b3J0aHk7CivlrrnosowgPiBjb3VudGVuYW5jZTsKK+iIkuacjSA+IGNvbWZvcnRhYmxlOwor5omL57qMID4gZm9ybWFsaXRpZXM7CivmjInmnJ8gPiBvblwtc2NoZWR1bGU7CivouKnmsLQgPiB0cmVhZFwtd2F0ZXI7CivlrqPoqIAgPiBkZWNsYXJhdGlvbjsKK+S7v+mAoCA+IGNvdW50ZXJmZWl0Owor5a+m57+SID4gdG9cLXByYWN0aWNlOwor5YG35oe2ID4gdG9cLWdvb2ZcLW9mZjsKK+m8u+mfsyA+IG5hc2FsXC1zb3VuZDsKK+afpeitiSA+IGludmVzdGlnYXRlOwor55Kw57meID4gdG9cLXN1cnJvdW5kOwor5Zuw5aKDID4gcHJlZGljYW1lbnQ7Civmu7Lmv74gPiBwZXJjb2xhdGlvbjsKK+eXheWuuSA+IHNpY2tseVwtbG9vazsKK+aIkOe4viA+IHBlcmZvcm1hbmNlOwor5Lq66ZaTID4gbWFuJydzXC13b3JsZDsKK+err+ermSA+IGVuZFwtc3RhdGlvbjsKK+ihjeWwhCA+IGRpZmZyYWN0aW9uOwor5Zue5aCxID4gXChpblwpXC1yZXR1cm47Civmo5fmqLkgPiBqdWp1YmVcLXRyZWU7CivmiJbnqLEgPiBhbHNvXC1jYWxsZWQ7Civmi6zlvKcgPiBwYXJlbnRoZXNpczsKK+mrmOWjkyA+IGhpZ2hcLWhhbmRlZDsKK+S7suijgSA+IGFyYml0cmF0aW9uOwor5YC85b6XID4gdG9cLWJlXC13b3J0aDsKK+eVsOW4uCA+IGV4Y2VwdGlvbmFsOwor6Jqx6JyiID4gZ3Jhc3Nob3BwZXI7Civpkb3lrZQgPiBib3JlXC1hXC1ob2xlOwor55W25bGAID4gYXV0aG9yaXRpZXM7Civpq5jllLEgPiBzaW5nXC1sb3VkbHk7Civku4voqZ4gPiBwcmVwb3NpdGlvbjsKK+iInuWKhyA+IGRhbmNlXC1kcmFtYTsKK+WCkeWHuiA+IGlsbHVzdHJpb3VzOwor55aG5aC0ID4gYmF0dGxlZmllbGQ7Civkv6HmnI0gPiB0b1wtY29udmluY2U7CivohL7msKMgPiB0ZW1wZXJhbWVudDsKK+S4ium9kiA+IHVwcGVyXC10ZWV0aDsKK+aFsOiXiSA+IGNvbnNvbGF0aW9uOwor5p2/6KaPID4gcGxhdGVcLWdhdWdlOwor55eF5Lq6ID4gc2lja1wtcGVyc29uOwor6ZGS5a6aID4gdG9cLWFwcHJhaXNlOwor5YKZ5Lu2ID4gc3BhcmVcLXBhcnRzOwor55Sf5oiQID4gYmVcLXByb2R1Y2VkOwor5L6/5qG2ID4gY2hhbWJlclwtcG90Owor6ISr5rCnID4gZGVveGlkYXRpb247Civmg4XpoZggPiB3aWxsaW5nbmVzczsKK+eUn+aFiyA+IHdheVwtb2ZcLWxpZmU7CivmjIflh7ogPiB0b1wtaW5kaWNhdGU7CivmiYHmoYMgPiBhbG1vbmRcLXRyZWU7Civot4vmiYggPiBkb21pbmVlcmluZzsKK+S/ruW+qSA+IHJlc3RvcmF0aW9uOwor562G5b+DID4gcGVuY2lsXC1sZWFkOwor5L+h5oGvID4gaW5mb3JtYXRpb247CivkuI3poacgPiBpblwtc3BpdGVcLW9mOwor56uL5rOVID4gbGVnaXNsYXRpb247CivlsI3mlrkgPiBjb3VudGVycGFydDsKK+epuueZvSA+IGJsYW5rXC1zcGFjZTsKK+eUt+WlsyA+IG1hbGVcLWZlbWFsZTsKK+eVtuWBmiA+IHRvXC10cmVhdFwtYXM7Civot5vlrZAgPiBsYW1lXC1wZXJzb247CivkupTokKwgPiA1MFwtdGhvdXNhbmQ7CivmnInotqMgPiBpbnRlcmVzdGluZzsKK+S/neWtmCA+IHRvXC1jb25zZXJ2ZTsKK+a3mOelniA+IHRyb3VibGVzb21lOwor562G5aKoID4gcGVuXC1hbmRcLWluazsKK+iWkemkhSA+IGdpbmdlcmJyZWFkOwor5rqr5bqmID4gdGVtcGVyYXR1cmU7Civot5Hlo5ggPiBiYXNlcnVubmluZzsKK+icnOahgyA+IGhvbmV5XC1wZWFjaDsKK+mRkuS6jiA+IGluXC1saWdodFwtb2Y7Civlj6/pqZogPiBhc3RvbmlzaGluZzsKK+S+v+WunCA+IGluZXhwZW5zaXZlOwor5LiN6L+tID4gY2Fubm90XC1jb3BlOwor5omL5a+rID4gaGFuZHdyaXRpbmc7CivkuIvovIkgPiB0b1wtZG93bmxvYWQ7CivouI/kuIogPiBzZXRcLWZvb3RcLW9uOwor5L2c5paHID4gY29tcG9zaXRpb247Civmu7LlhaUgPiB0b1wtcGVybWVhdGU7CivnkrDlvaIgPiByaW5nXC1zaGFwZWQ7CivkvYjmma8gPiBcKHN0YWdlXClcLXNldDsKK+aIkuW+iyA+IGNvbW1hbmRtZW50Owor6ama5Lq6ID4gYXN0b25pc2hpbmc7CivpqLfli5UgPiBkaXN0dXJiYW5jZTsKK+aCsuingCA+IHBlc3NpbWlzdGljOwor5bGs5LiLID4gc3Vib3JkaW5hdGU7Civnvo7osowgPiBnb29kbG9va2luZzsKK+eUqOS7pSA+IGluXC1vcmRlclwtdG87Civpurvol6UgPiBhbmFlc3RoZXRpYzsKK+Wwj+WeiyA+IHNtYWxsXC1zY2FsZTsKK+aIsOWgtCA+IGJhdHRsZWZpZWxkOwor6aGM6KmeID4gaW5zY3JpcHRpb247CivkvovlpoIgPiBmb3JcLWV4YW1wbGU7CivotqPlkbMgPiB0b1wtaW50ZXJlc3Q7Civkv6Hku7AgPiBmaXJtXC1iZWxpZWY7CivogqHmnbEgPiBzdG9ja2hvbGRlcjsKK+mOruWjkyA+IHN1cHByZXNzaW9uOwor5p2/54mZID4gZnJvbnRcLXRvb3RoOwor5rOz6KSyID4gc3dpbVwtdHJ1bmtzOwor5qKd5L6LID4gcmVndWxhdGlvbnM7CivlkIzos6ogPiBob21vZ2VuZW91czsKK+eSsOWigyA+IGVudmlyb25tZW50Owor6aGv6JGXID4gb3V0c3RhbmRpbmc7Civkuoznmb4gPiB0d29cLWh1bmRyZWQ7CivlsLHku7sgPiB0YWtlXC1vZmZpY2U7CivmnpzmsYEgPiBmcnVpdFwtanVpY2U7CivogJXnlZwgPiBmYXJtXC1hbmltYWw7Civph43ov5QgPiByZXR1cm5cLVwodG9cKTsKK+S4i+iQvSA+IHdoZXJlYWJvdXRzOwor5Lif6IeJID4gaHVtaWxpYXRpb247Civms5Xopo8gPiBsZWdpc2xhdGlvbjsKK+aIkeWciyA+IG91clwtY291bnRyeTsKK+S9iOWxgCA+IGFycmFuZ2VtZW50Owor6K6K6YCaID4gYmVcLWZsZXhpYmxlOwor6by75raVID4gbmFzYWxcLW11Y3VzOwor6LK45qy+ID4gXChiYW5rXClcLWxvYW47CivmupblgpkgPiBwcmVwYXJhdGlvbjsKK+WuieW6tyA+IGdvb2RcLWhlYWx0aDsKK+mgkOioiCA+IHRvXC1mb3JlY2FzdDsKK+iBsOaYjiA+IGludGVsbGlnZW50Owor6YeP6KmeID4gbWVhdXJlXC13b3JkOwor56uL5Y2zID4gaW1tZWRpYXRlbHk7CivlkI3okZcgPiBtYXN0ZXJwaWVjZTsKK+S7u+aEjyA+IGFyYml0cmFyaWx5Owor5a6J5a62ID4gc2V0dGxlXC1kb3duOwor6aWS5oGVID4gZm9yZ2l2ZW5lc3M7CivlroflrpkgPiBvdXRlclwtc3BhY2U7CivnkZ7lo6sgPiBzd2l0emVybGFuZDsKK+WWh+WPrSA+IGxvdWRzcGVha2VyOwor5oiQ5Lu9ID4gY29tcG9zaXRpb247Civpp4HlgJIgPiBkZW1vbGlzaFwtc2I7CivmtbTmsaAgPiBwdWJsaWNcLWJhdGg7Civku6XlvoAgPiBpblwtdGhlXC1wYXN0Owor6aGv55uuID4gb3V0c3RhbmRpbmc7CivlpZTpprMgPiBydW5cLXF1aWNrbHk7Civnj77lubQgPiBjdXJyZW50XC1hZ2U7CivpiJTnpaggPiBwYXBlclwtbW9uZXk7CivnpLrnr4QgPiBkZW1vbnN0cmF0ZTsKK+aZuuiDvSA+IGludGVsbGlnZW50Owor5Lqk5o+bID4gdG9cLWV4Y2hhbmdlOwor6aKo5rOiID4gZGlzdHVyYmFuY2U7Civol6XniakgPiBtZWRpY2FtZW50czsKK+mEmemZiyA+IHN1cGVyZmljaWFsOwor6ICD5p+lID4gaW52ZXN0aWdhdGU7CivlpJzptq8gPiBuaWdodGluZ2FsZTsKK+mkkOW7syA+IGRpbmluZ1wtaGFsbDsKK+WMl+mfkyA+IG5vcnRoXC1rb3JlYTsKK+S6kuaPmyA+IHRvXC1leGNoYW5nZTsKK+WogeiEhSA+IHRvXC10aHJlYXRlbjsKK+epuuWJjSA+IHVucHJlY2VkZW50Owor6aCQ57SEID4gcmVzZXJ2YXRpb247CivnorDoposgPiB0b1wtcnVuXC1pbnRvOwor5p+l5Ye6ID4gdG9cLWZpbmRcLW91dDsKK+WNiumCiiA+IGhhbGZcLW9mXC1zdGg7CivmmpfnpLogPiBkcm9wXC1hXC1oaW50Owor5Lqk5b6AID4gYXNzb2NpYXRpb247CivmsKPos6ogPiB0ZW1wZXJhbWVudDsKK+abuOazlSA+IGNhbGxpZ3JhcGh5Owor5Y2T6LaKID4gZGlzdGluY3Rpb247CivogqHlg7kgPiBzdG9ja1wtcHJpY2U7CivkuZ3mnIggPiBuaW50aFwtbW9udGg7CivkuLvmrIogPiBzb3ZlcmVpZ250eTsKK+WkmumkmCA+IHN1cGVyZmx1b3VzOwor5oGw55W2ID4gYXBwcm9wcmlhdGU7Civogb3lj5YgPiBoZWFyXC1cKG5ld3NcKTsKK+aEn+aApyA+IHNlbnNpYmlsaXR5Owor5ZWG5Lq6ID4gYnVzaW5lc3NtYW47CivnpoHmraIgPiB0b1wtcHJvaGliaXQ7Civnp4nmib8gPiB0YWtlXC1vcmRlcnM7CivllK7lg7kgPiB0b1wtc2VsbFwtZm9yOwor5ayM5aqaID4gZmxpcnRhdGlvdXM7CivpoIHnorwgPiBwYWdlXC1udW1iZXI7CivkuqTlqr4gPiB0b1wtaGF2ZVwtc2V4Owor5LiK5rWBID4gdXBwZXJcLWNsYXNzOwor6Zy46YGTID4gb3ZlcmJlYXJpbmc7Civms6LngL4gPiBncmVhdFwtd2F2ZXM7Civms6Lmv6QgPiBncmVhdFwtd2F2ZXM7CivkuI3mraIgPiBpbmNlc3NhbnRseTsKK+eIreitsCA+IGNvbnRyb3ZlcnN5Owor5Lit5p2xID4gbWlkZGxlXC1lYXN0Owor5Li55pa5ID4gZm9sa1wtcmVtZWR5Owor6YeN55aKID4gb3ZlcmxhcHBpbmc7CivkuK3ml6UgPiBjaGluYVwtamFwYW47CivlkJ7mspIgPiB0b1wtZW1iZXp6bGU7Civph43nj74gPiB0b1wtcmVhcHBlYXI7Civpo5/loIIgPiBkaW5pbmdcLWhhbGw7Civmm7LmipggPiBjb21wbGljYXRlZDsKK+mdtuiIuSA+IHRhcmdldFwtc2hpcDsKK+WNg+iQrCA+IHRlblwtbWlsbGlvbjsKK+S4gOaciCA+IGZpcnN0XC1tb250aDsKK+eKr+eXhSA+IHRvXC1mYWxsXC1pbGw7CivlkIzmraUgPiBzeW5jaHJvbm91czsKK+WTuuS5syA+IGJyZWFzdFwtZmVlZDsKK+iqv+iuiiA+IHRvXC1tb2R1bGF0ZTsKK+S4u+W8tSA+IHRvXC1hZHZvY2F0ZTsKK+WpmuacnyA+IHdlZGRpbmdcLWRheTsKK+aal+auuiA+IGFzc2Fzc2luYXRlOwor5q+b6J+yID4gY2F0ZXJwaWxsYXI7CivkuLvluK0gPiBjaGFpcnBlcnNvbjsKK+mCiumZsiA+IGJvcmRlclwtYXJlYTsKK+WNseevpCA+IGRlYXRobHlcLWlsbDsKK+S6kuWLlSA+IGludGVyYWN0aXZlOwor5aaW57K+ID4gZXZpbFwtc3Bpcml0Owor5Lit5bm0ID4gbWlkZGxlXC1hZ2VkOwor6LKd5LiYID4gc2hlbGxcLW1vdW5kOwor5oSP5ZCRID4gZGlzcG9zaXRpb247CivmsojmvrEgPiBwcmVjaXBpdGF0ZTsKK+WPluaxuiA+IGRlcGVuZFwtdXBvbjsKK+e5geikhyA+IGNvbXBsaWNhdGVkOwor6ZqU6ZuiID4gdG9cLXNlcGFyYXRlOwor5LiJ5bm0ID4gdGhyZWVcLXllYXJzOwor6ZqU6ZaLID4gdG9cLXNlcGFyYXRlOwor8KG9sSA+IGFcLWhpZ2hcLWhpbGw7CivkuIvlsawgPiBzdWJvcmRpbmF0ZTsKK+S4iuWxpCA+IHVwcGVyXC1sYXllcjsKK+e5vOe6jCA+IHRvXC1jb250aW51ZTsKK+Wjr+ingCA+IHNwZWN0YWN1bGFyOwor5pS/6K6KID4gY291cFwtZCcnZXRhdDsKK+elnuWtuCA+IHRoZW9sb2dpY2FsOwor57mB6I+vID4gZmxvdXJpc2hpbmc7CivpoYzlrZcgPiBpbnNjcmlwdGlvbjsKK+WQiOW9sSA+IGpvaW50XC1waG90bzsKK+WmgueVqyA+IHBpY3R1cmVzcXVlOwor5LiN5aCqID4gY2Fubm90XC1iZWFyOwor6Jel5ZOBID4gbWVkaWNhbWVudHM7CivpoIbmh4kgPiBjb21wbHlcLXdpdGg7CivntYLpu54gPiBkZXN0aW5hdGlvbjsKK+eIhueruSA+IGZpcmVjcmFja2VyOwor5b6X55eFID4gdG9cLWZhbGxcLWlsbDsKK+mAj+mcsiA+IHRvXC1sZWFrXC1vdXQ7CivpmLvpmpQgPiB0b1wtc2VwYXJhdGU7CivnibnmrIogPiBwcmVyb2dhdGl2ZTsKK+WkquepuiA+IG91dGVyXC1zcGFjZTsKK+WIhumboiA+IHRvXC1zZXBlcmF0ZTsKK+emgeS7pCA+IHByb2hpYml0aW9uOwor5LiN5YWNID4gdW5hdm9pZGFibGU7CivoqpPntIQgPiBob25vclwtYm91bmQ7CivorYnmm7ggPiBjcmVkZW50aWFsczsKK+ayiOaAnSA+IGNvbnRlbXBsYXRlOwor6Kej6YeLID4gZXhwbGFuYXRpb247CivliIbplosgPiB0b1wtc2VwYXJhdGU7CivnpIHls7YgPiByZWVmXC1pc2xhbmQ7CivpgJrpgY4gPiBieVwtbWVhbnNcLW9mOwor6L+O6aKoID4gaW5cLXRoZVwtd2luZDsKK+S4iuS7uyA+IHRha2VcLW9mZmljZTsKK+WmguatpCA+IGluXC10aGlzXC13YXk7Civoq5bniK0gPiBjb250cm92ZXJzeTsKK+aCoOS5hSA+IGVzdGFibGlzaGVkOwor5LiK5LiLID4gdXBcLWFuZFwtZG93bjsKK+aBkOWahyA+IHRvXC10aHJlYXRlbjsKK+e0oOmjnyA+IHZlZ2V0YWJsZXM7CivnuK7nn60gPiB0b1wtY3VydGFpbDsKK+aUuee1hCA+IHJlb3JnYW5pemU7Civmk4HorbcgPiB0b1wtZW5kb3JzZTsKK+mAsuihjCA+IHRvXC1hZHZhbmNlOwor5aWU5rOiID4gcnVzaFwtYWJvdXQ7Civlvozmr40gPiBzdGVwbW90aGVyOwor5pWj55m8ID4gZGlzdHJpYnV0ZTsKK+WkseeBqyA+IGNhdGNoXC1maXJlOwor6KqV55SfID4gdG9cLWJlXC1ib3JuOwor5aSa54i+ID4gXChib2JcKVwtZG9sZTsKK+W9vOatpCA+IGVhY2hcLW90aGVyOwor6aCQ5YWIID4gYmVmb3JlaGFuZDsKK+mXnOmWgCA+IGNsb3NlXC1kb3duOwor6YGV6IOMID4gdG9cLXZpb2xhdGU7CivntbHoqIggPiBzdGF0aXN0aWNzOwor5Ye96LO8ID4gbWFpbFwtb3JkZXI7CivpoJDlgpkgPiB0b1wtcHJlcGFyZTsKK+WjgeeriyA+IFwob2ZcLWNsaWZmczsKK+aYpeWtoyA+IHNwcmluZ3RpbWU7CivmkZjpjIQgPiB0b1wtZXh0cmFjdDsKK+mgkuS9iCA+IHByb211bGdhdGU7Civmr4/mrKEgPiBldmVyeVwtdGltZTsKK+e3qOeoiyA+IHRvXC1wcm9ncmFtOwor5YiG6KmeID4gcGFydGljaXBsZTsKK+W+jOacnyA+IGxhdGVcLXN0YWdlOwor5pWI55SoID4gdXNlZnVsbmVzczsKK+ezp+mjnyA+IGZvb2RzdHVmZnM7CivojZLph44gPiB3aWxkZXJuZXNzOwor5pKS6KyKID4gdGVsbFwtYVwtbGllOwor54eD54eSID4gY29tYnVzdGlvbjsKK+W8hOebtCA+IHN0cmFpZ2h0ZW47Civpgbfnp7sgPiB0b1wtbWlncmF0ZTsKK+Wkp+awoyA+IGF0bW9zcGhlcmU7Civoqo3ngrogPiB0b1wtYmVsaWV2ZTsKK+mZjeiQvSA+IHRvXC1kZXNjZW5kOwor5YmN6ICFID4gdGhlXC1mb3JtZXI7CivmlYjnjocgPiBlZmZpY2llbmN5Owor6Z225b+DID4gYnVsbCcnc1wtZXllOwor5YuD54S2ID4gYWdpdGF0ZWRseTsKK+ein+WtkCA+IHNtYWxsXC1kaXNoOwor6Kyb5birID4gaW5zdHJ1Y3RvcjsKK+WPluS7oyA+IHN1YnN0aXR1dGU7CivmlrDmlZkgPiBwcm90ZXN0YW50Owor5aSa5qyhID4gbWFueVwtdGltZXM7CivlpYfmlbggPiBvZGRcLW51bWJlcjsKK+W/heWwhyA+IGluZXZpdGFibHk7CivpmbDnsr4gPiBzZXhcLWZsdWlkczsKK+WmluWsiCA+IGVuY2hhbnRpbmc7Civni4LkuoIgPiBoeXN0ZXJpY2FsOwor57mB5qauID4gcHJvc3Blcm91czsKK+e5vOaJvyA+IHRvXC1pbmhlcml0Owor5pON57ixID4gdG9cLW9wZXJhdGU7CivlhajpnaIgPiBhbGxcLWFyb3VuZDsKK+WOmOWNhyA+IGNlbnRpbGl0ZXI7Civoqr/mlbQgPiBhZGp1c3RtZW50Owor5aaT5aWzID4gcHJvc3RpdHV0ZTsKK+iNkuisrCA+IHJpZGljdWxvdXM7Civnmb3poK0gPiBob2FyeVwtaGVhZDsKK+axuuS4jSA+IG5vdFwtYXRcLWFsbDsKK+iqquaYjiA+IHRvXC1leHBsYWluOwor5Ye66ImyID4gcmVtYXJrYWJsZTsKK+Wls+WpvyA+IHNvblwtaW5cLWxhdzsKK+eJueWIpSA+IGVzcGVjaWFsbHk7CivlhY3pmaQgPiB0b1wtcHJldmVudDsKK+WmpeWNlCA+IGNvbXByb21pc2U7Civlt6jovKogPiBsYXJnZVwtc2hpcDsKK+eGhOa7hSA+IGV4dGluZ3Vpc2g7CivnhafniYcgPiBwaG90b2dyYXBoOwor6ZmE562GID4gcG9zdHNjcmlwdDsKK+imquiHqiA+IHBlcnNvbmFsbHk7CivmlLnmraMgPiB0b1wtY29ycmVjdDsKK+WNiuWckyA+IHNlbWljaXJjbGU7CivpgZXniq8gPiB0b1wtdmlvbGF0ZTsKK+eIreWlqiA+IGZpZ2h0XC1vdmVyOwor55+t5pyfID4gc2hvcnRcLXRlcm07Civmr4/lubQgPiBldmVyeVwteWVhcjsKK+aVteaJiyA+IGFudGFnb25pc3Q7CivljbDlg48gPiBpbXByZXNzaW9uOwor57K+6YCaID4gcHJvZmljaWVudDsKK+W+iOWkpyA+IHRyZW1lbmRvdXM7Civnmb3phZIgPiBzcGlyaXRcLXVzdTsKK+aYjuS6riA+IGJyaWdodG5lc3M7CivojYnojpMgPiBzdHJhd2JlcnJ5Owor5aCx56ugID4gbmV3c3BhcGVyczsKK+WkmuW5tCA+IG1hbnlcLXllYXJzOwor6Kqe5b2ZID4gdm9jYWJ1bGFyeTsKK+aXqeWFiCA+IHByZXZpb3VzbHk7CivniYzlg7kgPiBsaXN0XC1wcmljZTsKK+W3q+ihkyA+IHdpdGNoY3JhZnQ7CivpgY7muKEgPiB0cmFuc2l0aW9uOwor5o6i6ZqqID4gdG9cLWV4cGxvcmU7CivlpKflrbggPiB1bml2ZXJzaXR5Owor54Sh55CGID4gaXJyYXRpb25hbDsKK+WNiuWDuSA+IGhhbGZcLXByaWNlOwor5Y2A5YilID4gZGlmZmVyZW5jZTsKK+aWh+WtuCA+IGxpdGVyYXR1cmU7Civlvp7liY0gPiBwcmV2aW91c2x5Owor6Zec6IGvID4gYmVcLXJlbGF0ZWQ7CivlnLDpnIcgPiBlYXJ0aHF1YWtlOwor6KeA55y+ID4gc3BlY3RhdG9yczsKK+aOkumaiiA+IHRvXC1saW5lXC11cDsKK+WIhueZvCA+IGRpc3RyaWJ1dGU7CivmlKrmk74gPiB0b1wtZGlzdHVyYjsKK+aVuOWtuCA+IG1hdGhlbWF0aWM7CivnhrHlv4MgPiBlbnRodXNpYXNtOwor6Zu75a2QID4gZWxlY3Ryb25pYzsKK+eZveipsSA+IHZlcm5hY3VsYXI7Civngrjns5UgPiBmcmllZFwtY2FrZTsKK+WghuepjSA+IGFjY3VtdWxhdGU7CivmlaPlsIQgPiBzY2F0dGVyaW5nOwor6JOL5LiWID4gdW5yaXZlbGxlZDsKK+e3qOaOkiA+IHRvXC1hcnJhbmdlOwor5o2V6a2aID4gY2F0Y2hcLWZpc2g7Civlh7rnlJ8gPiB0b1wtYmVcLWJvcm47CivlhYHoq74gPiB0b1wtcHJvbWlzZTsKK+iqv+WSjCA+IGhhcm1vbmlvdXM7CivlvozkvoYgPiBhZnRlcndhcmRzOwor5aSn5ZacID4gZXh1bHRhdGlvbjsKK+aUv+W6nCA+IGdvdmVybm1lbnQ7CivoqK3mlr0gPiBmYWNpbGl0aWVzOwor5pa55L6/ID4gY29udmVuaWVudDsKK+aOpemAmiA+IHRvXC1jb25uZWN0Owor5q2k5b6MID4gYWZ0ZXJcLXRoaXM7CivluqfmqJkgPiBjb29yZGluYXRlOwor57aT5q23ID4gZXhwZXJpZW5jZTsKK+aoguingCA+IG9wdGltaXN0aWM7CivlpKrlj6QgPiBpbW1lbW9yaWFsOwor6Zui5amaID4gdG9cLWRpdm9yY2U7Civnh4jloZQgPiBsaWdodGhvdXNlOwor5Ye654mIID4gdG9cLXB1Ymxpc2g7CivoqoflpKcgPiBleGFnZ2VyYXRlOwor5YW16Ii5ID4gbWFuXC1vZlwtd2FyOwor5Yqg5beeID4gY2FsaWZvcm5pYTsKK+WCt+miqCA+IGNhdGNoXC1jb2xkOwor5pS+5bCEID4gdG9cLXJhZGlhdGU7Civmr5TkvosgPiBwcm9wb3J0aW9uOwor6YG35b6ZID4gdG9cLW1pZ3JhdGU7CivpmqjlvowgPiBzb29uXC1hZnRlcjsKK+WJjeaZryA+IGZvcmVncm91bmQ7Civpgbflu7YgPiBsb25nXC1kZWxheTsKK+ijnOiqniA+IGNvbXBsZW1lbnQ7CivliqDlr4YgPiB0b1wtZW5jcnlwdDsKK+aVtOWQiCA+IHRvXC1jb25mb3JtOwor6YGV5oqXID4gdG9cLWRpc29iZXk7Civnm6PnnaMgPiB0b1wtY29udHJvbDsKK+aWh+WFtyA+IHN0YXRpb25lcnk7Civmr4/kurogPiBwZXJcLXBlcnNvbjsKK+mYu+atoiA+IHRvXC1wcmV2ZW50Owor6Ziy5rC0ID4gd2F0ZXJwcm9vZjsKK+mYsuatoiA+IHRvXC1wcmV2ZW50Owor6YCA5q2lID4gZGVnZW5lcmF0ZTsKK+mBqeW6piA+IG1vZGVyYXRlbHk7CivpgaDlvoEgPiBleHBlZGl0aW9uOwor55m96IeJID4gd2hpdGVcLWZhY2U7CivnuL3lhbEgPiBhbHRvZ2V0aGVyOwor6Kej5p6QID4gdG9cLWFuYWx5emU7CivoqablnJYgPiB0b1wtYXR0ZW1wdDsKK+iJpui8iSA+IHNoaXBcLWJhc2VkOwor55+l5ZCNID4gd2VsbFwta25vd247CivlpJrkuosgPiBtZWRkbGVzb21lOwor5Yaw55CDID4gaWNlXC1ob2NrZXk7Civop6PmlL4gPiBsaWJlcmF0aW9uOwor5YG96aCCID4gZmFsc2VcLXJvb2Y7Civpq5jpmo4gPiBoaWdoXC1sZXZlbDsKK+aNj+mAoCA+IHRvXC1tYWtlXC11cDsKK+WIhuaekCA+IHRvXC1hbmFseXplOwor5pOB5oqxID4gdG9cLWVtYnJhY2U7Civpm7bkuIsgPiBiZWxvd1wtemVybzsKK+W3rueVsCA+IGRpZmZlcmVuY2U7CivmlL7lh7ogPiB0b1wtbGV0XC1vZmY7Civlhaznn7MgPiBoZWN0b2xpdGVyOwor5pS75YWLID4gdG9cLWNhcHR1cmU7CivloLHmlbggPiBudW1iZXJcLW9mZjsKK+aUtuWFpSA+IHRvXC10YWtlXC1pbjsKK+ipnuWFuCA+IGRpY3Rpb25hcnk7CivoqK3lnKggPiBsb2NhdGVkXC1hdDsKK+mZkOW6piA+IGxpbWl0YXRpb247Civoo7Hns4ogPiB3YWxsXC1wYXBlcjsKK+aqouafpSA+IGluc3BlY3Rpb247CivngIbogbcgPiB3cm9uZ2RvaW5nOwor5bqH5buVID4gXChvZlwtYVwtdHJlZTsKK+mZsOWkqSA+IGNsb3VkeVwtZGF5Owor57WC5pa8ID4gZXZlbnR1YWxseTsKK+ioguWpmiA+IGVuZ2FnZW1lbnQ7Civpmbjln7ogPiBsYW5kXC1iYXNlZDsKK+W7muWPuCA+IGNvb2tcLFwtY2hlZjsKK+WCs+iqqiA+IGl0XC1pc1wtc2FpZDsKK+mrmOmAnyA+IGhpZ2hcLXNwZWVkOwor5Yi25a6aID4gdG9cLWRyYXdcLXVwOwor6YCf5bCEID4gcmFwaWRcLWZpcmU7CivpgbrlgrMgPiBoZXJlZGl0YXJ5Owor6IiJ6L6mID4gdG9cLWNvbmR1Y3Q7CivliKnlrrMgPiBmb3JtaWRhYmxlOwor5pSq5LqCID4gdG9cLWNvbmZ1c2U7CivlhaXnjYQgPiBnb1wtdG9cLWphaWw7CivnsbPnsokgPiByaWNlXC1mbG91cjsKK+ezvuatoyA+IHRvXC1jb3JyZWN0Owor6Kaq5omLID4gcGVyc29uYWxseTsKK+i+suadkSA+IHJ1cmFsXC1hcmVhOwor5Ymv5YiKID4gc3VwcGxlbWVudDsKK+aTjeWgtCA+IHBsYXlncm91bmQ7Civln7rmlrwgPiBiZWNhdXNlXC1vZjsKK+ihjeiuiiA+IHRvXC1kZXZlbG9wOwor5YWo54S2ID4gY29tcGxldGVseTsKK+WcmOiBmiA+IHRvXC1yZXVuaXRlOwor55m954uQID4gYXJjdGljXC1mb3g7Civmk4HloZ4gPiBjb25nZXN0aW9uOwor6KiO5Y6tID4gZGlzZ3VzdGluZzsKK+mBleWCsiA+IHRvXC1kaXNvYmV5Owor55m954a+ID4gd2hpdGVcLWhlYXQ7Civnmb3nhrEgPiB3aGl0ZVwtaGVhdDsKK+eZveeGiiA+IHBvbGFyXC1iZWFyOwor55m954WkID4gYW50aHJhY2l0ZTsKK+WAmumdoCA+IHRvXC1sZWFuXC1vbjsKK+W5vOWlsyA+IHlvdW5nXC1naXJsOwor6KeA5a+fID4gdG9cLW9ic2VydmU7CivlhbXms5UgPiBhcnRcLW9mXC13YXI7CivnlbbpgbggPiBiZVwtZWxlY3RlZDsKK+aRmOaKhCA+IHRvXC1leHRyYWN0Owor55uj5o6nID4gdG9cLW1vbml0b3I7CivloKTlsrggPiBlbWJhbmttZW50Owor57WQ5bGAID4gY29uY2x1c2lvbjsKK+asoOS9syA+IHN1Ym9wdGltYWw7CivpgLHliLAgPiB0aG91Z2h0ZnVsOwor6KaP5b6LID4gZGlzY2lwbGluZTsKK+euoei9hCA+IGFkbWluaXN0ZXI7CivluLjluLggPiBmcmVxdWVudGx5Owor5qi55qiBID4gdHJlZVwtc3R1bXA7Civopa/miZggPiB0b1wtc2V0XC1vZmY7Civmk43lhbggPiBkcmlsbFwtYm9vazsKK+i3kemmrCA+IGhvcnNlXC1yYWNlOwor5qqi5a+fID4gdG9cLWluc3BlY3Q7Civlt6jmmJ8gPiBnaWFudFwtc3RhcjsKK+mZhOWKoCA+IGFkZGl0aW9uYWw7Civmk43kvZwgPiB0b1wtb3BlcmF0ZTsKK+ebuOWwjSA+IHJlbGF0aXZlbHk7CivnhKHlg7kgPiBpbnZhbHVhYmxlOwor5bGP6ZmkID4gZ2V0XC1yaWRcLW9mOwor5pCP5paXID4gdG9cLXdyZXN0bGU7Civmi5zoqJcgPiByZXF1ZXN0XC1zYjsKK+aOkueQgyA+IHZvbGxleWJhbGw7CivntIDlvosgPiBkaXNjaXBsaW5lOwor5bqX5Li7ID4gc2hvcFwtb3duZXI7Civnk7bpoLggPiBib3R0bGVuZWNrOwor5bmr5YqpID4gYXNzaXN0YW5jZTsKK+W5q+WHtiA+IGFjY29tcGxpY2U7CivliIbliKUgPiBkaWZmZXJlbmNlOwor5YWs5pKuID4gbWlsbGlsaXRlcjsKK+e1kOWQiCA+IHRvXC1jb21iaW5lOwor57GD55CDID4gYmFza2V0YmFsbDsKK+aKseiyoCA+IGFzcGlyYXRpb247CivnrpfooZMgPiBhcml0aG1ldGljOwor5o6o5risID4gY29uamVjdHVyZTsKK+imgeWhniA+IHN0cm9uZ2hvbGQ7Civnmb3ml5cgPiB3aGl0ZVwtZmxhZzsKK+a8lOiuiiA+IHRvXC1kZXZlbG9wOwor5ru/6LazID4gdG9cLXNhdGlzZnk7CivpqYXpgJAgPiBiYW5pc2htZW50Owor6KGo56S6ID4gdG9cLWV4cHJlc3M7CivovrLlnJIgPiBwbGFudGF0aW9uOwor6auY57SaID4gaGlnaFwtbGV2ZWw7CivmipXos4cgPiBpbnZlc3RtZW50Owor55yL5YiwID4gc2VlXC1cKHRoYXRcKTsKK+aPkOaYhyA+IHRvXC1wcm9tb3RlOwor5YWM5o+bID4gdG9cLWNvbnZlcnQ7CivlhazlvJUgPiBoZWN0b21ldGVyOwor6aeV6aatID4gdG9cLWNvbnRyb2w7CivlsIjploAgPiBzcGVjaWFsaXN0Owor55yL5L6GID4gYXBwYXJlbnRseTsKK+iHieiJsiA+IGNvbXBsZXhpb247CivojYnlj6IgPiB1bmRlcmJydXNoOwor5YW85a65ID4gY29tcGF0aWJsZTsKK+i7jea4ryA+IG5hdmFsXC1wb3J0Owor5oyJ56uLID4gb3JkaW5hdGlvbjsKK+eUn+ioiCA+IGxpdmVsaWhvb2Q7Civmjozmq4MgPiBzaG9wa2VlcGVyOwor6KGo54++ID4gZXhwcmVzc2lvbjsKK+WFqeWyuCA+IGJpbGF0ZXJpYWw7CivlhbHlrZggPiB0b1wtY29leGlzdDsKK+WbmueKryA+IGFcLXByaXNvbmVyOwor5YGJ57i+ID4gZ3JlYXRcLWFjdHM7Civnm7jkupIgPiBlYWNoXC1vdGhlcjsKK+ihjeeUnyA+IGRlcnZpYXRpdmU7CivlhrDliIAgPiBpY2VcLXNrYXRlczsKK+aOpeaUtiA+IHRvXC1yZWNlaXZlOwor55So6JmVID4gdXNlZnVsbmVzczsKK+aKgOihkyA+IHRlY2hub2xvZ3k7CivoirHmiZggPiByZWNlcHRhY2xlOwor5a6/6aGMID4gYXNzaWdubWVudDsKK+mtmuaOkiA+IGZpc2hcLXN0ZWFrOwor5oyH55SyID4gZmluZ2VybmFpbDsKK+WtuOm9oSA+IHNjaG9vbFwtYWdlOwor5o2o5qOEID4gdG9cLWdpdmVcLXVwOwor5beu5YilID4gZGlmZmVyZW5jZTsKK+S9v+mGiSA+IGludG94aWNhdGU7Civmi5jnpoEgPiBjb25zdHJhaW50Owor5ZyL5pyDID4gcGFybGlhbWVudDsKK+i2hei2iiA+IHRvXC1zdXJwYXNzOwor5o6o5bujID4gcG9wdWxhcml6ZTsKK+S9o+mHkSA+IGNvbW1pc3Npb247Civnmb3llokgPiBkaXBodGhlcmlhOwor5o6I5oSPID4gdG9cLWluc3BpcmU7CivlhazliIYgPiBjZW50aW1ldGVyOwor562G6ICFID4gdGhlXC1hdXRob3I7Civkv53ogrIgPiBjaGlsZFwtY2FyZTsKK+eZveWNgCA+IHdoaXRlXC1hcmVhOwor5o+55YK1ID4gYmVcLWluXC1kZWJ0Owor5ryr55WrID4gY2FyaWNhdHVyZTsKK+WBnOeBqyA+IGNlYXNlXC1maXJlOwor6Imv5b+DID4gY29uc2NpZW5jZTsKK+WWruiqvyA+IG1vbm90b25vdXM7CivooajmmI4gPiBtYWtlXC1rbm93bjsKK+aKleeovyA+IGNvbnRyaWJ1dGU7CivmqKHku78gPiB0b1wtaW1pdGF0ZTsKK+eZvOS9iCA+IHRvXC1yZWxlYXNlOwor5qKd57SEID4gdHJlYXR5cGFjdDsKK+WwjuiIqiA+IG5hdmlnYXRpb247CivmjpLlpJYgPiB4ZW5vcGhvYmljOwor5bCO6Ie0ID4gdG9cLWxlYWRcLXRvOwor5bGV56S6ID4gdG9cLW9wZW5cLXVwOwor5bCL6IiLID4gdG9cLXByb3Zva2U7CivlhYjkvosgPiBhbnRlY2VkZW50Owor5ruF57WVID4gZXh0aW5ndWlzaDsKK+izk+mkqCA+IGd1ZXN0aG91c2U7CivmqJPkuIsgPiBkb3duc3RhaXJzOwor5o+Q5YChID4gdG9cLXByb21vdGU7CivmiZPntZAgPiB0aWVcLWFcLWtub3Q7Civoh4bmuKwgPiBhc3N1bXB0aW9uOwor6IiI5pe6ID4gcHJvc3Blcm91czsKK+WyuOaomSA+IGxpZ2h0aG91c2U7Civmi5TmsrMgPiB0dWdcLW9mXC13YXI7CivnlJ/nlKIgPiB0b1wtcHJvZHVjZTsKK+ijnOWEnyA+IGNvbXBlbnNhdGU7Civkurrpq5QgPiBodW1hblwtYm9keTsKK+aOqOWHuiA+IHRvXC1yZWxlYXNlOwor6IOe6KGjID4gYWZ0ZXJiaXJ0aDsKK+aMluaOmCA+IGV4Y2F2YXRpb247Civlm5vlubQgPiBmb3VyXC15ZWFyczsKK+mkkOmkqCA+IHJlc3RhdXJhbnQ7CivmjIfmj64gPiB0b1wtY29uZHVjdDsKK+iBlumdiCA+IGhvbHlcLWdob3N0Owor5oyH5o6nID4gYWNjdXNhdGlvbjsKK+aJi+eovyA+IG1hbnVzY3JpcHQ7CivmirnmsrkgPiB0b1wtYW5ub2ludDsKK+ihqOWwuiA+IHJlYXJcLXNpZ2h0Owor55Wi5qWtID4gZ3JhZHVhdGlvbjsKK+WbuuWftyA+IHBlcnNpc3RlbnQ7Civmn6XoqaIgPiB0b1wtaW5xdWlyZTsKK+mjr+mkqCA+IHJlc3RhdXJhbnQ7CivnlpHmha4gPiBoZXNpdGF0aW9uOwor5ZaJ6IiMID4gbW91dGhwaWVjZTsKK+S+v+eVtiA+IGNvbnZlbmllbnQ7Civoga/pgJogPiBjb25uZWN0aW9uOwor6aeQ57SuID4gdG9cLXN0YXRpb247CivnsL3lh7ogPiB0b1wtbG9nXC1vZmY7Civpq5jlsaQgPiBoaWdoXC1sZXZlbDsKK+mkhemQuiA+IGJha2luZ1wtcGFuOwor5bGi5qyhID4gcmVwZWF0ZWRseTsKK+mOl+euoSA+IGd1blwtYmFycmVsOwor6ZC15p2/ID4gaXJvblwtcGFuZWw7Civpj4jnkrAgPiBjaGFpblwtbGluazsKK+aNieWPliA+IHRvXC1jYXB0dXJlOwor56ut55uhID4gZXhoYXVzdGlvbjsKK+i7jeS6uiA+IHNlcnZpY2VtYW47CivmhI/poZggPiBhc3BpcmF0aW9uOwor6ICB6aCtID4gb2xkXC1mZWxsb3c7Civnj77osaEgPiBhcHBlYXJhbmNlOwor6Y6u55ebID4gYW5hbGdlc2lhYzsKK+iHquWwiiA+IHNlbGZcLXByaWRlOwor5a6a576pID4gZGVmaW5pdGlvbjsKK+ertueIrSA+IHRvXC1jb21wZXRlOwor5a+m54++ID4gdG9cLWFjaGlldmU7CivlgrfkuqEgPiBjYXN1YWx0aWVzOwor5oiq54S2ID4gY29tcGxldGVseTsKK+alreS9mSA+IHNwYXJlXC10aW1lOwor6KGM5YiXID4gcHJvY2Vzc2lvbjsKK+eXheWBhyA+IHNpY2tcLWxlYXZlOwor5pyf6ZmQID4gdGltZVwtbGltaXQ7CivmiormiLIgPiBhY3JvYmF0aWNzOwor5raI6LK7ID4gdG9cLWNvbnN1bWU7CivooYzkurogPiBwZWRlc3RyaWFuOwor5pu46Z2iID4gaW5cLXdyaXRpbmc7CivnrbflrZAgPiBjaG9wc3RpY2tzOwor56+A5Yi2ID4gdGVtcGVyYW5jZTsKK+iFkOaVlyA+IGNvcnJ1cHRpb247CivnjbjphqsgPiB2ZXRlcmluYXJ5Owor5YGa5Ye6ID4gdG9cLXB1dFwtb3V0Owor5L2c54K6ID4gYWNjb21wbGlzaDsKK+aKmOWwhCA+IHJlZnJhY3Rpb247Civllonngo4gPiBsYXJ5bmdpdGlzOwor5LqG6KejID4gdW5kZXJzdGFuZDsKK+S/oeW/gyA+IGNvbmZpZGVuY2U7Civoga/nuasgPiBjb25uZWN0aW9uOwor54+N6JePID4gY29sbGVjdGlvbjsKK+iHquS/oSA+IGNvbmZpZGVuY2U7CivogZbogbcgPiBwcmllc3Rob29kOwor6Yy255ukID4gZGlhbFwtcGxhdGU7CivmoYPmqLkgPiBwZWFjaFwtdHJlZTsKK+WWruaooSA+IHNpbmdsZW1vZGU7Civmg7PosaEgPiB0b1wtaW1hZ2luZTsKK+S4i+mZjSA+IHRvXC1kZWNsaW5lOwor5a+p5p+lID4gdG9cLWV4YW1pbmU7CivlsaTlo5MgPiBsYW1pbmF0aW9uOwor5ZGo6YCfID4gY3ljbGVcLXRpbWU7CivmmrTpoqggPiBzdG9ybVwtd2luZDsKK+WxrOWcsCA+IGRlcGVuZGVuY3k7CivmvLLlg7kgPiBhcHByZWNpYXRlOwor6IGW57aTID4gaG9seVwtYmlibGU7Civku7/nnJ8gPiB0b1wtZW11bGF0ZTsKK+WSjOirpyA+IGhhcm1vbmlvdXM7Civku4vntLkgPiB0b1wtcHJlc2VudDsKK+mgu+mguyA+IHJlcGVhdGVkbHk7CivnvLrpu54gPiB3ZWFrXC1wb2ludDsKK+acrOihjCA+IG9uZScnc1wtbGluZTsKK+a7suWdkSA+IHNld2FnZVwtcGl0Owor56u25oqAID4gdG91cm5hbWVudDsKK+aKteWItiA+IHJlc2lzdGFuY2U7CivpkLXljKAgPiBibGFja3NtaXRoOwor5Lu755SoID4gdG9cLWFwcG9pbnQ7Civllq7mlbggPiBvZGRcLW51bWJlcjsKK+adv+e0mSA+IHBhcGVyYm9hcmQ7CivlkYjpgZ4gPiB0b1wtcHJlc2VudDsKK+azoumVtyA+IHdhdmVsZW5ndGg7CivlsIjlv4MgPiBhYnNvcnB0aW9uOwor5YCL5YilID4gaW5kaXZpZHVhbDsKK+acg+ioiCA+IGFjY291bnRhbnQ7CivmtYHooYAgPiBzaGVkXC1ibG9vZDsKK+iCieeJhyA+IG1lYXRcLXNsaWNlOwor5rqr5a6kID4gZ3JlZW5ob3VzZTsKK+WAmuS7lyA+IHRvXC1sZWFuXC1vbjsKK+aKkeWItiA+IHRvXC1pbmhpYml0Owor5L2c5paZID4gY29uZGltZW50czsKK+S+v+WjuiA+IGJlZFwtdXJpbmFsOwor6Lao5aWJID4gdG9cLWZhd25cLW9uOwor5L2/5oCSID4gZXhhc3BlcmF0ZTsKK+S+neWxrCA+IGRlcGVuZGVuY2U7CivpoJDpmLIgPiB0b1wtcHJldmVudDsKK+WAi+S6uiA+IGluZGl2aWR1YWw7CivnrYnliLAgPiB3YWl0XC11bnRpbDsKK+Wwj+WnkCA+IHlvdW5nXC1sYWR5Owor5qGM5biDID4gdGFibGVjbG90aDsKK+iDjOaZryA+IGJhY2tncm91bmQ7CivkuI3oroogPiB1bmNoYW5naW5nOwor5LiA6LKrID4gY29uc2lzdGVudDsKK+aJueWHhiA+IHRvXC1hcHByb3ZlOwor56eR57O7ID4gZGVwYXJ0bWVudDsKK+aEgee3kiA+IG1lbGFuY2hvbHk7CivnpZ7oqbEgPiBmYWlyeVwtdGFsZTsKK+S9j+aJgCA+IGhhYml0YXRpb247CivpoZvopoYgPiBzdWJ2ZXJzaW9uOwor5qGI5a2QID4gbG9uZ1wtdGFibGU7CivkupLnm7ggPiBlYWNoXC1vdGhlcjsKK+S+v+WIqSA+IGNvbnZlbmllbnQ7CivmsrPpgoogPiByaXZlclwtYmFuazsKK+S4jeiZniA+IHVuZXhwZWN0ZWQ7CivlsKTlhbYgPiBlc3BlY2lhbGx5Owor5reY5rGwID4gdG9cLWRpZVwtb3V0Owor6IKl5paZID4gZmVydGlsaXplcjsKK+WuieaOkiA+IHRvXC1hcnJhbmdlOwor6K2w6ZmiID4gcGFybGlhbWVudDsKK+eLoei+ryA+IHRvXC1xdWliYmxlOwor56ys5LqMID4gbnVtYmVyXC10d287CivmoLzlpJYgPiBlc3BlY2lhbGx5Owor5pq06KGMID4gc2F2YWdlXC1hY3Q7Civlr6blnKggPiBpblwtcmVhbGl0eTsKK+i2heWNhyA+IGV4YWx0YXRpb247Civlj5vou40gPiByZWJlbFwtYXJteTsKK+eNuOeptCA+IGFuaW1hbFwtZGVuOwor5a2d5pWsID4gdG9cLXJlc3BlY3Q7CivorabpkJggPiBhbGFybVwtYmVsbDsKK+iDluWtkCA+IGZhdFwtcGVyc29uOwor5a2Y5pS+ID4gdG9cLWRlcG9zaXQ7CivppJPmrbsgPiBzdGFydmF0aW9uOwor5L215ZCeID4gc3dhbGxvd1wtdXA7CivlrbjlvpIgPiBhcHByZW50aWNlOwor5oSf5r+AID4gYXBwcmVjaWF0ZTsKK+adv+aogSA+IHNoZWV0XC1waWxlOwor5oiQ5YiGID4gaW5ncmVkaWVudDsKK+WuueWZqCA+IHJlY2VwdGFjbGU7Civph43oppYgPiBpbXBvcnRhbmNlOwor5oKU572qID4gY29udmljdGlvbjsKK+iDveWKmyA+IGNhcGFiaWxpdHk7Civlv4XpoIggPiB0b1wtaGF2ZVwtdG87Civogq/lrpogPiB0b1wtYmVcLXN1cmU7Civku7vmgKcgPiBjYXByaWNpb3VzOwor546L54mMID4gdHJ1bXBcLWNhcmQ7CivljZfpnaIgPiBzb3V0aFwtc2lkZTsKK+iWhOiNtyA+IGZpZWxkXC1taW50Owor6aas5YqbID4gaG9yc2Vwb3dlcjsKK+aciOeQgyA+IFwodGhlXClcLW1vb247CivlqZrntIQgPiBlbmdhZ2VtZW50Owor54++5oiQID4gcmVhZHlcLW1hZGU7CivpoLvnuYEgPiBmcmVxdWVudGx5Owor6K2w6KuWID4gdG9cLWNvbW1lbnQ7CivkuqTmm78gPiB0b1wtcmVwbGFjZTsKK+elnuenmCA+IG15c3RlcmlvdXM7Civpoqjmv5UgPiByaGV1bWF0aXNtOwor576k55y+ID4gdGhlXC1tYXNzZXM7CivnpZ7npZUgPiBteXN0ZXJpb3VzOwor5a+E5LqIID4gdG9cLWV4cHJlc3M7Civku4HmhYggPiBiZW5ldm9sZW50Owor5LuK5b6MID4gaGVuY2Vmb3J0aDsKK+iZm+aTrCA+IGZpY3RpdGlvdXM7Civpoa/nj74gPiBhcHBlYXJhbmNlOwor5aSa6buoID4gbXVsdGlwYXJ0eTsKK+S4jeeVtiA+IHVuc3VpdGFibGU7CivmsojokL0gPiBzaW5rXCxcLWZhbGw7CivorJvov7AgPiB0YWxrXC1hYm91dDsKK+Wuo+S9iCA+IHRvXC1kZWNsYXJlOwor6byT5o6MID4gdG9cLWFwcGxhdWQ7Civku6XlpJYgPiBhcGFydFwtZnJvbTsKK+eIhumfsyA+IHNvbmljXC1ib29tOwor5Ly85LmOID4gYXBwYXJlbnRseTsKK+Wkp+mrlCA+IGluXC1nZW5lcmFsOwor56m65YWSID4gc3BhcmVcLXRpbWU7Civpo5/mjIcgPiBmb3JlZmluZ2VyOwor54m06Ke4ID4gY29udHJhZGljdDsKK+eoi+W6jyA+IHByb2NlZHVyZXM7CivlvLHpu54gPiB3ZWFrXC1wb2ludDsKK+aYjuiogCA+IHByb25vdW5jZWQ7CivmnKzmnIggPiB0aGlzXC1tb250aDsKK+WTsuWtuCA+IHBoaWxvc29waHk7CivkuLnmr5IgPiBlcnlzaXBlbGFzOwor5rCj6LGhID4gbWV0ZW9yb2xneTsKK+S6kuaDoCA+IHJlY2lwcm9jYWw7CivnuL3pq5QgPiBjb21wbGV0ZWx5Owor6JSs6I+cID4gdmVnZXRhYmxlczsKK+mjr+W6lyA+IHJlc3RhdXJhbnQ7CivlkKvnh5AgPiBwaG9zcGhvcmljOwor5pu05q2jID4gY29ycmVjdGlvbjsKK+m7keadvyA+IGJsYWNrYm9hcmQ7CivlvZnpm4YgPiB0b1wtY29sbGVjdDsKK+ism+inoyA+IHRvXC1leHBsYWluOwor6aCQ55+lID4gYW50aWNpcGF0ZTsKK+mDqOmWgCA+IGRlcGFydG1lbnQ7Civku6Xlj4ogPiBhc1wtd2VsbFwtYXM7Civoga/lkIggPiB0b1wtY29tYmluZTsKK+S4u+agvCA+IG5vbWluYXRpdmU7CivpjITlj5YgPiB0b1wtcmVjcnVpdDsKK+aWsOmDjiA+IGJyaWRlZ3Jvb207CivogIzlvowgPiBhZnRlclwtdGhhdDsKK+Wtl+WFuCA+IGRpY3Rpb25hcnk7CivmgrLmrYwgPiBzYWRcLW1lbG9keTsKK+e9queLgCA+IGFjY3VzYXRpb247Civmr5Tph40gPiBwcm9wb3J0aW9uOwor6LOg5YSfID4gY29tcGVuc2F0ZTsKK+a1geaUviA+IGJhbmlzaG1lbnQ7CivkurrlnYcgPiBwZXJcLWNhcGl0YTsKK+WPr+eWkSA+IHN1c3BpY2lvdXM7CivogZ7lkI0gPiB3ZWxsXC1rbm93bjsKK+iAjOW3siA+IHRoYXQnJ3NcLWFsbDsKK+a1tOW3viA+IGJhdGhcLXRvd2VsOwor5ZCK54eIID4gY2hhbmRlbGllcjsKK+iBsuWDuSA+IHJlcHV0YXRpb247CivoloTniYcgPiB0aGluXC1zbGljZTsKK+abtOaWsCA+IHVwXC10b1wtZGF0ZTsKK+mhq+aglyA+IHRvXC10cmVtYmxlOwor5pys5bqVID4gYmFja2dyb3VuZDsKK+mbhumrlCA+IGNvbGxlY3RpdmU7CivmlZfpnLIgPiBcKG9mXC1hXC1wbG90Owor6Kmm6amXID4gZXhwZXJpbWVudDsKK+S6uuWPoyA+IHBvcHVsYXRpb247CivljpjnsbMgPiBjZW50aW1ldGVyOwor5q246aCGID4gc3VibWlzc2lvbjsKK+Wksei5pCA+IGJlXC1taXNzaW5nOwor6aO95ZKMID4gc2F0dXJhdGlvbjsKK+atoemosCA+IGp1YmlsYXRpb247Civlvozoo5QgPiBkZXNjZW5kYW50Owor5rCj6ImyID4gY29tcGxleGlvbjsKK+mHkeeJjCA+IGdvbGRcLW1lZGFsOwor5LiN5pyDID4gaW1wcm9iYWJsZTsKK+S4iuaciCA+IGxhc3RcLW1vbnRoOwor5ZC15p62ID4gdG9cLXF1YXJyZWw7CivmhI/lpJYgPiB1bmV4cGVjdGVkOwor56Kn57agID4gZGFya1wtZ3JlZW47CivkuI3mmYIgPiBmcmVxdWVudGx5Owor6ICB5aWXID4gb2xkXC10aGluZ3M7CivkuKbmioogPiB0b1wtaW5jbHVkZTsKK+irh+irliA+IHRvXC1kaXNjdXNzOwor5Y+K54mpID4gdHJhbnNpdGl2ZTsKK+mbu+i7iiA+IHRyb2xsZXlidXM7CivmrLrpqJkgPiB0b1wtZGVjZWl2ZTsKK+mhp+aFriA+IG1pc2dpdmluZ3M7Civlj6/mr5QgPiBjb21wYXJhYmxlOwor5LqL5YWIID4gaW5cLWFkdmFuY2U7CivorabniqwgPiBwb2xpY2VcLWRvZzsKK+WJm+mrlCA+IHJpZ2lkXC1ib2R5Owor5pmv5rCjID4gcHJvc3Blcml0eTsKK+WNnOetriA+IGRpdmluYXRpb247CivkuI3lv6sgPiBiZVwtdW5oYXBweTsKK+aYjOebmyA+IHByb3NwZXJvdXM7CivmlLnpgY4gPiB0b1wtY29ycmVjdDsKK+aUuemAsiA+IHRvXC1pbXByb3ZlOwor5LiN5bm4ID4gbWlzZm9ydHVuZTsKK+mbu+imliA+IHRlbGV2aXNpb247CivlvozogIUgPiB0aGVcLWxhdHRlcjsKK+e6j+e5niA+IGludGVydHdpbmU7CivliqDpgJ8gPiBhY2NlbGVyYXRlOwor6Kuz57e0ID4gY29udmVyc2FudDsKK+S4gOW6piA+IGZvclwtYVwtdGltZTsKK+atoei/jiA+IHRvXC13ZWxjb21lOwor5YyW6IKlID4gZmVydGlsaXplcjsKK+WiqOmPoSA+IHN1bmdsYXNzZXM7CivliZ3pm6IgPiBcKG9mXC10aXNzdWU7CivkuI3lsYggPiB1bnlpZWxkaW5nOwor5b2I6JelID4gYW1tdW5pdGlvbjsKK+mgkOaWmSA+IGFudGljaXBhdGU7CivpoILmm78gPiB0b1wtcmVwbGFjZTsKK+S4jeWumiA+IGluZGVmaW5pdGU7CivkuI3lrokgPiBpbnRyYW5xdWlsOwor6ICB5Lq6ID4gb2xkXC1wZW9wbGU7CivmnJ/liIogPiBwZXJpb2RpY2FsOwor55+l6Ka6ID4gcGVyY2VwdGlvbjsKK+WQjOaDhSA+IGNvbXBhc3Npb247CivpganphY0gPiBhZGFwdGF0aW9uOwor5ZCI5oSPID4gYWNjZXB0YWJsZTsKK+Wkp+iHoyA+IGNoYW5jZWxsb3I7CivlkIzmgKcgPiBob21vc2V4dWFsOwor5pel55uKID4gZGF5XC1ieVwtZGF5Owor5aSn6Ia9ID4gY291cmFnZW91czsKK+acrOS7vSA+IG9uZScnc1wtZHV0eTsKK+S4jeWmpSA+IG5vdFwtcHJvcGVyOwor5pyD5Y+LID4gbWVtYmVyc2hpcDsKK+e5s+e0jSA+IGNvbnRyaWJ1dGU7CivkuI3lpKAgPiBub3RcLWVub3VnaDsKK+engeS4iyA+IGluXC1wcml2YXRlOwor5rOi5bOwID4gd2F2ZVwtY3Jlc3Q7CivkuInlpKkgPiB0aHJlZVwtZGF5czsKK/CggI0gPiBnZW5lcmF0aW9uOwor6Z2i55uuID4gYXBwZWFyYW5jZTsKK+WPjeaXpSA+IGFudGlcLWphcGFuOwor5bu66K2wID4gdG9cLXByb3Bvc2U7Civms6LlsI4gPiB3YXZlXC1ndWlkZTsKK+WpouWlsyA+IHNsYXZlXC1naXJsOwor5rKS5pS2ID4gY29uZmlzY2F0ZTsKK+W/q+a0uyA+IGdheVwsXC1oYXBweTsKK+WPr+aCsiA+IGxhbWVudGFibGU7CivoqZXoqLsgPiBjb21tZW50YXJ5Owor5amK5a2QID4gcHJvc3RpdHV0ZTsKK+W/heeEtiA+IGluZXZpdGFibGU7CivljYrnkIMgPiBoZW1pc3BoZXJlOwor6Z+/5oeJID4gcmVzcG9uZFwtdG87CivlvZnnt6ggPiBjb2xsZWN0aW9uOwor6K2w5pyDID4gcGFybGlhbWVudDsKK+Wkp+e2sSA+IG1haW5cLXBvaW50Owor5pKe6aiZID4gdG9cLXN3aW5kbGU7Civng6TptKggPiByb2FzdFwtZHVjazsKK+atjOipniA+IHNvbmdcLWx5cmljOwor5Lim5YWlID4gbWVyZ2VcLWludG87CivoqJjovIkgPiB3cml0ZVwtZG93bjsKK+W8seiEiCA+IHdlYWtcLXB1bHNlOwor6aGr5YuVID4gdG9cLXRyZW1ibGU7Civljp/mnKwgPiBvcmlnaW5hbGx5Owor5ZC45ZCuID4gdG9cLXN1Y2tcLWluOwor54iG56C0ID4gdG9cLWJsb3dcLXVwOwor6YGT6LOAID4gY29tcGxpbWVudDsKK+WPluW+lyA+IHRvXC1hY3F1aXJlOwor5LiK5Y2KID4gZmlyc3RcLWhhbGY7CivmlZnogrIgPiB0b1wtZWR1Y2F0ZTsKK+S4jeWLlSA+IG1vdGlvbmxlc3M7CivlkJ7lmawgPiB0b1wtc3dhbGxvdzsKK+imgem7niA+IG1haW5cLXBvaW50Owor5Y+N5b6pID4gcmVwZWF0ZWRseTsKK+ilv+m7niA+IHdlc3RcLXBvaW50Owor5Lim5LiNID4gbm90XC1hdFwtYWxsOwor5paX55y8ID4gY3Jvc3NcLWV5ZWQ7CivmsKPmsJsgPiBhdG1vc3BoZXJlOwor55y86Y+hID4gc3BlY3RhY2xlczsKK+S4jeWCmSA+IHVucHJlcGFyZWQ7CivmqqLpqZcgPiB0b1wtaW5zcGVjdDsKK+S4gOWGjSA+IHJlcGVhdGVkbHk7CivmgavlmocgPiBpbnRpbWlkYXRlOwor5LiA5YWxID4gYWx0b2dldGhlcjsKK+WlieeNuyA+IGNvbnNlY3JhdGU7CivkuI3kvp0gPiBub3RcLWNvbXBseTsKK+S4jeS9jyA+IHJlcGVhdGVkbHk7Civlj6rlpb0gPiB0b1wtaGF2ZVwtdG87CivoqI7oq5YgPiB0b1wtZGlzY3VzczsKK+aWh+ebsiA+IGlsbGl0ZXJhdGU7CivmmI7mmbogPiBub3RcLXVud2lzZTsKK+WPpuWkliA+IGFkZGl0aW9uYWw7Civmkp7ph50gPiBmaXJpbmdcLXBpbjsKK+WNl+altSA+IHNvdXRoXC1wb2xlOwor5LiA5LujID4gZ2VuZXJhdGlvbjsKK+aUtue4riA+IHB1bGxcLWJhY2s7CivlpJrnlpEgPiBza2VwdGljYWw7CivlkIjlipsgPiBjb29wZXJhdGU7CivniIbngrggPiBleHBsb3Npb247CivlibLojYkgPiBtb3dcLWdyYXNzOwor6K6K5aWPID4gdmFyaWF0aW9uOwor6aCY5Y+XID4gdG9cLWFjY2VwdDsKK+WLleebqiA+IGNvbW1vdGlvbjsKK+WPr+WTgCA+IG1pc2VyYWJseTsKK+iPoOiYvyA+IHBpbmVhcHBsZTsKK+WOmuW6piA+IHRoaWNrbmVzczsKK+mAn+iomCA+IHNob3J0aGFuZDsKK+W+kOatpSA+IHRvXC1zdHJvbGw7Civopb/pnaIgPiB3ZXN0XC1zaWRlOwor5pGY6ZmkID4gdG9cLWV4Y2lzZTsKK+itpuWumCA+IGNvbnN0YWJsZTsKK+WQjOS8tCA+IGNvbXBhbmlvbjsKK+WQjeS6uiA+IHBlcnNvbmFnZTsKK+iUk+W7tiA+IHRvXC1leHRlbmQ7CivlkIzkuosgPiBjb2xsZWFndWU7CivljYrml5cgPiBoYWxmXC1tYXN0Owor6YeR5YygID4gZ29sZHNtaXRoOwor5ZCM5LiAID4gaWRlbnRpY2FsOwor56Kw5benID4gYnlcLWNoYW5jZTsKK+aZruWPiiA+IHdpZGVzcGVhZDsKK+ioree9riA+IHRvXC1zZXRcLXVwOwor54eS54esID4gYnVyblwtZG93bjsKK+aYjuW5tCA+IG5leHRcLXllYXI7Civlj6TlhbggPiBjbGFzc2ljYWw7Civlj6vlgZogPiBiZVwtY2FsbGVkOwor57ag6Iy2ID4gZ3JlZW5cLXRlYTsKK+WIpeiZlSA+IGVsc2V3aGVyZTsKK+i/sOiqniA+IHByZWRpY2F0ZTsKK+mYsuihmyA+IHRvXC1kZWZlbmQ7CivmmKjlpKkgPiB5ZXN0ZXJkYXk7CivmlZnniLYgPiBnb2RmYXRoZXI7Civlj5flg7EgPiBtZXJjZW5hcnk7CivmlrzmmK8gPiB0aGVyZXVwb247Civoqp7mupAgPiBldHltb2xvZ3k7Civoqqrms5UgPiBzdGF0ZW1lbnQ7Civln47ploAgPiBjaXR5XC1nYXRlOwor6Z2I5pWPID4gc2Vuc2l0aXZlOwor5Yqp55CGID4gYXNzaXN0YW50Owor6Kit56uLID4gdG9cLXNldFwtdXA7Civoq5bmlrcgPiBpbmZlcmVuY2U7Civlj5fkuosgPiByZWNlcGllbnQ7CivnhqznhY4gPiBzdWZmZXJpbmc7CivliIbomZ8gPiBzZW1pY29sb247Civljp/lkYogPiBjb21wbGFpbnQ7Civnmb3prZogPiB3aGl0ZWZpc2g7CivlpJrmqKMgPiBkaXZlcnNpdHk7CivlpJrmqKEgPiBtdWx0aW1vZGU7CivplovpoK0gPiBiZWdpbm5pbmc7CivnhKHog70gPiBpbmFiaWxpdHk7Civnmb3pq5QgPiBsZWFuXC10eXBlOwor5qiZ6auYID4gZWxldmF0aW9uOwor5aaW5aqaID4gc2VkdWN0aXZlOwor54Sh6IGyID4gbm9pc2VsZXNzOwor5Yi657mhID4gZW1icm9pZGVyOwor5Y2B5bm0ID4gdGVuXC15ZWFyczsKK+WNiuWztiA+IHBlbmluc3VsYTsKK+mAo+e6jCA+IGNvbnRpbm91czsKK+WOn+WJhyA+IHByaW5jaXBsZTsKK+mEreW3niA+IHpoZW5nemhvdTsKK+ioiOetliA+IHN0cmF0YWdlbTsKK+W6lee3miA+IHVuZGVybGluZTsKK+mWg+mbuyA+IGxpZ2h0bmluZzsKK+W8lea4oSA+IGV4dHJhZGl0ZTsKK+aVmeavjSA+IGdvZG1vdGhlcjsKK+WjgeeIkCA+IGZpcmVwbGFjZTsKK+aWh+aYjiA+IGNpdmlsaXplZDsKK+ebtOimuiA+IGludHVpdGlvbjsKK+WjgeeHiCA+IHdhbGxcLWxhbXA7Civnmbzpn7MgPiBwcm9ub3VuY2U7CivljpjlhYsgPiBjZW50aWdyYW07CivnhKHnsZ8gPiBzY291bmRyZWw7CivliqDmt7EgPiB0b1wtZGVlcGVuOwor5Z+36KGMID4gaW1wbGVtZW50Owor6Zu55pq0ID4gaGFpbHN0b3JtOwor56K65L+hID4gY29uZmlkZW50Owor5aWg5a6aID4gZXN0YWJsaXNoOwor6YKj5qijID4gdGhhdFwta2luZDsKK+WFrOmHjCA+IGtpbG9tZXRlcjsKK+iqoOaRryA+IHNpbmNlcmVseTsKK+W3rui3nSA+IGRpc3Bhcml0eTsKK+ilr+ijmSA+IHBldHRpY29hdDsKK+mwvuiGoCA+IGlzaW5nbGFzczsKK+itieS7tiA+IHBhcGVyd29yazsKK+e0sOiPjCA+IGJhY3RlcmlhbDsKK+iKrOmmmSA+IGZyYWdyYW5jZTsKK+WNoOWNnCA+IHRvXC1kaXZpbmU7CivokrzlpKkgPiBmaXJtYW1lbnQ7Civnt6nmspYgPiB0b1wtYnVmZmVyOwor6YG45rS+ID4gc2V0XC1hcGFydDsKK+aVo+aSrSA+IHRvXC1zcHJlYWQ7CivlpKflv5cgPiBoaWdoXC1haW1zOwor6LyU6Z+zID4gY29uc29uYW50Owor5by15o+aID4gcHVibGljaXplOwor6Kej56K8ID4gdG9cLWRlY29kZTsKK+aSreeoriA+IHNvd1wtc2VlZHM7CivljJblrbggPiBjaGVtaXN0cnk7CivloLHntJkgPiBuZXdzcGFwZXI7CivnhKHnn6UgPiBpZ25vcmFuY2U7CivmjqXpp4EgPiB0b1wtYWNjZXNzOwor5b6I5aSaID4gdmVyeVwtbWFueTsKK+iqoOaEjyA+IHNpbmNlcml0eTsKK+W7o+azmyA+IGV4dGVuc2l2ZTsKK+mzs+aiqCA+IHBpbmVhcHBsZTsKK+mbmeaWuSA+IGJpbGF0ZXJhbDsKK+mVt+mBoCA+IGxvbmdcLXRlcm07CivljYPlkaggPiBraWxvaGVydHo7CivpgY7mv74gPiB0b1wtZmlsdGVyOwor5aWH5aaZID4gZmFudGFzdGljOwor5Yaw6JOLID4gaWNlXC1zaGVldDsKK+mBmea4rCA+IHRlbGVtZXRyeTsKK+i+suiIjSA+IGZhcm1ob3VzZTsKK+e0heiTriA+IHJlZFwtbG90dXM7CivlhbHorZggPiBjb25zZW5zdXM7CivovLjpgIEgPiB0cmFuc3BvcnQ7CivlpKflsI8gPiBkaW1lbnNpb247CivlpKflrrYgPiBhdXRob3JpdHk7CivniK3lj5YgPiBmaWdodFwtZm9yOwor5q+P5aSpID4gZXZlcnlcLWRheTsKK+aUu+aTiiA+IHRvXC1hdHRhY2s7CivntIXojLYgPiBibGFja1wtdGVhOwor5paH5a2XID4gY2hhcmFjdGVyOwor5bi457agID4gZXZlcmdyZWVuOwor5q6Y5buiID4gZGVmb3JtaXR5Owor6Zqx5pmmID4gb2JzY3VyaXR5Owor54Wn5qijID4gYXNcLWJlZm9yZTsKK+aWueWQkSA+IGRpcmVjdGlvbjsKK+eEsOeBqyA+IGZpcmV3b3JrczsKK+aVkeaBqSA+IHNhbHZhdGlvbjsKK+WkqeWkqSA+IGV2ZXJ5XC1kYXk7Civlvozli6QgPiBsb2dpc3RpY3M7CivliqnmiYsgPiBhc3Npc3RhbnQ7CivlhafopLIgPiB1bmRlcndlYXI7CivovqbnvaogPiB0b1wtcHVuaXNoOwor6KaB57eKID4gaW1wb3J0YW50Owor5rCR5Li7ID4gZGVtb2NyYWN5Owor5YuZ5a+mID4gcHJhZ21hdGljOwor5o6o6Yq3ID4gdG9cLW1hcmtldDsKK+W9meWgsSA+IHRvXC1yZXBvcnQ7CivopoHntKAgPiBlc3NlbnRpYWw7CivlpKLlooMgPiBkcmVhbWxhbmQ7CivoqrLloIIgPiBjbGFzc3Jvb207Civpgbjmk4cgPiB0b1wtc2VsZWN0Owor5aCx55WMID4gdGhlXC1wcmVzczsKK+eZvOiogCA+IHN0YXRlbWVudDsKK+WNgeS4gyA+IHNldmVudGVlbjsKK+eBq+iXpSA+IGd1bnBvd2RlcjsKK+iouuaWtyA+IGRpYWdub3NpczsKK+avq+WFiyA+IG1pbGxpZ3JhbTsKK+WJr+acrCA+IGR1cGxpY2F0ZTsKK+iJsemboyA+IGRpZmZpY3VsdDsKK+W7o+aSrSA+IGJyb2FkY2FzdDsKK+aVl+WxgCA+IGxvc3RcLWdhbWU7Civpg4rlpJYgPiBvdXRza2lydHM7CivmlZnlrqQgPiBjbGFzc3Jvb207Civnmb3ooJ8gPiB3aGl0ZVwtd2F4Owor5Ye654++ID4gdG9cLWFwcGVhcjsKK+mAkOa8uCA+IGdyYWR1YWxseTsKK+WGsOezlSA+IGljZVwtY3JlYW07CivlhYHoqLEgPiB0b1wtcGVybWl0Owor5b6M5LujID4gcG9zdGVyaXR5Owor6Imm6ZW3ID4gY29tbWFuZGVyOwor5qeL6YCgID4gc3RydWN0dXJlOwor5Yu+5YqDID4gdG9cLXNrZXRjaDsKK+WinuaPtCA+IHJlaW5mb3JjZTsKK+eEoeavlCA+IG1hdGNobGVzczsKK+aVmeWjqyA+IGNodXJjaG1hbjsKK+asoeaVuCA+IGZyZXF1ZW5jeTsKK+Wkp+WKmyA+IGVuZXJnZXRpYzsKK+Wjr+WkpyA+IHRvXC1leHBhbmQ7CivmrIrmn4QgPiBhdXRob3JpdHk7CivpgbXlvqogPiB0b1wtZm9sbG93Owor6YGp5oSPID4gYWdyZWVhYmxlOwor6Kq/5YGcID4gcmVjb25jaWxlOwor5bmy5raJID4gaW50ZXJmZXJlOwor5Yuk5YuJID4gZGlsaWdlbmNlOwor5qy+5b6FID4gZW50ZXJ0YWluOwor55m86Iq9ID4gZ2VybWluYXRlOwor5aSn5L6/ID4gZXhjcmVtZW50Owor5pKl5q2jID4gc2V0XC1yaWdodDsKK+WjveWRvSA+IGxpZmVcLXNwYW47CivntpPmlocgPiBzY3JpcHR1cmU7CivmlbLlhaUgPiB0b1wta2V5XC1pbjsKK+maiuW9oiA+IGZvcm1hdGlvbjsKK+WkqeS4iiA+IGNlbGVzdGlhbDsKK+i+pueQhiA+IHRvXC1oYW5kbGU7CivoqLvlrpogPiBiZVwtZG9vbWVkOwor54Sh5pW4ID4gY291bnRsZXNzOwor5pS25ZueID4gdG9cLXJlZ2FpbjsKK+WkluS6pCA+IGRpcGxvbWFjeTsKK+mBjuW6piA+IGV4Y2VlZGluZzsKK+WIpOaWtyA+IHRvXC1kZWNpZGU7Civmk43mjIEgPiB0b1wtbWFuYWdlOwor5qqi5risID4gdG9cLWRldGVjdDsKK+efruWHsyA+IGxvd1wtc3Rvb2w7Civpmo7lsaQgPiBoaWVyYXJjaHk7Civoh7Ppq5ggPiBwYXJhbW91bnQ7CivmjqjolqYgPiByZWNvbW1lbmQ7CivmjpLooYwgPiBzZW5pb3JpdHk7CivliY3lvoAgPiBsZWF2ZVwtZm9yOwor5pWZ5YSAID4gb3JkaW5hbmNlOwor57WQ5qeLID4gc3RydWN0dXJlOwor5aKz5aKTID4gc2VwdWxjaGVyOwor5pKt5pS+ID4gYnJvYWRjYXN0Owor5YWs56eJID4ga2lsb2xpdGVyOwor6Zi75pKTID4gdG9cLXRod2FydDsKK+WCs+mAgSA+IHRvXC1jb252ZXk7Civpgbrlm5EgPiB0ZXN0YW1lbnQ7CivmraHlkbwgPiBjaGVlclwtZm9yOwor5YKz6Ly4ID4gdHJhbnNwb3J0Owor5bmy5pO+ID4gaW50ZXJmZXJlOwor5o6o6I2QID4gcmVjb21tZW5kOwor6YGK5a6iID4gdHJhdmVsbGVyOwor5Z+O54mGID4gY2l0eVwtd2FsbDsKK+WFp+eivCA+IHRvXC1lbmNvZGU7CivmkafmrpggPiB0b1wtcmF2YWdlOwor5pKe5pOKID4gdG9cLXN0cmlrZTsKK+WKoOWKhyA+IGFnZ3JhdmF0ZTsKK+mYu+aKlyA+IGltcGVkYW5jZTsKK+aNkOi0iCA+IHRvXC1kb25hdGU7Civoh6rpoZggPiB2b2x1bnRhcnk7CivmqLnnmq4gPiB0cmVlXC1iYXJrOwor57aT5bqmID4gbG9uZ2l0dWRlOwor6Zqo5ZOhID4gYXR0ZW5kYW50Owor5YWJ562GID4gbGlnaHRcLXBlbjsKK+WgseaUpCA+IG5ld3NzdGFuZDsKK+WHuuaWvCA+IGJlXC1kdWVcLXRvOwor5pWR5LiWID4gc2FsdmF0aW9uOwor5pO05aSnID4gdG9cLWV4cGFuZDsKK+mBjuWkmiA+IGV4Y2Vzc2l2ZTsKK+eEoeW9oiA+IGludmlzaWJsZTsKK+ijnee9riA+IGVxdWlwbWVudDsKK+aVheS6iyA+IG5hcnJhdGl2ZTsKK+WFseeUoiA+IGNvbW11bmlzdDsKK+evqemBuCA+IHRvXC1maWx0ZXI7Civmjqjnv7sgPiBvdmVydGhyb3c7CivpmaLlrZAgPiBjb3VydHlhcmQ7CivlnJLol50gPiBnYXJkZW5pbmc7Civlu6PljZogPiBleHRlbnNpdmU7CivmrIrlqIEgPiBhdXRob3JpdHk7CivlioPliIYgPiB0b1wtZGl2aWRlOwor5YKz6KiYID4gYmlvZ3JhcGh5Owor6L+35oORID4gdG9cLXB1enpsZTsKK+WKoOS4iiA+IHRvXC1wdXRcLWluOwor5bu25Ly4ID4gdG9cLWV4dGVuZDsKK+mAmuWutSA+IG92ZXJuaWdodDsKK+iJseiLpiA+IGRpZmZpY3VsdDsKK+W7o+WCsyA+IHByb3BhZ2F0ZTsKK+eZvOeUnyA+IHRvXC1oYXBwZW47CivnmbHnmJMgPiBwYXJhbHlzaXM7CivntYTmiJAgPiBjb21wb25lbnQ7CivpmorliJcgPiBmb3JtYXRpb247CivmjqXnrqEgPiB0YWtlXC1vdmVyOwor6Kit5YKZID4gZXF1aXBtZW50Owor6ZqG5YasID4gbWlkd2ludGVyOwor5Ye55bqmID4gY29uY2F2aXR5Owor5ryr6ZW3ID4gdmVyeVwtbG9uZzsKK+eVjOmdoiA+IGludGVyZmFjZTsKK+WJteS9nCA+IHRvXC1jcmVhdGU7CivpmarlkIwgPiBhY2NvbXBhbnk7Civmk7TlhYUgPiB0b1wtZXhwYW5kOwor5oyH6LKsID4gY3JpdGljaXplOwor57ac5ZCIID4gY29tcG9zaXRlOwor5oqr6ZyyID4gdG9cLXJldmVhbDsKK+eci+W+hSA+IGxvb2tcLXVwb247CivpmbflhaUgPiBzaW5rXC1pbnRvOwor6KGw6JC9ID4gZGVjb21wb3NlOwor5Ymb5YGlID4gZW5lcmdldGljOwor5pKl5aWPID4gcGl6emljYXRvOwor6YCG5aKDID4gYWR2ZXJzaXR5Owor6L+r5a6zID4gcGVyc2VjdXRlOwor6YCy5YyWID4gZXZvbHV0aW9uOwor6L6v5omNID4gZWxvcXVlbmNlOwor6Ieq6LKgID4gY29uY2VpdGVkOwor5biC5pS/ID4gbXVuaWNpcGFsOwor5YS854S2ID4ganVzdFwtbGlrZTsKK+e1leWmmSA+IGV4cXVpc2l0ZTsKK+aKlemZjSA+IHN1cnJlbmRlcjsKK+ewveeroCA+IHNpZ25hdHVyZTsKK+mZquS8tCA+IGFjY29tcGFueTsKK+e2geWMqiA+IGtpZG5hcHBlcjsKK+eEoeWKmyA+IHBvd2VybGVzczsKK+aTlOS/nSA+IGd1YXJhbnRlZTsKK+aOqOeQhiA+IHJlYXNvbmluZzsKK+WboOiAjCA+IHRoZXJlZm9yZTsKK+mAhuWQkSA+IGJhY2t3YXJkczsKK+i3n+maqCA+IHRvXC1mb2xsb3c7CivmjInomoogPiBhbm9waGVsZXM7CivmqKPmqZ8gPiBwcm90b3R5cGU7CivliKjlhrAgPiB3YXRlclwtaWNlOwor5bi25a+sID4gYmFuZHdpZHRoOwor55Ww6K2wID4gb2JqZWN0aW9uOwor6KaP5a6aID4gcHJvdmlzaW9uOwor5bGV6ZaLID4gdG9cLXVuZm9sZDsKK+i8qua1gSA+IGFsdGVybmF0ZTsKK+WCs+e1sSA+IHRyYWRpdGlvbjsKK+WBj+imiyA+IHByZWp1ZGljZTsKK+WcsOeQhiA+IGdlb2dyYXBoeTsKK+WcsOeQgyA+IHRoZVwtZWFydGg7CivpmY3kvY4gPiB0b1wtcmVkdWNlOwor5L+d6ZqqID4gaW5zdXJhbmNlOwor5L+d6ZqcID4gdG9cLWVuc3VyZTsKK+WgtOWQiCA+IHNpdHVhdGlvbjsKK+WgseWRiiA+IHRvXC1pbmZvcm07CivntLPlo6sgPiBnZW50bGVtYW47CivlhazmlpcgPiBkZWNhbGl0ZXI7CivpgJ3kuJYgPiBwYXNzXC1hd2F5Owor6L+U5ZueID4gcmV0dXJuXC10bzsKK+mZhOS7tiA+IGVuY2xvc3VyZTsKK+WIhuWJsiA+IHRvXC1jdXRcLXVwOwor6ZW35pyfID4gbG9uZ1wtdGVybTsKK+aJgemqqCA+IGZsYXRcLWJvbmU7Civkv53pj6IgPiBib2R5Z3VhcmQ7Civot5HpjLYgPiBzdG9wd2F0Y2g7CivntJnlpL4gPiBwYXBlcmNsaXA7CivnmbzmmI4gPiB0b1wtaW52ZW50Owor5qih5pOsID4gaW1pdGF0aW9uOwor5r+A55m8ID4gdG9cLWFyb3VzZTsKK+WGjeW6piA+IG9uY2VcLW1vcmU7Civns77lr58gPiB0b1wtcGlja2V0Owor5ou36IqxID4gdG9cLWVtYm9zczsKK+a9m+iJhyA+IHN1Ym1hcmluZTsKK+i/t+S9jyA+IGZhc2NpbmF0ZTsKK+iJvueCtyA+IG1veGFcLWNvbmU7Civlm5rnpoEgPiBjYXB0aXZpdHk7CivlhafmiLAgPiBjaXZpbFwtd2FyOwor5L6/6ZaAID4gc2lkZVwtZG9vcjsKK+ijgea4myA+IHRvXC1yZWR1Y2U7Civov7fkuoIgPiBjb25mdXNpb247CivlnI3niYYgPiBlbmNsb3N1cmU7Civnm7jlkIwgPiBpZGVudGljYWw7Civopo/li7ggPiB0b1wtYWR2aXNlOwor6KGo55quID4gZXBpZGVybWlzOwor6KGo55m9ID4gdmluZGljYXRlOwor5oi26ZmQID4gdGhyZXNob2xkOwor55yL5YGaID4gcmVnYXJkXC1hczsKK+aNkOeNuyA+IHRvXC1kb25hdGU7CivlhYfmiYsgPiBhc3NhaWxhbnQ7Civon5HonoIgPiBjb2Nrcm9hY2g7Civlr6zpoLsgPiBicm9hZGJhbmQ7Civopb/ljZcgPiBzb3V0aHdlc3Q7Civkvb/ppKggPiBjb25zdWxhdGU7Civopb/ljJcgPiBub3J0aHdlc3Q7Civmo4nooqsgPiBjb21mb3J0ZXI7Civnsr7lt6cgPiBlbGFib3JhdGU7CivltoTmlrAgPiBicmFuZFwtbmV3Owor5omT6YCyID4gdG9cLWJyZWFjaDsKK+WFrOWvuCA+IGRlY2ltZXRlcjsKK+aJv+iqjSA+IHJlY29nbml6ZTsKK+WFrOWvkyA+IGFwYXJ0bWVudDsKK+W4uOS7uyA+IHBlcm1hbmVudDsKK+WFieW9qSA+IGhvbm9yYWJsZTsKK+S/neittyA+IHRvXC1kZWZlbmQ7CivmjIfnpLogPiBwb2ludFwtb3V0Owor55eF55CGID4gcGF0aG9sb2d5Owor6L6b5YueID4gbGFib3Jpb3VzOwor5pCN5aOeID4gdG9cLWRhbWFnZTsKK+S/neiovCA+IGd1YXJhbnRlZTsKK+WYieiosSA+IGZhdm9yYWJsZTsKK+WFq+WkqSA+IGVpZ2h0XC1kYXk7Civmi5LntZUgPiB0b1wtcmVmdXNlOwor6KaB5LiNID4gb3RoZXJ3aXNlOwor5qiZ5a6aID4gZGVtYXJjYXRlOwor6Iao6IS5ID4gdG9cLWV4cGFuZDsKK+i8u+WwhCA+IHJhZGlhdGlvbjsKK+aOkuaUviA+IGRpc2NoYXJnZTsKK+mrlOePviA+IHRvXC1lbWJvZHk7CivoobDmuJsgPiB0b1wtd2Vha2VuOwor57GD5p2/ID4gYmFja2JvYXJkOwor6aas6Z6tID4gaG9yc2V3aGlwOwor6Ium5aKDID4gZ3JpZXZhbmNlOwor55Wi56ufID4gYWZ0ZXJcLWFsbDsKK+S9jumajiA+IGxvd1wtbGV2ZWw7CivmiYDorIIgPiBzb1wtY2FsbGVkOwor5r2w54ibID4gdG9cLWZlc3RlcjsKK+WEsuWtmCA+IHN0b2NrcGlsZTsKK+iGgOiHgiA+IHVwcGVyXC1hcm07CivngJHluIMgPiB3YXRlcmZhbGw7Civmjpvlv7UgPiBjb25jZXJuZWQ7CivlhajlkIwgPiBpZGVudGljYWw7CivovZ/li5UgPiBzZW5zYXRpb247Civoh7rnh4ggPiBkZXNrXC1sYW1wOwor6J206J22ID4gYnV0dGVyZmx5Owor55Sc576OID4gc3dlZXRuZXNzOwor5Ly06ZqoID4gdG9cLWZvbGxvdzsKK+WvpuizqiA+IHN1YnN0YW5jZTsKK+WFrOWFqSA+IGhlY3RvZ3JhbTsKK+akjeeJqSA+IGJvdGFuaWNhbDsKK+epuumYsiA+IGFpclwtZm9yY2U7CivlhaXkvrUgPiB0b1wtaW52YWRlOwor5YWL5Yi2ID4gcmVzdHJhaW50Owor5YWs5LiIID4gZGVjYW1ldGVyOwor6Ly45Ye6ID4gdG9cLWV4cG9ydDsKK+aKmOejqCA+IHBlcnNlY3V0ZTsKK+i8uOWFpSA+IHRvXC1pbXBvcnQ7Civlr6booYwgPiBpbXBsZW1lbnQ7CivnrYnnrYkgPiBldFwtY2V0ZXJhOwor5riF6ZmkID4gZWxpbWluYXRlOwor5omT6IG9ID4gYXNrXC1hYm91dDsKK+ihqOaPmiA+IHRvXC1wcmFpc2U7Civmv4DmgJIgPiBpbmZ1cmlhdGU7CivmiZPnv7sgPiBvdmVydGhyb3c7CivlgZzms4ogPiBhbmNob3JhZ2U7CivonLvonJMgPiBkcmFnb25mbHk7CivmvLjmvLggPiBncmFkdWFsbHk7CivlrZDpn7MgPiBjb25zb25hbnQ7CivmvLLmva4gPiBoaWdoXC10aWRlOwor5a626K2cID4gZ2VuZWFsb2d5Owor6ama55WwID4gYW1hemVtZW50Owor6LyU5YqpID4gdG9cLWFzc2lzdDsKK+aPkOS+myA+IHRvXC1zdXBwbHk7Civnqb/pgI8gPiBwZW5ldHJhdGU7CivmjqXlj6MgPiBpbnRlcmZhY2U7CivmjqXlj5cgPiB0b1wtYWNjZXB0Owor6auU5pONID4gZ3ltbmFzdGljOwor5L6/566LID4gbm90ZXBhcGVyOwor56m66LuNID4gYWlyXC1mb3JjZTsKK+i2heiBryA+IGh5cGVybGluazsKK+iBlumkkCA+IHNhY3JhbWVudDsKK+ijneWCmSA+IGVxdWlwbWVudDsKK+aJueeZvCA+IHdob2xlc2FsZTsKK+a8uOasoSA+IGdyYWR1YWxseTsKK+i2lee3iiA+IGh1cnJpZWRseTsKK+mqqOaetiA+IGZyYW1ld29yazsKK+S7i+mdoiA+IGludGVyZmFjZTsKK+WBteaOoiA+IGRldGVjdGl2ZTsKK+iHqOaZgiA+IHRlbXBvcmFyeTsKK+aMkeaIsCA+IGNoYWxsZW5nZTsKK+iiq+WRiiA+IGRlZmVuZGFudDsKK+aOkuWHuiA+IGRpc2NoYXJnZTsKK+aLlOafkyA+IGRpc2NoYXJnZTsKK+iynemhniA+IHNoZWxsZmlzaDsKK+WcqOWFpyA+IGluY2x1ZGluZzsKK+aLv+aJiyA+IGV4cGVydFwtaW47Civnq4rogb0gPiBlYXZlc2Ryb3A7Civlrr/oiI0gPiBkb3JtaXRvcnk7CivlsbHmsLQgPiBsYW5kc2NhcGU7Civlm5vlpKkgPiBmb3VyXC1kYXlzOwor5oy65aW9ID4gdmVyeVwtZ29vZDsKK+ewveWFpSA+IHRvXC1sb2dcLW9uOwor6aas6IOMID4gaG9yc2ViYWNrOwor6amV5rCjID4gYXJyb2dhbmNlOwor55aR5b+DID4gc3VzcGljaW9uOwor5ri66IyrID4gdW5jZXJ0YWluOwor5r+A5Yu1ID4gZW5jb3VyYWdlOwor5r+A5YuVID4gdG9cLWV4Y2l0ZTsKK+aIkOeriyA+IGVzdGFibGlzaDsKK+a3u+ijnCA+IGZpbGxcLVwodXBcKTsKK+S/ruatoyA+IHRvXC1yZXZpc2U7Civmn5DomZUgPiBzb21ld2hlcmU7Civos5PoqZ4gPiBwcmVkaWNhdGU7CivnqLHorpogPiB0b1wtcHJhaXNlOwor5L2O57SaID4gbG93XC1sZXZlbDsKK+iyqOi8qiA+IGZyZWlnaHRlcjsKK+mrlOWcmCA+IGNvbW11bml0eTsKK+alteWFtiA+IGV4dHJlbWVseTsKK+aKteaKlyA+IHRvXC1yZXNpc3Q7CivporHpoqggPiBodXJyaWNhbmU7CivkvLjnuK4gPiB0b1wtZXh0ZW5kOwor6Jqv6JqTID4gZWFydGh3b3JtOwor6LSW572qID4gYXRvbmVtZW50Owor5a+154mpID4gaG91c2VcLXBldDsKK+iBluiqlSA+IGNocmlzdG1hczsKK+WBh+WumiA+IHRvXC1hc3N1bWU7CivooYzli5UgPiBvcGVyYXRpb247CivkuLvpq5QgPiBtYWluXC1wYXJ0Owor5omL5rOVID4gdGVjaG5pcXVlOwor5raI6YGjID4gYW11c2VtZW50Owor5qW15LqGID4gZXh0cmVtZWx5Owor5bCx5qWtID4gZ2V0XC1hXC1qb2I7Civnlobln58gPiB0ZXJyaXRvcnk7CivmoYznh4ggPiBkZXNrXC1sYW1wOwor55aG5ZyfID4gdGVycml0b3J5Owor5om/5pOUID4gdW5kZXJ0YWtlOwor6Ia95bCPID4gY293YXJkaWNlOwor5bGs5oCnID4gYXR0cmlidXRlOwor6auY5YO5ID4gZXhwZW5zaXZlOwor5Li76aCBID4gaG9tZVwtcGFnZTsKK+e+jum6lyA+IGJlYXV0aWZ1bDsKK+acg+mdoiA+IG1lZXRcLXdpdGg7CivmiJDngrogPiB0b1wtYmVjb21lOwor5Lqk6Kq8ID4gY29tbXVuaW9uOwor6Yym57mhID4gYmVhdXRpZnVsOwor5r2b5YqbID4gcG90ZW50aWFsOwor5bGF5omAID4gcmVzaWRlbmNlOwor5a2456ulID4gc2Nob29sYm95Owor6Ieq5YuVID4gYXV0b21hdGljOwor6KCV5YuVID4gdG9cLXdpZ2dsZTsKK+aJk+aVlyA+IHRvXC1kZWZlYXQ7CivosarosawgPiBwb3JjdXBpbmU7CivllZ/nmbwgPiBlbmxpZ2h0ZW47CivmtYHph48gPiBmbG93XC1yYXRlOwor6LOc57WmID4gdG9cLWJlc3RvdzsKK+aLm+WLnyA+IHRvXC1yZWN1aXQ7CivlroznlaIgPiB0b1wtZmluaXNoOwor5bCN5pa8ID4gcmVnYXJkaW5nOwor6Iez5LuKID4gdW50aWxcLW5vdzsKK+e/u+itryA+IHRyYW5zbGF0ZTsKK+S4iumdoiA+IG9uXC10b3BcLW9mOwor5LqU6JmfID4gdGhlXC1maWZ0aDsKK+S/oeW3riA+IG1lc3NlbmdlcjsKK+iGgOWtkCA+IHVwcGVyXC1hcm07Civmi4bljbggPiB0b1wtdW5sb2FkOwor6JuL55m9ID4gZWdnXC13aGl0ZTsKK+WQnumjnyA+IHRvXC1kZXZvdXI7CivmoYbmnrYgPiBmcmFtZXdvcms7Civog4Pngo4gPiBnYXN0cml0aXM7CivlsI3mipcgPiB3aXRoc3RhbmQ7CivlmajlhbcgPiBpbXBsZW1lbnQ7CivohKvmjokgPiBzdHJpcFwtb2ZmOwor6aaZ5rivID4gaG9uZ1wta29uZzsKK+WvpuaZgiA+IHJlYWxcLXRpbWU7Civogrrngo4gPiBwbmV1bW9uaWE7CivmhbbnpZ0gPiBjZWxlYnJhdGU7CivlrrDmrrogPiBzbGF1Z2h0ZXI7CivmtarolakgPiB0b1wtbG9pdGVyOwor6LGq6I+vID4gbHV4dXJpb3VzOwor5p+Q54mpID4gc29tZXRoaW5nOwor5rSl6LK8ID4gYWxsb3dhbmNlOwor6IKd54KOID4gaGVwYXRpdGlzOwor5raI6ICXID4gdG9cLXVzZVwtdXA7CivkuIrovIkgPiB0b1wtdXBsb2FkOwor6Jit6IqxID4gY3ltYmlkaXVtOwor5pu46KiYID4gc2VjcmV0YXJ5Owor5rWq6Ii5ID4gc3dpbmdib2F0Owor5bCP5a+rID4gbG93ZXJjYXNlOwor55So5YW3ID4gYXBwbGlhbmNlOwor5Y+k6aKoID4gYW50aXF1aXR5Owor5a6J5q2HID4gZ29cLXRvXC1iZWQ7Civlrrbml48gPiBob3VzZWhvbGQ7CivkvZXmlYUgPiB3aGVyZWZvcmU7CivohbPljbAgPiBmb290cHJpbnQ7Civnk7flmaggPiBjaGluYXdhcmU7Civnq6XlubQgPiBjaGlsZGhvb2Q7CivkvZTmk5ogPiB0b1wtb2NjdXB5Owor6LW35bqKID4gdG9cLWdldFwtdXA7Civlr6zluLYgPiBicm9hZGJhbmQ7CivkvoblubQgPiBuZXh0XC15ZWFyOwor5LuK55SfID4gdGhpc1wtbGlmZTsKK+mgu+mBkyA+IGZyZXF1ZW5jeTsKK+acrOiBtyA+IG9uZScnc1wtam9iOwor5bGA5YuiID4gc2l0dWF0aW9uOwor6IOM5pacID4gYW50aWNsaW5lOwor5pq06LqBID4gaXJhc2NpYmxlOwor5rGg6bm9ID4gbGFrZVwtc2FsdDsKK+S4jeiosSA+IG5vdFwtYWxsb3c7CivllYbmqJkgPiB0cmFkZW1hcms7Civpo6/nopcgPiByaWNlXC1ib3dsOwor5pmk6Z2iID4gaW50ZXJ2aWV3Owor5qGU5a2QID4gdGFuZ2VyaW5lOwor6YeN6ZaLID4gdG9cLXJlb3BlbjsKK+iuiumdqSA+IHRyYW5zZm9ybTsKK+aIquWlqiA+IGludGVyY2VwdDsKK+a3seawtCA+IGRlZXB3YXRlcjsKK+i2qOWQkSA+IGRpcmVjdGlvbjsKK+i1t+WniyA+IG9yaWdpbmF0ZTsKK+elh+iugCA+IHJlYWRcLW9ubHk7CivlrbjmnIMgPiBpbnN0aXR1dGU7Civmh7jltJYgPiBwcmVjaXBpY2U7Civmop3ku7YgPiBjb25kaXRpb247Civpt5PptKMgPiBwYXJ0cmlkZ2U7CivmnKvnq68gPiBleHRyZW1pdHk7Civnk5zliIYgPiBwYXJ0aXRpb247CivomZXnkIYgPiB0b1wtaGFuZGxlOwor5raM54++ID4gc3ByaW5nXC11cDsKK+emruevgCA+IGV0aXF1ZXR0ZTsKK+aZrumBjSA+IHVuaXZlcnNhbDsKK+iuiumGnCA+IGRpc2ZpZ3VyZTsKK+S4puiCqSA+IGFsb25nc2lkZTsKK+icguW3oiA+IGhvbmV5Y29tYjsKK+S4ree+jiA+IGNoaW5hXC11c2E7Civmmpfoqp4gPiBjb2RlXC13b3JkOwor56uv5Y+jID4gaW50ZXJmYWNlOwor5L2O5bGkID4gbG93XC1sZXZlbDsKK+mHjei5iCA+IHRvXC1yZXBlYXQ7CivkvY/lroUgPiByZXNpZGVuY2U7CivkvJHmiLAgPiBhcm1pc3RpY2U7CivmiYDku6UgPiB0aGVyZWZvcmU7Civorpros54gPiB0b1wtYWRtaXJlOwor5rib5byxID4gdG9cLXdlYWtlbjsKK+WPm+izoyA+IHRvXC1iZXRyYXk7Civlq4znlpEgPiBzdXNwaWNpb247CivkvLjlsZUgPiBleHRlbnNpb247CivkuIDoh7QgPiB1bmFuaW1vdXM7CivogbLmmI4gPiBzdGF0ZW1lbnQ7CivppIrmrpYgPiBjdWx0aXZhdGU7Civmn7/lrZAgPiBwZXJzaW1tb247CivogIHniYwgPiBvbGRcLWJyYW5kOwor5aaW6aKoID4gZXZpbFwtd2luZDsKK+mMtuW4tiA+IHdhdGNoYmFuZDsKK+mHjeimgSA+IGltcG9ydGFudDsKK+a4m+WwkSA+IHRvXC1sZXNzZW47CivmnInnm4ogPiB3aG9sZXNvbWU7Civph43opIcgPiB0b1wtcmVwZWF0Owor56uL5Yi7ID4gZm9ydGh3aXRoOwor5rex5oCdID4gdG9cLXBvbmRlcjsKK+aXqemkkCA+IGJyZWFrZmFzdDsKK+mHjuiguyA+IGJhcmJhcm91czsKK+aXqemjryA+IGJyZWFrZmFzdDsKK+W/hemcgCA+IGVzc2VudGlhbDsKK+iyoeadsSA+IHNob3Bvd25lcjsKK+iZm+aniyA+IGltYWdpbmFyeTsKK+iBr+aDsyA+IGFzc29jaWF0ZTsKK+a1uOaykiA+IGltbWVyc2lvbjsKK+adv+aWpyA+IGJyb2FkXC1heGU7CivlkKvns4ogPiBvYnNjdXJpdHk7Civmt5LmhZggPiBtaXNlcmFibGU7CivkuIDnr4cgPiBvbmVcLXNpZGVkOwor6Y215YWlID4gdG9cLWtleVwtaW47Civml4vpoqggPiB3aGlybHdpbmQ7CivnpZ3npo8gPiBibGVzc2luZ3M7CivmnJ/mu78gPiB0b1wtZXhwaXJlOwor6K2m6Ka6ID4gdmlnaWxhbmNlOwor5Y6f6KuSID4gdG9cLWV4Y3VzZTsKK+WutuS/sSA+IGZ1cm5pdHVyZTsKK+aEn+afkyA+IGluZmVjdGlvbjsKK+WtlOWtkCA+IGNvbmZ1Y2l1czsKK+WtkOWtqyA+IG9mZnNwcmluZzsKK+WutuS6uiA+IGhvdXNlaG9sZDsKK+WutuS6iyA+IGhvdXNld29yazsKK+Wuo+WCsyA+IHB1YmxpY2l6ZTsKK+S7iuW5tCA+IHRoaXNcLXllYXI7CivlkYjnj74gPiB0b1wtYXBwZWFyOwor5LiA55m+ID4gYVwtaHVuZHJlZDsKK+iyq+W+uSA+IGltcGxlbWVudDsKK+S7suWkjyA+IG1pZHN1bW1lcjsKK+itieipniA+IHRlc3RpbW9ueTsKK+enmOabuCA+IHNlY3JldGFyeTsKK+eqgeWHuiA+IHByb21pbmVudDsKK+aDoeavkiA+IG1hbGljaW91czsKK+S8tOS+tiA+IGNvbXBhbmlvbjsKK+aYguiytCA+IGV4cGVuc2l2ZTsKK+mcsumfkyA+IHRvXC1leHBvc2U7CivlvbHpn78gPiBpbmZsdWVuY2U7CivlpKLprZggPiBuaWdodG1hcmU7Civlpb3pgYsgPiBnb29kXC1sdWNrOwor5pq055m8ID4gYnJlYWtcLW91dDsKK+aHieS7mCA+IGRlYWxcLXdpdGg7CivmnInmr5IgPiBwb2lzb25vdXM7CivlvLHpubwgPiB3ZWFrXC1iYXNlOwor5rG96Ii5ID4gc3RlYW1ib2F0Owor5Y+v56yRID4gbGF1Z2hhYmxlOwor5Y2K6LyJID4gaGFsZlwtbG9hZDsKK+W+rui7nyA+IG1pY3Jvc29mdDsKK+S7meWigyA+IGZhaXJ5bGFuZDsKK+aXqOi2oyA+IG9iamVjdGl2ZTsKK+aXpei2qCA+IGdyYWR1YWxseTsKK+S6i+aFiyA+IHNpdHVhdGlvbjsKK+Wkp+mhniA+IG1haW5cLXR5cGU7CivmnKzmlocgPiB0aGlzXC10ZXh0Owor54ef6aSKID4gbnV0cml0aW9uOwor6aC7546HID4gZnJlcXVlbmN5Owor5Y2U6K2wID4gYWdyZWVtZW50Owor5LiN5ru/ID4gcmVzZW50ZnVsOwor6YKj6bq8ID4gc29cLVwobXVjaFwpOwor5b+F6KaBID4gbmVjZXNzYXJ5Owor5aSn6Zm4ID4gY29udGluZW50Owor56Kn6JeNID4gZGFya1wtYmx1ZTsKK+W+hemBhyA+IHRyZWF0bWVudDsKK+WQiOeQhiA+IHJhdGlvbmFsZTsKK+eOqeW8hCA+IHJlc29ydFwtdG87CivmnInmmYIgPiBzb21ldGltZXM7Civml4Hot68gPiB0b1wtYnlwYXNzOwor5aSc6ZaTID4gbmlnaHR0aW1lOwor5q+U6YSwID4gbmVpZ2hib3VyOwor6Z2e6K2wID4gY3JpdGljaXplOwor5pu45p62ID4gYm9va3NoZWxmOwor5re35LqCID4gY29uZnVzaW9uOwor5pyJ5pWIID4gZWZmZWN0aXZlOwor57y955uCID4gYWxtc1wtYm93bDsKK+izh+WKqSA+IHN1YnNpZGl6ZTsKK+S4iuasoSA+IGxhc3RcLXRpbWU7CivniYzomZ8gPiB0cmFkZW1hcms7CivkupTlpKkgPiBmaXZlXC1kYXlzOwor5raI5aSxID4gZGlzYXBwZWFyOwor5peB6KeAID4gc3BlY3RhdG9yOwor56Oo55+zID4gbWlsbHN0b25lOwor5LuL5YWlID4gaW50ZXJ2ZW5lOwor5Lul5LiKID4gbW9yZVwtdGhhbjsKK+efm+mgrSA+IHNwZWFyaGVhZDsKK+WkoumBuiA+IHdldFwtZHJlYW07CivorornlbAgPiB2YXJpYXRpb247Civms6LmrrUgPiB3YXZlXC1iYW5kOwor6Zui6ZaLID4gdG9cLWRlcGFydDsKK+eNsuW+lyA+IHRvXC1vYnRhaW47CivlkJDmsKMgPiBhc3BpcmF0ZWQ7CivmnbHljZcgPiBzb3V0aGVhc3Q7CivmnbHljJcgPiBub3J0aGVhc3Q7CivkuI3mmI4gPiBub3RcLWNsZWFyOwor5aWH6KeAID4gc3BlY3RhY2xlOwor5pS56Z2pID4gdG9cLXJlZm9ybTsKK+aEm+WciyA+IHBhdHJpb3RpYzsKK+S4jeaWtyA+IHVuY2Vhc2luZzsKK+S7iuS4liA+IHRoaXNcLWxpZmU7CivmnKrlqZogPiB1bm1hcnJpZWQ7CivlvLHphbggPiB3ZWFrXC1hY2lkOwor5pS26ZuGID4gdG9cLWdhdGhlcjsKK+S5mOWuoiA+IHBhc3NlbmdlcjsKK+S4gOaZgiA+IHRlbXBvcmFyeTsKK+WKqemVtyA+IGVuY291cmFnZTsKK+S6pOWHuiA+IGhhbmRcLW92ZXI7Civpo5/lk4EgPiBmb29kc3R1ZmY7CivphY3nva4gPiB0b1wtZGVwbG95Owor5aSx6Kq/ID4gaW1iYWxhbmNlOwor5raI5Y67ID4gZWxpbWluYXRlOwor5pys5aOYID4gaG9tZVwtYmFzZTsKK+S6uuS6iyA+IHBlcnNvbm5lbDsKK+aCsuaFmCA+IG1pc2VyYWJsZTsKK+itmOebuCA+IHNlbnNpdGl2ZTsKK+abuOW6lyA+IGJvb2tzdG9yZTsKK+mCiumWgCA+IHNpZGVcLWRvb3I7CivkuK3luq0gPiBjb3VydHlhcmQ7Civlj7jmqZ8gPiBjaGF1ZmZldXI7CivnjajlrrYgPiBleGNsdXNpdmU7CivmnbHkup4gPiBlYXN0XC1hc2lhOwor5b6p57+SID4gdG9cLXJldmlzZTsKK+WQiOagvCA+IHF1YWxpZmllZDsKK+aaq+aZgiA+IHRlbXBvcmFyeTsKK+mbmemCiiA+IGJpbGF0ZXJhbDsKK+iAkOWKmyA+IGVuZHVyYW5jZTsKK+aYjueiuiA+IGNsZWFyXC1jdXQ7CivkuI3mg5wgPiBub3RcLXN0aW50Owor5oOh5aSiID4gbmlnaHRtYXJlOwor5Y6f55CGID4gcHJpbmNpcGxlOwor5Li75ammID4gaG91c2V3aWZlOwor546p5YW3ID4gcGxheXRoaW5nOwor6Zu76KmxID4gdGVsZXBob25lOwor5pa96IKlID4gZmVydGlsaXplOwor5pS56YCgID4gdG9cLWNoYW5nZTsKK+eLgOazgSA+IGNvbmRpdGlvbjsKK+S4jeW5syA+IGluanVzdGljZTsKK+mAmem6vCA+IHNvXC1cKG11Y2hcKTsKK+S4jeW3siA+IGVuZGxlc3NseTsKK+mbnOiyqCA+IGdyb2NlcmllczsKK+acqOWMoCA+IGNhcnBlbnRlcjsKK+iplemBuCA+IHRvXC1jaG9vc2U7CivphqzmsrkgPiBzb3lcLXNhdWNlOwor5bu66YCgID4gY29uc3RydWN0Owor6Ke46ayaID4gdGVudGFjbGVzOwor5pOm6Z+zID4gZnJpY2F0aXZlOwor5ZGo5ZyNID4gZW5jb21wYXNzOwor5LiN5bCNID4gaW5jb3JyZWN0Owor5b+D55uuID4gbWVudGFsaXR5Owor5Y+v5pWsID4gdmVuZXJhYmxlOwor5Y+X5qC8ID4gb2JqZWN0aXZlOwor5aSn6I2zID4gc295YVwtYmVhbjsKK/CipZ4gPiBzYW1lXC1hc1wt5b+hOwor5aWR57SEID4gYWdyZWVtZW50Owor6bG36a2aID4gYWxsaWdhdG9yOwor5rOi5bmFID4gYW1wbGl0dWRlOwor5pS56K6KID4gdG9cLWNoYW5nZTsKK+W6remZoiA+IGNvdXJ0eWFyZDsKK+emruWEgCA+IGV0aXF1ZXR0ZTsKK+WPs+aJiyA+IHJpZ2h0aGFuZDsKK+WJtemAoCA+IHRvXC1jcmVhdGU7CivmtYHlhaUgPiBmbG93XC1pbnRvOwor5rOo5bCEID4gaW5qZWN0aW9uOwor56Gs55ukID4gaGFyZFwtZGlzazsKK+WKn+iqsiA+IGNsYXNzd29yazsKK+mAsemVtyA+IHBlcmltZXRlcjsKK+aciOWFiSA+IG1vb25saWdodDsKK+Wksee4sSA+IGRpc2FwcGVhcjsKK+WpmuWnuyA+IG1hdHJpbW9ueTsKK+WPo+aJjSA+IGVsb3F1ZW5jZTsKK+S4jeWcqCA+IG5vdFwtYmVcLWluOwor6Z6t5q+bID4gZmxhZ2VsbHVtOwor5pKr6aSKID4gdG9cLWZvc3RlcjsKK+a0vuS7uyA+IHNldFwtYXBhcnQ7CivliKrpmaQgPiB0b1wtZGVsZXRlOwor6YGg6LazID4gZXhjdXJzaW9uOwor54Sh6ZmQID4gdW5saW1pdGVkOwor6aCR5by3ID4gdGVuYWNpb3VzOwor54Sh6ZecID4gdW5yZWxhdGVkOwor6JK455m8ID4gZXZhcG9yYXRlOwor5Y+k5oCqID4gZWNjZW50cmljOwor5b6X55W2ID4gZXhwZWRpZW50Owor5rK55biDID4gdGFycGF1bGluOwor5LiL5ZSHID4gbG93ZXJcLWxpcDsKK+e+qeWLmSA+IHZvbHVudGVlcjsKK+S4iuWUhyA+IHVwcGVyXC1saXA7CivpoIHlv4MgPiB0eXBlXC1wYWdlOwor5LiN5ZCdID4gbm90XC1zdGludDsKK+S4jeWQjCA+IGRpZmZlcmVudDsKK+axoeafkyA+IHBvbGx1dGlvbjsKK+WJjemAlCA+IHByb3NwZWN0czsKK+eGiuicgiA+IGJ1bWJsZWJlZTsKK+e4vee1kCA+IHN1bW1hcml6ZTsKK+e+juWRsyA+IGRlbGljaW91czsKK+WQuOWPliA+IHRvXC1hYnNvcmI7CivkuIvljYggPiBhZnRlcm5vb247CivpgLHpgoogPiBwZXJpcGhlcnk7CivlubTpmZAgPiBhZ2VcLWxpbWl0Owor5LiL5YiXID4gZm9sbG93aW5nOwor5LiN5YeGID4gbm90XC1hbGxvdzsKK+mhjOWQjSA+IGF1dG9ncmFwaDsKK+WkmuerryA+IG11bHRpcG9ydDsKK+aViOiDvSA+IGVmZmljaWVudDsKK+S4jeWBnCA+IGluY2Vzc2FudDsKK+Wkp+egsiA+IGFydGlsbGVyeTsKK+S4jeWAvCA+IG5vdFwtd29ydGg7CivmspnlsqkgPiBzYW5kc3RvbmU7Civms6Llj4ogPiBzcHJlYWRcLXRvOwor5b6u5rOiID4gbWljcm93YXZlOwor5LiN5LyRID4gZW5kbGVzc2x5Owor54Sh6L6cID4gaW5ub2NlbmNlOwor5qyh6KaBID4gc2Vjb25kYXJ5Owor5LiN5LqIID4gbm90XC1ncmFudDsKK+WOu+W5tCA+IGxhc3RcLXllYXI7CivkuI3kuoYgPiB1bmFibGVcLXRvOwor6aCY5ZyfID4gdGVycml0b3J5Owor6Z+M5oCnID4gdG91Z2huZXNzOwor56S+5Y2AID4gY29tbXVuaXR5Owor54mI5qyKID4gY29weXJpZ2h0Owor5ZCR5Y2XID4gc291dGh3YXJkOwor5rCR5q2MID4gZm9sa1wtc29uZzsKK+WNs+aZgiA+IGltbWVkaWF0ZTsKK+aSremAgSA+IGJyb2FkY2FzdDsKK+W5uOmBiyA+IGZvcnR1bmF0ZTsKK+e+juS4rSA+IHVzYVwtY2hpbmE7CivpmpXokL0gPiBmYWxsXC1kb3duOwor54af57e0ID4gcHJhY3RpY2VkOwor5pS557eoID4gdG9cLWFkYXB0Owor56OB5oCnID4gbWFnbmV0aWM7Civlo5Pnt4ogPiBjb21wcmVzczsKK+mGq+WtuCA+IG1lZGljaW5lOwor5ZCe5L21ID4gdG9cLWFubmV4Owor6Z2I5rS7ID4gZmxleGlibGU7CivmlofnjbsgPiBkb2N1bWVudDsKK+WklueUqCA+IGV4dGVybmFsOwor6YKK57eaID4gc2lkZWxpbmU7CivmraPntbEgPiBvcnRob2RveDsKK+W7tue6jCA+IGNvbnRpbnVlOwor6aC75LuNID4gZnJlcXVlbnQ7Civnt6/nt5ogPiBsYXRpdHVkZTsKK+eEoeiqpCA+IHZlcmlmaWVkOwor5pel5puGID4gY2FsZW5kYXI7CivliZ3okL0gPiBwZWVsXC1vZmY7CivpoJDljZwgPiBmb3JldGVsbDsKK+W5u+ixoSA+IGlsbHVzaW9uOwor6Ky55oWOID4gY2F1dGlvdXM7CivnibnmgKcgPiBwcm9wZXJ0eTsKK+iMtumkqCA+IHRlYWhvdXNlOwor6bOl57GgID4gYmlyZGNhZ2U7Civlvq7mmI4gPiB0d2lsaWdodDsKK+W7uueviSA+IGJ1aWxkaW5nOwor5Y+L5ZaEID4gZnJpZW5kbHk7Civlu7rnq4sgPiBjcmVhdGlvbjsKK+mghuWIqSA+IHNtb290aGx5Owor5b+D5omLID4gbmV3XC1oYW5kOwor5Yaw6ZqZID4gY3JldmFzc2U7CivpnLjmrIogPiBoZWdlbW9ueTsKK+WNseaApSA+IGNyaXRpY2FsOwor6ZqZ57irID4gYXBlcnR1cmU7CivopqrouqsgPiBwZXJzb25hbDsKK+eiuuWumiA+IGRlZmluaXRlOwor57WC6LqrID4gbGlmZWxvbmc7CivoqJjogIUgPiByZXBvcnRlcjsKK+imj+mBvyA+IHRvXC1ldmFkZTsKK+eJp+W4qyA+IGNoYXBsYWluOwor5pS255uKID4gZWFybmluZ3M7Civlhbfpq5QgPiBjb25jcmV0ZTsKK+W5s+ihjCA+IHBhcmFsbGVsOwor5b+g5a+mID4gZmFpdGhmdWw7CivmraXnmbwgPiBmb290d29yazsKK+WIhuijgiA+IHNwbGl0XC11cDsKK+aWsOabuCA+IG5ld1wtYm9vazsKK+WPo+S6pCA+IG9yYWxcLXNleDsKK+WJteeriyA+IHRvXC1mb3VuZDsKK+eFpOeusSA+IGNvYWxcLWJveDsKK+e8uuS5jyA+IHNob3J0YWdlOwor5pel5b6MID4gc29tZXRpbWU7CivpgornlYwgPiBib3VuZGFyeTsKK+eBvemboyA+IGRpc2FzdGVyOwor5b655bqVID4gdGhvcm91Z2g7CivpsYnoo5kgPiBjYWxpcGFzaDsKK+itpuWPpSA+IGFwaG9yaXNtOwor5pep5beyID4gbG9uZ1wtYWdvOwor6ZuW54S2ID4gYWx0aG91Z2g7CivnoLTmm4kgPiBkYXlicmVhazsKK+mbqOa7tCA+IHJhaW5kcm9wOwor5piO5aSpID4gdG9tb3Jyb3c7Civlppblrb0gPiBldmlsZG9lcjsKK+mbu+awoyA+IGVsZWN0cmljOwor6YWs5aCxID4gdG9cLXJlcGF5Owor6YG655SiID4gaGVyaXRhZ2U7CivnoazluqYgPiBoYXJkbmVzczsKK+eEoeiBiiA+IG5vbnNlbnNlOwor5qmr6YGOID4gdHJhdmVyc2U7CivlvoHmiLAgPiBjYW1wYWlnbjsKK+iqsuacrCA+IHRleHRib29rOwor5YeL6KydID4gbGFuZ3Vpc2g7CivoqIjnrpcgPiB0b1wtY291bnQ7CivplovpmaQgPiB0b1wtZXhwZWw7CivpgannlbYgPiBzdWl0YWJsZTsKK+e6luW3pyA+IGRlbGljYXRlOwor5bmz6Ie6ID4gcGxhdGZvcm07CivlpKfmlrkgPiBnZW5lcm91czsKK+eEoee4qyA+IHNlYW1sZXNzOwor5Yag6LuNID4gY2hhbXBpb247Civlh4boqLEgPiB0b1wtYWxsb3c7CivphLDlsYUgPiBuZWlnaGJvcjsKK+mbu+airyA+IGVsZXZhdG9yOwor6JOL5bGkID4gY2FwXC1yb2NrOwor6Z2i5bCNID4gY29uZnJvbnQ7CivnhKHnt5ogPiB3aXJlbGVzczsKK+eiuuWIhyA+IGRlZmluaXRlOwor6YCa57SFID4gdmVyeVwtcmVkOwor5YyF5oqEID4gb3V0Zmxhbms7Civovqjoqo0gPiBpZGVudGlmeTsKK+WOn+S+hiA+IG9yaWdpbmFsOwor5aSa5pW4ID4gbWFqb3JpdHk7Civnianlk4EgPiBhcnRpY2xlczsKK+aUv+ayuyA+IHBvbGl0aWNzOwor5Y2K5aScID4gbWlkbmlnaHQ7CivljYjlpJwgPiBtaWRuaWdodDsKK+aWsOW5tCA+IG5ld1wteWVhcjsKK+aXheWuoiA+IHRyYXZlbGVyOwor6YC855yfID4gbGlmZWxpa2U7CivmraXms5UgPiBmb290d29yazsKK+WFrOmHkCA+IGRlY2lncmFtOwor5q665oiuID4gbWFzc2FjcmU7CivlipvmsKMgPiBzdHJlbmd0aDsKK+WFp+mDqCA+IGludGVyaW9yOwor6KaG6JOLID4gdG9cLWNvdmVyOwor57mh5bi3ID4gdGFwZXN0cnk7CivlpKrlv5kgPiB0b29cLWJ1c3k7CivnnaHnnKAgPiBzbGVlcGluZzsKK+ijnemjviA+IGRlY29yYXRlOwor5Y2B5ZubID4gZm91cnRlZW47CivlubPnrYkgPiBlcXVhbGl0eTsKK+eZvemHkSA+IHBsYXRpbnVtOwor5YyF5bGkID4gY2xhZGRpbmc7CivovYnpgIEgPiB0cmFuc2ZlcjsKK+WGjeimiyA+IGdvb2RcLWJ5ZTsKK+WkouW5uyA+IGlsbHVzaW9uOwor6YCV55u0ID4gc3RyYWlnaHQ7CivljbHkuqEgPiBhdFwtc3Rha2U7CivojYnojYkgPiBjYXJlbGVzczsKK+W3p+ioiCA+IG1hbmV1dmVyOwor6JGX5omLID4gY29tbWVuY2U7CivmlpnlrZAgPiBtYXRlcmlhbDsKK+ebsuiFuCA+IGFwcGVuZGl4Owor5pSv5p+xID4gbWFpbnN0YXk7CivlvaLlrrkgPiBkZXNjcmliZTsKK+eEoeeWkSA+IG5vXC1kb3VidDsKK+W8t+aCjSA+IHZhbGxpYW50Owor57KX6YeOID4gaW5zb2xlbnQ7CivooovpvKAgPiBrYW5nYXJvbzsKK+WmluS6uiA+IG1hZ2ljaWFuOwor6Luf6auUID4gc29mdHdhcmU7CivmlrDlnosgPiBuZXdcLXR5cGU7Civln7nogrIgPiB0b1wtdHJhaW47CivnhaTmsrkgPiBrZXJvc2VuZTsKK+WKoOaZgiA+IG92ZXJ0aW1lOwor5YWJ6LydID4gcmFkaWFuY2U7CivlvqnlhYMgPiByZWNvdmVyeTsKK+W8t+W6piA+IHN0cmVuZ3RoOwor5Y2B5YWrID4gZWlnaHRlZW47CivlpbPlhZIgPiBkYXVnaHRlcjsKK+WkmuWwkSA+IGhvd1wtbXVjaDsKK+WNgeWFiyA+IGRlY2FncmFtOwor5Zyw6Zu3ID4gbGFuZG1pbmU7CivlpoLku4ogPiBub3dhZGF5czsKK+mCquaDoSA+IHNpbmlzdGVyOwor6KeA55yLID4gdG9cLXdhdGNoOwor5b6X5YiGID4gdG9cLXNjb3JlOwor5YyF5ZyNID4gc3Vycm91bmQ7Civmr5TllrsgPiBtZXRhcGhvcjsKK+imj+evhCA+IHN0YW5kYXJkOwor6LuA6auUID4gdGhlXC1ib2R5Owor56Gs5Lu2ID4gaGFyZHdhcmU7CivlpKnloIIgPiBwYXJhZGlzZTsKK+WNgeS5nSA+IG5pbmV0ZWVuOwor5YWJ6K2cID4gc3BlY3RydW07Civoo5zpgbogPiBhZGRlbmR1bTsKK+mBoOadsSA+IGZhclwtZWFzdDsKK+WNgeS4iSA+IHRoaXJ0ZWVuOwor5qmf6IO9ID4gZnVuY3Rpb247Civokpnlj6QgPiBtb25nb2xpYTsKK+mBoOaZryA+IHByb3NwZWN0Owor57SQ57SEID4gbmV3XC15b3JrOwor5pWZ5bCOID4gaW5zdHJ1Y3Q7Civmj5DorbAgPiBwcm9wb3NhbDsKK+WEqui2iiA+IHN1cGVyaW9yOwor6YCy5q2lID4gcHJvZ3Jlc3M7Civpga7mjqkgPiB0b1wtY292ZXI7Civpm7vloLEgPiB0ZWxlZ3JhbTsKK+aRueeVqyA+IGRlc2NyaWJlOwor6LuK6ZaTID4gd29ya3Nob3A7CivlvoDkvoYgPiBkZWFsaW5nczsKK+iqv+WLlSA+IHRyYW5zZmVyOwor5byV5bCOID4gdG9cLWd1aWRlOwor6KOd6LKoID4gc2hpcHBpbmc7CivlipvluqYgPiBkeW5hbWlzbTsKK+mBjuaWvCA+IHRvb1wtbXVjaDsKK+ebo+emgSA+IGltcHJpc29uOwor5Yaw56qWID4gaWNlaG91c2U7CivloILnmocgPiBpbXBvc2luZzsKK+W0h+mrmCA+IG1hamVzdGljOwor55yB55WlID4gb21pc3Npb247Civmr43kv4IgPiBtYXRlcm5hbDsKK+aOoeiytyA+IHB1cmNoYXNlOwor6LyV6KaWID4gY29udGVtcHQ7Civnsr7oh7QgPiBkZWxpY2FjeTsKK+mBsuW7tiA+IHRvXC1kZWxheTsKK+aUnOW4tiA+IHRvXC1jYXJyeTsKK+W7tuWxlSA+IHRvXC1zY2FsZTsKK+i+sueUsCA+IGZhcm1sYW5kOwor6YOo5L2NID4gcG9zaXRpb247CivlibXlu7ogPiB0b1wtZm91bmQ7Civlhafnva4gPiBpbnRlcm5hbDsKK+mZkOacnyA+IGRlYWRsaW5lOwor57eK5by1ID4gY3JpdGljYWw7CivoqJjmhrYgPiBtZW1vcmllczsKK+mBt+WwsSA+IHRvXC15aWVsZDsKK+eyvue+jiA+IGRlbGljYXRlOwor5by35YuBID4gcG93ZXJmdWw7Civmlofku7YgPiBkb2N1bWVudDsKK+auuuS6uiA+IGhvbWljaWRlOwor6YKK5aKDID4gZnJvbnRpZXI7CivlpJbkvoYgPiBleHRlcm5hbDsKK+WJm+aApyA+IHJpZ2lkaXR5Owor5YuD5YuDID4gdGhyaXZpbmc7CivpganlrpwgPiBzdWl0YWJsZTsKK+aTgeaToCA+IHRvXC1jcm93ZDsKK+aOiOiqsiA+IHRvXC10ZWFjaDsKK+ino+aVoyA+IGRpc3NvbHZlOwor6Zmw5oCnID4gZmVtaW5pbmU7Civli5XkvZwgPiBtb3ZlbWVudDsKK+aVpuS/gyA+IHRvXC1wcmVzczsKK+mbh+WToSA+IGVtcGxveWVlOwor54CJ6JelID4gbGF4YXRpdmU7Civmj5vnva4gPiBkaXNwbGFjZTsKK+mbqOWCmCA+IHVtYnJlbGxhOwor5ZyW6KyAID4gY29uc3BpcmU7CivokaPkuosgPiBkaXJlY3RvcjsKK+WLleS6uiA+IHRvdWNoaW5nOwor6Zi75pOKID4gdG9cLWNoZWNrOwor6KOc6IqxID4gYXBwbGlxdWU7CivloZfmirkgPiB0b1wtc21lYXI7CivpqqjpqrwgPiBza2VsZXRvbjsKK+ijneiIuSA+IHNoaXBtZW50Owor5qy65aOTID4gdG9cLWJ1bGx5Owor6I2S5ra8ID4gZGVzb2xhdGU7Civlh7nmnb8gPiBpbnRhZ2xpbzsKK+WKo+WLoiA+IGluZmVyaW9yOwor5YiG5pW4ID4gZnJhY3Rpb247Civnm47nhLYgPiBhYnVuZGFudDsKK+Wjk+WKmyA+IHByZXNzdXJlOwor6YCj5b+ZID4gcHJvbXB0bHk7CivpgqPlgIsgPiB0aGF0XC1vbmU7CivnhKHmg4UgPiBwaXRpbGVzczsKK+aTpuWvqyA+IHRvXC1lcmFzZTsKK+Wjk+WItiA+IHN1cHByZXNzOwor57K+56K6ID4gYWNjdXJhdGU7CivlhKrnvo4gPiBncmFjZWZ1bDsKK+iIqumBiyA+IHNoaXBwaW5nOwor5Ye95pW4ID4gZnVuY3Rpb247CivntpPluLggPiBldmVyeWRheTsKK+atpeWFtSA+IGluZmFudHJ5Owor5bmz5oi/ID4gYnVuZ2Fsb3c7CivlhrDmtrwgPiBpY2VcLWNvbGQ7Civlubvmg7MgPiBkZWx1c2lvbjsKK+W6j+W5lSA+IHByb2xvZ3VlOwor5Yi75a+rID4gaW5zY3JpYmU7CivlopPlnLAgPiBjZW1ldGVyeTsKK+mBv+WFjSA+IHRvXC1hdmVydDsKK+imj+agvCA+IHN0YW5kYXJkOwor5aC05omAID4gbG9jYXRpb247Civov73mgrwgPiBtb3VybmluZzsKK+mbh+S4uyA+IGVtcGxveWVyOwor5o+t55m8ID4gZGlzY2xvc2U7CivoqLHlj68gPiB0b1wtYWxsb3c7CivlgrPoqIogPiBzdWJwb2VuYTsKK+ipleS8sCA+IGV2YWx1YXRlOwor5ouW6Z6LID4gc2xpcHBlcnM7Civlgb3pgKAgPiB0b1wtZm9yZ2U7CivngavniYYgPiBmaXJld2FsbDsKK+WHtuaJiyA+IG11cmRlcmVyOwor54Sh5a6zID4gaGFybWxlc3M7Civou5/oho8gPiBvaW50bWVudDsKK+aOjOiBsiA+IGFwcGxhdXNlOwor6KGo6KeAID4gYXBwYXJlbnQ7Civln4vmspIgPiBvYmxpdmlvbjsKK+W5s+W4uCA+IG9yZGluYXJ5Owor5ouU6ZmkID4gcHVsbFwtb3V0Owor5aKe5YqgID4gdG9cLXJhaXNlOwor6LuM6IyDID4gc3RhbmRhcmQ7Civmkanmk6YgPiBmcmljdGlvbjsKK+imuuW+lyA+IHRvXC10aGluazsKK+mrmOiytCA+IGdyYW5kZXVyOwor5Ymq5YiAID4gc2Npc3NvcnM7CivlhYXnlbYgPiBzZXJ2ZVwtYXM7CivngrrmmYIgPiB0aW1ld2lzZTsKK+mBlOWIsCA+IHRvXC1yZWFjaDsKK+ilv+aWuSA+IHRoZVwtd2VzdDsKK+mBi+WLlSA+IG1vdmVtZW50Owor5qy65L6uID4gdG9cLWJ1bGx5Owor6YCa5aCxID4gYnVsbGV0aW47CivmkqXlrZAgPiBwbGVjdHJ1bTsKK+W6iuWiiiA+IG1hdHRyZXNzOwor5oqX6auUID4gYW50aWJvZHk7Civoh6jov5EgPiBjbG9zZVwtdG87CivojqvlpKcgPiBncmVhdGVzdDsKK+e0hOadnyA+IHJlc3RyaWN0Owor5YiH5a+mID4gZmVhc2libGU7CivnlYzpmZAgPiBib3VuZGFyeTsKK+mZveWFiSA+IHN1bnNoaW5lOwor5YiG5a2QID4gbW9sZWN1bGU7Civnm7jmh4kgPiByZWxldmFudDsKK+ecvuWkmiA+IG51bWVyb3VzOwor6Zi75aGeID4gdG9cLWJsb2NrOwor57WV5bCNID4gYWJzb2x1dGU7CivliIblqKkgPiBkZWxpdmVyeTsKK+euoemBkyA+IHBpcGVsaW5lOwor6YGK5Ly0ID4gcGxheW1hdGU7Civlt6Xmpa0gPiBpbmR1c3RyeTsKK+WGsOaOkiA+IGljZVwtcmFmdDsKK+mAsuWFpSA+IHRvXC1lbnRlcjsKK+i3r+mdoiA+IHBhdmVtZW50Owor55u05b6RID4gZGlhbWV0ZXI7CivnhKHlkI0gPiBuYW1lbGVzczsKK+e1kOWpmiA+IHRvXC1tYXJyeTsKK+WgteWhniA+IGJsb2NrYWdlOwor5pKk5ZueID4gd2l0aGRyYXc7Civnnb7kuLggPiB0ZXN0aWNsZTsKK+e2k+WFuCA+IGNsYXNzaWNzOwor6aiw6aiwID4gc3RlYW1pbmc7CivpgLzkurogPiBwcmVzc2luZzsKK+i8neeFjCA+IHNwbGVuZGlkOwor54Sh5YqpID4gaGVscGxlc3M7CivmjqHnlKggPiB0b1wtYWRvcHQ7Civlt7LmlYUgPiB0aGVcLWxhdGU7Civluo/liJcgPiBzZXF1ZW5jZTsKK+eZvOaxlyA+IHRvXC1zd2VhdDsKK+Wci+eriyA+IG5hdGlvbmFsOwor56606KiAID4gcHJvdmVyYnM7Civoo5zniJAgPiBmZXR0bGluZzsKK+i3nemboiA+IGRpc3RhbmNlOwor6Ieq6KO9ID4gaG9tZW1hZGU7CivpmLvlipsgPiBvYnN0YWNsZTsKK+eYn+eWqyA+IGVwaWRlbWljOwor6KCV6KCVID4gd2lnZ2xpbmc7CivpgIHliKUgPiBmYXJld2VsbDsKK+eEoeS6uiA+IHVubWFubmVkOwor5YWs5pakID4ga2lsb2dyYW07CivlhazmlocgPiBkb2N1bWVudDsKK+aKveixoSA+IGFic3RyYWN0Owor5Ye65Y+jID4gdG9cLXNwZWFrOwor6Kaq5ZaEID4gZ29vZHdpbGw7CivoiIjoh7QgPiBpbnRlcmVzdDsKK+mAlOS4rSA+IGVuXC1yb3V0ZTsKK+mWk+aOpSA+IGluZGlyZWN0Owor6ZC16LevID4gcmFpbHJvYWQ7CivmkKzlvIQgPiBtb3ZlXC1zdGg7CivmqJnmnKwgPiBzcGVjaW1lbjsKK+mAgOS9jSA+IGFiZGljYXRlOwor57WE5ZCIID4gYXNzZW1ibGU7CivloYzkuIsgPiBjb2xsYXBzZTsKK+mAg+S6oSA+IGZ1Z2l0aXZlOwor5oiw6aylID4gdG9cLWZpZ2h0Owor57Wx5LiAID4gdG9cLXVuaWZ5Owor5YiR5LqLID4gY3JpbWluYWw7Civmj5DmoYggPiBwcm9wb3NhbDsKK+ihneeqgSA+IGNvbmZsaWN0Owor6L+95LiKID4gb3ZlcnRha2U7CivoiKrnqbogPiBhdmlhdGlvbjsKK+S/rui+rSA+IHJoZXRvcmljOwor5r++5rayID4gZmlsdHJhdGU7CivlsI3pnaIgPiBvcHBvc2l0ZTsKK+WHveS7tiA+IGxldHRlcmVzOwor55u45Y+NID4gb3Bwb3NpdGU7CivmjIHnuowgPiBjb250aW51ZTsKK+mmtOm5vyA+IHJlaW5kZWVyOwor5omL6ZCyID4gYnJhY2VsZXQ7CivohKvpm6IgPiBzZXBhcmF0ZTsKK+mpmuionSA+IGNvbmZvdW5kOwor6ISK6aqoID4gYmFja2JvbmU7CivmjZXnjbIgPiB0b1wtY2F0Y2g7Civpp5Xpp5sgPiB0b1wtZHJpdmU7CivmjqHmqKMgPiBzYW1wbGluZzsKK+e0lOWTgSA+IHN0ZXJsaW5nOwor6ZaA5b6SID4gZGlzY2lwbGU7Civov5HkvoYgPiByZWNlbnRseTsKK+WvuumZoiA+IGNsb2lzdGVyOwor562U6KmxID4gdG9cLXJlcGx5Owor5qWt55WMID4gaW5kdXN0cnk7CivngavlsbEgPiB2b2xjYW5pYzsKK+WFtuWvpiA+IGFjdHVhbGx5Owor55Sf6KmeID4gbmV3XC13b3JkOwor6L+R5LmOID4gY2xvc2VcLXRvOwor5qK16KqeID4gc2Fuc2tyaXQ7Civkvr/pgZMgPiBzaG9ydGN1dDsKK+iksuWtkCA+IHRyb3VzZXJzOwor5a+n6Z2cID4gdHJhbnF1aWw7CivnnIHku70gPiBwcm92aW5jZTsKK+WwgemOliA+IGJsb2NrYWRlOwor5L+v6KaWID4gb3Zlcmxvb2s7CivltKnmvbAgPiBjb2xsYXBzZTsKK+i8ieaUnCA+IHRvXC1jYXJyeTsKK+a/leawoyA+IG1vaXN0dXJlOwor57K+5a+GID4gYWNjdXJhY3k7CivojLbljJkgPiB0ZWFzcG9vbjsKK+Wci+awkSA+IG5hdGlvbmFsOwor5YWE5byfID4gYnJvdGhlcnM7CivmoKHpqZcgPiB0b1wtY2hlY2s7Civnspflv4MgPiBjYXJlbGVzczsKK+WGsOWGtyA+IGljZVwtY29sZDsKK+iIiOebmyA+IGZsb3VyaXNoOwor5YCY6IulID4gcHJvdmlkZWQ7Civpl5zkv4IgPiByZWxhdGlvbjsKK+eZvOWwhCA+IHRvXC1zaG9vdDsKK+aJi+i2syA+IG1vdmVtZW50Owor5qmf5YuVID4gZmxleGlibGU7CivmjqHmjpggPiBleGNhdmF0ZTsKK+i2iumBjiA+IHRvXC1jcm9zczsKK+ijgeaSpCA+IGRpc3NvbHZlOwor5YW15ZmoID4gd2VhcG9ucnk7Civmi5Tnr4AgPiBqb2ludGluZzsKK+a8lOe/kiA+IGV4ZXJjaXNlOwor57SK5LqCID4gZGlzb3JkZXI7Civot7PoiJ4gPiB0b1wtZGFuY2U7Civnr4TnlocgPiBjYXRlZ29yeTsKK+WFteWToSA+IHNvbGRpZXJzOwor5rq26KejID4gZGlzc29sdmU7CivmjpnmiY4gPiBzdHJ1Z2dsZTsKK+a7suiJsiA+IGJsZWVkaW5nOwor6JuL6buDID4gZWdnXC15b2xrOwor5YWx5ZKMID4gcmVwdWJsaWM7Civou43mlrkgPiBtaWxpdGFyeTsKK+ani+aDsyA+IGNvbmNlaXZlOwor6IOM6Z2iID4gdGhlXC1iYWNrOwor6LyU5bCOID4gdG9cLWNvYWNoOwor5a+26LK0ID4gdmFsdWFibGU7CivlhaXlj6MgPiBlbnRyYW5jZTsKK+mplee4sSA+IGFycm9nYW50Owor6ZaL5Ym1ID4gaW5pdGlhdGU7CivkvrXonZUgPiB0b1wtZXJvZGU7CivlhIDlvI8gPiBjZXJlbW9ueTsKK+aJgeifsiA+IGZsYXR3b3JtOwor5YW85L21ID4gdG9cLWFubmV4Owor5qiC5ZySID4gcGFyYWRpc2U7Civlrrnph48gPiBjYXBhY2l0eTsKK+aPj+WcliA+IHRvXC10cmFjZTsKK+i1pOi2syA+IGJhcmVmb290Owor5bGB6IKhID4gYnV0dG9ja3M7Civnmbzli5UgPiB0b1wtc3RhcnQ7Civoo73lk4EgPiBwcm9kdWN0czsKK+WFseS6qyA+IHRvXC1zaGFyZTsKK+iLseS/iiA+IGhhbmRzb21lOwor5o235b6RID4gc2hvcnRjdXQ7CivooYzmpa0gPiBpbmR1c3RyeTsKK+mmrOi7iiA+IGNhcnJpYWdlOwor5YWs5Li7ID4gcHJpbmNlc3M7Civmj5DlkI0gPiBub21pbmF0ZTsKK+Wbm+aWuSA+IGZvdXJcLXdheTsKK+eyl+WOsiA+IGFicmFzaXZlOwor6LuK5buCID4gY2FycmlhZ2U7Civoh6rmsrsgPiBhdXRvbm9teTsKK+mrmOaetiA+IG92ZXJoZWFkOwor5Zuw5oORID4gYmV3aWxkZXI7CivnrJHogbIgPiBsYXVnaHRlcjsKK+advum8oCA+IHNxdWlycmVsOwor5YSq5YuiID4gc3VwZXJpb3I7CivnsL/lrZAgPiBub3RlYm9vazsKK+WCsuaFoiA+IGFycm9nYW50Owor5YWI5LukID4gc2hpbGxpbmc7CivmuKDpgZMgPiBjaGFubmVsczsKK+agoeiogiA+IHJldmlzaW9uOwor5qOS55CDID4gYmFzZWJhbGw7CivlhKrlhYggPiBwcmlvcml0eTsKK+WZtOaziSA+IGZvdW50YWluOwor6LuN5aOrID4gc2VyZ2VhbnQ7Civkvoboh6ggPiBhcHByb2FjaDsKK+iho+W7miA+IHdhcmRyb2JlOwor5Lu96YePID4gcXVhbnRpdHk7Civlg7Hlk6EgPiBlbXBsb3llZTsKK+aHieipsiA+IG91Z2h0XC10bzsKK+aOoeWFiSA+IGxpZ2h0aW5nOwor6IGa6ZuGID4gYXNzZW1ibGU7CivmjInmjbogPiByZXN0cmFpbjsKK+ijgeWIpCA+IGp1ZGdtZW50Owor5Lq66aGeID4gaHVtYW5pdHk7CivkvLDoqIggPiBlc3RpbWF0ZTsKK+WdkOS4iyA+IHNpdFwtZG93bjsKK+WuieiskCA+IHRyYW5xdWlsOwor5Zue5a62ID4gaG9tZXdhcmQ7Civkvb/ogIUgPiBlbWlzc2FyeTsKK+W0qeWhjCA+IGNvbGxhcHNlOwor5omT56C0ID4gdG9cLWJyZWFrOwor5bCN56ixID4gc3ltbWV0cnk7CivlgYfmnJ8gPiB2YWNhdGlvbjsKK+mjvOmkiiA+IHRvXC1yYWlzZTsKK+iho+WtkCA+IGNvdmVyaW5nOwor6LO86LK3ID4gcHVyY2hhc2U7Civou7zkuosgPiBhbmVjZG90ZTsKK+eogOmjryA+IHBvcnJpZGdlOwor5oqx5q2JID4gYmVcLXNvcnJ5Owor5ryC5rWuID4gdG9cLWZsb2F0Owor5qW15aW9ID4gZmFidWxvdXM7CivmpbXlpKcgPiBlbm9ybW91czsKK+eVjOaomSA+IGxhbmRtYXJrOwor5Zyw5L2NID4gcG9zaXRpb247CivnqLHph40gPiB0b1wtd2VpZ2g7Civnr4DmhbYgPiBmZXN0aXZhbDsKK+igu+W5siA+IHJlY2tsZXNzOwor6ayn5Y2AID4gZG93bnRvd247CivmupbnorogPiBhY2N1cmF0ZTsKK+S+teeVpSA+IGludmFzaW9uOwor5L2157SXID4gZG91Ymxpbmc7Civnl4XlpKsgPiBzaWNrXC1tYW47CivmjojkuoggPiB0b1wtYXdhcmQ7CivlrbjooZMgPiBsZWFybmluZzsKK+Wci+WFpyA+IGRvbWVzdGljOwor6LK06YeNID4gcHJlY2lvdXM7CivlsaDmrrogPiBtYXNzYWNyZTsKK+aLlOaOiSA+IHRvXC1wbHVjazsKK+ewoeWMliA+IHNpbXBsaWZ5Owor6amV5qmrID4gYXJyb2dhbnQ7CivosrfpgLIgPiBwdXJjaGFzZTsKK+iyt+mAmiA+IHRvXC1icmliZTsKK+aFjumHjSA+IGNhdXRpb3VzOwor5ruR5rqcID4gc2xpcHBlcnk7CivmjIflsI4gPiB0b1wtZ3VpZGU7CivkvY3nva4gPiBwb3NpdGlvbjsKK+evoeWlqiA+IHRvXC11c3VycDsKK+iHqOW6iiA+IGNsaW5pY2FsOwor5qC956iuID4gdG9cLXBsYW50Owor5oiw55WlID4gc3RyYXRlZ3k7CivlnJLkuIEgPiBnYXJkZW5lcjsKK+acrOmrlCA+IG5vdW1lbm9uOwor6aqo5bm5ID4gYmFja2JvbmU7CivkurrpgZMgPiBodW1hbml0eTsKK+i6q+WIhiA+IHBvc2l0aW9uOwor5Lq66YCgID4gbWFuXC1tYWRlOwor55Si5qWtID4gaW5kdXN0cnk7CivlsYXmsJEgPiByZXNpZGVudDsKK+iFs+atpSA+IGZvb3RzdGVwOwor5ou85a2XID4gc3BlbGxpbmc7CivmnbHpg6ggPiB0aGVcLWVhc3Q7Civpq5jlnLAgPiBoaWdobGFuZDsKK+WbuuS7tiA+IGZpcm13YXJlOwor5Lq66LqrID4gcGVyc29uYWw7CivpkbLltYwgPiB0b1wtaW5sYXk7Civmpa3li5kgPiBidXNpbmVzczsKK+Wvn+eciyA+IHRvXC13YXRjaDsKK+WAjeaVuCA+IG11bHRpcGxlOwor5bCN54WnID4gY29udHJhc3Q7CivmirXmirwgPiBtb3J0Z2FnZTsKK+iCqeiGgCA+IHNob3VsZGVyOwor566x5a2QID4gc3VpdGNhc2U7Civouqvku70gPiBpZGVudGl0eTsKK+S9juetiSA+IGluZmVyaW9yOwor5bCx5q2kID4gYW5kXC10aHVzOwor562G5p62ID4gcGVuXC1yYWNrOwor5a+254mpID4gdHJlYXN1cmU7CivnlJ/ml6UgPiBiaXJ0aGRheTsKK+mQmOaTuiA+IHBlbmR1bHVtOwor6amF5pWjID4gZGlzcGVyc2U7CivmirHmgKggPiBjb21wbGFpbjsKK+etieaWvCA+IGVxdWFsXC10bzsKK+WtuOe/kiA+IHRvXC1sZWFybjsKK+aKmOaJoyA+IGRpc2NvdW50Owor5oe455aRID4gc3VzcGVuc2U7Civnj43osrQgPiBwcmVjaW91czsKK+aHt+eWkSA+IHRvXC1kb3VidDsKK+eVtuWkqSA+IHRoYXRcLWRheTsKK+mNteebpCA+IGtleWJvYXJkOwor5oyH5Y2XID4gdG9cLWd1aWRlOwor5a6255SoID4gaG9tZVwtdXNlOwor55Sf5oSPID4gYnVzaW5lc3M7CivogJfosrsgPiB0b1wtd2FzdGU7Civoh7TlipsgPiB3b3JrXC1mb3I7CivkupvoqLEgPiB0cmlmbGluZzsKK+S6lOinkiA+IHBlbnRhZ29uOwor562J5b6FID4gd2FpdFwtZm9yOwor5oi/5p2xID4gbGFuZGxvcmQ7Civkv67lu7ogPiB0b1wtYnVpbGQ7CivmtarosrsgPiB0b1wtd2FzdGU7CivnqoHnmbwgPiBvdXRidXJzdDsKK+S/oeW+kiA+IGJlbGlldmVyOwor5omT5o6DID4gdG9cLWNsZWFuOwor5oqA5belID4gbWVjaGFuaWM7CivmjIHkuYUgPiBkdXJhdGlvbjsKK+etlOWwjSA+IHRvXC1yZXBseTsKK+miqOi7iiA+IHdpbmRtaWxsOwor5omL5o+QID4gcG9ydGFibGU7Civpo5vooYwgPiBhdmlhdGlvbjsKK+S4jemdiCA+IG5vdFwtd29yazsKK+WuieeUnyA+IHBlYWNlZnVsOwor5omT5omuID4gZHJlc3NcLXVwOwor5YCS5aGMID4gY29sbGFwc2U7CivnlJ/lrZggPiB0b1wtZXhpc3Q7Civos6bnqIUgPiB0YXhhdGlvbjsKK+WtlOeptCA+IGFwZXJ0dXJlOwor5rW06KGjID4gYmF0aHJvYmU7CivkuIDpnaIgPiBvbmVcLXNpZGU7CivmgZDpvo0gPiBkaW5vc2F1cjsKK+WxseWdoSA+IGhpbGxzaWRlOwor6ZC15ZmoID4gaGFyZHdhcmU7Civnlavlg48gPiBwb3J0cmFpdDsKK+eVtuS9nCA+IHRyZWF0XC1hczsKK+emruiyjCA+IGNvdXJ0ZXN5Owor5qC95qSNID4gdG9cLXBsYW50Owor5L+h5bCBID4gZW52ZWxvcGU7CivogbLnqLEgPiB0b1wtY2xhaW07CivlsI3miYsgPiBvcHBvbmVudDsKK+S/oeWuiCA+IGFiaWRlXC1ieTsKK+iBlue0hCA+IGNvdmVuYW50Owor5qCh5q2jID4gcmVndWxhdGU7Civph43pu54gPiBlbXBoYXNpczsKK+iBveecviA+IGF1ZGllbmNlOwor6aiO5birID4gaG9yc2VtYW47Civnp6foi5cgPiBzZWVkbGluZzsKK+aBremghiA+IGRlZmVyZW50Owor6Y215qe9ID4ga2V5XC1zbG90Owor6LO854mpID4gc2hvcHBpbmc7Civllq7mk5ogPiByZWNlaXB0czsKK+acg+iuiiA+IHZhcmlhYmxlOwor5bCR5bm0ID4ganV2ZW5pbGU7CivpqJnlrZAgPiBzd2luZGxlcjsKK+iBr+ebnyA+IGFsbGlhbmNlOwor6Lev5Y+jID4gY3Jvc3Npbmc7CivomZXnvbAgPiBwZW5hbGl6ZTsKK+mHkemtmiA+IGdvbGRmaXNoOwor5aqa6KmeID4gZmxhdHRlcnk7CivlkKvph48gPiBjb250ZW50czsKK+eUqOWKnyA+IGRpbGlnZW50Owor562G5ZCNID4gcGVuXC1uYW1lOwor5L2b5pWZID4gYnVkZGhpc207Civlj6/pnaAgPiByZWxpYWJsZTsKK+izh+eUoiA+IHByb3BlcnR5Owor6amF5YuVID4gdG9cLWRyaXZlOwor6amV5YKyID4gYXJyb2dhbnQ7Civlr5PmiYAgPiBkd2VsbGluZzsKK+eUseS9mSA+IG93aW5nXC10bzsKK+iYkeiPsCA+IG11c2hyb29tOwor6aCB6Z2iID4gd2ViXC1wYWdlOwor5LiA6LW3ID4gdG9nZXRoZXI7CivmuLTmnJsgPiBkZXNpcm91czsKK+i1sOW7iiA+IGNvcnJpZG9yOwor5pys6IO9ID4gaW5zdGluY3Q7Civll5zlpb0gPiBmb25kbmVzczsKK+WwjeWkliA+IGV4dGVybmFsOwor57y66Zm3ID4gYVwtZGVmZWN0Owor6JuL5q68ID4gZWdnc2hlbGw7CivlkIPphosgPiBqZWFsb3VzeTsKK+WQiOmBqSA+IHN1aXRhYmxlOwor5a6Y5pa5ID4gb2ZmaWNpYWw7Civmu5HlhrAgPiB0b1wtc2thdGU7CivllYbmpa0gPiBidXNpbmVzczsKK+iyoeeUoiA+IHByb3BlcnR5Owor5a6X5pWZID4gcmVsaWdpb247Civpn4zpq5QgPiBmaXJtd2FyZTsKK+WRveiEiCA+IGxpZmVsaW5lOwor5LmD6IezID4gYW5kXC1ldmVuOwor56ef56iFID4gbGFuZFwtdGF4Owor6aCF6Y2KID4gbmVja2xhY2U7CivmgaXovrEgPiBkaXNncmFjZTsKK+S4jeihjCA+IHdvbicndFwtZG87CivlrojmmYIgPiBwdW5jdHVhbDsKK+aal+i9iSA+IGJsYWNrb3V0Owor5omT5Y2wID4gdG9cLXByaW50Owor5a6M5pW0ID4gY29tcGxldGU7CivkvrXlkJ4gPiB0b1wtYW5uZXg7Civms6LorZwgPiBzcGVjdHJ1bTsKK+agveWtkCA+IHNlZWRsaW5nOwor6LKC55quID4gbWlua1wtZnVyOwor6Yar6ZmiID4gaG9zcGl0YWw7CivosqHniakgPiBwcm9wZXJ0eTsKK+azs+ihoyA+IHN3aW1zdWl0Owor5rea5rC0ID4gdGVhcmRyb3A7CivogonmoYIgPiBjaW5uYW1vbjsKK+a4m+aOiSA+IHN1YnRyYWN0Owor6by754KOID4gcmhpbml0aXM7Civmn5DmmYIgPiBzb21ldGltZTsKK+iXpeiGjyA+IG9pbnRtZW50Owor5a6M5oiQID4gY29tcGxldGU7CivmuqLlh7ogPiBvdmVyZmxvdzsKK+WQkeilvyA+IHdlc3R3YXJkOwor6K6K6YePID4gdmFyaWFibGU7Civlj5vpgIYgPiB0b1wtcmViZWw7CivmiLDljYAgPiB3YXJcLXpvbmU7Civlj7HosqwgPiByZXByb2FjaDsKK+eri+WgtCA+IHBvc2l0aW9uOwor6LKe5r2UID4gY2hhc3RpdHk7CivmoJflrZAgPiBjaGVzdG51dDsKK+S4ree5vCA+IHRvXC1yZWxheTsKK+e/s+ecvCA+IGNhdGFyYWN0Owor6Y6u5Y2AID4gdG93bnNoaXA7Civmnb/msrkgPiBsZWFmXC1mYXQ7Civmh7jlnoIgPiBvdmVyaGFuZzsKK+mFkumsvCA+IGRydW5rYXJkOwor5LiN6IKWID4gdW53b3J0aHk7Civnj63mqZ8gPiBhaXJsaW5lcjsKK+mgkOiogCA+IHByb3BoZWN5Owor56qX5a2QID4gY2FzZW1lbnQ7Civlr6blipsgPiBzdHJlbmd0aDsKK+aHieWwjSA+IHJlc3BvbnNlOwor576a576KID4gYW50ZWxvcGU7CivkuqTmtYEgPiBleGNoYW5nZTsKK+WPm+iuiiA+IHJlbmVnYWRlOwor5oiw5LqLID4gZmlnaHRpbmc7Civlj6/ooYwgPiBmZWFzaWJsZTsKK+aGlOaCtCA+IGxhbmd1aXNoOwor5Y2x6ZujID4gY2FsYW1pdHk7Civlronlr6cgPiBwZWFjZWZ1bDsKK+S4ueeggiA+IGNpbm5hYmFyOwor5qC45YeGID4gc2FuY3Rpb247CivorbTosqwgPiBkZW5vdW5jZTsKK+ahiOS7tiA+IGxhd1wtY2FzZTsKK+Wnu+imqiA+IGFmZmluaXR5Owor5rWq5ryrID4gcm9tYW50aWM7CivmnZHmsJEgPiB2aWxsYWdlcjsKK+aFt+aFqCA+IHZlaGVtZW50Owor6KuW6bueID4gYXJndW1lbnQ7CivmnKjngq0gPiBjaGFyY29hbDsKK+m7g+eTnCA+IGN1Y3VtYmVyOwor5LiN56uvID4gaW1wcm9wZXI7Civmmpfoh6ogPiBpbndhcmRseTsKK+aHiuWWqiA+IGRlamVjdGVkOwor56iA5pyJID4gdW5jb21tb247Civpo5vmqZ8gPiBhaXJwbGFuZTsKK+WupOWPiyA+IHJvb21tYXRlOwor6LK25oqRID4gYmVsaXR0bGU7CivoloTohpwgPiBtZW1icmFuZTsKK+adseaWuSA+IHRoZVwtZWFzdDsKK+eoheaUtiA+IHRheGF0aW9uOwor6aKo5r2uID4gY2FtcGFpZ247Civog4zljIUgPiBrbmFwc2FjazsKK+m7qOa0viA+IHBhcnRpc2FuOwor5a2Q5bGkID4gc3VibGF5ZXI7Civpo7LmlpkgPiBiZXZlcmFnZTsKK+S6uuaJiyA+IG1hbnBvd2VyOwor5LqM5pyIID4gZmVicnVhcnk7CivmspLokL0gPiBkb3duZmFsbDsKK+WQq+eisyA+IGNhcmJvbmljOwor5pyA54K6ID4gdGhlXC1tb3N0Owor6Yar6JelID4gbWVkaWNpbmU7Civmt7HlpacgPiBwcm9mb3VuZDsKK+WVn+WLlSA+IHRvXC1zdGFydDsKK+WtuOWVjyA+IGxlYXJuaW5nOwor5LiN55SoID4gbmVlZFwtbm90Owor6aKo5rC0ID4gZmVuZ3NodWk7CivmhJrmmKcgPiBpZ25vcmFudDsKK+adkOaWmSA+IG1hdGVyaWFsOwor5rC06LevID4gd2F0ZXJ3YXk7CivlrZDlpbMgPiBjaGlsZHJlbjsKK+S6i+aVhSA+IGFjY2lkZW50Owor6YeH6IGyID4gYXBwbGF1c2U7CivlrozlhaggPiBjb21wbGV0ZTsKK+eisOinuCA+IHRvXC10b3VjaDsKK+S4jeeNqCA+IG5vdFwtb25seTsKK+WumuS9jSA+IHBvc2l0aW9uOwor5a2Y5ZyoID4gdG9cLWV4aXN0Owor6LKo5bmjID4gY3VycmVuY3k7CivkuIvnjYQgPiBpbXByaXNvbjsKK+WtteWMliA+IGJyZWVkaW5nOwor6JqK5a2QID4gbW9zcXVpdG87CivkuI3nibkgPiBub3RcLW9ubHk7Civpnq3on7IgPiB3aGlwd29ybTsKK+S4jeeIvSA+IG5vdFwtd2VsbDsKK+aAp+iDvSA+IGZ1bmN0aW9uOwor5rSq5rWBID4gY2F0YXJhY3Q7Civmh4LkuosgPiBzZW5zaWJsZTsKK+mjn+aFviA+IGFwcGV0aXRlOwor6YOo6aGeID4gY2F0ZWdvcnk7CivlkIznm58gPiBhbGxpYW5jZTsKK+mch+mpmiA+IHRvXC1zaG9jazsKK+WQuOeFmSA+IHRvXC1zbW9rZTsKK+isneisnSA+IHRvXC10aGFuazsKK+S4jea/nyA+IG5vdFwtZ29vZDsKK+mgreeXmyA+IGhlYWRhY2hlOwor5LyZ5Ly0ID4gcGFydGlzYW47Civmmpfnm5IgPiBtYWdhemluZTsKK+iCluWDjyA+IHBvcnRyYWl0Owor5Lit5q2iID4gdG9cLWNlYXNlOwor6Kyb6KmxID4gYVwtc3BlZWNoOwor5p6X5ZywID4gd29vZGxhbmQ7Civmt7HliLsgPiBwcm9mb3VuZDsKK+S6reWtkCA+IHBhdmlsaW9uOwor6Z+z56+AID4gc3lsbGFibGU7Civmnrbli6IgPiBhdHRpdHVkZTsKK+S4jea4rCA+IGFjY2lkZW50Owor5aSq6ZW3ID4gb3ZlcnNpemU7Civli6LpoK0gPiBtb21lbnR1bTsKK+Wkp+mWgCA+IGVudHJhbmNlOwor5oSa5byEID4gZGVyaXNpb247CivlvoDpgoQgPiBjb250YWN0czsKK+ayu+eZgiA+IHRvXC10cmVhdDsKK+ekpueUoiA+IG1pbmVyYWxzOwor5LiK5rW3ID4gc2hhbmdoYWk7Civnvarniq8gPiBjcmltaW5hbDsKK+eIkOmCiiA+IGZpcmVzaWRlOwor5oSJ5b+rID4gY2hlZXJmdWw7CivorornqK4gPiBtdXRhdGlvbjsKK+irlui/sCA+IHRyZWF0aXNlOwor5Yuf6ZuGID4gdG9cLXJhaXNlOwor5rW35bO9ID4gc3RyYWlnaHQ7CivniK3oq5YgPiB0b1wtYXJndWU7CivogZbljJYgPiBzYW5jdGlmeTsKK+aYjuiGqyA+IG1hbmlmZXN0Owor6YeN55SzID4gcmVhZmZpcm07CivmmrTmtKogPiBhXC1zdWRkZW47Civmm7/mj5sgPiBleGNoYW5nZTsKK+mkoeWFkiA+IHN0dWZmaW5nOwor5pyJ5omAID4gc29tZXdoYXQ7CivmlqXosqwgPiBkZW5vdW5jZTsKK+mHjeeNsiA+IHJlY292ZXJ5Owor5LiN5py9ID4gaW1tb3J0YWw7CivmtbflpJYgPiBvdmVyc2VhczsKK+eOi+WutiA+IHByaW5jZWx5Owor5ZOo5YW1ID4gc2VudGluZWw7CivosrbkvY4gPiBiZWxpdHRsZTsKK+mbiembniA+IHBoZWFzYW50Owor5oOz5a62ID4gaG9tZXNpY2s7Civlk6XlhZIgPiBicm90aGVyczsKK+iPr+m6lyA+IGdvcmdlb3VzOwor6LK35Li7ID4gY3VzdG9tZXI7CivmhZjkuosgPiBkaXNhc3RlcjsKK+mgkOa4rCA+IGZvcmVjYXN0Owor576O5pelID4gdXNcLWphcGFuOwor6LKg5YK1ID4gaW5kZWJ0ZWQ7Civpm6jph48gPiByYWluZmFsbDsKK+WPuOazlSA+IGp1ZGljaWFsOwor6KqV6L6wID4gYmlydGhkYXk7CivlkrPll70gPiB0b1wtY291Z2g7CivmgrLmhZ8gPiBtb3VybmZ1bDsKK+WKoOmVtyA+IGxlbmd0aGVuOwor5ZCQ5qOEID4gdG9cLXNwdXJuOwor5Yu46KqqID4gcGVyc3VhZGU7CivomZXliIYgPiBkaXNwb3NhbDsKK+aXpee+jiA+IGphcGFuXC11czsKK+WinumrmCA+IGhlaWdodGVuOwor6YGy6aCTID4gaW5hY3RpdmU7CivosqHkuLsgPiByaWNoXC1tYW47CivkuI3miJAgPiB3b24nJ3RcLWRvOwor5aSi6KmxID4gZGF5ZHJlYW07CivkuI3mh4ggPiB1bnRpcmluZzsKK+Wkp+imgSA+IGFic3RyYWN0Owor5pyA5bCRID4gc21hbGxlc3Q7CivorbfnhacgPiBwYXNzcG9ydDsKK+S4u+WusCA+IGRvbWluYXRlOwor5aSi6KaLID4gdG9cLWRyZWFtOwor5LiN5oOfID4gbm90XC1vbmx5Owor5LqL5YWSID4gYnVzaW5lc3M7CivlpKfooaMgPiBvdmVyY29hdDsKK+enu+S6pCA+IHRyYW5zZmVyOwor5pu45a+rID4gdG9cLXdyaXRlOwor5LiN5oCVID4gZmVhcmxlc3M7CivkuI3lv4UgPiBuZWVkXC1ub3Q7CivmspbmtJcgPiB0b1wtcmluc2U7CivkuI3lvpcgPiBtdXN0XC1ub3Q7CivkuI3lvoggPiBub3RcLXZlcnk7CivmmpfmmpcgPiBzZWNyZXRseTsKK+WJt+mZpCA+IHJvb3RcLW91dDsKK/CourkgPiBtb3VybmZ1bDsKK+elnuaApyA+IGRpdmluaXR5Owor57i96KOBID4gY2hhaXJtYW47CivlpJbooaggPiBleHRlcm5hbDsKK+ayiea1uCA+IHBlcm1lYXRlOwor5pSv6YWNID4gZG9taW5hdGU7Civnvo7lvrcgPiBhXC12aXJ0dWU7Civpm4Tovq8gPiBlbG9xdWVudDsKK+m7nuWQjSA+IHJvbGxjYWxsOwor5b+954S2ID4gc3VkZGVubHk7Civml6XnqIsgPiBzY2hlZHVsZTsKK+Wnpua3qyA+IGFkdWx0ZXJ5Owor6LGq5L+gID4gY2F2YWxpZXI7Civml7rnm5sgPiB2aWdvcm91czsKK+WkluiZnyA+IG5pY2tuYW1lOwor5aWH6IGeID4gYW5lY2RvdGU7CivliY3poY0gPiBmb3JlaGVhZDsKK+a1t+S4iiA+IG1hcml0aW1lOwor6Zuc6KqMID4gbWFnYXppbmU7CivntrLpmpsgPiBpbnRlcm5ldDsKK+eGseiqoCA+IGRldm90aW9uOwor5ZCI5oiQID4gY29tcG91bmQ7Civlkbzlj6sgPiB0b1wtc2hvdXQ7CivlpKnoirEgPiBzbWFsbHBveDsKK+mbqOihoyA+IHJhaW5jb2F0Owor5ZCM5oSPID4gdG9cLWFncmVlOwor5pys5L6GID4gb3JpZ2luYWw7CivmnKzkvY0gPiBzdGFuZGFyZDsKK+WQkeW+jCA+IGJhY2t3YXJkOwor5pyN5YuZID4gdG9cLXNlcnZlOwor5rCR55y+ID4gcG9wdWxhY2U7CivlqIHmnJsgPiBwcmVzdGlnZTsKK+a0u+WLlSA+IGFjdGl2aXR5Owor5Y+b5pWZID4gYXBvc3RhY3k7CivkuI3lpKcgPiBub3RcLXZlcnk7CivlpKfog70gPiBhbG1pZ2h0eTsKK+acieWKmyA+IHBvd2VyZnVsOwor5pmC5qmfID4gb2NjYXNpb247CivlkKblrpogPiBuZWdhdGl2ZTsKK+iXpeWVhiA+IGRydWdnaXN0Owor5Y+N5pigID4gcmVhY3Rpb247CivpgbrotIggPiBiZXF1ZWF0aDsKK+aWh+iBtyA+IGNpdmlsaWFuOwor5ama5auBID4gbWFycmlhZ2U7Civnt4rov6sgPiBwcmVzc2luZzsKK+iuiuaVuCA+IHZhcmlhYmxlOwor6K2w5qGIID4gcHJvcG9zYWw7CivlkJvlrZAgPiBub2JsZW1hbjsKK+W7uuiorSA+IHRvXC1idWlsZDsKK+eJuea0viA+IGRpc3BhdGNoOwor6Zu76IWmID4gY29tcHV0ZXI7CivlkIzlsYsgPiByb29tbWF0ZTsKK+iXpeWKkSA+IG1lZGljaW5lOwor5LiA5ZyYID4gcmVnaW1lbnQ7Civno6jmk6YgPiBmcmljdGlvbjsKK+aSremfsyA+IHRyYW5zbWl0Owor5Y+w5bqnID4gcGVkZXN0YWw7CivmrLrosqAgPiB0b1wtYnVsbHk7CivpgY7ovIkgPiBvdmVybG9hZDsKK+mBsuiqpCA+IHRvXC1kZWxheTsKK+elluWciyA+IGhvbWVsYW5kOwor6aCG5b6eID4gb2JlZGllbnQ7CivkuLvku7sgPiBkaXJlY3RvcjsKK+azsOWciyA+IHRoYWlsYW5kOwor6Kej6ZaLID4gdG9cLXVudGllOwor5pqX5a6kID4gZGFya3Jvb207CivlpbbniZsgPiBtaWxrXC1jb3c7Civlj43mh4kgPiByZWFjdGlvbjsKK+aCsuWIhyA+IG1vdXJuZnVsOwor5LiN5Y+qID4gbm90XC1vbmx5Owor5bm06Z2SID4geW91dGhmdWw7CivpoIbluo8gPiBzZXF1ZW5jZTsKK+S4reS/nSA+IGFkdm9jYXRlOwor5bmz6Z2cID4gdHJhbnF1aWw7Civlp7/mhYsgPiBhdHRpdHVkZTsKK+WRiuWIpSA+IHRvXC1sZWF2ZTsKK+S4gOWRqCA+IG9uZVwtd2VlazsKK+asuuipkCA+IHRvXC1jaGVhdDsKK+S4gOWQkSA+IGFsbFwtbG9uZzsKK+abneWFiSA+IGV4cG9zdXJlOwor5rCu5rCjID4gbml0cm9nZW47CivpmYTpjIQgPiBhcHBlbmRpeDsKK+S4gOWMmSA+IHNwb29uZnVsOwor56KX5quDID4gY3VwYm9hcmQ7CivnoJTnqbYgPiByZXNlYXJjaDsKK+aAoOaDsCA+IGlkbGVuZXNzOwor5YyF55quID4gd3JhcHBpbmc7Civniq/mhIEgPiB0b1wtd29ycnk7CivliLDpgZQgPiB0b1wtcmVhY2g7Civlj6XlrZAgPiBzZW50ZW5jZTsKK+WlieePviA+IG9mZmVyaW5nOwor5LiN5YCmID4gdGlyZWxlc3M7Civmr4/nlbYgPiB3aGVuZXZlcjsKK+ioguizvCA+IHRvXC1vcmRlcjsKK+aWkeeZvSA+IGdyaXp6bGVkOwor6K2J5pOaID4gZXZpZGVuY2U7CivnpZblhYggPiBhbmNlc3RvcjsKK+W4uOmnkCA+IHJlc2lkZW50Owor5pq05YqbID4gdmlvbGVuY2U7Civpm4bogZogPiBhc3NlbWJsZTsKK+aYlOaXpSA+IGZvcm1lcmx5Owor5Yqf6IO9ID4gZnVuY3Rpb247Civorabmg5UgPiB2aWdpbGFudDsKK+azouWLlSA+IHVuZHVsYXRlOwor6aCQ5aCxID4gZm9yZWNhc3Q7CivlpYfnibkgPiBwZWN1bGlhcjsKK+W/oOaWvCA+IGxveWFsXC10bzsKK+aYjuaXpSA+IHRvbW9ycm93Owor6Kmz57SwID4gZGV0YWlsZWQ7CivmmrTlhYkgPiBleHBvc3VyZTsKK+mgkeWbuiA+IHN0dWJib3JuOwor6YG46IiJID4gdG9cLWVsZWN0Owor6YCA6YG/ID4gd2l0aGRyYXc7Civnt7Tnv5IgPiBleGVyY2lzZTsKK+WfuemkiiA+IHRvXC10cmFpbjsKK+mfjOW4tiA+IGxpZ2FtZW50Owor5pKk6YCAID4gcmV0cmVhdDsKK+eJveaJryA+IGludm9sdmU7CivlqZrkuosgPiB3ZWRkaW5nOwor5qqi6ZaxID4gaW5zcGVjdDsKK+iotOiLpiA+IGdydW1ibGU7CivmmqvlgZwgPiBzdXNwZW5kOwor6Ke46KeSID4gYW50ZW5uYTsKK+W9queCsyA+IHNoaW5pbmc7CivnvbfkvJEgPiBnaXZlXC11cDsKK+e0sOmVtyA+IHNsZW5kZXI7Civoqo3nnJ8gPiBlYXJuZXN0Owor5pmC5bCaID4gZmFzaGlvbjsKK+eJiOacrCA+IHZlcnNpb247Civov7TovYkgPiByZXZvbHZlOwor5bqH6K23ID4gc2hlbHRlcjsKK+mFuOaApyA+IGFjaWRpdHk7Civnt6jnuoIgPiBjb21waWxlOwor5ZCb5Li7ID4gbW9uYXJjaDsKK+e4veeQhiA+IHByZW1pZXI7CivlpKnnhLYgPiBuYXR1cmFsOwor552h6KGjID4gcGFqYW1hczsKK+aVtOeQhiA+IGFycmFuZ2U7CivnhZnojYkgPiB0b2JhY2NvOwor54em54ibID4gZ2xpdHRlcjsKK+WPr+WLlSA+IG1vdmFibGU7CivmsLTmiYsgPiBtYXJpbmVyOwor5ZCE5YCLID4gdmFyaW91czsKK+WPo+WQgyA+IHN0YW1tZXI7Civoj4/omK0gPiBob2xsYW5kOwor6aCY5YWIID4gdG9cLWxlYWQ7Civoj6Doj5wgPiBzcGluYWNoOwor5Y2B5pyIID4gb2N0b2JlcjsKK+iumuWQjCA+IGFwcHJvdmU7Civmr5vmr68gPiBibGFua2V0Owor6Zm96Ie6ID4gYmFsY29ueTsKK+i/kemDiiA+IHN1YnVyYnM7Civni4LllpwgPiBlY3N0YXN5Owor5rC45oGGID4gZXRlcm5hbDsKK+iri+axgiA+IHJlcXVlc3Q7CivphJnmo4QgPiBkaXNkYWluOwor5Ye66LWwID4gdG9cLWZsZWU7CivmlYjnm4ogPiBiZW5lZml0Owor6YeN5YqbID4gZ3Jhdml0eTsKK+eivOWtlyA+IG51bWVyYWw7CivntKHpjJggPiBzcGluZGxlOwor5byE56KOID4gY3J1bWJsZTsKK+WnkOWmuSA+IHNpc3RlcnM7Civnm67pjIQgPiBjYXRhbG9nOwor5q2j56K6ID4gY29ycmVjdDsKK+W/g+aEmyA+IGJlbG92ZWQ7CivlvITnn60gPiBzaG9ydGVuOwor54Sh6JmVID4gbm93aGVyZTsKK+iuiuWOmiA+IHRoaWNrZW47CivlppbmgKogPiBtb25zdGVyOwor57eK57eKID4gY2xvc2VseTsKK+maseengSA+IHByaXZhY3k7Civpl5zpjbUgPiBjcnVjaWFsOwor5ae/5YuiID4gcG9zdHVyZTsKK+WmkuW/jCA+IGplYWxvdXM7CivlvLfng4ggPiBpbnRlbnNlOwor5aW95oiwID4gd2FybGlrZTsKK+W5s+ihoSA+IGJhbGFuY2U7CivnibnlrpogPiBzcGVjaWFsOwor5byE55q6ID4gY3J1bXBsZTsKK+ebuOmAoyA+IHRvXC1saW5rOwor5paH5rOVID4gZ3JhbW1hcjsKK+WPpOS+hiA+IG9sZHRpbWU7CivlpKnmsKMgPiB3ZWF0aGVyOwor5q2j55u0ID4gdXByaWdodDsKK+mFkuW7oCA+IGJyZXdlcnk7CivlvoHmnI0gPiBjb25xdWVyOwor57Si6YGTID4gcm9wZXdheTsKK+mZuOe6jCA+IGluXC10dXJuOwor6Zqx556eID4gdG9cLWhpZGU7CivlpJbmtYEgPiBvdXRmbG93Owor5bel6aCtID4gZm9yZW1hbjsKK+WPpuS4gCA+IGFub3RoZXI7CivpgaDnq68gPiBmYXJcLWVuZDsKK+earumdqSA+IGxlYXRoZXI7CivliqDnlJwgPiBzd2VldGVuOwor6Z+z5L+hID4gbWVzc2FnZTsKK+eGseeHmSA+IHRvXC1idXJuOwor6Zqc56SZID4gYmFycmllcjsKK+iqnuazlSA+IGdyYW1tYXI7CivorablkYogPiB0b1wtd2FybjsKK+eEtuiAjCA+IGhvd2V2ZXI7CivlpKfmpoIgPiByb3VnaGx5Owor6Zu75rGgID4gYmF0dGVyeTsKK+WlveW5viA+IHNldmVyYWw7Civmr5TmlrkgPiBhbmFsb2d5Owor6YCA6JC9ID4gc3Vic2lkZTsKK+iuiuS6giA+IHR1cm1vaWw7Civoq4vmlZkgPiBjb25zdWx0Owor54ax5r2uID4gdXBzdXJnZTsKK+asuueeniA+IHRvXC1mb29sOwor5q+U5pOsID4gY29tcGFyZTsKK+itsOWDuSA+IGJhcmdhaW47CivnupblvLEgPiBmcmFnaWxlOwor5Y2a5a24ID4gbGVhcm5lZDsKK+imi+itiSA+IHdpdG5lc3M7CivliqDnhrEgPiBoZWF0aW5nOwor5Z+O6YOKID4gc3VidXJiczsKK+eJp+WgtCA+IHBhc3R1cmU7CivpnZ7luLggPiB1bnVzdWFsOwor5YuH5rCjID4gY291cmFnZTsKK+WkseaViCA+IHRvXC1mYWlsOwor5YWI6amFID4gcGlvbmVlcjsKK+mukemtmiA+IGFiYWxvbmU7Civniq/kurogPiBjb252aWN0Owor6I236JitID4gaG9sbGFuZDsKK+mbo+awkSA+IHJlZnVnZWU7CivpgKPntZAgPiBjb25uZWN0Owor5b6I5b+rID4gcXVpY2tseTsKK+mBuueJqSA+IHJlbW5hbnQ7Civmr5LmiZMgPiBiZWF0XC11cDsKK+mGnOS6iyA+IHNjYW5kYWw7CivpmY3ntJogPiBkZWdyYWRlOwor54Sm57OWID4gY2FyYW1lbDsKK+aRmOimgSA+IHN1bW1hcnk7CivpgLLnqIsgPiBwcm9jZXNzOwor6L6v6KejID4gZXhwbGFpbjsKK+aRlOinkiA+IHdyZXN0bGU7CivljIXmiY4gPiB3cmFwXC11cDsKK+W7oueJqSA+IHJ1YmJpc2g7CivlpYfmgKogPiBzdHJhbmdlOwor5aeU5Lu7ID4gYXBwb2ludDsKK+arg+iHuiA+IGNvdW50ZXI7CivmrpjmoKogPiBzdHViYmxlOwor5aW95aWHID4gY3VyaW91czsKK+eZu+mZuCA+IHRvXC1sYW5kOwor5q+G5omTID4gYmVhdFwtdXA7Civnm6PoppYgPiBvdmVyc2VlOwor5b2i5oiQID4gdG9cLWZvcm07CivnuL3mlbggPiBhXC10b3RhbDsKK+eJueWItiA+IHNwZWNpYWw7CivlvLfmmrQgPiB2aW9sZW50Owor5b635ZyLID4gZ2VybWFueTsKK+e1see1sSA+IHRvdGFsbHk7CivnhKHnqq4gPiBlbmRsZXNzOwor55+u5p6XID4gY29wcGljZTsKK+Wig+eVjCA+IGJvdW5kcnk7CivlvITmraogPiBkaXN0b3J0Owor5Yaw6KKLID4gaWNlXC1iYWc7CivorYnkurogPiB3aXRuZXNzOwor6Zax6K6AID4gdG9cLXJlYWQ7Civpg7Xlt64gPiBwb3N0bWFuOwor6Z2i5ZquID4gdG9cLWZhY2U7Civop7jnmbwgPiB0cmlnZ2VyOwor54it5Z+3ID4gZGlzcHV0ZTsKK+eAnemdkiA+IGFzcGhhbHQ7CivljbPkvr8gPiBldmVuXC1pZjsKK+Wkp+W7iCA+IGVkaWZpY2U7CivnmbzphbUgPiBmZXJtZW50Owor5Y2z5L2/ID4gZXZlblwtaWY7CivplrHopr0gPiB0b1wtcmVhZDsKK+W5uOemjyA+IGJsZXNzZWQ7CivnhKHnm4ogPiBub1wtZ29vZDsKK+WIqeebiiA+IGJlbmVmaXQ7CivpmLLnpqYgPiBkZWZlbnNlOwor5q235pmCID4gdG9cLWxhc3Q7CivniYjliLsgPiBjYXJ2aW5nOwor57aT55CGID4gbWFuYWdlcjsKK+mFjeWBtiA+IGNvbnNvcnQ7Civmrarmm7IgPiBkaXN0b3J0Owor5pWR5o+0ID4gdG9cLXNhdmU7Civml6Xlh7ogPiBzdW5yaXNlOwor5rCj5YCZID4gY2xpbWF0ZTsKK+e5g+W4tiA+IGJhbmRhZ2U7CivnhKHnlKggPiB1c2VsZXNzOwor6YCX55WZID4gc3RheVwtYXQ7CivliKnnlKggPiBleHBsb2l0Owor5Y2A5Y2AID4gdHJpdmlhbDsKK+eIreWQtSA+IGRpc3B1dGU7Civlvq7lhYkgPiBnbGltbWVyOwor5q+P5aScID4gbmlnaHRseTsKK+mBleazlSA+IGlsbGVnYWw7Civlh7rnp58gPiB0b1wtcmVudDsKK+mbgOaWkSA+IGZyZWNrbGU7CivmlLbmk5ogPiByZWNlaXB0Owor5Y2B5YWtID4gc2l4dGVlbjsKK+e5quWcliA+IHRvXC1kcmF3Owor5Z2m6YCUID4gaGlnaHdheTsKK+efpeaCiSA+IHRvXC1rbm93Owor5pSv5pKQID4gcHJvcFwtdXA7CivnhrHmg4UgPiBjb3JkaWFsOwor5o6S6ZmkID4gZXhjbHVkZTsKK+WNgeWAjSA+IHRlbmZvbGQ7CivliZvmr5sgPiBicmlzdGxlOwor5qmr6IelID4gcmVjbGluZTsKK+WIuua/gCA+IHByb3Zva2U7CivntpPmv58gPiBlY29ub215Owor57Sw56+AID4gZGV0YWlsczsKK+eyvuijvSA+IHJlZmluZWQ7CivmlZnluKsgPiB0ZWFjaGVyOwor5qiC6LajID4gZGVsaWdodDsKK+aUtuaIkCA+IGhhcnZlc3Q7CivljYHkupQgPiBmaWZ0ZWVuOwor5aSa5aSnID4gaG93XC1iaWc7CivlhbHomZUgPiBjb2V4aXN0Owor5pSq5ouMID4gdG9cLXN0aXI7CivovJXovJUgPiBsaWdodGx5Owor5Yip5r2kID4gcHJvZml0czsKK+ijnei8iSA+IHRvXC1sb2FkOwor5YyF5ZCrID4gY29udGFpbjsKK+aTr+ajhCA+IGFiYW5kb247CivnmbzooYwgPiBwdWJsaXNoOwor55m96J+7ID4gdGVybWl0ZTsKK+mBuOaJiyA+IGF0aGxldGU7CivlpLHljrsgPiB0b1wtbG9zZTsKK+i8quipoiA+IHRvXC1wb2xsOwor5b2r5Yi7ID4gZW5ncmF2ZTsKK+iKseiyuyA+IGV4cGVuc2U7CivokYnlrZAgPiBmb2xpYWdlOwor6I2J56i/ID4gb3V0bGluZTsKK+atpuW6qyA+IGFyc2VuYWw7CivlvITlubMgPiBmbGF0dGVuOwor5Yi25q2iID4gdG9cLWN1cmI7Civns77ntJsgPiBkaXNwdXRlOwor6IyF6IiNID4gY290dGFnZTsKK+eFp+aQrCA+IHRvXC1jb3B5Owor5YW16ImmID4gd2Fyc2hpcDsKK+ijnOiyvCA+IHN1YnNpZHk7CivmraPluLggPiByZWd1bGFyOwor5bua5oi/ID4ga2l0Y2hlbjsKK+aWh+WMliA+IGN1bHR1cmU7CivltKnpmbcgPiBmYWxsXC1pbjsKK+mAmeasoSA+IHByZXNlbnQ7Civlt7LntpMgPiBhbHJlYWR5Owor5be057WQID4gZmF3blwtb247CivnmrrntIsgPiB3cmlua2xlOwor5qyK5p2WID4gc2NlcHRlcjsKK+WMhuS/gyA+IGhhc3RpbHk7CivmrITmn7UgPiBiYXJyaWVyOwor55m+6JCsID4gbWlsbGlvbjsKK+WkmuWNiiA+IGNoaWVmbHk7Civnm67nmoQgPiBwdXJwb3NlOwor6YCx5pyrID4gd2Vla2VuZDsKK+WIneatpSA+IGluaXRpYWw7CivmrITmnYYgPiByYWlsaW5nOwor54Wp5oOxID4gYWdvbml6ZTsKK+W9iOWKviA+IGltcGVhY2g7CivnhanmgrYgPiBhbmd1aXNoOwor5bmr5rS+ID4gZmFjdGlvbjsKK+ihqOmdoiA+IHN1cmZhY2U7Civns5/ns5UgPiB0b29cLWJhZDsKK+e4veWJhyA+IHByb2ZpbGU7Civpmqrls7sgPiBhcmR1b3VzOwor5Yi25pyNID4gdW5pZm9ybTsKK+WDj+mKgCA+IHNpbHZlcnk7CivliY3mj5AgPiBwcmVtaXNlOwor57eo5a+rID4gY29tcGlsZTsKK+e2reaMgSA+IHRvXC1rZWVwOwor5o6l6Ke4ID4gY29udGFjdDsKK+WLneWIqSA+IHZpY3Rvcnk7CivlpKXkvLQgPiBwYXJ0bmVyOwor5pWZ5ZOhID4gdGVhY2hlcjsKK+mrlemqqCA+IGtuZWVjYXA7Civmk4HmnIkgPiB0b1wtaGF2ZTsKK+atpOWkliA+IGJlc2lkZXM7CivlvLfliLYgPiBlbmZvcmNlOwor6LuK6LybID4gdmVoaWNsZTsKK+mcjeS6giA+IGNob2xlcmE7CivoiqzomK0gPiBmaW5sYW5kOwor5pW45L2NID4gZGlnaXRhbDsKK+i8leiUkSA+IGRpc2RhaW47CivntbLmn48gPiBjeXByZXNzOwor5Z+354WnID4gbGljZW5zZTsKK+arg+aqryA+IGNvdW50ZXI7CivnhKHmlYggPiBpblwtdmFpbjsKK+WjgeWjmCA+IHJhbXBhcnQ7CivpgKPmjqUgPiB0b1wtbGluazsKK+ioiuaBryA+IG1lc3NhZ2U7CivntJnnhZkgPiBjaWdhcmV0Owor5q235Y+yID4gaGlzdG9yeTsKK+ecuuacmyA+IGxvb2tvdXQ7Civpl5znhacgPiBjb25jZXJuOwor5Yaw54mHID4gYm9ybmVvbDsKK+WKh+WgtCA+IHRoZWF0ZXI7CivnhrHliIcgPiBmZXJ2ZW50Owor5YuV5LqCID4gdHVybW9pbDsKK+aOqeiTiyA+IGNvbmNlYWw7CivpmLvmlJQgPiB0b1wtc3RvcDsKK+W8n+WFhCA+IGJyb3RoZXI7CivpmLvmk4sgPiB0b1wtc3RvcDsKK+ecieavmyA+IGV5ZWJyb3c7Civlo6vlhbUgPiBzb2xkaWVyOwor6KKr6KSlID4gYmVkZGluZzsKK+aTuuWtkCA+IG1hbGFyaWE7CivoobDpgIAgPiBkZWNsaW5lOwor5byV5Ye6ID4gZXh0cmFjdDsKK+aTlOW/gyA+IGFueGlvdXM7CivlhaznpL4gPiBjb21tdW5lOwor57WQ5p6cID4gb3V0Y29tZTsKK+aRp+avgCA+IGRlc3Ryb3k7CivmrbLlhaUgPiByZXZlbnVlOwor5YiG5pWjID4gc2NhdHRlcjsKK+WiiuWtkCA+IGN1c2hpb247CivnhKbmgKUgPiBhbnhpZXR5Owor5pS25YiwID4gcmVjZWl2ZTsKK+ebo+a4rCA+IG1vbml0b3I7CivprKLop5IgPiB0ZW1wbGVzOwor5o+t56S6ID4gdG9cLXNob3c7CivopoHmsYIgPiByZXF1ZXN0Owor55eV6LehID4gdmVzdGlnZTsKK+WJneWlqiA+IGRlcHJpdmU7CivovrLmsJEgPiBwZWFzYW50Owor5bug5ZWGID4gY29tcGFueTsKK+WIsOW6lSA+IGZpbmFsbHk7CivlhpLnhZkgPiBzbW9raW5nOwor57Ch6KaBID4gY29uY2lzZTsKK+aUvuS7uyA+IGluZHVsZ2U7CivpgJrluLggPiByZWd1bGFyOwor55yf5pGvID4gc2luY2VyZTsKK+e0hea1tyA+IHJlZFwtc2VhOwor5Yaw5rKzID4gZ2xhY2lhbDsKK+e0lOatoyA+IGdlbnVpbmU7CivliKjlt6UgPiBwbGFuaW5nOwor54WZ5ZuqID4gY2hpbW5leTsKK+W5u+W9sSA+IHBoYW50b207Civmi5TpoIIgPiB0b3BwaW5nOwor55m955m9ID4gaW5cLXZhaW47CivlhYjnn6UgPiBwcm9waGV0Owor55a+6LWwID4gc2NhbXBlcjsKK+W3sua7hSA+IGV4dGluY3Q7CivnsaDnvakgPiBlbnZlbG9wOwor57Wx5bilID4gY29tbWFuZDsKK+mZtuWZqCA+IHBvdHRlcnk7CivpmYTlr4QgPiBlbmNsb3NlOwor57Wo5biDID4gZmxhbm5lbDsKK+i/juaOpSA+IHRvXC1tZWV0Owor5YSY566hID4gZGVzcGl0ZTsKK+mYu+WwvCA+IGRhbXBpbmc7CivnlJzpu54gPiBkZXNzZXJ0Owor6LuN6ImmID4gd2Fyc2hpcDsKK+eZvOePviA+IHRvXC1maW5kOwor6ZaD54iNID4gZmxpY2tlcjsKK+iho+ijnSA+IGdhcm1lbnQ7CivlgpnoqLsgPiByZW1hcmtzOwor5pSU5L2PID4gdG9cLXN0b3A7Civoo4LntIsgPiBjcmFja2xlOwor5oyR6LW3ID4gc3RpclwtdXA7Civpl6HmmI4gPiBjbGFyaWZ5Owor5Yiw5aC0ID4gc2hvd1wtdXA7CivpgY7liakgPiBzdXJwbHVzOwor6Lmj6LeaID4gc3RhZ2dlcjsKK+ebm+acgyA+IHBhZ2VhbnQ7CivliZ3liYogPiBleHBsb2l0Owor5o+P55WrID4gdG9cLWRyYXc7Civoo6jnm4ogPiBiZW5lZml0Owor6YGH5YiwID4gdG9cLW1lZXQ7Civlgb3orYkgPiBwZXJqdXJ5Owor5qmf5qKwID4gbWFjaGluZTsKK+eFp+S6riA+IGxpZ2h0ZW47CivpmbPliJcgPiBkaXNwbGF5Owor5YGc6LuKID4gdG9cLXN0b3A7Civpmb3lgpggPiBwYXJhc29sOwor5bGx6aCCID4gaGlsbHRvcDsKK+aOjOeuoSA+IGNvbnRyb2w7Civoo5znm4ogPiBiZW5lZml0Owor5ou36LKdID4gdG9cLWNvcHk7Civmk6DlhaUgPiBpbnRydWRlOwor5qyK5YipID4gYVwtcG93ZXI7CivoirHnkrAgPiBnYXJsYW5kOwor5YWs5rCRID4gY2l0aXplbjsKK+W3tOaelyA+IGJhaHJhaW47Civlgb3oo50gPiB0b1wtZmFrZTsKK+WgheW8tyA+IHN0YXVuY2g7CivlubPlnYcgPiBhdmVyYWdlOwor5Yi65YiAID4gYmF5b25ldDsKK+ewuOeulSA+IGR1c3RwYW47CivlhYXmu78gPiBmdWxsXC1vZjsKK+W4s+W4mCA+IGRyYXBlcnk7CivmjqXnlJ8gPiBkZWxpdmVyOwor5r+A57SgID4gaG9ybW9uZTsKK+ino+WJliA+IGRpc3NlY3Q7CivmjK/oiIggPiBwcm9tb3RlOwor6Zmk5LqGID4gYmVzaWRlczsKK+eYp+eWviA+IG1hbGFyaWE7CivojorlmrQgPiBzdGF0ZWx5Owor57KX5re6ID4gc2hhbGxvdzsKK+ajsui6qyA+IHN0YXlcLWF0Owor5bmz5Y+wID4gdGVycmFjZTsKK+aLjeizoyA+IGF1Y3Rpb247Civmu4vppIogPiBub3VyaXNoOwor6Kej5YOxID4gdG9cLWZpcmU7CivliLDkvoYgPiBhcnJpdmFsOwor6ZaS5pqHID4gbGVpc3VyZTsKK+W6iuWBtCA+IGJlZHNpZGU7CivmqJnmp40gPiBqYXZlbGluOwor55ar6IuXID4gdmFjY2luZTsKK+i2hem9oSA+IHRvb1wtb2xkOwor5Ye65ZSuID4gdG9cLXNlbGw7Civlm6DntKAgPiBlbGVtZW50Owor5Yaw5bedID4gZ2xhY2llcjsKK+mXiuW6piA+IGJyZWFkdGg7CivouJDouI8gPiB0cmFtcGxlOwor5qWt57aTID4gYWxyZWFkeTsKK+i9n+aTiiA+IGJvbWJhcmQ7Civlub7lgIsgPiBzZXZlcmFsOwor5Yaw5bO2ID4gaWNlbGFuZDsKK+aMkeiIiyA+IHByb3Zva2U7CivlnJbnlasgPiBkcmF3aW5nOwor5Yaw5bGxID4gaWNlYmVyZzsKK+alteerryA+IGV4dHJlbWU7CivovrLlpKsgPiBwZWFzYW50Owor55m95pmdID4gZGF5dGltZTsKK+WFteaIiCA+IHdlYXBvbnM7Civot7Pouo0gPiB0b1wtanVtcDsKK+eZguazlSA+IHRoZXJhcHk7CivlsJbpoIIgPiBzdGVlcGxlOwor6IW56YOoID4gYWJkb21lbjsKK+eZvOaUviA+IHByb3ZpZGU7CivnmIvni4IgPiBtYWRuZXNzOwor55ey55a5ID4gbWVhc2xlczsKK+imquWIhyA+IGFtaWFibGU7Civlt6Xlu6AgPiBmYWN0b3J5Owor5o+S5puyID4gZXBpc29kZTsKK+ihgOe1sSA+IGxpbmVhZ2U7Civmv6Hmv5UgPiBtb2lzdGVuOwor5oqX6K2wID4gcHJvdGVzdDsKK+e1huWAkiA+IHN0dW1ibGU7Civns4rlvIQgPiB0b1wtZm9vbDsKK+W4tuWLlSA+IHRvXC1zcHVyOwor5YWs5byPID4gZm9ybXVsYTsKK+eBveWusyA+IHNjb3VyZ2U7CivoirHmnZ8gPiBib3VxdWV0Owor5bey5amaID4gbWFycmllZDsKK+aJrei9iSA+IHJldmVyc2U7CivmiLLpmaIgPiB0aGVhdGVyOwor55eS55eSID4gdG9cLWl0Y2g7CivkvovpoYwgPiBleGFtcGxlOwor6IyF5bGLID4gY290dGFnZTsKK+WEquaWvCA+IHN1cnBhc3M7CivmqZ/loLQgPiBhaXJwb3J0Owor57WC5LqOID4gYXRcLWxhc3Q7CivmqKHlvaIgPiBwYXR0ZXJuOwor6J+L6J+AID4gY3JpY2tldDsKK+S/oeiztCA+IGNvbmZpZGU7CivoiqXmnKsgPiBtdXN0YXJkOwor5r+A54OIID4gaW50ZW5zZTsKK+eXheeXhyA+IGRpc2Vhc2U7CivlhrfljbsgPiBjb29saW5nOwor5qGM6Z2iID4gZGVza3RvcDsKK+WxpeihjCA+IGZ1bGZpbGw7CivnmofluJ0gPiBlbXBlcm9yOwor6KGo546HID4gZXhhbXBsZTsKK+aPreW5lSA+IG9wZW5pbmc7Civnr4fnq6AgPiB3cml0aW5nOwor5o6l5pu/ID4gcmVwbGFjZTsKK+apn+WZqCA+IG1hY2hpbmU7Civnlr7nl4UgPiBkaXNlYXNlOwor5YKZ55SoID4gcmVzZXJ2ZTsKK+WvrOmXiiA+IGV4cGFuc2U7Civmjqrmlr0gPiBtZWFzdXJlOwor5YWn5a65ID4gY29udGVudDsKK+aOoeaaliA+IGhlYXRpbmc7Civnm7jku78gPiBzaW1pbGFyOwor5YKy54S2ID4gbG9mdGlseTsKK+WboOeCuiA+IGJlY2F1c2U7CivmqLXlpKsgPiB3b29kbWFuOwor6Ieq56eBID4gc2VsZmlzaDsKK+WFuOWeiyA+IHR5cGljYWw7CivojLblhbcgPiB0ZWFcLXNldDsKK+i8quW7kyA+IG91dGxpbmU7Civns4rloZcgPiBtdWRkbGVkOwor5qac5qijID4gZXhhbXBsZTsKK+mWieWhniA+IHN0b3BcLXVwOwor6KGo5ryUID4gcGVyZm9ybTsKK+i2hemBjiA+IHN1cnBhc3M7Civnr4Dnm64gPiBwcm9ncmFtOwor6ZG955+zID4gZGlhbW9uZDsKK+WckuaelyA+IGdhcmRlbnM7CivnlJ/oj5wgPiBsZXR0dWNlOwor5bCP6LKpID4gcGVkZGxlcjsKK+i7jOaelSA+IHNsZWVwZXI7Civnmb3lpKkgPiBkYXl0aW1lOwor6Iux5ZyLID4gZW5nbGFuZDsKK+mmlumjviA+IGpld2Vscnk7Civlt6XljKAgPiBhcnRpc2FuOwor55uI5L2ZID4gc3VycGx1czsKK+S/mOiZnCA+IGNhcHRpdmU7Civoh4Lnq6AgPiBhcm1iYW5kOwor6Ieq55SxID4gZnJlZWRvbTsKK+W4g+S4gSA+IHB1ZGRpbmc7CivlnI3mlLsgPiBiZXNpZWdlOwor5Zad6YeHID4gYWNjbGFpbTsKK+eUn+iCsiA+IHRvXC1iZWFyOwor6LWk6YGTID4gZXF1YXRvcjsKK+mrmOa8siA+IHVwc3VyZ2U7CivploDlj6MgPiBkb29yd2F5Owor5pCN5YK3ID4gdG9cLWhhcm07CivouqvmnZAgPiBzdGF0dXJlOwor6Iux5YuHID4gYnJhdmVyeTsKK+S+i+itiSA+IGV4YW1wbGU7CivllY/poYwgPiBwcm9ibGVtOwor5a+E6YCBID4gdG9cLXNlbmQ7Civlgr7mlpwgPiBpbmNsaW5lOwor5Zuw5pO+ID4gcGVycGxleDsKK+ikh+WQiCA+IGNvbXBsZXg7CivmioTntrIgPiBkaXBcLW5ldDsKK+eZvuWIhiA+IHBlcmNlbnQ7CivlmrTmraMgPiBzdGVybmx5Owor6KGj5pyNID4gY2xvdGhlczsKK+aIluiosSA+IHBlcmhhcHM7CivmiJDoqp4gPiBwcm92ZXJiOwor5qau5bm4ID4gaG9ub3JlZDsKK+a8guekqyA+IGJvdWxkZXI7CivppqzouawgPiBzdGlycnVwOwor5qih5YCjID4gaW1pdGF0ZTsKK+S+i+ihjCA+IHJvdXRpbmU7CivllYbpmoogPiBjYXJhdmFuOwor5a246ZmiID4gY29sbGVnZTsKK+WDteWxgCA+IGltcGFzc2U7CivmjZXmiYsgPiBjYXRjaGVyOwor5oqV56WoID4gdG9cLXZvdGU7CivooYzmnY4gPiBsdWdnYWdlOwor5o+Q5YiwID4gbWVudGlvbjsKK+mpleefnCA+IGhhdWdodHk7Civkv6HnrrEgPiBtYWlsYm94Owor5a+G6KuHID4gY29tbXVuZTsKK+eUqOeboSA+IGV4aGF1c3Q7CivmpoLlv7UgPiBjb25jZXB0Owor5YGc5q2iID4gdG9cLXN0b3A7CivlhYPku7YgPiBlbGVtZW50Owor5Zyw5Z2AID4gYWRkcmVzczsKK+Wci+WutiA+IGNvdW50cnk7CivlrZTpm4AgPiBwZWFjb2NrOwor6Y216KmeID4ga2V5d29yZDsKK+a7keeovSA+IGNvbWljYWw7CivllYbph48gPiBjb25zdWx0Owor5L2O6Kq/ID4gbG93XC1rZXk7CivmjInmmYIgPiBvblwtdGltZTsKK+ijneWFpSA+IHRvXC1sb2FkOwor5omT566XID4gdG9cLXBsYW47CivlsI/ntZAgPiBzdW1tYXJ5Owor5bCP57WEID4gYVwtZ3JvdXA7CivmjInmkakgPiBtYXNzYWdlOwor5YGJ5qWtID4gZXhwbG9pdDsKK+izqumHjyA+IHF1YWxpdHk7Civnr4Dml6UgPiBob2xpZGF5Owor6KOB5YmqID4gY3V0XC1vdXQ7CivnlKLniakgPiBwcm9kdWN0Owor5L6b57WmID4gZnVybmlzaDsKK+iInuW8hCA+IHRvXC13YXZlOwor5omT56KOID4gc2hhdHRlcjsKK+aLr+aVkSA+IHRvXC1zYXZlOwor5Zyo5YmNID4gZm9yd2FyZDsKK+adjum1rCA+IGxpXC1wZW5nOwor5a6J6KitID4gaW5zdGFsbDsKK+iyrOmboyA+IGNlbnN1cmU7Civls7bltrwgPiBpc2xhbmRzOwor5p+l6Kq/ID4gaW5xdWlyeTsKK+aLi+ajhCA+IGRpc2NhcmQ7Civkvr/nm4YgPiBiZWRcLXBhbjsKK+igseaDkSA+IGVuY2hhbnQ7CivlgYfml6UgPiBob2xpZGF5Owor5a6J6KOdID4gaW5zdGFsbDsKK+a7sua8jyA+IHNlZXBhZ2U7Civoiablj6ogPiB3YXJzaGlwOwor5ou35omTID4gdG9cLWJlYXQ7Civoga/pgqYgPiBmZWRlcmFsOwor5ryC5rOKID4gZHJpZnRlcjsKK+WZuOaVuCA+IHRvbm5hZ2U7CivllYboqI4gPiBkaXNjdXNzOwor5ZSu6LOjID4gdG9cLXNlbGw7Civpppnoj5wgPiBwYXJzbGV5Owor5rW36a6uID4gc2VhZm9vZDsKK+iHpeaIvyA+IGJlZHJvb207Civnq6Dnr4AgPiBjaGFwdGVyOwor5ru05rWBID4gdHJpY2tsZTsKK+eWj+W/vSA+IG5lZ2xlY3Q7Civlg6XlgJYgPiBsdWNraWx5Owor5oey572wID4gcGVuYWx0eTsKK+WCs+WWriA+IGxlYWZsZXQ7CivpppnohbggPiBzYXVzYWdlOwor6LWw56eBID4gc211Z2dsZTsKK+WwiOeUqCA+IHNwZWNpYWw7Civpvo3onaYgPiBsb2JzdGVyOwor5oyH5a6aID4gYXBwb2ludDsKK+WDleS6uiA+IHNlcnZhbnQ7CivlrrnntI0gPiBjb250YWluOwor5L6v54i1ID4gbWFycXVpczsKK+aksOWtkCA+IGNvY29udXQ7CivpkZLmiJIgPiB3YXJuaW5nOwor5Luj6KmeID4gcHJvbm91bjsKK+S4uem6pSA+IGRlbm1hcms7CivnsKHku4sgPiBzdW1tYXJ5Owor55Wr5buKID4gZ2FsbGVyeTsKK+iHpeWupCA+IGJlZHJvb207CivmibPmqZ8gPiB0cmlnZ2VyOwor6KGd5YqbID4gaW1wdWxzZTsKK+WujOe+jiA+IHBlcmZlY3Q7CivlsZXmnJsgPiBvdXRsb29rOwor56uK55ucID4gYnVyZ2xhcjsKK+eRo+e0sCA+IHRyaXZpYWw7CivmjKrli5UgPiB0b1wtbW92ZTsKK+WutuemvSA+IHBvdWx0cnk7CivnqbrnvLogPiB2YWNhbmN5Owor5pyA6auYID4gaGlnaGVzdDsKK+mrmOWOnyA+IHBsYXRlYXU7CivnlavlrrYgPiBwYWludGVyOwor5bGI5puyID4gY3Jvb2tlZDsKK+WtuOiAhSA+IHNjaG9sYXI7CivnlrLli54gPiBmYXRpZ3VlOwor5ru/5omLID4gaGFuZGZ1bDsKK+S4jem9kiA+IGRlc3Bpc2U7CivmipXmiYsgPiBwaXRjaGVyOwor5rW36YKKID4gc2Vhc2lkZTsKK+aKiuaMgSA+IGNvbnRyb2w7CivlmYHlv4MgPiB0b1wtaGF0ZTsKK+Wwi+axgiA+IHRvXC1zZWVrOwor5pys6YyiID4gY2FwaXRhbDsKK+iGveWtkCA+IGNvdXJhZ2U7CivogLPoqp4gPiB3aGlzcGVyOwor5Zm05aKoID4gaW5rXC1qZXQ7CivkuYvplpMgPiBiZXR3ZWVuOwor5pyJ6ZmQID4gbGltaXRlZDsKK+aJmOaetiA+IGJyYWNrZXQ7Civlk4Hos6ogPiBxdWFsaXR5Owor5pys6YeRID4gY2FwaXRhbDsKK+mMpue3niA+IGJyb2NhZGU7Civpurvpm4AgPiBzcGFycm93Owor5om25oyBID4gdG9cLWhlbHA7CivomZToqqAgPiBzaW5jZXJlOwor5L+d5oyBID4gdG9cLWtlZXA7CivmibbmiYsgPiByYWlsaW5nOwor5pyA6ZW3ID4gbG9uZ2VzdDsKK+aJs+aJiyA+IHNwYW5uZXI7Civkvr/mlrwgPiBlYXN5XC10bzsKK+a1t+ixmiA+IGRvbHBoaW47CivmhJvorbcgPiBjaGVyaXNoOwor56+A5YSJID4gdGhyaWZ0eTsKK+elnumrlCA+IGdvZGhlYWQ7CivmiZPmk74gPiBkaXN0dXJiOwor5Lit6ZaTID4gYmV0d2l4dDsKK+S+huattyA+IGhpc3Rvcnk7CivmhJ/oprogPiB0b1wtZmVlbDsKK+evhOS+iyA+IGV4YW1wbGU7CivlraTnq4sgPiBpc29sYXRlOwor55W25YmNID4gY3VycmVudDsKK+WxpOWtkCA+IHN0cmF0dW07CivmnKzos6ogPiBlc3NlbmNlOwor55So5a2XID4gZGljdGlvbjsKK+iBr+e2siA+IG5ldHdvcms7CivmvZvkvI8gPiB0b1wtaGlkZTsKK+iBr+e1kCA+IHRvXC1iaW5kOwor566h5Yi2ID4gY29udHJvbDsKK+S/g+aIkCA+IHByb2N1cmU7CivlsIrmlawgPiByZXNwZWN0Owor5a6J55O/ID4gYW1wb3VsZTsKK+iHs+S4iiA+IHN1cHJlbWU7CivkuIDpoIUgPiBhblwtaXRlbTsKK+aKhOWvqyA+IHRvXC1jb3B5Owor6LSF55ikID4gdXNlbGVzczsKK+a4heecnyA+IGlzbGFtaWM7CivnlavlhZIgPiBwaWN0dXJlOwor5Zac5q2hID4gdG9cLWxpa2U7Civku5TntLAgPiBjYXJlZnVsOwor5bGg5aSrID4gYnV0Y2hlcjsKK+S4iumWgCA+IGRyb3BcLWluOwor5a2455SfID4gc3R1ZGVudDsKK+eNjumHkSA+IHByZW1pdW07CivkurrnvqQgPiBhXC1jcm93ZDsKK+eVtuS7iiA+IGN1cnJlbnQ7CivlgYfkvb8gPiBzdXBwb3NlOwor5pu06YGgID4gZmFydGhlcjsKK+Wwi+aJviA+IHRvXC1zZWVrOwor5L215qKdID4gZHJhd2luZzsKK+S5n+iosSA+IHBlcmhhcHM7CivpqZrlmocgPiBob3JyaWZ5Owor5omz5a2QID4gc3Bhbm5lcjsKK+aKveWHuiA+IGV4dHJhY3Q7CivlsLflsKwgPiBhd2t3YXJkOwor5LiN6YyvID4gY29ycmVjdDsKK+aguOafpSA+IGV4YW1pbmU7CivkuJnpha4gPiBhY2V0b25lOwor5omN5bmyID4gYWJpbGl0eTsKK+mmmeawtCA+IHBlcmZ1bWU7CivpppnmsKMgPiBpbmNlbnNlOwor5bCP5b+DID4gY2FyZWZ1bDsKK+aIkOaWhyA+IHdyaXR0ZW47CivlkJDpnLIgPiB0b1wtdGVsbDsKK+i2leW/qyA+IGF0XC1vbmNlOwor5pyD6K2wID4gbWVldGluZzsKK+mjm+iIuSA+IGFpcnNoaXA7Civmm7zosLcgPiBiYW5na29rOwor5ZGI6YCBID4gcHJlc2VudDsKK+S4u+ipniA+IHN1YmplY3Q7Civmsonpu5ggPiBzaWxlbmNlOwor5omT5a2XID4gdG9cLXR5cGU7Civmsojpu5ggPiBzaWxlbmNlOwor6Lez5YuVID4gdG9cLWJlYXQ7CivmtYHooYwgPiBwb3B1bGFyOwor5L2U5pyJID4gdG9cLWhhdmU7CivlrrTmnIMgPiBiYW5xdWV0Owor6IOM5qOEID4gYWJhbmRvbjsKK+mgmOmaiiA+IGNhcHRhaW47CivmnIjonZUgPiBlY2xpcHNlOwor5om/5Y+XID4gdG9cLWJlYXI7CivlgInkv4MgPiBodXJyaWVkOwor5oqT5YK3ID4gc2NyYXRjaDsKK+S4jeiztCA+IG5vdFwtYmFkOwor6IKl5rKDID4gZmVydGlsZTsKK+aEj+e+qSA+IG1lYW5pbmc7Civlj6zpm4YgPiBjb252ZW5lOwor56We6LehID4gbWlyYWNsZTsKK+S9v+W+kiA+IGFwb3N0bGU7CivmuIXmtJcgPiB0b1wtd2FzaDsKK+WRiuiotCA+IHRvXC10ZWxsOwor6IS55aSnID4gc3dvbGxlbjsKK+WWnOaEmyA+IHRvXC1saWtlOwor5a+25a+2ID4gZGFybGluZzsKK+etieWAmSA+IHdhaXRpbmc7Civot4zliLAgPiB0b1wtZmFsbDsKK+aHuuaClCA+IGNvbmZlc3M7CivmiLblpJYgPiBvdXRkb29yOwor5a+s5a65ID4gbGVuaWVudDsKK+iDveW5uSA+IGNhcGFibGU7CivkuI3oposgPiBub3RcLXNlZTsKK+S9j+aIvyA+IGhvdXNpbmc7CivogJXnqK4gPiB0b1wtdGlsbDsKK+aIsOWjqyA+IGZpZ2h0ZXI7Civnv6Hnv6AgPiBlbWVyYWxkOwor5bCK5Zq0ID4gZGlnbml0eTsKK+WvhuW6piA+IGRlbnNpdHk7CivlsJblj6sgPiBzY3JlZWNoOwor5LyB5qWtID4gY29tcGFueTsKK+WuieaSqyA+IHBsYWNhdGU7CivpoILph50gPiB0aGltYmxlOwor5qC45a2QID4gbnVjbGVhcjsKK+S8keacgyA+IGFkam91cm47CivosqLniakgPiB0cmlidXRlOwor5reY5rKzID4gcGVsaWNhbjsKK+mjm+ebpCA+IGZyaXNiZWU7Civmt5jmsKMgPiBuYXVnaHR5Owor6aiO5YW1ID4gY2F2YWxyeTsKK+aHiuaDsSA+IGFubm95ZWQ7CivnrKzkuIMgPiBzZXZlbnRoOwor5omT5YCSID4gZmxhdHRlbjsKK+S/g+S9vyA+IHNwdXJcLW9uOwor6aKo566xID4gYmVsbG93czsKK+a1tOebhiA+IGJhdGh0dWI7CivnvqToirEgPiBibG9zc29tOwor5omY5LuYID4gZW50cnVzdDsKK+agveWfuSA+IHRvXC1ncm93Owor56eR55uuID4gc3ViamVjdDsKK+mmrOWtkCA+IGNvbW1vZGU7CivotorljZcgPiB2aWV0bmFtOwor5a6J5oWwID4gY29tZm9ydDsKK+epuuaIsCA+IGFpclwtd2FyOwor5oiQ5ZyIID4gd3JlYXRoZTsKK+aHieW+lyA+IGRlc2VydmU7CivmiLDli50gPiBwcmV2YWlsOwor5LiN6IufID4gbm90XC1sYXg7CivkvY/lrr8gPiBsb2RnaW5nOwor6LSK5oiQID4gYXBwcm92ZTsKK+iuiumBtyA+IGNoYW5nZXM7CivmnKrnn6UgPiB1bmtub3duOwor5oOF57eSID4gZmVlbGluZzsKK+WwgeWFpSA+IGluY2xvc2U7Civph47ospMgPiB3aWxkY2F0Owor5Luj5pu/ID4gaW5zdGVhZDsKK+ahiOWNtyA+IHJlY29yZHM7CivmgqPogIUgPiBwYXRpZW50Owor5L6G5YiwID4gdG9cLWNvbWU7Civku6PmlbggPiBhbGdlYnJhOwor5pyo55OmID4gc2hpbmdsZTsKK+aIkOWKnyA+IHN1Y2Nlc3M7CivkuK3nq4sgPiBuZXV0cmFsOwor54++5pmCID4gY3VycmVudDsKK+S4lue0gCA+IGNlbnR1cnk7CivkvY7lnLAgPiBsb3dsYW5kOwor5rW35r6hID4gc2Vhd2VlZDsKK+WQq+e+qSA+IG1lYW5pbmc7Civku4rmmZogPiB0b25pZ2h0Owor6YeR6J6NID4gYmFua2luZzsKK+WTgOaxgiA+IGVudHJlYXQ7CivmtJfnpq4gPiBiYXB0aXNtOwor5a245a62ID4gc2Nob2xhcjsKK+Wmk+mZoiA+IGJyb3RoZWw7CivkuI3nrYkgPiB0b1wtdmFyeTsKK+mhr+ekuiA+IHRvXC1zaG93Owor5Y2a6ZuFID4gbGVhcm5lZDsKK+mdkumtmiA+IGhlcnJpbmc7CivppqzlhbcgPiBoYXJuZXNzOwor5ZCN576pID4gdGl0dWxhcjsKK+S4jeelpSA+IG9taW5vdXM7CivmtojmpbUgPiBwYXNzaXZlOwor5rC06YqAID4gbWVyY3VyeTsKK+aaiOiIuSA+IHNlYXNpY2s7Civogbflt6UgPiB3b3JrZXJzOwor5pel6ZaTID4gZGF5dGltZTsKK+Wtn+WtkCA+IG1lbmNpdXM7CivnpZ7npZYgPiBnb2RoZWFkOwor5puJ56S6ID4gdG9cLXRlbGw7CivokrjppL4gPiBkaXN0aWxsOwor5a6M5ZaEID4gcGVyZmVjdDsKK+aCsueXmyA+IGdyaWV2ZWQ7Civlrpjlj7ggPiBsYXdzdWl0Owor6Z2e6ZujID4gcmVwcm9vZjsKK+awuOmBoCA+IGZvcmV2ZXI7CivphazovIkgPiBwYXlsb2FkOwor6IG95a+rID4gZGljdGF0ZTsKK+WnlOiolyA+IGVudHJ1c3Q7CivomafmkI0gPiBkZWZpY2l0Owor6bq754WpID4gdHJvdWJsZTsKK+mmrOS4iiA+IGF0XC1vbmNlOwor5pmv6ImyID4gc2NlbmVyeTsKK+eliOemsSA+IHRvXC1wcmF5Owor5b+96KaWID4gbmVnbGVjdDsKK+itj+iqmiA+IGN5bmljYWw7Civnorroqo0gPiBjb25maXJtOwor546L5qyKID4gcm95YWx0eTsKK+aWuemdoiA+IHJlc3BlY3Q7Civlj6TogIEgPiBhbmNpZW50Owor5LyB5ZyWID4gYXR0ZW1wdDsKK+mhjOebriA+IHN1YmplY3Q7CivmsaHooYogPiBzbGFuZGVyOwor576F55ukID4gY29tcGFzczsKK+ePvuWvpiA+IHJlYWxpdHk7Civos6rlnLAgPiB0ZXh0dXJlOwor5Lm+5pexID4gZHJvdWdodDsKK+ePjeaEmyA+IGNoZXJpc2g7CivotIrliqkgPiBzcG9uc29yOwor5b+g6KqgID4gZGV2b3RlZDsKK+aWkemnriA+IG1vdHRsZWQ7CivphK3ph40gPiBzZXJpb3VzOwor5Y2H6YG3ID4gcHJvbW90ZTsKK+WNiumAlCA+IGhhbGZ3YXk7Civlj43ogIwgPiBpbnN0ZWFkOwor5aW96L2JID4gaW1wcm92ZTsKK+eOi+acnSA+IGR5bmFzdHk7Civmg6Hmo40gPiB2aWxsYWluOwor5Y2K6LevID4gaGFsZndheTsKK+aVtOmrlCA+IG92ZXJhbGw7Civnvr3mr5sgPiBmZWF0aGVyOwor5oSf5oOFID4gZmVlbGluZzsKK+m8u+WtlCA+IG5vc3RyaWw7Civlk4DmgJ0gPiBwZW5zaXZlOwor5Lu75YuZID4gbWlzc2lvbjsKK+aEm+aDnCA+IGNoZXJpc2g7CivnjJbnjZcgPiByYW1wYW50Owor5p6c5ZySID4gb3JjaGFyZDsKK+aXgemCiiA+IGxhdGVyYWw7Civpoqjmma8gPiBzY2VuZXJ5Owor6bSV6bOlID4gb3N0cmljaDsKK+mGnOiBniA+IHNjYW5kYWw7Civpo73lrbggPiBsZWFybmVkOwor5q6Y6aq4ID4gcmVtYWluczsKK+aWh+mbhSA+IGVsZWdhbnQ7Civpo5vlvYggPiBtaXNzaWxlOwor6IG95YqbID4gaGVhcmluZzsKK+S7v+WCmiA+IHRvXC1jb3B5Owor5pel6KqMID4gam91cm5hbDsKK+WklumdoiA+IG91dHNpZGU7CivpoJHnmq4gPiBuYXVnaHR5Owor5pq054OIID4gdmlvbGVudDsKK+mbhOm7gyA+IHJlYWxnYXI7CivmnIPmnJ8gPiBzZXNzaW9uOwor5LiN5rOVID4gbGF3bGVzczsKK+WRqOacqyA+IHdlZWtlbmQ7Civmt6HlhYkgPiBzaGltbWVyOwor6aGe5q+UID4gYW5hbG9neTsKK+iruuiqniA+IHByb3ZlcmI7CivlpKfpjK8gPiBibHVuZGVyOwor6ICB5bm0ID4gZWxkZXJseTsKK+S4n+ajhCA+IGRpc2NhcmQ7CivogIHluKsgPiB0ZWFjaGVyOwor6K6K56GsID4gc3RpZmZlbjsKK+a1t+WyuCA+IGNvYXN0YWw7Civml6XonZUgPiBlY2xpcHNlOwor56Sm54mpID4gbWluZXJhbDsKK+ixueWtkCA+IGxlb3BhcmQ7CivlpYfouZ8gPiBtaXJhY2xlOwor5q+U6LyDID4gY29tcGFyZTsKK+Wlh+i3oSA+IG1pcmFjbGU7Civku6Xkvr8gPiBzb1wtdGhhdDsKK+iRl+mZuCA+IGxhbmRpbmc7CivlvLXplosgPiBzdHJldGNoOwor5aSn6YO9ID4gZ2VuZXJhbDsKK+WlveiZlSA+IGJlbmVmaXQ7Civnp5HlrbggPiBzY2llbmNlOwor5oSb5aW9ID4gdG9cLWxpa2U7CivmtrLljJYgPiBsaXF1aWZ5Owor6YSZ6KaWID4gZGVzcGlzZTsKK+abtOaPmyA+IHJlcGxhY2U7CivmlrnoqIAgPiBkaWFsZWN0Owor5Y+k54mpID4gYW50aXF1ZTsKK+aXpeiQvSA+IHN1bmRvd247CivnpZ7moLwgPiBnb2RoZWFkOwor5pys5bGGID4gY3VycmVudDsKK+mDteiyuyA+IHBvc3RhZ2U7Civmm5bmmKcgPiBpbGxpY2l0Owor5aaC6IqxID4gZmxvd2VyeTsKK+mereetliA+IHNwdXJcLW9uOwor5oOF5oSfID4gZmVlbGluZzsKK+S4ueW/gyA+IGxveWFsdHk7Civpm4Tpm54gPiByb29zdGVyOwor5rK/5rW3ID4gY29hc3RhbDsKK+aUvumWiyA+IHVubGVhc2g7Civnuaroo70gPiB0b1wtZHJhdzsKK+S4reaApyA+IG5ldXRyYWw7CivphJnoloQgPiBkZXNwaXNlOwor6Kq56KyXID4gc2xhbmRlcjsKK+aAqueJqSA+IG1vbnN0ZXI7CivlvqnoiIggPiByZXN0b3JlOwor5raJ5Y+KID4gaW52b2x2ZTsKK+e+qOaFlSA+IGVudmlvdXM7CivljIXoo7kgPiB3cmFwXC11cDsKK+iRl+i/sCA+IHdyaXRpbmc7CivlpJbosowgPiBwcm9maWxlOwor6aSF5Lm+ID4gYmlzY3VpdDsKK+acieWusyA+IGhhcm1mdWw7CivphZLnsr4gPiBhbGNvaG9sOwor56S+5pyDID4gc29jaWV0eTsKK+e+nuaEpyA+IGFzaGFtZWQ7CivkuLvlsI4gPiB0b1wtbGVhZDsKK+aatOaUvyA+IHR5cmFubnk7CivmhJ/liLAgPiB0b1wtZmVlbDsKK+eOi+WciyA+IGtpbmdkb207CivmmJPnoo4gPiBicml0dGxlOwor6YeY5q27ID4gY3J1Y2lmeTsKK+mhp+W/jCA+IHNjcnVwbGU7CivmhIjlkIggPiB0b1wtaGVhbDsKK+WTgOWCtyA+IGdyaWV2ZWQ7CivmlbjoqZ4gPiBudW1lcmFsOwor6Kmz6L+wID4gcmVjb3VudDsKK+WJqemkmCA+IHN1cnBsdXM7CivpoZjmhI8gPiB0b1wtd2lzaDsKK+WMheiXjyA+IGNvbnRhaW47CivnjqnlhZIgPiB0b1wtcGxheTsKK+S4reWtkCA+IG5ldXRyb247Civph5HmqZggPiBrdW1xdWF0Owor6ZyA6KaBID4gdG9cLW5lZWQ7CivmgpTmgaggPiByZW1vcnNlOwor5ZCr5oSPID4gbWVhbmluZzsKK+acgOWkpyA+IGJpZ2dlc3Q7CivmnIDlpJogPiBhdFwtbW9zdDsKK+abieW+lyA+IHRvXC1rbm93Owor6ICV5L2cID4gZmFybWluZzsKK+aApea1gSA+IHRvcnJlbnQ7CivnvbfmiYsgPiBnaXZlXC11cDsKK+iAgeWFtSA+IHZldGVyYW47CivogIHlhawgPiBodXNiYW5kOwor5aOT6L+rID4gb3BwcmVzczsKK+eMnOaDsyA+IHN1cHBvc2U7CivkuK3lpK4gPiBjZW50cmFsOwor6ZqK6ZW3ID4gY2FwdGFpbjsKK+egsuiHuiA+IGJhdHRlcnk7CivkuY/lkbMgPiB0ZWRpb3VzOwor8KGcsSA+IHRvXC1lbnZ5Owor5pOv6ZmkID4gZGlzY2FyZDsKK+e3qOmAoCA+IGNvbXBpbGU7CivkuIrlsIcgPiBnZW5lcmFsOwor5ZG85ZC4ID4gYnJlYXRoZTsKK/CimLggPiB0b1wtaGF0ZTsKK+eMnOW6piA+IHN1cm1pc2U7CivlkbvlkJ8gPiB0b1wtbW9hbjsKK+eJqeeQhiA+IHBoeXNpY3M7CivpgbTpgbggPiB0b1wtcGljazsKK+eIreerryA+IGRpc3B1dGU7CivlpbPnpZ4gPiBnb2RkZXNzOwor5oOz5YOPID4gaW1hZ2luZTsKK+W8leiogCA+IGZvcndhcmQ7CivlkIzlv5cgPiBjb21yYWRlOwor5YyF576FID4gaW5jbHVkZTsKK+S4jeWlvSA+IG5vXC1nb29kOwor6K6M5pyDID4gYmFucXVldDsKK+aXheeoiyA+IGpvdXJuZXk7CivmnKzkuosgPiBhYmlsaXR5Owor6YeL5pS+ID4gcmVsZWFzZTsKK+aykuaciSA+IGhhdmVuJyd0Owor5Y2X55OcID4gcHVtcGtpbjsKK+iuiuaaliA+IHdhcm1pbmc7CivmsKPnkIMgPiBiYWxsb29uOwor54uC5pq0ID4gZnJhbnRpYzsKK+S4iOWkqyA+IGh1c2JhbmQ7CivnpZ7lpbMgPiBnb2RkZXNzOwor5ZCK5bqKID4gaGFtbW9jazsKK+WPiuaZgiA+IGluXC10aW1lOwor5aaW54mpID4gbW9uc3RlcjsKK+mDqOe9siA+IGRpc3Bvc2U7CivkuZ/kuI0gPiBuZWl0aGVyOwor5Y+v5oaQID4gcGl0aWZ1bDsKK+Wls+eahyA+IGVtcHJlc3M7Civlop7pgLIgPiBwcm9tb3RlOwor6YGZ6YGgID4gZGlzdGFudDsKK+mBmemBmSA+IGRpc3RhbnQ7CivoqZXoq5YgPiBjb21tZW50Owor5LiA5aSpID4gb25lXC1kYXk7Civlj6/mhJsgPiBhbWlhYmxlOwor5pS56KOdID4gcmVtb2RlbDsKK+eJvea2iSA+IGludm9sdmU7CivpmL/po5sgPiBob29kbHVtOwor5Y+v5oGoID4gaGF0ZWZ1bDsKK+aCsuWTgCA+IGdyaWV2ZWQ7CivpoafllY8gPiBhZHZpc2VyOwor5aSp57eaID4gYW50ZW5uYTsKK+WLs+e4viA+IGV4cGxvaXQ7Civms5XlrpggPiBhXC1qdWRnZTsKK+e+juWciyA+IGFtZXJpY2E7CivmnIDkvbMgPiBvcHRpbXVtOwor5bm96Z2IID4gc3BlY3RlcjsKK+mBi+i9iSA+IHRvXC13b3JrOwor6Zu36IGyID4gdGh1bmRlcjsKK+mBi+i8uCA+IHRyYW5zaXQ7CivnibnmroogPiBzcGVjaWFsOwor5oKy5YqHID4gdHJhZ2VkeTsKK+efs+iGjyA+IHBsYXN0ZXI7Civmm7jkv6EgPiBlcGlzdGxlOwor5bqm6YePID4gbWVhc3VyZTsKK+e2k+mKtyA+IHRvXC1zZWxsOwor5YqN6KGTID4gZmVuY2luZzsKK+WPm+W+kiA+IHRyYWl0b3I7CivoqLvop6MgPiBjb21tZW50Owor57ay6LevID4gbmV0d29yazsKK+S4iuWNiCA+IG1vcm5pbmc7Civnt5LoqIAgPiBwcmVmYWNlOwor6Ki06KifID4gbGF3c3VpdDsKK+iqh+iAgCA+IHByb3VkbHk7Civmlofnq6AgPiBhcnRpY2xlOwor57y65bitID4gYWJzZW5jZTsKK+S4gOWPoyA+IHJlYWRpbHk7CivlkK7lkLggPiB0b1wtc3VjazsKK+S4g+WNgSA+IHNldmVudHk7Civni4LmgJIgPiBmdXJpb3VzOwor5paw55SfID4gbmV3Ym9ybjsKK+maseiXjyA+IHRvXC1oaWRlOwor57aT6YGOID4gdG9cLXBhc3M7CivkuI3lho0gPiBub1wtbW9yZTsKK+maseiUvSA+IGNvbmNlYWw7CivkuJbkv5cgPiBwcm9mYW5lOwor5oCd5oOzID4gdGhvdWdodDsKK+W5tOmRkSA+IGFsbWFuYWM7CivmlLnoia8gPiBpbXByb3ZlOwor5oCl5b+ZID4gaGFzdGlseTsKK+e5queVqyA+IGRyYXdpbmc7Civmr5TnlasgPiBnZXN0dXJlOwor54eI57GgID4gbGFudGVybjsKK+e3qOiRlyA+IGNvbXBpbGU7CivorabmiJIgPiB0b1wtd2FybjsKK+e2reittyA+IGRlZmVuc2U7Civph4/lrZAgPiBxdWFudHVtOwor54y/5Lq6ID4gYXBlXC1tYW47Civlj6vlpb0gPiBhcHBsYXVkOwor6aGe5Ly8ID4gc2ltaWxhcjsKK+mAkOmAgCA+IHJlcHVsc2U7CivnorDmkp4gPiBjb2xsaWRlOwor5rOo5YWlID4gcG91clwtaW47CivpoILlpJogPiBhdFwtbW9zdDsKK+WJjeiogCA+IHByZWZhY2U7CivpnZ7ms5UgPiBpbGxlZ2FsOwor5rC05pm2ID4gY3J5c3RhbDsKK+ato+e+qSA+IGp1c3RpY2U7CivmmZrlrrQgPiBiYW5xdWV0Owor5ZCR5YmNID4gZm9yd2FyZDsKK+i+r+mngSA+IGRpc3B1dGU7Civlvp7mraQgPiB0aGVuY2U7Civps6Xnvr0gPiBwaW5pb247CivloLHphawgPiByZXdhcmQ7Civnt6jogIUgPiBlZGl0b3I7CivoqqTnlKggPiBtaXN1c2U7CivlpJbnlKUgPiBuZXBoZXc7Civph43lm54gPiByZXR1cm47CivlvLfnm5wgPiBiYW5kaXQ7Civoqannr4cgPiBwc2FsbXM7Civmlrnms5UgPiBtZXRob2Q7CivmlL/nrZYgPiBwb2xpY3k7CivpgIPotbAgPiBlc2NhcGU7Civorablr58gPiBwb2xpY2U7Civms5Xku6QgPiBkZWNyZWU7CivljbHmh7wgPiBhZnJhaWQ7CivnvarkurogPiBzaW5uZXI7CivlpKfngq4gPiBjYW5ub247CivlpKfngb0gPiBwbGFndWU7Civli4PnmbwgPiB0aHJpdmU7CivlkInku5YgPiBndWl0YXI7CivljIXmtrUgPiBleGN1c2U7Civmr4Dmu4UgPiBwZXJpc2g7CivluLbph6YgPiBidWNrbGU7Civnorrlr6YgPiBpbmRlZWQ7Civli5XniakgPiBhbmltYWw7Civnt4rnuK4gPiByZWR1Y2U7Civnh5LnhKYgPiBzY29yY2g7CivpoJjkuosgPiBjb25zdWw7CivlpKfmtaogPiBiaWxsb3c7CivnnaHokZcgPiBhc2xlZXA7CivororljJYgPiBjaGFuZ2U7CivmsKPmga8gPiBicmVhdGg7Civmk7Hnva4gPiBzaGVsdmU7Civororli5UgPiBjaGFuZ2U7CivmlbTmvZQgPiBuZWF0bHk7Civml6jmhI8gPiBkZWNyZWU7CivlvIrnl4UgPiBtYWxhZHk7CivpgbjnpaggPiBhXC12b3RlOwor5Ym956uKID4gcGlyYXRlOwor57eo56K8ID4gY29kaW5nOwor6YSJ5p2RID4gcnVzdGljOwor5beo6aCtID4gdHljb29uOwor6aCC5LqLID4gdXNlZnVsOwor5pKV6KOCID4gbWFuZ2xlOwor6ZmE6JGXID4gYWRoZXJlOwor5q2j55W2ID4gdGltZWx5Owor5oCS5ZC8ID4gYmVsbG93Owor5aWH5pmvID4gbWFydmVsOwor54mI5byPID4gZm9ybWF0Owor6YGg56iLID4gcmVtb3RlOwor57iu5ribID4gdG9cLWN1dDsKK+WNiuW+kSA+IHJhZGl1czsKK+ejqOWFiSA+IHBvbGlzaDsKK+muremtmiA+IHNhbG1vbjsKK+mZjeiHqCA+IGJlZmFsbDsKK+iqsualrSA+IGxlc3NvbjsKK+mGnOWMliA+IGRlZmFtZTsKK+inkuiQvSA+IGNvcm5lcjsKK+eLguS6uiA+IG1hZG1hbjsKK+aZguWIuyA+IG1vbWVudDsKK+Wkp+ahtiA+IGJhcnJlbDsKK+eci+imiyA+IHRvXC1zZWU7Civnt6PnlLEgPiByZWFzb247Civop6PohKsgPiByZWxpZWY7CivnoLTmlZcgPiBiZWF0ZW47Civml5fluZ8gPiBlbnNpZ247CivmsLTlo7ogPiBrZXR0bGU7CivmrpbmsJEgPiBjb2xvbnk7Civml4vlvosgPiBtZWxvZHk7Civpg7XmlL8gPiBwb3N0YWw7CivpnbblrZAgPiB0YXJnZXQ7CivlvozmgpQgPiByZWdyZXQ7Civli5XmqZ8gPiBtb3RpdmU7Civljq3lgKYgPiBkcmVhcnk7CivlvpDlvpAgPiBzbG93bHk7CivlhafpmbggPiBpbmxhbmQ7Civlt6XpjKIgPiBzYWxhcnk7CivlhazplosgPiBwdWJsaWM7Civljp/lhYggPiBmb3JtZXI7CivlhavplosgPiBvY3Rhdm87CivnhornhoogPiByYWdpbmc7Civovq/oq5YgPiBkZWJhdGU7Civnn63mrYwgPiBiYWxsYWQ7CivljZrlo6sgPiBkb2N0b3I7CivlpbblrZAgPiBicmVhc3Q7Civlv6DlkYogPiBhZHZpY2U7CivnoLLmiYsgPiBndW5uZXI7CivlpJrmmJ8gPiBzdGFycnk7CivlvovluKsgPiBsYXd5ZXI7Civlvq7lppkgPiBzdWJ0bGU7Civlpb3lpb0gPiBuaWNlbHk7CivnuL3mmK8gPiBhbHdheXM7CivplovpjpYgPiB1bmxvY2s7CivmraXmuKwgPiBwYWNpbmc7Civnh5/mlZEgPiByZXNjdWU7CivmlazmnI0gPiBhZG1pcmU7Civphazli54gPiByZXdhcmQ7CivlvpflrpwgPiBwcm9wZXI7CivliJ3ntJogPiBqdW5pb3I7CivovJXprIYgPiBnZW50bGU7CivniJDluoogPiBoZWFydGg7CivorIrloLEgPiB0b1wtbGllOwor56K65L+dID4gZW5zdXJlOwor6YGL55SoID4gdG9cLXVzZTsKK+WkqeaJjSA+IHRhbGVudDsKK+e1sue1qCA+IHZlbHZldDsKK+mBk+eQhiA+IHJlYXNvbjsKK+aUqua3tyA+IHRvXC1taXg7Civlo73mnZAgPiBjb2ZmaW47Civop6PnrZQgPiBhbnN3ZXI7CivniYjlnJYgPiBkb21haW47CivmlL/mrIogPiByZWdpbWU7CivlvojlsJEgPiBzZWxkb207CivniLXlo6sgPiBrbmlnaHQ7Civopa/oo6EgPiBsaW5pbmc7CivorJnlkowgPiBtZWVrbHk7CivntrLnkIMgPiB0ZW5uaXM7CivojZLolaogPiBiYXJyZW47CivljIXluocgPiBzaGllbGQ7CivliIbntaYgPiBkaXZpZGU7CivlpKnmgKcgPiBpbmJvcm47CivmrZDmtLIgPiBldXJvcGU7Civli77lvJUgPiBzZWR1Y2U7Civnmb3pioAgPiBzaWx2ZXI7CivnhrHmnJsgPiBhc3BpcmU7Civnsr7pgbggPiBjaG9zZW47CivmlYjmnpwgPiByZXN1bHQ7Civoqpjmi5AgPiBhYmR1Y3Q7CivoqqDmh4cgPiBoZWFydHk7CivpgJrnn6UgPiBub3RpZnk7CivliLrnl5sgPiB0aW5nbGU7CivlvrXlj6wgPiBlbmxpc3Q7CivmraHmqIIgPiBnYWlldHk7CivntKvoibIgPiBwdXJwbGU7Civoo6HpnaIgPiBpbnNpZGU7CivlhYjpi5IgPiBoZXJhbGQ7CivlubPnqakgPiBzbW9vdGg7CivmlbXmhI8gPiBlbm1pdHk7Civlt7Topb8gPiBicmF6aWw7Civnianku7YgPiBvYmplY3Q7CivljbjkuIsgPiB1bmxvYWQ7CivljIXlrrkgPiBwYXJkb247Civoqpjmg5EgPiBlbnRpY2U7CivniafkurogPiBwYXN0b3I7Civlop7mt7sgPiBhZGRcLXRvOwor5aSW5b2iID4gZmlndXJlOwor6ZuG5pyDID4gZ2F0aGVyOwor6Zqo5qmfID4gcmFuZG9tOwor5YW16K6KID4gbXV0aW55Owor5pWP5o23ID4gbmltYmxlOwor54mb5LuUID4gY293Ym95Owor5o+Q6YaSID4gcmVtaW5kOwor6Ke454qvID4gb2ZmZW5kOwor5aWq5Y+WID4gc25hdGNoOwor5aSr5a2QID4gcGVkYW50Owor5aSq5a2QID4gcHJpbmNlOwor5o6h6ZuGID4gZ2F0aGVyOwor55yf56m6ID4gdmFjdVw6bTsKK+auuuWusyA+IG11cmRlcjsKK+aumOW/jSA+IGJsb29keTsKK+mWkuipsSA+IGdvc3NpcDsKK+ecvOeariA+IGV5ZWxpZDsKK+e0sOe3miA+IHN0cmluZzsKK+i+reiBtyA+IHJlc2lnbjsKK+mEmeWQnSA+IHZ1bGdhcjsKK+e3muainSA+IHN0cmVhazsKK+m0v+WtkCA+IHBpZ2VvbjsKK+W+kuWLniA+IGZ1dGlsZTsKK+W+l+WIsCA+IHRvXC1nZXQ7CivovYnoroogPiBjaGFuZ2U7CivntLDnsokgPiBwb3dkZXI7CivoqqDlr6YgPiBob25lc3Q7CivluIzoh5ggPiBncmVlY2U7Civpm6PlvpcgPiBzZWxkb207CivlpKflpKsgPiBkb2N0b3I7CivmlbjlrZcgPiBudW1iZXI7Civmv7rplosgPiBzcGxhc2g7CivmlLvmiZMgPiBhdHRhY2s7CivpgYrmrbcgPiB0cmF2ZWw7CivliZvmraMgPiBob25lc3Q7Civlvqnku4cgPiBhdmVuZ2U7Civpmo7moq8gPiBsYWRkZXI7Civlo5PmiYEgPiBzcXVhc2g7CivoqanmhI8gPiBwb2V0aWM7Civnt6PmlYUgPiByZWFzb247CivmlJ3mlL8gPiByZWdlbnQ7Civlvp7kvoYgPiBhbHdheXM7CivmqJnoqp4gPiBzbG9nYW47CivnuK7lsI8gPiByZWR1Y2U7CivnmbzoqpMgPiB0b1wtdm93Owor5qmh6IagID4gcnViYmVyOwor5Zyw6ZC1ID4gc3Vid2F5Owor6ZuM5oCnID4gZmVtYWxlOwor5Y2B5LiAID4gZWxldmVuOwor5b6e5LqLID4gZ29cLWZvcjsKK+eGseW4tiA+IHRyb3BpYzsKK+mbnOW3pSA+IHBvcnRlcjsKK+WHuueUoiA+IG91dHB1dDsKK+WlouS+iCA+IGx1eHVyeTsKK+iSmeWPlyA+IHN1ZmZlcjsKK+aOm+mJpCA+IGNvdXBsZTsKK+e0lOeyuSA+IHB1cmVseTsKK+Wkj+WkqSA+IHN1bW1lcjsKK+mEmeS/miA+IHZ1bGdhcjsKK+mEmeS/lyA+IHZ1bGdhcjsKK+mcsuWHuiA+IGV4cG9zZTsKK+aUgOaYhyA+IHJpc2luZzsKK+eFqeaTviA+IGJvdGhlcjsKK+ino+a4tCA+IHF1ZW5jaDsKK+mBuuaGviA+IHJlZ3JldDsKK+atjOaJiyA+IHNpbmdlcjsKK+W3oeiIqiA+IGNydWlzZTsKK+W4g+e3miA+IHdpcmluZzsKK+ato+W8jyA+IGZvcm1hbDsKK+WGsOeusSA+IGljZWJveDsKK+ezu+e1sSA+IHN5c3RlbTsKK+eEoeazlSA+IHVuYWJsZTsKK+mAlea1gSA+IHJ1bm9mZjsKK+WkvuWFiyA+IGphY2tldDsKK+Wkp+WQgyA+IGdvYmJsZTsKK+avq+S4jSA+IGhhcmRseTsKK+mBk+aVmSA+IHRhb2lzbTsKK+iouuaJgCA+IGNsaW5pYzsKK+mBuuaBqCA+IGdydWRnZTsKK+aTtOaVoyA+IHNwcmVhZDsKK+mshumkhSA+IG11ZmZpbjsKK+aTr+aWpSA+IHJlamVjdDsKK+WKoOW0mSA+IGdhbGxvbjsKK+Wlh+S6iyA+IG1hcnZlbDsKK+aVmeWggiA+IGNodXJjaDsKK+ipnuWwviA+IHN1ZmZpeDsKK+mAseacnyA+IHBlcmlvZDsKK+mbtuWUriA+IHJldGFpbDsKK+aru+ahgyA+IGNoZXJyeTsKK+WcqOi7iiA+IGFib2FyZDsKK+iMtueilyA+IHRlYWN1cDsKK+e3nuW4tiA+IHJpYmJvbjsKK+WIhua0viA+IGFzc2lnbjsKK+eWvummsyA+IGdhbGxvcDsKK+e3iuaApSA+IHVyZ2VudDsKK+W7geaJgCA+IHRvaWxldDsKK+W6puaVuCA+IGRlZ3JlZTsKK+mYu+apiCA+IHRod2FydDsKK+aOp+iotCA+IGFjY3VzZTsKK+aQluexgyA+IGNyYWRsZTsKK+iRl+WQjSA+IGZhbW91czsKK+W8t+WLoiA+IG1pZ2h0eTsKK+e0rueHnyA+IGVuY2FtcDsKK+e2geaetiA+IGtpZG5hcDsKK+WHuea0niA+IGNhdml0eTsKK+W8seWMliA+IHdlYWtlbjsKK+mZsOaItiA+IHZhZ2luYTsKK+aTiuaVlyA+IGRlZmVhdDsKK+mAsuaOpSA+IGFjY2VzczsKK+efreWPpSA+IGNsYXVzZTsKK+e1leawoyA+IGV4cGlyZTsKK+iovOWvpiA+IHZlcmlmeTsKK+mAo+aTiiA+IGJhdHRlcjsKK+aVmeWNgCA+IHBhcmlzaDsKK+mAruaNlSA+IGFycmVzdDsKK+ebo+eNhCA+IHByaXNvbjsKK+eBq+eurSA+IHJvY2tldDsKK+maseWjqyA+IGhlcm1pdDsKK+iKueiPnCA+IGNlbGVyeTsKK+efreWKjSA+IGRhZ2dlcjsKK+iKreiViSA+IGJhbmFuYTsKK+W8t+WBpSA+IHN0dXJkeTsKK+atpuWZqCA+IHdlYXBvbjsKK+iIjOmgrSA+IHRvbmd1ZTsKK+eFpOWxkSA+IGNpbmRlcjsKK+W5s+advyA+IHRhYmxldDsKK+WHueanvSA+IHNvY2tldDsKK+iomOW4syA+IGNoYXJnZTsKK+WIruaOiSA+IHNjcmFwZTsKK+mZsOW9sSA+IHNoYWRvdzsKK+mrmOmbhSA+IGRhaW50eTsKK+atoeWWnCA+IGpveWZ1bDsKK+WIhuaenSA+IGJyYW5jaDsKK+WJiuW8sSA+IHdlYWtlbjsKK+atpeWTqCA+IHNlbnRyeTsKK+aQqueTtyA+IGVuYW1lbDsKK+WCs+mBlCA+IGNvbnZleTsKK+aTtOWxlSA+IGV4dGVuZDsKK+WIhuacgyA+IGJyYW5jaDsKK+a/gOi1tyA+IGFyb3VzZTsKK+ihoemHjyA+IHdlaWdodDsKK+mqqOmrkyA+IG1hcnJvdzsKK+aQlOeZoiA+IHRpY2tsZTsKK+mbleWDjyA+IHN0YXR1ZTsKK+ato+WNiCA+IG1pZGRheTsKK+aSq+aKsSA+IGNhcmVzczsKK+WFrOecviA+IHB1YmxpYzsKK+aVkeS4uyA+IHNhdmlvcjsKK+eymOeymCA+IHN0aWNreTsKK+att+S+hiA+IGFsd2F5czsKK+aUquWLlSA+IHRvXC1taXg7CivooZfpgZMgPiBzdHJlZXQ7Civlt7TniL4gPiBiYWx0aWM7CivnmoTnorogPiByZWFsbHk7CivpgY7lpLEgPiBkZWZlY3Q7Civplbfnn60gPiBsZW5ndGg7CivluavmiYsgPiBoZWxwZXI7CivmraPlgLwgPiBob25lc3Q7CivlhaznlKggPiBwdWJsaWM7Civpga3lj5cgPiBzdWZmZXI7CivpmYTlurggPiB2YXNzYWw7Civnm67mqJkgPiB0YXJnZXQ7CivpganlkIggPiB0b1wtZml0Owor6auY6YGUID4gYXR0YWluOwor6KOc57WmID4gc3VwcGx5Owor6Iqx57KJID4gcG9sbGVuOwor5YWo55CDID4gZW50aXJlOwor5oyR6YG4ID4gY2hvb3NlOwor6YGt5YiwID4gc3VmZmVyOwor55m955e0ID4gaWRpb2N5Owor5bO96LC3ID4gY2FueW9uOwor5Zmq6Z+zID4gcnVtYmxlOwor5o2N6KGbID4gZGVmZW5kOwor6KGo6KaqID4gY291c2luOwor6KeA5b+1ID4gbm90aW9uOwor6KOB57irID4gdGFpbG9yOwor5o6h57SNID4gYWNjZXB0Owor6KOc56iuID4gcmVzZWVkOwor5YWB55W2ID4gcHJvcGVyOwor5Yaw5p+xID4gaWNpY2xlOwor6Zax5q23ID4gdG9cLXNlZTsKK+WdpueZvSA+IGhvbmVzdDsKK+mYsuWuiCA+IGRlZmVuZDsKK+mYv+WnqCA+IGF1bnRpZTsKK+iNieaWmSA+IGZvZGRlcjsKK+e3muS4iiA+IG9ubGluZTsKK+WHuuW4rSA+IGF0dGVuZDsKK+mpmumnrSA+IGZyaWdodDsKK+e0oOaPjyA+IHNrZXRjaDsKK+WFh+eMmyA+IGZpZXJjZTsKK+mWkua3tyA+IGxvaXRlcjsKK+aRn+aKsSA+IHRvXC1odWc7Civoh6rouqsgPiBpdHNlbGY7CivpgLLlj6MgPiBpbXBvcnQ7CivmjqHnpKYgPiBtaW5pbmc7Civmk77kuoIgPiBpbmZlc3Q7CivntZDlsL4gPiBlbmRpbmc7CivplqPmqJMgPiBnYXJyZXQ7CivoirHnlJ8gPiBwZWFudXQ7CivpgY7ku70gPiB1bmR1bHk7CivpqZ/pm6ggPiBzaG93ZXI7CivluYPluZUgPiBzY3JlZW47CivmkLbmlZEgPiByZXNjdWU7CivlhYnmvqQgPiBsdXN0ZXI7CivmkJzmn6UgPiBzZWFyY2g7CivpgJ3ljrsgPiBlbGFwc2U7CivlhYnmvIYgPiBlbmFtZWw7CivmkK3mlZEgPiByZXNjdWU7CivlhYnmu5EgPiBnbG9zc3k7CivpgJXlkJEgPiByYWRpYWw7CivlsY/poqggPiBzY3JlZW47CivpgLzku4QgPiBuYXJyb3c7Civnm7jlt64gPiBkaWZmZXI7Civpl5zlv4MgPiBjYXJpbmc7CivmkJbmmYMgPiBmYWx0ZXI7CivmirXpgZQgPiBhcnJpdmU7CivlnLDnlKIgPiBlc3RhdGU7CivntLDlq6kgPiB0ZW5kZXI7CivlsYDpnaIgPiBhc3BlY3Q7CivmvrHnsokgPiBzdGFyY2g7CivmqJnmppwgPiBmbGF1bnQ7Civnmb3mpYogPiBwb3BsYXI7CivmupDpu54gPiBzb3VyY2U7Civmu5Hpm6ogPiB0b1wtc2tpOwor5Zue57WVID4gcmVidWZmOwor6KWq5bi2ID4gZ2FydGVyOwor57aB5L2PID4gZmFzdGVuOwor55y85YWJID4gdmlzaW9uOwor5qij5pysID4gc2FtcGxlOwor54OI5aOrID4gbWFydHlyOwor57K+5piOID4gYXN0dXRlOwor6IWz6ZCQID4gZmV0dGVyOwor55Si6YePID4gb3V0cHV0Owor55m95p6cID4gZ2lua2dvOwor5biG5biDID4gY2FudmFzOwor5biD5bmVID4gc2NyZWVuOwor6Lez6YCyID4gcGx1bmdlOwor5Zq06IKFID4gc29sZW1uOwor6ZmE5LiKID4gYXR0YWNoOwor5oqs6LW3ID4gdXBsaWZ0Owor5bm+5LmOID4gYWxtb3N0Owor6L+r5YiHID4gdXJnZW50Owor54CJ5rmWID4gbGFnb29uOwor57SE5a6aID4gZW5nYWdlOwor57Ch55u0ID4gc2ltcGx5Owor6Lef6YCyID4gZm9sbG93Owor5YWJ5pivID4gc29sZWx5Owor57Wm5LqIID4gYWNjb3JkOwor5bGx6LC3ID4gdmFsbGV5Owor5aCx5L+hID4gbm90aWZ5Owor57Ch55WlID4gc2ltcGxlOwor6KSH5pW4ID4gcGx1cmFsOwor55m95pCtID4gbm9cLXVzZTsKK+W3oeW8iyA+IGNydWlzZTsKK+apn+WvhiA+IHNlY3JldDsKK+iIqueoiyA+IGZsaWdodDsKK+WGrOWkqSA+IHdpbnRlcjsKK+aPtOaJiyA+IHN1Y2NvcjsKK+mrlOezuyA+IHN5c3RlbTsKK+W4neWciyA+IGVtcGlyZTsKK+iMtuWjuiA+IHRlYXBvdDsKK+ebn+WciyA+IGFsbGllczsKK+apmOWtkCA+IG9yYW5nZTsKK+ijgeaxuiA+IHJ1bGluZzsKK+imluWKmyA+IHZpc2lvbjsKK+WvpumrlCA+IGVudGl0eTsKK+eZvOaKliA+IHNoaXZlcjsKK+e0ouWPliA+IHRvXC1hc2s7CivluK3ljbcgPiBlbmd1bGY7CivlnLDmr68gPiBjYXJwZXQ7CivlhavluqYgPiBvY3RhdmU7CivnlKjoqp4gPiBzeW50YXg7CivluILloLQgPiBtYXJrZXQ7Civln47loKEgPiBjYXN0bGU7Civnr4DntIQgPiBmcnVnYWw7CivnlLLon7IgPiBiZWV0bGU7Civmib/oq74gPiBlZmZvcnQ7CivooZvnlJ8gPiBoZWFsdGg7CivplbfluqYgPiBsZW5ndGg7Civoo5zmlZEgPiByZW1lZHk7Civkv67oqIIgPiByZXZpc2U7CivluKvlgoUgPiBtYXN0ZXI7Civov4Tku4ogPiBzb1wtZmFyOwor5a+m6ZqbID4gYWN0dWFsOwor5ZiX6KmmID4gdG9cLXRyeTsKK+WeguW5lSA+IGNhbm9weTsKK+ign+ethiA+IGNyYXlvbjsKK+WGsOWHjSA+IGZyZWV6ZTsKK+S+rui+sSA+IGluc3VsdDsKK+aoo+WtkCA+IG1hbm5lcjsKK+eWq+eXhSA+IHBsYWd1ZTsKK+Wft+S6iyA+IGRlYWNvbjsKK+aIkOmVtyA+IG1hdHVyZTsKK+a6nemBkyA+IGdyb292ZTsKK+i+suS6uiA+IGZhcm1lcjsKK+aPkuW6pyA+IHNvY2tldDsKK+a7vuiQvSA+IHR1bWJsZTsKK+Wwh+i/kSA+IGFsbW9zdDsKK+ezu+WIlyA+IHNlcmllczsKK+ebiOWIqSA+IHByb2ZpdDsKK+aOkuaWpSA+IHJlamVjdDsKK+aJruijnSA+IG1ha2V1cDsKK+aLiee3iiA+IHN0cmFpbjsKK+S/neihmyA+IGRlZmVuZDsKK+iejeinoyA+IG1vbHRlbjsKK+WcluahiCA+IGRlc2lnbjsKK+iFlOiqvyA+IGFjY2VudDsKK+i1sOmMryA+IGFzdHJheTsKK+WWiemgrSA+IHRocm9hdDsKK+evgOecgSA+IHNhdmluZzsKK+i8leW+riA+IHNsaWdodDsKK+Wck+afsSA+IGNvbHVtbjsKK+ajieiKsSA+IGNvdHRvbjsKK+Wxj+iUvSA+IHNjcmVlbjsKK+WFp+WcsCA+IGlubGFuZDsKK+S/oeiZnyA+IHNpZ25hbDsKK+Wwj+iykyA+IGtpdHRlbjsKK+ihjOeCuiA+IGFjdGlvbjsKK+WwjeixoSA+IHRhcmdldDsKK+WFseWQjCA+IGNvbW1vbjsKK+Wfi+S8jyA+IGFtYnVzaDsKK+eWhueVjCA+IGJvcmRlcjsKK+WwjeipsSA+IGRpYWxvZzsKK+espuiZnyA+IHN5bWJvbDsKK+iDuOmHnSA+IGJyb29jaDsKK+aQreS5mCA+IGVtYmFyazsKK+iEhei/qyA+IGNvZXJjZTsKK+WWmumGkiA+IGFyb3VzZTsKK+WFq+WNgSA+IGVpZ2h0eTsKK+aoo+WTgSA+IHNhbXBsZTsKK+ewuOaPmiA+IHdpbm5vdzsKK+ajkuezliA+IHN1Y2tlcjsKK+eul+ebpCA+IGFiYWN1czsKK+ewoeaYkyA+IHNpbXBsZTsKK+ign+eHrSA+IGNhbmRsZTsKK+eyvuWKmyA+IGVuZXJneTsKK+WFrOWFsSA+IHB1YmxpYzsKK+WCs+afkyA+IGluZmVjdDsKK+W3peS6uiA+IHdvcmtlcjsKK+WcqOW+jCA+IGJlaGluZDsKK+iHqueEtiA+IG5hdHVyZTsKK+a7vuetkiA+IHJvbGxlcjsKK+a9pOa7kSA+IHNtb290aDsKK+i1t+iotCA+IHRvXC1zdWU7CivonZfon7IgPiBsb2N1c3Q7CivlsrjnhLYgPiBzb2xlbW47CivlgrPmlZkgPiBwcmVhY2g7Civoo4HlrpogPiBydWxpbmc7CivnrYnntJogPiBkZWdyZWU7CivovIPlpb0gPiBiZXR0ZXI7CivoirHlnJIgPiBnYXJkZW47CivoirHlnIggPiB3cmVhdGg7CivohY7oh58gPiBraWRuZXk7CivmjZXmi78gPiBhcnJlc3Q7Civot6/nqIsgPiBjb3Vyc2U7CivlhYjliY0gPiBiZWZvcmU7CivmhoLprLEgPiBzdWxsZW47Civppqzot68gPiBzdHJlZXQ7CivnqZfpo74gPiB0YXNzZWw7CivlgKvnkIYgPiBldGhpY3M7CivnkZ7ph5EgPiBydWlqaW47CivmirHnl4UgPiBiZVwtaWxsOwor5YKz5o6IID4gaW1wYXJ0Owor6LuK5bqrID4gZ2FyYWdlOwor5ris6YePID4gc3VydmV5Owor5a2X6aaWID4gcHJlZml4Owor6a2a5aSrID4gZmlzaGVyOwor57KX5YqjID4gY29hcnNlOwor6Iqx5ZOoID4gZ2FyaXNoOwor5omN6IO9ID4gdGFsZW50Owor6LyV5ZKsID4gbmliYmxlOwor5qKd57SLID4gc3RyaXBlOwor6Ie05q27ID4gZGVhZGx5Owor5Zq05qC8ID4gc3RyaWN0Owor5o+S5YWlID4gaW5zZXJ0Owor5ryC55m9ID4gYmxlYWNoOwor5oyr5pWXID4gdGh3YXJ0Owor6LSW6YeRID4gcmFuc29tOwor57GD5a2QID4gYmFza2V0Owor6KGM5pifID4gcGxhbmV0Owor5Zue5oa2ID4gcmVjYWxsOwor5YWJ5LquID4gYnJpZ2h0Owor5r++5ZmoID4gZmlsdGVyOwor57KX5L+XID4gdnVsZ2FyOwor56mA6aGeID4gY2VyZWFsOwor5YG15p+lID4gZGV0ZWN0Owor5YK35b+DID4gZ3JpZXZlOwor5a656KixID4gcGVybWl0Owor5o6n5ZGKID4gYWNjdXNlOwor6KKW5a2QID4gc2xlZXZlOwor5L2O6KqeID4gbXV0dGVyOwor6Iqx5YWSID4gZmxvd2VyOwor6Jyl6Jy0ID4gbGl6YXJkOwor5ryj5ryqID4gcmlwcGxlOwor5Zu65a6IID4gYWRoZXJlOwor5ZyL5aSWID4gYWJyb2FkOwor5ray6auUID4gbGlxdWlkOwor6IOM6KqmID4gcmVjaXRlOwor5p6V6aCtID4gcGlsbG93Owor6JyY6JubID4gc3BpZGVyOwor5bSO5baHID4gcnVnZ2VkOwor6aSR6aSRID4gcGFzdHJ5Owor55ay5oaKID4gYmVhdGVuOwor5L6N6ICFID4gd2FpdGVyOwor6aSQ6aOyID4gcmVwYXN0Owor5YK35a6zID4gaW5qdXJlOwor5L+u55CGID4gcmVwYWlyOwor5L2V6JmVID4gd2hlbmNlOwor5ryr5q2lID4gcmFtYmxlOwor5L+h55SoID4gY3JlZGl0Owor5ra86Z6LID4gc2FuZGFsOwor5rW36b6cID4gdHVydGxlOwor5Zug5a2QID4gZmFjdG9yOwor5ouz5pOKID4gYm94aW5nOwor6Luf5YyWID4gc29mdGVuOwor5a6J6KmzID4gc2VyZW5lOwor5Zyf5YyqID4gYmFuZGl0Owor5ouU5qC5ID4gdXByb290Owor5omj55WZID4gZGV0YWluOwor5p2+6ZueID4gZ3JvdXNlOwor6aaZ6JWJID4gYmFuYW5hOwor6auY5bqmID4gaGVpZ2h0Owor5qeL5Lu2ID4gbWVtYmVyOwor5ZWG6KuHID4gY29uZmVyOwor55Ww5pWZID4gaGVyZXN5Owor57Ch5ZauID4gc2ltcGxlOwor5qO65p2QID4gY29mZmluOwor5Zyw5Li7ID4gYVwtaG9zdDsKK+mrmOWxsSA+IGFscGluZTsKK+WDseS9oyA+IGVtcGxveTsKK+mjoumkkyA+IGh1bmdlcjsKK+eUn+a2ryA+IGNhcmVlcjsKK+ajruaelyA+IGZvcmVzdDsKK+S9nOiAhSA+IGF1dGhvcjsKK+aMquWogSA+IG5vcndheTsKK+Wwi+eahCA+IGhvbWluZzsKK+WatOWvhiA+IHN0cmljdDsKK+aLmOaNlSA+IGFycmVzdDsKK+WBpeW6tyA+IGhlYWx0aDsKK+ihqOWTpSA+IGNvdXNpbjsKK+aci+m7qCA+IGNsaXF1ZTsKK+a3t+ihgCA+IGh5YnJpZDsKK+i3i+a2iSA+IHRydWRnZTsKK+WDheWDhSA+IGJhcmVseTsKK+WbnuWOuyA+IHJldHVybjsKK+a8j+aWlyA+IGZ1bm5lbDsKK+izk+iqniA+IG9iamVjdDsKK+S5s+mgrSA+IG5pcHBsZTsKK+a7v+acnyA+IGV4cGlyZTsKK+eQhuirliA+IHRoZW9yeTsKK+S7i+izqiA+IG1lZGl1bTsKK+etlOahiCA+IGFuc3dlcjsKK+mRv+WtkCA+IGNoaXNlbDsKK+eUseaWvCA+IGR1ZVwtdG87Civmiormn4QgPiBoYW5kbGU7CivlkozpoqggPiBicmVlemU7Civkvb/nlKggPiB0b1wtdXNlOwor6IGY6KuLID4gZW5nYWdlOwor5om25qSNID4gZm9zdGVyOwor55Kw55CDID4gZ2xvYmFsOwor5bSX5L2NID4gYVwtcG9zdDsKK+S+v+axoCA+IHVyaW5hbDsKK+WbnuS+hiA+IHJldHVybjsKK+aLk+WxlSA+IGV4cGFuZDsKK+a6qua1gSA+IHN0cmVhbTsKK+WatOWOsiA+IHNldmVyZTsKK+a9m+WcqCA+IGhpZGRlbjsKK+iIueS4iiA+IGFib2FyZDsKK+Wuo+eosSA+IGFzc2VydDsKK+WTgOi+rSA+IGxhbWVudDsKK+aJi+autSA+IG1ldGhvZDsKK+S5vumFqiA+IGNoZWVzZTsKK+abtOmrmCA+IGhpZ2hlcjsKK+WBjOWkpyA+IHNvXC1iaWc7CivlrqPnpLogPiB0b1wtdm93Owor5bCP5rCjID4gc3Rpbmd5Owor6auU5Yi2ID4gc3lzdGVtOwor5oiQ54afID4gbWF0dXJlOwor6IKM6IKJID4gbXVzY2xlOwor5L2c55SoID4gYWN0aW9uOwor5oq95bGcID4gZHJhd2VyOwor6ama5oGQID4gYXBwYWxsOwor5oqK5omLID4gaGFuZGxlOwor5omL5qeNID4gcGlzdG9sOwor5a6255WcID4gY2F0dGxlOwor56aP6Z+zID4gZ29zcGVsOwor6LW35rqQID4gb3JpZ2luOwor576k6auUID4gY29sb255Owor5LqC6LezID4gYm91bmNlOwor55S35berID4gd2l6YXJkOwor6Ia95aSnID4gZGFyaW5nOwor5a6J56WlID4gc2VyZW5lOwor562U5b6pID4gYW5zd2VyOwor6Lef5b6eID4gZm9sbG93Owor5YGl5YWoID4gcm9idXN0Owor5qC55rqQID4gb3JpZ2luOwor6IO95rqQID4gZW5lcmd5Owor5pys6LqrID4gaXRzZWxmOwor5ouM5Zi0ID4gYmlja2VyOwor5omT5pOKID4gdG9cLWhpdDsKK+aHieeVtiA+IHNob3VsZDsKK+aJo+aKvCA+IGRldGFpbjsKK+esqOaLmSA+IGNsdW1zeTsKK+WAi+WtkCA+IGhlaWdodDsKK+aHieeUqCA+IHRvXC11c2U7CivnkZXnlrUgPiBzdGlnbWE7Civmm53pnLIgPiBleHBvc2U7Civmtbfoo6EgPiBtYXJpbmU7CivlkbPpgZMgPiBmbGF2b3I7CivmiYvmjIcgPiBmaW5nZXI7CivmiorlrZAgPiBoYW5kbGU7Civnp4Hoqp4gPiBtdXJtdXI7CivppIrogrIgPiBmb3N0ZXI7CivmnIDov5EgPiByZWNlbnQ7CivmuIXnmKYgPiBtZWFnZXI7CivmtLvouo0gPiBhY3RpdmU7CivlsrjkuIogPiBhc2hvcmU7CivmiJDmnpwgPiByZXN1bHQ7CivkuK3pgJQgPiBtaWR3YXk7CivpoILpu54gPiBzdW1taXQ7CivmmrTpnLIgPiBleHBvc2U7CivnqoHnhLYgPiBzdWRkZW47CivmnKjoo70gPiB3b29kZW47CivlronnhLYgPiBzYWZlbHk7Civpo6LojZIgPiBmYW1pbmU7Civotr7lsJYgPiB0aXB0b2U7CivmnZ/ohbAgPiBnaXJkbGU7Civlrq7mrr8gPiBwYWxhY2U7Civmnb/ntZAgPiBoYXJkZW47Civkvpvmh4kgPiBzdXBwbHk7Civkv6HlpYkgPiBiZWxpZWY7CivmiJDmlYggPiBlZmZlY3Q7Civnk7blrZAgPiBib3R0bGU7CivkuInph40gPiB0cmVibGU7CivlrqLmsKMgPiBwb2xpdGU7Civmta7okZcgPiBhZmxvYXQ7CivlqpLos6ogPiBtZWRpdW07Civororpu5EgPiBkYXJrZW47CivlraTnjaggPiBsb25lbHk7CivmuKDmup0gPiB0cmVuY2g7Civog6HmpJIgPiBwZXBwZXI7Civmta7oj68gPiB2YW5pdHk7Civpp4HmlqUgPiByZWZ1dGU7CivkuI3pgakgPiB1bndlbGw7Civnvp7ovrEgPiBiYWZmbGU7CivnlZnkuIsgPiByZW1haW47CivkuIrpgoogPiB1cHNpZGU7Civpj6HlrZAgPiBtaXJyb3I7Civog6HmoYMgPiB3YWxudXQ7Civpj5/lrZAgPiBzaG92ZWw7CivlsIHlu7ogPiBmZXVkYWw7CivmnpznnJ8gPiByZWFsbHk7Civlkozol7kgPiBraW5kbHk7CivpuJrptaEgPiBwYXJyb3Q7Civnqb/mtJ4gPiBwaWVyY2U7Civlr7rlu58gPiB0ZW1wbGU7CivnkIbnlLEgPiByZWFzb247CivotrPlpKAgPiBlbm91Z2g7CivolYHpursgPiBuZXR0bGU7CivlrqLmo6cgPiB0YXZlcm47Civlr7bluqcgPiB0aHJvbmU7Civlj6npoK0gPiBrb3d0b3c7CivmiL/lrqIgPiB0ZW5hbnQ7CivnrKzlm5sgPiBmb3VydGg7Civph47ppJAgPiBwaWNuaWM7CivlsIjlrrYgPiBleHBlcnQ7Civmn7PmqLkgPiB3aWxsb3c7CivnlLHkvoYgPiBvcmlnaW47Civkvb/lvpcgPiB1c2FibGU7CivmvILkuq4gPiBwcmV0dHk7Civll5PlrZAgPiB0aHJvYXQ7CivonIPmma8gPiBtaXJhZ2U7Civph43pn7MgPiBhY2NlbnQ7Civlj43pp4EgPiByZXRvcnQ7CivlsJHlpbMgPiBtYWlkZW47CivnlLHkuo4gPiBkdWVcLXRvOwor5rW357a/ID4gc3BvbmdlOwor55CD54uAID4gc3BoZXJlOwor55So5LqOID4gdXNlXC1pbjsKK+aHieaciSA+IHByb3BlcjsKK+iyp+eYoCA+IGJhcnJlbjsKK+iZn+eivCA+IG51bWJlcjsKK+aZmumjryA+IHN1cHBlcjsKK+izreazqCA+IHN0YWtlczsKK+elnuirrSA+IG9yYWNsZTsKK+aEmuesqCA+IHN0dXBpZDsKK+aenOeEtiA+IHJlYWxseTsKK+S4jeimgSA+IGRvbicndFwhOwor5p2Q56mNID4gdm9sdW1lOwor5omB5ZyTID4gb2JsYXRlOwor6buD6ImyID4geWVsbG93Owor5Y+u6Yi0ID4gamluZ2xlOwor56ys5YWrID4gZWlnaHRoOwor5bGF5L2PID4gcmVzaWRlOwor5a245qChID4gc2Nob29sOwor5LiK6KGrID4gYmxvdXNlOwor5rOi6LC3ID4gdHJvdWdoOwor5LiK6KGjID4gamFja2V0Owor5a+25aGUID4gcGFnb2RhOwor5a6i5oi2ID4gY2xpZW50Owor56qX5oi2ID4gd2luZG93Owor5a625bqtID4gZmFtaWx5Owor6YeN6YePID4gd2VpZ2h0Owor5p+P5p6XID4gYmVybGluOwor5pyJ572qID4gZ3VpbHR5Owor6Y215bi9ID4ga2V5Y2FwOwor5bCP5YyFID4gcGFja2V0Owor5Lqo54m5ID4gaHVudGVyOwor56mN5qW1ID4gYWN0aXZlOwor5omT5YK3ID4gYnJ1aXNlOwor6aCB6YKKID4gbWFyZ2luOwor5omL5YaKID4gbWFudWFsOwor5a+C5a+eID4gbG9uZWx5Owor5rW355ucID4gcGlyYXRlOwor6IOM5b6MID4gYmVoaW5kOwor54mZ6b2SID4gZGVudGFsOwor5L2c5a62ID4gYXV0aG9yOwor5ZCN6KiAID4gc2F5aW5nOwor5pmu6YCaID4gY29tbW9uOwor6ICA55y8ID4gZGF6emxlOwor5Li757eoID4gZWRpdG9yOwor5riv5b2OID4gaGFyYm9yOwor6IOM5bi2ID4gYnJhY2VzOwor54qv6YyvID4gdG9cLWVycjsKK+iBluauvyA+IHRlbXBsZTsKK+aatOiZkCA+IGJydXRhbDsKK+azouiYrSA+IHBvbGFuZDsKK+mngeWbniA+IHJlamVjdDsKK+aIkOWToSA+IG1lbWJlcjsKK+aDs+edoSA+IGRyb3dzeTsKK+aYn+mbsiA+IG5lYnVsYTsKK+iuiui7nyA+IHNvZnRlbjsKK+S4jeiDvSA+IGNhbm5vdDsKK+a1t+eLuCA+IGJlYXZlcjsKK+S+neWBjiA+IG5lc3RsZTsKK+aGpOaFqCA+IHJlc2VudDsKK+aHpuWkqyA+IGNvd2FyZDsKK+S8keaDnCA+IHJlY2VzczsKK+iTrOmshiA+IGZsdWZmeTsKK+WPr+imqiA+IGtpbmRseTsKK+ejgemQtSA+IG1hZ25ldDsKK+mgmOiiliA+IGxlYWRlcjsKK+S4jee+iCA+IHVucnVseTsKK+agoeWckiA+IGNhbXB1czsKK+aIkOWLoyA+IHJlc3VsdDsKK+elnuiBliA+IGRpdmluZTsKK+S4reetiSA+IG1lZGl1bTsKK+iuiuizqiA+IGdvXC1iYWQ7CivnvorogokgPiBtdXR0b247Civmtojmu4UgPiBwZXJpc2g7CivllonlmqggPiB0aHJvYXQ7CivmgKfos6ogPiBuYXR1cmU7CivlkIrokZcgPiBkYW5nbGU7Civmn7HlrZAgPiBwaWxsYXI7CivmuIXlu4kgPiBob25lc3Q7CivljbHpmqogPiBkYW5nZXI7CivlronlrpogPiBzdGFibGU7Civmho7mg6EgPiBsb2F0aGU7Civlj6PooosgPiBwb2NrZXQ7Civmho7mgaggPiBkZXRlc3Q7CivllpzliocgPiBjb21lZHk7Civlr5LlhqwgPiB3aW50cnk7CivosrbmlqUgPiBkZW1vdGU7Civlpa7prKUgPiBzdHJpdmU7Civllq7kvY0gPiBhXC11bml0Owor5pyJ55SoID4gdXNlZnVsOwor55CD5ouNID4gcmFja2V0Owor5Y+l6JmfID4gcGVyaW9kOwor5Y+j6JmfID4gc2xvZ2FuOwor56mp5a6aID4gc3RhYmxlOwor5Zau5LiAID4gc2luZ2xlOwor5a2Q5b2IID4gYnVsbGV0Owor5a6J5Z+5ID4gYW1wZXJlOwor56Gs6aCYID4gY29sbGFyOwor6aGG57KSID4ga2VybmVsOwor6aOf5qe9ID4gbWFuZ2VyOwor5aqS55WMID4gbWVkaXVtOwor5pys5rqQID4gb3JpZ2luOwor5a6w5YmyID4gaW52YWRlOwor6IOM5Y+bID4gYmV0cmF5Owor6LSW5ZueID4gcmVkZWVtOwor5rOi57SLID4gcmlwcGxlOwor56qX5Y+jID4gd2luZG93Owor542o54m5ID4gdW5pcXVlOwor5a2X5bC+ID4gc3VmZml4Owor56We56S+ID4gc2hyaW5lOwor6JWq6I+BID4gdHVybmlwOwor5rK56ISCID4gZ3JlYXNlOwor6Z2b6Z2SID4gaW5kaWdvOwor6Z6g6LqsID4gdG9cLWJvdzsKK+mHkeiJsiA+IGdvbGRlbjsKK+WNt+i7uCA+IHNjcm9sbDsKK+Wkp+m6pSA+IGJhcmxleTsKK+m1k+m0vyA+IHBpZ2VvbjsKK+WupOWFpyA+IGluZG9vcjsKK+S9leS7pSA+IHdoZW5jZTsKK+WPl+iLpiA+IHN1ZmZlcjsKK+S8uOWHuiA+IGV4dGVuZDsKK+S4gOeepSA+IGdsYW5jZTsKK+S8r+WLniA+IHNocmlrZTsKK+a0u+a9kSA+IGxpdmVseTsKK+aWrOmmliA+IGJlaGVhZDsKK+izk+WuoiA+IGd1ZXN0czsKK+WMlemmliA+IGRhZ2dlcjsKK+eRnuWFuCA+IHN3ZWRlbjsKK+ism+mBkyA+IHByZWFjaDsKK+m8u+aBryA+IGJyZWF0aDsKK+ismemBnCA+IGh1bWJsZTsKK+iyquW/gyA+IGdyZWVkeTsKK+i0iuWQjCA+IGFzc2VudDsKK+iWhOe0mSA+IHRpc3N1ZTsKK+aCtueGsSA+IHN1bHRyeTsKK+mgkue1piA+IGNvbmZlcjsKK+iumue+jiA+IGFkbWlyZTsKK+ePvuWtmCA+IGV4dGFudDsKK+mkkOW3viA+IG5hcGtpbjsKK+S7peWkqiA+IGV0aGVyXC07CivmhYvluqYgPiBtYW5uZXI7CivlpbbphaogPiBjaGVlc2U7Civni7nnqoQgPiBuYXJyb3c7CivnkaPkuosgPiB0cmlmbGU7CivogIHmmK8gPiBhbHdheXM7CivolYPojIQgPiB0b21hdG87CivosqHluJsgPiB3ZWFsdGg7CivpoJDnrpcgPiBidWRnZXQ7CivpnZLpioUgPiBicm9uemU7Civlv5joqJggPiBmb3JnZXQ7CivpoJHnq6UgPiB1cmNoaW47Civmt7flkIggPiB0b1wtbWl4Owor5pyD5q27ID4gbW9ydGFsOwor5LiN54S2ID4gbm90XC1zbzsKK+iugOiAhSA+IHJlYWRlcjsKK+a0quawtCA+IGRlbHVnZTsKK+aEn+aFqCA+IGxhbWVudDsKK+izreWNmiA+IGdhbWJsZTsKK+S6i+aDhSA+IGFmZmFpcjsKK+WtmOWPliA+IGFjY2VzczsKK+acqOaWmSA+IGx1bWJlcjsKK+iyoeWvjCA+IHdlYWx0aDsKK+a3seWMliA+IGRlZXBlbjsKK+aWuemHnSA+IHBvbGljeTsKK+mgguerryA+IHN1bW1pdDsKK+WmluiogCA+IGhlcmVzeTsKK+ePvuWcqCA+IG1vZGVybjsKK+iuiue0hSA+IHJlZGRlbjsKK+WQjeeUoiA+IHN0YXBsZTsKK+aYhuifsiA+IGluc2VjdDsKK+W+jOmCiiA+IGJlaGluZDsKK+eMlueLgiA+IHNhdmFnZTsKK+WtpOWFkiA+IG9ycGhhbjsKK+a3qOWMliA+IHB1cmlmeTsKK+W+jOmAgCA+IHJlY29pbDsKK+eJoeigoyA+IG95c3RlcjsKK+S6uuWjqyA+IHBlcnNvbjsKK+iBt+WLmSA+IGFcLXBvc3Q7CivniYfoqp4gPiBwaHJhc2U7CivmsJHorKAgPiBiYWxsYWQ7CivnjJvng4ggPiBmaWVyY2U7CivmtYHmmJ8gPiBtZXRlb3I7CivmgrLmrY4gPiBiZXdhaWw7CivlrZjlhLIgPiBtZW1vcnk7Civku6XliY0gPiBiZWZvcmU7CivosaHlvrUgPiBlbWJsZW07CivkuI3mr5sgPiBiYXJyZW47CivkuI3mr5QgPiB1bmxpa2U7CivosaHlvoEgPiBzeW1ib2w7Civmr5fpgKMgPiBhZGpvaW47CivlpKfpjJggPiBzbGVkZ2U7CivmnIDmlrAgPiBsYXRlc3Q7CivmsrvnkIYgPiBnb3Zlcm47CivkuLvmlZkgPiBiaXNob3A7CivorJnomZsgPiBtb2Rlc3Q7CivniLbopqogPiBmYXRoZXI7CivomZXlpbMgPiB2aXJnaW47Civos6PkuLsgPiBzZWxsZXI7Civnvormr5sgPiBmbGVlY2U7CivmlL7prIYgPiBsb29zZW47CivlkKvmsLQgPiB3YXRlcnk7Civnp5jlr4YgPiBzZWNyZXQ7CivomZXlooMgPiBwbGlnaHQ7CivorbDnqIsgPiBhZ2VuZGE7Civni6HnjL4gPiBjcmFmdHk7CivnjovluqcgPiB0aHJvbmU7Civmg6HmhI8gPiBtYWxpY2U7CivlvITpq5IgPiBkZWZpbGU7CivmnKzlt54gPiBob25zaHU7CivlrLDlhZIgPiBpbmZhbnQ7CivolqrmsLQgPiBzYWxhcnk7CivnjbjmgKcgPiBicnV0YWw7Civmlbjph48gPiBhbW91bnQ7CivmlrfoqIAgPiBhZmZpcm07Civml4XooYwgPiB0cmF2ZWw7CivmtarlrZAgPiBsb2FmZXI7CivmnInmhI8gPiBpbnRlbmQ7Civnp4vlraMgPiBhdXR1bW47CivlkI3mtYEgPiBnZW50cnk7Civlj7DngaMgPiB0YWl3YW47CivkuI3mmbogPiB1bndpc2U7CivlpoLojYkgPiBncmFzc3k7CivmlYXpmpwgPiBnbGl0Y2g7CivpoZjmnJsgPiBkZXNpcmU7CivlkIjms5UgPiBsYXdmdWw7CivlkI3msKMgPiByZXB1dGU7CivlpKfot68gPiBhdmVudWU7CivmtbfloLEgPiBwb3N0ZXI7CivoqZ7poK0gPiBwcmVmaXg7CivkuqbljbMgPiBuYW1lbHk7Civlk4DlmIYgPiBsYW1lbnQ7CivnjovlrZAgPiBwcmluY2U7CivnuKvph50gPiBuZWVkbGU7Civmrq/ou4ogPiBoZWFyc2U7CivphqvnlJ8gPiBkb2N0b3I7Civnp4vlpKkgPiBhdXR1bW47CivkurrlgJEgPiBwZW9wbGU7CivmmpbmsKMgPiBoZWF0ZXI7Civnp7vli5UgPiBtb2JpbGU7CivlkLjmlLYgPiBhYnNvcmI7CivmhI/lnJYgPiBpbnRlbnQ7CivlvLfov6sgPiBjb21wZWw7CivpoavmipYgPiBxdWl2ZXI7Civnt6Ppo74gPiBmcmluZ2U7CivkuK3lv4MgPiBjZW50ZXI7CivmgpTmlLkgPiByZXBlbnQ7CivlkajlubQgPiBhbm51YWw7Civlj6PmuLQgPiB0aGlyc3Q7Civph53ms5UgPiBzdGl0Y2g7CivmtojljJYgPiBkaWdlc3Q7CivmraPploAgPiBwb3J0YWw7Civmtbflk6EgPiBzYWlsb3I7CivkuozljYEgPiB0d2VudHk7CivlkJDmoLkgPiBpcGVjYWM7Civpm5nph40gPiBkb3VibGU7CivpnZLoi5QgPiBsaWNoZW47CivlpJroroogPiBmaWNrbGU7CivmspnmvKAgPiBkZXNlcnQ7CivpiYvluoogPiBwbGFuZXI7Civlu7bplbcgPiBleHRlbmQ7CivlkI3mnJsgPiByZW5vd247Civlj5bmtoggPiBjYW5jZWw7CivlpqjnpJkgPiBoaW5kZXI7CivkuqTkupIgPiBtdXR1YWw7CivpgqPpgoogPiB5b25kZXI7CivmrbjpgoQgPiByZXR1cm47CivliojplosgPiBjbGVhdmU7CivphZLnqqkgPiBkaW1wbGU7CivlkpbllaEgPiBjb2ZmZWU7CivnnqzplpMgPiBtb21lbnQ7Civli5XorbAgPiBtb3Rpb247CivpmbDprLEgPiBnbG9vbXk7CivmlL7pgJAgPiBiYW5pc2g7CivphY3nqLEgPiB3b3J0aHk7CivmtLvloZ4gPiBwaXN0b247CivmnKrlj68gPiBjYW5ub3Q7CivlpJbooYwgPiBsYXltYW47CivwpZyMID4gYVwtY29hdDsKK+adj+S7gSA+IGFsbW9uZDsKK+eijuefsyA+IGdyYXZlbDsKK+mgkOacnyA+IGV4cGVjdDsKK+abtOWlvSA+IGJldHRlcjsKK+aEm+S6uiA+IHNwb3VzZTsKK+mahumahiA+IHJ1bWJsZTsKK+enieWFrCA+IGp1c3RseTsKK+emseWRiiA+IHByYXllcjsKK+abtOWkpyA+IGJpZ2dlcjsKK+acneWQkSA+IHRvd2FyZDsKK+S5neWNgSA+IG5pbmV0eTsKK+egtOiIiiA+IHNoYWJieTsKK+S4gOW4tiA+IHJlZ2lvbjsKK+mhp+WuoiA+IGNsaWVudDsKK+WPouaelyA+IGp1bmdsZTsKK+eip+eOiSA+IGphc3BlcjsKK/ClpYUgPiBhXC1ob2xlOwor5Y+q5pivID4gbWVyZWx5Owor54y05a2QID4gbW9ua2V5Owor8KKmjyA+IHRvXC1jdXQ7CivpmqfpgZMgPiB0dW5uZWw7Civmg6HljJYgPiB3b3JzZW47CivmnKjlgbYgPiBwdXBwZXQ7CivmnIPlk6EgPiBtZW1iZXI7CivkuIDlsYAgPiBpbm5pbmc7CivmnInlkI0gPiBmYW1vdXM7CivmnIvlj4sgPiBmcmllbmQ7Civoj4zpoZ4gPiBmdW5ndXM7CivkuIDlsI0gPiBjb3VwbGU7Civnoavno7ogPiBzdWxmdXI7CivmnKrkvoYgPiBmdXR1cmU7CivkuIDlrpogPiBzdXJlbHk7Civpga3pgYcgPiBiZWZhbGw7CivkuYvliY0gPiBiZWZvcmU7Civnvbflt6UgPiBzdHJpa2U7CivphInntLMgPiBzcXVpcmU7Civoqa3oqIggPiBkZWNlaXQ7CivosYHlhY0gPiBleGVtcHQ7CivmtYHliKkgPiBmbHVlbnQ7CivmgKfmoLwgPiBuYXR1cmU7CivmtLvlipsgPiBlbmVyZ3k7Civorormm7QgPiBjaGFuZ2U7Civlv4PnkIYgPiBtZW50YWw7CivorormmpcgPiBkYXJrZW47CivniaLniaIgPiBmaXJtbHk7Civpoqjkv5cgPiBjdXN0b207Civnt6PotbcgPiBvcmlnaW47CivoqJjpjIQgPiByZWNvcmQ7CivwoICJID4gYVwtaGlsbDsKK+WJtei+piA+IGxhdW5jaDsKK+aal+W9sSA+IHNoYWRvdzsKK+maiumDqCA+IG9mZmljZTsKK+iumuaPmiA+IHByYWlzZTsKK+S5nuS4kCA+IGJlZ2dhcjsKK+mBjumHjyA+IGV4Y2VzczsKK+eGlOinoyA+IGZ1c2lvbjsKK+mamOi3ryA+IGRlZmlsZTsKK+mCgOiriyA+IGludml0ZTsKK+W+queSsCA+IGNpcmNsZTsKK+aZuuaFpyA+IHdpc2RvbTsKK+eNteS6uiA+IGh1bnRlcjsKK+aBkOaAliA+IHRlcnJvcjsKK+aWkee0iyA+IHN0cmlwZTsKK+efs+iLsSA+IHF1YXJ0ejsKK+WMheeuoSA+IGFzc3VyZTsKK+mFteavjSA+IGxlYXZlbjsKK+ino+mZpCA+IHJlbW92ZTsKK+WLleiEiCA+IGFydGVyeTsKK+acgOS9jiA+IGxvd2VzdDsKK+elreWPuCA+IHByaWVzdDsKK+eJueatpCA+IGhlcmVieTsKK+mbjOiViiA+IHBpc3RpbDsKK+WkqeevtyA+IGNhbm9weTsKK+W5sumgkCA+IG1lZGRsZTsKK+WMluefsyA+IGZvc3NpbDsKK+S4jeWPryA+IGNhbm5vdDsKK+awtOazpSA+IGNlbWVudDsKK+awtOazoSA+IGJ1YmJsZTsKK+itpuaWuSA+IHBvbGljZTsKK+eIuOeIuCA+IGZhdGhlcjsKK+iTi+eIviA+IGdhZWxpYzsKK+WJjei8qSA+IHNlbmlvcjsKK+iomOi1tyA+IHJlY2FsbDsKK+S4ieWNgSA+IHRoaXJ0eTsKK+e5g+ewpyA+IHNwcmluZzsKK+aSpOmZpCA+IHJlbW92ZTsKK+mHpuWtkCA+IGJ1dHRvbjsKK+W9iOewpyA+IHNwcmluZzsKK+WJr+ipniA+IGFkdmVyYjsKK+eJm+ayuSA+IGJ1dHRlcjsKK+iqsueoiyA+IGNvdXJzZTsKK+W5tOmVtyA+IHNlbmlvcjsKK+aAp+aDhSA+IG5hdHVyZTsKK+e3qOiZnyA+IG51bWJlcjsKK+awo+azoSA+IGJ1YmJsZTsKK+WNseapnyA+IGNyaXNpczsKK+S4jeWFrCA+IHVuanVzdDsKK+W6lemDqCA+IGJvdHRvbTsKK+S4jeWFiyA+IGNhbm5vdDsKK+azleWciyA+IGZyYW5jZTsKK+ayieaAnSA+IHBvbmRlcjsKK+aal+WgoSA+IGJ1bmtlcjsKK+eLl+WxiyA+IGtlbm5lbDsKK+aatOWQmyA+IHR5cmFudDsKK+WHuemZtyA+IGhvbGxvdzsKK+S4ieWAjSA+IHRyaXBsZTsKK+Wkp+ecviA+IHBlb3BsZTsKK+mcnOeZvSA+IGZyb3N0eTsKK+WQpuWJhyA+IGlmXC1ub3Q7CivliIbpkJggPiBtaW51dGU7CivpoJjln58gPiBkb21haW47Civokaznpq4gPiBidXJpYWw7CivmsLTmobYgPiBidWNrZXQ7CivmkqTpircgPiByZXBlYWw7CivlkIjllLEgPiBjaG9ydXM7CivphqvluKsgPiBkb2N0b3I7Civlj43lsIQgPiByZWZsZXg7CivkuI3kuLkgPiBiaHV0YW47Civmlaznpq4gPiBzYWx1dGU7CivpnZ7mtLIgPiBhZnJpY2E7CivpgJrot68gPiBhY2Nlc3M7Civnvo7kurogPiBiZWF1dHk7CivorIDmrrogPiBtdXJkZXI7CivnvbflhY0gPiByZWNhbGw7CivoqIDoqp4gPiBzcGVlY2g7CivliZ3onZUgPiBkZW51ZGU7CivpgIDpgoQgPiByZXR1cm47Civmlbjnm64gPiBhbW91bnQ7Civlj6zlm54gPiByZWNhbGw7CivnoLTniJsgPiByYWdnZWQ7CivkuIDkuLIgPiBzdHJhbmQ7Civnupbmr5sgPiBjaWxpdW07CivmgKflrZAgPiB0ZW1wZXI7Civov73pgJAgPiBjaGFzZTsKK+mAleizvSA+IHRyYWNrOwor6Z2c5q2iID4gc3RpbGw7Civlt7Tpu44gPiBwYXJpczsKK+W5tOi8lSA+IHlvdW5nOwor6L+06YG/ID4gYXZvaWQ7Civokrjmsb0gPiBzdGVhbTsKK+asiuihoSA+IHdlaWdoOwor6YGK6JWpID4gc3RyYXk7CivlvITns58gPiBzcG9pbDsKK+aBqeWFuCA+IGdyYWNlOwor5aSn54i6ID4gdW5jbGU7Civml6XmnKwgPiBqYXBhbjsKK+WPr+WPryA+IGNvY29hOwor5Y+v5Y+jID4gdGFzdHk7Civlu7bnt6kgPiBkZWZlcjsKK+e3qOe5lCA+IHdlYXZlOwor5Y2X5pa5ID4gc291dGg7Civnva7kuo4gPiBwbGFjZTsKK+WnquWlsyA+IG5pZWNlOwor6Zm36JC9ID4gc2x1bXA7CivniZvmjpIgPiBzdGVhazsKK+masee0hCA+IHZhZ3VlOwor6a+o6a2aID4gd2hhbGU7CivlkIjkvbUgPiBhbm5leDsKK+itt+WjqyA+IG51cnNlOwor5rOK5L2NID4gYmVydGg7CivpgYroiYcgPiBiYXJnZTsKK+mXnOmWiSA+IGNsb3NlOwor6Zmw6I6WID4gcGVuaXM7CivmmbrliKkgPiBjaGlsZTsKK+e3mue0oiA+IHRyYWlsOwor5aOT56KOID4gY3J1c2g7Civljp/lp4sgPiBmaXJzdDsKK+avj+avjyA+IG9mdGVuOwor5Y+N5Y+bID4gcmViZWw7Civpn5PlnIsgPiBrb3JlYTsKK+mbmeeUnyA+IHR3aW5zOwor55u46YWNID4gbWF0Y2g7CivljbDluqYgPiBpbmRpYTsKK+efs+eLgCA+IHN0b255Owor6L+F6YCfID4gcmFwaWQ7Civlubzon7IgPiBsYXJ2YTsKK+mviumtmiA+IHNoYXJrOwor5Yil6JmfID4gYWxpYXM7CivntqDoibIgPiBncmVlbjsKK+W8leeUqCA+IHF1b3RlOwor55u46L+RID4gY2xvc2U7CivluILplbcgPiBtYXlvcjsKK+eIkOaetiA+IGdyYXRlOwor5qmf6ZecID4gb3JnYW47CivmrIrog70gPiBwb3dlcjsKK+WOn+WboCA+IGNhdXNlOwor5oCl5YqHID4gcmFwaWQ7CivlpKfmrIogPiBwb3dlcjsKK+m0ieeJhyA+IG9waXVtOwor6KiT57e0ID4gZHJpbGw7CivljJfmlrkgPiBub3J0aDsKK+irluaWhyA+IHBhcGVyOwor5pS+54mnID4gZ3JhemU7Civlip/njocgPiBwb3dlcjsKK+avj+aXpSA+IGRhaWx5Owor5aWX5oi/ID4gc3VpdGU7CivpgZXnpJkgPiB0YWJvbzsKK+WEqum7niA+IG1lcml0Owor5b6Y5b6KID4gaG92ZXI7CivoppboprogPiBzaWdodDsKK+aTjee3tCA+IGRyaWxsOwor5by35qyKID4gcG93ZXI7CivliIDokYkgPiBibGFkZTsKK+aRqeilvyA+IG1vc2VzOwor6K2m5YKZID4gZ3VhcmQ7CivoqrLmmYIgPiBjbGFzczsKK+W9l+aYnyA+IGNvbWV0Owor5pCs6YGLID4gY2Fycnk7CivpnZLlubQgPiB5b3V0aDsKK+aomemhjCA+IHRpdGxlOwor5o+Q6auYID4gcmFpc2U7CivmsKjln7ogPiBhbWlubzsKK+WknOaZmiA+IG5pZ2h0Owor54ax5rCjID4gc3RlYW07CivmqZ/ou7ggPiBhcmJvcjsKK+mGkuS+hiA+IHdha2VuOwor5aWz5a2QID4gd29tYW47CivploDploIgPiBsYXRjaDsKK+W+gOW+gCA+IG9mdGVuOwor6JOL5a2QID4gY292ZXI7CivpnYjlt6cgPiBoYW5keTsKK+WFg+mfsyA+IHZvd2VsOwor5YWL6ZqGID4gY2xvbmU7CivmlbTmlbQgPiB3aG9sZTsKK+WMr+WvhCA+IHJlbWl0Owor5YmB56KOID4gbWluY2U7Civoqr/mg4UgPiBmbGlydDsKK+WcsOm7niA+IHBsYWNlOwor5pWy5pOKID4gcG91bmQ7CivljIblv5kgPiBoYXN0eTsKK+avm+W3viA+IHRvd2VsOwor6Iqz6aaZID4gYmFsbXk7CivlubTntJogPiBncmFkZTsKK+W8j+aooyA+IHN0eWxlOwor6KWv6KGrID4gc2hpcnQ7Civopa/ooaMgPiBzaGlydDsKK+WNsOWItyA+IHByaW50Owor5pWj5paHID4gcHJvc2U7CivoqabmqKMgPiBzdHlsZTsKK+WFqOmDqCA+IHdob2xlOwor55+t5pqrID4gc2hvcnQ7Civopb/ol48gPiB0aWJldDsKK+WLleaQliA+IHdhdmVyOwor54eD5pS+ID4gbGlnaHQ7Civngavou4ogPiB0cmFpbjsKK+W3peizhyA+IHdhZ2VzOwor5YuH5pWiID4gYnJhdmU7Civmrbvmnb8gPiByaWdpZDsKK+efm+afhCA+IHNoYWZ0Owor6ZW36YeYID4gc3Bpa2U7CivmraXmp40gPiByaWZsZTsKK+WIu+eXlSA+IG5vdGNoOwor5YSq6ZuFID4gZ3JhY2U7CivpgbjmsJEgPiB2b3RlcjsKK+mtlOmsvCA+IGRldmlsOwor5paw5aiYID4gYnJpZGU7CivlpL7lrZAgPiBjcmFtcDsKK+isoOWCsyA+IHJ1bW9yOwor5paw5aWHID4gbm92ZWw7CivloLHnrZQgPiByZXBheTsKK+eFpOa4oyA+IHNsYWNrOwor6YKK5qGGID4gZnJhbWU7CivoirHplosgPiBibG9vbTsKK+eJqeS4uyA+IG93bmVyOwor5b2I5byTID4gc2xpbmc7CivloLHnqqkgPiBicm9vZDsKK+aTuua4oSA+IGZlcnJ5Owor6Zu75b2xID4gbW92aWU7CivmkbjntKIgPiBncm9wZTsKK+msvOmtgiA+IGdob3N0Owor6YCf546HID4gc3BlZWQ7CivnoLTlo54gPiB3cmVjazsKK+e0hOiOqyA+IGFib3V0Owor5aOB5p62ID4gbGVkZ2U7Civpmo7mrrUgPiBzdGFnZTsKK+WkouWvkCA+IGRyZWFtOwor5bu25pyfID4gZGVsYXk7CivljYHliIYgPiBmdWxseTsKK+WLnuW3pSA+IGxhYm9yOwor5ZyY6auUID4gZ3JvdXA7CivlnLDpnaIgPiBmbG9vcjsKK+irt+WIuiA+IGlyb255Owor55m96LK7ID4gd2FzdGU7CivpgYvmsrMgPiBjYW5hbDsKK+WFq+inkiA+IGFuaXNlOwor6Zmw5ra8ID4gc2hhZHk7Civmk6bmtJcgPiBzY291cjsKK+eGseW/sSA+IGFyZG9yOwor6Zi/54mHID4gb3BpdW07CivnhJnnh5IgPiByb2FzdDsKK+Wls+S6uiA+IHdvbWFuOwor57ag5rSyID4gb2FzaXM7CivoqLzmmI4gPiBwcm92ZTsKK+ebuOetiSA+IGVxdWFsOwor5YSf6YKEID4gcmVwYXk7Civmr5Llk4EgPiBkcnVnczsKK+WbuumrlCA+IHNvbGlkOwor6KaP56iLID4gcnVsZXM7Civnm7Tnq4sgPiBlcmVjdDsKK+WDp+mZoiA+IGFiYmV5Owor6Ki85pOaID4gcHJvb2Y7CivmjqjpgbggPiBlbGVjdDsKK+avm+WItyA+IGJydXNoOwor6ayN6ayaID4gYmVhcmQ7CivmjqjpgLIgPiBpbXBlbDsKK+mXnOevgCA+IGpvaW50Owor5YO56YyiID4gcHJpY2U7CivliIfniYcgPiBzbGljZTsKK+iJpumaiiA+IGZsZWV0Owor5by35aSnID4gbGFyZ2U7CivnnJ/nkIYgPiB0cnV0aDsKK+avlOWIhiA+IHNjb3JlOwor5pOx5p2/ID4gc2hlbGY7CivliZvmnpwgPiBjb25nbzsKK+WJquaWtyA+IHNoZWFyOwor54Gr6IqxID4gc3Bhcms7CivlvbHlg48gPiBpbWFnZTsKK+ebnOeriiA+IHN0ZWFsOwor5qiZ6JmfID4gZ3JhZGU7Civov7fmv5sgPiBtaXN0eTsKK+edoeakhSA+IGNvdWNoOwor5Yqg5a+sID4gd2lkZW47CivpnIfli5UgPiBzaGFrZTsKK+iqquWHuiA+IHV0dGVyOwor6KiI5pW4ID4gY291bnQ7CivmvrPploAgPiBhb21lbjsKK+aOqOirliA+IGluZmVyOwor57Oi57OKID4gZm9nZ3k7Civmr4/kuIAgPiBldmVyeTsKK+WLouWKmyA+IHBvd2VyOwor57ee5biDID4gc2F0aW47Civli5XlkJEgPiB0cmVuZDsKK+WkqeS9vyA+IGFuZ2VsOwor6KSQ6ImyID4gYnJvd247CivprIbplosgPiBsb29zZTsKK+aruOacqCA+IGJlZWNoOwor6YOo5Lu2ID4gcGFydHM7Civng5jng6QgPiByb2FzdDsKK+i7jOmBkyA+IG9yYml0Owor6ZaD6ICAID4gZ2xpbnQ7Civoh63pvKwgPiBza3VuazsKK+WEsuiXjyA+IHN0b3JlOwor5pOm5outID4gY2xlYW47Civnlr7poqggPiBibGFzdDsKK+aUpOWtkCA+IGJvb3RoOwor5aSn5Lq6ID4gYWR1bHQ7Civlip/lpKsgPiBza2lsbDsKK+WLleWKmyA+IHBvd2VyOwor55u454mHID4gaW1hZ2U7Civpq5Lpq5IgPiBkaXJ0eTsKK+eHmeWCtyA+IHNjYWxkOwor5Z2H6KGhID4gZXF1YWw7Civlh7rmspIgPiBoYXVudDsKK+mBk+W+tyA+IG1vcmFsOwor6Ke45pG4ID4gdG91Y2g7CivnmbzogbIgPiB2b2NhbDsKK+mVt+iAgSA+IGVsZGVyOwor5qi557GsID4gaGVkZ2U7Civlhbjnr4QgPiBtb2RlbDsKK+mbhuWcmCA+IGdyb3VwOwor5pW05YCLID4gd2hvbGU7CivluJ3njosgPiByZWdhbDsKK+W8t+WFiSA+IGdsYXJlOwor55uU55SyID4gYXJtb3I7Civou4zot6EgPiBsb2N1czsKK+i7jOi3nSA+IGdhdWdlOwor6KOc6JelID4gdG9uaWM7Civmrbjlko4gPiBibGFtZTsKK+aVteS6uiA+IGVuZW15Owor5bm95pqXID4gZ2xvb207Civmk5Tmh64gPiB3b3JyeTsKK+amruitvSA+IGhvbm9yOwor6a2U6KGTID4gbWFnaWM7CivnhaflsIQgPiBzaGluZTsKK+aQl+eijiA+IHNtYXNoOwor5qq45qqsID4gbGVtb247Civplovnq68gPiBzdGFydDsKK+aooeeziiA+IHZhZ3VlOwor6Zue5YagID4gY3Jlc3Q7CivlhYnnupYgPiBsaWdodDsKK+mbleWIuyA+IGNhcnZlOwor6aqv6auSID4gZGlydHk7CivliIfmnJsgPiBjcmF2ZTsKK+ipm+WSkiA+IGN1cnNlOwor5qiZ57GkID4gbGFiZWw7CivnhLblvowgPiBhZnRlcjsKK+mCo+WFkiA+IHRoZXJlOwor6ZW356ybID4gZmx1dGU7Civnsr7npZ4gPiB2aWdvcjsKK+WcluihqCA+IGNoYXJ0Owor6L2J56e7ID4gc2hpZnQ7CivlhZLnq6UgPiBjaGlsZDsKK+WcjeijmSA+IGFwcm9uOwor5o6o6IiJID4gZWxlY3Q7CivlgZzpoJMgPiBwYXVzZTsKK+eyl+ezmSA+IGNydWRlOwor5Ymq5aCxID4gc2NyYXA7Civpq67ovq4gPiBicmFpZDsKK+atu+S6oSA+IGRlYXRoOwor6KaP5qihID4gc2NhbGU7CivpgJ/luqYgPiBzcGVlZDsKK+mCo+S6myA+IHRob3NlOwor566t6aCtID4gYXJyb3c7Civpm4TlgYkgPiBncmFuZDsKK+i+puazlSA+IG1lYW5zOwor54K65q2iID4gdW50aWw7CivlmrTph40gPiBncmF2ZTsKK+iIueiyqCA+IGNhcmdvOwor6ZW355+bID4gbGFuY2U7CivmrYzliocgPiBvcGVyYTsKK+mrmOmBoCA+IGxvZnR5Owor5Yeh5pivID4gZXZlcnk7Civng4/mnKggPiBlYm9ueTsKK+iInui5iCA+IGRhbmNlOwor57KJ562GID4gY2hhbGs7CivntZXmioAgPiBzdHVudDsKK+iHiemgsCA+IGNoZWVrOwor55m955mhID4gaWRpb3Q7CivmjojoiIcgPiBncmFudDsKK+inkuW6piA+IGFuZ2xlOwor55m855eFID4gb25zZXQ7Civln7rmnKwgPiBiYXNpYzsKK+eBq+eEsCA+IGJsYXplOwor5Yik5a6aID4ganVkZ2U7CivmjqLntKIgPiBxdWVzdDsKK+ijgue4qyA+IGNyYWNrOwor54Gr54KsID4gdG9yY2g7CivloavloZ4gPiBzdHVmZjsKK+aSsOWvqyA+IHdyaXRlOwor57OW5ry/ID4gc3lydXA7Civnsonnoo4gPiBjcmFzaDsKK+mZveWPsCA+IHBvcmNoOwor5pO65YuVID4gc3dpbmc7Civmirzpn7sgPiByaHltZTsKK+Wei+eLgCA+IHNoYXBlOwor6IiJ6LW3ID4gaGVhdmU7CivlibLlgrcgPiBzbGFzaDsKK+mAmeWkqSA+IHRvZGF5Owor57Gs56yGID4gZmVuY2U7Civmpq7ogIAgPiBob25vcjsKK+mBj+WItiA+IGNoZWNrOwor55m854uCID4gY3Jhenk7CivliKXlooUgPiB2aWxsYTsKK+WyuOmCiiA+IHNob3JlOwor5bC86b6NID4gbnlsb247CivpmorkvI0gPiByYW5rczsKK+WIgOWtkCA+IGtuaWZlOwor5bmF5bqmID4gd2lkdGg7CivmqaHmnKggPiBvYWtlbjsKK+eyvua2siA+IHNlbWVuOwor5bqK5ZauID4gc2hlZXQ7CivoirHnk6MgPiBwZXRhbDsKK+WJg+WIgCA+IHJhem9yOwor5Yez5a2QID4gc3Rvb2w7Civohr3ph48gPiBuZXJ2ZTsKK+mAoOWPjSA+IHJlYmVsOwor6KiT5LukID4gb3JkZXI7Civlho3mnIMgPiBhZGlldTsKK+aqs+WtkCA+IGJpbnppOwor6Li06LqNID4gZWFnZXI7CivlhanmrKEgPiB0d2ljZTsKK+S/rumjviA+IGFkb3JuOwor5o+j5risID4gZ3Vlc3M7CivntKLlvJUgPiBpbmRleDsKK+WDteehrCA+IHN0YXJrOwor5YKz6IGeID4gcnVtb3I7Civoh6roqocgPiBib2FzdDsKK+aRmOW8lSA+IHF1b3RlOwor5bel5pyDID4gdW5pb247Civns5bmnpwgPiBjYW5keTsKK+ijgueXlSA+IGNoYXNtOwor54Gr5p+0ID4gbWF0Y2g7CivntLDlsI8gPiBwZXR0eTsKK+ashOS9jSA+IGZlbmNlOwor6amF6ZmkID4gcmVwZWw7CivmqLnmnpcgPiB3b29kczsKK+Wwj+m6pSA+IHdoZWF0Owor5r2b6KGMID4gc25lYWs7CivlnoLmrbsgPiBkeWluZzsKK+aouuacqCA+IGJpcmNoOwor6YCQ5Ye6ID4gZXhwZWw7Civlt6jmk5ggPiB0aHVtYjsKK+e0l+W4gyA+IGdhdXplOwor5bmz5Y6fID4gZmllbGQ7CivlhazmnIMgPiBndWlsZDsKK+eUsOmHjiA+IGZpZWxkOwor5r+r55SoID4gYWJ1c2U7CivplbfmpIUgPiBiZW5jaDsKK+mrmOiIiCA+IGhhcHB5Owor5pCT5o+JID4ga25lYWQ7Civplbfmop0gPiBzdHJpcDsKK+mAmeS6myA+IHRoZXNlOwor5bqH5L2RID4gYmxlc3M7CivlgYfoo50gPiBmZWlnbjsKK+i+ruWtkCA+IHBsYWl0Owor6ZmN5LiLID4gbG93ZXI7CivmqJPmoq8gPiBzdGFpcjsKK+mrmOiBsyA+IGVyZWN0Owor6auY6IGyID4gYWxvdWQ7CivlsIrprZogPiB0cm91dDsKK+ihgOiCiSA+IGZsZXNoOwor55ub5a60ID4gZmVhc3Q7Civlm57nrZQgPiByZXBseTsKK+ewoeefrSA+IGJyaWVmOwor5Zuk56mNID4gaG9hcmQ7Civpp7/ppqwgPiBzdGVlZDsKK+amrueNsiA+IHByaXplOwor6KWq5a2QID4gc29ja3M7CivonZnprZogPiBicmVhbTsKK+WgseWEnyA+IHJlcGF5Owor5YKz56WeID4gdml2aWQ7CivoibLni7wgPiBzYXR5cjsKK+aOoua4rCA+IHByb2JlOwor6L2J5pKtID4gcmVsYXk7Civmibnph48gPiBiYXRjaDsKK+mnsemnnSA+IGNhbWVsOwor5ZyW54mHID4gaW1hZ2U7CivlhqDlrZAgPiBjcmVzdDsKK+iFsOmDqCA+IHdhaXN0Owor55qu5bi2ID4gc3RyYXA7CivnspfmmrQgPiByb3VnaDsKK+aSkuS9hiA+IHNhdGFuOwor5bCP6ZueID4gY2hpY2s7CivlhrDloZQgPiBzZXJhYzsKK+esqOmHjSA+IGhlYXZ5Owor6LyV5p+TID4gdGluZ2U7Civlhaflv4MgPiBoZWFydDsKK+iFs+i4nSA+IGFua2xlOwor5o6S5rC0ID4gZHJhaW47Civmi5voh7QgPiBpbmN1cjsKK+agl+m8oCA+IGJ1bm55Owor5omS6YeYID4gY3JhbXA7Civnm7TliLAgPiB1bnRpbDsKK+W3q+WphiA+IHdpdGNoOwor5o+05byVID4gcXVvdGU7CivnrZToqZ4gPiByZXBseTsKK+WwlumKsyA+IHNoYXJwOwor6ZaA5buKID4gc3Rvb3A7Civlgbfnq4ogPiBzdGVhbDsKK+ank+ahvyA+IGxldmVyOwor5YW25a6DID4gb3RoZXI7CivnrZTopoYgPiByZXBseTsKK+eDmOS5viA+IHBhcmNoOwor5YWs5bC6ID4gbWV0ZXI7CivlmarogbIgPiBub2lzZTsKK+ebjuWPuCA+IG91bmNlOwor6aiO6LuKID4gY3ljbGU7Civlg7nmoLwgPiBwcmljZTsKK+eyvuWtkCA+IHNwZXJtOwor5Zyw5p2/ID4gZmxvb3I7Civlh4zkuoIgPiBjaGFvczsKK+S/muiqniA+IHNsYW5nOwor57SF5YipID4gYm9udXM7Civplovlp4sgPiBiZWdpbjsKK+aOoeaRmCA+IHBsdWNrOwor5Z+D5Y+KID4gZWd5cHQ7Civlr4LpnZwgPiBxdWlldDsKK+espuiomCA+IHRva2VuOwor5Zaq6ZCYID4ga25lbGw7CivohLnotbcgPiBidWxnZTsKK+iDjOmqqCA+IHNwaW5lOwor5bem5Y+zID4gYWJvdXQ7CivlhazlmbggPiB0b25uZTsKK+aOjOaPoSA+IGdyYXNwOwor55Sf6IuUID4gbW9zc3k7CivmkJbli5UgPiBzaGFrZTsKK+i8quWtkCA+IHdoZWVsOwor6aiZ6KGTID4gdHJpY2s7CivmiZPoo70gPiBmb3JnZTsKK+Wwj+iqqiA+IG5vdmVsOwor6IWQ6J2VID4gcnVzdHk7CivplonlkIggPiBjbG9zZTsKK+mnlei7iiA+IGRyaXZlOwor5ruR6JC9ID4gc2xpZGU7Civlha3ljYEgPiBzaXh0eTsKK+WFrOWNhyA+IGxpdGVyOwor5Ly86ZuqID4gc25vd3k7Civog7jpg6ggPiBjaGVzdDsKK+eXheavkiA+IHZpcnVzOwor5oqA6IO9ID4gc2tpbGw7CivmjqjltIcgPiB2YWx1ZTsKK+Wwj+iiiyA+IHBvdWNoOwor54Gr5YWSID4gYW5ncnk7CivooZfmrrUgPiBibG9jazsKK+i3r+e3miA+IHJvdXRlOwor5beo5Lq6ID4gZ2lhbnQ7Civoo5nlrZAgPiBza2lydDsKK+aKk+e3iiA+IGdyYXNwOwor6KGA5rayID4gYmxvb2Q7CivlronpnZwgPiBxdWlldDsKK+aJi+iXnSA+IGNyYWZ0Owor6aas6YGUID4gbW90b3I7CivploPlhYkgPiBmbGFzaDsKK+WFtuS7liA+IG90aGVyOwor5Zub5pyIID4gYXByaWw7CivlhbbkuK0gPiBhbW9uZzsKK+alk+aouSA+IG1hcGxlOwor56uK6LOKID4gdGhpZWY7Civmu5Hnv5QgPiBnbGlkZTsKK+aOg+W4miA+IGJyb29tOwor6KGw5pWXID4gZGVjYXk7Civoi5vliLsgPiBoYXJzaDsKK+mQteegpyA+IGFudmlsOwor5o2V5o2JID4gY2F0Y2g7CivnqbrplpMgPiBzcGFjZTsKK+eZvOWFiSA+IHNoaW5lOwor5o6g5aWqID4gaGFycnk7Civlr5/oprogPiBhd2FyZTsKK+Wxi+ewtyA+IGVhdmVzOwor5qC86KiAID4gbWF4aW07Civnk6PohpwgPiB2YWx2ZTsKK+aOoeWgtCA+IHNsb3BlOwor6Iie5pyDID4gZGFuY2U7CivlnI3lt74gPiBzY2FyZjsKK+Wvk+iogCA+IGZhYmxlOwor5omL6IWVID4gc2tpbGw7CivooqvlrZAgPiBxdWlsdDsKK+Wwj+iIjCA+IHV2dWxhOwor5bCx57eSID4gcmVhZHk7Civou4DlubkgPiB0cnVuazsKK+i7gOW5siA+IHRydW5rOwor55m85LquID4gc2hpbmU7CivmiYvogpggPiBlbGJvdzsKK+ijnOWTgSA+IHRvbmljOwor5a6i6LuKID4gY29hY2g7Civoib7lp6wgPiBhZ2dpZTsKK+WcqOWkliA+IG91dGVyOwor5bSH5oucID4gYWRvcmU7CivlhYXku70gPiBhbXBsZTsKK+mrmOaYjiA+IHNtYXJ0Owor5ryy5ru/ID4gc3dlbGw7Civnl5vmgaggPiBhYmhvcjsKK+iBsumfsyA+IHZvaWNlOwor55eb5b+rID4gam9sbHk7CivmjqXlkIggPiBqb2ludDsKK+Wcn+WghiA+IG1vdW5kOwor5oiy6ICNID4gdGVhc2U7CivnqK7poZ4gPiBjbGFzczsKK+eUt+eItSA+IGJhcm9uOwor5Zu65a6aID4gZml4ZWQ7CivlsJbntLAgPiB0YXBlcjsKK+Wdh+WIhiA+IHNwbGl0Owor6Iqx5L+PID4gZmFuY3k7CivotavojLIgPiBoZXJ0ejsKK+eureahvyA+IHNoYWZ0Owor5ZyN5Z+OID4gc2llZ2U7CivlgrLlsrggPiBwcm91ZDsKK+iHtOaVrCA+IGdyZWV0Owor6LuN5ZyYID4gY29ycHM7CivprI3lrZAgPiBiZWFyZDsKK+aOkuWIlyA+IGFycmF5Owor5L+P55quID4gc2F1Y3k7CivoiJ7lvIogPiBmcmF1ZDsKK+mkhemkjCA+IGNha2VzOwor6KOc5LiBID4gcGF0Y2g7Civpp4HoiLkgPiBiYXJnZTsKK+icguicnCA+IGhvbmV5Owor5ry/5p6cID4gYmVycnk7CivprYXlipsgPiBjaGFybTsKK+iDuOiGmyA+IGNoZXN0Owor5ryC5ri4ID4gZHJpZnQ7Civlg7nlgLwgPiB2YWx1ZTsKK+a9keaOiSA+IHNwaWxsOwor6IiI5bu6ID4gYnVpbGQ7Civos4fph5EgPiBmdW5kczsKK+a7sua6nSA+IHNld2VyOwor6IOt6ISCID4gcm91Z2U7Civoh6rmiJEgPiBzZWxmXC07CivpjK/oqqQgPiBlcnJvcjsKK+aenOmFkiA+IGNpZGVyOwor5o235YWLID4gY3plY2g7CivnlKjms5UgPiB1c2FnZTsKK+evqeWtkCA+IHNpZXZlOwor5ZyW5YOPID4gaW1hZ2U7CivlrZjosqggPiBzdG9jazsKK+mrmOWwmiA+IG5vYmx5Owor5Zyo5LiLID4gdW5kZXI7Civmi43mk4ogPiBzbWFjazsKK+WaruWwjiA+IGd1aWRlOwor5YK+5ZCRID4gdHJlbmQ7CivnlJ/msKMgPiBhbmdyeTsKK+WBj+aEmyA+IGZhdm9yOwor5a6z576eID4gYmx1c2g7CivonbjniZsgPiBzbmFpbDsKK+WVhuiZnyA+IHN0b3JlOwor6Yyi6KKLID4gcHVyc2U7Civmv4DlhYkgPiBsYXNlcjsKK+WuieiPryA+IGFud2FyOwor5bOt5aOBID4gY2xpZmY7CivmjZDliqkgPiBvZmZlcjsKK+aLh+aMhyA+IHRodW1iOwor5ouC5o6DID4gd2hpc2s7CivoiLnlj6ogPiBzaGlwczsKK+iHuuWtkCA+IHRhYmxlOwor5pyd6a6uID4ga29yZWE7Civlm5vljYEgPiBmb3J0eTsKK+aKveaJkyA+IHN0cmFwOwor5oOh6a2UID4gZGVtb247CivmnKzpoJggPiBza2lsbDsKK+ajsuaBryA+IHBlcmNoOwor5rWB6auUID4gZmx1aWQ7Civkvp3nhLYgPiBzdGlsbDsKK+iCneiHnyA+IGxpdmVyOwor56+E5ZyNID4gcmFuZ2U7Civllq7njaggPiBhbG9uZTsKK+S/ruaUuSA+IGFtZW5kOwor5qSF5a2QID4gY2hhaXI7CivmnInpoqggPiB3aW5keTsKK+aKiuaPoSA+IGdyYXNwOwor5bCP5rKzID4gYnJvb2s7Civmpa3kuLsgPiBvd25lcjsKK+mpmuaFjCA+IHBhbmljOwor5YGJ5aSnID4gZ3JlYXQ7CivkuLvpoYwgPiB0aGVtZTsKK+WTquijoSA+IHdoZXJlOwor562U5oeJID4gcmVwbHk7CivkuIDpu54gPiBhXC1iaXQ7CivlrbjntJogPiBjbGFzczsKK+eVtuWcsCA+IGxvY2FsOwor56i76I2JID4gc3RyYXc7CivmnbHopb8gPiB0aGluZzsKK+WAieW6qyA+IGRlcG90Owor5LyK57SiID4gYWVzb3A7CivlsbHltJYgPiBjbGlmZjsKK+eskeaelyA+IGh1bW9yOwor5Zi05be0ID4gbW91dGg7CivpkLPlsIQgPiBsYXNlcjsKK+ajmuWtkCA+IHNoYWNrOwor5ZC16aynID4gbm9pc3k7CivnlLflrZAgPiBhXC1tYW47CivogqHnpaggPiBzaGFyZTsKK+ajkuWtkCA+IHN0aWNrOwor5oyH5LukID4gb3JkZXI7CivogqXnoqkgPiBzdG91dDsKK+m7g+mKhSA+IGJyYXNzOwor5qON5a2QID4gc3RpY2s7Civoh7Tkvb8gPiBjYXVzZTsKK+aKgOW3pyA+IHNraWxsOwor56eY6KijID4gdHJpY2s7Civmi7TkvY8gPiBoaXRjaDsKK+S4i+mdoiA+IGJlbG93Owor6KCi5LqLID4gZm9sbHk7CivmhJrooKIgPiBzaWxseTsKK+aKiuWuiCA+IGd1YXJkOwor5LiL6ZuoID4gcmFpbnk7CivpqZrlpYcgPiBhbWF6ZTsKK+iHpeS9jSA+IGJlcnRoOwor5Zm05Ye6ID4gc3BvdXQ7CivpoqjotqMgPiBodW1vcjsKK+WwuuW6piA+IHNjYWxlOwor5bCE5pOKID4gc2hvb3Q7Civos4TntaEgPiBicmliZTsKK+Wxi+WtkCA+IGhvdXNlOwor6LKs5721ID4gc2NvbGQ7CivohbHlrZAgPiBzaW5ldzsKK+abtOmBsiA+IGxhdGVyOwor6buR6LKCID4gc2FibGU7CivnlbbkuK0gPiBhbW9uZzsKK+WWrOacqCA+IGFyYm9yOwor6ICB6JmOID4gdGlnZXI7Civmspnpvo0gPiBzYWxvbjsKK+S/neWnhiA+IG5hbm55Owor5bCP5b6RID4gYWxsZXk7CivpqJnlsYAgPiBmcmF1ZDsKK+WwjeW+hSA+IHRyZWF0Owor5ouJ5LiBID4gbGF0aW47CivnkKXnj4AgPiBhbWJlcjsKK+acg+irhyA+IHRhbGtzOwor6ISI5pCPID4gcHVsc2U7CivnlKLlk4EgPiBnb29kczsKK+Wwi+W4uCA+IHVzdWFsOwor5pyN6KOdID4gZHJlc3M7Civph5Hpq64gPiBibG9uZDsKK+aIsuW8hCA+IGNhcGVyOwor5rWq6IqxID4gc3ByYXk7CivlsI/lsYsgPiBjYWJpbjsKK+a4hea9lCA+IGNsZWFuOwor5oi/5bGLID4gaG91c2U7CivlmI7lmI4gPiBxdWFjazsKK+eUn+WLlSA+IHZpdmlkOwor5LiL6LeqID4ga25lZWw7CivlsI/lrakgPiBjaGlsZDsKK+a4hea5ryA+IGJyb3RoOwor5L6/5aOrID4gcGVubnk7CivmiL/lrZAgPiBob3VzZTsKK+iAtuepjCA+IGplc3VzOwor6Yu855C0ID4gcGlhbm87CivpqI7lo6sgPiByaWRlcjsKK+mPiOWtkCA+IGNoYWluOwor5omL5aWXID4gZ2xvdmU7CivnlLfkurogPiBhXC1tYW47Civot5/liY0gPiBmcm9udDsKK+S/ruWJqiA+IHBydW5lOwor5a+s5bqmID4gd2lkdGg7CivpppnmlpkgPiBzcGljZTsKK+S8uuacjSA+IHNlcnZvOwor5ruL5ZGzID4gdGFzdGU7Civnp5/ntIQgPiBsZWFzZTsKK+WwluWhlCA+IHNwaXJlOwor5Ze25ZiwID4gc2VyZ2U7CivmsaHpu54gPiBzdGFpbjsKK+azlemDjiA+IGZyYW5jOwor5rS76JGXID4gYWxpdmU7CivllpzmgoUgPiBoYXBweTsKK+aIkOW5tCA+IGFkdWx0Owor6IKF5riFID4gcHVyZ2U7Civnv7Hnv5QgPiBob3ZlcjsKK+Wtn+a1qiA+IGhhc3R5Owor6buR6ImyID4gYmxhY2s7Civmt7nmspIgPiBmbHVzaDsKK+enleezoCA+IGNoYWZmOwor56ys5Y2BID4gdGVudGg7Civlk4HnqK4gPiBicmVlZDsKK+aZgumrpiA+IHZvZ3VlOwor5omT5ZG8ID4gc25vcmU7CivmoYzlrZAgPiB0YWJsZTsKK+S7jeeEtiA+IHN0aWxsOwor5riF5qWaID4gY2xlYXI7CivppJjnh7wgPiBlbWJlcjsKK+esrOWFrSA+IHNpeHRoOwor6Yym5qiZID4gcHJpemU7Civnjajoh6ogPiBhbG9uZTsKK+e+veiOliA+IHF1aWxsOwor5qGD5a2QID4gcGVhY2g7CivlsIHlnLAgPiBtYW5vcjsKK+S/oeS7uyA+IHRydXN0Owor5L2c5byKID4gZnJhdWQ7CivpoYzop6MgPiBub3RlczsKK+S/neS9kSA+IGJsZXNzOwor6LKo54mpID4gZ29vZHM7Civlr6HlqaYgPiB3aWRvdzsKK+mjsueUqCA+IGRyaW5rOwor5LiA6KGMID4gcGFydHk7Civotqjli6IgPiB0cmVuZDsKK+eLuei3ryA+IGdvcmdlOwor5bCP5ZCDID4gc25hY2s7Civnj4rnkZogPiBjb3JhbDsKK+ePjeePoCA+IHBlYXJsOwor5oe45bKpID4gY2xpZmY7CivpvLvnhZkgPiBzbnVmZjsKK+a0i+iUpSA+IG9uaW9uOwor6Laj5YqHID4gZmFyY2U7CivkvY7lu4kgPiBjaGVhcDsKK+WTgOeXmyA+IGdyaWVmOwor56ys5LqUID4gZmlmdGg7CivnrKzkuZ0gPiBuaW50aDsKK+esrOS4iSA+IHRoaXJkOwor56ys5LiAID4gZmlyc3Q7CivnjrvnkoMgPiBnbGFzczsKK+eqkuaBryA+IGNob2tlOwor5pyJ57eaID4gd2lyZWQ7Civmnb/mu68gPiBzdGlmZjsKK+aJk+S7lyA+IGZpZ2h0Owor5oiy5YqHID4gZHJhbWE7Civmsonph40gPiBoZWF2eTsKK+ayiOmHjSA+IGhlYXZ5Owor5pyA57WCID4gZmluYWw7CivnvarooYwgPiBjcmltZTsKK+e9qeihqyA+IHNtb2NrOwor5L2g5aW9ID4gaGVsbG87CivkvY3lrZAgPiBwbGFjZTsKK+azouiVqSA+IGhlYXZlOwor6LWw5ZCRID4gdHJlbmQ7CivpurXnsokgPiBmbG91cjsKK+WmlumtlCA+IGRlbW9uOwor546H55u0ID4gZnJhbms7CivmmI7poa8gPiBjbGVhcjsKK+mhj+iJsiA+IGNvbG9yOwor5bCP5LiRID4gY2xvd247Civmma/osaEgPiBzY2VuZTsKK+eLoeipkCA+IGNyYWZ0Owor5oak5oCSID4gYW5ncnk7Civosp3mrrwgPiBzaGVsbDsKK+S+jeWAmSA+IHNlcnZlOwor6LGh54mZID4gaXZvcnk7CivllYblupcgPiBzdG9yZTsKK+WWneWPsSA+IGNoaWRlOwor5rW354GYID4gYmVhY2g7CivnkLTlvKYgPiBjaG9yZDsKK+eNjueroCA+IG1lZGFsOwor5a2Q5oi/ID4gb3Zhcnk7Civokrzpt7ogPiBoZXJvbjsKK+i1puWFjSA+IHJlbWl0Owor5LuK5pelID4gdG9kYXk7CivmnKjniYggPiBwbGFuazsKK+elnue2kyA+IG5lcnZlOwor5oCq6KqVID4gZnJlYWs7Civnq5nkvY8gPiBzdGFuZDsKK+ayv+iRlyA+IGFsb25nOwor5Lm+5reoID4gY2xlYW47Civlr4bliIcgPiBjbG9zZTsKK+a3seW6piA+IGRlcHRoOwor5Y2I6aSQID4gbHVuY2g7CivmiJDkurogPiBhZHVsdDsKK+WNiOmjryA+IGx1bmNoOwor5rW35rSLID4gb2NlYW47CivogprlrZAgPiBiZWxseTsKK+eNteeKrCA+IGhvdW5kOwor55CG5oOzID4gaWRlYWw7CivptarptokgPiBxdWFpbDsKK+S7peW+jCA+IGFmdGVyOwor5a2p5a2QID4gY2hpbGQ7CivogL3mk7EgPiB0YXJyeTsKK+S6i+alrSA+IGNhdXNlOwor5a2i5a2QID4gc3BvcmU7Civml4XppKggPiBob3RlbDsKK+WltOmauCA+IHNsYXZlOwor5ZCK57mpID4gc2xpbmc7CivppqzkvoYgPiBtYWxheTsKK+mmrOS8lSA+IGdyb29tOwor5aSn6bm/ID4gbW9vc2U7CivogZblvpIgPiBzYWludDsKK+S4lueVjCA+IHdvcmxkOwor5rih5Y+jID4gZmVycnk7CivmuJvljrsgPiBtaW51czsKK+S6uuaApyA+IGh1bWFuOwor5oWI5oKyID4gbWVyY3k7Civpn7/ogbIgPiBub2lzZTsKK+irlumhjCA+IHRvcGljOwor5Y2h6LuKID4gdHJ1Y2s7CivlrqLkurogPiBndWVzdDsKK+e9jOeynyA+IHBvcHB5Owor6aGv54S2ID4gY2xlYXI7CivmlpHppqwgPiB6ZWJyYTsKK+avjemfsyA+IHZvd2VsOwor5LuZ5aWzID4gZmFpcnk7CivnqKDlr4YgPiBkZW5zZTsKK+Wll+mQmCA+IGNoaW1lOwor5a6I5YCZID4gYWJpZGU7CivmtJfmvqEgPiBiYXRoZTsKK+adv+WyqSA+IHNsYXRlOwor6Kys6KqkID4gZXJyb3I7CivpoqjmoLwgPiBzdHlsZTsKK+a0l+a7jCA+IHJpbnNlOwor5LiA54mHID4gcGllY2U7CivpjKLljIUgPiBwdXJzZTsKK+mgreeariA+IHNjYWxwOwor5p2/5a2QID4gYm9hcmQ7CivljZHos6QgPiBsb3dseTsKK+S7iuWkqSA+IHRvZGF5Owor5oSb5oWVID4gYWRvcmU7CivmgJ3ogIMgPiB0aGluazsKK+miqOaatCA+IHN0b3JtOwor5Y2H6LW3ID4gaG9pc3Q7CivomIvmnpwgPiBhcHBsZTsKK+iyneWvpyA+IGJlbmluOwor6Kyg6KiAID4gcnVtb3I7Civml4vovYkgPiB3aGlybDsKK+WPlueskSA+IHRlYXNlOwor5rC06JutID4gbGVlY2g7Civoqp7pn7MgPiB2b2ljZTsKK+WkvumJlyA+IHRvbmdzOwor5pel6KiYID4gZGlhcnk7CivpoJLnmbwgPiBpc3N1ZTsKK+S5g+aYryA+IHRvXC1iZTsKK+aWsOi/kSA+IG5ld2x5Owor5auM5oOhID4gYWJob3I7Civlo4HpvpUgPiBuaWNoZTsKK+WQuOawoyA+IHNuaWZmOwor6KqY6Zm3ID4gc25hcmU7Civnn7PpoK0gPiBzdG9uZTsKK+eMnOa4rCA+IGd1ZXNzOwor5Luj5YO5ID4gcHJpY2U7CivmnZPlrZAgPiBzY29vcDsKK+aEn+WumCA+IHNlbnNlOwor5LiJ5qyhID4gdGhpcmQ7CivmnKzlvbEgPiB1bWJyYTsKK+S6uuWToSA+IHN0YWZmOwor5LiA5qyhID4gZmlyc3Q7CivnuozoqIIgPiByZW5ldzsKK+abtOaUuSA+IGFsdGVyOwor56Oo56KOID4gZ3JpbmQ7CivorabnrJsgPiBzaXJlbjsKK+e/kuaFoyA+IGhhYml0Owor5LuK5YWSID4gdG9kYXk7Civku6XkuIsgPiBiZWxvdzsKK+mHjueNuCA+IGJlYXN0Owor5ZKM5bmzID4gcGVhY2U7CivmlLbppIogPiBhZG9wdDsKK+aAqueVsCA+IHdlaXJkOwor6LKT5ZKqID4ga2l0dHk7Civlv4Poh58gPiBoZWFydDsKK+ayvOa+pCA+IGdsYWRlOwor5rGh56miID4gbmFzdHk7CivkuInmnIggPiBtYXJjaDsKK+ejheenpCA+IHNjYWxlOwor5ZOq5YWSID4gd2hlcmU7CivkuqTlj4kgPiBjcm9zczsKK+iyrOWCmSA+IGJsYW1lOwor6Zu76YO1ID4gZW1haWw7CivkuJ/mjokgPiB0aHJvdzsKK+iBluS6uiA+IHNhaW50Owor5Yud6YGOID4gZXhjZWw7CivmrpjphbcgPiBjcnVlbDsKK+WPlOeItiA+IHVuY2xlOwor6K2J56ugID4gYmFkZ2U7CivmtbflnLAgPiBoYWl0aTsKK+acgOW+jCA+IGZpbmFsOwor5q2j6Z2iID4gZnJvbnQ7Civpm7fpgZQgPiByYWRhcjsKK+WTgeWRsyA+IHRhc3RlOwor5Li75bm5ID4gdHJ1bms7CivlpLHoqqQgPiBsYXBzZTsKK+eIhuijgiA+IGJ1cnN0Owor6YKK6ZqbID4gbGltaXQ7CivpoY/mlpkgPiBwYWludDsKK+eLgueGsSA+IGNyYXplOwor5LqU5Y2BID4gZmlmdHk7CivnoLToo4IgPiBidXJzdDsKK+ays+a1gSA+IHJpdmVyOwor5oKy5oK8ID4gbW91cm47CivpnZLojYkgPiBncmFzczsKK+acqOWhiiA+IGJsb2NrOwor5LmZ5aSqID4gZXRoZXI7CivpirPliKkgPiBzaGFycDsKK+iZm+WBvSA+IGZhbHNlOwor5pys5ZywID4gbG9jYWw7CivmnbHkuqwgPiB0b2t5bzsKK+avkuibhyA+IHZpcGVyOwor6aCM5q2MID4gY2Fyb2w7CivlkpXlmpUgPiBncnVudDsKK+asvumghSA+IGZ1bmRzOwor5LiA5omTID4gZG96ZW47Civoqabph5EgPiBhc3NheTsKK+mgreaaiCA+IGRpenp5Owor5b6956ugID4gYmFkZ2U7Civlipvph48gPiBwb3dlcjsKK+eEpum7niA+IGZvY3VzOwor6YmL5a2QID4gcGxhbmU7CivmmI7nmb0gPiBjbGVhcjsKK+eOi+WQjiA+IHF1ZWVuOwor57qW57atID4gZmliZXI7Civkuovku7YgPiBldmVudDsKK+mAl+m7niA+IGNvbW1hOwor6bql5a2QID4gd2hlYXQ7CivkuIDlvLUgPiBzaGVldDsKK+WShuWTriA+IGdyb3dsOwor5b6u56yRID4gc21pbGU7Civnoqfnk6YgPiBncmVlbjsKK+awtOebhiA+IGJhc2luOwor54WZ6ZynID4gc21va2U7Civpgo/ovK8gPiBsb2dpYzsKK+mfs+aogiA+IG11c2ljOwor5pu05aOeID4gd29yc2U7Civpg6jokL0gPiB0cmliZTsKK+W7tumBsiA+IGRlbGF5Owor5bm96buYID4gaHVtb3I7CivnjovlhqAgPiBjcm93bjsKK+mZt+mYsSA+IHNuYXJlOwor5pa357WVID4gc2V2ZXI7CivkuK3lnIsgPiBjaGluYTsKK+WkmuiRiSA+IGxlYWZ5Owor5LiA5bGkID4gbGF5ZXI7Civnh7vogokgPiBiYWNvbjsKK+W8leiovCA+IHF1b3RlOwor5pOi6ZmeID4gZXhhbHQ7Civph43mlrAgPiBhZ2FpbjsKK+Wkp+iFvyA+IHRoaWdoOwor5aSn6IWmID4gYnJhaW47CivmnKzkurogPiBpXC1cKG1lOwor56Wt5aOHID4gYWx0YXI7Civpn7vmlocgPiB2ZXJzZTsKK+mBuui3oSA+IHRyYWNlOwor6YKj6KOhID4gdGhlcmU7CivnhorospMgPiBwYW5kYTsKK+aWkee+miA+IGdvcmFsOwor6ZqG6YeNID4gZ3JhbmQ7CivlvY7ohbAgPiBzdG9vcDsKK+WppuWlsyA+IHdvbWFuOwor6JGh6JCEID4gZ3JhcGU7Civnvo7lpb0gPiBoYXBweTsKK+iugOabuCA+IHN0dWR5Owor542O5ZOBID4gYXdhcmQ7CivmnIDliJ0gPiBmaXJzdDsKK+aBkOaFjCA+IHBhbmljOwor6bq15YyFID4gYnJlYWQ7CivpoY3lpJYgPiBleHRyYTsKK+m7j+S9jyA+IGNsaW5nOwor5LiA5aGKID4gcGllY2U7Civlj6/mgJUgPiBhd2Z1bDsKK+mBjumBkyA+IGFpc2xlOwor5rGB5rayID4ganVpY2U7CivnpKblt6UgPiBtaW5lcjsKK+atjOisoCA+IGNoYW50Owor5rKZ5ouJID4gc2FsYWQ7CivpurXlhZIgPiBjb3ZlcjsKK+aWl+evtyA+IGNsb2FrOwor5LmL5LiLID4gdW5kZXI7CivmnIjku70gPiBtb250aDsKK+awtOa6liA+IGxldmVsOwor5aWz546LID4gcXVlZW47Civpm5voj4ogPiBkYWlzeTsKK+e3qOijvSA+IHdlYXZlOwor5YyF56mAID4gbWFpemU7Civlv6vmqIIgPiBoYXBweTsKK+mAvOi/qyA+IGZvcmNlOwor5aaC54GrID4gZmllcnk7Civms6XlnJ8gPiBlYXJ0aDsKK+WqkuS7iyA+IG1lZGlhOwor5LiA5ZCMID4gYWxvbmc7CivloLTpnaIgPiBzY2VuZTsKK+WjgeiZjiA+IGdlY2tvOwor5pWZ576pID4gY3JlZWQ7Civmr5vnl4UgPiBmYXVsdDsKK+mggeWyqSA+IHNoYWxlOwor6YeR5bGsID4gbWV0YWw7CivorYnmmI4gPiBwcm9vZjsKK+WOreaDoSA+IGxvYXRoOwor5piP5pqXID4gZHVza3k7Civmr5TnjocgPiByYXRpbzsKK+WltuayuSA+IGNyZWFtOwor6ZyO55y8ID4gYmxpbms7CivmsLTmnpwgPiBmcnVpdDsKK+efreewoSA+IGJyaWVmOwor5ae/5a65ID4gbG9va3M7CivntpPosrsgPiBmdW5kczsKK+imlumguyA+IHZpZGVvOwor6YGK6KGMID4gbWFyY2g7CivmmbTlpKkgPiBzdW5ueTsKK+mHjeWkpyA+IGdyZWF0Owor5bi26aCYID4gZ3VpZGU7CivpgJXot6EgPiB0cmFjazsKK+eIkOeBtiA+IHN0b3ZlOwor5pmC5bi4ID4gb2Z0ZW47CivlvLfnoawgPiB0b3VnaDsKK+W4tumcsiA+IGRld3k7CivlvaLni4AgPiBmb3JtOwor6JaE5ZG9ID4gXCh1c3U7Civlip/nuL4gPiBmZWF0Owor6KiY6JmfID4gc2VhbDsKK+imi+mdoiA+IG1lZXQ7Civpgornt6MgPiBlZGdlOwor5pq05LqCID4gcmlvdDsKK+eIm+azpSA+IG9vemU7Civml6XmnJ8gPiBkYXRlOwor5aeo5aq9ID4gYXVudDsKK+W5veiwtyA+IGRlbGw7CivlhrfpnZwgPiBjYWxtOwor5pWZ55qHID4gcG9wZTsKK+W+teaUtiA+IGxldnk7CivlkJHkuIsgPiBkb3duOwor6YCf6KGMID4gcnVzaDsKK+mAmeijoSA+IGhlcmU7CivnvLrlj6MgPiBuaWNrOwor6YGy57epID4gc2xvdzsKK+awj+aXjyA+IGNsYW47Civljp/lrZAgPiBhdG9tOwor5q+b5rCIID4gZmVsdDsKK+WGsOmbuSA+IGhhaWw7CivpoJDlhYYgPiBvbWVuOwor5aeR5aq9ID4gYXVudDsKK+axoOWtkCA+IHBvbmQ7Civlp5HlqJggPiBnaXJsOwor5Yu75reoID4gZXZlbjsKK+aWueahiCA+IHBsYW47Civni4LlkKAgPiBob3dsOwor5b+D5oOFID4gbW9vZDsKK+mHjuWFlCA+IGhhcmU7Civpnq3lrZAgPiB3aGlwOwor5Z+66YeRID4gZnVuZDsKK+Wmu+WtkCA+IHdpZmU7CivljYrmi4kgPiBoYWxmOwor6a+J6a2aID4gY2FycDsKK+efs+eJhyA+IHNsYWI7Civlv4XlvpcgPiBtdXN0Owor5Yaw6Y6uID4gaWNlZDsKK+axoOWhmCA+IHBvb2w7Civnhr7nhrEgPiBnbG93Owor55+z54GwID4gbGltZTsKK+earumerSA+IGxhc2g7CivlhrfphbcgPiBncmltOwor5aWR5pOaID4gZGVlZDsKK+ehrOW5oyA+IGNvaW47Civlh53oppYgPiBnYXplOwor5pWZ5rS+ID4gc2VjdDsKK+WFrOmbniA+IGNvY2s7Civop5LoibIgPiByb2xlOwor57qW5bqmID4gc2l6ZTsKK+eJjOWtkCA+IHNpZ247CivniZvlpbYgPiBtaWxrOwor5aWJ5om/ID4gZmF3bjsKK+aZguWAmSA+IHRpbWU7Civoi7Hpm4QgPiBoZXJvOwor6ZaL6ZeKID4gd2lkZTsKK+W9juabsiA+IGJlbmQ7CivoqrLmlocgPiB0ZXh0Owor6ZW36Z20ID4gYm9vdDsKK+eJouWbuiA+IGZpcm07Civnmb7pnYggPiBsYXJrOwor5peX5a2QID4gZmxhZzsKK+Wls+WtqSA+IGdpcmw7CivnupblsI8gPiBmaW5lOwor5bm06ICBID4gYWdlZDsKK+W3pumCiiA+IGxlZnQ7CivniYblo4EgPiB3YWxsOwor6YCP57SFID4gcm9zeTsKK+aVuOaTmiA+IGRhdGE7CivoqanmrYwgPiBwb2VtOwor54Wu54afID4gYm9pbDsKK+efs+advyA+IHNsYWI7CivlpbPlo6sgPiBsYWR5Owor5b+N5Y+XID4gYmVhcjsKK+W+ruWeiyA+IHRpbnk7Civpgormsr8gPiBlZGdlOwor6Iux6YeMID4gbWlsZTsKK+aogumaiiA+IGJhbmQ7CivmsKPlkbMgPiBvZG9yOwor54Sh56auID4gcnVkZTsKK+mDveW4giA+IGNpdHk7CivljYDln58gPiBhcmVhOwor6KiI55WrID4gcGxhbjsKK+eHg+aWmSA+IGZ1ZWw7CivlvaLlvI8gPiBmb3JtOwor6KW/6JaEID4gY2FrZTsKK+aTmOeVqyA+IHBsYW47CivnhaTngbAgPiBzb290Owor6ZaL6L6mID4gb3BlbjsKK+aVsuaJkyA+IGJlYXQ7Civpm6rmkqwgPiBzbGVkOwor5b6I5aW9ID4gd2VsbDsKK+mBqOa4uCA+IHJvYW07CivlpoLlkIwgPiBsaWtlOwor5aSn5buzID4gaGFsbDsKK+avkuWusyA+IGJhbmU7CivnuanlrZAgPiBjb3JkOwor57mB5b+ZID4gYnVzeTsKK+e0sOiDniA+IGNlbGw7CivljZHliqMgPiBiYXNlOwor5b6p5Y6fID4gaGVhbDsKK+WIpeeahCA+IGVsc2U7CivlhazosawgPiBib2FyOwor6Kq/5a2QID4gdHVuZTsKK+WLu+WvpiA+IGV2ZW47CivlvrXlhYYgPiBvbWVuOwor5o+56LKgID4gYmVhcjsKK+mWkuirhyA+IGNoYXQ7CivnnLznnIsgPiBzb29uOwor6L6b6IumID4gaGFyZDsKK+eZsei7nyA+IGxpbXA7CivpnaLlhbcgPiBtYXNrOwor5pKV56C0ID4gdGVhcjsKK+Wfi+iRrCA+IGJ1cnk7CivlpKflqJggPiBhdW50Owor5q2M5puyID4gc29uZzsKK+W8p+W9oiA+IGFyY2g7CivovKrou7ggPiBheGxlOwor5biG6Ii5ID4gc2FpbDsKK+WNkeS4iyA+IGJhc2U7CivmqJnorZggPiBtYXJrOwor5biz56+3ID4gdGVudDsKK+eYpumVtyA+IHNsaW07CivoirHpgoogPiBsYWNlOwor5aGr5ru/ID4gY3JhbTsKK+WhiueLgCA+IGx1bXA7CivmqJnoqowgPiBzaWduOwor6Zu55a2QID4gaGFpbDsKK+irvuS6niA+IG5vYWg7Civopo/nq6AgPiBydWxlOwor5qiZ6KiYID4gc2lnbjsKK+WkluWllyA+IGNvYXQ7CivplbfopaogPiBob3NlOwor5ZyY6ZqKID4gdGVhbTsKK+W+nuS4rSA+IGZyb207Civplbfooo0gPiBnb3duOwor6ZuE5oCnID4gbWFsZTsKK+edq+avmyA+IGxhc2g7CivlvLflp6YgPiByYXBlOwor54Wn5paZID4gdGVuZDsKK+aOoemCkSA+IGZpZWY7CivmjqXov5EgPiBuZWFyOwor55qu6IaaID4gc2tpbjsKK+aOoOmBjiA+IGZsaXQ7Civnt6nmhaIgPiBzbG93Owor5Z+656SOID4gYmFzZTsKK+e2suaetiA+IHJhY2s7Civopo/nn6kgPiBydWxlOwor54Gw6ImyID4gZ3JheTsKK+e0sOeciyA+IHBlZXI7CivpgbLmhaIgPiBzbG93Owor6KSq6ImyID4gZmFkZTsKK+mBqeaHiSA+IHN1aXQ7CivmlZflo54gPiBydWluOwor6YOo5YiGID4gcGFydDsKK+ecvOa3miA+IHRlYXI7Civoi5TomJogPiBtb3NzOwor5b2i5YOPID4gZm9ybTsKK+WJneaOiSA+IHBhcmU7Civpg7Xku7YgPiBtYWlsOwor5q2l5a2QID4gc3RlcDsKK+i/veaxgiA+IHNlZWs7CivooajpnLIgPiBzaG93Owor556R5oOzID4gbXVzZTsKK+aTpuaOiSA+IHdpcGU7CivpgYrmiLIgPiBnYW1lOwor56+A6bueID4gbm9kZTsKK+Wkq+S6uiA+IGxhZHk7Civlu5rluKsgPiBjb29rOwor5o2y6Lu4ID4gcmVlbDsKK+mrmOmjmyA+IHNvYXI7CivmlaPlh7ogPiBzaGVkOwor5bei56m0ID4gbGFpcjsKK+mYv+abvCA+IG9tYW47Civlu6DlrZAgPiB5YXJkOwor57Si54S2ID4gZHVsbDsKK+WJm+W8tyA+IGZpcm07CivnnJ/mraMgPiByZWFsOwor6Lqy6YG/ID4gc2h1bjsKK+W7muWtkCA+IGNvb2s7CivnhrHlipsgPiBoZWF0Owor5buj5aSnID4gdmFzdDsKK+mzpeWYtCA+IGJlYWs7Civln7rmupYgPiBkYXRhOwor57C96Ki8ID4gdmlzYTsKK+mztOWPqyA+IGhvb3Q7CivloIXmsbogPiBmaXJtOwor6Kix5aSaID4gbWFueTsKK+eBsOeZvSA+IGdyZXk7CivmlLblibIgPiByZWFwOwor57ay5a2UID4gbWVzaDsKK+aLs+mgrSA+IGZpc3Q7CivmrYzllLEgPiBzaW5nOwor6Zuc5LqCID4gbWVzczsKK+WGt+a3oSA+IGNvbGQ7CivpqqjpoK0gPiBib25lOwor5Ymb5aW9ID4ganVzdDsKK+WjgeWKqSA+IGhlbHA7CivmjonokL0gPiBmbG9wOwor6Kmp5Lq6ID4gYmFyZDsKK+iQveS4iyA+IGZhbGw7CivooajosaEgPiBpZGVhOwor6Zm15aKTID4gdG9tYjsKK+iIkumBqSA+IGNvenk7Civoi7HnlZ0gPiBhY3JlOwor5q2l5LyQID4gcGFjZTsKK+aqlOahiCA+IGZpbGU7CivnsLjolakgPiByb2xsOwor5bi25pyJID4gaGF2ZTsKK+atjOWFkiA+IHNvbmc7CivmjqXnuKsgPiBzZWFtOwor5bmr5b+ZID4gaGVscDsKK+e1kOaIkCA+IGZvcm07CivooYzotbAgPiB3YWxrOwor5Yaw5qmHID4gc2xlZDsKK+WFrOeJmyA+IGJ1bGw7Civln47msaAgPiBjaXR5Owor57KX56CCID4gZ3JpdDsKK+WFrOeItSA+IGR1a2U7CivopoHmnIkgPiBuZWVkOwor6Iaz6aOfID4gbWVhbDsKK+i6suiXjyA+IGhpZGU7Civoj5zllq4gPiBtZW51Owor5qmr5qiRID4gYmVhbTsKK+ihk+iqniA+IHRlcm07CivpgbLkuoYgPiBsYXRlOwor5Ymb5YuBID4gYm9sZDsKK+ihmuihlSA+IGxhbmU7Civoib7ntaggPiBtb3hhOwor6KiI5YqDID4gcGxhbjsKK+aMieiqniA+IG5vdGU7CivnnJ/lr6YgPiB0cnVlOwor55eb6IumID4gcGFpbjsKK+iKseeTtiA+IHZhc2U7CivlhbbmrKEgPiBuZXh0Owor5qmf5pm6ID4gdGFjdDsKK+WCvuiBvSA+IGhhcms7Civmo5Xplq0gPiBwYWxtOwor5YWs5q2jID4ganVzdDsKK+W5s+WdpiA+IGZsYXQ7Civoh4Dpg6ggPiBidXR0Owor6ZCY6aCtID4gaG91cjsKK+aTjeWIhyA+IHJhc2g7CivlnabnhLYgPiBjYWxtOwor6KaB5b6XID4gZ29vZDsKK+eCuOW9iCA+IGJvbWI7CivluqfkvY0gPiBzZWF0Owor6Iqv54mHID4gY2hpcDsKK+WbnuiBsiA+IGVjaG87CivpkLXpirkgPiBydXN0Owor5bGL6aCCID4gcm9vZjsKK+WgoeWjmCA+IGZvcnQ7CivlhbfmnIkgPiBoYXZlOwor6YCZ5YWSID4gaGVyZTsKK+ino+WHjSA+IHRoYXc7CivnlJ/plbcgPiBncm93Owor5aCF5a6aID4gZmlybTsKK+W3tOaOjCA+IHBhbG07CivnmKLnl5UgPiBzY2FyOwor5bi25a2QID4gYmFuZDsKK+mVt+anjSA+IHBpa2U7Civlha3mnIggPiBqdW5lOwor6YCZ5YCLID4gdGhpczsKK+mWgOagkyA+IGJvbHQ7CivooJXon7IgPiB3b3JtOwor5YOx55SoID4gaGlyZTsKK+Wck+ebpCA+IGRpc2s7CivlnLDnjYQgPiBoZWxsOwor6Zi/5YCRID4gYW1lbjsKK+igleiZqyA+IHdvcm07Civnm6TlrZAgPiB0cmF5Owor562G6YyiID4gZnVuZDsKK+i3r+mCiiA+IGN1cmI7CivngYzmnKggPiBidXNoOwor6KaW5ZyWID4gdmlldzsKK+aSh+WOuyA+IHNraW07CivovrLlpbQgPiBzZXJmOwor5Z+O5biCID4gY2l0eTsKK+WgheWbuiA+IGZpcm07CivlsI/ppqwgPiBjb2x0Owor5YW15oiOID4gYXJtczsKK+WFieadnyA+IGJlYW07CivmqJnmmI4gPiBtYXJrOwor6KSH5pysID4gY29weTsKK+ifvuicjSA+IHRvYWQ7CivovrLloLQgPiBmYXJtOwor55uS5a2QID4gY2FzZTsKK+Wci+eOiyA+IGtpbmc7CivluLPllq4gPiBiaWxsOwor6I2J5Z2qID4gbGF3bjsKK+iNieWcsCA+IGxhd247CivmkLblpaogPiBzbmFwOwor6KGA566hID4gdmVpbjsKK+i7jeeBqyA+IGFybXM7Civot5votrMgPiBsYW1lOwor5oi/6ZaTID4gcm9vbTsKK+imj+WKgyA+IHBsYW47CivohbPot58gPiBoZWVsOwor6Leh6LGhID4gbWFyazsKK+imj+WJhyA+IHJ1bGU7CivlhazlubMgPiBmYWlyOwor6Y6u6Z2cID4gY2FsbTsKK+WDueasviA+IGNvc3Q7CivmqKPlvI8gPiB0eXBlOwor5pCN5a6zID4gaGFybTsKK+aooeW8jyA+IG1vZGU7Civnm5/lj4sgPiBhbGx5Owor5YWc5bi9ID4gaG9vZDsKK+W3qOWkpyA+IGh1Z2U7Civlt6XlpKsgPiB3b3JrOwor55a855ebID4gYWNoZTsKK+i3s+iapCA+IGZsZWE7CivmqJPlu4IgPiBsb2Z0Owor6Iad6JOLID4ga25lZTsKK+S/ruijnCA+IG1lbmQ7CivlsYHoqbEgPiBzaGl0Owor54Gw5aG1ID4gZHVzdDsKK+WBt+eciyA+IHBlZXA7CivmqKHlrZAgPiBtb2xkOwor55ak55eVID4gc2NhcjsKK+WcsOaWuSA+IGFyZWE7CivlhZTlrZAgPiBoYXJlOwor5bCP6LevID4gbGFuZTsKK+mPiOi3ryA+IGxpbms7CivnlJjolJcgPiBjYW5lOwor5o6M5pOKID4gc2xhcDsKK+W3ruWLgSA+IHBvb3I7CivkvY7pn7MgPiBiYXNzOwor5rqc6LWwID4gc2xpcDsKK+eUnOiPnCA+IGJlZXQ7CivmjbLmm7IgPiBjdXJsOwor5ris6amXID4gdGVzdDsKK+eUqOiGsyA+IGRpbmU7CivnrJHoqbEgPiBqb2tlOwor5bGx576KID4gZ29hdDsKK+ertuizvSA+IHJhY2U7CivnrKjom4sgPiBmb29sOwor5bKp55+zID4gcm9jazsKK+WFrOWRiiA+IHBvc3Q7Civlt6XlhbcgPiB0b29sOwor55Sa6IezID4gZXZlbjsKK+eVpeeivCA+IGNvZGU7Civot4zokL0gPiBmYWxsOwor5r2u5r+VID4gZGFtcDsKK+i8g+WwkSA+IGxlc3M7Civnmb7lkIggPiBsaWx5Owor6IWw6IKJID4gbG9pbjsKK+WcsOW4tiA+IHpvbmU7CivooajmoLwgPiBmb3JtOwor6Zaj5LiLID4gc2lyZTsKK+m+jemqqCA+IGtlZWw7CivovYnli5UgPiB0dXJuOwor5YW25L2ZID4gcmVzdDsKK+a9rua1gSA+IHRpZGU7Civkv53nvoUgPiBwYXVsOwor6Imy5b2pID4gdGludDsKK+WYsueskSA+IGplZXI7Civmva7msZAgPiB0aWRlOwor5o2y5bi2ID4gdGFwZTsKK+WVpOmFkiA+IGJlZXI7CivmvZvmsLQgPiBkaXZlOwor6Y2N6YeRID4gZ2lsZDsKK+Wwj+iIuSA+IGJvYXQ7Civku4DpurwgPiB3aGF0Owor5oyH5qiZID4gbm9ybTsKK+ihneaSniA+IGRhc2g7CivlsqnmvL8gPiBsYXZhOwor5o+h5L2PID4gZ3JpcDsKK+WcsOWfnyA+IGFyZWE7CivpvLTpvKAgPiBtb2xlOwor6KO95L2cID4gbWFrZTsKK+Wcn+WjpCA+IHNvaWw7CivlsI/nvoogPiBsYW1iOwor5o6l5ZC7ID4ga2lzczsKK+iJr+WlvSA+IGdvb2Q7CivnrZbnlaUgPiBwbG90Owor6KGw5byxID4gd2VhazsKK+a8qea4piA+IGVkZHk7CivlnJ/lnLAgPiBsYW5kOwor5Lqe6bq7ID4gZmxheDsKK+WTuumkiiA+IGZlZWQ7CivlnIjlpZcgPiB0cmFwOwor57GD5ZyIID4gcmluZzsKK+mPiOe1kCA+IGxpbms7Civohr3msYEgPiBnYWxsOwor5Zyw5Y2AID4gYXJlYTsKK+aflOi7nyA+IHNvZnQ7CivmvI/mtJ4gPiBob2xlOwor5o6h5LyQID4gZmVsbDsKK+eVtuaZgiA+IHRoZW47CivlgJ/mrL4gPiBsb2FuOwor6KKW5Y+jID4gY3VmZjsKK+aLm+aUtiA+IGhpcmU7Civnj77ph5EgPiBjYXNoOwor6aaZ6I2JID4gaGVyYjsKK+WatOWzuyA+IGdyaW07CivnlrnlrZAgPiByYXNoOwor56eY6a2vID4gcGVydTsKK+eohemXnCA+IHBpa2U7CivnlJ/mtLsgPiBsaWZlOwor5YOn5L62ID4gbW9uazsKK+aJk+eNtSA+IGh1bnQ7Civmi5bmi4kgPiBoYXVsOwor5oux5b2iID4gYXJjaDsKK+aKseaciSA+IGhhdmU7CivlnI3kvY8gPiBnaXJkOwor5qON5qOSID4gY2x1YjsKK+iBsuitvSA+IGZhbWU7Civoh6rlt7EgPiBzZWxmOwor5ouN5omTID4gZmxhcDsKK+aLjeaJiyA+IGNsYXA7CivlgrXli5kgPiBkZWJ0Owor6IG96KaLID4gaGVhcjsKK+mjvumHmCA+IHN0dWQ7CivlsI/niZsgPiBjYWxmOwor6KGA5aGKID4gZ29yZTsKK+a1qumgrSA+IHdhdmU7CivlgY/lt64gPiBiaWFzOwor5YK+5YCSID4gcG91cjsKK+mqsOWtkCA+IGRpY2U7CivosqDovIkgPiBsb2FkOwor5oqY5pa3ID4gc25hcDsKK+iAgemXhiA+IGJvc3M7CivogZboqakgPiBoeW1uOwor5YKs5L+DID4gdXJnZTsKK+mLquiorSA+IHBhdmU7Civnp5/ph5EgPiByZW50Owor5omT5q27ID4ga2lsbDsKK+miqOmaqiA+IHJpc2s7Civmnq/okI4gPiB3aWx0Owor55So5oi2ID4gdXNlcjsKK+a1uOmAjyA+IHNvYWs7CivnlrLlgKYgPiB0aXJlOwor6Iag5bi2ID4gdGFwZTsKK+izouiDvSA+IHNhZ2U7Civmtbfou40gPiBuYXZ5Owor6Iet5ZGzID4gZnVtZTsKK+WBtuWDjyA+IGlkb2w7CivmiYvmnZYgPiBjYW5lOwor5rW36LG5ID4gc2VhbDsKK+i3qOW6piA+IHNwYW47CivmuqvmmpYgPiB3YXJtOwor5a2j56+AID4gdGltZTsKK+aenOiCiSA+IHB1bHA7CivlsI/mmYIgPiBob3VyOwor5oqV5bCEID4gZGFydDsKK+m7g+mHkSA+IGdvbGQ7Civlkb3pgYsgPiBmYXRlOwor5a2X56+AID4gYnl0ZTsKK+a1t+inkiA+IGNhcGU7CivlmIbmga8gPiBzaWdoOwor5ZSn562SID4gcHVtcDsKK+eVpeWOuyA+IG9taXQ7Civlk7rogrIgPiBmZWVkOwor576F6aasID4gcm9tZTsKK+iAg+ippiA+IGV4YW07CivmiYvmjowgPiBwYWxtOwor6IKl55qCID4gc29hcDsKK+aEj+imiyA+IHZpZXc7CivlgI3loZQgPiBiZXRhOwor5bC+5be0ID4gdGFpbDsKK+i0heeWoyA+IHdhcnQ7CivmgqDplpIgPiBlYXNlOwor5Lyv54i1ID4gZWFybDsKK+WRqOmBiiA+IHRvdXI7CivmoqjlrZAgPiBwZWFyOwor5bC65a+4ID4gc2l6ZTsKK+mguOmghSA+IG5lY2s7CivnkLXnkLYgPiBsdXRlOwor5qGI5paHID4gdGV4dDsKK+iGoOWNtyA+IGZpbG07CivpioDooYwgPiBiYW5rOwor5ri45rOzID4gc3dpbTsKK+iZp+e8uiA+IHdhbmU7CivlgJ/lh7ogPiBsZW5kOwor5a+M5pyJID4gcmljaDsKK+S/guWwjyA+IHRpbnk7Civlk4HohKsgPiBwaW50Owor5a6X5rS+ID4gc2VjdDsKK+S4jemBnCA+IHJ1ZGU7CivpprTmnI0gPiB0YW1lOwor5LiN6YGOID4gb25seTsKK+S4jemBgiA+IGZhaWw7CivlsJbls7AgPiBwZWFrOwor5ru+5YuVID4gcm9sbDsKK+iyp+eqriA+IHBvb3I7CivlsI/ls7YgPiBpc2xlOwor5Li76KaBID4gbWFpbjsKK+adn+e4myA+IGJpbmQ7CivmnZ/nt4ogPiBnaXJkOwor6JaE6ZynID4gbWlzdDsKK+a4hea+iCA+IGZhaXI7CivnrZblioMgPiBwbG90Owor6LGs6IKJID4gcG9yazsKK+S9leaZgiA+IHdoZW47CivlrrnmmJMgPiBlYXN5Owor5LiL6LeMID4gZmFsbDsKK+m7g+icgiA+IHdhc3A7Civlj6PpoK0gPiBvcmFsOwor572w6YeRID4gZmluZTsKK+S7pOeLgCA+IHdyaXQ7CivolajpoZ4gPiBmZXJuOwor6LK755SoID4gY29zdDsKK+WRiuiqoSA+IHdhcm47CivomIbokaYgPiByZWVkOwor5oqT5L2PID4gZ3JhYjsKK+adv+eariA+IHNsYWI7CivohIblvLEgPiB3ZWFrOwor5qC45b+DID4gY29yZTsKK+mgremDqCA+IGhlYWQ7CivmoLzlvI8gPiBmb3JtOwor5rex5rexID4gZGVlcDsKK+axuumspSA+IGR1ZWw7CivosYbohZAgPiB0b2Z1Owor5oe25oOwID4gaWRsZTsKK+a7tOS4iyA+IGRyaXA7CivmiYHlna8gPiBzbGFiOwor5L6L5a2QID4gY2FzZTsKK+WSkue9tSA+IGRhbW47CivohJblrZAgPiBuZWNrOwor5ZCM6LypID4gcGVlcjsKK+eOqeeskSA+IGpva2U7Civol6TolJMgPiB2aW5lOwor5L6N5aWzID4gbWFpZDsKK+icguaIvyA+IGhpdmU7CivmiJLlrZAgPiByaW5nOwor5ruR5YCSID4gc2xpcDsKK+a6tuWMliA+IG1lbHQ7CivmuLjmiLIgPiBnYW1lOwor5a245pyfID4gdGVybTsKK+mmrOW7hCA+IGJhcm47Civkup7nlbYgPiBhZGFtOwor57+F6IaAID4gd2luZzsKK+S8iuaclyA+IGlyYW47CivkuLvnvqkgPiBcLWlzbTsKK+m6peiKvSA+IG1hbHQ7Civlr4blrqQgPiBjZWxsOwor54u56LC3ID4gZ2xlbjsKK+eqqeW3oiA+IG5lc3Q7CivniaHpub8gPiBoYXJ0Owor6aKo566PID4ga2l0ZTsKK+WQjeipniA+IG5vdW47CivlrZjmoLkgPiBzdHViOwor5pmC6ZaTID4gdGltZTsKK+a0vuezuyA+IHNlY3Q7Civnj77mrL4gPiBjYXNoOwor56K86aCtID4gZG9jazsKK+mHgOmAoCA+IGJyZXc7Civol43oibIgPiBibHVlOwor5a6J5oGvID4gcmVzdDsKK+iBluatjCA+IGh5bW47Civpo73mu78gPiBmdWxsOwor5ZOt5rOjID4gd2VlcDsKK+mjn+eJqSA+IGZvb2Q7Civmhb7mnJsgPiBsdXN0Owor5Y+y6KmpID4gZXBpYzsKK+S4gOiIrCA+IHNhbWU7CivlsI/kuJggPiBoaWxsOwor5oOF56+AID4gcGxvdDsKK+epv+W4tiA+IHdlYXI7CivkvJHmga8gPiByZXN0Owor6aCI6KaBID4gbXVzdDsKK+advuaouSA+IHBpbmU7CivolpTolocgPiByb3NlOwor5Lqe5rSyID4gYXNpYTsKK+WutuWckiA+IGhvbWU7CivmhpDmhqsgPiBwaXR5Owor5pqX6JePID4gaGlkZTsKK+eJm+mjsiA+IGd1bHA7Civos7rlvpcgPiBlYXJuOwor6LOH5paZID4gZGF0YTsKK+ixjueQtCA+IGhhcnA7CivkuIDnvqQgPiBnYW5nOwor5p6c5pa3ID4gZmlybTsKK+eoruaXjyA+IHJhY2U7Civpu5Hnl6MgPiBtb2xlOwor6Z+z6Kq/ID4gdG9uZTsKK+a0nueptCA+IGNhdmU7Civmnb/mop0gPiBsYXRoOwor5LiK57WDID4gd2luZDsKK+WTgOazoyA+IHdhaWw7CivosrTml48gPiBsb3JkOwor5ZOI5qygID4geWF3bjsKK+a1qua9riA+IHdhdmU7Civnpq7niakgPiBnaWZ0Owor5ZCE6IeqID4gZWFjaDsKK+ixrOayuSA+IGxhcmQ7CivpjKvlrokgPiB6aW9uOwor542154mpID4gcHJleTsKK+W/q+mAnyA+IGZhc3Q7CivpnYjprYIgPiBzb3VsOwor54qv6KaPID4gZm91bDsKK+WusOWItiA+IHJ1bGU7CivkuYPniL4gPiB0aHVzOwor6aO85paZID4gZmVlZDsKK+ayueiGjyA+IGJhbG07Civnj63miL8gPiBqYWlsOwor6b6Q5aSnID4gaHVnZTsKK+a4r+WPoyA+IHBvcnQ7CivmlpHpu54gPiBzcG90Owor5LiA56KXID4gYm93bDsKK+Wkp+m6uyA+IGhlbXA7Civmta7mqJkgPiBidW95Owor5oOz5rOVID4gaWRlYTsKK+WutuS8mSA+IGNoYXA7CivkuqTmjqUgPiBqb2luOwor5b6M6Z2iID4gcmVhcjsKK+Wkqem1nSA+IHN3YW47CivmnIPmvI8gPiBsZWFrOwor5pW06b2KID4gdGlkeTsKK+aYh+i1tyA+IHJpc2U7CivllYblk4EgPiBnb29kOwor5Y2R6YSZID4gYmFzZTsKK+eKhOinkiA+IGhvcm47Civmr43ppqwgPiBtYXJlOwor5a2X5Z6LID4gZm9udDsKK+WuieWFqCA+IHNhZmU7CivnqK7lrZAgPiBzZWVkOwor5a2k5ZauID4gbG9uZTsKK+eoi+W8jyA+IGZvcm07CivmnKjmobYgPiBjYXNrOwor57655rmvID4gc291cDsKK+WNsOitiSA+IHNlYWw7CivmnKjmnb8gPiBzbGFiOwor5ZC554mbID4gYnJhZzsKK+acqOadkCA+IHdvb2Q7Civpo77luLYgPiBzYXNoOwor6ICB5pK+ID4gbGFvczsKK+acpuacpyA+IGJsdXI7CivpnaDov5EgPiBuZWFyOwor6Jmb5byxID4gd2VhazsKK+a2iOaBryA+IG5ld3M7CivoqrLpoYwgPiB0YXNrOwor5pyf5pybID4gaG9wZTsKK+a3seWOmiA+IGRlZXA7CivkuLvmqZ8gPiBjb3JlOwor6by75a2QID4gbm9zZTsKK+ePoOWtkCA+IGJlYWQ7Civml4XpgYogPiB0cmlwOwor56mp5YGlID4gZmlybTsKK+mDqOmaiiA+IGFybXk7CivkuIrmvLIgPiByaXNlOwor5rOw54S2ID4gY2FsbTsKK+m9p+WSrCA+IGduYXc7CivnqIDlsJEgPiByYXJlOwor6buR5pqXID4gZGFyazsKK+azoueJuSA+IGJhdWQ7Civph47npr0gPiBmb3dsOwor5pqI55ypID4gZGF6ZTsKK+WllOmAgyA+IGZsZWU7Civpu47mmI4gPiBkYXduOwor5rK755mSID4gY3VyZTsKK+aEj+aAnSA+IGlkZWE7Civmn5DkupsgPiBzb21lOwor5oSP5b+1ID4gaWRlYTsKK+e5gembnCA+IG1hbnk7CivmhI/lv5cgPiB3aWxsOwor56ix5ZG8ID4gY2FsbDsKK+abuOahjCA+IGRlc2s7CivlvLfpoqggPiBnYWxlOwor6ZuE6bm/ID4gYnVjazsKK+m6u+acqCA+IG51bWI7CivmnIPmmaQgPiBtZWV0Owor6buD5piPID4gZHVzazsKK+mgheebriA+IGl0ZW07Civpn4HnuakgPiByZWluOwor5ZSv5LiAID4gb25seTsKK+mbsumbgCA+IGxhcms7Civnh5LplosgPiBib2lsOwor56mA5YCJID4gYmFybjsKK+adjuWtkCA+IHBsdW07CivogbfkvY0gPiBwb3N0Owor6YeO55SfID4gd2lsZDsKK+WQpuaxuiA+IHZldG87CivmspnnmbwgPiBzb2ZhOwor5rOi5rWqID4gd2F2ZTsKK+S4gOaooyA+IHNhbWU7Civku5blgJEgPiB0aGV5Owor5rOh5rKrID4gZm9hbTsKK+atpempnyA+IHN0ZXA7CivogIHlqYYgPiB3aWZlOwor5Li75oSPID4gcGxhbjsKK+mdkuibmSA+IGZyb2c7CivmnKzlrZAgPiBib29rOwor54mb6IKJID4gYmVlZjsKK+ixkOWvjCA+IHJpY2g7CivkuIPmnIggPiBqdWx5Owor6Yq35ZSuID4gc2VsbDsKK+S4iuaYhyA+IHJpc2U7Civlk47lkYAgPiBkYW1uOwor6Z6t56yeID4gZmxvZzsKK+S4gOacjSA+IGRvc2U7CivlpKnos6YgPiBnaWZ0Owor6KuH6KmxID4gdGFsazsKK+ixhuWtkCA+IGJlYW47Civlqr3lqr0gPiBtYW1hOwor5ZCM5qijID4gc2FtZTsKK+ejmueTpiA+IHRpbGU7CivmlY/pirMgPiBrZWVuOwor5rK55rK5ID4gb2lseTsKK+azouadnyA+IGJlYW07CivljIXoo50gPiBwYWNrOwor5rOV5qGIID4gYmlsbDsKK+axoeeXlSA+IGJsb3Q7CivpiaTlrZAgPiBob29rOwor5Y2w56ugID4gc2VhbDsKK+mdnOiEiCA+IHZlaW47Civnn6XpgZMgPiBrbm93Owor54yb5pKeID4gc2xhbTsKK+mBvOmXiiA+IHZhc3Q7CivmlYXphIkgPiBob21lOwor6Z2i572pID4gdmVpbDsKK+W+nuiAjCA+IHRodXM7Civlv5nnoowgPiBidXN5Owor6Z6t55eVID4gd2VsdDsKK+mCiumLkiA+IHdpbmc7Civphbjnl5sgPiBhY2hlOwor5buj6ZeKID4gd2lkZTsKK+elnuaDhSA+IGxvb2s7Civkup7kuIEgPiBhZGVuOwor542o5aWPID4gc29sbzsKK+aykOa1tCA+IGJhdGg7CivmnIDlpb0gPiBiZXN0Owor54yW5oqrID4gd2lsZDsKK+WSgOWavCA+IGNoZXc7CivlpJbooo0gPiByb2JlOwor6KqT6KmeID4gb2F0aDsKK+WLleipniA+IHZlcmI7CivnjqnlgbYgPiBkb2xsOwor6KqT6KiAID4gb2F0aDsKK+iWhOaariA+IGR1c2s7CivnupbntLAgPiBmaW5lOwor5LiL5be0ID4gY2hpbjsKK+aWsOiBniA+IG5ld3M7CivnjYXlrZAgPiBsaW9uOwor5pu05aSaID4gbW9yZTsKK+WinumVtyA+IGdyb3c7Civlj6rmnIkgPiBvbmx5Owor5ZGG5a2QID4gZm9vbDsKK+aatOW+kiA+IHRodWc7Civmsb3msLQgPiBzb2RhOwor6Z2i56mNID4gYXJlYTsKK+WRveWQjSA+IG5hbWU7CivmrrXokL0gPiBwYXJ0Owor55+t6KWqID4gc29jazsKK+W8leitiSA+IGNpdGU7CivpiJXluLYgPiBib25kOwor5YmN6Z2iID4gZm9yZTsKK+mZo+miqCA+IGd1c3Q7Civnt6jovK8gPiBlZGl0Owor5q276KiYID4gY3JhbTsKK+aDoeWKoyA+IHZpbGU7CivmtYHli5UgPiBmbG93Owor5pyD5ZCIID4gbWVldDsKK+avm+e3miA+IHlhcm47CivljJfntIQgPiBuYXRvOwor6YeN5pOKID4gYmFuZzsKK+a0vuWHuiA+IHNlbmQ7CivwoLGDID4gdGhpbjsKK+axoOayvCA+IHBvb2w7CivmraXoqr8gPiBnYWl0Owor57mp57SiID4gcm9wZTsKK+mAmumiqCA+IGFpcnk7CivmgZDmh7wgPiBmZWFyOwor56KO54mHID4gY2hpcDsKK+e3mui3ryA+IGxpbmU7CivkuIDlpZcgPiBzdWl0Owor5Y2h54mHID4gY2FyZDsKK+mhnuWeiyA+IHR5cGU7CivljIXntK4gPiBiaW5kOwor5Lit5Y2IID4gbm9vbjsKK+atpuijnSA+IGFybXM7CivoloTlvLEgPiB3ZWFrOwor5LiA5aCGID4gcGlsZTsKK+iuiuaPmyA+IHZhcnk7Civokrznmb0gPiBwYWxlOwor5rC05ru0ID4gZHJvcDsKK+e3qeinoyA+IGVhc2U7CivmnInkupsgPiBzb21lOwor5pyI5LquID4gbW9vbjsKK+W5tOmgrSA+IHllYXI7CivnpKblsbEgPiBtaW5lOwor6YGT6LevID4gcm9hZDsKK+a0l+WItyA+IHdhc2g7Civpmbjou40gPiBhcm15Owor5pS26JePID4ga2VlcDsKK+aToOmAsiA+IHR1Y2s7CivkuIrlj7ggPiBib3NzOwor6aCY5bCOID4gbGVhZDsKK+awtOaxoCA+IHBvbmQ7Civpm7vnt5ogPiB3aXJlOwor5LiA5ZC5ID4gcHVmZjsKK+avm+eariA+IHBlbHQ7Civng4/ptIkgPiBjcm93Owor5Yue57SvID4gdG9pbDsKK+mBi+iyuyA+IGZhcmU7Civlo4HombEgPiB0aWNrOwor5pKl6ZaLID4gcG9rZTsKK+ioreioiCA+IHBsYW47Civov7fpmaMgPiBtYXplOwor5ZCd5ZeHID4gbWVhbjsKK+S4gOWNiiA+IGhhbGY7CivpoILls7AgPiBwZWFrOwor6Jel5Li4ID4gcGlsbDsKK+aYn+acnyA+IHdlZWs7CivmsLTmp70gPiBzaW5rOwor57y65bCRID4gbGFjazsKK+S4luS7hyA+IGZldWQ7Civmkp7pjpYgPiBsb2NrOwor6Z6t5pK7ID4gbGFzaDsKK+mZsOisgCA+IHBsb3Q7Civljq3mgaggPiBoYXRlOwor6YGH6KaLID4gbWVldDsKK+aYjuaYnyA+IHN0YXI7CivkuI3kuIAgPiB2YXJ5Owor6KyA5rGCID4gc2VlazsKK+mcsueHnyA+IGNhbXA7Civmr5LniakgPiBwZXN0Owor5pqW5ZKMID4gd2FybTsKK+S4gOS6myA+IHNvbWU7Civpnq3miZMgPiB3aGlwOwor5Y+r5ZuCID4gaG9vdDsKK+eCuummliA+IGhlYWQ7CivmsYLmhJsgPiB3b287CivlkIzkvY0gPiBwYXI7CivpnLLmsLQgPiBkZXc7Civlj5fliLAgPiBnZXQ7Civlj6/ku6UgPiBjYW47CivphZLlu4ogPiBiYXI7CivljZrlvpcgPiB3aW47Civlj4rlhbYgPiBhbmQ7Civnn7PmsrkgPiBvaWw7CivmmYLku6MgPiBhZ2U7Civmr6/lrZAgPiBydWc7CivlubTntIAgPiBhZ2U7CivlpZflrZAgPiBjYXA7CivnoLTluIMgPiByYWc7CivprZrpsK0gPiBmaW47CivlvLfmi4kgPiB0dWc7CivntpPnlLEgPiB2aWE7CivloqjmsLQgPiBpbms7CivoqK3ms5UgPiB0cnk7CivplpPoq5wgPiBzcHk7CivnnLznnZsgPiBleWU7CivmraTmmYIgPiBub3c7CivlpoLkvZUgPiBob3c7CivntYLnq68gPiBlbmQ7CivnnLznlYwgPiBrZW47CivlubznjbggPiBjdWI7Civpm6LlrZAgPiBpb247CivnhKbmsrkgPiB0YXI7CivpgIDmva4gPiBlYmI7Civngavohb8gPiBoYW07CivpmbDmmpcgPiBkaW07Civnt4rmirEgPiBodWc7CivnuL3lkowgPiBzdW07Civopo/njocgPiBsYXc7CivpmrHlr4YgPiBzbHk7CivnoI3kvJAgPiBoZXc7CivliLrmjqIgPiBwcnk7CivoirjoirggPiBhbGw7CivoibLoqr8gPiBodWU7CivlgYfpq64gPiB3aWc7CivpgJTlvpEgPiB3YXk7CivliY3lpJUgPiBldmU7CivloIXmnpwgPiBudXQ7CivlhYjnlJ8gPiBzaXI7CivmrITlnIggPiBwZW47CivmqaHmqLkgPiBvYWs7CivojLbmna8gPiBjdXA7CivopqrlsawgPiBraW47Civmi5bou4ogPiB0b3c7CivloavlhYUgPiBwYWQ7CivluL3lrZAgPiBoYXQ7CivmkJbmk7ogPiB3YWc7CivnnLzliY0gPiBub3c7CivliIDlj6MgPiBjdXQ7CivmqIXmqLkgPiBmaXI7CivnlKjpgJQgPiB1c2U7CivnlJzphZIgPiBydW07CivnnLzkuIsgPiBub3c7Civlh7rlg7kgPiBiaWQ7Civopa/looogPiBwYWQ7CivlgrPnnJ8gPiBmYXg7Civoi6bmg7EgPiBhaWw7CivohbPotr4gPiB0b2U7Civmi5boiLkgPiB0b3c7CivpqqjnvYggPiB1cm47CivnmbzmgJIgPiBtYWQ7Civou5/mr5sgPiBmdXI7Civoh4LohoAgPiBhcm07CivovJXmiZMgPiB0YXA7CivmkLbliqsgPiByb2I7CivlhZLlrZAgPiBzb247Civmia/oo4IgPiByaXA7CivlsI/osrsgPiB0aXA7CivmpobmqLkgPiBlbG07CivllZzpo7IgPiBzaXA7Civlt6XkvZwgPiBqb2I7Civmj7TliqkgPiBhaWQ7CivogovpqqggPiByaWI7CivonZnonaAgPiBiYXQ7Civpvo3poK0gPiB0YXA7CivmiYvoh4IgPiBhcm07Civmt7fpm5wgPiBtaXg7CivlnLDlnJYgPiBtYXA7CivprIblvJsgPiBzYWc7CivnlJ/nl4UgPiBpbGw7CivooovlrZAgPiBiYWc7CivppKHppIUgPiBwaWU7CivlsITnt5ogPiByYXk7Civpi6TpoK0gPiBob2U7Civpi7jplosgPiBzYXc7CivogIHpvKAgPiByYXQ7CivmnpzphqwgPiBqYW07CivooaPlpL4gPiBwZWc7CivlnI3lhZwgPiBiaWI7Civmi5bmioogPiBtb3A7CivkuYjpu54gPiBhY2U7CivlsI/ni5cgPiBwdXA7Civosqjou4ogPiB2YW47CivmiLDniK0gPiB3YXI7Civpu57poK0gPiBub2Q7CivogqXog5YgPiBmYXQ7CivlsI3mupYgPiBhaW07CivlmbTlsIQgPiBqZXQ7CivlgqLkvJkgPiBndXk7CivoiInli5UgPiBhY3Q7Civpuovpub8gPiBlbGs7CivmnKjph5ggPiBwZWc7Civnk6bmlq8gPiBnYXM7CivpqaLlrZAgPiBhc3M7CivnlLflrakgPiBib3k7CivmiYDmnIkgPiBhbGw7CivpkbDljJkgPiBrZXk7Civlk7zogbIgPiBodW07CivkuYXpgaAgPiBvbGQ7Civpo5von7IgPiBidWc7CivnrYblsJYgPiBuaWI7CivpuqXphZIgPiBhbGU7Civkv67lpbMgPiBudW47Civkvr/luL0gPiBjYXA7CivmnIPosrsgPiBkdWU7CivlsLzlp5EgPiBudW47Civkub7ojYkgPiBoYXk7CivlgJ/lgrUgPiBvd2U7Civmh4fmsYIgPiBiZWc7CivlsaLliqAgPiBwbHk7Civpo5vnv5QgPiBmbHk7CivmiYflrZAgPiBmYW47CivohZDlo54gPiByb3Q7CivnqbrmsKMgPiBhaXI7CivkvYbmmK8gPiBidXQ7Civol53ooZMgPiBhcnQ7CivlronmlL4gPiBsYXk7Civll5rlkr0gPiBzb2I7Civmn5PmlpkgPiBkeWU7Civku5jmrL4gPiBwYXk7CivkuI3oia8gPiBiYWQ7CivotI/lvpcgPiB3aW47CivpoIzoqZ4gPiBvZGU7Civkub7nh6UgPiBkcnk7CivlkYrntYIgPiBlbmQ7Civmsb3ou4ogPiBjYXI7CivmtbfngaMgPiBiYXk7CivogLPmnLUgPiBlYXI7CivkvY3lhYMgPiBiaXQ7CivkupTmnIggPiBtYXk7CivkvZXkurogPiB3aG87Civnh5XpuqUgPiBvYXQ7CivmsKPou4ogPiBidXM7CivmnKvmnJ8gPiBlbmQ7Civmr43pm54gPiBoZW47Civlk4DmhIEgPiBzYWQ7CivnpKbnn7MgPiBvcmU7Civlk4DmgKggPiBzYWQ7CivlpKrpmb0gPiBzdW47CivmgJXnvp4gPiBjb3k7Civmna/lrZAgPiBjdXA7CivorIroqbEgPiBsaWU7CivorIroqIAgPiBsaWU7Civpm7bpoK0gPiBvZGQ7Civku7vkvZUgPiBhbnk7Civmt6jlgLwgPiBuZXQ7CivlpZTot5EgPiBydW47CivlpZTotbAgPiBydW47CivmtYHmhJ8gPiBmbHU7Civlk47llrIgPiBoZXk7Civnj77ku4ogPiBub3c7Civmmpfmt6EgPiBkaW07CivmmK/nmoQgPiB5ZXM7CivkuIDmjpIgPiByb3c7CivmlrnoiJ8gPiBhcms7CivmlrDoiIggPiBuZXc7CivkuIrluJ0gPiBnb2Q7CivogIzku4ogPiBub3c7Civlj6/mmK8gPiBidXQ7Civmsb3msrkgPiBnYXM7CivniIbogbIgPiBwb3A7Civnvarmg6EgPiBzaW47CivmlLbosrsgPiBmZWU7Civmr43nvoogPiBld2U7Civms5XlvosgPiBsYXc7CivmgI7mqKMgPiBob3c7Civpm57om4sgPiBlZ2c7CivkuI3lloQgPiBiYWQ7CivpsLvprZogPiBlZWw7CivlpKnnqbogPiBza3k7CivmgrLlgrcgPiBzYWQ7Civluorpi6ogPiBiZWQ7CivkuKbkuJQgPiBhbmQ7CivliKXph50gPiBwaW47CivnuKvntIkgPiBzZXc7CivkuIDliIcgPiBhbGw7CivpgJrpgJogPiBhbGw7CivlubPpjYsgPiBwYW47CivmlL7nva4gPiBwdXQ7CivlubTpgoEgPiBvbGQ7Civmr43niZsgPiBjb3c7CivlpoLmnpwgPiBpZjsKK+mChOaYryA+IG9yOwor55qE6KmxID4gaWY7CivlhYnnop8gPiBjZDsKK+imgeaYryA+IGlmOwor6Iul5pivID4gaWY7CivlmofogbIgPiBobzsKK+aIluiAhSA+IG9yOwor5oiR55qEID4gbXk7CivlgYflpoIgPiBpZjsKK+aIkeWAkSA+IHdlOwor5ZWK5ZGAID4gb2g7CivmlqfpoK0gPiBheDsKK+S4gOS9hiA+IGlmOwor5LiA5YCLID4gYTsKK+OhjiA+IHRoZVwtbG9uZ1wtYmFuZHNcLW9yXC1yaWJib25zXC1hdHRyYWNoZWRcLXRvXC1mbGFnc1wtYW5kXC1iYW5uZXJzXC10aGVcLWZlYXRoZXJcLWRlY29yZWN0ZWRcLWNhcnJpYWdlc1wtb3JcLWRyZXNzZXM7Civpg68gPiBuYW1lXC1vZlwtYVwtc21hbGxcLWFuY2llbnRcLXByaW5jaXBhbGl0eVwtd2hpY2hcLXdhc1wtc2l0dWF0ZWRcLWluXC13aGF0XC1pc1wtbm93XC1wYXJ0XC1vZlwtc2hhbnR1bmdcLWFuZFwta2lhbmdzdTsKK+SQniA+IHRoZVwtdGhpblwtbWVtYnJhbmVcLWJldHdlZW5cLXNraW5cLWFuZFwtZmxlc2hcLXRoYXRcLXByb3RlY3RzXC1pbnRlcm5hbFwtb3JnYW5zXC1vclwtdGlzc3Vlc1wtaW5cLXRoZVwtaHVtYW5cLWJvZHk7Civnj6ogPiBhXC1qYWRlXC10YWJsZVwtY29uZmVycmVkXC11cG9uXC1mZXVkYWxcLXByaW5jZXNcLWJ5XC10aGVcLWVtcGVyb3JcLWFzXC1hXC1zeW1ib2xcLW9mXC1kaWduaXR5XC1hbmRcLWF1dGhvcml0eTsKK+O6uiA+IGFcLXZlcnlcLXByZWNpb3VzXC1waWVjZVwtb2ZcLWphZGVcLXdvcm5cLWJ5XC1hbmNpZW50XC1lbXBlcm9yc1wtdG9cLW1hdGNoXC10YWJsZXNcLWJvcm5lXC1ieVwtdGhlXC1ub2JsZXM7CivkgJggPiB0b1wtY292ZXJcLXRoZVwtbGluZVwtb2ZcLXZpc2lvblwtb3JcLXNpZ2h0XC1cLVwtdGhlXC1zdHJhaWdodFwtbGluZVwtYmV0d2VlblwtYW5cLW9iamVjdFwtYW5kXC1vbmUnJ3NcLWV5ZXM7CivjqKcgPiB3b29kZW5cLXN0aWNrXC1vclwtYmFtYm9vXC1jYW5lXC11c2VkXC10b1wtc3VwcG9ydFwtdGhlXC1jb3ZlcmluZ1wtb2ZcLWFcLWNhcnJpYWdlXC1pblwtYW5jaWVudFwtdGltZXM7CivjlKMgPiBpblwtYW5jaWVudFwtdGltZXNcLXRvXC1maWdodFwtYWdhaW5zdFwtdGhlXC1lbmVteVwtYnlcLXB1c2hpbmdcLWRvd25cLXRoZVwtYmlnXC1yb2Nrc1wtZnJvbVwtdXBcLWhpZ2g7CivkmqsgPiBvcm5hbWVudGFsXC1hcnRpY2xlc1wtbWFkZVwtb2ZcLWhvcm5zXC11c2VkXC10b1wtZGVjb3JhdGVcLXRoZVwtdG9wXC1vZlwtYVwtc3RpY2tcLW9yXC1ob3JzZXdoaXA7CivnrJAgPiBiYW1ib29zXC1wbGFjZWRcLWFjcm9zc1wtd29vZGVuXC1mcmFtZXNcLW9uXC13aGljaFwtZ3JhaW5cLW1heVwtYmVcLXN0b3JlZFwtaW5cLWRhbXBcLWNsaW1hdGVzOwor5KOeID4gbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1zdGF0ZVwtd2hpY2hcLW9jY3VwaWVkXC10aGVcLXNpdGVcLW9mXC10aGVcLXByZXNlbnRcLXByb3ZpbmNlXC1vZlwtaHViZWk7Civkh7YgPiBhXC1zbWFsbFwtcmFmdGVyc1wtbWFkZVwtb2ZcLWJhbWJvb1wtd2hpY2hcLXByb2plY3RcLWZvcm1cLXRoZVwtZWF2ZXNcLWFuZFwtc3VwcG9ydFwtdGhlXC10aWxlczsKK+izqCA+IHRyaWJ1dGVcLXBhaWRcLWluXC1jbG90aFwtYnlcLXRoZVwtdHJpYmVzXC1pblwtc3plY2h3YW5cLWFuZFwteXVubmFuXC11bmRlclwtdGhlXC1oYW5cLWR5bmFzdHk7CivnpqsgPiBzYWNyaWZpY2VcLW9mZmVyZWRcLWF0XC10aGVcLWVuZFwtb2ZcLXRoZVwtdGhyZWVcLXllYXJzJydcLW1vdXJuaW5nXC10aGVcLWRlYXRoXC1vZlwtYVwtcGFyZW50Owor5IKpID4gYW5cLWluXC1zbGFiXC1vclwtaW5rXC1zdG9uZVwtc291bmRcLW9mXC1wZWJibGVzXC1vclwtc3RvbmVzXC1ydWJiaW5nXC1vclwta25vY2tpbmdcLXRvZ2V0aGVyOwor5IKNID4gYVwta2luZFwtb2ZcLXdlYXBvblwtY2FycmllZFwtYnlcLXRoZVwtaG9ub3JcLWd1YXJkXC1iZWZvcmVcLXRoZVwtZW1wZXJvclwtaW5cLWFuY2llbnRcLXRpbWVzOwor6KGIID4gdGhlXC1ibG9vZFwtb2ZcLWFcLXNhY3JpZmljaWFsXC1mb3dsXC13aGljaFwtd2FzXC1zcHJpbmtsZWRcLW9uXC10aGVcLWRvb3JzXC1hbmRcLXZlc3NlbHM7Civjr6kgPiB0b1wtcHV0XC10aGVcLWdyb3dpbmdcLXVwXC1zaWxrd29ybXNcLWluXC1kaWZmZXJlbnRcLWZyYW1lc1wtYWNjb3JkaW5nXC10b1wtdGhlaXJcLXNpemVzOwor45qzID4gYVwtbGFkeVwtdGVhY2hlclwtdG9cLXRlYWNoXC10aGVcLXByb3BlclwtcnVsZXNcLW9mXC1mZW1hbGVcLWJlaGF2aW9yXC1pblwtYW5jaWVudFwtdGltZXM7CivntaUgPiB0b1wtaGFybmVzc1wtYVwtaG9yc2VcLWFcLWJvYXJkXC1pblwtZnJvbnRcLW9mXC1hXC1jYXJyaWFnZVwtZm9yXC10aGVcLWRyaXZlclwtdG9cLWxlYW5cLW9uOwor5IutID4gdG9cLXdlYXZlXC1zaWxrXC1mYWJyaWNzXC13aXRoXC1ncmVlblwtY29sb3JcLWZvclwtbG9uZ2l0dWRlXC1hbmRcLXdoaXRlXC1mb3JcLWxhdGl0dWRlOwor4628ID4gYVwtcmVjdGFuZ2xlXC1zaGFwZWRcLXBlZ1wtb3JcLXNob3J0XC1wb3N0XC1iZXR3ZWVuXC10aGVcLWJlYW5zXC1hbmRcLXRoZVwtcm9vZlwtdGltYmVyczsKK+eRhCA+IGFcLW9ybmFtZW50YWxcLXBpZWNlXC1vZlwtamFkZVwtc2V2ZXJhbFwtaW5jaGVzXC1hY3Jvc3NcLXdpdGhcLWFcLWhvbGVcLWluXC10aGVcLWNlbnRlcjsKK+SspCA+IHRvXC1wdXRcLXRoZVwtdGhpY2tcLXNvdXBcLW9yXC1icm90aFwtb25cLXRvcFwtb2ZcLXRoZVwtcmljZVwtdGhpY2tcLWNvbmdlZVwtb3JcLXBvcnJpZGdlOwor5KWvID4gYVwtZmFybVwtdG9vbFwtdG9cLWNydXNoXC10aGVcLWNsb2RcLW9mXC1lYXJ0aFwtaW50b1wtcGllY2VzXC1hbmRcLW1ha2VcLXRoZVwtbGFuZFwtZmxhdDsKK+SNliA+IGFcLWtpbmRcLW9mXC1uZXRcLWVxdWlwdGVkXC13aXRoXC10cmlja3lcLW1hY2hpbmVcLXVzZWRcLXRvXC1jYXRjaFwtYmlyZHNcLWFuZFwtYmVhc3RzOwor5I6tID4gYVwta2luZFwtb2ZcLWZhcm1cLXRvb2xcLW1hZGVcLW9mXC10d2lzdGVkXC10aHJvblwtc3RyaXBzXC11c2VkXC10b1wtZmxhdGVuXC10aGVcLWxhbmQ7CivnrZMgPiBhXC1oYWlycGluXC1vblwtd2hpY2hcLXRoZVwtaGFpclwtaXNcLWJvdW5kXC1hdFwtdGhlXC1iYWNrXC1vZlwtdGhlXC1oZWFkXC5cLTE1XC1vZlwtYWdlOwor466yID4gYVwtc21hbGxcLXJpbmdcLW9yXC1hXC1zbWFsbFwtcGllY2VcLW9mXC1ib2FyZFwtYXR0YWNoZWRcLXRvXC10aGVcLW11enpsZVwtb2ZcLWFuXC1veDsKK+S1uyA+IGFcLXNtYWxsXC10cmlwb2RcLW9mXC1icm9uemVcLXdpdGhcLXR3b1wtZWFyc1wtdHJpcG9kXC1vZlwtYnJvbnplXC13aXRoXC10d29cLWVhcnM7CivnjqAgPiBsYXJnZVwtamFkZVwtdGFibGV0XC11c2VkXC1ieVwtb2ZmaWNpYWxzXC1hdFwtY291cnRcLXRvXC1pbmRpY2F0ZVwtdGhlaXJcLXJhbmtzOwor5IKcID4gcm9ja3lcLWZpbmVcLXN0b25lXC13aGljaFwtaXNcLWxpdHRsZVwtbGVzc1wtdmFsdWFibGVcLXRoYW5cLWphZGVcLXRvXC1jb2xsYXBzZTsKK+OhhiA+IGFuXC1hcnRpc2FuXC10b1wtc29mdGVuXC1yYXdcLXNpbGtcLWJ5XC1ib2lsaW5nXC1hbmRcLXRvXC1keWVcLXRoZVwtZHJlc3NlZFwtc2lsazsKK+OhgyA+IGFuXC1hcnRpc2FuXC10b1wtc29mdGVuXC1yYXdcLXNpbGtcLWJ5XC1ib2lsaW5nXC1hbmRcLXRvXC1keWVcLXRoZVwtZHJlc3NlZFwtc2lsazsKK+ijjiA+IHRvXC10YWtlXC1vZmZcLXRoZVwtY2xvdGhlc1wtYW5kXC1leHBvc2VcLXRoZVwtYm9keVwuXC10b1wtY2FycnlcLWluXC10aGVcLWdpcmRsZTsKK+mOiyA+IHRoZVwtbGluY2hcLXBpblwtb2ZcLWFcLXdoZWVsXC10b1wtZ292ZXJuXC1vclwtY29udHJvbFwtdGhlXC1ub2lzZVwtb2ZcLWFcLWJhcnJvdzsKK+SqkCA+IHNvbWV0aGluZ1wtbWFkZVwtb2ZcLWJhbWJvb1wtcHV0XC1pblwtdGhlXC1ib3dcLWNhc2VcLXRvXC1wcmV0ZWN0XC1mcm9tXC1kYW1hZ2U7Civkh60gPiBjb250YWluZXJzXC1tYWRlXC1vZlwtdGhpblwtYW5kXC1sb25nXC1zdHJpcFwtb2ZcLWJhbWJvb1wtb3JcLXdpbGxvd1wtYnJhbmNoZXM7Civjn6wgPiBhXC1tb3VudGFpblwtaW5cLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2VcLXNvdXRod2VzdFwtb2ZcLW1lbmd5aW5cLWNvdW50eTsKK+OapSA+IHRvXC1iZWNvbWVcLWFzc29jaWF0ZWRcLXdpdGhcLWVhY2hcLW90aGVyXC1pblwtZ29vZFwtbWFubmVyc1wtYW5kXC1wb2xpdGVuZXNzOwor5KSeID4gYVwta2luZFwtb2ZcLXdlYXBvbnNcLWhlbGRcLWJ5XC10aGVcLW9mZmljaWFsc1wtaW5cLWF0dGVuZGFuY2VcLWluXC1vbGRcLXRpbWVzOwor47mrID4gYVwta2luZFwtb2ZcLWFuaW1hbFwtZ2VuZXJhbGx5XC1jYWxsZWRcLWZvclwtbWlub3JpdHlcLWdyb3Vwc1wtaW5cLW9sZFwtY2hpbmE7Civjs7sgPiBhXC1iYW5rXC1vZlwtZWFydGhcLW9yXC1hblwtZW1iYW5rbWVudFwtdG9cLWJsb2NrXC10aGVcLWN1cnJlbnRcLW9mXC10aGVcLXdhdGVyOwor46+iID4gYVwtcGllY2VcLW9mXC1jcm9zc1wtd2lzZVwtYm9hcmRcLXVzZWRcLWZvclwtZnJhbWVcLW9uXC13aGljaFwtc2lsa3dvcm1zXC1zcGluOwor5IOYID4gc2ltcGxlXC1hbmRcLWNydWRlXC10aGVcLXNvdW5kXC1vZlwtcGViYmxlc1wtb3JcLXN0b25lc1wta25vY2tpbmdcLXRvZ2V0aGVyOwor47CxID4gdG9cLXNtZWFyXC10aGVcLW1vdXRoXC13aXRoXC10aGVcLWJsb29kXC1vZlwtYVwtdmljdGltXC13aGVuXC10YWtpbmdcLWFuXC1vYXRoOwor542vID4gYVwtdHJpYmVcLW9mXC1zY3l0aGlhbnNcLXdoaWNoXC1pbnZhZGVkXC1jaGluYVwtZHVyaW5nXC10aGVcLWhzaWFcLWR5bmFzdHk7CivpnpQgPiBzaWRlc1wtb3JcLXVwcGVyc1wtb2ZcLXNob2VzXC10b1wtc3RyZXRjaFwtYVwtc2tpblwtb25cLWFcLWZyYW1lXC1mb3JcLWFcLWRydW07Civklb0gPiB0aGVcLXJob2RvZGVuZHJvblwtXC1cLVwtaXRcLWlzXC1zYWlkXC10b1wtY2F1c2VcLXNoZWVwXC10b1wtc3RhZ2dlclwtYW5kXC1kaWU7Civpg5wgPiBuYW1lXC1vZlwtZmllZlwtaW5cLXNoYW50b25nXC1iZXN0b3dlZFwtb25cLXRoZVwtZWxkZXN0XC1zb25cLW9mXC13ZW5cLXdhbmc7Civkjb8gPiBhXC1raW5kXC1vZlwtZGFuY2VcLWFjY29tcGFuaWVkXC1ieVwtbXVzaWNcLXBlcmZvcm1lZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5IyeID4gYVwta25vdFwtdG9cLWhhbmdcLXRoZVwtYXBwYXJhdHVzXC1tYWRlXC1vZlwtcmVlZFwtZm9yXC1yYWlzaW5nXC1zaWxrd29ybXM7Civkh4kgPiBjYXBhY2l0eVwtdW5pdFwtaW5cLWZyYW5jZVwtZXF1YWxcLXRvXC1vbmVcLWh1bmRyZWRcLXRpbWVzXC1vZlwtb25lXC1saXRyZTsKK+O9iCA+IGFcLWxhcmdlXC1lYXJ0aGVud2FyZVwtamFyXC13aXRoXC1hXC1zbWFsbFwtbW91dGhcLWFuZFwtdHdvXC1vclwtZm91clwtZWFyczsKK+O5kCA+IHRvXC10b3dcLWFcLWJvYXRcLWFnYWluc3RcLXRoZVwtY3VycmVudFwtaW5cLXN3aWZ0XC1zdHJlYW1cLWZyb21cLXRoZVwtYmFuazsKK+ayhSA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXdlc3Rlcm5cLWh1bmFuXC10aGF0XC1mbG93c1wtaW50b1wtZG9uZ3RpbmdcLWxha2U7CivnsIsgPiBhXC1zcXVhcmVcLWJhc2tldFwtb2ZcLWJhbWJvb1wtZm9yXC1ob2xkaW5nXC1ncmFpblwtdXNlZFwtYXRcLXNhY3JpZmljZXM7Civpt7QgPiBzaWx2ZXJcLXBoZWFzYW50XC1iYWRnZVwtd29yblwtYnlcLWNpdmlsXC1vZmZpY2lhbHNcLW9mXC10aGVcLTV0aFwtZ3JhZGU7Civon5UgPiBhXC1zcGVjaWVzXC1vZlwtdG9ydG9pc2VcLWZvdW5kXC1uZWFyXC10aGVcLW1vdXRoXC1vZlwtdGhlXC15ZWxsb3dcLXJpdmVyOwor46yGID4gcG9zdGh1bW91c1wtdGl0bGVcLWNvbmZlcnJlZFwtdXBvblwtZW1wZXJvcnNcLWFuZFwtZW1pbmVudFwtb2ZmaWNpYWxzOwor45SzID4gYVwtc3F1YXJlXC1iYXNrZXRcLW9mXC1iYW1ib29cLWZvclwtaG9sZGluZ1wtZ3JhaW5cLXVzZWRcLWF0XC1zYWNyaWZpY2VzOwor6Z6dID4gdGhlXC1waWVjZVwtb2ZcLWxlYXRoZXJcLXVzZWRcLWZvclwtc29sZXNcLW9uXC1jaGluZXNlXC1zaG9lc1wuXC1hXC1wYXRjaDsKK+iUmyA+IGFcLXNtYWxsXC1vcmNoaWRcLWxpa2VcLXBsYW50XC1pdFwtYmVhcnNcLXdoaXRlXC1mbG93ZXJzXC1hXC1kZW5kcm9iaXVtOwor5LCZID4gYW5cLWFuY2llbnRcLXVuaXRcLW9mXC1jYXBhY2l0eVwtd2l0aFwtdGhyZWVcLWZlZXRcLWFuZFwtYVwtYmlnXC1vcGVuaW5nOwor5JS5ID4gYVwtZnVuZ3VzXC13aGljaFwtZ3Jvd3NcLW9uXC1yb3R0ZW5cLXBsYW50c1wtYW5kXC1pc1wtZWF0ZW5cLXdoZW5cLWZyZXNoOwor46+jID4gYVwta2luZFwtb2ZcLWZyYWdyYW50XC10cmVlXC11c2VkXC10b1wtcHJvZHVjZVwtcGVyZnVtZVwtYnlcLWJ1cm5pbmdcLWl0Owor46+hID4gdG9cLWxhY3F1ZXJcLXNvbWVcLWtpbmRcLW9mXC1hc2hlc1wtb25cLXdvb2RlblwtYXJ0aWNhbHNcLW9yXC1mdXJuaXR1cmU7Civls4sgPiByYW5nZXNcLW9mXC1oaWxsc1wtc3RyZXRjaGluZ1wtb25cLWJleW9uZFwtYW5vdGhlclwtaXJyZWd1bGFyXC1wZWFrczsKK+atgyA+IHNtZWFyXC1vbmUnJ3NcLW1vdXRoXC13aXRoXC1ibG9vZFwtb2ZcLWFcLXZpY3RpbVwtd2hlblwtdGFraW5nXC1hblwtb2F0aDsKK+e+lyA+IHRyaWJlc1wtaW5cLXdlc3RcLWNoaW5hXC1zdHJvbmdcLlwtZWR1Y2F0ZWRcLlwtb2JzdGluYXRlXC5cLWFcLXBhcnRpY2xlOwor5LijID4gYW5jaWVudFwtZm9ybVwtb2ZcLXRoZVwtdGVudGhcLW9mXC10aGVcLXR3ZWx2ZVwtdGVycmVzdHJpYWxcLWJyYW5jaGVzOwor5KGFID4gc29tZXRoaW5nXC11c2VkXC10b1wtYmluZFwtdGhlXC1mcmFtZVwtd29ya1wtaW5cLWFcLWNhcnRcLW9mXC1vbGRcLXRpbWVzOwor5JqoID4gYVwtc3RyaW5nXC1mYXN0ZW5lZFwtdG9cLWFuXC1hcnJvd1wtdG9cLWRyYXdcLWl0XC1iYWNrXC1hZnRlclwtc2hvb3Rpbmc7CivkjqAgPiB0b1wtdHdpc3RcLW9yXC10b1wtY3J1bXBsZVwtYmV0d2VlblwtaGFuZHNcLWFuZFwtbWFrZVwtc29tZXRoaW5nXC10dXJuOwor45+5ID4gdGhlXC1hcHBlYXJhbmNlXC1vZlwtYVwtbW91bnRhaW5cLWlzXC1sb2Z0eVwtYW5kXC1zdGVlcFwtYW5kXC1wcm9mb3VuZDsKK+OduCA+IGFcLWNvbmljYWxcLWNhcFwtd29yblwtb25cLWNlcmVtb25pb3VzXC1vY2Nhc2lvbnNcLWluXC1hbmNpZW50XC10aW1lczsKK+OZqCA+IHRoZVwtcm95YWxcLWRvbWFpbnNcLXNldFwtYXBhcnRcLWluXC1hbmNpZW50XC10aW1lc1wtZm9yXC10aGVcLWVtcGVyb3I7CivooakgPiB0aGVcLW9wZW5cLXNlYW1cLW9mXC1hXC1nYXJtZW50XC13aGljaFwtYWxsb3dzXC1mcmVlZG9tXC1vZlwtbW92ZW1lbnQ7CivlsbogPiBhXC1oaWxsXC13aXRoXC10cmVlc1wtb3JcLWdyYXNzXC1cLVwtc29tZVwtZ2l2ZVwtdGhlXC1vcHBvc2l0ZVwtbWVhbmluZzsKK+S2piA+IHVwcGVyXC1hbmRcLWxvd2VyXC10ZWV0aFwtaW5cLW9yZGVyXC1hbmRcLWNvcnJlc3BvbmRpbmdcLWVhY2hcLW90aGVyOwor5KeCID4gdG9cLXR1cm5cLW92ZXJcLXRoZVwtY2xvZFwtb2ZcLXRoZVwtZWFydGhcLXdpdGhcLWFcLXNob3ZlbFwtb3JcLWFcLXNwYWRlOwor5ZmeID4gdGhlXC1tb3ZlbWVudFwtb2ZcLWFcLWZpc2gnJ3NcLW1vdXRoXC1hdFwtdGhlXC1zdXJmYWNlXC1vZlwtdGhlXC13YXRlcjsKK+WUtSA+IHVzZWRcLWluXC1idWRkaGlzdFwtdGV4dHNcLXRvXC10cmFuc2xpdGVyYXRlXC1ub25cLWNoaW5lc2VcLXNvdW5kczsKK+SggiA+IG5hbWVcLW9mXC1hXC1wb3dlcmZ1bFwtZmV1ZGFsXC1zdGF0ZVwtd2hpY2hcLWV4aXN0ZWRcLTc0MFwtMzMwXC1iXC5jXC47CivklrYgPiB0b1wtcmFpc2VcLXVwXC10aGVcLW5vc2VcLWluXC1vcmRlclwtdG9cLWdldFwtdGhlXC1idWdzXC1pblwtdGhlXC1lYXJ0aDsKK+SEmyA+IHNlcnZpY2VcLW9yXC1yaXRlc1wtb2ZcLW9mZmVyaW5nXC1zYWNyaWZpY2VzXC1mb3JcLWRyaW5rXC1hbmRcLWZvb2Q7CivjvLAgPiBhblwtZWFydGhlbndhcmVcLWphclwtd2l0aFwtYVwtc21hbGxcLW1vdXRoXC1hbmRcLXR3b1wtb3JcLWZvdXJcLWVhcnM7CivjuJYgPiBoaWRlXC1vclwtdG9cLWtlZXBcLWluXC1zdG9yZVwtdGhlXC12ZWdldGFibGVcLWluXC1jb2xkXC13aW50ZXJcLWRheXM7Civjt58gPiB0b1wtc2NhbGRcLXRoZVwtYnJpc3RsZXNcLW9mZlwtYVwtcGlnXC1vclwtdGhlXC1mZWF0aGVyc1wtb2ZmXC1hXC1iaXJkOwor47CHID4gdGhlXC1zcXVhcmVcLXBlY2tcLXNoYXBlZFwtYm94XC1oYWxmXC13YXlcLXVwXC1hXC1jaGluZXNlXC1mbGFnc3RhZmY7Civjrp4gPiB0aGVcLXNxdWFyZVwtcGVja1wtc2hhcGVkXC1ib3hcLWhhbGZcLXdheVwtdXBcLWFcLWNoaW5lc2VcLWZsYWdzdGFmZjsKK+OmvCA+IGFcLXdvb2RlblwtcGlsZXNcLXVzZWRcLWFzXC1hXC1jYWJsZVwtdG9cLW1ha2VcLWltbW92YWJsZVwtb2ZcLWFcLWJvYXQ7CivjoqcgPiBhXC1ib29rXC1vclwtcGFpbnRpbmdcLXdoaWNoXC1jYW5cLWJlXC1lYXNpbHlcLWZvbGRlZFwtb3JcLXJvbGxlZFwtdXA7CivpkrIgPiBraW5kXC1vZlwtZ29uZ1wtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzXC1ieVwtdHJvb3BzXC1vblwtdGhlXC1tYXJjaDsKK+mJpiA+IGtpbmRcLW9mXC1nb25nXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXNcLWJ5XC10cm9vcHNcLW9uXC10aGVcLW1hcmNoOwor5KqzID4gc2xhbnRlZFwtZmFjZVwtY2F1c2luZ1wtYnlcLXRoZVwtcGFyYWx5emVkXC1vZlwtdGhlXC1mYWNpYWxcLW5lcnZlOwor5J6LID4gdG9cLWRvXC1hbG1zXC1mb3JcLXRoZVwtYnVkZGhpc3RcLXByaWVzdHNcLW9yXC1tb25rc1wtaW5cLW9sZFwtdGltZXM7CivkmYYgPiBzbGl0c1wtb25cLXRoZVwtbG93ZXJcLXBhcnRcLW9mXC1hXC1nb3duXC1mb3JcLWZyZWVkb21cLW9mXC1tb3ZlbWVudDsKK+SAjyA+IHRvXC1tb3ZlXC1vbmUnJ3NcLWV5ZXNcLXRvXC1leHByZXNzXC1vclwtaW5kaWNhdGVcLXdpdGhcLWV5ZXNcLWRpenp5Owor47+EID4gdGhlXC1ncm9hbnNcLW9yXC1tb2Fuc1wtZnJvbVwtYVwtcGVyc29uXC1pblwtYVwtY3JpdGljYWxcLWNvbmRpdGlvbjsKK+O2jyA+IGFuXC1hbmNpZW50XC1uYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1oZW5hblwtcHJvdmluY2VcLWRlbmdmZW5neGlhbjsKK+OzhyA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1qaWFuZ3N1XC1wcm92aW5jZVwteWl4aW5nXC1jb3VudHk7Civjq4sgPiBhXC1zaWxrZW5cLWJhbm5lclwtaGFuZ2luZ1wtZnJvbVwtYVwtc3RhZmZcLWJlbnRcLW92ZXJcLWF0XC10aGVcLXRvcDsKK+eLvSA+IGFcLWxlZ2VuZGFyeVwtYW5pbWFsXC13aXRoXC1zaG9ydFwtZm9yZWxlZ3NcLXdoaWNoXC1yb2RlXC1hXC13b2xmOwor5q2QID4gdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGluZ1wtbm9uXC1jaGluZXNlXC13b3Jkc1wtc3VjaFwtYXNcLWV1cm9wZTsKK+eLiCA+IGFcLWxlZ2VuZGFyeVwtYW5pbWFsXC13aXRoXC1zaG9ydFwtZm9yZWxlZ3NcLXdoaWNoXC1yb2RlXC1hXC13b2xmOwor5rGoID4gbWlcLXJpdmVyXC1pblwtaHVuYW5cLXByb3ZpbmNlXC13aGVyZVwtcXVcLXl1YW5cLWRyb3duZWRcLWhpbXNlbGY7CivmsZwgPiBhXC1zdHJlYW1cLXdoaWNoXC1sZWF2ZXNcLXRoZVwtbWFpblwtYnJhbmNoXC10aGVuXC1sYXRlclwtcmV0dXJuczsKK+ewiCA+IGJhbWJvb1wtbWF0XC11c2VkXC10b1wtcHJvdGVjdFwtY2FycmlhZ2VcLXBhc3NlbmdlcnNcLWZyb21cLWR1c3Q7CivnrrMgPiBiYW1ib29cLW1hdFwtdXNlZFwtdG9cLXByb3RlY3RcLWNhcnJpYWdlXC1wYXNzZW5nZXJzXC1mcm9tXC1kdXN0Owor54i8ID4gYVwtc21hbGxcLXRhYmxlXC1vclwtdGllcmVkXC1zdGFuZFwtZmlsbGVkXC13aXRoXC1tZWF0XC1vZmZlcmluZ3M7Civks5ogPiBhXC1zb3J0XC1vZlwtbmlnaHRpbmdhbGVcLXdoaWNoXC1pc1wtc2FpZFwtdG9cLXNpbmdcLWZvclwtdGhlXC1kYXduOwor5KGCID4gdGhlXC1sb25nXC13b29kZW5cLWJ1bXBlclwtYXRcLXRoZVwtcmVhclwtb2ZcLWFcLWNhcnRcLW9yXC1jYXJyaWFnZTsKK+SDviA+IHRvXC1vZmZlclwtc21hbGxcLXBpZ1wtYXNcLXNhY3JpZmljZVwtd2hlblwtd2Fyc2hpcFwtZ29kXC1vZlwtbGlmZTsKK+O8qiA+IGZyYWdtZW50c1wtb2ZcLWFcLXRpbGVcLWhhdmVuJyd0XC10XC1iZWVuXC1raWxuXC1kcmllZFwtY29tcGxldGVseTsKK+O0liA+IG5hbWVcLW9mXC1hXC1zdHJlYW1cLWluXC1zaGFuZG9uZ1wtcHJvdmluY2VcLXNvdXRod2VzdFwtb2ZcLWppbmFuOwor452JID4gc3BhY2VcLWJldHdlZW5cLXRoZVwtdGhyb25lXC1hbmRcLXRoZVwtcmV0aXJpbmdcLXJvb21cLWJlaGluZFwtaXQ7CivjlqsgPiB1c2VkXC1pblwtbmFtZXNcLWZvclwtbWlub3JpdHlcLWV0aG5pY1wtZ3JvdXBcLWluXC1hbmNpZW50XC1jaGluYTsKK+eCnSA+IHN0aXJcLWZyeVwtb3JcLWJvaWxcLWluXC13YXRlclwtb3JcLW9pbFwtdGhlblwtY29va1wtd2l0aFwtYVwtc2F1Y2U7CivnhpcgPiBzdGlyXC1mcnlcLW9yXC1ib2lsXC1pblwtd2F0ZXJcLW9yXC1vaWxcLXRoZW5cLWNvb2tcLXdpdGhcLWFcLXNhdWNlOwor5byuID4gYVwtY3Jvd3dib3dcLXdoaWNoXC1kaXNjaGFyZ2VkXC1zZXZlcmFsXC1ib2x0c1wtaW5cLXN1Y2Nlc3Npb247CivkqpkgPiBsZWF0aGVyXC13cmFwcGVkXC1jb2xsYXJcLWZvclwtYVwtZHJhZnRcLWFuaW1hbFwtb2ZcLWFcLWNhcnJpYWdlOwor5KqWID4gbGVhdGhlclwtd3JhcHBlZFwtY29sbGFyXC1mb3JcLWFcLWRyYWZ0XC1hbmltYWxcLW9mXC1hXC1jYXJyaWFnZTsKK+SnmiA+IHRoZVwtbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdGhlXC1zb3V0aFwtd2VzdFwtb2ZcLWhlYmVpXC1wcm92aW5jZTsKK+ShniA+IGxlYXRoZXJcLXRoYXRcLXdpbmRcLXJvdW5kXC1vblwtdGhlXC1zaGFmdHNcLW9mXC1hXC1iaWdcLWNhcnJpYWdlOwor5I2cID4gYVwtYmFza2V0XC1vclwtYVwtY2FnZVwtdXNlZFwtdG9cLWtlZXBcLXdpbGRcLWFuZFwtZG9tZXN0aWNcLWZvd2xzOwor5IeGID4gY2FwYWNpdHlcLXVuaXRcLWluXC1mcmFuY2VcLWVxdWFsXC10b1wtdGVuXC10aW1lc1wtb2ZcLW9uZVwtbGl0cmU7CivkgoUgPiB0b1wtaGF2ZVwtaW5zaWdodFwtb3JcLXZpc2lvblwtb2ZcLWFcLXNpbXBsZVwtYW5kXC1ob25lc3RcLXBlcnNvbjsKK+OyvSA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXRvZGF5JydzXC1zb3V0aHdlc3RcLW9mXC1zaGFueGlcLXByb3ZpbmNlOwor466QID4gYVwtcmFja1wtb3JcLWFcLXN0YW5kXC13aXRoXC10aHJlZVwtc3RpY2tzXC10b1wtY3Jvc3NcLWVhY2hcLW90aGVyOwor46y4ID4gYVwta2luZFwtb2ZcLXNlcnZpY2VzXC1vclwtY2VyZW1vbmllc1wtb2ZcLW9mZmVyaW5nXC1zYWNyaWZpY2VzOwor6YOMID4gbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1oc2llblwtaW5cLW1vZGVyblwtZ2Fuc3VcL3NoYWFueGlcLWFyZWFcLjsKK+iAsCA+IHRvb3RobGVzc1wtcmFrZVwtZm9yXC1kcmF3aW5nXC1lYXJ0aFwtb3ZlclwtbmV3bHlcLXNvd25cLWdyYWluOwor55CAID4gZ2Vtc1wtb2ZcLXBlYXJsc1wtZm9ybWVybHlcLXB1dFwtaW50b1wtdGhlXC1tb3V0aFwtb2ZcLWFcLWNvcnBzZTsKK+SqgyA+IHdpbmVcLWNvbnRhaW5lclwtdXNlZFwtYnlcLW1pbm9yaXR5XC10cmliZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KW3ID4gYVwtaGluZ2VkXC1zaGVhclwtb3JcLWxvbmdcLWtuaWZlXC1mb3JcLWN1dHRpbmdcLWZvZGRlclwtb3JcLWhheTsKK+SkqSA+IGFuXC1vcm5hbWVudFwtYXRcLXRoZVwtZW5kXC1vZlwtYVwtYmVsdFwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5J2qID4gdG9cLXByb3ZpZGVcLW1vbmV5XC1vclwtZ2lmdFwtYW5kXC10b1wtY29uc3VsdFwtZm9ydHVuZVwtdGVsbGVyOwor5JmbID4gY2VyZW1vbmlhbFwtZHJlc3NcLW9mXC10aGVcLWVtcGVyb3JcLW9yXC12ZXJ5XC1oaWdoXC1vZmZpY2lhbHM7CivkmKYgPiBhXC1raW5kXC1vZlwtaGVhZFwtZHJlc3NcLXdvcmVcLWluXC1mdW5lcmFsXC1yaXRlc1wtaW5cLW9sZFwtZGF5czsKK+SYnyA+IGtpbmRcLW9mXC1zaWxrXC13b3Zlblwtd2l0aFwtZG91YmxlXC10aHJlYWRzXC1hbmRcLXdhdGVyXC1wcm9vZjsKK+SUkSA+IGFcLXdoaXRlXC1jb2xvcmVkXC1jbHVzdGVyXC1ncm93blwtYXRcLXRoZVwtdGlwXC1vZlwtY29nb25ncmFzczsKK+SJsiA+IHRoaW5cLWFuZFwtZmxhdFwtc2xpcHNcLW9mXC1iYW1ib29cLXVzZWRcLWZvclwtd2VhdmluZ1wtcHVycG9zZTsKK+O8vSA+IGZyYWdtZW50c1wtb2ZcLWFcLXRpbGVcLWhhdmVuJyd0XC1iZWVuXC1raWxuXC1kcmllZFwtY29tcGxldGVseTsKK+O2gSA+IGFmdGVyXC1ibG9ja2luZ1wtdGhlXC13YXRlclwtZmxvd1wtdGFrZXNcLWRpZmZlcmVudFwtd2F0ZXJ3YXk7Civjr4AgPiBib25kc1wtYW5kXC1mZXR0ZXJzXC1mb3JcLWZhbGNvbnNcLWFuZFwtZG9nc1wtdXNlZFwtaW5cLWh1bnRpbmc7Civjkr4gPiBhXC1raW5kXC1vZlwtd3JhcHBlclwtdXNlZFwtdG9cLWNvdmVyXC1vdmVyXC10aGVcLWZhY2VcLWFuZFwtaGVhZDsKK+igsiA+IHRoZVwtbWlsbGlwZWRlXC1zb21ldGltZXNcLWNvbmZvdW5kZWRcLXdpdGhcLXRoZVwtZ3Jvd1wtd29ybTsKK+iYpyA+IGFcLXBsYW50XC13aGljaFwtcmVzZW1ibGVzXC13aGVhdFwtYnV0XC1oYXNcLW5vXC1lZGlibGVcLWdyYWluOwor5KG0ID4gY2FycmlhZ2VcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lc1wtdG9cLXRha2VcLWVuZW15XC1wb3NpdGlvbjsKK+SfuiA+IHdhbGtcLXNsb3dseVwtYmVjYXVzZVwtb2ZcLXRoZVwtd3JvbmdcLXBvc2l0aW9uXC1vZlwtdGhlXC1mZWV0Owor5ImjID4gc2xpcHNcLW9mXC1iYW1ib29cLXByb3ZpZGVkXC1mb3JcLXdyaXRpbmdcLWluXC1hbmNpZW50XC10aW1lczsKK+SBuSA+IHRvXC1sb29rXC1hc2thbmNlXC1cLVwtXC1hXC1leHByZXNzaW9uXC1vZlwtZGlzZGFpblwtb3JcLWRlc3Bpc2U7CivjvIwgPiBsb3RcLW9mXC1tZWxvbnNcLWdyb3dpbmdcLWJ1dFwtdGhlXC1yb290XC1pc1wtd2Vha1wtYW5kXC1mZWVibGU7Civju6AgPiBqYWRlXC1oYW5naW5nXC1vblwtdGhlXC1zaWRlc1wtb2ZcLXRoZVwtY2FwXC1pblwtYW5jaWVudFwtdGltZXM7CivjrqMgPiBhXC1waWVjZVwtb2ZcLXdvb2RcLXVzZWRcLXRvXC1zdHJpa2VcLW9mZlwtZ3JhaW5cLWluXC1hXC1tZWFzdXJlOwor45OkID4gdG9cLXN0cmlwXC10aGVcLXNraW5cLW9mXC10aGVcLWZhY2VcLVwtXC1cLWFuXC1pbW1pbmVudFwtY2FsYW1pdHk7CivnoIAgPiBicmlsbGlhbnRseVwtY29sb3JlZFwtc3RvbmVcLXdpdGhcLXZlaW5lZFwtcGF0dGVybnNcLWluXC1pdDsKK+iZkiA+IGFuXC1hbXBoaWJpb3VzXC1iZWFzdFwtcmVzZW1ibGluZ1wtYVwtdGlnZXJcLXdpdGhcLW9uZVwtaG9ybjsKK+etgSA+IGFcLWJhbWJvb1wtZnJhbWVcLW9uXC13aGljaFwtc2lsa3dvcm1zXC1zcGluXC10aGVpclwtY29jb29uczsKK+eirSA+IGJyaWxsaWFudGx5XC1jb2xvcmVkXC1zdG9uZVwtd2l0aFwtdmVpbmVkXC1wYXR0ZXJuc1wtaW5cLWl0Owor5YaLID4gYVwtZGVzZXJ0XC1hXC1ib3JkZXJcLXByYWlyaWVcLXRoZVwtMXN0XC1mb3JtXC1pc1wtcmFkaWNhbFwtMTM7CivktLcgPiB1c2VcLXRoZVwtd2hvbGVcLXBpZWNlXC1vZlwtYmFybGV5XC10b1wtZmVybWVudFwtZm9yXC1icmV3aW5nOwor5K2eID4gYVwta2luZFwtb2ZcLXNhY3JpZmljZXNcLW9mZmVyZWRcLXRvXC1nb2RzXC1vclwtdGhlXC1kZWNlYXNlZDsKK+SnoCA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXdoYXRcLWlzXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlOwor5JGpID4gYVwta2luZFwtb2ZcLWlubGFuZFwtcml2ZXJzXC13YXJzaGlwXC11c2VkXC1pblwtcWluZ1wtZHluYXN0eTsKK+SNuCA+IGFcLWxlZ2VuZGFyeVwtZ29hdFwtbGlrZVwtYW5pbWFsXC13aXRoXC00XC1lYXJzXC1hbmRcLTlcLXRhaWxzOwor5I2rID4gYVwtbGVnZW5kYXJ5XC1nb2F0XC1saWtlXC1hbmltYWxcLXdpdGhcLTRcLWVhcnNcLWFuZFwtOVwtdGFpbHM7Civkg6sgPiBhXC1zaWxpY2F0ZVwtc3Vic3RhbmNlXC1mcm9tXC10aGVcLXNhbHRcLXdlbGxzXC1pblwtc3plY2h3YW47CivjuJwgPiB0b1wtZ2V0XC10aHJvdWdoXC10aGVcLXNwYWNlXC1lbmNsb3NlZFwtYnlcLWFcLWNvbnN0ZWxsYXRpb247Civjt60gPiBhXC1jb25pY2FsXC1icmlja1wtc3RydWN0dXJlXC1pblwtd2hpY2hcLXRvXC1saWdodFwtYVwtYmVhY29uOwor47a7ID4gYVwtY29uaWNhbFwtYnJpY2tcLXN0cnVjdHVyZVwtaW5cLXdoaWNoXC10b1wtbGlnaHRcLWFcLWJlYWNvbjsKK+eUviA+IGdyb3VuZFwtdGhhdFwtaGFzXC1iZWVuXC11bmRlclwtY3VsdGl2YXRpb25cLWZvclwtb25lXC15ZWFyOwor56ahID4gYVwtc2FjcmlmaWNlXC1hdFwtdGhlXC1iZWdpbm5pbmdcLW9mXC1hXC1taWxpdGFyeVwtY2FtcGFpZ247CivnpK4gPiBhbmNpZW50XC1iYWxsaXN0YVwtZm9yXC10aHJvd2luZ1wtaGVhdnlcLXN0b25lc1wtYVwtY2Fubm9uOwor56SfID4gYW5jaWVudFwtYmFsbGlzdGFcLWZvclwtdGhyb3dpbmdcLWhlYXZ5XC1zdG9uZXNcLWFcLWNhbm5vbjsKK+SvoCA+IHRoZVwtZml2ZVwtbG93ZXN0XC1waWVjZXNcLW9mXC1ib25lXC1vZlwtdGhlXC1zcGluYWxcLWNvbHVtbjsKK+SvmSA+IHRoZVwtZml2ZVwtbG93ZXN0XC1waWVjZXNcLW9mXC1ib25lXC1vZlwtdGhlXC1zcGluYWxcLWNvbHVtbjsKK+SspiA+IGZvb2RcLWl0ZW1zXC1tZXJlbHlcLWFycmFuZ2VkXC1mb3JcLWRpc3BsYXlcLXB1cnBvc2VcLW9ubHk7CivkmZEgPiBhXC1waWVjZVwtb2ZcLXNhY2tjbG90aFwtd29yblwtb25cLXRoZVwtYnJlYXN0XC1pblwtbW91cm5pbmc7CivkiLEgPiBhblwtb3BlblwtYmFtYm9vXC1iYXNrZXRcLXVzZWRcLXRvXC1mZWVkXC1kb21lc3RpY1wtYW5pbWFsczsKK+OqtSA+IGhhbGZcLW9mXC1hXC11bml0XC1vZlwtbWVhc3VyZW1lbnRcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+OhiCA+IHRoZVwtcm9wZXNcLWF0dGFjaGVkXC10b1wtdGhlXC1iaWVyXC1hbmRcLWhlbGRcLWJ5XC1tb3VybmVyczsKK+OapCA+IGFcLWxhZHlcLW9mZmljZXJcLW9mXC10aGVcLW1vbmFyY2gnJ3NcLXBhbGFjZVwtaW5cLW9sZFwtdGltZXM7CivlkYAgPiBwYXJ0aWNsZVwtdXNlZFwtdG9cLWV4cHJlc3NcLXN1cnByaXNlXC1vclwtbWlsZFwtZW1waGFzaXM7CivpnbcgPiB0aGVcLWxlYXRoZXJcLWJlbHRcLXRoYXRcLWNvbm5lY3RzXC1hXC1ob3JzZVwtd2l0aFwtYVwtY2FydDsKK+itvCA+IHRvXC1zdXBlcnZpc2VcLXRvXC1jb25maW5lXC1hXC1nb3Zlcm5tZW50XC1lc3RhYmxpc2htZW50Owor5Z2rID4gYVwtc3RhbmRcLW9uXC13aGljaFwtdG9cLXJlcGxhY2VcLWdvYmxldHNcLWFmdGVyXC1kcmlua2luZzsKK+S0vSA+IGFcLXNtYWxsXC1yb3VuZFwtcGllY2VcLW9mXC1kaXN0aWxsZXInJ3NcLWdyYWluc1wtb3JcLXllYXN0Owor5LCOID4gdG9cLXR3aXN0XC10aGVcLWhhaXJcLWluXC1hXC1rbm90XC1vblwtdGhlXC10b3BcLW9mXC10aGVcLWhlYWQ7Civkqp0gPiBsZWF0aGVyXC1jb3JkXC10aGF0XC13aW5kaW5nXC1vblwtdGhlXC1oYW5kbGVcLW9mXC1hXC1rbmlmZTsKK+ShhyA+IHRoZVwtY3Jvc3NcLWJhclwtYXRcLXRoZVwtZW5kXC1vZlwtdGhlXC1wb2xlXC1vZlwtYVwtY2FycmlhZ2U7CivknoAgPiB0b1wtZGVzaXJlXC1mb3JcLW1vcmVcLW1vbmV5XC10aGFuXC1vbmUnJ3NcLXJpZ2h0ZnVsXC1zaGFyZTsKK+SYrSA+IHRoZVwtcGxlYXRlc1wtb25cLXRoZVwtbGFwZWxcLW9mXC1hXC1nYXJtZW50XC1vZlwtdGhpblwtc2lsazsKK+SQiCA+IGFcLXBpZWNlXC1vZlwtb25lXC1mb290XC10d29cLWluY2hlc1wtZHJpZWRcLXNlYXNvbmVkXC1tZWF0Owor5I2FID4gY29udGFpbmVyc1wtZm9yXC13YXRlclwtb3JcLXdpbmVcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SLviA+IGNvdHRvblwtYW5kXC1zaWxrXC10b1wtYmVcLWxhaWRcLWFuZFwtYXR0YWNoZWRcLWVhY2hcLW90aGVyOwor5ImQID4gYVwtdGhpblwtYW5kXC1sb25nXC1zdHJpcFwtb2ZcLWJhbWJvb1wtZm9yXC1tYWtpbmdcLWJhc2tldHM7CivkiLsgPiBhXC1oZWF2eVwtbWF0c1wtb2ZcLWJhbWJvb1wtdXNlZFwtZm9yXC1kZWVwXC13YXRlclwtZmlzaGluZzsKK+SHoCA+IHdyZW5jaFwtdG9cLWFkanVzdFwtdGhlXC1zdHJpbmdcLW9uXC1zdHJpbmdlZFwtaW5zdHJ1bWVudDsKK+SEjCA+IHRvXC1wZXJmb3JtXC1yaXRpZXNcLWluXC1ob25vclwtb2ZcLXRoZVwtYW5jZXN0cmFsXC10ZW1wbGU7Civkg6YgPiBhXC1mbGF0XC1hbmRcLWdyZWF0XC1yb2NrXC1wZW9wbGVcLXNxdWF0XC1vclwtY3JvdWNoXC1vblwtaXQ7Civju4AgPiBmaW5lXC1zdG9uZVwtd2hpY2hcLWlzXC1saXR0bGVcLWxlc3NcLXZhbHVhYmxlXC10aGFuXC1qYWRlOwor47KsID4gaGFpclwtZGVjb3JhdGlvbnNcLW9uXC1hXC1oZWxtZXRcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+OxryA+IGdldFwtdGhlXC11bmJvcm5cLWJhYnlcLWdvYXRcLWJ5XC1raWxsbmdcLXRoZVwtbW90aGVyXC1nb2F0Owor466wID4gdGhlXC1zbWFsbFwtYmVhbVwtc3VwcG9ydGluZ1wtdGhlXC1yYWZ0ZXJzXC1hdFwtdGhlXC1lYXZlczsKK+OqtiA+IGFcLWRyeVwtbWVhc3VyZVwtMTBcLW9yXC01XC10aW1lc1wtdGhhdFwtb2ZcLWFcLWNoaW5lc2VcLXBlY2s7Civjn5cgPiBuYW1lXC1vZlwtYVwtc21hbGxcLXByaW5jaXBhbGl0eVwtaW5cLXdoYXRcLWlzXC1ub3dcLXNoYW54aTsKK+S8vSA+IHRyYW5zY3JpcHRpb25cLW9mXC1zYW5za3JpdFwtJydnaGEnJ1wtaW5cLWJ1ZGRoaXN0XC10ZXh0czsKK+WxoyA+IHN0cmF3XC1zYW5kYWxzXC1vclwtc2xpcHBlcnNcLXRoYXRcLWhhdmVcLW5vXC1oZWVsXC1iYWNrczsKK+a8jiA+IGFcLXBsYWNlXC13aGVyZVwtc21hbGxcLXN0cmVhbXNcLWZsb3dcLWludG9cLWFcLWxhcmdlXC1vbmU7Civmqr4gPiBncmFzc3lcLXBsYW50XC13aXRoXC1maWJyZXNcLWZyb21cLXdoaWNoXC1jbG90aFwtaXNcLW1hZGU7CivksIwgPiB0b1wtYmluZFwtdGhlXC1oYWlyXC1pblwtYVwta25vdFwtb25cLXRoZVwtdG9wXC1vZlwtdGhlXC1oZWFkOwor5Km1ID4gdGFubmVyXC13aG9cLW1hZGVcLXRoZVwtbGVhdGhlclwtZHJ1bVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5JqZID4gYVwtc3Bvb25cLWZvclwtY29va2VkXC1yaWNlXC1tYWRlXC1vZlwtaG9yblwtb2ZcLWFuXC1hbmltYWw7CivkjLMgPiBhXC1raW5kXC1vZlwtdW5yZWZpbmVkXC1vclwtdW5wb2xpc2hlZFwtc2lsa2VuXC10ZXh0aWxlczsKK+SMpCA+IGFcLWtpbmRcLW9mXC11bnJlZmluZWRcLW9yXC11bnBvbGlzaGVkXC1zaWxrZW5cLXRleHRpbGVzOwor5Iq6ID4gYW5cLWltcGxlbWVudFwtdG9cLWRyYXdcLW9yXC10b1wtY29sbGVjdFwtcm9wZXNcLW9yXC1jb3JkczsKK+SJgyA+IHNsaXBlZFwtb3BlblwtYmFtYm9vXC13aXRoXC10aGVcLWpvaW50c1wtdXNlZFwtYXNcLWFuXC1vYXI7CivkiYAgPiByZWN0YW5ndWxhclwtY2hlc3RcLW9yXC1ib3hcLXdvdmVuXC1mcm9tXC1iYW1ib29cLXN0cmlwczsKK+SEiyA+IHRvXC1wcmF5XC1mb3JcLXByZXZlbnRpbmdcLW9yXC1mb3Jlc3RhbGxpbmdcLWNhbGFtaXRpZXM7Civkg64gPiBhXC1zdG9uZVwtYnVpbGRcLWh5ZHJhdWxpY1wtbWVhc3VyZXNcLWluXC1hbmNpZW50XC10aW1lczsKK+O+vyA+IHJvYXJcLW9mXC1hc3RobWFcLW9yXC1leHBlY3RvcmF0ZVwtZnJvbVwtYVwtZHlpbmdcLXBlcnNvbjsKK+O7qCA+IGluZVwtc3RvbmVcLXdoaWNoXC1pc1wtbGl0dGxlXC1sZXNzXC12YWx1YWJsZVwtdGhhblwtamFkZTsKK+O6kCA+IGdlbmVyYWxseVwtY2FsbGVkXC1mb3JcLW1pbm9yaXR5XC1ncm91cHNcLWluXC1vbGRcLWNoaW5hOwor46+CID4gcGlsbGFyXC1vclwtcG9zdFwtb2ZcLWFcLWZyYW1lXC1vblwtd2hpY2hcLXNpbGt3b3Jtc1wtc3BpbjsKK+OfiyA+IGRlZXBcLWFuZFwtbGV2ZWxcLWdyb3VuZFwtZ3VsbHlcLWF0XC10aGVcLWZvb3RcLW9mXC1hXC1oaWxsOwor456qID4gdGhlXC1hcHBlYXJhbmNlXC1vZlwtdGhlXC1tb3VudGFpblwtaXNcLWZsYXRcLWFuZFwtc21vb3RoOwor6KGFID4gY29uc2VjcmF0ZVwtc2FjcmlmaWNpYWxcLXZlc3NlbHNcLWJ5XC1zbWVhcmluZ1wtYmxvb2Q7CivomaIgPiBuYW1lXC1vZlwtYW5jaWVudFwtZmV1ZGFsXC1zdGF0ZVwtaW5cLXNoZW54aVwtYW5kXC1odW5hbjsKK+m9iSA+IHN0b3BwYWdlXC1vZlwtdGhlXC1ub3NlXC10b1wtc3BlYWtcLXdpdGhcLWFcLW5hc2FsXC10d2FuZzsKK+ikryA+IGNoaWxkcmVuJydzXC1nYXJtZW50c1wuXC1hXC1tYXRcLWZvclwtd3JhcHBpbmdcLWdhcm1lbnRzOwor5qKgID4gYVwtc21hbGxcLWJlYW1cLXN1cHBvcnRpbmdcLXRoZVwtcmFmdGVyc1wtYXRcLXRoZVwtZWF2ZXM7CivmkaMgPiBhXC1oYW5kZnVsXC5cLXRvXC1waWNrXC11cFwtd2l0aFwtdGhlXC1maW5nZXJzXC5cLXRvXC1zZWl6ZTsKK+WgmCA+IGFcLXJhaXNlZFwtcGF0aFwtYmV0d2VlblwtZmllbGRcLXdoaWNoXC1hY3RzXC1hc1wtYVwtZHlrZTsKK+S2nCA+IHRoZVwtcHJvY2Vzc1wtdG9cLXdoaXRlblwtdGhlXC1pdm9yeVwtb3JcLWVsZXBoYW50XC10dXNrOwor5K6JID4gaG9yc2VzXC1rZXB0XC1hdFwtYVwtY291cmllclwtc3RhdGlvblwtaW5cLWZvcm1lclwtdGltZXM7CivkorUgPiBuYW1lXC1vZlwtYW5cLW9sZFwtY291bnRyeVwtaW5cLXRvZGF5JydzXC1odWJlaVwtcHJvdmluY2U7CivkoZ8gPiBhXC1yaW5nXC1vZlwtdGhlXC1ob3Jpem9udGFsXC1mcm9udFwtYmFyXC1vblwtYVwtY2FycmlhZ2U7CivknpsgPiBkYW5jaW5nXC1vZlwtYVwtZWFzdGVyblwtbWlub3JpdHlcLWdyb3VwXC1pblwtb2xkXC1jaGluYTsKK+SdjCA+IGFcLXBpZ1wtc2Vla1wtZm9yXC1mb29kXC10aHJvdWdoXC1kaWdnaW5nXC1vblwtdGhlXC1lYXJ0aDsKK+SSgSA+IGFcLXNtYWxsXC1ib2F0XC1jb25uZWN0ZWRcLXRvXC10aGVcLWJhY2tcLW9mXC1hXC1iaWdcLWJvYXQ7CivkiYsgPiBhXC12YXJpZXR5XC1vZlwtYmFtYm9vXC1zaG9vdHNcLXRoYXRcLXNwcm91dFwtaW5cLXdpbnRlcjsKK+SIlCA+IHdoaXN0bGVcLW1hZGVcLW9mXC1yZWVkXC13aXRob3V0XC1ob2xlc1wtZm9yXC1maW5nZXJpbmc7CivjvZkgPiBvZmZpY2lhbFwtaW5cLWNoYXJnZVwtb2ZcLWZhcm1sYW5kc1wtaW5cLWFuY2llbnRcLXRpbWVzOwor47OOID4gZ3VpZGVcLW9yXC1sZWFkXC10b1wtbWFrZVwtdGhlXC13YXRlclwtZmxvd2luZ1wtc21vb3RobHk7CivjsqogPiB3b29sZW5cLWJsYW5rZXRcLXdpdGhcLWRlY29yYXRpdmVcLWRlc2lnblwtb3JcLXBhdHRlcm47CivjsqggPiBhXC1kZWNvcmF0aXZlXC1maW5lXC1ibGFua2V0XC1vblwtdGhlXC10b3BcLW9mXC1hXC1zYWRkbGU7CivjsqMgPiB3b29sZW5cLWJsYW5rZXRcLXdpdGhcLWRlY29yYXRpdmVcLWRlc2lnblwtb3JcLXBhdHRlcm47CivjspkgPiB3b29sZW5cLWJsYW5rZXRcLXdpdGhcLWRlY29yYXRpdmVcLWRlc2lnblwtb3JcLXBhdHRlcm47Civjp4sgPiB0b1wtbGVuZ3RoZW5cLWFuZFwtZXh0ZW51YXRlXC1cLVwtXC1hc1wtaW5cLW1ha2luZ1wtbm9vZGxlOwor46CcID4geW91bmdcLWtpZHNcLXNtYXJ0XC1hbmRcLWZhbWlsaWFyXC13aXRoXC1odW1hblwtYWZmYWlyczsKK+OZsSA+IGVhcnRoZW53YXJlXC11c2VkXC10b1wtYmFrZVwtY2FrZXNcLWluXC1ub3J0aGVyblwtY2hpbmE7CivlloEgPiB0aGVcLW1vdXRoXC1vZlwtYVwtZmlzaFwtYXRcLXRoZVwtc3VyZmFjZVwtb2ZcLXRoZVwtd2F0ZXI7Civmj44gPiB0b1wtcHVsbFwtdXBcLXRoZVwtc2xlZXZlc1wtYW5kXC1zdHJldGNoXC1vdXRcLXRoZVwtYXJtczsKK+eurCA+IHRoZVwtY3V0aWNsZVwtb2ZcLXRoZVwtYmFtYm9vXC1hXC1icm9hZFwtbGVhdmVkXC1iYW1ib287Civou74gPiBob3Jpem9udGFsXC13b29kZW5cLWJhclwtaW5cLWZyb250XC1vZlwtYVwtc2VkYW5cLWNoYWlyOwor6JCGID4gdGhlXC1jYXN0b3JcLW9pbFwtcGxhbnRcLWFsc29cLXVzZWRcLWZvclwtb3RoZXJcLXBsYW50czsKK+ewoCA+IGFuXC1hbmNpZW50XC12ZXNzZWxcLXVzZWRcLWZvclwtaG9sZGluZ1wtYm9pbGVkXC1ncmFpbjsKK+SysCA+IGFcLXNlY29uZFwtbmFtZVwtZm9yXC10aGVcLXBpZ2Vvblwtb3JcLXRoZVwtdHVydGxlXC1kb3ZlOwor5J2lID4gdG9cLXJvYXJcLW9yXC1ob3dsXC1mcmFudGljXC1iYXJrc1wtb2ZcLWRvZ3NcLW9yXC13b2x2ZXM7CivklKQgPiB0aGVcLWx1c2hcLWFuZFwtbHV4dXJpYW50XC1vZlwtdGhlXC1ncmFzc1wtYW5kXC1mbG93ZXJzOwor46+uID4gYVwta2luZFwtb2ZcLXRyZWVcLXdpdGhcLWJpZ1wtbGVhdmVzXC1hbmRcLWluXC1yZWRcLWNvbG9yOwor45SNID4gYVwtaGluZ2VkXC1zaGVhclwtb3JcLWxvbmdcLWtuaWZlXC1mb3JcLWN1dHRpbmdcLWZvZGRlcjsKK+eSnCA+IGFcLXNlbWljaXJjdWxhclwtamFkZVwtb3JuYW1lbnRcLXVzZWRcLWFzXC1hXC1wZW5kYW50Owor6KusID4gdG9cLW9wZW5cLXRvXC1iZWdpblwtdG9cLWV4cGxhaW5cLXRvXC1pbmZvcm1cLWFcLWxldHRlcjsKK+eMuSA+IHdpbGRcLWFuaW1hbFwtbWVudGlvbmVkXC1pblwtc2hvcnRcLXN0b3J5XC1ieVwtbHVcLXh1bjsKK+eKvCA+IGFcLWZpZXJjZVwtbW9uZ29saWFuXC13b2xmXC1kcmFnb24nJ3NcLWhlYWRcLW9uXC1yb29mczsKK+a5kyA+IGFuXC1hZmZsdWVudFwtb2ZcLXRoZVwtcml2ZXJcLXlhbmd0emVcLW5lYXJcLWtpdWtpYW5nOwor5q2aID4gdXNlZFwtaW5cLW5hbWVcLW9mXC1mYW1vdXNcLWtvcmVhblwtcGFpbnRlclwtY2VuZ1wtc2VuOwor5LabID4gdG9cLXNlcGFyYXRlXC10aGVcLW1lYXRcLWZyb21cLXRoZVwtYm9uZXNcLXdpdGhcLXRlZXRoOwor5LOcID4gYVwta2luZFwtb2ZcLWJpcmRcLXdoaWNoXC1zaGFyZXNcLWl0c1wtbmVzdFwtd2l0aFwtcmF0czsKK+SzhSA+IGFcLWtpbmRcLW9mXC1iaXJkXC13aGljaFwtc2hhcmVzXC1pdHNcLW5lc3RcLXdpdGhcLXJhdHM7Civkso0gPiBhXC1wZXJjaFwtbGlrZVwtZmlzaFwtd2l0aFwtd2hpdGVcLWJvZHlcLWFuZFwtcmVkXC10YWlsOwor5Km2ID4gc2FkZGxlXC1hbmRcLXJlaW5cLWV0Y1wuXC1mb3JcLXRoZVwtaW1wZXJpYWxcLWNhcnJpYWdlOwor5Je9ID4gYVwtc21hbGxcLWdhZGZseVwtdGhhdFwtc3Vja1wtYmxvb2RcLW9mXC1ob3JzZVwtb3JcLWNvdzsKK+SJtCA+IGFcLWJhbWJvb1wtd2FyZVwtdG9cLWNvbGxlY3RcLWFuZFwta2VlcFwtc29tZXRoaW5nXC1pbjsKK+SJhSA+IHNtYWxsXC1iYW1ib29cLXdob3NlXC1qb2ludHNcLWFyZVwtdGhyZWVcLWZlZXRcLWFwYXJ0Owor5IibID4gc21hbGxcLWJhbWJvb1wtd2hvc2VcLWpvaW50c1wtYXJlXC10aHJlZVwtZmVldFwtYXBhcnQ7CivkhKYgPiB0b1wtcHV0XC1mb3J0aFwtZWFyc1wtYW5kXC10b1wtYmxvc3NvbVwtb2ZcLXRoZVwtZ3JhaW5zOwor472pID4gY29ubmVjdGVkXC1iYW5rc1wtb2ZcLWVhcnRoXC1vclwtcGF0aHNcLWluXC10aGVcLWZpZWxkOwor47mDID4gdHdvXC1icmluZGxlZFwtY293c1wtdG9cLXBsb3VnaFwtZmFjZVwtdG9cLWVhY2hcLW90aGVyOwor47afID4gYW5cLWFuY2llbnRcLW5lbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW54aVwtYW5kXC1oZWJlaTsKK+OyiCA+IHRoZVwtbmFtZVwtb2ZcLXRoZVwtbXVzaWNcLW9mXC10aGVcLWxlZ2VuZGFyeVwtZW1wZXJvcjsKK+OskCA+IGFcLXN0YXRlXC1kdXJpbmdcLXRoZVwtcGVyaW9kXC1vZlwtc3ByaW5nXC1hbmRcLWF1dHVtbjsKK+OhmyA+IG5hbWVcLWZvclwtYVwtd29ya21hblwtd2hvXC1hcHBseVwtY29sb3JcLWluXC1wYWludGluZzsKK+OfoiA+IHRoZVwtcm9ja3NcLW9uXC10aGVcLWhpbGxzXC1hcmVcLW9mXC1kaWZmZXJlbnRcLXNoYXBlczsKK+OcvCA+IGNoaWxkcmVuXC1vZlwtb25lJydzXC1icm90aGVyXC1cLVwtXC1uZXBoZXdzXC1vclwtbmllY2VzOwor45S9ID4gYVwta2luZFwtb2ZcLXdpbmVcLXBvdFwtb3JcLWphclwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWU7Civjk4MgPiB0b1wtc2FjcmlmaWNlXC1ieVwtcG91cmluZ1wtb3V0XC1hXC1saWJhdGlvblwtb2ZcLXdpbmU7CivjkZ4gPiBhXC1tYWlkXC13aG9cLWFjY29tcGFuaWVzXC1hXC1icmlkZVwtdG9cLWhlclwtbmV3XC1ob21lOwor55WyID4gdG9cLWN1bHRpdmF0ZVwtbGFuZFwtYnlcLWZpcnN0XC1zZXR0aW5nXC1maXJlXC10b1wtaXQ7Civnr5ogPiByb3VuZFwtb3JcLW92YWxcLWNvdmVyZWRcLWJhc2tldHNcLXdpdGhcLXNob3J0XC1sZWdzOwor57KUID4gY2FrZXNcLW1hZGVcLWZyb21cLXJpY2VcLWZsb3VyXC10d2lzdGVkXC1pbnRvXC1yaW5nczsKK+aIpCA+IHRvXC1pbmZyaW5nZVwtYVwtdHJhZGVcLW1hcmtcLXRvXC1wbGVkZ2VcLWFuXC1hcnRpY2xlOwor5LmkID4gZmlyc3RcLWNoYXJhY3Rlclwtb2ZcLWtvcmVhblwtcGxhY2VcLW5hbWVcLScnaGFscGhvJyc7CivktqggPiBpblwtdGhlXC1tYW5uZXJcLWFcLXRvb3RobGVzc1wtcGVyc29uXC1jaGV3aW5nXC1mb29kOwor5K6bID4gZXh0cmFcLWhvcnNlXC1oYXJuZXNzZWRcLWJ5XC10aGVcLXNpZGVcLW9mXC10aGVcLXRlYW07Civko6AgPiBuYW1lXC1vZlwtYVwtdmlsbGFnZVwtaW5cLXRvZGF5JydzXC1zaWNodWFuXC1wcm92aW5jZTsKK+SjnyA+IG5hbWVcLW9mXC1wYXZpbGlvblwtaW5cLXRvZGF5JydzXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivkoJIgPiBjb3VydGVzeVwtb2ZcLWFcLW1pbm9yaXR5XC1ncm91cFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5J2wID4gdG9cLXN0b3JlXC1vclwtdG9cLWFjY3VtdWxhdGVcLXJpY2hlc1wtb3JcLXZhbHVhYmxlczsKK+ScsSA+IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5JOdID4gY2hpbmVzZVwtcGVubmlzZXR1bVwpXC1wZW5uaXNldHVtXC1hbG9wZWN1cm9pZGVzXCk7Civki4kgPiBhXC1udW1lcmFyeVwtYWRqdW5jdFwtZm9yXC1wcmFjdGljYWxseVwtZXZlcnl0aGluZzsKK+SKoyA+IGxpZ2h0XC15ZWxsb3dcLWR1c3RcLWxpa2VcLWZ1bmdvaWRcLWdyb3d0aFwtb25cLXdpbmU7Civkh5IgPiBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC1wZXJpb2RpY1wtdGVybXNcLW9yXC1ldmVudHM7Civjv5cgPiBkaXNlYXNlXC1vZlwtdGhlXC1wcml2YXRlXC1wYXJ0XC1vZlwtdGhlXC1odW1hblwtYm9keTsKK+O/iSA+IGRpc2Vhc2VcLW9mXC10aGVcLXByaXZhdGVcLXBhcnRcLW9mXC10aGVcLWh1bWFuXC1ib2R5Owor476rID4gaGVtaXBsZWdpYVwtXC1cLVwtcGFyYWx5c2lzXC1vZlwtaGFsZlwtb2ZcLW9uZScnc1wtYm9keTsKK+O7niA+IGZsb3VyaXNoaW5nXC1hbmRcLXJhZGlhbnRcLW9mXC10aGVcLWNvbG9yZnVsXC1qYWRlczsKK+O5sSA+IG5hbWVcLW9mXC1hXC1kb2dcLWluXC10aGVcLXBlcmlvZFwtb2ZcLXdhcnJpbmdcLXN0YXRlczsKK+OypSA+IGFcLWtpbmRcLW9mXC13b29sZW5cLXRleHRpbGVzXC13aXRoXC1jdXJ2ZWRcLXBhdHRlcm47CivjrbkgPiBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtdG9kYXknJ3NcLXNoYW5kb25nXC1wcm92aW5jZTsKK+OjryA+IHRoZVwtZHJlc3Nlc1wtdG9zc1wtYW5kXC1mbHlpbmdcLWFib3V0XC1pblwtdGhlXC13aW5kOwor46KvID4gYm93c1wtdXNlZFwtYnlcLXRoZVwtc29uXC1vZlwtaGVhdmVuXC1cLVwtXC10aGVcLWVtcGVyb3I7CivjoYogPiBhXC1raW5kXC1vZlwtY2FwXC13b3JuXC1ieVwtYW5cLW9mZmljZXJcLWluXC1vbGRcLWNoaW5hOwor45mrID4gYVwtZm91bnRhaW5cLW9yXC1zcHJpbmdcLW91dFwtZnJvbVwtdGhlXC11bmRlcmdyb3VuZDsKK+OZjSA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1ndWFuZ2RvbmdcLXByb3ZpbmNlOwor6ZKnID4gdW5pdFwtb2ZcLW1lYXN1cmVcLWVxdWl2YWxlbnRcLXRvXC10aGlydHlcLWNhdHRpZXM7CivlprIgPiBjb25jdWJpbmVcLW9mXC1sYXN0XC1ydWxlclwtb2ZcLXRoZVwtc2hhbmdcLWR5bmFzdHk7Civnk7QgPiBjb25jYXZlXC1jaGFubmVsc1wtb2ZcLXRpbGluZ1wtYVwtbG9uZ1wtbmVja2VkXC1qYXI7CivlqrUgPiBhXC1tYWlkXC13aG9cLWFjY29tcGFuaWVzXC1icmlkZVwtdG9cLWhlclwtbmV3XC1ob21lOwor6IOZID4gbWVhdFwtb2ZmZXJlZFwtaW5cLXNhY3JpZmljZVwtdG9cLW9uZScnc1wtYW5jZXN0b3JzOwor6J+KID4gYVwtZmx5XC13aGljaFwtaXNcLXVzZWRcLXNpbWlsYXJseVwtdG9cLWNhbnRoYXJpZGVzOwor6aiyID4gdGhlXC1mZW1hbGVcLW9mXC1jZXJ0YWluXC1hbmltYWxzXC1zdWNoXC1hc1wtaG9yc2VzOwor6YieID4gdW5pdFwtb2ZcLW1lYXN1cmVcLWVxdWl2YWxlbnRcLXRvXC10aGlydHlcLWNhdHRpZXM7CivonaUgPiBhXC1mbHlcLXdoaWNoXC1pc1wtdXNlZFwtc2ltaWxhcmx5XC10b1wtY2FudGhhcmlkZXM7Civnj5MgPiB0d29cLWhlbWlzcGhlcmljYWxcLW9iamVjdHNcLXVzZWRcLWluXC1kaXZpbmF0aW9uOwor5pWnID4gdG9cLXBpY2tcLXVwXC10aGluZ1wtd2l0aFwtY2hvcHN0aWNrc1wtb3JcLXBpbmNlcnNcLjsKK+aJhCA+IGxhcmdlXC1yaW5nXC1vblwtYVwtZnJvbnRcLWRvb3JcLXVzZWRcLWFzXC1hXC1rbm9ja2VyOwor5auPID4gdGhlXC1wbGFjZVwtd2hlcmVcLXRoZVwtc3VwcmVtZVwtc3RvcmVzXC1oaXNcLWJvb2tzOwor5LGBID4gYVwta2luZFwtb2ZcLW1lZGl1bVwtc2l6ZWRcLWZpc2hcLWdyb3duXC1pblwtdGhlXC1zZWE7CivksI8gPiBzcGFyc2VcLWhhaXJcLW9uXC1hXC1rbm90XC1vblwtdGhlXC10b3BcLW9mXC10aGVcLWhlYWQ7CivkroYgPiBhXC1ob3JzZVwtd2l0aFwtbWl4ZWRcLWNvbG9yXC1vZlwteWVsbG93XC1hbmRcLXdoaXRlOwor5KmbID4gbGVhdGhlclwtYmVsdFwtdXNlZFwtdG9cLWJpbmRcLW9yXC1yZXN0cmFpblwtYVwtY2FydDsKK+SmuSA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC10b2RheScnc1wtc2ljaHVhblwtcHJvdmluY2U7Civko5QgPiBuYW1lXC1vZlwtYVwtcGF2aWxpb25cLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor5KORID4gbGl2aW5nXC1zcGFjZVwtZm9yXC1vbmVcLWZhbWlseVwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KOEID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLXNoYW5kb25nXC1wcm92aW5jZTsKK+SjgSA+IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7CivkorkgPiBuYW1lXC1vZlwtYVwtcGF2aWxpb25cLWluXC10b2RheScnc1wtaHVuYW5cLXByb3ZpbmNlOwor5KKqID4gYVwtc2xlZGdlXC1mb3JcLXRyYW5zcG9ydGF0aW9uXC1vdmVyXC1tdWRcLW9yXC1zbm93Owor5J+GID4gdG9cLWtlZXBcLXBlcnNvbnNcLW9mZlwtdGhlXC1yb3V0ZVwtb2ZcLXRoZVwtZW1wZXJvcjsKK+SIkCA+IGFuXC1hcmNoZWRcLWZyYW1lXC1tYWRlXC1vZlwtYmFtYm9vXC1vZlwtd29vZFwtYm9hcmQ7Civkhb8gPiBsdXh1cmlhbnRcLW9yXC1leHViZXJhbnRcLW9mXC10aGVcLWdyYWluc1wtZmxvd2VyeTsKK+SDiCA+IG1vdW50YWluXC1yb2Nrc1wtYVwtYmxhY2tcLXN0b25lXC1yZXNlbWJsaW5nXC1qYWRlOwor5IKsID4gYmlnXC1yb2Nrc1wtb25cLXRoZVwtcml2ZXJzaWRlXC1hblwtYXJjaGVkXC1vcGVuaW5nOwor5IGdID4gZGVsdWRpbmdcLWFuZFwtY2F1c2luZ1wtZGlzb3JkZXJcLWxpZ2h0c1wtc2hpbmluZzsKK+O9nyA+IHRvXC10aWxsXC1vclwtdG9cLXBsb3VnaFwtdGhlXC1maWVsZHNcLWFuXC1lbmNsb3N1cmU7CivjroQgPiBwdWJsaWNseVwtcG9zdGVkXC1yb2xsXC1vZlwtc3VjY2Vzc2Z1bFwtZXhhbWluZWVzOwor4624ID4gdGhlXC1icmFuY2hlc1wtdG9cLXNwcmVhZFwtb3V0XC1pblwtYWxsXC1kaXJlY3Rpb25zOwor46mJID4gdG9cLXRha2VcLWFcLXJ1YmJpbmdcLW9mXC1hblwtaW5zY3JpcHRpb25cLW9uXC1zdG9uZTsKK+OjgSA+IHRvXC1lcXVpcHRcLWFcLWJvd1wtd2l0aFwtc2lsa1wtYW5kXC1tdXNjdWxhclwtZmlicmU7CivjooYgPiBsaXZpbmdcLXNwYWNlXC1mb3JcLW9uZVwtZmFtaWx5XC1pblwtYW5jaWVudFwtdGltZXM7CivjnZkgPiB0aGVcLXRoaXJkXC1vZlwtdGhlXC10d2VsdmVcLXRlcnJlc3RyaWFsXC1icmFuY2hlczsKK+OZuyA+IGxpdmluZ1wtc3BhY2VcLWZvclwtb25lXC1mYW1pbHlcLWluXC1hbmNpZW50XC10aW1lczsKK+S5jiA+IGludGVycm9nYXRpdmVcLW9yXC1leGNsYW1hdG9yeVwtZmluYWxcLXBhcnRpY2xlOwor5r6EID4gcHVyaWZ5XC13YXRlclwtYnlcLWFsbG93aW5nXC1zZWRpbWVudFwtdG9cLXNldHRsZTsKK+atnyA+IGFcLWZpbmFsXC1wYXJ0aWNsZVwtdXNlZFwtdG9cLWV4cHJlc3NcLWFkbWlyYXRpb247CivmoqIgPiBwb2ludGVkXC10aXBcLW9mXC1zb21ldGhpbmdcLWxvbmdcLWxpa2VcLWFcLWJyYW5jaDsKK+WTkiA+IGFcLXNvdW5kXC1tYWRlXC10b1wtZ2V0XC1hXC1ob3JzZVwtdG9cLW1vdmVcLWZvcndhcmQ7CivnkK4gPiBvY3RhZ29uYWxcLXBpZWNlXC1vZlwtamFkZVwtd2l0aFwtaG9sZVwtaW5cLW1pZGRsZTsKK+aspCA+IGFcLWZpbmFsXC1wYXJ0aWNsZVwtdXNlZFwtdG9cLWV4cHJlc3NcLWFkbWlyYXRpb247CivllLwgPiBzcGVha2luZ1wtZXZpbFwuXC1nb2JibGluZ1wtc291bmRcLW1hZGVcLWJ5XC1kdWNrczsKK+mCtCA+IG5hbWVcLW9mXC1hXC1jaXR5XC1pblwtdGhlXC1hbmNpZW50XC1zdGF0ZVwtb2ZcLXNvbmc7CivktpggPiB0aGVcLXNvdW5kXC1vZlwtY2hld2luZ1wtc29tZXRoaW5nXC1kcnlcLWFuZFwtaGFyZDsKK+SusiA+IGhvcnNlXC13aXRoXC1taXhlZFwtY29sb3JzXC1vZlwteWVsbG93XC1hbmRcLXdoaXRlOwor5Ka8ID4gdG9cLWRpZ1wtYVwtcGFzc2FnZVwtdGhyb3VnaFwtYVwtbW91bnRhaW5cLW9yXC1oaWxsOwor5KWRID4gYVwta2luZFwtb2ZcLWRlY29yYXRpb25cLW9uXC10aGVcLWhlYWRcLW9mXC1hXC1ob3JzZTsKK+SjryA+IHdpbmVcLW9yXC1hbnlcLXRoaWNrXC1mbHVpZFwtb2ZcLXRoZVwtYmVzdFwtcXVhbGl0eTsKK+SjmiA+IG5hbWVcLW9mXC1hXC12aWxsYWdlXC1pblwtdG9kYXknJ3NcLWhlbmFuXC1wcm92aW5jZTsKK+SjmSA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC10b2RheScnc1wtc2hhbnhpXC1wcm92aW5jZTsKK+SiuiA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXRvZGF5JydzXC1zaWNodWFuXC1wcm92aW5jZTsKK+SiuCA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC10b2RheScnc1wtc2hhbnhpXC1wcm92aW5jZTsKK+ShvyA+IGZyYW1lc1wtb25cLXRoZVwtc2lkZXNcLWFuZFwtZnJvbnRcLW9mXC1hXC1jYXJyaWFnZTsKK+ShvCA+IGZyYW1lc1wtb25cLXRoZVwtc2lkZXNcLWFuZFwtZnJvbnRcLW9mXC1hXC1jYXJyaWFnZTsKK+ScryA+IG5hbWVcLW9mXC1hXC12YWxsZXlcLWluXC10b2RheScnc1wtc2hhbnhpXC1wcm92aW5jZTsKK+SYvyA+IHNoaXJ0XC1vclwtYVwtamFja2V0XC13aXRob3V0XC1hbnlcLWRlY29yYXRlZFwtaGVtOwor5JaCID4gYW5cLWVkaWJcLWxlXC13YXRlclwtcGxhbnRcLVwtXC1cLWJyYXNlbmlhXC1wdXJwdXJjYTsKK+SPriA+IHRoZVwtc2lkZXNcLW9mXC10aGVcLXRydW5rXC1mcm9tXC1hcm1waXRzXC10b1wtcmliczsKK+SFjSA+IHN0cmFpZ2h0XC11cHdhcmRcLW9mXC10aGVcLXdoZWF0XC1hbmRcLXJpY2VcLXBsYW50Owor5IK4ID4gdG9cLXNtYXNoXC1vclwtdG9cLWtub2NrXC10b1wtcGllY2VzXC1vZlwtdGhlXC1zdG9uZTsKK+O+vCA+IHRvXC1zdWZmZXJcLWFcLXN0cm9rZVwtb2ZcLXBhcmFseXNpc1wtb3JcLWFwb3BsZXh5Owor476vID4gdG9cLXN1ZmZlclwtYVwtc3Ryb2tlXC1vZlwtcGFyYWx5c2lzXC1vclwtYXBvcGxleHk7CivjvasgPiBzZWVkc1wtb2ZcLXRoZVwtcGxhbnRcLWFsbGllZFwtdG9cLXRoZVwtd2F0ZXJcLWxpbHk7CivjuLcgPiBhXC1raW5kXC1vZlwtY2F0dGxlXC13aXRoXC10d29cLWhvcm5zXC1zdHJhaWdodFwtdXA7CivjtqwgPiBicmlnaHRcLWxpZ2h0c1wtYW5kXC1pbGx1bWluYXRpb25zXC1vZlwtdGhlXC1maXJlOwor47ahID4gYnJpZ2h0XC1saWdodHNcLWFuZFwtaWxsdW1pbmF0aW9uc1wtb2ZcLXRoZVwtZmlyZTsKK+O2hiA+IG5hbWVcLW9mXC1hXC1zdHJlYW1cLWluXC1oZWJlaVwtcHJvdmluY2VcLWhlbmdzaGFuOwor466rID4gYVwtd29vZGVuXC1hcnRpY2FsXC10b1wtYmVcLXVzZWRcLXRvXC1hZGp1c3RcLWFcLWJvdzsKK+OrjSA+IHRoZVwtc2NhbGxvcHNcLWFsb25nXC10aGVcLWxvd2VyXC1lZGdlXC1vZlwtYVwtZmxhZzsKK+OnjyA+IHRvXC1jYXJyeVwtb25cLXRoZVwtc2hvdWxkZXJzb2ZcLXR3b1wtb3JcLW1vcmVcLW1lbjsKK+ObtiA+IGRvXC1ub3RcLWNhcmVcLWFib3V0XC1hcHBlYXJhbmNlXC1hbmRcLWRlcG9ydG1lbnQ7Civjm6cgPiBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7CivjmpQgPiBpbnN0cnVtZW50XC1vZlwtdG9ydHVyZVwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor45mHID4gdGhlXC1jYXR0bGVcLWFuZFwtaG9yc2VzXC10cmFtcGxlZFwtb25cLXRoZVwtZmllbGQ7CivlqIUgPiBtdXR1YWxcLXRlcm1cLW9mXC1hZGRyZXNzXC11c2VkXC1ieVwtc29uc1wtaW5cLWxhdzsKK+muoCA+IGFcLWtpbmRcLW9mXC1zaGFkXC13aXRoXC1hXC1oZWFkXC1saWtlXC1hXC1zdHVyZ2VvbjsKK+iDkSA+IHRoZVwtbGltYnNcLlwtd2luZ3NcLW9mXC1iaXJkc1wuXC1sZWdzXC1vZlwtYW5pbWFsczsKK+etrSA+IGFuXC1hbmNpZW50XC1kZXZpY2VcLWZvclwtd29ya2luZ1wtd2l0aFwtbnVtYmVyczsKK+a7nSA+IG9ub21hdG9wb2VpY1wtZm9yXC10aGVcLXNvdW5kXC1vZlwtZmFsbGluZ1wtcmFpbjsKK+WprSA+IG11dHVhbFwtdGVybVwtb2ZcLWFkZHJlc3NcLXVzZWRcLWJ5XC1zb25zXC1pblwtbGF3Owor5LO1ID4gYVwta2luZFwtb2ZcLXdhdGVyXC1iaXJkXC13aXRoXC1jb2xvcmZ1bFwtZmVhdGhlcjsKK+SzmyA+IGFcLXNtYWxsXC1icm93blwtc3BlY2tsZWRcLWJpcmRcLWxpa2VcLXRoZVwtcXVhaWw7CivkqZEgPiBob3Jpem9udGFsXC1mcm9udFwtYmFyXC1vblwtYVwtY2FydFwtb3JcLWNhcnJpYWdlOwor5KaTID4gdG9cLXdhaXRcLWZvclwtc29tZXRoaW5nXC10b2hhcHBlblwtaW1tZWRpYXRlbHk7Civko6QgPiBuYW1lXC1vZlwtdmlsbGFnZVwtaW5cLXRvZGF5JydzXC1zaGFueGlcLXByb3ZpbmNlOwor5KOdID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLXNoYW54aVwtcHJvdmluY2U7Civko4IgPiBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtdG9kYXknJ3NcLWh1bmFuXC1wcm92aW5jZTsKK+ShqSA+IHNvdW5kXC1vZlwtY2FydHNcLW9yXC1zdG9uZXNcLWtub2NraW5nXC10b2dldGhlcjsKK+ShjyA+IGhvcml6b250YWxcLWZyb250XC1iYXJcLW9uXC1hXC1jYXJ0XC1vclwtY2FycmlhZ2U7CivkoYwgPiBob3Jpem9udGFsXC1mcm9udFwtYmFyXC1vblwtYVwtY2FydFwtb3JcLWNhcnJpYWdlOwor5KCAID4gdG9cLXNpdFwtY3Jvc3NcLWxlZ2dlZFwtbGlrZVwtYVwtYnVkZGhpc3RcLXByaWVzdDsKK+ScqyA+IG5hbWVcLW9mXC1hXC12YWxsZXlcLWluXC10b2RheScnc1wtaG9iZWlcLXByb3ZpbmNlOwor5JyaID4gdG9cLXNwZWFrXC1yZWNrbGVzc2x5XC1vclwtd2l0aG91dFwtZm9yZXRob3VnaHQ7Civkk6UgPiBzb3VuZFwtb2ZcLXRoZVwtd3JpZ2dsZWRcLWluc2VjdHNcLW9uXC10aGVcLWdyYXNzOwor5JCEID4gdGhlXC11bnNhdGlzZmFjdGlvblwtb2ZcLWh1bmdlclwtcmVxdWlyZXNcLW1lYXQ7CivkjbQgPiB0b1wtc3F1ZWV6ZVwtYW5kXC10b1wtY3Jvd2RcLWFnYWluc3RcLWVhY2hcLW90aGVyOwor5I2GID4gY29udGFpbmVyXC1mb3JcLWdyYWluc1wtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5IevID4gYVwta2luZFwtb2ZcLWJhbWJvb1wtd2l0aFwtcGF0dGVybnNcLW9uXC10aGVcLWhlYWQ7CivjvLEgPiB0b1wtbWFuYWdlXC1vclwtcmVndWxhdGVcLXRoZVwtbGVhdGhlclwtbWF0ZXJpYWw7Civjr4ogPiBldmVuXC1tZWFzdXJpbmdcLWJvYXJkXC1mb3JcLXBlY2tzXC1hbmRcLWJ1c2hlbHM7CivjqJAgPiB0b1wtc2xhcFwtbGlnaHRseVwtb25cLXRoZVwtY2xvdGhlc1wtb3JcLWNvdmVybGV0Owor46KlID4gYVwtYmlnXC1waWVjZVwtb2ZcLWxvZ1wtdG9cLWpvaW5cLXRoZVwtdGhpY2tcLXJvcGVzOwor54+IID4gYW5cLW9ybmFtZW50XC1hdHRhY2hlZFwtdG9cLWFcLXdvbWFuJydzXC1oYWlycGluOwor6JyDID4gbWFyaW5lXC1tb25zdGVyXC13aGljaFwtY2FuXC1jaGFuZ2VcLWl0c1wtc2hhcGU7CivmlpsgPiBkcnlcLW1lYXN1cmVcLWVxdWFsXC10b1wtc29tZVwtZml2ZVwtb3JcLXRlblwtZG91Owor6YSvID4gZGlzdHJpY3RcLWluXC1nYW5zdVwtZHVyaW5nXC10aGVcLXRhbmdcLWR5bmFzdHk7CivlurkgPiB0aGVcLWxlbmd0aFwtb2ZcLW9uZScnc1wtdHdvXC1vdXRzdHJldGNoZWRcLWFybXM7Civmj7IgPiB0b1wtc29ydFwtb3V0XC10aGVcLXN0YWxrc1wtdXNlZFwtaW5cLWRpdmluYXRpb247Civpn40gPiBhXC1sZWF0aGVyXC1rbmVlXC1wYWRcLXdvcm5cLWR1cmluZ1wtc2FjcmlmaWNlczsKK+mPniA+IGFcLWxhcmdlXC1iZWxsXC11c2VkXC1hc1wtYVwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+i7jiA+IGFcLWJyYXNzXC1wYXJ0c1wtZm9yXC1hXC1jYXJ0XC1pblwtYW5jaWVudFwtY2hpbmE7CivomYsgPiBhc3BhcmFndXNcLWFcLXZhcmlldHlcLW9mXC1yZWRcLXN0YWxrZWRcLW1pbGxldDsKK+W7niA+IHRvXC1wcmVwYXJlXC1ob3JzZXNcLWFuZFwtY2hhcmlvdHNcLWZvclwtYmF0dGxlOwor5amXID4gYVwtbmV3XC1ib3JuXC1jaGlsZFwtdGhlXC13aGltcGVyXC1vZlwtYW5cLWluZmFudDsKK+WmuiA+IHdpZmVcLW9mXC10aGVcLWxhc3RcLXJ1bGVyXC1vZlwtdGhlXC14aWFcLWR5bmFzdHk7CivlmaAgPiBzb3VuZFwtbWFkZVwtdG9cLWdldFwtYVwtaG9yc2VcLXRvXC1tb3ZlXC1mb3J3YXJkOwor5LiCID4gb2JzdHJ1Y3Rpb25cLW9mXC1icmVhdGhcLWFzXC1pdFwtc2Vla3NcLXJlbGVhc2U7CivksL8gPiBhXC1raW5kXC1vZlwtc21hbGxcLWZpc2hcLWdyb3duXC1pblwtZnJlc2hcLXdhdGVyOwor5KK/ID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLWhvYmVpXC1wcm92aW5jZTsKK+ShiCA+IHRoZVwtY3Jvc3NcLWJhclwtYXRcLXRoZVwtc2lkZXNcLW9mXC1hXC1jYXJyaXRhZ2U7CivklIkgPiBzY2F0dGVyZWRcLW9yXC1kaXNwZXJzZWRcLW9mXC1ncmFzc1wtYW5kXC10cmVlczsKK+SRkiA+IGFcLWtpbmRcLW9mXC1mYXJtXC10b29sXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkkKMgPiBzb3VwXC1tYWRlXC1vZlwtY3V0dGVkXC1tZWF0XC1taXhlZFwtd2l0aFwtYmxvb2Q7CivkjK4gPiBzaWxrXC1mYWJyaWNzXC13aXRoXC10aGVcLWNvbG9yXC1vZlwtbmV3XC1sZWF2ZXM7CivkhKggPiBncmFpbnNcLXByb2R1Y2luZ1wtbmVpdGhlclwtZmxvd2VyXC1ub3JcLWZydWl0Owor5ISdID4gc2hvd1wtbm9cLXJlc3BlY3RcLXRvXC10aGVcLXNlcnZpY2VcLW9mXC13b3JzaGlwOwor47ytID4gdG9cLXN0ZWFkeVwtYnlcLXB1dHRpbmdcLXNvbWV0aGluZ1wtdW5kZXJuZWF0aDsKK+O7siA+IGFcLXJpdGVcLW9yXC1zZXJ2aWNlXC1mb3JcLWJlZ2lubmluZ1wtb2ZcLWF1dHVtbjsKK+OqqiA+IHRvXC11c2VcLWFcLXdvb2RlblwtcG9sZVwtdG9cLXN1cHBvcnRcLXNvbWV0aGluZzsKK+OipiA+IHdvb2RlblwtcG9zdFwtb3JcLXBpbGVcLWZvclwtdGV0aGVyaW5nXC1hbmltYWxzOwor45yiID4gYVwtYmFkXC10ZXJtXC1ieVwtd2hpY2hcLW9uZVwtYWRkcmVzc2VzXC1hXC13b21hbjsKK+OakiA+IGNvbmNlYWxlZFwtdGhlXC1zdG9sZW5cLWdvb2RzXC1pblwtb25lJydzXC1kcmVzczsKK+i4oyA+IHRvXC1zdHVtYmxlXC1hbmRcLWZhbGxcLXByb25lXC1zdGlmZlwtaW5cLWRlYXRoOwor6bu8ID4gZW1icm9pZGVyZWRcLW9mZmljaWFsXC1vclwtc2FjcmlmaWNpYWxcLXJvYmU7Civls4QgPiBhXC1yYW5nZVwtb2ZcLXBlYWtzXC1pblwtc2hhbmRvbmdcLWFuZFwtamlhbmdzdTsKK+mXlyA+IGFcLWZyb250aWVyXC1wYXNzXC1vclwtZ2F0ZVwtdG9cLXNodXRcLW9yXC1jbG9zZTsKK+mCviA+IGFcLWZldWRhbFwtc3RhdGVcLXdoaWNoXC1leGlzdGVkXC1iXC5jXC43MDBcLTQ2OTsKK+iWqSA+IHRyYW5zbGl0ZXJhdGlvblwtb2ZcLScnc2F0JydcLWluXC0nJ2JvZGhpc2F0dHZhOwor6IawID4gdG9cLWNvb2tcLW1lYXRcLWZvclwtYVwtc2FjcmlmaWNlXC1vclwtb2ZmZXJpbmc7CivnkYwgPiBhXC13aGl0ZVwtb3BhcXVlXC1xdWFydHpcLXVzZWRcLWZvclwtb3JuYW1lbnRzOwor5r2fID4gbGFuZFwtaW1wcmVnbmF0ZWRcLXdpdGhcLXNhbHRcLWZyb21cLXRoZVwtdGlkZTsKK+W2pyA+IGFcLXJhbmdlXC1vZlwtcGVha3NcLWluXC1zaGFuZG9uZ1wtYW5kXC1qaWFuZ3N1Owor5LWeID4gYW5jaWVudFwtcHVuaXNobWVudFwtb2ZcLXRhdHRvb2luZ1wtdGhlXC1mYWNlOwor5LG5ID4gYVwtY29uZGltZW50XC1tYWRlXC1mcm9tXC1taW5jZWRcLWZpc2hcLXNhbHRlZDsKK+SwvCA+IGFcLWNvbmRpbWVudFwtbWFkZVwtZnJvbVwtbWluY2VkXC1maXNoXC1zYWx0ZWQ7Civkr7AgPiB1c2VcLWFcLWhhaXJcLXBpblwtdG9cLXNldFwtYW5kXC1kcmVzc1wtdGhlXC1oYWlyOwor5KyvID4gdG9cLWhhdmVcLWNvbmdlZVwtd2l0aFwtZnJpZW5kc1wtaW5cLW9sZFwtdGltZXM7CivkoYsgPiBkZWNvcmF0aW9uXC1vblwtdGhlXC1uYXZlXC1vclwtaHViXC1vZlwtYVwtd2hlZWw7CivknoMgPiB0b1wtcmVsaWV2ZVwtb3JcLWdpdmVcLWFpZFwtdG9cLXRoZVwtZGlzdHJlc3NlZDsKK+SdqSA+IHRvXC1yZWxpZXZlXC1vclwtZ2l2ZVwtYWlkXC10b1wtdGhlXC1kaXN0cmVzc2VkOwor5JivID4gdGhlXC1sYXBlbFwtb3JcLWNvbGxhclwtb2ZcLWFcLWdhcm1lbnRcLW9yXC1yb2JlOwor5JikID4gYVwtc3dvcmRcLWNvdmVyaW5nXC10b1wtcHJvdGVjdFwtdGhlXC1zY2FiYmFyZDsKK+SRjCA+IGx3aGF0XC1pc1wtbGVmdFwtb3Zlclwtb2ZcLXRoZVwtZm9vZFwtXC1vdmVycmlwZTsKK+SLpyA+IG9ybmFtZW5udHNcLWZvclwtdGhlXC1mcm9udGFsXC1wYXJ0XC1vZlwtc2hvZXM7Civki6MgPiBkZWNvcmF0aW9uc1wtcHV0XC1vblwtdGhlXC1tYW5lXC1vclwtaG9yc2VoYWlyOwor5Iq/ID4gdGhlXC1sYXBlbFwtb3JcLWNvbGxhclwtb2ZcLWFcLWdhcm1lbnRcLW9yXC1yb2JlOwor5IiVID4gdGhlXC1tZXRhbFwtdG9uZ3VlXC1pblwtdGhlXC1yZWVkXC1pbnN0cnVtZW50czsKK+SDtCA+IGFcLXdoZXRzdG9uZVwtdXNlZFwtdG9cLWdyaW5kXC1wcmVjaW91c1wtc3RvbmU7CivkgbwgPiB0b1wtbG9va1wtYnV0XC1zZWVcLW5vdGhpbmdcLVwtXC1cLWFic2VudFwtbWluZGVkOwor47+GID4gZGFtYWdlXC1ieVwtdGhlXC1wZXN0c1wtdG9cLXRoZVwtcmljZVwtc2VlZGxpbmc7Civju7YgPiBhXC1qYWRlXC10dWJlXC13aXRoXC13aGl0ZVwtYW5kXC1uYXR1cmVcLWNvbG9yczsKK+O7sCA+IGRlY29yYXRlZFwtamFkZVwtb3JcLW9ybmFtZW50XC1vblwtYVwtc2NhYmJhcmQ7Civju6EgPiBhXC1qYWRlXC1yaW5nXC13aXRoXC1hXC1zbWFsbFwtc2VnbWVudFwtY3V0XC1vZmY7CivjroYgPiBlYXZlc1wtc3Byb3V0aW5nXC1mcm9tXC10aGVcLXN0dW1wXC1vZlwtYVwtdHJlZTsKK+OrlCA+IG9uZVwtb2ZcLXRoZVwtZWlnaHRcLWRpYWdyYW1zXC1mb3JcLWRpdmluYXRpb247CivjqrsgPiBhXC1raW5kXC1vZlwtdXRlbnNpbFwtdXNlZFwtdG9cLWxhZGxlXC1vdXRcLXdpbmU7CivjqYogPiB0b1wtcHVsbFwtdXBcLXRoZVwtc2xlZXZlc1wtYW5kXC1zaG93XC10aGVcLWFybXM7Civjp60gPiB0b1wtZ2V0XC1zb21ldGhpbmdcLXdpdGhcLWJvdGhcLXJhaXNpbmdcLWhhbmRzOwor46eaID4gdGhlXC1nZXN0dXJlXC1vZlwtdXNpbmdcLWFuXC1pbmRlbnRlZFwtY29udGFpbjsKK+OnhiA+IHRvXC1jb3Zlclwtc29tZXRoaW5nXC13aXRoXC1hXC1waWVjZVwtb2ZcLWNsb3RoOwor46GLID4gYVwta2luZFwtb2ZcLWhlYWRkcmVzc1wtZm9yXC1tYW5cLWluXC1vbGRcLWNoaW5hOwor46C4ID4gdGhlXC1sYXBlbFwtb3JcLWNvbGxvclwtb2ZcLWFcLWdhcm1lbnRcLW9yXC1yb2JlOwor45yaID4gYVwtbG9jYWxcLWdvdmVybm1lbnRcLXBvc3RcLWluXC1hbmNpZW50XC10aW1lczsKK+OZnyA+IGxvd1wtbHlpbmdcLW9uXC10aGVcLXNpZGVcLW9mXC1hXC1yaXZlclwtb3JcLWxha2U7Civllo8gPiByZXNwZWN0ZnVsXC1yZXBseVwtb2ZcLWFzc2VudFwtdG9cLXN1cGVyaW9yczsKK+esjyA+IHRhYmxldFwtaGVsZFwtYnlcLXNvbWVvbmVcLWhhdmluZ1wtYXV0aG9yaXR5Owor6La8ID4gY2FsbG91c1wtc2tpblwtb25cLWhhbmRzXC1vclwtZmVldFwuXC1ibGlzdGVyczsKK+mlnSA+IHRvXC1mZWVkXC1hblwtaW5mYW50XC1ieVwtaGFuZFwtc3RlYW1lZFwtYnJlYWQ7Civoo40gPiBhXC1ib3JkZXJcLW9yXC1iYW5kXC1vblwtdGhlXC1lZGdlXC1vZlwtYVwtZHJlc3M7CivnsaogPiBhXC13ZWlyXC1vZlwtYmFtYm9vXC10b1wtY2F0Y2hcLWZpc2hcLW9yXC1jcmFiczsKK+eYsiA+IHNwYXNtc1wtb3JcLWNvbnZ1bHNpb25zXC1pblwteW91bmdcLWNoaWxkcmVuOwor55GyID4gdGlua2xpbmdcLXNvdW5kXC10aW5rbGluZ1wtb2ZcLXBlbmRhbnRcLWdlbXM7CivlvJ0gPiB0aGVcLXBhcnRcLW9mXC1hXC1ib3dcLWdyYXNwZWRcLXdoZW5cLXNob290aW5nOwor5KWcID4gcHJvdGVjdGl2ZVwtbWV0YWxcLW9uXC10aGVcLWF4aXNcLW9mXC1hXC13aGVlbDsKK+SZliA+IGFcLWNsb3RoXC10b1wtY2FycnlcLWFuXC1paW5mYW50XC1vblwtdGhlXC1iYWNrOwor5JmAID4gYVwtY2xvdGhcLXRvXC1jYXJyeVwtYW5cLWlpbmZhbnRcLW9uXC10aGVcLWJhY2s7Civkj6sgPiBpblwtYmV0d2Vlblwtb2ZcLXRoZVwtYWJkb21lblwtYW5kXC10aGVcLXNwaW5lOwor5I2JID4gdHJhY2VzXC1vclwtbWFya3NcLW9mXC1pbmNvbXBsZXRlXC1vclwtZGFtYWdlOwor5Iy4ID4gZmluZVwtc2lsa1wtZmFicmljXC1vZlwtYnJpZ2h0XC13aGl0ZVwtY29sb3VyOwor5Iu/ID4gYVwtZGVjb3JhdGl2ZVwta25vdFwtbWFkZVwtb2ZcLWNvbG9yZnVsXC1zaWxrOwor5IicID4gYVwtdGhyZWFkXC11c2VkXC1ieVwtY2FycGVudGVyc1wtZm9yXC1tYXJraW5nOwor5IiGID4gYVwtc2hhbGxvd1wtYW5kXC1sb25nXC1zaGFwZWRcLWJhbWJvb1wtYmFza2V0Owor47+5ID4ganV0dGluZ1wtb25cLXRoZVwtZXBpZGVybWlzXC1vclwtdGhlXC1jdXRpY2xlOwor47yrID4gZWFydGhlbndhcmVcLW9yXC1wb3R0ZXJ5XC13aXRoXC1iaWdcLW9wZW5pbmc7CivjtbsgPiB0b1wtcGVyc3BpcmVcLWZyb21cLWVtYmFycmFzc21lbnRcLW9yXC1zaGFtZTsKK+OtqSA+IGFcLWtpbmRcLW9mXC10cmVlXC1jYW5cLWJlXC11c2VkXC1hc1wtZHllXC1zdHVmZjsKK+OjmSA+IHRvXC13YWxrXC1pblwtYW5cLWVhc3lcLWFuZFwtbGVpc3VyZWx5XC1tYW5uZXI7CivjoqogPiB0b1wtZHJhd1wtYVwtZnVsbFwtYm93XC10b1wtYWltXC1hdFwtdGhlXC10YXJnZXQ7CivjmIogPiB0aGVcLWFicnVwdFwtYW5kXC1oYXN0eVwtc291bmRcLW9mXC10aGVcLWNyb3dkOwor45auID4gYW5cLWludGVyamVjdGlvblwtdXNlZFwtaW5cLXBvZW1zXC1hbmRcLXNvbmdzOwor45SuID4gYVwta2luZFwtb2ZcLWFuaW1hbFwtd2hpY2hcLWxvb2tzXC1saWtlXC1hXC1yYXQ7CivllacgPiBpbnRlcmplY3Rpb25cLW9mXC1hcHByb3ZhbFwtb3JcLWFkbWlyYXRpb247CivmjbogPiB0b1wtcHJlc3NcLWRvd25cLWhlYXZpbHlcLXdpdGhcLXRoZVwtZmluZ2VyczsKK+WCoyA+IHRoZVwtZGFpXC1taW5vcml0eVwtbGl2aW5nXC1pblwtc291dGhcLWNoaW5hOwor6bipID4gYVwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC1zZWNyZXRhcnlcLWZhbGNvbjsKK+a3nSA+IG5hbWVcLW9mXC1hblwtYWZmbHVlbnRcLW9mXC10aGVcLXBveWFuZ1wtbGFrZTsKK+mDhSA+IHRvXC1nb1wtdXBcLXRvXC5cLWZsb3VyaXNoaW5nXC1hXC1zdXBlcmxhdGl2ZTsKK+i9qyA+IGFcLWJsb2NrXC10aGF0XC1rZWVwc1wtYVwtd2hlZWxcLWZyb21cLW1vdmluZzsKK+W2tyA+IGFcLXJhbmdlXC1vZlwtbW91bnRhaW5zXC1pblwtaHVuYW5cLXByb3ZpbmNlOwor6ayyID4gdHlwZVwtb2ZcLWNhbGRyb25cLXdpdGhcLXRocmVlXC1ob2xsb3dcLWxlZ3M7CivliJYgPiBjdXR0aW5nXC1vZmZcLWZlZXRcLWFzXC1mb3JtXC1vZlwtcHVuaXNobWVudDsKK+epuCA+IHRoZVwtZ2xvb21cLW9mXC10aGVcLWdyYXZlXC1hXC10b21iXC1vclwtZ3JhdmU7CivomIUgPiBhXC1mcmFncmFudFwtcGxhbnRcLXRoZVwtcm9vdFwtaXNcLW1lZGljaW5hbDsKK+m0hiA+IGFcLWJpcmRcLXJlc2VtYmxpbmdcLXRoZVwtc2VjcmV0YXJ5XC1mYWxjb247CivpqYYgPiB1c2VkXC1pblwtdHJhbnNsaXRlcmF0aW5nXC1idWRkaGlzdFwtYm9va3M7Civpp48gPiBvZmZzcHJpbmdcLW9mXC1hXC1zdGFsbGlvblwtYW5kXC1hXC1zaGVcLW11bGU7CivpiYwgPiB0aGVcLWJlbGxzXC1vblwtdGhlXC1jYXJ0XC1pblwtYW5jaWVudFwtY2hpbmE7Civou5QgPiBhXC1ibG9ja1wtdGhhdFwta2VlcHNcLWFcLXdoZWVsXC1mcm9tXC1tb3Zpbmc7CivoqacgPiB0b1wtZXhhbWluZVwtaW50b1wtanVkaWNpYWxseVwtdG9cLWZpbmRcLW91dDsKK+e2syA+IGFcLWNsb3RoXC10b1wtY2FycnlcLWFuXC1pbmZhbnRcLW9uXC10aGVcLWJhY2s7CivntpYgPiB0aGVcLWhhbmdpbmdcLWZsYXBcLWluXC10aGVcLWZyb250XC1vZlwtYVwtaGF0Owor56WrID4gdHJpZW5uaWFsXC1zYWNyaWZpY2VcLXRvXC1vbmUnJ3NcLWFuY2VzdG9yczsKK+ejuyA+IGFcLXRyaWJ1dGFyeVwtb2ZcLXRoZVwtd2VpXC1yaXZlclwtaW5cLXNoYW54aTsKK+aWtCA+IHRoZVwtc291bmRcLW9mXC13YXRlclwtZmxvd2luZ1wtYW1vbmdcLXJvY2tzOwor5bSRID4ga3VubHVuXC1tb3VudGFpbnNcLWluXC1qaWFuZ1wtc3VcLXByb3ZpbmNlXC47CivlmJYgPiBpbnRlcmplY3Rpb25cLW9mXC1hcHByb3ZhbFwtb3JcLWFkbWlyYXRpb247CivksJggPiB0b1wta2lsbFwtYnlcLWhhbmdpbmdcLW9yXC10b1wtc3RyYW5ndWxhdGlvbjsKK+SulyA+IHdoaXRlXC1mcm9tXC1mb3JlaGVhZFwtdG9cLWxpcHNcLW9mXC1hXC1ob3JzZTsKK+SqsiA+IGFuY2llbnRcLXB1bmlzaG1lbnRcLW9mXC1zaGF2aW5nXC10aGVcLWhlYWQ7CivkqbggPiBmaW5lXC13b29sZW5cLWJsYW5rZXRcLW9uXC10b3BcLW9mXC1hXC1zYWRkbGU7CivkqasgPiBhXC11bml0XC10b1wtY291bnRcLXNob2VzXC1pblwtYW5jaWVudFwtdGltZXM7CivkpoUgPiBhXC1raW5kXC1vZlwtd2VhcG9uXC11c2VkXC1pblwtYW5jaWVudFwtdGltZXM7CivkpZAgPiBjb29raW5nXC11dGVuc2lsc1wtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5KKHID4gYVwtc29uXC13aG9cLWlzXC1ub3RcLXNvXC1nb29kXC1hc1wtaGlzXC1mYXRoZXI7Civkm5cgPiB0b1wtcHJ5XC1pbnRvXC1vclwtZXhwb3NlXC1hbm90aGVyJydzXC1zZWNyZXQ7CivkmoUgPiB0b1wtbG9va1wtYWZ0ZXJcLWhvbWVcLW9yXC1kb21lc3RpY1wtYWZmYWlyczsKK+SYqCA+IHNob3J0XC1sZWdnaW5nc1wtZHJhd25cLW92ZXJcLXRoZVwtdHJvdXNlcnM7Civklr8gPiBhXC1raW5kXC1vZlwtY2xhbVwtd2l0aFwtdGhpY2tcLXdoaXRlXC1zaGVsbHM7Civklr0gPiBhXC1raW5kXC1vZlwtY2xhbVwtd2l0aFwtdGhpY2tcLXdoaXRlXC1zaGVsbHM7CivklbAgPiBhXC1zZWNvbmRcLW5hbWVcLWZvclwtcmhpem9tZVwtb2ZcLXdpbmRcLXdlZWQ7Civkk60gPiB3ZWVkXC1vclwtZ3Jhc3NcLXdpdGhcLW5hcnJvd1wtdGhpY2tcLWdsYWRlczsKK+SNuyA+IHlvdW5nXC1nb2F0XC1vZlwtc2hlZXBcLXVuZGVyXC1vbmVcLXllYXJcLW9sZDsKK+SNpiA+IGFcLWtpbmRcLW9mXC10dXJiYW5cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SMuSA+IGFcLWdhcm1lbnRcLW9mXC1vbmVcLWNvbG91clwtd2l0aFwtbm9cLWxpbmluZzsKK+SEqiA+IGhhbmdpbmdcLWRvd25cLW9mXC10aGVcLWVhcnNcLW9mXC10aGVcLWdyYWluczsKK+SEjSA+IHllYXJcLWVuZFwtc2FjcmlmaWNlXC1vZlwtdGhlXC16aG91XC1keW5hc3R5Owor472gID4gY29ubmVjdGlvblwtb2ZcLXRoZVwtZGl0Y2hlc1wtb3JcLXdhdGVyd2F5czsKK+O8riA+IHRvXC1ydWJcLW91dFwtdGhlXC1maWx0aFwtd2l0aFwtYnJva2VuXC10aWxlczsKK+OrqSA+IHRoZVwtZmlyc3RcLW9mXC10aGVcLWZvdXJcLXNlYXNvblwtXC1cLVwtc3ByaW5nOwor76WkID4gYVwtdHJpYnV0YXJ5XC1vZlwtdGhlXC13ZWlcLXJpdmVyXC1pblwtc2hhbnhpOwor46SdID4gcGFscGl0YXRpb25cLW9yXC1mbHV0dGVyaW5nXC1vZlwtdGhlXC1oZWFydDsKK+OkkSA+IHBhbHBpdGF0aW9uXC1vclwtZmx1dHRlcmluZ1wtb2ZcLXRoZVwtaGVhcnQ7Civjn4wgPiBhXC1tb3VudGFpblwtaW5cLXRvZGF5JydzXC1zaWNodWFuXC1wcm92aW5jZTsKK+OUryA+IGFcLWxhcmdlXC1iYXNrZXRcLWZvclwtaG9sZGluZ1wtY29va2VkXC1yaWNlOwor56yZID4gc21hbGxcLWdvdXJkXC1zaGFwZWRcLW11c2ljYWxcLWluc3RydW1lbnQ7Civmu5UgPiBhblwtYW5jaWVudFwtc3RhdGVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivplZsgPiBsYXJnZVwtYmVsbFwtdXNlZFwtYXNcLW11c2ljYWxcLWluc3RydW1lbnQ7CivorrUgPiBhblwtaW50ZXJqZWN0aW9uXC11c2VkXC1leHByZXNzXC1zdXJwcmlzZTsKK+azlCA+IHdhdGVyXC1mcm9tXC13YXNoaW5nXC1yaWNlXC10b1wtYm9pbFwtdGhpY2s7CivnmJAgPiB0b1wtZGllXC1pblwtcHJpc29uXC1mcm9tXC1jb2xkXC1hbmRcLWh1bmdlcjsKK+ajvCA+IGJlYW1zXC1pblwtdGhlXC1yb29mXC1vZlwtYVwtaG91c2VcLWNvbmZ1c2VkOwor6bqFID4gYVwtc21hbGxcLXNwb3R0ZWRcLWRlZXJcLWZvdW5kXC1pblwtblwuY2hpbmE7CivpmLwgPiB0aGVcLXN0ZXBzXC1sZWFkaW5nXC10b1wtdGhlXC1lYXN0ZXJuXC1kb29yOwor6LyXID4gYVwtY3Jvc3NcLWJhclwtYXRcLWVuZFwtb2ZcLWFcLWNhcnJpYWdlXC1wb2xlOwor6KmOID4gaW50ZXJqZWN0aW9uXC11c2VkXC10b1wtZXhwcmVzc1wtc3VycHJpc2U7CivnvIwgPiBjb2Fyc2VcLWNvdHRvblwtY2xvdGhcLXVzZWRcLWZvclwtbW91cm5pbmc7Civnt6YgPiBjb2Fyc2VcLWNvdHRvblwtY2xvdGhcLXVzZWRcLWZvclwtbW91cm5pbmc7CivnoZwgPiB0aGVcLXNvdW5kXC1vZlwtc3RvbmVzXC1rbm9ja2luZ1wtdG9nZXRoZXI7CivniokgPiBhblwtb3hcLXdpdGhcLXllbGxvd1wtaGFpclwtYW5kXC1ibGFja1wtbGlwczsKK+eFnSA+IHR3aXN0ZWRcLXBhcGVyXC1mb3JcLWxpZ2h0aW5nXC1jaWdhcmV0dGVzOwor5bisID4gdGhlXC1za2lydFwtb2ZcLWFcLWxhZHknJ3NcLWRyZXNzXC1wZXR0aWNvYXQ7CivltaAgPiBhXC12YWxsZXlcLXdpdGhcLWFcLXN0cmVhbVwtaW5cLWl0XC5cLWFcLWdvcmdlOwor5LGXID4gYVwtbG9uZ1wtbmFycm93XC1maXNoXC10cmljaGl1cnVzXC1hcm1hdHVzOwor5LGUID4gYVwtbG9uZ1wtbmFycm93XC1hbmRcLXNpbHZlclwtY29sb3JlZFwtZmlzaDsKK+SqkyA+IGFcLW1ldGFsXC1vcm5hbWVudFwtb25cLXNvbWVcLWtpbmRcLW9mXC1iZWx0Owor5KiZID4gdG9cLXJhaW5cLWNhdHNcLWFuZFwtZG9nc1wtZm9yXC1hXC1sb25nXC10aW1lOwor5KaKID4gYW5cLWFwcGxpYW5jZVwtZm9yXC13YWxraW5nXC1vblwtdGhlXC1zYW5kczsKK+SlgiA+IHRoZVwtc2hhcnBcLWVkZ2VcLW9mXC1hXC1zaG92ZWxcLW9yXC1hXC1zcGFkZTsKK+ShlSA+IHRoZVwtcmVhclwtcGxhdGZvcm1cLW9mXC1hXC1saWdodFwtY2FycmlhZ2U7CivknJQgPiB0b1wtc3BlYWtcLW9uXC10aGVcLWlkZWFzXC1vZlwtc29tZW9uZVwtZWxzZTsKK+SWoCA+IGFcLWtpbmRcLW9mXC1saXphcmRcLWZvdW5kXC1pblwtZGFtcFwtcGxhY2VzOwor5JacID4gdGhlXC1maWdodGluZ1wtc291bmRcLW1hZGVcLWJ5XC10d29cLXRpZ2VyczsKK+SOkiA+IGZseWluZ1wtcXVpY2tseVwtYW5kXC10b1wtYXR0YWNrXC1zdWRkZW5seTsKK+SLiiA+IGRlY29yYXRpb25zXC1vZlwtdGhlXC1lbXBlcm9yJydzXC1jYXJyaWFnZTsKK+SAmyA+IHRvXC1sb29rXC1mYXJcLXdpdGhcLXRoZVwtZXllc1wtaGFsZlwtY2xvc2VkOwor47yoID4gYVwtd2F0ZXJcLWphclwtd2l0aFwtZWFyc1wtZm9yXC1jYXJyeWluZ1wtaXQ7Civju44gPiBhXC1sYXJnZVwtaG9yaXpvbnRhbFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+O6qiA+IGFuXC11bmNhcnZlZFwtb2ZcLXVucG9saXNoZWRcLWphZGVcLW9yXC1nZW07Civjtb8gPiBlbmRsZXNzbHlcLWxvbmdcLW9yXC12YXN0XC13YXRlclwtY3VycmVudHM7CivjtKkgPiBuYW1lXC1vZlwtYVwtc3RyZWFtXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor46+YID4gYVwtc21hbGxcLXdvb2Rlblwtc3RhbmRcLWhhdmluZ1wtZm91clwtbGVnczsKK+OkjSA+IG5ldmVyXC1yZXZlYWxcLW9uZScnc1wtZmVlbGluZ1wtb3JcLWVtb3Rpb247Civjo6AgPiBhXC1yb3BlXC1kZWNvcmF0ZWRcLXdpdGhcLWJyb256ZVwtb3JuYW1lbnQ7CivjoZEgPiBhbmNpZW50XC1tb3VybmluZ1wtdHVyYmFuXC13b3JuXC1ieVwtd29tZW47CivjoJEgPiBoaWdoXC1tb3VudGFpblwtc3RlZXBcLXJ1Z2dlZFwtYW5kXC11bmV2ZW47CivjoIQgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWluXC15dW5uYW5cLXByb3ZpbmNlOwor46CBID4gaXJyZWd1bGFyXC1vdXRsaW5lXC1vZlwtYVwtcmFuZ2VcLW9mXC1oaWxsczsKK+OfmiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtaW5cLXNoYW54aVwtcHJvdmluY2U7Civjnr8gPiBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWluXC1zaGFueGlcLXByb3ZpbmNlOwor4565ID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+OatiA+IHdpZmVcLW9mXC1vbmUnJ3NcLWh1c2JhbmQnJ3NcLWVsZGVyXC1icm90aGVyOwor45iIID4gYWJsZVwtdG9cLXRha2VcLWFcLWNvcnJlY3RcLXZpZXdcLW9mXC10aGluZ3M7Civjl7AgPiB0aGVcLWNoYXJhY3RlclwtdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbjsKK+OSvyA+IGFcLWtpbmRcLW9mXC10dXJiYW5cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lOwor5byBID4gY29uaWNhbFwtY2FwXC13b3JuXC1kdXJpbmdcLXpob3VcLWR5bmFzdHk7CivphYkgPiB0ZW50aFwtb2ZcLXRoZVwtdHdlbHZlXC1lYXJ0aGx5XC1icmFuY2hlczsKK+aXjCA+IGJhbm5lclwtb3JcLWZsYWdcLWFkb3JuZWRcLXdpdGhcLWZlYXRoZXJzOwor6KGuID4gY2VyZW1vbmlhbFwtZHJlc3NcLXdvcm5cLWJ5XC10aGVcLWVtcGVyb3I7CivmuqcgPiByaXZlclwtaW5cLWFuaHVpXC1hbmRcLWppYW5nc3VcLXByb3ZpbmNlczsKK+ezjSA+IGZvb2RcLW1hZGVcLW9mXC1jcnVzaGVkXC1hbmRcLWNvb2tlZFwtcmljZTsKK+aumyA+IHRvXC1wdXRcLXRvXC1kZWF0aFwtdG9cLWltcHJpc29uXC1mb3JcLWxpZmU7Civni40gPiBzcGVjaWVzXC1vZlwtZGVlclwtZm91bmRcLWluXC1ub3J0aFwtY2hpbmE7Civnu4IgPiByaWJib25cLW9yXC1jb3JkXC11c2VkXC1hdHRhY2hcLW9ybmFtZW50czsKK+ejiSA+IHRoZVwtc3RvbmVcLWJhc2VcLW9yXC1wbGludGhcLW9mXC1hXC1waWxsYXI7CivolbkgPiBpcG9tb2VhXC1hcXVhdGljYVwtdXNlZFwtYXNcLWFcLXZlZ2V0YWJsZTsKK+m9iCA+IGNvbGRcLWluXC10aGVcLWhlYWRcLWNhdGFycmhcLW9mXC10aGVcLW5vc2U7CivpubsgPiBpbXB1cmVcLWNhcmJvbmF0ZVwtb2ZcLXNvZGl1bVwtb2ZcLW5hdHJvbjsKK+m2oiA+IGFcLWJpcmRcLXdoaWNoXC1mcmVxdWVudHNcLXRoZVwtc2VhXC1zaG9yZTsKK+mDqiA+IG5hbWVcLW9mXC1hXC1zdHJlYW1cLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+i9niA+IGFcLXZlaGljbGVcLWZvclwtdHJhbnNwb3J0aW5nXC1wcmlzb25lcnM7CivovLkgPiB0d29cLXBpZWNlc1wtb2ZcLXdvb2RcLXVuZGVybmVhdGhcLWFcLWNhcnQ7Civoop4gPiBjZXJlbW9uaWFsXC1kcmVzc1wtd29yblwtYnlcLXRoZVwtZW1wZXJvcjsKK+iKvyA+IGdyYXNzXC13aGljaFwtaGFzXC1iZWVuXC1jdXRcLWFuZFwtcmVncm93bjsKK+iDrCA+IGFcLWRpc2Vhc2UnJ3NcLW5hbWVcLWluXC1jaGluZXNlXC1tZWRpY2luZTsKK+e0sSA+IHJpYmJvblwtb3JcLWNvcmRcLXVzZWRcLWF0dGFjaFwtb3JuYW1lbnRzOwor56aKID4gc2VtaVwtYW5udWFsXC1jZXJlbW9ueVwtb2ZcLXB1cmlmaWNhdGlvbjsKK+aIpSA+IGFcLXNtYWxsXC1zdGVlbHlhcmRcLWZvclwtd2VpZ2hpbmdcLW1vbmV5Owor5a+NID4gdXNlZFwtYXNcLWFcLXRlcm1cLW9mXC1jb21wYXJpc29uXDpcLXJhdGhlcjsKK+WSlyA+IHZlcmJhbFwtcGFydGljbGVcLW9mXC1wZXJmZWN0aXZlXC1hc3BlY3Q7CivkuLEgPiBjaGlsZCcnc1wtaGFpcnN0eWxlXC1ib3VuZFwtaW5cLXR3b1wtdHVmdHM7CivkrqQgPiBvbmVcLW9mXC10aGVcLTM2XC1nYXJkZW5zXC1pblwtaGFuXC1keW5hc3R5Owor5KytID4gbmFtZVwtb2ZcLWFcLWxlZ2VuZGFyeVwtZmVyb2Npb3VzXC1hbmltYWw7CivkqpQgPiBjcm9zc1wtYmFyXC1vZlwtd29vZFwtdW5kZXJcLXRoZVwtY2FycmlhZ2U7Civkp6QgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivkpIwgPiBhXC1raW5kXC1vZlwtd2luZVwtYmVcLWJyZXdlZFwtZnJvbVwtZ3JhaW5zOwor5KC3ID4gdGhlXC1hcHBlYXJhbmNlXC1vZlwtaGVpZ2h0XC1pblwtYVwtcGVyc29uOwor5KCFID4gaGFuZHNcLWFuZFwtZmVldFwtY2hhcHBlZFwtZnJvbVwtdGhlXC1jb2xkOwor5J2kID4gYVwtcHJpbWl0aXZlXC10cmliZVwtaW5cLXNvdXRod2VzdFwtY2hpbmE7CivknZ8gPiBhXC1maWVyY2VcLW1hblwtZWF0aW5nXC1hbmltYWxcLWluXC1sZWdlbmQ7CivknZ0gPiBhblwtZXhjbGFtYXRpb25cLWluZGljYXRpbmdcLWFkbWlyYXRpb247Civkm5MgPiBhblwtb2ZmaWNpYWxcLXBvc2l0aW9uXC1pblwtZm9ybWVyXC10aW1lczsKK+SamCA+IHRoZVwtbG9uZ1wtYW5kXC11cHJpZ2h0XC1ob3Juc1wtb2ZcLWNhdHRsZTsKK+SWkiA+IGVhcnRoZW53YXJlXC13aXRoXC10aGVcLXNoYXBlXC1vZlwtYVwtYmVhbjsKK+SVjiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3NcLXBlcmVubmlhbDsKK+STkSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3NcLWR1Y2t3ZWVkczsKK+SRlyA+IHRvXC1wb3VuZFwtaW5cLW9yZGVyXC10b1wtcmVtb3ZlXC10aGVcLWh1c2s7CivkkZQgPiB0b1wtcG91bmRcLWluXC1vcmRlclwtdG9cLXJlbW92ZVwtdGhlXC1odXNrOwor5JCxID4gdG9cLXBpY2tcLXRoZVwtbWVhdFwtaW5cLWJldHdlZW5cLW9mXC1ib25lczsKK+SPgSA+IHVuYWJsZVwtdG9cLWhlYXJcLWRpc3RpbmN0bHlcLW9yXC1jbGVhcmx5Owor5IqgID4gdG9cLWdpdmVcLWFcLXN1cHBseVwtZlwtZ3JhaW5cLWZvclwtcmF0aW9uczsKK+SJnyA+IGFcLWJhbWJvb1wtYmFza2V0XC11c2VkXC10b1wtY2F0Y2hcLWZpc2hlczsKK+SIsCA+IGFcLWJydXNoXC1mb3JcLXdhc2hpbmdcLWtpdGNoZW5cLXV0ZW5zaWxzOwor5Ie8ID4gYVwtYmFtYm9vXC12ZXNzZWxcLXVzZWRcLXRvXC1jYXRjaFwtZmlzaGVzOwor5ISrID4gYVwta2luZFwtb2ZcLXNvcmdodW1cLXdpdGhcLXdoaXRlXC1zcHJvdXRzOwor5ISIID4gc2FjcmlmaWNlXC10b1wtaGFwcGluZXNzXC1hbmRcLWdvb2RcLWx1Y2s7Civkg6QgPiBibGFja1wtY29sb3JlZFwtZ3JpbmRzdG9uZVwtb3JcLXdoZXN0b25lOwor5IOOID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1cLXNtYWxsXC1waWVjZVwtb2ZcLWNvYWw7Civkgr8gPiB0b1wtcG91bmRcLWluXC1vcmRlclwtdG9cLXJlbW92ZVwtdGhlXC1odXNrOwor5IK5ID4gc291bmRcLW9mXC10aGVcLWZhbGxpbmdcLXBpZWNlc1wtb2ZcLXJvY2tzOwor5IG2ID4gdG9cLWxvb2tcLWF0XC1zb21ldGhpbmdcLXdpdGhvdXRcLXdpbmtpbmc7CivkgbUgPiBuZXdib3JuXC1iYWJ5XC13aXRoXC10aGVcLWV5ZWxpZHNcLWNsb3NlZDsKK+O9hSA+IHZlc3NlbFwtZm9yXC1jZXJlbW9ueVwtaW5cLWFuY2llbnRcLXRpbWVzOwor47i5ID4gY2F0dGxlXC13aXRoXC13aGl0ZVwtc3RyaXBlXC1vblwtdGhlXC1iYWNrOwor47iXID4gbm90XC1hXC1yZWFsXC1mYXRoZXJcLW9yXC1hXC1uYXR1cmVcLWZhdGhlcjsKK+OzmCA+IGFcLWZvdW50YWluXC1vclwtc3ByaW5nXC1mbG93c1wtZG93bndhcmRzOwor466vID4gd2hvbGVcLXBpZWNlXC1vZlwtb3JcLXVuYnJva2VuXC1maXJld29vZHM7CivjrpwgPiBhXC1ibG9ja3NcLWVuZ3JhdmVkXC1mb3JcLWhvbGRpbmdcLXRoaW5nczsKK+OrqiA+IHRvXC1wb3VuZFwtaW5cLW9yZGVyXC10b1wtcmVtb3ZlXC10aGVcLWh1c2s7Civjn7wgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivjnpQgPiB0aGVcLXVwcmlnaHRcLWJhclwtZm9yXC1mYXN0ZW5pbmdcLWFcLWRvb3I7CivjnZ4gPiBwcmV0ZW5kXC10b1wtYmVcLWRlbGljYXRlXC1hbmRcLWJlYXV0aWZ1bDsKK+OcuSA+IG5hbWVcLW9mXC1hXC1mb2xrXC1zb25nXC1pblwtYW5jaWVudFwtdGltZXM7CivjmoEgPiB0aGVcLWxvbmdcLXRhaWxcLWZlYXRoZXJzXC13aGljaFwtY3VybFwtdXA7CivpmK4gPiBhbmNpZW50XC1tdXNpY2FsXC1pbnN0cnVtZW50XDpcLXN1cm5hbWU7CivllpQgPiBkZXNjcmlwdGl2ZVwtb2ZcLWNyeWluZ1wtb3JcLW9mXC1jcm93aW5nOwor55CPID4gdmVzc2VsXC11c2VkXC10b1wtaG9sZFwtZ3JhaW5cLW9mZmVyaW5nczsKK+mClSA+IGZvcm1lclwtb3JcLWxpdGVyYXJ5XC1uYW1lXC1mb3JcLW5hbm5pbmc7CivprZEgPiBhXC1tb3VudGFpblwtZGVtb25cLXJlc2VtYmxpbmdcLWFcLXRpZ2VyOwor5pi2ID4gYVwtbG9uZ1wtZGF5XC5cLWJyaWdodFwuXC1leHRlbmRlZFwuXC1jbGVhcjsKK+e8pyA+IGFcLWNoYWluXC1vclwtcm9wZVwtdXNlZFwtYmluZFwtY3JpbWluYWxzOwor6J6tID4gYVwtZHJhZ29uXC13aG9zZVwtaG9ybnNcLWhhdmVcLW5vdFwtZ3Jvd247CivpvoAgPiBsb3NlXC1iYWJ5XC10ZWV0aFwtYW5kXC1nZXRcLWFkdWx0XC10ZWV0aDsKK+iCnCA+IHRvXC1zYWNyaWZpY2VcLW9uXC10d29cLXN1Y2Nlc3NpdmVcLWRheXM7CivpgpcgPiBhblwtYW5jaWVudFwtcGxhY2VcLWluXC10aGVcLXN0YXRlXC1vZlwtd3U7CivpvoYgPiBsb3NlXC1iYWJ5XC10ZWV0aFwtYW5kXC1nZXRcLWFkdWx0XC10ZWV0aDsKK+m9oCA+IGxvc2VcLWJhYnlcLXRlZXRoXC1hbmRcLWdldFwtYWR1bHRcLXRlZXRoOwor6b2UID4gbG9zZVwtYmFieVwtdGVldGhcLWFuZFwtZ2V0XC1hZHVsdFwtdGVldGg7CivpkKQgPiBodWdlXC10cmlwb2RcLW9mXC1icm9uemVcLXdpdGhcLXR3b1wtZWFyczsKK+inrSA+IG9uZVwtdHVybmluZ1wtdXBcLWFuZFwtb25lXC10dXJuaW5nXC1kb3duOwor6KSxID4gdG9cLWNhcnJ5XC1pblwtdGhlXC1ib3NvbVwtb3JcLXRoZVwtc2xlZXZlOwor6KSiID4gdG9cLWNhcnJ5XC1pblwtdGhlXC1ib3NvbVwtb3JcLXRoZVwtc2xlZXZlOwor6ImcID4gYVwtbG9uZ1wtbmFycm93XC12ZXNzZWxcLXdpdGhcLXR3b1wtbWFzdHM7Civoh78gPiB0b1wtc2VwYXJhdGVcLXRoZVwtZ3JhaW5cLWZyb21cLXRoZVwtaHVzazsKK+e4siA+IGFcLWNoYWluXC1vclwtcm9wZVwtdXNlZFwtYmluZFwtY3JpbWluYWxzOwor57WwID4gd2hpdGVcLWhlbXBlblwtY2xvdGhcLXdvcm5cLWJ5XC1tb3VybmVyczsKK+eiqiA+IHN0b25lXC1zbGFiXC11c2VkXC1mb3JcLXdhc2hpbmdcLWNsb3RoZXM7Civnm4cgPiB3aHlcLW5vdFw/XC13b3VsZFwtaXRcLW5vdFwtYmVcLWJldHRlclwtdG9cPzsKK+a7qyA+IHdhdGVyXC1pblwtd2hpY2hcLXJpY2VcLWhhc1wtYmVlblwtYm9pbGVkOwor5qqRID4gbG9nc1wtcm9sbGVkXC1kb3duXC1pblwtZGVmZW5zZVwtb2ZcLWNpdHk7Civmo7MgPiBzbWFsbFwtcGlsbGFyc1wtdGhhdFwtc3VwcG9ydFwtdGhlXC1yb29mOwor5biXID4gYVwtbXVsdGljb2xvcmVkXC1wcm9wXC11c2VkXC1pblwtZGFuY2luZzsKK+WYoCA+IHRoZVwtY2hpcnBpbmdcLW9mXC1iaXJkc1wtbG91ZFwtbGF1Z2h0ZXI7CivllIQgPiBmaW5hbFwtcGFydGljbGVcLW9mXC1hc3NlcnRpb25cLXBhdGhha2E7CivlgLsgPiBwaG9uZXRpY1wtdXNlZFwtaW5cLWtvcmVhblwtcGxhY2VcLW5hbWVzOwor5LW6ID4gYm91bmRhcnlcLWJldHdlZW5cLWFncmljdWx0dXJhbFwtbGFuZHM7CivktbkgPiBpbnNlY3RzXC10aGF0XC1hcmVcLWluanVyaW91c1wtdG9cLWNyb3BzOwor5K2NID4gdG9cLWxpdmVcLXdpdGhcLWFub3RoZXJcLWF0XC1oaXNcLWV4cGVuc2U7CivkrKUgPiBjb29rZWRcLWZvb2RcLXdoaWNoXC1oYXNcLWJlY29tZVwtbW91bGR5Owor5KyZID4gdG9cLWRhbmNlXC1hbmRcLXRvc3NcLWFib3V0XC1pblwtdGhlXC13aW5kOwor5KCrID4gdG9cLXN1Y2N1bWJcLXRvXC10aGVcLWVmZmVjdFwtb2ZcLWFsY29ob2w7CivknaYgPiBhXC1raW5kXC1vZlwtYW5pbWFsXC1sb29rc1wtbGlrZVwtbGVvcGFyZDsKK+ScoCA+IGxhbmd1YWdlXC1vZlwtdGhlXC1zYXZhZ2VcLW9yXC1iYXJiYXJpYW47CivklrogPiBhXC1sZWdlbmRhcnlcLWFuaW1hbFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5JalID4gaW5zZWN0c1wtdGhhdFwtYXJlXC1pbmp1cmlvdXNcLXRvXC1jcm9wczsKK+SSvCA+IGFcLWJhbWJvb1wtdHJheVwtZm9yXC1yYWlzaW5nXC1zaWxrd29ybXM7CivkkbMgPiBhXC1ob3Jpem9udGFsXC1iYXJcLWluXC1mcm9udFwtb2ZcLWFcLWJvYXQ7CivkkKcgPiB0b1wtcmV3YXJkXC1vclwtY2hlZXJcLXRyb29wc1wtd2l0aFwtZm9vZDsKK+SOsCA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLXNpY2h1YW5cLXByb3ZpbmNlOwor5I2fID4gYVwta2luZFwtb2ZcLWZpc2hcLW5ldFwtd2l0aFwtZmluZVwtbWVzaGVzOwor5IeoID4gYVwtYmFtYm9vXC1iYXNrZXRcLWZvclwtZm9vZFwtY29udGFpbmVyczsKK+SGjiA+IGdyYXNzXC1hbmRcLWdyYWluc1wtcHJvZHVjaW5nXC1ub1wtZnJ1aXQ7CivkhLsgPiBhXC1zZWNvbmRcLXRpbWVcLWdyb3dpbmdcLW9mXC1yaWNlXC1wbGFudDsKK+SAmiA+IHRvXC1saWZ0XC11cFwtdGhlXC1leWVzXC1hbmRcLWxvb2tcLWFyb3VuZDsKK+O/liA+IGNhcmJ1bmNsZVwtdXNlZFwtaW5cLW5hbWluZ1wtb2ZcLWFcLXBsYWNlOwor47qbID4gbmFtZVwtb2ZcLWFcLXZpbGxhZ2VcLWluXC1oZW5hblwtcHJvdmluY2U7Civjt4ggPiBlbWJlcnNcLWtlcHRcLWZvclwtc3RhcnRpbmdcLWFcLW5ld1wtZmlyZTsKK+O1gSA+IHZhc3RcLWFuZFwtYm91bmRsZXNzXC1vZlwtZmxvd2luZ1wtd2F0ZXI7Civjs5UgPiB3YXRlclwtaW5cLXdoaWNoXC1yaWNlXC1oYXNcLWJlZW5cLXdhc2hlZDsKK+OvqiA+IGNhcnZlZFwtb3JcLXBhdHRlcm5lZFwtd2luZG93XC1yYWlsaW5nczsKK+OrgCA+IGh1Z2VcLXRyaXBvZFwtb2ZcLWJyb256ZVwtd2l0aFwtdHdvXC1lYXJzOwor76aUID4gdmVzc2VsXC11c2VkXC10b1wtaG9sZFwtZ3JhaW5cLW9mZmVyaW5nczsKK+OgmSA+IGFcLW1vdW50YWluXC1wYXRoc1wtbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor45OtID4gdG9cLW1ha2VcLXJlYWR5XC10aGVcLWxlYXRoZXJcLWZvclwtc2hvZXM7CivjkLcgPiBhXC1raW5kXC1vZlwtcHVuaXNobWVudFwtaW5cLWhhblwtZHluYXN0eTsKK+iisSA+IGFcLXBpZWNlXC1vZlwtY2xvdGhcLXVzZWRcLXdyYXBcLWJ1bmRsZXM7CivmjLIgPiB0b1wtZmVlbFwtb3JcLWZvbmRsZVwtd2l0aFwtdGhlXC1maW5nZXJzOwor56+RID4gYVwtYmFtYm9vXC1iYXNrZXRcLWZvclwtY2FycnlpbmdcLWVhcnRoOwor6IKTID4gcmVnaW9uXC1iZXR3ZWVuXC1oZWFydFwtYW5kXC1kaWFwaHJhZ207Civmu6YgPiByaXZlclwtYW5kXC1jb3VudHlcLWluXC1oZWJlaVwtcHJvdmluY2U7Civpg5cgPiBjaXR5XC11bmRlclwtdGhlXC1jaG91XC1keW5cLlwtYVwtc3VybmFtZTsKK+ePjyA+IHR3b1wtcGllY2VzXC1vZlwtamFkZVwtam9pbmVkXC10b2dldGhlcjsKK+e2piA+IGRhcmtcLWdyZXlcLlwtdmFyaWVnYXRlZFwuXC1zdXBlcmxhdGl2ZTsKK+m6hyA+IGdlbmVyYWxcLW5hbWVcLWZvclwtdGhlXC1ob3JubGVzc1wtZGVlcjsKK+eSjiA+IGFcLW5lY2tsYWNlXC1tYWRlXC1vZlwtcHJlY2lvdXNcLXN0b25lczsKK+aOviA+IGFcLWdlbmVyYWxcLWRlc2lnbmF0aW9uXC1vZlwtb2ZmaWNpYWxzOwor6YOHID4gYW5cLWFuY2llbnRcLWZldWRhbFwtc3RhdGVcLWluXC1zaGFhbnhpOwor6b6YID4gdGhlXC1hcHBlYXJhbmNlXC1vZlwtYVwtZHJhZ29uXC13YWxraW5nOwor6bS9ID4gYVwtc3BlY2llc1wtb2ZcLWJpcmRcLXJlc2VtYmxpbmdcLXF1YWlsOwor6YSrID4gc3RhdGVcLWluXC10b2RheScnc1wtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YSHID4gYVwtbmFtZVwtb2ZcLWFcLXRvd25cLWluXC1oZW5hblwtcHJvdmluY2U7Civov78gPiB0b1wtYmVcLXRoZVwtZmlyc3RcLXRvXC1iZWdpblwtYVwtcXVhcnJlbDsKK+i9lSA+IGdyZWF0XC1hcnJheVwtb2ZcLXNwZWFyc1wtYW5kXC1jaGFyaW90czsKK+i8tSA+IGdyZWF0XC1hcnJheVwtb2ZcLXNwZWFyc1wtYW5kXC1jaGFyaW90czsKK+i8oCA+IGdyZWFzZVwtcG90XC1odW5nXC11bmRlclwtYXhsZVwtb2ZcLWNhcnQ7CivohrIgPiB0aGVcLXRocmVlXC1kaXZpc2lvbnNcLW9mXC10aGVcLXZpc2NlcmE7CivntJYgPiBhXC1yb3BlXC1mb3JcLWxlYWRpbmdcLWNhdHRsZVwtb3JcLWhvcnNlOwor57CjID4gYVwtYmFtYm9vXC1iYXNrZXRcLWZvclwtY2FycnlpbmdcLWVhcnRoOwor56yuID4gYm9hcmRzXC13aGljaFwtc3VwcG9ydFwtdGlsZXNcLW9uXC1yb29mOwor56CFID4gY3Jvc3NcLXN0cmVhbVwtYnlcLXN0ZXBwaW5nXC1vblwtc3RvbmVzOwor55OUID4gYVwtbmVja2xhY2VcLW1hZGVcLW9mXC1wcmVjaW91c1wtc3RvbmVzOwor55KJID4gYVwtdmVzc2VsXC11c2VkXC1ob2xkXC1ncmFpblwtb2ZmZXJpbmdzOwor54+xID4gYVwtbmVja2xhY2VcLW1hZGVcLW9mXC1wcmVjaW91c1wtc3RvbmVzOwor546oID4gdHdvXC1waWVjZXNcLW9mXC1qYWRlXC1qb2luZWRcLXRvZ2V0aGVyOwor54GkID4gcml2ZXJcLWFuZFwtY291bnR5XC1pblwtaGViZWlcLXByb3ZpbmNlOwor5qKhID4gdHJheVwtZm9yXC1jYXJyeWluZ1wtc2FjcmlmaWNpYWxcLW1lYXQ7CivmjLEgPiB0b1wtZmVlbFwtb3JcLWZvbmRsZVwtd2l0aFwtdGhlXC1maW5nZXJzOwor5bm1ID4gZXZlblwtbGV2ZWxcLlwtdG9cLXJhaXNlXC1pblwtYm90aFwtaGFuZHM7Civlq4QgPiBhblwtYW5jaWVudFwtZW1wZXJvcicnc1wtbW90aGVyJydzXC1uYW1lOwor5Zu3ID4gcm91bmRcLXNoYXBlZFwtc3RvcmFnZVwtYmluXC1mb3JcLWdyYWluOwor5LSZID4gYVwta2luZFwtb2ZcLWJpcmRcLXJlc2VtYmxpbmdcLXRoZVwtZHVjazsKK+SygyA+IGFcLWNhcnBcLWxpa2VcLWZpc2hcLXdpdGhcLWNoaWNrZW5cLWZlZXQ7CivkqZcgPiB0b1wtcnVsZVwtYnlcLW1pZ2h0XC1yYXRoZXJcLXRoYW5cLXJpZ2h0Owor5KKVID4gYVwtZ3JvdXBcLW9mXC1wZW9wbGVcLXdhbGtpbmdcLXRvZ2V0aGVyOwor5JqhID4gYm9uZXNcLWluXC1hXC1ob3JuXC1vZlwtY2F0dGxlXC1hbmRcLWdvYXQ7CivkmawgPiBwbGFpdHNcLW9uXC10aGVcLXNpZGVzXC1vZlwtYVwtcGV0dGljb2F0Owor5JCAID4gdG9cLWRpc21lbWJlclwtYm9keVwtb2ZcLXRoZVwtbGl2ZXN0b2NrOwor5I6OID4gdG9cLWdsaWRlXC1vclwtdG9cLWhvdmVyXC11cFwtaW5cLXRoZVwtYWlyOwor5I2KID4gY2xheVwtbWFkZVwtYmxvd2luZ1wtd2luZFwtaW5zdHJ1bWVudHM7CivkiL8gPiBiZWx0XC1vZlwtdGhlXC1jYW52YXNcLXRvcFwtb25cLXZlaGljbGVzOwor5IeuID4gYVwtYmFtYm9vXC1tYXRcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SFmiA+IGNsb3NlbHlcLWdyb3dpbmdcLW9mXC10aGVcLXJpY2VcLXBsYW50czsKK+SEtiA+IHJpY2VcLXBsYW50XC1ncm93aW5nXC10aGVcLXNlY29uZFwtdGltZTsKK+SBviA+IHJlZFwtYW5kXC1zd2VsbGluZ1wtb2ZcLXRoZVwtZXllXC1zb2NrZXQ7CivkgaggPiB0b1wtb3BlblwtdGhlXC1leWVzXC13aXRoXC1hc3RvbmlzaG1lbnQ7CivjvZsgPiBuYXJyb3dcLXRyYWlsXC1vZlwtcGF0aFwtaW5cLXRoZVwtZmllbGRzOwor47qRID4gZG9nc1wtd29ybWVkXC10aHJvdWdoXC1hXC1uYXJyb3dcLXBsYWNlOwor47miID4gYVwtbGFyZ2VcLWFwZVwtZm91bmRcLWluXC13ZXN0ZXJuXC1jaGluYTsKK+O5nCA+IHR3b1wtZG9nc1wtYXJlXC1iYXJraW5nXC10b1wtZWFjaFwtb3RoZXI7CivjuYkgPiBhXC1sZWdlbmRhcnlcLWFuaW1hbFwtd2l0aFwtdGhyZWVcLWZlZXQ7Civjt6YgPiB0b1wtb3BlblwtdGhlXC1leWVzXC13aXRoXC1hc3RvbmlzaG1lbnQ7CivjtoAgPiBkZWVwXC1hbmRcLXZhc3RcLW9mXC10aGVcLWZsb3dpbmdcLXdhdGVyOwor47C2ID4gdG9cLXdyaW5rbGVcLXRoZVwtbm9zZVwtd2l0aFwtc29ycm93ZnVsOwor462yID4gYVwtd29vZGVuXC1mcmFtZVwtZm9yXC1jYXJyeWluZ1wtdGhpbmdzOwor46GhID4gc2NyZWVuXC10b1wtbWFrZVwtYVwtdGVtcG9yYXJ5XC1raXRjaGVuOwor46C/ID4gYVwta2luZFwtb2ZcLWRlbGljYXRlXC1hbmRcLWZpbmVcLWZhYnJpYzsKK+OcuiA+IG5pY2VcLXdoaXRlXC1jb2xvclwtYW5kXC1sb29rc1wtc29cLWdvb2Q7CivjnLUgPiB3aXRoXC1hXC1jaGFybWluZ1wtc3ByaWdodGx5XC1jYXJyaWFnZTsKK+OaqSA+IHdpdGhcLWFcLWNoYXJtaW5nXC1zcHJpZ2h0bHlcLWNhcnJpYWdlOwor45mIID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+OWoSA+IHRoZVwtYmlyZHNcLXNpbmdpbmdcLWR1cmluZ1wtdGhlXC1uaWdodDsKK+OVuiA+IGxvb2tzXC1iaWdcLW91dHNpZGVcLWJ1dFwtZW1wdHlcLWluc2lkZTsKK+OVhCA+IHRvXC1hcHBseVwta25vd2xlZGdlXC10b1wtZmluYWxcLWNhdXNlczsKK+ekviA+IGdvZFwtb2ZcLXRoZVwtc29pbFwtYW5kXC1hbHRhcnNcLXRvXC1oaW07CivnkZ8gPiBsYXJnZVwtc3RyaW5nZWRcLW11c2ljYWxcLWluc3RydW1lbnQ7CivmpZ4gPiB1c2VkXC1mb3JcLWNleWxvblwtaW5cLWJ1ZGRoaXN0XC10ZXh0czsKK+WWvSA+IHVzZWRcLWluXC1vbm9tYXRvcG9ldGljXC1leHByZXNzaW9uczsKK+WahSA+IHRhbGtcLWluZGlzdGluY3RseVwtYW5kXC1mYWx0ZXJpbmdseTsKK+ijsSA+IHRvXC1tb3VudFwtbWFwc1wtb3JcLXNjcm9sbHNcLXRvXC1wYXN0ZTsKK+eMoiA+IGFcLWtpbmRcLW9mXC1tb25rZXlcLWZvdW5kXC1pblwtd1wuY2hpbmE7CivonK4gPiBhXC1mYWJ1bG91c1wtY3JlYXR1cmVcLWxpa2VcLWFcLXR1cnRsZTsKK+WRliA+IHVzZWRcLWluXC1vbm9tYXRvcG9ldGljXC1leHByZXNzaW9uczsKK+eioSA+IHN0b25lXC1yb2xsZXJcLXVzZWRcLXRvXC1sZXZlbFwtZmllbGRzOwor6YSjID4gbmFtZVwtb2ZcLWFuY2llbnRcLWNpdHlcLWluXC1uXC5qaWFuZ3N1Owor57KiID4gZ3JhaW5cLW9mZmVyZWRcLWluXC1yaXR1YWxcLXNhY3JpZmljZTsKK+ewpiA+IGxhcmdlXC11bWJyZWxsYVwtd2l0aFwtYVwtbG9uZ1wtaGFuZGxlOwor6J6TID4gYVwtc21hbGxcLWNpY2FkYVwtd2l0aFwtYVwtc3F1YXJlXC1oZWFkOwor6a2KID4gYVwtbXl0aGljYWxcLWNyZWF0dXJlXC1zYWlkXC1odXJsXC1zYW47Civpn5AgPiBrbmVlXC1wYWRcLW1hZGVcLW9mXC1yZWRcLWR5ZWRcLWxlYXRoZXI7Civou48gPiBjcm9zc1wtYmFyXC1hdFwtZW5kXC1vZlwtcG9sZXNcLW9mXC1jYXJ0Owor6JaAID4gdGhlXC1oaXBwdXJpc1wtb3JcLW1hcmUnJ3NcLXRhaWxcLXBsYW50Owor6JWwID4gdGhlXC1oaXBwdXJpc1wtb3JcLW1hcmUnJ3NcLXRhaWxcLXBsYW50Owor6IGdID4gdG9cLWN1dFwtdGhlXC1sZWZ0XC1lYXJzXC1vZlwtdGhlXC1zbGFpbjsKK+iAlCA+IHRvXC1ob2VcLXVwXC10aGVcLWVhcnRoXC1hcm91bmRcLXBsYW50czsKK+ewqyA+IG11c2ljYWxcLWluc3RydW1lbnRcLWxpa2VcLXBhblwtcGlwZXM7CivnsKggPiBhXC1iZWFtXC1mb3JcLWhhbmdpbmdcLWJlbGxzXC1vclwtZHJ1bXM7CivnsJggPiBtdXNpY2FsXC1pbnN0cnVtZW50XC1saWtlXC1wYW5cLXBpcGVzOwor566+ID4gbXVzaWNhbFwtaW5zdHJ1bWVudFwtbGlrZVwtcGFuXC1waXBlczsKK+eksyA+IG5hbWVcLW9mXC1wbGFjZVwtaW5cLXNoYW5cLXhpXC1wcm92aW5jZTsKK+eiqyA+IGNvYXJzZVwtc3RvbmVcLVwodXNlZFwtZm9yXC13aGV0c3RvbmVcKTsKK+eSryA+IGphZGVcLW9ybmFtZW50XC1pblwtdGhlXC1zZWFtc1wtb2ZcLWNhcDsKK+eQryA+IGFcLWphZGVcLXR1YmVcLXVzZWRcLWFzXC1hblwtaW5zdHJ1bWVudDsKK+eOgSA+IGFcLWRvZ1wtd2l0aFwtYVwtbG9uZ1wtc25vdXRcLW9yXC1tdXp6bGU7Civmo58gPiB0aGVcLW1haW5cLWJlYW1zXC1zdXBwb3J0aW5nXC1hXC1ob3VzZTsKK+aIoCA+IGFcLXN3b3JkXC5cLXBvdHRlcicnc1wtY2xheVwuXC10b1wtZ2F0aGVyOwor5ZqmID4gdXNlZFwtaW5cLW9ub21hdG9wb2V0aWNcLWV4cHJlc3Npb25zOwor5ZiNID4gdXNlZFwtaW5cLW9ub21hdG9wb2V0aWNcLWV4cHJlc3Npb25zOwor5ZGtID4gZmluYWxcLXBhcnRpY2xlXC1leHByZXNzaW5nXC1jb25zZW50Owor5ZGhID4gdGhlXC1jb3JuZXJzXC1vZlwtdGhlXC1tb3V0aFwtdGhlXC1saXBzOwor5LasID4gaGFyZFwtZmluc1wtb25cLXRoZVwtYmFja1wtb2ZcLWFcLWRyYWdvbjsKK+S2hSA+IGFcLW1hcm1vdFwtbGlrZVwtcmF0XC13aXRoXC1hXC1iaWdcLWhlYWQ7CivktJMgPiBnZW5lcmFsXC10ZXJtXC1mb3JcLXNtYWxsXC1iaXJkXC1ncm91cDsKK+SslyA+IGJsb3duXC1vclwtdG9zc2VkXC1hYm91dFwtYnlcLXRoZVwtd2luZDsKK+SniSA+IG5hbWVcLW9mXC1hXC1wYXZpbGlvblwtaW5cLWhhblwtZHluYXN0eTsKK+SltiA+IGNvb2tpbmdcLXV0ZW5zaWxcLXVzZWRcLWluXC1vbGRcLXRpbWVzOwor5KWsID4gYVwtbXVzaWNhbFwtaW5zdHJ1bWVudFwtaW5cLW9sZFwtdGltZXM7Civko5wgPiBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtYW5jaWVudFwtdGltZXM7Civko5YgPiBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtYW5jaWVudFwtdGltZXM7Civko5UgPiBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtYW5jaWVudFwtdGltZXM7Civko4wgPiByZXNpZGVuY2VcLW9mXC1hXC1wcmluY2VcLW9yXC1ub2JpbGl0eTsKK+ShnSA+IGFcLXJlYXJcLWNvdmVyaW5nXC1vZlwtYVwtYmlnXC1jYXJyaWFnZTsKK+ShiiA+IHRoZVwtcHJvdHJ1ZGVkXC1zaWRlc1wtb2ZcLWFcLWNhcnJpYWdlOwor5KCaID4gdG9cLXN0ZXBcLW9uXC10aGVcLWdyb3VuZFwtd2l0aFwtYVwtYmFuZzsKK+SWgyA+IHRoZVwtd2F0ZXJcLWlzXC13YXZpbmdcLWluXC10aGVcLWJyZWV6ZTsKK+SVpCA+IG5hbWVcLW9mXC1hXC1jb3VudHlcLWluXC1hbmNpZW50XC10aW1lczsKK+SSpyA+IGFcLXZlc3NlbFwtb3JcLXV0ZW5zaWxcLW1hZGVcLW9mXC1zdHJhdzsKK+SNsiA+IGFcLWtpbmRcLW9mXC1zaGVlcFwtd2l0aFwtY3VybGVkXC1oYWlyczsKK+SLuCA+IGJhY2tcLWNlbnRlclwtc3V0dXJlXC1vZlwtdGhlXC1jbG90aGVzOwor5IubID4gdGhlXC1jbHVzdGVyZWRcLWVtYnJvaWRlcnlcLXBhdHRlcm5zOwor5IqWID4gdG9cLWVhdFwtcmljZVwtZ3J1ZWxcLW1peGVkXC13aXRoXC1tZWF0Owor5IaFID4gdG9cLWFjY3VtdWxhdGVcLW9yXC10b1wtc3RvcmVcLXVwXC1yaWNlOwor5IKnID4gcm9ja3NcLWNsdXN0ZXJlZFwtcGlsZVwtdXBcLXRvZ2V0aGVyczsKK+SAvyA+IHRvXC1oYXZlXC1hXC1jYXN1YWxcLWFuZFwtc2hvcnRcLWdsYW5jZTsKK+SAuCA+IHRvXC1oYXZlXC1hXC1jYXN1YWxcLWFuZFwtc2hvcnRcLWdsYW5jZTsKK+O5lyA+IGNhdHRsZVwtYW5kXC1zaGVlcFwtaGF2ZVwtbm9cLWNoaWxkcmVuOwor47ayID4gbWVhc3VyaW5nXC11bml0XC1mb3JcLXRoZXJtb2R5bmFtaWNzOwor47W6ID4gbmFtZVwtb2ZcLWFcLXN0cmVhbVwtaW5cLWFuY2llbnRcLXRpbWVzOwor47WQID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaHViZWlcLXByb3ZpbmNlOwor47WLID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaHVuYW5cLXByb3ZpbmNlOwor47GSID4gdG9cLXNjb2xkXC1vclwtYmxhbWVcLWluXC1hXC1sb3VkXC12b2ljZTsKK+OuviA+IGFcLXBsYWNlXC1pblwtdG9kYXknJ3NcLWh1bmFuXC1wcm92aW5jZTsKK+OsiCA+IHRoZVwtc3VuXC13YXNcLXNoaW5pbmdcLWFuZFwtaXQnJ3NcLXdhcm07CivjqoogPiBpbmZlc3RlZFwtd2l0aFwtYmFuZGl0c1wtYW5kXC1yb2JiZXJzOwor46iYID4gdG9cLWJsb3dcLXRoZVwtbm9zZVwtd2l0aFwtdGhlXC1maW5nZXJzOwor45++ID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluXC1pblwtY291bnR5XC1qaWFuOwor45+4ID4gbmFtZVwtb2ZcLXBhdmlsaW9uXC1pblwtYW5jaWVudFwtY2hpbmE7Civjn4kgPiBuYW1lXC1vZlwtcGF2aWxpb25cLWluXC1hbmNpZW50XC1jaGluYTsKK+OfgiA+IG5hbWVcLW9mXC1jYXBlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor45qqID4gdG9cLW1ha2VcLWFcLWRlY2VwdGl2ZVwtc2hvd1wtb2ZcLXBvd2VyOwor45KNID4gdXR0ZXJseVwtd2VhcnlcLWluXC1ib2R5XC1hbmRcLXNwaXJpdHM7CivjkIwgPiBhXC10cmliZVwtb2ZcLXNhdmFnZXNcLWluXC1zb3V0aFwtY2hpbmE7CivmjbsgPiB0b1wtdHdpc3RcLW9yXC1uaXBcLXdpdGhcLXRoZVwtZmluZ2VyczsKK+aIjCA+IGVsZXZlbnRoXC1vZlwtdGVycmVzdHJpYWxcLWJyYW5jaGVzOwor5pCTID4gdG9cLXJ1Ylwtb3JcLXJvbGxcLWJldHdlZW5cLXRoZVwtaGFuZHM7CivlsKcgPiBhXC1sZWdlbmRhcnlcLWFuY2llbnRcLWVtcGVyb3JcLXNhZ2U7CivlqbYgPiB3aWZlXC1vZlwtZmF0aGVyJydzXC15b3VuZ2VyXC1icm90aGVyOwor5o6sID4gdG9cLWdyYXNwXC1vclwtaG9sZFwtd2l0aFwtYm90aFwtaGFuZHM7CivluZsgPiBzY3JvbGxcLW9mXC1zaWxrXC1vclwtY2xvdGhcLXByZXNlbnRlOwor5qOCID4gY2FydmVkXC1vclwtcGF0dGVybmVkXC13aW5kb3dcLXNpbGxzOwor5rCyID4gbGlmZVwtZ2l2aW5nXC1pbmZsdWVuY2VzXC1vZlwtbmF0dXJlOwor6JqdID4gaGFpcnlcLWFuZFwtcG9pc29ub3VzXC1jYXRlcnBpbGxhcnM7CivmvqcgPiByaXZlclwtaW5cLW5vcnRoZXJuXC1odW5hblwtcHJvdmluY2U7Civnra4gPiBkaXZpbmF0aW9uXC13aXRoXC1zdGFsa3NcLW9mXC1wbGFudHM7CivnrKogPiBhXC1jb2Fyc2VcLW1hdFwtb2ZcLXJ1c2hlc1wtb3JcLWJhbWJvbzsKK+mmkyA+IGZyaWVkXC1yb3VuZFwtY2FrZXNcLW9mXC13aGVhdFwtZmxvdXI7CivnrpAgPiB0b1wtZHJhd1wtYVwtYmFtYm9vXC1ib3dcLW9yXC1jcm9zc2JvdzsKK+aJgyA+IGFcLWRvb3JcLWJhclwtcGxhY2VkXC1vdXRzaWRlXC1hXC1kb29yOwor5LuJID4gc3VybmFtZVwtb2ZcLXRoZVwtbW90aGVyXC1vZlwtbWVuY2l1czsKK+mqviA+IGFueVwtb2JqZWN0XC10aGF0XC1zdGlja3NcLWluXC10aHJvYXQ7CivppYogPiBmcmllZFwtcm91bmRcLWNha2VzXC1vZlwtd2hlYXRcLWZsb3VyOwor6Ya8ID4gb2ZmZXJcLWZvb2RcLWFuZFwtd2luZVwtb25lJydzXC1ndWVzdHM7CivovKcgPiBjdXJ0YWluZWRcLWNhcnJpYWdlXC11c2VkXC1ieVwtd29tZW47Civou78gPiBjdXJ0YWluZWRcLWNhcnJpYWdlXC11c2VkXC1ieVwtd29tZW47Civou5kgPiBhXC1jaGluZXNlXC1mYW1pbHlcLW5hbWVcLXRvXC1hcnJhbmdlOwor6LSBID4gdG9cLWRlZmVhdFwtdG9cLXNwb2lsXC1vclwtYmVcLXNwb2lsZWQ7Civos48gPiBwZWFybHNcLW9yXC1zaGVsbHNcLXN0cnVuZ1wtdG9nZXRoZXI7Civoq4ogPiB0b1wtbWFrZVwtYVwtanVkaWNpYWxcLWludmVzdGlnYXRpb247CivonoYgPiBoYWlyeVwtYW5kXC1wb2lzb25vdXNcLWNhdGVycGlsbGFyczsKK+e6mSA+IHN0cmluZ1wtb25cLXdoaWNoXC1jb2luc1wtYXJlXC1zdHJ1bmc7Civns6QgPiBmcmllZFwtcm91bmRcLWNha2VzXC1vZlwtd2hlYXRcLWZsb3VyOwor5620ID4gdHlwZVwtb2ZcLWdyYXNzXC11c2VkXC1pblwtZGl2aW5hdGlvbjsKK+eQhyA+IGNvYXJzZVwtdmFyaWV0eVwtb2ZcLWphc3Blclwtb3JcLWphZGU7CivmsLMgPiBsaWZlXC1naXZpbmdcLWluZmx1ZW5jZXNcLW9mXC1uYXR1cmU7Civmq7ogPiBjYXJ2ZWRcLW9yXC1wYXR0ZXJuZWRcLXdpbmRvd1wtc2lsbHM7Civmo6sgPiB0aG9ybnlcLXNocnViXC13aXRoXC15ZWxsb3dcLWZsb3dlcnM7Civml5MgPiBzZXJyYXRlZFwtZWRnZXNcLW9uXC1hXC1jaGluZXNlXC1mbGFnOwor5bayID4gYVwtbmFtZVwtb2ZcLWFuXC1vbGRcLXRvd25cLWluXC1zaWNodWFuOwor5bCtID4gYVwtbGVnZW5kYXJ5XC1hbmNpZW50XC1lbXBlcm9yXC1zYWdlOwor5ay4ID4gd2lmZVwtb2ZcLWZhdGhlcicnc1wteW91bmdlclwtYnJvdGhlcjsKK+WhsSA+IHBsYWNlXC1uYW1lXC1pblwtZ3Vhbmdkb25nXC1wcm92aW5jZTsKK+WgryA+IGFcLWxlZ2VuZGFyeVwtYW5jaWVudFwtZW1wZXJvclwtc2FnZTsKK+WJqCA+IHNvdW5kXC1vZlwtc29tZXRoaW5nXC1iZWluZ1wtc21hc2hlZDsKK+S1rCA+IGJsYWNrXC1zb3VuZFwtb2ZcLXRoZVwtZmxvd2luZ1wtd2F0ZXI7CivktI0gPiBhXC1raW5kXC1vZlwtc3RyYW5nZVwtYW5kXC13ZWlyZFwtYmlyZDsKK+S0iSA+IGdlbmVyYWxcLXRlcm1cLWZvclwtYVwtZ3JvdXBcLW9mXC1iaXJkOwor5LOwID4gYVwtYmlyZFwtcmVzZW1ibGluZ1wtdGhlXC13aWxkXC1nb29zZTsKK+SziCA+IGFcLWJpcmRcLXJlc2VtYmxpbmdcLXRoZVwtd2lsZFwtZ29vc2U7CivksZkgPiBhXC1zbWFsbFwta2luZFwtb2ZcLXR1bmFcLW9yXC1zdHVyZ2VvbjsKK+SwlCA+IGRyZXNzZWRcLWhhaXJcLWluXC1hXC1ob3Jpem9udGFsXC13YXk7CivksIkgPiBkcmVzc2VkXC1oYWlyXC1pblwtYVwtaG9yaXpvbnRhbFwtd2F5Owor5KqsID4gc291bmRcLW9mXC1wcmVzc2luZ1wtc29tZXRoaW5nXC1kb3duOwor5KmsID4gYW5cLW9ybmFtZW50YWxcLWl0ZW1cLW9uXC1hXC1zY2FiYmFyZDsKK+SntSA+IGFcLWJpcmRcLWxpa2VcLXRoZVwtc2VjcmV0YXJ5XC1mYWxjb247Civkpo4gPiBhXC1tZWNoYW5pY2FsXC1kZXZpY2VcLWZvclwtbGVhZFwtb3JlOwor5KW+ID4gdG9cLW1lbHRcLW9yXC1jYXN0XC1ieVwtdXNpbmdcLWFcLW1vdWxkOwor5KWxID4gdG9cLW1lbHRcLW9yXC1jYXN0XC1ieVwtdXNpbmdcLWFcLW1vdWxkOwor5KWZID4gYVwtc3BlY3VsdW1cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SktyA+IGFcLWxhbmNlXC13aXRoXC10aHJlZVwtb3JcLXR3b1wtcG9pbnRzOwor5KOiID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtYW5jaWVudFwtdGltZXM7Civko5sgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1hbmNpZW50XC10aW1lczsKK+SdgSA+IGFcLWtpbmRcLW9mXC13aWxkXC1sZWd1bWlub3VzXC1wbGFudHM7Civkm7YgPiB3cml0aW5nc1wtZXVsb2dpemluZ1wtYWRlYWRcLXBlcnNvbjsKK+SXpCA+IGFcLWtpbmRcLW9mXC13b3JtXC1wcm9kdWNlZFwtaW5cLXdhdGVyOwor5I2wID4gYVwtcGxhZ3VlXC1vclwtYVwtcGVzdGlsZW5jZVwtb2ZcLWdvYXQ7CivkioogPiB3ZWxsXC1ib2lsZWRcLWNvbmdlZVwtb3JcLXJpY2VcLWdydWVsOwor5ImIID4gYVwta2luZFwtb2ZcLWJhbWJvb1wtd2l0aFwtYVwtcmVkXC1za2luOwor5IiTID4gYVwta2luZFwtb2ZcLWJhbWJvb1wtd2l0aFwtYVwtcmVkXC1za2luOwor5IeIID4gdG9cLXB1dFwtaW50b1wtYVwtY3VwYm9hcmRcLW9yXC1jbG9zZXQ7Civkh4AgPiBvcm5hbWVudHNcLW9mXC1maW5lXC1mZWF0aGVyXC1vclwtZnVyOwor5IW5ID4gYVwta2luZFwtb2ZcLWRyaWxsXC1mb3JcLXNvd2luZ1wtZ3JhaW47CivkhakgPiBjcm9va2VkXC1hbmRcLXdpbmRpbmdcLW9mXC10aGVcLWdyYXNzOwor5IS8ID4gbmFtZVwtb2ZcLWFcLXBsYWNlXC1pblwtYW5jaWVudFwtdGltZXM7CivkhLcgPiBhXC1tZWFzdXJlbWVudFwtZXF1YWxcLXRvXC0xMjBcLWNhdHR5Owor5IOqID4gYVwtcGxhdGZvcm1cLWZvclwtc2FjcmlmaWNpYWxcLXJpdGVzOwor5IKeID4gYVwtdGhvcm55XC10cmVlXC1hYm91dFwtMTVcLWZlZXRcLWhpZ2g7CivjupwgPiBmaWVyY2VcLWRvZ1wtd2l0aFwtbG9uZ1wtc2hhZ2d5XC1oYWlyOwor47qJID4gYVwtZmllcmNlXC1hbmltYWxcLW9mXC10aGVcLWRvZ1wtdHJpYmU7CivjuaEgPiBhXC1ydXNoXC1hbmRcLWltcGF0aWVudFwtZGlzcG9zaXRpb247CivjuKEgPiBib2FyZFwtdG9cLWJsb2NrXC10aGVcLXdhdGVyXC1jdXJyZW50Owor47iaID4gc2NhdHRlcmVkXC1vclwtZGlzcGVyc2VkXC1hbmRcLWNsZWFyOwor47StID4gaW1tZWFzdXJhYmxlXC1kZXB0aFwtb3JcLXByb2Z1bmRpdHk7Civjs4YgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1hbmNpZW50XC10aW1lczsKK+OxqCA+IHRvXC1wcmVwYXJlXC1hXC1ib2R5XC1mb3JcLXRoZVwtY29mZmluOwor46yHID4gbmFtZVwtb2ZcLWFcLXN0YXRlXC1pblwtYW5jaWVudFwtY2hpbmE7Civjqb0gPiBicmFuY2hlc1wtdG9cLWJlXC1hXC1wYXJhc2l0ZVwtYVwtdHJlZTsKK+OokiA+IHRvXC1jdXRcLW9wZW5cLWFuZFwtY2xlYW5cLVwtXC1cLWFzXC1maXNoOwor46KyID4gdGhlXC01dGhcLW9mXC10aGVcLWVpZ2h0XC1kaWFncmFtc1wt5YWr5Y2mOwor45+oID4gYVwtZm91bnRhaW5cLWluXC10aGVcLXNpZGVcLW9mXC1hXC1oaWxsOwor45uNID4gdG9cLWhhdmVcLW9uZScnc1wtYW1iaXRpb25cLWZ1bGZpbGxlZDsKK+OaoSA+IHN0YW5kaW5nXC13aXRob3V0XC1hXC1zdHJhaWdodFwtYmFjazsKK+OaiSA+IHRvXC1tYWtlXC1hXC1wcm9maXRcLW9uXC1zZWxsXC1hbmRcLWJ1eTsKK+OZsCA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor45WjID4gYVwtbWFyc2hcLWF0XC10aGVcLWZvb3RcLW9mXC10aGVcLWhpbGxzOwor5LusID4gYWRqdW5jdFwtcHJvbm91blwtaW5kaWNhdGVcLXBsdXJhbDsKK+WRoiA+IGludGVycm9nYXRpdmVcLW9yXC1lbXBoYXRpY1wtZmluYWw7CivmpbwgPiBidWlsZGluZ1wtb2ZcLXR3b1wtb3JcLW1vcmVcLXN0b3JpZXM7Civoja8gPiBsZWFmXC1vZlwtZGFodXJpYW5cLWFuZ2VsaWNhXC1wbGFudDsKK+m9jiA+IHRha2VcLWluXC1ib3RoXC1oYW5kc1wtYW5kXC1vZmZlclwtdG87CivkuIggPiB1bml0XC1vZlwtbGVuZ3RoXC1lcXVhbFwtM1wuM1wtbWV0ZXJzOwor5oyRID4gYVwtbG9hZFwtY2FycmllZFwtb25cLXRoZVwtc2hvdWxkZXJzOwor5qiTID4gYnVpbGRpbmdcLW9mXC10d29cLW9yXC1tb3JlXC1zdG9yaWVzOwor56WdID4gcHJheVwtZm9yXC1oYXBwaW5lc3NcLW9yXC1ibGVzc2luZ3M7CivmnYkgPiB2YXJpb3VzXC1zcGVjaWVzXC1vZlwtcGluZVwtYW5kXC1maXI7CivmnKcgPiBjb25kaXRpb25cLW9yXC1hcHBlYXJhbmNlXC1vZlwtbW9vbjsKK+acpiA+IGNvbmRpdGlvblwtb3JcLWFwcGVhcmFuY2VcLW9mXC1tb29uOwor6Zy4ID4gcnVsZVwtYnlcLW1pZ2h0XC1yYXRoZXJcLXRoYW5cLXJpZ2h0Owor566qID4gc21hbGxcLWJhbWJvb1wtYmFza2V0XC1mb3JcLWhvbGRpbmc7CivphqQgPiBhbnlcLWphbVwtbGlrZVwtb3JcLXBhc3RlXC1saWtlXC1mb29kOwor6YWxID4gYW55XC1qYW1cLWxpa2VcLW9yXC1wYXN0ZVwtbGlrZVwtZm9vZDsKK+iDpyA+IGNvbmRpdGlvblwtb3JcLWFwcGVhcmFuY2VcLW9mXC1tb29uOwor54KVID4gdGhlXC1icmlja1wtYmVkXC1pblwtbm9ydGhlcm5cLWNoaW5hOwor5LqlID4gbGFzdFwtb2ZcLXR3ZWx2ZVwtZWFydGhseVwtYnJhbmNoZXM7CivnsqQgPiBndWFuZ2RvbmdcLWFuZFwtZ3Vhbmd4aVwtcHJvdmluY2VzOwor57K9ID4gZHVtcGxpbmdcLW1hZGVcLW9mXC1nbHV0aW5vdXNcLXJpY2U7CivpmYcgPiBtb3VudGFpblwtbG9jYXRlZFwtYmV0d2Vlblwtc2hhbnhpOwor6Ze+ID4gdmlsbGFnZVwtb2ZcLXR3ZW50eVwtZml2ZVwtZmFtaWxpZXM7Civpg6YgPiBwbGFjZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7CivpnoUgPiBsZWF0aGVyXC1zdHJhcFwtb3ZlclwtaG9yc2UnJ3NcLW5lY2s7CivpgrogPiBwbGFjZVwtaW5cLXRvZGF5JydzXC1oZW5hblwtcHJvdmluY2U7Civpk6EgPiBzaWNrbGVcLWZvclwtY3V0dGluZ1wtZ3Jhc3NcLW9yXC1oYXk7CivpqqcgPiBnYWxsb3BcLWFib3V0XC13aXRoXC1oZWFkXC11cGxpZnRlZDsKK+mqoiA+IGhvcnNlXC13aXRoXC1hXC1ibHVpc2hcLXdoaXRlXC1jb2xvcjsKK+ibsyA+IGtpbmRcLW9mXC1zbmFpbFwtd2l0aFwtc3BpcmFsXC1zaGVsbDsKK+mCsyA+IGFcLWRlcGFydG1lbnRcLWluXC10aGVcLXN0YXRlXC1vZlwtbHU7Civpg6IgPiBzdGF0ZVwtaW5cLXRvZGF5JydzXC1odWJlaVwtcHJvdmluY2U7CivpqpYgPiB0d29cLW91dHNpZGVcLW9uZXNcLWluXC10aHJlZVwtaG9yc2U7CivovbggPiBjcm9zc1wtYm9hcmRcLWF0XC1yZWFyXC1vZlwtY2FycmlhZ2U7CivnrpwgPiBhbmNpZW50XC1zdHJpbmdcLW11c2ljXC1pbnN0cnVtZW50Owor6YOQID4gc3RhdGVcLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor6L25ID4gcnVuXC1vdmVyXC1zb21ldGhpbmdcLXdpdGhcLXZlaGljbGU7CivmoJ0gPiBhXC1idWlsZGVyJydzXC1mcmFtZVwtZm9yXC1tZWFzdXJpbmc7CivnjY0gPiBhblwtYW5pbWFsXC13aGljaFwtZWF0c1wtaXRzXC1tb3RoZXI7CivpvJcgPiBzbWFsbFwtcmV2b2x2aW5nXC1kcnVtXC13aXRoXC1rbm9iczsKK+m8kiA+IGxhcmdlXC10cmlwb2RcLWNhbGRyb25cLXdpdGhcLXNtYWxsOwor6baWID4gbGFyZ2VcLXdhdGVyZm93bFwtd2l0aFwtbmFrZWRcLWhlYWQ7CivpqaQgPiBnYWxsb3BcLWFib3V0XC13aXRoXC1oZWFkXC11cGxpZnRlZDsKK+mphCA+IGhvcnNlXC13aXRoXC1hXC1ibHVpc2hcLXdoaXRlXC1jb2xvcjsKK+mpgiA+IHR3b1wtb3V0c2lkZVwtb25lc1wtaW5cLXRocmVlXC1ob3JzZTsKK+mohCA+IG5hbWVcLW9mXC1hXC1sZWdlbmRhcnlcLXN3aWZ0XC1ob3JzZTsKK+mnrCA+IG5hbWVcLW9mXC1hXC1sZWdlbmRhcnlcLXN3aWZ0XC1ob3JzZTsKK+mkliA+IGZvb2RcLWl0ZW1cLXNldFwtb3V0XC1mb3JcLXNob3dcLW9ubHk7CivpoKMgPiB0b1wtdmlld1wtb3RoZXJzXC13aXRoXC1yYWlzZWRcLWV5ZXM7CivpmrQgPiBtb3VudGFpblwtbG9jYXRlZFwtYmV0d2Vlblwtc2hhbnhpOwor6ZatID4gdmlsbGFnZVwtb2ZcLXR3ZW50eVwtZml2ZVwtZmFtaWxpZXM7CivpjZggPiBzaWNrbGVcLWZvclwtY3V0dGluZ1wtZ3Jhc3NcLW9yXC1oYXk7Civpi5AgPiBzdGF0ZVwtaW5cLXRvZGF5JydzXC1odWJlaVwtcHJvdmluY2U7CivphqwgPiBhbnlcLWphbVwtbGlrZVwtb3JcLXBhc3RlXC1saWtlXC1mb29kOwor6YWIID4gcGxhY2VcLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor6YS2ID4gc3RhdGVcLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor6YS0ID4gcGxhY2VcLWluXC10b2RheScnc1wtaG9uYW5cLXByb3ZpbmNlOwor6YSaID4gcGxhY2VcLWluXC10b2RheScnc1wtaGViZWlcLXByb3ZpbmNlOwor6YOUID4gcGxhY2VcLW5hbWVcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civpgr0gPiBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtaGFuXC1keW5hc3R5Owor6YK2ID4gcGxhY2VcLWluXC10b2RheScnc1wtaGVuYW5cLXByb3ZpbmNlOwor6L2iID4gcnVuXC1vdmVyXC1zb21ldGhpbmdcLXdpdGhcLXZlaGljbGU7Civou6sgPiBjcm9zc1wtYm9hcmRcLWF0XC1yZWFyXC1vZlwtY2FycmlhZ2U7Civou6ggPiBsYXR0aWNlXC13b3JrXC1vblwtZnJvbnRcLWFuZFwtc2lkZXM7CivouIsgPiB0aGVcLWZvb3RcLW9yXC1mZWV0XC1jYXN0XC1vZlwtYVwtcGxheTsKK+imhyA+IHJ1bGVcLWJ5XC1taWdodFwtcmF0aGVyXC10aGFuXC1yaWdodDsKK+ilrSA+IHR1Y2tcLXVwXC1oZW1cLW9mXC1nYXJtZW50XC1hbmRcLXdyYXA7Civoo4sgPiBjb3R0b25cLWNsb3RoZXNcLW9mXC1hXC1ib3lcLXNlcnZhbnQ7CivoobogPiBzbGl0XC1pblwtZ2FybWVudFwtdG9cLWFpZFwtbW92ZW1lbnQ7CivooKggPiBhXC1raW5kXC1vZlwtc3BpZGVyXC13aXRoXC1sb25nXC1sZWdzOwor6J6jID4gbXl0aG9sb2dpY2FsXC13aW5nbGVzc1wtZHJhZ29uXC1vZjsKK+iehCA+IGtpbmRcLW9mXC1zbmFpbFwtd2l0aFwtc3BpcmFsXC1zaGVsbDsKK+iLpCA+IGJyYXNzaWNhXC1jYW1wZXN0cmlzXC1zdWJzcFwuXC1yYXBhOwor6ImVID4gdHdvXC1ib2F0c1wtZmFzdGVuZWRcLXNpZGVcLWJ5XC1zaWRlOwor6IarID4gdGhlXC1mYXRcLWNvdmVyaW5nXC10aGVcLWludGVzdGluZXM7CivnuJcgPiBzYWNrY2xvdGhcLXdvcm5cLW9uXC1icmVhc3RcLWR1cmluZzsKK+eziSA+IGR1bXBsaW5nXC1tYWRlXC1vZlwtZ2x1dGlub3VzXC1yaWNlOwor57K1ID4gZ3Vhbmdkb25nXC1hbmRcLWd1YW5neGlcLXByb3ZpbmNlczsKK+ewniA+IHNtYWxsXC1iYW1ib29cLWJhc2tldFwtZm9yXC1ob2xkaW5nOwor56+qID4gYVwtYmFtYm9vXC1mbHV0ZVwtd2l0aFwtc2V2ZW5cLWhvbGVzOwor556WID4gYVwtY2F0YXJhY3RcLW9yXC1maWxtXC1vdmVyXC10aGVcLWV5ZTsKK+eVpCA+IHBsYWNlXC1mb3JcLXdvcnNoaXBwaW5nXC10aGVcLWhhdmVuOwor55SXID4gZWFydGhlbndhcmVcLXZlc3NlbFwtaW5cLXR3b1wtcGFydHM7Civng7MgPiB0b1wtdHJhdmVsXC1ieVwtdGhlXC1saWdodFwtb2ZcLXRvcmNoOwor54GVID4gc2hvcnRcLW5hbWVcLWZvclwtZ3Vhbmd4aVwtcHJvdmluY2U7CivmsrQgPiBmb3VsXC1hbmRcLXBvaXNvbm91c1wtaW5cLWNvbmZ1c2lvbjsKK+aokCA+IGFcLWxvb2tvdXRcLXR1cnJldFwtb25cLWFcLWNpdHlcLXdhbGw7Civmo7sgPiBraW5kXC1vZlwtd29vZFwtZnJvbVwtd2hpY2hcLXBlcmZ1bWU7CivmnowgPiB2YXJpZXR5XC1vZlwtZWxtXC13aXRoXC1zbWFsbFwtc2VlZHM7Civlnp8gPiBjbGF5XC1zaGVlcFwtYnVyaWVkXC13aXRoXC10aGVcLWRlYWQ7CivlkqAgPiB0b1wtd2hpc3BlclwuXC10b1wtYmxhbWVcLXRvXC1zbGFuZGVyOwor5Y+nID4gdG9cLWN1dFwtbWVhdFwtb2ZmXC1hd2F5XC1mcm9tXC1ib25lczsKK+WGlCA+IGNhcFwtd29yblwtZHVyaW5nXC10aGVcLXlpblwtZHluYXN0eTsKK+WAkSA+IGFkanVuY3RcLXByb25vdW5cLWluZGljYXRlXC1wbHVyYWw7CivkurwgPiB0b1wtYXNzZW1ibGVcLlwtdG9cLWdhdGhlclwtdG9nZXRoZXI7CivkuYQgPiBzaGltZVw6XC10b1wtZmluZFwtYVwtcGxhY2VcLXRvXC1kd2VsbDsKK+S2tSA+IGFcLWJhbWJvb1wtZmx1dGVcLXdpdGhcLXNldmVuXC1ob2xlczsKK+S1uCA+IHRoZVwtdG9hZFwtdGhhdFwtbGl2ZXNcLWluXC10aGVcLW1vb247Civks6EgPiBhXC1raW5kXC1vZlwtYmlyZFwtaW5cLWFuY2llbnRcLWJvb2tzOwor5LKeID4gYVwtc2Vjb25kXC1nZW5lcmFsXC1uYW1lXC1mb3JcLXBlcmNoOwor5LGMID4gYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXRoZVwtZ2xvYmVmaXNoOwor5LCdID4gYVwtbGFyZ2VcLWVhcnRoZW5cLXBvdFwtZm9yXC1jb29raW5nOwor5LCAID4gZHJlc3NlZFwtaGFpclwtb2ZcLWFcLWNoaW5lc2VcLXdvbWFuOwor5K64ID4gdG9cLW1vdmVcLXNsb3dseVwtYW5kXC10aGVuXC1zd2lmdGx5Owor5Ky7ID4gdG9cLWVudGVydGFpblwtYVwtZGVwYXJ0aW5nXC1mcmllbmQ7Civkqr4gPiB0b1wtZGVhbFwtd2l0aFwtYWZmYWlyc1wtY2F1dGlvdXNseTsKK+SqjSA+IGFcLWNvbnRhaW5lclwtZm9yXC1ib3dzXC1hbmRcLWFycm93czsKK+SooyA+IGxlYXRoZXJcLXRvXC1iZVwtbW9pc3RlbmVkXC1ieVwtcmFpbjsKK+SmhyA+IGRyZXNzZWRcLWhhaXJcLW9mXC1hXC1jaGluZXNlXC13b21hbjsKK+SjoyA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtbmFtZVwtb2ZcLWFcLXBsYWNlOwor5J+aID4gdG9cLXNpdFwtd2l0aFwtdGhlXC1sZWdzXC1zcHJlYWRcLW91dDsKK+SctyA+IGZlcm1lbnRlZFwtYW5kXC1zZWFzb25lZFwtc295YmVhbnM7CivknKogPiBuYW1lXC1vZlwtYVwtcGF2aWxpb25cLWluXC1vbGRcLXRpbWVzOwor5JuAID4gcmVhc29uYWJsZVwtYXV0aG9yaXR5XC1zdGF0ZW1lbnRzOwor5JiFID4gYVwtc21hbGxcLWdhZGZsaWVzXC1hbmRcLW1vc3F1aXRvZXM7CivkkIMgPiBmYXRcLWluXC10aGVcLWFiZG9tZW5cLW9yXC1pbnRlc3RpbmU7CivkjZsgPiBhXC1raW5kXC1vZlwtdG9vbFwtdXNlZFwtdG9cLWdldFwtZmlzaDsKK+SKpCA+IHZlZ2V0YWJsZVwtbWl4ZWRcLXdpdGhcLXRoaWNrXC1zb3VwOwor5IKyID4gc3RhbmRhcmRcLXdlaWdodHNcLXVzZWRcLWluXC1zY2FsZXM7CivkgbAgPiB0b1wtbG9va1wtaW5cLWFcLWV2aWxcLW9yXC13aWNrZWRcLXdheTsKK+O8liA+IGdvdXJkXC11c2VkXC1hc1wtYVwtbGFkbGVcLW9yXC1kaXBwZXI7Civju6sgPiBhXC1nZW1cLW9yXC1vcm5hbWVudFwtb25cLWFcLXNjYWJiYXJkOwor46+tID4gYVwtbG9va291dFwtdHVycmV0XC1vblwtYVwtY2l0eVwtd2FsbDsKK+OuhyA+IGFcLWJ1aWxkZXInJ3NcLWZyYW1lXC1mb3JcLW1lYXN1cmluZzsKK+OsuSA+IHRlbmRvbnNcLW9mXC10aGVcLWhlZWxcLW9mXC10aGVcLWZvb3Q7CivjrIEgPiB0aGVcLXN1blwtaXNcLXNoaW5pbmdcLW9uXC10aGVcLXdhdGVyOwor46e9ID4gbmFtZVwtb2ZcLWFcLWNvdW50eVwtaW5cLWhhblwtZHluYXN0eTsKK++mjSA+IHJ1blwtb3Zlclwtc29tZXRoaW5nXC13aXRoXC12ZWhpY2xlOwor76aGID4gdmlsbGFnZVwtb2ZcLXR3ZW50eVwtZml2ZVwtZmFtaWxpZXM7CivvpYwgPiBidWlsZGluZ1wtb2ZcLXR3b1wtb3JcLW1vcmVcLXN0b3JpZXM7CivjpYYgPiBpbmR1bGdlbnRcLWFuZFwtd2l0aG91dFwtcmVzdHJhaW50Owor45eYID4gdG9cLWJpdGVcLXRoZVwtaGFyZFwtYW5kXC1zb2xpZFwtZm9vZDsKK+OToiA+IHRvXC1jdXRcLXRoZVwtZmxlc2hcLWZyb21cLXRoZVwtYm9uZXM7Civjk5QgPiBmYWRlZFwtYW5kXC1mYWxsZW5cLVwtXC1cLWFzXC1ibG9zc29tczsKK+OSuyA+IHRvXC1nb1wtZm9yd2FyZFwtd2l0aFwtZXllc1wtY292ZXJlZDsKK+W5uSA+IHRydW5rXC1vZlwtdHJlZVwtb3JcLW9mXC1odW1hblwtYm9keTsKK+WwuiA+IGNoaW5lc2VcLW1lYXN1cmVcLWFwcHJveFwuXC0nJ2Zvb3QnJzsKK+exsyA+IGh1bGxlZFwtb3JcLWh1c2tlZFwtdW5jb29rZWRcLXJpY2U7CivpuY8gPiBmYWJ1bG91c1wtYmlyZFwtb2ZcLWVub3Jtb3VzXC1zaXplOwor5ZaCID4gaW50ZXJqZWN0aW9uXC10b1wtY2FsbFwtYXR0ZW50aW9uOwor5r2HID4gc291bmRcLW9mXC1iZWF0aW5nXC13aW5kXC1hbmRcLXJhaW47CivnprkgPiBsZWdlbmRhcnlcLWhzaWFcLWR5bmFzdHlcLWZvdW5kZXI7Civmlp8gPiB0b1wtcG91clwtd2luZVwtb3JcLXRlYVwtaW50b1wtYVwtY3VwOwor6JC8ID4gdGhlXC1zdGVtXC1hbmRcLWNhbHl4XC1vZlwtYVwtZmxvd2VyOwor6ZiAID4gcG93ZXJmdWxcLWFuZFwtaW5mbHVlbnRpYWxcLWdyb3VwOwor5qW3ID4gbW9kZWxcLXN0eWxlXC1vZlwtY2hpbmVzZVwtd3JpdGluZzsKK+i+hCA+IHNpZGVzXC1vZlwtY2hhcmlvdFwtd2hlcmVcLXdlYXBvbnM7Civkv5EgPiB3b29kZW5cLWZpZ3VyZVwtYnVyaWVkXC13aXRoXC1kZWFkOwor5Zi5ID4gdXNlZFwtZGVzY3JpYmVcLWNsYXJpdHlcLW9mXC12b2ljZTsKK+i9vCA+IGhvcml6b250YWxcLXdvb2RlblwtYmFyXC1pblwtZnJvbnQ7CivpppEgPiB0aW1lXC1vZlwtZmFtaW5lXC1vclwtY3JvcFwtZmFpbHVyZTsKK+S8pSA+IGdob3N0XC1vZlwtb25lXC1kZXZvdXJlZFwtYnlcLXRpZ2VyOwor57u2ID4gc2lsa1wtcmliYm9uXC1hdHRhY2hlZFwtYXNcLWFcLXNlYWw7CivprIggPiBmaW5lXC1ncm93dGhcLW9mXC1oYWlyXC1jdXJseVwtaGFpcjsKK+ejlCA+IGRvd253YXJkXC1zdHJva2VcLXNsYW50aW5nXC1yaWdodDsKK+ijoiA+IGZvbGRpbmdcLXB1cnNlXC1pbnNlcnRlZFwtaW5cLWJlbHQ7CivmnrggPiBraW5kXC1vZlwtYXNwZW5cLWZvdW5kXC1pblwtc2ljaHVhbjsKK+iKiiA+IGV4dWJlcmFudFwtYW5kXC12aWdvcm91c1wtZm9saWFnZTsKK+mEhCA+IG5hbWVcLW9mXC1hXC1kaXN0cmljdFwtaW5cLXNoYW5kb25nOwor6by5ID4gYVwta2luZFwtb2ZcLWluc2VjdGl2b3JvdXNcLXJvZGVudDsKK+iOvCA+IGFuXC1lZGlibGVcLXdhdGVyXC1wbGFudFwtYnJhc2VuaWE7CivlnKwgPiBwbGFzdGVyXC1vdmVyXC13aXRoXC1sYXllclwtb2ZcLW11ZDsKK+iOqSA+IG1lbWJyYW5lXC1saW5pbmdcLWluc2lkZVwtb2ZcLXJlZWQ7Civor7YgPiBhblwtZXhjbGFtYXRpb25cLW9mXC1jb25maXJtYXRpb247CivopJkgPiBwYXBlclwtb3JcLWNsb3RoXC1wYXN0ZWRcLXRvZ2V0aGVyOwor6IyMID4gbmFtZVwtb2ZcLWFcLWRpc3RyaWN0XC1pblwtc2hhbmRvbmc7CivpvLQgPiBhXC1raW5kXC1vZlwtaW5zZWN0aXZvcm91c1wtcm9kZW50Owor6baLID4gYVwtc2VhXC1iaXJkXC13aXRoXC1hXC13aGl0ZVwtYnJlYXN0Owor6bWsID4gZmFidWxvdXNcLWJpcmRcLW9mXC1lbm9ybW91c1wtc2l6ZTsKK+mvjyA+IGFcLWRpYWxlY3RcLlwuXC5cLlwuXC5cLlwuXC1uYW1lXC1vZlwtZmlzaDsKK+mliSA+IHRpbWVcLW9mXC1mYW1pbmVcLW9yXC1jcm9wXC1mYWlsdXJlOwor6aWBID4gY2FycnlcLW1lYWxcLXRvXC13b3JrZXJzXC1pblwtZmllbGQ7CivplqUgPiBwb3dlcmZ1bFwtYW5kXC1pbmZsdWVudGlhbFwtZ3JvdXA7CivpjqsgPiBvcm5hbWVudFwtb3ZlclwtdGhlXC1ob3JzZScnc1wtaGVhZDsKK+i8kiA+IHNpZGVzXC1vZlwtY2hhcmlvdFwtd2hlcmVcLXdlYXBvbnM7CivotZkgPiBnaWZ0XC1vZlwtbW9uZXlcLWhlbHBcLXBheVwtZnVuZXJhbDsKK+izuyA+IGdpZnRcLW9mXC1tb25leVwtaGVscFwtcGF5XC1mdW5lcmFsOwor6KqSID4gYW5cLWV4Y2xhbWF0aW9uXC1vZlwtY29uZmlybWF0aW9uOwor6KmkID4gdG9cLW1ha2VcLXdpbGRcLXN0YXRlbWVudHNcLXRvXC1saWU7CivopLMgPiBmb2xkaW5nXC1wdXJzZVwtaW5zZXJ0ZWRcLWluXC1iZWx0Owor6Ji0ID4geW91bmdcLXNob290c1wtb2ZcLXRoZVwtcmFwZXR1cm5pcDsKK+iOnSA+IHRvXC1jaG9wXC1zdHJhd1wtZmluZVwtZm9yXC1hbmltYWxzOwor6IWgID4gYmV0d2VlblwtdGhlXC1za2luXC1hbmRcLXRoZVwtZmxlc2g7Civnv78gPiBzdHJlYW1lclwtYWRvcm5lZFwtd2l0aFwtZmVhdGhlcnM7CivntqwgPiBzaWxrXC1yaWJib25cLWF0dGFjaGVkXC1hc1wtYVwtc2VhbDsKK+etpSA+IHJvdW5kXC1zaGFwZWRcLWJhbWJvb1wtYmFza2V0XC1mb3I7Civnl4QgPiBzY3JvZnVsb3VzXC1zd2VsbGluZ3NcLWFuZFwtc29yZXM7CivnjqQgPiBhXC1raW5kXC1vZlwtZ2VtXC1pbmZlcmlvclwtdG9cLWphZGU7CivnhaAgPiB0b1wtZnJ5XC1pblwtZmF0XC1vclwtb2lsXC5cLXRvXC1zY2FsZDsKK+eAnyA+IHNvdW5kXC1vZlwtYmVhdGluZ1wtd2luZFwtYW5kXC1yYWluOwor5r2PID4gZmFyZXNoYXJlXC1yZWNsYWltZWRcLWZyb21cLXJpdmVyOwor5ry8ID4gaGF2aW5nXC10aGVcLWFwcGVhcmFuY2VcLW9mXC1kZXB0aDsKK+asniA+IHRoZVwtbGF0dGljZVwtb2ZcLWFcLXdpbmRvd1wtYVwtc2lsbDsKK+abmiA+IHR3aWxpZ2h0XC1qdXN0XC1iZWZvcmVcLXN1blwtcmlzZXM7CivmlpogPiBhXC1zbWFsbFwtY3VwXC1vZlwtc3RvbmVcLXdpdGhcLWVhcnM7CivmiYogPiB1cHJpZ2h0XC1iYXJcLWZvclwtZmFzdGVuaW5nXC1kb29yOwor5oWcID4gbmFtZVwtb2ZcLWFcLW1vbmtcLWluXC10YW5nXC1keW5hc3R5Owor5bSgID4gcGxhY2VcLW5hbWVcLWluXC1ndWFuZ3hpXC1wcm92aW5jZTsKK+WyvSA+IHBsYWNlXC1uYW1lXC1pblwtZ3Vhbmd4aVwtcHJvdmluY2U7Civlsp0gPiBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLWluXC1zaGFuZG9uZzsKK+WgrSA+IGFcLWRyeVwtbW9hdFwtb3V0c2lkZVwtYVwtY2l0eVwtd2FsbDsKK+WgjiA+IGNoYXJhY3RlclwtdXNlZFwtZm9yXC1wbGFjZVwtbmFtZXM7CivlmrkgPiBhXC1wYXJ0aWNsZVwtaW1wbHlpbmdcLWNvbXBsZXRpb247CivljLMgPiBsYWRpZXNcLXRvaWxldFwtY2FzZVwtd2l0aFwtbWlycm9yOwor5Yi1ID4gcHVuaXNobWVudFwtYnlcLWN1dHRpbmdcLW9mZlwtZWFyczsKK+SygSA+IGdlbmVyYWxcLXRlcm1cLW9mXC1hXC1raW5kXC1vZlwtZmlzaDsKK+SwmiA+IHRoZVwtdG9wXC1wYXJ0XC1vZlwtdGhlXC1yaWNlXC1ncnVlbDsKK+SvtSA+IGhhaXJcLXN0eWxlXC1mb3JcLWxpdHRsZVwtY2hpbGRyZW47Civkr6QgPiBib25ld2FyZVwtdXNlZFwtdG9cLWNvbWJcLXRoZVwtaGFpcjsKK+SvkiA+IHRoZVwtdXBwZXJcLXBhcnRcLW9mXC10aGVcLXNoaW5ib25lOwor5K6UID4gYVwteW91bmdcLWFuZFwtZmxlZXRcLWZvb3RlZFwtaG9yc2U7CivkrbogPiBhXC1ob3JzZVwtdG9cLXJhaXNlXC1pdHNcLWhlYWRcLWhpZ2g7Civkq64gPiB0b1wtYmVuZFwtb3JcLWxvd2VyXC1vZlwtb25lJydzXC1oZWFkOwor5KuGID4gdGhlXC1mcm9udFwtYW5kXC1iYWNrXC1vZlwtdGhlXC1uZWNrOwor5KeSID4gc3RlcHNcLWxlYWRpbmdcLXVwXC10b1wtYVwtYnVpbGRpbmc7CivkpJsgPiBjb21wb25lbnRcLXBhcnRzXC1vZlwtYVwtY3Jvc3NcLWJvdzsKK+SjuSA+IHRvXC1icmV3XC0xMFwtcGVyY2VudFwtb2ZcLXRoZVwtd2luZTsKK+SjtSA+IHRvXC1icmV3XC10aGVcLXdpbmVcLWFcLXNlY29uZFwtdGltZTsKK+SjrCA+IHRoZVwtc2hpbnlcLWNvbG9yZnVsXC1vZlwtdGhlXC13aW5lOwor5KK+ID4gbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1zbWFsbFwtc3RhdGU7CivkoYMgPiBhXC10b29sXC1mb3JcLWJydXNoaW5nXC10aGVcLXRocmVhZDsKK+ScsiA+IG5hbWVcLW9mXC1hXC12aWxsYWdlXC1pblwtb2xkXC1jaGluYTsKK+SYkyA+IHRoaWNrXC1ibG9vZFwtb2ZcLWNhdHRsZVwtYW5kXC1nb2F0Owor5JO/ID4gYVwtc2Vjb25kXC1uYW1lXC1mb3JcLWxvdHVzXC1mbG93ZXI7Civkk7kgPiB0b1wtc3R1ZmZcLWZ1bGxcLWFuZFwtdG9cLWd1bHBcLWRvd247CivkjYEgPiB0aGVcLWhlbVwtb3JcLWJvcmRlclwtb2ZcLWFcLWdhcm1lbnQ7Civki7QgPiBzaWxrXC1mYWJyaWNzXC13aXRoXC1taXhlZFwtY29sb3JzOwor5IuzID4gY2xvdGhcLW9yXC1wYXBlclwtcGFzdGVkXC10b2dldGhlcjsKK+SJpCA+IGFcLWJhbWJvb1wtd2FyZVwtZm9yXC13YXNoaW5nXC1yaWNlOwor5ImbID4gYmFtYm9vXC1iYXNrZXRcLWZvclwtd2FzaGluZ1wtcmljZTsKK+SJkyA+IG1hdHRyZXNzXC1tYWRlXC1vZlwtYmFtYm9vXC1zdHJpcHM7CivkiLkgPiBhXC1iYW1ib29cLXdhcmVcLWZvclwtd2FzaGluZ1wtcmljZTsKK+SHrCA+IHRoaW5cLWJhbWJvb1wtbGF0aHNcLWtuaXR0ZWRcLXNhaWw7Civkh6cgPiB0b1wtZmlsbFwtYW5cLW9wZW5pbmdcLXdpdGhcLWJhbWJvbzsKK+SEoSA+IG5vcnRoZXJuXC1taW5vcml0eVwtZXRobmljXC1ncm91cDsKK+SDtiA+IHJ1Z2dlZFwtYW5kXC11bmV2ZW5cLW9mXC10aGVcLXJvY2tzOwor5IOaID4gcnVnZ2VkXC1sYW5kXC1vZlwtc2FuZFwtYW5kXC1wZWJibGU7Civkg4IgPiBkdWxsXC1zb3VuZFwtb2ZcLXRoZVwtdG9sbGluZ1wtYmVsbDsKK+O8oSA+IGFcLXNtYWxsXC1qYXJcLXdpdGhcLWFcLXNtYWxsXC1tb3V0aDsKK+O1tyA+IHR1cmJ1bGVudFwtZmxvd2luZ1wtb2ZcLXRoZVwtd2F0ZXI7CivjtY8gPiBoYXZpbmdcLXRoZVwtYXBwZWFyYW5jZVwtb2ZcLWRlcHRoOwor47K5ID4gdGhlXC1kcnlcLXNvaWxcLW9uXC10aGVcLXJpdmVyXC1zaWRlOwor47KdID4gZmluZVwtaGFpclwtb2ZcLWJpcmRzXC1hbmRcLWFuaW1hbHM7Civjr4UgPiB0aGVcLWJyYW5jaGVzXC1ncm93aW5nXC1kb3dud2FyZHM7CivjroIgPiBhblwtYXBwbGlhbmNlXC11c2VkXC10b1wtbGlmdFwtZm9vZDsKK+OspCA+IHdldFwtY2xvdGhlc1wtbm90XC1jb21wbGV0ZWx5XC1kcnk7Civjqr4gPiB0b1wtY3V0XC10aGVcLWZsZXNoXC1mcm9tXC10aGVcLWJvbmU7CivjqJkgPiB0b1wtY2xhc3BcLW9yXC1ob2xkXC11bmRlclwtdGhlXC1hcm07CivjprIgPiBhXC1wYXJ0aWNsZVwtZXhwcmVzc2luZ1wtc3VycHJpc2U7CivjpYsgPiBzb3VuZFwtb2ZcLXRoZVwtYW5ndWlzaFwtb2ZcLXNvcnJvdzsKK+OkryA+IGNsZXZlclwtb3JcLXNtYXJ0XC1pblwtYVwtc21hbGxcLXdheTsKK+OklCA+IHRvXC1jb25jZWRlXC1vclwtc3VibWl0XC13aWxsaW5nbHk7Civjo4cgPiBhXC1raW5kXC1vZlwtYmVhc3RcLXdpdGhcLWxvbmdcLWhhaXI7CivjoZ4gPiBhXC1zYWNrXC11c2VkXC10b1wtZmVlZFwtdGhlXC1ob3JzZXM7CivjoKMgPiBhXC1tb3VudGFpblwtaW5cLWppYW5neGlcLXByb3ZpbmNlOwor456vID4gdGhlXC10dXJuaW5nXC1hcmVhXC1vZlwtYVwtbW91bnRhaW47CivjnIYgPiBjb21tb25seVwta25vd25cLWFzXC1tb3RoZXJcLWluXC13dTsKK+OZmiA+IHJlZFwtY29sb3JlZFwtaGFyZFwtYW5kXC1zb2xpZFwtbXVkOwor45ieID4geWVsbGluZ1wtc291bmRcLW9mXC10b3dpbmdcLWFcLWJvYXQ7CivjlKkgPiBoYWlyXC1vcm5tZW50c1wtdXNlZFwtaW5cLW9sZFwtdGltZTsKK+OUgCA+IHRvXC1icmFuZFwtY3JpbWluYWxzXC1vblwtdGhlXC1mYWNlOwor6L+mID4gY2hhcmFjdGVyXC1mb3JcLXRyYW5zbGl0ZXJhdGlvbjsKK+W6tSA+IGJ1ZGRoaXN0XC1tb25hc3RlcnlcLW9yXC1udW5uZXJ5Owor5bqaID4gc2V2ZW50aFwtb2ZcLXRlblwtY3ljbGljYWxcLXN0ZW1zOwor6LajID4gd2hhdFwtYXR0cmFjdHNcLW9uZScnc1wtYXR0ZW50aW9uOwor55WUID4gYm91bmRhcnlcLXBhdGhcLWRpdmlkaW5nXC1maWVsZHM7CivlpL4gPiBiZVwtd2VkZ2VkXC1vclwtaW5zZXJ0ZWRcLWJldHdlZW47CivovoYgPiBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC12ZWhpY2xlczsKK+WkuSA+IGJlXC13ZWRnZWRcLW9yXC1pbnNlcnRlZFwtYmV0d2VlbjsKK+aAlCA+IGFcLWRpc2Vhc2VcLXJlc2VtYmxpbmdcLW5ldXJvc2lzOwor6ZmMID4gZm9vdFwtcGF0aFwtYmV0d2VlblwtcmljZVwtZmllbGRzOwor6aqGID4gYVwtd2hpdGVcLWhvcnNlXC13aXRoXC1ibGFja1wtbWFuZTsKK+aloyA+IGNyb3NzYmVhbVwtYWJvdmVcLW9yXC11bmRlclwtZ2F0ZTsKK+eSpyA+IHBpZWNlXC1vZlwtamFkZVwtd2l0aFwtaG9sZVwtaW5cLWl0Owor6Ia7ID4gcmFua1wtb2RvclwtXChvZlwtc2hlZXBcLW9yXC1nb2F0c1wpOwor546RID4gcGVhcmxcLXRoYXRcLWlzXC1ub3RcLXF1aXRlXC1yb3VuZDsKK+WUoiA+IGZsdXRlXC1saWtlXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5qWCID4gYVwtcmFmdFwuXC10b1wtaGV3XC5cLXRvXC1mZWxsXC10cmVlczsKK+eKkiA+IGVudGVydGFpblwtdmljdG9yaW91c1wtc29sZGllcnM7Civnn40gPiBsb29rXC1hYm91dFwtaW5cLWZyaWdodFwtb3JcLWFsYXJtOwor5pOkID4gdG9cLWJsb3dcLXRoZVwtbm9zZVwtd2l0aFwtZmluZ2VyczsKK+iKoSA+IHBsYW50XC1hbGxpZWRcLXRvXC10aGVcLXdhdGVybGlseTsKK+exvCA+IG5vblwtZ2x1dGlub3VzXC1sb25nXC1ncmFpblwtcmljZTsKK+ahoSA+IGJlbnRcLW9yXC10d2lzdGVkXC1waWVjZVwtb2ZcLXdvb2Q7Civpu7sgPiBzcGVjaWFsXC1wYXR0ZXJuXC1vZlwtZW1icm9pZGVyeTsKK+W1nSA+IGdvdWxvdVwtbW91bnRhaW5cLXBlYWtcLWluXC1odW5hbjsKK+WerSA+IGNoYXJhY3RlclwtdXNlZFwtaW5cLXBsYWNlXC1uYW1lczsKK+ehliA+IFw8YXJjaFw+XC10b3duXC1pblwtaGViZWlcLXByb3ZpbmNlOwor6YKhID4gbmFtZVwtb2ZcLWFcLWRpc3RyaWN0XC1pblwtc2ljaHVhbjsKK+iuoCA+IHNpbXBsaWZpZWRcLWthbmd4aVwtcmFkaWNhbFwtMTQ5Owor5Zm7ID4gY2hhcmFjdGVyXC11c2VkXC1pblwtdHJhbnNsYXRpb247CivnlqwgPiBzY3JvZnVsb3VzXC1sdW1wc1wtb3JcLXN3ZWxsaW5nczsKK+iUnyA+IGZyYW1lXC1vblwtd2hpY2hcLXNpbGt3b3Jtc1wtc3BpbjsKK+WepyA+IHZhcmlhYmxlXC11bml0XC1vZlwtbGFuZFwtbWVhc3VyZTsKK+msjyA+IGFcLWNvaWZmdXJlXC1vblwtdG9wXC1vZlwtdGhlXC1oZWFkOwor562YID4gXChhXC1tZWFzdXJlXC1vZlwtd2lkdGhcLW9mXC1jbG90aFwpOwor57yRID4gY29yZFwtYmluZGluZ1wtb25cLWhpbHRcLW9mXC1zd29yZDsKK+ewliA+IGJhbWJvb1wtdHJhcFwtZm9yXC1jYXRjaGluZ1wtZmlzaDsKK+W6iyA+IGFcLWN1cGJvYXJkXC1vclwtcGFudHJ5XC10b1wtc3RvcmU7CivnlI0gPiByYWZ0ZXJzXC1zdXBwb3J0aW5nXC1yb29mXC10aWxlczsKK+mnuSA+IGJsYWNrXC1ob3JzZVwtd2l0aFwtYVwtd2hpdGVcLWZhY2U7Civpp7EgPiBhXC13aGl0ZVwtaG9yc2VcLXdpdGhcLWJsYWNrXC1tYW5lOwor6aWOID4gd2luZVwtYW5kXC1mb29kXC1lYXRlblwtd2l0aFwtd2luZTsKK+mHhCA+IHdpbmVcLWJyZXdcLWZvclwtdGhlXC1zZWNvbmRcLXRpbWU7Civph4EgPiBzbWVhclwtd2l0aFwtYmxvb2RcLWluXC1zYWNyaWZpY2U7Civov6cgPiBhXC1jaGluZXNlXC1mYW1pbHlcLW5hbWVcLWFycmFuZ2U7CivovZggPiB0ZWFyXC1hc3VuZGVyXC1iZXR3ZWVuXC1jaGFyaW90czsKK+i8myA+IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXZlaGljbGVzOwor6LyZID4gc2lkZXNcLW9mXC1jaGFyaW90XC13ZXJlXC13ZWFwb25zOwor6LyMID4gbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtdmVoaWNsZXM7CivoqYAgPiBnYXJydWxvdXNcLXRvXC13aGlzcGVyXC5cLXRvXC1qb2tlOwor6Ki5ID4gdG9cLWJlZ3VpbGVcLXdpdGhcLWZhbHNlXC1zdG9yaWVzOwor6JeKID4gYVwta2luZFwtb2ZcLWJlYW5cLXdpdGhcLWZsYXRcLXBvZHM7CivoiKAgPiBsb25nXC1uYXJyb3dcLWtuaWZlXC1zaGFwZWRcLWJvYXQ7Civnv6MgPiBmZWF0aGVyc1wtdXNlZFwtZGVjb3JhdGVcLWNvZmZpbjsKK+e4kyA+IG9yYW5nZVwtb3JcLXJlZGRpc2hcLXllbGxvd1wtc2lsazsKK+e3sSA+IGNvcmRcLWJpbmRpbmdcLW9uXC1oaWx0XC1vZlwtc3dvcmQ7Civns48gPiByaWNlXC1ncml0c1wtbGVmdFwtYWZ0ZXJcLWh1bGxpbmc7Civnr5ggPiBhXC11dGVuc2lsXC11c2VkXC10b1wtZmlsdGVyXC13aW5lOwor56eIID4gbm9uXC1nbHV0aW5vdXNcLWxvbmdcLWdyYWluXC1yaWNlOwor56GkID4gXDxhcmNoXD5cLXRvd25cLWluXC1oZWJlaVwtcHJvdmluY2U7Civnn7AgPiBhcnJvd1wtd2l0aFwtYXR0YWNoZWRcLXNpbGtcLWNvcmQ7CivnmacgPiBzY3JvZnVsb3VzXC1sdW1wc1wtb3JcLXN3ZWxsaW5nczsKK+eSoyA+IHBlYXJsXC10aGF0XC1pc1wtbm90XC1xdWl0ZVwtcm91bmQ7CivnjoMgPiBhXC1sYXJnZVwtYXBlXC1mb3VuZFwtaW5cLXdcLlwtY2hpbmE7CivnjIcgPiB0aGVcLXNjcmVhbVwtb3JcLXJvYXJcLW9mXC1hXC10aWdlcjsKK+eJuCA+IHRoZVwtZmVtYWxlXC1vZlwtY2VydGFpblwtYW5pbWFsczsKK+a7mSA+IHdhdGVyc1wtY29udmVyZ2luZ1wtdG9cLW9uZVwtc3BvdDsKK+a7mCA+IGNoYXJhY3RlclwtdXNlZFwtaW5cLXBsYWNlXC1uYW1lczsKK+apiCA+IGJlbnRcLW9yXC10d2lzdGVkXC1waWVjZVwtb2ZcLXdvb2Q7CivmpIogPiB0b1wtZml0XC1hXC1oYW5kbGVcLWludG9cLWFcLXNvY2tldDsKK+aakCA+IHRoZVwtYnJpZ2h0XC1zaGluaW5nXC1vZlwtdGhlXC1zdW47CivmmLMgPiB0aGVcLWRlY2xpbmluZ1wtc3VuXC1pblwtdGhlXC13ZXN0Owor5o2sID4gcHJlc3NcLWRvd25cLWhlYXZpbHlcLXdpdGhcLWhhbmRzOwor5oqUID4gdGFrZVwtb3JcLWhvbGRcLXVwXC1pblwtYm90aFwtaGFuZHM7CivltoEgPiBnb3Vsb3VcLW1vdW50YWluXC1wZWFrXC1pblwtaHVuYW47CivltL4gPiBwbGFjZVwtbmFtZVwtaW5cLXNoYW54aVwtcHJvdmluY2U7Civls6sgPiBtb3VudGFpblwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+WnhSA+IHdvbWFuXC1hdFwtdGltZVwtb2ZcLW1lbnN0cnVhdGlvbjsKK+WjvCA+IHBhbGFjZVwtY29ycmlkb3JcLW9yXC1wYXNzYWdld2F5Owor5aONID4gbW9hdFwtYXJvdW5kXC1hXC1jaXR5XC5cLWFcLWNoYW5uZWw7Civln6EgPiBjaGFyYWN0ZXJcLXVzZWRcLWluXC1wbGFjZVwtbmFtZXM7Civll6ogPiBjaGFyYWN0ZXJcLXVzZWRcLWluXC10cmFuc2xhdGlvbjsKK+WXqSA+IGZsdXRlXC1saWtlXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5ZWpID4gcGFydGljbGVcLWltcGx5aW5nXC1wcm9iYWJpbGl0eTsKK+WPkCA+IHRvXC1wcmlja1wtYVwtZG9nXC10b1wtbWFrZVwtaGltXC1nbzsKK+WNkCA+IHN3YXN0aWthXC1mb3VydGhcLW9mXC1hdXNwaWNpb3VzOwor5Y2NID4gc3dhc3Rpa2FcLWZvdXJ0aFwtb2ZcLWF1c3BpY2lvdXM7CivktpUgPiBpcnJlZ3VsYXJcLWFuZFwtcHJvbWluZW50XC10ZWV0aDsKK+S1mCA+IGRvc2VuJyd0XC10XC1zdGlja1wtdG9cLWVhY2hcLW90aGVyOwor5LK1ID4gYVwtZ2VuZXJhbFwtbmFtZVwtb2ZcLXNtYWxsXC1iaXJkczsKK+SvhiA+IHNtYWxsXC1hbmRcLXRoaW5cLXBpZWNlXC1vZlwtYm9uZXM7Civkq7IgPiB0aGluXC1hbmRcLXNpY2tseVwtaW5cLWFwcGVhcmFuY2U7Civkq6QgPiBiZXR3ZWVuXC10aGVcLWV5ZWJyb3dzXC1hbmRcLWV5ZXM7Civkq6EgPiBhXC1sb25nXC1zaGFwZVwtb2ZcLWhlYWRcLWFuZFwtZmFjZTsKK+SriyA+IGZlbWFsZVwtYXR0ZW5kYW50c1wtb3JcLXNlcnZhbnRzOwor5KeQID4gYVwtbW91bnRhaW5cLWluXC1zaGFueGlcLXByb3ZpbmNlOwor5KWjID4gYW5cLWluc3RydW1lbnRcLWZvclwtYm9yaW5nXC13b29kOwor5KWJID4gdGhlXC1jdXJ2ZWRcLWlyb25cLXBhcnRcLW9mXC1hXC1ob2U7CivkpJIgPiB3aW5lXC1tYWRlXC1mcm9tXC1nbHV0aW5vdXNcLXJpY2U7CivkpI0gPiByb3R0ZW5cLXBhc3RlXC1vclwtc295YmVhblwtc2F1Y2U7CivkoL0gPiBoZWlnaHRcLW9yXC1zdGF0dXJlXC1vZlwtYVwtcGVyc29uOwor5KCxID4gdG9cLXdhbGtcLXNsb3dseVwtYW5kXC1jYXV0aW91c2x5Owor5J+nID4gc291bmRcLW9mXC10cmVhZGluZ1wtb3JcLXN0ZXBwaW5nOwor5J6HID4gZ2lmdHNcLXRvXC1zdXBlcmlvcnNcLW9yXC1mcmllbmRzOwor5J29ID4gbmFtZVwtb2ZcLWFcLXBlcnNvblwtaW5cLW9sZFwtY2hpbmE7CivknZkgPiBhXC1raW5kXC1vZlwtYW5pbWFsXC1saWtlXC1hXC10aWdlcjsKK+SdlyA+IGFcLWtpbmRcLW9mXC1hbmltYWxcLWxpa2VcLWFcLXRpZ2VyOwor5JyIID4gdG9cLXNwZWFrXC1vblwtYmVoYWxmXC1vZlwtYW5vdGhlcjsKK+SYsyA+IGFcLWdhcm1lbnRcLW9mXC1zaW5nbGVcLXRoaWNrbmVzczsKK+SPvCA+IHdoYXRcLWlzXC1sZWZ0XC1vdmVyXC1vZlwtdGhlXC1mb29kOwor5I6iID4gdG9cLW1lYXN1cmVcLWJ5XC1waW50c1wtYW5kXC1wZWNrczsKK+SOkSA+IGZseWluZ1wtb3ZlclwtdGhlXC13YXRlclwtc3VyZmFjZTsKK+SNriA+IHlvdW5nXC1nb2F0XC11bmRlclwtb25lXC15ZWFyXC1vbGQ7CivkjYIgPiB0b29sc1wtdG9cLWRyYXdcLXdhdGVyXC1vclwtbGlxdWlkOwor5Iy/ID4gdGhlXC1icmVhZHRoXC1vZlwtY2xvdGhcLW9yXC1wYXBlcjsKK+SMlyA+IHRoZVwtbGVmdFwtb3Zlclwtb2ZcLWRyYXdpbmdcLXNpbGs7CivkjIggPiB0b1wtZ2V0XC1zb21ldGhpbmdcLXdpdGhcLWFcLWxhc3NvOwor5ImlID4gYVwtc21hbGxcLWJhc2tldFwtZm9yXC1jaG9wc3RpY2tzOwor5Ia6ID4gd2hpcmxpbmdcLW9mXC10aGVcLWZsb3dpbmdcLXdhdGVyOwor5IWiID4gbWF0dXJlXC1vclwtcmlwZW5cLW9mXC10aGVcLWdyYWluczsKK+O/tiA+IHRoZVwtc2lkZXNcLW9mXC1hXC1zaG9lXC1vclwtZ3V0dGVyOwor472wID4gY2FydmVkXC13aW5kb3dcLWZyYW1lXC1vblwtYVwtZG9vcjsKK+O5ryA+IGFcLWtpbmRcLW9mXC1hbmltYWxcLWxpa2VcLWFcLXRpZ2VyOwor47mCID4gdW50YW1lZFwtYW5kXC1pbmRvY2lsaXR5XC1jYXR0bGU7CivjtIQgPiB0aGVcLXdhdGVyXC1mbG93aW5nXC1pblwtYVwtdHVybmVkOwor47CJID4gdGhlXC1oYXplbFwtbnV0XC1vclwtZmlsYmVydFwtdHJlZTsKK+OtnyA+IHRvcnR1cmVcLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+OrkCA+IGRpc3RhbnRcLWFuZFwtaW5kaXN0aW5ndWlzaGFibGU7CivjobsgPiBuYW1lXC1vZlwtYVwtc21hbGxcLWFuY2llbnRcLXN0YXRlOwor45uQID4gd2lmZVwtb2ZcLW9uZScnc1wtZWxkZXInJ3NcLWJyb3RoZXI7CivjmoYgPiB0b1wtZG9cLXNvbWV0aGluZ1wtaW5cLWFuXC1vbGRcLXdheTsKK+OWnyA+IHRvXC1kZWxpdmVyXC1vdmVyXC10b1wtcGVyc29uYWxseTsKK+S7tiA+IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLWFydGljbGU7CivlkJcgPiBmaW5hbFwtaW50ZXJyb2dhdGl2ZVwtcGFydGljbGU7Civpur0gPiBpbnRlcnJvZ2F0aXZlXC1maW5hbFwtcGFydGljbGU7Civnn6MgPiBwYXJ0aWNsZVwtb2ZcLWNvbXBsZXRlZFwtYWN0aW9uOwor5LmSID4gdXNlZFwtd2l0aFwtcG9uZ1wtZm9yXC1waW5nXC1wb25nOwor5LmTID4gdXNlZFwtd2l0aFwtcGluZ1wtZm9yXC1waW5nXC1wb25nOwor5ZKaID4gdXNlZFwtYXNcLWRlc2NyaXB0aW9uXC1vZlwtc291bmQ7CivnkIUgPiBhXC12YXJpZXR5XC1vZlwtd2hpdGVcLWNhcm5lbGlhbjsKK+WtsCA+IHdob1w/XC13aGljaFw/XC13aGF0XD9cLXdoaWNoXC1vbmVcPzsKK+aIiiA+IGZpZnRoXC1vZlwtdGVuXC1jZWxlc3RpYWxcLXN0ZW1zOwor5riyID4gYWRkXC1yZXBlYXRlZFwtd2FzaGVzXC1vZlwtY29sb3I7CivlkqsgPiBmb290XC1tZWFzdXJlXC1vZlwtemhvdVwtZHluYXN0eTsKK+mltyA+IHJhdGlvbnNcLWFuZFwtcGF5XC1mb3JcLXNvbGRpZXJzOwor5rG2ID4gYVwtcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civlj4EgPiBiYW5rXC1mb3JtXC1vZlwtbnVtZXJhbFwtJyd0aHJlZScnOwor5aOsID4gbmludGhcLW9mXC10ZW5cLWNlbGVzdGlhbFwtc3RlbXM7Civmn6kgPiBjb2ZmaW5cLXdoaWNoXC1jb250YWluc1wtY29ycHNlOwor5qGgID4gdGhlXC1mb3JraW5nXC1icmFuY2hcLW9mXC1hXC10cmVlOwor55SPID4gYVwtc3F1YXRcLWphclwtZm9yXC1ob2xkaW5nXC13aW5lOwor56yeID4gYmFtYm9vXC1yb2RcLXVzZWRcLWZvclwtYmVhdGluZ3M7CivpmJcgPiBhXC1wbGFjZVwtaW5cLXhpbmppYW5nXC1wcm92aW5jZTsKK+mTiSA+IGRldmljZVwtZm9yXC1jYXJyeWluZ1wtYVwtdHJpcG9kOwor6KelID4gYVwtY3VwXC1tYWRlXC1vZlwtaG9yblwtb2JzdGluYXRlOwor6KOjID4gZHJhd1wtb25lJydzXC1oYW5kc1wtaW50b1wtc2xlZXZlOwor5bSDID4gbW91bnRhaW5cLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+e9mCA+IHNjcmVlblwtdXNlZFwtaW5cLWFuY2llbnRcLXRpbWVzOwor5rCHID4gdGhpY2tcLXJvdWdoXC1zZXJnZVwtZnJvbVwtdGliZXQ7Civln7QgPiBzb2lsXC13aXRoXC1sYXJnZVwtY2xheVwtY29udGVudDsKK+aYtCA+IG9uZVwtb2ZcLXRoZVwtMjhcLWNvbnN0ZWxsYXRpb25zOwor6I+5ID4gc2FsdGVkXC1vclwtcGlja2xlZFwtdmVnZXRhYmxlczsKK+m6vCA+IGludGVycm9nYXRpdmVcLWZpbmFsXC1wYXJ0aWNsZTsKK+m1rSA+IGFcLXNtYWxsXC1iaXJkXC13aXRoXC1ibGFja1wtbmVjazsKK+mlnyA+IHJhdGlvbnNcLWFuZFwtcGF5XC1mb3JcLXNvbGRpZXJzOwor6aSJID4gcmF0aW9uc1wtYW5kXC1wYXlcLWZvclwtc29sZGllcnM7CivpmpIgPiB0aGVcLWFwcGVhcmFuY2VcLW9mXC1hXC1tb3VudGFpbjsKK+mXkCA+IGFcLXBsYWNlXC1pblwteGluamlhbmdcLXByb3ZpbmNlOwor6YmJID4gZGV2aWNlXC1mb3JcLWNhcnJ5aW5nXC1hXC10cmlwb2Q7CivphoEgPiBhXC1raW5kXC1vZlwtZ3JlZW5cLWNvbG9yZWRcLXdpbmU7Civpgr8gPiBhXC1zdGF0ZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+i9liA+IGZyYW1ld29ya1wtb2ZcLWxhdHRpY2VcLW9uXC1jYXJ0Owor6Ke1ID4gYVwtY3VwXC1tYWRlXC1vZlwtY29yblwtb2JzdGluYXRlOwor6KWdID4gZHJhd1wtb25lJydzXC1oYW5kc1wtaW50b1wtc2xlZXZlOwor6ICHID4gd3JpbmtsZWRcLWZhY2VcLW9mXC10aGVcLWVsZGVybHk7CivnvrQgPiByYW5rXC1vZG91clwtb2ZcLXNoZWVwXC1vclwtZ29hdHM7CivntYMgPiBzdHJpbmdcLW9uXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5627ID4gcGxhY2VcLW5hbWVcLWluXC1odW5hblwtcHJvdmluY2U7Civnq5ogPiBzdGFuZFwtYW5kXC13YWl0XC1mb3JcLWxvbmdcLXRpbWU7CivnnZkgPiB0b1wtcm9sbFwtdGhlXC1leWViYWxsc1wtdG9cLWxvb2s7CivnkYIgPiBcKHN0b25lXC13aGljaFwtcmVzZW1ibGVzXC1qYWRlXCk7Civnh7ogPiB0aGVcLWRyeVwtYXRcLXRoZVwtZmlyZVwtdG9cLXJvYXN0Owor54GJID4gYVwtcml2ZXJcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7CivngJQgPiByaXZlclwtbmFtZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+axpyA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW5nZG9uZzsKK+awjCA+IHRoaWNrXC1yb3VnaFwtc2VyZ2VcLWZyb21cLXRpYmV0Owor5qm1ID4gd29vZFwtcGxhY2VkXC11bmRlclwtcm9vZlwtdGlsZXM7CivmpI8gPiB0aGVcLWZvcmtpbmdcLWJyYW5jaFwtb2ZcLWFcLXRyZWU7Civmm4ggPiB0d2lsaWdodFwtanVzdFwtYmVmb3JlXC1zdW5yaXNlOwor5pefID4gYW5cLW1pbGl0YXJ5XC1mbGFnXC1vYVwtc3RhbmRhcmQ7CivmiaggPiBwaWNrXC11cFwtd2l0aFwtZm9ya1wtb3JcLXBpbmNlcnM7CivmiaAgPiBwaWNrXC11cFwtd2l0aFwtZm9ya1wtb3JcLXBpbmNlcnM7CivlubAgPiBjdXJ0YWluXC1hdFwtZnJvbnRcLW9mXC1jYXJyaWFnZTsKK+W0jSA+IG1vdW50YWluXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivltIAgPiBwbGFjZVwtbmFtZVwtaW5cLWh1bmFuXC1wcm92aW5jZTsKK+WogCA+IG5hbWVcLW9mXC1hXC1jb25jdWJpbmVcLW9mXC1kaVwta3U7Civln4QgPiB3aGlybGluZ1wtb2ZcLWR1c3RcLWluXC10aGVcLXdpbmQ7Civll44gPiBmaW5hbFwtaW50ZXJyb2dhdGl2ZVwtcGFydGljbGU7CivktaAgPiBydXNoZXNcLXVzZWRcLWZvcm1cLW1ha2luZ1wtbWF0czsKK+SzjSA+IGFcLWtpbmRcLW9mXC1waGVhc2FudFwtbGlrZVwtYmlyZDsKK+SxsSA+IGFcLWtpbmRcLW9mXC1zbGlwcGVyeVwtbG9uZ1wtZmlzaDsKK+SuhyA+IGJsYWNrXC1ob3JzZVwtd2l0aFwtd2hpdGVcLXRoaWdoOwor5KygID4gdGhlXC1mYWxsaW5nXC1vZlwtc25vd1wtYW5kXC1yYWluOwor5KqtID4gYVwta2luZFwtb2ZcLW11c2ljYWxcLWluc3RydW1lbnQ7CivkqokgPiBtZXRhbFwtZGVjb3JhdGlvblwtb25cLWFcLWhhbHRlcjsKK+SpoSA+IGFcLWtpbmRcLW9mXC1ib290c1wtaW5cLW9sZFwtdGltZXM7CivkppwgPiBuYW1lXC1vZlwtYVwtc3RhdGVcLWluXC1vbGRcLXRpbWVzOwor5KW6ID4gbmFtZVwtb2ZcLWFcLWRvdWJsZVwtZWRnZWRcLXN3b3JkOwor5KWVID4gdGhlXC1ibGFkZVwtb3JcLWVkZ2VcLW9mXC1hXC1zcGFkZTsKK+SkiSA+IGVtcHRpZWRcLXRoZVwtZHJpbmtcLWNvbXBsZXRlbHk7Civko6EgPiBuYW1lXC1vZlwtYVwtcGxhY2VcLWluXC1vbGRcLXRpbWVzOwor5KOPID4gbmFtZVwtb2ZcLWFcLXN0YXRlXC1pblwtb2xkXC10aW1lczsKK+SivCA+IG5hbWVcLW9mXC1hXC1zdGF0ZVwtaW5cLW9sZFwtdGltZXM7CivkoZEgPiB0aGVcLXJpbVwtb3JcLWZlbGxvZVwtb2ZcLWFcLXdoZWVsOwor5KC0ID4gd2l0aFwtYVwtc3ltbWV0cmljXC13ZWxsXC1mb3JtZWQ7CivknbUgPiB0b1wtdGhhbmtcLXdpdGhcLW1vbmV5XC1vclwtZ2lmdHM7CivkmZcgPiBhXC1zd2FkZGxpbmdcLWNsb3RoXC1mb3JcLWluZmFudDsKK+SYuyA+IGN1cnRhaW5cLW9uXC1hXC1jYXJyaWFnZVwtb3JcLWNhcjsKK+SYuiA+IGFcLXNlYW1cLXdoaWNoXC1oYXNcLWNvbWVcLXVuc2V3bjsKK+SYtSA+IGhpc3NpbmdcLXNvdW5kXC1vZlwtdGhlXC1jbG90aGVzOwor5JSbID4gZmlicm91c1wtcGxhbnRcLW9mXC13aGljaFwtY2xvdGg7Civkk5wgPiBzYWx0ZWRcLW9yXC1waWNrbGVkXC12ZWdldGFibGVzOwor5JG5ID4gYVwtbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtc2hpcHM7CivkjaAgPiB0dXJiYW5cLXVzZWRcLWluXC1hbmNpZW50XC10aW1lczsKK+SMiyA+IGFcLWhlcmNoaWVmXC1odW5nXC1hdFwtdGhlXC13YWlzdDsKK+SLqSA+IHByZXR0eVwtYW5kXC1maW5lXC1zaWxrXC1mYWJyaWNzOwor5IuPID4gdGhpY2tcLWFuZFwtYmlnXC1yb3Blc1wtb3JcLWNvcmRzOwor5IuLID4gYVwta2luZFwtb2ZcLXNwcmluZ1wtZmlzaGluZ1wtbmV0Owor5Ia2ID4gbm9pc2VcLW9mXC1hXC1tb3VzZVwtaW5cLXRoZVwtY2F2ZTsKK+SFsyA+IHN0YWxrXC1vZlwtdGhlXC1wYW5pY2xlZFwtbWlsbGV0Owor5IWtID4gYVwtdmFyaWV0eVwtb2ZcLXBhbmljbGVkXC1taWxsZXQ7CivkhaMgPiBhXC12YXJpZXR5XC1vZlwtcGFuaWNsZWRcLW1pbGxldDsKK+SFjCA+IHN0YWxrXC1vZlwtd2hlYXRcLW9yXC1yaWNlXC1wbGFudDsKK+SDiyA+IGFcLWZpbmVcLXN0b25lXC1yZXNlbWJsaW5nXC1qYWRlOwor5IK1ID4gc291bmRcLW9mXC1idW1waW5nXC1vclwtc3RyaWtpbmc7Civkgq8gPiBhXC1maW5lXC1zdG9uZVwtcmVzZW1ibGluZ1wtamFkZTsKK+SCqyA+IG5vaXNlXC1vZlwtc3RvbmVzXC1yb2xsaW5nXC1kb3duOwor5IKlID4gYVwtZmluZVwtc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7CivkgLMgPiBub3RcLXRvXC1sb29rXC1zdHJhaWdodFwtZm9yd2FyZDsKK+O+tCA+IHRoZVwtZXJ5dGhlbWFcLW9mXC1hY25lXC1yb3NhY2VhOwor47mlID4gYVwteWVsbG93XC1kb2dcLXdpdGhcLWJsYWNrXC1oZWFkOwor47mBID4gZ2VuZXJhbGx5XC1jYWxsZWRcLXRoZVwtYW5pbWFsczsKK+O1tSA+IHN3aWZ0XC1jdXJyZW50c1wtb2ZcLXRoZVwtc3RyZWFtOwor47WOID4gYVwtbW91bnRhaW5cLXN0cmVhbVwtb3JcLXRvcnJlbnQ7CivjtJogPiB0aGVcLXNtYWxsXC1kaXRjaFwtaW5cLXRoZVwtZmllbGQ7CivjsIYgPiBhblwtaW5zdHJ1bWVudFwtdG9cLWJsb3dcLWFcLWZpcmU7CivjsIEgPiBhXC10cmVlXC13aXRoXC1zbGFudGVkXC1icmFuY2hlczsKK+OvsyA+IGFcLWtpbmRcLW9mXC10b29sXC10b1wtYWRqdXN0XC1ib3c7CivjrrQgPiBhXC1udW1lcmFyeVwtYWRqdW5jdFwtZm9yXC1zaGlwczsKK+OlnCA+IHVuc3VjY2Vzc2Z1bFwtaW5cLW9uZScnc1wtY2FyZWVyOwor46GxID4gdG9cLWNhdXRlcml6ZVwtYnlcLWJ1cm5pbmdcLW1veGE7CivjoLEgPiB0b1wtc2V0XC13aXRoXC10aGVcLWxlZ3NcLWNsb3NzZWQ7CivjnIwgPiBhXC1kaWZmZXJlbnRcLW5hbWVcLWZvclwtYnJlYXN0czsKK+OZviA+IGhpbGxzXC13aXRoXC1sb3RzXC1vZlwtYmlnXC1yb2NrczsKK+OZmyA+IGFcLXBlcnNvbicnc1wtbmFtZVwtaW5cLW9sZFwtdGltZXM7Civjl74gPiB0b1wtZ2l2ZVwtdmVudFwtdG9cLXRoZVwtZmVlbGluZ3M7Civjl4YgPiBzb3VuZFwtb2ZcLXRoZVwtcmluZ2VkXC1waGVhc2FudDsKK+OTsyA+IHVzZVwta25pZmVcLXRvXC1zcGxpdFwtc29tZXRoaW5nOwor45GfID4gaW5zaW5jZXJlXC1hbmRcLWN1bm5pbmdcLXBlcnNvbjsKK+WVpiA+IGZpbmFsXC1wYXJ0aWNsZVwtb2ZcLWFzc2VydGlvbjsKK+e7vCA+IGFycmFuZ2VcLXRocmVhZHNcLWZvclwtd2VhdmluZzsKK+aLrSA+IHdpcGVcLWF3YXlcLXN0YWluc1wtd2l0aFwtY2xvdGg7Civlj64gPiBleGhvcnRcLW9yXC1lbmpvaW5cLXJlcGVhdGVkbHk7CivmiJ8gPiBoYWxiZXJkXC13aXRoXC1jcmVzY2VudFwtYmxhZGU7Civlh5sgPiB0b1wtc2hpdmVyXC13aXRoXC1jb2xkXC1vclwtZmVhcjsKK+agiyA+IG1haW5cLWJlYW1zXC1zdXBwb3J0aW5nXC1ob3VzZTsKK+mrpiA+IGZsb3dpbmdcLWhhaXJcLW9mXC15b3VuZ1wtY2hpbGQ7CivnrZ0gPiBzdHJpbmdlZFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+S4mSA+IHRoaXJkXC1vZlwtdGhlXC1oZWF2ZW5seVwtc3RlbXM7CivmsoIgPiByaXZlclwtaW5cLXNvdXRoZWFzdFwtc2hhbmRvbmc7CivnrIggPiBiYW1ib29cLWJveFwtdXNlZFwtY2FycnlcLWJvb2tzOwor55OiID4gbGFkbGVcLW1hZGVcLWZyb21cLWRyaWVkXC1nb3VyZDsKK+WRlyA+IGZpbmFsXC1wYXJ0aWNsZVwtb2ZcLWFzc2VydGlvbjsKK+ewpyA+IHJlZWRcLW9mXC13b29kd2luZFwtaW5zdHJ1bWVudDsKK+ibnyA+IHNjYWx5XC1kcmFnb25cLXdpdGhcLWZvdXJcLWxlZ3M7CivmlZUgPiBhblwtaW1wZXJpYWxcLW9yZGVyXC1vclwtZGVjcmVlOwor6KOfID4gYVwtY2Fzc29ja1wtb3JcLXJvYmVcLW9mXC1hXC1tb25rOwor56K0ID4gY2hpcHBlZFwtZWRnZVwtb2ZcLWFcLWNvbnRhaW5lcjsKK+eYtCA+IG1hbGFyaWFcLXBlc3RpbGVudGlhbFwtdmFwb3JzOwor57q2ID4gZ3JlZW5cLXNpbGtcLXRocmVhZFwtb3JcLXRhc3NlbDsKK+e9oSA+IHRoZVwtbmFtZVwtb2ZcLWFcLWNlcnRhaW5cLXN0YXJzOwor55m4ID4gbGFzdFwtb2ZcLXRlblwtY2VsZXN0aWFsXC1zdGVtczsKK+aphyA+IGFcLXNsZWRnZVwtZm9yXC10cmFuc3BvcnRhdGlvbjsKK+eaiyA+IHRoZVwtaGlnaFwtbGFuZFwtYWxvbmdcLWFcLXJpdmVyOwor5r2NID4gY291bnR5XC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5rSZID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbmRvbmc7CivnjaAgPiB0b1wtaHVudFwtYXRcLW5pZ2h0XC1ieVwtdG9yY2hlczsKK+m6kiA+IGxlZ2VuZGFyeVwtYXVzcGljaW91c1wtYW5pbWFsOwor54+pID4gdGhlXC10b3BcLWdlbVwtb2ZcLXRoZVwtcGVuZGFudHM7CivosKUgPiB0b1wtY29uZmVyXC1wb3N0aHVtb3VzXC10aXRsZXM7Civnp6sgPiBnbHV0aW5vdXNcLXZhcmlldHlcLW9mXC1taWxsZXQ7Civnq70gPiBhbmNpZW50XC13b29kd2luZFwtaW5zdHJ1bWVudDsKK+W0riA+IFwoZWxlbWVudFwtaW5cLW1vdW50YWluXC1uYW1lc1wpOwor5oSAID4gdG9cLWNoYW5nZVwtb25lJydzXC1jb3VudGVuYW5jZTsKK+mEoiA+IG5hbWVcLW9mXC1hXC1kaXN0cmljdFwtaW5cLWhvbmFuOwor55mNID4gdW5oZWFsdGh5XC1tYXJrc1wtb25cLXRoZVwtc2tpbjsKK+mEniA+IGNvdW50eVwtaW5cLXpoZWppYW5nXC1wcm92aW5jZTsKK+mbkiA+IGJsYWNrXC1ob3JzZVwtd2l0aFwtd2hpdGVcLW1hbmU7Civml5IgPiBmcmluZ2VzXC1vZlwtcGVhcmxzXC1vblwtY3Jvd25zOwor55CKID4gYVwtcGxhY2VcLWluXC1lYXN0ZXJuXC1zaGFuZG9uZzsKK+iaqCA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmVldGxlXC1jYXNoOwor5q+zID4gZmluZVwtaGFpclwtb3JcLWZ1clwtb25cLWFuaW1hbHM7CivnmKUgPiB0b1wtcmVjb3ZlclwtZnJvbVwtYW55XC1kaXNlYXNlOwor5riRID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbmRvbmc7CivmtYggPiByaXZlclwtaW5cLWd1YW5nZG9uZ1wtcHJvdmluY2U7CivlmKcgPiBcKHBob25ldGljXClcLWFzXC1pblwtcHlyaW1pZGluZTsKK+m1viA+IGFcLWJpcmRcLXJlc2VtYmxpbmdcLXRoZVwtY3JhbmU7CivprqggPiBlcGluZXBoZWx1c1wtc2VwdGVtZmFzY2lhdHVzOwor6aOmID4gd2VsbFwtYm9pbGVkXC1jb25nZWVcLW9yXC1ncnVlbDsKK+mbiiA+IHRoZVwtY3Jvd1wtb2ZcLWFcLW1hbGVcLXBoZWFzYW50Owor6Zq6ID4gYVwtYmlyZFwtZmx5aW5nXC1oaWdoXC1hbWJpdGlvbjsKK+mGsSA+IHRvXC1icmV3XC1mb3JcLXRoZVwtc2Vjb25kXC10aW1lOwor6YaXID4gdG9cLWJyZXdcLWZvclwtdGhlXC1zZWNvbmRcLXRpbWU7CivphZYgPiB3aW5lXC13aXRoXC1iaXJkXC1wb2lzb25cLWFkZGVkOwor6YS/ID4gY291bnR5XC1pblwteGluamlhbmdcLXByb3ZpbmNlOwor6YSpID4gY291bnR5XC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YSNID4gYVwtdG93blwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+i5miA+IHRyZWFkXC10aHJvdWdoXC1tdWRcLWFuZFwtd2F0ZXI7CivorJogPiB0b1wtY29uZmVyXC1wb3N0aHVtb3VzXC10aXRsZXM7CivopJggPiBjZXJlbW9uaWFsXC1nb3duc1wtb2ZcLWFcLXF1ZWVuOwor6J+wID4gc21hbGxcLXNwaWRlclwtd2l0aFwtbG9uZ1wtbGVnczsKK+iblSA+IHRoZVwtY29tbW9uXC1pbnRlc3RpbmFsXC13b3JtczsKK+iCtyA+IGFyZWFcLWJldHdlZW5cLXdhaXN0XC1hbmRcLWhpcHM7CivntrggPiBncmVlblwtc2lsa1wtdGhyZWFkXC1vclwtdGFzc2VsOwor57acID4gYXJyYW5nZVwtdGhyZWFkc1wtZm9yXC13ZWF2aW5nOwor57GEID4gYVwtYmFza2V0XC1mb3JcLWNhcnJ5aW5nXC1lYXJ0aDsKK+eujyA+IHN0cmluZ2VkXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor566OID4gYW5jaWVudFwtd29vZHdpbmRcLWluc3RydW1lbnQ7CivnrY4gPiB0aGluXC1vdXRzaWRlXC1za2luXC1vZlwtYmFtYm9vOwor556kID4gdG9cLWJsaW5rXC1vclwtdHdpdGNoXC10aGVcLWV5ZXM7CivnmpAgPiB0aGVcLWhpZ2hcLWxhbmRcLWFsb25nXC1hXC1yaXZlcjsKK+a/sCA+IGNvdW50eVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+a+oCA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW5kb25nOwor5rmeID4gcml2ZXJcLWluXC1ndWFuZ2RvbmdcLXByb3ZpbmNlOwor5regID4gbHV4dXJpYW50XC1cKG9mXC13YXRlclwtcGxhbnRzXCk7CivmtbAgPiBhdHRlbmRcLVwob2ZmaWNpYWxcLWZ1bmN0aW9uc1wpOwor5rORID4gdGhlXC12aXRyZW91c1wtZ2xhemVcLW9uXC1jaGluYTsKK+auqCA+IHRvXC1vcGVuXC1hc1wtYW5cLXVsY2VyXC1vclwtc29yZTsKK+aejyA+IGFcLXZhcmlldHlcLW9mXC1ldmVyZ3JlZW5cLXRyZWU7Civml4ggPiBmcmluZ2VzXC1vZlwtcGVhcmxzXC1vblwtY3Jvd25zOwor5pCHID4gdG9cLXByZXNzXC1kb3duXC13aXRoXC10aGVcLWhhbmQ7CivlvLggPiBhXC1ib3dcLXN0cmV0Y2hlZFwtdG9cLXRoZVwtZnVsbDsKK+W3oCA+IHN0cmVhbXNcLXJ1bm5pbmdcLXVuZGVyZ3JvdW5kOwor5bWbID4gY291bnR5XC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5bSzID4gY291bnR5XC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5bSZID4ga3VubHVuXC1tb3VudGFpbnNcLWluXC1qaWFuZ3N1Owor5bSYID4ga3VubHVuXC1tb3VudGFpbnNcLWluXC1qaWFuZ3N1Owor5bSQID4ga3VubHVuXC1tb3VudGFpbnNcLWluXC1qaWFuZ3N1Owor5aCzID4gbGFuZFwtYWxsb3RtZW50XC1mZXVkYWxcLW5vYmxlOwor5ZmVID4gdG9cLXNwZWFrXC1mYWxzZWx5XC1vclwtd3JvbmdseTsKK+WZhSA+IHRvXC1zcGVha1wtZmFsc2VseVwtb3JcLXdyb25nbHk7CivkuKkgPiB0b1wtam9pblwtb3JcLWNvbm5lY3RcLXRoZVwtdmluZTsKK+S4kiA+IHRoZVwtcGVyaW9kXC1mcm9tXC0xXC10b1wtM1wtYVwubVwuOwor5LWFID4gdG9cLWV4dHJhY3RcLWJ5XC1hcHBseWluZ1wtaGVhdDsKK+S0syA+IGRpc3RpbGxlcicnc1wtZ3JhaW5zXC1vclwteWVhc3Q7CivktK0gPiBkaXN0aWxsZXInJ3NcLWdyYWluc1wtb3JcLXllYXN0Owor5LOeID4gYmlyZHNcLWZseWluZ1wtYWxsXC1kaXJlY3Rpb25zOwor5LOKID4gYVwtd2lsZFwtZHVja1wtbGlrZVwtd2F0ZXJcLWJpcmQ7Civks4MgPiBhXC1raW5kXC1vZlwtcGhvZW5peFwtbGlrZVwtYmlyZDsKK+SzgSA+IGFcLXdpbGRcLWR1Y2tcLWxpa2VcLXdhdGVyXC1iaXJkOwor5Kq3ID4gdG9cLXRvaWxcLW9yXC1sYWJvclwtc2VkdWxvdXNseTsKK+SqhyA+IGN1c2hpb25lZFwtc2VhdFwtb25cLWFcLXZlaGljbGU7Civkqb8gPiBhXC1iaWdcLWRydW1cLXVzZWRcLWluXC10aGVcLWFybXk7Civkp5ggPiBhXC1sb3dcLXdhbGxcLW9uXC10aGVcLXJvYWRcLXNpZGU7CivkprIgPiBlYXZlc1wtb2ZcLWFcLWFuY2VzdHJhbFwtdGVtcGxlOwor5KS7ID4gaGVhdnlcLWlyb25cLXBhcnRcLW9mXC1hXC1wbG91Z2g7Civko7IgPiB0b1wtaGVhdFwtdGhlXC13aW5lXC1vdmVyXC1uaWdodDsKK+SiryA+IHRvXC1jaG9vc2VcLW9yXC1zZWxlY3RcLWNhcmVmdWw7CivkoIsgPiBiZWxsXC1zaGFwZWRcLXdpdGhcLWxhcmdlXC1iYXNlOwor5J+uID4gdG9cLWNyYXdsXC1vblwtaGFuZHNcLWFuZFwta25lZXM7CivknLggPiBzbWFsbFwtcGllY2VzXC1vZlwtYmVhblwtc3RhbGtzOwor5JyHID4gdG9cLXNwZWFrXC1ub3RcLWluXC1hXC1jbGVhclwtd2F5Owor5JqjID4gY3Jvb2tlZFwtaG9ybnNcLW9mXC10aGVcLWFuaW1hbDsKK+SanCA+IGNhdHRsZVwtd2l0aFwtY3Jvc3N3aXNlXC1ob3JuczsKK+SZoyA+IHJhZ2dlZFwtZ2FybWVudHNcLW9yXC1jbG90aGluZzsKK+SZlSA+IGNsb3RoZXNcLXRoYXRcLWhhdmVcLW5vXC1saW5pbmc7CivkmZQgPiBjbG90aGVzXC1tYWRlXC1vZlwtcG9vclwtZmFicmljOwor5JmTID4gdGhlXC1sb3dlclwtcGFydFwtb2ZcLWFcLWdhcm1lbnQ7CivkmLkgPiBjbG90aGVzXC10aGF0XC1oYXZlXC1ub1wtbGluaW5nOwor5JilID4gdGhlXC1mcm9udFwtb2ZcLWFcLWNoaW5lc2VcLWdvd247CivkmKMgPiBjbG90aGVzXC10aGF0XC1oYXZlXC1ub1wtbGluaW5nOwor5JiBID4gYVwtYmx1ZVwtZ3JlZW5cLWNvbG9yZWRcLWNpY2FkYTsKK+SXtSA+IGFcLWRpc2Vhc2VcLWF0dGFja2VkXC1zaWxrd29ybTsKK+SVriA+IGZsb3dlclwtb2ZcLXRoZVwtY2hyeXNhbnRoZW11bTsKK+SVpiA+IGZsb3dlclwtb2ZcLXRoZVwtY2hyeXNhbnRoZW11bTsKK+SUpSA+IGNvbW1vblwtdmFyaWV0eVwtb2ZcLWFydGVtaXNpYTsKK+SUnyA+IHNoYWtlXC1hbmRcLXdhdmVcLW9mXC10aGVcLWdyYXNzOwor5JC8ID4gdGhpblwtbWVtYnJhbmVcLW9mXC10aGVcLXRocm9hdDsKK+SQryA+IHVnbHlcLWFwcGVhcmFuY2VcLW9mXC1hXC1wZXJzb247CivkkJEgPiB0aGluXC1jdXRcLW9mXC10aGVcLXNsaWNlZFwtbWVhdDsKK+SNuiA+IGFcLWxlZ2VuZGFyeVwtZ29hdFwtbGlrZVwtYmVhc3Q7CivkjLwgPiBhXC1raW5kXC1vZlwtZmluZVwtc2lsa1wtZmFicmljczsKK+SMhCA+IGFcLXJvcGVcLWZvclwtZHJhd2luZ1wtdXBcLXdhdGVyOwor5IuBID4gYVwtcm9wZVwtZm9yXC1kcmF3aW5nXC11cFwtd2F0ZXI7Civkip4gPiB0b1wtcm9sbFwtcm91bmRcLXdpdGhcLXRoZVwtaGFuZDsKK+SKlSA+IHdlbGxcLWJvaWxlZFwtY29uZ2VlXC1vclwtZ3J1ZWw7CivkioggPiBkaXN0aWxsZXInJ3NcLWdyYWluc1wtb3JcLXllYXN0Owor5Im6ID4gZGV0ZXJpb3JhdGVkXC1hbmRcLWJlY29tZVwtcmVkOwor5Im5ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkibggPiBzbGlwc1wtb2ZcLWJhbWJvb1wtZm9yXC13cml0aW5nOwor5ImzID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287Civkia0gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJqyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImmID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiaEgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJoCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImaID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiZkgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJjyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5ImGID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiYQgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SJgSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5Ii9ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiLwgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIsiA+IGFcLWJhbWJvb1wtYmFza2V0XC1mb3JcLWZpc2hpbmc7CivkiK8gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIrSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IijID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiKIgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIoSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IidID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiJggPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIlyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IiWID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiI8gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIjSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IiMID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287CivkiIsgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SIiiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5Ie6ID4gYmVhbnNcLWFuZFwtcGVhc1wtY29sbGVjdGl2ZWx5Owor5Ie1ID4gb25lXC1vZlwtdGhlXC13aW5kXC1pbnN0cnVtZW50czsKK+SHqiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IeeID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1iYW1ib287Civkh5sgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWJhbWJvbzsKK+SHmSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtYmFtYm9vOwor5IWqID4gZGlzZWFzZVwtb2ZcLXRoZVwtcHJpdmF0ZVwtcGFydDsKK+SEsCA+IGZvcnR5XC1idW5kbGVzXC1vZlwtcmljZVwtcGxhbnQ7Civkg4cgPiBpbmtcLWZvclwtaW1wcmludGluZ1wtb2ZcLXNlYWxzOwor5ICRID4gdG9cLWdvdWdlXC1vdXRcLWFuXC1leWVcLW9yXC1leWVzOwor47+AID4gdW5oZWFsdGh5XC1tYXJrc1wtb25cLXRoZVwtc2tpbjsKK+O9jiA+IHRoZVwtcHJvZnVuZGl0eVwtb2ZcLXRoZVwtaGFyZW07CivjvKAgPiBhXC1jcm9ja1wtd2l0aFwtbmFycm93XC1vcGVuaW5nOwor47qsID4gYVwtbGFyZ2VcLXBpZWNlXC1vZlwtamFkZVwtc3RvbmU7CivjupIgPiBiYXJraW5nXC1vZlwtYVwtZnJpZ2h0ZW5lZFwtZG9nOwor47mWID4gdG9cLWZlZWRcLWFuaW1hbHNcLXdpdGhcLWdyYWluczsKK+O4kiA+IHRvXC1hYnN1cmRcLXB1cnN1aXRcLW9yXC1kZXNpcmU7CivjroAgPiB0b29sXC10b1wtY2xlYXJcLW91dFwtdGhlXC13YXRlcjsKK+OtlSA+IGFcLWJvYXJkXC1mb3JcLWNhcnJ5aW5nXC10aGluZ3M7CivjqZsgPiB0b1wtcm9sbFwtcm91bmRcLXdpdGhcLXRoZVwtaGFuZDsKK+OphiA+IHRvXC1iZVwtaW5cLWZ1bGxcLXBvc3Nlc3Npb25cLW9mOwor46irID4gdG9cLWJlXC1pblwtZnVsbFwtcG9zc2Vzc2lvblwtb2Y7Civvp5UgPiBrdW5sdW5cLW1vdW50YWluc1wtaW5cLWppYW5nc3U7Civjp5UgPiB0b1wtZmVlbFwtb3JcLXRvdWNoXC13aXRoXC1oYW5kczsKK+OngiA+IGFcLWNhdmVcLWFcLWhvbGRcLWluXC10aGVcLWdyb3VuZDsKK+OmkCA+IGFcLXN0cmFpZ2h0Zm9yd2FyZFwtY2hhcmFjdGVyOwor46W0ID4gZG9cLW5vdFwtY2FyZVwtYWJvdXRcLXNvbWV0aGluZzsKK++kmiA+IHdoaXRlXC1ob3JzZVwtd2l0aFwtYmxhY2tcLW1hbmU7CivjoqwgPiBhXC1ib3dcLXN0cmV0Y2hlZFwtdG9cLXRoZVwtZnVsbDsKK+OhtSA+IHJvb2ZcLW9mXC10aGVcLWhvdXNlXC1jb25uZWN0ZWQ7CivjoJ8gPiBhXC1tb3VudGFpblwtaW5cLWFuY2llbnRcLXRpbWVzOwor45u9ID4gdG9cLXdhbGtcLXNsb3dseVwtbGlrZVwtYVwtd29tYW47Civjm64gPiB3aWZlXC1vZlwtb25lJydzXC1lbGRlclwtYnJvdGhlcjsKK+OTiCA+IHNvdW5kXC1vZlwtZmx5aW5nXC1vclwtc3BlZWRpbmc7CivjkqsgPiBjaG9rZWRcLWFuZFwtdW5hYmxlXC10b1wtYnJlYXRoOwor45KWID4gdGhlXC1yb290XC1zdG9ja1wtb2ZcLXRoZVwtbG90dXM7CivnlaYgPiBzZWN0aW9uc1wtaW5cLXZlZ2V0YWJsZVwtZmFybTsKK+eUuiA+IHJhaXNlZFwtcGF0aFwtYmV0d2VlblwtZmllbGRzOwor5ZuBID4gbW92ZVwtbGlwc1wtYXNcLXdoZW5cLXNwZWFraW5nOwor5LymID4gbm9ybWFsXC1odW1hblwtcmVsYXRpb25zaGlwczsKK+WYmyA+IGZpbmFsXC1leGNsYW1hdG9yeVwtcGFydGljbGU7CivokKggPiBidWRkaGlzdFwtZ29kc1wtb3JcLWltbW9ydGFsczsKK+ahkCA+IG5hbWVcLWFwcGxpZWRcLXZhcmlvdXNcLXRyZWVzOwor6JKCID4gcGVkdW5jbGVcLW9yXC1zdGVtXC1vZlwtcGxhbnRzOwor57S6ID4gZGFya1wtYmx1ZVwtb3JcLXJlZGRpc2hcLWNvbG9yOwor5qO1ID4gbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtdHJlZXM7CivmoKogPiBudW1lcmFyeVwtYWRqdW5jdFwtZm9yXC10cmVlczsKK+WTiSA+IGZpbmFsXC1leGNsYW1hdG9yeVwtcGFydGljbGU7CivmhosgPiB0b1wtc3VwcHJlc3NcLWlubmVyXC1mZWVsaW5nczsKK+WtnCA+IGJlXC1hc1wtZGlsaWdlbnRcLWFzXC1wb3NzaWJsZTsKK+eysSA+IGJldHRlclwtdmFyaWV0aWVzXC1vZlwtbWlsbGV0Owor5bOSID4gbW91bnRhaW5cLWluXC1nYW5zdVwtcHJvdmluY2U7CivmpqggPiB0b1wtcHJlc3NcLW9yXC1leHRyYWN0XC1qdWljZXM7Civll6sgPiBtb3ZlXC1saXBzXC1hc1wtd2hlblwtc3BlYWtpbmc7CivphLEgPiBjb3VudHlcLWFuZFwtbGFrZVwtaW5cLWppYW5neGk7Civoj6AgPiBzcGluYWNoXC1hbmRcLXNpbWlsYXJcLWdyZWVuczsKK+a3niA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWppYW5nc3U7Civmt4QgPiByaXZlclwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+iPjyA+IHJpdmVyXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5oKxID4gdG9cLWJlXC1kZXNpcm91c1wtb2ZcLXNwZWFraW5nOwor5ryvID4gcml2ZXJcLWluXC1ub3J0aGVyblwtc2hhbmRvbmc7CivolZkgPiBzcGVjaWVzXC1vZlwtZnJhZ3JhbnRcLW9yY2hpZDsKK+a7gSA+IGRpc3RyaWN0XC1pblwtYW5odWlcLXByb3ZpbmNlOwor54uBID4gYVwtdHJpYmVcLW9mXC1zY3l0aGlhblwtbm9tYWRzOwor6YWiID4gdG9hc3RcLW9uZScnc1wtaG9zdFwtd2l0aFwtd2luZTsKK+ihvyA+IGNvbGxhclwtb3JcLWxhcGVsXC1vZlwtZ2FybWVudDsKK+W2nSA+IHBhdGhcLWxlYWRpbmdcLXVwXC1hXC1tb3VudGFpbjsKK+aXgyA+IHNpbGtcLWJhbm5lclwtd2l0aFwtYmVudFwtcG9sZTsKK+m9kSA+IGJyZWFrXC1vclwtc21hc2hcLWludG9cLXBpZWNlczsKK+e7gCA+IGRhcmtcLWJsdWVcLW9yXC1yZWRkaXNoXC1jb2xvcjsKK+iEmCA+IGludGVybmFsXC1jYXZpdHlcLW9mXC1zdG9tYWNoOwor6ZWSID4gbWVhc3VyZVwtb2ZcLXdlaWdodFwtZm9yXC1nb2xkOwor55ytID4gZXZpbFwtbG9va1wtb2ZcLWRlZXBcLXNldFwtZXllczsKK+mUliA+IHRoZVwtY29sb3JcLW9mXC10aGVcLWFcLW1pbmVyYWw7CivpgpkgPiBtb3VudGFpblwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+WhjSA+IHJhaXNlZFwtcGF0aFwtYmV0d2VlblwtZmllbGRzOwor5pWrID4gYW5jaWVudFwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+azuiA+IHJpdmVyXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6JCRID4gZ3Jhc3NcLXVzZWRcLWZvclwtbWFraW5nXC1tYXRzOwor6KevID4gd2luZVwtZ29ibGV0XC1tYWRlXC1mcm9tXC1ob3JuOwor6IijID4gdG9cLW1vb3JcLWFcLWJvYXRcLXRvXC10aGVcLWJhbms7CivpvY8gPiBicmVha1wtb3JcLXNtYXNoXC1pbnRvXC1waWVjZXM7CivpprUgPiBob3JzZVwtd2l0aFwtd2hpdGVcLWJhY2tcLWxlZ3M7Civpo6MgPiBkaXNwbGF5XC1mb29kXC1mb3JcLXNob3dcLW9ubHk7Civpn7IgPiBicmVha1wtb3JcLXNtYXNoXC1pbnRvXC1waWVjZXM7Civpl5IgPiB1cHBlclwtc3RvcnlcLWRvb3JcLW9yXC13aW5kb3c7CivpjrAgPiBtZWFzdXJlXC1vZlwtd2VpZ2h0XC1mb3JcLWdvbGQ7CivpioEgPiBhXC13ZWlnaHRcLW9mXC10aGlydHlcLWNhdHRpY3M7CivphoogPiB0b1wtcG91clwtd2luZVwtaW5cLWFcLWxpYmF0aW9uOwor6YO/ID4gY291bnR5XC1pblwtc2hhYW54aVwtcHJvdmluY2U7Civpg7MgPiBzdGF0ZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mDoCA+IHBsYWNlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YOaID4gdG93bnNcLWluXC1zaGFuZG9uZ1wtcHJvdmluY2U7Civpg5UgPiBzdGF0ZVwtaW5cLXNoYW5kb25nXC1wcm92aW5jZTsKK+mDiCA+IHBsYWNlXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor6YKgID4gY291bnR5XC1pblwtc2hhYW54aVwtcHJvdmluY2U7CivovKQgPiBhXC1wYWxsXC10b1wtY292ZXJcLXRoZVwtaGVhcnNlOwor6LiSID4gdG9cLXNsaXBcLWFuZFwtc3ByYWluXC1hXC1ibGltYjsKK+intiA+IHdpbmVcLWdvYmxldFwtbWFkZVwtZnJvbVwtaG9ybjsKK+imkCA+IGFcLXNsZWVwXC10b1wtcmVhbGl6ZVwtdG9cLWZlZWw7CivomaEgPiBzdXBwb3J0XC1zdHJ1Y3R1cmVcLWZvclwtYmVsbDsKK+iWviA+IGx1eHVyaWFudFwtZ3Jvd3RoXC1vZlwtZmxvd2VyOwor6JSVID4gcGVkdW5jbGVcLW9yXC1zdGVtXC1vZlwtcGxhbnRzOwor6IyIID4gYVwtcGxhbnRcLXlpZWxkaW5nXC1hXC1yZWRcLWR5ZTsKK+iJpCA+IHRvXC1tb29yXC1hXC1ib2F0XC10b1wtdGhlXC1iYW5rOwor6IaGID4gdGhlXC1jb3JwXC1vZlwtYVwtYmlyZFwtb3JcLWZvd2w7Civnva0gPiBkcmFnXC1uZXRcLW1hZGVcLW9mXC1maW5lXC1tZXNoOwor572PID4gZWFydGhlblwtc3RhbmRcLWZvclwtd2luZVwtanVnOwor572NID4gbGFyZ2VcLWVhcnRoZW53YXJlXC13aW5lXC1qYXI7CivnubggPiBoZW1cLW9yXC1ib3JkZXJcLW9mXC1hXC1nYXJtZW50Owor56+fID4gbHV4dXJpYW50XC1ncm93dGhcLW9mXC1iYW1ib287CivnqoYgPiB0b1wtcHV0XC1hXC1jb2ZmaW5cLWluXC1hXC1ncmF2ZTsKK+elsiA+IG9taW5vdXNcLW9yXC1zaW5pc3Rlclwtc3Bpcml0Owor55mVID4gbG9zc1wtb2ZcLXRoZVwtc2Vuc2VcLW9mXC1zbWVsbDsKK+eVtyA+IHJhaXNlZFwtcGF0aFwtYmV0d2VlblwtZmllbGRzOwor55S8ID4gcmFpc2VkXC1wYXRoXC1iZXR3ZWVuXC1maWVsZHM7CivnkoggPiBhbmNpZW50XC1tdXNpY2FsXC1pbnN0cnVtZW50Owor54+bID4gcXVpY2tseVwtZGV0ZXJpb3JhdGluZ1wtamFkZTsKK+a/vCA+IHJpdmVyXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5r63ID4gd2F0ZXJcLW92ZXJmbG93aW5nXC1kaWZmdXNlZDsKK+a4riA+IHJpdmVyXC1pblwtc2hhbmRvbmdcLXByb3ZpbmNlOwor5q+pID4gYVwtbGVhdGhlclwtYmFsbFwtZm9yXC1raWNraW5nOwor5qaDID4gcmFpc2VkXC1wYXRoXC1iZXR3ZWVuXC1maWVsZHM7Civmj7kgPiBjYXJyeVwtdGhpbmdzXC1vblwtb25lJydzXC1iYWNrOwor5o+BID4gc291bmRcLW9mXC1zZXR0aW5nXC11cFwtYVwta290bzsKK+WznSA+IG1vdW50YWluXC1pblwtZ2Fuc3VcLXByb3ZpbmNlOwor5aqnID4gbXl0aG9sb2dpY2FsXC1zbmFpbFwtZ29kZGVzczsKK+WbiSA+IGV4Y2xhbWF0b3J5XC1maW5hbFwtcGFydGljbGU7CivlmLcgPiB0aGVcLXJvYXJpbmdcLW9mXC13aWxkXC1iZWFzdHM7CivlmJAgPiBmaW5hbFwtZXhjbGFtYXRvcnlcLXBhcnRpY2xlOwor5YmeID4gY2FydmluZ1wtb3JcLWVuZ3JhdmluZ1wta25pZmU7Civlho8gPiBhYnV0aWxvblwtYXZpY2VubmFlXC1cKHBsYW50XCk7CivlgKsgPiBub3JtYWxcLWh1bWFuXC1yZWxhdGlvbnNoaXBzOwor5LmrID4gdXNlZFwtaW5cLWtvcmVhblwtcGxhY2VcLW5hbWVzOwor5LWGID4gZ3JhaW5zXC1mcm9tXC10aGVcLWRpc3RpbGxlcnk7CivktL8gPiBncmFpbnNcLWZyb21cLXRoZVwtZGlzdGlsbGVyeTsKK+SyryA+IGFcLWtpbmRcLW9mXC1ibGFja1wtc21hbGxcLWJpcmQ7Civkr5MgPiB0aGVcLWhlYWRcLWJvbmVcLW9mXC1saXZlc3RvY2s7CivkrrYgPiBmbG9ja1wtb2ZcLWhvcnNlc1wtc3RhbXBlZGluZzsKK+SuoyA+IGFcLXllbGxvd1wtd2l0aFwtYVwtd2hpdGVcLXRhaWw7CivkrLEgPiBjb2Fyc2VcLWdyYWluc1wtc3VjaFwtYXNcLWNvcm47CivkqbIgPiBhXC10b29sXC11c2VkXC10b1wtY3V0XC1sZWF0aGVyOwor5KmaID4gdG9cLW1lbmRcLXRoZVwtc29sZXNcLW9mXC1zaG9lczsKK+SpmCA+IHRvXC1tZW5kXC10aGVcLXNvbGVzXC1vZlwtc2hvZXM7CivkoaYgPiB0aGVcLWVtcHR5XC1zcGFjZVwtb2ZcLWFcLXdoZWVsOwor5KCJID4gdG9cLXJ1blwtYXdheVwtb3JcLWVzY2FwZVwtZnJvbTsKK+SekSA+IGFcLXJlZFwtc3dlbGxpbmdcLW9mXC10aGVcLXNraW47Civkm68gPiB0aGVcLXJlYXNvbmFibGVcLW9mXC1zcGVla2luZzsKK+SWhSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civklb8gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JW8ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVtiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklbUgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWzID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVsSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkla0gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWbID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVlyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklZUgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWUID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVkyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklZIgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWNID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SViiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklYggPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JWHID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SVhSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklYAgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JS7ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUuCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklLYgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JS0ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUsiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklLEgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSwID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUriA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklK0gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSqID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUoSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklJ0gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSZID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUlCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklJIgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JSOID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUjCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivklIUgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLXRyZWVzOwor5JSEID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SUgSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk70gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JO8ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STuiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk7MgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JOjID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SToiA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk58gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JOTID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STkCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk44gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JOKID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+STiSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkk4IgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JK1ID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SStCA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkkrEgPiB0d2lnc1wtb2ZcLWhlbXBcLXVzZWRcLWZvXC1mdWVsOwor5JKqID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SSqSA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkkqQgPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JKhID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SSnyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7Civkkp4gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JKcID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SSmyA+IG5hbWVcLW9mXC1hXC12YXJpZXR5XC1vZlwtZ3Jhc3M7CivkkpogPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYXNzOwor5JKUID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFzczsKK+SOtyA+IGFuXC1vbGRcLW1hblwtd2l0aFwtd2hpdGVcLWhhaXI7CivkjKAgPiBob2xkXC1vblwtdG9cLW9uZScnc1wtb3duXC12aWV3czsKK+SLgCA+IHNob2VzXC1tYWRlXC1vZlwtaGVtcFwtb3JcLWhhaXI7Civkiq4gPiBuYW1lXC1vZlwtYVwtdmFyaWV0eVwtb2ZcLWdyYWluOwor5IqsID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1ncmFpbjsKK+SJgiA+IGFcLWJhc2tldFwtZm9yXC1lYXJ0aFwtb3JcLXNvaWw7Civkh5YgPiByb3BlXC1tYWRlXC1vZlwtYmFtYm9vXC1zdHJpcHM7CivkhoAgPiB0b1wtY29ycnVwdFwtb3JcLWJlXC1jb3JydXB0ZWQ7Civkhb4gPiBzdGFydGluZ1wtdG9cLXB1dFwtZm9ydGhcLWVhcnM7CivkhawgPiBzbWFsbFwtYnVuZGxlXC1vZlwtcmljZVwtcGxhbnQ7CivkgY4gPiB0b1wtbWFrZVwtYVwtY2xvc2VcLWluc3BlY3Rpb247CivkgIogPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWNvbnRhaW5lcnM7CivjvKkgPiBjb25jYXZlXC1jaGFubmVsc1wtb2ZcLXRpbGluZzsKK+O6oCA+IGFcLWJsYWNrXC1hcGVcLXdpdGhcLWxvbmdcLXRhaWw7CivjupUgPiB0aGVcLWZpZ2h0aW5nXC1zb3VuZFwtb2ZcLWRvZ3M7CivjuZogPiBzb3VuZFwtb2ZcLWNhbGxpbmdcLXRvXC1hXC1jYWxmOwor47mZID4gc291bmRcLW9mXC1jYWxsaW5nXC10b1wtYVwtY2FsZjsKK+O3tiA+IHRvXC1kcnlcLW9yXC13YXJtXC1uZWFyXC1hXC1maXJlOwor47eDID4gZmlyZVwtYnVybnNcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+O0lCA+IHRoZVwtbm9pc2VcLW9mXC1mbG93aW5nXC13YXRlcjsKK+O0iyA+IGRlZXBcLWFuZFwtY2xlYXJcLVwtdG9cLXVyaW5hdGU7Civjs6cgPiB0aGVcLXdhdGVyXC1mbG93aW5nXC1mcm9tXC1cLlwuXC47Civjsb0gPiB0b1wtaGl0XC1vclwtdG9cLXN0cmlrZWhlYXZpbHk7CivjsbsgPiBkaXNlYXNlc1wtb2ZcLWR1bWJcLWNyZWF0dXJlczsKK+OxoSA+IHRoZVwtc291bFwtb3V0XC1vZlwtb25lJydzXC1ib2R5Owor47GUID4gYVwtc21hbGxcLXF1YW50aXR5XC1vclwtbnVtYmVyOwor46+fID4gZm9vdFwtb2ZcLWFcLWhpbGxcLW9yXC1tb3VudGFpbjsKK+OtriA+IGFcLWtpbmRcLW9mXC1saXF1b3JcLWNvbnRhaW5lcjsKK++ojCA+IGR1cGxpY2F0ZVwtb2ZcLWJpZ1wtZml2ZVwtYTQ2MTsKK++nlCA+IG5vcm1hbFwtaHVtYW5cLXJlbGF0aW9uc2hpcHM7Civvp4YgPiBhbmNpZW50XC1tdXNpY2FsXC1pbnN0cnVtZW50Owor46aDID4gcGVyZmVjdFwtcGVyc29uYWxcLWNoYXJhY3RlcjsKK+OlsSA+IHRvXC1iZVwtZGVzaXJvdXNcLW9mXC1zcGVha2luZzsKK+OljSA+IHRvXC1iZWFyXC1qZWFsb3VzXC1oYXRyZWRcLWZvcjsKK+OkrCA+IGZ1bGxcLW9mXC1hbmdlclwtYW5kXC12ZXhhdGlvbjsKK+OkjiA+IGFcLW1vZGVsXC1vclwtdHlwaWNhbFwtZXhhbXBsZTsKK+OkhCA+IHJhZ2luZ1wtYW5pbW9zaXR5XC1vclwtaGF0cmVkOwor46OnID4gdGhlXC1zdWNjZXNzaW9uXC1pblwtYVwtZmFtaWx5Owor46OjID4gdG9cLXdhbGtcLWluXC1hblwtdW5zdGVhZHlcLXdheTsKK+OiuCA+IGRldmljZVwtZm9yXC1yZWd1bGF0aW5nXC1ib3dzOwor46K2ID4gZGV2aWNlXC1mb3JcLXJlZ3VsYXRpbmdcLWJvd3M7CivjopIgPiBhblwtYWxtb3N0XC1jb2xsYXBzaW5nXC1ob3VzZTsKK+OcqiA+IG5hbWVcLW9mXC1hXC1mYW1pbHlcLW9yXC1hXC1jbGFuOwor45yVID4gcmVsYXRpdmVzXC10aHJvdWdoXC1tYXJyaWFnZTsKK+ObsiA+IHRoZVwtaGFpclwtb25cLXRoZVwtaHVtYW5cLWhlYWQ7Civjmr8gPiBhXC1nb2RkZXNzJydzXC1uYW1lXC1pblwtbGVnZW5kOwor45mhID4gYVwta2luZFwtb2ZcLWVhdGFibGVcLW11c2hyb29tOwor45i5ID4gdG9cLXNwcmVhZFwtc29pbFwtb25cLXRoZVwtcm9hZDsKK+OYpCA+IGNpcmNsZVwtb2ZcLXRoZVwtbW92aW5nXC13YXRlcjsKK+OWqCA+IGluZGlzdGluY3RcLW5hc2FsXC11dHRlcmFuY2U7Civjkr0gPiBhXC1raW5kXC1vZlwtY2FwXC1mb3JcLWNoaWxkcmVuOwor45CWID4gYVwtdHJhbnNsYXRlZFwtbmFtZVwtb2ZcLWluZGlhOwor5bGKID4gbnVtZXJhcnlcLWFkanVuY3RcLWZvclwtdGltZTsKK+WxhiA+IG51bWVyYXJ5XC1hZGp1bmN0XC1mb3JcLXRpbWU7CivosIEgPiB3aG9cP1wtd2hvbVw/XC13aG9zZVw/XC1hbnlvbmVcPzsKK+iqsCA+IHdob1w/XC13aG9tXD9cLXdob3NlXD9cLWFueW9uZVw/Owor6Zi/ID4gcHJlZml4XC1mb3JcLXBlb3BsZScnc1wtbmFtZXM7CivojqIgPiBwb2RzXC1vZlwtbGVndW1pbm91c1wtcGxhbnRzOwor54uEID4gdHJpYmVcLWZyb21cLW5vcnRoZXJuXC1jaGluYTsKK+e5sCA+IHRvXC1yZWVsXC1zaWxrXC1mcm9tXC1jb2Nvb25zOwor5ryTID4gcml2ZXJcLWluXC1ndWFuZ3hpXC1wcm92aW5jZTsKK+WSiyA+IHF1ZXN0aW9uXC1mb3JtaW5nXC1wYXJ0aWNsZTsKK+m6nyA+IGZlbWFsZVwtb2ZcLWNoaW5lc2VcLXVuaWNvcm47CivmuK0gPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFueGk7CivoipwgPiBsdXh1cmlvdXNcLWdyb3d0aFwtb2ZcLXdlZWRzOwor57uOID4gdG9cLXVucmF2ZWxcLW9yXC11bnJlZWxcLXNpbGs7CivnkpAgPiBiZWF1dGlmdWxcLXZhcmlldHlcLW9mXC1qYWRlOwor6Z+2ID4gbXVzaWNcLW9mXC10aGVcLWVtcGVyb3JcLXNodW47CivprJ8gPiBkcmVzc1wtaGFpclwtaW5cLWNvaWxlZFwta25vdDsKK+e9giA+IGxvbmdcLW5lY2tlZFwtamFyXC1vclwtYm90dGxlOwor6Z2zID4gc3RyYXBcLW9uXC1hXC1ob3JzZScnc1wtYnJlYXN0Owor5remID4gcml2ZXJcLWluXC1qaWFuZ3hpXC1wcm92aW5jZTsKK+aQoSA+IHRvXC1wdXNoXC1vdmVyXC1vclwtcHVzaFwtYmFjazsKK+iJriA+IHNldmVudGhcLW9mXC1laWdodFwtZGlhZ3JhbXM7CivmuZ8gPiByaXZlclwtaW5cLXFpbmdoYWlcLXByb3ZpbmNlOwor5rO4ID4gcml2ZXJcLWluXC1qaWFuZ3hpXC1wcm92aW5jZTsKK+iNmiA+IHBvZHNcLW9mXC1sZWd1bWlub3VzXC1wbGFudHM7CivnjLEgPiBhXC1tb25rZXlcLXdpdGhcLXllbGxvd1wtaGFpcjsKK+a2qiA+IHJpdmVyXC1pblwtc2ljaHVhblwtcHJvdmluY2U7CivkurMgPiBuYW1lXC1vZlwtZGlzdHJpY3RcLWluXC1hbmh1aTsKK+iUuiA+IHJ1c2hcLXVzZWRcLWZvclwtbWFraW5nXC1tYXRzOwor55CsID4gdGhlXC12aXJ0dWVcLW9mXC1hXC1nZW50bGVtYW47CivmsqkgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFueGk7CivnjJcgPiBleGNsYW1hdGlvblwtb2ZcLWFkbWlyYXRpb247CivpvJkgPiBkcnVtXC1jYXJyaWVkXC1vblwtaG9yc2ViYWNrOwor6JWyID4gdmFyaWV0eVwtb2ZcLWFydGVtaXNpYVwtc2VlazsKK+eTniA+IHlvdW5nXC1tZWxvbnNcLWp1c3RcLWZvcm1pbmc7CivovoEgPiBjYXJ0XC13aGVlbFwtd2l0aFwtbm9cLXNwb2tlczsKK+mFhiA+IG5hbWVcLW9mXC16aG91XC1wZXJpb2RcLXN0YXRlOwor6bqQID4gZmVtYWxlXC1vZlwtY2hpbmVzZVwtdW5pY29ybjsKK+mwvCA+IHRoZVwtd2VhdGhlclwtb3JcLWRvam9cLWxvYWNoOwor6Z+UID4gYVwtd3JhcHBlclwtb3JcLWNhc2VcLWZvclwtYm93Owor6ZmXID4gYVwtc3RlZXBcLWhpbGxcLlwtcHJlY2lwaXRvdXM7Civpj74gPiB0aGVcLXRyaWdnZXJcLW9mXC1hXC1jcm9zc2JvdzsKK+mEoCA+IGNvdW50eVwtaW5cLXNoYW54aVwtcHJvdmluY2U7CivphJwgPiBjb3VudHlcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor6YSOID4gYVwtcGxhY2VcLWluXC1oZW5hblwtcHJvdmluY2U7Civpg4MgPiBjb3VudHlcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor6LyHID4gY2FydFwtd2hlZWxcLXdpdGhcLW5vXC1zcG9rZXM7Civop7cgPiB0b1wtcHJvY2Vzc1wtb3JcLWNhcnZlXC1ob3JuczsKK+idsCA+IHZpcGVyYVwtcnVzc2VsaWlcLXNpYW1lbnNpczsKK+iYhCA+IHZhcmlldHlcLW9mXC1hcnRlbWlzaWFcLXNlZWs7CivolaogPiBsdXh1cmlvdXNcLWdyb3d0aFwtb2ZcLXdlZWRzOwor6JG2ID4gZHJhYmFcLW5lbWVyb3NhXC1iZWJlXC1jYXJwYTsKK+iKlCA+IGFcLWdlbmVyYWxcLXRlcm1cLWZvclwtcGxhbnRzOwor6IalID4gZWdnc1wtb2ZcLWJpcmRzXC1vclwtcmVwdGlsZXM7CivnvYwgPiBsb25nXC1uZWNrZWRcLWphclwtb3JcLWJvdHRsZTsKK+e9gyA+IGxvbmdcLW5lY2tlZFwtamFyXC1vclwtYm90dGxlOwor57qRID4gdG9cLXNvZnRlblwtaGVtcFwtYnlcLWJvaWxpbmc7CivnubkgPiB0b1wtdW5yYXZlbFwtb3JcLXVucmVlbFwtc2lsazsKK+exqSA+IGJhbWJvb1wtY29udGFpbmVyXC1mb3JcLWZvb2Q7CivnsZ0gPiBhXC10dWJlXC10b1wtaG9sZFwtY2hvcHN0aWNrczsKK+esviA+IGJhbWJvb1wtY29udGFpbmVyXC1mb3JcLWZvb2Q7CivnrI4gPiBiYW1ib29cLXdpdGhcLWJsYWNrXC1wYXRjaGVzOwor56aYID4gaW1wZXJpYWxcLWFuY2VzdG9yXC13b3JzaGlwOwor56SEID4gcGxhY2VcLWluXC1zaWNodWFuXC1wcm92aW5jZTsKK+eSqiA+IHBlYXJsXC1wZW5kYW50c1wtb25cLWNvcm9uZXQ7Civnkb0gPiB0aW5rbGluZ1wtb2ZcLWphZGVcLXBlbmRhbnRzOwor54yyID4gc21va2VcLW9yXC1mbGFtZXNcLWZyb21cLWZpcmU7CivngJggPiByaXZlclwtaW5cLWppYW5neGlcLXByb3ZpbmNlOwor5rqOID4gcml2ZXJcLWluXC1ndWFuZ3hpXC1wcm92aW5jZTsKK+a6iCA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLXNoYW54aTsKK+aznCA+IGFcLXJpdmVyXC1pblwtaGViZWlcLXByb3ZpbmNlOwor5rOSID4gYVwtcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7Civmsa0gPiBjb25mbHVlbmNlXC1vZlwtdHdvXC1zdHJlYW1zOwor5qu9ID4gc2hhcGVcLXdvb2RcLWJ5XC11c2VcLW9mXC1oZWF0Owor5pmsID4gZmlyc3RcLWJpcnRoZGF5XC1vZlwtYVwtY2hpbGQ7CivmgoogPiB3aXNlXC5cLXRvXC1rbm93XC1pbnR1aXRpdmVseTsKK+W9jSA+IHRvXC1kcmF3XC1hXC1ib3dcLXRvXC10aGVcLWZ1bGw7CivluoUgPiBhblwtaW50ZXJyb2dhdGl2ZVwtcGFydGljbGU7CivlrIAgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1zaGFueGk7CivktbUgPiB5ZWxsb3dpc2hcLWJsYWNrXC1hbmRcLXdoaXRlOwor5LWrID4gbGlnaHRcLXJlZFwteWVsbG93aXNoXC1ibGFjazsKK+S0myA+IHRvXC1tYWtlXC1kZWNvY3Rpb25cLW9mXC1zYWx0Owor5LO3ID4gYVwtc2Vjb25kXC1uYW1lXC1mb3JcLWNoaWNrZW47Civks4YgPiBhXC1raW5kXC1vZlwtc3BlY2llc1wtb2ZcLW15bmE7CivksIIgPiBhXC1jb2lmZnVyZVwtd2l0aFwtYVwtdG9wa25vdDsKK+SvvyA+IGFcLWNvaWZmdXJlXC13aXRoXC1hXC10b3Brbm90Owor5K+8ID4gYVwtY29pZmZ1cmVcLXdpdGhcLWFcLXRvcGtub3Q7Civkr7QgPiBhXC1jb2lmZnVyZVwtd2l0aFwtYVwtdG9wa25vdDsKK+SvsiA+IGFcLWNvaWZmdXJlXC13aXRoXC1hXC10b3Brbm90Owor5K6VID4gaG9yc2VcLXdpdGhcLXdoaXRlXC1mb3JlaGVhZDsKK+StqCA+IHdpbmVcLXBvdXJlZFwtaW5cLWFcLWxpYmF0aW9uOwor5Ky9ID4gd2luZVwtcG91cmVkXC1pblwtYVwtbGliYXRpb247Civkq4AgPiB0aGVcLWxvd2VyXC1lbmRcLW9mXC10aGVcLWphd3M7CivkqaggPiBhXC13cmFwcGVyXC1vclwtY2FzZVwtZm9yXC1ib3c7CivkqZ0gPiB0b1wtdGFuXC1hbmRcLXNvZnRlblwtbGVhdGhlcjsKK+SkgiA+IGFcLXNlY29uZFwtbmFtZVwtZm9yXC12aW5lZ2FyOwor5KO0ID4gdG9cLWxvc2VcLXRlbXBlclwtd2hlblwtZHJ1bms7Civko4YgPiBuYW1lXC1vZlwtYVwtY291bnR5XC1pblwtZ2FvbWk7CivkorIgPiB0b1wtZ29cLWFsbFwtdGhlXC13YXlcLWZvcndhcmQ7Civkoq4gPiByYXBpZFwtbWFyY2hpbmdcLW9yXC1ydW5uaW5nOwor5KKhID4gdG9cLXN0YW1wXC10aGVcLWZvb3RcLWZvcndhcmQ7CivkobkgPiB0aGVcLWxvd1wtcmVhclwtb2ZcLWFcLWNoYXJpb3Q7Civkoa8gPiBzb3VuZFwtb2ZcLW1vdmluZ1wtY2FycmlhZ2VzOwor5KGrID4gc291bmRcLW9mXC1tb3ZpbmdcLWNhcnJpYWdlczsKK+ShoSA+IHRvXC1nZXRcLXVwXC1pbnRvXC1hXC1jYXJyaWFnZTsKK+ShmCA+IHNvdW5kXC1vZlwtbW92aW5nXC1jYXJyaWFnZXM7CivkoZIgPiBzb3VuZFwtb2ZcLW1vdmluZ1wtY2FycmlhZ2VzOwor5KCVID4gcmFwaWRcLW1hcmNoaW5nXC1vclwtcnVubmluZzsKK+SYuCA+IHRoZVwtbG93ZXJcLWZyb250XC1vZlwtYVwtcm9iZTsKK+SYkiA+IGJveScnc1wtcmVwcm9kdWN0aXZlXC1vcmdhbnM7CivklYQgPiBtZWF0XC1pblwtdGhlXC1mb3JtXC1vZlwtcGFzdGU7Civkk4sgPiBlbG1cLXNlZWRzXC1cLVwtXC11c2VkXC1hc1wtZm9vZDsKK+SRoiA+IGFcLWtuaWZlXC1zaGFwZWRcLXNtYWxsXC1ib2F0Owor5JGIID4gbWVhdFwtdG9cLW9mZmVyXC1mb3JcLXdvcnNoaXA7Civkja8gPiBnYW90XC13aXRoXC1kaWZmZXJlbnRcLWhvcm5zOwor5I2iID4gbmV0dGVkXC12ZWluZWRcLXdpbmRvd1wtc2lsbDsKK+SLnyA+IHRoZVwtd2VpZ2h0XC1vblwtYVwtc3RlZWx5YXJkOwor5Iq2ID4gYVwtcm9wZVwtZm9yXC1sZWFkaW5nXC1jYXR0bGU7CivkiZcgPiBhXC1yZWNlcHRhY2xlXC1vclwtY29udGFpbmVyOwor5IS4ID4gZ3JhaW5zXC1wcm9kdWNpbmdcLW5vXC1mcnVpdDsKK+SEkiA+IHJpcGVuaW5nXC1vZlwtcGFkZHlcLW9yXC1yaWNlOwor5IOBID4gdW5ldmVuXC1vclwtcnVnZ2VkXC10ZXJyYWluczsKK+SBlCA+IGJpZ1wtZXllc1wtcHJvdHViZXJhbnRcLWV5ZXM7Civjv7AgPiBkdXJhYmxlXC1hbmRcLXNvbGlkXC1sZWF0aGVyOwor47+CID4gb2JzdHJhY3Rpb25cLW9mXC10aGVcLWJvd2VsczsKK+O+tSA+IGFcLWRhcmtcLWNvbG9yZWRcLWJpcnRoXC1tYXJrOwor476cID4gd2Vha1wtYnJlYXRoXC1vZlwtYVwtc2lja1wtbWFuOwor472+ID4gYVwta2luZFwtb2ZcLXdvbWFuJydzXC1kaXNlYXNlOwor47uPID4gdGlua2xpbmdcLW9mXC1qYWRlXC1wZW5kYW50czsKK+O6gCA+IGFcLW1vbmtleVwtd2l0aFwteWVsbG93XC1oYWlyOwor47iyID4gYVwta2luZFwtb2ZcLW1vdW50YWluXC1jYXR0bGU7Civjt68gPiBzbW9rZVwtYW5kXC1kdXN0XC1ldmVyeXdoZXJlOwor47a6ID4gdGhlXC1saWdodFwtb3JcLWdsb3dcLW9mXC1maXJlOwor47aaID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtc2hhbnhpOwor47W9ID4gdGhlXC1zdHJlbmd0aFwtb2ZcLWFcLWN1cnJlbnQ7CivjsaUgPiB0aGVcLWV2aWxcLXNwaXJpdHNcLWNvbWVcLW91dDsKK+OwpiA+IHRvXC1icmVhdGhcLXdpdGhcLW1vdXRoXC1vcGVuOwor47CUID4gYVwta2luZFwtb2ZcLWVkaWJsZVwtbXVzaHJvb207CivjsI4gPiBhXC13b29kZW5cLXBlc3RsZVwtb3JcLXJhbW1lcjsKK+OtmyA+IGFcLWtpbmRcLW9mXC1jbGltYmluZ1wtcGxhbnRzOwor46mgID4gYVwtZmllcmNlXC1vclwtYmxvb2R5XC1iYXR0bGU7Civvp7MgPiBmZW1hbGVcLW9mXC1jaGluZXNlXC11bmljb3JuOwor46abID4gdG9cLXdhbGtcLWluXC1hXC1jb21wb3NlZFwtd2F5Owor46CdID4gbG9mdHlcLWFuZFwtc3RlZXBcLW1vdW50YWluczsKK+OgkCA+IGhpZ2hcLWFuZFwtcG9pbnRlZFwtbW91bnRhaW47CivjnpogPiB0b1wtcGlsZVwtdXBcLWxheWVyXC1ieVwtbGF5ZXI7CivjnK8gPiBhXC13b3JkXC10b1wtZGVzaWduYXRlXC13b21hbjsKK+OcriA+IHRvXC1nb1wtYmV5b25kXC1ub3JtYWxcLWxpbWl0Owor45qTID4gdGllXC1iZWFtc1wtb2ZcLWFcLXNtYWxsXC1ib2F0Owor45iMID4gdG9cLWxhdWdoXC13aXRob3V0XC1zdG9wcGluZzsKK+OXpiA+IGFcLWxvdWRcLWFuZFwtY29uZnVzZWRcLW5vaXNlOwor45eaID4gdmV4aW5nbHlcLXZlcmJvc2VcLW9yXC13b3JkeTsKK+OXlSA+IHRoZVwtY3Jvd2luZ1wtb2ZcLWFcLXBoZWFzYW50Owor45aEID4gc291bmRcLW9mXC1jYWxsaW5nXC1jaGlja2VuczsKK+OVmiA+IGNsYXdzXC1vZlwtYmlyZHNcLW9yXC1hbmltYWxzOwor45CzID4gaGlnaFwtYW5kXC1sZXZlbFwtb25cLXRoZVwtdG9wOwor6JyAID4gbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1zdGF0ZTsKK+a0myA+IHJpdmVyXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+WPlCA+IGZhdGhlcicnc1wteW91bmdlclwtYnJvdGhlcjsKK+e1uSA+IGtpbmRcLW9mXC10aGlja1wtc3RpZmZcLXNpbGs7CivnvakgPiBiYXNrZXRcLWZvclwtY2F0Y2hpbmdcLWZpc2g7CivlpLcgPiBhbmNpZW50XC1iYXJiYXJpYW5cLXRyaWJlczsKK+egsCA+IHNvdW5kXC1vZlwtY3Jhc2hpbmdcLXN0b25lczsKK+WTjiA+IGludGVyamVjdGlvblwtb2ZcLXN1cnByaXNlOwor5pyUID4gZmlyc3RcLWRheVwtb2ZcLWx1bmFyXC1tb250aDsKK+aPoyA+IHB1dFwtdGhpbmdzXC11bmRlclwtY2xvdGhlczsKK+W1iyA+IG9tZWlcLW1vdW50YWluXC1pblwtc2ljaHVhbjsKK+mCuSA+IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtc3RhdGU7CivnvIkgPiB0b1wtc2V3XC1pblwtY2xvc2VcLXN0aXRjaGVzOwor57uiID4ga2luZFwtb2ZcLXRoaWNrXC1zdGlmZlwtc2lsazsKK+WZtiA+IHVzZWRcLWluXC10cmFuc2xpdGVyYXRpb25zOwor5rGVID4gYmFza2V0XC1mb3JcLWNhdGNoaW5nXC1maXNoOwor5o6wID4gdG9cLWJyZWFrXC13aXRoXC1ib3RoXC1oYW5kczsKK+mchiA+IGFcLXN1ZGRlblwtcGVhbFwtb2ZcLXRodW5kZXI7CivmvLMgPiBuYW1lXC1vZlwtYVwtcml2ZXJcLWluXC1oZW5hbjsKK+axviA+IHJpdmVyXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+W3syA+IHNpeHRoXC1vZlwtdHdlbHZlXC1icmFuY2hlczsKK+axtCA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWhlbmFuOwor5ZedID4gY2Fja2xpbmdcLW9mXC1mb3dsc1wtdG9cLWdhZzsKK+WnmCA+IGlsbGljaXRcLXNleHVhbFwtcmVsYXRpb25zOwor6ZyPID4gZmFsbGluZ1wtb2ZcLXNub3dcLWFuZFwtcmFpbjsKK+mDuCA+IGNvdW50eVwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+WRpiA+IHRoZVwtYmxlYXRpbmdcLW9mXC10aGVcLWRlZXI7Civmjq4gPiB0b1wtYmVhclwtb25cLXRoZVwtc2hvdWxkZXJzOwor6I6GID4gYVwta2luZFwtb2ZcLWxlZ2VuZGFyeVwtdHJlZTsKK+mYoSA+IGZvb3RwYXRoc1wtYmV0d2VlblwtZmllbGRzOwor6biqID4gc3BlY2llc1wtb2ZcLXRhaXdhblwtcGlnZW9uOwor5ZOUID4gdXNlZFwtaW5cLXRyYW5zbGl0ZXJhdGlvbnM7CivmsJAgPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXRyaWJlOwor5ZGkID4gcHVyaW5lXC1pblwtY2hlbVwuXC1jb21wb3VuZDsKK+WslyA+IHN1Y2Nlc3Npb25cLXRvXC10aGVcLXRocm9uZTsKK+ayoyA+IHJpdmVyXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+injyA+IG1lZXRcLW9yXC1zZWVcLXVuZXhwZWN0ZWRseTsKK+a/riA+IGNvdW50eVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mDtCA+IGNvdW50eVwtaW5cLWh1bmFuXC1wcm92aW5jZTsKK+i9viA+IGxvd1wtcmVhclwtcG9ydGlvblwtb2ZcLWNhcnQ7CivnqJ4gPiBncmFpblwtcmVhZHlcLWZvclwtZ3JpbmRpbmc7CivngZ4gPiByaXZlclwtaW5cLXNoYW54aVwtcHJvdmluY2U7Civpg6cgPiBjb3VudHlcLWluXC1odWJlaVwtcHJvdmluY2U7CivoubwgPiB3ZWJiZWRcLWZlZXRcLW9mXC13YXRlcmZvd2w7CivnlJEgPiBib2lsZXJcLWZvclwtc3RlYW1pbmdcLXJpY2U7CivlppcgPiB3aWZlXC1vZlwtbW90aGVyJydzXC1icm90aGVyOwor5rWgID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaHViZWk7Civps5QgPiBzd2ltbWluZ1wtYmxhZGRlclwtb2ZcLWZpc2g7Civnr4wgPiBhbmNpZW50XC1tdXNpY1wtaW5zdHJ1bWVudDsKK+enlSA+IGVtcHR5XC1ncmFpblwtb3JcLXJpY2VcLWh1c2s7CivnkJogPiBvcm5hbWVudGFsXC1nZW1zXC1mb3JcLWJlbHQ7CivpsrUgPiBjcnlwdG9icmFuY2h1c1wtamFwb25pY3VzOwor6ImoID4gbG9uZ1wtYW5kXC1uYXJyb3dcLXdhclwtYm9hdDsKK+a2kSA+IHJpdmVyXC1pblwtc2hhbnNpXC1wcm92aW5jZTsKK+mDjyA+IGNvdW50eVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mbqSA+IG9mZmVyXC1zYWNyaWZpY2VcLWZvclwtcmFpbjsKK+S9viA+IGFcLXJvd1wtb3JcLWZpbGVcLW9mXC1kYW5jZXJzOwor57yCID4gdGhlXC13b29mXC1vZlwtYVwtd292ZW5cLWl0ZW07CivoibQgPiB0aGVcLWNvdW50ZW5hbmNlXC1jaGFuZ2luZzsKK+a7jyA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWhlYmVpOwor6YO+ID4gY291bnR5XC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6beeID4gdGhlXC10dXJxdW9pc2VcLWtpbmdmaXNoZXI7CivptYEgPiBteWN0aWNvcmF4XC1wcmFzaW5vc2NlbGVzOwor6bSjID4gc3BlY2llc1wtb2ZcLXRhaXdhblwtcGlnZW9uOwor6bC+ID4gc3dpbW1pbmdcLWJsYWRkZXJcLW9mXC1maXNoOwor6a+iID4gY3J5cHRvYnJhbmNodXNcLWphcG9uaWN1czsKK+musCA+IGFcLXNtYWxsXC1raW5kXC1vZlwtc3R1cmdlb247Civpq6AgPiBzaGF2ZVwtaGVhZFwtYXNcLXB1bmlzaG1lbnQ7CivpqJUgPiBuYW1lXC1vZlwtYVwtZmFidWxvdXNcLWhvcnNlOwor6Z+CID4gYVwtc2FkZGxlXC1mbGFwXC5cLXRyYXBwaW5nczsKK+mZtCA+IGFcLXBhcmFwZXRcLW9uXC1hXC1jaXR5XC13YWxsOwor6ZekID4gd2FsbFwtYXJvdW5kXC1tYXJrZXRcLXBsYWNlOwor6YSyID4gY291bnR5XC1pblwtaGViZWlcLXByb3ZpbmNlOwor6YSXID4gY291bnR5XC1pblwtaGViZWlcLXByb3ZpbmNlOwor6YSWID4gY291bnR5XC1pblwtaHViZWlcLXByb3ZpbmNlOwor6YSSID4gbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1zdGF0ZTsKK+mDnyA+IGNvdW50eVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+i8iiA+IGxvd1wtcmVhclwtcG9ydGlvblwtb2ZcLWNhcnQ7CivotJEgPiBcPGFiYnJ2XD5cLWppYW5neGlcLXByb3ZpbmNlOwor6KihID4gdG9cLWNoYW50XC10b1wtbW9hblwtdG9cLXNpZ2g7Civopq8gPiBtZWV0XC1vclwtc2VlXC11bmV4cGVjdGVkbHk7Civom4EgPiBwb21wb25pYVwtbWFjdWxhdGlvY29sbGlzOwor6JiAID4gZmFsbGluZ1wtbGVhdmVzXC1hbmRcLWJhcmtzOwor6Je6ID4gcnVzaFwtdXNlZFwtaW5cLW1ha2luZ1wtbWF0czsKK+iPtCA+IHNtYWxsXC1idWRkaGlzdFwtbW9uYXN0ZXJ5Owor6I6UID4gZnJpdGlsbGFyaWFcLXZlcnRpY2lsbGF0YTsKK+iMvCA+IGNocnlzYW50aGVtdW1cLWNvcm9uYXJpdW07CivoiaUgPiBhblwtb2FyXC1vclwtcGFkZGxlXC5cLXRvXC1yb3c7CivohpkgPiBjYWxsb3VzXC1za2luXC1vblwtdGhlXC1mZWV0Owor6IWcID4gcXVpY2tlbmluZ1wtb2ZcLXRoZVwtZm9ldHVzOwor6IKzID4gdGhlXC1jb3JuZXJzXC1vZlwtdGhlXC1tb3V0aDsKK+e/myA+IGxvb2tcLW9mXC1ydW1wbGVkXC1mZWF0aGVyczsKK+e9nSA+IG5ldFwtZm9yXC1jYXRjaGluZ1wtcmFiYml0czsKK+e3nSA+IHRvXC1zZXdcLWluXC1jbG9zZVwtc3RpdGNoZXM7Civnt5kgPiB0aGVcLXdvb2ZcLW9mXC1hXC13b3ZlblwtaXRlbTsKK+e3jCA+IHRhc3NlbHNcLWhhbmdpbmdcLWZyb21cLWhhdDsKK+etuCA+IG5hbWVcLW9mXC1hXC1wbGFjZVwtaW5cLWhvbmFuOwor56iZID4gZ3JhaW5cLXJlYWR5XC1mb3JcLWdyaW5kaW5nOwor55KgID4gYVwtcGllY2VcLW9mXC1wcmVjaW91c1wtamFkZTsKK+eOtiA+IG5hbWVcLW9mXC1vbmVcLWtpbmRcLW9mXC1qYWRlOwor542eID4gbmFtZVwtb2ZcLWFcLXZhcmlldHlcLW9mXC1kb2c7CivnjJQgPiBuYW1lXC1vZlwtYW5cLWFuY2llbnRcLXRyaWJlOwor54GoID4gdGhlXC1yaXZlclwtZ2FuXC1pblwtamlhbmd4aTsKK+eBgyA+IHJpdmVyXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+a/siA+IG5hbWVcLW9mXC1hXC1yaXZlclwtaW5cLWh1bmFuOwor5rmLID4gcml2ZXJcLWluXC1zaGFueGlcLXByb3ZpbmNlOwor5rSnID4gbmFtZVwtb2ZcLWFcLXJpdmVyXC1pblwtaG9uYW47CivmqKcgPiB6YW50aG94eWx1bVwtYWlsYW50aG9pZGVzOwor5qakID4gcGVyY2hcLWZvclwtZm93bHNcLXJvb3N0XC1vbjsKK+aggiA+IGFcLWtpbmRcLW9mXC1ldmVyZ3JlZW5cLXRyZWU7Civml6EgPiBjaG9rZVwtb25cLXNvbWV0aGluZ1wtZWF0ZW47CivmkosgPiB0b1wtcnViXC1iZXR3ZWVuXC10aGVcLWhhbmRzOwor5oOMID4gdG9cLWJlYXJcLWFcLWdydWRnZVwtYWdhaW5zdDsKK+W0tiA+IG5hbWVcLW9mXC1hXC1sZWdlbmRhcnlcLWhpbGw7CivltIEgPiBhXC1wbGFjZVwtaW5cLXRhaXdhblwtdGFpbmFuOwor5bCeID4gZnVlbFwtdXNlZFwtZm9yXC1zYWNyaWZpY2VzOwor5ae6ID4gbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1zdGF0ZTsKK+WlniA+IHRoZVwtc3RyaWRlXC1tYWRlXC1ieVwtYVwtbWFuOwor5aSXID4gdG9cLXR1cm5cLW92ZXJcLXdoZW5cLWFzbGVlcDsKK+WXtiA+IHVzZWRcLWluXC10cmFuc2xpdGVyYXRpb25zOwor5YecID4gc2hpdmVyXC13aXRoXC1jb2xkXC1vclwtZmVhcjsKK+WDsCA+IGFuY2llbnRcLWFib3JpZ2luYWxcLXRyaWJlOwor5LqDID4gbmFtZVwtb2ZcLWFcLWtpbmRcLW9mXC1hbmltYWw7CivkubogPiBwYWludGluZ1wtdG9vbFwtcGxhY2VcLW5hbWU7CivkubYgPiBrb3JlYW5cLXBsYWNlXC1uYW1lXC1waG9saGE7CivktYIgPiB0b1wtZ3JpbmRcLXdoZWF0XC10b1wtcG93ZGVyOwor5LKzID4gYmlyZHNcLWZseWluZ1wtdXBcLWFuZFwtZG93bjsKK+SymyA+IGFuXC1hbmNpZW50XC1uYW1lXC1mb3JcLXR1bmE7CivksoQgPiBhXC1raW5kXC1vZlwtZmlpc2hcLWluXC1vY2VhbjsKK+SwjSA+IGFcLWtpbmRcLW9mXC1kYXJrXC1yZWRcLXBhaW50Owor5LCGID4gYmVhdXRpZnVsXC1hbmRcLWhhaXJ5XC1tYW5lOwor5K+WID4gdGhlXC1tdXNjbGVzXC1vZlwtdGhlXC10aGlnaDsKK+SssyA+IGNha2VzXC1tYWRlXC1vZlwtcmljZVwtZmxvdXI7Civkq68gPiB0b1wtdGFrZVwtYVwtY2FzdWFsXC1sb29rXC1hdDsKK+SqgCA+IGtub3duXC10b2dldGhlclwtYXNcLXNhZGRsZTsKK+SpqiA+IGtub3duXC10b2dldGhlclwtYXNcLXNhZGRsZTsKK+SokiA+IHNvdW5kXC1vZlwtdGhlXC13YXRlclwtZHJvcHM7CivkpqggPiBhXC1kb29yXC1jdXJ0YWluXC1vclwtc2NyZWVuOwor5KSvID4gY29udGFpbmVyXC1mb3JcLXRoaWNrXC1zb3VwOwor5KONID4gbmFtZVwtb2ZcLWFuXC1hbmNpZW50XC1zdGF0ZTsKK+SjhSA+IG5hbWVcLW9mXC1hblwtYW5jaWVudFwtc3RhdGU7CivkoY0gPiB0aGVcLWxpbmNoXC1waW5cLW9mXC1hXC1zaGVlbDsKK+SflyA+IHRvXC1zdGFuZFwtZm9yXC1hXC1sb25nXC10aW1lOwor5J+DID4gdG9cLW1vdmVcLW9yXC1tYXJjaFwtc3dpZnRseTsKK+SatiA+IHRvXC1zY29sZFwtaW5cLWFcLWxvdWRcLXZvaWNlOwor5JmcID4gbGVnZW5kYXJ5XC1tb3VudGFpblwtZGVpdHk7CivkmYggPiBhXC1sb29zZVwtZ2FybWVudFwtb3JcLWNsb2FrOwor5JmHID4gY2xvdGhlc1wtb2ZcLWNvYXJzZVwtZmFicmljOwor5JeCID4gZGllbXljdHlsdXNcLXB5cnJob2dhc3RlcjsKK+SUoyA+IGFcLXRyaWJlXC1pblwtYW5jaWVudFwtdGltZXM7Civkk7QgPiBlZGlibGVcLWZ1bmd1c1wtZnJvbVwtdHJlZXM7CivkkY4gPiBzb3VwXC1vZlwtcGlnJydzXC1pbnRlc3RpbmVzOwor5JC7ID4gYmlnXC1waWVjZXNcLW9mXC1kcmllZFwtbWVhdDsKK+SQuSA+IHBlcnNlcnZlZFwtYW5kXC1kcmllZFwtbWVhdDsKK+SQsCA+IHRvXC1vZmZlclwtZm9vZFwtYXNcLXRyaWJ1dGU7CivkkIIgPiBmYXRcLW9mXC1hbmltYWxzXC1vclwtcGxhbnRzOwor5I+mID4gZmF0XC1vZlwtYW5pbWFsc1wtb3JcLXBsYW50czsKK+SOtSA+IHRvXC1sb29rXC1zdHJhaWdodFwtZm9yd2FyZDsKK+SKsSA+IGNha2VzXC1tYWRlXC1vZlwtcmljZVwtZmxvdXI7CivkipAgPiBmbHVmZnlcLXN0dWZmZWRcLWR1bXBsaW5nczsKK+SKjSA+IHRoaWNrXC1jb25nZWVcLW9yXC1wb3JyaWRnZTsKK+SHjyA+IHRvXC1waWxlXC1vbmVcLXVwb25cLWFub3RoZXI7CivkhJwgPiBoYXBwaW5lc3NcLWFuZFwtd2VsbFwtYmVpbmc7CivkhJYgPiB1c2VkXC1pblwtbmFtZVwtb2ZcLWFcLXBlcnNvbjsKK+SDoiA+IG5hbWVcLW9mXC1hXC1tb3VudGFpblwtbG9mdHk7CivkgYcgPiB0b1wtbG9va1wtZm9yXC1hXC1zaG9ydFwtdGltZTsKK+SAtCA+IHRvXC1sb29rXC1zdHJhaWdodFwtZm9yd2FyZDsKK+SAqyA+IG5hcnJvd1wtYW5kXC1kaW1cLWV5ZVwtc2lnaHQ7CivkgKogPiBiaXJkc1wtZmx5aW5nXC11cFwtYW5kXC1kb3duOwor47+6ID4ganV0dGluZ1wtb25cLXRoZVwtZXBpZGVybWlzOwor472SID4gdGhlXC1jaGlsZHJlblwtb2ZcLWFcLXNpc3RlcjsKK+O8vyA+IHRoZVwtYnJpY2tcLXdhbGxcLW9mXC1hXC13ZWxsOwor47ybID4gbG9uZ1wtbmVja2VkXC13aW5lXC12ZXNzZWxzOwor47uqID4gYVwta2luZFwtb2ZcLWphZGVcLWZpbmVcLWphZGU7CivjtoUgPiBkcmllZFwtdXBcLW1vdW50YWluXC1jcmVla3M7CivjtaIgPiBhXC1tYXJzaFwtaW5cLWFuY2llbnRcLXRpbWVzOwor47SwID4gYVwtcml2ZXJcLWluXC1hbmNpZW50XC10aW1lczsKK+O0rCA+IGFcLXJpdmVyXC1pblwtYW5jaWVudFwtdGltZXM7Civjs6UgPiBhXC1yaXZlclwtaW5cLWFuY2llbnRcLXRpbWVzOwor47OdID4gYVwtcml2ZXJcLWluXC1hbmNpZW50XC10aW1lczsKK+OzjyA+IGFcLXJpdmVyXC1pblwtYW5jaWVudFwtdGltZXM7Civjs40gPiBhXC1wbGFjZVwtaW5cLWFuY2llbnRcLXRpbWVzOwor47OLID4gYVwtcml2ZXJcLWluXC1hbmNpZW50XC10aW1lczsKK+OziiA+IHRoZVwtZmxvd2luZ1wtb2ZcLXRoZVwtd2F0ZXI7Civjs4AgPiBhXC1yaXZlclwtaW5cLWFuY2llbnRcLXRpbWVzOwor47KKID4gdG9cLXVuZGVyc3RhbmRcLXRob3JvdWdobHk7CivjsL4gPiBzb25nc1wtb2ZcLXRoZVwtcGVvcGxlXC1vZlwt5qWaOwor47C9ID4gdG9cLWV4ZXJ0XC1vbmVzZWxmXC10b1wteWVsbDsKK+OvqyA+IGFcLXdhdHRsZVwtb3JcLWJhbWJvb1wtZmVuY2U7CivjrqYgPiBicmFuY2hlc1wtZ3Jvd2luZ1wtdXB3YXJkczsKK+OqmyA+IHRvXC1wb3VuZFwtcm9ja3NcLXRvXC1waWVjZXM7CivjqpkgPiB0b1wtZ29cLXRvXC10aGVcLXZlcnlcLXNvdXJjZTsKK+OprSA+IHRvXC1kaXN0dXJiXC1vclwtdG9cLWFnaXRhdGU7Civvp7AgPiBydXNoXC11c2VkXC1pblwtbWFraW5nXC1tYXRzOwor76WUID4gc2hpdmVyXC13aXRoXC1jb2xkXC1vclwtZmVhcjsKK++klSA+IHJpdmVyXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+OhqiA+IHRoZVwtdmFybmlzaFwtb25cLXRoZVwtZmxvb3I7CivjoacgPiB0b1wtc3RyZXRjaFwtb3BlblwtcGFpbnRpbmc7CivjoIcgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW5cLXJpZGdlOwor45y/ID4gbmFtZVwtb2ZcLWFcLWZpc2hcLWluXC1sZWdlbmQ7Civjmp0gPiB0aGVcLXN0cmlkZVwtbWFkZVwtYnlcLWFcLW1hbjsKK+OXqSA+IHNvdW5kXC1vZlwtZW5kdXJlXC1jb2xkbmVzczsKK+OXpyA+IHRvXC1zY29sZFwtd2l0aFwtbG91ZFwtdm9pY2U7Civjl4wgPiB0b1wtc2NvbGRcLXdpdGhcLWxvdWRcLXZvaWNlOwor45eAID4gdGhlXC1ibGVhdGluZ1wtb2ZcLXRoZVwtZGVlcjsKK+OToSA+IHRoZVwtbWlkZGxlXC1wYXJ0XC1vZlwtYVwtYm93Owor45CoID4gYVwta2luZFwtb2ZcLWZpc2hcLWluXC1sZWdlbmQ7CivnnqUgPiB0YWtlXC1mbGVldGluZ1wtZ2xhbmNlXC1hdDsKK+W3niA+IGFkbWluaXN0cmF0aXZlXC1kaXZpc2lvbjsKK+WQpyA+IGVtcGhhdGljXC1maW5hbFwtcGFydGljbGU7Civmn5AgPiBjZXJ0YWluXC10aGluZ1wtb3JcLXBlcnNvbjsKK+elqCA+IHNsaXBcLW9mXC1wYXBlclwtb3JcLWJhbWJvbzsKK+iAtiA+IHVzZWRcLWluXC10cmFuc2xpdGVyYXRpb247CivljpggPiB0aG91c2FuZHRoXC1wYXJ0XC1vZlwtdGFlbDsKK+W9rSA+IG5hbWVcLW9mXC1hbmNpZW50XC1jb3VudHJ5Owor6IK0ID4gY29va2VkXC1vclwtcHJlcGFyZWRcLW1lYXQ7Civkv44gPiBjaG9wcGluZ1wtYm9hcmRcLW9yXC1ibG9jazsKK+a3riA+IHJpdmVyXC1pblwtYW5odWlcLXByb3ZpbmNlOwor6YOhID4gYWRtaW5pc3RyYXRpdmVcLWRpdmlzaW9uOwor5ZOmID4gb2hcP1wtcmVhbGx5XD9cLWlzXC10aGF0XC1zb1w/Owor6ZSkID4gYmFsYW5jZVwtd2VpZ2h0XC1vblwtc2NhbGU7Civku54gPiBhbmNpZW50XC11bml0XC1vZlwtbWVhc3VyZTsKK+iKrSA+IHBsYW50YWluXC1vclwtYmFuYW5hXC1wYWxtOwor56OKID4gcGlsZVwtb2ZcLXJvY2tzXC1vclwtc3RvbmVzOwor5ZG4ID4gZXhwcmVzc2lvblwtb2ZcLXJlcHJpbWFuZDsKK+aLtyA+IHRvcnR1cmVcLWFuZFwtaW50ZXJyb2dhdGU7Civmir8gPiBwdWNrZXJcLXVwXC1saXBzXC1pblwtc21pbGU7CivljYkgPiBnZW5lcmFsXC10ZXJtXC1mb3JcLXBsYW50czsKK+mruyA+IGhhaXJcLXJvbGxlZFwtdXBcLWluXC1hXC1idW47Civoo4YgPiBjcm90Y2hcLW9yXC1zZWF0XC1vZlwtcGFudHM7CivomJEgPiB0eXBlXC1vZlwtZWRpYmxlXC1tdXNocm9vbTsKK+WSvyA+IGRlc2NyaXB0aXZlXC1vZlwtY3JlYWtpbmc7Civnr74gPiBiYW1ib29cLXNwbGludHNcLW9yXC1zbGF0czsKK+a3hyA+IHJpdmVyXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6JORID4gcmFpblwtY29hdFwtbWFkZVwtb2ZcLXN0cmF3Owor5qqsID4gdHlwZVwtb2ZcLWxvY3VzdFwtb3JhY2FjaWE7Civmt5kgPiBndXJnbGluZ1wtc291bmRcLW9mXC13YXRlcjsKK+aukyA+IGRyZXNzXC1jb3Jwc2VcLWZvclwtYnVyaWFsOwor55ClID4gamV3ZWxcLWluXC1zaGFwZVwtb2ZcLXRpZ2VyOwor5r2eID4gcml2ZXJcLWluXC1ub3J0aGVyblwtY2hpbmE7Civpho0gPiBlc3NlbnRpYWxcLW9pbFwtb2ZcLWJ1dHRlcjsKK+WmryA+IHdpdmVzXC1vZlwtb25lJydzXC1icm90aGVyczsKK+W4jyA+IGN1cnRhaW5cLXRoYXRcLWZvcm1zXC13YWxsOwor55OSID4gY2VyZW1vbmlhbFwtbGliYXRpb25cLWN1cDsKK+a0uSA+IHJpdmVyXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor55GXID4gbGFyZ2VcLXJpbmdcLW9mXC1maW5lXC1qYWRlOwor5raeID4gcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7CivniLsgPiBkaWFncmFtc1wtZm9yXC1kaXZpbmF0aW9uOwor6ZSfID4gYW5jaWVudFwtdHJlYXN1cmVkXC1zd29yZDsKK+iKlyA+IGZyYWdyYW50XC1zbWVsbFwtb2ZcLWdyYWluOwor5qWmID4gYVwtbGFzdFwtZm9yXC1tYWtpbmdcLXNob2VzOwor6IiBID4gY2FycnlcLW9uXC1vbmUnJ3NcLXNob3VsZGVyOwor5rugID4gcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7CivpvI8gPiBjb3Zlclwtb2ZcLXRyaXBvZFwtY2FsZHJvbjsKK+m7sCA+IHlvdW5nXC1naXJsJydzXC1oYWlyXC1zdHlsZTsKK+msgiA+IHRoZVwtaGFpclwtb25cLXRoZVwtdGVtcGxlczsKK+mnriA+IGFcLWtpbmRcLW9mXC1maWVyY2VcLWFuaW1hbDsKK+mMmCA+IGJhbGFuY2VcLXdlaWdodFwtb25cLXNjYWxlOwor6YyVID4gYW5jaWVudFwtdHJlYXN1cmVkXC1zd29yZDsKK+mEviA+IHBsYWNlXC1pblwtaHViZWlcLXByb3ZpbmNlOwor6YSsID4gcGxhY2VcLWluXC1oZW5hblwtcHJvdmluY2U7CivphKQgPiBwbGFjZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mEmCA+IHN0YXRlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6YSPID4gcGxhY2VcLWluXC1oZW5hblwtcHJvdmluY2U7CivphIAgPiBzdGF0ZVwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+mDsCA+IGJpcnRocGxhY2VcLW9mXC1jb25mdWNpdXM7CivpgqcgPiB0b3duXC1pblwtc2hhbnhpXC1wcm92aW5jZTsKK+mCmCA+IHN0YXRlXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6KWgID4gY3JvdGNoXC1vclwtc2VhdFwtb2ZcLXBhbnRzOwor6Jq7ID4gc21hbGxcLXNwZWNpZXNcLW9mXC1jaWNhZGE7CivolowgPiBmcmFncmFudFwtc21lbGxcLW9mXC1ncmFpbjsKK+iSsSA+IGdhbWJsaW5nXC1nYW1lXC13aXRoXC1kaWNlOwor6JGnID4gaGVsZW9jaGFyaXNcLXBsYW50YWdpbmVhOwor6IiyID4gc21hbGxcLWJvYXRcLXdpdGhcLXdpbmRvd3M7CivnvqsgPiB0aGVcLXNrZWxldG9uXC1vZlwtYVwtc2hlZXA7Civnvb0gPiBhXC1raW5kXC1vZlwtd29vbGVuXC1mYWJyaWM7CivnsrogPiBwb2xpc2hlZFwtcmljZVwtb3JcLW1pbGxldDsKK+evpyA+IGNyZWVsXC1mb3JcLXRyYXBwaW5nXC1maXNoOwor56+bID4gY3V0aWNsZVwtb2ZcLWJhbWJvb1wtcGxhbnQ7CivnpZQgPiB3b3JzaGlwXC1vbmUnJ3NcLWFuY2VzdG9yczsKK+edliA+IHRvXC1zdGFyZVwtc3RyYWlnaHRcLWFoZWFkOwor55yiID4gZXllc1wtd2l0aG91dFwtYnJpZ2h0bmVzczsKK+eVviA+IGZpZWxkc1wtZGl2aWRlZFwtYnlcLWRpa2VzOwor55OaID4gY2VyZW1vbmlhbFwtbGliYXRpb25cLWN1cDsKK+eSsiA+IHBlbmRhbnRcLWdpcmRsZVwtb3JuYW1lbnQ7Civnkb8gPiBhXC1ibGFja1wtc3RvbmVcLWxpa2VcLWphZGU7Civnka8gPiBraW5kXC1vZlwtd2hpdGVcLWNvcm5lbGlhbjsKK+eRoiA+IGdlbVwtb3JuYW1lbnRzXC1mb3JcLWJlbHRzOwor54+2ID4gd2hpdGVcLWphZGVcLXdvcm5cLW9uXC1iZWx0Owor546VID4gaW5mZXJpb3JcLXZhcmlldHlcLW9mXC1nZW07CivnjIggPiBkb2dcLXdpdGhcLXNob3J0XC1zaGluYm9uZTsKK+eBhCA+IHJpdmVyXC1pblwtaHViZWlcLXByb3ZpbmNlOwor54C8ID4gcml2ZXJcLWluXC1oZW5hblwtcHJvdmluY2U7CivngI0gPiByaXZlclwtaW5cLWhlbmFuXC1wcm92aW5jZTsKK+a/nCA+IHJpdmVyXC1pblwtaHViZWlcLXByb3ZpbmNlOwor5r60ID4gcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7CivmvokgPiB0b1wtd2FzaFwtbmFtZVwtb2ZcLWFcLXBsYWNlOwor5r2WID4gbmFtZVwtb2ZcLWFcLWNlcnRhaW5cLXJpdmVyOwor5ry3ID4gcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7CivmvIogPiByaXZlclwtaW5cLWh1YmVpXC1wcm92aW5jZTsKK+a6riA+IHJpdmVyXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor5rqgID4gcml2ZXJcLWluXC1odWJlaVwtcHJvdmluY2U7Civmt7YgPiByaXZlclwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+a2liA+IHJpdmVyXC1pblwtaGViZWlcLXByb3ZpbmNlOwor5rWtID4gcml2ZXJcLWluXC1oZWJlaVwtcHJvdmluY2U7CivmtLogPiByaXZlclwtaW5cLWhlYmVpXC1wcm92aW5jZTsKK+a0qCA+IHJpdmVyXC1pblwtaGViZWlcLXByb3ZpbmNlOwor5q6uID4gZHJlc3NcLWNvcnBzZVwtZm9yXC1idXJpYWw7CivmrpkgPiB0b1wtZGllXC1ieVwtdGFraW5nXC1wb2lzb247CivmrYEgPiB1bnNhdGlzZmllZFwtXChvZlwtZWF0aW5nXCk7CivmrKggPiB0b1wtYmxvd1wtb3JcLWJyZWF0aGVcLXVwb247CivmrI8gPiB0cmVlXC10aGVcLWhvcnNlXC1jaGVzdG51dDsKK+aqhyA+IHdvb2RlblwtcmFtbWVyXC1vclwtcGVzdGxlOwor5qmUID4gYVwtd29vZGVuXC1jaG9wcGluZ1wtYmxvY2s7CivmpaUgPiBhXC1sYXN0XC1mb3JcLW1ha2luZ1wtc2hvZXM7CivmmrwgPiB0YWtlXC1mbGVldGluZ1wtZ2xhbmNlXC1hdDsKK+aAuCA+IGNuc1wtMlwtMmE0MFwtaXNcLWRpZmZlcmVudDsKK+W5gyA+IGN1cnRhaW5cLXRoYXRcLWZvcm1zXC13YWxsOwor5aKEID4gdGhlXC1zdGVwc1wtb2ZcLWFcLXN0YWlyd2F5Owor5ZWrID4gaW50ZXJqZWN0aW9uXC1vZlwtd2FybmluZzsKK+WQmiA+IHVzZWRcLXRvXC1yZXByZXNlbnRcLXNvdW5kOwor5YyBID4gamFwYW5lc2VcLXVuaXRcLW9mXC13ZWlnaHQ7Civku74gPiB0b1wtaGFuZ1wtb3JcLWJvd1wtdGhlXC1oZWFkOwor5LutID4gYW5jaWVudFwtdW5pdFwtb2ZcLW1lYXN1cmU7Civktp0gPiBncm93aW5nXC1pcnJlZ3VsYXJcLXRlZXRoOwor5LWIID4gdW5zbWVsdGVkXC1oZW1wXC1hbmRcLXNpbGs7CivktYAgPiBjb2Fyc2VcLWNydW1ic1wtb2ZcLWJhcmxleTsKK+S0kSA+IGFcLWxlZ2VuZGFyeVwtd2VpcmVkXC1iaXJkOwor5LSHID4gYVwtc2Vjb25kXC1uYW1lXC1mb3JcLWNyYW5lOwor5LSBID4gYVwta2luZFwtb2ZcLXJhdFwtbGlrZVwtYmlyZDsKK+SzsiA+IGFcLXN3YXJtXC1vZlwtZmx5aW5nXC1iaXJkczsKK+SytCA+IGFcLWtpbmRcLW9mXC12ZW5vbW91c1wtYmlyZDsKK+SxviA+IGFcLWNhcnBcLWxpa2VcLXNhdm9yeVwtZmlzaDsKK+SwqyA+IG5pbWJsZVwtYW5kXC1hY3RpdmVcLWdob3N0Owor5K2HID4gdG9cLWJlXC1jaG9ja2VkXC13aXRoXC1mb29kOwor5K2GID4gc21hbGxcLWNoaWxkcmVuXC1lYXRcLWxlc3M7CivkrLIgPiB0b1wtZWF0XC10b1wtdGhlXC1oYWxmXC1mdWxsOwor5KyqID4gYVwta2luZFwtb2ZcLWNvb2tlZFwtbm9vZGxlOwor5KybID4gdGhlXC1yb2FyaW5nXC1vZlwtdGhlXC13aW5kOwor5KiXID4gZXhjZXNzaXZlXC1yYWluXC1hbmRcLXNub3c7CivkqIUgPiBzbWFsbFwtYmlyZHNcLVwtXC1cLXRoZVwtd3JlbjsKK+SlliA+IHNpbHZlclwtb2ZcLWdvbGRcLWZpbGFncmVlOwor5KWPID4gdW5maXR0ZWRcLWZvclwtZWFjaFwtb3RoZXI7CivkpKUgPiBhZ3JpY3VsdHVyYWxcLWltcGxlbWVudHM7CivkopwgPiB0aGVcLW1hcnJpYWdlXC1vZlwtYVwtd29tYW47Civkob0gPiB0aGVcLXNoYWZ0c1wtb2ZcLWFcLXZlaGljbGU7CivkobogPiB0aGVcLWVuZFwtb2ZcLWFuXC1heGxlXC10cmVlOwor5KGjID4gYVwtcGllY2VcLW9mXC1jdXJ2ZWRcLWJvYXJkOwor5KCjID4gbmV0XC10b1wtdHJhcFwtdGhlXC1hbmltYWxzOwor5J2IID4gYVwtYmlnXC1hbmRcLXN0cmVudW91c1wtcGlnOwor5JqQID4gZ2V0dGluZ1wtcmVkXC1pblwtdGhlXC1leWVzOwor5JqKID4gdG9cLWxvb2tcLWZyb21cLWFcLWRpc3RhbmNlOwor5JmQID4gZnVyc1wtYW5kXC1saW5lblwtZ2FybWVudHM7CivkmIYgPiBhXC1zZWNvbmRcLWZvcm1cLWVhcnRod29ybTsKK+SXoCA+IHRoZVwtbGFydmFcLW9mXC1tb3NxdWl0b2VzOwor5JeUID4gYVwtaG91c2VcLWxpemFyZFwtb3JcLWdlY2tvOwor5JaxID4gbGFyZ2VcLXNocmltcFwtaW5cLXRoZVwtc2VhOwor5JS+ID4gYVwta2luZFwtb2ZcLWZyYWdyYW50XC1oZXJiOwor5JOxID4gYVwta2luZFwtb2ZcLWhlcmJcLW1lZGljaW5lOwor5JKWID4gYVwta2luZFwtb2ZcLWhlcmJcLW1lZGljaW5lOwor5JKVID4gYVwta2luZFwtb2ZcLWhlcmJcLW1lZGljaW5lOwor5JCkID4gZHJpZWRcLWFuZFwtc2Vhc29uZWRcLW1lYXQ7CivkkJAgPiBjdXJ2ZWRcLXBhcnRcLW9mXC10aGVcLWtuZWU7Civkj5kgPiBicmluZVwtZnJvbVwtcGlja2xlZFwtbWVhdDsKK+SPlSA+IHRvXC1jb29rXC1mb29kXC10aG9yb3VnaGx5Owor5I6nID4gYWdyaWN1bHR1cmFsXC1pbXBsZW1lbnRzOwor5I25ID4gb2Rvclwtb2ZcLWFcLXNoZWVwXC1vclwtZ29hdDsKK+SNmSA+IG5ldHNcLWZvclwtY2F0Y2hpbmdcLWJpcmRzOwor5I2YID4gYVwtZ2VuZXJhbFwtdGVybVwtZm9yXC1uZXRzOwor5I2TID4gbmV0XC1mb3JcLWNhdGNoaW5nXC1yYWJiaXQ7Civki6sgPiB0b1wtd2luZFwtcm91bmRcLXRoZVwtcm9wZXM7Civki6ggPiB0b1wtc2V0XC1pblwtb3JkZXJcLXRoZVwtb2xkOwor5Iq0ID4gZm9vZFwtbWFkZVwtb2ZcLXJpY2VcLWZsb3VyOwor5IqqID4gY29hcnNlXC1yaWNlXC1cLVwtXC11bmh1bGxlZDsKK+SJnCA+IHlvdW5nXC1hbmRcLXRlbmRlclwtYmFtYm9vOwor5ImWID4gZnJhbWV3b3JrXC1vZlwtYVwtY2FycmlhZ2U7Civkh5cgPiBiYW1ib29cLXdpdGhcLWxvbmdcLWpvaW50czsKK+SHkSA+IGFcLXN0YW5kaW5nXC1zaG9ydFwtcGVyc29uOwor5IaKID4gdW5odXNrZWRcLWdsdXRpbm91c1wtcmljZTsKK+SGiSA+IHRoZVwtc3dpbmdcLW9mXC1yaWNlXC1wbGFudDsKK+SDiSA+IGFcLXN0b25lXC1yZXNlbWJsaW5nXC1qYWRlOwor5IGMID4gdG9cLXNlZVwtZm9yXC1hXC1zaG9ydFwtdGltZTsKK+O+gCA+IHRvXC1iZVwtd2Vha2VkXC1ieVwtZGlzZWFzZTsKK+O9uiA+IHRvXC1iZVwtd2Vha2VkXC1ieVwtZGlzZWFzZTsKK+O9uCA+IGRpc2Vhc2VzXC1vZlwtdGhlXC1hYmRvbWVuOwor472aID4gYWdyaWN1bHR1cmFsXC1pbXBsZW1lbnRzOwor47ynID4gdGlsZXNcLWluXC1jeWxpbmRlclwtc2hhcGU7CivjubIgPiBhXC1mcmlnaHRlbmVkXC1waWdcLW9yXC1kb2c7Civjua4gPiBhXC1raW5kXC1vZlwtYW5pbWFsXC1cLXRhcGlyOwor47mdID4gYVwtbGVnZW5kYXJ5XC13aWxkXC1hbmltYWw7CivjuZEgPiBhXC1mb3VyXC15ZWFyc1wtb2xkXC1jYXR0bGU7CivjuYogPiBhXC1jYXR0bGVcLW9mXC13aGl0ZVwtY29sb3I7CivjuYYgPiB0aGVcLWNvdWx0ZXJcLW9mXC1hXC1wbG91Z2g7CivjuIsgPiBtZWF0c1wtdXNlZFwtaW5cLXNhY3JpZmljZTsKK+O3riA+IHNjb3JjaGVkXC1vclwtYnVybmVkXC13b29kOwor47erID4gZmlyZVwtY2F1c2luZ1wtYnlcLWRyeW5lc3M7CivjtrUgPiB0b1wtY29va1wtZm9vZFwtdGhvcm91Z2hseTsKK+O2kiA+IHRoZVwtY3VycmVudFwtb2ZcLWFcLXN0cmVhbTsKK+O0siA+IGFcLXJpdmVyXC1pblwtYW5jaWVudFwtdGltZTsKK+O0kSA+IHRvXC10cmFjZVwtdXBcLXRvXC1hXC1zb3VyY2U7CivjtI8gPiB0aGVcLXBvbmRcLXdhdGVyXC1pc1wtc3RpbGw7Civjsr8gPiBleHRlbnNpdmVcLWJvZHlcLW9mXC13YXRlcjsKK+OyhCA+IHVuYnVybnRcLWJyaWNrc1wtb3JcLXRpbGVzOwor47GsID4gY2Fubm90XC1yZWNvZ25pemVcLXBlb3BsZTsKK+OxlSA+IHRoZVwtbWFycmlhZ2VcLW9mXC1hXC13b21hbjsKK+OvmSA+IHRoZVwtYnVja3Rob3JuXC1vclwtanVqdWJlOwor462+ID4gdG9cLWN1dFwtdGhlXC10aW1iZXJcLWFwYXJ0Owor462DID4gdGhlXC1sYXJnZVwtcm9wZVwtb2ZcLWFcLW5ldDsKK+OtgiA+IGhlaWdodFwtb2ZcLXRoZVwtZW5kXC1wb2ludDsKK+OsuyA+IGluXC1iZXR3ZWVuXC1vZlwtdGhlXC1mbGVzaDsKK+OnryA+IGFcLWJ1Y2tldFwtbWFkZVwtb2ZcLXdpbGxvdzsKK+OnpSA+IHRvXC1uaXBcLXdpdGhcLXRoZVwtZmluZ2VyczsKK+OmvSA+IHdpdGhcLWVsZWdhbnRcLWFwcGVhcmFuY2U7CivjprogPiBhXC1sYW5jZVwtd2l0aFwtdHdvXC1wb2ludHM7CivjprggPiBhXC1sYW5jZVwtd2l0aFwtdHdvXC1wb2ludHM7CivvpqUgPiBkcmVzc1wtY29ycHNlXC1mb3JcLWJ1cmlhbDsKK+OmhyA+IGFcLXBlYWNlZnVsXC1vclwtZWFzeVwtbW9vZDsKK++lhyA+IHBpbGVcLW9mXC1yb2Nrc1wtb3JcLXN0b25lczsKK+OlhSA+IHVzZWRcLWluXC1hXC1wZXJzb24nJ3NcLW5hbWU7CivjpIwgPiB0b1wtaGF2ZVwtb25lJydzXC1oZWFydFwtb3duOwor46O7ID4gdG9cLXJlbWVkeVwtYnlcLXB1bmlzaG1lbnQ7Civjo6ogPiB0b1wtd2Fsa1wtd2l0aFwtc2xvd1wtc3RlcHM7Civjo4YgPiB0b1wtbG9vc2VcLXRoZVwtYm93XC1zdHJpbmc7Civjor4gPiB0aGVcLWN1cnZlZFwtZW5kXC1vZlwtYVwtYm93Owor46K1ID4gcG93ZXJmdWxcLWFuZFwtc3Ryb25nXC1ib3c7CivjobkgPiB0b1wtcmVseVwtdXBvblwtZWFjaFwtb3RoZXI7CivjoZIgPiBhXC1jYWxpY29cLXNhY2tcLWZvclwtZ3JhaW47CivjoY8gPiB0b1wtY3V0XC1hXC1zdHJpcFwtb2ZcLWNsb3RoOwor4568ID4gdG9cLXJlc3BlY3RmdWxseVwtcmVjZWl2ZTsKK+OarCA+IGFcLWxhZHlcLXN0YXJ0XC10b1wtZG9sbFwtdXA7CivjmpYgPiB0b1wtY29tZVwtb3V0XC10b1wtdGhlXC1vcGVuOwor45mKID4gYW5cLWFyZWFcLW9mXC1sZXZlbFwtZ3JvdW5kOwor45W4ID4gc291bmRcLW9mXC1yb2xsaW5nXC1hXC1ib2F0Owor45WnID4gdXNlZFwtdG9cLXJlcHJlc2VudFwtc291bmQ7CivjlKQgPiB0b1wtZXhlcnRcLW9uZScnc1wtc3RyZW5ndGg7Civjk6cgPiBhZ3JpY3VsdHVyYWxcLWltcGxlbWVudHM7CivjkqQgPiB0b1wtaGF2ZVwtb25lJydzXC1oZWFydFwtd29uOwor45KZID4gdG9cLWhhbmRcLW9yXC1ib3dcLXRoZVwtaGVhZDsKK+S5iCA+IGludGVycm9nYXRpdmVcLXBhcnRpY2xlOwor6KKrID4gcGFzc2l2ZVwtaW5kaWNhdG9yXC0nJ2J5Jyc7CivnlLMgPiB0b1wtc3RhdGVcLXRvXC1hXC1zdXBlcmlvcjsKK+WyoSA+IHJpZGdlXC1vclwtY3Jlc3RcLW9mXC1oaWxsOwor55C0ID4gY2hpbmVzZVwtbHV0ZVwtb3JcLWd1aXRhcjsKK+WsjCA+IHNlZHVjdGl2ZVwtYW5kXC1sb3ZlYWJsZTsKK+e9lyA+IG5ldFwtZm9yXC1jYXRjaGluZ1wtYmlyZHM7CivmkbggPiBnZW50bHlcLXRvdWNoXC13aXRoXC1oYW5kOwor5LuwID4gcmFpc2VcLXRoZVwtaGVhZFwtdG9cLWxvb2s7Civoh40gPiBhYmRvbWluYWxcLWFyZWFcLW9mXC1jcmFiOwor6YORID4gc3RhdGVcLWluXC10b2RheScnc1wtaGVuYW47CivnvoUgPiBuZXRcLWZvclwtY2F0Y2hpbmdcLWJpcmRzOwor6LSvID4gYVwtc3RyaW5nXC1vZlwtMTAwMFwtY29pbnM7CivlqIcgPiBzZWR1Y3RpdmVcLWFuZFwtbG92ZWFibGU7Civnq60gPiBwdXRcLWZvcnRoXC1ncmVhdFwtZWZmb3J0Owor56eSID4gYmVhcmRcLW9mXC1ncmFpblwtb3JcLWNvcm47CivlpZogPiB3aGVyZVw/XC13aGF0XD9cLWhvd1w/XC13aHlcPzsKK+WGiCA+IHJpZGdlXC1vclwtY3Jlc3RcLW9mXC1oaWxsOwor55uPID4gc21hbGxcLWN1cFwtb3JcLWNvbnRhaW5lcjsKK+iQnSA+IHR5cGVcLW9mXC1jcmVlcGluZ1wtcGxhbnQ7CivmoqcgPiBzdGVyY3VsaWFcLXBsYXRhbmlmb2xpYTsKK+WSpiA+IGV4cHJlc3Npb25cLW9mXC1zdXJwcmlzZTsKK+etkCA+IGJhbWJvb1wtYmFza2V0XC1vclwtY2hlc3Q7CivosI0gPiBhblwtaW50ZWxsaWdlbmNlXC1yZXBvcnQ7Civnr7EgPiBiYW1ib29cLW9yXC13b29kZW5cLWZlbmNlOwor55C2ID4gZ3VpdGFyXC1saWtlXC1pbnN0cnVtZW50Owor55C1ID4gZ3VpdGFyXC1saWtlXC1pbnN0cnVtZW50Owor5r26ID4gc291bmRcLW9mXC1mbG93aW5nXC13YXRlcjsKK+WdsyA+IGFcLWhvbGxvd1wtaW5cLXRoZVwtZ3JvdW5kOwor6ISQID4gYWJkb21pbmFsXC1hcmVhXC1vZlwtY3JhYjsKK+WfgiA+IGRpdGNoZXNcLWZvclwtaXJyaWdhdGlvbjsKK+WAjCA+IGFzc2lzdGFudFwtaW5cLXdpbmVcLXNob3A7CivpnIEgPiB0b1wtY2xlYXJcLXVwXC1hZnRlclwtcmFpbjsKK+mCryA+IGNpdHlcLWluXC1oZWJlaVwtcHJvdmluY2U7CivnspEgPiB0c2FtYmFcLVwoZm9vZFwtaW5cLXRpYmV0XCk7Civom4AgPiBpbnNlY3RzXC10aGF0XC1lYXRcLWJvb2tzOwor5aumID4gbmFtZVwtb2ZcLWFcLW1vb25cLWdvZGRlc3M7CivotYogPiBidXlcLWFuZFwtc2VsbFwtb25cLWNyZWRpdDsKK+W8kSA+IHRvXC1raWxsXC1vbmUnJ3NcLXN1cGVyaW9yOwor5pGBID4gdG9cLXByZXNzXC13aXRoXC10aGVcLWhhbmQ7CivnlbkgPiBhXC1maWVsZFwtb2ZcLTIwXC1vclwtMzBcLW11Owor6KeQID4gaGF2ZVwtaW1wZXJpYWxcLWF1ZGllbmNlOwor6K6mID4gZXhwb3NlXC1vdGhlcicnc1wtc2VjcmV0czsKK+aXhCA+IGFcLWtpbmRcLW9mXC1hbmNpZW50XC1mbGFnOwor6La1ID4gbm9pc2VcLW9mXC10cmFtcGluZ1wtZmVldDsKK+mFuSA+IHRvXC1wb3VyXC1vdXRcLWFcLWxpYmF0aW9uOwor5a2zID4gYnJlZWRcLWluXC1sYXJnZVwtbnVtYmVyczsKK+WhhCA+IGVsZXZhdGVkXC1iYW5rXC1pblwtZmllbGQ7CivonoggPiBkaWVteWVsaWx1c1wtcHlyb2dhc3RlcjsKK+eqrCA+IGFcLXNtYWxsXC1kb29yXC1vclwtd2luZG93Owor56yxID4gYVwtYmFza2V0XC10cmFwXC1mb3JcLWZpc2g7Civnib8gPiBzaGVkXC1vclwtcGVuXC1mb3JcLWNhdHRsZTsKK+ibmCA+IGFcLXdlZXZpbFwtZm91bmRcLWluXC1yaWNlOwor55WOID4gYVwtZHJhaW5cLWJldHdlZW5cLWZpZWxkczsKK+m9ryA+IHRlZXRoXC1ncm93blwtaW5cLW9sZFwtYWdlOwor6bmjID4gZmFidWxvdXNcLW15dGhpY2FsXC1iaXJkOwor6ba8ID4gZmFidWxvdXNcLW15dGhpY2FsXC1iaXJkOwor6bCGID4gc2NvbWJlcm9tb3J1c1wtc2luZW5zaXM7Civpr5kgPiBzY29tYmVyb21vcnVzXC1zaW5lbnNpczsKK+mukyA+IG1pbmNlZFwtYW5kXC1zYWx0ZWRcLWZpc2g7CivpqYwgPiBuYW1lXC1vZlwtYVwtZmFtb3VzXC1ob3JzZTsKK+mfuSA+IG11c2ljXC1vZlwtYmVsbFwtYW5kXC1kcnVtOwor6Zy9ID4gdG9cLWNsZWFyXC11cFwtYWZ0ZXJcLXJhaW47Civpm5ggPiBkeWVcLW1hZGVcLWZyb21cLXJlZFwtc29pbDsKK+mYhyA+IGFcLWJ1ZGRoaXN0XC1oaWdoXC1wcmllc3Q7CivpkZAgPiBib2x0XC1vZlwtYVwtY2hpbmVzZVwtbG9jazsKK+mMhiA+IHRoZVwtY29sb3JcLW9mXC1hXC1taW5lcmFsOwor6YStID4gc3RhdGVcLWluXC10b2RheScnc1wtaGVuYW47CivphJAgPiB0b3duXC1pblwtaGVuYW5cLXByb3ZpbmNlOwor6YGwID4gZ3J1bnRpbmdcLXNvdW5kXC1vZlwtcGlnczsKK+i+pSA+IHZhcmlldHlcLW9mXC1tYXJzaFwtZ3Jhc3M7Civos5IgPiBidXlcLWFuZFwtc2VsbFwtb25cLWNyZWRpdDsKK+iyqyA+IGFcLXN0cmluZ1wtb2ZcLTEwMDBcLWNvaW5zOwor6LCCID4gY29uc3VsdFwtY2FyZWZ1bGx5XC13aXRoOwor6KucID4gYW5cLWludGVsbGlnZW5jZVwtcmVwb3J0Owor6KuXID4gY29uc3VsdFwtY2FyZWZ1bGx5XC13aXRoOwor6KmqID4gZGlmZmljdWx0eVwtaW5cLXNwZWFraW5nOwor6KiQID4gZXhwb3NlXC1vdGhlcicnc1wtc2VjcmV0czsKK+invyA+IGFcLWJvZGtpblwtbWFkZVwtb2ZcLWl2b3J5Owor6KayID4gaGF2ZVwtaW1wZXJpYWxcLWF1ZGllbmNlOwor6KaAID4gdmFyaWFudFwtb2ZcLXJhZGljYWxcLTE0NjsKK+iknyA+IGlubmVyXC1zaGlydFwtb3JcLXNpbmdsZXQ7Civooa0gPiB0aGVcLWxhcGVsXC1vZlwtYVwtZ2FybWVudDsKK+ihpiA+IHNtb290aFwtb3V0XC10aGVcLWNsb3RoZXM7CivomL8gPiB0eXBlXC1vZlwtY3JlZXBpbmdcLXBsYW50Owor6JWVID4gY2FyeW9wdGVyaXNcLWRpdmFyaWNhdGE7CivolK8gPiBhXC12YXJpZXR5XC1vZlwtYXJ0ZW1pc2lhOwor6JC0ID4gbWVkaWNpbmFsXC1wb2lzb25cLXBsYW50Owor6I+2ID4gc3BlY2llc1wtb2ZcLXdhdGVyXC1wbGFudDsKK+iOuCA+IGNhcnlvcHRlcmlzXC1kaXZhcmljYXRhOwor6I6ZID4gc3BlY2llc1wtb2ZcLXdhdGVyXC1wbGFudDsKK+iEpCA+IHJhd1wtbWVhdFwtZm9yXC1zYWNyaWZpY2U7CivogKwgPiBkcmlsbFwtZm9yXC1zb3dpbmdcLWdyYWluOwor6ICnID4gZHJpbGxcLWZvclwtc293aW5nXC1ncmFpbjsKK+iAgiA+IHZhcmlhbnRcLW9mXC1yYWRpY2FsXC0xMjU7CivnuaYgPiBzdHJpbmdcLW9mXC1jb3BwZXJcLWNvaW5zOwor57mIID4gc3RyaW5nXC1vZlwtY29wcGVyXC1jb2luczsKK+e3hSA+IHNpbGtcLW9mXC1wdXJwbGlzaFwtY29sb3I7CivnsawgPiBiYW1ib29cLW9yXC13b29kZW5cLWZlbmNlOwor56+iID4gdGhlXC1uYW1lXC1vZlwtYmFtYm9vXC1oYXQ7CivnrbogPiBiYW1ib29cLWJhc2tldFwtb3JcLWNoZXN0Owor55ueID4gc21hbGxcLWN1cFwtb3JcLWNvbnRhaW5lcjsKK+eZiiA+IGFcLWRpc2Vhc2VcLW9mXC10aGVcLWhlYXJ0Owor55GxID4gYVwtZ2VtXC11c2VkXC1hc1wtZWFyXC1wbHVnOwor55CgID4gYVwtZ2VtXC11c2VkXC1hc1wtZWFyXC1wbHVnOwor54+jID4gbmFtZVwtb2ZcLWFcLWtpbmRcLW9mXC1qYWRlOwor5468ID4gYmVhdXRpZnVsXC1jb2xvclwtb2ZcLWdlbTsKK+eJtyA+IGNvd1wtb3JcLW94XC1vZlwtb25lXC1jb2xvcjsKK+eEhCA+IHJpc2luZ1wtZmxhbWVzXC1vclwtZnVtZXM7Civng5YgPiBjYWxhbWl0aWVzXC1mcm9tXC1oZWF2ZW47CivmrqIgPiBiZVwtaW5cLWdyZWF0XC1kaWZmaWN1bHR5Owor5qexID4gZmlyZXdvb2RcLWZvclwtc2FjcmlmaWNlOwor5pyPID4gbGlnaHRcLW9mXC1jcmVzY2VudFwtbW9vbjsKK+aXkCA+IGFuXC1lbWJyb2lkZXJlZFwtcGVubmFudDsKK+aUmSA+IHRvXC1naXZlXC1hXC1oZWxwaW5nXC1oYW5kOwor5pGwID4gdG9cLXNlaXplXC13aXRoXC10aGVcLWhhbmQ7CivmkYAgPiB0b1wtY292ZXJcLXdpdGhcLXRoZVwtaGFuZDsKK+aQviA+IHRvXC1jcnVzaFwtd2l0aFwtdGhlXC1oYW5kOwor5oC5ID4gYVwtcG9saXRlXC12ZXJzaW9uXC1vZlwtaGU7CivlvJIgPiB0b1wta2lsbFwtb25lJydzXC1zdXBlcmlvcjsKK+W6iCA+IHVzZWRcLWluXC1wZXJzb24nJ3NcLW5hbWVzOwor5bW2ID4gbG93XC1wYXJ0XC1vZlwtYVwtbW91bnRhaW47CivlrZIgPiBsYXJ2YWVcLW9mXC10aGVcLW1vc3F1aXRvOwor5aOWID4gb3Blblwtc3BhY2VcLWFsb25nXC13YXRlcjsKK+WZgCA+IHNwaXJ0XC1vdXRcLW9mXC10aGVcLW1vdXRoOwor5Y+dID4gdG9cLXJlc3BlY3RmdWxseVwtaW5mb3JtOwor5LyuID4gdG9cLW1ha2VcLWFcLWdyZWF0XC1lZmZvcnQ7CivktqUgPiB1bmV2ZW5seVwtZml0dGluZ1wtdGVldGg7CivktqQgPiBzb3VuZFwtb2ZcLWNoZXdpbmdcLWJvbmVzOwor5LaCID4gYVwtc3F1aXJyZWxcLWxpa2VcLWFuaW1hbDsKK+SzriA+IHRvXC1sb29rXC1hdFwtaW5cLXN1cnByaXNlOwor5LKaID4gYVwtc2Vjb25kXC1uYW1lXC1mb3JcLXNoYWQ7CivksLUgPiBsb29rc1wtbGlrZVwtY29tbW9uXC1jYXJwOwor5LCwID4gZHJlYXJ5XC1jcmllc1wtb2ZcLWdob3N0czsKK+SwrSA+IGRyZWFyeVwtY3JpZXNcLW9mXC1naG9zdHM7CivkrrogPiBsdXh1cmlhbnRcLW9mXC10aGVcLWdyYXNzOwor5K6tID4gdG9cLWxvb2tcLWF0XC1pblwtc3VycHJpc2U7CivkrqogPiB0b1wtZ2VsZFwtYVwtaG9yc2VcLW9yXC1hc3M7CivkqbwgPiBzdGl0Y2hlc1wtb25cLWFcLWNvdmVybGV0Owor5KmNID4gdG9cLWxvb2tcLXBhbGVcLW9yXC1wYWxsaWQ7CivkqLUgPiByYWluZWRcLWZvclwtYVwtbG9uZ1wtdGltZTsKK+SorCA+IHJhaW5lZFwtZm9yXC1hXC1sb25nXC10aW1lOwor5KihID4gcmFpbmVkXC1mb3JcLWFcLWxvbmdcLXRpbWU7CivkpoggPiB0b1wtc2lnaFwtaW5cLWxhbWVudGF0aW9uOwor5KWfID4gYVwtbWV0YWxcLW1hcmtpbmdcLVwtc3Rha2U7Civkoo4gPiBpbmRpY2F0aW5nXC1leGNsYW1hdGlvbjsKK+ShtSA+IGRlY29yYXRpb25cLW9uXC1jYXJyaWFnZTsKK+ShsCA+IHN0cm9uZ1wtYW5kXC1kdXJhYmxlXC1odWI7CivkoawgPiBjb3ZlcmluZ1wtb2ZcLWFcLWNhcnJpYWdlOwor5KGBID4gbm90XC13ZWxsXC1mb3JtZWRcLWZpZ3VyZTsKK+SfvSA+IHNjYXR0ZXJlZFwtb3JcLWRpc3BlcnNlZDsKK+SemCA+IHRvXC1nb1wtc3RyYWlnaHRcLWZvcndhcmQ7CivknaIgPiBhblwtYW5pbWFsXC1pblwtb2xkXC10aW1lczsKK+SdoSA+IGFuXC1hbmltYWxcLWluXC1vbGRcLXRpbWVzOwor5J2TID4gbG9uZ1wtYmVhcmRcLW9yXC13aGlza2VyczsKK+ScuiA+IGh1c2tpbmdcLWJlYW5zXC1mb3JcLWNha2U7CivknKEgPiB0b1wtc21lbGxcLXRoZVwtZnJhZ3JhbnRzOwor5JuZID4gdG9cLXNtZWxsXC10aGVcLWZyYWdyYW5jZTsKK+SaniA+IHRoZVwtbWlkZGxlXC1vZlwtdGhlXC1ob3JuOwor5JmEID4gY2xvdGhlc1wtd2l0aFwtdGhpY2tcLWhlbTsKK+SYvSA+IGNsb3RoaW5nXC1hbmRcLW9ybmFtZW50czsKK+SXkCA+IGFcLXdlZXZpbFwtZm91bmRcLWluXC1yaWNlOwor5JW0ID4gYVwtc2Vjb25kXC1mb3JcLW1vbmtzaG9vZDsKK+SUoCA+IHRoaW5cLXJvb3RcLW9mXC10aGVcLWxvdHVzOwor5I+pID4gdG9cLXNocnVnXC10aGVcLXNob3VsZGVyczsKK+SNsSA+IHRoZVwtd2lsZFwtZ29hdFwtb3JcLXNoZWVwOwor5IuqID4gZmluZVwtYW5kXC1kZWxpY2F0ZVwtc2lsazsKK+SLjSA+IGZpbmVcLWFuZFwtZGVsaWNhdGVcLXNpbGs7Civkio8gPiBtaXhpbmdcLXJpY2VcLXdpdGhcLWJyb3RoOwor5IqDID4gbWl4aW5nXC1yaWNlXC13aXRoXC1icm90aDsKK+SIhCA+IGFcLWtpbmRcLW9mXC1zb2xpZFwtYmFtYm9vOwor5IejID4gYmFtYm9vXC13aXRoXC13aGl0ZVwtYmFyazsKK+SEoCA+IHRvXC1zYWNyaWZpY2VcLXRvXC1oZWF2ZW47Civkg6cgPiBzb3VuZFwtb2ZcLWZhbGxpbmdcLXJvY2tzOwor5IOUID4gc291bmRcLW9mXC1mYWxsaW5nXC1yb2NrczsKK+SCoiA+IHNvdW5kXC1vZlwtZmFsbGluZ1wtcm9ja3M7CivkgqAgPiBzb3VuZFwtb2ZcLWZhbGxpbmdcLXJvY2tzOwor5ICEID4gY29udGFpbmVyXC1mdWxsXC1vZlwtZm9vZDsKK+O/iyA+IGFcLWtpbmRcLW9mXC1za2luXC1kaXNlYXNlOwor47yeID4gamFyXC13aXRoXC1hXC1zbWFsbFwtbW91dGg7Civjup4gPiB0b1wtc2lnblwtaW5cLWxhbWVudGF0aW9uOwor47ivID4gYVwtZmluZVwtYnJlZWRcLW9mXC1jYXR0bGU7Civjta8gPiBzb3VuZFwtb2ZcLXdhdGVyXC1mbG93aW5nOwor47OvID4gZ29kZGVzc1wtb2ZcLWFuXC1pbmtcLXNsYWI7CivjsrEgPiBsb25nXC1iZWFyZFwtb3JcLXdoaXNrZXJzOwor47GGID4gdG9cLXNtaWxlXC1hdFwtZWFjaFwtb3RoZXI7CivjsL8gPiB0b1wtc2lnaFwtaW5cLWxhbWVudGF0aW9uOwor47CoID4gdG9cLXRha2VcLWJyZWF0aFwtb3JcLXJlc3Q7CivjrpEgPiBzb3VuZFwtb2ZcLWJyb2tlblwtc3RpY2tzOwor462vID4gdHJlZVwtd2l0aFwtc21hbGxcLWxlYXZlczsKK+OriiA+IGZsdXR0ZXJpbmdcLW9mXC10aGVcLWZsYWc7CivjqqMgPiBhXC1wbGFjZVwtaW5cLWhhblwtZHluYXN0eTsKK+OqnyA+IHRvXC1yZWdhcmRcLWFzXC1pbXBvcnRhbnQ7Civjqp4gPiB0b1wtYmVcLWhlbGRcLWJ5XC10aGVcLWhhbmQ7CivjqbogPiBhXC1jcmFja1wtb25cLXRoZVwtdXRlbnNpbDsKK+OpnCA+IHRvXC1iZVwtaW5cLXBvc3Nlc3Npb25cLW9mOwor46mOID4gdG9cLXByZXNzXC13aXRoXC1hXC1maW5nZXI7Civjp7YgPiB0aGVcLWppbmdsaW5nXC1vZlwtbWV0YWxzOwor46eZID4gdG9cLWdpdmVcLWFcLXBsYXlmdWxcLWJsb3c7Civjp4MgPiB0b1wtcmVjZWl2ZVwtd2hhdFwtaXNcLWR1ZTsKK+OmoyA+IHRvXC10YWxrXC1pblwtb25lJydzXC1zbGVlcDsKK+OmhCA+IGhhcmRcLXRvXC1zYXlcLW9yXC1wcmVkaWN0Owor76SQID4gdHlwZVwtb2ZcLWNyZWVwaW5nXC1wbGFudDsKK++kjyA+IG5ldFwtZm9yXC1jYXRjaGluZ1wtYmlyZHM7CivjpIogPiBjaGVlcmZ1bFwtYW5kXC1leHViZXJhbnQ7Civjo5ogPiB0b1wtZ29cLXN0cmFpZ2h0XC1mb3J3YXJkOwor46KJID4gYVwtcm9vbVwtd2l0aFwtb3Blblwtc3BhY2U7CivjoJQgPiBzaGFwZXNcLW9mXC10aGVcLW1vdW50YWluOwor45+7ID4gdGhlXC1tb2F0XC1hcm91bmRcLWFcLWNpdHk7Civjm7MgPiBhblwtYWJub21hbFwtdW5ib3JuXC1iYWJ5Owor45q3ID4gdGhlXC1icmVhc3RzXC1vZlwtYVwtd29tYW47CivjmbMgPiBydWdnZWRuZXNzXC1vZlwtdGhlXC1yb2FkOwor45mkID4gYVwtY3JhY2tcLWluXC1lYXJ0aGVud2FyZTsKK+OZmCA+IHVzZWRcLWluXC1uYW1pbmdcLWFcLXBsYWNlOwor45itID4gYVwtaG9sbG93XC1pblwtdGhlXC1ncm91bmQ7CivjmKwgPiBhXC1ob2xsb3dcLWluXC10aGVcLWdyb3VuZDsKK+OXgiA+IHRvXC1rZWVwXC10aGVcLW1vdXRoXC1zaHV0Owor45aQID4gc291bmRcLW9mXC1jYWxsaW5nXC1kdWNrczsKK+OUtCA+IGFncmljdWx0dXJhbFwtaW1wbGVtZW50Owor45O5ID4gYVwtc2hhcnBcLXBvaW50ZWRcLXdlYXBvbjsKK+OTpiA+IHRvXC1kZWxpYmVyYXRlXC1hbmRcLXBsYW47Civjk5ggPiBqYWRlXC13aXRoXC1zb21lXC1kZWZlY3RzOwor6KeJID4gdG9cLXdha2VcLXVwXC1mcm9tXC1zbGVlcDsKK+eSsCA+IGphZGVcLXJpbmdcLW9yXC1icmFjZWxldDsKK+imuiA+IHRvXC13YWtlXC11cFwtZnJvbVwtc2xlZXA7CivoppogPiB0b1wtd2FrZVwtdXBcLWZyb21cLXNsZWVwOwor5YiSID4gdG9cLXJvd1wtb3JcLXBhZGRsZVwtYm9hdDsKK+WgqiA+IGFkZXF1YXRlbHlcLWNhcGFibGVcLW9mOwor546vID4gamFkZVwtcmluZ1wtb3JcLWJyYWNlbGV0Owor5ZC0ID4gbmFtZVwtb2ZcLXdhcnJpbmdcLXN0YXRlOwor6bO0ID4gY3J5XC1vZlwtYmlyZFwtb3JcLWFuaW1hbDsKK+WRiSA+IG9uZVwtb2ZcLXdhcnJpbmdcLXN0YXRlczsKK+mmsyA+IGdvXC1xdWlja2x5XC1vclwtc3dpZnRseTsKK+amjiA+IHNtYWxsXC1ldmVyZ3JlZW5cLXNocnViOwor6bijID4gY3J5XC1vZlwtYmlyZFwtb3JcLWFuaW1hbDsKK+mpsCA+IGdvXC1xdWlja2x5XC1vclwtc3dpZnRseTsKK+WnuyA+IHJlbGF0aXZlc1wtYnlcLW1hcnJpYWdlOwor562SID4gdGhpY2tcLXBpZWNlXC1vZlwtYmFtYm9vOwor5biYID4gZmxhZ1wtc2lnblwtb2ZcLWFcLXRhdmVybjsKK+eouyA+IHJpY2VcLWdyb3dpbmdcLWluXC1maWVsZDsKK+eosiA+IHJpY2VcLWdyb3dpbmdcLWluXC1maWVsZDsKK+emsCA+IG9uZScnc1wtZGVjZWFzZWRcLWZhdGhlcjsKK+WJgiA+IG1lZGljaW5hbFwtcHJlcGFyYXRpb247Civnj4IgPiBpbmZlcmlvclwta2luZFwtb2ZcLWphZGU7CivlmJ8gPiBzb3VuZFwtb2ZcLWhvcm5cLXRvb3Rpbmc7CivnkZwgPiBmbGF3bGVzc1wtZ2VtXC1vclwtamV3ZWw7Civnj5EgPiBhXC1nZW1cLWN1dFwtbGlrZVwtZHJhZ29uOwor6K+sID4gbWFrZVwtZmFsc2VcLWFjY3VzYXRpb247Civlq5YgPiBwYXRyb25pemVcLXByb3N0aXR1dGVzOwor6aOSID4gdGhlXC1zb3VuZFwtb2ZcLXRoZVwtd2luZDsKK+mUoiA+IHJ1blwtbWV0YWxcLWludG9cLWNyYWNrczsKK+aOliA+IHN1cHBvcnRcLXdpdGhcLXRoZVwtYXJtczsKK+ajoyA+IGtlcnJpYVwtamFwb25pY2FcLXBsYW50Owor6I+BID4gZmxvd2VyXC1vZlwtbGVla1wtZmFtaWx5Owor5ZKpID4gdGhlXC1ibGVhdGluZ1wtb2ZcLXNoZWVwOwor54+JID4gc3RvbmVcLXJlc2VtYmxpbmdcLWphZGU7Civpko4gPiB0b29sXC1mb3JcLWJvcmluZ1wtaG9sZXM7Civmip8gPiByb2xsXC1hcm91bmRcLXdpdGhcLWhhbmQ7CivotrggPiBzZWxsXC1vclwtYnV5XC13aG9sZXNhbGU7CivlpqMgPiBvbmUnJ3NcLWRlY2Vhc2VkXC1tb3RoZXI7CivltYogPiBkaXN0cmljdFwtaW5cLXNoYW9oc2luZzsKK+esuCA+IGZsYXRcLWJhc2tldFwtZm9yXC1ncmFpbjsKK+eloiA+IG9uZScnc1wtZGVjZWFzZWRcLWZhdGhlcjsKK+iCqyA+IHRoZVwtZ2l6emFyZFwtb2ZcLWFcLWZvd2w7Civoi6sgPiBydXNoXC1vclwtc3RyYXdcLW1hdHRpbmc7Civls6QgPiBoaWdoXC1wb2ludGVkXC1tb3VudGFpbjsKK+enrSA+IG9uZVwtdGhvdXNhbmRcLW1pbGxpb25zOwor5aeSID4gd2lmZVwtb2ZcLWVsZGVyXC1icm90aGVyOwor6JOwID4gdG9cLWluY3JlYXNlXC1maXZlXC1mb2xkOwor6JKMID4gYXJ0ZW1pc2lhXC1zdGVsbGVyaWFuYTsKK+mFgyA+IHRoZVwtc3Bpcml0XC1vZlwtYVwtYmVpbmc7Civns5cgPiBwYXJjaGVkXC13aGVhdFwtb3JcLXJpY2U7CivovosgPiBleHRlcmlvclwtcmltXC1vZlwtd2hlZWw7Civpq6sgPiBjaGlsZHJlbicnc1wtaGFpclwtc3R5bGU7CivombogPiBsYXJnZVwtcG9pc29ub3VzXC1zbmFrZTsKK+mGtSA+IGNvbnRyaWJ1dGVcLWZvclwtZHJpbmtzOwor6JqsID4gYVwtdmFyaWV0eVwtb2ZcLWJpdmFsdmVzOwor6KO8ID4gdG9cLXRha2VcLW9mZlwtb25lJydzXC10b3A7CivnnLUgPiBleWVzXC1kaXNlYXNlZFwtYW5kXC1kaW07CivmnrUgPiBob2xsb1wtc3R1bXBcLW9mXC1hXC10cmVlOwor6JipID4gYXJ0ZW1pc2lhXC1zdGVsbGFyaWFuYTsKK+m8gyA+IHRoZVwtZWRpYmxlXC13YXRlclwtZnJvZzsKK+m3gCA+IHRoZVwtZmlzaGluZ1wtY29ybW9yYW50Owor6bSgID4gYVwta2luZFwtb2ZcLW5pZ2h0aW5nYWxlOwor6bCkID4gc2VyaW9sYVwtcWlucXVlcmFkaWF0YTsKK+mvhCA+IGxlcGlkb3RyaWdsYVwtc3RyYXVjaGk7Civpq4ggPiBkZWZpbmVkXC1hc1wtdGhlXC1wZWx2aXM7CivporggPiBjb29sXC1icmVlemVcLW9mXC1hdXR1bW47Civpoq8gPiB0aGVcLXNvdW5kXC1vZlwtdGhlXC13aW5kOwor6YyuID4gcnVuXC1tZXRhbFwtaW50b1wtY3JhY2tzOwor6Ye6ID4gdG9vbFwtZm9yXC1ib3JpbmdcLWhvbGVzOwor6YWOID4gZG91YmxlXC1mZXJtZW50ZWRcLXdpbmU7CivovK4gPiBleHRlcmlvclwtcmltXC1vZlwtd2hlZWw7CivovJ4gPiBleHRlcmlvclwtcmltXC1vZlwtd2hlZWw7CivouokgPiBzZWxsXC1vclwtYnV5XC13aG9sZXNhbGU7CivosLogPiB0aGVcLW1vdXRoXC1vZlwtYVwtdmFsbGV5Owor6KqjID4gbWFrZVwtZmFsc2VcLWFjY3VzYXRpb247CivooLggPiBhdWxhY29waG9yYVwtZmVtb3JhbGlzOwor6J6SID4gYXVsYWNvcGhvcmFcLWZlbW9yYWxpczsKK+icuiA+IHJlZmxlY3Rpb25cLW9mXC1yYWluYm93Owor6JyGID4gYVwtdmFyaWV0eVwtb2ZcLWJpdmFsdmVzOwor6JiYID4gYVwta2luZFwtb2ZcLXdpbGRcLWdpbmdlcjsKK+iVmiA+IHRoZVwtY2FseXhcLW9mXC1hXC1mbG93ZXI7CivolJ4gPiBhcnRlbWlzaWFcLXN0ZWxsZXJpYW5hOwor6JG5ID4ga2luZFwtb2ZcLWNocnlzYW50aGVtdW07CivokLsgPiBzbWFsbFwtYnVkZGhpc3RcLXRlbXBsZTsKK+iImiA+IHRvXC1wdXRcLW91dFwtdGhlXC10b25ndWU7Civnv48gPiB0aGVcLXNvdW5kXC1vZlwtdGhlXC13aW5kOwor57m0ID4gYVwta2luZFwtb2ZcLWZpc2hpbmdcLW5ldDsKK+ervCA+IGJhbWJvb1wtY292ZXJcLWZvclwtYm9hdDsKK+emqCA+IHByYXlcLWZvclwtZ29vZFwtZm9ydHVuZTsKK+eZpSA+IG9ic3RydWN0aW9uXC1vZlwtYm93ZWxzOwor55ePID4gYVwtYnJ1aXNlXC1vclwtY29udHVzaW9uOwor55OPID4gYVwtZ2VtXC1jdXRcLWxpa2VcLWRyYWdvbjsKK+eSoSA+IGphZGVcLWxvb2tcLWFsaWtlXC1zdG9uZTsKK+eRqCA+IGphZGVcLWxvb2tcLWFsaWtlXC1zdG9uZTsKK+eRgCA+IHN0b25lXC1yZXNlbWJsaW5nXC1qYWRlOwor5r6CID4gY2xlYXJcLWFuZFwtc3RpbGxcLXdhdGVyOwor5recID4gcm9hclwtb2ZcLWRhc2hpbmdcLXdhdmVzOwor5rKHID4gZmxvd2luZ1wtYW5kXC1lbmd1bGZpbmc7Civmqp8gPiBzbWFsbFwtZXZlcmdyZWVuXC1zaHJ1YjsKK+aajiA+IHN1blwtYmVnaW5uaW5nXC1kZWNsaW5lOwor5pG2ID4gcm9sbFwtYXJvdW5kXC13aXRoXC1oYW5kOwor5bagID4gaGlnaFwtcG9pbnRlZFwtbW91bnRhaW47CivltbwgPiB3aW5kaW5nXC1tb3VudGFpblwtcGF0aDsKK+WftSA+IGhhcmRlbmVkXC1kaXJ0XC1vclwtY2xheTsKK+WXuyA+IHRvXC1zY3JlZW5cLlwtbG9xdWFjaW91czsKK+WQsyA+IG9uZVwtb2ZcLXdhcnJpbmdcLXN0YXRlczsKK+WMnyA+IGRpdmFuXC1mb3JcLXR3b1wtcGVyc29uczsKK+WKkSA+IG1lZGljaW5hbFwtcHJlcGFyYXRpb247Civlib4gPiB0b1wtcGlja1wtdXBcLXdpdGhcLWtuaWZlOwor5YmkID4gbWVkaWNpbmFsXC1wcmVwYXJhdGlvbjsKK+S1lyA+IHRvXC1jbGVhblwtdGhlXC13aXRoZXJlZDsKK+S1hCA+IHRvXC1ib2lsXC1vclwtc3Rld1wtd2hlYXQ7CivktLYgPiB0b1wtYm9pbFwtb3JcLXN0ZXdcLXdoZWF0Owor5LSUID4gdGhlXC1maXNoaW5nXC1jb3Jtb3JhbnQ7Civks7kgPiBhXC1raW5kXC1kb3ZlXC1saWtlXC1iaXJkOwor5LOdID4gYVwta2luZFwtb2ZcLXNtYWxsXC1iaXJkczsKK+SxnyA+IGFcLWtpbmRcLW9mXC1zaWx2ZXJcLWZpc2g7Civkr68gPiBoYW5nXC1kb3duXC1vZlwtdGhlXC1oYWlyOwor5K+tID4gb2ZcLW5pY2VcLWFuZFwtZ29vZFwtaGFpcjsKK+SuhCA+IGFuXC1vbmVcLXllYXJcLW9sZFwtaG9yc2U7CivkrbQgPiBhblwtb25lXC15ZWFyXC1vbGRcLWhvcnNlOwor5Ku5ID4gdGhlXC1zb3VuZFwtb2ZcLXRoZVwtd2luZDsKK+SqpSA+IHNoYWxsb3RzXC1vclwtc2NhbGxpb25zOwor5KmpID4gYVwtbWVhc3VyZVwtb2ZcLWNhcGFjaXR5Owor5Ka9ID4gYW5cLWVhc3RcLWFuZFwtd2VzdFwtd2FsbDsKK+SmmiA+IHdpZGVcLW9wZW5cLW9mXC10aGVcLWRvb3I7CivkpowgPiB0aGVcLWRvb3JcLWlzXC13aWRlXC1vcGVuOwor5KWIID4gdGhlXC1zeW1ib2xcLWZvclwtY29iYWx0Owor5KSXID4gdGFzdGVcLW9mXC1zdHJvbmdcLWRyaW5rOwor5KKpID4gdG9cLWZvcmJpZFwtdG9cLXByb2hpYml0Owor5KG2ID4gdmVoaWNsZXNcLWFuZFwtZ2FybWVudHM7CivknpogPiB0b1wtaGFuZ1wtb25cLWFcLWJpZ1wtdHJlZTsKK+SdliA+IHJlcHRpbGVzXC13aXRob3V0XC1mZWV0Owor5JuxID4gdG9cLXRhbGtcLXVucmVtaXR0aW5nbHk7Civkm4ogPiBjaGVlcmZ1bFwtYWxsXC10aGVcLXRpbWU7Civkm4MgPiB1c2VkXC1pblwtcGVyc29uJydzXC1uYW1lOwor5JiQID4gdGhlXC1ibGVlZFwtYXRcLXRoZVwtbm9zZTsKK+SXiiA+IHRvXC1wdXRcLW91dFwtdGhlXC10b25ndWU7Civkl4kgPiBhXC1zbWFsbFwtc29saXRhcnlcLXdhc3A7CivklpQgPiBhXC1raW5kXC1vZlwtd2hpdGVcLXRpZ2VyOwor5JaNID4gdG9cLWFjdFwtd2l0aFwtcmV2ZXJlbmNlOwor5JS1ID4gZnJhZ3JhbnRcLXRob3JvdWdod29ydDsKK+SUiiA+IGRlbnNlXC1ncm93dGhcLW9mXC1ncmFzczsKK+STkiA+IHNjaXJwdXNcLWN5cGVyaW51c1wtdmFyOwor5JKmID4gZ3Jhc3NcLWZsb2F0c1wtb25cLXdhdGVyOwor5JKEID4gZnVsbHlcLWxhZGVuXC1vZlwtYVwtYm9hdDsKK+SRnSA+IGFcLXNtYWxsXC1jdXBcLXdpdGhcLWVhcnM7Civkj6QgPiB0b3BcLW9mXC10aGVcLWh1bWFuXC1oZWFkOwor5I62ID4gb2ZmZXJpbmdcLWJsb29kXC10b1wtZ29kOwor5I6aID4gdGhlXC1lbmRcLW9mXC1iaXJkXC13aW5nczsKK+SOliA+IHNvYXJpbmdcLXVwXC1pblwtdGhlXC1za3k7CivkjoEgPiB1c2VkXC1pblwtcGVyc29uJydzXC1uYW1lOwor5IynID4gYVwta2luZFwtb2ZcLXNpbGtcLWZhYnJpYzsKK+SMnyA+IHRvXC13ZWF2ZVwtc2lsa1wtcmliYm9uczsKK+SLgiA+IGRyZXNzZXNcLWZvclwtdGhlXC1icmlkZTsKK+SIpyA+IHNraW5cLW9mXC1iYW1ib29cLXNob290czsKK+SIniA+IGFuY2llbnRcLW5hbWVcLW9mXC1pbmRpYTsKK+SHviA+IGFcLWZsdXRlXC13aXRoXC0yM1wtdHViZXM7Civkh7AgPiBhXC1iYW1ib29cLWJpbmRlZFwtdG9yY2g7Civkh6EgPiB0aGVcLXNodXR0bGVcLW9mXC1hXC1sb29tOwor5IagID4gYVwtZ292ZXJubWVudFwtb2ZmaWNpYWw7CivkhpsgPiBzb21ldGhpbmdcLWluXC10aGVcLWNhdmU7CivkhZcgPiBmb3VyXC1idW5kbGVcLW9mXC1ncmFpbnM7CivkhZEgPiBmb3VyXC1idW5kbGVcLW9mXC1ncmFpbnM7Civkga0gPiB0b1wtZ2l2ZVwtYW5cLWFuZ3J5XC1sb29rOwor5IGaID4gYVwta2luZFwtb2ZcLWV5ZVwtZGlzZWFzZTsKK+SAvSA+IHRvXC1sb29rXC1hdFwtZWFjaFwtb3RoZXI7CivkgKAgPiBhXC1jaGluZXNlXC1mYW1pbHlcLW5hbWU7CivkgJMgPiB0b1wtdHVyblwtb25lJydzXC1leWVzXC10bzsKK+O/tCA+IHdpZGVcLXBpZWNlXC1vZlwtbGVhdGhlcjsKK+O/ryA+IHdpZGVcLXBpZWNlXC1vZlwtbGVhdGhlcjsKK+O/qyA+IHRvXC1zcGxpdFwtdGFuZ2xlZFwtaGVtcDsKK+O/jyA+IHBhcmFseXNpc1wtb2ZcLXRoZVwtYm9keTsKK+O+viA+IGRpc2Vhc2VcLW9mXC10aGVcLXRocm9hdDsKK+O+pCA+IGRpc2Vhc2VcLW9mXC10aGVcLXRocm9hdDsKK+O8siA+IHNvdW5kXC1vZlwtYnJva2VuXC10aWxlczsKK+O8kCA+IGFcLWtpbmRcLW9mXC13aGl0ZVwtbWVsb247CivjubYgPiBhXC1raW5kXC1vZlwtd2lsZFwtYW5pbWFsOwor47mmID4gZG9nXC13aXRoXC1hXC1zaG9ydFwtdGFpbDsKK+O5lCA+IGNhdHRsZVwtd2l0aFwtbG9uZ1wtYmFjazsKK+O3lyA+IHVzZWRcLWluXC1wZXJzb24nJ3NcLW5hbWU7Civjt48gPiB1c2VkXC1pblwtcGVyc29uJydzXC1uYW1lOwor47WsID4gdXNlZFwtaW5cLXBlcnNvbicnc1wtbmFtZTsKK+O1qCA+IGFcLWRyeVwtbGFuZFwtaW5cLWFcLXJpdmVyOwor47OIID4gYVwtZ3JlYXRcLWZsb3dcLW9mXC13YXRlcjsKK+OxnyA+IHRvXC1yaXBcLW9wZW5cLXRoZVwtZmxlc2g7CivjsIQgPiBhXC1zbWFsbFwtY2hlc3RudXRcLXRyZWU7Civjr6UgPiBhXC1jaGluZXNlXC1mYW1pbHlcLW5hbWU7CivjrpcgPiB0aGVcLWhhbmRsZVwtb2ZcLWFcLXNwZWFyOwor462NID4gY2FwaXRhbFwtZm9ybVwtb2ZcLXNldmVuOwor46ygID4gdG9cLWV4cG9zZVwtdG9cLXN1bmxpZ2h0Owor46yTID4gdG9cLWV4cG9zZVwtdG9cLXN1bmxpZ2h0Owor46yCID4gdXNlZFwtaW5cLXBlcnNvbicnc1wtbmFtZTsKK+OpnyA+IHRvXC1zZXdcLXNvbWVcLW9ybmFtZW50czsKK+OojCA+IHRvXC1taWxrXC1hXC1jb3dcLW9yXC1nb2F0Owor46OdID4gYVwtY2hpbmVzZVwtZmFtaWx5XC1uYW1lOwor46CLID4gYVwtbG9mdHlcLW1vdW50YWluXC1wZWFrOwor45+eID4gcHJlY2lwaXRvdXNcLWFuZFwtbG9mdHk7Civjn50gPiB0b1wtYmFua1wtdXBcLXdpdGhcLWVhcnRoOwor45+cID4gc2hhcGVcLW9mXC10aGVcLW1vdW50YWluOwor45+ZID4gc2hhcGVcLW9mXC10aGVcLW1vdW50YWluOwor45+WID4gYVwtZGlhbGVjdFwtb2ZcLW1pbm9yaXR5Owor45+OID4gYVwtbG9uZ1wtbW91bnRhaW5cLXJpZGdlOwor456BID4gY2FuXC1ub3RcLXdhbGtcLW5vcm1hbGx5Owor452+ID4gY2FuXC1ub3RcLXdhbGtcLW5vcm1hbGx5Owor45iwID4gbmFtZVwtb2ZcLWFcLW9sZFwtY291bnRyeTsKK+OYoSA+IGFcLXBlblwtZm9yXC13aWxkXC1iZWFzdHM7CivjmJYgPiB0b1wtbWFrZVwtYVwtZGlzdHVyYmFuY2U7Civjl4EgPiB0aGVcLXJvb2ZcLW9mXC10aGVcLW1vdXRoOwor45aXID4gaGlnaFwtcmlkZ2VzXC1vZlwtY2xpZmZzOwor45WiID4gcHJvZm91bmRcLXNpZ25pZmljYW5jZTsKK+OShiA+IHRvXC1nYXRoZXJcLXRoZVwtaGFydmVzdDsKK+S7gCA+IGZpbGVcLW9mXC10ZW5cLXNvbGRpZXJzOwor6LKsID4gb25lJydzXC1yZXNwb25zaWJpbGl0eTsKK+eItSA+IGZldWRhbFwtdGl0bGVcLW9yXC1yYW5rOwor6LSjID4gb25lJydzXC1yZXNwb25zaWJpbGl0eTsKK+WViiA+IGV4Y2xhbWF0b3J5XC1wYXJ0aWNsZTsKK+almiA+IG5hbWVcLW9mXC1mZXVkYWxcLXN0YXRlOwor5omYID4gdG9cLWhvbGRcLXVwXC13aXRoXC1wYWxtOwor5rGyID4gZHJhd1wtd2F0ZXJcLWZyb21cLXdlbGw7CivprYUgPiBraW5kXC1vZlwtZm9yZXN0XC1kZW1vbjsKK+S8iiA+IHRoaXJkXC1wZXJzb25cLXByb25vdW47CivpuL8gPiBzcGVjaWVzXC1vZlwtd2lsZFwtc3dhbjsKK+WnpSA+IG1hdGVybmFsXC1ncmFuZG1vdGhlcjsKK+aNpyA+IGhvbGRcLXVwXC1pblwtdHdvXC1oYW5kczsKK+S5mSA+IHNlY29uZFwtaGVhdmVuJydzXC1zdGVtOwor5ZCBID4gaW50ZXJqZWN0aW9uXC0nJ2FsYXNcIScnOwor5aeoID4gbW90aGVyXC93aWZlJydzXC1zaXN0ZXI7CivkuqkgPiBjaGluZXNlXC1sYW5kXC1tZWFzdXJlOwor5YO1ID4gc3RpZmZcLWFuZFwtbW90aW9ubGVzczsKK+aLsSA+IGZvbGRcLWhhbmRzXC1vblwtYnJlYXN0Owor56a+ID4gZ3JhaW5cLXN0aWxsXC1vblwtc3RhbGs7Civll6EgPiBzb3VuZFwtb2ZcLWZseWluZ1wtYmVlczsKK+WFriA+IGV4Y2xhbWF0b3J5XC1wYXJ0aWNsZTsKK+eMqSA+IHNwZWNpZXNcLW9mXC1vcmFuZ3V0YW47Civni54gPiBmZXJvY2lvdXNcLWFwcGVhcmFuY2U7Civmi4ggPiBwaWNrXC11cFwtd2l0aFwtZmluZ2VyczsKK+mZmyA+IHN0ZXBzXC1sZWFkaW5nXC10aHJvbmU7CivpuK8gPiBmZW1hbGVcLW1hbmRhcmluXC1kdWNrOwor5Y2vID4gdGhcLW9mXC1lYXJ0aFwtYnJhbmNoZXM7CivnhqAgPiBicmlnaHRcLWFuZFwtc3BhcmtsaW5nOwor6ZiCID4gYmxvY2tlZFwtb3JcLXNlcGFyYXRlZDsKK+a3hSA+IHdhdGVyXC11c2VkXC13YXNoXC1yaWNlOwor5L2aID4gaW5kdWxnZVwtaW5cLXBsZWFzdXJlczsKK+i+miA+IHJ1bWJsaW5nXC1vZlwtdmVoaWNsZXM7Civlt70gPiB0aFwtb2ZcLXRoZVwtOFwtdHJpZ3JhbXM7CivoqIcgPiB0aGVcLXNvdW5kXC1vZlwtYVwtY3Jhc2g7Civni7ogPiB0aGVcLXNuYXJsaW5nXC1vZlwtZG9nczsKK+a1lCA+IHN0ZWVwXC1iYW5rXC1ieVwtc3RyZWFtOwor6JOKID4gbHV4dXJpYW50XC12ZWdldGF0aW9uOwor6JOgID4gZ3JhY2lsYXJpYVwtdmVycnVjb3NhOwor6I+AID4gbHV4dXJpYW5jZVwtb2ZcLWdyb3d0aDsKK+iDlyA+IHB1c3R1bGVzXC1vZlwtYW55XC1raW5kOwor6aKDID4gZmx5XC1kb3duXC1vclwtZG93bndhcmQ7CivlnoYgPiBibGFja1wtY2xvZHNcLW9mXC1lYXJ0aDsKK+aolyA+IGFpbGFudGh1c1wtZ2xhbmR1bG9zYTsKK+iapyA+IGFcLXJlZFwtc3BvdHRlZFwtbGl6YXJkOwor57y2ID4gZWFydGhlblwtY3JvY2tcLW9yXC1qYXI7CivosbMgPiBhXC16aG91XC1keW5hc3R5XC1zdGF0ZTsKK+i9uiA+IHNtYWxsXC1saWdodFwtY2FycmlhZ2U7CivpgK8gPiBsZWF2ZVwtd2l0aG91dFwtcmVhc29uOwor6b2eID4gdG9cLWRpc3BsYXlcLXRoZVwtdGVldGg7CivpvIggPiBhXC1mcmVzaFwtd2F0ZXJcLXR1cnRsZTsKK+m8giA+IGFcLWtpbmRcLW9mXC1zZWFcLXR1cnRsZTsKK+m4hyA+IGtpbmRcLW9mXC1iaXJkXC1vZlwtcHJleTsKK+m4giA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+m3qyA+IHR1cnF1b2lzZVwta2luZ2Zpc2hlcjsKK+m3gSA+IGZpc2hoYXdrXC1ib3dcLW9yXC1wcm93Owor6bS7ID4gc3BlY2llc1wtb2ZcLXdpbGRcLXN3YW47CivptKYgPiBmZW1hbGVcLW1hbmRhcmluXC1kdWNrOwor6bCcID4gYmlnXC1tb3V0aGVkXC1mbG91bmRlcjsKK+mruiA+IHRoZVwtaGFpclwtZGlzaGV2ZWxsZWQ7CivpqqMgPiBob3JzZVwtd2l0aG91dFwtc2FkZGxlOwor6amPID4gaG9yc2VcLXdpdGhvdXRcLXNhZGRsZTsKK+mkvSA+IG1ha2VcLXByZXNlbnRcLW9mXC1mb29kOwor6aCPID4gZmx5XC1kb3duXC1vclwtZG93bndhcmQ7Civpn7EgPiB3aWxkXC1vbmlvbnNcLW9yXC1sZWVrczsKK+mfryA+IHdpbGRcLW9uaW9uc1wtb3JcLWxlZWtzOwor6ZyDID4gbG9uZ1wtY29udGludWVkXC1yYWluczsKK+mXjSA+IHRvd2VyXC1vdmVyXC1jaXR5XC1nYXRlOwor6ZahID4gYmxvY2tlZFwtb3JcLXNlcGFyYXRlZDsKK+mNsSA+IHRoaW5cLXBsYXRlc1wtb2ZcLW1ldGFsOwor6Ym2ID4gc2FjcmlmaWNpYWxcLWNhdWxkcm9uOwor6YawID4gYml0dGVyXC10YXN0ZVwtaW5cLXdpbmU7CivovZQgPiBydW1ibGluZ1wtb2ZcLXZlaGljbGVzOwor6Lu6ID4gc21hbGxcLWxpZ2h0XC1jYXJyaWFnZTsKK+i2giA+IHRvXC10YWtlXC1hZHZhbnRhZ2VcLW9mOwor6KWsID4gbG93ZXJcLXBhcnRcLW9mXC1hXC1yb2JlOwor6KKzID4gc3ByZWFkXC1vbmUnJ3NcLWNsb3RoZXM7CivonJsgPiBoeWRyb3BoaWx1c1wtY29nbmF0dXM7Civom5ogPiBjeXJ0b3hpcGh1c1wtcml0c2VtYWU7CivomLogPiBncmFjaWxhcmlhXC12ZXJydWNvc2E7CivolqIgPiB3b29keVwtY2xpbWJpbmdcLXBsYW50Owor6IyAID4gb3Zlcmdyb3duXC13aXRoXC1ncmFzczsKK+iKhCA+IG1ldGFwbGV4aXNcLXN0YXVudG9uaTsKK+iIuiA+IHBsYWNlXC1uYW1lXC1pblwtdGFpd2FuOwor6IShID4gc3RyaXBzXC1vZlwtZHJpZWRcLW1lYXQ7CivnsoMgPiBlbXB0eVwtaHVza3NcLW9mXC1ncmFpbjsKK+eqoyA+IHRvXC1ydXNoXC1vdXRcLW9mXC1hXC1kZW47CivnqYcgPiBwYW5pY3VtXC1mcnVtZW50YWNldW07Civno5IgPiB0b1wtZmFsbFwtZnJvbVwtb3JcLWludG87Civnn5EgPiB0aGVcLXB1cGlsXC1vZlwtdGhlXC1leWU7CivnnY0gPiB0b1wtbG9va1wtYXRcLWZlYXJmdWxseTsKK+eVnSA+IGNoaW5lc2VcLWxhbmRcLW1lYXN1cmU7CivnlZIgPiBjaGluZXNlXC1sYW5kXC1tZWFzdXJlOwor55WGID4gY2hpbmVzZVwtbGFuZFwtbWVhc3VyZTsKK+eUvSA+IGRyYWluXC1iZXR3ZWVuXC1maWVsZHM7CivnlIMgPiBicmlja1wtd2FsbFwtb2ZcLWFcLXdlbGw7CivnkJYgPiBjYXJ2ZWRcLWphZGVcLXdpbmVcLWN1cDsKK+eOpiA+IGJyb2tlblwtcGllY2VcLW9mXC1qYWRlOwor542wID4gZmVyb2Npb3VzXC1hcHBlYXJhbmNlOwor54CzID4gdG9cLWFycml2ZVwtXChvZlwtd2F0ZXJcKTsKK+a+rCA+IHRvXC1yYWluXC1jb250aW51b3VzbHk7Civmva8gPiBzdGVlcFwtYmFua1wtYnlcLXN0cmVhbTsKK+a0pCA+IGFcLWZvdW50YWluXC1vclwtc3ByaW5nOwor5qe+ID4gcGFzdGVcLXdhbGxcLXdpdGhcLWRpcnQ7Civmo6ggPiB0YWxseVwtb3JcLXdvb2RlblwtcGFzczsKK+ahrCA+IHBlYXJcLWFuZFwtb3RoZXJcLXRyZWVzOwor5pWzID4gdG9cLWdvdmVyblwtZm9yY2VmdWxseTsKK+aVgSA+IHRvXC13ZWlnaFwtaW5cLXRoZVwtaGFuZDsKK+aQjiA+IHRvXC1ydWJcLXdpdGhcLXRoZVwtaGFuZDsKK+aIvCA+IHRoXC1vZlwtZWFydGhcLWJyYW5jaGVzOwor5be6ID4gdGhcLW9mXC10aGVcLThcLXRyaWdyYW1zOwor5bWPID4gYVwtbW91bnRhaW5cLWluXC1zaGVueGk7Civlra0gPiB0b1wtY2FycnlcLW9uXC10aGVcLWJhY2s7Civlq4sgPiBzbGVuZGVyXC1hbmRcLWRlbGljYXRlOwor5amjID4gbWFycmlhZ2VcLWNvbm5lY3Rpb25zOwor5aSYID4gdGhcLW9mXC1lYXJ0aFwtYnJhbmNoZXM7Civlo5ogPiBibGFja1wtY2xvZHNcLW9mXC1lYXJ0aDsKK+WbrCA+IHRvXC1yZXR1cm5cLXRvXC1vclwtZnJvbTsKK+WKgiA+IGNoaXNlbFwtZm9yXC1lbmdyYXZpbmc7CivktpkgPiBzd2VsbGluZ1wtb2ZcLXRoZVwtZ3VtczsKK+S2iiA+IHRvXC1ibGVlZFwtYXRcLXRoZVwtbm9zZTsKK+S0nyA+IGFuXC1vbmVcLXllYXJcLW9sZFwtZGVlcjsKK+S0liA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+S0jCA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+S0iyA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+S0iCA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+S0giA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+S0gCA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+SztiA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+SzsyA+IGFcLWtpbmRcLW9mXC1zbWFsbFwtYmlyZDsKK+SzkyA+IGFcLWtpbmRcLW9mXC13YXRlclwtYmlyZDsKK+SzkSA+IGFcLXBoZWFzYW50XC1saWtlXC1iaXJkOwor5LOLID4gYVwtcGhlYXNhbnRcLWxpa2VcLWJpcmQ7Civks4kgPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmQ7Civks4QgPiBhXC1raW5kXC1vZlwtd2F0ZXJcLWJpcmQ7Civks4IgPiBhXC1raW5kXC1vZlwtc21hbGxcLWJpcmQ7CivksrEgPiBhXC1raW5kXC1vZlwtYmxhY2tcLWJpcmQ7CivkspUgPiB0aGVcLXlhbmd0emVcLXBvcnBvaXNlOwor5LGQID4gYVwta2luZFwtb2ZcLWJsYWNrXC1maXNoOwor5LGAID4gYVwta2luZFwtb2ZcLXNtYWxsXC1maXNoOwor5K+6ID4gdGhlXC1oYWlyXC1kaXNoZXZlbGxlZDsKK+SuoSA+IGFcLXN1cGVybmF0dXJhbFwtaG9yc2U7CivkroIgPiBob3JzZVwtd2l0aFwtbG9uZ1wtaGFpcjsKK+StviA+IHRvXC1jYXJyeVwtb25cLXRoZVwtYmFjazsKK+SttyA+IGhvcnNlXC13aXRoXC1sb25nXC1tYW5lOwor5KypID4gdG9cLWFic3RhaW5cLWZyb21cLW1lYXQ7CivkrKMgPiBhXC1zYWNyaWZpY2lhbFwtdmljdGltOwor5KugID4gc2hvcnRcLWhhaXJcLWFuZFwtYmVhcmQ7Civkqb0gPiBhXC1xdWl2ZXJcLW9uZVwtYVwtaG9yc2U7CivkqYIgPiB0b1wtY29tZVwtdG9cLXRoZVwtZnJvbnQ7Civkp5cgPiBtb3VudGFpbnNcLWNvbGxhcHNpbmc7CivkpqYgPiBhXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5KWkID4gdGhlXC1uZWNrXC1vZlwtYVwtcGVzdGxlOwor5KWhID4gdGhpblwtcGxhdGVzXC1vZlwtbWV0YWw7CivkpYYgPiBhXC1tdXNpY2FsXC1pbnN0cnVtZW50Owor5KWFID4gYVwtbXVzaWNhbFwtaW5zdHJ1bWVudDsKK+SlhCA+IHRvXC1wbGFzdGVyXC13aXRoXC1nb2xkOwor5KS4ID4gc2hvcnRcLXNwZWFyXC1vclwtbGFuY2U7CivkoJEgPiBiZXR3ZWVuXC10aGVcLWJ1dHRvY2tzOwor5KCIID4gaGFyZFwtdG9cLW1vdmVcLWZvcndhcmQ7Civkn6kgPiBoYXJkXC1vZlwtd2Fsa1wtZm9yd2FyZDsKK+SemSA+IHRvXC13YWxrXC1pblwtaHVycmllZGx5Owor5J2RID4gYVwtbG9jYWxcLXByb2R1Y2VkXC1waWc7CivknKcgPiB0b1wtaW5zdWx0XC13aXRoXC13b3JkczsKK+SckyA+IGFcLXNsaXBcLW9mXC10aGVcLXRvbmd1ZTsKK+ScgCA+IHRvXC1pbnN1bHRcLXdpdGhcLXdvcmRzOwor5JuMID4gdG9cLXByb3Zva2VcLW9yXC1hcm91c2U7Civkma4gPiBzdHJpcFwtb2ZcLXRoZVwtY2xvdGhlczsKK+SYviA+IGxlZ3NcLW9mXC10aGVcLXRyb3VzZXJzOwor5JWrID4gYVwtb25lXC1sZWdnZWRcLW1vbnN0ZXI7CivklIggPiBsdXNoXC1ncm93dGhcLW9mXC1ncmFzczsKK+SRoCA+IGxvbmdcLWFuZFwtbmFycm93XC1ib2F0Owor5JC4ID4gdGhlXC1iYWNrXC1vZlwtdGhlXC1rbmVlOwor5I+/ID4gdGhlXC1jYWxmXC1vZlwtdGhlXC1sZWdzOwor5I+hID4gdW5jb29rZWRcLW9yXC1yYXdcLW1lYXQ7CivkirMgPiB0b1wtYnJlYWtcLWludG9cLXBpZWNlczsKK+SKsiA+IHRvXC1odWxsXC1yaWNlXC1yb3VnaGx5Owor5IqCID4gcG9vclwtcXVhbGl0eVwtb2ZcLXJpY2U7CivkiZEgPiBibGFja1wtc2tpbm5lZFwtYmFtYm9vOwor5IimID4gYVwtY3VydmVkXC1iYW1ib29cLXdoaXA7CivkiJEgPiB0b29sc1wtdG9cLXVucmVlbFwtc2lsazsKK+SIhSA+IHRvb2xzXC10b1wtdW5yZWVsXC1zaWxrOwor5IiBID4gdG9vbHNcLXVzZWRcLW9uXC1hXC1ib2F0Owor5IeYID4gdG9vbFwtdG9cLWNvbGxlY3RcLXJvcGU7CivkhqMgPiBhYm9kZVwtb2ZcLXRoZVwtZW1wZXJvcjsKK+SGjyA+IGFcLWtpbmRcLW9mXC1yaWNlXC1wbGFudDsKK+SGgyA+IGFcLWtpbmRcLW9mXC1yaWNlXC1wbGFudDsKK+SFriA+IGFcLWZ1bGxcLWhlYWRcLW9mXC1ncmFpbjsKK+SFkyA+IGN1cnZlZFwtcGllY2VcLW9mXC13b29kOwor5IWPID4gcmljZVwtYm9pbGVkXC10b1wtZ3J1ZWw7CivkhYkgPiBhXC1raW5kXC1vZlwtcmljZVwtcGxhbnQ7CivkhL8gPiBhXC1raW5kXC1vZlwtcmljZVwtcGxhbnQ7CivkhK8gPiB0ZW5cLWhhbmRsZVwtb2ZcLWdyYWluczsKK+SEgiA+IHRvXC1wcmF5XC1hbmRcLXRvXC1jdXJzZTsKK+SDsCA+IGJyaWNrXC1vclwtc3RvbmVcLXN0ZXBzOwor5IKSID4gc2hvcnRcLXRvXC1jdXJyeVwtZmF2b3I7CivkgoIgPiB0b1wtZ2F6ZVwtYXRcLWluXC10ZXJyb3I7CivkgawgPiB0b1wtYWN0XC1wcmV0ZW50aW91c2x5Owor5IC3ID4gdG9cLWhhdmVcLXF1aWNrXC1nbGFuY2U7CivkgLIgPiBkaXNlYXNlc1wtaW5cLXRoZVwtZXllczsKK+O/uCA+IHRvXC1jYXN0XC1vZmZcLXRoZVwtc2tpbjsKK+O/niA+IGFuXC1vbGRcLW1hblwtb2ZcLWVpZ2h0eTsKK+O9pCA+IGFcLXNtYWxsXC1wbG90XC1vZlwtbGFuZDsKK+O9oiA+IHRvXC1wbG91Z2hcLXRoZVwtZmllbGRzOwor472VID4gbmV3XC1icmFuY2hlc1wtZ3Jvd2luZzsKK+O9gyA+IGFcLWJpZ1wtcGllY2VcLW9mXC1icmljazsKK+O8oiA+IGJyaWNrc1wtYW5cLWVhdGhlblwtamFyOwor47yJID4gZ3JlZW5cLWNvbG9yZWRcLW1lbG9uczsKK+O7riA+IGJyaWdodFwtYW5kXC1icmlsbGlhbnQ7Civjuq4gPiBmaW5lXC1zdG9uZVwtbGlrZVwtamFkZTsKK+O6qCA+IGZpbmVcLXN0b25lXC1saWtlXC1qYWRlOwor47qCID4gYmlnXC1hbmRcLXN0cm9uZ1wtc2hlZXA7CivjuZggPiBzaGluYm9uZVwtb2ZcLWFcLWNhdHRsZTsKK+O4qiA+IGFuXC1veFwtd2Fsa2luZ1wtc2xvd2x5Owor47eZID4gdG9cLWZyeVwtaW5cLWZhdFwtb3JcLW9pbDsKK+O2lCA+IHN3aWZ0XC1hbmRcLXRvcnJlbnRpYWw7Civjto4gPiBzd2lmdFwtYW5kXC10b3JyZW50aWFsOwor47WhID4gc3dpZnRcLWFuZFwtdG9ycmVudGlhbDsKK+O1niA+IGJlbGxpZWRcLWluXC13YXRlclwtZ2FzOwor47O8ID4gYnViYmxpbmdcLW9mXC1mb3VudGFpbjsKK+OzmiA+IGZsb3dpbmdcLW9mXC10aGVcLXdhdGVyOwor47OUID4gdG9cLXNvYWtcLW9yXC1iZVwtc29ha2VkOwor47OQID4gZmxvd2luZ1wtb2ZcLXRoZVwtd2F0ZXI7CivjsqsgPiBoYWlyXC1rbm90c1wtaW5cLWFcLW1lc3M7CivjsqIgPiBoYWlyXC1rbm90c1wtaW5cLWFcLW1lc3M7CivjsIsgPiBhXC1raW5kXC1vZlwtZnJ1aXRcLXRyZWU7Civjr4wgPiB0b1wtb3BlcmF0ZVwtb3JcLW1hbmFnZTsKK+OtniA+IGFcLWtpbmRcLWluZmVyaW9yXC13b29kOwor462SID4gYVwtZmFybWluZ1wtaW5zdHJ1bWVudDsKK+OqsCA+IHRvXC1hYnN0YWluXC1mcm9tXC1tZWF0Owor46m7ID4gcnVnZ2VkXC1tb3VudGFpblwtcGF0aDsKK+OplCA+IGFcLXRvb2xcLXRvXC1tYWtlXC1hXC1ib3c7Civvp70gPiBmaWxlXC1vZlwtdGVuXC1zb2xkaWVyczsKK+OnuSA+IHRvXC1zdHJpa2VcLXdpdGhcLWZpc3RzOwor46GZID4gY3VydGFpblwtZm9yXC1jYXJyaWFnZTsKK+OglyA+IGRlZXBcLWluXC10aGVcLW1vdW50YWluOwor456lID4gZGVlcFwtaW5cLXRoZVwtbW91bnRhaW47Civjnp8gPiBzYXZpbmdzXC1hbmRcLXJlc2VydmVzOwor45ySID4gbWF0ZXJuYWxcLWdyYW5kbW90aGVyOwor45mjID4gdG9cLXBpbGVcLWFcLXNhbmRcLWhpbGxzOwor45mRID4gdGhlXC1jYW5vcHlcLW9mXC1oZWF2ZW47CivjmI4gPiB0aGVcLXJvYXJzXC1vZlwtYVwtdGlnZXI7CivjmIUgPiB0b1wtaG9sZFwtaW5cLXRoZVwtbW91dGg7CivjlaEgPiB0aGVcLWJlZFwtb2ZcLWFcLXRvcnJlbnQ7CivjlYwgPiB0b1wtcmFpc2VcLXRoZVwtY3VydGFpbjsKK+OUiyA+IGN1dFwtaW50b1wtdGhpblwtc2xpY2VzOwor45KFID4gdG9cLXVuYmluZFwtdGhlXC1jb2xsYXI7CivjkYkgPiBjYW5ub3RcLXN0cmFpZ2h0ZW5cLXVwOwor5bm+ID4gaG93XC1tYW55XD9cLWhvd1wtbXVjaFw/Owor5aWPID4gbWVtb3JpYWxpemVcLWVtcGVyb3I7CivmgqggPiBob25vcmlmaWNcLWZvclwtJyd5b3UnJzsKK+WQjyA+IGdvdmVybm1lbnRcLW9mZmljaWFsOwor5YWAID4gdG9cLWN1dFwtb2ZmXC10aGVcLWZlZXQ7Civog7QgPiB0aGVcLWxhcmdlXC1pbnRlc3RpbmU7Civnp6YgPiBmZXVkYWxcLXN0YXRlXC1vZlwtcWluOwor5qGBID4gY3Jvc3NcLWJlYW1zXC1vZlwtcm9vZjsKK+iOjiA+IGtpbmRcLW9mXC1zZWRnZVwtZ3Jhc3M7CivolpsgPiBraW5kXC1vZlwtbWFyc2hcLWdyYXNzOwor57WjID4gdG9cLWJhc3RlXC1mb3JcLXNld2luZzsKK+aCliA+IGJlXC1jb250cmFkaWN0b3J5XC10bzsKK+iKkiA+IG1pc2NhbnRodXNcLXNpbmVuc2lzOwor5Zi2ID4gbmVpZ2hpbmdcLW9mXC1hXC1ob3JzZTsKK+WPvSA+IHNpZ2hcLWluXC1kaXNhcHByb3ZhbDsKK+WOpSA+IHBlcnNvbmFsXC1wcm9ub3VuXC1oZTsKK+WcrSA+IGphZGVcLXBvaW50ZWRcLWF0XC10b3A7CivlvpggPiB3YWxrXC1iYWNrXC1hbmRcLWZvcnRoOwor5pmkID4gaGF2ZVwtaW50ZXJ2aWV3XC13aXRoOwor6Ii3ID4gdGhlXC1zaWRlc1wtb2ZcLWFcLWJvYXQ7CivpgqwgPiB2YXJpb3VzXC1wbGFjZVwtbmFtZXM7CivopJAgPiBjb2Fyc2VcLXdvb2xlblwtY2xvdGg7CivppoggPiBvZmZlclwtZm9vZFwtc3VwZXJpb3I7CivllKcgPiBjaGlycGluZ1wtb2ZcLWluc2VjdHM7CivlkpQgPiB1c2VkXC1pblwtdHJhbnNsYXRpb247CivngbggPiBjYXV0ZXJpemVcLXdpdGhcLW1veGE7CivpqbcgPiB0ZWFtXC1vZlwtZm91clwtaG9yc2VzOwor57K8ID4gY2xlYXJcLVwoYXNcLW9mXC13YXRlclwpOwor576aID4gc3BlY2llc1wtb2ZcLWFudGVsb3BlOwor5ZGTID4gdGFsa1wtaW5cLW9uZScnc1wtc2xlZXA7Civnr5kgPiBwb2xlXC11c2VkXC1wdW50XC1ib2F0Owor5rmNID4gcmFwaWRcLXdhdGVyXC1jdXJyZW50Owor6ISNID4gbWluY2VkXC1tZWF0XC1vclwtZmlzaDsKK+mPliA+IHRvXC1maWdodFwtdG9cLXRoZVwtZW5kOwor6IK9ID4gYVwtY2hlbWljYWxcLWNvbXBvdW5kOwor5Y2fID4gYVwtY2hlbWljYWxcLWNvbXBvdW5kOwor6YquID4gYmVsbHNcLWh1bmdcLW9uXC1ob3JzZTsKK+essyA+IGFcLXJlZWRcLWxlYWZcLXdoaXN0bGU7Civolo8gPiBzZWVkXC1vZlwtam9iJydzXC10ZWFyczsKK+aCnSA+IHRvXC1sYXVnaFwtYXRcLXRvXC1waXR5Owor6LGHID4gYVwtc21hbGxcLWtpZG5leVwtYmVhbjsKK+ahiSA+IGV1Y2FseXB0dXNcLWdsb2J1bHVzOwor6LmBID4gdG9cLXdhbGtcLXdpdGhcLWFcLWxpbXA7CivohYggPiBhblwtb3JnYW5pY1wtY29tcG91bmQ7Civonp8gPiBraW5kXC1vZlwtY2F0ZXJwaWxsYXI7Civms64gPiB6aG91XC1keW5hc3R5XC1zY2hvb2w7CivpsrMgPiB0aGVcLXNpbHZlcnlcLXBvbWZyZXQ7CivpnKogPiBsb25nXC1hbmRcLWhlYXZ5XC1yYWluOwor5p6YID4gdGhlXC1oYW5kbGVcLW9mXC10b29sczsKK+a7uSA+IHRoZVwtYmFua1wtb2ZcLWFcLXN0ZWFtOwor5b2zID4gc3RlcFwtd2l0aFwtbGVmdFwtZm9vdDsKK+S6jSA+IHRvXC10YWtlXC1zbWFsbFwtc3RlcHM7CivnoJggPiBhXC1raW5kXC1vZlwtZmFybVwtdG9vbDsKK+agjiA+IGNoZXN0bnV0XC1sZWF2ZWRcLW9hazsKK+m5hyA+IHRoZVwtc2lsdmVyXC1waGVhc2FudDsKK+iLjCA+IGF2ZXJyaG9yYVwtY2FyYW1ib2xhOwor6YObID4gb3V0ZXJcLXdhbGxzXC1vZlwtY2l0eTsKK+mGoiA+IG1pbmNlZFwtcGlja2xlZFwtbWVhdDsKK+ecmiA+IGRpc2Vhc2VcLW9mXC10aGVcLWV5ZXM7CivogLEgPiBhXC1raW5kXC1vZlwtZmFybVwtdG9vbDsKK+ijiSA+IHNcLXNlYW1cLWluXC1hXC1nYXJtZW50Owor5bSmID4gYVwtbW91bnRhaW5cLWluXC1rYW5zdTsKK+WFlSA+IGFcLWZlbWFsZVwtcmhpbm9jZXJvczsKK+m4kiA+IHRoZVwtZWFzdGVyblwtamFja2RhdzsKK+m3syA+IHRoZVwtc2lsdmVyXC1waGVhc2FudDsKK+m2siA+IHNpYmVyaWFuXC1mbHljYXRjaGVyOwor6bC2ID4ga29ub3NpcnVzXC1wdW5jdGF0dXM7Civpr6cgPiB0aGVcLXNpbHZlcnlcLXBvbWZyZXQ7Civpr6UgPiBwb21hdG9tdXNcLXNhbHRhdHJpeDsKK+mvlSA+IGNvcnlwaGFlbmFcLWhpcHB1cnVzOwor6a62ID4gc2ViYXN0b2Rlc1wtZ3VudGhlcmk7Civpp58gPiB0ZWFtXC1vZlwtZm91clwtaG9yc2VzOwor6aWLID4gb2ZmZXJcLWZvb2RcLXN1cGVyaW9yOwor6aOCID4gd2luZFwtaW5cLWhpZ2hcLXBsYWNlczsKK+miviA+IGJsb3dpbmdcLW9mXC10aGVcLXdpbmQ7CivpoJYgPiB6aG91XC1keW5hc3R5XC1zY2hvb2w7CivpoI0gPiB0b1wtcmFpc2VcLW9uZScnc1wtaGVhZDsKK+mfmCA+IGFyY2hlcicnc1wtdGh1bWJcLXJpbmc7CivpnqwgPiBhXC1xdWl2ZXJcLW9uXC1hXC1ob3JzZTsKK+mctiA+IGRvd25wb3VyaW5nXC1vZlwtcmFpbjsKK+mcriA+IGRlbnNlbmVzc1wtb2ZcLWNsb3VkczsKK+mRviA+IGJlbGxzXC1odW5nXC1vblwtaG9yc2U7CivpkbQgPiB0b1wtZW5ncmF2ZVwtb3JcLWNhcnZlOwor6Y6EID4gaXJpZGl1bVwtZWluc3RlaW5pdW07Civpi5EgPiB0b1wtZW5ncmF2ZVwtb3JcLWNhcnZlOwor6YiDID4gYW5jaWVudFwtd2luZVwtdmVzc2VsOwor6YWnID4gdG9cLXBsZWRnZVwtd2l0aFwtd2luZTsKK+mElCA+IHZhcmlvdXNcLXBsYWNlXC1uYW1lczsKK+iltCA+IGFcLW9uZVwtcGllY2VcLWdhcm1lbnQ7CivopIMgPiBhXC1zZWFtXC1pblwtYVwtZ2FybWVudDsKK+igsCA+IGNlcmFtYnl4XC1ydWdpY29sbGlzOwor6J+oID4gdGhlXC1zaWJlcmlhblwtamVyYm9hOwor6J2dID4gdGhlXC1sYXJ2YVwtb2ZcLWxvY3VzdDsKK+iUiiA+IG5hc3R1cnRpdW1cLW1vbnRhbnVtOwor6JOHID4gZm9sbGljbGVzXC1vZlwtcGxhbnRzOwor6JKIID4gYW5cLW9yZ2FuaWNcLWNvbXBvdW5kOwor6JGHID4gZWxzaG9sdHJpYVwtcGFsdHJpbmk7CivokIcgPiBhdmVycmhvcmFcLWNhcmFtYm9sYTsKK+iOlSA+IG55bXBob2lkZXNcLXBlbHRhdHVtOwor6IyzID4gY3lwZXJ1c1wtbWFsYWNjZW5zaXM7CivojJogPiBhblwtb3JnYW5pY1wtY29tcG91bmQ7Civoi7MgPiBwZXRhc2l0ZXNcLWphcG9uaWN1czsKK+iLiiA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+iJqyA+IGJvd1wtb3JcLXByb3dcLW9mXC1ib2F0Owor6Ii7ID4gYm93XC1vclwtcHJvd1wtb2ZcLWJvYXQ7CivoiK4gPiBib3dcLW9yXC1wcm93XC1vZlwtYm9hdDsKK+iGviA+IG1pbmNlZFwtbWVhdFwtb3JcLWZpc2g7CivohZkgPiBhblwtb3JnYW5pY1wtY29tcG91bmQ7CivohI4gPiBhblwtb3JnYW5pY1wtY29tcG91bmQ7Civog6kgPiBhblwtb3JnYW5pY1wtY29tcG91bmQ7CivogrwgPiBhblwtb3JnYW5pY1wtY29tcG91bmQ7Civogp8gPiBhblwtb3JnYW5pY1wtY29tcG91bmQ7CivogKIgPiBhXC1raW5kXC1vZlwtZmFybVwtdG9vbDsKK+e+oiA+IGZpbmVcLXdvb2xlblwtZmFicmljczsKK+e+kSA+IGFcLWd1aWRlXC10b1wtZ29vZG5lc3M7CivnubIgPiB0b1wtd29ya1wtYXNcLWFcLXRhaWxvcjsKK+e2gCA+IGFcLWtpbmRcLW9mXC1zYWNrY2xvdGg7Civnq5EgPiBiZVwtdmFzdFwtYW5kXC1lbmRsZXNzOwor56aTID4gdG9cLWRyaXZlXC1vdXRcLWRlbW9uczsKK+elkCA+IGRpdmluZVwtaW50ZXJ2ZW50aW9uOwor56CcID4gYW5cLW9yZ2FuaWNcLWNvbXBvdW5kOwor55+UID4gYnJpbGxpYW50XC1cKG9mXC1leWVzXCk7CivnnpUgPiBjYXRhcmFjdFwtaW5cLXRoZVwtZXllOwor5qufID4gY2hlc3RudXRcLWxlYXZlZFwtb2FrOwor5qqqID4gY2hlc3RudXRcLWxlYXZlZFwtb2FrOwor5qGqID4gbXl0aGljYWxcLWdpYW50XC10cmVlOwor5p+uID4gZmxhdFwtcGllY2VzXC1vZlwtd29vZDsKK+aatSA+IGRyeVwtYnlcLWV4cG9zaW5nXC1zdW47Civmlp0gPiBzbWFsbFwtamFkZVwtd2luZVwtY3VwOwor5pWEID4gdG9cLXB1dFwtZm9ydGhcLWVmZm9ydDsKK+aSjSA+IHRvXC1ob2xkXC1pblwtdGhlXC1oYW5kOwor5o+dID4gdG9cLWhvbGRcLWluXC10aGVcLWhhbmQ7Civmj5UgPiByb2xsXC11cFwtdGhlXC1zbGVldmVzOwor5bCXID4geW91bmdlclwtb2ZcLWJyb3RoZXJzOwor5aOQID4gdGhlXC1pbXBlcmlhbFwtc2lnbmV0Owor5Z6VID4gdXNlZFwtaW5cLXBsYWNlXC1uYW1lczsKK+WcmyA+IHVzZWRcLWluXC1wbGFjZVwtbmFtZXM7Civlm4ggPiB0YWxrXC1pblwtb25lJydzXC1zbGVlcDsKK+WYsCA+IHNpZ2hcLWluXC1kaXNhcHByb3ZhbDsKK+WWniA+IGNoaXJwaW5nXC1vZlwtaW5zZWN0czsKK+WUmiA+IHZvbWl0aW5nXC1vZlwtYW5pbWFsczsKK+WTjCA+IHVzZWRcLWluXC10cmFuc2xhdGlvbjsKK+WRuiA+IHZvaWNlXC1vZlwtYW5nZXJcLXZhc3Q7CivlkJYgPiB1c2VkXC1pblwtdHJhbnNsYXRpb247CivlgZggPiBhbmNpZW50XC1mYW1pbHlcLW5hbWU7Civktq8gPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+S2kiA+IG91dHN0YW5kaW5nXC1hYmlsaXR5Owor5LaMID4gYVwtcHVzdHVsZVwtb3JcLXBpbXBsZTsKK+S2hCA+IHN0cmlwZWRcLW1vdHRsZWRcLXJhdDsKK+S1sSA+IHJlZFwtYW5kXC1ibGFja1wtY29sb3I7Civkta4gPiByZWRcLWFuZFwtYmxhY2tcLWNvbG9yOwor5LWUID4gdG9cLXR1cm5cLW9uXC10aGVcLWhlZWw7CivktKogPiBhXC1mYWJ1bG91c1wtY3JlYXR1cmU7CivktKAgPiBhXC15b3VuZ1wtdGFpbGVkXC1kZWVyOwor5LGnID4gYVwta2luZFwtb2ZcLWZpc2hcLWVlbHM7CivksJwgPiBhXC1sYXJnZVwtZWFydGhlblwtcG90Owor5LCbID4gYVwtbGFyZ2VcLWVhcnRoZW5cLXBvdDsKK+SutyA+IG1vdmVtZW50XC1vZlwtYVwtaG9yc2U7CivkroMgPiB0b1wtZ29cLWJlZm9yZVwtb3RoZXJzOwor5K25ID4gbW92ZW1lbnRcLW9mXC1hXC1ob3JzZTsKK+SrsSA+IGFcLXBhcnRcLW9mXC10aGVcLXNrdWxsOwor5KupID4gdG9cLXNoYWtlXC1vbmUnJ3NcLWhlYWQ7Civkq4UgPiB0b1wtc2hha2VcLW9uZScnc1wtaGVhZDsKK+SqvyA+IHRoZVwtdG9wXC1vZlwtdGhlXC1oZWFkOwor5Kq9ID4gaG9hcnlcLWhhaXJlZFwtcGVyc29uOwor5Km3ID4gdGhlXC1zaWRlc1wtb2ZcLWFcLXNob2U7CivkqacgPiB0b1wtdGllXC11cFwtaHVycmllZGx5Owor5KmMID4gdG9cLWhhdmVcLWFcLXdvcm5cLWxvb2s7Civkp5QgPiB0b1wtbWVldFwtYXRcLXRoZVwtYmFuazsKK+SmmSA+IGFcLWdvdmVybm1lbnRcLWFnZW5jeTsKK+SltCA+IHRvXC1lbmdyYXZlXC1vclwtY2FydmU7CivkpacgPiBhXC1maW5lXC1raW5kXC1vZlwtamFkZTsKK+SkhiA+IGFcLWtpbmRcLW9mXC1yaWNlXC13aW5lOwor5KSBID4gY29va2VkXC1vclwtd2VsbFwtZG9uZTsKK+SjrSA+IGFuXC1vcmdhbmljXC1jb21wb3VuZDsKK+SiiyA+IGFcLW1hcnNoYWxcLW9yXC1oZXJhbGQ7CivkoIogPiB0b1wtY3V0XC1vZmZcLXRoZVwtZmVldDsKK+SfoyA+IGFuXC1hbmltYWxcLWluXC1sZWdlbmQ7CivknrMgPiB0b1wtc3R1bWJsZVwtYW5kXC1mYWxsOwor5J2gID4gYVwta2luZFwtb2ZcLXdpbGRcLWJvYXI7CivknLYgPiBhXC1zbWFsbFwta2lkbmV5XC1iZWFuOwor5JyBID4gdG9cLWFidXNlXC1hbmRcLWluc3VsdDsKK+SZkiA+IHRvXC1zdG9yZVwtb3JcLXNhdmVcLXVwOwor5JmPID4gc2hvcnRcLXNsZWV2ZXNcLXNoaXJ0Owor5JmBID4gY2hpbGRyZW4nJ3NcLWdhcm1lbnRzOwor5JiqID4gY2xvdGhlc1wtd2l0aG91dFwtaGVtOwor5JaiID4gZmlyc3RcLWJvcm5cLXNpbGt3b3JtOwor5JaWID4gdG9cLXNob3dcLWZhbWlsaWFyaXR5Owor5JW+ID4gYVwta2luZFwtb2ZcLXZlZ2V0YWJsZTsKK+SVnyA+IGFcLWtpbmRcLW9mXC12ZWdldGFibGU7CivklZggPiBhXC12YXJpZXR5XC1vZlwtZnVuZ3VzOwor5JWDID4gdGhlXC1zaGFkZVwtb2ZcLWFcLXRyZWU7CivklJcgPiBhXC1raW5kXC1vZlwtdmVnZXRhYmxlOwor5JO3ID4gbnltcGhvaWRlc1wtcGVsdGFsdW07Civkk5ogPiBhXC1raW5kXC1vZlwtdmVnZXRhYmxlOwor5JONID4gY3J1Y2lmZXJvdXNcLWZsb3dlcnM7CivkkqggPiBhXC1raW5kXC1vZlwtdmVnZXRhYmxlOwor5JKIID4gc2lkZVwtYmVhbVwtb2ZcLWFcLWJvYXQ7CivkkoAgPiBzaG9ydFwtYW5kXC1kZWVwXC1ib2F0Owor5JGHID4gbWVkaWNpbmVcLWZvclwtYVwtc29yZTsKK+SQrSA+IGFcLWRpc2NoYXJnZVwtb3JcLWZsdXg7Civkj7kgPiB0b1wtd2F0Y2hcLXN0ZWFsdGhpbHk7Civkj7cgPiBtZWRpY2luZVwtZm9yXC1hXC1zb3JlOwor5I+oID4gdG9cLXN3ZWxsXC11cFwtZ3JlYXRseTsKK+SPhiA+IGJ1enppbmdcLWluXC10aGVcLWVhcnM7Civkjr8gPiBidXp6aW5nXC1pblwtdGhlXC1lYXJzOwor5I23ID4gdG9cLWNoYXNlXC1lYWNoXC1vdGhlcjsKK+SNgCA+IGNsb3RoZXNcLXdpdGhvdXRcLWhlbTsKK+SMjiA+IHRvXC1iYXN0ZVwtZm9yXC1zZXdpbmc7Civki7kgPiBicmVhZHRoXC1vZlwtbWF0ZXJpYWw7Civki7AgPiB0b1wtYmluZFwtb3JcLXJlc3RyYWluOwor5IqZID4gY29va2VkXC1vclwtd2VsbFwtZG9uZTsKK+SHvSA+IGFcLWNvYXJzZVwtYmFtYm9vXC1tYXQ7Civkhq8gPiBhXC1zaG9ydFwtc2hhcGVkXC1mYWNlOwor5IWvID4gYVwtdmFyaWV0eVwtb2ZcLW1pbGxldDsKK+SFnyA+IHZhcmlldGllc1wtb2ZcLW1pbGxldDsKK+SFlSA+IGFcLXZhcmlldHlcLW9mXC1taWxsZXQ7CivkhZIgPiBhXC1zaGFycFwtZWRnZWRcLWdyYXNzOwor5IGLID4gd2l0aFwtb25lXC1leWVcLWNsb3NlZDsKK+SBgyA+IHRvXC1sb29rXC1hdHRlbnRpdmVseTsKK+SApCA+IGluc2lnaHRcLW9mXC1qZWFsb3VzeTsKK+SAoyA+IHRvXC1sb29rXC1zdGVhZGlseVwtYXQ7Civjv5MgPiBkaXNlYXNlXC1vZlwtdGhlXC1ob29mOwor4767ID4gbm90XC1hbnlcLXByb2dyZXNzaXZlOwor4762ID4gZGlzZWFzZVwtb2ZcLXRoZVwta25lZTsKK+O+oiA+IGFcLW1hbGlnbmFudFwtZGlzZWFzZTsKK+O9rSA+IHZhY2FudFwtbG90XC1vclwtc3BhY2U7CivjvYwgPiB0aGVcLXJpZGdlXC1vZlwtYVwtcm9vZjsKK+O9giA+IGFcLWNyYWNrZWRcLWNvbnRhaW5lcjsKK+O9gSA+IGFcLWxhcmdlXC1lYXJ0aGVuXC1wb3Q7CivjvJkgPiBicmlja3dvcmtcLW9mXC1hXC13ZWxsOwor47ySID4gYVwta2luZFwtb2ZcLWJpZ1wtbWVsb247CivjuLYgPiBjb2xvclwtb2ZcLXRoZVwtb3h0YWlsOwor47i1ID4gdGhlXC1sb3dpbmdcLW9mXC1hblwtb3g7CivjuKUgPiBob3VzZWhvbGRcLXJlZ2lzdGVyczsKK+O4oiA+IGNyb3NzXC1iZWFtXC1vZlwtYVwtYmVkOwor47ieID4gYmxvY2tzXC1mb3JcLXByaW50aW5nOwor47iTID4gdG9cLWhhdmVcLWRpc2FwcGVhcmVkOwor47iPID4gY29va2VkXC1vclwtd2VsbFwtZG9uZTsKK+O4gCA+IGJsYWNrZW5lZFwtd2l0aFwtc29vdDsKK+O3pCA+IHJvc3lcLWNsb3Vkc1wtb2ZcLWRhd247CivjsocgPiB0aGVcLXJhdHRsZVwtb2ZcLWRydW1zOwor47G+ID4gYVwta2luZFwtb2ZcLW9ybmFtZW50czsKK+OxvCA+IGFcLWtpbmRcLW9mXC1vcm5hbWVudHM7CivjsbkgPiB0b1wtZGllXC1mcm9tXC1kaXNlYXNlOwor47GrID4gZGVzdHJveWVkXC1vclwtcnVpbmVkOwor47GqID4gc3R1cGlkXC1hbmRcLWNvbmZ1c2VkOwor47GKID4gYXN0aG1hdGljXC1icmVhdGhpbmc7CivjsYkgPiBtb3ZpbmdcLW9mXC10aGVcLW1vdXRoOwor47C0ID4gdG9cLWdyYXRlXC1vblwtdGhlXC1lYXI7CivjsLAgPiBhc3RobWF0aWNcLWJyZWF0aGluZzsKK+OwryA+IHRoZVwtd2F5XC1vZlwtc3BlYWtpbmc7Civjr4EgPiBob3VzZWhvbGRcLXJlZ2lzdGVyczsKK+OrryA+IGluXC1jb250cmF2ZW50aW9uXC1vZjsKK+OppiA+IHRvXC1sZWFkXC1ieVwtdGhlXC1oYW5kOwor46mYID4gdG9cLW1vb3JcLXRvXC10aGVcLWJhbms7CivjqZcgPiB0b1wtbGVhZFwtYnlcLXRoZVwtaGFuZDsKK+OonSA+IHRoZVwtdmVyeVwtaGFyZFwtc3R1ZmY7CivjqIAgPiB0b1wtaG9sZFwtaW5cLXRoZVwtaGFuZDsKK++nniA+IGdvdmVybm1lbnRcLW9mZmljaWFsOwor46eFID4gdG9cLXR1cm5cLXVwc2lkZVwtZG93bjsKK++mryA+IHNwZWNpZXNcLW9mXC1hbnRlbG9wZTsKK+OmkyA+IGRpZmZpY3VsdFwtaW50ZW50aW9uOwor46WdID4gdG9cLWFyb3VzZVwtdG9cLWFjdGlvbjsKK+OiiiA+IHRvXC1zZXRcLXNpZGVcLWJ5XC1zaWRlOwor46KCID4gb2ZcLWhpZ2hseVwtc3RyYXRlZ2ljOwor45+xID4gc2hhcGVcLW9mXC1hXC1tb3VudGFpbjsKK+OfkyA+IGxvZnR5XC1hbmRcLWRhbmdlcm91czsKK+OfkiA+IG1vdW50YWluc1wtYWRqb2luaW5nOwor452fID4gaW5cLWNvbnRyYXZlbnRpb25cLW9mOwor45yxID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjnKYgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OcoSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45ygID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjnJkgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OckCA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45yNID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjnIsgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OcgiA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45u4ID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm7cgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObtSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45utID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm6wgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObqyA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45ueID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm50gPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObnCA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45uZID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm5ggPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObliA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45uTID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjm48gPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+ObhSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45uEID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7Civjmr0gPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OauCA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45q1ID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjmrEgPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OarSA+IHVzZWRcLWluXC1naXJsJydzXC1uYW1lOwor45qrID4gdXNlZFwtaW5cLWdpcmwnJ3NcLW5hbWU7CivjmqggPiB1c2VkXC1pblwtZ2lybCcnc1wtbmFtZTsKK+OYqyA+IHRvXC1mYWxsXC1pbnRvXC1hXC13ZWxsOwor45e2ID4gdG9cLWV4cGVsXC10aGVcLWJyZWF0aDsKK+OWqiA+IHNvdW5kXC1vZlwtc3VycHJpc2luZzsKK+OUuSA+IGFcLXN1cnBsdXNcLW9yXC1leGNlc3M7CivjlIcgPiBhXC1raW5kXC1vZlwtZmFybVwtdG9vbDsKK+OTvSA+IGFcLWtpbmRcLW9mXC1mYXJtXC10b29sOwor45O3ID4gdG9cLWN1dFwtb2ZmXC10aGVcLW5vc2U7CivjkpQgPiB0b1wtc2hha2VcLW9uZScnc1wtaGVhZDsKK+OShCA+IGJyaXR0bGVcLWFuZFwtZnJpYWJsZTsKK+OSgyA+IGNhcGl0YWxcLWZvcm1cLW9mXC10d287CivjkZsgPiB0b1wtc2hha2VcLW9uZScnc1wtaGVhZDsKK+eOliA+IGJsYWNrXC1jb2xvcmVkXC1qYWRlOwor5ZOqID4gd2hpY2hcP1wtd2hlcmVcP1wtaG93XD87CivnibIgPiBzYWNyaWZpY2lhbFwtYW5pbWFsOwor5ryiID4gdGhlXC1jaGluZXNlXC1wZW9wbGU7CivmvJUgPiB0cmFuc3BvcnRcLWJ5XC13YXRlcjsKK+mYtCA+ICcnZmVtYWxlJydcLXByaW5jaXBsZTsKK+S7mSA+IHRhb2lzdFwtc3VwZXJcLWJlaW5nOwor6am7ID4gdG9cLWJlXC1zdGF0aW9uZWRcLWF0Owor6aeQID4gdG9cLWJlXC1zdGF0aW9uZWRcLWF0Owor6IWuID4gbG93ZXJcLXBhcnRcLW9mXC1mYWNlOwor5ouSID4gd2FyZFwtb2ZmXC13aXRoXC1oYW5kOwor5qGCID4gY2Fzc2lhXC1vclwtY2lubmFtb247CivmnLUgPiBjbHVzdGVyXC1vZlwtZmxvd2VyczsKK+abuSA+IG1pbmlzdHJ5XC1vZmZpY2lhbHM7CivnvY4gPiBhblwtZWFydGhlbndhcmVcLWphcjsKK+mZsCA+ICcnZmVtYWxlJydcLXByaW5jaXBsZTsKK+S4uCA+IHNtYWxsXC1yb3VuZFwtb2JqZWN0Owor55+pID4gY2FycGVudGVyJydzXC1zcXVhcmU7CivohYogPiB5ZWFyXC1lbmRcLXNhY3JpZmljZTsKK+m+nyA+IHR1cnRsZVwtb3JcLXRvcnRvaXNlOwor6YK4ID4gb2ZmaWNpYWxcLXJlc2lkZW5jZTsKK+S+gyA+IHVwcmlnaHRcLWFuZFwtc3Ryb25nOwor6YKCID4gdW5leHBlY3RlZFwtbWVldGluZzsKK+aAryA+IGxhY2tpbmdcLWluXC1jb3VyYWdlOwor55S4ID4gc3VidXJic1wtb2ZcLWNhcGl0YWw7CivmjZ4gPiBzY29vcFwtb3V0XC1vZlwtd2F0ZXI7CivmiZsgPiBjYXJyeVwtb25cLXNob3VsZGVyczsKK+iZlCA+IGFjdFwtd2l0aFwtcmV2ZXJlbmNlOwor6ZyWID4gbG9uZ1wtc3BlbGxcLW9mXC1yYWluOwor6Z+nID4gc3Ryb25nXC1hbmRcLXBsaWFibGU7Civnkb4gPiBicmlsbGlhbmNlXC1vZlwtZ2VtczsKK+ahlCA+IGNoaW5lc2VcLWJlbGxmbG93ZXI7CivpuLMgPiBtYWxlXC1tYW5kYXJpblwtZHVjazsKK+mSlyA+IG9ybmFtZW50YWxcLWhhaXJwaW47Civlt4UgPiBzdW1taXRcLW9mXC1tb3VudGFpbjsKK+aoqCA+IG9zbWFudGh1c1wtZnJhZ3JhbnM7CivooKEgPiB3b29kXC1ib3JpbmdcLWluc2VjdDsKK+i5giA+IHRyYW1wbGVcLXVuZGVyXC1mb290Owor6aqlID4gdGhvcm91Z2hicmVkXC1ob3JzZTsKK+WUgSA+IGV4cHJlc3NcLWNvbmRvbGVuY2U7CivpqoUgPiBhblwtZXhjZWxsZW50XC1ob3JzZTsKK+eiiSA+IHJvb21cLW1hZGVcLW9mXC1zdG9uZTsKK+eWnyA+IGludGVybWl0dGVudFwtZmV2ZXI7CivnuqMgPiBuYW1lXC1vZlwtYW5cLWVtcGVyb3I7Civno6wgPiBtdXNpY2FsXC1pbnN0cnVtZW50Owor54i/ID4gaGFsZlwtb2ZcLXRyZWVcLXRydW5rOwor5peOID4gZmx1dHRlcmluZ1wtb2ZcLWZsYWc7CivlpJQgPiBvbmVcLWxlZ2dlZFwtbW9uc3RlcjsKK+aujSA+IHRvXC1zdGFydmVcLXRvXC1kZWF0aDsKK+mqiiA+IGFcLXB1cmVcLWJsYWNrXC1ob3JzZTsKK+a5jiA+IGZsdXNoZWRcLXdpdGhcLWRyaW5rOwor5Za1ID4gdGhlXC1tZXdcLW9mXC10aGVcLWNhdDsKK+eEmSA+IGRyeVwtb3Zlclwtc2xvd1wtZmlyZTsKK+e7viA+IHRvXC1zdHJpbmdcLXRvZ2V0aGVyOwor55ymID4gY29ybmVyXC1vZlwtdGhlXC1leWVzOwor55GBID4gZmluZVwtcGllY2VcLW9mXC1qYWRlOwor5qaYID4gY2FycGVudGVyJydzXC1zcXVhcmU7CivnsrMgPiBub25cLWdsdXRpbm91c1wtcmljZTsKK+mkriA+IGFcLWxlZ2VuZGFyeVwtYW5pbWFsOwor5rGKID4gYVwtYnJhbmNoaW5nXC1zdHJlYW07CivnvIMgPiBsaWdodFwteWVsbG93XC1jb2xvcjsKK+aqqSA+IHRoZVwtYm9sZVwtb2ZcLWFcLXRyZWU7CivlpYEgPiBsYWR5JydzXC12YW5pdHlcLWNhc2U7CivmpbggPiBtYWxsb3R1c1wtamFwb25pY3VzOwor6aq6ID4gdGlwXC1vZlwtYVwtbG9uZ1wtYm9uZTsKK+iXvyA+IGxvcGhhbnRodXNcLXJ1Z29zdXM7CivmqL4gPiB0aGVcLXNoYWRlXC1vZlwtdHJlZXM7CivphaQgPiB0b1wtZGVhbFwtaW5cLXNwaXJpdHM7Civoh4wgPiBkcm9wc2ljYWxcLXN3ZWxsaW5nOwor6LerID4gc291bmRcLW9mXC1mb290c3RlcHM7Civntq4gPiBlbWJyb2lkZXJlZFwtYmFubmVyOwor6KezID4gYW5cLWFuY2llbnRcLW1lYXN1cmU7CivmnYwgPiB0aGVcLXN0dW1wXC1mXC1hXC10cmVlOwor5bWrID4gYVwtaGlsbFwtaW5cLXNoYW50dW5nOwor5pOXID4gdG9cLWJlYXRcLXRoZVwtYnJlYXN0Owor6ISUID4gc21hbGxcLWx1bXBcLW9mXC1tZWF0Owor6YaFID4gdW5zdHJhaW5lZFwtc3Bpcml0czsKK+e+sCA+IGNhcmJvbnlsXC1cKHJhZGljYWxcKTsKK+ibuCA+IGxvbmdcLWxlZ2dlZFwtc3BpZGVyOwor556AID4gdG9cLWxvb2tcLWF0XC1jbG9zZWx5Owor5q6zID4gbmFtZVwtb2ZcLW9sZFwtd2VhcG9uOwor5bSeID4gbW91bnRhaW5cLWluXC1zaGFueGk7CivlnrIgPiBoaWdoXC1hbmRcLWRyeVwtcGxhY2U7Civomb8gPiBhXC1raW5kXC1vZlwtc2NvcnBpb247CivnlrMgPiBjaGlsZGhvb2RcLWRpc2Vhc2VzOwor572+ID4gYVwtbGFyZ2VcLXNxdWFyZVwtbmV0Owor542sID4gYVwtZmFidWxvdXNcLW1vbnN0ZXI7CivpvpwgPiB0dXJ0bGVcLW9yXC10b3J0b2lzZTsKK+m+liA+IGZsaWdodFwtb2ZcLWFcLWRyYWdvbjsKK+m4nCA+IGFcLXNwZWNpZXNcLW9mXC1teW5haDsKK+m3vSA+IG9yaWVudGFsXC1idWxsZmluY2g7CivptJsgPiBtYWxlXC1tYW5kYXJpblwtZHVjazsKK+m0lyA+IGFsY2Vkb1wtYmVuZ2FsZW5zaXM7CivpsbUgPiBoeXBvcmhhbXB1c1wtc2FqdXJpOwor6aygID4gdG9cLW1ha2VcLWFcLXRvcFwta25vdDsKK+mpqiA+IGFcLXB1cmVcLWJsYWNrXC1ob3JzZTsKK+mppSA+IHRob3JvdWdoYnJlZFwtaG9yc2U7CivpqYogPiBhblwtZXhjZWxsZW50XC1ob3JzZTsKK+mkvCA+IHNhY3JpZmljaWFsXC12aWN0aW07CivpoYsgPiBsb3dlclwtcGFydFwtb2ZcLWZhY2U7CivpoJQgPiBnb29kXC1hbmRcLWJlYXV0aWZ1bDsKK+mfjCA+IHN0cm9uZ1wtYW5kXC1wbGlhYmxlOwor6Z2xID4gc3Ryb25nXC1hbmRcLXBsaWFibGU7Civpna0gPiBzdHJvbmdcLWFuZFwtcGxpYWJsZTsKK+mdqyA+IHN0cm9uZ1wtYW5kXC1wbGlhYmxlOwor6Ye1ID4gb3JuYW1lbnRhbFwtaGFpcnBpbjsKK+mHkiA+IGthbmd4aVwtcmFkaWNhbFwtMTY3Owor6YSuID4gYW5jaWVudFwtcGxhY2VcLW5hbWU7CivovZkgPiByaW5nc1wtb25cLXRoZVwteW9rZXM7Civou7AgPiBhXC1yb3dcLW9mXC1jYXJyaWFnZXM7CivosL0gPiBhXC1tb3V0aFwtb3JcLW9wZW5pbmc7CivoqIEgPiBrYW5neGlcLXJhZGljYWxcLTE0OTsKK+iltSA+IGFcLXBsZWF0XC1pblwtYVwtc2tpcnQ7CivopLAgPiBsaWZ0XC11cFwtdGhlXC1za2lydHM7CivooIYgPiBhXC1raW5kXC1vZlwtc2NvcnBpb247CivomrkgPiBldWxvdGFcLXBlbGlvbXBoYWxhOwor6Ji3ID4gb25lXC1sZWdnZWRcLW1vbnN0ZXI7CivolrcgPiBlbHNob3RyaWFcLXBhbHRyaW5pOwor6JW6ID4gaG91dHR1eW5pYVwtY29yZGF0YTsKK+iTtCA+IGVkaWJsZVwtd2F0ZXJcLXBsYW50Owor6JG0ID4gcGh5c2FsaXNcLWFsa2VrZW5naTsKK+iNhSA+IGFuc3dlclw6XC1zbWFsbFwtYmVhbjsKK+iMliA+IGFsbGl1bVwtdmljdG9yaWFsaXM7CivoiqMgPiBtZWRpY2luYWxcLXBsYW50YWdvOwor6IegID4gc21hbGxcLWx1bXBcLW9mXC1tZWF0Owor6IeYID4geWVhclwtZW5kXC1zYWNyaWZpY2U7Civoh4ggPiB5ZWFyXC1lbmRcLXNhY3JpZmljZTsKK+e/ryA+IGdsaXN0ZW5pbmdcLXBsdW1hZ2U7Civnv5YgPiBrc2NcLWV4dGVuc2lvblwtMzEwODsKK+e+pyA+IGNhcmJveHlsXC1cKHJhZGljYWxcKTsKK+e9iCA+IGFuXC1lYXJ0aGVud2FyZVwtamFyOwor57eXID4gbGlnaHRcLXllbGxvd1wtY29sb3I7CivntrAgPiB0b1wtc3RyaW5nXC10b2dldGhlcjsKK+e0giA+IG5hbWVcLW9mXC1hblwtZW1wZXJvcjsKK+ezkiA+IGZvb2RcLWZvclwtYVwtam91cm5leTsKK+eoiSA+IG5vblwtZ2x1dGlub3VzXC1yaWNlOwor56eUID4gbm9uXC1nbHV0aW5vdXNcLXJpY2U7Civnop4gPiByb29tXC1tYWRlXC1vZlwtc3RvbmU7CivnmqogPiBsdXN0ZXJcLVwob2ZcLXBlYXJsc1wpOwor55inID4gaW50ZXJtaXR0ZW50XC1mZXZlcjsKK+eXnCA+IGFcLXNjYWJieVwtYmFsZFwtaGVhZDsKK+eUvyA+IGZhcm1pbmdcLXBvcHVsYXRpb247CivnlIsgPiBhXC1qYXJcLXdpdGhvdXRcLWVhcnM7CivnkKQgPiBqYWRlXC1vZlwtamFkZVwtYmVpbmc7CivnjpggPiBjb3VydFwtZHJlc3NcLWpld2VsczsKK+eNsyA+IGZpZXJjZVwtZG9nXC1sb29raW5nOwor54WNID4gdG9cLWNvbG91clwtYnlcLXNtb2tlOwor54GlID4gYVwtZ3JvdXBcLW9mXC1zcHJpbmdzOwor5rOyID4ga2luZFwtb2ZcLXdoaXRlXC13aW5lOwor5rCNID4gZmluZVwtd29vbGxlblwtY2xvdGg7CivmqoEgPiB0aGVcLWJvbGVcLW9mXC1hXC10cmVlOwor5p+6ID4gYW5cLW9sZFwtbWFuJydzXC1zdGFmZjsKK+aduyA+IGxpZ3VzdHJ1bVwtc2luZW5lc2U7CivmnZkgPiBhXC10aW55XC13b29kZW5cLXBvc3Q7CivmnLYgPiBjbHVzdGVyXC1vZlwtZmxvd2VyczsKK+aYtyA+IHRvXC1mZWVkXC1hXC1wcmlzb25lcjsKK+aXvCA+IGdlbnRsZVwtYW5kXC1hZmZhYmxlOwor5pOtID4gdHJhcFwtY2F0Y2hcLWFuaW1hbHM7CivmkoggPiBzY29vcFwtb3V0XC1vZlwtd2F0ZXI7CivlvYQgPiBub2NrXC1hdFwtZW5kXC1vZlwtYm93Owor5beUID4gc3VtbWl0XC1vZlwtbW91bnRhaW47Civlt5MgPiBzdW1taXRcLW9mXC1tb3VudGFpbjsKK+W2qCA+IGJpZ1wtcm9ja3lcLW1vdW50YWluOwor5bWWID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor5bO5ID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor5bOxID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor5bKiID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor5bKNID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor5aWpID4gbGFkeScnc1wtdmFuaXR5XC1jYXNlOwor5aOcID4gZWFydGhlblwtamFyXC1vclwtanVnOwor5aKwID4gYW5cLWVhcnRoZW53YXJlXC1qYXI7CivlopAgPiB0b1wtYnVpbGRcLXdpdGhcLXNvaWw7CivloY8gPiBoaWdoXC1hbmRcLWRyeVwtcGxhY2U7CivlmYsgPiB0b1wtc3dhbGxvd1wtaGFzdGlseTsKK+WTsCA+IGluY29oZXJlbnRcLWNoYXR0ZXI7Civlg4ogPiB0YW9pc3RcLXN1cGVyXC1iZWluZzsKK+S9tyA+IHRvXC1hY3RcLWNvbnRyYXJ5XC10bzsKK+S6gCA+IHR1cnRsZVwtb3JcLXRvcnRvaXNlOwor5LmRID4gc3RhbmRcLXNpZGVcLWJ5XC1zaWRlOwor5LisID4gaGFsZlwtb2ZcLXRyZWVcLXRydW5rOwor5LajID4gdG9cLWdyaW5kXC10aGVcLXRlZXRoOwor5LafID4gdG9cLWduYXNoXC10aGVcLXRlZXRoOwor5LWVID4gYVwtdmFyaWV0eW9mXC1taWxsZXQ7CivktLEgPiBjYWtlc1wtYW5kXC1iaXNjdWl0czsKK+S0piA+IGFcLWxlZ2VuZGFyeVwtYW5pbWFsOwor5LOoID4gdGhlXC1mZW1hbGVcLXBob2VuaXg7Civks5QgPiBhXC1waWdlb25cLWxpa2VcLWJpcmQ7Civks44gPiBhXC1waWdlb25cLWxpa2VcLWJpcmQ7CivksbMgPiBhXC1raW5kXC1vZlwtc3R1cmdlb247CivksaMgPiBhXC1sb25nXC1uYXJyb3dcLWZpc2g7CivksKogPiBtaXNjaGlldm91c1wtc3Bpcml0Owor5LCoID4gbWlzY2hpZXZvdXNcLXNwaXJpdDsKK+SvsSA+IHRoZVwtaGFpclwtc3RhbmRzXC11cDsKK+SvjyA+IHRoZVwtc2hvdWxkZXJcLWJsYWRlOwor5K+LID4gdGhlXC1zaG91bGRlclwtYmxhZGU7CivkrqUgPiBjb2xvclwtb2ZcLXRoZVwtaG9yc2U7Civkrp0gPiBhXC1sZWdlbmRhcnlcLWFuaW1hbDsKK+StsCA+IHN0cm9uZ1wtc3dlZXRcLXNtZWxsOwor5K2vID4gc3Ryb25nXC1zd2VldFwtc21lbGw7CivkrYsgPiB0b1wtZWF0XC10b1wtdGhlXC1mdWxsOwor5K2DID4gdG9cLWVhdFwtdG9cLXRoZVwtZm9vbDsKK+SsviA+IGNha2VzXC1hbmRcLWJpc2N1aXRzOwor5Ky0ID4gZm9kZGVyXC1mb3JcLWFuaW1hbHM7CivkrKwgPiB0b1wtZWF0XC10b1wtdGhlXC1mdWxsOwor5KyoID4gdG9cLWVhdFwtdG9cLXRoZVwtZnVsbDsKK+SspyA+IHJvdW5kXC1zaGFwZWRcLWNha2VzOwor5KuQID4gdG9cLWJlbmRcLW9uZScnc1wtaGVhZDsKK+SqjCA+IGN1c2hpb25cLWZvclwtc2FkZGxlOwor5KiGID4gYVwta2luZFwtb2ZcLXBoZWFzYW50Owor5Ke8ID4gdGhlXC10aGVcLXNub3dcLWdvb3NlOwor5KemID4gbmFtZVwtb2ZcLWFcLWhpbGxzaWRlOwor5KeHID4gbmFtZVwtb2ZcLWFcLWhpbGxzaWRlOwor5KauID4gZG9vclwtb2ZcLXRoZVwtY2VudGVyOwor5KaSID4gdGhlXC1kb29yXC1pc1wtY2xvc2VkOwor5KaQID4gdGhlXC1ib2x0XC1vZlwtYVwtZG9vcjsKK+SlsyA+IGFcLWNoZW1pY2FsXC1lbGVtZW50Owor5KWyID4gYVwtY2hlbWljYWxcLWVsZW1lbnQ7CivkpZ4gPiB0b1wtY3V0XC13aXRoXC1zaGVhcnM7CivkpZ0gPiBkZXNwZXJhdGVcLWZpZ2h0aW5nOwor5KSEID4gZmx1c2hlZFwtd2l0aFwtZHJpbms7Civko7ogPiBmaWx0cmF0ZWRcLXRoZVwtd2luZTsKK+SjgCA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+ShoCA+IHN0cm9uZ1wtYW5kXC1kdXJhYmxlOwor5KGbID4gbmFtZVwtb2ZcLWFcLWNhcnJpYWdlOwor5KCnID4gaGFyZFwtdG9cLWdvXC1mb3J3YXJkOwor5KChID4gc291bmRcLW9mXC1mb290c3RlcHM7Civkn50gPiB0b1wtd2Fsa1wtcmlnaHRcLWludG87CivknZ4gPiBuYW1lXC1vZlwtYVwtaW1tb3J0YWw7Civkm4kgPiB0b1wtaW5kdWNlXC1ieVwtd29yZHM7CivkmqcgPiBjdXJ2ZWRcLXdpdGhcLWFuZ2xlczsKK+SZgyA+IHNsZWV2ZWxlc3NcLWNsb3RoZXM7CivkmI0gPiBhXC1raW5kXC1vZlwtc2NvcnBpb247Civkl7sgPiBhXC1raW5kXC1vZlwtc2VhXC1jcmFiOwor5JeoID4gbGVwc2ltYVwtc2FjY2hhcmluYTsKK+SXoyA+IGluc2VjdFwtb2ZcLW11bGJlcnJ5Owor5JeNID4gd29vZFwtYm9yaW5nXC1pbnNlY3Q7CivklqcgPiBhXC1wb2lzb25vdXNcLWluc2VjdDsKK+SWkyA+IG9mXC1hXC13YWxraW5nXC10aWdlcjsKK+SVqiA+IHRoZVwtd2F0ZXJcLXBsYW50YWluOwor5JS8ID4gc291bmRcLW9mXC10aGVcLWdyYXNzOwor5JSDID4gY29yZGF0ZVwtaG91dHR1eW5pYTsKK+STqyA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+STqCA+IGxvbmdcLW5lY2tlZFwtYm90dGxlOwor5JOgID4gdGhlXC13YXRlclwtcGxhbnRhaW47Civkk5YgPiBjbmlkaXVtXC1vZmZpY2luYWxlOwor5JODID4gbWVsYW5jaG9seVwtYW5kXC1zYWQ7Civkkp0gPiByb290XC1vZlwtdGhlXC10aGF0Y2g7CivkkZkgPiBwdXRcLW91dFwtdGhlXC10b25ndWU7CivkkYYgPiBmZWVsXC1saWtlXC12b21pdGluZzsKK+SQlCA+IG11c2NsZVwtb2ZcLXRoZVwtY2FsZjsKK+SOviA+IGJpZ1wtYW5kXC1yb3VuZFwtZXllczsKK+SOtCA+IGFcLWxlZ2VuZGFyeVwtc3Bpcml0Owor5I6qID4gdGhlXC1zdGFsa1wtb2ZcLWdyYWluOwor5I6UID4gZmluZVwtYW5kXC1zb2Z0XC1oYWlyOwor5I6PID4geW91bmdcLWJpcmRzXC1mbHlpbmc7Civkjo0gPiBmaW5lXC1hbmRcLXNvZnRcLWhhaXI7CivkjakgPiB0b1wtb2ZmZXJcLXByb3Zpc2lvbjsKK+SNoyA+IGFcLWtpbmRcLW9mXC1maXNoXC1uZXQ7CivkjI0gPiBmaW5lXC13b3ZlblwtcGF0dGVybjsKK+SMiSA+IHRoZVwtbGFyZ2VcLW9mXC1hXC1uZXQ7Civki5cgPiBzdHJvbmdcLWFuZFwtZHVyYWJsZTsKK+SLiCA+IHRvXC1iaW5kXC1sb29zZVwtaGVtcDsKK+SJrCA+IGNvYXJzZVwtYmFtYm9vXC1tYXRzOwor5IiuID4gYVwtd292ZW5cLWluc3RydW1lbnQ7Civkh7MgPiBhXC1tZW1vcmFkdW1cLXRhYmxldDsKK+SGqiA+IGNvbG9yXC1vZlwtdGhlXC1saWdodDsKK+SGpSA+IHRvXC1waWVyY2VcLXRocm91Z2hqOwor5IakID4gdG9cLXBpZXJjZVwtdGhyb3VnaGo7CivkhpEgPiBhXC1saXR0bGVcLXByb3RydWRlZDsKK+SFvSA+IGZyYWdyYW5jZVwtb3JcLWFyb21hOwor5IWxID4gdG9cLWVhdFwtdG9cLXRoZVwtZnVsbDsKK+SFpyA+IGZpbmVcLXJpY2VcLXNlZWRsaW5nOwor5IWdID4gdGhlXC1zdGFsa1wtb2ZcLWdyYWluOwor5IWcID4gdG9cLXN0b3JlXC11cFwtZ3JhaW5zOwor5IWAID4gdGhlXC1zdGFsa1wtb2ZcLWdyYWluOwor5ISaID4gdG9cLXdvcnNoaXBcLXRoZVwtZ29kOwor5IO9ID4gbmFtZVwtb2ZcLWFcLW1vdW50YWluOwor5IOcID4gYVwtZmluZVwtYmxhY2tcLXN0b25lOwor5IGKID4gZGFya1wtYW5kXC1kZWVwXC1leWVkOwor5ICeID4gd2l0aFwtaGVhdnlcLWV5ZWxpZHM7CivkgJcgPiB0b1wtbG9va1wtYXNrYW5jZVwtYXQ7Civjv4wgPiBsdW1wXC1pblwtdGhlXC10aHJvYXQ7CivjvKMgPiBicmlja3NcLW9mXC10aGVcLXdlbGw7CivjvIcgPiBmaW5lXC1qYWRlXC1vclwtYWdhdGU7Civju5cgPiBhXC1zdHJpbmdcLW9mXC1wZWFybHM7Civju4ogPiBhXC1yZWRcLWNvbG9yZWRcLWphZGU7Civju4UgPiBqYWRlXC1kZWNvcmF0ZWRcLWNhcDsKK+O6pyA+IGFcLXdoaXRlXC15ZWxsb3dcLWRvZzsKK+O5pCA+IGxhY2tpbmdcLWluXC1jb3VyYWdlOwor47i9ID4gYVwtdHdvXC15ZWFyc1wtb2xkXC1veDsKK+O4rCA+IGFcLXR3b1wteWVhcnNcLW9sZFwtb3g7CivjuIggPiBzY29yY2hlZFwtb3JcLWJ1cm5lZDsKK+O3syA+IGNvbG9yXC1vZlwtdGhlXC1mbGFtZTsKK+O3oiA+IGJ1bmRsZVwtb2ZcLWNoYXJjb2FsOwor47egID4gYVwtd2lsbFwtbycnXC10aGVcLXdpc3A7CivjtrYgPiBzY29yY2hlZFwtb3JcLWJ1cm5lZDsKK+O1kyA+IHRoZVwtd2F0ZXJcLWlzXC1jbGVhcjsKK+O0viA+IHN3ZWxsaW5nXC1vclwtcmlzaW5nOwor47OCID4gdG9cLWZvbGxvd1wtYVwtY291cnNlOwor47KhID4gdGhpY2tcLWNvYXRcLW9mXC1oYWlyOwor47KXID4gdG9cLXNtb290aFwtdGhlXC1oYWlyOwor46+2ID4gdGhlXC1jb2lyXC1wYWxtXC10cmVlOwor46+yID4gYVwtd29vZGVuXC1mcmFtZXdvcms7Civjr5sgPiBnb3VyZFwtc2hhcGVkXC1kYXRlczsKK+OuuyA+IHRvXC1zY3JhdGNoXC1saWdodGx5Owor466NID4gYW1lbW9yYW5kdW1cLXRhYmxldDsKK+OtqCA+IHRoZVwtY29jb2FcLW51dFwtcGFsbTsKK+OtoSA+IG5hbWVcLW9mXC1hXC1tb3VudGFpbjsKK+OtnSA+IG5hbWVcLW9mXC1hXC1wYXZpbGlvbjsKK+OstCA+IHRoZVwtbW9vblwtaXNcLWRpbW1lZDsKK+OskiA+IHRoZVwtc3VuXC1hcmVcLWRpbW1lZDsKK+OsjiA+IG1vdGVzXC1pblwtYVwtc3VuYmVhbTsKK+OrpiA+IG9mXC1sb29rXC1vZlwtdGhlXC1zdW47Civjq54gPiBvZlwtbG9va1wtb2ZcLXRoZVwtc3VuOwor46q4ID4gdG9cLWZpbGxcLWFcLWN1cFwtd2l0aDsKK+OpgyA+IHRvXC10YWtlXC1vclwtY2FwdHVyZTsKK+OovSA+IHRvXC1jdXRcLW9yXC1yaXBcLW9wZW47CivjqKEgPiB0b1wtcHVzaFwtd2l0aFwtaGFuZHM7CivjqJwgPiB0b1wtaGVscFwtZWFjaFwtb3RoZXI7Civvp4ggPiBsaWd1c3RydW1cLXNpbmVuZXNlOwor46eAID4gdGhlXC1ib2x0XC1vZlwtYVwtZG9vcjsKK+OmviA+IHRoZVwtYm9sdFwtb2ZcLWFcLWRvb3I7CivvpocgPiBhXC1wdXJlXC1ibGFja1wtaG9yc2U7CivjpbggPiB0b1wtc3ltcGF0aGl6ZVwtd2l0aDsKK+OlqCA+IHVuaGFwcHlcLWRpc3BsZWFzZWQ7CivjpKogPiB0b1wtZmluZFwtZmF1bHRcLXdpdGg7CivvpKYgPiB5ZWFyXC1lbmRcLXNhY3JpZmljZTsKK++kiCA+IHR1cnRsZVwtb3JcLXRvcnRvaXNlOwor76SHID4gdHVydGxlXC1vclwtdG9ydG9pc2U7Civjo4wgPiB0b1wtam9pblwtdHdvXC10aGluZ3M7Civjoa8gPiB3YWxsXC1vZlwtYVwtYnVpbGRpbmc7CivjoKYgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivjoKAgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivjoJMgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivjoI8gPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivjoIYgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civjn7MgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civjn7AgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civjn6ogPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civjn6YgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civjn5ggPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civjn40gPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civjn4ogPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civjn4ggPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civjn4YgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civjn4QgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47Civjn4AgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivjnrsgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivjnrQgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivjnrMgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivjnrIgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivjnrAgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivjnqggPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivjnqYgPiBuYW1lXC1vZlwtYVwtbW91bnRhaW47CivjmLMgPiBhXC1oaWxsb2NrXC1vclwtbW91bmQ7CivjmLEgPiB0b1wtZmFsbFwtaW50b1wtcnVpbnM7CivjmJwgPiBhXC1raW5kXC1vZlwtc2lsa3dvcm07CivjloUgPiBzb3VuZFwtb2ZcLWFcLXdoaXN0bGU7CivjloMgPiB0b1wtcm9hclwtb2ZcLWFuaW1hbHM7CivjlKIgPiB0b1wtYnJlYWtcLXNvbWV0aGluZzsKK+eavyA+IHNoYWxsb3dcLWNvbnRhaW5lcjsKK+WxkyA+IGdpZ2FudGljXC1zdHJlbmd0aDsKK+a0viA+IHNjaG9vbFwtb2ZcLXRob3VnaHQ7Civlp5MgPiBvbmUnJ3NcLWZhbWlseVwtbmFtZTsKK+eFjiA+IGZyeVwtaW5cLWZhdFwtb3JcLW9pbDsKK+ilgSA+IHN3YWRkbGluZ1wtY2xvdGhlczsKK+WTiCA+IHNvdW5kXC1vZlwtbGF1Z2h0ZXI7CivpuJogPiBzcGVjaWVzXC1vZlwtcGFycm90Owor5qynID4gdHJhbnNsaXRcLlw6XC1ldXJvcGU7CivptaEgPiBzcGVjaWVzXC1vZlwtcGFycm90Owor6K6iID4gZHJhd1wtdXBcLWFncmVlbWVudDsKK+WBjyA+IGluY2xpbmVkXC1vbmVcLXNpZGU7CivmrZQgPiBibG93XC10aHJvdWdoXC1ub3NlOwor5Z+5ID4gYmFua1wtdXBcLXdpdGhcLWRpcnQ7CivmvKsgPiBvdmVyZmxvd1wtb2ZcLXdhdGVyOwor5L6gID4gY2hpdmFscm91c1wtcGVyc29uOwor5aeGID4gY2hpbGQnJ3NcLWdvdmVybmVzczsKK+ebkiA+IHNtYWxsXC1ib3hcLW9yXC1jYXNlOwor5YSSID4gY29uZnVjaWFuXC1zY2hvbGFyOwor6ZiqID4gaGlsbHNpZGVcLWZhcm1sYW5kOwor6L+IID4gdGFrZVwtYVwtYmlnXC1zdHJpZGU7CivmjY8gPiBwaWNrXC13aXRoXC1maW5nZXJzOwor5rWZID4gemhlamlhbmdcLXByb3ZpbmNlOwor562nID4gYmFtYm9vXC13YXRlclwtcGlwZTsKK+iJmCA+IGNvdW50ZXJcLWZvclwtc2hpcHM7CivotoEgPiB0YWtlXC1hZHZhbnRhZ2VcLW9mOwor6YmiID4gZWFydGhlbndhcmVcLWJhc2luOwor6JOsID4gdHlwZVwtb2ZcLXJhc3BiZXJyeTsKK+i+liA+IGxpbmNocGluXC1vZlwtd2hlZWw7CivpgIUgPiBtZWV0XC11bmV4cGVjdGVkbHk7CivlmI4gPiBzb3VuZFwtb2ZcLWxhdWdodGVyOwor6YWjID4gZW5qb3lcLWludG94aWNhbnRzOwor6aW6ID4gc3R1ZmZlZFwtZHVtcGxpbmdzOwor5ZKPID4gc2luZ1wtc29uZ1wtb3JcLXBvZW07CivpkrUgPiBlYXJ0aGVud2FyZVwtYmFzaW47CivmkIAgPiBnaXZlXC1oZWxwaW5nXC1oYW5kOwor5o22ID4gc3RyaWtlXC13aXRoXC1zdGljazsKK+WIqCA+IGNhcnBlbnRlcicnc1wtcGxhbmU7CivooJUgPiBldW1lbmVzXC1wb2xpZm9taXM7CivppaggPiBzdHVmZmVkXC1kdW1wbGluZ3M7CivltIYgPiBrb25ndG9uZ1wtbW91bnRhaW47Civnm4UgPiBzbWFsbFwtY3VwXC1vclwtYm93bDsKK+aihiA+IHdhdGNobWFuJydzXC1yYXR0bGU7CivltYcgPiBtb3VudGFpblwtaW5cLWhlbmFuOwor6IC3ID4gZWFyc1wtaGFuZ2luZ1wtZG93bjsKK+e+jCA+IHFpYW5nXC1uYXRpb25hbGl0eTsKK+iLniA+IGFcLXZhcmlldHlcLW9mXC1ydXNoOwor6bmmID4gc3BlY2llc1wtb2ZcLXBhcnJvdDsKK+iXnCA+IGNoZW5vcG9kaXVtXC1hbGJ1bTsKK+iJhCA+IHN0ZXJuXC1vZlwtYVwtdmVzc2VsOwor6bmJID4gc3BlY2llc1wtb2ZcLXBhcnJvdDsKK+WzgSA+IHllbGxvd1wtZGlydFwtbW91bnQ7CivplZQgPiBoaWdoXC1xdWFsaXR5XC1pcm9uOwor6bKrID4gY2FyYXNzaXVzXC1hdXJhdHVzOwor6b6HID4gdG9cLXNob3dcLXRoZVwtdGVldGg7Civmsq0gPiByaXZlclwtaW5cLXNoYW50dW5nOwor5qarID4gbW9ydGlzZVwtYW5kXC10ZW5vbjsKK+iQiyA+IGx1eHVyaWFudFwtZm9saWFnZTsKK+mGriA+IHJlbGlnaW91c1wtc2VydmljZTsKK+eJnSA+IGZlbWFsZVwtb2ZcLXNwZWNpZXM7Civmm7cgPiB3aHlcP1wtd2hhdFw/XC13aGVyZVw/Owor55G3ID4gZmluZVwtcXVhbGl0eVwtamFkZTsKK+iApiA+IHBsb3dcLXNpZGVcLWJ5XC1zaWRlOwor6bi2ID4gdGhlXC1lYXN0ZXJuXC1lZ3JldDsKK+evpiA+IGZpbmVcLXRvb3RoZWRcLWNvbWI7CivlpoEgPiBhY3RcLWFzXC1nb1wtYmV0d2VlbjsKK+iNpSA+IGFcLWNvdW50eVwtaW5cLWhlbmFuOwor5oi9ID4gdG9cLWJhbGVcLW91dFwtd2F0ZXI7CivmnrMgPiB0cmlmb2xpYXRlXC1vcmFuZ2U7CivmpJAgPiB6ZWxrb3dhXC1hY3VtaW5hdGE7CivltKQgPiBtb3VudGFpblwtaW5cLWhlbmFuOwor6a2JID4gYVwta2luZFwtb2ZcLW1vbnN0ZXI7Civpop4gPiB0aGVcLXRlbXBvcmFsXC1ib25lOwor6ZS0ID4gaGlnaFwtcXVhbGl0eVwtaXJvbjsKK+eslSA+IGJhbWJvb1wtd2F0ZXJcLXBpcGU7CivogKkgPiB0b1wtcGxvdWdoXC5cLXRvXC1zb3c7Civlu6ggPiBnb3Zlcm5tZW50XC1vZmZpY2U7Civon64gPiB0eXBlXC1vZlwtZWFydGh3b3JtOwor6JuxID4ga2luZFwtb2ZcLWJ1dHRlcmZseTsKK+emsyA+IHByYXlcLW9yXC1zYWNyaWZpY2U7CivnnqIgPiBleWVzaWdodFwtb2JzY3VyZWQ7CivolLggPiBjb3VudGVyXC1mb3JcLXBsYW50Owor6J6FID4gXChpbnRlc3RpbmFsXC13b3JtXCk7CivnpacgPiBhblwtYW5jZXN0cmFsXC1oYWxsOwor5p+dID4gd2F0Y2htYW4nJ3NcLXJhdHRsZTsKK+iggyA+IHRoZVwtc29saXRhcnlcLXdhc3A7CivonL4gPiB0aGVcLXNvbGl0YXJ5XC13YXNwOwor6IGDID4gZWFyc1wtd2l0aG91dFwtcmltczsKK+iAnCA+IHNwYWRlXC1zaGFwZWRcLXRvb2w7CivmhZ0gPiBkb1wtZXZpbFwtaW5cLXNlY3JldDsKK+W6syA+IGFcLWxvd1wtYnVpbHRcLWhvdXNlOwor6byiID4gYVwtdmFyaWV0eVwtb2ZcLW1vbGU7CivomrogPiBhXC1ib2FcLWNvbnN0cmljdG9yOwor6aKlID4gdGhlXC10ZW1wb3JhbFwtYm9uZTsKK+ehhyA+IGFcLWtpbmRcLW9mXC1taW5lcmFsOwor56GtID4gYVwtY3J1ZGVcLXNhbHRwZXRyZTsKK+iDqCA+IGFcLWtpbmRcLW9mXC1wcm90ZWluOwor6b2cID4gdG9cLXNob3dcLXRoZVwtdGVldGg7CivpvYQgPiByZWRcLXNvcmVzXC1vblwtbm9zZTsKK+m7nyA+IGJsYWNrXC1hbmRcLXNoaW5pbmc7CivpuYEgPiBzcGVjaWVzXC1vZlwtcGlnZW9uOwor6bW1ID4gc2NvcHNcLXNlbWl0b3JxdWVzOwor6bWTID4gc3BlY2llc1wtb2ZcLXBpZ2VvbjsKK+mvvSA+IGNhcmFzc2l1c1wtYXVyYXR1czsKK+muuCA+IHNjaWFlbmFcLWFsYmlmbG9yYTsKK+mtqyA+IHRoZVwteW91bmdcLW9mXC1maXNoOwor6a2OID4gYVwta2luZFwtb2ZcLW1vbnN0ZXI7Civpq70gPiB0b1wtZHJlc3NcLXRoZVwtaGFpcjsKK+mlqSA+IHNhY3JmaWNpYWxcLXZpY3RpbTsKK+mkgyA+IHN0dWZmZWRcLWR1bXBsaW5nczsKK+mkgiA+IHRvXC1vYnRhaW5cLWJ5XC1ob29rOwor6aOpID4gc3R1ZmZlZFwtZHVtcGxpbmdzOwor6aGzID4gdGhlXC10ZW1wb3JhbFwtYm9uZTsKK+mhrCA+IHRoZVwtdGVtcG9yYWxcLWJvbmU7CivpnrggPiBsZWF0aGVyXC1hcm1cLWd1YXJkOwor6Z6yID4gbGVhdGhlclwtYXJtXC1ndWFyZDsKK+mdvyA+IHRoZVwtbGVnXC1vZlwtYVwtYm9vdDsKK+mauCA+IGJlXC1zdWJzZXJ2aWVudFwtdG87CivpmrcgPiBiZVwtc3Vic2VydmllbnRcLXRvOwor6ZaqID4gdG9cLWxvc2VcLWxvc3RcLWl0ZW07CivpkaQgPiBjYXJwZW50ZXInJ3NcLXBsYW5lOwor6ZGMID4gaGlnaFwtcXVhbGl0eVwtaXJvbjsKK+mNhyA+IGhpZ2hcLXF1YWxpdHlcLWlyb247CivpiqAgPiByaG9kaXVtXC1ydXRoZW5pdW07CivpiZUgPiBwcm9tZXRoaXVtXC1icm9uemU7CivpiYsgPiBjYXJwZW50ZXInJ3NcLXBsYW5lOwor6YizID4gY29sdW1iaXVtXC1uaW9iaXVtOwor6YatID4gbW91bGRzXC1vblwtbGlxdWlkczsKK+mGkSA+IHRvXC1zdHJhaW5cLXNwaXJpdHM7CivphbogPiBkcmlua1wtd2l0aFwtb3RoZXJzOwor6YKBID4gdGFrZVwtYVwtYmlnXC1zdHJpZGU7CivovYQgPiBsaW5jaHBpblwtb2ZcLXdoZWVsOwor6LKNID4gYVwtZm94XC1saWtlXC1hbmltYWw7CivosYsgPiBjZXJlbW9uaWFsXC12ZXNzZWw7CivoqIIgPiBkcmF3XC11cFwtYWdyZWVtZW50Owor6Ka8ID4gZXhwbGFpblwtaW5cLWRldGFpbDsKK+immSA+IGV4cGxhaW5cLWluXC1kZXRhaWw7CivonaEgPiBldW1lbmVzXC1wb2xpZm9taXM7CivonJQgPiBpbmxhaWRcLXNoZWxsXC13b3JrOwor6Ju6ID4ga2luZFwtb2ZcLWJ1dHRlcmZseTsKK+iapiA+IGFcLWJvYVwtY29uc3RyaWN0b3I7CivomLUgPiBwaHlzYWxpc1wtYW5ndWxhdGE7Civol6ggPiBraW5kXC1vZlwtcmFzcGJlcnJ5Owor6JW4ID4gd2F0ZXJcLWxpbHknJ3NcLWxlYWY7CivolZEgPiB2YWxlcmlhbmFcLXZpbGxvc2E7CivokY4gPiBodW11bHVzXC1qYXBvbmljdXM7Civoj6MgPiBhcnRlbWlzaWFcLWFwaWFjZWE7CivojpsgPiBzdGFsa3NcLW9mXC1ncmFzc2VzOwor6IyNID4gdG9cLWJlXC1jaXJjdW1zcGVjdDsKK+e9myA+IGxhcmdlXC1maXNoaW5nXC1uZXQ7CivnvL0gPiBlYXJ0aGVud2FyZVwtYmFzaW47CivnuLAgPiBiYW5kXC1mb3JcLXRoZVwtaGFpcjsKK+e2jiA+IHNpbGtcLWJyYWlkZWRcLWNvcmQ7CivntKwgPiBraW5kXC1vZlwtdGhpblwtc2lsazsKK+exuCA+IHBvd2RlcnlcLXN1YnN0YW5jZTsKK+exkyA+IGJpZ1wtd2lubm93XC1iYXNrZXQ7Civnr6ggPiBjb2Fyc2VcLWJhbWJvb1wtbWF0Owor566GID4gZmluZVwtdG9vdGhlZFwtY29tYjsKK+eliiA+IHJpdmVyXC1pblwtc2hhbmRvbmc7CivnmLUgPiBhXC13YXN0aW5nXC1kaXNlYXNlOwor55KrID4gcGVuZGFudFwtb3JuYW1lbnRzOwor55KmID4gZmluZVwtcXVhbGl0eVwtamFkZTsKK+eOniA+IGFuXC1pbmZlcmlvclwtYWdhdGU7CivnhoAgPiB0aGVcLWJsYXplXC1vZlwtZmlyZTsKK+eBjiA+IG1vdmVtZW50XC1vZlwtd2F0ZXI7CivmuZEgPiB0b1wtc3RyYWluXC1zcGlyaXRzOwor5riwID4gZm9ybWluZ1wtb3JcLXJpc2luZzsKK+a0tiA+IHRoZVwtcnVzaFwtb2ZcLXdhdGVyOwor5pygID4gY29sb3JcLW9mXC10aGVcLW1vb247CivmmpQgPiBuYW1lXC1vZlwtYVwtY291bnRyeTsKK+aUsCA+IHRvdGFsbHlcLWV4aGF1c3RlZDsKK+aOqyA+IGJlXC1vblwtbmlnaHRcLXdhdGNoOwor5o2lID4gdG9cLWJlbmRcLXRoZVwtd3Jpc3Q7CivmiowgPiB0b1wtYmFsZVwtb3V0XC13YXRlcjsKK+aEsCA+IGNsZWFybmVzc1wtb2ZcLW1pbmQ7CivlvJYgPiBwaG9uZXRpY1wtZm9yXC0nJ3RlJyc7CivltYYgPiBtb3VudGFpblwtaW5cLWhlbmFuOwor5bGtID4gZ2lnYW50aWNcLXN0cmVuZ3RoOwor5bCoID4gc2hhZ2d5XC1oYWlyZWRcLWRvZzsKK+WkiiA+IGthbmd4aVwtcmFkaWNhbFwtMzU7Civllr8gPiBjaGlycGluZ1wtb2ZcLWJpcmRzOwor5Za8ID4gdXNlZFwtcGhvbmV0aWNhbGx5Owor5Za5ID4gY2hlbWljYWxcLWNvbXBvdW5kOwor5ZO1ID4gdGhlXC1jcnlcLW9mXC1hXC1iaXJkOwor5ZO0ID4gY3J5aW5nXC1vZlwtaW5mYW50czsKK+WQoiA+IHZvbWl0aW5nXC1vZlwtYVwtZG9nOwor5YCIID4gdG9cLWluZHVjZVwtdG9cLWNvbWU7Civkv6AgPiBjaGl2YWxyb3VzXC1wZXJzb247Civkv4ggPiB0b1wtaW5mb3JtXC1xdWlja2x5Owor5LuCID4gc3VycGx1c1wtb3JcLWV4Y2VzczsKK+S5qiA+IGFcLWJlbmRcLWluXC1hXC1yaXZlcjsKK+S2sCA+IGZlYXRoZXJcLW9ybmFtZW50czsKK+S2liA+IGRpc2Vhc2VcLW9mXC10b25ndWU7CivktZwgPiB0b1wtcGxvdWdoXC1hbmRcLXNvdzsKK+S0iiA+IHRoZVwtY3Jvd1wtcGhlYXNhbnQ7Civks6QgPiBhXC1raW5kXC1vZlwtc3RyYW5nZTsKK+SzmSA+IGFcLWVncmV0XC1saWtlXC1iaXJkOwor5K+lID4gd2l0aFwtYVwtaGlnaFwtc2t1bGw7Civkr6IgPiBwYXJ0aWFsXC1wYXJhbHlzaXM7CivkrqsgPiBhXC1iaWdcLW11bGVcLWFuXC1hc3M7CivkrpogPiBkaXNlYXNlc1wtb2ZcLWhvcnNlOwor5K6QID4gaW5cLWdvb2RcLWNvbmRpdGlvbjsKK+StlCA+IHN0ZWFtZWRcLWR1bXBsaW5nczsKK+SssCA+IGxpZ2h0XC1yZWZyZXNobWVudDsKK+SslSA+IHNvdW5kXC1vZlwtdGhlXC13aW5kOwor5KyNID4gdGhlXC1zb3VuZFwtb2ZcLXdpbmQ7CivkrIYgPiBhXC1ibHVzdGVyaW5nXC1nYWxlOwor5KyDID4gdGhlXC1zb3VuZFwtb2ZcLXdpbmQ7CivkrIAgPiBzb3VuZFwtb2ZcLXRoZVwtd2luZDsKK+SrpiA+IHRoZVwtbG93ZXJcLWphd2JvbmU7Civkq58gPiBmYWNpYWxcLWNvbXBsZXhpb247Civkq40gPiB0b1wtYm93XC1vbmUnJ3NcLWhlYWQ7Civkq4kgPiBmYWNpYWxcLWFwcGVhcmFuY2U7CivkqJUgPiBwb3VyaW5nXC13aXRoXC1yYWluOwor5Ke6ID4gdGhlXC1tYWxlXC1vZlwtYmlyZHM7CivkpqogPiBzb3VuZFwtb2ZcLXRoZVwtZG9vcjsKK+SmnSA+IHNvdW5kXC1vZlwtdGhlXC1kb29yOwor5KaWID4gc291bmRcLW9mXC10aGVcLWRvb3I7CivkpoMgPiB0b1wtZGlnXC13aXRoXC1hXC1ob2U7Civko7sgPiBjb2xvclwtb2ZcLXRoZVwtd2luZTsKK+SjqiA+IGNvbG9yXC1vZlwtdGhlXC13aW5lOwor5KKdID4gdGhlXC1uZXh0XC1pblwtb3JkZXI7CivkobcgPiBub2lzZVwtb2ZcLXZlaGljbGVzOwor5KGqID4gZmFuXC1vZlwtYVwtY2FycmlhZ2U7CivkoZkgPiBhblwtYXJtZWRcLWNhcnJpYWdlOwor5J6VID4gY29sb3JcLW9mXC10aGVcLWZpcmU7CivknoIgPiBmYWlybHlcLXByb3NwZXJvdXM7CivknbogPiB0b1wtcGllcmNlXC10aHJvdWdoOwor5J25ID4gZmFpcmx5XC1wcm9zcGVyb3VzOwor5J2zID4gdG9cLWtpbGxcLWZvclwtbW9uZXk7CivknbIgPiBmYXJld2VsbFwtcHJlc2VudHM7CivknKIgPiBjcnVlbFwtYW5kXC12aW9sZW50Owor5JqgID4gdW5icm9rZW5cLWZpcmV3b29kOwor5JqdID4gbmV3XC1ncm93aW5nXC1ob3JuczsKK+SamiA+IGhvcm5cLW9mXC1hblwtYW5pbWFsOwor5JqRID4gdG9cLXN0ZWFsXC1hXC1nbGFuY2U7CivkmoAgPiB0b1wtc2VlXC1zdGVhbHRoaWx5Owor5Jm0ID4gdG9cLXNvYXJcLWFzXC1hXC1iaXJkOwor5JmqID4gYVwtbG9vcFwtZm9yXC1idXR0b247CivkmI4gPiBuYW1lXC1vZlwtYW5cLWluc2VjdDsKK+SXuSA+IGhhaXJ5XC1jYXRlcnBpbGxhcjsKK+SXpSA+IHRoZVwtc29saXRhcnlcLXdhc3A7CivklacgPiB6aXphbmlhXC1sYXRpZm9saWE7CivklaAgPiBjb2Fyc2VcLWJhbWJvb1wtbWF0Owor5JWGID4gcm91bmRcLXN0cmF3XC1xdWlsdDsKK+STmyA+IG1vbGVjdWxhclwtZm9ybXVsYTsKK+SSvSA+IGlsbGljaXVtXC1hbmlzYXR1bTsKK+SSkCA+IGRpc3R1cmJlZFwtaW5cLW1pbmQ7Civkko8gPiBkaXN0dXJiZWRcLWluXC1taW5kOwor5JG8ID4gb2NlYW5cLWdvaW5nXC1saW5lcjsKK+SQoCA+IGJldHdlZW5cLXRoZVwtZmxlc2g7CivkkJggPiB0b1wtbGF1Z2hcLWhlYXJ0aWx5Owor5JCWID4gdG9cLWxhdWdoXC1oZWFydGlseTsKK+SPsCA+IGFcLWtpbmRcLW9mXC1pbnNlY3RzOwor5I+bID4gYVwta2luZFwtb2ZcLWluc2VjdHM7CivkjqggPiB0b1wtcGxvdWdoXC1hbmRcLXNvdzsKK+SNrSA+IGFcLWV3ZVwtb3JcLXNoZVwtZ29hdDsKK+SNpyA+IGFcLWV3ZVwtb3JcLXNoZVwtZ29hdDsKK+SNhyA+IGZsYXRcLWJvdHRvbVwtY3JvY2s7CivkjKggPiB0aGluXC1zaWxrXC1mYWJyaWNzOwor5Iu7ID4gdG9cLXNwaW5cLWFuZFwtd2VhdmU7Civki7ogPiBhXC1zd2luZ1wtYVwtY3J1cHBlcjsKK+SLmCA+IHRvXC1oYW5kXC1ieVwtYVwtcm9wZTsKK+SKryA+IGdyYWluc1wtd2l0aFwtYmVhcmQ7CivkipogPiBzdGVhbWVkXC1kdW1wbGluZ3M7CivkiYwgPiBjcnVkZVwtYmFtYm9vXC1tYXRzOwor5IigID4gYm9va3NcLWFuZFwtdm9sdW1lczsKK+SGlSA+IHRvXC1waWVyY2VcLXRocm91Z2g7CivkhpQgPiB0b1wtcGllcmNlXC10aHJvdWdoOwor5ISJID4gYVwtcml0ZVwtb3JcLXNlcnZpY2U7Civkg78gPiBhXC1yaXRlXC1vclwtc2VydmljZTsKK+SCoyA+IGFcLWtpbmRcLW9mXC1taW5lcmFsOwor5IG9ID4gZXllc2lnaHRcLW9ic2N1cmVkOwor5IG4ID4gZXllc2lnaHRcLW9ic2N1cmVkOwor5IGEID4gdG9cLWNsb3NlXC10aGVcLWV5ZXM7CivkgLkgPiB0b1wtd2lua1wtZXllbGFzaGVzOwor47+DID4gYW5cLW94XC1oZWFkZWRcLWJvaWw7CivjvrEgPiBpbmN1cmFibGVcLWRpc2Vhc2U7CivjvY0gPiBhblwtZWFydGhlblwtdmVzc2VsOwor47y0ID4gYW5cLWVhcnRoZW5cLXZlc3NlbDsKK+O6vyA+IGFcLWphZGVcLWxpa2VcLXN0b25lOwor47a/ID4gdGhlXC1zbW9rZVwtd2VudFwtdXA7CivjtrQgPiBhXC12ZXJ5XC1ncmVhdFwtZmlyZTsKK+O1qyA+IHdhdGVyXC1ndXNoaW5nXC1vdXQ7CivjtY0gPiBmaWxsZWRcLXdpdGhcLXdhdGVyOwor47WEID4gbmFtZVwtb2ZcLWFcLWR5bmFzdHk7Civjs5wgPiB0aGVcLWZsb3dpbmdcLXdhdGVyOwor47KyID4gZmluZVwtY290dG9uXC1jbG90aDsKK+OymCA+IGZpbmVcLXdvb2xlblwtY2xvdGg7CivjsosgPiBhXC1raW5kXC1vZlwtYW5pbWFsczsKK+OygyA+IHNtb290aFwtYW5kXC1jdXJ2ZWQ7CivjsKkgPiBzb3VuZFwtb2ZcLWxhdWdodGVyOwor46+/ID4gaGFuZGxlXC1vZlwtYVwtbGFkbGU7Civjr6YgPiB0aGVcLWdhbWVcLW9mXC1jaGVzczsKK+OutSA+IGNvbW1vblwtc2FuZGFsd29vZDsKK+OuqCA+IGNvZGl1bVwtbWFjcm9uYXR1bTsKK+OumiA+IHRoZVwtY2hlc3RudXRcLXRyZWU7CivjrJsgPiB0b1wtZHJ5XC1pblwtdGhlXC1zdW47Civjqa4gPiB0b1wtbGlmdFwtdXBcLW9yXC1vZmY7CivjqakgPiB0b1wtY29tZVwtdG9cLWFuXC1lbmQ7CivjqZkgPiBhXC1jb3JrXC1vclwtc3RvcHBlcjsKK+OooiA+IHRvXC1yaXBcLW9wZW5cLWZsZXNoOwor76a4ID4gYmVcLXN1YnNlcnZpZW50XC10bzsKK+OjoiA+IHRvXC1yZXN0XC1mcm9tXC13b3JrOwor46OTID4gbGl0ZXJhcnlcLWluXC10YXN0ZTsKK+OjjSA+IGFcLXJhaXNlZFwtcGxhdGZvcm07Civjoq4gPiB0b1wtdW5zdHJpbmdcLWFcLWJvdzsKK+OikSA+IGFcLWNvbGxhcHNlZFwtaG91c2U7CivjooggPiBhXC1jb2xsYXBzZWRcLWhvdXNlOwor46KEID4gYVwta2luZFwtb2ZcLXV0ZW5zaWw7CivjoZ8gPiBiZWRcLW1hdHNcLWZvclwtYmFieTsKK+OgtyA+IGFcLXZlc3NlbFwtZm9yXC1yaWNlOwor46ClID4gcnVnZ2VkXC1hbmRcLXVuZXZlbjsKK+OgoiA+IHJ1Z2dlZFwtYW5kXC11bmV2ZW47Civjn7QgPiBsdW1wXC1vblwtdGhlXC1oaWxsczsKK+OfpCA+IHpodWFuZ1wtaW5cLWd1YW5neGk7Civjn4MgPiB0b1wtaGF2ZVwtY2hhcmdlXC1vZjsKK+OerSA+IG5hbWVcLW9mXC1hblwtaXNsYW5kOwor452MID4gcHJvbG9uZ2VkXC1pbGxuZXNzOwor45u0ID4gdG9cLWFuZ2VyXC10b1wtYW5ub3k7CivjmoUgPiB0b1wtd29yc2hpcFwtb2ZcLWdvZDsKK+OZqSA+IGFuXC1lbmNsb3NpbmdcLXdhbGw7CivjmKYgPiB3YWxsXC1tYWRlXC1vZlwtc29pbDsKK+OYmiA+IGFuZ3J5XC1haXJcLW9mXC1sb29rOwor45e8ID4gZWF0aW5nXC1vclwtdGFsa2luZzsKK+OXpSA+IHNvdW5kXC1vZlwtc3RyaWtpbmc7CivjlrggPiB0b1wtbGF1Z2hcLWhlYXJ0aWx5Owor45anID4gY2FuXC1ub3RcLXNlZVwtY2xlYXI7CivjlJ0gPiBzdHJvbmdcLXJlc2lzdGFuY2U7Civjk74gPiB0b1wtd291bmRcLXRoZVwtc2tpbjsKK+ORnSA+IHRvXC1tYWtlXC1hXC1mb29sXC1vZjsKK+ORjyA+IHRvXC1zdGFuZFwtYW5kXC13YWl0Owor45GKID4gYVwta2luZFwtb2ZcLWRpc2Vhc2U7CivjkLIgPiBuYW1lXC1vZlwtYW5cLWlzbGFuZDsKK+S4qiA+IG51bWVyYXJ5XC1hZGp1bmN0Owor6YeMID4gdW5pdFwtb2ZcLWRpc3RhbmNlOwor6ZizID4gJydtYWxlJydcLXByaW5jaXBsZTsKK+ionSA+IGV4cHJlc3NcLXN1cnByaXNlOwor6buNID4gZ2x1dGlub3VzXC1taWxsZXQ7CivliacgPiB0aGVhdHJpY2FsXC1wbGF5czsKK+iYgiA+IHN0YW1lblwtb3JcLXBpc3RpbDsKK+aMuiA+IHRvXC1zdGFuZFwtdXByaWdodDsKK+ehgCA+IGZvdW5kYXRpb25cLXN0b25lOwor5YqHID4gdGhlYXRyaWNhbFwtcGxheXM7CivoiIUgPiBtb3RoZXInJ3NcLWJyb3RoZXI7CivokKcgPiBjb21tb25cLWFydGVtaXNpYTsKK+WAiyA+IG51bWVyYXJ5XC1hZGp1bmN0Owor5L+6ID4gcGVyc29uYWxcLXByb25vdW47CivnjrIgPiB0aW5rbGluZ1wtb2ZcLWphZGU7Civpmb0gPiAnJ21hbGUnJ1wtcHJpbmNpcGxlOwor566HID4gbnVtZXJhcnlcLWFkanVuY3Q7CivmjakgPiB0d2lzdFwtd2l0aFwtaGFuZHM7CivorrYgPiBleHByZXNzXC1zdXJwcmlzZTsKK+m7myA+IGJsYWNrZW5cLWV5ZWJyb3dzOwor5aaGID4gdG9cLWFkb3JuXC1vbmVzZWxmOwor5bmiID4gY2FycmlhZ2VcLWN1cnRhaW47Civmoq0gPiB3ZWF2ZXInJ3NcLXNodXR0bGU7CivmvKogPiByaXBwbGVzXC1vblwtd2F0ZXI7CivnnLcgPiB0YWtlXC1pbnRlcmVzdFwtaW47Civli4sgPiBtZXJpdG9yaW91c1wtZGVlZDsKK+eUrSA+IHRoZXJlXC1pc1wtbm9cLW5lZWQ7CivnpaAgPiBhbmNlc3RyYWxcLXRlbXBsZTsKK+iIlCA+IGxpY2tcLXdpdGhcLXRvbmd1ZTsKK+iViiA+IHVub3BlbmVkXC1mbG93ZXJzOwor6LWjID4gamlhbmd4aVwtcHJvdmluY2U7Civot7cgPiByYWlzZVwtb25lJydzXC1mb290Owor5YmBID4gY2hvcFwtYnlcLXBvdW5kaW5nOwor6JawID4gYVwtbWVkaWNpbmFsXC1oZXJiOwor5Y+8ID4gaG9sZGluZ1wtaW5cLW1vdXRoOwor6I28ID4gYml0dGVyXC12ZWdldGFibGU7CivlvpkgPiBtb3ZlXC1vbmUnJ3NcLWFib2RlOwor5raUID4gcml2ZXJcLWluXC1zaGFhbnhpOwor5r2iID4gZXhwYW5zZVwtb2ZcLXdhdGVyOwor56e4ID4gc3RhbGtzXC1vZlwtbWlsbGV0Owor6KKIID4gYnVkZGhpc3RcLWNhc3NvY2s7Civnj54gPiBraW5kXC1vZlwtbmVja2xhY2U7Civllb4gPiB3YWlsaW5nXC1vZlwtY2hpbGQ7CivkursgPiByYWRpY2FsXC1udW1iZXJcLTk7CivoiJAgPiBsaWNrXC13aXRoXC10b25ndWU7CivlpJkgPiBlYXJseVwtaW5cLW1vcm5pbmc7CivpuZggPiBhXC1raW5kXC1vZlwtcGlnZW9uOwor5aipID4gZ2l2ZVwtYmlydGhcLWNoaWxkOwor5aedID4gYVwtYmVhdXRpZnVsXC1naXJsOwor5oeRID4gYmVcLXNpY2tcLWF0XC1oZWFydDsKK+mUiSA+IGNhcnBlbnRlcicnc1wtZmlsZTsKK+a0sSA+IGFcLWxha2VcLWluXC15dW5uYW47CivonYggPiBzbWFsbFwtZ3JlZW5cLWZyb2c7CivluLwgPiB3b21lbicnc1wtaGVhZGdlYXI7Civni44gPiBiZVwtZmFtaWxpYXJcLXdpdGg7Civog6ogPiBhcnJhbmdlXC1pblwtb3JkZXI7CivosaIgPiBkb21lc3RpY1wtYW5pbWFsczsKK+echyA+IGJsaW5kXC1pblwtb25lXC1leWU7Civnvr8gPiBsZWdlbmRhcnlcLWFyY2hlcjsKK+iKqSA+IHNhbHRcLW1hcnNoXC1wbGFudDsKK+iMrSA+IGFuXC1hcXVhdGljXC1ncmFzczsKK+iTliA+IGNhc3Rvclwtb2lsXC1wbGFudDsKK+WCpyA+IGVudGVydGFpblwtZ3Vlc3RzOwor6JacID4gZXZlcmdyZWVuXC1zaHJ1YnM7CivotrogPiBzaXRcLWNyb3NzXC1sZWdnZWQ7CivmpLkgPiBhXC1jaG9wcGluZ1wtYm9hcmQ7CivpnIggPiB0b3JyZW50aWFsXC1yYWluczsKK+i3jyA+IHNpdFwtY3Jvc3NcLWxlZ2dlZDsKK+abqSA+IGluXC1hbmNpZW50XC10aW1lczsKK+agjCA+IHN1cHBvcnRpbmdcLWJsb2NrOwor5ZOaID4gY2hlbWljYWxcLWVsZW1lbnQ7CivnrYwgPiBiYW1ib29cLWZpc2hcLXRyYXA7CivmtY0gPiBpcnJpZ2F0aW9uXC1kaXRjaDsKK+eMgSA+IGFcLWtpbmRcLW9mXC1tb25rZXk7CivllbYgPiBcLWRcLVwrXC1pbmVcLVwoY2hlbVwuXCk7CivprK8gPiBzYWNyaWZpY2lhbFwtd2luZTsKK+mytyA+IHBhZ3Jvc29tdXNcLW1ham9yOwor6IGxID4gYmVudFwtYW5kXC10d2lzdGVkOwor5YqiID4gcHV0XC1mb3J0aFwtZWZmb3J0Owor6J+qID4gYVwta2luZFwtb2ZcLWNpY2FkYTsKK+ielyA+IGFcLWtpbmRcLW9mXC1jaWNhZGE7CivotYYgPiBmYXJld2VsbFwtcHJlc2VudDsKK+WfryA+IGNvdmVyXC13aXRoXC1lYXJ0aDsKK+mylCA+IGtpbmRcLW9mXC1zdHVyZ2VvbjsKK+e9qCA+IG1lZGljYWxcLWNvbXByZXNzOwor5aucID4gaHVzYmFuZCcnc1wtcGFyZW50Owor5rykID4gbWFyaW5hdGVcLWluXC1zYWx0Owor5ZqGID4gZ2l2ZVwtZm9ydGhcLXNvdW5kOwor6Ja5ID4gY3lwZXJ1c1wtcm90dW5kdXM7CivojIYgPiBzcGVjaWVzXC1vZlwtZ3Jhc3M7CivpvZkgPiBwcm9qZWN0aW5nXC10ZWV0aDsKK+m5tiA+IHNhbHR5XC1hbmRcLWJpdHRlcjsKK+m2uyA+IGFcLWtpbmRcLW9mXC1waWdlb247Civpr5sgPiBwYWdyb3NvbXVzXC1tYWpvcjsKK+mvhiA+IHRoZVwtc2thdGVcLW9yXC1yYXk7CivprqogPiBraW5kXC1vZlwtc3R1cmdlb247CivprawgPiBzb2xlXC1vclwtZmxvdW5kZXI7CivpqrQgPiBhXC1wdXRyaWRcLWNhcmNhc2U7CivpppggPiBjdXRcLW9mZlwtbGVmdFwtZWFyOwor6aOAID4gc291Z2hpbmdcLW9mXC13aW5kOwor6Z+dID4gbGVhdGhlclwtYXJtXC1iYW5kOwor6Z+KID4gYVwtY2FzZVwtZm9yXC1hXC1ib3c7CivpnrYgPiBiaWdcLWxlYXRoZXJcLWJlbHQ7Civpm5cgPiBhXC13aGl0ZVwtcGhlYXNhbnQ7CivpmqQgPiB0b1wtZmFsbFwtaW5cLXJ1aW5zOwor6ZegID4gZ2F0ZVwtb2ZcLWFcLW1hcmtldDsKK+mKvCA+IGNhcnBlbnRlcicnc1wtZmlsZTsKK+mKuyA+IGFudGltb255XC1zdGliaXVtOwor6YqnID4gcG9pbnRcLW9mXC1hXC1zd29yZDsKK+mJgCA+IHBvdGFzc2l1bVwta2FsaXVtOwor6Lq3ID4gb2ZcLXNob3J0XC1zdGF0dXJlOwor6Lm6ID4gcmFpc2VcLW9uZScnc1wtZm9vdDsKK+i5sSA+IHRvXC1zdGFnZ2VyXC1hbG9uZzsKK+i5kCA+IHRha2VcLXNob3J0XC1zdGVwczsKK+i0myA+IGppYW5neGlcLXByb3ZpbmNlOwor6LSQID4gZmFyZXdlbGxcLXByZXNlbnQ7Civos5kgPiBnaXZlXC1mb3JcLWNoYXJpdHk7CivosY8gPiBoYWxmXC1ncm93blwtYmVhbnM7CivoqpUgPiB0b1wtYmVhclwtY2hpbGRyZW47CivopoIgPiB0b1wtdGhyb3dcLWFcLXJpZGVyOwor6KWxID4gbGVnc1wtb2ZcLXRyb3VzZXJzOwor6KObID4gdG9cLXdyYXBcLWFuZFwtYmluZDsKK+iilyA+IHVubGluZWRcLWdhcm1lbnRzOwor6KGOID4gdG9cLWdpdmVcLXBsZWFzdXJlOwor6J+/ID4gYWNyaWRhXC1jaGluZW5zaXM7Civon4ggPiBzbWFsbFwtZ3JlZW5cLWZyb2c7CivonosgPiBzcGlkZXJcLW1pbGxpcGVkZTsKK+iduyA+IGltbWF0dXJlXC1sb2N1c3RzOwor6JmlID4gc3RyaXBlZFwtd2lsZFwtY2F0Owor6JemID4gZWRpYmxlXC1tdXNocm9vbXM7Civol4sgPiBzYW1idWN1XC1qYXZpbmljYTsKK+iWqyA+IGFcLW1lZGljaW5hbFwtaGVyYjsKK+iWgyA+IGN5cGVydXNcLWFtdXJpY3VzOwor6JWtID4gY29tbW9uXC1hcnRlbWlzaWE7CivolYsgPiB1bm9wZW5lZFwtZmxvd2VyczsKK+iUhyA+IGx1eHVyaWFudFwtZ3Jvd3RoOwor6JGZID4gY2Vsb3NpYVwtYXJnZW50ZWE7Civoj4kgPiB0aGVcLWdyZWVuXC1iYW1ib287CivoipggPiBtYWx2YVwtc3lsdmVzdHJpczsKK+iKgyA+IGx1eHVyaWFudFwtZ3Jvd3RoOwor6IeaID4gYXJyYW5nZVwtaW5cLW9yZGVyOwor6IC8ID4gZWFyc1wtd2l0aG91dFwtcmltOwor57a1ID4gdmFyaWNvbG9yZWRcLXNpbGs7CivntL0gPiBhXC1zdHJhbmRcLW9mXC1zaWxrOwor57O1ID4gZmVybWVudGluZ1wtZ3JhaW47Civns7EgPiBmZXJtZW50aW5nXC1ncmFpbjsKK+eziCA+IHNhY3JpZmljaWFsXC1yaWNlOwor57GnID4gY3J1ZGVcLWJhbWJvb1wtbWF0Owor566vID4gYmFtYm9vXC1wYWxhbnF1aW47CivnroogPiBiYW1ib29cLXdpdGhcLXRoaW47Civnp7cgPiBzb3VuZFwtb2ZcLXJlYXBpbmc7CivnpI4gPiBmb3VuZGF0aW9uXC1zdG9uZTsKK+ejpSA+IGFcLWhlYXBcLW9mXC1zdG9uZXM7CivnoKsgPiBhbmNlc3RyYWxcLXRhYmxldDsKK+eemCA+IGRlZXBseVwtc3Vua1wtZXllczsKK+eeiyA+IGdsYXJlXC13aXRoXC1hbmdlcjsKK+ednCA+IHRvXC1vcGVuXC10aGVcLWV5ZXM7Civnm6YgPiBsaWRcLW9mXC1hXC1jYWxkcm9uOwor55mJID4gdG9cLWhhdGVcLWJpdHRlcmx5Owor55iFID4gdG9cLWhhdGVcLWJpdHRlcmx5Owor55OfID4gdGhlXC1ib3R0bGVcLWdvdXJkOwor54y4ID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+eLuyA+IGFcLWZhYnVsb3VzXC1iZWFzdDsKK+eDnCA+IGxpZ2h0XC1vZlwtdGhlXC1zdW47CivngaAgPiBtYXJpbmF0ZVwtaW5cLXNhbHQ7Civmvq4gPiBpcnJpZ2F0aW9uXC1kaXRjaDsKK+a+piA+IHBsYWNlXC1pblwtc2ljaHVhbjsKK+a+pSA+IGFcLWJsb2NrZWRcLXN0cmVhbTsKK+a+lCA+IHJhZGlhbmNlXC1vZlwtZ2VtczsKK+a4qyA+IGJlYXRpbmdcLW9mXC1vY2VhbjsKK+a1pCA+IGJlYXRpbmdcLW9mXC1vY2VhbjsKK+avriA+IHRvXC1wdWxsXC1vdXRcLWhhaXI7Civmr6ogPiBzZXJnZVwtZnJvbVwtdGliZXQ7Civmq6ggPiBzdXBwb3J0aW5nXC1ibG9jazsKK+aomyA+IGJlbmRpbmdcLWJyYW5jaGVzOwor5p6yID4gbWFsZVwtbmV0dGxlXC1oZW1wOwor5p6SID4gdGhlXC1jb2NvbnV0XC10cmVlOwor5pmFID4gbGlnaHRcLW9mXC10aGVcLXN1bjsKK+aWtSA+IHRvXC1jdXRcLXRvXC1waWVjZXM7Civmlp4gPiBhXC1zdGFja1wtb2ZcLWdyYWluOwor5pKaID4gdHdpcmxcLWluXC1maW5nZXJzOwor5oy3ID4gdG9cLXByb3BlbFwtYVwtYm9hdDsKK+aHoyA+IGJlXC1zaWNrXC1hdFwtaGVhcnQ7CivlvLMgPiBjaXJjdWxhclwtbWVhc3VyZTsKK+W8qiA+IGNpcmN1bGFyXC1tZWFzdXJlOwor5bu1ID4gdG9cLWdvXC1vblwtY2lyY3VpdDsKK+W5lyA+IHdvbWVuJydzXC1oZWFkZ2VhcjsKK+WsjiA+IHRvXC1iZWFyXC1tdWx0aXBsZTsKK+WqpCA+IGh1c2JhbmQnJ3NcLWZhbWlseTsKK+WmnSA+IHRvXC1hZG9yblwtb25lc2VsZjsKK+WipCA+IHRvXC1mYWxsXC1pblwtcnVpbnM7Civlm40gPiBkb3VibGVcLWhhcHBpbmVzczsKK+WasyA+IG15dGhpY2FsXC1lbXBlcm9yOwor5ZiFID4gc291bmRcLW9mXC1zaWdoaW5nOwor5ZeeID4gdG9cLWNvbnN1bHRcLWFib3V0Owor5ZeBID4gZ2l2ZVwtZm9ydGhcLXNvdW5kOwor5Za6ID4gdG9cLWJlXC1sb2NhdGVkXC1hdDsKK+WLsyA+IG1lcml0b3Jpb3VzXC1kZWVkOwor5YuyID4gbWVyaXRvcmlvdXNcLWRlZWQ7Civli7EgPiBwdXRcLWZvcnRoXC1lZmZvcnQ7Civli5sgPiBtZXJpdG9yaW91c1wtZGVlZDsKK+WItCA+IGNob3BcLWJ5XC1wb3VuZGluZzsKK+WGkyA+IGFcLXNlY2x1ZGVkXC1wbGFjZTsKK+WEkCA+IGVudGVydGFpblwtZ3Vlc3RzOwor5YSKID4gcm91Z2hcLWFuZFwtcnVnZ2VkOwor5YKcID4gYVwtbWlub3JpdHlcLXRyaWJlOwor5LaxID4gYVwta2luZFwtb2ZcLXR1cnRsZTsKK+S1pCA+IHRvXC1jcmFja1wtb3JcLWNoYXA7CivktaMgPiB3aGl0ZVwtd2l0aFwtYmxhY2s7CivktaEgPiB0b1wtY3JhY2tcLW9yXC1jaGFwOwor5LWDID4gYVwta2luZFwtb2ZcLWJhcmxleTsKK+S0rCA+IGNydW1ic1wtb2ZcLWJhcmxleTsKK+S0pCA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivktKMgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor5LSFID4gYVwtbGVnZW5kYXJ5XC1iaXJkOwor5LOiID4gc21hbGxcLXdpbGRcLWdvb3NlOwor5LOfID4gYVwtbGVnZW5kYXJ5XC1iaXJkOwor5LOQID4gYW5cLW93bFwtbGlrZVwtYmlyZDsKK+SysiA+IGFcLWhhd2tcLWxpa2VcLWJpcmQ7CivksqYgPiBhXC1sZWdlbmRhcnlcLWJpcmQ7CivksIMgPiBkaXNoZXZlbGxlZFwtaGFpcjsKK+SvsyA+IGxvb3NlbHlcLWFycmFuZ2VkOwor5K+uID4gZGlzaGV2ZWxsZWRcLWhhaXI7Civkr4cgPiB0b1wtZXhlcnRcLW9uZXNlbGY7CivkrrQgPiB1bnN0YWJsZVwtd2Fsa2luZzsKK+SusyA+IHRvXC1naXZlXC1iaXJ0aFwtdG87CivkrqkgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor5K6gID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+SugSA+IGFcLXBhaXJcLW9mXC1ob3JzZXM7CivkroAgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor5KuMID4gYm93ZWRcLW9uZScnc1wtaGVhZDsKK+SqjiA+IHN0cmluZ3NcLW9mXC1hXC1jYXA7CivkqaUgPiBhXC1iZWx0XC1mb3JcLWhvcnNlOwor5Ki7ID4gcm9hclwtb2ZcLXRodW5kZXJzOwor5Ki0ID4gZ2F0aGVyaW5nXC1jbG91ZHM7CivkqLMgPiB0aGVcLXJhaW5cLXN0b3BwZWQ7CivkqI8gPiBzb3VuZFwtb2ZcLXJhaW5pbmc7CivkqIogPiBhXC1mbG9ja1wtb2ZcLWJpcmRzOwor5Ke4ID4gYVwta2luZFwtb2ZcLXBpZ2VvbjsKK+SnoSA+IGFcLWZvcnRpZmllZFwtd2FsbDsKK+SnhCA+IG5hbWVcLW9mXC1hXC1wZXJzb247CivkppUgPiBiYW5nXC1vZlwtdGhlXC1kb29yOwor5KaCID4gY2hlbWljYWxcLWVsZW1lbnQ7CivkpZsgPiBhXC1raW5kXC1vZlwtc2lja2xlOwor5KWHID4gY2hlbWljYWxcLWVsZW1lbnQ7CivkpLIgPiBjaGVtaWNhbFwtZWxlbWVudDsKK+SkoCA+IGNoZW1pY2FsXC1lbGVtZW50Owor5KOuID4gc21lbGxcLW9mXC1hbGNvaG9sOwor5KOrID4gc291cmVkXC1iZWFuXC1jdXJkOwor5KKeID4gcm93c1wtYW5kXC1jb2x1bW5zOwor5KGuID4gdHJhY2VcLW9mXC1hXC13aGVlbDsKK+ShoiA+IGFcLXNtYWxsXC1jYXJyaWFnZTsKK+SgvyA+IG5hbWVcLW9mXC1hXC1wZXJzb247CivkoLsgPiB0b1wtYmVuZFwtdGhlXC1ib2R5Owor5J+LID4gdG9cLXByZXNzXC1mb3J3YXJkOwor5J6WID4gbmFtZVwtb2ZcLWFcLXBlcnNvbjsKK+SejCA+IHRvXC1sb3NlXC1pblwtdHJhZGU7CivknaMgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor5J2aID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+SdiyA+IGFcLWxpdHRsZVwtb2ZcLXBpZ3M7CivknYcgPiBncnVudGluZ1wtb2ZcLXBpZ3M7Civkm48gPiB0b1wtY2FsbFwtc29tZWJvZHk7Civkm44gPiB0b1wtc2hvdXRcLWluXC1yYWdlOwor5JuCID4gdG9cLXNlcGFyYXRlXC1mcm9tOwor5Jq/ID4gdG9cLXNob3V0XC1pblwtcmFnZTsKK+SalCA+IHRvXC1sb29rXC1zdWRkZW5seTsKK+SakiA+IGV5ZXNpZ2h0XC1ibHVycmVkOwor5JqOID4gZXllc2lnaHRcLWJsdXJyZWQ7CivkmosgPiBleWVzaWdodFwtYmx1cnJlZDsKK+SagyA+IHRvXC1yZWFsaXplXC1mdWxseTsKK+SZrSA+IHRvXC1saWZ0XC1vclwtcmFpc2U7CivkmIsgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JiCID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXvyA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl7wgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5Je4ID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXsSA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl68gPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JeuID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXoSA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl58gPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JebID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXjyA+IG5hbWVcLW9mXC1hXC1pbnNlY3Q7Civkl44gPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JeGID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SXhCA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7Civkl4EgPiBhXC1raW5kXC1vZlwtY2ljYWRhOwor5Ja3ID4gYVwta2luZFwtb2ZcLWluc2VjdDsKK+SWtCA+IGFcLWtpbmRcLW9mXC1pbnNlY3Q7CivklrIgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5JavID4gcG9pc29ub3VzXC1pbnNlY3Q7CivklpAgPiBzb3VuZFwtb2ZcLWFcLXRpZ2VyOwor5JS3ID4gY3lwZXJ1c1wtcm90dW5kdXM7CivkkqMgPiBsdXNoXC1vclwtZGVsaWNhdGU7CivkkbggPiBhXC1ncm91cFwtb2ZcLWJvYXRzOwor5JGFID4gZGl6enlcLWFuZFwtc2xlZXB5Owor5JCoID4gYmFja1wtb2ZcLXRoZVwtZm9vdDsKK+SPkiA+IGhhbGZcLW9mXC10aGVcLWJvZHk7Civkj48gPiBzaWduc1wtYW5kXC1ncm9hbnM7CivkjrwgPiBhXC1raW5kXC1vZlwtaW5zZWN0Owor5I6vID4gd2ludGVyXC1wbG91Z2hpbmc7CivkjoIgPiBjb2xvcmZ1bFwtZmVhdGhlcjsKK+SMvSA+IHZhcmljb2xvcmVkXC1zaWxrOwor5IyCID4gaW5cLWFuY2llbnRcLXRpbWVzOwor5IukID4gcGxhaW5cLXdoaXRlXC1zaWxrOwor5IuUID4gdG9cLWJhbmRcLXRvZ2V0aGVyOwor5IqLID4gdG9cLWFkb3JuXC1vbmVzZWxmOwor5Im3ID4gYVwtZmVhdGhlclwtc2NyZWVuOwor5ImJID4gYVwtd3JpdGluZ1wtdGFibGV0Owor5IiZID4gYmFtYm9vXC10b1wtd2l0aGVyOwor5IiIID4gYVwta2luZFwtb2ZcLWJhbWJvbzsKK+SIgyA+IGFcLWtpbmRcLW9mXC1iYW1ib287CivkiIIgPiBhXC1raW5kXC1vZlwtYmFtYm9vOwor5Ie7ID4gYVwta2luZFwtb2ZcLWJhbWJvbzsKK+SHuSA+IGFcLWtpbmRcLW9mXC1iYW1ib287Civkh7cgPiBpblwtYW5jaWVudFwtdGltZXM7Civkh6YgPiBhXC1raW5kXC1vZlwtYmFtYm9vOwor5Ia/ID4gdG9cLXRhbGtcLWluXC1zbGVlcDsKK+SGsiA+IGFcLXNwYWNpb3VzXC1ob3VzZTsKK+SGiCA+IHlvdW5nXC1hbmRcLXRlbmRlcjsKK+SFvCA+IGFcLWtpbmRcLW9mXC1ncmFpbnM7CivkhbogPiBncmFpblwtaW5cLXRoZVwtZWFyOwor5IWKID4gYVwtc3BhY2lvdXNcLWhvdXNlOwor5IS6ID4geW91bmdcLWFuZFwtdGVuZGVyOwor5IKqID4gaGFyZFwtYmFycmVuXC1sYW5kOwor5ICDID4gYVwta2luZFwtb2ZcLXZlc3NlbDsKK+O+piA+IHNjYWJcLW92ZXJcLWFcLXNvcmU7CivjvoEgPiB3YWxraW5nXC1saWtlXC1tYWQ7Civjva4gPiBhXC1wb2ludFwtb2ZcLWxpZ2h0Owor472KID4gY3JhY2tpbmdcLW9mXC10aWxlOwor47uSID4gcmVkXC1jb2xvcmVkXC1qYWRlOwor47uBID4gYVwta2luZFwtb2ZcLWphc3BlcjsKK+O6tSA+IGJsYWNrXC1qYWRlXC1zdG9uZTsKK+O6tCA+IG5hbWVcLW9mXC1hXC1zcGlyaXQ7CivjuqYgPiBhXC1ydW5uaW5nXC1hbmltYWw7CivjuqMgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor47qiID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+O6nSA+IHNvdW5kXC1vZlwtYVwtdGlnZXI7CivjupggPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor47m8ID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+O5uiA+IGRvZ1wtdG9cLXRha2VcLWZvb2Q7CivjubQgPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor47mtID4gYVwta2luZFwtb2ZcLW1vbmtleTsKK+O5rCA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivjuaggPiBhXC1raW5kXC1vZlwtYW5pbWFsOwor47mfID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+O5kyA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivjuYcgPiBhXC1raW5kXC1vZlwtY2F0dGxlOwor47mEID4gYVwta2luZFwtb2ZcLWNhdHRsZTsKK+O4uyA+IGFcLWtpbmRcLW9mXC1jYXR0bGU7CivjuLMgPiBhXC1raW5kXC1vZlwtY2F0dGxlOwor47ijID4gaW5cLWFuY2llbnRcLWNoaW5hOwor47a+ID4gdG91Z2hcLWFuZFwtaG9uZXN0Owor47aNID4gbmFtZVwtb2ZcLWFcLXN0cmVhbTsKK+O2jCA+IG5hbWVcLW9mXC1hXC1zdHJlYW07CivjtbAgPiBuYW1lXC1vZlwtYVwtc3RyZWFtOwor47WGID4gcmFkaWFuY2VcLW9mXC1nZW1zOwor47WDID4gbmFtZVwtb2ZcLWFcLXN0cmVhbTsKK+O0pyA+IG9mXC1mbG93aW5nXC13YXRlcjsKK+OzvSA+IGFcLXdhdGVyeVwtZXhwYW5zZTsKK+OxtiA+IGFcLXN3ZWxsZW5cLWNvcnBzZTsKK+OxrSA+IGFuXC1pbmZlcnRpbGVcLWVnZzsKK+OxiCA+IG5hbWVcLW9mXC1hXC1wZXJzb247CivjsKQgPiB0b1wtbGF1Z2hcLWhlcnRpbHk7CivjsJsgPiBuYW1lXC1vZlwtYVwtY291bnR5Owor47CFID4gZWF2ZXNcLW9mXC1hXC1ob3VzZTsKK+OvlSA+IHN0aWNrc1wtb3JcLWZyYW1lczsKK+OvgyA+IHRoZVwtdmFybmlzaFwtdHJlZTsKK+OukyA+IGFuXC1leHRyZW1lXC1saW1pdDsKK+OtuiA+IHRoZVwtY2hlcnJ5XC1hcHBsZTsKK+OqrSA+IHRvXC1kcmF3XC10b2dldGhlcjsKK+OqmCA+IHRvXC1kcmF3XC10b2dldGhlcjsKK+OqliA+IHNvdW5kXC1vZlwtYmVhdGluZzsKK+OovCA+IHRvXC10YWtlXC1ieVwtZm9yY2U7Civjp7ogPiBhXC1maW5nZXJcLXdyYXBwZXI7Civvp6kgPiB1bml0XC1vZlwtZGlzdGFuY2U7Civvpq0gPiB0aW5rbGluZ1wtb2ZcLWphZGU7CivjppwgPiB0b1wtbW92ZVwtdGhlXC1taW5kOwor76aRID4gdHdpcmxcLWluXC1maW5nZXJzOwor46WUID4gdG9cLW1vdmVcLXRoZVwtbWluZDsKK++kviA+IHRoZVwtZ3JlZW5cLWJhbWJvbzsKK+OktCA+IHRvXC1tb3ZlXC10aGVcLW1pbmQ7CivjpKIgPiB0b1wtbW92ZVwtdGhlXC1taW5kOwor76SXID4ga2luZFwtb2ZcLW5lY2tsYWNlOwor46OIID4gYVwta2luZFwtb2ZcLWFuaW1hbDsKK+OisCA+IHRvXC1zdHJldGNoXC1hXC1ib3c7Civjob0gPiBkZXByYXZlZFwtdGFsa2luZzsKK+OhiSA+IGFcLWtpbmRcLW9mXC1mYWJyaWM7CivjoKcgPiBhXC1saXR0bGVcLXNsYW50ZWQ7CivjoI4gPiBhXC1sb2Z0eVwtbW91bnRhaW47CivjnasgPiBzaGFwZVwtb2ZcLXRoZVwtc2t5Owor452qID4gYVwtc2xhbnRpbmdcLWhvdXNlOwor452pID4gc3BhY2lvdXNseVwtcm9vbXM7CivjnZcgPiBzcGFjaW91c2x5XC1yb29tczsKK+OctCA+IGRhcmtcLWFuZFwtb2JzY3VyZTsKK+OcnSA+IHRvXC1jaGVyaXNoXC1hbmdlcjsKK+OciCA+IGFcLWJlYXVnaWZ1bFwtZmFjZTsKK+OanyA+IGFcLWtpbmRcLW9mXC1hbmltYWw7CivjmpwgPiB3aXRoXC1ncmVhdFwtcG93ZXI7CivjmpcgPiB3aXRoXC1hXC1iaWdcLW1vdXRoOwor45qHID4gZHJhd1wtdGhlXC1mZWV0XC11cDsKK+OZniA+IGFcLXNtYWxsXC1tb3VudGFpbjsKK+OZjiA+IGJyZWFjaFwtb2ZcLWFcLXRhbms7CivjmYUgPiBhXC13YWxsZWRcLXZpbGlhZ2U7CivjmYAgPiBhXC12ZWdldGFibGVcLXBsb3Q7Civjl7sgPiBiYWJ5JydzXC1hbnN3ZXJpbmc7Civjl5kgPiB0b1wtc2hvdXRcLW9yXC1iYXdsOwor45WtID4gdG9cLWJhcmtcLWFzXC1hXC1kb2c7CivjlakgPiBzb3VuZFwtb2ZcLXRhcHBpbmc7CivjlYcgPiByb2Nrc1wtY29sbGFwc2luZzsKK+OUtSA+IGFcLWtpbmRcLW9mXC12ZXNzZWw7CivjlLEgPiBhXC1zdGFja1wtb2ZcLWdyYWluOwor45SoID4gbmFtZVwtb2ZcLWFcLXBlcnNvbjsKK+OUmiA+IHRvXC1leGVydFwtb25lc2VsZjsKK+OUkSA+IGFuXC1pbmNpc2VkXC13b3VuZDsKK+OTvCA+IGFuXC1pbmNpc2VkXC13b3VuZDsKK+OTuCA+IHRvXC1jdXRcLXRvXC1waWVjZXM7Civjkq0gPiBhblwtZWxkZXJcLWJyb3RoZXI7CivjkqEgPiBuYW1lXC1vZlwtYVwtcGVyc29uOwor45KBID4gb2ZcLWdyZWF0XC1zdGF0dXJlOwor45GxID4gYVwta2luZFwtb2ZcLW1vbmtleTsKK+OQuyA+IG5hbWVcLW9mXC1hXC1wZXJzb247CivjkIAgPiBoaWxsb2NrXC1vclwtbW91bmQ7CivnnaggPiBsb29rXC1hc2thbmNlXC1hdDsKK+aAjiA+IHdoYXRcP1wtd2h5XD9cLWhvd1w/Owor5pS2ID4gZ2F0aGVyXC10b2dldGhlcjsKK+WFmiA+IHBvbGl0aWNhbFwtcGFydHk7CivniYggPiBwcmludGluZ1wtYmxvY2tzOwor5a2jID4gcXVhcnRlclwtb2ZcLXllYXI7CivniaEgPiBtYWxlXC1vZlwtYW5pbWFsczsKK+iouiA+IGV4YW1pbmVcLXBhdGllbnQ7Civlp5EgPiBmYXRoZXInJ3NcLXNpc3RlcjsKK+ikkyA+IHN3YWRkbGluZ1wtY2xvdGg7CivppoYgPiBwdWJsaWNcLWJ1aWxkaW5nOwor5ry/ID4gYW55XC10aGlja1wtZmx1aWQ7Civpm4QgPiBtYWxlXC1vZlwtc3BlY2llczsKK+S6vyA+IGh1bmRyZWRcLW1pbGxpb247Civlm7ogPiB0b1wtYmVjb21lXC1zb2xpZDsKK+m7qCA+IHBvbGl0aWNhbFwtcGFydHk7CivmuqogPiBtb3VudGFpblwtc3RyZWFtOwor6JmeID4gY29uY2VybmVkXC1hYm91dDsKK+WXmiA+IHNvdW5kXC1vZlwtY3J5aW5nOwor6JaHID4gb3NtdW5kYVwtcmVnYWxpczsKK+aIjyA+IHRoZWF0cmljYWxcLXBsYXk7Civlj6wgPiBpbXBlcmlhbFwtZGVjcmVlOwor5Y+OID4gZ2F0aGVyXC10b2dldGhlcjsKK+eRniA+IGZlbGljaXRvdXNcLW9tZW47CivprKIgPiBoYWlyXC1vblwtdGVtcGxlczsKK+WDpyA+IGJ1ZGRoaXN0XC1wcmllc3Q7CivmqpwgPiBjaGluZXNlXC1jeXByZXNzOwor5qqOID4gc21hbGxcLXJlZFwtYXBwbGU7CivpqYUgPiBzcHVyXC1hXC1ob3JzZVwtb247Civoh58gPiBpbnRlcm5hbFwtb3JnYW5zOwor6aeIID4gc3B1clwtYVwtaG9yc2VcLW9uOwor6aeGID4gc3B1clwtYVwtaG9yc2VcLW9uOwor6aSoID4gcHVibGljXC1idWlsZGluZzsKK+WEhCA+IGh1bmRyZWRcLW1pbGxpb247CivmoacgPiBjaGluZXNlXC1jeXByZXNzOwor6ISPID4gaW50ZXJuYWxcLW9yZ2FuczsKK+mpsSA+IHNwdXJcLWFcLWhvcnNlXC1vbjsKK+WcsyA+IGZ1cnJvd1wtaW5cLWZpZWxkOwor57m7ID4gZmluZVwtc2lsa1wtZ3VhemU7CivlrZ8gPiBmaXJzdFwtaW5cLXNlcmllczsKK+e4iyA+IGNsaW1iXC1kb3duXC1yb3BlOwor6ZakID4gc21hbGxcLXNpZGVcLWRvb3I7Civmlo4gPiB2ZWdldGFyaWFuXC1kaWV0Owor55uvID4gcml2ZXRcLWdhemVcLXVwb247Civnsp8gPiB1bmh1c2tlZFwtbWlsbGV0Owor57GQID4gY2xpbWJpbmdcLXBsYW50czsKK+aOuyA+IHNjcmF0Y2hcLWxpZ2h0bHk7Civkv5ggPiBwcmlzb25lclwtb2ZcLXdhcjsKK+aMviA+IGNsYXNwXC11bmRlclwtYXJtOwor6K+KID4gZXhhbWluZVwtcGF0aWVudDsKK+WqsyA+IGRhdWdodGVyXC1pblwtbGF3Owor5a6ZID4gdGltZVwtYXNcLWNvbmNlcHQ7CivlkZwgPiBzb3VuZFwtb2ZcLWNyeWluZzsKK+WNnCA+IGZvcnR1bmVcLXRlbGxpbmc7CivmiLIgPiB0aGVhdHJpY2FsXC1wbGF5Owor5oivID4gdGhlYXRyaWNhbFwtcGxheTsKK+W4liA+IGludml0YXRpb25cLWNhcmQ7CivpgJ4gPiBpbmR1bGdlXC1vbmVzZWxmOwor5o+qID4gZ3Jhc3BcLXdpdGhcLWhhbmQ7Civku5EgPiBsb2dpY2FsXC1yZWFzb25zOwor5rWGID4gYW55XC10aGlja1wtZmx1aWQ7CivmjJ8gPiBjbGFzcFwtdW5kZXJcLWFybTsKK+eFniA+IG1hbGlnbmFudFwtZGVpdHk7CivmlosgPiB2ZWdldGFyaWFuXC1kaWV0Owor6bOMID4gaHVnZVwtc2VhXC10dXJ0bGU7CivljaYgPiBmb3J0dW5lXC10ZWxsaW5nOwor556pID4gd2F0Y2hcLWNhcmVmdWxseTsKK+eWmiA+IGNocm9uaWNcLWRpc2Vhc2U7CivolJMgPiBjcmVlcGluZ1wtcGxhbnRzOwor6aqPID4gZXhjZWxsZW50XC1ob3JzZTsKK+mXvSA+IGZ1amlhblwtcHJvdmluY2U7CivoooUgPiBjdXJsaW5nXC11cHdhcmRzOwor6L6QID4gc3Bva2VzXC1vZlwtd2hlZWw7CivnkIkgPiBzcGFya2xpbmdcLXN0b25lOwor6IicID4gbGVnZW5kYXJ5XC1ydWxlcjsKK+i9pyA+IGNydXNoXC1ieVwtd2VpZ2h0Owor5ruHID4geXVubmFuXC1wcm92aW5jZTsKK+mskyA+IGhhaXJcLW9uXC10ZW1wbGVzOwor5qGTID4gdmFyaWV0eVwtb2ZcLXRyZWU7Civmo6AgPiBjcmFiXC1hcHBsZVwtdHJlZTsKK+WQriA+IHN1Y2tcLXdpdGhcLW1vdXRoOwor6Jy3ID4gY3JlZXBcLWxpa2VcLXdvcm07CivmnrcgPiBjYW5ndWVcLXNjYWZmb2xkOwor576yID4gYW5jaWVudFwtZW1wZXJvcjsKK+WtmiA+IGJyb29kXC1vdmVyXC1lZ2dzOwor6aqBID4gZXhjZWxsZW50XC1ob3JzZTsKK+eakSA+IGJyaWxsaWFudFwtd2hpdGU7CivnvKUgPiBsaWdodFwtYmx1ZVwtc2lsazsKK+ivjCA+IHBsYXlcLXdpdGhcLXdvcmRzOwor5rO+ID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor5oGjID4gaW5kdWxnZVwtb25lc2VsZjsKK+injiA+IGRlc2lyZVwtc3Ryb25nbHk7CivnjrogPiBpbXBlcmlhbFwtc2lnbmV0Owor5Y2eID4gdG9cLWJlXC1pbXBhdGllbnQ7CivovpQgPiBicmlkbGVcLW9mXC1ob3JzZTsKK+i2lCA+IG5vdFwtcHJvZ3Jlc3Npbmc7CivlvpwgPiB3YWxraW5nXC1hbmRcLWZybzsKK+iNoCA+IHdhdGVyXC1jaGVzdG51dHM7CivmsZ4gPiBlbGVtZW50XC1tZXJjdXJ5Owor55W/ID4gaW1wZXJpYWxcLWRvbWFpbjsKK+iIgiA+IGdyaW5kXC1pblwtbW9ydGFyOwor57G0ID4gcHVyY2hhc2VcLWdyYWluczsKK+epsCA+IHN0YWxrc1wtb2ZcLWdyYWluOwor57ySID4gY2xpbWJcLWRvd25cLXJvcGU7Civll4QgPiBob2Fyc2VcLW9mXC12b2ljZTsKK+edpSA+IGxvb2tcLWFza2FuY2VcLWF0Owor5riaID4gc21hbGxcLXNhbmRcLWJhbms7CivnoJ0gPiBiYWxhbmNlXC13ZWlnaHRzOwor5p28ID4gc2h1dHRsZVwtb2ZcLWxvb207CivpvoMgPiBpcnJlZ3VsYXJcLXRlZXRoOwor5YuQID4gaW1wZXJpYWxcLWRlZ3JlZTsKK+efuCA+IGFcLXJvY2tcLW9yXC1jbGlmZjsKK+eXvCA+IGNocm9uaWNcLWRpc2Vhc2U7CivolaggPiBwdGVyaXNcLWFxdWlsaW5hOwor6LGJID4gZmVybWVudGVkXC1iZWFuczsKK+W+rSA+IGNvbnNjcmlwdFwtbGFib3I7CivpuoggPiBzcGVjaWVzXC1vZlwtZGVlcjsKK+iVpCA+IGRyb29waW5nXC1sZWF2ZXM7CivpuoIgPiBzcGVjaWVzXC1vZlwtZGVlcjsKK+e7oSA+IHJhd1wtc2lsa1wtZmFicmljOwor6IqoID4gbmFtZVwtb2ZcLWFcLXBsYW50Owor6IujID4ga2luZFwtb2ZcLWxldHR1Y2U7CivnopsgPiBzYW5kXC1hbmRcLWdyYXZlbDsKK+iOkiA+IGhlbXBcLWxpa2VcLXBsYW50Owor5r+JID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor6JCBID4ga2luZFwtb2ZcLWdyYXNzZXM7CivnnIQgPiB0b1wtbG9va1wtYXNrYW5jZTsKK+WbnyA+IHRvcFwtb2ZcLXRoZVwtaGVhZDsKK+WyoyA+IGFcLWhpbGxcLWluXC1odW5hbjsKK+WXviA+IHRvXC1zZXRcLWFcLWRvZ1wtb247CivojZwgPiBzcGVjaWVzXC1vZlwtYmVhbjsKK+ezgSA+IGFcLWdyYWluXC1vZlwtcmljZTsKK+eynSA+IHVucG9saXNoZWRcLXJpY2U7Civoo7AgPiB0b1wtbWVuZFwtY2xvdGhlczsKK+afsCA+IGNyYWJcLWFwcGxlXC10cmVlOwor6JaoID4gZGVhdGhcLW9mXC1wcmluY2U7CivojJEgPiB0aGVcLWNvbnZvdnVsdnVzOwor57+uID4gc3RlbVwtb2ZcLWZlYXRoZXI7CivoiZ8gPiBhbmNpZW50XC13YXJzaGlwOwor6byvID4gZmx5aW5nXC1zcXVpcnJlbDsKK+egqSA+IG5hbWVcLW9mXC1hXC1zdG9uZTsKK+eCuyA+IGFcLWtpbmRcLW9mXC1jaGluYTsKK+aqqyA+IHNhc3NhZnJhc1wtdHp1bXU7Civni7QgPiBhXC1raW5kXC1vZlwtdGFwaXI7CivpvpEgPiBoaWdoXC1hbmRcLWJyaWdodDsKK+m9nyA+IGlycmVndWxhclwtdGVldGg7CivpvYsgPiB2ZWdldGFyaWFuXC1kaWV0Owor6byVID4gcmF0dGxlXC1vZlwtZHJ1bXM7CivpvIcgPiBodWdlXC1zZWFcLXR1cnRsZTsKK+m4kyA+IGZseWluZ1wtc3F1aXJyZWw7CivptJIgPiBzcGVjaWVzXC1vZlwtbGFyazsKK+m0giA+IHRoZVwtdGFpbG9yXC1iaXJkOwor6bO7ID4gdGhlXC13aWxkXC1waWdlb247Civps5MgPiBjaGluZXNlXC1oZXJyaW5nOwor6bGhID4gdGhlXC1jdXR0bGVcLWZpc2g7CivpsYUgPiBhXC1raW5kXC1vZlwtdGVuY2g7CivpsLMgPiBjaGluZXNlXC1oZXJyaW5nOwor6bCyID4gaHVnZVwtc2VhXC10dXJ0bGU7CivprbAgPiB0aGVcLWZseWluZ1wtZmlzaDsKK+mrviA+IHRhaWxcLW9mXC1hXC1jb21ldDsKK+mrtCA+IGRpc2hldmVsZWRcLWhhaXI7CivpqbUgPiBleGNlbGxlbnRcLWhvcnNlOwor6amNID4gZXhjZWxsZW50XC1ob3JzZTsKK+momCA+IGFcLXBpZWJhbGRcLWhvcnNlOwor6ae/ID4gZXhjZWxsZW50XC1ob3JzZTsKK+mnlCA+IGV4Y2VsbGVudFwtaG9yc2U7CivppYcgPiB0b1wtZWF0XC10b29cLW11Y2g7CivporsgPiBmbG9hdGluZ1wtaW5cLWFpcjsKK+miriA+IHN0b3JtXC13aGlybHdpbmQ7CivpoZYgPiB0b3BcLW9mXC10aGVcLWhlYWQ7Civpn54gPiBhblwtb3JhbmdlXC1jb2xvcjsKK+metCA+IHNhZGRsZVwtdXBcLWhvcnNlOwor6Z24ID4gYVwtY2hpbGQnJ3NcLXNob2VzOwor6ZuxID4gc25vd2luZ1wtaGVhdmlseTsKK+mWqSA+IGZ1amlhblwtcHJvdmluY2U7CivpjqQgPiBzb3VuZFwtb2ZcLWFcLWJlbGw7Civpir4gPiBlbGVtZW50XC1tZXJjdXJ5Owor6Ya+ID4gdW5maWx0ZXJlZFwtd2luZTsKK+mEuSA+IG5hbWVcLW9mXC1hXC1zdGF0ZTsKK+i9oSA+IGJyaWRsZVwtb2ZcLWhvcnNlOwor6Ly7ID4gc3Bva2VzXC1vZlwtd2hlZWw7Civou4sgPiBjcnVzaFwtYnlcLXdlaWdodDsKK+i6gCA+IHRvXC1zdHVtYmxlXC1vdmVyOwor6LauID4gZWFzaWx5XC1wcm92b2tlZDsKK+ishSA+IHBsYXlcLXdpdGhcLXdvcmRzOwor6KuhID4gcG9zdGh1bW91c1wtbmFtZTsKK+iokiA+IGhlc2l0YXRlXC10b1wtc2F5Owor6KamID4gZGVzaXJlXC1zdHJvbmdseTsKK+ilvCA+ICcna2ltb25vJydcLXNsZWV2ZTsKK+iljCA+IHVubGluZWRcLWdhcm1lbnQ7CivopKcgPiB1bmxpbmVkXC1jbG90aGVzOwor6KSdID4gdW5saW5lZFwtZ2FybWVudDsKK+ijiiA+IGN1cmxpbmdcLXVwd2FyZHM7CivonpogPiBlcmlzdGFsaXNcLXRlbmF4Owor6Je2ID4gYVwta2luZFwtb2ZcLXBsYW50Owor6Ja6ID4gd2F0ZXJcLWNoZXN0bnV0czsKK+iVoiA+IGVkaWJsZVwtYW1hcmFudGg7CivolY0gPiBhbGlzbWFcLXBsYW50YWdzOwor6JS+ID4ga2luZFwtb2ZcLWJyYW1ibGU7CivolKYgPiB0aGVcLWNvbnZvdnVsdnVzOwor6JO9ID4gc3BlY2llc1wtb2ZcLWJlYW47CivokqggPiBsdXNoXC12ZWdldGF0aW9uOwor6JKTID4gYW5cLWVkaWJsZVwtd2F0ZXI7CivokokgPiBlZGlibGVcLWFtYXJhbnRoOwor6JGRID4gdGhlXC1yYXBlXC10dXJuaXA7CivokJUgPiB3YXRlclwtY2hlc3RudXRzOwor6IuIID4gYVwta2luZFwtb2ZcLXBsYW50Owor6ImFID4gYVwtZGVzcGF0Y2hcLWJvYXQ7Civoh5MgPiBpbnRlcm5hbFwtb3JnYW5zOwor6IWiID4gdGhlXC1jb2xsYXJcLWJvbmU7Civnvb8gPiBuZXRcLWNhdGNoXC1iaXJkczsKK+e4uSA+IGxpZ2h0XC1ibHVlXC1zaWxrOwor57aDID4gcmF3XC1zaWxrXC1mYWJyaWM7CivntY0gPiB0b1wtbGF5XC10aGVcLXdhcnA7CivntYUgPiB1bmxpbmVkXC1nYXJtZW50Owor57O0ID4gcHVyY2hhc2VcLWdyYWluczsKK+ezsiA+IHVucG9saXNoZWRcLXJpY2U7CivnsZggPiBjbGltYmluZ1wtcGxhbnRzOwor57CUID4gYVwtY29hdFwtcmFpbmNvYXQ7CivnsJEgPiBhXC1jb2F0XC1yYWluY29hdDsKK+evsCA+IGFcLWJhbWJvb1wtYmFza2V0Owor56mjID4gc3RhbGtzXC1vZlwtZ3JhaW47CivnqYQgPiBwYW5pY2xlZFwtbWlsbGV0Owor56aLID4gb2ZmZXJcLXNhY3JpZmljZTsKK+ejqiA+IGFcLWhpZ2hcLW1vdW50YWluOwor56OnID4gc2FuZFwtYW5kXC1ncmF2ZWw7Civno44gPiBtb3VudGFpblwtc3RyZWFtOwor55+aID4gd2F0Y2hcLWNhcmVmdWxseTsKK+eamiA+IGJyaWxsaWFudFwtd2hpdGU7CivnmIggPiBwcm9sb25nZWRcLWZldmVyOwor55iDID4gc29yZXNcLWZyb21cLWNvbGQ7Civnl74gPiBjaHJvbmljXC1pbGxuZXNzOwor55e1ID4gYVwtaGVhcnRcLXN5bXB0b207Civnl64gPiBhXC1zd2VsbGVkXC1iZWxseTsKK+eXoCA+IGFjaGluZ1wtb2ZcLWxpbWJzOwor55eBID4gY2hyb25pY1wtbWFsYXJpYTsKK+eWoiA+IGFjaGluZ1wtb2ZcLWxpbWJzOwor55WsID4gcmVjbGFpbWVkXC1maWVsZDsKK+eUpCA+IGRyb29waW5nXC1sZWF2ZXM7Civnkr0gPiBpbXBlcmlhbFwtc2lnbmV0Owor55CtID4gamFkZVwtbGlrZVwtc3RvbmU7Civnj6cgPiBtb3RoZXJcLW9mXC1wZWFybDsKK+ePhyA+IGNhcnZpbmdcLW9uXC1qYWRlOwor546fID4gc3RyZWFrc1wtaW5cLWphZGU7CivnjbEgPiBhXC1raW5kXC1vZlwtb3R0ZXI7Civni6sgPiBuYW1lXC1vZlwtYVwtdHJpYmU7CivniYQgPiB0b1wtd2Fsa1wtcmFwaWRseTsKK+eGkyA+IHRoZVwtYmFua1wtYVwtZmlyZTsKK+eEtSA+IHRvXC10ZW1wZXJcLXN0ZWVsOwor54C1ID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor54CeID4gcG9vbFwtaW5cLWFcLXJpdmVyOwor5r2ZID4gcml2ZXJcLWluXC1zaGFueGk7CivmvLUgPiBuYW1lXC1vZlwtYVwtcml2ZXI7Civmu44gPiBjb3VudHlcLWluXC1oZW5hbjsKK+a6pCA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+a4kyA+IG1vdW50YWluXC1zdHJlYW07Civmt5MgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivmtocgPiBuYW1lXC1vZlwtYVwtcml2ZXI7Civms6kgPiByaXNpbmdcLW9mXC13YXRlcjsKK+aymiA+IGlzbGV0XC1pblwtc3RyZWFtOwor5rKYID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor5qahID4gcXVlcmN1c1wtZGVudGF0YTsKK+akuiA+IGJlYW1cLW9mXC1hXC1ob3VzZTsKK+afjiA+IGNhbHl4XC1vZlwtZmxvd2VyOwor5p+BID4gbGFyZ2VcLXRpZVwtYmVhbXM7CivmnqwgPiBhblwtZXZlblwtZ3JhaW5lZDsKK+acoyA+IHRoZVwtcmlzaW5nXC1tb29uOwor5pG7ID4gYVwtZGVsaWNhdGVcLWhhbmQ7Civmj6sgPiBncmFzcFwtd2l0aFwtaGFuZDsKK+aIsSA+IHRoZWF0cmljYWxcLXBsYXk7CivmiIQgPiB0b1wtYmVcLWluXC1hd2VcLW9mOwor5b+TID4gY29uY2VybmVkXC1hYm91dDsKK+W+rCA+IHRvXC13YW5kZXJcLWFib3V0Owor5by0ID4gcmVkXC1sYWNxdWVyXC1ib3c7Civlt7kgPiBudXB0aWFsXC13aW5lY3VwOwor5bWOID4gbW91bnRhaW5cLXJlY2VzczsKK+WzniA+IGhpZ2hcLWFuZFwtdW5ldmVuOwor5aSyID4gYWR2YW5jZVwtcXVpY2tseTsKK+WdtCA+IGFcLWNsb2RcLW9mXC1lYXJ0aDsKK+WWoyA+IHRvXC1icmVhdGhlXC11cG9uOwor5ZSyID4gZm9yY2VkXC1sYXVnaHRlcjsKK+WOnCA+IGFcLW1vdW50YWluXC1wZWFrOwor5YyJID4gbm9pc2VcLW9mXC13YXRlcnM7CivljIQgPiB0b1wtYmVnXC1mb3JcLWFsbXM7Civli4UgPiBpbXBlcmlhbFwtZGVncmVlOwor5YqYID4gbWFrZVwtaW50b1wtbWluY2U7CivlipYgPiBtYWtlXC1pbnRvXC1taW5jZTsKK+WCvSA+IHRlcnJvclwtc3RyaWNrZW47CivkvpYgPiBsb2dpY2FsXC1yZWFzb25zOwor5L2UID4gb2NjdXB5XC1ieVwtZm9yY2U7CivkubggPiBmZW1pbmluZVwtc3VmZml4Owor5LahID4gc291bmRcLW9mXC1iaXRpbmc7Civkto4gPiBzb3VuZFwtb2ZcLWJyZWF0aDsKK+S1myA+IHBhbmljbGVkXC1taWxsZXQ7CivktZYgPiBwYW5pY2xlZFwtbWlsbGV0Owor5LS+ID4gdG9cLWdyaW5kXC1iYXJsZXk7CivktK4gPiBjYWtlc1wtcGZcLWxlYXZlbjsKK+S0jiA+IGZseWluZ1wtc3F1aXJyZWw7Civksr4gPiB0aGVcLXRhaWxvclwtYmlyZDsKK+SvhCA+IGFcLXBpZWJhbGtcLWhvcnNlOwor5K69ID4gYml0XC1mb3JcLWFcLWhvcnNlOwor5K61ID4gbmFtZVwtb2ZcLWFcLWhvcnNlOwor5K6xID4gYVwta2luZFwtb2ZcLWJlYXN0Owor5K6wID4gYVwta2luZFwtb2ZcLWJlYXN0Owor5K6sID4gbmFtZVwtb2ZcLWFcLWhvcnNlOwor5K6oID4gYVwtcGllYmFsZFwtaG9yc2U7CivkrqcgPiBsb25nXC1oYWlyXC1ob3JzZTsKK+SuoiA+IGFcLXdhbGtpbmdcLWhvcnNlOwor5K6eID4gYVwtcGllYmFsZFwtaG9yc2U7CivkrpkgPiBuYW1lXC1vZlwtYVwtaG9yc2U7CivkrpYgPiBuYW1lXC1vZlwtYVwtaG9yc2U7CivkrpMgPiBhXC13YWxraW5nXC1ob3JzZTsKK+SukiA+IG5hbWVcLW9mXC1hXC1ob3JzZTsKK+SujyA+IG5hbWVcLW9mXC1hXC1ob3JzZTsKK+SujiA+IGFcLXJ1bm5pbmdcLWhvcnNlOwor5K6LID4gbmFtZVwtb2ZcLWFcLWhvcnNlOwor5K6KID4gbmFtZVwtb2ZcLWFcLWhvcnNlOwor5K28ID4gZGFya1wtYmx1ZVwtaG9yc2U7CivkrbYgPiBkYXJrXC1ibHVlXC1ob3JzZTsKK+SsqyA+IGNsYXJmaWVkXC1idXR0ZXI7CivkrIEgPiBhXC1saWdodFwtY3ljbG9uZTsKK+SqriA+IGJlYXV0aWZ1bFwtc291bmQ7CivkqpUgPiB0b1wtd3JhcFwtb3JcLWJhbmQ7CivkqbkgPiB0b1wtcmVwYWlyXC1zaG9lczsKK+SpkiA+IGRyZXNzZWRcLWxlYXRoZXI7CivkqYQgPiB0b1wtZmFjZVwtdG9cLWZhY2U7CivkqKYgPiBzbm93aW5nXC1oZWF2aWx5Owor5KiiID4gYVwtcGFzc2luZ1wtY2xvdWQ7CivkqJYgPiB0b1wtc3RvcFwtcmFpbmluZzsKK+SokSA+IHRvXC1zdG9wXC1yYWluaW5nOwor5KiAID4gdG9cLWxheVwtaW5cLWdyYWluOwor5KevID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5KeuID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5KedID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5KeMID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5KeLID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5KeDID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5Ka7ID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor5KarID4gaW5zaWRlXC10aGVcLWRvb3I7CivkpqAgPiBuYW1lXC1vZlwtYVwtcml2ZXI7CivkpZcgPiBhXC1icmFuZGluZ1wtaXJvbjsKK+SksSA+IGFcLXNvbGVtblwtcGxlZGdlOwor5KO2ID4gdW5zdHJhaW5lZFwtd2luZTsKK+SjsyA+IHVuc3RyYWluZWRcLXdpbmU7Civko5MgPiBuYW1lXC1vZlwtYVwtc3RhdGU7Civko5AgPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civko4sgPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civko4ogPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civko4cgPiBuYW1lXC1vZlwtYVwtcGxhY2U7CivkorsgPiBuYW1lXC1vZlwtYVwtcGxhY2U7CivkorQgPiBuYW1lXC1vZlwtYVwtcGxhY2U7CivkorMgPiBuYW1lXC1vZlwtYVwtcGxhY2U7CivkoqYgPiB0b1wtbGVhZFwtdGhlXC13YXk7CivkopYgPiB0b1wtYmVcLXNjYXR0ZXJlZDsKK+SigSA+IHRpcmVcLW9mXC1hXC13aGVlbDsKK+ShuyA+IHNoYWtlXC1vZlwtYVwtY2FydDsKK+ShqCA+IGNvbm5lY3RlZFwtY2FydHM7CivkoZMgPiBzaGFrZVwtb2ZcLWFcLWNhcnQ7CivkoZAgPiB0b1wtbW92ZVwtc3dpZnRseTsKK+SgtSA+IHRvXC13ZWFyXC1jbG90aGVzOwor5KCoID4gd2Fsa2luZ1wtcmFwaWRseTsKK+SfmyA+IHdhbGtpbmdcLXJhcGlkbHk7Civkn5EgPiB3YWxraW5nXC1yYXBpZGx5Owor5J63ID4gd2Fsa2luZ1wtcmFwaWRseTsKK+SetiA+IHdhbGtpbmdcLXJhcGlkbHk7CivknrAgPiB3YWxraW5nXC1yYXBpZGx5Owor5J6tID4gd2Fsa2luZ1wtcmFwaWRseTsKK+SerCA+IHRvXC1wYXNzXC10aHJvdWdoOwor5J6qID4gd2Fsa2luZ1wtcmFwaWRseTsKK+SdryA+IHRvXC1jaGFuZ2VcLWhhbmRzOwor5J2QID4gYVwtY2FzdHJhdGVkXC1ob2c7CivknL4gPiBmZXJtZW50ZWRcLWJlYW5zOwor5Jy7ID4gZmVybWVudGVkXC1iZWFuczsKK+SctSA+IGZlcm1lbnRlZFwtYmVhbnM7CivknIQgPiBzbG93XC1vblwtdGFsa2luZzsKK+SbtSA+IHRvXC10ZWFjaFwtb3JhbGx5Owor5JufID4gd2lsZFwtc3RhdGVtZW50czsKK+SblCA+IHRvXC1ob2xkXC1pblwtaGFuZDsKK+SapiA+IHNsYW50ZWRcLWNvcm5lcnM7CivkmqUgPiB0b1wtYWRqdXN0XC1hXC1ib3c7CivkmbsgPiB0b1wtc3RlYWxcLWFcLWxvb2s7CivkmaggPiB0b1wtd3JhcFwtb3JcLWJpbmQ7CivkmZ0gPiB1bmRlclwtZ2Fycm1lbnRzOwor5Je+ID4gY29yYmljdWxhXC1sZWFuYTsKK+SWvCA+IHRoZVwtZHVuZ1wtYmVldGxlOwor5JaZID4gYVwtcmVzdGluZ1wtdGlnZXI7CivklokgPiB0b1wtcm9hclwtb3JcLWhvd2w7CivklbcgPiBhXC1raW5kXC1vZlwtcGxhbnQ7CivklZkgPiB0b1wtc2V0XC1pblwtb3JkZXI7CivklYkgPiBhXC1raW5kXC1vZlwtcGxhbnQ7CivklKcgPiBhXC1raW5kXC1vZlwtcGxhbnQ7CivklIcgPiBhXC1raW5kXC1vZlwtcGxhbnQ7Civkk7YgPiBhXC1raW5kXC1vZlwtcGxhbnQ7Civkk54gPiBhXC1raW5kXC1vZlwtcGxhbnQ7Civkk5ggPiBhXC1raW5kXC1vZlwtcGxhbnQ7Civkk4ggPiBhXC1raW5kXC1vZlwtcGxhbnQ7CivkkrcgPiBhXC1raW5kXC1vZlwtcGxhbnQ7CivkkpIgPiBuYW1lXC1vZlwtYVwtcGxhbnQ7CivkkowgPiBkYXJrXC1ibHVlXC1jb2xvcjsKK+SQnCA+IGFcLXN3ZWxsZWRcLWJlbGx5Owor5I+yID4gcHJvdHJ1ZGVkXC1ib25lczsKK+SOsyA+IGxvc2VcLW9mXC10aGVcLWVhcjsKK+SOiSA+IHRvXC13YWxrXC1zd2lmdGx5Owor5Iy+ID4gdG9cLWxheVwtdGhlXC13YXJwOwor5Iu3ID4gYVwta2luZFwtb2ZcLXRoaWNrOwor5IuVID4gdG9cLWxheVwtdGhlXC13YXJwOwor5Iq1ID4geW91bmdcLWFuZFwtc21hbGw7CivkipcgPiBhXC1raW5kXC1vZlwtZ3JhaW47CivkiokgPiBwcmVzZXJ2ZWRcLWZydWl0Owor5ImnID4gc291bmRcLW9mXC1iYW1ib287CivkhoIgPiBhXC1raW5kXC1vZlwtZ3JhaW47CivkhbcgPiBhblwtZWFyXC1vZlwtZ3JhaW47CivkhbAgPiBhXC1raW5kXC1vZlwtZ3Jhc3M7CivkhaEgPiBhXC1raW5kXC1vZlwtZ3Jhc3M7CivkhaAgPiBhXC1raW5kXC1vZlwtZ3Jhc3M7CivkhZ4gPiBzdGFsa3NcLW9mXC1ncmFpbjsKK+SFiyA+IGFcLWtpbmRcLW9mXC1ncmFpbjsKK+SFgiA+IGFcLWtpbmRcLW9mXC1ncmFpbjsKK+SEsSA+IGFcLWtpbmRcLW9mXC1ncmFpbjsKK+SEriA+IGRhcmtcLXJpY2VcLXBsYW50Owor5ISnID4gYVwta2luZFwtb2ZcLWdyYWluOwor5ISVID4gZ29kXC1vZlwtdGhlXC1sYW5kOwor5IO3ID4gYVwta2luZFwtb2ZcLXN0b25lOwor5IO1ID4gYVwta2luZFwtb2ZcLXN0b25lOwor5IOeID4gYVwta2luZFwtb2ZcLXN0b25lOwor5IOSID4gcG9vclwtYW5kXC1iYXJyZW47Civkgq0gPiBuYW1lXC1vZlwtYVwtcGxhY2U7CivkgpogPiBhXC1raW5kXC1vZlwtc3RvbmU7CivkgbQgPiBrZWVwXC1vblwtbG9va2luZzsKK+SBsyA+IHRvXC1sb3NlXC1vbmVcLWV5ZTsKK+SAqSA+IHRvXC1sb29rXC1hc2thbmNlOwor5ICOID4gdG9cLWxvb2tcLWFza2FuY2U7CivkgIkgPiBmb29kXC1jb250YWluZXJzOwor47+xID4gZHJ5XC1hbmRcLWRlY2F5ZWQ7CivjvqkgPiBtYWxpZ25hbnRcLWJvaWxzOwor4729ID4gY2hyb25pY1wtZGlzZWFzZTsKK+O9pyA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+O8lSA+IHB1bHBcLW9mXC1hXC1tZWxvbjsKK+O8lCA+IGFcLWtpbmRcLW9mXC1tZWxvbjsKK+O8kSA+IHB1bHBcLW9mXC1hXC1tZWxvbjsKK+O8jSA+IHB1bHBcLW9mXC1hXC1tZWxvbjsKK+O8iiA+IGFcLWtpbmRcLW9mXC1tZWxvbjsKK+O8giA+IGFcLWNyYWNrXC1pblwtamFkZTsKK+O7uCA+IGphZGVcLWxpa2VcLXN0b25lOwor47u3ID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor47uNID4gbmFtZVwtb2ZcLWFcLXN3b3JkOwor47qkID4gYVwta2luZFwtb2ZcLWJlYXN0Owor47qhID4gYVwta2luZFwtb2ZcLWJlYXN0Owor47qfID4gYVwta2luZFwtb2ZcLWJlYXN0Owor47qUID4gYVwta2luZFwtb2ZcLWJlYXN0Owor47qNID4gYVwta2luZFwtb2ZcLW90dGVyOwor47qMID4gZW5kbGVzc1wtYmFya2luZzsKK+O6hCA+IGFcLWtpbmRcLW9mXC1iZWFzdDsKK+O6gSA+IGFcLWtpbmRcLW9mXC1iZWFzdDsKK+O5pyA+IGZveFwtbGlrZVwtYW5pbWFsOwor47ixID4gaG9ybmxlc3NcLWNhdHRsZTsKK+O4sCA+IGhvcm5sZXNzXC1jYXR0bGU7CivjuKkgPiB0b1wtZGVzaXN0XC1hblwtb3g7CivjuJEgPiBhXC1jb29raW5nXC1zdG92ZTsKK+O3jSA+IGFcLWNoZW1pY2FsXC10ZXJtOwor47abID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47WyID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47WnID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47WRID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47WCID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47SqID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47O/ID4gcm9sbGluZ1wtYmlsbG93czsKK+OzviA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+OzuCA+IG5hbWVcLW9mXC1hXC1yaXZlcjsKK+OztyA+IGRhcmtcLWJsdWVcLWNvbG9yOwor47O2ID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47O1ID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47OhID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47OXID4gYmFua1wtb2ZcLWFcLXJpdmVyOwor47OWID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47K8ID4gbmFtZVwtb2ZcLWFcLXJpdmVyOwor47KUID4gd29vbGVuXC10ZXh0aWxlczsKK+OyjiA+IHdvb2xlblwtdGV4dGlsZXM7Civjso0gPiB3b29sZW5cLXRleHRpbGVzOwor47GOID4gY2Fubm90XC1iZVwta25vd247CivjsKwgPiBzaG9ydHdpbmRlZG5lc3M7CivjsJcgPiBhXC1raW5kXC1vZlwtbWFwbGU7CivjsIggPiBuaWNlXC1hbmRcLXByZXR0eTsKK+OvsSA+IGFuXC1lbmxhcmdlZFwtYmFnOwor46+kID4gdGhlXC1qdWp1YmVcLXRyZWU7Civjr5QgPiB0b1wtaHVsbFwtaGVhdmlseTsKK+OuoSA+IHRvXC1saWdodFwtYVwtZmlyZTsKK+OtpCA+IHRoZVwtY29udm9sdnVsdXM7Civjq6AgPiBhXC1raW5kXC1vZlwtd2F0ZXI7CivjqqsgPiB3aXNlXC1hbmRcLWNsZXZlcjsKK++orCA+IHB1YmxpY1wtYnVpbGRpbmc7CivvqIcgPiBzcG9rZXNcLW9mXC13aGVlbDsKK+OnjiA+IGZvcmtlZFwtYnJhbmNoZXM7Civvp4wgPiBzcGFya2xpbmdcLXN0b25lOwor46WeID4gdG9cLXRoaW5rXC1kZWVwbHk7CivjpZsgPiB3aXRoXC1leHBlZGl0aW9uOwor46KeID4gcm9vbXNcLWNvbm5lY3RlZDsKK+OijSA+IGFcLWxvbmdcLXZlcmFiZGFoOwor46GyID4gdGlsZXNcLW9uXC1hXC1yb29mOwor46GAID4gcmFnZ2VkXC1jbG90aGluZzsKK+OgiCA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+OggiA+IG5hbWVcLW9mXC1hXC1wbGFjZTsKK+OflCA+IHN0ZWVwXC1hbmRcLWxvZnR5Owor45+PID4gc3RlZXBcLWFuZFwtbG9mdHk7CivjnaUgPiBoYXZlXC1hXC1uaWdobWFyZTsKK+OdhSA+IHRvXC1naXZlXC1zdWNrXC10bzsKK+OcsiA+IHRvXC1oYXZlXC1zdXJwbHVzOwor45uwID4gdG9cLW1hcnJ5XC1hXC13aWZlOwor45qmID4gYVwtY2hhcm1pbmdcLWdpcmw7CivjmbwgPiBhXC1taWxpdGFyeVwtd2FsbDsKK+OZuCA+IGFcLWNsb2RcLW9mXC1lYXJ0aDsKK+OZlyA+IGFcLWx1bXBcLW9mXC1lYXJ0aDsKK+OYuiA+IGN1bHRpdmF0ZWRcLWxhbmQ7CivjmLUgPiBuYW1lXC1vZlwtYVwtcGxhY2U7Civjl78gPiB0b1wtbGF1Z2hcLWxvdWRseTsKK+OVsiA+IHRvXC1nYWdcLW9yXC1icmliZTsKK+OVmCA+IHRvXC10YWtlXC1wYXJ0XC1pbjsKK+OSnyA+IHdpdGhcLWFcLWNoYXJtaW5nOwor45C9ID4gbmFtZVwtb2ZcLWFcLXBsYWNlOwor6LqFID4gd2Fsa1wtY2FyZWZ1bGx5Owor5be0ID4gZ3JlYXRseVwtZGVzaXJlOwor5pyfID4gcGVyaW9kXC1vZlwtdGltZTsKK+WPuCA+IHRha2VcLWNoYXJnZVwtb2Y7CivnlKUgPiBzaXN0ZXInJ3NcLWNoaWxkOwor5bGPID4gZm9sZGluZ1wtc2NyZWVuOwor54uQID4gc3BlY2llc1wtb2ZcLWZveDsKK+axiSA+IGNoaW5lc2VcLXBlb3BsZTsKK+WmuSA+IHlvdW5nZXJcLXNpc3RlcjsKK+S8gSA+IHBsYW5cLWFcLXByb2plY3Q7CivopZYgPiBvdXRlclwtZ2FybWVudHM7Civlo4EgPiBwYXJ0aXRpb25cLXdhbGw7Civpn6YgPiB0YW5uZWRcLWxlYXRoZXI7CivmvbAgPiBmbG9vZGluZ1wtcml2ZXI7Civnj6AgPiBwcmVjaW91c1wtc3RvbmU7CivplIsgPiBwb2ludFwtb2ZcLXNwZWFyOwor5L+XID4gc29jaWFsXC1jdXN0b21zOwor5qqQID4gZWF2ZXNcLW9mXC1ob3VzZTsKK+mqkSA+IHJpZGVcLWhvcnNlYmFjazsKK+WHvSA+IGNvcnJlc3BvbmRlbmNlOwor6a2PID4ga2luZ2RvbVwtb2ZcLXdlaTsKK+aemiA+IHN0YWxrXC1vZlwtc2hydWI7Civku7IgPiBtaWRkbGVcLWJyb3RoZXI7CivnkLMgPiBiZWF1dGlmdWxcLWphZGU7Civlh5EgPiBwaWVjZVwtdG9nZXRoZXI7Civpg4EgPiBzd2VldFwtc21lbGxpbmc7Civoiq8gPiBwaXRoXC1mcm9tXC1ydXNoOwor57ieID4gd2hpdGVcLXJhd1wtc2lsazsKK+aXrCA+IHRlblwtZGF5XC1wZXJpb2Q7CivntrogPiBmaW5lXC10aGluXC1zaWxrOwor5aaoID4gaW50ZXJmZXJlXC13aXRoOwor6aqEID4gc3Bpcml0ZWRcLWhvcnNlOwor57C3ID4gZWF2ZXNcLW9mXC1ob3VzZTsKK+aOtCA+IGJveFwtb25lJydzXC1lYXJzOwor5ZevID4gZmluYWxcLXBhcnRpY2xlOwor5bKtID4gbW91bnRhaW5cLXJpZGdlOwor5rmYID4gaHVuYW5cLXByb3ZpbmNlOwor6YqDID4gYW5jaWVudFwtd2VhcG9uOwor5rqDID4gZmxvb2RpbmdcLXJpdmVyOwor6ZOuID4gY2xhbmdpbmdcLXNvdW5kOwor6I65ID4gbHVzdGVyXC1vZlwtZ2VtczsKK+WDuyA+IG91dFwtb2ZcLXRoZVwtd2F5Owor57uuID4gZmluZVwtdGhpblwtc2lsazsKK+a4uiA+IGVuZGxlc3NseVwtbG9uZzsKK+S9oyA+IGNvbW1pc3Npb25cLWZlZTsKK+WSryA+IGZpbmFsXC1wYXJ0aWNsZTsKK+WRmyA+IGNob2tlXC1ieVwtc21va2U7Civlh7AgPiBmZW1hbGVcLXBob2VuaXg7Civpl7ogPiBzbWFsbFwtZW50cmFuY2U7CivnvIAgPiBwYXRjaFwtdG9nZXRoZXI7CivoooQgPiBvdXRlclwtZ2FybWVudHM7CivnkosgPiBqYWRlXC1wbGF5dGhpbmc7Civmi7QgPiBiaW5kXC13aXRoXC1yb3BlOwor56enID4gcmljZVwtc2VlZGxpbmdzOwor6JWDID4gZm9yZWlnblwtdGhpbmdzOwor6YSCID4gaHViZWlcLXByb3ZpbmNlOwor5qOxID4gc3F1YXJlZFwtdGltYmVyOwor5qKXID4gc3RlbVwtb2ZcLWZsb3dlcjsKK+iPsSA+IHdhdGVyXC1jaGVzdG51dDsKK+mVkSA+IHBvdW5kXC1zdGVybGluZzsKK+agqSA+IHNwZWNpZXNcLW9mXC1vYWs7CivllLcgPiBmaW5hbFwtcGFydGljbGU7Civnkp4gPiB1bnBvbGlzaGVkXC1nZW07Civpm68gPiBjbG91ZFwtcGF0dGVybnM7CivorrcgPiBzbG93XC1vZlwtc3BlZWNoOwor55KHID4gYmVhdXRpZnVsXC1qYWRlOwor54uwID4gZmllcmNlXC1sb29raW5nOwor5bOmID4gbW91bnRhaW5cLXJhbmdlOwor5rmDID4gc291bmRcLW9mXC13YXZlczsKK+WooyA+IHlvdW5nZXJcLXNpc3RlcjsKK+idlyA+IGtpbmRcLW9mXC1sb2N1c3Q7CivnmpYgPiBhbmh1aVwtcHJvdmluY2U7CivphYsgPiBjaGllZlwtb2ZcLXRyaWJlOwor5aORID4gYmVkXC1vZlwtdG9ycmVudDsKK+ezryA+IGdsdXRpbm91c1wtcmljZTsKK+eotyA+IGdvZFwtb2ZcLWNlcmVhbHM7Civlob4gPiB2aWxsYWdlXC1zY2hvb2w7Civni6kgPiB3aW50ZXJcLWh1bnRpbmc7CivmiI0gPiBkZWZlbmRcLWJvcmRlcnM7CivnkoAgPiBsdXN0cmVcLW9mXC1nZW1zOwor54mNID4gd3JpdGluZ1wtdGFibGV0Owor6ZWMID4gZW5ncmF2aW5nXC10b29sOwor6aWvID4gZmFyZXdlbGxcLXBhcnR5Owor6bmCID4gY2hpbmVzZVwtb3Jpb2xlOwor5ZuhID4gb25lJydzXC1kYXVnaHRlcjsKK+a6nyA+IGRyaXp6bGluZ1wtcmFpbjsKK+mUjyA+IGtpbmRcLW9mXC1yYXBpZXI7CivlsZkgPiB0b1wtZWFzZVwtbmF0dXJlOwor55CoID4gYmVhdXRpZnVsXC1qYWRlOwor546zID4gdG9ydG9pc2VcLXNoZWxsOwor55GtID4gYVwta2luZFwtb2ZcLWphZGU7CivmnYggPiBmb3JrXC1vZlwtYVwtdHJlZTsKK+WMkCA+IGZhbGxcLXByb3N0cmF0ZTsKK+egoyA+IGFcLXN0b25lXC1yb2xsZXI7Civpk6IgPiB1bml0XC1vZlwtd2VpZ2h0Owor6aqIID4gdGVhbVwtb2ZcLWhvcnNlczsKK+WZsSA+IGxhdWdoXC1oZWFydGlseTsKK+mTsyA+IGFuY2llbnRcLXdlYXBvbjsKK+ebsSA+IHdpZGVcLW9wZW5cLWV5ZXM7CivogIQgPiBlbGRlcmx5XC1wZXJzb247CivmppQgPiBiZXRlbFwtbnV0XC10cmVlOwor6K+kID4gdG9cLWV4cG9zdHVsYXRlOwor6J2uID4gdmVub21vdXNcLXNuYWtlOwor6aKNID4gcml2ZXJcLWluXC1hbmh1aTsKK+alnSA+IG1lbGlhXC1qYXBvbmljYTsKK+idvCA+IGFcLW1vbGVcLWNyaWNrZXQ7CivojaogPiBhcm9tYXRpY1wtZ3Jhc3M7CivlqIwgPiBicm90aGVyJydzXC13aWZlOwor57yfID4gd2hpdGVcLXJhd1wtc2lsazsKK+aZtyA+IHNoYWRvd3NcLW9mXC1zdW47Civll7UgPiB1c2VkXC1mb3JcLXNvdW5kOwor6LiFID4gdG9cLXdhbGtcLWFyb3VuZDsKK+aPhiA+IHByaW1lXC1taW5pc3RlcjsKK+eMlSA+IG1hY2FjdXNcLW1vbmtleTsKK+WOnSA+IGN1dFwtb3JcLWVuZ3JhdmU7CivokZogPiBtdWxiZXJyeVwtZnJ1aXQ7CivogJIgPiBoYW5kbGVcLW9mXC1wbG93Owor5ZieID4gZmluYWxcLXBhcnRpY2xlOwor6Yy+ID4gZW5ncmF2aW5nXC10b29sOwor54+ZID4gcHJlY2lvdXNcLXN0b25lOwor6I24ID4gd2F0ZXJcLWNoZXN0bnV0Owor5L+FID4gb3JuYW1lbnRhbFwtY2FwOwor6I+9ID4gYmVhbnNcLWFuZFwtcGVhczsKK+meryA+IHNhZGRsZVwtYmxhbmtldDsKK+m8kCA+IGluY2Vuc2VcLXRyaXBvZDsKK+iwsCA+IGFjY3VzZVwtZmFsc2VseTsKK+mqsSA+IGpvaW50XC1vZlwtYm9uZXM7CivorKYgPiB0XC1zcGVha1wtc29mdGx5Owor56O0ID4gc3RlcHNcLW9uXC1sZWRnZTsKK+WpuiA+IG5hbWVcLW9mXC1hXC1zdGFyOwor5aCNID4gc2lkZVwtb2ZcLWJyaWRnZTsKK+ahqyA+IGhvcnNlXC1jaGVzdG51dDsKK+a8tiA+IGluZGVjaXBoZXJhYmxlOwor5a2lID4gb25lJydzXC1jaGlsZHJlbjsKK+a6sSA+IHJpdmVyXC1pblwtaGVuYW47CivluqAgPiB2aWxsYWdlXC1zY2hvb2w7Civpu6UgPiB0YXR0b29pbmdcLWZhY2U7CivoupAgPiB0b1wtc3RyaWRlXC1vdmVyOwor6LmvID4gcGF3c1wtb2ZcLWFuaW1hbDsKK+ebjSA+IHdoYXRcP1wtd2h5XC1ub3RcPzsKK+a6hiA+IHJpdmVyXC1pblwtaHVuYW47Civno7IgPiB0cmlkYWNuYVwtZ2lnYXM7CivmmJ0gPiBhXC1kdWFsXC1wcm9ub3VuOwor5p+9ID4gdHlwZVwtb2ZcLXdpbGxvdzsKK+e8rCA+IHBhdHRlcm5lZFwtc2lsazsKK+mpuiA+IG1vdW50ZWRcLWVzY29ydDsKK+mYiiA+IGdhdGVcLW9mXC1oZWF2ZW47CivojakgPiBhXC1raW5kXC1vZlwtd2VlZDsKK+iKjiA+IGFcLWtpbmRcLW9mXC1oZXJiOwor6YuIID4gc2lsdmVyXC1wbGF0aW5nOwor6b6FID4gdGVldGhcLXByb3RydWRlOwor5pmhID4gbGF0ZVwtYWZ0ZXJub29uOwor5qqgID4gc3RhbmRcLWZvclwtbGFtcDsKK+mArSA+IHRvXC1lc2NhcGVcLWZyb207CivpuJ0gPiBjaGluZXNlXC1vcmlvbGU7CivpuI4gPiB0aGVcLW1hbmdvXC1iaXJkOwor6baXID4gYVwta2luZFwtb2ZcLWhhd2s7CivprqcgPiB0aGVcLXNoZWF0XC1maXNoOwor6ayYID4gYmVhdXRpZnVsXC1oYWlyOwor6ayXID4gaGVhZFwtb3JuYW1lbnRzOwor6auGID4gc2hvdWxkZXJcLWJsYWRlOwor6amVID4gc3Bpcml0ZWRcLWhvcnNlOwor6ai2ID4gbW91bnRlZFwtZXNjb3J0Owor6aiOID4gcmlkZVwtaG9yc2ViYWNrOwor6aiMID4gYVwtaG9yc2UnJ3NcLW1hbmU7CivpqIggPiB0ZWFtXC1vZlwtaG9yc2VzOwor6aeiID4gdGVhbVwtb2ZcLWhvcnNlczsKK+mkoSA+IHBhc3RyeVwtZmlsbGluZzsKK+mkniA+IGZhcmV3ZWxsXC1wYXJ0eTsKK+mklyA+IGZvb2RcLWluXC10cmlwb2Q7Civpn4sgPiB0YW5uZWRcLWxlYXRoZXI7Civpn4kgPiBzYWRkbGVcLWJsYW5rZXQ7CivpnKEgPiBkcml6emxpbmdcLXJhaW47CivplrYgPiBnYXRlXC1vZlwtaGVhdmVuOwor6ZaoID4gc21hbGxcLWVudHJhbmNlOwor6ZSqID4gYVwta2luZFwtb2ZcLXRvb2w7CivpkKsgPiBlbmdyYXZpbmdcLXRvb2w7CivpkKcgPiBraW5kXC1vZlwtcmFwaWVyOwor6Y+0ID4gdG9cLXBsdWdcLWFcLWhvbGU7Civpj6ggPiBlbmdyYXZpbmdcLXRvb2w7CivpjqkgPiBtb3VsdFwtc2FtYXJpdW07CivpjoogPiBwb3VuZFwtc3Rlcmxpbmc7CivpjYYgPiBtZFwtbWVuZGVsZXZpdW07CivpjJogPiBjbGFuZ2luZ1wtc291bmQ7Civpi6kgPiBwb2ludFwtb2ZcLXN3b3JkOwor6YuSID4gcG9pbnRcLW9mXC1zcGVhcjsKK+mLgyA+IGxvY2tcLWxhbnRoYW51bTsKK+mKliA+IHVuaXRcLW9mXC13ZWlnaHQ7Civph68gPiBwb2ludFwtb2ZcLXN3b3JkOwor6YCpID4gdG9cLXJ1blwtcXVpY2tseTsKK+i8tiA+IGxpZ2h0XC1jYXJyaWFnZTsKK+i5nCA+IHdhbGtcLWNhcmVmdWxseTsKK+i2uSA+IGtpY2tcLXdpdGhcLWhvb2Y7CivosaMgPiBwaWdcLW9mXC0zXC15ZWFyczsKK+ixnCA+IHBpZ1wtb2ZcLTNcLXllYXJzOwor6LGWID4gYVwtc2hhY2tsZWRcLXBpZzsKK+iulSA+IGFjY3VzZVwtZmFsc2VseTsKK+iuhSA+IGtub3dcLWluXC1kZXRhaWw7Civoq40gPiB0b1wtZXhwb3N0dWxhdGU7CivoqaggPiBraW5kXC1vZlwtY2ljYWRhOwor6KilID4gc2xvd1wtb2ZcLXNwZWVjaDsKK+ikiSA+IHNob3J0XC1nYXJtZW50czsKK+ihgiA+IHRvXC1iZVwtZGVmZWF0ZWQ7CivooIIgPiBwb2Rpc21hXC1taWthZG87Civon7MgPiBhXC1raW5kXC1vZlwtY3JhYjsKK+ifrSA+IHZlcnlcLXNtYWxsXC1idWc7Civonr8gPiBraW5kXC1vZlwtY2ljYWRhOwor6J67ID4gYVwtbW9sZVwtY3JpY2tldDsKK+ierCA+IGdydWJzXC1pblwtZnJ1aXQ7CivonI4gPiBtb3NxdWl0b1wtbGFydmE7CivomYAgPiBtaW5jZWRcLXBpY2tsZXM7Civol44gPiBhXC1raW5kXC1vZlwtd2VlZDsKK+iWsyA+IG5hbWVcLW9mXC1hXC1oZXJiOwor6JaYID4gcGxhbnRhZ29cLW1ham9yOwor6JSGID4gd2F0ZXJcLWNoZXN0bnV0Owor6JOvID4gbWVkaWNpbmFsXC1oZXJiOwor6JOPID4gZnJ1aXRcLW9mXC1wbGFudDsKK+iTgCA+IGFyb21hdGljXC1ncmFzczsKK+iRpSA+IHJ1YnVzXC1wYWxtYXR1czsKK+iPjiA+IGJlYXV0aWZ1bFwtamFkZTsKK+iMniA+IGZyYWdyYW50XC1wbGFudDsKK+iLgSA+IG1lZGljaW5hbFwtaGVyYjsKK+iKiCA+IGJsZWF0XC1vZlwtc2hlZXA7CivohKYgPiB1c2VkXC1pblwtJydsZWRlJyc7CivnvosgPiBibGVhdFwtb2ZcLXNoZWVwOwor57qIID4gcGF0dGVybmVkXC1zaWxrOwor57a0ID4gcGF0Y2hcLXRvZ2V0aGVyOwor57WcID4gYVwtbWFya2luZ1wtbGluZTsKK+e0viA+IHR1cm5zXC1vclwtdHdpc3Q7Civns7ogPiB0b1wtY29sbGFib3JhdGU7CivnsasgPiBiYW1ib29cLXV0ZW5zaWw7CivnrawgPiByZWVkXC1vZlwtYVwtbG9vbTsKK+eorSA+IHN0YWxrXC1vZlwtZ3JhaW47CivnqIwgPiBnbHV0aW5vdXNcLXJpY2U7CivnqIggPiBzdGFsa1wtb2ZcLWdyYWluOwor56CiID4gcGlsZVwtb2ZcLXN0b25lczsKK+efiSA+IGFuXC1hbmdyeVwtZ2xhcmU7CivnnbEgPiB0b1wtZ2F6ZVwtc2xvd2x5Owor552vID4gdG9cLWJlXC1hZ29uaXplZDsKK+ecoyA+IHByb21pbmVudFwtZXllczsKK+eSuCA+IGphZGUnJ3NcLXN0cmVha3M7CivnkrUgPiBiZWF1dGlmdWxcLWphZGU7CivnkqUgPiBhXC1raW5kXC1vZlwtamFkZTsKK+eSoiA+IHByZWNpb3VzXC1zdG9uZTsKK+eSmCA+IGx1c3Rlclwtb2ZcLWphZGU7CivnkoYgPiBiZWF1dGlmdWxcLWphZGU7CivnkakgPiBsdXN0cmVcLW9mXC1nZW1zOwor55GgID4gcHJlY2lvdXNcLXN0b25lOwor55GHID4gdG9ydG9pc2VcLXNoZWxsOwor55CBID4gYmVhdXRpZnVsXC1qYWRlOwor54+6ID4gYmVhdXRpZnVsXC1qYWRlOwor54+mID4gYVwta2luZFwtb2ZcLWphZGU7Civnj6IgPiBwcmVjaW91c1wtc3RvbmU7CivnjqUgPiBteXN0ZXJpb3VzXC1nZW07CivnjbwgPiBtYWNhY3VzXC1tb25rZXk7CivnjJkgPiBmaWVyY2VcLWxvb2tpbmc7Civni6ggPiBoYXBhbGVcLWphY2NodXM7CivniqggPiBwYW50aW5nXC1vZlwtY293Owor54mYID4gd3JpdGluZ1wtdGFibGV0Owor54eJID4gaGVhdFwtd2l0aFwtZmlyZTsKK+eHgCA+IHRvXC1tYWtlXC1hXC1maXJlOwor54aJID4gXCh5ZWxsb3dcLWNvbG9yXCk7CivmvZUgPiByaXZlclwtaW5cLWhlbmFuOwor5r2BID4gcml2ZXJcLWluXC1hbmh1aTsKK+a6myA+IHRvXC1mb3JtXC1ob2xsb3c7CivmubEgPiBzb3VuZFwtb2ZcLXdhdGVyOwor5rmKID4gcGllY2VcLXRvZ2V0aGVyOwor5riiID4gcGxlYXNhbnRcLXNvdW5kOwor5rasID4gd2F0ZXJ5XC1leHBhbnNlOwor5rS/ID4gc3RhZ25hbnRcLXdhdGVyOwor5rODID4gcml2ZXJcLWluXC1oZW5hbjsKK+azgiA+IGNsZWFyXC1hbmRcLWRlZXA7CivmsrcgPiB0b1wtcmVtb3ZlXC1ldmlsOwor5q6tID4gYVwtc3RpZmZcLWNvcnBzZTsKK+aqliA+IHdpbGRcLXBlYXJcLXRyZWU7CivmqokgPiB0eXBlXC1vZlwtd2lsbG93Owor5qm/ID4gcXVlcmN1c1wtZ2xhdWNhOwor5qa+ID4gcGllY2VzXC1vZlwtd29vZDsKK+amoCA+IGNoaW5lc2VcLXF1aW5jZTsKK+amliA+IHBhcGVyXC1tdWxiZXJyeTsKK+akqiA+IG1hY2hpbHVzXC1uYW5tdTsKK+ajkCA+IHNwZWNpZXNcLW9mXC15ZXc7CivmooogPiBzcXVlZXplXC1vdXRcLW9mOwor5p++ID4gc3RyYWlnaHRcLWdyYWluOwor5p+fID4gbWFjaGlsdXNcLW5hbm11Owor5p+DID4gZXVyeWFcLWphcG9uaWNhOwor5puPID4gb25jZVwtdXBvblwtdGltZTsKK+aZpSA+IGFuaHVpXC1wcm92aW5jZTsKK+aZoiA+IGxpZ2h0XC1vZlwtc3RhcnM7CivmmLAgPiB2YXJcLW9mXC0nJ3RvXC1iZScnOwor5pSCID4gdG9cLWJlYXRcLWFcLWRydW07CivmkbQgPiB0b1wtc3RyZXRjaFwtb3V0Owor5pGRID4gYm94XC1vbmUnJ3NcLWVhcnM7CivlubEgPiBvZmZpY2lhbFwtZHJlc3M7Civlt58gPiBhXC13YXRlcnlcLXdhc3RlOwor5beSID4gbW91bnRhaW5cLXJhbmdlOwor5ba6ID4gbW91bnRhaW5cLXJpZGdlOwor5bW0ID4gbW91bnRhaW5cLXJpZGdlOwor5bK6ID4gbW91bnRhaW5cLXJpZGdlOwor5bGbID4gZm9sZGluZ1wtc2NyZWVuOwor5aKaID4gbW91bnRhaW5cLXJhbmdlOwor5aGVID4gYVwtZ3VzdFwtb2ZcLXdpbmQ7Civln4cgPiBuYW1lXC1vZlwtYnJpZGdlOwor5ZyFID4gY29ycmVzcG9uZGVuY2U7CivlmbkgPiBzb3VuZFwtb2ZcLWJlbGxzOwor5ZiTID4gZ3VyZ2xpbmdcLXNvdW5kOwor5ZeGID4gY2hva2VcLWJ5XC1zbW9rZTsKK+WWkiA+IGFcLWR1YWxcLXByb25vdW47CivllYwgPiBhbmltYWxcLWRpc2Vhc2U7CivljoMgPiB0b1wtbG9va1wtdXB3YXJkOwor5Y2tID4gaGlnaFwuXC10b1wtcmFpc2U7CivljYIgPiB0b1wtZmx5XC1yYXBpZGx5Owor5Ye+ID4gY29ycmVzcG9uZGVuY2U7CivkvJUgPiBjb21tb25cLWxhYm9yZXI7CivkuocgPiBrd3VreWVsXC1oYW1tZXI7CivktpQgPiBwcm9taW5lbnRcLWd1bXM7CivktpAgPiB0b1wtdGFrZVwtYnJlYXRoOwor5LaAID4gc291bmRcLW9mXC1kcnVtczsKK+S1viA+IHNvdW5kXC1vZlwtZHJ1bXM7Civktb0gPiBzb3VuZFwtb2ZcLWRydW1zOwor5LW2ID4gYVwta2luZFwtb2ZcLWZyb2c7CivktYwgPiByZWRkaXNoXC15ZWxsb3c7CivktLQgPiBhXC1raW5kXC1vZlwtY2FrZTsKK+S0ryA+IGFcLWtpbmRcLW9mXC1jYWtlOwor5LSpID4gYVwta2luZFwtb2ZcLWRlZXI7CivktKIgPiBhXC1raW5kXC1vZlwtZGVlcjsKK+S0mCA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LSQID4gYVwta2luZFwtb2ZcLWJpcmQ7CivktIYgPiBhXC1raW5kXC1vZlwtYmlyZDsKK+S0hCA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LO/ID4gYVwta2luZFwtb2ZcLWJpcmQ7Civks7ggPiB0aGVcLXdpbGRcLWdvb3NlOwor5LO0ID4gYVwta2luZFwtb2ZcLWJpcmQ7Civks68gPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SzrCA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LOrID4gYVwtc21hbGxcLXBpZ2VvbjsKK+SzqiA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LOpID4gYVwta2luZFwtb2ZcLWJpcmQ7Civks5IgPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SyvSA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LK8ID4gYVwta2luZFwtb2ZcLWJpcmQ7CivksrggPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SyriA+IGFcLWtpbmRcLW9mXC1iaXJkOwor5LKqID4gYVwta2luZFwtb2ZcLWJpcmQ7CivksqIgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SyoCA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKfID4gYVwta2luZFwtb2ZcLWZpc2g7CivkspkgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SymCA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKXID4gYVwta2luZFwtb2ZcLWZpc2g7CivkspMgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SykCA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKPID4gYVwta2luZFwtb2ZcLWZpc2g7CivksosgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SyiSA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LKCID4gYVwta2luZFwtb2ZcLWZpc2g7CivksoAgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxvyA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LG8ID4gYVwta2luZFwtb2ZcLWZpc2g7CivksbsgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxtSA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGyID4gYVwta2luZFwtb2ZcLWZpc2g7CivksbAgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxryA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGuID4gYVwta2luZFwtb2ZcLWZpc2g7CivksawgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxqyA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGoID4gYVwta2luZFwtb2ZcLWZpc2g7CivksaUgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxpCA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGiID4gYVwta2luZFwtb2ZcLWZpc2g7CivksaAgPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxniA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LGbID4gYVwta2luZFwtb2ZcLWZpc2g7CivksZogPiBhXC1raW5kXC1vZlwtZmlzaDsKK+SxkyA+IGFcLWtpbmRcLW9mXC1maXNoOwor5LC+ID4gYVwta2luZFwtb2ZcLWZpc2g7CivksLkgPiB0aGVcLWN1dHRsZWZpc2g7CivksLQgPiBhXC13YWZ0aW5nXC1maXNoOwor5LCyID4gdGhlXC1zaGVhdFwtZmlzaDsKK+SwoSA+IGFcLWZpZXJjZVwtZ2hvc3Q7Civkr5sgPiB0aGVcLWtuZWVcLWJvbmVzOwor5K65ID4gYW5cLWFuZ3J5XC1ob3JzZTsKK+SuriA+IGFcLWtpbmRcLW9mXC1tdWxlOwor5K27ID4gYVwtc3dpZnR5XC1ob3JzZTsKK+StsyA+IGFcLWtpbmRcLW9mXC1oZXJiOwor5K2yID4gc3dlZXRcLXNtZWxsaW5nOwor5K2tID4gdGhlXC1lbGRlc3RcLXNvbjsKK+StqSA+IHRvXC1mZWVkXC1hXC1iYWJ5Owor5K2nID4gdG9cLWZlZWRcLWFcLWJhYnk7CivkrYEgPiBzdGlua2luZ1wtc21lbGw7CivkrLogPiBzYW1lXC1hc1wtdVwrNGI1MDsKK+SsmCA+IHRoZVwtd2luZFwtYmxvd3M7CivkrJIgPiB0b1wtYmxvd1wtY2hpbGx5Owor5KyMID4gdGhlXC13aW5kXC1ibG93czsKK+SrqyA+IGh1bWFuXC1za2VsZXRvbjsKK+SqvCA+IHRoZVwtY2hlZWtcLWJvbmU7CivkqoggPiBhXC1sZWF0aGVyXC1iZWx0Owor5KmQID4gdGllXC1pdFwtdGlnaHRseTsKK+SoqyA+IGRyaXp6bGluZ1wtcmFpbjsKK+SopSA+IGFcLXBvdXJpbmdcLXJhaW47CivkqJwgPiBhXC1wb3VyaW5nXC1yYWluOwor5Ke+ID4gYVwta2luZFwtb2ZcLWJpcmQ7Civkp7cgPiBhXC1raW5kXC1vZlwtYmlyZDsKK+SnpyA+IGhpZ2hcLW1vdW50YWluczsKK+SmuiA+IG5hbWVcLW9mXC1hXC1oaWxsOwor5KakID4gc2VlZFwtb2ZcLWdyYWluczsKK+SmkSA+IHdpdGhvdXRcLWFcLWRvb3I7Civkpo8gPiB3aW5nXC1vZlwtYVwtZG9vcjsKK+SloiA+IHNvdW5kXC1vZlwtZHJ1bXM7CivkpJYgPiBhXC1raW5kXC1vZlwtd2luZTsKK+SjpSA+IGFcLWtpbmRcLW9mXC13aW5lOwor5KOOID4gbmFtZVwtb2ZcLWNvdW50eTsKK+SiqCA+IHRvXC13YWxrXC1zbG93bHk7Civkob4gPiBoaWdoXC1jYXJ0bG9hZHM7CivkobIgPiByaW1cLW9mXC1hXC13aGVlbDsKK+ShlyA+IHJpbVwtb2ZcLWFcLXdoZWVsOwor5KGJID4gYVwta2luZFwtb2ZcLWNhcnQ7Civkn5MgPiB0b1wtd2Fsa1wtc2xvd2x5Owor5J24ID4gYVwta2luZFwtb2ZcLXRvb2w7CivknL0gPiBhXC1raW5kXC1vZlwtYmVhbjsKK+ScvCA+IGFcLWtpbmRcLW9mXC1iZWFuOwor5JycID4gd29yZHNcLW9mXC1hbmdlcjsKK+SboCA+IHVuYWJsZVwtdG9cLXRhbGs7CivkmpYgPiBtb3VudGFpblwtZGVpdHk7CivkmoQgPiB0b1wtbWFrZVwtZnVuXC1vZjsKK+SZsyA+IHNwaXRpbmdcLWZsYW1lczsKK+SZpiA+IHVwcGVyXC1nYXJtZW50czsKK+SYoiA+IG9sZFwtYW5kXC1zaGFiYnk7CivkmIMgPiBhXC1raW5kXC1vZlwtY3JhYjsKK+SXtyA+IGFcLWtpbmRcLW9mXC13YXNwOwor5JeqID4gYVwta2luZFwtb2ZcLXdvcm07Civkl5wgPiBhXC1tb2xlXC1jcmlja2V0Owor5JeaID4gZWdnc1wtb2ZcLW1hbnRpczsKK+SXkiA+IGFcLWtpbmRcLW9mXC1jbGFtOwor5JeAID4gYVwta2luZFwtb2ZcLWNsYW07CivklrAgPiBhXC1raW5kXC1vZlwtZ25hdDsKK+SWhiA+IG1lZGljaW5hbFwtaGVyYjsKK+SVmiA+IGFcLXN0cmF3XC1iYXNrZXQ7CivklJUgPiBjaGlja2VuXC1icmVhc3Q7CivklIsgPiBhXC1raW5kXC1vZlwtdHJlZTsKK+SUhiA+IGFcLWtpbmRcLW9mXC1iZWFuOwor5JSCID4gdmVnZXRhYmxlXC1zb3VwOwor5JOhID4gYVwtbWVkaWNhbFwtaGVyYjsKK+SSuyA+IGFcLW1lZGljYWxcLWhlcmI7CivkkrIgPiBhXC1tZWRpY2FsXC1oZXJiOwor5JKTID4gdG9cLWRvXC12aW9sZW5jZTsKK+SShyA+IG5hbWVcLW9mXC1hXC1zaGlwOwor5JKGID4gbmFtZVwtb2ZcLWFcLXNoaXA7CivkkoUgPiBiZWF1dGlmdWxcLWV5ZXM7CivkkbYgPiBzcHJpZ2h0bHlcLWJvYXQ7CivkkasgPiB0b29sc1wtZm9yXC1ib2F0Owor5JGjID4gYVwtc2FpbGluZ1wtYm9hdDsKK+SRnCA+IHRvXC1lYXRcLWhlYXZpbHk7CivkkJUgPiBvaWxcLWFuZFwtZ3JlYXNlOwor5JCNID4gZXhjZWxsZW50XC1mb29kOwor5I2hID4gc21hbGxcLWZpc2hcLW5ldDsKK+SNkSA+IGFcLW5ldFwtb3JcLXNuYXJlOwor5I2QID4gYVwtbmV0XC1vclwtc25hcmU7CivkjY0gPiB1bmJ1cm50XC1icmlja3M7CivkjLUgPiBsYXBlbFwtYW5kXC1iZWx0Owor5IywID4gY29ubmVjdGVkXC1zaWxrOwor5IylID4gdG9cLXNld1wtY2xvdGhlczsKK+SMoSA+IHRvXC13aW5kXC1hcm91bmQ7Civki70gPiBoZW1wZW5cLXNhbmRhbHM7Civki68gPiBjcnVjaWFsXC1wb2ludHM7Civki6IgPiB0b1wtdHdpc3RcLXJvcGVzOwor5IucID4gY3J1Y2lhbFwtcG9pbnRzOwor5Iq8ID4gbWVhc3VyaW5nXC11bml0Owor5IqoID4gc3RvcmluZ1wtZ3JhaW5zOwor5Ii3ID4gYVwtYmFtYm9vXC1mZW5jZTsKK+SImiA+IGFcLWJhbWJvb1wtc2hvb3Q7Civkh6sgPiBiYW1ib29cLXNwbGludHM7Civkh4UgPiB0b1wtc3RhbmRcLXN0aWxsOwor5IWlID4gcmlwZW5pbmdcLWNyb3BzOwor5IWWID4gc3dlZXRcLXNtZWxsaW5nOwor5IO5ID4gamFkZVwtYW5kXC1zdG9uZTsKK+SDuCA+IGVsZWN0cmljXC1saWdodDsKK+SDsSA+IGVsZWN0cmljXC1saWdodDsKK+SDoSA+IGFcLXNtYWxsXC1wZWJibGU7Civkg48gPiBhXC1raW5kXC1vZlwtcm9jazsKK+SDjCA+IHJvY2t5XC1tb3VudGFpbjsKK+SCmyA+IGFcLWtpbmRcLW9mXC1yb2NrOwor5IKMID4gYVwtc2hvcnRcLXdlYXBvbjsKK+SBpCA+IG1vaXN0ZW5lZFwtZXllczsKK+SBjyA+IGZhcnNpZ2h0ZWRuZXNzOwor5IC6ID4gc3F1aW50aW5nXC1leWVzOwor5IClID4gYmVhdXRpZnVsXC1leWVzOwor472mID4gcmVjbGFpbWVkXC1sYW5kOwor472lID4gZmVydGlsZVwtZmllbGRzOwor472LID4gYVwta2luZFwtb2ZcLXRpbGU7CivjvYQgPiBhblwtZWFydGhlblwtamFyOwor47u/ID4gYVwta2luZFwtb2ZcLWphZGU7Civju7ogPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7tSA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47uvID4gYVwta2luZFwtb2ZcLWphZGU7Civju6wgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7pyA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47ufID4gYVwta2luZFwtb2ZcLWphZGU7Civju50gPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7liA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47uVID4gYVwta2luZFwtb2ZcLWphZGU7Civju5QgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O7kSA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47uLID4gYVwta2luZFwtb2ZcLWphZGU7Civju4IgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O6uSA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47q4ID4gYVwta2luZFwtb2ZcLWphZGU7CivjurcgPiBhXC1raW5kXC1vZlwtamFkZTsKK+O6sSA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47qwID4gYVwta2luZFwtb2ZcLWphZGU7Civjuq0gPiBhXC1raW5kXC1vZlwtamFkZTsKK+O6qyA+IGFcLWtpbmRcLW9mXC1qYWRlOwor47irID4gY2FzdHJhdGVkXC1idWxsOwor47ikID4gYnJva2VuXC1sZWF0aGVyOwor47iKID4gZmllcmNlXC1vZlwtZmlyZTsKK+O2oCA+IHdhdGVyXC1jdXJyZW50czsKK+O2niA+IHdhdGVyXC1jdXJyZW50czsKK+O1pSA+IHdhdGVyXC1jdXJyZW50czsKK+O1mCA+IGdyZWF0XC1jdXJyZW50czsKK+O0uCA+IHN3aWZ0XC1jdXJyZW50czsKK+O0mSA+IHdhdGVyXC1kcmlwcGluZzsKK+OzgyA+IHRvXC10ZW1wZXJcLWlyb247Civjso8gPiBmbHlpbmdcLWZlYXRoZXI7CivjsacgPiBzdGlua2luZ1wtc21lbGw7CivjsY8gPiB0aGVcLXJpZ2h0XC1zaWRlOwor47CaID4gYVwtYmFtYm9vXC1mZW5jZTsKK+OwmCA+IGFcLWtpbmRcLW9mXC10cmVlOwor47CKID4gYVwta2luZFwtb2ZcLXRyZWU7CivjsIIgPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OwgCA+IGFcLWtpbmRcLW9mXC10cmVlOwor46+eID4gYVwta2luZFwtb2ZcLXRyZWU7Civjr5ogPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OvlyA+IGFcLWtpbmRcLW9mXC10cmVlOwor466LID4gYVwta2luZFwtb2ZcLXRyZWU7CivjroUgPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OtuyA+IHRoZVwtY3JhYlwtYXBwbGU7Civjra0gPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OtnCA+IGFcLWtpbmRcLW9mXC10cmVlOwor462aID4gYVwta2luZFwtb2ZcLXRyZWU7CivjrZQgPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OtkSA+IGFcLWtpbmRcLW9mXC10cmVlOwor462PID4gYVwta2luZFwtb2ZcLXdvb2Q7CivjrYcgPiBhXC1raW5kXC1vZlwtdHJlZTsKK+OthCA+IGFcLWtpbmdcLW9mXC10cmVlOwor462BID4gYVwta2luZFwtb2ZcLXRyZWU7CivjrIsgPiBuYW1lXC1vZlwtYVwtc3RhcjsKK+OrjyA+IGFcLWtpbmRcLW9mXC1mbGFnOwor46uCID4gdG9cLWNob3BcLW9yXC1jdXQ7CivjqocgPiB0b1wtZGlzc2VtaW5hdGU7CivjqIcgPiB0b1wtc3dlZXBcLWNsZWFuOwor76evID4gbHVzdGVyXC1vZlwtamFkZTsKK++mriA+IGx1c3RyZVwtb2ZcLWdlbXM7CivvpqsgPiBtb3VudGFpblwtcmlkZ2U7Civjpo0gPiB0b1wtYmVcLXN0YXJ0bGVkOwor46W6ID4gdG9cLWJsb3dcLWFcLWZpcmU7CivvpZggPiB3YXRlclwtY2hlc3RudXQ7CivjpYkgPiBhXC1saXR0bGVcLWFuZ3J5Owor46WHID4gdG9cLWJlXC1wZXJ2ZXJzZTsKK+OkviA+IG5vdFwtZG9pbmdcLXdlbGw7CivjpJYgPiB0b1wtaGF2ZVwtd2lzZG9tOwor46OmID4gYVwtd2luZGluZ1wtcGF0aDsKK+OinyA+IHRvXC13YWxrXC1zbG93bHk7CivjoZwgPiByYWdnZWRcLWNsb3RoZXM7CivjoKggPiBtaXN0eVwtbW91bnRhaW47CivjoKEgPiBoaWdoXC1hbmRcLWxvZnR5Owor46CaID4gaGlnaFwtYW5kXC1sb2Z0eTsKK+OfvyA+IGhpZ2hcLWFuZFwtc3RlZXA7Civjn5sgPiBoaWdoXC1hbmRcLXN0ZWVwOwor456pID4gbW91bnRhaW5cLXZhcG9yOwor456cID4gaGVtcGVuXC1zYW5kYWxzOwor456XID4gdGhlXC1tYWxlXC1vcmdhbjsKK+OejCA+IHRvXC1iZVwtcHJlZ25hbnQ7CivjnoogPiB1bmFibGVcLXRvXC13YWxrOwor452wID4gdW5hYmxlXC10b1wtbWVldDsKK+OdmyA+IGFoYWx0aW5nXC1wbGFjZTsKK+OcpCA+IGZvb2xpbmdcLWFyb3VuZDsKK+OckSA+IGFuXC1vbGRlclwtd29tYW47Civjm6kgPiBzaXN0ZXJzXC1pblwtbGF3Owor45uCID4gd2Vha1wtYW5kXC1zbWFsbDsKK+OauiA+IHRvXC1iZVwtcHJlZ25hbnQ7CivjmrIgPiBzbWFsbFwtYW5kXC13ZWFrOwor45qDID4gdG9cLXRha2VcLWFcLWhpbnQ7CivjmbcgPiBsb3dcLWx5aW5nXC1hcmVhOwor45eKID4gcHVibGljXC1vcGluaW9uOwor45a+ID4gdG9cLWJlYXRcLWFcLWRydW07CivjlqIgPiB0b1wtcmVqZWN0XC1mb29kOwor45WsID4gcHVibGljXC1vcGluaW9uOwor45WkID4gYVwtcHJvdWRcLXRlbXBlcjsKK+OUmSA+IGdyZWF0XC1zdHJlbmd0aDsKK+OUgSA+IGFcLWtpbmRcLW9mXC10b29sOwor45KbID4gdG9cLXN0YW5kXC1hbG9uZTsKK+OSgCA+IGRvXC1ub3RcLWZlYXJcLXRvOwor57uPID4gY2xhc3NpY1wtd29ya3M7CivlvJ8gPiB5b3VuZ1wtYnJvdGhlcjsKK+W7uyA+IGNpcmNsZVwtYXJvdW5kOwor5YWzID4gZnJvbnRpZXJcLXBhc3M7CivluJ0gPiBzdXByZW1lXC1ydWxlcjsKK+eVqiA+IHRvXC10YWtlXC10dXJuczsKK+eVpSA+IGFwcHJveGltYXRlbHk7CivlhbEgPiB0b2dldGhlclwtd2l0aDsKK+S5iSA+IHJpZ2h0XC1jb25kdWN0Owor5auCID4gc2lzdGVyXC1pblwtbGF3Owor5ZOlID4gZWxkZXJcLWJyb3RoZXI7CivlqaYgPiBtYXJyaWVkXC13b21lbjsKK+iooyA+IHRha2VcLWxlYXZlXC1vZjsKK+aXjyA+IGFcLWZhbWlseVwtY2xhbjsKK+WlqiA+IHRha2VcLWJ5XC1mb3JjZTsKK+WFhCA+IGVsZGVyXC1icm90aGVyOwor56yUID4gd3JpdGluZ1wtYnJ1c2g7CivoorcgPiBsaW5lZFwtZ2FybWVudDsKK+eArCA+IHN3aWZ0XC1jdXJyZW50Owor5aaHID4gbWFycmllZFwtd29tZW47CivkvK8gPiBvbGRlclwtYnJvdGhlcjsKK+a8siA+IHJpc2VcLWluXC1wcmljZTsKK+ekvCA+IHNvY2lhbFwtY3VzdG9tOwor5ZipID4gcnVzaGluZ1wtc291bmQ7CivllaMgPiBob2xkXC1pblwtbW91dGg7Civms4ogPiBhbmNob3JcLXZlc3NlbDsKK+ayvyA+IGZvbGxvd1wtY291cnNlOwor5ZKEID4gbm9pc2VcLW9mXC1yYWdlOwor5ZCrID4gaG9sZFwtaW5cLW1vdXRoOwor5aS6ID4gdGFrZVwtYnlcLWZvcmNlOwor6I+KID4gY2hyeXNhbnRoZW11bTsKK+WysyA+IG1vdW50YWluXC1wZWFrOwor5Yy5ID4gYm9sdFwtb2ZcLWNsb3RoOwor6aKHID4gbGVhblwtb25lXC1zaWRlOwor5YqrID4gdGFrZVwtYnlcLWZvcmNlOwor5pmoID4gZWFybHlcLW1vcm5pbmc7Civmkp4gPiBrbm9ja1wtYWdhaW5zdDsKK+aEiCA+IG1vcmVcLWFuZFwtbW9yZTsKK+anhyA+IHRpcFwtb2ZcLWFcLXRyZWU7Civpp4UgPiByZWxheVwtc3RhdGlvbjsKK+mlhSA+IHN0ZWFtZWRcLWJyZWFkOwor54K4ID4gdG9cLWZyeVwtaW5cLW9pbDsKK+iEiCA+IGJsb29kXC12ZXNzZWxzOwor57uqID4gZW5kXC1vZlwtdGhyZWFkOwor6aO8ID4gcmFpc2VcLWFuaW1hbHM7CivmopMgPiBjYXRhbHBhXC1vdmF0YTsKK+iCjCA+IG11c2NsZVwtdGlzc3VlOwor5L2pID4gYmVsdFwtb3JuYW1lbnQ7CivnvbIgPiBwdWJsaWNcLW9mZmljZTsKK+aQrSA+IGpvaW5cLXRvZ2V0aGVyOwor6aCXID4gbGVhblwtb25lXC1zaWRlOwor5qCXID4gY2hlc3RudXRcLXRyZWU7CivmoZEgPiBtdWxiZXJyeVwtdHJlZTsKK+iEiSA+IGJsb29kXC12ZXNzZWxzOwor576pID4gcmlnaHRcLWNvbmR1Y3Q7CivpnoQgPiB0b1wtd29ya1wtaGlkZXM7CivmnZMgPiBoYW5kbGVcLW9mXC1jdXA7CivkvYMgPiB0ZW5hbnRcLWZhcm1lcjsKK+aYhiA+IGVsZGVyXC1icm90aGVyOwor6LShID4gb2ZmZXJcLXRyaWJ1dGU7Civmi7wgPiBqb2luXC10b2dldGhlcjsKK+abhyA+IGJlY29tZVwtY2xvdWR5Owor5LqZID4gZXh0ZW5kXC1hY3Jvc3M7CivkupggPiBleHRlbmRcLWFjcm9zczsKK+ivniA+IGJlYXJcLWNoaWxkcmVuOwor5pm0ID4gY2xlYXJcLXdlYXRoZXI7CivmtqggPiByaXNlXC1pblwtcHJpY2U7Civpl5wgPiBmcm9udGllclwtcGFzczsKK+e3kiA+IGVuZFwtb2ZcLXRocmVhZDsKK+mWoiA+IGZyb250aWVyXC1wYXNzOwor5aGRID4gbW9kZWxcLWluXC1jbGF5Owor57aTID4gY2xhc3NpY1wtd29ya3M7CivntYwgPiBjbGFzc2ljXC13b3JrczsKK+a1piA+IGJhbmtcLW9mXC1yaXZlcjsKK+e/sCA+IHdyaXRpbmdcLWJydXNoOwor57GUID4gYmFtYm9vXC1iYXNrZXQ7CivovrAgPiBlYXJseVwtbW9ybmluZzsKK+aFjiA+IGFjdFwtd2l0aFwtY2FyZTsKK+iOiSA+IHdoaXRlXC1qYXNtaW5lOwor5o2XID4gbWFrZVwtcHJvZ3Jlc3M7CivnrYYgPiB3cml0aW5nXC1icnVzaDsKK+WTlyA+IHJ1c2hpbmdcLXNvdW5kOwor5aGMID4gZmFsbFwtaW5cLXJ1aW5zOwor56uWID4gcGVycGVuZGljdWxhcjsKK+emriA+IHNvY2lhbFwtY3VzdG9tOwor6ZmVID4gbW91bnRhaW5cLXBhc3M7Civmg5ogPiBhYnNlbnRcLW1pbmRlZDsKK+ivgCA+IHRha2VcLWxlYXZlXC1vZjsKK+a3gCA+IHNoYWxsb3dcLXdhdGVyOwor5reYID4gd2FzaFwtaW5cLXNpZXZlOwor55GwID4gZXh0cmFvcmRpbmFyeTsKK+WeqyA+IGFkdmFuY2VcLW1vbmV5Owor54G2ID4ga2l0Y2hlblwtcmFuZ2U7Civmr5MgPiBnaXZlXC1iaXJ0aFwtdG87CivlkqcgPiBzdHJldGNoXC1tb3V0aDsKK+WljiA+IHN0cmlkZVwtb2ZcLW1hbjsKK+a0vSA+IHRvXC1ibGVuZFwtd2l0aDsKK+eRtiA+IHByZWNpb3VzXC1qYWRlOwor6ZKwID4gcmFyZVwtdHJlYXN1cmU7CivnkZsgPiBsdXN0ZXJcLW9mXC1nZW07CivpppIgPiBzdGVhbWVkXC1icmVhZDsKK+mlsiA+IHJhaXNlXC1hbmltYWxzOwor5q6JID4gZGllXC1mb3JcLWNhdXNlOwor6KGZID4gcHVibGljXC1vZmZpY2U7CivllKwgPiB0b1wtaW50aW1pZGF0ZTsKK+eYqiA+IHNocml2ZWxsZWRcLXVwOwor5ZSGID4gbWFrZVwtbWlzY2hpZWY7CivlspogPiBtb3VudGFpblwtbWlzdDsKK+ahpiA+IHR5cGVcLW9mXC1iaXJjaDsKK+a2nyA+IGZsb3dpbmdcLXdhdGVyOwor5ZSUID4gaG9sZFwtaW5cLW1vdXRoOwor6aOVID4gc291bmRcLW9mXC13aW5kOwor5Z23ID4gY2xvZFwtb2ZcLWVhcnRoOwor6ZGrID4gdXNlZFwtaW5cLW5hbWVzOwor56yLID4gYmFtYm9vXC1zaG9vdHM7CivojYMgPiBhcm9tYXRpY1wtaGVyYjsKK+evkyA+IGJhbWJvb1wtYmFza2V0Owor6aaEID4gZHVtcGxpbmdcLXNvdXA7CivnqbkgPiBoaWdoXC1hbmRcLXZhc3Q7CivlvIggPiBjaGluZXNlXC1jaGVzczsKK+iBvyA+IHdyaXRpbmdcLWJydXNoOwor6amuID4gY2FycnlcLW9uXC1iYWNrOwor566pID4gYmFtYm9vXC1iYXNrZXQ7CivoiqUgPiBtdXN0YXJkXC1wbGFudDsKK+mpvyA+IHJlbGF5XC1zdGF0aW9uOwor54KcID4gYnJpbGxpYW50XC1yZWQ7CivlspwgPiByb2NrXC1tb3VudGFpbjsKK+e6qyA+IHRocmVhZFwtbmVlZGxlOwor5qGAID4gY2hpY2tlblwtcm9vc3Q7CivlmZkgPiBob2xkXC1pblwtbW91dGg7Civnr50gPiBiYW1ib29cLWJhc2tldDsKK+aLriA+IGxhYm9yaW5nXC1oYXJkOwor6IyJID4gd2hpdGVcLWphc21pbmU7CivnuqUgPiBpbmZlcmlvclwtc2lsazsKK+aYmSA+IGJlY29tZVwtY2xvdWR5Owor5b+kID4gaW5zdWJvcmRpbmF0ZTsKK+m4viA+IGZhYnVsb3VzXC1iaXJkOwor5ZiBID4gdG9cLWJlXC1ncmlldmVkOwor6L6OID4gYVwtc3VwcGx5XC1jYXJ0Owor6IqrID4gZGFwaG5lXC1nZW5rd2E7CivkvKcgPiB2dWxnYXJcLXBlcnNvbjsKK+azoCA+IG5pY2VcLWFuZFwtY29vbDsKK+e4uyA+IGhhbHRlclwtZm9yXC1veDsKK+i4vSA+IHRvXC13YWxrXC1hbG9uZTsKK+i1rSA+IHJlZGRpc2hcLWJyb3duOwor6aKAID4gdGFsbFwtYW5kXC1zbGltOwor5p+YID4gYVwtdGhvcm55XC10cmVlOwor6LCUID4gaG9uZXN0XC1zcGVlY2g7CivpqpMgPiBwaWViYWxkXC1ob3JzZTsKK+WyqyA+IG1vdW50YWluXC1wZWFrOwor5bSnID4gaGlnaFwtbW91bnRhaW47CivphZogPiBjYXJib2xpY1wtYWNpZDsKK+WkpCA+IGRpc3RhbnRcLXBsYWNlOwor5pqMID4gaW5cLW9wcG9zaXRpb247Civmv5EgPiBzd2lmdFwtY3VycmVudDsKK+aAjSA+IHRvXC1iZVwtYXNoYW1lZDsKK+i0vSA+IGdpZnRcLXN1cGVyaW9yOwor5q+WID4gZ3VhcmRcLWFnYWluc3Q7Civov5MgPiB0b1wtZ29cLXRvXC1tZWV0Owor5q+1ID4gbG9uZ1wtZmVhdGhlcnM7CivnnZogPiBjb3JuZXJcLW9mXC1leWU7Civmr70gPiBhXC1zaHV0dGxlY29jazsKK+WDsyA+IG1pbm9yaXR5XC1uYW1lOwor6aqQID4gcGllYmFsZFwtaG9yc2U7Civovo8gPiBodWJzXC1vZlwtd2hlZWw7Civml4YgPiBmbGFnXC1vcm5hbWVudDsKK+iNhyA+IGFcLXdhdGVyXC1wbGFudDsKK+WNriA+IG1lYXN1cmluZ1wtY3VwOwor6auhID4gdG9cLXNoZWFyXC10cmVlOwor6bOcID4gbWFuZGFyaW5cLWZpc2g7CivpvI0gPiBsYXJnZVwtcmVwdGlsZTsKK+esqyA+IHBsYW5rc1wtb2ZcLWJlZDsKK+e8oSA+IGFcLWJyaWRhbFwtdmVpbDsKK+e7qCA+IGNvYXJzZVwtcG9uZ2VlOwor6IqwID4gd2F0ZXJcLWNhbHRyb3A7CivprYMgPiBkcm91Z2h0XC1kZW1vbjsKK+iIsyA+IHN0ZXJuXC1vZlwtc2hpcDsKK+WxpiA+IHN0cmF3XC1zYW5kYWxzOwor6JOQID4gc3RyYXdcLWJlZFwtbWF0Owor6YqOID4gZXllXC1vZlwtYW5cLWF4ZTsKK+mGoyA+IGNhcmJvaHlkcmF0ZXM7Civom5EgPiBhXC1tYXJpbmVcLWNyYWI7CivmpKAgPiB3b29kZW5cLXRhYmxldDsKK+WquCA+IGFuXC11Z2x5XC13b21hbjsKK+mmhyA+IHN0aXJcLWFuZFwtY29vazsKK+eUmSA+IHN1Z2FyXC1wcm9kdWN0Owor6JakID4gYWxsaXVtXC1iYWtlcmk7CivloaUgPiBkcnlcLWNsYXlcLWx1bXA7CivpvIkgPiBsYXJnZVwtcmVwdGlsZTsKK+m4niA+IGZhYnVsb3VzXC1iaXJkOwor6bWpID4gb3dsXC1saWtlXC1iaXJkOwor6bGWID4gbWFuZGFyaW5cLWZpc2g7Civpq4MgPiBzaG91bGRlclwtYm9uZTsKK+mqqiA+IGNyb29rZWRcLWJvbmVzOwor6ambID4gcmVsYXlcLXN0YXRpb247CivpqI8gPiBwaWViYWxkXC1ob3JzZTsKK+mohSA+IHBpZWJhbGRcLWhvcnNlOwor6aaxID4gY2FycnlcLW9uXC1iYWNrOwor6aajID4gZnJhZ3JhbnRcLW9kb3I7CivppKcgPiBzdGVhbWVkXC1icmVhZDsKK+mkmyA+IGR1bXBsaW5nXC1zb3VwOwor6aSaID4gcHJlcGFyZWRcLW1lYXQ7CivporwgPiBzb3VuZFwtb2ZcLXdpbmQ7CivpoI4gPiB0YWxsXC1hbmRcLXNsaW07Civpnq4gPiBsZWF0aGVyXC1zaG9lczsKK+mcnSA+IGRyb3BzXC1vZlwtcmFpbjsKK+mZnSA+IG1vdW50YWluXC1wYXNzOwor6ZOWID4gcGVyc29uJydzXC1uYW1lOwor6YyhID4gYVwta2luZFwtb2ZcLXBlbjsKK+mLriA+IHBlcnNvbicnc1wtbmFtZTsKK+mIuiA+IHJhcmVcLXRyZWFzdXJlOwor6YiEID4gYVwtd2luZVwtZmxhZ29uOwor6YetID4gdGlyZVwtb2ZcLXdoZWVsOwor6YaoID4gZHJlZ3NcLW9mXC13aW5lOwor6L6hID4gcmVjcmltaW5hdGlvbjsKK+i9jyA+IHNsZWVwaW5nXC1jYXJ0Owor6LyzID4gaHVic1wtb2ZcLXdoZWVsOwor6LycID4gYVwtc3VwcGx5XC1jYXJ0Owor6LeuID4gaGFzdHlcLXdhbGtpbmc7CivotIkgPiBlYXJuZXN0XC1tb25leTsKK+i0hCA+IGdpZnRcLXN1cGVyaW9yOwor6LOuID4gZmFyZXdlbGxcLWdpZnQ7CivosqIgPiBvZmZlclwtdHJpYnV0ZTsKK+iujSA+IGhvbmVzdFwtc3BlZWNoOwor6K6GID4gdG9cLWV4YWdnZXJhdGU7CivorI0gPiBodW1taW5nXC1zb3VuZDsKK+irpCA+IGhvbmVzdFwtc3BlZWNoOwor6KuVID4gdG9cLWludGltaWRhdGU7CivoprYgPiB0b1wtbG9va1wtYWJvdXQ7CivoppQgPiB0b1wtc2VhcmNoXC1mb3I7CivopZogPiBncmF2ZVwtY2xvdGhlczsKK+ijjCA+IGxpbmVkXC1nYXJtZW50Owor6KGHID4gYmxvb2RcLXZlc3NlbHM7CivooLUgPiBsYXJnZVwtdHVydGxlczsKK+ieviA+IHRoZVwtZWFydGh3b3JtOwor6J6lID4gdGhlXC1ob3VzZVwtZmx5Owor6J6ZID4gZ3J1YnNcLWluXC13b29kOwor6JuFID4gYVwtY2F0ZXJwaWxsYXI7CivomqAgPiBwZXJzb24nJ3NcLW5hbWU7CivomK8gPiB0b1wtdG9zc1wtYWJvdXQ7CivolI4gPiB0aGVhXC1zaW5lbnNpczsKK+iTpyA+IGJhbWJvb1wtYmFza2V0Owor6JG9ID4gdHlwZVwtb2ZcLWdyYWluOwor6I+8ID4gcnVzaFwtb3JcLXNlZGdlOwor6I+6ID4gYWx0aGFlYVwtcm9zZWE7Civoj5EgPiB0b1wtd2VlZFwtZ3Jhc3M7CivojqcgPiBlZGlibGVcLWdyZWVuczsKK+iNiCA+IHRoZWFcLXNpbmVuc2lzOwor6IylID4gcnVidXNcLXRva2t1cmE7Civoi5ggPiBpbmRpYW5cLW1hbGxvdzsKK+iEpSA+IHBlbHZpY1wtY2F2aXR5Owor6IOyID4gaHlkcm94eWxhbWluZTsKK+e9syA+IHdvb2Rlblwtc2NyZWVuOwor57yHID4gcmVkZGlzaFwtY29sb3I7CivnuK0gPiBhXC1icmlkYWxcLXZlaWw7Civnt7kgPiByZWRkaXNoXC1jb2xvcjsKK+e3liA+IGVuZFwtb2ZcLXRocmVhZDsKK+e2iCA+IGNvYXJzZVwtcG9uZ2VlOwor57SJID4gdGhyZWFkXC1uZWVkbGU7CivntIcgPiBpbmZlcmlvclwtc2lsazsKK+ezrSA+IHJpY2VcLWR1bXBsaW5nOwor57G+ID4gdW5odWxsZWRcLXJpY2U7Civnsa4gPiBiYW1ib29cLWJhc2tldDsKK+exnCA+IGJhbWJvb1wtc2hlYXRoOwor57CNID4gYmFtYm9vXC1iYXNrZXQ7CivnrqggPiBiYW1ib29cLXNoZWF0aDsKK+estSA+IGFcLWJhbWJvb1wtZm9ybTsKK+esrSA+IGJhbWJvb1wtc2NyZWVuOwor56uqID4gcGVycGVuZGljdWxhcjsKK+egniA+IHRvXC1zbWFzaFwtcm9jazsKK+efniA+IGJvcmVcLXdpdGhcLWF3bDsKK+ebqiA+IHRvXC10b3NzXC1hYm91dDsKK+eZnyA+IHNocml2ZWxsZWRcLXVwOwor55WnID4gYXBwcm94aW1hdGVseTsKK+eTjCA+IGV4dHJhb3JkaW5hcnk7Civnkp8gPiBsdXN0ZXJcLW9mXC1nZW07CivnkoIgPiBqYWRlXC1vcm5hbWVudDsKK+eRsyA+IGx1c3Rlclwtb2ZcLWdlbTsKK+eRpCA+IHByZWNpb3VzXC1qYWRlOwor55CVID4gdHlwZVwtb2ZcLXBlYXJsOwor54+uID4gamFkZVwtb3JuYW1lbnQ7CivnjZkgPiBkaWVcLXZpb2xlbnRseTsKK+eJgSA+IG1vb3JpbmdcLXN0YWtlOwor54awID4gZ3JlYXRcLWRyb3VnaHQ7CivnhZIgPiBicmlsbGlhbnRcLXJlZDsKK+eAqCA+IHN3aWZ0XC1jdXJyZW50Owor5ryjID4gZmxvd2luZ1wtd2F0ZXI7CivmtawgPiBuYXV0aWNhbFwtbWlsZTsKK+a0iiA+IGZsb3dpbmdcLXdhdGVyOwor5q+/ID4gbG9uZ1wtZmVhdGhlcnM7CivmrLUgPiB0b1wtdHJlYXRcLXdlbGw7CivmrJMgPiBhXC1jcm9zc1wtcGllY2U7Civmq4wgPiBhXC1raW5kXC1vZlwtaG9lOwor5qquID4gYmxvY2tcLW9mXC13b29kOwor5qi6ID4gdHlwZVwtb2ZcLWJpcmNoOwor5qenID4gd29vZGVuXC10YWJsZXQ7CivmpowgPiB3b29kZW5cLWxhZGRlcjsKK+almSA+IG5hbWVcLW9mXC1wbGFudDsKK+akmyA+IHR5cGVcLW9mXC1iaXJjaDsKK+aivCA+IGJsb2NrXC1vZlwtd29vZDsKK+aiuSA+IHRoZVwtYXJlY2FcLW51dDsKK+aijiA+IHNpY2tsZVwtaGFuZGxlOwor5qCwID4gYVwtYmFtYm9vXC1yYWZ0Owor5p2uID4gd29vZFwtc2hhdmluZ3M7CivmnKkgPiBrd3VreWVsXDpcLXJhbms7CivmkKIgPiB0b1wtc3RpY2tcLWludG87Civmjq0gPiB0b1wtbWFuaXB1bGF0ZTsKK+aMtiA+IGhvbGRcLWluXC1oYW5kczsKK+aLlSA+IHRvXC1kcmFnXC1hZnRlcjsKK+aKgyA+IHRvXC1jbGFwXC1oYW5kczsKK+aIuiA+IHN0b25lXC1ib2FyZGVyOwor5oi5ID4gaW5cLWRpZmZpY3VsdHk7CivmhLwgPiBhY3RcLXdpdGhcLWNhcmU7CivmhKogPiB0b1wtYmVcLWdyaWV2ZWQ7CivmhKEgPiBhYnNlbnRcLW1pbmRlZDsKK+aAviA+IG1vdW50YWluXC1uYW1lOwor5b29ID4gZ29cLXRvXC1hbmRcLWZybzsKK+W9siA+IHllbGxvd1wtZHJhZ29uOwor5b2UID4gdG9cLWNhcnZlXC13b29kOwor5be1ID4gbWVhc3VyaW5nXC1jdXA7Civlt7AgPiBhblwtYXRvbVwtZ3JvdXA7Civlt68gPiBhblwtYXRvbVwtZ3JvdXA7Civlt6ogPiBwZXJzb24nJ3NcLW5hbWU7Civltr0gPiBtb3VudGFpblwtcGVhazsKK+W1kCA+IG1vdW50YWluXC1taXN0Owor5bSMID4gbW91bnRhaW5cLW5hbWU7Civls6AgPiBtb3VudGFpblwtcGFzczsKK+WzgiA+IG5hbWVcLW9mXC1wbGFjZTsKK+WzgCA+IG1vdW50YWluXC1wZWFrOwor5bK+ID4gbW91bnRhaW5cLXBhc3M7CivlsakgPiBzdHJhd1wtc2FuZGFsczsKK+WxqCA+IHN0cmF3XC1zYW5kYWxzOwor5a+AID4gZmV1ZGFsXC1lc3RhdGU7CivlqqIgPiBiZVwtamVhbG91c1wtb2Y7CivlooogPiBhZHZhbmNlXC1tb25leTsKK+WhkCA+IG1vZGVsXC1pblwtY2xheTsKK+WguiA+IHBlcnNvbicnc1wtbmFtZTsKK+WeuyA+IGFuXC1lbWJhbmttZW50Owor5ZqaID4gYXJndW1lbnRhdGl2ZTsKK+WSoSA+IHNpZGVcLW9mXC1tb3V0aDsKK+WHnyA+IHRvXC1iZVwtcnVkZVwtdG87CivlhLkgPiB0b1wtYWNjdW11bGF0ZTsKK+WEsiA+IHRvXC1zYXZlXC1tb25leTsKK+WEmyA+IHRvXC1za2lwXC1hYm91dDsKK+WCliA+IHZ1bGdhclwtcGVyc29uOwor5YKSID4gcGVyc29uYWxcLW5hbWU7CivlgYogPiB0b1wtd2Fsa1wtYWxvbmU7CivkvoIgPiB0b1wtY29tbWlzc2lvbjsKK+S5qCA+IHRoZVwtYmVnaW5uaW5nOwor5LaaID4gZGVjYXllZFwtdG9vdGg7CivktoggPiBhXC1raW5kXC1vZlwtcmF0Owor5LaDID4gYVwta2luZFwtb2ZcLXJhdDsKK+S1vyA+IGFcLXNpbGVudFwtZHJ1bTsKK+S1gSA+IGRlY2F5ZWRcLWRvdWdoOwor5LSwID4gYVwtZmFtaWx5XC1uYW1lOwor5LK6ID4gYmlyZHNcLXNpbmdpbmc7CivksoUgPiB0aGVcLWdsb2JlZmlzaDsKK+SxuCA+IGFcLWZhbWlseVwtbmFtZTsKK+SxpiA+IHRoZVwtZ2xvYmVmaXNoOwor5LGhID4gdGhlXC1nbG9iZWZpc2g7CivksL0gPiB0aGVcLWdsb2JlZmlzaDsKK+SwuyA+IHRvXC1jYXRjaFwtZmlzaDsKK+SwsSA+IG5hbWVcLW9mXC1hXC1nb2Q7Civkr4UgPiBhXC1zd2lmdFwtaG9yc2U7Civkr4AgPiBhXC1zd2lmdFwtaG9yc2U7CivkroggPiB0b1wtZ29cLXN3aWZ0bHk7Civkrb8gPiBhXC1zd2lmdFwtaG9yc2U7CivkrbUgPiBhXC1zd2lmdFwtaG9yc2U7CivkrJ8gPiBzb3VuZFwtb2ZcLXdpbmQ7Civkq78gPiBhXC1jb29sXC1icmVlemU7Civkq7QgPiB3ZWFrXC1hbmRcLWR1bGw7Civkq4EgPiB0aGVcLWZpcnN0XC1zb247CivkqqsgPiBhbmNpZW50XC1tdXNpYzsKK+SqpyA+IGFuY2llbnRcLW11c2ljOwor5KqSID4gbGVhdGhlclwtcGFudHM7Civkqb4gPiBoZXJiXC1tZWRpY2luZTsKK+SppCA+IHRvXC1sZWFkXC1hblwtb3g7CivkqaMgPiBzaG9lXC1jdXNoaW9uczsKK+SpniA+IGFcLXNhZGRsZVwtZmxhcDsKK+SojiA+IGRlZXBcLWFuZFwtZGFyazsKK+SnnCA+IGFuXC1lbWJhbmttZW50Owor5KeWID4gYVwtc21hbGxcLW1vdW5kOwor5Ka0ID4gb3BlblwtdGhlXC1kb29yOwor5KazID4gYmV0d2Vlblwtc3RlcHM7CivkprEgPiBvcGVuXC10aGVcLWRvb3I7CivkpqMgPiBvcGVuXC10aGVcLWRvb3I7CivkpqEgPiBhXC1kb29yXC1rZWVwZXI7CivkpakgPiBob29rc1wtdG9cLWhhbmc7CivkpZogPiB0aGVcLWJlZ2lubmluZzsKK+SktSA+IGFcLXRpbnlcLW5lZWRsZTsKK+SklCA+IGRyZWdzXC1vZlwtd2luZTsKK+SkjiA+IHNveWJlYW5cLXNhdWNlOwor5KSDID4gZHJ1bmtlblwtc291bmQ7Civko7AgPiB0b1wtcG9vbFwtbW9uZXk7CivkoqcgPiB0b1wtZ29cLWZvcndhcmQ7CivkopogPiBhXC1uYXJyb3dcLXBhdGg7CivkooMgPiB0b1wtYWRtaW5pc3RlcjsKK+ShpSA+IGFcLW1vdmluZ1wtY2FydDsKK+ShhiA+IGFcLW1vdmluZ1wtY2FydDsKK+SfmCA+IHRvXC1zdHJhaWdodGVuOwor5J+KID4gc2hvcnRcLXN0cmlkZXM7CivknoEgPiBjb3JyZXNwb25kaW5nOwor5J22ID4gdG9cLWxldnlcLXRheGVzOwor5J2sID4gYVwtd2VhbHRoeVwtbWFuOwor5JyVID4gdG9cLWV4YWdnZXJhdGU7Civkm74gPiBmYW1pbGlhclwtd2l0aDsKK+SbkCA+IGFuXC1leHByZXNzaW9uOwor5JqVID4gdG9cLXNlYXJjaFwtb3V0Owor5Jm5ID4gdG9cLXZvbWl0XC1taWxrOwor5JmlID4gc2hpbnlcLWRyZXNzZXM7CivkmaIgPiBzaG9ydFwtdFwtc2hpcnQ7CivkmaAgPiBzaG9ydFwtY2xvdGhlczsKK+SZnyA+IGhlYXZ5XC1jbG90aGVzOwor5JmeID4gd29vbGVuXC1zdHJpbmc7CivkmYUgPiB0aGVcLXdhaXN0bGluZTsKK+SXlyA+IHRoZVwtbWlsbGlwZWRlOwor5JeLID4gYVwtbWFyaW5lXC1jcmFiOwor5JeDID4gdGhlXC1taWxsaXBlZGU7CivklqkgPiBhXC1raW5kXC1vZlwtYmVlOwor5JaRID4gYVwtd2hpdGVcLXRpZ2VyOwor5JaHID4gZnJhZ3JhbnRcLWhlcmI7CivklaUgPiBoZXJiXC1tZWRpY2luZTsKK+SVliA+IGZyYWdyYW50XC1oZXJiOwor5JSeID4gdGhlXC1iZWdpbm5pbmc7CivklJwgPiBoZXJiXC1tZWRpY2luZTsKK+SUmiA+IGhlcmJcLW1lZGljaW5lOwor5JSWID4gd2F0ZXJcLWNhbHRyb3A7CivklJMgPiBoZXJiXC1tZWRpY2luZTsKK+SSpSA+IGNvcnJlc3BvbmRpbmc7CivkkpcgPiBmcmFncmFudFwtaGVyYjsKK+SSjiA+IHdpdGhvdXRcLWNvbG9yOwor5JKNID4gd2l0aG91dFwtY29sb3I7CivkkbIgPiB0b1wtcm93XC1hXC1ib2F0Owor5JGlID4gYVwtbW92aW5nXC1ib2F0Owor5JCyID4gaGFsZlwtcmF3XC1tZWF0Owor5JCZID4gdGhlXC1kaWFwaHJhZ207Civkj5ggPiBhXC1iaWdcLWFiZG9tZW47Civkj4QgPiBub3RcLXRvXC1saXN0ZW47Civkjb0gPiBhXC1maWVyY2VcLWdvYXQ7CivkjbwgPiBzYWx0ZWRcLW11dHRvbjsKK+SNqiA+IGNhc3RyYXRlZFwtcmFtOwor5I2kID4gdG9cLXN0cmFpblwtb3V0Owor5IyjID4gdG9cLWFjY3VtdWxhdGU7CivkjJkgPiBoYW5rXC1vZlwtcm9wZXM7CivkjIUgPiBhXC10aGlja1wtcm9wZXM7Civki6YgPiByYXZlbGxlZFwtc2lsazsKK+SLnSA+IGFcLXRocm9hdFwtYmFuZDsKK+SKvSA+IGFcLWZpbmVcLXRocmVhZDsKK+SKoSA+IHN0ZWFtZWRcLWJyZWFkOwor5IqUID4gcG9saXNoZWRcLXJpY2U7CivkioQgPiBwb2xpc2hlZFwtcmljZTsKK+SJsCA+IGJhbWJvb1wtc2hvb3RzOwor5ImpID4gYVwtYmFtYm9vXC13YXJlOwor5ImoID4gYmFtYm9vXC1qb2ludHM7CivkiL4gPiBtb3ZlXC1hXC1saXR0bGU7CivkiLMgPiBhXC13aW5kb3dcLWxlYWY7Civkh4sgPiBuYW1lXC1vZlwtYVwtZ29kOwor5IaeID4gZGVlcFwtYW5kXC1kYXJrOwor5IaaID4gdG9cLWdvXC10aHJvdWdoOwor5IaXID4gZGVlcFwtYW5kXC1kYXJrOwor5IWbID4gaHVza3NcLW9mXC1yaWNlOwor5ISUID4gYVwtZmFtaWx5XC1uYW1lOwor5ISHID4gYVwtZmFtaWx5XC1uYW1lOwor5IO7ID4gYW5cLWVtYmFua21lbnQ7Civkg7MgPiBmYWxsaW5nXC1zdG9uZTsKK+SCtiA+IHRoZVwtY3J1c3RhY2VhOwor5IKXID4gdG9cLWJlXC1jYXJlZnVsOwor5IKOID4gYVwtc2hvcnRcLXNwZWFyOwor5IKBID4gYW5cLWFuZ3J5XC1sb29rOwor5IGZID4gZWxvcXVlbnRcLWV5ZXM7CivkgK4gPiBzaWdodFwtYmx1cnJlZDsKK+SArSA+IHdpdGhcLWJpZ1wtZXllczsKK+SApyA+IHNpZ2h0XC1ibHVycmVkOwor5ICfID4gc2lnaHRcLWJsdXJyZWQ7CivkgJYgPiB0b1wtbG9va1wtdXBcLXRvOwor5ICVID4gYW5ncnlcLWdsYW5jZXM7Civjv6wgPiBuYXNhbFwtZGlzZWFzZTsKK+O/nCA+IHNocml2ZWxsZWRcLXVwOwor4769ID4gc3dlbGxpbmdcLWZlZXQ7CivjvbIgPiBncmlwaW5nXC1jb2xpYzsKK+O9sSA+IGdyaXBpbmdcLWNvbGljOwor472HID4gdW5idXJudFwtdGlsZXM7CivjvLUgPiBhXC1zbWFsbFwtYmFzaW47CivjvJ8gPiBhXC10aWxlZFwtaG91c2U7CivjvI4gPiBhXC1zbWFsbFwtbWVsb247Civju74gPiBqYWRlXC1hcnRpY2xlczsKK+O6qSA+IGphZGVcLWFydGljbGVzOwor47qIID4gdG9cLWdvXC1odW50aW5nOwor47m5ID4gYVwta2luZFwtb2ZcLWRvZzsKK+O5tSA+IGFcLWh1bnRpbmdcLWRvZzsKK+O5syA+IGFcLWtpbmRcLW9mXC1hcGU7CivjuaMgPiBhXC1raW5kXC1vZlwtZG9nOwor47iEID4gYVwtcmFnaW5nXC1maXJlOwor47e+ID4gYmxhemVcLW9mXC1maXJlOwor47e4ID4gYmxhemVcLW9mXC1maXJlOwor47eWID4gdG9cLXNoaW5lXC11cG9uOwor47eVID4gaGVhcmluZ1wtc291bmQ7Civjt5IgPiB0b1wtY29va1wtbWVhbHM7CivjtpggPiBmdWxsXC1vZlwtd2F0ZXI7CivjtbMgPiBjcnlzdGFsXC1jbGVhcjsKK+O1sSA+IGZsb3dpbmdcLXdhdGVyOwor47WgID4gdG9cLWd1c2hcLWZvcnRoOwor47S9ID4gd2F0ZXJcLWN1cnJlbnQ7CivjtLUgPiB3YXRlclwtY3VycmVudDsKK+O0ryA+IHdhdGVyXC1jdXJyZW50Owor47SuID4gd2F0ZXJcLWN1cnJlbnQ7CivjtKsgPiBncmVhdFwtZmxvd2luZzsKK+O0qCA+IHdhdGVyXC1jdXJyZW50Owor47SmID4gdG9cLXdhc2hcLWhhbmRzOwor47SlID4gZ3JlYXRcLWJpbGxvd3M7CivjtJIgPiB3YXRlclwtY3VycmVudDsKK+O0kCA+IGdyZWF0XC1jdXJyZW50Owor47SCID4gZ3JlYXRcLWJpbGxvd3M7Civjs6kgPiBncmVhdFwtYmlsbG93czsKK+OymyA+IGhhaXJ5XC1hbmltYWxzOwor47C7ID4gYXNzZXNcLWJyYXlpbmc7CivjsLMgPiBhc3Nlc1wtYnJheWluZzsKK+OwjyA+IGFcLWJhbWJvb1wtcG9sZTsKK+OwjCA+IHRvXC1tb25vcG9saXplOwor46+9ID4gdGhlXC1hcmVjYVwtbnV0Owor462/ID4gb2JsaXF1ZVwtYW5nbGU7CivjrZMgPiBhXC1waWxsYXJcLWFyY2g7CivjrKwgPiBhXC1mYW1pbHlcLW5hbWU7CivjrKUgPiB0b1wtc3VuXC10b1wtYWlyOwor46yEID4gd2FybVwtYW5kXC1kYW1wOwor46ufID4gZGF5XC1hZnRlclwtZGF5Owor46uaID4gZWFybHlcLW1vcm5pbmc7CivjqaUgPiBkZWxpY2F0ZVwtaGFuZDsKK++oqyA+IHJhaXNlXC1hbmltYWxzOwor46ieID4gdG9cLWZlZWxcLWFib3V0Owor76iYID4gc29jaWFsXC1jdXN0b207CivvqJIgPiBjbGVhclwtd2VhdGhlcjsKK+OnvCA+IHRvXC1kaXN0cmlidXRlOwor46e3ID4gdG9cLXdpcGVcLXRlYXJzOwor76eaID4gY2hlc3RudXRcLXRyZWU7Civjp5ggPiB0b1wtYWNjdW11bGF0ZTsKK++mtiA+IHNvY2lhbFwtY3VzdG9tOwor46arID4gbGF4XC1hbmRcLWNydWRlOwor76aSID4gZmxvd2luZ1wtd2F0ZXI7CivjpowgPiBrZWVuXC1vclwtc2hhcnA7CivjpoYgPiB0b1wtZXhhZ2dlcmF0ZTsKK+OlvCA+IHRvXC1iZVwtbmVhclwtdG87CivvpbYgPiBhcHByb3hpbWF0ZWx5Owor76WxID4gZWFybHlcLW1vcm5pbmc7CivjpaUgPiBhYnNlbnRcLW1pbmRlZDsKK+OksCA+IHRvXC1iZVwtYXNoYW1lZDsKK++koSA+IG1vdW50YWluXC1taXN0Owor76SgID4gZmFidWxvdXNcLWJpcmQ7Civjo78gPiBwYWluZnVsbHlcLXNhZDsKK+OjsSA+IGNvbW1vblwtcGVvcGxlOwor46OkID4gdG9cLXRyZWFkXC11cG9uOwor46OUID4gdG9cLXdhbGtcLWFsb25lOwor46K7ID4gdG9cLWRyYXdcLWFcLWJvdzsKK+OiliA+IGFcLXN0b3JlXC1ob3VzZTsKK+OhtyA+IGFcLWZhbWlseVwtbmFtZTsKK+OguiA+IGFcLWZpbmVcLXRocmVhZDsKK+OgtCA+IGFcLXBpbGxvd1wtY2FzZTsKK+OgmyA+IG5hbWVcLWFcLWNvdW50eTsKK+OftiA+IG1vdW50YWluXC1wZWFrOwor45+yID4gbW91bnRhaW5cLXBlYWs7Civjn60gPiB0aGVcLW1pblwtcml2ZXI7Civjn6kgPiB0aGVcLW1pblwtcml2ZXI7CivjnrYgPiB0aGVcLW1pblwtcml2ZXI7CivjnqwgPiBjbG9zZVwtb3JcLW5lYXI7CivjnosgPiBzb2Z0XC1hbmRcLW1lZWs7CivjnbsgPiBiYXJlbHlcLWVub3VnaDsKK+OdpiA+IHRvXC1hY2N1bXVsYXRlOwor452TID4gY29ycmVzcG9uZGluZzsKK+OdgyA+IHRvXC1iZWFyXC1hXC1zb247Civjm5IgPiBjYW5cLW5vdFwtc3BlYWs7Civjm44gPiBhblwtdWdseVwtd29tYW47CivjmrQgPiBhXC1wcmV0dHlcLWdpcmw7CivjmJsgPiBhXC1kZWVwXC12YWxsZXk7CivjmJMgPiBwcm9saXhcLXNwZWVjaDsKK+OYiSA+IHRvXC1tYWtlXC1zb3VuZDsKK+OXtCA+IGRvZ3NcLWZpZ2h0aW5nOwor45WwID4gc291bmRcLWFuZ3JpbHk7CivjlaogPiBiaXJkcycnXC1jaGlycHM7CivjlZkgPiBhXC13aWx5XC1yYWJiaXQ7CivjlYkgPiB0b1wtZGlnXC1hXC1ob2xlOwor45SlID4gZnVsbFwtb2ZcLWFuZ2VyOwor45O0ID4gdG9cLWN1dFwtaW5cLXR3bzsKK+OTliA+IGJpdHRlcmx5XC1jb2xkOwor45OPID4gYml0dGVybHlcLWNvbGQ7Civjk4wgPiBiaXR0ZXJseVwtY29sZDsKK+OShyA+IHRvXC1za2lwXC1hYm91dDsKK+ORvCA+IG5hbWVcLW9mXC1hXC1nb2Q7CivjkaUgPiBkaXNyZXNwZWN0ZnVsOwor45CwID4gdG9cLWJlbGlldmVcLWluOwor556zID4gcHVwaWxcLW9mXC1leWU7CivkuIcgPiB0ZW5cLXRob3VzYW5kOwor5biDID4gY290dG9uXC1jbG90aDsKK+mAmiA+IHBhc3NcLXRocm91Z2g7Civmj5AgPiBob2xkXC1pblwtaGFuZDsKK+S6rCA+IGNhcGl0YWxcLWNpdHk7CivnlJogPiBncmVhdFwtZXh0ZW50Owor5ZGoID4gemhvdVwtZHluYXN0eTsKK+WwuyA+IGVuZFwtb2ZcLXNwaW5lOwor5a60ID4gdG9cLWVudGVydGFpbjsKK+WusCA+IHRvXC1zbGF1Z2h0ZXI7Civniq8gPiBjb21taXRcLWNyaW1lOwor5amiID4gc2VydmFudFwtZ2lybDsKK+WPgiA+IHRha2VcLXBhcnRcLWluOwor5o6MID4gcGFsbVwtb2ZcLWhhbmQ7Civlp78gPiBvbmUnJ3NcLW1hbm5lcjsKK+WniSA+IGVsZGVyXC1zaXN0ZXI7CivmlpcgPiBjaGluZXNlXC1wZWNrOwor5ZG8ID4gYnJlYXRoZVwtc2lnaDsKK+WnkCA+IGVsZGVyXC1zaXN0ZXI7CivooZ0gPiBydXNoXC1hZ2FpbnN0Owor5Z+3ID4gaG9sZFwtaW5cLWhhbmQ7CivonrogPiBzcGlyYWxcLXNoZWxsOwor5Z2KID4gbmVpZ2hib3Job29kOwor5bC8ID4gYnVkZGhpc3RcLW51bjsKK+m8viA+IHNub3JlXC1sb3VkbHk7Civlj7YgPiB0b1wtaGFybW9uaXplOwor6YeOID4gb3BlblwtY291bnRyeTsKK+enuyA+IGNoYW5nZVwtcGxhY2U7CivllJAgPiB0YW5nXC1keW5hc3R5Owor56eAID4gZWFyXC1vZlwtZ3JhaW47CivmiacgPiBob2xkXC1pblwtaGFuZDsKK+iSsiA+IHR5cGVcLW9mXC1ydXNoOwor5bqGID4gY29uZ3JhdHVsYXRlOwor6JKfID4gYmV0ZWxcLXBlcHBlcjsKK+axlyA+IHBlcnNwaXJhdGlvbjsKK+iQrCA+IHRlblwtdGhvdXNhbmQ7Civmi5wgPiBkb1wtb2JlaXNhbmNlOwor5Y+DID4gdGFrZVwtcGFydFwtaW47CivomZEgPiBiZVwtY29uY2VybmVkOwor5a6LID4gc29uZ1wtZHluYXN0eTsKK+iDhiA+IGdhbGxcLWJsYWRkZXI7CivliZYgPiBzcGxpdFwtaW5cLXR3bzsKK+WHpCA+IG1hbGVcLXBob2VuaXg7Civor6IgPiBpbnF1aXJlXC1pbnRvOwor6Ia9ID4gZ2FsbFwtYmxhZGRlcjsKK+etkSA+IGFuY2llbnRcLWx1dGU7CivlgbYgPiBhY2NpZGVudGFsbHk7Civpo70gPiBlYXRcLWhlYXJ0aWx5Owor6IOOID4gdW5ib3JuXC1jaGlsZDsKK+aCnyA+IHRvXC1hcHByZWhlbmQ7CivogoUgPiBwYXlcLXJlc3BlY3RzOwor6IKDID4gcGF5XC1yZXNwZWN0czsKK+WniiA+IGVsZGVyXC1zaXN0ZXI7CivkvpggPiBkaXNhcHBvaW50ZWQ7Civnpa0gPiBzYWNyaWZpY2VcLXRvOwor6LS6ID4gY29uZ3JhdHVsYXRlOwor6aWxID4gZWF0XC1oZWFydGlseTsKK+WuqiA+IGNvbnN0aXR1dGlvbjsKK+eikSA+IHN0b25lXC10YWJsZXQ7CivmmIwgPiBsaWdodFwtb2ZcLXN1bjsKK+aQuiA+IGxlYWRcLWJ5XC1oYW5kOwor5Y6mID4gYmlnXC1idWlsZGluZzsKK+S7hiA+IGZhbGxcLWZvcndhcmQ7CivlpqUgPiBzYXRpc2ZhY3Rvcnk7Civmna0gPiBjcm9zc1wtc3RyZWFtOwor6LWgID4gZ2l2ZVwtcHJlc2VudDsKK+iFlCA+IGNoZXN0XC1jYXZpdHk7CivlrZ0gPiBmaWxpYWxcLXBpZXR5Owor56y5ID4gc21hbGxcLWJhbWJvbzsKK+esmyA+IGJhbWJvb1wtZmx1dGU7CivmracgPiBmb3JrXC1vZlwtcm9hZDsKK+aLnSA+IGRvXC1vYmVpc2FuY2U7CivpiZsgPiBsZWFkXC1wbHVtYnVtOwor56mXID4gZWFyXC1vZlwtZ3JhaW47CivnqYIgPiBlYXJcLW9mXC1ncmFpbjsKK+WWgyA+IGtlZXBcLXRhbGtpbmc7CivoiLEgPiBob2xkXC1vZlwtc2hpcDsKK+mGnCA+IHVnbHlcLWxvb2tpbmc7Civmha4gPiBiZVwtY29uY2VybmVkOwor6KOYID4gZnVyXC1nYXJtZW50czsKK+agvSA+IHRvXC1jdWx0aXZhdGU7Civor6cgPiBiZVwtc3VycHJpc2VkOwor6ZiOID4gdmlsbGFnZVwtZ2F0ZTsKK+aEoyA+IGJlXC1pblwtYVwtZGF6ZTsKK+eQqiA+IHR5cGVcLW9mXC1qYWRlOwor566rID4gYmFtYm9vXC1mbHV0ZTsKK+WopSA+IGJlXC1iZWF1dGlmdWw7CivlkqogPiBzb3VuZFwtb2ZcLWNhdDsKK+a4lyA+IHNvYWtcLXRocm91Z2g7CivokasgPiBib3R0bGVcLWdvdXJkOwor5Z2qID4gbGV2ZWxcLWdyb3VuZDsKK+WdniA+IGVudHJlbmNobWVudDsKK+aAhSA+IGRpc2FwcG9pbnRlZDsKK+apoSA+IGNoZXN0bnV0XC1vYWs7Civnta4gPiB3YXN0ZVwtY290dG9uOwor6LeEID4gd2Fsa1wtcmFwaWRseTsKK+WxuSA+IHRvXC1yaXNlXC1oaWdoOwor5oOYID4gZGlzY29uY2VydGVkOwor55y4ID4gcHVwaWxcLW9mXC1leWU7Civmj6kgPiBydWJcLWFuZFwtd2lwZTsKK+aloCA+IG5hbWVcLW9mXC10cmVlOwor6bqTID4gZm9vdFwtb2ZcLWhpbGw7Civnjq4gPiB0eXBlXC1vZlwtamFkZTsKK+aBuyA+IGZlZWxcLWFuZ3Vpc2g7CivmoYUgPiBtYXN0XC1vZlwtc2hpcDsKK+mqiyA+IGdhbGxvcFwtaG9yc2U7Civpl6sgPiB2aWxsYWdlXC1nYXRlOwor6LmSID4gdG9cLWp1bXBcLW92ZXI7CivnpYAgPiB0b1wtc2FjcmlmaWNlOwor57GBID4gYmFtYm9vXC1mbHV0ZTsKK+WvsCA+IGdyZWF0XC1kb21haW47CivmlpMgPiBtdWx0aWNvbG9yZWQ7CivkvKsgPiBsb29rXC10b3dhcmRzOwor6LqPID4gdHJhbXBsZVwtZG93bjsKK+ayvSA+IGJ1eVwtYW5kXC1zZWxsOwor54+lID4gZWFyXC1vcm5hbWVudDsKK+eshiA+IGJhbWJvb1wtZmVuY2U7CivomawgPiB5b3VuZ1wtZHJhZ29uOwor5oOsID4gYmVcLXNhdGlzZmllZDsKK+e8qCA+IGFcLWNoaW5cLXN0cmFwOwor5Yq+ID4gZXhhbWluZVwtaW50bzsKK+WYpCA+IHNlZWtcLWZyaWVuZHM7Civor4MgPiBzY29sZFwtbG91ZGx5Owor5Ya9ID4gY29sZFwtYW5kXC1yYXc7Civpo6ggPiBob3N0XC1iYW5xdWV0Owor5oCPID4gZGlzY29udGVudGVkOwor5YaiID4gYnVyaWFsXC1tb3VuZDsKK+WpgCA+IGJlXC1iZWF1dGlmdWw7Civll7MgPiBpbnRlcmplY3Rpb247CivnoqMgPiBzdG9uZVwtdGFibGV0Owor5a6VID4gc3RvbmVcLXF1YXJyeTsKK+iAhiA+IG1hblwtb2ZcLXNpeHR5Owor6Z2TID4gbWFrZVwtdXBcLWZhY2U7Civom7AgPiB0b1wtaGliZXJuYXRlOwor5o68ID4gdGhyb3dcLWdyb3VuZDsKK+WbpCA+IGdyYWluXC1iYXNrZXQ7CivnrbEgPiBkd2FyZlwtYmFtYm9vOwor5qifID4gY2FtcGhvclwtdHJlZTsKK+mypSA+IHJlZXZlcycnXC1zaGFkOwor6YC1ID4gdGhvcm91Z2hmYXJlOwor5bK3ID4gbWluXC1tb3VudGFpbjsKK+aesCA+IHNtb290aFwtYm9hcmQ7CivlsZAgPiB3b29kZW5cLXNob2VzOwor6IObID4gdGhlXC1zaG91bGRlcjsKK+m5niA+IHNwYXJyb3dcLWhhd2s7CivnioQgPiBhbmltYWxcLWhvcm5zOwor6Le5ID4gd2FuZGVyXC1hYm91dDsKK+aYsSA+IGJyaWdodFwtbGlnaHQ7CivmoL4gPiBuYW1lXC1vZlwtdHJlZTsKK+a5hCA+IHdhdGVyJydzXC1lZGdlOwor6I+FID4gY29hcnNlXC1ncmFzczsKK+e7uyA+IGFmZmVjdGlvbmF0ZTsKK+evgSA+IGJhbWJvb1wtZ3JvdmU7CivotYUgPiBwcmVwYXJlZFwtZm9yOwor5qSBID4gb3V0ZXJcLWNvZmZpbjsKK+e6sCA+IHNwb2lsZWRcLXNpbGs7CivpvIsgPiBsYXJnZVwtdHVydGxlOwor6YaQID4gcHVyZXN0XC1jcmVhbTsKK+m+iSA+IHVuZXZlblwtdGVldGg7Civoi7sgPiBraW5kXC1vZlwtaGVyYjsKK+msoyA+IGhvcnNlJydzXC1tYW5lOwor57yXID4gZmlzaGluZ1wtbGluZTsKK+a5qyA+IGFcLXNtYWxsXC1wb25kOwor5LufID4gb25lXC10aG91c2FuZDsKK+iatiA+IGtpbmRcLW9mXC1jbGFtOwor55OgID4gYm90dGxlXC1nb3VyZDsKK+ibhCA+IG1vbGVcLWNyaWNrZXQ7Civmr4IgPiBodWJcLW9mXC13aGVlbDsKK+eVmiA+IHN0cmF3XC1iYXNrZXQ7CivmtIQgPiBhXC1iYWNrXC13YXRlcjsKK+mjpyA+IGV2ZW5pbmdcLW1lYWw7CivphqogPiB1bmNsZWFyXC13aW5lOwor6aqdID4gZmFtb3VzXC1ob3JzZTsKK+mqkiA+IG1vdGhlclwtaG9yc2U7Civmh5QgPiBiZVwtYWZyYWlkXC1vZjsKK+WKkyA+IGN1dFwtb2ZmXC1ub3NlOwor6LiUID4gdG9cLWdldFwtYWhlYWQ7CivpoqEgPiB0aGVcLWZvcmVoZWFkOwor5r2yID4gZHJpdmluZ1wtcmFpbjsKK+e8ryA+IHNpbGtcLWZhYnJpY3M7Civmg50gPiBkaXNhcHBvaW50ZWQ7CivnlJMgPiBnbGF6ZWRcLXRpbGVzOwor6I2sID4gYVwtcGxhbnRcLW5hbWU7Civmn5IgPiBudW1iZXJcLXNldmVuOwor55izID4gdG9cLWJlXC1oZWFsZWQ7CivosIcgPiBzcGVha1wtaWxsXC1vZjsKK+S5hyA+IHRvXC1kZXBlbmRcLW9uOwor6b6kID4gdG9cLWhhcm1vbml6ZTsKK+m9rCA+IHVuZXZlblwtdGVldGg7CivpvYYgPiBzdHVmZmVkXC1ub3plOwor6b2BID4gc25vcmVcLWxvdWRseTsKK+m8vSA+IGNsb2dnZWRcLW5vc2U7Civpu78gPiBsYXJnZVwtdHVydGxlOwor6bqVID4gbXVudGphY1wtZGVlcjsKK+m3giA+IHNwYXJyb3dcLWhhd2s7Civps7MgPiBtYWxlXC1waG9lbml4Owor6bOvID4gbWFsZVwtcGhvZW5peDsKK+mzkCA+IHRoZVwtbmF1dGlsdXM7CivpsZEgPiB0aGVcLXN0dXJnZW9uOwor6bGCID4gbmFtZVwtb2ZcLWZpc2g7CivpsKkgPiB0aGVcLW5hdXRpbHVzOwor6bCjID4gcmVldmVzJydcLXNoYWQ7CivpsIMgPiBuYW1lXC1vZlwtZmlzaDsKK+mwgSA+IG5hbWVcLW9mXC1maXNoOwor6a2mID4gc2hhcmtcLWZhbWlseTsKK+mtoiA+IG5hbWVcLW9mXC1maXNoOwor6a2fID4gdGhlXC1uYXV0aWx1czsKK+mstSA+IGJpZ1wtaXJvblwtcG90Owor6ayQID4gaG9yc2UnJ3NcLW1hbmU7CivprIUgPiB1bmtlbXB0XC1oYWlyOwor6amIID4gYmxhY2tcLWhvcnNlczsKK+moriA+IGZhbW91c1wtaG9yc2U7CivpqI0gPiBtb3RoZXJcLWhvcnNlOwor6aiGID4gZGl2aW5lXC1ob3JzZTsKK+mogSA+IGdhbGxvcFwtaG9yc2U7Civpp5wgPiBzdHJvbmdcLWhvcnNlOwor6aeXID4gY2hhdHRlclwtbWFyazsKK+mllyA+IGhvc3RcLWJhbnF1ZXQ7CivppIAgPiB0YWludGVkXC1mb29kOwor6aOxID4gZXZlbmluZ1wtbWVhbDsKK+mirSA+IHN3YXlcLWluXC13aW5kOwor6aGZID4gdGhlXC1mb3JlaGVhZDsKK+mgnyA+IHRoZVwtZm9yZWhlYWQ7CivpnqYgPiBsZWF0aGVyXC1zdGFwOwor6Z2aID4gbWFrZVwtdXBcLWZhY2U7CivpnJEgPiBiZVwtbW9pc3RlbmVkOwor6ZqWID4gZW50cmVuY2htZW50Owor6ZmBID4gYVwtc3RlZXBcLWJhbms7Civpl5EgPiB0aGVcLWRvb3JzaWxsOwor6Za7ID4gdmlsbGFnZVwtZ2F0ZTsKK+mWhiA+IHZpbGxhZ2VcLWdhdGU7CivplaggPiBwcmFzZW9keW1pdW07CivpkKAgPiBwcmFzZW9keW1pdW07Civpj7cgPiBwcm90YWN0aW5pdW07CivpjYogPiBzbWVsdFwtbWV0YWxzOwor6YysID4gc21lbHRcLW1ldGFsczsKK+mMiCA+IHRvXC1iZW5kXC1pcm9uOwor6YeqID4gYW5cLWFsbXNcLWJvd2w7Civphr0gPiBraW5kXC1vZlwtd2luZTsKK+mDmSA+IHRvXC1iZVwtZXhpbGVkOwor6YKyID4gZ29vZFwtbG9va2luZzsKK+i/oyA+IHRvXC1sZWFwXC1vdmVyOwor6L2CID4gaHViXC1vZlwtd2hlZWw7CivouqogPiB0cmFtcGxlXC1kb3duOwor6LqaID4gd2FuZGVyXC1hYm91dDsKK+i6mSA+IHRyYW1wbGVcLWRvd247CivouaMgPiB0b1wtanVtcFwtb3ZlcjsKK+i5jCA+IHdhbGtcLXJhcGlkbHk7CivouLwgPiB0b1wtZmFsbFwtZmxhdDsKK+i4pCA+IGJ1dHRcLWFnYWluc3Q7CivotIggPiBnaXZlXC1wcmVzZW50Owor6LOJID4gdG9cLWdpdmVcLWFsbXM7Civos4UgPiBwcmVwYXJlZFwtZm9yOwor6LOAID4gY29uZ3JhdHVsYXRlOwor6LKGID4gc21hbGxcLWJhZGdlcjsKK+ixtiA+IGNhc3RyYXRlXC1waWc7Civoqr4gPiBzcGVha1wtZ2VudGx5Owor6Kq2ID4gc3BlYWtcLWlsbFwtb2Y7CivoqaIgPiBpbnF1aXJlXC1pbnRvOwor6Ki2ID4gc2NvbGRcLWxvdWRseTsKK+ilmyA+IGZpbmVcLWNsb3RoZXM7CivopYYgPiBob29kXC1vclwtY293bDsKK+ifhCA+IHRvXC1oaWJlcm5hdGU7Civoma8gPiB5b3VuZ1wtZHJhZ29uOwor6JGcID4gc21pbGF4XC1jaGluYTsKK+iQqSA+IHNjYW5kZW50XC1ob3A7CivokJggPiBuYXBodGhhbmxlbmU7Civoj50gPiBzbWlsYXhcLWNoaW5hOwor6I6mID4ganVuZ2xlXC1ncmFzczsKK+iKpyA+IGNoZXN0bnV0XC1vYWs7CivoipogPiBncmVlblwtc3Byb3V0Owor6IqRID4gd2hpdGVcLW1pbGxldDsKK+iJmSA+IGhvbGRcLW9mXC1zaGlwOwor6IaXID4gdWdseVwtYW5kXC1mYXQ7CivogpkgPiBhXC1zbWFsbFwtd29ybTsKK+e+gCA+IGZpc2hpbmdcLXRyYXA7CivnvbYgPiBmaXNoaW5nXC10cmFwOwor57qTID4gYVwtY2hpblwtc3RyYXA7CivnuoEgPiBzaGFkZVwtb2ZcLXJlZDsKK+e5mSA+IHRvXC1pbnRlcnByZXQ7CivnuZIgPiBzaWxrXC1mYWJyaWNzOwor57iVID4gdGFuZ2xlZFwtaGVtcDsKK+e3oSA+IGZpc2hpbmdcLWxpbmU7CivntqMgPiBhZmZlY3Rpb25hdGU7CivntJUgPiBzcG9pbGVkXC1zaWxrOwor57KbID4gcGF5XC1yZXNwZWN0czsKK+exryA+IGJhbWJvb1wtY2hlc3Q7CivnsZ8gPiBiYW1ib29cLWZsdXRlOwor56+0ID4gYmFtYm9vXC1mbHV0ZTsKK+evoCA+IGR3YXJmXC1iYW1ib287CivnraQgPiB5b3VuZ1wtYmFtYm9vOwor562NID4gYmFtYm9vXC1zaG9vdDsKK+ethSA+IGJhbWJvb1wtYnJ1c2g7CivnqZ8gPiBlYXJcLW9mXC1ncmFpbjsKK+enrCA+IGJsYWNrXC1taWxsZXQ7CivnpZggPiB0b1wtY2FsY3VsYXRlOwor56OgID4gc2FsXC1hbW1vbmlhYzsKK+eitiA+IGFcLWZsb29kXC1nYXRlOwor56CfID4gc3RvbmVcLXRhYmxldDsKK+efvCA+IHN0b25lXC1icmlkZ2U7CivnnZIgPiB0b1wtZ2xhbmNlXC1hdDsKK+eapiA+IGJyaWdodFwtd2hpdGU7CivnmLogPiBhbmFsXC1maXN0dWxhOwor55a/ID4gcHJpY2tseVwtaGVhdDsKK+eRiyA+IHR5cGVcLW9mXC1qYWRlOwor54+5ID4gdHlwZVwtb2ZcLWphZGU7Civnjo0gPiBpbGxcLXRlbXBlcmVkOwor54uGID4gcGVraW5lc2VcLWRvZzsKK+eJgiA+IGZlbWFsZVwtc2hlZXA7Civnh7cgPiBkaXNhcHBvaW50ZWQ7Civnh6MgPiBkaXNhcHBvaW50ZWQ7Civmu7IgPiBzb2FrXC10aHJvdWdoOwor5ruKID4gYVwtcml2ZXJcLW5hbWU7Civms5YgPiBzdGlsbFwtd2F0ZXJzOwor5q+IID4gZmVydGlsZVwtZWdnczsKK+aunCA+IGhhbGZcLXNpdHRpbmc7CivmrL8gPiBkaXNjb250ZW50ZWQ7CivmrJIgPiBuYW1lXC1vZlwtdHJlZTsKK+apkiA+IHdvb2RcLXN0cmVha3M7Civmp7sgPiB6ZWxrb3ZhXC10cmVlOwor5qeoID4gb3V0ZXJcLWNvZmZpbjsKK+anlCA+IHdhdGVyXC1wdWxsZXk7CivmpYAgPiBuYW1lXC1vZlwtdHJlZTsKK+aenyA+IHdvb2RcLXN0cmVha3M7CivmlpUgPiBtdWx0aWNvbG9yZWQ7CivmlJwgPiBsZWFkXC1ieVwtaGFuZDsKK+aRnCA+IHRocm93XC1ncm91bmQ7CivmkZkgPiB0b1wtdHJhbnNwb3J0Owor5o+RID4gdG9cLWZhYnJpY2F0ZTsKK+aIiSA+IGFcLWJhdHRsZVwtYXhlOwor5oeNID4gYmVcLWFmcmFpZFwtb2Y7CivmhrIgPiBjb25zdGl0dXRpb247CivmhbYgPiBjb25ncmF0dWxhdGU7CivmhJwgPiBiZVwtc2F0aXNmaWVkOwor5oO7ID4gZmVlbFwtYW5ndWlzaDsKK+aCtSA+IGRpc2FwcG9pbnRlZDsKK+W7uSA+IHRvXC1wZXJzZWN1dGU7Civlu4ggPiBiaWdcLWJ1aWxkaW5nOwor5bioID4gaGFuZGtlcmNoaWVmOwor5baiID4gaGlnaFwtb3JcLXRhbGw7CivlsacgPiB3b29kZW5cLXNob2VzOwor5bGYID4gdGhlXC15b3VuZ2VzdDsKK+WrsiA+IGdyYW5kXC1tb3RoZXI7Civlo4ggPiBkaXNhcHBvaW50ZWQ7CivloaIgPiBlbnRyZW5jaG1lbnQ7Civln5wgPiBvcGVuXC1jb3VudHJ5Owor5Zq2ID4gc2Vla1wtZnJpZW5kczsKK+WZryA+IGludGVyamVjdGlvbjsKK+WWrSA+IGNvbmRvbGVcLXdpdGg7CivlkqUgPiBzb3VuZFwtb2ZcLWNhdDsKK+WRuSA+IHRvXC1lYXRcLWdyYXNzOwor5Y+EID4gdGFrZVwtcGFydFwtaW47CivljrcgPiB0aGVcLWZvcmVcLWFybTsKK+WOpCA+IHRvXC1jYWxjdWxhdGU7Civli6MgPiBhY2hpZXZlbWVudHM7CivlibcgPiB0b1wtbGV2ZWxcLW9mZjsKK+WJlyA+IHRvXC1sZXZlbFwtb2ZmOwor5YSXID4gY29tcGFyZVwtd2l0aDsKK+S9rSA+IHVuc3VibWlzc2l2ZTsKK+S6sCA+IGNhcGl0YWxcLWNpdHk7CivkuLwgPiBib3dsXC1vZlwtZm9vZDsKK+S0vCA+IHRvXC1leHRpcnBhdGU7CivktJUgPiBhXC13b29kcGVja2VyOwor5LOWID4gZmx5aW5nXC1iaXJkczsKK+SynCA+IGxvdHNcLW9mXC1maXNoOwor5LGKID4gcm9lXC1vclwtc3Bhd247CivksLggPiB0aGVcLW5hdXRpbHVzOwor5K+2ID4gZmFpclwtb2ZcLWhhaXI7Civkr6wgPiB0b1wtaGFuZ1wtZG93bjsKK+SvpyA+IGFcLXNtYWxsXC1oYWxsOwor5K6fID4gYmlnXC1hbmRcLXRhbGw7CivkrpEgPiBhXC1ncmF5XC1ob3JzZTsKK+StmCA+IHdlbGxcLXN0YWNrZWQ7CivkrZcgPiB3ZWxsXC1zdGFja2VkOwor5K2WID4gYW5pbWFsXC1mZWVkczsKK+StiiA+IHdlbGxcLXN0YWNrZWQ7CivkrYkgPiBtYXNoZWRcLWJlYW5zOwor5KycID4gZXZpbFwtc3Bpcml0czsKK+SsmiA+IHRvXC1tb3ZlXC1mYXN0Owor5KyLID4gdmlvbGVudFwtd2luZDsKK+SrqCA+IHRhbGxcLWFuZFwtYmlnOwor5KuaID4gc2hvcnRcLWhlYWRlZDsKK+SrmSA+IHRoZVwtZm9yZWhlYWQ7Civkq5UgPiBzbWFsbFwtaGVhZGVkOwor5KuHID4gdGhlXC13aGlza2VyczsKK+SquSA+IGFcLWxhcmdlXC1mYWNlOwor5KqwID4gaW50ZXJqZWN0aW9uOwor5KqhID4gdG9cLWZhbGxcLWRvd247CivkqosgPiBzaWxrXC1jb3JkYWdlOwor5KmPID4gYVwtc21hbGxcLWZhY2U7CivkqYsgPiBhXC1ncmVlblwtZmFjZTsKK+SpiiA+IGdvb2RcLWxvb2tpbmc7CivkqYcgPiBhXC1zbWFsbFwtaGVhZDsKK+SotiA+IHRodW5kZXJzdG9ybTsKK+SosiA+IGFcLXNtYWxsXC1oYXJlOwor5KiqID4gYVwtZHVzdFwtc3Rvcm07CivkqJ0gPiBhXC1wdXJlXC13b21hbjsKK+SoiCA+IGFcLXNtYWxsXC1iaXJkOwor5KesID4gd2F0ZXInJ3NcLWVkZ2U7Civkp6IgPiBhXC1yb3VnaFwtcm9hZDsKK+SnmSA+IGFcLWhpZ2hcLW1vdW5kOwor5KWDID4gYVwtYmlnXC1oYW1tZXI7CivkpKwgPiBhXC1zbWFsbFwtZ29uZzsKK+SkpiA+IGFcLWJhdHRsZVwtYXhlOwor5KSjID4gYVwtbWV0YWxcLXJpbmc7CivkpIsgPiB5ZWxsb3dcLWZhY2VkOwor5KO/ID4gdG9cLWVudGVydGFpbjsKK+SjviA+IGNoZWVzZVwtZHJlZ3M7Civko7wgPiBtaXhlZFwtc3RhcmNoOwor5KCUID4gZmFyXC1hbmRcLWRlZXA7Civkn78gPiB0b1wtcmV2ZXJlbmNlOwor5J+5ID4gdG9cLWhvcFwtYWJvdXQ7Civkn5UgPiB0b1wtc3RlcFwtdXBvbjsKK+SesSA+IHRvXC1mYWxsXC1vdmVyOwor5J6nID4gaGFyZFwtdG9cLXdhbGs7CivknKkgPiB0b1wtZW50ZXJ0YWluOwor5JqqID4gY3VydmVkXC1ob3JuczsKK+SYhCA+IGNpY2FkYVwtZmFtaXk7CivkmIAgPiBncmFzc2hvcHBlcnM7Civkl7AgPiBzcGlyYWxcLXNoZWxsOwor5JenID4gbGliZWxsdWxpZGFlOwor5JaeID4gYVwtc2VhXC1pbnNlY3Q7CivklbsgPiB0b1wtYWRoZXJlXC10bzsKK+SVuiA+IGRlbnNlXC1ncm93dGg7CivklZ0gPiBtZWRpY2FsXC1oZXJiOwor5JWLID4gb2ZcLWVsbVwtZ3JvdXA7Civkk68gPiB3YXRlclwtcGVwcGVyOwor5JG9ID4gYVwtbGFyZ2VcLWJvYXQ7CivkkbUgPiBhXC1zbWFsbFwtYm9hdDsKK+SQhSA+IHRoZVwtYnV0dG9ja3M7CivkkIEgPiB0aGVcLWJ1dHRvY2tzOwor5I+XID4gdW5leHBlY3RlZGx5Owor5I+QID4gdGhlXC1idXR0b2NrczsKK+SPjSA+IGFcLXNtYWxsXC13b3JtOwor5I+AID4gaW5oYXJtb25pb3VzOwor5I6YID4gYmlyZHNcLWZseWluZzsKK+SOlSA+IGZseWluZ1wtYmlyZHM7CivkjYQgPiBhblwtaW5kZW50dXJlOwor5Iy2ID4gXClcLWJsYWNrXC1zaWxrOwor5IyHID4gYVwtdGhpY2tcLXJvcGU7CivkjIYgPiBzaWxrXC1mYWJyaWNzOwor5IqFID4gdG9cLXNvYWtcLXJpY2U7Civkia8gPiBkcmllZFwtYmFtYm9vOwor5ImVID4gYVwtYmFtYm9vXC1oYXQ7CivkiZQgPiBiYW1ib29cLXNsaXBzOwor5IifID4gYnJva2VuXC1zb3VuZDsKK+SHuCA+IGFcLWJhbWJvb1wtbWF0Owor5IedID4gdG9cLWJyZWFrXC1vZmY7Civkh5wgPiBzbWFsbFwtYmFtYm9vOwor5IasID4gdG9cLWZhbGxcLWRvd247CivkhqIgPiB0b1wtcGVuZXRyYXRlOwor5IafID4gY29yZXNwb25kaW5nOwor5IaNID4gY3V0dGVkXC1jcm9wczsKK+SFgSA+IHRvXC1odXNrXC1yaWNlOwor5IOyID4gYVwtZ3JlYXRcLXJvY2s7Civkg68gPiBzbWFsbFwtc3RvbmVzOwor5IOdID4gcnVnZ2VkXC1yb2NrczsKK+SDjSA+IHRvXC1mYWxsXC1kb3duOwor5IKQID4gc2hvcnRcLXN0dXBpZDsKK+SBpyA+IHRvXC1vcGVuXC13aWRlOwor5IGgID4gdG9cLWhhbmdcLWRvd247CivkgIEgPiBhXC1zbWFsbFwtYm93bDsKK+O/vSA+IGFcLXNtYWxsXC1ib3dsOwor47+1ID4gc29mdFwtbGVhdGhlcjsKK+O/siA+IGFcLWZpZXJjZVwtZG9nOwor47+qID4gc2tpblwtZGlzZWFzZTsKK+O/qCA+IHNtYWxsXC1zdG9uZXM7Civjv4ogPiB2ZXJ5XC1wYWluZnVsOwor476UID4gbG9uZ1wtaWxsbmVzczsKK+O8iyA+IHRoZVwtY3VjdW1iZXI7CivjupYgPiBkb2dzXC1iYXJraW5nOwor47qOID4gZmllcmNlXC1iZWFzdDsKK+O5vyA+IGFcLWZpZXJjZVwtZG9nOwor47mqID4gYVwtZmllcmNlXC1kb2c7CivjuL4gPiB0b1wtZmlsbGVkXC11cDsKK+O4rSA+IHRoZVwtb3Bwb3NpdGU7CivjuJggPiB0ZW5cLXRob3VzYW5kOwor47e5ID4gaW50ZW5zZVwtaGVhdDsKK+O2lSA+IHRvXC13YXNoXC1yaWNlOwor47WKID4gbW92aW5nXC1pbWFnZTsKK+O0lSA+IHRvXC1ib2lsXC1hd2F5Owor47STID4gdG9cLXdhc2hcLXJpY2U7Civjs54gPiBkZWVwXC1hbmRcLWZhcjsKK+OzkSA+IHRvXC1mbG93XC1vdmVyOwor47C3ID4gcmVzdXJyZWN0aW9uOwor46+sID4gYWNoaWV2ZW1lbnRzOwor46+gID4gYVwtY3Jvc3NcLWJlYW07Civjr5wgPiBkZWNheWVkXC13b29kOwor466uID4gYVwtd2VsbFwtc3dlZXA7CivjrqwgPiBhXC1mcnVpdFwtdHJlZTsKK+OuqiA+IGFcLXNtYWxsXC1ib2F0Owor466PID4gYVwtZnJ1aXRcLXRyZWU7CivjrasgPiBhXC1mcnVpdFwtdHJlZTsKK+OstSA+IHRoZVwtc2hpbmJvbmU7Civjq5IgPiBoYW5kc1wtam9pbmVkOwor46uDID4gZmxhZ3NcLWZseWluZzsKK+OrgSA+IHRvXC1jdXRcLWFwYXJ0Owor46itID4gdW5yZWFzb25hYmxlOwor46e0ID4gdG9cLXJ1YlwtaGFuZHM7Civjp6IgPiB0b1wtZGVwZW5kXC1vbjsKK+OmsCA+IHRvXC1icmVha1wtb2ZmOwor46amID4gYXBwcmVoZW5zaXZlOwor76abID4gc21lbHRcLW1ldGFsczsKK+OmjiA+IGNhbnRhbmtlcm91czsKK+OltSA+IHRvXC1kaXNob25vdXI7CivvpasgPiB0YWtlXC1wYXJ0XC1pbjsKK+OloCA+IGludGVsbGlnZW5jZTsKK+OksyA+IHRvXC1kZXBlbmRcLW9uOwor46SnID4gY29uY2lsaWF0aW9uOwor46SeID4gZGlzYXBwb2ludGVkOwor76SRID4gc3BpcmFsXC1zaGVsbDsKK+OjkiA+IGhhaXJcLXJhaXNpbmc7Civjo5EgPiBkb3VibGVcLWltYWdlOwor46KXID4gYVwtaGlnaFwtaG91c2U7CivjoZQgPiBvaWxlZFwtY2FsaWNvOwor46GFID4gc3RvcmFnZVwtcm9vbTsKK+OgviA+IGFcLWRpc2hcLWNsb3RoOwor46C9ID4gYVwtZGlzaFwtY2xvdGg7CivjoJIgPiBtb3VudGFpblwtdG9wOwor45+9ID4gbW91bnRhaW5cLXRvcDsKK+OfuiA+IG1vdW50YWluXC10b3A7Civjn5AgPiBiaWdcLWFuZFwtaGlnaDsKK+OfhyA+IGFcLWxhbmRcLXNsaWRlOwor456iID4gdG9cLWFycml2ZVwtYXQ7CivjnpsgPiByZWRcLXNsaXBwZXJzOwor456TID4gdGhlXC1idXR0b2NrczsKK+OehSA+IG5vdFwtc3RyYWlnaHQ7CivjnJcgPiBjb3ZldG91c25lc3M7Civjm7wgPiB0b1wtaW50ZXJydXB0Owor45ulID4gdG9cLXByb3N0cmF0ZTsKK+ObiiA+IHRvXC1zcGVjdWxhdGU7Civjm4YgPiB0b1wtc3BlY3VsYXRlOwor45iiID4gYVwtcm91bmRcLWNhdmU7CivjmI0gPiBzb3VuZFwtb2ZcLXJhdDsKK+OXkiA+IGludGVyamVjdGlvbjsKK+OWtyA+IGJpcmRcLXNpbmdpbmc7CivjlqAgPiBhblwtYXV4aWxpYXJ5Owor45WvID4gc2xvd1wtdG9uZ3VlZDsKK+OVkiA+IGFcLWxvZnR5XC1wZWFrOwor45WDID4gdG9cLWZhbGxcLW92ZXI7CivjlKwgPiB0b1wtZXN0YWJsaXNoOwor45SmID4gdG9cLWVuY291cmFnZTsKK+OUlSA+IHdpdGhcLXB1cnBvc2U7CivjlI4gPiB0b1wtY3V0XC1hcGFydDsKK+OUgyA+IHRvXC1jdXRcLXNob3J0Owor45OjID4gdG9cLXNpbmtcLWludG87CivjkaogPiBhXC1nZW5lcmF0aW9uOwor45GkID4gZ29vZFwtbG9va2luZzsKK+ORlCA+IGFsbFwtdG9nZXRoZXI7CivjkLggPiB0b1wtb3duXC1tb25leTsKK+OQtCA+IHRvXC1kcmFnXC1kb3duOwor5LulID4gYnlcLW1lYW5zXC1vZjsKK+i+siA+IGFncmljdWx0dXJlOwor5b6EID4gbmFycm93XC1wYXRoOwor5YegID4gc21hbGxcLXRhYmxlOwor5L6/ID4gY29udmVuaWVuY2U7CivnlLUgPiBlbGVjdHJpY2l0eTsKK+eZviA+IG9uZVwtaHVuZHJlZDsKK+i3oyA+IGJhcmVcLWZvb3RlZDsKK+i0hSA+IHVubmVjZXNzYXJ5Owor5YqfID4gYWNoaWV2ZW1lbnQ7CivmsZ8gPiBsYXJnZVwtcml2ZXI7Civms6ggPiBjb25jZW50cmF0ZTsKK+eJpyA+IHRlbmRcLWNhdHRsZTsKK+WpmiA+IGdldFwtbWFycmllZDsKK+WIiiA+IHB1YmxpY2F0aW9uOwor5YacID4gYWdyaWN1bHR1cmU7Civnhp8gPiB3ZWxsXC1jb29rZWQ7Civppa0gPiBjb29rZWRcLXJpY2U7CivlpaIgPiBleHRyYXZhZ2FudDsKK+afpSA+IGludmVzdGlnYXRlOwor56ugID4gY29tcG9zaXRpb247CivmjIkgPiBwdXRcLWhhbmRcLW9uOwor6J2gID4ga2luZFwtb2ZcLWJhdDsKK+idlSA+IG5pYmJsZVwtYXdheTsKK+WbsCA+IHRvXC1zdXJyb3VuZDsKK+mZqSA+IG5hcnJvd1wtcGFzczsKK+e7gyA+IHRvXC1wcmFjdGljZTsKK+a6ryA+IGdvXC11cHN0cmVhbTsKK+a4iSA+IGZvcmRcLXN0cmVhbTsKK+i0pSA+IGJlXC1kZWZlYXRlZDsKK+e6tyA+IGluXC1kaXNvcmRlcjsKK+e8uiA+IGJlXC1zaG9ydFwtb2Y7Civpga0gPiBjb21lXC1hY3Jvc3M7CivmiLQgPiB3ZWFyXC1vblwtdG9wOwor5YukID4gaW5kdXN0cmlvdXM7Civli5ggPiBpbnZlc3RpZ2F0ZTsKK+mrhCA+IGJvbmVcLW1hcnJvdzsKK+WKuSA+IGVmZmljYWNpb3VzOwor6LKMID4gY291bnRlbmFuY2U7CivnuYEgPiBjb21wbGljYXRlZDsKK+afsyA+IHdpbGxvd1wtdHJlZTsKK+WHhCA+IGJpdHRlclwtY29sZDsKK+a2iSA+IGZvcmRcLXN0cmVhbTsKK+mcniA+IHJvc3lcLWNsb3VkczsKK+mjtCA+IHN3ZWV0XC1tZWF0czsKK+mjryA+IGNvb2tlZFwtcmljZTsKK+iBqiA+IGludGVsbGlnZW50Owor5YCmID4gYmVcLXRpcmVkXC1vZjsKK+aRlCA+IGZhbGxcLWdyb3VuZDsKK+mGiSA+IGludG94aWNhdGVkOwor5p+7ID4gaW52ZXN0aWdhdGU7CivmtpsgPiBsYXJnZVwtd2F2ZXM7CivplIUgPiBjb29raW5nXC1wb3Q7Civku5QgPiBzbWFsbFwtdGhpbmc7CivmnIMgPiB0b1wtYXNzZW1ibGU7Civpm7sgPiBlbGVjdHJpY2l0eTsKK+aLhiA+IHRvXC1icmVha1wtdXA7Civnv6AgPiBjb2xvclwtZ3JlZW47CivpmqogPiBuYXJyb3dcLXBhc3M7CivmmZUgPiBoYWxvXC1pblwtc2t5Owor6Zm6ID4gbmFycm93XC1wYXNzOwor57qgID4gaW52ZXN0aWdhdGU7CivlpLggPiBleHRyYXZhZ2FudDsKK+i+qCA+IGRpc3Rpbmd1aXNoOwor6JGbID4gZWRpYmxlXC1iZWFuOwor6L2/ID4gc2VkYW5cLWNoYWlyOwor5pWXID4gYmVcLWRlZmVhdGVkOwor5pSrID4gc25hdGNoXC1hd2F5Owor57SbID4gaW5cLWRpc29yZGVyOwor6Y2bID4gZm9yZ2VcLW1ldGFsOwor5Y6VID4gbWluZ2xlXC13aXRoOwor6Y2LID4gY29va2luZ1wtcG90Owor56u/ID4gYmFtYm9vXC1wb2xlOwor5Yi4ID4gY2VydGlmaWNhdGU7CivnqYkgPiB5b3VuZ1wtZ3JhaW47CivpqbMgPiB2YXJpY29sb3JlZDsKK+aGlCA+IGJlXC13b3JuXC1vdXQ7Civnsp4gPiBncm91bmRcLXJpY2U7CivphZQgPiBpbnRveGljYXRlZDsKK+mBgiA+IGNvbXBseVwtd2l0aDsKK+matiA+IHN1YnNlcnZpZW50Owor57y4ID4gZWFydGhlblwtanVnOwor6IKiID4gaHVtYW5cLWxpbWJzOwor5bC0ID4gZW1iYXJyYXNzZWQ7CivlkZAgPiByYWlzZVwtdm9pY2U7CivpopYgPiByaWNlXC10YXNzZWw7CivnoKUgPiBhXC13aGV0c3RvbmU7CivlrZUgPiBiZVwtcHJlZ25hbnQ7Civpkp4gPiBwYXBlclwtbW9uZXk7Civlnq4gPiBiZVwtZGVmZWF0ZWQ7CivnkKIgPiBwb2xpc2hcLWphZGU7Civnu70gPiByaXBwZWRcLXNlYW07CivlpaAgPiBwYXlcLXJlc3BlY3Q7CivmvpwgPiBvdmVyZmxvd2luZzsKK+aDlSA+IGJlXC1jYXV0aW91czsKK+mUuyA+IGZvcmdlXC1tZXRhbDsKK+iagCA+IG5pYmJsZVwtYXdheTsKK+i2tCA+IGx5aW5nXC1wcm9uZTsKK+eqmCA+IGVtYmFycmFzc2VkOwor6ZqLID4gc3VpXC1keW5hc3R5Owor556EID4gdGFrZVwtYWltXC1hdDsKK+elnyA+IGV2aWxcLXNwaXJpdDsKK+WXlCA+IGJlXC1hbmdyeVwtYXQ7CivlpZUgPiBpblwtc2VxdWVuY2U7CivmprQgPiBwb21lZ3JhbmF0ZTsKK+ajmCA+IGp1anViZVwtdHJlZTsKK+WzmSA+IHN0YW5kXC1lcmVjdDsKK+egjCA+IHN0b25lXC1zdGVwczsKK+ankCA+IGxvY3VzdFwtdHJlZTsKK+mzniA+IGZpc2hcLXNjYWxlczsKK+aDuiA+IGludGVsbGlnZW50Owor6auTID4gYm9uZVwtbWFycm93Owor54K9ID4gYnVybmluZ1wtaG90Owor6L+CID4gZG9jdHJpbmFpcmU7CivnvKogPiB3aW5kXC1hcm91bmQ7Civlh4sgPiBiZVwtd2l0aGVyZWQ7CivnvKQgPiBmbG91cmlzaGluZzsKK+mbsyA+IHRodW5kZXJjbGFwOwor6LWYID4gdW5uZWNlc3Nhcnk7CivpqbggPiBleHRyYVwtaG9yc2U7Civll7cgPiBsb3VkXC1jbGFtb3I7CivngpYgPiBzdGV3XC1zbG93bHk7CivosI8gPiByZW1vbnN0cmF0ZTsKK+evhiA+IHNlYWxcLXNjcmlwdDsKK+WupiA+IG9mZmljaWFsZG9tOwor55OuID4gZWFydGhlblwtamFyOwor5pyVID4gcHJvbm91blwtJydpJyc7CivpmJEgPiBkb29yXC1zY3JlZW47CivljaQgPiBzYWxpbmVcLXNvaWw7CivllI8gPiB3ZWVwXC1vclwtc29iOwor5rGpID4gcnVuXC1zd2lmdGx5Owor5qaVID4gYmFueWFuXC10cmVlOwor6ZewID4gaW50ZXJjYWxhcnk7CivmmIogPiBzdW1tZXJcLXRpbWU7CivnjrcgPiBmbGF3XC1pblwtZ2VtOwor6ZiZID4gd2F0Y2hcLXRvd2VyOwor55GVID4gZmxhd1wtaW5cLWdlbTsKK+azjCA+IHRvXC1zZWVwXC1vdXQ7Civng70gPiBzaWduYWxcLWZpcmU7CivlrbUgPiBzaXRcLW9uXC1lZ2dzOwor5qStID4gb3ZhbFwtc2hhcGVkOwor55eJID4gY29udnVsc2lvbnM7CivljJ0gPiBmdWxsXC1jaXJjbGU7CivppaogPiBjb29rZWRcLWZvb2Q7CivltpkgPiBwcmVjaXBpdG91czsKK+mipyA+IGNoZWVrXC1ib25lczsKK+mVlyA+IGJvcmluZ1wtdG9vbDsKK+aPtiA+IG1ha2VcLWZ1blwtb2Y7CivngrcgPiBjYW5kbGVcLXdpY2s7CivotLIgPiBmb3JnZVwtYWhlYWQ7CivomrEgPiBncmFzc2hvcHBlcjsKK+eXqCA+IGNvbnN1bXB0aW9uOwor5r+CID4gYVwtd2F0ZXJmYWxsOwor5rGQID4gbmlnaHRcLXRpZGVzOwor562gID4gYmFtYm9vXC1za2luOwor5rCkID4gaGFuZ2luZ1wtZm9nOwor55eUID4gaGVtb3JyaG9pZHM7Civotr8gPiB0b1wtdHJlYWRcLW9uOwor6KeeID4gd2luZVwtdmVzc2VsOwor5oy5ID4gdG9cLWJhbGVcLW91dDsKK+iGkSA+IHRoZVwta25lZWNhcDsKK+W+hyA+IGNvbXBseVwtd2l0aDsKK+WUsyA+IGNyeVwtb2ZcLWJpcmQ7CivnpIUgPiBzdG9uZVwtYmxvY2s7CivnrpQgPiByZWVkXC1zY3JlZW47CivosbggPiByYWRpY2FsXC0xNTM7Civmu58gPiBvdmVyZmxvd2luZzsKK+eDgyA+IGh5ZHJvY2FyYm9uOwor56CtID4gc3RvbmVcLXByb2JlOwor5r6NID4gdGltZWx5XC1yYWluOwor6b6LID4gdG9vdGhcLWRlY2F5Owor57yxID4gYXR0YWNoZWRcLXRvOwor5aWCID4gYmVcLW51bWVyb3VzOwor6bupID4gdG9cLWRpc2hvbm9yOwor6aW0ID4gc3dlZXRcLW1lYXRzOwor5aOFID4gdG9cLW9ic3RydWN0Owor5r62ID4gc3RpbGxcLXdhdGVyOwor6aSNID4gYmVcLXNhdGlhdGVkOwor5p6lID4gdHlwZVwtb2ZcLW9hazsKK+icoiA+IGdyYXNzaG9wcGVyOwor54WFID4gZm9yZ2VcLW1ldGFsOwor5qGVID4gdGFsbG93XC10cmVlOwor6bKiID4gc2lsdmVyXC1jYXJwOwor6LaxID4gZ29cLWluXC1odXJyeTsKK+WmqyA+IGZhbWlseVwtbmFtZTsKK+aaviA+IG1vcm5pbmdcLXN1bjsKK+iNpiA+IGJyaW5kbGVkXC1veDsKK+mCmyA+IGluXC1kaXN0cmVzczsKK+aIoiA+IHRvXC1wdXRcLWF3YXk7CivmpqcgPiB0eXBlXC1vZlwteWV3Owor5aCHID4geWVsbG93XC1sb2FtOwor5YqsID4gYmVcLWRpbGlnZW50Owor6a2IID4gbWlzY2hldmlvdXM7CivpjaogPiBhblwtaXJvblwtcGFuOwor6JyjID4gZHVuZ1wtYmVldGxlOwor55emID4gXChmbGF0XClcLW1vbGU7CivmiKwgPiBleHRlcm1pbmF0ZTsKK+WXiSA+IGJpcmQnJ3NcLWNyb3A7CivlhIsgPiBhXC1zbWFsbFwtamFyOwor6JqcID4gcGxhbnRcLWxvdXNlOwor57KcID4gc2VsbFwtZ3JhaW5zOwor5pSuID4gdG9cLWZlbmRcLW9mZjsKK+iLjiA+IGNoaW5hXC1ncmFzczsKK+WflSA+IGVhcnRoZW5cLWphcjsKK+WdqSA+IGVhcnRoZW53YXJlOwor5qaJID4gdHlwZVwtb2ZcLWVsbTsKK+eOoiA+IHBvcnBoeXJpdGVzOwor57uBID4gdG9cLWNvbnRyYWN0Owor5r2GID4gdGlueVwtc3RyZWFtOwor6au5ID4gcmVkXC1sYWNxdWVyOwor6KeWID4gdG9cLWxvbmdcLWZvcjsKK+ietSA+IGFcLWNocnlzYWxpczsKK+adqiA+IHRpcFwtb2ZcLXR3aWc7CivluYIgPiBjb3ZlclwtY2xvdGg7CivnoZcgPiBiYXJyZW5cLWxhbmQ7CivohJ4gPiBtaW5jZWRcLW1lYXQ7CivovbUgPiBlbmRcLW9mXC1heGxlOwor5qWXID4gYmFyXC1vZlwtZG9vcjsKK+ahhCA+IGFcLWNvaXJcLXBhbG07CivloKAgPiBiYXR0bGVtZW50czsKK+S/nCA+IHRvXC10cnVzdFwtdG87CivpvbIgPiB0b290aFwtZGVjYXk7Civpu7cgPiB0b1wtZGlzaG9ub3I7CivpuoAgPiBmZW1hbGVcLWRlZXI7CivpubUgPiBzYWxpbmVcLXNvaWw7CivpuI8gPiB0cm9waWNcLWJpcmQ7CivptLogPiB0aGVcLXBlbGljYW47CivpsaAgPiBtaW5jZWRcLWZpc2g7CivpsZcgPiBmaXNoXC1zY2FsZXM7CivpsLEgPiBzaWx2ZXJcLWNhcnA7CivprJkgPiBtYXR0ZWRcLWhhaXI7CivpqZQgPiBibGFja1wtaG9yc2U7CivpqYcgPiBoZWF2eVwtaG9yc2U7CivpqLogPiBoZWF2eVwtaG9yc2U7Civpp5kgPiBleHRyYVwtaG9yc2U7Civpp4EgPiB2YXJpY29sb3JlZDsKK+mlnCA+IGJlXC1zYXRpYXRlZDsKK+mkgSA+IGNvb2tlZFwtZm9vZDsKK+mjqiA+IGNvb2tlZFwtZm9vZDsKK+mhtCA+IGNoZWVrXC1ib25lczsKK+mhpiA+IGJlXC13b3JuXC1vdXQ7CivpoYcgPiBiZVwtd29yblwtb3V0Owor6aC0ID4gcmljZVwtdGFzc2VsOwor6aCLID4gdG9cLWNhcmVcLWZvcjsKK+meqyA+IGludGVycm9nYXRlOwor6Z2CID4gdGh1bmRlcmNsYXA7CivpmokgPiBpblwtZGlzb3JkZXI7CivpmKggPiBpblwtZGlzdHJlc3M7Civpl5UgPiB3YXRjaFwtdG93ZXI7Civpl4wgPiBkb29yXC1zY3JlZW47CivplqAgPiBpbnRlcmNhbGFyeTsKK+mWjyA+IGludGVyY2FsYXJ5Owor6ZCmID4gY2FsaWZvcm5pdW07Civpj7sgPiBwaG9zcGhvbml1bTsKK+mPnCA+IGJvcmluZ1wtdG9vbDsKK+mOkCA+IGZhbWlseVwtbmFtZTsKK+mNkCA+IGFcLWhlYWRzdGFsbDsKK+mIlCA+IHBhcGVyXC1tb25leTsKK+mHhiA+IGRpc3Rpbmd1aXNoOwor6Ya5ID4gc3Ryb25nXC13aW5lOwor6YayID4gc3Ryb25nXC13aW5lOwor6YaTID4gc2FsdGVkXC1tZWF0Owor6YWPID4gbWlsbGV0XC13aW5lOwor6YG5ID4gY29tcGx5XC13aXRoOwor6YGhID4gZ29cLXVwc3RyZWFtOwor6L+KID4gdG9cLWdvXC1yb3VuZDsKK+i9jiA+IHNlZGFuXC1jaGFpcjsKK+i9hyA+IGNvbXBsaWNhdGVkOwor6LymID4gYVwtaGFuZFwtY2FydDsKK+i7uSA+IGVuZFwtb2ZcLWF4bGU7CivoubkgPiB0b1wtdHJlYWRcLW9uOwor6Lm1ID4gdG9cLXRyZWFkXC1vbjsKK+i2siA+IGdvXC1pblwtaHVycnk7CivotJcgPiBjb3VudGVyZmVpdDsKK+izgSA+IGZvcmdlXC1haGVhZDsKK+iymCA+IHRoZVwtcGFudGhlcjsKK+ixpiA+IGFcLXdpbGRcLWJvYXI7CivosZggPiBhXC1zbWFsbFwtcGlnOwor6KurID4gcmVtb25zdHJhdGU7Civoq4wgPiByZW1vbnN0cmF0ZTsKK+intCA+IHdpbmVcLXZlc3NlbDsKK+insSA+IHRhcnRhclwtaG9ybjsKK+imiCA+IGludmVzdGlnYXRlOwor6KS1ID4gYnJpZGFsXC12ZWlsOwor6KCcID4gZ3Jhc3Nob3BwZXI7CivooIsgPiBjYXRlcnBpbGxhcjsKK+ifmyA+IGFcLWxhbmRcLWNyYWI7CivonZsgPiB0aGVcLXNvd1wtYnVnOwor6J2NID4gYVwtY2VudGlwZWRlOwor6JuTID4gY2F0ZXJwaWxsYXI7Civol5ogPiB3YXRlclwtcGxhbnQ7Civol4QgPiBlZGlibGVcLWZlcm47Civok6ogPiBwYXBlclwtcGxhbnQ7Civok4IgPiBsdWNreVwtcGxhY2U7Civokq0gPiB0b1wtY3V0Z3Jhc3M7CivokJAgPiBsdWNreVwtcGxhbnQ7Civoj6IgPiB0b1wtaW5jdWJhdGU7Civoi6cgPiBjaGluYVwtZ3Jhc3M7CivoiZcgPiBib3dcLW9mXC1qdW5rOwor6IePID4gdGhlXC1rbmVlY2FwOwor6IO+ID4gbWluY2VkXC1tZWF0Owor6IOUID4gcm90dGVuXC1tZWF0Owor6IKIID4gdG9cLWNvbW1lbmNlOwor6IGwID4gaW50ZWxsaWdlbnQ7CivogaYgPiB0aGVcLWhlYXJpbmc7CivogaEgPiBpbnRlbGxpZ2VudDsKK+iAkSA+IHNwZWNpYWxpemVkOwor57+GID4gY29sb3JcLWdyZWVuOwor576WID4gYVwtYmxhY2tcLXJhbTsKK+e+gyA+IGNvdmVyXC1jbG90aDsKK+e9sSA+IGZpc2hpbmdcLW5ldDsKK+e9oCA+IGFuaW1hbFwtdHJhcDsKK+e9kiA+IHJhZGljYWxcLTEyMjsKK+e9iyA+IGVhcnRoZW5cLWphcjsKK+e5viA+IGF0dGFjaGVkXC10bzsKK+e5vSA+IGZsb3VyaXNoaW5nOwor57mGID4gd2luZFwtYXJvdW5kOwor57a7ID4gcmlwcGVkXC1zZWFtOwor57O+ID4gaW52ZXN0aWdhdGU7Civns7YgPiBzZWxsXC1ncmFpbnM7Civns6IgPiByaWNlXC1zbmFja3M7CivnsLkgPiB0YWxsXC1iYW1ib287CivnsLUgPiBmaW5lXC1iYW1ib287CivnsLAgPiBiYW1ib29cLXJhZnQ7Civnr5QgPiB0YWxsXC1iYW1ib287CivnrpggPiBmaW5lXC1iYW1ib287CivnrakgPiBiYW1ib29cLXBpcGU7CivnrYogPiBiYW1ib29cLXJvcGU7CivnrYcgPiBiYW1ib29cLW5hbWU7CivnrK8gPiBhXC1iaXJkXC1jYWdlOwor56q4ID4gZmFpbnRcLXNvdW5kOwor56m1ID4gZGVlcFwtaG9sbG93Owor56mOID4gcmljZVwtdGFzc2VsOwor56O9ID4gYmFycmVuXC1sYW5kOwor56O5ID4gc3RvbmVcLXdlZGdlOwor56KUID4gXC8yXC1wclwtc3RvbmU7CivnoIYgPiBcLzJcLXByXC1zdG9uZTsKK+eggyA+IHdoaXRlXC1zdG9uZTsKK+eetSA+IHRvXC1zdGFyZVwtYXQ7CivnnaAgPiB0b1wtY2FyZVwtZm9yOwor552OID4gdG9cLWxvbmdcLWZvcjsKK+ecpSA+IGV5ZVwtc29ja2V0czsKK+eckSA+IHN1bmtlblwtZXllczsKK+eciiA+IGRpbVwtc2lnaHRlZDsKK+eagyA+IGNvdW50ZW5hbmNlOwor55mGID4gY29uc3VtcHRpb247CivnmJogPiB0b1wtaGljY291Z2g7Civnl7MgPiBwb2NrXC1tYXJrZWQ7Civnl7IgPiBwb2NrXC1tYXJrZWQ7Civnl60gPiBtZW5vcnJoYWdpYTsKK+eXmSA+IGNvbnZ1bHNpb25zOwor55eDID4gaW5kaWdlc3Rpb247CivnlJUgPiBlYXJ0aGVuXC1qYXI7Civnj70gPiBqYWRlXC10YWJsZXQ7CivnjpcgPiBcLzJcLXByXC1zdG9uZTsKK+eNjyA+IHRoZVwtcGFudGhlcjsKK+eLoiA+IGFuaW1hbFwtbmFtZTsKK+eKliA+IGJyaW5kbGVkXC1veDsKK+eHliA+IHJlaGVhdFwtZm9vZDsKK+eGviA+IGJ1cm5pbmdcLWhvdDsKK+eFnyA+IGJyaWdodFwtcm9vbTsKK+eFjyA+IGRyeVwtYnlcLWZpcmU7CivnhYYgPiByYWdpbmdcLWZpcmU7Civng7QgPiBoeWRyb2NhcmJvbjsKK+eBqSA+IG92ZXJmbG93aW5nOwor54GnID4gb3ZlcmZsb3dpbmc7CivngL4gPiBvdmVyZmxvd2luZzsKK+eAoCA+IHRpbnlcLXN0cmVhbTsKK+a/pCA+IGxhcmdlXC13YXZlczsKK+a+sCA+IG92ZXJmbG93aW5nOwor5r2/ID4gc3RpbGxcLXdhdGVyOwor5r2+ID4gY2xlYXJcLXdhdGVyOwor5r2gID4gdG9cLWJsb3dcLW91dDsKK+a7tyA+IHRoaWNrXC1ncmF2eTsKK+a5nCA+IHRyYW5zcGFyZW50Owor5rifID4gbm90XC1mbG93aW5nOwor5reSID4gYml0dGVyXC1jb2xkOwor5ragID4gc3RpbGxcLXdhdGVyOwor5rWhID4gYnVyc3RcLWZvcnRoOwor5rOdID4gZ29cLXVwc3RyZWFtOwor5rKwID4gdG9cLWxldFwtZHJvcDsKK+ausCA+IGFuXC1hYm9ydGlvbjsKK+asriA+IHRvXC1oaWNjb3VnaDsKK+aruCA+IHR5cGVcLW9mXC1lbG07Civmq6ogPiB0eXBlXC1vZlwtb2FrOwor5qmiID4gb3ZhbFwtc2hhcGVkOwor5qeyID4gdHlwZVwtb2ZcLW9hazsKK+anoiA+IGFcLWhhcmRcLXdvb2Q7CivmpZUgPiBvdmFsXC1zaGFwZWQ7Civmo68gPiBqdWp1YmVcLXRyZWU7CivmopggPiBiYW1ib29cLXR1YmU7CivmopYgPiBhXC1wYWxtXC10cmVlOwor5qKEID4gYVwtc29mdFwtd29vZDsKK+agniA+IHB1YmxpY2F0aW9uOwor5qCDID4gdHlwZVwtb2ZcLW9hazsKK+aepyA+IGJhbWJvb1wtdHViZTsKK+adpCA+IHR5cGVcLW9mXC1vYWs7CivmmoggPiBoYWxvXC1pblwtc2t5Owor5picID4gdG9cLW9wZW5cLW91dDsKK+aYiSA+IGJyaWdodFwtZGF3bjsKK+aXvSA+IG1vcm5pbmdcLXN1bjsKK+aXiSA+IHRvXC1zdGF0ZVwtdG87CivmkaEgPiB0b1wtaXJyaWdhdGU7CivmkY4gPiB0b1wtc3RyYW5nbGU7CivmjJMgPiB0b1wtb3Blblwtb3V0Owor5oipID4gZXh0ZXJtaW5hdGU7CivmhYkgPiB0b1wtYnJpbmdcLXVwOwor5oSUID4gY29tZm9ydGFibGU7Civlv7IgPiBleHRyYXZhZ2FudDsKK+W+uyA+IGFcLXdpZGVcLXJvb207CivlvpEgPiBuYXJyb3dcLXBhdGg7CivlvLAgPiBlbmRzXC1vZlwtYm93Owor5bmOID4gY292ZXJcLWNsb3RoOwor5biAID4gdG9cLWdvXC1yb3VuZDsKK+W0qiA+IHJvY2t5XC1wZWFrczsKK+W0kiA+IHJvY2t5XC1wZWFrczsKK+WxsCA+IGRpc29iZWRpZW50Owor5bGdID4gc3RyYXdcLXNob2VzOwor5bC3ID4gZW1iYXJyYXNzZWQ7CivlsLYgPiBlbWJhcnJhc3NlZDsKK+WwnCA+IGFcLWNoaWxkXC10b3k7CivlsIMgPiB0b1wtc3RhdGVcLXRvOwor5ayUID4gYmFieVwtcmFiYml0Owor5aqvID4gZmFtaWx5XC1uYW1lOwor5aWTID4gZXh0cmF2YWdhbnQ7CivlpZAgPiBiZVwtbnVtZXJvdXM7Civlob8gPiBzbWFsbFwtbW91bmQ7CivloIogPiB3aGl0ZVwtZWFydGg7CivloIggPiBlYXJ0aGVuXC1qdWc7Civlnp4gPiBzbWFsbFwtbW91bmQ7Civlnp0gPiBkaWxhcGlkYXRlZDsKK+WelCA+IHRvXC1yZXN0cmFpbjsKK+WdtSA+IGVhcnRoZW53YXJlOwor5ZexID4gZXhjbGFtYXRpb247Civllo4gPiBhXC13cnlcLW1vdXRoOwor5ZS5ID4gdG9cLXNtaWxlXC1hdDsKK+WShSA+IHRvXC1zcGl0XC1vdXQ7CivlkLYgPiByYWlzZVwtdm9pY2U7Civlj7sgPiBwbGFjZVwtbmFtZXM7Civljr4gPiBsaWdodGx5XC10YXA7CivljqAgPiBtaW5nbGVcLXdpdGg7CivljK8gPiBhXC1jb25jb3Vyc2U7Civli70gPiB0b1wtaW5jdWJhdGU7Civli6AgPiBqb2luXC1mb3JjZXM7CivlirwgPiBiZVwtZGlzY3JlZXQ7CivlirUgPiBjZXJ0aWZpY2F0ZTsKK+WJpiA+IHRvXC1jYXN0cmF0ZTsKK+WIiyA+IHB1YmxpY2F0aW9uOwor5YepID4gd2ludHJ5XC13aW5kOwor5YaqID4gY292ZXJcLWNsb3RoOwor5YWmID4gZGVzdHJ1Y3Rpb247CivlhIEgPiBvdXRzdGFuZGluZzsKK+WCjyA+IHRvXC13YXJkXC1vZmY7CivlgaIgPiB0b1wtc3RhcmVcLWF0Owor5L+bID4gbWFrZVwtZWZmb3J0Owor5L25ID4gZGVwZW5kXC11cG9uOwor5L2hID4gbWFrZVwtZWZmb3J0Owor5LaqID4gc2hhcnBcLXRlZXRoOwor5LW0ID4gYmxhY2tcLWNvbG9yOwor5LWzID4gbGlnaHRcLWJsYWNrOwor5LWwID4gYmxhY2tcLWNvbG9yOwor5LWpID4gZGFya1wteWVsbG93Owor5LWiID4gbGlnaHRcLWJsYWNrOwor5LWOID4gZGFya1wteWVsbG93Owor5LK7ID4gdGhlXC1zd2FsbG93Owor5LG9ID4gdGhlXC1wb21mcmV0Owor5LG6ID4gYVwtbWFsZVwtY3JhYjsKK+SxtiA+IGFcLW1hbGVcLWNyYWI7CivksZIgPiBzYWx0ZWRcLWZpc2g7Civkr6MgPiB0aGVcLWtuZWVjYXA7Civkr5ggPiB0aGVcLWtuZWVjYXA7CivkrpggPiB5b3VuZ1wtaG9yc2U7Civkq7MgPiBodW1hblwtc2t1bGw7Civkq7AgPiBzcGFyc2VcLWhhaXI7Civkq60gPiBiYWxkXC1oZWFkZWQ7Civkq5wgPiBzdW5rZW5cLWV5ZXM7Civkq4QgPiBiZXR0ZXJcLXRoYW47CivkqrQgPiB0aGVcLW9jY2lwdXQ7CivkqoQgPiBncmVhdFwtYmxhemU7CivkqbsgPiB0b1wtYmVcLWNoaWVmOwor5KmcID4gZGVzY2VuZGFudHM7CivkqLEgPiBzcGlsdFwtd2F0ZXI7Civkp7YgPiB0b1wtY2FyZVwtZm9yOwor5KeoID4gcHJlY2lwaXRvdXM7Civkp54gPiB0b1wtaW5jcmVhc2U7Civkp5MgPiBhXC1iaWdcLW1vdW5kOwor5KeKID4gYVwtYmlnXC1tb3VuZDsKK+SmtyA+IHRvXC1zdHJ1Z2dsZTsKK+SmtiA+IHRvXC1zdHJ1Z2dsZTsKK+SmnyA+IHRvXC1zdHJ1Z2dsZTsKK+SmmyA+IHRvXC1zdHJ1Z2dsZTsKK+SmmCA+IGFcLXRocmVzaG9sZDsKK+SlgCA+IHRvXC1wdWxsXC1vdXQ7CivkpK0gPiB0b1wtb3JuYW1lbnQ7CivkpIUgPiBzb3V0aGVyd29vZDsKK+SiiSA+IGFncmljdWx0dXJlOwor5KCdID4gdG9cLXN0YW5kXC11cDsKK+SgjSA+IGF0XC10aGVcLWZlZXQ7Civkn7UgPiB0b1wtdHJlYWRcLW9uOwor5J+vID4gdG9cLXRyZWFkXC1vbjsKK+SfhSA+IHRvXC1nb1wtYWhlYWQ7Civkn4EgPiBhXC1mb290XC1yYWNlOwor5J69ID4gdG9cLWxpZVwtZmxhdDsKK+SeqCA+IGhhbGZcLWFcLXBhY2U7CivknqYgPiB0b1wtbGllXC1mbGF0Owor5J6KID4gdG9cLWluY3JlYXNlOwor5J6EID4gdG9cLWRpc3BlcnNlOwor5J2NID4gYVwtd2lsZFwtYm9hcjsKK+SdgCA+IGdhcmRlblwtcGVhczsKK+ScsCA+IGRlZXBcLXZhbGxleTsKK+ScriA+IGRlZXBcLXZhbGxleTsKK+SclyA+IGFuZ3J5XC13b3JkczsKK+ScjyA+IHRvXC13aXRoZHJhdzsKK+SchiA+IGhhc3R5XC13b3JkczsKK+SbmCA+IHRvXC10aGlua1wtb2Y7Civkmr4gPiB0b1wtdGhpbmtcLW9mOwor5JqzID4gZG9cLW5vdFwta25vdzsKK+SasiA+IHRvXC1sYXVnaFwtYXQ7Civkmb4gPiB0b1wtd2FpdFwtZm9yOwor5JmxID4gYVwtbG9uZ1wtY29hdDsKK+SZsCA+IG5ld1wtZmVhdGhlcjsKK+SZgiA+IHNob3J0XC1wYW50czsKK+SYtCA+IHNob3J0XC1wYW50czsKK+SXliA+IHRoZVwtcmFpbmJvdzsKK+SVuCA+IHdoZWF0XC1zdHJhdzsKK+SVoyA+IHdhdGVyXC1wbGFudDsKK+SVjCA+IHlvdW5nXC1ncmFpbjsKK+SUvyA+IGx1c2hcLWdyb3d0aDsKK+STriA+IGx1c2hcLWdyb3d0aDsKK+STjyA+IGZsb3VyaXNoaW5nOwor5JKLID4gYWlyXC1jdXJyZW50Owor5JCaID4gZ29vZFwtZ3JhY2VzOwor5I+2ID4gdGhlXC1zdG9tYWNoOwor5I+UID4gdG9cLWVhdFwtbWVhdDsKK+SPkyA+IHRoZVwtc3RvbWFjaDsKK+SNqCA+IHRvXC1jYXN0cmF0ZTsKK+SMuiA+IGZsb3VyaXNoaW5nOwor5IyqID4gdG9cLWNvbnRpbnVlOwor5IymID4gZ3JlZW5cLWNvbG9yOwor5IqtID4gdG9cLW92ZXJ0dXJuOwor5IqrID4gY29hcnNlXC1yaWNlOwor5IqiID4gdGhpY2tcLWZsdWlkOwor5IqTID4gdG9cLXBhc3RlXC11cDsKK+SJnSA+IGJhbWJvb1wtd2FyZTsKK+SJiiA+IGJhbWJvb1wtd2FyZTsKK+SIuCA+IGFcLWJpZ1wtY2hlc3Q7CivkiIAgPiBiYW1ib29cLXdhcmU7Civkh5UgPiB0b1wtd2FpdFwtZm9yOwor5IeTID4gdG9cLXdhaXRcLWZvcjsKK+SHgyA+IHRvXC13YWl0XC1mb3I7CivkhrMgPiBmYXJcLWRpc3RhbnQ7CivkhpggPiBhY3VwdW5jdHVyZTsKK+SGliA+IGFcLWJpZ1wtaG91c2U7CivkhbsgPiBtZWFzdXJlbWVudDsKK+SFhCA+IGxvbmdcLWdyYWluczsKK+SEvSA+IGNvbW1vblwtcmljZTsKK+SEhCA+IGFjaGlldmVtZW50Owor5IOtID4gYVwtc3RvbmVcLWJveDsKK+SCsSA+IHRvXC13ZWFyXC1vdXQ7CivkgqQgPiB3aGl0ZVwtc3RvbmU7CivkgqEgPiBhXC13aGV0c3RvbmU7CivkgpMgPiByZWd1bGF0aW9uczsKK+SBuyA+IHByZXR0eVwtZXllczsKK+SBtyA+IGJyaWdodFwtZXllczsKK+SBsSA+IGhvbGxvd1wtZXllZDsKK+SBkSA+IHByZXR0eVwtZXllczsKK+SApiA+IHRvXC1zdGFyZVwtYXQ7CivkgIIgPiBhXC1iaWdcLWJhc2luOwor47+jID4gd2hpdGVcLWNvbG9yOwor47+YID4gdG9cLWdldFwtc2ljazsKK+O+uiA+IGV5ZVwtZGlzZWFzZTsKK+O+nSA+IHRvXC1sZWFrXC1vdXQ7CivjvpcgPiBleWVcLWRpc2Vhc2U7CivjvoggPiBodW5jaGJhY2tlZDsKK+O+gyA+IGh1bXBcLWJhY2tlZDsKK+O9qiA+IHBhZGR5XC1maWVsZDsKK+O9hiA+IGVhcnRoZW53YXJlOwor472AID4gZWFydGhlbndhcmU7CivjvLsgPiBlYXJ0aGVud2FyZTsKK+O8uCA+IGVhcnRoZW53YXJlOwor47y2ID4gZWFydGhlbndhcmU7CivjvLMgPiBlYXJ0aGVud2FyZTsKK+O8ryA+IGVhcnRoZW53YXJlOwor47ysID4gZWFydGhlbndhcmU7CivjvKYgPiBlYXJ0aGVud2FyZTsKK+O8pCA+IGVhcnRoZW53YXJlOwor47yYID4gb2ZcLW1vdW50YWluOwor47yTID4gbWVsb25cLXNlZWRzOwor47uTID4gYVwtZmluZVwtamFkZTsKK+O5oCA+IGFcLXNtYWxsXC1iaWc7CivjuKAgPiB0aGlja1wtc3RpY2s7CivjtpEgPiBvdmVyZmxvd2luZzsKK+O1riA+IGNsZWFyXC13YXRlcjsKK+O1pCA+IHRvXC1vdmVyZmxvdzsKK+O1lSA+IHRvXC1wZXJtZWF0ZTsKK+O0mCA+IHRvXC1vb3plXC1vdXQ7CivjsrAgPiBhXC1oYWlyeVwtZG9nOwor47KSID4gdG9cLWluY3ViYXRlOwor47GpID4gYW5cLWFib3J0aW9uOwor47CyID4gdG9cLWJsb3dcLW9mZjsKK+OwriA+IHRvXC1sYXVnaFwtYXQ7CivjsJ4gPiB0b1wtbGF1Z2hcLWF0Owor46+IID4gc21hbGxcLXRyZWVzOwor466fID4gYVwtd2hldHN0b25lOwor466dID4gYW5nbGVcLXN0ZWVsOwor4620ID4gdGhlXC1vc2NpbmVzOwor462OID4gYVwtdGFsbFwtdHJlZTsKK+OssiA+IHRvXC1pbmNyZWFzZTsKK+OsqSA+IGFcLXRpbnlcLXN0YXI7Civjq7UgPiB3aGl0ZVwtY29sb3I7Civjq5ggPiBkaXNhcHBlYXJlZDsKK+OquiA+IHRvXC1iYWxlXC1vdXQ7CivjqYggPiB0b1wtcmVzdHJhaW47CivjqYUgPiB0b1wtZHJhd1wtb3V0Owor46i6ID4gdG9cLW9ybmFtZW50Owor46i1ID4gdG9cLWN1dFwtYXdheTsKK+OotCA+IHRvXC10dXJub3ZlcjsKK++oqiA+IGNvb2tlZFwtcmljZTsKK+OolSA+IHRvXC1zaG91bGRlcjsKK++nsiA+IGZpc2hcLXNjYWxlczsKK+OnlCA+IHRvXC1kaXN0dXJiZTsKK++niSA+IHdpbGxvd1wtdHJlZTsKK++nhSA+IGhhbG9cLWluXC1za3k7Civjpp8gPiBpbnRlbGxpZ2VudDsKK++mmCA+IGFcLWhhbmRcLWNhcnQ7CivjppIgPiB0b1wtZGVjZWl2ZWQ7CivvpaggPiB0b1wtc2VlcFwtb3V0Owor76WlID4gY29udmVuaWVuY2U7CivjpKEgPiB0b1wtc3VycHJpc2U7CivjpJsgPiB0b1wtcmVtZW1iZXI7CivjpJUgPiBtZWxhbmNob2xveTsKK+OkgSA+IHRvXC1kaXNncmFjZTsKK+OjviA+IGRvXC1ub3RcLWNhcmU7Civjo7UgPiB0b1wtcnVuXC1hd2F5Owor46OlID4gdG9cLXN0b3JlXC11cDsKK+OisyA+IGJsYWNrXC1jb2xvcjsKK+OikyA+IHRvXC1zZXBhcmF0ZTsKK+OhviA+IGFcLXRocmVzaG9sZDsKK+OgliA+IHByZWNpcGl0b3VzOwor456YID4gYVwtc21hbGxcLXBpZzsKK+OdtCA+IGFcLXJvdW5kXC1vZmY7CivjnZQgPiBkZWVwXC1ib3R0b207CivjnKMgPiBhXC1sYXN0XC1uYW1lOwor45yOID4gc2xhdmVcLWdpcmxzOwor45uRID4gdGhyZWVcLXdvbWVuOwor45q+ID4gdG9cLWhhdmVcLWZ1bjsKK+OZpyA+IGVhcnRoZW53YXJlOwor45i2ID4gYVwtaGVuXC1yb29zdDsKK+OYpSA+IHRvXC1pbnZlaWdsZTsKK+OYhiA+IHRvXC1sYXVnaFwtYXQ7Civjl5cgPiB0b1wtc2VwYXJhdGU7Civjlr0gPiB0b1wtY2FsbFwtb3V0Owor45ajID4gdG9cLXNwaXRcLW91dDsKK+OWniA+IGFcLXdyeVwtbW91dGg7CivjlpYgPiB0b1wtc3BpdFwtb3V0Owor45aVID4gdG9cLXNwaXRcLW91dDsKK+OWkSA+IHRvXC1zaG91dFwtYXQ7CivjlLwgPiB0b1wtZml0XC1pbnRvOwor45S2ID4gYVwtc21hbGxcLWN1cDsKK+OUjyA+IHRvXC1jdXRcLW9wZW47Civjk6wgPiB0b1wtY3V0XC1vcGVuOwor45OpID4gaG9ybmVkXC1oYWlyOwor45KoID4gYW5cLWltbW9ydGFsOwor45KlID4gYW5cLWltbW9ydGFsOwor45G9ID4gdG9cLXdhcmRcLW9mZjsKK+eahCA+IHBvc3Nlc3NpdmU7CivovrwgPiBjcm93ZFwtaW50bzsKK+i+uyA+IGNyb3Nzcm9hZHM7Civog70gPiB0b1wtYmVcLWFibGU7Civpg70gPiBtZXRyb3BvbGlzOwor5paHID4gbGl0ZXJhdHVyZTsKK+i9jSA+IHdhZ29uXC1ydXRzOwor6LypID4gZ2VuZXJhdGlvbjsKK+ecqSA+IHRvXC1jb25mdXNlOwor55ygID4gY2xvc2VcLWV5ZXM7CivovJ0gPiBicmlnaHRuZXNzOwor5byQID4gbnVtYmVyXC10d287CivogIUgPiB0aGF0XC13aGljaDsKK+S4miA+IHByb2Zlc3Npb247CivlupwgPiBwcmVmZWN0dXJlOwor5pS/ID4gZ292ZXJubWVudDsKK+S4liA+IGdlbmVyYXRpb247CivkuqcgPiBnaXZlXC1iaXJ0aDsKK+WcuiA+IG9wZW5cLXNwYWNlOwor5q+UID4gdG9cLWNvbXBhcmU7CivnlrIgPiBmZWVsXC10aXJlZDsKK+eUuyA+IGFcLXBhaW50aW5nOwor55SjID4gZ2l2ZVwtYmlydGg7CivmnJsgPiB0b1wtbG9va1wtYXQ7Civos7ogPiBtYWtlXC1tb25leTsKK+WFrSA+IG51bWJlclwtc2l4Owor5bGhID4gZnJlcXVlbnRseTsKK+WwpCA+IGVzcGVjaWFsbHk7CivlsIggPiBtb25vcG9saXplOwor5Z+6ID4gZm91bmRhdGlvbjsKK+WPjCA+IHNldFwtb2ZcLXR3bzsKK+WtqyA+IGdyYW5kY2hpbGQ7CivkuJMgPiBtb25vcG9saXplOwor5ayqID4gY291cnRcLWxhZHk7CivnprsgPiByYXJlXC1iZWFzdDsKK+WqkiA+IGdvXC1iZXR3ZWVuOwor6KqMID4gd3JpdGVcLWRvd247CivoqocgPiBleGFnZ2VyYXRlOwor5ZONID4gbWFrZVwtc291bmQ7Civlqb8gPiBzb25cLWluXC1sYXc7CivniK0gPiB0b1wtZGlzcHV0ZTsKK+WZqCA+IHJlY2VwdGFjbGU7Civnh58gPiBlbmNhbXBtZW50Owor5aaZID4gbXlzdGVyaW91czsKK+iDoSA+IHJlY2tsZXNzbHk7CivlppMgPiBwcm9zdGl0dXRlOwor6KWmID4gc2hvcnRcLWNvYXQ7CivlpacgPiBteXN0ZXJpb3VzOwor5aWlID4gbXlzdGVyaW91czsKK+WjuyA+IHNvblwtaW5cLWxhdzsKK+WjsSA+IG51bWJlclwtb25lOwor5a2ZID4gZ3JhbmRjaGlsZDsKK+iQpSA+IGVuY2FtcG1lbnQ7CivloLQgPiBvcGVuXC1zcGFjZTsKK+mDrSA+IG91dGVyXC1wYXJ0Owor6K6oID4gdG9cLWRpc2N1c3M7Civmu4UgPiBleHRpbmd1aXNoOwor6JmcID4gdG9cLWNhcHR1cmU7Civnp68gPiBhY2N1bXVsYXRlOwor6I+cID4gdmVnZXRhYmxlczsKK+WXoyA+IHRvXC1jb25uZWN0Owor5ZecID4gYmVcLWZvbmRcLW9mOwor5LuLID4gZm9yZXJ1bm5lcjsKK+e0oiA+IGxhcmdlXC1yb3BlOwor5LiBID4gbWFsZVwtYWR1bHQ7CivpgY0gPiBldmVyeXdoZXJlOwor6L6IID4gZ2VuZXJhdGlvbjsKK+iSlCA+IHRyYW5zcGxhbnQ7Civmh4IgPiB1bmRlcnN0YW5kOwor6YeKID4gaW50ZXJwcmV0ZTsKK+e6tSA+IGluZHVsZ2VcLWluOwor54GtID4gZXh0aW5ndWlzaDsKK+attCA+IHRha2VcLXBsYWNlOwor5LuBID4gaHVtYW5lbmVzczsKK+aqgCA+IHNhbmRhbHdvb2Q7CivliYogPiBzY3JhcGVcLW9mZjsKK+WIkSA+IHB1bmlzaG1lbnQ7CivlsoIgPiBob3dcP1wtd2hhdFw/Owor6ZqGID4gcHJvc3Blcm91czsKK+i+iSA+IGJyaWdodG5lc3M7CivliIMgPiBlZGdlZFwtdG9vbDsKK+aekCA+IHNwbGl0XC13b29kOwor6IW4ID4gaW50ZXN0aW5lczsKK+alrSA+IHByb2Zlc3Npb247CivmpZMgPiBtYXBsZVwtdHJlZTsKK+mkhSA+IHJpY2VcLWNha2VzOwor5p6rID4gbWFwbGVcLXRyZWU7Civlgo0gPiBieVwtc2lkZVwtb2Y7CivogL0gPiBpbmR1bGdlXC1pbjsKK+mguyA+IGZyZXF1ZW50bHk7CivmoJMgPiB3b29kZW5cLXBlZzsKK+mfvyA+IG1ha2VcLXNvdW5kOwor5YevID4gdHJpdW1waGFudDsKK+aBrSA+IHJlc3BlY3RmdWw7CivnpbggPiBtaXNmb3J0dW5lOwor6aKRID4gZnJlcXVlbnRseTsKK+emhSA+IG1lZGl0YXRpb247Civmn68gPiBheGVcLWhhbmRsZTsKK+aNkCA+IGNvbnRyaWJ1dGU7CivouKogPiBmb290cHJpbnRzOwor5bGBID4gYnJlYWtcLXdpbmQ7CivosIogPiBmcmllbmRzaGlwOwor5YKoID4gc2F2ZVwtbW9uZXk7Civpm4EgPiB3aWxkXC1nb29zZTsKK+aRiiA+IHNwcmVhZFwtb3V0Owor5ZCoID4gbWV0cmljXC10b247CivkuY0gPiBmaXJzdFwtdGltZTsKK+mZgCA+IHN0ZWVwXC1iYW5rOwor57ixID4gaW5kdWxnZVwtaW47CivnuKYgPiBpbmR1bGdlXC1pbjsKK+iCoCA+IGludGVzdGluZXM7CivotZogPiBtYWtlXC1tb25leTsKK+e2vyA+IGNvdHRvblwtd2FkOwor57axID4gaGVhdnlcLXJvcGU7Civnu7UgPiBjb3R0b25cLXdhZDsKK+aKkSA+IHByZXNzXC1kb3duOwor6aW8ID4gcmljZVwtY2FrZXM7CivlvawgPiBjdWx0aXZhdGVkOwor5pKuID4gbGl0dGxlXC1iaXQ7CivnsqUgPiByaWNlXC1ncnVlbDsKK+ibriA+IGJhcmJhcmlhbnM7CivnrrggPiBjaG9wc3RpY2tzOwor5621ID4gYmFtYm9vXC1tYXQ7CivoiYcgPiBzbWFsbFwtYm9hdDsKK+aNjCA+IGJyZWFrXC1vcGVuOwor56ygID4gYmFtYm9vXC1oYXQ7Civlup4gPiBkaXNvcmRlcmx5Owor6YuqID4gc3ByZWFkXC1vdXQ7Civnq50gPiB0b1wtY29tYmluZTsKK+epjSA+IGFjY3VtdWxhdGU7CivmiYkgPiBkb29yXC1wYW5lbDsKK+e6siA+IGhlYXZ5XC1yb3BlOwor6YeLID4gaW50ZXJwcmV0ZTsKK+mHiCA+IGludGVycHJldGU7CivlnZ0gPiBlbWJhbmttZW50Owor5oanID4gaXJyZXNvbHV0ZTsKK+eUqSA+IHRocm93XC1hd2F5Owor56WVID4gbXlzdGVyaW91czsKK+mFjCA+IHNlcnZlXC13aW5lOwor56OQID4gbGFyZ2VcLXJvY2s7CivovoUgPiBjaGVla1wtYm9uZTsKK+aNoSA+IHRvXC1waWNrXC11cDsKK+ettyA+IGNob3BzdGlja3M7CivouYggPiBzdGFtcFwtZmVldDsKK+aZkiA+IGRyeVwtaW5cLXN1bjsKK+atvCA+IGFubmloaWxhdGU7CivmtqkgPiBhc3RyaW5nZW50Owor6ZyOID4gbGlnaHRcLXJhaW47Civmk4UgPiBtb25vcG9saXplOwor6JSsID4gdmVnZXRhYmxlczsKK+e7uCA+IHNpbGtcLWNsb3RoOwor55yvID4gYmVcLWJsaW5kZWQ7Civlr4UgPiB0b1wtcmVzcGVjdDsKK+iZjyA+IHRvXC1jYXB0dXJlOwor55y2ID4gZXllXC1zb2NrZXQ7Civnop8gPiBzbWFsbFwtZGlzaDsKK+iVtCA+IHRvXC1jb2xsZWN0Owor6L+tID4gcmVwZWF0ZWRseTsKK+aXrSA+IHJpc2luZ1wtc3VuOwor5oKNID4gY291cmFnZW91czsKK+aeoiA+IGRvb3JcLWhpbmdlOwor6LeLID4gZ29cLWJ5XC1mb290Owor5ZyqID4gXChwaG9uZXRpY1wpOwor5pCUID4gdG9cLXNjcmF0Y2g7Civlmo4gPiBjcnlcLWxvdWRseTsKK+i+mSA+IHdhZ29uXC1ydXRzOwor5rGbID4gaGlnaFwtd2F0ZXI7CivohK8gPiBkcmllZFwtbWVhdDsKK+WXkiA+IHRvXC1kZXNwYWlyOwor5aKfID4gaGlnaFwtbW91bmQ7CivpposgPiBnbHV0dG9ub3VzOwor5ai8ID4gcHJvc3RpdHV0ZTsKK+i5rSA+IHRvXC1zaHVmZmxlOwor5r6IID4gdGhvcm91Z2hseTsKK+e8rSA+IHdpbmRcLXJvdW5kOwor5ZazID4gd2hpc3BlcmluZzsKK+W8pyA+IHdvb2RlblwtYm93Owor6Le6ID4gc3RhbXBcLWZlZXQ7Civmg4YgPiBkaXN0cmVzc2VkOwor5pK1ID4gZHJpdmVcLWF3YXk7CivmroMgPiBtaXNmb3J0dW5lOwor5oGqID4gcmVzcGVjdGZ1bDsKK+i9tiA+IHJ1c2hcLWZvcnRoOwor6IWGID4gcHJvc3Blcm91czsKK+eqvyA+IG1pbmVcLXNoYWZ0Owor5qi1ID4gd29vZGN1dHRlcjsKK+eKgCA+IHJoaW5vY2Vyb3M7Civnu5ogPiB2YXJpZWdhdGVkOwor6JeVID4gbG90dXNcLXJvb3Q7CivmkZ4gPiB0b1wtcGlsZVwtdXA7Civmu6QgPiBzdHJhaW5cLW91dDsKK+e8iCA+IGluZGlzdGluY3Q7CivogqogPiBhbmltYWxcLWZhdDsKK+eUhCA+IHRvXC1leGFtaW5lOwor6ZObID4gZnJ5aW5nXC1wYW47Civlq6EgPiBsZWdhbFwtd2lmZTsKK+eYgSA+IGZlZWxcLXRpcmVkOwor56O3ID4gcGhvc3Bob3J1czsKK+e/oSA+IGtpbmdmaXNoZXI7CivnnpEgPiBjbG9zZVwtZXllczsKK+mcrSA+IGNsb3VkeVwtc2t5Owor6IirID4gZmFuY3lcLWJvYXQ7CivnuqggPiB3aGl0ZVwtc2lsazsKK+amtyA+IGZvb3RicmlkZ2U7Civns5wgPiByaWNlXC1ncnVlbDsKK+WjuSA+IG51bWJlclwtb25lOwor6JSXID4gc3VnYXJcLWNhbmU7CivlvZcgPiBicm9vbXN0aWNrOwor5ZafID4gaGVhdmVcLXNpZ2g7CivllpEgPiB0b1wtYmVcLWR1bWI7Civpsb8gPiBjdXR0bGVmaXNoOwor5YCcID4gcmFpc2VcLWhpZ2g7CivkvqkgPiBnb1wtYmV0d2VlbjsKK+a7giA+IHRvcnJlbnRpYWw7CivotLAgPiBudW1iZXJcLXR3bzsKK+W/uyA+IGRlbGlnaHRmdWw7Civnh6cgPiBmbGludHN0b25lOwor56iUID4gcmlwZVwtZ3JhaW47Civlq5QgPiBjb3VydFwtbGFkeTsKK+miiSA+IGZseVwtdXB3YXJkOwor6Ii4ID4gbGFyZ2VcLWJvYXQ7CivnnJkgPiB0b1wtZ2F6ZVwtYXQ7CivnmIAgPiBhXC1oZW1hdG9tYTsKK+WkryA+IGhlYXZ5XC1sb2FkOwor6aWVID4gZ2x1dHRvbm91czsKK+myoCA+IGZpc2hcLWJvbmVzOwor6IyPID4gdGFsbFwtZ3Jhc3M7CivojK8gPiBjaGluYVwtcm9vdDsKK+mypyA+IGdpYW50XC1maXNoOwor6YCmID4gbWVhbmRlcmluZzsKK+mqnCA+IHdpbGRcLWhvcnNlOwor5qy5ID4gZmllcmNlXC1kb2c7CivnvJsgPiBkZWNvcmF0aXZlOwor6IuVID4gcnVzaFwtcGxhbnQ7CivpobggPiBsYXJnZVwtZmFjZTsKK+WwlSA+IFwocGhvbmV0aWNcKTsKK+e8piA+IHBsYWluXC1zaWxrOwor5biZID4gYm9va1wtY292ZXI7Civps4MgPiBmaXNoXC1naWxsczsKK+mGtCA+IHN3ZWV0XC13aW5lOwor6L6KID4gdHVyblwtcm91bmQ7CivlspggPiBzdGVlcFwtaGlsbDsKK+WArCA+IG5vdGljZWFibGU7Civpsp4gPiBkcmllZFwtZmlzaDsKK+ewnyA+IGJhbWJvb1wtbWF0Owor56i5ID4gYWNjdW11bGF0ZTsKK+e8gSA+IGJsYWNrXC1zaWxrOwor566nID4gcmF0dGFuXC1ib3g7CivlooEgPiB0b1wtcGxhc3RlcjsKK+e9tCA+IGJyb3duXC1iZWFyOwor54iwID4gbGVhZFwtb25cLXRvOwor5p2yID4gYnJpZ2h0XC1zdW47CivnmZQgPiBoeXN0ZXJpY2FsOwor5p6LID4gc2FuZGFsd29vZDsKK+iOnCA+IGF2ZW5hXC1udWRhOwor5Z+ZID4gaW5zdHJ1bWVudDsKK+eNviA+IHRoZVwtYmFkZ2VyOwor6I6zID4gdHJhbnNwbGFudDsKK+mDqyA+IHBsYWNlXC1uYW1lOwor6JuPID4gcmF6b3JcLWNsYW07CivmqaUgPiB3b29kZW5cLXBlZzsKK+W4kSA+IGFcLXRyZWFzdXJ5Owor5o+gID4gdG9cLXB1bGxcLXVwOwor6LaRID4gY2FuJyd0XC1tb3ZlOwor6ZiNID4gZ2F0ZWtlZXBlcjsKK+aOiiA+IHRvXC1leHRyYWN0Owor6ZWdID4gZHlzcHJvc2l1bTsKK+eglyA+IGdpYW50XC1jbGFtOwor5aurID4gdWdseVwtd29tYW47CivolIwgPiB2ZWdldGFibGVzOwor6LeXID4gdGhlXC1pbnN0ZXA7CivmtbwgPiB0b1wtcmVxdWVzdDsKK+WXjCA+IHRoZVwtdGhyb2F0Owor5ZSRID4gXChwaG9uZXRpY1wpOwor5rGGID4gdG9cLXBhcmJvaWw7CivliK0gPiBjdXRcLXRocm9hdDsKK+mrgiA+IHRoZVwtcGVsdmlzOwor6ImLID4gc21hbGxcLWJvYXQ7CivpkrwgPiBtb2x5YmRlbnVtOwor5oadID4gdG9cLWRpc2xpa2U7CivngoUgPiBicmlsbGlhbmNlOwor6ZqzID4gdG9cLWRlc3Ryb3k7CivojJsgPiByYW51bmN1bHVzOwor57OHID4gZHJpZWRcLXJpY2U7CivpkoYgPiBnYWRvbGluaXVtOwor5r6MID4gdG9cLWV4aGF1c3Q7CivluoAgPiB0b1wtcHJlcGFyZTsKK+eKtCA+IGFcLXdpbGRcLWRvZzsKK+WfjyA+IGFcLWJvdW5kYXJ5Owor5Ye1ID4gcmVjZXB0YWNsZTsKK+iwriA+IHRvXC1zbGFuZGVyOwor6b6iID4gaW5cLWhhcm1vbnk7CivpvpAgPiBkaXNvcmRlcmx5Owor6b6OID4gZGlzb3JkZXJseTsKK+m8pyA+IHRoZVwtbWFybW90Owor6byEID4gdGhlXC1zcGlkZXI7Civpu7kgPiBlbWJyb2lkZXJ5Owor6buyID4gZ3JleVwtYmxhY2s7Civpu6ogPiBncmV5XC1ibGFjazsKK+m7pCA+IGJsdWVcLWJsYWNrOwor6bi6ID4gaG9ybmVkXC1vd2w7CivptZIgPiBteW5haFwtYmlyZDsKK+m1giA+IGhvcm5lZFwtb3dsOwor6bS3ID4gd29vZHBlY2tlcjsKK+m0iCA+IHdpbGRcLWdvb3NlOwor6bOyID4gdHVydGxlZG92ZTsKK+mzqyA+IHdpbGRcLWdvb3NlOwor6bKwID4gc21hbGxcLWZpc2g7CivpsZAgPiBkcmllZFwtZmlzaDsKK+mxhyA+IGFuZ2xlcmZpc2g7CivpsJMgPiBmaXNoXC1naWxsczsKK+mwgiA+IGN1dHRsZWZpc2g7Civpr6sgPiBzbWFsbFwtZmlzaDsKK+mvlyA+IGRyaWVkXC1maXNoOwor6a+BID4gZmlzaFwtYm9uZXM7Civpr4AgPiBnaWFudFwtZmlzaDsKK+muvyA+IGRyaWVkXC1maXNoOwor6a6fID4gYW5nbGVyZmlzaDsKK+munSA+IGRyaWVkXC1maXNoOwor6a6BID4gdGhlXC1ib25pdG87CivprbcgPiBjdXR0bGVmaXNoOwor6a2bID4gdGhlXC1tdWxsZXQ7CivprKggPiBib2lzdGVyb3VzOwor6aycID4gdG9cLWdvXC1iYWxkOwor6aujID4gc2ltaWxhclwtdG87Civpq4EgPiB0aGlnaFwtYm9uZTsKK+mpgSA+IHdpbGRcLWhvcnNlOwor6aiXID4gdG9cLXN3aW5kbGU7CivpqIsgPiB0YWxsXC1ob3JzZTsKK+moiSA+IGZpbmVcLWhvcnNlOwor6aewID4gZ3JleVwtaG9yc2U7CivpprkgPiBwb3N0XC1ob3JzZTsKK+mlniA+IGdsdXR0b25vdXM7CivppKAgPiByaWNlXC1jYWtlczsKK+mgoSA+IGZseVwtdXB3YXJkOwor6aCHID4gbGFyZ2VcLWZhY2U7CivpnqEgPiBsZWdcLXdhcm1lcjsKK+mdsCA+IGxlZ1wtd2FybWVyOwor6Z2dID4gdGhlXC1oZWF2ZW47CivpnYkgPiBjbG91ZHlcLXNreTsKK+mdhiA+IGNsb3VkeVwtc2t5Owor6Z2EID4gY2xvdWR5XC1za3k7Civpm7AgPiBhdG1vc3BoZXJlOwor6ZuZID4gc2V0XC1vZlwtdHdvOwor6ZquID4gdGlcLXJpc2VcLXVwOwor6Zm7ID4gc21hbGxcLWhpbGw7CivpmZEgPiBwbGFjZVwtbmFtZTsKK+mYryA+IGZvdW5kYXRpb247Civpl58gPiBwZWFjZWZ1bGx5Owor6Za9ID4gZ2F0ZWtlZXBlcjsKK+mWpyA+IGJvaXN0ZXJvdXM7CivplZogPiBzbWFsbFwtY29pbjsKK+mUrCA+IGxvbmdcLXNwZWFyOwor6ZK3ID4gcHJvbWV0aGl1bTsKK+mQuiA+IGZyeWluZ1wtcGFuOwor6ZC2ID4gbWV0YWxcLXJpbmc7CivpkJogPiBzb2Z0XC1zdGVlbDsKK+mQkiA+IGxhd3JlbmNpdW07CivpkIAgPiBhXC1jdXBib2FyZDsKK+mPkSA+IGR5c3Byb3NpdW07CivpjqogPiB0b1wtZW5ncmF2ZTsKK+mOmyA+IGxhcmdlXC1iZWxsOwor6Y2AID4gdGVjaG5ldGl1bTsKK+mMnyA+IGxvbmdcLXNwZWFyOwor6YyeID4gaW5zdHJ1bWVudDsKK+mMjyA+IHNvZnRcLXN0ZWVsOwor6YmsID4gbW9seWJkZW51bTsKK+mIiiA+IGNhZG9saW5pdW07Civph5MgPiBnYWRvbGluaXVtOwor6YahID4gd2luZVwtcHJlc3M7Civphp0gPiB3aGl0ZVwtd2luZTsKK+mFhSA+IHJhaXNlXC1mZWV0Owor6YO5ID4gcGxhY2VcLW5hbWU7CivpgpAgPiBtZWFuZGVyaW5nOwor6YCsID4gdG9cLXNjYXR0ZXI7CivovKUgPiB0dXJuXC1yb3VuZDsKK+i8lCA+IGNoZWVrXC1ib25lOwor6Lu8ID4gcnVzaFwtZm9ydGg7CivouqkgPiB0YWtlXC1xdWljazsKK+i6myA+IGV4YWdnZXJhdGU7CivoupcgPiBleGFnZ2VyYXRlOwor6LmkID4gZm9vdHByaW50czsKK+i4pyA+IHVuZWFzaW5lc3M7CivouJwgPiB0b1wtc3R1bWJsZTsKK+i4liA+IHRyYW1wbGVcLW9uOwor6LelID4gc3RhbXBcLWZlZXQ7Civot5AgPiB0b1wtdHJhbXBsZTsKK+i3gSA+IHRyYW1wbGVcLW9uOwor6LamID4gY2FuJyd0XC1tb3ZlOwor6LKzID4gbnVtYmVyXC10d287Civosq4gPiBudW1iZXJcLXR3bzsKK+ixiCA+IGhvd1w/XC13aGF0XD87CivosYAgPiB0b1wtcXVhcnJlbDsKK+itrSA+IHRvXC1zbGFuZGVyOwor6K2bID4gdG9cLXNsYW5kZXI7CivorZYgPiB0b1wtc2xhbmRlcjsKK+itkiA+IHByb211bGdhdGU7CivorKogPiB0b1wtY29uc3VsdDsKK+irtCA+IGluXC1oYXJtb255Owor6KufID4gdG9cLWV4YW1pbmU7CivoqrwgPiBmcmllbmRzaGlwOwor6KqpID4gdG9cLXF1YXJyZWw7CivoqI4gPiB0b1wtZGlzY3VzczsKK+ingyA+IHBsYWNlXC1uYW1lOwor6Ka4ID4gc3RlYWxcLWxvb2s7CivoprUgPiBzdGVhbFwtbG9vazsKK+iloSA+IHNob3J0XC1jb2F0Owor6KOqID4gdGhlXC1zbGVldmU7CivoorIgPiBwbGFjZVwtbmFtZTsKK+iioCA+IGJvb2tcLWNvdmVyOwor6KKfID4gYm9va1wtY292ZXI7CivooLsgPiBiYXJiYXJpYW5zOwor6J+2ID4gcmF6b3JcLWNsYW07Civon6sgPiBzaWx2ZXJmaXNoOwor6J+jID4gbG91c2VcLWVnZ3M7Civon4EgPiBhXC1tb3NxdWl0bzsKK+ibnCA+IHdvb2RcLWxvdXNlOwor6JiiID4gdGFsbFwtZ3Jhc3M7CivolqcgPiBkcmllZFwtZm9vZDsKK+iVoSA+IGhlbXBcLXNlZWRzOwor6JO3ID4gbW90aGVyd29ydDsKK+iSvSA+IGFudGhyYWNlbmU7CivokqYgPiB0b1wtbWVhc3VyZTsKK+iSliA+IHBsYW50XC1uYW1lOwor6JGvID4gb3JyaXNcLXJvb3Q7CivojpogPiBiYW1ib29cLW1hdDsKK+iNtSA+IHBvbGVtb25pdW07CivoiawgPiBsYXJnZVwtc2hpcDsKK+iJkSA+IHNtYWxsXC1ib2F0Owor6Ii0ID4gc21hbGxcLWJvYXQ7CivohpMgPiBpbnRlc3RpbmVzOwor6ISqID4gZXJ5c2lwZWxhczsKK+iEqSA+IGRyaWVkXC1tZWF0Owor6ISXID4gY29pbmNpZGluZzsKK+iCuCA+IHNwcmVhZFwtb3V0Owor6IKmID4gbGFyZ2VcLWhlYWQ7CivogZ8gPiBzb25cLWluXC1sYXc7Civnv4AgPiBmbHlcLXVwd2FyZDsKK+e+hiA+IGJyb3duXC1iZWFyOwor57uLID4gbGFyZ2VcLXJvcGU7CivnuZogPiB3aW5kXC1yb3VuZDsKK+e5kCA+IGZpbmVcLWNsb3RoOwor57i1ID4gcGxhaW5cLXNpbGs7CivnuJ8gPiBkZWNvcmF0aXZlOwor57iHID4gZGVjb3JhdGlvbjsKK+e3siA+IGluZGlzdGluY3Q7Civnt5wgPiBjb3R0b25cLXdhZDsKK+e3hyA+IGJsYWNrXC1zaWxrOwor57aiID4gc2lsa1wtY2xvdGg7CivntbogPiBmaW5lXC1saW5lbjsKK+e1oiA+IHZhcmllZ2F0ZWQ7CivntZsgPiBzaWxrXC1icmFpZDsKK+e1liA+IGZpbmVcLXNpbGtzOwor57WTID4gb2JzdHJ1Y3RlZDsKK+e0vCA+IGxhcmdlXC1yb3BlOwor57SIID4gd2hpdGVcLXNpbGs7CivnsrsgPiBwcm92aXNpb25zOwor57KmID4gcGhvc3Bob3J1czsKK+ewpSA+IGxhcmdlXC1waXBlOwor56+5ID4gdG9cLWNvbGxlY3Q7Civnr7IgPiBicm9vbXN0aWNrOwor56+LID4gcmF0dG9uXC1ib3g7CivnrqAgPiBob3JzZVwtd2hpcDsKK+eumiA+IGJyaWVmXC1ub3RlOwor562vID4gY2hvcHN0aWNrczsKK+ersCA+IGNlbnRpbGl0ZXI7Civnq6EgPiBoZWN0b2xpdGVyOwor56uTID4gbWlsbGlsaXRlcjsKK+eqsCA+IGJyaWNrXC1raWxuOwor56mtID4gd2lsZFwtZ3JhaW47CivnqIYgPiB3aWxkXC1ncmFpbjsKK+emqiA+IG1lZGl0YXRpb247CivnppogPiBwbGFjZVwtbmFtZTsKK+emjSA+IG1pc2ZvcnR1bmU7CivnpYUgPiBjYWxhbWl0aWVzOwor56ORID4gc3RvbmVcLW1pbGw7CivnoaggPiBnaWFudFwtY2xhbTsKK+ehmSA+IHN0b25lXC1taWxsOwor56GDID4gYVwtcmVkXC1tb2xlOwor55+BID4gdG9cLWxvb2tcLWF0Owor552fID4gY2xlYXJcLWV5ZWQ7CivnnIYgPiBpbmRpc3RpbmN0Owor55aVID4gaGVhZFwtc29yZXM7CivnlZMgPiByaWNlXC1maWVsZDsKK+eVgSA+IHRvXC1naXZlXC10bzsKK+eUoiA+IGdpdmVcLWJpcnRoOwor546UID4gZ3JlZW5cLWphZGU7CivnjoUgPiBteXN0ZXJpb3VzOwor54yYID4gZmllcmNlXC1kb2c7CivnipsgPiBhXC1ibGFja1wtb3g7CivniY8gPiBwcml2eVwtaG9sZTsKK+eJiyA+IG1lbW9yYW5kdW07CivniKsgPiByYWRpY2FsXC04NzsKK+eHkCA+IHBob3NwaG9ydXM7CivnhoUgPiBzbW9vdGhcLW91dDsKK+eDlSA+IHRvXC1kZXN0cm95Owor54G6ID4gY2FuZGxlXC1lbmQ7CivngZIgPiB0b1wtc3BhdHRlcjsKK+a/viA+IHN0cmFpblwtb3V0Owor5r+ZID4gdG9cLXJldm9sdmU7Civmv4cgPiBhc3RyaW5nZW50Owor5r+GID4gcml2ZXJcLWJhbms7CivmvoEgPiBhc3RyaW5nZW50Owor5r6AID4gYXN0cmluZ2VudDsKK+a6viA+IGxpZ2h0XC1yYWluOwor5riLID4gYXN0cmluZ2VudDsKK+a2mCA+IHJpdmVyXC1iYW5rOwor5rOGID4gbGljZW50aW91czsKK+ausiA+IGFubmloaWxhdGU7CivmrrEgPiBhbm5paGlsYXRlOwor5q23ID4gdGFrZVwtcGxhY2U7CivmrIMgPiBzYW5kYWx3b29kOwor5qu+ID4gdGhlXC1wb21lbG87Civmq6sgPiB3b29kZW5cLXBlZzsKK+aqvCA+IHJpZGdlXC1wb2xlOwor5qm0ID4gcGxhY2VcLW5hbWU7CivmqJ4gPiBkb29yXC1oaW5nZTsKK+amvCA+IHdpbmVcLWdsYXNzOwor5qamID4gdHJlZVwtdHJ1bms7CivmpaogPiBzbWFsbFwtZGlzaDsKK+aktSA+IHBvbXBlbG1vdXM7CivmpLMgPiB0aGVcLXBpdm90czsKK+akjCA+IGluc3RydW1lbnQ7CivmoLQgPiBzYW5kYWx3b29kOwor5qCbID4gdGhlXC1saWNoZWU7CivmoJggPiBmcnVpdFwtdHJlZTsKK+aftyA+IGluc3RydW1lbnQ7CivmnaIgPiB3b29kd29ya2VyOwor5pyMID4gZGlzdHJpYnV0ZTsKK+abrCA+IGRyeVwtaW5cLXN1bjsKK+aamCA+IHJpc2luZ1wtc3VuOwor5peVID4gcGxhY2VcLW5hbWU7Civml4AgPiBwbGFjZVwtbmFtZTsKK+aWoiA+IHRvXC1wbHVuZGVyOwor5paSID4gdmFyaWVnYXRlZDsKK+aUpCA+IHNwcmVhZFwtb3V0Owor5pSGID4gZHJpdmVcLWF3YXk7Civmk6ogPiB0b1wtdHVja1wtaW47Civmk6UgPiBkcml2ZVwtYXdheTsKK+aSvyA+IHRvXC1waWNrXC11cDsKK+aSsSA+IHRvXC1zaG9ydGVuOwor5o6xID4gcGlja3BvY2tldDsKK+aOjiA+IGRyYWdcLWFzaWRlOwor5oytID4gZmlzaFwtYm9uZXM7CivmioUgPiB0b1wtY29sbGVjdDsKK+aJoSA+IGRyYWdcLWFsb25nOwor5oa4ID4gdG9cLWZsYXR0ZXI7Civmho0gPiBiZVwtaGF1Z2h0eTsKK+aGgCA+IHRvXC1yZWx5XC1vbjsKK+aEriA+IGRpc3RyZXNzZWQ7CivmhJMgPiBwcm9mbGlnYXRlOwor5oOPID4gYXZhcmljaW91czsKK+aBmyA+IGRpc29yZGVyZWQ7CivmgLIgPiBiZVwtYW54aW91czsKK+W/iyA+IHRvXC1yZWx5XC1vbjsKK+W+pyA+IGV2ZXJ5d2hlcmU7Civlvb8gPiByZXNlbWJsaW5nOwor5byNID4gbnVtYmVyXC10d287CivlvIwgPiBudW1iZXJcLW9uZTsKK+W8hyA+IGNvdmVyXC1vdmVyOwor5buxID4gaGFybW9uaW91czsKK+W7gCA+IHRvXC1jb25jZWFsOwor5bq0ID4gcGxhY2VcLW5hbWU7Civlt7wgPiBwbGFjZVwtbmFtZTsKK+W3giA+IHBsYWNlXC1uYW1lOwor5bWZID4gcGxhY2VcLW5hbWU7Civls7QgPiBzdGVlcFwtaGlsbDsKK+WzkyA+IHBsYWNlXC1uYW1lOwor5bGiID4gZnJlcXVlbnRseTsKK+WxhCA+IHRoZVwtdmFnaW5hOwor5bCCID4gbW9ub3BvbGl6ZTsKK+WuvCA+IHR5cmFubmljYWw7CivlrbwgPiBtaXNmb3J0dW5lOwor5aqfID4gbHVzdFwtYWZ0ZXI7CivlpIUgPiB0b1wtZGVzY2VuZDsKK+WjqSA+IGVtYmFua21lbnQ7Civlo44gPiBpbnN0cnVtZW50Owor5aGyID4gb3Blblwtc3BhY2U7CivloaQgPiBpbnN0cnVtZW50Owor5aCuID4gYVwtYm91bmRhcnk7CivloIMgPiBjb21wbGlhbmNlOwor5Z2SID4gdG9cLWNvbXBhcmU7CivlnKYgPiB3YXRlclwtZ2F0ZTsKK+WbjCA+IGxvcXVhY2lvdXM7CivlmrUgPiBnbHV0dG9ub3VzOwor5ZqyID4gcmVhZFwtYWxvdWQ7CivlmbggPiBtZXRyaWNcLXRvbjsKK+WZkCA+IHJlY2VwdGFjbGU7CivlmIIgPiBjcnlcLWxvdWRseTsKK+WXrSA+IHBsYWNlXC1uYW1lOwor5Za4ID4gcGxhY2VcLW5hbWU7CivllrYgPiBlbmNhbXBtZW50Owor5ZS9ID4gdG9cLXR3aXR0ZXI7CivllJ8gPiBwbGFjZVwtbmFtZTsKK+WRtCA+IGJyZWF0aGVcLW9uOwor5Y+GID4gY2xvdWR5XC1za3k7CivljZ0gPiBoYWlyXC1zdHlsZTsKK+WKjyA+IHRvXC1idXRjaGVyOwor5YqEID4gYnJpZWZcLW5vdGU7CivlibMgPiBicmllZlwtbm90ZTsKK+WJhCA+IGN1dFwtdGhyb2F0Owor5Yi8ID4gdG9cLXBsdW5kZXI7CivliIQgPiBlZGdlZFwtdG9vbDsKK+WHtCA+IHRvXC1yZWx5XC1vbjsKK+WHsSA+IHRyaXVtcGhhbnQ7Civlh4IgPiB0b1wtcmVxdWVzdDsKK+WGmCA+IHRvXC1tb3ZlXC1vbjsKK+WFnyA+IHRvXC1hZHZhbmNlOwor5YSIID4gZ29cLWJldHdlZW47Civlg6kgPiBjb3VyYWdlb3VzOwor5YGtID4gdHJhbnNncmVzczsKK+WBnSA+IG5vdFwtZmFjaW5nOwor5YCAID4gYmV3aWxkZXJlZDsKK+S/uyA+IHRvXC1wcmVwYXJlOwor5Ly3ID4gZGVzY2VuZGVudDsKK+S7myA+IHlvdW5nXC1naXJsOwor5LqvID4gdG9cLXJlY2VpdmU7CivkuKggPiBudW1iZXJcLW9uZTsKK+S2qyA+IGZpbmVcLXRlZXRoOwor5LaJID4gZ3VpbmVhXC1waWc7CivktaogPiBwdXJlXC1ibGFjazsKK+S1nSA+IGRhcmtcLWJsYWNrOwor5LWHID4gdG9cLWRpc2xpa2U7Civks5UgPiB0aGVcLXBpZ2VvbjsKK+SzjCA+IHRoZVwtY3Vja29vOwor5LOAID4gdGhlXC1jdWNrb287CivksqsgPiB0aGVcLXBpZ2VvbjsKK+SyqSA+IHRoZVwtY3Vja29vOwor5LKlID4gdGhlXC1waWdlb247CivksZ0gPiBibGFja1wtY2FycDsKK+SxhiA+IHNtYWxsXC1maXNoOwor5LGFID4gdGhlXC1tdWxsZXQ7CivksYQgPiBhXC1mbGF0ZmlzaDsKK+SwuiA+IGFcLWZsYXRmaXNoOwor5LCsID4gd2lsZFwtZ2hvc3Q7CivksIQgPiBzaG9ydFwtaGFpcjsKK+SvlCA+IHRvXC1pbmNsaW5lOwor5K+RID4gdGhlXC1wZWx2aXM7Civkr4wgPiB0aGVcLXNhY3J1bTsKK+SviiA+IHRoZVwtcGVsdmlzOwor5K+IID4gdGhlXC1wZWx2aXM7Civkrq8gPiBmaW5lXC1ob3JzZTsKK+SujSA+IGN1cmxpbmdcLXVwOwor5K6MID4gZmluZVwtaG9yc2U7CivkrbggPiBhXC1zdGFsbGlvbjsKK+StoyA+IHJpY2VcLWNha2VzOwor5K2EID4gZ2x1dHRvbm91czsKK+SstyA+IHdlbGxcLWZlZWRcLjsKK+SsoiA+IGdsdXR0b25vdXM7Civkq6UgPiBhXC13cnlcLW5lY2s7Civkq6MgPiBhXC13cnlcLW5lY2s7Civkq54gPiBsYXJnZVwtaGVhZDsKK+SrkyA+IGxhcmdlXC1oZWFkOwor5Kq6ID4gdGVldGhyaWRnZTsKK+SqoCA+IHB1bHZlcml6ZWQ7CivkqbEgPiBhXC1zY2FiYmFyZDsKK+SpsCA+IGFcLXNjYWJiYXJkOwor5KmiID4gYVwtc2NhYmJhcmQ7CivkqZkgPiBhXC1zY2FiYmFyZDsKK+SpgyA+IGFwcGVhcmFuY2U7CivkqYEgPiB0aGluXC1oYWlyczsKK+SovSA+IHRvXC1yZXNvbHZlOwor5KipID4gdGhlXC1zcGlyaXQ7CivkqKAgPiBjbG91ZHlcLXNreTsKK+SnvyA+IHRoZVwtbWFncGllOwor5KeyID4gdGhlXC1tYWdwaWU7Civkp7EgPiB0aGVcLXBpZ2VvbjsKK+SnoyA+IHRvXC1zdG9wXC11cDsKK+SmryA+IHZlcnlcLWRlbnNlOwor5KanID4gdG9cLXF1YXJyZWw7Civkpo0gPiB0b1wtaW5jbHVkZTsKK+SljiA+IGluc3RydW1lbnQ7CivkpL4gPiB0b1wtY29udGFpbjsKK+SkvSA+IGZhcm1cLXRvb2xzOwor5KS8ID4gbWV0YWxcLXdpcmU7CivkpLkgPiB0b1wtZW5ncmF2ZTsKK+SkhyA+IHdoaXRlXC13aW5lOwor5KKlID4gaW5cLWhhcm1vbnk7CivkoacgPiBhXC1jYXJyaWFnZTsKK+ShpCA+IGFcLWNhcnJpYWdlOwor5KGaID4gaW1wbGVtZW50czsKK+ShjiA+IGFcLXdpbmRsYXNzOwor5KC4ID4gb2JzZXF1aW91czsKK+SgtiA+IHRvXC1wcm9qZWN0Owor5KCqID4gZm9vdHByaW50czsKK+SgqSA+IHRvXC11cmluYXRlOwor5KCmID4gdG9cLXN0dW1ibGU7CivkoJ8gPiB0b1wtdHJpcFwtdXA7CivkoJggPiBvbmVcLWxlZ2dlZDsKK+SfvCA+IGZvb3RwcmludHM7Civkn6ogPiByZXBlYXRlZGx5Owor5J+hID4gdG9cLXRyYW1wbGU7Civkn5kgPiB0b1wtc3RhZ2dlcjsKK+SfhCA+IGluXC1hXC1odXJyeTsKK+SehSA+IHRvXC1naXZlXC10bzsKK+SdvyA+IGhvbm91cmFiZWw7CivknbcgPiBzZWN1cml0aWVzOwor5J20ID4gdG9cLXByZXNlbnQ7CivknbEgPiB0b1wtdHJvdWJsZTsKK+SdlCA+IHRoZVwtYmFkZ2VyOwor5JybID4gdG9cLXNsYW5kZXI7CivknJkgPiBub3RcLWNsZXZlcjsKK+SckiA+IGV4cHJlc3Npb247CivknJEgPiB0b1wtc2xhbmRlcjsKK+SciyA+IHRvXC1zdXNwZW5kOwor5Ju9ID4gbG9xdWFjaW91czsKK+SbvCA+IHRvXC1zbGFuZGVyOwor5JuyID4gdG9cLWRlY2VpdmU7Civkm64gPiB0b1wtZGVzdHJveTsKK+SbqyA+IHRvXC1kZWNlaXZlOwor5JupID4gdG9cLXNsYW5kZXI7Civkm6YgPiBsaXRpZ2F0aW9uOwor5JuWID4gbG9xdWFjaW91czsKK+SblSA+IHRvXC1mbGF0dGVyOwor5JuNID4gbG9xdWFjaW91czsKK+SbhSA+IGxvcXVhY2lvdXM7Civkm4QgPiB0b1wtY29uc29sZTsKK+SauSA+IHRvXC1wcmVwYXJlOwor5JqwID4gdG9cLXByZXBhcmU7CivkmpMgPiB0b1wtb2JzZXJ2ZTsKK+SajSA+IHRvXC1sb29rXC1hdDsKK+SahyA+IHRvXC1vYnNlcnZlOwor5Jm6ID4gdG9cLW9ic2VydmU7CivkmZogPiBjdXJsaW5nXC11cDsKK+SYoSA+IHRoZVwtc2xlZXZlOwor5JiVID4gcHJvc3RpdHV0ZTsKK+SWsyA+IGplbGx5XC1maXNoOwor5JWhID4gY29tcG9zaXRhZTsKK+SUmCA+IGZpc2hcLXBhc3RlOwor5JO1ID4gdG9cLWJsb3Nzb207Civkk6QgPiB2ZWdldGF0aW9uOwor5JOGID4gdG9cLWN1dFwtdGhlOwor5JKiID4gc3dlZXRcLWZsYWc7Civkkb8gPiBzbWFsbFwtYm9hdDsKK+SRsCA+IHNtYWxsXC1ib2F0Owor5JGtID4gd2FyXC12ZXNzZWw7CivkkaEgPiBzbWFsbFwtYm9hdDsKK+SRjSA+IHRvXC1zd2FsbG93Owor5JCiID4gdG9cLXdyaW5rbGU7Civkj60gPiB0aGVcLWNoZWVrczsKK+SPjCA+IHRvXC12aWJyYXRlOwor5I+LID4gcmVzcGVjdGZ1bDsKK+SOnyA+IHRvXC1mYXduXC1vbjsKK+SNtSA+IHlvdW5nXC1nb2F0Owor5I2eID4gYVwtZHJhZ1wtbmV0Owor5I2XID4gdG9cLWhhbmdcLXVwOwor5I2UID4gYVwtZnVsbFwtbmV0Owor5IyAID4gdG9cLWFycmFuZ2U7Civki7YgPiB0b1wtc3R1bWJsZTsKK+SLsSA+IGFcLXdpbGRcLXlhazsKK+SKtyA+IGJsYWNrXC1zaWxrOwor5IqpID4gcmljZVwtZ3Jhdnk7CivkiY0gPiB0b1wtb2JzZXJ2ZTsKK+SHjiA+IHRvXC1zdGFydGxlOwor5IeHID4gdGhlXC1wZW9wbGU7CivkhpIgPiB0b1wtZXhhbWluZTsKK+SGiyA+IHRoZVwtYXV0dW1uOwor5IWUID4gZGVhZFwtY3JvcHM7CivkhJ8gPiB0b1wtd29yc2hpcDsKK+SEkyA+IHRvXC13b3JzaGlwOwor5ISRID4gdG9cLXdvcnNoaXA7CivkhJAgPiB0b1wtd29yc2hpcDsKK+SEhiA+IHRvXC13b3JzaGlwOwor5ISFID4gdG9cLXdvcnNoaXA7CivkhIMgPiBtaXNmb3J0dW5lOwor5ISBID4gdG9cLXdvcnNoaXA7CivkgoQgPiB0b1wtc3RhcnRsZTsKK+SBuiA+IHRvXC1sb29rXC1hdDsKK+SBryA+IHRvXC1sb29rXC1hdDsKK+SBniA+IGFcLXByb3ZpbmNlOwor5IGYID4gdG9cLWxvb2tcLWF0Owor5IGVID4gdG9cLWxvb2tcLWF0Owor5IGTID4gdG9cLWxvb2tcLWF0Owor5IGJID4gdG9cLWV4YW1pbmU7CivkgYggPiB0b1wtZXhhbWluZTsKK+SBgSA+IHN0cmFiaXNtdXM7CivkgLYgPiBzdHJhYmlzbXVzOwor5ICxID4gdG9cLWV4YW1pbmU7CivkgK8gPiB0b1wtbG9va1wtYXQ7CivkgJkgPiB0b1wtbG9va1wtYXQ7CivkgIYgPiB0b1wtZXhoYXVzdDsKK+O+mSA+IGVyeXNpcGVsYXM7CivjvaggPiBmcmFnbWVudGVkOwor472jID4gYVwtZnJvbnRpZXI7CivjvZggPiBib3JkZXJsYW5kOwor47y5ID4gZWFydGVud2FyZTsKK+O6syA+IGJsYWNrXC1taWNhOwor47qTID4gZm9vdHByaW50czsKK+O6jyA+IHRoZVwtYmFkZ2VyOwor47qFID4gdGhlXC1tb25rZXk7CivjuYggPiBhXC1ibGFja1wtb3g7CivjuKggPiBhXC1iaWdcLWJ1bGw7CivjuIwgPiB0b1wtdHdpbmtsZTsKK+O3tyA+IHRoaWNrXC1zb3VwOwor47ehID4gdG9cLXN0YXJ0bGU7Civjtq0gPiBhbG1vc3RcLWRyeTsKK+O2nCA+IGRlZXBcLXdhdGVyOwor47WfID4gbGlnaHRcLXJhaW47CivjtYAgPiB3YXRlclwtZmxvdzsKK+O0nCA+IGV2ZXJ5d2hlcmU7Civjs4EgPiB3YXRlclwtZmxvdzsKK+OyryA+IGxvbmdcLWhhaXJ5Owor47KeID4gc2hvcnRcLWhhaXI7CivjspUgPiB2YXJpZWdhdGVkOwor47KMID4gZG9nJydzXC1oYWlyOwor47KJID4gZWdnXC1zaGVsbHM7CivjsbggPiB0b1wtZXhoYXVzdDsKK+OxsCA+IHRvXC1kZXN0cm95Owor47GmID4gdG9cLWRpc2NhcmQ7CivjsaQgPiB0b1wtZXhoYXVzdDsKK+OxnCA+IHBlc3RpbGVuY2U7CivjsZsgPiB0b1wtZGVzdHJveTsKK+OxmiA+IHRvXC1kZXN0cm95Owor47C4ID4gdG9cLWNvbGxlY3Q7CivjsJEgPiBmcnVpdFwtdHJlZTsKK+OvhyA+IGFcLXN0b2NrYWRlOwor462YID4gYVwtc2NhYmJhcmQ7CivjrYkgPiBmYXJtXC10b29sczsKK+OssSA+IHRvXC1yZXBsYWNlOwor46yqID4gdG9cLWZvbGRcLXVwOwor46ycID4gdG9cLWFkdmFuY2U7Civjq6QgPiBhXC1sb25nXC1kYXk7CivjqrQgPiB0b1wtbWVhc3VyZTsKK+OqnCA+IHRvXC1tZWFzdXJlOwor46qaID4gdG9cLXNjYXR0ZXI7CivjqpQgPiB0b1wtc2NhdHRlcjsKK+OqjCA+IHRvXC1sZWFkXC1vbjsKK+OqiSA+IHRvXC1jb21iaW5lOwor46m5ID4gdG9cLXBpbGVcLW9uOwor46m4ID4gdG9cLXBpbGVcLW9uOwor46mqID4gdG9cLWNvbGxlY3Q7CivjqZ4gPiB0b1wtYmFja1wtdXA7CivjqZ0gPiB0b1wtY29tcGFyZTsKK+OpmiA+IHRvXC1jb2xsZWN0Owor46mWID4gdG9cLWJhY2tcLXVwOwor46mNID4gdG9cLWJhY2tcLXVwOwor46mAID4gdG9cLXJlY2VpdmU7CivjqL8gPiB0b1wtcmVjZWl2ZTsKK+OosyA+IGFcLWN1cGJvYXJkOwor46iyID4gdG9cLWJhY2tcLXVwOwor46ivID4gdG9cLWVubGFyZ2U7CivjqK4gPiB0b1wtbGlmdFwtdXA7CivvqKYgPiBtZXRyb3BvbGlzOwor46iKID4gdG9cLWRpc2NhcmQ7Civvp7ggPiBiYW1ib29cLWhhdDsKK++nriA+IHBob3NwaG9ydXM7Civvp5wgPiBwcm9zcGVyb3VzOwor76eRID4gbnVtYmVyXC1zaXg7CivvprcgPiBzd2VldFwtd2luZTsKK+OmtiA+IHJlcGVhdGVkbHk7CivjpqkgPiBtZWxhbmNob2x5Owor46aaID4gbWVsYW5jaG9seTsKK++mjCA+IHRha2VcLXBsYWNlOwor76aEID4gc3RyYWluXC1vdXQ7CivjpoIgPiBjb25zdGFudGx5Owor46W2ID4gdG9cLWZpbGxcLXVwOwor76WqID4gbGFyZ2VcLXJvcGU7CivjpaMgPiB0b1wtYmVuZWZpdDsKK+OlmiA+IG1lbGFuY2hvbHk7CivvpYsgPiBmcmVxdWVudGx5Owor46S3ID4gdG9cLWRlYmF1Y2g7CivjpKkgPiB0b1wtcmVzcGVjdDsKK+OkkCA+IGRpc2hhcm1vbnk7CivvpIAgPiBob3dcP1wtd2hhdFw/Owor46O9ID4gdG9cLWZvcmdpdmU7Civjo4UgPiBib3dcLXN0cmluZzsKK+OjgCA+IHRvXC1yZWJvdW5kOwor46KtID4gYVwtYm93XC1jYXNlOwor46KaID4gYVwtY29ycmlkb3I7Civjoo8gPiBhXC1jZXNzcG9vbDsKK+OhpSA+IHRvXC1jdXJsXC11cDsKK+OeoCA+IG1hbGVcLW9yZ2FuOwor456OID4gYm9keVwtd2FzdGU7CivjnoYgPiBvbmVcLWxlZ2dlZDsKK+OdryA+IHRvXC1zb2pvdXJuOwor45yFID4gdG9cLWZhd25cLW9uOwor45uqID4gdG9cLXNsYW5kZXI7CivjmqAgPiBmdWxsXC1ncm93bjsKK+OajyA+IHRvXC1zY2F0dGVyOwor45m6ID4gY3Jvc3NcLXJvYWQ7CivjmbQgPiB0b1wtY29uY2VhbDsKK+OZsiA+IHRvXC1zdG9wXC11cDsKK+OZiSA+IHByb3NwZXJvdXM7CivjmL8gPiB0b1wtZmlsbFwtdXA7CivjmLsgPiB0b1wtc3RvcFwtdXA7CivjmKcgPiBwcmVjZWRlbmNlOwor45idID4gdG9cLXRha2VcLWluOwor45esID4gdGhpY2tcLWxpcHM7Civjl6sgPiB0b1wtd2hpc3BlcjsKK+OXoiA+IGxvcXVhY2lvdXM7Civjl4sgPiB0aGVcLXRocm9hdDsKK+OXhyA+IHRvXC1zd2FsbG93Owor45eEID4gdG9cLWRlY2VpdmU7CivjlrYgPiB0b1wtc3dhbGxvdzsKK+OWmCA+IHRvXC1zdGFydGxlOwor45aGID4gdG9cLWNvbmRlbW47CivjlasgPiB0b1wtaW1pdGF0ZTsKK+OVjSA+IHRvXC1oZWFwXC11cDsKK+OVhiA+IGZpbmVcLXN0b25lOwor45S3ID4gdG9cLXNlY3JldGU7CivjlJggPiB0b1wtZGVncmFkZTsKK+OUkyA+IHRvXC1zdGFtbWVyOwor45SMID4gdG9cLWN1dFwtb2ZmOwor45O6ID4gY2FzdHJhdGlvbjsKK+OTriA+IHRvXC1lbmdyYXZlOwor45OeID4gdG9cLWVuZ3JhdmU7Civjk4IgPiB0eXJhbm5pY2FsOwor45K3ID4gdG9cLXByb3NwZXI7Civjkp0gPiB0b1wtZGVjZWl2ZTsKK+OSnCA+IHJlc3BlY3RmdWw7CivjkoogPiBsb3F1YWNpb3VzOwor45GcID4gdG9cLWVuZ3JhdmU7CivjkYIgPiB0b1wtaW1pdGF0ZTsKK+OQpCA+IHRvXC1pbXBsb3JlOwor5LqGID4gdG9cLWZpbmlzaDsKK+WtkCA+IG9mZnNwcmluZzsKK+W+uSA+IHBlbmV0cmF0ZTsKK+imgSA+IG5lY2Vzc2FyeTsKK+i+sSA+IGh1bWlsaWF0ZTsKK+edgCA+IG1ha2VcLW1vdmU7CivmiJAgPiBjb21wbGV0ZWQ7CivnnaMgPiBzdXBlcnZpc2U7CivovK8gPiBnYXRoZXJcLXVwOwor5bylID4gZXh0ZW5zaXZlOwor55ujID4gc3VwZXJ2aXNlOwor576OID4gYmVhdXRpZnVsOwor5buCID4gc2lkZVwtcm9vbTsKK+mXriA+IGFza1wtYWJvdXQ7Civluq0gPiBjb3VydHlhcmQ7CivnmYIgPiBiZVwtaGVhbGVkOwor55e6ID4gcGFyYWx5c2lzOwor5beuID4gdG9cLWRpZmZlcjsKK+maviA+IGRpZmZpY3VsdDsKK+i2hSA+IGp1bXBcLW92ZXI7CivnlbAgPiBkaWZmZXJlbnQ7CivkurIgPiByZWxhdGl2ZXM7CivnlasgPiBkZWxpbmVhdGU7CivnlZwgPiBsaXZlc3RvY2s7CivnlZEgPiBkcnlcLWZpZWxkOwor55SYID4gc3dlZXRuZXNzOwor6K6kID4gcmVjb2duaXplOwor6LK0ID4gZXhwZW5zaXZlOwor6LKdID4gc2VhXC1zaGVsbDsKK+mZoiA+IGNvdXJ0eWFyZDsKK+i+viA+IGFycml2ZVwtYXQ7CivkvJcgPiBtdWx0aXR1ZGU7Civor4YgPiByZWNvZ25pemU7CivlgJIgPiBmYWxsXC1vdmVyOwor546pID4gcGxheVwtd2l0aDsKK+WDjyA+IGFcLXBpY3R1cmU7CivlroUgPiByZXNpZGVuY2U7Civmja4gPiB0b1wtb2NjdXB5Owor6K2vID4gdHJhbnNsYXRlOwor6K2rID4gdGFsa2F0aXZlOwor6K2YID4gcmVjb2duaXplOwor6YCgID4gY29uc3RydWN0Owor5aq8ID4gb2xkXC13b21hbjsKK+eKoCA+IHNhY3JpZmljZTsKK+iqjSA+IHJlY29nbml6ZTsKK+eJkiA+IGRvY3VtZW50czsKK+eJjCA+IHNpZ25ib2FyZDsKK+WphiA+IG9sZFwtd29tYW47CivoqLMgPiB0cmFuc2xhdGU7CivniJAgPiBmaXJlcGxhY2U7CivkuYUgPiBsb25nXC10aW1lOwor5aa+ID4gY29uY3ViaW5lOwor5YidID4gYmVnaW5uaW5nOwor6KaqID4gcmVsYXRpdmVzOwor6ZmkID4gZWxpbWluYXRlOwor5Ya1ID4gY29uZGl0aW9uOwor5LmxID4gY29uZnVzaW9uOwor5YibID4gZXN0YWJsaXNoOwor56aPID4gaGFwcGluZXNzOwor6L6RID4gZ2F0aGVyXC11cDsKK+WBhyA+IGZhbHNlaG9vZDsKK+epvyA+IHBlbmV0cmF0ZTsKK+ihhiA+IG11bHRpdHVkZTsKK+mhviA+IGxvb2tcLWJhY2s7CivooLYgPiBzaWxrd29ybXM7CivkuL0gPiBiZWF1dGlmdWw7CivmuJAgPiBncmFkdWFsbHk7CivlvIIgPiBkaWZmZXJlbnQ7CivnnqcgPiBnbGFuY2VcLWF0Owor5Z+SID4gZW5jbG9zdXJlOwor5Z+DID4gZmluZVwtZHVzdDsKK+ieoiA+IGdsb3dcLXdvcm07CivpgIAgPiBzdGVwXC1iYWNrOwor6Jy7ID4gZHJhZ29uZmx5Owor5ry4ID4gZ3JhZHVhbGx5Owor57+7ID4gZmxpcFwtb3ZlcjsKK+WcjyA+IHRvXC1jaXJjbGU7Civmma4gPiB1bml2ZXJzYWw7Civom7kgPiBjaHJ5c2FsaXM7CivkuLQgPiBkcmF3XC1uZWFyOwor6JuJID4gZHJhZ29uZmx5Owor5Y2PID4gYmVcLXVuaXRlZDsKK+m6lyA+IGJlYXV0aWZ1bDsKK+ialSA+IHNpbGt3b3JtczsKK+a5ryA+IGhvdFwtd2F0ZXI7CivkvosgPiBwcmVjZWRlbnQ7CivotLUgPiBleHBlbnNpdmU7CivmtLIgPiBjb250aW5lbnQ7Civmnb4gPiBwaW5lXC10cmVlOwor5LyZID4gY29tcGFuaW9uOwor5q+rID4gZmluZVwtaGFpcjsKK+iVjiA+IGJ1Y2t3aGVhdDsKK+i+kyA+IHRyYW5zcG9ydDsKK+azgSA+IGNvbmRpdGlvbjsKK+ebkSA+IHN1cGVydmlzZTsKK+aKmCA+IGJyZWFrXC1vZmY7CivmsbAgPiBleGNlc3NpdmU7CivlkJsgPiBzb3ZlcmVpZ247CivljbEgPiBkYW5nZXJvdXM7CivmpoIgPiBnZW5lcmFsbHk7CivpgI8gPiBwZW5ldHJhdGU7CivlnIggPiB0b1wtY2lyY2xlOwor5q6KID4gZGlmZmVyZW50Owor5q6GID4gZGFuZ2Vyb3VzOwor5Y6EID4gYWR2ZXJzaXR5Owor5rGHID4gY29uY291cnNlOwor5Y6JID4gd2hldHN0b25lOwor6ZmEID4gYWRoZXJlXC10bzsKK+iCqSA+IHNob3VsZGVyczsKK+mtmCA+IG5pZ2h0bWFyZTsKK+WNlCA+IGJlXC11bml0ZWQ7CivojZIgPiB3YXN0ZWxhbmQ7CivprLEgPiBsdXh1cmlhbnQ7Civor5EgPiB0cmFuc2xhdGU7CivljKAgPiBjcmFmdHNtYW47CivmrJ0gPiBsdXh1cmlhbnQ7CivkvLQgPiBjb21wYW5pb247CivljIIgPiBmcmFncmFuY2U7Civli7ggPiByZWNvbW1lbmQ7Civli6cgPiByZWNvbW1lbmQ7Civpo5ggPiB3aGlybHdpbmQ7CivoibYgPiBiZWF1dGlmdWw7CivlibUgPiBlc3RhYmxpc2g7Civngq4gPiBsYXJnZVwtZ3VuOwor6LSdID4gc2VhXC1zaGVsbDsKK+mDjiA+IGdlbnRsZW1hbjsKK+mZqiA+IGFjY29tcGFueTsKK+iHqCA+IGRyYXdcLW5lYXI7Civlh50gPiBjb2FndWxhdGU7CivlhpcgPiBleGNlc3NpdmU7Civlip0gPiByZWNvbW1lbmQ7CivliakgPiBsZWZ0b3ZlcnM7CivppZIgPiBib3VudGlmdWw7CivnlpcgPiBiZVwtaGVhbGVkOwor5rGkID4gaG90XC13YXRlcjsKK+W9uyA+IHBlbmV0cmF0ZTsKK+mjnCA+IGZsaXBcLW92ZXI7Civlg5ogPiBjb21wYW5pb247CivogpggPiB0aGVcLWVsYm93Owor6IKWID4gbG9va1wtbGlrZTsKK+aYqCA+IHllc3RlcmRheTsKK+aagiA+IHRlbXBvcmFyeTsKK+mAkiA+IGhhbmRcLW92ZXI7CivpoacgPiBsb29rXC1iYWNrOwor56WlID4gZ29vZFwtbHVjazsKK+WAuSA+IHRlbXBlcmF0ZTsKK+iJsCA+IGRpZmZpY3VsdDsKK+S7lyA+IHJlbHlcLXVwb247Civmn78gPiBwZXJzaW1tb247CivplK4gPiBkb29yXC1ib2x0Owor5p6vID4gZHJpZWRcLW91dDsKK+iOsSA+IGdvb3NlZm9vdDsKK+i1lCA+IGluZGVtbmlmeTsKK+mAoiA+IGNvbWVcLXVwb247CivnnYEgPiBvcGVuXC1leWVzOwor5Zi/ID4gYmVcLXNpbGVudDsKK+S7riA+IGZhbHNlaG9vZDsKK+mboyA+IGRpZmZpY3VsdDsKK+i0qiA+IGJlXC1ncmVlZHk7CivmmqsgPiB0ZW1wb3Jhcnk7CivpgJ0gPiBwYXNzXC1hd2F5Owor5LqCID4gY29uZnVzaW9uOwor6Im+ID4gYXJ0ZW1pc2lhOwor6IqsID4gZnJhZ3JhbmNlOwor6KKNID4gbG9uZ1wtZ293bjsKK+WGpCA+IGdyaWV2YW5jZTsKK+mltiA+IGJvdW50aWZ1bDsKK+eCiSA+IGZpcmVwbGFjZTsKK+i/qiA+IGVubGlnaHRlbjsKK+WYiSA+IGV4Y2VsbGVudDsKK+mWviA+IHRocmVzaG9sZDsKK+e2viA+IHRoaW5cLXNpbGs7CivoibMgPiBiZWF1dGlmdWw7CivohoAgPiB1cHBlclwtYXJtOwor54m6ID4gc2FjcmlmaWNlOwor6aG9ID4gb2JzdGluYXRlOwor5q2JID4gZGVmaWNpZW50Owor5biFID4gY29tbWFuZGVyOwor5oa+ID4gdG9cLXJlZ3JldDsKK+WKiCA+IGN1dFwtYXBhcnQ7Civmi4IgPiBzaGFrZVwtb2ZmOwor6Y21ID4gZG9vclwtYm9sdDsKK+etiCA+IGFycm93XC1lbmQ7Civmi6AgPiB0b1wtb2NjdXB5Owor5Y6iID4gc2lkZVwtcm9vbTsKK+eGrCA+IGNvb2tcLWRvd247CivmiZUgPiBzaGFrZVwtb2ZmOwor5a+TID4gcmVzaWRlbmNlOwor56i8ID4gc293XC1ncmFpbjsKK+aBjSA+IHNlZW1pbmdseTsKK+e7oyA+IGVtYnJvaWRlcjsKK+aHgyA+IGNvdXJ0ZW91czsKK+ihrCA+IHVuZGVyd2VhcjsKK+aFiiA+IHRvXC1yZXNlbnQ7CivohoogPiBzaG91bGRlcnM7Civmva0gPiBkZWVwXC1wb29sOwor5pe3ID4gZXh0ZW5zaXZlOwor56GdID4gc2FsdHBldGVyOwor6YGUID4gYXJyaXZlXC1hdDsKK+mAuSA+IGFycml2ZVwtYXQ7CivpqqQgPiBwcm9jZWR1cmU7Civoi7kgPiBhcnRlbWlzaWE7Civlv78gPiBnZXRcLWFuZ3J5Owor5Z2gID4gZmFsbFwtZG93bjsKK+idtiA+IGJ1dHRlcmZseTsKK+eEiSA+IHRoZXJldXBvbjsKK+emgCA+IHJlcG9ydFwtdG87CivmjKsgPiBwdXNoXC1kb3duOwor6bOEID4gYWxsaWdhdG9yOwor6LCQID4gaGFybW9uaXplOwor5bGOID4gZXhjcmVtZW50Owor5Y+oID4gdGFsa2F0aXZlOwor6JGxID4gc2NhbGxpb25zOwor5p6jID4gZGF0ZVwtdHJlZTsKK+S+oyA+IGNvbXBhbmlvbjsKK+iwtCA+IHJlcHJpbWFuZDsKK+axuSA+IHR1cmJ1bGVudDsKK+eYqyA+IHBhcmFseXNpczsKK+iUmiA+IGx1eHVyaWFudDsKK+azuyA+IGRyYWluXC1vZmY7Civkv60gPiB0ZW1wZXJhdGU7CivngJEgPiB3YXRlcmZhbGw7CivonbQgPiBidXR0ZXJmbHk7CivmqIogPiBhXC1yYWlsaW5nOwor5pWbID4gZHJhd1wtYmFjazsKK+empyA+IGhhcHBpbmVzczsKK+iMtSA+IGFcLWN1c2hpb247Civmo5UgPiBoZW1wXC1wYWxtOwor5aifID4gYmVhdXRpZnVsOwor5YCpID4gYmVhdXRpZnVsOwor6L6XID4gdHVyblwtb3ZlcjsKK+aBpCA+IHNob3dcLXBpdHk7CivkvoggPiBsdXh1cmlvdXM7CivlpKUgPiBjb21wYW5pb247CivmsoEgPiBzb2FrXC1pbnRvOwor5qebID4gdGhyZXNob2xkOwor5YyjID4gc21hbGxcLWJveDsKK+aNjiA+IHRvXC1zZWxlY3Q7Civnl6ogPiBwYXJhbHlzaXM7Civnl54gPiBkeXNwZXBzaWE7CivnnZAgPiBzcXVpbnRcLWF0Owor5Z6mID4gY3VsdGl2YXRlOwor5rWSID4gcml2ZXJiYW5rOwor6JG1ID4gc3VuZmxvd2VyOwor552rID4gZXllbGFzaGVzOwor55eKID4gYmVcLWhlYWxlZDsKK+WTuiA+IGNoZXdcLWZvb2Q7Civnq6MgPiB0ZXJtaW5hdGU7Civlm5QgPiBtdXR0ZXJpbmc7Civol5AgPiBkaXNyZWdhcmQ7Civlv5IgPiBleGNlc3NpdmU7Civln6AgPiBwb3J0XC1jaXR5Owor6I2kID4gbWVhdFwtZGlldDsKK+eluiA+IGdvb2RcLWx1Y2s7CivonJIgPiBtaWxsaXBlZGU7Civoj4cgPiBtdXNocm9vbXM7CivosZogPiBzbWFsbFwtcGlnOwor5rKTID4gY29ubmVjdGVkOwor5bypID4gY3Jvc3NcLWJvdzsKK+auhyA+IGRpZVwteW91bmc7CivokKQgPiBnbG93XC13b3JtOwor5qCIID4gd2FyZWhvdXNlOwor6Ya6ID4gZ2V0XC1kcnVuazsKK+iciCA+IGNlbnRpcGVkZTsKK+S9vCA+IGJlYXV0aWZ1bDsKK+iaoyA+IGNlbnRpcGVkZTsKK+aEqyA+IGd1aWxlbGVzczsKK+iwmSA+IHZlcnNlZFwtaW47CivnhrkgPiBkaW1cLWxpZ2h0Owor5oCCID4gaW5zdGlnYXRlOwor6aalID4gZnJhZ3JhbmNlOwor5oG/ID4gaW5zdGlnYXRlOwor6YGbID4gdGFrZVwtd2FsazsKK+eXuSA+IHBhcmFseXNpczsKK+m6viA+IGFcLXBlbm5hbnQ7CivlqrIgPiBtYXJyeVwtb2ZmOwor6JyTID4gZHJhZ29uZmx5Owor6ZWBID4gbWFnbmVzaXVtOwor5qSwID4gcGFsbVwtdHJlZTsKK+eguiA+IHdoZXRzdG9uZTsKK+eXoiA+IGR5c2VudGVyeTsKK+WXkSA+IGVhdFwtc2VlZHM7Civomq8gPiBlYXJ0aHdvcm07CivonJogPiBjb2Nrcm9hY2g7CivompMgPiBlYXJ0aHdvcm07CivprYcgPiBuaWdodG1hcmU7CivpmIYgPiBoaWdoXC1kb29yOwor5aaqID4gb2xkXC13b21hbjsKK+aTgCA+IHJvbGxcLWZsYXQ7Civlpo0gPiBiZWF1dGlmdWw7Civlp6MgPiBiZWF1dGlmdWw7CivooqQgPiBsb25naXR1ZGU7Civpup0gPiBtdXNrXC1kZWVyOwor6I2fID4gbHV4dXJpYW50Owor5L27ID4gZnJpdm9sb3VzOwor6ZK+ID4gcG90YXNzaXVtOwor6aOZID4gd2hpcmx3aW5kOwor5a2RID4gcmVtYWluaW5nOwor5qqEID4gY2FsbFwtYXJtczsKK+majSA+IGRyeVwtZGl0Y2g7Civor78gPiBwYXNzXC1idWNrOwor57urID4gdGhpblwtc2lsazsKK+mAhCA+IGFcLXN1cm5hbWU7Civmoo8gPiBoYW5kY3VmZnM7CivnpYkgPiBoYXBwaW5lc3M7Civon5EgPiBjb2Nrcm9hY2g7CivpkrogPiBicm9hZFwtYXhlOwor6I2eID4gYnVja3doZWF0Owor5p+RID4gdGFuZ2VyaW5lOwor5am1ID4gYmVhdXRpZnVsOwor5aiJID4gYmVhdXRpZnVsOwor6K6nID4gY29uZnVzaW9uOwor5LmcID4gdG9cLXNxdWludDsKK+S/piA+IGNvbXBhbmlvbjsKK+eHriA+IGhhcm1vbml6ZTsKK+mjmiA+IHdoaXJsd2luZDsKK+WnuSA+IGJlYXV0aWZ1bDsKK+aEjiA+IG9ic3RpbmF0ZTsKK+WosiA+IGFcLWdvZGRlc3M7Civlv50gPiBkaXNncmFjZWQ7CivokbMgPiBsdXh1cmlhbnQ7Civor64gPiBjcml0aWNpemU7Civps48gPiBodWdlXC1maXNoOwor6JyHID4gamVsbHlmaXNoOwor5YqtID4gZW5jb3VyYWdlOwor5YWWID4gZXN0YWJsaXNoOwor5ZG2ID4gdGFsa2F0aXZlOwor55mjID4gcmluZ3dvcm1zOwor57umID4gc2lsa1wtY29yZDsKK+mSuCA+IHBsdXRvbml1bTsKK+mmlyA+IGNoZWVrYm9uZTsKK+mUsCA+IG1hbmdhbmVzZTsKK+S+qiA+IGFcLWNvbXBhbnk7Civlh6sgPiB3aWxkXC1kdWNrOwor55exID4gaGVhdFwtcmFzaDsKK+eXiCA+IGNhcmJ1bmNsZTsKK+aCjCA+IGJyb3RoZXJseTsKK+WGvCA+IFwoc3VybmFtZVwpOwor6bmnID4gcGFydHJpZGdlOwor5oKSID4gc29ycm93ZnVsOwor5oCDID4gcmVncmV0ZnVsOwor5aKSID4gd2V0XC10aWx0aDsKK+ioviA+IGJhZFwtbW91dGg7CivlnK4gPiBkZXN0cm95ZWQ7CivpsoggPiBzZWFcLXBlcmNoOwor6ZKaID4gcGx1dG9uaXVtOwor55e/ID4gcGFyYWx5c2lzOwor5pSJID4gdG9cLWJlY2tvbjsKK+myhyA+IHNoZWF0ZmlzaDsKK+iGiCA+IGRpYXBocmFnbTsKK+eKjSA+IGFcLWJ1bGxvY2s7CivlpqQgPiBiZWF1dGlmdWw7CivplJcgPiBnZXJtYW5pdW07Civpjo8gPiBwdXJlXC1nb2xkOwor6ZWFID4gYW1lcmljaXVtOwor6L6CID4gYVwtY2hhcmlvdDsKK+WqqiA+IG9sZFwtd29tYW47CivlrZMgPiBiZWF1dGlmdWw7Civot7ggPiBjbGVhclwtd2F5Owor55aUID4gY2FyYnVuY2xlOwor54WzID4gYmVcLWJ1cm5lZDsKK+eJviA+IHRvXC1vcHBvc2U7CivmmIAgPiBzdW5cLWxpZ2h0Owor5LmpID4gdG9cLWRpdmluZTsKK+e+nyA+IGh5ZHJveGlkZTsKK+iNvSA+IGNvcmlhbmRlcjsKK+iwtSA+IHRhbGthdGl2ZTsKK+e7oCA+IHdlbGxcLXJvcGU7Civlk5MgPiBnYXJydWxvdXM7CivohKwgPiBhXC1ibGFkZGVyOwor5oihID4gc3VianVnYXRlOwor6L6HID4gaGFuZFwtY2FydDsKK+mYiCA+IHRocmVzaG9sZDsKK+m5miA+IGNvcm1vcmFudDsKK+mVniA+IGFycm93aGVhZDsKK+iPsCA+IHdpbGRcLXJpY2U7CivooJYgPiBpbmNoXC13b3JtOwor6ZOrID4gbGFyZ2VcLWhvZTsKK+awmCA+IGRldXRlcml1bTsKK+m7viA+IHRvXC1zdHJpdmU7CivplacgPiBsYW50aGFudW07CivlnqEgPiBwbG93XC1zb2lsOwor54KUID4gYWNldHlsZW5lOwor6bisID4gY29ybW9yYW50Owor6ZWxID4geXR0ZXJiaXVtOwor6ZKVID4gbmVvZHltaXVtOwor5b+tID4gZGVsaWdodGVkOwor6I6qID4gYXJ0ZW1pc2lhOwor6Iu0ID4gc2Fja2Nsb3RoOwor6LCzID4gdG9cLWRlY2lkZTsKK+mSryA+IHBhbGxhZGl1bTsKK+eisiA+IHRlbGx1cml1bTsKK+eSqSA+IGphZGVcLXJpbmc7CivpmIMgPiB0aHJlc2hvbGQ7CivppasgPiBzdXJmZWl0ZWQ7CivmkpkgPiBlY29ub21pemU7Civok7wgPiBzbWFydHdlZWQ7CivppZQgPiBicmVha2Zhc3Q7CivplLYgPiBzdHJvbnRpdW07CivnoY4gPiB3aGV0c3RvbmU7CivmmIMgPiBhZnRlcm5vb247CivllKogPiB0b1wtcmVjaXRlOwor6JWIID4gbXVzaHJvb21zOwor5YSHID4gaW5nZW5pb3VzOwor6bK0ID4gZmlzaFwtZ3V0czsKK+myhSA+IGZpc2hcLW5hbWU7CivooIogPiBjb2Nrcm9hY2g7CivomrAgPiBtaWxsaXBlZGU7Civpk40gPiBiZXJ5bGxpdW07CivnhrMgPiB0b1wtc3ByZWFkOwor6IONID4gZ3VhbmlkaW5lOwor6L+VID4gb2JzdGluYXRlOwor6bKQID4gZ2xvYmVmaXNoOwor6YWQID4gYW5oeWRyaWRlOwor6KGEID4gZXBpc3RheGlzOwor55+nID4gbXVjaFwtbW9yZTsKK+aCqyA+IHNpbmNlcml0eTsKK+iGpiA+IHBob3NwaGluZTsKK+e8oyA+IGZpbmVcLXNpbGs7CivlroQgPiBhXC10cmFpdG9yOwor6ZiMID4gd2VuXC14aWFuZzsKK+WTvyA+IGV4Y2VsbGVudDsKK+mYvSA+IGRhbmdlcm91czsKK+WMpiA+IHNtYWxsXC1ib3g7CivphZ4gPiBwaHRoYWxlaW47CivpvbMgPiB0b290aGxlc3M7Civpva0gPiB0b290aGFjaGU7Civpu70gPiB0b1wtc3RyaXZlOwor6biVID4gY29ybW9yYW50Owor6be+ID4gYVwtc3dhbGxvdzsKK+m3rSA+IHdhdGVyXC1oZW47Civpt6cgPiBjb3Jtb3JhbnQ7Civpt6UgPiB0aGVcLWVncmV0Owor6beTID4gcGFydHJpZGdlOwor6bePID4gYmlyZFwtbmFtZTsKK+m3hiA+IGJpcmRcLW5hbWU7Civptr8gPiBjb3Jtb3JhbnQ7CivptqEgPiBjcm9zc2JpbGw7CivptbcgPiBjb1wtd29ya2VyOwor6bOsID4gd2lsZFwtZHVjazsKK+mzpyA+IHdpbGRcLWR1Y2s7Civps6IgPiBzbmFrZWhlYWQ7Civpso4gPiBraW5nXC1jcmFiOwor6bG4ID4gc2VhXC1wZXJjaDsKK+mxtyA+IGNyb2NvZGlsZTsKK+mxpyA+IHNuYWtlaGVhZDsKK+mxnyA+IGtpbmdcLWNyYWI7CivpsZsgPiBmaXNoXC1uYW1lOwor6bClID4gaHVnZVwtZmlzaDsKK+mwkCA+IGFsbGlnYXRvcjsKK+mvoCA+IHRvXC1jb25mZXI7Civpr50gPiBmaXNoXC1ndXRzOwor6a6mID4gc25ha2VmaXNoOwor6a6OID4gc2hlYXRmaXNoOwor6a6AID4gc25ha2VmaXNoOwor6a2yID4gZmlzaFwtbmFtZTsKK+mtniA+IGZpc2hcLXRyYXA7CivprLAgPiBsdXh1cmlhbnQ7CivprJYgPiB3aWxkXC1oYWlyOwor6aunID4gbG9uZ1wtaGFpcjsKK+mrlyA+IHRoZVwtc2t1bGw7Civpqq0gPiBzaGluXC1ib25lOwor6amfID4gcHJvY2VkdXJlOwor6ainID4gdGFuXC1ob3JzZTsKK+mokCA+IHRvXC12ZXJpdHk7Civpp7ggPiBnYWxsb3Bpbmc7Civppp0gPiBmcmFncmFuY2U7CivpppsgPiBmcmFncmFuY2U7CivppoIgPiBsZWZ0b3ZlcnM7CivppaAgPiByaWNlXC1jYWtlOwor6aS6ID4gcmljZVwtY2FrZTsKK+mksSA+IGRyeVwtZ29vZHM7CivppJUgPiBsZWZ0b3ZlcnM7CivppIggPiByaWNlXC1jYWtlOwor6aOrID4gc3VyZmVpdGVkOwor6aOlID4gcmljZVwtY2FrZTsKK+mjiCA+IHdoaXJsd2luZDsKK+mjhyA+IHdoaXJsd2luZDsKK+mjhiA+IHdoaXJsd2luZDsKK+mjhCA+IHdoaXJsd2luZDsKK+mjgyA+IHdoaXJsd2luZDsKK+mityA+IHdoaXJsd2luZDsKK+mitCA+IHdoaXJsd2luZDsKK+mgryA+IGNoZWVrYm9uZTsKK+mgkSA+IG9ic3RpbmF0ZTsKK+mghCA+IGNoZWVrYm9uZTsKK+mdqiA+IHRvXC1jb2JibGU7CivpnacgPiB3YXNoXC1mYWNlOwor6Z2AID4gZHJpenpsaW5nOwor6ZyCID4gZmluZVwtcmFpbjsKK+magyA+IHRvXC1leGNlZWQ7Civplr8gPiB3ZW5cLXhpYW5nOwor6Za6ID4gbG9va1wtZG93bjsKK+mWrCA+IGhpZ2hcLWRvb3I7CivplqsgPiB0aHJlc2hvbGQ7CivplKsgPiBiZXJrZWxpdW07CivplIYgPiB6aXJjb25pdW07CivpkrYgPiBjb2x1bWJpdW07CivpkowgPiBydXRoZW5pdW07CivpkoEgPiBhXC1tYXR0b2NrOwor6ZGtID4gbGFudGhhbnVtOwor6ZGqID4gZmlyZXBsYWNlOwor6ZC/ID4geXR0ZXJiaXVtOwor6ZC7ID4gZHJ1bXN0aWNrOwor6Y+bID4gdG9cLXBvbGlzaDsKK+mPkCA+IHB1cmVcLWdvbGQ7Civpj4MgPiBhcnJvd2hlYWQ7Civpjr8gPiBuZXB0dW5pdW07Civpjp4gPiBwbG93c2hhcmU7CivpjocgPiBhbWVyaWNpdW07CivpjoIgPiBtYWduZXNpdW07CivpjbogPiBnZXJtYW5pdW07CivpjbYgPiBzdHJvbnRpdW07CivpjLMgPiBtYW5nYW5lc2U7CivpjIcgPiBiZXJrZWxpdW07Civpi68gPiB6aXJjb25pdW07Civpi40gPiBiZXJ5bGxpdW07CivpiqQgPiBhbWVyaWNpdW07CivpipogPiBsYXJnZVwtaG9lOwor6YmeID4gYnJvYWRcLWF4ZTsKK+mIvSA+IHBsdXRvbml1bTsKK+mIuSA+IGJlcnlsbGl1bTsKK+mIqSA+IGZpcmVwbGFjZTsKK+mIjCA+IHRvXC1waWVyY2U7CivpiIggPiBwbHV0b25pdW07CivpiIAgPiBwYWxsYWRpdW07Civph7kgPiBuZW9keW1pdW07Civph5UgPiBydXRoZW5pdW07Civpg54gPiBnZW50bGVtYW47CivpgZ4gPiBoYW5kXC1vdmVyOwor6YCTID4gaGFuZFwtb3ZlcjsKK+i8viA+IHR1cm5cLW92ZXI7CivovLggPiB0cmFuc3BvcnQ7CivovJggPiBhXC1jYXJcLXJ1dDsKK+i8hSA+IGFcLWNoYXJpb3Q7Civou7cgPiBzYWNyaWZpY2U7Civou4QgPiB0b1wtZ292ZXJuOwor6LqUID4gZm9sbG93XC1pbjsKK+i5lSA+IGNsZWFyXC13YXk7CivouZQgPiB0ZW1wb3Jhcnk7Civot6kgPiB0b1wtd2FkZGxlOwor6LadID4gdG9cLXB1cnN1ZTsKK+i1vyA+IGxhdGVcLXNsb3c7Civos7ggPiBsZWZ0b3ZlcnM7Civos6AgPiBpbmRlbW5pZnk7CivosbUgPiB5b3VuZ1wtcGlnOwor6LGTID4gYmVhdXRpZnVsOwor6K6eID4gdG9cLWRlY2lkZTsKK+ittCA+IHJlcHJpbWFuZDsKK+itiiA+IHdyYW5nbGluZzsKK+ithSA+IHdyaWdnbGluZzsKK+irsyA+IHZlcnNlZFwtaW47Civoq6cgPiBoYXJtb25pemU7Civoq50gPiBrbm93bGVkZ2U7Civoq4kgPiBwYXNzXC1idWNrOwor6KqaID4gY3JpdGljaXplOwor6KqWID4gb2JzdGluYXRlOwor6KigID4gbXVjaFwtbW9yZTsKK+iojCA+IGNvbmZ1c2lvbjsKK+ilryA+IHVuZGVyd2VhcjsKK+ijsiA+IHdhaXN0Y29hdDsKK+ifuiA+IGVhcnRod29ybTsKK+iejCA+IGFcLXN0cmlwZWQ7CivonKggPiBidXR0ZXJmbHk7Civom7UgPiBkcmFnb25mbHk7Civom40gPiBnbG93XC13b3JtOwor6Jq/ID4gbWlsbGlwZWRlOwor6JieID4gd2lsZFwtdmluZTsKK+iWiCA+IGx1eHVyaWFudDsKK+iVlyA+IGxldWNhY2VuZTsKK+iUuSA+IHdpbGRcLXZpbmU7CivolKUgPiBzY2FsbGlvbnM7Civok4YgPiBzdHJhd1wtbWF0Owor6JKiID4gaGVkeXNhcnVtOwor6JG3ID4gbWVhdFwtZGlldDsKK+iRkyA+IHZlZ2V0YWJsZTsKK+iQiiA+IGdvb3NlZm9vdDsKK+iPuyA+IGFydGVtaXNpYTsKK+iNjSA+IGJ1Y2t3aGVhdDsKK+iLoCA+IG11bHRpdHVkZTsKK+iLmSA+IGFcLXBpZ1wtc3R5Owor6Iq8ID4gdG9cLWNob29zZTsKK+iJtyA+IGJlYXV0aWZ1bDsKK+iJsSA+IGRpZmZpY3VsdDsKK+iJoyA+IHN0ZXJuXC1vYXI7CivoiY4gPiBmYXN0XC1ib2F0Owor6IidID4gbGluY2hcLXBpbjsKK+iImCA+IGFcLW1hbnNpb247Civoh68gPiB0b1wtcHJhaXNlOwor6IOmID4gdGhlXC1uYXZlbDsKK+iApSA+IGZhcm1cLXRvb2w7CivnvrYgPiByYW5rXC1vZG9yOwor576lID4gaHlkcm94aWRlOwor572BID4gYVwtY2lzdGVybjsKK+e5oyA+IG9ic3RpbmF0ZTsKK+e5oSA+IGVtYnJvaWRlcjsKK+e5jSA+IGVtYnJvaWRlcjsKK+e4kSA+IGZpbmVcLXNpbGs7CivnuIMgPiBmaW5lXC1zaWxrOwor57elID4gc3dhZGRsaW5nOwor57aJID4gZW1icm9pZGVyOwor57aGID4gd2VsbFwtcm9wZTsKK+ezsCA+IHJpY2VcLWJhbGw7Civns50gPiBzY2F0dGVyZWQ7Civnsr8gPiByaWNlXC1jYWtlOwor57GoID4gdHJvdXNzZWF1Owor57CDID4gc2lkZVwtcm9vbTsKK+erlSA+IGRlY2lsaXRlcjsKK+erjyA+IGtpbG9saXRlcjsKK+erjSA+IGRlY2FsaXRlcjsKK+erhiA+IGV4aGF1c3RlZDsKK+eqtCA+IGdsYW5jZVwtYXQ7CivnqosgPiBpblwtYVwtaG9sZTsKK+epqiA+IHRvXC1wcmFpc2U7CivnqKwgPiBnbHV0aW5vdXM7CivnqJ8gPiByZXBvcnRcLXRvOwor56a0ID4gc2FjcmlmaWNlOwor56akID4gXChzdXJuYW1lXCk7CivnppwgPiBzYWNyaWZpY2U7CivnppYgPiBzYWNyaWZpY2U7CivnppUgPiBleGNlbGxlbnQ7CivnppQgPiBoYXBwaW5lc3M7CivnpaYgPiBoYXBwaW5lc3M7CivnpY4gPiBleGNlbGxlbnQ7CivnpL8gPiBzYWNyaWZpY2U7CivnpL0gPiBibGVzc2luZ3M7CivnpKogPiB3aGV0c3RvbmU7CivnpJ4gPiBcKG1pbmVyYWxcKTsKK+eirCA+IHdoZXRzdG9uZTsKK+eihiA+IGFycm93XC10aXA7CivnobsgPiBvYnN0aW5hdGU7CivnoK4gPiBhcnJvd1wtdGlwOwor56CsID4gYmlnXC1zdG9uZTsKK+edniA+IHNxdWludFwtYXQ7CivnnJUgPiByZXN0cmFpbnQ7Civnm7UgPiBcKHN1cm5hbWVcKTsKK+ebmiA+IFwoc3VybmFtZVwpOwor55mxID4gcGFyYWx5c2lzOwor55mwID4gY2FyYnVuY2xlOwor55msID4gcmluZ3dvcm1zOwor55itID4gYVwtd2hpdGxvdzsKK+eYnCA+IGFcLXBvbHlwdXM7CivnmJMgPiBwYXJhbHlzaXM7Civnl6EgPiBhXC1kaXNlYXNlOwor55eQID4gd2hpcmx3aW5kOwor55a2ID4gZHlzZW50ZXJ5Owor55W1ID4gZGVsaW5lYXRlOwor55WxID4gdG9cLWRldGFpbjsKK+eViyA+IHRpbGxcLWxhbmQ7CivnlLQgPiBjb2Nrcm9hY2g7CivnlKogPiBcKHN1cm5hbWVcKTsKK+eUpiA+IGJlXC1yZWJvcm47CivnlIUgPiBjZW50aWdyYW07Civnk7ggPiBoZWN0b2dyYW07Civnk7EgPiBtaWxsaWdyYW07Civnkr8gPiBmaW5lXC1qYWRlOwor55G0ID4gdHdpblwtZ2VtczsKK+eRoyA+IGZyYWdtZW50czsKK+eNgCA+IHRvXC1nYXRoZXI7Civni7MgPiBhcm1hZGlsbG87CivnirAgPiBhcm1hZGlsbG87CivniqcgPiBzYWNyaWZpY2U7Civnh7YgPiB0b1wtc2NvcmNoOwor54esID4gYnVyblwtZG93bjsKK+eHiiA+IGx1eHVyaWFudDsKK+eGvyA+IGJyaWxsaWFudDsKK+eGuiA+IGRpbVwtbGlnaHQ7CivngpggPiBicmlsbGlhbnQ7CivngIkgPiBkcmFpblwtb2ZmOwor5r+pID4gcG91clwtZG93bjsKK+a/myA+IGRyaXp6bGluZzsKK+a7uCA+IHJpdmVyYmFuazsKK+a5vCA+IGJsYWNrXC1tdWQ7CivmuY8gPiB3YXNoXC1mYWNlOwor5rmFID4gYm9pbFwtc2lsazsKK+a3qSA+IHBhc3NcLW92ZXI7CivmtrcgPiByYWluc3Rvcm07CivmtJEgPiB3aGlybHBvb2w7CivmsrogPiB0dXJidWxlbnQ7CivmrqQgPiBkaWVcLXlvdW5nOwor5q6IID4gaW5mZXJ0aWxlOwor5q6AID4gZGllXC15b3VuZzsKK+atmyA+IGRyYXdcLWJhY2s7CivmrJUgPiB0cmVlXC1uYW1lOwor5qq7ID4gdGhyZXNob2xkOwor5qmaID4gdGFsbFwtdHJlZTsKK+aosyA+IHRhbGxcLXRyZWU7CivmqIsgPiB0cmVlXC1uYW1lOwor5qeqID4gZ2VuZXJhbGx5Owor5qepID4gZ2VuZXJhbGx5Owor5qaqID4gaGVhZGJvYXJkOwor5qS2ID4gcGFsbVwtdHJlZTsKK+ajpyA+IHdhcmVob3VzZTsKK+ajpSA+IGFcLXJhaWxpbmc7Civmo5cgPiBkYXRlXC10cmVlOwor5qOWID4gZG9vclwtc3RvcDsKK+ainCA+IGNob3BzdGljazsKK+aijSA+IHRyZWVcLW5hbWU7CivmoLEgPiBsYXJnZVwtcGVnOwor5qCtID4ga2luZ1wtcG9zdDsKK+agnyA+IGhlbXBcLXBhbG07CivmoJIgPiBjcm9zc1wtYmFyOwor5p+5ID4gcGVyc2ltbW9uOwor5p+IID4gY29udGFpbmVyOwor5p6+ID4gcGVyc2ltbW9uOwor5p65ID4gZHJ1bXN0aWNrOwor5p6pID4gcGluZVwtdHJlZTsKK+aeqCA+IGRvb3JcLXN0b3A7CivmnpkgPiB0cmVlXC1rbm90Owor5p2pID4gaGVhZGJvYXJkOwor5pyeID4gZnVsbFwteWVhcjsKK+ackyA+IHNhY3JpZmljZTsKK+absSA+IGNvY2tyb2FjaDsKK+aboCA+IGV4dGVuc2l2ZTsKK+aajSA+IHN1bnN0cm9rZTsKK+aYvyA+IGV4dGVuc2l2ZTsKK+aYqiA+IGRlbGlnaHRlZDsKK+aXqiA+IHVuaXRlZFwtaW47Civml5sgPiBhXC1wZW5uYW50Owor5peZID4gYVwtcGVubmFudDsKK+aWgiA+IGRyYXdcLWJhY2s7CivmlYsgPiB0b1wtc3RyaWtlOwor5pSLID4gdG9cLWNsdXRjaDsKK+aUgyA+IHByZWNlZGluZzsKK+aTvyA+IHRvXC1zZWxlY3Q7Civmk5ogPiB0b1wtb2NjdXB5Owor5pOQID4gdG9cLXB1dFwtb247Civmk4kgPiB0b1wtcGllcmNlOwor5pG9ID4gdGhyb3dcLW91dDsKK+aRriA+IHRvXC1yYXR0bGU7CivmkZsgPiB0b1wtc3ByZWFkOwor5pCZID4gdG9cLWhhbmRsZTsKK+aQlSA+IHRvXC1zdHJpa2U7Civmj6YgPiB0b1wtY2x1dGNoOwor5o+lID4gc2NyYXRjaGVyOwor5o6ZID4gdG9cLXN0cml2ZTsKK+aJuyA+IHRvXC1zdHJpa2U7CivmiaQgPiB0b1wtdGhydXN0Owor5oicID4gdG9cLXNjcmFwZTsKK+aGryA+IHNvcnJvd2Z1bDsKK+aGriA+IHJlZ3JldGZ1bDsKK+aFvSA+IHNvcnJvd2Z1bDsKK+aFvCA+IHNvcnJvd2Z1bDsKK+aFpCA+IHNpbmNlcml0eTsKK+aFhiA+IGV4Y2Vzc2l2ZTsKK+aEqCA+IHNpbmNlcml0eTsKK+aCvSA+IHNvcnJvd2Z1bDsKK+aCgSA+IGlycml0YWJsZTsKK+aBkSA+IHRvXC1jaGFuZ2U7CivmgYogPiBiZVwtdW5pdGVkOwor5oC6ID4gdG9cLWVuZHVyZTsKK+aAniA+IHRvXC1ncmlldmU7CivmgJcgPiBvYnNlcnZhbnQ7Civlv4AgPiB0b1wtc3Ryb2xsOwor5b2MID4gZXh0ZW5zaXZlOwor5bu+ID4gdHdvXC1oYW5kczsKK+W7uCA+IGVubGlnaHRlbjsKK+W6iSA+IGFcLXZpbGxhZ2U7CivluakgPiB0cmFwcGluZ3M7CivluZkgPiBhXC1jdXJ0YWluOwor5bilID4gY29tbWFuZGVyOwor5baOID4gbHV4dXJpYW50Owor5a+9ID4gYVwtaGFuZGZ1bDsKK+WvmCA+IHB1dFwtYXNpZGU7Civlr5cgPiBhXC1zdXJuYW1lOwor5a+WID4gZ3JhZHVhbGx5Owor5a+DID4gZ3JpZXZhbmNlOwor5a6CID4gc2NhdHRlcmVkOwor5ayLID4gYmVhdXRpZnVsOwor5au9ID4gcGxheVwtd2l0aDsKK+WrmyA+IGNvbXBsaWFudDsKK+WrlyA+IG9sZFwtd29tYW47Civlq5UgPiBjb21wbGlhbnQ7CivlqrogPiBiZWF1dGlmdWw7CivlqqwgPiBnb3Zlcm5lc3M7CivlqpUgPiB1bmRlY2lkZWQ7CivlqoQgPiBiZWF1dGlmdWw7CivlqaUgPiBiZWF1dGlmdWw7Civlp7ggPiBiZWF1dGlmdWw7Civlp7EgPiBiZWF1dGlmdWw7Civlp6IgPiBiZWF1dGlmdWw7Civlp54gPiBjb25jdWJpbmU7CivlpLsgPiBmaXNoXC1uYW1lOwor5aSMID4gdG9cLWRhd2RsZTsKK+WiviA+IGN1bHRpdmF0ZTsKK+WinCA+IGZhbGxcLWRvd247CivloZ0gPiBmbGF0XC1iYW5rOwor5Z+TID4gZW5jbG9zdXJlOwor5Z6XID4gc2FjcmlmaWNlOwor5ZyKID4gcmVzdFwtcm9vbTsKK+WanCA+IGJlXC1zaWxlbnQ7CivlmYEgPiBuYXN0aW5lc3M7CivlmLUgPiBnYXJydWxvdXM7CivlmJEgPiB0b1wtbWVuYWNlOwor5ZamID4gdGFsa2F0aXZlOwor5ZWOID4gb2JzdGluYXRlOwor5ZOrID4gdG9cLWNham9sZTsKK+WStSA+IHRvXC1yZXZpbGU7CivlkacgPiB0b1wtcmVidWtlOwor5Y+FID4gdG9cLWNvdW5lbDsKK+WOsiA+IHdoZXRzdG9uZTsKK+WOkyA+IHByZWNpcGljZTsKK+WMrSA+IHNtYWxsXC1ib3g7CivljJggPiB0aGVcLWJyYWluOwor5YuvID4gZXhoYXVzdGVkOwor5YupID4gd29ya1wtaGFyZDsKK+WJsCA+IGxlZnRvdmVyczsKK+WJmSA+IGVzdGFibGlzaDsKK+WJjyA+IGVzdGFibGlzaDsKK+WIsSA+IGVzdGFibGlzaDsKK+WIoSA+IHRvXC1zY3JhcGU7CivliJQgPiBzY29vcFwtb3V0Owor5YiFID4gdG9cLWNyZWF0ZTsKK+WHtyA+IGRpcnRcLWNsb2Q7Civlh5kgPiBhblwtaWNpY2xlOwor5YWXID4gZXN0YWJsaXNoOwor5YWHID4gYXRyb2Npb3VzOwor5YSzID4gb2JzdGluYXRlOwor5YStID4gdG9cLWFzc2lzdDsKK+WElSA+IGFcLWNvbXBhbnk7CivlhJQgPiBjb21wYW5pb247CivlhIkgPiB0ZW1wZXJhdGU7Civlg50gPiB0b1wtcmV2aWxlOwor5YOHID4gaHVtaWxpYXRlOwor5YK6ID4gdG9cLWhpbmRlcjsKK+WAoiA+IGJlYXV0aWZ1bDsKK+S+tiA+IGNvbXBhbmlvbjsKK+S+jiA+IHRvXC1zb290aGU7CivkvasgPiBcKHN1cm5hbWVcKTsKK+S8uyA+IG1lc3NlbmdlcjsKK+S8iyA+IGRlY2VwdGl2ZTsKK+S7iCA+IFwoc3VybmFtZVwpOwor5LmGID4gbG9uZ1wtdGltZTsKK+S2syA+IHRvXC1sb29rdXA7CivktpEgPiB0b1wtc25lZXplOwor5LaNID4gdG9cLXNuZWV6ZTsKK+S1ryA+IGFcLXZpbGxhZ2U7CivktKEgPiBiZWF1dGlmdWw7CivktI8gPiBhXC1zd2FsbG93Owor5LO6ID4gdGhlXC1xdWFpbDsKK+SyvyA+IGNvcm1vcmFudDsKK+SyqCA+IHdpbGRcLXN3YW47CivksYggPiBmaXNoXC1wdWxwOwor5LClID4gYVwtY3ljbG9uZTsKK+SwliA+IGZpbmVcLWhhaXI7CivksJAgPiBsb25nXC1oYWlyOwor5LCIID4gZmluZVwtaGFpcjsKK+SvvSA+IGZpbmVcLWhhaXI7Civkr7cgPiBmaW5lXC1oYWlyOwor5K+mID4gdGlueVwtYm9uZTsKK+SunCA+IHRvXC1nYWxsb3A7CivkrawgPiB0b1wta293dG93Owor5K2rID4gdG9cLWtvd3RvdzsKK+StmyA+IHRhc3RlbGVzczsKK+StmSA+IGV4cXVpc2l0ZTsKK+StlSA+IHRhc3RlbGVzczsKK+StkSA+IGluY29ycnVwdDsKK+SstiA+IHRvXC1zdHJhdmU7CivkrJQgPiBodXJyaWNhbmU7CivkrJMgPiBodXJyaWNhbmU7Civkq7sgPiBhXC10eXBob29uOwor5Ku6ID4gYVwtdHlwaG9vbjsKK+SrnSA+IGZyYWdyYW5jZTsKK+SrlCA+IGFcLXNlcnZhbnQ7CivkqaYgPiB0aGVcLXJlaW5zOwor5KitID4gdGhlXC1za2llczsKK+SokCA+IHRvXC1zcHJlYWQ7CivkqI0gPiBkZWVwXC1wb25kOwor5KeFID4gZGFuZ2Vyb3VzOwor5Ka1ID4gaW5jYXBhYmxlOwor5KasID4gYVwtdmFjYW5jeTsKK+SmhiA+IGFcLWJpZ1wtaG9lOwor5KW9ID4gZmFybVwtdG9vbDsKK+SkpCA+IGltcGxlbWVudDsKK+SkjyA+IGRlc3Ryb3llZDsKK+SjuCA+IHRhc3RlbGVzczsKK+SjqSA+IGJlYXV0aWZ1bDsKK+SisSA+IHRvXC1zbGlnaHQ7CivkoqsgPiB0b1wtZm9sbG93Owor5KKfID4gdG9cLXRyYXZlbDsKK+SijSA+IHRvXC1oYXN0ZW47CivkooogPiB0b1wtdHJhdmVsOwor5KGUID4gdG9cLWhpbmRlcjsKK+SgsiA+IHRvXC1saXN0ZW47CivkoK8gPiB0b1wtYXNjZW5kOwor5KCuID4gdG9cLXByYW5jZTsKK+SghiA+IHRvXC1rb3d0b3c7Civkn7sgPiBiYXJlXC1mZWV0Owor5J+lID4gbHV4dXJpYW50Owor5J+eID4gdG9cLWZhbHRlcjsKK+SfjCA+IGRpdmVyZ2luZzsKK+SeviA+IGZyaXZvbG91czsKK+SevCA+IHRvXC1lc2NhcGU7CivknqMgPiB0b1wtcmVzaXN0Owor5J6XID4gc3VzcGljaW9uOwor5J6SID4gcmVkXC1jb2xvcjsKK+SekCA+IHBsZW50aWZ1bDsKK+SejSA+IHRvXC1iZXN0b3c7CivknokgPiBhXC1zdXJwbHVzOwor5J2+ID4gdG9cLWJlc3RvdzsKK+SdvCA+IHRvXC1iZXN0b3c7CivknK0gPiB0b1wtZHJlZGdlOwor5JyfID4gdG9cLXZlcmlmeTsKK+ScnSA+IHVuY2VydGFpbjsKK+SchSA+IHRvXC1mb2xsb3c7Civkm7sgPiB0b1wtaW5kdWNlOwor5Ju5ID4gdG9cLWFjY3VzZTsKK+SbuCA+IGdhcnJ1bG91czsKK+SbsyA+IHRvXC1tYWxpZ247Civkm6wgPiBiYWJ5XC10YWxrOwor5JuqID4gbG9xdWFjaXR5Owor5JueID4gbG9xdWFjaXR5Owor5JuaID4gdG9cLXByYWlzZTsKK+SbiyA+IHRvXC1zY2hlbWU7Civkm4EgPiB0b1wtbXVybXVyOwor5Jq1ID4gdG9cLWluZHVjZTsKK+SZuCA+IHRvXC1vYnRhaW47CivkmbcgPiB0b1wtb2J0YWluOwor5JmvID4gZXhxdWlzaXRlOwor5JmnID4gcmVkXC1jb2xvcjsKK+SZmCA+IGV4cXVpc2l0ZTsKK+SYvCA+IHN0b2NraW5nczsKK+SYmiA+IGFcLXNlcnZhbnQ7CivkmJcgPiBiZWF1dGlmdWw7CivkmJEgPiB0aGVcLXB1bHNlOwor5JeZID4gZWFydGh3b3JtOwor5JeTID4gZHJhZ29uZmx5Owor5JeMID4gZHJhZ29uZmx5Owor5JeFID4gbWlsbGlwZWRlOwor5JahID4gbWlsbGlwZWRlOwor5JW5ID4gYVwtY3VydGFpbjsKK+SVsiA+IGFydGVtaXNpYTsKK+SVqSA+IGRyeVwtZnJ1aXQ7CivklY8gPiBhcnRlbWlzaWE7CivklLMgPiBjaGlja2xpbmc7Civkk7AgPiBhYnNpbnRoaW47Civkk5cgPiBzY2FsbGlvbnM7Civkk4cgPiBsdXh1cmlhbnQ7CivkkrAgPiB0b1wtZm9sbG93Owor5JKgID4gbHV4dXJpYW50Owor5JKKID4gYVwtcGF0aWVudDsKK+SRqiA+IGFcLXNhaWxpbmc7CivkkZ8gPiBsdXh1cmlhbnQ7CivkkZMgPiBhXC1sb29rb3V0Owor5JGRID4gYVwtc2VydmFudDsKK+SRiSA+IGV4Y3JlbWVudDsKK+SRgCA+IHRoZVwtbmF2ZWw7CivkkLogPiBkZWxpY2lvdXM7CivkkKEgPiB0aGVcLW5hdmVsOwor5JCbID4gdG9cLWxvb3NlbjsKK+SQjCA+IGx1eHVyaWFudDsKK+SQhiA+IGJpZ1wtYmVsbHk7Civkj70gPiBtZWF0XC1wdWxwOwor5I+sID4gdGhlXC1zcGluZTsKK+SPoCA+IG1lYXRcLXNvdXA7Civkj54gPiB0aGVcLWJlbGx5Owor5I6hID4gdG9cLXNocmluazsKK+SOgyA+IGZpbmVcLWRvd247CivkjY4gPiBhXC1zcGluZGxlOwor5IyyID4gbGlnaHRcLXJlZDsKK+SMmyA+IGVudG91cmFnZTsKK+SMliA+IHRvXC1nYXRoZXI7CivkjIogPiBlbnRvdXJhZ2U7Civki6AgPiB0b1wtcmVwYWlyOwor5IqwID4gZm9vZHN0dWZmOwor5IqcID4gZHVtcGxpbmdzOwor5Im9ID4gcmljZVwtY2FrZTsKK+SJvCA+IG1hdGVyaWFsczsKK+SJmCA+IHRvXC1waWVyY2U7CivkiLUgPiBsdXh1cmlhbnQ7Civkh5AgPiB0b1wtYXJyaXZlOwor5IaQID4gYVwtY291bnRyeTsKK+SFjiA+IGRpZmZlcmVudDsKK+SFhSA+IGZhcm1cLXRvb2w7CivkhYMgPiBsYXRlXC1jcm9wOwor5ISsID4gdG9cLWNoYW5nZTsKK+SEmSA+IGhhcHBpbmVzczsKK+SDqSA+IGFcLW1pbmVyYWw7Civkg5UgPiBzdG9uZXdhcmU7Civkg5MgPiB0b1wtcHVuaXNoOwor5IOAID4gbWlsbHN0b25lOwor5IK+ID4gdG9cLXBvbGlzaDsKK+SCiCA+IHRvXC1waWVyY2U7CivkgocgPiB0b1wtcGllcmNlOwor5IGiID4gZXhxdWlzaXRlOwor5IGQID4gZGVlcFwtZXllZDsKK+SAsCA+IG9wZW5cLWV5ZXM7CivkgKwgPiB0b1wtZ2xhbmNlOwor5ICiID4gdG9cLWdsYW5jZTsKK+SAoSA+IHRvXC1zcHlcLW9uOwor5ICQID4gdG9cLXJlZ2FyZDsKK+O/vyA+IHdpbmVcLWN1cHM7Civjv58gPiBoZVwtYnJpZ2h0Owor47+bID4gY2FyYnVuY2xlOwor47+HID4gcGFyYWx5c2lzOwor476tID4gdG9cLXNocmluazsKK+O+pSA+IGJlbGx5YWNoZTsKK+O+oyA+IHRvXC1zaGl2ZXI7CivjvosgPiBkeXNlbnRlcnk7CivjvawgPiB0b1wtYXNzaXN0Owor472eID4gdG9cLXJlbWFpbjsKK+O9kSA+IGRlbGljaW91czsKK+O9iSA+IGFcLWJpZ1wtamFyOwor47y6ID4gcG9yY2VsYWluOwor47yaID4gZWFydGh3YXJlOwor47u9ID4gZmluZVwtamFkZTsKK+O7sSA+IHRvXC1jaXJjbGU7Civju4wgPiBmaW5lXC1qYWRlOwor47uJID4gZmluZVwtamFkZTsKK+O3vCA+IGFcLXN3YWxsb3c7Civjt44gPiBzdW5zdHJva2U7CivjtZcgPiB0dXJidWxlbnQ7CivjtZQgPiBub3RcLWNsZWFyOwor47SBID4gdG9cLWFkZFwtdG87Civjs6ggPiB0b1wtc3BsYXNoOwor47K1ID4gdGhlXC1za2llczsKK+OypiA+IGxvbmdcLWhhaXI7CivjsqQgPiBsb25nXC1oYWlyOwor47KaID4gbG9uZ1wtaGFpcjsKK+OxmCA+IG5pZ2h0bWFyZTsKK+OwliA+IHRoZVwtb2xpdmU7Civjr7ogPiBhXC1jYWJpbmV0Owor46+vID4gc21hbGxcLWN1cDsKK+OvnSA+IHBhdWxvd25pYTsKK+OvhCA+IGx1eHVyaWFudDsKK+OumSA+IGFcLXBpdGZhbGw7CivjrpQgPiB2ZWdldGFibGU7CivjroMgPiBmYXJtXC10b29sOwor462iID4gbWVjaGFuaWNzOwor46y/ID4gbW9vbmxpZ2h0Owor46yrID4gY2xlYXJcLXNreTsKK+OsoyA+IGx1eHVyaWFudDsKK+OsniA+IHN1bnN0cm9rZTsKK+OqrCA+IHRvXC1waWVyY2U7CivjqqkgPiB0b1wtc3RyaWtlOwor46qkID4gdG9cLWZpbmlzaDsKK+OqkSA+IHRvXC1mb2xsb3c7Civjqo4gPiB1bmNlcnRhaW47CivjqosgPiB0b1wtcmVzaXN0Owor46qIID4gdG9cLWxldFwtZ287CivjqoUgPiB0b1wtY2hhbmdlOwor46mxID4gdG9cLXNlbGVjdDsKK+OppyA+IHRvXC1zdHJpa2U7CivjqZIgPiB0b1wtYXJyZXN0Owor46mMID4gdG9cLXN0cmlrZTsKK+OphyA+IHRoZVwtdGh1bWI7CivjqYQgPiB0b1wtc3RyaWtlOwor46i2ID4gdG9cLXRocmVzaDsKK++omyA+IGhhcHBpbmVzczsKK++omiA+IGdvb2RcLWx1Y2s7CivjqJogPiB0b1wtc2VsZWN0Owor46iNID4gdG9cLWRlZmVuZDsKK+OoiSA+IHRvXC1zbW9vdGg7CivvqIQgPiByZXNpZGVuY2U7CivjqIQgPiB0b1wtcGllcmNlOwor46e+ID4gdG9cLXN0cmlrZTsKK++nvCA+IHJlY29nbml6ZTsKK++ntiA+IGRyYXdcLW5lYXI7Civjp7AgPiB0b1wtc3RyaWtlOwor46epID4gdG9cLWRpc3BlbDsKK++npSA+IGR5c2VudGVyeTsKK+OnpiA+IHRvXC1zdHJpa2U7Civjp5cgPiB0b1wtY2xhdGNoOwor46eWID4gdG9cLWNsdXRjaDsKK+OnjCA+IHRvXC1zZWxlY3Q7Civvp4IgPiBzbWFydHdlZWQ7Civvp4EgPiBiZVwtaGVhbGVkOwor76a7ID4gb2ZmaWNpYWxzOwor76a6ID4gdG9cLWZpbmlzaDsKK+OmuyA+IHRvXC1wdXRcLW9uOwor76a1ID4gcHJlY2VkZW50Owor46a0ID4gdG9cLWFycmVzdDsKK+OmryA+IGFcLWNlcnRhaW47CivjpqogPiBjb21wbGFpbnQ7Civjpp0gPiBiZWF1dGlmdWw7CivjppYgPiByZXNlbnRmdWw7CivvpoggPiBiZWF1dGlmdWw7CivvpoUgPiB3aGV0c3RvbmU7Civjpb4gPiBtb3J0aWZpZWQ7CivjpbMgPiB0b1wtc3VydmV5Owor46WuID4gb2JzdGluYXRlOwor46WnID4gdG9cLWZvbGxvdzsKK+OlpiA+IHNhdGlzZmllZDsKK++loiA+IGRpZmZlcmVudDsKK++llyA+IHRoaW5cLXNpbGs7CivjpZYgPiByZWRcLWNvbG9yOwor46WOID4gdG9cLXJlc2VudDsKK+OlgCA+IGV4Y2x1c2l2ZTsKK+OktSA+IGNvcGFzc2lvbjsKK++ksiA+IGZpcmVwbGFjZTsKK++krCA+IGdlbnRsZW1hbjsKK+OkpSA+IHNvcnJvd2Z1bDsKK++kmyA+IGNvbmZ1c2lvbjsKK+OkmCA+IG9ic3RpbmF0ZTsKK+OkkiA+IGtub3dsZWRnZTsKK+OkiyA+IGNvbmZ1c2lvbjsKK+OkhyA+IHRlcnJpZmllZDsKK+OkhiA+IG5hdXNlYXRlZDsKK+OjvCA+IHRvXC1lbmR1cmU7Civjo7ogPiB0aGVcLWhlYXJ0Owor46OQID4gdG9cLWNoYW5nZTsKK+OiqCA+IHRvXC1kZWZlbmQ7CivjoqEgPiB0b1wtZXhob3J0Owor46KAID4gc2lkZVwtcm9vbTsKK+OhvyA+IHRvXC1hY2N1c2U7CivjobwgPiBhXC1ncmFuYXJ5Owor46G6ID4gYVwtY290dGFnZTsKK+OhoiA+IGFcLWN1cnRhaW47CivjoaAgPiBhXC1waWN0dXJlOwor46GXID4gcmVkXC1wYXBlcjsKK+OgriA+IHRvXC1leHBhbmQ7CivjoJggPiBhblwtaXNsYW5kOwor4561ID4gZnJpdm9sb3VzOwor456jID4gZnJhZ3JhbmNlOwor452OID4gdG9cLWRlY2lkZTsKK+OcuyA+IHRvXC1hZG1pcmU7CivjnLAgPiBleHF1aXNpdGU7CivjnKggPiBiZWF1dGlmdWw7CivjnJ4gPiBiZWF1dGlmdWw7CivjnJggPiBkZWxpY2F0ZWQ7CivjnJYgPiBleHF1aXNpdGU7CivjnI8gPiBsYXN0XC1uYW1lOwor45yKID4gZXhxdWlzaXRlOwor45yEID4gbGFzdFwtbmFtZTsKK+ObviA+IG5vdFwtY2xlYW47Civjm7ogPiBub3RcLWNsZWFuOwor45uxID4gZXhxdWlzaXRlOwor45uXID4gZnJpdm9sb3VzOwor45uUID4gZXhxdWlzaXRlOwor45qwID4gYW5cLWVtYnJ5bzsKK+OaryA+IGxhc3RcLW5hbWU7CivjmpsgPiBjb3JwdWxlbnQ7CivjmpggPiBhXC1wYXJ0bmVyOwor45m1ID4gYVwtbG9va291dDsKK+OZnCA+IGFcLWxvb2tvdXQ7CivjmKMgPiBjb21wYXNzZXM7Civjl7MgPiBmb3JnZXRmdWw7Civjl6MgPiB0b1wtc25lZXplOwor45a8ID4gdG9cLXNjaGVtZTsKK+OWpiA+IGxvcXVhY2l0eTsKK+OWgiA+IGxvcXVhY2l0eTsKK+OVuyA+IHRvXC1yZWZ1c2U7CivjlbkgPiBhXC1idWNrbGVyOwor45WXID4gdG9cLWluZHVjZTsKK+OVlSA+IGRlY2VwdGlvbjsKK+OVkSA+IGFcLWtpdGNoZW47CivjlY8gPiBhXC1raXRjaGVuOwor45WLID4gcm9ja1wtbGFuZDsKK+OViCA+IHRvXC1saW5nZXI7CivjlL4gPiBsYXN0XC1uYW1lOwor45SnID4gdG9cLWluY2l0ZTsKK+OTryA+IHRvXC1kaXZpZGU7Civjk6ggPiB0b1wtcGllcmNlOwor45OLID4gdG9cLWZyZWV6ZTsKK+OThCA+IHRvXC1wbG91Z2g7CivjkpcgPiBhXC1zZXJ2YW50Owor45KTID4gdG9cLWVzY2FwZTsKK+OSiyA+IGFcLXNlcnZhbnQ7CivjkoggPiBkYW5nZXJvdXM7CivjkoIgPiB0b1wtYmVzdG93Owor45GvID4gbGFzdFwtbmFtZTsKK+ORriA+IGxhc3RcLW5hbWU7CivjkacgPiBwZXJ0dXJiZWQ7CivjkZkgPiBmcml2b2xvdXM7CivjkZggPiBhXC1zZXJ2YW50Owor45GOID4gbGFzdFwtbmFtZTsKK+ORhCA+IHRvXC1pbnN1bHQ7CivjkK8gPiB0b1wtZW1wbG95Owor45CtID4gYVwtZ3JhbmFyeTsKK+OQqSA+IHdpbmVcLWN1cHM7CivjkIYgPiB0b1wtZm9sbG93Owor5b+1ID4gdGhpbmtcLW9mOwor5LyaID4gYXNzZW1ibGU7CivlraYgPiBsZWFybmluZzsKK+W+kiA+IGRpc2NpcGxlOwor552mID4gZnJpZW5kbHk7Civml6AgPiBuZWdhdGl2ZTsKK+aWuSA+IGFcLXNxdWFyZTsKK+WJjSA+IGluXC1mcm9udDsKK+eciSA+IGV5ZWJyb3dzOwor55yBID4gcHJvdmluY2U7Civnm7QgPiBzdHJhaWdodDsKK+W7oiA+IGFicm9nYXRlOwor55ubID4gYWJ1bmRhbnQ7Civou5IgPiBjYXJyaWFnZTsKK+WFqCA+IG1haW50YWluOwor5buKID4gY29ycmlkb3I7Civlu4MgPiBhYnJvZ2F0ZTsKK+eauiA+IHdyaW5rbGVzOwor5bq3ID4gcGVhY2VmdWw7Civpl7QgPiBtaWRwb2ludDsKK+i6iiA+IGhlc2l0YXRlOwor6LqHID4gaGVzaXRhdGU7CivnrKwgPiBzZXF1ZW5jZTsKK+W5uyA+IGlsbHVzaW9uOwor55mHID4gZXBpbGVwc3k7CivlsbEgPiBtb3VudGFpbjsKK+i4nyA+IGhlc2l0YXRlOwor5be+ID4ga2VyY2hpZWY7Civlt6cgPiBza2lsbGZ1bDsKK+WuiSA+IHBlYWNlZnVsOwor6LedID4gZGlzdGFuY2U7CivnlYwgPiBib3VuZGFyeTsKK+S7uyA+IHRydXN0XC10bzsKK+WPsCA+IHBsYXRmb3JtOwor6LGhID4gZWxlcGhhbnQ7CivpopggPiBmb3JlaGVhZDsKK+izoiA+IHZpcnR1b3VzOwor6LOHID4gcHJvcGVydHk7CivosrwgPiBwYXN0ZVwtdG87CivosrsgPiBleHBlbnNlczsKK+iyniA+IHZpcnR1b3VzOwor6LWEID4gcHJvcGVydHk7CivlsaUgPiBmb290d2VhcjsKK+ixkCA+IGFidW5kYW50Owor6LGKID4gYWJ1bmRhbnQ7CivmraYgPiBtaWxpdGFyeTsKK+eQsiA+IG5lY2tsYWNlOwor5bCgID4gdmVyeVwtZmV3Owor5a6MID4gY29tcGxldGU7CivljbMgPiBwcm9tcHRseTsKK+WvtSA+IGZhdm9yaXRlOwor6K+tID4gbGFuZ3VhZ2U7Civnj40gPiBwcmVjaW91czsKK+WvjCA+IGFidW5kYW50Owor5ZWGID4gY29tbWVyY2U7Civlrp0gPiB0cmVhc3VyZTsKK+WNgyA+IHRob3VzYW5kOwor5a6cID4gc3VpdGFibGU7CivlrpggPiBvZmZpY2lhbDsKK+ermSA+IHN0YW5kXC11cDsKK+WtuCA+IGxlYXJuaW5nOwor6K2sID4gbWV0YXBob3I7CivpppkgPiBmcmFncmFudDsKK+S8vCA+IHJlc2VtYmxlOwor5ayiID4gdHJvdWJsZWQ7Civomb0gPiBhbHRob3VnaDsKK+mbhiA+IGFzc2VtYmxlOwor5LiUID4gbW9yZW92ZXI7CivosIMgPiB0cmFuc2ZlcjsKK+WriSA+IGplYWxvdXN5Owor54uDID4gdG9cLWNvdmV0Owor5auBID4gdG9cLW1hcnJ5Owor6Kq/ID4gdHJhbnNmZXI7Civoqp4gPiBsYW5ndWFnZTsKK+WqmiA+IGNoYXJtaW5nOwor6KqYID4gcGVyc3VhZGU7CivotLkgPiBleHBlbnNlczsKK+iqhCA+IGV1bG9naXplOwor6KmzID4gZGV0YWlsZWQ7CivoqbAgPiBxdWVzdGlvbjsKK+aDiiA+IGZyaWdodGVuOwor5pSvID4gZGlzcGVyc2U7CivnqoEgPiBzdWRkZW5seTsKK+iplSA+IGFwcHJhaXNlOwor5aigID4gcHJlZ25hbnQ7Civlj6UgPiBzZW50ZW5jZTsKK+aYviA+IG1hbmlmZXN0Owor5aKeID4gaW5jcmVhc2U7CivmlpkgPiBjb25zaWRlcjsKK+iRlyA+IG1hbmlmZXN0Owor5aaKID4gY29uY2VpdmU7CivlooMgPiBib3VuZGFyeTsKK+e7rSA+IGNvbnRpbnVlOwor54ShID4gbmVnYXRpdmU7Civoo5UgPiBhYnVuZGFudDsKK+eCrSA+IGNoYXJjb2FsOwor5Zu0ID4gc3Vycm91bmQ7CivlopcgPiBpbmNyZWFzZTsKK+eBvSA+IGNhbGFtaXR5Owor5aGaID4gY2VtZXRlcnk7Civlv70gPiBzdWRkZW5seTsKK+eAlSA+IGFwcHJvYWNoOwor57u0ID4gbWFpbnRhaW47Civmv7ogPiBzcHJpbmtsZTsKK+a/ryA+IHdhc2hcLW91dDsKK+WeoyA+IGxvd1wtd2FsbDsKK+S5oCA+IHByYWN0aWNlOwor5Z6CID4gbGV0XC1kb3duOwor5Z2CID4gaGlsbHNpZGU7CivnpZYgPiBhbmNlc3RvcjsKK+ivhCA+IGFwcHJhaXNlOwor5ZyNID4gc3Vycm91bmQ7Civnu6cgPiBjb250aW51ZTsKK+WbsiA+IHN1cnJvdW5kOwor5LyYID4gc3VwZXJpb3I7Civmu68gPiBibG9ja1wtdXA7CivpmZAgPiBib3VuZGFyeTsKK+a6oiA+IG92ZXJmbG93Owor5ripID4gbHVrZXdhcm07CivomoogPiBtb3NxdWl0bzsKK+m5uCA+IGFsa2FsaW5lOwor5ZmqID4gYmVcLW5vaXN5Owor5ZiyID4gcmlkaWN1bGU7CivmuJsgPiBkZWNyZWFzZTsKK+WYlCA+IHRvXC12b21pdDsKK+aBqSA+IGtpbmRuZXNzOwor6ISxID4gdGFrZVwtb2ZmOwor5ra4ID4gZHJpZWRcLXVwOwor5ZaqID4gbW91cm5pbmc7CivlpZQgPiBydW5cLWZhc3Q7CivmtowgPiBzdXJnZVwtdXA7CivnpoEgPiByZXN0cmljdDsKK+a1riA+IHRvXC1mbG9hdDsKK+S6kiA+IG11dHVhbGx5Owor5rSSID4gc3ByaW5rbGU7CivmkJ4gPiB0b1wtY2xlYXI7CivmnLEgPiBjaW5uYWJhcjsKK+WfnyA+IGRpc3RyaWN0Owor5p2QID4gbWF0ZXJpYWw7Civpop0gPiBmb3JlaGVhZDsKK+WBtyA+IHRvXC1zdGVhbDsKK+S4uSA+IGNpbm5hYmFyOwor6JOJID4gaGliaXNjdXM7Civmir0gPiBkcmF3XC1vdXQ7Civku6ogPiBjZXJlbW9ueTsKK+e7jSA+IGNvbnRpbnVlOwor5LiwID4gYWJ1bmRhbnQ7CivljbggPiBsYXlcLWRvd247Civlv4YgPiByZW1lbWJlcjsKK+malCA+IHNlcGFyYXRlOwor5YePID4gZGVjcmVhc2U7CivljZMgPiBwcm9mb3VuZDsKK+eBviA+IGNhbGFtaXR5Owor6IGaID4gYXNzZW1ibGU7CivmjZ8gPiBkaW1pbmlzaDsKK+iMhCA+IGVnZ3BsYW50Owor5Yu/ID4gbXVzdFwtbm90Owor6autID4gbXVzdGFjaGU7CivpgaUgPiBmYXJcLWF3YXk7Civmq5sgPiBjb21iXC1vdXQ7CivluIEgPiBjdXJyZW5jeTsKK+WLiSA+IGVuZGVhdm9yOwor6aq4ID4gc2tlbGV0b247CivoirMgPiBmcmFncmFudDsKK+WKqiA+IHRvXC1leGVydDsKK+i0tCA+IHBhc3RlXC10bzsKK+mpmiA+IGZyaWdodGVuOwor5YilID4gc2VwYXJhdGU7CivokI0gPiBkdWNrd2VlZDsKK+aohSA+IGZpclwtdHJlZTsKK+e8qSA+IGNvbnRyYWN0Owor6IelID4gbGllXC1kb3duOwor5oWVID4gbG9uZ1wtZm9yOwor6IejID4gbWluaXN0ZXI7CivmjKEgPiBvYnN0cnVjdDsKK+iGnCA+IG1lbWJyYW5lOwor5qabID4gaGF6ZWxudXQ7Civkv4ogPiB0YWxlbnRlZDsKK+aenSA+IGJyYW5jaGVzOwor6Zm3ID4gc3VibWVyZ2U7CivkuKcgPiBtb3VybmluZzsKK+WLkiA+IHN0cmFuZ2xlOwor6Lq6ID4gbGllXC1kb3duOwor5YSqID4gc3VwZXJpb3I7CivogYogPiBzb21ld2hhdDsKK+mjviA+IGRlY29yYXRlOwor5YSAID4gY2VyZW1vbnk7CivmlpwgPiBzbGFudGluZzsKK+aWkCA+IGdyYWNlZnVsOwor5bqfID4gYWJyb2dhdGU7Civor6YgPiBkZXRhaWxlZDsKK+aQrCA+IHRyYW5zZmVyOwor5qKfID4gb3dsXC10aHVzOwor5YKYID4gdW1icmVsbGE7Civpoa8gPiBtYW5pZmVzdDsKK+S6rSA+IHBhdmlsaW9uOwor6aGVID4gbWFuaWZlc3Q7Civms5sgPiB0b1wtZHJpZnQ7CivpoY0gPiBmb3JlaGVhZDsKK+mhjCA+IGZvcmVoZWFkOwor56ymID4gaVwuZFwuXC10YWc7CivlhYEgPiB0b1wtZ3JhbnQ7Civoj7IgPiBmcmFncmFudDsKK+i3qCA+IHN0cmFkZGxlOwor5o6pID4gdG9cLWNvdmVyOwor6aCDID4gYVwtbW9tZW50Owor6ZqcID4gc2VwYXJhdGU7Civmn7QgPiBmaXJld29vZDsKK+S/ryA+IGJvd1wtZG93bjsKK+S/pSA+IHJpY2tzaGF3Owor6YK7ID4gbmVpZ2hib3I7Civnv5IgPiBwcmFjdGljZTsKK+mpviA+IHRvXC1kcml2ZTsKK+S+rSA+IGNvbXBsZXRlOwor576eID4gZGlzZ3JhY2U7Civoo6QgPiB0cm91c2VyczsKK+S8sCA+IG1lcmNoYW50Owor6Z6YID4gc2NhYmJhcmQ7Civli4MgPiBzdWRkZW5seTsKK+WSkCA+IGluc3RydWN0Owor5oGSID4gY29uc3RhbnQ7Civns58gPiBzZWRpbWVudDsKK+aJriA+IGRyZXNzXC11cDsKK+i0pCA+IHZpcnR1b3VzOwor6aWwID4gZGVjb3JhdGU7Civmm5wgPiBnbG9yaW91czsKK+mbliA+IGFsdGhvdWdoOwor5LuVID4gb2ZmaWNpYWw7CivljacgPiBsaWVcLWRvd247Civku4QgPiBzbGFudGluZzsKK+maoyA+IG5laWdoYm9yOwor56KNID4gb2JzdHJ1Y3Q7CivmmqIgPiBzbW9vdGhseTsKK+aLpiA+IG9ic3RydWN0Owor5oq8ID4gbW9ydGdhZ2U7CivmiJogPiByZWxhdGl2ZTsKK+e6jCA+IGNvbnRpbnVlOwor57m8ID4gY29udGludWU7CivnqYYgPiBtYWplc3RpYzsKK+eWhiA+IGJvdW5kYXJ5Owor6ZmlID4gc3VibWVyZ2U7CivnmrEgPiB3cmlua2xlczsKK+eVhSA+IHNtb290aGx5Owor5Zi7ID4gbWlydGhmdWw7CivnuK4gPiBjb250cmFjdDsKK+S4piA+IGVxdWFsXC10bzsKK+aYlCA+IGZvcm1lcmx5Owor57e0ID4gcHJhY3RpY2U7Civpl5ggPiBzdHJ1Z2dsZTsKK+eeqiA+IHN0YXJlXC1hdDsKK+aWpSA+IHRvXC1zY29sZDsKK+WJqiA+IHNjaXNzb3JzOwor5aeaID4gaGFuZHNvbWU7Civmjo8gPiB0YWtlXC1vdXQ7Civntq0gPiBtYWludGFpbjsKK+ivsSA+IHBlcnN1YWRlOwor57aaID4gY29udGludWU7CivntpkgPiBjb250aW51ZTsKK+mWkyA+IGludGVydmFsOwor57S5ID4gY29udGludWU7CivoipkgPiBoaWJpc2N1czsKK+aDuSA+IGlycml0YXRlOwor57C/ID4gcmVnaXN0ZXI7CivmkI0gPiBkaW1pbmlzaDsKK+iKtyA+IGFuZ2VsaWNhOwor56OBID4gbWFnbmV0aWM7Civmr4UgPiByZXNvbHV0ZTsKK+espSA+IGFcLWhhbXBlcjsKK+aLmCA+IHJlc3RyYWluOwor5LyQID4gY3V0XC1kb3duOwor56uKID4gc2VjcmV0bHk7CivpipggPiBpbnNjcmliZTsKK+aEiSA+IHBsZWFzYW50Owor56qcID4gcnVuXC1hd2F5Owor5a+oID4gc3RvY2thZGU7CivmiLsgPiBwZXJ2ZXJzZTsKK+ayqiA+IHNoYW5naGFpOwor6YecID4gY2F1bGRyb247Civll6QgPiBsYXVnaFwtYXQ7CivlqLEgPiBwbGVhc3VyZTsKK+WroyA+IGNoYXJtaW5nOwor5a6gID4gZmF2b3JpdGU7CivmhrYgPiByZW1lbWJlcjsKK+mTrSA+IGluc2NyaWJlOwor6aaoID4gZnJhZ3JhbnQ7CivmuIogPiBzdXJnZVwtdXA7CivnpoQgPiBibGVzc2luZzsKK+eqgyA+IHNlY3JldGx5Owor6aG3ID4gYVwtbW9tZW50Owor56SZID4gb2JzdHJ1Y3Q7CivmhJUgPiBzdGFydGxlZDsKK+WVoSA+IG1vcnBoaW5lOwor6LSeID4gdmlydHVvdXM7Civlm5ogPiBwcmlzb25lcjsKK+i0piA+IGFjY291bnRzOwor6YGZID4gZmFyXC1hd2F5Owor5Za7ID4gbWV0YXBob3I7Civnk7cgPiBjcm9ja2VyeTsKK+iTpiA+IHN1ZGRlbmx5Owor5rueID4gYmxvY2tcLXVwOwor6LSsID4gZGVjcmVhc2U7CivkvJ4gPiB1bWJyZWxsYTsKK+iFpSA+IHJhd1wtbWVhdDsKK+a7lCA+IG92ZXJmbG93Owor5rqFID4gc3ByaW5rbGU7CivlkrggPiB0b2dldGhlcjsKK+eWqyA+IGVwaWRlbWljOwor5ZWqID4gc3lsbGFibGU7CivmspsgPiBhYnVuZGFudDsKK+iGqCA+IHRvXC1zd2VsbDsKK+WQsSA+IGNoaXJwaW5nOwor6L2pID4gY2FycmlhZ2U7CivorqUgPiByaWRpY3VsZTsKK+iPjCA+IG11c2hyb29tOwor6KGNID4gb3ZlcmZsb3c7CivkuqggPiBzbW9vdGhseTsKK+eQkCA+IHRyaWZsaW5nOwor57uwID4gZ3JhY2VmdWw7Civoi58gPiBjYXJlbGVzczsKK+W0myA+IHRvd2VyaW5nOwor5Ye4ID4gcHJvdHJ1ZGU7CivlmqMgPiBiZVwtbm9pc3k7CivnkJsgPiB0cmVhc3VyZTsKK+WYgCA+IGJhY2tiaXRlOwor6ZOQID4gc2hhY2tsZXM7CivouIwgPiBoZXNpdGF0ZTsKK+iwlSA+IHByb2NsYWltOwor6L+4ID4gZ3VzaFwtb3V0Owor5YmUID4gcGlja1wtb3V0Owor5YaAID4gaG9wZVwtZm9yOwor56CaID4gaW5rc3RvbmU7CivmjY0gPiB3YXJkXC1vZmY7Civoh4AgPiBidXR0b2NrczsKK+WAlCA+IHN0dWJib3JuOwor5aWEID4gZXJlXC1sb25nOwor5L6lID4gYmVcLWx1Y2t5Owor5qK1ID4gYnVkZGhpc3Q7CivopKUgPiBtYXR0cmVzczsKK+aZliA+IHN1bnNoaW5lOwor5ry+ID4gb3ZlcmZsb3c7CivnlbQgPiBmYXJtbGFuZDsKK+eenyA+IGdsYXJlXC1hdDsKK+eYuCA+IGxhbWVuZXNzOwor5r6OID4gc3BsYXR0ZXI7CivmvaYgPiB0b1wtZmxvb2Q7Civmv5IgPiBhcHByb2FjaDsKK+WBjiA+IGNsaW5nXC10bzsKK+idjiA+IHNjb3JwaW9uOwor57C4ID4gd2lubm93ZXI7CivnmJ8gPiBlcGlkZW1pYzsKK+W6tiA+IG51bWVyb3VzOwor5oOmID4gdGhpbmtcLW9mOwor5pKCID4gcHV0XC1kb3duOwor6K+YID4gcXVlc3Rpb247CivmmZcgPiBwcmVcLWRhd247CivouYogPiBmb290cGF0aDsKK+eisSA+IGFsa2FsaW5lOwor6ZiJID4gY2FzdHJhdGU7Civmt4YgPiBjb25mdXNlZDsKK+iQpiA+IGVudGFuZ2xlOwor5qaGID4gZWxtXC10cmVlOwor54ydID4gYWJydXB0bHk7CivotZMgPiBjb250aW51ZTsKK+aerSA+IG93bFwtdGh1czsKK+abpiA+IHN1bmxpZ2h0Owor6ZKKID4gZW5kZWF2b3I7CivmkoUgPiBwcm90cnVkZTsKK+a4pCA+IHN3ZWxsaW5nOwor6L6YID4gd2luZGxhc3M7Civpk50gPiBhbHVtaW51bTsKK+aNiyA+IHRvXC1wbHVjazsKK+eflyA+IHN0cmFpZ2h0Owor6Jm7ID4gaG9yc2VmbHk7CivnnowgPiBkb3plXC1vZmY7Civkup8gPiB1cmdlbnRseTsKK+aQqiA+IHdhcmRcLW9mZjsKK+W+qCA+IGRvdWJ0ZnVsOwor5ZWQID4gdG9cLXRhc3RlOwor6ZWvID4gYnJhY2VsZXQ7CivliL0gPiBhbXB1dGF0ZTsKK+iXuyA+IHNwbGVuZGlkOwor5oOwID4gaW5kb2xlbnQ7Civnh5QgPiB0b1wtcm9hc3Q7Civmtp0gPiBpbnVuZGF0ZTsKK+WBlSA+IHRvZ2V0aGVyOwor6aq3ID4gc2tlbGV0b247Civnu5sgPiBkZWVwXC1yZWQ7CivntIogPiBjb25mdXNlZDsKK+mCgyA+IHByb2ZvdW5kOwor5rCvID4gY2hsb3JpbmU7CivlnY0gPiBjb2xsYXBzZTsKK+WmqSA+IGNoYXJtaW5nOwor5ZitID4gc3lsbGFibGU7Civlv5AgPiB0aW1vcm91czsKK+auoSA+IGVuY29mZmluOwor5pi1ID4gaW50aW1hdGU7Civnuq0gPiBjb25mdXNlZDsKK+S/nyA+IHdhaXRcLWZvcjsKK+ahoiA+IGhhcmR3b29kOwor6buPID4gc3RpY2tcLXRvOwor5pmPID4gcGVhY2VmdWw7Civpmr0gPiBzdXBlcmlvcjsKK+emuiA+IGRpc3RyaWN0Owor55eYID4gc21hbGxwb3g7Civmp58gPiBiZXRlbG51dDsKK+mfrSA+IHNjYWxsaW9uOwor5oi+ID4gcGVydmVyc2U7CivolKsgPiB3aXRoZXJlZDsKK+iGgiA+IGJhY2tib25lOwor5Z6gID4gYm91bmRhcnk7CivplawgPiBjYXVsZHJvbjsKK+iDqyA+IHNoaW5ib25lOwor5ZOQID4gc3lsbGFibGU7CivnobcgPiBhbGthbGluZTsKK+iHgyA+IHN3ZWxsXC11cDsKK+WyjCA+IHBlcmlsb3VzOwor54qfID4gc3R1YmJvcm47Civnjo4gPiBqaW5nbGluZzsKK+mBoiA+IGNhcmVsZXNzOwor5ZmUID4gc3lsbGFibGU7Civmu5MgPiBzZWRpbWVudDsKK+mavCA+IGFxdWlsaW5lOwor57+mID4gc2Npc3NvcnM7CivpmbIgPiBmcm9udGllcjsKK+iwtiA+IHByb3BoZWN5Owor5YG7ID4gaHVtcGJhY2s7Civpk4IgPiBwbGF0aW51bTsKK+e6myA+IGFcLWJhbm5lcjsKK+aHvyA+IHZpcnR1b3VzOwor6ZOsID4gY2hyb21pdW07CivlqIYgPiBncmFjZWZ1bDsKK+aFtSA+IGluZG9sZW50Owor6IOwID4gcGFuY3JlYXM7CivopoMgPiByZWFjaFwtdG87Civpgb0gPiBzdWRkZW5seTsKK+edviA+IHRlc3RpY2xlOwor57ycID4gZGV0YWlsZWQ7CivlgKggPiBhcnJvZ2FudDsKK+iuoyA+IG9iaXR1YXJ5Owor6ZKbID4gdGl0YW5pdW07CivmtYMgPiBzYXR1cmF0ZTsKK+aXliA+IHJvbWFudGljOwor57yZID4gcmVkXC1zaWxrOwor5ZijID4gc3lsbGFibGU7Civmh4sgPiBzcGxlbmRpZDsKK+ihviA+IGNvdmVybGV0Owor5a64ID4gaW1wZXJpYWw7CivkvZ4gPiBmbGF0dGVyeTsKK+iblCA+IHRhcGV3b3JtOwor56WcID4gYmxlc3Npbmc7CivmsIUgPiBvdmVyY29hdDsKK+awnyA+IGZsdW9yaW5lOwor5rCwID4gY3lhbm9nZW47Civpsp8gPiBzdHVyZ2VvbjsKK+WplSA+IGhhbmRzb21lOwor56GSID4gc2VsZW5pdW07CivoiKggPiBhXC1zYW1wYW47Civng4ogPiB0b1wtc21lbHQ7CivokLEgPiBkYXlcLWxpbHk7CivnlrggPiBqYXVuZGljZTsKK+mTiiA+IHRoYWxsaXVtOwor6K+CID4gZXhlZ2VzaXM7Civpm4kgPiBwaGVhc2FudDsKK+mioiA+IGx1bWlub3VzOwor6ZKPID4gYnJhY2VsZXQ7CivmoIAgPiBnYXJkZW5pYTsKK+e7lCA+IHRyb3VzZXJzOwor57y1ID4gY29udGludWU7CivmupggPiBhYnJ1cHRseTsKK+ivkiA+IGJlcXVlYXRoOwor5rCmID4gZmx1b3JpbmU7Civpop8gPiBkYXdkbGluZzsKK+eXqyA+IGVwaWxlcHN5Owor6IuLID4gYW1hcmFudGg7CivngKMgPiBzZWFcLW1pc3Q7Civnrp0gPiB0d2VlemVyczsKK+i5sCA+IGhlc2l0YXRlOwor6LWAID4gcHJvcGVydHk7Civmpa4gPiBtdWxiZXJyeTsKK+mViiA+IHR3ZWV6ZXJzOwor6YGEID4gdG9cLWh1cnJ5Owor6ZKSID4gdmFuYWRpdW07Civoi7cgPiBsaWNvcmljZTsKK+WLsCA+IHBlYWNlZnVsOwor5rC9ID4gdG9cLWZsb2F0Owor6ZKoID4gdHVuZ3N0ZW47CivmhKYgPiBjb25mdXNlZDsKK+WfuCA+IGFcLWJvcmRlcjsKK+mrgCA+IGJ1dHRvY2tzOwor5auSID4gZGF1Z2h0ZXI7CivkvJsgPiBodW1wYmFjazsKK+eZnCA+IGVyeXRoZW1hOwor56CmID4gc3RvY2thZGU7CivpuLkgPiB0aGVcLWNyb3c7Civmm5sgPiB0d2lsaWdodDsKK+anvyA+IGhpYmlzY3VzOwor6aqYID4gc3RhbGxpb247CivlupEgPiBjb3JyaWRvcjsKK+WduyA+IGFuXC1pc2xldDsKK+inqyA+IHRvXC1zdGFydDsKK+mTtSA+IGFtbW9uaXVtOwor5rCpID4gYXJnb25pdW07CivlrJYgPiBmYXZvcml0ZTsKK+WNoyA+IHdpbmVcLXBvdDsKK+mUkSA+IGFudGltb255Owor6YabID4gYWxkZWh5ZGU7Civpkr0gPiB0YW50YWx1bTsKK+egvCA+IGNvbmNyZXRlOwor54aYID4gdG9cLXN0ZWFtOwor6JOBID4gYWJ1bmRhbnQ7Civor5QgPiBldWxvZ2l6ZTsKK+eqqCA+IGFcLWNlbGxhcjsKK+agsiA+IG1hbmdyb3ZlOwor5LuzID4gc2VwYXJhdGU7CivpsqMgPiBza2lwamFjazsKK+eYvyA+IHN3ZWxsaW5nOwor6ZO3ID4gcnViaWRpdW07Civpk5UgPiBldXJvcGl1bTsKK+mSiyA+IHBvbG9uaXVtOwor56CRID4gdG9cLWdyaW5kOwor5p6eID4gZmlyXC10cmVlOwor5rSrID4gdG9cLWRpdGNoOwor5o+eID4gdG9cLWNvdmVyOwor5Z+aID4gY3J1Y2libGU7CivlnqQgPiBhbnRcLWhpbGw7CivljbogPiB3aW5lY3VwczsKK+WYjyA+IGZlbGljaXR5Owor6bK9ID4gZmxhdGZpc2g7Civpsq0gPiBtYWNrZXJlbDsKK+mSqiA+IHNjYW5kaXVtOwor6ZKrID4gZnJhbmNpdW07CivpkpAgPiBzYW1hcml1bTsKK+elkyA+IGV4b3JjaXNlOwor5qCzID4gYVwtYmFza2V0Owor5b68ID4gZnJvbnRpZXI7CivlkLIgPiBzbWlsZVwtYXQ7CivojrAgPiBjYW1waGFuZTsKK+iKtCA+IGZsdW9yZW5lOwor5LudID4gdG9nZXRoZXI7CivotZwgPiBhYnN0cnVzZTsKK+m+kyA+IGFcLWhhbHRlcjsKK+m8miA+IGRydW1taW5nOwor6bquID4gcG9ycmlkZ2U7CivpubwgPiBhbGthbGluZTsKK+m3qSA+IHBoZWFzYW50Owor6beKID4gcGhlYXNhbnQ7CivptasgPiBwaGVhc2FudDsKK+m1mSA+IGFcLXNocmlrZTsKK+m0sCA+IHRoZVwtY3JvdzsKK+mzriA+IGNoaWNrZW5zOwor6bOHID4gc3R1cmdlb247CivpsrogPiBjYXRcLWZpc2g7CivpsaMgPiBzdHVyZ2VvbjsKK+mxmCA+IHN0dXJnZW9uOwor6bC5ID4gc2tpcGphY2s7CivpsIkgPiBzdHVyZ2VvbjsKK+mwiCA+IGZsYXRmaXNoOwor6a+6ID4gYmxvd2Zpc2g7Civpr7ggPiBibG93ZmlzaDsKK+mvliA+IG1hY2tlcmVsOwor6a6QID4gYmxvd2Zpc2g7CivpraggPiBibG93ZmlzaDsKK+msrSA+IHN0cnVnZ2xlOwor6aysID4gc3RydWdnbGU7CivprKogPiBzdHJ1Z2dsZTsKK+mspiA+IHN0cnVnZ2xlOwor6aylID4gc3RydWdnbGU7CivprIsgPiBmb3JlbG9jazsKK+msgCA+IHRvXC1zaGF2ZTsKK+mrtSA+IHdoaXNrZXJzOwor6auOID4gaGlwXC1ib25lOwor6amAID4gc3VkZGVubHk7CivpqK0gPiBzdGFsbGlvbjsKK+mnviA+IHJ1blwtYXdheTsKK+mnpiA+IHRvXC1tb3VudDsKK+mnlSA+IHRvXC1kcml2ZTsKK+mmqSA+IGFyb21hdGljOwor6aafID4gZnJhZ3JhbnQ7CivpppogPiBhcm9tYXRpYzsKK+mkrCA+IHBvcnJpZGdlOwor6aSrID4gZHVtcGxpbmc7CivppKkgPiBoaWNjb3VnaDsKK+mknyA+IGxpYmF0aW9uOwor6aSZID4gdG9cLWFkb3JuOwor6aKxID4gdGFpcGhvb247CivpoaUgPiBsdW1pbm91czsKK+mhoiA+IGRhd2RsaW5nOwor6aCyID4gc3RyYWlnaHQ7Civpn64gPiBzY2FsbGlvbjsKK+mfoSA+IGdvcmdlb3VzOwor6Z+gID4ga25lZVwtcGFkOwor6Z26ID4gc3RvY2tpbmc7CivpnKggPiBjbG91ZGluZzsKK+mbniA+IGNoaWNrZW5zOwor6ZuLID4gc3VwZXJpb3I7CivpmrIgPiBzdGFsbGlvbjsKK+maqSA+IHByb2ZvdW5kOwor6Zi4ID4gZGlzdHJlc3M7CivplrkgPiBjYXN0cmF0ZTsKK+mWkiA+IHBlYWNlZnVsOwor6ZWlID4gbHV0ZXRpdW07CivpkbcgPiB0d2VlemVyczsKK+mRpSA+IGx1dGV0aXVtOwor6ZGVID4gdHVuZ3N0ZW47CivpkYogPiBjYXVsZHJvbjsKK+mQsiA+IGJyYWNlbGV0Owor6ZCHID4gdmFuYWRpdW07CivpjqIgPiB0dW5nc3RlbjsKK+mOiSA+IHRoYWxsaXVtOwor6Y2pID4gbm9iZWxpdW07CivpjZogPiBmcm9udGxldDsKK+mMkiA+IGFjdGluaXVtOwor6YuBID4gYWx1bWludW07CivpiqwgPiBzaGFja2xlczsKK+mKqiA+IGV1cm9waXVtOwor6YqoID4gYW1tb25pdW07CivpiqMgPiBydWJpZGl1bTsKK+mKjSA+IGFcLXNpY2tsZTsKK+mJuyA+IGNocm9taXVtOwor6YmtID4gdGFudGFsdW07CivpiZEgPiBwbGF0aW51bTsKK+mJiCA+IHRoYWxsaXVtOwor6YmGID4gdHJlYXN1cmU7CivpiKogPiBicmFjZWxldDsKK+mIpyA+IHNjYW5kaXVtOwor6YimID4gdGl0YW5pdW07CivpiIEgPiBmcmFuY2l1bTsKK+mHqSA+IHZhbmFkaXVtOwor6YenID4gYnJhY2VsZXQ7Civph6QgPiBzYW1hcml1bTsKK+mHoSA+IGNhdWxkcm9uOwor6YeZID4gcG9sb25pdW07Civph5cgPiBlbmRlYXZvcjsKK+mGqSA+IHNlZGltZW50Owor6YaGID4gd2luZVwtY3VwOwor6YaDID4gbWFyaW5hdGU7CivphbIgPiBoYW5nb3ZlcjsKK+mEsCA+IG5laWdoYm9yOwor6YSIID4gc2xpcHBlcnM7CivpgoUgPiBoZXNpdGFudDsKK+i/uyA+IHRvXC1zaGlmdDsKK+i9iiA+IGF4bGVcLXRpcDsKK+i9hiA+IHdpbmRsYXNzOwor6LytID4gZmxleGlibGU7CivovKwgPiBhXC1oZWFyc2U7Civou50gPiBheGxlXC10aXA7Civouq0gPiB0b1wtZGVsYXk7CivoupUgPiBoZXNpdGF0ZTsKK+i5viA+IHRvXC1zcXVhdDsKK+i5pyA+IHRvXC1zcG9pbDsKK+i4piA+IHRoZVwtc2hpbjsKK+i3hSA+IGNhcmVsZXNzOwor6LeCID4gY3JlZXBpbmc7CivotawgPiBkZWVwXC1yZWQ7CivotJIgPiB2aXJ0dW91czsKK+izviA+IGFic3RydXNlOwor6LOsID4gYWNjb3VudHM7Civos6EgPiBjb250aW51ZTsKK+iytiA+IGRlY3JlYXNlOwor6LKyID4gcHJvcGVydHk7CivosY4gPiB2ZXJ0aWNhbDsKK+iuliA+IHByb3BoZWN5Owor6K25ID4gdG9cLXNob3V0Owor6K2cID4gcmVnaXN0ZXI7CivorZQgPiBldWxvZ2l6ZTsKK+itjyA+IHJpZGljdWxlOwor6Ky/ID4gcmlkaWN1bGU7CivorLwgPiB0b1wtc2hvdXQ7Civoq60gPiBwcm9jbGFpbTsKK+irhiA+IHRvXC1jaGVhdDsKK+ipkiA+IGJlcXVlYXRoOwor6KmLID4gdG9cLWN1cnNlOwor6KmKID4gcGxlYXNpbmc7CivoqYEgPiBleGVnZXNpczsKK+iogyA+IG9iaXR1YXJ5Owor6KW2ID4gaWdub3JhbnQ7CivopasgPiByYWluY29hdDsKK+iljyA+IHJhaW5jb2F0Owor6KSyID4gdHJvdXNlcnM7CivopIwgPiB0cm91c2VyczsKK+ijryA+IGNvdmVybGV0Owor6KCNID4gc2NvcnBpb247CivonbEgPiBob3JzZWZseTsKK+idnyA+IGhlZGdlaG9nOwor6J2PID4gXChpbnNlY3RcKTsKK+icsSA+IFwoaW5zZWN0XCk7CivonJYgPiB0YXBld29ybTsKK+iasyA+IGFudFwtZWdnczsKK+iamCA+IHRhcGV3b3JtOwor6JqUID4gYW50XC1lZ2dzOwor6Ja4ID4gZHVja3dlZWQ7CivoloYgPiB0b1wtY292ZXI7CivolaMgPiBoaWJpc2N1czsKK+iUiSA+IGVhcnRoXC11cDsKK+iRliA+IGZvbGxpY2xlOwor6IuQID4gc2VxdWVuY2U7CivoiakgPiB0aG9sZXBpbjsKK+iJjCA+IHRvXC1jYXVsazsKK+iGtSA+IHBhbmNyZWFzOwor6ISwID4gdGhlXC1uZWNrOwor6ISrID4gdGFrZVwtb2ZmOwor6ISbID4gc2hpbmJvbmU7Civog64gPiB0b1wtc3dlbGw7CivogqggPiB0b1wtc3dlbGw7Civogo8gPiBjb3B1bGF0ZTsKK+iAjyA+IHdoaXNrZXJzOwor57+sID4gcGhlYXNhbnQ7Civnv6sgPiBjYXJlbGVzczsKK+e9hyA+IGFcLWdvYmxldDsKK+e8tyA+IGxheVwtZG93bjsKK+e6mCA+IGNvbnRpbnVlOwor57mWID4gdW1icmVsbGE7CivnuL8gPiBzdHJlYW1lcjsKK+e4tCA+IHRvd1wtbGluZTsKK+e4nSA+IGRldGFpbGVkOwor57iJID4gcmVkXC1zaWxrOwor57iIID4gZW50YW5nbGU7Civnt7sgPiBkZWxpY2F0ZTsKK+e2vSA+IGdyYWNlZnVsOwor57avID4gdG9cLWJyYWlkOwor57aqID4gZGFya1wtcmVkOwor57W7ID4gbW91cm5pbmc7CivntbMgPiBkZWVwXC1yZWQ7CivntZ0gPiB0cm91c2VyczsKK+e0niA+IGFcLWZyaW5nZTsKK+e0nCA+IGNvbmZ1c2VkOwor57GjID4gYm93XC1jYXNlOwor57CsID4gXChiYW1ib29cKTsKK+eugiA+IFwoYmFtYm9vXCk7Civnq6IgPiB3YWl0XC1mb3I7Civnq4QgPiBydW5cLWF3YXk7Civnp48gPiB0b1wtd2FzdGU7Civnpb8gPiBibGVzc2luZzsKK+elvCA+IGxpYmF0aW9uOwor56OfID4gbWVkaW9jcmU7Civnoo8gPiBjb2xvdXJlZDsKK+ehryA+IGlua3N0b25lOwor56C5ID4gYXN0YXRpbmU7CivnoLUgPiBzeWxsYWJsZTsKK+efiyA+IHRvXC1zdGFyZTsKK+eekyA+IHRvXC1zbGVlcDsKK+edjyA+IGJlXC10aXJlZDsKK+edhSA+IGJpZ1wtZXllZDsKK+ebrCA+IHNhbHRcLXBpdDsKK+ebmSA+IGFcLWJhc2tldDsKK+eanSA+IGx1bWlub3VzOwor55mtID4gc3dlbGxpbmc7CivnmZIgPiBnZXRcLXdlbGw7CivnmY4gPiBlcGlsZXBzeTsKK+eZiCA+IGFicm9nYXRlOwor55mDID4gd2Vha25lc3M7CivnmYAgPiBqYXVuZGljZTsKK+eYvCA+IHNpY2tuZXNzOwor55i2ID4gdG9cLWNvdWdoOwor55iwID4gc2Nyb2Z1bGE7CivnmIkgPiBnZXRcLXdlbGw7CivnlocgPiBmYXJtbGFuZDsKK+eVuiA+IGJvdW5kYXJ5Owor55SvID4gcGVhY2VmdWw7CivnlKEgPiBhYnVuZGFudDsKK+eTqSA+IGtpbG93YXR0Owor55OnID4gZGVjYWdyYW07CivnkpogPiBzcGxlbmRpZDsKK+eQqyA+IG9ybmFtZW50Owor54+3ID4gXC8yXC1wclwtc3Q7Civnj6QgPiB0cmVhc3VyZTsKK+ePjiA+IHByZWNpb3VzOwor54+MID4gb3JuYW1lbnQ7CivnjZggPiBjb2xsYXBzZTsKK+eKtSA+IHJlc29sdXRlOwor54qrID4gcHJvdHJ1ZGU7Civnio4gPiB0aGVcLXplYnU7CivniocgPiBydW5cLWZhc3Q7CivnibMgPiBcKGJvdmluZVwpOwor54akID4gXChwZXJzb25cKTsKK+eFkCA+IFwocGVyc29uXCk7CivnhIwgPiB0b1wtbGlnaHQ7CivngqQgPiBpbGx1bWluZTsKK+eBkSA+IHNwcmlua2xlOwor54CwID4gb3ZlcmZsb3c7CivngKEgPiBzbGlwcGVyeTsKK+a+viA+IHNsaXBwZXJ5Owor5r6xID4gc2VkaW1lbnQ7CivmvocgPiBpbnVuZGF0ZTsKK+a9lyA+IGZyaWVuZGx5Owor5r2OID4gcmlwcGxpbmc7Civmu6wgPiBzaGFuZ2hhaTsKK+a7gyA+IHN3ZWxsaW5nOwor5rqrID4gbHVrZXdhcm07CivmuaIgPiBiYXRocm9vbTsKK+a4lSA+IHN1cmdlXC11cDsKK+a1uSA+IHNhdHVyYXRlOwor5rOQID4gdG9cLXdyaXRlOwor5rKNID4gZnJlZXppbmc7CivmsL4gPiBvdmVyZmxvdzsKK+awrCA+IGFyZ29uaXVtOwor5rCJID4gcmVzdGxlc3M7Civmr74gPiBhXC1jb2Fyc2U7Civmr7sgPiB0b1wtbW91bHQ7Civmr7cgPiByZXN0bGVzczsKK+auvSA+IG1peGVkXC11cDsKK+auryA+IGVuY29mZmluOwor5q6XID4gc2lja25lc3M7CivmrJsgPiBhXC1oYW5kbGU7Civmq4MgPiBjdXBib2FyZDsKK+aqvyA+IG11bGJlcnJ5Owor5qqzID4gYmV0ZWxudXQ7CivmqJogPiBhXC1wdWxsZXk7CivmpaggPiBoYXJkd29vZDsKK+aloSA+IGVsbVwtdHJlZTsKK+akhCA+IHRvXC1ncmFmdDsKK+aisSA+IGRvb3JzaWxsOwor5qKUID4gZ2FyZGVuaWE7Civmn6QgPiBoYXd0aG9ybjsKK+afhSA+IGZsb3VyaXNoOwor5p67ID4gbG9uZ1wtb2FyOwor5puGID4gY2FsZW5kYXI7CivmmrEgPiBpbnRpbWF0ZTsKK+aapiA+IGNhbGVuZGFyOwor5pqgID4gZGF5YnJlYWs7CivmmokgPiBzdW5zaGluZTsKK+aZpyA+IGRheWJyZWFrOwor5pmbID4gc3VubGlnaHQ7CivmmKQgPiBzdW5zaGluZTsKK+aYoSA+IGxvbmdcLWRheTsKK+aXmCA+IGFcLXBlbm5vbjsKK+aWviA+IGFcLXBlbm5vbjsKK+aWiCA+IGxlYXJuaW5nOwor5pWqID4gdG9cLXdlaWdoOwor5pWgID4gdG9cLXdlaWdoOwor5pSpID4gb2JzdHJ1Y3Q7CivmlJ4gPiB0b1wtc3BsaXQ7CivmlJQgPiBvYnN0cnVjdDsKK+aTqSA+IHRvXC1zdGFpbjsKK+aTiyA+IG9ic3RydWN0Owor5pKPID4gcHVsbFwtb3V0Owor5pG3ID4gdG9cLWtub2NrOwor5pC1ID4gd2lwZVwtb2ZmOwor5pCyID4gdG9cLXNlaXplOwor5pCvID4gdGFrZVwtb3V0Owor5pCLID4gdG9cLXRodW1wOwor5o++ID4gd2lwZVwtb2ZmOwor5o+wID4gcG9rZVwtb3V0Owor5o+iID4gdG9cLXNlaXplOwor5o+cID4gY292ZXJcLXVwOwor5o+MID4gdG9cLXNoYWtlOwor5o65ID4gdG9cLXBsdWNrOwor5o2mID4gdG9cLXNlaXplOwor5ouRID4gdG9cLWNsYW1wOwor5omeID4gd2FyZFwtb2ZmOwor5omFID4gZ2F0ZVwtYmFyOwor5oeVID4gc2F0aWF0ZWQ7CivmhqogPiBjb21wb3NlZDsKK+aGliA+IGNhdXRpb3VzOwor5oaSID4gY29uZnVzZWQ7Civmha0gPiBjYXV0aW91czsKK+aFqyA+IHRvXC1hbGFybTsKK+aFhSA+IGFnaXRhdGVkOwor5oWBID4gZGlzaG9ub3I7Civmg70gPiBjb25mdXNlZDsKK+aDuCA+IHRyb3VibGVkOwor5oObID4gY29uZnVzZWQ7Civmg5QgPiBjaGVlcmZ1bDsKK+aDhCA+IGxvbmdcLWZvcjsKK+aCpCA+IGFnaXRhdGVkOwor5oGdID4gY2FyZWZyZWU7CivmgZQgPiBjaGVlcmZ1bDsKK+aBjCA+IHRvXC13b3JyeTsKK+aBhiA+IGNvbnN0YW50Owor5b+uID4gc3R1YmJvcm47Civlvq8gPiB3YWl0XC1mb3I7CivlvbggPiByZXN0bGVzczsKK+W9iiA+IHN0dWJib3JuOwor5byiID4gYm93XC1jYXNlOwor5bukID4gdG9cLXBsYWNlOwor5buhID4gY29ycmlkb3I7CivlursgPiBudW1lcm91czsKK+W6rCA+IGFidW5kYW50Owor5bmsID4gY292ZXJcLXVwOwor5bmjID4gY3VycmVuY3k7CivluLUgPiByZW1uYW50czsKK+W4sSA+IGNvdmVyXC11cDsKK+W2rSA+IGVsZXZhdGVkOwor5baSID4gdG93ZXJpbmc7Civls78gPiBtb3VudGFpbjsKK+WyiiA+IGZvb3RoaWxsOwor5bG8ID4gbW91bnRhaW47Civlr7YgPiB0cmVhc3VyZTsKK+WvsyA+IHRyZWFzdXJlOwor5a+aID4gcHJlY2lvdXM7CivlrqwgPiBhcmNoaXZlczsKK+WtgyA+IHRyb3VibGVkOwor5aysID4gbWlzdHJlc3M7CivlrKEgPiBkYXVnaHRlcjsKK+WsnSA+IGRlbGljYXRlOwor5ayIID4gZ3JhY2VmdWw7Civlq78gPiB0cmFucXVpbDsKK+WrtSA+IGNoYXJtaW5nOwor5aquID4gaGFuZHNvbWU7Civlqb4gPiBoYW5kc29tZTsKK+WoryA+IHBsZWFzdXJlOwor5aibID4gcGxlYXN1cmU7Civlp6YgPiBhZHVsdGVyeTsKK+WnmSA+IGNvbmNlaXZlOwor5aWhID4gYXJyb2dhbnQ7CivloJ0gPiBjcnVjaWJsZTsKK+WfvCA+IGhlYWRsYW5kOwor5Z+AID4gbGV0XC1kb3duOwor5Z2uID4gcGxhdGZvcm07CivlnKUgPiBtdXNocm9vbTsKK+WbriA+IGludmVpZ2xlOwor5ZuCID4gYmVcLW5vaXN5Owor5Zq7ID4gYmVcLW5vaXN5Owor5ZilID4gdG9cLXdhc3RlOwor5ZeDID4gdG9cLWZsdXRlOwor5ZapID4gbWV0YXBob3I7CivllpMgPiBjaGlycGluZzsKK+WWjCA+IHN5bGxhYmxlOwor5ZW9ID4gdG9cLXNwZWFrOwor5ZWHID4gdG9cLXN0YWxrOwor5ZSlID4gYVwtYnVuZGxlOwor5ZOiID4gc3lsbGFibGU7CivlkrogPiBtYWplc3RpYzsKK+WSnCA+IHRvXC1zY29sZDsKK+WShyA+IGZyYWdyYW50Owor5ZGgID4gdG9cLXNwdXJ0Owor5Y+SID4gb2JlZGllbnQ7CivljrUgPiBhXC1zcHJpbmc7Civljb0gPiBwcm9tcHRseTsKK+WNvCA+IHVuc3RlYWR5Owor5Y25ID4gc3ltcGF0aHk7Civli5QgPiBlbmRlYXZvcjsKK+WLjCA+IHRvXC1sYWJvcjsKK+WKuyA+IGZsdXJyaWVkOwor5YqZID4gYVwtZGl2aWRlOwor5YqKID4gYW1wdXRhdGU7CivliZ8gPiB0b1wtcHJpY2s7CivliKcgPiBkaXNhc3RlcjsKK+WHpSA+IHRvXC1kd2VsbDsKK+WHhSA+IGRyaWVkXC11cDsKK+WGtCA+IGZyZWV6aW5nOwor5YaxID4gZnJlZXppbmc7CivlhqggPiBhYnVuZGFudDsKK+WGnSA+IHN1aXRhYmxlOwor5YaHID4gaGF2ZVwtbm90Owor5YWjID4gZGVjaWdyYW07CivlhZsgPiBraWxvZ3JhbTsKK+WFmSA+IGRlY2FncmFtOwor5YSpID4gY29tcGxldGU7Civlg6UgPiBiZVwtbHVja3k7Civlg4MgPiBwcmVwYXJlZDsKK+WDgiA+IGh1bXBiYWNrOwor5YK0ID4gaHVtcGJhY2s7CivlgqIgPiBzdHViYm9ybjsKK+WCniA+IHVuc3RlYWR5Owor5YKMID4gdG9cLWN1cnNlOwor5YG4ID4gdG9cLXN0ZWFsOwor5YGyID4gdGFsZW50ZWQ7CivlgasgPiB3YWl0XC1mb3I7CivlgZ8gPiBhZ2l0YXRlZDsKK+S/kyA+IHN0cmFpZ2h0Owor5L6rID4gZmxhdHRlcnk7CivkvbQgPiBhXC1zZWNvbmQ7CivkvaogPiBoZXNpdGF0ZTsKK+S9iyA+IGNvbnRpbnVlOwor5L2AID4gcmVzZW1ibGU7CivkvIMgPiBoYW5kc29tZTsKK+S6uSA+IHByb2dyZXNzOwor5Lm1ID4gdG9cLWVudGVyOwor5LayID4gdGhlXC1lZGdlOwor5LWyID4gcmF3XC1oZW1wOwor5LWmID4gdG9cLXN0YWluOwor5LWaID4ga2FvbGlhbmc7CivktZMgPiB0aGVcLW1vbGU7CivktYkgPiBhYnV0aWxvbjsKK+S0uyA+IGRyeVwtZm9vZDsKK+S0qyA+IGFudGVsb3BlOwor5LSaID4gc2FsdHBvbmQ7CivktJcgPiBhXC1zaHJpa2U7Civks7sgPiBhblwtZWFnbGU7Civks6cgPiBhblwtZWFnbGU7CivkspYgPiBiaWdcLWZpc2g7Civkso4gPiB0b1wtc3BvaWw7CivksKcgPiBzaW5pc3RlcjsKK+SwnyA+IHRoZVwtc291bDsKK+SvqiA+IGJpZ1wtaGVhZDsKK+SvmiA+IHRoZVwtcmliczsKK+SvlyA+IGJ1dHRvY2tzOwor5K+QID4gc2hpbmJvbmU7Civkr44gPiBzaGluYm9uZTsKK+SviSA+IHRvXC1jaG9rZTsKK+SvgiA+IG51bWVyb3VzOwor5K2xID4gYVwtbGl0dGxlOwor5Ky8ID4gc2F0aWF0ZWQ7CivkrLkgPiBhXC1zaWNrbGU7CivkrIkgPiBob3RcLXdpbmQ7Civkq7cgPiB0aGVcLWpvd2w7Civkq5sgPiByZWNrbGVzczsKK+SrlyA+IHJlY2tsZXNzOwor5KuDID4gdGhlXC1saXBzOwor5Kq2ID4gdGhlXC1jaGluOwor5KqpID4gdG9cLWNoYW50Owor5KqcID4gYVwtc2hpZWxkOwor5KqRID4gdG9cLXN0aWNrOwor5KqKID4gYVwtaGFsdGVyOwor5KqFID4gYVwtcXVpdmVyOwor5KqBID4gYVwtaGFsdGVyOwor5Km0ID4gYVwtcXVpdmVyOwor5KmuID4gYVwtcXVpdmVyOwor5KmgID4gYVwtZ2lyZGxlOwor5KmJID4gdGhlXC1mYWNlOwor5KmIID4gYVwtcGx1bXB5Owor5Ki8ID4gZHllc3R1ZmY7Civkp6sgPiBhXC10cmVuY2g7Civkp5UgPiBib3VuZGFyeTsKK+SngSA+IHRvXC1sZWF2ZTsKK+SmpSA+IHRvXC1sZWFybjsKK+SluCA+IGFcLXNpY2tsZTsKK+SlrSA+IGV2aWRlbmNlOwor5KWlID4gYVwtc2lja2xlOwor5KWMID4gZXZpZGVuY2U7CivkpYsgPiB0b1wtc21lbHQ7CivkpL8gPiB0b1wtY2FydmU7CivkpLYgPiBhXC1oYW1tZXI7CivkpLMgPiBhXC1taXJyb3c7CivkpLAgPiB0b1wtc21lbHQ7CivkpKsgPiBhXC1jaGlzZWw7CivkpKggPiB0b1wtc3BsaXQ7CivkpJ0gPiBicmFjZWxldDsKK+SkkCA+IHRvXC1kcmluazsKK+SirSA+IHRvXC1jb3ZlcjsKK+SikCA+IHRvXC1nb1wtdG87CivkooUgPiBkYXlicmVhazsKK+ShrSA+IGFcLWhlYXJzZTsKK+SgviA+IHRvXC1kb2RnZTsKK+SguSA+IHNoaW5ib25lOwor5KCsID4gaW5zb21uaWE7CivkoJ4gPiB3cmlua2xlZDsKK+SgkCA+IHRvXC1zcXVhdDsKK+SggyA+IHRvXC1zcXVhdDsKK+SggSA+IHRvXC1nb1wtdXA7Civkn7ggPiB0aGVcLWNhbGY7Civkn7YgPiB0b1wtc3F1YXQ7Civkn7QgPiB0b1wtc2hha2U7Civkn5QgPiB0b1wtZ29cLXRvOwor5J64ID4gdG9cLXJlYWNoOwor5J6uID4gdG9cLWNyYXdsOwor5J6fID4gdG9cLXByZXNzOwor5J6cID4gdG9cLXJlYWNoOwor5J6UID4gZGVlcFwtcmVkOwor5J6TID4gZGVlcFwtcmVkOwor5J2oID4gdmlydHVvdXM7CivknYIgPiB0b1wtZXJlY3Q7CivknKwgPiBhXC1jYXZlcm47CivknJggPiB0b1wtZ3VhcmQ7CivknJAgPiB0b1wtbGliZWw7CivknIMgPiB0b1wtYmxhbWU7Civkm6QgPiB1cmdlbnRseTsKK+SbkiA+IHRvXC1hcmd1ZTsKK+SbhyA+IHRvXC1sYXVnaDsKK+SbhiA+IHRvXC1jdXJzZTsKK+SatyA+IHRvXC10cmVhdDsKK+SaryA+IHRvXC1xdWVsbDsKK+SamyA+IHJlZ3VsYXRlOwor5JirID4gb2xkXC1yYWdzOwor5JicID4gYVwtbmFwa2luOwor5JiZID4gdG9cLWd1YXJkOwor5JiYID4gdG9cLWRyaXZlOwor5JiUID4gdG9cLXZvbWl0Owor5JiPID4gc3ltcGF0aHk7CivkmIkgPiBzaWxrd29ybTsKK+SYhyA+IG1vc3F1aXRvOwor5Je6ID4gY3JlZXBpbmc7Civkl54gPiBzaWxrd29ybTsKK+SXnSA+IHNpbGt3b3JtOwor5JeYID4gYVwtd2VldmlsOwor5JeIID4gYVwtZ2FkZmx5Owor5JeHID4gdGhlXC10b2FkOwor5Ja7ID4gZXBoZW1lcmE7CivklqYgPiBzY29ycGlvbjsKK+SWpCA+IHRvXC1jcmVlcDsKK+SWnyA+IGFcLWdhZGZseTsKK+SWmyA+IG9mXC10aWdlcjsKK+SWjyA+IHRvXC1kd2VsbDsKK+SWjCA+IG9mXC10aWdlcjsKK+SWiiA+IG9mXC10aWdlcjsKK+SWgCA+IGFuZ2VsaWNhOwor5JWvID4gZHVja3dlZWQ7CivklYEgPiBzdWRkZW5seTsKK+SUvSA+IHRvXC1jb3ZlcjsKK+SUkCA+IGRlbGljYXRlOwor5JOZID4gc2xhbnRpbmc7Civkk5UgPiBwb2x5Z2FsYTsKK+STjCA+IHBvbHlnYWxhOwor5JKzID4gYVwtZmxvd2VyOwor5JKDID4gdG9cLWJ1aWxkOwor5JG7ID4gY292ZXJpbmc7CivkkZggPiB0b1wtcG91bmQ7CivkkYMgPiBkaW1cLW1vb247CivkkJIgPiBub3RcLWZpbmU7Civkj74gPiB0b1wtc3dlbGw7Civkj7ogPiB0b1wtc3dlbGw7Civkj58gPiBmYXRcLW1lYXQ7Civkj4kgPiB0b1wtd2F2ZXI7Civkj4ggPiB0b1wtdW5pdGU7CivkjrogPiB0b1wtbGVhcm47CivkjrIgPiBlYXJcLWxvYmU7Civkjq4gPiB0b1wtcGxhbnQ7CivkjqsgPiB0b1wtcGxhbnQ7CivkjqMgPiBhXC1wbG91Z2g7CivkjLcgPiBhXC10aHJlYWQ7CivkjK8gPiBhXC10cnViYW47CivkjK0gPiByYXdcLWhlbXA7CivkjKwgPiBzdHJhaWdodDsKK+SMqyA+IGFcLWhhd3NlcjsKK+SMmiA+IHdyaW5rbGVzOwor5IyDID4gcmF3XC1zaWxrOwor5IuhID4gdG9cLXJlbGF4Owor5IuTID4gd3JpbmtsZWQ7Civki5IgPiB0b1wtcmVsYXg7Civki4MgPiBzdGluZ2luZzsKK+SKuCA+IHRvXC10d2lzdDsKK+SKnSA+IHRvXC1leGlsZTsKK+SKgSA+IGxlYXZpbmdzOwor5Im7ID4gcmVkXC1yaWNlOwor5ImxID4gYVwtY3JhZGxlOwor5ImuID4gdG9cLXBsYW50Owor5ImqID4gdG9cLWdyaW5kOwor5ImSID4gYVwtd2lubm93Owor5Ii2ID4gYW5cLWFycm93Owor5IirID4gYVwtaGF3c2VyOwor5IexID4gYVwtaGF3c2VyOwor5IeMID4gdG9cLXN0YW5kOwor5Ia4ID4gc3BhY2lvdXM7CivkhoQgPiBhXC1idW5kbGU7CivkhbIgPiB0b1wtcGxhbnQ7CivkhaggPiBmcmFncmFudDsKK+SFpCA+IHRvXC1wbGFudDsKK+SFkCA+IGFcLWJ1bmRsZTsKK+SEgCA+IGNhbGFtaXR5Owor5IO6ID4gdG9cLWdyaW5kOwor5IORID4gc3BlY2tsZXM7Civkg4UgPiBkeWVzdHVmZjsKK+SCuyA+IHRvXC1ibG9jazsKK+SBpSA+IHRvXC1ibGluazsKK+SBnCA+IGJpZ1wtZXllczsKK+SBgiA+IGJpZ1wtZXllczsKK+SAtSA+IHRvXC1ibGluazsKK+SAiCA+IGFcLXZlc3NlbDsKK+O/oiA+IHRvXC1zaGluZTsKK+O/oSA+IGFcLWhlbG1ldDsKK+O/miA+IHNpY2tuZXNzOwor47+IID4gYW5cLXVsY2VyOwor47+FID4gcmluZ3dvcm07CivjvrggPiBhXC1zY2FiYnk7Civjvq4gPiBqYXVuZGljZTsKK+O+jiA+IHNpY2tuZXNzOwor476NID4gZGlzZWFzZXM7CivjvowgPiByaW5nd29ybTsKK+O+hCA+IHRvXC1saWJlbDsKK+O9uyA+IGRpc2Vhc2VzOwor4725ID4gdG9cLWZhaW50Owor472QID4gZnJhZ3JhbnQ7Civju4QgPiB0cmVhc3VyZTsKK+O6miA+IGFuXC1vdHRlcjsKK+O6hyA+IGFcLXdhcmRlbjsKK+O5uCA+IHRoZVwtbGlvbjsKK+O5lSA+IGluZmVyaW9yOwor47i8ID4gdGhlXC16ZWJ1Owor47imID4gbXV0dWFsbHk7CivjuJ8gPiB0b1wtY292ZXI7CivjuJ0gPiBhXC1zaG92ZWw7CivjuJUgPiB0b1wtc2VpemU7CivjuIkgPiB0b1wtYWRhcHQ7Civjt4YgPiB0aHJpdmluZzsKK+O3gCA+IHNvbGl0YXJ5Owor47a8ID4gdmVyeVwtaG90Owor47aEID4gdG9cLXN0YWluOwor47WtID4gYW5cLWlzbGV0Owor47WmID4gc2xpcHBlcnk7CivjtLYgPiB0b1wtd2F0ZXI7CivjtLMgPiB0b1wtc21lYXI7CivjtIogPiBhblwtYWJ5c3M7CivjtIggPiBzZWRpbWVudDsKK+OzqyA+IHJlcGVhdGVkOwor47OgID4gc2xpcHBlcnk7Civjs5IgPiBzdGF0dXRlczsKK+OyuCA+IGRyaWVkXC11cDsKK+OytyA+IG5pdHJvZ2VuOwor47K2ID4gY2hsb3JpbmU7CivjsrMgPiB0b1wtdG91Y2g7Civjsb8gPiB0aGVcLWh1c2s7CivjsbogPiB0aGVcLXNraW47CivjsbIgPiB3aXRoZXJlZDsKK+OxoiA+IHRoZVwtZGVhZDsKK+OxoCA+IHdpdGhlcmVkOwor47GXID4gYVwtYnJlYXRoOwor47GFID4gdmlydHVvdXM7CivjsYMgPiB0b1wtZHJpbms7CivjsLogPiB0b1wtZHJpbms7CivjsLkgPiB0b1wtbGF1Z2g7CivjsK0gPiBwbGVhc3VyZTsKK+OwpyA+IHRvXC1kcmluazsKK+OwoyA+IHRvXC12b21pdDsKK+OwoCA+IHRvXC1jb3ZldDsKK+OwnSA+IHRvXC1jb3VnaDsKK+OvsCA+IHRvXC1wbGFudDsKK+OurSA+IGFcLWNhc2tldDsKK+OugSA+IGdhcmRlbmlhOwor462ZID4gYVwtaGFtbWVyOwor462KID4gdG9cLXNwbGl0Owor46ywID4gYVwtbW9tZW50Owor46ynID4gYVwtY29sbGFyOwor46yiID4gc3Vuc2hpbmU7CivjrKEgPiBzdW5zaGluZTsKK+OsmSA+IHN1bnNoaW5lOwor46yXID4gc3Vuc2hpbmU7CivjrIwgPiBzdW5zaGluZTsKK+OrvSA+IGRhcmtuZXNzOwor46u7ID4gc3VubGlnaHQ7Civjqr8gPiB0b1wtYnJlYWs7CivjqqEgPiB0b1wtcXVlbGw7CivjqpMgPiBkaXNhc3RlcjsKK+OqkCA+IHVuc3RhYmxlOwor46qNID4gc3VkZGVubHk7CivjqoMgPiB0b1wtdGh1bXA7CivjqoIgPiB1bnN0YWJsZTsKK+OqgCA+IHRvXC1lbnRlcjsKK+OpvyA+IHVuc3RhYmxlOwor46m0ID4gdG9cLXNlaXplOwor46moID4gdG9cLWNyYWNrOwor46mTID4gdG9cLXdvdW5kOwor46mBID4gdG9cLWtub2NrOwor46i5ID4gdG9cLWNyYWNrOwor46ixID4gdG9cLXNoYWtlOwor46iqID4gdG9cLXNoYWtlOwor46igID4gdG9cLXNtZWFyOwor46ifID4gdG9cLXRvdWNoOwor46iUID4gdG9cLXNoYWtlOwor46iTID4gdG9cLWNsb3NlOwor76iQID4gY2VtZXRlcnk7CivjqJEgPiB0b1wtY291bnQ7CivjqIggPiB0b1wtY3Jvd2Q7CivjqIEgPiB0b1wtdGhyb3c7Civjp7UgPiB0b1wtZXhhY3Q7Civvp7EgPiBuZWlnaGJvcjsKK+OnsiA+IHRvXC1zaGFrZTsKK+OnsSA+IHRvXC1icmluZzsKK+OnrCA+IHRvXC1yYWlzZTsKK++nnyA+IGZvb3R3ZWFyOwor46eBID4gdG9cLWNsb3NlOwor76a+ID4gY29uc2lkZXI7Civjpr8gPiBhXC13aW5kb3c7CivvpqQgPiB0b1wtdHdpc3Q7CivjpqUgPiB0YWxlbnRlZDsKK++moyA+IHRoaW5rXC1vZjsKK+OmpCA+IHZpcnR1b3VzOwor76aWID4gcHJhY3RpY2U7CivjppcgPiBkaWxpZ2VudDsKK++miyA+IGNhbGVuZGFyOwor46aJID4gdmlydHVvdXM7CivjpbAgPiBtb3VybmZ1bDsKK++lrSA+IHByb3ZpbmNlOwor46WqID4gZGlsaWdlbnQ7CivvpZ4gPiBjaW5uYWJhcjsKK++lkiA+IHN0cmFuZ2xlOwor46WDID4gbW91cm5mdWw7CivjpYEgPiBtb3JhbGl0eTsKK++kvCA+IGJsZXNzaW5nOwor46SyID4gdG9cLXRoaW5rOwor46SuID4gYW5cLWVycm9yOwor76SoID4gY29ycmlkb3I7CivjpKYgPiBtb3VybmZ1bDsKK+OkpCA+IG1vdXJuZnVsOwor46SPID4gZ3JpZXZvdXM7CivvpIYgPiBzZW50ZW5jZTsKK+OjsCA+IHRvXC1zaGFrZTsKK+OjqyA+IHRoZVwtaGVlbDsKK+OjniA+IHRvXC13YWxraTsKK+OjiyA+IGNpbm5hYmFyOwor46OEID4gcG93ZXJmdWw7CivjorQgPiB0aGVcLXdlc3Q7CivjoqkgPiB0b1wtc2hvb3Q7CivjooUgPiBhXC1zaGllbGQ7CivjobMgPiBtb3VudGFpbjsKK+OhqSA+IGFcLWdpcmRsZTsKK+OhnSA+IGFcLW5hcGtpbjsKK+OhliA+IHRvXC1jb3ZlcjsKK+OguSA+IGFcLXR1cmJhbjsKK+OgtSA+IGFcLXR1cmJhbjsKK+OgiiA+IGFcLXJ1Z2dlZDsKK+OgiSA+IG1vdW50YWluOwor46CFID4gdG9cLWNvdmVyOwor45+RID4gbW91bnRhaW47Civjnr0gPiBtb3VudGFpbjsKK+OetyA+IGx1eHVpYW50Owor456RID4gdGhlXC10YWlsOwor456JID4gYmlnXC1mb290Owor456IID4gYmlnXC1mb290Owor452yID4gdG9cLXNsZWVwOwor452uID4gdG9cLWV4aWxlOwor452tID4gdG9cLWF3YWtlOwor452YID4gaGFybW9ub3k7CivjnZIgPiB0b1wtZHdlbGw7CivjnY0gPiB0b1wtd3JpdGU7CivjnYogPiB0b1wtZ3VpZGU7CivjnLYgPiBhXC1jb3VwbGU7CivjnLMgPiBwZWFjZWZ1bDsKK+ObmyA+IHByZWduYW50Owor45qjID4gaGFuZHNvbWU7CivjmaIgPiBhXC10cm93ZWw7CivjmZkgPiB0b1wtc21lYXI7CivjmYMgPiBhXC1jYXZpdHk7CivjmKogPiB0b1wtd2FzdGU7CivjmKAgPiB0b1wtY2xvc2U7CivjmJkgPiB0b1wtZ3JvYW47CivjmJEgPiB0b1wtY3Vyc2U7CivjmIAgPiB0b1wtc291bmQ7Civjl6ogPiBtb3V0aGZ1bDsKK+OXqCA+IHRvXC1sYXVnaDsKK+OXnCA+IHRvXC1zbWVsbDsKK+OXmyA+IHRvXC1sYXVnaDsKK+OXkyA+IG1vdXRoZnVsOwor45eJID4gaW5jaXNpdmU7CivjlrkgPiB0b1wtc3B1cnQ7CivjlqkgPiBub3RcLXB1cmU7CivjlpMgPiB0b1wtc2hvdXQ7CivjlocgPiB0aGVcLWxpcHM7CivjlbwgPiB0b1wtYnJhd2w7CivjlZsgPiBhXC1mcmllbmQ7CivjlZAgPiBpbmNsaW5lZDsKK+OViiA+IHRvXC1zbGFudDsKK+OUsCA+IGNvbnN0YW50Owor45SqID4gdG9cLWNyYXdsOwor45SgID4gaW5kdXN0cnk7CivjlJ4gPiB2aWdvcm91czsKK+OTtiA+IHRvXC1jYXJ2ZTsKK+OTmiA+IGFcLXNpY2tsZTsKK+OTkyA+IHRoaW5cLWljZTsKK+OSuSA+IHRvXC11cHNldDsKK+ORuiA+IHN1cGVyaW9yOwor45G0ID4gdG9cLXVzdXJwOwor45GwID4gZGlzdHJlc3M7CivjkY0gPiBpbmZlcmlvcjsKK+OQnCA+IGFuXC1lbmVteTsKK+i/tyA+IGJld2l0Y2g7Civov7AgPiBuYXJyYXRlOwor6L+lID4gZGlzdGFudDsKK+S4rSA+IGNlbnRyYWw7Civlv5cgPiBwdXJwb3NlOwor6L+OID4gcmVjZWl2ZTsKK+W/jCA+IGplYWxvdXM7CivlkowgPiBoYXJtb255Owor6L6vID4gZGlzcHV0ZTsKK+WOuyA+IGdvXC1hd2F5Owor5a+5ID4gY29ycmVjdDsKK+eeoCA+IGxvb2tcLWF0Owor5b6LID4gc3RhdHV0ZTsKK+W9uSA+IHNlcnZpY2U7CivnnLogPiBsb29rXC1hdDsKK+W8tSA+IHN0cmV0Y2g7Civlt7IgPiBhbHJlYWR5Owor5byYID4gZW5sYXJnZTsKK+W8lSA+IHRvXC1wdWxsOwor5byUID4gY29uZG9sZTsKK+i8gyA+IGNvbXBhcmU7CivmhI8gPiB0aG91Z2h0Owor6L+bID4gYWR2YW5jZTsKK+eboSA+IGV4aGF1c3Q7Civlu4kgPiB1cHJpZ2h0Owor5oOFID4gZmVlbGluZzsKK+easCA+IHBpbXBsZXM7CivlupYgPiBraXRjaGVuOwor6LqTID4gc3R1bWJsZTsKK+W6hCA+IHZpbGxhZ2U7CivlubYgPiBjb21iaW5lOwor6LmgID4gc3RlcFwtb247CivnmZYgPiBjcmF2aW5nOwor5bmVID4gY3VydGFpbjsKK+S7oyA+IHJlcGxhY2U7CivluKsgPiB0ZWFjaGVyOwor5oC7ID4gY29sbGVjdDsKK+i4jyA+IHN0ZXBcLW9uOwor5biIID4gdGVhY2hlcjsKK+eXtCA+IGZvb2xpc2g7CivljY4gPiBmbG93ZXJ5Owor5bygID4gc3RyZXRjaDsKK+eXhyA+IGRpc2Vhc2U7Civnl4UgPiBpbGxuZXNzOwor55a+ID4gaWxsbmVzczsKK+WPjSA+IHJldmVyc2U7CivlkIggPiBjb21iaW5lOwor55aOID4gbmVnbGVjdDsKK+WPlyA+IHJlY2VpdmU7CivliqEgPiBhZmZhaXJzOwor5o6lID4gcmVjZWl2ZTsKK+W0qSA+IHJ1cHR1cmU7CivnibkgPiBzcGVjaWFsOwor5pyNID4gY2xvdGhlczsKK+izvSA+IGNvbXBldGU7Civos5EgPiByZWxpZXZlOwor56eRID4gc2VjdGlvbjsKK+i/nCA+IGRpc3RhbnQ7CivosasgPiByZWxheGVkOwor6IGUID4gY29ubmVjdDsKK+S/nSA+IHByb3RlY3Q7CivlsL0gPiBleGhhdXN0Owor6Z2pID4gbGVhdGhlcjsKK+WwjSA+IGNvcnJlY3Q7CivlsIogPiByZXNwZWN0Owor5ZOBID4gYXJ0aWNsZTsKK+WwiSA+IG9mZmljZXI7Civlo6sgPiBzY2hvbGFyOwor6YePID4gbWVhc3VyZTsKK+WvviA+IGNvcnJlY3Q7CivnqIsgPiBqb3VybmV5Owor5a+pID4gZXhhbWluZTsKK+WvnyA+IGV4YW1pbmU7CivmnoEgPiBleHRyZW1lOwor5LukID4gY29tbWFuZDsKK+acqiA+IG5vdFwteWV0Owor5oyBID4gc3VzdGFpbjsKK+WOhiA+IGhpc3Rvcnk7CivlrqMgPiBkZWNsYXJlOwor5Y+yID4gaGlzdG9yeTsKK+WulyA+IGxpbmVhZ2U7Civorq4gPiBjb25zdWx0Owor546HID4gdG9cLWxlYWQ7Civlp5QgPiBhcHBvaW50Owor6K23ID4gcHJvdGVjdDsKK+itsCA+IGNvbnN1bHQ7CivlhbUgPiBzb2xkaWVyOwor5a2UID4gb3BlbmluZzsKK+S6iSA+IGRpc3B1dGU7CivnqbYgPiBleGFtaW5lOwor6Ky5ID4gcHJ1ZGVudDsKK+inhiA+IGxvb2tcLWF0Owor6KybID4gZXhwbGFpbjsKK+agvCA+IHBhdHRlcm47Civoq7ggPiBzZXZlcmFsOwor6K6yID4gZXhwbGFpbjsKK+irpiA+IGNhcmVmdWw7CivmgJUgPiB0b1wtZmVhcjsKK+eLoSA+IGN1bm5pbmc7Civmm74gPiBhbHJlYWR5Owor5YeGID4gYXBwcm92ZTsKK+autSA+IHNlY3Rpb247Civnsr4gPiBlc3NlbmNlOwor56ufID4gZmluYWxseTsKK+iqoCA+IHNpbmNlcmU7Civoqa4gPiBleHBsYWluOwor5pW0ID4gb3JkZXJseTsKK+WpiSA+IGFtaWFibGU7CivlpIcgPiBwcmVwYXJlOwor5Y+mID4gYW5vdGhlcjsKK+mZiCA+IGV4aGliaXQ7CivmlYUgPiBhbmNpZW50Owor6KibID4gc3dpbmRsZTsKK+iolyA+IGVudHJ1c3Q7CivooaMgPiBjbG90aGVzOwor6KiKID4gaW5xdWlyZTsKK+eIhiA+IGNyYWNrbGU7CivmibkgPiBjb21tZW50Owor6YCBID4gc2VlXC1vZmY7CivmhL8gPiBzaW5jZXJlOwor5aWHID4gc3RyYW5nZTsKK+eHlSA+IHN3YWxsb3c7Civnh4ggPiBsYW50ZXJuOwor6Ka9ID4gbG9va1wtYXQ7CivlpqwgPiBqZWFsb3VzOwor5ri4ID4gdG9cLXN3aW07CivopqcgPiBsb29rXC1hdDsKK+S7vSA+IHBvcnRpb247CivmlaIgPiB0b1wtZGFyZTsKK+imliA+IGxvb2tcLWF0Owor5aaWID4gc3RyYW5nZTsKK+eFvSA+IHN0aXJcLXVwOwor6ICDID4gZXhhbWluZTsKK+adkSA+IHZpbGxhZ2U7CivmnJ0gPiBkeW5hc3R5Owor6IKyID4gcHJvZHVjZTsKK+aKpCA+IHByb3RlY3Q7Civlm74gPiBkaWFncmFtOwor5YiYID4gc3VybmFtZTsKK+WklSA+IGV2ZW5pbmc7Civmib8gPiBpbmhlcml0Owor6KOzID4gY2xvdGhlczsKK+S5oSA+IGNvdW50cnk7Civoo4EgPiBjdXRcLW91dDsKK+aXoiA+IGFscmVhZHk7CivmvJQgPiBwZXJmb3JtOwor5oCqID4gc3RyYW5nZTsKK+iigiA+IHNsZWV2ZXM7Civph4cgPiBjb2xsZWN0Owor6KGwID4gZGVjbGluZTsKK+i1myA+IGNvbXBldGU7Civnga8gPiBsYW50ZXJuOwor6L6DID4gY29tcGFyZTsKK+ihoSA+IG1lYXN1cmU7CivloZ4gPiBzdG9wXC11cDsKK+aZryA+IHNjZW5lcnk7CivooKIgPiB3cmlnZ2xlOwor5L6dID4gcmVseVwtb247CivngJ0gPiB0cmlja2xlOwor6IOcID4gdmljdG9yeTsKK+a/oSA+IGltbWVyc2U7Civmv58gPiB0b1wtaGVscDsKK+ifiyA+IGNyaWNrZXQ7Civon4AgPiBjcmlja2V0Owor5Z6LID4gcGF0dGVybjsKK+WcliA+IGRpYWdyYW07CivmvIYgPiB2YXJuaXNoOwor5ryBID4gdG9cLWZpc2g7Civlm7MgPiBkaWFncmFtOwor5pWjID4gc2NhdHRlcjsKK+ibhiA+IG1hZ2dvdHM7Civmm7IgPiBjcm9va2VkOwor5rq2ID4gdG9cLW1lbHQ7CivljoIgPiBmYWN0b3J5Owor6IKvID4gd2lsbGluZzsKK+aKkyA+IHNjcmF0Y2g7CivomasgPiBpbnNlY3RzOwor5rmnID4gd2VsbFwtdXA7CivojIMgPiBzdXJuYW1lOwor6Z2gID4gbGVhblwtb247CivmuKwgPiBtZWFzdXJlOwor5o6IID4gZ2l2ZVwtdG87CivmuIcgPiB0aGlyc3R5Owor5omsID4gc2NhdHRlcjsKK+a3uiA+IHNoYWxsb3c7Civmt6sgPiBvYnNjZW5lOwor6YKTID4gc3VybmFtZTsKK+m3hCA+IGNoaWNrZW47Civll4cgPiBtaXNlcmx5Owor5oqxID4gZW1icmFjZTsKK+mihCA+IHByZXBhcmU7CivnnZsgPiBleWViYWxsOwor5ousID4gaW5jbHVkZTsKK+mZjSA+IGRlc2NlbmQ7Civpto8gPiBjaGlja2VuOwor6K6vID4gaW5xdWlyZTsKK+i1tSA+IHN1cm5hbWU7CivmtYUgPiBzaGFsbG93Owor56eBID4gcHJpdmF0ZTsKK+iUkSA+IGRpc2RhaW47CivlrqEgPiBleGFtaW5lOwor5rOhID4gYnViYmxlczsKK+mXuSA+IHF1YXJyZWw7CivmlawgPiByZXNwZWN0Owor6YaSID4gd2FrZVwtdXA7CivmsowgPiBjaGFvdGljOwor5pq0ID4gdmlvbGVudDsKK+mygSA+IGZvb2xpc2g7CivmiqIgPiBwbHVuZGVyOwor5ZGRID4gc3dhbGxvdzsKK+evhyA+IGNoYXB0ZXI7CivpsYggPiBjb2RmaXNoOwor5ZGCID4gc3VybmFtZTsKK+aLpSA+IGVtYnJhY2U7CivlkIogPiBjb25kb2xlOwor6K+4ID4gdmFyaW91czsKK+iPryA+IGZsb3dlcnk7Civlj60gPiB0cnVtcGV0Owor5rWLID4gbWVhc3VyZTsKK+mYhSA+IGV4YW1pbmU7Civlj5kgPiBleHByZXNzOwor54ybID4gdmlvbGVudDsKK+WOrSA+IGRpc2xpa2U7CivljqggPiBraXRjaGVuOwor6ZuFID4gZWxlZ2FudDsKK+mbtyA+IHRodW5kZXI7Civpra8gPiBmb29saXNoOwor6bihID4gY2hpY2tlbjsKK+ivmiA+IHNpbmNlcmU7Civnq54gPiBjb250ZW5kOwor5pONID4gY29uZHVjdDsKK+WNkiA+IHNvbGRpZXI7Civor7ogPiBwcm9taXNlOwor5YyGID4gaGFzdGlseTsKK+ashSA+IHplbGtvdmE7Civoi7ogPiBiZXJyaWVzOwor5YudID4gdmljdG9yeTsKK+WHrSA+IGxlYW5cLW9uOwor5YuZID4gYWZmYWlyczsKK+iLlyA+IHNwcm91dHM7CivnorAgPiBjb2xsaWRlOwor6IuRID4gcGFzdHVyZTsKK+S7vyA+IGltaXRhdGU7CivmqZ8gPiBtYWNoaW5lOwor5qCPID4gcmFpbGluZzsKK+momSA+IHN3aW5kbGU7CivliIggPiBjdXRcLW9mZjsKK+eLoCA+IHZpY2lvdXM7CivmmKAgPiBwcm9qZWN0Owor5oiqID4gY3V0XC1vZmY7Civlv6AgPiBsb3lhbHR5Owor5omOID4gcHVsbFwtdXA7CivohbkgPiBzdG9tYWNoOwor5qW1ID4gZXh0cmVtZTsKK+iIkiA+IG9wZW5cLXVwOwor6aqXID4gc3dpbmRsZTsKK+WHtiA+IGN1bHByaXQ7CivmhbAgPiBjb21mb3J0Owor6aSYID4gc3VycGx1czsKK+aSkiA+IHJlbGVhc2U7CivmhIEgPiBhbnhpZXR5Owor5pakID4gYVwtY2F0dHk7Civlg5EgPiBzb2pvdXJuOwor5om2ID4gc3VwcG9ydDsKK+avgSA+IGRlc3Ryb3k7CivovqkgPiBkaXNwdXRlOwor6IODID4gc3RvbWFjaDsKK+aisCA+IHdlYXBvbnM7CivokosgPiBzdXJuYW1lOwor5YKZID4gcHJlcGFyZTsKK+i/nSA+IGRpc29iZXk7CivkuKIgPiBkaXNjYXJkOwor6IKGID4gaW5kdWxnZTsKK+WCuyA+IGZvb2xpc2g7Civnu5UgPiBlbnR3aW5lOwor6IGzID4gdXJnZVwtb247CivmtoIgPiBzdXJuYW1lOwor6IiwID4gd2Fyc2hpcDsKK+aBvCA+IGFuZ2VyZWQ7CivovqMgPiBwZXBwZXJ5Owor5YCaID4gcmVseVwtb247CivpoJAgPiBwcmVwYXJlOwor5peLID4gcmV2b2x2ZTsKK+WAiSA+IGdyYW5hcnk7Civovr0gPiBkaXN0YW50Owor572aID4gcGVuYWx0eTsKK+aLviA+IHBpY2tcLXVwOwor5oGiID4gcmVzdG9yZTsKK+e/gSA+IG9sZFwtbWFuOwor5769ID4gZmVhdGhlcjsKK+aKliA+IHRyZW1ibGU7Civop4ggPiBsb29rXC1hdDsKK+S+ryA+IG1hcnF1aXM7Civmg5EgPiBjb25mdXNlOwor5L21ID4gY29tYmluZTsKK+e9sCA+IHBlbmFsdHk7Civpm5UgPiBlbmdyYXZlOwor5Y6MID4gZGlzbGlrZTsKK+WvvyA+IG9sZFwtYWdlOwor6LeMID4gc3R1bWJsZTsKK+mUpiA+IGJyb2NhZGU7CivmnY8gPiBhcHJpY290Owor6buOID4gc3VybmFtZTsKK+aFjCA+IG5lcnZvdXM7CivlsaAgPiBidXRjaGVyOwor5p+PID4gY3lwcmVzczsKK+mcjSA+IHF1aWNrbHk7CivpmbYgPiBwb3R0ZXJ5Owor5pGEID4gdGFrZVwtaW47Civml6ggPiBwdXJwb3NlOwor6ZevID4gcnVzaFwtaW47Civlhq8gPiBzdXJuYW1lOwor5omwID4gZGlzdHVyYjsKK+mbgCA+IHNwYXJyb3c7CivlqJwgPiBlbGVnYW50Owor5pquID4gZXZlbmluZzsKK+mYgSA+IGNoYW1iZXI7CivljaIgPiBjb3R0YWdlOwor5ZCeID4gc3dhbGxvdzsKK+afnCA+IGNhYmluZXQ7CivmmocgPiBsZWlzdXJlOwor5oSnID4gYXNoYW1lZDsKK+aZtiA+IGNyeXN0YWw7CivnuZ4gPiBlbnR3aW5lOwor5pmdID4gZGF5dGltZTsKK+etiyA+IG11c2NsZXM7CivnuL0gPiBjb2xsZWN0Owor5pi8ID4gZGF5dGltZTsKK+WSqCA+IGlucXVpcmU7CivmkpEgPiBwcm9wXC11cDsKK+mAhiA+IGRpc29iZXk7CivloasgPiBmaWxsXC1pbjsKK+aXuiA+IHByb3NwZXI7Civnt6wgPiBkaXN0YW50Owor6LCoID4gcHJ1ZGVudDsKK+a4tCA+IHRoaXJzdHk7Civnlo8gPiBuZWdsZWN0Owor6ICXID4gY29uc3VtZTsKK+e3jyA+IGNvbGxlY3Q7CivplrIgPiBleGFtaW5lOwor6ZKmID4gcmVzcGVjdDsKK+mWoyA+IGNoYW1iZXI7CivmmYsgPiBhZHZhbmNlOwor5oKmID4gcGxlYXNlZDsKK+aWkSA+IG1vdHRsZWQ7Civot7UgPiB0cmFtcGxlOwor6LS+ID4gc3VybmFtZTsKK+a4lCA+IHRvXC1maXNoOwor6JShID4gc3VybmFtZTsKK+aDtiA+IGZlYXJmdWw7CivnsL4gPiBhXC1ibGluZDsKK+i0qSA+IHBlZGRsZXI7CivmiIggPiBoYWxiZXJkOwor6ZCQID4gZmV0dGVyczsKK+aPmiA+IHNjYXR0ZXI7CivombkgPiByYWluYm93Owor56+EID4gcGF0dGVybjsKK+WvoSA+IHdpZG93ZWQ7CivlkJUgPiBzdXJuYW1lOwor6YOKID4gc3VidXJiczsKK+W+vSA+IGFcLWJhZGdlOwor6LCtID4gc3VybmFtZTsKK+aNqCA+IGRpc2NhcmQ7Civpso0gPiBhYmFsb25lOwor5LuTID4gZ3JhbmFyeTsKK+mMpiA+IGJyb2NhZGU7CivnrIQgPiBoYWlycGluOwor5rK+ID4gbW9pc3RlbjsKK+ertiA+IGNvbnRlbmQ7Civkv54gPiBzdXJuYW1lOwor556SID4gZGVjZWl2ZTsKK+ergyA+IGZ1cm5hY2U7CivkvqggPiBzb2pvdXJuOwor5oGzID4gc2luY2VyZTsKK+aKkiA+IGV4cHJlc3M7Civlp5wgPiBzdXJuYW1lOwor5omxID4gY29sbGVjdDsKK+eovSA+IGV4YW1pbmU7Civoo5QgPiBwcm9nZW55Owor5525ID4gbG9va1wtYXQ7CivljKogPiBiYW5kaXRzOwor5r2YID4gc3VybmFtZTsKK+aGkSA+IGxlYW5cLW9uOwor5qacID4gcGxhY2FyZDsKK+aeiSA+IHVzZWxlc3M7CivnvIUgPiBkaXN0YW50Owor5oWlID4gc2luY2VyZTsKK+mqhyA+IHRlcnJpZnk7CivmhYcgPiBjYXJlZnVsOwor56yoID4gZm9vbGlzaDsKK+iAuCA+IHVyZ2VcLW9uOwor6LipID4gc3RlcFwtb247Civpg7cgPiBjb3VudHJ5Owor5oOxID4gYW5nZXJlZDsKK+aCuCA+IGZlYXJmdWw7CivmkrAgPiBjb21wb3NlOwor5oOtID4gYXNoYW1lZDsKK+WegyA+IGdhcmJhZ2U7CivpqbwgPiBhXC1jYW1lbDsKK+mBoCA+IGRpc3RhbnQ7CivpgZUgPiBkaXNvYmV5Owor6YGRID4gbGVpc3VyZTsKK+WcviA+IGdhcmJhZ2U7CivosbkgPiBsZW9wYXJkOwor57y0ID4gZGVsaXZlcjsKK+WTqCA+IHdoaXN0bGU7CivpgLIgPiBhZHZhbmNlOwor5Zq8ID4gcHJhdHRsZTsKK+aYpyA+IG9ic2N1cmU7Civmi6IgPiBjb2xsZWN0Owor5pexID4gZHJvdWdodDsKK+ivoSA+IGRlY2VpdmU7CivmkIUgPiBkaXN0dXJiOwor6IGCID4gd2hpc3BlcjsKK+iOvSA+IHRoaWNrZXQ7CivppoAgPiBzdXJwbHVzOwor5oChID4gaGFybW9ueTsKK+WOriA+IHNlcnZhbnQ7CivojKggPiBjYWx0cm9wOwor57KYID4gdmlzY291czsKK+aRpyA+IGRlc3Ryb3k7CivmnL0gPiBkZWNheWVkOwor5ai0ID4gZWxlZ2FudDsKK+eElSA+IHNoaW5pbmc7CivosYEgPiBvcGVuXC11cDsKK+ipuSA+IHN1cm5hbWU7CivnhoQgPiBwdXRcLW91dDsKK+mAviA+IGdvXC1vdmVyOwor5aaSID4gamVhbG91czsKK+mCsSA+IHN1cm5hbWU7CivphosgPiB2aW5lZ2FyOwor5paMID4gcmVmaW5lZDsKK+WvhyA+IGJhbmRpdHM7Civlsa8gPiB2aWxsYWdlOwor5oGVID4gZm9yZ2l2ZTsKK+aypiA+IGJlXC1sb3N0Owor5bKxID4gZGFpc2hhbjsKK+aShyA+IGRpc2NhcmQ7CivorrMgPiBjb25jZWFsOwor5reMID4gdHJpY2tsZTsKK+WylCA+IGRpdmVyZ2U7CivlgI8gPiBoYXN0aWx5Owor6ZyTID4gcmFpbmJvdzsKK+WekiA+IHJhbXBhcnQ7CivpgrUgPiBzdXJuYW1lOwor5YWiID4gZmVhcmZ1bDsKK+i1piA+IGZvcmdpdmU7CivlvaYgPiBlbGVnYW50Owor57+YID4gdHVyblwtdXA7CivmjJogPiBzaW5jZXJlOwor6YOdID4gc3VybmFtZTsKK+inkSA+IHBlZXBcLWF0Owor5ouOID4gdG9cLWhhdWw7CivlmZwgPiB2ZXJib3NlOwor6ZiQID4gZXhwbGFpbjsKK+aJkiA+IHNjcmF0Y2g7Civlh7kgPiBjb25jYXZlOwor5pKpID4gbGlmdFwtdXA7CivmjKAgPiBzY3JhdGNoOwor5bS9ID4gYVwtY2hpbGQ7Civlu5YgPiBzdXJuYW1lOwor55+rID4gY29ycmVjdDsKK+a2hSA+IGJsYWNrZW47CivmqbEgPiBjYWJpbmV0Owor5ZOGID4gdHJlbWJsZTsKK+i5rCA+IHN0ZXBcLW9uOwor5oGDID4gcmVseVwtb247Civmi5cgPiB0b1wtcHVsbDsKK+WJvyA+IGRlc3Ryb3k7CivnsIwgPiBmYWxsaW5nOwor6K+bID4gZXhlY3V0ZTsKK+aOsyA+IGNhcHR1cmU7CivluYwgPiBjdXJ0YWluOwor56qSID4gc3RvcFwtdXA7Civpm40gPiBoYXJtb255Owor6aaFID4gZmlsbGluZzsKK+eevyA+IHN1cm5hbWU7CivnoYUgPiBzaWxpY29uOwor55ipID4gcGltcGxlczsKK+a4pSA+IG1vaXN0ZW47CivpgqIgPiBzdXJuYW1lOwor6LmLID4gc3RlcFwtb247CivmiqggPiBpbXBlYWNoOwor5pOOID4gbGlmdFwtdXA7CivmhqggPiBmb29saXNoOwor6IK+ID4ga2lkbmV5czsKK+mUrSA+IHNwaW5kbGU7CivnqqYgPiBzdXJuYW1lOwor6LCbID4gY2FyZWZ1bDsKK+aBmSA+IGlsbG5lc3M7CivojKwgPiBoYXJ2ZXN0Owor6JuQID4gY3JpY2tldDsKK+mVoyA+IGZldHRlcnM7CivmsqUgPiB0cmlja2xlOwor6LCkID4gc2xhbmRlcjsKK+mSsyA+IHBpbmNlcnM7Civnnb0gPiBzdGFyaW5nOwor6ZixID4gcGl0ZmFsbDsKK+WnlyA+IHNsYW5kZXI7Civot6QgPiBzdHVtYmxlOwor5rGAID4gc2FuZGJhcjsKK+enpCA+IGJhbGFuY2U7Civmmb4gPiBhaXJcLWRyeTsKK+mcuSA+IHRodW5kZXI7Civot5ogPiBzdGFnZ2VyOwor6Li5ID4gdHJhbXBsZTsKK+iOniA+IHNtaWxpbmc7CivpuKUgPiBzZWFndWxsOwor6JGGID4gcmVzZXJ2ZTsKK+awoiA+IGFtbW9uaWE7CivluKcgPiBwaWN0dXJlOwor5rOvID4gZGVzdHJveTsKK+WMoSA+IGNvcnJlY3Q7Civkva8gPiBwcmV0ZW5kOwor5pqnID4gb2JzY3VyZTsKK+eDrCA+IGNpbmRlcnM7CivomowgPiBveXN0ZXJzOwor6LS7ID4gZ2l2ZVwtdG87CivosIYgPiBwYXRpZW50Owor5ZOdID4gd2hpc3BlcjsKK+ijtCA+IHN1cm5hbWU7Civor70gPiBzbGFuZGVyOwor55meID4gbGVwcm9zeTsKK+WVhCA+IHRvXC1wZWNrOwor5ouEID4gbGVhblwtb247Civnv44gPiBmZWF0aGVyOwor54eOID4gdG9cLWJ1cm47Civov7MgPiBwYXNzXC1ieTsKK+aWoSA+IHJldm9sdmU7CivmgbggPiBzYWRuZXNzOwor5ZWsID4gbWlzZXJseTsKK+W/kSA+IGZlYXJmdWw7CivlkoIgPiB0b1wtc3VjazsKK+ebuSA+IHRvXC1kb3plOwor5L++ID4gc29cLXRoYXQ7CivnsKogPiBoYWlycGluOwor6LWIID4gcmVsaWV2ZTsKK+ivoCA+IGV4cGxhaW47CivosJogPiBwcm92ZXJiOwor5o64ID4gdG9cLWR1c3Q7CivljK4gPiB0b1wtbGFjazsKK+W5oSA+IHBlbm5hbnQ7CivorrkgPiBzd2luZGxlOwor5ZuxID4gY2hpbW5leTsKK+W0giA+IGxhb3NoYW47CivlqIQgPiBzdXJuYW1lOwor5Y+fID4gb2xkXC1tYW47CivonYwgPiB0YWRwb2xlOwor6JqqID4gdGFkcG9sZTsKK+awqCA+IGFtbW9uaWE7Civpk4AgPiB1cmFuaXVtOwor5oybID4gdGFuZ2xlZDsKK+iviyA+IHNsYW5kZXI7Civnu68gPiBzY2FybGV0Owor5pS4ID4gZGlzdGFudDsKK+m4qCA+IGJ1c3RhcmQ7CivonJcgPiBhXC1zbmFpbDsKK+iwqSA+IGRlY2VpdmU7CivmgasgPiBpblwtcGFpbjsKK+iwgCA+IGZsYXR0ZXI7CivouK4gPiB0aXBcLXRvZTsKK+mmiiA+IHNwb2lsZWQ7CivnnYcgPiBsb29rXC1hdDsKK+mSmSA+IGNhbGNpdW07CivmjbEgPiBwdXRcLW9mZjsKK+iSvyA+IG11Z3dvcnQ7CivphbYgPiBlbnp5bWVzOwor5rajID4gc2NhdHRlcjsKK+adsyA+IG9ic2N1cmU7CivooaIgPiBoaWdod2F5Owor6LWhID4gc3VwcG9ydDsKK+ejuiA+IHN1bHBodXI7CivoubYgPiBzdHVtYmxlOwor6LCEID4gZmxhdHRlcjsKK+i5qSA+IHRvXC1saW1wOwor57+fID4gc3VybmFtZTsKK+a1oyA+IHRvXC13YXNoOwor55a5ID4gbWVhc2xlczsKK+eqiCA+IG9ic2N1cmU7CivluZQgPiBjdXJ0YWluOwor6Z2lID4gZGltcGxlczsKK+aOhyA+IGNvbGxlY3Q7CivmhIYgPiBhXC1mYXVsdDsKK+m4tSA+IG9zdHJpY2g7CivnpZcgPiByZXNwZWN0Owor5L2YID4gc3VybmFtZTsKK+eqlSA+IHNsZW5kZXI7Civov6kgPiBiZVwtbmVhcjsKK+S9sCA+IGh1bmRyZWQ7CivpgrAgPiBzdXJuYW1lOwor6YKdID4gc3VybmFtZTsKK+mSuSA+IGN5bWJhbHM7CivkvIkgPiBjb21wYXJlOwor6Z28ID4gdGFydGFyczsKK+eFsiA+IHRvXC1oZWF0Owor542QID4gcm9lYnVjazsKK+S9nSA+IHJpY2tldHM7Civok58gPiBjaXJjaXVtOwor6bucID4gZGlzbWlzczsKK+iwsiA+IGN1bm5pbmc7CivmkYggPiBleGNsdWRlOwor6aOTID4gY3ljbG9uZTsKK+iwlyA+IHNsYW5kZXI7Civog7EgPiBibGFkZGVyOwor6aW9ID4gZmVycnVsZTsKK+ivsyA+IGRlY2VpdmU7Civppo8gPiBkaXN0aWxsOwor6IuvID4gYmVuemVuZTsKK+a3vCA+IGFcLWZsb29kOwor5qGOID4gZmV0dGVyczsKK+e9hCA+IGV4aGF1c3Q7CivojYAgPiBzdXJuYW1lOwor6ZOxID4gaXJpZGl1bTsKK+iRqSA+IGZsb3dlcnM7CivpgKEgPiByZXRyZWF0Owor6YC2ID4gd2luZGluZzsKK+WupSA+IGZvcmdpdmU7CivokLggPiBkb2d3b29kOwor5oydID4gdG9cLWJlYXQ7Civpkr8gPiBoYWlycGluOwor54a1ID4gZW50cm9weTsKK+eFqCA+IHRvXC1zdGV3Owor56CSID4gYXJzZW5pYzsKK+aZgSA+IG1vcm5pbmc7CivosJggPiBjb25zdWx0Owor5YeHID4gZGV3ZHJvcDsKK+WZmCA+IHBvdXRpbmc7CivllKMgPiBjaGF0dGVyOwor6aqgID4gY2hhcmdlcjsKK+aStyA+IHBpY2tcLXVwOwor5oCEID4gYW5ub3llZDsKK+mUgiA+IGxpdGhpdW07CivnlqUgPiBzY2FiaWVzOwor56iXID4gZGFybmVsczsKK+a0riA+IGNsZWFuc2U7Civmgq0gPiBtaXNlcmx5Owor6YWuID4ga2V0b25lczsKK+iFmiA+IGJ1dHRvY2s7CivpgJEgPiBjb2xsZWN0Owor6IWxID4gdGVuZG9uczsKK+mmlCA+IHRvXC1mZWVkOwor5pCgID4gdG9cLWRhdWI7CivojLEgPiBkb2d3b29kOwor56C3ID4gYXJzZW5pYzsKK+mFoSA+IGZsdXNoZWQ7CivnlrQgPiBpbGxuZXNzOwor5oiXID4gc3VwcG9ydDsKK+WRkiA+IHVuY2xlYXI7CivosIwgPiBzaW5jZXJlOwor55enID4gY2hvbGVyYTsKK+aBgiA+IGNhcmVmdWw7CivnrKQgPiBhXC1icm9vbTsKK+mfqyA+IHNlY3JldGU7CivmgJsgPiBncmlldmVkOwor5oCZID4gcmVseVwtb247CivnmrQgPiBjaGFwcGVkOwor6KGkID4gY2xvdGhlczsKK+W7qiA+IGdyYW5hcnk7Civlur4gPiBncmFuYXJ5Owor5oyiID4gY29ycmVjdDsKK+edoiA+IGdhemVcLWF0Owor5aGsID4gcGxhdGVhdTsKK+ieryA+IG5pcHBlcnM7CivnjZIgPiBtYXN0aWZmOwor5rKGID4gYVwtZmVycnk7CivluJQgPiBhXC1za2lydDsKK+aToiA+IHB1bGxcLXVwOwor6JaFID4gdG9cLXdlZWQ7CivojrQgPiBsZXR0dWNlOwor5768ID4gY29uZnVzZTsKK+aNrSA+IHRvXC1vcGVuOwor6JGtID4gYnVscnVzaDsKK+WApSA+IGJvb3Jpc2g7CivmurQgPiBicm9taW5lOwor5bubID4gYVwtc3RvcmU7Civmj7ggPiBoYW5kZnVsOwor5Lu1ID4gc2ltaWxhcjsKK+mriyA+IGhpcGJvbmU7CivogrEgPiBmb3JlYXJtOwor5Y62ID4gcHJpdmF0ZTsKK+iajSA+IG11c3NlbHM7Civlk5kgPiBzd2FsbG93Owor6ZWTID4gZ2FsbGl1bTsKK+mTiyA+IGJpc211dGg7Civog50gPiBjYWxsb3VzOwor5oKDID4gc2luY2VyZTsKK+efvSA+IHNpbGljb247CivotY0gPiBwcmVzZW50Owor57+lID4gdG9cLXNvYXI7CivonJ4gPiBncmFwc3VzOwor6JupID4gY3JpY2tldDsKK+iwoCA+IGNvdW5zZWw7Civps5UgPiBjb2RmaXNoOwor6LeGID4gdHJhbXBsZTsKK+efrCA+IGFcLWR3YXJmOwor5q2ZID4gdG9cLXN1Y2s7CivpobwgPiBncmlldmVkOwor5rqyID4gdXJpbmF0ZTsKK+iVuyA+IGJ1ZGRpbmc7CivliLMgPiBjdXRcLW91dDsKK+m5iCA+IHBlbGljYW47Civpk5kgPiBjeW1iYWxzOwor5qSfID4gY2FiaW5ldDsKK+mViSA+IGNhZG1pdW07Civlq5ggPiBzdXJuYW1lOwor6KyHID4gc3R1dHRlcjsKK+aGtyA+IHBhaW5mdWw7Civmka0gPiBwaWNrXC11cDsKK+iwoSA+IHJpc2VcLXVwOwor6KSKID4gY3JhbXBlZDsKK+m5lSA+IHBlbGljYW47CivplbIgPiBjeW1iYWxzOwor6ZKNID4gdGhvcml1bTsKK+awqiA+IGtyeXB0b247Civov64gPiB0b1wtcmlzZTsKK+W/iSA+IGdyaWV2ZWQ7Civok40gPiBtaWxmb2lsOwor6LisID4gc3R1bWJsZTsKK+mGryA+IHZpbmVnYXI7Civonr0gPiBrYXR5ZGlkOwor6I2RID4gc3Byb3V0czsKK+mDkyA+IHN1cm5hbWU7CivliYAgPiBzaGFycGVuOwor6LmAID4gdG9cLXNraXA7CivplI4gPiBjYWVzaXVtOwor6ZKHID4geXR0cml1bTsKK+awmiA+IHRyaXRpdW07CivnirggPiBtYW1tb3RoOwor6I+4ID4gdG9cLWZhZGU7Civljo0gPiBzdXJuYW1lOwor6bKxID4gaGVycmluZzsKK+iyiiA+IGxlb3BhcmQ7Civoup4gPiB0b1wtd2FsazsKK+ibtCA+IG1hZ2dvdHM7CivplL4gPiBtZWFzdXJlOwor6ZOMID4gbmlvYml1bTsKK+eVgCA+IHRvXC1naXZlOwor6YGYID4gdG9cLW1lZXQ7Civms7cgPiByYWluaW5nOwor6JKhID4gYnVyZG9jazsKK+ivvCA+IHNsYW5kZXI7Civpq4wgPiBrbmVlY2FwOwor6bOZID4gYmlnaGVhZDsKK+mzmCA+IGNvZGZpc2g7Civps4YgPiBhYmFsb25lOwor57W3ID4gY29uZmluZTsKK+eupiA+IGJlZFwtbWF0Owor55iYID4gZmlzdHVsYTsKK+m4uCA+IHN3YWxsb3c7CivplYQgPiBmZXJtaXVtOwor5oGnID4gYXNoYW1lZDsKK+elhiA+IG9ybWF6ZGE7Civlq6AgPiBhXC13aWRvdzsKK+aQtCA+IGV4dHJhY3Q7Civlu5IgPiBncmFuYXJ5Owor6YOEID4gc3VybmFtZTsKK+ivnCA+IGlucXVpcmU7Civlg6YgPiB0b1wtaGVpcjsKK+m+oSA+IHRvXC1ibG93Owor6b2wID4gdG9cLWJpdGU7CivpvakgPiB0b1wtY2hldzsKK+m9miA+IHRvXC1jaGV3Owor6by3ID4gYVwtbW91c2U7Civpup4gPiByb2VidWNrOwor6biRID4gYVwtbGFyZ2U7Civpt58gPiBwaG9lbml4Owor6beXID4gc2VhZ3VsbDsKK+m3liA+IHNlYWd1bGw7CivptrogPiB3YWd0YWlsOwor6ba5ID4gdGhlXC1vd2w7CivptqYgPiBwZWxpY2FuOwor6baYID4gcGVsaWNhbjsKK+m1riA+IHRvXC1wZWNrOwor6bWcID4gcGVsaWNhbjsKK+m0ryA+IHN3YWxsb3c7CivptKsgPiBhXC1zbmlwZTsKK+m0lSA+IG9zdHJpY2g7CivptI4gPiBzZWFndWxsOwor6bSHID4gYnVzdGFyZDsKK+mzpiA+IHN3YWxsb3c7CivpspogPiBhbmNob3Z5Owor6bGtID4gYW5jaG92eTsKK+mxqCA+IGNvZGZpc2g7CivpsYQgPiBhbmNob3Z5Owor6bC9ID4gaGVycmluZzsKK+mwtSA+IGNvZGZpc2g7CivpsK4gPiBzYXJkaW5lOwor6bCbID4gc2FyZGluZTsKK+mwkiA+IGFiYWxvbmU7Civpr7cgPiBhbmNob3Z5Owor6a+hID4gaGVycmluZzsKK+mukSA+IGFiYWxvbmU7CivprZwgPiBtZXJtYWlkOwor6aynID4gcXVhcnJlbDsKK+mrliA+IGhpcGJvbmU7Civpq5UgPiBrbmVlY2FwOwor6aqrID4gYmVcLWJlbnQ7CivpqokgPiBydW5uaW5nOwor6amZID4gXChob3JzZVwpOwor6amSID4gZGFwcGxlZDsKK+mpgyA+IGNoYXJnZXI7CivpqKggPiBkYXBwbGVkOwor6aetID4gdGVycmlmeTsKK+mnnSA+IGFcLWNhbWVsOwor6aeLID4gXChob3JzZVwpOwor6aauID4gc3VybmFtZTsKK+mlkCA+IHNwb2lsZWQ7CivppL8gPiBzcG9pbGVkOwor6aS+ID4gZGlzdGlsbDsKK+mktSA+IHRvXC1mZWVkOwor6aSyID4gc3BvaWxlZDsKK+mkkSA+IGZlcnJ1bGU7Civpo6QgPiB0b1wtZmVlZDsKK+mitiA+IGN5Y2xvbmU7CivporMgPiB0b1wtYmxvdzsKK+miqyA+IGFcLXN0b3JtOwor6aCZID4gY29ycmVjdDsKK+mgiiA+IGdyaWV2ZWQ7Civpn6MgPiBib3dcLWJhZzsKK+mfhSA+IGhhcm5lc3M7CivpnaggPiBkaW1wbGVzOwor6ZyFID4gdGh1bmRlcjsKK+mbnyA+IHNwYXJyb3c7Civpm5ogPiBhXC1oZXJvbjsKK+mZviA+IGluXC1maWxlOwor6ZmzID4gZXhoaWJpdDsKK+mZniA+IHByb21vdGU7CivpmKcgPiBzbG9waW5nOwor6ZehID4gZXhwbGFpbjsKK+mXliA+IHJ1c2hcLWluOwor6ZaxID4gZXhhbWluZTsKK+mWmSA+IHF1YXJyZWw7CivploggPiB2aWxsYWdlOwor6ZWmID4gZmVycnVsZTsKK+mTvSA+IHRlcmJpdW07Civpk7wgPiByaGVuaXVtOwor6ZOqID4gaGFmbml1bTsKK+mTpSA+IHRodWxpdW07Civpk5EgPiByaG9kaXVtOwor6ZKsID4gaG9sbWl1bTsKK+mQqCA+IGZlcm1pdW07CivpkJMgPiBmZXJydWxlOwor6ZCDID4gY3ltYmFsczsKK+mOtSA+IGdhbGxpdW07CivpjpggPiBjYWRtaXVtOwor6Y2wID4gbWVhc3VyZTsKK+mMuCA+IHJoZW5pdW07CivpjLYgPiBhXC13YXRjaDsKK+mMoCA+IHNwaW5kbGU7CivpjIAgPiBcKG1ldGFsXCk7Civpi7EgPiB0ZXJiaXVtOwor6YuwID4gbGl0aGl1bTsKK+mLlSA+IGVuZ3JhdmU7Civpi4ogPiBhXC1wb2tlcjsKK+mLgiA+IGJpdFwtY3VwOwor6YqpID4gdGh1bGl1bTsKK+mKpSA+IGlyaWRpdW07Civpib8gPiBoYWZuaXVtOwor6Ym3ID4gdHJpZ2dlcjsKK+mJsiA+IGNhZG1pdW07CivpiZcgPiBwaW5jZXJzOwor6YmNID4gYmlzbXV0aDsKK+mIvyA+IGhhaXJwaW47CivpiL4gPiB1cmFuaXVtOwor6Yi4ID4gY3ltYmFsczsKK+mIriA+IG5pb2JpdW07CivpiKUgPiBob2xtaXVtOwor6YijID4gY2FsY2l1bTsKK+mHuCA+IHNpbGljb247Civph7cgPiB0aG9yaXVtOwor6YexID4gZmV0dGVyczsKK+mHlCA+IHl0dHJpdW07CivphYcgPiBjb2xsZWN0Owor6YS6ID4gc3VybmFtZTsKK+mEpyA+IHN1cm5hbWU7CivphJUgPiBjb3VudHJ5Owor6YSJID4gY291bnRyeTsKK+mEhiA+IHN1cm5hbWU7Civpg4kgPiBzdXJuYW1lOwor6YKoID4gdmlsbGFnZTsKK+mChyA+IGJlXC1uZWFyOwor6YG8ID4gZGlzdGFudDsKK+mBtiA+IGVudHdpbmU7Civpga8gPiBkZWNlaXZlOwor6YC6ID4gZGlzdGFudDsKK+mAtyA+IGRpc3RhbnQ7CivpgJUgPiBwYXNzXC1ieTsKK+mAiCA+IGRpc3RhbnQ7Civov7QgPiByZXZvbHZlOwor6L23ID4gc3VybmFtZTsKK+i9kiA+IGNoYXJpb3Q7CivovL0gPiB2ZWhpY2xlOwor6LuyID4gYVwtd2hlZWw7Civou5ggPiB3YXJcLWNhcjsKK+i6piA+IHRvXC1qdW1wOwor6LqgID4gdG9cLWxpbXA7Civoup0gPiB0b1wtcGFzczsKK+i6mCA+IHRvXC13YWxrOwor6LqEID4gY3JpcHBsZTsKK+i6giA+IHN0dW1ibGU7CivouaEgPiB0b1wtbGltcDsKK+i4qyA+IGNvbGxpZGU7CivouJAgPiB0cmFtcGxlOwor6LiIID4gbmVnbGVjdDsKK+i3tCA+IHN0ZXBcLW9uOwor6LesID4gdG9cLXN0ZXA7Civot5UgPiBzaHVmZmxlOwor6La3ID4gdG9cLWpvbHQ7CivotpkgPiBzdXJuYW1lOwor6LaSID4gdG9cLWp1bXA7CivotI0gPiBzdXBwb3J0Owor6LSHID4gYWZmYWJsZTsKK+i0gyA+IHRvXC1lYXJuOwor6LOrID4gcHJlc2VudDsKK+iznSA+IHByZWlvdXM7Civos4ggPiBzdXJuYW1lOwor6LK9ID4gZ2l2ZVwtdG87CivosqkgPiBwZWRkbGVyOwor6LGXID4gY2xhbW91cjsKK+iwqyA+IHNoYWxsb3c7Civor7kgPiBjb25zdWx0Owor6K6fID4gc2xhbmRlcjsKK+iunCA+IGNvdW5zZWw7CivorpIgPiBzbGFuZGVyOwor6K6MID4gYVwtZmVhc3Q7CivorocgPiBmbGF0dGVyOwor6K2+ID4gc2hhbGxvdzsKK+ituCA+IGRlY2VpdmU7CivorZogPiBzdXJuYW1lOwor6K2OID4gY3VubmluZzsKK+itiCA+IGRpc2xpa2U7CivorL4gPiBkZWNlaXZlOwor6Ky3ID4gc2xhbmRlcjsKK+issyA+IHRvXC1zaW5nOwor6KytID4gc2hhbGxvdzsKK+isnyA+IGZsYXR0ZXI7CivorJcgPiBzbGFuZGVyOwor6KyWID4gcmlzZVwtdXA7CivorIwgPiBzbGFuZGVyOwor6KyGID4gYmVndWlsZTsKK+irviA+IHByb21pc2U7Civoq7ogPiBwcm92ZXJiOwor6Ku2ID4gc2luY2VyZTsKK+irsSA+IGNvbmNlYWw7Civoq64gPiBjb25zdWx0Owor6KubID4gZmxhdHRlcjsKK+irmiA+IGNvbW1hbmQ7Civoq5EgPiBzbGFuZGVyOwor6KuPID4gY29uc3VsdDsKK+irhCA+IHBhdGllbnQ7Civoq4IgPiBmbGF0dGVyOwor6Kq5ID4gc2xhbmRlcjsKK+iqkSA+IGRlY2VpdmU7CivoqoUgPiBleGVjdXRlOwor6Km+ID4gbm9pc2lseTsKK+iptSA+IGlucXVpcmU7Civoqa0gPiBkZWNlaXZlOwor6KmrID4gdG9cLWJyYWc7CivoqYYgPiBzbGFuZGVyOwor6KmFID4gdG9cLXNlbGw7CivoqLsgPiBleHBsYWluOwor6KisID4gY2xhbW91cjsKK+ioqSA+IG5vaXNpbHk7CivoqKYgPiBzaW5jZXJlOwor6KiiID4gcGxlYXNlZDsKK+iokSA+IGRlY2VpdmU7Civop6EgPiBhbnRsZXJzOwor6Ka3ID4gcGVlcFwtYXQ7CivopqUgPiBhc2hhbWVkOwor6KacID4gbWlzc2lvbjsKK+ilnCA+IGZsdXR0ZXI7CivopYMgPiBjb21tZW5kOwor6KS9ID4gY3VzaGlvbjsKK+iklCA+IGNvbXBsZXg7Civoo7UgPiBzdXJuYW1lOwor6KOSID4gY29sbGVjdDsKK+iivSA+IGNsb3RoZXM7CivoorogPiBob2xkXC11cDsKK+iiqiA+IHNsZWV2ZXM7CivoobUgPiBjaGVtaXNlOwor6KCQID4gbWFnZ290czsKK+ieriA+IHJhaW5ib3c7CivonbggPiBhXC1zbmFpbDsKK+idgyA+IHJhaW5ib3c7CivonYAgPiByYWluYm93Owor6JyrID4gaW5zZWN0czsKK+iaqyA+IGFiYWxvbmU7CivompEgPiB0aXBcLXRvZTsKK+iZhiA+IGVudHdpbmU7CivomIogPiBjb2xsZWN0Owor6Je0ID4gY29sbGVjdDsKK+iXmSA+IGRvZ3dvb2Q7Civolr0gPiBcKGdyYXNzXCk7CivolrYgPiB0b1wtYnVyeTsKK+iWkyA+IGdpbnNlbmc7CivolpAgPiBzcGluYWNoOwor6JaKID4gY2lyY2l1bTsKK+iVnSA+IGhhbmRmdWw7CivolL8gPiBzdXJuYW1lOwor6JSjID4gc3VybmFtZTsKK+iUmCA+IGdpbnNlbmc7Civok4wgPiBwcmV0ZW5kOwor6JKQID4gY29sbGVjdDsKK+iRoCA+IGdpbnNlbmc7CivokYogPiBjb3R0YWdlOwor6JC1ID4gbGV0dHVjZTsKK+iPqiA+IGhlbmJhbmU7Civoj6cgPiBzdGliZW5lOwor6I6KID4gdmlsbGFnZTsKK+iOgCA+IHRvXC1mYXJtOwor6I2YID4gdmlsbGFnZTsKK+iMtyA+IGZsdXR0ZXI7CivojKAgPiB0b1wtd2VlZDsKK+iLvSA+IGJ1bHJ1c2g7Civoi4UgPiBjdXRcLW9mZjsKK+iJpiA+IHdhcnNoaXA7CivoiJMgPiB0b1wtbGljazsKK+iHnSA+IGJlXC1iYXJlOwor6IWWID4gcGVwdG9uZTsKK+iFjiA+IGtpZG5leXM7CivohJ0gPiBkaXN0ZW5kOwor6IG2ID4gd2hpc3BlcjsKK+iBryA+IGNvbm5lY3Q7Civoga4gPiBjb25uZWN0Owor6IGrID4gY29ubmVjdDsKK+iBqCA+IGNvbm5lY3Q7CivogIkgPiBvbGRcLWFnZTsKK+iAiCA+IG9sZFwtYWdlOwor57+5ID4gdHVyblwtdXA7Civnv6ogPiBmbHV0dGVyOwor576QID4gdG9cLWxlYWQ7CivnvbggPiBwZW5hbHR5Owor572WID4ga3d1a3llbDsKK+e8uyA+IHBvdHRlcnk7CivnvLIgPiB0b1wtcmVlbDsKK+e5syA+IGRlbGl2ZXI7CivnuLYgPiBjb25maW5lOwor57iCID4gY29sbGVjdDsKK+e3iyA+IHNjYXJsZXQ7Civnt4EgPiB0b1wtam9pbjsKK+e1qiA+IG1hdHRpbmc7CivnsoIgPiBzdXJuYW1lOwor57GbID4gc3VybmFtZTsKK+exkSA+IHRvXC1mZWVkOwor57CAID4gYmVkXC1tYXQ7CivnrLAgPiBjdXJ0YWluOwor56yTID4gdG9cLWNvbWI7Civnq7ggPiBjb250ZW5kOwor56uSID4gc3RyYW5nZTsKK+eriCA+IGZ1cm5hY2U7Civnq4cgPiBzdXJuYW1lOwor56qAID4gdG9cLWJ1cnk7CivnqasgPiBoYXJ2ZXN0Owor56iKID4gZGFybmVsczsKK+eohyA+IHRvXC1iaW5kOwor56eQID4gdG9cLXdlZWQ7CivnpqIgPiBzdXJuYW1lOwor56aCID4gdG9cLXByYXk7CivnpLUgPiBhcnNlbmljOwor56OHID4gYXJzZW5pYzsKK+eigyA+IFwoc3RvbmVcKTsKK+efsSA+IG1lYXN1cmU7Civnn68gPiBjb3JyZWN0Owor55+fID4gJydcLWxhbmNlOwor556vID4gdG9cLXBlZXA7Civnnp4gPiBkZWNlaXZlOwor55y9ID4gdG9cLWdhemU7CivnnLQgPiBkYXp6bGVkOwor55yOID4gbG9va1wtYXQ7Civnm6cgPiBjb3R0YWdlOwor55mpID4gbGVwcm9zeTsKK+eZqCA+IHF1aWNrbHk7CivnmLsgPiBmaXN0dWxhOwor55idID4gaWxsbmVzczsKK+eVkCA+IHRvXC1maWxsOwor55SUID4gYmlnXC1qYXI7Civnk5sgPiBzY2FwdHJlOwor55K6ID4gYVwtY3JhY2s7CivnkoogPiByZWRkaXNoOwor55CxID4gZW5ncmF2ZTsKK+eOpyA+IHJlZGRpc2g7CivnjbkgPiBhXC1ob3VuZDsKK+eNmiA+IHNwYW5pZWw7Civni4kgPiBmb3hcLWN1YjsKK+eKhiA+IHNwZWNpYWw7Civnia4gPiBwcm9wXC11cDsKK+eHvCA+IGNpbmRlcnM7CivnhrsgPiB0b1wtaGVhdDsKK+eGuCA+IHB1dFwtb3V0Owor54avID4gYnlcLWZpcmU7CivnhbsgPiB0b1wtd2FybTsKK+eFpSA+IHNoaW5pbmc7Civng4kgPiBzaGluaW5nOwor54G0ID4gdG9cLWJha2U7CivngLkgPiB0b1wtYm9pbDsKK+eApyA+IHJhaW5pbmc7CivmvqMgPiBjbGVhbnNlOwor5r6QID4gYmlsbG93czsKK+a9rCA+IGFcLXJhcGlkOwor5rqmID4gZHJpenpsZTsKK+a4vCA+IHJpcHBsZXM7CivmuKcgPiB0b1wtZHJvcDsKK+a4mSA+IHNjYXR0ZXI7Civmt6ogPiBiZVwtbG9zdDsKK+a2tiA+IHRvXC1zcGl0Owor5raSID4gbWVhbmRlcjsKK+a0uCA+IHNwYXJrbGU7CivmsoQgPiBiaWxsb3dzOwor5rGLID4gdG9cLXBvdXI7CivmsLwgPiB0b1wtc2luazsKK+awlSA+IHByb3RpdW07Civmr5ogPiBjdW5uaW5nOwor5q+AID4gZGVzdHJveTsKK+atuiA+IHZpY2lvdXM7CivmrZwgPiBmdXJpb3VzOwor5qy9ID4gcmVzcGVjdDsKK+ashCA+IHJhaWxpbmc7Civmq6UgPiBjYWJpbmV0Owor5qudID4gY2FiaW5ldDsKK+aphiA+IHdpdGhvdXQ7CivmpqIgPiBhXC1mcmFtZTsKK+aklyA+IFwocGxhbnRcKTsKK+ajuCA+IHN1cm5hbWU7CivmoKIgPiBjeXByZXNzOwor5p68ID4gYVwtdGFibGU7CivmnpMgPiBjYXBpdGFsOwor5p24ID4gdG9cLWtpbGw7CivmnbYgPiB2YXJuaXNoOwor5py+ID4gdG9cLWJ1bXA7CivmnLAgPiBrd3VreWVsOwor5pyiID4gbG9va1wtYXQ7CivmnIogPiBwcm90ZWluOwor5pu9ID4gYWxyZWFkeTsKK+abliA+IG9ic2N1cmU7CivmmYkgPiBhZHZhbmNlOwor5pejID4gYWxyZWFkeTsKK+aWvyA+IHRvXC1zd2ltOwor5pauID4gY3V0XC1vZmY7CivmlqAgPiBtZWFzdXJlOwor5paBID4gZGlzbGlrZTsKK+aVviA+IHRvXC1ydWxlOwor5pWvID4gdG9cLWRlZnk7Civmla0gPiBzY2F0dGVyOwor5pWcID4gZmlsbFwtdXA7CivmlZggPiBleHByZXNzOwor5pWNID4gZXhwcmVzczsKK+aUtyA+IGV4YW1pbmU7CivmlKogPiBkaXN0dXJiOwor5pSjID4gdGFuZ2xlZDsKK+aUnSA+IHRha2VcLWluOwor5pSPID4gY29sbGVjdDsKK+aTviA+IGRpc3R1cmI7Civmk7ggPiB0b1wtaG9sZDsKK+aTtyA+IHBpY2tcLXVwOwor5pOvID4gZXhjbHVkZTsKK+aTnSA+IHRvXC1wdWxsOwor5pOEID4gY2FwdHVyZTsKK+aTgSA+IGVtYnJhY2U7Civmkr4gPiB0b1wtYmVhdDsKK+aSuSA+IGRpc3R1cmI7CivmkrQgPiB0b1wtam9sdDsKK+aSoyA+IHRvXC1kdXN0Owor5pKiID4gdG9cLWR1c3Q7Civmkp8gPiBjb3JyZWN0Owor5pKTID4gc2NyYXRjaDsKK+aSkCA+IHByb3BcLXVwOwor5pGvID4gc2luY2VyZTsKK+aRoCA+IGdlbmVyYWw7CivmkYIgPiB0YWtlXC1pbjsKK+aQtyA+IHRvXC1iZWF0Owor5pC2ID4gcGx1bmRlcjsKK+aOvSA+IGNvbGxpZGU7Civmjq8gPiBvcHByZXNzOwor5oyNID4gY29sbGF0ZTsKK+aLqyA+IHRvXC1wdWxsOwor5oqIID4gdG9cLWJlbmQ7Civmib0gPiB0b1wtbW92ZTsKK+aIpyA+IHN1cHBvcnQ7Civmh7AgPiBiZVwtZ2xhZDsKK+aHqyA+IGVucmFnZWQ7Civmh6QgPiBncmlldmVkOwor5oebID4gYWxhcm1lZDsKK+aHhyA+IHNpbmNlcmU7Civmh4YgPiBhbnhpb3VzOwor5oeFID4gYmFzaGZ1bDsKK+aGgyA+IGZvb2xpc2g7CivmhbMgPiBtaXNlcmx5Owor5oWqID4gYW5ub3llZDsKK+aFnyA+IHNhZG5lc3M7CivmhZogPiBhc2hhbWVkOwor5oWZID4gYXNoYW1lZDsKK+aEkCA+IGJhc2hmdWw7CivmhIogPiBzaW5jZXJlOwor5oO3ID4gd3JpZ2dsZTsKK+aDoyA+IG92ZXJhbGw7Civmg5YgPiByZXNwZWN0Owor5oOTID4gY2FyZWZ1bDsKK+aDhyA+IGJlXC1raW5kOwor5oKpID4gYW5nZXJlZDsKK+aCnCA+IG9ic2N1cmU7CivmgpAgPiByZXNwZWN0Owor5oKFID4gcGxlYXNlZDsKK+aBoCA+IHN0cmFuZ2U7CivmgYkgPiBtZWFuaW5nOwor5oCxID4gaGFzdGlseTsKK+W9pyA+IHJlZmluZWQ7CivlvaUgPiBlbGVnYW50Owor5b2aID4gY29sbGVjdDsKK+W9mSA+IGNvbGxlY3Q7CivlvYYgPiBhd2t3YXJkOwor5bupID4gZ3JhbmFyeTsKK+W7oCA+IGZhY3Rvcnk7Civlu50gPiBzZXJ2YW50Owor5buaID4ga2l0Y2hlbjsKK+W7jCA+IHVuaWNvcm47Civlu4sgPiBjb25jZWFsOwor5bqkID4gcHJlcGFyZTsKK+W5tyA+IGNvbWJpbmU7CivluasgPiB0b1wtaGVscDsKK+W5qCA+IGN1cnRhaW47CivluYAgPiBwaWN0dXJlOwor5bi/ID4gbWFycXVpczsKK+W4siA+IHNoZWx0ZXI7CivluKEgPiBzaGVsdGVyOwor5be/ID4gcmV2b2x2ZTsKK+W3hyA+IGFcLWNyYWNrOwor5baXID4gbGFvc2hhbjsKK+W0iyA+IGZsb3dlcnk7CivlsJ8gPiBzdXJuYW1lOwor5a+qID4gc3VybmFtZTsKK+WthSA+IHNsZW5kZXI7Civlq7sgPiBlbGVnYW50Owor5au6ID4gcmVmaW5lZDsKK+WqvyA+IGFzaGFtZWQ7CivlqrsgPiB0b1wtbW92ZTsKK+WqniA+IGF0XC1lYXNlOwor5amsID4gb2JzY2VuZTsKK+WpgSA+IHN1cm5hbWU7Civlp40gPiBzbGFuZGVyOwor5aWbID4gb3BlbmluZzsKK+WkoyA+IGFcLWRyZWFtOwor5aO9ID4gb2xkXC1hZ2U7Civlo60gPiBrd3VreWVsOwor5aOdID4gYVwtbW91bmQ7Civlo5ggPiByYW1wYXJ0Owor5aOUID4gYVwtbW91bmQ7Civlob0gPiBwbGF0ZWF1Owor5aGhID4gZmlsbFwtaW47CivloZMgPiBwbGFzdGVyOwor5aGBID4gcmFtcGFydDsKK+WghCA+IHBhcmFwZXQ7Civln5cgPiBhXC13aGFyZjsKK+WclyA+IGRpYWdyYW07CivlnJUgPiBsaWJyYXJ5Owor5ZyCID4gcGlnXC1zdHk7Civlm6ogPiBjaGltbmV5Owor5ZqlID4gc3dhbGxvdzsKK+WalSA+IHZlcmJvc2U7CivlmoogPiB0b1wtcGFudDsKK+WZsiA+IHN3YWxsb3c7CivlmaUgPiB3aGlzcGVyOwor5Zi4ID4gdW5jbGVhcjsKK+WXuSA+IGNoYXR0ZXI7Civllr4gPiBlbXBlcm9yOwor5ZalID4gYVwtcGxhY2U7CivllbEgPiBjb3JyZWN0Owor5ZSeID4gdG9cLWdhc3A7CivllIUgPiBhXC1zb3VuZDsKK+WSviA+IGFcLW5vaXNlOwor5ZKKID4gaGFybW9ueTsKK+WSiSA+IGFuXC1lY2hvOwor5ZG/ID4gdG9cLXlhd247CivlkawgPiB0b1wtcmVzdDsKK+WRqyA+IHdoaXNwZXI7CivlkYwgPiB0b1wtY2FsbDsKK+WPnCA+IG9sZFwtbWFuOwor5Y68ID4ga3d1a3llbDsKK+WOsCA+IGZhY3Rvcnk7CivljqsgPiBncmFuYXJ5Owor5Y6ZID4gc3VybmFtZTsKK+WNsiA+IGVtaW5lbnQ7CivljaogPiBrd3VreWVsOwor5Y2GID4gc29sZGllcjsKK+WMvSA+IHRvXC1oaWRlOwor5YyxID4gdG9cLWxhY2s7CivljKcgPiBhXC10cnVuazsKK+WMiyA+IHBvdHRlcnk7CivljIogPiBoYW5kZnVsOwor5YumID4gZGVzdHJveTsKK+WKkCA+IGRlc3Ryb3k7CivliokgPiBzdXJuYW1lOwor5Ym0ID4gc2hhcnBlbjsKK+WHiiA+IHN1cm5hbWU7CivlhqYgPiBiYW5kaXRzOwor5YWvID4ga3d1a3llbDsKK+WFqiA+IHN1cm5hbWU7CivlhYIgPiBoYWlycGluOwor5YS2ID4gdmFsaWFudDsKK+WEpiA+IG1pbGxpbmc7CivlhKQgPiBvblwtZHV0eTsKK+WEkyA+IHNlcnZhbnQ7CivlhI0gPiBmb29saXNoOwor5YOvID4gYXNoYW1lZDsKK+WDpCA+IHNpbmNlcmU7Civlg44gPiBjb2xsZWN0Owor5YK8ID4gc3VybmFtZTsKK+WCmiA+IGltaXRhdGU7CivlgpQgPiBzZXJ2YW50Owor5YKBID4gb2xkXC1tYW47CivlgbkgPiBwcmVwYXJlOwor5YCjID4gaW1pdGF0ZTsKK+WAnSA+IHN1bnJpc2U7CivlgJAgPiBoYXN0aWx5Owor5YCCID4gY29tYmluZTsKK+S+tCA+IHN1cm5hbWU7CivkvocgPiBhXC1jbGFzczsKK+S+hSA+IHRvXC1naXZlOwor5L2JID4gc3VybmFtZTsKK+S8iCA+IG5lcnZvdXM7CivkvIAgPiBleGNpdGVkOwor5LuSID4ga3d1a3llbDsKK+S6vSA+IGt3dWt5ZWw7CivkurcgPiB1cHJpZ2h0Owor5Lq2ID4gc2luY2VyZTsKK+S6qiA+IGt3dWt5ZWw7CivkupcgPiBoYXJ2ZXN0Owor5Lm/ID4gdG9cLWN1cmU7CivkuawgPiB0b1wtaGFuZzsKK+S5pSA+IGt3dWt5ZWw7CivkuZsgPiBrd3VreWVsOwor5LmKID4ga3d1a3llbDsKK+S5gCA+IHN0cmV0Y2g7CivkuLcgPiBrd3VreWVsOwor5LifID4gZGlzY2FyZDsKK+S4jyA+IHBhcmFwZXQ7CivkuIYgPiBrd3VreWVsOwor5La0ID4gdG9cLWJsb3c7CivktqkgPiB0b1wtZ25hdzsKK+S2pyA+IHRvXC1nbmF3Owor5LaiID4gdG9cLWduYXc7CivktqAgPiB0b1wtZ25hdzsKK+S2niA+IHRvXC1nbmF3Owor5LaXID4gdG9cLWJpdGU7CivktbwgPiB0b1wtYm9pbDsKK+S0pyA+IHZlbmlzb247CivktJIgPiB3YWd0YWlsOwor5LOtID4gd2FndGFpbDsKK+SyrCA+IGNoaWNrZW47CivksqMgPiB0b1wtZmlzaDsKK+SynSA+IHBvbWZyZXQ7CivkspQgPiBhXC13aGFsZTsKK+SxtyA+IHRvXC1maXNoOwor5LGJID4gdGhlXC1lZWw7CivksYcgPiB0aGVcLWVlbDsKK+SwryA+IHRvXC1mZWFyOwor5LCeID4gdG9cLWNvb2s7CivksIEgPiB0b1wtbWVldDsKK+SuvCA+IHBpZWJhbGQ7CivkrrsgPiB0b1wtcHJheTsKK+SupiA+IHVudGFtZWQ7Civkra4gPiBqZXdlbHJ5Owor5K2kID4gdG9cLWNoZXc7CivkraAgPiBhXC1zbmFjazsKK+SsoSA+IHRvXC1zb2FyOwor5KydID4gYVwtc3Rvcm07CivkrJYgPiBhXC1zdG9ybTsKK+SsjiA+IGhvdFwtYWlyOwor5Ku4ID4gdG9cLWJsb3c7Civkq5ggPiBoZWFsdGh5Owor5KuSID4gZGlzZWFzZTsKK+SqoyA+IHNtYXNoZWQ7CivkqqIgPiBzbWFzaGVkOwor5KmzID4gdGFubmluZzsKK+SpnyA+IGxlYXRoZXI7CivkqZQgPiB0aGVcLWhlbTsKK+SoqCA+IHRodW5kZXI7CivkqJ4gPiB0b1wtcmFpbjsKK+SomyA+IHRvXC1yYWluOwor5KiaID4gdG9cLXJhaW47CivkqJMgPiB0aHVuZGVyOwor5KiCID4gYVwtY2hpY2s7Civkp7AgPiBhXC1tb3VuZDsKK+SnnyA+IHRvXC1za2luOwor5KeNID4gYVwtY3JhY2s7Civkpq0gPiB0b1wtb3BlbjsKK+SmiyA+IHRvXC1ncm93Owor5KWwID4gdG9cLW1lbHQ7Civkpa4gPiB0b1wtYmVhdDsKK+SliiA+IHJlZmluZWQ7CivkpJ8gPiBhXC1zcGFkZTsKK+SkmCA+IHZpbmVnYXI7CivkpJUgPiB2aW5lZ2FyOwor5KSIID4gdmluZWdhcjsKK+SjtyA+IHRvXC1wb3VyOwor5KK2ID4gYVwtc3RhdGU7CivkorAgPiB0b1wtanVtcDsKK+SirCA+IHRvXC1tb3ZlOwor5KKjID4gZGlzdGFudDsKK+SioiA+IHRvXC1wYXNzOwor5KKgID4gdG9cLXNlbmQ7CivkopkgPiB0b1wtcnVpbjsKK+SikiA+IHRvXC1tZWV0Owor5KKMID4gdG9cLXdhbGs7CivkoLwgPiB0b1wtd2VhcjsKK+SgsyA+IHRvXC13YWxrOwor5KClID4gdG9cLWxpbXA7CivkoJwgPiB0b1wtd2FsazsKK+SgmyA+IHRvXC1qdW1wOwor5KCTID4gdG9cLXdhbGs7CivkoIQgPiB0b1wtd2FsazsKK+SfviA+IHRvXC1qdW1wOwor5J+3ID4gdG9cLWp1bXA7Civkn7AgPiB0b1wtd2FsazsKK+SfrSA+IHRvXC1qdW1wOwor5J+sID4gdG9cLXdhbGs7Civkn6YgPiB0b1wtd2FsazsKK+SfkCA+IHRvXC13YWxrOwor5J+PID4gdG9cLWp1bXA7Civkn40gPiB0b1wtd2FsazsKK+SfiSA+IHRvXC13YWxrOwor5J+IID4gdG9cLXdhbGs7Civkn4cgPiB0b1wtd2FsazsKK+SfgCA+IHRvXC13YWxrOwor5J67ID4gdG9cLXdhbGs7CivknrogPiB0b1wtd2FsazsKK+SeuSA+IHRvXC13YWxrOwor5J61ID4gdG9cLWp1bXA7CivknrQgPiB0b1wtanVtcDsKK+SeryA+IHRvXC13YWxrOwor5J6rID4gdG9cLXdhbGs7CivknqUgPiB0b1wtd2FsazsKK+SepCA+IHRvXC13YWxrOwor5J6iID4gdG9cLXdhbGs7CivknqEgPiB0b1wtd2FsazsKK+SeoCA+IHRvXC13YWxrOwor5J6eID4gdG9cLXdhbGs7CivknbsgPiB0b1wtc2VsbDsKK+SdriA+IHRvXC1icmFnOwor5J2nID4gY2FwaXRhbDsKK+ScliA+IHRvXC10YWxrOwor5JyJID4gdG9cLWplc3Q7Civkm78gPiBjdW5uaW5nOwor5Ju6ID4gdG9cLXdhcm47Civkm7cgPiB0b1wtb2JleTsKK+SbsCA+IHNrZXRjaHk7Civkm6IgPiBjdW5uaW5nOwor5JudID4gdG9cLWxpa2U7Civkm5sgPiBjb3VyYWdlOwor5Jq8ID4gYXNoYW1lZDsKK+SauyA+IHRvXC1zaW5nOwor5JqxID4gaG9uZXN0eTsKK+SariA+IHRoaWNrZXI7CivkmpcgPiB0b1wtbGlmdDsKK+SajyA+IHRvXC1sb3ZlOwor5JmyID4gdG9cLW1vdmU7CivkmakgPiBjbG90aGVzOwor5JmZID4gY2xvdGhlczsKK+SZjiA+IHNsZWV2ZXM7CivkmYkgPiBjbG90aGVzOwor5Ji3ID4gc2xlZXZlczsKK+SYtiA+IHNsZWV2ZXM7CivkmLEgPiB3ZWFsdGh5Owor5JiuID4gdG9cLWxvc2U7CivkmKAgPiBncmVhdmVzOwor5JidID4gYVwtc2hpcnQ7Civkl7IgPiBmaXJlZmx5Owor5JeRID4gZmlyZWZseTsKK+SWtSA+IGluc2VjdHM7Civklp0gPiBpbnNlY3RzOwor5JaaID4gYVwtdGlnZXI7CivklpggPiBhXC10aWdlcjsKK+SWlSA+IGFcLXRpZ2VyOwor5JaEID4gdG9cLWJ1cm47CivklZ4gPiBoZW5iYW5lOwor5JWRID4gcGFyc2xleTsKK+SUuiA+IGhlYWRpbmc7CivklIAgPiBwYXJzbGV5Owor5JK2ID4gdGhlXC1za3k7CivkkpggPiBwYXJzbGV5Owor5JGnID4gYVwtc2hvcnQ7CivkkZsgPiB0b1wtbGljazsKK+SQvyA+IGdpenphcmQ7CivkkLcgPiBwYXVuY2h5Owor5JC2ID4gdG9cLWNvb2s7CivkkLQgPiBsdW1iYWdvOwor5JCrID4gb2Jlc2l0eTsKK+SQiiA+IGluc2VjdHM7Civkj50gPiBzaW5jZXJlOwor5I+WID4gYVwtd291bmQ7Civkj5EgPiB0b1wtYnVybjsKK+SPhyA+IHRvXC1oZWFyOwor5I+FID4gdG9cLWhlYXI7Civkj4MgPiB0b1wtaGVhcjsKK+SOvSA+IHRvXC1oZWFyOwor5I67ID4gdG9cLWhlYXI7CivkjrkgPiB0b1wtaGVhcjsKK+SOuCA+IHRvXC1oZWFyOwor5I6pID4gdG9cLXRpbGw7CivkjqYgPiB0b1wtdGlsbDsKK+SOpCA+IHRvXC10aWxsOwor5I6dID4gdG9cLXNvYXI7CivkjowgPiBmZWF0aGVyOwor5I22ID4gdW5pY29ybjsKK+SNsyA+IGRpc2Vhc2U7CivkjJggPiB0b1wta25pdDsKK+SMlCA+IHRvXC1zb2FrOwor5IyBID4gYVwtcGxlYXQ7Civki44gPiB0b1wtbWVuZDsKK+SKnyA+IGFkb3JuZWQ7CivkipggPiBhXC1ncmFpbjsKK+SKkiA+IHJlZmluZWQ7CivkiocgPiB0b1wtZmVlZDsKK+SJtSA+IHRvXC1mZWVkOwor5ImiID4gYVwtc2lldmU7CivkiY4gPiBhXC1jb3ZlcjsKK+SIrCA+IGFcLXNtYWxsOwor5IiqID4gYVwtc21hbGw7CivkiKUgPiB0ZW5kb25zOwor5IikID4gcGluY2VyczsKK+SIkiA+IGZyYWdpbGU7CivkiIcgPiBhXC1jb3ZlcjsKK+SHlCA+IGF0cm9waHk7Civkh40gPiB0b1wtd2FpdDsKK+SGtSA+IGFuXC1lY2hvOwor5IaoID4gdGhlXC1za3k7CivkhbggPiBhXC1ncmFpbjsKK+SEpCA+IHRvXC1zaW5rOwor5ISPID4gYml6YXJyZTsKK+SDoyA+IHRvXC1ydWluOwor5IKKID4gd2VhcG9uczsKK+SCiSA+IHdlYXBvbnM7CivkgoYgPiB3ZWFwb25zOwor5IKAID4gdG9cLXdpbms7CivkgbIgPiB0b1wtcGVlcDsKK+SBqiA+IHRvXC13aW5rOwor5IGjID4gdG9cLXdpbms7CivkgZsgPiB0b1wtbG9vazsKK+SBkiA+IHRvXC13aW5rOwor5IC7ID4gdG9cLWxvb2s7CivkgKggPiB0b1wtbG9vazsKK+SAlCA+IHRvXC1sb29rOwor47+mID4gdG9cLXRlbGw7Civjv5IgPiBpbGxuZXNzOwor47+RID4gaWxsbmVzczsKK+O/jSA+IHNjYWJpZXM7CivjvrcgPiB0b1wtYWNoZTsKK+O+rCA+IG1hbGFyaWE7CivjvqAgPiBhXC1mZXZlcjsKK+O+nyA+IHJlbGFwc2U7Civjvp4gPiBpbGxuZXNzOwor476YID4gYWlsbWVudDsKK+O+liA+IGdyaWV2ZWQ7CivjvpUgPiBhXC1jaGlsbDsKK+O+kyA+IGZhdGlndWU7CivjvpIgPiBpbGxuZXNzOwor476PID4gaWxsbmVzczsKK+O+hyA+IGlsbG5lc3M7CivjvoYgPiBlY2R5c2lzOwor476FID4gZGVmZWN0czsKK+O+giA+IGlsbG5lc3M7CivjvbQgPiBpbGxuZXNzOwor472zID4gaWxsbmVzczsKK+O9nSA+IHRvXC1zaW5rOwor472WID4gYVwtaHVtYW47CivjvLwgPiBhXC1sYWRsZTsKK+O8tyA+IGFcLWJhc2luOwor47ycID4gYVwtYmFzaW47CivjvJcgPiBhXC1icmljazsKK+O7uSA+IGFcLWNyYWNrOwor47uDID4gY3Jvb2tlZDsKK+O6siA+IGJ1dHRvbnM7CivjupcgPiB0b1wtYml0ZTsKK+O6iiA+IGFcLWJlYXN0Owor47m+ID4gY3VubmluZzsKK+O5vSA+IHRvXC1iaXRlOwor47meID4gdG9cLWJhcms7CivjuZsgPiBhXC10YW1lZDsKK+O4pyA+IHRvXC1iaXRlOwor47iQID4gdG9cLWJ1cm47CivjuI0gPiB0b1wtYnVybjsKK+O3uyA+IHdpdGhvdXQ7Civjt5MgPiBhXC10b3JjaDsKK+O3iiA+IHRvXC1idXJuOwor47eJID4gdG9cLWlyb247Civjt4UgPiB0b1wtY29vazsKK+O2riA+IHRvXC1idXJuOwor47arID4gdG9cLWJ1cm47CivjtqMgPiB0b1wtYnVybjsKK+O2lyA+IHdlbGxcLXVwOwor47aTID4gdG9cLXNpbms7CivjtocgPiBhXC1mZXJyeTsKK+O1uCA+IHRvXC1ib2lsOwor47W0ID4gdG9cLXNpbms7CivjtaMgPiB0aGlyc3R5Owor47WSID4gYm9pbGluZzsKK+O1jCA+IHRvXC1mbG93Owor47WFID4gYVwtcml2ZXI7CivjtL8gPiBib2lsaW5nOwor47SJID4gdmFyaW91czsKK+O0hyA+IHRvXC13YWRlOwor47SFID4gdG9cLW1lbHQ7Civjs7ogPiB0b1wtc3dpbTsKK+OzrSA+IHNwaXR0bGU7Civjs6wgPiBhblwtZWRkeTsKK+OzqiA+IGFcLXJpdmVyOwor47OmID4gYVwtcml2ZXI7Civjs5kgPiBhXC1icm9vazsKK+OzhSA+IHRvXC1mbG93Owor47OEID4gc3BpdHRsZTsKK+OyuiA+IHRvXC13YXNoOwor47KFID4gdG9cLWJpbmQ7CivjsoIgPiB0b1wtcHVzaDsKK+OygSA+IHRvXC1iZWF0Owor47KAID4gdG9cLWJlYXQ7Civjsa4gPiB0b1wtb3BlbjsKK+OxliA+IHRvXC1zdGF5Owor47GMID4gdG9cLXRha2U7CivjsYQgPiB0b1wtc3BpdDsKK+OxgCA+IHRvXC1iaXRlOwor47C1ID4gdG9cLXN1Y2s7CivjsJUgPiBhXC1sYWRsZTsKK+OvuyA+IHRvXC1iaW5kOwor46+5ID4gdG9cLXNob3c7Civjr7ggPiBhXC1iYXNpbjsKK+OvkyA+IGFcLWNvdWNoOwor46+QID4gdHVidWxhcjsKK+OviyA+IGFcLWNoZXN0Owor4664ID4gdG9cLXNlbmQ7CivjrpsgPiBhXC1zcG9vbjsKK+OtsCA+IHRvXC1rbm93Owor462sID4gdG9cLWJlYXQ7CivjraogPiBhXC1zaHJ1YjsKK+OtjCA+IGFcLWJhc2luOwor462IID4gYVwtYmFzaW47CivjrLwgPiB0b1wtaGF2ZTsKK+OsnSA+IG9ic2N1cmU7CivjrJQgPiB0b1wtZGVmeTsKK+OsgyA+IHN1bnJpc2U7Civjq7QgPiB0b1wtcm9hcjsKK+OrsyA+IG1vcm5pbmc7Civjq6cgPiB2aW9sZW50Owor46udID4gdGhlXC1zdW47Civjq5kgPiB0aGVcLXN1bjsKK+OrkSA+IHB1cnBvc2U7CivjqrwgPiB0b1wtcHVsbDsKK+OqsSA+IGVsZWdhbnQ7Civjqq8gPiB0b1wtbGlmdDsKK+OqriA+IHRvXC1iZWF0Owor46qoID4gdG9cLW1lbmQ7CivjqqcgPiB0b1wtYmVhdDsKK+OqpiA+IHRvXC1iZWF0Owor46qlID4gdG9cLXRha2U7CivjqqIgPiB0b1wtYmVhdDsKK+OqoCA+IHRvXC1wZWNrOwor46qdID4gdG9cLWJlYXQ7CivjqpcgPiB0b1wtb3BlbjsKK+OqlSA+IHRvXC1iZWF0Owor46qSID4gdG9cLXJ1aW47Civjqo8gPiB0b1wtcnVpbjsKK+OqgSA+IHRvXC1ob2xkOwor46m2ID4gdG9cLWhvbGQ7CivjqbUgPiB0b1wtYmVhdDsKK+OpsyA+IHRvXC1ob2xkOwor46mwID4gdG9cLXN0YWI7Civjqa8gPiB0b1wtbW92ZTsKK+OprCA+IHRvXC1iZWF0Owor46mkID4gdG9cLW9wZW47CivjqaMgPiB0b1wtbW92ZTsKK+OpoiA+IHRvXC1iZWF0Owor46mVID4gdG9cLWhhdWw7CivjqYsgPiB0b1wtYmVhdDsKK+OotyA+IHRvXC13aXBlOwor46iwID4gdG9cLXR1cm47CivjqKYgPiB0b1wtaG9sZDsKK+OopCA+IHRvXC13aXBlOwor76iiID4gc2V2ZXJhbDsKK++oniA+IGZlYXRoZXI7CivvqJ0gPiBlc3NlbmNlOwor46iWID4gdG9cLXN0YWI7CivjqI8gPiB0b1wtYmVhdDsKK+OoiyA+IHRvXC1iZWF0Owor76iJID4gZGVzY2VuZDsKK++ohiA+IHZpb2xlbnQ7CivjqIYgPiB0b1wta2lsbDsKK+OogiA+IHRvXC1iZWF0Owor46e/ID4gdG9cLWJ1bXA7Civjp7sgPiBhXC10aG9ybjsKK+OnqyA+IHRvXC1ob2xkOwor46eqID4gdG9cLXJ1aW47Civjp6QgPiB0b1wtanVtcDsKK+OnoyA+IHRvXC1zdG9wOwor46ehID4gdG9cLW1vdmU7Civjp58gPiB0b1wtd2lwZTsKK+OnnSA+IHRvXC10YWtlOwor76ebID4gdG9cLWxlYWQ7Civjp5wgPiB0b1wtaG9sZDsKK++nmCA+IHN0YXR1dGU7Civvp5YgPiBiZVwtbG9zdDsKK+OnkyA+IHRvXC1sZWFkOwor46eSID4gdG9cLWJlYXQ7Civjp5EgPiB0b1wtd2F2ZTsKK+OnkCA+IHRvXC1ob2xkOwor46eKID4gdG9cLXB1c2g7Civvp4cgPiBzdXJuYW1lOwor46eIID4gdG9cLXB1bGw7Civjp4cgPiB0b1wtaG9sZDsKK++ngyA+IGRpc3RhbnQ7Civjp4QgPiB0b1wtdGFrZTsKK++ngCA+IHRvXC1idXJuOwor46a5ID4gYVwtc3BlYXI7CivjprUgPiB0b1wta2lsbDsKK+OmrSA+IHRvXC1waXR5Owor46asID4gYXNoYW1lZDsKK++mqCA+IGNvbW1hbmQ7CivvpqYgPiBhXC1ibGluZDsKK++moiA+IHVwcmlnaHQ7Civjpp4gPiBncmlldmVkOwor76aXID4gY29ubmVjdDsKK+OmlSA+IHRob3VnaHQ7CivvpokgPiBzdXJuYW1lOwor76aAID4gc3VybmFtZTsKK++lviA+IG1lYXN1cmU7Civjpb0gPiBmZWVsaW5nOwor46W5ID4gdG9cLW1vdmU7CivvpbMgPiBwaWNrXC11cDsKK+OlryA+IGNhcmVmdWw7CivvpawgPiBzdG9wXC11cDsKK+OlpCA+IHRvXC1waXR5Owor76WhID4gdG9cLWxlYWQ7CivvpZ0gPiBwcm9taXNlOwor46WVID4gdG9cLXBpdHk7CivjpZIgPiBjb3JydXB0Owor46WPID4gYmFzaGZ1bDsKK+OljCA+IHBydWRlbnQ7CivvpYogPiByYW1wYXJ0Owor76WJID4gdGh1bmRlcjsKK+OlhCA+IHRvXC1waXR5Owor46S/ID4gdG9cLWxvdmU7CivjpL0gPiBncmlldmVkOwor76S5ID4gZm9vbGlzaDsKK+OkuiA+IGJsdXJyZWQ7CivvpLYgPiBjYXB0dXJlOwor46S2ID4gY29uZnVzZTsKK++ksyA+IGNvdHRhZ2U7CivvpLAgPiBjYXB0dXJlOwor46StID4gdW50YW1lZDsKK+OkoCA+IGdyaWV2ZWQ7CivvpJ0gPiByYWlsaW5nOwor76SOID4gbGVwcm9zeTsKK+OkhSA+IHRvXC1sb3ZlOwor76SDID4gc3VybmFtZTsKK+OkgyA+IGplYWxvdXM7CivjpIIgPiBhbnhpb3VzOwor46O3ID4gd2Fsa2luZzsKK+OjtiA+IHRvXC13YWxrOwor46OsID4gdG9cLXdhbGs7Civjo5wgPiB0b1wtd2FsazsKK+OjmyA+IHdhbGtpbmc7Civjo4MgPiB0b1wtc2VsbDsKK+OjgiA+IHRvXC1iaW5kOwor46K8ID4gYXdrd2FyZDsKK+OioyA+IHRvXC1saWZ0Owor46KdID4gY290dGFnZTsKK+OilSA+IGhhcm1vbnk7CivjobggPiBhXC1ob3VzZTsKK+OhsCA+IGFcLWhvdXNlOwor46GrID4gYW54aW91czsKK+OhqCA+IGFcLWxhYmVsOwor46GYID4gc2NyZWVuczsKK+OhkyA+IGRyYXdlcnM7CivjoYIgPiByZW1haW5zOwor46CtID4gdG9cLW9wZW47Civjn6cgPiBhXC1jbGlmZjsKK+OeuiA+IGFcLXRyaWJlOwor456rID4gdG9cLXdhbGs7CivjnqcgPiB0b1wtbWVldDsKK+OepCA+IHRvXC1oZWxwOwor456hID4gdG9cLW9wZW47CivjnoAgPiB0b1wtYnVtcDsKK+OdvCA+IGNyb29rZWQ7CivjnbEgPiBhXC1kcmVhbTsKK+OdoiA+IGFcLWhvdXNlOwor452AID4gdG9cLWxpa2U7CivjnL4gPiBhXC1jaGlsZDsKK+OcqSA+IGplYWxvdXM7CivjnJMgPiB3b21hbmx5Owor45yJID4gd29tYW5seTsKK+OchyA+IHVuaGFwcHk7Civjm78gPiBjdW5uaW5nOwor45u7ID4gd29tYW5seTsKK+ObryA+IHRvXC1zb2FyOwor45uVID4gd29tYW5seTsKK+OaoiA+IGFcLXNsYXZlOwor45mUID4gYVwtZmVuY2U7CivjmZAgPiB0b1wtbW92ZTsKK+OZjyA+IGNhdmVybnM7CivjmLggPiB0b1wtYnVyeTsKK+OYtyA+IG11Z3dvcnQ7CivjmKkgPiB0b1wtbWF0ZTsKK+OYlyA+IHdoaXNwZXI7CivjmJUgPiB0b1wtY2FsbDsKK+OYgiA+IGFzaGFtZWQ7CivjmIEgPiB0b1wtY2FsbDsKK+OXvSA+IGFuXC1lY2hvOwor45eyID4gdG9cLWNhbGw7Civjl7EgPiB0b1wtc3VjazsKK+OXrSA+IGFcLXNvdW5kOwor45ekID4gYXNoYW1lZDsKK+OXjSA+IHRvXC1nbmF3Owor45eDID4gdGhlXC1saXA7Civjlr8gPiBhXC1zb3VuZDsKK+OWuyA+IHdoaXNwZXI7CivjlrogPiB0b1wtYmxvdzsKK+OWrSA+IHRvXC1saWNrOwor45alID4gdG9cLXNwaXQ7CivjlbcgPiB0b1wtY2FsbDsKK+OVsSA+IHRvXC1iYXJrOwor45WuID4gdG9cLWNoZXc7CivjlZ8gPiB0b1wtc2lnbjsKK+OVniA+IGFcLWJydXNoOwor45WcID4gaGlzdG9yeTsKK+OUvyA+IGFcLXRhbGx5Owor45StID4gYVwtc3Bvb247CivjlKEgPiBncmVhdGx5Owor45SCID4gdG9cLXBhcmU7Civjk7IgPiB0b1wtcGFyZTsKK+OTsCA+IHRvXC1yaXZlOwor45OlID4gdG9cLWtpbGw7Civjk58gPiB0b1wtcGVlbDsKK+OTkCA+IHRvXC1yYWluOwor45K8ID4gYXZlcmFnZTsKK+OSuCA+IHRvXC1vYmV5Owor45K0ID4gdG9cLWNvbWU7CivjkqYgPiBwdXBwZXRzOwor45KeID4gdmFsaWFudDsKK+OSlSA+IHVueWllbGQ7CivjkpIgPiBhXC1zbGF2ZTsKK+OSkSA+IGdyb3dcLXVwOwor45KJID4gYWxhcm1lZDsKK+ORuSA+IHRvXC1tZWV0Owor45GQID4gdG9cLW1vdmU7CivjkYUgPiB0b1wtbWFrZTsKK+ORgyA+IHRvXC1wdWxsOwor45C8ID4gdG9cLXNhdmU7CivjkK4gPiB0b1wtaGVscDsKK+OQgSA+IHRvXC1saWNrOwor5pivID4gaW5kZWVkOwor6L+rID4gY29lcmNlOwor5b+cID4gc2hvdWxkOwor5b+YID4gZm9yZ2V0Owor5Zu9ID4gbmF0aW9uOwor6L+UID4gcmV0dXJuOwor5b+NID4gZW5kdXJlOwor6L+EID4gZXh0ZW5kOwor5b+FID4gc3VyZWx5Owor5Ye6ID4gZ29cLW91dDsKK+i+vyA+IGZvbGxvdzsKK+eevCA+IGV5ZWxpZDsKK+W+lyA+IG9idGFpbjsKK+i+tyA+IHNtb290aDsKK+W+tCA+IHN1bW1vbjsKK+W+syA+IHZpcnR1ZTsKK+eerSA+IGJyaWdodDsKK+W+qSA+IHJldHVybjsKK+i+myA+IGJpdHRlcjsKK+W+kCA+IHNsb3dseTsKK+W+jCA+IGJlaGluZDsKK+W+iiA+IGxpbmdlcjsKK+W9sSA+IHNoYWRvdzsKK+S6iyA+IGFmZmFpcjsKK+i9nyA+IHJ1bWJsZTsKK+W9iCA+IHBlbGxldDsKK+S4uyA+IG1hc3RlcjsKK+W8tyA+IHN0cm9uZzsKK+W8myA+IGxvb3NlbjsKK+awkSA+IHBlb3BsZTsKK+ecjCA+IGNvdW50eTsKK+eOsCA+IGFwcGVhcjsKK+WIhiA+IGRpdmlkZTsKK+S6myA+IGxpdHRsZTsKK+ebuCA+IG11dHVhbDsKK+WbniA+IHJldHVybjsKK+eQhiA+IHJlYXNvbjsKK+aYjiA+IGJyaWdodDsKK+ebiiA+IHByb2ZpdDsKK+ivnSA+IHNwZWVjaDsKK+WQkSA+IHRvd2FyZDsKK+WumiA+IGRlY2lkZTsKK+W6qyA+IGFybW9yeTsKK+W6piA+IGRlZ3JlZTsKK+W6lSA+IGJvdHRvbTsKK+aJkyA+IHN0cmlrZTsKK+S9jSA+IHRocm9uZTsKK+W6jyA+IHNlcmllczsKK+W5vCA+IGluZmFudDsKK+W5siA+IG9wcG9zZTsKK+WGhSA+IGluc2lkZTsKK+eZqiA+IHNwYXNtczsKK+WKoCA+IGFkZFwtdG87CivljJYgPiBjaGFuZ2U7CivnmYwgPiBjYW5jZXI7CivluLggPiBjb21tb247CivouLAgPiBleGNlZWQ7CivluIIgPiBtYXJrZXQ7CivluLAgPiByZXR1cm47CivmiY0gPiB0YWxlbnQ7CivkvY8gPiByZXNpZGU7CivlkZggPiBtZW1iZXI7Civlt7sgPiBzY3JvbGw7CivmgKcgPiBuYXR1cmU7CivmiqUgPiByZXBvcnQ7CivnpZ4gPiBzcGlyaXQ7CivmlbAgPiBudW1iZXI7Civot6EgPiBzZWFyY2g7Civljp8gPiBzb3VyY2U7Civlt6EgPiBwYXRyb2w7Civlt50gPiBzdHJlYW07CivlupQgPiBzaG91bGQ7CivotoogPiBleGNlZWQ7CivnloogPiByZXBlYXQ7Civns7sgPiBzeXN0ZW07CivnlbMgPiByZXBlYXQ7CivotasgPiBicmlnaHQ7Civlj4ogPiBleHRlbmQ7CivliLYgPiBzeXN0ZW07CivnlaAgPiBnYXJkZW47Civop6MgPiBsb29zZW47CivorrAgPiByZWNvcmQ7CivmnpcgPiBmb3Jlc3Q7CivotJQgPiBzdHJvbmc7Civnu58gPiBnb3Zlcm47CivlrZcgPiBsZXR0ZXI7Civls7YgPiBpc2xhbmQ7Civos6ogPiBtYXR0ZXI7CivorrogPiBkZWJhdGU7CivosrAgPiBib3Jyb3c7CivmjIcgPiBmaW5nZXI7CivosqEgPiB3ZWFsdGg7CivoirEgPiBmbG93ZXI7CivlsaQgPiBzdG9yZXk7CivmnaEgPiBjbGF1c2U7Civlj5ggPiBjaGFuZ2U7Civor6UgPiBzaG91bGQ7CivlsY0gPiBjb3Jwc2U7CivkvKAgPiBzdW1tb247CivmsrsgPiBnb3Zlcm47CivlhrMgPiBkZWNpZGU7CivlsYAgPiBidXJlYXU7Civlip4gPiBtYW5hZ2U7CivosLcgPiB2YWxsZXk7Civln44gPiBjYXN0bGU7CivniLYgPiBmYXRoZXI7CivlvLogPiBzdHJvbmc7CivlsI4gPiBkaXJlY3Q7CivlsIEgPiBsZXR0ZXI7Civnj74gPiBhcHBlYXI7Civlr6cgPiByZXBvc2U7Civpu4QgPiB5ZWxsb3c7CivlvrcgPiBldGhpY3M7CivlrrMgPiBpbmp1cmU7Civlrq4gPiBwYWxhY2U7Civmib4gPiBzZWFyY2g7Civlj4sgPiBmcmllbmQ7CivoroogPiBjaGFuZ2U7CivmlLkgPiBjaGFuZ2U7CivlroggPiBkZWZlbmQ7CivoroMgPiBwcmFpc2U7CivpmYUgPiBib3JkZXI7CivljZUgPiBzaW5nbGU7Civlr7wgPiBkaXJlY3Q7CivnjbIgPiBvYnRhaW47CivlraQgPiBvcnBoYW47CivmoKEgPiBzY2hvb2w7CivnjYQgPiBwcmlzb247CivnjL4gPiBjcmFmdHk7CivorJkgPiBodW1ibGU7CivorI4gPiByaWRkbGU7Civpmo8gPiBmb2xsb3c7Civni7kgPiBuYXJyb3c7Civni60gPiBuYXJyb3c7Civmr40gPiBtb3RoZXI7Civni5kgPiBhblwtYXBlOwor6KuWID4gZGViYXRlOwor5ZuiID4gc3BoZXJlOwor54uCID4gaW5zYW5lOwor6KqyID4gbGVzc29uOwor6IumID4gYml0dGVyOwor5oubID4gYmVja29uOwor5YW0ID4gdGhyaXZlOwor6KmyID4gc2hvdWxkOwor57qmID4gdHJlYXR5Owor6KmxID4gc3BlZWNoOwor6KmpID4gcG9ldHJ5Owor54miID4gcHJpc29uOwor57udID4gdG9cLWN1dDsKK+mAiSA+IGNob29zZTsKK+WkjSA+IHJldHVybjsKK+aYnyA+IGFcLXN0YXI7CivniLogPiBmYXRoZXI7CivoqLQgPiBhY2N1c2U7CivoqJ8gPiBhY2N1c2U7CivlpoggPiBtb3RoZXI7CivniJsgPiByb3R0ZW47CivoqJggPiByZWNvcmQ7CivmtoggPiB2YW5pc2g7CivlqJggPiBtb3RoZXI7Civnh60gPiBjYW5kbGU7Civlp6sgPiBiZWF1dHk7CivmnaggPiB3aWxsb3c7CivmmJMgPiBjaGFuZ2U7CivkuKUgPiBzdHJpY3Q7CivnhoogPiBhXC1iZWFyOwor5aaEID4gYWJzdXJkOwor57qqID4gcmVjb3JkOwor6IuPID4gcmV2aXZlOwor562UID4gYW5zd2VyOwor5aWuID4gc3RyaXZlOwor54WpID4gYm90aGVyOwor6KWkID4gcmFnZ2VkOwor5Ye7ID4gc3RyaWtlOwor5pyLID4gZnJpZW5kOwor5L6bID4gc3VwcGx5Owor5aSuID4gY2VudGVyOwor5YiXID4gYVwtbGluZTsKK+eEpiA+IGJ1cm5lZDsKK+eItyA+IGZhdGhlcjsKK+m+mSA+IGRyYWdvbjsKK+ikkiA+IHByYWlzZTsKK+WkjyA+IHN1bW1lcjsKK+WkiSA+IGNoYW5nZTsKK+aYpSA+IHNwcmluZzsKK+ikhyA+IHJlcGVhdDsKK+eBtSA+IHNwaXJpdDsKK+ijoSA+IGluc2lkZTsKK+iviSA+IGFjY3VzZTsKK+aAgSA+IG1hbm5lcjsKK+ijjyA+IGluc2lkZTsKK+i0qCA+IG1hdHRlcjsKK+iiliA+IHNsZWV2ZTsKK+WbrSA+IGdhcmRlbjsKK+iiiyA+IHBvY2tldDsKK+WJryA+IGFzc2lzdDsKK+WknyA+IGVub3VnaDsKK+iOtyA+IG9idGFpbjsKK+ivlyA+IHBvZXRyeTsKK+ihlyA+IHN0cmVldDsKK+WgsSA+IHJlcG9ydDsKK+a/gCA+IGFyb3VzZTsKK+mTtiA+IHNpbHZlcjsKK+mYtSA+IGNvbHVtbjsKK+WxgiA+IHN0b3JleTsKK+S6riA+IGJyaWdodDsKK+eugCA+IHNpbXBsZTsKK+avkiA+IHBvaXNvbjsKK+W9kiA+IHJldHVybjsKK+aNoiA+IGNoYW5nZTsKK+a5liA+IGFcLWxha2U7CivonYkgPiBjaWNhZGE7Civov70gPiBwdXJzdWU7CivpvKwgPiB3ZWFzZWw7Civnu5wgPiBlbm1lc2g7CivmvKAgPiBkZXNlcnQ7CivonJggPiBzcGlkZXI7CivlnJggPiBzcGhlcmU7CivljaAgPiBkaXZpbmU7CivlnJMgPiBjaXJjbGU7CivlnJIgPiBnYXJkZW47CivotbYgPiBwdXJzdWU7CivlhbAgPiBvcmNoaWQ7CivlnIsgPiBuYXRpb247CivlnIMgPiBnYXJkZW47CivmupAgPiBzcHJpbmc7Civlm6MgPiBzcGhlcmU7CivpmLYgPiBzdGFpcnM7Civom5sgPiBzcGlkZXI7Civpu5kgPiBzaWxlbnQ7CivkvLggPiBleHRlbmQ7Civpu5ggPiBzaWxlbnQ7CivkvZsgPiBidWRkaGE7CivlmrQgPiBzdHJpY3Q7CivmjKUgPiBkaXJlY3Q7CivmlYggPiByZXN1bHQ7CivmlLsgPiBhdHRhY2s7CivnrZYgPiBzY2hlbWU7CivpmLIgPiBkZWZlbmQ7CivogqEgPiB0aGlnaHM7CivomK0gPiBvcmNoaWQ7CivojqsgPiBkb1wtbm90Owor5ZiYID4gZXhoYWxlOwor5Y6/ID4gY291bnR5Owor6JiHID4gcmV2aXZlOwor56qXID4gd2luZG93Owor5re7ID4gYXBwZW5kOwor5re3ID4gdG9cLW1peDsKK+m3siA+IGNvbmRvcjsKK+WNmiA+IGdhbWJsZTsKK+W8uSA+IHBlbGxldDsKK+iXpCA+IHJhdHRhbjsKK+WdjyA+IHJvdHRlbjsKK+aZuiA+IHdpc2RvbTsKK+WymyA+IGlzbGFuZDsKK+aKlyA+IHJlc2lzdDsKK+WWsCA+IHRvXC1lYXQ7Civllq4gPiBzaW5nbGU7CivniLkgPiBmYXRoZXI7CivllqcgPiBsaXZlbHk7CivllokgPiB0aHJvYXQ7CivniLggPiBmYXRoZXI7CivmtZogPiBkcmVkZ2U7CivpgIMgPiBlc2NhcGU7CivpqoIgPiBhY2N1c2U7CivllLggPiByZWNpdGU7CivpnZYgPiBwYWNpZnk7Civnp5ggPiBzZWNyZXQ7CivotKIgPiB3ZWFsdGg7CivmrLIgPiBkZXNpcmU7CivlvoEgPiBpbnZhZGU7Civnp4sgPiBhdXR1bW47CivlkLggPiBpbmhhbGU7Civps6kgPiBwaWdlb247Civlk6EgPiBtZW1iZXI7CivmgrIgPiBzb3Jyb3c7Civms4kgPiBzcHJpbmc7CivmoaUgPiBicmlkZ2U7CivlirIgPiBzdHJvbmc7Civlkr0gPiB0aHJvYXQ7CivokrsgPiBydXNoZXM7CivlupMgPiBhcm1vcnk7CivlgJ8gPiBib3Jyb3c7CivmsbogPiBkZWNpZGU7CivokaMgPiBkaXJlY3Q7CivokaEgPiBncmFwZXM7CivmsZogPiBmaWx0aHk7CivmjqcgPiBhY2N1c2U7Civog7ggPiBicmVhc3Q7Civor74gPiBsZXNzb247Civpgq4gPiBwb3N0YWw7CivlkJ0gPiBzdGluZ3k7CivmqKogPiBhY3Jvc3M7CivlgaUgPiBzdHJvbmc7CivokI4gPiB3aXRoZXI7CivokIQgPiBncmFwZXM7CivlnIYgPiBjaXJjbGU7CivljbcgPiBzY3JvbGw7Civoj6sgPiBjZWxlcnk7Civmi6kgPiBzZWxlY3Q7CivmgaggPiBoYXRyZWQ7Civnq7kgPiBiYW1ib287Civoj5MgPiBmcnVpdHM7CivlrqsgPiBwYWxhY2U7Civml5cgPiBiYW5uZXI7CivmrrsgPiBjYXNpbmc7CivljrMgPiBzdHJpY3Q7CivmrpggPiBpbmp1cmU7CivmrosgPiBpbmp1cmU7CivmrbggPiByZXR1cm47CivnqLMgPiBzdGFibGU7Civov7kgPiB0cmFjZXM7CivpkoggPiBuZWVkbGU7Civmm78gPiBjaGFuZ2U7CivljZEgPiBodW1ibGU7CivmgoQgPiBzaWxlbnQ7CivlpYsgPiBzdHJpdmU7Civmq7sgPiBjaGVycnk7CivlvIMgPiByZWplY3Q7Civng6YgPiBib3RoZXI7CivmirUgPiByZXNpc3Q7CivnoIEgPiBudW1iZXI7CivlirEgPiBzdHJpdmU7CivntKsgPiBwdXJwbGU7Civmi5QgPiB1cHJvb3Q7Civoip0gPiBzZXNhbWU7CivmooEgPiBicmlkZ2U7CivotY8gPiByZXdhcmQ7CivlioMgPiBkaXZpZGU7Civmj5IgPiBpbnNlcnQ7CivpqaIgPiBkb25rZXk7CivlhqwgPiB3aW50ZXI7CivmiakgPiBleHBhbmQ7CivmqZggPiBvcmFuZ2U7CivmqYsgPiBicmlkZ2U7CivpgLwgPiBjb21wZWw7CivpqLcgPiBoYXJhc3M7CivliLkgPiB0ZW1wbGU7CivplZwgPiBtaXJyb3I7CivmsaEgPiBmaWx0aHk7CivmqJkgPiBhXC1tYXJrOwor54uxID4gcHJpc29uOwor6aiSID4gaGFyYXNzOwor6IiMID4gdG9uZ3VlOwor5qOuID4gZm9yZXN0Owor6IiIID4gdGhyaXZlOwor5qe9ID4gdHJvdWdoOwor5oCoID4gaGF0cmVkOwor6Ie8ID4gbW9ydGFyOwor5LyPID4gY3JvdWNoOwor5oSkID4gcmVzZW50Owor5L+EID4gc3VkZGVuOwor5YeNID4gZnJlZXplOwor5qeMID4gaGFtbWVyOwor56iNID4gbGl0dGxlOwor57GNID4gcmVjb3JkOwor5L61ID4gaW52YWRlOwor6Zi7ID4gaW1wZWRlOwor5oWnID4gYnJpZ2h0Owor6aWRID4gc3RhcnZlOwor5pmDID4gYnJpZ2h0Owor6IWRID4gYm93ZWxzOwor54OCID4gcm90dGVuOwor5YWOID4gcmFiYml0Owor6IWLID4gYXJtcGl0Owor5bC4ID4gY29ycHNlOwor5qS/ID4gZmF0aGVyOwor5YSYID4gdXRtb3N0Owor5bSHID4gZXN0ZWVtOwor6aSTID4gaHVuZ3J5Owor5qSOID4gaGFtbWVyOwor5qO6ID4gY29mZmluOwor57KJID4gcG93ZGVyOwor55u+ID4gc2hpZWxkOwor6aOiID4gaHVuZ2VyOwor6L2wID4gcnVtYmxlOwor5aW4ID4gY3JhZnR5Owor6YKmID4gbmF0aW9uOwor5qOEID4gcmVqZWN0Owor6aW/ID4gaHVuZ3J5Owor5o2VID4gYXJyZXN0Owor5YKzID4gc3VtbW9uOwor5qKvID4gbGFkZGVyOwor5oyjID4gc3RyaXZlOwor6IGYID4gZW5nYWdlOwor5qKdID4gY2xhdXNlOwor6ICQID4gZW5kdXJlOwor5qKDID4gYVwtY2x1YjsKK+mhqyA+IHNoaXZlcjsKK+ahnCA+IGNoZXJyeTsKK+mXtyA+IGdsb29teTsKK+mhmCA+IGRlc2lyZTsKK+aClCA+IHJlcGVudDsKK+mCgCA+IGludml0ZTsKK+mipCA+IHNoaXZlcjsKK+mgrCA+IGNoZWVrczsKK+mgpCA+IGNoZWVrczsKK+aCoyA+IHN1ZmZlcjsKK+S4kCA+IGJlZ2dhcjsKK+afsSA+IHBpbGxhcjsKK+afmiA+IHBvbWVsbzsKK+e/jCA+IGJyaWdodDsKK+afhCA+IGhhbmRsZTsKK+S+riA+IGluc3VsdDsKK+mTnCA+IGNvcHBlcjsKK+aelSA+IHBpbGxvdzsKK+e9uSA+IHNvcnJvdzsKK+e9tSA+IGFjY3VzZTsKK+adtSA+IHBlc3RsZTsKK+aVsiA+IHN0cmlrZTsKK+mdoSA+IGRpdmlkZTsKK+aJryA+IHJpcFwtdXA7CivpibQgPiBtaXJyb3I7CivotosgPiBoYXN0ZW47CivkvZAgPiBhc3Npc3Q7CivpgIogPiBodW1ibGU7CivpnYggPiBzcGlyaXQ7CivmnLQgPiBzaW1wbGU7CivmnK0gPiBsZXR0ZXI7CivkvJ0gPiBzdW1tb247CivkvI4gPiB0YWxlbnQ7CivkuLIgPiBzdHJpbmc7CivpnIogPiBzcGlyaXQ7Civpm7IgPiBjbG91ZHM7CivnhpkgPiBicmlnaHQ7CivlupkgPiB0ZW1wbGU7Civku48gPiBidWRkaGE7Civpm4wgPiBmZW1hbGU7Civpm4cgPiBlbXBsb3k7CivpmqggPiBmb2xsb3c7CivpmpsgPiBib3JkZXI7Civpmo4gPiBzdGFpcnM7CivpmoUgPiBjb3JuZXI7CivphbcgPiBzdHJvbmc7CivkubMgPiBicmVhc3Q7CivnqKMgPiByZXZpdmU7CivpmaMgPiBjb2x1bW47CivnuZUgPiByZXBhaXI7CivmmK0gPiBicmlnaHQ7Civmo4kgPiBjb3R0b247CivmkJwgPiBzZWFyY2g7CivnuJsgPiB0b1wtdGllOwor6LCFID4gZXhjdXNlOwor54ObID4gY2FuZGxlOwor5ZGIID4gc3VibWl0Owor57eaID4gdGhyZWFkOwor5ouTID4gZXhwYW5kOwor5pWmID4gZXN0ZWVtOwor5pW4ID4gbnVtYmVyOwor5pW3ID4gc3ByZWFkOwor57WxID4gZ292ZXJuOwor6IS+ID4gc3BsZWVuOwor57WhID4gZW5tZXNoOwor57SzID4gZ2lyZGxlOwor6bmwID4gZmFsY29uOwor57SEID4gdHJlYXR5Owor57SAID4gcmVjb3JkOwor5oSaID4gc3R1cGlkOwor57OeID4gbWFudXJlOwor57KnID4gdG9pbGV0Owor5pKDID4gc3RyaWtlOwor6aWlID4gaHVuZ2VyOwor6ZGSID4gbWlycm9yOwor6YC7ID4gcGF0cm9sOwor57ChID4gc2ltcGxlOwor6Y+hID4gbWlycm9yOwor5o+bID4gY2hhbmdlOwor5o6hID4gZ2F0aGVyOwor5biVID4gdHVyYmFuOwor5Ya7ID4gZnJlZXplOwor6LCmID4gaHVtYmxlOwor5o2cID4gc2VhcmNoOwor5LirID4gZm9ya2VkOwor54WMID4gYnJpZ2h0Owor5oy/ID4gaW5zZXJ0Owor5ouQID4ga2lkbmFwOwor6I2QID4gcmVwZWF0Owor5YCqID4gZmVlYmxlOwor6YyQID4gZ2ltbGV0Owor6aqaID4gaGFyYXNzOwor5a+eID4gc2lsZW50Owor56+uID4gYmFza2V0Owor5L6EID4gbmVwaGV3Owor5ouZID4gc3R1cGlkOwor5Y+JID4gY3JvdGNoOwor5oCWID4gdGVycm9yOwor5oqcID4gdXByb290Owor56qTID4gd2luZG93Owor5oqJID4gY2hvb3NlOwor6YqFID4gY29wcGVyOwor6YqAID4gc2lsdmVyOwor6LCcID4gcmlkZGxlOwor6aKBID4gY29uZmVyOwor6aKKID4gY2hlZWtzOwor5ZKVID4gbXVtYmxlOwor6Ii1ID4gcnVkZGVyOwor5oOpID4gcHVuaXNoOwor5ZKWID4gY29mZmVlOwor6YedID4gbmVlZGxlOwor5oeJID4gc2hvdWxkOwor5bC5ID4gZ292ZXJuOwor5oakID4gcmVzZW50Owor5rezID4gaG9uZXN0Owor54y0ID4gbW9ua2V5Owor5bymID4gc3RyaW5nOwor57yaID4gdG9cLXRpZTsKK+aFiyA+IG1hbm5lcjsKK+aFhCA+IHNoaXZlcjsKK+mZiyA+IG5hcnJvdzsKK+mDtSA+IHBvc3RhbDsKK+eqhCA+IG5hcnJvdzsKK+mptCA+IGRvbmtleTsKK+WjsyA+IGNhc2luZzsKK+mciSA+IG1pbGRldzsKK+iKpiA+IHJ1c2hlczsKK+iDsyA+IGFybXBpdDsKK+aCvCA+IGdyaWV2ZTsKK+aCtiA+IGdsb29teTsKK+mAjSA+IHJhbWJsZTsKK+aCtCA+IHN1ZmZlcjsKK+iAjSA+IGZyb2xpYzsKK+eyqiA+IG1hbnVyZTsKK+aNhiA+IHRpZVwtdXA7CivpgbggPiBjaG9vc2U7CivpgZwgPiBodW1ibGU7CivlhZQgPiByYWJiaXQ7CivpgYogPiB3YW5kZXI7CivpgJsgPiByYW1ibGU7CivljIggPiBicmVhc3Q7Civorr0gPiByZWNpdGU7Civmi6MgPiBjaG9vc2U7CivogL8gPiBicmlnaHQ7Civlu78gPiB0d2VudHk7Civor7UgPiByZWNpdGU7CivohbsgPiBncmVhc3k7CivnvIYgPiBoYXdzZXI7CivpnpEgPiB0YXRhcnM7CivmsJMgPiBwZW9wbGU7CivmhbcgPiBhcmRlbnQ7Civnr7cgPiBhd25pbmc7CivojYYgPiB0aG9ybnM7Civoho8gPiBncmVhc2U7Civpno0gPiBzYWRkbGU7CivpuKAgPiBwaWdlb247CivnvJUgPiB0aHJlYWQ7CivnnawgPiBub3RpY2U7Civnu6UgPiBzb290aGU7CivmsKcgPiBveHlnZW47CivlqbcgPiBwcmV0dHk7Civlp6wgPiBiZWF1dHk7CivlkK0gPiB0aHJvYXQ7Civlh78gPiBjaGlzZWw7CivmjYIgPiByZXNpc3Q7Civlt6sgPiB3aXphcmQ7Civomb4gPiBzaHJpbXA7Civnu4UgPiBnaXJkbGU7CivplbYgPiBpbnNlcnQ7CivpopAgPiBjaGVla3M7CivliKAgPiB0b1wtY3V0Owor6K68ID4gYWNjdXNlOwor5Ly2ID4gbG9uZWx5Owor54KvID4gYnJpZ2h0Owor6bi9ID4gcGlnZW9uOwor5ridID4gY2hhbmdlOwor5qSSID4gcGVwcGVyOwor5o+WID4gc2FsdXRlOwor5YaJID4gdGVuZGVyOwor5ZKZID4gdGhyb2F0Owor6LixID4gc3Ryb2xsOwor54ysID4gdnVsZ2FyOwor5bG/ID4gaXNsYW5kOwor5L+QID4gc21vb3RoOwor6KSCID4gamFja2V0Owor57OZID4gY29hcnNlOwor6Ze4ID4gc2x1aWNlOwor6aKTID4gcnVpbmVkOwor5bGJID4gZHJhd2VyOwor6Iq5ID4gY2VsZXJ5Owor6ZSlID4gZ2ltbGV0Owor5YiBID4gdHJpY2t5Owor5puZID4gYnJpZ2h0Owor5rS8ID4gaG9sbG93Owor55qTID4gYnJpZ2h0Owor6JKcID4gZ2FybGljOwor54KzID4gYnJpZ2h0Owor5rijID4gcmVmdXNlOwor5oWRID4gYWZyYWlkOwor5qixID4gY2hlcnJ5Owor5b+PID4gcmVncmV0Owor56K+ID4gcm9sbGVyOwor55aZID4gcGltcGxlOwor5ryJID4gZmlsdGVyOwor6ZqnID4gdHVubmVsOwor6YWlID4gYnV0dGVyOwor6ZKuID4gYnV0dG9uOwor6ZqYID4gbmFycm93Owor5ryxID4gZ2FyZ2xlOwor55uUID4gaGVsbWV0Owor56OLID4gcG9saXNoOwor5oO0ID4gYWZyYWlkOwor6JWJID4gYmFuYW5hOwor5oOLID4gcmVncmV0Owor55ewID4gcGhsZWdtOwor576BID4gaGFsdGVyOwor6K+PID4gZGVjcmVlOwor6Z22ID4gdGFyZ2V0Owor6YWdID4gbGlxdW9yOwor5p+sID4gbGV0dGVyOwor5Lq1ID4gc2xpZ2h0Owor6LKCID4gbWFydGVuOwor6IGGID4gbGlzdGVuOwor5q+LID4gZG9cLW5vdDsKK+mfrCA+IHNoZWF0aDsKK+m5iiA+IG1hZ3BpZTsKK+aVliA+IHJhbWJsZTsKK+iGuiA+IGJyZWFzdDsKK+aCmiA+IGFmcmFpZDsKK+WNhSA+IHRoaXJ0eTsKK+W+tSA+IHN1bW1vbjsKK+eisyA+IGNhcmJvbjsKK+aHtSA+IHN0dXBpZDsKK+m5qyA+IGNvbmRvcjsKK+ehqyA+IHN1bGZ1cjsKK+i4niA+IGNyb3VjaDsKK+mVsCA+IHNpY2tsZTsKK+a2jiA+IHNhbGl2YTsKK+WjlSA+IHRyZW5jaDsKK+mUmiA+IGFuY2hvcjsKK+mSoCA+IHNvZGl1bTsKK+edvyA+IHNocmV3ZDsKK+iOuiA+IG9yaW9sZTsKK+ibiiA+IHBvaXNvbjsKK+eDqCA+IGJyaWdodDsKK+iDryA+IHBlbHZpczsKK+i3uyA+IGFzY2VuZDsKK+mzliA+IHR1cnRsZTsKK+iFvCA+IG1vZGVzdDsKK+apmSA+IG9yYW5nZTsKK+S4niA+IGFzc2lzdDsKK+WokyA+IGNvbXBseTsKK+WIjiA+IGJlaGVhZDsKK+i5mSA+IHVyZ2VudDsKK+iDmiA+IGVtYnJ5bzsKK+iNlCA+IGxpY2hlZTsKK+mTvyA+IHN0cmlrZTsKK+mUtSA+IHRpbmtsZTsKK+iMpyA+IGNvY29vbjsKK+ifkiA+IHB5dGhvbjsKK+iktCA+IHJhZ2dlZDsKK+m5gyA+IGN1Y2tvbzsKK+eMpSA+IHZ1bGdhcjsKK+eNlyA+IHVucnVseTsKK+iSryA+IGFcLXJ1c2g7Civmso8gPiBpbmZ1c2U7Civls6ogPiB2YWxsZXk7Civlmo8gPiBzbmVlemU7CivnoL4gPiBncmF2ZWw7CivppoEgPiBodW5ncnk7CivkvZ8gPiBhXC1uYW1lOwor6IycID4gbWFkZGVyOwor5omIID4gZXNjb3J0Owor5ZKbID4gZW5qb2luOwor5rOXID4gbXVjb3VzOwor6IOEID4gaGVsbWV0Owor6ZS5ID4gc2hvdmVsOwor6bmXID4gb3NwcmV5Owor5YShID4gcHVwcGV0Owor55qIID4gZm9sbG93Owor6J6CID4gbWFudGlzOwor6IuTID4gZnVuZ3VzOwor5aqbID4gYmVhdXR5Owor5660ID4gbmVlZGxlOwor5Y+1ID4gY2Fubm90Owor5LuDID4gbG9uZWx5Owor5p2eID4gd2lsbG93Owor5a+uID4gc2hhbnR5Owor57yuID4gcmVwYWlyOwor54q3ID4gZmllcmNlOwor5rKxID4gcml2ZXJzOwor5Y6pID4gc3RhYmxlOwor55ahID4gdWxjZXJzOwor5Z6TID4gYm9yZGVyOwor5b6VID4gaW5kdWNlOwor5qeBID4gd2l0aGVyOwor6YG0ID4gc2VsZWN0Owor5Zy7ID4gYm9yZGVyOwor6b6KID4gbmFycm93Owor6b6MID4gbmFycm93Owor6YGoID4gcmFtYmxlOwor6aqbID4gZ2FsbG9wOwor5b6JID4gd29uZGVyOwor6LCqID4gY2hhcmdlOwor5L+aID4gcnVzdGljOwor6ZSoID4gc2hvdmVsOwor6ZSDID4gcG9saXNoOwor5L+qID4gc3BvdXNlOwor6ZSyID4gc2lja2xlOwor56WaID4gdGhyb25lOwor6Ie+ID4gbW9tZW50Owor6YGSID4gc3Ryb25nOwor5Zu5ID4gcHJpc29uOwor5ay0ID4gdG9cLXdpbjsKK+eDqSA+IHJhZ291dDsKK+WchCA+IHByaXNvbjsKK+ieqyA+IHBvaXNvbjsKK+mTpCA+IGluZ290czsKK+iesyA+IG1hbnRpczsKK+iMgSA+IHNwcm91dDsKK+iIoiA+IHNhbXBhbjsKK+iKviA+IGZsb3dlcjsKK+eLsiA+IG1vbmtleTsKK+einCA+IGdyaXR0eTsKK+WDrSA+IGFzc3VtZTsKK+eimCA+IGlvZGluZTsKK+eDryA+IGFsa2VuZTsKK+WbvyA+IHBlblwtdXA7Civlm6sgPiBlbnRpcmU7CivopKEgPiBnaXJkbGU7CivplY0gPiBuaWNrZWw7CivnhZwgPiBicmlnaHQ7CivmqZAgPiBhXC1zYWNrOwor5p23ID4gbG9xdWF0Owor5oG5ID4gZmVlYmxlOwor5b2AID4gZW5vdWdoOwor6IGSID4gY2xhbW9yOwor576vID4gd2V0aGVyOwor57KyID4gcG9saXNoOwor5p6HID4gbG9xdWF0Owor56ejID4gZm9kZGVyOwor5qi9ID4gZ29ibGV0Owor5qW5ID4gY29sdW1uOwor54SWID4gc2ltbWVyOwor552RID4gZXllbGlkOwor6L2zID4gcHVsbGV5Owor5q6aID4gdXRtb3N0Owor6ZWtID4gcmFkaXVtOwor5q6EID4gdG9cLWVuZDsKK+ivsCA+IGluZm9ybTsKK+m5hCA+IHRhcmdldDsKK+iOhSA+IGF0dGVuZDsKK+iwnyA+IHNjaGVtZTsKK+iuqyA+IGZpbmlzaDsKK+ePsiA+IGJyaWdodDsKK+a3rCA+IHRlbXBlcjsKK+WYrCA+IHRvXC1sYXA7CivkvbYgPiBzdHJvbmc7CivmmZQgPiBicmlnaHQ7CivoiJsgPiBvcHBvc2U7Civng7cgPiBhbGthbmU7Civom44gPiBveXN0ZXI7CivnhLEgPiBmbGFtZXM7CivonKUgPiBsaXphcmQ7CivlnJwgPiBjaXJjbGU7CivonLQgPiBsaXphcmQ7CivokbogPiB0aGF0Y2g7CivmiIYgPiBzdHVwaWQ7CivlrLcgPiBtb3RoZXI7Civmgb0gPiBkZXZpc2U7Civok78gPiBjbG92ZXI7CivnmIwgPiBzZXZlcmU7CivllrEgPiBncmFtbWU7CivpkrQgPiBjb2JhbHQ7CivlspkgPiBpc2xhbmQ7CivosokgPiBiYWRnZXI7CivnuYcgPiByZWFzb247CivonIkgPiBtYXlmbHk7CivnlpYgPiBwaW1wbGU7Civnur4gPiBsb29zZW47CivpspEgPiBzYWxtb247CivlqIggPiBsb3ZlbHk7CivojaggPiBuZXR0bGU7Civnq6YgPiByZXZlcmU7Civni5IgPiBiYWJvb247CivmkoQgPiBvcHBvc2U7CivomLwgPiBtaWxsZXQ7CivojLQgPiBmZW5uZWw7CivpsqYgPiBtaW5ub3c7CivmuIwgPiBzdHJhaW47CivpmJogPiBnbGFuY2U7Civoi5wgPiBjbG92ZXI7CivlgawgPiB1cmdlbnQ7Civnj5AgPiBlbmFtZWw7CivpnZsgPiBpbmRpZ287Civpu6cgPiBhXC1kYXJrOwor56KHID4gYW5jaG9yOwor6KCTID4gbWlkZ2VzOwor5qm8ID4gY2l0cnVzOwor6JWeID4gbGl0dGxlOwor5ZyvID4gYnJpZGdlOwor6a2NID4gZGVtb25zOwor57+KID4gZmx5aW5nOwor6ZWPID4gZGlzdGlsOwor56KTID4gcGVzdGxlOwor6IO8ID4gY2FsbHVzOwor5oyIID4gYXNzaXN0Owor54qPID4geWFrXC1veDsKK+aCmyA+IHJlcGVudDsKK+WLliA+IGVuam9pbjsKK+exgCA+IHJlY2l0ZTsKK+eimiA+IHN1YnVyYjsKK+iFrSA+IHBhbGF0ZTsKK+mznyA+IGJhcmJlbDsKK+mbjiA+IG9zcHJleTsKK+augiA+IHRvXC1kaWU7CivnrZogPiB3aWNrZXI7Civnlp0gPiBoZXJuaWE7CivpqoAgPiBhblwtb2xkOwor6JKXID4gXChoZXJiXCk7CivokbggPiBhZnJhaWQ7Civoj58gPiBkb2RkZXI7CivpmYkgPiBkZWZpbGU7CivnrbIgPiBiYXNrZXQ7CivnlqAgPiBhXC1zb3JlOwor55WbID4gYm9yZGVyOwor5pewID4gc3Vuc2V0Owor6IqqID4gY2VsZXJ5Owor6LCWID4gZm9yZ2V0Owor5pWJID4gcGFjaWZ5Owor6IGNID4gZWFyd2F4Owor6ZSHID4gb3NtaXVtOwor54OAID4gc2ltbWVyOwor5amnID4gbW9kZXN0Owor6I+YID4gY2VsZXJ5Owor6ZKhID4gYmFyaXVtOwor6J2jID4gbWF5Zmx5Owor6Jq1ID4gb3lzdGVyOwor6KW7ID4gYVwtbG9vcDsKK+mTkiA+IGVyYml1bTsKK+mTiCA+IGNlcml1bTsKK+aktCA+IHBvcGxhcjsKK+WssiA+IGZyb2xpYzsKK+iLoSA+IGJhcmxleTsKK+iIhCA+IGFcLXNob2U7Civonb4gPiBsaXphcmQ7CivonKkgPiBjaWNhZGE7CivpuKsgPiB0aHJ1c2g7CivplJQgPiBjdXJpdW07Civpk58gPiBpbmRpdW07CivnnI0gPiBzdW5rZW47CivniZYgPiB3aW5kb3c7CivmpocgPiBjb2ZmaW47CivmobcgPiByYWZ0ZXI7CivluZ4gPiB0dXJiYW47CivluLsgPiB0dXJiYW47CivlnIkgPiBzdGFibGU7CivmkYUgPiBzcHJlYWQ7Civoi4QgPiBiZW56eWw7CivpmZQgPiBhXC1zdGVwOwor5Yi/ID4gdG9cLWN1dDsKK+mqtiA+IGNvY2N5eDsKK+myuyA+IG11bGxldDsKK+ieqCA+IGluc2VjdDsKK+iZvCA+IGFcLWZsZWE7CivnmJUgPiBhc3RobWE7CivplZggPiB0cm93ZWw7Civno5kgPiByb2xsZXI7Civog4IgPiBhcnNpbmU7Civop4sgPiB3aXphcmQ7Civok6UgPiBwb2xpc2g7Civoj5QgPiB0dXJuaXA7Civku6EgPiBzdHJvbmc7Civpvp4gPiB0dXJ0bGU7Civpvp0gPiBhdXR1bW47Civpvo0gPiBkcmFnb247CivpvbcgPiBuYXJyb3c7CivpvbYgPiBwYWxhdGU7CivpvbUgPiB1bmV2ZW47CivpvaogPiBuYXJyb3c7CivpvKsgPiBtYXJtb3Q7CivpvKogPiB3ZWFzZWw7CivpvJQgPiBhXC1kcnVtOwor6byFID4gc3BpZGVyOwor6buMID4gc2Nob29sOwor6buJID4gc2Nob29sOwor6buIID4geWVsbG93Owor6buDID4geWVsbG93Owor6bqwID4gYmFybGV5Owor6bqEID4gY29hcnNlOwor6bmoID4gYW50aHVzOwor6beaID4gYW50aHVzOwor6beHID4gY2hpY2tzOwor6ba9ID4gYVwtaGF3azsKK+m2uCA+IHNpc2tpbjsKK+m2ryA+IG9yaW9sZTsKK+m2rCA+IG9yaW9sZTsKK+m2qyA+IHRocnVzaDsKK+m2miA+IG9zcHJleTsKK+m2iiA+IG9yaW9sZTsKK+m2hyA+IHRocnVzaDsKK+m1uyA+IHBpZ2VvbjsKK+m1siA+IG1hZ3BpZTsKK+m1oCA+IHRhcmdldDsKK+m1kSA+IGN1Y2tvbzsKK+m1gCA+IGhvb3BvZTsKK+m0vyA+IHBpZ2VvbjsKK+m0rCA+IG9yaW9sZTsKK+m0oiA+IFwoZHVja1wpOwor6bSDID4gc2hyaWtlOwor6bGSID4gYmFyYmVsOwor6bGOID4gXChmaXNoXCk7CivpsYkgPiB0dXJ0bGU7CivpsYYgPiBwb3VscGU7CivpsLcgPiBtaW5ub3c7CivpsJUgPiBzaHJpbXA7Civpr5QgPiBtdWxsZXQ7Civprq0gPiBzYWxtb247CivprbUgPiBzaHJpbXA7CivpqasgPiBob3JzZXM7CivpqKQgPiBsaXZlbHk7CivpqJYgPiBnYWxsb3A7CivpqIMgPiBzdHVwaWQ7Civpp6EgPiBhY2N1c2U7Civpp5ggPiBhblwtb2xkOwor6aeTID4gZ2FsbG9wOwor6aeDID4gZ2FsbG9wOwor6aa/ID4gYW5cLWFzczsKK+mkpCA+IGluY2l0ZTsKK+mkkiA+IGh1bmdyeTsKK+mhnCA+IGhvbmVzdDsKK+mhkiA+IHNvbGVtbjsKK+mhkSA+IHllbGxvdzsKK+mgvSA+IHJ1aW5lZDsKK+mguSA+IHJ1aW5lZDsKK+mgsCA+IGNoZWVrczsKK+mgniA+IGJyaWRnZTsKK+mgkiA+IGNvbmZlcjsKK+mgiSA+IGNoZWVrczsKK+mfnCA+IHNoZWF0aDsKK+mfgyA+IHRhdGFyczsKK+meniA+IHNoZWF0aDsKK+memiA+IGJyaWRsZTsKK+mdriA+IGJyaWRsZTsKK+mbgiA+IFwoYmlyZFwpOwor6Zq7ID4gc2luZ2xlOwor6ZmsID4gY29ybmVyOwor6ZmcID4gbmFycm93Owor6ZmYID4gZGVmaWxlOwor6ZeeID4gZ2xhbmNlOwor6ZeJID4gY3VydmVkOwor6ZaYID4gc2x1aWNlOwor6ZWhID4gZGFnZ2VyOwor6ZOvID4gY2VzaXVtOwor6ZG/ID4gY2hpc2VsOwor6ZGyID4gaW5zZXJ0Owor6ZGeID4gc29sZGVyOwor6ZGRID4gbWlycm9yOwor6ZGAID4gaW9uaXVtOwor6ZCzID4gcmFkaXVtOwor6ZCuID4gc2lja2xlOwor6ZCdID4gYVwtcGljazsKK+mQlCA+IGRhZ2dlcjsKK+mPnSA+IHRyb3dlbDsKK+mPmCA+IHRpbmtsZTsKK+mPlyA+IHN0cmlrZTsKK+mOsyA+IG5pY2tlbDsKK+mOpiA+IGRpc3RpbDsKK+mOoyA+IHBvbGlzaDsKK+mOmiA+IGhhbW1lcjsKK+mOkiA+IHRvXC1ob2U7CivpjowgPiBzaWNrbGU7CivpjoUgPiB0b1wtc2F3Owor6Y28ID4gbmVlZGxlOwor6Y2sID4gc2hvdmVsOwor6Y2rID4gc2hvdmVsOwor6Y2lID4gc2lja2xlOwor6Y2gID4gd2VhcG9uOwor6YypID4gdmVzc2VsOwor6YyoID4gYW5jaG9yOwor6YuoID4gb3NtaXVtOwor6YumID4gY3VyaXVtOwor6YuZID4gbWlzZml0Owor6YuMID4gaW5nb3RzOwor6YuHID4gYmFyaXVtOwor6YuFID4gemluY3VtOwor6Yq2ID4gY2hpc2VsOwor6YqyID4gc29sZGVyOwor6YqrID4gY2VzaXVtOwor6YqmID4gaW5kaXVtOwor6Ym6ID4gZXJiaXVtOwor6YmlID4gbmVlZGxlOwor6Yi3ID4gY29iYWx0Owor6YiwID4gY2VyaXVtOwor6YiVID4gYnV0dG9uOwor6YiJID4gc29kaXVtOwor6YesID4gc29sZGVyOwor6YemID4gYnV0dG9uOwor6YeQID4gbWFuYWdlOwor6YeDID4gc3RyYWluOwor6YaeID4gbGlxdW9yOwor6YaWID4gbGlxdW9yOwor6YW+ID4gc3RyYWluOwor6YW0ID4gbGVhdmVuOwor6YSLID4gY291bnR5Owor6YKPID4gcGF0cm9sOwor6YCwID4gd2FuZGVyOwor6YClID4gcmV0dXJuOwor6YCOID4gc3Ryb25nOwor6YCMID4gcGxlYXNlOwor6L+vID4gZXNjYXBlOwor6L+NID4gZmFsdGVyOwor6L+LID4gdHJhdmVsOwor6L6nID4gbWFuYWdlOwor6L6mID4gbWFuYWdlOwor6L6iID4gYml0dGVyOwor6L2kID4gcHVsbGV5Owor6L2cID4gaGVhcnNlOwor6L2AID4gaGVhcnNlOwor6LyAID4gaGVhcnNlOwor6LujID4gcnVtYmxlOwor6LqnID4gc2FuZGFsOwor6LqLID4gYXNjZW5kOwor6Lm7ID4gc3Ryb25nOwor6LmdID4gc2FuZGFsOwor6LmTID4gc3Ryb2xsOwor6LihID4gY3VybGVkOwor6LenID4gY3JvdWNoOwor6LarID4gbmltYmxlOwor6LaoID4gaGFzdGVuOwor6LaVID4gcHVyc3VlOwor6LSzID4gYm9ycm93Owor6LOeID4gcmV3YXJkOwor6LKtID4gbWF0dGVyOwor6LKqID4gZ3JlZWR5Owor6LKfID4gbWVtYmVyOwor6LKbID4gYmFkZ2VyOwor6LG7ID4gcHJpc29uOwor6LC/ID4gdmFsbGV5Owor6K6aID4gcHJhaXNlOwor6K6BID4gcHVuaXNoOwor6K2fID4gY2xhbW9yOwor6K2NID4gYW5zd2VyOwor6K2GID4gc2NyZWFtOwor6KyrID4gY2hhcmdlOwor6KyoID4gc2NoZW1lOwor6Ku8ID4gZm9yZ2V0Owor6Ku3ID4gcmVjaXRlOwor6Ku1ID4gbXV0dGVyOwor6KuSID4gZXhjdXNlOwor6KqmID4gcmVjaXRlOwor6KqlID4gaW5mb3JtOwor6Km7ID4gb3JkZXJzOwor6KmXID4gdG9cLXNweTsKK+iplCA+IGRlY3JlZTsKK+ioliA+IGZpbmlzaDsKK+invCA+IGJ1Y2tsZTsKK+inqSA+IHN0cm9uZzsKK+inpyA+IGxvb3NlbjsKK+inlSA+IGNvYXJzZTsKK+imsCA+IHRvXC1zcHk7CivopqEgPiB3aXphcmQ7CivopoogPiBoYWx0ZXI7Civopa4gPiBjb2xsYXI7CivopYsgPiBjb2xsYXI7CivopKYgPiBzdHVwaWQ7CivopI8gPiBzbGVldmU7CivopI4gPiBzbGVldmU7CivoopogPiBncmVhdmU7CivooLEgPiBwb2lzb247CivooKkgPiBhXC10b2FkOwor6KCjID4gb3lzdGVyOwor6KCZID4gb3lzdGVyOwor6KCUID4gb3lzdGVyOwor6KCRID4gbGl6YXJkOwor6KCOID4gcHl0aG9uOwor6KCBID4gbGFydmFlOwor6J+3ID4gbWFudGlzOwor6J+sID4gY2ljYWRhOwor6J+cID4gaW5zZWN0Owor6J2mID4gc2hyaW1wOwor6JyLID4gbWFudGlzOwor6JuvID4gc2hyaW1wOwor6JujID4gYmVldGxlOwor6JuMID4gY3JpY2tlOwor6JmpID4gZnJpZ2h0Owor6JmWID4gdG9cLWNyeTsKK+iYpCA+IGZsb3dlcjsKK+iYhiA+IHJ1c2hlczsKK+iXmCA+IG1hZGRlcjsKK+iWvyA+IGZsb3dlcjsKK+iWlyA+IGdhcmRlbjsKK+iWkSA+IGdpbmdlcjsKK+iVhiA+IGZpbmlzaDsKK+iVgiA+IHNlc2FtZTsKK+iVgSA+IG5ldHRsZTsKK+iUmSA+IFwoaGVyYlwpOwor6JSUID4gcmFkaXNoOwor6JSCID4gYmFza2V0Owor6JSAID4gc2NyZWVuOwor6JOaID4gb3hhbGljOwor6JKOID4gcGluYW5lOwor6JKHID4gZmluaXNoOwor6JGBID4gZ2luZ2VyOwor6JCFID4gc3ByaW5nOwor6I+GID4ganVuZ2xlOwor6I61ID4gZG9kZGVyOwor6I2KID4gdGhvcm5zOwor6I2BID4gY2VsZXJ5Owor6IymID4gdGhvcm5zOwor6IyiID4gc2VkZ2VzOwor6IuqID4gYnJpZ2h0Owor6IuiID4gYmFybGV5Owor6IqkID4gaG9sbG93Owor6ImiID4gYVwtbWFzdDsKK+iIpiA+IHJ1ZGRlcjsKK+iIgyA+IGFcLXNob2U7Civoh4QgPiBwYWxhdGU7CivohqkgPiBncmVhc3k7CivohqMgPiB2YWdpbmE7CivohpUgPiBob2xsb3c7Civoha8gPiBzdHJvbmc7CivohZ8gPiB2YWdpbmE7CivohYEgPiBjYWxsdXM7CivohLcgPiB0b25ndWU7CivohLUgPiB0aGlnaHM7CivohKcgPiByZWR1Y2U7Civog7kgPiBjb29rZWQ7Civog7cgPiBicmVhc3Q7CivogqcgPiBlbWJyeW87CivogpAgPiBhcm1waXQ7CivogbkgPiBlYXJ3YXg7CivogKQgPiBwbG91Z2g7CivnvrUgPiBzcGlyaXQ7CivnvoggPiBoYWx0ZXI7CivnvasgPiBoaW5kZXI7CivnvaUgPiBpbXBldGU7CivnvaMgPiBoaW5kZXI7CivnuqkgPiBjb3R0b247CivnupwgPiBoYXdzZXI7CivnupQgPiB0YWxlbnQ7CivnuoogPiBjb3R0b247Civnua0gPiBjb2Nvb247CivnuasgPiBhdHRhY2g7CivnuaggPiBhXC1rbm90Owor57mLID4gYXR0YWNoOwor57i3ID4gdGhyZWFkOwor57ijID4gY291bnR5Owor57ihID4gbWF0dGVyOwor57iGID4gYVwtcm9wZTsKK+e3qiA+IGFcLXJvcGU7Civnto8gPiBzb290aGU7CivntoUgPiB0aHJlYWQ7Civntb8gPiB1cmdlbnQ7CivntZogPiBhXC1yb3BlOwor57SyID4gYnJpZGxlOwor57SpID4gdG9cLXNldzsKK+e0nyA+IGFcLXNhc2g7CivntJggPiBzdHJpbmc7CivntJMgPiBsb29zZW47CivntIMgPiBhXC1jb3JkOwor57OoID4gc3RhcmNoOwor57OhID4gc3RhcmNoOwor57GyID4gYXBwZWFsOwor57GaID4gYmFtYm9vOwor57GDID4gYmFza2V0Owor57CcID4gYmFtYm9vOwor57CJID4gZGVwdXR5Owor56+zID4gd2lja2VyOwor56+lID4gYnVsZ2xlOwor56+cID4gYmFtYm9vOwor566ZID4gcXVpdmVyOwor56yyID4gYmFza2V0Owor56ucID4gZHJhZ29uOwor56uJID4gYVwtaG9sZTsKK+eqqiA+IGhvbGxvdzsKK+eqlCA+IGNvcm5lcjsKK+epqSA+IHN0YWJsZTsKK+epqCA+IHJ1aW5lZDsKK+epjCA+IHJldml2ZTsKK+epiCA+IG1pbGxldDsKK+eonCA+IGNvcm5lcjsKK+enoCA+IG1pbGxldDsKK+empiA+IGRlZmVuZDsKK+eljyA+IHNocmluZTsKK+ekqyA+IGdyYXZlbDsKK+ejoyA+IGdyaXR0eTsKK+eivCA+IG51bWJlcjsKK+ehviA+IHdlaWdodDsKK+ehjSA+IHN0cmlrZTsKK+eftCA+IGFuY2hvcjsKK+efhyA+IHN0dXBpZDsKK+eetyA+IHRvXC1zcHk7CivnnaogPiBzcHlcLW9uOwor552GID4gYnJpZ2h0Owor55y+ID4gbWFzc2VzOwor55upID4gY2FsbHVzOwor55qlID4gYnJpZ2h0Owor55qhID4gYnJpZ2h0Owor55qeID4gYnJpZ2h0Owor55qAID4ga2VybmVsOwor55mkID4gcGltcGxlOwor55mYID4gYVwtc29yZTsKK+eYjSA+IHVsY2VyczsKK+eXuyA+IHN1ZmZlcjsKK+eXmiA+IGFzdGhtYTsKK+eWiSA+IHJlcGVhdDsKK+eWgyA+IGhhbWxldDsKK+eWgiA+IHJlcGVhdDsKK+eVvSA+IGdyb3VuZDsKK+eVryA+IHJ1c3RpYzsKK+eVnyA+IHBsb3VnaDsKK+eQvyA+IGJyaWdodDsKK+eQuiA+IGVuYW1lbDsKK+ePlCA+IFwoamFkZVwpOwor546TID4gcGVhcmx5Owor5423ID4gZmllcmNlOwor542JID4ganVuZ2xlOwor54y7ID4gbW9ua2V5Owor54y6ID4gamFja2FsOwor54yTID4gbW9ua2V5Owor54ulID4gZm9sbG93Owor54q6ID4gYW5pbWFsOwor54mVID4gd2luZG93Owor54mTID4gdGFibGV0Owor54mQID4gc2x1aWNlOwor54ilID4gc2ltbWVyOwor54iaID4gYnJpZ2h0Owor54e0ID4gcmFnb3V0Owor54ehID4gYnJpZ2h0Owor54ecID4gc2ltbWVyOwor54eLID4gc2NvcmNoOwor54eBID4gYnJpZ2h0Owor54ayID4gYnJpZ2h0Owor54aIID4gYnJpZ2h0Owor54WVID4gYnJpZ2h0Owor54WDID4gcmVtb3ZlOwor54WBID4gaGVhcnRoOwor54S7ID4gYnJlYXRoOwor54S0ID4gYnJpZ2h0Owor54SgID4gdGVtcGVyOwor54O6ID4gYnJpZ2h0Owor54OxID4gYnJpZ2h0Owor54KBID4gYnJlYXRoOwor54CSID4gY29hcnNlOwor54CMID4gcGxlbnR5Owor5r+1ID4gYVwtYmFuazsKK+a/rCA+IGRyZWRnZTsKK+a+vCA+IGJsZWFjaDsKK+a9qCA+IGdhdGhlcjsKK+a9gCA+IGdhdGhlcjsKK+a8piA+IHNhbGl2YTsKK+a4qCA+IGFcLWNvdmU7Civmt6UgPiBzdHJhaW47Civmt58gPiB0dXJiaWQ7CivmtJ8gPiBzbml2ZWw7Civms60gPiBhXC1yYWZ0Owor5rGZID4gZmlsdGh5Owor5rC/ID4gc3ByaW5nOwor5rCrID4gYW1vbmlhOwor5q68ID4gY2FzaW5nOwor5q6rID4gdXRtb3N0Owor5qy7ID4gc3VkZGVuOwor5qyRID4gZ2F0aGVyOwor5qusID4gY29mZmluOwor5queID4gY2l0cnVzOwor5qucID4gcXVpdmVyOwor5qmwID4gYVwtc3BhcjsKK+apqyA+IGFjcm9zczsKK+appCA+IHN0YW1lbjsKK+apnCA+IGFcLXBvc3Q7CivmqZUgPiBhXC1wcm9wOwor5qi/ID4gY29mZmluOwor5qi4ID4gc2ltcGxlOwor5qiyID4ganVqdWJlOwor5qiRID4gYnJpZGdlOwor5qelID4gY29mZmluOwor5qayID4gcGlsbGFyOwor5qaxID4gcmFmdGVyOwor5qalID4gc2NyZWVuOwor5qaFID4gcGlsbGFyOwor5qWvID4gc2hpZWxkOwor5qWsID4gdGFibGV0Owor5qWiID4gdGluZGVyOwor5qWbID4gY29hcnNlOwor5qWKID4gd2lsbG93Owor5qSnID4gZ3V0dGVyOwor5qSTID4gc3RyaWtlOwor5qOcID4gYnJhbmNoOwor5qOFID4gaGFuZGxlOwor5qODID4gYVwtcGVhcjsKK+ahsiA+IHF1aW5jZTsKK+afsiA+IGhhbmRsZTsKK+adtCA+IHNob3ZlbDsKK+adhyA+IGxvcXVhdDsKK+acmSA+IGJyaWdodDsKK+aboSA+IHJlcGVhdDsKK+abjSA+IGJyaWdodDsKK+abhSA+IGJyaWdodDsKK+abhCA+IGJyaWdodDsKK+abgCA+IHN0b3JteTsKK+aauyA+IGJyaWdodDsKK+aauCA+IGJyaWdodDsKK+aasiA+IGJyaWdodDsKK+aaiyA+IHN0cm9uZzsKK+aZnCA+IGluc2VjdDsKK+aZhCA+IGJyaWdodDsKK+aYuiA+IGJyaWdodDsKK+aYniA+IGJyaWdodDsKK+aYkSA+IGJyaWdodDsKK+aXuyA+IGhlYXZlbjsKK+aXnSA+IGJhbm5lcjsKK+aVuSA+IHRvXC1zZXc7CivmlaEgPiByZWJ1a2U7CivmlYMgPiBzdHJvbmc7CivmlYIgPiBkZWR1Y3Q7CivmlJYgPiBvcHBvc2U7CivmlIQgPiBzcHJlYWQ7Civmk70gPiB0aWNrbGU7Civmk7QgPiBleHBhbmQ7Civmk5YgPiBzY3JhcGU7Civmk5MgPiB0b1wtcnViOwor5pOKID4gc3RyaWtlOwor5pOHID4gc2VsZWN0Owor5pKmID4gcmlwXC11cDsKK+aSiiA+IGZpZXJjZTsKK+aQvyA+IHRvXC1odWc7Civmj7cgPiBpbnNlcnQ7Civmj64gPiBkaXJlY3Q7Civmj5cgPiBzdHJpa2U7Civmj4AgPiBjaG9vc2U7CivmjqQgPiBxdWl2ZXI7CivmjpQgPiBzdHVyZHk7Civmjb0gPiBjbHV0Y2g7CivmjbwgPiB0b1wtcnViOwor5o2TID4gc3RyaXZlOwor5o2DID4gZ2F0aGVyOwor5ouhID4gZXhwYW5kOwor5oqeID4gc2VsZWN0Owor5omQID4gZGl2aW5lOwor5omGID4gc2NyZWVuOwor5oidID4gcGlyYXRlOwor5oiHID4gc3R1cGlkOwor5oe+ID4gYWZyYWlkOwor5oe6ID4gcmVncmV0Owor5oe0ID4gcmVncmV0Owor5oeyID4gcHVuaXNoOwor5oeoID4gZmVlYmxlOwor5oamID4gcmVncmV0Owor5oS9ID4gZ2FtYmxlOwor5oSsID4gYWNjdXNlOwor5oOyID4gZGV2aXNlOwor5oOqID4gZXRoaWNzOwor5oOOID4gaW5qdXJlOwor5oKzID4gZXRoaWNzOwor5oKnID4gc21vb3RoOwor5oKeID4gaW1wZWRlOwor5oKLID4gc3Rpbmd5Owor5oGhID4gc3Rpbmd5Owor5oGfID4gc2NhcmVkOwor5b+wID4gc3VmZmVyOwor5b6gID4gaW5kdWNlOwor5b20ID4gYnJpZGdlOwor5byjID4gbWlkZGxlOwor5bu9ID4gcmV0dXJuOwor5bufID4gdGVtcGxlOwor5buQID4gc3RhYmxlOwor5buPID4gc3RhYmxlOwor5buGID4gYVwtcm9vbTsKK+W7hCA+IHN0YWJsZTsKK+W7gSA+IHRvaWxldDsKK+W5mCA+IHR1cmJhbjsKK+W3pCA+IGFcLW1hbmU7Civlt5ggPiBzdW1taXQ7CivltrwgPiBpc2xhbmQ7CivltrQgPiBpc2xhbmQ7CivltpMgPiBib3NoYW47CivltowgPiBpc2xhbmQ7CivltosgPiBpc2xhbmQ7Civltb4gPiB1bmV2ZW47CivltL8gPiBjbGlmZnM7CivltJ8gPiBjbGlmZnM7CivlsqggPiB1bmV2ZW47CivlsoAgPiBnb1wtb3V0Owor5bGuID4gc3Byb3V0Owor5bGcID4gZHJhd2VyOwor5bCFID4gc3ViZHVlOwor5bCAID4gY2Fubm90Owor5a+cID4gcmVwb3NlOwor5a+VID4gcmVwb3NlOwor5a+OID4gZHJvd3N5Owor5a6nID4gY29ybmVyOwor5a2+ID4gYVwtYmFieTsKK+WtjCA+IGxvdmVseTsKK+WsvyA+IGxvdmVseTsKK+WspCA+IG1vdGhlcjsKK+WsgyA+IHNpc3RlcjsKK+WrqiA+IGhhbmtlcjsKK+WrkCA+IGZyb2xpYzsKK+WqvSA+IG1vdGhlcjsKK+WqliA+IGJlYXV0eTsKK+WpvCA+IHBlcnNvbjsKK+WppCA+IGxvdmVseTsKK+WorCA+IGxvdmVseTsKK+WokiA+IG1hdHJvbjsKK+WngSA+IGJlYXV0eTsKK+WmuCA+IHBlcnNvbjsKK+WkrCA+IHBhcnRlZDsKK+WkoCA+IGVub3VnaDsKK+WkhiA+IHJlc2lzdDsKK+WjvyA+IGdvYmxldDsKK+WioCA+IHNtb290aDsKK+WgpyA+IGFkam9pbjsKK+WgpiA+IHN0YWlyczsKK+WgiSA+IGdyb3VuZDsKK+WcniA+IGVudGlyZTsKK+WcnSA+IGVudGlyZTsKK+WcjiA+IGNpcmNsZTsKK+WcgCA+IG5hdGlvbjsKK+WbmCA+IHJldHVybjsKK+WavyA+IGFcLWx1bXA7CivlmqggPiB0aHJvYXQ7CivlmpQgPiBzbmVlemU7CivlmoMgPiBnb2JibGU7CivlmoAgPiBlbmpvaW47CivlmZogPiBmYXRob207CivlmZMgPiBleGhhbGU7CivlmY8gPiBpbmhhbGU7Civll78gPiBnb2JibGU7CivlloYgPiBhXC1zYWdlOwor5ZWJID4gc3R1cGlkOwor5ZSrID4gdG9cLWh1bTsKK+WUiCA+IHRvXC1zb2I7Civlk6QgPiBqYXJnb247Civlk4sgPiBwbHVyYWw7CivlkoggPiBvcHBvc2U7Civlka4gPiB0b1wtc2l0Owor5ZGPID4gZ2FsbG9uOwor5Y+hID4gYXN0dXRlOwor5Y+TID4gYWZmYWlyOwor5Y6OID4gc2V0dGxlOwor5Y2EID4gdHdlbnR5Owor5YyDID4gYmVnZ2FyOwor5Yu3ID4gdXJnZW50Owor5Yu1ID4gc3RyaXZlOwor5YuXID4gZW5qb2luOwor5YuRID4gcmV3YXJkOwor5YuNID4gc3Ryb25nOwor5YuEID4gYWN0aXZlOwor5YuBID4gc3Ryb25nOwor5YqkID4gc3Ryb25nOwor5YqMID4gdG9cLWN1dDsKK+WKhiA+IHNpY2tsZTsKK+WJjiA+IHRlbXBsZTsKK+WJiyA+IHN1YmR1ZTsKK+WIqiA+IHRvXC1jdXQ7Civlh54gPiBicmlnaHQ7Civlh5MgPiBzaGl2ZXI7CivlhpEgPiBoZWxtZXQ7CivlhoQgPiB0ZW5kZXI7CivlhbIgPiBoZWF2ZW47CivlhacgPiBpbnNpZGU7CivlhLggPiBiYW5kaXQ7CivlhLcgPiBzcG91c2U7Civlg7EgPiBlbXBsb3k7Civlg6wgPiBjbGV2ZXI7Civlg6MgPiBhc3N1bWU7Civlgq8gPiB1cmdlbnQ7Civlgq4gPiBmaW5pc2g7Civlgo4gPiB0b3BwbGU7CivlgaogPiBjb21wZWw7CivlgakgPiBmb2xsb3c7CivlgaggPiB1bmV2ZW47CivlgZYgPiByaXBcLXVwOwor5YCGID4gY2xldmVyOwor5YCFID4gZGVwdXR5Owor5YCDID4gZGFtYWdlOwor5L+1ID4gZGl2aWRlOwor5L63ID4gbmFycm93Owor5L2IID4gc3ByZWFkOwor5Ly+ID4gbWlnaHR5Owor5LycID4gZGVwdXR5Owor5LuaID4gdG9cLWZseTsKK+S6iiA+IGFmZmFpcjsKK+S6hCA+IGdyZWVkeTsKK+S5miA+IGhpZGRlbjsKK+S5giA+IGdvdmVybjsKK+S4lyA+IHRoaXJ0eTsKK+S2riA+IGNsZXZlcjsKK+S2gSA+IG5vaXNlczsKK+S1pyA+IHRvXC1keWU7CivktZkgPiBzdGlja3k7CivktZAgPiB5ZWxsb3c7CivktY8gPiB5ZWxsb3c7CivktY0gPiB5ZWxsb3c7CivktYsgPiB5ZWxsb3c7CivktYogPiB5ZWxsb3c7CivktKUgPiBhXC1zdGFnOwor5LO+ID4gYW5cLW93bDsKK+SzjyA+IGN1Y2tvbzsKK+SzhyA+IHBhcnJvdDsKK+SyuSA+IG9zcGVyeTsKK+SypyA+IGN1Y2tvbzsKK+SyjCA+IGFcLWZpc2g7CivksZUgPiBsYWJydXM7CivksZEgPiBhXC1maXNoOwor5LGPID4gYVwtZmlzaDsKK+SxgyA+IGFcLWZpc2g7CivksYIgPiBhXC1maXNoOwor5LC3ID4gYVwtZmlzaDsKK+SwoyA+IGFuXC1lbGY7Civkr6sgPiBicmlnaHQ7Civkr6ggPiB0b1wtcmFwOwor5K+dID4gbWFycm93Owor5K+cID4gbWFycm93Owor5K+DID4gc2FkZGxlOwor5K+BID4gYVwtbXVsZTsKK+StqiA+IGdyYWluczsKK+StpSA+IGFcLWJhaXQ7CivkrZ0gPiB0b1wtZWF0Owor5K2aID4gdG9cLWVhdDsKK+StkiA+IGJyZWF0aDsKK+StjCA+IGNvbmdlZTsKK+StiCA+IGNvbmdlZTsKK+SsuCA+IGFcLW1lYWw7CivkrJEgPiBhXC1nYWxlOwor5KyQID4gYnJlZXplOwor5KyKID4gYVwtZ2FsZTsKK+SsiCA+IGJyZWV6ZTsKK+SshyA+IGJyZWV6ZTsKK+SshSA+IGFcLWdhbGU7CivkrIQgPiBicmVlemU7CivkrIIgPiBicmVlemU7Civkq74gPiBicmVlemU7Civkq70gPiBicmVlemU7Civkq7wgPiBicmVlemU7Civkq6wgPiB0b1wtYm93Owor5Kq4ID4gc3Ryb25nOwor5KqkID4gZ2FybGljOwor5KmvID4gdXJnZW50Owor5KmtID4gaGFsdGVyOwor5Ki+ID4gaGlkZGVuOwor5Ki6ID4gY2xvdWR5Owor5Ki4ID4gY2xvdWR5Owor5KivID4gY2xvdWR5Owor5KifID4gcHVkZGxlOwor5KiJID4gcGFycm90Owor5KiHID4gYVwtcGFpcjsKK+SntCA+IGFcLWJpcmQ7Civkp7MgPiBmZW1hbGU7Civkp6UgPiBib3JkZXI7Civkp5sgPiBiZXNpZGU7Civkp5EgPiBhXC1kaWtlOwor5KWqID4gdG9cLWN1cDsKK+SlqCA+IGFcLWZpbGU7CivkpaAgPiBuZWVkbGU7CivkpY0gPiBhXC13aGlwOwor5KOmID4gdG9cLWN1dDsKK+SjmCA+IGFcLWhhbGw7Civko4ggPiBhXC1sYW5lOwor5KK9ID4gYVwtbGFuZTsKK+SgsCA+IGNvaWxlZDsKK+SgpCA+IHRvZGRsZTsKK+SgmSA+IHVyZ2VudDsKK+SgjiA+IG5hcnJvdzsKK+SghyA+IHN0cm9uZzsKK+SfsSA+IHRyYWNlczsKK+SfnyA+IHVyZ2VudDsKK+SfkiA+IGNvaWxlZDsKK+SdnCA+IGFcLWxpb247CivknYQgPiBjb3dwZWE7CivknJ4gPiBhXC1kb3NlOwor5JunID4gcmlkZGxlOwor5JulID4gc3BlZWNoOwor5JujID4gc3BlZWNoOwor5JucID4gdG9cLWFzazsKK+SbkSA+IHNpbGVudDsKK+SbiCA+IHRvXC12b3c7CivkmrogPiBiYWxsYWQ7CivkmoggPiB0b1wtc2VlOwor5JqGID4gdG9cLXNlZTsKK+SagiA+IHRvXC1zZWU7CivkmoEgPiB0b1wtc2VlOwor5Jm/ID4gdG9cLXNlZTsKK+SZvSA+IHRvXC1zZWU7CivkmbwgPiB0b1wtc2VlOwor5Jm1ID4gcnVzdGljOwor5JmhID4gYVwta25vdDsKK+SZjCA+IGFcLWtub3Q7CivkmLAgPiBhXC1ob29kOwor5JisID4gYXJtb3VyOwor5JipID4gY29sbGFyOwor5JiMID4gZ2FkZmx5Owor5JiIID4gb3lzdGVyOwor5JerID4gYVwtZnJvZzsKK+SWuSA+IHdlZXZpbDsKK+SWriA+IGxhcnZhZTsKK+SWqyA+IG95c3RlcjsKK+SWqCA+IG1hbnRpczsKK+SWlyA+IHN0cm9uZzsKK+SWgSA+IG51bWJlcjsKK+SVrCA+IGdpbmdlcjsKK+SVqCA+IHJhdHRhbjsKK+SUryA+IHNhbHRlZDsKK+SUoiA+IGNhdGhheTsKK+SUjyA+IGFcLWx1c2g7Civkk6cgPiB1cmdlbnQ7Civkk6YgPiBhXC1ydWxlOwor5JOFID4gY2VsZXJ5Owor5JOEID4gZ3Jhc3N5Owor5JK5ID4gZ3Jhc3N5Owor5JKrID4gZ3Jhc3N5Owor5JKJID4gYVwtbG9uZzsKK+SSgiA+IGFuXC1vYXI7CivkkbogPiBhXC1zYWlsOwor5JG0ID4gYVwtYm9hdDsKK+SRsSA+IGFcLWJvYXQ7Civkka8gPiBhXC1ib2F0Owor5JGoID4gcnVkZGVyOwor5JGmID4gYVwtYm9hdDsKK+SRpCA+IGFcLWJvYXQ7CivkkZAgPiBicmlnaHQ7CivkkKYgPiBzbGVlcHk7CivkkKUgPiBzdGlua3k7Civkj6ogPiB0ZW5kb247Civkj6MgPiBtYWdnb3Q7Civkj4IgPiBjbGV2ZXI7CivkjrEgPiBhXC1kcmFnOwor5I6sID4gYVwtZHJhZzsKK+SOmSA+IGZseWluZzsKK+SOlyA+IGZseWluZzsKK+SOkyA+IGZseWluZzsKK+SOiiA+IGZseWluZzsKK+SOiCA+IGZseWluZzsKK+SOhiA+IGZseWluZzsKK+SOhSA+IGZseWluZzsKK+SOgCA+IGZseWluZzsKK+SNviA+IGZseWluZzsKK+SNrCA+IHRvXC11c2U7CivkjYsgPiBib3R0bGU7CivkjYggPiBib3R0bGU7CivkjYMgPiBhXC12YXNlOwor5Iy0ID4gdW5ldmVuOwor5IyxID4gdW5ldmVuOwor5IycID4gdG9cLXNldzsKK+SMlSA+IHRvXC10aWU7Civki7IgPiBhXC1yb3BlOwor5IuRID4gdG9cLXRpZTsKK+SLkCA+IGZhYnJpYzsKK+SLjCA+IHN0cm9uZzsKK+SKpyA+IGFcLWZhcnQ7CivkiqUgPiBjb25nZWU7CivkipsgPiBzaHJlZHM7Civkio4gPiBwb3dkZXI7CivkioYgPiBjb29rZWQ7CivkibYgPiBhXC1zYWlsOwor5Ii6ID4gYmFtYm9vOwor5Ii0ID4gYVwtY2FnZTsKK+SIjiA+IGFcLWxlYWY7Civkh6UgPiBuYXJyb3c7Civkh6IgPiBiYW1ib287Civkh58gPiB0ZW5kb247Civkh5ogPiB0b1wtdGFwOwor5IeBID4gYVwtY2F2ZTsKK+SGvSA+IGFcLWhvbGU7CivkhrwgPiBhXC1uZXN0Owor5Ia7ID4gYVwtaG9sZTsKK+SGtyA+IGFcLWhvbGU7CivkhrAgPiBhXC1jYXZlOwor5IauID4gdG9cLWRpcDsKK+SGqyA+IHdpbmRvdzsKK+SGpyA+IGFcLWNhdmU7CivkhqEgPiBhXC1jYXZlOwor5IadID4gYVwtY2F2ZTsKK+SGmSA+IGFcLWtpbG47CivkhpMgPiBhXC1ob2xlOwor5IW2ID4gdG9cLWhvZTsKK+SFtCA+IGdyYWluczsKK+SFpiA+IGZlZWJsZTsKK+SFhyA+IGdyYWluczsKK+SEuSA+IGFcLXllYXI7CivkhLIgPiBpbnNpZGU7CivkhK0gPiBhXC15ZWFyOwor5ISYID4gYVwtcml0ZTsKK+SEjiA+IHByZXR0eTsKK+SDpSA+IHN0b25lczsKK+SDliA+IGFcLWJhbms7Civkg4ogPiB0b1wtcnViOwor5IK3ID4gYnJva2VuOwor5IK0ID4gdG9cLXJ1YjsKK+SCsyA+IGdyYXZlbDsKK+SCnSA+IHRvXC1yYXA7CivkgpggPiBwZWJibGU7Civkgb8gPiBzbGVlcHk7CivkgaYgPiB0b1wtc2VlOwor5IGWID4gdG9cLXNlZTsKK+SAkiA+IGdsb29teTsKK+SAjSA+IHZlc3NlbDsKK+SAhSA+IHZlc3NlbDsKK+O/viA+IHZlc3NlbDsKK+O/vCA+IGFcLWJvd2w7Civjv7sgPiBhXC10cmF5Owor47+tID4gY3JhY2tzOwor47+nID4gZmllbGRzOwor47+UID4gYVwtd2FydDsKK+O9tyA+IGRyb3BzeTsKK+O9tSA+IHNvbGVtbjsKK+O8viA+IGJyaWNrczsKK+O8pSA+IGJvdHRsZTsKK+O8nSA+IGFcLWJvd2w7CivjvIQgPiBwZWFybHM7CivjuYwgPiBjYXR0bGU7CivjuL8gPiBhXC1jYWxmOwor47iZID4gZmF0aGVyOwor47ewID4gZmxhbWVzOwor47epID4gYnJpZ2h0Owor47eLID4gZW1iZXJzOwor47eCID4gYnJpZ2h0Owor47akID4gdG9cLWZyeTsKK+O2iCA+IGNyZWVrczsKK+O1qiA+IHNhbGl2YTsKK+O1nSA+IG1vdmluZzsKK+O0niA+IGZsdWVudDsKK+O0hiA+IHRvXC1kaXA7Civjs4wgPiBtYXJzaHk7CivjsbUgPiB0b1wtZGllOwor47GzID4gbG9uZWx5Owor47GxID4gdW5ldmVuOwor47GjID4gdW5ldmVuOwor47GeID4gZGFuZ2VyOwor47GZID4gcm90dGVuOwor47GNID4gdG9cLW93ZTsKK+OxgiA+IGh1bmdyeTsKK+OxgSA+IHRvXC1hc2s7CivjsI0gPiBhXC1jYWdlOwor47CDID4gYVwtdHJlZTsKK+OvviA+IGFcLXRyZWU7Civjr5YgPiBhXC10cmVlOwor46+PID4gZ3JhaW5zOwor46+OID4gc3R1cGlkOwor46+NID4gYW5cLW9hcjsKK+OviSA+IGFcLXRyZWU7Civjr4YgPiBhXC10cmVlOwor466/ID4gYVwtdHJlZTsKK+OuuSA+IGFcLXRyZWU7CivjrrcgPiBhXC10cmVlOwor4662ID4gYVwtdHJlZTsKK+OusyA+IGFcLXRyZWU7CivjrqkgPiBhXC10cmVlOwor466nID4gYVwtdHJlZTsKK+OumCA+IGFcLXRyZWU7CivjrpYgPiB0b1wtbGF5Owor466MID4gY290dG9uOwor462xID4gYVwtY2FzZTsKK+OtiyA+IGFcLWNsdWI7CivjrK8gPiBzdW5zZXQ7CivjrK4gPiBnZW50bGU7CivjrI0gPiBmaWVyY2U7Civjq7ogPiBieWdvbmU7Civjq7ggPiBzdW5zZXQ7Civjq7cgPiBiZWhpbmQ7Civjq6EgPiB3aW50ZXI7Civjq4UgPiBhXC1mbGFnOwor46q5ID4gdG9cLXJvYjsKK+OqhiA+IGhpZGRlbjsKK+OqhCA+IGJyb2tlbjsKK+OpviA+IHVuZXZlbjsKK+OpsiA+IGFcLWZpc3Q7CivjqL4gPiBhXC10eXBlOwor46i7ID4gdG9cLWN1dDsKK+OouCA+IHRvXC1oaXQ7CivjqKkgPiB0b1wtd2luOwor46ilID4gdG9cLWhpdDsKK++onCA+IHBhY2lmeTsKK++omSA+IHNwaXJpdDsKK++olyA+IHByb2ZpdDsKK++olSA+IGJyaWdodDsKK+OojiA+IHRvXC1keWU7CivjqIUgPiBpbnNpZGU7CivvqIIgPiBleHBhbmQ7CivvqIEgPiBkZWdyZWU7Civjp7ggPiB0b1wtaGl0Owor76e0ID4gZm9yZXN0Owor46ezID4gdG9cLW1peDsKK++nrSA+IHN0aW5neTsKK++nqCA+IGluc2lkZTsKK++npyA+IGluc2lkZTsKK++npiA+IHNvcnJvdzsKK+OnpyA+IGFcLWNvbWI7Civvp6QgPiByZWFzb247Civvp6AgPiBjaGFuZ2U7Civvp5kgPiBzaGl2ZXI7Civvp44gPiBzdWxmdXI7Civjp4kgPiB0b1wtcnViOwor76eEID4gZHJhZ29uOwor76a8ID4gc2hhbnR5Owor76azID4gc3Bpcml0Owor76awID4gbGlzdGVuOwor76aqID4gcmVwb3NlOwor76apID4gcHJpc29uOwor76aeID4gdGhyb2F0Owor76acID4gYVwtbGluZTsKK+OmlCA+IHNpbGtseTsKK+OmiyA+IGFic3VyZDsKK+OmiiA+IGxhdmlzaDsKK+OmhSA+IHVuZWFzeTsKK+OmgSA+IHRvXC1zb2I7Civvpb8gPiBzdHJpdmU7Civvpb0gPiBleGN1c2U7CivvpbogPiBicmlkZ2U7CivvpbcgPiBicmlnaHQ7Civjpa0gPiBsdXh1cnk7CivjpasgPiBob25lc3Q7CivvpakgPiBudW1iZXI7CivvpaYgPiByZXR1cm47CivvpZ8gPiByZXBvc2U7CivjpZ8gPiBlbm1pdHk7CivvpZYgPiBjb3JuZXI7CivvpZEgPiBuYXJyb3c7CivvpZAgPiB0aHJlYWQ7CivjpZAgPiBoYXRyZWQ7CivjpYggPiBhZnJhaWQ7CivvpYYgPiBwcmlzb247CivvpYEgPiBkZWJhdGU7CivjpLsgPiBzdHVwaWQ7CivjpLkgPiBoYXRyZWQ7CivjpLggPiB1bmVhc3k7CivvpLUgPiBydXNoZXM7CivjpKggPiBzY2FyZWQ7CivvpKQgPiByYWdnZWQ7CivvpJ8gPiBvcmNoaWQ7CivvpJ4gPiByb3R0ZW47CivvpJMgPiBwYXRyb2w7CivjpJMgPiBzdHVwaWQ7CivvpIUgPiBzdHJpbmc7Civjo60gPiBudW1iZXI7Civjo5ggPiBzcGFzbXM7Civjor0gPiBhXC1iYWl0Owor46K6ID4gc3RyaW5nOwor46GuID4gZGFuZ2VyOwor46GjID4gZHJhZ29uOwor46GaID4gYXJtb3VyOwor46GBID4gYVwtcm9iZTsKK+OgtiA+IGFcLXNhaWw7CivjoLIgPiByaXBwZWQ7CivjoIAgPiBpc2xhbmQ7Civjn7cgPiBhXC13YXJ0Owor45+rID4gc3ByaW5nOwor45+lID4gdW5ldmVuOwor45+fID4gYVwtbGFuZTsKK+OeuCA+IGFcLXllYXI7CivjnocgPiB1bGNlcnM7CivjnoIgPiB1bGNlcnM7CivjnbkgPiBhXC1oYXJlOwor4522ID4gdG9cLWdldDsKK+OdtSA+IHRvXC1nZXQ7CivjnacgPiBzdGFibGU7CivjnYIgPiBsb2N1c3Q7CivjnYEgPiBsb25lbHk7CivjnKsgPiBwcmV0dHk7CivjnKUgPiBjcmFmdHk7Civjm7kgPiBwcmV0dHk7CivjmrwgPiBhXC1naXJsOwor45q7ID4gc29kb215Owor45q5ID4gcHJldHR5Owor45qeID4gdGVycm9yOwor45qQID4gYVwtY2FzZTsKK+OajCA+IGFcLWJhbmQ7CivjmbkgPiBhXC1kYW1wOwor45m2ID4gYVwtaGFsbDsKK+OZrCA+IGFcLWJhbms7CivjmZ0gPiBhXC1kaWtlOwor45mVID4gYVwtbHVtcDsKK+OYtCA+IHRvXC1zaXQ7CivjmLIgPiBhXC1jb3ZlOwor45e3ID4gdG9cLWVhdDsKK+OXtSA+IGJyZWF0aDsKK+OXliA+IHRvXC1lYXQ7CivjlpIgPiB0b1wtY3J5Owor45aBID4gc3Rpbmd5Owor45WgID4gYVwtcGFpcjsKK+OVlCA+IGFcLWhhbGw7CivjlYIgPiB0b1wtaHVtOwor45S6ID4gYW5cLWFnZTsKK+OUuCA+IGFcLXRyYXk7CivjlJwgPiBzdWRkZW47CivjlJcgPiBzdHJvbmc7CivjlJIgPiB0b1wtY3V0Owor45SQID4gdG9cLWN1dDsKK+OUiiA+IHRvXC1jdXQ7CivjlIkgPiB0b1wtZGlnOwor45SGID4gdG9cLWN1dDsKK+OUhSA+IHRvXC1jdXQ7Civjk7UgPiBzd29yZHM7Civjk7EgPiB0b1wtY3V0Owor45OqID4gYnJpZ2h0Owor45OgID4gYVwtZmxhdzsKK+OThSA+IGZyb3plbjsKK+OStiA+IHB1YmxpYzsKK+OStSA+IG1hbm5lcjsKK+OSsiA+IHdlYWx0aDsKK+OSpyA+IGFcLXBhaXI7CivjkqAgPiBuYXJyb3c7CivjkbsgPiBzdHJvbmc7CivjkbcgPiBtYW5uZXI7CivjkbMgPiBjbGV2ZXI7CivjkaMgPiBzdHVwaWQ7CivjkYcgPiBjbGV2ZXI7CivjkLkgPiBzdHJvbmc7Civnn7MgPiBzdG9uZTsKK+efrSA+IHNob3J0Owor5b+rID4gcmFwaWQ7CivlnKggPiBiZVwtYXQ7Civku5YgPiBvdGhlcjsKK+efoiA+IGFycm93Owor5YiwID4gZ29cLXRvOwor6K+0ID4gc3BlYWs7Civov4UgPiBxdWljazsKK+WcsCA+IGVhcnRoOwor5b+DID4gaGVhcnQ7CivkuIsgPiB1bmRlcjsKK+i+rSA+IHdvcmRzOwor5b6uID4gc21hbGw7CivlrrYgPiBob3VzZTsKK+W+oSA+IGRyaXZlOwor6L6eID4gd29yZHM7CivlkI4gPiBxdWVlbjsKK+WwjyA+IHNtYWxsOwor5b6FID4gdHJlYXQ7Civov5ggPiBzdGlsbDsKK+WPkSA+IGlzc3VlOwor5b2rID4gY2FydmU7Civmg7MgPiB0aGluazsKK+edoSA+IHNsZWVwOwor6L2JID4gc2hpZnQ7CivmiYAgPiBwbGFjZTsKK+i8qiA+IHdoZWVsOwor5LiJID4gdGhyZWU7CivovJUgPiBsaWdodDsKK+W8jyA+IHN0eWxlOwor5qC3ID4gc2hhcGU7Civou70gPiBsaWdodDsKK+W7uiA+IGJ1aWxkOwor5bu2ID4gZGVsYXk7Civnm7IgPiBibGluZDsKK+i7oiA+IHNoaWZ0Owor5bujID4gYnJvYWQ7Civlo7AgPiBzb3VuZDsKK+W3pSA+IGxhYm9yOwor55uGID4gYmFzaW47Civnm4MgPiBnbGFzczsKK+atoyA+IHJpZ2h0Owor5bq4ID4gdXN1YWw7CivlpbMgPiB3b21hbjsKK+WKmyA+IHBvd2VyOwor6LqRID4gd2F2ZXI7Civlm6AgPiBjYXVzZTsKK+mHjSA+IGhlYXZ5Owor55qHID4gcm95YWw7CivluocgPiBjb3ZlcjsKK+asoSA+IG9yZGVyOwor5bqDID4gYnJvYWQ7Civlj6MgPiBtb3V0aDsKK+S9vyA+IGNhdXNlOwor55m9ID4gd2hpdGU7Civlub0gPiBxdWlldDsKK+aVmSA+IHRlYWNoOwor55m8ID4gaXNzdWU7Civlho0gPiBhZ2FpbjsKK+eZuiA+IGlzc3VlOwor5rCUID4gc3RlYW07Civkv6EgPiB0cnVzdDsKK+WMlyA+IG5vcnRoOwor6LmyID4gc3F1YXQ7CivouZ8gPiB0cmFjZTsKK+eUsSA+IGNhdXNlOwor5Y20ID4gc3RpbGw7CivluYUgPiBwaWVjZTsKK+WFpSA+IGVudGVyOwor5YWIID4gZmlyc3Q7CivmsLQgPiB3YXRlcjsKK+WkhCA+IHBsYWNlOwor5be3ID4gYWxsZXk7CivnrJEgPiBzbWlsZTsKK+eriyA+IHN0YW5kOwor6LeqID4ga25lZWw7CivpqawgPiBob3JzZTsKK+W3qCA+IGxhcmdlOwor55aRID4gZG91YnQ7CivliKkgPiBnYWluczsKK+i1tCA+IGdvXC10bzsKK+WFiSA+IGxpZ2h0Owor5p6cID4gZnJ1aXQ7CivotacgPiBibHVzaDsKK+iHsyA+IHJlYWNoOwor5riFID4gY2xlYXI7CivniakgPiB0aGluZzsKK+W1jCA+IGlubGF5Owor55SyID4gYXJtb3I7CivnlLAgPiBmaWVsZDsKK+iuuCA+IGFsbG93Owor5YWrID4gZWlnaHQ7CivltJYgPiBjbGlmZjsKK+W0jiA+IHJvdWdoOwor5Y2XID4gc291dGg7CivoibIgPiBjb2xvcjsKK+iuqSA+IGFsbG93Owor55OcID4gbWVsb247CivnrpcgPiBjb3VudDsKK+iziiA+IHRoaWVmOwor5YWDID4gZmlyc3Q7Civosq8gPiBzdG9yZTsKK+aAnSA+IHRoaW5rOwor6LKoID4gZ29vZHM7CivlsqkgPiBjbGlmZjsKK+avjyA+IGV2ZXJ5Owor5bGsID4gY2xhc3M7CivosaogPiBicmF2ZTsKK+WxniA+IGNsYXNzOwor6KiAID4gd29yZHM7CivmnYMgPiBwb3dlcjsKK+WxiyA+IGhvdXNlOwor6LGGID4gYmVhbnM7CivkuIMgPiBzZXZlbjsKK+WwmiA+IHN0aWxsOwor5bCWID4gc2hhcnA7CivovawgPiBzaGlmdDsKK+WwhCA+IHNob290Owor56m6ID4gZW1wdHk7CivmioAgPiBza2lsbDsKK+i9uyA+IGxpZ2h0Owor5a+6ID4gY291cnQ7Civlr6sgPiB3cml0ZTsKK+iLsSA+IHBldGFsOwor5a+iID4gc2xlZXA7CivlhpkgPiB3cml0ZTsKK+WvnSA+IHNsZWVwOwor5a+QID4gc2xlZXA7Civlr4YgPiBkZW5zZTsKK+WvgiA+IHN0aWxsOwor6ZKxID4gbW9uZXk7CivlrrkgPiBsb29rczsKK+WutSA+IG5pZ2h0Owor6K6+ID4gYnVpbGQ7Civlp4sgPiBiZWdpbjsKK+WuoiA+IGd1ZXN0Owor54mHID4gc2xpY2U7CivnoJQgPiBncmluZDsKK+WuhyA+IGhvdXNlOwor5pepID4gZWFybHk7CivmiL8gPiBob3VzZTsKK+mfsyA+IHNvdW5kOwor5427ID4gb2ZmZXI7CivnjbogPiBvdHRlcjsKK+eNuCA+IGJlYXN0Owor6K2yID4gYWxsb3c7CivnjaggPiBhbG9uZTsKK+itpiA+IGd1YXJkOwor542jID4gYmVhc3Q7CivlrZggPiBleGlzdDsKK+itiSA+IHByb29mOwor57uEID4gY2xhc3M7CivorJ0gPiB0aGFuazsKK+eMnCA+IGd1ZXNzOwor5ayJID4gZW5qb3k7Civpu5EgPiBibGFjazsKK+isgSA+IHZpc2l0Owor5YmRID4gc3dvcmQ7Civni6wgPiBhbG9uZTsKK+S5kCA+IGhhcHB5Owor57qnID4gbGV2ZWw7CivoqqwgPiBzcGVhazsKK+S4viA+IHJhaXNlOwor6K+BID4gcHJvdmU7CivnhacgPiBzaGluZTsKK+iqkyA+IHN3ZWFyOwor576kID4gZ3JvdXA7CivmmZogPiBuaWdodDsKK+iqgiA+IHRlbXB0Owor6KmeID4gd29yZHM7CivkvKQgPiB3b3VuZDsKK+exuyA+IGNsYXNzOwor5qyiID4gaGFwcHk7CivniL0gPiBoYXBweTsKK+WKvyA+IHBvd2VyOwor6Ki8ID4gcHJvdmU7CivliLsgPiBjYXJ2ZTsKK+aWrSA+IHNldmVyOwor5aScID4gbmlnaHQ7CivoqLEgPiBhbGxvdzsKK+iorSA+IGJ1aWxkOwor5Lu3ID4gcHJpY2U7CivohJEgPiBicmFpbjsKK+ioqiA+IHZpc2l0Owor6KeEID4gcnVsZXM7CivlqJEgPiBkYW5jZTsKK+egtCA+IGJyZWFrOwor5rO9ID4gbWFyc2g7Civnh7sgPiBzbW9rZTsKK+e0pyA+IHRlbnNlOwor6Ke4ID4gdG91Y2g7Civoo4UgPiBkcmVzczsKK+aApSA+IHF1aWNrOwor5rKzID4gcml2ZXI7CivooYAgPiBibG9vZDsKK+aKlSA+IHRocm93Owor6KaGID4gY292ZXI7Civlj7MgPiByaWdodDsKK+WltCA+IHNsYXZlOwor5YiAID4ga25pZmU7CivopZ8gPiBsYXBlbDsKK+eFmSA+IHNtb2tlOwor5aWJID4gb2ZmZXI7Civllp0gPiBkcmluazsKK+ikuCA+IGxhcGVsOwor6KSqID4gc3RyaXA7CivljasgPiBndWFyZDsKK+WkoiA+IGRyZWFtOwor6ZSZID4gZXJyb3I7Civoo74gPiBsYXBlbDsKK+ahiCA+IHRhYmxlOwor54OfID4gc21va2U7Civoo50gPiBkcmVzczsKK+WNsCA+IHByaW50Owor5aOTID4gcHJlc3M7Civng4ggPiBmaWVyeTsKK+WjhyA+IGFsdGFyOwor5Z2XID4gcGllY2U7Civoo4IgPiBzcGxpdDsKK+iitCA+IHBhbnRzOwor5aKTID4gZ3JhdmU7CivpnZkgPiBxdWlldDsKK+eCjiA+IGZsYW1lOwor6KG3ID4gaGVhcnQ7CivngbAgPiBhc2hlczsKK+ihniA+IGd1YXJkOwor6KGbID4gZ3VhcmQ7CivpgJ8gPiBxdWljazsKK+WhlyA+IHNtZWFyOwor5pWMID4gZW5lbXk7CivloZQgPiB0b3dlcjsKK+iwoiA+IHRoYW5rOwor5aGKID4gcGllY2U7CivmgIAgPiBib3NvbTsKK+WFuyA+IHJhaXNlOwor572qID4gY3JpbWU7Civmv7YgPiBicm9hZDsKK+ifsiA+IHdvcm1zOwor5r+xID4gYmVhY2g7CivmkZggPiBwbHVjazsKK+aWvSA+IGdyYW50Owor5qihID4gbW9kZWw7CivojYkgPiBncmFzczsKK+a/gyA+IHRoaWNrOwor5YC8ID4gcHJpY2U7Civmv4EgPiBtdWRkeTsKK+ePrSA+IGNsYXNzOwor5L+uID4gc3R1ZHk7CivlkbMgPiB0YXN0ZTsKK+a+pCA+IG1hcnNoOwor57uHID4gd2VhdmU7CivpvpUgPiBuaWNoZTsKK+idvyA+IGZsaWVzOwor5YWNID4gc3BhcmU7Civms6IgPiB3YXZlczsKK+a9lCA+IGNsZWFuOwor5rSLID4gb2NlYW47CivlirMgPiBsYWJvcjsKK+WdhyA+IGVxdWFsOwor5Y6LID4gcHJlc3M7CivlpZYgPiBwcml6ZTsKK+mhvyA+IHBhdXNlOwor5ryCID4gZmxvYXQ7CivliKQgPiBqdWRnZTsKK+e0oCA+IHdoaXRlOwor5Zi0ID4gbW91dGg7Civmi4UgPiBjYXJyeTsKK+advyA+IHBsYW5rOwor6ZKfID4gY2xvY2s7Civorr8gPiB2aXNpdDsKK+m7kiA+IGJsYWNrOwor6buQID4gc3RpY2s7Civom4cgPiBzbmFrZTsKK+aehCA+IGZyYW1lOwor5rq6ID4gZHJvd247CivpuqYgPiB3aGVhdDsKK+m6pSA+IHdoZWF0Owor5rqdID4gZGl0Y2g7CivmupwgPiBzbGlkZTsKK+iCiSA+IGZsZXNoOwor57q4ID4gcGFwZXI7CivmoqYgPiBkcmVhbTsKK+iZmiA+IGZhbHNlOwor6JKZID4gY292ZXI7CivomZUgPiBwbGFjZTsKK+iZjiA+IHRpZ2VyOwor5ZmMID4gc2NvbGQ7CivmnYIgPiBtaXhlZDsKK+aAkiA+IGFuZ2VyOwor56i/ID4gZHJhZnQ7CivmuKYgPiBzd2lybDsKK+a4oSA+IGNyb3NzOwor5rigID4gZGl0Y2g7CivlmJcgPiB0YXN0ZTsKK+e9oiA+IGNlYXNlOwor6be6ID4gaGVyb247Civpt7kgPiBlYWdsZTsKK+a3uSA+IGRyb3duOwor6JepID4gZmVuY2U7Civol6UgPiBkcnVnczsKK+mynCA+IGZyZXNoOwor572uID4gcGxhY2U7Civll4UgPiBzbWVsbDsKK+iXgSA+IHN0cmF3Owor6ba0ID4gY3JhbmU7CivmnqogPiBzcGVhcjsKK+a2ryA+IHNob3JlOwor6JauID4gbWFyc2g7CivolqwgPiBkcnVnczsKK+iWpiA+IG9mZmVyOwor5racID4gZGl0Y2g7CivmtpkgPiB0ZWFyczsKK+mFjSA+IG1hdGNoOwor5rW0ID4gYmF0aGU7CivljYcgPiBhcmlzZTsKK+a1nCA+IGNyZWVrOwor6JS9ID4gY292ZXI7Civor40gPiB3b3JkczsKK+azqiA+IHRlYXJzOwor6JStID4gc2hhZGU7CivmtKUgPiBmZXJyeTsKK+msvCA+IGdob3N0Owor6IieID4gZGFuY2U7Civok64gPiBsb3R1czsKK+mBvyA+IGF2b2lkOwor5qGMID4gdGFibGU7Civok4sgPiBjb3ZlcjsKK+S6oSA+IGRlYXRoOwor6JOEID4gc3RvcmU7Civpl6ogPiBmbGFzaDsKK+iSuCA+IHN0ZWFtOwor6ZyHID4gc2hha2U7CivlkrMgPiBjb3VnaDsKK+WSsiA+IHNtaWxlOwor5rKiID4gbWFyc2g7Civnu78gPiBncmVlbjsKK+WSjiA+IGZhdWx0Owor57qzID4gYWRtaXQ7Civmsb0gPiBzdGVhbTsKK+i0pyA+IGdvb2RzOwor5ZGqID4gY3Vyc2U7Civnq6UgPiBjaGlsZDsKK+S8nyA+IGdyZWF0Owor5rGBID4ganVpY2U7CivojaMgPiBnbG9yeTsKK+eMriA+IG9mZmVyOwor5ZCQID4gdm9taXQ7CivljpogPiB0aGljazsKK+mwjCA+IGxvYWNoOwor5ZaKID4gc2hvdXQ7Civova4gPiB3aGVlbDsKK+WQiSA+IGx1Y2t5Owor6K6tID4gdGVhY2g7Civlj7EgPiBzY29sZDsKK+mAkCA+IGNoYXNlOwor55uWID4gY292ZXI7Civlj6kgPiBrbm9jazsKK+iIjSA+IGhvdXNlOwor5q+OID4gZXZlcnk7Civmo4AgPiBjaGVjazsKK+aPoSA+IGdyYXNwOwor54mZID4gdG9vdGg7Civprq4gPiBmcmVzaDsKK+WuvSA+IGJyb2FkOwor5q6WID4gYnJlZWQ7Civljb8gPiBub2JsZTsKK+iNtyA+IGxvdHVzOwor5q2vID4gdGVldGg7CivmraogPiBzbGFudDsKK+atoSA+IGhhcHB5Owor5qOLID4gY2hlc3M7CivprZQgPiBkZW1vbjsKK+iFsCA+IHdhaXN0Owor5qKFID4gcGx1bXM7CivpkqIgPiBzdGVlbDsKK+iMuSA+IHJvb3RzOwor5LuHID4gZW5lbXk7CivmrLogPiBjaGVhdDsKK+msmiA+IGJlYXJkOwor5YyZID4gc3Bvb247Civlh4AgPiBjbGVhbjsKK+WMjSA+IGNyYXdsOwor5qyKID4gcG93ZXI7CivojIUgPiByZWVkczsKK+e0ryA+IHRpcmVkOwor5LqrID4gZW5qb3k7CivojIIgPiB0aGljazsKK+WLhyA+IGJyYXZlOwor5pyrID4gZmluYWw7Civns4ogPiBwYXN0ZTsKK+eojiA+IHRheGVzOwor5YuiID4gcG93ZXI7Civli54gPiBsYWJvcjsKK+iLmyA+IHNtYWxsOwor5oOvID4gaGFiaXQ7CivlgL4gPiB1cHNldDsKK+WKtCA+IGxhYm9yOwor6Z+pID4gZmVuY2U7CivotLggPiB0cmFkZTsKK+aqoiA+IGNoZWNrOwor5YqNID4gc3dvcmQ7CivmiasgPiBzd2VlcDsKK+iJuCA+IGdyYXNzOwor5YmjID4gc3dvcmQ7CivlkJMgPiBzY2FyZTsKK+WJgyA+IHNoYXZlOwor6ZeyID4gZmVuY2U7CivoiLYgPiBsYXJnZTsKK+WItyA+IGJydXNoOwor576KID4gc2hlZXA7CivmqKkgPiBwb3dlcjsKK+aooyA+IHNoYXBlOwor5omRID4gcG91bmQ7CivoiI4gPiBob3VzZTsKK+eijiA+IGJyZWFrOwor5qiCID4gaGFwcHk7Civno6ggPiBncmluZDsKK+iHuiA+IHRvd2VyOwor6IetID4gc21lbGw7Civlh6YgPiBwbGFjZTsKK+anmCA+IHNoYXBlOwor5YCNID4gdGltZXM7CivnspcgPiByb3VnaDsKK+aniyA+IGZyYW1lOwor5Ya2ID4gc21lbHQ7CivohrMgPiBtZWFsczsKK+mmrSA+IGRyaXZlOwor5pyXID4gY2xlYXI7CivppqwgPiBob3JzZTsKK+WFvCA+IHVuaXRlOwor6Z6LID4gc2hvZXM7CivmrKMgPiBoYXBweTsKK+aMpCA+IGNyb3dkOwor5qW9ID4gaGFwcHk7CivmtIEgPiBjbGVhbjsKK+milyA+IGdyYWluOwor5oOgID4gZmF2b3I7CivmjK8gPiByYWlzZTsKK+iFpiA+IGJyYWluOwor54isID4gY3Jhd2w7CivohZUgPiB3cmlzdDsKK+ahgyA+IHBlYWNoOwor5o6qID4gcGxhY2U7Civms7AgPiBncmVhdDsKK+WdoSA+IHNsb3BlOwor6ISzID4gYnJhaW47CivlnZsgPiBhbHRhcjsKK+WEnyA+IHJlcGF5Owor5qScID4gY2hlY2s7CivlvaogPiB0aWdlcjsKK+mlriA+IGRyaW5rOwor5qSNID4gcGxhbnQ7CivppIogPiByYWlzZTsKK+iEiiA+IHNwaW5lOwor5qSFID4gY2hhaXI7Civnn5sgPiBzcGVhcjsKK+WuviA+IGd1ZXN0Owor6IKaID4gYmVsbHk7Civlg7kgPiBwcmljZTsKK+i0vCA+IHRoaWVmOwor6aOyID4gZHJpbms7Civmo7IgPiBwZXJjaDsKK+mjriA+IGRyaW5rOwor5YOeID4gZmFsc2U7Civlg5UgPiBzbGF2ZTsKK+ajkiA+IHN0aWNrOwor5YONID4gbGFib3I7Civlgr4gPiB1cHNldDsKK+WCtyA+IHdvdW5kOwor5YKsID4gcHJlc3M7Civogp0gPiBsaXZlcjsKK+ebnyA+IHN3ZWFyOwor5YG9ID4gZmFsc2U7Civnrq0gPiBhcnJvdzsKK+iBsiA+IHNvdW5kOwor6aGeID4gY2xhc3M7CivogIAgPiBzaGluZTsKK+mhhiA+IGdyYWluOwor5YGJID4gZ3JlYXQ7Civnlq8gPiBjcmF6eTsKK+iAuyA+IHNoYW1lOwor5L6NID4gc2VydmU7CivlgKQgPiBwcmljZTsKK+ihqyA+IHNoaXJ0Owor6aCTID4gcGF1c2U7Civmj60gPiByYWlzZTsKK+iOsiA+IGxvdHVzOwor6ZK7ID4gZHJpbGw7CivmoIQgPiBnbG9yeTsKK+WzoSA+IGdvcmdlOwor6Z+7ID4gcmh5bWU7Civmn7UgPiBmZW5jZTsKK+S4kSA+IGNsb3duOwor57+zID4gc2hhZGU7CivmtZMgPiB0aGljazsKK+aNiSA+IGdyYXNwOwor5r6zID4gaW5sZXQ7CivnlrwgPiBhY2hlczsKK+ahoyA+IHNoZWxmOwor5oqbID4gdGhyb3c7CivkvqEgPiBwcmljZTsKK+mYlCA+IGJyb2FkOwor546bID4gYWdhdGU7CivpnbQgPiBib290czsKK+WwnSA+IHRhc3RlOwor5omjID4ga25vY2s7CivpnZwgPiBxdWlldDsKK+WCsiA+IHByb3VkOwor5Ly6ID4gc2VydmU7CivplJAgPiBzaGFycDsKK+mcnCA+IGZyb3N0Owor5ZC1ID4gYXJndWU7Civmsp8gPiBkaXRjaDsKK+a1kSA+IG11ZGR5Owor6YKqID4gd3Jvbmc7CivohIYgPiBjcmlzcDsKK+WBvyA+IHJlcGF5Owor5oufID4gZHJhZnQ7Civmm7MgPiB0cmFpbDsKK+mboiA+IGxlYXZlOwor6ZucID4gbWl4ZWQ7Civlj5sgPiByZWJlbDsKK+eCvCA+IHNtZWx0Owor6ZuRID4gbWl4ZWQ7Civnv7wgPiB3aW5nczsKK+WRtSA+IHNjb2xkOwor55ScID4gc3dlZXQ7CivmirkgPiBzbWVhcjsKK+mamSA+IGNyYWNrOwor5omUID4gdGhyb3c7Civlu7cgPiBjb3VydDsKK+aOtyA+IHRocm93Owor5YKFID4gdHV0b3I7CivmmakgPiBuaWdodDsKK+e5lCA+IHdlYXZlOwor5Za3ID4gc3B1cnQ7CivmtakgPiBncmVhdDsKK+WQqSA+IG9yZGVyOwor5LyqID4gZmFsc2U7Civnno4gPiBibGluZDsKK+efriA+IHNob3J0Owor6b2/ID4gdGVldGg7Civnt5EgPiBncmVlbjsKK+WotiA+IG1hcnJ5Owor57eKID4gdGVuc2U7Civpl4cgPiBjbG9zZTsKK+eSgyA+IGdsYXNzOwor5pa3ID4gc2V2ZXI7Civns5YgPiBzdWdhcjsKK+ePiiA+IGNvcmFsOwor5qONID4gc3RpY2s7CivplpEgPiBmZW5jZTsKK+eOuyA+IGdsYXNzOwor56C4ID4gc21hc2g7CivlmrcgPiBzaG91dDsKK+mWgyA+IGZsYXNoOwor5pW1ID4gZW5lbXk7CivntZ4gPiB0d2lzdDsKK+WdnyA+IGdyYXZlOwor6bmkID4gY3JhbmU7CivntYQgPiBjbGFzczsKK+S5liA+IHJlYmVsOwor57SaID4gbGV2ZWw7CivntJkgPiBwYXBlcjsKK+e0jSA+IGFkbWl0Owor6L2oID4gdHJhY2s7Civmk7EgPiBwbGFjZTsKK+aTrCA+IGRyYWZ0Owor56GVID4gZ3JlYXQ7Civmk6cgPiByYWlzZTsKK+aToSA+IGNhcnJ5Owor5pOUID4gY2Fycnk7CivmkrIgPiBwb3VuZDsKK+WFvSA+IGJlYXN0Owor57GWID4gdGFsbHk7CivpkJggPiBjbG9jazsKK+mBriA+IGNvdmVyOwor5pOSID4gY2F0Y2g7Civnr4kgPiBidWlsZDsKK+aPgyA+IHNoZWFyOwor566SID4gYnJvb207CivpvI4gPiBsYXJnZTsKK+aOgyA+IHN3ZWVwOwor6Y2uID4gYnJhc3M7Civll5MgPiB2b2ljZTsKK+eykiA+IGdyYWluOwor6YyvID4gZXJyb3I7CivllaUgPiB3aGF0XD87CivpjKIgPiBtb25leTsKK+icnCA+IGhvbmV5Owor5oyZID4gcmFpc2U7Civpi7wgPiBzdGVlbDsKK+aLtiA+IHByZXNzOwor6YutID4gc2hhcnA7CivmkIEgPiBwbGFjZTsKK+mLjyA+IHRvbmdzOwor6IK/ID4gc3dlbGw7Civpiq0gPiBtb25leTsKK+ijmSA+IHNraXJ0Owor6IOAID4gc3dlbGw7CivovpwgPiBjcmltZTsKK+WThyA+IHZvbWl0Owor5bC/ID4gdXJpbmU7CivpgK4gPiBzZWl6ZTsKK+WIriA+IHNoYXZlOwor5ZixID4gb3JkZXI7CivlgKEgPiBndWlkZTsKK+aQjyA+IHNlaXplOwor5YWcID4gcG91Y2g7CivprYQgPiB2aWdvcjsKK+aZsCA+IGNsZWFyOwor57OVID4gY2FrZXM7Civnp6kgPiBvcmRlcjsKK+eomiA+IHlvdW5nOwor6YiNID4gYmx1bnQ7Civmh7cgPiBib3NvbTsKK+a7qCA+IGJlYWNoOwor5oeQID4gYm9zb207CivouoEgPiB0ZW5zZTsKK+eUqyA+IGJlZ2luOwor56a9ID4gYmlyZHM7CivmhrogPiBwZWFjZTsKK+mTviA+IGNoYWluOwor5oasID4gcm91c2U7CivmspAgPiBiYXRoZTsKK+WHsyA+IGJlbmNoOwor6YWsID4gdG9hc3Q7CivmhaMgPiBoYWJpdDsKK+eBvyA+IHZpdmlkOwor6Z+1ID4gcmh5bWU7CivmlIAgPiBjbGltYjsKK+WSkiA+IGN1cnNlOwor5rKrID4gZnJvdGg7CivnoowgPiByb3VnaDsKK+WdpCA+IGVhcnRoOwor54SwID4gZmxhbWU7CivpgJcgPiB0ZW1wdDsKK+mChCA+IHN0aWxsOwor6a2BID4gY2hpZWY7Civmu6UgPiBmbG9vZDsKK+mBqSA+IG1hdGNoOwor5oGlID4gc2hhbWU7CivmoYYgPiBmcmFtZTsKK+WWgCA+IHZvbWl0Owor56CVID4gYnJlYWs7Civnv4UgPiB3aW5nczsKK+aIsyA+IHByaWNrOwor5qGpID4gc3Rha2U7CivogrogPiBsdW5nczsKK+e6sSA+IGdhdXplOwor6ZmhID4gc3RlZXA7Civng6sgPiBzY2FsZDsKK+WMlSA+IHNwb29uOwor6bmFID4gZ29vc2U7CivmlZ4gPiByb29teTsKK+a1jyA+IGNsZWFyOwor54OBID4gc2hpbmU7Civor4ggPiBjaGVhdDsKK+WzqCA+IGxvZnR5Owor6JmQID4gY3J1ZWw7CivovqsgPiBicmFpZDsKK+WXvSA+IGNvdWdoOwor5oCmID4gZWFnZXI7CivmtYcgPiBzcHJheTsKK+iGmyA+IGNoZXN0Owor6Ze1ID4gbW91cm47CivokIMgPiBkZW5zZTsKK+iinCA+IHNvY2tzOwor5o+9ID4gZ3Jhc3A7CivojasgPiBzaGFkZTsKK+i0vyA+IGJyaWJlOwor5pWdID4gYnJlYWs7Civnho8gPiBzbW9rZTsKK+WMgCA+IGVxdWFsOwor5rKDID4gd2F0ZXI7CivonYcgPiBmbGllczsKK+e7niA+IHR3aXN0Owor5ZGVID4gdm9taXQ7CivlooUgPiB2aWxsYTsKK+envSA+IGRpcnR5Owor6LCsID4gZXJyb3I7CivlnoQgPiBncmF2ZTsKK+WRuyA+IGdyb2FuOwor5ounID4gcGluY2g7CivlvbAgPiBjbGVhcjsKK+agliA+IHBlcmNoOwor5om8ID4gZ3Jhc3A7CivmtYogPiBtdWRkeTsKK+adoCA+IGxldmVyOwor5oOrID4gdGlyZWQ7CivmlJggPiBzZWl6ZTsKK+e8jiA+IHNhdGluOwor5oOuID4gZHJlYWQ7CivlmZcgPiBidXJzdDsKK+eftiA+IGpldHR5Owor55OjID4gcGV0YWw7Civpu50gPiBibGFjazsKK+ewhyA+IHN3YXJtOwor5oeKID4gdmV4ZWQ7Civli7ogPiBzcG9vbjsKK+WkrSA+IHlvdW5nOwor5ouHID4gdGh1bWI7Civpk7IgPiBzcGFkZTsKK+iCriA+IGRpcnR5Owor5ZO9ID4gY2hva2U7Civor6MgPiByZWFjaDsKK+eCqyA+IHNoaW5lOwor6ZKdID4gYmx1bnQ7CivmoIUgPiBmZW5jZTsKK+WGlSA+IGNyb3duOwor5buTID4gYnJvYWQ7Civls60gPiBzdGVlcDsKK+ejhSA+IHBvdW5kOwor55auID4gdHVtb3I7CivotYMgPiBib290eTsKK+eYpCA+IHR1bW9yOwor5amKID4gd2hvcmU7CivplK8gPiBhXC1zYXc7Civnp4kgPiBncmFzcDsKK+iHuyA+IHJlYWNoOwor5ZiIID4gbm9pc3k7Civor4UgPiBjdXJzZTsKK+e8sCA+IHJlaW5zOwor6K6qID4gYWJ1c2U7Civlv6EgPiBhXC1zYWQ7CivmtqEgPiBzd2lybDsKK+mmjSA+IGJyZWFkOwor6aKFID4gc2t1bGw7Civnpa8gPiBsdWNreTsKK+W/liA+IGd1ZXNzOwor54OZID4gYnJhbmQ7Civln5QgPiBwbGFpbjsKK+azkyA+IGNsZWFyOwor5ZmOID4gY2hva2U7CivpmJwgPiBtb3VuZDsKK+S/qCA+IGdyYXZlOwor54KsID4gdG9yY2g7CivotK4gPiBzdG9yZTsKK+a4jiA+IGRpdGNoOwor55mrID4gY3Jhenk7CivngpkgPiByb2FzdDsKK+iChyA+IGJlZ2luOwor5biaID4gYnJvb207CivmgawgPiBxdWlldDsKK+WpqiA+IGNvdmV0Owor6LmRID4gdHJlYWQ7Civnq7ogPiBpbmRpYTsKK+WJjCA+IHNsYXNoOwor6I2nID4gc2hpbmU7CivotYIgPiBicmliZTsKK+ivsiA+IHRlYWNoOwor562bID4gc2lldmU7Civnr6EgPiB1c3VycDsKK+myuCA+IHdoYWxlOwor5oqhID4gc3dpbmc7Civmtq4gPiByaW5zZTsKK+aMjiA+IGNhcnJ5Owor6YW1ID4geWVhc3Q7CivmqYQgPiBvbGl2ZTsKK+amhCA+IG9saXZlOwor56igID4gZGVuc2U7CivmgrsgPiBhbmdlcjsKK+mbjyA+IGNoaWNrOwor5pG5ID4gdHJhY2U7CivmtqcgPiBicm9vazsKK+iFuiA+IGdsYW5kOwor5ZOuID4gY291Z2g7CivoopIgPiBzdHJpcDsKK+aKoCA+IHJhaXNlOwor5b+xID4gdHJ1dGg7CivlmaQgPiBjbG9zZTsKK+mrryA+IGJlYXJkOwor6Jy/ID4gY3JlZXA7CivplYAgPiBwbGF0ZTsKK+iDrSA+IHJvdWdlOwor6auFID4gc2t1bGw7CivnhJggPiBzaGluZTsKK+S9lyA+IG90aGVyOwor6LWzID4gZ3JhbmQ7Civns6AgPiBjaGFmZjsKK+W4myA+IHNpbGtzOwor5L6PID4gc21hbGw7CivkuJUgPiBncmVhdDsKK+myqCA+IHNoYXJrOwor6LidID4gYW5rbGU7Civpqa0gPiBkcml2ZTsKK+eciCA+IGdsb2F0Owor5YCtID4gZHdhcmY7CivplZAgPiBzdG92ZTsKK+iHhiA+IGNoZXN0Owor5a26ID4gY2hpbGQ7CivombEgPiBsb3VzZTsKK+eRmSA+IGFnYXRlOwor6KSbID4gbGFwZWw7CivmgbogPiBlbmpveTsKK+aTniA+IHNoYWtlOwor566VID4gc2lldmU7CivmtpMgPiBicm9vazsKK+WZvCA+IHNvdW5kOwor5pCQID4gY3JhbXA7CivmiJsgPiBsYW5jZTsKK+m7lCA+IGJsYWNrOwor6ZiWID4gY2xvc2U7CivlkYMgPiBiZWxjaDsKK+a6iSA+IHdhdGVyOwor54KAID4gcm9hc3Q7Civnmo4gPiB3aGl0ZTsKK+amrSA+IGtpb3NrOwor6YWqID4gY3JlYW07CivlgoAgPiBncmVhdDsKK+WtgCA+IHdpZG93Owor5a2qID4gdHdpbnM7Civms7EgPiBncmVhdDsKK+WyliA+IHN0ZWVwOwor5b+4ID4gYmx1c2g7CivnnrAgPiB3YXRjaDsKK+iwkiA+IHZpc2l0Owor6KeKID4gY292ZXQ7CivmsK4gPiB4ZW5vbjsKK+eXoyA+IHNwb3RzOwor5pGSID4gZXhwZWw7Civkv7ggPiB3YWdlczsKK+aEoCA+IGFuZ3J5Owor5bKRID4gc3RlZXA7CivmkL0gPiBzbWVhcjsKK+aJqiA+IHN0b2tlOwor55GaID4gY29yYWw7CivnmpkgPiB3aGl0ZTsKK+e7iSA+IGNyZXBlOwor5b++ID4gYW5nZXI7Civnm4IgPiBiYXNpbjsKK+ePgCA+IGFtYmVyOwor5YGIID4gYnJhdmU7CivmspQgPiBmbG9vZDsKK+ivqSA+IGJvYXN0Owor6IqNID4gcGVvbnk7CivopLYgPiBwbGVhdDsKK+mFlyA+IGRydW5rOwor5ZKkID4gc2NvbGQ7Civmn6AgPiBsZW1vbjsKK+ivmSA+IHRlYXNlOwor5YGDID4gY2Vhc2U7Civnu7ogPiBza2VpbjsKK+aPvyA+IHByZXNzOwor6YeJID4gZ2xhemU7Civpua0gPiBoZXJvbjsKK+WukyA+IHF1aWV0Owor5a2bID4gY29tZXQ7CivlmasgPiBiZWxjaDsKK+W8iyA+IGNhdGNoOwor6b6bID4gbmljaGU7Civlv6ogPiBxdWlldDsKK+mVgiA+IGNhcnZlOwor6aqeID4gcmFpc2U7CivpoowgPiBtb3V0aDsKK+mToCA+IGFybW9yOwor6bOFID4gbG9hY2g7Civnp4YgPiBzdHJhdzsKK+W2giA+IGNsaWZmOwor5qS9ID4gYmVhbXM7CivpoqYgPiBmcm93bjsKK+a3liA+IHNsdXNoOwor5oGaID4gYW5nZXI7CivojqAgPiB3ZWVkczsKK+apmyA+IGFcLXBlZzsKK+mYlSA+IGNsb3NlOwor5ZK7ID4gc2hvdXQ7CivnpZsgPiBleHBlbDsKK+iSuiA+IGZ1cnplOwor6KG9ID4gbGFwZWw7Civnv5UgPiBhZ3JlZTsKK+mcviA+IG1pc3R5Owor56CnID4gYW52aWw7CivouYkgPiBlcnJvcjsKK+WTgiA+IHNtaWxlOwor6IO6ID4gYW1pbmU7Civom60gPiBsZWVjaDsKK+mfqiA+IHJpZ2h0Owor6K+oID4gam9rZXM7CivotZ0gPiBmYWxzZTsKK+WyvyA+IGdyYW5kOwor5oCrID4gc29ycnk7CivojY8gPiBiZWFuczsKK+allCA+IHdlZGdlOwor5pOYID4gdGh1bWI7CivovbEgPiB3aGVlbDsKK+WqviA+IG1hcnJ5Owor55eNID4gd291bmQ7Civnja0gPiBvdHRlcjsKK+m7oiA+IGJsYWNrOwor6ZOnID4gc3BhZGU7CivlkJIgPiBzaG91dDsKK+eWvSA+IHVsY2VyOwor6K+fID4gYWJ1c2U7CivojJQgPiBncmF2ZTsKK+ahpCA+IGFsZGVyOwor6ZOGID4gcml2ZXQ7CivphakgPiBkcnVuazsKK+awtSA+IHdhdGVyOwor5pK6ID4gaHVycnk7CivlpZggPiBsYXJnZTsKK+iChCA+IGxlYXJuOwor6LivID4gd2F2ZXI7CivlraIgPiBzcG9yZTsKK+mysiA+IHNwYXduOwor6YWKID4gZHJ1bms7Civpk6ggPiB3ZWlnaDsKK+mFvSA+IHRoaWNrOwor6ZiSID4gYWxvbmU7CivppawgPiBvcmRlcjsKK+ixlSA+IGFcLXBpZzsKK+esiiA+IGxhZGxlOwor572FID4gY3JhY2s7CivpkpwgPiBzdGVlbDsKK+eViCA+IGZpZWxkOwor5ZuXID4gZXJlY3Q7CivluqUgPiBzaGFkZTsKK+eTpCA+IGZsZXNoOwor6ZOpID4gbW91bHQ7CivmuJYgPiBqdWljZTsKK+W/hCA+IGhlYXJ0Owor6K+TID4gY2hlYXQ7CivpuZEgPiBxdWFpbDsKK+iMlSA+IGFsb25lOwor5Z6FID4gbW91bmQ7Civon6UgPiBsZWVjaDsKK+m5syA+IGNyYW5lOwor6bmMID4gcXVhaWw7CivmmZ8gPiBjbGVhcjsKK+WVgSA+IGNoaXJwOwor6YaaID4gZXRoZXI7CivnkLAgPiBqZXdlbDsKK+i/qCA+IHVudGlsOwor6KSrID4gc3RyaXA7CivpuawgPiBzbmlwZTsKK+eevSA+IGJsaW5kOwor5YKIID4gdHJpYmU7Civpqb0gPiB0aXJlZDsKK+iwryA+IHRvd2VyOwor6ZOwID4gaGluZ2U7CivmtIwgPiBjbGVhcjsKK+WgniA+IHBsYXRlOwor56G8ID4gYm9yYXg7CivoqYggPiBzY29sZDsKK+mFryA+IGVzdGVyOwor6ZWqID4gY29pbnM7CivplLggPiBzcGFkZTsKK+aIiyA+IHNtYWxsOwor5ommID4gcHJvYmU7CivmurcgPiBwcml2eTsKK+S/syA+IGFjdG9yOwor6ZugID4gZW5lbXk7CivnoLsgPiBncmluZDsKK+iYliA+IHN0dW1wOwor5aKAID4gcG9yY2g7CivpurQgPiB5ZWFzdDsKK+eqsyA+IGRpcnR5Owor5r2LID4gd2F2ZXM7CivmtI4gPiB1bnRpbDsKK+mlpyA+IHN1Z2FyOwor5ZaIID4gbXVzaWM7CivlkKEgPiBibGFtZTsKK+mZnyA+IGNsaW1iOwor6bKbID4gc2hhcms7CivnmrIgPiBjcmFjazsKK+eYiiA+IHdhcnRzOwor6aaVID4gYnJlYWQ7CivmkKYgPiBncmFzcDsKK+WetCA+IHNtYWxsOwor6ZidID4gcGxhY2U7CivljqMgPiBzaGVsbDsKK+ezhSA+IGJsZW5kOwor6ZOXID4gdG9uZ3M7CivpmI8gPiBibG9jazsKK+WJoSA+IHNoYXJwOwor6bKCID4gYnJlYW07Civmur0gPiBtb2lzdDsKK+aAvyA+IGVuam95Owor6Im5ID4gZ3Jhc3M7Civpq5EgPiBza3VsbDsKK+i3vSA+IGtuZWVsOwor57CPID4gYVwtYm94Owor6KOlID4gZm9sZHM7CivpkqMgPiBwbGF0ZTsKK+aniiA+IHNwZWFyOwor5qSLID4gZnJ1aXQ7CivnvLMgPiBub29zZTsKK+e7kCA+IGNoZWF0Owor5ruiID4gY2xlYXI7CivpvqAgPiBmbHV0ZTsKK+idpCA+IGxhcnZhOwor5rCGID4gdGhpY2s7Civln60gPiBhXC1kYW07Civln70gPiBicm9vbTsKK+WdvCA+IHNwbGl0Owor6K+WID4gZXJyb3I7CivpsrYgPiBzaGVhdDsKK+iyhSA+IGJyYXZlOwor55qkID4gd2hpdGU7CivnqIIgPiBncmFzczsKK+mVhiA+IHN3b3JkOwor6ZSeID4gaW5nb3Q7CivniJ0gPiB0b3JjaDsKK+awoSA+IHJhZG9uOwor5qetID4gbWFwbGU7CivlvZggPiBzd2luZTsKK+W9liA+IGFcLWhvZzsKK+a7lyA+IGRyYWluOwor5buRID4gYVwtaHV0Owor5YyPID4gZ291cmQ7CivolZYgPiBsb3R1czsKK+S+lCA+IGVxdWFsOwor6bOKID4gYnJlYW07Civnr7wgPiBzZWRhbjsKK+ibniA+IHNuYWlsOwor6JuyID4gd29ybXM7CivomY0gPiB0aWdlcjsKK+awmSA+IHhlbm9uOwor6LWHID4gYnJpYmU7CivnkoEgPiBcKGdlbVwpOwor57uXID4gYmFzdGU7CivokI8gPiBsb3R1czsKK+WfmCA+IHJvb3N0Owor6b2SID4gdGVldGg7CivpvYUgPiBzbWVsbDsKK+m7riA+IGJsYWNrOwor6buTID4gYmxhY2s7CivpurogPiBmbG91cjsKK+m6uSA+IHllYXN0Owor6bq1ID4gZmxvdXI7Civpuq8gPiB5ZWFzdDsKK+m6qyA+IGZsb3VyOwor6bqqID4gZmxvdXI7CivpuqQgPiByb3VnaDsKK+m6mCA+IHNjZW50Owor6bqBID4gcm91Z2g7Civpub4gPiBzYWx0eTsKK+m5uiA+IHNhbHR5Owor6bm5ID4gc2FsdHk7CivpuLIgPiBteW5haDsKK+m4myA+IGNyYW5lOwor6biYID4gZWFnbGU7Civpt7ggPiBzbmlwZTsKK+m3gyA+IHF1YWlsOwor6ba1ID4gY2hpY2s7CivptokgPiBxdWFpbDsKK+m1sCA+IGVhZ2xlOwor6bWqID4gcXVhaWw7CivptZ4gPiBnb29zZTsKK+m1nSA+IGdvb3NlOwor6bSzID4gcXVhaWw7CivptKogPiBzd29vcDsKK+m0pSA+IHN3b29wOwor6bSdID4gbXluYWg7CivpsbsgPiBmcmVzaDsKK+mxriA+IGJyZWFtOwor6bCeID4gc3F1aWQ7CivpsI0gPiBsb2FjaDsKK+mwiyA+IHNoZWF0Owor6a+/ID4gYnJlYW07Civpr7AgPiBzaGVhdDsKK+mvqCA+IHdoYWxlOwor6a+kID4gc3Bhd247Civpr4sgPiBzaGFyazsKK+mviiA+IHNoYXJrOwor6a6rID4gc2hhcms7CivprokgPiBicmVhbTsKK+mttCA+IGJyZWFtOwor6a2GID4gYmxhY2s7CivprJIgPiBibGFjazsKK+msjiA+IGZhdnVzOwor6ayNID4gYmVhcmQ7CivprIEgPiBmYXZ1czsKK+mrsyA+IHN0YXRlOwor6auyID4gYVwtd2lnOwor6aulID4gYmVhcmQ7Civpq5IgPiBkaXJ0eTsKK+mrjyA+IHNrdWxsOwor6aqvID4gZGlydHk7CivpqakgPiBoYXBweTsKK+mppiA+IGhvcnNlOwor6amWID4gYmxhY2s7CivpqLsgPiBob3JzZTsKK+moqyA+IHJhaXNlOwor6aigID4gaG9yc2U7CivpqJEgPiBob3JzZTsKK+mnqiA+IGNyb3dkOwor6aeeID4gY2FtZWw7Civpp5EgPiB0aXJlZDsKK+mmoSA+IHNjZW50Owor6aWiID4gYnJlYWQ7CivppZggPiBncnVlbDsKK+mljSA+IG1lYWxzOwor6aWDID4gYnJlYWQ7CivppLsgPiBjYWtlczsKK+mkuSA+IHN1Z2FyOwor6aSzID4gc3VnYXI7CivppKogPiBmZWFzdDsKK+mkpiA+IGNhbmR5Owor6aScID4gY2FrZXM7Civpo7YgPiBvZG91cjsKK+mjrSA+IG9yZGVyOwor6aORID4gc3Rvcm07Civpor0gPiBiYWxteTsKK+mhsSA+IHNrdWxsOwor6aGwID4gZnJvd247CivpoaMgPiBmcm93bjsKK+mhlyA+IHF1aWV0Owor6aC+ID4gYmVhcmQ7CivpoKAgPiBxdWlldDsKK+mgnCA+IG1vdXRoOwor6aCAID4gbXVzaWM7Civpn7ogPiBtdXNpYzsKK+mfpCA+IHNvY2tzOwor6Z+ZID4gcmlnaHQ7Civpn5MgPiBmZW5jZTsKK+mfiCA+IHNvY2tzOwor6Z+GID4gc3dpbmc7Civpn4EgPiByZWluczsKK+meviA+IGJvb3RzOwor6Z61ID4gc2hvZXM7CivpnqggPiB0cmliZTsKK+melyA+IHJlaW5zOwor6Z6DID4gYm9hcmQ7CivpnaYgPiB0aW1pZDsKK+mdgSA+IHRoaWNrOwor6ZyxID4gY2xvdWQ7CivpnJkgPiBzbGVldDsKK+mbnSA+IG1hcnNoOwor6ZubID4gY2hpY2s7CivpmoIgPiBzaGFkeTsKK+mZvCA+IGlzbGV0Owor6Zi5ID4gYVwtcGVuOwor6ZeaID4gZmxhc2g7Civpl5QgPiBjbG9zZTsKK+mXiyA+IGNsb3NlOwor6ZeKID4gYnJvYWQ7Civpl4MgPiBhbG9uZTsKK+mWvCA+IGJsb2NrOwor6Za0ID4gcXVpZXQ7CivplqYgPiBjcm93ZDsKK+mWlCA+IG1vdXJuOwor6ZWfID4gbGF0aGU7CivplLwgPiBjYXJ2ZTsKK+mUkyA+IGNhcnZlOwor6ZOYID4gc3dvcmQ7CivpkoMgPiBtZXRhbDsKK+mRvSA+IGRyaWxsOwor6ZGxID4gc3BhZGU7CivpkZogPiBkcmlsbDsKK+mRkyA+IHNwZWFyOwor6Y+5ID4gY29pbnM7Civpj7UgPiBzcGFkZTsKK+mPpiA+IHNwZWFyOwor6Y+kID4gY2FydmU7Civpj58gPiBzcGFkZTsKK+mPjCA+IHN3b3JkOwor6Y+IID4gY2hhaW47Civpj4cgPiBsYXRoZTsKK+mOrCA+IHN0b3ZlOwor6Y6nID4gYXJtb3I7CivpjpcgPiByaWZsZTsKK+mOjSA+IGNoYWluOwor6Y25ID4gc3BhZGU7Civpja0gPiBhcnJvdzsKK+mNpCA+IHNwYWRlOwor6Y2PID4gc3BhZGU7CivpjY0gPiBwbGF0ZTsKK+mNiSA+IHNwb29uOwor6YyBID4gaW5nb3Q7Civpi7kgPiBzaGFycDsKK+mLuCA+IGFcLXNhdzsKK+mLsiA+IHJpdmV0Owor6YufID4gY2FydmU7Civpi5ggPiBzd29yZDsKK+mKsyA+IHNoYXJwOwor6YqbID4gc2hhcnA7CivpipMgPiB3ZWlnaDsKK+mJviA+IHNwZWFyOwor6Ym8ID4gcGxhdGU7CivpibggPiBoaW5nZTsKK+mJmiA+IHJpdmV0Owor6YmFID4gc3RlZWw7CivpiJIgPiBzcGVhcjsKK+mIkSA+IHBsYXRlOwor6YiHID4gYW5cLWF4Owor6Ye8ID4gc3dvcmQ7Civph5YgPiBrbmlmZTsKK+mHhSA+IHRoaWNrOwor6YeCID4gZHJhaW47CivphLsgPiBzcG9pbDsKK+mDpCA+IGNyYWNrOwor6YGrID4gc3BlZWQ7CivpgZ0gPiBtaXhlZDsKK+mAtCA+IGFyZ3VlOwor6L6uID4gYnJhaWQ7CivovqQgPiB3b3JkczsKK+i+oCA+IGNyaW1lOwor6LyTID4gbW91cm47CivovI8gPiBsaWdodDsKK+i8iCA+IHNoYWZ0Owor6LuxID4gd2hlZWw7Civou5wgPiByZWluczsKK+i7jCA+IHRyYWNrOwor6LqhID4gdHJlYWQ7CivouIYgPiBzcXVhdDsKK+i2oSA+IHBsYWNlOwor6LScID4gYm9vdHk7CivotJMgPiBib290eTsKK+i0iyA+IGZhbHNlOwor6LOVID4gYnJpYmU7Civos5QgPiBndWVzdDsKK+izkyA+IGd1ZXN0Owor6LONID4gYm9vdHk7Civos4QgPiBicmliZTsKK+izgiA+IGJyaWJlOwor6LK/ID4gdHJhZGU7CivosqQgPiBzdGVwczsKK+ixlCA+IHBsdW1wOwor6K6ZID4gY2hlZXI7CivorpMgPiBhbGxvdzsKK+iukCA+IGVuZW15Owor6K6OID4gZW5lbXk7CivorZkgPiB0b3dlcjsKK+itjCA+IGZhbHNlOwor6K2BID4gbm9pc2U7CivorKwgPiBlcnJvcjsKK+iskSA+IHNoYW1lOwor6KyPID4gc2NvbGQ7Civoq6IgPiBqb2tlczsKK+iroCA+IG5vaXN5Owor6KuQID4gZmF1bHQ7CivoqqogPiBzcGVhazsKK+iqqCA+IHRlYWNoOwor6KqGID4gY2hlYXQ7Civoqb8gPiBlcnJvcjsKK+ipvCA+IHRlYXNlOwor6KmsID4gYWJ1c2U7CivoqaMgPiByZWFjaDsKK+ipoSA+IGJvYXN0Owor6KmbID4gY3Vyc2U7CivoqZYgPiBhcmd1ZTsKK+ipkSA+IGNoZWF0Owor6KmQID4gY2hlYXQ7CivoqL0gPiBibGFtZTsKK+iopyA+IGZhdWx0Owor6KiVID4gYWJ1c2U7CivoqJMgPiB0ZWFjaDsKK+iojyA+IGJvYXN0Owor6KeUID4gY2F0dHk7CivopqwgPiBjb3ZldDsKK+imjyA+IHJ1bGVzOwor6KW+ID4gY292ZXI7CivopaogPiBzb2NrczsKK+iloiA+IHN0cmlwOwor6KWNID4gbWl4ZWQ7CivopLsgPiBkaXJ0eTsKK+ikuiA+IGRpcnR5Owor6KSVID4gc2hpcnQ7CivoorUgPiBsYXBlbDsKK+ihlSA+IGFsbGV5Owor6KGKID4gc21lYXI7CivooYEgPiBibG9vZDsKK+igmyA+IGZsaWVzOwor6KCXID4gXChhcGVcKTsKK+ighSA+IGZsaWVzOwor6J+vID4gd29ybXM7Civon6IgPiBjYXVsazsKK+idqCA+IGxvdXNlOwor6J2YID4gZ2Vja287CivonZMgPiBzbmFpbDsKK+iatCA+IGxhcnZhOwor6JmjID4gY3J1ZWw7CivomZsgPiBmYWxzZTsKK+iYlyA+IHN0dW1wOwor6JiTID4gdGh5bWU7CivomIsgPiBhcHBsZTsKK+iXviA+IHNoYWRlOwor6JeqID4gbWFyc2g7CivolpYgPiBlbXB0eTsKK+iWiSA+IGRpcnR5Owor6JKeID4gcmVhY2g7CivokaIgPiBjb3ZlcjsKK+iRjSA+IHBsYW50Owor6JC5ID4gZ3Jhc3M7Civojr8gPiB0aG9ybjsKK+iNsyA+IGJlYW5zOwor6I2uID4gZ3Jhc3M7CivojYQgPiByb290czsKK+iMhyA+IGdyYXNzOwor6Iu+ID4gc21lbGw7Civoi7YgPiB3ZWFyeTsKK+iIlyA+IHN0b3JlOwor6IiWID4gc3RvcmU7CivoiIsgPiBzcGxpdDsKK+iIiSA+IHJhaXNlOwor6Ie9ID4gYVwtcGl0Owor6IeyID4ganVtcHk7Civoh6IgPiBkaXJ0eTsKK+iHmyA+IGJyb3RoOwor6IeZID4gcm91Z2U7Civoh5AgPiBicm90aDsKK+iGtiA+IGxpdmVyOwor6IaHID4gc3dlbGw7CivohasgPiBzd2VsbDsKK+iFoSA+IGxpbmVzOwor6IS5ID4gc3dlbGw7CivohLYgPiBsaW5lczsKK+iEoiA+IGZsZXNoOwor6ISDID4gZ2xhbmQ7CivogrUgPiB0YWJsZTsKK+iClSA+IHRvdWdoOwor6ICeID4gZmxhaWw7Civnv70gPiB3aGlycjsKK+e/hCA+IHdpbmRzOwor576xID4gc2hlZXA7CivnvqMgPiBncm91cDsKK+e9tyA+IGNlYXNlOwor572JID4gYVwtcG90Owor57q7ID4gcmFtaWU7Civnua8gPiBub29zZTsKK+e5riA+IHJlaW5zOwor57igID4gY3JlcGU7CivnuJAgPiBjcmVwZTsKK+e4jyA+IHB1cnNlOwor57eeID4gc2F0aW47CivntrkgPiBza2VpbjsKK+e2oCA+IGdyZWVuOwor57aMID4gY2xvdGg7CivntY4gPiBiYXN0ZTsKK+e1gSA+IHJvdWdoOwor57S/ID4gY2hlYXQ7CivntLUgPiByYW1pZTsKK+e0nSA+IHdlYXZlOwor57SXID4gZ2F1emU7CivntJEgPiBmcmVzaDsKK+ezlCA+IGp1aWNlOwor57OTID4gZ3JhaW47Civnso4gPiBtZXRyZTsKK+expCA+IHRhbGx5Owor57C7ID4gZW1wdHk7CivnsJsgPiBzaWV2ZTsKK+ewkiA+IHVzdXJwOwor57CBID4gc2lldmU7Civnr6kgPiBzaWV2ZTsKK+evjyA+IGlubGF5Owor566bID4gYnVnbGU7CivnrbMgPiBmZWFzdDsKK+etsCA+IGNhYmxlOwor562mID4gYVwta2V5Owor56u+ID4gZmx1dGU7Civnq5QgPiBsaXRyZTsKK+eqvSA+IGVtcHR5Owor56mnID4gc2hlYWY7CivnqaIgPiBkaXJ0eTsKK+epoCA+IHRoaWNrOwor56mFID4gY2hhZmY7CivnqL4gPiBkcmFmdDsKK+eohSA+IHRheGVzOwor56eHID4gc2tpbGw7CivnpqAgPiBoYXBweTsKK+emjiA+IGx1Y2t5Owor56WZID4gZGVtb247CivnpLYgPiBhXC1qdWc7CivnpLEgPiBncmluZDsKK+ejtSA+IGJyb29rOwor56OvID4gamV0dHk7Civno6EgPiBjbGlmZjsKK+ejmyA+IGNsaWZmOwor56OIID4gcm9ja3k7CivnorsgPiBzb2xpZDsKK+eiryA+IGFnYXRlOwor56KpID4gZ3JlYXQ7CivnooEgPiBjaGVzczsKK+ehjyA+IGdyaW5kOwor56CzID4gcm9ja3k7CivnoKAgPiByb2NreTsKK+efkyA+IGZhaW50Owor55+IID4gZGVuc2U7Civnno8gPiByb3VuZDsKK+eejSA+IGJsaW5kOwor556HID4gY2xvc2U7CivnnZggPiByb3VuZDsKK+ecuSA+IHB1cGlsOwor55yFID4gaW5sYXk7Civnm7sgPiBnbGFyZTsKK+ebrSA+IGNydWVsOwor55q9ID4gc2N1cmY7CivnmrkgPiBjcmFjazsKK+eauCA+IGNyYWNrOwor55qtID4gd2hpdGU7CivnmqsgPiB3aGl0ZTsKK+eanCA+IHdoaXRlOwor55qBID4gYmxhY2s7CivnmbIgPiBjcmF6eTsKK+eZoSA+IHNpbGx5Owor55ihID4gdHVtb3I7CivnmIsgPiBjcmF6eTsKK+eUniA+IHRhc3RlOwor55SbID4gc3dlZXQ7CivnlJYgPiBhXC1wb3Q7CivnlI4gPiBicmljazsKK+eTliA+IGlubGF5Owor55OIID4gZ2xhc3M7CivnkaogPiBhZ2F0ZTsKK+eRlCA+IFwoamFkZTsKK+eRkSA+IGNhcnZlOwor54+WID4gY2FyYXQ7CivnjoggPiBibGFjazsKK+eNnSA+IGRldmlsOwor542OID4gcHJpemU7Civni7UgPiBibGVuZDsKK+eJnCA+IGFuXC1veDsKK+eJlCA+IGdhYmxlOwor54iTID4gZmxhbWU7CivniI0gPiBzaGluZTsKK+eHvyA+IHNoaW5lOwor54e+ID4gc2hpbmU7Civnh6YgPiB2aXZpZDsKK+eHmSA+IHNjYWxkOwor54ePID4gYmxhemU7Civnh4QgPiBmbGFtZTsKK+eHgiA+IHNtb2tlOwor54abID4gYmxhemU7CivnhpIgPiBzaGluZTsKK+eFrCA+IHJvYXN0Owor54WiID4gYWxvbmU7CivnhYkgPiBzbWVsdDsKK+eElCA+IGZsYW1lOwor54OTID4gc3RvdmU7Civng4sgPiBib2FzdDsKK+eCsCA+IHJvYXN0Owor54KnID4gYXNoZXM7CivngaMgPiBhXC1iYXk7CivngaIgPiBtdWRkeTsKK+eBlCA+IHdhdmVzOwor54C6ID4gc291bmQ7CivngLIgPiB3YXZlczsKK+eAjyA+IGNsZWFyOwor54CLID4ganVpY2U7CivngIYgPiBkaXRjaDsKK+eAhSA+IGNsZWFyOwor54CBID4gd2F2ZXM7Civmv6sgPiBmbG9vZDsKK+a+qCA+IHNob3JlOwor5r6XID4gYnJvb2s7CivmvpEgPiBzbGlkZTsKK+a+hiA+IHNwcmF5Owor5r23ID4gZHJhaW47CivmvZ0gPiBhZ3JlZTsKK+a8kSA+IHdhdGVyOwor5ryIID4gc2hvcmU7CivmuakgPiBtdWRkeTsKK+a5oyA+IG1peGVkOwor5ri+ID4gbXVkZHk7Civmt7ggPiBjbGVhcjsKK+a3oiA+IGRpdGNoOwor5reaID4gdGVhcnM7Civmt4ogPiBkcm93bjsKK+a1pSA+IG1vaXN0Owor5rS0ID4gc291bmQ7CivmtJogPiBmbG9vZDsKK+a0jyA+IHRlYXJzOwor5rOaID4gY2xlYXI7CivmsrIgPiBmbG9hdDsKK+axsyA+IGhlbmFuOwor5rGOID4gZmxvYXQ7CivmsLkgPiBkaXRjaDsKK+awpSA+IHhlbm9uOwor5rCcID4gY2xlYXI7CivmrpEgPiBzd29vbjsKK+atviA+IGRyb3duOwor5q2VID4gc3B1cnQ7CivmrZMgPiBoYXBweTsKK+atiCA+IHNvbmdzOwor5qy8ID4gZHJpbms7CivmrLggPiBzaWdoczsKK+asrCA+IGNvdWdoOwor5qyZID4gc2VkYW47CivmrJYgPiBvbGl2ZTsKK+arsSA+IHllYXN0Owor5quIID4gYmVuY2g7CivmqrggPiBsZW1vbjsKK+aqryA+IHRhYmxlOwor5qqoID4gbWFuZ287CivmqpQgPiBzaGVsZjsKK+aotCA+IHN0YWtlOwor5qiVID4gc2hydWI7CivmqI8gPiBzZWRhbjsKK+aogSA+IHN0YWtlOwor5qe8ID4gcnVsZXM7Civmp5MgPiBsZXZlcjsKK+anjSA+IHNwZWFyOwor5qa/ID4gYWxkZXI7Civmpq4gPiBnbG9yeTsKK+alsyA+IHBsdW1zOwor5qWFID4gYnVhcmQ7CivmpYQgPiBibG9jazsKK+akiCA+IGNlZGFyOwor5qOKID4gY2hlc3M7Civmo4EgPiBqb2lzdDsKK+aisiA+IGpvaXN0Owor5qKQID4gZmVuY2U7Civmoa8gPiB0YWJsZTsKK+ahrSA+IGVhdmVzOwor5qGaID4gcHJlc3M7CivmoLUgPiBoZWRnZTsKK+agqyA+IGZlbmNlOwor5qCUID4gY2FydmU7CivmoI0gPiBhXC1sb3Q7Civmn7YgPiBsYWRsZTsKK+adpyA+IG1hbmdvOwor5p2VID4gYWxvbmU7CivmnK4gPiBza2lsbDsKK+acliA+IGNsZWFyOwor5pyFID4gYnJhdmU7Civmm7UgPiB0cmFpbDsKK+abqCA+IHZhZ3VlOwor5paGID4gdGVhY2g7CivmloUgPiB0ZWFjaDsKK+aVuiA+IGV4cGVsOwor5pWUID4gZ2F2ZWw7CivmlY4gPiB0ZWFjaDsKK+aUrCA+IGdyYXNwOwor5pSbID4gaHVycnk7Civmk7sgPiBzaGFrZTsKK+aTsiA+IHRocm93Owor5pOwID4gcGluY2g7Civmk6AgPiBjcm93ZDsKK+aSsyA+IHByZXNzOwor5pGzID4gcmFpc2U7CivmkY8gPiBwb3VuZDsKK+aQpCA+IHNlaXplOwor5pCKID4gcGx1Y2s7CivmkIkgPiBrbm9jazsKK+aPtSA+IGNhcnJ5Owor5o+FID4gZ3JpbmQ7CivmjoQgPiBzd2luZzsKK+aNvyA+IHBlcmNoOwor5o2rID4gc3Rva2U7CivmjIwgPiBmaWdodDsKK+aLiyA+IHRocm93Owor5ouDID4gZ3JvcGU7CivmiaIgPiBjYXBlcjsKK+aIrSA+IHNwZWFyOwor5oijID4gbGFuY2U7CivmiJ4gPiBsYW5jZTsKK+aIlCA+IHNtYWxsOwor5oe9ID4gaGFwcHk7Civmh6UgPiBhbmdyeTsKK+aHoCA+IGFuZ3J5Owor5oeMID4gZW5qb3k7Civmhq0gPiBjbGVhcjsKK+aGmiA+IGRyZWFkOwor5oaKID4gdGlyZWQ7CivmhawgPiBicmF2ZTsKK+aFjSA+IGFuZ3J5Owor5oS+ID4gYW5nZXI7CivmhLcgPiBlbmpveTsKK+aEniA+IHRpbWlkOwor5oSDID4gcmVsYXg7Civmgr4gPiBuYWl2ZTsKK+aCsCA+IGVuam95Owor5oKGID4gaGFwcHk7CivmgbUgPiBmYXZvcjsKK+aBkyA+IHZleGVkOwor5b2RID4gc25vdXQ7CivlvZAgPiBzbm91dDsKK+W9giA+IGlzc3VlOwor5byJID4gbGFyZ2U7Civlu5UgPiBzaGFkZTsKK+W5rSA+IGNvdmVyOwor5bmqID4gY292ZXI7CivluaYgPiBjb3ZlcjsKK+W5oCA+IGNvdmVyOwor5biSID4gYVwtYmFnOwor5biLID4gcGFwZXI7Civlt60gPiBzdHVkeTsKK+W3myA+IHJpdmVyOwor5beWID4gY2xpZmY7Civlt4wgPiBjbGlmZjsKK+W3iyA+IGdyYW5kOwor5beJID4gc3RlZXA7Civlt4MgPiBsb2Z0eTsKK+W2sCA+IGdvcmdlOwor5bahID4gdGFibGU7Civltp4gPiByaWRnZTsKK+W2lCA+IGxvZnR5Owor5baHID4gc3RlZXA7CivltZwgPiByb3VnaDsKK+W1kiA+IGNsaWZmOwor5bWCID4gbG9mdHk7CivltLEgPiBsb2Z0eTsKK+W0miA+IGhpbGx5Owor5bSVID4gY2xpZmY7Civls70gPiBnb3JnZTsKK+WzqSA+IGxvZnR5Owor5bG2ID4gbG9mdHk7CivlsbQgPiBsb2Z0eTsKK+WxqiA+IHBlbmlzOwor5bGMID4gcGVuaXM7CivlsLAgPiBzd2VsbDsKK+WwmSA+IHN0aWxsOwor5a+sID4gYnJvYWQ7Civlr5sgPiBicm9hZDsKK+WvgSA+IHF1aWNrOwor5a67ID4gZGVuc2U7Civlro0gPiBmbGVzaDsKK+WtvyA+IHR3aW5zOwor5a2WID4gdHdpbnM7Civlq5ogPiBzY29ybjsKK+WnqiA+IG5pZWNlOwor5aWwID4gYW5nZXI7CivlpawgPiBwcml6ZTsKK+WlqCA+IHByaXplOwor5aWdID4gbGFyZ2U7Civlo6AgPiBtb3VuZDsKK+WjnyA+IGdyYXZlOwor5aOGID4gc3RpZmY7CivlorogPiB3YWxsczsKK+WisyA+IGdyYXZlOwor5aKdID4gc3Rvbnk7Civloo0gPiBwYWludDsKK+WiiCA+IGNsaWZmOwor5aG8ID4gYnJpY2s7CivloZwgPiBkdXN0eTsKK+WhmSA+IHRydWx5Owor5aGSID4gcm9vc3Q7CivloYsgPiBncmF2ZTsKK+WhiCA+IHBhaW50Owor5aC/ID4gc2FsdHk7CivloL0gPiBtb3VuZDsKK+WgliA+IHNtYWxsOwor5Z+zID4gYVwtcGl0Owor5Z+MID4gd2FzdGU7Civln4YgPiBzdG9ueTsKK+WemiA+IG1vdW5kOwor5Z2/ID4gbW91bmQ7CivlnbAgPiB3aWxkczsKK+WcjCA+IGZlbmNlOwor5ZuRID4gb3JkZXI7Civlm4UgPiBzbWlsZTsKK+WariA+IGd1aWRlOwor5ZqtID4gbW91bmQ7CivlmqwgPiBmcm93bjsKK+WaoSA+IHJvdWdoOwor5ZqQID4gdGFzdGU7CivlmocgPiBzY2FyZTsKK+WZuiA+IHN0b3J5Owor5Zm0ID4gc3B1cnQ7Civlma0gPiBzaG91dDsKK+WZpiA+IGJlbGNoOwor5ZiiID4gdGhpbmc7CivlmJIgPiBzaGFycDsKK+WXmyA+IHBvdWNoOwor5ZeZID4gYm9hc3Q7Civll5AgPiBhbGFzXCE7CivllrQgPiBoZWxsbzsKK+WVsiA+IGFcLWZldzsKK+WVoiA+IG91bmNlOwor5ZWNID4gY3JlYWs7CivllKEgPiBvdW5jZTsKK+WUjiA+IHNvdW5kOwor5ZO2ID4gYmxlYXQ7Civlk5UgPiBiZWxjaDsKK+WSoiA+IHNvdW5kOwor5ZKNID4gbGF1Z2g7CivlkLAgPiBjbGFuZzsKK+WQoyA+IHZvbWl0Owor5Y+aID4gZmFsc2U7CivljrogPiB0b1wtZ287CivljrkgPiBzcGVhcjsKK+WOtCA+IHNoZWxsOwor5Y6qID4gYVwtaHV0Owor5Y6WID4gYnVsa3k7CivljbsgPiBzdGlsbDsKK+WNrCA+IGxvZnR5Owor5YycID4gYmFzaW47Civli7sgPiBlcXVhbDsKK+WKlCA+IHN3b3JkOwor5YqSID4gc3dvcmQ7Civlio4gPiBzd29yZDsKK+WJsSA+IHN3b3JkOwor5YmgID4gYnJhbmQ7CivliIIgPiBrbmlmZTsKK+WHvCA+IGRpdGNoOwor5YeIID4gY2xlYW47CivlhqkgPiB3cml0ZTsKK+WGpyA+IGFcLWJ1ZDsKK+WGmiA+IGNvdmVyOwor5YaWID4gY292ZXI7CivlhoEgPiBzbWlsZTsKK+WEvCA+IGdyYXZlOwor5YSOID4gY2Fycnk7CivlhIwgPiBsdWNreTsKK+WDvyA+IHNtYWxsOwor5YOEID4gbGlnaHQ7CivlgqsgPiB0aXJlZDsKK+WBkCA+IGZhbHNlOwor5YGBID4gc3RhdGU7CivlgJYgPiBsdWNreTsKK+S/tiA+IHN0YXJ0Owor5L6QID4gcXVpZXQ7CivkvoEgPiBjcm93ZDsKK+S9uiA+IGZhaXJ5Owor5L2MID4gc21hbGw7CivkvKkgPiB0cnVzdDsKK+S7qyA+IHRyaWJlOwor5Lq+ID4gZGVhdGg7CivkurEgPiBuaWdodDsKK+S5lSA+IHRpZ2VyOwor5Li1ID4gdGhpY2s7CivkuK8gPiBkZW5zZTsKK+S4riA+IGNhdGNoOwor5LiMID4gdGFibGU7CivkuIUgPiB1bmRlcjsKK+S4hCA+IGFib3ZlOwor5LaTID4gcmFtaWU7Civkto8gPiB0ZWFyczsKK+S2iyA+IHNvdW5kOwor5LaHID4gYVwtcmF0Owor5LaGID4gYVwtcmF0Owor5LWtID4gYmxhY2s7CivktaUgPiBibGFjazsKK+S1nyA+IGJsYWNrOwor5LS6ID4gY2FrZXM7CivktLkgPiBjYWtlczsKK+S0tSA+IGNha2VzOwor5LSyID4gZmxvdXI7CivktJ4gPiBzYWx0eTsKK+SzvSA+IGNyYW5lOwor5LOxID4gZHVja3M7Civks5ggPiBnb29zZTsKK+SzlyA+IGdvb3NlOwor5LKhID4gbG9hY2g7CivkspEgPiBzcGF3bjsKK+SxnCA+IHNoYXJrOwor5LGWID4gc2hhcms7CivksYsgPiBzcGF3bjsKK+SwoiA+IGdob3N0Owor5LCXID4gYVwtbG90Owor5LCSID4gdmFndWU7CivksJEgPiBiZWFyZDsKK+SwhSA+IGJlYXJkOwor5K++ID4gaGFpcnk7Civkr7ggPiBhXC13aWc7Civkr40gPiBib25lczsKK+StvSA+IGdyb3VwOwor5K2mID4gY2FrZXM7CivkrZ8gPiBjYWtlczsKK+StkCA+IGNha2VzOwor5K2OID4gY2FrZXM7CivkrYUgPiBjYWtlczsKK+SsvyA+IHNtYWxsOwor5Ky1ID4gc3lydXA7CivkrK4gPiBzeXJ1cDsKK+SrtSA+IHR3aW5zOwor5KuWID4gdGltaWQ7Civkq44gPiBzaG9ydDsKK+SquyA+IGFcLWNhcDsKK+SqsSA+IGNoZWVrOwor5KqvID4gc291bmQ7CivkqpsgPiBncm91cDsKK+SqmCA+IHJpZ2h0Owor5KqXID4gc2hvZXM7CivkqoIgPiByZWluczsKK+SpuiA+IGJvb3RzOwor5KmWID4gc2hvZXM7CivkqZUgPiBjbG9nczsKK+SpkyA+IGJvb3RzOwor5KmFID4gYnJvYWQ7CivkqLkgPiBzd2lmdDsKK+SotyA+IHNsZWV0Owor5KiYID4gc2xlZXQ7CivkqIsgPiBjcnVlbDsKK+SohCA+IHF1YWlsOwor5KiBID4gZHVja3M7Civkp70gPiBzbWFsbDsKK+SnqiA+IHNpc3N5Owor5KeOID4gYVwtcGl0Owor5KeGID4gYVwtcGl0Owor5Ka+ID4gbG9mdHk7CivkpqIgPiBicm9hZDsKK+SmniA+IGV4dHJhOwor5KaXID4gcXVpZXQ7CivkppQgPiBhXC1wZWc7CivkpbUgPiBsaW5lczsKK+SlmCA+IHdyb25nOwor5KWTID4gYVwtaG9lOwor5KWBID4gYXJtb3I7CivkpLogPiBhblwtYXg7CivkpLQgPiBhcm1vcjsKK+SkqiA+IHNob3J0Owor5KSiID4gbWV0YWw7CivkpJwgPiBibHVudDsKK+SkmiA+IHBsdW1zOwor5KSZID4gZHJlZ3M7Civko7EgPiBkcnVuazsKK+SjpyA+IGJsYWNrOwor5KKUID4gbWl4ZWQ7CivkopEgPiBhbmdyeTsKK+ShliA+IHN0aWxsOwor5KCiID4gd2Vhcnk7CivkoKAgPiB0b1wtZ287Civkn6AgPiBzd2lmdDsKK+SfnCA+IGJyZWFrOwor5J6IID4gbW9uZXk7Civkna0gPiB3YWdlczsKK+SdqyA+IG1vbmV5Owor5J2SID4gYVwtc293Owor5J2PID4gYVwtc293Owor5J2OID4gYVwtcGlnOwor5J2KID4gYVwtc293Owor5J2FID4gYVwtcGlnOwor5J2DID4gYmVhbnM7CivknLQgPiBicmF2ZTsKK+ScjiA+IHNvdW5kOwor5JyNID4gc3dlZXQ7CivknIwgPiBjaGFvczsKK+SciiA+IG5vaXNlOwor5JutID4gYW5ncnk7Civkm6EgPiB3b3JkczsKK+SatCA+IGFuZ2VyOwor5JqfID4gaG9ybnM7CivkmokgPiBvXC1zZWU7CivkmIogPiBmbGllczsKK+SXlSA+IGJlbmRzOwor5JaOID4gdGlnZXI7CivklosgPiBjcnVlbDsKK+SWiCA+IGNydWVsOwor5JK4ID4gZ3Jhc3M7CivkkpEgPiBncmFzczsKK+SRmiA+IHN3ZWV0Owor5JGVID4gYVwtcmF0Owor5JGBID4gZmF0dHk7CivkkKwgPiBjcmlzcDsKK+SQnSA+IHRoaWNrOwor5JCXID4gYVwtcGlnOwor5JCHID4gY2xlYXI7Civkj7UgPiBwbHVtcDsKK+SPsyA+IG9sZWluOwor5I+vID4gbW9sZXM7Civkj6cgPiBmYXR0eTsKK+SPmiA+IHNtYWxsOwor5I6QID4gaGFpcnk7CivkjocgPiBxdWljazsKK+SOhCA+IGhhaXJ5Owor5I2lID4gc21va3k7CivkjYwgPiBhXC1qYXI7CivkjLsgPiB3aW5nczsKK+SMkSA+IHRpZ2h0Owor5IyQID4gcm9wZXM7Civki7UgPiBxdWljazsKK+SLpSA+IGxpbmVzOwor5IuaID4gd2luZ3M7Civki5kgPiByZWluczsKK+SKviA+IHJvcGVzOwor5Iq7ID4gc2lsa3k7CivkirkgPiBzbWFsbDsKK+SKgCA+IHBhc3RlOwor5Im/ID4gcGFzdGU7CivkiZ4gPiBhXC1ib3g7CivkiIkgPiBhXC1mYW47Civkh7IgPiB0b25nczsKK+SHpCA+IHNoYXJwOwor5IeCID4gZmF1bHQ7CivkhrkgPiBlbXB0eTsKK+SGnCA+IGVtcHR5Owor5IaBID4gc3lydXA7CivkhbUgPiBjaGFmZjsKK+SFmSA+IGdyYXNzOwor5IWYID4gd2hlYXQ7CivkhYYgPiBkZW5zZTsKK+SEviA+IHRoaWNrOwor5ISlID4gYVwtZ29kOwor5ISiID4gcGlvdXM7Civkg6wgPiByb2NreTsKK+SDmyA+IGNoYWluOwor5IOZID4gcm9ja3M7Civkg5cgPiByb2NrczsKK+SCvSA+IHJvY2tzOwor5IK8ID4gcm9ja3M7CivkgrogPiByb2NrczsKK+SCsCA+IHJvY2tzOwor5IKuID4gc3RvbmU7CivkgqYgPiB0aXJlZDsKK+SCnyA+IHJvY2tzOwor5IKWID4gcm9ja3M7CivkgpUgPiBzaG9ydDsKK+SClCA+IHNob3J0Owor5IKRID4gc2hvcnQ7Civkgo8gPiBzaG9ydDsKK+SBqyA+IG11ZGR5Owor5IGfID4gd3Jvbmc7CivkgZcgPiBsaWdodDsKK+SBjSA+IGJsaW5kOwor5IC8ID4gYW5ncnk7CivkgIcgPiBhXC1wb3Q7Civjv7cgPiByb3VnaDsKK+O/riA+IGdyZWVuOwor47+pID4gbGlnaHQ7Civjv6UgPiBzaGluZTsKK+O/pCA+IHdoaXRlOwor47+dID4gc3dlZXQ7Civjv5UgPiB1bGNlcjsKK+O+sCA+IGNob2tlOwor476nID4gZmF2dXM7CivjvqEgPiB1bGNlcjsKK+O+miA+IGl0Y2h5Owor476QID4gdWxjZXI7Civjvb8gPiB1bGNlcjsKK+O9oSA+IGZpZWxkOwor47yPID4gYVwtYmFkOwor47utID4gY2xlYXI7CivjuoMgPiBhXC1kb2c7CivjubsgPiBwdXBweTsKK+O5tyA+IHN3aW5lOwor47mLID4gYVwtY293Owor47mAID4gYVwtY293Owor47i6ID4gYVwtY293Owor47iFID4gYXNoZXM7CivjuIMgPiBhXC1kb3Q7Civjt78gPiBmbGFtZTsKK+O3pSA+IHN0ZWFtOwor47eUID4gZmxhbWU7Civjt5EgPiBzbW9rZTsKK+O3hyA+IGdyZWF0Owor47azID4gYXNoZXM7CivjtrAgPiBmbGFtZTsKK+O2piA+IGFzaGVzOwor47aWID4gcmFwaWQ7CivjtbkgPiB3YXZlczsKK+O0gyA+IHRlYXJzOwor47O5ID4gZmxvb2Q7Civjs7AgPiBkaXRjaDsKK+OzriA+IHVyaW5lOwor47ObID4gZGlydHk7CivjsqcgPiBoYWlyeTsKK+OyhiA+IG5vaXNlOwor47C8ID4gZ3JlZWQ7CivjsKogPiBzb3VuZDsKK+OwpSA+IGxhdWdoOwor47CiID4gY291Z2g7Civjr7cgPiBkYXRlczsKK+OupSA+IHNhaWxzOwor466iID4gZnJ1aXQ7CivjrpUgPiBmcnVpdDsKK+OstiA+IGZsZXNoOwor46yzID4gbGlnaHQ7CivjrKYgPiBicmF2ZTsKK+OsmiA+IGxpZ2h0Owor46yVID4gbGlnaHQ7CivjrI8gPiBsaWdodDsKK+OsiiA+IGxpZ2h0Owor46u8ID4gY2xlYXI7Civjq7kgPiBsaWdodDsKK+OrtiA+IGxpZ2h0Owor46uwID4gbGlnaHQ7Civjq6sgPiBjbGVhcjsKK+OrnCA+IGxpZ2h0Owor46ubID4gbGlnaHQ7Civjq5cgPiB0aGljazsKK+OrlSA+IGxpZ2h0Owor46mhID4gc2hha2U7CivvqK0gPiBjcmFuZTsKK+OomyA+IHN3aWZ0Owor46iXID4gYWxlcnQ7CivvqI0gPiB2b21pdDsKK++oiyA+IGJyb2FkOwor76iDID4gc3VnYXI7CivjqIMgPiBhXC1yb3c7Civvp7sgPiByb2FzdDsKK++nuSA+IGdyYWluOwor76e3ID4gc3RhbmQ7Civvp6wgPiBkcm93bjsKK++nqiA+IGxlYXZlOwor76edID4gZ2FpbnM7Civjp5sgPiB0aGljazsKK++nlyA+IHdoZWVsOwor76eQID4gY2xhc3M7Civjp40gPiBhbGlrZTsKK++niyA+IHNsaWRlOwor76a/ID4gaGFwcHk7Civvpr0gPiB1cmluZTsKK+OmtyA+IGJyYXZlOwor46auID4gbW9uZXk7CivvpqEgPiBzcGVhazsKK++moCA+IHNwbGl0Owor46ahID4gaGFwcHk7Civvpp8gPiBmaWVyeTsKK++mmSA+IGxvdHVzOwor46aYID4gc3dpZnQ7CivvppMgPiBzbWVsdDsKK+OmkSA+IGFuZ2VyOwor76aKID4gcG93ZXI7CivvpoEgPiB3b21hbjsKK+OlvyA+IHByb3VkOwor46W3ID4gcXVpZXQ7CivjpbIgPiBhbmdlcjsKK++lryA+IHNwZWFrOwor76WjID4gbm9ydGg7CivvpaAgPiBhbmdlcjsKK++lnCA+IGhhcHB5Owor46WTID4gaGFwcHk7CivvpY8gPiB0aXJlZDsKK++ljSA+IHRlYXJzOwor46WKID4gYW5ncnk7CivvpYggPiBicmliZTsKK++lgiA+IGdyYXZlOwor46WCID4gcXVpY2s7CivvpL0gPiBncmVlbjsKK++kuyA+IHJvdWdoOwor76S6ID4gaGVyb247CivjpLEgPiBhbmdlcjsKK++kryA+IGxhYm9yOwor76SpID4gY2xlYXI7CivvpKIgPiBmbG9vZDsKK+OkoyA+IG5vYmxlOwor46ScID4gY3Jhenk7CivvpJkgPiBjcmVhbTsKK+OkmSA+IGdyYWNlOwor76SWID4gYnJhbmQ7CivvpJQgPiBoYXBweTsKK+OjsiA+IHNtYWxsOwor46OfID4gdG9cLWdvOwor46OPID4gc3RpbGw7Civjo4kgPiBsYWJvcjsKK+OimyA+IHNtYWxsOwor46KZID4gYVwtaHV0Owor46G2ID4gZHdlbGw7CivjobQgPiBzb3VuZDsKK+OhlSA+IHNoYXJwOwor46GQID4gZmxhZ3M7CivjoYwgPiBhXC1oYXQ7CivjoYcgPiBjb2xhcjsKK+OhhCA+IGNvbGFyOwor46CqID4gZ3JlYXQ7CivjoJUgPiBsb2Z0eTsKK+OgjSA+IGxvZnR5Owor45+1ID4gcmlkZ2U7Civjn64gPiBsb2Z0eTsKK+OfoCA+IHJpZGdlOwor45+FID4gbG9mdHk7Civjn4EgPiBzaG9yZTsKK+OeviA+IGFcLW51bjsKK+OemSA+IHVyaW5lOwor456VID4gY2hpcHM7CivjnpIgPiBsdXN0eTsKK+OejyA+IHNtYWxsOwor456DID4gdGlyZWQ7Civjnb0gPiBzaG9ydDsKK+OduiA+IHNtYWxsOwor452kID4gbmlnaHQ7CivjnaMgPiBzdGlsbDsKK+OdnCA+IG5pZ2h0Owor452WID4gcmlnaHQ7CivjnZUgPiBwZWFjZTsKK+OdjyA+IGFsb25lOwor452HID4gcXVhaWw7CivjnL0gPiBjaGlsZDsKK+OcpyA+IHBsdW1wOwor45ycID4gcHJvdWQ7Civjm6ggPiBjaGFvczsKK+ObmiA+IGVxdWFsOwor45uDID4gY2xlYW47Civjm4EgPiBxdWljazsKK+OariA+IGhhcHB5Owor45qVID4gZ3JlYXQ7CivjmoAgPiBsb2Z0eTsKK+OZryA+IHNraWxsOwor45mlID4gbXVkZHk7CivjmZMgPiBlYXJ0aDsKK+OZhCA+IGJlbG93Owor45iLID4gc291bmQ7Civjl4UgPiBhbmdyeTsKK+OWpCA+IHdyYXRoOwor45aUID4gc2lsbHk7Civjlo8gPiBhbmdyeTsKK+OWgCA+IHNvdW5kOwor45WzID4gbm9pc3k7CivjlZYgPiBwbGFpbjsKK+OVjiA+IGNhdmVzOwor45WBID4gc3RpbGw7CivjlLsgPiBncmVhdDsKK+OTuyA+IHRvdWdoOwor45OdID4gYVwtbGF3Owor45OcID4geW91bmc7Civjk5sgPiBtZXJpdDsKK+OTmSA+IGNydWVsOwor45OXID4gY2xlYW47Civjk4EgPiBhXC1uZXQ7CivjkqkgPiBuYWtlZDsKK+OSjCA+IGFsb25nOwor45G2ID4gYW5nZXI7CivjkakgPiBzbWFydDsKK+ORqCA+IGdyZWF0Owor45GmID4gYW5nZXI7CivjkZcgPiBhXC1nb2Q7CivjkYsgPiBzbWFsbDsKK+ORgSA+IHNob3J0Owor45CxID4gYnVzaHk7CivjkKsgPiBjcnVlbDsKK+aciSA+IGhhdmU7Civnn6UgPiBrbm93Owor6L+ZID4gdGhpczsKK+efnCA+IHBpdHk7Civlv5kgPiBidXN5Owor5p2lID4gY29tZTsKK+i/kSA+IG5lYXI7CivpgZMgPiBwYXRoOwor5LmfID4gYWxzbzsKK+aXtiA+IHRpbWU7CivlubQgPiB5ZWFyOwor5567ID4gbG9vazsKK+i+uiA+IGVkZ2U7CivlsLEgPiBqdXN0Owor6YKjID4gdGhhdDsKK+eUnyA+IGxpZmU7Civoh6ogPiBzZWxmOwor556sID4gd2luazsKK+i/hyA+IHBhc3M7CivlvqogPiBvYmV5Owor5b6eID4gZnJvbTsKK+W+kyA+IGZyb207CivlpJogPiBtdWNoOwor5aW9ID4gZ29vZDsKK+W9vCA+IHRoYXQ7CivotbcgPiByaXNlOwor5Y+qID4gb25seTsKK+S9nCA+IG1ha2U7CivlvZMgPiBiZWFyOwor5b2iID4gZm9ybTsKK+eciyA+IGxvb2s7CivlvIAgPiBvcGVuOwor5omLID4gaGFuZDsKK+W8sSA+IHdlYWs7CivmnKwgPiByb290Owor5aS0ID4gaGVhZDsKK+ecnyA+IHJlYWw7CivpnaIgPiBmYWNlOwor5YWsID4gZmFpcjsKK+WQjCA+IHNhbWU7CivnnJ4gPiByZWFsOwor5LuOID4gZnJvbTsKK+WKqCA+IG1vdmU7Civplb8gPiBsb25nOwor6LyJID4gbG9hZDsKK+WwhiA+IHdpbGw7CivkvYYgPiBvbmx5Owor6LqrID4gYm9keTsKK+mrmCA+IGhpZ2g7CivmioogPiBob2xkOwor5q2kID4gdGhpczsKK+WuniA+IHJlYWw7Civnm6UgPiB3YXNoOwor5pyIID4gbW9vbjsKK+enjSA+IHNlZWQ7Civou40gPiBhcm15Owor6LuKID4gY2FydDsKK+W3sSA+IHNlbGY7Civpg6ggPiBwYXJ0Owor5ZCNID4gbmFtZTsKK+eariA+IHNraW47CivmnLogPiBkZXNrOwor57uZID4gZ2l2ZTsKK+etiSA+IHJhbms7CivluqcgPiBzZWF0Owor5b6IID4gdmVyeTsKK+acgCA+IG1vc3Q7CivlupcgPiBzaG9wOwor6LqNID4gc2tpcDsKK+i1sCA+IHdhbGs7Civlm5sgPiBmb3VyOwor6ZeoID4gZ2F0ZTsKK+S4nCA+IGVhc3Q7CivluoEgPiBoYWxsOwor6KW/ID4gd2VzdDsKK+W5syA+IGZsYXQ7CivnmbsgPiByaXNlOwor5ZCsID4gaGVhcjsKK+W5uCA+IGx1Y2s7CivoubQgPiBraWNrOwor5YabID4gYXJteTsKK+S6lCA+IGZpdmU7CivluLcgPiB0ZW50Owor5aSqID4gdmVyeTsKK+W4tiA+IGJlbHQ7CivluLMgPiB0ZW50Owor5bivID4gYmVsdDsKK+S9kyA+IGJvZHk7CivluK0gPiBzZWF0Owor5biMID4gcmFyZTsKK+i4iiA+IGxlYXA7CivkuaYgPiBib29rOwor5LmdID4gbmluZTsKK+i3syA+IGp1bXA7Civot68gPiByb2FkOwor5ZG9ID4gbGlmZTsKK+eXqSA+IHRoaW47CivmtLsgPiBsaXZlOwor5bemID4gbGVmdDsKK+W3oyA+IG5lc3Q7CivooaggPiBzaG93Owor6LefID4gaGVlbDsKK+i9piA+IGNhcnQ7Civnl5sgPiBwYWluOwor55eVID4gc2NhcjsKK+eXkiA+IGl0Y2g7CivmhJ8gPiBmZWVsOwor6LazID4gZm9vdDsKK+mHkSA+IGdvbGQ7CivkvZUgPiB3aGF0Owor5bauID4gaGlnaDsKK+abtCA+IG1vcmU7CivnlosgPiByb2xsOwor5YGaID4gd29yazsKK+iuoSA+IHBsYW47CivnlbYgPiBiZWFyOwor546LID4ga2luZzsKK+WQhCA+IGVhY2g7CivnlZkgPiBzdG9wOwor55WPID4gZmVhcjsKK+i+uSA+IGVkZ2U7CivnlLcgPiBtYWxlOwor6aOOID4gd2luZDsKK+W0lyA+IHBvc3Q7Civmr5sgPiBoYWlyOwor5bOwID4gcGVhazsKK+eIsSA+IGxvdmU7Civnk6YgPiB0aWxlOwor6LOjID4gc2VsbDsKK+izgyA+IHJlbnQ7CivosrggPiBsZW5kOwor5bK4ID4gYmFuazsKK+e7kyA+IGtub3Q7CivlsqwgPiBjYXBlOwor5rWBID4gZmxvdzsKK+iypyA+IHBvb3I7CivpnZIgPiBibHVlOwor566hID4gcGlwZTsKK+iyoCA+IGxvYWQ7Civov54gPiBqb2luOwor6ZifID4gdGVhbTsKK+W4piA+IGJlbHQ7CivlsZUgPiBvcGVuOwor5bGRID4gYml0czsKK+mihiA+IG5lY2s7CivlsYggPiBiZW5kOwor5bGFID4gbGl2ZTsKK+WwviA+IHRhaWw7CivljYogPiBoYWxmOwor5YCZID4gd2FpdDsKK+atpSA+IHN0ZXA7Civmt7EgPiBkZWVwOwor5Yy6ID4gYXJlYTsKK+WwiyA+IHNlZWs7CivmsYIgPiBzZWVrOwor55CDID4gYmFsbDsKK+WRiiA+IHRlbGw7Civlr7ggPiBpbmNoOwor5a+mID4gcmVhbDsKK+a7oSA+IGZpbGw7CivmnY4gPiBwbHVtOwor5oGvID4gcmVzdDsKK+WvkiA+IGNvbGQ7Civlr4QgPiBzZW5kOwor6IS4ID4gZmFjZTsKK+WuvyA+IHN0b3A7Civlj5YgPiB0YWtlOwor5a6kID4gcm9vbTsKK+WunyA+IHJlYWw7CivlrpsgPiBzZWVtOwor5a2pID4gYmFieTsKK+W5vyA+IHdpZGU7CivnjokgPiBqYWRlOwor546EID4gZGVlcDsKK+eBqyA+IGZpcmU7CivoroAgPiByZWFkOwor6K29ID4gZmFtZTsKK+WImSA+IHJ1bGU7CivpppYgPiBoZWFkOwor5aSxID4gbG9zZTsKK+aLvyA+IHRha2U7Civmlq8gPiB0aGlzOwor6K+7ID4gcmVhZDsKK+WMhSA+IHdyYXA7CivnjLYgPiBsaWtlOwor6JC9ID4gZmFsbDsKK+a1jiA+IGhlbHA7CivllpwgPiBsaWtlOwor6KyhID4gc2luZzsKK+e8liA+IGtuaXQ7CivosIggPiB0YWxrOwor5ouJID4gcHVsbDsKK+isgCA+IHBsYW47Civni7wgPiB3b2xmOwor5p2AID4ga2lsbDsKK+aguSA+IHJvb3Q7Civlq4wgPiBoYXRlOwor6KuHID4gdGFsazsKK+WFiyA+IGdyYW07CivnirYgPiBmb3JtOwor56S6ID4gc2hvdzsKK+WGsiA+IHNvYXI7Civoqq0gPiByZWFkOwor6KqJID4gZmFtZTsKK+aOqCA+IHB1c2g7Civnp7AgPiBjYWxsOwor6KmmID4gdGVzdDsKK+WPtyA+IG1hcms7CivkupogPiBhc2lhOwor5rivID4gcG9ydDsKK+iIrCA+IHNvcnQ7CivniKogPiBjbGF3Owor5YiaID4gaGFyZDsKK+mZhiA+IGxhbmQ7Civnoa4gPiBzdXJlOwor6KiIID4gcGxhbjsKK+WFtyA+IHRvb2w7CivlqIEgPiBwb21wOwor5biuID4gaGVscDsKK+e6vyA+IGxpbmU7Civop6YgPiBidXR0Owor6KeSID4gaG9ybjsKK+eHkiA+IGJ1cm47CivoioIgPiBrbm90Owor54eDID4gYnVybjsKK+WygSA+IHllYXI7CivlprsgPiB3aWZlOwor6ZyAID4gbmVlZDsKK+mFkiA+IHdpbmU7Civpk4EgPiBpcm9uOwor6KaXID4gcGVlazsKK+mXuyA+IGhlYXI7CivmoIcgPiBtYXJrOwor5Yy7ID4gY3VyZTsKK+ilsiA+IHJhaWQ7Civnha4gPiBjb29rOwor5ZyfID4gc29pbDsKK+i9ryA+IHNvZnQ7CivnhaQgPiBjb2FsOwor5LuFID4gb25seTsKK+WllyA+IGNhc2U7CivmiLcgPiBkb29yOwor54S8ID4gYnVybjsKK+mhuSA+IG5lY2s7Civog4wgPiBiYWNrOwor54SaID4gYnVybjsKK+aalyA+IGRhcms7CivpobsgPiBtdXN0Owor6KO9ID4gbWFrZTsKK+ijuCA+IGJhcmU7Civlo7IgPiBzZWxsOwor5qCRID4gdHJlZTsKK+ayiSA+IHNpbms7CivogYwgPiBkdXR5Owor57uGID4gZmluZTsKK+ijnCA+IG1lbmQ7CivlgZwgPiBzdG9wOwor5YqpID4gaGVscDsKK+WGtyA+IGNvbGQ7Civloq4gPiBmYWxsOwor6Ie0ID4gc2VuZDsKK+acqCA+IHRyZWU7CivooqIgPiByb2JlOwor5peBID4gc2lkZTsKK+eCiiA+IGNvb2s7CivngbwgPiBidXJuOwor5aG1ID4gZHVzdDsKK+WhqSA+IHNhbHQ7CivmrYwgPiBzb25nOwor5aCCID4gaGFsbDsKK+ivlSA+IHRlc3Q7CivngYwgPiBwb3VyOwor6aqMID4gdGVzdDsKK+WhgCA+IHdhbGw7CivmraIgPiBzdG9wOwor5aC1ID4gd2FsbDsKK+WgpCA+IGRpa2U7CivloJUgPiBmYWxsOwor5oG2ID4gZXZpbDsKK+WghiA+IGhlYXA7CivmhaIgPiBzbG93Owor5aCFID4gaGFyZDsKK+WggCA+IGNhdmU7Civon7sgPiBhbnRzOwor6JePID4gaGlkZTsKK+i0nyA+IGxvYWQ7Civln4sgPiBidXJ5Owor5r65ID4gY2FsbTsKK+WeoiA+IGRpcnQ7Civono0gPiBtZWx0Owor5r2uID4gdGlkZTsKK+WdpiA+IGZsYXQ7CivmvZwgPiBoaWRlOwor5pWRID4gc2F2ZTsKK+S4nSA+IHNpbGs7CivpvYogPiBldmVuOwor6by7ID4gbm9zZTsKK+a8rCA+IHNvYWs7CivpvJMgPiBkcnVtOwor5rC4ID4gbG9uZzsKK+a8jyA+IGxlYWs7CivlvZUgPiBjb3B5Owor6YGHID4gbWVldDsKK+a7vyA+IGZpbGw7CivoiLkgPiBzaGlwOwor6bu0ID4gbW9sZDsKK+a7tCA+IGRyaXA7Civpm6ggPiByYWluOwor6JuZID4gZnJvZzsKK+a7kSA+IHNsaXA7CivpursgPiBoZW1wOwor6JqkID4gZmxlYTsKK+m9kCA+IGV2ZW47CivmupYgPiBydWxlOwor5rqMID4gcG91cjsKK+WFhSA+IGZpbGw7Civpub8gPiBkZWVyOwor5a+7ID4gc2VlazsKK+WugSA+IGNhbG07Civpub0gPiBzYWx0Owor5rKZID4gc2FuZDsKK+WNliA+IHNlbGw7CivpobogPiBvYmV5Owor6JmfID4gbWFyazsKK+WWhCA+IGdvb2Q7CivlmZsgPiBiaXRlOwor6ImvID4gZ29vZDsKK+WdmiA+IGhhcmQ7CivlmYIgPiBtZWV0Owor5ouNID4gY2xhcDsKK+aOiSA+IHR1cm47CivmuIggPiBoZWxwOwor5ZOtID4gd2VlcDsKK+WYhiA+IHNpZ2g7CivljYggPiBub29uOwor5Y2hID4gY2FyZDsKK+mbqiA+IHNub3c7Civmt7UgPiBndWxmOwor5rehID4gd2VhazsKK+WXnyA+IHNpZ2g7Civmt5EgPiBnb29kOwor6JeNID4gYmx1ZTsKK+a3iyA+IGRyaXA7CivmtrwgPiBjb29sOwor6L29ID4gbG9hZDsKK+WIuiA+IHN0YWI7CivolqogPiBmdWVsOwor6ZSAID4gbWVsdDsKK+mxvCA+IGZpc2g7CivllpogPiBjYWxsOwor5ZaYID4gcGFudDsKK+ebmCA+IHRyYXk7CivolpQgPiByb3NlOwor5ZaHID4gaG9ybjsKK+iWhCA+IHRoaW47CivllbwgPiB3ZWVwOwor5p62ID4gcmFjazsKK+a1uCA+IHNvYWs7CivmrL4gPiBpdGVtOwor5rWqID4gd2F2ZTsKK+iVqSA+IHBvbmQ7CivmtKogPiB2YXN0Owor6ZWHID4gdG93bjsKK+a1hCA+IHB1cmU7Civml4UgPiB0cmlwOwor5ZS+ID4gc3BpdDsKK+WUsSA+IHNpbmc7CivolLUgPiBoaWRlOwor5ZSvID4gb25seTsKK+a0qSA+IGxlYWs7CivmtJ4gPiBjYXZlOwor6aqoID4gYm9uZTsKK+a0lyA+IHdhc2g7CivllJYgPiBkdW1iOwor6bSJID4gY3JvdzsKK+WUhyA+IGxpcHM7Civms7MgPiBkaXZlOwor5ZOyID4gd2lzZTsKK+WTqSA+IG1pbGU7CivlopkgPiB3YWxsOwor5ZyjID4gaG9seTsKK+mzpSA+IGJpcmQ7Civot4MgPiBza2lwOwor5pmTID4gZGF3bjsKK+azhCA+IGxlYWs7CivpmpAgPiBoaWRlOwor6JK8ID4gYmx1ZTsKK+aBkCA+IGZlYXI7CivmsrwgPiBsYWtlOwor5LuYID4gZ2l2ZTsKK+WOhSA+IGhhbGw7CivlkqwgPiBiaXRlOwor6IW/ID4gbGVnczsKK+ayliA+IHBvdXI7CivnoawgPiBoYXJkOwor5rKIID4gc2luazsKK+WUriA+IHNlbGw7CivpgZcgPiBsb3NlOwor5o6iID4gZmluZDsKK+iRrCA+IGJ1cnk7CivnvJMgPiBzbG93Owor6JGmID4gcmVlZDsKK+axoCA+IHBvb2w7Civng6cgPiBidXJuOwor6JGJID4gbGVhZjsKK+adnyA+IGJpbmQ7CivlkYYgPiBkdWxsOwor5ZC7ID4ga2lzczsKK+WQuSA+IGJsb3c7CivkvJEgPiByZXN0Owor5Y+5ID4gc2lnaDsKK+awjyA+IGNsYW47Civnrb4gPiBzaWduOwor5rCIID4gZmVsdDsKK+WltiA+IG1pbGs7Civmr6wgPiBiYWxsOwor6I+pID4gaGVyYjsKK+WPoiA+IGJ1c2g7CivmjIIgPiBoYW5nOwor6IiqID4gc2FpbDsKK+avmCA+IGhlbHA7Civmi7MgPiBmaXN0Owor5LmYID4gcmlkZTsKK+iigSA+IHJvYmU7CivlnYAgPiBzaXRlOwor5q+GID4gYmVhdDsKK+auvyA+IGhhbGw7CivmrrogPiBraWxsOwor5qC4ID4gc2VlZDsKK+ihpSA+IG1lbmQ7CivotZ4gPiBoZWxwOwor5LqmID4gYWxzbzsKK+atsyA+IHllYXI7Civmn5QgPiBzb2Z0Owor5q2pID4gc3RlcDsKK+aDnCA+IHBpdHk7CivprZogPiBmaXNoOwor5q2OID4gc2lnaDsKK+mtgiA+IHNvdWw7CivkuZQgPiB0YWxsOwor57KuID4gZm9vZDsKK+iMqyA+IHZhc3Q7CivosIsgPiBwbGFuOwor5pWPID4gZmFzdDsKK+iMjiA+IHN0ZW07Civpm7YgPiB6ZXJvOwor6I2hID4gcG9uZDsKK+WLviA+IGhvb2s7CivnirkgPiBsaWtlOwor6auuID4gaGFpcjsKK+mrqiA+IGhhaXI7CivkuYMgPiB0aGVuOwor5oqsID4gbGlmdDsKK+mrlCA+IGJvZHk7Civoi5QgPiBtb3NzOwor5YuVID4gbW92ZTsKK+WQryA+IG9wZW47CivlhpIgPiByaXNrOwor56m3ID4gcG9vcjsKK+aqoyA+IG1hc3Q7CivkvqcgPiBzaWRlOwor5pemID4gZGF3bjsKK+e6ryA+IHB1cmU7Civpl60gPiBzaHV0Owor5YeJID4gY29vbDsKK+eilyA+IGJvd2w7CivliaUgPiBwZWVsOwor5ruaID4gdHVybjsKK+a2piA+IHNvZnQ7CivliZsgPiBoYXJkOwor6amXID4gdGVzdDsKK+WJhyA+IHJ1bGU7Civok50gPiBibHVlOwor5qi5ID4gdHJlZTsKK+ibiyA+IGVnZ3M7Civkv4MgPiB1cmdlOwor6aKcID4gZmFjZTsKK+i0qyA+IHBvb3I7CivmnbAgPiBoZXJvOwor6IifID4gYm9hdDsKK+mokyA+IHRlc3Q7CivmgYsgPiBsb3ZlOwor6L+fID4gbGF0ZTsKK+eptCA+IGNhdmU7CivotZYgPiByZWx5Owor6aebID4gc2FpbDsKK+mnkiA+IGNvbHQ7Civlh4wgPiBwdXJlOwor5LmMID4gY3JvdzsKK+WylyA+IHBvc3Q7Civpk7ogPiBzaG9wOwor6aa0ID4gdGFtZTsKK+S8jSA+IGZpdmU7CivourIgPiBoaWRlOwor566xID4gY2FzZTsKK+W4kCA+IHRlbnQ7Civohp0gPiBrbmVlOwor6IaaID4gc2tpbjsKK+aCiSA+IGtub3c7CivlhowgPiBib29rOwor5YaKID4gYm9vazsKK+ebiCA+IGZpbGw7Civmi5YgPiBkcmFnOwor5piPID4gZHVzazsKK+aIkiA+IHdhcm47CivpobUgPiBwYWdlOwor5bCYID4gZHVzdDsKK+iEoyA+IGxpcHM7CivkupUgPiB3ZWxsOwor5rGqID4gdmFzdDsKK+iEhyA+IHJpYnM7CivohIUgPiByaWJzOwor5oGwID4ganVzdDsKK+akgCA+IGJvd2w7Civmj48gPiBjb3B5Owor5LmPID4gbGFjazsKK+iDniA+IHdvbWI7Civmo5ogPiB0ZW50Owor5oCcID4gcGl0eTsKK+S9syA+IGdvb2Q7CivpuJ8gPiBiaXJkOwor5YOFID4gb25seTsKK+miqCA+IHdpbmQ7CivmoqggPiBwZWFyOwor5byvID4gYmVuZDsKK+S6jyA+IGxvc2U7CivlgpEgPiBoZXJvOwor6YW4ID4gdGFydDsKK+iBvSA+IGhlYXI7CivogbcgPiBkdXR5Owor5qG2ID4gcGFpbDsKK+iBtCA+IGhlYXI7CivnmKYgPiB0aGluOwor5YG0ID4gc2lkZTsKK+e7qSA+IHNwaW47CivogZ4gPiBoZWFyOwor6IGWID4gaG9seTsKK+mhlCA+IGZhY2U7CivpoY8gPiBmYWNlOwor54m1ID4gZHJhZzsKK+mgvCA+IHJlbHk7Civnp58gPiByZW50Owor6aC4ID4gbmVjazsKK+aJrSA+IHR1cm47CivpoK0gPiBoZWFkOwor5pOmID4gd2lwZTsKK+autyA+IG1hbnk7CivpoJogPiBuZWNrOwor6aCYID4gbmVjazsKK+ebvCA+IGxvb2s7CivlkJ8gPiBzaW5nOwor6ICVID4gcGxvdzsKK+iLjSA+IGJsdWU7CivpoIYgPiBvYmV5Owor6aCFID4gbmVjazsKK+WujyA+IHdpZGU7CivpoIEgPiBwYWdlOwor5aiDID4gYmFieTsKK+aaliA+IHdhcm07CivplIEgPiBsb2NrOwor56CNID4gaGFjazsKK+S/giA+IGJpbmQ7CivmjKggPiBuZWFyOwor5oWIID4ga2luZDsKK+e+uSA+IHNvdXA7Civnvq4gPiBzb3VwOwor6Z6tID4gd2hpcDsKK+e+qCA+IGVudnk7Civnqp0gPiBuZXN0Owor5p2cID4gc3RvcDsKK+aSpCA+IG9taXQ7CivkvoYgPiBjb21lOwor5p2xID4gZWFzdDsKK+etuSA+IGNoaXA7CivnqIAgPiByYXJlOwor5p2WID4gY2FuZTsKK+aLqCA+IG1vdmU7CivouKIgPiBraWNrOwor6L+BID4gbW92ZTsKK+S9hyA+IHdhaXQ7Civooq0gPiByYWlkOwor6am2ID4gc2FpbDsKK+mcsCA+IGhhaWw7Civmg6cgPiBmZWFyOwor57q9ID4ga25vdDsKK+S4myA+IGJ1c2g7CivmgqAgPiBsb25nOwor5pu8ID4gbG9uZzsKK+abuCA+IGJvb2s7CivnvKAgPiB3cmFwOwor5ruLID4gZ3JvdzsKK+eipyA+IGphZGU7CivllKQgPiBjYWxsOwor6IOBID4gcmliczsKK+iwsSA+IGxpc3Q7CivpmrEgPiBoaWRlOwor5LiYID4gaGlsbDsKK+S6niA+IGFzaWE7CivnupIgPiB3cmFwOwor5p2GID4gcG9sZTsKK+e6jyA+IHdyYXA7CivpmoogPiB0ZWFtOwor5oKsID4gaGFuZzsKK+maiCA+IGNvdmU7CivltJQgPiBoaWdoOwor57qCID4gZWRpdDsKK+WUiSA+IGFsYXM7CivmmoEgPiBkYXduOwor56y8ID4gY2FnZTsKK+mZuCA+IGxhbmQ7CivnuaogPiBkcmF3Owor57mpID4gcm9wZTsKK+aFqCA+IHNpZ2g7CivkuZcgPiByaWRlOwor57uzID4gcm9wZTsKK+aZgiA+IHRpbWU7Civnn78gPiBtaW5lOwor6YGjID4gc2VuZDsKK+mVliA+IGRhcnQ7CivpgbUgPiBvYmV5Owor5YWGID4gb21lbjsKK+mSkyA+IGZpc2g7CivmiqsgPiB3ZWFyOwor5piHID4gcmlzZTsKK+e4hCA+IHJvcGU7CivmmIIgPiByaXNlOwor57epID4gc2xvdzsKK+e3qCA+IGtuaXQ7CivmioQgPiBjb3B5Owor5YC6ID4gZGVidDsKK+iCpCA+IHNraW47CivmrYcgPiByZXN0Owor6ZaLID4gb3BlbjsKK+mWiSA+IHNodXQ7CivmlokgPiBldmVuOwor5paDID4ga2lsbDsKK+e9lSA+IHJhcmU7CivploAgPiBnYXRlOwor6ZW3ID4gbG9uZzsKK+i0tyA+IGxlbmQ7CivntbUgPiBkcmF3Owor6aKIID4gbmVjazsKK+e1siA+IHNpbGs7CivohJYgPiBuZWNrOwor5aChID4gZm9ydDsKK+e1qCA+IHNpbGs7CivntaYgPiBnaXZlOwor6LWQID4gZ2l2ZTsKK+migiA+IGxhdWQ7CivntZAgPiBrbm90Owor56CWID4gdGlsZTsKK+e1hiA+IGxvb3A7Civlk5EgPiBkdW1iOwor57SwID4gZmluZTsKK+a7qSA+IGJhbms7CivpkokgPiBuYWlsOwor5ZOEID4gY29heDsKK+mTgyA+IGJlbGw7CivntJQgPiBwdXJlOwor57SQID4ga25vdDsKK+e0iyA+IGxpbmU7Civmi5ogPiByaXNrOwor57O4ID4gc2lsazsKK+ezpyA+IGZvb2Q7CivlpZEgPiBkZWVkOwor5oeSID4gbGF6eTsKK+eMjiA+IGh1bnQ7CivltakgPiBoaWdoOwor55uQID4gc2FsdDsKK+aRuiA+IGZvbGQ7CivnsaAgPiBjYWdlOwor6Zm1ID4gaGlsbDsKK+ijuSA+IHdyYXA7Civnu5ggPiBkcmF3Owor6ZC1ID4gaXJvbjsKK+mQoSA+IGlyb247Civnr60gPiBjYWdlOwor56+kID4gZGVlcDsKK+aMvSA+IHB1bGw7CivnsrkgPiBwdXJlOwor56+AID4ga25vdDsKK+aOoyA+IGRyYWc7CivmjpsgPiBoYW5nOwor6Y6WID4gbG9jazsKK+euiyA+IG5vdGU7CivmjbIgPiBjdXJsOwor5rO8ID4gcG91cjsKK+engyA+IGJhbGQ7CivpjLIgPiBjb3B5Owor57uRID4gYmluZDsKK+m4rSA+IGR1Y2s7CivmjoAgPiBsaWZ0Owor57q5ID4gbGluZTsKK+i2nyA+IHRpbWU7CivlkLwgPiByb2FyOwor56q6ID4gcGVlcDsKK+eqtiA+IHBvb3I7Civlj6AgPiBwaWxlOwor5ZW4ID4gcm9hcjsKK+eqriA+IHBvb3I7CivpipEgPiBtaWxsOwor5am0ID4gYmFieTsKK+i6rCA+IGJvZHk7Civmr5kgPiBraWxsOwor6YC4ID4gZmxlZTsKK+eQvCA+IGphZGU7CivpiYQgPiBpcm9uOwor5oyqID4gbW92ZTsKK+aZjCA+IG5vb247CivmiLggPiBkb29yOwor6Yi0ID4gYmVsbDsKK+eosSA+IGNhbGw7CivotLEgPiBtZWFuOwor56iuID4gc2VlZDsKK+mSqSA+IGhvb2s7CivmiIAgPiBsb3ZlOwor5oe8ID4gZmVhcjsKK+aHuCA+IGhhbmc7Civph6MgPiBmaXNoOwor6YeYID4gbmFpbDsKK+m4piA+IGNyb3c7Civni64gPiBsaW9uOwor5aauID4gbWFpZDsKK+emvyA+IGJhbGQ7CivnqpEgPiBraWxuOwor5aGYID4gcG9uZDsKK+e6pCA+IGZpbmU7CivphqsgPiBjdXJlOwor5oapID4gcmVzdDsKK+aGkCA+IHBpdHk7Civmho4gPiBoYXRlOwor576hID4gZW52eTsKK+aFviA+IGx1c3Q7CivnpbcgPiBwcmF5Owor6IiGID4gY2FydDsKK+eliCA+IHByYXk7Civlq6kgPiBzb2Z0Owor6LmEID4gaG9vZjsKK+aEmyA+IGxvdmU7CivphJkgPiBtZWFuOwor5oOhID4gZXZpbDsKK+aypyA+IGJsdWU7CivnorogPiBzdXJlOwor5oKqID4gZXZpbDsKK+W4hiA+IHNhaWw7CivmtrUgPiBzb2FrOwor6YKKID4gZWRnZTsKK+a+oSA+IHdhc2g7CivpgbogPiBsb3NlOwor6YGyID4gbGF0ZTsKK+eDpCA+IGJha2U7Civls7sgPiBoaWdoOwor6YGOID4gcGFzczsKK+mBiyA+IGx1Y2s7CivlsKwgPiBsaW1wOwor6YGFID4gbGF0ZTsKK+mBgSA+IGhpZGU7CivpgLEgPiB3ZWVrOwor5L2RID4gaGVscDsKK+mAoyA+IGpvaW47CivmgKAgPiBpZGxlOwor6YCZID4gdGhpczsKK+eggiA+IHNhbmQ7Civog7YgPiBnbHVlOwor6LCjID4gc2luZzsKK+aisyA+IGNvbWI7CivnpYEgPiBwcmF5Owor5ZWkID4gYmVlcjsKK+mTuCA+IG1lbHQ7Civouq8gPiBib2R5Owor6YW/ID4gYnJldzsKK+aNoyA+IGh1bGw7CivnjqsgPiByb3NlOwor5ZmiID4gbW9hbjsKK+e6uiA+IHNwaW47Civnqp8gPiBob2xlOwor5YWRID4gY2FzaDsKK+WGpSA+IGRhcms7Civop4UgPiBzZWVrOwor5rK4ID4gYm9pbDsKK+aJgSA+IGZsYXQ7CivnnKggPiB3aW5rOwor55i+ID4gcmFzaDsKK+m7ryA+IGRhcms7Civlpp4gPiBnaXJsOwor5L+PID4gbGlrZTsKK+WtvSA+IGV2aWw7CivlvIogPiBldmlsOwor5aaDID4gd2lmZTsKK+WjpCA+IHNvaWw7Civnv5QgPiBzb2FyOwor5bepID4gYmluZDsKK+W4nCA+IGZsYWc7Civolb4gPiBidWRzOwor6ZOFID4gbGVhZDsKK+e7kiA+IHNpbGs7CivnqqUgPiBwZWVwOwor6ZSjID4gZ29uZzsKK+aSvCA+IG1vdmU7Civll6YgPiBzdWNrOwor6L20ID4gYXhsZTsKK+a2lSA+IHRlYXI7CivnrIMgPiBkZWVwOwor56qNID4gaG9sZTsKK+aJsyA+IHB1bGw7CivpgY8gPiBzdG9wOwor5ZCGID4gYmF3bDsKK+eGlCA+IG1lbHQ7CivogYsgPiBkZWFmOwor5YufID4gbGV2eTsKK+eWpCA+IHNjYXI7CivomoEgPiBhbnRzOwor5oKvID4gcGl0eTsKK+eDmCA+IGJha2U7CivniZ8gPiBtYWtlOwor5bStID4gaGlnaDsKK+W3oiA+IG5lc3Q7Civmsq4gPiBzdG9wOwor5rmbID4gZGVlcDsKK+aZpiA+IGRhcms7CivpqbkgPiBjb2x0Owor6K+rID4gd2FybjsKK+WiqSA+IGhlYXA7Civlt40gPiBoaWdoOwor5pSSID4gc2F2ZTsKK+e7iiA+IGxvb3A7Civmh4ggPiBpZGxlOwor5q60ID4gYmVhdDsKK+eagiA+IHNvYXA7Civon7kgPiBjcmFiOwor57u3ID4gYmluZDsKK+WMvyA+IGhpZGU7CivllKAgPiBjaGF0Owor6IuHID4gcmVlZDsKK+aLvSA+IGRyYWc7Civng7kgPiBib2lsOwor5ZWDID4gZ25hdzsKK+e+lCA+IGxhbWI7CivplIggPiBydXN0Owor5LqiID4gaGlnaDsKK+iCiyA+IHJpYnM7CivoobIgPiBtZW5kOwor5o6QID4gaG9sZDsKK+aHpiA+IHdlYWs7CivohZMgPiBjYWxmOwor5b23ID4gbGlrZTsKK+mqoSA+IG11bGU7CivphocgPiByaWNoOwor6amvID4gdGFtZTsKK+e6rCA+IHdvb2Y7CivnioEgPiBwbG93Owor5ouvID4gaGVscDsKK+m+miA+IGdpdmU7Civom6QgPiBjbGFtOwor5oiuID4ga2lsbDsKK+avoSA+IGZlbHQ7CivlkoAgPiBzdWNrOwor5ZGxID4gd2FpbDsKK+aIjiA+IGFybXM7CivolLwgPiBsdXNoOwor6Iy4ID4gc29mdDsKK+ekgSA+IHJlZWY7Civpl6kgPiBib2x0Owor5rakID4gd2FzaDsKK+a4jSA+IHNvYWs7Civot5sgPiBsYW1lOwor6J+GID4gZnJvZzsKK+WBjCA+IHRodXM7CivpgpEgPiBhcmVhOwor5Yy+ID4gZmxhdDsKK+esuiA+IG5vdGU7Civnro0gPiBob29wOwor5ZmsID4gYml0ZTsKK+ifoCA+IGNvaWw7CivotYEgPiByZW50Owor6IWMID4gc2FsdDsKK+aOgiA+IGhlZnQ7CivpgZAgPiBhZmFyOwor55SsID4gcGF0aDsKK+WDriA+IHBhZ2U7CivlnpsgPiBoZWFwOwor5ZCgID4gYmFyazsKK+i4tSA+IGhlZWw7Civom74gPiBtb3RoOwor6ICYID4gd2VlZDsKK+aahCA+IHdhcm07CivonoMgPiBjcmFiOwor5ZWVID4gd2FpbDsKK+ifviA+IHRvYWQ7CivnrY8gPiByYWZ0Owor57G9ID4gc2VlZDsKK+eKiiA+IGNhbGY7CivnhaYgPiBraW5kOwor6IeKID4gcmFuazsKK+aSrCA+IGxpZnQ7Civmr5cgPiBoZWxwOwor6Lm/ID4gbGVhcDsKK+WShiA+IHJvYXI7CivpsqQgPiBjYXJwOwor6L6VID4gYXhsZTsKK+eAmiA+IHZhc3Q7CivoiosgPiB0YXJvOwor6Zu5ID4gaGFpbDsKK+m5qiA+IHdyZW47CivpqrwgPiBib25lOwor6I6YID4gbG9uZzsKK+iwpyA+IGNhbG07CivonJUgPiBtb2x0Owor54SKID4gd2VsZDsKK+iAmSA+IHJha2U7CivnvIQgPiBzZWFsOwor5rypID4gZWRkeTsKK+mltSA+IGJhaXQ7Civovo0gPiBzdG9wOwor6LCRID4gamVlcjsKK+aBgSA+IHRoYXQ7CivlgqkgPiByaWNoOwor55igID4gdGhpbjsKK+W1mCA+IGhpZ2g7Civls6UgPiBoaWdoOwor6ZKFID4gZ29sZDsKK+a5riA+IGJ1cnk7Civpoo8gPiBjaGluOwor6ZOOID4gYmVsbDsKK+iUtyA+IHJvc2U7CivosbogPiB3b2xmOwor54aoID4gaXJvbjsKK+WRtyA+IHN1Y2s7Civpl7MgPiBnYXRlOwor6IquID4gdGlueTsKK+mZqCA+IGZhbGw7CivnkqggPiBnZW1zOwor5rO1ID4gcHVtcDsKK+e/sSA+IHNvYXI7CivmiJUgPiBraWxsOwor6I6TID4gbW9zczsKK+ixjCA+IHBlYXM7CivloJEgPiBtb2F0Owor5r28ID4gaGlnaDsKK+eWtSA+IGZsYXc7Civov6QgPiB3aW5kOwor5oC1ID4gZmVhcjsKK+amiCA+IHBhbG07CivlhIYgPiB3YXJuOwor5ZelID4gcm9hcjsKK+ektCA+IGZpbGw7CivprIMgPiBtYW5lOwor5bKQID4gaGlnaDsKK+WVuyA+IG9ubHk7Civlkp0gPiBoaXNzOwor5o+EID4gbGlmdDsKK+a9uCA+IHdlZXA7CivorrQgPiBzaW5nOwor6LaEID4gd2VhazsKK+mCiyA+IHJhZ3M7Civog6QgPiBoZWlyOwor5qCJID4gY29tYjsKK+eylSA+IGxlZXM7CivpopQgPiBjaGluOwor5ZWuID4gYml0ZTsKK+i9siA+IGF4bGU7CivlrbEgPiB3ZWFrOwor5oyeID4gZmxvZzsKK+mVqyA+IGxhbXA7Civoh6cgPiBnb29kOwor6bmcID4gZHVjazsKK+aYlSA+IGRhd247CivplLcgPiBoaWdoOwor6ZOEID4gbWVsdDsKK+i+tiA+IHdhbGs7CivpmIQgPiBsb3RzOwor6ZSMID4gemluYzsKK+iNuyA+IHJlZWQ7CivllpkgPiBiZWFrOwor6JyNID4gdG9hZDsKK+e8oiA+IGhhbmc7Civmn6IgPiByb290Owor56qgID4gbmVzdDsKK+iCmyA+IGFudXM7CivoqoogPiBjb3B5Owor6LeOID4gc2xpcDsKK+iBqSA+IGRlYWY7Civnl4IgPiBzY2FiOwor6biiID4ga2l0ZTsKK+aKuyA+IHB1bGw7CivmsqQgPiBzb2FrOwor5ra/ID4gZHJpcDsKK+eJpiA+IHRhaWw7CivnjLcgPiBwbGFuOwor5aKJID4gd2FsbDsKK+aauSA+IHJpc2U7Civpl7EgPiBnYXRlOwor6L2tID4geW9rZTsKK+W8rSA+IHN0b3A7CivmtLUgPiB0cnVlOwor55OvID4gYm93bDsKK+a/oCA+IG1vYXQ7CivlnKkgPiBkaWtlOwor5764ID4gd2VhazsKK+eZryA+IHRoaW47CivnmKIgPiBzY2FyOwor5bmEID4gdGVudDsKK+azhSA+IHN3aW07Civnn74gPiBhbHVtOwor6JqpID4gd29ybTsKK+m4tyA+IGhhd2s7CivouYcgPiBsYW1lOwor6ICLID4gYWdlZDsKK+iLkiA+IGx1c2g7CivpgIsgPiBmbGVlOwor6JeTID4gbW9zczsKK+msuyA+IHNlbGw7Civms6sgPiB3ZWVwOwor5ZWtID4gc2luZzsKK+WdqCA+IGx1bXA7CivooLkgPiBtb3RoOwor55axID4gYWNuZTsKK+mUkiA+IGxvY2s7Civmmp0gPiBkYXJrOwor54WKID4gd2FybTsKK+eIqCA+IG92ZW47Civlm50gPiBiYWJ5Owor5Z6pID4gaG9seTsKK+aAvCA+IGhhdGU7CivltLQgPiBoaWdoOwor5ouKID4gc2xhcDsKK+aJjCA+IGhhbmQ7CivpkqQgPiBsb2NrOwor5qivID4gbWFzdDsKK+mqnyA+IGdlbGQ7Civnh7kgPiBmaXJlOwor6aaQID4gZm9vZDsKK+WcuSA+IHRvbWI7CivpvoggPiBndW1zOwor6JyKID4gY2xhbTsKK+eXliA+IGR1bWI7CivmrYYgPiBsaWtlOwor6LWJID4gZ2l2ZTsKK+mToyA+IG1pbGw7CivngY8gPiB2YXN0Owor55iZID4gaXRjaDsKK+mXvCA+IGRvb3I7CivlnYwgPiBkdXN0Owor5qSkID4gdHJlZTsKK+mYiyA+IGZldWQ7Civlta8gPiBoaWdoOwor6YWwID4gYWN5bDsKK+eYlyA+IGJ1cnk7CivnlqMgPiB3YXJ0Owor56mRID4gZmFybTsKK+anjiA+IHJhZnQ7CivmobQgPiByYWZ0Owor5rqPID4gcG9vbDsKK+ekuyA+IGN1bHQ7Civmo7AgPiBmbG9nOwor54u3ID4gcmFzaDsKK+iSuSA+IHJlZWQ7CivkvaQgPiBrYXdhOwor6bq4ID4gYnJhbjsKK+m4sSA+IGtpdGU7CivnvKsgPiBkcmF3Owor57qhID4gYmVuZDsKK+W1rCA+IGhpZ2g7Civoj5YgPiBpcmlzOwor5oSNID4gcGl0eTsKK+WrsSA+IGxhZHk7CivojqggPiBoZXJiOwor6LCdID4gYnJhZzsKK+awliA+IG5lb247CivpopsgPiBnb29kOwor54egID4gd2FybTsKK+a9tCA+IHBvbmQ7CivloJkgPiBidXJ5Owor6ZqXID4gaGlnaDsKK+S4vyA+IGxpbmU7Civpsq4gPiBjYXJwOwor6LeWID4gc29sZTsKK+iaiyA+IGduYXQ7CivmsZQgPiBuZWFyOwor55ekID4gYWNuZTsKK+i0tiA+IGdpdmU7Civnup8gPiBzaWxrOwor5L6RID4gaGVscDsKK+iAqiA+IHBsb3c7Civop5wgPiBiZWFrOwor562iID4gcmFrZTsKK+ackCA+IHdhcm07Civop4cgPiBwZWVrOwor5qqXID4gdHJlZTsKK+iPoSA+IGJ1ZHM7Civlgb4gPiBydWluOwor6Zq5ID4gYmlyZDsKK+iIoSA+IGJvYXQ7CivnlpIgPiBzaWNrOwor5ZmNID4gY2hldzsKK+WfnSA+IGJhbms7CivpsqkgPiBjYXJwOwor6bKSID4gY2xhbTsKK+ilniA+IGZvbGQ7CivngawgPiBmaXJlOwor6ISSID4gb3BlbjsKK+afmSA+IGNhZ2U7CivmuZQgPiB3YXNoOwor5rSzID4gZGFtcDsKK+WwoiA+IHdlYWs7Civpq58gPiBoYWlyOwor6bOOID4gc29sZTsKK+iJmiA+IHNoaXA7CivpuakgPiB3cmVuOwor54KxID4gc29vdDsKK+iGqiA+IHBvcms7CivmoIogPiBjYWdlOwor57uyID4gY29yZDsKK+WugCA+IHJvb2Y7Civpl7YgPiBkb29yOwor54yKID4gbGlvbjsKK+WytSA+IGhpbGw7CivljakgPiBzZWFsOwor6K+OID4gYmVuZDsKK+WAriA+IGJhcmU7CivpvpQgPiBnaXZlOwor6b2uID4gYml0ZTsKK+m9pyA+IGJpdGU7CivpvaYgPiBndW1zOwor6b2XID4gZ3VtczsKK+m9lSA+IGduYXc7CivpvJsgPiBkcnVtOwor6byWID4gZHJ1bTsKK+m7tiA+IG1vbGU7CivpuqkgPiBicmFuOwor6bqbID4gZmF3bjsKK+m6miA+IGJ1Y2s7CivpupEgPiBmYXduOwor6bqMID4gc3RhZzsKK+m6gyA+IHRpbGw7CivpuY4gPiBiaXJkOwor6bmGID4gbXluYTsKK+m3ryA+IHdyZW47Civpt6YgPiB3cmVuOwor6beZID4gaGF3azsKK+m3lSA+IGNhbGw7CivptrEgPiBzb2FyOwor6bapID4gZHVjazsKK+m2gyA+IGhhd2s7CivptoIgPiBoYXdrOwor6bWvID4gYmlyZDsKK+m1hCA+IGtpdGU7CivptKggPiBkdWNrOwor6bSfID4ga2l0ZTsKK+m0hCA+IGR1Y2s7Civps7cgPiBiaXJkOwor6bO2ID4ga2l0ZTsKK+mziyA+IGNhcnA7CivpsrwgPiBmaXNoOwor6bKLID4gY2FycDsKK+myhiA+IHNvbGU7CivpsKggPiBzb2xlOwor6a+qID4gY2FycDsKK+mviSA+IGNhcnA7Civpr4ggPiBmaXNoOwor6a+HID4gY2FycDsKK+mumiA+IGNsYW07CivprpIgPiBjYXJwOwor6a6GID4gZmlzaDsKK+mtiyA+IGJlYXI7CivprK4gPiBsb3RzOwor6aypID4gZmV1ZDsKK+mskSA+IGxvbmc7Civpq54gPiBoaWdoOwor6amYID4gbXVsZTsKK+moviA+IG11bGU7CivpqLggPiBnZWxkOwor6aivID4gbG91ZDsKK+mooyA+IG1hbmU7Civpp70gPiBncmV5Owor6ae0ID4gZHJ1bTsKK+mljCA+IGZlZWQ7CivppYggPiBmb29kOwor6aSMID4gYmFpdDsKK+mkhyA+IGZvb2Q7Civpo6EgPiBtZWFsOwor6aOMID4gd2luZDsKK+mivyA+IHNhaWw7CivporogPiBzb2FyOwor6aGTID4gZ29vZDsKK+mgtyA+IGNoaW47CivpoK4gPiB3YXNoOwor6aCmID4gY2hpbjsKK+mgjCA+IGxhdWQ7CivpoIggPiBtdXN0Owor6Z65ID4gc2tpbjsKK+menyA+IHNraW47CivpnpkgPiBmaW5lOwor6Z6PID4gYmluZDsKK+meiSA+IGRydW07CivpnoAgPiBkcnVtOwor6Z2RID4gYmx1ZTsKK+mcpCA+IGRyaXA7CivpnKMgPiBmYWxsOwor6ZyiID4gZHVzdDsKK+malSA+IGZhbGw7CivpmoQgPiBkaWtlOwor6ZikID4gaGlsbDsKK+mYniA+IHZlaW47Civpl6UgPiBkb29yOwor6ZeiID4gb3BlbjsKK+mXkyA+IG9wZW47Civpl4ggPiBnYXRlOwor6ZeGID4gYm9zczsKK+mWnyA+IGhpZGU7Civplo4gPiBnYXRlOwor6ZaMID4gZG9vcjsKK+mWhyA+IHNodXQ7CivploIgPiBib2x0Owor6ZW4ID4gbG9uZzsKK+mVqSA+IHBpY2s7CivplZUgPiBmdXNlOwor6ZO0ID4gZ29uZzsKK+mRvCA+IGdvbmc7CivpkaIgPiBmaWxlOwor6ZGgID4gbWVsdDsKK+mRmyA+IG1pbmU7CivpkYQgPiBtZWx0Owor6ZC4ID4gYmVsbDsKK+mQqSA+IGxlbnM7CivpkJkgPiBsYW1wOwor6ZCLID4gZ29uZzsKK+mQhCA+IGJlbGw7Civpj70gPiBydXN0Owor6Y+wID4gY29pbjsKK+mPpSA+IHJ1c3Q7Civpj6IgPiBkYXJ0Owor6Y67ID4gbG9jazsKK+mOriA+IHRvd247Civpjq0gPiB0b3duOwor6Y6UID4gZnVzZTsKK+mNlCA+IGhpZ2g7CivpjIQgPiBjb3B5Owor6YuzID4gbWVsdDsKK+mLmiA+IGlyb247Civpi4YgPiBnb2xkOwor6Yq5ID4gcnVzdDsKK+mKtyA+IG1lbHQ7CivpipUgPiBpcm9uOwor6YmxID4gbWluZTsKK+mJpCA+IGhvb2s7CivpiKwgPiBiZWxsOwor6YiQID4gbG9jazsKK+mIjiA+IGhvb2s7CivpiIYgPiBsZWFkOwor6YeAID4gYnJldzsKK+mGuCA+IGJyZXc7CivphJEgPiBraWNrOwor6YKJID4gZWRnZTsKK+mBuyA+IG1lZXQ7CivpgbcgPiBtb3ZlOwor6YGfID4gbGF0ZTsKK+i/uiA+IHRoZW47Civov5ogPiB2ZXJ5Owor6L+GID4gd2luZDsKK+i+tSA+IHdhbGs7CivovZ0gPiBlbnZ5Owor6L2XID4gZmFpbDsKK+i9jCA+IHNsZWQ7CivovYUgPiBheGxlOwor6Ly/ID4gY2FydDsKK+i8tCA+IHNsZWQ7CivovJ8gPiBzdG9wOwor6Lu7ID4gYXhsZTsKK+i7uCA+IGF4bGU7Civou6UgPiB5b2tlOwor6LufID4gc29mdDsKK+i7myA+IHlva2U7Civou4YgPiBib2R5Owor6LuAID4gYm9keTsKK+i6vyA+IHRhbGw7CivourYgPiBiYXJlOwor6Lq0ID4gdGFsbDsKK+i6syA+IGJvZHk7CivourEgPiBoaWRlOwor6LqwID4gYm9keTsKK+i6pSA+IGxlYXA7CivoupIgPiB3YWxrOwor6LmiID4gaG9vZjsKK+i5jyA+IGhvb2Y7CivouLQgPiBsZWFwOwor6LitID4gaGVlbDsKK+i4mCA+IGJhbGw7Civot7wgPiBiZW50Owor6LeyID4gaG9vZDsKK+i3sSA+IHN0b3A7Civot54gPiB3YWxrOwor6LeZID4gd2VhazsKK+i2ryA+IGp1bXA7CivotbEgPiB3YWxrOwor6LWVID4gZmluZTsKK+i0iiA+IGhlbHA7Civos7UgPiBnaWZ0Owor6LO0ID4gcmVseTsKK+izpyA+IGZpbmU7Civos6QgPiBtZWFuOwor6LOcID4gZ2l2ZTsKK+izmyA+IGhlbHA7Civos5ogPiBnaXZlOwor6LOOID4gbWVhbjsKK+iyuiA+IGdpdmU7Civoso4gPiBsaW9uOwor6LGtID4gYm9hcjsKK+iuiyA+IGZlYXI7CivorKAgPiBzaW5nOwor6KyUID4gamVlcjsKK+iskCA+IGNhbG07CivorIQgPiBjb3B5Owor6KueID4gYnJhZzsKK+iqpyA+IGh1Z2U7CivoqqEgPiB3YXJuOwor6KqDID4gcGFydDsKK+ipoCA+IHNpbmc7CivoqZ8gPiBmZWFyOwor6KmYID4gYmVuZDsKK+innSA+IGdvcmU7CivoppggPiBwZWVrOwor6KaTID4gc2VlazsKK+iivyA+IGdvd247CivoobkgPiBvbmx5Owor6KGaID4gbGFuZTsKK+ihliA+IGxhbmU7CivooZIgPiBicmFnOwor6KCtID4gYmVlczsKK+igpyA+IG1vdGg7CivooI8gPiBjcmFiOwor6J+HID4gZnJvZzsKK+ieiSA+IHdhc3A7CivonLkgPiBnbmF0Owor6JyFID4gY3JhYjsKK+ibuyA+IG1vbHQ7CivomqEgPiBtb2xlOwor6Jm3ID4gd29ybTsKK+iZpyA+IGxvc2U7CivomZMgPiByb2FyOwor6JiaID4gbW9zczsKK+iYkiA+IFw6MTQzOwor6Je5ID4gbHVzaDsKK+iXnyA+IHZpbmU7Civol4cgPiBmaW5lOwor6JafID4gdmluZTsKK+iWmSA+IHdlZWQ7CivoloEgPiB2aW5lOwor6JWYID4gZnVlbDsKK+iUtCA+IGhlbXA7Civok6sgPiBkb2NrOwor6JGSID4gaGVyYjsKK+iQnCA+IGM1aDg7Civoj74gPiBiZWV0Owor6I67ID4gbGF0ZTsKK+iOtiA+IHZpbmU7CivojpYgPiBzdGVtOwor6I2tID4gaGVyYjsKK+iNmyA+IGZ1ZWw7Civoia0gPiBzaGlwOwor6ImWID4gcmFmdDsKK+iIqSA+IGJvYXQ7Civoh5EgPiBzb2Z0Owor6IeJID4gZmFjZTsKK+iHgSA+IGNhbGY7CivohrcgPiBzb3VwOwor6Ia0ID4gZmluZTsKK+iGoCA+IGdsdWU7CivohbYgPiBtZWF0Owor6IWzID4gZm9vdDsKK+iFkiA+IGdhbWU7CivohY0gPiBzb2Z0Owor6ISyID4gdXJlYTsKK+iDoCA+IG9wZW47Civog48gPiBtZWF0Owor6IOKID4geW9rZTsKK+iCrCA+IHdhcnQ7Civogb4gPiBkZWFmOwor6IG8ID4gaGVhcjsKK+iBtSA+IGRlYWY7CivogK0gPiBwbG93Owor6ICgID4gdGlsbDsKK+iAjiA+IHdlYWs7Civnv7ogPiBzb2FyOwor576tID4gZ29vZDsKK+e+nCA+IGxhbWI7CivnvIsgPiBkcmF3Owor57qaID4gbG9uZzsKK+e6liA+IGZpbmU7CivnupUgPiBiZWx0Owor57qOID4gZmluZTsKK+e6jSA+IGJpbmQ7CivnuocgPiBrbm90Owor57qGID4gY29yZDsKK+e5pCA+IGVkaXQ7CivnuaIgPiBkcmF3Owor57mgID4gaGFuZzsKK+e5mCA+IHJvcGU7CivnuYogPiBmaW5lOwor57mFID4gZHJhdzsKK+e5gyA+IGJpbmQ7CivnuL4gPiBzcGluOwor57izID4gd3JhcDsKK+e4ryA+IGxvbmc7CivnuKIgPiBiaW5kOwor57iaID4gYmFuZDsKK+e4iiA+IGhhbmc7Civnt68gPiB3b29mOwor57ekID4gY29yZDsKK+e3mCA+IHNlYWw7Civnt44gPiBzZWFtOwor57eEID4gY29yZDsKK+e2qyA+IGxpbmU7CivntpEgPiBjb2lsOwor57aNID4gcm9wZTsKK+e2gSA+IGJpbmQ7CivntY8gPiByb3BlOwor57ShID4gc3BpbjsKK+e0hiA+IGJlbmQ7Civns7kgPiBzaWxrOwor57KLID4gcHVyZTsKK+exuSA+IGNha2U7CivnsZkgPiBib29rOwor57GPID4gZmxhZzsKK+exjCA+IGNoaXA7CivnsYogPiBsb25nOwor57C9ID4gc2lnbjsKK+ewhiA+IHJlZWQ7Civnq4UgPiBob2xlOwor56uBID4gYm9yZTsKK+eqviA+IGhvbGU7CivnqrUgPiBkZWVwOwor56qvID4ga2lsbjsKK+eqrSA+IHBvb3I7CivnqqkgPiBuZXN0Owor56m9ID4gaG9sZTsKK+epriA+IHdlZWQ7CivnqaEgPiBmYXJtOwor56mcID4gcmljZTsKK+epkCA+IGZhbGw7CivnqYsgPiByaWNlOwor56mAID4gY29ybjsKK+eomyA+IGJpbmQ7CivnqJEgPiByaWNlOwor56eqID4gb25seTsKK+eniiA+IHllYXI7CivnprggPiBydW1wOwor56axID4gcHJheTsKK+elhyA+IG9ubHk7CivnpKwgPiBhbHVtOwor56SnID4gcm9sbDsKK+ekpiA+IG1pbmU7CivnpKEgPiBmaWxsOwor56OaID4gdGlsZTsKK+egvyA+IG1pbmU7Civnn7sgPiB0b2lsOwor55+ZID4gdmlldzsKK+eeqyA+IGxvb2s7Civnm6QgPiB0cmF5Owor55udID4gZHJpcDsKK+ebjCA+IGJvd2w7CivnmrcgPiBkcnVtOwor55m2ID4gbGVnczsKK+eZriA+IHJhc2g7CivnmaIgPiBpdGNoOwor55mgID4gc2ljazsKK+eYryA+IGl0Y2g7CivnmJ4gPiBidXJ5Owor55iWID4gZHVtYjsKK+eYgiA+IGR1bWI7Civnl68gPiBzaWNrOwor55eMID4gYWNoZTsKK+eWpyA+IHNpY2s7CivnlpggPiBhbnVzOwor55aQID4gZmFsbDsKK+eViiA+IHBsb3c7CivnlYcgPiBsYW5kOwor55WEID4gc3RvcDsKK+eUjCA+IGJvd2w7Civnk5ggPiBqYWRlOwor55OKID4gamFkZTsKK+eNtSA+IGh1bnQ7Civnja4gPiBodW50Owor542nID4gcmFzaDsKK+eNiyA+IHJvYXI7CivnjYUgPiBsaW9uOwor542DID4gZHVsbDsKK+eMnyA+IGh1bnQ7CivnjIsgPiB3aW5kOwor54uYID4ganVtcDsKK+eLgCA+IGZvcm07CivnirIgPiB3b2xmOwor54qiID4gY2FsZjsKK+eKgiA+IHBsb3c7Civnib0gPiBkcmFnOwor54m0ID4gZ29yZTsKK+eJoyA+IGZpbGw7CivniYYgPiB3YWxsOwor54ifID4gZmlyZTsKK+eIliA+IGZpcmU7CivniIcgPiBidXJuOwor54eoID4gZmlyZTsKK+eGhyA+IGJha2U7CivnhZogPiBmaXJlOwor54WWID4gd2FybTsKK+eFkSA+IGNvb2s7CivnhYcgPiB3ZWxkOwor54SuID4gaGVhdDsKK+eEnCA+IGZpcmU7Civng50gPiByaXNlOwor54OUID4gaGVhdDsKK+eDjyA+IGNyb3c7CivngZ0gPiB2YXN0Owor54GYID4gYmFuazsKK+eApiA+IHBvbmQ7Civmv7MgPiBoaWRlOwor5r+UID4gbWFueTsKK+a/iiA+IHZhc3Q7Civmv4ggPiBtYW55Owor5r6SID4gdmFzdDsKK+a9pCA+IHNvZnQ7CivmvZsgPiBoaWRlOwor5r2RID4gcG91cjsKK+a9hSA+IHBvdXI7CivmvLAgPiByb2FyOwor5rytID4gdmFzdDsKK+a8miA+IHNvYWs7CivmvJkgPiBkZXd5Owor5ryYID4gYmFuazsKK+a7viA+IHR1cm47Civmu7ogPiBmbG93Owor5ruuID4gZmxvdzsKK+a7jCA+IHdhc2g7Civmu4kgPiBkZWVwOwor5ruEID4gYmx1ZTsKK+a6vCA+IGRhbXA7CivmubsgPiBwdXJlOwor5rmyID4gZmxvdzsKK+a5nSA+IGZsb3c7Civmt7AgPiBmaXNoOwor5reoID4gcHVyZTsKK+a2tCA+IGRhdWI7CivmtoogPiBkaXJ0Owor5rOZID4gcm9hcjsKK+ayrCA+IGR1c2s7CivmspUgPiBkZWVwOwor5rGNID4gd2VlcDsKK+awnSA+IG5lb247CivmsIogPiBmZWx0Owor5rCEID4gZG93bjsKK+awgiA+IHRhaWw7CivmrbIgPiB5ZWFyOwor5q2XID4gcm9hcjsKK+atiiA+IHNpZ2g7CivmrJAgPiBiZWFtOwor5quzID4gY2FnZTsKK+armiA+IHBhbG07CivmqrQgPiB0cmVlOwor5qqNID4gaWxleDsKK+appiA+IHRyZWU7CivmqYEgPiB0cmVlOwor5qe5ID4gc3BhcjsKK+angyA+IHRyYXk7CivmpbAgPiB0cmVlOwor5qWpID4gdHJlZTsKK+alnyA+IHRyZWU7CivmpZggPiBiYW5kOwor5qS4ID4gcmFjazsKK+akkSA+IG92YWw7Civmo6wgPiBib3dsOwor5qOqID4gdHJlZTsKK+ajkSA+IHJhZnQ7CivmorQgPiBsb25nOwor5qG/ID4gcG9sZTsKK+ahuSA+IHBhbG07CivmoYsgPiB0cmVlOwor5qC7ID4gdHJlZTsKK+afoyA+IHNpbGw7Civmn4IgPiBoZWxtOwor5p60ID4gY2FuZTsKK+adnSA+IHRyZWU7CivmnZcgPiBiZWFtOwor5py/ID4gc3RhYjsKK+acsyA+IHRyZWU7CivmnJggPiB3YW5lOwor5puJID4gZGF3bjsKK+aZsyA+IGZhaXI7CivmmLsgPiByaXNlOwor5pisID4gZHVzazsKK+aYqyA+IHdhcm07Civml7kgPiB0aW1lOwor5pe0ID4gZGF3bjsKK+aXnCA+IGZsYWc7Civml4IgPiBmbGFnOwor5pW/ID4gYmluZDsKK+aVvSA+IGJpbmQ7CivmlbsgPiBsb25nOwor5pSiID4gc2F2ZTsKK+aUhSA+IHNhdmU7Civmk6sgPiB0dWNrOwor5pOjID4gaHVsbDsKK+aSuyA+IGZsb2c7CivmkqUgPiBtb3ZlOwor5pKdID4gd2F2ZTsKK+aRsiA+IHJhemU7CivmkaYgPiB3aWRlOwor5pClID4gYmVhdDsKK+aQmCA+IHByb3A7CivmkJcgPiBodWxsOwor5pCSID4gcG9sZTsKK+aQjCA+IGJpbmQ7CivmkIYgPiBwdWxsOwor5o6eID4gZWFzeTsKK+aOlyA+IHRha2U7CivmjZggPiBwdXNoOwor5o2EID4gbG9uZzsKK+aMkCA+IGRyYWc7Civmi48gPiB0YWtlOwor5oq2ID4gYmVhdDsKK+aKhiA+IHdpcGU7CivmiLYgPiBkb29yOwor5oiBID4gZmVhcjsKK+aHtiA+IGxhenk7Civmh64gPiBjYWxtOwor5oefID4gaGF0ZTsKK+aHnCA+IGR1bGw7CivmhrAgPiB3aWx5Owor5oarID4gcGl0eTsKK+aGmSA+IGxpa2U7CivmhpggPiBsaWtlOwor5oaHID4gcmVzdDsKK+aFtCA+IGZlYXI7CivmhYIgPiB1cmdlOwor5oSSID4gcmVzdDsKK+aBhyA+IGZlYXI7CivmgLMgPiB3aWxkOwor5oCtID4gcnVkZTsKK+aAmiA+IGR1bGw7CivlvaEgPiBoYWlyOwor5b2OID4gYmVuZDsKK+W7vCA+IHRoZW47Civlu7MgPiBoYWxsOwor5buwID4gaGFsbDsKK+W7pyA+IHdhbGw7Civlu44gPiByb29tOwor5bmvID4gd2lwZTsKK+W5pCA+IGV2aWw7CivluZ8gPiBmbGFnOwor5bmaID4gaGVscDsKK+W5iyA+IGJlbHQ7CivluYcgPiBoZWxwOwor5bifID4gdGVudDsKK+W2uCA+IGhpZ2g7CivltoQgPiBoaWdoOwor5bWzID4gaGlnaDsKK+W0oiA+IGhpZ2g7Civls68gPiBwZWFrOwor5bOHID4gY2F2ZTsKK+WypyA+IHBlYWs7CivlsYcgPiBjYXZlOwor5bCyID4gbGltcDsKK+WwqyA+IGxhbWU7CivlsKogPiBsYW1lOwor5bCpID4gd2VhazsKK+WwoyA+IGxhbWU7CivlsIcgPiB3aWxsOwor5a+gID4gcG9vcjsKK+WvlCA+IHJlYWw7CivlrbsgPiBsYXN0Owor5ay+ID4gbGF6eTsKK+WssCA+IGJhYnk7CivlrK0gPiBtaWxrOwor5ayZID4gbGFkeTsKK+WriCA+IGxhZHk7CivlqoogPiBzdGFyOwor5ameID4gaGF0ZTsKK+WpkCA+IG1haWQ7CivlqLggPiB1Z2x5Owor5ai1ID4gc3RhcjsKK+WnvSA+IGdvb2Q7Civlp64gPiBsYWR5Owor5aekID4gbWF0ZTsKK+WkmyA+IG11Y2g7CivlpJAgPiBsb25nOwor5aOZID4gdG9tYjsKK+WjkiA+IGR1c3Q7Civlo4wgPiBzb2lsOwor5aK7ID4gd2FsbDsKK+WipiA+IHRvbWI7CivlobkgPiBtb2F0Owor5aCyID4gaGF0ZTsKK+WgqCA+IGRhdWI7CivloIsgPiBidXJ5Owor5Z+wID4gZmllZjsKK+WfiCA+IGhpZ2g7CivlnpwgPiBoZWFwOwor5Z2xID4gZHVzdDsKK+WdiyA+IGR1c3Q7Civlm6UgPiBoaWRlOwor5ZuTID4gZ25hdzsKK+WbgCA+IHNpbmc7CivlmqQgPiBzbG93Owor5ZqZID4gYml0ZTsKK+WahCA+IHJvYXI7CivlmbMgPiBtYW55Owor5ZmdID4gaGlzczsKK+WZiSA+IGJpdGU7CivlmL0gPiBwYW50Owor5ZivID4gcm9hcjsKK+WYriA+IGNoYXQ7CivlmKggPiByb2FyOwor5ZicID4gbWFyazsKK+WXsCA+IHRoYXQ7Civll4ogPiBzaW5nOwor5ZasID4gdGFsbDsKK+WWqCA+IHdhaWw7CivllZ8gPiBvcGVuOwor5ZWeID4gZHVtYjsKK+WVmSA+IHBvb3I7CivllZMgPiBvcGVuOwor5ZWAID4gZ25hdzsKK+WUtiA+IHNpZ2g7CivllJsgPiBtYXJrOwor5ZK8ID4gY2hhdDsKK+WStyA+IGhvd2w7Civlkq4gPiBiZWFrOwor5ZGZID4gY2hhdDsKK+WRjiA+IGZvb3Q7CivlkYcgPiBzdGFyOwor5ZC/ID4gdGVsbDsKK+WQvSA+ICcnb20nJzsKK+WQqiA+IG1vdmU7CivlkIsgPiBpbmNoOwor5Y6UID4gc3RvcDsKK+WNgCA+IGFyZWE7CivljLUgPiBjYXNlOwor5Yu5ID4gd3JhcDsKK+WJuiA+IG1hcms7CivliZ0gPiBwZWVsOwor5YmaID4gc3RhYjsKK+WIviA+IHN0YWI7CivliJwgPiBjaG9wOwor5YiTID4gdHJpbTsKK+WHriA+IHdpbmQ7Civlh6ogPiBjYWxtOwor5YeoID4gd2luZDsKK+WHpyA+IGtpdGU7Civlh5ogPiBjb2xkOwor5YeWID4gcnVsZTsKK+WHlCA+IGNvbGQ7CivlhpAgPiByaXNrOwor5YaCID4gd2lkZTsKK+WFjCA+IGNhc2g7CivlhL4gPiBzbG93Owor5YS9ID4gbGF6eTsKK+WEuiA+IHJpY2g7CivlhLEgPiBydWRlOwor5YScID4gd2VhazsKK+WEhSA+IHN0b3A7Civlg74gPiBsaWtlOwor5YOoID4gcnVpbjsKK+WCtSA+IGRlYnQ7Civlgq0gPiBoaXJlOwor5YGEID4gd2VhazsKK+WAvSA+IHdoYXQ7Civkv7QgPiB0aGluOwor5L+UID4gbGlrZTsKK+S+oiA+IGxvYWQ7CivkvpwgPiBsaWVzOwor5L6aID4gZmFzdDsKK+S+gCA+IGZvcm07CivkvbggPiBtZWV0Owor5Ly5ID4gZHVsbDsKK+S8sSA+IHRob3U7Civku7ggPiBiZW50Owor5LqgID4gaGVhZDsKK+S6nSA+IGV2ZW47CivkupwgPiBhc2lhOwor5LqWID4gZm91cjsKK+S6hSA+IGhvb2s7CivkubwgPiByb3BlOwor5LmtID4gcm9jazsKK+S4syA+IHNwaXQ7CivkuKAgPiBoaWxsOwor5LW3ID4gZnJvZzsKK+S1qCA+IGRhcms7CivktZIgPiBnbHVlOwor5LWRID4gZ2x1ZTsKK+S0uCA+IGJyYW47CivktJ0gPiBzYWx0Owor5LScID4gc2FsdDsKK+S0gyA+IHdyZW47Civks7wgPiBndWxsOwor5LOmID4gd3JlbjsKK+SzoyA+IGtpdGU7Civksq0gPiBraXRlOwor5LKSID4gY3JhYjsKK+SxtCA+IHR1bmE7Civksa0gPiB0dW5hOwor5LGOID4gdHVuYTsKK+SxjSA+IHR1bmE7CivksKkgPiB1Z2x5Owor5LCmID4gdWdseTsKK+SwpCA+IHVnbHk7CivksJUgPiBtYW5lOwor5LCTID4gaGFpcjsKK+SwiyA+IGhhaXI7CivksIogPiBoYWlyOwor5LCHID4gbWFuZTsKK+SvuSA+IGhhaXI7Civkr58gPiBib25lOwor5K+eID4gYm9uZTsKK+SvlSA+IGJvbnk7Civkrr8gPiBsYW1lOwor5K6+ID4gaHVnZTsKK+StoiA+IHJpY2g7CivkraEgPiBmb29kOwor5K2TID4gZm9vZDsKK+StgiA+IGRhbXA7CivkrYAgPiBmb29kOwor5KyeID4gd2luZDsKK+SsjyA+IHdpbmQ7Civkq7YgPiB1Z2x5Owor5KuqID4gdWdseTsKK+SroiA+IGdvb2Q7Civkq5EgPiBnb29kOwor5KuPID4gdWdseTsKK+SriiA+IGNoaW47Civkq4ggPiB1Z2x5Owor5KuCID4gdWdseTsKK+SqpiA+IGxvdWQ7Civkqo8gPiB3ZWFrOwor5KqGID4gc29mdDsKK+SosCA+IHJhaW47CivkqK4gPiBzbm93Owor5KikID4gcmFpbjsKK+SolCA+IGhhaWw7CivkqIwgPiBoYWlsOwor5Ke7ID4gZG92ZTsKK+SnuSA+IGhhd2s7CivkprAgPiBsb3RzOwor5KWrID4gaXJvbjsKK+SllCA+IGdvbGQ7CivkpZIgPiBsZWFkOwor5KSuID4gaXJvbjsKK+SkoSA+IGlyb247CivkpJEgPiB3aW5lOwor5KSKID4gd2luZTsKK+SjvSA+IHdpbmU7Civko6ggPiByaWNoOwor5KGzID4gY2FydDsKK+ShgCA+IG51ZGU7CivkoK0gPiBsYW1lOwor5KCXID4gbGFtZTsKK+SgjyA+IGZlZXQ7Civkn6ggPiBsYW1lOwor5J+CID4gc2xvdzsKK+SevyA+IGxhbWU7CivknqkgPiBsYW1lOwor5J6dID4gbGFtZTsKK+SehiA+IGJvbmU7CivknZggPiBmaXJtOwor5J2VID4gZ29vZDsKK+SbtCA+IGpva2U7Civkmr0gPiBuZXdzOwor5Jq4ID4gZ29vZDsKK+SaqSA+IGhpZ2g7CivkmqIgPiBob3JuOwor5JmkID4gZ29vZDsKK+SZiiA+IGFyaWQ7Civkl6kgPiB0b2FkOwor5JeiID4gZmxlYTsKK+SWuCA+IG1vdGg7Civklq0gPiBncnViOwor5JaqID4gZ3J1YjsKK+SWoyA+IGZsZWE7CivklaIgPiB3ZWFrOwor5JSsID4gaGVtcDsKK+STviA+IGx1c2g7Civkk7ggPiB3ZWVkOwor5JOyID4gZmluZTsKK+SSuiA+IGNsYXk7Civkkq0gPiByYW5rOwor5JGsID4gYm9hdDsKK+SRniA+IHNodW47CivkkY8gPiB1Z2x5Owor5JGEID4gcmljaDsKK+SQsyA+IGZpc2g7CivkkK4gPiBza2luOwor5JCTID4gc29mdDsKK+SQiyA+IHNpY2s7Civkj7ggPiBmaXNoOwor5I+xID4gYm9keTsKK+SPoiA+IG1lYXQ7Civkj44gPiBtaWxrOwor5I+KID4gZGVhZjsKK+SOnCA+IGFnZWQ7CivkjZogPiB2YXN0Owor5IypID4gZmluZTsKK+SMnSA+IHNpbGs7CivkjJMgPiBtYW55Owor5IySID4gcHVyZTsKK+SMjCA+IGxhY2U7Civki7wgPiBzbG93Owor5IuWID4gbG9uZzsKK+SKpiA+IGZvb2Q7Civkh6kgPiBsb25nOwor5IatID4gY2F2ZTsKK+SGqSA+IGRhcms7CivkhqYgPiBkZWVwOwor5ISpID4gYnJhbjsKK+SCgyA+IGRhcms7CivkgakgPiBmaXNoOwor5IGGID4gZXllczsKK+SBhSA+IHJhZ2U7CivkgL4gPiBtYW55Owor5ICcID4gZG93bjsKK+SAiyA+IHNhbHQ7CivkgIAgPiBjdXBzOwor47+ZID4gZnVsbDsKK+O/jiA+IHNpY2s7CivjvrkgPiBsZWFuOwor476qID4gbGVhbjsKK+O+qCA+IHdlYWs7CivjvpsgPiB1Z2x5Owor476KID4gdGhpbjsKK+O+iSA+IHRoaW47CivjuqUgPiBiYXJrOwor47mSID4gYnVsbDsKK+O5jyA+IGdvb2Q7CivjuY4gPiBidWxsOwor47mNID4gYnVsbDsKK+O4uCA+IGNhbGY7CivjuK4gPiBidWxsOwor47iOID4gd2FybTsKK+O3tSA+IGZpcmU7Civjt7QgPiBmaXJlOwor47esID4gZmlyZTsKK+O3mCA+IGNvYWw7Civjt5AgPiBmaXJlOwor47eEID4gZmlyZTsKK+O2uSA+IGZpcmU7Civjtq8gPiBmaXJlOwor47aoID4gZmlyZTsKK+O2pyA+IHdhcm07Civjtb4gPiBjb2xkOwor47W2ID4gZnVsbDsKK+O1qSA+IG1hbnk7CivjtZkgPiBwdXJlOwor47WWID4gZGFtcDsKK+O0tCA+IHNpbms7CivjtLEgPiBkZWVwOwor47SdID4gbWFueTsKK+O0myA+IGRhbXA7CivjtJcgPiBkZWVwOwor47SAID4gZGVlcDsKK+OzpCA+IGdvb2Q7Civjsr4gPiByYWluOwor47K7ID4gc3VuazsKK+OytCA+IG1pbmQ7Civjsp8gPiBoYWlyOwor47KcID4gcnVnczsKK+OykyA+IGZpbmU7CivjsbQgPiBzaWNrOwor47GLID4gaGlnaDsKK+OxhyA+IGZlYXI7CivjsKsgPiBnbGFkOwor47ChID4gcmFzaDsKK+OwnyA+IGhvcGU7CivjsJkgPiB3ZWFrOwor47CQID4gb3ZhbDsKK+OuuiA+IHN0ZW07CivjrqQgPiBwaW5lOwor466SID4gd29vZDsKK+OtvSA+IHJvb3Q7CivjrJggPiBhcmlkOwor46yJID4gd2FybTsKK+OshSA+IGxvbmc7Civjq7IgPiBkYXJrOwor46uxID4gbWlsZDsKK+OrpSA+IGRhcms7Civjq44gPiBtYXJrOwor46uEID4gc2lkZTsKK+OpvCA+IG1hbnk7CivvqKUgPiBmbGVlOwor76iFID4gY2F2ZTsKK++nvyA+IHN0YWI7Civvp7ogPiBmb3JtOwor76e1ID4gZHJpcDsKK+OnriA+IGhpZ2g7Civvp6sgPiBoaWRlOwor46eoID4gc2xvdzsKK++noiA+IHBlYXI7Civvp6EgPiBwbHVtOwor76eTID4gbGFuZDsKK++nkiA+IGtpbGw7Civvp48gPiBrbm90Owor76eNID4gc3RvcDsKK++niiA+IGZsb3c7CivvprkgPiBldmlsOwor76a0ID4gbmVjazsKK++msiA+IHplcm87CivvprEgPiBiZWxsOwor76asID4gcGl0eTsKK++mpyA+IGh1bnQ7CivjpqggPiBsYXp5Owor46aiID4gcHVyZTsKK++mmiA+IGpvaW47CivvppUgPiB5ZWFyOwor76aQID4gbG92ZTsKK++mjyA+IHBpdHk7Civvpo4gPiB5ZWFyOwor46aPID4gd2VhazsKK++mgyA+IHRyaXA7CivvpbwgPiBnb29kOwor76W7ID4gZm9vZDsKK++luSA+IGNvb2w7CivvpbIgPiBzaW5rOwor76WwID4ga2lsbDsKK++lriA+IGxlYWY7CivjpawgPiBmZWFyOwor46WpID4gaWRsZTsKK+OloSA+IGlkbGU7CivvpZsgPiB0YWtlOwor76WaID4gcmVhZDsKK++lmSA+IGhpbGw7CivvpZUgPiBwdXJlOwor76WTID4gcmliczsKK++ljiA+IGxlYWs7CivvpYUgPiBkZWFmOwor76WEID4gY2FnZTsKK++lgCA+IGRlZXI7CivvpL8gPiBjb3B5Owor76S3ID4gcm9hZDsKK++kriA+IGNvbGQ7CivvpK0gPiBjb21lOwor76SrID4gd29sZjsKK++kqiA+IHdhdmU7CivvpKUgPiBwdWxsOwor76SjID4gYmx1ZTsKK+OknyA+IGZlYXI7CivvpJggPiBmYWxsOwor76SSID4gYmFyZTsKK++kjSA+IGxhenk7CivvpIsgPiBob3JuOwor76SKID4gZ29sZDsKK++kiSA+IGRlZWQ7CivjpIkgPiBmZWFyOwor76SEID4gc2xpcDsKK++kgiA+IGNhcnQ7CivvpIEgPiBtb3JlOwor46OOID4gZmluZTsKK+OinCA+IHZhc3Q7CivjopggPiBwdXJlOwor46KUID4gbWFueTsKK+OijiA+IGhpZGU7CivjoosgPiB2YXN0Owor46KDID4gaGlnaDsKK+OigSA+IHZhc3Q7CivjoaYgPiBtZXNzOwor46C7ID4gcmFyZTsKK+OgqSA+IHZhc3Q7CivjoIwgPiBoaWdoOwor456xID4gZHVzazsKK+OeliA+IHRoaXM7CivjnoQgPiBsYW1lOwor452/ID4gbGFtZTsKK+OdoSA+IHZlcnk7CivjnaAgPiBkYXJrOwor452dID4gZGVlcDsKK+OdkSA+IHNpZGU7CivjnZAgPiBmYWNlOwor452IID4gdHdpbjsKK+OdhCA+IHB1cmU7CivjnLcgPiBtaWxrOwor45ybID4gc29mdDsKK+OcgyA+IGZyb207Civjm6YgPiBnb29kOwor45qnID4gYWdpbDsKK+OajSA+IG11Y2g7CivjmosgPiBtdWNoOwor45qKID4gbXVjaDsKK+OagiA+IGR1c3Q7CivjmaogPiBkYXJrOwor45mgID4gZHVzdDsKK+OZkiA+IHdpbGQ7CivjmYIgPiB3YWxsOwor45mBID4gZHVzdDsKK+OYqCA+IGRlZXA7CivjmJAgPiBsb3VkOwor45eIID4gbG9uZzsKK+OVpiA+IGxvdWQ7CivjlIQgPiB0aGluOwor45ORID4gY29sZDsKK+OTjiA+IGNvbGQ7Civjk4ogPiBjb2xkOwor45KaID4gZmlybTsKK+OSjiA+IGV2aWw7Civjkb8gPiBsb25nOwor45G1ID4gZW52eTsKK+ORmiA+IHRoYXQ7CivjkYwgPiB3ZWFrOwor45GIID4gcnVkZTsKK+OQoSA+IHdlYWs7CivjkIUgPiBmaXZlOwor5LiAID4gb25lOwor5Lq6ID4gbWFuOwor5oiRID4gb3VyOwor5aSnID4gYmlnOwor5LiKID4gdG9wOwor5L2gID4geW91Owor5Y+vID4gbWF5Owor5aW5ID4gc2hlOwor5aSpID4gc2t5Owor6ICMID4gYW5kOwor54S2ID4geWVzOwor5rKhID4gbm90Owor5pelID4gc3VuOwor5b2pID4gaHVlOwor5Y2BID4gdGVuOwor55SoID4gdXNlOwor55y8ID4gZXllOwor5Y+IID4gYW5kOwor6KeBID4gc2VlOwor6ICBID4gb2xkOwor5LikID4gdHdvOwor5aSWID4gb3V0Owor5LiOID4gYW5kOwor5rOVID4gbGF3Owor55uuID4gZXllOwor5LqMID4gdHdvOwor54K5ID4gZG90Owor55ucID4gcm9iOwor5YW2ID4gaGlzOwor55uXID4gcm9iOwor5YS/ID4gc29uOwor5pawID4gbmV3Owor5bqKID4gYmVkOwor55qGID4gYWxsOwor5rW3ID4gc2VhOwor5bCRID4gZmV3Owor5bi9ID4gaGF0Owor5Y+rID4gY3J5Owor5q27ID4gZGllOwor5pS+ID4gcHV0Owor5LuKID4gbm93Owor6LWkID4gcmVkOwor55WiID4gZW5kOwor5oiYID4gd2FyOwor6LO8ID4gYnV5Owor55O2ID4ganVnOwor6K+3ID4gYXNrOwor5LqkID4gbWl4Owor5ZCDID4gZWF0Owor6LK3ID4gYnV5Owor6Z2eID4gbm90Owor5aSrID4gbWFuOwor57qiID4gcmVkOwor6L+QID4gcnVuOwor5a+lID4gZmV3Owor572RID4gbmV0Owor6aOeID4gZmx5Owor6KeCID4gc2VlOwor54y/ID4gYXBlOwor54yrID4gY2F0Owor54yqID4gcGlnOwor5Z2QID4gc2l0Owor6KyCID4gc2F5Owor54uXID4gZG9nOwor6KuLID4gYXNrOwor57uIID4gZW5kOwor5YiHID4gY3V0Owor54qsID4gZG9nOwor6KqkID4gZXJyOwor5bCUID4geW91Owor54OtID4gaG90Owor5Y+kID4gb2xkOwor54mbID4gY293Owor54mAID4gYmVkOwor6KeAID4gc2VlOwor5L2OID4gbG93Owor6KazID4gc2VlOwor54axID4gaG90Owor5LuNID4geWV0Owor6KaLID4gc2VlOwor6ISaID4gbGVnOwor5LqRID4gc2F5Owor5LmwID4gYnV5Owor5aWIID4gYnV0Owor5o6SID4gcm93Owor5aOvID4gYmlnOwor5aOeID4gYmFkOwor5aOKID4gYmFkOwor5rm+ID4gYmF5Owor5aKoID4gaW5rOwor5ZCmID4gbm90Owor6aOfID4gZWF0Owor6KGTID4gYXJ0Owor5r+YID4gbXVkOwor5r+VID4gd2V0Owor6ZyyID4gZGV3Owor6b2iID4gYWdlOwor6b2hID4gYWdlOwor6J2ZID4gYmF0Owor6J2LID4gd2F4Owor6bygID4gcmF0Owor6LeRID4gcnVuOwor6JyCID4gYmVlOwor6Im6ID4gYXJ0Owor6bueID4gZG90Owor5pGHID4gd2FnOwor6aG2ID4gdG9wOwor5rm/ID4gd2V0Owor56uvID4gZW5kOwor5penID4gb2xkOwor5rK5ID4gb2lsOwor6JedID4gYXJ0Owor5q+VID4gZW5kOwor6JeJID4gbWF0Owor5rayID4gc2FwOwor6JavID4geWFtOwor6ICzID4gZWFyOwor5ZaLID4gbmFnOwor5ZWcID4gc2lwOwor5ZWPID4gYXNrOwor5rOlID4gbXVkOwor5rOjID4gY3J5Owor5ZOAID4gc2FkOwor5YawID4gaWNlOwor6K+vID4gZXJyOwor5YehID4gYWxsOwor5rGdID4geW91Owor6LCTID4gc2F5Owor5p2vID4gY3VwOwor5rC3ID4gaWNlOwor5rCjID4gYWlyOwor5rCXID4gYWlyOwor6JCMID4gYnVkOwor6LStID4gYnV5Owor6YCUID4gd2F5Owor5pGGID4gcHV0Owor5YW4ID4gbGF3Owor6Iy2ID4gdGVhOwor5Y21ID4gZWdnOwor5pKtID4gc293Owor6IeCID4gYXJtOwor5qy3ID4gc29iOwor5YyaID4gYm94Owor5pGpID4gcnViOwor6aSQID4gZWF0Owor5YagID4gY2FwOwor6Iq9ID4gYnVkOwor6Iq4ID4gcnVlOwor5YqjID4gYmFkOwor5Ym9ID4gcm9iOwor5YmyID4gY3V0Owor57yYID4gaGVtOwor5L+pID4gdHdvOwor5aOuID4gYmlnOwor5b+nID4gc2FkOwor6IiKID4gb2xkOwor6IiHID4gYW5kOwor6b6EID4gYWdlOwor5oOoID4gc2FkOwor6IW+ID4gZmx5Owor5p+TID4gZHllOwor6Ia/ID4gcHVzOwor5qa7ID4gY290Owor5YaGID4geWVuOwor5YWpID4gdHdvOwor5YWSID4gc29uOwor6IWQID4gcm90Owor5YWQID4gc29uOwor6ISCID4gZmF0Owor6aObID4gZmx5Owor6IKlID4gZmF0Owor5o+0ID4gYWlkOwor6IOWID4gZmF0Owor5ZO8ID4gaHVtOwor5YG1ID4gc3B5Owor6aGbID4gdG9wOwor6aGOID4gamF3Owor5YC2ID4gYWxsOwor6aCCID4gdG9wOwor572QID4gamFyOwor5o23ID4gd2luOwor6ZynID4gZm9nOwor5Lm+ID4gZHJ5Owor5L+xID4gYWxsOwor6LWiID4gd2luOwor57ydID4gc2V3Owor5oqaID4gcGF0Owor5oyWID4gZGlnOwor5pudID4gc3VuOwor6Zu+ID4gZm9nOwor5pqRID4gaG90Owor6aKgID4gdG9wOwor5omHID4gZmFuOwor5puwID4gc2F5Owor5LmeID4gYmVnOwor6LWMID4gYmV0Owor57irID4gc2V3Owor5LihID4gdHdvOwor5qygID4gb3dlOwor5rCbID4gZ2FzOwor57iBID4gaGVtOwor57egID4gdGllOwor5byXID4gbm90Owor57ayID4gbmV0Owor5pasID4gY3V0Owor57W2ID4gY3V0Owor6L6fID4gbGF3Owor57WCID4gZW5kOwor6KWEID4gYWlkOwor54KSID4gZnJ5Owor6ZShID4gdGluOwor57SFID4gcmVkOwor5pKrID4gcGF0Owor6ZG1ID4gamFyOwor5Z2RID4gcGl0Owor5pCWID4gd2FnOwor5o+6ID4gd2FnOwor5pKVID4gcmlwOwor5o+JID4gcnViOwor56OVID4gaGl0Owor5papID4gY3V0Owor5o6gID4gcm9iOwor5o6YID4gZGlnOwor6LCOID4gbGllOwor6YqcID4gYml0Owor6LWLID4gdGF4Owor5ZuKID4gYmFnOwor5oiwID4gd2FyOwor5oimID4gd2FyOwor5oaCID4gc2FkOwor5pCCID4gaHVnOwor5oWYID4gc2FkOwor5L6mID4gc3B5Owor5aO2ID4gamFyOwor5byTID4gYm93Owor6JyhID4gd2F4Owor5bqQID4gaHV0Owor5q25ID4gYmFkOwor5oOfID4gYnV0Owor6KGUID4gYml0Owor5Z2OID4gcGl0Owor5YW5ID4gbm93Owor5q+vID4gcnVnOwor6ZKlID4ga2V5Owor5panID4gYXhlOwor6LWOID4gYnV5Owor5b2kID4gcmVkOwor54elID4gZHJ5Owor5L2sID4gbWFuOwor556FID4gc2VlOwor6LmmID4gaG9wOwor6ZyEID4gc2t5Owor57+pID4gZmx5Owor5pqoID4gYW5kOwor6L+iID4gZmFyOwor57yUID4gdGllOwor6KSaID4gYmFnOwor6JqCID4gYW50Owor5o+NID4gaGl0Owor5pOCID4gcnViOwor6ZSEID4gaG9lOwor5o2FID4gamFiOwor6Z6gID4gYm93Owor6aqwID4gZGllOwor6LiJID4gaG9wOwor5qGoID4gb2FyOwor5ouMID4gbWl4Owor54u4ID4gZm94Owor54CbID4gc2VhOwor5ZmpID4gYmFkOwor6JOTID4gYnVkOwor56qWID4gcGl0Owor5o66ID4gbWl4Owor54yWID4gbWFkOwor6La+ID4gdG9lOwor6Ji4ID4gZGlwOwor5rekID4gbXVkOwor55CmID4gZ2VtOwor6ISTID4gcHVzOwor55W4ID4gb2RkOwor55uOID4gY3VwOwor6IyXID4gdGVhOwor6IOlID4gYWxsOwor5oCGID4gc2FkOwor5rOeID4gbXVkOwor5YmQID4gY3V0Owor6IiAID4gZGlwOwor5Z2vID4gZGFtOwor5aCwID4gZGFtOwor5bm6ID4gb25lOwor54mvID4gY293Owor5by8ID4gYWlkOwor6bOdID4gZWVsOwor5parID4gY3V0Owor5oCpID4gc2h5Owor5rqlID4gYmlnOwor5qm5ID4gb2FyOwor6bugID4gc2x5Owor57uMID4gc2V3Owor5YmcID4gY3V0Owor572UID4gbmV0Owor6aKaID4gamF3Owor5ZS/ID4gc2FkOwor6ICoID4gaG9lOwor6IaYID4gZmF0Owor6ZWzID4gYml0Owor6IW0ID4gZmF0Owor54uvID4gc2x5Owor6ZWiID4gaG9lOwor6KOoID4gYWlkOwor6ZSbID4gYWR6Owor5Zu1ID4gYWxsOwor6YKIID4gZmFyOwor5q6SID4gZGllOwor5ZWWID4gZWF0Owor6bqLID4gZWxrOwor6bONID4gZmluOwor5YiNID4gbW93Owor5L6XID4gYmlnOwor5qWrID4gb2FyOwor54yhID4gcGlnOwor5p+eID4gb2FrOwor5L2lID4gYWxsOwor6bOXID4gZWVsOwor6Z6jID4gdGFuOwor5qO5ID4gb2FyOwor6ZmCID4gZGFtOwor5q6BID4gZGllOwor6KeaID4ganVnOwor6IesID4gbGF3Owor54yDID4gZG9nOwor5a+kID4gZmV3Owor5YOWID4gam95Owor54qtID4gZG9nOwor576dID4gcmFtOwor6LKUID4gZm94Owor6KeMID4gc2VlOwor5qegID4gb2FrOwor5rq7ID4gd2V0Owor6IqfID4gbW93Owor5L+jID4gYmlnOwor55O/ID4gamFyOwor6YCWID4gZmFyOwor5ZOcID4gc2lwOwor6ZqwID4gbG93Owor6bKhID4gZWVsOwor5q+5ID4gcnVnOwor5q6qID4gZGllOwor57yPID4gaGVtOwor6aWjID4gZWF0Owor5Z+kID4gYWRkOwor5Z2tID4gbXVkOwor6b6lID4gYmVnOwor6b2jID4gYWN0Owor6byhID4gcmF0Owor6buVID4gcmVkOwor6bmLID4gZW11Owor6bSeID4gb3dsOwor6bKVID4gcm9lOwor6bG6ID4gZWVsOwor6bGUID4gZWVsOwor6bGTID4gZWVsOwor6bC7ID4gZWVsOwor6bCtID4gZmluOwor6a6eID4gcm9lOwor6ay3ID4gcG90Owor6ay0ID4gcG90Owor6ayGID4gbGF4Owor6auiID4gd2lnOwor6aq9ID4gbGVnOwor6ai1ID4gYmF5Owor6aizID4gcnVuOwor6aiwID4gZmx5Owor6aiiID4gYmF5Owor6aiCID4gcmVkOwor6aeJID4gYmlnOwor6aSUID4gZWF0Owor6aOgID4gZWF0Owor6aGaID4gdG9wOwor6aCzID4gcmVkOwor6aCrID4gYm93Owor6Z+WID4gdGFuOwor6Z+OID4gcmVkOwor6ZisID4gcGl0Owor6ZGwID4ga2V5Owor6ZGvID4gYXdsOwor6ZGjID4gYml0Owor6ZCPID4gY2FwOwor6Y+aID4gYXhlOwor6Y6hID4gaG9lOwor6Y2+ID4gY3VwOwor6YyrID4gdGluOwor6YykID4gaG9lOwor6YybID4gYWR6Owor6YyUID4gY2FwOwor6YukID4gaG9lOwor6YmPID4gaG9lOwor6YGJID4gc3B5Owor6L2RID4gcnV0Owor6Li2ID4gcGF3Owor6LemID4gaG9wOwor6LSWID4gYnV5Owor6LSPID4gd2luOwor6LOtID4gYmV0Owor6LOmID4gdGF4Owor6LKcID4gYXBlOwor6LKTID4gY2F0Owor6LG8ID4gZm94Owor6LG3ID4gbWFuOwor6LGsID4gcGlnOwor6LGoID4gcGlnOwor6LGdID4gc293Owor6KyKID4gbGllOwor6Ka/ID4gc2VlOwor6KapID4gc2VlOwor6KaMID4gc2VlOwor6KOAID4gbWF0Owor6KGcID4gd2F5Owor6KCuID4gYmVlOwor6KCfID4gd2F4Owor6J6eID4gYW50Owor6J6YID4gYW50Owor6J2vID4gYXBlOwor6JyRID4gZWdnOwor6Je3ID4geWFtOwor6JW3ID4geWFtOwor6JWTID4gcnVlOwor6JSLID4gZHJ5Owor6JO6ID4gYXJ0Owor6JOjID4geWFtOwor6JK0ID4gcG9kOwor6JGEID4gbWF0Owor6JCgID4gYnVkOwor6IyyID4gbm93Owor6Iq7ID4gbW93Owor6ImqID4gb2FyOwor6IeVID4gZmF0Owor6IeHID4gZmF0Owor6IafID4gZmF0Owor6IaLID4gZmF0Owor6IaDID4gZmF0Owor6IKtID4gZmF0Owor6IKAID4gcGVuOwor6IChID4gaG9lOwor57++ID4gZmx5Owor57+DID4gZmx5Owor576YID4gcmFtOwor576HID4gaW5uOwor5727ID4gbmV0Owor572mID4gbmV0Owor572fID4gbmV0Owor572GID4gamFyOwor57y+ID4gamFyOwor57e2ID4gaGVtOwor57e1ID4gbmV0Owor57ewID4gbmV0Owor57ejID4gaGVtOwor57WVID4gY3V0Owor57WAID4gc2V3Owor57SuID4gdGllOwor57GlID4ga2V5Owor566RID4gZmFuOwor56qeID4gcGl0Owor56qMID4gcGl0Owor56qKID4gcGl0Owor56qFID4gZmFyOwor56CyID4gZ3VuOwor5562ID4gZGltOwor552KID4gc2VlOwor55ybID4gZGltOwor55mZID4gaWxsOwor55ioID4gbWFkOwor55iPID4gaWxsOwor55eXID4gaWxsOwor55SSID4gamFyOwor55SHID4gamFyOwor55SBID4ganVnOwor55SAID4gamFyOwor55O7ID4gamFyOwor55OAID4gZ2VtOwor55KFID4gZ2VtOwor546GID4gbm93Owor546AID4gcGlnOwor542rID4gZG9nOwor542qID4gc2x5Owor542iID4gZG9nOwor54ytID4gYXBlOwor54yoID4gYXBlOwor54m8ID4gbWFuOwor54i+ID4geW91Owor54SeID4gZGltOwor54GLID4gbGF3Owor5r6dID4gbXVkOwor5r2aID4gZ2F5Owor5rKSID4gbm90Owor5q+nID4gZnVyOwor5q6jID4gZGllOwor5q6eID4gZGllOwor5q2/ID4gZGllOwor5q2gID4gc2lwOwor5qunID4gb2FrOwor5quTID4gb2FyOwor5quCID4gb2FyOwor5qqdID4gb2FyOwor5qmnID4gaHV0Owor5qigID4gZWxtOwor5qezID4gb2FyOwor5qWOID4gcGVnOwor5qS3ID4gYm94Owor5qOTID4gaGl0Owor5qK2ID4gb2FyOwor5qKpID4gaG9kOwor5qGuID4gY3VwOwor5p+4ID4gY3VwOwor5p2FID4gdHViOwor5puBID4gYW5kOwor5pmeID4gZHJ5Owor5piEID4gYmlnOwor5pa4ID4gY3V0Owor5payID4gY3V0Owor5paoID4gYXhlOwor5pS1ID4gcmFwOwor5pS0ID4gcmFwOwor5pO6ID4gcHV0Owor5pGfID4gaHVnOwor5pCwID4gZGlnOwor5pCoID4gcnViOwor5pCnID4gZmFuOwor5pCDID4gYWxsOwor5oy8ID4gcnViOwor5oWxID4gc2FkOwor5oS0ID4gc2FkOwor5oOZID4gc2FkOwor5byoID4gYm93Owor5bykID4gYm93Owor5busID4gaHV0Owor5bijID4gYmFnOwor5bCTID4geW91Owor5bCSID4geW91Owor5a+ZID4gYmFkOwor5aybID4gYXB0Owor5aa1ID4gbWFuOwor5aazID4geW91Owor5aWtID4gcmVkOwor5aWcID4gYmlnOwor5aWMID4gZG90Owor5aO6ID4gamFyOwor5aO3ID4gamFyOwor5aKrID4gY3VwOwor5aCMID4gZGFtOwor5Z+2ID4gYXJ0Owor5Z+nID4gZGFtOwor5ZyHID4gYWxsOwor5ZqiID4gYmFnOwor5ZqMID4gc2lwOwor5ZarID4gZWF0Owor5ZWXID4gZWF0Owor5Yy4ID4gYm94Owor5YqaID4gY3V0Owor5Ym4ID4gY3V0Owor5YmuID4gY3V0Owor5YmJID4gY3V0Owor5YiyID4gY3V0Owor5YejID4gYWxsOwor5YeiID4gYWxsOwor5YeDID4gbXVkOwor5YarID4gaWNlOwor5YaeID4gZmFyOwor5YOJID4gYWxsOwor5YGvID4gc29iOwor5YCeID4gZmFyOwor5L+BID4gYmlnOwor5L6KID4gYmlnOwor5L29ID4gYWlkOwor5LqTID4gaGlzOwor5LqBID4gZHJ5Owor5LmiID4gbGlkOwor5Li2ID4gZG90Owor5LOgID4gb3dsOwor5LKKID4gZnJ5Owor5LCgID4gZ29kOwor5KqeID4gYmFkOwor5KqaID4gaG90Owor5KmGID4gb2xkOwor5Ki/ID4gYmFkOwor5KKbID4gZmFyOwor5KKTID4gYmVkOwor5KGcID4gY2FyOwor5J2GID4gaG9nOwor5JyjID4gam95Owor5Je2ID4gd2F4Owor5JesID4gYmVlOwor5JemID4gYmVlOwor5JKsID4gbm90Owor5JGLID4gZmF0Owor5JGKID4gZmF0Owor5JGCID4gZmF0Owor5JC+ID4gZmF0Owor5JC1ID4gZmF0Owor5JCqID4gZmF0Owor5JCpID4gZmF0Owor5JCfID4gZmF0Owor5JCPID4gZmF0Owor5JCOID4gZmF0Owor5JCJID4gZmF0Owor5I+7ID4gY2FuOwor5I+0ID4gZGltOwor5I+lID4gZHJ5Owor5I+cID4gZmF0Owor5I6LID4gZmx5Owor5I2dID4gbmV0Owor5I2VID4gbmV0Owor5I2SID4gbmV0Owor5IyiID4gcmF3Owor5IusID4gcnVnOwor5IueID4gd2ViOwor5IuEID4gd2ViOwor5IqRID4gcGF5Owor5Im+ID4gYmFkOwor5Ia+ID4gYmlnOwor5IaxID4gYmlnOwor5IGuID4gc2FkOwor476RID4gZmF0Owor47qLID4gcGlnOwor47mFID4gYWxsOwor47iBID4gZHJ5Owor47eqID4gZmF0Owor47ejID4gcmVkOwor47S8ID4gd2V0Owor47S3ID4gd2V0Owor47O0ID4gbXVkOwor47KtID4gcnVnOwor47KWID4gZnVyOwor466OID4gY3VwOwor466IID4gYnV0Owor46uTID4gYWlyOwor76iWID4gcGlnOwor76iKID4gc2VlOwor76iAID4gY3V0Owor76e+ID4gdGVhOwor76ejID4gbXVkOwor46anID4gc2FkOwor76adID4gYmFkOwor76aCID4gaHV0Owor46aAID4gam95Owor76W4ID4gdHdvOwor76W1ID4gcm9iOwor46WiID4gYmFkOwor46WRID4gc2FkOwor76S4ID4gZGV3Owor76S0ID4gb2xkOwor76SxID4gb2FyOwor76SnID4gd2F4Owor76ScID4gZWdnOwor46SaID4gam95Owor76SMID4gYnV0Owor46SIID4gc2FkOwor46KgID4gZmFyOwor45y4ID4gc2luOwor45qaID4gYmlnOwor45iUID4gZWF0Owor45eUID4gam95Owor45WFID4gYmlnOwor45OJID4gaWNlOwor45KzID4gdHdvOwor45KqID4gdGluOwor45G+ID4gam95Owor45C6ID4gYWxsOwor5LiNID4gbm87CivkuLogPiBkbzsKK+S5iyA+ICcnczsKK+W+gyA+IGdvOwor5b6AID4gZ287Civkuo4gPiBpbjsKK+ihjCA+IGdvOwor5aaCID4gaWY7CivlvIQgPiBkbzsKK+aIliA+IG9yOwor5a6DID4gaXQ7Civoi6UgPiBpZjsKK+eIsiA+IGRvOwor5ZKxID4gdXM7CivngrogPiBkbzsKK+mAgiA+IGdvOwor5YCYID4gaWY7CivmlrwgPiBpbjsKK+WTnyA+IGFoOwor5ZeoID4gaGk7CivlvZ0gPiB5aTsKK+WCpSA+IGlmOwor6ZSxID4gb3o7CivlvoIgPiBnbzsKK+mSlCA+IG1kOwor5LyyID4gd2U7CivplaQgPiBwYTsKK+mVjiA+IG5wOwor6ZO5ID4gbHI7CivlpIIgPiBnbzsKK+mUvyA+IGVzOwor6ZSdID4gdGM7CivplJggPiBubzsKK+mUlSA+IGFjOwor6ZSKID4gb3o7Civpjp0gPiB0YzsKK+mMvCA+IG5wOwor6YyZID4gb3o7Civpi50gPiBvejsKK+i/rCA+IGdvOwor57mEID4gYmU7Civns44gPiBtbTsKK+eyqCA+IGhtOwor57KNID4gbW07CivnsoEgPiBrbTsKK+extSA+IGRtOwor56WCID4gaGU7CivniaAgPiBpdDsKK+acgSA+IGlmOwor5pSyID4gdXA7CivmibUgPiBpbjsKK+W9niA+IHlpOwor5b2cID4geWk7CivlvZsgPiB5aTsKK+W7tCA+IGdvOwor5ZeIID4gb2g7CivllrIgPiBhaDsKK+WWpCA+IGFoOwor5ZKBID4gc287CivlhaEgPiBoZzsKK+WFniA+IG1nOwor5YWdID4gZGc7CivlhLsgPiBpZjsKK+WBuiA+IHVzOwor5L2iID4gaGU7CivvqIggPiBnbzsKK++ltCA+IGlmOwor76WnID4gbm87CivvpYMgPiBkbzsKK+S9mSA+IGk7CivlkL4gPiBpOwor5LqIID4gaTsKK+S+rCA+IGk7Civpur8gPiBpOwor5qi2ID4gYzsKK+WEgiA+IGk7CivjgIIgPD4gJy4nOworOjogZnVsbHdpZHRoLWhhbGZ3aWR0aCAoKTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSGFuX0xhdGluX0VESUNULnR4dCBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvVHJhbnNsaXRlcmF0b3JfSGFuX0xhdGluX0VESUNULnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGMwMDI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9UcmFuc2xpdGVyYXRvcl9IYW5fTGF0aW5fRURJQ1QudHh0CkBAIC0wLDAgKzEsMTE2MDE2IEBACivvu78jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyMgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIENvbnZlcnQgQ0pLIGNoYXJhY3RlcnMKKyMgTm90ZTogYWRkcyBzcGFjZSBiZXR3ZWVuIHRoZW0gYW5kIGxldHRlcnMuCis6OiAoaGFsZndpZHRoLWZ1bGx3aWR0aCk7Cis6OiAoa2F0YWthbmEtbGF0aW4pOworOjogKGhpcmFnYW5hLWxhdGluKTsKKworJHRlcm1pbmFsUHVuY3QgPSBbXC5cLFw6XDtcP1wh77yO77yM77ya77yf77yB44CC44CB77ybWzpQZTpdWzpQZjpdXTsKKyR0ZXJtaW5hbFB1bmN0IHsgfSBbOkw6XSA+ICcgJzsKK1s6TDpdIHsgfSBbWzpIYW46XVs6UHM6XVs6UGk6XV0+ICcgJzsKKworJGthdGEgPSBbW+++nu++n++9sOODvF1bOmthdGFrYW5hOl1dOworJGthdGEgeyB9IFtbOkw6XS0ka2F0YV0+ICcgJzsKK1tbOkw6XS0ka2F0YV0geyB9ICRrYXRhID4gJyAnOworCitbOmhpcmFnYW5hOl0geyB9IFtbOkw6XS1bOmhpcmFnYW5hOl1dID4gJyAnOworW1s6TDpdLVs6aGlyYWdhbmE6XV0geyB9IFs6aGlyYWdhbmE6XT4gJyAnOworCisjIFN0YXJ0IFJBVyBkYXRhIGZvciBjb252ZXJ0aW5nIENKSyBjaGFyYWN0ZXJzCivms5Xlrabns7vlpKflrabpmaLlhbHpgJrlhaXlraboqabpqJMgPCBob3VnYWt1a2VpZGFpZ2FrdWlua3lvdXRzdXVueXV1Z2FrdXNoaWtlblwgOwor57Gz5Zu95aSn5a2m5YWl5a2m5YWx6YCa6Kmm6aiTIDwgYmVpa29rdWRhaWdha3VueXV1Z2FrdWt5b3V0c3V1c2hpa2VuXCA7CivmnJ3prq7msJHkuLvkuLvnvqnkurrmsJHlhbHlkozlm70gPCBjaG91c2VubWluc2h1c2h1Z2lqaW5taW5reW91d2Frb2t1XCA7Civoh6rli5Xou4rmkI3lrrPos6DlhJ/osqzku7vkv53pmbogPCBqaWRvdXNoYXNvbmdhaWJhaXNob3VzZWtpbmluaG9rZW5cIDsKK+iHqOWFtemXmOiAheeahumZo+ijguWcqOWJjSA8IHJpbnB5b3V0b3VzaGFrYWlqaW5yZXRzdXphaXplblwgOwor5pel5pys5Yq05YON57WE5ZCI57eP6KmV6K2w5LyaIDwgbmlob25yb3Vkb3VrdW1pYWlzb3VoeW91Z2lrYWlcIDsKK+WkquW5s+a0i+apn+aisOe/u+ios+WNlOS8miA8IHRhaWhlaXlvdWtpa2FpaG9uJyd5YWt1a3lvdWthaVwgOwor5Yuk5Yq06ICF6LKh55Sj5b2i5oiQ5L+D6YCyIDwga2lucm91c2hhemFpc2Fua2Vpc2Vpc29rdXNoaW5cIDsKK+i2hei2heWkp+imj+aooembhuepjeWbnui3ryA8IGNob3VjaG91ZGFpa2lib3NodXVzZWtpa2Fpcm9cIDsKK+e1jOa4iOWNlOWKm+mWi+eZuuapn+aniyA8IGtlaXphaWt5b3VyeW9rdWthaWhhdHN1a2lrb3VcIDsKK+WMl+a1t+mBk+mWi+eZuuW6gemVt+WumCA8IGhva2thaWRvdWthaWhhdHN1Y2hvdWNob3VrYW5cIDsKK+aLmOadn+WQjeewv+W8j+avlOS+i+S7o+ihqOWItiA8IGtvdXNva3VtZWlib2hpcmVpZGFpaHlvdXNlaVwgOwor55+l6K2Y6ZuG57SE5Z6L55Sj5qWtIDwgY2hpc2hpa2lzaHV1eWFrdWdhdGFzYW5neW91XCA7CivlpJblm73kurrnmbvpjLLoqLzmmI7mm7ggPCBnYWlrb2t1amludG91cm9rdXNob3VtZWlzaG9cIDsKK+WkquW5s+a0i+WuieWFqOS/nemanOadoee0hCA8IHRhaWhlaXlvdWFuemVuaG9zaG91am91eWFrdVwgOwor5pON57im5bit6Z+z5aOw6KiY6Yyy6KOF572uIDwgc291anV1c2VraW9uc2Vpa2lyb2t1c291Y2hpXCA7CivmiKbnlaXlhbXlmajliYrmuJvmnaHntIQgPCBzZW5yeWFrdWhlaWtpc2FrdWdlbmpvdXlha3VcIDsKK+iIquepuuWuh+WumeaKgOihk+eglOeptuaJgCA8IGtvdWt1dXVjaHV1Z2lqdXRzdWtlbmt5dXVqb1wgOwor5Zu96Zqb5qmf5qKw57+76Kiz5Y2U5LyaIDwga29rdXNhaWtpa2FpaG9uJyd5YWt1a3lvdWthaVwgOwor6Ieq5b6L56We57WM5aSx6Kq/55eHIDwgamlyaXRzdXNoaW5rZWlzaGl0Y2hvdXNob3VcIDsKK+Wbvemam+mbu+awl+mAmuS/oemAo+WQiCA8IGtva3VzYWlkZW5raXRzdXVzaGlucmVuZ291XCA7CivmspbnuITplovnmbrluoHplbflrpggPCBva2luYXdha2FpaGF0c3VjaG91Y2hvdWthblwgOwor5rW35aSW57WM5riI5Y2U5Yqb5Z+66YeRIDwga2FpZ2Fpa2VpemFpa3lvdXJ5b2t1a2lraW5cIDsKK+aXpeexs+WuieWFqOS/nemanOadoee0hCA8IG5pY2hpYmVpYW56ZW5ob3Nob3Vqb3V5YWt1XCA7Civmta7li5XlsI/mlbDngrnmvJTnrpfmqZ/mp4sgPCBmdWRvdXNob3VzdXV0ZW4nJ2VuemFua2lrb3VcIDsKK+ePvumHkeiHquWLlemgkOmHkeaUr+aJleapnyA8IGdlbmtpbmppZG91eW9raW5zaGloYXJhaWtpXCA7CivlvIHoqLzms5XnmoTllK/nianoq5YgPCBiZW5zaG91aG91dGVraXl1aWJ1dHN1cm9uXCA7CivmiKbmsqHogIXov73mgrzoqJjlv7Xml6UgPCBzZW5ib3RzdXNoYXRzdWl0b3VraW5lbmJpXCA7Civlm73pmpvljZTlipvkuovmpa3lm6MgPCBrb2t1c2Fpa3lvdXJ5b2t1amlneW91ZGFuXCA7CivmiKbooZPoiKrnqbrntbHliLbmnKzpg6ggPCBzZW5qdXRzdWtvdWt1dXRvdXNlaWhvbmJ1XCA7Civlt6Xmpa3pq5jnrYnlsILploDlrabmoKEgPCBrb3VneW91a291dG91c2VubW9uZ2Fra291XCA7CivljJflpKfopb/mtIvmnaHntITmqZ/mp4sgPCBraXRhdGFpc2VpeW91am91eWFrdWtpa291XCA7CivotoXlpKfopo/mqKHpm4bnqY3lm57ot68gPCBjaG91ZGFpa2lib3NodXVzZWtpa2Fpcm9cIDsKK+Wul+aVmeeahOeLrOeri+aApyA8IHNodXVreW91dGVraWRva3VyaXRzdXNlaVwgOwor5YyW5a2m5YW15Zmo56aB5q2i5p2h57SEIDwga2FnYWt1aGVpa2lraW5zaGlqb3V5YWt1XCA7CivplqLnqI7osr/mmJPkuIDoiKzljZTlrpogPCBrYW56ZWlib3Vla2lpcHBhbmt5b3V0ZWlcIDsKK+S4u+i+numnhuWLleWPpeani+mAoOaWh+azlSA8IHNodWppa3Vkb3VrdWtvdXpvdWJ1bnBvdVwgOwor55u05o6l54Wn5rqW5bCE5pKDIDwgY2hva3VzZXRzdXNob3VqdW5zaGFnZWtpXCA7Civnt4/lkIjnmoTlk4Hos6rnrqHnkIYgPCBzb3Vnb3V0ZWtpaGluc2hpdHN1a2FucmlcIDsKK+eWkeS8vOebtOaOpeebrueahOiqniA8IGdpamljaG9rdXNldHN1bW9rdXRla2lnb1wgOwor5Zyo55WZ5pyf6ZaT5pu05paw6Kix5Y+vIDwgemFpcnl1dWtpa2Fua291c2hpbmt5b2thXCA7Civnibnmrorlj5bmibHpg7Xkvr8gPCB0b2t1c2h1dG9yaWF0c3VrYWl5dXViaW5cIDsKK+S5vua5v+eQg+a5v+W6puioiCA8IGthbnNoaXRzdWt5dXVzaGl0c3Vkb2tlaVwgOwor5LiH5Zu96JGX5L2c5qip5p2h57SEIDwgYmFua29rdWNob3Nha3VrZW5qb3V5YWt1XCA7CivkuIflm73lm73pmpvpn7PmqJnmloflrZcgPCBiYW5rb2t1a29rdXNhaW9ucHlvdW1vamlcIDsKK+iogOiqnuWtpueahOWun+WcqOirliA8IGdlbmdvZ2FrdXRla2lqaXRzdXphaXJvblwgOwor5Yag54q25YuV6ISI6KGA5qCT55eHIDwga2Fuam91ZG91bXlha3VrZXNzZW5zaG91XCA7Civnp5HlrabmioDooZPluoHplbflrpggPCBrYWdha3VnaWp1dHN1Y2hvdWNob3VrYW5cIDsKK+a1t+a0i+aKleajhOimj+WItuadoee0hCA8IGthaXlvdXRvdWtpa2lzZWlqb3V5YWt1XCA7CivlnKflr4bpmY3kvI/lv5zlipsgPCBhdHN1bWl0c3Vrb3VmdWt1b3VyeW9rdVwgOwor5YWs6KqN5Y245aOy5qWt6ICFIDwga291bmluJydvcm9zaGl1cmlneW91c2hhXCA7CivotaTooYDnkIPmsojpmY3pgJ/luqYgPCBzZWtrZWtreXV1Y2hpbmtvdXNva3Vkb1wgOwor55+z5rK56Ly45Ye65Zu95qmf5qeLIDwgc2VraXl1eXVzaHV0c3Vrb2t1a2lrb3VcIDsKK+WFrOWFseiBt+alreWuieWumuaJgCA8IGtvdWt5b3VzaG9rdWd5b3VhbnRlaWpvXCA7CivmiKbooZPoiKrnqbrntbHliLbnj60gPCBzZW5qdXRzdWtvdWt1dXRvdXNlaWhhblwgOwor6YeO55Sf5YuV54mp5L+d6K235Zuj5L2TIDwgeWFzZWlkb3VidXRzdWhvZ29kYW50YWlcIDsKK+iHquWLleWIl+i7iuWItuW+oeijhee9riA8IGppZG91cmVzc2hhc2VpZ3lvc291Y2hpXCA7Civoh6rli5Xph5Hpiq3lh7rlhaXmqZ8gPCBqaWRvdWtpbnNlbnNodXRzdW55dXVraVwgOwor5aSp54S26LOH5rqQ5L+d6K236KuW6ICFIDwgdGVuJyduZW5zaGlnZW5ob2dvcm9uc2hhXCA7CivlnLDpnIfpm7fngavkuovopqrniLYgPCBqaXNoaW5rYW1pbmFyaWthamlveWFqaVwgOwor6Z2e5bi45LqL5oWL5a++5Yem6KiI55S7IDwgaGlqb3VqaXRhaXRhaXNob2tlaWtha3VcIDsKK+aguOWIhuijgueUn+aIkOeJqSA8IGtha3VidW5yZXRzdXNlaXNlaWJ1dHN1XCA7CivlpJrogqLpgbjmip7lvI/oqabllY8gPCB0YXNoaXNlbnRha3VzaGlraXNoaW1vblwgOwor5paw6Zai6KW/5Zu96Zqb56m65rivIDwgc2hpbmthbnNhaWtva3VzYWlrdXVrb3VcIDsKK+iBt+alreWIpembu+ipseW4syA8IHNob2t1Z3lvdWJldHN1ZGVud2FjaG91XCA7Civoh6rli5XliJfou4rlgZzmraLoo4Xnva4gPCBqaWRvdXJlc3NoYXRlaXNoaXNvdWNoaVwgOwor6KiA6Kqe5a2m55qE6Kaz5b+16KuWIDwgZ2VuZ29nYWt1dGVraWthbicnbmVucm9uXCA7CivlvoznmbrnmbrlsZXpgJTkuIrlm70gPCBrb3VoYXRzdWhhdHRlbnRvam91a29rdVwgOwor5oq55raI55m76Yyy6Ki85piO5pu4IDwgbWFzaG91dG91cm9rdXNob3VtZWlzaG9cIDsKK+e1jOa4iOS8geeUu+W6gemVt+WumCA8IGtlaXphaWtpa2FrdWNob3VjaG91a2FuXCA7Civlho3nlJ/kuI3oia/mgKfosqfooYAgPCBzYWlzZWlmdXJ5b3VzZWloaW5rZXRzdVwgOwor54Gr5Yqb5pSv5o+06Kq/5pW057eaIDwga2FyeW9rdXNoaWVuY2hvdXNlaXNlblwgOwor5YWl5a2m5YWx6YCa6Kmm6aiTIDwgbnl1dWdha3VreW91dHN1dXNoaWtlblwgOwor56C05aOK5rS75YuV6Ziy5q2i5rOVIDwgaGFrYWlrYXRzdWRvdWJvdXNoaWhvdVwgOwor5a6k5YaF566h5bym5qW95ZujIDwgc2hpdHN1bmFpa2FuZ2VuZ2FrdWRhblwgOwor5p2x5Lqs5qCq5byP5biC5aC0IDwgdG91a3lvdWthYnVzaGlraXNoaWpvdVwgOwor56K6546H5a+G5bqm6Zai5pWwIDwga2FrdXJpdHN1bWl0c3Vkb2thbnN1dVwgOwor5Y6f5a2Q5Yqb55m66Zu75omAIDwgZ2Vuc2hpcnlva3VoYXRzdWRlbnNob1wgOwor5Luj6KGo5Y+W57eg5b25IDwgZGFpaHlvdXRvcmlzaGltYXJpeWFrdVwgOwor5Y+W5omx6Kqs5piO5pu4IDwgdG9yaWF0c3VrYWlzZXRzdW1laXNob1wgOwor6LWk5Y2B5a2X5Zu96Zqb5aeU5ZOh5LyaIDwgc2VraWp1dWppa29rdXNhaWlpbmthaVwgOwor5Yun5ZaE5oey5oKq5bCP6KqsIDwga2FuemVuY2hvdWFrdXNob3VzZXRzdVwgOwor5Zu96Zqb6L+U5L+h5YiH5omL5Yi4IDwga29rdXNhaWhlbnNoaW5raXR0ZWtlblwgOwor6KuH6Kmx6KGo56S65qeL6YCg55CG6KuWIDwgZGFud2FoeW91amlrb3V6b3VyaXJvblwgOwor5YWx55Sj5YWa5Lit5aSu5aeU5ZOh5LyaIDwga3lvdXNhbnRvdWNodXVvdWlpbmthaVwgOwor5p2t5ZGo6Z2i5pGp5pOm5YqbIDwga3Vpc2h1dW1lbm1hc2F0c3VyeW9rdVwgOwor5Lit6I+v5Lq65rCR5YWx5ZKM5Zu9IDwgY2h1dWthamlubWlua3lvdXdha29rdVwgOwor5p2x5rW36YGT5LqU5Y2B5LiJ5qyhIDwgdG91a2FpZG91Z29qdXVzYW50c3VnaVwgOwor5a6H5a6Z6ZaL55m65LqL5qWt5ZujIDwgdWNodXVrYWloYXRzdWppZ3lvdWRhblwgOwor5rCR5Li75YWa5YWo5Zu95aeU5ZOh5LyaIDwgbWluc2h1dG91emVua29rdWlpbmthaVwgOwor6Iux6Kqe5Z+656SO6IO95Yqb6Kmm6aiTIDwgZWlnb2tpc29ub3VyeW9rdXNoaWtlblwgOwor6ZaT5o6l54Wn5rqW5bCE5pKDIDwga2Fuc2V0c3VzaG91anVuc2hhZ2VraVwgOwor5LiJ6Lu45Zyn57iu6Kmm6aiT5qmfIDwgc2FuamlrdWFzc2h1a3VzaGlrZW5raVwgOwor6KaW6IG06ICF5Y+C5Yqg55Wq57WEIDwgc2hpY2hvdXNoYXNhbmthYmFuZ3VtaVwgOwor5bee6Zqb6YCa5ZWG5aeU5ZOh5LyaIDwgc2h1dXNhaXRzdXVzaG91aWlua2FpXCA7CivmlrDopo/moKrlvI/lhazplosgPCBzaGlua2lrYWJ1c2hpa2lrb3VrYWlcIDsKK+WRqOazouaVsOWkieaPm+ijhee9riA8IHNodXVoYXN1dWhlbmthbnNvdWNoaVwgOwor5a2m57+S5oyH5bCO6KaB6aCYIDwgZ2FrdXNodXVzaGlkb3V5b3VyeW91XCA7CivmhaLmgKfnlrLlirTnl4flgJnnvqQgPCBtYW5zZWloaXJvdXNob3Vrb3VndW5cIDsKK+WFrOWus+WvvuetluWfuuacrOazlSA8IGtvdWdhaXRhaXNha3VraWhvbmhvdVwgOwor5pep55m65oCn55e05ZGG55eHIDwgc291aGF0c3VzZWljaGlob3VzaG91XCA7CivntYzmuIjlm6PkvZPpgKPlkIjkvJogPCBrZWl6YWlkYW50YWlyZW5nb3VrYWlcIDsKK+aIpumXmOmbu+WtkOaIpuaDheWgsSA8IHNlbnRvdWRlbnNoaXNlbmpvdWhvdVwgOwor5L+h55So5Y2U5ZCM57WE5ZCIIDwgc2hpbicneW91a3lvdWRvdWt1bWlhaVwgOwor54++6YeR6Ieq5YuV5pSv5omV5qmfIDwgZ2Vua2luamlkb3VzaGloYXJhaWtpXCA7CivlvKbmpb3lm5vph43lpY/mm7IgPCBnZW5nYWt1c2hpanV1c291a3lva3VcIDsKK+a8lOe5ueeahOiqrOaYjuazlSA8IGVuJydla2l0ZWtpc2V0c3VtZWlob3VcIDsKK+acgOmrmOe1jOWWtuiyrOS7u+iAhSA8IHNhaWtvdWtlaWVpc2VraW5pbnNoYVwgOwor5rex5Zyo5oCn55yf6I+M55eHIDwgc2hpbnphaXNlaXNoaW5raW5zaG91XCA7Civoo4XnlLLkurrlk6HpgYvmkKzou4ogPCBzb3Vrb3VqaW4nJ2luJyd1bnBhbnNoYVwgOwor5LiA6Iis5ZG95Luk5ryU566X5qmf5qeLIDwgaXBwYW5tZWlyZWllbnphbmtpa291XCA7CivntbHnjofmnZ/nuJvnkIboq5YgPCB0b3Vzb3RzdXNva3ViYWt1cmlyb25cIDsKK+acrOaFi+aAp+mrmOihgOWcpyA8IGhvbnRhaXNlaWtvdWtldHN1YXRzdVwgOwor5pel5pys6Kqe6IO95Yqb6Kmm6aiTIDwgbmlob25nb25vdXJ5b2t1c2hpa2VuXCA7CivpmbjkuIrnq6/lsYDoo4Xnva4gPCByaWt1am91dGFua3lva3Vzb3VjaGlcIDsKK+mfs+evgOS4u+mfs+eahOWtkOmfsyA8IG9uc2V0c3VzaHVvbnRla2lzaGlpblwgOwor5pel57Gz6LK/5piT5pGp5pOmIDwgbmljaGliZWlib3Vla2ltYXNhdHN1XCA7CivoqLzliLjlj5blvJXlp5Tlk6HkvJogPCBzaG91a2VudG9yaWhpa2lpaW5rYWlcIDsKK+mAmuWVhueUo+alreWkp+iHoyA8IHRzdXVzaG91c2FuZ3lvdWRhaWppblwgOwor5pyA6auY6LKh5YuZ6LKs5Lu76ICFIDwgc2Fpa291emFpbXVzZWtpbmluc2hhXCA7Civnn63ot53pm6Lpm6LnnYDpmbjmqZ8gPCB0YW5reW9yaXJpY2hha3VyaWt1a2lcIDsKK+mAmuWVhuiIqua1t+adoee0hCA8IHRzdXVzaG91a291a2Fpam91eWFrdVwgOwor5qmf6IO95Y2Y5LiA5YyW5paH5rOVIDwga2lub3V0YW4nJ2l0c3VrYWJ1bnBvdVwgOwor55+l6IO95oOF5aCx56CU56m26YOoIDwgY2hpbm91am91aG91a2Vua3l1dWJ1XCA7CivliqDlnKfmsLTlnovljp/lrZDngokgPCBrYWF0c3VzdWlnYXRhZ2Vuc2hpcm9cIDsKK+eSsOWkquW5s+a0i+WcsOmch+W4ryA8IGthbnRhaWhlaXlvdWppc2hpbnRhaVwgOwor6Luf5Yik5a6a6K2Y5Yil5ZmoIDwgbmFuaGFudGVpc2hpa2liZXRzdWtpXCA7Civlm73nq4vljZrnianppKggPCBrb2t1cml0c3VoYWt1YnV0c3VrYW5cIDsKK+epuuaDs+enkeWtpuWwj+iqrCA8IGt1dXNvdWthZ2FrdXNob3VzZXRzdVwgOwor5Lq656iu5beu5Yil5Li7576p6ICFIDwgamluc2h1c2FiZXRzdXNodWdpc2hhXCA7CivmlrDlhaXnpL7lk6HmlZnogrIgPCBzaGluJydueXV1c2hhaW5reW91aWt1XCA7CivmjqjlpajmlofnjK7nm67pjLIgPCBzdWlzaG91YnVua2VubW9rdXJva3VcIDsKK+mbhuS4reayu+eZguWupCA8IHNodXVjaHV1Y2hpcnlvdXNoaXRzdVwgOwor5b6z5bed5LiJ5Luj5a625YWJIDwgdG9rdWdhd2FzYW5kYWlpZW1pdHN1XCA7Civoh6rnhLbnkrDlooPkv53lhajms5UgPCBzaGl6ZW5rYW5reW91aG96ZW5ob3VcIDsKK+eUn+a0u+WNlOWQjOe1hOWQiCA8IHNlaWthdHN1a3lvdWRvdWt1bWlhaVwgOwor55Kw5aSq5bmz5rSL6YCg5bGx5bivIDwga2FudGFpaGVpeW91em91emFudGFpXCA7CivooYzli5XkuLvnvqnlv4PnkIblraYgPCBrb3Vkb3VzaHVnaXNoaW5yaWdha3VcIDsKK+aWmemHkeWIpee0jemDteS+vyA8IHJ5b3VraW5iZXRzdW5vdXl1dWJpblwgOwor5Lit6Led6Zui5qC45oim5YqbIDwgY2h1dWt5b3Jpa2FrdXNlbnJ5b2t1XCA7CivnrKzkuIDmrKHkuJbnlYzlpKfmiKYgPCBkYWlpY2hpamlzZWthaXRhaXNlblwgOwor6L6y5qWt5Y2U5ZCM57WE5ZCIIDwgbm91Z3lvdWt5b3Vkb3VrdW1pYWlcIDsKK+Wkp+mZuOaoquaWremJhOmBkyA8IHRhaXJpa3VvdWRhbnRldHN1ZG91XCA7Civnm7TovYTmpI3msJHlnLAgPCBjaG9ra2F0c3VzaG9rdW1pbmNoaVwgOwor5aSJ5YuV54K65pu/55u45aC05Yi2IDwgaGVuZG91a2F3YXNlc291YmFzZWlcIDsKK+acqOmAoOW7uuevieeJqSA8IG1va3V6b3VrZW5jaGlrdWJ1dHN1XCA7Civpq5jliIblrZDlkLjlj47kvZMgPCBrb3VidW5zaGlreXV1c2h1dXRhaVwgOwor5q2v5YaF55mC5rOV5bCC6ZaA5Yy7IDwgc2hpa2FyeW91aG91c2VubW9uJydpXCA7Civml6XnsbPmp4vpgKDljZTorbAgPCBuaWNoaWJlaWtvdXpvdWt5b3VnaVwgOwor5qmf5qKw57+76Kiz5Y2U5LyaIDwga2lrYWlob24nJ3lha3VreW91a2FpXCA7CivmpI3nianmgKfom4vnmb0gPCBzaG9rdWJ1dHN1c2VpdGFucGFrdVwgOwor5L+h55So5Y+W5byV5YWIIDwgc2hpbicneW91dG9yaWhpa2lzYWtpXCA7CivkuK3lpK7ooYzmlL/lrpjluoEgPCBjaHV1b3VneW91c2Vpa2FuY2hvdVwgOwor5YyX5aSn6KW/5rSL5p2h57SEIDwga2l0YXRhaXNlaXlvdWpvdXlha3VcIDsKK+W4uOWLmeWPlue3oOW9uSA8IGpvdW11dG9yaXNoaW1hcml5YWt1XCA7CivnkrDlpKrlubPmtIvngavlsbHluK8gPCBrYW50YWloZWl5b3VrYXphbnRhaVwgOwor6Zu75rCX6YCa5L+h5aSn5a2mIDwgZGVua2l0c3V1c2hpbmRhaWdha3VcIDsKK+iKs+mmmeaXj+WMluWQiOeJqSA8IGhvdWtvdXpva3VrYWdvdWJ1dHN1XCA7CivkuIPmmJ/lpKnpgZPomasgPCBuYW5haG9zaGl0ZW50b3VtdXNoaVwgOwor5YaF6Zaj5a6Y5oi/6ZW35a6YIDwgbmFpa2FrdWthbmJvdWNob3VrYW5cIDsKK+Wun+aDheiqv+afu+WnlOWToeS8miA8IGppdHN1am91Y2hvdXNhaWlua2FpXCA7CivlvKbmpb3kupTph43lpY/mm7IgPCBnZW5nYWt1Z29qdXVzb3VreW9rdVwgOwor5rCR5peP5aSn6JmQ5q66IDwgbWluem9rdWRhaWd5YWt1c2F0c3VcIDsKK+enkeWtpuWfuuekjueglOeptuaJgCA8IGthZ2FrdWtpc29rZW5reXV1c2hvXCA7CivotorlubTnlJ/mpI3niakgPCBldHN1bmVuc2Vpc2hva3VidXRzdVwgOwor5aSJ5b2i55Sf5oiQ57Wx6Kqe6KuWIDwgaGVua2Vpc2Vpc2VpdG91Z29yb25cIDsKK+ani+aIkOe0oOe1seW+oSA8IGtvdXNlaXNva291em91dG91Z3lvXCA7CivlroflrpnplovnmbroqIjnlLsgPCB1Y2h1dWthaWhhdHN1a2Vpa2FrdVwgOwor57Gz6YCj6YKm6Iiq56m65bGAIDwgYmVpcmVucG91a3V1a291a3lva3VcIDsKK+Wkp+imj+aooembhuepjeWbnui3ryA8IGRhaWtpYm9zaHV1c2VraWthaXJvXCA7CivljZfnhKHlppnms5Xok67oj6/ntYwgPCBuYW11bXlvdWhvdXJlbmdla3lvdVwgOwor5aSW5Zu95Lq655m76Yyy5rOVIDwgZ2Fpa29rdWppbnRvdXJva3Vob3VcIDsKK+WFseeUo+WFmuaUv+ayu+WxgCA8IGt5b3VzYW50b3VzZWlqaWt5b2t1XCA7CivmnKrnorroqo3po5vooYzniankvZMgPCBtaWtha3VuaW5oaWtvdWJ1dHRhaVwgOwor5LiA6YW45YyW54Kt57Sg5Lit5q+SIDwgaXNzYW5rYXRhbnNvY2h1dWRva3VcIDsKK+adn+e4m+e2meaJv+WOn+eQhiA8IHNva3ViYWt1a2Vpc2hvdWdlbnJpXCA7Civnm7TmjqXnm67nmoToqp4gPCBjaG9rdXNldHN1bW9rdXRla2lnb1wgOwor5bCC5YuZ5Y+W57eg5b25IDwgc2VubXV0b3Jpc2hpbWFyaXlha3VcIDsKK+S4gOW5tOeUn+akjeeJqSA8IGljaGluZW5zZWlzaG9rdWJ1dHN1XCA7Civpurvolqzlj5bnt6Dnj60gPCBtYXlha3V0b3Jpc2hpbWFyaWhhblwgOwor5LiJ6Lu45Zyn57iu6Kmm6aiTIDwgc2FuamlrdWFzc2h1a3VzaGlrZW5cIDsKK+m6u+iWrOWPlue3oOazlSA8IG1heWFrdXRvcmlzaGltYXJpaG91XCA7Civnqbrou43pgKPntaHlsIbmoKEgPCBrdXVndW5yZW5yYWt1c2hvdWtvdVwgOwor5Y245aOy54mp5L6h5oyH5pWwIDwgb3Jvc2hpdXJpYnVra2FzaGlzdXVcIDsKK+WGmeecn+WIpOWumuaxuuWLnSA8IHNoYXNoaW5oYW50ZWlrZXNzaG91XCA7CivliY3nq4vohbrogqXlpKfnl4cgPCB6ZW5yaXRzdXNlbmhpZGFpc2hvdVwgOwor5YWs5q2j5Y+W5byV5aeU5ZOh5LyaIDwga291c2VpdG9yaWhpa2lpaW5rYWlcIDsKK+iqrOaYjueahOWmpeW9k+aApyA8IHNldHN1bWVpdGVraWRhdG91c2VpXCA7CivkuK3lv4PnmoTlvbnlibIgPCBjaHV1c2hpbnRla2l5YWt1d2FyaVwgOwor56iO5byV5YmN5b2T5pyf5Yip55uKIDwgemVpYmlraW1hZXRvdWtpcmlla2lcIDsKK+mAo+mCpuWPluW8leWnlOWToeS8miA8IHJlbnBvdXRvcmloaWtpaWlua2FpXCA7CivlhbHpgJrkuIDmrKHoqabpqJMgPCBreW91dHN1dWljaGlqaXNoaWtlblwgOwor56ys5LiJ56iu6YO15L6/54mpIDwgZGFpc2Fuc2h1eXV1YmluYnV0c3VcIDsKK+WPi+WlvemAmuWVhuiIqua1tyA8IHl1dWtvdXRzdXVzaG91a291a2FpXCA7CivnhKHmi4Xkv53osrjku5jph5EgPCBtdXRhbnBva2FzaGl0c3VrZWtpblwgOwor5rWB6KGM5oCn6ICz5LiL6IW654KOIDwgcnl1dWtvdXNlaWppa2FzZW4nJ2VuXCA7Civlv4XopoHljYHliIbmnaHku7YgPCBoaXRzdXlvdWp1dWJ1bmpvdWtlblwgOwor57K+56We55qE5oyH5bCO6ICFIDwgc2Vpc2hpbnRla2lzaGlkb3VzaGFcIDsKK+WOn+WtkOeJqeeQhuWtpuiAhSA8IGdlbnNoaWJ1dHN1cmlnYWt1c2hhXCA7Civnsr7lr4bmqZ/morDlt6Xmpa0gPCBzZWltaXRzdWtpa2Fpa291Z3lvdVwgOwor5YaN5YWl5Zu96Kix5Y+v5pu4IDwgc2Fpbnl1dWtva3VreW91a2FzaG9cIDsKK+WumuW9ouWklumDteS+v+eJqSA8IHRlaWtlaWdhaXl1dWJpbmJ1dHN1XCA7CivotoXkuKbliJfoqIjnrpfmqZ8gPCBjaG91aGVpcmV0c3VrZWlzYW5raVwgOwor5Lit5p6i56We57WM57O757WxIDwgY2h1dXN1dXNoaW5rZWlrZWl0b3VcIDsKK+S8nemAgeWItuW+oeaLoeW8tSA8IGRlbnNvdXNlaWd5b2tha3VjaG91XCA7Civlj47nuK7mnJ/ooYDlnKcgPCBzaHV1c2h1a3VraWtldHN1YXRzdVwgOwor5pel5Lit5Y+L5aW95Y2U5LyaIDwgbml0Y2h1dXl1dWtvdWt5b3VrYWlcIDsKK+e3j+eQhuW6nOe3j+WLmemVt+WumCA8IHNvdXJpZnVzb3VtdWNob3VrYW5cIDsKK+WbveawkemHkeiejeWFrOW6qyA8IGtva3VtaW5raW4nJ3l1dWtvdWtvXCA7CivljZjlrZDokYnmpI3niakgPCB0YW5zaGl5b3VzaG9rdWJ1dHN1XCA7Civlj6PovrrljZjntJTnlrHnlrkgPCBrb3VoZW50YW5qdW5ob3VzaGluXCA7CivpgKPnq4vmlrnnqIvlvI8gPCByZW5yaXRzdWhvdXRlaXNoaWtpXCA7Civpm4blm6Plronlhajkv53pmpwgPCBzaHV1ZGFuJydhbnplbmhvc2hvdVwgOwor5ZCN56We6auY6YCf6YGT6LevIDwgbWVpc2hpbmtvdXNva3Vkb3Vyb1wgOwor5pS+5bCE5oCn6ZmN5LiL54mpIDwgaG91c2hhc2Vpa291a2FidXRzdVwgOwor55Kw5aKD5L+d6K235Li7576p6ICFIDwga2Fua3lvdWhvZ29zaHVnaXNoYVwgOwor5Yqj5oCn6YG65Lyd5b2i6LOqIDwgcmVzc2VpaWRlbmtlaXNoaXRzdVwgOwor5pel5pys6Zm45LiK6Ieq6KGb6ZqKIDwgbmlob25yaWt1am91amllaXRhaVwgOwor6YCa5ZWG55Sj5qWt55yBIDwgdHN1dXNob3VzYW5neW91c2hvdVwgOwor5Yid5pyf6YG45oqe6aCF55uuIDwgc2hva2lzZW50YWt1a291bW9rdVwgOwor5YWo5Zu95rSl5rSl5rWm5rWmIDwgemVua29rdXRzdXRzdXVyYXVyYVwgOwor5L+h5Lu757Wx5rK75Yi25bqmIDwgc2hpbicnbmludG91Y2hpc2VpZG9cIDsKK+S4u+imgemDqOe1guerr+WeiyA8IHNodXlvdWJ1c2h1dXRhbmdhdGFcIDsKK+WQiOaIkOWMluWtpuW3pealrSA8IGdvdXNlaWthZ2FrdWtvdWd5b3VcIDsKK+WOn+WtkOWKm+eZuumbuyA8IGdlbnNoaXJ5b2t1aGF0c3VkZW5cIDsKK+WbveawkeS9k+iCsuWkp+S8miA8IGtva3VtaW50YWlpa3V0YWlrYWlcIDsKK+Wbvemam+mbu+S/oembu+ipsSA8IGtva3VzYWlkZW5zaGluZGVud2FcIDsKK+mbu+WtkOizh+mHkeaMr+abvyA8IGRlbnNoaXNoaWtpbmZ1cmlrYWVcIDsKK+ebtOaOpeawkeS4u+WItiA8IGNob2t1c2V0c3VtaW5zaHVzZWlcIDsKK+mAsuWHuuWItumZkOe3miA8IHNoaW5zaHV0c3VzZWlnZW5zZW5cIDsKK+agquW8j+WPluW8leaJgCA8IGthYnVzaGlraXRvcmloaWtpam9cIDsKK+W8pualveWbm+mHjeWlj+WboyA8IGdlbmdha3VzaGlqdXVzb3VkYW5cIDsKK+iIquepuuS6pOmAmueuoeWItiA8IGtvdWt1dWtvdXRzdXVrYW5zZWlcIDsKK+iyoeaUv+Wdh+ihoeioiOeUuyA8IHphaXNlaWtpbmtvdWtlaWtha3VcIDsKK+ebtOaOpeaVmeaOiOazlSA8IGNob2t1c2V0c3VreW91anVob3VcIDsKK+aXpeacrOimj+agvOWNlOS8miA8IG5pcHBvbmtpa2FrdWt5b3VrYWlcIDsKK+WLleeJqeaEm+itt+WNlOS8miA8IGRvdWJ1dHN1YWlnb2t5b3VrYWlcIDsKK+WPjOWtkOiRieakjeeJqSA8IHNvdXNoaXlvdXNob2t1YnV0c3VcIDsKK+exs+iIquepuuWuh+WumeWxgCA8IGJlaWtvdWt1dXVjaHV1a3lva3VcIDsKK+aXpeacrOWtpuihk+S8muitsCA8IG5paG9uZ2FrdWp1dHN1a2FpZ2lcIDsKK+iKpeW3nem+jeS5i+S7iyA8IGFrdXRhZ2F3YXJ5dXVub3N1a2VcIDsKK+iyuOWAn+WvvueFp+ihqCA8IHRhaXNoYWt1dGFpc2hvdWh5b3VcIDsKK+WFrOWumuWJsuW8leeOhyA8IGtvdXRlaXdhcmliaWtpcml0c3VcIDsKK+S6uumWk+eSsOWig+Wuo+iogCA8IG5pbmdlbmthbmt5b3VzZW5nZW5cIDsKK+W8t+i/q+elnue1jOeXhyA8IGt5b3VoYWt1c2hpbmtlaXNob3VcIDsKK+WutuWuheaNnOe0ouS7pOeKtiA8IGthdGFrdXNvdXNha3VyZWlqb3VcIDsKK+WVhualreS/oeeUqOeKtiA8IHNob3VneW91c2hpbicneW91am91XCA7CivlronlnJ/moYPlsbHmmYLku6MgPCBhenVjaGltb21veWFtYWppZGFpXCA7CivnlJ/nkIbnmoTpo5/loanmsLQgPCBzZWlyaXRla2lzaG9rdWVuc3VpXCA7CivnkrDlpKrlubPmtIvoq7jlm70gPCBrYW50YWloZWl5b3VzaG9rb2t1XCA7CivngavlipvmlK/mj7ToqIjnlLsgPCBrYXJ5b2t1c2hpZW5rZWlrYWt1XCA7CivovLjlh7rkv6HnlKjnirYgPCB5dXNodXRzdXNoaW4nJ3lvdWpvdVwgOwor6YeR5Zyw6YeR5pys5L2N5Yi25bqmIDwga2luamlnYW5laG9uJydpc2VpZG9cIDsKK+iRl+S9nOaoqeaJgOacieiAhSA8IGNob3Nha3VrZW5zaG95dXVzaGFcIDsKK+aVsOWtpueahOW4sOe0jeazlSA8IHN1dWdha3V0ZWtpa2lub3Vob3VcIDsKK+aXp+aWsOe0hOWFqOabuCA8IGt5dXVzaGluJyd5YWt1emVuc2hvXCA7Civml6XmnKzlm73nibnoqLHluoEgPCBuaWhvbmtva3V0b2treW9jaG91XCA7Civlh7rlhaXlm73nrqHnkIYgPCBzaHV0c3VueXV1a29rdWthbnJpXCA7Civpo5/ns6fnrqHnkIbliLbluqYgPCBzaG9rdXJ5b3VrYW5yaXNlaWRvXCA7CivnlJ/nianljJblrablhbXlmaggPCBzZWlidXRzdWthZ2FrdWhlaWtpXCA7CivpmpzlrrPniannq7botbAgPCBzaG91Z2FpYnV0c3VreW91c291XCA7CivmmLzlhYnoibLpm7vnkIMgPCBjaHV1a291c2hva3VkZW5reXV1XCA7Civplbfml6XmpI3niakgPCBjaG91aml0c3VzaG9rdWJ1dHN1XCA7CivlpbPmqKnmi6HlvLXoq5bogIUgPCBqb2tlbmtha3VjaG91cm9uc2hhXCA7Civph43opoHnhKHlvaLmlofljJbosqEgPCBqdXV5b3VtdWtlaWJ1bmthemFpXCA7CivntYzmuIjnpL7kvJrnkIbkuovkvJogPCBrZWl6YWlzaGFrYWlyaWppa2FpXCA7CivntbHlkIjluZXlg5rkvJrorbAgPCB0b3Vnb3ViYWt1cnlvdWthaWdpXCA7Civlvovku6TmoLzlvI8gPCByaXRzdXJ5b3VreWFrdXNoaWtpXCA7CivlpKnnhLboibLlhpnnnJ8gPCB0ZW4nJ25lbnNob2t1c2hhc2hpblwgOwor5bCE5pKD56aB5q2i5Zyw5Z+fIDwgc2hhZ2VraWtpbnNoaWNoaWlraVwgOwor6aOf6IKJ5qSN54mpIDwgc2hva3VuaWt1c2hva3VidXRzdVwgOwor5Li76Kqe5Yqp5YuV6Kme5YCS572uIDwgc2h1Z29qb2RvdXNoaXRvdWNoaVwgOwor54m55ZG95YWo5qip5YWs5L2/IDwgdG9rdW1laXplbmtlbmtvdXNoaVwgOwor5rC05Yqb55m66Zu75omAIDwgc3Vpcnlva3VoYXRzdWRlbnNob1wgOwor57Sg5Ye65Yqb5p2h5Lu2IDwgc29zaHV0c3VyeW9rdWpvdWtlblwgOwor5Zu95rCR57eP5pSv5Ye6IDwga29rdW1pbnNvdXNoaXNodXRzdVwgOwor5qSN54mp5oCn6ISC6IKqIDwgc2hva3VidXRzdXNlaXNoaWJvdVwgOwor5paw6IGe5YCr55CG57ax6aCYIDwgc2hpbmJ1bnJpbnJpa291cnlvdVwgOwor6KiY6L+w55qE5aal5b2T5oCnIDwga2lqdXRzdXRla2lkYXRvdXNlaVwgOwor5pen5paw57SE6IGW5pu4IDwga3l1dXNoaW4nJ3lha3VzZWlzaG9cIDsKK+S4h+WbvemDteS+v+mAo+WQiCA8IGJhbmtva3V5dXViaW5yZW5nb3VcIDsKK+mVt+acn+iyuOS7mOmHkSA8IGNob3VraWthc2hpdHN1a2VraW5cIDsKK+ebtOaOpeaOpee2miA8IGNob2t1c2V0c3VzZXRzdXpva3VcIDsKK+S9j+WuhemHkeiejeWFrOW6qyA8IGp1dXRha3VraW4nJ3l1dWtvdWtvXCA7CivljZjkvY3kvZPnqY3ph43ph48gPCB0YW4nJ2l0YWlzZWtpanV1cnlvdVwgOwor57Wx5LiA5Zyw5pa56YG45oyZIDwgdG91aXRzdWNoaWhvdXNlbmt5b1wgOwor5YWs6ZaL5biC5aC05pS/562WIDwga291a2Fpc2hpam91c2Vpc2FrdVwgOwor5Zyw55CD6Kaz5ris6KGb5pifIDwgY2hpa3l1dWthbnNva3VlaXNlaVwgOwor55Sf54mp54mp55CG5a2mIDwgc2VpYnV0c3VidXRzdXJpZ2FrdVwgOwor5bmz5a6254mp6Kqe5oqEIDwgaGVpa2Vtb25vZ2F0YXJpc2hvdVwgOwor5ZCI5ZCM5oqA6KGT5aeU5ZOh5LyaIDwgZ291ZG91Z2lqdXRzdWlpbmthaVwgOwor6YeN6YeP5ouz6ZeY6YG45omLIDwganV1cnlvdWtlbnRvdXNlbnNodVwgOwor5Lq65bel5rCX6IO455mC5rOVIDwgamlua291a2lreW91cnlvdWhvdVwgOwor5Zyw5pa55YWs5YWx5Zuj5L2TIDwgY2hpaG91a291a3lvdWRhbnRhaVwgOwor5omL5qC5566h55eH5YCZ576kIDwgc2h1a29ua2Fuc2hvdWtvdWd1blwgOwor6auY5YiG5a2Q5YyW5ZCI54mpIDwga291YnVuc2hpa2Fnb3VidXRzdVwgOwor6aOf6Jmr5qSN54mpIDwgc2hva3VjaHV1c2hva3VidXRzdVwgOwor6Zm45LiK5L2c5oim5pys6YOoIDwgcmlrdWpvdXNha3VzZW5ob25idVwgOwor6Kaz5a+f55qE56CU56m2IDwga2Fuc2F0c3V0ZWtpa2Vua3l1dVwgOwor5pS+5bCE5oCn5buD5qOE54mpIDwgaG91c2hhc2VpaGFpa2lidXRzdVwgOwor6YCG6Lui5YiG5biD5L+C5pWwIDwgZ3lha3V0ZW5idW5wdWtlaXN1dVwgOwor6JyY6Jub6Iac5LiL5Ye66KGAIDwga3Vtb21ha3VrYXNodWtrZXRzdVwgOwor6Ieq5YuV5pa55ZCR5o6i55+l5qmfIDwgamlkb3Vob3Vrb3V0YW5jaGlraVwgOwor5YWx5ZCM5pWR5riI5Z+66YeRIDwga3lvdWRvdWt5dXVzYWlraWtpblwgOwor6LOD6LK45YCf5aWR57SEIDwgY2hpbnRhaXNoYWt1a2VpeWFrdVwgOwor5b6z5bed5YWs54i16YK4IDwgdG9rdWdhd2Frb3VzaGFrdXRlaVwgOwor5biw6YKE5LiN6IO96ZmQ55WM54K5IDwga2lrYW5mdW5vdWdlbmthaXRlblwgOwor5L+d6Zm66YeR5Y+X5Y+W5Lq6IDwgaG9rZW5raW4nJ3VrZXRvcmluaW5cIDsKK+mZuOi7jeWjq+WumOWtpuagoSA8IHJpa3VndW5zaGlrYW5nYWtrb3VcIDsKK+a8gealreWwgueuoeawtOWfnyA8IGd5b2d5b3VzZW5rYW5zdWlpa2lcIDsKK+eyvuelnuWIhuijgueXhyA8IHNlaXNoaW5idW5yZXRzdXNob3VcIDsKK+iKuOihk+iHs+S4iuS4u+e+qSA8IGdlaWp1dHN1c2hpam91c2h1Z2lcIDsKK+eJueWRveWFqOaoqeWkp+S9vyA8IHRva3VtZWl6ZW5rZW50YWlzaGlcIDsKK+i/keaOpeiIquepuuaUr+aPtCA8IGtpbnNldHN1a291a3V1c2hpZW5cIDsKK+WkqumZveeGseeZuumbuyA8IHRhaXlvdW5ldHN1aGF0c3VkZW5cIDsKK+a1t+WklueVmeWtpueGsSA8IGthaWdhaXJ5dXVnYWt1bmV0c3VcIDsKK+acieapn+awtOmKgOS4reavkiA8IHl1dWtpc3VpZ2luY2h1dWRva3VcIDsKK+WmiuWooOS4reavkueXhyA8IG5pbnNoaW5jaHV1ZG9rdXNob3VcIDsKK+eSsOWkquW5s+a0i+ani+aDsyA8IGthbnRhaWhlaXlvdWtvdXNvdVwgOwor54us56uL5o6h566X5Yi2IDwgZG9rdXJpdHN1c2Fpc2Fuc2VpXCA7CivluILloLTljaDmnInnjocgPCBzaGlqb3VzZW4nJ3l1dXJpdHN1XCA7CivlhaznmoTkuI3ms5XlpqjlrrMgPCBrb3V0ZWtpZnVob3Vib3VnYWlcIDsKK+imluiBtOimmuaVmeadkCA8IHNoaWNob3VrYWt1a3lvdXphaVwgOwor5YaF6Zaj5rOV5Yi25bGAIDwgbmFpa2FrdWhvdXNlaWt5b2t1XCA7Civlm73lrrblhazlronlp5Tlk6HplbcgPCBrb2trYWtvdWFuJydpaW5jaG91XCA7CivmiKbpl5jmlK/mj7ToqIjnlLsgPCBzZW50b3VzaGllbmtlaWtha3VcIDsKK+S4reWwj+S8gealreW6gSA8IGNodXVzaG91a2lneW91Y2hvdVwgOwor5Zue57ea5Yi25b6h6KaP5YmHIDwga2Fpc2Vuc2VpZ3lva2lzb2t1XCA7Civmm7jnsKHkvZPlsI/oqqwgPCBzaG9rYW50YWlzaG91c2V0c3VcIDsKK+ekvuS8mueUn+eJqeWtpiA8IHNoYWthaXNlaWJ1dHN1Z2FrdVwgOwor5LiA5pel5LiA5pelIDwgaWNoaW5pY2hpaWNoaW5pY2hpXCA7Civou43pmorooYzpgLLmm7IgPCBndW50YWlrb3VzaGlua3lva3VcIDsKK+iRrOmAgeihjOmAsuabsiA8IHNvdXNvdWtvdXNoaW5reW9rdVwgOwor5riv5rm+6YGL6YCB5LqL5qWtIDwga291d2FuJyd1bnNvdWppZ3lvdVwgOwor54mp55CG55qE54++6LGhIDwgYnV0c3VyaXRla2lnZW5zaG91XCA7Civlv4Poh5PlvIHohpznl4cgPCBzaGluem91YmVubWFrdXNob3VcIDsKK+iGneiTi+iFseWPjeWwhCA8IHNoaXRzdWdhaWtlbmhhbnNoYVwgOwor6ZaA5oi46ZaL5pS+5pS/562WIDwgbW9ua29rYWlob3VzZWlzYWt1XCA7Civkv7jntabnlJ/mtLvogIUgPCBob3VreXV1c2Vpa2F0c3VzaGFcIDsKK+adseWQjemrmOmAn+mBk+i3ryA8IHRvdW1laWtvdXNva3Vkb3Vyb1wgOwor5YaF6Zaj57eP55CG5aSn6IejIDwgbmFpa2FrdXNvdXJpZGFpamluXCA7Civml6XmnKzmlL7pgIHljZTkvJogPCBuaWhvbmhvdXNvdWt5b3VrYWlcIDsKK+iIquepuuWuh+WumeW3pealrSA8IGtvdWt1dXVjaHV1a291Z3lvdVwgOwor55Sf54mp5oOF5aCx5a2mIDwgc2VpYnV0c3Vqb3Vob3VnYWt1XCA7CivlpJrlubTnlJ/mpI3niakgPCB0YW5lbnNlaXNob2t1YnV0c3VcIDsKK+mHj+WtkOeJqeeQhuWtpiA8IHJ5b3VzaGlidXRzdXJpZ2FrdVwgOwor5YyX57Gz5ZCI6KGG5Zu9IDwgaG9rdWJlaWdhc3NodXVrb2t1XCA7CivmnaXlrqLoirPlkI3pjLIgPCByYWlreWFrdWhvdW1laXJva3VcIDsKK+WcsOaWueaknOWvn+W6gSA8IGNoaWhvdWtlbnNhdHN1Y2hvdVwgOwor55+t5pel5qSN54mpIDwgdGFuaml0c3VzaG9rdWJ1dHN1XCA7CivmqJnmupblh7rlipsgPCBoeW91anVuc2h1dHN1cnlva3VcIDsKK+WwgumWgOeahOefpeitmCA8IHNlbm1vbnRla2ljaGlzaGlraVwgOwor57WQ5ama6KGM6YCy5puyIDwga2Vra29ua291c2hpbmt5b2t1XCA7Civlronlhajkv53pmpzmnaHntIQgPCBhbnplbmhvc2hvdWpvdXlha3VcIDsKK+agquW8j+mFjeW9k+mHkSA8IGthYnVzaGlraWhhaXRvdWtpblwgOwor54m55Yil6YWN5b2T6YeRIDwgdG9rdWJldHN1aGFpdG91a2luXCA7CivkuLvlg43lnJ/lnKfkv4LmlbAgPCBzaHVkb3Vkb2F0c3VrZWlzdXVcIDsKK+WPjeWwhOeahOWNiumghuW6jyA8IGhhbnNoYXRla2loYW5qdW5qb1wgOwor57WM5riI5oiQ6ZW3546HIDwga2VpemFpc2VpY2hvdXJpdHN1XCA7CivnlKPmpa3liKXntYTlkIggPCBzYW5neW91YmV0c3VrdW1pYWlcIDsKK+Wbvemam+mAmuiyqOWfuumHkSA8IGtva3VzYWl0c3V1a2FraWtpblwgOwor5YSq562J5Y2S5qWt55SfIDwgeXV1dG91c290c3VneW91c2VpXCA7Civnn63mnJ/pm4bkuK3orJvluqcgPCB0YW5raXNodXVjaHV1a291emFcIDsKK+WFpeWbveeuoeeQhuWxgCA8IG55dXVrb2t1a2FucmlreW9rdVwgOwor5L+h6LOe5b+F572wIDwgc2hpbnNob3VoaXRzdWJhdHN1XCA7Civml6XmnKzovrLmnpfopo/moLwgPCBuaWhvbicnbm91cmlua2lrYWt1XCA7CivoiKrnqbrlroflrpnnlKPmpa0gPCBrb3VrdXV1Y2h1dXNhbmd5b3VcIDsKK+WTgeizquS/neaMgeacn+mZkCA8IGhpbnNoaXRzdWhvamlraWdlblwgOwor5pel5pys5bel5qWt6KaP5qC8IDwgbmlob25rb3VneW91a2lrYWt1XCA7CivplpPmjqXmkq7lvbHms5UgPCBrYW5zZXRzdXNhdHN1ZWlob3VcIDsKK+Wun+eJqeWkp+aooeWeiyA8IGppdHN1YnV0c3VkYWltb2tlaVwgOwor6LuN5LqL55qE5L6155WlIDwgZ3Vuaml0ZWtpc2hpbnJ5YWt1XCA7CivkuK3ot53pm6LmoLjlhbXlmaggPCBjaHV1a3lvcmlrYWt1aGVpa2lcIDsKK+mFuOWMlumChOWFg+WPjeW/nCA8IHNhbmtha2FuZ2VuaGFuJydub3VcIDsKK+eJueW+tOaKveWHuiA8IHRva3VjaG91Y2h1dXNodXRzdVwgOwor5a+/5pWZ5a6kIDwga290b2J1a2lreW91c2hpdHN1XCA7Civlhazli5nln7fooYzlpqjlrrMgPCBrb3VtdXNoaWtrb3Vib3VnYWlcIDsKK+epjeWIhuaWueeoi+W8jyA8IHNla2lidW5ob3V0ZWlzaGlraVwgOwor6auY562J5bCC6ZaA5a2m5qChIDwga291dG91c2VubW9uZ2Fra291XCA7CivnqY3nrpfpm7vlipvoqIggPCBzZWtpc2FuZGVucnlva3VrZWlcIDsKK+S6jOW5tOeUn+akjeeJqSA8IG5pbmVuc2Vpc2hva3VidXRzdVwgOwor5Zu95Lya5a++562W5aeU5ZOh5LyaIDwga29ra2FpdGFpc2FrdWlua2FpXCA7CivnrKzkuozmrKHkuJbnlYzlpKfmiKYgPCBkYWluaWppc2VrYWl0YWlzZW5cIDsKK+atqeWFteaIpumXmOi7iuS4oSA8IGhvaGVpc2VudG91c2hhcnlvdVwgOwor5Y2D5Lmd55m+5bm05LujIDwgc2Vua3l1dWh5YWt1bmVuZGFpXCA7CivlhbHlkIzoqJjogIXkvJroposgPCBreW91ZG91a2lzaGFrYWlrZW5cIDsKK+enkeWtpuWNmueJqemkqCA8IGthZ2FrdWhha3VidXRzdWthblwgOwor5Lit5Zu95YWx55Sj5YWaIDwgY2h1dWdva3VreW91c2FudG91XCA7Civpq5jliIblrZDnianos6ogPCBrb3VidW5zaGlidXNzaGl0c3VcIDsKK+eZuumBlOW/g+eQhuWtpiA8IGhhdHRhdHN1c2hpbnJpZ2FrdVwgOwor57K+56We6JaE5byx6ICFIDwgc2Vpc2hpbmhha3VqYWt1c2hhXCA7CivlpKrpmb3nhrHmuKnmsLTlmaggPCB0YWl5b3VuZXRzdW9uc3Vpa2lcIDsKK+eJueWIpeihjOaUv+WMuiA8IHRva3ViZXRzdWd5b3VzZWlrdVwgOwor6Z2Z5q2i5Zyf5Zyn5L+C5pWwIDwgc2Vpc2hpZG9hdHN1a2Vpc3V1XCA7CivkuInoibLljbDliLfms5UgPCBzYW5zaG9rdWluc2F0c3Vob3VcIDsKK+aOkuWNteiqmOeZuuWJpCA8IGhhaXJhbicneXV1aGF0c3V6YWlcIDsKK+eUn+a0u+W/hemcgOWTgSA8IHNlaWthdHN1aGl0c3VqdWhpblwgOwor5bCR5bm06ZGR5Yil5omAIDwgc2hvdW5lbmthbmJldHN1c2hvXCA7Civkurrlj6Pli5XmhYvntbHoqIggPCBqaW5rb3Vkb3V0YWl0b3VrZWlcIDsKK+W6p+mqqOelnue1jOeXmyA8IHpha290c3VzaGlua2VpdHN1dVwgOwor5qSN5rCR5Zyw5pS/562WIDwgc2hva3VtaW5jaGlzZWlzYWt1XCA7CivoqLzliLjlj5blvJXms5UgPCBzaG91a2VudG9yaWhpa2lob3VcIDsKK+engeWwj+iqrCA8IHdhdGFrdXNoaXNob3VzZXRzdVwgOwor5ZWG5ZOB5Zue6Lui546HIDwgc2hvdWhpbmthaXRlbnJpdHN1XCA7Civlm73pgKPkuovli5nnt4/plbcgPCBrb2t1cmVuamltdXNvdWNob3VcIDsKK+evgOi2s+WLleeJqemWgCA8IHNlc3Nva3Vkb3VidXRzdW1vblwgOwor552A55Sf5qSN54mpIDwgY2hha3VzZWlzaG9rdWJ1dHN1XCA7CivkuI3li5XnlKPlj5blvpfnqI4gPCBmdWRvdXNhbnNodXRva3V6ZWlcIDsKK+W5tOasoeaciee1puS8keaahyA8IG5lbmppeXV1a3l1dWt5dXVrYVwgOwor5a6f54mp5Y+W5byVIDwgaml0c3VidXRzdXRvcmloaWtpXCA7CivljYHkuozmjIfohbjmvbDnmI0gPCBqdXVuaXNoaWNob3VrYWl5b3VcIDsKK+ioiOeul+eUn+eJqeWtpiA8IGtlaXNhbnNlaWJ1dHN1Z2FrdVwgOwor5bCx6IG35oOF5aCx6KqMIDwgc2h1dXNob2t1am91aG91c2hpXCA7Civlu7roqK3nmoTplqLkv4IgPCBrZW5zZXRzdXRla2lrYW5rZWlcIDsKK+WuouWupOS5l+WLmeWToSA8IGt5YWt1c2hpdHN1am91bXVpblwgOwor5pSv5oyB5Yqb5a6a5byPIDwgc2hpamlyeW9rdXRlaXNoaWtpXCA7Civli5XnianooYzli5XlraYgPCBkb3VidXRzdWtvdWRvdWdha3VcIDsKK+aIpuS6ieeKr+e9quazleW7tyA8IHNlbnNvdWhhbnphaWhvdXRlaVwgOwor6IG36IO95Luj6KGo5Yi2IDwgc2hva3Vub3VkYWloeW91c2VpXCA7CivmnIDpq5jmpJzlr5/luoEgPCBzYWlrb3VrZW5zYXRzdWNob3VcIDsKK+W/g+elnuiAl+W8seiAhSA8IHNoaW5zaGlubW91amFrdXNoYVwgOwor5bm05Yqf5bqP5YiX5Yi25bqmIDwgbmVua291am9yZXRzdXNlaWRvXCA7CivkupznsbPliKnliqDlkIjooYblm70gPCBhbWVyaWthZ2Fzc2h1dWtva3VcIDsKK+eEoeiEiuakjuWLleeJqSA8IG11c2VraXRzdWlkb3VidXRzdVwgOwor6L6y5p6X5rC055Sj5aSn6IejIDwgbm91cmluc3Vpc2FuZGFpamluXCA7Civnm7TmjqXmjqXop6YgPCBjaG9rdXNldHN1c2Vzc2hva3VcIDsKK+WutuWuheS+teWFpee9qiA8IGthdGFrdXNoaW4nJ255dXV6YWlcIDsKK+WIhuWtkOeUn+eJqeWtpiA8IGJ1bnNoaXNlaWJ1dHN1Z2FrdVwgOwor5Li76KaB6YOo5YWI5bCO5Z6LIDwgc2h1eW91YnVzZW5kb3VnYXRhXCA7CivlpKnkvZPlhpnnnJ/ooZMgPCB0ZW50YWlzaGFzaGluanV0c3VcIDsKK+enmOWvhua8j+a0qee9qiA8IGhpbWl0c3Vyb3VzZXRzdXphaVwgOwor6LK45LuY5L+h6KiXIDwga2FzaGl0c3VrZXNoaW50YWt1XCA7CivplpPmjqXnm67nmoToqp4gPCBrYW5zZXRzdW1va3V0ZWtpZ29cIDsKK+eymOa2suWIhuazjOiFuiA8IG5lbicnZWtpYnVucGl0c3VzZW5cIDsKK+eerOmWk+aOpeedgOWJpCA8IHNodW5rYW5zZXRjaGFrdXphaVwgOwor5Lq65Y+j5a+G6ZuG546HIDwgamlua291bWlzc2h1dXJpdHN1XCA7Civlm73msJHlgaXlurfkv53pmbogPCBrb2t1bWlua2Vua291aG9rZW5cIDsKK+WOn+iJsuWGmeecn+eJiCA8IGdlbnNob2t1c2hhc2hpbmJhblwgOwor5LiN5a6a6KiI6YeP56m66ZaTIDwgZnV0ZWlrZWlyeW91a3V1a2FuXCA7Civph4/lrZDoibLlipvlraYgPCByeW91c2hpaXJvcmlraWdha3VcIDsKK+WcqOaXpeexs+mZuOi7jSA8IHphaW5pY2hpYmVpcmlrdWd1blwgOwor6aOf5ZOB5re75Yqg54mpIDwgc2hva3VoaW50ZW5rYWJ1dHN1XCA7Civlj43luJ3lm73kuLvnvqnogIUgPCBoYW50ZWlrb2t1c2h1Z2lzaGFcIDsKK+WLleeJqeaAp+ibi+eZvSA8IGRvdWJ1dHN1c2VpdGFucGFrdVwgOwor54m55a6a6YO15L6/5bGAIDwgdG9rdXRlaXl1dWJpbmt5b2t1XCA7Civml6XmnKzoiKrnqbroh6rooZvpmoogPCBuaWhvbmtvdWt1dWppZWl0YWlcIDsKK+eBq+WKm+eZuumbu+aJgCA8IGthcnlva3VoYXRzdWRlbnNob1wgOwor5aSa6KeS5byP6L6y5qWtIDwgdGFrYWt1c2hpa2lub3VneW91XCA7Civpm7vojbfntZDlkIjntKDlrZAgPCBkZW5rYWtldHN1Z291c29zaGlcIDsKK+awuOS4luS4reeri+WbvSA8IGVpc2VpY2h1dXJpdHN1a29rdVwgOwor56ym5Y+35YyW5paH5a2X6ZuG5ZCIIDwgZnVnb3VrYW1vamlzaHV1Z291XCA7CivllK/nianlvIHoqLzms5UgPCB5dWlidXRzdWJlbnNob3Vob3VcIDsKK+aXpeacrOa1t+S4iuiHquihm+maiiA8IG5paG9ua2Fpam91amllaXRhaVwgOwor5Y+y55qE5ZSv54mp6KuWIDwgc2hpdGVraXl1aWJ1dHN1cm9uXCA7CivlrqPoqpPkvpvov7Dmm7ggPCBzZW5zZWlreW91anV0c3VzaG9cIDsKK+eGseiGqOW8teS/guaVsCA8IG5ldHN1Ym91Y2hvdWtlaXN1dVwgOwor5pyJ6ZmQ54q25oWL5paH5rOVIDwgeXV1Z2Vuam91dGFpYnVucG91XCA7CivljbPml6XpgJ/pgZQgPCBzb2t1aml0c3Vzb2t1dGF0c3VcIDsKK+akjeeJqeaAp+e5iue2rSA8IHNob2t1YnV0c3VzZWlzZW4nJ2lcIDsKK+mBjuWkseWCt+Wus+e9qiA8IGthc2hpdHN1c2hvdWdhaXphaVwgOwor5L+u5q2j6LOH5pys5Li7576pIDwgc2h1dXNlaXNoaWhvbnNodWdpXCA7CivkuIDljbXmgKflj4znlJ/lhZAgPCBpY2hpcmFuc2Vpc291c2VpamlcIDsKK+WFseWQjOWJteioreiAhSA8IGt5b3Vkb3Vzb3VzZXRzdXNoYVwgOwor5Zyw5Lit5rW35oCn5rCX5YCZIDwgY2hpY2h1dWthaXNlaWtpa291XCA7CivmipXos4fmnInkvqHoqLzliLggPCB0b3VzaGl5dXVrYXNob3VrZW5cIDsKK+S4iue0muWJr+ekvumVtyA8IGpvdWt5dXVmdWt1c2hhY2hvdVwgOwor5oim55Wl55qE5o+Q5pC6IDwgc2Vucnlha3V0ZWtpdGVpa2VpXCA7CivliY3mlrnlho3oo5zntabngrkgPCB6ZW5wb3VzYWlob2t5dXV0ZW5cIDsKK+eZvueZuueZvuS4rSA8IGh5YXBwYXRzdWh5YWt1Y2h1dVwgOwor55Kw5aKD5bqB6ZW35a6YIDwga2Fua3lvdWNob3VjaG91a2FuXCA7Civlj5bnt6DlvbnkvJogPCB0b3Jpc2hpbWFyaXlha3VrYWlcIDsKK+Wcp+WKm+iqv+aVtOWZqCA8IGF0c3VyeW9rdWNob3VzZWlraVwgOwor55Sf6a6u6aOf5paZ5ZOBIDwgc2Vpc2Vuc2hva3VyeW91aGluXCA7CivmlL7lsITmgKfnianos6ogPCBob3VzaGFzZWlidXNzaGl0c3VcIDsKK+WcsOeQg+eJqeeQhuWtpiA8IGNoaWt5dXVidXRzdXJpZ2FrdVwgOwor5Y+N5a6X5pWZ5pS56Z2pIDwgaGFuc2h1dWt5b3VrYWlrYWt1XCA7CivlraborZjntYzpqJPogIUgPCBnYWt1c2hpa2lrZWlrZW5zaGFcIDsKK+eri+aGsuWQm+S4u+aUv+S9kyA8IHJpa2tlbmt1bnNodXNlaXRhaVwgOwor5pS+6YCB56aB5q2i55So6KqeIDwgaG91c291a2luc2hpeW91Z29cIDsKK+i1pOmdouaBkOaAlueXhyA8IHNla2ltZW5reW91ZnVzaG91XCA7Civpo5/lk4HooZvnlJ/ms5UgPCBzaG9rdWhpbicnZWlzZWlob3VcIDsKK+aVmeiBt+WToee1hOWQiCA8IGt5b3VzaG9rdWlua3VtaWFpXCA7CivljYHkuIDpnaLoprPkuJbpn7MgPCBqdXVpY2hpbWVua2FuemVvblwgOwor5q+b5rKi5p2x5Li75bitIDwgbW91dGFrdXRvdXNodXNla2lcIDsKK+WIpemAlOepjeeri+mHkSA8IGJldHRvdHN1bWl0YXRla2luXCA7Civov5Tkv6HmlpnokYnmm7ggPCBoZW5zaGlucnlvdWhhZ2FraVwgOwor6Ku46LuK6YCa6KGM5q2iIDwgc2hvc2hhdHN1dWtvdWRvbWVcIDsKK+W9oueKtuiomOaGtuWQiOmHkSA8IGtlaWpvdWtpb2t1Z291a2luXCA7Civlm73lnJ/luoHplbflrpggPCBrb2t1ZG9jaG91Y2hvdWthblwgOwor5Ye65Yqb6KOF572uIDwgc2h1dHN1cnlva3Vzb3VjaGlcIDsKK+ikh+mbkemqqOaKmCA8IGZ1a3V6YXRzdWtvc3NldHN1XCA7CivkuIvkvY3nr4TnlofljJbntKDmgKcgPCBrYWloYW5jaHV1a2Fzb3NlaVwgOwor5Yun5ZaE5oey5oKq5YqHIDwga2FuemVuY2hvdWFrdWdla2lcIDsKK+WMu+WtpueUn+eJqeWtpiA8IGlnYWt1c2VpYnV0c3VnYWt1XCA7CivpnZ7mqJnmupbmi6HlvLUgPCBoaWh5b3VqdW5rYWt1Y2hvdVwgOwor6KGM5YuV55m66LW35pmC5Yi7IDwga291ZG91aGFra2lqaWtva3VcIDsKK+WNgemDqOmWgOWIhumhnuazlSA8IGp1dWJ1bW9uYnVucnVpaG91XCA7CivlpKrpmb3lhYnnmbrpm7sgPCB0YWl5b3Vrb3VoYXRzdWRlblwgOwor5LiW55WM5LiA5ZGo5peF6KGMIDwgc2VrYWlpc3NodXVyeW9rb3VcIDsKK+i/lOS/oeeUqOiRieabuCA8IGhlbnNoaW4nJ3lvdWhhZ2FraVwgOwor5LiW55WM5Lq65qip5a6j6KiAIDwgc2VrYWlqaW5rZW5zZW5nZW5cIDsKK+WFrOeahOWMu+eZguapn+mWoiA8IGtvdXRla2lpcnlvdWtpa2FuXCA7CivniannmoTmtYHpgJogPCBidXRzdXRla2lyeXV1dHN1dVwgOwor5Y2B5bm05LiA5piUIDwganV1bmVuaGl0b211a2FzaGlcIDsKK+elpeaciOWRveaXpSA8IHNob3V0c3VraW1laW5pY2hpXCA7CivnnJ/nj6DppIrmrpbloLQgPCBzaGluanV5b3VzaG9rdWpvdVwgOwor5oim55Wl54mp6LOqIDwgc2Vucnlha3VidXNzaGl0c3VcIDsKK+iCi+mWk+elnue1jOeXmyA8IHJva2thbnNoaW5rZWl0c3V1XCA7CivmtbfmtIvniannkIblraYgPCBrYWl5b3VidXRzdXJpZ2FrdVwgOwor57K+56We55qE6Ium55ebIDwgc2Vpc2hpbnRla2lrdXRzdXVcIDsKK+S6pOa1geeZuumbu+apnyA8IGtvdXJ5dXVoYXRzdWRlbmtpXCA7CivlsLHogbfmtLvli5UgPCBzaHV1c2hva3VrYXRzdWRvdVwgOwor5Y+X5YON5Zyf5Zyn5L+C5pWwIDwganVkb3Vkb2F0c3VrZWlzdXVcIDsKK+eLqeeMn+aOoembhuawkSA8IHNodXJ5b3VzYWlzaHV1bWluXCA7CivkuI3norrlrprmgKfljp/nkIYgPCBmdWtha3V0ZWlzZWlnZW5yaVwgOwor5oim6ZeY5q2j6Z2i5bmFIDwgc2VudG91c2hvdW1lbmhhYmFcIDsKK+S4jeS/oeS7u+aKleelqCA8IGZ1c2hpbicnbmludG91aHlvdVwgOwor6YCB6YeR5Y+X5Y+W5Lq6IDwgc291a2luJyd1a2V0b3JpbmluXCA7CivlvLHogonlvLfpo58gPCBqYWt1bmlrdWt5b3VzaG9rdVwgOwor5Ly457iu56iO546HIDwgc2hpbnNodWt1emVpcml0c3VcIDsKK+S6jOetiei+uuS4ieinkuW9oiA8IG5pdG91aGVuc2Fua2Fra2VpXCA7CivvvKTvvLLvvLPnkIboq5YgPCBkaVwgzIRhXCDMhHJ1ZXN1cmlyb25cIDsKK+mjn+ezp+euoeeQhuazlSA8IHNob2t1cnlvdWthbnJpaG91XCA7Civnm7Lohbjngo7miYvooZMgPCBtb3VjaG91ZW5zaHVqdXRzdVwgOwor56We5Ye66ay85rKhIDwgc2hpbnNodXRzdWtpYm90c3VcIDsKK+esrOS4gOe0muauuuS6uiA8IGRhaWlra3l1dXNhdHN1amluXCA7CivmiKbnlaXmoLjlhbXlmaggPCBzZW5yeWFrdWtha3VoZWlraVwgOwor5LiD5LiD5pelIDwgc2hpY2hpc2hpY2hpbmljaGlcIDsKK+e0q+mcsuiNiSA8IG11cmFzYWtpdHN1eXVrdXNhXCA7Civlh43ntZDpmLLmraLliaQgPCB0b3VrZXRzdWJvdXNoaXphaVwgOwor5Lit6ZaT6YWN5b2T6aGNIDwgY2h1dWthbmhhaXRvdWdha3VcIDsKK+aUv+S7pOaMh+WumumDveW4giA8IHNlaXJlaXNoaXRlaXRvc2hpXCA7CivlkLjooYDli5XniakgPCBreXV1a2V0c3Vkb3VidXRzdVwgOwor6auY6YCf5aKX5q6W54KJIDwga291c29rdXpvdXNob2t1cm9cIDsKK+i/lOS/oeaWmeWwgeetkiA8IGhlbnNoaW5yeW91ZnV1dG91XCA7CivooZvmmJ/lnLDnkIPlsYAgPCBlaXNlaWNoaWt5dXVreW9rdVwgOwor5Zyo55WZ5aSW5Zu95Lq6IDwgemFpcnl1dWdhaWtva3VqaW5cIDsKK+eGseWKm+WtpueahCA8IG5ldHN1cmlraWdha3V0ZWtpXCA7CivmpI3nianmjqHpm4YgPCBzaG9rdWJ1dHN1c2Fpc2h1dVwgOwor5Ye65Yqb56uv5a2QIDwgc2h1dHN1cnlva3V0YW5zaGlcIDsKK+aomea6luWFpeWKmyA8IGh5b3VqdW4nJ255dXVyeW9rdVwgOwor55Sj5qWt5buD5qOE54mpIDwgc2FuZ3lvdWhhaWtpYnV0c3VcIDsKK+eEoeaLheS/neWAn+WFpemHkSA8IG11dGFucG9rYXJpaXJla2luXCA7CivoprPokYnmpI3niakgPCBrYW4nJ3lvdXNob2t1YnV0c3VcIDsKK+WkqeeEtuiomOW/teeJqSA8IHRlbicnbmVua2luZW5idXRzdVwgOwor5Y2Y5L2N5Yq05YON57WE5ZCIIDwgdGFuJydpcm91ZG91a3VtaWFpXCA7CivkuK3lpK7lh6bnkIboo4Xnva4gPCBjaHV1b3VzaG9yaXNvdWNoaVwgOwor5Ye655Sf6Ki85piO5pu4IDwgc2h1c3NlaXNob3VtZWlzaG9cIDsKK+mBuOaMmeeuoeeQhuWnlOWToeS8miA8IHNlbmt5b2thbnJpaWlua2FpXCA7CivkuIrntJrnrqHnkIbogbcgPCBqb3VreXV1a2FucmlzaG9rdVwgOwor56iO6Zai55Sz5ZGK5pu4IDwgemVpa2Fuc2hpbmtva3VzaG9cIDsKK+S4g+eUn+WgseWbvSA8IHNoaWNoaXNob3Vob3Vrb2t1XCA7Civov5Tkv6HnlKjlsIHnrZIgPCBoZW5zaGluJyd5b3VmdXV0b3VcIDsKK+eGseeLgueahOS/oeiAhSA8IG5la2t5b3V0ZWtpc2hpbmphXCA7CivkvIHmpa3plpPkv6HnlKggPCBraWd5b3VrYW5zaGluJyd5b3VcIDsKK+asp+W3numAmuiyqOWNmOS9jSA8IG91c2h1dXRzdXVrYXRhbicnaVwgOwor6ZaL5ouT6ICF57K+56WeIDwga2FpdGFrdXNoYXNlaXNoaW5cIDsKK+Wun+eJqeaPj+WGmSA8IGppdHN1YnV0c3VieW91c2hhXCA7Civmt7HlnKjmgKfnnJ/oj4wgPCBzaGluemFpc2Vpc2hpbmtpblwgOwor6Ieq55Sx6LK/5piT5biv5Z+fIDwgaml5dXVib3Vla2l0YWlpa2lcIDsKK+adkeiQveWFseWQjOS9kyA8IHNvbnJha3VreW91ZG91dGFpXCA7CivkuIrpmbjnlKjoiJ/oiYcgPCBqb3VyaWt1eW91c2h1dXRlaVwgOwor5Y+k55Sf54mp5a2m6ICFIDwga29zZWlidXRzdWdha3VzaGFcIDsKK+auuuecn+iPjOiWrCA8IHNhdHN1c2hpbmtpbicneWFrdVwgOwor6ZaL55m66YCU5LiK5Zu9IDwga2FpaGF0c3V0b2pvdWtva3VcIDsKK+ihgOWcp+mZjeS4i+WJpCA8IGtldHN1YXRzdWtvdWthemFpXCA7CivnhKHlt67liKXniIbmkoMgPCBtdXNhYmV0c3ViYWt1Z2VraVwgOwor5bmz5ZKM55qE6Kej5rG6IDwgaGVpd2F0ZWtpa2Fpc2V0c3VcIDsKK+S4i+S9jeevhOeWh+WMluWOn+eQhiA8IGthaWhhbmNodXVrYWdlbnJpXCA7Civpo5/lk4HliqDlt6Xmpa0gPCBzaG9rdWhpbmtha291Z3lvdVwgOwor5oGL5oSb6Iez5LiK5Li7576pIDwgcmVuJydhaXNoaWpvdXNodWdpXCA7Civpq5jntJrkvY/lroXlnLAgPCBrb3VreXV1anV1dGFrdWNoaVwgOwor6Ieq5YuV6LuK5L+d6Zm65paZIDwgamlkb3VzaGFob2tlbnJ5b3VcIDsKK+mBjuWkseiHtOatu+e9qiA8IGthc2hpdHN1Y2hpc2hpemFpXCA7Civpq5jpoY3miYDlvpfogIUgPCBrb3VnYWt1c2hvdG9rdXNoYVwgOwor5Y2B5LiA6Z2i6Kaz6Z+zIDwganV1aWNoaW1lbmthbicnbm9uXCA7CivogLPpvLvlkr3llonlsILploDljLsgPCBqaWJpaW5rb3VzZW5tb24nJ2lcIDsKK+aciOe1jOWbsOmbo+eXhyA8IGdla2tlaWtvbicnbmFuc2hvdVwgOwor5Zu96Zqb6KaL5pys5biCIDwga29rdXNhaW1paG9uJydpY2hpXCA7Civnt5HlnLDljJboqIjnlLsgPCByeW9rdWNoaWtha2Vpa2FrdVwgOwor5qiZ5pys5oq95Ye6IDwgaHlvdWhvbmNodXVzaHV0c3VcIDsKK+aIpuWgtOiIquepuumYu+atoiA8IHNlbmpvdWtvdWt1dXNvc2hpXCA7CivkuK3mnqLnpZ7ntYzns7sgPCBjaHV1c3V1c2hpbmtlaWtlaVwgOwor57Wx5ZCI5Y+C6KyA5pys6YOoIDwgdG91Z291c2FuYm91aG9uYnVcIDsKK+e3j+aLrOizquWVjyA8IHNvdWthdHN1c2hpdHN1bW9uXCA7Civlrp/pqJPnmoTnoJTnqbYgPCBqaWtrZW50ZWtpa2Vua3l1dVwgOwor5bCC55So6aeQ6LuK5aC0IDwgc2VuJyd5b3VjaHV1c2hham91XCA7Civmva7lipvnmbrpm7sgPCBjaG91cnlva3VoYXRzdWRlblwgOwor54Sh6YGO5aSx6LKs5Lu7IDwgbXVrYXNoaXRzdXNla2luaW5cIDsKK+S4gOasoeaWueeoi+W8jyA8IGljaGlqaWhvdXRlaXNoaWtpXCA7CivlsLHmpa3mmYLplpPkuK0gPCBzaHV1Z3lvdWppa2FuY2h1dVwgOwor5Zu95rCR5LyR5pqH5p2RIDwga29rdW1pbmt5dXVrYW11cmFcIDsKK+WtkOWuruWkluWmiuWooCA8IHNoaWt5dXVnYWluaW5zaGluXCA7CivnhKHmi4Xkv53osrjku5ggPCBtdXRhbnBva2FzaGl0c3VrZVwgOwor5LiA57KS5a2Q5pei57SEIDwgaWNoaXJ5dXVzaGlraXlha3VcIDsKK+S8gealreWIpee1hOWQiCA8IGtpZ3lvdWJldHN1a3VtaWFpXCA7CivkuI3ms5XkvrXlhaXogIUgPCBmdWhvdXNoaW4nJ255dXVzaGFcIDsKK+ebtOaOpeizvOWFpSA8IGNob2t1c2V0c3Vrb3VueXV1XCA7Civlj47nqavmhJ/orJ3npa0gPCBzaHV1a2FrdWthbnNoYXNhaVwgOwor5oyH5ZCR5oCn54iG6JasIDwgc2hpa291c2VpYmFrdXlha3VcIDsKK+W/g+WboOaAp+WPjeW/nCA8IHNoaW4nJ2luc2VpaGFuJydub3VcIDsKK+acgOmVt+S4jeWAkui3nemboiA8IHNhaWNob3VmdXRvdWt5b3JpXCA7CivkupznhrHluK/mpI3niakgPCBhbmV0dGFpc2hva3VidXRzdVwgOwor56qu5qW155uu55qEIDwga3l1dWt5b2t1bW9rdXRla2lcIDsKK+WGhemWo+e3j+i+nuiBtyA8IG5haWtha3Vzb3VqaXNob2t1XCA7CivlpKnnhaflpKfnpZ4gPCBhbWF0ZXJhc3Vvb21pa2FtaVwgOwor5Y2w6LGh5Li7576p6Z+z5qW9IDwgaW5zaG91c2h1Z2lvbmdha3VcIDsKK+i/keS7o+S6lOeoruertuaKgCA8IGtpbmRhaWdvc2h1a3lvdWdpXCA7Civos6rlrp/liZvlgaUgPCBzaGl0c3VqaXRzdWdvdWtlblwgOwor6Ki85Yi45Y+W5byV5omAIDwgc2hvdWtlbnRvcmloaWtpam9cIDsKK+WxiOaKmOacm+mBoOmPoSA8IGt1c3NldHN1Ym91ZW5reW91XCA7CivlsYDlpJbkuK3nq4sgPCBreW9rdWdhaWNodXVyaXRzdVwgOwor5b6M5pa55Zyw5Z+f6K2m5YKZIDwga291aG91Y2hpaWtpa2VpYmlcIDsKK+atr+eJmeefr+ato+ihkyA8IHNoaWdha3lvdXNlaWp1dHN1XCA7CivljZjntLDog57nlJ/niakgPCB0YW5zYWlib3VzZWlidXRzdVwgOwor5pel5pys6Jas5bGA5pa5IDwgbmlob24nJ3lha2t5b2t1aG91XCA7Civoh6rli5Xmk43nuKboo4Xnva4gPCBqaWRvdXNvdWp1dXNvdWNoaVwgOwor5rex5bGk5b+D55CG5a2mIDwgc2hpbnNvdXNoaW5yaWdha3VcIDsKK+mDveW4guWvvuaKl+mHjueQgyA8IHRvc2hpdGFpa291eWFreXV1XCA7Civph5HliZvlpJzlj4nlppnnjosgPCBrb25nb3V5YXNoYW15b3VvdVwgOwor57K+56We6JaE5byx5YWQIDwgc2Vpc2hpbmhha3VqYWt1amlcIDsKK+iJsuW9qeiqv+evgCA8IHNoaWtpc2FpY2hvdXNldHN1XCA7CivolqznlKjmpI3niakgPCB5YWt1eW91c2hva3VidXRzdVwgOwor5YyW5a2m5pa556iL5byPIDwga2FnYWt1aG91dGVpc2hpa2lcIDsKK+aApemZjeS4i+eIhuaSgyA8IGt5dXVrb3VrYWJha3VnZWtpXCA7CivmsLTkuIrnlJ/mtLvogIUgPCBzdWlqb3VzZWlrYXRzdXNoYVwgOwor5Zyo5a2m6Ki85piO5pu4IDwgemFpZ2FrdXNob3VtZWlzaG9cIDsKK+akjeawkeWcsOe1seayuyA8IHNob2t1bWluY2hpdG91Y2hpXCA7CivplqLmlbDmlrnnqIvlvI8gPCBrYW5zdXVob3V0ZWlzaGlraVwgOwor56eL6Zyc54OI5pelIDwgc2h1dXNvdXJldHN1aml0c3VcIDsKK+ebtOaOpeiri+axgiA8IGNob2t1c2V0c3VzZWlreXV1XCA7CivmjqjpgLLnoJTnqbbmiYAgPCBzdWlzaGlua2Vua3l1dXNob1wgOwor5a6X5pWZ5ZOy5a2mIDwgc2h1dWt5b3V0ZXRzdWdha3VcIDsKK+aIpuihk+aguOWFteWZqCA8IHNlbmp1dHN1a2FrdWhlaWtpXCA7Civpq5jpgJ/mvJTnrpfmqZ/mp4sgPCBrb3Vzb2t1ZW56YW5raWtvdVwgOwor55m65bGV55qE6Kej5raIIDwgaGF0dGVudGVraWthaXNob3VcIDsKK+mjm+ihjOemgeatouepuuWfnyA8IGhpa291a2luc2hpa3V1aWtpXCA7Civlm73nq4vlm7Pmm7jppKggPCBrb2t1cml0c3V0b3Nob2thblwgOwor5LiJ6KGM5bqD5ZGK5qyEIDwgc2FuZ3lvdWtvdWtva3VyYW5cIDsKK+WLp+alreWNmuimp+S8miA8IGthbmd5b3VoYWt1cmFua2FpXCA7CivolqzniankuK3mr5IgPCB5YWt1YnV0c3VjaHV1ZG9rdVwgOwor5YiG5p6Q5b+D55CG5a2mIDwgYnVuc2VraXNoaW5yaWdha3VcIDsKK+aVmeiCsuW/g+eQhuWtpiA8IGt5b3Vpa3VzaGlucmlnYWt1XCA7Civmpa3li5nkuIrpgY7lpLEgPCBneW91bXVqb3VrYXNoaXRzdVwgOwor55Kw5aKD5L+d6K236KuW6ICFIDwga2Fua3lvdWhvZ29yb25zaGFcIDsKK+aIkOe4vuiovOaYjuabuCA8IHNlaXNla2lzaG91bWVpc2hvXCA7CivpgLHplpPlpKnmsJfkuojloLEgPCBzaHV1a2FudGVua2l5b2hvdVwgOwor5pS+5bCE57ea5oSf5Y+X5oCnIDwgaG91c2hhc2Vua2FuanVzZWlcIDsKK+ekvuS8muawkeS4u+S4u+e+qSA8IHNoYWthaW1pbnNodXNodWdpXCA7CivlsI/lv4Pnv7znv7wgPCBzaG91c2hpbicneW9rdXlva3VcIDsKK+eJueWIpeW5leWDmiA8IHRva3ViZXRzdWJha3VyeW91XCA7CivlhaXlrablv5fpoZjogIUgPCBueXV1Z2FrdXNoaWdhbnNoYVwgOwor6YOo5YiG5oOF5aCx5qeL6YCgIDwgYnVidW5qb3Vob3Vrb3V6b3VcIDsKK+S4gOaMmeaJi+S4gOaKlei2syA8IGlra3lvc2h1aXR0b3Vzb2t1XCA7CivliIboo4Lnianos6ogPCBidW5yZXRzdWJ1c3NoaXRzdVwgOwor5pyJ5b2i5Zu65a6a6LOH55SjIDwgeXV1a2Vpa290ZWlzaGlzYW5cIDsKK+S4reWkruaUvumAgeWxgCA8IGNodXVvdWhvdXNvdWt5b2t1XCA7Civnm7TmjqXnhafmmI4gPCBjaG9rdXNldHN1c2hvdW1laVwgOwor6aOb6KGM6KiY6Yyy6KOF572uIDwgaGlrb3VraXJva3Vzb3VjaGlcIDsKK+iiq+aLheS/neWCteaoqemhjSA8IGhpdGFucG9zYWlrZW5nYWt1XCA7CivlhbHlkIznm7jntprkurogPCBreW91ZG91c291em9rdW5pblwgOwor5Zix6KiX5q665Lq6IDwgc2hva3V0YWt1c2F0c3VqaW5cIDsKK+eglOeptueZuuihqOS8miA8IGtlbmt5dXVoYXBweW91a2FpXCA7CivkuozkuqTmm7/liLblirTlg40gPCBuaWtvdXRhaXNlaXJvdWRvdVwgOwor5rm/55Sf5qSN54mpIDwgc2hpc3NlaXNob2t1YnV0c3VcIDsKK+S4g+WNgeS6uuiosyA8IHNoaWNoaWp1dW5pbicneWFrdVwgOwor5L+d5a6I57O754Sh5omA5bGeIDwgaG9zaHVrZWltdXNob3pva3VcIDsKK+WkqeS9k+WIhuWFieihkyA8IHRlbnRhaWJ1bmtvdWp1dHN1XCA7CivnkIPpnaLkuInop5Lms5UgPCBreXV1bWVuc2Fua2FrdWhvdVwgOwor6KiI6YeP57WM5riI5a2mIDwga2VpcnlvdWtlaXphaWdha3VcIDsKK+WPjei7ouWIhuW4g+S/guaVsCA8IGhhbnRlbmJ1bnB1a2Vpc3V1XCA7CivokZfkvZzmqKnkvrXlrrMgPCBjaG9zYWt1a2Vuc2hpbmdhaVwgOwor54m55Yil5byB6K235Lq6IDwgdG9rdWJldHN1YmVuZ29uaW5cIDsKK+WvjOWbveW8t+WFteetliA8IGZ1a29rdWt5b3VoZWlzYWt1XCA7CivnqbrmjLrpmY3kuIvlnLDln58gPCBrdXV0ZWlrb3VrYWNoaWlraVwgOwor5LqI5oOz5Y+O56mr6auYIDwgeW9zb3VzaHV1a2FrdWRha2FcIDsKK+eBq+WKm+aUr+aPtOmDqOmaiiA8IGthcnlva3VzaGllbmJ1dGFpXCA7CivooYDlj4vnl4XmgqPogIUgPCBrZXRzdXl1dWJ5b3VrYW5qYVwgOwor55m655mM54mp6LOqIDwgaGF0c3VnYW5idXNzaGl0c3VcIDsKK+ebtOinkuS4ieinkuW9oiA8IGNob2trYWt1c2Fua2Fra2VpXCA7Civnmb3plbfpoIjpr6ggPCBzaGlyb25hZ2FzdWt1amlyYVwgOwor6ZeH5L6h5qC85Y2U5a6aIDwgeWFtaWtha2FrdWt5b3V0ZWlcIDsKK+ims+iznuakjeeJqSA8IGthbnNob3VzaG9rdWJ1dHN1XCA7CivotaTlpJbnt5rlhpnnnJ8gPCBzZWtpZ2Fpc2Vuc2hhc2hpblwgOwor5b+D56We5Zaq5aSxIDwgc2hpbnNoaW5zb3VzaGl0c3VcIDsKK+mAmuS/l+Wwj+iqrCA8IHRzdXV6b2t1c2hvdXNldHN1XCA7CivmrYzoiJ7kvI7ljYHlhavnlaogPCBrYWJ1a2lqdXVoYWNoaWJhblwgOwor55m+5oim55m+5YudIDwgaHlha3VzZW5oeWFrdXNob3VcIDsKK+Wkqeeah+apn+mWouiqrCA8IHRlbicnbm91a2lrYW5zZXRzdVwgOwor5YWs6Ki85Lq65b255aC0IDwga291c2hvdW5pbicneWFrdWJhXCA7CivotoXnj77lrp/kuLvnvqkgPCBjaG91Z2Vuaml0c3VzaHVnaVwgOwor5LqM5qW155yf56m6566hIDwgbmlreW9rdXNoaW5rdXVrYW5cIDsKK+aPkOeBr+ihjOWIlyA8IGNob3VjaGluZ3lvdXJldHN1XCA7CivpmKrnpZ7lpKfpnIfngb0gPCBoYW5zaGluZGFpc2hpbnNhaVwgOwor5aSx5qWt5a++562WIDwgc2hpdHN1Z3lvdXRhaXNha3VcIDsKK+azleWumuW+l+elqOaVsCA8IGhvdXRlaXRva3VoeW91c3V1XCA7CivoqK3nq4votqPmhI/mm7ggPCBzZXRzdXJpdHN1c2h1aXNob1wgOwor5aSW5Zu95Lq655m76YyyIDwgZ2Fpa29rdWppbnRvdXJva3VcIDsKK+i6q+S9k+manOWus+iAhSA8IHNoaW50YWlzaG91Z2Fpc2hhXCA7CivlpKfph4/noLTlo4rlhbXlmaggPCB0YWlyeW91aGFrYWloZWlraVwgOwor5raI6LK76ICF5L+h55SoIDwgc2hvdWhpc2hhc2hpbicneW91XCA7Civlj43lsITkv4LmlbDnt5rlm7MgPCBoYW5zaGFrZWlzdXVzZW56dVwgOwor6YiN6KeS5LiJ6KeS5b2iIDwgZG9ua2FrdXNhbmtha3VrZWlcIDsKK+a1t+mbo+WvqeWIpOW6gSA8IGthaW5hbnNoaW5wYW5jaG91XCA7Civniq/nvarnmbrnlJ/njocgPCBoYW56YWloYXNzZWlyaXRzdVwgOwor5b6u55Sf54mp5a2m6ICFIDwgYmlzZWlidXRzdWdha3VzaGFcIDsKK+S4g+iJsuWUkOi+m+WtkCA8IG5hbmFpcm90b3VnYXJhc2hpXCA7CivntKDnspLlrZDliqDpgJ/lmaggPCBzb3J5dXVzaGlrYXNva3VraVwgOwor5YWs6IG36YG45oyZ5rOVIDwga291c2hva3VzZW5reW9ob3VcIDsKK+WumuW9oumDteS+v+eJqSA8IHRlaWtlaXl1dWJpbmJ1dHN1XCA7Civoh6rnlLHosr/mmJPlnLDln58gPCBqaXl1dWJvdWVraWNoaWlraVwgOwor5a++5Lit5Zu96Zai5L+CIDwgdGFpY2h1dWdva3VrYW5rZWlcIDsKK+WFrOmWi+W4guWgtOaTjeS9nCA8IGtvdWthaXNoaWpvdXNvdXNhXCA7Civnp5HlrabmioDooZPluoEgPCBrYWdha3VnaWp1dHN1Y2hvdVwgOwor5bem5YG06YCa6KGMIDwgaGlkYXJpZ2F3YXRzdXVrb3VcIDsKK+Wkp+iLseWNmueJqemkqCA8IGRhaWVpaGFrdWJ1dHN1a2FuXCA7Civli5XohIjnoazljJbnl4cgPCBkb3VteWFrdWtvdWthc2hvdVwgOwor5bid546L56We5qip6KqsIDwgdGVpb3VzaGlua2Vuc2V0c3VcIDsKK+aVkeWHuuS9nOaIpiA8IGt5dXVzaHV0c3VzYWt1c2VuXCA7CivlroflrpnlpKfniIbnmbogPCB1Y2h1dWRhaWJha3VoYXRzdVwgOwor6aaW55u45YW85aSW55u4IDwgc2h1c2hvdWtlbmdhaXNob3VcIDsKK+eUn+eJqeWcsOeQhuWtpiA8IHNlaWJ1dHN1Y2hpcmlnYWt1XCA7Civkurrouqvkv53orbfku6TnirYgPCBqaW5zaGluaG9nb3JlaWpvdVwgOwor5Y6f5a2Q54mp55CG5a2mIDwgZ2Vuc2hpYnV0c3VyaWdha3VcIDsKK+avjeWtkOWBpeW6t+aJi+W4syA8IGJvc2hpa2Vua291dGVjaG91XCA7CivnlaXlj5boqpjmi5DnvaogPCByeWFrdXNodXl1dWthaXphaVwgOwor5a6k5YaF6KOF6aO+IDwgc2hpdHN1bmFpc291c2hva3VcIDsKK+WOmueUn+W5tOmHkeS/nemZuiA8IGtvdXNlaW5lbmtpbmhva2VuXCA7Civnm7TmjqXnq7bkuokgPCBjaG9rdXNldHN1a3lvdXNvdVwgOwor5aSp5L2T54mp55CG5a2mIDwgdGVudGFpYnV0c3VyaWdha3VcIDsKK+mZjeWcp+WkieWcp+WZqCA8IGtvdWF0c3VoZW4nJ2F0c3VraVwgOwor5p2x5Y2w5bqm5Lya56S+IDwgaGlnYXNoaWluZG9nYWlzaGFcIDsKK+eJqeizquS4u+e+qeiAhSA8IGJ1c3NoaXRzdXNodWdpc2hhXCA7Civlm73pmpvnmoTosr/mmJMgPCBrb2t1c2FpdGVraWJvdWVraVwgOwor5Lit5oCn5a2Q54iG5by+IDwgY2h1dXNlaXNoaWJha3VkYW5cIDsKK+S7o+aVsOaWueeoi+W8jyA8IGRhaXN1dWhvdXRlaXNoaWtpXCA7CivlubPlnYflpKrpmb3ml6UgPCBoZWlraW50YWl5b3VqaXRzdVwgOwor5oCn6KGM54K65oSf5p+T55eHIDwgc2Vpa291aWthbnNlbnNob3VcIDsKK+aXreaXpeaYh+WkqSA8IGt5b2t1aml0c3VzaG91dGVuXCA7CivkubPlhZDmrbvkuqHnjocgPCBueXV1amlzaGlib3VyaXRzdVwgOwor5LiH5Zu95Y2a6Kan5LyaIDwgYmFua29rdWhha3VyYW5rYWlcIDsKK+mYsuihm+aWveioreW6gSA8IGJvdWVpc2hpc2V0c3VjaG91XCA7CivmnInmlpnpp5Dou4rloLQgPCB5dXVyeW91Y2h1dXNoYWpvdVwgOwor6Ieo5bqK5b+D55CG5a2mIDwgcmluc2hvdXNoaW5yaWdha3VcIDsKK+eUn+WRveS/nemZuuS8muekviA8IHNlaW1laWhva2VuZ2Fpc2hhXCA7CivlhpnnnJ/pgLHliIroqowgPCBzaGFzaGluc2h1dWthbnNoaVwgOwor56eB5pyJ6LKh55Sj5Yi25bqmIDwgc2hpeXV1emFpc2Fuc2VpZG9cIDsKK+W3qOefs+iomOW/teeJqSA8IGt5b3Nla2lraW5lbmJ1dHN1XCA7CivkuozlhYPmlrnnqIvlvI8gPCBuaWdlbmhvdXRlaXNoaWtpXCA7CivomJroi5TmpI3niakgPCBzZW50YWlzaG9rdWJ1dHN1XCA7CivpgZPnvqnnmoTosqzku7sgPCBkb3VnaXRla2lzZWtpbmluXCA7CivnjYXlrZDllJDovpvlrZAgPCBzaGlzaGl0b3VnYXJhc2hpXCA7CivnoJTnqbblrqTmo58gPCBrZW5reXV1c2hpdHN1dG91XCA7CivmsJfosaHoprPmuKzoiLkgPCBraXNob3VrYW5zb2t1c2VuXCA7Civou73lj6PoqbEgPCBrYXJ1a3VjaGliYW5hc2hpXCA7CivkurrnjL/lkIznpZboqqwgPCBqaW4nJ2VuZG91c29zZXRzdVwgOwor5Zuj5L2T5Lqk5riJ5qipIDwgZGFudGFpa291c2hvdWtlblwgOwor5a++5Lq65oGQ5oCW55eHIDwgdGFpamlua3lvdWZ1c2hvdVwgOwor6ISz6ISK6auE6Iac54KOIDwgbm91c2VraXp1aW1ha3VlblwgOwor6KaB5rOo5oSP5Lq654mpIDwgeW91Y2h1dWlqaW5idXRzdVwgOwor5a2m5qCh5pWZ6IKy5rOVIDwgZ2Fra291a3lvdWlrdWhvdVwgOwor6KW/5YG06Ku45Zu9IDwgbmlzaGlnYXdhc2hva29rdVwgOwor546L5qip56We5o6I6KqsIDwgb3VrZW5zaGluanVzZXRzdVwgOwor55yf6YOo5YiG6ZuG5ZCIIDwgc2hpbmJ1YnVuc2h1dWdvdVwgOwor54us5Y2g56aB5q2i5rOVIDwgZG9rdXNlbmtpbnNoaWhvdVwgOwor6ISK5qSO5YuV54mpIDwgc2VraXRzdWlkb3VidXRzdVwgOwor5bGF6ZaT5YW85a+d5a6kIDwgaW1ha2Vuc2hpbnNoaXRzdVwgOwor5qGR5Y6f5qGR5Y6fIDwga3V3YWJhcmFrdXdhYmFyYVwgOwor5YWs56ew6LOH5pys6YeRIDwga291c2hvdXNoaWhvbmtpblwgOwor6Zu75YuV55m65YuV5qmfIDwgZGVuZG91aGF0c3Vkb3VraVwgOwor5b+c55So54mp55CG5a2mIDwgb3V5b3VidXRzdXJpZ2FrdVwgOwor5Lqr5qW955Sf5rS7IDwga3lvdXJha3VzZWlrYXRzdVwgOwor5YWl5Yqb6Zu75rWBIDwgbnl1dXJ5b2t1ZGVucnl1dVwgOwor5LiJ5Y2B5YWr5bqm57eaIDwgc2FuanV1aGFjaGlkb3NlblwgOwor5Y2B5bm05LiA5pelIDwganV1bmVuJydpY2hpaml0c3VcIDsKK+iqjeefpeW/g+eQhuWtpiA8IG5pbmNoaXNoaW5yaWdha3VcIDsKK+miqOS/l+Wwj+iqrCA8IGZ1dXpva3VzaG91c2V0c3VcIDsKK+S9juihgOWcp+eXhyA8IHRlaWtldHN1YXRzdXNob3VcIDsKK+W3pealreaJgOacieaoqSA8IGtvdWd5b3VzaG95dXVrZW5cIDsKK+WkmuWkiemHj+ino+aekCA8IHRhaGVucnlvdWthaXNla2lcIDsKK+iZmuOAheWun+OAhSA8IGt5b2t5b2ppdHN1aml0c3VcIDsKK+a4hea2vOmjsuaWmeawtCA8IHNlaXJ5b3VpbnJ5b3VzdWlcIDsKK+aKgOihk+WNlOWKmyA8IGdpanV0c3VreW91cnlva3VcIDsKK+epuuS4reihneeqgSA8IGt1dWNodXVzaG91dG90c3VcIDsKK+S4gOWbveS4gOWFmuS4u+e+qSA8IGlra29rdWl0dG91c2h1Z2lcIDsKK+aXpeacrOmBk+i3r+WFrOWboyA8IG5paG9uZG91cm9rb3VkYW5cIDsKK+mHkeWIqeeUn+a0u+iAhSA8IGtpbnJpc2Vpa2F0c3VzaGFcIDsKK+WNg+evh+S4gOW+iyA8IHNlbnBlbicnaWNoaXJpdHN1XCA7CivmlpnnkIbmlZnlrqQgPCByeW91cmlreW91c2hpdHN1XCA7CivpgbroqIDln7fooYzogIUgPCB5dWlnb25zaGlra291c2hhXCA7CivmnKzmoLzlsI/oqqwgPCBob25rYWt1c2hvdXNldHN1XCA7Civosr/mmJPlpJblj47mlK8gPCBib3Vla2lnYWlzaHV1c2hpXCA7Civlm73nq4vliofloLQgPCBrb2t1cml0c3VnZWtpam91XCA7Civlrp/ot7XnkIbmgKfmibnliKQgPCBqaXNzZW5yaXNlaWhpaGFuXCA7Civmn5PoibLkvZPlnLDlm7MgPCBzZW5zaG9rdXRhaWNoaXp1XCA7CivkuLvluK3noJTnqbblk6EgPCBzaHVzZWtpa2Vua3l1dWluXCA7Civpq5jpgJ/luqblhpnnnJ8gPCBrb3Vzb2t1ZG9zaGFzaGluXCA7CivojYnpo5/li5XniakgPCBzb3VzaG9rdWRvdWJ1dHN1XCA7Civpq5jmrKHmlrnnqIvlvI8gPCBrb3VqaWhvdXRlaXNoaWtpXCA7Civlvq7liIbmlrnnqIvlvI8gPCBiaWJ1bmhvdXRlaXNoaWtpXCA7Civnm7TmjqXpgbjmjJkgPCBjaG9rdXNldHN1c2Vua3lvXCA7Civpg7Xkvr/np4Hmm7jnrrEgPCB5dXViaW5zaGlzaG9iYWtvXCA7CivmlpzmoLzmgKfntbHlvqEgPCBzaGFrYWt1c2VpdG91Z3lvXCA7CivntYzlj6Ppgb/lporolqwgPCBrZWlrb3VoaW5pbicneWFrdVwgOwor5Lq65p2Q6ZaL55m66YOoIDwgamluemFpa2FpaGF0c3VidVwgOwor5aSa6YeN5ZCN5YmN56m66ZaTIDwgdGFqdXVuYW1hZWt1dWthblwgOwor55Sf6ICF5b+F5ruFIDwgc2hvdWphaGl0c3VtZXRzdVwgOwor54ax5biv5qSN54mpIDwgbmV0dGFpc2hva3VidXRzdVwgOwor5LiH5Zu95qiZ5rqW5pmCIDwgYmFua29rdWh5b3VqdW5qaVwgOwor5p2+5LiL6Zu75belIDwgbWF0c3VzaGl0YWRlbmtvdVwgOwor6Ziy6KGb5bqB6ZW35a6YIDwgYm91ZWljaG91Y2hvdWthblwgOwor5ZCr5rC05YyW5ZCI54mpIDwgZ2Fuc3Vpa2Fnb3VidXRzdVwgOwor6Zai5p2x5aSn6ZyH54G9IDwga2FudG91ZGFpc2hpbnNhaVwgOwor5ZWG5qWt566X6KGTIDwgc2hvdWd5b3VzYW5qdXRzdVwgOwor6KOF55Sy5Zue5Y+O6LuKIDwgc291a291a2Fpc2h1dXNoYVwgOwor5Zyw5pa56KGM6LKh5pS/IDwgY2hpaG91Z3lvdXphaXNlaVwgOwor5oCn6KGo54++5oOF5aCxIDwgc2VpaHlvdWdlbmpvdWhvdVwgOwor5oim5oim5qCX5qCXIDwgc2Vuc2Vucml0c3VyaXRzdVwgOwor5biM5pyb55qE6Kaz5risIDwga2lib3V0ZWtpa2Fuc29rdVwgOwor5Y+N5bCE5rib6KGw6YePIDwgaGFuc2hhZ2Vuc3VpcnlvdVwgOwor5o+u55m654mp6LOqIDwga2loYXRzdWJ1c3NoaXRzdVwgOwor5aSJ5oWL5b+D55CG5a2mIDwgaGVudGFpc2hpbnJpZ2FrdVwgOwor55m65YWJ5qSN54mpIDwgaGFra291c2hva3VidXRzdVwgOwor5qyn5bee5YWx5ZCM5L2TIDwgb3VzaHV1a3lvdWRvdXRhaVwgOwor57Sr5aSW57ea55mC5rOVIDwgc2hpZ2Fpc2VucnlvdWhvdVwgOwor6Z2e5q2m6KOF5Lit56uLIDwgaGlidXNvdWNodXVyaXRzdVwgOwor5Li75bit5aSW5Lqk5a6YIDwgc2h1c2VraWdhaWtvdWthblwgOwor57Sw6IOe6LOq6YG65LydIDwgc2FpYm91c2hpdHN1aWRlblwgOwor5YWx55Sj5YWa5a6j6KiAIDwga3lvdXNhbnRvdXNlbmdlblwgOwor6Zu75Yqb5L6b57WmIDwgZGVucnlva3VreW91a3l1dVwgOwor5beh5Zue6Ki655mC5omAIDwganVua2Fpc2hpbnJ5b3Vqb1wgOwor5rqQ5rOJ5omA5b6X56iOIDwgZ2Vuc2Vuc2hvdG9rdXplaVwgOwor57WE6IG35Yq05YON6ICFIDwgc29zaG9rdXJvdWRvdXNoYVwgOwor5Yq05YON6ICF6ZqO57SaIDwgcm91ZG91c2hha2Fpa3l1dVwgOwor5oim55Wl54iG5pKDIDwgc2Vucnlha3ViYWt1Z2VraVwgOwor5aaK5aig5Lit57W2IDwgbmluc2hpbmNodXV6ZXRzdVwgOwor5ouh5aSn5YaN55Sf55SjIDwga2FrdWRhaXNhaXNlaXNhblwgOwor5bmz5ZKM57at5oyB5rS75YuVIDwgaGVpd2FpamlrYXRzdWRvdVwgOwor5LiK57Sa6KOB5Yik5omAIDwgam91a3l1dXNhaWJhbnNob1wgOwor56aB5qyy5Li7576p6ICFIDwga2luJyd5b2t1c2h1Z2lzaGFcIDsKK+eJueauiua9nOiIquiJhyA8IHRva3VzaHVzZW5rb3V0ZWlcIDsKK+acgOaBteWbveW+hemBhyA8IHNhaWtlaWtva3V0YWlndXVcIDsKK+WFseeUo+S4u+e+qeWbvSA8IGt5b3VzYW5zaHVnaWtva3VcIDsKK+WOn+WRiuWvvuiiq+WRiiA8IGdlbmtva3V0YWloaWtva3VcIDsKK+WPl+iol+WPjuizhOe9qiA8IGp1dGFrdXNodXV3YWl6YWlcIDsKK+a1geihjOaAp+aEn+WGkiA8IHJ5dXVrb3VzZWlrYW5ib3VcIDsKK+Wbveawkee3j+eUn+eUoyA8IGtva3VtaW5zb3VzZWlzYW5cIDsKK+S4rei3nembouertui1sCA8IGNodXVreW9yaWt5b3Vzb3VcIDsKK+WFqOWbveeahOevhOWbsiA8IHplbmtva3V0ZWtpaGFuJydpXCA7CivpgKPpgqblhbHlkozlm70gPCByZW5wb3VreW91d2Frb2t1XCA7Civmma7pgY3nmoTms5XliYcgPCBmdWhlbnRla2lob3Vzb2t1XCA7CivlpKfntbHpoJjpgbjmjJkgPCBkYWl0b3VyeW91c2Vua3lvXCA7CivkuozljbXmgKflj4znlJ/lhZAgPCBuaXJhbnNlaXNvdXNlaWppXCA7Civml6XnjLblkIznpZboq5YgPCBuaWNoaXl1dWRvdXNvcm9uXCA7CivkuKHmm7/miYvmlbDmlpkgPCByeW91Z2FldGVzdXVyeW91XCA7Civos4fmnKzliKnnm4rnjocgPCBzaGlob25yaWVraXJpdHN1XCA7CivorbDpmaLpgYvllrblp5Tlk6HkvJogPCBnaWluJyd1bicnZWlpaW5rYWlcIDsKK+aIpui7iuaPmumZuOiJpiA8IHNlbnNoYXlvdXJpa3VrYW5cIDsKK+S4u+i+nue0oOaAp+imj+e0hCA8IHNodWppc29zZWlraXlha3VcIDsKK+Wls+aAp+ino+aUvumBi+WLlSA8IGpvc2Vpa2FpaG91dW5kb3VcIDsKK+WjsuaYpemYsuatouazlSA8IGJhaXNodW5ib3VzaGlob3VcIDsKK+WFieWMluWtpuWPjeW/nCA8IGtvdWthZ2FrdWhhbicnbm91XCA7Civnm7TmjqXkvJroq4cgPCBjaG9rdXNldHN1a2FpZGFuXCA7CivlibLlopfos4Pph5EgPCB3YXJpbWFzaGljaGluZ2luXCA7Civou43kuovlvZPlsYDogIUgPCBndW5qaXRvdWt5b2t1c2hhXCA7CivogonkvZPlirTlg43ogIUgPCBuaWt1dGFpcm91ZG91c2hhXCA7Civoh6rkuLvmtYHpgJrnsbMgPCBqaXNodXJ5dXV0c3V1bWFpXCA7CivkvZzku5jpnaLnqY0gPCBzYWt1ZHp1a2VtZW5zZWtpXCA7Civml6Xni6zljZTkvJogPCBuaWNoaWRva3VreW91a2FpXCA7Civml6XluLjnlJ/mtLsgPCBuaWNoaWpvdXNlaWthdHN1XCA7CivnrKzkuIDmrKHnlKPmpa0gPCBkYWlpY2hpamlzYW5neW91XCA7Civlrp/lrZjkuLvnvqnogIUgPCBqaXRzdXpvbnNodWdpc2hhXCA7CivmrbPlhaXmrbPlh7ogPCBzYWlueXV1c2Fpc2h1dHN1XCA7CivnibnliKXmgKXooYwgPCB0b2t1YmV0c3VreXV1a291XCA7Civnj77lrp/kuLvnvqnogIUgPCBnZW5qaXRzdXNodWdpc2hhXCA7Civlj43mlL/lupzli6LlipsgPCBoYW5zZWlmdXNlaXJ5b2t1XCA7CivlhY3nlqvkuI3lhajnl4cgPCBtZW4nJ2VraWZ1emVuc2hvdVwgOwor6Lui5Ye66Ki85piOIDwgdGVuc2h1dHN1c2hvdW1laVwgOwor5Y2B6YCy5YiG6aGe5rOVIDwgamlzc2hpbmJ1bnJ1aWhvdVwgOwor5YG25YOP5pWZ5b6S55qEIDwgZ3V1em91a3lvdXRvdGVraVwgOwor57SF55m95q2M5ZCI5oimIDwga291aGFrdXV0YWdhc3NlblwgOwor57WM5riI56CU56m25omAIDwga2VpemFpa2Vua3l1dXNob1wgOwor6LuN5LqL6YCa5L+h5ZOhIDwgZ3Vuaml0c3V1c2hpbicnaW5cIDsKK+Wfuua6luWGheizg+mHkSA8IGtpanVuJyduYWljaGluZ2luXCA7CivnnIzluoHmiYDlnKjlnLAgPCBrZW5jaG91c2hvemFpY2hpXCA7CivmlZHojZLkvZzniakgPCBreXV1a291c2FrdW1vdHN1XCA7CivnnJ/lrpflpKfosLfmtL4gPCBzaGluc2h1dW9vdGFuaWhhXCA7CivlnLDnhrHnmbrpm7sgPCBjaGluZXRzdWhhdHN1ZGVuXCA7CivolqzniannmYLms5UgPCB5YWt1YnV0c3VyeW91aG91XCA7Civlho3lhaXlm73oqLHlj68gPCBzYWlueXV1a29rdWt5b2thXCA7Civoi7Hlm73lm73mlZnkvJogPCBlaWtva3Vrb2treW91a2FpXCA7Civpo5/ns6fphY3ntaYgPCBzaG9rdXJ5b3VoYWlreXV1XCA7Civngq3phbjlkIzljJbkvZznlKggPCB0YW5zYW5kb3VrYXNheW91XCA7CivmuIXmlZnlvpLpnanlkb0gPCBzZWlreW91dG9rYWt1bWVpXCA7CivlpKrpmb3npZ7ntYzlj6IgPCB0YWl5b3VzaGlua2Vpc291XCA7Civnm7Tns7vooYDml48gPCBjaG9ra2Vpa2V0c3V6b2t1XCA7Civos6rllY/nlKjntJkgPCBzaGl0c3Vtb24nJ3lvdXNoaVwgOwor57WM5Za25a2m5L+u5aOrIDwga2VpZWlnYWt1c2h1dXNoaVwgOwor5YGl5bq36Ki85piO5pu4IDwga2Vua291c2hvdW1laXNob1wgOwor56S+5Lya5b+D55CG5a2mIDwgc2hha2Fpc2hpbnJpZ2FrdVwgOwor5LqM5aSn5pS/5YWa5Li7576pIDwgbmlkYWlzZWl0b3VzaHVnaVwgOwor54us6Lqr55Sf5rS7IDwgZG9rdXNoaW5zZWlrYXRzdVwgOwor6K2m5a+f5b2T5bGAIDwga2Vpc2F0c3V0b3VreW9rdVwgOwor5YWs5YWx5LyB5qWt5L2TIDwga291a3lvdWtpZ3lvdXRhaVwgOwor55u05o6l5Lyd5p+TIDwgY2hva3VzZXRzdWRlbnNlblwgOwor6YO95biC5YaN6ZaL55m6IDwgdG9zaGlzYWlrYWloYXRzdVwgOwor6Z2S56m65pWZ5a6kIDwgYW96b3Jha3lvdXNoaXRzdVwgOwor5pS+5bCE57ea55mC5rOVIDwgaG91c2hhc2VucnlvdWhvdVwgOwor5Zu96YCj5YiG5ouF6YeRIDwga29rdXJlbmJ1bnRhbmtpblwgOwor6Z2e5auh5Ye65a2QIDwgaGljaGFrdXNodXRzdXNoaVwgOwor55Sf5rS75qeY5byPIDwgc2Vpa2F0c3V5b3VzaGlraVwgOwor5a6a5pyf5YiK6KGM54mpIDwgdGVpa2lrYW5rb3VidXRzdVwgOwor5pS75pKD6ZaL5aeL57eaIDwga291Z2VraWthaXNoaXNlblwgOwor5bmz6Z2i5LiJ6KeS5rOVIDwgaGVpbWVuc2Fua2FrdWhvdVwgOwor5rOV5a6a5Lyd5p+T55eFIDwgaG91dGVpZGVuc2VuYnlvdVwgOwor54mH6YGT5paZ6YeRIDwga2F0YW1pY2hpcnlvdWtpblwgOwor5Y6f5rK55rWB5Ye6IDwgZ2VuJyd5dXJ5dXVzaHV0c3VcIDsKK+eVpeW8j+WRveS7pCA8IHJ5YWt1c2hpa2ltZWlyZWlcIDsKK+iKuOihk+a0u+WLlSA8IGdlaWp1dHN1a2F0c3Vkb3VcIDsKK+S4ieWPieelnue1jOeXmyA8IHNhbnNhc2hpbmtlaXRzdXVcIDsKK+attOWPsuWTsuWtpiA8IHJla2lzaGl0ZXRzdWdha3VcIDsKK+WEquWLneaxuuWumuaIpiA8IHl1dXNob3VrZXR0ZWlzZW5cIDsKK+S4i+eUuuiogOiRiSA8IHNoaXRhbWFjaGlrb3RvYmFcIDsKK+acgOS9jueUn+a0u+iyuyA8IHNhaXRlaXNlaWthdHN1aGlcIDsKK+S4jee0lOeVsOaAp+S6pOmBiiA8IGZ1anVuJydpc2Vpa291eXV1XCA7Civpqqjnmq7nrYvlj7PooZvploAgPCBob25la2F3YXN1amllbW9uXCA7CivlupznnIzliKXkurrlj6MgPCBmdWtlbmJldHN1amlua291XCA7Civnt4rmgKXnnYDpmbggPCBraW5reXV1Y2hha3VyaWt1XCA7Civmjqjlrprnm7jntprkurogPCBzdWl0ZWlzb3V6b2t1bmluXCA7CivlhrfooYDli5XniakgPCByZWlrZXRzdWRvdWJ1dHN1XCA7CivlpJrlm73nsY3kvIHmpa0gPCB0YWtva3VzZWtpa2lneW91XCA7Civlj5bmibHms6jmhI8gPCB0b3JpYXRzdWthaWNodXVpXCA7CivmtYXplpPlsbHojZjkuovku7YgPCBhc2FtYXNhbnNvdWppa2VuXCA7CivmmbTkuIDmmYLlsI/pm6ggPCBoYXJlaWNoaWppa29zYW1lXCA7CivlibLlopfmlpnph5EgPCB3YXJpbWFzaGlyeW91a2luXCA7CivlraPnr4DlirTlg43ogIUgPCBraXNldHN1cm91ZG91c2hhXCA7CivkuK3lsI/oq7jlm73lrrYgPCBjaG91c2hvdXNob2tva2thXCA7CivkuI3lubPnrYnmnaHntIQgPCBmdWJ5b3Vkb3Vqb3V5YWt1XCA7Civnm7TmiKrnsKHmmI4gPCBjaG9rdXNldHN1a2FubWVpXCA7Civpu4TpgZPlkInml6UgPCBrb3Vkb3VraWNoaW5pY2hpXCA7CivmnIDkvY7os4Pph5HliLYgPCBzYWl0ZWljaGluZ2luc2VpXCA7CivluJ3lm73kuLvnvqnnmoQgPCB0ZWlrb2t1c2h1Z2l0ZWtpXCA7CivkuIDop6bljbPnmbogPCBpc3Nob2t1c29rdWhhdHN1XCA7CivljbPml6XplovnpaggPCBzb2t1aml0c3VrYWloeW91XCA7CivmpI3nianos6ogPCBzaG9rdWJ1dHN1c2hpdHN1XCA7CivntI3nqI7pgJrnn6Xmm7ggPCBub3V6ZWl0c3V1Y2hpc2hvXCA7CivplqLnqI7libLlvZPliLYgPCBrYW56ZWl3YXJpYXRlc2VpXCA7Civlrp/os6ros4Pph5EgPCBqaXNzaGl0c3VjaGluZ2luXCA7CivlsYXkvY/oqLzmmI7mm7ggPCBreW9qdXVzaG91bWVpc2hvXCA7CivlpKfkvb/ntJrkvJroq4cgPCB0YWlzaGlreXV1a2FpZGFuXCA7CivmlZnppIrlsI/oqqwgPCBreW91eW91c2hvdXNldHN1XCA7CivmsJHkuLvmtLvli5XlrrYgPCBtaW5zaHVrYXRzdWRvdWthXCA7CivlrqLlk6HnoJTnqbblk6EgPCBreWFrdWlua2Vua3l1dWluXCA7Civmir3osaHoirjooZMgPCBjaHV1c2hvdWdlaWp1dHN1XCA7Civnm7TmjqXmlK/phY0gPCBjaG9rdXNldHN1c2hpaGFpXCA7CivnkrDlooPkv53orbfkuLvnvqkgPCBrYW5reW91aG9nb3NodWdpXCA7CivkuJbnlYzosr/mmJPmqZ/plqIgPCBzZWthaWJvdWVraWtpa2FuXCA7CivmlK/mjIHlipvkv4LmlbAgPCBzaGlqaXJ5b2t1a2Vpc3V1XCA7Civnm7TkuIvlnovlnLDpnIcgPCBjaG9ra2FnYXRhamlzaGluXCA7CivmnKrop6PmsbrllY/poYwgPCBtaWthaWtldHN1bW9uZGFpXCA7Civlu7rnr4nln7rmupbms5UgPCBrZW5jaGlrdWtpanVuaG91XCA7CivnhKHlvaLlm7rlrpros4fnlKMgPCBtdWtlaWtvdGVpc2hpc2FuXCA7Civnn6XnmoTmiYDmnInmqKkgPCBjaGl0ZWtpc2hveXV1a2VuXCA7Civogbfmpa3lronlrprmiYAgPCBzaG9rdWd5b3VhbnRlaWpvXCA7CivlhbHnlKPlhZrntLDog54gPCBreW91c2FudG91c2FpYm91XCA7CivkuIDlubTnlJ/ojYnmnKwgPCBpY2hpbmVuc2Vpc291aG9uXCA7CivmnaHntITliqDnm5/lm70gPCBqb3V5YWt1a2FtZWlrb2t1XCA7Civnq4vmraPkvbzmiJDkvJogPCByaXNzaG91a291c2Vpa2FpXCA7Civpm4blm6PlsLHogbcgPCBzaHV1ZGFuc2h1dXNob2t1XCA7CivlhbHoprPnpo/pn7Pmm7ggPCBreW91a2FuZnVrdWluc2hvXCA7CivmsLTnlJ/mpI3niakgPCBzdWlzZWlzaG9rdWJ1dHN1XCA7Civlrr/nm7TlrqQgPCBzaHVrdWNob2t1c2hpdHN1XCA7Civpq5jmiYDmgZDmgJbnl4cgPCBrb3VzaG9reW91ZnVzaG91XCA7CivmlrDogZ7osqnlo7LlupcgPCBzaGluYnVuaGFuYmFpdGVuXCA7CivovrLmnpfmsLTnlKPnnIEgPCBub3VyaW5zdWlzYW5zaG91XCA7CivkuozogIXpgbjkuIDms5UgPCBuaXNoYXNlbicnaXRzdWhvdVwgOwor5aKD55WM5YCk5ZWP6aGMIDwga3lvdWthaWNoaW1vbmRhaVwgOwor56S+5Lya5Lq66YeO55CDIDwgc2hha2FpamluJyd5YWt5dXVcIDsKK+iBt+WLmeizquWVjyA8IHNob2t1bXVzaGl0c3Vtb25cIDsKK+S5vueUn+akjeeJqSA8IGthbnNlaXNob2t1YnV0c3VcIDsKK+iPnOmjn+S4u+e+qeiAhSA8IHNhaXNob2t1c2h1Z2lzaGFcIDsKK+Wuv+aziuioreWCmSA8IHNodWt1aGFrdXNldHN1YmlcIDsKK+Wbveeri+Wkp+WtpiA8IGtva3VyaXRzdWRhaWdha3VcIDsKK+S4gOiogOS6jOiogCA8IGhpdG9rb3RvZnV0YWtvdG9cIDsKK+i7jeeUo+ikh+WQiOS9kyA8IGd1bnNhbmZ1a3Vnb3V0YWlcIDsKK+eyvuelnuWMu+WtpuiAhSA8IHNlaXNoaW4nJ2lnYWt1c2hhXCA7CivntYzmuIjkvIHnlLvluoEgPCBrZWl6YWlraWtha3VjaG91XCA7CivlhYjnq6/mlK/mjIHlipsgPCBzZW50YW5zaGlqaXJ5b2t1XCA7Civkv53lgaXniannkIblraYgPCBob2tlbmJ1dHN1cmlnYWt1XCA7CivmraPpnaLooZ3nqoEgPCBzaG91bWVuc2hvdXRvdHN1XCA7CivliIbop6Pokrjmupzms5UgPCBidW5rYWlqb3VyeXV1aG91XCA7CivoqIjph4/oqIDoqp7lraYgPCBrZWlyeW91Z2VuZ29nYWt1XCA7CivlnLDln5/mjK/oiIjliLggPCBjaGlpa2lzaGlua291a2VuXCA7CivmgKXpgLLkuLvnvqnogIUgPCBreXV1c2hpbnNodWdpc2hhXCA7CivkuIDml6XljYPnp4sgPCBpY2hpbmljaGlzZW5zaHV1XCA7CivkuqTpgJrpgYvovLjmpa0gPCBrb3V0c3V1dW4nJ3l1Z3lvdVwgOwor5ZWG5qWt55uu55qEIDwgc2hvdWd5b3Vtb2t1dGVraVwgOwor54Sh5Yi26ZmQ5L6b57WmIDwgbXVzZWlnZW5reW91a3l1dVwgOwor57Wm5LiO5omA5b6X6ICFIDwga3l1dXlvc2hvdG9rdXNoYVwgOwor5oim6ZeY54iG5pKD5qmfIDwgc2VudG91YmFrdWdla2lraVwgOwor6KSH5byP5a2m57SaIDwgZnVrdXNoaWtpZ2Fra3l1dVwgOwor5p6X5qWt6Kmm6aiT5aC0IDwgcmluZ3lvdXNoaWtlbmpvdVwgOwor5Y2S5qWt6Ki85pu4IDwgc290c3VneW91c2hvdXNob1wgOwor5pOy5by+55m65bCE562SIDwgdGVraWRhbmhhc3NoYXRvdVwgOwor55Sj6LuN6KSH5ZCI5L2TIDwgc2FuZ3VuZnVrdWdvdXRhaVwgOwor5pyA5aSn5YWs57SE5pWwIDwgc2FpZGFpa291eWFrdXN1dVwgOwor5Zu95YaF5raI6LK756iOIDwga29rdW5haXNob3VoaXplaVwgOwor5bCR5bm05a+p5Yik5omAIDwgc2hvdW5lbnNoaW5wYW5qb1wgOwor54S86IKJ5a6a6aOfIDwgeWFraW5pa3V0ZWlzaG9rdVwgOwor5rWB6KGM5oCn6IKd54KOIDwgcnl1dWtvdXNlaWthbicnZW5cIDsKK+ihqOmdouW8teWKmyA8IGh5b3VtZW5jaG91cnlva3VcIDsKK+a6lua6luaxuuWLneaIpiA8IGp1bmp1bmtlc3Nob3VzZW5cIDsKK+S4jeWujOWFqOeHg+eEvCA8IGZ1a2FuemVuJyduZW5zaG91XCA7Civljp/lrZDlipvmmYLku6MgPCBnZW5zaGlyeW9rdWppZGFpXCA7CivovrLmpa3oqabpqJPloLQgPCBub3VneW91c2hpa2Vuam91XCA7Civpq5jpgJ/luqbmkq7lvbEgPCBrb3Vzb2t1ZG9zYXRzdWVpXCA7CivnibnliKXnlarntYQgPCB0b2t1YmV0c3ViYW5ndW1pXCA7Civlrabnv5Log73lipsgPCBnYWt1c2h1dW5vdXJ5b2t1XCA7Civlpb3msJfmgKfnlJ/niakgPCBrb3VraXNlaXNlaWJ1dHN1XCA7Civlrrbluq3lhoXmmrTlipsgPCBrYXRlaW5haWJvdXJ5b2t1XCA7Civkv6HnlKjlj5blvJUgPCBzaGluJyd5b3V0b3JpaGlraVwgOwor6Z+z5aOw5aSa6YeN5pS+6YCBIDwgb25zZWl0YWp1dWhvdXNvdVwgOwor6auY6KGA5Zyn55eHIDwga291a2V0c3VhdHN1c2hvdVwgOwor5Zyo57GN5bCC5b6T6ICFIDwgemFpc2VraXNlbmp1dXNoYVwgOwor5LiA5Y+j6KmxIDwgaGl0b2t1Y2hpYmFuYXNoaVwgOwor5a6Y6LK755WZ5a2m55SfIDwga2FucGlyeXV1Z2FrdXNlaVwgOwor5Y2X5YyX5pyd5pmC5LujIDwgbmFuYm9rdWNob3VqaWRhaVwgOwor5q275Lqh6Ki65pat5pu4IDwgc2hpYm91c2hpbmRhbnNob1wgOwor5bym5qW95Zub6YeN5aWPIDwgZ2VuZ2FrdXNoaWp1dXNvdVwgOwor5Luy6KOB6KOB5Yik5omAIDwgY2h1dXNhaXNhaWJhbnNob1wgOwor55CG6KuW54mp55CG5a2mIDwgcmlyb25idXRzdXJpZ2FrdVwgOwor5YWo6Iis5YmN5ZOo57eaIDwgemVucGFuemVuc2hvdXNlblwgOwor562N55Sf5rS7IDwgdGFrZW5va29zZWlrYXRzdVwgOwor5Y2B5LqM5oyH6IW46JmrIDwganV1bmlzaGljaG91Y2h1dVwgOwor5Lit5b+D5Lq654mpIDwgY2h1dXNoaW5qaW5idXRzdVwgOwor5Zyf5pyo5bel5a2m6ICFIDwgZG9ib2t1a291Z2FrdXNoYVwgOwor6aOf5paZ5ZOB5ZWGIDwgc2hva3VyeW91aGluc2hvdVwgOwor5pel5Lit6Z+T57Wx5ZCIIDwgbml0Y2h1dWthbnRvdWdvdVwgOwor5ouh5by15YCN57K+5bqmIDwga2FrdWNob3ViYWlzZWlkb1wgOwor5Yq05YON5Y+O5a655omAIDwgcm91ZG91c2h1dXlvdXNob1wgOwor6LaF54++5a6f55qEIDwgY2hvdWdlbmppdHN1dGVraVwgOwor5Y2z6Lqr5oiQ5LuPIDwgc29rdXNoaW5qb3VidXRzdVwgOwor5Zu95aSW6ISx5Ye6IDwga29rdWdhaWRhc3NodXRzdVwgOwor54Sh552A6Zm46aOb6KGMIDwgbXVjaGFrdXJpa3VoaWtvdVwgOwor5pel5LuY5aSJ5pu057eaIDwgaGlkenVrZWhlbmtvdXNlblwgOwor55u05o6l5Zue562UIDwgY2hva3VzZXRzdWthaXRvdVwgOwor5b2T5LqL6ICF6IO95YqbIDwgdG91amlzaGFub3VyeW9rdVwgOwor6ISz5oCn5bCP5YWQ6bq755e6IDwgbm91c2Vpc2hvdW5pbWFoaVwgOwor5YWI54mp5Y+W5byVIDwgc2FraW1vbm90b3JpaGlraVwgOwor5aSn5p2x5Lqc5YWx5qCE5ZyPIDwgZGFpdG91YWt5b3VlaWtlblwgOwor5q205Y+y5bCP6KqsIDwgcmVraXNoaXNob3VzZXRzdVwgOwor54Wu5rK45raI5q+SIDwgc2hhZnV0c3VzaG91ZG9rdVwgOwor5rW35aSW6YCy5Ye6IDwga2FpZ2Fpc2hpbnNodXRzdVwgOwor5rC05Yqb55m66Zu7IDwgc3Vpcnlva3VoYXRzdWRlblwgOwor5pCN55uK6KiI566X5pu4IDwgc29uJydla2lrZWlzYW5zaG9cIDsKK+Wwj+WjsueJqeS+oeaMh+aVsCA8IGtvdXJpYnVra2FzaGlzdXVcIDsKK+aApeihjOWBnOi7iumnhSA8IGt5dXVrb3V0ZWlzaGFla2lcIDsKK+WPjeakjeawkeS4u+e+qSA8IGhhbnNob2t1bWluc2h1Z2lcIDsKK+alteS9jua4qeenkeWtpiA8IGt5b2t1dGVpb25rYWdha3VcIDsKK+iHqueUseS4u+e+qee1jOa4iCA8IGppeXV1c2h1Z2lrZWl6YWlcIDsKK+WGmeecn+acm+mBoOmPoSA8IHNoYXNoaW5ib3Vlbmt5b3VcIDsKK+W9ouizquWwjuWFpSA8IGtlaXNoaXRzdWRvdW55dXVcIDsKK+WmmeazleiTruiPr+e1jCA8IG15b3Vob3VyZW5nZWt5b3VcIDsKK+Wun+eUqOS4u+e+qeiAhSA8IGppdHN1eW91c2h1Z2lzaGFcIDsKK+W+jOaWuemAo+e1oee3miA8IGtvdWhvdXJlbnJha3VzZW5cIDsKK+Wun+mok+W/g+eQhuWtpiA8IGppa2tlbnNoaW5yaWdha3VcIDsKK+WknOmWk+mgkOmHkeOAheW6qyA8IHlha2FuJyd5b2tpbmtpbmtvXCA7Civnm7TmjqXplqLkv4IgPCBjaG9rdXNldHN1a2Fua2VpXCA7CivmjK/mm7/kvJHml6UgPCBmdXJpa2Fla3l1dWppdHN1XCA7CivpgKPpgqbmupblgpnliLbluqYgPCByZW5wb3VqdW5iaXNlaWRvXCA7Civpg7Xkvr/lsI/ljIUgPCB5dXViaW5rb2R6dXRzdW1pXCA7CivkuI3ms5XlhaXlm73ogIUgPCBmdWhvdW55dXVrb2t1c2hhXCA7CivljZjkuIDnpZ7mlZkgPCB0YW4nJ2l0c3VzaGlua3lvdVwgOwor6Jma5byx5L2T6LOqIDwga3lvamFrdXRhaXNoaXRzdVwgOwor5aSa5YWD5pa556iL5byPIDwgdGFnZW5ob3V0ZWlzaGlraVwgOwor5Zu95YaF57eP55Sf55SjIDwga29rdW5haXNvdXNlaXNhblwgOwor6ISK57Si5YuV54mpIDwgc2VraXNha3Vkb3VidXRzdVwgOwor5q2m5Yqb6KGd56qBIDwgYnVyeW9rdXNob3V0b3RzdVwgOwor54ax5qC45Y+N5b+cIDwgbmV0c3VrYWt1aGFuJydub3VcIDsKK+mJhOmBk+WFrOWuieWumCA8IHRldHN1ZG91a291YW5rYW5cIDsKK+eoruWtkOakjeeJqSA8IHNodXNoaXNob2t1YnV0c3VcIDsKK+W5s+WPsOWei+iyqOi7iiA8IGhpcmFkYWlnYXRha2FzaGFcIDsKK+S6uuensOS7o+WQjeipniA8IG5pbnNob3VkYWltZWlzaGlcIDsKK+Wun+alreS5i+aXpeacrCA8IGppdHN1Z3lvdW5vbmlob25cIDsKK+epjeWxpOS5vumbu+axoCA8IHNla2lzb3VrYW5kZW5jaGlcIDsKK+ihjOaUv+euoeeQhuW6gSA8IGd5b3VzZWlrYW5yaWNob3VcIDsKK+i1pOWNgeWtl+adoee0hCA8IHNla2lqdXVqaWpvdXlha3VcIDsKK+WFieWtpumhleW+rumPoSA8IGtvdWdha3VrZW5iaWt5b3VcIDsKK+i2hemBjuWLpOWLmeaJi+W9kyA8IGNob3VrYWtpbm11dGVhdGVcIDsKK+S6iOWCmeWjq+WumOWtpuagoSA8IHlvYmlzaGlrYW5nYWtrb3VcIDsKK+W8t+WItuWPjuWuueaJgCA8IGt5b3VzZWlzaHV1eW91am9cIDsKK+eKr+e9quW/g+eQhuWtpiA8IGhhbnphaXNoaW5yaWdha3VcIDsKK+mAo+mCpuaNnOafu+WxgCA8IHJlbnBvdXNvdXNha3lva3VcIDsKK+Wkp+mZuOenu+WLleiqrCA8IHRhaXJpa3VpZG91c2V0c3VcIDsKK+ebtOaOpeihjOWLlSA8IGNob2t1c2V0c3Vrb3Vkb3VcIDsKK+S8gealreWGheaVmeiCsiA8IGtpZ3lvdW5haWt5b3Vpa3VcIDsKK+axguiBt+W6g+WRiiA8IGt5dXVzaG9rdWtvdWtva3VcIDsKK+Wun+iovOWTsuWtpiA8IGppc3Nob3V0ZXRzdWdha3VcIDsKK+iKseWrgeiKseWpvyA8IGhhbmF5b21laGFuYW11a29cIDsKK+eUu+WDj+WHpueQhuijhee9riA8IGdhem91c2hvcmlzb3VjaGlcIDsKK+eqkue0oOmFuOWMlueJqSA8IGNoaXNzb3NhbmthYnV0c3VcIDsKK+W4neeOi+WIh+mWi+ihkyA8IHRlaW91c2Vra2FpanV0c3VcIDsKK+WFreWNgeWbm+WIhumfs+espiA8IHJva3VqdXVzaGlidW9ucHVcIDsKK+aYpeapn+eZuuWLleacnyA8IHNodW5raWhhdHN1ZG91a2lcIDsKK+Wkp+WQjeihjOWIlyA8IGRhaW15b3VneW91cmV0c3VcIDsKK+mrmOWxseakjeeJqSA8IGtvdXphbnNob2t1YnV0c3VcIDsKK+aUvuWwhOaAp+WQjOS9jeS9kyA8IGhvdXNoYXNlaWRvdWl0YWlcIDsKK+WkqeW5leijvemAoOS6uiA8IHRlbm1ha3VzZWl6b3VuaW5cIDsKK+acgOWEquengOmBuOaJiyA8IHNhaXl1dXNodXVzZW5zaHVcIDsKK+eJueWIpeaWmemHkSA8IHRva3ViZXRzdXJ5b3VraW5cIDsKK+WLneWIqeWPiOWLneWIqSA8IHNob3VyaW1hdGFzaG91cmlcIDsKK+Wls+a1geaWh+WtpuiAhSA8IGpvcnl1dWJ1bmdha3VzaGFcIDsKK+S4remWk+Wwj+iqrCA8IGNodXVrYW5zaG91c2V0c3VcIDsKK+iAkOS5hea2iOiyu+iyoSA8IHRhaWt5dXVzaG91aGl6YWlcIDsKK+mdnuWFrOW8j+WNlOitsCA8IGhpa291c2hpa2lreW91Z2lcIDsKK+eUn+eJqea/g+e4riA8IHNlaWJ1dHN1bm91c2h1a3VcIDsKK+WFpeWKm+S/oeWPtyA8IG55dXVyeW9rdXNoaW5nb3VcIDsKK+epuua4r+S9v+eUqOaWmSA8IGt1dWtvdXNoaXlvdXJ5b3VcIDsKK+W9q+WIu+WupOW6pyA8IGNob3Vrb2t1c2hpdHN1emFcIDsKK+eiuueOh+aomeacrCA8IGtha3VyaXRzdWh5b3Vob25cIDsKK+eEoemHjeWKm+eKtuaFiyA8IG11anV1cnlva3Vqb3V0YWlcIDsKK+WkqeeFp+eah+Wkp+elniA8IHRlbnNob3Vrb3VkYWlqaW5cIDsKK+W3nueri+Wkp+WtpiA8IHNodXVyaXRzdWRhaWdha3VcIDsKK+eyvuelnuWuieWumuWJpCA8IHNlaXNoaW4nJ2FudGVpemFpXCA7CivphbjmgKfphbjljJbniakgPCBzYW5zZWlzYW5rYWJ1dHN1XCA7Civlhpnlrp/kuLvnvqnogIUgPCBzaGFqaXRzdXNodWdpc2hhXCA7CivlhrfmiKblnovmgJ3ogIMgPCByZWlzZW5nYXRhc2hpa291XCA7CivkupznhrHluK/pq5jmsJflnKcgPCBhbmV0dGFpa291a2lhdHN1XCA7CivlpJrogonmpI3niakgPCB0YW5pa3VzaG9rdWJ1dHN1XCA7Civpm7vlrZDlt6Xmpa3kvJogPCBkZW5zaGlrb3VneW91a2FpXCA7Civpm7vlrZDlt6XlrabogIUgPCBkZW5zaGlrb3VnYWt1c2hhXCA7CivorbLmuKHkurogPCB5dXp1cml3YXRhc2hpbmluXCA7CivnhrHkvJ3lsI7njocgPCBuZXRzdWRlbmRvdXJpdHN1XCA7CivmsJHkuLvlhbHlkozlm70gPCBtaW5zaHVreW91d2Frb2t1XCA7Civno4HmsJflhbHps7TnlLvlg48gPCBqaWtpa3lvdW1laWdhem91XCA7Civni6znq4voqJjlv7Xml6UgPCBkb2t1cml0c3VraW5lbmJpXCA7CivljJblraboqr/lkbPmlpkgPCBrYWdha3VjaG91bWlyeW91XCA7CivmpI3niankurrplpMgPCBzaG9rdWJ1dHN1bmluZ2VuXCA7Civps6XnjaPkv53orbfljLrln58gPCBjaG91anV1aG9nb2t1aWtpXCA7CivntYLouqvpm4fnlKjliLYgPCBzaHV1c2hpbmtveW91c2VpXCA7CivkuI3lrprmlrnnqIvlvI8gPCBmdXRlaWhvdXRlaXNoaWtpXCA7CivnianniankuqTmj5sgPCBidXRzdWJ1dHN1a291a2FuXCA7Civlrp/lipvooYzkvb8gPCBqaXRzdXJ5b2t1a291c2hpXCA7CivlnovlvI/oqLzmmI4gPCBrYXRhc2hpa2lzaG91bWVpXCA7CivpgKPli53opIflvI8gPCByZW5zaG91ZnVrdXNoaWtpXCA7CivlpKfkv67pgZPpmaLplbcgPCBkYWlzaHV1ZG91aW5jaG91XCA7Civnm7TmjqXljZTorbAgPCBjaG9rdXNldHN1a3lvdWdpXCA7Civnvarpmpzmtojmu4UgPCB6YWlzaG91c2hvdW1ldHN1XCA7CivmmannlJ/mpI3niakgPCBiYW5zZWlzaG9rdWJ1dHN1XCA7CivmvZzlnKjlpLHmpa0gPCBzZW56YWlzaGl0c3VneW91XCA7CivmuK/mub7pgYvpgIHmpa0gPCBrb3V3YW4nJ3Vuc291Z3lvdVwgOwor5ZGo5rOi5pWw5aSJ6Kq/IDwgc2h1dWhhc3V1aGVuY2hvdVwgOwor5Lm+54el5Zyw6L6y5qWtIDwga2Fuc291Y2hpbm91Z3lvdVwgOwor55Kw5aKD6YWN5oWu5pu4IDwga2Fua3lvdWhhaXJ5b3Nob1wgOwor55u05o6l5q+U6LyDIDwgY2hva3VzZXRzdWhpa2FrdVwgOwor5Zu65L2T54mp55CG5a2mIDwga290YWlidXRzdXJpZ2FrdVwgOwor5qC45oqR5q2i5YqbIDwga2FrdXlva3VzaGlyeW9rdVwgOwor5Zu96Zqb5o+05Yqp5qmf6ZaiIDwga29rdXNhaWVuam9raWthblwgOwor57WE57mU5Yq05YON6ICFIDwgc29zaGlraXJvdWRvdXNoYVwgOwor5Za25qWt5aCx5ZGK5pu4IDwgZWlneW91aG91a29rdXNob1wgOwor5LiH54mp5rWB6LuiIDwgYmFuYnV0c3VyeXV1dGVuXCA7Civou5/lvI/luq3nkIMgPCBuYW5zaGlraXRlaWt5dXVcIDsKK+W6g+WRiuS7o+eQhuW6lyA8IGtvdWtva3VkYWlyaXRlblwgOwor5L+u6YGT55Sf5rS7IDwgc2h1dWRvdXNlaWthdHN1XCA7CivmiKbmmYLlm73pmpvms5UgPCBzZW5qaWtva3VzYWlob3VcIDsKK+enmOWvhuitpuWvnyA8IGhpbWl0c3VrZWlzYXRzdVwgOwor5rOV5Lq65qCq5Li7IDwgaG91amlua2FidW51c2hpXCA7CivlhoXluZXoqbEgPCB1Y2hpbWFrdWJhbmFzaGlcIDsKK+mWk+aOpeeFp+aYjiA8IGthbnNldHN1c2hvdW1laVwgOwor57Sb6aqo56CV6LqrIDwgZnVua290c3VzYWlzaGluXCA7CivkuKHmo7Lli5XniakgPCByeW91c2VpZG91YnV0c3VcIDsKK+Wkmumhjee0jeeojuiAhSA8IHRhZ2FrdW5vdXplaXNoYVwgOwor5aSq5YWD5bil5aaZ546LIDwgZGFpZ2Vuc3VpbXlvdW91XCA7Civpm4bntITovrLmpa0gPCBzaHV1eWFrdW5vdWd5b3VcIDsKK+W7g+eWvuadoeS7tiA8IGhhaXNoaXRzdWpvdWtlblwgOwor6IO9546H6LOD6YeRIDwgbm91cml0c3VjaGluZ2luXCA7CivkuK3pg6jlpKrlubPmtIsgPCBjaHV1YnV0YWloZWl5b3VcIDsKK+S8gealreWGhee1hOWQiCA8IGtpZ3lvdW5haWt1bWlhaVwgOwor5Y2Y5YiA55u05YWlIDwgdGFudG91Y2hva3VueXV1XCA7CivlpKrlubPmtIvmiKbkuokgPCB0YWloZWl5b3VzZW5zb3VcIDsKK+S4ieaWh+Wwj+iqrCA8IHNhbm1vbnNob3VzZXRzdVwgOwor562L6IKJ5rOo5bCEIDwga2luJyduaWt1Y2h1dXNoYVwgOwor5Zub6YCa5YWr6YGUIDwgc2hpdHN1dWhhdHRhdHN1XCA7CivpgKPluK/kv53oqLzkurogPCByZW50YWlob3Nob3VuaW5cIDsKK+i7jeWbveS4u+e+qeiAhSA8IGd1bmtva3VzaHVnaXNoYVwgOwor5Ymy5aKX6YGL6LODIDwgd2FyaW1hc2hpdW5jaGluXCA7CivljZfmpbXoprPmuKwgPCBuYW5reW9rdWthbnNva3VcIDsKK+S4gOebrueereeEtiA8IGljaGltb2t1cnlvdXplblwgOwor57Sg5Lq65LiL5a6/IDwgc2hpcm91dG9nZXNodWt1XCA7CivlrabmoKHntabpo58gPCBnYWtrb3VreXV1c2hva3VcIDsKK+WPjeW4neWbveS4u+e+qSA8IGhhbnRlaWtva3VzaHVnaVwgOwor6ZaT5o6l5pKu5b2xIDwga2Fuc2V0c3VzYXRzdWVpXCA7CivkvJrnpL7mm7TnlJ/ms5UgPCBrYWlzaGFrb3VzZWlob3VcIDsKK+WbvemBuOW8geitt+S6uiA8IGtva3VzZW5iZW5nb25pblwgOwor55m95bed5aSc6Ii5IDwgc2hpcmFrYXdheW9mdW5lXCA7Civoh6rnhLblnLDnkIblraYgPCBzaGl6ZW5jaGlyaWdha3VcIDsKK+WcsOWfn+eahOWIhuW4gyA8IGNoaWlraXRla2lidW5wdVwgOwor54Sh5pS/5bqc5Li7576p6ICFIDwgbXVzZWlmdXNodWdpc2hhXCA7Civliarmlq3lronlrprmgKcgPCBzZW5kYW4nJ2FudGVpc2VpXCA7CivnibnnrYblpKfmm7ggPCB0b2t1aGl0c3V0YWlzaG9cIDsKK+mrmOWIhuWtkOWMluWtpiA8IGtvdWJ1bnNoaWthZ2FrdVwgOwor5oOF5aCx5YWs6ZaL5rOVIDwgam91aG91a291a2FpaG91XCA7Civlj43lsITmnJvpgaDpj6EgPCBoYW5zaGFib3Vlbmt5b3VcIDsKK+mjn+WTgeW3pealrSA8IHNob2t1aGlua291Z3lvdVwgOwor5qOY55qu5YuV54mpIDwga3lva3VoaWRvdWJ1dHN1XCA7CivmgKrlipvkubHnpZ4gPCBrYWlyeW9rdXJhbnNoaW5cIDsKK+S6uueUn+WTsuWtpiA8IGppbnNlaXRldHN1Z2FrdVwgOwor54m55Yil5aeU5ZOh5LyaIDwgdG9rdWJldHN1aWlua2FpXCA7CivlhoXpnIDkuLvlsI7lnosgPCBuYWlqdXNodWRvdWdhdGFcIDsKK+aZtOWkqeS5seawl+a1gSA8IHNlaXRlbnJhbmtpcnl1dVwgOwor5paw5ama55Sf5rS7IDwgc2hpbmtvbnNlaWthdHN1XCA7CivvvJLvvJDvvJDvvJDlubTllY/poYwgPCBuaXNlbicnbmVubW9uZGFpXCA7CivlhazplovlhaXmnK0gPCBrb3VrYWlueXV1c2F0c3VcIDsKK+WfuuacrOeahOS6uuaoqSA8IGtpaG9udGVraWppbmtlblwgOwor5qCq5byP5biC5aC0IDwga2FidXNoaWtpc2hpam91XCA7Civlrabmpa3miJDnuL4gPCBnYWt1Z3lvdXNlaXNla2lcIDsKK+aIpuS6ieeKr+e9quS6uiA8IHNlbnNvdWhhbnphaW5pblwgOwor54mp6LOq5ZCN6KmeIDwgYnVzc2hpdHN1bWVpc2hpXCA7Civlj43lr77osr/mmJPpoqggPCBoYW50YWlib3Vla2lmdXVcIDsKK+efree3qOWwj+iqrCA8IHRhbnBlbnNob3VzZXRzdVwgOwor6YGT6Lev5Lqk6YCa5rOVIDwgZG91cm9rb3V0c3V1aG91XCA7CivlhbHnlKPlm73lrrbpg6EgPCBreW91c2Fua29ra2FndW5cIDsKK+WVhualreaVsOWtpiA8IHNob3VneW91c3V1Z2FrdVwgOwor5Luu6KOF5beh5rSL6ImmIDwga2Fzb3VqdW4nJ3lvdWthblwgOwor5pWZ6IKy5Z+65pys5rOVIDwga3lvdWlrdWtpaG9uaG91XCA7CivnlJ/nlKPogIXkvqHmoLwgPCBzZWlzYW5zaGFrYWtha3VcIDsKK+acgOWwj+S6jOS5l+azlSA8IHNhaXNob3VuaWpvdWhvdVwgOwor6ISx5Ye66YCf5bqmIDwgZGFzc2h1dHN1c29rdWRvXCA7CivnibnliKXnt4/kvJogPCB0b2t1YmV0c3Vzb3VrYWlcIDsKK+esrOS4gOalveeroCA8IGRhaWljaGlnYWt1c2hvdVwgOwor5Li75bm556CU56m25ZOhIDwgc2h1a2Fua2Vua3l1dWluXCA7Civlrpjlg5rkuLvnvqnogIUgPCBrYW5yeW91c2h1Z2lzaGFcIDsKK+Wwj+mBuOaMmeWMuuWItiA8IHNob3VzZW5reW9rdXNlaVwgOwor57Si5p2h6YmE6YGTIDwgc2FrdWpvdXRldHN1ZG91XCA7Civou43oqJjnianoqp4gPCBndW5raW1vbm9nYXRhcmlcIDsKK+WOs+ato+S4reeriyA8IGdlbnNlaWNodXVyaXRzdVwgOwor5LiA5pel5LiA5aScIDwgaWNoaW5pY2hpaWNoaXlhXCA7CivpmbDpmbDmu4Xmu4UgPCBpbicnaW5tZXRzdW1ldHN1XCA7CivlsLHogbfmtarkurogPCBzaHV1c2hva3Vyb3VuaW5cIDsKK+iHqui7oui7iuaTjealrSA8IGppdGVuc2hhc291Z3lvdVwgOwor57SU5r2U5pWZ6IKyIDwganVua2V0c3VreW91aWt1XCA7CivkuJbnlYzmlrDoqJjpjLIgPCBzZWthaXNoaW5raXJva3VcIDsKK+Wul+aVmeaUuemdqSA8IHNodXVreW91a2Fpa2FrdVwgOwor5ZWG5bel5Lya6K2w5omAIDwgc2hvdWtvdWthaWdpc2hvXCA7CivlvL7lir7oo4HliKTmiYAgPCBkYW5nYWlzYWliYW5zaG9cIDsKK+aUr+mboua7heijgiA8IHNoaXJpbWV0c3VyZXRzdVwgOwor5Zu95rCR5a6/6IiOIDwga29rdW1pbnNodWt1c2hhXCA7Civkv53orbfplqLnqI7njocgPCBob2dva2FuemVpcml0c3VcIDsKK+eLrOeri+Wuo+iogCA8IGRva3VyaXRzdXNlbmdlblwgOwor5Ymv6IWO55qu6LOqIDwgZnVrdWppbmhpc2hpdHN1XCA7Civlm73msJHnlJ/mtLsgPCBrb2t1bWluc2Vpa2F0c3VcIDsKK+epjei8ieiDveWKmyA8IHNla2lzYWlub3VyeW9rdVwgOwor5Y+O5a656IO95YqbIDwgc2h1dXlvdW5vdXJ5b2t1XCA7CivohbDpq5jpmpzlrZAgPCBrb3NoaWRha2FzaG91amlcIDsKK+W5tOmgg+aXpemggyA8IHRvc2hpZ29yb2hpZ29yb1wgOwor6ZuG5pyt5L+CIDwgc2h1dXNhdHN1Z2FrYXJpXCA7CivmupbnpoHmsrvnlKPogIUgPCBqdW5raW5jaGlzYW5zaGFcIDsKK+itsOmZouWGhemWo+WItiA8IGdpaW4nJ25haWtha3VzZWlcIDsKK+mAmuS/l+aWh+WtpiA8IHRzdXV6b2t1YnVuZ2FrdVwgOwor6YeR5qeM6aCtIDwga2FuYWR6dWNoaWF0YW1hXCA7CivlhKrlhYjmoKrkuLsgPCB5dXVzZW5rYWJ1bnVzaGlcIDsKK+WGmeecn+a4rOmHjyA8IHNoYXNoaW5zb2t1cnlvdVwgOwor5LyB5qWt5L2T6LOqIDwga2lneW91dGFpc2hpdHN1XCA7CivnlJ/mtLvkv53orbfms5UgPCBzZWlrYXRzdWhvZ29ob3VcIDsKK+eMqueqgeeMm+mAsiA8IGNob3RvdHN1bW91c2hpblwgOwor5YWx55Sj5Li7576p6ICFIDwga3lvdXNhbnNodWdpc2hhXCA7CivmraPlronmga/pppnphbggPCBzZWlhbnNva3Vrb3VzYW5cIDsKK+WFrOWus+eXheaCo+iAhSA8IGtvdWdhaWJ5b3VrYW5qYVwgOwor5LiW55WM5L+d5YGl5qmf6ZaiIDwgc2VrYWlob2tlbmtpa2FuXCA7CivlrabnlJ/libLlvJUgPCBnYWt1c2Vpd2FyaWJpa2lcIDsKK+iyoeaUv+aKleiejeizhyA8IHphaXNlaXRvdXl1dXNoaVwgOwor5L6h5qC85Zyn5YqbIDwga2FrYWt1YXRzdXJ5b2t1XCA7CivmuK/mub7lirTlg43ogIUgPCBrb3V3YW5yb3Vkb3VzaGFcIDsKK+WGhemZuOaAp+awl+WAmSA8IG5haXJpa3VzZWlraWtvdVwgOwor5Lit5aSu5qiZ5rqW5pmCIDwgY2h1dW91aHlvdWp1bmppXCA7Civooajnj77lvaLlvI8gPCBoeW91Z2Vua2Vpc2hpa2lcIDsKK+aKleWFieeFp+aYjuWZqCA8IHRvdWtvdXNob3VtZWlraVwgOwor5Ye66aGY5pu46aGeIDwgc2h1dHN1Z2Fuc2hvcnVpXCA7Civnt4/lkIznm5/nvbfmpa0gPCBzb3Vkb3VtZWloaWd5b3VcIDsKK+Wul+aVmeaVmeiCsiA8IHNodXVreW91a3lvdWlrdVwgOwor5L2Z6KOV57a957a9IDwgeW95dXVzaGFrdXNoYWt1XCA7Civnn6XnmoTog73lipsgPCBjaGl0ZWtpbm91cnlva3VcIDsKK+WPjemqqOeyvuelniA8IGhhbmtvdHN1c2Vpc2hpblwgOwor5q2j56K654iG5pKDIDwgc2Vpa2FrdWJha3VnZWtpXCA7Civml6Xoi7HpgJroqLMgPCBuaWNoaWVpdHN1dXlha3VcIDsKK+acgOmrmOijgeWIpOaJgCA8IHNhaWtvdXNhaWJhbnNob1wgOwor6aOf54mp57mK57atIDwgc2hva3Vtb3RzdXNlbicnaVwgOwor566X6KGT57Sa5pWwIDwgc2FuanV0c3VreXV1c3V1XCA7CivlhaXlipvoo4Xnva4gPCBueXV1cnlva3Vzb3VjaGlcIDsKK+iBt+alreiok+e3tCA8IHNob2t1Z3lvdWt1bnJlblwgOwor5o6i5YG15bCP6KqsIDwgdGFudGVpc2hvdXNldHN1XCA7CivnlJ/mtLvlj43lv5wgPCBzZWlrYXRzdWhhbicnbm91XCA7Civllrblm6PlnLDkuIvpiYQgPCBlaWRhbmNoaWthdGV0c3VcIDsKK+advuS4i+mbu+WZqCA8IG1hdHN1c2hpdGFkZW5raVwgOwor55+l6K2Y6ZqO57SaIDwgY2hpc2hpa2lrYWlreXV1XCA7CivmoKrlvI/kvJrnpL4gPCBrYWJ1c2hpa2lnYWlzaGFcIDsKK+S4gOaZgumgkOaJgCA8IGljaGlqaWF6dWthcmlqb1wgOwor6aO95ZKM5YyW5ZCI54mpIDwgaG91d2FrYWdvdWJ1dHN1XCA7Civmi6HlpKfop6Pph4ggPCBrYWt1ZGFpa2Fpc2hha3VcIDsKK+mHkeWxnuaOouefpeapnyA8IGtpbnpva3V0YW5jaGlraVwgOwor5rWu5YuV5bCP5pWw54K5IDwgZnVkb3VzaG91c3V1dGVuXCA7Civlk4Hos6rkv53oqLwgPCBoaW5zaGl0c3Vob3Nob3VcIDsKK+iogOiqnuW/g+eQhuWtpiA8IGdlbmdvc2hpbnJpZ2FrdVwgOwor5L+h5Luw5ZGK55m9IDwgc2hpbmtvdWtva3VoYWt1XCA7CivmoLznianoh7Tnn6UgPCBrYWt1YnV0c3VjaGljaGlcIDsKK+S4gOWnq+S6jOWkqumDjiA8IGljaGloaW1lbml0YXJvdVwgOwor55WM6Z2i5rS75oCn5YmkIDwga2FpbWVua2Fzc2VpemFpXCA7CivnsbPnqYDpgJrluLMgPCBiZWlrb2t1dHN1dWNob3VcIDsKK+S6uueUn+ahiOWGheashCA8IGppbnNlaWFuJyduYWlyYW5cIDsKK+Wun+eUqOaWsOahiCA8IGppdHN1eW91c2hpbicnYW5cIDsKK+W/g+i6q+manOWusyA8IHNoaW5zaGluc2hvdWdhaVwgOwor5LiA5YiG5LqM5Y2B56eSIDwgaXBwdW4nJ25panV1YnlvdVwgOwor6YCf5oim5Y2z5rG6IDwgc29rdXNlbnNva2tldHN1XCA7CivljJblrablkLjnnYAgPCBrYWdha3VreXV1Y2hha3VcIDsKK+Wbm+aWueWxseipsSA8IHlvbW95YW1hYmFuYXNoaVwgOwor55qH5a6k5YW456+EIDwga291c2hpdHN1dGVucGFuXCA7CivljZfpmL/lhbHlkozlm70gPCBuYW4nJ2FreW91d2Frb2t1XCA7CivkuozljYHlm5vmmYLplpPliLYgPCBuaWp1dXlvamlrYW5zZWlcIDsKK+eJueWIpeWbveS8miA8IHRva3ViZXRzdWtva2thaVwgOwor5LiA5Z2q5pys56S+IDwgaGl0b3RzdWJvaG9uc2hhXCA7Civml6nlj6PoqIDokYkgPCBoYXlha3VjaGlrb3RvYmFcIDsKK+a3seWxseW5veiwtyA8IHNoaW56YW4nJ3l1dWtva3VcIDsKK+mAmuWVhueUo+alrSA8IHRzdXVzaG91c2FuZ3lvdVwgOwor5Li75oim6ZeY5oim6LuKIDwgc2h1c2VudG91c2Vuc2hhXCA7Civlu7rnr4npnaLnqY0gPCBrZW5jaGlrdW1lbnNla2lcIDsKK+avlOi8g+iogOiqnuWtpiA8IGhpa2FrdWdlbmdvZ2FrdVwgOwor55uk5qC56Yyv56+AIDwgYmFua29uc2FrdXNldHN1XCA7CivlhoXnmoTnlJ/mtLsgPCBuYWl0ZWtpc2Vpa2F0c3VcIDsKK+WGheaUv+S4jeW5sua4iSA8IG5haXNlaWZ1a2Fuc2hvdVwgOwor56eY5a+G5ryP5rSpIDwgaGltaXRzdXJvdXNldHN1XCA7Civpq5jnrYnoo4HliKTmiYAgPCBrb3V0b3VzYWliYW5zaG9cIDsKK+WHuuacreaOmyA8IHNodXNzYXRzdWdha2FyaVwgOwor546J55+z5re35reGIDwgZ3lva3VzZWtpa29ua291XCA7Civpm5vpkZHliKXogIUgPCBoaW5ha2FuYmV0c3VzaGFcIDsKK+e1gui6q+W5tOmHkSA8IHNodXVzaGluJyduZW5raW5cIDsKK+S6uueJqeWvuOaPjyA8IGppbmJ1dHN1c3VuYnlvdVwgOwor5ZWG5ZOB55uu6YyyIDwgc2hvdWhpbm1va3Vyb2t1XCA7CivlpJbpo5/nlKPmpa0gPCBnYWlzaG9rdXNhbmd5b3VcIDsKK+izh+a6kOevgOe0hCA8IHNoaWdlbnNldHN1eWFrdVwgOwor55CD6Z2i5bm+5L2V5a2mIDwga3l1dW1lbmtpa2FnYWt1XCA7CivpnZnohIjms6jlsIQgPCBqb3VteWFrdWNodXVzaGFcIDsKK+WGkumZuuWwj+iqrCA8IGJvdWtlbnNob3VzZXRzdVwgOwor54ax56Gs5YyW54mpIDwgbmV0c3Vrb3VrYWJ1dHN1XCA7Civpm7vlrZDpoZXlvq7pj6EgPCBkZW5zaGlrZW5iaWt5b3VcIDsKK+WbveaciemJhOmBkyA8IGtva3V5dXV0ZXRzdWRvdVwgOwor56K6546H5aSJ5pWwIDwga2FrdXJpdHN1aGVuc3V1XCA7CivplovnmbroqIjnlLsgPCBrYWloYXRzdWtlaWtha3VcIDsKK+WKtOWDjeeUn+eUo+aApyA8IHJvdWRvdXNlaXNhbnNlaVwgOwor5pyJ5a6z54mp6LOqIDwgeXV1Z2FpYnVzc2hpdHN1XCA7Civmg4XnirbphYzph48gPCBqb3Vqb3VzaGFrdXJ5b3VcIDsKK+S+teeVpeaIpuS6iSA8IHNoaW5yeWFrdXNlbnNvdVwgOwor5bmz6KGM5Zub6L665b2iIDwgaGVpa291c2hpaGVua2VpXCA7CivlhpLpoK3pmbPov7AgPCBib3V0b3VjaGluanV0c3VcIDsKK+eEvOi6q+iHquauuiA8IHNob3VzaGluamlzYXRzdVwgOwor5oSf5YK35Li7576p6ICFIDwga2Fuc2hvdXNodWdpc2hhXCA7CivlrabnlJ/oh6rmsrvkvJogPCBnYWt1c2VpamljaGlrYWlcIDsKK+Wkp+WuieWQieaXpSA8IHRhaWFua2ljaGluaWNoaVwgOwor55+v5q2j6KaW5YqbIDwga3lvdXNlaXNoaXJ5b2t1XCA7CivlubTph5Hlj5fntabogIUgPCBuZW5raW5qdWt5dXVzaGFcIDsKK+eglOeptumWi+eZuiA8IGtlbmt5dXVrYWloYXRzdVwgOwor5LiJ5oyH6bSOIDwgbWl0c3V5dWJpa2Ftb21lXCA7Civoq4flkIjlhaXmnK0gPCBkYW5nb3VueXV1c2F0c3VcIDsKK+mdnuWQjOacn+mAmuS/oSA8IGhpZG91a2l0c3V1c2hpblwgOwor5LiJ5Y2B5bm05oim5LqJIDwgc2FuanV1bmVuc2Vuc291XCA7CivplonmiYDmgZDmgJbnl4cgPCBoZWlqb2t5b3VmdXNob3VcIDsKK+WPuOazleeglOS/ruaJgCA8IHNoaWhvdWtlbnNodXVqb1wgOwor6Zm455Sf5YuV54mpIDwgcmlrdXNlaWRvdWJ1dHN1XCA7CivkvY7ph5HliKnmlL/nrZYgPCB0ZWlraW5yaXNlaXNha3VcIDsKK+eci+itt+WppumkiuaIkOaJgCA8IGthbmdvZnV5b3VzZWlqb1wgOwor5Y2X5aSq5bmz5rSLIDwgbWluYW1pdGFpaGVpeW91XCA7CivpurvolqzluLjnlKjogIUgPCBtYXlha3Vqb3V5b3VzaGFcIDsKK+WtpueUn+eUn+a0uyA8IGdha3VzZWlzZWlrYXRzdVwgOwor6ZW36Led6Zui5YiX6LuKIDwgY2hvdWt5b3JpcmVzc2hhXCA7Civmh7LnvbDlp5Tlk6HkvJogPCBjaG91YmF0c3VpaW5rYWlcIDsKK++8ke+8ke+8meeVqiA8IGh5YWt1anV1a3l1dWJhblwgOwor5pyJ5qmf5YyW5ZCI54mpIDwgeXV1a2lrYWdvdWJ1dHN1XCA7CivntZDlkIjntYTnuZQgPCBrZXRzdWdvdXNvc2hpa2lcIDsKK+S4jeW9k+WKtOWDjeihjOeCuiA8IGZ1dG91cm91ZG91a291aVwgOwor5b2r5b+D6Y+k6aqoIDwgY2hvdXNoaW5ydWtvdHN1XCA7CivnuIHml6XllYbkurogPCBlbicnbmljaGlzaG91bmluXCA7Civlv4PnpZ7ogJflvLEgPCBzaGluc2hpbm1vdWpha3VcIDsKK+efreacn+iyuOS7mCA8IHRhbmtpa2FzaGl0c3VrZVwgOwor5qW95aSp5Li7576p6ICFIDwgcmFrdXRlbnNodWdpc2hhXCA7Civlt6bkuK3mi6zlvKcgPCBoaWRhcmljaHV1a2Fra29cIDsKK+eEoeadoeS7tumZjeS8jyA8IG11am91a2Vua291ZnVrdVwgOwor6YGL6Lui5YWN6Kix6Ki8IDwgdW50ZW5tZW5reW9zaG91XCA7CivmoLzpl5jmiKbpg6jpmoogPCBrYWt1dG91c2VuYnV0YWlcIDsKK+m7kuiJsuS6uueoriA8IGtva3VzaG9rdWppbnNodVwgOwor5YWs5byP55m66KGoIDwga291c2hpa2loYXBweW91XCA7CivlsZXnpLrljbPlo7LkvJogPCB0ZW5qaXNva3ViYWlrYWlcIDsKK+i7jeS6i+Wig+eVjOe3miA8IGd1bmppa3lvdWthaXNlblwgOwor6Luf6aqo57WE57mUIDwgbmFua290c3Vzb3NoaWtpXCA7CivohbDotaTnh5UgPCBrb3NoaWFrYXRzdWJhbWVcIDsKK+a2iOiyu+iAheWbo+S9kyA8IHNob3VoaXNoYWRhbnRhaVwgOwor5YWo5L2T5Li7576p5Zu9IDwgemVudGFpc2h1Z2lrb2t1XCA7CivmmJ/plpPnianos6ogPCBzZWlrYW5idXNzaGl0c3VcIDsKK+S4jeWPr+S+teadoee0hCA8IGZ1a2FzaGluam91eWFrdVwgOwor55Sf5rav5a2m57+SIDwgc2hvdWdhaWdha3VzaHV1XCA7Civnn6XorZjooajnj74gPCBjaGlzaGlraWh5b3VnZW5cIDsKK+a6kOawj+eJqeiqniA8IGdlbmppbW9ub2dhdGFyaVwgOwor5LiD6Lui5YWr5YCSIDwgc2hpY2hpdGVuYmF0dG91XCA7CivluqfluK3mjIflrprliLggPCB6YXNla2lzaGl0ZWlrZW5cIDsKK+eZveiJsuS6uueoriA8IGhha3VzaG9rdWppbnNodVwgOwor5bmz5a6254mp6KqeIDwgaGVpa2Vtb25vZ2F0YXJpXCA7Civmi5Lntbblj43lv5wgPCBreW96ZXRzdWhhbicnbm91XCA7CivluLDlm73lrZDlpbPmnqAgPCBraWtva3VzaGlqb3dha3VcIDsKK+eJueWIpeW+hemBhyA8IHRva3ViZXRzdXRhaWd1dVwgOwor6Z2S5aSp55m95pelIDwgc2VpdGVuaGFrdWppdHN1XCA7CivlpKnnvbDopr/pnaIgPCB0ZW5iYXRzdXRla2ltZW5cIDsKK+ihgOaXj+e1kOWpmiA8IGtldHN1em9rdWtla2tvblwgOwor55m66Imy54++5YOPIDwgaGFzc2hva3VnZW5zaG91XCA7CivlhaXmnK3kvqHmoLwgPCBueXV1c2F0c3VrYWtha3VcIDsKK+mAo+eri+WGhemWoyA8IHJlbnJpdHN1bmFpa2FrdVwgOwor6IW55byP5ZG85ZC4IDwgZnVrdXNoaWtpa29reXV1XCA7CivpgbroqIDoo5zotrPmm7ggPCB5dWlnb25ob3Nva3VzaG9cIDsKK+S9jumWi+eZuuWbvSA8IHRlaWthaWhhdHN1a29rdVwgOwor6Lu95aaZ5rSS6ISxIDwga2VpbXlvdXNoYWRhdHN1XCA7Civpi7zntKLpiYTpgZMgPCBrb3VzYWt1dGV0c3Vkb3VcIDsKK+eCremJseWKtOWDjeiAhSA8IHRhbmtvdXJvdWRvdXNoYVwgOwor6Kej5p6Q5bm+5L2V5a2mIDwga2Fpc2VraWtpa2FnYWt1XCA7Civnj77mnInli6LlipsgPCBnZW4nJ3l1dXNlaXJ5b2t1XCA7CivntYzmuIjmgKflkJHkuIogPCBrZWl6YWlzZWlrb3Vqb3VcIDsKK+mBiuS8keaWveiorSA8IHl1dWt5dXVzaGlzZXRzdVwgOwor6Lez6LqN5oyv5YuVIDwgY2hvdXlha3VzaGluZG91XCA7CivlnLDkuIvmoLjlrp/pqJMgPCBjaGlrYWtha3VqaWtrZW5cIDsKK+avlOS+i+S7o+ihqOWItiA8IGhpcmVpZGFpaHlvdXNlaVwgOwor56uL5oay5ZCb5Li75pS/IDwgcmlra2Vua3Vuc2h1c2VpXCA7CivprZrpm7fnmbrlsITnrqEgPCBneW9yYWloYXNzaGFrYW5cIDsKK+aQjeebiuWIhuWykOeCuSA8IHNvbicnZWtpYnVua2l0ZW5cIDsKK+ekvuS8muS/nemZuuW6gSA8IHNoYWthaWhva2VuY2hvdVwgOwor6LaF54S25YaF6ZajIDwgY2hvdXplbicnbmFpa2FrdVwgOwor5q2p6KGM6ICF5aSp5Zu9IDwgaG9rb3VzaGF0ZW5nb2t1XCA7Civlrp/mpa3lrabmoKEgPCBqaXRzdWd5b3VnYWtrb3VcIDsKK+engeeri+Wkp+WtpiA8IHNoaXJpdHN1ZGFpZ2FrdVwgOwor5pyA5L2O6KGA5ZynIDwgc2FpdGVpa2V0c3VhdHN1XCA7CivlsIrlsZ7mrrrkurogPCBzb256b2t1c2F0c3VqaW5cIDsKK+WbveawkeeahuS/nemZuiA8IGtva3VtaW5rYWlob2tlblwgOwor6Ki65a+f5a6kIDwgc2hpbnNhdHN1c2hpdHN1XCA7CivkuK3nq4vlnLDluK8gPCBjaHV1cml0c3VjaGl0YWlcIDsKK+S4oealteWcsOaWuSA8IHJ5b3VreW9rdWNoaWhvdVwgOwor6YCj57aa5q665Lq6IDwgcmVuem9rdXNhdHN1amluXCA7CivlnoLnm7TliIbmpa0gPCBzdWljaG9rdWJ1bmd5b3VcIDsKK+a0l+a/r+efs+m5uCA8IHNlbnRha3VzZXRzdWtlblwgOwor6ZeY55eF55Sf5rS7IDwgdG91YnlvdXNlaWthdHN1XCA7CivlkIzmlofpgJrpgZQgPCBkb3VidW50c3V1dGF0c3VcIDsKK+WGhui7oua7keiEsSA8IGVudGVua2F0c3VkYXRzdVwgOwor5Y2Y57SU5YaN55Sf55SjIDwgdGFuanVuc2Fpc2Vpc2FuXCA7CivooqvpgbjmjJnos4fmoLwgPCBoaXNlbmt5b3NoaWtha3VcIDsKK+eUn+eJqeW3peWtpiA8IHNlaWJ1dHN1a291Z2FrdVwgOwor5Z+65rqW5aSW6LOD6YeRIDwga2lqdW5nYWljaGluZ2luXCA7CivkuIDlvovmuJvlj40gPCBpY2hpcml0c3VnZW50YW5cIDsKK+S6uuWToee4ruWwkSA8IGppbicnaW5zaHVrdXNob3VcIDsKK+itmOWIpeWKmyA8IHNoaWtpYmV0c3VyeW9rdVwgOwor54ax5biv5L2O5rCX5ZynIDwgbmV0dGFpdGVpa2lhdHN1XCA7Civni6znq4vlpInmlbAgPCBkb2t1cml0c3VoZW5zdXVcIDsKK+S6uuWumuizquWVjyA8IGppbnRlaXNoaXRzdW1vblwgOwor5paw57SE6IGW5pu4IDwgc2hpbicneWFrdXNlaXNob1wgOwor55Sf5q665LiO5aWqIDwgc2Vpc2F0c3V5b2RhdHN1XCA7Civnp4Hoh6rouqsgPCB3YXRha3VzaGlqaXNoaW5cIDsKK+W5s+a4heebmyA8IHRhaXJhbm9raXlvbW9yaVwgOwor5q6/5qeY5LuV5LqLIDwgdG9ub3NhbWFzaGlnb3RvXCA7Civlj7DmiYDnlKjlk4EgPCBkYWlkb2tvcm95b3VoaW5cIDsKK+iytOmHkeWxnuWNuCA8IGtpa2luem9rdW9yb3NoaVwgOwor5LiK5pa56LSF5YWtIDwga2FtaWdhdGF6ZWlyb2t1XCA7CivooYDml4/plqLkv4IgPCBrZXRzdXpva3VrYW5rZWlcIDsKK+WtkOWuruW+jOWxiCA8IHNoaWt5dXVrb3VrdXRzdVwgOwor5Y2X5b6B5YyX5LyQIDwgbmFuc2VpaG9rdWJhdHN1XCA7Civnj77lnKjlrozkuobmmYIgPCBnZW56YWlrYW5yeW91amlcIDsKK+ecn+Wun+S4gOi3ryA8IHNoaW5qaXRzdWljaGlyb1wgOwor54m55Yil6YGL6LODIDwgdG9rdWJldHN1dW5jaGluXCA7CivnrYnovrrkuInop5LlvaIgPCB0b3VoZW5zYW5rYWtrZWlcIDsKK+aXpeW4uOiMtumjr+S6iyA8IG5pY2hpam91c2FoYW5qaVwgOwor6YCa5bi45oim5YqbIDwgdHN1dWpvdXNlbnJ5b2t1XCA7CivpgKPpjpbnirbnkIPoj4wgPCByZW5zYWpvdWt5dXVraW5cIDsKK+WIqeWus+W+l+WksSA8IHJpZ2FpdG9rdXNoaXRzdVwgOwor5rWF6YWM5L2O5ZSxIDwgc2Vuc2hha3V0ZWlzaG91XCA7Civoo7jlrZDmpI3niakgPCByYXNoaXNob2t1YnV0c3VcIDsKK+WAn+eUqOiovOabuCA8IHNoYWt1eW91c2hvdXNob1wgOwor5YWx5pyJ57WQ5ZCIIDwga3lvdXl1dWtldHN1Z291XCA7Civljp/niIbniqDnibLogIUgPCBnZW5iYWt1Z2lzZWlzaGFcIDsKK+WbnuaKmOmgmOWfnyA8IGthaXNldHN1cnlvdWlraVwgOwor6IG35qWt5oSP6K2YIDwgc2hva3VneW91aXNoaWtpXCA7CivlpJblm73mipXos4flrrYgPCBnYWlrb2t1dG91c2hpa2FcIDsKK+WNmOW8j+Wtpue0miA8IHRhbnNoaWtpZ2Fra3l1dVwgOwor5a2m6KGT6ZuR6KqMIDwgZ2FrdWp1dHN1emFzc2hpXCA7CivlhaXlh7rlipsgPCBueXV1c2h1dHN1cnlva3VcIDsKK+e0m+WkseWxiiA8IGZ1bnNoaXRzdXRvZG9rZVwgOwor6Zu75rOi5aSp5paH5a2mIDwgZGVucGF0ZW5tb25nYWt1XCA7CivljZLmpa3oqabpqJMgPCBzb3RzdWd5b3VzaGlrZW5cIDsKK+WEquaAp+W9ouizqiA8IHl1dXNlaWtlaXNoaXRzdVwgOwor5oiQ6ZW35puy57eaIDwgc2VpY2hvdWt5b2t1c2VuXCA7Civnmb7lhavljYHluqYgPCBoeWFrdWhhY2hpanV1ZG9cIDsKK+Wkp+WSjOaSq+WtkCA8IHlhbWF0b25hZGVzaGlrb1wgOwor5aW96Imy5paH5a2mIDwga291c2hva3VidW5nYWt1XCA7CivpnIrprYLmtojmu4UgPCByZWlrb25zaG91bWV0c3VcIDsKK+eJueWIpemFjeW9kyA8IHRva3ViZXRzdWhhaXRvdVwgOwor5qeL6YCg6KiA6Kqe5a2mIDwga291em91Z2VuZ29nYWt1XCA7Civpoqjlipvpmo7ntJogPCBmdXVyeW9rdWthaWt5dXVcIDsKK+WcsOWfn+WGt+aaluaIvyA8IGNoaWlraXJlaWRhbmJvdVwgOwor5rWB5L2T5Yqb5a2mIDwgcnl1dXRhaXJpa2lnYWt1XCA7Civkurrlt6XlkbzlkLjms5UgPCBqaW5rb3Vrb2t5dXVob3VcIDsKK+WKo+W8seaEj+itmCA8IHJldHN1amFrdWlzaGlraVwgOwor5a6f6Ki85Li7576p6ICFIDwgamlzc2hvdXNodWdpc2hhXCA7CivmsYLogbfkv4IgPCBreXV1c2hva3VnYWthcmlcIDsKK+S6jOiCoeiGj+iWrCA8IGZ1dGFtYXRha291eWFrdVwgOwor5pSv5oyB5Yqb55CG6KuWIDwgc2hpamlyeW9rdXJpcm9uXCA7Civnianos6rku6PorJ0gPCBidXNzaGl0c3V0YWlzaGFcIDsKK+euoei9hOWumOW6gSA8IGthbmthdHN1a2FuY2hvdVwgOwor5YWs6ZaL6KiO6KuW5LyaIDwga291a2FpdG91cm9ua2FpXCA7Civkv67mraPnlLPlkYogPCBzaHV1c2Vpc2hpbmtva3VcIDsKK+W/g+eQhuWwj+iqrCA8IHNoaW5yaXNob3VzZXRzdVwgOwor552A6Zm45Zyw54K5IDwgY2hha3VyaWt1Y2hpdGVuXCA7Civmlofpg6jnp5HlrabnnIEgPCBtb25idWthZ2FrdXNob3VcIDsKK+eJueioseaYjue0sOabuCA8IHRva2t5b21laXNhaXNob1wgOwor5a6f6aiT5bCP6KqsIDwgamlra2Vuc2hvdXNldHN1XCA7Civljp/lrZDniIbnmbogPCBnZW5zaGliYWt1aGF0c3VcIDsKK+eojuWItuiqv+afu+S8miA8IHplaXNlaWNob3VzYWthaVwgOwor5YWl5Yqb5oOF5aCxIDwgbnl1dXJ5b2t1am91aG91XCA7Civph4/lrZDlipvlraYgPCByeW91c2hpcmlraWdha3VcIDsKK+WlquS4ieaMr+eOiyA8IGRhdHN1c2Fuc2hpbicnb3VcIDsKK+eZuuWxlemAlOS4iuWbvSA8IGhhdHRlbnRvam91a29rdVwgOwor5YWs5YWx5Zuz5pu46aSoIDwga291a3lvdXRvc2hva2FuXCA7CivlubTmnKvoqr/mlbQgPCBuZW5tYXRzdWNob3VzZWlcIDsKK+Wtpuihk+irluaWhyA8IGdha3VqdXRzdXJvbmJ1blwgOwor55Sf54mp5a2m6ICFIDwgc2VpYnV0c3VnYWt1c2hhXCA7Civlha3nmb7lha3lj7cgPCByb3BweWFrdXJva3Vnb3VcIDsKK+aAneW8geWTsuWtpiA8IHNoaWJlbnRldHN1Z2FrdVwgOwor5Zu95YaF6KaP5qC85YyWIDwga29rdW5haWtpa2FrdWthXCA7CivlibXnq4voqJjlv7Xml6UgPCBzb3VyaXRzdWtpbmVuYmlcIDsKK+mHkemKreeZu+mMsuWZqCA8IGtpbnNlbnRvdXJva3VraVwgOwor5oqX55Sf54mp6LOqIDwga291c2VpYnVzc2hpdHN1XCA7CivlirTlg43ntYTlkIjms5UgPCByb3Vkb3VrdW1pYWlob3VcIDsKK+e0oOW9ouadkOeUo+alrSA8IHNva2VpemFpc2FuZ3lvdVwgOwor5rS75YuV5YaZ55yfIDwga2F0c3Vkb3VzaGFzaGluXCA7CivkuqTmj5vosr/mmJPliLYgPCBrb3VrYW5ib3Vla2lzZWlcIDsKK+ePvuWcsOmnkOWcqOWToSA8IGdlbmNoaWNodXV6YWlpblwgOwor5pyA5bCP6Ieq5LmX5rOVIDwgc2Fpc2hvdWppam91aG91XCA7CivlsI/lnovkuZfnlKjou4ogPCBrb2dhdGFqb3V5b3VzaGFcIDsKK+WxnuaAp+WApOihjOWIlyA8IHpva3VzZWd5b3VyZXRzdVwgOwor5rW36LuN5YW15a2m5qChIDwga2FpZ3VuaGVpZ2Fra291XCA7Civnsr7npZ7oloTlvLEgPCBzZWlzaGluaGFrdWpha3VcIDsKK+W8t+i/q+ims+W/tSA8IGt5b3VoYWt1a2FuJyduZW5cIDsKK+m7hOmBk+WNgeS6jOWuriA8IGtvdWRvdWp1dW5pa3l1dVwgOwor6Ium5oOF5Yem55CG5qmf6ZaiIDwga3Vqb3VzaG9yaWtpa2FuXCA7Civou43nuK7ljZTlrpogPCBndW5zaHVrdWt5b3V0ZWlcIDsKK+edgOmZuOWcsOW4ryA8IGNoYWt1cmlrdWNoaXRhaVwgOwor54Kt5aG154iG55m6IDwgdGFuamluYmFrdWhhdHN1XCA7Civoo5zliqnoqJjmhrboo4Xnva4gPCBob2pva2lva3Vzb3VjaGlcIDsKK+eUn+a0u+eSsOWigyA8IHNlaWthdHN1a2Fua3lvdVwgOwor5Ye65p2l6auY5LuV5LqLIDwgZGVraWRha2FzaGlnb3RvXCA7CivmioDooZPpnanmlrAgPCBnaWp1dHN1a2FrdXNoaW5cIDsKK+izh+eUo+iyoOWCteihqCA8IHNoaXNhbmZ1c2FpaHlvdVwgOwor57Kf57KS57WQ5qC4IDwgem9rdXJ5dXVrZWtrYWt1XCA7CivniYjmqKnmiYDmnInogIUgPCBoYW5rZW5zaG95dXVzaGFcIDsKK+S/oeW+kuS8neWLleiAhSA8IHNoaW50b2RlbmRvdXNoYVwgOwor5Luu5Y+X5Y+W6Ki8IDwga2FyaXVrZXRvcmlzaG91XCA7CivmlrDogZ7phY3pgZQgPCBzaGluYnVuaGFpdGF0c3VcIDsKK+WNkualreirluaWhyA8IHNvdHN1Z3lvdXJvbmJ1blwgOwor55m76Yyy5ZWG5qiZIDwgdG91cm9rdXNob3VoeW91XCA7Civkv6HnlKjpipjmn4QgPCBzaGluJyd5b3VtZWlnYXJhXCA7Civmk43mtYTnkaDnkoMgPCBheWF0c3VyaWpvdXJ1cmlcIDsKK+WFseWQjOeUn+a0uyA8IGt5b3Vkb3VzZWlrYXRzdVwgOwor5a6Y6IO95Li7576p6ICFIDwga2FuJydub3VzaHVnaXNoYVwgOwor5Lyd6YGU54m55oCnIDwgZGVudGF0c3V0b2t1c2VpXCA7Civph5Hlo7rnnLwgPCBrYW5hdHN1Ym9tYW5ha29cIDsKK+S/oeS7sOeUn+a0uyA8IHNoaW5rb3VzZWlrYXRzdVwgOwor6YO35Zyf5bCP6KqsIDwga3lvdWRvc2hvdXNldHN1XCA7Civpm4blm6PnlJ/mtLsgPCBzaHV1ZGFuc2Vpa2F0c3VcIDsKK+iBlumciumZjeiHqOelrSA8IHNlaXJlaWtvdXJpbnNhaVwgOwor6aeQ5pel5aSn5L2/IDwgY2h1dW5pY2hpdGFpc2hpXCA7Civls7blm73moLnmgKcgPCBzaGltYWd1bmlrb25qb3VcIDsKK+a1geihjOaAp+iEs+eCjiA8IHJ5dXVrb3VzZWlub3VlblwgOwor6KiY5b+16KuW5paH6ZuGIDwga2luZW5yb25idW5zaHV1XCA7Civoh6rli5XpgKPntZDmqZ8gPCBqaWRvdXJlbmtldHN1a2lcIDsKK+Wkp+mZuOaAp+awl+WAmSA8IHRhaXJpa3VzZWlraWtvdVwgOwor5bem5bCP5ous5bynIDwgaGlkYXJpc2hvdWtha2tvXCA7CivmoLjlhbXlmajlrp/pqJMgPCBrYWt1aGVpa2lqaWtrZW5cIDsKK+awkeaXj+Wul+aVmSA8IG1pbnpva3VzaHV1a3lvdVwgOwor5pel5Lit6Z+T6LaKIDwgbml0Y2h1dWthbicnZXRzdVwgOwor6KqH5aSn5aaE5oOz54uCIDwga29kYWltb3Vzb3VreW91XCA7Civpu5LoibLngavolqwgPCBrb2t1c2hva3VrYXlha3VcIDsKK+S4h+acieelnuaVmSA8IGJhbicneXV1c2hpbmt5b3VcIDsKK+mgreiEs+a1geWHuiA8IHp1bm91cnl1dXNodXRzdVwgOwor55u05o6l6Kmx5rOVIDwgY2hva3VzZXRzdXdhaG91XCA7CivouqvliIboqLzmmI7mm7ggPCBtaWJ1bnNob3VtZWlzaG9cIDsKK+aWh+Wtl+WkmumHjeaUvumAgSA8IG1vaml0YWp1dWhvdXNvdVwgOwor5Yy75bir5Zu95a626Kmm6aiTIDwgaXNoaWtva2thc2hpa2VuXCA7CivmlofljJbkurrpoZ7lraYgPCBidW5rYWppbnJ1aWdha3VcIDsKK+W9ouizqui7ouaPmyA8IGtlaXNoaXRzdXRlbmthblwgOwor56ys5LiJ5qyh55Sj5qWtIDwgZGFpc2FuamlzYW5neW91XCA7CivmraPnnJ/mraPpipggPCBzaG91c2hpbnNob3VtZWlcIDsKK+eIhuW8vueZuuiogCA8IGJha3VkYW5oYXRzdWdlblwgOwor5paH5YyW5aSn6Z2p5ZG9IDwgYnVua2FkYWlrYWt1bWVpXCA7Civnm7Tnq4vkuI3li5UgPCBjaG9rdXJpdHN1ZnVkb3VcIDsKK+WVhualremBk+W+syA8IHNob3VneW91ZG91dG9rdVwgOwor6Zmz5YiX5a6kIDwgY2hpbnJldHN1c2hpdHN1XCA7CivnibnoqK3kvJrloLQgPCB0b2t1c2V0c3VrYWlqb3VcIDsKK+mdnuWxgOaJgOWIhuWykCA8IGhpa3lva3VzaG9idW5raVwgOwor5qC454mp55CG5a2mIDwga2FrdWJ1dHN1cmlnYWt1XCA7CivogqLkvZPkuI3oh6rnlLHlhZAgPCBzaGl0YWlmdWppeXV1amlcIDsKK+S7ruWQjea8ouWtl+WkieaPmyA8IGthbmFrYW5qaWhlbmthblwgOwor55u056uL54y/5Lq6IDwgY2hva3VyaXRzdWVuamluXCA7CivplqLkv4Lku6PlkI3oqZ4gPCBrYW5rZWlkYWltZWlzaGlcIDsKK+WkmuWbveexjeiogOiqniA8IHRha29rdXNla2lnZW5nb1wgOwor6LaF6YCj57WQ5a2QIDwgY2hvdXJlbmtldHN1c2hpXCA7CivmsLTpioDmsJflnKfoqIggPCBzdWlnaW5raWF0c3VrZWlcIDsKK+eUsuirluS5memngSA8IGtvdXJvbicnb3RzdWJha3VcIDsKK+WFkOerpeW/g+eQhuWtpiA8IGppZG91c2hpbnJpZ2FrdVwgOwor54mp55qE6LOH5rqQIDwgYnV0c3V0ZWtpc2hpZ2VuXCA7Civnm7TmjqXmlK/mj7QgPCBjaG9rdXNldHN1c2hpZW5cIDsKK+epuua0nuWMluePvuixoSA8IGt1dWRvdWthZ2Vuc2hvdVwgOwor54Sh55CG5pa556iL5byPIDwgbXVyaWhvdXRlaXNoaWtpXCA7CivmlrDliLbkuK3lraYgPCBzaGluc2VpY2h1dWdha3VcIDsKK+Wcp+WKm+Wbo+S9kyA8IGF0c3VyeW9rdWRhbnRhaVwgOwor5rip6KGA5YuV54mpIDwgb25rZXRzdWRvdWJ1dHN1XCA7CivkuqTlt67lr77np7DmgKcgPCBrb3VzYXRhaXNob3VzZWlcIDsKK+S4reeri+WKtOmAoyA8IGNodXVyaXRzdXJvdXJlblwgOwor54m55Yil5a6kIDwgdG9rdWJldHN1c2hpdHN1XCA7CivnoJTnqbbmtLvli5UgPCBrZW5reXV1a2F0c3Vkb3VcIDsKK+iHqueEtuWTsuWtpiA8IHNoaXplbnRldHN1Z2FrdVwgOwor5qCq5Li757eP5LyaIDwga2FidW51c2hpc291a2FpXCA7CivmgKfmoLzliKTliKUgPCBzZWlrYWt1aGFuYmV0c3VcIDsKK+WWp+WYqeS4oeaIkOaVlyA8IGtlbmthcnlvdXNlaWJhaVwgOwor6YGO5aSx5YK35a6zIDwga2FzaGl0c3VzaG91Z2FpXCA7CivpgJrkv6Hlt6XlraYgPCB0c3V1c2hpbmtvdWdha3VcIDsKK+WQjOS4gOS6uueJqSA8IGRvdWl0c3VqaW5idXRzdVwgOwor5Zu95a625YWs5YuZ5ZOh5rOVIDwga29ra2Frb3VtdWluaG91XCA7CivllYblrabljZrlo6sgPCBzaG91Z2FrdWhha3VzaGlcIDsKK+W/g+mgrea7heWNtCA8IHNoaW50b3VtZWtreWFrdVwgOwor5by36KGM5o6h5rG6IDwga3lvdWtvdXNhaWtldHN1XCA7CivoppbogbTopprmqZ/lmaggPCBzaGljaG91a2FrdWtpa2lcIDsKK+WwseS7u+a8lOiqrCA8IHNodXVuaW4nJ2VuemV0c3VcIDsKK+afk+iJsuS9k+eVsOW4uCA8IHNlbnNob2t1dGFpaWpvdVwgOwor5ZCN6KuW5Y2T6KqsIDwgbWVpcm9udGFrdXNldHN1XCA7Civms6jlhaXmlZnogrIgPCBjaHV1bnl1dWt5b3Vpa3VcIDsKK+WQkeeyvuelnuiWrCA8IGtvdXNlaXNoaW4nJ3lha3VcIDsKK+e1kOWpmumBqem9ouacnyA8IGtla2tvbnRla2lyZWlraVwgOwor5ry46L+R55qE6Ieq55SxIDwgemVua2ludGVraWppeXV1XCA7CivliIbliJfooYzpgLIgPCBidW5yZXRzdWtvdXNoaW5cIDsKK+mjn+aWmeWTgeW6lyA8IHNob2t1cnlvdWhpbnRlblwgOwor5oSP5b+X5rG65a6a5qmf6ZaiIDwgaXNoaWtldHRlaWtpa2FuXCA7CivkuLvovp7ntKDmgKfljp/nkIYgPCBzaHVqaXNvc2VpZ2VucmlcIDsKK+a9ruaxkOaRqeaTpiA8IGNob3VzZWtpbWFzYXRzdVwgOwor56+A6Laz5YuV54mpIDwgc2Vzc29rdWRvdWJ1dHN1XCA7Civpo5/nianpgKPpjpYgPCBzaG9rdW1vdHN1cmVuc2FcIDsKK+S4reiCieS4reiDjCA8IGNodXVuaWt1Y2h1dXplaVwgOwor56S+5Lya5rCR5Li75YWaIDwgc2hha2FpbWluc2h1dG91XCA7Civpm4bkuK3mlLvmkoMgPCBzaHV1Y2h1dWtvdWdla2lcIDsKK+eiuuWumuWIpOaxuiA8IGtha3V0ZWloYW5rZXRzdVwgOwor5bCR5aWz5bCP6KqsIDwgc2hvdWpvc2hvdXNldHN1XCA7Civnp4HoqK3lv5zmj7Tlm6MgPCBzaGlzZXRzdW91ZW5kYW5cIDsKK+WNmuWtpuWKm+ihjCA8IGhha3VnYWt1cnlva2tvdVwgOwor57WM5riI5ZCM5Y+L5LyaIDwga2VpemFpZG91eXV1a2FpXCA7Civlj43oqLzlj6/og73mgKcgPCBoYW5zaG91a2Fub3VzZWlcIDsKK+WCjeezu+ihgOaXjyA8IGJvdWtlaWtldHN1em9rdVwgOwor5Lit6ZaT5YaF6ZajIDwgY2h1dWthbicnbmFpa2FrdVwgOwor5Y2Y54us5L6b57WmIDwgdGFuZG9rdWt5b3VreXV1XCA7CivmkKzpgIHlkajms6LmlbAgPCBoYW5zb3VzaHV1aGFzdXVcIDsKK+WksealreS/nemZuiA8IHNoaXRzdWd5b3Vob2tlblwgOwor54m55Yil5Lya6KiIIDwgdG9rdWJldHN1a2Fpa2VpXCA7CivmjK/luYXlpInoqr8gPCBzaGlucHVrdWhlbmNob3VcIDsKK+W6g+WRiuWPjuWFpSA8IGtvdWtva3VzaHV1bnl1dVwgOwor5Lit5Zu95aSn6Zm4IDwgY2h1dWdva3V0YWlyaWt1XCA7CivmnIDpq5jmjIflsI7ogIUgPCBzYWlrb3VzaGlkb3VzaGFcIDsKK+aUvuWHuueJqeizhyA8IGhvdXNodXRzdWJ1c3NoaVwgOwor6YWN6YGU6Ki85piOIDwgaGFpdGF0c3VzaG91bWVpXCA7CivmnIDntYLnm67nmoQgPCBzYWlzaHV1bW9rdXRla2lcIDsKK+iRoeiQhOeKtueQg+iPjCA8IGJ1ZG91am91a3l1dWtpblwgOwor5YWo57+86aOb6KGM5qmfIDwgemVuJyd5b2t1aGlrb3VraVwgOwor5LiA6JOu5omY55SfIDwgaWNoaXJlbnRha3VzaG91XCA7CivpgJ/lirnmgKfogqXmlpkgPCBzb2trb3VzZWloaXJ5b3VcIDsKK+S4ieinkua4rOmHjyA8IHNhbmtha3Vzb2t1cnlvdVwgOwor5YuV54mp5a2m6ICFIDwgZG91YnV0c3VnYWt1c2hhXCA7CivljJblrabnianos6ogPCBrYWdha3VidXNzaGl0c3VcIDsKK+mBheWKueaAp+iCpeaWmSA8IGNoaWtvdXNlaWhpcnlvdVwgOwor5Zu957KL5Li7576p6ICFIDwga29rdXN1aXNodWdpc2hhXCA7CivnhrHljp/lrZDmoLggPCBuZXRzdWdlbnNoaWtha3VcIDsKK+WcsOizquiqv+afuyA8IGNoaXNoaXRzdWNob3VzYVwgOwor5pat5by+5oCn5L+C5pWwIDwgZGFuZGFuc2Vpa2Vpc3V1XCA7Civmra/liJfnn6/mraMgPCBzaGlyZXRzdWt5b3VzZWlcIDsKK+Wbm+WNgeS4g+WjqyA8IHNoaWp1dXNoaWNoaXNoaVwgOwor5LqM5qyh5pa556iL5byPIDwgbmlqaWhvdXRlaXNoaWtpXCA7CivljYHmnIjpnanlkb0gPCBqdXVnYXRzdWtha3VtZWlcIDsKK+W/nOeUqOW/g+eQhuWtpiA8IG91eW91c2hpbnJpZ2FrdVwgOwor5paH6LOq5b2s5b2sIDwgYnVuc2hpdHN1aGlucGluXCA7Civnsr7npZ7nlbDluLjogIUgPCBzZWlzaGluJydpam91c2hhXCA7CivntKvmsLTmmbYgPCBtdXJhc2FraXp1aXNob3VcIDsKK+S/oeiol+Wlkee0hCA8IHNoaW50YWt1a2VpeWFrdVwgOwor5Ye655Sf5bm05pyI5pelIDwgc2h1c3NlaW5lbmdhcHBpXCA7Civni6znq4vmiKbkuokgPCBkb2t1cml0c3VzZW5zb3VcIDsKK+eBq+WKm+eZuumbuyA8IGthcnlva3VoYXRzdWRlblwgOwor6YCf6YGU6YO15L6/IDwgc29rdXRhdHN1eXV1YmluXCA7CivlvIHorbflo6vkuovli5nmiYAgPCBiZW5nb3NoaWppbXVzaG9cIDsKK+Wbm+eZvuWbm+eXhSA8IHNoaWh5YWt1c2hpYnlvdVwgOwor5YuV6Kme54q25ZCN6KmeIDwgZG91c2hpam91bWVpc2hpXCA7CivlhYPluLPmrovpq5ggPCBtb3RvY2hvdXphbmRha2FcIDsKK+iHqueUseijgemHj+aoqSA8IGppeXV1c2FpcnlvdWtlblwgOwor5Lit5aSu6ZuG5qip5YyWIDwgY2h1dW91c2h1dWtlbmthXCA7CivnhKHliKnmga/oqLzliLggPCBtdXJpc29rdXNob3VrZW5cIDsKK+aKveixoee+juihkyA8IGNodXVzaG91YmlqdXRzdVwgOwor54mp6LOq5paH5piOIDwgYnVzc2hpdHN1YnVubWVpXCA7CivotoXniannkIblraYgPCBjaG91YnV0c3VyaWdha3VcIDsKK+S7gee+qeekvOaZuuS/oSA8IGppbmdpcmVpY2hpc2hpblwgOwor5pu05bm05pyf6Zqc5a6zIDwga291bmVua2lzaG91Z2FpXCA7Civlm73oqp7lr6norbDkvJogPCBrb2t1Z29zaGluZ2lrYWlcIDsKK+WcsOaWueijgeWIpOaJgCA8IGNoaWhvdXNhaWJhbnNob1wgOwor6aOf57On5LiN6LazIDwgc2hva3VyeW91YnVzb2t1XCA7CivlhazlhbHmlr3oqK0gPCBrb3VreW91c2hpc2V0c3VcIDsKK+iHquWLleaUueacreapnyA8IGppZG91a2Fpc2F0c3VraVwgOwor5Y2X5qW15p2h57SEIDwgbmFua3lva3Vqb3V5YWt1XCA7CivmnKrlsLHlrablhZDnq6UgPCBtaXNodXVnYWt1amlkb3VcIDsKK+WFteWKm+WJiua4myA8IGhlaXJ5b2t1c2FrdWdlblwgOwor5Y+W57eg5b25IDwgdG9yaXNoaW1hcml5YWt1XCA7Civlhazogbfov73mlL4gPCBrb3VzaG9rdXRzdWlob3VcIDsKK+Wtpuihk+Wbo+S9kyA8IGdha3VqdXRzdWRhbnRhaVwgOwor5a6f5pmC6ZaT5Yem55CGIDwgaml0c3VqaWthbnNob3JpXCA7CivlhbHnlJ/nlJ/niakgPCBreW91c2Vpc2VpYnV0c3VcIDsKK+iiq+WtkOakjeeJqSA8IGhpc2hpc2hva3VidXRzdVwgOwor5pyJ55Wc6L6y5qWtIDwgeXV1Y2hpa3Vub3VneW91XCA7Civlr4TnlJ/mpI3niakgPCBraXNlaXNob2t1YnV0c3VcIDsKK+mgkOmHkea6luWCmeeOhyA8IHlva2luanVuYmlyaXRzdVwgOwor5aSp5L2T5pyb6YGg6Y+hIDwgdGVudGFpYm91ZW5reW91XCA7CivnpL7kvJroq7jnp5HlraYgPCBzaGFrYWlzaG9rYWdha3VcIDsKK+atpuS+oOWwj+iqrCA8IGJ1a3lvdXNob3VzZXRzdVwgOwor5pyo6LOq57mK57atIDwgbW9rdXNoaXRzdXNlbicnaVwgOwor55u06YCa5YiX6LuKIDwgY2hva3V0c3V1cmVzc2hhXCA7Civou6Lnva7ooYzliJcgPCB0ZW5jaGlneW91cmV0c3VcIDsKK+azleW+i+S6i+WLmeaJgCA8IGhvdXJpdHN1amltdXNob1wgOwor5Ye65YuV5ZG95LukIDwgc2h1dHN1ZG91bWVpcmVpXCA7CivoiIzlhYjkuInlr7ggPCBzaGl0YXNha2lzYW56dW5cIDsKK+Wkp+ihhumjn+WggiA8IHRhaXNodXVzaG9rdWRvdVwgOwor5a6f5Yip5Li7576p6ICFIDwgaml0c3VyaXNodWdpc2hhXCA7CivlhoXplqPplqPlg5ogPCBuYWlrYWt1a2FrdXJ5b3VcIDsKK+acqueiuuiqjeaDheWgsSA8IG1pa2FrdW5pbmpvdWhvdVwgOwor6ICB5Lq65oCn55e05ZGGIDwgcm91amluc2VpY2hpaG91XCA7CivlnKjlpJbnoJTnqbblk6EgPCB6YWlnYWlrZW5reXV1aW5cIDsKK+S6uuWPo+eIhueZuiA8IGppbmtvdWJha3VoYXRzdVwgOwor5a6i6Kaz5Li7576p6ICFIDwga3lha2thbnNodWdpc2hhXCA7CivniYflj6PpsK8gPCBrYXRha3VjaGlpd2FzaGlcIDsKK+Wcp+e4ruWKueeOhyA8IGFzc2h1a3Vrb3VyaXRzdVwgOwor5Zu956uL6YqA6KGMIDwga29rdXJpdHN1Z2lua291XCA7CivkuIDnl4Xmga/ngb0gPCBpY2hpYnlvdXNva3VzYWlcIDsKK+mBuOaJi+aoqeWkp+S8miA8IHNlbnNodWtlbnRhaWthaVwgOwor5q2j6YeR5Y+W5byVIDwgc2hvdWtpbnRvcmloaWtpXCA7CivmtYHpgJrpnanlkb0gPCByeXV1dHN1dWtha3VtZWlcIDsKK+iKuOihk+S9nOWTgSA8IGdlaWp1dHN1c2FrdWhpblwgOwor5LiL57Sa6KOB5Yik5omAIDwga2FreXV1c2FpYmFuc2hvXCA7CivpgJPpmY3lpInlnKflmaggPCB0ZWlrb3VoZW5hdHN1a2lcIDsKK+mZkOeVjOmhleW+rumPoSA8IGdlbmthaWtlbmJpa3lvdVwgOwor5paw6IiI5a6X5pWZIDwgc2hpbmtvdXNodXVreW91XCA7Civnn6XorZjlt6XlraYgPCBjaGlzaGlraWtvdWdha3VcIDsKK+S9k+izquaUueWWhCA8IHRhaXNoaXRzdWthaXplblwgOwor54mH5YG06YCa6KGMIDwga2F0YWdhd2F0c3V1a291XCA7CivljZfmpbXlpKfpmbggPCBuYW5reW9rdXRhaXJpa3VcIDsKK+iJtueskeWwj+ipsSA8IGVuc2hvdWtvYmFuYXNoaVwgOwor6KaB5pKD5oim6ZeY5qmfIDwgeW91Z2VraXNlbnRvdWtpXCA7CivllYbmpa3nvo7ooZMgPCBzaG91Z3lvdWJpanV0c3VcIDsKK+elnuiJsuiHquiLpSA8IHNoaW5zaG9rdWppamFrdVwgOwor5rC06Zqb5L2c5oimIDwgbWl6dWdpd2FzYWt1c2VuXCA7CivkuI3lhazlubPnq7bkuokgPCBmdWtvdWhlaWt5b3Vzb3VcIDsKK+eJqeeahOiovOaLoCA8IGJ1dHN1dGVraXNob3Vrb1wgOwor5YWs6KqN5Lya6KiI5aOrIDwga291bmlua2Fpa2Vpc2hpXCA7Civmk43mpa3nn63nuK4gPCBzb3VneW91dGFuc2h1a3VcIDsKK+S4jeWAkue/gSA8IG9raWFnYXJpa29ib3NoaVwgOwor5YaF6IKh6IaP6JasIDwgdWNoaW1hdGFnb3V5YWt1XCA7Civniq/ooYzlo7DmmI7mlocgPCBoYW5rb3VzZWltZWlidW5cIDsKK+a2iOiyu+iAheS+oeagvCA8IHNob3VoaXNoYWtha2FrdVwgOwor6Z+z5qW96KmV6KuW5a62IDwgb25nYWt1aHlvdXJvbmthXCA7CivoibLlvanmhJ/oppogPCBzaGlraXNhaWthbmtha3VcIDsKK+WFrOWuieiqv+afu+W6gSA8IGtvdWFuY2hvdXNhY2hvdVwgOwor5LmX6ZmN6LuK5YSq5YWIIDwgam91a291c2hheXV1c2VuXCA7Civkurrlt6XnlJjlkbPmlpkgPCBqaW5rb3VrYW5taXJ5b3VcIDsKK+WcqOmDt+i7jeS6uuS8miA8IHphaWdvdWd1bmppbmthaVwgOwor6Ieq6KiY5rm/5bqm6KiIIDwgamlraXNoaXRzdWRva2VpXCA7CivlpKfntbHkuIDnkIboq5YgPCBkYWl0b3VpdHN1cmlyb25cIDsKK+i2heiDveWKm+iAhSA8IGNob3Vub3VyeW9rdXNoYVwgOwor5qSc5a6a5pWZ56eR5pu4IDwga2VudGVpa3lvdWthc2hvXCA7CivljLvlrabmioDooZPlo6sgPCBpZ2FrdWdpanV0c3VzaGlcIDsKK+Wkqeeah+iqleeUn+aXpSA8IHRlbicnbm91dGFuam91YmlcIDsKK+WkquW5s+a0i+WcsOWfnyA8IHRhaWhlaXlvdWNoaWlraVwgOwor5pyo6aOf5LiK5Lq6IDwgbW9rdWppa2lzaG91bmluXCA7Civoh6rnlLHkuLvnvqnlm73lrrYgPCBqaXl1dXNodWdpa29ra2FcIDsKK+mAo+i8ieWwj+iqrCA8IHJlbnNhaXNob3VzZXRzdVwgOwor6LOH55Sj5YaN6KmV5L6hIDwgc2hpc2Fuc2FpaHlvdWthXCA7Civmg4Xnt5LpmpzlrrPlhZAgPCBqb3VjaG9zaG91Z2FpamlcIDsKK+aXpeacrOWbveaGsuazlSA8IG5paG9ua29rdWtlbnBvdVwgOwor5Lq65rCR6Kej5pS+6LuNIDwgamlubWlua2FpaG91Z3VuXCA7CivnhKbnhrHlnLDnjYQgPCBzaG91bmV0c3VqaWdva3VcIDsKK+mqqOeyl+mshueXhyA8IGtvdHN1c29zaG91c2hvdVwgOwor5rWB6YCa6Ki85Yi4IDwgcnl1dXRzdXVzaG91a2VuXCA7Civlt67lvJXli5jlrpogPCBzYXNoaWhpa2lrYW5qb3VcIDsKK+mWi+iFueaJi+ihkyA8IGthaWZ1a3VzaHVqdXRzdVwgOwor5Y2z5pel5Ye66I23IDwgc29rdWppdHN1c2h1a2thXCA7Civntbblr77lkJvkuLvliLYgPCB6ZXR0YWlrdW5zaHVzZWlcIDsKK+agquW8j+mFjeW9kyA8IGthYnVzaGlraWhhaXRvdVwgOwor6JuN5YWJ54mp6LOqIDwga2Vpa291YnVzc2hpdHN1XCA7CivogbTopprnpZ7ntYwgPCBjaG91a2FrdXNoaW5rZWlcIDsKK+aHsuaIkuWFjeiBtyA8IGNob3VrYWltZW5zaG9rdVwgOwor6Iq46KGT5oSb5aW95a62IDwgZ2VpanV0c3VhaWtvdWthXCA7CivnorrlrprnlLPlkYogPCBrYWt1dGVpc2hpbmtva3VcIDsKK+iBt+alrei7jeS6uiA8IHNob2t1Z3lvdWd1bmppblwgOwor56eB55Sf5YWQ5Ye655SjIDwgc2hpc2VpamlzaHVzc2FuXCA7CivnlJ/lkb3ntq3mjIHoo4Xnva4gPCBzZWltZWlpamlzb3VjaGlcIDsKK+agquW8j+WFrOmWiyA8IGthYnVzaGlraWtvdWthaVwgOwor5buD5LuP5q+A6YeIIDwgaGFpYnV0c3VraXNoYWt1XCA7CivkuKHpmaLljZTorbDkvJogPCByeW91aW5reW91Z2lrYWlcIDsKK+Wwj+eUsOWOn+aPkOeBryA8IG9kYXdhcmFkam91Y2hpblwgOwor55y85bqV5Ye66KGAIDwgZ2FudGVpc2h1a2tldHN1XCA7Civkv6Hku7vmipXnpaggPCBzaGluJyduaW50b3VoeW91XCA7CivplqLpgKPos6rllY8gPCBrYW5yZW5zaGl0c3Vtb25cIDsKK+W7uueviealreiAhSA8IGtlbmNoaWt1Z3lvdXNoYVwgOwor5ZOy5a2m5Y+y6KaBIDwgdGV0c3VnYWt1c2hpeW91XCA7Civnn6XorZjnlKPmpa0gPCBjaGlzaGlraXNhbmd5b3VcIDsKK+iyqOeJqeiHquWLlei7iiA8IGthbW90c3VqaWRvdXNoYVwgOwor54mH5omL6ZaT5LuV5LqLIDwga2F0YXRlbWFzaGlnb3RvXCA7CivnpZ7ntYzlm57ot6/ntrIgPCBzaGlua2Vpa2Fpcm9tb3VcIDsKK+a1mua4q+S9nOalrSA8IHNodW5zZXRzdXNhZ3lvdVwgOwor5Y245aOy5biC5aC0IDwgb3Jvc2hpdXJpc2hpam91XCA7CivpgJrkv6HmlZnogrIgPCB0c3V1c2hpbmt5b3Vpa3VcIDsKK+WMl+aWl+S4g+aYnyA8IGhva3V0b3NoaWNoaXNlaVwgOwor5q2j5byP55m66KGoIDwgc2Vpc2hpa2loYXBweW91XCA7Civngq3ntKDljJblkIjniakgPCB0YW5zb2thZ291YnV0c3VcIDsKK+aatOWKm+mdqeWRvSA8IGJvdXJ5b2t1a2FrdW1laVwgOwor5rCX566h5pSv5ZaY5oGvIDwga2lrYW5zaGl6ZW5zb2t1XCA7CivlhbHnlKPkuK3lm70gPCBreW91c2FuY2h1dWdva3VcIDsKK+ajruael+mJhOmBkyA8IHNoaW5yaW50ZXRzdWRvdVwgOwor57WM5riI5Y2U5YqbIDwga2VpemFpa3lvdXJ5b2t1XCA7CivniannmoTmkI3lrrMgPCBidXRzdXRla2lzb25nYWlcIDsKK+S4jeiCluengSA8IGZ1c2hvdXdhdGFrdXNoaVwgOwor56m65Lit54iG5pKDIDwga3V1Y2h1dWJha3VnZWtpXCA7CivkuI3li5XnlKPmpa3ogIUgPCBmdWRvdXNhbmd5b3VzaGFcIDsKK+a1t+a0i+awl+ixoeWPsCA8IGthaXlvdWtpc2hvdWRhaVwgOwor5aSx5qWt546HIDwgc2hpdHN1Z3lvdXJpdHN1XCA7CivlubTkuK3lpLHoqIAgPCBuZW5qdXVzaGl0c3VnZW5cIDsKK+aKveWHuueJqSA8IGNodXVzaHV0c3VidXRzdVwgOwor5q2j5pa56KGM5YiXIDwgc2VpaG91Z3lvdXJldHN1XCA7Civoh6rli5Xnv7voqLPmqZ8gPCBqaWRvdWhvbicneWFrdWtpXCA7CivogIHoi6XnlLflpbMgPCByb3VueWFrdW5hbicnbnlvXCA7CivnuITmloflvI/lnJ/lmaggPCBqb3Vtb25zaGlraWRva2lcIDsKK+S/ruS6huiovOabuCA8IHNodXVyeW91c2hvdXNob1wgOwor5LiL562J5qSN54mpIDwga2F0b3VzaG9rdWJ1dHN1XCA7CivovLjlhaXoqrLlvrTph5EgPCB5dW55dXVrYWNob3VraW5cIDsKK+mhleiKseakjeeJqSA8IGtlbmthc2hva3VidXRzdVwgOwor6YeN5ZWG5Li7576p6ICFIDwganV1c2hvdXNodWdpc2hhXCA7CivlnLDlhYPorablr58gPCBqaW1vdG9rZWlzYXRzdVwgOwor5Lit5Zu95Zyw5pa5IDwgY2h1dWdva3VjaGlob3VcIDsKK+Wls+WPi+mBlCA8IG9uJyduYXRvbW9kYWNoaVwgOwor5LiJ5qCh57WC5LqGIDwgc2Fua291c2h1dXJ5b3VcIDsKK+S6uuW3peihgOa2siA8IGppbmtvdWtldHN1ZWtpXCA7CivmnInmgKfnlJ/mrpYgPCB5dXVzZWlzZWlzaG9rdVwgOwor6Yys6YeR6KGT5birIDwgcmVua2luanV0c3VzaGlcIDsKK+mBuueUo+ebuOe2mueojiA8IGlzYW5zb3V6b2t1emVpXCA7Civlr77ml6XmhJ/mg4UgPCB0YWluaWNoaWthbmpvdVwgOwor5q+Y5bus6YGu6YKj5LuPIDwgYmlydXNoYW5hYnV0c3VcIDsKK+eMpeiku+aWh+abuCA8IHdhaXNldHN1YnVuc2hvXCA7Civnmb7ml6XlkrMgPCBoeWFrdW5pY2hpemVraVwgOwor5Luu6KOF6KGM5YiXIDwga2Fzb3VneW91cmV0c3VcIDsKK+ato+W8puabsue3miA8IHNlaWdlbmt5b2t1c2VuXCA7CivmsqHlgIvmgKfnmoQgPCBib3RzdWtvc2VpdGVraVwgOwor54us56uL6YGL5YuVIDwgZG9rdXJpdHN1dW5kb3VcIDsKK+mWoueojuiHquS4u+aoqSA8IGthbnplaWppc2h1a2VuXCA7CivohLHohILnsonkubMgPCBkYXNzaGlmdW4nJ255dXVcIDsKK+WfuuacrOWRqOazouaVsCA8IGtpaG9uc2h1dWhhc3V1XCA7Civljp/lrZDlipvoiLkgPCBnZW5zaGlyeW9rdXNlblwgOwor5Zub6Lyq6aeG5YuV6LuKIDwgeW9ucmlua3Vkb3VzaGFcIDsKK+S4ieeQg+S4ieaMryA8IHNhbmt5dXVzYW5zaGluXCA7CivpnaLnmb3ljYrliIYgPCBvbW9zaGlyb2hhbmJ1blwgOwor5ZWG6Ii55aSn5a2mIDwgc2hvdXNlbmRhaWdha3VcIDsKK+WkqeWcsOS4h+eJqSA8IHRlbmNoaWJhbmJ1dHN1XCA7CivooYzliJflvI8gPCBneW91cmV0c3VzaGlraVwgOwor6ICQ54ax5ZCI6YeRIDwgdGFpbmV0c3Vnb3VraW5cIDsKK+mdmembu+awl+mYsuatoiA8IHNlaWRlbmtpYm91c2hpXCA7CivmlL/nlaXntZDlqZogPCBzZWlyeWFrdWtla2tvblwgOwor54m56auY6K2m5a+fIDwgdG9ra291a2Vpc2F0c3VcIDsKK+eFmeeqgeaOg+mZpOWkqyA8IGVudG90c3Vzb3VqaWZ1XCA7CivllYbmhaPnv5Lms5UgPCBzaG91a2Fuc2h1dWhvdVwgOwor5piG6Jmr5o6h6ZuGIDwga29uY2h1dXNhaXNodXVcIDsKK+S4reWbveaLs+azlSA8IGNodXVnb2t1a2VucG91XCA7Civnvo7ooZPnm6PnnaMgPCBiaWp1dHN1a2FudG9rdVwgOwor5Y+W5omx5Lq6IDwgdG9yaWF0c3VrYWluaW5cIDsKK+WJr+Wkp+e1semgmCA8IGZ1a3VkYWl0b3VyeW91XCA7CivkvJHmiKboqJjlv7Xml6UgPCBreXV1c2Vua2luZW5iaVwgOwor54Sm5oCn56Gr6YW4IDwgc2hvdXNlaXJ5dXVzYW5cIDsKK+Wtpuagoee+pOWItuW6piA8IGdha2tvdWd1bnNlaWRvXCA7Civlkajml4vmpa3ogIUgPCBzaHV1c2VuZ3lvdXNoYVwgOwor5Y2X5Zue5biw57eaIDwgbWluYW1pa2Fpa2lzZW5cIDsKK+aUvuWwhOe3muaKgOW4qyA8IGhvdXNoYXNlbmdpc2hpXCA7Civog47nlJ/li5XniakgPCB0YWlzZWlkb3VidXRzdVwgOwor5YWo5Zu95Lit57aZIDwgemVua29rdWNodXVrZWlcIDsKK+eJm+atqeaIpuihkyA8IGd5dXVob3Nlbmp1dHN1XCA7CivnqoHmkoPpmorlk6EgPCB0b3RzdWdla2l0YWlpblwgOwor57SE55m+5LiH5YaGIDwgeWFrdWh5YWt1bWFuZW5cIDsKK+S6uua1t+aIpuihkyA8IGppbmthaXNlbmp1dHN1XCA7Civlh7rlhaXlm70gPCBzaHV0c3VueXV1a29rdVwgOwor5a625bqt6KOB5Yik5omAIDwga2F0ZWlzYWliYW5zaG9cIDsKK+WkqeaWh+WtpueahCA8IHRlbm1vbmdha3V0ZWtpXCA7CivmgJ3moYjmipXpppYgPCBzaGlhbicnbmFnZWt1YmlcIDsKK+mVt+i3nembouaJk+iAhSA8IGNob3VreW9yaWRhc2hhXCA7Civoo4/lj6Pllrbmpa0gPCB1cmFndWNoaWVpZ3lvdVwgOwor5Lyd5aWH5bCP6KqsIDwgZGVua2lzaG91c2V0c3VcIDsKK+S4reeri+S4u+e+qSA8IGNodXVyaXRzdXNodWdpXCA7CivmiY3mp4zpoK0gPCBzYWlkenVjaGlhdGFtYVwgOwor56CU56m26LOH5paZIDwga2Vua3l1dXNoaXJ5b3VcIDsKK+WPpOeUn+eJqeWtpiA8IGtvc2VpYnV0c3VnYWt1XCA7Civmm7TnlJ/mlr3oqK0gPCBrb3VzZWlzaGlzZXRzdVwgOwor54mH6YGT5YiH56ymIDwga2F0YW1pY2hpa2lwcHVcIDsKK+aXpeacrOaomea6luaZgiA8IG5paG9uaHlvdWp1bmppXCA7CivmjqXntprliqnoqZ4gPCBzZXRzdXpva3Vqb3NoaVwgOwor6KqY5bCO6Zu75YuV5qmfIDwgeXV1ZG91ZGVuZG91a2lcIDsKK+mAhuiqrOeahCA8IGd5YWt1c2V0c3V0ZWtpXCA7Civoi7Hku4/mtbfls6EgPCBlaWZ1dHN1a2Fpa3lvdVwgOwor56iU5a6f5LiN6ImvIDwgbmVuaml0c3VmdXJ5b3VcIDsKK+W7uuWbveiomOW/teaXpSA8IGtlbmtva3VraW5lbmJpXCA7CivlhazooYbmtbTloLQgPCBrb3VzaHV1eW9rdWpvdVwgOwor5Ymv6aOf54mpIDwgZnVrdXNob2t1YnV0c3VcIDsKK+err+acq+ijhee9riA8IHRhbm1hdHN1c291Y2hpXCA7CivmloflrZfnrKblj7fljJbms5UgPCBtb2ppZnVnb3VrYWhvdVwgOwor5Lyd57Wx5Li7576p6ICFIDwgZGVudG91c2h1Z2lzaGFcIDsKK+mnkOi7iuaWmemHkSA8IGNodXVzaGFyeW91a2luXCA7Civos4fmnKzlj5blvJUgPCBzaGlob250b3JpaGlraVwgOwor5qCq5byP55u45aC0IDwga2FidXNoaWtpc291YmFcIDsKK+eZu+iomOeVquWPt+ashCA8IHRvdWtpYmFuZ291cmFuXCA7CivmranooYzogIXlhKrlhYggPCBob2tvdXNoYXl1dXNlblwgOwor54Sh5Lq65a6H5a6Z6Ii5IDwgbXVqaW4nJ3VjaHV1c2VuXCA7CivlhY3nlqvlj43lv5wgPCBtZW4nJ2VraWhhbicnbm91XCA7Civlu7roqK3kvJrnpL4gPCBrZW5zZXRzdWdhaXNoYVwgOwor5pys5pyr6aGb5YCSIDwgaG9ubWF0c3V0ZW50b3VcIDsKK+WIneW/l+iyq+W+uSA8IHNob3NoaWthbnRldHN1XCA7CivnvoXokITml6Xovp7lhbggPCByYXBvbmljaGlqaXRlblwgOwor55Sj5qWt6Z2p5ZG9IDwgc2FuZ3lvdWtha3VtZWlcIDsKK+WumuW5tOmAgOiBtyA8IHRlaW5lbnRhaXNob2t1XCA7Civlm73pmpvopqrlloQgPCBrb2t1c2Fpc2hpbnplblwgOwor5oCn5qC86Ki65patIDwgc2Vpa2FrdXNoaW5kYW5cIDsKK+WFqOi6q+ihsOW8sSA8IHplbnNoaW5zdWlqYWt1XCA7CivllY/poYzop6PmsbogPCBtb25kYWlrYWlrZXRzdVwgOwor5rip5pqW5YyW54++6LGhIDwgb25kYW5rYWdlbnNob3VcIDsKK+WTuuS5s+WLleeJqSA8IGhvbnl1dWRvdWJ1dHN1XCA7Civos4fmnKzms6jlhaUgPCBzaGlob25jaHV1bnl1dVwgOwor5L+u5qWt5bm06ZmQIDwgc2h1dWd5b3VuZW5nZW5cIDsKK+WppuS6uuWPguaUv+aoqSA8IGZ1amluc2Fuc2Vpa2VuXCA7Civoh6rnlLHmsJHkuLvlhZogPCBqaXl1dW1pbnNodXRvdVwgOwor57eR57as6KSS56ugIDwgcnlva3VqdWhvdXNob3VcIDsKK+eglOeptumhjOebriA8IGtlbmt5dXVkYWltb2t1XCA7Civnl4Xluorml6XoqowgPCBieW91c2hvdW5pc3NoaVwgOwor566X6KGT6KiI566XIDwgc2FuanV0c3VrZWlzYW5cIDsKK+W4sOWMluakjeeJqSA8IGtpa2FzaG9rdWJ1dHN1XCA7Civph5Hono3mgZDmhYwgPCBraW4nJ3l1dWt5b3Vrb3VcIDsKK+WAi+S9k+eZuueUn+irliA8IGtvdGFpaGFzc2Vpcm9uXCA7CivlpKflqIHlvrPlppnnjosgPCBkYWlpdG9rdW15b3VvdVwgOwor54m55Yil5o6q572uIDwgdG9rdWJldHN1c29jaGlcIDsKK+W8m+W8teaMr+WLlSA8IHNoaWNob3VzaGluZG91XCA7CivmiKbmiKblhaLlhaIgPCBzZW5zZW5reW91a3lvdVwgOwor5aSn6Z+T6Iiq56m65qmfIDwgdGFpa2Fua291a3V1a2lcIDsKK+ims+WFieaWveiorSA8IGthbmtvdXNoaXNldHN1XCA7CivlloTnlLflloTlpbMgPCB6ZW4nJ25hbnplbicnbnlvXCA7Civkv6HnlKjosqnlo7IgPCBzaGluJyd5b3VoYW5iYWlcIDsKK+acq+aiouelnue1jCA8IG1hc3Nob3VzaGlua2VpXCA7Civpqqjpq4Tnp7vmpI0gPCBrb3RzdXp1aWlzaG9rdVwgOwor6YGT5b6z5pWZ6IKyIDwgZG91dG9rdWt5b3Vpa3VcIDsKK+mHkeauv+eOiealvCA8IGtpbmRlbmd5b2t1cm91XCA7CivkuI3nibnlrprlpJrmlbAgPCBmdXRva3V0ZWl0YXN1dVwgOwor55Oi566q6a+wIDwgaHlvdXRhbicnbmFtYXp1XCA7CivmnbHljYrnkIMgPCBoaWdhc2hpaGFua3l1dVwgOwor5YuV54mp6LOqIDwgZG91YnV0c3VzaGl0c3VcIDsKK+eCuea7tOazqOWwhCA8IHRlbnRla2ljaHV1c2hhXCA7Civlt6Xlrabkv67lo6sgPCBrb3VnYWt1c2h1dXNoaVwgOwor6ZaA5aSW5LiN5Ye6IDwgbW9uZ2FpZnVzaHV0c3VcIDsKK+S4u+aDheS4u+e+qeiAhSA8IHNodWpvdXNodWdpc2hhXCA7Civms5Xlrprku6PnkIbkurogPCBob3V0ZWlkYWlyaW5pblwgOwor6YCa5L+h6KOF572uIDwgdHN1dXNoaW5zb3VjaGlcIDsKK+S9nOaIpuioiOeUuyA8IHNha3VzZW5rZWlrYWt1XCA7Civlhazplovlm7Pmm7jppKggPCBrb3VrYWl0b3Nob2thblwgOwor5aC05aSW5Y+W5byVIDwgam91Z2FpdG9yaWhpa2lcIDsKK+S/oeiol+mKgOihjCA8IHNoaW50YWt1Z2lua291XCA7CivkuIDmmYLplpPku6XlhoUgPCBpY2hpamlrYW4nJ2luYWlcIDsKK+Wig+eVjOiqv+aVtCA8IGt5b3VrYWljaG91c2VpXCA7CivkuLvlipvoiabpmoogPCBzaHVyeW9rdWthbnRhaVwgOwor5pWw55CG6KiA6Kqe5a2mIDwgc3V1cmlnZW5nb2dha3VcIDsKK+iBt+WgtOeSsOWigyA8IHNob2t1YmFrYW5reW91XCA7CivotorkuK3opIwgPCBldGNodXVmdW5kb3NoaVwgOwor5Ymy5byV5L6h5qC8IDwgd2FyaWJpa2lrYWtha3VcIDsKK+aVtOW9ouaJi+ihkyA8IHNlaWtlaXNodWp1dHN1XCA7CivphbjmgKfpo5/lk4EgPCBzYW5zZWlzaG9rdWhpblwgOwor5Y6f5a2Q5Yqb5a2mIDwgZ2Vuc2hpcmlraWdha3VcIDsKK+awtOS4ree/vOiIuSA8IHN1aWNodXV5b2t1c2VuXCA7CivpgbrnlKPnm7jntprkurogPCBpc2Fuc291em9rdW5pblwgOwor55m66YGU5q616ZqOIDwgaGF0dGF0c3VkYW5rYWlcIDsKK+aWueWQkeaOouefpeWZqCA8IGhvdWtvdXRhbmNoaWtpXCA7Civoq7joqqzntJvntJsgPCBzaG9zZXRzdWZ1bnB1blwgOwor5Lmz6YW46aOy5paZIDwgbnl1dXNhbicnaW5yeW91XCA7CivlgIvjgIXliKXliKUgPCBrb2tvYmV0c3ViZXRzdVwgOwor5Y+j5LiN6Kq/5rOVIDwga3VjaGlidWNob3Vob3VcIDsKK+i2heiHqueEtueahCA8IGNob3VzaGl6ZW50ZWtpXCA7CivnhrHlj6/loZHmqLnohIIgPCBuZXRzdWthc29qdXNoaVwgOwor5Zu96Ziy6ZW35a6YIDwga29rdWJvdWNob3VrYW5cIDsKK+ato+e1seS/oeaVmSA8IHNlaXRvdXNoaW5reW91XCA7CivlvLfljJblkIjlrr8gPCBreW91a2FnYXNzaHVrdVwgOwor5pyd6a6u5Lq65Y+CIDwgY2hvdXNlbicnbmluamluXCA7CivljbDljYrnuo8gPCBzaGlydXNoaWJhbnRlblwgOwor5p2f57ib5aSJ6aCFIDwgc29rdWJha3VoZW5rb3VcIDsKK+elnue1jOe1hOe5lCA8IHNoaW5rZWlzb3NoaWtpXCA7CivotoXotorplqLmlbAgPCBjaG91ZXRzdWthbnN1dVwgOwor5Yq5546H5ZCR5LiKIDwga291cml0c3Vrb3Vqb3VcIDsKK+eEoeapn+WMluWQiOeJqSA8IG11a2lrYWdvdWJ1dHN1XCA7Civku5XmlrnoqbEgPCBzaGlrYXRhYmFuYXNoaVwgOwor5aSn6ISz55qu6LOqIDwgZGFpbm91aGlzaGl0c3VcIDsKK+aUueacreS/giA8IGthaXNhdHN1Z2FrYXJpXCA7CivnlJ/kvZPlipvlraYgPCBzZWl0YWlyaWtpZ2FrdVwgOwor6YeN6KaB5paH5YyW6LKhIDwganV1eW91YnVua2F6YWlcIDsKK+WxseS4i+WFrOWckiA8IHlhbWFzaGl0YWtvdWVuXCA7CivlsYXplpPlhbzpo5/loIIgPCBpbWFrZW5zaG9rdWRvdVwgOwor5Y+j6L+w6Kmm6aiTIDwga291anV0c3VzaGlrZW5cIDsKK+S4gOaXpeeJh+aZgiA8IGljaGluaWNoaWhlbmppXCA7CivnpL7kvJrnlJ/mtLsgPCBzaGFrYWlzZWlrYXRzdVwgOwor5Ye654mI55uu6YyyIDwgc2h1cGFubW9rdXJva3VcIDsKK+WIpemAlOaUr+WHuiA8IGJldHRvc2hpc2h1dHN1XCA7CivnlLPlkYrntI3nqI4gPCBzaGlua29rdW5vdXplaVwgOwor5YmD5YiA6KemIDwga2FtaXNvcmlrYWJ1cmVcIDsKK+Wjsua4oeiovCA8IHVyaXdhdGFzaGlzaG91XCA7CivljbPmsbroo4HliKQgPCBzb2trZXRzdXNhaWJhblwgOwor55Ww5pa55bCO6Zu76IacIDwgaWhvdWRvdWRlbm1ha3VcIDsKK+eLrOeri+iHquWwiiA8IGRva3VyaXRzdWppc29uXCA7CivlqZrntITmjIfovKogPCBrb24nJ3lha3V5dWJpd2FcIDsKK+ihgOa2suWHneWbuiA8IGtldHN1ZWtpZ3lvdWtvXCA7Civlh7rlh6bpgLLpgIAgPCBzaHVzc2hvc2hpbnRhaVwgOwor5byT55+i5YWr5bmhIDwgeXVtaXlhaGFjaGltYW5cIDsKK+itpuWvn+aJi+W4syA8IGtlaXNhdHN1dGVjaG91XCA7Civogbfmpa3lqabkurogPCBzaG9rdWd5b3VmdWppblwgOwor5oyH56S65Luj5ZCN6KmeIDwgc2hpamlkYWltZWlzaGlcIDsKK+WbnuW+qeS4jeWPr+iDvSA8IGthaWZ1a3VmdWthbm91XCA7Civoh7Pnpo/ljYPlubQgPCBzaGlmdWt1c2VuJyduZW5cIDsKK+WkqeWcsOmWi+mXoiA8IHRlbmNoaWthaWJ5YWt1XCA7Civlhrflh43po5/lk4EgPCByZWl0b3VzaG9rdWhpblwgOwor6KOc6Laz6Kqs5piOIDwgaG9zb2t1c2V0c3VtZWlcIDsKK+S/oeeUqOeKtuaFiyA8IHNoaW4nJ3lvdWpvdXRhaVwgOwor57W25a++5rm/5bqmIDwgemV0dGFpc2hpdHN1ZG9cIDsKK+aYjuaYjueZveeZvSA8IG1laW1laWhha3VoYWt1XCA7Civmi53ph5HkuLvnvqnogIUgPCBoYWlraW5zaHVnaXNoYVwgOwor6LuN5YKZ57iu5bCPIDwgZ3VuYmlzaHVrdXNob3VcIDsKK+WNl+eEoemYv+W8pemZgOS7jyA8IG5hbXVhbWlkYWJ1dHN1XCA7CivmmrTlipvlm6Plk6EgPCBib3VyeW9rdWRhbicnaW5cIDsKK+Wkp+WtpuaVmeiCsiA8IGRhaWdha3VreW91aWt1XCA7CivnrKzkuInkurrnp7AgPCBkYWlzYW4nJ25pbnNob3VcIDsKK+S6uumBk+S4u+e+qeiAhSA8IGppbmRvdXNodWdpc2hhXCA7CivmsLjkuJbkuK3nq4sgPCBlaXNlaWNodXVyaXRzdVwgOwor56CU56m26aCY5Z+fIDwga2Vua3l1dXJ5b3Vpa2lcIDsKK+aVmeiCsuWLheiqniA8IGt5b3Vpa3VjaG9rdWdvXCA7CivlkYrliKXlvI8gPCBrb2t1YmV0c3VzaGlraVwgOwor57K+56We6Zqc5a6zIDwgc2Vpc2hpbnNob3VnYWlcIDsKK+Wkqeepuua1t+a/tiA8IHRlbmt1dWthaWthdHN1XCA7Civpo5/ppIznmYLms5UgPCBzaG9rdWppcnlvdWhvdVwgOwor5Lit5aSu5YiG6Zui5bivIDwgY2h1dW91YnVucml0YWlcIDsKK+a4qeW4r+S9juawl+WcpyA8IG9udGFpdGVpa2lhdHN1XCA7CivotoXlm73lrrbkuLvnvqkgPCBjaG91a29ra2FzaHVnaVwgOwor5L2c6ICF5LiN55+lIDwgc2FrdXNoYXNoaXJhenVcIDsKK+eUn+a0u+awtOa6liA8IHNlaWthdHN1c3VpanVuXCA7CivljbXnlJ/li5XniakgPCByYW5zZWlkb3VidXRzdVwgOwor562L6IKJ5Yq05YONIDwga2luJyduaWt1cm91ZG91XCA7CivljZfmlK/pgqPmtbcgPCBtaW5hbWlzaGluYWthaVwgOwor5a2m6KGT55So6KqeIDwgZ2FrdWp1dHN1eW91Z29cIDsKK+iHqueEtumjn+WTgSA8IHNoaXplbnNob2t1aGluXCA7CivllYbmpa3ntYTlkIggPCBzaG91Z3lvdWt1bWlhaVwgOwor6Kqe5b2Z5qmf6IO95paH5rOVIDwgZ29pa2lub3VidW5wb3VcIDsKK+iBt+aoqeS5seeUqCA8IHNob2trZW5yYW4nJ3lvdVwgOwor5Ly06aOf5aSn6IejIDwgYmFuc2hva3VkYWlqaW5cIDsKK+WkvumbkeeJqSA8IGt5b3V6YXRzdWJ1dHN1XCA7CivliKnlrrPplqLkv4LogIUgPCByaWdhaWthbmtlaXNoYVwgOwor6KGG6K2w5ZOh6K2w6ZW3IDwgc2h1dWdpaW5naWNob3VcIDsKK+WyoeebruWFq+ebriA8IG9rYW1laGFjaGltb2t1XCA7CivlsI7ms6LnrqHlrprmlbAgPCBkb3VoYWthbnRlaXN1dVwgOwor5pas5paw5aWH5oqcIDwgemFuc2hpbmtpYmF0c3VcIDsKK+ebtOaDheW+hOihjCA8IGNob2t1am91a2Vpa291XCA7Civnp4Hnq4vlrabmoKEgPCBzaGlyaXRzdWdha2tvdVwgOwor5Lit5pel6L6e5YW4IDwgY2h1dW5pY2hpaml0ZW5cIDsKK+S4geWtl+W9ouWumuimjyA8IHRlaWppZ2F0YWpvdWdpXCA7CivnsKHmmJPoo4HliKTmiYAgPCBrYW4nJ2lzYWliYW5zaG9cIDsKK+WIhumhnuebrumMsiA8IGJ1bnJ1aW1va3Vyb2t1XCA7CivlhoXliIbms4zohbogPCBuYWlidW5waXRzdXNlblwgOwor5Y+N5YuV5Li7576p6ICFIDwgaGFuZG91c2h1Z2lzaGFcIDsKK+a0u+i3r+mWi+aLkyA8IGthdHN1cm9rYWl0YWt1XCA7CivlubPmnb/muKzph48gPCBoZWliYW5zb2t1cnlvdVwgOwor5rqQ5rOJ5b605Y+OIDwgZ2Vuc2VuY2hvdXNodXVcIDsKK+mAmuS/oeihm+aYnyA8IHRzdXVzaGluJydlaXNlaVwgOwor5riF566X5Y+W5byVIDwgc2Vpc2FudG9yaWhpa2lcIDsKK+eJueauiuWtpue0miA8IHRva3VzaHVnYWtreXV1XCA7Civkv6HnlKjoqr/mn7sgPCBzaGluJyd5b3VjaG91c2FcIDsKK+WFiOeJqeWjsuiytyA8IHNha2ltb25vYmFpYmFpXCA7CivkuIPpm6Plhavoi6YgPCBzaGljaGluYW5oYWtrdVwgOwor6KeS6Iac56e75qSNIDwga2FrdW1ha3Vpc2hva3VcIDsKK+mfs+alveWbs+abuOmkqCA8IG9uZ2FrdXRvc2hva2FuXCA7CivmlZHmgKXnl4XpmaIgPCBreXV1a3l1dWJ5b3VpblwgOwor5o6l6Kem5oSf5p+TIDwgc2Vzc2hva3VrYW5zZW5cIDsKK+eojumHkeeUs+WRiiA8IHplaWtpbnNoaW5rb2t1XCA7Civntajmr6/niIbmkoMgPCBqdXV0YW5iYWt1Z2VraVwgOwor5LiD6Lui5YWr6LW3IDwgc2hpY2hpdGVuaGFra2lcIDsKK+S5l+eUqOiHquWLlei7iiA8IGpvdXlvdWppZG91c2hhXCA7CivmsLTpioDkuK3mr5IgPCBzdWlnaW5jaHV1ZG9rdVwgOwor6Zyy5Ye65LiN6LazIDwgcm9zaHV0c3VidXNva3VcIDsKK+W5s+S4iuWOu+WFpSA8IGh5b3Vqb3VreW9ueXV1XCA7Civlm73nq4vlhazlnJIgPCBrb2t1cml0c3Vrb3VlblwgOwor5YWs56uL5a2m5qChIDwga291cml0c3VnYWtrb3VcIDsKK+mAmuS/oeWcj+WkliA8IHRzdXVzaGlua2VuZ2FpXCA7CivntITmnZ/miYvlvaIgPCB5YWt1c29rdXRlZ2F0YVwgOwor5Y+s6ZuG5Luk54q2IDwgc2hvdXNodXVyZWlqb3VcIDsKK+Wcp+WAkueahOWkmuaVsCA8IGF0dG91dGVraXRhc3V1XCA7CivmlrDlhaXnpL7lk6EgPCBzaGluJydueXV1c2hhaW5cIDsKK+aXpeWNl+a1t+WyuCA8IG5pY2hpbmFua2FpZ2FuXCA7CivpnZ7mlL/lupzntYTnuZQgPCBoaXNlaWZ1c29zaGlraVwgOwor5rGO5pW05pWw5byPIDwgaGFuc2Vpc3V1c2hpa2lcIDsKK+iHqueUseWKtOWDjeiAhSA8IGppeXV1cm91ZG91c2hhXCA7Civlj6TnianllYbkurogPCBrb2J1dHN1c2hvdW5pblwgOwor57eR55m96ImyIDwgcnlva3VoYWt1c2hva3VcIDsKK+iGnemWouevgCA8IHNoaXRzdWthbnNldHN1XCA7CivmrablipvlubLmuIkgPCBidXJ5b2t1a2Fuc2hvdVwgOwor5YWs6KGG6YGT5b6zIDwga291c2h1dWRvdXRva3VcIDsKK+aAquWlh+Wwj+iqrCA8IGthaWtpc2hvdXNldHN1XCA7CivljZrmhJvkuLvnvqnogIUgPCBoYWt1YWlzaHVnaXNoYVwgOwor56eY5a+G5oqV56WoIDwgaGltaXRzdXRvdWh5b3VcIDsKK+Wcp+WKm+WuueWZqCA8IGF0c3VyeW9rdXlvdWtpXCA7CivmsYLlqZrluoPlkYogPCBreXV1a29ua291a29rdVwgOwor5b+D5Zug5Y+N5b+cIDwgc2hpbicnaW5oYW4nJ25vdVwgOwor5a6a5pyf5LmX6LuK5Yi4IDwgdGVpa2lqb3VzaGFrZW5cIDsKK+mbu+awl+a0l+a/r+apnyA8IGRlbmtpc2VudGFrdWtpXCA7Civpuqbol4HluL3lrZAgPCBtdWdpd2FyYWJvdXNoaVwgOwor57SN56iO55Sz5ZGKIDwgbm91emVpc2hpbmtva3VcIDsKK+WPjeWvvuensOeahCA8IGhhbnRhaXNob3V0ZWtpXCA7CivntYLmiKboqJjlv7Xml6UgPCBzaHV1c2Vua2luZW5iaVwgOwor5L2P5Y+L6YqA6KGMIDwgc3VtaXRvbW9naW5rb3VcIDsKK+WwsealreS6uuWPoyA8IHNodXVneW91amlua291XCA7Civlhajli53lhKrli50gPCB6ZW5zaG91eXV1c2hvdVwgOwor5bu66Kit5aSn6IejIDwga2Vuc2V0c3VkYWlqaW5cIDsKK+mdnuiJr+W/g+eahCA8IGhpcnlvdXNoaW50ZWtpXCA7Civntbblr77lv4XopoEgPCB6ZXR0YWloaXRzdXlvdVwgOwor56S+5Lya5Li7576p6ICFIDwgc2hha2Fpc2h1Z2lzaGFcIDsKK+ibuOi2s+mFjee3miA8IHRha29hc2hpaGFpc2VuXCA7Civlt6Xmpa3lpKflraYgPCBrb3VneW91ZGFpZ2FrdVwgOwor6YeR5aOx5LiH5YaGIDwga2luJydpY2hpbWFuJydlblwgOwor5peF5a6i5YiX6LuKIDwgcnlva3lha3VyZXNzaGFcIDsKK+Wwj+Wei+iHquWLlei7iiA8IGtvZ2F0YWppZG91c2hhXCA7Civnq4vkvJrmvJToqqwgPCB0YWNoaWFpZW56ZXRzdVwgOwor5aWo5a2m6LOH6YeRIDwgc2hvdWdha3VzaGlraW5cIDsKK+awkeS6i+iotOion+azlSA8IG1pbmppc29zaG91aG91XCA7Civnj77ph5Hlj47lhaUgPCBnZW5raW5zaHV1bnl1dVwgOwor56ys5LqM6YeP5a2Q5YyWIDwgZGFpbmlyeW91c2hpa2FcIDsKK+S6jOWOn+WtkOWIhuWtkCA8IG5pZ2Vuc2hpYnVuc2hpXCA7CivlrabooZPkvJrorbAgPCBnYWt1anV0c3VrYWlnaVwgOwor5rOV5b6L5ZWP6aGMIDwgaG91cml0c3Vtb25kYWlcIDsKK+ebtOmAmumbu+ipsSA8IGNob2t1dHN1dWRlbndhXCA7Civlj7DmiYDpgZPlhbcgPCBkYWlkb2tvcm9kb3VndVwgOwor6Zu75rqQ5L6b57WmIDwgZGVuZ2Vua3lvdWt5dXVcIDsKK+W4uOS7u+aMh+aPruiAhSA8IGpvdW5pbnNoaWtpc2hhXCA7CivmsLTpmbjkuKHnlKggPCBzdWlyaWt1cnlvdXlvdVwgOwor6YCa5L+h5omL5q61IDwgdHN1dXNoaW5zaHVkYW5cIDsKK+S4i+iri+S8muekviA8IHNoaXRhdWtlZ2Fpc2hhXCA7CivnrKzkuIDkurrnp7AgPCBkYWlpY2hpbmluc2hvdVwgOwor5a2m5q2056S+5LyaIDwgZ2FrdXJla2lzaGFrYWlcIDsKK+i+suS6i+ippumok+WgtCA8IG5vdWppc2hpa2Vuam91XCA7Civmg4XloLHljJbnpL7kvJogPCBqb3Vob3VrYXNoYWthaVwgOwor5ryU5aWP5puy55uuIDwgZW5zb3VreW9rdW1va3VcIDsKK+aAneaDs+itpuWvnyA8IHNoaXNvdWtlaXNhdHN1XCA7Civlhaznm4ros6rlsYsgPCBrb3Vla2lzaGljaGl5YVwgOwor5o6l57aa5Y+jIDwgc2V0c3V6b2t1Z3VjaGlcIDsKK+WBleiAgeWQjOeptCA8IGthaXJvdWRvdWtldHN1XCA7CivkuLvoprPkuLvnvqnogIUgPCBzaHVrYW5zaHVnaXNoYVwgOwor54Sh5pWZ5Lya5Li7576pIDwgbXVreW91a2Fpc2h1Z2lcIDsKK+exs+S+oeWvqeitsOS8miA8IGJlaWthc2hpbmdpa2FpXCA7CivlgaXlurfpo5/lk4EgPCBrZW5rb3VzaG9rdWhpblwgOwor5oq96LGh5ZCN6KmeIDwgY2h1dXNob3VtZWlzaGlcIDsKK+Wwj+S5l+S7j+aVmSA8IHNob3Vqb3VidWtreW91XCA7CivmmYLplpPlpJblirTlg40gPCBqaWthbmdhaXJvdWRvdVwgOwor5ZCI55uu55qE5oCnIDwgZ291bW9rdXRla2lzZWlcIDsKK+mbu+WKm+S8muekviA8IGRlbnJ5b2t1Z2Fpc2hhXCA7Civnmb7np5Hlhajmm7jmtL4gPCBoeWFra2F6ZW5zaG9oYVwgOwor5LqM55m+5LqM5Y2B5pelIDwgbmloeWFrdWhhdHN1a2FcIDsKK+a1t+a0i+mWi+eZuiA8IGthaXlvdWthaWhhdHN1XCA7CivntLDog57liIboo4IgPCBzYWlib3VidW5yZXRzdVwgOwor5oCl6KGM5paZ6YeRIDwga3l1dWtvdXJ5b3VraW5cIDsKK+S4geS4geeZuuatoiA8IGNob3VjaG91aGFzc2hpXCA7CivmlZnogbfoqrLnqIsgPCBreW91c2hva3VrYXRlaVwgOwor5LqM6YeN5L6h5qC85Yi2IDwgbmlqdXVrYWtha3VzZWlcIDsKK+WIkeS6i+iotOion+azlSA8IGtlaWppc29zaG91aG91XCA7Civlh53nnYDlipsgPCBneW91Y2hha3VyeW9rdVwgOwor5oeQ5YuY5a6aIDwgZnV0b2tvcm9rYW5qb3VcIDsKK+WHuueJiOalreiAhSA8IHNodXBwYW5neW91c2hhXCA7CivlsLHogbfpgYvli5UgPCBzaHV1c2hva3V1bmRvdVwgOwor55Wl5aWq6KGM54K6IDwgcnlha3VkYXRzdWtvdWlcIDsKK+eQhumdnuabsuebtCA8IHJpaGlreW9rdWNob2t1XCA7Civmj5Dlh7rniakgPCB0ZWlzaHV0c3VidXRzdVwgOwor5Yil5YaK5LuY6YyyIDwgYmVzc2F0c3VmdXJva3VcIDsKK+S4ieaoqeWIhueriyA8IHNhbmtlbmJ1bnJpdHN1XCA7Civlh7rmnK3lj6MgPCBzaHVzc2F0c3VndWNoaVwgOwor6LKp5aOy5Luj55CG5bqXIDwgaGFuYmFpZGFpcml0ZW5cIDsKK+WFseWQjOeglOeptiA8IGt5b3Vkb3VrZW5reXV1XCA7CivmlrDliIrntLnku4sgPCBzaGlua2Fuc2hvdWthaVwgOwor5qOf5Ymy6ZW35bGLIDwgbXVuZXdhcmluYWdheWFcIDsKK+S/ruWlveadoee0hCA8IHNodXVrb3Vqb3V5YWt1XCA7CivlhqDnirbli5XohIggPCBrYW5qb3Vkb3VteWFrdVwgOwor56m656m65ryg5rygIDwga3V1a3V1YmFrdWJha3VcIDsKK+aCquaAp+iyp+ihgCA8IGFrdXNlaWhpbmtldHN1XCA7CivkvJHmiKbljZTlrpogPCBreXV1c2Vua3lvdXRlaVwgOwor56We57WM6KGw5byxIDwgc2hpbmtlaXN1aWpha3VcIDsKK+WbnuaKmOagvOWtkCA8IGthaXNldHN1a291c2hpXCA7CivlhYjmsbrllY/poYwgPCBzZW5rZXRzdW1vbmRhaVwgOwor5p2x5Lqc6Ku45rCR5pePIDwgdG91YXNob21pbnpva3VcIDsKK+WwsealreaXpeaVsCA8IHNodXVneW91bmlzc3V1XCA7Civlrp/pqJPli5XniakgPCBqaWtrZW5kb3VidXRzdVwgOwor5Y2Y6JGJ6aOb6KGM5qmfIDwgdGFuJyd5b3VoaWtvdWtpXCA7Civlv6DlkJvmhJvlm70gPCBjaHV1a3VuJydhaWtva3VcIDsKK+axguS6uuW6g+WRiiA8IGt5dXVqaW5rb3Vrb2t1XCA7Civni6znq4vni6zmrakgPCBkb2t1cml0c3Vkb3Bwb1wgOwor5pyJ5a6z6aOf5ZOBIDwgeXV1Z2Fpc2hva3VoaW5cIDsKK+WbveS8muitsOS6i+mMsiA8IGtva2thaWdpamlyb2t1XCA7CivpurvolqzkuK3mr5IgPCBtYXlha3VjaHV1ZG9rdVwgOwor6YeR5bGe5bel5qWtIDwga2luem9rdWtvdWd5b3VcIDsKK+WNuOWjsueJqeS+oSA8IG9yb3NoaXVyaWJ1a2thXCA7CivlhbHlkIzlh7ros4cgPCBreW91ZG91c2h1c3NoaVwgOwor54ut6LuM6YmE6YGTIDwga3lvdWtpdGV0c3Vkb3VcIDsKK+WVhualreaJi+W9oiA8IHNob3VneW91dGVnYXRhXCA7Civpg7Xkvr/phY3pgZQgPCB5dXViaW5oYWl0YXRzdVwgOwor5riv5rm+5b2T5bGAIDwga291d2FudG91a3lva3VcIDsKK+WVhualremKgOihjCA8IHNob3VneW91Z2lua291XCA7CivnnIHnlaXoqJjlj7cgPCBzaG91cnlha3VraWdvdVwgOwor5aSp5pel55OmIDwgdGVuaml0c3VnYXdhcmFcIDsKK+S4remWk+WgseWRiiA8IGNodXVrYW5ob3Vrb2t1XCA7CivlpKLnianoqp4gPCB5dW1lbW9ub2dhdGFyaVwgOwor5Lit5b+D5oCd5oOzIDwgY2h1dXNoaW5zaGlzb3VcIDsKK+S6lOaciOS6uuW9oiA8IGdvZ2F0c3VuaW5neW91XCA7CivkvJ3mib/mloflraYgPCBkZW5zaG91YnVuZ2FrdVwgOwor5pS/5bqc5L+d6Ki85YK1IDwgc2VpZnVob3Nob3VzYWlcIDsKK+i7n+S9k+WLleeJqSA8IG5hbnRhaWRvdWJ1dHN1XCA7CivkuIDmmJTliY0gPCBoaXRvbXVrYXNoaW1hZVwgOwor5by35Yi25Y+O5a65IDwga3lvdXNlaXNodXV5b3VcIDsKK+S+v+S5l+S4u+e+qeiAhSA8IGJpbmpvdXNodWdpc2hhXCA7CivkuIDpmb3mnaXohbkgPCBpY2hpeW91cmFpZnVrdVwgOwor5ryB5qWt5Y2U5a6aIDwgZ3lvZ3lvdWt5b3V0ZWlcIDsKK+awtOeUn+WLleeJqSA8IHN1aXNlaWRvdWJ1dHN1XCA7CivmpZTlvaLmloflrZcgPCBrdXNhYmlnYXRhbW9qaVwgOwor55m+5Y2S6ZW3IDwgaHlha3Vzb3RzdWNob3VcIDsKK+S/oeeUqOe1hOWQiCA8IHNoaW4nJ3lvdWt1bWlhaVwgOwor56CU56m25aCx5ZGKIDwga2Vua3l1dWhvdWtva3VcIDsKK+mAhuihjOWIlyA8IGd5YWt1Z3lvdXJldHN1XCA7CivkuozlpKfmlL/lhZrliLYgPCBuaWRhaXNlaXRvdXNlaVwgOwor5rC05aSp5b235b2/IDwgc3VpdGVuaG91ZnV0c3VcIDsKK+S9j+WuheeUo+alrSA8IGp1dXRha3VzYW5neW91XCA7Civms6HmsqvkvJrnpL4gPCBob3VtYXRzdWdhaXNoYVwgOwor54Sh5Yip5oGv5YWs5YK1IDwgbXVyaXNva3Vrb3VzYWlcIDsKK+irh+irlumiqOeZuiA8IGRhbnJvbmZ1dWhhdHN1XCA7CivotrPntKDmgKfljp/nkIYgPCBhc2hpc3Vqb3VnZW5yaVwgOwor6LOH5pys5Li7576p6ICFIDwgc2hpaG9uc2h1Z2lzaGFcIDsKK+WFiOeZuuaKleaJiyA8IHNlbnBhdHN1dG91c2h1XCA7CivmjqjnkIblsI/oqqwgPCBzdWlyaXNob3VzZXRzdVwgOwor57Sz5aOr5Y2U5a6aIDwgc2hpbnNoaWt5b3V0ZWlcIDsKK+Wkp+WQjeWxi+aVtyA8IGRhaW15b3V5YXNoaWtpXCA7CivnibnnlbDkvZPos6ogPCB0b2t1aXRhaXNoaXRzdVwgOwor5Lit6ZaT5pC+5Y+WIDwgY2h1dWthbnNha3VzaHVcIDsKK+aWh+WMluWcsOeQhuWtpiA8IGJ1bmthY2hpcmlnYWt1XCA7CivljZToqr/kvZzmpa0gPCBreW91Y2hvdXNhZ3lvdVwgOwor5oyH5Zyn55mC5rOVIDwgc2hpYXRzdXJ5b3Vob3VcIDsKK+WFrOiqjeWAmeijnOiAhSA8IGtvdW5pbmtvdWhvc2hhXCA7Civlt6Xmpa3mioDooZMgPCBrb3VneW91Z2lqdXRzdVwgOwor57eP5ZCI6Iq46KGTIDwgc291Z291Z2VpanV0c3VcIDsKK+aXreaXpeeroCA8IGt5b2t1aml0c3VzaG91XCA7CivkuJbnlYzpgbjmiYvmqKkgPCBzZWthaXNlbnNodWtlblwgOwor5Lit55Sj6ZqO57SaIDwgY2h1dXNhbmthaWt5dXVcIDsKK+WNl+WNgeWtl+aYnyA8IG1pbmFtaWp1dWppc2VpXCA7CivmlrDnn7PlmajmmYLku6MgPCBzaGluc2Vra2lqaWRhaVwgOwor5b+D6ZyK5omL6KGTIDwgc2hpbnJlaXRlanV0c3VcIDsKK+aIkOmVt+eUo+alrSA8IHNlaWNob3VzYW5neW91XCA7Civlj5fpqJPlj4LogIPmm7ggPCBqdWtlbnNhbmtvdXNob1wgOwor5Zu96Zqb5Y+O5pSvIDwga29rdXNhaXNodXVzaGlcIDsKK+mdmeatoueUu+aUvumAgSA8IHNlaXNoaWdhaG91c291XCA7CivkuIrpmbjkvZzmiKYgPCBqb3VyaWt1c2FrdXNlblwgOwor5YuV5Yqb6LOH5rqQIDwgZG91cnlva3VzaGlnZW5cIDsKK+W/heimgeadoeS7tiA8IGhpdHN1eW91am91a2VuXCA7CivlsJHlubTmhJ/ljJbpmaIgPCBzaG91bmVua2Fua2FpblwgOwor5Lit5rWB5oSP6K2YIDwgY2h1dXJ5dXVpc2hpa2lcIDsKK+mVt+i3nemboui8uOmAgSA8IGNob3VreW9yaXl1c291XCA7Civlho3luLDku6PlkI3oqZ4gPCBzYWlraWRhaW1laXNoaVwgOwor5Ye65ryB5Yy65Z+fIDwgc2h1dHN1Z3lva3Vpa2lcIDsKK+iyoeW9ouiyr+iThCA8IHphaWtlaWNob2NoaWt1XCA7CivogbfkurrmsJfos6ogPCBzaG9rdW5pbmthdGFnaVwgOwor5o6n6Ki06KOB5Yik5omAIDwga291c29oYWliYW5zaG9cIDsKK+WNmOS9jeihjOWIlyA8IHRhbicnaWd5b3VyZXRzdVwgOwor5paH5YyW5Yqf5Yq06ICFIDwgYnVua2Frb3Vyb3VzaGFcIDsKK+WbvemAo+aGsueroCA8IGtva3VyZW5rZW5zaG91XCA7CivmsLTlhYjmoYjlhoUgPCBtaXp1c2FraWFuJyduYWlcIDsKK+ecn+epuuaOg+mZpOapnyA8IHNoaW5rdXVzb3VqaWtpXCA7Civlj47lrrnoqK3lgpkgPCBzaHV1eW91c2V0c3ViaVwgOwor5rex5rW35ryB5qWtIDwgc2hpbmthaWd5b2d5b3VcIDsKK+S6uuW9oua1hOeRoOeSgyA8IG5pbmd5b3Vqb3VydXJpXCA7Civnm7TlvoDpgoHpgLIgPCBjaG9rdW91bWFpc2hpblwgOwor5aSp5L2T5Yqb5a2mIDwgdGVudGFpcmlraWdha3VcIDsKK+aYlOipsSA8IG11a2FzaGliYW5hc2hpXCA7CivmlL/msrvoqZXoq5blrrYgPCBzZWlqaWh5b3Vyb25rYVwgOwor5Lyd5om/5Y+Z5LqL6KmpIDwgZGVuc2hvdWpvamlzaGlcIDsKK+acieimlueVjOmjm+ihjCA8IHl1dXNoaWthaWhpa291XCA7Civlubzlj4vpgZQgPCBvc2FuYXRvbW9kYWNoaVwgOwor55yf56m66Zu755CDIDwgc2hpbmt1dWRlbmt5dXVcIDsKK+mZjeS4ieS4luWmmeeOiyA8IGdvdXphbnplbXlvdW91XCA7CivnrYnpq5jnt5rlnLDlm7MgPCB0b3Vrb3VzZW5jaGl6dVwgOwor5LiK5bGk5bu656+JIDwgam91c291a2VuY2hpa3VcIDsKK+W9ueiBt+aJi+W9kyA8IHlha3VzaG9rdXRlYXRlXCA7Civpq5jlnKfpm7vmtYEgPCBrb3VhdHN1ZGVucnl1dVwgOwor5bC76Lu95aWzIDwgc2hpcmlnYXJ1b24nJ25hXCA7CivkuqXlubQgPCBpbm9zaGlzaGlkb3NoaVwgOwor55m96Ymi5be7IDwgc2hpcm9oYWNoaW1ha2lcIDsKK+S6pOmAmumBk+W+syA8IGtvdXRzdXVkb3V0b2t1XCA7CivmsLTmupbmuKzph48gPCBzdWlqdW5zb2t1cnlvdVwgOwor6KO96YCg5bm05pyI5pelIDwgc2Vpem91bmVuZ2FwcGlcIDsKK+W8geiovOazleeahCA8IGJlbnNob3Vob3V0ZWtpXCA7Civmnb7ojLjlvqHpo68gPCBtYXRzdXRha2Vnb2hhblwgOwor6Zai56iO6Zqc5aOBIDwga2FuemVpc2hvdWhla2lcIDsKK+e1seaLrOmDqOmVtyA8IHRvdWthdHN1YnVjaG91XCA7CivlnLDmlrnkuqTku5jnqI4gPCBjaGlob3Vrb3VmdXplaVwgOwor6JaE57Sr6ImyIDwgdXN1bXVyYXNha2lpcm9cIDsKK+aQjeWkseijnOWhqyA8IHNvbnNoaXRzdWhvdGVuXCA7Civml6XmnKzoqp7mlZnmnKwgPCBuaWhvbmdva3lvdWhvblwgOwor5Ye65aGB546HIDwgc2h1dHN1cnVpcml0c3VcIDsKK+S6i+S6i+eJqeeJqSA8IGppamlidXRzdWJ1dHN1XCA7CivpgKPntprlhpnnnJ8gPCByZW56b2t1c2hhc2hpblwgOwor5L+Y6Jmc5Y+O5a655omAIDwgZnVyeW9zaHV1eW91am9cIDsKK+epuuawl+Wcp+e4ruapnyA8IGt1dWtpYXNzaHVrdWtpXCA7Civlm5vnmb7kvZnlt54gPCBzaGloeWFrdXlvc2h1dVwgOwor5Zu96YCj6KiY5b+15pelIDwga29rdXJlbmtpbmVuYmlcIDsKK+W/g+eti+ail+WhniA8IHNoaW5raW5rb3Vzb2t1XCA7CivlrpfmlZnoo4HliKQgPCBzaHV1a3lvdXNhaWJhblwgOwor6Zu75L+h5p+xIDwgZGVuc2hpbmJhc2hpcmFcIDsKK+WGmeecn+efs+eJiCA8IHNoYXNoaW5zZWtpYmFuXCA7CivpmqDoirHmpI3niakgPCBpbmthc2hva3VidXRzdVwgOwor54Sh6KiY5ZCN5oqV56WoIDwgbXVraW1laXRvdWh5b3VcIDsKK+W+rueUn+eJqeWtpiA8IGJpc2VpYnV0c3VnYWt1XCA7CivmiKbnlaXnqbrou40gPCBzZW5yeWFrdWt1dWd1blwgOwor5oGt6LOA5paw5bm0IDwga3lvdWdhc2hpbicnbmVuXCA7Civlm73pmpvljZTlrpogPCBrb2t1c2Fpa3lvdXRlaVwgOwor6Ieq54S25Li7576p6ICFIDwgc2hpemVuc2h1Z2lzaGFcIDsKK+iJsuWNs+aYr+epuiA8IHNoaWtpc29rdXpla3V1XCA7CivpoK3lr5LotrPnhrEgPCB6dWthbnNva3VuZXRzdVwgOwor5Yy65qSc5a+f5bqBIDwga3VrZW5zYXRzdWNob3VcIDsKK+aguOmYsuihm+WKmyA8IGtha3Vib3VlaXJ5b2t1XCA7Civlrozlhajnh4PnhLwgPCBrYW56ZW4nJ25lbnNob3VcIDsKK+mHjemHj+aEn+immiA8IGp1dXJ5b3VrYW5rYWt1XCA7Civpm4zpm4TpkZHliKUgPCBzaGl5dXVrYW5iZXRzdVwgOwor566h5Yy65rCX6LGh5Y+wIDwga2Fua3VraXNob3VkYWlcIDsKK+WOn+eUn+WLleeJqSA8IGdlbnNlaWRvdWJ1dHN1XCA7Civnm67nmoTmhI/orZggPCBtb2t1dGVraWlzaGlraVwgOwor5rOV5a6a5rqW5YKZ6YeRIDwgaG91dGVpanVuYmlraW5cIDsKK+a1t+eUn+WLleeJqSA8IGthaXNlaWRvdWJ1dHN1XCA7CivmlLvmkoPnsr7npZ4gPCBrb3VnZWtpc2Vpc2hpblwgOwor5L2c5oiQ5oqA6KGTIDwgc2FrdXNlaWdpanV0c3VcIDsKK+mHkemKreS/oeiolyA8IGtpbnNlbnNoaW50YWt1XCA7CivlkLjlj47lkIjkvbUgPCBreXV1c2h1dWdhcHBlaVwgOwor5o+b6aqo5aWq6IOOIDwga2Fua290c3VkYXR0YWlcIDsKK+ehrOizqumZtuWZqCA8IGtvdXNoaXRzdXRvdWtpXCA7Civlr53lj7Dmlpnph5EgPCBzaGluZGFpcnlvdWtpblwgOwor6LO85YWl5rOo5paHIDwga291bnl1dWNodXVtb25cIDsKK+eEpuWcn+aIpuihkyA8IHNob3Vkb3Nlbmp1dHN1XCA7CivmnInogbfmlYXlrp8gPCB5dXVzb2t1a29qaXRzdVwgOwor6Kmx6KmxIDwgaGFuYXNoaWJhbmFzaGlcIDsKK+eEoeWEn+S/oeiolyA8IG11c2hvdXNoaW50YWt1XCA7CivmtojosrvnlJ/mtLsgPCBzaG91aGlzZWlrYXRzdVwgOwor5a6k5YaF6YGK5oivIDwgc2hpdHN1bmFpeXV1Z2lcIDsKK+Wul+aVmeWbo+S9kyA8IHNodXVreW91ZGFudGFpXCA7CivpgLLooYznirbms4EgPCBzaGlua291am91a3lvdVwgOwor6auY562J5YuV54mpIDwga291dG91ZG91YnV0c3VcIDsKK+S4gOiGs+mjr+WxiyA8IGljaGl6ZW5tZXNoaXlhXCA7CivmmYLku6PlsI/oqqwgPCBqaWRhaXNob3VzZXRzdVwgOwor5YaF6Ki86KmxIDwgbmFpc2hvdWJhbmFzaGlcIDsKK+a1t+a0i+aAp+awl+WAmSA8IGthaXlvdXNlaWtpa291XCA7Civmm7Lnt5rluqfmqJkgPCBreW9rdXNlbnphaHlvdVwgOwor5b2T6Kmy5Lq654mpIDwgdG91Z2FpamluYnV0c3VcIDsKK+WkluiyqOa6luWCmemrmCA8IGdhaWthanVuYmlkYWthXCA7CivopoHmsYLpgIHkv6EgPCB5b3VreXV1c291c2hpblwgOwor55m+5Lq65LiA6aaWIDwgaHlha3VuaW4nJ2lzc2h1XCA7Civpm4blm6PmpJzoqLogPCBzaHV1ZGFua2Vuc2hpblwgOwor5peF6KGM5Luj55CG5bqXIDwgcnlva291ZGFpcml0ZW5cIDsKK+WuieWvp+enqeW6jyA8IGFuJyduZWljaGl0c3Vqb1wgOwor5LiL5ZSHIDwgc2hpdGFrdWNoaWJpcnVcIDsKK+altealvemzpeiKsSA8IGdva3VyYWt1Y2hvdWthXCA7CivkuK3otorntJvkuokgPCBjaHV1ZXRzdWZ1bnNvdVwgOwor5LiA5ous6LO85YWlIDwgaWtrYXRzdWtvdW55dXVcIDsKK+awkeaXj+iHquaxuiA8IG1pbnpva3VqaWtldHN1XCA7CivlgLbmoqjkvL3nvoXntIvntIsgPCBrdXJpa2FyYW1vbm1vblwgOwor5q2j6Z2i5pS75pKDIDwgc2hvdW1lbmtvdWdla2lcIDsKK+aVmeiCsueUo+alrSA8IGt5b3Vpa3VzYW5neW91XCA7Civnqbroqr/oqK3lgpkgPCBrdXVjaG91c2V0c3ViaVwgOwor5Y2Y54us5YaF6ZajIDwgdGFuZG9rdW5haWtha3VcIDsKK+e3keeOieefsyA8IHJ5b2t1Z3lva3VzZWtpXCA7CivmlZnogrLlrp/nv5IgPCBreW91aWt1amlzc2h1dVwgOwor5bCx5qWt6KaP5YmHIDwgc2h1dWd5b3VraXNva3VcIDsKK+aVmemkiueVque1hCA8IGt5b3V5b3ViYW5ndW1pXCA7Civlh43ntZDos4fnlKMgPCB0b3VrZXRzdXNoaXNhblwgOwor6ZuG5Zuj6L6y5aC0IDwgc2h1dWRhbicnbm91am91XCA7CivmmJTmmJQgPCBtdWthc2hpbXVrYXNoaVwgOwor5ZGo6L666Ku45Zu9IDwgc2h1dWhlbnNob2tva3VcIDsKK+WbveexjeadoemghSA8IGtva3VzZWtpam91a291XCA7Civnj77nianntabkuI4gPCBnZW5idXRzdWt5dXV5b1wgOwor5LqI6YG46YCa6YGO6ICFIDwgeW9zZW50c3V1a2FzaGFcIDsKK+ixqumbquWcsOW4ryA8IGdvdXNldHN1Y2hpdGFpXCA7CivmtbfljYPlsbHljYMgPCB1bWlzZW4nJ3lhbWFzZW5cIDsKK+mdqeaWsOaUv+WFmiA8IGtha3VzaGluc2VpdG91XCA7CivlsJHmlbDmsJHml48gPCBzaG91c3V1bWluem9rdVwgOwor5Yq05YON5Y2U57SEIDwgcm91ZG91a3lvdXlha3VcIDsKK+mbu+aSg+S9nOaIpiA8IGRlbmdla2lzYWt1c2VuXCA7Civohp3ok4vpqqggPCBzaGl0c3VnYWlrb3RzdVwgOwor5aWz5oCn6Kej5pS+6KuWIDwgam9zZWlrYWlob3Vyb25cIDsKK+iEiumrhOelnue1jCA8IHNla2l6dWlzaGlua2VpXCA7Civnvo7ooZPlpKflraYgPCBiaWp1dHN1ZGFpZ2FrdVwgOwor6YG65Lyd5a2Q5rK755mCIDwgaWRlbnNoaWNoaXJ5b3VcIDsKK+mBuOaKnumgheebriA8IHNlbnRha3Vrb3Vtb2t1XCA7CivplpPmjqXpgbjmjJkgPCBrYW5zZXRzdXNlbmt5b1wgOwor6LKd5q676L+95pS+IDwga2FpZ2FyYXRzdWlob3VcIDsKK+e+pOeZuuWcsOmchyA8IGd1bnBhdHN1amlzaGluXCA7Civntbblr77kuLvnvqnogIUgPCB6ZXR0YWlzaHVnaXNoYVwgOwor57eK6KSM5LiA55WqIDwga2lua29uJydpY2hpYmFuXCA7CivlhbHlkIzngorkuovloLQgPCBreW91ZG91c3VpamliYVwgOwor54us6Lqr6LK05pePIDwgZG9rdXNoaW5raXpva3VcIDsKK+emj+elieS6i+WLmeaJgCA8IGZ1a3VzaGlqaW11c2hvXCA7Civnp5Hlrabnn6XorZggPCBrYWdha3VjaGlzaGlraVwgOwor55+z6YOo6YeR5ZCJIDwgaXNoaWJla2lua2ljaGlcIDsKK+iKsemzpemiqOaciCA8IGthY2hvdWZ1dWdldHN1XCA7Civmj5Dlh7rmnJ/pmZAgPCB0ZWlzaHV0c3VraWdlblwgOwor5LiJ6KeS57O755Ww5bi4IDwgc2Fua2FrdWtlaWlqb3VcIDsKK+WkqemVt+WcsOS5hSA8IHRlbmNob3VjaGlreXV1XCA7Civnmb7kuIfplbfogIUgPCBoeWFrdW1hbmNob3VqYVwgOwor5a++55eH55mC5rOVIDwgdGFpc2hvdXJ5b3Vob3VcIDsKK+awtOeUo+ippumok+aJgCA8IHN1aXNhbnNoaWtlbmpvXCA7CivkuK3mnqLnpZ7ntYwgPCBjaHV1c3V1c2hpbmtlaVwgOwor5ZWG5bel5qWt6ICFIDwgc2hvdWtvdWd5b3VzaGFcIDsKK+mWi+elqOmAn+WgsSA8IGthaWh5b3Vzb2t1aG91XCA7CivmgKfnmoTooZ3li5UgPCBzZWl0ZWtpc2hvdWRvdVwgOwor6LuN5LqL6KOB5Yik5omAIDwgZ3VuamlzYWliYW5zaG9cIDsKK+eJueauiuaSruW9sSA8IHRva3VzaHVzYXRzdWVpXCA7CivovLjlh7rmiYvlvaIgPCB5dXNodXRzdXRlZ2F0YVwgOwor5Y+y5paZ6aSo5a2mIDwgc2hpcnlvdWthbmdha3VcIDsKK+epuuS4realvOmWoyA8IGt1dWNodXVyb3VrYWt1XCA7CivpmqDpgIDolLXnianos4cgPCBpbnRhaXpvdWJ1c3NoaVwgOwor5bCR5bm05paH5a2mIDwgc2hvdW5lbmJ1bmdha3VcIDsKK+iqv+aVtOaUu+aSgyA8IGNob3VzZWlrb3VnZWtpXCA7Civnsr7npZ7lubTpvaIgPCBzZWlzaGluJyduZW5yZWlcIDsKK+WxheS4reiqv+WBnCA8IGt5b2NodXVjaG91dGVpXCA7CivnqI7liKXkvqHmoLwgPCB6ZWliZXRzdWtha2FrdVwgOwor6LuN5Lq655Sf5rS7IDwgZ3Vuamluc2Vpa2F0c3VcIDsKK+eah+WuruitpuWvnyA8IGtvdWd1dWtlaXNhdHN1XCA7CivnspLjgIXovpvoi6YgPCByeXV1cnl1dXNoaW5rdVwgOwor5p2x5Lqs5aSn5a2mIDwgdG91a3lvdWRhaWdha3VcIDsKK+WPguiAg+Wbs+abuOmkqCA8IHNhbmtvdXRvc2hva2FuXCA7CivoiIjlkbPmtKXmtKUgPCBreW91bWlzaGluc2hpblwgOwor54Sh57ea5ZGo5rOi5pWwIDwgbXVzZW5zaHV1aGFzdXVcIDsKK+WNg+WuouS4h+adpSA8IHNlbmt5YWt1YmFucmFpXCA7CivpgbjmipzoqabpqJMgPCBzZW5iYXRzdXNoaWtlblwgOwor6Iiq6Lev5qiZ6K2YIDwga291cm9oeW91c2hpa2lcIDsKK+e3iuaApeeZuumAsiA8IGtpbmt5dXVoYXNzaGluXCA7CivnqbrkuK3lhpnnnJ8gPCBrdXVjaHV1c2hhc2hpblwgOwor5Za25qWt5rS75YuVIDwgZWlneW91a2F0c3Vkb3VcIDsKK+aVkeaPtOa0u+WLlSA8IGt5dXVlbmthdHN1ZG91XCA7CivlpKnnhLbnoZ3lrZAgPCB0ZW4nJ25lbnNob3VzaGlcIDsKK+S/oeiol+izh+mHkSA8IHNoaW50YWt1c2hpa2luXCA7CivluILmsJHnlJ/mtLsgPCBzaGltaW5zZWlrYXRzdVwgOwor6YeN6L6y5Li7576p6ICFIDwganV1bm91c2h1Z2lzaGFcIDsKK+S5l+WQiOiHquWLlei7iiA8IG5vcmlhaWppZG91c2hhXCA7Civntbblr77mqKnlipsgPCB6ZXR0YWlrZW5yeW9rdVwgOwor5ZGo56ug54u854u9IDwgc2h1dXNob3Vyb3ViYWlcIDsKK+awkeaXj+WtpuiAhSA8IG1pbnpva3VnYWt1c2hhXCA7CivohqDnnYDnirbmhYsgPCBrb3VjaGFrdWpvdXRhaVwgOwor57Sw6IOe6YG65Lyd5a2mIDwgc2FpYm91aWRlbmdha3VcIDsKK+mdouaOpeippumokyA8IG1lbnNldHN1c2hpa2VuXCA7CivmlL/nrZbljZTlrpogPCBzZWlzYWt1a3lvdXRlaVwgOwor6LKp5aOy5oim55WlIDwgaGFuYmFpc2Vucnlha3VcIDsKK+WFrOioreW4guWgtCA8IGtvdXNldHN1aWNoaWJhXCA7CivkurrnianntYzmuIggPCBqaW5idXRzdWtlaXphaVwgOwor5b+D55qE54q25oWLIDwgc2hpbnRla2lqb3V0YWlcIDsKK+S4mOmZteWcsOW4ryA8IGt5dXVyeW91Y2hpdGFpXCA7CivotoXpn7Pms6LmtJfmtYQgPCBjaG91b25wYXNlbmpvdVwgOwor5YiR5LqL6KKr5ZGK5Lq6IDwga2VpamloaWtva3VuaW5cIDsKK+S7ruWHuueNhCA8IGthcmlzaHV0c3Vnb2t1XCA7CivnibnliKXogbcgPCB0b2t1YmV0c3VzaG9rdVwgOwor576k5Lyd5pCs5pmC6ZaTIDwgZ3VuZGVucGFuamlrYW5cIDsKK+eUn+a2r+aVmeiCsiA8IHNob3VnYWlreW91aWt1XCA7Civml6fntITlhajmm7ggPCBreXV1eWFrdXplbnNob1wgOwor5aSn5qC55b256ICFIDwgZGFpa29uJyd5YWt1c2hhXCA7CivkuIflubTmlrDpgKAgPCBtYW4nJ25lbnNoaW56b3VcIDsKK+WBpeW6t+S/nemZuuazlSA8IGtlbmtvdWhva2VuaG91XCA7CivluLjku7vnkIbkuovlm70gPCBqb3VuaW5yaWppa29rdVwgOwor5bqn6aqo56We57WMIDwgemFrb3RzdXNoaW5rZWlcIDsKK+mdnumHkeWxnuWFg+e0oCA8IGhpa2luem9rdWdlbnNvXCA7CivplbfogIHmlZnkvJogPCBjaG91cm91a3lvdWthaVwgOwor6Zm45LiK6Ieq6KGb6ZqKIDwgcmlrdWpvdWppZWl0YWlcIDsKK+iyr+iThOWCteWIuCA8IGNob2NoaWt1c2Fpa2VuXCA7Civmrablipvku4vlhaUgPCBidXJ5b2t1a2Fpbnl1dVwgOwor5L+d6Zm65Yun6KqY5ZOhIDwgaG9rZW5rYW4nJ3l1dWluXCA7Civnsr7lr4bnp5HlraYgPCBzZWltaXRzdWthZ2FrdVwgOwor56eB6YmE57eP6YCjIDwgc2hpdGV0c3Vzb3VyZW5cIDsKK+S8nemAgee1guS6hiA8IGRlbnNvdXNodXVyeW91XCA7CivnqpLntKDlm7rlrprms5UgPCBjaGlzc29rb3RlaWhvdVwgOwor6Jar6JK45raI5q+SIDwga3Vuam91c2hvdWRva3VcIDsKK+azleW+i+ebuOirhyA8IGhvdXJpdHN1c291ZGFuXCA7CivlnLDln5/plovnmbogPCBjaGlpa2lrYWloYXRzdVwgOwor5Zu95YaF55Sj5qWtIDwga29rdW5haXNhbmd5b3VcIDsKK+S4gOaJk+mAhui7oiA8IGljaGlkYWd5YWt1dGVuXCA7CivmsLTnlJ/nlJ/niakgPCBzdWlzZWlzZWlidXRzdVwgOwor5pyJ57ea6YCa5L+hIDwgeXV1c2VudHN1dXNoaW5cIDsKK+ebuOWvvuaAp+WOn+eQhiA8IHNvdXRhaXNlaWdlbnJpXCA7Civnvo7ooZPmhJvlpb3lrrYgPCBiaWp1dHN1YWlrb3VrYVwgOwor6LW35om/6Lui57WQIDwga2lzaG91dGVua2V0c3VcIDsKK+eJqeizquS4u+e+qSA8IGJ1c3NoaXRzdXNodWdpXCA7Civkv6HoqJfkvJrnpL4gPCBzaGludGFrdWdhaXNoYVwgOwor5Lit55+z5Zmo5pmC5LujIDwgY2h1dXNla2tpamlkYWlcIDsKK+S4u+efpeS4u+e+qeiAhSA8IHNodWNoaXNodWdpc2hhXCA7CivompXns7joqabpqJPmiYAgPCBzYW5zaGlzaGlrZW5qb1wgOwor5Lit6ZaT5ZWG5Lq6IDwgY2h1dWthbnNob3VuaW5cIDsKK+mdmembu+WuuemHjyA8IHNlaWRlbicneW91cnlvdVwgOwor5Lit5rWB56S+5LyaIDwgY2h1dXJ5dXVzaGFrYWlcIDsKK+engeeri+aOouWBtSA8IHNoaXJpdHN1dGFudGVpXCA7Civlkb3ovpvovpsgPCBpbm9jaGlnYXJhZ2FyYVwgOwor5Zu95rCR5oqV56WoIDwga29rdW1pbnRvdWh5b3VcIDsKK+aciee9quWIpOaxuiA8IHl1dXphaWhhbmtldHN1XCA7CivlvLfljJbpo5/lk4EgPCBreW91a2FzaG9rdWhpblwgOwor5Ly457iu6Ieq5ZyoIDwgc2hpbnNodWt1aml6YWlcIDsKK+mZuOi7jeWkp+WtpiA8IHJpa3VndW5kYWlnYWt1XCA7CivpgJrkv6HpgJ/luqYgPCB0c3V1c2hpbnNva3Vkb1wgOwor6buS6YeR5Ymb55+zIDwga3Vyb2tvbmdvdXNla2lcIDsKK+eri+S9k+W5vuS9leWtpiA8IHJpdHRhaWtpa2FnYWt1XCA7CivkuK3lm73kurrooZcgPCBjaHV1Z29rdWppbmdhaVwgOwor5a2m6Iq45aSn5a2mIDwgZ2FrdWdlaWRhaWdha3VcIDsKK+Wkp+ays+Wwj+iqrCA8IHRhaWdhc2hvdXNldHN1XCA7CivpiYTpgZPkvJrnpL4gPCB0ZXRzdWRvdWdhaXNoYVwgOwor6Z+z5qW95b2i5byPIDwgb25nYWt1a2Vpc2hpa2lcIDsKK+aAp+agvOWIhuaekCA8IHNlaWtha3VidW5zZWtpXCA7Civou6LlhaXlsYogPCB0ZW4nJ255dXV0b2Rva2VcIDsKK+S4jeWLleeUo+mRkeWumiA8IGZ1ZG91c2Fua2FudGVpXCA7Civlj5fku5jkv4IgPCB1a2V0c3VrZWdha2FyaVwgOwor5bCx6IG3546HIDwgc2h1dXNob2t1cml0c3VcIDsKK+ePvumHkeabuOeVmSA8IGdlbmtpbmtha2l0b21lXCA7CivkvJHmiKbmnaHntIQgPCBreXV1c2Vuam91eWFrdVwgOwor5LqM6Laz5YuV54mpIDwgbmlzb2t1ZG91YnV0c3VcIDsKK+W/g+eQhuWtpueahCA8IHNoaW5yaWdha3V0ZWtpXCA7CivkvoPjgIXoq6Toq6QgPCBrYW5rYW5nYWt1Z2FrdVwgOwor55u057ea6YGL5YuVIDwgY2hva3VzZW4nJ3VuZG91XCA7CivmgqrlvrPmlrDogZ4gPCBha3V0b2t1c2hpbmJ1blwgOwor5pyq5rG65ouY55WZIDwgbWlrZXRzdWtvdXJ5dXVcIDsKK+WumumHj+WIhuaekCA8IHRlaXJ5b3VidW5zZWtpXCA7CivntabmlpnooosgPCBreXV1cnlvdWJ1a3Vyb1wgOwor57SZ5bGR5ZCM54S2IDwga2FtaWt1enVkb3V6ZW5cIDsKK+a4qeWupOagveWfuSA8IG9uc2hpdHN1c2FpYmFpXCA7Civph53lsI/mo5LlpKcgPCBzaGluc2hvdWJvdWRhaVwgOwor5qSN54mp5a2mIDwgc2hva3VidXRzdWdha3VcIDsKK+WkquWIgOS6jOiFsCA8IHRhY2hpZnV0YWtvc2hpXCA7Civoqo3orZjkuI3otrMgPCBuaW5zaGlraWJ1c29rdVwgOwor5Zuj5L2T5Y2U57SEIDwgZGFudGFpa3lvdXlha3VcIDsKK+S/oemgvOWbnuW+qSA8IHNoaW5yYWlrYWlmdWt1XCA7Civkv67lrabml4XooYwgPCBzaHV1Z2FrdXJ5b2tvdVwgOwor6ZW36Led6Zui6aOb6KGMIDwgY2hvdWt5b3JpaGlrb3VcIDsKK+esrOS6jOasoeaAp+W+tCA8IGRhaW5pamlzZWljaG91XCA7Civpm7vmupDplovnmbogPCBkZW5nZW5rYWloYXRzdVwgOwor5qih5byP5qiZ5pysIDwgbW9zaGlraWh5b3Vob25cIDsKK+i/vei3oeiqv+afuyA8IHRzdWlzZWtpY2hvdXNhXCA7CivlibLlvJXmiYvlvaIgPCB3YXJpYmlraXRlZ2F0YVwgOwor5Y+l5qeL6YCg5paH5rOVIDwga3Vrb3V6b3VidW5wb3VcIDsKK+ebtOa1geWbnui3ryA8IGNob2t1cnl1dWthaXJvXCA7CivoiIjooYzmiJDnuL4gPCBrb3VneW91c2Vpc2VraVwgOwor5YyX5rSL5ryB5qWtIDwgaG9rdXlvdWd5b2d5b3VcIDsKK+WbveaWh+WtpuWPsiA8IGtva3VidW5nYWt1c2hpXCA7CivmsLjkuYXohLHmr5sgPCBlaWt5dXVkYXRzdW1vdVwgOwor5o6S5Ye65Z+65rqWIDwgaGFpc2h1dHN1a2lqdW5cIDsKK+e1hOiBt+aUuemdqSA8IHNvc2hva3VrYWlrYWt1XCA7CivpgY7lpLHoh7TmrbsgPCBrYXNoaXRzdWNoaXNoaVwgOwor5Lqk6YCa5L+h5Y+3IDwga291dHN1dXNoaW5nb3VcIDsKK+WLleeJqeWun+mokyA8IGRvdWJ1dHN1amlra2VuXCA7CivmsLTkuIrorablr58gPCBzdWlqb3VrZWlzYXRzdVwgOwor5Yq05L2c5pWZ6IKyIDwgcm91c2FrdWt5b3Vpa3VcIDsKK+aguOW7g+ajhOeJqSA8IGtha3VoYWlraWJ1dHN1XCA7Civpjq7prYLmm7LmrYwgPCBjaGlua29ua3lva3VrYVwgOwor6Z2e6YmE6YeR5bGeIDwgaGl0ZXRzdWtpbnpva3VcIDsKK+Wjq+WumOWAmeijnOeUnyA8IHNoaWthbmtvdWhvc2VpXCA7Civlt6Hlm57lm7Pmm7jppKggPCBqdW5rYWl0b3Nob2thblwgOwor5LiJ55m+5Luj6KiAIDwgc2FuYnlha3VkYWlnZW5cIDsKK+W+tOWFteW/jOmBv+iAhSA8IGNob3VoZWlraWhpc2hhXCA7Civlh7roqLTmnJ/pmZDms5UgPCBzaHVzc29raWdlbmhvdVwgOwor5Lit5Zu95Lyd5p2lIDwgY2h1dWdva3VkZW5yYWlcIDsKK+eti+eEoeWKm+eXhyA8IGtpbm11cnlva3VzaG91XCA7CivmtYHpgJros4fmnKwgPCByeXV1dHN1dXNoaWhvblwgOwor56m65Y2z5piv6ImyIDwga3V1c29rdXplc2hpa2lcIDsKK+aVmeiCsuaUuemdqSA8IGt5b3Vpa3VrYWlrYWt1XCA7CivliIfplovmiYvooZMgPCBzZWtrYWlzaHVqdXRzdVwgOwor5aSn5ZKM6a2CIDwgeWFtYXRvZGFtYXNoaWlcIDsKK+S4i+WPsOaJgCA8IHNoaW1vZGFpZG9rb3JvXCA7CivmlZHorbfmtLvli5UgPCBreXV1Z29rYXRzdWRvdVwgOwor6LuN55So6Ly46YCB5qmfIDwgZ3VuJyd5b3V5dXNvdWtpXCA7CivlrqPkvJ3mtLvli5UgPCBzZW5kZW5rYXRzdWRvdVwgOwor6LKh55Sj55uu6YyyIDwgemFpc2FubW9rdXJva3VcIDsKK+iogOiqnuWcsOeQhuWtpiA8IGdlbmdvY2hpcmlnYWt1XCA7CivmraPluLjntYLkuoYgPCBzZWlqb3VzaHV1cnlvdVwgOwor5YmN5pa55b6M5YaG5aKzIDwgemVucG91a291ZW5mdW5cIDsKK+iZq+anmOeqgei1t+eCjiA8IGNodXV5b3V0b2traWVuXCA7CivkuqHlkb3nlJ/mtLsgPCBib3VtZWlzZWlrYXRzdVwgOwor5YSq6LaK6KSH5ZCIIDwgeXV1ZXRzdWZ1a3Vnb3VcIDsKK+e0lOaXpeacrOW8jyA8IGp1bicnbmlob25zaGlraVwgOwor5pyJ5b2i5paH5YyW6LKhIDwgeXV1a2VpYnVua2F6YWlcIDsKK+aXp+efs+WZqOaZguS7oyA8IGt5dXVzZWtraWppZGFpXCA7CivmiYvlvaLlibLlvJUgPCB0ZWdhdGF3YXJpYmlraVwgOwor5YuV54mp5bSH5oudIDwgZG91YnV0c3VzdXVoYWlcIDsKK+iHqueUseawkeaoqeirliA8IGppeXV1bWlua2Vucm9uXCA7CivlhbHlkIzkvY/lroUgPCBreW91ZG91anV1dGFrdVwgOwor5pyJ6KKL5YuV54mpIDwgeXV1dGFpZG91YnV0c3VcIDsKK+S4ieWNgeS6jOWIhumfs+espiA8IHNhbmp1dW5pYnVvbnB1XCA7CivnoLTnlKPoo4HliKTmiYAgPCBoYXNhbnNhaWJhbnNob1wgOwor5Lq66Lqr5L+d6K235rOVIDwgamluc2hpbmhvZ29ob3VcIDsKK+iii+Wwj+i3r+aWhyA8IGZ1a3Vyb2tvdWppYnVuXCA7CivmlL7lsITmgKflhYPntKAgPCBob3VzaGFzZWlnZW5zb1wgOwor55m956CC6Z2S5p2+IDwgaGFrdXNoYXNlaXNob3VcIDsKK+iKseWrgeW+oeWvriA8IGhhbmF5b21lZ29yeW91XCA7CivmlrDpmbPku6PorJ0gPCBzaGluY2hpbnRhaXNoYVwgOwor5LiA5YWt6YqA6KGMIDwgaWNoaXJva3VnaW5rb3VcIDsKK+WwseiBt+aWoeaXiyA8IHNodXVzaG9rdWFzc2VuXCA7Civpnq3mr5vomavnl4cgPCBiZW5tb3VjaHV1c2hvdVwgOwor57W25L2T57W25ZG9IDwgemV0dGFpemV0c3VtZWlcIDsKK+eyvuelnuWIhuaekCA8IHNlaXNoaW5idW5zZWtpXCA7Civns7vliJfkvJrnpL4gPCBrZWlyZXRzdWdhaXNoYVwgOwor5YiG5a2Q6ZaT5YqbIDwgYnVuc2hpa2Fucnlva3VcIDsKK+S8gealreaIpueVpSA8IGtpZ3lvdXNlbnJ5YWt1XCA7Civlm73msJHmiYDlvpcgPCBrb2t1bWluc2hvdG9rdVwgOwor6Ly45Ye65Yi26ZmQIDwgeXVzaHV0c3VzZWlnZW5cIDsKK+eJueWumumKmOafhCA8IHRva3V0ZWltZWlnYXJhXCA7CivosqHli5nkvZPos6ogPCB6YWltdXRhaXNoaXRzdVwgOwor6K2m5a+f5a2m5qChIDwga2Vpc2F0c3VnYWtrb3VcIDsKK+S4jeazleS+teWFpSA8IGZ1aG91c2hpbicnbnl1dVwgOwor5bCx6IG35Y+jIDwgc2h1dXNob2t1Z3VjaGlcIDsKK+eUn+a0u+ioreioiCA8IHNlaWthdHN1c2Vra2VpXCA7CivmjZXomZzlj47lrrnmiYAgPCBob3J5b3NodXV5b3Vqb1wgOwor6Lu96JaE55+t5bCPIDwga2VpaGFrdXRhbnNob3VcIDsKK+eul+ihk+W5s+WdhyA8IHNhbmp1dHN1aGVpa2luXCA7CivljbPluK3mlpnnkIYgPCBzb2t1c2VraXJ5b3VyaVwgOwor54mp55CG55mC5rOVIDwgYnV0c3VyaXJ5b3Vob3VcIDsKK+eUn+ioiOiyu+aMh+aVsCA8IHNlaWtlaWhpc2hpc3V1XCA7CivpnZLphbjkuK3mr5IgPCBzZWlzYW5jaHV1ZG9rdVwgOwor5a6X5pWZ5rOV5Lq6IDwgc2h1dWt5b3Vob3VqaW5cIDsKK+WGmeecn+akjeWtlyA8IHNoYXNoaW5zaG9rdWppXCA7Civnt4rnuK7osqHmlL8gPCBraW5zaHVrdXphaXNlaVwgOwor5Y2Y5oCn55Sf5q6WIDwgdGFuc2Vpc2Vpc2hva3VcIDsKK+WbveS8muWbs+abuOmkqCA8IGtva2thaXRvc2hva2FuXCA7Civpq5jnrYnnlJ/niakgPCBrb3V0b3VzZWlidXRzdVwgOwor6auY562J5byB5YuZ5a6YIDwga291dG91YmVubXVrYW5cIDsKK+aZgumWk+mghuW6j+epjSA8IGppa2FuanVuam9zZWtpXCA7Civkv53oqLzniZvkubMgPCBob3Nob3VneXV1bnl1dVwgOwor562L6IKJ6LOqIDwga2luJyduaWt1c2hpdHN1XCA7Civlipvku5XkuosgPCBjaGlrYXJhc2hpZ290b1wgOwor5Y+X6IOO6Kq/56+AIDwganV0YWljaG91c2V0c3VcIDsKK+WcsOeQg+a4qeaaluWMliA8IGNoaWt5dXVvbmRhbmthXCA7CivpgI/mnpDnmYLms5UgPCB0b3VzZWtpcnlvdWhvdVwgOwor6Z2e5bi45Yuk6Kyb5birIDwgaGlqb3VraW5rb3VzaGlcIDsKK+WroeWHuuWtkCA8IGNoYWt1c2h1dHN1c2hpXCA7CivmhJ/opprnpZ7ntYwgPCBrYW5rYWt1c2hpbmtlaVwgOwor6Ieq5YuV6LuK5a2m5qChIDwgamlkb3VzaGFnYWtrb3VcIDsKK+eojumHkemBv+mbo+WcsCA8IHplaWtpbmhpbmFuY2hpXCA7CivkurrpgZPnmoTmj7TliqkgPCBqaW5kb3V0ZWtpZW5qb1wgOwor5bCC6ZaA55+l6K2YIDwgc2VubW9uY2hpc2hpa2lcIDsKK+i7jeaLoeertuS6iSA8IGd1bmtha3VreW91c291XCA7CivniYfoopbmnLogPCBrYXRhc29kZWR6dWt1ZVwgOwor55m75aC05Lq654mpIDwgdG91am91amluYnV0c3VcIDsKK+a2iOiyu+iAhemBi+WLlSA8IHNob3VoaXNoYXVuZG91XCA7CivpnZ7nj77lrp/nmoQgPCBoaWdlbmppdHN1dGVraVwgOwor6YCG5oCn55+z6bm4IDwgZ3lha3VzZWlzZWtrZW5cIDsKK+WKtOWDjeWfuua6luazlSA8IHJvdWRvdWtpanVuaG91XCA7Civlub3ploDni63nqoQgPCB5dXVtb25reW91c2FrdVwgOwor6YCj6YKm5b2T5bGAIDwgcmVucG91dG91a3lva3VcIDsKK+ebtOWwhOaXpeWFiSA8IGNob2t1c2hhbmlra291XCA7CivlhYjku7vlsIbmoKEgPCBzZW4nJ25pbnNob3Vrb3VcIDsKK+isueWOs+Wun+ebtCA8IGtpbmdlbmppdGNob2t1XCA7CivmvKLlrZfliLbpmZDoq5YgPCBrYW5qaXNlaWdlbnJvblwgOwor5bqX6aCt5Y+W5byVIDwgdGVudG91dG9yaWhpa2lcIDsKK+WNkualreW8jyA8IHNvdHN1Z3lvdXNoaWtpXCA7Civnmbrlo7LnpoHmraIgPCBoYXRzdWJhaWtpbnNoaVwgOwor5ZOB6LOq566h55CGIDwgaGluc2hpdHN1a2FucmlcIDsKK+e3qOWFpeippumokyA8IGhlbicnbnl1dXNoaWtlblwgOwor5Lyd6YGU6Zai5pWwIDwgZGVudGF0c3VrYW5zdXVcIDsKK+WwveW/oOWgseWbvSA8IGppbmNodXVob3Vrb2t1XCA7CivlirTkvb/ljZToqr8gPCByb3VzaGlreW91Y2hvdVwgOwor5ZGo5rOi5pWw5YGP56e7IDwgc2h1dWhhc3V1aGVuJydpXCA7Civnmb7oibLnnLzpj6EgPCBoeWFrdWlyb21lZ2FuZVwgOwor5Lit5oCn5a2Q5p2fIDwgY2h1dXNlaXNoaXNva3VcIDsKK+eEoeWItumZkOiyv+aYkyA8IG11c2VpZ2VuYm91ZWtpXCA7Civnt4rmgKXlr77nrZYgPCBraW5reXV1dGFpc2FrdVwgOwor5Y2w5Yi35oqA6KGTIDwgaW5zYXRzdWdpanV0c3VcIDsKK+asoeWFg+ato+WJh+WMliA8IGppZ2Vuc2Vpc29rdWthXCA7Civlv4PnmoTooajnpLogPCBzaGludGVraWh5b3VqaVwgOwor5YWJ6YCa5L+hIDwgaGlrYXJpdHN1dXNoaW5cIDsKK+WQjeaJgOaXp+i3oSA8IG1laXNob2t5dXVzZWtpXCA7CivmipXos4fkv6HoqJcgPCB0b3VzaGlzaGludGFrdVwgOwor5Lq65ZCN55So5ryi5a2XIDwgamlubWVpeW91a2FuamlcIDsKK+aWsOmfk+WbveWFmiA8IHNoaW5rYW5rb2t1dG91XCA7Civlm73pmpvmnaHntIQgPCBrb2t1c2Fpam91eWFrdVwgOwor5LiD5aCC5Ly96JeNIDwgc2hpY2hpZG91Z2FyYW5cIDsKK+imquaXj+mWouS/giA8IHNoaW56b2t1a2Fua2VpXCA7CivlvoHlpLflpKflsIbou40gPCBzZWlpdGFpc2hvdWd1blwgOwor5YKY5b2i56KN5a2QIDwga2FzYWdhdGFnYWlzaGlcIDsKK+eUo+alreS6iOWCmei7jSA8IHNhbmd5b3V5b2JpZ3VuXCA7CivmgqrmvKLlsI/oqqwgPCBha2thbnNob3VzZXRzdVwgOwor5Yip5a2Q5bmz6KGh56iOIDwgcmlzaGloZWlrb3V6ZWlcIDsKK+eEoeS7u+aJgOWkp+iHoyA8IG11bmluc2hvZGFpamluXCA7CivlhazmlbXkuIDlj7cgPCBrb3V0ZWtpaWNoaWdvdVwgOwor5rC06LOq5rGa5r+BIDwgc3Vpc2hpdHN1b2Rha3VcIDsKK+eyvuelnueZguazlSA8IHNlaXNoaW5yeW91aG91XCA7Civlj5bnt6Dms5UgPCB0b3Jpc2hpbWFyaWhvdVwgOwor6Iyr54S26Ieq5aSxIDwgYm91emVuamlzaGl0c3VcIDsKK+WcsOizquaZguS7oyA8IGNoaXNoaXRzdWppZGFpXCA7Civnq4vlhaXnpoHmraIgPCB0YWNoaWlyaWtpbnNoaVwgOwor5aSn5ZCM5Zuj57WQIDwgZGFpZG91ZGFua2V0c3VcIDsKK+S6jOmHjeebsuaknOazlSA8IG5panV1bW91a2VuaG91XCA7Civosq/ph5HpgJrluLMgPCBjaG9raW50c3V1Y2hvdVwgOwor5paO5oiS5rKQ5rW0IDwgc2Fpa2FpbW9rdXlva3VcIDsKK+aWsOWItuWkp+WtpiA8IHNoaW5zZWlkYWlnYWt1XCA7CivlhbHlkIzosqzku7sgPCBreW91ZG91c2VraW5pblwgOwor5paw6IGe55m66KGoIDwgc2hpbmJ1bmhhcHB5b3VcIDsKK+i7iuWGheaUueacrSA8IHNoYW5haWthaXNhdHN1XCA7Civoh6ros6Dosqzkv53pmbogPCBqaWJhaXNla2lob2tlblwgOwor5piG6Jmr5a2m6ICFIDwga29uY2h1dWdha3VzaGFcIDsKK+mAgOiBt+W5tOmHkSA8IHRhaXNob2t1bmVua2luXCA7CivliIblibLntbHmsrsgPCBidW5rYXRzdXRvdWNoaVwgOwor56K6546H6YGO56iLIDwga2FrdXJpdHN1a2F0ZWlcIDsKK+mHjeeCremFuOabuemBlCA8IGp1dXRhbnNhbnNvdWRhXCA7CivnoJTnqbbnmbrooaggPCBrZW5reXV1aGFwcHlvdVwgOwor5pen57SE6IGW5pu4IDwga3l1dXlha3VzZWlzaG9cIDsKK+aJi+ihk+WupCA8IHNodWp1dHN1c2hpdHN1XCA7CivokrLpib7lhbXoiI4gPCBrYW1hYm9rb2hlaXNoYVwgOwor57WM6LK756+A57SEIDwga2VpaGlzZXRzdXlha3VcIDsKK+eti+iQjue4rueXhyA8IGtpbicnaXNodWt1c2hvdVwgOwor5YSq55Sf5omL6KGTIDwgeXV1c2Vpc2h1anV0c3VcIDsKK+WFrOWFseaWmemHkSA8IGtvdWt5b3VyeW91a2luXCA7CivlvLfliLbkuK3mlq0gPCBreW91c2VpY2h1dWRhblwgOwor5LiH5pyJ5byV5YqbIDwgYmFuJyd5dXVpbnJ5b2t1XCA7Civnq4vlpKrlrZDlvI8gPCByaXR0YWlzaGlzaGlraVwgOwor5pel5YaF5ZGo5pyfIDwgbmljaGluYWlzaHV1a2lcIDsKK+aGsuazleino+mHiCA8IGtlbnBvdWthaXNoYWt1XCA7Civplbfot53pm6Lpm7voqbEgPCBjaG91a3lvcmlkZW53YVwgOwor576O55qE55Sf5rS7IDwgYml0ZWtpc2Vpa2F0c3VcIDsKK+Wbo+S9k+WJsuW8lSA8IGRhbnRhaXdhcmliaWtpXCA7Civlm73pmpvkuqTmtYEgPCBrb2t1c2Fpa291cnl1dVwgOwor6Kmm552A5a6kIDwgc2hpY2hha3VzaGl0c3VcIDsKK+WGoOeKtumdmeiEiCA8IGthbmpvdWpvdW15YWt1XCA7CivpgIbkuInop5LlvaIgPCBneWFrdXNhbmtha2tlaVwgOwor6KSH6ZuR5oCq5aWHIDwgZnVrdXphdHN1a2Fpa2lcIDsKK+mBuuS8neWtkOW3peWtpiA8IGlkZW5zaGlrb3VnYWt1XCA7Civpq5jlsaTlu7rnr4kgPCBrb3Vzb3VnZW5jaGlrdVwgOwor5LiN5Y+v6IO96YG45oqeIDwgZnVrYW5vdXNlbnRha3VcIDsKK+ecn+ePoOmkiuauliA8IHNoaW5qdXlvdXNob2t1XCA7CivnlLPlkYrnlKjntJkgPCBzaGlua29rdXlvdXNoaVwgOwor5bGA5Zyw5oim5LqJIDwga3lva3VjaGlzZW5zb3VcIDsKK+eIhueZuueJqSA8IGJha3VoYXRzdWJ1dHN1XCA7Civph43opoHkurrniakgPCBqdXV5b3VqaW5idXRzdVwgOwor5rS754mI5Y2w5Yi3IDwga2FwcGFuJydpbnNhdHN1XCA7CivpgKPml6XpgKPlpJwgPCByZW5qaXRzdXJlbicneWFcIDsKK+S4ieiAheWvvueriyA8IHNhbnNoYXRhaXJpdHN1XCA7CivmsYLlprvluoPlkYogPCBreXV1c2Fpa291a29rdVwgOwor54uC6KiA6Ieq5q66IDwga3lvdWdlbmppc2F0c3VcIDsKK+eMquatpuiAhSA8IGlub3NoaXNoaW11c2hhXCA7CivmgKfmn5PoibLkvZMgPCBzZWlzZW5zaG9rdXRhaVwgOwor5Ye454mI5Y2w5Yi3IDwgdG9wcGFuJydpbnNhdHN1XCA7CivliLrouqvljIXkuIEgPCBzYXNoaW1pYm91Y2hvdVwgOwor5pel57Gz6LK/5piTIDwgbmljaGliZWlib3Vla2lcIDsKK+WPpeani+mAoOimj+WJhyA8IGt1a291em91a2lzb2t1XCA7CivmiYvlvaLkuqTmj5vmiYAgPCB0ZWdhdGFrb3VrYW5qb1wgOwor6LuN5LqL5Y2U5YqbIDwgZ3VuamlreW91cnlva3VcIDsKK+Wkp+m7kuafsSA8IGRhaWtva3ViYXNoaXJhXCA7CivmpbXpmZDnirbmhYsgPCBreW9rdWdlbmpvdXRhaVwgOwor54mp55CG54++6LGhIDwgYnV0c3VyaWdlbnNob3VcIDsKK+WcsOaWueiHquayu+S9kyA8IGNoaWhvdWppY2hpdGFpXCA7CivkurrouqvmlLvmkoMgPCBqaW5zaGlua291Z2VraVwgOwor6KiY5oa25Zaq5aSxIDwga2lva3Vzb3VzaGl0c3VcIDsKK+S4jeimj+WJh+WLleipniA8IGZ1a2lzb2t1ZG91c2hpXCA7CivnpL7kvJrnp6nluo8gPCBzaGFrYWljaGl0c3Vqb1wgOwor5a6M5YWo5Li7576p6ICFIDwga2FuemVuc2h1Z2lzaGFcIDsKK+a4m+S+oeWEn+WNtCA8IGdlbmthc2hvdWt5YWt1XCA7CivpjpbluLflrZAgPCBrdXNhcmlrYXRhYmlyYVwgOwor56m65Lit5p+75a+fIDwga3V1Y2h1dXNhc2F0c3VcIDsKK+e0oOS6uuiKneWxhSA8IHNoaXJvdXRvc2hpYmFpXCA7CivkuIDlha3li53osqAgPCBpY2hpcm9rdXNob3VidVwgOwor5Lqk6Z+/5qW95ZujIDwga291a3lvdWdha3VkYW5cIDsKK+ihgOa2sumKgOihjCA8IGtldHN1ZWtpZ2lua291XCA7CivllYblk4HlnKjpq5ggPCBzaG91aGluemFpZGFrYVwgOwor54mp55CG5a2m6ICFIDwgYnV0c3VyaWdha3VzaGFcIDsKK+S4jei6vuiAhSA8IGJ1c2hpdHN1a2Vtb25vXCA7CivlubTnmb7lubTkuK0gPCBuZW5ieWFrdW5lbmp1dVwgOwor5p6d6JGJ5pyr56+AIDwgc2hpeW91bWFzc2V0c3VcIDsKK+i7jemaiueUn+a0uyA8IGd1bnRhaXNlaWthdHN1XCA7Civmr5TovIPnmoTlsI8gPCBoaWtha3V0ZWtpc2hvdVwgOwor5qeL5oiQ57Sg5qeL6YCgIDwga291c2Vpc29rb3V6b3VcIDsKK+a9nOWcqOiDveWKmyA8IHNlbnphaW5vdXJ5b2t1XCA7Civlt6XlrabljZrlo6sgPCBrb3VnYWt1aGFrdXNoaVwgOwor5pyJ5YSf5aWR57SEIDwgeXV1c2hvdWtlaXlha3VcIDsKK+aWsOiBnuW6g+WRiiA8IHNoaW5idW5rb3Vrb2t1XCA7CivkuIrntJrmm7nplbcgPCBqb3VreXV1c291Y2hvdVwgOwor5Lmx6Ki65Lmx55mCIDwgcmFuc2hpbnJhbnJ5b3VcIDsKK+i8ieiyqOWQg+awtOe3miA8IHNhaWtha2lzc3Vpc2VuXCA7Civpm4blkIjkvY/lroUgPCBzaHV1Z291anV1dGFrdVwgOwor5b6h6aOf5LqL5YemIDwgb3Nob2t1amlkb2tvcm9cIDsKK+mkiuauluecn+ePoCA8IHlvdXNob2t1c2hpbmp1XCA7CivlhoXpg6jlkYrnmbogPCBuYWlidWtva3VoYXRzdVwgOwor5ZCN55uu6LOD6YeRIDwgbWVpbW9rdWNoaW5naW5cIDsKK+S4ieiJsuiPqyA8IHNhbnNob2t1c3VtaXJlXCA7Civnm7jlr77mub/luqYgPCBzb3V0YWlzaGl0c3Vkb1wgOwor5a2m5qCh55Sf5rS7IDwgZ2Fra291c2Vpa2F0c3VcIDsKK+WFpeWbveafu+iovCA8IG55dXVrb2t1c2FzaG91XCA7Civoh6rlvovnpZ7ntYwgPCBqaXJpdHN1c2hpbmtlaVwgOwor5rC06YqA5rip5bqm6KiIIDwgc3VpZ2luJydvbmRva2VpXCA7Civlp4nmp5jkurrlvaIgPCBhbmVzYW1hbmluZ3lvdVwgOwor6KGd5pKD6Zai5pWwIDwgc2hvdWdla2lrYW5zdXVcIDsKK+W3p+iogOS7pOiJsiA8IGtvdWdlbnJlaXNob2t1XCA7CivlpInmuKnli5XniakgPCBoZW4nJ29uZG91YnV0c3VcIDsKK+aVsOeQhuirlueQhuWtpiA8IHN1dXJpcm9ucmlnYWt1XCA7Civljp/lp4vli5XniakgPCBnZW5zaGlkb3VidXRzdVwgOwor56m66ZaT6Iq46KGTIDwga3V1a2FuZ2VpanV0c3VcIDsKK+eah+WkquWtkOauv+S4iyA8IGtvdXRhaXNoaWRlbmthXCA7Civlh7rlipvnt5ogPCBzaHV0c3VyeW9rdXNlblwgOwor6ZaL5bqX5LyR5qWtIDwga2FpdGVua3l1dWd5b3VcIDsKK+Wor+alveaWveiorSA8IGdvcmFrdXNoaXNldHN1XCA7CivljYrmsLjkuYXnmoQgPCBoYW4nJ2Vpa3l1dXRla2lcIDsKK+engeeriyA8IHdhdGFrdXNoaXJpdHN1XCA7CivmiKbkuonmnKrkuqHkurogPCBzZW5zb3VtaWJvdWppblwgOwor6aOf57On5LqL5oOFIDwgc2hva3VyeW91amlqb3VcIDsKK+WPr+mAhuWPjeW/nCA8IGthZ3lha3VoYW4nJ25vdVwgOwor56C055Sj566h6LKh5Lq6IDwgaGFzYW5rYW56YWluaW5cIDsKK+eJueWIpeS8muWToSA8IHRva3ViZXRzdWthaWluXCA7CivmrbvmtLvllY/poYwgPCBzaGlrYXRzdW1vbmRhaVwgOwor57O757Wx56We5a2mIDwga2VpdG91c2hpbmdha3VcIDsKK+i7n+mqqOmtmumhniA8IG5hbmtvdHN1Z3lvcnVpXCA7CivlkITkurrlkITmp5ggPCBrYWt1amlua2FrdXlvdVwgOwor6YCa5L+h5LqL5qWtIDwgdHN1dXNoaW5qaWd5b3VcIDsKK+WNlOWumuS4lueVjOaZgiA8IGt5b3V0ZWlzZWthaWppXCA7Civosr/mmJPpmpzlo4EgPCBib3Vla2lzaG91aGVraVwgOwor5Y2Y5LiA6YCa6LKoIDwgdGFuJydpdHN1dHN1dWthXCA7CivljYPkuKHlvbnogIUgPCBzZW5yeW91eWFrdXNoYVwgOwor5Yiw552A5pmC5Yi7IDwgdG91Y2hha3VqaWtva3VcIDsKK+a1t+S4iuS/neWuieW6gSA8IGthaWpvdWhvYW5jaG91XCA7CivmpoLnrpfopoHmsYIgPCBnYWlzYW4nJ3lvdWt5dXVcIDsKK+eIhueZuuWKmyA8IGJha3VoYXRzdXJ5b2t1XCA7Civlm73msJHlubTph5EgPCBrb2t1bWluJyduZW5raW5cIDsKK+azpeawtOeovOalrSA8IGRvcm9taXp1a2FneW91XCA7CivnibnnlbDlgKTliIbop6MgPCB0b2t1aWNoaWJ1bmthaVwgOwor5Zyo5pel57Gz6LuNIDwgemFpbmljaGliZWlndW5cIDsKK+i2iuWig+WFpeWtpiA8IGVra3lvdW55dXVnYWt1XCA7CivmsJHllrbljJbkvIHmpa0gPCBtaW4nJ2Vpa2FraWd5b3VcIDsKK+aVsOeQhuWTsuWtpiA8IHN1dXJpdGV0c3VnYWt1XCA7CivllK/nianlj7LoprMgPCB5dWlidXRzdXNoaWthblwgOwor5ZWG5qWt5a2m5qChIDwgc2hvdWd5b3VnYWtrb3VcIDsKK+W3puWkp+aLrOW8pyA8IGhpZGFyaWRhaWtha2tvXCA7CivmsJHml4/nsr7npZ4gPCBtaW56b2t1c2Vpc2hpblwgOwor5a6f5Yqb6KGM54K6IDwgaml0c3VyeW9rdWtvdWlcIDsKK+Wkp+ilv+a0i+aoquaWrSA8IHRhaXNlaXlvdW91ZGFuXCA7Civmtbfntr/li5XniakgPCBrYWltZW5kb3VidXRzdVwgOwor57Gz6LuN5YW15YqbIDwgYmVpZ3VuaGVpcnlva3VcIDsKK+edgOS/oeWxgCA8IGNoYWt1c2hpbmt5b2t1XCA7Civkurrlt6Xpgb/lporms5UgPCBqaW5rb3VoaW5pbmhvdVwgOwor5bCx5a2m5bm06b2iIDwgc2h1dWdha3VuZW5yZWlcIDsKK+mJseeJqeizh+a6kCA8IGtvdWJ1dHN1c2hpZ2VuXCA7Civou5/lvI/ph47nkIMgPCBuYW5zaGlraXlha3l1dVwgOwor5L+h6KiX57Wx5rK7IDwgc2hpbnRha3V0b3VjaGlcIDsKK+e1jOa4iOa0u+WLlSA8IGtlaXphaWthdHN1ZG91XCA7CivlhbXlvI/kvZPmk40gPCBoZWlzaGlraXRhaXNvdVwgOwor6a2a576k5o6i55+l5qmfIDwgZ3lvZ3VudGFuY2hpa2lcIDsKK+eUn+aulue0sOiDniA8IHNlaXNob2t1c2FpYm91XCA7CivlnLDlvaLmuKzph48gPCBjaGlrZWlzb2t1cnlvdVwgOwor5ZWG5qWt6LOH5pysIDwgc2hvdWd5b3VzaGlob25cIDsKK+mBiumbouWfuuWPjeW/nCA8IHl1dXJpa2loYW4nJ25vdVwgOwor5bCP55Sw5Y6f6KmV5a6aIDwgb2Rhd2FyYWh5b3Vqb3VcIDsKK+aVsOWApOebruaomSA8IHN1dWNoaW1va3VoeW91XCA7CivpqJLpn7PpmLLmraLms5UgPCBzb3VvbmJvdXNoaWhvdVwgOwor5LiA5b6X5LiA5aSxIDwgaXR0b2t1aXNzaGl0c3VcIDsKK+mAmuS/oeiyqeWjsiA8IHRzdXVzaGluaGFuYmFpXCA7CivlvLfliLbln7fooYwgPCBreW91c2Vpc2hpa2tvdVwgOwor5bm76Kaa55eH54q2IDwgZ2Vua2FrdXNob3Vqb3VcIDsKK+aHkOWIgCA8IGZ1dG9rb3JvZ2F0YW5hXCA7CivnlpHllY/ku6PlkI3oqZ4gPCBnaW1vbmRhaW1laXNoaVwgOwor5YyX6Zm45Zyw5pa5IDwgaG9rdXJpa3VjaGlob3VcIDsKK+WJsuW8leeZuuihjCA8IHdhcmliaWtpaGFra291XCA7CivluoPloLHmtLvli5UgPCBrb3Vob3VrYXRzdWRvdVwgOwor5bGx6auY5bi95a2QIDwgeWFtYXRha2Fib3VzaGlcIDsKK+afk+iJsuW3peWgtCA8IHNlbnNob2t1a291am91XCA7CivlhazlvI/oqKrllY8gPCBrb3VzaGlraWhvdW1vblwgOwor5o6S5Ye654mpIDwgaGFpc2h1dHN1YnV0c3VcIDsKK+e3j+WQiOmWi+eZuiA8IHNvdWdvdWthaWhhdHN1XCA7CivpgKPnq4vmlL/mqKkgPCByZW5yaXRzdXNlaWtlblwgOwor5beu5Yil6KGo54++IDwgc2FiZXRzdWh5b3VnZW5cIDsKK+aoqeWKm+mXmOS6iSA8IGtlbnJ5b2t1dG91c291XCA7Civnm7jlr77mgKfnkIboq5YgPCBzb3V0YWlzZWlyaXJvblwgOwor6KO95ZOB5oim55WlIDwgc2VpaGluc2Vucnlha3VcIDsKK+WIhuawtOWxseiEiCA8IGJ1bnN1aXNhbm15YWt1XCA7CivphbjljJbpmLLmraLliaQgPCBzYW5rYWJvdXNoaXphaVwgOwor56ys5LqM5qyh55Sj5qWtIDwgZGFpbmlqaXNhbmd5b3VcIDsKK+mJseeJqeizqiA8IGtvdWJ1dHN1c2hpdHN1XCA7CivmnInmqZ/loanmurblqpIgPCB5dXVraWVuJyd5b3ViYWlcIDsKK+iqmOmbu+ato+aOpSA8IHl1dWRlbnNlaXNldHN1XCA7Civnn6XopprnpZ7ntYwgPCBjaGlrYWt1c2hpbmtlaVwgOwor6YCQ5p2h5a+p6K2wIDwgY2hpa3Vqb3VzaGluZ2lcIDsKK+WNg+WztuWIl+WztiA8IGNoaXNoaW1hcmV0dG91XCA7CivovLjlh7rotoXpgY4gPCB5dXNodXRzdWNob3VrYVwgOwor6Zu75a2Q6KiI566X5qmfIDwgZGVuc2hpa2Vpc2Fua2lcIDsKK+WwiueOi+iojuW5lSA8IHNvbicnbm91dG91YmFrdVwgOwor5oim6ZeY54qg54my6ICFIDwgc2VudG91Z2lzZWlzaGFcIDsKK+aDheWgsemAmuS/oSA8IGpvdWhvdXRzdXVzaGluXCA7CivmjK/lh7rlsYAgPCBmdXJpZGFzaGlreW9rdVwgOwor5rCR6ZaT6Iiq56m65qmfIDwgbWlua2Fua291a3V1a2lcIDsKK+i2hei2iuS6pOS7oyA8IGNob3VldHN1a291dGFpXCA7Civlj43miKbkuLvnvqnogIUgPCBoYW5zZW5zaHVnaXNoYVwgOwor55Sf5rS756m66ZaTIDwgc2Vpa2F0c3VrdXVrYW5cIDsKK+WJjeeri+iFuueCjiA8IHplbnJpdHN1c2VuJydlblwgOwor5Z+35YuZ5a6kIDwgc2hpdHN1bXVzaGl0c3VcIDsKK+ihjOaUv+aUuemdqSA8IGd5b3VzZWlrYWlrYWt1XCA7Civlvovku6Tlm73lrrYgPCByaXRzdXJ5b3Vrb2trYVwgOwor5b+D6ZyK54++6LGhIDwgc2hpbnJlaWdlbnNob3VcIDsKK+eUn+iqleeZvuW5tCA8IHNlaXRhbmh5YWt1bmVuXCA7Civoh6rli5XnnYDkv6EgPCBqaWRvdWNoYWt1c2hpblwgOwor55m654ax6YePIDwgaGF0c3VuZXRzdXJ5b3VcIDsKK+esrOS4ieWLouWKmyA8IGRhaXNhbnNlaXJ5b2t1XCA7CivlpKflhavou4ogPCBkYWloYWNoaWd1cnVtYVwgOwor5pu455WZ6YO15L6/IDwga2FraXRvbWV5dXViaW5cIDsKK+ims+WFieahiOWGheaJgCA8IGthbmtvdWFuJyduYWlqb1wgOwor55+l6K2Y5L2T57O7IDwgY2hpc2hpa2l0YWlrZWlcIDsKK+mbhuWQiOiomOi/sCA8IHNodXVnb3VraWp1dHN1XCA7CivkuInnmb7oq7jkvq8gPCBzYW5ieWFrdXNob2tvdVwgOwor6auY6b2i5YyW56S+5LyaIDwga291cmVpa2FzaGFrYWlcIDsKK+iomOWPt+irlueQhuWtpiA8IGtpZ291cm9ucmlnYWt1XCA7CivlpKfooYbmloflraYgPCB0YWlzaHV1YnVuZ2FrdVwgOwor5Lit562J5pWZ6IKyIDwgY2h1dXRvdWt5b3Vpa3VcIDsKK+aVmeiCsuihjOaUvyA8IGt5b3Vpa3VneW91c2VpXCA7Civnm7TmjqXnmoQgPCBjaG9rdXNldHN1dGVraVwgOwor5q2m6KOF5Lit56uLIDwgYnVzb3VjaHV1cml0c3VcIDsKK+W5s+WSjOWNlOWKmyA8IGhlaXdha3lvdXJ5b2t1XCA7CivmjIflkI3miYvphY3kurogPCBzaGltZWl0ZWhhaWppblwgOwor6Zu76YmE5Lya56S+IDwgZGVudGV0c3VnYWlzaGFcIDsKK+iHqui7oui7iuaXheihjCA8IGppdGVuc2hhcnlva291XCA7Civlh7rluK3ml6XmlbAgPCBzaHVzc2VraW5pc3N1dVwgOwor55yM56uL55eF6ZmiIDwga2Vucml0c3VieW91aW5cIDsKK+W5s+Wdh+WkqumZveaZgiA8IGhlaWtpbnRhaXlvdWppXCA7CivlgY/ml4HlhqDohJogPCBoZW5ib3VrYW5reWFrdVwgOwor5aW95rCX5oCn57Sw6I+MIDwga291a2lzZWlzYWlraW5cIDsKK+iyqeWjsuS/g+mAsiA8IGhhbmJhaXNva3VzaGluXCA7Civkv6HoqJfmipXos4cgPCBzaGludGFrdXRvdXNoaVwgOwor6Zu75rOi5pyb6YGg6Y+hIDwgZGVucGFib3Vlbmt5b3VcIDsKK+S4reWwj+S8gealrSA8IGNodXVzaG91a2lneW91XCA7CivkuInooYzluoPlkYogPCBzYW5neW91a291a29rdVwgOwor6KGA5ray5b6q55KwIDwga2V0c3Vla2lqdW5rYW5cIDsKK+mAo+e1kOaxuueulyA8IHJlbmtldHN1a2Vzc2FuXCA7CivOuOeQhuirliA8IHNoaVwgzIR0YVwgzIRyaXJvblwgOwor5pS55pyt6YuPIDwga2Fpc2F0c3VoYXNhbWlcIDsKK+mqqOi7n+WMlueXhyA8IGtvdHN1bmFua2FzaG91XCA7CivlirTlg43pgYvli5XogIUgPCByb3Vkb3V1bmRvdXNoYVwgOwor5pS/5rK75ZOy5a2mIDwgc2Vpaml0ZXRzdWdha3VcIDsKK+WVhualreaUvumAgSA8IHNob3VneW91aG91c291XCA7Civlm73pmLLnt4/nnIEgPCBrb2t1Ym91c291c2hvdVwgOwor55Sf5rS75oyH5bCOIDwgc2Vpa2F0c3VzaGlkb3VcIDsKK+eCjueGseWcsOeNhCA8IGVuJyduZXRzdWppZ29rdVwgOwor5YWr6Z2i546y55OPIDwgaGFjaGltZW5yZWlyb3VcIDsKK+mdouS8muisnee1tiA8IG1lbmthaXNoYXpldHN1XCA7CivpgZPot6/mqJnorZggPCBkb3Vyb2h5b3VzaGlraVwgOwor5Zu95Za26YCa5L+hIDwga29rdWVpdHN1dXNoaW5cIDsKK+mch+eBveiomOW/teaXpSA8IHNoaW5zYWlraW5lbmJpXCA7CivpganmnZDpganmiYAgPCB0ZWtpemFpdGVraXNob1wgOwor5YqH55eH6IKd54KOIDwgZ2VraXNob3VrYW4nJ2VuXCA7Civnianmg4XpqJLnhLYgPCBidXRzdWpvdXNvdXplblwgOwor5b+d5raZIDwga2F0YWppa2VuYW1pZGFcIDsKK+WFrOawkeeUn+a0uyA8IGtvdW1pbnNlaWthdHN1XCA7CivlhaXlraboqabpqJMgPCBueXV1Z2FrdXNoaWtlblwgOwor5oKq5b6z5pS/5rK75a62IDwgYWt1dG9rdXNlaWppa2FcIDsKK+aDheWgseS4u+imgee0oCA8IGpvdWhvdXNodXlvdXNvXCA7CivlkIjllLHpmorplbcgPCBnYXNzaG91dGFpY2hvdVwgOwor5Lm+54el54mb5LmzIDwga2Fuc291Z3l1dW55dXVcIDsKK+ebtOezu+WwiuWxniA8IGNob2trZWlzb256b2t1XCA7CivlhaXlrabpoZjmm7ggPCBueXV1Z2FrdWdhbnNob1wgOwor5Ye655m65pmC6ZaTIDwgc2h1cHBhdHN1amlrYW5cIDsKK+S4u+imgeS6uueJqSA8IHNodXlvdWppbmJ1dHN1XCA7CivlhazmrablkIjkvZPoq5YgPCBrb3VidWdhdHRhaXJvblwgOwor5LiN5p2f6ICFIDwgZnV0c3V0c3VrYW1vbm9cIDsKK+eHleWNg+mzpSA8IHRzdWJhbWVjaGlkb3JpXCA7CivmloflrabkvZzlk4EgPCBidW5nYWt1c2FrdWhpblwgOwor6Zu75YWJ5o6y56S65p2/IDwgZGVua291a2VpamliYW5cIDsKK+i7veS+v+mJhOmBkyA8IGtlaWJlbnRldHN1ZG91XCA7CivlibLlvJXluILloLQgPCB3YXJpYmlraXNoaWpvdVwgOwor5aSx6Liq5a6j5ZGKIDwgc2hpc3NvdXNlbmtva3VcIDsKK+WMluWtpue1kOWQiCA8IGthZ2FrdWtldHN1Z291XCA7Civkv53pmbrmlpnnjocgPCBob2tlbnJ5b3VyaXRzdVwgOwor5L6h6Zu75a2Q54q25oWLIDwga2FkZW5zaGlqb3V0YWlcIDsKK+S/oei2iuacrOe3miA8IHNoaW5ldHN1aG9uc2VuXCA7CivnpZ7ntYzkuK3mnqIgPCBzaGlua2VpY2h1dXN1dVwgOwor55m65YWJ5YuV54mpIDwgaGFra291ZG91YnV0c3VcIDsKK+awtOeUo+WKoOW3peWTgSA8IHN1aXNhbmtha291aGluXCA7CivlubPpnaLlub7kvZXlraYgPCBoZWltZW5raWthZ2FrdVwgOwor6KSH5byP54Gr5bGxIDwgZnVrdXNoaWtpa2F6YW5cIDsKK+WgheW/jeS4jeaKnCA8IGtlbicnbmluZnViYXRzdVwgOwor6ICQ5LmP55Sf5rS7IDwgdGFpYm91c2Vpa2F0c3VcIDsKK+ekvuS8mumAmuW/tSA8IHNoYWthaXRzdXVuZW5cIDsKK+aOpeWuouaFi+W6piA8IHNla2t5YWt1dGFpZG9cIDsKK+i7veeIhuaSg+apnyA8IGtlaWJha3VnZWtpa2lcIDsKK+WNl+adsSA8IG1pbmFtaWhpZ2FzaGlcIDsKK+e9suWQjeaNuuWNsCA8IHNob21laW5hdHN1aW5cIDsKK+S8keaGqeWupCA8IGt5dXVrZWlzaGl0c3VcIDsKK+iDuOmDqOeWvuaCoyA8IGt5b3VidXNoaWtrYW5cIDsKK+ixoeeJmeWPluW8lSA8IHpvdWdldG9yaWhpa2lcIDsKK+aXpeabnOWkp+W3pSA8IG5pY2hpeW91ZGFpa3VcIDsKK+ebrueOieWVhuWTgSA8IG1lZGFtYXNob3VoaW5cIDsKK+ijveiWrOS8muekviA8IHNlaXlha3VnYWlzaGFcIDsKK+aKleWFieeFp+aYjiA8IHRvdWtvdXNob3VtZWlcIDsKK+a4heW7iea9lOeZvSA8IHNlaXJlbmtlcHBha3VcIDsKK+iHqui7oui7iue9ruWgtCA8IGppdGVuc2hhb2tpYmFcIDsKK+aVteWJjemAg+S6oSA8IHRla2l6ZW50b3Vib3VcIDsKK+aXpeWIiuaWsOiBniA8IG5pa2thbnNoaW5idW5cIDsKK+aKseiFuee1tuWAkiA8IGhvdWZ1a3V6ZXR0b3VcIDsKK+aXpeayoeWJjSA8IG5pY2hpYm90c3V6ZW5cIDsKK+aVmeiCsuWnlOWToeS8miA8IGt5b3Vpa3VpaW5rYWlcIDsKK+aCquiZkOeEoemBkyA8IGFrdWd5YWt1bXVkb3VcIDsKK+awtOS4iumjm+ihjOapnyA8IHN1aWpvdWhpa291a2lcIDsKK+WOreS4luaCsuims+iAhSA8IGVuc2VpaGlrYW5zaGFcIDsKK+WbveWutuaoqeWKmyA8IGtva2tha2Vucnlva3VcIDsKK+WNl+a0i+iruOWztiA8IG5hbicneW91c2hvdG91XCA7CivlvozmnJ/ljbDosaHmtL4gPCBrb3VraWluc2hvdWhhXCA7Civlm5rkurrlirTlg40gPCBzaHV1amlucm91ZG91XCA7Civni5DmoLzlrZAgPCBraXRzdW5lZ291c2hpXCA7CivliqPnrYnoprPlv7UgPCByZXR0b3VrYW4nJ25lblwgOwor6Zai5L+C5a6Y5bqBIDwga2Fua2Vpa2FuY2hvdVwgOwor6L6y5rCR5paH5a2mIDwgbm91bWluYnVuZ2FrdVwgOwor6Ieq54S254++6LGhIDwgc2hpemVuZ2Vuc2hvdVwgOwor6IWO6IeT57WQ55+zIDwgamluem91a2Vzc2VraVwgOwor5Y+k5YW1IDwgZnVydXRzdXdhbW9ub1wgOwor5pa95pS/5pa56YedIDwgc2hpc2VpaG91c2hpblwgOwor6Zay6Kan5a6kIDwgZXRzdXJhbnNoaXRzdVwgOwor5aSp56u65rWq5Lq6IDwgdGVuamlrdXJvdW5pblwgOwor5bu656+J54mpIDwga2VuY2hpa3VidXRzdVwgOwor6ZyK6a2C5LiN5ruFIDwgcmVpa29uZnVtZXRzdVwgOwor5YWs5YWx57WE5ZCIIDwga291a3lvdWt1bWlhaVwgOwor5pyJ57ea6Zu75L+hIDwgeXV1c2VuZGVuc2hpblwgOwor6KGA6KGM6Zqc5a6zIDwga2Vra291c2hvdWdhaVwgOwor5Lq655qE6LOH5rqQIDwgamludGVraXNoaWdlblwgOwor5Zyw5pa56KGM5pS/IDwgY2hpaG91Z3lvdXNlaVwgOwor6ZyH5aSp5YuV5ZywIDwgc2hpbnRlbmRvdWNoaVwgOwor56ys5LiJ5bid5Zu9IDwgZGFpc2FudGVpa29rdVwgOwor5aSn6KaP5qih5oim5LqJIDwgZGFpa2lib3NlbnNvdVwgOwor5a6f6LOq55qEIDwgamlzc2hpdHN1dGVraVwgOwor5aSp5paH5a2m6ICFIDwgdGVubW9uZ2FrdXNoYVwgOwor5rex5aSc5pS+6YCBIDwgc2hpbicneWFob3Vzb3VcIDsKK+mfs+WjsOW9ouW8jyA8IG9uc2Vpa2Vpc2hpa2lcIDsKK+S6pOmAmuWVj+mhjCA8IGtvdXRzdXVtb25kYWlcIDsKK+WFrOWFseaKleizhyA8IGtvdWt5b3V0b3VzaGlcIDsKK+WKg+aZguS7o+eahCA8IGtha3VqaWRhaXRla2lcIDsKK+WQjOaXj+S8muekviA8IGRvdXpva3VnYWlzaGFcIDsKK+W/g+eQhuaPj+WGmSA8IHNoaW5yaWJ5b3VzaGFcIDsKK+aKgOihk+awtOa6liA8IGdpanV0c3VzdWlqdW5cIDsKK+eEoeaLheS/neekvuWCtSA8IG11dGFucG9zaGFzYWlcIDsKK+eQhuWtpuWNmuWjqyA8IHJpZ2FrdWhha3VzaGlcIDsKK+WxgOaJgOm6u+mFlCA8IGt5b2t1c2hvbWFzdWlcIDsKK+eUo+WIpeS8muitsCA8IHNhbmJldHN1a2FpZ2lcIDsKK+e/jOOAheaXpSA8IHlva3V5b2t1aml0c3VcIDsKK+WwseWtpuWFkOerpSA8IHNodXVnYWt1amlkb3VcIDsKK+epuuS4ree1puayuSA8IGt1dWNodXVreXV1eXVcIDsKK+Wbvemam+imj+agvCA8IGtva3VzYWlraWtha3VcIDsKK+WtpuagoeaWsOiBniA8IGdha2tvdXNoaW5idW5cIDsKK+ippuiBtOWupCA8IHNoaWNob3VzaGl0c3VcIDsKK+aDheWgseeUo+alrSA8IGpvdWhvdXNhbmd5b3VcIDsKK+eZu+mMsueVquWPtyA8IHRvdXJva3ViYW5nb3VcIDsKK+Wcn+acqOW3peWtpiA8IGRvYm9rdWtvdWdha3VcIDsKK+eUn+S9k+WPjeW/nCA8IHNlaXRhaWhhbicnbm91XCA7Civni7jlm4PlrZAgPCB0YW51a2liYXlhc2hpXCA7CivosaHlvrTkuLvnvqkgPCBzaG91Y2hvdXNodWdpXCA7Civpn7Pmpb3mlZnogrIgPCBvbmdha3VreW91aWt1XCA7CivoprPmuKzlnLDngrkgPCBrYW5zb2t1Y2hpdGVuXCA7CivpgaDlv4PliIbpm6LmqZ8gPCBlbnNoaW5idW5yaWtpXCA7CivmpI3mr5vooZMgPCBzaG9rdW1vdWp1dHN1XCA7CivmioDooZPlkIzlo6sgPCBnaWp1dHN1ZG91c2hpXCA7Civlv5zmgKXmlLvmkoMgPCBvdWt5dXVrb3VnZWtpXCA7CivlkIzku4HmlZnkvJogPCBkb3VqaW5reW91a2FpXCA7Civlrp/lg43mmYLplpMgPCBqaXRzdWRvdWppa2FuXCA7CivpnZLnqbrpp5Dou4ogPCBhb3pvcmFjaHV1c2hhXCA7Civpm7vlipvovLjpgIEgPCBkZW5yeW9rdXl1c291XCA7Civou43pmormlZnogrIgPCBndW50YWlreW91aWt1XCA7CivpgaDmtIvmvIHmpa0gPCBlbicneW91Z3lvZ3lvdVwgOwor5pen5q2j5pyIIDwga3l1dXNob3VnYXRzdVwgOwor5L+d6Zqc5Y2g6aCYIDwgaG9zaG91c2VucnlvdVwgOwor5Lqk5o+b5rOV5YmHIDwga291a2FuaG91c29rdVwgOwor54m95byV55mC5rOVIDwga2VuJydpbnJ5b3Vob3VcIDsKK+mnheS8neertui1sCA8IGVraWRlbmt5b3Vzb3VcIDsKK+WIh+atr+aJvOiFlSA8IHNlc3NoaXlha3V3YW5cIDsKK+S4uOm8u+icgiA8IG1hcnVoYW5hYmFjaGlcIDsKK+Wbo+S9k+S6pOa4iSA8IGRhbnRhaWtvdXNob3VcIDsKK+iEmuiJsuiAhSA8IGt5YWt1c2hva3VzaGFcIDsKK+S6reS4u+mWoueZvSA8IHRlaXNodWthbnBha3VcIDsKK+S4gOauteWLleipniA8IGljaGlkYW5kb3VzaGlcIDsKK+S4gOiIrOW5leWDmiA8IGlwcGFuYmFrdXJ5b3VcIDsKK+WvneWPsOWIl+i7iiA8IHNoaW5kYWlyZXNzaGFcIDsKK+aKleaTsuertuaKgCA8IHRvdXRla2lreW91Z2lcIDsKK+adsea1t+WyuCA8IGhpZ2FzaGlrYWlnYW5cIDsKK+awl+ixoemAmuWgsSA8IGtpc2hvdXRzdXVob3VcIDsKK+mWi+aekOWPsOWcsCA8IGthaXNla2lkYWljaGlcIDsKK+WGhei4nSA8IHVjaGlrdXJ1YnVzaGlcIDsKK+Wun+eUqOS4u+e+qSA8IGppdHN1eW91c2h1Z2lcIDsKK+ebtOeri+iMjiA8IGNob2t1cml0c3VrZWlcIDsKK+eZvembquWnqyA8IHNoaXJheXVraWhpbWVcIDsKK+W3peWgtOWun+e/kiA8IGtvdWpvdWppc3NodXVcIDsKK+S4ree2meiyv+aYkyA8IGNodXVrZWlib3Vla2lcIDsKK+aAp+iDveeJueaApyA8IHNlaW5vdXRva3VzZWlcIDsKK+mbu+awl+WGt+iUteW6qyA8IGRlbmtpcmVpem91a29cIDsKK+acgOW+jOmAmueJkiA8IHNhaWdvdHN1dWNob3VcIDsKK+acgOS9jua4qeW6puioiCA8IHNhaXRlaW9uZG9rZWlcIDsKK+Wbvemam+e1kOWpmiA8IGtva3VzYWlrZWtrb25cIDsKK+mAoOacrOaKgOihkyA8IHpvdWhvbmdpanV0c3VcIDsKK+WmqOWus+W3peS9nCA8IGJvdWdhaWtvdXNha3VcIDsKK+aWreeGseeahCA8IGRhbicnbmV0c3V0ZWtpXCA7CivmsJHml4/mhI/orZggPCBtaW56b2t1aXNoaWtpXCA7Civms6XnuITlvI8gPCBkb3JvbmF3YXNoaWtpXCA7CivotIXmsqLkuInmmKcgPCB6ZWl0YWt1emFubWFpXCA7CivlhpnnnJ/oo73niYggPCBzaGFzaGluc2VpaGFuXCA7CivoprPplrLlvI8gPCBrYW4nJ2V0c3VzaGlraVwgOwor5a2m5qCh5pWZ6IKyIDwgZ2Fra291a3lvdWlrdVwgOwor6Zyn5Lit5L+h5Y+3IDwgbXVjaHV1c2hpbmdvdVwgOwor57K+56We54q25oWLIDwgc2Vpc2hpbmpvdXRhaVwgOwor5ZWG56eR5aSn5a2mIDwgc2hvdWthZGFpZ2FrdVwgOwor5ZC45rm/5oCnIDwga3l1dXNoaXRzdXNlaVwgOwor5raI5qW155qEIDwgc2hvdWt5b2t1dGVraVwgOwor6aGn5ZWP5byB6K235aOrIDwga29tb25iZW5nb3NoaVwgOwor5YaZ55yf57WQ5amaIDwgc2hhc2hpbmtla2tvblwgOwor5YWx5ZCM5oim57eaIDwga3lvdWRvdXNlbnNlblwgOwor54Gr5bGx5rS75YuVIDwga2F6YW5rYXRzdWRvdVwgOwor6bqm56iI57Sw5belIDwgbXVnaXdhcmF6YWlrdVwgOwor5oiR5Yip5oiR5Yip5Lqh6ICFIDwgZ2FyaWdhcmltb3VqYVwgOwor5Yuk5Yq05omA5b6XIDwga2lucm91c2hvdG9rdVwgOwor6aaW55u45a6Y6YK4IDwgc2h1c2hvdWthbnRlaVwgOwor6Kqt5pu45LiJ5pinIDwgZG9rdXNob3phbm1haVwgOwor5Lit562J5pWZ5ZOhIDwgY2h1dXRvdWt5b3VpblwgOwor5LiA5qyh6Zu75rWBIDwgaWNoaWppZGVucnl1dVwgOwor5Y+w5Lit6Zai5L+CIDwgdGFpY2h1dWthbmtlaVwgOwor56eY5a+G57WQ56S+IDwgaGltaXRzdWtlc3NoYVwgOwor5p2x5pa55ouh5aSnIDwgdG91aG91a2FrdWRhaVwgOwor5ryC5rWB54mpIDwgaHlvdXJ5dXVidXRzdVwgOwor6L+R6Zqj6Ku45Zu9IDwga2lucmluc2hva29rdVwgOwor5Yq05YON6ZqO57SaIDwgcm91ZG91a2Fpa3l1dVwgOwor6LKe5pON6Kaz5b+1IDwgdGVpc291a2FuJyduZW5cIDsKK+awkemWk+S8neaJvyA8IG1pbmthbmRlbnNob3VcIDsKK+iGgOiDsee1kOefsyA8IGJvdWtvdWtlc3Nla2lcIDsKK+i7ouWxhemAmuefpSA8IHRlbmt5b3RzdXVjaGlcIDsKK+e0lOato+aVsOWtpiA8IGp1bnNlaXN1dWdha3VcIDsKK+eUt+eIteWkq+S6uiA8IGRhbnNoYWt1ZnVqaW5cIDsKK+S4i+S6jOahgSA8IHNoaW1vZnV0YWtldGFcIDsKK+S6jOehq+WMlueCree0oCA8IG5pcnl1dWthdGFuc29cIDsKK+WhqeiUtemjn+WTgSA8IGVuem91c2hva3VoaW5cIDsKK+S4gOiHtOWbo+e1kCA8IGl0Y2hpZGFua2V0c3VcIDsKK+itpuWvn+WbveWutiA8IGtlaXNhdHN1a29ra2FcIDsKK+e1jOa4iOeZveabuCA8IGtlaXphaWhha3VzaG9cIDsKK+epgOWAieWcsOW4ryA8IGtva3Vzb3VjaGl0YWlcIDsKK+aGgumsseizqiA8IHl1dXV0c3VzaGl0c3VcIDsKK+aXqeacn+itpuaIkuapnyA8IHNvdWtpa2Vpa2Fpa2lcIDsKK+eSsOWig+S6i+alrSA8IGthbmt5b3VqaWd5b3VcIDsKK+e3j+WQiOWVhuekviA8IHNvdWdvdXNob3VzaGFcIDsKK+S/hOaIkOmHkSA8IG5pd2FrYW5hcmlraW5cIDsKK+WwkeW5tOWKtOWDjSA8IHNob3VuZW5yb3Vkb3VcIDsKK+S4gOaMmeS4oeW+lyA8IGlra3lvcnlvdXRva3VcIDsKK+a4rOWumuijhee9riA8IHNva3V0ZWlzb3VjaGlcIDsKK+WJjeihm+e+juihkyA8IHplbicnZWliaWp1dHN1XCA7Civmp4vpgKDpgbrkvJ3lrZAgPCBrb3V6b3VpZGVuc2hpXCA7Civnmobml6LmnIjpo58gPCBrYWlraWdlc3Nob2t1XCA7Civlhazlm6PkvY/lroUgPCBrb3VkYW5qdXV0YWt1XCA7CivoqK3lgpnmipXos4cgPCBzZXRzdWJpdG91c2hpXCA7Civml6XluLjojLbpo68gPCBuaWNoaWpvdXNhaGFuXCA7CivnvqTpm4blv4PnkIYgPCBndW5zaHV1c2hpbnJpXCA7Civnmb7miKbnt7Tno6ggPCBoeWFrdXNlbnJlbm1hXCA7CivljbPoiIjoqankurogPCBzb2treW91c2hpamluXCA7CivlloTpmqPmlL/nrZYgPCB6ZW5yaW5zZWlzYWt1XCA7CivliY3lj5flj47nm4ogPCBtYWV1a2VzaHV1ZWtpXCA7CivpnZLpioXlmajmmYLku6MgPCBzZWlkb3VraWppZGFpXCA7Civlm73msJHnmoblhbUgPCBrb2t1bWlua2FpaGVpXCA7Civpqqjnm7jlrabogIUgPCBrb3Nzb3VnYWt1c2hhXCA7CivmiLjliKXoqKrllY8gPCBrb2JldHN1aG91bW9uXCA7CivniIblvL7lo7DmmI4gPCBiYWt1ZGFuc2VpbWVpXCA7CivpgZPmpb3mga/lrZAgPCBkb3VyYWt1bXVzdWtvXCA7CivoiIzpvJMgPCBzaGl0YXRzdWR6dW1pXCA7Civlj47nqavniakgPCBzaHV1a2FrdWJ1dHN1XCA7Civosrjku5jph5EgPCBrYXNoaXRzdWtla2luXCA7CivnmZLlgrfntYTnuZQgPCB5dXNob3Vzb3NoaWtpXCA7CivnlLflrZDlrabnlJ8gPCBkYW5zaGlnYWt1c2VpXCA7Civli5XnianpgZQgPCBkb3VidXRzdXRhY2hpXCA7CivosqvpgJrpioPlibUgPCBrYW50c3V1anV1c291XCA7Civpo5/ns6fluoEgPCBzaG9rdXJ5b3VjaG91XCA7CivkvJroqIjmpJzmn7vpmaIgPCBrYWlrZWlrZW5zYWluXCA7CivmlrDpg47mlrDlqaYgPCBzaGlucm91c2hpbnB1XCA7CivnqbrmjLrkvZzmiKYgPCBrdXV0ZWlzYWt1c2VuXCA7CivphY3nrqHlt6Xmpa0gPCBoYWlrYW5rb3VneW91XCA7CivlroflrpnpgJrkv6EgPCB1Y2h1dXRzdXVzaGluXCA7Civohbrnl4Xos6ogPCBzZW5ieW91c2hpdHN1XCA7CivnrYnmr5TmlbDliJcgPCB0b3VoaXN1dXJldHN1XCA7CivluorkuIrmtbjmsLQgPCB5dWthdWVzaGluc3VpXCA7Civoh6rnhLbnkrDlooMgPCBzaGl6ZW5rYW5reW91XCA7Civml6XkuK3miKbkuokgPCBuaXRjaHV1c2Vuc291XCA7CivmsJHntIToqqwgPCBtaW4nJ3lha3VzZXRzdVwgOwor5ZC45rm/5YmkIDwga3l1dXNoaXRzdXphaVwgOwor5LqM562L6YGTIDwgZnV0YXN1amltaWNoaVwgOwor5Y2K6ZW36Z20IDwgaGFuJyduYWdhZ3V0c3VcIDsKK+aomemhjOmfs+alvSA8IGh5b3VkYWlvbmdha3VcIDsKK+agoemVt+WupCA8IGtvdWNob3VzaGl0c3VcIDsKK+WKo+etieikh+WQiCA8IHJldHRvdWZ1a3Vnb3VcIDsKK+ecvOeQg+mKgOihjCA8IGdhbmt5dXVnaW5rb3VcIDsKK+axuuaWreWKmyA8IGtldHN1ZGFucnlva3VcIDsKK+W4guWgtOWIhuaekCA8IHNoaWpvdWJ1bnNla2lcIDsKK+S4remWk+ippumokyA8IGNodXVrYW5zaGlrZW5cIDsKK+iovOWIuOS8muekviA8IHNob3VrZW5nYWlzaGFcIDsKK+a8j+ipsee1kOWQiCA8IHJvdXdhZ2V0c3Vnb3VcIDsKK+Wbvemam+e0m+S6iSA8IGtva3VzYWlmdW5zb3VcIDsKK+mbhuWbo+ihjOWLlSA8IHNodXVkYW5rb3Vkb3VcIDsKK+i7iuS4oee4pumaiiA8IHNoYXJ5b3VqdXV0YWlcIDsKK+S6pOS7o+aTjealrSA8IGtvdXRhaXNvdWd5b3VcIDsKK+S9nOiAheacquipsyA8IHNha3VzaGFtaXNob3VcIDsKK+ilv+acrOmhmOWvuiA8IG5pc2hpaG9uZ2FuamlcIDsKK+awuOS7o+WAn+WcsCA8IGVpdGFpc2hha3VjaGlcIDsKK+W3ruWHuuS6uiA8IHNhc2hpZGFzaGluaW5cIDsKK+S4g+abnOihqCA8IHNoaWNoaXlvdWh5b3VcIDsKK+WtkOWurueti+iFqyA8IHNoaWt5dXVraW5zaHVcIDsKK+WIh+aJi+iSkOmbhiA8IGtpdHRlc2h1dXNodXVcIDsKK+mmluS9jeaUu+mYsuaIpiA8IHNodWlrb3Vib3VzZW5cIDsKK+WFqOaWueS9jeWkluS6pCA8IHplbmhvdWlnYWlrb3VcIDsKK+WumOiyu+eVmeWtpiA8IGthbnBpcnl1dWdha3VcIDsKK+e3qOmbhuS4u+W5uSA8IGhlbnNodXVzaHVrYW5cIDsKK+eUn+eUo+aKgOihkyA8IHNlaXNhbmdpanV0c3VcIDsKK+awtOW5s+W/nOWKmyA8IHN1aWhlaW91cnlva3VcIDsKK+WFiOerr+aKgOihkyA8IHNlbnRhbmdpanV0c3VcIDsKK+elnuWurueQg+WgtCA8IGppbmd1dWt5dXVqb3VcIDsKK+eBsOe3keiJsiA8IGthaXJ5b2t1c2hva3VcIDsKK+acrOizqueahCA8IGhvbnNoaXRzdXRla2lcIDsKK+eEoeS6uuWMluW3peWgtCA8IG11amlua2Frb3Vqb3VcIDsKK+mfs+alveWkp+WtpiA8IG9uZ2FrdWRhaWdha3VcIDsKK+S+teeVpeihjOeCuiA8IHNoaW5yeWFrdWtvdWlcIDsKK+WFpeWwhOWFiee3miA8IG55dXVzaGFrb3VzZW5cIDsKK+S4ieinkuWHveaVsCA8IHNhbmtha3VrYW5zdXVcIDsKK+eri+S9k+WGmeecnyA8IHJpdHRhaXNoYXNoaW5cIDsKK+Wbvemam+mWouS/giA8IGtva3VzYWlrYW5rZWlcIDsKK+a1hOWcn+ecn+WulyA8IGpvdWRvc2hpbnNodXVcIDsKK+S4ieWbveWQjOebnyA8IHNhbmdva3Vkb3VtZWlcIDsKK+eBq+S6i+WgtOazpeajkiA8IGthamliYWRvcm9ib3VcIDsKK+mpmuWkqeWLleWcsCA8IGt5b3V0ZW5kb3VjaGlcIDsKK+epuuS4rea7kei1sCA8IGt1dWNodXVrYXNzb3VcIDsKK+Wbvemam+WVj+mhjCA8IGtva3VzYWltb25kYWlcIDsKK+axguW/g+WKmyA8IGt5dXVzaGlucnlva3VcIDsKK+ekvuWklueZuuS/oSA8IHNoYWdhaWhhc3NoaW5cIDsKK+i3s+aigei3i+aJiCA8IGNob3VyeW91YmFra29cIDsKK+mbhuS4reegsueBqyA8IHNodXVjaHV1aG91a2FcIDsKK+S6uuW3peaghOmkiuWFkCA8IGppbmtvdWVpeW91amlcIDsKK+S6uumWk+W3peWtpiA8IG5pbmdlbmtvdWdha3VcIDsKK+i6q+WFg+eiuuiqjSA8IG1pbW90b2tha3VuaW5cIDsKK+e1kOWbo+W8jyA8IGtldHN1ZGFuc2hpa2lcIDsKK+W3ruWIpeW+hemBhyA8IHNhYmV0c3V0YWlndXVcIDsKK+WNg+mzpeagvOWtkCA8IGNoaWRvcmlnb3VzaGlcIDsKK+S7j+WDj+S6jOS9kyA8IGJ1dHN1em91bml0YWlcIDsKK+WFqOaZr+WGmeecnyA8IHplbmtlaXNoYXNoaW5cIDsKK+WFrOWFseWbo+S9kyA8IGtvdWt5b3VkYW50YWlcIDsKK+aUueacreWPoyA8IGthaXNhdHN1Z3VjaGlcIDsKK+Wghuepjei8quW7uyA8IHRhaXNla2lyaW4nJ25lXCA7CivkuIDoiKznlJ/mtLsgPCBpcHBhbnNlaWthdHN1XCA7CivmrKfnsbPoq7joqIDoqp4gPCBvdWJlaXNob2dlbmdvXCA7CivmqKrmsrPpm7vmqZ8gPCB5b2tvZ2F3YWRlbmtpXCA7CivkuK3ntpnmlL7pgIEgPCBjaHV1a2VpaG91c291XCA7CivnpoHmraLmnaHntIQgPCBraW5zaGlqb3V5YWt1XCA7Civlhajlm73mlL7pgIEgPCB6ZW5rb2t1aG91c291XCA7Civkurrlt6XlrbXljJbms5UgPCBqaW5rb3VmdWthaG91XCA7CivlhZrliKnlhZrnlaUgPCB0b3VyaXRvdXJ5YWt1XCA7CivnuYHmrpblipsgPCBoYW5zaG9rdXJ5b2t1XCA7CivlpJbkuqTkuqTmuIkgPCBnYWlrb3Vrb3VzaG91XCA7Civlrablo6vpmaLos54gPCBnYWt1c2hpaW5zaG91XCA7CivooYzli5XoqIjnlLsgPCBrb3Vkb3VrZWlrYWt1XCA7CivlhbHmnInosqHnlKMgPCBreW91eXV1emFpc2FuXCA7CivpgLjlpLHliKnnm4ogPCBpc3NoaXRzdXJpZWtpXCA7CivovrLlnLDmlLnpnakgPCBub3VjaGlrYWlrYWt1XCA7Civlm4PlrZDoqZ4gPCBoYXlhc2hpa290b2JhXCA7CivkuqTpgJrmuIvmu54gPCBrb3V0c3V1anV1dGFpXCA7CivnpZ7ntYzntLDog54gPCBzaGlua2Vpc2FpYm91XCA7Civkurrlt67mjIcgPCBoaXRvc2FzaGl5dWJpXCA7CivkuIPpnaLps6UgPCBzaGljaGltZW5jaG91XCA7Civmpa3nlYzlm6PkvZMgPCBneW91a2FpZGFudGFpXCA7Civli6flloTmh7LmgqogPCBrYW56ZW5jaG91YWt1XCA7CivlhbHnlKPpmaPllrYgPCBreW91c2FuamluJydlaVwgOwor5qyg5bit6KOB5YikIDwga2Vzc2VraXNhaWJhblwgOwor5Y2K6Z2p6KOF5LiBIDwgaGFua2F3YXNvdXRlaVwgOwor56u25LqJ5biC5aC0IDwga3lvdXNvdXNoaWpvdVwgOwor55m66KiA5YqbIDwgaGF0c3VnZW5yeW9rdVwgOwor55+l55qE6LKh55SjIDwgY2hpdGVraXphaXNhblwgOwor5Y2X5YyX5ZWP6aGMIDwgbmFuYm9rdW1vbmRhaVwgOwor6LuN5LqL6aGn5ZWP5ZujIDwgZ3Vuamlrb21vbmRhblwgOwor6auY5bGk5aSp5rCX5ZuzIDwga291c291dGVua2l6dVwgOwor56qB54S25aSJ55WwIDwgdG90c3V6ZW5oZW4nJ2lcIDsKK+mBqeW/nOmanOWusyA8IHRla2lvdXNob3VnYWlcIDsKK+WHuuS4lumgrSA8IHNodXNzZWdhc2hpcmFcIDsKK+a3t+i8ieiyqOeJqSA8IGtvbnNhaWthbW90c3VcIDsKK+mbhuS4reWKmyA8IHNodXVjaHV1cnlva3VcIDsKK+iAkOmanOWus+aApyA8IHRhaXNob3VnYWlzZWlcIDsKK+i/keimquebuOWnpiA8IGtpbnNoaW5zb3VrYW5cIDsKK+WxiOi+seeahCA8IGt1dHN1am9rdXRla2lcIDsKK+Wkp+mBk+WVhuS6uiA8IGRhaWRvdXNob3VuaW5cIDsKK+S4jeS/oeS7u+ahiCA8IGZ1c2hpbicnbmluJydhblwgOwor5Luu6Z2i6Iie6LiP5LyaIDwga2FtZW5idXRvdWthaVwgOwor5a6u5bu36Z+z5qW9IDwga3l1dXRlaW9uZ2FrdVwgOwor5ZWG5aOy5pW1IDwgc2hvdWJhaWdhdGFraVwgOwor5Ye655Sf5bGKIDwgc2h1c3NlaXRvZG9rZVwgOwor57ep6KGd5Zyw5bivIDwga2Fuc2hvdWNoaXRhaVwgOwor6KGA5riF5rOo5bCEIDwga2Vzc2VpY2h1dXNoYVwgOwor6ISx542E5ZuaIDwgZGF0c3Vnb2t1c2h1dVwgOwor5Yqg57OW57KJ5LmzIDwga2F0b3VmdW4nJ255dXVcIDsKK+Wcn+eUo+ipsSA8IG1peWFnZWJhbmFzaGlcIDsKK+S/oeiyqeS8muekviA8IHNoaW5wYW5nYWlzaGFcIDsKK+WNgeS4gOeMrumHkSA8IGp1dWljaGlrZW5raW5cIDsKK+emj+elieS6i+alrSA8IGZ1a3VzaGlqaWd5b3VcIDsKK+aaluiho+mjvemjnyA8IGRhbicnaWhvdXNob2t1XCA7Civmupbmsbrli53miKYgPCBqdW5rZXNzaG91c2VuXCA7Civph47nlJ/li5XniakgPCB5YXNlaWRvdWJ1dHN1XCA7CivnpL7kvJrnj77osaEgPCBzaGFrYWlnZW5zaG91XCA7CivljJfmrKfoq7jlm70gPCBob2t1b3VzaG9rb2t1XCA7Civoh6rnhLbkvJHkvJogPCBzaGl6ZW5reXV1a2FpXCA7Civoia/kuozljYPnn7MgPCByeW91bmlzZW5zZWtpXCA7CivmloflrabpnZLlubQgPCBidW5nYWt1c2VpbmVuXCA7Civnmb3oo4XmnZ8gPCBzaGlyb3Nob3V6b2t1XCA7CivkvZzmpa3pg6jkvJrmoYggPCBzYWd5b3VidWthaWFuXCA7Civkv67pgZPoqpPpoZggPCBzaHV1ZG91c2VpZ2FuXCA7Civpo5/ns6fmj7TliqkgPCBzaG9rdXJ5b3VlbmpvXCA7CivooYborbDkuIDmsbogPCBzaHV1Z2lpa2tldHN1XCA7CivphbjntKDlkLjlhaUgPCBzYW5zb2t5dXVueXV1XCA7CivnlJ/oh63lnYrkuLsgPCBuYW1hZ3VzYWJvdXp1XCA7Civou43kuovmlr3oqK0gPCBndW5qaXNoaXNldHN1XCA7CivmmKDnlLvoqZXoq5blrrYgPCBlaWdhaHlvdXJvbmthXCA7Civpg7Xkvr/mjK/mm78gPCB5dXViaW5mdXJpa2FlXCA7Civmlrnph53msbrlrpogPCBob3VzaGlua2V0dGVpXCA7CivlsLHmpa3mmYLplpMgPCBzaHV1Z3lvdWppa2FuXCA7Civkurrlj6PmipHliLYgPCBqaW5rb3V5b2t1c2VpXCA7Civou43kurrmganntaYgPCBndW5qaW4nJ29ua3l1dVwgOwor5Lq65bel5rWB55SjIDwgamlua291cnl1dXphblwgOwor55yf5Ymj5Yud6LKgIDwgc2hpbmtlbnNob3VidVwgOwor6Zqg6YCA55Sf5rS7IDwgaW50YWlzZWlrYXRzdVwgOwor5a6I56eY576p5YuZ6YGV5Y+NIDwgc2h1aGlnaW11aWhhblwgOwor6IWw5be+552AIDwga29zaGlnaW5jaGFrdVwgOwor5b255ZOh5aCx6YWsIDwgeWFrdWluaG91c2h1dVwgOwor5Ymy5byV5pmC6ZaTIDwgd2FyaWJpa2lqaWthblwgOwor55m96JGh6JCE6YWSIDwgc2hpcm9idWRvdXNodVwgOwor5Y2K54af5Y21IDwgaGFuanVrdXRhbWFnb1wgOwor5Yi25pyN5Yi25bi9IDwgc2VpZnVrdXNlaWJvdVwgOwor5Y+k6Imy6JK854S2IDwga29zaG9rdXNvdXplblwgOwor55WZ572u6YO15L6/IDwgdG9tZW9raXl1dWJpblwgOwor6KiI55S75YCS55SjIDwga2Vpa2FrdXRvdXNhblwgOwor55qG5pei5pel6aOfIDwga2Fpa2luaXNzaG9rdVwgOwor5rKh5bi46K2YIDwgYm90c3Vqb3VzaGlraVwgOwor6ZuG5aG16KKLIDwgc2h1dWppbmJ1a3Vyb1wgOwor6YCj5oim6YCj5YudIDwgcmVuc2VucmVuc2hvdVwgOwor5Lqr5qW95Li7576pIDwga3lvdXJha3VzaHVnaVwgOwor5LiJ5LiL5aW0IDwgc2Fuc2hpdGF5YWtrb1wgOwor5bqD5ZGK5aqS5L2TIDwga291a29rdWJhaXRhaVwgOwor5Zu95rCR5a+p5p+7IDwga29rdW1pbnNoaW5zYVwgOwor5YGl6ICFIDwgc2hpdGF0YWthbW9ub1wgOwor5re35aOw5ZCI5ZSxIDwga29uc2VpZ2Fzc2hvdVwgOwor56We6YGT5L+h6ICFIDwgc2hpbnRvdXNoaW5qYVwgOwor5a6f5rOB5pS+6YCBIDwgamlra3lvdWhvdXNvdVwgOwor5YiG5YWJ5YiG5p6QIDwgYnVua291YnVuc2VraVwgOwor55Sj5qWt57WE5ZCIIDwgc2FuZ3lvdWt1bWlhaVwgOwor5Y+W5o2o6YG45oqeIDwgc2h1c2hhc2VudGFrdVwgOwor5Zyw6ZyH5a2m6ICFIDwgamlzaGluZ2FrdXNoYVwgOwor5aSn6Ziq5aSn5a2mIDwgb29zYWthZGFpZ2FrdVwgOwor56ys5LqM5qyh5aSn5oimIDwgZGFpbmlqaXRhaXNlblwgOwor56CU56m25pa55rOVIDwga2Vua3l1dWhvdWhvdVwgOwor5Zyw6LOq5a2mIDwgY2hpc2hpdHN1Z2FrdVwgOwor5pat6YOK56u26LWwIDwgZGFua291a3lvdXNvdVwgOwor5qW95bGL6KmxIDwgZ2FrdXlhYmFuYXNoaVwgOwor5q+U6LyD5paH5a2mIDwgaGlrYWt1YnVuZ2FrdVwgOwor5aOr6L6y5bel5ZWGIDwgc2hpbm91a291c2hvdVwgOwor5Lm+5Z2k5LiA5pOyIDwga2Vua29uJydpdHRla2lcIDsKK+WBnOatouS/oeWPtyA8IHRlaXNoaXNoaW5nb3VcIDsKK+W7uuevieePvuWgtCA8IGtlbmNoaWt1Z2VuYmFcIDsKK+WbvemAo+Wkp+S9vyA8IGtva3VyZW50YWlzaGlcIDsKK+ecieebruengOm6lyA8IGJpbW9rdXNodXVyZWlcIDsKK+aDhee3kumanOWusyA8IGpvdXNob3Nob3VnYWlcIDsKK+isueizgOaWsOW5tCA8IGtpbmdhc2hpbicnbmVuXCA7Civnt7Tnv5LllY/poYwgPCByZW5zaHV1bW9uZGFpXCA7CivkurrnlZznhKHlrrMgPCBqaW5jaGlrdW11Z2FpXCA7CivkuIrmtYHnpL7kvJogPCBqb3VyeXV1c2hha2FpXCA7CivlvLflparniakgPCBnb3VkYXRzdWJ1dHN1XCA7CivplpHml6XmnIggPCBrYW5qaXRzdWdldHN1XCA7Civpmbjmtbfnqbrou40gPCByaWt1a2Fpa3V1Z3VuXCA7Civph47mrKHppqzmoLnmgKcgPCB5YWppdW1ha29uam91XCA7CivnnJ/nm7joqr/mn7sgPCBzaGluc291Y2hvdXNhXCA7CivooajmlazoqKrllY8gPCBoeW91a2VpaG91bW9uXCA7Civmma7pgJrmlZnogrIgPCBmdXRzdXVreW91aWt1XCA7CivlhazmsJHmlZnogrIgPCBrb3VtaW5reW91aWt1XCA7CivmjJHnmbrnmoQgPCBjaG91aGF0c3V0ZWtpXCA7CivmsLTlrrPlr77nrZYgPCBzdWlnYWl0YWlzYWt1XCA7CivlsIbmnaXlsZXmnJsgPCBzaG91cmFpdGVuYm91XCA7CivlsIvllY/oqr/mm7ggPCBqaW5tb25jaG91c2hvXCA7CivnnYDlvL7ot53pm6IgPCBjaGFrdWRhbmt5b3JpXCA7CivlpKnnnJ/niJvmvKsgPCB0ZW5zaGlucmFubWFuXCA7Civlj43lsITnpZ7ntYwgPCBoYW5zaGFzaGlua2VpXCA7CivpnZLoibLnlLPlkYogPCBhb2lyb3NoaW5rb2t1XCA7CivpgKDlvaLnvo7ooZMgPCB6b3VrZWliaWp1dHN1XCA7Civlj7LnmoTnj77lnKggPCBzaGl0ZWtpZ2VuemFpXCA7CivnpZ3npa3ml6UgPCBzaHVrdXNhaWppdHN1XCA7CivlhoXpg6jnlJ/mtLsgPCBuYWlidXNlaWthdHN1XCA7Civmp4vpgKDoqJjov7AgPCBrb3V6b3VraWp1dHN1XCA7CivlhbHlrZjlhbHmoIQgPCBreW91em9ua3lvdWVpXCA7CivluK/nirbnlrHnlrkgPCB0YWlqb3Vob3VzaGluXCA7Civnj77lrp/kuLvnvqkgPCBnZW5qaXRzdXNodWdpXCA7CivlubTjgIXmrbPjgIUgPCBuZW4nJ25lbnNhaXNhaVwgOwor56CU56m26KuW5paHIDwga2Vua3l1dXJvbmJ1blwgOwor5pyA57WC57eo5oiQIDwgc2Fpc2h1dWhlbnNlaVwgOwor5bCC5L+u5a2m5qChIDwgc2Vuc2h1dWdha2tvdVwgOwor5b2r5Yi76KGTIDwgY2hvdWtva3VqdXRzdVwgOwor5Y+z5Lit5ous5bynIDwgbWlnaWNodXVrYWtrb1wgOwor5L+u6YGT6Zmi6ZW3IDwgc2h1dWRvdWluY2hvdVwgOwor5a62552j55u457aaIDwga2F0b2t1c291em9rdVwgOwor5a6/5ZG96KuW6ICFIDwgc2h1a3VtZWlyb25qYVwgOwor5rip5bqm6Kq/56+AIDwgb25kb2Nob3VzZXRzdVwgOwor6Iux5Lya6Kmx5a2m5qChIDwgZWlrYWl3YWdha2tvdVwgOwor6KiA6Kqe6IO95YqbIDwgZ2VuZ29ub3VyeW9rdVwgOwor5Yip5r2k6L+95rGCIDwgcmlqdW50c3Vpa3l1dVwgOwor57Wx546H55CG6KuWIDwgdG91c290c3VyaXJvblwgOwor5Lit56uL5Zu9IDwgY2h1dXJpdHN1a29rdVwgOwor5Zar54WZ5a6kIDwga2l0c3VlbnNoaXRzdVwgOwor6Imv6aKo576O5L+XIDwgcnlvdWZ1dWJpem9rdVwgOwor5Zu95rCR5a2m5qChIDwga29rdW1pbmdha2tvdVwgOwor5Y2Y54K655Sf5q6WIDwgdGFuJydpc2Vpc2hva3VcIDsKK+WJjeaWueS4jeazqOaEjyA8IHplbnBvdWZ1Y2h1dWlcIDsKK+S6jOWNgeaXpem8oCA8IGhhdHN1a2FuZXp1bWlcIDsKK+iyv+aYk+WPjuaUryA8IGJvdWVraXNodXVzaGlcIDsKK+S6uuW3peW/g+iHkyA8IGppbmtvdXNoaW56b3VcIDsKK+Wkqea0peaXpeWXoyA8IGFtYXRzdWhpdHN1Z2lcIDsKK+S4gOS4oeaXpSA8IGljaGlyeW91aml0c3VcIDsKK+e+pOmbhOWJsuaLoCA8IGd1bicneXV1a2Fra3lvXCA7CivlhYjlpKnmooXmr5IgPCBzZW50ZW5iYWlkb2t1XCA7Civkurrlt6Xlv4PogrogPCBqaW5rb3VzaGluYmFpXCA7CivlkbzlkLjkuK3mnqIgPCBrb2t5dXVjaHV1c3V1XCA7Civpp5DnlZnpg6jpmoogPCBjaHV1cnl1dWJ1dGFpXCA7CivmrrrnlJ/npoHmlq0gPCBzZXNzaG91a2luZGFuXCA7CivnhKHpiq3pgYroiIggPCBtdXNlbicneXV1a3lvdVwgOwor5Li75bit5YWo5qipIDwgc2h1c2VraXplbmtlblwgOwor5Zyw5pa55YWs5YuZ5ZOhIDwgY2hpaG91a291bXVpblwgOwor55Sy5LmZ5LiZ5LiBIDwga291b3RzdWhlaXRlaVwgOwor6KOc5qyg6YG45oyZIDwgaG9rZXRzdXNlbmt5b1wgOwor5qmL6ISa6IifIDwga3lvdWt5YWt1c2h1dVwgOwor5b6u6YeP5YiG5p6QIDwgYmlyeW91YnVuc2VraVwgOwor6Ieq5YuV6LKp5aOy5qmfIDwgamlkb3VoYW5iYWlraVwgOwor5Zyw5Z+f5Luj6KGoIDwgY2hpaWtpZGFpaHlvdVwgOwor55S75LiA5Li7576pIDwga2FrdWl0c3VzaHVnaVwgOwor5Lqs6YO95aSn5a2mIDwga3lvdXRvZGFpZ2FrdVwgOwor5rys54mp55+zIDwgdHN1a2Vtb25vaXNoaVwgOwor5aSW5Ye65LitIDwgZ2Fpc2h1dHN1Y2h1dVwgOwor6YmE5p+T6ImyIDwgdGV0c3VzZW5zaG9rdVwgOwor55Sf5L2T5bel5a2mIDwgc2VpdGFpa291Z2FrdVwgOwor54us56uL5b+DIDwgZG9rdXJpdHN1c2hpblwgOwor5rOh5rKr5YCZ6KOcIDwgaG91bWF0c3Vrb3Vob1wgOwor55u457aa6LKh55SjIDwgc291em9rdXphaXNhblwgOwor5a++5oim5oiQ57i+IDwgdGFpc2Vuc2Vpc2VraVwgOwor5Zu96Zqb56m65rivIDwga29rdXNhaWt1dWtvdVwgOwor5Zu96YCj57eP5LyaIDwga29rdXJlbnNvdWthaVwgOwor5LuK5pyI5pyrIDwga29uZ2V0c3VtYXRzdVwgOwor5bCC6ZaA5pWZ6IKyIDwgc2VubW9ua3lvdWlrdVwgOwor5Za25qWt5aCx5ZGKIDwgZWlneW91aG91a29rdVwgOwor6KGA5ray5qSc5p+7IDwga2V0c3Vla2lrZW5zYVwgOwor6Z2p5paw5Li7576pIDwga2FrdXNoaW5zaHVnaVwgOwor6Zyy5Ye65pmC6ZaTIDwgcm9zaHV0c3VqaWthblwgOwor6Zu756OB6Kq/55CG5ZmoIDwgZGVuamljaG91cmlraVwgOwor5oqV56Wo55So57SZIDwgdG91aHlvdXlvdXNoaVwgOwor5a6f54mp5aSnIDwgaml0c3VidXRzdWRhaVwgOwor6Jas55So55+z6bm4IDwgeWFrdXlvdXNla2tlblwgOwor5Y2Y54us6KGM5YuVIDwgdGFuZG9rdWtvdWRvdVwgOwor6Iiq56m66Ieq6KGb6ZqKIDwga291a3V1amllaXRhaVwgOwor5aSr5amm55Sf5rS7IDwgZnV1ZnVzZWlrYXRzdVwgOwor6IKJ5L2T6Zai5L+CIDwgbmlrdXRhaWthbmtlaVwgOwor6LuN5LqL6K2m5a+fIDwgZ3VuamlrZWlzYXRzdVwgOwor5paw5ama5peF6KGMIDwgc2hpbmtvbnJ5b2tvdVwgOwor6Zm95oCn5Y+N5b+cIDwgeW91c2VpaGFuJydub3VcIDsKK+i7uOW3ruW/nOWKmyA8IGppa3VzYW91cnlva3VcIDsKK+S6uumhnuWtpuiAhSA8IGppbnJ1aWdha3VzaGFcIDsKK+aLvuW+l+eJqSA8IHNodXV0b2t1YnV0c3VcIDsKK+atpuWjq+awl+izqiA8IGJ1c2hpa2lzaGl0c3VcIDsKK+esrOS4gOS6uuiAhSA8IGRhaWljaGluaW5zaGFcIDsKK+WAieaVt+aWmSA8IGt1cmFzaGlraXJ5b3VcIDsKK+izh+aWmeWupCA8IHNoaXJ5b3VzaGl0c3VcIDsKK+apn+mWouaKleizh+WutiA8IGtpa2FudG91c2hpa2FcIDsKK+WutuW6reeUn+a0uyA8IGthdGVpc2Vpa2F0c3VcIDsKK+WNsemZuuS6uueJqSA8IGtpa2VuamluYnV0c3VcIDsKK+Wkp+WtpuaVmeaOiCA8IGRhaWdha3VreW91anVcIDsKK+WJjemAsumBi+WLlSA8IHplbnNoaW4nJ3VuZG91XCA7CivmtLvli5XmiJDmnpwgPCBrYXRzdWRvdXNlaWthXCA7Civnt4/lkIjlj47mlK8gPCBzb3Vnb3VzaHV1c2hpXCA7CivosrfnianooosgPCBrYWltb25vYnVrdXJvXCA7CivlkLjlj47lipsgPCBreXV1c2h1dXJ5b2t1XCA7CivlkITpp4XlgZzou4ogPCBrYWt1ZWtpdGVpc2hhXCA7Civni6znq4vlm70gPCBkb2t1cml0c3Vrb2t1XCA7Civop6blqpLkvZznlKggPCBzaG9rdWJhaXNheW91XCA7Civnp5HlrabmioDooZMgPCBrYWdha3VnaWp1dHN1XCA7CivljbDliLfnlKjntJkgPCBpbnNhdHN1eW91c2hpXCA7Civlm57ot6/pga7mlq3mqZ8gPCBrYWlyb3NoYWRhbmtpXCA7CivkurrnmoToqLzmi6AgPCBqaW50ZWtpc2hvdWtvXCA7CivmipforbDmtLvli5UgPCBrb3VnaWthdHN1ZG91XCA7CivlhYjlj5blvpfngrkgPCBzZW5zaHV0b2t1dGVuXCA7CivmoZznpa0gPCBzYWt1cmFtYXRzdXJpXCA7CivopIflkIjkvIHmpa0gPCBmdWt1Z291a2lneW91XCA7CivnhKHlt67liKXntJogPCBtdXNhYmV0c3VreXV1XCA7CivlpJrlm73nsY3ou40gPCB0YWtva3VzZWtpZ3VuXCA7Civnq7bkuonkvqHmoLwgPCBreW91c291a2FrYWt1XCA7CivnpL7kvJrkurrmnqAgPCBzaGFrYWlqaW53YWt1XCA7CivllYbmpa3lnLDljLogPCBzaG91Z3lvdWNoaWt1XCA7CivooajlsaTmp4vpgKAgPCBoeW91c291a291em91XCA7Civnsr7npZ7ooZvnlJ8gPCBzZWlzaGluJydlaXNlaVwgOwor6KGA5bC/55eHIDwga2V0c3VueW91c2hvdVwgOwor6Iiq56m65YaZ55yfIDwga291a3V1c2hhc2hpblwgOwor5LiK5piH5rCX5rWBIDwgam91c2hvdWtpcnl1dVwgOwor5YyX5aSn6KW/5rSLIDwga2l0YXRhaXNlaXlvdVwgOwor6KGM5pS/5oyH5bCOIDwgZ3lvdXNlaXNoaWRvdVwgOwor5a6a572u5ryB5qWtIDwgdGVpY2hpZ3lvZ3lvdVwgOwor5pyA6auY57Sa5ZOBIDwgc2Fpa291a3l1dWhpblwgOwor5b2r5Yi754mpIDwgY2hvdWtva3VidXRzdVwgOwor5Ye66aCt5ZG95LukIDwgc2h1dHRvdW1laXJlaVwgOwor5aCq5b+N6KKLIDwga2FuJyduaW5idWt1cm9cIDsKK+WHuuihgOmBjuWkmiA8IHNodWtrZXRzdWthdGFcIDsKK+mbu+WtkOWHuueJiCA8IGRlbnNoaXNodXBwYW5cIDsKK+ekvumVt+WupCA8IHNoYWNob3VzaGl0c3VcIDsKK+iJsue0oOe0sOiDniA8IHNoaWtpc29zYWlib3VcIDsKK+iBlui3r+WKoOeXhemZoiA8IHNlaXJva2FieW91aW5cIDsKK+iKseWrgeiho+ijsyA8IGhhbmF5b21laXNob3VcIDsKK+Wwj+WPo+ePvumHkSA8IGtvZ3VjaGlnZW5raW5cIDsKK+WIhumbouS4u+e+qeiAhSA8IGJ1bnJpc2h1Z2lzaGFcIDsKK+WNmuWtpuWkmuaJjSA8IGhha3VnYWt1dGFzYWlcIDsKK+WkluanmOWkp+WQjSA8IHRvemFtYWRhaW15b3VcIDsKK+WbveawkeS4u+aoqSA8IGtva3VtaW5zaHVrZW5cIDsKK+WFrOmHkeaoqumgmCA8IGtvdWtpbicnb3VyeW91XCA7CivmhrLms5XoqJjlv7Xml6UgPCBrZW5wb3VraW5lbmJpXCA7Civov5Hpg4rovrLmpa0gPCBraW5rb3Vub3VneW91XCA7Civlhajlm73lpKfkvJogPCB6ZW5rb2t1dGFpa2FpXCA7CivlkJ/pgYroqankurogPCBnaW4nJ3l1dXNoaWppblwgOwor5Ya35rC05pGp5pOmIDwgcmVpc3VpbWFzYXRzdVwgOwor5puy5a2m6Zi/5LiWIDwga3lva3VnYWt1YXNlaVwgOwor5L6h5qC856u25LqJIDwga2FrYWt1a3lvdXNvdVwgOwor5Yqg5rib5oq15oqX5ZmoIDwga2FnZW50ZWlrb3VraVwgOwor56aB5pat55eH54q2IDwga2luZGFuc2hvdWpvdVwgOwor56uc5pSY6JmO5pCPIDwgcnl1dWpvdWtvaGFrdVwgOwor5q2j5ZGz6YeN6YePIDwgc2hvdW1panV1cnlvdVwgOwor5YWs6Ki85b255aC0IDwga291c2hvdXlha3ViYVwgOwor5riF5ra86aOy5paZIDwgc2VpcnlvdWlucnlvdVwgOwor5Li85YuY5a6aIDwgZG9uYnVyaWthbmpvdVwgOwor5q+b566h54++6LGhIDwgbW91a2FuZ2Vuc2hvdVwgOwor5L2c5oim5Zyw5Z+fIDwgc2FrdXNlbmNoaWlraVwgOwor546J5a2Q5Li8IDwgdGFtYWdvZG9uYnVyaVwgOwor5Ye65by15peF6LK7IDwgc2h1dGNob3VyeW9oaVwgOwor5pS+6YCB55Wq57WEIDwgaG91c291YmFuZ3VtaVwgOwor54Sh5YWN6Kix6YGL6LuiIDwgbXVtZW5reW91bnRlblwgOwor57iu5Yi354mIIDwgc2h1a3VzYXRzdWJhblwgOwor5rC45LmF56OB55+zIDwgZWlreXV1amlzaGFrdVwgOwor5aOy5o6b5YuY5a6aIDwgdXJpa2FrZWthbmpvdVwgOwor5LuK5pel55qEIDwga29uJyduaWNoaXRla2lcIDsKK+mWk+Wurua1t+WzoSA8IG1hbWl5YWthaWt5b3VcIDsKK+eNhOS4reaXpeiomCA8IGdva3VjaHV1bmlra2lcIDsKK+ayiOaAnem7meiAgyA8IGNoaW5zaGltb2trb3VcIDsKK+i2heWbveWutueahCA8IGNob3Vrb2trYXRla2lcIDsKK+a0nuWvn+WKmyA8IGRvdXNhdHN1cnlva3VcIDsKK+mYsueBq+W7uueviSA8IGJvdWtha2VuY2hpa3VcIDsKK+mHkeiejeW4guWgtCA8IGtpbicneXV1c2hpam91XCA7Civpm4blm6Plv4PnkIYgPCBzaHV1ZGFuc2hpbnJpXCA7CivlhaXnpL7oqabpqJMgPCBueXV1c2hhc2hpa2VuXCA7Civpgbjmip7lgKTnvqQgPCBzZW50YWt1Y2hpZ3VuXCA7CivkuI3lj6/oppblhYnnt5ogPCBmdWthc2hpa291c2VuXCA7CivnorrnjofoqqTlt64gPCBrYWt1cml0c3Vnb3NhXCA7Civosr/mmJPoh6rnlLHljJYgPCBib3Vla2lqaXl1dWthXCA7CivnrKzlm5vpmo7ntJogPCBkYWl5b25rYWlreXV1XCA7CivnqbrmsJfliLbli5XmqZ8gPCBrdXVraXNlaWRvdWtpXCA7CivpgI3pgaXlrabmtL4gPCBzaG91eW91Z2FrdWhhXCA7Civpu5LngrnlkajmnJ8gPCBrb2t1dGVuc2h1dWtpXCA7Civnvo7ooZPlrabmoKEgPCBiaWp1dHN1Z2Fra291XCA7CivljYrmrbvljYrnlJ8gPCBoYW5zaGloYW5zaG91XCA7Civlv6vpgJ/pm7vou4ogPCBrYWlzb2t1ZGVuc2hhXCA7CivljZfljJfmiKbkuokgPCBuYW5ib2t1c2Vuc291XCA7CivlsI/lhZDllpjmga8gPCBzaG91bml6ZW5zb2t1XCA7CivlhoXmlL/lubLmuIkgPCBuYWlzZWlrYW5zaG91XCA7CivlhazlubPmlL/nrZYgPCBrb3VoZWlzZWlzYWt1XCA7Civlt6Xmpa3opo/moLwgPCBrb3VneW91a2lrYWt1XCA7Civlm5vop5Llm5vpnaIgPCBzaGlrYWt1c2hpbWVuXCA7CivlsJHlubTlsJHlpbMgPCBzaG91bmVuc2hvdWpvXCA7Civlho3osqnmpa3ogIUgPCBzYWloYW5neW91c2hhXCA7CivotoXpq5jpgJ/luqYgPCBjaG91a291c29rdWRvXCA7Civoqr/mn7vloLHlkYogPCBjaG91c2Fob3Vrb2t1XCA7Civmtbfpm6Plr6nliKQgPCBrYWluYW5zaGlucGFuXCA7CivnkIblrabkv67lo6sgPCByaWdha3VzaHV1c2hpXCA7CivlpJbnmoTmoLnmi6AgPCBnYWl0ZWtpa29ua3lvXCA7Civmnb7po5/omasgPCBtYXRzdWt1aW11c2hpXCA7CivnlJ/lkb3lt6XlraYgPCBzZWltZWlrb3VnYWt1XCA7CivlpKnkvZHnpZ7liqkgPCB0ZW4nJ3l1dXNoaW5qb1wgOwor5aSW5Zu95peF6KGMIDwgZ2Fpa29rdXJ5b2tvdVwgOwor5YWx5ZCM5rC05qCTIDwga3lvdWRvdXN1aXNlblwgOwor5ouh5aSn5Z2H6KGhIDwga2FrdWRhaWtpbmtvdVwgOwor6IqL6JST5byPIDwgaW1vZHp1cnVzaGlraVwgOwor5LqU5Y2B5q2p55m+5q2pIDwgZ29qdXBwb2h5YXBwb1wgOwor6LOq6YeP5pWwIDwgc2hpdHN1cnlvdXN1dVwgOwor5Yex5peL5bCG6LuNIDwgZ2Fpc2Vuc2hvdWd1blwgOwor5Y6f55CG5Li7576p6ICFIDwgZ2VucmlzaHVnaXNoYVwgOwor6ZuG56mN5Zue6LevIDwgc2h1dXNla2lrYWlyb1wgOwor6KO+6YeO55Sj5qWtIDwgc3Vzb25vc2FuZ3lvdVwgOwor6Y6u6a2C5biw56WeIDwgY2hpbmtvbmtpc2hpblwgOwor5ZCI5qC86ICF5ZCNIDwgZ291a2FrdXNoYW1laVwgOwor5pyJ6LOH5qC86ICFIDwgeXV1c2hpa2FrdXNoYVwgOwor5YyW5a2m5Y+N5b+cIDwga2FnYWt1aGFuJydub3VcIDsKK+mcgOimgeS+m+e1piA8IGp1eW91a3lvdWt5dXVcIDsKK+WIpemFjemBlCA8IGJldHN1aGFpdGF0c3VcIDsKK+WPrOWWmuS7pOeKtiA8IHNob3VrYW5yZWlqb3VcIDsKK+ippumok+WLieW8tyA8IHNoaWtlbmJlbmt5b3VcIDsKK+a4qeWupOWKueaenCA8IG9uc2hpdHN1a291a2FcIDsKK+S7iuaXpeanmCA8IGtvbicnbmljaGlzYW1hXCA7CivmnInpiaTmnaHomasgPCB5dXVrb3Vqb3VjaHV1XCA7CivlhoXnmoTmoLnmi6AgPCBuYWl0ZWtpa29ua3lvXCA7Civov5HmtbfmvIHmpa0gPCBraW5rYWlneW9neW91XCA7CivlhqDlpKfkvJogPCBrYW5tdXJpdGFpa2FpXCA7CivmsbrmiKbmipXnpaggPCBrZXNzZW50b3VoeW91XCA7CivlhbHlkIznpL7kvJogPCBreW91ZG91c2hha2FpXCA7Civov73opIfmm7IgPCB0c3VpZnVrdWt5b2t1XCA7CivllJDojYnmqKHmp5ggPCBrYXJha3VzYW1veW91XCA7CivljIXnmq7liIfmlq0gPCBob3VoaXNldHN1ZGFuXCA7CivlrprmnJ/lj5blvJUgPCB0ZWlraXRvcmloaWtpXCA7Civkub7nh6XmtJfmv68gPCBrYW5zb3VzZW50YWt1XCA7Civpm4blkIjlkI3oqZ4gPCBzaHV1Z291bWVpc2hpXCA7CivlsI/lnovmlrDogZ4gPCBrb2dhdGFzaGluYnVuXCA7CivlpJrlhYPmlofljJboq5YgPCB0YWdlbmJ1bmthcm9uXCA7CivorbLmuKHmgKfpoJDph5EgPCBqb3V0b3NlaXlva2luXCA7CivljLvnmYLmlr3oqK0gPCBpcnlvdXNoaXNldHN1XCA7Civli5XnianmsrnohIIgPCBkb3VidXRzdXl1c2hpXCA7Civlj43pnaLmlZnluKsgPCBoYW5tZW5reW91c2hpXCA7CivntYTlkIjpoK0gPCBrdW1pYWlnYXNoaXJhXCA7Civml6XluLjkvJroqbEgPCBuaWNoaWpvdWthaXdhXCA7CivovLjlhaXmpa3ogIUgPCB5dW55dXVneW91c2hhXCA7CivmqJnmupbkvqHmoLwgPCBoeW91anVua2FrYWt1XCA7CivkuI3lpormiYvooZMgPCBmdW5pbnNodWp1dHN1XCA7CivlsbHnjKvkuonorbAgPCB5YW1hbmVrb3NvdWdpXCA7Civlh7rkuJbplpPnmoQgPCBzaHVzc2VrZW50ZWtpXCA7CivlubTkuK3ooYzkuosgPCBuZW5jaHV1Z3lvdWppXCA7CivpjozlgInmmYLku6MgPCBrYW1ha3VyYWppZGFpXCA7CivmlaPmranml4EgPCBzYW5wb2thdGFnYXRhXCA7CivkvpvoqJfniakgPCBreW91dGFrdWJ1dHN1XCA7Civngo7nl4fnl4Xlt6MgPCBlbnNob3VieW91c291XCA7Civms6jmhI/kurrniakgPCBjaHV1aWppbmJ1dHN1XCA7Civlm73lrrbkuLvnvqnogIUgPCBrb2trYXNodWdpc2hhXCA7Civml6XmtKropqrlloQgPCBuaWtrb3VzaGluemVuXCA7Civov73liqDms6jmlocgPCB0c3Vpa2FjaHV1bW9uXCA7CivnrYblhpnnlaXlrZcgPCBoaXNzaGFyeWFrdWppXCA7CivnjK7ooYDpgYvli5UgPCBrZW5rZXRzdXVuZG91XCA7CivoiJ7lj7DoirjooZMgPCBidXRhaWdlaWp1dHN1XCA7Civlh7rpoZjkurogPCBzaHV0c3VnYW4nJ25pblwgOwor6Kmm6aiT55uj552jIDwgc2hpa2Vua2FudG9rdVwgOwor5pKk6aCt5b655bC+IDwgdGV0dG91dGV0c3ViaVwgOwor55a+6aKo6L+F6Zu3IDwgc2hpcHB1dWppbnJhaVwgOwor5biC5aC055Kw5aKDIDwgc2hpam91a2Fua3lvdVwgOwor5Y6f5oiQ5bKp55+zIDwgZ2Vuc2VpZ2Fuc2VraVwgOwor5YmN5aSn57Wx6aCYIDwgemVuZGFpdG91cnlvdVwgOwor5by35Yi26YCB6YKEIDwga3lvdXNlaXNvdWthblwgOwor5ZCM5qWt57WE5ZCIIDwgZG91Z3lvdWt1bWlhaVwgOwor6Zu75rCX5YmD5YiAIDwgZGVua2lrYW1pc29yaVwgOwor5LqL5YuZ5bGA6ZW3IDwgamltdWt5b2t1Y2hvdVwgOwor57WM5riI5pS56Z2pIDwga2VpemFpa2Fpa2FrdVwgOwor5rK/5bK46K2m5YKZ6ZqKIDwgZW5nYW5rZWliaXRhaVwgOwor5rCR5L+X6Iq46IO9IDwgbWluem9rdWdlaW5vdVwgOwor57KY552A5YqbIDwgbmVuY2hha3VyeW9rdVwgOwor5YCL5Lq65Li7576p6ICFIDwga29qaW5zaHVnaXNoYVwgOwor5Y+O56mr5LqI5oOzIDwgc2h1dWtha3V5b3NvdVwgOwor5aGp6L6b6Jy76JuJIDwgc2hpb2thcmF0b25ib1wgOwor5a6/5rOK5paZIDwgc2h1a3VoYWt1cnlvdVwgOwor57SG5L2Z5puy5oqYIDwgdXlva3lva3VzZXRzdVwgOwor5qW16LaF55+t5rOiIDwgZ29rdWNob3V0YW5wYVwgOwor5Lmz56qEIDwgY2hpY2hpc2hpYm9yaVwgOwor5Li75qip5L6154qvIDwgc2h1a2Vuc2hpbnBhblwgOwor5Lit5oCn5rSX5YmkIDwgY2h1dXNlaXNlbnphaVwgOwor6LKo54mp5YiX6LuKIDwga2Ftb3RzdXJlc3NoYVwgOwor6KGA5riF55mC5rOVIDwga2Vzc2VpcnlvdWhvdVwgOwor5paw5qGI54m56KixIDwgc2hpbicnYW50b2treW9cIDsKK+aYr+aYr+mdnumdnuS4u+e+qSA8IHplemVoaWhpc2h1Z2lcIDsKK+atu+W+jOehrOebtCA8IHNoaWdva291Y2hva3VcIDsKK+WUr+eJqeS4u+e+qSA8IHl1aWJ1dHN1c2h1Z2lcIDsKK+aXpemcsuaIpuS6iSA8IG5pY2hpcm9zZW5zb3VcIDsKK+WQjOebn+adoee0hCA8IGRvdW1laWpvdXlha3VcIDsKK+S4gOaUq+WNg+mHkSA8IGlra2Fra3VzZW5raW5cIDsKK+majue0mumXmOS6iSA8IGthaWt5dXV0b3Vzb3VcIDsKK+eGseehrOWMluWJpCA8IG5ldHN1a291a2F6YWlcIDsKK+WwgueUqOWbnue3miA8IHNlbicneW91a2Fpc2VuXCA7CivkuqTmj5vlrabnlJ8gPCBrb3VrYW5nYWt1c2VpXCA7Civli5Xnt5roqIjnlLsgPCBkb3VzZW5rZWlrYWt1XCA7CivlpJbkuqTlp5Tlk6HplbcgPCBnYWlrb3VpaW5jaG91XCA7CivmsJHmlL/plbflrpggPCBtaW5zZWljaG91a2FuXCA7CivliKTmlq3kuK3mraIgPCBoYW5kYW5jaHV1c2hpXCA7Civmnp3lnoLmoZwgPCBzaGlkYXJlemFrdXJhXCA7Civlj6Tku6PntKsgPCBrb2RhaW11cmFzYWtpXCA7CivlsYDmiYDliIblspAgPCBreW9rdXNob2J1bmtpXCA7CivpgJrluLjlm73kvJogPCB0c3V1am91a29ra2FpXCA7Civmnp3lnoLmn7MgPCBzaGlkYXJleWFuYWdpXCA7Civmt7Hnt5HoibIgPCBmdWthbWlkb3JpaXJvXCA7CivmlbDlgKTop6PmnpAgPCBzdXVjaGlrYWlzZWtpXCA7CivnhKHmirXmipfkuLvnvqkgPCBtdXRlaWtvdXNodWdpXCA7Civou43lgpnmi6HlvLUgPCBndW5iaWtha3VjaG91XCA7CivpganogIXnlJ/lrZggPCB0ZWtpc2hhc2Vpem9uXCA7Civnsr7npZ7pkZHlrpogPCBzZWlzaGlua2FudGVpXCA7CivnqY3pm6rph48gPCBzZWtpc2V0c3VyeW91XCA7CivpiYTpgZPovLjpgIEgPCB0ZXRzdWRvdXl1c291XCA7CivnoJTnqbblrqQgPCBrZW5reXV1c2hpdHN1XCA7CivnrKzkuInpmo7ntJogPCBkYWlzYW5rYWlreXV1XCA7CivljYPmhYvkuIfmp5ggPCBzZW50YWliYW4nJ3lvdVwgOwor6Zu75a2Q5bel5a2mIDwgZGVuc2hpa291Z2FrdVwgOwor57WM5riI54q25rOBIDwga2VpemFpam91a3lvdVwgOwor56S+5Lya5pWZ6IKyIDwgc2hha2Fpa3lvdWlrdVwgOwor6L6y6ICV5rCR5pePIDwgbm91a291bWluem9rdVwgOwor5YWo6Lqr5YWo6ZyKIDwgemVuc2hpbnplbnJlaVwgOwor5YWs56ew6LOH5pysIDwga291c2hvdXNoaWhvblwgOwor5aSn5a2X54mH5bGxIDwgb29hemFrYXRheWFtYVwgOwor6Jas5bir5aaC5p2lIDwgeWFrdXNoaW55b3JhaVwgOwor5pS+5bCE6IO95rGa5p+TIDwgaG91c2hhbm91b3NlblwgOwor6Zu75rCX6Ieq5YuV6LuKIDwgZGVua2lqaWRvdXNoYVwgOwor6LOi5omAIDwga2FzaGlrb2Rva29yb1wgOwor5ZCM55uf5LyR5qChIDwgZG91bWVpa3l1dWtvdVwgOwor5bel5L2c5a6kIDwga291c2FrdXNoaXRzdVwgOwor5Lit5aSu6KiI55S7IDwgY2h1dW91a2Vpa2FrdVwgOwor5Lit5aSu6ZuG5qipIDwgY2h1dW91c2h1dWtlblwgOwor5LiJ6KeS6LK/5piTIDwgc2Fua2FrdWJvdWVraVwgOwor5YiG5p6Q5YyW5a2mIDwgYnVuc2VraWthZ2FrdVwgOwor5bCR5aOu5aOr5a6YIDwgc2hvdXNvdXNoaWthblwgOwor5rOV55qE5qC55ougIDwgaG91dGVraWtvbmt5b1wgOwor5q665a6z5LqL5Lu2IDwgc2F0c3VnYWlqaWtlblwgOwor6Z2i6a2CIDwgdHN1cmFkYW1hc2hpaVwgOwor6Ieq54S25aKX5Y+OIDwgc2hpemVuem91c2h1dVwgOwor6Imv5oCn6IWr55iNIDwgcnlvdXNlaXNodXlvdVwgOwor5L2c5YqH6KGTIDwgc2FrdWdla2lqdXRzdVwgOwor55+t5pel5pyIIDwgdGFuaml0c3VnZXRzdVwgOwor6LuK5o6M5a6kIDwgc2hhc2hvdXNoaXRzdVwgOwor6YCa5Yuk6Zu76LuKIDwgdHN1dWtpbmRlbnNoYVwgOwor5bCR5bm054qv572qIDwgc2hvdW5lbmhhbnphaVwgOwor5rC06YW45YyW54mpIDwgc3Vpc2Fua2FidXRzdVwgOwor6Kaq5oia55+l5bexIDwgc2hpbnNla2ljaGlraVwgOwor5Y2Y54us5rG6566XIDwgdGFuZG9rdWtlc3NhblwgOwor5Zu96Zqb5oOF5YuiIDwga29rdXNhaWpvdXNlaVwgOwor6KGX6aCt5ryU6KqsIDwgZ2FpdG91ZW56ZXRzdVwgOwor5qyj5Zac6ZuA6LqNIDwga2lua2lqYWt1eWFrdVwgOwor5ZOB56iu5pS56ImvIDwgaGluc2h1a2FpcnlvdVwgOwor5YWs56ew6aas5YqbIDwga291c2hvdWJhcmlraVwgOwor5Zub5YWt5pmC5LitIDwgc2hpcm9rdWppY2h1dVwgOwor5Lqk6YCa6YGu5patIDwga291dHN1dXNoYWRhblwgOwor5aSn5a2m57Sb5LqJIDwgZGFpZ2FrdWZ1bnNvdVwgOwor6LKh5pS/5Y+O5pSvIDwgemFpc2Vpc2h1dXNoaVwgOwor6KGG5Y+C5Lih6ZmiIDwgc2h1dXNhbnJ5b3VpblwgOwor6ICQ54Gr5bu656+JIDwgdGFpa2FrZW5jaGlrdVwgOwor6KaW5Yqb5qSc5p+7IDwgc2hpcnlva3VrZW5zYVwgOwor5bCP5YiA57Sw5belIDwga29nYXRhbmF6YWlrdVwgOwor6LOq55aR5b+c562UIDwgc2hpdHN1Z2lvdXRvdVwgOwor5o2c5p+75b2T5bGAIDwgc291c2F0b3VreW9rdVwgOwor6Ki65a+f5paZIDwgc2hpbnNhdHN1cnlvdVwgOwor5L+457Wm6KKLIDwgaG91a3l1dWJ1a3Vyb1wgOwor54Wn6JGJ54uC6KiAIDwgdGVyaWhha3lvdWdlblwgOwor5Ye65b6B6LuN5Lq6IDwgc2h1c3NlaWd1bmppblwgOwor5YSq55Sf5L+d6K235rOVIDwgeXV1c2VpaG9nb2hvdVwgOwor5raI5aSx54K5IDwgc2hvdXNoaXRzdXRlblwgOwor5pS+5bCE6IO96ZuyIDwgaG91c2hhbm91Z3Vtb1wgOwor56S+5Lya5pS/562WIDwgc2hha2Fpc2Vpc2FrdVwgOwor6Zu75qW16Zu75L2NIDwgZGVua3lva3VkZW4nJ2lcIDsKK+S6uuW3pemAj+aekCA8IGppbmtvdXRvdXNla2lcIDsKK+ikh+WQiOWqkuS9kyA8IGZ1a3Vnb3ViYWl0YWlcIDsKK+S9j+awkeaKleelqCA8IGp1dW1pbnRvdWh5b3VcIDsKK+W3pealreWcsOW4ryA8IGtvdWd5b3VjaGl0YWlcIDsKK+WRvOWQuOWbsOmboyA8IGtva3l1dWtvbicnbmFuXCA7Civoqq3mm7jlrqQgPCBkb2t1c2hvc2hpdHN1XCA7CivppIrorbfmlr3oqK0gPCB5b3Vnb3NoaXNldHN1XCA7CivovLjlh7ropo/liLYgPCB5dXNodXRzdWtpc2VpXCA7CivlnLDmlrnkuovli5nmiYAgPCBjaGlob3VqaW11c2hvXCA7CivmiKblipvntYTmiJAgPCBzZW5yeW9rdXNvc2VpXCA7CivntbHkuIDopovop6MgPCB0b3VpdHN1a2Vua2FpXCA7CivlgqznnKDnmYLms5UgPCBzYWltaW5yeW91aG91XCA7Civlt6Xmpa3oo73lk4EgPCBrb3VneW91c2VpaGluXCA7CivlvbnkurrmoLnmgKcgPCB5YWt1bmlua29uam91XCA7Civni6zmiL/nm6PnpoEgPCBkb2t1Ym91a2Fua2luXCA7Civlrr/ms4rlhYggPCBzaHVrdWhha3VzYWtpXCA7CivlsI7pgJrmirXmipcgPCBkb3V0c3V1dGVpa291XCA7CivljZToqr/kuLvnvqkgPCBreW91Y2hvdXNodWdpXCA7CivkvJroqIjloLHlkYogPCBrYWlrZWlob3Vrb2t1XCA7Civlj7Dmub7mtbfls6EgPCB0YWl3YW5rYWlreW91XCA7Civml6XmuIXmiKbkuokgPCBuaXNzaGluc2Vuc291XCA7CivlrqPoqIDnmbrooaggPCBzZW5nZW5oYXBweW91XCA7CivlpKnkvZPlhpnnnJ8gPCB0ZW50YWlzaGFzaGluXCA7CivovLjlhaXoh6rnlLHljJYgPCB5dW55dXVqaXl1dWthXCA7Civph43ph4/lmbjmlbAgPCBqdXVyeW91dG9uc3V1XCA7CivorZjliKXlrZAgPCBzaGlraWJldHN1c2hpXCA7CivljZfljYrnkIMgPCBtaW5hbWloYW5reXV1XCA7CivmmI7pj6HmraLmsLQgPCBtZWlreW91c2hpc3VpXCA7CivlubTplpPoqIjnlLsgPCBuZW5rYW5rZWlrYWt1XCA7CivnhKHliKnmga/lgrXli5kgPCBtdXJpc29rdXNhaW11XCA7Civlj6Pov7DnrYboqJggPCBrb3VqdXRzdWhpa2tpXCA7Civlm73pmpvpgJrosqggPCBrb2t1c2FpdHN1dWthXCA7Civogbflk6HlrqQgPCBzaG9rdWluc2hpdHN1XCA7Civnoavpu4TphbjljJbniakgPCBpb3VzYW5rYWJ1dHN1XCA7CivlgaXlurfoqLrmlq0gPCBrZW5rb3VzaGluZGFuXCA7CivmoYPlsbHmmYLku6MgPCBtb21veWFtYWppZGFpXCA7CivogbfloLTntZDlqZogPCBzaG9rdWJha2Vra29uXCA7CivnkrDlooPllY/poYwgPCBrYW5reW91bW9uZGFpXCA7CivoqLzkurrllprllY8gPCBzaG91bmlua2FubW9uXCA7Civkv6HnjoTooosgPCBzaGluZ2VuYnVrdXJvXCA7CivmlLvmkoPmlrnlkJEgPCBrb3VnZWtpaG91a291XCA7Civnq7bkuonlo7LosrcgPCBreW91c291YmFpYmFpXCA7CivokZfkvZzmqKnms5UgPCBjaG9zYWt1a2VuaG91XCA7Civlm73pmpvnpL7kvJogPCBrb2t1c2Fpc2hha2FpXCA7CivmlrDliLbpq5jmoKEgPCBzaGluc2Vpa291a291XCA7Civlr4TnlJ/omavnl4cgPCBraXNlaWNodXVzaG91XCA7CivkuK3mipjluL3lrZAgPCBuYWthb3JlYm91c2hpXCA7Civlhazplovnt7Tnv5IgPCBrb3VrYWlyZW5zaHV1XCA7CivntYzmuIjmlL/nrZYgPCBrZWl6YWlzZWlzYWt1XCA7CivlkIjmiJDlhpnnnJ8gPCBnb3VzZWlzaGFzaGluXCA7CivmlrDpgLLkvZzlrrYgPCBzaGluc2hpbnNha2thXCA7CivmgYvnianoqp4gPCBrb2ltb25vZ2F0YXJpXCA7CivphbjntKDkvpvntaYgPCBzYW5zb2t5b3VreXV1XCA7CivkuqTpgJrlhaznpL4gPCBrb3V0c3V1a291c2hhXCA7CivmtLvmrrroh6rlnKggPCBrYXNzYXRzdWppemFpXCA7Civpm7vpgIHlhpnnnJ8gPCBkZW5zb3VzaGFzaGluXCA7Civlhajnn6Xlhajog70gPCB6ZW5jaGl6ZW4nJ25vdVwgOwor5LiA57KS56iuIDwgaGl0b3RzdWJ1ZGFuZVwgOwor5Zu95Yui6Kq/5p+7IDwga29rdXNlaWNob3VzYVwgOwor5rWB6YCa5qmf5qeLIDwgcnl1dXRzdXVraWtvdVwgOwor5YW15Zmo6Ly45Ye6IDwgaGVpa2l5dXNodXRzdVwgOwor5aSp55qH5bSH5oudIDwgdGVuJydub3VzdXVoYWlcIDsKK+S/neiovOS6uuimgSA8IGhvc2hvdW5pbicneW91XCA7Civmta7pgYrnlJ/niakgPCBmdXl1dXNlaWJ1dHN1XCA7CivntYLouqvkv53pmbogPCBzaHV1c2hpbmhva2VuXCA7Civnt5Hmn7Hnn7MgPCByeW9rdWNodXVzZWtpXCA7Civmh7jos57oq5bmlocgPCBrZW5zaG91cm9uYnVuXCA7CivpgZPot6/mjoPpmaTkurogPCBkb3Vyb3NvdWppamluXCA7CivluILloLTmlLnpnakgPCBzaGlqb3VrYWlrYWt1XCA7Civpm7vlipvpnIDopoEgPCBkZW5yeW9rdWp1eW91XCA7Civoh6jluorlsIvllY8gPCByaW5zaG91amlubW9uXCA7CivpmbDmpbXnt5rnrqEgPCBpbmt5b2t1c2Vua2FuXCA7Civml4vlhYnliIbmnpAgPCBzZW5rb3VidW5zZWtpXCA7CivljJbnn7Pnh4PmlpkgPCBrYXNla2luZW5yeW91XCA7Civpm7vkv6Hngrrmm78gPCBkZW5zaGlua2F3YXNlXCA7Civku4/kvZwgPCBob3Rva2VkenVrdXJ1XCA7Civmh5DkuK3pm7vnga8gPCBrYWljaHV1ZGVudG91XCA7CivmiY3oibLlhbzlgpkgPCBzYWlzaG9rdWtlbmJpXCA7CivmnbHljZcgPCBoaWdhc2hpbWluYW1pXCA7CivmjIflsI7opoHpoJggPCBzaGlkb3V5b3VyeW91XCA7Civpg7Xkvr/lubTph5EgPCB5dXViaW4nJ25lbmtpblwgOwor6Zai6YCj5ZWG5ZOBIDwga2FucmVuc2hvdWhpblwgOwor6ZmQ55WM54q25rOBIDwgZ2Vua2Fpam91a3lvdVwgOwor5LuB6Lyq5Yqg54uC6KiAIDwgbml3YWtha3lvdWdlblwgOwor54++5Zyo5a6M5LqGIDwgZ2VuemFpa2FucnlvdVwgOwor5Yi257SE5Lyd5pCsIDwgc2VpeWFrdWRlbnBhblwgOwor5Li45LiA6YCx6ZaTIDwgbWFydWlzc2h1dWthblwgOwor5bel5qWt5Zuj5ZywIDwga291Z3lvdWRhbmNoaVwgOwor5qW15qW95rWE5ZyfIDwgZ29rdXJha3Vqb3Vkb1wgOwor6Ieq6Ieq5YWs77yT5YWaIDwgamlqaWtvdXNhbnRvdVwgOwor5rCX566h5pSv6IK654KOIDwga2lrYW5zaGloYWllblwgOwor5aSa6YeN5YK15YuZ6ICFIDwgdGFqdXVzYWltdXNoYVwgOwor5YyW5a2m5YiG5p6QIDwga2FnYWt1YnVuc2VraVwgOwor6Kuu5ZWP5aeU5ZOh5LyaIDwgc2hpbW9uJydpaW5rYWlcIDsKK+WQjOeCueaxuuWLnSA8IGRvdXRlbmtlc3Nob3VcIDsKK+S9k+WklumbouiEsSA8IHRhaWdhaXJpZGF0c3VcIDsKK+eUn+eJqeWFteWZqCA8IHNlaWJ1dHN1aGVpa2lcIDsKK+WNmOmfs+evgOiqniA8IHRhbicnb25zZXRzdWdvXCA7CivmlLvmkoPpmorlvaIgPCBrb3VnZWtpdGFpa2VpXCA7Civms5XkurrmiYDlvpcgPCBob3VqaW5zaG90b2t1XCA7CivlpKfpgIbkuovku7YgPCB0YWlneWFrdWppa2VuXCA7Civljp/lp4vmlZnkvJogPCBnZW5zaGlreW91a2FpXCA7CivkvqHmoLzljZTlrpogPCBrYWtha3VreW91dGVpXCA7Civlr5PmhI/lsI/oqqwgPCBndXVpc2hvdXNldHN1XCA7CivmmJTmsJfos6ogPCBtdWthc2hpa2F0YWdpXCA7CivlsILploDmioDooZMgPCBzZW5tb25naWp1dHN1XCA7Civmi6HlvLXlj6/og70gPCBrYWt1Y2hvdWthbm91XCA7Civkv4Tli4nlvLcgPCBuaXdha2FiZW5reW91XCA7CivmgKXpgLLkuLvnvqkgPCBreXV1c2hpbnNodWdpXCA7CivoqJjlv7XlvI/lhbggPCBraW5lbnNoaWtpdGVuXCA7Civnq7blkIjohLHnt5ogPCBreW91Z291ZGFzc2VuXCA7CivmmpHkuK3kvJHmmocgPCBzaG9jaHV1a3l1dWthXCA7CivnuYHmlofnuJ/npLwgPCBoYW5idW5qb2t1cmVpXCA7Civnm67mqJnnrqHnkIYgPCBtb2t1aHlvdWthbnJpXCA7CivmlrnlkJHoprPlv7UgPCBob3Vrb3VrYW4nJ25lblwgOwor5rW35bqV6Zu75L+hIDwga2FpdGVpZGVuc2hpblwgOwor5qWt55WM5YuV5ZCRIDwgZ3lvdWthaWRvdWtvdVwgOwor5b+F6KaB57WM6LK7IDwgaGl0c3V5b3VrZWloaVwgOwor5rC0546J5qih5qeYIDwgbWl6dXRhbWFtb3lvdVwgOwor6YCy5a2m546HIDwgc2hpbmdha3VyaXRzdVwgOwor5Ye65b6B5a625pePIDwgc2h1c3NlaWthem9rdVwgOwor57WM5bi45Y+O5pSvIDwga2Vpam91c2h1dXNoaVwgOwor5Zyw55CD56eR5a2mIDwgY2hpa3l1dWthZ2FrdVwgOwor5oOF5aCx5oqA6KGTIDwgam91aG91Z2lqdXRzdVwgOwor5q6/5qeY6JuZIDwgdG9ub3NhbWFnYWVydVwgOwor6auY6auY5bqm6aOb6KGMIDwga291a291ZG9oaWtvdVwgOwor56m65Lit5YiG6KejIDwga3V1Y2h1dWJ1bmthaVwgOwor5by35Yi25Yq05YONIDwga3lvdXNlaXJvdWRvdVwgOwor6ZqO57Sa5oSP6K2YIDwga2Fpa3l1dWlzaGlraVwgOwor5Y2a5aOr6KuW5paHIDwgaGFrdXNoaXJvbmJ1blwgOwor5Lq65qC85b2i5oiQIDwgamlua2FrdWtlaXNlaVwgOwor57W557O457Sh57i+IDwga2Vuc2hpYm91c2VraVwgOwor6IG35aC06ZeY5LqJIDwgc2hva3ViYXRvdXNvdVwgOwor6Z2Z6ISI6KGAIDwgam91bXlha3VrZXRzdVwgOwor5pWZ6IKy5a2m6YOoIDwga3lvdWlrdWdha3VidVwgOwor5aSJ6YCf6KOF572uIDwgaGVuc29rdXNvdWNoaVwgOwor55yf5YaG55yf54+gIDwgc2hpbicnZW5zaGluanVcIDsKK+Wbveawkee1jOa4iCA8IGtva3VtaW5rZWl6YWlcIDsKK+S4gOeti+mBkyA8IGhpdG9zdWppbWljaGlcIDsKK+WGhemdouaPj+WGmSA8IG5haW1lbmJ5b3VzaGFcIDsKK+WqkuS9k+e1guerryA8IGJhaXRhaXNodXV0YW5cIDsKK+W/g+eQhueZguazlSA8IHNoaW5yaXJ5b3Vob3VcIDsKK+aAp+eahOmWouS/giA8IHNlaXRla2lrYW5rZWlcIDsKK+eEoemKremjsumjnyA8IG11c2VuJydpbnNob2t1XCA7CivlsLHmpa3njocgPCBzaHV1Z3lvdXJpdHN1XCA7Civnr4Tnlofmlofms5UgPCBoYW5jaHV1YnVucG91XCA7CivlhoXnt5LoqbEgPCBuYWlzaG9iYW5hc2hpXCA7CivplbfmnJ/lgJ/mrL4gPCBjaG91a2lzaGFra2FuXCA7CivlhajkvZPpm4blkIggPCB6ZW50YWlzaHV1Z291XCA7Civlj7PlsI/mi6zlvKcgPCBtaWdpc2hvdWtha2tvXCA7Civku67mg7PmlbXlm70gPCBrYXNvdXRla2lrb2t1XCA7CivouoHprLHos6ogPCBzb3V1dHN1c2hpdHN1XCA7CivmpbXmpb3lvoDnlJ8gPCBnb2t1cmFrdW91am91XCA7CivliJ3nrYnmlZnogrIgPCBzaG90b3VreW91aWt1XCA7CivooYzmlL/lkb3ku6QgPCBneW91c2VpbWVpcmVpXCA7Civlr77lnLDmlLvmkoMgPCB0YWljaGlrb3VnZWtpXCA7Civoh6rnhLbmj4/lhpkgPCBzaGl6ZW5ieW91c2hhXCA7Civph5Hono3os4fmnKwgPCBraW4nJ3l1dXNoaWhvblwgOwor54Sh6IO95Yqb6ICFIDwgbXVub3VyeW9rdXNoYVwgOwor5YyW5a2m5bel5qWtIDwga2FnYWt1a291Z3lvdVwgOwor6KGM5pS/5Yy655S7IDwgZ3lvdXNlaWt1a2FrdVwgOwor5a2m57+S6L6e5YW4IDwgZ2FrdXNodXVqaXRlblwgOwor5Zu95Lya6K2w5LqL5aCCIDwga29ra2FpZ2lqaWRvdVwgOwor6Zao6Zal5pS/5rK7IDwga2VpYmF0c3VzZWlqaVwgOwor5LqM5Y2B5Zub56+A5rCXIDwgbmlqdXVzaGlzZWtraVwgOwor5LqL5qWt5ouh5YWFIDwgamlneW91a2FrdWp1dVwgOwor6L6y5p2R5bel5qWtIDwgbm91c29ua291Z3lvdVwgOwor56eL6Zuo5YmN57eaIDwgYWtpc2FtZXplbnNlblwgOwor54Sh5b2i5paH5YyW6LKhIDwgbXVrZWlidW5rYXphaVwgOwor5YWx5ZCM6L6y5aC0IDwga3lvdWRvdW5vdWpvdVwgOwor5aWz5qip5ouh5by1IDwgam9rZW5rYWt1Y2hvdVwgOwor6Kyb57+S5Lya5aC0IDwga291c2h1dWthaWpvdVwgOwor5rGa5p+T54mp6LOqIDwgb3NlbmJ1c3NoaXRzdVwgOwor54q25rOB5Yik5patIDwgam91a3lvdWhhbmRhblwgOwor5b2T6Kmy5a6Y5bqBIDwgdG91Z2Fpa2FuY2hvdVwgOwor5Luy5LuL6LK/5piTIDwgY2h1dWthaWJvdWVraVwgOwor5Zu95YaF5biC5aC0IDwga29rdW5haXNoaWpvdVwgOwor5LiA5p6a55yL5p2/IDwgaWNoaW1haWthbmJhblwgOwor5biC5aC06Ieq55Sx5YyWIDwgc2hpam91aml5dXVrYVwgOwor57WM5Za25aSa6KeS5YyWIDwga2VpZWl0YWtha3VrYVwgOwor54Sh57ea6YCa5L+hIDwgbXVzZW50c3V1c2hpblwgOwor57WM5riI5aSn5Zu9IDwga2VpemFpdGFpa29rdVwgOwor5Li75oiR5Li7576p6ICFIDwgc2h1Z2FzaHVnaXNoYVwgOwor5pqX5Y+35YyW5omL5rOVIDwgYW5nb3VrYXNodWhvdVwgOwor5Y+N56S+5Lya55qEIDwgaGFuc2hha2FpdGVraVwgOwor5LiA5Yip5LiA5a6zIDwgaWNoaXJpaWNoaWdhaVwgOwor5LqM5b6L6IOM5Y+NIDwgbmlyaXRzdWhhaWhhblwgOwor5b6p5YWD5L2c5qWtIDwgZnVrdWdlbnNhZ3lvdVwgOwor5Lq66ZaT54iG5by+IDwgbmluZ2VuYmFrdWRhblwgOwor5a2j56+A5Yq05YONIDwga2lzZXRzdXJvdWRvdVwgOwor6Zm46LuN5aSn6IejIDwgcmlrdWd1bmRhaWppblwgOwor5pat5oq15oqX6KeSIDwgZGFudGVpa291a2FrdVwgOwor54ax5Yq5546HIDwgbmV0c3Vrb3VyaXRzdVwgOwor5LiN6KaL6Lui6Iq46ICFIDwgbWl6dXRlbmdlaXNoYVwgOwor55uu55qE54mpIDwgbW9rdXRla2lidXRzdVwgOwor6YCa5L+h5qmf6ZaiIDwgdHN1dXNoaW5raWthblwgOwor5Y+N55m65YqbIDwgaGFucGF0c3VyeW9rdVwgOwor5YaZ55yf5Ye454mIIDwgc2hhc2hpbnRvcHBhblwgOwor5qSN54mp6KqMIDwgc2hva3VidXRzdXNoaVwgOwor5YyW5a2m55mC5rOVIDwga2FnYWt1cnlvdWhvdVwgOwor5Yqf5Yip5Li7576p6ICFIDwga291cmlzaHVnaXNoYVwgOwor57ax57SA57Kb5q2jIDwga291a2lzaHVrdXNlaVwgOwor56iO5Yi25pS56Z2pIDwgemVpc2Vpa2Fpa2FrdVwgOwor6Kq/5YGc6KOB5YikIDwgY2hvdXRlaXNhaWJhblwgOwor54Sh572q5Yik5rG6IDwgbXV6YWloYW5rZXRzdVwgOwor5aSp54mbIDwga2FtaWtpcmltdXNoaVwgOwor6LuN5LqL5oim55WlIDwgZ3VuamlzZW5yeWFrdVwgOwor6K2m5a+f5YqbIDwga2Vpc2F0c3VyeW9rdVwgOwor6Ieo5bqK6Kmm6aiTIDwgcmluc2hvdXNoaWtlblwgOwor6Ziy5q2i5oyH6YedIDwgYm91c2hpc2hpc2hpblwgOwor5rCX6LGh6Kaz5risIDwga2lzaG91a2Fuc29rdVwgOwor6Iie5Y+w55Sf5rS7IDwgYnV0YWlzZWlrYXRzdVwgOwor5aSn5ZCN5peF6KGMIDwgZGFpbXlvdXJ5b2tvdVwgOwor5L2c5qWt55mC5rOVIDwgc2FneW91cnlvdWhvdVwgOwor5aSW5Zu954K65pu/IDwgZ2Fpa29rdWthd2FzZVwgOwor6YO956uL6auY5qChIDwgdG9yaXRzdWtvdWtvdVwgOwor5b2i5byP5Li7576pIDwga2Vpc2hpa2lzaHVnaVwgOwor5YyW5a2m5bel5a2mIDwga2FnYWt1a291Z2FrdVwgOwor6KeS6YGL5YuV6YePIDwga2FrdXVuZG91cnlvdVwgOwor5a6M5YWo54Sh5qygIDwga2FuemVubXVrZXRzdVwgOwor5pS/562W5rG65a6aIDwgc2Vpc2FrdWtldHRlaVwgOwor6LKo54mp5a6kIDwga2Ftb3RzdXNoaXRzdVwgOwor5b6q55Kw5bCP5pWwIDwganVua2Fuc2hvdXN1dVwgOwor5aSn6Z+T5rCR5Zu9IDwgZGFpa2FubWlua29rdVwgOwor5oeQ5Lit6Y+hIDwga2FpY2h1dWthZ2FtaVwgOwor6YGp55So5qWt5YuZIDwgdGVraXlvdWd5b3VtdVwgOwor5oim5LqJ5paH5a2mIDwgc2Vuc291YnVuZ2FrdVwgOwor5Lmd5aSp55u05LiLIDwga3l1dXRlbmNob2trYVwgOwor5reh57eR6ImyIDwgdGFucnlva3VzaG9rdVwgOwor6Z2i5b6T6IW56IOMIDwgbWVuanV1ZnVrdWhhaVwgOwor56K65L+d5aSx5pWXIDwga2FrdWhvc2hpcHBhaVwgOwor5YWx6YCa6KiA6KqeIDwga3lvdXRzdXVnZW5nb1wgOwor6Ieq5YuV6LuK5L+d6Zm6IDwgamlkb3VzaGFob2tlblwgOwor5by35Yi25Yem5YiGIDwga3lvdXNlaXNob2J1blwgOwor5pat5bSW57W25aOBIDwgZGFuZ2FpemVwcGVraVwgOwor55Sj5qWt56S+5LyaIDwgc2FuZ3lvdXNoYWthaVwgOwor5ZCE56iu5a2m5qChIDwga2FrdXNodWdha2tvdVwgOwor5YiG6Kej5YaZ55yfIDwgYnVua2Fpc2hhc2hpblwgOwor5Y2w5Yi35aqS5L2TIDwgaW5zYXRzdWJhaXRhaVwgOwor56CU56m25omA5aCxIDwga2Vua3l1dXNob2hvdVwgOwor5Lmx5bCE5Lmx5pKDIDwgcmFuc2hhcmFuZ2VraVwgOwor54m56Kix5L615a6zIDwgdG9ra3lvc2hpbmdhaVwgOwor5a6a6aGN6LKv6YeRIDwgdGVpZ2FrdWNob2tpblwgOwor5YWs6KGG5Lyd5YuVIDwga291c2h1dWRlbmRvdVwgOwor5aSp56u66bygIDwgdGVuamlrdW5lenVtaVwgOwor6YmE6YGT6aas6LuKIDwgdGV0c3Vkb3ViYXNoYVwgOwor5YaF5Zu954K65pu/IDwgbmFpa29rdWthd2FzZVwgOwor56iu56iu5qeY5qeYIDwgc2h1anVzYW1hemFtYVwgOwor5Zac6Imy5rqA6Z2iIDwga2lzaG9rdW1hbm1lblwgOwor5byB5Yil57Sg5oCnIDwgYmVuYmV0c3Vzb3NlaVwgOwor5L2c5oim5ZG95LukIDwgc2FrdXNlbm1laXJlaVwgOwor6K2w6ZW36IG35qipIDwgZ2ljaG91c2hva2tlblwgOwor57Wx546H5YqbIDwgdG91cml0c3VyeW9rdVwgOwor5a6f6Yyy54mpIDwgaml0c3Vyb2t1bW9ub1wgOwor5ZWT6JKZ5oCd5r2uIDwga2VpbW91c2hpY2hvdVwgOwor5YWs5ai85YWo5buDIDwga291c2hvdXplbnBhaVwgOwor5a++6Z2i5Lqk6YCaIDwgdGFpbWVua291dHN1dVwgOwor6Ieq5bex6aGV56S65qyyIDwgamlrb2tlbmppeW9rdVwgOwor5a+G5YWl5Zu9IDwgbWl0c3VueXV1Z29rdVwgOwor5LiA5ZWP5LiA562UIDwgaWNoaW1vbicnaXR0b3VcIDsKK+ebtOi8uOWHuiA8IGNob2t1eXVzaHV0c3VcIDsKK+eEoemFjeW9k+S/nemZuiA8IG11aGFpdG91aG9rZW5cIDsKK+mbu+WtkOWvhuW6piA8IGRlbnNoaW1pdHN1ZG9cIDsKK+i2heS9juS+oeagvCA8IGNob3V0ZWlrYWtha3VcIDsKK+S4gOaLrOWjsuiytyA8IGlra2F0c3ViYWliYWlcIDsKK+aDmuawl+ipsSA8IG5vcm9rZWJhbmFzaGlcIDsKK+WItue0hOadoeS7tiA8IHNlaXlha3Vqb3VrZW5cIDsKK+S8keaIpuS8muirhyA8IGt5dXVzZW5rYWlkYW5cIDsKK+S8kemkiuWupCA8IGt5dXV5b3VzaGl0c3VcIDsKK+eJiOaoqeS+teWusyA8IGhhbmtlbnNoaW5nYWlcIDsKK+mZs+WIl+eqkyA8IGNoaW5yZXRzdW1hZG9cIDsKK+eZvuWIhueOhyA8IGh5YWt1YnVucml0c3VcIDsKK+malOmboueXheajnyA8IGtha3VyaWJ5b3V0b3VcIDsKK+eUn+muruaWmeWTgSA8IHNlaXNlbnJ5b3VoaW5cIDsKK+WHuuihgOeXhyA8IHNodWtrZXRzdXNob3VcIDsKK+S4iuaYh+WCvuWQkSA8IGpvdXNob3VrZWlrb3VcIDsKK+S4jeazleWFpeWbvSA8IGZ1aG91bnl1dWdva3VcIDsKK+aVmemkiuWtpumDqCA8IGt5b3V5b3VnYWt1YnVcIDsKK+mrmOS/oemgvOaApyA8IGtvdXNoaW5yYWlzZWlcIDsKK+aenOaoueagveWfueiAhSA8IGthanVzYWliYWlzaGFcIDsKK+WutuWuheaNnOe0oiA8IGthdGFrdXNvdXNha3VcIDsKK+ioiOeUu+e1jOa4iCA8IGtlaWtha3VrZWl6YWlcIDsKK+S4iei7uOippumokyA8IHNhbmppa3VzaGlrZW5cIDsKK+acgOe1guautemajiA8IHNhaXNodXVkYW5rYWlcIDsKK+WPjuWFpeWNsOe0mSA8IHNodXVueXV1aW5zaGlcIDsKK+WNiueGn+e3tOW3pSA8IGhhbmp1a3VyZW5rb3VcIDsKK+WGmeecn+WIpOWumiA8IHNoYXNoaW5oYW50ZWlcIDsKK+e1jOa4iOims+W/tSA8IGtlaXphaWthbicnbmVuXCA7Civos4Pph5HmsLTmupYgPCBjaGluZ2luc3VpanVuXCA7Civllrbmpa3lj47mlK8gPCBlaWd5b3VzaHV1c2hpXCA7CivkuInnm7jkuqTmtYEgPCBzYW5zb3Vrb3VyeXV1XCA7CivntYzllrbmiKbnlaUgPCBrZWllaXNlbnJ5YWt1XCA7CivmmKXlpI/np4vlhqwgPCBzaHVua2FzaHV1dG91XCA7CivnhKbngrnmt7HluqYgPCBzaG91dGVuc2hpbmRvXCA7CivkuIDmmYLmiYDlvpcgPCBpY2hpamlzaG90b2t1XCA7CivmnYnoirHnsonnl4cgPCBzdWdpa2FmdW5zaG91XCA7CivkurrmsJHmipXnpaggPCBqaW5taW50b3VoeW91XCA7Civlr4bovLjlh7ogPCBtaXRzdXl1c2h1dHN1XCA7CivlkIjlvpPpgKPooaEgPCBnYXNzaG91cmVua291XCA7Civng4/ph47osYzosYYgPCBrYXJhc3Vub2VuZG91XCA7CivnhKHoirjlpKfpo58gPCBtdWdlaXRhaXNob2t1XCA7Civlm73pmpvpgKPlkIggPCBrb2t1c2FpcmVuZ291XCA7CivliKTliKXlvI8gPCBoYW5iZXRzdXNoaWtpXCA7CivnhrHkuqTmj5vlmaggPCBuZXRzdWtvdWthbmtpXCA7CivlroflrpnplovnmbogPCB1Y2h1dWthaWhhdHN1XCA7CivmvKLmlofoqJPoqq0gPCBrYW5idW5rdW5kb2t1XCA7CivnqbrplpPmhJ/oppogPCBrdXVrYW5rYW5rYWt1XCA7CivkuozkurrkuInohJogPCBuaW5pbnNhbmt5YWt1XCA7CivmqKnlipvkuLvnvqkgPCBrZW5yeW9rdXNodWdpXCA7CivmpI3niannlYwgPCBzaG9rdWJ1dHN1a2FpXCA7Civli5/pm4bluoPlkYogPCBib3NodXVrb3Vrb2t1XCA7Civlrabnv5LnkIboq5YgPCBnYWt1c2h1dXJpcm9uXCA7Civpp5Dou4rnpoHmraIgPCBjaHV1c2hha2luc2hpXCA7CivlhbHlkIzlrqPoqIAgPCBreW91ZG91c2VuZ2VuXCA7Civoo4HliKTlrpjlv4zpgb8gPCBzYWliYW5rYW5raWhpXCA7CivlpKnlnLDnpZ7mmI4gPCB0ZW5jaGlzaGlubWVpXCA7CivlpKLlubsgPCB5dW1lbWFib3Jvc2hpXCA7CivoqbPntLDmg4XloLEgPCBzaG91c2Fpam91aG91XCA7CivniZvpo7Lppqzpo58gPCBneXV1aW5iYXNob2t1XCA7CivpnZ7mraboo4XlnLDluK8gPCBoaWJ1c291Y2hpdGFpXCA7Civph5Hln47piYTlo4EgPCBraW5qb3V0ZXBwZWtpXCA7Civpm4bkuK3orJvnvqkgPCBzaHV1Y2h1dWtvdWdpXCA7CivlpInlvaLomavpoZ4gPCBoZW5rZWljaHV1cnVpXCA7CivlhaznmoTlubTph5EgPCBrb3V0ZWtpbmVua2luXCA7CivpgLHliIrpm5HoqowgPCBzaHV1a2FuemFzc2hpXCA7CivntKHnuL7lt6XloLQgPCBib3VzZWtpa291am91XCA7CivliJ3nrYnmlbDlraYgPCBzaG90b3VzdXVnYWt1XCA7CivmrovlrZjml6XmlbAgPCB6YW5zb24nJ25pc3N1dVwgOwor56m65rCX5riF5rWE5qmfIDwga3V1a2lzZWlqb3VraVwgOwor5Zu96Zqb5bGV6ZaLIDwga29rdXNhaXRlbmthaVwgOwor5bm05Yqf5bqP5YiXIDwgbmVua291am9yZXRzdVwgOwor54ax5Yqb5a2mIDwgbmV0c3VyaWtpZ2FrdVwgOwor5ZWG5qWt6YO95biCIDwgc2hvdWd5b3V0b3NoaVwgOwor5Lit6YCU6YCA5a2mIDwgY2h1dXRvdGFpZ2FrdVwgOwor5YWx5ZCM5Lya6KaLIDwga3lvdWRvdWthaWtlblwgOwor5oay5rOV5a2m6ICFIDwga2VucG91Z2FrdXNoYVwgOwor5LiA5LqL5LiN5YaN6K2wIDwgaWNoaWppZnVzYWlnaVwgOwor5Ym15bu66KiY5b+15pelIDwgc291a2Vua2luZW5iaVwgOwor5pmu6YGN5aal5b2T5oCnIDwgZnVoZW5kYXRvdXNlaVwgOwor5Y6f5a2Q54iG5by+IDwgZ2Vuc2hpYmFrdWRhblwgOwor5Y6f5a2Q56C05aOK5qmfIDwgZ2Vuc2hpaGFrYWlraVwgOwor55m75bGx6YmE6YGTIDwgdG96YW50ZXRzdWRvdVwgOwor5paw5q2j5pyIIDwgc2hpbnNob3VnYXRzdVwgOwor54mp55CG5YyW5a2mIDwgYnV0c3VyaWthZ2FrdVwgOwor57Wm5rC05Yi26ZmQIDwga3l1dXN1aXNlaWdlblwgOwor5pyd6a6u5oim5LqJIDwgY2hvdXNlbnNlbnNvdVwgOwor5auM5rCX55Sf54mpIDwga2Vua2lzZWlidXRzdVwgOwor6YG45oqe54q25oWLIDwgc2VudGFrdWpvdXRhaVwgOwor5Li76aOf54mpIDwgc2h1c2hva3VidXRzdVwgOwor6auY5bOw5YWr5bqnIDwga291aG91aGFjaGl6YVwgOwor5LiN5raI5YyW54mpIDwgZnVzaG91a2FidXRzdVwgOwor5rOV55qE5paH5pu4IDwgaG91dGVraWJ1bnNob1wgOwor56eY5a+G6YG45oyZIDwgaGltaXRzdXNlbmt5b1wgOwor6Zmz5YiX5qOaIDwgY2hpbnJldHN1ZGFuYVwgOwor5paw54ax5biv5Yy6IDwgc2hpbicnbmV0dGFpa3VcIDsKK+e1kOWpmuaMh+i8qiA8IGtla2tvbicneXViaXdhXCA7CivlloTpmqPlj4vlpb0gPCB6ZW5yaW4nJ3l1dWtvdVwgOwor5Y+X5Y+W5omL5b2iIDwgdWtldG9yaXRlZ2F0YVwgOwor5rG6566X5aCx5ZGKIDwga2Vzc2FuaG91a29rdVwgOwor5b+D55CG5a2m6ICFIDwgc2hpbnJpZ2FrdXNoYVwgOwor6ZuR5Y+O5YWlIDwgemF0c3VzaHV1bnl1dVwgOwor6KuW55CG5b2i5byPIDwgcm9ucmlrZWlzaGlraVwgOwor5L2O6aCt5bmz6LqrIDwgdGVpdG91aGVpc2hpblwgOwor5re35ZCI6L6y5qWtIDwga29uZ291bm91Z3lvdVwgOwor5paH6Iq45L2c5ZOBIDwgYnVuZ2Vpc2FrdWhpblwgOwor5pyJ6ZaR6ZqO57SaIDwgeXV1a2Fua2Fpa3l1dVwgOwor5Y+L5aW95p2h57SEIDwgeXV1a291am91eWFrdVwgOwor5YmH5aSp5Y6756eBIDwgc29rdXRlbmt5b3NoaVwgOwor5YaZ5a6f5Li7576pIDwgc2hhaml0c3VzaHVnaVwgOwor5Zu96Zqb5biC5aC0IDwga29rdXNhaXNoaWpvdVwgOwor5LqM6YeN55Sf5rS7IDwgbmlqdXVzZWlrYXRzdVwgOwor6Ieo5qmf55uu5qiZIDwgcmlua2ltb2t1aHlvdVwgOwor5ZWG5qWt55m76KiYIDwgc2hvdWd5b3V0b3VraVwgOwor6buE6Imy5Lq656iuIDwgb3VzaG9rdWppbnNodVwgOwor5ZGo5rOi5aSJ6Kq/IDwgc2h1dWhhaGVuY2hvdVwgOwor5qyg6Zml5ZWG5ZOBIDwga2Vra2Fuc2hvdWhpblwgOwor5b6T5bGe5aSJ5pWwIDwganV1em9rdWhlbnN1dVwgOwor5pei57SE6KGo54++IDwga2l5YWt1aHlvdWdlblwgOwor6Kmx5Y2K5YiGIDwgaGFuYXNoaWhhbmJ1blwgOwor5LiN6Imv5bCR5bm0IDwgZnVyeW91c2hvdW5lblwgOwor5ris6YeP5oqA5birIDwgc29rdXJ5b3VnaXNoaVwgOwor5qOu576F5LiH6LGhIDwgc2hpbnJhYmFuc2hvdVwgOwor55Sj5qWt5qeL6YCgIDwgc2FuZ3lvdWtvdXpvdVwgOwor5qyn5bee6Ku45Zu9IDwgb3VzaHV1c2hva29rdVwgOwor6YCa5Yuk5Zyw542EIDwgdHN1dWtpbmppZ29rdVwgOwor5pi86ZaT5Lq65Y+jIDwgY2h1dWthbmppbmtvdVwgOwor5Yqb5LiN6LazIDwgY2hpa2FyYWJ1c29rdVwgOwor5oCn5qC85Yik5patIDwgc2Vpa2FrdWhhbmRhblwgOwor5L+h6aC86Zai5L+CIDwgc2hpbnJhaWthbmtlaVwgOwor5bCx5a2m546HIDwgc2h1dWdha3VyaXRzdVwgOwor5ZCM5pyf6YCa5L+hIDwgZG91a2l0c3V1c2hpblwgOwor5LiJ6YeN54Sm54K5IDwgc2FuanV1c2hvdXRlblwgOwor5oqV56Wo57eP5pWwIDwgdG91aHlvdXNvdXN1dVwgOwor5aSn5bmF5Yi35pawIDwgb29oYWJhc2Fzc2hpblwgOwor5rC05LiK55S6IDwgbWluYWthbWltYWNoaVwgOwor57WQ5ama6KiY5b+15pelIDwga2Vra29ua2luZW5iaVwgOwor5aSn6Zuo5rOo5oSP5aCxIDwgb29hbWVjaHV1aWhvdVwgOwor5YiH5pat5oKj6ICFIDwgc2V0c3VkYW5rYW5qYVwgOwor6KKW5omL5YKN6KazIDwgc2h1dXNodWJvdWthblwgOwor5ouN5omL5Zad6YeHIDwgaGFrdXNodWthc3NhaVwgOwor5L2c5qWt5Luu6KqsIDwgc2FneW91a2FzZXRzdVwgOwor57WM5riI5oiQ6ZW3IDwga2VpemFpc2VpY2hvdVwgOwor57Gz5p2x6YOo5pmC6ZaTIDwgYmVpdG91YnVqaWthblwgOwor5ZCI5oiQ5a6d55+zIDwgZ291c2VpaG91c2VraVwgOwor57WQ57eg57WE57mUIDwga2V0dGVpc29zaGlraVwgOwor6Kaq5YiH5b+DIDwgc2hpbnNldHN1c2hpblwgOwor5YaG6YyQ5puy57eaIDwgZW5zdWlreW9rdXNlblwgOwor6IGW5L2T5oud6aCYIDwgc2VpdGFpaGFpcnlvdVwgOwor5bq25rCR6YeR6J6NIDwgc2hvbWlua2luJyd5dXVcIDsKK+S9k+epjeaKteaKlyA8IHRhaXNla2l0ZWlrb3VcIDsKK+WNlOWQjOe1hOWQiCA8IGt5b3Vkb3VrdW1pYWlcIDsKK+WFiOS9j+awkeaXjyA8IHNlbmp1dW1pbnpva3VcIDsKK+e1seS4gOaIpue3miA8IHRvdWl0c3VzZW5zZW5cIDsKK+WQjOaZgumAmuiosyA8IGRvdWppdHN1dXlha3VcIDsKK+WRqOefpeW+ueW6lSA8IHNodXVjaGl0ZXR0ZWlcIDsKK+iJsembo+i+m+iLpiA8IGthbicnbmFuc2hpbmt1XCA7CivmlL/lhZrlhoXplqMgPCBzZWl0b3VuYWlrYWt1XCA7CivliLbkvZzlrqQgPCBzZWlzYWt1c2hpdHN1XCA7CivljbPniannmoQgPCBzb2t1YnV0c3V0ZWtpXCA7Civnj77lnLDloLHlkYogPCBnZW5jaGlob3Vrb2t1XCA7Civmh7jos57llY/poYwgPCBrZW5zaG91bW9uZGFpXCA7CivliqPmgKfpgbrkvJ3lrZAgPCByZXNzZWlpZGVuc2hpXCA7CivmsbLlj5blj6MgPCBrdW1pdG9yaWd1Y2hpXCA7Civlgq3oiLnlpZHntIQgPCB5b3VzZW5rZWl5YWt1XCA7Civku4rkuIrlpKnnmocgPCBraW5qb3V0ZW4nJ25vdVwgOwor5LuW6Kaa55eH54q2IDwgdGFrYWt1c2hvdWpvdVwgOwor5qyg6aOf5YWQ56ulIDwga2Vzc2hva3VqaWRvdVwgOwor5aiv5qW955Wq57WEIDwgZ29yYWt1YmFuZ3VtaVwgOwor57K+56We5Yy75a2mIDwgc2Vpc2hpbicnaWdha3VcIDsKK+WGheWuueiovOaYjiA8IG5haXlvdXNob3VtZWlcIDsKK+WHuua4r+WBnOatoiA8IHNodWtrb3V0ZWlzaGlcIDsKK+Wkq+Wppue0hOadnyA8IGZ1dWZ1eWFrdXNva3VcIDsKK+aXheihjOalreiAhSA8IHJ5b2tvdWd5b3VzaGFcIDsKK+S9v+W+kuS/oee1jCA8IHNoaXRvc2hpbmt5b3VcIDsKK+Wkluizh+WwjuWFpSA8IGdhaXNoaWRvdW55dXVcIDsKK+eEoeS+oeWApOizh+eUoyA8IG11a2FjaGlzaGlzYW5cIDsKK+WBpeW6t+S/nemZuuWMuyA8IGtlbmtvdWhva2VuJydpXCA7CivluLjku7vlp5Tlk6HkvJogPCBqb3VuaW4nJ2lpbmthaVwgOwor5oiQ5Lq65pWZ6IKyIDwgc2Vpamlua3lvdWlrdVwgOwor5YWs5byP5Li7576pIDwga291c2hpa2lzaHVnaVwgOwor6KSH5pWw5qWt5YuZIDwgZnVrdXN1dWd5b3VtdVwgOwor56aB5qyy5Li7576pIDwga2luJyd5b2t1c2h1Z2lcIDsKK+epuuilsuitpuWgsSA8IGt1dXNodXVrZWlob3VcIDsKK+eUo+alreWGjeeUnyA8IHNhbmd5b3VzYWlzZWlcIDsKK+izg+iyuOS+oeagvCA8IGNoaW50YWlrYWtha3VcIDsKK+aIpumXmOWJjeWTqCA8IHNlbnRvdXplbnNob3VcIDsKK+S4gOiogOS4gOihjCA8IGljaGlnZW4nJ2lra291XCA7Civou5YgPCB0c3VtdWdpa3VydW1hXCA7CivlkLnlpY/mpb3lm6MgPCBzdWlzb3VnYWt1ZGFuXCA7Civnm7Tnt5rot53pm6IgPCBjaG9rdXNlbmt5b3JpXCA7Civov5HopqrntZDlqZogPCBraW5zaGlua2Vra29uXCA7CivnsbPoi7Hku4/omK0gPCBiZWllaWJ1dHN1cmFuXCA7Civoh6rnlLHkuLvnvqnogIUgPCBqaXl1dXNodWdpc2hhXCA7Civnn63ms6Llj5fkv6HmqZ8gPCB0YW5wYWp1c2hpbmtpXCA7CivlhbHlkIzkvZzmpa0gPCBreW91ZG91c2FneW91XCA7CivmuJvlj43mlL/nrZYgPCBnZW50YW5zZWlzYWt1XCA7Civlv4PnkIbkvZzmiKYgPCBzaGlucmlzYWt1c2VuXCA7Civnt4/poJjlqJggPCBzb3VyeW91bXVzdW1lXCA7CivkuIPnpo/npZ4gPCBzaGljaGlmdWt1amluXCA7Civlv4Poh5Pnp7vmpI0gPCBzaGluem91aXNob2t1XCA7CivmnInpmZDosqzku7sgPCB5dXVnZW5zZWtpbmluXCA7CivntYTnuZTlho3nt6ggPCBzb3NoaWtpc2FpaGVuXCA7Civnpo/pn7PmlZnkvJogPCBmdWt1aW5reW91a2FpXCA7CivplqLkv4Llia/oqZ4gPCBrYW5rZWlmdWt1c2hpXCA7Civlj7Lmlpnnt6jnuoIgPCBzaGlyeW91aGVuc2FuXCA7CivnibnliKXluK0gPCB0b2t1YmV0c3VzZWtpXCA7CivnjJ/lrpjpgYvli5UgPCByeW91a2FuJyd1bmRvdVwgOwor6IKJ5L2T5Yq05YONIDwgbmlrdXRhaXJvdWRvdVwgOwor56C05aOK5Li7576p6ICFIDwgaGFrYWlzaHVnaXNoYVwgOwor5Y+C54Wn5paH54yuIDwgc2Fuc2hvdWJ1bmtlblwgOwor6Z+z5qW955uj552jIDwgb25nYWt1a2FudG9rdVwgOwor5bmz6Lqr5L2O6aCtIDwgaGVpc2hpbnRlaXRvdVwgOwor5YWx55Sj5YiG5a2QIDwga3lvdXNhbmJ1bnNoaVwgOwor5LqI57SE5Ye654mIIDwgeW95YWt1c2h1cHBhblwgOwor54Kt5rC05YyW54mpIDwgdGFuc3Vpa2FidXRzdVwgOwor5b6h6YO95ZCI5Li7576pIDwgZ290c3Vnb3VzaHVnaVwgOwor5aSa6KGA6LOqIDwgdGFrZXRzdXNoaXRzdVwgOwor6L+R5Luj5paH5a2mIDwga2luZGFpYnVuZ2FrdVwgOwor5LqM5Y2B5pel5aSn5qC5IDwgaGF0c3VrYWRhaWtvblwgOwor5Zyw5pa55a6Y5bqBIDwgY2hpaG91a2FuY2hvdVwgOwor5Zub5YiG5LqU6KOCIDwgc2hpYnVuZ29yZXRzdVwgOwor57WM5riI5Zue5b6pIDwga2VpemFpa2FpZnVrdVwgOwor5a6f5a2Y5Li7576pIDwgaml0c3V6b25zaHVnaVwgOwor5oGS5rip5YuV54mpIDwga291b25kb3VidXRzdVwgOwor6YeO6I+c5LiA55q/IDwgeWFzYWloaXRvc2FyYVwgOwor5b2i5byP6KuW55CGIDwga2Vpc2hpa2lyb25yaVwgOwor5aSn5a2m5rWq5Lq6IDwgZGFpZ2FrdXJvdW5pblwgOwor5pqr5a6a5Y2U5a6aIDwgemFudGVpa3lvdXRlaVwgOwor6JC95LiL5YKY6YOo6ZqKIDwgcmFra2FzYW5idXRhaVwgOwor5pS+6YCB5aSn5a2mIDwgaG91c291ZGFpZ2FrdVwgOwor5rOV5b6L5Yi25bqmIDwgaG91cml0c3VzZWlkb1wgOwor6ZW36Led6Zui5L6d5a2YIDwgY2hvdWt5b3JpaXpvblwgOwor5L+h55So6YeR5bqrIDwgc2hpbicneW91a2lua29cIDsKK+acieWQjeeEoeWunyA8IHl1dW1laW11aml0c3VcIDsKK+e1gui6q+S8muWToSA8IHNodXVzaGlua2FpaW5cIDsKK+eskeatouWNg+S4hyA8IHNob3VzaGlzZW5iYW5cIDsKK+aWh+WtpuWNmuWjqyA8IGJ1bmdha3VoYWthc2VcIDsKK+W6reWFiOebuOWgtCA8IG5pd2FzYWtpc291YmFcIDsKK+a2iOiyu+iAheWBtCA8IHNob3VoaXNoYWdhd2FcIDsKK+eyvuelnuani+mAoCA8IHNlaXNoaW5rb3V6b3VcIDsKK+mJhOmqqOW3peS6iyA8IHRla2tvdHN1a291amlcIDsKK+WbveWIqeawkeemjyA8IGtva3VyaW1pbnB1a3VcIDsKK+i7veS9u+a1ruiWhCA8IGtlaWNob3VmdWhha3VcIDsKK+ayluepjeW5s+mHjiA8IGNodXVzZWtpaGVpeWFcIDsKK+mFqui+suijveWTgSA8IHJha3Vub3VzZWloaW5cIDsKK+isnee9quW6g+WRiiA8IHNoYXphaWtvdWtva3VcIDsKK+WvjOWbveW8t+WFtSA8IGZ1a29rdWt5b3VoZWlcIDsKK+WklumDreWbo+S9kyA8IGdhaWtha3VkYW50YWlcIDsKK+WFseWQjOS8gealrSA8IGt5b3Vkb3VraWd5b3VcIDsKK+majue0muekvuS8miA8IGthaWt5dXVzaGFrYWlcIDsKK+WvvuWkluaUv+etliA8IHRhaWdhaXNlaXNha3VcIDsKK+eyvumciuS/oeS7sCA8IHNlaXJlaXNoaW5rb3VcIDsKK++8p++8oueQhuirliA8IGppXCDMhGJpXCDMhHJpcm9uXCA7CivmmKXpoqjpp5jolakgPCBzaHVucHV1dGFpdG91XCA7CivmrbvliJHln7fooYwgPCBzaGlrZWlzaGlra291XCA7CivkuozogIXmip7kuIAgPCBuaXNoYXRha3VpdHN1XCA7CivphbjmgKflj43lv5wgPCBzYW5zZWloYW4nJ25vdVwgOwor5qC454iG55m6IDwga2FrdWJha3VoYXRzdVwgOwor5rC06YGT5paZ6YeRIDwgc3VpZG91cnlvdWtpblwgOwor56m65rCX5Yqb5a2mIDwga3V1a2lyaWtpZ2FrdVwgOwor5ZWG5aOy5rCX6LOqIDwgc2hvdWJhaWthdGFnaVwgOwor6KiY6Yyy5paH5a2mIDwga2lyb2t1YnVuZ2FrdVwgOwor56ym5Y+35aSJ5o+b5ZmoIDwgZnVnb3VoZW5rYW5raVwgOwor5b285pa55q2k5pa5IDwgYWNoaXJha29jaGlyYVwgOwor56uL6Lqr5Ye65LiWIDwgcmlzc2hpbnNodXNzZVwgOwor5q2j6YeR6YqA6KGMIDwgc2hvdWtpbmdpbmtvdVwgOwor5YWx5riI5LqL5qWtIDwga3lvdXNhaWppZ3lvdVwgOwor5YWI6KGM5oqA6KGTIDwgc2Vua291Z2lqdXRzdVwgOwor5Zuz5pu455uu6YyyIDwgdG9zaG9tb2t1cm9rdVwgOwor6Ki85oug6Zqg5ruFIDwgc2hvdWtvaW5tZXRzdVwgOwor6YCB6YeR5bCP5YiH5omLIDwgc291a2lua29naXR0ZVwgOwor56u25LqJ6Zai5L+CIDwga3lvdXNvdWthbmtlaVwgOwor5b6X56Wo546HIDwgdG9rdWh5b3VyaXRzdVwgOwor6KGo5b2w5byPIDwgaHlvdXNob3VzaGlraVwgOwor5YWl5a2m5byPIDwgbnl1dWdha3VzaGlraVwgOwor5LqL5YmN5qSc6ZayIDwgaml6ZW5rZW4nJ2V0c3VcIDsKK+ihjOaUv+WHpuWIhiA8IGd5b3VzZWlzaG9idW5cIDsKK+WFqOmdouW6g+WRiiA8IHplbm1lbmtvdWtva3VcIDsKK+ezjiA8IHNlbmNoaW1laXRvcnVcIDsKK+WbveWLmemVt+WumCA8IGtva3VtdWNob3VrYW5cIDsKK+eyqCA8IGhla3V0b21lZXRvcnVcIDsKK+eyvuelnueXhemZoiA8IHNlaXNoaW5ieW91aW5cIDsKK+Wbm+WNgeS5neaXpSA8IHNoaWp1dWt1bmljaGlcIDsKK+adk+WtkOWumuimjyA8IHNoYWt1c2hpam91Z2lcIDsKK+WPr+WhkeeJqeizqiA8IGthc29idXNzaGl0c3VcIDsKK+eBsOeZveizqiA8IGthaWhha3VzaGl0c3VcIDsKK+WNiui+suWNiua8gSA8IGhhbicnbm91aGFuZ3lvXCA7Civpo5/nlKjmsrkgPCBzaG9rdXlvdWFidXJhXCA7Civogbfmpa3nmoQgPCBzaG9rdWd5b3V0ZWtpXCA7Civpo5/nlJ/mtLsgPCBzaG9rdXNlaWthdHN1XCA7CivmmrTpo7LmmrTpo58gPCBib3VpbmJvdXNob2t1XCA7CivnoJTnqbbliIbph44gPCBrZW5reXV1YnVuJyd5YVwgOwor5Lq65Y+j5a+G5bqmIDwgamlua291bWl0c3Vkb1wgOwor5Lq66Lqr5aOy6LK3IDwgamluc2hpbmJhaWJhaVwgOwor5q665Lq65pyq6YGCIDwgc2F0c3VqaW5taXN1aVwgOwor5Li45LiA5pyIIDwgbWFydWhpdG90c3VraVwgOwor6Laz5Yip5pmC5LujIDwgYXNoaWthZ2FqaWRhaVwgOwor5by+552A6Led6ZuiIDwgZGFuY2hha3VreW9yaVwgOwor6IG35qWt55eFIDwgc2hva3VneW91YnlvdVwgOwor5YuV54mp5qSc5p+7IDwgZG91YnV0c3VrZW5zYVwgOwor6Jas6aSM55mC5rOVIDwgeWFrdWppcnlvdWhvdVwgOwor5Lq66ZaT5Zu95a6dIDwgbmluZ2Vua29rdWhvdVwgOwor5Li45LiA5pelIDwgbWFydWljaGluaWNoaVwgOwor57eK6KaB5Zyw5b2iIDwga2luJyd5b3VjaGlrZWlcIDsKK+W4guWgtOaIkOmVtyA8IHNoaWpvdXNlaWNob3VcIDsKK+aMh+WQjeaKleelqCA8IHNoaW1laXRvdWh5b3VcIDsKK+WRiei2iuWQjOiInyA8IGdvZXRzdWRvdXNodXVcIDsKK+WuheWcsOmAoOaIkCA8IHRha3VjaGl6b3VzZWlcIDsKK+eyvuelnuWKtOWDjSA8IHNlaXNoaW5yb3Vkb3VcIDsKK+WutuaXj+ioiOeUuyA8IGthem9rdWtlaWtha3VcIDsKK+mWi+WPo+S4gOeVqiA8IGthaWtvdWljaGliYW5cIDsKK+ebtOezu+WNkeWxniA8IGNob2trZWloaXpva3VcIDsKK+WJsuizpuaWueW8jyA8IGthcHB1aG91c2hpa2lcIDsKK+avkueJqeWtpiA8IGRva3VidXRzdWdha3VcIDsKK+WLpOWKtOWkp+ihhiA8IGtpbnJvdXRhaXNodXVcIDsKK+acquWPjuWFpemHkSA8IG1pc2h1dW55dXVraW5cIDsKK+miqOS/l+WWtualrSA8IGZ1dXpva3VlaWd5b3VcIDsKK+awkeS/l+mfs+alvSA8IG1pbnpva3Vvbmdha3VcIDsKK+a1t+awtOa1tOWgtCA8IGthaXN1aXlva3Vqb3VcIDsKK+mAo+WQiOS9nOaIpiA8IHJlbmdvdXNha3VzZW5cIDsKK+S4oeiTi+aZguioiCA8IHJ5b3VidXRhZG9rZWlcIDsKK+S4u+Wuoui7ouWAkiA8IHNodWtha3V0ZW50b3VcIDsKK+WwseiBt+WFiCA8IHNodXVzaG9rdXNha2lcIDsKK+aQjeebiuWLmOWumiA8IHNvbicnZWtpa2Fuam91XCA7Civli5XlipvpmY3kuIsgPCBkb3VyeW9rdWtvdWthXCA7CivkuInop5Lpl5jkuokgPCBzYW5rYWt1dG91c291XCA7CivpgIDlrablh6bliIYgPCB0YWlnYWt1c2hvYnVuXCA7Civlrp/pqJPmnZDmlpkgPCBqaWtrZW56YWlyeW91XCA7Civlj6PntITmnZ8gPCBrdWNoaXlha3Vzb2t1XCA7Civlr77miKbou4rngavlmaggPCB0YWlzZW5zaGFrYWtpXCA7CivlvJfljJbmsLTntKDphbggPCBmdWtrYXN1aXNvc2FuXCA7Civph43opoHnlKPmpa0gPCBqdXV5b3VzYW5neW91XCA7CivmtrLkvZPnh4PmlpkgPCBla2l0YWluZW5yeW91XCA7CivkvJ3pgZPpm4bkvJogPCBkZW5kb3VzaHV1a2FpXCA7CivlhavpnaLlha3oh4IgPCBoYWNoaW1lbnJvcHBpXCA7Civlrp/lipvogIUgPCBqaXRzdXJ5b2t1c2hhXCA7CivmiY3msJfnhaXnmbogPCBzYWlraWthbnBhdHN1XCA7CivmhJ/mg4Xooajnj74gPCBrYW5qb3VoeW91Z2VuXCA7Civmuaflh7rph48gPCB5dXVzaHV0c3VyeW91XCA7CivkurrnqK7lt67liKUgPCBqaW5zaHVzYWJldHN1XCA7Civoi7Hlm73nmbrpn7MgPCBlaWtva3VoYXRzdW9uXCA7CivnhKHpmZDmlbDliJcgPCBtdWdlbnN1dXJldHN1XCA7Civnhp/mha7mlq3ooYwgPCBqdWt1cnlvZGFua291XCA7CivnrZLkupXnrZIgPCB0c3V0c3VpZHp1dHN1XCA7Civnm7TkuqTluqfmqJkgPCBjaG9ra291emFoeW91XCA7CivljJflpKrlubPmtIsgPCBraXRhdGFpaGVpeW91XCA7CivnlLflo7DlkIjllLEgPCBkYW5zZWlnYXNzaG91XCA7Civog4Pohbjnl4XlraYgPCBpY2hvdWJ5b3VnYWt1XCA7CivkuInop5LplqLkv4IgPCBzYW5rYWt1a2Fua2VpXCA7Civnm7joo5zmgKfljp/nkIYgPCBzb3Vob3NlaWdlbnJpXCA7CivokrjmsJfmqZ/plqLou4ogPCBqb3VraWtpa2Fuc2hhXCA7CivljZjni6zkvJroposgPCB0YW5kb2t1a2Fpa2VuXCA7CivkvJrloILlj7ggPCBrYWlkb3VkenVrYXNhXCA7CivplpPmrYfnhrEgPCBrYW5rZXRzdW5ldHN1XCA7CivosqHnlKPnm7jntpogPCB6YWlzYW5zb3V6b2t1XCA7CivkuIrmmbrlpKflraYgPCBqb3VjaGlkYWlnYWt1XCA7CivmlofljJbkuovmpa3pg6ggPCBidW5rYWppZ3lvdWJ1XCA7CivnhKHoqJjlkI3npL7lgrUgPCBtdWtpbWVpc2hhc2FpXCA7Civlg6flurXnlJ/mtLsgPCBzb3VhbnNlaWthdHN1XCA7Civms5XlvovnlKjoqp4gPCBob3VyaXRzdXlvdWdvXCA7Civpm4zpm4Tpgbjmip4gPCBzaGl5dXVzZW50YWt1XCA7Civnmb7oirHnuZrkubEgPCBoeWFra2FyeW91cmFuXCA7Civpn7Pmpb3nmYLms5UgPCBvbmdha3VyeW91aG91XCA7CivkvY/msJHnmbvpjLIgPCBqdXVtaW50b3Vyb2t1XCA7Civmlq3lsaTlhpnnnJ8gPCBkYW5zb3VzaGFzaGluXCA7CivljaDpoJjlnLDluK8gPCBzZW5yeW91Y2hpdGFpXCA7Civolqzlk4HkvJrnpL4gPCB5YWt1aGluZ2Fpc2hhXCA7Civlh7rlj6Poqr/mn7sgPCBkZWd1Y2hpY2hvdXNhXCA7CivlkIjlkIzmhbDpnIrnpa0gPCBnb3Vkb3VpcmVpc2FpXCA7Civog73li5XlhY3nlqsgPCBub3Vkb3VtZW4nJ2VraVwgOwor5Zyo55WZ6YKm5Lq6IDwgemFpcnl1dWhvdWppblwgOwor6bqm6JeB57Sw5belIDwgbXVnaXdhcmFzYWlrdVwgOwor5ZOy5a2m55qEIDwgdGV0c3VnYWt1dGVraVwgOwor5bel6Iq4576O6KGTIDwga291Z2VpYmlqdXRzdVwgOwor6Kqt5ZSH6KGTIDwgZG9rdXNoaW5qdXRzdVwgOwor6Iiq56m65pS75pKDIDwga291a3V1a291Z2VraVwgOwor6KO46Zu755CDIDwgaGFkYWthZGVua3l1dVwgOwor6YeN6YeP6YG45omLIDwganV1cnlvdXNlbnNodVwgOwor6LWk56uL57696J22IDwgYWthdGF0ZWhhY2hvdVwgOwor54Gr54G95aCx55+l5qmfIDwga2FzYWlob3VjaGlraVwgOwor6JuL55m96LOqIDwgdGFucGFrdXNoaXRzdVwgOwor5oSb6bOl6YCx6ZaTIDwgYWljaG91c2h1dWthblwgOwor5bel5qWt5YyW5a2mIDwga291Z3lvdWthZ2FrdVwgOwor5oqA6KGT5o+Q5pC6IDwgZ2lqdXRzdXRlaWtlaVwgOwor5Lit5oCn5a2Q5pifIDwgY2h1dXNlaXNoaXNlaVwgOwor5o6S5rOE54mpIDwgaGFpc2V0c3VidXRzdVwgOwor6aOf6IKJ55uuIDwgc2hva3VuaWt1bW9rdVwgOwor5YWs5YWx5LqL5qWtIDwga291a3lvdWppZ3lvdVwgOwor5LiK6LaK5pys57eaIDwgam91ZXRzdWhvbnNlblwgOwor5rS75YuV5YqbIDwga2F0c3Vkb3VyeW9rdVwgOwor54Sh5YSf5aWR57SEIDwgbXVzaG91a2VpeWFrdVwgOwor6Zu75rOi5o6i55+l5qmfIDwgZGVucGF0YW5jaGlraVwgOwor6ZaD5YWJ6Zu755CDIDwgc2Vua291ZGVua3l1dVwgOwor5Zu957GN6KiA6KqeIDwga29rdXNla2lnZW5nb1wgOwor5a6a5rip5YuV54mpIDwgdGVpb25kb3VidXRzdVwgOwor56m65YmN57W25b6MIDwga3V1emVuemV0c3Vnb1wgOwor5L6155Wl55qEIDwgc2hpbnJ5YWt1dGVraVwgOwor5q2m5Yqb5aSW5LqkIDwgYnVyeW9rdWdhaWtvdVwgOwor5Yed6ZuG5YqbIDwgZ3lvdXNodXVyeW9rdVwgOwor5oi457GN5oqE5pysIDwga29zZWtpc2hvdWhvblwgOwor5pyd6a6u5Y2K5bO2IDwgY2hvdXNlbmhhbnRvdVwgOwor5Y+v5aSJ5oq15oqX5ZmoIDwga2FoZW50ZWlrb3VraVwgOwor6Z2e5bi45Y+s6ZuGIDwgaGlqb3VzaG91c2h1dVwgOwor5YWo6Iis5YmN5ZOoIDwgemVucGFuemVuc2hvdVwgOwor5aSn5LmX5LuP5pWZIDwgZGFpam91YnVra3lvdVwgOwor5YiG5p6Q6Kmm6aiTIDwgYnVuc2VraXNoaWtlblwgOwor5YWs5YuZ5ZOh6Kmm6aiTIDwga291bXVpbnNoaWtlblwgOwor5bm96ZyK5bGL5pW3IDwgeXV1cmVpeWFzaGlraVwgOwor5pyJ55Sj6ZqO57SaIDwgeXV1c2Fua2Fpa3l1dVwgOwor5qip5Yqb5pS/5rK7IDwga2Vucnlva3VzZWlqaVwgOwor6ISF6L+r6Zu76KmxIDwga3lvdWhha3VkZW53YVwgOwor6Ii56I236Ki85Yi4IDwgZnVuYW5pc2hvdWtlblwgOwor5omL5peX5L+h5Y+3IDwgdGViYXRhc2hpbmdvdVwgOwor5qCE6aSK5aSx6Kq/IDwgZWl5b3VzaGl0Y2hvdVwgOwor5L2c5rOB5oyH5pWwIDwgc2Fra3lvdXNoaXN1dVwgOwor55u45LqS6YCa5L+hIDwgc291Z290c3V1c2hpblwgOwor6KGo5bGk6Zuq5bSpIDwgaHlvdXNvdW5hZGFyZVwgOwor54G95a6z5a++562WIDwgc2FpZ2FpdGFpc2FrdVwgOwor5LqL5a6f6Kq/5p+7IDwgamlqaXRzdWNob3VzYVwgOwor5pel57WM5paw6IGeIDwgbmlra2Vpc2hpbmJ1blwgOwor5Lit6ZaT6YG45oyZIDwgY2h1dWthbnNlbmt5b1wgOwor5biC6ZW36YG45oyZIDwgc2hpY2hvdXNlbmt5b1wgOwor5rKI6ZmN5rW35bK4IDwgY2hpbmtvdWthaWdhblwgOwor542F5a2Q6aCtIDwgc2hpc2hpZ2FzaGlyYVwgOwor5a6H5a6Z6aOb6KGM5aOrIDwgdWNodXVoaWtvdXNoaVwgOwor56S+5Lya56aP56WJIDwgc2hha2FpZnVrdXNoaVwgOwor6KuW5Yqf6KGM6LOeIDwgcm9ua291a291c2hvdVwgOwor5a6f6Le16Lqs6KGMIDwgamlzc2Vua3l1dWtvdVwgOwor6Kaz5a+f5YqbIDwga2Fuc2F0c3VyeW9rdVwgOwor5q2j5Ymv5LqM6YCaIDwgc2VpZnVrdW5pdHN1dVwgOwor5Lqk5oSf56We57WMIDwga291a2Fuc2hpbmtlaVwgOwor5raI6LK76Z2p5ZG9IDwgc2hvdWhpa2FrdW1laVwgOwor6ISx5Yqb5oSfIDwgZGF0c3VyeW9rdWthblwgOwor5bCC5Lu76Kyb5birIDwgc2VuJyduaW5rb3VzaGlcIDsKK+aUr+WHuumhjSA8IHNoaXNodXRzdWdha3VcIDsKK+Wkp+mHj+eUn+eUoyA8IHRhaXJ5b3VzZWlzYW5cIDsKK+acgOmrmOapn+WvhiA8IHNhaWtvdWtpbWl0c3VcIDsKK+euoeW8pualveazlSA8IGthbmdlbmdha3Vob3VcIDsKK+aWsOWTgeWQjOanmCA8IHNoaW5waW5kb3V5b3VcIDsKK+Wkp+iZkOauuiA8IGRhaWd5YWt1c2F0c3VcIDsKK+WJjea4oemHkSA8IG1hZXdhdGFzaGlraW5cIDsKK+eci+itt+WppuWtpumZoiA8IGthbmdvZnVnYWt1aW5cIDsKK+WCmeiNkuiyr+iThCA8IGJpa291Y2hvY2hpa3VcIDsKK+iWhOW/l+W8seihjCA8IGhha3VzaGlqYWtrb3VcIDsKK+WLpOWKtOmajue0miA8IGtpbnJvdWthaWt5dXVcIDsKK+S5s+eZveiJsiA8IG55dXVoYWt1c2hva3VcIDsKK+aXpeWNsOmWouS/giA8IG5pY2hpaW5rYW5rZWlcIDsKK+e1gualreW8jyA8IHNodXVneW91c2hpa2lcIDsKK+mVt+acn+ioiOeUuyA8IGNob3VraWtlaWtha3VcIDsKK+eIhueZuueahCA8IGJha3VoYXRzdXRla2lcIDsKK+S4jeaZguedgOmZuCA8IGZ1amljaGFrdXJpa3VcIDsKK+aOkuazhOWZqOWumCA8IGhhaXNldHN1a2lrYW5cIDsKK+iLseaWh+ino+mHiCA8IGVpYnVua2Fpc2hha3VcIDsKK+WFjeiyrOadoemghSA8IG1lbnNla2lqb3Vrb3VcIDsKK+mJhOmBk+e3mui3ryA8IHRldHN1ZG91c2Vucm9cIDsKK+WNgeWtl+i7jemojuWjqyA8IGp1dWppZ3Vua2lzaGlcIDsKK+aUu+aSg+aFi+WLoiA8IGtvdWdla2l0YWlzZWlcIDsKK+Wumuacn+aYh+e1piA8IHRlaWtpc2hvdWt5dXVcIDsKK+iomOi/sOaWh+azlSA8IGtpanV0c3VidW5wb3VcIDsKK+iHo+exjemZjeS4iyA8IHNoaW5zZWtpa291a2FcIDsKK+eCremFuOmjsuaWmSA8IHRhbnNhbicnaW5yeW91XCA7CivluILloLTmi6HlpKcgPCBzaGlqb3VrYWt1ZGFpXCA7Civnsr7lr4bmqZ/morAgPCBzZWltaXRzdWtpa2FpXCA7CivnhKHmqZ/pq5jliIblrZAgPCBtdWtpa291YnVuc2hpXCA7CivmqZ/li5Xorablr58gPCBraWRvdWtlaXNhdHN1XCA7CivmuIXlhYPnr4AgPCBraXlvbW90b2J1c2hpXCA7CivlubTplpPlj47nm4ogPCBuZW5rYW5zaHV1ZWtpXCA7Civku7Loo4Hoo4HlrpogPCBjaHV1c2Fpc2FpdGVpXCA7Civpm7fopqrniLYgPCBrYW1pbmFyaW95YWppXCA7CivlgbXlr5/opoHlk6EgPCB0ZWlzYXRzdXlvdWluXCA7CivnpZ7ntYzos6ogPCBzaGlua2Vpc2hpdHN1XCA7Civmlofol53mmKXnp4sgPCBidW5nZWlzaHVuanV1XCA7CivkurrlvaLoip3lsYUgPCBuaW5neW91c2hpYmFpXCA7CivmsLTkuK3nnLzpj6EgPCBzdWljaHV1bWVnYW5lXCA7Civlhazluo/oia/kv5cgPCBrb3Vqb3J5b3V6b2t1XCA7CivmjqXnnYDlipsgPCBzZXRjaGFrdXJ5b2t1XCA7CivkupTmnIjluZ8gPCBzYXRzdWtpbm9ib3JpXCA7CivlqZrliY3kuqTmuIkgPCBrb256ZW5rb3VzaG91XCA7CivlpKrpmb3pu5LngrkgPCB0YWl5b3Vrb2t1dGVuXCA7CivkuIrlvqHkuIDkurogPCBrYW1pZ29pY2hpbmluXCA7CivkuLvopoHlt6Xmpa0gPCBzaHV5b3Vrb3VneW91XCA7CivkuIvnrYnli5XniakgPCBrYXRvdWRvdWJ1dHN1XCA7CivpgIbovLjlh7ogPCBneWFrdXl1c2h1dHN1XCA7CivnmoTkuK3njocgPCB0ZWtpY2h1dXJpdHN1XCA7Civlu7roqK3osrsgPCBrZW5zZXRzdWhpeW91XCA7Civoh6XolqrlmJfog4YgPCBnYXNoaW5zaG91dGFuXCA7CivmjIfmj67miYDmvJTnv5IgPCBzaGlraWpvZW5zaHV1XCA7CivoqLrnmYLmlK/mj7QgPCBzaGlucnlvdXNoaWVuXCA7Civou6LlnLDnmYLppIogPCB0ZW5jaGlyeW91eW91XCA7CivkuIfog73pgbjmiYsgPCBiYW4nJ25vdXNlbnNodVwgOwor5pWZ5Lya6Z+z5qW9IDwga3lvdWthaW9uZ2FrdVwgOwor5Y2D6LyJ5LiA6YGHIDwgc2VuemFpaWNoaWd1dVwgOwor5bGI5oqY546HIDwga3Vzc2V0c3VyaXRzdVwgOwor5aOy6LK35aWR57SEIDwgYmFpYmFpa2VpeWFrdVwgOwor5L2P5a6F5Zyw5bivIDwganV1dGFrdWNoaXRhaVwgOwor5rib6YCf6KOF572uIDwgZ2Vuc29rdXNvdWNoaVwgOwor5L2P5a6F5ZWP6aGMIDwganV1dGFrdW1vbmRhaVwgOwor6Ii56ZW35a6kIDwgc2VuY2hvdXNoaXRzdVwgOwor5YWN55ar6KGA5riFIDwgbWVuJydla2lrZXNzZWlcIDsKK+aguOWPjeW/nOeCiSA8IGtha3VoYW4nJ25vdXJvXCA7CivkuLvmlZnlrqQgPCBzaHVreW91c2hpdHN1XCA7CivmlL7lsITnt5rlraYgPCBob3VzaGFzZW5nYWt1XCA7CivmtYHpgJrntYzot68gPCByeXV1dHN1dWtlaXJvXCA7CivkuozphbjljJbnqpLntKAgPCBuaXNhbmthY2hpc3NvXCA7CivlsIvluLjkuIDmp5ggPCBqaW5qb3VpY2hpeW91XCA7Civlm73mnInosqHnlKMgPCBrb2t1eXV1emFpc2FuXCA7CivluILmsJHpmo7ntJogPCBzaGltaW5rYWlreXV1XCA7CivoqIDoqp7nn6XorZggPCBnZW5nb2NoaXNoaWtpXCA7CivlhazlhbHmlL7pgIEgPCBrb3VreW91aG91c291XCA7CivlrqTlhoXmpb0gPCBzaGl0c3VuYWlnYWt1XCA7CivmlpHnirbntYTnuZQgPCBoYW5qb3Vzb3NoaWtpXCA7Civkurrmg4XoqbEgPCBuaW5qb3ViYW5hc2hpXCA7Civph43niIbmkoPmqZ8gPCBqdXViYWt1Z2VraWtpXCA7CivlqZrlpJbkuqTmuIkgPCBrb25nYWlrb3VzaG91XCA7Civku7Loo4Hoo4HliKQgPCBjaHV1c2Fpc2FpYmFuXCA7Civkvq/niLXlpKvkurogPCBrb3VzaGFrdWZ1amluXCA7Civmv4Pnt5HoibIgPCBub3VyeW9rdXNob2t1XCA7CivmnInoibLph47oj5wgPCB5dXVzaG9rdXlhc2FpXCA7Civpm4blm6PoqLToqJ8gPCBzaHV1ZGFuc29zaG91XCA7CivkuIDmrKHnlKPmpa0gPCBpY2hpamlzYW5neW91XCA7Civnt7Tnv5LkuI3otrMgPCByZW5zaHV1YnVzb2t1XCA7CivllYboiLnlrabmoKEgPCBzaG91c2VuZ2Fra291XCA7Civpuqbol4HonLvom4kgPCBtdWdpd2FyYXRvbmJvXCA7Civoh6rli5Xou4rpm7voqbEgPCBqaWRvdXNoYWRlbndhXCA7CivmnInpmZDpm4blkIggPCB5dXVnZW5zaHV1Z291XCA7Civov73liqDmlpnph5EgPCB0c3Vpa2FyeW91a2luXCA7CivOoOS4remWk+WtkCA8IHBhaWNodXVrYW5zaGlcIDsKK+mBoOmalOaVmeiCsiA8IGVua2FrdWt5b3Vpa3VcIDsKK+iEs+iEiumrhOa2siA8IG5vdXNla2l6dWlla2lcIDsKK+aDheWgseWPr+imluWMliA8IGpvdWhvdWthc2hpa2FcIDsKK+adseilv+WNl+WMlyA8IHRvdXphaW5hbmJva3VcIDsKK+ioseWuuee3mumHjyA8IGt5b3lvdXNlbnJ5b3VcIDsKK+ato+acreWApOautSA8IHNob3VmdWRhbmVkYW5cIDsKK+W/nOaOpeWupCA8IG91c2V0c3VzaGl0c3VcIDsKK+W3ruWIpemWoueojiA8IHNhYmV0c3VrYW56ZWlcIDsKK+S4reetieWtpuagoSA8IGNodXV0b3VnYWtrb3VcIDsKK+euoeW8pualveWboyA8IGthbmdlbmdha3VkYW5cIDsKK+S+teeVpeWbvSA8IHNoaW5yeWFrdWtva3VcIDsKK+WvhOeUn+eUn+eJqSA8IGtpc2Vpc2VpYnV0c3VcIDsKK+S4u+aoqeWbnuW+qSA8IHNodWtlbmthaWZ1a3VcIDsKK+S4oemDqOelnumBkyA8IHJ5b3VidXNoaW50b3VcIDsKK+S+jeawl+izqiA8IHNhbXVyYWlrYXRhZ2lcIDsKK+eUs+i+vOabuCA8IG1vdXNoaWtvbWlzaG9cIDsKK+e1ueW4g+S4gOW3uyA8IGtlbnB1aGl0b21ha2lcIDsKK+mBjuWcp+WvhuavlCA8IGthYXRzdW1pdHN1aGlcIDsKK+aRguawj++8ku+8kOW6piA8IHNlc3NoaW5panV1ZG9cIDsKK+iHqueEtumBuOaKniA8IHNoaXplbnNlbnRha3VcIDsKK+ebtOiqrOazlSA8IGNob2t1c2V0c3Vob3VcIDsKK+S4i+eUuumiqCA8IHNoaXRhbWFjaGlmdXVcIDsKK+WPjeW/nOmAn+W6piA8IGhhbicnbm91c29rdWRvXCA7CivlsI/lnovotaTlrrbomoogPCBrb2dhdGFha2FpZWthXCA7CivlgbXlr5/ooZvmmJ8gPCB0ZWlzYXRzdWVpc2VpXCA7Civpo5/kuK3mr5IgPCBzaG9rdWNodXVkb2t1XCA7CivmraPlia/orbDplbcgPCBzZWlmdWt1Z2ljaG91XCA7CivnlKPlh7rpq5ggPCBzYW5zaHV0c3VkYWthXCA7CivnpZ7liY3ntZDlqZogPCBzaGluemVua2Vra29uXCA7Civms5XnmoTmiYvmrrUgPCBob3V0ZWtpc2h1ZGFuXCA7CivkvZzmpa3poJjln58gPCBzYWd5b3VyeW91aWtpXCA7CivlubTph5HoqLzmm7ggPCBuZW5raW5zaG91c2hvXCA7CivkuqTpgJrlpqjlrrMgPCBrb3V0c3V1Ym91Z2FpXCA7CivnlLrmnZHlkIjkvbUgPCBjaG91c29uZ2FwcGVpXCA7CivmlZnkvJrml4vms5UgPCBreW91a2Fpc2VucG91XCA7CivluZXol6nkvZPliLYgPCBiYWt1aGFudGFpc2VpXCA7CivnrKzkuIDljbDosaEgPCBkYWlpY2hpaW5zaG91XCA7CivnnJ/nqbrljIXoo4UgPCBzaGlua3V1aG91c291XCA7Civnm6Pmn7voqLzot6EgPCBrYW5zYXNob3VzZWtpXCA7CivoqpjlsI7pm7vmtYEgPCB5dXVkb3VkZW5yeXV1XCA7Civlvqnml6fkvZzmpa0gPCBmdWtreXV1c2FneW91XCA7Civkvpvlh7rnsbMgPCBreW91c2h1dHN1bWFpXCA7CivmkI3lrrPos6DlhJ8gPCBzb25nYWliYWlzaG91XCA7Civmg7Plg4/lporlqKAgPCBzb3V6b3VuaW5zaGluXCA7CivomZrlv4Plnabmh5AgPCBreW9zaGludGFua2FpXCA7CivogJDpnIfmp4vpgKAgPCB0YWlzaGlua291em91XCA7CivmnInpmZDntJrmlbAgPCB5dXVnZW5reXV1c3V1XCA7CivlopfoqK3njocgPCB6b3VzZXRzdXJpdHN1XCA7Civlm73lnJ/oqIjnlLsgPCBrb2t1ZG9rZWlrYWt1XCA7CivnlJ/lrZjnq7bkuokgPCBzZWl6b25reW91c291XCA7CivntZDlqZrmiqvpnLLlrrQgPCBrZWtrb25oaXJvdWVuXCA7CivluILmsJHpnanlkb0gPCBzaGltaW5rYWt1bWVpXCA7CivlnKflipvpjYsgPCBhdHN1cnlva3VuYWJlXCA7CivlpKfntbHpoJjpgbggPCBkYWl0b3VyeW91c2VuXCA7Civoo5znv5LmlZnogrIgPCBob3NodXVreW91aWt1XCA7Civlj7jku6TplbflrpggPCBzaGlyZWljaG91a2FuXCA7Civos4Pph5HkvZPns7sgPCBjaGluZ2ludGFpa2VpXCA7CivmtbfkuIroh6rooZvpmoogPCBrYWlqb3VqaWVpdGFpXCA7CivlhajkurrmlZnogrIgPCB6ZW5qaW5reW91aWt1XCA7CivlrpjmiL/plbflrpggPCBrYW5ib3VjaG91a2FuXCA7CivkvIHmpa3np5jlr4YgPCBraWd5b3VoaW1pdHN1XCA7Civmrrrkurrkuovku7YgPCBzYXRzdWppbmppa2VuXCA7Civlm6PmoJfnnLwgPCBkb25ndXJpbWFuYWtvXCA7CivlnKflipvph5wgPCBhdHN1cnlva3VnYW1hXCA7Civlh7bmgqrniq/nvaogPCBreW91YWt1aGFuemFpXCA7CivlpKnnhLbos4fmupAgPCB0ZW4nJ25lbnNoaWdlblwgOwor55m+5aeT5LiA5o+GIDwgaHlha3VzaG91aWtraVwgOwor5Y6f5qGI5aeU5ZOh5LyaIDwgZ2VuJydhbicnaWlua2FpXCA7CivmsJflr4blrqQgPCBraW1pdHN1c2hpdHN1XCA7Civnt4/lkIjlpKflraYgPCBzb3Vnb3VkYWlnYWt1XCA7Civku4/poILlsIrli50gPCBidWNob3Vzb25zaG91XCA7CivljYPlt67kuIfliKUgPCBzZW5zYWJhbmJldHN1XCA7CivpgbjmiYvmqKnoqablkIggPCBzZW5zaHVrZW5qaWFpXCA7CivntrLnirbntYTnuZQgPCBtb3Vqb3Vzb3NoaWtpXCA7CivnrKzkuIDpg6jplbcgPCBkYWlpY2hpYnVjaG91XCA7Civmupbmupbmsbrli50gPCBqdW5qdW5rZXNzaG91XCA7CivlpKflkozmsJHml48gPCB5YW1hdG9taW56b2t1XCA7Civlv5zmjqXkv4IgPCBvdXNldHN1Z2FrYXJpXCA7CivlnLDmrrvlpInli5UgPCBjaGlrYWt1aGVuZG91XCA7CivosqHmlL/mlLnpnakgPCB6YWlzZWlrYWlrYWt1XCA7CivlhbHlkIzoqIjnrpcgPCBreW91ZG91a2Vpc2FuXCA7CivlpbPmiL/oqZ4gPCBueW91Ym91a290b2JhXCA7CivlhpnnnJ/pm7vpgIEgPCBzaGFzaGluZGVuc291XCA7CivliIbliJflvI8gPCBidW5yZXRzdXNoaWtpXCA7CivkuI3oia/oqLrmlq0gPCBmdXJ5b3VzaGluZGFuXCA7CivmsLTnlKPlpKflraYgPCBzdWlzYW5kYWlnYWt1XCA7CivljZjlvI/ngavlsbEgPCB0YW5zaGlraWthemFuXCA7CivkuIDliIbkuIDljpggPCBpY2hpYnVpY2hpcmluXCA7Civlrp/lnLDmpJzoqLwgPCBqaXRjaGlrZW5zaG91XCA7CivljJfmuIXkuovlpIkgPCBob2t1c2hpbmppaGVuXCA7CivkurrpnaLnjaPlv4MgPCBuaW5tZW5qdXVzaGluXCA7Civopqrku7vlvI8gPCBzaGluJyduaW5zaGlraVwgOwor6KiI55S75q616ZqOIDwga2Vpa2FrdWRhbmthaVwgOwor55Sf5rS75YqbIDwgc2Vpa2F0c3VyeW9rdVwgOwor56S+5ZOh6aOf5aCCIDwgc2hhaW5zaG9rdWRvdVwgOwor6YO15L6/5paZ6YeRIDwgeXV1YmlucnlvdWtpblwgOwor5LqU5Y2B5LiJ5qyhIDwgZ29qdXVzYW50c3VnaVwgOwor5YSq5Yud5Yqj5pWXIDwgeXV1c2hvdXJlcHBhaVwgOwor5b+r6YCf5YiX6LuKIDwga2Fpc29rdXJlc3NoYVwgOwor6Zuj5rCR5p2h57SEIDwgbmFubWluam91eWFrdVwgOwor5Zu96Zqb5pS+6YCBIDwga29rdXNhaWhvdXNvdVwgOwor5YWt5Y2B5L2Z5beeIDwgcm9rdWp1dXlvc2h1dVwgOwor5oCl6KGM5YiX6LuKIDwga3l1dWtvdXJlc3NoYVwgOwor5pel5ZKM6KaL5Li7576pIDwgaGl5b3JpbWlzaHVnaVwgOwor5qOu5p6X5Zyw5bivIDwgc2hpbnJpbmNoaXRhaVwgOwor6Y6W5Zu95pS/562WIDwgc2Frb2t1c2Vpc2FrdVwgOwor5YW36LGh576O6KGTIDwgZ3VzaG91YmlqdXRzdVwgOwor5oeQ55+z5paZ55CGIDwga2Fpc2VraXJ5b3VyaVwgOwor57Ch5piT6aOf5aCCIDwga2FuJydpc2hva3Vkb3VcIDsKK+aal+m7kuWkp+mZuCA8IGFua29rdXRhaXJpa3VcIDsKK+mnhemVt+WupCA8IGVraWNob3VzaGl0c3VcIDsKK+WPjeWLlemdqeWRvSA8IGhhbmRvdWtha3VtZWlcIDsKK+WFreaguea4hea1hCA8IHJva2tvbnNob3Vqb3VcIDsKK+WVhualreS4u+e+qSA8IHNob3VneW91c2h1Z2lcIDsKK+S7ruijheiInui4j+S8miA8IGthc291YnV0b3VrYWlcIDsKK+S/oemgvOmGuOaIkCA8IHNoaW5yYWlqb3VzZWlcIDsKK+WFseWQjOWjsOaYjiA8IGt5b3Vkb3VzZWltZWlcIDsKK+mBruWFieWZqOWcn+WBtiA8IHNoYWtvdWtpZG9ndXVcIDsKK+WJsuW8leWIh+espiA8IHdhcmliaWtpa2lwcHVcIDsKK+S4i+awtOWHpueQhuWgtCA8IGdlc3Vpc2hvcmlqb3VcIDsKK+WGt+WNtOacn+mWkyA8IHJlaWt5YWt1a2lrYW5cIDsKK+aBmeiZqyA8IHRzdXRzdWdhbXVzaGlcIDsKK+S5neatu+S4gOeUnyA8IGt5dXVzaGlpc3Nob3VcIDsKK+S4reiPr+awkeWbvSA8IGNodXVrYW1pbmtva3VcIDsKK+WQiOeQhuS4u+e+qeiAhSA8IGdvdXJpc2h1Z2lzaGFcIDsKK+aLoeWjsOijhee9riA8IGtha3VzZWlzb3VjaGlcIDsKK+mBk+i3r+W7uuiorSA8IGRvdXJva2Vuc2V0c3VcIDsKK+S6uumAoOWuneefsyA8IGppbnpvdWhvdXNla2lcIDsKK+i8uOWHuuS/nemZuiA8IHl1c2h1dHN1aG9rZW5cIDsKK+W/heS/ruenkeebriA8IGhpc3NodXVrYW1va3VcIDsKK+e1puS4juaJgOW+lyA8IGt5dXV5b3Nob3Rva3VcIDsKK+attOWPsuWtpua0viA8IHJla2lzaGlnYWt1aGFcIDsKK+etieW3ruaVsOWIlyA8IHRvdXNhc3V1cmV0c3VcIDsKK+WQm+WtkOixueWkiSA8IGt1bnNoaWh5b3VoZW5cIDsKK+S4i+ihqOWPgueFpyA8IGthaHlvdXNhbnNob3VcIDsKK+WLouWKm+evhOWbsiA8IHNlaXJ5b2t1aGFuJydpXCA7CivpgJrosqjmlL/nrZYgPCB0c3V1a2FzZWlzYWt1XCA7Civni6zljaDkvIHmpa0gPCBkb2t1c2Vua2lneW91XCA7CivnibnmqKnpmo7ntJogPCB0b2trZW5rYWlreXV1XCA7CivmraPopo/mm7Lnt5ogPCBzZWlraWt5b2t1c2VuXCA7Civlgo3ogbTnhKHmlpkgPCBib3VjaG91bXVyeW91XCA7CivnlKPmpa3os4fmnKwgPCBzYW5neW91c2hpaG9uXCA7Civmpb3lmajmvJTlpY/ogIUgPCBnYWtraWVuc291c2hhXCA7Civnq4vnn7Ppm7vmqZ8gPCB0YXRlaXNoaWRlbmtpXCA7CivlpJzplpPkuK3lraYgPCB5YWthbmNodXVnYWt1XCA7Civosr/mmJPmkanmk6YgPCBib3Vla2ltYXNhdHN1XCA7CivlubTovKrlj7LlraYgPCBuZW5yaW5zaGlnYWt1XCA7Civlrrbku5jlqJggPCBpZXRzdWtpbXVzdW1lXCA7CivmqZ/morDnv7voqLMgPCBraWthaWhvbicneWFrdVwgOwor6YeR56eR546J5p2hIDwga2lua2FneW9rdWpvdVwgOwor5rCR6ZaT55mC5rOVIDwgbWlua2FucnlvdWhvdVwgOwor5oOF5rOB6Ki85ougIDwgam91a3lvdXNob3Vrb1wgOwor5Y+k5YW45Li7576p6ICFIDwga290ZW5zaHVnaXNoYVwgOwor5b+D5oK45Lqi6YCyIDwgc2hpbmtpa291c2hpblwgOwor5Zu95Zyf5Zyw55CG6ZmiIDwga29rdWRvY2hpcmlpblwgOwor5a6a5oCn5YiG5p6QIDwgdGVpc2VpYnVuc2VraVwgOwor5biC6KGX5YyW5Yy65Z+fIDwgc2hpZ2Fpa2FrdWlraVwgOwor54m56Kix5oqA6KGTIDwgdG9ra3lvZ2lqdXRzdVwgOwor5aCx6YGT5YaZ55yfIDwgaG91ZG91c2hhc2hpblwgOwor5pyA5L2O6LOD6YeRIDwgc2FpdGVpY2hpbmdpblwgOwor55m+5pel6I2JIDwgaHlha3VuaWNoaXNvdVwgOwor556s6ZaT6Zu75patIDwgc2h1bmthbmRlbmRhblwgOwor5bm06aCt5pWZ5pu4IDwgbmVudG91a3lvdXNob1wgOwor5p2x5rSL5q616YCaIDwgdG91eW91ZGFudHN1dVwgOwor54us5Y2g6LOH5pysIDwgZG9rdXNlbnNoaWhvblwgOwor5p2x5pa55pWZ5LyaIDwgdG91aG91a3lvdWthaVwgOwor6Zu75rCX5qmf6Zai6LuKIDwgZGVua2lraWthbnNoYVwgOwor6Ieq6Kaa55eH54q2IDwgamlrYWt1c2hvdWpvdVwgOwor5aSp5L2T6Kaz5risIDwgdGVudGFpa2Fuc29rdVwgOwor576k6ZuG6KGM5YuVIDwgZ3Vuc2h1dWtvdWRvdVwgOwor6KGG5Lq655Kw6KaWIDwgc2h1dWppbmthbnNoaVwgOwor6L+36LWw56We57WMIDwgbWVpc291c2hpbmtlaVwgOwor5oim55Wl5YW15ZmoIDwgc2Vucnlha3VoZWlraVwgOwor5YWI5Yi25pS75pKDIDwgc2Vuc2Vpa291Z2VraVwgOwor5pyJ57Wm5LyR5pqHIDwgeXV1a3l1dWt5dXVrYVwgOwor6KaL5a2m5peF6KGMIDwga2VuZ2FrdXJ5b2tvdVwgOwor5Zu95YaF57WM5riIIDwga29rdW5haWtlaXphaVwgOwor5a++56m65bCE5pKDIDwgdGFpa3V1c2hhZ2VraVwgOwor5q+U6LyD5a++54WnIDwgaGlrYWt1dGFpc2hvdVwgOwor5biC5Lit6YqA6KGMIDwgc2hpY2h1dWdpbmtvdVwgOwor5a6a54K56Kaz5risIDwgdGVpdGVua2Fuc29rdVwgOwor5L+D5oiQ5qC95Z+5IDwgc29rdXNlaXNhaWJhaVwgOwor5Lih5LiJ5pelIDwgcnlvdXNhbicnbmljaGlcIDsKK+izg+mHkeagvOW3riA8IGNoaW5naW5rYWt1c2FcIDsKK+aUr+mFjemajue0miA8IHNoaWhhaWthaWt5dXVcIDsKK+S6jOmHjemcsuWHuiA8IG5panV1cm9zaHV0c3VcIDsKK+WLleiEiOehrOWMliA8IGRvdW15YWt1a291a2FcIDsKK+mao+aOpemDqOmaiiA8IHJpbnNldHN1YnV0YWlcIDsKK+W7uuioreapn+aisCA8IGtlbnNldHN1a2lrYWlcIDsKK+S4iuWxpOmajue0miA8IGpvdXNvdWthaWt5dXVcIDsKK+S4ieaLneS5neaLnSA8IHNhbnBhaWt5dXVoYWlcIDsKK+mWi+agoeiomOW/teaXpSA8IGthaWtvdWtpbmVuYmlcIDsKK+S4jeWPr+efpeirluiAhSA8IGZ1a2FjaGlyb25zaGFcIDsKK+aXl+ihjOWIlyA8IGhhdGFneW91cmV0c3VcIDsKK+eJueauiuazleS6uiA8IHRva3VzaHVob3VqaW5cIDsKK+Wjq+mtguWVhuaJjSA8IHNoaWtvbnNob3VzYWlcIDsKK+WCt+eXheaNleiZnCA8IHNob3VieW91aG9yeW9cIDsKK+eEoeaAp+eUn+auliA8IG11c2Vpc2Vpc2hva3VcIDsKK+ecieWUvueJqSA8IG1heXV0c3ViYW1vbm9cIDsKK+iyoeaUv+aUv+etliA8IHphaXNlaXNlaXNha3VcIDsKK+mZuOS4iuertuaKgCA8IHJpa3Vqb3VreW91Z2lcIDsKK+WNmuimp+W8t+iomCA8IGhha3VyYW5reW91a2lcIDsKK+S6uuaoqeS+teWusyA8IGppbmtlbnNoaW5nYWlcIDsKK+e3j+mgmOaBr+WtkCA8IHNvdXJ5b3VtdXN1a29cIDsKK+mAsuihjOS/giA8IHNoaW5rb3VnYWthcmlcIDsKK+iPnOmjn+S4u+e+qSA8IHNhaXNob2t1c2h1Z2lcIDsKK+eEoeiomOWQjeWCteaoqSA8IG11a2ltZWlzYWlrZW5cIDsKK+i1pOWklueZuuaVoyA8IHNla2lnYWloYXNzYW5cIDsKK+ihm+aYn+mAmuS/oSA8IGVpc2VpdHN1dXNoaW5cIDsKK+S6uuWToeWJiua4myA8IGppbicnaW5zYWt1Z2VuXCA7Civli5XmpI3niakgPCBkb3VzaG9rdWJ1dHN1XCA7CivnjoflhYjouqzooYwgPCBzb3NzZW5reXV1a291XCA7CivlhY3nqI7miYDlvpcgPCBtZW56ZWlzaG90b2t1XCA7CivpmLLnuK7liqDlt6UgPCBib3VzaHVrdWtha291XCA7CivopIflvI/nsL/oqJggPCBmdWt1c2hpa2lib2tpXCA7Civosqzku7vliIbmi4UgPCBzZWtpbmluYnVudGFuXCA7CivmrablipvooYzkvb8gPCBidXJ5b2t1a291c2hpXCA7CivnlarntYTnt6jmiJAgPCBiYW5ndW1paGVuc2VpXCA7Civlhajms6Llj5fkv6HmqZ8gPCB6ZW5wYWp1c2hpbmtpXCA7Civlv4XopoHniakgPCBoaXRzdXlvdWJ1dHN1XCA7CivkvJHmga/mmYLplpMgPCBreXV1c29rdWppa2FuXCA7CivkuInou7jlrqQgPCBzYW5qaWt1c2hpdHN1XCA7Civkuozph43plqLnr4AgPCBuaWp1dWthbnNldHN1XCA7CivlvoXlkIjlrqQgPCBtYWNoaWFpc2hpdHN1XCA7CivljZrnianlraYgPCBoYWt1YnV0c3VnYWt1XCA7CivoprPlhYnnlKPmpa0gPCBrYW5rb3VzYW5neW91XCA7CivntZDntK7ooZMgPCBrZXNzYXRzdWp1dHN1XCA7CivljZrlvJXml4HoqLwgPCBoYWt1aW5ib3VzaG91XCA7Civmt7flhaXniakgPCBrb24nJ255dXVidXRzdVwgOwor5YWx6LKp5Lya56S+IDwga3lvdWhhbmdhaXNoYVwgOwor5o+a6Zm46Imm6ImHIDwgeW91cmlrdWthbnRlaVwgOwor5YWs5a6z5a++562WIDwga291Z2FpdGFpc2FrdVwgOwor6Zm95YuV5L2c5oimIDwgeW91ZG91c2FrdXNlblwgOwor5bmz5ZKM5Li7576p6ICFIDwgaGVpd2FzaHVnaXNoYVwgOwor6KqY5ouQ54qv5Lq6IDwgeXV1a2FpaGFuJyduaW5cIDsKK+WGheiHk+eWvuaCoyA8IG5haXpvdXNoaWtrYW5cIDsKK+S/ruWjq+irluaWhyA8IHNodXVzaGlyb25idW5cIDsKK+mrmOetieaVmeiCsiA8IGtvdXRvdWt5b3Vpa3VcIDsKK+a4rOmHj+apn+aisCA8IHNva3VyeW91a2lrYWlcIDsKK+mciuaEn+WVhuazlSA8IHJlaWthbnNob3Vob3VcIDsKK+WRqueJqeW0h+aLnSA8IGp1YnV0c3VzdXVoYWlcIDsKK+aWh+S6uuWiqOWuoiA8IGJ1bmppbmJva2tha3VcIDsKK+aJv+efpeS5i+WKqSA8IHNob3VjaGlub3N1a2VcIDsKK+i2iuW5tOiNieacrCA8IGV0c3VuZW5zb3Vob25cIDsKK+mdkuWkqeS6leS6iOeulyA8IGFvdGVuam91eW9zYW5cIDsKK+eKtuazgeaEj+WRs+irliA8IGpvdWt5b3VpbWlyb25cIDsKK+mAmuWLpOWIl+i7iiA8IHRzdXVraW5yZXNzaGFcIDsKK+WHuuW4reeOhyA8IHNodXNzZWtpcml0c3VcIDsKK+eyvumAsuaWmeeQhiA8IHNob3VqaW5yeW91cmlcIDsKK+S4u+WKm+mDqOmaiiA8IHNodXJ5b2t1YnV0YWlcIDsKK+a8ouWtl+aWh+WMluWcjyA8IGthbmppYnVua2FrZW5cIDsKK+mDt+Wcn+aWh+WtpiA8IGt5b3Vkb2J1bmdha3VcIDsKK+ebtOaOpeeojiA8IGNob2t1c2V0c3V6ZWlcIDsKK+WksealreiAhSA8IHNoaXRzdWd5b3VzaGFcIDsKK+atr+enkeaKgOW3peWjqyA8IHNoaWthZ2lrb3VzaGlcIDsKK+acn+acq+ippumokyA8IGtpbWF0c3VzaGlrZW5cIDsKK+mAo+mCpummluebuCA8IHJlbnBvdXNodXNob3VcIDsKK+aDheWgseW3peWtpiA8IGpvdWhvdWtvdWdha3VcIDsKK+eJp+eVnOalrSA8IGJva3VjaGlrdWd5b3VcIDsKK+S4g+WIhuS4ieWIhiA8IHNoaWNoaWJ1c2FuYnVcIDsKK+WPguiAg+izh+aWmSA8IHNhbmtvdXNoaXJ5b3VcIDsKK+a1t+S4iui8uOmAgei3ryA8IGthaWpvdXl1c291cm9cIDsKK+eLrOaWreWwguihjCA8IGRva3VkYW5zZW5rb3VcIDsKK+WFpeWtpuiAg+afuyA8IG55dXVnYWt1a291c2FcIDsKK+mBrembo+S/oeWPtyA8IHNvdW5hbnNoaW5nb3VcIDsKK+a1geWLleizh+eUoyA8IHJ5dXVkb3VzaGlzYW5cIDsKK+ani+evieeJqSA8IGtvdWNoaWt1YnV0c3VcIDsKK+S4i+Wbm+WNiuacnyA8IHNoaW1vc2hpaGFua2lcIDsKK+mBuOaKnuenkeebriA8IHNlbnRha3VrYW1va3VcIDsKK+ioreeri+iAhSA8IHNldHN1cml0c3VzaGFcIDsKK+aDheWgseaknOe0oiA8IGpvdWhvdWtlbnNha3VcIDsKK+mgguS4iuS8muirhyA8IGNob3Vqb3VrYWlkYW5cIDsKK+WFsea4iOe1hOWQiCA8IGt5b3VzYWlrdW1pYWlcIDsKK+WPguiAg+abuOebriA8IHNhbmtvdXNob21va3VcIDsKK+ayu+WuieitpuWvnyA8IGNoaWFua2Vpc2F0c3VcIDsKK+iIiOalremKgOihjCA8IGtvdWd5b3VnaW5rb3VcIDsKK+iqv+WBnOWnlOWToeS8miA8IGNob3V0ZWlpaW5rYWlcIDsKK+ihjOaUv+abuOWjqyA8IGd5b3VzZWlzaG9zaGlcIDsKK+mWoumAo+mgheebriA8IGthbnJlbmtvdW1va3VcIDsKK+mbo+ihjOiLpuihjCA8IG5hbmd5b3VrdWd5b3VcIDsKK+ihjOaWueS4jeaYjuiAhSA8IHl1a3VlZnVtZWlzaGFcIDsKK+mgkOmHkemAmuW4syA8IHlva2ludHN1dWNob3VcIDsKK+e2suiGnOWJpemboiA8IG1vdW1ha3VoYWt1cmlcIDsKK+i8uOWHuuaknOafuyA8IHl1c2h1dHN1a2Vuc2FcIDsKK+engeWFsSA8IHdhdGFrdXNoaWRvbW9cIDsKK+aMh+WumumKmOafhCA8IHNoaXRlaW1laWdhcmFcIDsKK+mFkuaxoOiCieaelyA8IHNodWNoaW5pa3VyaW5cIDsKK+WEquetieiznueKtiA8IHl1dXRvdXNob3Vqb3VcIDsKK+m7hOmHkeWIhuWJsiA8IG91Z29uYnVua2F0c3VcIDsKK+S/rue5leW3peWgtCA8IHNodXV6ZW5rb3Vqb3VcIDsKK+i2s+mVt+icgiA8IGFzaGluYWdhYmFjaGlcIDsKK+S6jOiAhemBuOS4gCA8IG5pc2hhc2VuJydpdHN1XCA7CivnspjmtrLos6ogPCBuZW4nJ2VraXNoaXRzdVwgOwor56eB5LqLIDwgd2F0YWt1c2hpZ290b1wgOwor6I+M6aGe5a2m6ICFIDwga2lucnVpZ2FrdXNoYVwgOwor5aSW5Zu96YO15L6/IDwgZ2Fpa29rdXl1dWJpblwgOwor5Lqk6YCa5Zyw542EIDwga291dHN1dWppZ29rdVwgOwor6ZuG5Zuj57WQ5amaIDwgc2h1dWRhbmtla2tvblwgOwor5oSb546p5YuV54mpIDwgYWlnYW5kb3VidXRzdVwgOwor6ZaT5o6l6Kmx5rOVIDwga2Fuc2V0c3V3YWhvdVwgOwor5a2m55Sf6YOo6ZW3IDwgZ2FrdXNlaWJ1Y2hvdVwgOwor6Zuy5b2i5a6a6KaPIDwga3Vtb2dhdGFqb3VnaVwgOwor5YCL5Lq655qE5oSP6KaLIDwga29qaW50ZWtpaWtlblwgOwor5bGL5aSW5bqD5ZGKIDwgb2t1Z2Fpa291a29rdVwgOwor5Lqh5ZG95paH5a2mIDwgYm91bWVpYnVuZ2FrdVwgOwor5YyX5Zu96LWk5rW36ICBIDwgaG9ra29rdWFrYWViaVwgOwor6YCj57aa6Zai5pWwIDwgcmVuem9rdWthbnN1dVwgOwor5bm96ZyK6KmxIDwgeXV1cmVpYmFuYXNoaVwgOwor562G6Leh6ZGR5a6aIDwgaGlzc2VraWthbnRlaVwgOwor5ZCM6LOq55qEIDwgZG91c2hpdHN1dGVraVwgOwor5buD54mp5Yip55SoIDwgaGFpYnV0c3VyaXlvdVwgOwor6LuK5Lih5Lya56S+IDwgc2hhcnlvdWdhaXNoYVwgOwor6bq76Jas5bi457+SIDwgbWF5YWt1am91c2h1dVwgOwor5LiN5b6X6KaB6aCYIDwgZnV0b2t1eW91cnlvdVwgOwor5bGx5bKz5Zyw5bivIDwgc2FuZ2FrdWNoaXRhaVwgOwor5ZWP6aGM6aCY5Z+fIDwgbW9uZGFpcnlvdWlraVwgOwor5Z+3552A5b+DIDwgc2h1dWNoYWt1c2hpblwgOwor5YCL5Yil6LKp5aOyIDwga29iZXRzdWhhbmJhaVwgOwor5bmz6KGh5oSf6KaaIDwgaGVpa291a2Fua2FrdVwgOwor5YaF5Zu96YO15L6/IDwgbmFpa29rdXl1dWJpblwgOwor5Yqb6Zai5L+CIDwgY2hpa2FyYWthbmtlaVwgOwor5aCx6YGT55Wq57WEIDwgaG91ZG91YmFuZ3VtaVwgOwor57SZ5LiK6KiI55S7IDwgc2hpam91a2Vpa2FrdVwgOwor5LqM6YeN5Zu957GNIDwgbmlqdXVrb2t1c2VraVwgOwor6KGM5pS/6Ki06KifIDwgZ3lvdXNlaXNvc2hvdVwgOwor57W257iB5oq15oqXIDwgemV0c3VlbnRlaWtvdVwgOwor5Yy/5ZCN5om56KmVIDwgdG9rdW1laWhpaHlvdVwgOwor6ZW35pyf5Zu95YK1IDwgY2hvdWtpa29rdXNhaVwgOwor5YWJ57ea55mC5rOVIDwga291c2VucnlvdWhvdVwgOwor5rWB5YuV6LOH5pysIDwgcnl1dWRvdXNoaWhvblwgOwor6Ki85Yi45biC5aC0IDwgc2hvdWtlbnNoaWpvdVwgOwor54OP6Iq75rKZ5pGp5aaZ546LIDwgdXN1c2FtYW15b3VvdVwgOwor5bu66Kit5bel5LqLIDwga2Vuc2V0c3Vrb3VqaVwgOwor5aSJ5oWL5oCn5qyyIDwgaGVudGFpc2VpeW9rdVwgOwor56m65Lit57Sw6I+MIDwga3V1Y2h1dXNhaWtpblwgOwor5Luj6YeR5byV5o+bIDwgZGFpa2luaGlraWthZVwgOwor6Iy255Wq54uC6KiAIDwgY2hhYmFua3lvdWdlblwgOwor5Lqk6YCa6KaP5YmHIDwga291dHN1dWtpc29rdVwgOwor54mp6LOq55qEIDwgYnVzc2hpdHN1dGVraVwgOwor54++54mp55u45aC0IDwgZ2VuYnV0c3Vzb3ViYVwgOwor5p2f57ib55CG6KuWIDwgc29rdWJha3VyaXJvblwgOwor5YWs5q2j6Ki85pu4IDwga291c2Vpc2hvdXNob1wgOwor5ZCM55uf5oCg5qWtIDwgZG91bWVpdGFpZ3lvdVwgOwor6KGM5YuV5pa56YedIDwga291ZG91aG91c2hpblwgOwor6YGp5q2j5L6h5qC8IDwgdGVraXNlaWtha2FrdVwgOwor5Lq656iu5pS56ImvIDwgamluc2h1a2FpcnlvdVwgOwor5L2/6YCU5LiN5piO6YeRIDwgc2hpdG9mdW1laWtpblwgOwor5Y2K5rWB5YuV5L2TIDwgaGFucnl1dWRvdXRhaVwgOwor5pmu5LuP5oim5LqJIDwgZnVmdXRzdXNlbnNvdVwgOwor6JK455m654axIDwgam91aGF0c3VuZXRzdVwgOwor5LqM6YeN57WQ5ZCIIDwgbmlqdXVrZXRzdWdvdVwgOwor5YWN6LKs54m55qipIDwgbWVuc2VraXRva2tlblwgOwor5oey5oiS5Yem5YiGIDwgY2hvdWthaXNob2J1blwgOwor5LiN5b+D5b6X6ICFIDwgZnVrb2tvcm9lbW9ub1wgOwor6LGq5pS+56OK6JC9IDwgZ291aG91cmFpcmFrdVwgOwor6Imm56Cy5bCE5pKDIDwga2FucG91c2hhZ2VraVwgOwor6Zai5pWw6Kej5p6QIDwga2Fuc3V1a2Fpc2VraVwgOwor5rCR5Li75YyW6YGL5YuVIDwgbWluc2h1a2F1bmRvdVwgOwor5aSp5rCX55u46KuH5omAIDwgdGVua2lzb3VkYW5qb1wgOwor6YCa5L+h6Kyb5bqnIDwgdHN1dXNoaW5rb3V6YVwgOwor5aSW6LKo542y5b6XIDwgZ2Fpa2FrYWt1dG9rdVwgOwor5Y+C5Yqg5biM5pyb6ICFIDwgc2Fua2FraWJvdXNoYVwgOwor5oeQ55aR5Li7576p6ICFIDwga2FpZ2lzaHVnaXNoYVwgOwor6Zu75rCX5rq25o6lIDwgZGVua2l5b3VzZXRzdVwgOwor5ZCu55mw6IiQ55eUIDwgc2VuJyd5b3VzaGlqaVwgOwor5Yq05YON5p2h5Lu2IDwgcm91ZG91am91a2VuXCA7CivlpJblm73oiKrot68gPCBnYWlrb2t1a291cm9cIDsKK+S8nemAgemAn+W6piA8IGRlbnNvdXNva3Vkb1wgOwor5LiA5pys6Kq/5a2QIDwgaXBwb25kam91c2hpXCA7CivlopzokL3kuovmlYUgPCB0c3VpcmFrdWppa29cIDsKK+iWqeaRqemWpSA8IHNhdHN1bWFiYXRzdVwgOwor6KaW6IG0546HIDwgc2hpY2hvdXJpdHN1XCA7Civnt5rpppnoirHngasgPCBzZW5rb3VoYW5hYmlcIDsKK+adseS6rOmDveaUvyA8IHRvdWt5b3V0b3NlaVwgOwor6LuN5LqL55Sj5qWtIDwgZ3VuamlzYW5neW91XCA7Civku6PnkIbniafluKsgPCBkYWlyaWJva3VzaGlcIDsKK+S4ieWNgeS4ieaJgCA8IHNhbmp1dXNhbnNob1wgOwor5LiA5qyh57ea6LyqIDwgaWNoaWppc2VucmluXCA7CivnlbPmsLTnt7QgPCB0YXRhbWlzdWlyZW5cIDsKK+S+oeagvOWkieWLlSA8IGtha2FrdWhlbmRvdVwgOwor5oKg5oKg6Ieq6YGpIDwgeXV1eXV1aml0ZWtpXCA7CivlsbHntKvmsLTmmI4gPCBzYW5zaGlzdWltZWlcIDsKK+W5leWDmumVtyA8IGJha3VyeW91Y2hvdVwgOwor56m66Ly46LKo54mpIDwga3V1eXVrYW1vdHN1XCA7CivoprPlhYnos4fmupAgPCBrYW5rb3VzaGlnZW5cIDsKK+imluimmuiogOiqniA8IHNoaWtha3VnZW5nb1wgOwor6bq76Jas5bi455SoIDwgbWF5YWt1am91eW91XCA7Civml6XmnJ3ovp7lhbggPCBuaXRjaG91aml0ZW5cIDsKK+W6l+mgreWCteWIuCA8IHRlbnRvdXNhaWtlblwgOwor54mI5qip5omA5pyJIDwgaGFua2Vuc2hveXV1XCA7CivkuIDms4rooYzou40gPCBpcHBha3Vrb3VndW5cIDsKK+mdkuepuuW4guWgtCA8IGFvem9yYXNoaWpvdVwgOwor6ZaL56Wo57WQ5p6cIDwga2FpaHlvdWtla2thXCA7CivljZjni6zorJvlkowgPCB0YW5kb2t1a291d2FcIDsKK+i/keS7o+enkeWtpiA8IGtpbmRhaWthZ2FrdVwgOwor54Sh56We6KuW6ICFIDwgbXVzaGlucm9uc2hhXCA7CivluILorbDkvJrorbDlk6EgPCBzaGlnaWthaWdpaW5cIDsKK+ePvuWun+eahCA8IGdlbmppdHN1dGVraVwgOwor55S75LiA55qEIDwga2FrdWl0c3V0ZWtpXCA7CivmnInlvaLosqHnlKMgPCB5dXVrZWl6YWlzYW5cIDsKK+ays+WyuOauteS4mCA8IGthZ2FuZGFua3l1dVwgOwor5aSq6Zm95YWJ57eaIDwgdGFpeW91a291c2VuXCA7CivljbjphZLosqkgPCBvcm9zaGlzaHVoYW5cIDsKK+WEhOS4h+mVt+iAhSA8IG9rdW1hbmNob3VqYVwgOwor5YyW57Kn55+z6bm4IDwga2VzaG91c2Vra2VuXCA7CivoqIDoqp7nmYLms5UgPCBnZW5nb3J5b3Vob3VcIDsKK+WuieWumuaIkOmVtyA8IGFudGVpc2VpY2hvdVwgOwor56We5qip5pS/5rK7IDwgc2hpbmtlbnNlaWppXCA7Civopqrml6XlrrYgPCBzaGluJyduaWNoaWthXCA7Civoh7PkuIrlkb3ku6QgPCBzaGlqb3VtZWlyZWlcIDsKK+WGheWHuuihgCA8IG5haXNodWtrZXRzdVwgOwor5Lit5aSu5aeU5ZOh5LyaIDwgY2h1dW91aWlua2FpXCA7CivmvaTnrYbmlpkgPCBqdW5waXRzdXJ5b3VcIDsKK+mfs+alvee+juWtpiA8IG9uZ2FrdWJpZ2FrdVwgOwor5Yq05YON5aSn6IejIDwgcm91ZG91ZGFpamluXCA7CivnlLDoiI7kvo0gPCBpbmFrYXphbXVyYWlcIDsKK+mZjeagvOS6uuS6iyA8IGtvdWtha3VqaW5qaVwgOwor6YeR6YeY5rWBIDwga2FuYWt1Z2lyeXV1XCA7CivnqpLntKDogqXmlpkgPCBjaGlzc29oaXJ5b3VcIDsKK+i7jemDqOeLrOijgSA8IGd1bmJ1ZG9rdXNhaVwgOwor5YWs5YuZ55a+55eFIDwga291bXVzaGlwcGVpXCA7CivoirHngavlpKfkvJogPCBoYW5hYml0YWlrYWlcIDsKK+WJteS9nOWKmyA8IHNvdXNha3VyeW9rdVwgOwor5Y2z5oim5YqbIDwgc29rdXNlbnJ5b2t1XCA7CivooYzpm7LmtYHmsLQgPCBrb3V1bnJ5dXVzdWlcIDsKK+WPjeWvvuioiuWVjyA8IGhhbnRhaWppbm1vblwgOwor5pa55ZCR6Lui5o+bIDwgaG91a291dGVua2FuXCA7CivnhKHnt5rmioDooZMgPCBtdXNlbmdpanV0c3VcIDsKK+iJruS4i+iJruS4iiA8IGdvbmthZ29uc2hvdVwgOwor5ous57SE562LIDwga2F0c3V5YWt1a2luXCA7CivmnKrmnaXlrozkuoYgPCBtaXJhaWthbnJ5b3VcIDsKK+WJjemAsumDqOmaiiA8IHplbnNoaW5idXRhaVwgOwor5pei57SE5YiG5pWwIDwga2l5YWt1YnVuc3V1XCA7CivoqqzlvpflipsgPCBzZXR0b2t1cnlva3VcIDsKK+WFrOWWtuS9j+WuhSA8IGtvdWVpanV1dGFrdVwgOwor55uj5p+75aCx5ZGKIDwga2Fuc2Fob3Vrb2t1XCA7CivpkJjmkp7loIIgPCBrYW5ldHN1a2lkb3VcIDsKK+aciOe1jOWRqOacnyA8IGdla2tlaXNodXVraVwgOwor56eR5a2m6ZuR6KqMIDwga2FnYWt1emFzc2hpXCA7CivpgJrosqjntbHlkIggPCB0c3V1a2F0b3Vnb3VcIDsKK+WvvuWcsOmAn+W6piA8IHRhaWNoaXNva3Vkb1wgOwor5a6Y5YOa5Li7576pIDwga2FucnlvdXNodWdpXCA7Civml6flvaLlvI8gPCBreXV1a2Vpc2hpa2lcIDsKK+m7hOeOieefsyA8IGtvdWd5b2t1c2VraVwgOwor5b6h6Kq/5a2Q6ICFIDwgb2Nob3VzaGltb25vXCA7Civlrp/pqJPlrqQgPCBqaWtrZW5zaGl0c3VcIDsKK+S6jOi2s+S4ieaWhyA8IG5pc29rdXNhbm1vblwgOwor6YW45oCn6IKl5paZIDwgc2Fuc2VpaGlyeW91XCA7CivoqIDmlofkuIDoh7QgPCBnZW5idW4nJ2l0Y2hpXCA7Civlr4bmvIHogIUgPCBtaXRzdXJ5b3VzaGFcIDsKK+WFseWQjOeuoeeQhiA8IGt5b3Vkb3VrYW5yaVwgOwor6IOD6YW46YGO5aSa55eHIDwgaXNhbmthdGFzaG91XCA7CivmtbflpJbml4XooYwgPCBrYWlnYWlyeW9rb3VcIDsKK+S4jeWvqeWwi+WVjyA8IGZ1c2hpbmppbm1vblwgOwor6LKs5Lu76Lui5auBIDwgc2VraW5pbnRlbmthXCA7CivplbfmnJ/miYvlvaIgPCBjaG91a2l0ZWdhdGFcIDsKK+a9ruaxkOihqCA8IGNob3VzZWtpaHlvdVwgOwor57Wm5LiO5rC05rqWIDwga3l1dXlvc3VpanVuXCA7Civnmb3nhrHmiKYgPCBoYWt1bmV0c3VzZW5cIDsKK+W+k+WxnuevgCA8IGp1dXpva3VzZXRzdVwgOwor5bCR5pWw57K+6YutIDwgc2hvdXN1dXNlaWVpXCA7Civou6Lmj5vnpL7lgrUgPCB0ZW5rYW5zaGFzYWlcIDsKK+ayv+WyuOa8gealrSA8IGVuZ2FuZ3lvZ3lvdVwgOwor5oq85YiH5bizIDwgb3NoaWtpcmljaG91XCA7CivpibHnianlraYgPCBrb3VidXRzdWdha3VcIDsKK+S6pOmam+ekvuS8miA8IGtvdXNhaXNoYWthaVwgOwor5Yi26ZmQ5LqL6aCFIDwgc2VpZ2Vuamlrb2t1XCA7Civlt6blv4PlrqQgPCBzYXNoaW5zaGl0c3VcIDsKK+WIkeS6i+iyrOS7uyA8IGtlaWppc2VraW5pblwgOwor5re35ZCI54Gr6JasIDwga29uZ291a2F5YWt1XCA7CivmpbXlvanoibIgPCBnb2t1c2Fpc2hpa2lcIDsKK+WPjOWLmeWlkee0hCA8IHNvdW11a2VpeWFrdVwgOwor6IKd5b+D6KaBIDwga2Fuamlua2FuYW1lXCA7Civlj6TlhbjlrabogIUgPCBrb3Rlbmdha3VzaGFcIDsKK+eUn+a0u+aJtuWKqSA8IHNlaWthdHN1ZnVqb1wgOwor5bu656+J5qWtIDwga2VuY2hpa3VneW91XCA7Civmi5Lpo5/nl4cgPCBreW9zaG9rdXNob3VcIDsKK+eUqOebiueJqeaoqSA8IHlvdWVraWJ1a2tlblwgOwor54ax6Zu75a++IDwgbmV0c3VkZW50c3VpXCA7Civlh7rli6TmmYLplpMgPCBzaHVra2luamlrYW5cIDsKK+mOluS8neWLlSA8IGt1c2FyaWRlbmRvdVwgOwor5ouh5aSn546HIDwga2FrdWRhaXJpdHN1XCA7Civnm7jplqLkv4LmlbAgPCBzb3VrYW5rZWlzdXVcIDsKK+mDveW/mCA8IG1peWFrb3dhc3VyZVwgOwor56S+5Lya5L+d6ZqcIDwgc2hha2FpaG9zaG91XCA7CivljZTlkIzli5XkvZwgPCBreW91ZG91ZG91c2FcIDsKK+aDhee3kue6kue2vyA8IGpvdWNob3Rlbm1lblwgOwor56uL5oay5ZCb5Li7IDwgcmlra2Vua3Vuc2h1XCA7Civni4Lkv6HnmoQgPCBreW91c2hpbnRla2lcIDsKK+ihqOePvuWKmyA8IGh5b3VnZW5yeW9rdVwgOwor5Lit56uL6Z2iIDwgY2h1dXJpdHN1bWVuXCA7Civml4XliLjmn7voqLwgPCByeW9rZW5zYXNob3VcIDsKK+iyneauu+iZqyA8IGthaWdhcmFtdXNoaVwgOwor6JC96Iqx54u86JeJIDwgcmFra2Fyb3V6ZWtpXCA7CivkuIDnlarmmJ8gPCBpY2hpYmFuYm9zaGlcIDsKK+WMluWtpuijveWTgSA8IGthZ2FrdXNlaWhpblwgOwor6YGp5oCn5qSc5p+7IDwgdGVraXNlaWtlbnNhXCA7Civos4PlgJ/kurogPCBjaGluc2hha3VuaW5cIDsKK+eUn+WRveenkeWtpiA8IHNlaW1laWthZ2FrdVwgOwor5bel5L2c5qmf5qKwIDwga291c2FrdWtpa2FpXCA7Civlm7Pmm7jppKjlraYgPCB0b3Nob2thbmdha3VcIDsKK+S6uuWPo+WVj+mhjCA8IGppbmtvdW1vbmRhaVwgOwor5b6h55So5a2m6ICFIDwgZ295b3VnYWt1c2hhXCA7CivmsJflnKfphY3nva4gPCBraWF0c3VoYWljaGlcIDsKK+aZgumZkOeIhuW8viA8IGppZ2VuYmFrdWRhblwgOwor6Ieq54S25a++5pWwIDwgc2hpemVudGFpc3V1XCA7CivlpJzplpPmkq7lvbEgPCB5YWthbnNhdHN1ZWlcIDsKK+elnue1jOe5iue2rSA8IHNoaW5rZWlzZW4nJ2lcIDsKK+a1geWLleiyoOWCtSA8IHJ5dXVkb3VmdXNhaVwgOwor5pyA6auY6KiY6YyyIDwgc2Fpa291a2lyb2t1XCA7CivmlrDopo/kuovmpa0gPCBzaGlua2lqaWd5b3VcIDsKK+Wnk+WQjeWIpOaWrSA8IHNlaW1laWhhbmRhblwgOwor6KOF6aO+55qEIDwgc291c2hva3V0ZWtpXCA7Civlj43lr77ntabku5ggPCBoYW50YWlreXV1ZnVcIDsKK+a+seeyieizqiA8IGRlbnB1bnNoaXRzdVwgOwor5pWX5oim5oqV5omLIDwgaGFpc2VudG91c2h1XCA7CivmrabmvKLkuInpjq4gPCBidWthbnNhbmNoaW5cIDsKK+mbu+awl+mZsOaAp+W6piA8IGRlbmtpaW5zZWlkb1wgOwor5LiA5pyd5LiA5aSVIDwgaXRjaG91aXNzZWtpXCA7CivnhKHoqJjlkI3poJDph5EgPCBtdWtpbWVpeW9raW5cIDsKK+WutuWGheW3pealrSA8IGthbmFpa291Z3lvdVwgOwor5Y2D5pel6I2JIDwgc2VuJyduaWNoaXNvdVwgOwor5rWF5a2m6I+y5omNIDwgc2VuZ2FrdWhpc2FpXCA7Civmt7flkIjntYzmuIggPCBrb25nb3VrZWl6YWlcIDsKK+W4guawkeWbo+S9kyA8IHNoaW1pbmRhbnRhaVwgOwor5LyB5qWt6YCj5ZCIIDwga2lneW91cmVuZ291XCA7CivmmYLku6PmhJ/oppogPCBqaWRhaWthbmtha3VcIDsKK+S4g+S6lOiqvyA8IHNoaWNoaWdvY2hvdVwgOwor5Yip5bex5Li7576p6ICFIDwgcmlrb3NodWdpc2hhXCA7CivlhbHlkIzlm6DlrZAgPCBreW91ZG91aW5zaGlcIDsKK+S4gOaEj+WwguW/gyA8IGljaGlpc2Vuc2hpblwgOwor5qyn57Gz6Ku45Zu9IDwgb3ViZWlzaG9rb2t1XCA7Civpnanlkb3pgYvli5UgPCBrYWt1bWVpdW5kb3VcIDsKK+e0lOeyi+WfuemkiiA8IGp1bnN1aWJhaXlvdVwgOwor5YaN5LiJ5YaN5ZubIDwgc2Fpc2Fuc2Fpc2hpXCA7CivkuK3lm73mnI0gPCBjaHV1Z29rdWZ1a3VcIDsKK+W9ouiAjOS4iuWtpiA8IGtlaWppam91Z2FrdVwgOwor5Zyw5pa55Zuj5L2TIDwgY2hpaG91ZGFudGFpXCA7CivlhazmsJHlrabmoKEgPCBrb3VtaW5nYWtrb3VcIDsKK+S+oeagvOe1seWItiA8IGtha2FrdXRvdXNlaVwgOwor5oSP5Yyg55m76YyyIDwgaXNob3V0b3Vyb2t1XCA7Civpq5jlpKnljp8gPCB0YWthbWFnYWhhcmFcIDsKK+WPl+WLleWWq+eFmSA8IGp1ZG91a2l0c3VlblwgOwor6KO957y25bel5aC0IDwgc2Vpa2Fua291am91XCA7Civlm7rlvaLnh4PmlpkgPCBrb2tlaW5lbnJ5b3VcIDsKK+mDteS+v+eCuuabvyA8IHl1dWJpbmthd2FzZVwgOwor5YuY5a6a5L+CIDwga2Fuam91Z2FrYXJpXCA7Civlj6PpoK3lvIHoq5YgPCBrb3V0b3ViZW5yb25cIDsKK+eri+S9k+WMluWtpiA8IHJpdHRhaWthZ2FrdVwgOwor5ouY5p2f5YqbIDwga291c29rdXJ5b2t1XCA7Civlk4HooYzmlrnmraMgPCBoaW5rb3Vob3VzZWlcIDsKK+ayiOa+seeJqSA8IGNoaW5kZW5idXRzdVwgOwor6YGT5qiZIDwgbWljaGlzaGlydWJlXCA7Civlmajos6rnmoQgPCBraXNoaXRzdXRla2lcIDsKK+iyqeWjsuS+oeagvCA8IGhhbmJhaWtha2FrdVwgOwor5oGL5oSb57WQ5amaIDwgcmVuJydhaWtla2tvblwgOwor5YyX57Gz5Zyf5Lq6IDwgaG9rdWJlaWRvamluXCA7CivljYPml6XntIUgPCBzZW4nJ25pY2hpa291XCA7Civoh6jmtbflrabmoKEgPCByaW5rYWlnYWtrb3VcIDsKK+S4gOiqnuS4gOiqniA8IGljaGlnb2ljaGlnb1wgOwor5Zu95a625YWs5YuZ5ZOhIDwga29ra2Frb3VtdWluXCA7CivljYrlrpjljYrmsJEgPCBoYW5rYW5oYW5taW5cIDsKK+W7uuevieWtpiA8IGtlbmNoaWt1Z2FrdVwgOwor5pWX6KGA55eHIDwgaGFpa2V0c3VzaG91XCA7CivlpKflm73kuLvnvqkgPCB0YWlrb2t1c2h1Z2lcIDsKK+a0i+acjeeuquespSA8IHlvdWZ1a3VkYW5zdVwgOwor5LiA5pa56YCa6KGMIDwgaXBwb3V0c3V1a291XCA7Civlj4LogIPmlofnjK4gPCBzYW5rb3VidW5rZW5cIDsKK+S/oeS7sOeuh+adoSA8IHNoaW5rb3VrYWpvdVwgOwor6L6756S+IDwgdHN1aml5YXNoaXJvXCA7CivljYHkuIDmnIggPCBqdXVpY2hpZ2F0c3VcIDsKK+iii+aIuOajmiA8IGZ1a3Vyb3RvZGFuYVwgOwor5oud54mp5pWZIDwgaGFpYnV0c3VreW91XCA7CivmsJHplpPos4fmnKwgPCBtaW5rYW5zaGlob25cIDsKK+W+qeiukOW/gyA8IGZ1a3VzaHV1c2hpblwgOwor5LiA5rGB5LiA6I+cIDwgaWNoaWp1dWlzc2FpXCA7CivljYHnqK7nq7bmioAgPCBqaXNzaHVreW91Z2lcIDsKK+aXp+W5tOacqyA8IGt5dXVuZW5tYXRzdVwgOwor5aSx6IG36ICFIDwgc2hpc3Nob2t1c2hhXCA7CivlhoXlibLlvJUgPCB1Y2hpd2FyaWJpa2lcIDsKK+W4jOWcn+mhnuWFg+e0oCA8IGtpZG9ydWlnZW5zb1wgOwor5bmz5ZKM5YWx5a2YIDwgaGVpd2FreW91em9uXCA7CivljZjnt5rpgYvou6IgPCB0YW5zZW4nJ3VudGVuXCA7Civkuovlvozmib/oq74gPCBqaWdvc2hvdWRha3VcIDsKK+WHuueUo+eOhyA8IHNodXNzYW5yaXRzdVwgOwor5YaZ5a6f55qEIDwgc2hhaml0c3V0ZWtpXCA7CivmmKDlg4/kv6Hlj7cgPCBlaXpvdXNoaW5nb3VcIDsKK+WuieWFqOWvvuetliA8IGFuemVudGFpc2FrdVwgOwor55Sf55Sj57WE5ZCIIDwgc2Vpc2Fua3VtaWFpXCA7CivmjqXntprpp4UgPCBzZXRzdXpva3Vla2lcIDsKK+WxheS9j+awtOa6liA8IGt5b2p1dXN1aWp1blwgOwor6KO96YmE5qWtIDwgc2VpdGV0c3VneW91XCA7CivnrpfnlKjmlbDlrZcgPCBzYW4nJ3lvdXN1dWppXCA7Civlh7rnlJ/njocgPCBzaHVzc2Vpcml0c3VcIDsKK+WnieWmueS8muekviA8IHNoaW1haWdhaXNoYVwgOwor6YG45oyZ5YWs5aCxIDwgc2Vua3lva291aG91XCA7Civku4/lg4/kuozluqcgPCBidXRzdXpvdW5pemFcIDsKK+ims+WFieaXheihjCA8IGthbmtvdXJ5b2tvdVwgOwor56CU56m26Kqy6aGMIDwga2Vua3l1dWthZGFpXCA7Civph5Hmi77kuIflhoYgPCBraW5qdXVtYW4nJ2VuXCA7CivlsY7lsL/lh6bnkIYgPCBzaGlueW91c2hvcmlcIDsKK+edgOeJqeWnvyA8IGtpbW9ub3N1Z2F0YVwgOwor5ZWG5LqL5Lya56S+IDwgc2hvdWppZ2Fpc2hhXCA7CivnqY3mpbXnrZYgPCBzZWtreW9rdXNha3VcIDsKK+mbhuWQiOWgtOaJgCA8IHNodXVnb3ViYXNob1wgOwor5b2i5a656Kme5bm5IDwga2VpeW91c2hpa2FuXCA7CivmnaHku7blj43lsIQgPCBqb3VrZW5oYW5zaGFcIDsKK+Wwj+aWh+evgCA8IHNob3VidW5zZXRzdVwgOwor57WE57mU5YqbIDwgc29zaGlraXJ5b2t1XCA7Civkv6HlvpLkvJ3li5UgPCBzaGludG9kZW5kb3VcIDsKK+acieaWmemBk+i3ryA8IHl1dXJ5b3Vkb3Vyb1wgOwor5qWt5YuZ5aao5a6zIDwgZ3lvdW11Ym91Z2FpXCA7CivpmL/niYfkuK3mr5IgPCBhaGVuY2h1dWRva3VcIDsKK+e0sOiDnuiejeWQiCA8IHNhaWJvdXl1dWdvdVwgOwor5pat54ax5p2QIDwgZGFuJyduZXRzdXphaVwgOwor5ZCN5Lq65rCX6LOqIDwgbWVpamlua2F0YWdpXCA7Civpg7XmlL/lpKfoh6MgPCB5dXVzZWlkYWlqaW5cIDsKK+mbu+awl+aOg+mZpOapnyA8IGRlbmtpc291amlraVwgOwor5Lq65qip5pOB6K23IDwgamlua2VuJyd5b3Vnb1wgOwor5YWE5byf5Zan5ZipIDwga3lvdWRhaWdlbmthXCA7CivokZfkvZzniakgPCBjaG9zYWt1YnV0c3VcIDsKK+ebsua7heazlSA8IG1la3VyYW1lcHBvdVwgOwor5beh6Iiq6YCf5bqmIDwganVua291c29rdWRvXCA7CivkuIDlpJzlpKfoh6MgPCBpY2hpeWFkYWlqaW5cIDsKK+mZhOedgOWKmyA8IGZ1Y2hha3VyeW9rdVwgOwor542F5a2Q5aWu6L+FIDwgc2hpc2hpZnVuamluXCA7CivmvILmtYHmnKggPCBoeW91cnl1dWJva3VcIDsKK+e0s+Wjq+mdtCA8IHNoaW5zaGlndXRzdVwgOwor6Zao56eA5L2c5a62IDwga2Vpc2h1dXNha2thXCA7CivmtZrmuKvoiLkgPCBzaHVuc2V0c3VzZW5cIDsKK+a3seWxseeDjyA8IG1peWFtYWdhcmFzdVwgOwor5bCC6ZaA5a2m5qChIDwgc2VubW9uZ2Fra291XCA7CivmlLnpnanpgY7nqIsgPCBrYWlrYWt1a2F0ZWlcIDsKK+e3iuaApeaOque9riA8IGtpbmt5dXVzb2NoaVwgOwor55S756uc5aSp552bIDwgZ2FyeW91dGVuc2VpXCA7CivkuIDpgLLkuIDpgIAgPCBpc3NoaW4nJ2l0dGFpXCA7CivnlJ/oh63niakgPCBuYW1hZ3VzYW1vbm9cIDsKK+WumuW4uOeKtuaFiyA8IHRlaWpvdWpvdXRhaVwgOwor5a+p5Yik5b25IDwgc2hpbnBhbicneWFrdVwgOwor5oyH5pWw6Zai5pWwIDwgc2hpc3V1a2Fuc3V1XCA7CivnqY3mpbXnmoQgPCBzZWtreW9rdXRla2lcIDsKK+ippumok+enkeebriA8IHNoaWtlbmthbW9rdVwgOwor54G95a6z5pWR5YqpIDwgc2FpZ2Fpa3l1dWpvXCA7Civnmbrlo7LlhYMgPCBoYXRzdWJhaW1vdG9cIDsKK+WGtumHkeWtpuiAhSA8IHlha2luZ2FrdXNoYVwgOwor5Zyw5pa56YqA6KGMIDwgY2hpaG91Z2lua291XCA7Civku4/poILpnaIgPCBidXRjaG91ZHp1cmFcIDsKK+e1jOa4iOeZuuWxlSA8IGtlaXphaWhhdHRlblwgOwor54m55q6K5YW15ZmoIDwgdG9rdXNodWhlaWtpXCA7CivmtbfkuK3lhazlnJIgPCBrYWljaHV1a291ZW5cIDsKK+Wbo+S9k+aXheihjCA8IGRhbnRhaXJ5b2tvdVwgOwor5LiJ5Y+J56We57WMIDwgc2Fuc2FzaGlua2VpXCA7CivmrLLmsYLkuI3muoAgPCB5b2treXV1ZnVtYW5cIDsKK+iLpee0qyA8IHdha2FtdXJhc2FraVwgOwor57WC5aSc5Za25qWtIDwgc2h1dXlhZWlneW91XCA7CivlnLDkuIvntYTnuZQgPCBjaGlrYXNvc2hpa2lcIDsKK+iAkOmch+WutuWxiyA8IHRhaXNoaW5rYW9rdVwgOwor5q2j5LiJ6KeS5b2iIDwgc2Vpc2Fua2Fra2VpXCA7CivotbDooYzou4rnt5ogPCBzb3Vrb3VzaGFzZW5cIDsKK+epuuawl+iqv+aVtCA8IGt1dWtpY2hvdXNlaVwgOwor6YGL5YuV56We57WMIDwgdW5kb3VzaGlua2VpXCA7Civlj5fog47lkYrnn6UgPCBqdXRhaWtva3VjaGlcIDsKK+WPluW8lemrmCA8IHRvcmloaWtpZGFrYVwgOwor6Kej562U55So57SZIDwga2FpdG91eW91c2hpXCA7CivkuI3miYDlrZjogIUgPCBmdXNob3pvbm1vbm9cIDsKK+eVs+mwryA8IHRhdGFtaWl3YXNoaVwgOwor6ZeW5YWl6ICFIDwgY2hpbicnbnl1dXNoYVwgOwor5q+s5qCX6aCtIDwgaWdhZ3VyaWF0YW1hXCA7Civlu7rnr4nkuK0gPCBrZW5jaGlrdWNodXVcIDsKK+W8seWwj+WbvSA8IGpha3VzaG91a29rdVwgOwor5Yqg5bel55Sj5qWtIDwga2Frb3VzYW5neW91XCA7Civnmbrlo7LkuK0gPCBoYXRzdWJhaWNodXVcIDsKK+imj+agvOWOn+ahiCA8IGtpa2FrdWdlbicnYW5cIDsKK+WSjOmtgua0i+aJjSA8IHdha29uJyd5b3VzYWlcIDsKK+WPjeaIpumBi+WLlSA8IGhhbnNlbicndW5kb3VcIDsKK+iruOihjOeEoeW4uCA8IHNob2d5b3VtdWpvdVwgOwor5aWR57SE5pyf6ZaTIDwga2VpeWFrdWtpa2FuXCA7Civkurrmlofnp5HlraYgPCBqaW5idW5rYWdha3VcIDsKK+S4gOS6uuS4gOS6uiA8IGhpdG9yaWJpdG9yaVwgOwor5Yqx5oyv57Sg5a2QIDwgcmVpc2hpbnNvc2hpXCA7CivlvqnorpDliocgPCBmdWt1c2h1dWdla2lcIDsKK+Wuh+WumeW3peWtpiA8IHVjaHV1a291Z2FrdVwgOwor5LqL5YmN5pel5LuYIDwgaml6ZW5oaWR6dWtlXCA7Civoh6rlrrbmkp7nnYAgPCBqaWthZG91Y2hha3VcIDsKK+efs+eBsOiCpeaWmSA8IHNla2thaWhpcnlvdVwgOwor5YWs55uK5YSq5YWIIDwga291ZWtpeXV1c2VuXCA7CivkuIvku5XkuosgPCBzaGl0YXNoaWdvdG9cIDsKK+iWlOiWh+WNgeWtl+WboyA8IGJhcmFqdXVqaWRhblwgOwor5pel6LGK5pys57eaIDwgbmlwcG91aG9uc2VuXCA7Civnn7PmsrnljJblraYgPCBzZWtpeXVrYWdha3VcIDsKK+a2iOalteaApyA8IHNob3VreW9rdXNlaVwgOwor55u45a++6YCf5bqmIDwgc291dGFpc29rdWRvXCA7Civpu5LlrZflgJLnlKMgPCBrdXJvaml0b3VzYW5cIDsKK+mHkeasoOeXhSA8IGtpbmtldHN1YnlvdVwgOwor6IG06KaW546HIDwgY2hvdXNoaXJpdHN1XCA7CivlhoXmhoLlpJbmgqMgPCBuYWl5dXVnYWlrYW5cIDsKK+mWouaVsOepuumWkyA8IGthbnN1dWt1dWthblwgOwor5LuY5bGe55eF6ZmiIDwgZnV6b2t1YnlvdWluXCA7Civoh6jluorljLvlraYgPCByaW5zaG91aWdha3VcIDsKK+exs+a1t+WFtemaiiA8IGJlaWthaWhlaXRhaVwgOwor5rex5bGx5qGcIDwgbWl5YW1hemFrdXJhXCA7Civmi7HmiYvlgo3oprMgPCBrb3VzaHVib3VrYW5cIDsKK+mghuazlemXmOS6iSA8IGp1bnBvdXRvdXNvdVwgOwor6LOq5ZWP6ICFIDwgc2hpdHN1bW9uc2hhXCA7CivmiKbpl5jpmaPlnLAgPCBzZW50b3VqaW5jaGlcIDsKK+S4gOaMmeS4gOWLlSA8IGlra3lvaWNoaWRvdVwgOwor5aiB5ZqH5bCE5pKDIDwgaWtha3VzaGFnZWtpXCA7Civlrp/lnLDoqabpqJMgPCBqaXRjaGlzaGlrZW5cIDsKK+S4remWk+aZr+awlyA8IGNodXVrYW5rZWlraVwgOwor5Y+45pWZ5qip5bqnIDwgc2hpa3lvdWtlbnphXCA7CivnqbrntITmnZ8gPCBrYXJheWFrdXNva3VcIDsKK+WkieabtOWxpeattCA8IGhlbmtvdXJpcmVraVwgOwor6YCj5oim6YCj5pWXIDwgcmVuc2VucmVucGFpXCA7Civmra/mp73ohr/mvI8gPCBzaGlzb3Vub3Vyb3VcIDsKK+e0oOeykuWtkOirliA8IHNvcnl1dXNoaXJvblwgOwor6KGb5pif5Lit57aZIDwgZWlzZWljaHV1a2VpXCA7CivmjqXntproqZ4gPCBzZXRzdXpva3VzaGlcIDsKK+Wcp+W7tuW3peWgtCA8IGF0c3VlbmtvdWpvdVwgOwor5YiG5aip6Iel5bqKIDwgYnVuYmVuZ2FzaG91XCA7CivkurrpgKDntbnns7ggPCBqaW56b3VrZW5zaGlcIDsKK+eXlei3oeWZqOWumCA8IGtvbnNla2lraWthblwgOwor5oq56aaZ6a+oIDwgbWFra291a3VqaXJhXCA7Civom43lhYnloZfmlpkgPCBrZWlrb3V0b3J5b3VcIDsKK+WFrOWIpOiqv+afuyA8IGtvdWhhbmNob3VzYVwgOwor6YCj57Wh5Lya6K2wIDwgcmVucmFrdWthaWdpXCA7CivlhazmlZnopoHnkIYgPCBrb3VreW91eW91cmlcIDsKK+iKseebl+S6uiA8IGhhbmFudXN1Yml0b1wgOwor5Lm+54el5a6kIDwga2Fuc291c2hpdHN1XCA7CivpqqjokaPlk4HlupcgPCBrb3R0b3VoaW50ZW5cIDsKK+WNgeS6jOaMh+iFuCA8IGp1dW5pc2hpY2hvdVwgOwor55uy5pqmIDwgbWVrdXJhZ295b21pXCA7CivosqHmlL/llY/poYwgPCB6YWlzZWltb25kYWlcIDsKK+iogOiqnuWtpuiAhSA8IGdlbmdvZ2FrdXNoYVwgOwor5bC/5q+S55eHIDwgbnlvdWRva3VzaG91XCA7Civph5Hono3mqZ/plqIgPCBraW4nJ3l1dWtpa2FuXCA7CivnlLDlnJLoqankurogPCBkZW4nJ2Vuc2hpamluXCA7CivnrYnmr5TntJrmlbAgPCB0b3VoaWt5dXVzdXVcIDsKK+iFuem8kyA8IGhhcmF0c3VkenVtaVwgOwor6YGT5YyW5b256ICFIDwgZG91a2V5YWt1c2hhXCA7CivnmYfnmarnjokgPCBrYW5zaGFrdWRhbWFcIDsKK+a0pea0pea1pua1piA8IHRzdWR6dXVyYXVyYVwgOwor5Lm+54el5Zyw5bivIDwga2Fuc291Y2hpdGFpXCA7Civpn7Pnr4DkuLvpn7MgPCBvbnNldHN1c2h1b25cIDsKK+iIqua1t+aXpeiqjCA8IGtvdWthaW5pc3NoaVwgOwor5Y2K5bCB5bu65oCnIDwgaGFuaG91a2Vuc2VpXCA7CivmgYvmhJvplqLkv4IgPCByZW4nJ2Fpa2Fua2VpXCA7CivmiJDplbfpgY7nqIsgPCBzZWljaG91a2F0ZWlcIDsKK+mAo+W4r+S/neiovCA8IHJlbnRhaWhvc2hvdVwgOwor5b+D6IeT6IKl5aSnIDwgc2hpbnpvdWhpZGFpXCA7CivkuIDkurrniakgPCBpY2hpamluYnV0c3VcIDsKK+WNlOe0hOWbvSA8IGt5b3V5YWt1a29rdVwgOwor5aSp5aOM54Sh56quIDwgdGVuam91bXVreXV1XCA7CivlhajouqvpurvphZQgPCB6ZW5zaGlubWFzdWlcIDsKK+acq+S7o+eJqSA8IG1hdHN1ZGFpbW9ub1wgOwor5Zue57ea5Lqk5o+bIDwga2Fpc2Vua291a2FuXCA7CivovLjlhaXliLbpmZAgPCB5dW55dXVzZWlnZW5cIDsKK+WJg+WIgOiyoCA8IGthbWlzb3JpbWFrZVwgOwor5LiA6Laz5YWIIDwgaGl0b2FzaGlzYWtpXCA7CivmnpzniannsaAgPCBrdWRhbW9ub2thZ29cIDsKK+S4lumWk+ipsSA8IHNla2VuYmFuYXNoaVwgOwor6KGM5qW95a6iIDwga291cmFrdWt5YWt1XCA7Civmp4vpgKDkuI3ms4EgPCBrb3V6b3VmdWt5b3VcIDsKK+e0i+eZveidtiA8IG1vbnNoaXJvY2hvdVwgOwor5YWl5rmv5a6iIDwgbnl1dXRvdWt5YWt1XCA7Civoh6rlt7HlhbHlvbkgPCBqaWtva3lvdXlha3VcIDsKK+WvjOWjq+eBq+WxseW4ryA8IGZ1amlrYXphbnRhaVwgOwor6ZeH5Y+W5byVIDwgeWFtaXRvcmloaWtpXCA7Civmp4vmiJDliIblrZAgPCBrb3VzZWlidW5zaGlcIDsKK+aYn+W6p+aKleW9seapnyA8IHNlaXphdG91ZWlraVwgOwor5biC5aC05bGV6ZaLIDwgc2hpam91dGVua2FpXCA7CivlupfpoK3osqnlo7IgPCB0ZW50b3VoYW5iYWlcIDsKK+mAsuawtOW8jyA8IHNoaW5zdWlzaGlraVwgOwor5Luu5omV6YeRIDwga2FyaWJhcmFpa2luXCA7CivntJnlsZHnsaAgPCBrYW1pa3V6dWthZ29cIDsKK+S5vueHpeWNtSA8IGthbnNvdXRhbWFnb1wgOwor5ZCI5ZSx6ZqK5ZOhIDwgZ2Fzc2hvdXRhaWluXCA7CivntYzosrvliYrmuJsgPCBrZWloaXNha3VnZW5cIDsKK+aWh+iKuOW+qeiIiCA8IGJ1bmdlaWZ1a2tvdVwgOwor55Kw5aSq5bmz5rSLIDwga2FudGFpaGVpeW91XCA7CivlkI3nvqnmm7jmj5sgPCBtZWlnaWtha2lrYWVcIDsKK+e3keWGhemanCA8IHJ5b2t1bmFpc2hvdVwgOwor6YeN5aSn5ZWP6aGMIDwganV1ZGFpbW9uZGFpXCA7CivpnZ7np5HlrabnmoQgPCBoaWthZ2FrdXRla2lcIDsKK+mZkOWumuaIpuS6iSA8IGdlbnRlaXNlbnNvdVwgOwor5qW15qW96bOlIDwgZ29rdXJha3VjaG91XCA7CivmrKflt57lp5Tlk6HkvJogPCBvdXNodXVpaW5rYWlcIDsKK+S4jeWcqOiovOaYjiA8IGZ1emFpc2hvdW1laVwgOwor6LOD6LK45YCfIDwgY2hpbnRhaXNoYWt1XCA7CivljLvlrabljZrlo6sgPCBpZ2FrdWhha3VzaGlcIDsKK+ahiOWGheabuOWRiCA8IGFuJyduYWlzaG90ZWlcIDsKK+WwguWItuWQm+S4uyA8IHNlbnNlaWt1bnNodVwgOwor5Yuk5YuZ5a6f57i+IDwga2lubXVqaXNzZWtpXCA7CivmqZ/lr4bkuovpoIUgPCBraW1pdHN1amlrb3VcIDsKK+aXqeacn+iouuaWrSA8IHNvdWtpc2hpbmRhblwgOwor5ZGK55m66ICFIDwga29rdWhhdHN1c2hhXCA7CivlgZzmraLkvqHmoLwgPCB0ZWlzaGlrYWtha3VcIDsKK+iomOaGtuWuuemHjyA8IGtpb2t1eW91cnlvdVwgOwor5Ye655Sf6YGO5YmwIDwgc2h1c3NlaWtham91XCA7CivlvJXpgIDoiIjooYwgPCBpbnRhaWtvdWd5b3VcIDsKK+S4ieWRs+e3muW8viA8IHNoYW1pc2VuaGlraVwgOwor6Kmm6aiT5q616ZqOIDwgc2hpa2VuZGFua2FpXCA7Civnmb3ooYDnl4UgPCBoYWtrZXRzdWJ5b3VcIDsKK+i7jeS6i+S7i+WFpSA8IGd1bmppa2Fpbnl1dVwgOwor5pS/5rK76YGT5b6zIDwgc2Vpamlkb3V0b2t1XCA7Civlm73llrbkvIHmpa0gPCBrb2t1ZWlraWd5b3VcIDsKK+W4sOW3o+acrOiDvSA8IGtpc291aG9uJydub3VcIDsKK+S4oeaAp+WFt+aciSA8IHJ5b3VzZWlndXl1dVwgOwor6buE6YeR5LiH6IO9IDwgb3Vnb25iYW4nJ25vdVwgOwor55yf54+g6LOqIDwgc2hpbmp1c2hpdHN1XCA7Civmi4XlvZPoqrLplbcgPCB0YW50b3VrYWNob3VcIDsKK+a3t+aIkOertuaKgCA8IGtvbnNlaWt5b3VnaVwgOwor5Yq05YON5pS75YuiIDwgcm91ZG91a291c2VpXCA7CivniYflsbHph4wgPCBrYXRheWFtYXphdG9cIDsKK+eLrOeri+elrSA8IGRva3VyaXRzdXNhaVwgOwor6ZaR6Kmx5LyR6aGMIDwga2Fud2FreXV1ZGFpXCA7CivlhoXmh5AgPCB1Y2hpYnV0b2tvcm9cIDsKK+S6iOe0hOS/giA8IHlveWFrdWdha2FyaVwgOwor5b255YuZ6LOg5YSfIDwgZWtpbXViYWlzaG91XCA7CivlubPlkoznlKPmpa0gPCBoZWl3YXNhbmd5b3VcIDsKK+WNsOixoeaJueiplSA8IGluc2hvdWhpaHlvdVwgOwor5YGc5rue5YmN57eaIDwgdGVpdGFpemVuc2VuXCA7CivmsJHplpPmlL7pgIEgPCBtaW5rYW5ob3Vzb3VcIDsKK+WxnuWcsOS4u+e+qSA8IHpva3VjaGlzaHVnaVwgOwor5LiK5L2N5LqS5o+b5oCnIDwgam91aWdva2Fuc2VpXCA7Civlh7rniYjpg6jmlbAgPCBzaHVwcGFuYnVzdXVcIDsKK+iHquWLleS6uuW9oiA8IGppZG91bmluZ3lvdVwgOwor5oSP5b+X6JaE5byxIDwgaXNoaWhha3VqYWt1XCA7Civlv4PnkIbmiKbkuokgPCBzaGlucmlzZW5zb3VcIDsKK+iqsueojuaJgOW+lyA8IGthemVpc2hvdG9rdVwgOwor5rWB6KGM5L2c5a62IDwgcnl1dWtvdXNha2thXCA7CivmoLnmsJfku5XkuosgPCBrb25raXNoaWdvdG9cIDsKK+m7hOe3keiJsiA8IG91cnlva3VzaG9rdVwgOwor6Lu954qv572q5rOVIDwga2VpaGFuemFpaG91XCA7Civmj6PmkanmhrbmuKwgPCBzaGltYW9rdXNva3VcIDsKK+aUueS/ruW3peS6iyA8IGthaXNodXVrb3VqaVwgOwor5a++5oqX5oSP6K2YIDwgdGFpa291aXNoaWtpXCA7CivliY3pgLLlipsgPCB6ZW5zaGlucnlva3VcIDsKK+mBk+i3r+S6pOmAmiA8IGRvdXJva291dHN1dVwgOwor5rOV5bu35L6u6L6xIDwgaG91dGVpYnVqb2t1XCA7CivlhYnlrabmqZ/morAgPCBrb3VnYWt1a2lrYWlcIDsKK+iEseWtl+iomOWPtyA8IGRhdHN1amlraWdvdVwgOwor56K6546H6KuWIDwga2FrdXJpdHN1cm9uXCA7Civni6znq4vnj60gPCBkb2t1cml0c3VoYW5cIDsKK+WFrOacieawtOmdoiA8IGtvdXl1dXN1aW1lblwgOwor562J5Zyn5byPIDwgdG91YXRzdXNoaWtpXCA7CivpmbDmgKflj43lv5wgPCBpbnNlaWhhbicnbm91XCA7CivntKDkurrnrYsgPCBzaGlyb3V0b3N1amlcIDsKK+e+juS6uuWxgCA8IHRzdXRzdW1vdGFzZVwgOwor5YCf5Zyw5paZIDwgc2hha3VjaGlyeW91XCA7Civpu4TnhrHnl4UgPCBrb3VuZXRzdWJ5b3VcIDsKK+Wdh+ihoee1jOa4iCA8IGtpbmtvdWtlaXphaVwgOwor5oqV56Wo546HIDwgdG91aHlvdXJpdHN1XCA7CivpsLvkuLwgPCB1bmFnaWRvbmJ1cmlcIDsKK+iYreagveWfueazlSA8IHJhbnNhaWJhaWhvdVwgOwor5q2m6KOF6ZuG5ZujIDwgYnVzb3VzaHV1ZGFuXCA7CivohIXov6vnmoQgPCBreW91aGFrdXRla2lcIDsKK+WNsOmRkeiovOaYjiA8IGlua2Fuc2hvdW1laVwgOwor5Z+f5YaF6LK/5piTIDwgaWtpbmFpYm91ZWtpXCA7Civkvb/lvpLooYzkvJ0gPCBzaGl0b2d5b3VkZW5cIDsKK+S9s+S6uuiWhOWRvSA8IGthamluaGFrdW1laVwgOwor5pS+5bCE57ea56eR5Yy7IDwgaG91c2hhc2Vua2FpXCA7CivmnInkvZPos4fnlKMgPCB5dXV0YWlzaGlzYW5cIDsKK+WvvuazsOmWouS/giA8IHRhaXRhaWthbmtlaVwgOwor5qyn5bee6YCj5ZCIIDwgb3VzaHV1cmVuZ291XCA7CivlpbPlrZDlrabnlJ8gPCBqb3NoaWdha3VzZWlcIDsKK+Wbo+e1kOW/gyA8IGRhbmtldHN1c2hpblwgOwor5Y2Y57SU5bmz5Z2HIDwgdGFuanVuaGVpa2luXCA7Civos6rllY/mm7ggPCBzaGl0c3Vtb25zaG9cIDsKK+WGjeW6pueiuuiqjSA8IHNhaWRva2FrdW5pblwgOwor6ay86Z2i5Lyd5b+DIDwga2ltZW5kZW5zaGluXCA7Civosr/mmJPpu5LlrZcgPCBib3Vla2lrdXJvamlcIDsKK+e1hOWQiOWToeiovCA8IGt1bWlhaWluc2hvdVwgOwor54af5p+/5Li7576pIDwganVrdXNoaXNodWdpXCA7CivkuK3nq4vmgKcgPCBjaHV1cml0c3VzZWlcIDsKK+WGt+aIv+ijhee9riA8IHJlaWJvdXNvdWNoaVwgOwor54++5Zyw55Sf55SjIDwgZ2VuY2hpc2Vpc2FuXCA7CivmlrDogZ7oqJjogIUgPCBzaGluYnVua2lzaGFcIDsKK+WRiueZuueKtiA8IGtva3VoYXRzdWpvdVwgOwor5aSn5bGx6bO05YuVIDwgdGFpemFubWVpZG91XCA7Civms6LnirbmlLvmkoMgPCBoYWpvdWtvdWdla2lcIDsKK+WNmOiomOaKleelqCA8IHRhbmtpdG91aHlvdVwgOwor5LiA5qyh6Zai5pWwIDwgaWNoaWppa2Fuc3V1XCA7CivlubzlvaLpgLLljJYgPCB5b3VrZWlzaGlua2FcIDsKK+WPjeW+qeiqrCA8IGhhbnB1a3VzZXRzdVwgOwor5Y2w5Yi36KGTIDwgaW5zYXRzdWp1dHN1XCA7Civog73lipvntaYgPCBub3VyeW9rdWt5dXVcIDsKK+mdkueJqeW4guWgtCA8IGFvbW9ub2ljaGliYVwgOwor5a2m55Sf6YGL5YuVIDwgZ2FrdXNlaXVuZG91XCA7CivloLHlvqnmjqrnva4gPCBob3VmdWt1c29jaGlcIDsKK+WbnuW+qeWPr+iDvSA8IGthaWZ1a3VrYW5vdVwgOwor5q2j6KeS5a6a5pyoIDwgc2Vpa2FrdWpvdWdpXCA7CivmrbTlj7LlnLDnkIYgPCByZWtpc2hpY2hpcmlcIDsKK+e3tOe/kuabsiA8IHJlbnNodXVreW9rdVwgOwor5bm05Lit54Sh5LyRIDwgbmVuanV1bXVreXV1XCA7Civku6PmlbDnmoTlkowgPCBkYWlzdXV0ZWtpd2FcIDsKK+i2heiDveWKmyA8IGNob3Vub3VyeW9rdVwgOwor5bem5Y+z55u456ewIDwgc2F5dXVzb3VzaG91XCA7CivmoLjliIboo4IgPCBrYWt1YnVucmV0c3VcIDsKK+W4neWbveS4u+e+qSA8IHRlaWtva3VzaHVnaVwgOwor6KW/5rSL5p2+6ZyyIDwgc2VpeW91c2hvdXJvXCA7Civlm57ou6Lli5jlrpogPCBrYWl0ZW5rYW5qb3VcIDsKK+S+neiol+WwhOaSgyA8IGl0YWt1c2hhZ2VraVwgOwor5q2j6KaP6KGo54++IDwgc2Vpa2loeW91Z2VuXCA7Civni6znq4vmqKkgPCBkb2t1cml0c3VrZW5cIDsKK+e3j+mgmOS6i+mkqCA8IHNvdXJ5b3VqaWthblwgOwor5b6F5a616I2JIDwgbWF0c3V5b2lndXNhXCA7CivkuIDkurrlqJggPCBoaXRvcmltdXN1bWVcIDsKK+ebl+mbo+mYsuatoiA8IHRvdW5hbmJvdXNoaVwgOwor5ruF56eB5aWJ5YWsIDwgbWVzc2hpaG91a291XCA7Civlm73nqI7lsYAgPCBrb2t1emVpa3lva3VcIDsKK+e3j+WQiOenkeWtpiA8IHNvdWdvdWthZ2FrdVwgOwor5ouY5p2f5pmC6ZaTIDwga291c29rdWppa2FuXCA7Civlm5vmlrnlhavmlrkgPCBzaGlob3VoYXBwb3VcIDsKK+S4u+imgeiruOWFgyA8IHNodXlvdXNob2dlblwgOwor5Y2B5YiG5p2h5Lu2IDwganV1YnVuam91a2VuXCA7CivmmYLku6PmgJ3mva4gPCBqaWRhaXNoaWNob3VcIDsKK+S7o+eQhuaKleelqCA8IGRhaXJpdG91aHlvdVwgOwor5Y+k5YW46Z+z5qW9IDwga290ZW4nJ29uZ2FrdVwgOwor6YqA6KGM5by355uXIDwgZ2lua291Z291dG91XCA7CivkuIDpnaLorZggPCBpY2hpbWVuc2hpa2lcIDsKK+WHuumhmOiAhSA8IHNodXRzdWdhbnNoYVwgOwor6LW354iG6KOF572uIDwga2liYWt1c291Y2hpXCA7CivpgK7mjZXoqLHoq74gPCB0YWlob2t5b2Rha3VcIDsKK+i6vuaWuSA8IHNoaXRzdWtla2F0YVwgOwor5q2v54mZ55a+5oKjIDwgc2hpZ2FzaGlra2FuXCA7Civli7/lv5jojYkgPCB3YXN1cmVuYWd1c2FcIDsKK+W8t+e2v+iWrCA8IGt5b3VtZW4nJ3lha3VcIDsKK+WFseWQjOellueVjCA8IGt5b3Vkb3Vzb2thaVwgOwor5rK55pat5aSn5pW1IDwgeXVkYW50YWl0ZWtpXCA7Civlg7vlv4MgPCBoaWdhbWlnb2tvcm9cIDsKK+Wwgualrei+suWutiA8IHNlbmd5b3Vub3VrYVwgOwor54ax5Y+v5aGR5oCnIDwgbmV0c3VrYXNvc2VpXCA7CivmorbmnKjprqogPCBrYWppa2ltYWd1cm9cIDsKK+W4guacieiyoeeUoyA8IHNoaXl1dXphaXNhblwgOwor5Zu95a626LOg5YSfIDwga29ra2FiYWlzaG91XCA7CivlpLHmmI7ogIUgPCBzaGl0c3VtZWlzaGFcIDsKK+mdmeaFi+e3j+ioiCA8IHNlaXRhaXNvdWtlaVwgOwor5bCC6ZaA6ZuR6KqMIDwgc2VubW9uemFzc2hpXCA7CivlvL7kuLjliJfou4ogPCBkYW5nYW5yZXNzaGFcIDsKK+Wls+mBk+alvSA8IG9uJyduYWRvdXJha3VcIDsKK+Wkp+ato+aZguS7oyA8IHRhaXNob3VqaWRhaVwgOwor6Kit6KiI5aSJ5pu0IDwgc2Vra2VpaGVua291XCA7Civkuobop6PkuovpoIUgPCByeW91a2Fpamlrb3VcIDsKK+Wun+mok+autemajiA8IGppa2tlbmRhbmthaVwgOwor5oiQ6ZW3546HIDwgc2VpY2hvdXJpdHN1XCA7Civnorrlrp/mgKcgPCBrYWt1aml0c3VzZWlcIDsKK+WumOWDmuaUv+ayuyA8IGthbnJ5b3VzZWlqaVwgOwor5Lq656iu5ZWP6aGMIDwgamluc2h1bW9uZGFpXCA7CivmvJTnv5LllY/poYwgPCBlbnNodXVtb25kYWlcIDsKK+WKtOWDjee1hOWQiCA8IHJvdWRvdWt1bWlhaVwgOwor54Gr54KO5pS+5bCE5ZmoIDwga2FlbmhvdXNoYWtpXCA7CivlkIjlkIzlp5Tlk6HkvJogPCBnb3Vkb3VpaW5rYWlcIDsKK+mGh+miqOe+juS/lyA8IGp1bnB1dWJpem9rdVwgOwor5qS/5rK5IDwgdHN1YmFraWFidXJhXCA7Civpu5Loo4XmnZ8gPCBrdXJvc2hvdXpva3VcIDsKK+afj+mkhSA8IGthc2hpd2Ftb2NoaVwgOwor6YCg5Y+N5pyJ55CGIDwgem91aGFuJyd5dXVyaVwgOwor5raI6LK75oCn5ZCRIDwgc2hvdWhpc2Vpa291XCA7CivlvqHnlKjmlrDogZ4gPCBnb3lvdXNoaW5idW5cIDsKK+WFrOWumuS+oeagvCA8IGtvdXRlaWtha2FrdVwgOwor5aCG56mN5L2c55SoIDwgdGFpc2VraXNheW91XCA7CivmlLvlrojlkIznm58gPCBrb3VzaHVkb3VtZWlcIDsKK+W3peenkeWkp+WtpiA8IGtvdWthZGFpZ2FrdVwgOwor56S+5YWs6YCj5ZCIIDwgc2hha291cmVuZ291XCA7Civou43kuovmlZnnt7QgPCBndW5qaWt5b3VyZW5cIDsKK+W5s+WSjOadoee0hCA8IGhlaXdham91eWFrdVwgOwor54Sh6LOH5qC86ICFIDwgbXVzaGlrYWt1c2hhXCA7CivnhrHmi6HmlaMgPCBuZXRzdWtha3VzYW5cIDsKK+ebuOauuumWoueojiA8IHNvdXNhaWthbnplaVwgOwor5Y2z5pmC5YGc5oimIDwgc29rdWppdGVpc2VuXCA7Civmn4TpoK0gPCB0c3VrYWdhc2hpcmFcIDsKK+a4rOWcsOihm+aYnyA8IHNva3VjaGllaXNlaVwgOwor56m65Lit5rWu6YGKIDwga3V1Y2h1dWZ1eXV1XCA7Civlv6Doh6PolLUgPCBjaHV1c2hpbmd1cmFcIDsKK+WLleeJqeWtpiA8IGRvdWJ1dHN1Z2FrdVwgOwor5LiA5p6a5LiLIDwgaWNoaW1haXNoaXRhXCA7Civkv6HnlKjoqZDmrLogPCBzaGluJyd5b3VzYWdpXCA7Civoh7PmnbHkuqwgPCBpdGFydXRvdWt5b3VcIDsKK+eLrOeri+aApyA8IGRva3VyaXRzdXNlaVwgOwor5piO55y455qT5q2vIDwgbWVpYm91a291c2hpXCA7CivkuIrnrYnlhbXmm7kgPCBqb3V0b3VoZWlzb3VcIDsKK+mHkeWIqeaUv+etliA8IGtpbnJpc2Vpc2FrdVwgOwor6I2J5qC55pyo55quIDwgc291a29ubW9rdWhpXCA7Civpm6jlvozpm6ogPCBhbWVub2NoaXl1a2lcIDsKK+WKtOWDjeeBveWusyA8IHJvdWRvdXNhaWdhaVwgOwor5o6o5a6a5bm06b2iIDwgc3VpdGVpbmVucmVpXCA7CivpgbrnlKPnrqHnkIbkurogPCBpc2Fua2FucmluaW5cIDsKK+iyv+aYk+S+neWtmOW6piA8IGJvdWVraWl6b25kb1wgOwor5pel5pys5paH5a2mIDwgbmlob25idW5nYWt1XCA7Civlhavnm67psLsgPCB5YXRzdW1ldW5hZ2lcIDsKK+Wun+mok+enkeWtpiA8IGppa2tlbmthZ2FrdVwgOwor5Yq05YON5aeU5ZOh5LyaIDwgcm91ZG91aWlua2FpXCA7CivlpKnni5foqbEgPCB0ZW5ndWJhbmFzaGlcIDsKK+ahiOWGheS/giA8IGFuJyduYWlnYWthcmlcIDsKK+WNsemZuuS/oeWPtyA8IGtpa2Vuc2hpbmdvdVwgOwor5rWB6KGM6ImyIDwgcnl1dWtvdXNob2t1XCA7Civpjb7kubPnn7MgPCBzaG91bnl1dXNla2lcIDsKK+ilv+asp+iruOWbvSA8IHNlaW91c2hva29rdVwgOwor5o6l57aa5oCnIDwgc2V0c3V6b2t1c2VpXCA7CivlpJzplpPllrbmpa0gPCB5YWthbicnZWlneW91XCA7CivmqKHlnovpo5vooYzmqZ8gPCBtb2tlaWhpa291a2lcIDsKK+ecn+Wun+aApyA8IHNoaW5qaXRzdXNlaVwgOwor5L2/5b6S5om/5LydIDwgc2hpdG9zaG91ZGVuXCA7Civlm73lrrbkuLvluK0gPCBrb2trYXNodXNla2lcIDsKK+mbquimi+eBr+exoCA8IHl1a2ltaWRvdXJvdVwgOwor5Li75bit5Yik5LqLIDwgc2h1c2VraWhhbmppXCA7CivpqqjogonohasgPCBrb3RzdW5pa3VzaHVcIDsKK+eKrOeVnOeUnyA8IGludWNoaWt1c2hvdVwgOwor5a6Y6KO96JGJ5pu4IDwga2Fuc2VpaGFnYWtpXCA7CivkvJ3oqJjmloflraYgPCBkZW5raWJ1bmdha3VcIDsKK+WItuWLleaUvuWwhCA8IHNlaWRvdWhvdXNoYVwgOwor6aCY5Y+O6Ki8IDwgcnlvdXNodXVzaG91XCA7Civms5XlvovooYzngrogPCBob3VyaXRzdWtvdWlcIDsKK+WFseeUo+WbveWutiA8IGt5b3VzYW5rb2trYVwgOwor5pWZ6IKy5qmf6ZaiIDwga3lvdWlrdWtpa2FuXCA7CivpnZ7luLjkv6Hlj7cgPCBoaWpvdXNoaW5nb3VcIDsKK+mbquimi+manOWtkCA8IHl1a2ltaXNob3VqaVwgOwor5qmf5qeL5pS56Z2pIDwga2lrb3VrYWlrYWt1XCA7CivmmLzlhYnoibIgPCBjaHV1a291c2hva3VcIDsKK+W+oeeOieadk+WtkCA8IG90YW1hamFrdXNoaVwgOwor5pyA57WC57WQ5p6cIDwgc2Fpc2h1dWtla2thXCA7CivnibnmgbXplqLnqI4gPCB0b2trZWlrYW56ZWlcIDsKK+WcsOmch+S6iOefpSA8IGppc2hpbicneW9jaGlcIDsKK+WFseWQjOWLn+mHkSA8IGt5b3Vkb3Vib2tpblwgOwor5LqL5YuZ5b2T5bGAIDwgamltdXRvdWt5b2t1XCA7CivkuInlj7fpm5HoqowgPCBzYW5nb3V6YXNzaGlcIDsKK+a8j+a0qembu+a1gSA8IHJvdWVpZGVucnl1dVwgOwor5a6j5oim5biD5ZGKIDwgc2Vuc2VuZnVrb2t1XCA7CivlhbHnlKPlnLDljLogPCBreW91c2FuY2hpa3VcIDsKK+S7o+eUqOaVmeWToSA8IGRhaXlvdWt5b3VpblwgOwor5YyX5qW154aKIDwgaG9ra3lva3VndW1hXCA7CivkuInop5Llrpropo8gPCBzYW5rYWt1am91Z2lcIDsKK+ilv+a0i+WwhuajiyA8IHNlaXlvdXNob3VnaVwgOwor5L+h5Y+354Sh6KaWIDwgc2hpbmdvdW11c2hpXCA7CivlnJ/lnLDmlLnpnakgPCB0b2NoaWthaWtha3VcIDsKK+eArOaIuOeJqeW4giA8IHNldG9tb25vaWNoaVwgOwor5Y+45Luk5a6kIDwgc2hpcmVpc2hpdHN1XCA7CivlronlgI3lt53ppIUgPCBhYmVrYXdhbW9jaGlcIDsKK+adseasp+iruOWbvSA8IHRvdW91c2hva29rdVwgOwor6Leh55uu55u457aaIDwgYXRvbWVzb3V6b2t1XCA7Civkurrlt6XlkbzlkLggPCBqaW5rb3Vrb2t5dXVcIDsKK+S/hOebsiA8IG5pd2FrYW1la3VyYVwgOwor6Iiq56m66YO15L6/IDwga291a3V1eXV1YmluXCA7CivkuKbooYzovLjlhaUgPCBoZWlrb3V5dW55dXVcIDsKK+e1jOa4iOagvOW3riA8IGtlaXphaWtha3VzYVwgOwor56S+5Lya6LOH5pysIDwgc2hha2Fpc2hpaG9uXCA7CivlpJbkuqTnibnmqKkgPCBnYWlrb3V0b2trZW5cIDsKK+WNsOWIt+eJqSA8IGluc2F0c3VidXRzdVwgOwor5qWt5YuZ5o+Q5pC6IDwgZ3lvdW11dGVpa2VpXCA7CivmvZzlnKjmhI/orZggPCBzZW56YWlpc2hpa2lcIDsKK+aKveixoeeahCA8IGNodXVzaG91dGVraVwgOwor5Yi25b6h6KOF572uIDwgc2VpZ3lvc291Y2hpXCA7Civnmb3mi43lrZAgPCBzaGlyYWJ5b3VzaGlcIDsKK+aPkOWHuuiAhSA8IHRlaXNodXRzdXNoYVwgOwor5omA5omA5pa55pa5IDwgc2hvc2hvaG91Ym91XCA7CivogJDlnKflipsgPCB0YWlhdHN1cnlva3VcIDsKK+WHuOmdoumPoSA8IHRvdHN1bWVua3lvdVwgOwor6auY6KGA5ZynIDwga291a2V0c3VhdHN1XCA7Civmn7HmmYLoqIggPCBoYXNoaXJhZG9rZWlcIDsKK+WbuuS9k+eHg+aWmSA8IGtvdGFpbmVucnlvdVwgOwor5YKY5q2v6LuKIDwga2FzYWhhZ3VydW1hXCA7CivpvLvlhYPmgJ3moYggPCBoYW5hbW90b2ppYW5cIDsKK+WPs+aKmOemgeatoiA8IHVzZXRzdWtpbnNoaVwgOwor6LuN5Zu96ImyIDwgZ3Vua29rdXNob2t1XCA7Civlhavpg47mvZ8gPCBoYWNoaXJvdWdhdGFcIDsKK+WNg+aAneS4h+iAgyA8IHNlbnNoaWJhbmtvdVwgOwor5L6d6aGY6YCA6IG3IDwgaWdhbnRhaXNob2t1XCA7CivkuInpg6jlkIjllLEgPCBzYW5idWdhc3Nob3VcIDsKK+iogOiqnuS4reaeoiA8IGdlbmdvY2h1dXN1dVwgOwor54++5Luj5paH5piOIDwgZ2VuZGFpYnVubWVpXCA7CivppIrorbflrabntJogPCB5b3Vnb2dha2t5dXVcIDsKK+Wuv+WRveeahCA8IHNodWt1bWVpdGVraVwgOwor5Zue6Lui6YGL5YuVIDwga2FpdGVuJyd1bmRvdVwgOwor6YGL6Ly45qWt6ICFIDwgdW4nJ3l1Z3lvdXNoYVwgOwor5Lit5b+D6KeSIDwgY2h1dXNoaW5rYWt1XCA7CivplbfpoIjpr6ggPCBuYWdhc3VrdWppcmFcIDsKK+efs+ayueWFrOWboyA8IHNla2l5dWtvdWRhblwgOwor5bGA6YOo6bq76YWUIDwga3lva3VidW1hc3VpXCA7CivnvqnlpKrlpKvnr4AgPCBnaWRheXV1YnVzaGlcIDsKK+mHkeWxnuWKoOW3pSA8IGtpbnpva3VrYWtvdVwgOwor5oKq5oCn6IWr55iNIDwgYWt1c2Vpc2h1eW91XCA7Civkv67kuoboqLwgPCBzaHV1cnlvdXNob3VcIDsKK+mmrOm5v+ato+ebtCA8IGJha2FzaG91amlraVwgOwor5ZCI5byB5Lya56S+IDwgZ291YmVuZ2Fpc2hhXCA7CivmrrXjgIXnlaAgPCBkYW5kYW5iYXRha2VcIDsKK+WFrOebiuS6i+alrSA8IGtvdWVraWppZ3lvdVwgOwor5L+h5Y+36Zu75rOiIDwgc2hpbmdvdWRlbnBhXCA7CivlpJrogonos6ogPCB0YW5pa3VzaGl0c3VcIDsKK+mAsuWFpeeBryA8IHNoaW4nJ255dXV0b3VcIDsKK+mbhue0hOeahCA8IHNodXV5YWt1dGVraVwgOwor5YW15YWt546JIDwgaHlvdXJva3VkYW1hXCA7Civmkanmk6bnhrEgPCBtYXNhdHN1bmV0c3VcIDsKK+WGhei8quWQjOW/lyA8IHVjaGl3YWRvdXNoaVwgOwor56S+5Lya5LqL5qWtIDwgc2hha2FpamlneW91XCA7CivmioDooZPlipsgPCBnaWp1dHN1cnlva3VcIDsKK+mbtue0sOS8gealrSA8IHJlaXNhaWtpZ3lvdVwgOwor5Luu5rq25o6lIDwga2FyaXlvdXNldHN1XCA7Civlm73lrprlhazlnJIgPCBrb2t1dGVpa291ZW5cIDsKK+W/nOWKm+W+hOi3ryA8IG91cnlva3VrZWlyb1wgOwor5LiL5L2N56+E55aH5YyWIDwga2FpaGFuY2h1dWthXCA7CivmjqfoqLTmo4TljbQgPCBrb3Vzb2tpa3lha3VcIDsKK+mAmuWLpOWumuacnyA8IHRzdXVraW50ZWlraVwgOwor6auY5ZOB6LOqIDwga291aGluc2hpdHN1XCA7CivmrbTlj7LlnLDlm7MgPCByZWtpc2hpY2hpenVcIDsKK+mbu+WtkOmDteS+vyA8IGRlbnNoaXl1dWJpblwgOwor5pmS5pyo57a/IDwgc2FyYXNoaW1vbWVuXCA7CivkvLjnuK7ms5UgPCBzaGluc2h1a3Vob3VcIDsKK+S6uuW3peefpeiDvSA8IGppbmtvdWNoaW5vdVwgOwor56m65Lit5oqV5LiLIDwga3V1Y2h1dXRvdWthXCA7Civmpb3lpKnkuLvnvqkgPCByYWt1dGVuc2h1Z2lcIDsKK+WFremAo+eZuiA8IHJva3VyZW5wYXRzdVwgOwor5rW35aSW5oqV6LOHIDwga2FpZ2FpdG91c2hpXCA7CivkvbXnmbrnl4cgPCBoZWloYXRzdXNob3VcIDsKK+aal+iovOeVquWPtyA8IGFuc2hvdWJhbmdvdVwgOwor5qyg5LmP55eHIDwga2V0c3Vib3VzaG91XCA7CivmnpXoqZ4gPCBtYWt1cmFrb3RvYmFcIDsKK+mWouevgOaKgCA8IGthbnNldHN1d2F6YVwgOwor5rKI5rKh6Ii5IDwgY2hpbmJvdHN1c2VuXCA7CivlgJnmiYAgPCBzb3Vyb3V0b2tvcm9cIDsKK+WuueepjeeOhyA8IHlvdXNla2lyaXRzdVwgOwor5qGC55S3IDwga2F0c3VyYW90b2tvXCA7CivkuLvlipvmoKogPCBzaHVyeW9rdWthYnVcIDsKK+W5tOm9ouWItumZkCA8IG5lbnJlaXNlaWdlblwgOwor5L6h5qC85oim5LqJIDwga2FrYWt1c2Vuc291XCA7Civpq5jpgJ/luqbpi7wgPCBrb3Vzb2t1ZG9rb3VcIDsKK+WxseaHkCA8IHlhbWFmdXRva29yb1wgOwor5Lm+5rm/6KiIIDwga2Fuc2hpdHN1a2VpXCA7CivpnZ7llrbliKnlm6PkvZMgPCBoaWVpcmlkYW50YWlcIDsKK+eBq+WKm+aUr+aPtCA8IGthcnlva3VzaGllblwgOwor6auY6YCf6YGT6LevIDwga291c29rdWRvdXJvXCA7Civkvb/nlKjnpoHmraIgPCBzaGl5b3VraW5zaGlcIDsKK+WGoOWpmuiRrOelrSA8IGthbmtvbnNvdXNhaVwgOwor5rC05bmz5bC+57+8IDwgc3VpaGVpYml5b2t1XCA7CivkuLzpo68gPCBkb25idXJpbWVzaGlcIDsKK+axuuitsOapn+mWoiA8IGtldHN1Z2lraWthblwgOwor5Lmd5pif6KGTIDwga3l1dXNlaWp1dHN1XCA7Civlj6PlhavkuIEgPCBrdWNoaWhhdGNob3VcIDsKK+mAo+mOluWPjeW/nCA8IHJlbnNhaGFuJydub3VcIDsKK+W4guawkeekvuS8miA8IHNoaW1pbnNoYWthaVwgOwor5qSc5a+f5bqBIDwga2Vuc2F0c3VjaG91XCA7CivooajooajntJkgPCBvbW90ZWJ5b3VzaGlcIDsKK+mDqOWIhumbhuWQiCA8IGJ1YnVuc2h1dWdvdVwgOwor5Zub5o2o5LqU5YWlIDwgc2hpc2hhZ29ueXV1XCA7Civlj5foqJfkvJrnpL4gPCBqdXRha3VnYWlzaGFcIDsKK+WVj+mhjOaEj+itmCA8IG1vbmRhaWlzaGlraVwgOwor6YeR6J6N5YWs5bqrIDwga2luJyd5dXVrb3Vrb1wgOwor55u05Y+W5byVIDwgamlraXRvcmloaWtpXCA7Civlj4vpgZTnlLLmlpAgPCB0b21vZGFjaGlnYWlcIDsKK+Wkp+WtpuWNkiA8IGRhaWdha3Vzb3RzdVwgOwor5LiA6Iis5pWZ6aSKIDwgaXBwYW5reW91eW91XCA7CivlpLHoqp7nl4cgPCBzaGl0c3Vnb3Nob3VcIDsKK+mZjembqumHjyA8IGtvdXNldHN1cnlvdVwgOwor5a6J5a6a5oGQ5oWMIDwgYW50ZWlreW91a291XCA7CivmsLTntKDljJbniakgPCBzdWlzb2thYnV0c3VcIDsKK+eSsOWig+WkieWMliA8IGthbmt5b3VoZW5rYVwgOwor5L2T5qC85qSc5p+7IDwgdGFpa2FrdWtlbnNhXCA7CivmvIHluKvnlLogPCByeW91c2hpbWFjaGlcIDsKK+WMluWtpuWQiOaIkCA8IGthZ2FrdWdvdXNlaVwgOwor5bmz5bmz5Yeh5YehIDwgaGVpaGVpYm9uYm9uXCA7CivluILloLTkvqHmoLwgPCBzaGlqb3VrYWtha3VcIDsKK+eJqeimi+arkyA8IG1vbm9taXlhZ3VyYVwgOwor5ZaE6Zqj6Zai5L+CIDwgemVucmlua2Fua2VpXCA7CivlkIjmiJDmtJfliaQgPCBnb3VzZWlzZW56YWlcIDsKK+ims+W/teS4u+e+qSA8IGthbicnbmVuc2h1Z2lcIDsKK+mAmuWLpOaZgumWkyA8IHRzdXVraW5qaWthblwgOwor57WM5riI5L2T5Yi2IDwga2VpemFpdGFpc2VpXCA7CivkvY/miYDmsI/lkI0gPCBqdXVzaG9zaGltZWlcIDsKK+eWvumiqOaAkua/pCA8IHNoaXBwdXVkb3RvdVwgOwor5Yy755mC5p2Q5paZIDwgaXJ5b3V6YWlyeW91XCA7CivmnInmqZ/ovrLmpa0gPCB5dXVraW5vdWd5b3VcIDsKK+WmqOWus+aUvumAgSA8IGJvdWdhaWhvdXNvdVwgOwor6YeR5bGe5YWD57SgIDwga2luem9rdWdlbnNvXCA7Civlj5bmrKHlupcgPCB0b3JpdHN1Z2l0ZW5cIDsKK+atr+WGheeZguazlSA8IHNoaWthcnlvdWhvdVwgOwor5oKq5oiv5bCP5YOnIDwgaXRhenVyYWtvem91XCA7CivlhajmqKnlpKfkvb8gPCB6ZW5rZW50YWlzaGlcIDsKK+WNseaApeWtmOS6oSA8IGtpa3l1dXNvbmJvdVwgOwor5a6H5a6Z5Lit57aZIDwgdWNodXVjaHV1a2VpXCA7CivpnZ7kurrplpPnmoQgPCBoaW5pbmdlbnRla2lcIDsKK+WPl+S/oeijhee9riA8IGp1c2hpbnNvdWNoaVwgOwor5pWw5YCk6KiI566XIDwgc3V1Y2hpa2Vpc2FuXCA7CivniYfoqIDpmrvoqp4gPCBoZW5nZW5zZWtpZ29cIDsKK+aHkOS4reaZguioiCA8IGthaWNodXVkb2tlaVwgOwor5pyn5pyI5aScIDwgb2Jvcm9kenVraXlvXCA7Civnq7bovKrpgbjmiYsgPCBrZWlyaW5zZW5zaHVcIDsKK+S6q+alveeahCA8IGt5b3VyYWt1dGVraVwgOwor5pqX5Y+36Kej6KqtIDwgYW5nb3VrYWlkb2t1XCA7Civlj43li5XmgJ3mg7MgPCBoYW5kb3VzaGlzb3VcIDsKK+Wun+iovOS4u+e+qSA8IGppc3Nob3VzaHVnaVwgOwor5qiZ5rqW5YGP5beuIDwgaHlvdWp1bmhlbnNhXCA7Civos4fmupDllY/poYwgPCBzaGlnZW5tb25kYWlcIDsKK+mBi+mAgealreiAhSA8IHVuc291Z3lvdXNoYVwgOwor6KGM5YuV5Zyw5bivIDwga291ZG91Y2hpdGFpXCA7CivmsLTlipvlraYgPCBzdWlyeW9rdWdha3VcIDsKK+W5s+etieS4u+e+qSA8IGJ5b3Vkb3VzaHVnaVwgOwor5Y+W5byV5YWIIDwgdG9yaWhpa2lzYWtpXCA7CivkuqTku6PmipXmiYsgPCBrb3V0YWl0b3VzaHVcIDsKK+S4vOmJoiA8IGRvbmJ1cmliYWNoaVwgOwor5YWl5Yqb57eaIDwgbnl1dXJ5b2t1c2VuXCA7CivkvY7ooYDlnKcgPCB0ZWlrZXRzdWF0c3VcIDsKK+WbveWutueLrOWNoCA8IGtva2thZG9rdXNlblwgOwor5Zyf5Zyw5pS56ImvIDwgdG9jaGlrYWlyeW91XCA7CivnkrDlooPln7rmupYgPCBrYW5reW91a2lqdW5cIDsKK+WkluS6pOaWh+abuCA8IGdhaWtvdWJ1bnNob1wgOwor6Lu95oyZ5aaE5YuVIDwga2Vpa3lvbW91ZG91XCA7CivpmLLomavliqDlt6UgPCBib3VjaHV1a2Frb3VcIDsKK+S4jeWcqOaKleelqCA8IGZ1emFpdG91aHlvdVwgOwor5Ly457iu5oCnIDwgc2hpbnNodWt1c2VpXCA7Civlvovku6TliLYgPCByaXRzdXJ5b3VzZWlcIDsKK+WrjOeFmemBi+WLlSA8IGtlbicnZW4nJ3VuZG91XCA7CivlsIHnt5jokYnmm7ggPCBmdXVrYW5oYWdha2lcIDsKK+W9ouW8j+eahCA8IGtlaXNoaWtpdGVraVwgOwor5rOw54S26Ieq6IulIDwgdGFpemVuamlqYWt1XCA7CivmlZfljJfkuLvnvqkgPCBoYWlib2t1c2h1Z2lcIDsKK+S+oeagvOaAp+iDvSA8IGtha2FrdXNlaW5vdVwgOwor5pu46aGe6YCB5qScIDwgc2hvcnVpc291a2VuXCA7CivkurrmqKnllY/poYwgPCBqaW5rZW5tb25kYWlcIDsKK+S7sueri+S6uiA8IG5ha2FkYWNoaW5pblwgOwor5piH6ZmN5Y+jIDwgc2hvdWtvdWd1Y2hpXCA7CivkuIDmrbvloLHlm70gPCBpc3NoaWhvdWtva3VcIDsKK+iomOmMsuS/giA8IGtpcm9rdWdha2FyaVwgOwor5bel5L2c54mpIDwga291c2FrdWJ1dHN1XCA7Civnt7TppqzlpKfmoLkgPCBuZXJpbWFkYWlrb25cIDsKK+S4gOezuOS4gOavqyA8IGlzc2hpaWNoaWdvdVwgOwor54m55q6K5LqL5oOFIDwgdG9rdXNodWppam91XCA7CivmraPnm7TogIUgPCBzaG91amlraW1vbm9cIDsKK+iAgeWwkeS4jeWumiA8IHJvdXNob3VmdXRlaVwgOwor5Lit5b+D55qEIDwgY2h1dXNoaW50ZWtpXCA7Civoh6rnv5LlrqQgPCBqaXNodXVzaGl0c3VcIDsKK+S7iuaYjuaXpSA8IGtvbm15b3VuaWNoaVwgOwor55u45LmX5bmz5Z2HIDwgc291am91aGVpa2luXCA7CivkuIflubTlgJnoo5wgPCBtYW4nJ25lbmtvdWhvXCA7CivlronlhajmlZnogrIgPCBhbnplbmt5b3Vpa3VcIDsKK+eEoeizg+S5l+i7iiA8IG11Y2hpbmpvdXNoYVwgOwor54mH5YuZ5aWR57SEIDwgaGVubXVrZWl5YWt1XCA7CivkuIDoiKzlpKfooYYgPCBpcHBhbnRhaXNodXVcIDsKK+WPpOWFuOaWh+WtpiA8IGtvdGVuYnVuZ2FrdVwgOwor6auY5qCh6YeO55CDIDwga291a291eWFreXV1XCA7CivplpPmjqXnmoQgPCBrYW5zZXRzdXRla2lcIDsKK+S4reiPr+aWmeeQhiA8IGNodXVrYXJ5b3VyaVwgOwor5Ye654mI54mpIDwgc2h1cHBhbmJ1dHN1XCA7CivlgaXlurfnirbmhYsgPCBrZW5rb3Vqb3V0YWlcIDsKK+aguOi7jee4riA8IGtha3VndW5zaHVrdVwgOwor6bm/5YWQ5bO255yMIDwga2Fnb3NoaW1ha2VuXCA7Civmupblgpnnirbms4EgPCBqdW5iaWpvdWt5b3VcIDsKK+mBuOWkluS9s+S9nCA8IHNlbmdhaWthc2FrdVwgOwor6KiA6Kqe5pWZ6IKyIDwgZ2VuZ29reW91aWt1XCA7CivlkIzmloflkIznqK4gPCBkb3VidW5kb3VzaHVcIDsKK+e1puS4juS9k+ezuyA8IGt5dXV5b3RhaWtlaVwgOwor6bq76Jas54qv572qIDwgbWF5YWt1aGFuemFpXCA7CivmnJ3ku6Tmmq7mlLkgPCBjaG91cmVpYm9rYWlcIDsKK+S4gOimi+itmCA8IGljaGlrZW5zaGlraVwgOwor5pS75pKD5YqbIDwga291Z2VraXJ5b2t1XCA7CivkupLmgbXmnaHntIQgPCBnb2tlaWpvdXlha3VcIDsKK+S4gOWbveS4gOelqCA8IGlra29rdWlwcHlvdVwgOwor56Cy6Imm5aSW5LqkIDwgaG91a2FuZ2Fpa291XCA7CivmlbTpq6rmlpkgPCBzZWloYXRzdXJ5b3VcIDsKK+a1geihjOiogOiRiSA8IGhheWFyaWtvdG9iYVwgOwor5Lqk6YCa5qmf6ZaiIDwga291dHN1dWtpa2FuXCA7CivmsLTpioDpm7vmsaAgPCBzdWlnaW5kZW5jaGlcIDsKK+WAkuS6iyA8IHNha2FzYW1hZ290b1wgOwor6L+95ZaE5L6b6aSKIDwgdHN1aXplbmt1eW91XCA7Civku5blipvmnKzpoZggPCB0YXJpa2lob25nYW5cIDsKK+espuWPt+ino+iqrSA8IGZ1Z291a2FpZG9rdVwgOwor55+l6IO95oyH5pWwIDwgY2hpbm91c2hpc3V1XCA7CivkupznhrHluK/msJflgJkgPCBhbmV0dGFpa2lrb3VcIDsKK+W9k+WWtualreaJgCA8IHRvdWVpZ3lvdXNob1wgOwor6IG35ZOh5Lya6K2wIDwgc2hva3VpbmthaWdpXCA7CivoqIDoqp7nibnmnIkgPCBnZW5nb3Rva3V5dXVcIDsKK+acgOWwj+mZkOW6piA8IHNhaXNob3VnZW5kb1wgOwor5p+T5LqV5ZCJ6YeOIDwgc29tZWl5b3NoaW5vXCA7Civlrozlhajniq/nvaogPCBrYW56ZW5oYW56YWlcIDsKK+aagemXhyA8IGFrYXRzdWtpeWFtaVwgOwor5pWZ6IKy5Yi25bqmIDwga3lvdWlrdXNlaWRvXCA7CivmiKblm73mmYLku6MgPCBzZW5nb2t1amlkYWlcIDsKK+WJjemnhueXh+eKtiA8IHplbmt1c2hvdWpvdVwgOwor5LiD6Z2i5YCSIDwgc2hpY2hpbWVuZG91XCA7CivogJDmub/mgKcgPCB0YWlzaGl0c3VzZWlcIDsKK+e0q+e2rOikkuizniA8IHNoaWp1aG91c2hvdVwgOwor5LiA6KiA5Y2K5Y+lIDwgaWNoaWdvbmhhbmt1XCA7CivkuI3ms5XljaDmnIkgPCBmdWhvdXNlbicneXV1XCA7Civku4/mloflraYgPCBmdXRzdWJ1bmdha3VcIDsKK+WutuW6reeSsOWigyA8IGthdGVpa2Fua3lvdVwgOwor55WR5rC057e0IDwgaGF0YWtlc3VpcmVuXCA7Civli4XmkrDpm4YgPCBjaG9rdXNlbnNodXVcIDsKK+S4g+mdouS9kyA8IHNoaWNoaW1lbnRhaVwgOwor6Iie5Y+w55uj552jIDwgYnV0YWlrYW50b2t1XCA7CivlkIjmiJDnmq7pnakgPCBnb3VzZWloaWtha3VcIDsKK+WcqOWuheWLpOWLmSA8IHphaXRha3VraW5tdVwgOwor54Sh5pS/5bqc5Li7576pIDwgbXVzZWlmdXNodWdpXCA7CivkuI3lnKjlnLDkuLsgPCBmdXphaWppbnVzaGlcIDsKK+S4gOWuv+S4gOmjryA8IGlzc2h1a3VpcHBhblwgOwor6ICB5Lq655eF6ZmiIDwgcm91amluYnlvdWluXCA7CivniYfogrrpo5vooYwgPCBrYXRhaGFpaGlrb3VcIDsKK+Wvvua9nOawtOiJpiA8IHRhaXNlbnN1aWthblwgOwor6K2m5oiS6K2m5aCxIDwga2Vpa2Fpa2VpaG91XCA7CivlirnnjofnmoQgPCBrb3VyaXRzdXRla2lcIDsKK+e0r+epjei1pOWtlyA8IHJ1aXNla2lha2FqaVwgOwor5a625peP5qeL5oiQIDwga2F6b2t1a291c2VpXCA7CivlhoXmn5TlpJbliZsgPCBuYWlqdXVnYWlnb3VcIDsKK+WxnuS6uuS4u+e+qSA8IHpva3VqaW5zaHVnaVwgOwor54ax6YeP6KiIIDwgbmV0c3VyeW91a2VpXCA7Civnoazou5/kuKHmtL4gPCBrb3VuYW5yeW91aGFcIDsKK+W6p+W4reeVquWPtyA8IHphc2VraWJhbmdvdVwgOwor56m65Lit5rWu5o+aIDwga3V1Y2h1dWZ1eW91XCA7CivkuIHnqJrlpYnlhawgPCBkZXRjaGlib3Vrb3VcIDsKK+S4gOaWueS6pOmAmiA8IGlwcG91a291dHN1dVwgOwor5LiJ5pel5pyI5b2iIDwgbWlrYWR6dWtpa2VpXCA7Civnp7vli5Xlm7Pmm7jppKggPCBpZG91dG9zaG9rYW5cIDsKK+aknOS6i+e3j+mVtyA8IGtlbmppc291Y2hvdVwgOwor5rOo6YeI6ICFIDwgY2h1dXNoYWt1c2hhXCA7Civni63lv4Pnl4cgPCBreW91c2hpbnNob3VcIDsKK+aWsOimj+aKleizhyA8IHNoaW5raXRvdXNoaVwgOwor5Y2Y6Kqe5qSc57SiIDwgdGFuZ29rZW5zYWt1XCA7CivlvKXnjJvlv4MgPCB5YXRha2Vnb2tvcm9cIDsKK+maoOWMv+eJqeizhyA8IGludG9rdWJ1c3NoaVwgOwor5aWz5Lq656aB5Yi2IDwgbnlvbmlua2luc2VpXCA7CivlpKfkv67pgZPpmaIgPCBkYWlzaHV1ZG91aW5cIDsKK+ajruael+WFrOWckiA8IHNoaW5yaW5rb3VlblwgOwor57eP6Iqx5byPIDwgc291YmFuYXNoaWtpXCA7CivljZTllYblm70gPCBreW91c2hvdWtva3VcIDsKK+WPl+mok+izh+agvCA8IGp1a2Vuc2hpa2FrdVwgOwor5LiD57WD55C0IDwgc2hpY2hpZ2Vua2luXCA7CivlpKflkozoqIDokYkgPCB5YW1hdG9rb3RvYmFcIDsKK+WEgOW8j+S4u+e+qSA8IGdpc2hpa2lzaHVnaVwgOwor6YCg5bGx6YGL5YuVIDwgem91emFuJyd1bmRvdVwgOwor5LiA6Iis5pWZ6IKyIDwgaXBwYW5reW91aWt1XCA7CivniIboo4LlvL4gPCBiYWt1cmV0c3VkYW5cIDsKK+eri+S9k+mfs+mfvyA8IHJpdHRhaW9ua3lvdVwgOwor5a6X5pWZ5b+DIDwgc2h1dWt5b3VzaGluXCA7Civnibnpm4boqJjkuosgPCB0b2t1c2h1dWtpamlcIDsKK+S7mOW4r+axuuitsCA8IGZ1dGFpa2V0c3VnaVwgOwor6KO957SZ5bel5aC0IDwgc2Vpc2hpa291am91XCA7CivlhazlhbHniakgPCBrb3VreW91YnV0c3VcIDsKK+aVkeaApeeusSA8IGt5dXVreXV1YmFrb1wgOwor5pWR5o+05oqV5omLIDwga3l1dWVudG91c2h1XCA7CivosqHlm6Pms5XkurogPCB6YWlkYW5ob3VqaW5cIDsKK+awkeS/l+iInui4iiA8IG1pbnpva3VidXlvdVwgOwor5oim5LqJ54qv572qIDwgc2Vuc291aGFuemFpXCA7Civpm6Pnh4PliqDlt6UgPCBuYW4nJ25lbmtha291XCA7CivljZfoiLnljJfppqwgPCBuYW5zZW5ob2t1YmFcIDsKK+apn+iDvemanOWusyA8IGtpbm91c2hvdWdhaVwgOwor5a6f6KGM5aeU5ZOh5LyaIDwgamlra291aWlua2FpXCA7Civni4Loqanmm7IgPCBreW91c2hpa3lva3VcIDsKK+aXpeacrOWbveawkSA8IG5paG9ua29rdW1pblwgOwor5L+E5YiG6ZmQIDwgbml3YWthYnVuZ2VuXCA7CivoiJ7ouI/mlZnluKsgPCBidXRvdWt5b3VzaGlcIDsKK+ael+mWk+WtpuagoSA8IHJpbmthbmdha2tvdVwgOwor5p2+5q+sIDwgbWF0c3Vwb2trdXJpXCA7CivoirHprYHpgZPkuK0gPCBvaXJhbmRvdWNodXVcIDsKK+a7kemZjeertuaKgCA8IGtha2tvdWt5b3VnaVwgOwor5Zyo5aSW5YWs6aSoIDwgemFpZ2Fpa291a2FuXCA7CivlrpfmlZnlraYgPCBzaHV1a3lvdWdha3VcIDsKK+mgreiZsSA8IGF0YW1hc2hpcmFtaVwgOwor5LiA5pel5LitIDwgaWNoaW5pY2hpanV1XCA7CivlnLDmlrnpgbjmjJkgPCBjaGlob3VzZW5reW9cIDsKK+axguiBt+iAhSA8IGt5dXVzaG9rdXNoYVwgOwor55Wc5q665aC0IDwgY2hpa3VzYXRzdWJhXCA7CivlkIjmiJDljJblraYgPCBnb3VzZWlrYWdha3VcIDsKK+engeijveiRieabuCA8IHNoaXNlaWhhZ2FraVwgOwor5a2m5bm05pyrIDwgZ2FrdW5lbm1hdHN1XCA7CivkuI3lrprnqY3liIYgPCBmdXRlaXNla2lidW5cIDsKK+ato+OAheWgguOAhSA8IHNlaXNlaWRvdWRvdVwgOwor5Y2K5L+h5Y2K55aRIDwgaGFuc2hpbmhhbmdpXCA7CivnqYDosaHomasgPCBrb2t1em91bXVzaGlcIDsKK+i8uOWFpei2hemBjiA8IHl1bnl1dWNob3VrYVwgOwor54Sh6Z+/5a6kIDwgbXVreW91c2hpdHN1XCA7CivnrY3ljLvogIUgPCB0YWtlbm9rb2lzaGFcIDsKK+Wbm+WFg+mAn+W6piA8IHNoaWdlbnNva3Vkb1wgOwor5LuY5bGe5a2m5qChIDwgZnV6b2t1Z2Fra291XCA7Civkurrlt6XnnJ/nj6AgPCBqaW5rb3VzaGluanVcIDsKK+a9m+W/g+WKmyA8IHNlbnNoaW5yeW9rdVwgOwor6IiI6KGM5Li7IDwga291Z3lvdW51c2hpXCA7CivkurrmqKnlm6PkvZMgPCBqaW5rZW5kYW50YWlcIDsKK+acrOaWh+aJueiplSA8IGhvbm1vbmhpaHlvdVwgOwor5Lm+5Zyw6L6y5rOVIDwga2FuY2hpbm91aG91XCA7Civllqfllqflm4Llm4IgPCBrZW5rZW5nb3Vnb3VcIDsKK+advuaelyA8IG1hdHN1YmF5YXNoaVwgOwor5Lq65a6a5bCL5ZWPIDwgamludGVpamlubW9uXCA7Civku7vmnJ/muoDkuoYgPCBuaW5raW1hbnJ5b3VcIDsKK+ertummrOaWsOiBniA8IGtlaWJhc2hpbmJ1blwgOwor5L+u6aO+5a2QIDwgc2h1dXNob2t1c2hpXCA7Civlj47nm4rnjocgPCBzaHV1ZWtpcml0c3VcIDsKK+elneWEgOiiiyA8IHNodXVnaWJ1a3Vyb1wgOwor6Zu75rCX5bel5a2mIDwgZGVua2lrb3VnYWt1XCA7CivlqZrlp7vlsYogPCBrb24nJ2ludG9kb2tlXCA7CivkvpvntabpgY7lpJogPCBreW91a3l1dWthdGFcIDsKK+WPo+mgreWvqeeQhiA8IGtvdXRvdXNoaW5yaVwgOwor6Zqc5a6z54mpIDwgc2hvdWdhaWJ1dHN1XCA7CivlubPlkozmlZnogrIgPCBoZWl3YWt5b3Vpa3VcIDsKK+m7kumKueeXhSA8IGt1cm9zYWJpYnlvdVwgOwor5Lq654mp6KmVIDwgamluYnV0c3VoeW91XCA7Civnt4/lkIjnl4XpmaIgPCBzb3Vnb3VieW91aW5cIDsKK+S4iuWxpOawl+a1gSA8IGpvdXNvdWtpcnl1dVwgOwor6ICB6b2i5bm06YeRIDwgcm91cmVpbmVua2luXCA7Civpm5HmiYDlvpcgPCB6YXRzdXNob3Rva3VcIDsKK+WJpeijveihkyA8IGhha3VzZWlqdXRzdVwgOwor5ryU5aWP57e057+SIDwgZW5zb3VyZW5zaHV1XCA7Civni6zljaDmrLIgPCBkb2t1c2VuJyd5b2t1XCA7Civku5XmjpvlnLDpm7cgPCBzaGlrYWtlamlyYWlcIDsKK+adn+afsSA8IHRzdWthYmFzaGlyYVwgOwor5Zue6Lui6LOH6YeRIDwga2FpdGVuc2hpa2luXCA7CivntbbmnJvnmoQgPCB6ZXRzdWJvdXRla2lcIDsKK+aal+S4reaooee0oiA8IGFuY2h1dW1vc2FrdVwgOwor5aSp54S26ImyIDwgdGVuJyduZW5zaG9rdVwgOwor5ZSv5oiR54us5bCKIDwgeXVpZ2Fkb2t1c29uXCA7Civpm4bmlaPkuLvnvqkgPCBzaHV1c2Fuc2h1Z2lcIDsKK+Wcn+eUo+eJqeWxiyA8IG1peWFnZW1vbm95YVwgOwor6Ieq57Wm6Ieq6LazIDwgamlreXV1amlzb2t1XCA7CivohILogqros6ogPCBzaGlib3VzaGl0c3VcIDsKK+Wul+aVmeWKhyA8IHNodXVreW91Z2VraVwgOwor5ZKM5bmz5Y2U5a6aIDwgd2FoZWlreW91dGVpXCA7Civku4/lv4MgPCBob3Rva2Vnb2tvcm9cIDsKK+WHuuWgtOiAhSA8IHNodXRzdWpvdXNoYVwgOwor5Zyw5pa55YiG5qipIDwgY2hpaG91YnVua2VuXCA7Civkub7mvIblg48gPCBrYW5zaGl0c3V6b3VcIDsKK+W4guWGheims+WFiSA8IHNoaW5haWthbmtvdVwgOwor5pS+5bCE6IO96ZuoIDwgaG91c2hhbm91YW1lXCA7CivlhoXnvbDnmoQgPCBuYWliYXRzdXRla2lcIDsKK+S4g+inkuW9oiA8IHNoaWNoaWtha2tlaVwgOwor6Kuc5aCx5qmf6ZaiIDwgY2hvdWhvdWtpa2FuXCA7CivljbPoiIjmm7IgPCBzb2treW91a3lva3VcIDsKK+WwseWtpue+qeWLmSA8IHNodXVnYWt1Z2ltdVwgOwor6Iiq56m65YSq5YuiIDwga291a3V1eXV1c2VpXCA7CivkurrmiY3nmbvnlKggPCBqaW56YWl0b3V5b3VcIDsKK+aVo+eZuueahCA8IHNhbnBhdHN1dGVraVwgOwor6KSH5pys5L2N5Yi2IDwgZnVrdWhvbicnaXNlaVwgOwor55Sf5rS75L+d6K23IDwgc2Vpa2F0c3Vob2dvXCA7Civpm4bkuK3osarpm6ggPCBzaHV1Y2h1dWdvdXVcIDsKK+W+tOWFteWFjemZpCA8IGNob3VoZWltZW5qb1wgOwor5YWs5a6z5ZWP6aGMIDwga291Z2FpbW9uZGFpXCA7CivljZjouqvotbTku7sgPCB0YW5zaGluZnVuaW5cIDsKK+W6g+WPo+eTtiA8IGhpcm9rdWNoaWJpblwgOwor5beu5Yil55So6KqeIDwgc2FiZXRzdXlvdWdvXCA7Civkurrlj6Pli5XmhYsgPCBqaW5rb3Vkb3V0YWlcIDsKK+Wuh+WumeeJqeeQhiA8IHVjaHV1YnV0c3VyaVwgOwor5YWo6Z2i5oim5LqJIDwgemVubWVuc2Vuc291XCA7CivntYzmuIjnirbmhYsgPCBrZWl6YWlqb3V0YWlcIDsKK+WnlOiol+eglOeptiA8IGl0YWt1a2Vua3l1dVwgOwor5Y2D6L6b5LiH6IumIDwgc2Vuc2hpbmJhbmt1XCA7CivljLvnmYLloLHphawgPCBpcnlvdWhvdXNodXVcIDsKK+awtOaZtuaZguioiCA8IHN1aXNob3Vkb2tlaVwgOwor5LiJ5paH5paH5aOrIDwgc2FubW9uYnVuc2hpXCA7Civlm57ou6LmnKjppqwgPCBrYWl0ZW5tb2t1YmFcIDsKK+S4jeaIpuadoee0hCA8IGZ1c2Vuam91eWFrdVwgOwor5LiA55Sf5oe45ZG9IDwgaXNzaG91a2VubWVpXCA7CivlnKfnuK7njocgPCBhc3NodWt1cml0c3VcIDsKK+aXpemAsuaciOatqSA8IG5pc3NoaW5nZXBwb1wgOwor5Y+X6KiX6LKp5aOyIDwganV0YWt1aGFuYmFpXCA7CivmlofljJbli7Lnq6AgPCBidW5rYWt1bnNob3VcIDsKK+aCoOaCoOmWkemWkSA8IHl1dXl1dWthbmthblwgOwor5LuP6Iux6L6e5YW4IDwgZnV0c3VlaWppdGVuXCA7Civlrr/ms4rkurogPCBzaHVrdWhha3VuaW5cIDsKK+eVmeWuiOeVqumbu+ipsSA8IHJ1c3ViYW5kZW53YVwgOwor6KGb55Sf5bel5a2mIDwgZWlzZWlrb3VnYWt1XCA7CivmlL/opovmlL7pgIEgPCBzZWlrZW5ob3Vzb3VcIDsKK+awtOaAp+Whl+aWmSA8IHN1aXNlaXRvcnlvdVwgOwor54yp57SF54axIDwgc2hvdWtvdW5ldHN1XCA7CivlhYjpgLLlhbXlmaggPCBzZW5zaGluaGVpa2lcIDsKK+iHquW3seS4reW/gyA8IGppa29jaHV1c2hpblwgOwor5Y2U5Yqb6Yu8IDwga3lvdXJ5b2t1a291XCA7CivlkIzlkozmlZnogrIgPCBkb3V3YWt5b3Vpa3VcIDsKK+Wtpum9ouWFkOerpSA8IGdha3VyZWlqaWRvdVwgOwor6IGW5Zyw5beh56S8IDwgc2VpY2hpanVucmVpXCA7CivnpL7lm6Pms5XkurogPCBzaGFkYW5ob3VqaW5cIDsKK+aJgOeVquWcsCA8IHRva29yb2JhbmNoaVwgOwor5rOo6YeI5pu4IDwgY2h1dXNoYWt1c2hvXCA7CivosqjnianovLjpgIEgPCBrYW1vdHN1eXVzb3VcIDsKK+eJueW+tOmHjyA8IHRva3VjaG91cnlvdVwgOwor5q2j5aSa6KeS5b2iIDwgc2VpdGFrYWt1a2VpXCA7Civmh5Dlt6XlkIggPCBmdXRva29yb2d1YWlcIDsKK+mbu+awl+WuuemHjyA8IGRlbmtpeW91cnlvdVwgOwor5rqW56aB5rK755SjIDwganVua2luY2hpc2FuXCA7Civmj4/lhpnlipsgPCBieW91c2hhcnlva3VcIDsKK+WMluWtpuani+mAoCA8IGthZ2FrdWtvdXpvdVwgOwor55Sf54mp5a2mIDwgc2VpYnV0c3VnYWt1XCA7CivkuIDlhZrni6zoo4EgPCBpdHRvdWRva3VzYWlcIDsKK+eEoemZkOWwj+aVsCA8IG11Z2Vuc2hvdXN1dVwgOwor5ri+54S25LiA5L2TIDwga29uemVuJydpdHRhaVwgOwor5rW35bqV5Zyw6ZyHIDwga2FpdGVpamlzaGluXCA7CivljZrlo6voqrLnqIsgPCBoYWt1c2hpa2F0ZWlcIDsKK+W5s+Wdh+Wvv+WRvSA8IGhlaWtpbmp1bXlvdVwgOwor5biC5rCR6YGL5YuVIDwgc2hpbWluJyd1bmRvdVwgOwor6KiY5b+15Ye654mIIDwga2luZW5zaHVwcGFuXCA7Civoo4Xnva7liLblvqEgPCBzb3VjaGlzZWlneW9cIDsKK+WOn+ijgeWIpOaJgCA8IGdlbnNhaWJhbnNob1wgOwor5qSc6KiO5aeU5ZOh5LyaIDwga2VudG91aWlua2FpXCA7CivljprnlJ/lpKfoh6MgPCBrb3VzZWlkYWlqaW5cIDsKK+ayueiEguW3pealrSA8IHl1c2hpa291Z3lvdVwgOwor57eP5pSv6YWN5Lq6IDwgc291c2hpaGFpbmluXCA7Civoqq3mm7jlipsgPCBkb2t1c2hvcnlva3VcIDsKK+aXpeeFp+aZgumWkyA8IG5pc3Nob3VqaWthblwgOwor5LiA6Iis5pWZ5pu4IDwgaXBwYW5reW91c2hvXCA7CivkuIDpg6jlp4vntYIgPCBpY2hpYnVzaGlqdXVcIDsKK+mWouaVsOWOn+WeiyA8IGthbnN1dWdlbmtlaVwgOwor55+l6K2Y5qyyIDwgY2hpc2hpa2l5b2t1XCA7CivkuInph43lrp3lhqAgPCBzYW5qdXVob3VrYW5cIDsKK+WFqOmAn+WKmyA8IHplbnNva3VyeW9rdVwgOwor5q2T6YCB6L+O5LyaIDwga2Fuc291Z2Vpa2FpXCA7Civnt4rmgKXpgb/pm6MgPCBraW5reXV1aGluYW5cIDsKK+WIuemCo+S4u+e+qSA8IHNldHN1bmFzaHVnaVwgOwor5bel5qWt5Zyw5Yy6IDwga291Z3lvdWNoaWt1XCA7CivmiJHmpb3lpJrluIIgPCBnYXJha3V0YWljaGlcIDsKK+ihhuitsOmZouitsOWToSA8IHNodXVnaWluZ2lpblwgOwor6Lui5YaZ5o265p+TIDwgdGVuc2hhbmFzc2VuXCA7Civoh6rnhLbngb3lrrMgPCBzaGl6ZW5zYWlnYWlcIDsKK+a3see0heiJsiA8IHNoaW5rb3VzaG9rdVwgOwor5aSp5LqV5qOn5pW3IDwgdGVuam91c2FqaWtpXCA7CivlhYjooYzmnaHku7YgPCBzZW5rb3Vqb3VrZW5cIDsKK+aciOS4i+awt+S6uiA8IGdla2thaHlvdWppblwgOwor5pyq5bm0IDwgaGl0c3VqaWRvc2hpXCA7CivosLfmh5AgPCB0YW5pYnV0b2tvcm9cIDsKK+mBuOiAg+WnlOWToeS8miA8IHNlbmtvdWlpbmthaVwgOwor5Yy76Jas5YiG5qWtIDwgaXlha3VidW5neW91XCA7Civpm4HpqqggPCBrYXJpZ2FuZWJvbmVcIDsKK+i6q+WFg+S/neiovCA8IG1pbW90b2hvc2hvdVwgOwor6Luf552A6Zm4IDwgbmFuY2hha3VyaWt1XCA7CivntJTmraPnp5HlraYgPCBqdW5zZWlrYWdha3VcIDsKK+S6jOmHjemBk+W+syA8IG5panV1ZG91dG9rdVwgOwor5oKy5Zac5Lqk5LqkIDwgaGlraWtvbW9nb21vXCA7Civnt4rmgKXli5XorbAgPCBraW5reXV1ZG91Z2lcIDsKK+WkqumZvembu+axoCA8IHRhaXlvdWRlbmNoaVwgOwor6KGX6aCt6Yyy6Z+zIDwgZ2FpdG91cm9rdW9uXCA7Civlm73pmpvmqZ/plqIgPCBrb2t1c2Fpa2lrYW5cIDsKK+adseWPoyA8IGhpZ2FzaGlndWNoaVwgOwor5YmN5YK+5ae/5YuiIDwgemVua2Vpc2hpc2VpXCA7CivluLDlsZ7mhI/orZggPCBraXpva3Vpc2hpa2lcIDsKK+WFrOihhuS+v+aJgCA8IGtvdXNodXViZW5qb1wgOwor5pel5pys5Zu95YaFIDwgbmlob25rb2t1bmFpXCA7CivoibLmg4Xni4IgPCBzaGlraWpvdWt5b3VcIDsKK+mDteS+v+iiiyA8IHl1dWJpbmJ1a3Vyb1wgOwor6YG45rCR5oCd5oOzIDwgc2VubWluc2hpc291XCA7CivlkoDlmrzpgYvli5UgPCBzb3NoYWt1dW5kb3VcIDsKK+iomOW/teWGmeecnyA8IGtpbmVuc2hhc2hpblwgOwor6Ki65a+f5Y+wIDwgc2hpbnNhdHN1ZGFpXCA7Civms6HmsqvnmoQgPCBob3VtYXRzdXRla2lcIDsKK+eBq+eHteW4g+WboyA8IGtvdGF0c3VidXRvblwgOwor5Luu6YeI5pS+IDwga2FyaXNoYWt1aG91XCA7CivlhajpnaLnpoHmraIgPCB6ZW5tZW5raW5zaGlcIDsKK+WMl+WbnuW4sOe3miA8IGtpdGFrYWlraXNlblwgOwor6YCj5ZCI6Imm6ZqKIDwgcmVuZ291a2FudGFpXCA7CivmgKXpgLLnmoQgPCBreXV1c2hpbnRla2lcIDsKK+S6uuWRveaVkeWKqSA8IGppbm1laWt5dXVqb1wgOwor5oim5LqJ54q25oWLIDwgc2Vuc291am91dGFpXCA7CivlpbPlrZDlpKflraYgPCBqb3NoaWRhaWdha3VcIDsKK+WbveWjq+eEoeWPjCA8IGtva3VzaGltdXNvdVwgOwor5bmz5Z2H5L2Z5ZG9IDwgaGVpa2luJyd5b21laVwgOwor5LqL5L6L56CU56m2IDwgamlyZWlrZW5reXV1XCA7CivliIbmlaPmipXos4cgPCBidW5zYW50b3VzaGlcIDsKK+iouuWvn+WIuCA8IHNoaW5zYXRzdWtlblwgOwor5qW15bCP5YCkIDwga3lva3VzaG91Y2hpXCA7Civlgbblg4/npLzmi50gPCBndXV6b3VyZWloYWlcIDsKK+WKueaenOimv+mdoiA8IGtvdWthdGVraW1lblwgOwor57eK5by157ep5ZKMIDwga2luY2hvdWthbndhXCA7CivkuI3oqLHopIfoo70gPCBmdWt5b2Z1a3VzZWlcIDsKK+WMl+asp+elnuipsSA8IGhva3VvdXNoaW53YVwgOwor5Lq65LqL6KGM5pS/IDwgamluamlneW91c2VpXCA7CivmmK3lkozlubTplpMgPCBzaG91d2FuZW5rYW5cIDsKK+WbveWtl+WVj+mhjCA8IGtva3VqaW1vbmRhaVwgOwor5L6b6KGA6ICFIDwga3lvdWtldHN1c2hhXCA7Civlm73li5nlpKfoh6MgPCBrb2t1bXVkYWlqaW5cIDsKK+adr+S6iyA8IHNha2F6dWtpZ290b1wgOwor6KiA6Kqe6Zqc5a6zIDwgZ2VuZ29zaG91Z2FpXCA7Civlho3osqnkvqHmoLwgPCBzYWloYW5rYWtha3VcIDsKK+W5s+Wdh+agquS+oSA8IGhlaWtpbmthYnVrYVwgOwor5a6J5oGv6aaZ6YW4IDwgYW5zb2t1a291c2FuXCA7CivorZzku6PlpKflkI0gPCBmdWRhaWRhaW15b3VcIDsKK+WPjuWFpeW9uSA8IHNodXVueXV1eWFrdVwgOwor56+A55So6ZuGIDwgc2V0c3V5b3VzaHV1XCA7CivphY3pgZTmlpkgPCBoYWl0YXRzdXJ5b3VcIDsKK+mhnue+qeiqnui+nuWFuCA8IHJ1aWdpZ29qaXRlblwgOwor6YGT6Lev6KiI55S7IDwgZG91cm9rZWlrYWt1XCA7Civlj6Toh6rli5Xou4ogPCBmdXJ1amlkb3VzaGFcIDsKK+eLrOaelSA8IGhpdG9yaW1ha3VyYVwgOwor5a655ae/56uv6bqXIDwgeW91c2hpdGFucmVpXCA7CivmlrDljZLogIUgPCBzaGluc290c3VzaGFcIDsKK+iri+iyoOalreiAhSA8IHVrZW9pZ3lvdXNoYVwgOwor6YCa5bi45Y+j6KqeIDwgdHN1dWpvdWtvdWdvXCA7CivlnKjlpJbpgqbkurogPCB6YWlnYWlob3VqaW5cIDsKK+WPjuebo+WKmyA8IHNodXVrYW5yeW9rdVwgOwor6ZaL5pS+57WM5riIIDwga2FpaG91a2VpemFpXCA7Civnmb7okYnnrrEgPCBoeWFrdXlvdWJha29cIDsKK+S9k+aTjeertuaKgCA8IHRhaXNvdWt5b3VnaVwgOwor5Yq05YON5ZCM55ufIDwgcm91ZG91ZG91bWVpXCA7Civlm73pmpvpg73luIIgPCBrb2t1c2FpdG9zaGlcIDsKK+acieWIuumJhOe3miA8IHl1dXNoaXRlc3NlblwgOwor5Zuj5L2T6KGM5YuVIDwgZGFudGFpa291ZG91XCA7Civlv5znlKjmlbDlraYgPCBvdXlvdXN1dWdha3VcIDsKK+WNlOWKm+iAhSA8IGt5b3VyeW9rdXNoYVwgOwor5Lqk6YCa5beh5p+7IDwga291dHN1dWp1bnNhXCA7CivpgJ/pgZTkvr8gPCBzb2t1dGF0c3ViaW5cIDsKK+eEoeaVteiJpumaiiA8IG11dGVraWthbnRhaVwgOwor6Iiq56m65Lya56S+IDwga291a3V1Z2Fpc2hhXCA7CivpioDnmb3oibIgPCBnaW5oYWt1c2hva3VcIDsKK+Wkp+aUv+WliemChCA8IHRhaXNlaWhvdWthblwgOwor5LiN5pKT5LiN5bGIIDwgZnV0b3VmdWt1dHN1XCA7Civnm7jplqLplqLkv4IgPCBzb3VrYW5rYW5rZWlcIDsKK+WQjOebn+e9t+alrSA8IGRvdW1laWhpZ3lvdVwgOwor5aS+56u55qGDIDwga3lvdWNoaWt1dG91XCA7Civou43lgpnnq7bkuokgPCBndW5iaWt5b3Vzb3VcIDsKK+W9ouWuueWLleipniA8IGtlaXlvdWRvdXNoaVwgOwor6KOc57Wm5bm557eaIDwgaG9reXV1a2Fuc2VuXCA7CivnlZznlJ/pgZMgPCBjaGlrdXNob3Vkb3VcIDsKK+mbqui+seaIpiA8IHNldHN1am9rdXNlblwgOwor54K65pu/6KOB5a6aIDwga2F3YXNlc2FpdGVpXCA7Civooajnj77kuLvnvqkgPCBoeW91Z2Vuc2h1Z2lcIDsKK+adseS6rOedgCA8IHRvdWt5b3VjaGFrdVwgOwor6Zu75L+h5bGAIDwgZGVuc2hpbmt5b2t1XCA7CivmlofmlZnlnLDljLogPCBidW5reW91Y2hpa3VcIDsKK+mdkuiJsueXhyA8IHNlaXNob2t1c2hvdVwgOwor5bqD5ZGK5Li7IDwga291a29rdW51c2hpXCA7Civph5HlsZ7nlrLlirQgPCBraW56b2t1aGlyb3VcIDsKK+WPs+aWuemrmOm6l+alvSA8IHVob3Vrb21hZ2FrdVwgOwor5by35Yi255aO6ZaLIDwga3lvdXNlaXNva2FpXCA7CivmnbHkuqznmbogPCB0b3VreW91aGF0c3VcIDsKK+itpuimlue3j+eboyA8IGtlaXNoaXNvdWthblwgOwor5Luj6KGo56S+5ZOhIDwgZGFpaHlvdXNoYWluXCA7CivlgJ/lsYvkvY/lsYUgPCBzaGFrdXlhenVtYWlcIDsKK+W+tOWFteWItuW6piA8IGNob3VoZWlzZWlkb1wgOwor55+t5pyf5aSn5a2mIDwgdGFua2lkYWlnYWt1XCA7Civnq4vkvZPmlL7pgIEgPCByaXR0YWlob3Vzb3VcIDsKK+WFqOi6q+a1tCA8IHplbnNoaW4nJ3lva3VcIDsKK+Wcp+i/q+WMheW4ryA8IGFwcGFrdWhvdXRhaVwgOwor5aSJ6LOq6ICFIDwgaGVuc2hpdHN1c2hhXCA7CivpgJrnlKjmnJ/plpMgPCB0c3V1eW91a2lrYW5cIDsKK+WLieW8t+aZgumWkyA8IGJlbmt5b3VqaWthblwgOwor5oi457GN6KyE5pysIDwga29zZWtpdG91aG9uXCA7Civlrrbluq3mlZnogrIgPCBrYXRlaWt5b3Vpa3VcIDsKK+WcsOmch+aOoumJsSA8IGppc2hpbnRhbmtvdVwgOwor6YG/6Zuj5qKv5a2QIDwgaGluYW5iYXNoaWdvXCA7CivlpI/mnKjnq4sgPCBuYXRzdWtvZGFjaGlcIDsKK+ekvuS8muWlieS7lSA8IHNoYWthaWhvdXNoaVwgOwor5ama5aSW5oCn5LqkIDwga29uZ2Fpc2Vpa291XCA7CivkuI3lj6/mipflipsgPCBmdWtha291cnlva3VcIDsKK+S4gOWhiiA8IGhpdG9rYXRhbWFyaVwgOwor6K2m5a+f5bqBIDwga2Vpc2F0c3VjaG91XCA7Civmpa3nlYzliJ0gPCBneW91a2FpaGF0c3VcIDsKK+Wft+ihjOapn+mWoiA8IHNoaWtrb3VraWthblwgOwor5Yuk5YuZ6KmV5a6aIDwga2lubXVoeW91dGVpXCA7CivlpKnplbfnr4AgPCB0ZW5jaG91c2V0c3VcIDsKK+W4uOeUqOWvvuaVsCA8IGpvdXlvdXRhaXN1dVwgOwor5aiY5b+DIDwgbXVzdW1lZ29rb3JvXCA7CivlpKfpgZPoirjkurogPCBkYWlkb3VnZWluaW5cIDsKK+m7kumiqOeZvembqCA8IGtva3VmdXVoYWt1dVwgOwor6IKl5Y6a5oCn6by754KOIDwgaGlrb3VzZWliaWVuXCA7CivpioDooYzmpa3li5kgPCBnaW5rb3VneW91bXVcIDsKK+ePvuWcsOiqv+afuyA8IGdlbmNoaWNob3VzYVwgOwor6YGg5rSL6Iiq5rW3IDwgZW4nJ3lvdWtvdWthaVwgOwor5aSW5Lqk6Zai5L+CIDwgZ2Fpa291a2Fua2VpXCA7Civnp4HlrabliqnmiJAgPCBzaGlnYWt1am9zZWlcIDsKK+eUo+ikpeeGsSA8IHNhbmpva3VuZXRzdVwgOwor54Sh55eb5YiG5aipIDwgbXV0c3V1YnVuYmVuXCA7CivkuI3oia/lgrXmqKkgPCBmdXJ5b3VzYWlrZW5cIDsKK+WcsOWfn+aZguWIuyA8IGNoaWlraWppa29rdVwgOwor5Ye554mI5Y2w5Yi3IDwgb3VoYW5pbnNhdHN1XCA7Civln7rlubnnlKPmpa0gPCBraWthbnNhbmd5b3VcIDsKK+i3r+S4iumnkOi7iiA8IHJvam91Y2h1dXNoYVwgOwor5Y2Y5Yud5byPIDwgdGFuc2hvdXNoaWtpXCA7CivkupzphbjljJbnqpLntKAgPCBhc2Fua2FjaGlzc29cIDsKK+mmluiEs+S8muirhyA8IHNodW5vdWthaWRhblwgOwor54us6KOB5pS/5rK7IDwgZG9rdXNhaXNlaWppXCA7CivlpJbkuqTllY/poYwgPCBnYWlrb3Vtb25kYWlcIDsKK+mgremggumqqCA8IHRvdWNob3Vrb3RzdVwgOwor56C055Sj55Sz6KuLIDwgaGFzYW5zaGluc2VpXCA7Civpg7flnJ/oirjog70gPCBreW91ZG9nZWlub3VcIDsKK+W+jOaWueWcsOWfnyA8IGtvdWhvdWNoaWlraVwgOwor5aSq6Zm95pS+5bCEIDwgdGFpeW91aG91c2hhXCA7Civlo4rooYDnl4UgPCBrYWlrZXRzdWJ5b3VcIDsKK+ilv+a0i+aWh+aYjiA8IHNlaXlvdWJ1bm1laVwgOwor5oyv5pu/6Ly46YCBIDwgZnVyaWthZXl1c291XCA7CivkuqTmj5vmnaHku7YgPCBrb3VrYW5qb3VrZW5cIDsKK+eZuuihjOW4guWgtCA8IGhha2tvdXNoaWpvdVwgOwor5LiA5pio5pio5bm0IDwgc2FraW90b3Rvc2hpXCA7Civoo73oj5Pmpa3ogIUgPCBzZWlrYWd5b3VzaGFcIDsKK+eci+adv+WomCA8IGthbmJhbm11c3VtZVwgOwor5oSb5Zu95Zuj5L2TIDwgYWlrb2t1ZGFudGFpXCA7CivlpInlvaLopo/liYcgPCBoZW5rZWlraXNva3VcIDsKK+S6uuawl+aKleelqCA8IG5pbmtpdG91aHlvdVwgOwor55S35aWz5bmz562JIDwgZGFuam9ieW91ZG91XCA7Civpg7Xkvr/okYnmm7ggPCB5dXViaW5oYWdha2lcIDsKK+e3qOmbhuWxgCA8IGhlbnNodXVreW9rdVwgOwor5pm05b6M6ZuoIDwgaGFyZW5vY2hpYW1lXCA7CivluILloLTmkqTpgIAgPCBzaGlqb3V0ZXR0YWlcIDsKK+WuieWumuWQjOS9jeS9kyA8IGFudGVpZG91aXRhaVwgOwor5a6a5pyf5qSc6Ki6IDwgdGVpa2lrZW5zaGluXCA7CivmtYHli5Xpo58gPCByeXV1ZG91c2hva3VcIDsKK+Wkj+elrSA8IG5hdHN1bWF0c3VyaVwgOwor5Zuj5L2T56u25oqAIDwgZGFudGFpa3lvdWdpXCA7Civpo5/pgZPmpb0gPCBzaG9rdWRvdXJha3VcIDsKK+awkemWk+Wbo+S9kyA8IG1pbmthbmRhbnRhaVwgOwor5bCB5bu65oCd5oOzIDwgaG91a2Vuc2hpc291XCA7CivoiKrntprot53pm6IgPCBrb3V6b2t1a3lvcmlcIDsKK+WPjOWzsOmnsemnnSA8IHNvdWhvdXJha3VkYVwgOwor55m+56eR5YWo5pu4IDwgaHlha2themVuc2hvXCA7CivoqabooYzpjK/oqqQgPCBzaGlrb3VzYWt1Z29cIDsKK+W3peWgtOWcsOW4ryA8IGtvdWpvdWNoaXRhaVwgOwor5q+b57mU6YymIDwga2VvcmluaXNoaWtpXCA7CivmlL/msrvmlLnpnakgPCBzZWlqaWthaWtha3VcIDsKK+W4guawkeS8mumkqCA8IHNoaW1pbmthaWthblwgOwor5rGC5Lq65Y+jIDwga3l1dWppbmd1Y2hpXCA7CivmnInpmZDkvJrnpL4gPCB5dXVnZW5nYWlzaGFcIDsKK+mHjeWVhuS4u+e+qSA8IGp1dXNob3VzaHVnaVwgOwor6aeF5YmN5bqD5aC0IDwgZWtpbWFlaGlyb2JhXCA7CivntYLnnYDpp4UgPCBzaHV1Y2hha3Vla2lcIDsKK+aUv+ayu+iyrOS7uyA8IHNlaWppc2VraW5pblwgOwor6buS5rC054axIDwga29rdXN1aW5ldHN1XCA7Civku67pgLLntJogPCBrYXJpc2hpbmt5dXVcIDsKK+WwgualreS4u+WppiA8IHNlbmd5b3VzaHVmdVwgOwor54++5aC055uj552jIDwgZ2VuYmFrYW50b2t1XCA7Civlhazou6LlkajmnJ8gPCBrb3V0ZW5zaHV1a2lcIDsKK+WPo+S4ieWRs+e3miA8IGt1Y2hpamFtaXNlblwgOwor6YWN6YGU5YWIIDwgaGFpdGF0c3VzYWtpXCA7Civlr53nianoqp4gPCBuZW1vbm9nYXRhcmlcIDsKK+S4gOaYqOaYqOWknCA8IGlzc2FrdXNha3V5YVwgOwor6Iul5q6/5Y6fIDwgd2FrYXRvbm9iYXJhXCA7CivooYDmuIXogp3ngo4gPCBrZXNzZWlrYW4nJ2VuXCA7Civkurrot6HmnKrouI8gPCBqaW5zZWtpbWl0b3VcIDsKK+W8t+WItuS/nemZuiA8IGt5b3VzZWlob2tlblwgOwor5LiA5pyb5Y2D6YeMIDwgaWNoaWJvdXNlbnJpXCA7CivlhrfolLXlrqQgPCByZWl6b3VzaGl0c3VcIDsKK+WIkeWLmeaJgOmVtyA8IGtlaW11c2hvY2hvdVwgOwor5aC05YaF5pS+6YCBIDwgam91bmFpaG91c291XCA7CivmnJ3kuInmmq7lm5sgPCBjaG91c2FuYm9zaGlcIDsKK+emj+elieWbveWutiA8IGZ1a3VzaGlrb2trYVwgOwor5rKh5Lqk5riJIDwgYm90c3Vrb3VzaG91XCA7CivplbfliIDkuIDmnp0gPCBjaG91dG91aXNzaGlcIDsKK+mdmeiEiOeYpCA8IGpvdW15YWt1cnl1dVwgOwor54Sh57ea5bel5a2mIDwgbXVzZW5rb3VnYWt1XCA7Civli53liKnmipXmiYsgPCBzaG91cml0b3VzaHVcIDsKK+Wkqeawl+amguazgSA8IHRlbmtpZ2Fpa3lvdVwgOwor6aqo57WE57mUIDwga290c3Vzb3NoaWtpXCA7CivljYPljZLplbcgPCBzZW5zb3RzdWNob3VcIDsKK+eEoeW4uOi/hemAnyA8IG11am91amluc29rdVwgOwor6KGM5YuV56eR5a2mIDwga291ZG91a2FnYWt1XCA7Civnm7TovYTlnLAgPCBjaG9ra2F0c3VjaGlcIDsKK+S6iOmYsuazqOWwhCA8IHlvYm91Y2h1dXNoYVwgOwor5piU5byPIDwgbXVrYXNoaXNoaWtpXCA7CivmpbXnp5jmg4XloLEgPCBnb2t1aGlqb3Vob3VcIDsKK+WwgeW7uuekvuS8miA8IGhvdWtlbnNoYWthaVwgOwor5LiA562L57mpIDwgaGl0b3N1amluYXdhXCA7CivlirTkvb/ntJvkuokgPCByb3VzaGlmdW5zb3VcIDsKK+iHquWtpuiHque/kiA8IGppZ2FrdWppc2h1dVwgOwor5LiN6YCj57aa57eaIDwgZnVyZW56b2t1c2VuXCA7CivmsrvlpJbms5XmqKkgPCBjaGlnYWlob3VrZW5cIDsKK+e1jOa4iOWkluS6pCA8IGtlaXphaWdhaWtvdVwgOwor5YiD54mp5LiJ5pinIDwgaGFtb25vemFubWFpXCA7CivlhYnlrabnuYrntq0gPCBrb3VnYWt1c2VuJydpXCA7CivlsLHogbfpm6MgPCBzaHV1c2hva3VuYW5cIDsKK+WFqOS8keatouespiA8IHplbmt5dXVzaGlmdVwgOwor5ZKM5rSL5oqY6KG3IDwgd2F5b3VzZXRjaHV1XCA7CivmuIXnrpfkvJrnpL4gPCBzZWlzYW5nYWlzaGFcIDsKK+W7g+iXqee9ruecjCA8IGhhaWhhbmNoaWtlblwgOwor6Ieo5bqK6Kyb576pIDwgcmluc2hvdWtvdWdpXCA7CivoqqzntYznr4AgPCBzZWtreW91YnVzaGlcIDsKK+e0lOaXpeacrOmiqCA8IGp1bicnbmlob25mdXVcIDsKK+aWh+Wtl+espuWPt+ezuyA8IG1vamlmdWdvdWtlaVwgOwor5oyZ5Zu95LiA6Ie0IDwga3lva29rdWl0Y2hpXCA7CivlpKfooYbpgYvli5UgPCB0YWlzaHV1dW5kb3VcIDsKK+W/g+i6q+eXhyA8IHNoaW5zaGluc2hvdVwgOwor5biC5aC06Kq/5p+7IDwgc2hpam91Y2hvdXNhXCA7CivlhazplovlpJbkuqQgPCBrb3VrYWlnYWlrb3VcIDsKK+mdouS8muWupCA8IG1lbmthaXNoaXRzdVwgOwor54us5Ym15YqbIDwgZG9rdXNvdXJ5b2t1XCA7CivlprnlqJggPCBpbW91dG9tdXN1bWVcIDsKK+Wkp+iUteWkp+iHoyA8IG9va3VyYWRhaWppblwgOwor5L+u5q2j5LqI566XIDwgc2h1dXNlaXlvc2FuXCA7Civlp4vmpa3lvI8gPCBzaGlneW91c2hpa2lcIDsKK+ihjOaUv+apn+mWoiA8IGd5b3VzZWlraWthblwgOwor5Yy755mC6Ly46YCB5qmfIDwgaXJ5b3V5dXNvdWtpXCA7CivmnaXlrqLnrYsgPCByYWlreWFrdXN1amlcIDsKK+mAsuWtpuWhviA8IHNoaW5nYWt1anVrdVwgOwor55uu55qE5qC8IDwgbW9rdXRla2lrYWt1XCA7CivmlL/mlZnliIbpm6IgPCBzZWlreW91YnVucmlcIDsKK+aQreS5l+ahiOWGhSA8IHRvdWpvdWFuJyduYWlcIDsKK+S6lOS6uuWbg+WtkCA8IGdvbmluYmF5YXNoaVwgOwor54us5ZaE5Li7576pIDwgZG9rdXplbnNodWdpXCA7CivoiKrnqbrmm7jnsKEgPCBrb3VrdXVzaG9rYW5cIDsKK+izm+WQpuWQjOelqCA8IHNhbnBpZG91aHlvdVwgOwor5Lq65paH5a2m5rS+IDwgamluYnVuZ2FrdWhhXCA7Civmj7TnlKjnlJ/nlKMgPCBlbicneW91c2Vpc2FuXCA7CivkuI3ogJXkvZzlnLAgPCBmdWtvdXNha3VjaGlcIDsKK+Wkp+S9v+WFrOmCuCA8IHRhaXNoaWtvdXRlaVwgOwor5rG66K2w5LqL6aCFIDwga2V0c3VnaWppa291XCA7CivmoKHmraPkv4IgPCBrb3VzZWlnYWthcmlcIDsKK+WKm+iHquaFoiA8IGNoaWthcmFqaW1hblwgOwor6YGO6YW45YyW5rC057SgIDwga2FzYW5rYXN1aXNvXCA7CivlsYvmlbfnlLogPCB5YXNoaWtpbWFjaGlcIDsKK+a4qeazieeZguazlSA8IG9uc2VucnlvdWhvdVwgOwor5LiA6aGw5LiA56yRIDwgaXBwaW4nJ2lzc2hvdVwgOwor6Zu75rCX5L+h5Y+3IDwgZGVua2lzaGluZ291XCA7CivpnJzmn7EgPCBzaGltb2Jhc2hpcmFcIDsKK+acjemjvuWTgSA8IGZ1a3VzaG9rdWhpblwgOwor6Iao5by1546HIDwgYm91Y2hvdXJpdHN1XCA7CivlsILnrqHmsLTln58gPCBzZW5rYW5zdWlpa2lcIDsKK+WkqeS9k+W0h+aLnSA8IHRlbnRhaXN1dWhhaVwgOwor6Imv5b+D55qEIDwgcnlvdXNoaW50ZWtpXCA7Civnm7jkupLlj4LnhacgPCBzb3Vnb3NhbnNob3VcIDsKK+WJsueDueaWmeeQhiA8IGthcHBvdXJ5b3VyaVwgOwor56m65b+15LuPIDwgc29yYW5lbmJ1dHN1XCA7Civpg4rlpJbpm7vou4ogPCBrb3VnYWlkZW5zaGFcIDsKK+eahueahuanmCA8IG1pbmFtaW5hc2FtYVwgOwor5L+u5q2j5Li7576pIDwgc2h1dXNlaXNodWdpXCA7Civog73njofntaYgPCBub3VyaXRzdWt5dXVcIDsKK+ijnOW8t+iovOaLoCA8IGhva3lvdXNob3Vrb1wgOwor5pif5Y2wIDwgaG9zaGlqaXJ1c2hpXCA7CivloIbnqY3niakgPCB0YWlzZWtpYnV0c3VcIDsKK+S6uuadkOmKgOihjCA8IGppbnphaWdpbmtvdVwgOwor6L+R5Luj6Z+z5qW9IDwga2luZGFpb25nYWt1XCA7Civoo4/pnaLlt6XkvZwgPCByaW1lbmtvdXNha3VcIDsKK+azleayu+ekvuS8miA8IGhvdWNoaXNoYWthaVwgOwor5Ye657SN5L+CIDwgc3VpdG91Z2FrYXJpXCA7CivlpKfnm6TmjK/oiJ4gPCBvb2JhbmJ1cnVtYWlcIDsKK+S4ieWykOS7o+ihqCA8IHNhbmdpZGFpaHlvdVwgOwor6JOE56mN566hIDwgY2hpa3VzZWtpa2FuXCA7Civni6zouqvogIUgPCBkb2t1c2hpbm1vbm9cIDsKK+aVmeWToee1hOWQiCA8IGt5b3Vpbmt1bWlhaVwgOwor5rW36Zuj5pWR5YqpIDwga2FpbmFua3l1dWpvXCA7CivpjLLpn7PmlL7pgIEgPCByb2t1b25ob3Vzb3VcIDsKK+S4ieiAheWHoemAgCA8IHNhbnNoYWJvbnRhaVwgOwor55+z56u56ImyIDwgc2VraWNoaWt1aXJvXCA7Civnm7TohbjnmYwgPCBjaG9rdWNob3VnYW5cIDsKK+eqgeeZuueahCA8IHRvcHBhdHN1dGVraVwgOwor5pel5pys5rW35rWBIDwgbmlob25rYWlyeXV1XCA7Civlj7LkuIrmnIDlpKcgPCBzaGlqb3VzYWlkYWlcIDsKK+iKuOihk+eahCA8IGdlaWp1dHN1dGVraVwgOwor6Z2e5pm26LOqIDwgaGlzaG91c2hpdHN1XCA7CivoqJjmhrbpmpzlrrMgPCBraW9rdXNob3VnYWlcIDsKK+S4jeWKtOaJgOW+lyA8IGZ1cm91c2hvdG9rdVwgOwor6ICB6I2Y5oCd5oOzIDwgcm91c291c2hpc291XCA7CivnjononIDpu40gPCB0b3Vtb3Jva29zaGlcIDsKK+i7jemcgOW3pealrSA8IGd1bmp1a291Z3lvdVwgOwor5bCP5b+D6ICFIDwgc2hvdXNoaW5tb25vXCA7Civpm6LlkIjpm4bmlaMgPCByaWdvdXNodXVzYW5cIDsKK+iJr+Wmu+izouavjSA8IHJ5b3VzYWlrZW5ib1wgOwor6LuN5Y+45Luk5a6YIDwgZ3Vuc2hpcmVpa2FuXCA7Civpu5LmsLTlvJUgPCBrdXJvbWl6dWhpa2lcIDsKK+iyv+aYk+S8muekviA8IGJvdWVraWdhaXNoYVwgOwor54eQ6YW46IKl5paZIDwgcmluc2FuaGlyeW91XCA7CivmhJ/nhrHliaQgPCBrYW4nJ25ldHN1emFpXCA7CivnhKHpmZDosqzku7sgPCBtdWdlbnNla2luaW5cIDsKK+Wor+alveWupCA8IGdvcmFrdXNoaXRzdVwgOwor6Y6u55eb6JasIDwgY2hpbnRzdXV5YWt1XCA7Civnp5HlrabmgJ3mg7MgPCBrYWdha3VzaGlzb3VcIDsKK+Wbm+a1t+WQjOiDniA8IHNoaWthaWRvdWhvdVwgOwor5Luj55CG5aeU5Lu754q2IDwgZGFpcmlpbmluam91XCA7CivlgaXlurfllY/poYwgPCBrZW5rb3Vtb25kYWlcIDsKK+aEn+WCt+S4u+e+qSA8IGthbnNob3VzaHVnaVwgOwor6aas6aCt6Kaz6Z+zIDwgYmF0b3VrYW4nJ25vblwgOwor5aSp6aCC6Led6ZuiIDwgdGVuY2hvdWt5b3JpXCA7Civog73njofnmoQgPCBub3VyaXRzdXRla2lcIDsKK+iqv+afu+mDqOmVtyA8IGNob3VzYWJ1Y2hvdVwgOwor5ZCI5ZSx5puyIDwgZ2Fzc2hvdWt5b2t1XCA7CivkuLnpoILptrQgPCB0YW5jaG91ZHp1cnVcIDsKK+ihjOWLleWRveS7pCA8IGtvdWRvdW1laXJlaVwgOwor54K65pu/5omL5b2iIDwga2F3YXNldGVnYXRhXCA7CivotaTpgZPmsJflm6MgPCBzZWtpZG91a2lkYW5cIDsKK+epuuS4reiQveS4iyA8IGt1dWNodXVyYWtrYVwgOwor6Z2p5paw55qEIDwga2FrdXNoaW50ZWtpXCA7CivlrprmoLzojbfph40gPCB0ZWlrYWt1a2FqdXVcIDsKK+eCuuabv+mKgOihjCA8IGthd2FzZWdpbmtvdVwgOwor5a6Y6IO95Li7576pIDwga2FuJydub3VzaHVnaVwgOwor5a625bqt5pWZ5birIDwga2F0ZWlreW91c2hpXCA7CivmmLzlpJzlhbzooYwgPCBjaHV1eWFrZW5rb3VcIDsKK+WuouWVhuWjsiA8IGt5YWt1c2hvdWJhaVwgOwor5LiA5ous5byPIDwgaWtrYXRzdXNoaWtpXCA7CivnlZznlKPmpa0gPCBjaGlrdXNhbmd5b3VcIDsKK+S8muekvuWWtualrSA8IGthaXNoYWVpZ3lvdVwgOwor6KKL6bygIDwgZnVrdXJvbmV6dW1pXCA7CivllZPokpnmgJ3mg7MgPCBrZWltb3VzaGlzb3VcIDsKK+mdnuW+queSsOeahCA8IGhpanVua2FudGVraVwgOwor5paH5rCR57Wx5Yi2IDwgYnVubWludG91c2VpXCA7CivpgY7phbjljJbniakgPCBrYXNhbmthYnV0c3VcIDsKK+S4gOW/teeZuui1tyA8IGljaGluZW5ob2traVwgOwor5Ye66KGA5q27IDwgc2h1a2tldHN1c2hpXCA7CivogrLmiJDmoL3ln7kgPCBpa3VzZWlzYWliYWlcIDsKK+ePvuWgtOaknOiovCA8IGdlbmJha2Vuc2hvdVwgOwor5pmC5Luj6ICD6Ki8IDwgamlkYWlrb3VzaG91XCA7CivmhJ/luqboia/lpb0gPCBrYW5kb3J5b3Vrb3VcIDsKK+eZvemrqumgrSA8IHNoaXJhZ2FhdGFtYVwgOwor6YCP5piO5Lq66ZaTIDwgdG91bWVpbmluZ2VuXCA7CivmlrDlvaLlvI8gPCBzaGlua2Vpc2hpa2lcIDsKK+W4uOWll+aJi+autSA8IGpvdXRvdXNodWRhblwgOwor5YWx5pyJ54mpIDwga3lvdXl1dWJ1dHN1XCA7CivlkozlubPlt6XkvZwgPCB3YWhlaWtvdXNha3VcIDsKK+eUs+WRiueusSA8IHNoaW5rb2t1YmFrb1wgOwor5pqX5Lit6aOb6LqNIDwgYW5jaHV1aGl5YWt1XCA7Civkupzlr5LluK/msJflgJkgPCBha2FudGFpa2lrb3VcIDsKK+abuOeVmeaWmSA8IGtha2l0b21lcnlvdVwgOwor6auY6Z+z6YOo6KiY5Y+3IDwga291b25idWtpZ291XCA7CivkurrmsJHoo4HliKQgPCBqaW5taW5zYWliYW5cIDsKK+aWveihjOimj+WJhyA8IHNoaWtvdWtpc29rdVwgOwor5Y2K6Lqr5LiN6ZqPIDwgaGFuc2hpbmZ1enVpXCA7CivluIzph4jnhrEgPCBraXNoYWt1bmV0c3VcIDsKK+aZrumAmuWQjeipniA8IGZ1dHN1dW1laXNoaVwgOwor5bGx5Y+j55yMIDwgeWFtYWd1Y2hpa2VuXCA7Civln7fnrYbogIUgPCBzaGlwcGl0c3VzaGFcIDsKK+WvvuixoeevhOWbsiA8IHRhaXNob3VoYW4nJ2lcIDsKK+S6uuawkeaIpue3miA8IGppbm1pbnNlbnNlblwgOwor57Ch5piO5by35Zu6IDwga2FubWVpa3lvdWtvXCA7Civlj6/og73pgbjmip4gPCBrYW5vdXNlbnRha3VcIDsKK+Wxi+WGheertuaKgCA8IG9rdW5haWt5b3VnaVwgOwor5aSa5oOF5LuP5b+DIDwgdGFqb3VidXNzaGluXCA7CivljZjntJToqIjnrpcgPCB0YW5qdW5rZWlzYW5cIDsKK+WFrOihhumbu+ipsSA8IGtvdXNodXVkZW53YVwgOwor5ZWG5Y+W5byVIDwgc2hvdXRvcmloaWtpXCA7CivoirHoh6rli5Xou4ogPCBoYW5hamlkb3VzaGFcIDsKK+S9jeebuOW5vuS9leWtpiA8IGlzb3VraWthZ2FrdVwgOwor5qSN54mp5rK5IDwgc2hva3VidXRzdXl1XCA7CivmlL7olanmga/lrZAgPCBob3V0b3VtdXN1a29cIDsKK+WHuuihgOaWkSA8IHNodWtrZXRzdWhhblwgOwor5LyB55S75a6kIDwga2lrYWt1c2hpdHN1XCA7CivkvrXlhaXou40gPCBzaGluJydueXV1Z3VuXCA7CivlhpnnnJ/mqZ/lupcgPCBzaGFzaGlua2l0ZW5cIDsKK+a8geeNsueJqSA8IGd5b2tha3VidXRzdVwgOwor5LiJ562J6LuN5pu5IDwgc2FudG91Z3Vuc291XCA7Civnt4rmgKXpgK7mjZUgPCBraW5reXV1dGFpaG9cIDsKK+WKm+WtpueahCA8IHJpa2lnYWt1dGVraVwgOwor6LKe5pON6LmC6LqqIDwgdGVpc291anV1cmluXCA7Civlv4PogrrmqZ/og70gPCBzaGlucGFpa2lub3VcIDsKK+e0hOadn+S6iyA8IHlha3Vzb2t1Z290b1wgOwor6ZuM6ZuE5ZCM5qCqIDwgc2hpeXV1ZG91c2h1XCA7CivpoIbpoqjmuoDluIYgPCBqdW5wdXVtYW5wYW5cIDsKK+WtpuagoeazleS6uiA8IGdha2tvdWhvdWppblwgOwor5aSJ5L2N6Zu75rWBIDwgaGVuJydpZGVucnl1dVwgOwor5YmN5ZOo5Yuk5YuZIDwgemVuc2hvdWtpbm11XCA7CivntYzluLflrZAgPCBreW91a2F0YWJpcmFcIDsKK+a1t+a0i+enkeWtpiA8IGthaXlvdWthZ2FrdVwgOwor6L6y5rCR6YGL5YuVIDwgbm91bWluJyd1bmRvdVwgOwor54Gr5raI5aO3IDwgaGlrZXNoaXRzdWJvXCA7Civosqzku7vnr4Tlm7IgPCBzZWtpbmluaGFuJydpXCA7CivnmbrlhYnloZfmlpkgPCBoYWtrb3V0b3J5b3VcIDsKK+aEn+W/nOS9nOeUqCA8IGthbicnbm91c2F5b3VcIDsKK+WIqeS8kem8oCA8IHJpa3l1dW5lenVtaVwgOwor5a2Q5oyB5piG5biDIDwga29tb2NoaWtvbmJ1XCA7CivluILllrbkvY/lroUgPCBzaGllaWp1dXRha3VcIDsKK+mghuW/nOWKmyA8IGp1bicnbm91cnlva3VcIDsKK+S6i+alremDqOmVtyA8IGppZ3lvdWJ1Y2hvdVwgOwor5aSn6IOG5LiN5pW1IDwgZGFpdGFuZnV0ZWtpXCA7CivkvIrli6LlpKfnpZ7lrq4gPCBpc2VkYWlqaW5ndXVcIDsKK+WkqeWcsOWJtemAoCA8IHRlbmNoaXNvdXpvdVwgOwor5biC5aC057WM5riIIDwgc2hpam91a2VpemFpXCA7Civntprmn4QgPCB0c3VkenVraWdhcmFcIDsKK+S6iOWumuacn+aXpSA8IHlvdGVpa2lqaXRzdVwgOwor5Yy755mC5oqA6KGTIDwgaXJ5b3VnaWp1dHN1XCA7CivkuIvljYrouqsgPCBzaGltb2hhbnNoaW5cIDsKK+ihqOaxuuaoqSA8IGh5b3VrZXRzdWtlblwgOwor5oqe5LiA55qEIDwgdGFrdWl0c3V0ZWtpXCA7Civkvb/lvbnli5XoqZ4gPCBzaGlla2lkb3VzaGlcIDsKK+a1geWLleeJqSA8IHJ5dXVkb3VidXRzdVwgOwor6Zmz6L+w5pu4IDwgY2hpbmp1dHN1c2hvXCA7CivlvrTlhbXmpJzmn7sgPCBjaG91aGVpa2Vuc2FcIDsKK+iHquWutueZuumbuyA8IGppa2FoYXRzdWRlblwgOwor6L+95oK85byPIDwgdHN1aXRvdXNoaWtpXCA7CivlkIzoqp7lj43lvqkgPCBkb3Vnb2hhbnB1a3VcIDsKK+W8geirluWkp+S8miA8IGJlbnJvbnRhaWthaVwgOwor5LiA6Iis5oqV56WoIDwgaXBwYW50b3VoeW91XCA7CivkuIDkurrmga/lrZAgPCBoaXRvcmltdXN1a29cIDsKK+mjsumjn+eJqSA8IGluc2hva3VidXRzdVwgOwor6YCA5b256LuN5Lq6IDwgdGFpZWtpZ3VuamluXCA7CivkurrnlJ/mnIDmgqogPCBqaW5zZWlzYWlha3VcIDsKK+WNsOWKoOmbu+WcpyA8IGlua2FkZW4nJ2F0c3VcIDsKK+a2suaAp+mZkOeVjCA8IGVraXNlaWdlbmthaVwgOwor5LqM6YW45YyW54Kt57SgIDwgbmlzYW5rYXRhbnNvXCA7CivmoITppIrlrabogIUgPCBlaXlvdWdha3VzaGFcIDsKK+aYvOmjn+S8miA8IGNodXVzaG9rdWthaVwgOwor6YO95biC5Lqk6YCaIDwgdG9zaGlrb3V0c3V1XCA7CivnlZznlKPlraYgPCBjaGlrdXNhbmdha3VcIDsKK+S6pOaPm+aVmeaOiCA8IGtvdWthbmt5b3VqdVwgOwor5a2m55Sf5pmC5LujIDwgZ2FrdXNlaWppZGFpXCA7CivorZjlrZfnjocgPCBzaGlraWppcml0c3VcIDsKK+aEm+ekvueyvuelniA8IGFpc2hhc2Vpc2hpblwgOwor6ICB5YyW54++6LGhIDwgcm91a2FnZW5zaG91XCA7CivpvLvpq5jpq5ggPCBoYW5hdGFrYWRha2FcIDsKK+ekvuS8muWVj+mhjCA8IHNoYWthaW1vbmRhaVwgOwor55uy566h6YqD5Ym1IDwgbW91a2FuanV1c291XCA7CivnibnliKXms5UgPCB0b2t1YmV0c3Vob3VcIDsKK+adsea1t+WcsOaWuSA8IHRvdWthaWNoaWhvdVwgOwor5Ye65ryB5qipIDwgc2h1dHN1Z3lva2VuXCA7CivnmbrooYzkvJrnpL4gPCBoYWtrb3VnYWlzaGFcIDsKK+i/keaJgOWQiOWjgSA8IGtpbmpvZ2FwcGVraVwgOwor6Z+z5aOw5Zyn57iuIDwgb25zZWlhc3NodWt1XCA7CivmsJHml4/kuLvnvqkgPCBtaW56b2t1c2h1Z2lcIDsKK+WwgumWgOenkeebriA8IHNlbm1vbmthbW9rdVwgOwor5rib6YeP57WM5Za2IDwgZ2VucnlvdWtlaWVpXCA7CivnnaHnnKDkuI3otrMgPCBzdWltaW5idXNva3VcIDsKK+mBi+mAgeWlkee0hCA8IHVuc291a2VpeWFrdVwgOwor6Iie5Y+w5Lit57aZIDwgYnV0YWljaHV1a2VpXCA7CivkuIvlsaTpmo7ntJogPCBrYXNvdWthaWt5dXVcIDsKK+mztuiBt+S6uiA8IHRvYmlzaG9rdW5pblwgOwor57WM5riI6ZeY5LqJIDwga2VpemFpdG91c291XCA7CivkuI3oia/lsJHlpbMgPCBmdXJ5b3VzaG91am9cIDsKK+W/nOaPtOa8lOiqrCA8IG91ZW4nJ2VuemV0c3VcIDsKK+mOrumtguabsiA8IGNoaW5rb25reW9rdVwgOwor6KGM5YuV5Y2K5b6EIDwga291ZG91aGFua2VpXCA7Civlh7rmvJTmlpkgPCBzaHV0c3VlbnJ5b3VcIDsKK+WcsOmch+WcsOW4ryA8IGppc2hpbmNoaXRhaVwgOwor6YCa6YGO6LK/5piTIDwgdHN1dWthYm91ZWtpXCA7CivntbHoqIjlubTpkZEgPCB0b3VrZWluZW5rYW5cIDsKK+S6uuaJi+S4jei2syA8IGhpdG9kZWJ1c29rdVwgOwor6YCa5L+X55qEIDwgdHN1dXpva3V0ZWtpXCA7CivljYHkuK3lhavkuZ0gPCBqaXRjaHV1aGFra3VcIDsKK+a7i+W8t+mjsuaWmSA8IGppa3lvdWlucnlvdVwgOwor5Zub6KeS5Y+356K8IDwgc2hpa2FrdWdvdW1hXCA7Civlm7rlrproprPlv7UgPCBrb3RlaWthbicnbmVuXCA7CivkvY7pn7Ppg6joqJjlj7cgPCB0ZWlvbmJ1a2lnb3VcIDsKK+e1jOmok+enkeWtpiA8IGtlaWtlbmthZ2FndVwgOwor6I236Zu757KS5a2QIDwga2FkZW5yeXV1c2hpXCA7Civkurrlt6XnlJ/lkb0gPCBqaW5rb3VzZWltZWlcIDsKK+mbu+awl+aWmemHkSA8IGRlbmtpcnlvdWtpblwgOwor5b6A5b6p6JGJ5pu4IDwgb3VmdWt1aGFnYWtpXCA7CivkurrpgKDnn7PmsrkgPCBqaW56b3VzZWtpeXVcIDsKK+Wcn+ibjSA8IHRzdWNoaWJvdGFydVwgOwor5aSp56u654mh5Li5IDwgdGVuamlrdWJvdGFuXCA7CivlvqHpprPotbDmp5ggPCBnb2NoaXNvdXNhbWFcIDsKK+S+teWFpeiAhSA8IHNoaW4nJ255dXVzaGFcIDsKK+Wkqei3r+attOeoiyA8IHRlbnJvcmVraXRlaVwgOwor5YWx5ZCM5L6/5omAIDwga3lvdWRvdWJlbmpvXCA7CivmmpfmrrrmnKrpgYIgPCBhbnNhdHN1bWlzdWlcIDsKK+acquaJleiyu+eUqCA8IG1paGFyYWloaXlvdVwgOwor56m65Ye65by1IDwga2FyYXNodXRjaG91XCA7Civnm7jkupLphY3lsZ4gPCBzb3Vnb2hhaXpva3VcIDsKK+egtOmhlOS4gOeskSA8IGhhZ2FuJydpc3Nob3VcIDsKK+ihgOWcp+ioiCA8IGtldHN1YXRzdWtlaVwgOwor6IOG5rGB6LOqIDwgdGFuanV1c2hpdHN1XCA7CivmsrvnmYLlirnmnpwgPCBjaGlyeW91a291a2FcIDsKK+eMn+WumOWItuW6piA8IHJ5b3VrYW5zZWlkb1wgOwor5Y+O5a655oKj6ICFIDwgc2h1dXlvdWthbmphXCA7CivmrabpmbXmoYPmupAgPCBidXJ5b3V0b3VnZW5cIDsKK+S6uuawkeaJgOaciSA8IGppbm1pbnNob3l1dVwgOwor5Y+N5bCE5L+C5pWwIDwgaGFuc2hha2Vpc3V1XCA7Civlt6Xmpa3mhI/ljKAgPCBrb3VneW91aXNob3VcIDsKK+ebuOWvvuipleS+oSA8IHNvdXRhaWh5b3VrYVwgOwor57WM5riI5ZWP6aGMIDwga2VpemFpbW9uZGFpXCA7Civpu4TnoqfnjokgPCBrb3VoZWtpZ3lva3VcIDsKK+malOaciOWIiiA8IGtha3VnZXRzdWthblwgOwor5LiJ5Y2B5YWt6KiIIDwgc2FuanV1cm9ra2VpXCA7Civmrovmpa3miYvlvZMgPCB6YW5neW91dGVhdGVcIDsKK+aKleeQg+WLleS9nCA8IHRvdWt5dXVkb3VzYVwgOwor6Ziy54G96KiT57e0IDwgYm91c2Fpa3VucmVuXCA7CivogJDnlKjlubTmlbAgPCB0YWl5b3VuZW5zdXVcIDsKK+awkeWumuaGsuazlSA8IG1pbnRlaWtlbnBvdVwgOwor56aP5Yip5Y6a55SfIDwgZnVrdXJpa291c2VpXCA7CivmtojogJflk4HosrsgPCBzaG91bW91aGluaGlcIDsKK+Wtpue0mumWiemOliA8IGdha2t5dXVoZWlzYVwgOwor5Lq655Sf6KiY6YyyIDwgamluc2Vpa2lyb2t1XCA7Civlrp/liKnkuLvnvqkgPCBqaXRzdXJpc2h1Z2lcIDsKK+W+qeWOn+WKmyA8IGZ1a3VnZW5yeW9rdVwgOwor56uj5bel5byPIDwgc2h1bmtvdXNoaWtpXCA7Civlhazkvb/ppKjlk6EgPCBrb3VzaGlrYW4nJ2luXCA7Civnq7bkuonnjocgPCBreW91c291cml0c3VcIDsKK+epjeeri+mHkSA8IHRzdW1pdGF0ZWtpblwgOwor5qSN54mp5ZySIDwgc2hva3VidXRzdWVuXCA7CivpgLLljJboq5bogIUgPCBzaGlua2Fyb25zaGFcIDsKK+epuuS4reapn+WLlSA8IGt1dWNodXVraWRvdVwgOwor5oqV56Wo57WQ5p6cIDwgdG91aHlvdWtla2thXCA7CivliY3mj5DmnaHku7YgPCB6ZW50ZWlqb3VrZW5cIDsKK+WkluS6uumBuOaJiyA8IGdhaWppbnNlbnNodVwgOwor5beo5aSn5YiG5a2QIDwga3lvZGFpYnVuc2hpXCA7CivotIvpgKDntJnluaMgPCBnYW56b3VzaGloZWlcIDsKK+eLrOi6q+WvriA8IGRva3VzaGlucnlvdVwgOwor5qSc5a6a6Kmm6aiTIDwga2VudGVpc2hpa2VuXCA7Civol43ntqzopJLnq6AgPCByYW5qdWhvdXNob3VcIDsKK+WPuOazleippumokyA8IHNoaWhvdXNoaWtlblwgOwor5p+U6Luf5L2T5pONIDwganV1bmFudGFpc291XCA7CivkuI3oia/lsI7kvZMgPCBmdXJ5b3Vkb3V0YWlcIDsKK+WvvuaIpui7iuegsiA8IHRhaXNlbnNoYWhvdVwgOwor5YWl5pyt6ICFIDwgbnl1dXNhdHN1c2hhXCA7CivmrbvkvZPop6PliZYgPCBzaGl0YWlrYWlib3VcIDsKK+WFvOalrei+suWutiA8IGtlbmd5b3Vub3VrYVwgOwor5paw5YWl55SfIDwgc2hpbicnbnl1dXNlaVwgOwor5YWs6ZaL6Yyy6Z+zIDwga291a2Fpcm9rdW9uXCA7Civmtbfou43lpKfoh6MgPCBrYWlndW5kYWlqaW5cIDsKK+WNl+S6rOiKseeBqyA8IG5hbmtpbmhhbmFiaVwgOwor56We6Kyh6ZuGIDwgc2hpbicneW91c2h1dVwgOwor5omB5qGD6IW654KOIDwgaGVudG91c2VuJydlblwgOwor5Lit5aSu6YqA6KGMIDwgY2h1dW91Z2lua291XCA7CivkuKHmpbXnq68gPCByeW91a3lva3V0YW5cIDsKK+Wcp+e4ruepuuawlyA8IGFzc2h1a3VrdXVraVwgOwor5biz6Z2i6Z2iIDwgY2hvdW1lbmR6dXJhXCA7CivopovnqY3mm7ggPCBtaXRzdW1vcmlzaG9cIDsKK+eglOWJiuS7oyA8IGtlbnNha3VzaGlyb1wgOwor5rG65riI5omL5q61IDwga2Vzc2Fpc2h1ZGFuXCA7Civku6PnkIbmpa3ogIUgPCBkYWlyaWd5b3VzaGFcIDsKK+mFjee9rui7ouaPmyA8IGhhaWNoaXRlbmthblwgOwor56aB5rK755Sj6ICFIDwga2luY2hpc2Fuc2hhXCA7CivmtLvli5XnmoQgPCBrYXRzdWRvdXRla2lcIDsKK+WFqOi6q+S4jemajyA8IHplbnNoaW5mdXp1aVwgOwor5oSb5LuW5Li7576p6ICFIDwgYWl0YXNodWdpc2hhXCA7Civlhajog73lipsgPCB6ZW4nJ25vdXJ5b2t1XCA7CivpgYvou6LmioDooZMgPCB1bnRlbmdpanV0c3VcIDsKK+mbu+WtkOmfs+alvSA8IGRlbnNoaW9uZ2FrdVwgOwor5Y2D5LiH54Sh6YePIDwgc2VubWFubXVyeW91XCA7Civoh6rmrrrluYfliqkgPCBqaXNhdHN1aG91am9cIDsKK+S7o+aVsOmWouaVsCA8IGRhaXN1dWthbnN1dVwgOwor6Z+z6Z+/6Kit6KiIIDwgb25reW91c2Vra2VpXCA7CivkubPmp5jnqoHotbcgPCBueXV1eW91dG9ra2lcIDsKK+S6i+WJjeWJsuW9kyA8IGppemVud2FyaWF0ZVwgOwor5YW15b255YWN54q2IDwgaGVpZWtpbWVuam91XCA7CivlpKnmtq/lraTni6wgPCB0ZW5nYWlrb2Rva3VcIDsKK+S4jeaJv+S4jeaJvyA8IGZ1c2hvdWJ1c2hvdVwgOwor54Sh5omA5bGe54++IDwgbXVzaG96b2t1Z2VuXCA7CivmnKjpgKDlrrblsYsgPCBtb2t1em91a2Fva3VcIDsKK+mkiuiAgeW5tOmHkSA8IHlvdXJvdW5lbmtpblwgOwor5LqL5YmN56CU5L+uIDwgaml6ZW5rZW5zaHV1XCA7Civpo5/ogonpoZ4gPCBzaG9rdW5pa3VydWlcIDsKK+S9k+ezu+aWh+azlSA8IHRhaWtlaWJ1bnBvdVwgOwor6IK65rS76YePIDwgaGFpa2F0c3VyeW91XCA7Civpm4zpm4TlkIzkvZMgPCBzaGl5dXVkb3V0YWlcIDsKK+mWi+elqOeOhyA8IGthaWh5b3VyaXRzdVwgOwor5bi46K2Y55qEIDwgam91c2hpa2l0ZWtpXCA7Civmp4vpgKDmsZrogbcgPCBrb3V6b3Vvc2hva3VcIDsKK+WfuuekjuefpeitmCA8IGtpc29jaGlzaGlraVwgOwor5Y+O5a655YqbIDwgc2h1dXlvdXJ5b2t1XCA7CivlnLDln5/ntJvkuokgPCBjaGlpa2lmdW5zb3VcIDsKK+WNmOWzsOmnsemnnSA8IHRhbnBvdXJha3VkYVwgOwor6LGh5b6055qEIDwgc2hvdWNob3V0ZWtpXCA7CivkurrmsJfllYblo7IgPCBuaW5raXNob3ViYWlcIDsKK+WNg+Wnv+S4h+aFiyA8IHNlbnNoaWJhbnRhaVwgOwor5YWs5pyJ6LKh55SjIDwga291eXV1emFpc2FuXCA7Civoh6rmhaLoqbEgPCBqaW1hbmJhbmFzaGlcIDsKK+aLm+W+heWuoiA8IHNob3V0YWlreWFrdVwgOwor5YWI6KGM5oqV6LOHIDwgc2Vua291dG91c2hpXCA7Civoo73pgKDlt6XnqIsgPCBzZWl6b3Vrb3V0ZWlcIDsKK+iHqueUseertuS6iSA8IGppeXV1a3lvdXNvdVwgOwor5bed6a2a5paZ55CGIDwga2F3YXVvcnlvdXJpXCA7CivkuqTpn7/mm7IgPCBrb3VreW91a3lva3VcIDsKK+mbu+ino+izqiA8IGRlbmthaXNoaXRzdVwgOwor54++5Luj56eR5a2mIDwgZ2VuZGFpa2FnYWt1XCA7CivlubPlupXoiLkgPCBoaXJhc29rb2J1bmVcIDsKK+eUo+alreapn+aisCA8IHNhbmd5b3VraWthaVwgOwor5LiN5ZCI5qC86ICFIDwgZnVnb3VrYWt1c2hhXCA7CivmmpHkuK3opovoiJ4gPCBzaG9jaHV1bWltYWlcIDsKK+iqmOWwjuWwi+WVjyA8IHl1dWRvdWppbm1vblwgOwor5bCx5Lu75byPIDwgc2h1dW5pbnNoaWtpXCA7Civlhrflh43lrqQgPCByZWl0b3VzaGl0c3VcIDsKK+eRoOeSg+WUkOiNiSA8IHJ1cmlrYXJha3VzYVwgOwor5a6a5b2i5YuV6KmeIDwgdGVpa2VpZG91c2hpXCA7CivphY3ohrPlrqQgPCBoYWl6ZW5zaGl0c3VcIDsKK+S6uumWk+mWouS/giA8IG5pbmdlbmthbmtlaVwgOwor6LWk5Y2B5a2X56S+IDwgc2VraWp1dWppc2hhXCA7CivluoPls7bnnIwgPCBoaXJvc2hpbWFrZW5cIDsKK+aapuaUueatoyA8IGtveW9taWthaXNlaVwgOwor54Sh55Sj6ZqO57SaIDwgbXVzYW5rYWlreXV1XCA7CivlvrPlt53mlrkgPCB0b2t1Z2F3YWdhdGFcIDsKK+WFreazleWFqOabuCA8IHJvcHBvdXplbnNob1wgOwor6ZuG5qip5o6S6ZmkIDwgc2h1dWtlbmhhaWpvXCA7Civlm73pmpvkvJrorbAgPCBrb2t1c2Fpa2FpZ2lcIDsKK+WFkOerpeaWh+WtpiA8IGppZG91YnVuZ2FrdVwgOwor6LuN5LqL56eY5a+GIDwgZ3VuamloaW1pdHN1XCA7Civku67lhaXlraYgPCBrYXJpbnl1dWdha3VcIDsKK+S7u+aEj+WHuumgrSA8IG5pbicnaXNodXR0b3VcIDsKK+S7mOmaj+ePvuixoSA8IGZ1enVpZ2Vuc2hvdVwgOwor5Y6f5b2i6LOqIDwgZ2Vua2Vpc2hpdHN1XCA7CivllIfmra/ovJTou4ogPCBzaGluc2hpaG9zaGFcIDsKK+WOn+WboOiqv+afuyA8IGdlbicnaW5jaG91c2FcIDsKK+aLheW9k+mDqOmVtyA8IHRhbnRvdWJ1Y2hvdVwgOwor5Li75Lu75pWZ5o6IIDwgc2h1bmlua3lvdWp1XCA7Civou43lgpnliYrmuJsgPCBndW5iaXNha3VnZW5cIDsKK+WFrOmWi+ijgeWIpCA8IGtvdWthaXNhaWJhblwgOwor5YiG6Kej5L+u55CGIDwgYnVua2Fpc2h1dXJpXCA7Civnmb7oirHmlonmlL4gPCBoeWFra2FzZWlob3VcIDsKK+m7kuiJsuiFqyA8IGtva3VzaG9rdXNodVwgOwor5Lq66YCg55yf54+gIDwgamluem91c2hpbmp1XCA7CivljZLmpa3nlJ8gPCBzb3RzdWd5b3VzZWlcIDsKK+elnue1jOmBjuaVjyA8IHNoaW5rZWlrYWJpblwgOwor6YCB6YeR54K65pu/IDwgc291a2lua2F3YXNlXCA7Civlm57lvqnlipsgPCBrYWlmdWt1cnlva3VcIDsKK+WOs+ato+enkeWtpiA8IGdlbnNlaWthZ2FrdVwgOwor5YWl5Lya5byPIDwgbnl1dWthaXNoaWtpXCA7Civlj7jms5Xmm7jlo6sgPCBzaGlob3VzaG9zaGlcIDsKK+WcqOWkluizh+eUoyA8IHphaWdhaXNoaXNhblwgOwor5rOV5b6L6YGV5Y+NIDwgaG91cml0c3VpaGFuXCA7CivlkJHlv4PlipsgPCBrb3VzaGlucnlva3VcIDsKK+eOieiZq+iJsiA8IHRhbWFtdXNoaWlyb1wgOwor54m55Yil5Y+3IDwgdG9rdWJldHN1Z291XCA7CivpgLLot6/mjIflsI4gPCBzaGlucm9zaGlkb3VcIDsKK+S6iOWCmeWNlOe0hCA8IHlvYmlreW91eWFrdVwgOwor6ISx5q+b55eHIDwgZGF0c3Vtb3VzaG91XCA7Civlp4vnkIPlvI8gPCBzaGlreXV1c2hpa2lcIDsKK+aVmeiCsueOqeWFtyA8IGt5b3Vpa3VnYW5ndVwgOwor5paH5rOV6KaP5YmHIDwgYnVucG91a2lzb2t1XCA7CivkvZXoibLmkKggPCBuYW5zaG9rdXp1cmlcIDsKK+WujOS6huaZguWItiA8IGthbnJ5b3VqaXNlaVwgOwor5L+h6KiX5qWtIDwgc2hpbnRha3VneW91XCA7Civkuovlrp/oqqToqo0gPCBqaWppdHN1Z29uaW5cIDsKK+i7jemcgOeUo+alrSA8IGd1bmp1c2FuZ3lvdVwgOwor5Zyf54WZIDwgdHN1Y2hpa2VtdXJpXCA7Civlg7vmoLnmgKcgPCBoaWdhbWlrb25qb3VcIDsKK+WlquS4ieaMryA8IGRhdHN1c2Fuc2hpblwgOwor6YmE54Gr5Li8IDwgdGVra2Fkb25idXJpXCA7Civoh6rnhLbnp5HlraYgPCBzaGl6ZW5rYWdha3VcIDsKK+Wkp+emj+mkhSA8IGRhaWZ1a3Vtb2NoaVwgOwor5q2m6ICF5L+u6KGMIDwgbXVzaGFzaHVneW91XCA7CivkvrXnlaXou40gPCBzaGlucnlha3VndW5cIDsKK+eUn+aIkOaWh+azlSA8IHNlaXNlaWJ1bnBvdVwgOwor5Y+N54mp6LOqIDwgaGFuYnVzc2hpdHN1XCA7Civlj7jms5XlpKfoh6MgPCBzaGlob3VkYWlqaW5cIDsKK+S4u+aEj+S4u+e+qeiAhSA8IHNodWlzaHVnaXNoYVwgOwor5Yi255CD5YqbIDwgc2Vpa3l1dXJ5b2t1XCA7CivlvqHnlKjllYbkurogPCBnb3lvdXNob3VuaW5cIDsKK+S9v+W+kuS/oeadoSA8IHNoaXRvc2hpbmpvdVwgOwor6Ki85oug54mp5Lu2IDwgc2hvdWtvYnVra2VuXCA7CivpmbjnlKPniakgPCByaWt1c2FuYnV0c3VcIDsKK+S6iOWCmeefpeitmCA8IHlvYmljaGlzaGlraVwgOwor5ZCI5ZCN5Lya56S+IDwgZ291bWVpZ2Fpc2hhXCA7CivlhbHlkIzkuIDoh7QgPCBreW91ZG91aXRjaGlcIDsKK+atpuWKm+aUv+ayuyA8IGJ1cnlva3VzZWlqaVwgOwor6LuM6YGT5L+u5q2jIDwga2lkb3VzaHV1c2VpXCA7CivovrLkvZzniakgPCBub3VzYWt1YnV0c3VcIDsKK+a5vuWyuOaIpuS6iSA8IHdhbmdhbnNlbnNvdVwgOwor5ZCI5qC856WI6aGYIDwgZ291a2FrdWtpZ2FuXCA7CivljJblrabogqXmlpkgPCBrYWdha3VoaXJ5b3VcIDsKK+ernOiIjOiYrSA8IHJ5dXV6ZXRzdXJhblwgOwor54us6KOB5Zu95a62IDwgZG9rdXNhaWtva2thXCA7CivkvY7liKnph5Hono0gPCB0ZWlyaWtpbicneXV1XCA7Civllrbmpa3nlZEgPCBlaWd5b3ViYXRha2VcIDsKK+Wcn+mhnumHkeWxniA8IGRvcnVpa2luem9rdVwgOwor6IKJ6aOf542jIDwgbmlrdXNob2t1anV1XCA7CivlhbHlkozmlL/kvZMgPCBreW91d2FzZWl0YWlcIDsKK+azleW+i+WtpiA8IGhvdXJpdHN1Z2FrdVwgOwor5rOV5bu36ZeY5LqJIDwgaG91dGVpdG91c291XCA7Civlho3nlJ/oo4Xnva4gPCBzYWlzZWlzb3VjaGlcIDsKK+aWsOeZuuaYjiA8IHNoaW5oYXRzdW1laVwgOwor5YyX5pa56aCY5ZyfIDwgaG9wcG91cnlvdWRvXCA7CivpgJfnlZnlrqIgPCB0b3VyeXV1a3lha3VcIDsKK+WFqOW7g+irluiAhSA8IHplbnBhaXJvbnNoYVwgOwor57Sv6YCy6Kqy56iOIDwgcnVpc2hpbmthemVpXCA7Civlm73pmLLkvJrorbAgPCBrb2t1Ym91a2FpZ2lcIDsKK+W+s+WztuecjCA8IHRva3VzaGltYWtlblwgOwor5LqM55m+5Y2B5pelIDwgbmloeWFrdXRvb2thXCA7CivkuovliY3pgJrloLEgPCBqaXplbnRzdXVob3VcIDsKK+ekvuS8muaEj+itmCA8IHNoYWthaWlzaGlraVwgOwor5o+05Yqp5YeN57WQIDwgZW5qb3RvdWtldHN1XCA7CivmuIXmsLTlr7ogPCBraXlvbWl6dWRlcmFcIDsKK+WuieWFqOesrOS4gCA8IGFuemVuZGFpaWNoaVwgOwor5YCL5Lq65pS75pKDIDwga29qaW5rb3VnZWtpXCA7CivmgqrmiK/lnYrkuLsgPCBpdGF6dXJhYm91enVcIDsKK+mBiuWLleWGhuacqCA8IHl1dWRvdWVuYm9rdVwgOwor5YaG5b2i5YqH5aC0IDwgZW5rZWlnZWtpam91XCA7CivnhrHlrrnph48gPCBuZXRzdXlvdXJ5b3VcIDsKK+aWh+ethualrSA8IGJ1bnBpdHN1Z3lvdVwgOwor6Iqt6JWJ5qK25pyoIDwgYmFzaG91a2FqaWtpXCA7CivohLPlh7rooYAgPCBub3VzaHVra2V0c3VcIDsKK+mcsuWHuueXhyA8IHJvc2h1dHN1c2hvdVwgOwor6auY6Laz6J+5IDwgdGFrYWFzaGlnYW5pXCA7Civmg4XloLHnp5HlraYgPCBqb3Vob3VrYWdha3VcIDsKK+engeWovOeqnyA8IHNoaXNob3VrdXRzdVwgOwor5YK35a6z5L+d6Zm6IDwgc2hvdWdhaWhva2VuXCA7CivnoLTnlKPlrqPlkYogPCBoYXNhbnNlbmtva3VcIDsKK+eZqeeXheaCo+iAhSA8IHJhaWJ5b3VrYW5qYVwgOwor6buS6Imy55mMIDwga29rdXNob2t1Z2FuXCA7Civlm6DlrZDliIbmnpAgPCBpbnNoaWJ1bnNla2lcIDsKK+iyp+ihgOeXhyA8IGhpbmtldHN1c2hvdVwgOwor6KqN6K2Y56WoIDwgbmluc2hpa2loeW91XCA7CivlvoXlkIjmlL/msrsgPCBtYWNoaWFpc2VpamlcIDsKK+acq+azleaAneaDsyA8IG1hcHBvdXNoaXNvdVwgOwor6Iiq57aa5pmC6ZaTIDwga291em9rdWppa2FuXCA7CivlsILlo7LnibnoqLEgPCBzZW5iYWl0b2treW9cIDsKK+WQjOeoruWQjOaWhyA8IGRvdXNodWRvdWJ1blwgOwor6YmE6YGT5LqL5pWFIDwgdGV0c3Vkb3VqaWtvXCA7CivnnJ/nkIbplqLmlbAgPCBzaGlucmlrYW5zdXVcIDsKK+eWq+eXheelniA8IHlha3VieW91Z2FtaVwgOwor6Zyy5Ye654uCIDwgcm9zaHV0c3VreW91XCA7CivlrZDlrZDlravlrasgPCBzaGlzaGlzb25zb25cIDsKK+WFq+S4iOWztiA8IGhhY2hpam91amltYVwgOwor6ZmN56We6KGTIDwga291c2hpbmp1dHN1XCA7Civoi7Hlm73nn7PmsrkgPCBlaWtva3VzZWtpeXVcIDsKK+S/neitt+ims+WvnyA8IGhvZ29rYW5zYXRzdVwgOwor56eY5a+G5YW15ZmoIDwgaGltaXRzdWhlaWtpXCA7Civpg7Xkvr/osq/ph5EgPCB5dXViaW5jaG9raW5cIDsKK+WTsuWtpuiAhSA8IHRldHN1Z2FrdXNoYVwgOwor5LqM6YeN5Lq65qC8IDwgbmlqdXVqaW5rYWt1XCA7Civnmb3ooaPmmI7lpoMgPCBieWFrdWVteW91aGlcIDsKK+eUn+S9k+ino+WJliA8IHNlaXRhaWthaWJvdVwgOwor54irIDwgdHN1bWVrYW5tdXJpXCA7CivlipvkuIDmna8gPCBjaGlrYXJhaXBwYWlcIDsKK+WHuuWTgeeJqSA8IHNodXBwaW5idXRzdVwgOwor56uL5aSq5a2Q56S8IDwgcml0dGFpc2hpcmVpXCA7Civlrp/pmpvllY/poYwgPCBqaXNzYWltb25kYWlcIDsKK+WFrOi7oumAn+W6piA8IGtvdXRlbnNva3Vkb1wgOwor5LiA55+z5LqM6bOlIDwgaXNzZWtpbmljaG91XCA7CivmlZnogrLoqrLnqIsgPCBreW91aWt1a2F0ZWlcIDsKK+S6uuS7o+WQjeipniA8IGppbmRhaW1laXNoaVwgOwor5qyh6YW45YyW54Kt57SgIDwgamlzYW5rYXRhbnNvXCA7CivngbDnmb3oibIgPCBrYWloYWt1c2hva3VcIDsKK+eLrOWxheWupCA8IGRva2t5b3NoaXRzdVwgOwor5YSq55Sf57WQ5amaIDwgeXV1c2Vpa2Vra29uXCA7Civlj6PpoK3oqabllY8gPCBrb3V0b3VzaGltb25cIDsKK+S6pOmAmuWuieWFqCA8IGtvdXRzdXVhbnplblwgOwor5o6l5b6F5L+CIDwgc2V0dGFpZ2FrYXJpXCA7CivkuIflubTpm6ogPCBtYW4nJ25lbicneXVraVwgOwor54uC5oOz5puyIDwga3lvdXNvdWt5b2t1XCA7Civlkozmlofoi7HoqLMgPCB3YWJ1bicnZWl5YWt1XCA7CivmnKzlrrbmnKzlhYMgPCBob25rZWhvbm1vdG9cIDsKK+ebsuebrumjm+ihjCA8IG1vdW1va3VoaWtvdVwgOwor5rue56m66KiY6YyyIDwgdGFpa3V1a2lyb2t1XCA7Civnq4vkvZPoo4Hmlq0gPCByaXR0YWlzYWlkYW5cIDsKK+WbveWGheS6i+aDhSA8IGtva3VuYWlqaWpvdVwgOwor5L6155Wl6ICFIDwgc2hpbnJ5YWt1c2hhXCA7CivmjqXop6bkuovmlYUgPCBzZXNzaG9rdWppa29cIDsKK+eUuuW9ueS6uiA8IG1hY2hpeWFrdW5pblwgOwor5Lm+54el6IWQ5py9IDwga2Fuc291ZnVreXV1XCA7CivomrDonJLnnIkgPCBnZWppZ2VqaW1heXVcIDsKK+WQiOizh+S8muekviA8IGdvdXNoaWdhaXNoYVwgOwor5b2r5Yi75YW35bqnIDwgY2hvdWtva3VndXphXCA7Civmsrvlronntq3mjIHms5UgPCBjaGlhbicnaWppaG91XCA7Civlrabnv5Llob4gPCBnYWt1c2h1dWp1a3VcIDsKK+aIuOWkluaSruW9sSA8IGtvZ2Fpc2F0c3VlaVwgOwor5b+c5oCl5L+u55CGIDwgb3VreXV1c2h1dXJpXCA7CivpurvphZTms6jlsIQgPCBtYXN1aWNodXVzaGFcIDsKK+acq+err+S+oeagvCA8IG1hdHRhbmtha2FrdVwgOwor5YG25YOP5bSH5oudIDwgZ3V1em91c3V1aGFpXCA7Civmma7pgJrliJfou4ogPCBmdXRzdXVyZXNzaGFcIDsKK+aWsOeZuuWjsiA8IHNoaW5oYXRzdWJhaVwgOwor5ZKM5bmz5Lqk5riJIDwgd2FoZWlrb3VzaG91XCA7Civnq7bkuonlipsgPCBreW91c291cnlva3VcIDsKK+W+queSsOirluazlSA8IGp1bmthbnJvbnBvdVwgOwor5aSx5ZCN5rCPIDwgc2hpdHN1bWVpc2hpXCA7CivooajluqfmlbcgPCBvbW90ZXphc2hpa2lcIDsKK+mjvemjn+aaluihoyA8IGhvdXNob2t1ZGFuaVwgOwor5qmf5qKw5bel5qWtIDwga2lrYWlrb3VneW91XCA7CivnhKHpmZDpm4blkIggPCBtdWdlbnNodXVnb3VcIDsKK+W+tOeZuuS7pCA8IGNob3VoYXRzdXJlaVwgOwor5pyJ5L6h6Ki85Yi4IDwgeXV1a2FzaG91a2VuXCA7Civmh5Dpiq0gPCBmdXRva29yb3plbmlcIDsKK+S6leaIuOerr+S8muitsCA8IGlkb2JhdGFrYWlnaVwgOwor5Ymv5Y+O5YWlIDwgZnVrdXNodXVueXV1XCA7CivmgZDllp3nvaogPCBreW91a2F0c3V6YWlcIDsKK+WxiOaKmOi7uCA8IGt1c3NldHN1amlrdVwgOwor5ZCI5YiH6KKLIDwgZ2Fzc2FpYnVrdXJvXCA7Civmtojmga/pgJogPCBzaG91c29rdXRzdXVcIDsKK+e3j+e1semBuOaMmSA8IHNvdXRvdXNlbmt5b1wgOwor5qCq5Li75qipIDwga2FidW51c2hpa2VuXCA7CivkurrmsJflvbnogIUgPCBuaW5raXlha3VzaGFcIDsKK+W4guWGhemAmuipsSA8IHNoaW5haXRzdXV3YVwgOwor5Y2g5pyJ546HIDwgc2VuJyd5dXVyaXRzdVwgOwor5Y2X5Lqs6KKLIDwgbmFua2luYnVrdXJvXCA7Civpq5jpq5jmjIcgPCB0YWthdGFrYXl1YmlcIDsKK+eZveiJsuWFiSA8IGhha3VzaG9rdWtvdVwgOwor5LiA562J6Zm45aOrIDwgaXR0b3VyaWt1c2hpXCA7CivorJvlkozmnaHntIQgPCBrb3V3YWpvdXlha3VcIDsKK+W3pealremDveW4giA8IGtvdWd5b3V0b3NoaVwgOwor5Y2T5LiK6Zu76KmxIDwgdGFrdWpvdWRlbndhXCA7CivlrqLoprPkuLvnvqkgPCBreWFra2Fuc2h1Z2lcIDsKK+WFseWQjOisgOitsCA8IGt5b3Vkb3Vib3VnaVwgOwor6LO86LK357WE5ZCIIDwga291YmFpa3VtaWFpXCA7Civoq4vosqDku5XkuosgPCB1a2VvaXNoaWdvdG9cIDsKK+mLuOmuqyA8IG5va29naXJpemFtZVwgOwor6ZuH55So5aWR57SEIDwga295b3VrZWl5YWt1XCA7CivlvZPmhI/ljbPlppkgPCB0b3Vpc29rdW15b3VcIDsKK+aXpeexs+WNlCA8IG5pY2hpYmVpa3lvdVwgOwor5Yq05YON5biC5aC0IDwgcm91ZG91c2hpam91XCA7Civlo6vlrpjlrabmoKEgPCBzaGlrYW5nYWtrb3VcIDsKK+WQjeiqieS8mumVtyA8IG1laXlva2FpY2hvdVwgOwor5bqm5pWw5YiG5biD5ZuzIDwgZG9zdXVidW5wdXp1XCA7CivlsYjmipjop5IgPCBrdXNzZXRzdWtha3VcIDsKK+auuuS6uueahCA8IHNhdHN1amludGVraVwgOwor5bmz5Z2H57Wm5LiOIDwgaGVpa2lua3l1dXlvXCA7Civlt6blm6PmiYcgPCBoaWRhcml1Y2hpd2FcIDsKK+mYsuWhteWupCA8IGJvdWppbnNoaXRzdVwgOwor5bCP5L6/5bCP5YOnIDwgc2hvdWJlbmtvem91XCA7CivlnJ/ln4MgPCB0c3VjaGlib2tvcmlcIDsKK+S6uuaoqei5gui6qiA8IGppbmtlbmp1dXJpblwgOwor5Zyn57iu6YW457SgIDwgYXNzaHVrdXNhbnNvXCA7CivlkKvmnInnjocgPCBnYW4nJ3l1dXJpdHN1XCA7CivlubTmrKHloLHlkYogPCBuZW5qaWhvdWtva3VcIDsKK+iEiOaQj+aVsCA8IG15YWt1aGFrdXN1dVwgOwor6YO15L6/55Wq5Y+3IDwgeXV1YmluYmFuZ291XCA7CivmjqjpgLLlipsgPCBzdWlzaGlucnlva3VcIDsKK+iBvuahn+aVtyA8IHRzdW5ib3NhamlraVwgOwor6KiI566X5ZWP6aGMIDwga2Vpc2FubW9uZGFpXCA7Civnt4/lkIjpm5HoqowgPCBzb3Vnb3V6YXNzaGlcIDsKK+e4rue3rOeauiA8IGNoaXJpbWVuaml3YVwgOwor5Zyf5Zyw5Y+O55SoIDwgdG9jaGlzaHV1eW91XCA7CivluoPlkYrlirnmnpwgPCBrb3Vrb2t1a291a2FcIDsKK+auuuS6uueLgiA8IHNhdHN1amlua3lvdVwgOwor6Ly45Ye65YWlIDwgeXVzaHV0c3VueXV1XCA7CivlubzlhZDmlZnogrIgPCB5b3VqaWt5b3Vpa3VcIDsKK+i/keaJgOi/t+aDkSA8IGtpbmpvbWVpd2FrdVwgOwor6Kaz5a6i5bitIDwga2Fua3lha3VzZWtpXCA7CivnhKHpmZDntJrmlbAgPCBtdWdlbmt5dXVzdXVcIDsKK+S4gOWIu+WNg+mHkSA8IGlra29rdXNlbmtpblwgOwor6Zmq5a+p5Yi25bqmIDwgYmFpc2hpbnNlaWRvXCA7Civnt6jpm4bmqZ/og70gPCBoZW5zaHV1a2lub3VcIDsKK+WFiOWPlueJueaoqSA8IHNlbnNodXRva2tlblwgOwor5bCC6ZaA5YiG6YeOIDwgc2VubW9uYnVuJyd5YVwgOwor5b+EIDwgcml0c3VzaGluYmVuXCA7Civlkb3lhqXliqAgPCBpbm9jaGlteW91Z2FcIDsKK+aLheWtkOiPjOmhniA8IHRhbnNoaWtpbnJ1aVwgOwor6Zai5L+C5by35YyWIDwga2Fua2Vpa3lvdWthXCA7Civmo67mnpfmtbQgPCBzaGlucmluJyd5b2t1XCA7CivmlLvmkoPpg6jpmoogPCBrb3VnZWtpYnV0YWlcIDsKK+enmOWvhuS8muitsCA8IGhpbWl0c3VrYWlnaVwgOwor6Ieq5YuV6LuK5LqL5pWFIDwgamlkb3VzaGFqaWtvXCA7Civmtojpn7Poo4Xnva4gPCBzaG91b25zb3VjaGlcIDsKK+a6gOW3nuS6i+WkiSA8IG1hbnNodXVqaWhlblwgOwor54iG55m6566hIDwgYmFrdWhhdHN1a2FuXCA7Civos4fnlKPoqZXkvqEgPCBzaGlzYW5oeW91a2FcIDsKK+WHuueJiOioseWPryA8IHNodXBwYW5reW9rYVwgOwor6buS5YWr5LiIIDwga3Vyb2hhY2hpam91XCA7Civlm73lhoXpnIDopoEgPCBrb2t1bmFpanV5b3VcIDsKK+WNiui6q+a1tCA8IGhhbnNoaW4nJ3lva3VcIDsKK+WNg+S4h+mVt+iAhSA8IHNlbmJhbmNob3VqYVwgOwor5YyW5a2m6Kmm6aiTIDwga2FnYWt1c2hpa2VuXCA7CivntLDog57ln7nppIogPCBzYWlib3ViYWl5b3VcIDsKK+mfs+mfu+e1hOe5lCA8IG9uJydpbnNvc2hpa2lcIDsKK+W6p+aomeWkieaPmyA8IHphaHlvdWhlbmthblwgOwor5qmf5qKw5bel5a2mIDwga2lrYWlrb3VnYWt1XCA7CivnrKzkuInpg6jplbcgPCBkYWlzYW5idWNob3VcIDsKK+Wlh+WyqeaAquefsyA8IGtpZ2Fua2Fpc2VraVwgOwor6ICQ6aKo5qeL6YCgIDwgdGFpZnV1a291em91XCA7Civmmpfnt5HoibIgPCBhbnJ5b2t1c2hva3VcIDsKK+efs+m5uOW3peWgtCA8IHNla2tlbmtvdWpvdVwgOwor5Zyo6YO36LuN5Lq6IDwgemFpZ291Z3VuamluXCA7Civlub3pnIrkvJrnpL4gPCB5dXVyZWlnYWlzaGFcIDsKK+eSsOWig+egtOWjiiA8IGthbmt5b3VoYWthaVwgOwor5Zu96Zqb5Li7576pIDwga29rdXNhaXNodWdpXCA7CivlvqHnr4DmlpnnkIYgPCBvc2VjaGlyeW91cmlcIDsKK+eti+iCieeXmyA8IGtpbicnbmlrdXRzdXVcIDsKK+S/rueQhuW3peWgtCA8IHNodXVyaWtvdWpvdVwgOwor6IG36IO957WmIDwgc2hva3Vub3VreXV1XCA7CivmlrDnlJ/niakgPCBzaGluc2VpYnV0c3VcIDsKK+WHjOmchOiKsSA8IG5vdXplbmthenVyYVwgOwor6buS6Imy5bCJIDwga29rdXNoaWtpam91XCA7Civom43ooosgPCBob3RhcnVidWt1cm9cIDsKK+WBtueZuueahCA8IGd1dWhhdHN1dGVraVwgOwor5ouS5ZCm5Y+N5b+cIDwga3lvaGloYW4nJ25vdVwgOwor54m555Sj54mpIDwgdG9rdXNhbmJ1dHN1XCA7CivkuIDoqIDkuIDlj6UgPCBpY2hpZ29uJydpa2t1XCA7CivljZjni6zpo5vooYwgPCB0YW5kb2t1aGlrb3VcIDsKK+S4u+aoqeWcqOawkSA8IHNodWtlbnphaW1pblwgOwor5YyW57Kn5a6kIDwga2VzaG91c2hpdHN1XCA7Civnt4/mlK/lh7ogPCBzb3VzaGlzaHV0c3VcIDsKK+S6uuagvOS4u+e+qSA8IGppbmtha3VzaHVnaVwgOwor6Ieq5q665pyq6YGCIDwgamlzYXRzdW1pc3VpXCA7Civlh7rlrrbpgYHkuJYgPCBzaHVra2V0b25zZWlcIDsKK+WTsuWtpuabuCA8IHRldHN1Z2FrdXNob1wgOwor5Y2a54mp6aSoIDwgaGFrdWJ1dHN1a2FuXCA7CivntJDpnanppYLpo6kgPCBoaW1va2F3YXVkb25cIDsKK+aEmuawkeaUv+etliA8IGd1bWluc2Vpc2FrdVwgOwor5Y2Y56eR5aSn5a2mIDwgdGFua2FkYWlnYWt1XCA7CivpganmraPliKnmvaQgPCB0ZWtpc2VpcmlqdW5cIDsKK+eZuumfs+iomOWPtyA8IGhhdHN1b25raWdvdVwgOwor6LuN5LqL5Y2U5a6aIDwgZ3VuamlreW91dGVpXCA7CivovrLlnLDlp5Tlk6HkvJogPCBub3VjaGlpaW5rYWlcIDsKK+S7suS7i+eJqSA8IGNodXVrYWlidXRzdVwgOwor6KW/6auY5p2x5L2OIDwgc2Vpa291dG91dGVpXCA7CivmkI3ogJfkurrlk6EgPCBzb25tb3VqaW4nJ2luXCA7Civnmb3poK3pt7IgPCBoYWt1dG91d2FzaGlcIDsKK+Wun+WLouS+oeagvCA8IGppc3NlaWtha2FrdVwgOwor5o+055So6Kit6KiIIDwgZW4nJ3lvdXNla2tlaVwgOwor54++5aC05Lit57aZIDwgZ2VuYmFjaHV1a2VpXCA7CivmnIDmlrDlvI8gPCBzYWlzaGluc2hpa2lcIDsKK+Wxsei6kei6hSA8IHlhbWF0c3V0c3VqaVwgOwor5oSf55+l6KOF572uIDwga2FuY2hpc291Y2hpXCA7CivorbDmsbrmqZ/plqIgPCBnaWtldHN1a2lrYW5cIDsKK+ecgembu+WKmyA8IHNob3VkZW5yeW9rdVwgOwor5a6J5b+D56uL5ZG9IDwgYW5qaW5yeW91bWVpXCA7CivlkIjlkIzkuovmpa0gPCBnb3Vkb3VqaWd5b3VcIDsKK+WQjOacn+S/oeWPtyA8IGRvdWtpc2hpbmdvdVwgOwor5Luy6ZaT5oSP6K2YIDwgbmFrYW1haXNoaWtpXCA7CivlqpLku4vlpInmlbAgPCBiYWlrYWloZW5zdXVcIDsKK+WvkuS4reawtOazsyA8IGthbmNodXVzdWllaVwgOwor5LiA5Yy554u8IDwgaXBwaWtpb29rYW1pXCA7Civooqvkv53pmbrniakgPCBoaWhva2VuYnV0c3VcIDsKK+a2iOaBr+etiyA8IHNob3Vzb2t1c3VqaVwgOwor5oeQ57SZIDwgZnV0b2tvcm9nYW1pXCA7Civmmpfmrrrkuovku7YgPCBhbnNhdHN1amlrZW5cIDsKK+aKmOiht+S4u+e+qSA8IHNldGNodXVzaHVnaVwgOwor5Y2Y5byP57C/6KiYIDwgdGFuc2hpa2lib2tpXCA7CivmlZnppIroqrLnqIsgPCBreW91eW91a2F0ZWlcIDsKK+S4h+W5tOethiA8IG1hbicnbmVuaGl0c3VcIDsKK+S4ieiAheS8muirhyA8IHNhbnNoYWthaWRhblwgOwor6YCj6KiY5oqV56WoIDwgcmVua2l0b3VoeW91XCA7Civlv4PnkIbnirbmhYsgPCBzaGlucmlqb3V0YWlcIDsKK+S7h+WQjOawjyA8IGthdGFraWRvdXNoaVwgOwor5rW35aSW5biC5aC0IDwga2FpZ2Fpc2hpam91XCA7Civml6LmiJDkuovlrp8gPCBraXNlaWppaml0c3VcIDsKK+S6i+WLmee3j+WxgCA8IGppbXVzb3VreW9rdVwgOwor5YmN6YCy5Z+65ZywIDwgemVuc2hpbmtpY2hpXCA7CivlkIzlt6XnlbDmm7IgPCBkb3Vrb3Vpa3lva3VcIDsKK+WRvemhjOmWouaVsCA8IG1laWRhaWthbnN1dVwgOwor5YyX6KW/6Iiq6LevIDwgaG9rdXNlaWtvdXJvXCA7CivlsYDlnLDnmoQgPCBreW9rdWNoaXRla2lcIDsKK+WQiOWQjOS8muWQiCA8IGdvdWRvdWthaWdvdVwgOwor56uL5Zyw5p2h5Lu2IDwgcml0Y2hpam91a2VuXCA7CivpnanmiYvooosgPCBrYXdhdGVidWt1cm9cIDsKK+WcsOeQhuWtpuiAhSA8IGNoaXJpZ2FrdXNoYVwgOwor5aSn5omA6auY5omAIDwgdGFpc2hva291c2hvXCA7Civph43opIfkv53pmbogPCBqdXVmdWt1aG9rZW5cIDsKK+mAmuW4uOWFteWZqCA8IHRzdXVqb3VoZWlraVwgOwor5aSW5Zu96YOo6ZqKIDwgZ2Fpa29rdWJ1dGFpXCA7CivmlofljJbkuqTmtYEgPCBidW5rYWtvdXJ5dXVcIDsKK+S4g+WIhuiiliA8IHNoaWNoaWJ1c29kZVwgOwor5biC5aSW6YCa6KmxIDwgc2hpZ2FpdHN1dXdhXCA7Civmr5vntLDooYDnrqEgPCBtb3VzYWlrZWtrYW5cIDsKK+WLleaFi+e1seioiCA8IGRvdXRhaXRvdWtlaVwgOwor56S+5YaF5oOF5aCxIDwgc2hhbmFpam91aG91XCA7CivkuK3lhazmlofluqsgPCBjaHV1a291YnVua29cIDsKK+Wcp+mbu+WKueaenCA8IGF0c3VkZW5rb3VrYVwgOwor6a2R6a2F6a2N6a2OIDwgY2hpbWltb3VyeW91XCA7CivlvqrnkrDns7vntbEgPCBqdW5rYW5rZWl0b3VcIDsKK+engemBlCA8IHdhdGFzaGl0YWNoaVwgOwor5a++5Lq66Zai5L+CIDwgdGFpamlua2Fua2VpXCA7Civmma7pgJrpgbjmjJkgPCBmdXRzdXVzZW5reW9cIDsKK+W/g+mciuihkyA8IHNoaW5yZWlqdXRzdVwgOwor5p2h5Lu26ZeY5LqJIDwgam91a2VudG91c291XCA7Civmnb7nq7nmooUgPCBzaG91Y2hpa3ViYWlcIDsKK+WNg+eKtuS4h+aFiyA8IHNlbmpvdWJhbnRhaVwgOwor5qC46ZaL55m6IDwga2FrdWthaWhhdHN1XCA7CivljJbmiJDlt6Xmpa0gPCBrYXNlaWtvdWd5b3VcIDsKK+e1jOa4iOWOn+irliA8IGtlaXphaWdlbnJvblwgOwor5qip6KyA6KGT5pWwIDwga2VuYm91anVzc3V1XCA7CivkuI3mj67nmbrmgKcgPCBmdWtpaGF0c3VzZWlcIDsKK+mrmOetieWtpuagoSA8IGtvdXRvdWdha2tvdVwgOwor6YCj5ZCI546L5Zu9IDwgcmVuZ291b3Vrb2t1XCA7Civlm73pmpvoibIgPCBrb2t1c2Fpc2hva3VcIDsKK+mDteS+v+abuOewoSA8IHl1dWJpbnNob2thblwgOwor5a2Q5L6b5b+DIDwga29kb21vZ29rb3JvXCA7Civnsr7npZ7lipsgPCBzZWlzaGlucnlva3VcIDsKK+a3seisgOmBoOaFriA8IHNoaW5ib3VlbnJ5b1wgOwor5L2P5rCR6YGL5YuVIDwganV1bWluJyd1bmRvdVwgOwor5rOV5paH5a2m6YOoIDwgaG91YnVuZ2FrdWJ1XCA7Civmma7pgJrpg7Xkvr8gPCBmdXRzdXV5dXViaW5cIDsKK+WGjeeqgeWFpSA8IHNhaXRvdHN1bnl1dVwgOwor5ZCb5Li75pS/5L2TIDwga3Vuc2h1c2VpdGFpXCA7Civnmbrkv6HlsYAgPCBoYXNzaGlua3lva3VcIDsKK+Wkp+WSjOW/gyA8IHlhbWF0b2dva29yb1wgOwor5o2y5Zyf6YeN5p2lIDwga2VuZG9jaG91cmFpXCA7CivlpbPlo7DlkIjllLEgPCBqb3NlaWdhc3Nob3VcIDsKK+exs+ilv+aIpuS6iSA8IGJlaXNlaXNlbnNvdVwgOwor6auY5bqm5oiQ6ZW3IDwga291ZG9zZWljaG91XCA7Civoqr/lvovluKsgPCBjaG91cml0c3VzaGlcIDsKK+S5vuW4g+aRqeaTpiA8IGthbnB1bWFzYXRzdVwgOwor5Lit6I+v5oCd5oOzIDwgY2h1dWthc2hpc291XCA7Civovp7ogbfpoZggPCBqaXNob2t1bmVnYWlcIDsKK+i0iOS4juiovOabuCA8IHpvdXlvc2hvdXNob1wgOwor5YK15YuZ5LiN5bGl6KGMIDwgc2FpbXVmdXJpa291XCA7CivlhazooYbooZvnlJ8gPCBrb3VzaHV1ZWlzZWlcIDsKK+aJgOaJgCA8IHRva29yb2Rva29yb1wgOwor56S+5Lya56eR5a2mIDwgc2hha2Fpa2FnYWt1XCA7CivovrLoirjljJblraYgPCBub3VnZWlrYWdha3VcIDsKK+S6pOmAmuaVtOeQhiA8IGtvdXRzdXVzZWlyaVwgOwor6Kaq5a+G5oSfIDwgc2hpbm1pdHN1a2FuXCA7Civnibnmrorpg6jpmoogPCB0b2t1c2h1YnV0YWlcIDsKK+eqk+mam+aXjyA8IG1hZG9naXdhem9rdVwgOwor5LqL5a6f54Sh5qC5IDwgamlqaXRzdW11a29uXCA7CivlhpnnnJ/ooZMgPCBzaGFzaGluanV0c3VcIDsKK+WtlOmbgOWmmeeOiyA8IGt1amFrdW15b3VvdVwgOwor6LKh55Sj5YiG5LiOIDwgemFpc2FuYnVuJyd5b1wgOwor6YKm5a2X5paw6IGeIDwgaG91amlzaGluYnVuXCA7CivmqZ/li5XoqIjnlLsgPCBraWRvdWtlaWtha3VcIDsKK+i8u+WwhOeGsSA8IGZ1a3VzaGFuZXRzdVwgOwor5a2k56uL5Li7576pIDwga29yaXRzdXNodWdpXCA7Civkvpvov7DogIUgPCBreW91anV0c3VzaGFcIDsKK+aYjuayu+WkqeeahyA8IG1laWppdGVuJydub3VcIDsKK+eEpueCuei3nemboiA8IHNob3V0ZW5reW9yaVwgOwor6ZuG5ZCI5pmC6ZaTIDwgc2h1dWdvdWppa2FuXCA7CivkvY/lroXlnLDljLogPCBqdXV0YWt1Y2hpa3VcIDsKK+Wkmuinkuiyv+aYkyA8IHRha2FrdWJvdWVraVwgOwor6Z2e5Zar54WZ6ICFIDwgaGlraXRzdWVuc2hhXCA7CivmtojljJbkuI3oia8gPCBzaG91a2FmdXJ5b3VcIDsKK+elnue1jOevgCA8IHNoaW5rZWlzZXRzdVwgOwor6Iie5Y+w54Wn5piOIDwgYnV0YWlzaG91bWVpXCA7CivkuI3nlJ/nlKPnmoQgPCBmdXNlaXNhbnRla2lcIDsKK+eIhueZuuaApyA8IGJha3VoYXRzdXNlaVwgOwor6Z2e55Sf55Sj55qEIDwgaGlzZWlzYW50ZWtpXCA7Civli5/pm4bkurrlk6EgPCBib3NodXVqaW4nJ2luXCA7Civljp/nqL/nlKjntJkgPCBnZW5rb3V5b3VzaGlcIDsKK+eEoeaEj+itmOeahCA8IG11aXNoaWtpdGVraVwgOwor57eP5Y+45Luk5a6YIDwgc291c2hpcmVpa2FuXCA7CivorbLmuKHmiYDlvpcgPCBqb3V0b3Nob3Rva3VcIDsKK+WtpuerpeS/neiCsiA8IGdha3Vkb3Vob2lrdVwgOwor5pyA57WC5YW15ZmoIDwgc2Fpc2h1dWhlaWtpXCA7Civmu5HotbDou4rovKogPCBrYXNzb3VzaGFyaW5cIDsKK+aciOWIiumbkeiqjCA8IGdla2thbnphc3NoaVwgOwor5YKN6Iul54Sh5Lq6IDwgYm91amFrdWJ1amluXCA7Civlhajml6XliLYgPCB6ZW4nJ25pY2hpc2VpXCA7Civli6TlirTlpYnku5UgPCBraW5yb3Vob3VzaGlcIDsKK+aAp+iFuuaRmOmZpCA8IHNlaXNlbnRla2lqb1wgOwor5raI5q+S6JasIDwgc2hvdWRva3V5YWt1XCA7CivmhrLms5XmlLnmraMgPCBrZW5wb3VrYWlzZWlcIDsKK+ihjOi3r+eXheiAhSA8IGtvdXJvYnlvdXNoYVwgOwor5LiA5Lq66Iqd5bGFIDwgaGl0b3Jpc2hpYmFpXCA7CivlhbHlkIzpmLLooZsgPCBreW91ZG91Ym91ZWlcIDsKK+mXmOW/l+a6gOa6gCA8IHRvdXNoaW1hbm1hblwgOwor5biC5Yui6Kq/5p+7IDwgc2hpc2VpY2hvdXNhXCA7CivkvJrljq3ou5/pqqggPCBlZW4nJ25hbmtvdHN1XCA7Civou43nlKjlnLDlm7MgPCBndW4nJ3lvdWNoaXp1XCA7CivmnbHlpZTopb/otbAgPCB0b3Vob25zZWlzb3VcIDsKK+mBk+W+s+W+iyA8IGRvdXRva3VyaXRzdVwgOwor5Lqk5Luj5L2c5qWtIDwga291dGFpc2FneW91XCA7Civlm73pmLLoibIgPCBrb2t1Ym91c2hva3VcIDsKK+aXpeiomOaWh+WtpiA8IG5pa2tpYnVuZ2FrdVwgOwor57WC5pyr6KuWIDwgc2h1dW1hdHN1cm9uXCA7Civml6Xns7vnsbPkurogPCBuaWtrZWliZWlqaW5cIDsKK+Wwhui7jeiBtyA8IHNob3VndW5zaG9rdVwgOwor6Iez5YWs6Iez5bmzIDwgc2hpa291c2hpaGVpXCA7CivplqLpgKPkvJrnpL4gPCBrYW5yZW5nYWlzaGFcIDsKK+S6uuaoqeWuo+iogCA8IGppbmtlbnNlbmdlblwgOwor5Lq66YCg5Lq66ZaTIDwgamluem91bmluZ2VuXCA7Civlgr7mlpzlrrbos4MgPCBrZWlzaGF5YWNoaW5cIDsKK+iHquawkeWFmuWJhyA8IGppbWludG91c29rdVwgOwor5Y+N5b6p6KiY5Y+3IDwgaGFucHVrdWtpZ291XCA7Civml6XmnKzoiKrnqbogPCBuaXBwb25rb3VrdXVcIDsKK+iLseaJjeaVmeiCsiA8IGVpc2Fpa3lvdWlrdVwgOwor6I2J5pyI5rWBIDwgc291Z2V0c3VyeXV1XCA7CivmjpLmsLTmnaHku7YgPCBoYWlzdWlqb3VrZW5cIDsKK+iLseWbveiIquepuiA8IGVpa29rdWtvdWt1dVwgOwor5piO6LWk6ImyIDwgbWVpc2VraXNob2t1XCA7Civop6PmsbrnrZYgPCBrYWlrZXRzdXNha3VcIDsKK+WPo+WUh+ijgiA8IGtvdXNoaW5yZXRzdVwgOwor5LiD6I2J57KlIDwgbmFuYWt1c2FnYXl1XCA7CivliY3lk6jpqI7lhbUgPCB6ZW5zaG91a2loZWlcIDsKK+awtOe0oOeIhuW8viA8IHN1aXNvYmFrdWRhblwgOwor5r2F5ryR55So5rC0IDwga2FuZ2FpeW91c3VpXCA7CivllYbmpa3lraYgPCBzaG91Z3lvdWdha3VcIDsKK+W7uuioreecgSA8IGtlbnNldHN1c2hvdVwgOwor5YiG5Yil5b+DIDwgZnVuYmV0c3VzaGluXCA7Civlu7roqK3nmoQgPCBrZW5zZXRzdXRla2lcIDsKK+mHkemLuCA8IGthbmVub2tvZ2lyaVwgOwor5LqM57+75b25IDwgcnlhbmZhbicneWFrdVwgOwor5LiA5paJ5bCE5pKDIDwgaXNzZWlzaGFnZWtpXCA7CivkuIDphbjljJbngq3ntKAgPCBpc3NhbmthdGFuc29cIDsKK+Wfuui7uOmAmuiyqCA8IGtpamlrdXRzdXVrYVwgOwor5YK+5pac55Sf55SjIDwga2Vpc2hhc2Vpc2FuXCA7CivlooPnlYznkIboq5YgPCBreW91a2Fpcmlyb25cIDsKK+Wkqeeah+mZm+S4iyA8IHRlbicnbm91aGVpa2FcIDsKK+WkqeeEtuaenOaxgSA8IHRlbicnbmVua2FqdXVcIDsKK+WPo+aLjeWtkCA8IGt1Y2hpYnlvdXNoaVwgOwor6ZyK6IKJ5LiA6Ie0IDwgcmVpbmlrdWl0Y2hpXCA7Civku5jliqDkvqHlgKTnqI4gPCBmdWtha2FjaGl6ZWlcIDsKK+e1jOa4iOW+qeiIiCA8IGtlaXphaWZ1a2tvdVwgOwor5Lq65Y+j57Wx6KiIIDwgamlua291dG91a2VpXCA7CivmiKbmmYLnlKPmpa0gPCBzZW5qaXNhbmd5b3VcIDsKK+WPpOmKreWtpuiAhSA8IGtvc2VuZ2FrdXNoYVwgOwor5a++5by+6YGT5by+IDwgdGFpZGFuZG91ZGFuXCA7Civoqo3oqLzlvI8gPCBuaW5zaG91c2hpa2lcIDsKK+ijvemAoOeVquWPtyA8IHNlaXpvdWJhbmdvdVwgOwor57eP5ous55qEIDwgc291a2F0c3V0ZWtpXCA7CivlpJrph43kurrmoLwgPCB0YWp1dWppbmtha3VcIDsKK+S4gOWIgOS4oeaWrSA8IGl0dG91cnlvdWRhblwgOwor5omY6Ymi5YOnIDwgdGFrdWhhdHN1em91XCA7CivlhbHnlKPkuLvnvqkgPCBreW91c2Fuc2h1Z2lcIDsKK+iomOWQjeaKleelqCA8IGtpbWVpdG91aHlvdVwgOwor5ZWG5qWt5Zu9IDwgc2hvdWd5b3Vrb2t1XCA7Civku7Lkurrlj6MgPCBuYWtvdWRvZ3VjaGlcIDsKK+ahnOWJjee3miA8IHNha3VyYXplbnNlblwgOwor5LyR5oap5pmC6ZaTIDwga3l1dWtlaWppa2FuXCA7CivkuLjlpKrotrPloLQgPCBtYXJ1dGFhc2hpYmFcIDsKK+ahg+iJsumBiuaIryA8IG1vbW9pcm95dXVnaVwgOwor5q2m5aOr6ZqO57SaIDwgYnVzaGlrYWlreXV1XCA7CivluLjnva7lp5Tlk6HkvJogPCBqb3VjaGlpaW5rYWlcIDsKK+Wbvemam+mbu+ipsSA8IGtva3VzYWlkZW53YVwgOwor5Lq65bel5Zyw6ZyHIDwgamlua291amlzaGluXCA7CivmvZzlnKjkuLvmqKkgPCBzZW56YWlzaHVrZW5cIDsKK+mBjuWwj+ipleS+oSA8IGthc2hvdWh5b3VrYVwgOwor56+E55aH6YOo6ZaAIDwgaGFuY2h1dWJ1bW9uXCA7Civkv67pgZPliLbluqYgPCBzaHV1ZG91c2VpZG9cIDsKK+e1seiqnuevhOeWhyA8IHRvdWdvaGFuY2h1dVwgOwor6KGb55Sf6Kit5YKZIDwgZWlzZWlzZXRzdWJpXCA7CivkuIDmrKHnlKPlk4EgPCBpY2hpamlzYW5waW5cIDsKK+W8t+WItuWKmyA8IGt5b3VzZWlyeW9rdVwgOwor5YWs5piO5q2j5aSnIDwga291bWVpc2VpZGFpXCA7Civlv4Xoqq3mm7ggPCBoaXRzdWRva3VzaG9cIDsKK+iKseeBq+e3mummmSA8IGhhbmFiaXNlbmtvdVwgOwor5Zyn5Yqb6KiIIDwgYXRzdXJ5b2t1a2VpXCA7CivoiLbnlKjmqZ/plqIgPCBoYWt1eW91a2lrYW5cIDsKK+maj+ethumbhiA8IHp1aWhpdHN1c2h1dVwgOwor5YWs5rCR5qip5rOVIDwga291bWlua2VuaG91XCA7CivnjKvnm67nn7MgPCBuZWtvbW9rdXNla2lcIDsKK+WLieW8t+acuiA8IGJlbmt5b3V6dWt1ZVwgOwor5piP552h54q25oWLIDwga29uc3Vpam91dGFpXCA7Civlr77lkJHou4rnt5ogPCB0YWlrb3VzaGFzZW5cIDsKK+mJhOaLs+WItuijgSA8IHRla2tlbnNlaXNhaVwgOwor5qGC5Yag6Kmp5Lq6IDwga2Vpa2Fuc2hpamluXCA7Civkurrlj6Poqr/mn7sgPCBqaW5rb3VjaG91c2FcIDsKK+WPuOazleino+WJliA8IHNoaWhvdWthaWJvdVwgOwor5Lq65Y+j6Z2Z5oWLIDwgamlua291c2VpdGFpXCA7CivmnInkvZPli5XnlKMgPCB5dXV0YWlkb3VzYW5cIDsKK+aOoeeUqOippumokyA8IHNhaXlvdXNoaWtlblwgOwor55m9546J5qW8IDwgaGFrdWd5b2t1cm91XCA7CivmsJfosaHmg4XloLEgPCBraXNob3Vqb3Vob3VcIDsKK+aciee3muaUvumAgSA8IHl1dXNlbmhvdXNvdVwgOwor6ZaL6YCa5byPIDwga2FpdHN1dXNoaWtpXCA7CivmiK/kuosgPCB0YXdhbXVyZWdvdG9cIDsKK+WWgOeXsOaknOafuyA8IGtha3V0YW5rZW5zYVwgOwor6YO35Zyf5paZ55CGIDwga3lvdWRvcnlvdXJpXCA7CivkuInmrrXoq5bms5UgPCBzYW5kYW5yb25wb3VcIDsKK+ilv+WNiueQgyA8IG5pc2hpaGFua3l1dVwgOwor5pmC5Luj57K+56WeIDwgamlkYWlzZWlzaGluXCA7CivoqoflpKfluoPlkYogPCBrb2RhaWtvdWtva3VcIDsKK+mDveW4guioiOeUuyA8IHRvc2hpa2Vpa2FrdVwgOwor6Zai5p2x5LiA5YaGIDwga2FudG91aWNoaWVuXCA7Civoh6rnhLbnmbrnlJ8gPCBzaGl6ZW5oYXNzZWlcIDsKK+WVhOacqOmzpSA8IHRha3Vib2t1Y2hvdVwgOwor5Y2Y5LiA5b2iIDwgdGFuJydpY2hpZ2F0YVwgOwor5qy95a6a5oay5rOVIDwga2ludGVpa2VucG91XCA7Civlv4XnhLbnmoQgPCBoaXRzdXplbnRla2lcIDsKK+aVsOWApOWItuW+oSA8IHN1dWNoaXNlaWd5b1wgOwor5q2m6ICF5Lq65b2iIDwgbXVzaGFuaW5neW91XCA7CivliIblkajlm57ot68gPCBidW5zaHV1a2Fpcm9cIDsKK+W4guawkeWkp+S8miA8IHNoaW1pbnRhaWthaVwgOwor6LWk5a2X5Zu95YK1IDwgYWthamlrb2t1c2FpXCA7Civkvb/nlKjmlrnms5UgPCBzaGl5b3Vob3Vob3VcIDsKK+awtOift+iegiA8IG1penVrYW1ha2lyaVwgOwor5bCP5pil5pel5ZKMIDwga29oYXJ1Yml5b3JpXCA7CivmmJ/mnIjlpJwgPCBob3NoaWR6dWt1eW9cIDsKK+e4nue5lOeJqSA8IHNoaW1hb3JpbW9ub1wgOwor5YWs5byP6Kmm5ZCIIDwga291c2hpa2lqaWFpXCA7CivnhaflsITlh6bnkIYgPCBzaG91c2hhc2hvcmlcIDsKK+W7uuiorealrSA8IGtlbnNldHN1Z3lvdVwgOwor5Y+C5Yuk5Lqk5pu/IDwgc2Fua2lua291dGFpXCA7CivnvorpoK3ni5fogokgPCB5b3V0b3VrdW5pa3VcIDsKK+aWoeaXi+alreiAhSA8IGFzc2VuZ3lvdXNoYVwgOwor5Lya56S+5qaC6KaBIDwga2Fpc2hhZ2FpeW91XCA7CivllYbkurrooZcgPCBzaG91bmlubWFjaGlcIDsKK+S4gOW5leeJqSA8IGhpdG9tYWt1bW9ub1wgOwor5rCR5Li75pS/5L2TIDwgbWluc2h1c2VpdGFpXCA7CivnspfmlL7ovrLmpa0gPCBzb2hvdW5vdWd5b3VcIDsKK+iyoeWLmeiruOihqCA8IHphaW11c2hvaHlvdVwgOwor6JqK5Y+W57ea6aaZIDwga2F0b3Jpc2Vua291XCA7CivluoPloLHmg4XloLEgPCBrb3Vob3Vqb3Vob3VcIDsKK+e3iuaApeS6i+aFiyA8IGtpbmt5dXVqaXRhaVwgOwor5Z2H6KGh5L6h5qC8IDwga2lua291a2FrYWt1XCA7Civlhazlronlp5Tlk6HkvJogPCBrb3VhbicnaWlua2FpXCA7CivlraPnr4DlpInnlbAgPCBraXNldHN1aGVuJydpXCA7CivmnInmhJ/lnLDpnIcgPCB5dXVrYW5qaXNoaW5cIDsKK+e3qeWSjOaMr+WLlSA8IGthbndhc2hpbmRvdVwgOwor5bm96ZyK5Lq65Y+jIDwgeXV1cmVpamlua291XCA7CivntbHoqp7mjIfmqJkgPCB0b3Vnb3NoaWh5b3VcIDsKK+acgOmrmOS+oeagvCA8IHNhaWtvdWtha2FrdVwgOwor55m+5Lq65YqbIDwgaHlha3VuaW5yaWtpXCA7CivphbjmgKfnmb3lnJ8gPCBzYW5zZWloYWt1ZG9cIDsKK+awkeaXj+iho+ijhSA8IG1pbnpva3Vpc2hvdVwgOwor5L6b6L+w5pu4IDwga3lvdWp1dHN1c2hvXCA7CivpnZ7llrbliKnkuovmpa0gPCBoaWVpcmlqaWd5b3VcIDsKK+Wun+alreeVjCA8IGppdHN1Z3lvdWthaVwgOwor5L+u5aOr6Kqy56iLIDwgc2h1dXNoaWthdGVpXCA7CivooYzlubPpjYsgPCB5dWtpaGlyYW5hYmVcIDsKK+WFrOebiuazleS6uiA8IGtvdWVraWhvdWppblwgOwor5q205Y+y5Li7576pIDwgcmVraXNoaXNodWdpXCA7CivlvIHmhbbmoLzlrZAgPCBiZW5rZWlnb3VzaGlcIDsKK+esrOS6jOS6uuensCA8IGRhaW5pbmluc2hvdVwgOwor5LiL5rWB56S+5LyaIDwga2FyeXV1c2hha2FpXCA7Civlv6vmpb3kuLvnvqkgPCBrYWlyYWt1c2h1Z2lcIDsKK+iQveaIkOW8jyA8IHJha3VzZWlzaGlraVwgOwor5p+z5bed6Y2LIDwgeWFuYWdhd2FuYWJlXCA7CivoiKrntprlipsgPCBrb3V6b2t1cnlva3VcIDsKK+WItumZkOmAn+W6piA8IHNlaWdlbnNva3Vkb1wgOwor5paH5q2m5Lih6YGTIDwgYnVuYnVyeW91ZG91XCA7CivkuIrmmIfpmZDluqYgPCBqb3VzaG91Z2VuZG9cIDsKK+S9nOeUqOepjeWIhiA8IHNheW91c2VraWJ1blwgOwor55u05o6l6LK7IDwgY2hva3VzZXRzdWhpXCA7CivohbnnrYvpgYvli5UgPCBmdWtraW4nJ3VuZG91XCA7Civlhazoqo3oqJjpjLIgPCBrb3VuaW5raXJva3VcIDsKK+WxseaiqOecjCA8IHlhbWFuYXNoaWtlblwgOwor5LiA57ay5omT5bC9IDwgaWNoaW1vdWRhamluXCA7Civmo5fmpLDlrZAgPCBuYXRzdW1leWFzaGlcIDsKK+WtpuagoeeUqOWTgSA8IGdha2tvdXlvdWhpblwgOwor5L2P5a6F5omL5b2TIDwganV1dGFrdXRlYXRlXCA7Civoqo3nn6Xnp5HlraYgPCBuaW5jaGlrYWdha3VcIDsKK+WVhuWjsumBk+WFtyA8IHNob3ViYWlkb3VndVwgOwor5Yi65r+A54mpIDwgc2hpZ2VraWJ1dHN1XCA7Civljp/lrZDmiKbkuokgPCBnZW5zaGlzZW5zb3VcIDsKK+a8q+mBiuWuoiA8IG1hbicneXV1a3lha3VcIDsKK+S6jOmHjeeEpueCuSA8IG5panV1c2hvdXRlblwgOwor55Om54WO6aSFIDwga2F3YXJhc2VuYmVpXCA7Civlm7Pmm7jppKjplbcgPCB0b3Nob2thbmNob3VcIDsKK+WcqOW6q+iqv+aVtCA8IHphaWtvY2hvdXNlaVwgOwor5a++5pWw6Zai5pWwIDwgdGFpc3V1a2Fuc3V1XCA7CivopqrlrZDkuLwgPCBveWFrb2RvbmJ1cmlcIDsKK+aUv+aVmeS4gOiHtCA8IHNlaWt5b3VpdGNoaVwgOwor5paH6Iq45om56KmVIDwgYnVuZ2VpaGloeW91XCA7Civnt5rlvaLku6PmlbAgPCBzZW5rZWlkYWlzdXVcIDsKK+mAo+WQiOaUv+aoqSA8IHJlbmdvdXNlaWtlblwgOwor6aC85q+N5a2Q6KybIDwgdGFub21vc2hpa291XCA7CivlnKjpn5PnsbPou40gPCB6YWlrYW5iZWlndW5cIDsKK+iRl+i/sOalrSA8IGNob2p1dHN1Z3lvdVwgOwor5LiA5aSc5Lme6aOfIDwgaWNoaXlha29qaWtpXCA7CivnlbDluLjntYLkuoYgPCBpam91c2h1dXJ5b3VcIDsKK+WTgeW9oiA8IHNoaW5ha2F0YWNoaVwgOwor6Kmm6aiT5Zyw542EIDwgc2hpa2Vuamlnb2t1XCA7CivnpL7lk6HmlZnogrIgPCBzaGFpbmt5b3Vpa3VcIDsKK+iSvOeZveiJsiA8IHNvdWhha3VzaG9rdVwgOwor5LyB5qWt5bm06YeRIDwga2lneW91bmVua2luXCA7CivkuZ7po5/moLnmgKcgPCBrb2ppa2lrb25qb3VcIDsKK+S8gealreWQiOWQjCA8IGtpZ3lvdWdvdWRvdVwgOwor6Ieq5Li75oyH6YedIDwgamlzaHVzaGlzaGluXCA7CivmhJ/mhajnhKHph48gPCBrYW5nYWltdXJ5b3VcIDsKK+S4g+i+uuW9oiA8IHNoaWNoaWhlbmtlaVwgOwor5pW15oCn5Zu95a62IDwgdGVraXNlaWtva2thXCA7CivnrYnlt67ntJrmlbAgPCB0b3VzYWt5dXVzdXVcIDsKK+W5tOacq+i/hCA8IG5lbm1hdHN1bWFkZVwgOwor5bir56+E5a2m5qChIDwgc2hpaGFuZ2Fra291XCA7CivntYzmuIjnpL7kvJogPCBrZWl6YWlzaGFrYWlcIDsKK+aUueiJr+S4u+e+qSA8IGthaXJ5b3VzaHVnaVwgOwor57WM5riI5Yi26KOBIDwga2VpemFpc2Vpc2FpXCA7CivkuLvmiKbmipXmiYsgPCBzaHVzZW50b3VzaHVcIDsKK+WjsuaYpeWuvyA8IGJhaXNodW4nJ3lhZG9cIDsKK+mBiuaSg+maiuWToSA8IHl1dWdla2l0YWlpblwgOwor5LiA5pmC5biw5LyRIDwgaWNoaWppa2lreXV1XCA7Civos6rngrnns7sgPCBzaGl0c3V0ZW5rZWlcIDsKK+WPl+ebiuiovOWIuCA8IGp1ZWtpc2hvdWtlblwgOwor5b6h5Ly96KmxIDwgb3RvZ2liYW5hc2hpXCA7Civmi5npgJ/kuLvnvqkgPCBzZXNzb2t1c2h1Z2lcIDsKK+acqumWi+aLk+WcsCA8IG1pa2FpdGFrdWNoaVwgOwor5YWo5qip5YWs5L2/IDwgemVua2Vua291c2hpXCA7CivntbHliLbntYzmuIggPCB0b3VzZWlrZWl6YWlcIDsKK+eUsOWckumiqOaZryA8IGRlbicnZW5mdXVrZWlcIDsKK+aXheihjOaXpeeoiyA8IHJ5b2tvdW5pdHRlaVwgOwor5pON5qWt546HIDwgc291Z3lvdXJpdHN1XCA7CivnhKHph4/lpKfmlbAgPCBtdXJ5b3VkYWlzdXVcIDsKK+WJsuW8leatqeWQiCA8IHdhcmliaWtpYnVhaVwgOwor5Y+N5qC46YGL5YuVIDwgaGFua2FrdXVuZG91XCA7CivmnpXlsY/poqggPCBtYWt1cmFieW91YnVcIDsKK+ihgOa2suWtpiA8IGtldHN1ZWtpZ2FrdVwgOwor6aaZ5riv6L+U6YKEIDwgaG9ua29uaGVua2FuXCA7CivkvIHmpa3lkIjkvbUgPCBraWd5b3VnYXBwZWlcIDsKK+mdnuihjOWwkeW5tCA8IGhpa291c2hvdW5lblwgOwor5Z+6552j5pWZIDwga2lyaXN1dG9reW91XCA7Civph47lpJbmkq7lvbEgPCB5YWdhaXNhdHN1ZWlcIDsKK+m8oOiKseeBqyA8IG5lenVtaWhhbmFiaVwgOwor5Y2D5omL6Kaz6Z+zIDwgc2VuanVrYW4nJ25vblwgOwor57K+56We5Li7576pIDwgc2Vpc2hpbnNodWdpXCA7CivntYLlp4vkuIDosqsgPCBzaHV1c2hpaWtrYW5cIDsKK+aNleeJqeW4syA8IHRvcmltb25vY2hvdVwgOwor55yM5rCR5Lya6aSoIDwga2VubWlua2Fpa2FuXCA7CivmlZnmnaHkuLvnvqkgPCBreW91am91c2h1Z2lcIDsKK+abtOeUn+S8muekviA8IGtvdXNlaWdhaXNoYVwgOwor57mK57at5bel5qWtIDwgc2VuJydpa291Z3lvdVwgOwor5Lq66ZaT5ZCM5aOrIDwgbmluZ2VuZG91c2hpXCA7Civosq/olLXlrqQgPCBjaG96b3VzaGl0c3VcIDsKK+WLmOWQiOiyv+aYkyA8IGthbmdvdWJvdWVraVwgOwor55m+5a625LqJ6bO0IDwgaHlha2thc291bWVpXCA7CivkuJbnlYzmlL/nrZYgPCBzZWthaXNlaXNha3VcIDsKK+W8lOWVj+WuoiA8IGNob3Vtb25reWFrdVwgOwor5a625bGL5Y+w5bizIDwga2Fva3VkYWljaG91XCA7CivmnbHmtbfpgZPnt5ogPCB0b3VrYWlkb3VzZW5cIDsKK+mBuuWkseeJqSA8IGlzaGl0c3VidXRzdVwgOwor5YuV6ISI6KGAIDwgZG91bXlha2tldHN1XCA7CivpgY7lvZPnq7bkuokgPCBrYXRvdWt5b3Vzb3VcIDsKK+a2suS9k+eqkue0oCA8IGVraXRhaWNoaXNzb1wgOwor5bmz5ZKM5Y2U5a6aIDwgaGVpd2FreW91dGVpXCA7CivnhKHnt5rpm7vkv6EgPCBtdXNlbmRlbnNoaW5cIDsKK+WFpeWgtOW8jyA8IG55dXVqb3VzaGlraVwgOwor57Sw6IOe6LOqIDwgc2FpYm91c2hpdHN1XCA7CivlsILploDnlKjoqp4gPCBzZW5tb24nJ3lvdWdvXCA7CivkurrpgKDogqXmlpkgPCBqaW56b3VoaXJ5b3VcIDsKK+Wkp+egsuS4iemWgCA8IHRhaWhvdXNhbm1vblwgOwor5a6f6aiT6KOF572uIDwgamlra2Vuc291Y2hpXCA7CivooYDmtrLlnosgPCBrZXRzdWVraWdhdGFcIDsKK+S4reWkruWKtOWDjSA8IGNodXVvdXJvdWRvdVwgOwor5YaF57ea55Wq5Y+3IDwgbmFpc2VuYmFuZ291XCA7CivkvJ3oqJjkvZzogIUgPCBkZW5raXNha3VzaGFcIDsKK+S6uuawkeWFrOekviA8IGppbm1pbmtvdXNoYVwgOwor6YCj57Wh5YiH56ymIDwgcmVucmFrdWtpcHB1XCA7CivmqJnorZjnga8gPCBoeW91c2hpa2l0b3VcIDsKK+e1jOWWtuWQiOeQhuWMliA8IGtlaWVpZ291cmlrYVwgOwor5YWx5ZCM5aKT5ZywIDwga3lvdWRvdWJvY2hpXCA7Civlrp/mhYvoqr/mn7sgPCBqaXR0YWljaG91c2FcIDsKK+e3j+WLmemVt+WumCA8IHNvdW11Y2hvdWthblwgOwor5re35Lmx54q25oWLIDwga29ucmFuam91dGFpXCA7Civli6Lou4ogPCBoYXp1bWlndXJ1bWFcIDsKK+WTgOWTiSA8IGthbmFzaGlpa2FuYVwgOwor5YyF5ous55qEIDwgaG91a2F0c3V0ZWtpXCA7CivliofkuK3liocgPCBnZWtpY2h1dWdla2lcIDsKK+WutuaXj+aEj+itmCA8IGthem9rdWlzaGlraVwgOwor5aSW5p+U5YaF5YmbIDwgZ2FpanV1bmFpZ291XCA7CivoqKrllY/osqnlo7IgPCBob3Vtb25oYW5iYWlcIDsKK+Wun+eUqOeahCA8IGppdHN1eW91dGVraVwgOwor5L6N5YWr6aiOIDwgc2FtdXJhaWhha2tpXCA7CivkuK3plpPoibIgPCBjaHV1a2Fuc2hva3VcIDsKK+aOkuaWpemBi+WLlSA8IGhhaXNla2l1bmRvdVwgOwor6ZaL6IW56KGTIDwga2FpZnVrdWp1dHN1XCA7Civljp/lrZDlvL7poK0gPCBnZW5zaGlkYW50b3VcIDsKK+ebtOaSg+W8viA8IGNob2t1Z2VraWRhblwgOwor5Za25qWt5qGI5YaFIDwgZWlneW91YW4nJ25haVwgOwor5aSp5paH6Iiq5rOVIDwgdGVubW9ua291aG91XCA7CivpnZ7lrp/pmpvnmoQgPCBoaWppc3NhaXRla2lcIDsKK+ijj+abuOitsua4oSA8IHVyYWdha2lqb3V0b1wgOwor5Ymv55Sj54mpIDwgZnVrdXNhbmJ1dHN1XCA7Civlkb3kuK3njocgPCBtZWljaHV1cml0c3VcIDsKK+ihgOWPi+eXhSA8IGtldHN1eXV1YnlvdVwgOwor6Zai5L+C5pu46aGeIDwga2Fua2Vpc2hvcnVpXCA7CivlhY3oqLHnmobkvJ0gPCBtZW5reW9rYWlkZW5cIDsKK+Wbnui7ouertuaKgCA8IGthaXRlbmt5b3VnaVwgOwor57WM5riI5rC05Z+fIDwga2VpemFpc3VpaWtpXCA7CivnhKHmrLLmgazmt6EgPCBtdXlva3V0ZW50YW5cIDsKK+iHquaIkeWun+ePviA8IGppZ2FqaXRzdWdlblwgOwor5Z+36KGM54y25LqIIDwgc2hpa2tvdXl1dXlvXCA7Civono3pgJrmiYvlvaIgPCB5dXV6dXV0ZWdhdGFcIDsKK+WOmueUn+W5tOmHkSA8IGtvdXNlaW5lbmtpblwgOwor6Zmi5YaF5oSf5p+TIDwgaW4nJ25haWthbnNlblwgOwor5oKq5oCn5rC06IWrIDwgYWt1c2Vpc3Vpc2h1XCA7Civlm6PljYHpg47kuIggPCBkYW5qdXVyb3Vqb3VcIDsKK+eyvueZveeOhyA8IHNlaWhha3VyaXRzdVwgOwor5Lul5b+D5Lyd5b+DIDwgaXNoaW5kZW5zaGluXCA7CivkuIDlrZfljYPph5EgPCBpY2hpamlzZW5raW5cIDsKK+alree4vuaCquWMliA8IGd5b3VzZWtpYWtrYVwgOwor5YW15Zmo5ouh5pWjIDwgaGVpa2lrYWt1c2FuXCA7CivkuqTlj4vplqLkv4IgPCBrb3V5dXVrYW5rZWlcIDsKK+Wbvemam+aUv+ayuyA8IGtva3VzYWlzZWlqaVwgOwor5Z2H6LOq5oCnIDwga2luc2hpdHN1c2VpXCA7Civmm7jpnaLlr6nnkIYgPCBzaG9tZW5zaGlucmlcIDsKK+S6uumWk+ekvuS8miA8IG5pbmdlbnNoYWthaVwgOwor6LuN5Zu95Li7576pIDwgZ3Vua29rdXNodWdpXCA7CivmsLTkuIrnq7bmioAgPCBzdWlqb3VreW91Z2lcIDsKK+ays+WOn+S5numjnyA8IGthd2FyYWtvamlraVwgOwor5oi457GN5L+CIDwga29zZWtpZ2FrYXJpXCA7Civkuozph43mkq7lvbEgPCBuaWp1dXNhdHN1ZWlcIDsKK+e1tuWvvuipleS+oSA8IHpldHRhaWh5b3VrYVwgOwor5Zyo57Gz6YKm5Lq6IDwgemFpYmVpaG91amluXCA7Civlm5vmnIjppqzpub8gPCBzaGlnYXRzdWJha2FcIDsKK+aWsOmAsuawl+mLrSA8IHNoaW5zaGlua2llaVwgOwor5omA5b6X5o6n6ZmkIDwgc2hvdG9rdWtvdWpvXCA7CivplqLkv4LkvJrnpL4gPCBrYW5rZWlnYWlzaGFcIDsKK+iHquS/oea6gOa6gCA8IGppc2hpbm1hbm1hblwgOwor5pel5pys5a2m6ICFIDwgbmlob25nYWt1c2hhXCA7CivmjqXlrqLmpa0gPCBzZWtreWFrdWd5b3VcIDsKK+aYpeaXpeWkp+ekviA8IGthc3VnYXRhaXNoYVwgOwor5rC055uDIDwgbWl6dXNha2F6dWtpXCA7CivmlofmmI7npL7kvJogPCBidW5tZWlzaGFrYWlcIDsKK+iThOiGv+eXhyA8IGNoaWt1bm91c2hvdVwgOwor5ZCM5Lq66ZuR6KqMIDwgZG91amluemFzc2hpXCA7CivoirHlvaLmoKogPCBoYW5hZ2F0YWthYnVcIDsKK+WPuOazleijgeWIpCA8IHNoaWhvdXNhaWJhblwgOwor5Lq65L2T5a6f6aiTIDwgamludGFpamlra2VuXCA7CivkuqHlkb3mlL/mqKkgPCBib3VtZWlzZWlrZW5cIDsKK+aMr+WHuuS6uiA8IGZ1cmlkYXNoaW5pblwgOwor5Luy6ZaT5ZCM5aOrIDwgbmFrYW1hZG91c2hpXCA7CivntYzllrblt6XlraYgPCBrZWllaWtvdWdha3VcIDsKK+W8geitt+S+nemgvOS6uiA8IGJlbmdvaXJhaW5pblwgOwor6LOb5ZCm5Lih6KuWIDwgc2FucGlyeW91cm9uXCA7CivkuI3ms5Xpm4bkvJogPCBmdWhvdXNodXVrYWlcIDsKK+ecvOmrmOaJi+S9jiA8IGdhbmtvdXNodXRlaVwgOwor56aB5qyy55qEIDwga2luJyd5b2t1dGVraVwgOwor6Ieq5YuV5bCP6YqDIDwgamlkb3VzaG91anV1XCA7CivlnLDln5/npL7kvJogPCBjaGlpa2lzaGFrYWlcIDsKK+S6pOa1geS6uuS6iyA8IGtvdXJ5dXVqaW5qaVwgOwor54m55q6K5Yq55p6cIDwgdG9rdXNodWtvdWthXCA7CivkuIDliIbliKUgPCBoaXRvZnVuYmV0c3VcIDsKK+iHquWutuS4reavkiA8IGppa2FjaHV1ZG9rdVwgOwor5Lq65rCX55Wq57WEIDwgbmlua2liYW5ndW1pXCA7CivmlbXmnKzkuLvnvqkgPCB0ZWtpaG9uc2h1Z2lcIDsKK+WPo+WGheaAp+S6pCA8IGtvdW5haXNlaWtvdVwgOwor6ISz6Luf5YyW55eHIDwgbm91bmFua2FzaG91XCA7CivljYrni6znq4sgPCBoYW5kb2t1cml0c3VcIDsKK+ePvuWcsOazleS6uiA8IGdlbmNoaWhvdWppblwgOwor6Ieq5YuV6LuK5rOlIDwgamlkb3VzaGFkb3JvXCA7CivkuIDmmYLlgZzmraIgPCBpY2hpaml0ZWlzaGlcIDsKK+WtpuWckue0m+S6iSA8IGdha3VlbmZ1bnNvdVwgOwor5pyA6auY5a2m5bqcIDwgc2Fpa291Z2FrdWZ1XCA7Civkv53pmbrlpZHntIQgPCBob2tlbmtlaXlha3VcIDsKK+Wls+aAp+W3ruWIpSA8IGpvc2Vpc2FiZXRzdVwgOwor5YWQ56ul56aP56WJIDwgamlkb3VmdWt1c2hpXCA7Civln7fli5nkuK0gPCBzaGl0c3VtdWNodXVcIDsKK+ippumok+WVj+mhjCA8IHNoaWtlbm1vbmRhaVwgOwor5ry46YCy5Li7576pIDwgemVuc2hpbnNodWdpXCA7Civpn7Pkv6HkuI3pgJogPCBvbnNoaW5mdXRzdXVcIDsKK+WLh+W+gOmCgemAsiA8IHl1dW91bWFpc2hpblwgOwor6Z2Z5q2i54q25oWLIDwgc2Vpc2hpam91dGFpXCA7CivljJfmlK/kuovlpIkgPCBob2t1c2hpamloZW5cIDsKK+WvuOWAn+ipkOasuiA8IHN1bnNoYWt1c2FnaVwgOwor5oyH5ZCN6YCa6KmxIDwgc2hpbWVpdHN1dXdhXCA7Civoi6blv4Pmg6jmhrogPCBrdXNoaW5zYW50YW5cIDsKK+eJveW8t+S7mOS8miA8IGtlbmt5b3VmdWthaVwgOwor5a+S5Ya35YmN57eaIDwga2FucmVpemVuc2VuXCA7CivliKnku5bkuLvnvqnogIUgPCByaXRhc2h1Z2lzaGFcIDsKK+imquaXpea0viA8IHNoaW4nJ25pY2hpaGFcIDsKK+mAn+W6puWItumZkCA8IHNva3Vkb3NlaWdlblwgOwor5Zub6YOo5ZCI5ZSxIDwgc2hpYnVnYXNzaG91XCA7Civpm7vpm7vlhaznpL4gPCBkZW5kZW5rb3VzaGFcIDsKK+emj+WztuecjCA8IGZ1a3VzaGltYWtlblwgOwor6Kq/6Imy5p2/IDwgY2hvdXNob2t1YmFuXCA7CivlhKrli53lgJnoo5wgPCB5dXVzaG91a291aG9cIDsKK+WPi+WlvemWouS/giA8IHl1dWtvdWthbmtlaVwgOwor5pWR5o+054mp6LOHIDwga3l1dWVuYnVzc2hpXCA7Civliarlrprpi48gPCBzZW50ZWliYXNhbWlcIDsKK+e3kem7hOiJsiA8IHJ5b2t1b3VzaG9rdVwgOwor5YyF57SZIDwgdHN1dHN1bWlnYW1pXCA7CivkuIvlsYvmlbcgPCBzaGltb3lhc2hpa2lcIDsKK+elnuekvuS7j+mWoyA8IGppbmphYnVra2FrdVwgOwor6LuK55So5ZOBIDwga3VydW1heW91aGluXCA7CivogJDkuYXlipsgPCB0YWlreXV1cnlva3VcIDsKK+awtOW5s+aAneiAgyA8IHN1aWhlaXNoaWtvdVwgOwor6Z+z5oSf5pWZ6IKyIDwgb25rYW5reW91aWt1XCA7Civlr53lj7DomasgPCBzaGluZGFpbXVzaGlcIDsKK+WXnOiZkOeahCA8IHNoaWd5YWt1dGVraVwgOwor5rue57SN5Yem5YiGIDwgdGFpbm91c2hvYnVuXCA7CivkuK3ntpnlsYAgPCBjaHV1a2Vpa3lva3VcIDsKK+WFseWQjOe1jOWWtiA8IGt5b3Vkb3VrZWllaVwgOwor6ZW35bqD6IiMIDwgY2hvdWtvdXpldHN1XCA7Civkuozlha3mmYLkuK0gPCBuaXJva3VqaWNodXVcIDsKK+S4gOaZguiznOmHkSA8IGljaGlqaXNoaWtpblwgOwor6Ieq54S25bSH5oudIDwgc2hpemVuc3V1aGFpXCA7Civlr6norbDmnKrkuoYgPCBzaGluZ2ltaXJ5b3VcIDsKK+mkiuWtkOe4gee1hCA8IHlvdXNoaWVuZ3VtaVwgOwor5pel5rKh5b6MIDwgbmljaGlib3RzdWdvXCA7CivmsI/ml4/liLbluqYgPCBzaGl6b2t1c2VpZG9cIDsKK+WLleiEiOeYpCA8IGRvdW15YWt1cnl1dVwgOwor5LiA6Lyq5oy/IDwgaWNoaXJpbnphc2hpXCA7Civou43pmaPljLvlraYgPCBndW5qaW4nJ2lnYWt1XCA7Civokrjnmbrnmr8gPCBqb3VoYXRzdXphcmFcIDsKK+ato+Wbm+mdouS9kyA8IHNlaXNoaW1lbnRhaVwgOwor5a6a5qC86KuL6LKgIDwgdGVpa2FrdXVrZW9pXCA7Civos4PlgJ/mqKkgPCBjaGluc2hha3VrZW5cIDsKK+WNuOWVj+WxiyA8IG9yb3NoaWRvbicneWFcIDsKK+mYsua5v+WJpCA8IGJvdXNoaXRzdXphaVwgOwor5Y+O56mr6auYIDwgc2h1dWtha3VkYWthXCA7Civlho3lh7rnmbogPCBzYWlzaHVwcGF0c3VcIDsKK+W+hemBh+aUueWWhCA8IHRhaWd1dWthaXplblwgOwor57mK57at5YWJ5a2mIDwgc2VuJydpa291Z2FrdVwgOwor6buS5Lq66ZyK5q2MIDwga29rdWppbnJlaWthXCA7CivlkajmpbXmmJ8gPCBzaHV1a3lva3VzZWlcIDsKK+mbtuihjOWIlyA8IHJlaWd5b3VyZXRzdVwgOwor54m55q6K5qmf6IO9IDwgdG9rdXNodWtpbm91XCA7CivntYzot6/nqY3liIYgPCBrZWlyb3Nla2lidW5cIDsKK+WbveWWtui+suWgtCA8IGtva3VlaW5vdWpvdVwgOwor5Zu957KL5Li7576pIDwga29rdXN1aXNodWdpXCA7Civlh7rnmbrngrkgPCBzaHVwcGF0c3V0ZW5cIDsKK+eUsueKtuiFuueCjiA8IGtvdWpvdXNlbicnZW5cIDsKK+WQiOagvOeOhyA8IGdvdWtha3VyaXRzdVwgOwor6LOH55Sj5ZCI6KiIIDwgc2hpc2FuZ291a2VpXCA7Civpr6jpo7Lppqzpo58gPCBnZWlpbmJhc2hva3VcIDsKK+W/g+iHk+eZuuS9nCA8IHNoaW56b3Vob3NzYVwgOwor5paw5Lq65q2M5omLIDwgc2hpbmppbmthc2h1XCA7CivovLjlhaXmiYvlvaIgPCB5dW55dXV0ZWdhdGFcIDsKK+Wcp+edgOerr+WtkCA8IGF0c3VnaXRhbnNoaVwgOwor5pyq5pS55b+D6ICFIDwgbWlrYWlzaGluc2hhXCA7CivnhKHlirnmipXnpaggPCBtdWtvdXRvdWh5b3VcIDsKK+ihjOmAsuabsiA8IGtvdXNoaW5reW9rdVwgOwor6Zuj5pS75LiN6JC9IDwgbmFua291ZnVyYWt1XCA7CivkuIDlv4PlkIzkvZMgPCBpc3NoaW5kb3V0YWlcIDsKK+WupeWSjOaUv+etliA8IHl1dXdhc2Vpc2FrdVwgOwor6ZmQ55WM5Yq555SoIDwgZ2Vua2Fpa291eW91XCA7CivljYHkuIflhITlnJ8gPCBqdXVtYW4nJ29rdWRvXCA7CivlpInmhYvlv4PnkIYgPCBoZW50YWlzaGlucmlcIDsKK+eZveeGseeBryA8IGhha3VuZXRzdXRvdVwgOwor5ouN5a2Q6KiY5Y+3IDwgaHlvdXNoaWtpZ291XCA7CivlhazkvJrllY/nrZQgPCBrb3VrYWltb25kb3VcIDsKK+iAg+WPpOWtpuiAhSA8IGtvdWtvZ2FrdXNoYVwgOwor6aOf5paZ5ZOBIDwgc2hva3VyeW91aGluXCA7Civph47nkIPpgbjmiYsgPCB5YWt5dXVzZW5zaHVcIDsKK+aTjei7iuS/giA8IHNvdXNoYWdha2FyaVwgOwor5aSi6YGK55eF6ICFIDwgbXV5dXVieW91c2hhXCA7CivopoHmiYDopoHmiYAgPCB5b3VzaG95b3VzaG9cIDsKK+a5v+mbu+axoCA8IHNoaXRzdWRlbmNoaVwgOwor6Kaz5o6M6KGTIDwga2Fuc2hvdWp1dHN1XCA7Civkvb/lvpLntpnmib8gPCBzaGl0b2tlaXNob3VcIDsKK+WKseejgembu+a1gSA8IHJlaWppZGVucnl1dVwgOwor5b+XIDwga29rb3JvemFzaGlcIDsKK+aUvyA8IG1hdHN1cmlnb3RvXCA7CivnpL7kvJrliLbluqYgPCBzaGFrYWlzZWlkb1wgOwor5Luj55CG6aCY5LqLIDwgZGFpcmlyeW91amlcIDsKK+eCueaVsOWIh+espiA8IHRlbnN1dWtpcHB1XCA7CivljJbmiJDogqXmlpkgPCBrYXNlaWhpcnlvdVwgOwor5pyq5oiQ5bm06ICFIDwgbWlzZWluZW5zaGFcIDsKK+ecn+mqqOmggiA8IHNoaW5rb3RjaG91XCA7Civlv4XopoHlk4EgPCBoaXRzdXlvdWhpblwgOwor55S75LiW55qEIDwga2FrdXNlaXRla2lcIDsKK+S4gOWkqeS4h+S5lyA8IGl0dGVuYmFuam91XCA7CivnhqjmlpfooosgPCBub3NoaWJ1a3Vyb1wgOwor5ris5Zyw5a2mIDwgc29rdWNoaWdha3VcIDsKK+imquWtkOmWouS/giA8IG95YWtva2Fua2VpXCA7Civpm4HmnKjpkaIgPCBnYW5naXlhc3VyaVwgOwor5YaN5Ymy5byVIDwgc2Fpd2FyaWJpa2lcIDsKK+aBkOaAluaUv+ayuyA8IGt5b3VmdXNlaWppXCA7CivlpYnnjK7lvI8gPCBob3VrZW5zaGlraVwgOwor6Jma5pWw5Y2Y5L2NIDwga3lvc3V1dGFuJydpXCA7CivpgbjmjJnliLbluqYgPCBzZW5reW9zZWlkb1wgOwor5Yid6KqV55SfIDwgaGF0c3V0YW5qb3VcIDsKK+S4ieacrOi2syA8IHNhbmJvbicnYXNoaVwgOwor5Yik5pat5YqbIDwgaGFuZGFucnlva3VcIDsKK+Wkp+mhmOaIkOWwsSA8IGRhaWdhbmpvdWp1XCA7CivljZToqr/mgKcgPCBreW91Y2hvdXNlaVwgOwor5YaG5Y2T5Lya6K2wIDwgZW50YWt1a2FpZ2lcIDsKK+WkqemBk+S5viA8IHRlbnRvdWJvc2hpXCA7CivlpKflrq7lvqHmiYAgPCBvb21peWFnb3Nob1wgOwor55m95pel5aSiIDwgaGFrdWppdHN1bXVcIDsKK+WIhuaekOihqCA8IGJ1bnNla2loeW91XCA7CivkuIrkuIvplqLkv4IgPCBqb3VnZWthbmtlaVwgOwor5om/6Ku+5pu4IDwgc2hvdWRha3VzaG9cIDsKK+Wwkemjn+WutiA8IHNob3VzaG9rdWthXCA7Civku67ln7fooYwgPCBrYXJpc2hpa2tvdVwgOwor5o+h5Yqb6KiIIDwgYWt1cnlva3VrZWlcIDsKK+WFrOWWtuS8gealrSA8IGtvdWVpa2lneW91XCA7Civph43mtrLliIbpm6IgPCBqdXVla2lidW5yaVwgOwor5LiN6Laz5YudIDwgZnVzb2t1Z2FjaGlcIDsKK+Wun+i3teeQhuaApyA8IGppc3NlbnJpc2VpXCA7CivluK/pi7ggPCBvYmlub2tvZ2lyaVwgOwor5b6M6YCy5Zu9IDwga291c2hpbmtva3VcIDsKK+ihjOS9j+WdkOiHpSA8IGd5b3VqdXV6YWdhXCA7CivoqIDooYzkuIDoh7QgPCBnZW5rb3VpdGNoaVwgOwor5rSX55y86JasIDwgc2VuZ2FuJyd5YWt1XCA7Civlvqnnv5LmlocgPCBmdWt1c2h1dWJ1blwgOwor5bqD5aSn54Sh6L66IDwga291ZGFpbXVoZW5cIDsKK+WEquWFiOS6i+mghSA8IHl1dXNlbmppa291XCA7CivmkLrluK/pm7voqbEgPCBrZWl0YWlkZW53YVwgOwor5q2i6KGA5bivIDwgc2hpa2V0c3V0YWlcIDsKK+S4i+Wuv+aWmSA8IGdlc2h1a3VyeW91XCA7CivmmYLku6PpjK/oqqQgPCBqaWRhaXNha3Vnb1wgOwor5Lq65bel6KGb5pifIDwgamlua291ZWlzZWlcIDsKK+mHjemHj+e0miA8IGp1dXJ5b3VreXV1XCA7Civnt5rlvaLpoIbluo8gPCBzZW5rZWlqdW5qb1wgOwor5Y+s5L2/IDwgbWVzaGl0c3VrYWlcIDsKK+WJjemAsui7uCA8IHplbnNoaW5qaWt1XCA7CivpiYTnn7Plv4MgPCB0ZXNzZWtpc2hpblwgOwor55SY6Iy26JSTIDwgYW1hY2hhZHp1cnVcIDsKK+WkluS6pOWumOijnCA8IGdhaWtvdWthbmhvXCA7CivnvbLlkI3lvI8gPCBzaG9tZWlzaGlraVwgOwor5Lq65b+D5ZywIDwgaGl0b2dva29jaGlcIDsKK+WbmuS6uuacjSA8IHNodXVqaW5mdWt1XCA7CivlvovlhIDogIUgPCByaWNoaWdpbW9ub1wgOwor5Yqb55+zIDwgY2hpa2FyYWlzaGlcIDsKK+S9j+WxheaJi+W9kyA8IGp1dWt5b3RlYXRlXCA7Civpm4HmnKjou4ogPCBnYW5naWd1cnVtYVwgOwor6YGT6Lev5qiZ56S6IDwgZG91cm9oeW91amlcIDsKK+eZvem8oCA8IHNoaXJvbmV6dW1pXCA7CivkuojlgpnlsIbmoKEgPCB5b2Jpc2hvdWtvdVwgOwor5oaC5qyd55eHIDwgeXV1dXRzdXNob3VcIDsKK+awkemWk+mjm+ihjCA8IG1pbmthbmhpa291XCA7Civlrp/pqJPlvI8gPCBqaWtrZW5zaGlraVwgOwor5rC45a2Q5L2c5qipIDwgZWlrb3Nha3VrZW5cIDsKK+ekvuS8mumBi+WLlSA8IHNoYWthaXVuZG91XCA7Civnp7vooYzoqIjnlLsgPCBpa291a2Vpa2FrdVwgOwor54uC5L+h6ICFIDwga3lvdXNoaW5zaGFcIDsKK+aOpei/kee1jOi3ryA8IHNla2tpbmtlaXJvXCA7CivkuJbnlYzntYzmuIggPCBzZWthaWtlaXphaVwgOwor5rWu5LiW6I2J5a2QIDwgdWtpeW96b3VzaGlcIDsKK+awkeaXj+eahCA8IG1pbnpva3V0ZWtpXCA7CivlrprmlbDmmK/mraMgPCB0ZWlzdXV6ZXNlaVwgOwor55m66KiA6ICFIDwgaGF0c3VnZW5zaGFcIDsKK+WKm+eYpCA8IGNoaWthcmFrb2J1XCA7CivljZjnuKbliJcgPCB0YW5qdXVyZXRzdVwgOwor5a6J5L+d5p2h57SEIDwgYW5wb2pvdXlha3VcIDsKK+iyqeWjsuWApOautSA8IGhhbmJhaW5lZGFuXCA7Civln7rlupXmp4vpgKAgPCBraXRlaWtvdXpvdVwgOwor5b+F6aCI5p2h5Lu2IDwgaGlzc3Vqb3VrZW5cIDsKK+S4ieS6uue1hCA8IHNhbicnbmluZ3VtaVwgOwor6buS5paR55eFIDwga29rdWhhbmJ5b3VcIDsKK+WMuuijgeWIpOaJgCA8IGt1c2FpYmFuc2hvXCA7CivkuojooYzmvJTnv5IgPCB5b2tvdWVuc2h1dVwgOwor6YG45oyZ6YGL5YuVIDwgc2Vua3lvdW5kb3VcIDsKK+Wbvemam+imj+aooSA8IGtva3VzYWlraWJvXCA7CivmgqrmgqrmiK8gPCB3YXJ1aXRhenVyYVwgOwor6YGL6Lui5YWN6KixIDwgdW50ZW5tZW5reW9cIDsKK+e3muW9ouirlueQhiA8IHNlbmtlaXJvbnJpXCA7Civlrp/nlKjlk4EgPCBqaXRzdXlvdWhpblwgOwor5aSn6IW/6aqoIDwgZGFpdGFpa290c3VcIDsKK+W5tOizgOmDteS+vyA8IG5lbmdheXV1YmluXCA7CivmuKnpoqjmmpbmiL8gPCBvbnB1dWRhbmJvdVwgOwor5YaF6YOo5qeL6YCgIDwgbmFpYnVrb3V6b3VcIDsKK+awtOicnOahgyA8IHN1aW1pdHN1dG91XCA7CivkuI3lrprlnovoqakgPCBmdXRlaWtlaXNoaVwgOwor5ryC5rWB6Ii5IDwgaHlvdXJ5dXVzZW5cIDsKK+m7hOmHkeW0h+aLnSA8IG91Z29uc3V1aGFpXCA7CivkuJboqbHlpbPmiL8gPCBzZXdhbnlvdWJvdVwgOwor54qs5YSS5a2m5rS+IDwga2VuanVnYWt1aGFcIDsKK+mguOWLleiEiCA8IGtlaWRvdW15YWt1XCA7CivkuIDlk4HmlpnnkIYgPCBpcHBpbnJ5b3VyaVwgOwor5Lqc56Gr6YW45aGpIDwgYXJ5dXVzYW4nJ2VuXCA7CivnlJ/lhbXms5UgPCBuYW1hYnlvdWhvdVwgOwor54OP57696ImyIDwga2FyYXN1YmFpcm9cIDsKK+W8n+W8n+WtkCA8IG90b3V0b2Rlc2hpXCA7CivliofmloflraYgPCBnZWtpYnVuZ2FrdVwgOwor5Yqg6Jas6aOvIDwga2F5YWt1bWVzaGlcIDsKK+WMl+WNiueQgyA8IGtpdGFoYW5reXV1XCA7Civpm4bkuK3nt5ogPCBzaHV1Y2h1dXNlblwgOwor5pyJ5aOw5a2Q6Z+zIDwgeXV1c2Vpc2hpaW5cIDsKK+W+l+alreWjqyA8IHRva3VneW91c2hpXCA7CivnmoblhbXliLbluqYgPCBrYWloZWlzZWlkb1wgOwor5YmN6YCy6KeSIDwgemVuc2hpbmtha3VcIDsKK+acque1jOmok+iAhSA8IG1pa2Vpa2Vuc2hhXCA7CivppIrmrpbmsaAgPCB5b3VzaG9rdWNoaVwgOwor5Zec6JmQ5oCnIDwgc2hpZ3lha3VzZWlcIDsKK+Wwiueah+eOi+aUmOWktyA8IHNvbicnbm91am91aVwgOwor5LiK5oSP5LiL6YGUIDwgam91aWthdGF0c3VcIDsKK+i7iumWk+i3nemboiA8IHNoYWthbmt5b3JpXCA7CivmsLfmsrPmmYLku6MgPCBoeW91Z2FqaWRhaVwgOwor5LiJ5Lq656ewIDwgc2FuJyduaW5zaG91XCA7Civmg4XloLHnkIboq5YgPCBqb3Vob3VyaXJvblwgOwor5b6h5aSa5b+Z5LitIDwgZ290YWJvdWNodXVcIDsKK+S4ree0muWTgSA8IGNodXVreXV1aGluXCA7CivmvILmtYHogIUgPCBoeW91cnl1dXNoYVwgOwor5oSb5p+T5piO546LIDwgYWl6ZW5teW91b3VcIDsKK+iqmOaDkeeJqSA8IHl1dXdha3Vtb25vXCA7CivpoK3ok4vpqqggPCB0b3VnYWlrb3RzdVwgOwor55m65piO5ZOBIDwgaGF0c3VtZWloaW5cIDsKK+W5s+mdouS6pOW3riA8IGhlaW1lbmtvdXNhXCA7CivlpLHmoLzogIUgPCBzaGlra2FrdXNoYVwgOwor5oiQ57i+6KGoIDwgc2Vpc2VraWh5b3VcIDsKK+e1jOmok+S4u+e+qSA8IGtlaWtlbnNodWdpXCA7CivlvIHorbflo6vkvJogPCBiZW5nb3NoaWthaVwgOwor5rOo5paH5YWIIDwgY2h1dW1vbnNha2lcIDsKK+e0lOaDheWPr+aGkCA8IGp1bmpvdWthcmVuXCA7CivovInosqjlkIPmsLQgPCBzYWlrYWtpc3N1aVwgOwor5pei5rG65ZuaIDwga2lrZXRzdXNodXVcIDsKK+WNiua/gemfs+espiA8IGhhbmRha3VvbmZ1XCA7Civplqjnp4DnlLvlrrYgPCBrZWlzaHV1Z2FrYVwgOwor5pGC5YuV6KuWIDwgc2V0c3Vkb3Vyb25cIDsKK+S8j+a1geawtCA8IGZ1a3VyeXV1c3VpXCA7Civni6zoo4HnmoQgPCBkb2t1c2FpdGVraVwgOwor6auY6Kq/5a2QIDwgdGFrYWNob3VzaGlcIDsKK+eri+iEmuWcsCA8IHJpa2t5YWt1Y2hpXCA7CivkuInljYropo/nrqEgPCBzYW5oYW5raWthblwgOwor5bCB5bu65pmC5LujIDwgaG91a2VuamlkYWlcIDsKK+i2iuWGrOizh+mHkSA8IGV0dG91c2hpa2luXCA7Civlho3mp4vnr4kgPCBzYWlrb3VjaGlrdVwgOwor5omA5biv6YGT5YW3IDwgc2hvdGFpZG91Z3VcIDsKK+WCsuWyuOeEoeekvCA8IGdvdWdhbmJ1cmVpXCA7CivnpL7kvJrkv53pmbogPCBzaGFrYWlob2tlblwgOwor5quT5aSq6byTIDwgeWFndXJhZGFpa29cIDsKK+atouihgOWJpCA8IHNoaWtldHN1emFpXCA7CivovIPlhKrkvY3oq5YgPCBrYWt1eXV1aXJvblwgOwor5LiW6KuW6Kq/5p+7IDwgeW9yb25jaG91c2FcIDsKK+WGrOacn+S8keaahyA8IHRvdWtpa3l1dWthXCA7CivkuKHmlrnlhbEgPCByeW91aG91dG9tb1wgOwor5LiK6YOo5qeL6YCgIDwgam91YnVrb3V6b3VcIDsKK+advuiRieadliA8IG1hdHN1YmFkenVlXCA7CivosaHlvaLmloflrZcgPCBzaG91a2VpbW9qaVwgOwor5Yqb5rC0IDwgY2hpa2FyYW1penVcIDsKK+ayluepjee1sSA8IGNodXVzZWtpdG91XCA7Civku5XkuovnrrEgPCBzaGlnb3RvYmFrb1wgOwor5rC36YaL6YW4IDwgaHlvdXNha3VzYW5cIDsKK+i+suacrOS4u+e+qSA8IG5vdWhvbnNodWdpXCA7Civmm7jnsY3llYYgPCBzaG9zZWtpc2hvdVwgOwor5LiA5YiH6KGG55SfIDwgaXNzYWlzaHVqb3VcIDsKK+aXp+aFi+S+neeEtiA8IGt5dXV0YWlpemVuXCA7CivmlbTnkIbnlarlj7cgPCBzZWlyaWJhbmdvdVwgOwor5Luu57a05pysIDwga2FyaXRvamlob25cIDsKK+eZuumbu+aJgCA8IGhhdHN1ZGVuc2hvXCA7CivlvZPluqfos4fnlKMgPCB0b3V6YXNoaXNhblwgOwor5a6Y6IO955qEIDwga2FuJydub3V0ZWtpXCA7Civmrovlk4HmlbTnkIYgPCB6YW5waW5zZWlyaVwgOwor5pyr5qKi55qEIDwgbWFzc2hvdXRla2lcIDsKK+S4remWk+WbvSA8IGNodXVrYW5rb2t1XCA7CivlroflrpnpgJ/luqYgPCB1Y2h1dXNva3Vkb1wgOwor5oCd57Si55qEIDwgc2hpc2FrdXRla2lcIDsKK+WNl+WPoyA8IG1pbmFtaWd1Y2hpXCA7CivliqDmsLTliIbop6MgPCBrYXN1aWJ1bmthaVwgOwor5Ye66Lqr5qChIDwgc2h1c3NoaW5rb3VcIDsKK+eBsOmdkuiJsiA8IGhhaXNlaXNob2t1XCA7CivoiKrmtbfooZMgPCBrb3VrYWlqdXRzdVwgOwor5bCP5p2x5LqsIDwgc2hvdXRvdWt5b3VcIDsKK+Wuo+S8neS+oeWApCA8IHNlbmRlbmthY2hpXCA7CivlubTlraPlpYnlhawgPCBuZW5raWJvdWtvdVwgOwor5Y2D5Lq65YqbIDwgc2VuJyduaW5yaWtpXCA7Civkurrlt6Xoip0gPCBqaW5rb3VzaGliYVwgOwor6Lu96YeP57SaIDwga2VpcnlvdWt5dXVcIDsKK+WKm+alrSA8IGNoaWthcmF3YXphXCA7CivosqjluaPntYzmuIggPCBrYWhlaWtlaXphaVwgOwor54Sh5pyf5oey5b25IDwgbXVraWNob3Vla2lcIDsKK+aLmOadn+WcpyA8IGtvdXNva3VhdHN1XCA7CivmiKbpl5jlipsgPCBzZW50b3VyeW9rdVwgOwor5biC5aC05Yy65YiGIDwgc2hpam91a3VidW5cIDsKK+eQg+mdoumPoSA8IGt5dXVtZW5reW91XCA7CivliJ3mnJ/oqK3lrpogPCBzaG9raXNldHRlaVwgOwor5Lq66YCg57mK57atIDwgamluem91c2VuJydpXCA7Civmma7pgJrpoJDph5EgPCBmdXRzdXV5b2tpblwgOwor5L2O5Yip6LOH6YeRIDwgdGVpcmlzaGlraW5cIDsKK+S6uuW9ouWKhyA8IG5pbmd5b3VnZWtpXCA7CivnhKHpqqjogIUgPCBidWtvdHN1bW9ub1wgOwor55yf54+g57Sw5belIDwgc2hpbmp1emFpa3VcIDsKK+S4u+efpeS4u+e+qSA8IHNodWNoaXNodWdpXCA7CivpgIbnnasgPCBzYWthbWF0c3VnZVwgOwor55S65aWJ6KGMIDwgbWFjaGlidWd5b3VcIDsKK+epuuiovOaWhyA8IGthcmFzaG91bW9uXCA7CivkuozpoIXkv4LmlbAgPCBuaWtvdWtlaXN1dVwgOwor57Sg5oCn5qeL6YCgIDwgc29zZWlrb3V6b3VcIDsKK+aEm+WbveS4u+e+qSA8IGFpa29rdXNodWdpXCA7CivmiKbpl5jmlK/mj7QgPCBzZW50b3VzaGllblwgOwor5Lq65ZCN6L6e5pu4IDwgamlubWVpamlzaG9cIDsKK+WJjei8qumnhuWLlSA8IHplbnJpbmt1ZG91XCA7CivkvqHmoLzmk43kvZwgPCBrYWtha3Vzb3VzYVwgOwor5pS+54mp57eaIDwgaG91YnV0c3VzZW5cIDsKK+W9ouiAjOS4i+WtpiA8IGtlaWppa2FnYWt1XCA7CivkuIDmnJ/kuIDkvJogPCBpY2hpZ29pY2hpZVwgOwor6Kq/5a2Q6ICFIDwgY2hvdXNoaW1vbm9cIDsKK+ePvuWun+aEnyA8IGdlbmppdHN1a2FuXCA7CivpsLnnr4AgPCBrYXRzdW9idXNoaVwgOwor56mN5YiG5a2mIDwgc2VraWJ1bmdha3VcIDsKK+Wcn+acqOW3peS6iyA8IGRvYm9rdWtvdWppXCA7CivlpbPlrZDpq5jnlJ8gPCBqb3NoaWtvdXNlaVwgOwor54++5a6f5oCnIDwgZ2Vuaml0c3VzZWlcIDsKK+mrmOmbu+WcpyA8IGtvdWRlbicnYXRzdVwgOwor5a2m5ZWP55qEIDwgZ2FrdW1vbnRla2lcIDsKK+eOi+mBk+alveWcnyA8IG91ZG91cmFrdWRvXCA7CivmgqrmiKboi6bpl5ggPCBha3VzZW5rdXRvdVwgOwor56We57WM5aSW56eRIDwgc2hpbmtlaWdla2FcIDsKK+WtpueptueahCA8IGdha2t5dXV0ZWtpXCA7CivpnZ7plovnpLrlkIjmhI8gPCBoaWthaWppZ291aVwgOwor5Y+O56mr56WtIDwgc2h1dWtha3VzYWlcIDsKK+eJqeeQhuWtpiA8IGJ1dHN1cmlnYWt1XCA7CivkuI3nnKDkuI3kvJEgPCBmdW1pbmZ1a3l1dVwgOwor5Z6C55u057eaIDwgc3VpY2hva3VzZW5cIDsKK+WQjeiqieaVmeaOiCA8IG1laXlva3lvdWp1XCA7Civlm7Pmm7jppKjlk6EgPCB0b3Nob2thbicnaW5cIDsKK+attOWPsuWtpiA8IHJla2lzaGlnYWt1XCA7CivmvaTmu5HliaQgPCBqdW5rYXRzdXphaVwgOwor57WE57mU5a2mIDwgc29zaGlraWdha3VcIDsKK+mrmOatjOaUvuWQnyA8IGtvdWthaG91Z2luXCA7Civnmbrpm7vlrZAgPCBoYXRzdWRlbnNoaVwgOwor5LiJ5bCK5LuPIDwgc2Fuem9uYnV0c3VcIDsKK+W8leWPluS6uiA8IGhpa2l0b3JpbmluXCA7Civmp4vmiJDljZjkvY0gPCBrb3VzZWl0YW4nJ2lcIDsKK+WkluS6uuiomOiAhSA8IGdhaWppbmtpc2hhXCA7CivmvILms4rogIUgPCBoeW91aGFrdXNoYVwgOwor5L6L5aSW5Yem55CGIDwgcmVpZ2Fpc2hvcmlcIDsKK+Wkq+WppuiMtueilyA8IG1lb3RvZGphd2FuXCA7CivnnJ/nlLDomasgPCBzYW5hZGFtdXNoaVwgOwor6ZeH5ZWG5Lq6IDwgeWFtaXNob3VuaW5cIDsKK+WFpea8geaWmSA8IG55dXVneW9yeW91XCA7CivlhajpnaLorJvlkowgPCB6ZW5tZW5rb3V3YVwgOwor5LiD5a6d54S8IDwgc2hpcHBvdXlha2lcIDsKK+mLvOmJhOadvyA8IGtvdXRldHN1YmFuXCA7CivlhKroia/moKogPCB5dXVyeW91a2FidVwgOwor5pys5qC855qEIDwgaG9ua2FrdXRla2lcIDsKK+W+qeiukOaIpiA8IGZ1a3VzaHV1c2VuXCA7CivmmrTlipvlm6MgPCBib3VyeW9rdWRhblwgOwor5Yid6Ki65paZIDwgc2hvc2hpbnJ5b3VcIDsKK+e+qeWLmeaVmeiCsiA8IGdpbXVreW91aWt1XCA7Civlj6PpgZTogIUgPCBrdWNoaWRhc3NoYVwgOwor6ICQ54ax5oCnIDwgdGFpbmV0c3VzZWlcIDsKK+Wil+ihgOWJpCA8IHpvdWtldHN1emFpXCA7CivmgrLoprPoq5bogIUgPCBoaWthbnJvbnNoYVwgOwor5YCL5Lq65oOF5aCxIDwga29qaW5qb3Vob3VcIDsKK+WMl+WMl+adsSA8IGhva3Vob2t1dG91XCA7CivnmbroqIDmqKkgPCBoYXRzdWdlbmtlblwgOwor55S65q6155Wd5q2pIDwgY2hvdXRhbnNlYnVcIDsKK+aApeaIkOmVtyA8IGt5dXVzZWljaG91XCA7Civku6PnkIblpKfkvb8gPCBkYWlyaXRhaXNoaVwgOwor5qeL6YCg5Li7576pIDwga291em91c2h1Z2lcIDsKK+WHuuizh+mhjSA8IHNodXNzaGlnYWt1XCA7CivlhoXliIbms4wgPCBuYWlidW5waXRzdVwgOwor5YWc6JmrIDwga2FidXRvbXVzaGlcIDsKK+WGhee3mumbu+ipsSA8IG5haXNlbmRlbndhXCA7CivlhaznpLrkvqHmoLwgPCBrb3VqaWtha2FrdVwgOwor5ray5L2T6YW457SgIDwgZWtpdGFpc2Fuc29cIDsKK+Wbm+aXrOevgCA8IHNoaWp1bnNldHN1XCA7CivmsoPluqbkuIHlub4gPCB5b3Vkb2NoaW5raVwgOwor5Lmd5a6Y6bOlIDwga3l1dWthbmNob3VcIDsKK+WIkeS6i+iotOionyA8IGtlaWppc29zaG91XCA7CivogIHkurrlipsgPCByb3VqaW5yeW9rdVwgOwor56i85YON5Lq65Y+jIDwga2Fkb3VqaW5rb3VcIDsKK+i7veapn+mWoumKgyA8IGtlaWtpa2FuanV1XCA7CivmqZ/lr4bkv53orbcgPCBraW1pdHN1aG9nb1wgOwor5bu656+J5aOrIDwga2VuY2hpa3VzaGlcIDsKK+WkqualteaLsyA8IHRhaWt5b2t1a2VuXCA7CivnlJ/nlarntYQgPCBuYW1hYmFuZ3VtaVwgOwor6aSK5q6W5aC0IDwgeW91c2hva3Vqb3VcIDsKK+S6iOWCmeS6pOa4iSA8IHlvYmlrb3VzaG91XCA7CivomZrohLHmhJ8gPCBreW9kYXRzdWthblwgOwor6LGh54mZ6LOqIDwgem91Z2VzaGl0c3VcIDsKK+mahum8u+ihkyA8IHJ5dXViaWp1dHN1XCA7CivooajpnaLnqY0gPCBoeW91bWVuc2VraVwgOwor6YCP6KaW5Zuz5rOVIDwgdG91c2hpenVob3VcIDsKK+e3tOe/kuippuWQiCA8IHJlbnNodXVqaWFpXCA7Civliqrlipvos54gPCBkb3J5b2t1c2hvdVwgOwor5Y2B5Lq65LimIDwganV1bmluJyduYW1pXCA7CivolqzpkbXpoK0gPCB5YWthbicnYXRhbWFcIDsKK+WPr+imluWFiee3miA8IGthc2hpa291c2VuXCA7CivnrYboqJjoqabpqJMgPCBoaWtraXNoaWtlblwgOwor5YWs5a6a55u45aC0IDwga291dGVpc291YmFcIDsKK+S+oeagvOimj+WItiA8IGtha2FrdWtpc2VpXCA7CivliqDph43lubPlnYcgPCBrYWp1dWhlaWtpblwgOwor5q2m6KOF6K2m5a6YIDwgYnVzb3VrZWlrYW5cIDsKK+WVhuWjsuetiyA8IHNob3ViYWlzdWppXCA7CivmsLTlrZDkvpvppIogPCBtaXp1Z29rdXlvdVwgOwor5riv5rm+5bGAIDwga291d2Fua3lva3VcIDsKK+WNg+WkieS4h+WMliA8IHNlbnBlbmJhbmthXCA7CivmsLTllYblo7IgPCBtaXp1c2hvdWJhaVwgOwor6YmE6YGT5L6/IDwgdGV0c3Vkb3ViaW5cIDsKK+afu+WumuS+oeagvCA8IHNhdGVpa2FrYWt1XCA7CivmsJHml4/lraYgPCBtaW56b2t1Z2FrdVwgOwor5q205Y+y5YqHIDwgcmVraXNoaWdla2lcIDsKK+a6neW9oumLvCA8IG1pem9nYXRha291XCA7CivmmI7mmbDlpKIgPCBtZWlzZWtpeXVtZVwgOwor5b2i5L2TIDwgbmFyaWthdGFjaGlcIDsKK+S4i+WxpOekvuS8miA8IGthc291c2hha2FpXCA7Civmlq3ntprnmoQgPCBkYW56b2t1dGVraVwgOwor5byP6YOo55yBIDwgc2hpa2lidXNob3VcIDsKK+altemBk+iAhSA8IGdva3Vkb3Vtb25vXCA7CivplovmoKHlvI8gPCBrYWlrb3VzaGlraVwgOwor5rCR57SE6KuWIDwgbWluJyd5YWt1cm9uXCA7CivpmLLlvqHnjocgPCBib3VneW9yaXRzdVwgOwor6KGo6Z2i55qEIDwgaHlvdW1lbnRla2lcIDsKK+ioiOaZguS/giA8IGtlaWppZ2FrYXJpXCA7Civlvoznmbrlk4EgPCBrb3VoYXRzdWhpblwgOwor6Ieq54S25Li7576pIDwgc2hpemVuc2h1Z2lcIDsKK+iWqeaRqeeEvCA8IHNhdHN1bWF5YWtpXCA7Civluormn7EgPCB0b2tvYmFzaGlyYVwgOwor6IiI5ZGz5pys5L2NIDwga3lvdW1paG9uJydpXCA7Civlh7rouqvlnLAgPCBzaHVzc2hpbmNoaVwgOwor54Sh5L2T6LOH55SjIDwgbXV0YWlzaGlzYW5cIDsKK+itt+i6q+ihkyA8IGdvc2hpbmp1dHN1XCA7CivntYzmuIjlsIHpjpYgPCBrZWl6YWlmdXVzYVwgOwor56u25LqJ55u45omLIDwga3lvdXNvdWFpdGVcIDsKK+WHuuayoSA8IHNodXRzdWJvdHN1XCA7CivkuI7lpKroqbEgPCB5b3RhYmFuYXNoaVwgOwor5bem56uvIDwgaGlkYXJpaGFzaGlcIDsKK+WGjeWFpeWtpiA8IHNhaW55dXVnYWt1XCA7CivkupTovKrlpKfkvJogPCBnb3JpbnRhaWthaVwgOwor5Y2U57SE5pu4IDwga3lvdXlha3VzaG9cIDsKK+aXpeacrOS4ieaZryA8IG5paG9uc2Fua2VpXCA7CivkuInnvr3ng48gPCBzYW5iYWdhcmFzdVwgOwor6Kiq5ZWP5a6iIDwgaG91bW9ua3lha3VcIDsKK+ayueaAp+Whl+aWmSA8IHl1c2VpdG9yeW91XCA7CivmsrvpqJPolqwgPCBjaGlrZW4nJ3lha3VcIDsKK+aAp+WWhOiqrCA8IHNlaXplbnNldHN1XCA7Civku5Xkuovmn4QgPCBzaGlnb3RvZ2FyYVwgOwor5aSn5qC56LazIDwgZGFpa29uJydhc2hpXCA7CivmlLnoqILlopfoo5wgPCBrYWl0ZWl6b3Vob1wgOwor5LiA6Iis5qaC5b+1IDwgaXBwYW5nYWluZW5cIDsKK+WFieeArOm+jSA8IG1pdHN1c2VyeXV1XCA7Civni7zol4nogIUgPCByb3V6ZWtpbW9ub1wgOwor5b+D5ouN5pWwIDwgc2hpbnBha3VzdXVcIDsKK+Wwj+S4gOaZgumWkyA8IGtvaWNoaWppa2FuXCA7CivkuInohJrmpIXlrZAgPCBzYW5reWFrdWlzdVwgOwor5YuV54mp6KqMIDwgZG91YnV0c3VzaGlcIDsKK+i/lOWNtOWApCA8IGhlbmt5YWt1Y2hpXCA7Civnmq7ohprmhJ/oppogPCBoaWZ1a2Fua2FrdVwgOwor54Sh6aeE6KmxIDwgbXVkYWJhbmFzaGlcIDsKK+WIhuWtkOW8jyA8IGJ1bnNoaXNoaWtpXCA7CivpmY3ou4rlj6MgPCBrb3VzaGFndWNoaVwgOwor5qSc5Ye65ZmoIDwga2Vuc2h1dHN1a2lcIDsKK+aoqeWIqeihjOS9vyA8IGtlbnJpa291c2hpXCA7CivokL3okYnmnb4gPCByYWt1eW91c2hvdVwgOwor5qW15YmN57eaIDwga3lva3V6ZW5zZW5cIDsKK+i2hei2iueCuSA8IGNob3VldHN1dGVuXCA7Civpu5LnjKnjgIUgPCBrdXJvc2hvdWpvdVwgOwor5ryi5a2X5aSJ5o+bIDwga2FuamloZW5rYW5cIDsKK+WbveaFtuevgCA8IGtva2tlaXNldHN1XCA7CivnhKHkvZPosqHnlKMgPCBtdXRhaXphaXNhblwgOwor5be055OmIDwgdG9tb2VnYXdhcmFcIDsKK+WkqeeUo+eJqSA8IHRlbnNhbmJ1dHN1XCA7CivntLPlo6vpjLIgPCBzaGluc2hpcm9rdVwgOwor5YaN5YWl5Zu9IDwgc2Fpbnl1dWtva3VcIDsKK+WFqOS9k+S8muitsCA8IHplbnRhaWthaWdpXCA7Civkuozph43mirXlvZMgPCBuaWp1dXRlaXRvdVwgOwor5YiH5pelIDwgc2hpbWVraXJpYmlcIDsKK+apn+aisOaWh+aYjiA8IGtpa2FpYnVubWVpXCA7CivnsKHmvZTmgKcgPCBrYW5rZXRzdXNlaVwgOwor5aSp5rSl5LmZ5aWzIDwgYW1hdHN1b3RvbWVcIDsKK+WIh+aWremdoiA8IHNldHN1ZGFubWVuXCA7CivlvJXovrznt5ogPCBoaWtpa29taXNlblwgOwor5Yip5a6z6Zai5L+CIDwgcmlnYWlrYW5rZWlcIDsKK+Wkmuinkue1jOWWtiA8IHRha2FrdWtlaWVpXCA7CivlpKvlqabliKXlp5MgPCBmdXVmdWJlc3NlaVwgOwor57KX5b+96ICFIDwgc29rb3RzdW1vbm9cIDsKK+mWi+S8muW8jyA8IGthaWthaXNoaWtpXCA7Civml6XmnKzoqp7oqLMgPCBuaWhvbmdveWFrdVwgOwor5Lqk5o+b5qmf6IO9IDwga291a2Fua2lub3VcIDsKK+eUo+WNteWgtOaJgCA8IHNhbnJhbmJhc2hvXCA7CivmhJ/lgrfnmoQgPCBrYW5zaG91dGVraVwgOwor5biC5pyJ54mpIDwgc2hpeXV1YnV0c3VcIDsKK+i1sOihjOi3nemboiA8IHNvdWtvdWt5b3JpXCA7CivnhKHlsL3ntYTlkIggPCBtdWppbmt1bWlhaVwgOwor5YaN55Sf5Yip55SoIDwgc2Fpc2Vpcml5b3VcIDsKK+iBluiBt+iAhSA8IHNlaXNob2t1c2hhXCA7CivoiKrnqbrmr43oiaYgPCBrb3VrdXVib2thblwgOwor5Lit6KGj5ZqiIDwgbmFrYWdha3VzaGlcIDsKK+eLrOeri+iqniA8IGRva3VyaXRzdWdvXCA7CivkurrlkI3ovp7lhbggPCBqaW5tZWlqaXRlblwgOwor5pio6Z2e5LuK5pivIDwgc2FrdWhpa29uemVcIDsKK+iCsuWFkOWupCA8IGlrdWppc2hpdHN1XCA7CivmlrDlj6TlhbjmtL4gPCBzaGlua290ZW5oYVwgOwor57mB5q6W5ZywIDwgaGFuc2hva3VjaGlcIDsKK+S4gOS6uuensCA8IGljaGluaW5zaG91XCA7CivplbfltI7nnIwgPCBuYWdhc2FraWtlblwgOwor57WM5Za26LOH5rqQIDwga2VpZWlzaGlnZW5cIDsKK+W5vOW/gyA8IG9zYW5hZ29rb3JvXCA7CivooqvlrrPlpoTmg7MgPCBoaWdhaW1vdXNvdVwgOwor6Zu75Yqb6KiIIDwgZGVucnlva3VrZWlcIDsKK+ijveawt+eavyA8IHNlaWh5b3V6YXJhXCA7CivntLDoj4zlhbXlmaggPCBzYWlraW5oZWlraVwgOwor6aO95ZKM5rq25rayIDwgaG91d2F5b3Vla2lcIDsKK+S4gOiIrOS8muioiCA8IGlwcGFua2Fpa2VpXCA7Civmupblgpnos4fph5EgPCBqdW5iaXNoaWtpblwgOwor5Li756iO5bGAIDwgc2h1emVpa3lva3VcIDsKK+aUv+WFmuaUv+ayuyA8IHNlaXRvdXNlaWppXCA7Civmr43lrZDlubTph5EgPCBib3NoaW5lbmtpblwgOwor5o6l57aa6KqeIDwgc2V0c3V6b2t1Z29cIDsKK+eJuembhuWPtyA8IHRva3VzaHV1Z291XCA7Civpu5LopJDoibIgPCBrb2trYXNzaG9rdVwgOwor576O5a655pW05b2iIDwgYml5b3VzZWlrZWlcIDsKK+S4reWbveS6uiA8IGNodXVnb2t1amluXCA7CivoirHnrbUgPCBoYW5hbXVzaGlyb1wgOwor5Yid5pyf5oqV6LOHIDwgc2hva2l0b3VzaGlcIDsKK+acgOefrei3nemboiA8IHNhaXRhbmt5b3JpXCA7CivlkajovrrmqZ/lmaggPCBzaHV1aGVua2lraVwgOwor5Yi26ZmQ5pmC6ZaTIDwgc2VpZ2VuamlrYW5cIDsKK+WLpOWKtOaEj+assiA8IGtpbnJvdWl5b2t1XCA7CivlvpPlsZ7lm70gPCBqdXV6b2t1a29rdVwgOwor5Y+j6L+U562UIDwga3VjaGloZW50b3VcIDsKK+WAieW6q+S8muekviA8IHNvdWtvZ2Fpc2hhXCA7CivnlLfpsKUgPCBvdG9rb3lhbW9tZVwgOwor5pyq6ZaL56S+5LyaIDwgbWlrYWlzaGFrYWlcIDsKK+a4m+ihsOeOhyA8IGdlbnN1aXJpdHN1XCA7CivlsI7pm7vnjocgPCBkb3VkZW5yaXRzdVwgOwor5LiA5LqG57ChIDwgaWNoaXJ5b3VrYW5cIDsKK+mBjuWkp+ipleS+oSA8IGthZGFpaHlvdWthXCA7CivoirHnpa0gPCBoYW5hbWF0c3VyaVwgOwor5YaN6Ly45Ye6IDwgc2FpeXVzaHV0c3VcIDsKK+mdkumKheiJsiA8IHNlaWRvdXNob2t1XCA7CivnoLTlu4nmgaXnvaogPCBoYXJlbmNoaXphaVwgOwor6ZqK5ZWG5a6/IDwgdGFpc2hvdXlhZG9cIDsKK+aZgumZkOijhee9riA8IGppZ2Vuc291Y2hpXCA7Civmma/msJflpInli5UgPCBrZWlraWhlbmRvdVwgOwor5byP5qyh56ysIDwgc2hpa2lzaGlkYWlcIDsKK+S4gOasoeiomOaGtiA8IGljaGlqaWtpb2t1XCA7CivnlJ/nlKPniakgPCBzZWlzYW5idXRzdVwgOwor6KGd5YuV6KGM54K6IDwgc2hvdWRvdWtvdWlcIDsKK+ioseWuueevhOWbsiA8IGt5b3lvdWhhbicnaVwgOwor5bm76Kaa55eHIDwgZ2Vua2FrdXNob3VcIDsKK+eUn+eUo+euoeeQhiA8IHNlaXNhbmthbnJpXCA7CivmipXmiYvlipsgPCB0b3VzaHVyeW9rdVwgOwor6ZaJ5Lya5byPIDwgaGVpa2Fpc2hpa2lcIDsKK+ayluepjeWxpCA8IGNodXVzZWtpc291XCA7CivljLvnmYLkvJ3pgZMgPCBpcnlvdWRlbmRvdVwgOwor5YKs55yg6KGTIDwgc2FpbWluanV0c3VcIDsKK+idmeidoOWCmCA8IGtvdW1vcmlnYXNhXCA7CivnqoHosqvlt6XkuosgPCB0b2trYW5rb3VqaVwgOwor5ZCR5pel5oCnIDwga291bmljaGlzZWlcIDsKK+WIneWnvyA8IGhhdHN1c3VnYXRhXCA7CivlkLjlj5bntJkgPCBzdWl0b3JpZ2FtaVwgOwor6YG46ICD5Z+65rqWIDwgc2Vua291a2lqdW5cIDsKK+mrmOipsSA8IHRha2FiYW5hc2hpXCA7Civpq5jlnKfnmoQgPCBrb3VhdHN1dGVraVwgOwor5pyJ5Yqb6ICFIDwgeXV1cnlva3VzaGFcIDsKK+WIpeWVj+mhjCA8IGJldHN1bW9uZGFpXCA7Civku6PmlbDlvI8gPCBkYWlzdXVzaGlraVwgOwor5YWl5riv5paZIDwgbnl1dWtvdXJ5b3VcIDsKK+iGnemgrSA8IGhpemFnYXNoaXJhXCA7CivnhKHlrr/ogIUgPCBtdXNodWt1bW9ub1wgOwor6YO95biC6YqA6KGMIDwgdG9zaGlnaW5rb3VcIDsKK+WOn+WtkOWKmyA8IGdlbnNoaXJ5b2t1XCA7CivmiJDmloflvosgPCBzZWlidW5yaXRzdVwgOwor55S35LiA5Yy5IDwgb3Rva29pcHBpa2lcIDsKK+Whnuagk+eXhyA8IHNva3VzZW5zaG91XCA7CivllYblo7Lmn4QgPCBzaG91YmFpZ2FyYVwgOwor6IW56Laz6aGeIDwgZnVrdXNva3VydWlcIDsKK+adseWNsOW6piA8IGhpZ2FzaGlpbmRvXCA7Civos4fmnKzlipsgPCBzaGlob25yeW9rdVwgOwor5be75p+xIDwgbWFraWJhc2hpcmFcIDsKK+elh+WckuelrSA8IGdpb25tYXRzdXJpXCA7CivkuIrkuqzkuK0gPCBqb3VreW91Y2h1dVwgOwor5YKs55yg6JasIDwgc2FpbWluJyd5YWt1XCA7CivlrqPkvJ3mmKDnlLsgPCBzZW5kZW4nJ2VpZ2FcIDsKK+aFiOWWhOS6i+alrSA8IGppemVuamlneW91XCA7Civnj77osaHlraYgPCBnZW5zaG91Z2FrdVwgOwor56eL5rSl5bO2IDwgYWtpdHN1c2hpbWFcIDsKK+e+iuWwj+WxiyA8IGhpdHN1amlnb3lhXCA7Civoo4Xpo77lk4EgPCBzb3VzaG9rdWhpblwgOwor5Y2D5pel5omLIDwgc2VuJyduaWNoaXRlXCA7CivliqDpgJ/luqboqIggPCBrYXNva3Vkb2tlaVwgOwor5YKy5oWi5LiN6YGcIDwgZ291bWFuZnVzb25cIDsKK+WIkeWLmeS9nOalrSA8IGtlaW11c2FneW91XCA7CivlnLDnkIPopo/mqKEgPCBjaGlreXV1a2lib1wgOwor5qSN5rCR5ZywIDwgc2hva3VtaW5jaGlcIDsKK+mAlOS4reioiOaZgiA8IHRvY2h1dWtlaWppXCA7CivlpJbliIbms4wgPCBnYWlidW5waXRzdVwgOwor6Zqj6L+R5omAIDwgdG9uYXJpa2luam9cIDsKK+WvvumgguinkiA8IHRhaWNob3VrYWt1XCA7Civpq5jlsITnibnnp5EgPCBrb3VzaGF0b2trYVwgOwor6IKp55Sy6aqoIDwga2Vua291a290c3VcIDsKK+S4iemdouWFreiHgiA8IHNhbm1lbnJvcHBpXCA7Civlvq7liIbmlq3pnaIgPCBiaWJ1bmRhbm1lblwgOwor5YiG5aip5L2c55SoIDwgYnVuYmVuc2F5b3VcIDsKK+iFsOW8geW9kyA8IGtvc2hpYmVudG91XCA7Civlj6Plt6fogIUgPCBrdWNoaWdvdXNoYVwgOwor5L+d5YGl5L2T6IKyIDwgaG9rZW50YWlpa3VcIDsKK+aatOi1sOmBi+i7oiA8IGJvdXNvdXVudGVuXCA7CivlupXlipsgPCBzb2tvZGppa2FyYVwgOwor5LiN5LiW5Ye6IDwgZnVzZWlzaHV0c3VcIDsKK+irruWVj+apn+mWoiA8IHNoaW1vbmtpa2FuXCA7CivlhYjml6Xku5ggPCBzYWtpaGlkenVrZVwgOwor6YCP6KaW5YqbIDwgdG91c2hpcnlva3VcIDsKK+WJteioreiAhSA8IHNvdXNldHN1c2hhXCA7CivnlLDoiI7oip3lsYUgPCBpbmFrYXNoaWJhaVwgOwor6YeR6a2a6YmiIDwga2luZ3lvYmFjaGlcIDsKK+eZjOmBuuS8neWtkCA8IGdhbicnaWRlbnNoaVwgOwor55m+6ay85aSc6KGMIDwgaHlha2tpeWFrb3VcIDsKK+eEoeatu+a6gOWhgSA8IG11c2hpbWFucnVpXCA7CivkuoznlarmirXlvZMgPCBuaWJhbnRlaXRvdVwgOwor6KGS5a2m55qEIDwgZ2VuZ2FrdXRla2lcIDsKK+e3j+WLmemDqOmVtyA8IHNvdW11YnVjaG91XCA7Civph5Hnn7PlraYgPCBraW5zZWtpZ2FrdVwgOwor6YeO6I+c55WRIDwgeWFzYWliYXRha2VcIDsKK+iHqueUseiyv+aYkyA8IGppeXV1Ym91ZWtpXCA7CivlubPlkozmnaHpoIUgPCBoZWl3YWpvdWtvdVwgOwor55u05oSf55qEIDwgY2hva2thbnRla2lcIDsKK+WLleeJqeebuCA8IGRvdWJ1dHN1c291XCA7CivmsJfliIbou6Lmj5sgPCBraWJ1bnRlbmthblwgOwor6LOD5LuV5LqLIDwgY2hpbnNoaWdvdG9cIDsKK+eJueioseS4uyA8IHRva2t5b251c2hpXCA7CivlhJLmlZnkuLvnvqkgPCBqdWt5b3VzaHVnaVwgOwor5aWJ57SN54mpIDwgaG91bm91YnV0c3VcIDsKK+Wls+atjOiInuS8jiA8IG9uJyduYWthYnVraVwgOwor5L+d6YeI5LitIDwgaG9zaGFrdWNodXVcIDsKK+mjm+ihjOapn+mbsiA8IGhpa291a2lndW1vXCA7CivpnZLol43oibIgPCBzZWlyYW5zaG9rdVwgOwor6ISF6L+r6ICFIDwga3lvdWhha3VzaGFcIDsKK+WLleeJqeeVjCA8IGRvdWJ1dHN1a2FpXCA7Civot6/pnaLpm7vou4ogPCByb21lbmRlbnNoYVwgOwor6YCa6KGM5LiKIDwgdHN1dWtvdWRvbWVcIDsKK+W8t+WlquiAhSA8IGdvdWRhdHN1c2hhXCA7CivohIXov6vnvaogPCBreW91aGFrdXphaVwgOwor5Y2Y54us6KGM54K6IDwgdGFuZG9rdWtvdWlcIDsKK+Wbo+e1kOaoqSA8IGRhbmtldHN1a2VuXCA7CivoqqDlv4PoqqDmhI8gPCBzZWlzaGluc2VpaVwgOwor57SE5Y2K5bm0IDwgeWFrdWhhbicnbmVuXCA7Civml6XmnKzmlpnnkIYgPCBuaWhvbnJ5b3VyaVwgOwor5oqV56Wo566xIDwgdG91aHlvdWJha29cIDsKK+e0oOS6uuiKuCA8IHNoaXJvdXRvZ2VpXCA7CivnqY3mpbXmgKcgPCBzZWtreW9rdXNlaVwgOwor5qW15bqn5qiZIDwga3lva3V6YWh5b3VcIDsKK+Wvneato+aciCA8IG5lc2hvdWdhdHN1XCA7CivmtZrmuKvmqZ8gPCBzaHVuc2V0c3VraVwgOwor57+86Z2i56mNIDwgeW9rdW1lbnNla2lcIDsKK+eVs+ihqCA8IHRhdGFtaW9tb3RlXCA7Civnt4/nm67pjLIgPCBzb3Vtb2t1cm9rdVwgOwor5qC45Y+N5b+cIDwga2FrdWhhbicnbm91XCA7CivliLbphbjolqwgPCBzZWlzYW4nJ3lha3VcIDsKK+i2heS6uueahCA8IGNob3VqaW50ZWtpXCA7CivnrKzkuIDmtYEgPCBkYWlpY2hpcnl1dVwgOwor5pWF5LqL5p2l5q20IDwga29qaXJhaXJla2lcIDsKK+WGhei8quWWp+WYqSA8IHVjaGl3YWdlbmthXCA7CivotrPmi43lrZAgPCBhc2hpYnlvdXNoaVwgOwor5byx5p2Q5paZIDwgeW93YXphaXJ5b3VcIDsKK+aOpeinpue3miA8IHNlc3Nob2t1c2VuXCA7CivkupznoZ3phbjloakgPCBhc2hvdXNhbicnZW5cIDsKK+S4gOinkueNo+W6pyA8IGlra2FrdWp1dXphXCA7Civlh7rlipsgPCBzaHV0c3VyeW9rdVwgOwor5b255Yqb5aOrIDwgeWFrdXJpa2lzaGlcIDsKK+e1sei9hOiAhSA8IHRvdWthdHN1c2hhXCA7Civlj43kvZPliLbmtL4gPCBoYW50YWlzZWloYVwgOwor5Yy65YqD5pW055CGIDwga3VrYWt1c2VpcmlcIDsKK+S7leS6i+S4rSA8IHNoaWdvdG9jaHV1XCA7CivlnJ/nmb7lp5MgPCBkb2J5YWt1c2hvdVwgOwor5paH5a2m6LOeIDwgYnVuZ2FrdXNob3VcIDsKK+aLm+iri+WbvSA8IHNob3VzZWlrb2t1XCA7Civnt4/lj47lhaUgPCBzb3VzaHV1bnl1dVwgOwor5ris6YeP6Ii5IDwgc29rdXJ5b3VzZW5cIDsKK+aUvuS7u+S4u+e+qSA8IGhvdW5pbnNodWdpXCA7Civpgbrml4/ntabku5ggPCBpem9rdWt5dXVmdVwgOwor5aSJ5L2N5Yi25b6hIDwgaGVuJydpc2VpZ3lvXCA7CivlgJ/lnLDmqKkgPCBzaGFrdWNoaWtlblwgOwor5paH6YOo5aSn6IejIDwgbW9uYnVkYWlqaW5cIDsKK+Wls+aoqeirluiAhSA8IGpva2Vucm9uc2hhXCA7CivkuIvlo6vlrpjlhbUgPCBrYXNoaWthbmhlaVwgOwor5rKW56mN5LiWIDwgY2h1dXNla2lzZWlcIDsKK+S4reemheWvuua5liA8IGNodXV6ZW5qaWtvXCA7Civlj6Pov7Dmm7ggPCBrb3VqdXRzdXNob1wgOwor5q6J6IG36ICFIDwganVuc2hva3VzaGFcIDsKK+ijveWTgeWOn+S+oSA8IHNlaWhpbmdlbmthXCA7CivkurrmsJHkuLvnvqkgPCBqaW5taW5zaHVnaVwgOwor5YuJ5by36YOo5bGLIDwgYmVua3lvdWJleWFcIDsKK+eXheiZq+WusyA8IGJ5b3VjaHV1Z2FpXCA7CivnpZ7lrq7lpJboi5EgPCBqaW5ndXVnYWllblwgOwor5qGc6aSFIDwgc2FrdXJhbW9jaGlcIDsKK+ahnOmjryA8IHNha3VyYW1lc2hpXCA7CivmioDooZPnmoQgPCBnaWp1dHN1dGVraVwgOwor5bCP6Kqs5a62IDwgc2hvdXNldHN1a2FcIDsKK+eJuee0hOW6lyA8IHRva3V5YWt1dGVuXCA7CivkuqTpgJrph48gPCBrb3V0c3V1cnlvdVwgOwor5YWo6Iis5pSv5o+0IDwgemVucGFuc2hpZW5cIDsKK+WwkeWjruacieeCuiA8IHNob3Vzb3V5dXVpXCA7CivntYzlj6PmipXkuI4gPCBrZWlrb3V0b3V5b1wgOwor6YGT5qGI5YaFIDwgbWljaGlhbicnbmFpXCA7Civmj5vmsJfoo4Xnva4gPCBrYW5raXNvdWNoaVwgOwor5YWx5ZKM5Yi25bqmIDwga3lvdXdhc2VpZG9cIDsKK+mBk+aZruiriyA8IG1pY2hpYnVzaGluXCA7Civlpb3oibLogIUgPCBrb3VzaG9rdXNoYVwgOwor5LqM6Kqy5YuJ5by3IDwgbmlrYWJlbmt5b3VcIDsKK+a2iOiHreWJpCA8IHNob3VzaHV1emFpXCA7CivkuojpmLLmjqXnqK4gPCB5b2JvdXNlc3NodVwgOwor54us5ZaE55qEIDwgZG9rdXplbnRla2lcIDsKK+eVsOWbveaDhee3kiA8IGlrb2t1am91Y2hvXCA7Civop6Plg4/lipsgPCBrYWl6b3VyeW9rdVwgOwor6YGL6Lui5YGc5q2iIDwgdW50ZW50ZWlzaGlcIDsKK+aCquWPo+mbkeiogCA8IGFra291em91Z29uXCA7Civou43ms5XkvJrorbAgPCBndW5wb3VrYWlnaVwgOwor55u05Ye6IDwgY2hva3VzaHV0c3VcIDsKK+a1uOmAj+WcpyA8IHNoaW50b3VhdHN1XCA7CivnhrHooYDmvKIgPCBuZWtrZXRzdWthblwgOwor5aSp5Zyw54Sh55SoIDwgdGVuY2hpbXV5b3VcIDsKK+eVs+iBtyA8IHRhdGFtaXNob2t1XCA7CivnlbDluLjmgKfmrLIgPCBpam91c2VpeW9rdVwgOwor5bKp55+z5a2mIDwgZ2Fuc2VraWdha3VcIDsKK+icnOafkeeVkSA8IG1pa2FuYmF0YWtlXCA7Civng4/lpKnni5cgPCBrYXJhc3V0ZW5ndVwgOwor57Sz5aOr55qEIDwgc2hpbnNoaXRla2lcIDsKK+S6uuW3peWPl+iDjiA8IGppbmtvdWp1dGFpXCA7Civml6XmnKzmlofms5UgPCBuaWhvbmJ1bnBvdVwgOwor56qS5oGv5q27IDwgY2hpc3Nva3VzaGlcIDsKK+S4iuS4i+awtOmBkyA8IGpvdWdlc3VpZG91XCA7CivkuInlpKfnr4AgPCBzYW5kYWlzZXRzdVwgOwor5rS75pat5bGkIDwga2F0c3VkYW5zb3VcIDsKK+mKgOihjOWPo+W6pyA8IGdpbmtvdWtvdXphXCA7Civnm67pvLvnq4sgPCBtZWhhbmFkYWNoaVwgOwor5ZGo5pyf5b6LIDwgc2h1dWtpcml0c3VcIDsKK+iNieWGoCA8IGt1c2FrYW5tdXJpXCA7CivpgIDntIXoibIgPCB0YWlrb3VzaG9rdVwgOwor5aSP5pyf5aSn5a2mIDwga2FraWRhaWdha3VcIDsKK+mAo+mCpuitsOS8miA8IHJlbnBvdWdpa2FpXCA7Civmkq7lg4/nrqEgPCBzYXRzdXpvdWthblwgOwor6IW55YWr5YiGIDwgaGFyYWhhY2hpYnVcIDsKK+acq+acn+eXh+eKtiA8IG1ha2tpam91dGFpXCA7CivkupTmrrXli5XoqZ4gPCBnb2RhbmRvdXNoaVwgOwor56uL5rOV5qmf6ZaiIDwgcmlwcG91a2lrYW5cIDsKK+WboOW+quWnkeaBryA8IGluanVua29zb2t1XCA7CivpgLLlhaXot68gPCBzaGluJydueXV1cm9cIDsKK+Wkp+WxseakkumtmiA8IG9vc2Fuc2hvdXVvXCA7CivomY7oppbnnIjnnIggPCBrb3NoaXRhbnRhblwgOwor6IOM5pel5oCnIDwgaGFpaml0c3VzZWlcIDsKK+iDjOmdoumjm+ihjCA8IGhhaW1lbmhpa291XCA7CivlvL7kuLjpgZPot68gPCBkYW5nYW5kb3Vyb1wgOwor6ZaT5aWP5puyIDwga2Fuc291a3lva3VcIDsKK+WEquWFiOWkluiyqCA8IHl1dXNlbmdhaWthXCA7CivlvZPnlKjmvKLlrZcgPCB0b3V5b3VrYW5qaVwgOwor5oyH5Y2X5b25IDwgc2hpbmFuJyd5YWt1XCA7CivohIXov6vnirYgPCBreW91aGFrdWpvdVwgOwor5rCR5pys5Li7576pIDwgbWlucG9uc2h1Z2lcIDsKK+WKn+WQjeW/gyA8IGtvdW15b3VzaGluXCA7Civlm57mlZnlm70gPCBrYWlreW91a29rdVwgOwor6aqo6Iac54KOIDwga290c3VtYWt1ZW5cIDsKK+S6uuW3peWPl+e0myA8IGppbmtvdWp1ZnVuXCA7CivkuLvopoHniankvqEgPCBzaHV5b3VidWtrYVwgOwor5rKi5bq15rysIDwgdGFrdWFuZHp1a2VcIDsKK+agueWIh+iZqyA8IG5la2lyaW11c2hpXCA7Civkurrlt6Xlj5fnsr4gPCBqaW5rb3VqdXNlaVwgOwor6YCB5paZ5YWxIDwgc291cnlvdXRvbW9cIDsKK+W8teacrOS6uiA8IGNob3Vob24nJ25pblwgOwor55m75bGx6Zu76LuKIDwgdG96YW5kZW5zaGFcIDsKK+aaq+WumuaUv+W6nCA8IHphbnRlaXNlaWZ1XCA7CivkuZfou4rlj6MgPCBqb3VzaGFndWNoaVwgOwor5LmX5ZCI6aas6LuKIDwgbm9yaWFpYmFzaGFcIDsKK+S4gOaXpei3ryA8IGljaGluaWNoaWppXCA7CivlnLDos6rlm7MgPCBjaGlzaGl0c3V6dVwgOwor5pyf5oiQ5ZCM55ufIDwga2lzZWlkb3VtZWlcIDsKK+eri+aYjuaIpiA8IHJpdHN1bWVpc2VuXCA7Civmir3osaHoq5YgPCBjaHV1c2hvdXJvblwgOwor5pWj5YWJ5pif6ZuyIDwgc2Fua291c2VpdW5cIDsKK+S7leios+ihqCA8IHNoaXdha2VoeW91XCA7Civpo6LppJPnmYLms5UgPCBraWdhcnlvdWhvdVwgOwor5Zu956iO5bqBIDwga29rdXplaWNob3VcIDsKK+ezuOWBj+aZr+awlyA8IGl0b2hlbmtlaWtpXCA7CivniankvqHlpInli5UgPCBidWtrYWhlbmRvdVwgOwor5oCn5oKq6KqsIDwgc2VpYWt1c2V0c3VcIDsKK+i/kemDiumDveW4giA8IGtpbmtvdXRvc2hpXCA7Civmh5Dpg7fnl4UgPCBrYWlreW91YnlvdVwgOwor5YWs6ZaL5pyf6ZaTIDwga291a2Fpa2lrYW5cIDsKK+WJjeW+jOS4jeimmiA8IHplbmdvZnVrYWt1XCA7CivmupblgpnkvZPmk40gPCBqdW5iaXRhaXNvdVwgOwor5q+N57O75a625pePIDwgYm9rZWlrYXpva3VcIDsKK+atr+enkeWMu+ihkyA8IHNoaWthaWp1dHN1XCA7Civph5HnrqHmpb3lmaggPCBraW5rYW5nYWtraVwgOwor5YiH56OL55Ci56OoIDwgc2Vzc2F0YWt1bWFcIDsKK+S4gOaZguino+mbhyA8IGljaGlqaWthaWtvXCA7Civmn5HmqZjpoZ4gPCBrYW5raXRzdXJ1aVwgOwor6YGL6Lui6LOH6YeRIDwgdW50ZW5zaGlraW5cIDsKK+WhkeaAp+mZkOeVjCA8IHNvc2VpZ2Vua2FpXCA7Civph5HmqKnmlL/msrsgPCBraW5rZW5zZWlqaVwgOwor6Ziy5b6h6YOo6ZqKIDwgYm91Z3lvYnV0YWlcIDsKK+mdmeatouihm+aYnyA8IHNlaXNoaWVpc2VpXCA7CivkuIDpn7Pnr4AgPCBpY2hpb25zZXRzdVwgOwor5YaN5bqm5Y2U6K2wIDwgc2FpZG9reW91Z2lcIDsKK+iEseeCremFuCA8IGRhdHN1dGFuc2FuXCA7CivmlrDmioDooZMgPCBzaGluZ2lqdXRzdVwgOwor6YCG5o6i55+lIDwgZ3lha3V0YW5jaGlcIDsKK+S4gOWIh+WQiOiyoSA8IGlzc2FpZ2Fzc2FpXCA7CivpgbrnlKPnm7jntpogPCBpc2Fuc291em9rdVwgOwor5ou+5b6X6ICFIDwgc2h1dXRva3VzaGFcIDsKK+WuneeJqeauvyA8IGhvdW1vdHN1ZGVuXCA7CivllqvnhZnluK0gPCBraXRzdWVuc2VraVwgOwor5Ya36KGA5ryiIDwgcmVpa2V0c3VrYW5cIDsKK+WhkeaAp+WkieW9oiA8IHNvc2VpaGVua2VpXCA7Civopovmp5jopovnnJ/kvLwgPCBtaXlvdW1pbWFuZVwgOwor5Li75Yqb6ImmIDwgc2h1cnlva3VrYW5cIDsKK+S4gOWkqeWbm+a1tyA8IGl0dGVuc2hpa2FpXCA7Civou4rlpKflt6UgPCBrdXJ1bWFkYWlrdVwgOwor6YGO6aOf55eHIDwga2FzaG9rdXNob3VcIDsKK+mfs+mfv+WKueaenCA8IG9ua3lvdWtvdWthXCA7Civlrr/lkb3oq5YgPCBzaHVrdW1laXJvblwgOwor5YWl6YeR56WoIDwgbnl1dWtpbmh5b3VcIDsKK+WNmOacrOS9jeaApyA8IHRhbmhvbicnaXNlaVwgOwor6Zuy5pWj6Zyn5raIIDwgdW5zYW5tdXNob3VcIDsKK+WFqOS9k+S4u+e+qSA8IHplbnRhaXNodWdpXCA7CivoirHlsYvmlbcgPCBoYW5heWFzaGlraVwgOwor5YWx55m96auqIDwgdG9tb3NoaXJhZ2FcIDsKK+WBnOatouaZgumWkyA8IHRlaXNoaWppa2FuXCA7CivkvY7nqbrpo5vooYwgPCB0ZWlrdXVoaWtvdVwgOwor5Y+j5bqn5L+CIDwga291emFrYWthcmlcIDsKK+eTouiZqyA8IHRlbnRvdW11c2hpXCA7CivnlJ/lrZjnjocgPCBzZWl6b25yaXRzdVwgOwor5pSv5bqm6YOo5bGLIDwgc2hpdGFrdWJleWFcIDsKK+eGiuacrOecjCA8IGt1bWFtb3Rva2VuXCA7Civnm7Tpiq3lvaIgPCBjaG9rdXNlbmtlaVwgOwor5YuV54mp5oCnIDwgZG91YnV0c3VzZWlcIDsKK+WOn+eIhueXhyA8IGdlbmJha3VzaG91XCA7CivliqDlt6Xosr/mmJMgPCBrYWtvdWJvdWVraVwgOwor6KGb5pif5pS+6YCBIDwgZWlzZWlob3Vzb3VcIDsKK+mbu+awl+WIhuinoyA8IGRlbmtpYnVua2FpXCA7Civlt6bkuIsgPCBoaWRhcmlzaGl0YVwgOwor6aKo6Ie05Zyw5Yy6IDwgZnV1Y2hpY2hpa3VcIDsKK+WvhumWieWuueWZqCA8IG1pcHBlaXlvdWtpXCA7CivpgKPluK/lgrXli5kgPCByZW50YWlzYWltdVwgOwor6YeR5Ymb6Jap5aCVIDwga29uZ291c2F0dGFcIDsKK+S4gOS6uuWkqeS4iyA8IGhpdG9yaWRlbmthXCA7Civpm7vli5XlvI8gPCBkZW5kb3VzaGlraVwgOwor5pmC6ZaT5Y+N6LuiIDwgamlrYW5oYW50ZW5cIDsKK+eUn+eUo+WKmyA8IHNlaXNhbnJ5b2t1XCA7Civlia/niafluKsgPCBmdWt1Ym9rdXNoaVwgOwor6IGW6aSQ5byPIDwgc2Vpc2Fuc2hpa2lcIDsKK+mAhumWouaVsCA8IGd5YWt1a2Fuc3V1XCA7CivkuIPkupTkuIkgPCBzaGljaGlnb3NhblwgOwor6aeQ55WZ6LuNIDwgY2h1dXJ5dXVndW5cIDsKK+WUr+eJqeirliA8IHl1aWJ1dHN1cm9uXCA7Civml4XllYbkurogPCB0YWJpc2hvdW5pblwgOwor6KW/5qyn5paH5piOIDwgc2Vpb3VidW5tZWlcIDsKK+S4i+mDqOe1hOe5lCA8IGthYnVzb3NoaWtpXCA7Civnm7jkuZflirnmnpwgPCBzb3Vqb3Vrb3VrYVwgOwor5rC05bmz6Led6ZuiIDwgc3VpaGVpa3lvcmlcIDsKK+eZvuWHuiA8IGh5YWt1c2h1dHN1XCA7CivmioDooZPmlpkgPCBnaWp1dHN1cnlvdVwgOwor6LuN5YKZ5pKk5buDIDwgZ3VuYml0ZXBwYWlcIDsKK+WbuuacieWQjeipniA8IGtveXV1bWVpc2hpXCA7Civnt7Tnv5LluLMgPCByZW5zaHV1Y2hvdVwgOwor6YCg55+z6auYIDwgem91a29rdWRha2FcIDsKK+i7jemaiuW8jyA8IGd1bnRhaXNoaWtpXCA7Civnv7voqLPogIUgPCBob24nJ3lha3VzaGFcIDsKK+a9pOebrumwryA8IHVydW1laXdhc2hpXCA7CivkurrplpPnlo7lpJYgPCBuaW5nZW5zb2dhaVwgOwor6Iy26KSQ6ImyIDwgY2hha2Fzc2hva3VcIDsKK+eiuuWun+W6piA8IGtha3VqaXRzdWRvXCA7CivmnInmqZ/ljJblraYgPCB5dXVraWthZ2FrdVwgOwor57eP5Yqb5oimIDwgc291cnlva3VzZW5cIDsKK+S7sumWk+WApOautSA8IG5ha2FtYW5lZGFuXCA7Civlpb3oibLmvKIgPCBrb3VzaG9rdWthblwgOwor5rip5pWF55+l5pawIDwgb25rb2NoaXNoaW5cIDsKK+WIneaKleeovyA8IGhhdHN1dG91a291XCA7CivkuIfkuIfkuIAgPCBtYW5tYW4nJ2ljaGlcIDsKK+aal+imluijhee9riA8IGFuc2hpc291Y2hpXCA7Civlm73lrrboqabpqJMgPCBrb2trYXNoaWtlblwgOwor6Z2S5p6c5biC5aC0IDwgc2Vpa2FpY2hpYmFcIDsKK+iLpeS+jSA8IHdha2F6YW11cmFpXCA7CivntLPlo6vmnI0gPCBzaGluc2hpZnVrdVwgOwor5rCR5LqL6KOB5YikIDwgbWluamlzYWliYW5cIDsKK+WOn+WtkOWFteWZqCA8IGdlbnNoaWhlaWtpXCA7CivkuIDku5XkuosgPCBoaXRvc2hpZ290b1wgOwor5ZeF56We57WMIDwga3l1dXNoaW5rZWlcIDsKK+iCr+WumuW/nOetlCA8IGtvdXRlaW91dG91XCA7CivlpInmm7TkuI3og70gPCBoZW5rb3VmdW5vdVwgOwor57aZ57aa55qEIDwga2Vpem9rdXRla2lcIDsKK+aWh+WtpueahCA8IGJ1bmdha3V0ZWtpXCA7CivntIDli6LmnKznt5ogPCBraXNlaWhvbnNlblwgOwor5YCZ55SxIDwgc291cm91eW9zaGlcIDsKK+m6u+ijj+iNieWxpSA8IGFzYXVyYXpvdXJpXCA7Civlha3ph43llLEgPCByb2t1anV1c2hvdVwgOwor5Y+w5rm+5Z2K5Li7IDwgdGFpd2FuYm91enVcIDsKK+Wto+WIiumbkeiqjCA8IGtpa2FuemFzc2hpXCA7CivljZfpmL/miKbkuokgPCBuYW4nJ2FzZW5zb3VcIDsKK+eEoee3muWRqOazoiA8IG11c2Vuc2h1dWhhXCA7CivnjoTkurrnrYsgPCBrdXJvdXRvc3VqaVwgOwor6ZW35pyf6YeR5YipIDwgY2hvdWtpa2lucmlcIDsKK+Wbg+WtkOaWuSA8IGhheWFzaGlrYXRhXCA7CivlpKfkurrniakgPCBkYWlqaW5idXRzdVwgOwor6aOb6KGM5qmf562JIDwgaGlrb3VraW5hZG9cIDsKK+WCgOWEoeaUv+W6nCA8IGthaXJhaXNlaWZ1XCA7CivlkIzns7voibIgPCBkb3VrZWlzaG9rdVwgOwor57SF55m957KJIDwgYmVuaW9zaGlyb2lcIDsKK+Wuo+iqk+W8jyA8IHNlbnNlaXNoaWtpXCA7CivluILlpJbpm7voqbEgPCBzaGlnYWlkZW53YVwgOwor6YCj6YKm5pS/5bqcIDwgcmVucG91c2VpZnVcIDsKK+aUvuatjOmrmOWQnyA8IGhvdWtha291Z2luXCA7CivkuK3lkoznhrEgPCBjaHV1d2FuZXRzdVwgOwor5b6u6YeP5YWD57SgIDwgYmlyeW91Z2Vuc29cIDsKK+iLseWtl+aWsOiBniA8IGVpamlzaGluYnVuXCA7CivmuoDouqvlibXnl40gPCBtYW5zaGluc291aVwgOwor56ys5LqM57WE5ZCIIDwgZGFpbmlrdW1pYWlcIDsKK+a2iOiAl+eahCA8IHNob3Vrb3V0ZWtpXCA7CivmlLvmkoPnmoQgPCBrb3VnZWtpdGVraVwgOwor5Z+L6JS154mpIDwgbWFpem91YnV0c3VcIDsKK+WJr+iqreacrCA8IGZ1a3Vkb2t1aG9uXCA7Civpup3pppnpvKAgPCBqYWtvdW5lenVtaVwgOwor5pyo6LOD5a6/IDwga2ljaGluJyd5YWRvXCA7Civlm5vop5Lmn7EgPCBzaGlrYWt1Y2h1dVwgOwor5Lit56m65aOBIDwgY2h1dWt1dWthYmVcIDsKK+WppuS6uuitpuWumCA8IGZ1amlua2Vpa2FuXCA7CivogIPoqLzlraYgPCBrb3VzaG91Z2FrdVwgOwor56ys5LiJ5LiW55WMIDwgZGFpc2Fuc2VrYWlcIDsKK+avmOaymemWgOWkqSA8IGJpc2hhbW9udGVuXCA7CivnpL7kvJrkuLvnvqkgPCBzaGFrYWlzaHVnaVwgOwor5a2m5L2N6KuW5paHIDwgZ2FrdWlyb25idW5cIDsKK+Wun+iovOeahCA8IGppc3Nob3V0ZWtpXCA7CivmlZHmuIjnrZYgPCBreXV1c2Fpc2FrdVwgOwor6LuN5Zu96Kq/IDwgZ3Vua29rdWNob3VcIDsKK+eZveidi+eXhSA8IGhha3Vyb3VieW91XCA7CivnpL7kuqTovp7ku6QgPCBzaGFrb3VqaXJlaVwgOwor5b605YW15b+M6YG/IDwgY2hvdWhlaWtpaGlcIDsKK+eLgueKrOeXhSA8IGt5b3VrZW5ieW91XCA7CivmsJHooYbnmoQgPCBtaW5zaHV1dGVraVwgOwor5qmf5Lya5Z2H562JIDwga2lrYWlraW50b3VcIDsKK+aaq+WumuaOque9riA8IHphbnRlaXNvY2hpXCA7CivmlrnlkJHpn7Pnl7QgPCBob3Vrb3VvbmNoaVwgOwor5LiA5Lih5bm0IDwgaWNoaXJ5b3VuZW5cIDsKK+S4lueVjOmKgOihjCA8IHNla2FpZ2lua291XCA7CivlpKfku4/mrr8gPCBkYWlidXRzdWRlblwgOwor5Yi56YKj55qEIDwgc2V0c3VuYXRla2lcIDsKK+WFqOaoqeWnlOS7uyA8IHplbmtlbicnaW5pblwgOwor5Ly96KmxIDwgdG9naWJhbmFzaGlcIDsKK+iHqueEtuiogOiqniA8IHNoaXplbmdlbmdvXCA7Civli4Xku7vlrpggPCBjaG9rdW5pbmthblwgOwor6KqH5aSn5aaE5oOzIDwga29kYWltb3Vzb3VcIDsKK+WPjOWNgeevgCA8IHNvdWp1dXNldHN1XCA7Civlpb3oibLmnKwgPCBrb3VzaG9rdWJvblwgOwor5YyW57Kn6YGT5YW3IDwga2VzaG91ZG91Z3VcIDsKK+S4jeWkieizh+acrCA8IGZ1aGVuc2hpaG9uXCA7CivnqpLljJbniakgPCBjaGlra2FidXRzdVwgOwor5p2+6aO+IDwgbWF0c3VrYXphcmlcIDsKK+S4ieinkue/vCA8IHNhbmtha3V5b2t1XCA7Civos57lkbPmnJ/pmZAgPCBzaG91bWlraWdlblwgOwor5oiQ6ZW35qCqIDwgc2VpY2hvdWthYnVcIDsKK+efs+adkOWVhiA8IHNla2l6YWlzaG91XCA7CivkvpvoqJfph5EgPCBreW91dGFrdWtpblwgOwor5b+D6IeT5aSW56eRIDwgc2hpbnpvdWdla2FcIDsKK+eMq+mhjeWkpyA8IGJ5b3VnYWt1ZGFpXCA7CivlnLDmlrnoibIgPCBjaGlob3VzaG9rdVwgOwor5bm+5L2V57Sa5pWwIDwga2lrYWt5dXVzdXVcIDsKK+S4iemDqOWQiOWljyA8IHNhbmJ1Z2Fzc291XCA7CivnlJ/kuK3ntpkgPCBuYW1hY2h1dWtlaVwgOwor5ZC45Y+O5YmkIDwga3l1dXNodXV6YWlcIDsKK+iSmeWPpOS6uueoriA8IG1vdWtvamluc2h1XCA7Civpm7vmsJfljJblraYgPCBkZW5raWthZ2FrdVwgOwor5p2x6aKoIDwgaGlnYXNoaWthemVcIDsKK+W7uuiUveeOhyA8IGtlbnBlaXJpdHN1XCA7CivlrqLoprPnmoQgPCBreWFra2FudGVraVwgOwor6LGG6IWQ5LiA5LiBIDwgdG91ZnVpdGNob3VcIDsKK+a2iOiyu+mDveW4giA8IHNob3VoaXRvc2hpXCA7CivkuIvntJrogbcgPCBrYWt5dXVzaG9rdVwgOwor5LiA5LiA44CH55WqIDwgaHlha3V0b29iYW5cIDsKK+S/rumjvuiqniA8IHNodXVzaG9rdWdvXCA7Civlrrbml4/liLbluqYgPCBrYXpva3VzZWlkb1wgOwor55Sf5a2Y5pyf6ZaTIDwgc2Vpem9ua2lrYW5cIDsKK+Wkp+mjn+a8oiA8IHRhaXNob2t1a2FuXCA7CivlhrfnrJHnmoQgPCByZWlzaG91dGVraVwgOwor5pSv57Wm6aGNIDwgc2hpa3l1dWdha3VcIDsKK+S4jeWdh+izqiA8IGZ1a2luc2hpdHN1XCA7Civku6PooajnmoQgPCBkYWloeW91dGVraVwgOwor5YWl6YGT6ZuyIDwgbnl1dWRvdWd1bW9cIDsKK+mHjuiJr+S7leS6iyA8IG5vcmFzaGlnb3RvXCA7CivlhbHpgJrngrkgPCBreW91dHN1dXRlblwgOwor5pel5LyK6L6e5YW4IDwgbmljaGlpaml0ZW5cIDsKK+WFrOW+s+W/gyA8IGtvdXRva3VzaGluXCA7CivkuI3mraPkuZfou4ogPCBmdXNlaWpvdXNoYVwgOwor6Kq/5p+757WQ5p6cIDwgY2hvdXNha2Vra2FcIDsKK+W9ouW8j+irliA8IGtlaXNoaWtpcm9uXCA7CivkuI3lvZPlu4nlo7IgPCBmdXRvdXJlbmJhaVwgOwor6YeR55Kw6aOfIDwga2lua2Fuc2hva3VcIDsKK+WHuuacreaJgCA8IHNodXNzYXRzdWpvXCA7Civmu4XlpJrnn6LpsYggPCBtZXR0YXlhdGFyYVwgOwor5YyX5qW15rW3IDwgaG9ra3lva3VrYWlcIDsKK+WJjeS6uuacqui4jyA8IHplbmppbm1pdG91XCA7CivooYzlrpjluoEgPCBneW91a2FuY2hvdVwgOwor5LiN5b2T5Yip5b6XIDwgZnV0b3VyaXRva3VcIDsKK+WbnuaVmeWvuumZoiA8IGthaWt5b3VqaWluXCA7Civkv53ouqvooZMgPCBob3NoaW5qdXRzdVwgOwor6ZGR6K2Y55y8IDwga2Fuc2hpa2lnYW5cIDsKK+WMl+altea0iyA8IGhva2t5b2t1eW91XCA7CivotaTntKsgPCBha2FtdXJhc2FraVwgOwor6LuN5LqL6KiT57e0IDwgZ3VuamlrdW5yZW5cIDsKK+W9q+WIu+eVjCA8IGNob3Vrb2t1a2FpXCA7Civppqzpub/oqbEgPCBiYWthYmFuYXNoaVwgOwor57eP5ZCI5Y+j5bqnIDwgc291Z291a291emFcIDsKK+eJqee0jeeojiA8IGJ1dHN1bm91emVpXCA7Civpg6HnnIzliLbluqYgPCBndW5rZW5zZWlkb1wgOwor5L2/55So5Y+v6IO9IDwgc2hpeW91a2Fub3VcIDsKK+S4i+Wls+S4rSA8IHNoaW1vam9jaHV1XCA7CivlhoXpg6jnlZnkv50gPCBuYWlidXJ5dXVob1wgOwor5Zyw5LiL5a6kIDwgY2hpa2FzaGl0c3VcIDsKK+WGjeiyqeWItuW6piA8IHNhaWhhbnNlaWRvXCA7CivooqvpgbjmjJnmqKkgPCBoaXNlbmt5b2tlblwgOwor6LK45pys5bGLIDwga2FzaGlob24nJ3lhXCA7CivniankvqHntbHliLYgPCBidWtrYXRvdXNlaVwgOwor6Zi/5ZGG6ZmA576F57WMIDwgYWhvZGFyYWt5b3VcIDsKK+WboOaVsOWIhuinoyA8IGluc3V1YnVua2FpXCA7Civpjb7kubPmtJ4gPCBzaG91bnl1dWRvdVwgOwor6IG35ZOh6YyyIDwgc2hva3VpbnJva3VcIDsKK+eUn+eUn+a1gei7oiA8IHNlaXNlaXJ1dGVuXCA7CivnhKHnn6XokpnmmKcgPCBtdWNoaW1vdW1haVwgOwor5qKv5a2Q6YWSIDwgaGFzaGlnb3pha2VcIDsKK+a7nuWcqOWuoiA8IHRhaXphaWt5YWt1XCA7Civok4Tpm7vmsaAgPCBjaGlrdWRlbmNoaVwgOwor6Kmm5o6Y6ICFIDwgc2hpa3V0c3VzaGFcIDsKK+Wkp+WtpuWvriA8IGRhaWdha3VyeW91XCA7Civlp6vlsI/mnb4gPCBoaW1la29tYXRzdVwgOwor55yf5a6f5ZGzIDwgc2hpbmppdHN1bWlcIDsKK+aXheW9ueiAhSA8IHRhYml5YWt1c2hhXCA7Civlm73msJHnmoQgPCBrb2t1bWludGVraVwgOwor5oim5rKh6ICFIDwgc2VuYm90c3VzaGFcIDsKK+a1geihjOeXhSA8IHJ5dXVrb3VieW91XCA7CivlvavliLvniYggPCBjaG91a29rdWJhblwgOwor5aCV6JC95Z2K5Li7IDwgZGFyYWt1Ym91enVcIDsKK+iInuWPsOW6puiDuCA8IGJ1dGFpZG9reW91XCA7Civlkajml4vmpa0gPCBzaHV1c2VuZ3lvdVwgOwor5Zuj5omH6JmrIDwgdWNoaXdhbXVzaGlcIDsKK+azsOilv+WQjeeUuyA8IHRhaXNlaW1laWdhXCA7Civmn7PohbAgPCB5YW5hZ2lnb3NoaVwgOwor5Y+j5bCP6KiAIDwga3VjaGlrb2dvdG9cIDsKK+azleayu+WbveWutiA8IGhvdWNoaWtva2thXCA7CivlhKrlhYjpoIbkvY0gPCB5dXVzZW5qdW4nJ2lcIDsKK+S7u+WRveW8jyA8IG5pbm1laXNoaWtpXCA7Civpm7vlipvlgrUgPCBkZW5yeW9rdXNhaVwgOwor5Y2Y5L2N57WE5ZCIIDwgdGFuJydpa3VtaWFpXCA7Civlipvli5XnmoQgPCByaWtpZG91dGVraVwgOwor5aSP5bi95a2QIDwgbmF0c3Vib3VzaGlcIDsKK+edoeecoOiWrCA8IHN1aW1pbicneWFrdVwgOwor5Y2455u45aC0IDwgb3Jvc2hpc291YmFcIDsKK+WNsOWIt+alrSA8IGluc2F0c3VneW91XCA7CivnrqHnkIbmg4XloLEgPCBrYW5yaWpvdWhvdVwgOwor5Lyd5bCO546HIDwgZGVuZG91cml0c3VcIDsKK+ibuOWFpemBkyA8IHRha29ueXV1ZG91XCA7Civoq4foqbHlrqQgPCBkYW53YXNoaXRzdVwgOwor5a6M5YWo5Li7576pIDwga2FuemVuc2h1Z2lcIDsKK+WuieaciOe1piA8IHlhc3VnZWtreXV1XCA7CivljJfmpbXmmJ8gPCBob2treW9rdXNlaVwgOwor5b6h6ZyK5LujIDwgbWl0YW1hc2hpcm9cIDsKK+S4g+S4jeaAneitsCA8IG5hbmFmdXNoaWdpXCA7CivmuKzph4/lo6sgPCBzb2t1cnlvdXNoaVwgOwor5Ye66aGY5pmCIDwgc2h1dHN1Z2FuamlcIDsKK+WgseW+qeihjOeCuiA8IGhvdWZ1a3Vrb3VpXCA7CivkuInop5LnkLQgPCBzYW5rYWt1Z290b1wgOwor6YmE5p2h57ayIDwgdGV0c3Vqb3Vtb3VcIDsKK+Wuo+S8neaWh+WPpSA8IHNlbmRlbm1vbmt1XCA7CivkuozmiJDmlofns7sgPCBuaXNlaWJ1bmtlaVwgOwor5L2T5YaF5pmC6KiIIDwgdGFpbmFpZG9rZWlcIDsKK+e/u+ios+aoqSA8IGhvbicneWFrdWtlblwgOwor546J5p2T5a2QIDwgdGFtYWpha3VzaGlcIDsKK+W3pealreWbvSA8IGtvdWd5b3Vrb2t1XCA7CivntYLlpJzpgYvou6IgPCBzaHV1eWF1bnRlblwgOwor5ZGo5peL5paZIDwgc2h1dXNlbnJ5b3VcIDsKK+i/veaSg+aIpiA8IHRzdWlnZWtpc2VuXCA7CivliqDpgJ/pgYvli5UgPCBrYXNva3V1bmRvdVwgOwor5YK355eF5YW1IDwgc2hvdWJ5b3VoZWlcIDsKK+W9vOWyuOahnCA8IGhpZ2FuemFrdXJhXCA7Civlr77mipfpg6jpmoogPCB0YWlrb3VidXRhaVwgOwor57WQ5ama6LK755SoIDwga2Vra29uaGl5b3VcIDsKK+S4gOaZguaJlSA8IGljaGlqaWJhcmFpXCA7CivlhoXlrrnniakgPCBuYWl5b3VidXRzdVwgOwor6LuN5LqL5pS/5qipIDwgZ3VuamlzZWlrZW5cIDsKK+acieapn+i+suazlSA8IHl1dWtpbm91aG91XCA7CivpmLLooZvpg6jplbcgPCBib3VlaWJ1Y2hvdVwgOwor6YGL5Za26LOH6YeRIDwgdW4nJ2Vpc2hpa2luXCA7CivmnIjopovolY7puqYgPCB0c3VraW1pc29iYVwgOwor5Lq655Sf6Iiq6LevIDwgamluc2Vpa291cm9cIDsKK+eEoeS4gOeJqSA8IG11aWNoaW1vdHN1XCA7CivnlJ/lkb3kv53pmbogPCBzZWltZWlob2tlblwgOwor5Yq05YON5YqbIDwgcm91ZG91cnlva3VcIDsKK+W/nOaApeaJi+W9kyA8IG91a3l1dXRlYXRlXCA7CivmnInlvaLnhKHlvaIgPCB5dXVrZWltdWtlaVwgOwor6Iul56u55LqtIDwgd2FrYXRha2V0ZWlcIDsKK+e/u+ios+abuCA8IGhvbicneWFrdXNob1wgOwor5Yiw552A6aeFIDwgdG91Y2hha3Vla2lcIDsKK+eUt+W/gyA8IG90b2tvZ29rb3JvXCA7CivlsJHlm73msJEgPCBzaG91a29rdW1pblwgOwor5Y+X5L+h5Zue6LevIDwganVzaGlua2Fpcm9cIDsKK+WPguiAg+Wbs+abuCA8IHNhbmtvdXRvc2hvXCA7CivnlJ/lrabllY8gPCBuYW1hZ2FrdW1vblwgOwor6Iux6ZuE5bSH5oudIDwgZWl5dXVzdXVoYWlcIDsKK+S7iuaciOWIhiA8IGtvbmdldHN1YnVuXCA7CivliIbmlbDlvI8gPCBidW5zdXVzaGlraVwgOwor5Y+X6aiT55Wq5Y+3IDwganVrZW5iYW5nb3VcIDsKK+mHjei+suS4u+e+qSA8IGp1dW5vdXNodWdpXCA7Civmjojos57lvI8gPCBqdXNob3VzaGlraVwgOwor5o6M5Lit5pysIDwgc2hvdWNodXVib25cIDsKK+ecgeWKm+WMliA8IHNob3VyeW9rdWthXCA7Civku6PooajmoLwgPCBkYWloeW91a2FrdVwgOwor6K235Zu956We56S+IDwgZ29rb2t1amluamFcIDsKK+aYvOiIiOihjCA8IGhpcnVrb3VneW91XCA7Civpu5nnpLrpjLIgPCBtb2t1c2hpcm9rdVwgOwor5piO5rK756We5a6uIDwgbWVpamlqaW5ndXVcIDsKK+WwkeaVsOaEj+imiyA8IHNob3VzdXVpa2VuXCA7CivkurrombEgPCBoaXRvc2hpcmFtaVwgOwor5q+U57+86YCj55CGIDwgaGl5b2t1cmVucmlcIDsKK+aknOWvn+WumCA8IGtlbnNhdHN1a2FuXCA7CivkvpvoqJfogIUgPCBreW91dGFrdXNoYVwgOwor5rW355Sj54mpIDwga2Fpc2FuYnV0c3VcIDsKK+acieacn+W5tOmHkSA8IHl1dWtpbmVua2luXCA7Civov5Tkv6HnlKggPCBoZW5zaGluJyd5b3VcIDsKK+S6jOWFg+aUvumAgSA8IG5pZ2VuaG91c291XCA7Civoh6rkv6HpgY7libAgPCBqaXNoaW5rYWpvdVwgOwor6YGB6LWw5puyIDwgdG9uc291a3lva3VcIDsKK+Wliee0jeebuOaSsiA8IGhvdW5vdXp1bW91XCA7CivovrvlvLfnm5cgPCB0c3VqaWdvdXRvdVwgOwor5Lq66Lqr5b6h5L6bIDwgaGl0b21pZ29rdXVcIDsKK+WFrOW8j+aIpiA8IGtvdXNoaWtpc2VuXCA7Civkv53orbfmpJzmnZ8gPCBob2dva2Vuc29rdVwgOwor5YiG55yM5Zyw5ZuzIDwgYnVua2VuY2hpenVcIDsKK+mdtOS4gOi2syA8IGt1dHN1aXNzb2t1XCA7CivpmL/oq5vov73lvpMgPCBheXV0c3Vpc2hvdVwgOwor6Zu75YWJ55+z54GrIDwgZGVua291c2Vra2FcIDsKK+azoueAvuS4h+S4iCA8IGhhcmFuYmFuam91XCA7Civnm7jkupLplqLkv4IgPCBzb3Vnb2thbmtlaVwgOwor5rWq6Iqx56+AIDwgbmFuaXdhYnVzaGlcIDsKK+WGhemDqOS7leanmCA8IG5haWJ1c2hpeW91XCA7CivlkITlpKflraYgPCBrYWt1ZGFpZ2FrdVwgOwor57eP6YCA5Y20IDwgc291dGFpa3lha3VcIDsKK+earuS4i+azqOWwhCA8IGhpa2FjaHV1c2hhXCA7Civkub7nh6Xph47oj5wgPCBrYW5zb3V5YXNhaVwgOwor55+t5qmf6Zai6YqDIDwgdGFua2lrYW5qdXVcIDsKK+ePvuWcsOaZgumWkyA8IGdlbmNoaWppa2FuXCA7Civlm73msJHmnI0gPCBrb2t1bWluZnVrdVwgOwor5LiA562J6LuN5pu5IDwgaXR0b3VndW5zb3VcIDsKK+Wun+WcqOirliA8IGppdHN1emFpcm9uXCA7CivmlZHmgKXou4ogPCBreXV1a3l1dXNoYVwgOwor6ZaT5o6l56iOIDwga2Fuc2V0c3V6ZWlcIDsKK+eNo+mBkyA8IGtlbW9ub21pY2hpXCA7Civlrrbluq3nlKjlk4EgPCBrYXRlaXlvdWhpblwgOwor5Lmx6ZaL55m6IDwgcmFua2FpaGF0c3VcIDsKK+aJgOW4r+S4uyA8IHNob3RhaW51c2hpXCA7CivpibHlsbHmioDluKsgPCBrb3V6YW5naXNoaVwgOwor6Ziy5a+S6Z20IDwgYm91a2FuZ3V0c3VcIDsKK+S4gOWtkOebuOS8nSA8IGlzc2hpc291ZGVuXCA7CivkuInop5Lmn7EgPCBzYW5rYWt1Y2h1dVwgOwor5LiA6ZurIDwgaGl0b3NoaXp1a3VcIDsKK+S7leios+W4syA8IHNoaXdha2VjaG91XCA7CivnspjnnYDmgKcgPCBuZW5jaGFrdXNlaVwgOwor5pmC6ZmQ56uL5rOVIDwgamlnZW5yaXBwb3VcIDsKK+e+iumbsiA8IGhpdHN1amlndW1vXCA7CivmhJvliKXpm6Loi6YgPCBhaWJldHN1cmlrdVwgOwor5a+G6YCg6YWSIDwgbWl0c3V6b3VzaHVcIDsKK+WbuuWumuizh+eUoyA8IGtvdGVpc2hpc2FuXCA7CivkuIDlpJzmvKwgPCBpY2hpeWFkenVrZVwgOwor5ZKM54us6L6e5YW4IDwgd2Fkb2t1aml0ZW5cIDsKK+eZu+agoeaLkuWQpiA8IHRvdWtvdWt5b2hpXCA7Civmlpzop5Lmn7EgPCBzaGFrYWt1Y2h1dVwgOwor5ryU5aWP5peF6KGMIDwgZW5zb3VyeW9rb3VcIDsKK+abuOeUu+mqqOiRoyA8IHNob2dha290dG91XCA7Civlr77nhafnmoQgPCB0YWlzaG91dGVraVwgOwor5b255Lq66aKoIDwgeWFrdW5pbmthemVcIDsKK+iIueiItualrSA8IHNlbnBha3VneW91XCA7CivpgYvli5XpgbjmiYsgPCB1bmRvdXNlbnNodVwgOwor5a2m5ZyS6YO95biCIDwgZ2FrdWVudG9zaGlcIDsKK+awtOmBk+WxgCA8IHN1aWRvdWt5b2t1XCA7Civlp4vnmbrpp4UgPCBzaGloYXRzdWVraVwgOwor5p2x5rSL5Li7576pIDwgdG91eW91c2h1Z2lcIDsKK+WMl+alteWcjyA8IGhva2t5b2t1a2VuXCA7Civml6XnlKjlk4EgPCBuaWNoaXlvdWhpblwgOwor5Y+N6YCG6ICFIDwgaGFuZ3lha3VzaGFcIDsKK+Wkp+miqOWRguaVtyA8IG9vYnVyb3NoaWtpXCA7CivmnInok4vosqjou4ogPCB5dXVnYWlrYXNoYVwgOwor5pS/5rK76LOH6YeRIDwgc2VpamlzaGlraW5cIDsKK+eZu+mMsua4iCA8IHRvdXJva3V6dW1pXCA7CivlsILlo7LlsYAgPCBzZW5iYWlreW9rdVwgOwor5qip5Yqb6ICFIDwga2Vucnlva3VzaGFcIDsKK+iogOirluapn+mWoiA8IGdlbnJvbmtpa2FuXCA7CivppIrorbflrabmoKEgPCB5b3Vnb2dha2tvdVwgOwor5oGS5LmF55qEIDwga291a3l1dXRla2lcIDsKK+i1sOihjOaZgumWkyA8IHNvdWtvdWppa2FuXCA7Civlj43pgIbnvaogPCBoYW5neWFrdXphaVwgOwor6KmV5L6h5Z+65rqWIDwgaHlvdWtha2lqdW5cIDsKK+eJueetieW4rSA8IHRva3V0b3VzZWtpXCA7CivlhoXmnI3olqwgPCBuYWlmdWt1eWFrdVwgOwor6IeG55eF6aKoIDwgb2t1YnlvdWthemVcIDsKK+S+m+e1puiAhSA8IGt5b3VreXV1c2hhXCA7CivlvavliLvluKsgPCBjaG91a29rdXNoaVwgOwor5paw6IGe6KiY5LqLIDwgc2hpbmJ1bmtpamlcIDsKK+Wkq+WUseWppumajyA8IGZ1c2hvdWZ1enVpXCA7Civpm7vlrZDovp7mm7ggPCBkZW5zaGlqaXNob1wgOwor5rGC5Lq66ZujIDwga3l1dWppbicnbmFuXCA7CivnjL/ovaEgPCBzYXJ1Z3V0c3V3YVwgOwor6Kmm5o6Y5qipIDwgc2hpa3V0c3VrZW5cIDsKK+WQjOaZgumMsumfsyA8IGRvdWppcm9rdW9uXCA7CivnrqHnkIbnpL7kvJogPCBrYW5yaXNoYWthaVwgOwor5LiA6KaW5ZCM5LuBIDwgaXNzaGlkb3VqaW5cIDsKK+ani+mAoOWkieWMliA8IGtvdXpvdWhlbmthXCA7CivlnKjkuqzkuK0gPCB6YWlreW91Y2h1dVwgOwor5pa556iL5byPIDwgaG91dGVpc2hpa2lcIDsKK+mdmeWKm+WtpiA8IHNlaXJpa2lnYWt1XCA7CivlpbPmtYHkvZzlrrYgPCBqb3J5dXVzYWtrYVwgOwor5LiA6Kan6KGoIDwgaWNoaXJhbmh5b3VcIDsKK+WMl+acnemuriA8IGtpdGFjaG91c2VuXCA7Civlj7jms5XliLbluqYgPCBzaGlob3VzZWlkb1wgOwor6ISI5omAIDwgbXlha3Vkb2tvcm9cIDsKK+eZvuWNg+mzpSA8IG1vbW9jaGlkb3JpXCA7Civli6Tli5nkuqTku6MgPCBraW5tdWtvdXRhaVwgOwor55+t57eo5pig55S7IDwgdGFucGVuJydlaWdhXCA7CivpioPliaPooZMgPCBqdXVrZW5qdXRzdVwgOwor5Lya5ZOh6KaP57SEIDwga2FpaW5raXlha3VcIDsKK+e0jemqqOWggiA8IG5vdWtvdHN1ZG91XCA7CivogLPlsI/pqqggPCBqaXNob3Vrb3RzdVwgOwor5aSn6Z2Z6ISIIDwgZGFpam91bXlha3VcIDsKK+e1jOa4iOWKmyA8IGtlaXphaXJ5b2t1XCA7CivlrabljZTkvJogPCBnYWt1a3lvdWthaVwgOwor5Lit5b+D54K5IDwgY2h1dXNoaW50ZW5cIDsKK+S6jOeCueWFiOWPliA8IG5pdGVuc2Vuc2h1XCA7Civlj43miKbkuLvnvqkgPCBoYW5zZW5zaHVnaVwgOwor5pq06JmO6aau5rKzIDwgYm91a29oeW91Z2FcIDsKK+WMl+alteWFiSA8IGhva2t5b2t1a291XCA7Civpo5/lk4HlupcgPCBzaG9rdWhpbnRlblwgOwor6aCY5Y+O5pu4IDwgcnlvdXNodXVzaG9cIDsKK+W3puiFleaKleaJiyA8IHNhd2FudG91c2h1XCA7CivkvYbmm7ggPCB0YWRhc2hpZ2FraVwgOwor5YmN5pyf6Kmm6aiTIDwgemVua2lzaGlrZW5cIDsKK+mAmuefpeihqCA8IHRzdXVjaGloeW91XCA7CivpgKPnmbrpioMgPCByZW5wYXRzdWp1dVwgOwor5pS75pKD5YG0IDwga291Z2VraWdhd2FcIDsKK+Wkp+S4reWwjyA8IGRhaWNodXVzaG91XCA7CivlubPlnYflvosgPCBoZWlraW5yaXRzdVwgOwor6LWk5qOf6JuHIDwgeWFtYWthZ2FzaGlcIDsKK+iiq+mBuOaMmeS6uiA8IGhpc2Vua3lvbmluXCA7CivoprPlv7XnmoQgPCBrYW4nJ25lbnRla2lcIDsKK+WwgumWgOiBtyA8IHNlbm1vbnNob2t1XCA7CivlhbHpgLLkvJogPCBreW91c2hpbmthaVwgOwor5L+h55So54q2IDwgc2hpbicneW91am91XCA7CivnuZTnianmpa0gPCBvcmltb25vZ3lvdVwgOwor6IOM5b6M6Zai5L+CIDwgaGFpZ29rYW5rZWlcIDsKK+iFsOWIgCA8IGtvc2hpZ2F0YW5hXCA7CivotoXnibnmgKUgPCBjaG91dG9ra3l1dVwgOwor6L+U5L+h5paZIDwgaGVuc2hpbnJ5b3VcIDsKK+WjgeaWsOiBniA8IGthYmVzaGluYnVuXCA7CivppJPprLzlpKflsIYgPCBnYWtpZGFpc2hvdVwgOwor55Wq5Y+36KiY5Y+3IDwgYmFuZ291a2lnb3VcIDsKK+iejeino+eGsSA8IHl1dWthaW5ldHN1XCA7Civnr4DljZrlo6sgPCBmdXNoaWhha2FzZVwgOwor6KaL54mp5Lq6IDwga2VuYnV0c3VuaW5cIDsKK+eZu+mMsuaWmSA8IHRvdXJva3VyeW91XCA7Civlkajml4vkurogPCBzaHV1c2VuJyduaW5cIDsKK+WIkeS6i+ijnOWEnyA8IGtlaWppaG9zaG91XCA7Civpq5jpupfoip0gPCBrb3VyYWlzaGliYVwgOwor5LiN6Kaq5YiHIDwgZnVzaGluc2V0c3VcIDsKK+imquWRiue9qiA8IHNoaW5rb2t1emFpXCA7CivolKbntIXokYkgPCB0c3V0YW1vbWlqaVwgOwor5LqU55uu6a6oIDwgZ29tb2t1enVzaGlcIDsKK+e3qOmbhumVtyA8IGhlbnNodXVjaG91XCA7Civlh7rniYjmpa0gPCBzaHVwcGFuZ3lvdVwgOwor6Kq/5pWZ5birIDwgY2hvdWt5b3VzaGlcIDsKK+mAsumnkOi7jSA8IHNoaW5jaHV1Z3VuXCA7CivliKXli5XpmoogPCBiZXRzdWRvdXRhaVwgOwor6YCG5Zm05bCEIDwgZ3lha3VmdW5zaGFcIDsKK+S4gOS9k+WFqOS9kyA8IGl0dGFpemVudGFpXCA7Civkuozlj6Pnm64gPCBmdXRha3VjaGltZVwgOwor5rW36YGL5ZCM55ufIDwga2FpdW5kb3VtZWlcIDsKK+WwguWuiOmYsuihmyA8IHNlbnNodWJvdWVpXCA7CivljZfpmL/pgKPpgqYgPCBuYW4nJ2FyZW5wb3VcIDsKK+mAhuWRvemhjCA8IGd5YWt1bWVpZGFpXCA7CivnmbrooYzpg6jmlbAgPCBoYWtrb3VidXN1dVwgOwor5YiR5LqL6KOB5YikIDwga2VpamlzYWliYW5cIDsKK+WFrOW5s+eEoeengSA8IGtvdWhlaW11c2hpXCA7CivniankvqHmjIfmlbAgPCBidWtrYXNoaXN1dVwgOwor57KY552A5YmkIDwgbmVuY2hha3V6YWlcIDsKK+WIkeS6i+iiq+WRiiA8IGtlaWppaGlrb2t1XCA7CivnlJ/niannlYwgPCBzZWlidXRzdWthaVwgOwor6KiY6ICF5Lya6KaLIDwga2lzaGFrYWlrZW5cIDsKK+W+k+i7jeiomOiAhSA8IGp1dWd1bmtpc2hhXCA7CivnqbrmsJfmirXmipcgPCBrdXVraXRlaWtvdVwgOwor5LqU55uu6aOvIDwgZ29tb2t1bWVzaGlcIDsKK+iyoueJqSA8IG1pdHN1Z2ltb25vXCA7Civnj77ph5HmraPkvqEgPCBnZW5raW5zZWlrYVwgOwor5o6h5o6Y5qipIDwgc2Fpa3V0c3VrZW5cIDsKK+Wkp+WQjOWwj+eVsCA8IGRhaWRvdXNob3VpXCA7CivnlJ/lkb3lgKvnkIYgPCBzZWltZWlyaW5yaVwgOwor5YWo5bmF55qEIDwgemVucHVrdXRla2lcIDsKK+mnhuWLleijhee9riA8IGt1ZG91c291Y2hpXCA7CivlvavliLvliIAgPCBjaG91a29rdXRvdVwgOwor5Y2D6LuN5LiH6aasIDwgc2VuZ3VuYmFuYmFcIDsKK+WkieW5u+iHquWcqCA8IGhlbmdlbmppemFpXCA7CivnoJTnqbblv4MgPCBrZW5reXV1c2hpblwgOwor55u45a++5Li7576pIDwgc291dGFpc2h1Z2lcIDsKK+eLrOWNoOeahCA8IGRva3VzZW50ZWtpXCA7CivphbjkuK3mr5IgPCBzYW5jaHV1ZG9rdVwgOwor6LuN5Yy75a2m5qChIDwgZ3VuJydpZ2Fra291XCA7CivotoXmlrDmmJ8gPCBjaG91c2hpbnNlaVwgOwor6YO95rCR5Lya6aSoIDwgdG9taW5rYWlrYW5cIDsKK+W4guWgtOS+oeWApCA8IHNoaWpvdWthY2hpXCA7CivpoILmiLTniakgPCBjaG91ZGFpbW9ub1wgOwor5bmz5ZKM6KuW6ICFIDwgaGVpd2Fyb25zaGFcIDsKK+Wuv+aziuaJgCA8IHNodWt1aGFrdWpvXCA7CivlsL/ntKDmqLnohIIgPCBueW91c29qdXNoaVwgOwor5aOy5Y2055uKIDwgYmFpa3lha3Vla2lcIDsKK+aOg+mZpOW9k+eVqiA8IHNvdWppdG91YmFuXCA7Civmp4vpgKDlvI8gPCBrb3V6b3VzaGlraVwgOwor5Luj55CG5oim5LqJIDwgZGFpcmlzZW5zb3VcIDsKK+S7o+ihqOS9nCA8IGRhaWh5b3VzYWt1XCA7CivlnLDnm6TmsojkuIsgPCBqaWJhbmNoaW5rYVwgOwor5qeL5oiQ5Li7576pIDwga291c2Vpc2h1Z2lcIDsKK+ato+WkmumdouS9kyA8IHNlaXRhbWVudGFpXCA7CivpgY7lpLHniq8gPCBrYXNoaXRzdWhhblwgOwor57SZ5LiA5p6aIDwga2FtaWljaGltYWlcIDsKK+S/neeojuWcsOWfnyA8IGhvemVpY2hpaWtpXCA7Civlho3oqo3orZggPCBzYWluaW5zaGlraVwgOwor5Lq65ZOh5pW055CGIDwgamluJydpbnNlaXJpXCA7CivpoqjnianoqakgPCBmdXVidXRzdXNoaVwgOwor5Lq66ZaT5Lul5YmNIDwgbmluZ2VuJydpemVuXCA7Civlrp/plqLmlbAgPCBqaXRzdWthbnN1dVwgOwor5aSn5aW954mpIDwgZGFpa291YnV0c3VcIDsKK+S5s+a/gea2siA8IG55dXVkYWt1ZWtpXCA7CivmsLTlhrflvI8gPCBzdWlyZWlzaGlraVwgOwor5bmz6Z2i5Zuz5b2iIDwgaGVpbWVuenVrZWlcIDsKK+W/g+mFjeaApyA8IHNoaW5wYWlzaG91XCA7CivlrqLlrqQgPCBreWFrdXNoaXRzdVwgOwor5a6H5a6Z5peF6KGMIDwgdWNodXVyeW9rb3VcIDsKK+W+jOWni+acqyA8IGF0b3NoaW1hdHN1XCA7Civlhajli6LlipsgPCB6ZW5zZWlyeW9rdVwgOwor6I2Y5ZyS5Yi25bqmIDwgc2hvdWVuc2VpZG9cIDsKK+mbouW/g+eOhyA8IHJpc2hpbnJpdHN1XCA7CivkvpvntabmupAgPCBreW91a3l1dWdlblwgOwor6Ieq56S+6KO95ZOBIDwgamlzaGFzZWloaW5cIDsKK+WIneacn+autemajiA8IHNob2tpZGFua2FpXCA7CivliY3pgJTpgbzpgaAgPCB6ZW50b3J5b3VlblwgOwor5aSn5paH56+AIDwgZGFpYnVuc2V0c3VcIDsKK+S4gOWknOWmuyA8IGhpdG95b2R6dW1hXCA7CivntZDlkIjlrZAgPCBrZXRzdWdvdXNoaVwgOwor5q275Lqh546HIDwgc2hpYm91cml0c3VcIDsKK+aZguWxgOafhCA8IGppa3lva3VnYXJhXCA7CivotaTokaHokITphZIgPCBha2FidWRvdXNodVwgOwor5Y6f5aeL5pmC5LujIDwgZ2Vuc2hpamlkYWlcIDsKK+mFjeW9k+eOhyA8IGhhaXRvdXJpdHN1XCA7CivmlbTpqqjluKsgPCBzZWlrb3RzdXNoaVwgOwor5Y+C6KyA5pys6YOoIDwgc2FuYm91aG9uYnVcIDsKK+Wls+WtkOWkp+eUnyA8IGpvc2hpZGFpc2VpXCA7CivplqLnqI7njocgPCBrYW56ZWlyaXRzdVwgOwor5o6S5aSW6YGL5YuVIDwgaGFpZ2FpdW5kb3VcIDsKK+S4reavkuatuyA8IGNodXVkb2t1c2hpXCA7CivmsLTlubPpo5vooYwgPCBzdWloZWloaWtvdVwgOwor5pyA5YmN5YiXIDwgc2FpemVucmV0c3VcIDsKK+S9juWbnui2o+WRsyA8IHRlaWthaXNodW1pXCA7CivkupLmgbXosr/mmJMgPCBnb2tlaWJvdWVraVwgOwor5Lq66ZaT5Lul5LiKIDwgbmluZ2VuJydpam91XCA7CivlvqHmiYDou4ogPCBnb3Nob2d1cnVtYVwgOwor5YKy5oWi54Sh56S8IDwgZ291bWFuYnVyZWlcIDsKK+S6uuafsSA8IGhpdG9iYXNoaXJhXCA7Civms5Xli5nlp5Tlk6HkvJogPCBob3VtdWlpbmthaVwgOwor5YaF5puy55CDIDwgbmFpa3lva2t5dXVcIDsKK+W+kuaJi+epuuaLsyA8IHRvc2h1a3V1a2VuXCA7Civkupzngq3ljJbniakgPCBhdGFua2FidXRzdVwgOwor5rC05rOz5aSn5LyaIDwgc3VpZWl0YWlrYWlcIDsKK+ino+aVo+iqrCA8IGthaXNhbnNldHN1XCA7CivnlLflpbPlkIzmqKkgPCBkYW5qb2RvdWtlblwgOwor5bm06YeR5Yi25bqmIDwgbmVua2luc2VpZG9cIDsKK+epuui7jeWfuuWcsCA8IGt1dWd1bmtpY2hpXCA7CivlpKflkozmmYLku6MgPCB5YW1hdG9qaWRhaVwgOwor5bu66YCg54mpIDwga2Vuem91YnV0c3VcIDsKK+W4neeOi+WIh+mWiyA8IHRlaW91c2Vra2FpXCA7CivnjK7ooYDou4ogPCBrZW5rZXRzdXNoYVwgOwor5bCP5ZOB6ZuGIDwgc2hvdWhpbnNodXVcIDsKK+mciuWuieWupCA8IHJlaWFuc2hpdHN1XCA7Civlj43mlL/lupzlhZogPCBoYW5zZWlmdXRvdVwgOwor6Zui552A6Zm4IDwgcmljaGFrdXJpa3VcIDsKK+iEium7hOmdkum4muWTpSA8IHNla2lzZWlpbmtvXCA7Civmra/np5Hnl4XpmaIgPCBzaGlrYWJ5b3VpblwgOwor6auY6YeO6IGWIDwga291eWFoaWppcmlcIDsKK+i8ieiyqOWxr+aVsCA8IHNhaWthdG9uc3V1XCA7CivmlbTpq6rliaQgPCBzZWloYXRzdXphaVwgOwor5Yem5LiW6KGTIDwgc2hvc2VpanV0c3VcIDsKK+irluiqrOWnlOWToSA8IHJvbnNldHN1aWluXCA7Civli53miYvmrKHnrKwgPCBrYXR0ZXNoaWRhaVwgOwor56m65oy66ZqK5ZOhIDwga3V1dGVpdGFpaW5cIDsKK+iHqueUsee1jOa4iCA8IGppeXV1a2VpemFpXCA7Civml5fpoK0gPCBoYXRhZ2FzaGlyYVwgOwor5a2Q5bm0IDwgbmV6dW1pZG9zaGlcIDsKK+WFq+W5oeWuriA8IGhhY2hpbWFuZ3V1XCA7CivosqHmlL/noLTntrsgPCB6YWlzZWloYXRhblwgOwor5q2M5ZSx5YqbIDwga2FzaG91cnlva3VcIDsKK+WbnuaKmOaQjSA8IGthaXNldHN1c29uXCA7CivmlL/msrvnjK7ph5EgPCBzZWlqaWtlbmtpblwgOwor6aqo5LuV5LqLIDwgaG9uZXNoaWdvdG9cIDsKK+iHhueXheiAhSA8IG9rdWJ5b3Vtb25vXCA7Civml4vpoqggPCB0c3VtdWppa2F6ZVwgOwor5omL6ZaT5LuV5LqLIDwgdGVtYXNoaWdvdG9cIDsKK+S4gOacrOWLneiyoCA8IGlwcG9uc2hvdWJ1XCA7CivmnJ3po6/liY0gPCBhc2FtZXNoaW1hZVwgOwor6LOq5a6fIDwgc2hpdHN1aml0c3VcIDsKK+WIiuihjOeJqSA8IGthbmtvdWJ1dHN1XCA7CivnnLzpj6HmqYsgPCBtZWdhbmViYXNoaVwgOwor6LO85YWl5YWIIDwga291bnl1dXNha2lcIDsKK+S4remAlOWNiuerryA8IGNodXV0b2hhbnBhXCA7CivpgJrpgY7lhIDnpLwgPCB0c3V1a2FnaXJlaVwgOwor5Li854mpIDwgZG9uYnVyaW1vbm9cIDsKK+W8mOS7geagvCA8IGtvdW5pbmt5YWt1XCA7Civoi7HlrZfpm4blkIggPCBlaWppc2h1dWdvdVwgOwor572y5ZCN6YGL5YuVIDwgc2hvbWVpdW5kb3VcIDsKK+WhkeaAp+aMh+aVsCA8IHNvc2Vpc2hpc3V1XCA7CivlkIjlkIzlirTntYQgPCBnb3Vkb3Vyb3Vzb1wgOwor5p2W5p+xIDwgdHN1ZWhhc2hpcmFcIDsKK+aXp+Wkp+mZuCA8IGt5dXV0YWlyaWt1XCA7CivkuLvnrqHmqZ/plqIgPCBzaHVrYW5raWthblwgOwor5aSp5rCX6YO95ZCIIDwgdGVua2l0c3Vnb3VcIDsKK+WFteWZqOW3peWgtCA8IGhlaWtpa291am91XCA7CivkuIvnnrwgPCBzaGl0YW1hYnV0YVwgOwor6Ki65a+f5pelIDwgc2hpbnNhdHN1YmlcIDsKK+W5s+awkeS4u+e+qSA8IGhlaW1pbnNodWdpXCA7Civlrrbml4/kvJrorbAgPCBrYXpva3VrYWlnaVwgOwor5p2x5a6u6IG3IDwgdG91Z3V1c2hva3VcIDsKK+a4m+WCteWfuumHkSA8IGdlbnNhaWtpa2luXCA7Civorablr5/nvbIgPCBrZWlzYXRzdXNob1wgOwor5YaX6KuH5Y+jIDwgam91ZGFuZ3VjaGlcIDsKK+e5lOeJqeWVhiA8IG9yaW1vbm9zaG91XCA7CivnpZblhYjltIfmi50gPCBzb3NlbnN1dWhhaVwgOwor5YWr6L665b2iIDwgaGFjaGloZW5rZWlcIDsKK+mHneS7leS6iyA8IGhhcmlzaGlnb3RvXCA7CivkuovlpKfmgJ3mg7MgPCBqaWRhaXNoaXNvdVwgOwor5aW95Lq654mpIDwga291amluYnV0c3VcIDsKK+WcsOWgtOeUo+alrSA8IGppYmFzYW5neW91XCA7CivlvoHmnI3mrLIgPCBzZWlmdWt1eW9rdVwgOwor6YCj6YKm5Zu95a62IDwgcmVucG91a29ra2FcIDsKK+eri+aGsuS4u+e+qSA8IHJpa2tlbnNodWdpXCA7CivmnYnmnpcgPCBzdWdpYmF5YXNoaVwgOwor6Kej6Kqs6ICFIDwga2Fpc2V0c3VzaGFcIDsKK+W6g+WRiualrSA8IGtvdWtva3VneW91XCA7Civlhavmlrnnvo7kurogPCBoYXBwb3ViaWppblwgOwor5Ym156uL6ICFIDwgc291cml0c3VzaGFcIDsKK+ino+eGseiWrCA8IGdlbmV0c3V5YWt1XCA7Civml6Xmm5zniYggPCBuaWNoaXlvdWJhblwgOwor5paw5b+r6YCfIDwgc2hpbmthaXNva3VcIDsKK+Wxi+agueijj+mDqOWxiyA8IHlhbmV1cmFiZXlhXCA7CivkuJbnlYzmg4Xli6IgPCBzZWthaWpvdXNlaVwgOwor5LiN5b+r5oyH5pWwIDwgZnVrYWlzaGlzdXVcIDsKK+mBoOa0i+iIqui3ryA8IGVuJyd5b3Vrb3Vyb1wgOwor5Lit5bm06ICFIDwgY2h1dW5lbm1vbm9cIDsKK+WbveWutue1jOa4iCA8IGtva2tha2VpemFpXCA7CivmiLTlhqDlvI8gPCB0YWlrYW5zaGlraVwgOwor6Ieo5pmC5aKX5YiKIDwgcmluaml6b3VrYW5cIDsKK+i7vealreW4qyA8IGthcnV3YXphc2hpXCA7CivkuK3lv4PlnLAgPCBjaHV1c2hpbmNoaVwgOwor5ZWG5oWj57+SIDwgc2hvdWthbnNodXVcIDsKK+eUn+eJqeaIpiA8IHNlaWJ1dHN1c2VuXCA7CivmlZHmgKXms5UgPCBreXV1a3l1dWhvdVwgOwor6aOf5YmN6YWSIDwgc2hva3V6ZW5zaHVcIDsKK+WFrOatpuWQiOS9kyA8IGtvdWJ1Z2F0dGFpXCA7Civmt7HlpJzml48gPCBzaGluJyd5YXpva3VcIDsKK+S6iOiumuacrOe3miA8IHlvc2FuaG9uc2VuXCA7CivmoLnmnKzkuLvnvqkgPCBrb25wb25zaHVnaVwgOwor6L+r5pKD56CyIDwgaGFrdWdla2lob3VcIDsKK+mdnuW4uOitpuaIkiA8IGhpam91a2Vpa2FpXCA7CivkuK3lpK7mlL/lupwgPCBjaHV1b3VzZWlmdVwgOwor6YCy6LuN5LitIDwgc2hpbmd1bmNodXVcIDsKK+WqkumFjOS6uiA8IGJhaXNoYWt1bmluXCA7CivkuKHmgKfnmoQgPCByeW91c2VpdGVraVwgOwor5Yi654q256qB6LW3IDwgc2hpam91dG9ra2lcIDsKK+a9nOWLouWKmyA8IHNlbnNlaXJ5b2t1XCA7CivlhaznmoTmibbliqkgPCBrb3V0ZWtpZnVqb1wgOwor5ZCI5oiQ5qi56ISCIDwgZ291c2VpanVzaGlcIDsKK+WJsuizpuizvOiytyA8IGthcHB1a291YmFpXCA7Civkv53lgaXlrqQgPCBob2tlbnNoaXRzdVwgOwor5bqD5ZGK5paZIDwga291a29rdXJ5b3VcIDsKK+mAn+WKm+W6piA8IHNva3VyeW9rdWRvXCA7Civnm4bmj5Dnga8gPCBib25kam91Y2hpblwgOwor5pyq5p2l5oyH5ZCRIDwgbWlyYWlzaGlrb3VcIDsKK+iHqueUseaUvuS7uyA8IGppeXV1aG91bmluXCA7Civoh6rou6LlkajmnJ8gPCBqaXRlbnNodXVraVwgOwor6IG056We57WMIDwgY2hvdXNoaW5rZWlcIDsKK+i2heWkp+WbvSA8IGNob3V0YWlrb2t1XCA7Civlh7rniYjlhYMgPCBzaHVwcGFubW90b1wgOwor6aas6bm/5YqbIDwgYmFrYWRqaWthcmFcIDsKK+iHquW3seS4u+W8tSA8IGppa29zaHVjaG91XCA7CivmmZLogIUgPCBzYXJhc2hpbW9ub1wgOwor6Zm45Y2K55CDIDwgcmlrdWhhbmt5dXVcIDsKK+WNg+iogOS4h+iqniA8IHNlbmdlbmJhbmdvXCA7CivntbHnjofogIUgPCB0b3Vzb3RzdXNoYVwgOwor5YWs5YWx5b+DIDwga291a3lvdXNoaW5cIDsKK+W+kuatqeertui1sCA8IHRvaG9reW91c291XCA7CivopqrlloToqablkIggPCBzaGluemVuamlhaVwgOwor56qS57Sg5Zu65a6aIDwgY2hpc3Nva290ZWlcIDsKK+S4reWFsei7jSA8IGNodXVreW91Z3VuXCA7CivmvILnmb3liaQgPCBoeW91aGFrdXphaVwgOwor5Y+O5YWl5rqQIDwgc2h1dW55dXVnZW5cIDsKK+a1t+S4iuS/nemZuiA8IGthaWpvdWhva2VuXCA7Civmrr/mp5jpoqggPCB0b25vc2FtYWZ1dVwgOwor5b+D6YWN5LqLIDwgc2hpbnBhaWdvdG9cIDsKK+mjm+ihjOeUsuadvyA8IGhpa291a291YmFuXCA7CivmjIflsI7kuLvkuosgPCBzaGlkb3VzaHVqaVwgOwor55u45LqS6YqA6KGMIDwgc291Z29naW5rb3VcIDsKK+i7jeWPuOS7pOmDqCA8IGd1bnNoaXJlaWJ1XCA7Civoq7jkuovkuIfnq68gPCBzaG9qaWJhbnRhblwgOwor5Yq054G95L+d6Zm6IDwgcm91c2FpaG9rZW5cIDsKK+WkqumZveeGsSA8IHRhaXlvdW5ldHN1XCA7CivliKTmsbrmlocgPCBoYW5rZXRzdWJ1blwgOwor5pmC6Lyq6YeR5YmbIDwgamlyaW5rb25nb3VcIDsKK+aEj+awl+mKt+ayiCA8IGlraXNob3VjaGluXCA7Civkv6Hku7DnmoQgPCBzaGlua291dGVraVwgOwor6Iad5ouN5a2QIDwgaGl6YWJ5b3VzaGlcIDsKK+mWoueojuWbnumBvyA8IGthbnplaWthaWhpXCA7Civnm7Lnm67nmoQgPCBtb3Vtb2t1dGVraVwgOwor56We6YCa5YqbIDwgamludHN1dXJpa2lcIDsKK+WFseWSjOS4u+e+qSA8IGt5b3V3YXNodWdpXCA7CivmgZDlprvnl4UgPCBreW91c2FpYnlvdVwgOwor6Zi/5aSa56aP6aKo6YKqIDwgb3RhZnVrdWthemVcIDsKK+S6iOmYsuaIpuS6iSA8IHlvYm91c2Vuc291XCA7CivphbjmgKflnJ/lo4wgPCBzYW5zZWlkb2pvdVwgOwor5b+g5a6f5bqmIDwgY2h1dWppdHN1ZG9cIDsKK+S/oeS7u+eKtiA8IHNoaW4nJ25pbmpvdVwgOwor5Lq66Lqr5L+d6K23IDwgamluc2hpbmhvZ29cIDsKK+S4reafsSA8IG5ha2FiYXNoaXJhXCA7CivmlrDlj4LogIUgPCBzaGluemFubW9ub1wgOwor5bm06YeR5L+d6Zm6IDwgbmVua2luaG9rZW5cIDsKK+aMh+WQkeiogOiqniA8IHNoaWtvdWdlbmdvXCA7Civlt6Hmn7vpg6jplbcgPCBqdW5zYWJ1Y2hvdVwgOwor55yf54qv5Lq6IDwgc2hpbmhhbicnbmluXCA7Civni7jniLogPCB0YW51a2lqaWppaVwgOwor5L+d6Ki85pyf6ZaTIDwgaG9zaG91a2lrYW5cIDsKK+S4jeazleebo+emgSA8IGZ1aG91a2Fua2luXCA7CivlvqHoi6blirTmp5ggPCBnb2t1cm91c2FtYVwgOwor6K2m5a+f54qsIDwga2Vpc2F0c3VrZW5cIDsKK+iHquayu+Wkp+iHoyA8IGppY2hpZGFpamluXCA7Civnq4vkvZPkuqTlt64gPCByaXR0YWlrb3VzYVwgOwor56uc6aCt6JuH5bC+IDwgcnl1dXRvdWRhYmlcIDsKK+WFhembu+acn+mWkyA8IGp1dWRlbmtpa2FuXCA7Civlj6LmmYLpm6ggPCBtdXJhc2hpZ3VyZVwgOwor5rW36aOf5rSeIDwga2Fpc2hva3Vkb3VcIDsKK+iomOaGtuWqkuS9kyA8IGtpb2t1YmFpdGFpXCA7Civlq6HlrqQgPCBjaGFrdXNoaXRzdVwgOwor5Y+C5YiX6ICFIDwgc2FucmV0c3VzaGFcIDsKK+mkiuitt+aVmeirrSA8IHlvdWdva3lvdXl1XCA7CivkurrmnKzkuLvnvqkgPCBqaW5wb25zaHVnaVwgOwor5rW35rSL5oqV5qOEIDwga2FpeW91dG91a2lcIDsKK+eUn+eJqeWcjyA8IHNlaWJ1dHN1a2VuXCA7CivkvpvntablnLAgPCBreW91a3l1dWNoaVwgOwor5bmy5riJ57ieIDwga2Fuc2hvdWppbWFcIDsKK+eLrOWJteeahCA8IGRva3Vzb3V0ZWtpXCA7CivkuI3pmo/mhI/pgYvli5UgPCBmdXp1aWl1bmRvdVwgOwor5ZKM5q2M5bGx55yMIDwgd2FrYXlhbWFrZW5cIDsKK+WkqumZvembu+azoiA8IHRhaXlvdWRlbnBhXCA7CivnkIbnp5HlpKflraYgPCByaWthZGFpZ2FrdVwgOwor5p+T6Imy5L2TIDwgc2Vuc2hva3V0YWlcIDsKK+W6p+mgremvqCA8IHphdG91a3VqaXJhXCA7Civov5HooZvluKvlm6MgPCBrb25vZXNoaWRhblwgOwor5LiA6KGj5biv5rC0IDwgaWNoaWl0YWlzdWlcIDsKK+izh+acrOS4u+e+qSA8IHNoaWhvbnNodWdpXCA7Civni5DnjL8gPCBraXRzdW5lemFydVwgOwor6Ieq55Sx57WQ5amaIDwgaml5dXVrZWtrb25cIDsKK+W/hemgiOenkeebriA8IGhpc3N1a2Ftb2t1XCA7Civov5Hku6PkuLvnvqkgPCBraW5kYWlzaHVnaVwgOwor5p2x5YyXIDwgaGlnYXNoaWtpdGFcIDsKK+WuiOitt+WkqeS9vyA8IHNodWdvdGVuc2hpXCA7Civml6XmnKzoqp7mloflrZcgPCBuaWhvbmdvbW9qaVwgOwor5L2c5qWt6YOo5LyaIDwgc2FneW91YnVrYWlcIDsKK+mDveW4guWGjeeUnyA8IHRvc2hpc2Fpc2VpXCA7Civnm67nmoToq5YgPCBtb2t1dGVraXJvblwgOwor55yB55Wl5pmCIDwgc2hvdXJ5YWt1amlcIDsKK+S4g+aciCA8IHNoaWNoaWdhdHN1XCA7CivlubznlJ/lmajlrpggPCB5b3VzZWlraWthblwgOwor5b6h55So57WE5ZCIIDwgZ295b3VrdW1pYWlcIDsKK+i7jeS6i+a8lOe/kiA8IGd1bmppZW5zaHV1XCA7Civnn7Pngq3mrrsgPCBzZWtpdGFuZ2FyYVwgOwor5YiG6KOC5oCnIDwgYnVucmV0c3VzZWlcIDsKK+efree4ruW9oiA8IHRhbnNodWt1a2VpXCA7CivkurrpgZPkuLvnvqkgPCBqaW5kb3VzaHVnaVwgOwor5YmN5Y+y5pmC5LujIDwgemVuc2hpamlkYWlcIDsKK+a1t+S4iuWwgemOliA8IGthaWpvdWZ1dXNhXCA7CivmnInogbfogIUgPCB5dXVzaG9rdXNoYVwgOwor5oSP5ZGz5rex6ZW3IDwgaW1pc2hpbmNob3VcIDsKK+S4gOaYlCA8IGhpdG9tdWthc2hpXCA7CivopqrlkozlipsgPCBzaGlud2FyeW9rdVwgOwor5Lqk6YCa6YGV5Y+NIDwga291dHN1dWloYW5cIDsKK+WFiOOAheaciCA8IHNlbnNlbmdldHN1XCA7Civlm5vljYHlhavmiYsgPCB5b25qdXVoYXR0ZVwgOwor5omL5be75a+/5Y+4IDwgdGVtYWtpenVzaGlcIDsKK+acieS9k+eJqSA8IHl1dXRhaWJ1dHN1XCA7CivmnbHlgbQgPCBoaWdhc2hpZ2F3YVwgOwor55+t57Wh55qEIDwgdGFucmFrdXRla2lcIDsKK+WFrOmWi+ism+W6pyA8IGtvdWthaWtvdXphXCA7CivniYfoqIDpmrvlj6UgPCBoZW5nZW5zZWtrdVwgOwor6a2F5Yqb55qEIDwgbWlyeW9rdXRla2lcIDsKK+WMluWtpuW8jyA8IGthZ2FrdXNoaWtpXCA7CivkuIDmkq4gPCBoaXRvdHN1bWFtaVwgOwor5aSq6Zm95pelIDwgdGFpeW91aml0c3VcIDsKK+mrmOmWoueojuWMliA8IGtvdWthbnplaWthXCA7CivpgYvpgIHkvJrnpL4gPCB1bnNvdWdhaXNoYVwgOwor5p2x5a6u5b6h5omAIDwgdG91Z3V1Z29zaG9cIDsKK+W7tua7nuWIqeaBryA8IGVudGFpcmlzb2t1XCA7Civph47nkIPnhrEgPCB5YWt5dXVuZXRzdVwgOwor54Gr54G96K2m5aCxIDwga2FzYWlrZWlob3VcIDsKK+mjvuS7mCA8IGthemFyaXRzdWtlXCA7Civnt4/mjIfmj67lrpggPCBzb3VzaGlraWthblwgOwor5pS+6YCB5pmC6ZaTIDwgaG91c291amlrYW5cIDsKK+eGseawl+eQgyA8IG5ldHN1a2lreXV1XCA7Civnqbrmg7PlipsgPCBrdXVzb3VyeW9rdVwgOwor5pyJ5a6z54Sh55uKIDwgeXV1Z2FpbXVla2lcIDsKK+mdmeWyoeecjCA8IHNoaXp1b2tha2VuXCA7CivlqabkurrllY/poYwgPCBmdWppbm1vbmRhaVwgOwor5pm06ICV6Zuo6KqtIDwgc2Vpa291dWRva3VcIDsKK+WPjemAhuS6uiA8IGhhbmd5YWt1bmluXCA7Civmn5Ppq6rliaQgPCBzZW5wYXRzdXphaVwgOwor5YWo6Lqr55eFIDwgemVuc2hpbmJ5b3VcIDsKK+S4jeaWh+aGsuazlSA8IGZ1YnVua2VucG91XCA7CivohbnoqbHooZMgPCBmdWt1d2FqdXRzdVwgOwor5LiA5a+45rOV5birIDwgaXNzdW5ib3VzaGlcIDsKK+WPr+iDveWLleipniA8IGthbm91ZG91c2hpXCA7CivmtYHph4/oqIggPCByeXV1cnlvdWtlaVwgOwor5a6M5YWo6ZuH55SoIDwga2FuemVua295b3VcIDsKK+e3mue5lOmdoiA8IHNlbnNoaWtpbWVuXCA7CivlrozntZDnt6ggPCBrYW5rZXRzdWhlblwgOwor5Ymv6by76IWU54KOIDwgZnVrdWJpa3V1ZW5cIDsKK+WtpueUn+iovCA8IGdha3VzZWlzaG91XCA7CivpgKDluaPlsYAgPCB6b3VoZWlreW9rdVwgOwor6Kqs5piO5pu4IDwgc2V0c3VtZWlzaG9cIDsKK+iHque1pueOhyA8IGppa3l1dXJpdHN1XCA7CivlpJrlhYPmlL7pgIEgPCB0YWdlbmhvdXNvdVwgOwor5omT54mp5birIDwgdWNoaW1vbm9zaGlcIDsKK+awl+aBr+WlhOWlhCA8IGtpc29rdWVuJydlblwgOwor5oOo5q666ICFIDwgemFuc2F0c3VzaGFcIDsKK+ejr+W3vuedgCA8IGlzb2dpbmNoYWt1XCA7Civph4jov6blpoLmnaUgPCBzaGFrYW55b3JhaVwgOwor5LqI57SE5ZCN57C/IDwgeW95YWt1bWVpYm9cIDsKK+iovOS6uuW4rSA8IHNob3VuaW5zZWtpXCA7Civlq6Hlh7ogPCBjaGFrdXNodXRzdVwgOwor5LiN6LK35ZCM55ufIDwgZnViYWlkb3VtZWlcIDsKK+S4i+W/gyA8IHNoaXRhZ29rb3JvXCA7Civoi6Xnmb3pq6ogPCB3YWthc2hpcmFnYVwgOwor6Z2e6LK35ZCM55ufIDwgaGliYWlkb3VtZWlcIDsKK+aVsOWtpueahCA8IHN1dWdha3V0ZWtpXCA7Civnm7Tlhobmn7EgPCBjaG9rdWVuY2h1dVwgOwor6Kqs5piO5paHIDwgc2V0c3VtZWlidW5cIDsKK+ebuOWvvuaVrOiqniA8IHNvdXRhaWtlaWdvXCA7CivntYzmuIjnibnljLogPCBrZWl6YWl0b2trdVwgOwor5Lu75oSP5Zuj5L2TIDwgbmluJydpZGFudGFpXCA7CivmsLTnlKPniakgPCBzdWlzYW5idXRzdVwgOwor5o6l5pW156e75YuVIDwgc2V0dGVraWlkb3VcIDsKK+aVmeWJh+acrCA8IGt5b3Vzb2t1Ym9uXCA7CivpsKXlr6HlraTni6wgPCBrYW5rYWtvZG9rdVwgOwor5LmZ5aWz5b+DIDwgb3RvbWVnb2tvcm9cIDsKK+ebuOWvvuWjsuiytyA8IGFpdGFpYmFpYmFpXCA7CivnhKHkurrlt6XloLQgPCBtdWppbmtvdWpvdVwgOwor5oim5Yud5Zu9IDwgc2Vuc2hvdWtva3VcIDsKK+WNl+WMl+acnSA8IG5hbmJva3VjaG91XCA7CivlpI/ooaMgPCBuYXRzdWdvcm9tb1wgOwor5bm75oOz5puyIDwgZ2Vuc291a3lva3VcIDsKK+S4jeaPm+e0meW5oyA8IGZ1a2Fuc2hpaGVpXCA7Civml4XoiIjooYwgPCB0YWJpa291Z3lvdVwgOwor55u45LmX5L2c55SoIDwgc291am91c2F5b3VcIDsKK+S6iOeul+S4jei2syA8IHlvc2FuZnVzb2t1XCA7CivosYbpm7vnkIMgPCBtYW1lZGVua3l1dVwgOwor6Kej6Kqs5pu4IDwga2Fpc2V0c3VzaG9cIDsKK+iWrOeQhuS9nOeUqCA8IHlha3VyaXNheW91XCA7Civnv7zmiYvnm64gPCB5b2t1c2h1bW9rdVwgOwor5ama57SE6ICFIDwga29uJyd5YWt1c2hhXCA7Civngrrmm7/nrqHnkIYgPCBrYXdhc2VrYW5yaVwgOwor6YOh5b255omAIDwgZ3VuJyd5YWt1c2hvXCA7Civnn6XorZjlsaQgPCBjaGlzaGlraXNvdVwgOwor5LqL5YmN5Y2U6K2wIDwgamlzZW5reW91Z2lcIDsKK+WOmumhlOeEoeaBpSA8IGtvdWdhbm11Y2hpXCA7Civmkp7mnKjprqsgPCBzaHVtb2t1emFtZVwgOwor56G86YW45pyrIDwgaG91c2FubWF0c3VcIDsKK+WuieWFqOijhee9riA8IGFuemVuc291Y2hpXCA7CivlppbooZPogIUgPCB5b3VqdXRzdXNoYVwgOwor5L2Z55m96aCBIDwgeW9oYWt1cGVlamlcIDsKK+e1seS4gOeahCA8IHRvdWl0c3V0ZWtpXCA7CivnqbrmsJfmhJ/mn5MgPCBrdXVraWthbnNlblwgOwor5rC06YGT5bel5LqLIDwgc3VpZG91a291amlcIDsKK+S4gOe0meWNiumKrSA8IGlzc2hpaGFuc2VuXCA7Civlj43lsITpgYvli5UgPCBoYW5zaGF1bmRvdVwgOwor6Lqr6Zqc6ICFIDwgc2hpbnNob3VzaGFcIDsKK+mjn+WNk+WhqSA8IHNob2t1dGFrdWVuXCA7CivlhavlrZfpq60gPCBoYWNoaWppaGlnZVwgOwor5b6p5rS756WtIDwgZnVra2F0c3VzYWlcIDsKK+S4u+eUo+eJqSA8IHNodXNhbmJ1dHN1XCA7Civnvo7ooZPnmoQgPCBiaWp1dHN1dGVraVwgOwor5aGp6aGe5rq25rayIDwgZW5ydWl5b3Vla2lcIDsKK+ePjeePvuixoSA8IGNoaW5nZW5zaG91XCA7CivkuInnqJzpj6EgPCBzYW5yeW91a3lvdVwgOwor5aSW5Lq66YOo6ZqKIDwgZ2FpamluYnV0YWlcIDsKK+aLnemHkeS4u+e+qSA8IGhhaWtpbnNodWdpXCA7CivlpKfpmbjmo5ogPCB0YWlyaWt1ZGFuYVwgOwor5q6/5qeY6Iq4IDwgdG9ub3NhbWFnZWlcIDsKK+a1t+mjn+W0liA8IGthaXNob2t1Z2FpXCA7CivlhYPnpoToopYgPCBnZW5yb2t1c29kZVwgOwor55Ww5L2T5ZCM5b+DIDwgaXRhaWRvdXNoaW5cIDsKK+S5l+aVsOWKueaenCA8IGpvdXN1dWtvdWthXCA7Civlhajnm5vmmYLku6MgPCB6ZW5zZWlqaWRhaVwgOwor5paH5pWZ5pePIDwgYnVua3lvdXpva3VcIDsKK+mdouWQkeS4jeiDjCA8IG1lbmtvdWZ1aGFpXCA7CivlubPlkozntq3mjIHou40gPCBoZWl3YWlqaWd1blwgOwor5rm/5bqm6KiIIDwgc2hpdHN1ZG9rZWlcIDsKK+WPrOmbhuiAhSA8IHNob3VzaHV1c2hhXCA7CivnqbrnkIbnqbroq5YgPCBrdXVyaWt1dXJvblwgOwor5YWr5qW15ouzIDwgaGFra3lva3VrZW5cIDsKK+S/oeS7sOW/gyA8IHNoaW5rb3VzaGluXCA7CivkurrkuIDlgI0gPCBoaXRvaWNoaWJhaVwgOwor5ZCI6KGG5Zu9IDwgZ2Fzc2h1dWtva3VcIDsKK+apn+mWouWupCA8IGtpa2Fuc2hpdHN1XCA7CivpnZ7luLjpmo7mrrUgPCBoaWpvdWthaWRhblwgOwor5YK355eN6LuN5Lq6IDwgc2hvdWlndW5qaW5cIDsKK+WGt+WNtOa2siA8IHJlaWt5YWt1ZWtpXCA7CivmvIHnjbLpq5ggPCBneW9rYWt1ZGFrYVwgOwor5YWs55So54mpIDwga291eW91YnV0c3VcIDsKK+WNmOeZuumKgyA8IHRhbnBhdHN1anV1XCA7CivkuI3ll5wgPCBidXRhc2hpbmFtaVwgOwor5pyI6LOm6LKp5aOyIDwgZ2VwcHVoYW5iYWlcIDsKK+S4h+S4luS4gOezuyA8IGJhbnNlaWlra2VpXCA7CivnrKzkuozpg6jplbcgPCBkYWluaWJ1Y2hvdVwgOwor6ZuA6JyCIDwgc3V6dW1lYmFjaGlcIDsKK+ihjOWEgOS9nOazlSA8IGd5b3VnaXNhaG91XCA7Civph43liqDnrpfnqI4gPCBqdXVrYXNhbnplaVwgOwor5Ya35Y205rC0IDwgcmVpa3lha3VzdWlcIDsKK+eMrueri+ihqCA8IGtvbmRhdGVoeW91XCA7CivkuIDlv4PkuI3kubEgPCBpc3NoaW5mdXJhblwgOwor6LuN5LqL6KOB5YikIDwgZ3VuamlzYWliYW5cIDsKK+iLpeiNieiJsiA8IHdha2FrdXNhaXJvXCA7CivnhafmmI7lmajlhbcgPCBzaG91bWVpa2lndVwgOwor5LiJ5Zu95LiAIDwgc2FuZ29rdWljaGlcIDsKK+edo+S/g+eKtiA8IHRva3Vzb2t1am91XCA7CivlsY3pmYDmnpfnjosgPCBzaGlkYXJpbicnb3VcIDsKK+S7ruWPl+WPliA8IGthcml1a2V0b3JpXCA7CivpgY7ljrvlrozkuoYgPCBrYWtva2FucnlvdVwgOwor5oim5b6M5qyn5beeIDwgc2VuZ29vdXNodXVcIDsKK+iii+Wwj+i3ryA8IGZ1a3Vyb2tvdWppXCA7Civorablr5/lrpggPCBrZWlzYXRzdWthblwgOwor6aaW6ISz5Lya6K2wIDwgc2h1bm91a2FpZ2lcIDsKK+WutuW6reaWmeeQhiA8IGthdGVpcnlvdXJpXCA7Civml6XmnKzpioDooYwgPCBuaWhvbmdpbmtvdVwgOwor6Ieq54S25b6LIDwgc2hpemVucml0c3VcIDsKK+iBt+WLmee1piA8IHNob2t1bXVreXV1XCA7CivpgaDkuqTov5HmlLsgPCBlbmtvdWtpbmtvdVwgOwor5peL5Zue6YGL5YuVIDwgc2Vua2FpdW5kb3VcIDsKK+eZgumkiuS4rSA8IHJ5b3V5b3VjaHV1XCA7CivlkIjmiJDniakgPCBnb3VzZWlidXRzdVwgOwor5biw5Zu95a2Q5aWzIDwga2lrb2t1c2hpam9cIDsKK+S4ieihjOWNiiA8IG1pa3VkYXJpaGFuXCA7CivooYzmlL/lraYgPCBneW91c2VpZ2FrdVwgOwor5a6f6KGM5YqbIDwgamlra291cnlva3VcIDsKK+mVt+eBq+mJoiA8IG5hZ2FoaWJhY2hpXCA7Civpm4zpm4Tmt5jmsbAgPCBzaGl5dXV0b3V0YVwgOwor5rW36aOf5Y+wIDwga2Fpc2hva3VkYWlcIDsKK+mDteS+v+eJqSA8IHl1dWJpbmJ1dHN1XCA7CivpioDmnKzkvY3liLYgPCBnaW5ob24nJ2lzZWlcIDsKK+epuuawl+aelSA8IGt1dWtpbWFrdXJhXCA7Civlpajlrabph5EgPCBzaG91Z2FrdWtpblwgOwor57WE6aCtIDwga3VtaWdhc2hpcmFcIDsKK+iHqualreiHquW+lyA8IGppZ291aml0b2t1XCA7CivlhaznlJ/mtLsgPCBrb3VzZWlrYXRzdVwgOwor6YGu6JS954mpIDwgc2hhaGVpYnV0c3VcIDsKK+S4u+agvOijnOiqniA8IHNodWtha3Vob2dvXCA7CivntbnnuZTniakgPCBraW51b3JpbW9ub1wgOwor6Iq46KGT6KuWIDwgZ2VpanV0c3Vyb25cIDsKK+WCmOW9ouWZqOWumCA8IHNhbmtlaWtpa2FuXCA7CivolqzlirnniakgPCB5YWtrb3VidXRzdVwgOwor57eR6JmrIDwgbWlkb3JpbXVzaGlcIDsKK+mbu+WMluijveWTgSA8IGRlbmthc2VpaGluXCA7Civluq3ku5XkuosgPCBuaXdhc2hpZ290b1wgOwor6LOH55Sj5L6h5YCkIDwgc2hpc2Fua2FjaGlcIDsKK+aCquizquWMliA8IGFrdXNoaXRzdWthXCA7CivkuK3lpK7nq7bppqwgPCBjaHV1b3VrZWliYVwgOwor55+l6K2Y5Lq6IDwgY2hpc2hpa2lqaW5cIDsKK+i1pOWtl+iyoeaUvyA8IGFrYWppemFpc2VpXCA7Civnmb3lhoXpmpwgPCBoYWt1bmFpc2hvdVwgOwor5pS/5rK75Lqh5ZG9IDwgc2Vpamlib3VtZWlcIDsKK+S6lOWNgeW5tOelrSA8IGdvanV1bmVuc2FpXCA7Civpgbrml4/lubTph5EgPCBpem9rdW5lbmtpblwgOwor5Lq65bel5qCE6aSKIDwgamlua291ZWl5b3VcIDsKK+aTrOWPpOWFuOeahCA8IGdpa290ZW50ZWtpXCA7Civmpb3lpKnnmoQgPCByYWt1dGVudGVraVwgOwor6Zu75rCX5Lya56S+IDwgZGVua2lnYWlzaGFcIDsKK+awl+maj+awl+WEmCA8IGtpenVpa2ltYW1hXCA7CivliKXli5jlrpogPCBiZXRzdWthbmpvdVwgOwor6YeR5p2T5a2QIDwga2FuYWpha3VzaGlcIDsKK+mVt+Wkp+aBryA8IGNob3V0YWlzb2t1XCA7CivogbTlj5bmlpkgPCBjaG91c2h1cnlvdVwgOwor54Sh5Y+N5YuV6YqDIDwgbXVoYW5kb3VqdXVcIDsKK+mBoOW/g+WIhumboiA8IGVuc2hpbmJ1bnJpXCA7CivloLTlpJbppqzliLggPCBqb3VnYWliYWtlblwgOwor6Z2S5bm05pmC5LujIDwgc2VpbmVuamlkYWlcIDsKK+mguOmdmeiEiCA8IGtlaWpvdW15YWt1XCA7CivmvIHnjbLph48gPCBneW9rYWt1cnlvdVwgOwor6Kqe5a2m5YqbIDwgZ29nYWt1cnlva3VcIDsKK+a6luWCmeWupCA8IGp1bmJpc2hpdHN1XCA7CivkuK3lubTlopcgPCBjaHV1ZG9zaGltYVwgOwor6Ieq55Sx5ZWP6aGMIDwgaml5dXVtb25kYWlcIDsKK+a8q+eUu+mbkeiqjCA8IG1hbmdhemFzc2hpXCA7CivkupzpiZvkuK3mr5IgPCBhZW5jaHV1ZG9rdVwgOwor6IOM562L5YqbIDwgaGFpa2lucnlva3VcIDsKK+aJgOacieeJqSA8IHNob3l1dWJ1dHN1XCA7CivnpZblhYjkvJ3mnaUgPCBzb3NlbmRlbnJhaVwgOwor55Sj5Zyf56WeIDwgdWJ1c3VuYWdhbWlcIDsKK+mbquekqyA8IHl1a2l0c3VidXRlXCA7CivmmpfotaToibIgPCBhbnNla2lzaG9rdVwgOwor5LuV56uL54mpIDwgc2hpdGF0ZW1vbm9cIDsKK+S4gOWFmuaUr+mFjSA8IGl0dG91c2hpaGFpXCA7Civml5fmqJkgPCBoYXRhamlydXNoaVwgOwor5aSi54++IDwgeXVtZXV0c3V0c3VcIDsKK+S4g+WbnuW/jCA8IHNoaWNoaWthaWtpXCA7CivkuLvoprPkuLvnvqkgPCBzaHVrYW5zaHVnaVwgOwor5rq26Kej54axIDwgeW91a2FpbmV0c3VcIDsKK+exs+WNgeeykiA8IGtvbWVqdXVyeXV1XCA7CivlkbzlkLjlmajns7sgPCBrb2t5dXVraWtlaVwgOwor54m55rOo5ZOBIDwgdG9rdWNodXVoaW5cIDsKK+mbm+elrSA8IGhpbmFtYXRzdXJpXCA7Civngrrmm7/mipXmqZ8gPCBrYXdhc2V0b3VraVwgOwor5LiA55+l5Y2K6KejIDwgaXRjaGloYW5rYWlcIDsKK+S4jeWumuWGoOipniA8IGZ1dGVpa2Fuc2hpXCA7Civku6PorbDmlL/kvZMgPCBkYWlnaXNlaXRhaVwgOwor5bmz5ZKM5pS75YuiIDwgaGVpd2Frb3VzZWlcIDsKK+S9juS+oeagvOWMliA8IHRlaWtha2FrdWthXCA7Civlj6TmlrDogZ4gPCBmdXJ1c2hpbmJ1blwgOwor6YWN6YGU5Lq6IDwgaGFpdGF0c3VuaW5cIDsKK+S6rOS6uuW9oiA8IGt5b3VuaW5neW91XCA7CivogpjmjpvmpIXlrZAgPCBoaWppa2FrZWlzdVwgOwor5YWs5YuZ54G95a6zIDwga291bXVzYWlnYWlcIDsKK+aZr+awl+W+queSsCA8IGtlaWtpanVua2FuXCA7CivplqLkv4Lms5Xopo8gPCBrYW5rZWlob3VraVwgOwor6LOA6Kme5Lqk5o+bIDwgZ2FzaGlrb3VrYW5cIDsKK+iAleWcsOaVtOeQhiA8IGtvdWNoaXNlaXJpXCA7CivlrozntZDmlocgPCBrYW5rZXRzdWJ1blwgOwor6KGo6KOP5LiA5L2TIDwgaHlvdXJpaXR0YWlcIDsKK+WPjeWvvuiJsiA8IGhhbnRhaXNob2t1XCA7CivllYblk4HlraYgPCBzaG91aGluZ2FrdVwgOwor5aW06Zq36Kej5pS+IDwgZG9yZWlrYWlob3VcIDsKK+WFpeWwhOinkiA8IG55dXVzaGFrYWt1XCA7CivmtojpmLLluoEgPCBzaG91Ym91Y2hvdVwgOwor6Zi/5aSa56aP6LGGIDwgb3RhZnVrdW1hbWVcIDsKK+Wlh+m6l+aJgCA8IGtpcmVpZG9rb3JvXCA7CivlpbPml7EgPCBvbicnbmFoaWRlcmlcIDsKK+WxseWQueiJsiA8IHlhbWFidWtpaXJvXCA7CivkvIHmpa3mlbTlgpkgPCBraWd5b3VzZWliaVwgOwor6LuN5LqL6KGM5YuVIDwgZ3Vuamlrb3Vkb3VcIDsKK+aJk+aSg+eOhyA8IGRhZ2VraXJpdHN1XCA7CivlnLDmlrnoh6rmsrsgPCBjaGlob3VqaWNoaVwgOwor6KuL5rGC6aGNIDwgc2Vpa3l1dWdha3VcIDsKK+eZvuW5tOelrSA8IGh5YWt1bmVuc2FpXCA7CivkuJbkv5fkuLvnvqkgPCBzZXpva3VzaHVnaVwgOwor6auY54Kt57Sg6Yu8IDwga291dGFuc29rb3VcIDsKK+aKkeeVmeiAhSA8IHlva3VyeXV1c2hhXCA7Civpo5/pgKPmmJ8gPCBzaG9rdXJlbnNlaVwgOwor6JC95pyt5YCkIDwgcmFrdXNhdHN1bmVcIDsKK+iHqueEtuWKmyA8IHNoaXplbnJ5b2t1XCA7CivmnInmqZ/ogqXmlpkgPCB5dXVraWhpcnlvdVwgOwor56eY5pu45a6kIDwgaGlzaG9zaGl0c3VcIDsKK+WNg+eni+alvSA8IHNlbnNodXVyYWt1XCA7Civmr5TkvovphY3liIYgPCBoaXJlaWhhaWJ1blwgOwor5o6i56m25b+DIDwgdGFua3l1dXNoaW5cIDsKK+WPjeWvvumBi+WLlSA8IGhhbnRhaXVuZG91XCA7Civmt7vku5jmm7jpoZ4gPCB0ZW5wdXNob3J1aVwgOwor5oGL5oSb6YGK5oivIDwgcmVuJydhaXl1dWdpXCA7Civlia/npL7plbcgPCBmdWt1c2hhY2hvdVwgOwor5oqV5bCE5Y6f55CGIDwgdG91c2hhZ2VucmlcIDsKK+Wkp+iogOWjruiqniA8IHRhaWdlbnNvdWdvXCA7CivmnIjkvovkvJogPCBnZXRzdXJlaWthaVwgOwor5pWw5pel6ZaTIDwgc3V1aml0c3VrYW5cIDsKK+WRveWQjeW8jyA8IG1laW1laXNoaWtpXCA7CivmjIflsI7lipsgPCBzaGlkb3VyeW9rdVwgOwor5oSf6Kaa55qEIDwga2Fua2FrdXRla2lcIDsKK+mHkeacrOS9jeWItiA8IGtpbmhvbicnaXNlaVwgOwor6YCg6Kqe5oiQ5YiGIDwgem91Z29zZWlidW5cIDsKK+WGjemWi+eZuiA8IHNhaWthaWhhdHN1XCA7CivlhaXlrabpm6MgPCBueXV1Z2FrdW5hblwgOwor5YiG5oqY5a2mIDwgYnVuc2VraWdha3VcIDsKK+eZvuenkei+nuWFuCA8IGh5YWtrYWppdGVuXCA7Civoi6XovKnogIUgPCBqYWt1aGFpbW9ub1wgOwor5LiH5Luj5LiN5piTIDwgYmFuZGFpZnVla2lcIDsKK+W5heWkieiqvyA8IGhhYmFoZW5jaG91XCA7CivljbHpmbrop5LluqYgPCBraWtlbmtha3Vkb1wgOwor5YyW5a2m5YW15ZmoIDwga2FnYWt1aGVpa2lcIDsKK+Wls+W/gyA8IG9uJyduYWdva29yb1wgOwor5bCP5oOR5pifIDwgc2hvdXdha3VzZWlcIDsKK+a8ouWtl+WItumZkCA8IGthbmppc2VpZ2VuXCA7CivlubTlip/liLbluqYgPCBuZW5rb3VzZWlkb1wgOwor5Lq654mp5YOPIDwgamluYnV0c3V6b3VcIDsKK+i6gemsseeXhSA8IHNvdXV0c3VieW91XCA7Civnm7TovLjlhaUgPCBjaG9rdXl1bnl1dVwgOwor5L+D6YCy5YmkIDwgc29rdXNoaW56YWlcIDsKK+a1t+W6leeBq+WxsSA8IGthaXRlaWthemFuXCA7CivpmpTpnbTmjrvnl5IgPCBrYWtrYXNvdXlvdVwgOwor5o+h6a6oIDwgbmlnaXJpenVzaGlcIDsKK+m8u+WHuuihgCA8IGJpc2h1a2tldHN1XCA7CivpnZnlv4MgPCBzaGl6dWdva29yb1wgOwor6Z2e5oim6KuW6ICFIDwgaGlzZW5yb25zaGFcIDsKK+aApemAsuWFmiA8IGt5dXVzaGludG91XCA7CivkuIfkuJbkuI3mmJMgPCBiYW5zZWlmdWVraVwgOwor5YaN55Sf57mK57atIDwgc2Fpc2Vpc2VuJydpXCA7CivpgYvou6Lns7vntbEgPCB1bnRlbmtlaXRvdVwgOwor5Lu75oSP5ZCM6KGMIDwgbmluJydpZG91a291XCA7CivpmqPnlLogPCB0b25hcmltYWNoaVwgOwor6Ieo5pmC5Zu95LyaIDwgcmluamlrb2trYWlcIDsKK+ippumok+acn+mWkyA8IHNoaWtlbmtpa2FuXCA7Civph5HlqZrlvI8gPCBraW5rb25zaGlraVwgOwor5rqA6Imm6aO+IDwgbWFua2Fuc2hva3VcIDsKK+W5tOWKn+WKoOS/uCA8IG5lbmtvdWthaG91XCA7Civlv5zmj7Tlm6PplbcgPCBvdWVuZGFuY2hvdVwgOwor5aSn5pmmIDwgb290c3Vnb21vcmlcIDsKK+WCjei/t+aDkSA8IGhhdGFtZWl3YWt1XCA7Civou43ljLvnt4/nm6MgPCBndW4nJ2lzb3VrYW5cIDsKK+aYvOmjn+aZgiA8IGNodXVzaG9rdWppXCA7CivoirjooZPnpa0gPCBnZWlqdXRzdXNhaVwgOwor5oWI5ZaE5Zuj5L2TIDwgaml6ZW5kYW50YWlcIDsKK+iHque/kuaZgumWkyA8IGppc2h1dWppa2FuXCA7Civmj6Hpo68gPCBuaWdpcmltZXNoaVwgOwor5Zu95a626KOc5YSfIDwga29ra2Fob3Nob3VcIDsKK+ebm+iAheW/heihsCA8IHNlaWphaGlzc3VpXCA7CivlrabnlJ/mnI0gPCBnYWt1c2VpZnVrdVwgOwor5Lq65paH5Li7576pIDwgamluYnVuc2h1Z2lcIDsKK+mbu+ipseeVquWPtyA8IGRlbndhYmFuZ291XCA7CivlsLHmpa3lnLAgPCBzaHV1Z3lvdWNoaVwgOwor6KGo56S654mpIDwgaHlvdWppYnV0c3VcIDsKK+i7ouWFpeeUnyA8IHRlbicnbnl1dXNlaVwgOwor55CG6KuW5L2T57O7IDwgcmlyb250YWlrZWlcIDsKK+WFpeWtpumHkSA8IG55dXVnYWt1a2luXCA7Civml6XmnKzmtbfmup0gPCBuaWhvbmthaWtvdVwgOwor57WM5bi45Yip55uKIDwga2Vpam91cmlla2lcIDsKK+mdqeaWsOezuyA8IGtha3VzaGlua2VpXCA7CivlvJXosqzovp7ku7sgPCBpbnNla2lqaW5pblwgOwor6Zm95qW157eaIDwgeW91a3lva3VzZW5cIDsKK+WHuua8lOiAhSA8IHNodXRzdWVuc2hhXCA7CivkvJrorbDlrqQgPCBrYWlnaXNoaXRzdVwgOwor5Yem5aWz6Iiq5rW3IDwgc2hvam9rb3VrYWlcIDsKK+mZuOmBi+WxgCA8IHJpa3V1bmt5b2t1XCA7Civov73lvrTph5EgPCB0c3VpY2hvdWtpblwgOwor5q666I+M5YqbIDwgc2Fra2lucnlva3VcIDsKK+aKleWuv+iAhSA8IHRvdXNodWt1c2hhXCA7CivmlrDluoHoiI4gPCBzaGluY2hvdXNoYVwgOwor5Ya35Y205YmkIDwgcmVpa3lha3V6YWlcIDsKK+S4gOi7kuS4gOi7kiA8IGlra2VuJydpa2tlblwgOwor6YGK6Kan5a6iIDwgeXV1cmFua3lha3VcIDsKK+m7hOmHkeiZqyA8IGtvZ2FuZW11c2hpXCA7CivllY/nrZTnhKHnlKggPCBtb25kb3VtdXlvdVwgOwor6YGL5ZG96KuW6ICFIDwgdW5tZWlyb25zaGFcIDsKK+m7kuatu+eXhSA8IGtva3VzaGlieW91XCA7Civpg7Xkvr/lsYAgPCB5dXViaW5reW9rdVwgOwor6I+c56iu5qKF6ZuoIDwgbmF0YW5lZHp1eXVcIDsKK+iqsuWkluaOiOalrSA8IGthZ2FpanVneW91XCA7Civlj43lsITnjocgPCBoYW5zaGFyaXRzdVwgOwor6Zuj5rCR5biw6YKEIDwgbmFubWlua2lrYW5cIDsKK+WBtuWDj+egtOWjiiA8IGd1dXpvdWhha2FpXCA7CivmlZnnmofluoEgPCBreW91a291Y2hvdVwgOwor6Iul6bOl5Li8IDwgd2FrYWRvcmlkb25cIDsKK+aMh+ekuuijhee9riA8IHNoaWppc291Y2hpXCA7CivlronlhajlnLDluK8gPCBhbnplbmNoaXRhaVwgOwor6Ieq5bex6KSH6KO9IDwgamlrb2Z1a3VzZWlcIDsKK+e+juihk+WVhiA8IGJpanV0c3VzaG91XCA7Civku5bkurrooYzlhIAgPCB0YW5pbmd5b3VnaVwgOwor5Yik5a6Y6LSU5bGTIDwgaG91Z2FuYmlpa2lcIDsKK+a7tOWumumHjyA8IHRla2l0ZWlyeW91XCA7CivlnKfmkL7nqbrmsJcgPCBhc3Nha3VrdXVraVwgOwor56We5a2m6ICFIDwgc2hpbmdha3VzaGFcIDsKK+Wvhui8uOWFpSA8IG1pdHN1eXVueXV1XCA7CivlgaXlurfnrqHnkIYgPCBrZW5rb3VrYW5yaVwgOwor6LiP5YiH55WqIDwgZnVtaWtpcmliYW5cIDsKK+ippumok+mjm+ihjCA8IHNoaWtlbmhpa291XCA7CivnlJ/nlKPpgY7libAgPCBzZWlzYW5rYWpvdVwgOwor5YmN5aWP5puyIDwgemVuc291a3lva3VcIDsKK+iAs+m8u+WSveWWieenkSA8IGppYmlpbmtvdWthXCA7CivnlJ/nkIbkvJHmmocgPCBzZWlyaWt5dXVrYVwgOwor5Lqk6Zqb5aC06KOPIDwga291c2Fpam91cmlcIDsKK+ijuOS4gOiyqyA8IGhhZGFrYWlra2FuXCA7CivlpY/ps7Tmm7IgPCBzb3VtZWlreW9rdVwgOwor6LGK6IKl5pys57eaIDwgaG91aGlob25zZW5cIDsKK+engeeUn+a0uyA8IHNoaXNlaWthdHN1XCA7CivntKvoibIgPCBtdXJhc2FraWlyb1wgOwor5Yik5pat6KaP5rqWIDwgaGFuZGFua2lqdW5cIDsKK+eUsumJhOiJpiA8IGtvdXRldHN1a2FuXCA7Civlv4Poh5Pnl4UgPCBzaGluem91YnlvdVwgOwor6Yys6YeR6KGTIDwgcmVua2luanV0c3VcIDsKK+m7kuWGhemanCA8IGtva3VuYWlzaG91XCA7CivmnInorZjogIUgPCB5dXVzaGlraXNoYVwgOwor5bGx5rSl5rOiIDwgeWFtYXRzdW5hbWlcIDsKK+iiluePjeacrCA8IHNodXVjaGluYm9uXCA7CivlpKnos4foi7HpgoEgPCB0ZW5zaGllaW1haVwgOwor5YWI552A6aCGIDwgc2VuY2hha3VqdW5cIDsKK+aKteaKl+mBi+WLlSA8IHRlaWtvdXVuZG91XCA7Civpg7Xkvr/liIfmiYsgPCB5dXViaW5raXR0ZVwgOwor5a6f5ZCN6KmeIDwgaml0c3VtZWlzaGlcIDsKK+mYsumjn+WJpCA8IGJvdXNob2t1emFpXCA7Civlr77np7Dou7ggPCB0YWlzaG91amlrdVwgOwor6L+R5pel54K5IDwga2luaml0c3V0ZW5cIDsKK+eUsOWckumDveW4giA8IGRlbicnZW50b3NoaVwgOwor6KGj5paZ5ZOB5bqXIDwgaXJ5b3VoaW50ZW5cIDsKK+S6jOmDqOWQiOWUsSA8IG5pYnVnYXNzaG91XCA7Civol43mmbbnn7MgPCByYW5zaG91c2VraVwgOwor5aWz5a2Q5L6bIDwgb24nJ25ha29kb21vXCA7CivmsqHpo5/lrZAgPCBtb3NzaG9rdXNoaVwgOwor6Zu75a2Q6aCt6ISzIDwgZGVuc2hpenVub3VcIDsKK+S/rue5leS4rSA8IHNodXV6ZW5jaHV1XCA7CivlibLos6bosqnlo7IgPCBrYXBwdWhhbmJhaVwgOwor6ICz5a2m5ZWPIDwgbWltaWdha3Vtb25cIDsKK+mqqOiRo+i2o+WRsyA8IGtvdHRvdXNodW1pXCA7Civou43lgpnliLbpmZAgPCBndW5iaXNlaWdlblwgOwor6ZW357KS57GzIDwgY2hvdXJ5dXVtYWlcIDsKK+mBi+WLleS4jei2syA8IHVuZG91YnVzb2t1XCA7CivliLbpmZDmvKLlrZcgPCBzZWlnZW5rYW5qaVwgOwor56We5L+h5b+DIDwga2FtaXNoaW5qaW5cIDsKK+eEoeWPjeWLleegsiA8IG11aGFuZG91aG91XCA7CivlpajlrabnlJ8gPCBzaG91Z2FrdXNlaVwgOwor5Y6f5Zug5LiN5piOIDwgZ2VuJydpbmZ1bWVpXCA7CivoprPlhbXlvI8gPCBrYW5wZWlzaGlraVwgOwor6Iul5bm05Z6LIDwgamFrdW5lbmdhdGFcIDsKK+i7veiHquWLlei7iiA8IGtlaWppZG91c2hhXCA7CivpvKDmtbfosZogPCBuZXp1bWlpcnVrYVwgOwor54uQ55aR6YCh5behIDwga29naXNodW5qdW5cIDsKK+mbhuepjeWgtCA8IHNodXVzZWtpam91XCA7CivmjIfkurrlvaIgPCB5dWJpbmluZ3lvdVwgOwor56iL5bqm5ZWP6aGMIDwgdGVpZG9tb25kYWlcIDsKK+imj+WumuaJk+W4rSA8IGtpdGVpZGFzZWtpXCA7Civmm7LoirjluKsgPCBreW9rdWdlaXNoaVwgOwor6bqm57KS6IWrIDwgYmFrdXJ5dXVzaHVcIDsKK+ebrueahOWcsCA8IG1va3V0ZWtpY2hpXCA7CivpoqjntIDntIrkubEgPCBmdXVraWJpbnJhblwgOwor5a2m55Sf5a+uIDwgZ2FrdXNlaXJ5b3VcIDsKK+WQiOaIkOWKmyA8IGdvdXNlaXJ5b2t1XCA7CivluILlj4LkuovkvJogPCBzaGlzYW5qaWthaVwgOwor6KiY5oa26KOF572uIDwga2lva3Vzb3VjaGlcIDsKK+aPkOS+m+WBtCA8IHRlaWt5b3VnYXdhXCA7Civpm6rluocgPCB5dWtpYmlzYXNoaVwgOwor6Zu75rCX5Lyd5bCOIDwgZGVua2lkZW5kb3VcIDsKK+a1t+Wklua0vuWFtSA8IGthaWdhaWhhaGVpXCA7CivlpKnos6bkurrmqKkgPCB0ZW5wdWppbmtlblwgOwor5oe45Z6C6YGL5YuVIDwga2Vuc3VpdW5kb3VcIDsKK+elnuenmOS4u+e+qSA8IHNoaW5waXNodWdpXCA7CivkuZfpmY3lrqIgPCBqb3Vrb3VreWFrdVwgOwor5YaF6Kaq546LIDwgbmFpc2hpbicnbm91XCA7CivpgaDmha7kvJrph4ggPCBlbnJ5b2VzaGFrdVwgOwor57Oe5YuJ5by3IDwga3Vzb2Jlbmt5b3VcIDsKK+aal+WPt+aJi+azlSA8IGFuZ291c2h1aG91XCA7Civnn6Lntpnml6kgPCB5YXRzdWdpYmF5YVwgOwor6ZW36KmxIDwgbmFnYWJhbmFzaGlcIDsKK+mBi+i8uOWkp+iHoyA8IHVuJyd5dWRhaWppblwgOwor6Z2e6KuW55CG55qEIDwgaGlyb25yaXRla2lcIDsKK+WkieabsueCuSA8IGhlbmt5b2t1dGVuXCA7Civlj7Pnv7zlm6PkvZMgPCB1eW9rdWRhbnRhaVwgOwor6ZW35Zub6KeSIDwgbmFnYXNoaWtha3VcIDsKK+imquWIh+awlyA8IHNoaW5zZXRzdWdpXCA7Civkv53lgaXooZvnlJ8gPCBob2tlbicnZWlzZWlcIDsKK+ebl+WTgeaVheiytyA8IHRvdWhpbmtvYmFpXCA7Civlia/npZ7ntYwgPCBmdWt1c2hpbmtlaVwgOwor6JGJ57eR5L2TIDwgeW91cnlva3V0YWlcIDsKK+mdmeatoui7jOmBkyA8IHNlaXNoaWtpZG91XCA7Civmhbbmh4nnvqnlob4gPCBrZWlvdWdpanVrdVwgOwor5b+r5YiA5Lmx6bq7IDwga2FpdG91cmFubWFcIDsKK+iPiuS6uuW9oiA8IGtpa3VuaW5neW91XCA7CivnjqnlvITniakgPCBnYW5yb3VidXRzdVwgOwor5Y+j6KiA6JGJIDwga3VjaGlrb3RvYmFcIDsKK+mbhuWQiOeahCA8IHNodXVnb3V0ZWtpXCA7Civoh7Pov5Hot53pm6IgPCBzaGlraW5reW9yaVwgOwor5Ymy5b2T6aGNIDwgd2FyaWF0ZWdha3VcIDsKK+W4uOe/kueahCA8IGpvdXNodXV0ZWtpXCA7CivmkI3lrrPkv53pmbogPCBzb25nYWlob2tlblwgOwor5qeL5oiQ6KaB57SgIDwga291c2VpeW91c29cIDsKK+aEn+Wcp+e0mSA8IGthbicnYXRzdXNoaVwgOwor5Y2U6K2w5LqL6aCFIDwga3lvdWdpamlrb3VcIDsKK+e0heeMv+WtkCA8IGJlbmltYXNoaWtvXCA7CivlvL7mgKfnjocgPCBkYW5zZWlyaXRzdVwgOwor6Iie5Y+w5L+z5YSqIDwgYnV0YWloYWl5dXVcIDsKK+WNseapn+S4gOmrqiA8IGtpa2lpcHBhdHN1XCA7CivljLvlrabpm5HoqowgPCBpZ2FrdXphc3NoaVwgOwor5reh57SF6ImyIDwgdGFua291c2hva3VcIDsKK+afs+ihjOadjiA8IHlhbmFnaWdvdXJpXCA7CivniankvqHmsLTmupYgPCBidWtrYXN1aWp1blwgOwor6LWk5Y2B5a2X6ZmEIDwgc2VraWp1dWppZnVcIDsKK+aJtumkiuWutuaXjyA8IGZ1eW91a2F6b2t1XCA7CivmtYHli5XnmoQgPCByeXV1ZG91dGVraVwgOwor55Kw5aKD5bqBIDwga2Fua3lvdWNob3VcIDsKK+eri+aGsuaUv+ayuyA8IHJpa2tlbnNlaWppXCA7CivmmIbomavlraYgPCBrb25jaHV1Z2FrdVwgOwor5bi45pel6aCDIDwgdHN1bmVoaWdvcm9cIDsKK+avlOe/vOWhmiA8IGhpeW9rdWR6dWthXCA7Civmt7fmiJDniakgPCBrb25zZWlidXRzdVwgOwor5Lq65bel6IeT5ZmoIDwgamlua291em91a2lcIDsKK+a6tuino+WKmyA8IHlvdWthaXJ5b2t1XCA7CivntJnnpKsgPCBrYW1pdHN1YnV0ZVwgOwor5pWZ6IKy6ZW3IDwga3lvdWlrdWNob3VcIDsKK+eEvOWNtOeCiSA8IHNob3VreWFrdXJvXCA7Civnpa3mlL/kuIDoh7QgPCBzYWlzZWlpdGNoaVwgOwor55m95qqA5rK5IDwgYnlha3VkYW4nJ3l1XCA7Civnib3lvJXlipsgPCBrZW4nJ2lucnlva3VcIDsKK+ims+WFieWxgCA8IGthbmtvdWt5b2t1XCA7CivkuI3oqIDlrp/ooYwgPCBmdWdlbmppa2tvdVwgOwor5YWl5a2m6ICFIDwgbnl1dWdha3VzaGFcIDsKK+WbveWtpuiAhSA8IGtva3VnYWt1c2hhXCA7Civku5Xkuovpg6jlsYsgPCBzaGlnb3RvYmV5YVwgOwor5rS75YuV6KqMIDwga2F0c3Vkb3VzaGlcIDsKK+WHuuWcn+WTgSA8IHNodXRzdWRvaGluXCA7CivntJnooajntJkgPCBrYW1pYnlvdXNoaVwgOwor6Kaz5YWJ5a6iIDwga2Fua291a3lha3VcIDsKK+aIkOS6uuaYoOeUuyA8IHNlaWppbicnZWlnYVwgOwor6Ieq55Sx5Za25qWtIDwgaml5dXVlaWd5b3VcIDsKK+WFseWtpuWItiA8IGt5b3VnYWt1c2VpXCA7Civpto4gPCBraWt1aXRhZGFraVwgOwor5qiZ5rqW6Kqk5beuIDwgaHlvdWp1bmdvc2FcIDsKK+e+nuaBpeW/gyA8IHNodXVjaGlzaGluXCA7Civlj4LorbDpmaLorbDlk6EgPCBzYW5naWluZ2lpblwgOwor6Jmr55y86Y+hIDwgbXVzaGltZWdhbmVcIDsKK+iogOiRieizqiA8IGtvdG9iYWppY2hpXCA7CivlrabogIXohpogPCBnYWt1c2hhaGFkYVwgOwor6YCa5L+h57ayIDwgdHN1dXNoaW5tb3VcIDsKK+aZruWPiueOhyA8IGZ1a3l1dXJpdHN1XCA7CivkubPlhZDohJrmsJcgPCBueXV1amlrYWtrZVwgOwor5Y2D6bOl6LazIDwgY2hpZG9yaWFzaGlcIDsKK+i7jemcgOW3peWgtCA8IGd1bmp1a291am91XCA7Civnm7jliqDlubPlnYcgPCBzb3VrYWhlaWtpblwgOwor57KX6KO95Lmx6YCgIDwgc29zZWlyYW56b3VcIDsKK+W+oeWQjeW+oeeSvSA8IGd5b21laWd5b2ppXCA7Civoo7jomasgPCBoYWRha2FtdXNoaVwgOwor6Lui6L2N5omLIDwgdGVudGV0c3VzaHVcIDsKK+izvOiyt+WKmyA8IGtvdWJhaXJ5b2t1XCA7CivlhaXos57ogIUgPCBueXV1c2hvdXNoYVwgOwor6Zm46LuN55yBIDwgcmlrdWd1bnNob3VcIDsKK+S7ruWHuuaJgCA8IGthcmlzaHVzc2hvXCA7CivmlofmsrvkuLvnvqkgPCBidW5jaGlzaHVnaVwgOwor5Y+k54mp5ZWGIDwga29idXRzdXNob3VcIDsKK+iHqueEtua3mOaxsCA8IHNoaXplbnRvdXRhXCA7CivlrrblroXmjZzmn7sgPCBrYXRha3Vzb3VzYVwgOwor5pei5oiQ5qaC5b+1IDwga2lzZWlnYWluZW5cIDsKK+aVtOWCmeW3peWgtCA8IHNlaWJpa291am91XCA7Civlr77nqbrnoLLngasgPCB0YWlrdXVob3VrYVwgOwor5rue56m65pmC6ZaTIDwgdGFpa3V1amlrYW5cIDsKK+ixoeW+tOipqSA8IHNob3VjaG91c2hpXCA7CivkuIvljZTorbAgPCBzaGl0YWt5b3VnaVwgOwor5Y+s6ZuG5LukIDwgc2hvdXNodXVyZWlcIDsKK+iyv+aYk+i1pOWtlyA8IGJvdWVraWFrYWppXCA7CivkuIDoqIDlsYXlo6sgPCBpY2hpZ2Vua29qaVwgOwor54Wn5Lya5YWIIDwgc2hvdWthaXNha2lcIDsKK+Wxi+S4iuW6reWckiA8IG9rdWpvdXRlaWVuXCA7CivloIbnqY3lraYgPCB0YWlzZWtpZ2FrdVwgOwor6Kqt6Kej5YqbIDwgZG9ra2Fpcnlva3VcIDsKK+mfs+WjsOihqOiomCA8IG9uc2VpaHlvdWtpXCA7CivohbjntZDmoLggPCBjaG91a2Vra2FrdVwgOwor5bm05oGw5aW9IDwgdG9zaGlrYWtrb3VcIDsKK+Wvqee+juS4u+e+qSA8IHNoaW5iaXNodWdpXCA7CivpgJrnlKPnnIEgPCB0c3V1c2Fuc2hvdVwgOwor5b+c55So5ZWP6aGMIDwgb3V5b3Vtb25kYWlcIDsKK+S6kuaBtemWoueojiA8IGdva2Vpa2FuemVpXCA7CivnnaPlrablrpggPCB0b2t1Z2FrdWthblwgOwor5oeQ5Lit54mpIDwga2FpY2h1dW1vbm9cIDsKK+mAmuS/oeekviA8IHRzdXVzaGluc2hhXCA7Civou5/mgKfkuIvnlrMgPCBuYW5zZWlnZWthblwgOwor5Zu96Kqe6L6e5YW4IDwga29rdWdvaml0ZW5cIDsKK+WFrOiqjeWAmeijnCA8IGtvdW5pbmtvdWhvXCA7CivnlJ/lubTmnIjml6UgPCBzZWluZW5nYXBwaVwgOwor5aWH562W57im5qiqIDwga2lzYWt1anV1b3VcIDsKK+WFieWtpuaWh+WtlyA8IGtvdWdha3Vtb2ppXCA7CivljYPnn7PoiLkgPCBzZW5nb2t1YnVuZVwgOwor5YGc6LuK5pmC6ZaTIDwgdGVpc2hhamlrYW5cIDsKK+mHkeeJm+WuriA8IGtpbmd5dXVreXV1XCA7CivmjqXlkIjlrZAgPCBzZXRzdWdvdXNoaVwgOwor55qH5a6k6LK7IDwga291c2hpdHN1aGlcIDsKK+WFseWSjOaUv+ayuyA8IGt5b3V3YXNlaWppXCA7Civlm73luqvlgrXmqKkgPCBrb2trb3NhaWtlblwgOwor6L+95b6056iOIDwgdHN1aWNob3V6ZWlcIDsKK+WjsOW4r+aooeWGmSA8IHNlaXRhaW1vc2hhXCA7CivmnIDlpKfpmZDluqYgPCBzYWlkYWlnZW5kb1wgOwor5bGA5aSW6ICFIDwga3lva3VnYWlzaGFcIDsKK+WFq+WIhumfs+espiA8IGhhY2hpYnVvbnB1XCA7Civnv4znv4zlubQgPCB5b2t1eW9rdW5lblwgOwor54m55Yil5qmfIDwgdG9rdWJldHN1a2lcIDsKK+a3oeikkOiJsiA8IHRhbmthc3Nob2t1XCA7CivlgY/ln7fnl4UgPCBoZW5zaHV1YnlvdVwgOwor5Luu5oOz56m66ZaTIDwga2Fzb3VrdXVrYW5cIDsKK+Wtpue/kuiAhSA8IGdha3VzaHV1c2hhXCA7CivpmLLpn7PlrqQgPCBib3VvbnNoaXRzdVwgOwor5bmz5oiQ5pmC5LujIDwgaGVpc2VpamlkYWlcIDsKK+WIqeebiuekvuS8miA8IHJpZWtpc2hha2FpXCA7CivogonkvZPnmoQgPCBuaWt1dGFpdGVraVwgOwor5a625bqt6Kiq5ZWPIDwga2F0ZWlob3Vtb25cIDsKK+aWmemHkeihqCA8IHJ5b3VraW5oeW91XCA7CivlhoXpmbjlm70gPCBuYWlyaWt1a29rdVwgOwor5YyF5a655YqbIDwgaG91eW91cnlva3VcIDsKK+WHuua8geacnyA8IHNodXRzdWd5b2tpXCA7CivoloTliKnlpJrlo7IgPCBoYWt1cml0YWJhaVwgOwor5Li75Lq65b25IDwgc2h1amluJyd5YWt1XCA7CivmsJHkuLvkuLvnvqkgPCBtaW5zaHVzaHVnaVwgOwor5aWz5oCn5ZCN6KmeIDwgam9zZWltZWlzaGlcIDsKK+aEm+aGjuS9teWtmCA8IGFpem91aGVpc29uXCA7CivmiJDlip/njocgPCBzZWlrb3VyaXRzdVwgOwor5YWs5pyJ54mpIDwga291eXV1YnV0c3VcIDsKK+ims+iJpuW8jyA8IGthbmthbnNoaWtpXCA7Civlj43lsITkvZznlKggPCBoYW5zaGFzYXlvdVwgOwor5pyI5aSc6Iy4IDwgdHN1a2l5b3Rha2VcIDsKK+acieS6i+eri+azlSA8IHl1dWppcmlwcG91XCA7CivlhaXlrabnlJ8gPCBueXV1Z2FrdXNlaVwgOwor5piO5b6M5pelIDwgbXlvdWdvbmljaGlcIDsKK+a0u+WLleiAhSA8IGthdHN1ZG91c2hhXCA7CivkuInljp/oibIgPCBzYW5nZW5zaG9rdVwgOwor55m65aOw5Zmo5a6YIDwgaGFzc2Vpa2lrYW5cIDsKK+WBj+Wft+eLgiA8IGhlbnNodXVreW91XCA7CivlqZrnpLzooaPoo4UgPCBrb25yZWlpc2hvdVwgOwor5Lit5aSu56qB56C0IDwgY2h1dW91dG9wcGFcIDsKK+S4iemgreaUv+ayuyA8IHNhbnRvdXNlaWppXCA7CivljbHpmbrlnLDluK8gPCBraWtlbmNoaXRhaVwgOwor5YyW5a2m5L2c55SoIDwga2FnYWt1c2F5b3VcIDsKK+eEoemWk+WcsOeNhCA8IG11Z2Vuamlnb2t1XCA7CivoqbHkuK0gPCBoYW5hc2hpY2h1dVwgOwor5b6A5b6p5YiH56ymIDwgb3VmdWt1a2lwcHVcIDsKK+iSi+S7i+efsyA8IHNob3VrYWlzZWtpXCA7CivnlLPlkYrmm7ggPCBzaGlua29rdXNob1wgOwor5a2Y5Zyo55CG55SxIDwgc29uemFpcml5dXVcIDsKK+e3qOesoOiMuCA8IGFtaWdhc2F0YWtlXCA7CivlsI/ljYrml6UgPCBrb2hhbicnbmljaGlcIDsKK+mdnuekvuS6pOeahCA8IGhpamFrb3V0ZWtpXCA7CivooajlvbDnirYgPCBoeW91c2hvdWpvdVwgOwor5YaF6Ki85LqLIDwgbmFpc2hvdWdvdG9cIDsKK+WwgeW7uuWItuW6piA8IGhvdWtlbnNlaWRvXCA7CivoqLrmlq3lraYgPCBzaGluZGFuZ2FrdVwgOwor5Y2X5qW154K5IDwgbmFua3lva3V0ZW5cIDsKK+S6uui6q+S6i+aVhSA8IGppbnNoaW5qaWtvXCA7Civmm7LlsITnoLIgPCBreW9rdXNoYWhvdVwgOwor5YWs6ZaL5o2c5p+7IDwga291a2Fpc291c2FcIDsKK+aIkeeUsOW8leawtCA8IGdhZGVuJydpbnN1aVwgOwor5YuV5L2c6KiY6YyyIDwgZG91c2FraXJva3VcIDsKK+WFiOeZuumaiiA8IHNlbnBhdHN1dGFpXCA7CivmiJDlsaTngavlsbEgPCBzZWlzb3VrYXphblwgOwor5oCn55Sf5rS7IDwgc2Vpc2Vpa2F0c3VcIDsKK+aknOmWsuWumCA8IGtlbicnZXRzdWthblwgOwor5rWB6YCa56iOIDwgcnl1dXRzdXV6ZWlcIDsKK+WIqeebiumFjeW9kyA8IHJpZWtpaGFpdG91XCA7CivmtJfmv6/ns4ogPCBzZW50YWt1bm9yaVwgOwor5Y2K55u057eaIDwgaGFuY2hva3VzZW5cIDsKK+a0l+a/r+exoCA8IHNlbnRha3VrYWdvXCA7CivmjqXlkIjliaQgPCBzZXRzdWdvdXphaVwgOwor5LiA5omA5oe45ZG9IDwgaXNzaG9rZW5tZWlcIDsKK+i+sueUo+eJqSA8IG5vdXNhbmJ1dHN1XCA7CivmupDms4noqrLnqI4gPCBnZW5zZW5rYXplaVwgOwor5pS/5rK757WQ56S+IDwgc2VpamlrZXNzaGFcIDsKK+WhteWfgyA8IGNoaXJpaG9rb3JpXCA7CivpqI7ppqzmsJHml48gPCBraWJhbWluem9rdVwgOwor6ZqU5LiW6YG65LydIDwga2FrdXNlaWlkZW5cIDsKK+WPpOmBk+WFt+WxiyA8IGZ1cnVkb3VndXlhXCA7CivlkLnlpY/mpb3lmaggPCBzdWlzb3VnYWtraVwgOwor5qmf6YqD5o6D5bCEIDwga2lqdXVzb3VzaGFcIDsKK+aOpeWPl+WbvSA8IHNldHN1anVrb2t1XCA7CivmrablrrblsYvmlbcgPCBidWtleWFzaGlraVwgOwor5Y2X5qW15rW3IDwgbmFua3lva3VrYWlcIDsKK+edoeecoOaZgumWkyA8IHN1aW1pbmppa2FuXCA7CivntZDohpzngo4gPCBrZXRzdW1ha3VlblwgOwor6Kaq552m5LyaIDwgc2hpbmJva3VrYWlcIDsKK+ehq+WMlueJqSA8IHJ5dXVrYWJ1dHN1XCA7Civmg7Plg4/lipsgPCBzb3V6b3VyeW9rdVwgOwor6Iq46KGT5ZOBIDwgZ2VpanV0c3VoaW5cIDsKK+eEoeiomOWQjeagqiA8IG11a2ltZWlrYWJ1XCA7CivljZfmpbXmtIsgPCBuYW5reW9rdXlvdVwgOwor5LqL5YuZ57eP6ZW3IDwgamltdXNvdWNob3VcIDsKK+WGjea4rOmHjyA8IHNhaXNva3VyeW91XCA7CivkuLvmsrvlirnog70gPCBzaHVqaWtvdW5vdVwgOwor5aSp5rSl5b6h56WWIDwgYW1hdHN1bWlveWFcIDsKK+awl+ixoeihm+aYnyA8IGtpc2hvdWVpc2VpXCA7CivmnInlirnmnJ/pmZAgPCB5dXVrb3VraWdlblwgOwor6L6y5aW06Kej5pS+IDwgbm91ZG9rYWlob3VcIDsKK+mcsuWHuuioiCA8IHJvc2h1dHN1a2VpXCA7Civlv4Poh5Ppurvnl7ogPCBzaGluem91bWFoaVwgOwor6YWU55Sf5aSi5q27IDwgc3Vpc2VpbXVzaGlcIDsKK+eEoeazleWcsOW4ryA8IG11aG91Y2hpdGFpXCA7CivooZfpoK3li5/ph5EgPCBnYWl0b3Vib2tpblwgOwor55WZ5a2m55SfIDwgcnl1dWdha3VzZWlcIDsKK+awtOS7leS6iyA8IG1penVzaGlnb3RvXCA7Civlrabnv5LnlKggPCBnYWt1c2h1dXlvdVwgOwor6I2S5ZSQ54Sh56i9IDwga291dG91bXVrZWlcIDsKK+azqOWwhOmHnSA8IGNodXVzaGFiYXJpXCA7CivoprPlr5/ogIUgPCBrYW5zYXRzdXNoYVwgOwor5qCE6aSK5LiN6LazIDwgZWl5b3VmdXNva3VcIDsKK+mAmuS/oeashCA8IHRzdXVzaGlucmFuXCA7CivlkI3oqonluILmsJEgPCBtZWl5b3NoaW1pblwgOwor6LuN5LqL5ZCM55ufIDwgZ3Vuamlkb3VtZWlcIDsKK+acieWKueS9nOeUqCA8IHl1dWtvdXNheW91XCA7CivkupTmnIjpl4cgPCBzYXRzdWtpeWFtaVwgOwor55m6552A5aC0IDwgaGF0Y2hha3Vqb3VcIDsKK+WFiOmBo+mDqOmaiiA8IHNlbmtlbmJ1dGFpXCA7CivlmInoqIDlloTooYwgPCBrYWdlbnplbmtvdVwgOwor6Ly45Ye656iOIDwgeXVzaHV0c3V6ZWlcIDsKK+WQiOWQjOS8muitsCA8IGdvdWRvdWthaWdpXCA7Civotbfmrbvlm57nlJ8gPCBraXNoaWthaXNlaVwgOwor6YCP6KaW55S75rOVIDwgdG91c2hpZ2Fob3VcIDsKK+eEoemKreaXheihjCA8IG11c2Vucnlva291XCA7CivlsLHogbfmmYIgPCBzaHV1c2hva3VqaVwgOwor5L+d5a6J6Kit5YKZIDwgaG9hbnNldHN1YmlcIDsKK+edgOecvOeCuSA8IGNoYWt1Z2FudGVuXCA7CivnqbrlhrflvI8gPCBrdXVyZWlzaGlraVwgOwor5rq25o6l5belIDwgeW91c2V0c3Vrb3VcIDsKK+S4uOacqOapiyA8IG1hcnVraWJhc2hpXCA7CivlhoXpg6jpl5jkuokgPCBuYWlidXRvdXNvdVwgOwor5LiN5q2j6J6N6LOHIDwgZnVzZWl5dXVzaGlcIDsKK+WxseW9ouecjCA8IHlhbWFnYXRha2VuXCA7CivkuqTpnIrooZMgPCBrb3VyZWlqdXRzdVwgOwor5ryi6Iux6L6e5YW4IDwga2FuJydlaWppdGVuXCA7CivlibXpgKDoqqwgPCBzb3V6b3VzZXRzdVwgOwor6aCY5Zyf5L+d5YWoIDwgcnlvdWRvaG96ZW5cIDsKK+aLm+W+heW4rSA8IHNob3V0YWlzZWtpXCA7CivnhKHkuovmga/ngb0gPCBidWppc29rdXNhaVwgOwor6Zuq5LiK6LuKIDwgc2V0c3Vqb3VzaGFcIDsKK+S6pOmfv+alvSA8IGtvdWt5b3VnYWt1XCA7CivovrLmpa3lm70gPCBub3VneW91a29rdVwgOwor5Y2T6LaK6aKoIDwgdGFrdWV0c3VmdXVcIDsKK+aMh+WQjeaJi+mFjSA8IHNoaW1laXRlaGFpXCA7Civpjq7nl5vmgKcgPCBjaGludHN1dXNlaVwgOwor6YGK6Kan6aOb6KGMIDwgeXV1cmFuaGlrb3VcIDsKK+iqjeitmOirliA8IG5pbnNoaWtpcm9uXCA7Civlj5fpqJPlnLDnjYQgPCBqdWtlbmppZ29rdVwgOwor6K2m5YKZ5by35YyWIDwga2VpYmlreW91a2FcIDsKK+WwseWvneWJjSA8IHNodXVzaGluemVuXCA7Civlv4PnkIbkuLvnvqkgPCBzaGlucmlzaHVnaVwgOwor5Y+M5puy57eaIDwgc291a3lva3VzZW5cIDsKK+mbouWpmuiotOionyA8IHJpa29uc29zaG91XCA7CivlpI/mmYLliLsgPCBuYXRzdWppa29rdVwgOwor5aSP5aSn5qC5IDwgbmF0c3VkYWlrb25cIDsKK+mfs+iok+e0ouW8lSA8IG9ua3Vuc2FrdWluXCA7CivljbHpmbrlm6DlrZAgPCBraWtlbicnaW5zaGlcIDsKK+adkeWFq+WIhiA8IG11cmFoYWNoaWJ1XCA7CivotoXpgY7li6Tli5kgPCBjaG91a2FraW5tdVwgOwor5YKY5LyQ5p6XIDwgc2FuYmF0c3VyaW5cIDsKK+W4uOioremkqCA8IGpvdXNldHN1a2FuXCA7CivljZfmpbXmmJ8gPCBuYW5reW9rdXNlaVwgOwor56We5a2m5aOrIDwgc2hpbmdha3VzaGlcIDsKK+mAsuatqeS4u+e+qSA8IHNoaW5wb3NodWdpXCA7CivkuIrlkYrlr6kgPCBqb3Vrb2t1c2hpblwgOwor5YWI5YWl6KazIDwgc2VuJydueXV1a2FuXCA7CivlhYjlhaXoposgPCBzZW4nJ255dXVrZW5cIDsKK+S/neWFqOS8muekviA8IGhvemVua2Fpc2hhXCA7CivmtJfmv6/niakgPCBzZW50YWt1bW9ub1wgOwor5LiH6JGJ6ZuGIDwgbWFuJyd5b3VzaHV1XCA7Civoh6rlt7HntLnku4sgPCBqaWtvc2hvdWthaVwgOwor5Lq66YGT5pSv5o+0IDwgamluZG91c2hpZW5cIDsKK+a6gOW3nuWbvSA8IG1hbnNodXVrb2t1XCA7CivluIzlsJHkvqHlgKQgPCBraXNob3VrYWNoaVwgOwor6KGo5b+g5aGUIDwgaHlvdWNodXV0b3VcIDsKK+S4iemHjeauuiA8IHNhbmp1dXNhdHN1XCA7Civlqabkurrnp5HlraYgPCBmdWppbmthZ2FrdVwgOwor5pSv5o+05Zuj5L2TIDwgc2hpZW5kYW50YWlcIDsKK+WIhuazjOa2siA8IGJ1bnBpdHN1ZWtpXCA7CivlroflrpnnqbrplpMgPCB1Y2h1dWt1dWthblwgOwor6Zqj5o6l55yMIDwgcmluc2V0c3VrZW5cIDsKK+WYmOWFq+eZviA8IHVzb2hhcHB5YWt1XCA7CivoiJ7ouI/lrqQgPCBidXRvdXNoaXRzdVwgOwor5b2T5bGA6ICFIDwgdG91a3lva3VzaGFcIDsKK+WMlueyp+eFieeTpiA8IGtlc2hvdXJlbmdhXCA7Civnt6nooZ3lm70gPCBrYW5zaG91a29rdVwgOwor5pep5pyf55m66KaLIDwgc291a2loYWtrZW5cIDsKK+iHqueEtuayu+eZkiA8IHNoaXplbmNoaXl1XCA7CivkuI3lj6/nn6XnmoQgPCBmdWthY2hpdGVraVwgOwor6Ki06Kif6LK755SoIDwgc29zaG91aGl5b3VcIDsKK+iXgeS6uuW9oiA8IHdhcmFuaW5neW91XCA7CivlvbHpn7/lipsgPCBlaWt5b3VyeW9rdVwgOwor54G95a6z5L+d6Zm6IDwgc2FpZ2FpaG9rZW5cIDsKK+Wkp+WZqOaZqeaIkCA8IHRhaWtpYmFuc2VpXCA7Civmlofnr4DmlbAgPCBidW5zZXRzdXN1dVwgOwor5pWw54+g5LiA6YCjIDwganV6dWljaGlyZW5cIDsKK+aWh+aYjumWi+WMliA8IGJ1bm1laWthaWthXCA7Civmgqrmjqjph48gPCB3YXJ1enVpcnlvdVwgOwor5ZCr5pyJ6YePIDwgZ2FuJyd5dXVyeW91XCA7Civoqpjpm7vnjocgPCB5dXVkZW5yaXRzdVwgOwor5Y+N5YuV5Li7576pIDwgaGFuZG91c2h1Z2lcIDsKK+ims+Wvn+ecvCA8IGthbnNhdHN1Z2FuXCA7CivmlL/lupzpq5jlrpggPCBzZWlmdWtvdWthblwgOwor6Y+h6aSFIDwga2FnYW1pbW9jaGlcIDsKK+ijj+WIh+iAhSA8IHVyYWdpcmltb25vXCA7Civkuqzpg73lupzoraYgPCBreW91dG9mdWtlaVwgOwor6Ziy6Zuq5p6XIDwgYm91c2V0c3VyaW5cIDsKK+WkqeelnumrrSA8IHRlbnNoaW5oaWdlXCA7CivmrrrlrrPogIUgPCBzYXRzdWdhaXNoYVwgOwor5Yuk546L5pSY5aS3IDwga2luJydub3Vqb3VpXCA7CivnqbrmjLrpg6jpmoogPCBrdXV0ZWlidXRhaVwgOwor5pWZ6IKy55yBIDwga3lvdWlrdXNob3VcIDsKK+mbouS5s+mjnyA8IHJpbnl1dXNob2t1XCA7CivmlZnogrLnmoQgPCBreW91aWt1dGVraVwgOwor5aSa5aOr5riI5riIIDwgdGFzaGlzZWlzZWlcIDsKK+S4jeWZqOeUqOiAhSA8IGJ1a2l5b3Vtb25vXCA7CivlhbXnq5nln7rlnLAgPCBoZWl0YW5raWNoaVwgOwor5pyJ55CG6Zai5pWwIDwgeXV1cmlrYW5zdXVcIDsKK+S6uuW3pemgreiEsyA8IGppbmtvdXp1bm91XCA7CivnibnliKXljLogPCB0b2t1YmV0c3VrdVwgOwor6LKh5pS/5YqbIDwgemFpc2Vpcnlva3VcIDsKK+WNgeWFremfs+espiA8IGp1dXJva3VvbnB1XCA7CivlvLfnoaznrZYgPCBreW91a291c2FrdVwgOwor5paw5bm05Y+3IDwgc2hpbicnbmVuZ291XCA7Civno6/pprTmnb4gPCBzb25hcmVtYXRzdVwgOwor5aWH5oOz5aSp5aSWIDwga2lzb3V0ZW5nYWlcIDsKK+WGheWuueimi+acrCA8IG5haXlvdW1paG9uXCA7CivlhaXppKjmlpkgPCBueXV1a2FucnlvdVwgOwor54mp55u46aOvIDwgbW9zc291bWVzaGlcIDsKK+ijvemdqealrSA8IHNlaWtha3VneW91XCA7CivkuK3lrabnlJ8gPCBjaHV1Z2FrdXNlaVwgOwor6Ly45Ye65rivIDwgeXVzaHV0c3Vrb3VcIDsKK+WNl+alteW4ryA8IG5hbmt5b2t1dGFpXCA7CivmlpnnkIbpgZPlhbcgPCByeW91cmlkb3VndVwgOwor5aSn5ZyP6Iiq6LevIDwgdGFpa2Vua291cm9cIDsKK+a6tuaOpeWJpCA8IHlvdXNldHN1emFpXCA7CivmgKXnl4XkurogPCBreXV1YnlvdW5pblwgOwor5a+E5a6/5paZIDwga2lzaHVrdXJ5b3VcIDsKK+mrmOWztueUsCA8IHRha2FzaGltYWRhXCA7CivlsI/mraPmnIggPCBrb3Nob3VnYXRzdVwgOwor5YuV5Yqb6KiIIDwgZG91cnlva3VrZWlcIDsKK+alteWkp+WApCA8IGt5b2t1ZGFpY2hpXCA7CivmupblgpnnrqHliLYgPCBqdW5iaWthbnNlaVwgOwor54OP5Y+jIDwga2FyYXN1Z3VjaGlcIDsKK+WHuumHkemhjSA8IHNodWtraW5nYWt1XCA7CivnlLPlkYrliLYgPCBzaGlua29rdXNlaVwgOwor57KNIDwgbWlyaW1laXRvcnVcIDsKK+mZo+mgreaMh+aPriA8IGppbnRvdXNoaWtpXCA7CivnsoEgPCBraXJvbWVpdG9ydVwgOwor57G1IDwgZGVrYW1lZXRvcnVcIDsKK+iHk+WZqOenu+akjSA8IHpvdWtpaXNob2t1XCA7Civln7rmnKzmpoLlv7UgPCBraWhvbmdhaW5lblwgOwor5a2Q5L6b6YGUIDwga29kb21vdGFjaGlcIDsKK+S8muitsOaXpeeoiyA8IGthaWdpbml0dGVpXCA7CivlhazlrprlnLDkvqEgPCBrb3V0ZWljaGlrYVwgOwor5Z+656SO56CU56m2IDwga2lzb2tlbmt5dXVcIDsKK+eSsOWig+axmuafkyA8IGthbmt5b3Vvc2VuXCA7CivlqpLku4vniakgPCBiYWlrYWlidXRzdVwgOwor55aR5b+D5pqX6ay8IDwgZ2lzaGluJydhbmtpXCA7Civpu4TpgZPoibIgPCBrb3Vkb3VzaG9rdVwgOwor5LiJ6JGJ6JmrIDwgc2FuJyd5b3VjaHV1XCA7Civlhajos6rljJYgPCB6ZW5zaGl0c3VrYVwgOwor55Sf5rS76ZujIDwgc2Vpa2F0c3VuYW5cIDsKK+e0sOWLleiEiCA8IHNhaWRvdW15YWt1XCA7CivmsZ/miLjliY3lr7/lj7ggPCBlZG9tYWV6dXNoaVwgOwor57eP55CG5aSn6IejIDwgc291cmlkYWlqaW5cIDsKK+ikh+mbkeWMliA8IGZ1a3V6YXRzdWthXCA7Civoh6rlt7HmuoDotrMgPCBqaWtvbWFuem9rdVwgOwor5Yui5Yqb5ZyPIDwgc2Vpcnlva3VrZW5cIDsKK+e1tuWvvuS4u+e+qSA8IHpldHRhaXNodWdpXCA7Civnq7AgPCBzZW5jaGlyaXR0b1wgOwor5q2j5ZGz5YCk5q61IDwgc2hvdW1pbmVkYW5cIDsKK+eroSA8IGhla3V0b3JpdHRvXCA7Civnq5MgPCBtaXJpcml0dG9ydVwgOwor56uPIDwga2lyb3JpdHRvcnVcIDsKK+WAi+S6uuaVmeaOiCA8IGtvamlua3lvdWp1XCA7CivopIfopIfnt5ogPCBmdWt1ZnVrdXNlblwgOwor5bCR5aOu5rCX6YutIDwgc2hvdXNvdWtpZWlcIDsKK+aWsOW5tOS8miA8IHNoaW4nJ25lbmthaVwgOwor5LiN56K65a6fIDwgZnVrYWt1aml0c3VcIDsKK+adseS6nOiruOWbvSA8IHRvdWFzaG9rb2t1XCA7Civlloflj63msLTku5kgPCByYXBwYXp1aXNlblwgOwor6Y6u55eb5YmkIDwgY2hpbnRzdXV6YWlcIDsKK+aAquS6uueJqSA8IGthaWppbmJ1dHN1XCA7CivpgJrlrabnlJ8gPCB0c3V1Z2FrdXNlaVwgOwor54iG5b+D5ZywIDwgYmFrdXNoaW5jaGlcIDsKK+Wun+ihjOWPr+iDvSA8IGppa2tvdWthbm91XCA7CivkuovliY3pgYvli5UgPCBqaXplbicndW5kb3VcIDsKK+Wni+acq+abuCA8IHNoaW1hdHN1c2hvXCA7CivlpJbmnaXmgqPogIUgPCBnYWlyYWlrYW5qYVwgOwor56u25LqJ5b+DIDwga3lvdXNvdXNoaW5cIDsKK+mBv+mbo+iok+e3tCA8IGhpbmFua3VucmVuXCA7Civlib3ou73ogIUgPCBoeW91a2lubW9ub1wgOwor6IW46ZaJ5aGeIDwgY2hvdWhlaXNva3VcIDsKK+iyqeWjsumDqOmWgCA8IGhhbmJhaWJ1bW9uXCA7Civou43lvZPlsYAgPCBndW50b3VreW9rdVwgOwor5Yq05YON6YGL5YuVIDwgcm91ZG91dW5kb3VcIDsKK+a6luWCmemKgOihjCA8IGp1bmJpZ2lua291XCA7Civlubnnt5rpgZPot68gPCBrYW5zZW5kb3Vyb1wgOwor5LiN6YCP5piO5oCnIDwgZnV0b3VtZWlzZWlcIDsKK+eZveWtkOmzqSA8IHNoaXJha29iYXRvXCA7CivnlLrlvbnloLQgPCBtYWNoaXlha3ViYVwgOwor5Yqg5Zyn5rC054KJIDwga2FhdHN1c3Vpcm9cIDsKK+S4jeW/oOWunyA8IGZ1Y2h1dWppdHN1XCA7Civooajpn7PmloflrZcgPCBoeW91b25tb25qaVwgOwor5oyH5ZCN5omT6ICFIDwgc2hpbWVpZGFzaGFcIDsKK+e3j+WPuOS7pOmDqCA8IHNvdXNoaXJlaWJ1XCA7CivljZrlrabogIUgPCBoYWt1Z2FrdXNoYVwgOwor5Lyd57Wx5Li7576pIDwgZGVudG91c2h1Z2lcIDsKK+aIpueVpeS4iiA8IHNlbnJ5YWt1am91XCA7CivkuLvopoHpg73luIIgPCBzaHV5b3V0b3NoaVwgOwor5Y2X5qW15ZyPIDwgbmFua3lva3VrZW5cIDsKK+S4oeiEmuimjyA8IHJ5b3VreWFrdWtpXCA7CivkvY7muKnmrrroj4wgPCB0ZWlvbnNha2tpblwgOwor5YWx6Kiz6ICFIDwga3lvdXlha3VzaGFcIDsKK+Wkq+WppumWouS/giA8IGZ1dWZ1a2Fua2VpXCA7Civlv43ogJDlipsgPCBuaW50YWlyeW9rdVwgOwor5L2c5qWt5pmC6ZaTIDwgc2FneW91amlrYW5cIDsKK+mbhumHkeS6uiA8IHNodXVraW4nJ25pblwgOwor6Z2e5bi45omL5q61IDwgaGlqb3VzaHVkYW5cIDsKK+WNgeWFq+mHkSA8IGp1dWhhY2hpa2luXCA7CivlsILliLbmlL/msrsgPCBzZW5zZWlzZWlqaVwgOwor5pig55S755uj552jIDwgZWlnYWthbnRva3VcIDsKK+WAn+eUqOiAhSA8IHNoYWt1eW91c2hhXCA7Civnk7AgPCBkZXNoaWd1cmFtdVwgOwor5r+D5reh55S75YOPIDwgbm91dGFuZ2F6b3VcIDsKK+err+mHkSA8IGhhc2hpdGFnYW5lXCA7Civnga/ngavnrqHliLYgPCB0b3VrYWthbnNlaVwgOwor6YeN6KaB5LqL6aCFIDwganV1eW91amlrb3VcIDsKK+mdnuW4uOWRvOmbhiA8IGhpam91a29zaHV1XCA7CivmjIHkuYXlipsgPCBqaWt5dXVyeW9rdVwgOwor5bGA5Zyw6aKoIDwga3lva3VjaGlmdXVcIDsKK+eZuueZjOaApyA8IGhhdHN1Z2Fuc2VpXCA7Civmj5rpmbjmlpkgPCB5b3VyaWt1cnlvdVwgOwor5a+G6LK/5piTIDwgbWl0c3Vib3Vla2lcIDsKK+mAmuS/oeWToSA8IHRzdXVzaGluJydpblwgOwor56uL5YCZ6KOc6ICFIDwgcmlra291aG9zaGFcIDsKK+WGoOWLleiEiCA8IGthbmRvdW15YWt1XCA7CivlpInlpY/mm7IgPCBoZW5zb3VreW9rdVwgOwor5rWE5YyW6KOF572uIDwgam91a2Fzb3VjaGlcIDsKK+W+oeeUn+aGjuanmCA8IG9haW5pa3VzYW1hXCA7CivooajlvbDlj7AgPCBoeW91c2hvdWRhaVwgOwor5Lq65ZOh5reY5rGwIDwgamluJydpbnRvdXRhXCA7CivokazpgIHmm7IgPCBzb3Vzb3VreW9rdVwgOwor5Lqk6YCa5LqL5pWFIDwga291dHN1dWppa29cIDsKK+WNg+WIhueOhyA8IHNlbmJ1bnJpdHN1XCA7Civlm5vovKrpp4bli5UgPCB5b25yaW5rdWRvdVwgOwor5Li45LiA5bm0IDwgbWFydWljaGluZW5cIDsKK+S7o+eQhuWFrOS9vyA8IGRhaXJpa291c2hpXCA7CivlpJbli5nlpKfoh6MgPCBnYWltdWRhaWppblwgOwor6ICB5buD54mpIDwgcm91aGFpYnV0c3VcIDsKK+WNl+alteWFiSA8IG5hbmt5b2t1a291XCA7Civnmq7nrpfnlKggPCBrYXdhemFuJyd5b3VcIDsKK+mHjuaIpuegsuWFtSA8IHlhc2VuaG91aGVpXCA7Civov73liIbnr4AgPCBvaXdha2VidXNoaVwgOwor5b6z5bed5YuiIDwgdG9rdWdhd2F6ZWlcIDsKK+WcsOWQjei+nuWFuCA8IGNoaW1laWppdGVuXCA7CivkuI3li5XnlKPlsYsgPCBmdWRvdXNhbicneWFcIDsKK+WJtemAoOeJqSA8IHNvdXpvdWJ1dHN1XCA7CivliJ3oiKrmtbcgPCBoYXRzdWtvdWthaVwgOwor6LO86Kqt5paZIDwga291ZG9rdXJ5b3VcIDsKK+W+l+elqOaVsCA8IHRva3VoeW91c3V1XCA7CivkvZPmhJ/muKnluqYgPCB0YWlrYW4nJ29uZG9cIDsKK+mbquaZr+iJsiA8IHl1a2lnZXNoaWtpXCA7CivoprPlhYnpg73luIIgPCBrYW5rb3V0b3NoaVwgOwor5ZCM5oCn5oSb6ICFIDwgZG91c2VpYWlzaGFcIDsKK+mDqOmaiuaSpOmAgCA8IGJ1dGFpdGV0dGFpXCA7Civnsr7npZ7nmoQgPCBzZWlzaGludGVraVwgOwor5Y2U6K2w5Lya5ZOhIDwga3lvdWdpa2FpaW5cIDsKK+WVk+iSmemBi+WLlSA8IGtlaW1vdXVuZG91XCA7CivlvrPlt53lhawgPCB0b2t1Z2F3YWtvdVwgOwor6Ieq56uL5b+DIDwgamlyaXRzdXNoaW5cIDsKK+S6gOeUsuaooeanmCA8IGtpa2tvdW1veW91XCA7CivooZvnlJ/nirbmhYsgPCBlaXNlaWpvdXRhaVwgOwor5ry46YCy55qEIDwgemVuc2hpbnRla2lcIDsKK+aVmeS8muaapiA8IGt5b3VrYWlyZWtpXCA7CivmrrrkurrogIUgPCBzYXRzdWppbnNoYVwgOwor6Y6W5Zu95Li7576pIDwgc2Frb2t1c2h1Z2lcIDsKK+eyvuelnueXhSA8IHNlaXNoaW5ieW91XCA7CivmrrrkurrnvaogPCBzYXRzdWppbnphaVwgOwor5oiQ5bm05byPIDwgc2VpbmVuc2hpa2lcIDsKK+WZqOeUqOiyp+S5jyA8IGtpeW91YmluYm91XCA7CivohLHnn7PmsrkgPCBkYXRzdXNla2l5dVwgOwor5YWI6YCy5Zu9IDwgc2Vuc2hpbmtva3VcIDsKK+ecvOeyvueWsuWKtCA8IGdhbnNlaWhpcm91XCA7CivlrqPkvJ3mqZ/plqIgPCBzZW5kZW5raWthblwgOwor5Zyf5Zuj5a2QIDwgdHN1Y2hpZGFuZ29cIDsKK+S9leaZguS9leaZgiA8IGl0c3VuYW5kb2tpXCA7CivmjqflrqQgPCBoaWthZXNoaXRzdVwgOwor5rCR5qip5Li7576pIDwgbWlua2Vuc2h1Z2lcIDsKK+W5tOasoee3j+S8miA8IG5lbmppc291a2FpXCA7Civmt7flkIjniakgPCBrb25nb3VidXRzdVwgOwor6LuN5qW96ZW3IDwgZ3VuZ2FrdWNob3VcIDsKK+azleW+i+S4iiA8IGhvdXJpdHN1am91XCA7CivnlZzniqznqI4gPCBjaGlrdWtlbnplaVwgOwor54Sh5YSf5Lqk5LuYIDwgbXVzaG91a291ZnVcIDsKK+efreacn+aJi+W9oiA8IHRhbmtpdGVnYXRhXCA7CivlhoXli5nlpKfoh6MgPCBuYWltdWRhaWppblwgOwor5LiA5LiW5LiA5LujIDwgaXNzZWljaGlkYWlcIDsKK+S6i+mghee0ouW8lSA8IGppa291c2FrdWluXCA7CivmlL7lsITnt5rnp5EgPCBob3VzaGFzZW5rYVwgOwor55qH5aSq5a2Q5aaDIDwga291dGFpc2hpaGlcIDsKK+aigeWxseaziiA8IHJ5b3V6YW5wYWt1XCA7CivlvavloZHooZMgPCBjaG91c29qdXRzdVwgOwor5Luj55So6aOfIDwgZGFpeW91c2hva3VcIDsKK+WmluaAquWkieWMliA8IHlvdWthaWhlbmdlXCA7CivkuKbmnKjpgZMgPCBuYW1pa2ltaWNoaVwgOwor5a6d55+z566xIDwgaG91c2VraWJha29cIDsKK+WNkualreW+jCA8IHNvdHN1Z3lvdWdvXCA7Civlj6Pop5LlipsgPCBrdWNoaWR6dW1vdVwgOwor5LqL5qWt5Li7IDwgamlneW91bnVzaGlcIDsKK+iHquiZkOeahCA8IGppZ3lha3V0ZWtpXCA7CivkuIvnm7joq4cgPCBzaGl0YXNvdWRhblwgOwor5aSJ5b2i6YOo6ZaAIDwgaGVua2VpYnVtb25cIDsKK+mHjuaIpueXhemZoiA8IHlhc2VuYnlvdWluXCA7Civnpr/poK3nl4UgPCB0b2t1dG91YnlvdVwgOwor5oim54G95Zyw5Yy6IDwgc2Vuc2FpY2hpa3VcIDsKK+W8vuedgOeCuSA8IGRhbmNoYWt1dGVuXCA7Civnibnli5nmqZ/plqIgPCB0b2t1bXVraWthblwgOwor5LqU5pyI55eFIDwgZ29nYXRzdWJ5b3VcIDsKK+egguezluWkp+aguSA8IHNhdG91ZGFpa29uXCA7CivlvL7lipvmgKcgPCBkYW5yeW9rdXNlaVwgOwor5qC454iG5by+IDwga2FrdWJha3VkYW5cIDsKK+WVhualreihlyA8IHNob3VneW91Z2FpXCA7CivpoK3mloflrZcgPCBrYXNoaXJhbW9qaVwgOwor5Y2K5Yqg5bel5ZOBIDwgaGFua2Frb3VoaW5cIDsKK+iHquiomOa4qeW6puioiCA8IGppa2lvbmRva2VpXCA7CivnuK7nt6zntJkgPCBjaGlyaW1lbnNoaVwgOwor5LqM562J5YiG57eaIDwgbml0b3VidW5zZW5cIDsKK+aOiOalreaZgumWkyA8IGp1Z3lvdWppa2FuXCA7CivlpKnnpZ7lnLDnpYcgPCB0ZW5qaW5jaGlnaVwgOwor6L+95Yqg5LqI566XIDwgdHN1aWtheW9zYW5cIDsKK+mdnuWQiOeQhueahCA8IGhpZ291cml0ZWtpXCA7CivlirTovrLmlL/lupwgPCByb3Vub3VzZWlmdVwgOwor5Y2X5Lqs6JmrIDwgbmFua2lubXVzaGlcIDsKK+ijgeaxuuabuCA8IHNhaWtldHN1c2hvXCA7CivkuIvmhI/kuIrpgZQgPCBrYWlqb3V0YXRzdVwgOwor5qC454eD5paZIDwga2FrdW5lbnJ5b3VcIDsKK+S5l+i7iuaLkuWQpiA8IGpvdXNoYWt5b2hpXCA7CivpgJDlrZfoqLMgPCBjaGlrdWppeWFrdVwgOwor5rC05rSX5L6/5omAIDwgc3Vpc2VuYmVuam9cIDsKK+WPjue0jeWutuWFtyA8IHNodXVub3VrYWd1XCA7CivmnKrplovlor7lnLAgPCBtaWthaWtvbmNoaVwgOwor5q2j5b2T6Ziy6KGbIDwgc2VpdG91Ym91ZWlcIDsKK+S4gOW+ueiAhSA8IGl0dGV0c3Vtb25vXCA7CivlvqHljZTlipsgPCBnb2t5b3VyeW9rdVwgOwor5a2m56eR6Kmm6aiTIDwgZ2Fra2FzaGlrZW5cIDsKK+S/guWxnuS4rSA8IGtlaXpva3VjaHV1XCA7CivmvZzmsLTmr43oiaYgPCBzZW5zdWlib2thblwgOwor57Gz5Y2wIDwga29tZWppcnVzaGlcIDsKK+eXheS4reWQnyA8IGJ5b3VjaHV1Z2luXCA7Civkvb/nlKjkvqHlgKQgPCBzaGl5b3VrYWNoaVwgOwor5qW16ZmQ5YCkIDwga3lva3VnZW5jaGlcIDsKK+aVmeiCsuWtpiA8IGt5b3Vpa3VnYWt1XCA7Civpm7voqbHlrqQgPCBkZW53YXNoaXRzdVwgOwor6YGg5b+D5YqbIDwgZW5zaGlucnlva3VcIDsKK+WumOWwiuawkeWNkSA8IGthbnNvbm1pbnBpXCA7Civlrq7ltI7nnIwgPCBtaXlhemFraWtlblwgOwor5ZWG5bel5qWtIDwgc2hvdWtvdWd5b3VcIDsKK+ihneWLleeahCA8IHNob3Vkb3V0ZWtpXCA7Civog4bnn7Pnl4cgPCB0YW5zZWtpc2hvdVwgOwor6Ly45Ye65ZOBIDwgeXVzaHV0c3VoaW5cIDsKK+aZrumBjeaWh+azlSA8IGZ1aGVuYnVucG91XCA7CivpgY7libDkurrlj6MgPCBrYWpvdWppbmtvdVwgOwor5LiJ55yg6JqVIDwgc2FubWlua2Fpa29cIDsKK+mWk+asoOaziSA8IGthbmtldHN1c2VuXCA7Civlh7rlhYjmqZ/plqIgPCBkZXNha2lraWthblwgOwor5rqW5YKZ5aeU5ZOh5LyaIDwganVuYmlpaW5rYWlcIDsKK+Wkqem+jeW3nSA8IHRlbnJ5dXVrYXdhXCA7CivmlZnnv5LnlJ8gPCBreW91c2h1dXNlaVwgOwor6Zqj5o6l5ZywIDwgcmluc2V0c3VjaGlcIDsKK+eZuueUn+eOhyA8IGhhc3NlaXJpdHN1XCA7CivokaHokITnlZEgPCBidWRvdWJhdGFrZVwgOwor5aKD55WM5qiZIDwga3lvdWthaWh5b3VcIDsKK+epuui7jeWKmyA8IGt1dWd1bnJ5b2t1XCA7CivkuqTlo7Dmm7IgPCBrb3VzZWlreW9rdVwgOwor54++5YaF6ZajIDwgZ2VuJyduYWlrYWt1XCA7CivljaDmmJ/ooZMgPCBzZW5zZWlqdXRzdVwgOwor6aaZ6L6b5paZIDwga291c2hpbnJ5b3VcIDsKK+eUuumBk+WgtCA8IG1hY2hpZG91am91XCA7CivlrqPkvJ3lirnmnpwgPCBzZW5kZW5rb3VrYVwgOwor5pmC44CF5Yi744CFIDwgamlqaWtva2tva3VcIDsKK+i/keS8vOioiOeulyA8IGtpbmppa2Vpc2FuXCA7Civli5XlipvmupAgPCBkb3VyeW9rdWdlblwgOwor5oGS562J5byPIDwga291dG91c2hpa2lcIDsKK+iojuS8kOi7jSA8IHRvdWJhdHN1Z3VuXCA7CivooajnnIvmnb8gPCBvbW90ZWthbmJhblwgOwor6K235oay6YGL5YuVIDwgZ29rZW4nJ3VuZG91XCA7Civmv4PpnZLoibIgPCBub3VzZWlzaG9rdVwgOwor5q665Lq654qvIDwgc2F0c3VqaW5oYW5cIDsKK+aui+W/teizniA8IHphbicnbmVuc2hvdVwgOwor5Y6f5Zug57WQ5p6cIDwgZ2VuJydpbmtla2thXCA7Civlj4vou43pg6jpmoogPCB5dXVndW5idXRhaVwgOwor6ISz5YWF6KGAIDwgbm91anV1a2V0c3VcIDsKK+mjn+S6uueoriA8IHNob2t1amluc2h1XCA7CivotaTopJDoibIgPCBzZWtrYXNzaG9rdVwgOwor54Sh5bC95Lya56S+IDwgbXVqaW5nYWlzaGFcIDsKK+iIiOS/oemMsiA8IGtvdXNoaW5yb2t1XCA7Civpm7vnhrHlmaggPCBkZW4nJ25ldHN1a2lcIDsKK+S9nOabsuiAhSA8IHNha2t5b2t1c2hhXCA7Civlj6Tku4rmnbHopb8gPCBrb2tvbnRvdXphaVwgOwor5ZSQ6YymIDwga2FyYW5pc2hpa2lcIDsKK+eci+itt+WppumVtyA8IGthbmdvZnVjaG91XCA7CivllYbmqJnmqKkgPCBzaG91aHlvdWtlblwgOwor5oKy5oak5oW35oWoIDwgaGlmdW5rb3VnYWlcIDsKK+W4uOitmOS6uiA8IGpvdXNoaWtpamluXCA7Civlj6Tku6PmlofmmI4gPCBrb2RhaWJ1bm1laVwgOwor6Kaz5a6i5bGkIDwga2Fua3lha3Vzb3VcIDsKK+eEoeeUo+aUv+WFmiA8IG11c2Fuc2VpdG91XCA7CivkuIDph43moZwgPCBoaXRvZXpha3VyYVwgOwor6YG45oyZ5rqW5YKZIDwgc2Vua3lvanVuYmlcIDsKK+WcsOWLleiqrCA8IGNoaWRvdXNldHN1XCA7CivmhI/orZjkuI3mmI4gPCBpc2hpa2lmdW1laVwgOwor55m95Lqc6LOqIDwgaGFrdWFzaGl0c3VcIDsKK+iGoOedgOWJpCA8IGtvdWNoYWt1emFpXCA7CivkuIDmrrXokL0gPCBpY2hpZGFucmFrdVwgOwor57WE5ZCI5Li7576pIDwga3VtaWFpc2h1Z2lcIDsKK+i7jeeUqOmzqSA8IGd1bicneW91YmF0b1wgOwor5L+X5paH5a2mIDwgem9rdWJ1bmdha3VcIDsKK+WAi+S9k+eZuueUnyA8IGtvdGFpaGFzc2VpXCA7Civpm7vlnKfoqIggPCBkZW4nJ2F0c3VrZWlcIDsKK+iWrOWxgOaWuSA8IHlha2t5b2t1aG91XCA7Civms5XliLblsYAgPCBob3VzZWlreW9rdVwgOwor6Jas5a2m6ICFIDwgeWFrdWdha3VzaGFcIDsKK+S/guS6ieeJqSA8IGtlaXNvdWJ1dHN1XCA7Civlm5vliIbpn7PnrKYgPCBzaGlidW4nJ29ucHVcIDsKK+S9v+W+kuabuOewoSA8IHNoaXRvc2hva2FuXCA7CivlhKrmn5TkuI3mlq0gPCB5dXVqdXVmdWRhblwgOwor6ISx5q+b5YmkIDwgZGF0c3Vtb3V6YWlcIDsKK+eFjumkheiSsuWboyA8IHNlbmJlaWJ1dG9uXCA7CivnrqHovYTmqKkgPCBrYW5rYXRzdWtlblwgOwor5YCf55So5pu4IDwgc2hha3V5b3VzaG9cIDsKK+S6iOWumuiqv+WSjCA8IHlvdGVpY2hvdXdhXCA7CivlpYnlhazlj6MgPCBob3Vrb3VndWNoaVwgOwor5YWI56WW5Lyd5p2lIDwgc2Vuem9kZW5yYWlcIDsKK+aUvumAgeWxgCA8IGhvdXNvdWt5b2t1XCA7Civkuovmpa3pg6jliLYgPCBqaWd5b3VidXNlaVwgOwor6buE55m96ImyIDwga29oYWt1c2hva3VcIDsKK+iHqOaZguWIl+i7iiA8IHJpbmppcmVzc2hhXCA7CivlrprmnJ/oqabpqJMgPCB0ZWlraXNoaWtlblwgOwor576957mU6KK0IDwgaGFvcmloYWthbWFcIDsKK+e3j+WQiOiqsueojiA8IHNvdWdvdWthemVpXCA7CivpgaDpmpTorJvnvqkgPCBlbmtha3Vrb3VnaVwgOwor6Zmk5bmV5byPIDwgam9tYWt1c2hpa2lcIDsKK+a1t+W6leayueeUsCA8IGthaXRlaXl1ZGVuXCA7CivnnJ/kuIDmloflrZcgPCBtYWljaGltb25qaVwgOwor6J2454mbIDwgZGVuZGVubXVzaGlcIDsKK+mbu+ipseiqv+afuyA8IGRlbndhY2hvdXNhXCA7CivmioDooZPmj7TliqkgPCBnaWp1dHN1ZW5qb1wgOwor5by35Yi255qEIDwga3lvdXNlaXRla2lcIDsKK+W8t+W/g+WJpCA8IGt5b3VzaGluemFpXCA7CivnlJ/mtLvnkrAgPCBzZWlrYXRzdWthblwgOwor5pil5LiA55WqIDwgaGFydWljaGliYW5cIDsKK+WNgeWFq+eVqiA8IGp1dWhhY2hpYmFuXCA7Civpu5LptqsgPCBrdXJvdHN1Z3VtaVwgOwor5YGP5ZCR5Zue6LevIDwgaGVua291a2Fpcm9cIDsKK+S6iOWumue0jeeojiA8IHlvdGVpbm91emVpXCA7CivnmoflkI7pmZvkuIsgPCBrb3Vnb3VoZWlrYVwgOwor6YCj6YKm5Yi25bqmIDwgcmVucG91c2VpZG9cIDsKK+mMpuibhyA8IG5pc2hpa2loZWJpXCA7CivntYLouqvlrpggPCBzaHV1c2hpbmthblwgOwor5Zu95L6NIDwga3VuaXphbXVyYWlcIDsKK+mbu+awl+mbu+WtkCA8IGRlbmtpZGVuc2hpXCA7Civku6PooYzmqZ/plqIgPCBkYWlrb3VraWthblwgOwor55ay5Yq05Zuw5oaKIDwgaGlyb3Vrb25wYWlcIDsKK+ebl+mbo+S/nemZuiA8IHRvdW5hbmhva2VuXCA7CivntJTnnJ/nhKHlnqIgPCBqdW5zaGlubXVrdVwgOwor5pyI6ZW355+zIDwgZ2V0Y2hvdXNla2lcIDsKK+aVmeiBt+WToSA8IGt5b3VzaG9rdWluXCA7CivkuIvkvY3kupLmj5vmgKcgPCBrYWlnb2thbnNlaVwgOwor5rOV5YuZ5aSn6IejIDwgaG91bXVkYWlqaW5cIDsKK+mAgeWIpeS8miA8IHNvdWJldHN1a2FpXCA7Civlh7rlk4Hlm70gPCBzaHVwcGlua29rdVwgOwor5YiR5LqL5Yem5YiGIDwga2VpamlzaG9idW5cIDsKK+mnkOi7iumBleWPjSA8IGNodXVzaGFpaGFuXCA7CivljZfkuqznlLogPCBuYW5raW5tYWNoaVwgOwor5pmC5qmf5bCa5pepIDwgamlraXNob3Vzb3VcIDsKK+mBk+W+s+eahCA8IGRvdXRva3V0ZWtpXCA7CivllYbmpa3nlYwgPCBzaG91Z3lvdWthaVwgOwor5Y+O57SN6aGNIDwgc2h1dW5vdWdha3VcIDsKK+m8jueri+aIpiA8IHRlaXJpdHN1c2VuXCA7Civljp/liYfnmoQgPCBnZW5zb2t1dGVraVwgOwor5bm06YeR5Z+66YeRIDwgbmVua2lua2lraW5cIDsKK+WCjeiBtOaWmSA8IGJvdWNob3VyeW91XCA7CivljYPlhobmnK0gPCBzZW4nJ2Vuc2F0c3VcIDsKK+WumuWPjuWFpSA8IHRlaXNodXVueXV1XCA7Civpganms5XooYzngrogPCB0ZWtpaG91a291aVwgOwor54mp6KaL6YGK5bGxIDwgbW9ub21peXVzYW5cIDsKK+W+l+aEj+a6gOmdoiA8IHRva3VpbWFubWVuXCA7CivmmYLlt67lh7rli6QgPCBqaXNhc2h1a2tpblwgOwor5pS/5rK75ZWP6aGMIDwgc2Vpamltb25kYWlcIDsKK+e1tuWvvuaVrOiqniA8IHpldHRhaWtlaWdvXCA7CivpjbXnm6Tmpb3lmaggPCBrZW5iYW5nYWtraVwgOwor6Ki06Kif5LqL5Lu2IDwgc29zaG91amlrZW5cIDsKK+aEj+WRs+W9ueWJsiA8IGltaXlha3V3YXJpXCA7Civlha3lpKflt54gPCByb2t1ZGFpc2h1dVwgOwor5Ymy5byV5Yi4IDwgd2FyaWJpa2lrZW5cIDsKK+S9j+eUn+a0uyA8IGp1dXNlaWthdHN1XCA7CivkvqHmoLzlronlrpogPCBrYWtha3VhbnRlaVwgOwor5LuK5LiK6Zmb5LiLIDwga2luam91aGVpa2FcIDsKK+mbu+awl+ezu+e1sSA8IGRlbmtpa2VpdG91XCA7CivliY3nq4vohbogPCB6ZW5yaXRzdXNlblwgOwor5YWM5o+b6YqA6KGMIDwgZGFrYW5naW5rb3VcIDsKK+WGmeecn+mbhiA8IHNoYXNoaW5zaHV1XCA7CivlhajkvJrkuIDoh7QgPCB6ZW5rYWlpdGNoaVwgOwor55m+5LiH6YGNIDwgaHlha3VtYW5iZW5cIDsKK+idieaZgumbqCA8IHNlbWlzaGlndXJlXCA7CivpurvolqzmgqPogIUgPCBtYXlha3VrYW5qYVwgOwor5Ymy5byV5YK1IDwgd2FyaWJpa2lzYWlcIDsKK+W/g+apn+S4gOi7oiA8IHNoaW5raWl0dGVuXCA7CivnhKHlkI3miKblo6sgPCBtdW1laXNlbnNoaVwgOwor5ZSv5LiA54Sh5LqMIDwgeXVpaXRzdW11bmlcIDsKK+aOpeedgOWJpCA8IHNldGNoYWt1emFpXCA7CivmiYvooZPlj7AgPCBzaHVqdXRzdWRhaVwgOwor6Ziy54Gr5omJIDwgYm91a2F0b2JpcmFcIDsKK+S5seWFpeiAhSA8IHJhbicnbnl1dXNoYVwgOwor6KiI55S755qEIDwga2Vpa2FrdXRla2lcIDsKK+iyoeaUv+WuieWumiA8IHphaXNlaWFudGVpXCA7Civoqr/ljbDlvI8gPCBjaG91aW5zaGlraVwgOwor55yL6K235a2m5qChIDwga2FuZ29nYWtrb3VcIDsKK+mAhui7ouWxpCA8IGd5YWt1dGVuc291XCA7CivnlJ/mtLvms5UgPCBzZWlrYXRzdWhvdVwgOwor57KY5Zyf6LOqIDwgbmVuZG9zaGl0c3VcIDsKK+WIhumhnuWfuua6liA8IGJ1bnJ1aWtpanVuXCA7CivpgIbovLjlhaUgPCBneWFrdXl1bnl1dVwgOwor5paH5pu45YG96YCgIDwgYnVuc2hvZ2l6b3VcIDsKK+WtpOi7jeWlrumXmCA8IGtvZ3VuZnVudG91XCA7CivmlrDoiIjlm70gPCBzaGlua291a29rdVwgOwor5pWw5qyh5peF5Yi4IDwgc3V1amlyeW9rZW5cIDsKK+WQiOebrueahCA8IGdvdW1va3V0ZWtpXCA7CivlkIjmiJDnuYrntq0gPCBnb3VzZWlzZW4nJ2lcIDsKK+aWsOS6uuizniA8IHNoaW5qaW5zaG91XCA7Civpm7vloLHlsYAgPCBkZW5wb3VreW9rdVwgOwor6LK05peP5pS/5rK7IDwga2l6b2t1c2VpamlcIDsKK+WNmuaEm+S4u+e+qSA8IGhha3VhaXNodWdpXCA7CivkuIDmlonmpJzmjJkgPCBpc3NlaWtlbmt5b1wgOwor5Lqc6Ymb6I+v6Luf6IaPIDwgYWVua2FuYW5rb3VcIDsKK+S4ieW5leeJqSA8IHNhbm1ha3Vtb25vXCA7Civnmb3mnKjok64gPCBoYWt1bW9rdXJlblwgOwor5ZWG5qWt5rivIDwgc2hvdWd5b3Vrb3VcIDsKK+S4gOmHjOWhmiA8IGljaGlyaWR6dWthXCA7CivntYLouqvliJEgPCBzaHV1c2hpbmtlaVwgOwor5L2O5rip6Ly46YCBIDwgdGVpb24nJ3l1c291XCA7CivpoqjlhYnmmI7lqpogPCBmdXVrb3VtZWliaVwgOwor5b6M6YOo5bqn5bitIDwga291YnV6YXNla2lcIDsKK+WLleWKm+WtpiA8IGRvdXJpa2lnYWt1XCA7Civnr4DmlpnnkIYgPCBzZWNoaXJ5b3VyaVwgOwor5Ye65ZOB5Lq6IDwgc2h1cHBpbicnbmluXCA7Civlgo3ogbTluK0gPCBib3VjaG91c2VraVwgOwor5LiN6YGp5YiHIDwgZnV0ZWtpc2V0c3VcIDsKK+WAi+S6uuaKleizhyA8IGtvamludG91c2hpXCA7CivlrabpmpvnmoQgPCBnYWt1c2FpdGVraVwgOwor56uc6aqo5bqnIDwgcnl1dWtvdHN1emFcIDsKK+S/nemZuuS8muekviA8IGhva2VuZ2Fpc2hhXCA7CivnoavljJbmsLTntKAgPCByeXV1a2FzdWlzb1wgOwor5Luu5p2h57SEIDwga2FyaWpvdXlha3VcIDsKK+aXpeacrOWIl+WztiA8IG5paG9ucmV0dG91XCA7Civpmo7ntJrnq6AgPCBrYWlreXV1c2hvdVwgOwor5oim5pmC5YWs5YK1IDwgc2Vuamlrb3VzYWlcIDsKK+aKteaKl+WKmyA8IHRlaWtvdXJ5b2t1XCA7Civmo67mnpflraYgPCBzaGlucmluZ2FrdVwgOwor5rW35ZOh57WE5ZCIIDwga2FpaW5rdW1pYWlcIDsKK+eZvuS4h+iogCA8IGh5YWt1bWFuZ2VuXCA7Civkv67ovp7nlpHllY8gPCBzaHV1amlnaW1vblwgOwor5riv55S6IDwgbWluYXRvbWFjaGlcIDsKK+azleWumuiyqOW5oyA8IGhvdXRlaWthaGVpXCA7CivkvZPlhoXlj5fnsr4gPCB0YWluYWlqdXNlaVwgOwor5YyW57Kn5LiLIDwga2VzaG91c2hpdGFcIDsKK+iZq+iWrCA8IG11c2hpZ3VzdXJpXCA7Civmpb3oprPkuLvnvqkgPCByYWtrYW5zaHVnaVwgOwor6LWk5o+Q54GvIDwgYWthY2hvdWNoaW5cIDsKK+WFpemZouaCo+iAhSA8IG55dXVpbmthbmphXCA7CivlibXpgKDkuLsgPCBzb3V6b3VudXNoaVwgOwor6Zai6YCj5LqL6aCFIDwga2FucmVuamlrb3VcIDsKK+WOn+S+oeioiOeulyA8IGdlbmtha2Vpc2FuXCA7Civpm7vlrZDlm57ot68gPCBkZW5zaGlrYWlyb1wgOwor5YCZ5a2d6LOiIDwgaG91c2hhdXNoZW5cIDsKK+mHjeeCueS4u+e+qSA8IGp1dXRlbnNodWdpXCA7CivkvqHpm7vlrZDluK8gPCBrYWRlbnNoaXRhaVwgOwor5pyJ5Yq56ZyA6KaBIDwgeXV1a291anV5b3VcIDsKK+S6i+alreW5tOW6piA8IGppZ3lvdW5lbmRvXCA7Civnm7jlj43lrprnkIYgPCBzb3VoYW50ZWlyaVwgOwor5YWt5YiG5YSA5bqnIDwgcm9rdWJ1bmdpemFcIDsKK+WGrOWwhui7jSA8IGZ1eXVzaG91Z3VuXCA7CivlronlrprnirbmhYsgPCBhbnRlaWpvdXRhaVwgOwor5rCR5Li75pS/5rK7IDwgbWluc2h1c2VpamlcIDsKK+eLrOe/kuabuCA8IGRva3VzaHV1c2hvXCA7CivlhazoqLzmlpkgPCBrb3VzaG91cnlvdVwgOwor5ZSQ57SFIDwga2FyYWt1cmVuYWlcIDsKK+e2v+e5lOeJqSA8IG1lbicnb3JpbW9ub1wgOwor5YyW5a2m57mK57atIDwga2FnYWt1c2VuJydpXCA7Civntbblr77pn7PmhJ8gPCB6ZXR0YWlvbmthblwgOwor5YWI5YWl5Li7IDwgc2VuJydueXV1c2h1XCA7CivmnIDntYLnmoQgPCBzYWlzaHV1dGVraVwgOwor5pys5bu656+JIDwgaG9ua2VuY2hpa3VcIDsKK+iHqueEtuegtOWjiiA8IHNoaXplbmhha2FpXCA7CivloLHpgZPmqZ/plqIgPCBob3Vkb3VraWthblwgOwor5o2V6Jmc5Lqk5o+bIDwgaG9yeW9rb3VrYW5cIDsKK+eLl+WwvuiNiSA8IGVub2tvcm9ndXNhXCA7CivkupznsbPliKnliqDmnYkgPCBhbWVyaWthc3VnaVwgOwor5L6h5YCk5Yik5patIDwga2FjaGloYW5kYW5cIDsKK+ihjOWVhuS6uiA8IGd5b3VzaG91bmluXCA7CivliIfliIbms5UgPCBzZXRzdWJ1bmhvdVwgOwor5omL57e05omL566hIDwgdGVyZW50ZWt1ZGFcIDsKK+WZqOaisOS9k+aTjSA8IGtpa2FpdGFpc291XCA7CivppIrogIHkv53pmbogPCB5b3Vyb3Vob2tlblwgOwor5bCP55m+5aeTIDwga29ieWFrdXNob3VcIDsKK+W/g+S4iOWkqyA8IGtva29yb2pvdWJ1XCA7Civps6XpoZ7lraYgPCBjaG91cnVpZ2FrdVwgOwor5byx5bm06ICFIDwgamFrdW5lbm1vbm9cIDsKK+S4remaiumVtyA8IGNodXV0YWljaG91XCA7CivkuI3lvZPooajnpLogPCBmdXRvdWh5b3VqaVwgOwor5a6J5YWo6YGL6LuiIDwgYW56ZW4nJ3VudGVuXCA7Civnm7joq4flvbkgPCBzb3VkYW4nJ3lha3VcIDsKK+S6pOmam+evhOWbsiA8IGtvdXNhaWhhbicnaVwgOwor5b+c55So56eR5a2mIDwgb3V5b3VrYWdha3VcIDsKK+mjn+S6i+aZgiA8IHNob2t1amlkb2tpXCA7CivlhavpnaLkvZMgPCBoYWNoaW1lbnRhaVwgOwor5LiN5pW05ZCI5Lq6IDwgZnVzZWlnb3VqaW5cIDsKK+WOn+WIpOaxuiA8IGdlbmhhbmtldHN1XCA7CivljZjlhYPliLbluqYgPCB0YW5nZW5zZWlkb1wgOwor5LiA5q2p5YmN6YCyIDwgaXBwb3plbnNoaW5cIDsKK+WbveeOi+mZm+S4iyA8IGtva3VvdWhlaWthXCA7CivmpbXlnLDlnI8gPCBreW9rdWNoaWtlblwgOwor5pS+6YCB6KGb5pifIDwgaG91c291ZWlzZWlcIDsKK+WvguWFiea1hOWcnyA8IGpha2tvdWpvdWRvXCA7Civnm6Plr5/lrpggPCBrYW5zYXRzdWthblwgOwor5b6M55Sf5aSn5LqLIDwgZ29zaG91ZGFpamlcIDsKK+S4ieawkeS4u+e+qSA8IHNhbm1pbnNodWdpXCA7Civnmb3njonnsokgPCBzaGlyYXRhbWFrb1wgOwor5ZWG5qWt5paHIDwgc2hvdWd5b3VidW5cIDsKK+awl+euoeWIh+mWiyA8IGtpa2Fuc2Vra2FpXCA7CivlpKnli5XoqqwgPCB0ZW5kb3VzZXRzdVwgOwor5YKy5bK45LiN6YGcIDwgZ291Z2FuZnVzb25cIDsKK+i+u+iqrOazlSA8IHRzdWppc2VwcG91XCA7CivlrrbniLbplbfliLYgPCBrYWZ1Y2hvdXNlaVwgOwor5pqX6buS5pif6ZuyIDwgYW5rb2t1c2VpdW5cIDsKK+i/keS7o+WbveWutiA8IGtpbmRhaWtva2thXCA7CivnhYnkuLnooZMgPCByZW50YW5qdXRzdVwgOwor6KW/5rW35bK4IDwgbmlzaGlrYWlnYW5cIDsKK+WJjemAlOacieacmyA8IHplbnRveXV1Ym91XCA7CivmgKXkuIrmmIcgPCBreXV1am91c2hvdVwgOwor5a6d55+z5ZWGIDwgaG91c2VraXNob3VcIDsKK+aPm+eul+eOhyA8IGthbnNhbnJpdHN1XCA7Civlu7roqK3ogIUgPCBrZW5zZXRzdXNoYVwgOwor5YyX44CF6KW/IDwgaG9rdWhva3VzZWlcIDsKK+mfs+alveeQhuirliA8IG9uZ2FrdXJpcm9uXCA7Civlp5ToqJfosqnlo7IgPCBpdGFrdWhhbmJhaVwgOwor6YqA5ama5byPIDwgZ2lua29uc2hpa2lcIDsKK+S4ieWvkuWbm+a4qSA8IHNhbmthbnNoaW9uXCA7CivosqfkuY/miYDluK8gPCBiaW5ib3Vqb3RhaVwgOwor5b6h5Ly96I2J5a2QIDwgb3RvZ2l6b3VzaGlcIDsKK+elnuWliOW3neecjCA8IGthbmFnYXdha2VuXCA7Civpm7vmsJfoo4Xnva4gPCBkZW5raXNvdWNoaVwgOwor5Zyw5pa56K2w5LyaIDwgY2hpaG91Z2lrYWlcIDsKK+WOn+WLleWKmyA8IGdlbmRvdXJ5b2t1XCA7Civkv4Tmma/msJcgPCBuaXdha2FnZWlraVwgOwor6KOF55Sy6YOo6ZqKIDwgc291a291YnV0YWlcIDsKK+S4jeWPr+WFpeaApyA8IGZ1a2FueXV1c2VpXCA7CivmgqrmiK/ogIUgPCBpdGF6dXJhbW9ub1wgOwor5aSn56aP5bizIDwgZGFpZnVrdWNob3VcIDsKK+aZguevgOafhCA8IGppc2V0c3VnYXJhXCA7CivljZfkuqzmnKjntr8gPCBuYW5raW5tb21lblwgOwor56Ov6bWvIDwgaXNvaGl5b2RvcmlcIDsKK+WNsOixoeS4u+e+qSA8IGluc2hvdXNodWdpXCA7CivlkLjooYDprLwgPCBreXV1a2V0c3VraVwgOwor57OW5bC/55eFIDwgdG91bnlvdWJ5b3VcIDsKK+S4gOW8teS4gOW8myA8IGl0Y2hvdWlzc2hpXCA7CivljLrplpPliJfou4ogPCBrdWthbnJlc3NoYVwgOwor6Lui5Lu75YWIIDwgdGVuJyduaW5zYWtpXCA7CivmlK/phY3lipsgPCBzaGloYWlyeW9rdVwgOwor55u45oCd55u45oSbIDwgc291c2hpc291YWlcIDsKK+iIquepuuWfuuWcsCA8IGtvdWt1dWtpY2hpXCA7Civnm6Pmn7voqJjpjLIgPCBrYW5zYWtpcm9rdVwgOwor5oqA6KGT56e76LuiIDwgZ2lqdXRzdWl0ZW5cIDsKK+eUo+WFkOWItumZkCA8IHNhbmppc2VpZ2VuXCA7CivljZjpn7Pnr4AgPCB0YW4nJ29uc2V0c3VcIDsKK+aWsOiBnueoriA8IHNoaW5idW5kYW5lXCA7Civpo73lkoznirbmhYsgPCBob3V3YWpvdXRhaVwgOwor5L2O5LiY6Zm1IDwgdGVpa3l1dXJ5b3VcIDsKK+Wbvemam+eahCA8IGtva3VzYWl0ZWtpXCA7Civpg7flnJ/oibIgPCBreW91ZG9zaG9rdVwgOwor56uc55Sw5aerIDwgdGF0c3V0YWhpbWVcIDsKK+Wwj+WtpumkqCA8IHNob3VnYWt1a2FuXCA7Civnn6Xog73mpJzmn7sgPCBjaGlub3VrZW5zYVwgOwor5L2/56+A5ZujIDwgc2hpc2V0c3VkYW5cIDsKK+a2iOaBr+aWhyA8IHNob3Vzb2t1YnVuXCA7Civnt4vooaPojYkgPCBoaWdvcm9tb3NvdVwgOwor5Li76KiI5bGAIDwgc2h1a2Vpa3lva3VcIDsKK+mBk+W+s+W/gyA8IGRvdXRva3VzaGluXCA7CivmnKrmsbrlm5ogPCBtaWtldHN1c2h1dVwgOwor5oSb5ZSx5puyIDwgYWlzaG91a3lva3VcIDsKK+WtpOW9seaChOeEtiA8IGtvZWlzaG91emVuXCA7CivkupTnqK7nq7bmioAgPCBnb3NodWt5b3VnaVwgOwor5YG15a+f6ZqKIDwgdGVpc2F0c3V0YWlcIDsKK+Wbo+S9k+S/nemZuiA8IGRhbnRhaWhva2VuXCA7Civnmbrkv6HlgbQgPCBoYXNzaGluZ2F3YVwgOwor5aeJ5aa56YO95biCIDwgc2hpbWFpdG9zaGlcIDsKK+mBoOWxsemHjCA8IHRvb3lhbWF6YXRvXCA7CivnpZ7ntYznl5sgPCBzaGlua2VpdHN1dVwgOwor5LiN6YCa566H5omAIDwgZnV0c3V1a2FzaG9cIDsKK+elnue1jOeXhyA8IHNoaW5rZWlzaG91XCA7CivnpZ7ntYznl4UgPCBzaGlua2VpYnlvdVwgOwor56C06YKq6aGV5q2jIDwgaGFqYWtlbnNob3VcIDsKK+aUv+ayu+Wbo+S9kyA8IHNlaWppZGFudGFpXCA7CivkuIDllpzkuIDmhoIgPCBpa2tpaWNoaXl1dVwgOwor5a6a552A5rayIDwgdGVpY2hha3Vla2lcIDsKK+W8geiovOWtpiA8IGJlbnNob3VnYWt1XCA7Civmupblgpnlkb3ku6QgPCBqdW5iaW1laXJlaVwgOwor5Y+X6aiT56eR55uuIDwganVrZW5rYW1va3VcIDsKK+acqOeuoealveWZqCA8IG1va2thbmdha2tpXCA7Civnmbrkv6HkurogPCBoYXNzaGluJyduaW5cIDsKK+S4remrmOmfs+mDqCA8IGNodXVrb3VvbmJ1XCA7Civlj4vmhJvntZDlqZogPCB5dXVhaWtla2tvblwgOwor57eR5Zyw5bivIDwgcnlva3VjaGl0YWlcIDsKK+a1t+i7jeWfuuWcsCA8IGthaWd1bmtpY2hpXCA7CivnlJ/mtLvlnI8gPCBzZWlrYXRzdWtlblwgOwor6Zu75a2Q57Sg5a2QIDwgZGVuc2hpc29zaGlcIDsKK+eGseS8neWwjiA8IG5ldHN1ZGVuZG91XCA7CivpgZPlvrPlraYgPCBkb3V0b2t1Z2FrdVwgOwor5oSb5Zu96YGL5YuVIDwgYWlrb2t1dW5kb3VcIDsKK+mBqeagvOiAhSA8IHRla2lrYWt1c2hhXCA7Civlm7Pmm7jlrqQgPCB0b3Nob3NoaXRzdVwgOwor6Kaz6Z+z5qeYIDwga2FuJydub25zYW1hXCA7CivntZDlqZrlvI8gPCBrZWtrb25zaGlraVwgOwor6KW/5rSL5byPIDwgc2VpeW91c2hpa2lcIDsKK+S6uuaWh+WcsOeQhiA8IGppbm1vbmNoaXJpXCA7CivlirTlg43kuonorbAgPCByb3Vkb3Vzb3VnaVwgOwor5oOF5aCx5Yem55CGIDwgam91aG91c2hvcmlcIDsKK+WPr+Wkieizh+acrCA8IGthaGVuc2hpaG9uXCA7Civngrrmm7/lt67nm4ogPCBrYXdhc2VzYWVraVwgOwor6KqY5ouQ5LqL5Lu2IDwgeXV1a2FpamlrZW5cIDsKK+S4ieWkp+mDveW4giA8IHNhbmRhaXRvc2hpXCA7CivnlLflhqXliKkgPCBvdG9rb215b3VyaVwgOwor5omA6KaB5pmC6ZaTIDwgc2hveW91amlrYW5cIDsKK+Wls+aoqemBi+WLlSA8IGpva2VuJyd1bmRvdVwgOwor5YiG5pWj5Yem55CGIDwgYnVuc2Fuc2hvcmlcIDsKK+i1sOihjOWPr+iDvSA8IHNvdWtvdWthbm91XCA7Civlkb3ntrEgPCBpbm9jaGlkenVuYVwgOwor5rWB6KiA6aOb6KqeIDwgcnl1dWdlbmhpZ29cIDsKK+S4gOaWsOe0gOWFgyA8IGlzc2hpbmtpZ2VuXCA7CivlvpLmiYvkvZPmk40gPCB0b3NodXRhaXNvdVwgOwor5LiK6IWV6aqoIDwgam91d2Fua290c3VcIDsKK+eUn+WRveWKmyA8IHNlaW1laXJ5b2t1XCA7CivnoazpqqjmvKIgPCBrb3Vrb3RzdWthblwgOwor5ZWG5qWt5ZywIDwgc2hvdWd5b3VjaGlcIDsKK+mHkei9oSA8IGthbmFndXRzdXdhXCA7CivkuIflubTluoogPCBtYW4nJ25lbmRva29cIDsKK+WPo+i7iiA8IGt1Y2hpZ3VydW1hXCA7CivorJvph4jluKsgPCBrb3VzaGFrdXNoaVwgOwor5LiJ5bmF5a++IDwgc2FucHVrdXRzdWlcIDsKK+ibi+eZveWwvyA8IHRhbnBha3VueW91XCA7CivliLrmv4Doh60gPCBzaGlnZWtpc2h1dVwgOwor6I2J6Z6L6JmrIDwgd2FyYWppbXVzaGlcIDsKK+mHkeiejealrSA8IGtpbicneXV1Z3lvdVwgOwor5bCB5bu65Li7576pIDwgaG91a2Vuc2h1Z2lcIDsKK+iPnOeoruayuSA8IG5hdGFuZWFidXJhXCA7Civlj5fpqJPmiKbkuokgPCBqdWtlbnNlbnNvdVwgOwor5Ye66Zuy5aSn56S+IDwgaXp1bW90YWlzaGFcIDsKK+mbm+S6uuW9oiA8IGhpbmFuaW5neW91XCA7CivmqKnploDli6LlrrYgPCBrZW5tb25zZWlrYVwgOwor54Sh552A6Zm4IDwgbXVjaGFrdXJpa3VcIDsKK+S4iuWIhuWIpSA8IGpvdWZ1bmJldHN1XCA7CivlpKfli5XohIggPCBkYWlkb3VteWFrdVwgOwor54Sh57ea5pON57imIDwgbXVzZW5zb3VqdXVcIDsKK+elnueEoeaciCA8IGthbicnbmFkenVraVwgOwor5bm86aa05p+TIDwgb3NhbmFuYWppbWlcIDsKK+WGhuWRqOeOhyA8IGVuc2h1dXJpdHN1XCA7CivlgJ/lrrbkuonorbAgPCBzaGFra2Fzb3VnaVwgOwor5a6H5a6Z56eR5a2mIDwgdWNodXVrYWdha3VcIDsKK+WVhualreWPsiA8IHNob3VneW91c2hpXCA7Civlj6Tlhbjoirjog70gPCBrb3RlbmdlaW5vdVwgOwor5bGx5bKz55eFIDwgc2FuZ2FrdWJ5b3VcIDsKK+imquS7u+WumCA8IHNoaW4nJ25pbmthblwgOwor6L+96Leh6ICFIDwgdHN1aXNla2lzaGFcIDsKK+ixquiPr+e1oueImyA8IGdvdWtha2VucmFuXCA7CivnmbrkvJrlvI8gPCBoYWtrYWlzaGlraVwgOwor5amm5Lq66YGL5YuVIDwgZnVqaW4nJ3VuZG91XCA7CivluorpnaLnqY0gPCB5dWthbWVuc2VraVwgOwor5LiN5YuV5piO546LIDwgZnVkb3VteW91b3VcIDsKK+S9k+WkluWPl+eyviA8IHRhaWdhaWp1c2VpXCA7Civni7jopqrniLYgPCB0YW51a2lveWFqaVwgOwor5pyo55+z5ryiIDwgYm9rdXNla2lrYW5cIDsKK+WbvemYsuecgSA8IGtva3Vib3VzaG91XCA7Civli6Tli5nlubTpmZAgPCBraW5tdW5lbmdlblwgOwor5Zu95paH5a2mIDwga29rdWJ1bmdha3VcIDsKK+eUn+auluiFuiA8IHNlaXNob2t1c2VuXCA7CivmuoDloLTkuIDoh7QgPCBtYW5qb3VpdGNoaVwgOwor5YmN5LiW55Sf5a2YIDwgemVuc2VzZWl6b25cIDsKK+iHquauuueahCA8IGppc2F0c3V0ZWtpXCA7CivkvJroqIjlubTluqYgPCBrYWlrZWluZW5kb1wgOwor6YCg54mp5Li7IDwgem91YnV0c3VzaHVcIDsKK+S4h+iRieS7ruWQjSA8IG1hbicneW91Z2FuYVwgOwor5YKN6IG06ZqP5oSPIDwgYm91Y2hvdXp1aWlcIDsKK+eUqOWFteihkyA8IHlvdWhlaWp1dHN1XCA7Civntbblr77lpJrmlbAgPCB6ZXR0YWl0YXN1dVwgOwor5Y+W6Kq/IDwgdG9yaXNoaXJhYmVcIDsKK+mAgOiBt+mHkSA8IHRhaXNob2t1a2luXCA7CivntIXnmb3oqablkIggPCBrb3VoYWt1amlhaVwgOwor5Lya6KiI55uj5p+7IDwga2Fpa2Vpa2Fuc2FcIDsKK+W9juaciOeKtiA8IHdhbmdldHN1am91XCA7CivlhavntJjkuIDlrocgPCBoYWtrb3VpY2hpdVwgOwor6Iie5Y+w6KOF572uIDwgYnV0YWlzb3VjaGlcIDsKK+eUn+ayoeW5tCA8IHNlaWJvdHN1bmVuXCA7CivljZjkuIDmgKcgPCB0YW4nJ2l0c3VzZWlcIDsKK+m8u+afsSA8IGhhbmFiYXNoaXJhXCA7CivmjIHntprlipsgPCBqaXpva3VyeW9rdVwgOwor5LqL5YuZ6ZW35a6YIDwgamltdWNob3VrYW5cIDsKK+S4gOiIrOekvuS8miA8IGlwcGFuc2hha2FpXCA7Civml6XluJ3mmYLku6MgPCBuaXR0ZWlqaWRhaVwgOwor5paw6IGe5qWtIDwgc2hpbmJ1bmd5b3VcIDsKK+eZu+Wdgui7iue3miA8IHRvaGFuc2hhc2VuXCA7CivnpZ7ntYzmoLggPCBzaGlua2Vpa2FrdVwgOwor5LiW55WM5pyA5aSnIDwgc2VrYWlzYWlkYWlcIDsKK+aMh+WwjuWOn+eQhiA8IHNoaWRvdWdlbnJpXCA7CivmnqLou7jlm70gPCBzdXVqaWt1a29rdVwgOwor6YCg5qyh6aGb5rKbIDwgem91aml0ZW5wYWlcIDsKK+iIquepuueuoeeQhiA8IGtvdWt1dWthbnJpXCA7CivkuInoibLniYggPCBzYW5zaG9rdWJhblwgOwor56qv5Y2wIDwga2FtYWppcnVzaGlcIDsKK+S4remWk+mnhSA8IGNodXVrYW4nJ2VraVwgOwor6IO96KOF5p2fIDwgbm91c2hvdXpva3VcIDsKK+e1kOaZtuWtpiA8IGtlc3Nob3VnYWt1XCA7CivmhJ/mn5PntYzot68gPCBrYW5zZW5rZWlyb1wgOwor6Kej5rG65rOVIDwga2Fpa2V0c3Vob3VcIDsKK+itpuaIkuiJsiA8IGtlaWthaXNob2t1XCA7CivkuoznrYnou43mm7kgPCBuaXRvdWd1bnNvdVwgOwor5LiA5q+b5L2cIDwgaWNoaW1vdXNha3VcIDsKK+a4qeeGseaApyA8IG9uJyduZXRzdXNlaVwgOwor6Ziy54Gr5aGX5paZIDwgYm91a2F0b3J5b3VcIDsKK+iHque4hOiHque4myA8IGppam91amliYWt1XCA7CivpgJTkuK3kuIvou4ogPCB0b2NodXVnZXNoYVwgOwor55Kw5aKD5L+d6K23IDwga2Fua3lvdWhvZ29cIDsKK+WYmOeZuuimi+WZqCA8IHVzb2hha2tlbmtpXCA7CivpnaLkvJrmmYLplpMgPCBtZW5rYWlqaWthblwgOwor6YeN5qmf6Zai6YqDIDwganV1a2lrYW5qdXVcIDsKK+WGheWPjeiEmiA8IG5haWhhbmt5YWt1XCA7Civms5XmoYjlr6norbAgPCBob3VhbnNoaW5naVwgOwor5bu257iE5ryBIDwgaGFlbmF3YXJ5b3VcIDsKK+ebtOaWueS9kyA8IGNob2t1aG91dGFpXCA7Civoh6rli5XliLblvqEgPCBqaWRvdXNlaWd5b1wgOwor5a625peP6YGUIDwga2F6b2t1dGFjaGlcIDsKK+WIuua/gOeahCA8IHNoaWdla2l0ZWtpXCA7CivlgIvkurrmjIflsI4gPCBrb2ppbnNoaWRvdVwgOwor6Ieq54S255m654GrIDwgc2hpemVuaGFra2FcIDsKK+S4u+WLmeWkp+iHoyA8IHNodW11ZGFpamluXCA7Civnn63mnJ/msbrmiKYgPCB0YW5raWtlc3NlblwgOwor6KiA6Kqe6YGL55SoIDwgZ2VuZ291bicneW91XCA7CivkuqTmj5vlsYAgPCBrb3VrYW5reW9rdVwgOwor5Y2x6Zm65oCd5oOzIDwga2lrZW5zaGlzb3VcIDsKK+epuuWfn+euoeeQhiA8IGt1dWlraWthbnJpXCA7CivlvqHmrr/lpbPkuK0gPCBnb3RlbmpvY2h1dVwgOwor5LiD5bm05b+MIDwgc2hpY2hpbmVua2lcIDsKK+mao+S/neS6i+alrSA8IHJpbnBvamlneW91XCA7CivmgqrmiK/mm7ggPCBpdGF6dXJhZ2FraVwgOwor5Y2D5Lq66YedIDwgc2VuJyduaW5iYXJpXCA7CivlkIjmhI/lv4PkuK0gPCBnb3Vpc2hpbmp1dVwgOwor5LiW55WM6KiY6YyyIDwgc2VrYWlraXJva3VcIDsKK+WfuuacrOadoeS7tiA8IGtpaG9uam91a2VuXCA7CivovrLmsJHkuIDmj4YgPCBub3VtaW4nJ2lra2lcIDsKK+WJjeS7o+acquiBniA8IHplbmRhaW1pbW9uXCA7Civmtojmr5LmtrIgPCBzaG91ZG9rdWVraVwgOwor6KSH5ZCI5rGa5p+TIDwgZnVrdWdvdW9zZW5cIDsKK+e1tuWvvumbtuW6piA8IHpldHRhaXJlaWRvXCA7Civmp4vmiJDlj6/og70gPCBrb3VzZWlrYW5vdVwgOwor5LiA5Lq66Iie5Y+wIDwgaGl0b3JpYnV0YWlcIDsKK+earuS4i+e1hOe5lCA8IGhpa2Fzb3NoaWtpXCA7CivmsrnnoKXnn7MgPCBhYnVyYXRvaXNoaVwgOwor5Zyw5LiL6LOH5rqQIDwgY2hpa2FzaGlnZW5cIDsKK+eLkOmlgumjqSA8IGtpdHN1bmV1ZG9uXCA7Civmv4PopJDoibIgPCBub3VrYXNzaG9rdVwgOwor5p2Q5pyo5ZWGIDwgemFpbW9rdXNob3VcIDsKK+eZveWMluWAi+S9kyA8IGhha3VrYWtvdGFpXCA7Civpm7voqbHlm57nt5ogPCBkZW53YWthaXNlblwgOwor5LiN5q2j5ZKs5ZCIIDwgZnVzZWlrb3Vnb3VcIDsKK+aRqeiotuS4jeaAneitsCA8IG1ha2FmdXNoaWdpXCA7Civljp/oibLniYggPCBnZW5zaG9rdWJhblwgOwor576O5a655L2T5pONIDwgYml5b3V0YWlzb3VcIDsKK+WNlOitsOmbouWpmiA8IGt5b3VnaXJpa29uXCA7CivolKbomL8gPCB0c3V0YWthenVyYVwgOwor5rip5pqW5YmN57eaIDwgb25kYW56ZW5zZW5cIDsKK+WNmOmgheW8jyA8IHRhbmtvdXNoaWtpXCA7CivmlrDopo/kv53nrqEgPCBzaGlua2lob2thblwgOwor5Zyf5rCX6ImyIDwgdHN1Y2hpa2Vpcm9cIDsKK+WPlue3oCA8IHRvcmlzaGltYXJpXCA7Civku5jlsZ7nr4AgPCBmdXpva3VzZXRzdVwgOwor5LiA6LKr55Wq5Y+3IDwgaWtrYW5iYW5nb3VcIDsKK+ePvuihjOazleimjyA8IGdlbmtvdWhvdWtpXCA7CivkuIDnlarpto8gPCBpY2hpYmFuZG9yaVwgOwor57SL56ug5a2mIDwgbW9uc2hvdWdha3VcIDsKK+ecn+WPquS4rSA8IG1hdHRhZGFuYWthXCA7CivnpZblm73lvqnluLAgPCBzb2tva3VmdWtraVwgOwor5ZCr5rC054Kt57SgIDwgZ2Fuc3VpdGFuc29cIDsKK+WKtOWDjeaZgumWkyA8IHJvdWRvdWppa2FuXCA7Civlh7rluK3ogIUgPCBzaHVzc2VraXNoYVwgOwor54K65pu/55u45aC0IDwga2F3YXNlc291YmFcIDsKK+S4lueVjOS4gOWRqCA8IHNla2FpaXNzaHV1XCA7CivljLvnmYLms5XkurogPCBpcnlvdWhvdWppblwgOwor6ZaA5YmN55S6IDwgbW9uemVubWFjaGlcIDsKK+awt+iiiyA8IGtvb3JpYnVrdXJvXCA7CivpvJPoiJ7mv4DlirEgPCBrb2J1Z2VraXJlaVwgOwor5pWZ6KiT55qEIDwga3lvdWt1bnRla2lcIDsKK+iyr+mHkeWxgCA8IGNob2tpbmt5b2t1XCA7Civlrpjlg5roh60gPCBrYW5yeW91c2h1dVwgOwor6LmE6YmE5belIDwgdGVpdGV0c3Vrb3VcIDsKK+eykuW6puWIhuW4gyA8IHJ5dXVkb2J1bnB1XCA7CivnpZ7ntYzlraYgPCBzaGlua2VpZ2FrdVwgOwor5oqV5LiL6LOH5pysIDwgdG91a2FzaGlob25cIDsKK+eUqOaEj+WRqOWIsCA8IHlvdWlzaHV1dG91XCA7CivooajnjoTplqIgPCBvbW90ZWdlbmthblwgOwor5YaF54eD5qmf6ZaiIDwgbmFpbmVua2lrYW5cIDsKK+WHuuW8teW6lyA8IHNodXRjaG91dGVuXCA7Civml4XooYzpnoQgPCByeW9rb3VrYWJhblwgOwor5rib5aGp6aOfIDwgZ2VuJydlbnNob2t1XCA7Civlm6PkvZPlrqIgPCBkYW50YWlreWFrdVwgOwor6Ziy5rC05Yqg5belIDwgYm91c3Vpa2Frb3VcIDsKK+W/g+mciuWtpiA8IHNoaW5yZWlnYWt1XCA7CivlgIvkurrmtojosrsgPCBrb2ppbnNob3VoaVwgOwor5Luu5oCn6L+R6KaWIDwga2FzZWlraW5zaGlcIDsKK+Wkp+ato+eQtCA8IHRhaXNob3Vnb3RvXCA7CivmrKDli6TnjocgPCBrZWtraW5yaXRzdVwgOwor5a6a552A5YmkIDwgdGVpY2hha3V6YWlcIDsKK+WNl+ilvyA8IG1pbmFtaW5pc2hpXCA7CivlhaXloLTmlpkgPCBueXV1am91cnlvdVwgOwor6YCQ6Kqe6KizIDwgY2hpa3Vnb3lha3VcIDsKK+aAneiAg+WKmyA8IHNoaWtvdXJ5b2t1XCA7CivkubPnlKjniZsgPCBueXV1eW91Z3l1dVwgOwor5q2j6Kaa5Z2KIDwgc2hvdWdha3Vib3VcIDsKK+e3keiXu+mhniA8IHJ5b2t1c291cnVpXCA7Civnm67mkoPogIUgPCBtb2t1Z2VraXNoYVwgOwor6buS5puc55+zIDwga29rdXlvdXNla2lcIDsKK+epuuawl+S8neafkyA8IGt1dWtpZGVuc2VuXCA7CivmuoDkuIDlubQgPCBtYW4nJ2ljaGluZW5cIDsKK+ayoeaIkeeahCA8IGJvdHN1Z2F0ZWtpXCA7CivlkKvlobXnjocgPCBnYW5qaW5yaXRzdVwgOwor5bm85bm05pmC5LujIDwgeW91bmVuamlkYWlcIDsKK+mAgOiBt+iAhSA8IHRhaXNob2t1c2hhXCA7CivolLXlsYvmlbcgPCBrdXJheWFzaGlraVwgOwor56S+5Lya5b6p5biwIDwgc2hha2FpZnVra2lcIDsKK+mbu+awl+ijveWTgSA8IGRlbmtpc2VpaGluXCA7CivljIXph5EgPCB0c3V0c3VtaWtpblwgOwor5YaN5bu656+JIDwgc2Fpa2VuY2hpa3VcIDsKK+eUo+WppuS6uuenkeWMuyA8IHNhbmZ1amlua2FpXCA7CivkuIDosqvkvZzmpa0gPCBpa2thbnNhZ3lvdVwgOwor5rue5Zyo5pyf6ZaTIDwgdGFpemFpa2lrYW5cIDsKK+eMrui6q+eahCA8IGtlbnNoaW50ZWtpXCA7CivnhKHlvaLosqHnlKMgPCBtdWtlaXphaXNhblwgOwor5aao5a6z54mpIDwgYm91Z2FpYnV0c3VcIDsKK+eCueecvOiWrCA8IHRlbmdhbicneWFrdVwgOwor5YWD6aaW55u4IDwgbW90b3NodXNob3VcIDsKK+eEoeaWrei7oui8iSA8IG11ZGFudGVuc2FpXCA7CivmgZDmsLTnl4UgPCBreW91c3VpYnlvdVwgOwor5Z2H6KGh5LqI566XIDwga2lua291eW9zYW5cIDsKK+WvhuWjsuWTgSA8IG1pdHN1YmFpaGluXCA7Civnn7Plt53nnIwgPCBpc2hpa2F3YWtlblwgOwor5LuY5biv5p2h5Lu2IDwgZnV0YWlqb3VrZW5cIDsKK+WJr+S8mumVtyA8IGZ1a3VrYWljaG91XCA7CivnmbrmmI7ogIUgPCBoYXRzdW1laXNoYVwgOwor6LuN5LqL5bel5aC0IDwgZ3Vuamlrb3Vqb3VcIDsKK+acieWKueaVsOWtlyA8IHl1dWtvdXN1dWppXCA7CivlibXkvZznmoQgPCBzb3VzYWt1dGVraVwgOwor6IeN5LiL5Li555SwIDwgc2Vpa2F0YW5kZW5cIDsKK+Wkp+mAhue9qiA8IHRhaWd5YWt1emFpXCA7CivoqabnlKjmnJ/plpMgPCBzaGl5b3VraWthblwgOwor5LiA5YWD55qEIDwgaWNoaWdlbnRla2lcIDsKK+WMluWtpuWkieWMliA8IGthZ2FrdWhlbmthXCA7Civoh6rli5Xou4rnqI4gPCBqaWRvdXNoYXplaVwgOwor6KiA6Kqe6YGT5patIDwgZ29uZ29kb3VkYW5cIDsKK+eZvumdouebuCA8IGh5YWt1bWVuc291XCA7CivkuI3kvrXnlaUgPCBmdXNoaW5yeWFrdVwgOwor5Y+k54uQIDwgZnVydWdpdHN1bmVcIDsKK+S7mOWxnueJqSA8IGZ1em9rdWJ1dHN1XCA7Civmi4Xkv53nianmqKkgPCB0YW5wb2J1a2tlblwgOwor5Za25qWt5pmC6ZaTIDwgZWlneW91amlrYW5cIDsKK+WLieW8t+S4rSA8IGJlbmt5b3VjaHV1XCA7CivlhpnnnJ/luLMgPCBzaGFzaGluY2hvdVwgOwor5LiA55uu5pWjIDwgaWNoaW1va3VzYW5cIDsKK+miqOWKm+ioiCA8IGZ1dXJ5b2t1a2VpXCA7CivmtLvnlKjlvaIgPCBrYXRzdXlvdWtlaVwgOwor6Ieq5YuV5omJIDwgamlkb3V0b2JpcmFcIDsKK+aEm+Wmu+W8geW9kyA8IGFpc2FpYmVudG91XCA7CivkvJrnpL7nq4sgPCBrYWlzaGFyaXRzdVwgOwor576O55qE5auM5oKqIDwgYml0ZWtpa2VuJydvXCA7Civopovnm67lvaIgPCBtaW1la2F0YWNoaVwgOwor5LiJ5Y2D5LiW55WMIDwgc2FuemVuc2VrYWlcIDsKK+mRkeWIpeaJgCA8IGthbmJldHN1c2hvXCA7CivlpJrph43mlL7pgIEgPCB0YWp1dWhvdXNvdVwgOwor5LqM6YeN5aSW5LqkIDwgbmlqdXVnYWlrb3VcIDsKK+S7ruWlkee0hCA8IGthcmlrZWl5YWt1XCA7CivmoLjmi6HmlaMgPCBrYWt1a2FrdXNhblwgOwor5ZGo6L665Zu9IDwgc2h1dWhlbmtva3VcIDsKK+S6iOWCmeW3peS9nCA8IHlvYmlrb3VzYWt1XCA7Civnn63ms6LmlL7pgIEgPCB0YW5wYWhvdXNvdVwgOwor6aKo5YWJ57W25L2zIDwgZnV1a291emVra2FcIDsKK+W/heeEtuaApyA8IGhpdHN1emVuc2VpXCA7CivkuLvmg4XkuLvnvqkgPCBzaHVqb3VzaHVnaVwgOwor5Lih5pu/5ZWGIDwgcnlvdWdhZXNob3VcIDsKK+ihjOWLleS4u+e+qSA8IGtvdWRvdXNodWdpXCA7Civoh6rliIboh6rouqsgPCBqaWJ1bmppc2hpblwgOwor6ISx6Imy5YmkIDwgZGFzc2hva3V6YWlcIDsKK+WknOWFieWhl+aWmSA8IHlha291dG9yeW91XCA7Civlj7Plv4PlrqQgPCB1c2hpbnNoaXRzdVwgOwor5Yqb6Z2pIDwgY2hpa2FyYWdhd2FcIDsKK+S4reWkruWPoyA8IGNodXVvdWd1Y2hpXCA7CivnnJ/oj4znl4cgPCBzaGlua2luc2hvdVwgOwor5Zyn5Yqb5rOiIDwgYXRzdXJ5b2t1aGFcIDsKK+W4sOeEoeS7ruiqrCA8IGtpbXVrYXNldHN1XCA7CivluILloLTljp/nkIYgPCBzaGlqb3VnZW5yaVwgOwor5YWo5Zu955qEIDwgemVua29rdXRla2lcIDsKK+S6rOa7i+WcsOaWuSA8IGtlaWppY2hpaG91XCA7CivnuITmoq/lrZAgPCBuYXdhYmFzaGlnb1wgOwor5aSn576p5ZCN5YiGIDwgdGFpZ2ltZWlidW5cIDsKK+WRvOWQuOmBi+WLlSA8IGtva3l1dXVuZG91XCA7Civonrrml4vpmo7mrrUgPCByYXNlbmthaWRhblwgOwor6Iux6Kqe5pWZ6IKyIDwgZWlnb2t5b3Vpa3VcIDsKK+ixoeeJmea1t+WyuCA8IHpvdWdla2FpZ2FuXCA7CivmiJHnianpoZQgPCB3YWdhbW9ub2dhb1wgOwor5pel5pys6ISz54KOIDwgbmlob24nJ25vdWVuXCA7Civpo5/loILou4ogPCBzaG9rdWRvdXNoYVwgOwor6YGL5Za25aeU5ZOh5LyaIDwgdW4nJ2VpaWlua2FpXCA7CivlloTnn6XorZggPCB6ZW5jaGlzaGlraVwgOwor5ZKM6a2C5ryi5omNIDwgd2Frb25rYW5zYWlcIDsKK+e1jOWWtuWGjeW7uiA8IGtlaWVpc2Fpa2VuXCA7CivohLPkuIvlnoLkvZMgPCBub3VrYXN1aXRhaVwgOwor5LiA5YaG5pytIDwgaWNoaWVuc2F0c3VcIDsKK+imluiBtOimmiA8IHNoaWNob3VrYWt1XCA7Civli5/ph5HpgYvli5UgPCBib2tpbicndW5kb3VcIDsKK+iAkOeGsemLvCA8IHRhaW5ldHN1a291XCA7CivliLvoi6bli4nlirEgPCBrb2trdWJlbnJlaVwgOwor5pei5ama55S35oCnIDwga2lrb25kYW5zZWlcIDsKK+mdqeWRveeahCA8IGtha3VtZWl0ZWtpXCA7CivmsrvmsLTlt6XkuosgPCBjaGlzdWlrb3VqaVwgOwor5bCP5LyR5q2iIDwgc2hvdWt5dXVzaGlcIDsKK+aXpeacrOS6uuirliA8IG5paG9uamlucm9uXCA7Civlpb3lj5bntYQgPCBrb3V0b3Jpa3VtaVwgOwor5Y2a5aWV5a6/IDwgYmFrdWNoaXlhZG9cIDsKK+i7jeS6i+WFrOWCtSA8IGd1bmppa291c2FpXCA7CivljYHkurrljYHoibIgPCBqdXVuaW50b2lyb1wgOwor54Sh6YWN5Lya56S+IDwgbXVoYWlnYWlzaGFcIDsKK+iEs+iyp+ihgCA8IG5vdWhpbmtldHN1XCA7Civlrrbml4/miYvlvZMgPCBrYXpva3V0ZWF0ZVwgOwor5rSX56S85byPIDwgc2VucmVpc2hpa2lcIDsKK+eUsumqqOaWhyA8IGtvdWtvdHN1YnVuXCA7Civml6XpioDliLggPCBuaWNoaWdpbmtlblwgOwor576F6Yed55uk5bqnIDwgcmFzaGluYmFuemFcIDsKK+emj+elieapn+WZqCA8IGZ1a3VzaGlraWtpXCA7CivosqfmsJHnqp8gPCBoaW5taW5rdXRzdVwgOwor5aWJ54yu54mpIDwgaG91a2VuYnV0c3VcIDsKK+Wun+alreWutiA8IGppdHN1Z3lvdWthXCA7Civog7jnrpfnlKggPCBtdW5lemFuJyd5b3VcIDsKK+aaq+WumuS6iOeulyA8IHphbnRlaXlvc2FuXCA7Civoh6rosrvlh7rniYggPCBqaWhpc2h1cHBhblwgOwor5Yas5pyo56uLIDwgZnV5dWtvZGFjaGlcIDsKK+W4uOeUqOa8ouWtlyA8IGpvdXlvdWthbmppXCA7CivntZDntK7ns7ggPCBrZXNzYXRzdXNoaVwgOwor546L5L6v6LK05pePIDwgb3Vrb3VraXpva3VcIDsKK+mAhuWuo+S8nSA8IGd5YWt1c2VuZGVuXCA7CivkurrkvZPmqKHlnosgPCBqaW50YWltb2tlaVwgOwor6a6u57SF6ImyIDwgc2Vua291c2hva3VcIDsKK+WFpeWbveeojiA8IG55dXVrb2t1emVpXCA7Civml6Xopb/ovp7lhbggPCBuaXNzZWlqaXRlblwgOwor56eB5YSAIDwgd2F0YWt1c2hpZ2lcIDsKK+aEn+aDheenu+WFpSA8IGthbmpvdWlueXV1XCA7Civmi6HlpKfpj6EgPCBrYWt1ZGFpa3lvdVwgOwor5Zyw5pa556u26aasIDwgY2hpaG91a2VpYmFcIDsKK+mBk+alveiAhSA8IGRvdXJha3Vtb25vXCA7CivlpbPmiL/lvbkgPCBueW91Ym91eWFrdVwgOwor5p2h57SE5Zu9IDwgam91eWFrdWtva3VcIDsKK+WKm+i2syA8IGNoaWthcmFhc2hpXCA7CivntYzmuIjlirnmnpwgPCBrZWl6YWlrb3VrYVwgOwor5Luj5pu/54mpIDwgZGFpdGFpYnV0c3VcIDsKK+a3t+WHneWcnyA8IGtvbmt1cml6ZXRvXCA7CivmsJHkuovoqLToqJ8gPCBtaW5qaXNvc2hvdVwgOwor5YyW5a2m6KiY5Y+3IDwga2FnYWt1a2lnb3VcIDsKK+engeS+myA8IHdhdGFzaGlkb21vXCA7Civlj4LliqDmhI/orZggPCBzYW5rYWlzaGlraVwgOwor5oim5pmC5L2T5Yi2IDwgc2Vuaml0YWlzZWlcIDsKK+iHqueUseW4guWgtCA8IGppeXV1c2hpam91XCA7CivlhrfmiL/lrozlgpkgPCByZWlib3VrYW5iaVwgOwor6Ieq5bex5Y+M5a++IDwgamlrb3NvdXRzdWlcIDsKK+a2iOavkuWJpCA8IHNob3Vkb2t1emFpXCA7CivlipvosqAgPCBjaGlrYXJhbWFrZVwgOwor54Gr54e15o6b5biDIDwga290YXRzdWdha2VcIDsKK+S4h+iDveiWrCA8IG1hbicnbm91eWFrdVwgOwor5L+h5oaR5oCnIDwgc2hpbnB5b3VzZWlcIDsKK+W4jOacm+S+oeagvCA8IGtpYm91a2FrYWt1XCA7CivliJfkvJ3kvZMgPCByZXRzdWRlbnRhaVwgOwor5Y+j5Y+v56yRIDwga3VjaGlva2FzaGlcIDsKK+mBuOWvvuacrOmDqCA8IHNlbnRhaWhvbmJ1XCA7CivlhYjpoK3miZPogIUgPCBzZW50b3VkYXNoYVwgOwor5a6f55Sf5rS7IDwgamlzc2Vpa2F0c3VcIDsKK+WQjeWJjeepuumWkyA8IG5hbWFla3V1a2FuXCA7Civnmb7lp5PlrrYgPCBoeWFrdXNob3V5YVwgOwor5rWF6I2J5rW36IuUIDwgYXNha3VzYW5vcmlcIDsKK+S6i+alreacrOmDqCA8IGppZ3lvdWhvbmJ1XCA7CivnkIboq5bpl5jkuokgPCByaXJvbnRvdXNvdVwgOwor5Lq65Y+j5aKX5YqgIDwgamlua291em91a2FcIDsKK+WkluS6pOi+nuS7pCA8IGdhaWtvdWppcmVpXCA7CivlkIzpn7PnlbDnvqnoqp4gPCBkb3VvbicnaWdpZ29cIDsKK+awj+Wnk+WItuW6piA8IHNoaXNlaXNlaWRvXCA7CivkuIDlsYDpg6ggPCBpY2hpa3lva3VidVwgOwor57iE5paH5pmC5LujIDwgam91bW9uamlkYWlcIDsKK+mWk+S4gOmrqiA8IGthbicnaXBwYXRzdVwgOwor5LiW55WM5aSn5oimIDwgc2VrYWl0YWlzZW5cIDsKK+apn+WLlea8lOe/kiA8IGtpZG91ZW5zaHV1XCA7Civoh6rorablm6Plk6EgPCBqaWtlaWRhbicnaW5cIDsKK+mbu+awl+aKteaKlyA8IGRlbmtpdGVpa291XCA7CivpjqfkuIDlhbcgPCB5b3JvaWljaGlndVwgOwor55S65Lq654mpIDwgY2hvdW5pbm1vbm9cIDsKK+mAmuios+WumCA8IHRzdXV5YWt1a2FuXCA7Civlv4XopoHmgqogPCBoaXRzdXlvdWFrdVwgOwor6YmE6YGT57ayIDwgdGV0c3Vkb3Vtb3VcIDsKK+WOn+eUo+eJqSA8IGdlbnNhbmJ1dHN1XCA7Civlmajmpb3mm7IgPCBraWdha3VreW9rdVwgOwor5b+F6KaB5oCnIDwgaGl0c3V5b3VzZWlcIDsKK+mYsumfs+ijhee9riA8IGJvdW9uc291Y2hpXCA7CivljYrpnaLorZggPCBoYW5tZW5zaGlraVwgOwor5rC05r6EIDwgbWl6dXN1bWFzaGlcIDsKK+WPluaJsSA8IHRvcmlhdHN1a2FpXCA7CivlpKLlv4PlnLAgPCB5dW1lZ29rb2NoaVwgOwor6LKg5YK15ZCI6KiIIDwgZnVzYWlnb3VrZWlcIDsKK+S7iumAseS4rSA8IGtvbnNodXVjaHV1XCA7CivoqbHkuIvmiYsgPCBoYW5hc2hpYmV0YVwgOwor6YGK6LuN6KiY6ICFIDwgeXV1Z3Vua2lzaGFcIDsKK+S+oeWApOS9k+ezuyA8IGthY2hpdGFpa2VpXCA7Civkuozph43ntZDlqZogPCBuaWp1dWtla2tvblwgOwor5LiA6ZW35LiA55+tIDwgaXRjaG91aXR0YW5cIDsKK+itt+mAgeiIueWboyA8IGdvc291c2VuZGFuXCA7Civniq/ooYznj77loLQgPCBoYW5rb3VnZW5iYVwgOwor5oSP6KaL5bqD5ZGKIDwgaWtlbmtvdWtva3VcIDsKK+Wwj+S5l+eahCA8IHNob3Vqb3V0ZWtpXCA7CivlloTlm6DlloTmnpwgPCB6ZW4nJ2luemVua2FcIDsKK+eri+iEmueCuSA8IHJpa2t5YWt1dGVuXCA7CivpiYTlhZwgPCB0ZXRzdWthYnV0b1wgOwor54Sh5Lq65Zyw5bivIDwgbXVqaW5jaGl0YWlcIDsKK+e1jOWWtui7ouaPmyA8IGtlaWVpdGVua2FuXCA7CivkuI3kv6Hlrp8gPCBmdXNoaW5qaXRzdVwgOwor6LKp5aOy5qmf5LyaIDwgaGFuYmFpa2lrYWlcIDsKK+S6ieWlquaIpiA8IHNvdWRhdHN1c2VuXCA7CivllYblrablo6sgPCBzaG91Z2FrdXNoaVwgOwor5LiK5bGL5pW3IDwga2FtaXlhc2hpa2lcIDsKK+iLpeWkp+WwhiA8IHdha2FkYWlzaG91XCA7CivpgaDpmpTmk43kvZwgPCBlbmtha3Vzb3VzYVwgOwor5pON6Ii15a6kIDwgc291ZGFzaGl0c3VcIDsKK+aIkOS6uuW8jyA8IHNlaWppbnNoaWtpXCA7CivmhaPnlKjoqp7lj6UgPCBrYW4nJ3lvdWdva3VcIDsKK+a2suS9k+epuuawlyA8IGVraXRhaWt1dWtpXCA7CivmlrDpnaLnm64gPCBzaGlubWVubW9rdVwgOwor5rOo5paH5pyNIDwgY2h1dW1vbmZ1a3VcIDsKK+S4iuajn+W8jyA8IGpvdXRvdXNoaWtpXCA7CivotaTpioXoibIgPCBzaGFrdWRvdWlyb1wgOwor5Ye65YiD5YyF5LiBIDwgZGViYWJvdWNob3VcIDsKK+WQkeWtpuW/gyA8IGtvdWdha3VzaGluXCA7CivmuIfmnJvogIUgPCBrYXRzdWJvdXNoYVwgOwor5Zyf6K6a5pys57eaIDwgZG9zYW5ob25zZW5cIDsKK+iyoeaUv+aUr+aPtCA8IHphaXNlaXNoaWVuXCA7Civlrq7lu7fnlLvlrrYgPCBreXV1dGVpZ2FrYVwgOwor5Z+36YGU5ZCPIDwgc2hpdHRhdHN1cmlcIDsKK+acgOW+jOWIl+i7iiA8IHNhaWdvcmVzc2hhXCA7CivnkIblt6Xlrabpg6ggPCByaWtvdWdha3VidVwgOwor5L+d566h5Lya56S+IDwgaG9rYW5nYWlzaGFcIDsKK+S5l+W/g+WcsCA8IG5vcmlnb2tvY2hpXCA7CivphY3lkIjnpoHlv4wgPCBoYWlnb3VraW5raVwgOwor5byU56Wt5paZIDwgY2hvdXNhaXJ5b3VcIDsKK+mBjuWJsOaKleizhyA8IGtham91dG91c2hpXCA7CivlrrbplbfliLbluqYgPCBrYWNob3VzZWlkb1wgOwor5Y+v6IG06Led6ZuiIDwga2FjaG91a3lvcmlcIDsKK+S4i+aknOWIhiA8IHNoaXRha2VuYnVuXCA7CivopqrpoZ7nuIHogIUgPCBzaGlucnVpZW5qYVwgOwor6ZaL5YKs5byPIDwga2Fpc2Fpc2hpa2lcIDsKK+eUsOiIjuWomCA8IGluYWthbXVzdW1lXCA7CivnrrHngavpiaIgPCBoYWtvaGliYWNoaVwgOwor54Sh55CG5b+D5LitIDwgbXVyaXNoaW5qdXVcIDsKK+WJr+mmluebuCA8IGZ1a3VzaHVzaG91XCA7CivlubTos4DokYnmm7ggPCBuZW5nYWhhZ2FraVwgOwor5pW15oS+5b+DIDwgdGVraWdhaXNoaW5cIDsKK+mHiOepuua1tyA8IHNoYWt1a3V1a2FpXCA7CivpgKPpgqbkuojnrpcgPCByZW5wb3V5b3NhblwgOwor57WE57mU56WoIDwgc29zaGlraWh5b3VcIDsKK+WHuui6q+iAhSA8IHNodXNzaGluc2hhXCA7CivlibXkvqHlrabkvJogPCBzb3VrYWdha2thaVwgOwor5LuV5LqL6YePIDwgc2hpZ290b3J5b3VcIDsKK+WNiuaciOW9oiA8IGhhbmdldHN1a2VpXCA7CivliIblrZDoqqwgPCBidW5zaGlzZXRzdVwgOwor5Y2K5pyI5byBIDwgaGFuZ2V0c3ViZW5cIDsKK+ato+etlOeOhyA8IHNlaXRvdXJpdHN1XCA7CivliKnlrZDoo5zntaYgPCByaXNoaWhva3l1dVwgOwor5a2j56+A55qEIDwga2lzZXRzdXRla2lcIDsKK+awt+aelSA8IGtvb3JpbWFrdXJhXCA7CivmsLTmn7EgPCBtaXp1YmFzaGlyYVwgOwor5qC55pys5Y6f55CGIDwga29ucG9uZ2VucmlcIDsKK+WuieWFqOS/nemanCA8IGFuemVuaG9zaG91XCA7Civljp/lrZDoqqwgPCBnZW5zaGlzZXRzdVwgOwor5YGl5bq35L+d6Zm6IDwga2Vua291aG9rZW5cIDsKK+aal+m7kuaZguS7oyA8IGFua29rdWppZGFpXCA7CivkuJbku6PkuqTku6MgPCBzZWRhaWtvdXRhaVwgOwor56We5ZiX56WtIDwga2FuJyduYW1lc2FpXCA7CivmoafoiJ7lj7AgPCBoaW5va2lidXRhaVwgOwor6Lui6YCB6Zu76KmxIDwgdGVuc291ZGVud2FcIDsKK+WvvuWxgOiAhSA8IHRhaWt5b2t1c2hhXCA7Civosp3mrrvpqqggPCBrYWlnYXJhYm9uZVwgOwor5Y2D5Lih566xIDwgc2VucnlvdWJha29cIDsKK+aYreWSjOaZguS7oyA8IHNob3V3YWppZGFpXCA7CivntJTlj47lhaUgPCBqdW5zaHV1bnl1dVwgOwor54mp55CG55qEIDwgYnV0c3VyaXRla2lcIDsKK+ael+eUo+eJqSA8IHJpbnNhbmJ1dHN1XCA7CivnqoHnhLbmrbsgPCB0b3RzdXplbnNoaVwgOwor5L2/55So6Kix5Y+vIDwgc2hpeW91a3lva2FcIDsKK+iovOWPluazlSA8IHNob3V0b3JpaG91XCA7CivmrbTlj7LnmoQgPCByZWtpc2hpdGVraVwgOwor57WE57mU55qEIDwgc29zaGlraXRla2lcIDsKK+i0iOWRiOW8jyA8IHpvdXRlaXNoaWtpXCA7CivnqY3ovInph48gPCBzZWtpc2FpcnlvdVwgOwor6Ieq55m655qEIDwgamloYXRzdXRla2lcIDsKK+W3sSA8IHRzdWNoaW5vdG9cIDsKK+WxoSA8IHNoaWJhc2hpYmFcIDsKK+isgCA8IGhha2FyaWdvdG9cIDsKK+eGnyA8IHRzdWt1ZHp1a3VcIDsKK+WYtCA8IGt1Y2hpYmFzaGlcIDsKK+OAhSA8IGt1cmlrYWVzaGlcIDsKK+Wcn+efs+a1gSA8IGRvc2VraXJ5dXVcIDsKK+W4gueUuuadkSA8IHNoaWNob3Vzb25cIDsKK+mfs+alveaYoOeUuyA8IG9uZ2FrdWVpZ2FcIDsKK+mjn+WhqeawtCA8IHNob2t1ZW5zdWlcIDsKK+a9pOa7keayuSA8IGp1bmthdHN1eXVcIDsKK+a1geaYn+e+pCA8IHJ5dXVzZWlndW5cIDsKK+Wlkee0hOmHkSA8IGtlaXlha3VraW5cIDsKK+axuuitsOaWhyA8IGtldHN1Z2lidW5cIDsKK+iSuOeVmemFkiA8IGpvdXJ5dXVzaHVcIDsKK+mHneiRieaouSA8IHNoaW4nJ3lvdWp1XCA7CivnjJvli4nlvLcgPCBtb3ViZW5reW91XCA7CivlroflrpnpgYrms7MgPCB1Y2h1dXl1dWVpXCA7Civmt7HliLvljJYgPCBzaGlua29rdWthXCA7CivliIfpgJogPCBraXJpZG9vc2hpXCA7CivmiYDlvpfpoZQgPCB0b2tvcm9lZ2FvXCA7CivlvqHlrqLmp5ggPCBva3lha3VzYW1hXCA7CivolLXmm7jnpaggPCB6b3VzaG9oeW91XCA7Civkurrlt6Xpm6ogPCBqaW5rb3V5dWtpXCA7CivlkIzohbnku5QgPCBkb3VmdWt1c2hpXCA7CivlsITlgJblv4MgPCBzaGFrb3VzaGluXCA7Civkv53lgaXliLbluqYgPCBob2tlbnNlaWRvXCA7CivmupblgpnpgYvli5UgPCBqdW5iaXVuZG91XCA7Civku6PorbDliLbluqYgPCBkYWlnaXNlaWRvXCA7CivljZrlo6vlj7cgPCBoYWt1c2hpZ291XCA7CivlhaXmvIHogIUgPCBueXV1Z3lvc2hhXCA7CivliKXpmaTmqKkgPCBiZXRzdWpva2VuXCA7CivmiKbpl5jmnI0gPCBzZW50b3VmdWt1XCA7CivmqKHlnovlnLDlm7MgPCBtb2tlaWNoaXp1XCA7CivppIrpto/mpa0gPCB5b3VrZWlneW91XCA7CivorbDmsbrmqKkgPCBnaWtldHN1a2VuXCA7CivlhaXlnJLmlpkgPCBueXV1ZW5yeW91XCA7CivlhKrlhYjnmoQgPCB5dXVzZW50ZWtpXCA7CivnhKHojLboi6bojLYgPCBtdWNoYWt1Y2hhXCA7CivlkIzkuIDoppYgPCBkb3VpdHN1c2hpXCA7Civlj6TlvoDku4rmnaUgPCBrb291a29ucmFpXCA7Civpm6PooYzpgZMgPCBuYW5neW91ZG91XCA7CivpgbrlpLHlk4EgPCBpc2hpdHN1aGluXCA7Civpo5/mlofljJYgPCBzaG9rdWJ1bmthXCA7Civpr7Dpq60gPCBuYW1henVoaWdlXCA7CivmsJHkuLvlm70gPCBtaW5zaHVrb2t1XCA7Civlho3luLDnhrEgPCBzYWlraW5ldHN1XCA7Civngq3ljJbniakgPCB0YW5rYWJ1dHN1XCA7Civmlq3niYfnmoQgPCBkYW5wZW50ZWtpXCA7CivmurrmrbvkvZMgPCBkZWtpc2hpdGFpXCA7CivmtbfmtIvlraYgPCBrYWl5b3VnYWt1XCA7Civmra/npZ7ntYwgPCBzaGlzaGlua2VpXCA7Civlj6Plj6MgPCBrdWNoaWd1Y2hpXCA7Civlj43mipfnmoQgPCBoYW5rb3V0ZWtpXCA7Civplovlgqzlm70gPCBrYWlzYWlrb2t1XCA7CivlvqHkuKHopqogPCBnb3J5b3VzaGluXCA7CivmkanliKnmlK/lpKkgPCBtYXJpc2hpdGVuXCA7Civkv67mraPmtrIgPCBzaHV1c2VpZWtpXCA7CivliJ3oqaMgPCBoYXRzdW1vdWRlXCA7Civnn7PnlbMgPCBpc2hpZGF0YW1pXCA7Civkurrngrrmt5jmsbAgPCBqaW4nJ2l0b3V0YVwgOwor5Y6a55Sf55yBIDwga291c2Vpc2hvdVwgOwor6YCG6KqsIDwgZ3lha3VzZXRzdVwgOwor6auY57Sa6LuKIDwga291a3l1dXNoYVwgOwor6Luf5paH5a2mIDwgbmFuYnVuZ2FrdVwgOwor56i85YON5pmC6ZaTIDwga2Fkb3VqaWthblwgOwor6Kmm5L2c5ZOBIDwgc2hpc2FrdWhpblwgOwor6Kaz6Kan5paZIDwga2FucmFucnlvdVwgOwor5LiN5L+h5Lu7IDwgZnVzaGluJyduaW5cIDsKK+iMuOmbsiA8IGtpbm9rb2d1bW9cIDsKK+i/kemBkyA8IGNoaWthbWljaGlcIDsKK+S4ieiEmuaetiA8IHNhbmt5YWt1a2FcIDsKK+WkieaFi+eahCA8IGhlbnRhaXRla2lcIDsKK+WMu+eZguWItuW6piA8IGlyeW91c2VpZG9cIDsKK+i/kei/kSA8IGNoaWthZGppa2FcIDsKK+S5numrmOiplSA8IGtvdWtvdWh5b3VcIDsKK+awtOW/gyA8IG1penVnb2tvcm9cIDsKK+avm+awiOiLlCA8IG1vdXNlbmdva2VcIDsKK+mdoue9tee9teWAkiA8IG1lbmJhYmF0b3VcIDsKK+S4ieWwuuW4ryA8IHNhbmpha3VvYmlcIDsKK+W/nOaApeetliA8IG91a3l1dXNha3VcIDsKK+eggueFmSA8IHN1bmFrZW11cmlcIDsKK+S6uumBk+eahCA8IGppbmRvdXRla2lcIDsKK+a1t+mFuOa8vyA8IHVtaWhvb3p1a2lcIDsKK+aJv+iqjeeKtiA8IHNob3VuaW5qb3VcIDsKK+maj+ethuWutiA8IHp1aWhpdHN1a2FcIDsKK+aguOiejeWQiCA8IGtha3V5dXVnb3VcIDsKK+aKvemBuOWIuCA8IGNodXVzZW5rZW5cIDsKK+W3nemtmiA8IGthd2F6YWthbmFcIDsKK+WFjeioseiovCA8IG1lbmt5b3Nob3VcIDsKK+e+juWuueihkyA8IGJpeW91anV0c3VcIDsKK+ijj+iyuOWxiyA8IHVyYWdhc2hpeWFcIDsKK+mYsuavkumdoiA8IGJvdWRva3VtZW5cIDsKK+W8geaFtuifuSA8IGJlbmtlaWdhbmlcIDsKK+WNr+W5tCA8IHVzYWdpZG9zaGlcIDsKK+S6jOe3muW8jyA8IG5pc2Vuc2hpa2lcIDsKK+W/heimgeS6iyA8IGhpdHN1eW91amlcIDsKK+eZuuaYjuWutiA8IGhhdHN1bWVpa2FcIDsKK+eLrOijgeiAhSA8IGRva3VzYWlzaGFcIDsKK+ecuuacm+aoqSA8IGNob3Vib3VrZW5cIDsKK+WGhemAmuiAhSA8IG5haXRzdXVzaGFcIDsKK+S4remVt+acnyA8IGNodXVjaG91a2lcIDsKK+mBuOaMmemBleWPjSA8IHNlbmt5b2loYW5cIDsKK+ePvuixoeirliA8IGdlbnNob3Vyb25cIDsKK+mtlOihk+W4qyA8IG1hanV0c3VzaGlcIDsKK+WbveWcn+W6gSA8IGtva3Vkb2Nob3VcIDsKK+epjeWIhuazlSA8IHNla2lidW5ob3VcIDsKK+S/oeWPt+eBryA8IHNoaW5nb3V0b3VcIDsKK+WNiumZsOmZvSA8IGhhbicnaW4nJ3lvdVwgOwor5pel5pys5pmC6ZaTIDwgbmlob25qaWthblwgOwor6L676L67IDwgdHN1aml0c3VqaVwgOwor5bmz6Z2i6Y+hIDwgaGVpbWVua3lvdVwgOwor5YyX5p6VIDwga2l0YW1ha3VyYVwgOwor5a6F6YWN5L6/IDwgdGFrdWhhaWJpblwgOwor6JCO57iu55eHIDwgaXNodWt1c2hvdVwgOwor5aSp55uu5bGxIDwgdGVubW9rdXphblwgOwor5YGP5bmz6LazIDwgaGVucGVpc29rdVwgOwor5rOV5a2m5aOrIDwgaG91Z2FrdXNoaVwgOwor5aW06Zq35Yi25bqmIDwgZG9yZWlzZWlkb1wgOwor5qeL6YCg5L+d5oyBIDwga291em91aG9qaVwgOwor56K65Z+3IDwga2FrdXNoaXRzdVwgOwor5rC35a6kIDwgaHlvdXNoaXRzdVwgOwor55m654WZ562SIDwgaGF0c3VlbnRvdVwgOwor5YG06aCt6JGJIDwgc29rdXRvdXlvdVwgOwor5aSp55qH5p2vIDwgdGVuJydub3VoYWlcIDsKK+e0sOiDnuaguCA8IHNhaWJvdWtha3VcIDsKK+iHquWLlei7iuWMliA8IGppZG91c2hha2FcIDsKK+eLrOaTheWgtCA8IGRva3VzZW5qb3VcIDsKK+aXpeacrOabuOe0gCA8IG5paG9uc2hva2lcIDsKK+ijvemLvOalrSA8IHNlaWtvdWd5b3VcIDsKK+WFieeGseiyuyA8IGtvdW5ldHN1aGlcIDsKK+aEm+mDt+W/gyA8IGFpa3lvdXNoaW5cIDsKK+axuuWIpSA8IGtldHN1YmV0c3VcIDsKK+eUn+eUo+mrmCA8IHNlaXNhbmRha2FcIDsKK+a1t+awtOa1tCA8IGthaXN1aXlva3VcIDsKK+S7rue5g+W4ryA8IGthcmlob3V0YWlcIDsKK+WPiuesrOiAhSA8IGt5dXVkYWlzaGFcIDsKK+W+jOaKgCA8IHVzaGlyb3dhemFcIDsKK+WNjeW3tCA8IG1hbmppZG9tb2VcIDsKK+exs+mZuOi7jSA8IGJlaXJpa3VndW5cIDsKK+W/g+WupCA8IHNoaW5zaGl0c3VcIDsKK+azqOaWh+WTgSA8IGNodXVtb25oaW5cIDsKK+aBkuW4uOeahCA8IGtvdWpvdXRla2lcIDsKK+S6uuW9ouW4qyA8IG5pbmd5b3VzaGlcIDsKK+amtOaVo+W8viA8IHJ5dXVzYW5kYW5cIDsKK+eZuumbu+apnyA8IGhhdHN1ZGVua2lcIDsKK+S4jeepuuaIkOWwsSA8IGZ1a3V1am91anVcIDsKK+aXp+W4guihlyA8IGt5dXVzaGlnYWlcIDsKK+ims+imp+W4rSA8IGthbnJhbnNla2lcIDsKK+Wun+eUqOWMliA8IGppdHN1eW91a2FcIDsKK+iAg+ePvuWtpiA8IGtvdWdlbmdha3VcIDsKK+W5s+WSjOmBi+WLlSA8IGhlaXdhdW5kb3VcIDsKK+WFrOWumuatqeWQiCA8IGtvdXRlaWJ1YWlcIDsKK+Wkqeiho+eEoee4qyA8IHRlbicnaW11aG91XCA7CivplovlgqzkuK0gPCBrYWlzYWljaHV1XCA7CivnkIbot6/mlbTnhLYgPCByaXJvc2VpemVuXCA7CivnnYDoibIgPCBjaGFrdXNob2t1XCA7CivljZfkuqznubvlrZAgPCBuYW5raW5qdXN1XCA7Civlhobpj6EgPCBtYXJ1a2FnYW1pXCA7CivnlKPmpa3nlYwgPCBzYW5neW91a2FpXCA7CivpgaPnm7QgPCB5YXJpbmFvc2hpXCA7CivomZrnhKHkuLvnvqkgPCBreW9tdXNodWdpXCA7CivlurbmsJHliocgPCBzaG9taW5nZWtpXCA7CivkuI3ku5XmnKsgPCBmdXNoaW1hdHN1XCA7CivlkYbmsJfogIUgPCB1dHN1a2Vtb25vXCA7Civop6PliZblraYgPCBrYWlib3VnYWt1XCA7Civku67ln4vokawgPCBrYXJpbWFpc291XCA7Civph6PpgZPlhbcgPCB0c3VyaWRvdWd1XCA7CivnlJ/nlKPpoY0gPCBzZWlzYW5nYWt1XCA7CivmgrLliofnmoQgPCBoaWdla2l0ZWtpXCA7CivnnYDohLEgPCBjaGFrdWRhdHN1XCA7CivljJfmsLfmtIsgPCBob3BweW91eW91XCA7CivljYHkuozmnIggPCBqdXVuaWdhdHN1XCA7CivlkIzlrablubQgPCBkb3VnYWt1bmVuXCA7CivlvZfmmJ8gPCBob3VraWJvc2hpXCA7Civnj77ku6PnmoQgPCBnZW5kYWl0ZWtpXCA7CivlpKLliKTmlq0gPCB5dW1laGFuZGFuXCA7CivlsrPlj4vkvJogPCBnYWt1eXV1a2FpXCA7Civli5jlrprlsLsgPCBrYW5qb3VqaXJpXCA7CivlhobpiYsgPCBtYXJ1Z2FuJyduYVwgOwor5b6M5b6MIDwgbm9jaGlub2NoaVwgOwor5ZCI5a6/5omAIDwgZ2Fzc2h1a3Vqb1wgOwor6KCx5oOR55qEIDwga293YWt1dGVraVwgOwor56m66ZaT6Lu4IDwga3V1a2FuamlrdVwgOwor5Lit6ZaT5bGkIDwgY2h1dWthbnNvdVwgOwor54m557Sa6YWSIDwgdG9ra3l1dXNodVwgOwor5qip5aiB5Li7576pIDwga2VuJydpc2h1Z2lcIDsKK+WNuOWVhiA8IG9yb3NoaXNob3VcIDsKK+e9suWQjeWbvSA8IHNob21laWtva3VcIDsKK+i+u+ikhCA8IHRzdWppdHN1bWFcIDsKK+awl+eCjuS4h+S4iCA8IGtpZW5iYW5qb3VcIDsKK+a8lOWKh+eahCA8IGVuZ2VraXRla2lcIDsKK+S6pOaIpuWbvSA8IGtvdXNlbmtva3VcIDsKK+WkluW9oueahCA8IGdhaWtlaXRla2lcIDsKK+S4remWk+WtkCA8IGNodXVrYW5zaGlcIDsKK+iKsemwuSA8IGhhbmFnYXRzdW9cIDsKK+aVtOa1geWtkCA8IHNlaXJ5dXVzaGlcIDsKK+WEquWFiOagqiA8IHl1dXNlbmthYnVcIDsKK+efreWFteaApSA8IHRhbnBlaWt5dXVcIDsKK+W8geaFtue4niA8IGJlbmtlaWppbWFcIDsKK+eJoeS4uembqiA8IGJvdGFuJyd5dWtpXCA7CivmlpzmoLzmgKcgPCBzaGFrYWt1c2VpXCA7CivptrTlmLQgPCB0c3VydWhhc2hpXCA7Civpq5jop5LnoLIgPCBrb3VrYWt1aG91XCA7CivmrbTlubTpvaIgPCByZWtpbmVucmVpXCA7CivnhKHliIbliKUgPCBtdWZ1bmJldHN1XCA7CivliLrmiJ/mgKcgPCBzaGlnZWtpc2VpXCA7CivlhYjpmqMgPCBzYWtpZG9uYXJpXCA7CivpgJrooYznqI4gPCB0c3V1a291emVpXCA7CivotoXoh6rnhLYgPCBjaG91c2hpemVuXCA7CivliYrmsLfmqZ8gPCBzYWt1aHlvdWtpXCA7CivlpZHntITogIUgPCBrZWl5YWt1c2hhXCA7CivlpJznm5fomasgPCB5b3RvdW11c2hpXCA7CivkuInkuInkuZ3luqYgPCBzYW5zYW5rdWRvXCA7CivlronlhajnjocgPCBhbnplbnJpdHN1XCA7Civljp/lrZDnl4cgPCBnZW5zaGlzaG91XCA7Civljp/lrZDnl4UgPCBnZW5zaGlieW91XCA7CivoqIjnrpfmqZ/plpMgPCBrZWlzYW5raW1hXCA7CivlraPnr4DmhJ8gPCBraXNldHN1a2FuXCA7Civml6fli5jlrpogPCBreXV1a2Fuam91XCA7Civku67oqr/ljbAgPCBrYXJpY2hvdWluXCA7CivnpLzlhIDkvZzms5UgPCByZWlnaXNhaG91XCA7Civmu4XojLboi6bojLYgPCBtZWNoYWt1Y2hhXCA7CivkuZfou4ros4MgPCBqb3VzaGFjaGluXCA7Civlt6botrMgPCBoaWRhcmlhc2hpXCA7CivpmLLomavliaQgPCBib3VjaHV1emFpXCA7CivlvpflpLEgPCB0b2t1c2hpdHN1XCA7CivmoLjmiKbkuokgPCBrYWt1c2Vuc291XCA7Civnmbrlo7Lml6UgPCBoYXRzdWJhaWJpXCA7CivogLPkuIvohbrngo4gPCBqaWthc2VuJydlblwgOwor5a6a6Laz5pWwIDwgdGVpc29rdXN1dVwgOwor55+z5rK55Y2x5qmfIDwgc2VraXl1a2lraVwgOwor6YeM56We5qW9IDwgc2F0b2thZ3VyYVwgOwor5ZKE44CFIDwgdG90c3V0b3RzdVwgOwor6Jap5pGp6IqLIDwgc2F0c3VtYWltb1wgOwor5aem6YCa572qIDwga2FudHN1dXphaVwgOwor5bGx5p6X5a2mIDwgc2FucmluZ2FrdVwgOwor5Ymv6K2w6ZW3IDwgZnVrdWdpY2hvdVwgOwor5YiR5LqL5LqL5Lu2IDwga2VpamlqaWtlblwgOwor6Iiq56m655eFIDwga291a3V1YnlvdVwgOwor5ryi6LaK6Z+zIDwga2FuJydldHN1b25cIDsKK+WHuuWFpeWPoyA8IGRlaXJpZ3VjaGlcIDsKK+WIqeeUqOS+oeWApCA8IHJpeW91a2FjaGlcIDsKK+mFkuWHpiA8IHNha2Vkb2tvcm9cIDsKK+S7rue0jeeojiA8IGthcmlub3V6ZWlcIDsKK+e3j+WQiOeahCA8IHNvdWdvdXRla2lcIDsKK+S7suijgeiAhSA8IGNodXVzYWlzaGFcIDsKK+WHuuWxleiAhSA8IHNodXR0ZW5zaGFcIDsKK+a0u+Wtl+S9kyA8IGthdHN1aml0YWlcIDsKK+iCmOmJhOegsiA8IGhpamlkZXBwb3VcIDsKK+Wvvui5oOWcsCA8IHRhaXNla2ljaGlcIDsKK+Wbnue3muiyoOiNtyA8IGthaXNlbmZ1a2FcIDsKK+W7u+a8lealrSA8IGthaXNvdWd5b3VcIDsKK+S9jumanOeijSA8IHRlaXNob3VnYWlcIDsKK+ats+aciCA8IHRvc2hpdHN1a2lcIDsKK+aui+S9memhjSA8IHphbicneW9nYWt1XCA7CivmqKrou4ogPCB5b2tvZ3VydW1hXCA7CivmsrvnmYLms5UgPCBjaGlyeW91aG91XCA7CivmqZ/morDmsrkgPCBraWthaWFidXJhXCA7Civoh6rnmbrmgKcgPCBqaWhhdHN1c2VpXCA7Civkv6Hlj7fmiYsgPCBzaGluZ291c2h1XCA7CivpppblsL7kuIDosqsgPCBzaHViaWlra2FuXCA7CivljLvnmYLkv53pmbogPCBpcnlvdWhva2VuXCA7CivmoIPmnKjnnIwgPCB0b2NoaWdpa2VuXCA7Civoqr/mn7vnpaggPCBjaG91c2FoeW91XCA7Civmraboo4Xop6PpmaQgPCBidXNvdWthaWpvXCA7Civnt6jlubTlj7IgPCBoZW4nJ25lbnNoaVwgOwor5Zyf552A5rCRIDwgZG9jaGFrdW1pblwgOwor5Y2T5Ye6IDwgdGFrdXNodXRzdVwgOwor6YCy5ZGI5pysIDwgc2hpbnRlaWJvblwgOwor55Ge5a6d56ugIDwgenVpaG91c2hvdVwgOwor6KGo5oSP5paH5a2XIDwgaHlvdWltb25qaVwgOwor6JC96YG46ICFIDwgcmFrdXNlbnNoYVwgOwor5YaF5YuY5a6aIDwgdWNoaWthbmpvdVwgOwor5aWJ57SN6aGNIDwgaG91bm91Z2FrdVwgOwor5byP5pelIDwgc2hpa2lqaXRzdVwgOwor57Sw6IOe5a2mIDwgc2FpYm91Z2FrdVwgOwor6YO95biC5Zu95a62IDwgdG9zaGlrb2trYVwgOwor5p6c5a6f5bqXIDwga2FqaXRzdXRlblwgOwor54Sh54K65b6S6aOfIDwgbXVpdG9zaG9rdVwgOwor5pig55S76Z+z5qW9IDwgZWlnYW9uZ2FrdVwgOwor5a6f5pmC6ZaTIDwgaml0c3VqaWthblwgOwor5YWl5ryB5qipIDwgbnl1dWd5b2tlblwgOwor5YWl6LOqIDwgbnl1dXNoaWNoaVwgOwor6JGX5L2c6ICFIDwgY2hvc2FrdXNoYVwgOwor552A552AIDwgY2hha3VjaGFrdVwgOwor5Y2X5YG0IDwgbWluYW1pZ2F3YVwgOwor6ISx6ISC5LmzIDwgZGFzc2hpbnl1dVwgOwor5YmN5b6M5bem5Y+zIDwgemVuZ29zYXl1dVwgOwor56Wt56WA5paZIDwgc2Fpc2hpcnlvdVwgOwor6YeO5oim54m556eRIDwgeWFzZW50b2trYVwgOwor5LiN576I5aWU5pS+IDwgZnVraWhvbnBvdVwgOwor5YaF5byB5oW2IDwgdWNoaWJlbmtlaVwgOwor5ZCR5LiK5b+DIDwga291am91c2hpblwgOwor5LiA5omL6LKp5aOyIDwgaXR0ZWhhbmJhaVwgOwor54mn576K6ICFIDwgYm9rdXlvdXNoYVwgOwor5Y+C6Kaz5Lq6IDwgc2Fua2FuJyduaW5cIDsKK+earuihoyA8IGthd2Fnb3JvbW9cIDsKK+Wdh+S4gOWMliA8IGtpbicnaXRzdWthXCA7CivlhbHlkIzogIUgPCBreW91ZG91c2hhXCA7CivmmI7mnJ3kvZMgPCBtaW5jaG91dGFpXCA7Civloanog6HmpJIgPCBzaGlva29zaG91XCA7CivogJDpnIfmgKcgPCB0YWlzaGluc2VpXCA7CivmlrDopb/omK0gPCBuecWrasSrcmFuZG9cIDsKK+WMuuWMuiA8IG1hY2hpbWFjaGlcIDsKK+edgOeZuiA8IGNoYWt1aGF0c3VcIDsKK+S4gOaemuiynSA8IGljaGltYWlnYWlcIDsKK+S5seaatOiAhSA8IHJhbmJvdW1vbm9cIDsKK+WQhOS4gOmDqCA8IGtha3VpY2hpYnVcIDsKK+mZsOaXpeWQkSA8IGthZ2VoaW5hdGFcIDsKK+e0q+WuuOauvyA8IHNoaXNoaW5kZW5cIDsKK+W5vemciuagqiA8IHl1dXJlaWthYnVcIDsKK+aJgOW+l+iAhSA8IHNob3Rva3VzaGFcIDsKK+i7jeS6i+WKmyA8IGd1bmppcnlva3VcIDsKK+WLneiyoOS6iyA8IHNob3VidWdvdG9cIDsKK+W9k+W6p+mgkOmHkSA8IHRvdXpheW9raW5cIDsKK+iKsemLjyA8IGhhbmFiYXNhbWlcIDsKK+e1puawtOi7iiA8IGt5dXVzdWlzaGFcIDsKK+e0sOiDnuWjgSA8IHNhaWJvdWhla2lcIDsKK+W6rea8hiA8IG5pd2F1cnVzaGlcIDsKK+ahnOiKseeIm+a8qyA8IG91a2FyYW5tYW5cIDsKK+WPr+mAhuaApyA8IGthZ3lha3VzZWlcIDsKK+iHqueUseiHquWcqCA8IGppeXV1aml6YWlcIDsKK+S5vueHpeeEoeWRsyA8IGthbnNvdW11bWlcIDsKK+S6jOmgheWumueQhiA8IG5pa291dGVpcmlcIDsKK+aHuOiznumHkSA8IGtlbnNob3VraW5cIDsKK+egguW1kCA8IHN1bmFhcmFzaGlcIDsKK+WQq+WXveiWrCA8IGdhbnNvdXlha3VcIDsKK+imi+WtpuiAhSA8IGtlbmdha3VzaGFcIDsKK+WEquWFiOW4rSA8IHl1dXNlbnNla2lcIDsKK+WwkeaVsOiAhSA8IHNob3VzdXVzaGFcIDsKK+WFseWQjOe3miA8IGt5b3Vkb3VzZW5cIDsKK+W5tOeUtyA8IHRvc2hpb3Rva29cIDsKK+WPiuesrOeCuSA8IGt5dXVkYWl0ZW5cIDsKK+a0u+aAp+axmuazpSA8IGthc3NlaW9kZWlcIDsKK+WIhumhnuihqCA8IGJ1bnJ1aWh5b3VcIDsKK+i/keecvOmPoSA8IGtpbmdhbmt5b3VcIDsKK+mWouaVsOaXjyA8IGthbnN1dXpva3VcIDsKK+eUuuadkeWItiA8IGNob3Vzb25zZWlcIDsKK+alteaCquS6uiA8IGdva3Vha3VuaW5cIDsKK+W8leWPl+S6uiA8IGhpa2l1a2VuaW5cIDsKK+e3qOW5tOS9kyA8IGhlbicnbmVudGFpXCA7Civku6PpoZjkurogPCBkYWlnYW4nJ25pblwgOwor5pyJ5Yqb6aasIDwgeXV1cnlva3ViYVwgOwor5qyh5qyhIDwgdHN1Z2l0c3VnaVwgOwor5LiJ5LiJ5LqU5LqUIDwgc2Fuc2FuZ29nb1wgOwor6Zmk6Zuq6LuKIDwgam9zZXRzdXNoYVwgOwor5aSn5a+p6ZmiIDwgZGFpc2hpbicnaW5cIDsKK+eojumWoumVtyA8IHplaWthbmNob3VcIDsKK+S4remWk+S9kyA8IGNodXVrYW50YWlcIDsKK+a7i+mkiueJqSA8IGppeW91YnV0c3VcIDsKK+S5neW3peWkpyA8IGt5dXVrb3VkYWlcIDsKK+WIgOeWtSA8IGthdGFuYWtpenVcIDsKK+WKoOa5v+WZqCA8IGthc2hpdHN1a2lcIDsKK+aWsOiogueJiCA8IHNoaW50ZWliYW5cIDsKK+mBleajmiA8IGNoaWdhaWRhbmFcIDsKK+WNgeS6uuWKmyA8IGp1dW5pbnJpa2lcIDsKK+S4i+Wuv+S6uiA8IGdlc2h1a3VuaW5cIDsKK+Wkp+alreeJqSA8IG9vd2F6YW1vbm9cIDsKK+ebtOethiA8IGNob2t1aGl0c3VcIDsKK+WBtOmdouimsyA8IHNva3VtZW5rYW5cIDsKK+W8kOW/gyA8IGZ1dGFnb2tvcm9cIDsKK+ePvuixoeeVjCA8IGdlbnNob3VrYWlcIDsKK+i/veippumokyA8IHRzdWlzaGlrZW5cIDsKK+WFiOWkqeeahCA8IHNlbnRlbnRla2lcIDsKK+W7uuevieWutiA8IGtlbmNoaWt1a2FcIDsKK+awtOmHj+ioiCA8IHN1aXJ5b3VrZWlcIDsKK+ebtOeriyA8IGNob2t1cml0c3VcIDsKK+WFnOifuSA8IGthYnV0b2dhbmlcIDsKK+imquihm+maiiA8IHNoaW4nJ2VpdGFpXCA7Civnm7LnqpMgPCBtZWt1cmFtYWRvXCA7CivlhYjlpKnnl4UgPCBzZW50ZW5ieW91XCA7CivnuYHmrpbmnJ8gPCBoYW5zaG9rdWtpXCA7CivoiLnlub3pnIogPCBmdW5heXV1cmVpXCA7CivmsJHml4/mgKcgPCBtaW56b2t1c2VpXCA7CivlvqHkuobmib8gPCBnb3J5b3VzaG91XCA7CivmsLTom4fluqcgPCBtaXp1aGViaXphXCA7Civmi53lpJbnmoQgPCBoYWlnYWl0ZWtpXCA7CivliLrmiJ/liaQgPCBzaGlnZWtpemFpXCA7CivmiYDlvpfnqI4gPCBzaG90b2t1emVpXCA7Civmo4nlrp/msrkgPCBtZW5qaXRzdXl1XCA7Civlh7rnjYQgPCBzaHV0c3Vnb2t1XCA7Civlh7rnjJ8gPCBzaHV0c3VyeW91XCA7Civli6TntprogIUgPCBraW56b2t1c2hhXCA7CivlpKnnmofliLYgPCB0ZW4nJ25vdXNlaVwgOwor5Zar54WZ6LuKIDwga2l0c3VlbnNoYVwgOwor5a6f57+S55SfIDwgamlzc2h1dXNlaVwgOwor5L2T57O755qEIDwgdGFpa2VpdGVraVwgOwor6YGK6IiI56iOIDwgeXV1a3lvdXplaVwgOwor5L+u6YGT5aOrIDwgc2h1dWRvdXNoaVwgOwor5paw5pWZ5b6SIDwgc2hpbmt5b3V0b1wgOwor56CC5Z+DIDwgc3VuYWJva29yaVwgOwor5Y2a6Kan5LyaIDwgaGFrdXJhbmthaVwgOwor5YmN55m76YyyIDwgemVudG91cm9rdVwgOwor5p2x5rSL5a2mIDwgdG91eW91Z2FrdVwgOwor5aSn5bCG6LuNIDwgZGFpc2hvdWd1blwgOwor5Zyo5bqr566h55CGIDwgemFpa29rYW5yaVwgOwor5Y6f5a2Q5qC4IDwgZ2Vuc2hpa2FrdVwgOwor5aSn5YWs5Zu9IDwgdGFpa291a29rdVwgOwor5LyR5oGv5omAIDwga3l1dXNva3Vqb1wgOwor5bem6ICzIDwgaGlkYXJpbWltaVwgOwor6auY6Zqc5a6zIDwga291c2hvdWdhaVwgOwor5Yqb5bivIDwgY2hpa2FyYW9iaVwgOwor5rGC6YGT6ICFIDwga3l1dWRvdXNoYVwgOwor5aSp5a6I6ZajIDwgdGVuc2h1a2FrdVwgOwor56CC5ZqiIDwgc3VuYWJ1a3Vyb1wgOwor5Lm+54mp5bGLIDwga2FuYnV0c3V5YVwgOwor5rC06YmE56CyIDwgbWl6dWRlcHBvdVwgOwor5Y2D5LiJ5bGLIDwgc2VubWl0c3V5YVwgOwor5YWl5riv56iOIDwgbnl1dWtvdXplaVwgOwor6YqA6KGM5qWtIDwgZ2lua291Z3lvdVwgOwor54Gr54G95L+d6Zm6IDwga2FzYWlob2tlblwgOwor5LyR5rOK5omAIDwga3l1dWhha3Vqb1wgOwor5Lq65bel55qEIDwgamlua291dGVraVwgOwor57216KmI6ZuR6KiAIDwgYmFyaXpvdWdvblwgOwor5YWJ6JiaIDwgaGlrYXJpZ29rZVwgOwor6IG06KaW6ICFIDwgY2hvdXNoaXNoYVwgOwor5Lih5Zu96KqeIDwgcnlvdWtva3Vnb1wgOwor6YGT6Lev5bCB6Y6WIDwgZG91cm9mdXVzYVwgOwor6Iqx6KmeIDwgaGFuYWtvdG9iYVwgOwor6auY54Cs6IifIDwgdGFrYXNlYnVuZVwgOwor57WE57mU5ZCNIDwgc29zaGlraW1laVwgOwor5Yid5rC3IDwgaGF0c3Vnb29yaVwgOwor5ZCM5pyf5byPIDwgZG91a2lzaGlraVwgOwor5aSn6IW46I+MIDwgZGFpY2hvdWtpblwgOwor5Y2K54uC5LmxIDwgaGFua3lvdXJhblwgOwor6LSF5rKi5ZOBIDwgemVpdGFrdWhpblwgOwor5bCP5aeU5ZOh5LyaIDwgc2hvdWlpbmthaVwgOwor5LiA5pys6YGTIDwgaXBwb25taWNoaVwgOwor5Yip5r2k546HIDwgcmlqdW5yaXRzdVwgOwor6L+r5a6z6ICFIDwgaGFrdWdhaXNoYVwgOwor5aSn5qW15q6/IDwgZGFpZ29rdWRlblwgOwor6YeN6YeP5oSfIDwganV1cnlvdWthblwgOwor576O5a2m55qEIDwgYmlnYWt1dGVraVwgOwor5YaZ55Sf5bizIDwgc2hhc2VpY2hvdVwgOwor5Lqk5riJ5aeU5ZOhIDwga291c2hvdWlpblwgOwor5buD5qOE54mpIDwgaGFpa2lidXRzdVwgOwor6Zu756OB55+zIDwgZGVuamlzaGFrdVwgOwor6YCg5Za254mpIDwgem91ZWlidXRzdVwgOwor5oqA6KGT6Z2iIDwgZ2lqdXRzdW1lblwgOwor5LuV572u6ICFIDwgc2hpb2tpbW9ub1wgOwor6Ium6Im+IDwgbmlnYXlvbW9naVwgOwor5pmC5Yi76KGoIDwgamlrb2t1aHlvdVwgOwor5ZCI5ZCM6KGM54K6IDwgZ291ZG91a291aVwgOwor54KJ6L666KuH6KmxIDwgcm9oZW5kYW53YVwgOwor5q+S56eR5a2mIDwgZG9rdWthZ2FrdVwgOwor55u06KGM5L6/IDwgY2hva2tvdWJpblwgOwor5omL5YaF6IG3IDwgdGVuYWlzaG9rdVwgOwor5peF6KGM5YWIIDwgcnlva291c2FraVwgOwor5qC45by+6aCtIDwga2FrdWRhbnRvdVwgOwor6YGO5Y675YiG6KmeIDwga2Frb2J1bnNoaVwgOwor56m66ZuG5ZCIIDwga3V1c2h1dWdvdVwgOwor55q/56ekIDwgc2FyYWJha2FyaVwgOwor54m56Kix5paZIDwgdG9ra3lvcnlvdVwgOwor5Li75oOF55qEIDwgc2h1am91dGVraVwgOwor5Za25Yip5Lya56S+IDwgZWlyaWdhaXNoYVwgOwor5pu06KGj5a6kIDwga291aXNoaXRzdVwgOwor5q665LyQIDwgc2F0c3ViYXRzdVwgOwor5Lya5bit6IazIDwga2Fpc2VraXplblwgOwor5Y2D5LiA5aScIDwgc2VuJydpY2hpeWFcIDsKK+ecn+eUsOe0kCA8IHNhbmFkYWhpbW9cIDsKK+mBk+WtpuiAhSA8IGRvdWdha3VzaGFcIDsKK+aPrueZuuaApyA8IGtpaGF0c3VzZWlcIDsKK+ayuOOAhSA8IGZ1dHN1ZnV0c3VcIDsKK+WHuuizh+mHkSA8IHNodXNzaGlraW5cIDsKK+eJp+e+iueKrCA8IGJva3V5b3VrZW5cIDsKK+S6uuS6i+S4jeecgSA8IGppbmppZnVzZWlcIDsKK+iSuOeVmeawtCA8IGpvdXJ5dXVzdWlcIDsKK+eVsOaAp+mWouS/giA8IGlzZWlrYW5rZWlcIDsKK+etieWcp+e3miA8IHRvdWF0c3VzZW5cIDsKK+avkuWRs+W9uSA8IGRva3VtaXlha3VcIDsKK+WFjuiEoyA8IG1pdHN1a3VjaGlcIDsKK+S6i+aVheWOn+WboCA8IGppa29nZW4nJ2luXCA7CivlhKroia/lupcgPCB5dXVyeW91dGVuXCA7CivlhoXoirjogIUgPCB1Y2hpZ2Vpc2hhXCA7CivmgqrpgZTogIUgPCB3YXJ1ZGFzc2hhXCA7CivkuInpnaLpj6EgPCBzYW5tZW5reW91XCA7Civni7jolY7puqYgPCB0YW51a2lzb2JhXCA7Civoo4/mm7jkurogPCB1cmFnYWtpbmluXCA7CivnibnlpKflj7cgPCB0b2t1ZGFpZ291XCA7CivntYTnuZTkvZMgPCBzb3NoaWtpdGFpXCA7Civnj77lrp/ljJYgPCBnZW5qaXRzdWthXCA7CivlpJrnm67nmoQgPCB0YW1va3V0ZWtpXCA7CivlsIbmnaXmgKcgPCBzaG91cmFpc2VpXCA7CivkuIDkurrohbkgPCBoaXRvcmliYXJhXCA7CivluqfmioAgPCBzdXdhcml3YXphXCA7CivnlLvkuIDljJYgPCBrYWt1aXRzdWthXCA7Civph43ph5HlsZ4gPCBqdXVraW56b2t1XCA7Civoia/os6ogPCByeW91c2hpdHN1XCA7Civmp43oob4gPCB5YXJpYnVzdW1hXCA7Civlrrblh7rlsJHlpbMgPCBpZWRlc2hvdWpvXCA7Civnq4vkvJrkurogPCB0YWNoaWFpbmluXCA7Civlj6TlhbjkuLvnvqkgPCBrb3RlbnNodWdpXCA7CivkuI3ms5XmipXmo4QgPCBmdWhvdXRvdWtpXCA7CivpgJDml6UgPCBjaGlrdWppdHN1XCA7CivmrbTlj7LkuIogPCByZWtpc2hpam91XCA7Civoo73piYTmiYAgPCBzZWl0ZXRzdWpvXCA7Civoi6Xnt5EgPCB3YWthbWlkb3JpXCA7CivkuIDkurrogIUgPCBoaXRvcmltb25vXCA7Civou4ros4MgPCBrdXJ1bWFjaGluXCA7Civkuozph43onrrml4sgPCBuaWp1dXJhc2VuXCA7Civpga7mlq3lo4EgPCBzaGFkYW5wZWtpXCA7Civnibnlo7LloLQgPCB0b2t1YmFpam91XCA7CivlkYrnn6Xmnb8gPCBrb2t1Y2hpYmFuXCA7CivmspbnqY3mnJ8gPCBjaHV1c2VraWtpXCA7Civku67oqJjlhaUgPCBrYXJpa2lueXV1XCA7Civkv67pgZPkvJogPCBzaHV1ZG91a2FpXCA7CivkvY3nm7jpgJ/luqYgPCBpc291c29rdWRvXCA7CivmoZ/moq/lrZAgPCBzYW5iYXNoaWdvXCA7Civnlarlj7fmnK0gPCBiYW5nb3VmdWRhXCA7CivlsJHmlbDngrkgPCBzaG91c3V1dGVuXCA7CivlsbHnjKvluqcgPCB5YW1hbmVrb3phXCA7Civlr53lj7DliLggPCBzaGluZGFpa2VuXCA7CivmsLTpioDmn7EgPCBzdWlnaW5jaHV1XCA7CivotaTmtbfkuoAgPCBha2F1bWlnYW1lXCA7Civpqqjnm7jlraYgPCBrb3Nzb3VnYWt1XCA7Civpn7Ppn7vpg6jploAgPCBvbicnaW5idW1vblwgOwor5qmf6IO95Li7576pIDwga2lub3VzaHVnaVwgOwor5aSn6Ie85q2vIDwgZGFpa3l1dXNoaVwgOwor5qmf5qKw6K2m5YKZIDwga2lrYWlrZWliaVwgOwor5rCR5peP5Y+yIDwgbWluem9rdXNoaVwgOwor5LqU56ic6YOtIDwgZ29yeW91a2FrdVwgOwor5aWR57SE5pu4IDwga2VpeWFrdXNob1wgOwor5b2x5rOV5birIDwga2FnZWJvdXNoaVwgOwor6YeR5Ymb55+zIDwga29uZ291c2VraVwgOwor55WR6bygIDwgaGF0YW5lenVtaVwgOwor54m56Kix5bqBIDwgdG9ra3lvY2hvdVwgOwor5Z+656SO6Kmm6aiTIDwga2lzb3NoaWtlblwgOwor5a625bqt6I+c5ZySIDwga2F0ZWlzYWllblwgOwor54m55aOy5ZOBIDwgdG9rdWJhaWhpblwgOwor6YGT6Lev5bel5LqLIDwgZG91cm9rb3VqaVwgOwor5LiL6KuL6LKgIDwgc2hpdGF1a2VvaVwgOwor5Y+O56mr5pyfIDwgc2h1dWtha3VraVwgOwor5Lqc54i+54S25LiBIDwgYXJ1emVuY2hpblwgOwor5Zub6Ium5YWr6IumIDwgc2hpa3VoYWtrdVwgOwor552A5omVIDwgY2hha3ViYXJhaVwgOwor6Zm45oim6ZqKIDwgcmlrdXNlbnRhaVwgOwor57Wm5rC0566hIDwga3l1dXN1aWthblwgOwor5aeU57Sw6Z2i6KuHIDwgaXNhaW1lbmRhblwgOwor56We56eY55qEIDwgc2hpbnBpdGVraVwgOwor6YeN6YeP5Zm4IDwganV1cnlvdXRvblwgOwor5a++5qCh6Kmm5ZCIIDwgdGFpa291amlhaVwgOwor5Y+O56mr5pmCIDwgc2h1dWtha3VqaVwgOwor6auY5Zyn57iuIDwga291YXNzaHVrdVwgOwor6JGX5L2c5qipIDwgY2hvc2FrdWtlblwgOwor5Lq65rCX5L2c5a62IDwgbmlua2lzYWtrYVwgOwor5Luj5Z+36KGMIDwgZGFpc2hpa2tvdVwgOwor6ZmQ5a6a55qEIDwgZ2VudGVpdGVraVwgOwor6auY5Zyn57eaIDwga291YXRzdXNlblwgOwor5Luu5o6h55SoIDwga2FyaXNhaXlvdVwgOwor5pqW5Yas55Ww5aSJIDwgZGFudG91aWhlblwgOwor5Ye65pKDIDwgc2h1dHN1Z2VraVwgOwor5pS56Z2p6ICFIDwga2Fpa2FrdXNoYVwgOwor5Zyw5LiL6YmEIDwgY2hpa2F0ZXRzdVwgOwor5bCK546L5YWaIDwgc29uJydub3V0b3VcIDsKK+Wcn+S/temamyA8IGRvaHlvdWdpd2FcIDsKK+Wkp+WxseeMqyA8IG9veWFtYW5la29cIDsKK+iIquepuuWtpiA8IGtvdWt1dWdha3VcIDsKK+WOn+adkOaWmSA8IGdlbnphaXJ5b3VcIDsKK+WHuueUo+aVsCA8IHNodXNzYW5zdXVcIDsKK+ashOWPgueFpyA8IHJhbnNhbnNob3VcIDsKK+WHuueUn+aVsCA8IHNodXNzZWlzdXVcIDsKK+WuiOWCmeeOhyA8IHNodWJpcml0c3VcIDsKK+aWh+iKuOWtpiA8IGJ1bmdlaWdha3VcIDsKK+Wls+aAp+S4gOiIrCA8IGpvc2VpaXBwYW5cIDsKK+e0heWGoOmzpSA8IGtvdWthbmNob3VcIDsKK+WIneWgtOaJgCA8IGhhdHN1YmFzaG9cIDsKK+S5s+eKtua2siA8IG55dXVqb3Vla2lcIDsKK+WNmOWdkOW8jyA8IHRhbnphc2hpa2lcIDsKK+WcqOeVmeawkSA8IHphaXJ5dXVtaW5cIDsKK+e+jumhlOihkyA8IGJpZ2FuanV0c3VcIDsKK+eFruayuOWZqCA8IHNoYWZ1dHN1a2lcIDsKK+WEquiJr+WTgSA8IHl1dXJ5b3VoaW5cIDsKK+aAqueNo+aYoOeUuyA8IGthaWp1dWVpZ2FcIDsKK+WkmueoruWkmuanmCA8IHRhc2h1dGF5b3VcIDsKK+WzoOmBkyA8IHRvdWdlbWljaGlcIDsKK+S6jOmDqOaVmeaOiCA8IG5pYnVreW91anVcIDsKK+aIpuihk+WutiA8IHNlbmp1dHN1a2FcIDsKK+mAn+W6pumBleWPjSA8IHNva3Vkb2loYW5cIDsKK+S7leS6i+W4qyA8IHNoaWdvdG9zaGlcIDsKK+W5tOW8tyA8IHRvc2hpZHp1eW9cIDsKK+aoquaWreatqemBkyA8IG91ZGFuaG9kb3VcIDsKK+eEoeeUn+eJqSA8IG11c2VpYnV0c3VcIDsKK+mbkeaWh+WutiA8IHphdHN1YnVua2FcIDsKK+WQjOiqv+iAhSA8IGRvdWNob3VzaGFcIDsKK+S6iOe0hOW4rSA8IHlveWFrdXNla2lcIDsKK+mHkeefs+aWhyA8IGtpbnNla2lidW5cIDsKK+e3tOe/kuiIuSA8IHJlbnNodXVzZW5cIDsKK+iIl+ijhemBk+i3ryA8IGhvc291ZG91cm9cIDsKK+a4rOa3seapnyA8IHNva3VzaGlua2lcIDsKK+iJtuiJtiA8IHRzdXlhdHN1eWFcIDsKK+eZuuimi+aWmSA8IGhha2tlbnJ5b3VcIDsKK+ihkuWtpuiAhSA8IGdlbmdha3VzaGFcIDsKK+W8leWHuueJqSA8IGhpa2lkZW1vbm9cIDsKK+mWi+aetuW8jyA8IGthaWthc2hpa2lcIDsKK+WMheWQq+eahCA8IGhvdWdhbnRla2lcIDsKK+WQiOWlj+iqvyA8IGdhc3NvdWNob3VcIDsKK+eUsOm1kSA8IGhvdG90b2dpc3VcIDsKK+WFseWSjOWbvSA8IGt5b3V3YWtva3VcIDsKK+WvqeWIpOWToSA8IHNoaW5wYW4nJ2luXCA7CivnhKHnt5rmioDluKsgPCBtdXNlbmdpc2hpXCA7CivmuIXmnJ3kvZMgPCBzZWljaG91dGFpXCA7Civpo5vps6XmmYLku6MgPCBhc3VrYWppZGFpXCA7Civooajml6XmnKwgPCBvbW90ZW5paG9uXCA7Civnj77ku6PliocgPCBnZW5kYWlnZWtpXCA7CivlsbHpr6ggPCB5YW1ha3VqaXJhXCA7CivljbPlirnolqwgPCBzb2trb3V5YWt1XCA7Civml6XpgYvli5UgPCBuaWNoaXVuZG91XCA7CivojYnmnpUgPCBrdXNhbWFrdXJhXCA7Civogbfpmo7liLYgPCBzaG9ra2Fpc2VpXCA7CivliY3ou4rou7ggPCB6ZW5zaGFqaWt1XCA7Civlm57ot6/ln7rmnb8gPCBrYWlyb2tpYmFuXCA7CivkuIrmmIfnt5ogPCBqb3VzaG91c2VuXCA7CivmqZ/lr4bmgKcgPCBraW1pdHN1c2VpXCA7CivmmI7ntLDooaggPCBtZWlzYWloeW91XCA7CivlvaLmiJDlpJbnp5EgPCBrZWlzZWlnZWthXCA7Civkv67ovp7lraYgPCBzaHV1amlnYWt1XCA7CivlkI3oqonogbcgPCBtZWl5b3Nob2t1XCA7CivlroflrpnlhbXlmaggPCB1Y2h1dWhlaWtpXCA7Civlm5vlpKnnjosgPCBzaGl0ZW4nJ25vdVwgOwor55Ww5bi45rCX6LGhIDwgaWpvdWtpc2hvdVwgOwor5Lq655u45a2mIDwgbmluc291Z2FrdVwgOwor552A5a6fIDwgY2hha3VqaXRzdVwgOwor5o6I5qWt5paZIDwganVneW91cnlvdVwgOwor6Ymb5Lit5q+SIDwgZW5jaHV1ZG9rdVwgOwor54Sh5qmf5YyW5a2mIDwgbXVraWthZ2FrdVwgOwor6Ieq55Sx5Li7576pIDwgaml5dXVzaHVnaVwgOwor5rK755mC5LujIDwgY2hpcnlvdWRhaVwgOwor5YK36JasIDwga2l6dWd1c3VyaVwgOwor5L2N6KiY6L+96LSIIDwgaWtpdHN1aXNvdVwgOwor5biv6buE6ImyIDwgdGFpb3VzaG9rdVwgOwor6Iy25p+xIDwgY2hhYmFzaGlyYVwgOwor55u05o6lIDwgY2hva3VzZXRzdVwgOwor5bqV5ZyfIDwgc29rb3RzdWNoaVwgOwor5a6f5YaZ5pig55S7IDwgamlzc2hhZWlnYVwgOwor6LW35bel5byPIDwga2lrb3VzaGlraVwgOwor6Ieq55Sx5pmC6ZaTIDwgaml5dXVqaWthblwgOwor55Wz6YedIDwgdGF0YW1paGFyaVwgOwor55m654axIDwgaGF0c3VuZXRzdVwgOwor5YiH5a6fIDwgc2V0c3VqaXRzdVwgOwor5Y+W5b6X6ICFIDwgc2h1dG9rdXNoYVwgOwor5b6h56S85aWJ5YWsIDwgb3JlaWJvdWtvdVwgOwor5bGx6aKqIDwgeWFtYW9yb3NoaVwgOwor5oKq5bmz562JIDwgYWt1YnlvdWRvdVwgOwor5YWJ54mpIDwgaGlrYXJpbW9ub1wgOwor5YmU5Ye6IDwgdGVraXNodXRzdVwgOwor55Sf6a2aIDwgbmFtYXpha2FuYVwgOwor5pyx5a2Q5a2mIDwgc2h1c2hpZ2FrdVwgOwor6Lu96YeR5bGeIDwga2Vpa2luem9rdVwgOwor5YGl6ISa5a62IDwga2Vua3lha3VrYVwgOwor5YWI6Kaa6ICFIDwgc2Vua2FrdXNoYVwgOwor5LiN5pW06ISIIDwgZnVzZWlteWFrdVwgOwor5Luy6ZaT5YaFIDwgbmFrYW1hdWNoaVwgOwor5bCG5p2l5YOPIDwgc2hvdXJhaXpvdVwgOwor5L2O5pWZ5LyaIDwgdGVpa3lvdWthaVwgOwor5oCn6KGd5YuVIDwgc2Vpc2hvdWRvdVwgOwor5ZyS6Iq455So5YW3IDwgZW5nZWl5b3VndVwgOwor57SZ6Iqd5bGFIDwga2FtaXNoaWJhaVwgOwor5YGP6L66IDwga2F0YWhvcm9yaVwgOwor5L2c5oiQ6ICFIDwgc2FrdXNlaXNoYVwgOwor5Zue5pil5YmkIDwga2Fpc2h1bnphaVwgOwor5raI6LK76YePIDwgc2hvdWhpcnlvdVwgOwor5Lim6KO95ZOBIDwgbmFtaXNlaWhpblwgOwor6Iqx55WRIDwgaGFuYWJhdGFrZVwgOwor56C06Iy255uu6Iy2IDwgaGFjaGFtZWNoYVwgOwor5bCC5pyJ5qipIDwgc2VuJyd5dXVrZW5cIDsKK+S5l+mmrOmdtCA8IGpvdWJhZ3V0c3VcIDsKK+WAmemWkyA8IHNvdXJvdWFpZGFcIDsKK+S4jeepj+aWh+abuCA8IGZ1b25idW5zaG9cIDsKK+WHuuizh+iAhSA8IHNodXNzaGlzaGFcIDsKK+WMluefs+WtpiA8IGthc2VraWdha3VcIDsKK+a8ouWtl+aWh+WMliA8IGthbmppYnVua2FcIDsKK+iBtOiouuWZqCA8IGNob3VzaGlua2lcIDsKK+mAsuWHuiA8IHNoaW5zaHV0c3VcIDsKK+eMqeeMqeighSA8IHNob3Vqb3ViYWVcIDsKK+S5seaVsOihqCA8IHJhbnN1dWh5b3VcIDsKK+S6iOWCmeippumokyA8IHlvYmlzaGlrZW5cIDsKK+WKtOWLmeeuoeeQhiA8IHJvdW11a2FucmlcIDsKK+W6l+WNuCA8IHRhbmFvcm9zaGlcIDsKK+Wfi+eri+WcsCA8IHVtZXRhdGVjaGlcIDsKK+WFseWQjOaApyA8IGt5b3Vkb3VzZWlcIDsKK+eGn+e3tOiAhSA8IGp1a3VyZW5zaGFcIDsKK+adseWMl+adsSA8IHRvdWhva3V0b3VcIDsKK+W5s+WSjOS8muitsCA8IGhlaXdha2FpZ2lcIDsKK+eVpei/sCA8IHJ5YWt1anV0c3VcIDsKK+eUn+S9k+iGnCA8IHNlaXRhaW1ha3VcIDsKK+S7u+WLmemDqOmaiiA8IG5pbm11YnV0YWlcIDsKK+awkeihhumnhSA8IG1pbnNodXVla2lcIDsKK+Wuh+WumemjnyA8IHVjaHV1c2hva3VcIDsKK+W4uOW4uCA8IHRzdW5lZHp1bmVcIDsKK+aXpeWFiea1tCA8IG5pa2tvdXlva3VcIDsKK+S7o+aVsOWtpiA8IGRhaXN1dWdha3VcIDsKK+Wwj+mWk+eJqeWxiyA8IGtvbWFtb25veWFcIDsKK+iDveW9ueiAhSA8IG5vdXlha3VzaGFcIDsKK+ayluepjeWcnyA8IGNodXVzZWtpZG9cIDsKK+W8leWKm+WcjyA8IGlucnlva3VrZW5cIDsKK+WIpeWPoyA8IGJldHN1a3VjaGlcIDsKK+S4reaKmOW4vSA8IG5ha2FvcmVib3VcIDsKK+mdnua0u+WLlSA8IGhpa2F0c3Vkb3VcIDsKK+e4puaoqueEoeWwvSA8IGp1dW91bXVqaW5cIDsKK+WFq+apiyA8IHlhdHN1aGFzaGlcIDsKK+WbveWutuS4u+e+qSA8IGtva2thc2h1Z2lcIDsKK+mBjuWJsOaKleS4jiA8IGtham91dG91eW9cIDsKK+irlueQhuWbnui3ryA8IHJvbnJpa2Fpcm9cIDsKK+acieWKn+eroCA8IHl1dWtvdXNob3VcIDsKK+aKleelqOiAhSA8IHRvdWh5b3VzaGFcIDsKK+aUu+aSg+maiiA8IGtvdWdla2l0YWlcIDsKK+WgseWRiuiAhSA8IGhvdWtva3VzaGFcIDsKK+eZuuihqOiAhSA8IGhhcHB5b3VzaGFcIDsKK+aDo+euoemgmCA8IHNvdWthbnJ5b3VcIDsKK+iHquWjiuS9nOeUqCA8IGppa2Fpc2F5b3VcIDsKK+mBuOaKnuiCoiA8IHNlbnRha3VzaGlcIDsKK+aKgOihk+iAhSA8IGdpanV0c3VzaGFcIDsKK+mAsuatqeeahCA8IHNoaW5wb3Rla2lcIDsKK+Wfi+iUtemHjyA8IG1haXpvdXJ5b3VcIDsKK+S7leS6i+WPsCA8IHNoaWdvdG9kYWlcIDsKK+aAp+aIkOeGnyA8IHNlaXNlaWp1a3VcIDsKK+awuOW5tOmWkyA8IG5hZ2FuZW5rYW5cIDsKK+iDjOaVmeiAhSA8IGhhaWt5b3VzaGFcIDsKK+i+sOW5tCA8IHRhdHN1ZG9zaGlcIDsKK+aJi+W3pealrSA8IHNodWtvdWd5b3VcIDsKK+a6luWCmeacn+mWkyA8IGp1bmJpa2lrYW5cIDsKK+WIpeWIpSA8IGJldHN1YmV0c3VcIDsKK+Wwu+mkoCA8IHNoaXJpbW9jaGlcIDsKK+eUs+iri+iAhSA8IHNoaW5zZWlzaGFcIDsKK+a8lOWHuuWutiA8IGVuc2h1dHN1a2FcIDsKK+S4gOWuieW/gyA8IGhpdG9hbnNoaW5cIDsKK+WkqeS4i+eEoeWPjCA8IHRlbmthbXVzb3VcIDsKK+ihjOalveWcsCA8IGtvdXJha3VjaGlcIDsKK+mjn+euoeazlSA8IHNob2trYW5ob3VcIDsKK+ims+a4rOiIuSA8IGthbnNva3VzZW5cIDsKK+ertuWQiOiAhSA8IGt5b3Vnb3VzaGFcIDsKK+WBpeiEs+WJpCA8IGtlbicnbm91emFpXCA7CivkuIDngInljYPph4wgPCBpc3NoYXNlbnJpXCA7Civnmb3mqLogPCBzaGlyYWthbmJhXCA7Civph5HliZvmnZYgPCBrb25nb3VkenVlXCA7CivmqKrooYzpl4rmrakgPCBvdWtvdWthcHBvXCA7CivorJ3ogonnpa0gPCBzaGFuaWt1c2FpXCA7CivopIflhpnntJkgPCBmdWt1c2hhc2hpXCA7CivpgLHliIroqowgPCBzaHV1a2Fuc2hpXCA7Civlj47nqI7miYAgPCBzaHV1emVpc2hvXCA7CivlibDkvZnkvqHlgKQgPCBqb3V5b2thY2hpXCA7CivlhavmnIggPCBoYWNoaWdhdHN1XCA7CivpgJrooYzkurogPCB0c3V1a291bmluXCA7CivpkZHlrprmlpkgPCBrYW50ZWlyeW91XCA7CivouI/ou4ogPCBmdW1pZ3VydW1hXCA7CivmlofljJblm73lrrYgPCBidW5rYWtva2thXCA7CivoiJ7lj7DnqL3lj6QgPCBidXRhaWdlaWtvXCA7CivlkIzkuIDkurogPCBkb3VpdHN1bmluXCA7Civpq5jmva7nt5ogPCBrb3VjaG91c2VuXCA7CivmtbjpgI/mgKcgPCBzaGludG91c2VpXCA7CivooYDoibLntKAgPCBrZXNzaGlraXNvXCA7CivohLPpnIfnm6ogPCBub3VzaGludG91XCA7CivkvIrli6LlpKflu58gPCBpc2V0YWlieW91XCA7Civos4PosrjkurogPCBjaGludGFpbmluXCA7Civlh7rnlJ/lnLAgPCBzaHVzc2VpY2hpXCA7CivnlaXoqqwgPCByeWFrdXNldHN1XCA7Civnt7Tnv5LnlJ8gPCByZW5zaHV1c2VpXCA7CivluqfluK3ooaggPCB6YXNla2loeW91XCA7CivoprPmuKzogIUgPCBrYW5zb2t1c2hhXCA7Civnm7jkupLmlK/mj7QgPCBzb3Vnb3NoaWVuXCA7CivlnLDnjYTogLMgPCBqaWdva3VtaW1pXCA7Civpq5jntJrlk4EgPCBrb3VreXV1aGluXCA7CivpgaDml6XngrkgPCBlbmppdHN1dGVuXCA7CivmvKLlrabogIUgPCBrYW5nYWt1c2hhXCA7CivniafloLTps6UgPCBtYWtpYmF0b3JpXCA7CivnlLPovrwgPCBtb3VzaGlrb21pXCA7CivliIfliIcgPCBzZXRzdXNldHN1XCA7CivmrbvliJHlm5ogPCBzaGlrZWlzaHV1XCA7CivmsLfnoILns5YgPCBrb29yaXphdG91XCA7Civmma7pgY3ljp/nkIYgPCBmdWhlbmdlbnJpXCA7CivlhbHokZfogIUgPCBreW91Y2hvc2hhXCA7Civpqqjpq4Tngo4gPCBrb3RzdXp1aWVuXCA7CivkuI3ljbPkuI3pm6IgPCBmdXNva3VmdXJpXCA7CivmlL7niaflnLAgPCBob3Vib2t1Y2hpXCA7Civmgqrlm6DmgqrmnpwgPCBha3VpbicnYWtrYVwgOwor55m96KGA55CDIDwgaGFra2Vra3l1dVwgOwor55uy5aOBIDwgbWVrdXJha2FiZVwgOwor5rq25bKp5rWBIDwgeW91Z2Fucnl1dVwgOwor5q275YK36ICFIDwgc2hpc2hvdXNoYVwgOwor5byP6YOo5a6YIDwgc2hpa2lidWthblwgOwor6ISG5byx5oCnIDwgemVpamFrdXNlaVwgOwor57Wm5rC05qCTIDwga3l1dXN1aXNlblwgOwor6a+o5bmVIDwga3VqaXJhbWFrdVwgOwor6Kaz5ris57ayIDwga2Fuc29rdW1vdVwgOwor5oCl6KGM5Yi4IDwga3l1dWtvdWtlblwgOwor55m95pifIDwgc2hpcm9ib3NoaVwgOwor55m+5pelIDwgaHlha3VuaWNoaVwgOwor6ZmE5ZKM6Zu35ZCMIDwgZnV3YXJhaWRvdVwgOwor5b6h6Z6t5pK7IDwgZ29iZW50YXRzdVwgOwor57eR5Y2B5a2XIDwgcnlva3VqdXVqaVwgOwor5YyW57Kn6YOo5bGLIDwga2VzaG91YmV5YVwgOwor5rWB57ea5b2iIDwgcnl1dXNlbmtlaVwgOwor6Iac6LOqIDwgbWFrdXNoaXRzdVwgOwor5Y6f5aeL55qEIDwgZ2Vuc2hpdGVraVwgOwor54mn576K5ZywIDwgYm9rdXlvdWNoaVwgOwor5Ye65YWlIDwgc2h1dHN1bnl1dVwgOwor56Oo6KO955+z5ZmoIDwgbWFzZWlzZWtraVwgOwor54i25a2Q5a625bqtIDwgZnVzaGlrYXRlaVwgOwor5Z+8546J55yMIDwgc2FpdGFtYWtlblwgOwor5L2Z6Z+75auL5auLIDwgeW9pbmpvdWpvdVwgOwor5pS75pKD6LuNIDwga291Z2VraWd1blwgOwor5pW16Imm6ZqKIDwgdGVraWthbnRhaVwgOwor5bm05LiLIDwgdG9zaGlzaGl0YVwgOwor6aOf5Zmo5qOaIDwgc2hva2tpZGFuYVwgOwor5Lyd6YCB5YWIIDwgZGVuc291c2FraVwgOwor56iy6I236a6oIDwgaW5hcml6dXNoaVwgOwor5L+C6ZW3IDwga2FrYXJpY2hvdVwgOwor5b6p6Kq/5ZmoIDwgZnVrdWNob3VraVwgOwor5aSn55eF5Lq6IDwgZGFpYnlvdW5pblwgOwor5YWx5Yq06ICFIDwga3lvdXJvdXNoYVwgOwor5YCZ6Kq/IDwgc291cm91Y2hvdVwgOwor55eF5Y6f6I+MIDwgYnlvdWdlbmtpblwgOwor5pyd6a6u5Lq6IDwgY2hvdXNlbmppblwgOwor57iE5paH5Zyf5ZmoIDwgam91bW9uZG9raVwgOwor5YSq6LaK5qipIDwgeXV1ZXRzdWtlblwgOwor6a+o5bC6IDwga3VqaXJhamFrdVwgOwor5LiA5Lq65peFIDwgaGl0b3JpdGFiaVwgOwor5paH5a2m6KuWIDwgYnVuZ2FrdXJvblwgOwor6IKJ5oSf55qEIDwgbmlra2FudGVraVwgOwor5oCl6KGM5L6/IDwga3l1dWtvdWJpblwgOwor55Sy5LmZ5LiZIDwga291b3RzdWhlaVwgOwor5Lit5rOi6ZW3IDwgY2h1dWhhY2hvdVwgOwor54Sh6IG36ICFIDwgbXVzaG9rdXNoYVwgOwor5Y+O56iO5a6YIDwgc2h1dXplaWthblwgOwor5a2m6YOo6ZW3IDwgZ2FrdWJ1Y2hvdVwgOwor6LKh5YuZ566h55CGIDwgemFpbXVrYW5yaVwgOwor6LaF5qC85a2QIDwgY2hvdWtvdXNoaVwgOwor56mC54q26Iqx5bqPIDwgc3Vpam91a2Fqb1wgOwor6ZeK6JGJ5qi5IDwga2F0c3V5b3VqdVwgOwor55ub5ZyfIDwgbW9yaXRzdWNoaVwgOwor5YWx6bO06ICFIDwga3lvdW1laXNoYVwgOwor54Sh5L2T54mpIDwgbXV0YWlidXRzdVwgOwor5rWu5rCX5aWzIDwgdXdha2lvbicnbmFcIDsKK+eZu+ernOmWgCA8IHRvdXJ5dXVtb25cIDsKK+S4gOe+qeeahCA8IGljaGlnaXRla2lcIDsKK+esrOS4gOadoSA8IGRhaWljaGlqb3VcIDsKK+i+nuabuOmDqOmWgCA8IGppc2hvYnVtb25cIDsKK+WGheeUqOiWrCA8IG5haXlvdXlha3VcIDsKK+apn+WLlemDqOmaiiA8IGtpZG91YnV0YWlcIDsKK+S/neWuieWHpuWIhiA8IGhvYW5zaG9idW5cIDsKK+iKseaapiA8IGhhbmFnb3lvbWlcIDsKK+W6p+aomei7uCA8IHphaHlvdWppa3VcIDsKK+etlua6kOWcsCA8IHNha3VnZW5jaGlcIDsKK+ebtOWIlyA8IGNob2t1cmV0c3VcIDsKK+WEqueUn+WtpiA8IHl1dXNlaWdha3VcIDsKK+aEj+aAneihqOekuiA8IGlzaGloeW91amlcIDsKK+WIhumaiumVtyA8IGJ1bnRhaWNob3VcIDsKK+WWtuWIqeS6i+alrSA8IGVpcmlqaWd5b3VcIDsKK+WJjeWAn+mHkSA8IHplbnNoYWtraW5cIDsKK+earuiGmuenu+akjSA8IGhpZnVpc2hva3VcIDsKK+S7suijgeS6uiA8IGNodXVzYWluaW5cIDsKK+i1pOmBk+elrSA8IHNla2lkb3VzYWlcIDsKK+adseWMl+WkpyA8IHRvdWhva3VkYWlcIDsKK+Wun+iovOirliA8IGppc3Nob3Vyb25cIDsKK+S4jeeHg+eJqSA8IGZ1bmVuYnV0c3VcIDsKK+WFqOW8t+miqCA8IHplbmt5b3VmdXVcIDsKK+itsOS6i+WmqOWusyA8IGdpamlib3VnYWlcIDsKK+Wwj+WkqeWcsCA8IHNob3V0ZW5jaGlcIDsKK+mFoumFuOWhqSA8IHNha3VzYW4nJ2VuXCA7CivotoXpn7PpgJ8gPCBjaG91b25zb2t1XCA7Civlr4blkYrogIUgPCBtaWtrb2t1c2hhXCA7CivliIbpoZ7lraYgPCBidW5ydWlnYWt1XCA7Civlvavph5HluKsgPCBjaG91a2luc2hpXCA7CivkuIDpqI7lvZPljYMgPCBpa2tpdG91c2VuXCA7CivpmL/pvLvlj6vllpogPCBhYmlreW91a2FuXCA7Civntbblr77muKnluqYgPCB6ZXR0YWlvbmRvXCA7Civpu4Tph5HkuJbnlYwgPCBvdWdvbnNla2FpXCA7CivlhbHpgJroqp4gPCBreW91dHN1dWdvXCA7Civlhr3lhr0gPCByZXRzdXJldHN1XCA7CivnpZ7np5jlraYgPCBzaGluaGlnYWt1XCA7CivkuIDmnKzmqYsgPCBpcHBvbmJhc2hpXCA7CivnrKzkupTliJcgPCBkYWlnb3JldHN1XCA7CivntLPlo6vnlKggPCBzaGluc2hpeW91XCA7CivkuIDmnprlsqkgPCBpY2hpbWFpaXdhXCA7CivkuIDmnKzmp40gPCBpcHBvbicneWFyaVwgOwor5Zuw56qu6ICFIDwga29ua3l1dXNoYVwgOwor5YWl5a6kIDwgbnl1dXNoaXRzdVwgOwor5qOS5rip5bqm6KiIIDwgYm91b25kb2tlaVwgOwor5Yas5pSv5bqmIDwgZnV5dWppdGFrdVwgOwor5YWx5ZCM5L2TIDwga3lvdWRvdXRhaVwgOwor5bCR5pWw5YWaIDwgc2hvdXN1dXRvdVwgOwor5YWo5rCR6KGGIDwgemVubWluc2h1dVwgOwor55u45Y+N55qEIDwgc291aGFudGVraVwgOwor5rWu6YGK54mpIDwgZnV5dXVidXRzdVwgOwor5Yq05YON55yBIDwgcm91ZG91c2hvdVwgOwor5a2r5oGv5a2QIDwgbWFnb211c3Vrb1wgOwor5Y+N5a++5oSP6KaLIDwgaGFudGFpaWtlblwgOwor5L6b6aSK5aGaIDwga3V5b3VkenVrYVwgOwor6aeG6YCQ6ImmIDwga3VjaGlrdWthblwgOwor57Sg5Lq655uuIDwgc2hpcm91dG9tZVwgOwor57K+6IKJ5bqXIDwgc2VpbmlrdXRlblwgOwor5Y+M5q676aGeIDwgc291a2FrdXJ1aVwgOwor5qyj5rGC5rWE5ZyfIDwgZ29uZ3Vqb3Vkb1wgOwor6YeR6LKo5rqW5YKZIDwga2lua2FqdW5iaVwgOwor5aWo5Yqx6YeRIDwgc2hvdXJlaWtpblwgOwor5LiN57K+6autIDwgYnVzaG91aGlnZVwgOwor6KuW55CG57Sg5a2QIDwgcm9ucmlzb3NoaVwgOwor6IO95YuV55qEIDwgbm91ZG91dGVraVwgOwor57SE5Y2K5YiGIDwgeWFrdWhhbmJ1blwgOwor5bGx6I2SIDwgeWFtYWFyYXNoaVwgOwor57ay5ryB5qWtIDwgYW1pZ3lvZ3lvdVwgOwor5o6I5qWt5LitIDwganVneW91Y2h1dVwgOwor5bKp55+z5ZyPIDwgZ2Fuc2VraWtlblwgOwor6Zyy5Zyw5qC95Z+5IDwgcm9qaXNhaWJhaVwgOwor5b2555uu5p+EIDwgeWFrdW1lZ2FyYVwgOwor5Y+k5aKz5pmC5LujIDwga29mdW5qaWRhaVwgOwor5LiA5pys5p2+IDwgaXBwb25tYXRzdVwgOwor5aGp54WO6aSFIDwgc2hpb3NlbmJlaVwgOwor5Y2X44CF6KW/IDwgbmFuJyduYW5zZWlcIDsKK+WcqOWtpueUnyA8IHphaWdha3VzZWlcIDsKK+WJg+WIgOegpSA8IGthbWlzb3JpZG9cIDsKK+WkmueZuuaApyA8IHRhaGF0c3VzZWlcIDsKK+eEoeeFmeeBq+iWrCA8IG11ZW5rYXlha3VcIDsKK+WEqui2iuaEnyA8IHl1dWV0c3VrYW5cIDsKK+eJuee0muWTgSA8IHRva2t5dXVoaW5cIDsKK+S4ieinkumMkCA8IHNhbmtha3VzdWlcIDsKK+WCkeeJqSA8IGtldHN1YnV0c3VcIDsKK+W/heayu+iWrCA8IGhpdGNoaXlha3VcIDsKK+WNmOaMr+WLlSA8IHRhbnNoaW5kb3VcIDsKK+S4u+W8teiAhSA8IHNodWNob3VzaGFcIDsKK+aOkuS7luW+iyA8IGhhaXRhcml0c3VcIDsKK+aUv+ayu+apn+aniyA8IHNlaWppa2lrb3VcIDsKK+aEj+W/l+axuuWumiA8IGlzaGlrZXR0ZWlcIDsKK+WEqui2iuaApyA8IHl1dWV0c3VzZWlcIDsKK+W9ouaFi+WtpiA8IGtlaXRhaWdha3VcIDsKK+W3pealreeVjCA8IGtvdWd5b3VrYWlcIDsKK+W3pealreeUqCA8IGtvdWd5b3V5b3VcIDsKK+epjeS5sembsiA8IHNla2lyYW4nJ3VuXCA7Civmi53oprPmlpkgPCBoYWlrYW5yeW91XCA7CivpoJjmtbfnt5ogPCByeW91a2Fpc2VuXCA7Civop5LliIbmlaMgPCBrYWt1YnVuc2FuXCA7CivkuI3opovorZggPCBmdWtlbnNoaWtpXCA7CivlpKflrabnlJ8gPCBkYWlnYWt1c2VpXCA7CivmnIDljJfnq68gPCBzYWlob2t1dGFuXCA7CivooajpnaLkuIogPCBoeW91bWVuam91XCA7Civmv4PnoavphbggPCBub3VyeXV1c2FuXCA7CivnlaXnrYYgPCByeWFrdWhpdHN1XCA7CivmsLTljJbniakgPCBzdWlrYWJ1dHN1XCA7CivotoXkvJ3lsI4gPCBjaG91ZGVuZG91XCA7CivmloflrabogIUgPCBidW5nYWt1c2hhXCA7Civnspfnm67pm6ogPCB6YXJhbWV5dWtpXCA7Civlj7LlrabogIUgPCBzaGlnYWt1c2hhXCA7Civlm73msJHou40gPCBrb2t1bWluZ3VuXCA7CivlkoDlmrznrYsgPCBzb3NoYWt1a2luXCA7CivkvY/miYDpjLIgPCBqdXVzaG9yb2t1XCA7Civpp5DlgZzou4ogPCBjaHV1dGVpc2hhXCA7CivmpI3mqLnnpa0gPCBzaG9rdWp1c2FpXCA7CivosqDojbfliIbmlaMgPCBmdWthYnVuc2FuXCA7Civop5LpgJ/luqYgPCBrYWt1c29rdWRvXCA7Civlt6bliKkgPCBoaWRhcmlraWtpXCA7CivlpKfotaTmlpEgPCBkYWlzZWtpaGFuXCA7CivlnLDkuK3mtbcgPCBjaGljaHV1a2FpXCA7CivkvLjppIUgPCBub3NoaW1vY2hpXCA7CivkuI3lgY/kuI3lhZogPCBmdWhlbmZ1dG91XCA7CivlhoXlhpEgPCB1Y2hpa2FidXRvXCA7CivllYblo7LkurogPCBzaG91YmFpbmluXCA7CivlkIzluornlbDlpKIgPCBkb3VzaG91aW11XCA7Civlj5flj5bkurogPCB1a2V0b3JpbmluXCA7CivopovmnKzluIIgPCBtaWhvbicnaWNoaVwgOwor54Sh6ZmQ6LuM6YGTIDwgbXVnZW5raWRvdVwgOwor5oqV56Wo5qipIDwgdG91aHlvdWtlblwgOwor5o6i54Wn54GvIDwgdGFuc2hvdXRvdVwgOwor5YWo5Yud6LuNIDwgemVuc2hvdWd1blwgOwor57Wm5rC05aGUIDwga3l1dXN1aXRvdVwgOwor5r2u5bmy54upIDwgc2hpb2hpZ2FyaVwgOwor6LuN5LqL6aGn5ZWPIDwgZ3Vuamlrb21vblwgOwor54mh576K5bqnIDwgb2hpdHN1aml6YVwgOwor6IC9576O5Li7576pIDwgdGFuYmlzaHVnaVwgOwor5Y+O56iO5Lq6IDwgc2h1dXplaW5pblwgOwor5Zac5YqH5pig55S7IDwga2lnZWtpZWlnYVwgOwor5bem5YG0IDwgaGlkYXJpZ2F3YVwgOwor6YG45oqe5qipIDwgc2VudGFrdWtlblwgOwor5o6h54K56KGoIDwgc2FpdGVuaHlvdVwgOwor5bel5bel5ZubIDwga3Vua3Vuc2hpaVwgOwor5YWl5Y+jIDwgaGFpcmlndWNoaVwgOwor6KiY6Yyy55qEIDwga2lyb2t1dGVraVwgOwor6LGG5p2/6YqAIDwgbWFtZWl0YWdpblwgOwor57W25a++6YePIDwgemV0dGFpcnlvdVwgOwor5p2x5YyX5Lq6IDwgdG91aG9rdWppblwgOwor5rW36LuN55yBIDwga2FpZ3Vuc2hvdVwgOwor6YeR5Ymb5YqbIDwga29uZ291cmlraVwgOwor55yf5pqX6ZeHIDwgbWFrdXJheWFtaVwgOwor5qSc55ar5a6YIDwga2VuJydla2lrYW5cIDsKK+WupOmVtyA8IHNoaXRzdWNob3VcIDsKK+WvvuixoeWkliA8IHRhaXNob3VnYWlcIDsKK+aWsOa9n+ecjCA8IG5paWdhdGFrZW5cIDsKK+mXh+WGjeiyqSA8IHlhbWlzYWloYW5cIDsKK+WLleeJqeaEmyA8IGRvdWJ1dHN1YWlcIDsKK+abvOePoOaymeiPryA8IG1hbmp1c2hhZ2VcIDsKK+S9v+eUqOmHjyA8IHNoaXlvdXJ5b3VcIDsKK+WEquWnvyA8IHlhc2FzdWdhdGFcIDsKK+iXgeWNiue0mSA8IHdhcmFiYW5zaGlcIDsKK+aooeaTrOippumokyA8IG1vZ2lzaGlrZW5cIDsKK+aWsOmWi+WcsCA8IHNoaW5rYWljaGlcIDsKK+mdnuW4uOitmCA8IGhpam91c2hpa2lcIDsKK+S4gOmdouimsyA8IGljaGltZW5rYW5cIDsKK+euoee1g+alvSA8IGthbmdlbmdha3VcIDsKK+imj+WJh+mBleWPjSA8IGtpc29rdWloYW5cIDsKK+acgOaBteWbvSA8IHNhaWtlaWtva3VcIDsKK+aFouaAp+eahCA8IG1hbnNlaXRla2lcIDsKK+Wkj+eCieWGrOaJhyA8IGthcm90b3VzZW5cIDsKK+aOqOioiOWtpiA8IHN1aWtlaWdha3VcIDsKK+WJr+mgmOS6iyA8IGZ1a3VyeW91amlcIDsKK+WNsOWIt+iAhSA8IGluc2F0c3VzaGFcIDsKK+iAkOeBq+WKmyA8IHRhaWthcnlva3VcIDsKK+WPi+emheafkyA8IHl1dXplbnpvbWVcIDsKK+WgseWRiuabuCA8IGhvdWtva3VzaG9cIDsKK+mqqOagvOetiyA8IGtva2tha3VraW5cIDsKK+mbqOWkqeaxuuihjCA8IHV0ZW5rZWtrb3VcIDsKK+iXu+WhqeiNiSA8IG1vc2hpb2d1c2FcIDsKK+mbhuWkp+aIkCA8IHNodXV0YWlzZWlcIDsKK+aFouaAp+eXhSA8IG1hbnNlaWJ5b3VcIDsKK+Wuo+iogOeahCA8IHNlbmdlbnRla2lcIDsKK+WFremHjeWljyA8IHJva3VqdXVzb3VcIDsKK+mfs+mfv+WtpiA8IG9ua3lvdWdha3VcIDsKK+eUs+eriyA8IG1vdXNoaXRhdGVcIDsKK+W3pealrea4ryA8IGtvdWd5b3Vrb3VcIDsKK+e3j+i+nuiBtyA8IHNvdWppc2hva3VcIDsKK+i7jeWbo+mVtyA8IGd1bmRhbmNob3VcIDsKK+aEj+imi+S6pOaPmyA8IGlrZW5rb3VrYW5cIDsKK+W5tOmVt+iAhSA8IG5lbmNob3VzaGFcIDsKK+e3j+WLmeWxgCA8IHNvdW11a3lva3VcIDsKK+S4jeS5vuaAp+ayuSA8IGZ1a2Fuc2VpeXVcIDsKK+mdouebuOethiA8IG1lbnNvdWZ1ZGVcIDsKK+aVo+atqemBkyA8IHNhbnBvbWljaGlcIDsKK+ekuuWcp+ioiCA8IHNoaWF0c3VrZWlcIDsKK+S4lue0gOacqyA8IHNlaWtpbWF0c3VcIDsKK+esrOS4ieWbvSA8IGRhaXNhbmdva3VcIDsKK+aKleelqOaVsCA8IHRvdWh5b3VzdXVcIDsKK+S9leeuh+aciCA8IG5hbmthZ2V0c3VcIDsKK+eUs+iri+abuCA8IHNoaW5zZWlzaG9cIDsKK+akjeeJqSA8IHNob2t1YnV0c3VcIDsKK+iFueiGnOeCjiA8IGZ1a3VtYWt1ZW5cIDsKK+a4qeazieeUuiA8IG9uc2VubWFjaGlcIDsKK+S4u+WLleeahCA8IHNodWRvdXRla2lcIDsKK+azjOWwv+WZqOenkSA8IGhpbnlvdWtpa2FcIDsKK+S4jeaWh+W+iyA8IGZ1YnVucml0c3VcIDsKK+W8geW9k+eusSA8IGJlbnRvdWJha29cIDsKK+WyqeeHlSA8IGl3YXRzdWJhbWVcIDsKK+WkqeS9k+WtpiA8IHRlbnRhaWdha3VcIDsKK+WNsOWIt+e0mSA8IGluc2F0c3VzaGlcIDsKK+S9juaIkOmVtyA8IHRlaXNlaWNob3VcIDsKK+S/r+S7sOinkiA8IGZ1Z3lvdWtha3VcIDsKK+W4t+W5hOS4iuWljyA8IGlha3Vqb3Vzb3VcIDsKK+aUvueGseWZqCA8IGhvdW5ldHN1a2lcIDsKK+e0lOiJr+WTgSA8IGp1bnJ5b3VoaW5cIDsKK+WCmeW+jOihqCA8IGJpbmdvb21vdGVcIDsKK+aal+auuuiAhSA8IGFuc2F0c3VzaGFcIDsKK+W5s+aVmeWToSA8IGhpcmFreW91aW5cIDsKK+S4jeimmuiAhSA8IGZ1a2FrdW1vbm9cIDsKK+aIkOmVt+eCuSA8IHNlaWNob3V0ZW5cIDsKK+adseaoque3miA8IHRvdXlva29zZW5cIDsKK+aVkea4iOiAhSA8IGt5dXVzYWlzaGFcIDsKK+efpeiDveeahCA8IGNoaW5vdXRla2lcIDsKK+WEsuWPoyA8IG1vdWtlZ3VjaGlcIDsKK+WFqOaoqeWnlOWToSA8IHplbmtlbicnaWluXCA7CivlubvopprliaQgPCBnZW5rYWt1emFpXCA7CivmnpznianlsYsgPCBrdWRhbW9ub3lhXCA7CivmvJTnrpfmqZ/mp4sgPCBlbnphbmtpa291XCA7CivkurrmoLzogIUgPCBqaW5rYWt1c2hhXCA7CivnhKHok4vosqjou4ogPCBtdWdhaWthc2hhXCA7Civph5HlsZ7plpMgPCBraW56b2t1a2FuXCA7CivoirHmn7Pnl4UgPCBrYXJ5dXVieW91XCA7Civmo5/nk6YgPCBtdW5hZ2F3YXJhXCA7Civpq5jmnpUgPCB0YWthbWFrdXJhXCA7CivogIHlpKflm70gPCByb3V0YWlrb2t1XCA7Civku6PoqIDkurogPCBkYWlnZW4nJ25pblwgOwor5b+D5b6X6aGUIDwga29rb3JvZWdhb1wgOwor5Luj6KGo6ICFIDwgZGFpaHlvdXNoYVwgOwor5Li755+l55qEIDwgc2h1Y2hpdGVraVwgOwor5paH5a2m55WMIDwgYnVuZ2FrdWthaVwgOwor5YiH5pat5qmfIDwgc2V0c3VkYW5raVwgOwor5LiA5pmC55qEIDwgaWNoaWppdGVraVwgOwor5Lqk6YCa57ayIDwga291dHN1dW1vdVwgOwor5LqM5Y2B5LiW57SAIDwgbmlqaXNzZWlraVwgOwor5L+d6K235Yem5YiGIDwgaG9nb3Nob2J1blwgOwor5Zyw55CD5Lq6IDwgY2hpa3l1dWppblwgOwor6IS56ISbIDwgZnVrdXJhaGFnaVwgOwor6auY5puHIDwgdGFrYWd1bW9yaVwgOwor55qu6Iaa56eR5a2mIDwgaGlmdWthZ2FrdVwgOwor5Zyw55CD5LiKIDwgY2hpa3l1dWpvdVwgOwor6YCG5o+Q5qGIIDwgZ3lha3V0ZWlhblwgOwor5a++5pWw6KGoIDwgdGFpc3V1aHlvdVwgOwor6KGG5oSa5pS/5rK7IDwgc2h1Z3VzZWlqaVwgOwor5pWX5oim5Zu9IDwgaGFpc2Vua29rdVwgOwor5L6N5b6T5q2m5a6YIDwgamlqdXVidWthblwgOwor5paw6KO95ZOBIDwgc2hpbnNlaWhpblwgOwor5o6n6Ki05pyf6ZaTIDwga291c29raWthblwgOwor5LiK5L2N5qeL6YCgIDwgam91aWtvdXpvdVwgOwor5qW16Led6ZuiIDwga3lva3VreW9yaVwgOwor5bi45Lu75aeU5ZOhIDwgam91bmluJydpaW5cIDsKK+iKneWxheWwj+WxiyA8IHNoaWJhaWdveWFcIDsKK+ahnOiKsSA8IHNha3VyYWJhbmFcIDsKK+WFrOenn+WFrOiqsiA8IGtvdXNva291a2FcIDsKK+eGn+e3tOW3pSA8IGp1a3VyZW5rb3VcIDsKK+iJsue0oOS9kyA8IHNoaWtpc290YWlcIDsKK+S4uOegpeefsyA8IG1hcnV0b2lzaGlcIDsKK+WQjOaXj+S8miA8IGRvdXpva3VrYWlcIDsKK+e1jOa4iOeahCA8IGtlaXphaXRla2lcIDsKK+aYk+aEn+afk+aApyA8IGlrYW5zZW5zZWlcIDsKK+eJm+S5s+WxiyA8IGd5dXVueXV1eWFcIDsKK+e3tOe/kuWgtCA8IHJlbnNodXVqb3VcIDsKK+e0gOS8iuWci+WxiyA8IGtpbm9rdW5peWFcIDsKK+ahkeiLuiA8IGt1d2FpY2hpZ29cIDsKK+WknOm3ueiVjum6piA8IHlvdGFrYXNvYmFcIDsKK+eJueijveWTgSA8IHRva3VzZWloaW5cIDsKK+WLpOWLmeaZgumWkyA8IGtpbm11amlrYW5cIDsKK+WOreS4luS4u+e+qSA8IGVuc2Vpc2h1Z2lcIDsKK+WNmOS9jeiomOWPtyA8IHRhbicnaWtpZ291XCA7CivohJroibIgPCBreWFrdXNob2t1XCA7CivkuI3oqqDlrp8gPCBmdXNlaWppdHN1XCA7CivlvpPmnaXlnosgPCBqdXVyYWlnYXRhXCA7Civlr77osaHkvZMgPCB0YWlzaG91dGFpXCA7Civnsonnn7PpubggPCBrb25hc2Vra2VuXCA7CivlpJzlsL/nl4cgPCB5YW55b3VzaG91XCA7CivotoXmlofpnaIgPCBjaG91YnVubWVuXCA7CivmjpLku5bkuLvnvqkgPCBoYWl0YXNodWdpXCA7Civli5XnianlnJIgPCBkb3VidXRzdWVuXCA7Civnt4/nm6PnnaMgPCBzb3VrYW50b2t1XCA7Civlrp/pmpvnmoQgPCBqaXNzYWl0ZWtpXCA7CivpoLzkv6HntJkgPCByYWlzaGluc2hpXCA7Civlroflrpnpo5vooYwgPCB1Y2h1dWhpa291XCA7CivlrqPmlZnluKsgPCBzZW5reW91c2hpXCA7CivmoZzogokgPCBzYWt1cmFuaWt1XCA7Civosqzku7vogIUgPCBzZWtpbmluc2hhXCA7CivplqLnr4Dngo4gPCBrYW5zZXRzdWVuXCA7Civogqnou4ogPCBrYXRhZ3VydW1hXCA7CivlhbHps7Tmnb8gPCBreW91bWVpYmFuXCA7CivlrpfkuLvlm70gPCBzb3VzaHVrb2t1XCA7Civku67lkI3ojYnntJkgPCBrYW5hem91c2hpXCA7Civml6fou43kurogPCBreXV1Z3VuamluXCA7CivljYrmv4HngrkgPCBoYW5kYWt1dGVuXCA7CivlnZHlhoXkuovmlYUgPCBrb3VuYWlqaWtvXCA7CivljYrplbflvaIgPCBoYW5jaG91a2VpXCA7CivkuK3msLTpgZMgPCBjaHV1c3VpZG91XCA7CivpgbjmiYvmnZEgPCBzZW5zaHVtdXJhXCA7Civoq5bnkIbmvJTnrpcgPCByb25yaWVuemFuXCA7Civos6rph48gPCBzaGl0c3VyeW91XCA7CivljbDliLfnlKggPCBpbnNhdHN1eW91XCA7CivpnIrmn6nou4ogPCByZWlreXV1c2hhXCA7Civmtbflsrjnq68gPCBrYWlnYW5iYXRhXCA7CivlpJbnlKjolqwgPCBnYWl5b3V5YWt1XCA7CivntKvmlpHnl4UgPCBzaGloYW5ieW91XCA7Civom7jphY3lvZMgPCB0YWtvaGFpdG91XCA7Civpq5jmiYDnl4UgPCBrb3VzaG9ieW91XCA7CivnlZzmrrogPCBjaGlrdXNhdHN1XCA7CivlpKflsI/kvr8gPCBkYWlzaG91YmVuXCA7Civpm7vmsJfmr5vluIMgPCBkZW5raW1vdWZ1XCA7CivnsbPlm73msJEgPCBiZWlrb2t1bWluXCA7CivlkLjmsLTmgKcgPCBreXV1c3Vpc2VpXCA7Civpm7LprKLoirHpoZQgPCB1bmJpbmthZ2FuXCA7Civlv7XkupTml6UgPCBuZW5nb25pY2hpXCA7Civlh7rmnaXlv4MgPCBkZWtpZ29rb3JvXCA7CivkuK3lv4Ppg6ggPCBjaHV1c2hpbmJ1XCA7CivlvqHliY3kvJrorbAgPCBnb3plbmthaWdpXCA7CivohIjohIggPCBteWFrdW15YWt1XCA7CivnlJ/kvZPlraYgPCBzZWl0YWlnYWt1XCA7CivmpZTlvaIgPCBrdXNhYmlnYXRhXCA7Civkuojlgpnoqr/mn7sgPCB5b2JpY2hvdXNhXCA7CivlubPlkozkuLvnvqkgPCBoZWl3YXNodWdpXCA7Civogq/lrprnmoQgPCBrb3V0ZWl0ZWtpXCA7CivmoZzntJkgPCBzYWt1cmFnYW1pXCA7Civms6jmhI/kuovpoIUgPCBjaHV1aWppa291XCA7Civli5XnianljJYgPCBkb3VidXRzdWthXCA7CivmsLTlubPnv7wgPCBzdWloZWl5b2t1XCA7Civosr/mmJPmpa0gPCBib3Vla2lneW91XCA7CivohbDluIPlm6MgPCBrb3NoaWJ1dG9uXCA7CivniIbmkoPmqZ8gPCBiYWt1Z2VraWtpXCA7CivoqIDooYzpjLIgPCBnZW5rb3Vyb2t1XCA7Civlm6PlnLDml48gPCBkYW5jaGl6b2t1XCA7CivkubHoqr/lrZAgPCByYW5jaG91c2hpXCA7Civlgpnok4TnsbMgPCBiaWNoaWt1bWFpXCA7CivlpKfkuZfnmoQgPCBkYWlqb3V0ZWtpXCA7CivnhKHog73lipsgPCBtdW5vdXJ5b2t1XCA7CivpharovrLloLQgPCByYWt1bm91am91XCA7Civog7jpg6jlpJbnp5EgPCBreW91YnVnZWthXCA7CivosqjlrqLoiLkgPCBrYWt5YWt1c2VuXCA7CivmhJ/mn5Pnl4cgPCBrYW5zZW5zaG91XCA7CivnnJ/nkIbmlZkgPCBzaGlucmlreW91XCA7CivmhYjlloTpjYsgPCBqaXplbicnbmFiZVwgOwor55eF5a6kIDwgYnlvdXNoaXRzdVwgOwor5oqA6KGT5aOrIDwgZ2lqdXRzdXNoaVwgOwor6IqL5L6NIDwgaW1vemFtdXJhaVwgOwor5ZOo5oiS6ImHIDwgc2hvdWthaXRlaVwgOwor6YWS55+z6YW4IDwgc2h1c2VraXNhblwgOwor5pW35biD5ZujIDwgc2hpa2lidXRvblwgOwor6Z2e5Y+v5o+b576kIDwgaGlrYWthbmd1blwgOwor5Y+N5YmH6YeRIDwgaGFuc29rdWtpblwgOwor6YG65Lyd5oOF5aCxIDwgaWRlbmpvdWhvdVwgOwor5pyJ5qmf54mpIDwgeXV1a2lidXRzdVwgOwor6IKJ6LOqIDwgbmlrdXNoaXRzdVwgOwor5a+E55Sf54Gr5bGxIDwga2lzZWlrYXphblwgOwor5oq96LGh55S7IDwgY2h1dXNob3VnYVwgOwor56ef5YCf5qipIDwgc29zaGFrdWtlblwgOwor5YaF55Sz5pu4IDwgbmFpc2hpbnNob1wgOwor5ZCM57Sa55SfIDwgZG91a3l1dXNlaVwgOwor5ZCR57Gz55qEIDwga291YmVpdGVraVwgOwor6Kaq6KGb5YW1IDwgc2hpbicnZWloZWlcIDsKK+S7j+aWh+enkSA8IGZ1dHN1YnVua2FcIDsKK+S6jOmDqOaOiOalrSA8IG5pYnVqdWd5b3VcIDsKK+WPluW8leaJgCA8IHRvcmloaWtpam9cIDsKK+mbu+i7iuizgyA8IGRlbnNoYWNoaW5cIDsKK+mbhuaVo+WcsCA8IHNodXVzYW5jaGlcIDsKK+e2uuaDs+absiA8IGtpc291a3lva3VcIDsKK+S4iuiqv+WtkCA8IHV3YWNob3VzaGlcIDsKK+WGheiHk+W8kyA8IG5haXpvdWt5dXVcIDsKK+WNiumWi+WbvSA8IGhhbmthaWtva3VcIDsKK+ijvemAoOalrSA8IHNlaXpvdWd5b3VcIDsKK+i/veaSg+apnyA8IHRzdWlnZWtpa2lcIDsKK+S4ieinkuetiyA8IHNhbmtha3VraW5cIDsKK+mdnuWWtuWIqeeahCA8IGhpZWlyaXRla2lcIDsKK+etiea3see3miA8IHRvdXNoaW5zZW5cIDsKK+mnhuWLleWKmyA8IGt1ZG91cnlva3VcIDsKK+ays+W3neW3peS6iyA8IGthc2Vua291amlcIDsKK+mHjeW3pealrSA8IGp1dWtvdWd5b3VcIDsKK+m6u+e5lOeJqSA8IGFzYW9yaW1vbm9cIDsKK+aXpeWwhOeXhSA8IG5pc3NoYWJ5b3VcIDsKK+eGseihgOWFkCA8IG5la2tldHN1amlcIDsKK+mHkeWxnuijvSA8IGtpbnpva3VzZWlcIDsKK+acrOWlkee0hCA8IGhvbmtlaXlha3VcIDsKK+ebuOaJi+asoeesrCA8IGFpdGVzaGlkYWlcIDsKK+m7hOikkOiJsiA8IG91a2Fzc2hva3VcIDsKK+izvOWFpeiAhSA8IGtvdW55dXVzaGFcIDsKK+S4jeeyvuiAhSA8IGJ1c2hvdW1vbm9cIDsKK+S4u+W/nOWKmyA8IHNodW91cnlva3VcIDsKK+S+v+WunOS4u+e+qSA8IGJlbmdpc2h1Z2lcIDsKK+WfvOeOieWLoiA8IHNhaXRhbWF6ZWlcIDsKK+WuneiIuSA8IHRha2FyYWJ1bmVcIDsKK+mHjeWCt+iAhSA8IGp1dXNob3VzaGFcIDsKK+earuiGmuWRvOWQuCA8IGhpZnVrb2t5dXVcIDsKK+WxseahnCA8IHlhbWF6YWt1cmFcIDsKK+S6nOaIkOWxpOWcjyA8IGFzZWlzb3VrZW5cIDsKK+WCt+Wus+e9qiA8IHNob3VnYWl6YWlcIDsKK+S9nOaIpuS4iiA8IHNha3VzZW5qb3VcIDsKK+WBtOWupCA8IHNva3VzaGl0c3VcIDsKK+iGneaelSA8IGhpemFtYWt1cmFcIDsKK+a9nOawtOeXhSA8IHNlbnN1aWJ5b3VcIDsKK+S4reaAp+e0mSA8IGNodXVzZWlzaGlcIDsKK+S5s+mmliA8IGNoaWNoaWt1YmlcIDsKK+iouueZguaJgCA8IHNoaW5yeW91am9cIDsKK+epuui7jeWkp+WwiSA8IGt1dWd1bnRhaWlcIDsKK+aXpeacrOmjnyA8IG5paG9uc2hva3VcIDsKK+eovOWDjeeOhyA8IGthZG91cml0c3VcIDsKK+mAo+WQiOWbvSA8IHJlbmdvdWtva3VcIDsKK+WFrOawkeWtpiA8IGtvdW1pbmdha3VcIDsKK+eglOeptuiAhSA8IGtlbmt5dXVzaGFcIDsKK+mdmeawtOWcpyA8IHNlaXN1aWF0c3VcIDsKK+eZu+mMsuiAhSA8IHRvdXJva3VzaGFcIDsKK+a6luaxuuWLnSA8IGp1bmtlc3Nob3VcIDsKK+alteWKmyA8IGt5b2t1cnlva3VcIDsKK+air+WtkOi7iiA8IGhhc2hpZ29zaGFcIDsKK+S4ieimquetiSA8IHNhbnNoaW50b3VcIDsKK+S4jee0lOeJqSA8IGZ1anVuYnV0c3VcIDsKK+S4iuWls+S4rSA8IGthbWlqb2NodXVcIDsKK+mzpeWPluecjCA8IHRvdHRvcmlrZW5cIDsKK+ahkeeVkSA8IGt1d2FiYXRha2VcIDsKK+iyp+S5j+msriA8IGJpbmJvdWt1amlcIDsKK+WUr+S4gOW6piA8IHRhZGFpY2hpZG9cIDsKK+aiteWSjOi+nuWFuCA8IGJvbndhaml0ZW5cIDsKK+WlveiJsuWutiA8IGtvdXNob2t1a2FcIDsKK+avm+earuWVhiA8IGtlZ2F3YXNob3VcIDsKK+avlOi8g+e0miA8IGhpa2FrdWt5dXVcIDsKK+ePvuWcqOmrmCA8IGdlbnphaWRha2FcIDsKK+eVpeW8jyA8IHJ5YWt1c2hpa2lcIDsKK+mZuOa1t+epuiA8IHJpa3VrYWlrdXVcIDsKK+WPjOecvOmPoSA8IHNvdWdhbmt5b3VcIDsKK+aOp+iotOeQhueUsSA8IGtvdXNvcml5dXVcIDsKK+mnkOi8quWgtCA8IGNodXVyaW5qb3VcIDsKK+mDqOmaiuWMuuWIhiA8IGJ1dGFpa3VidW5cIDsKK+aeleiosSA8IG1ha3VyYW1vdG9cIDsKK+eZvemJhOmJsSA8IGhha3V0ZWtrb3VcIDsKK+Wkp+WuruS6uiA8IG9vbWl5YWJpdG9cIDsKK+aCqumtlOS4u+e+qSA8IGFrdW1hc2h1Z2lcIDsKK+mbquWQiOaIpiA8IHl1a2lnYXNzZW5cIDsKK+eJh+agl+eyiSA8IGthdGFrdXJpa29cIDsKK+eZuuihqOS8miA8IGhhcHB5b3VrYWlcIDsKK+WuneexpCA8IHRha2FyYWt1amlcIDsKK+WQkOeAieeJqSA8IHRvc2hhYnV0c3VcIDsKK+itt+WyuOW3peS6iyA8IGdvZ2Fua291amlcIDsKK+ijj+ihqOe0mSA8IHVyYWJ5b3VzaGlcIDsKK+WIh+aWreWbsyA8IHNldHN1ZGFuenVcIDsKK+aAneaDkeiytyA8IG9tb3dha3VnYWlcIDsKK+ims+W/teirliA8IGthbicnbmVucm9uXCA7Civnjonpn7Pnm6QgPCBneW9rdW9uYmFuXCA7Civlrp3nrrEgPCB0YWthcmFiYWtvXCA7Civlj43li5XnmoQgPCBoYW5kb3V0ZWtpXCA7Civos6rojYkgPCBzaGljaGlndXNhXCA7CivmlZHlkb3oiYcgPCBreXV1bWVpdGVpXCA7Civntbblr77nmoQgPCB6ZXR0YWl0ZWtpXCA7Civpqqjlo7cgPCBrb3RzdXRzdWJvXCA7CivmuKzph4/lm7MgPCBzb2t1cnlvdXp1XCA7CivkuInlpKflm70gPCBzYW5kYWlrb2t1XCA7CivlnLDmlrnnl4UgPCBjaGlob3VieW91XCA7Civlrr/nm7QgPCBzaHVrdWNob2t1XCA7Civlh7rniYjogIUgPCBzaHVwcGFuc2hhXCA7Civkvpvntabot68gPCBreW91a3l1dXJvXCA7Civnq5zmto7pppkgPCByeXV1emVua291XCA7CivlsITniIbloLQgPCBzaGFiYWt1am91XCA7CivmuKzph4/lmaggPCBzb2t1cnlvdWtpXCA7CivlnJ/kv5flraYgPCBkb3pva3VnYWt1XCA7Civnvo7lpbPmoZwgPCBiaWpvemFrdXJhXCA7CivljZfjgIXmnbEgPCBuYW4nJ25hbnRvdVwgOwor5Lq65qC85qipIDwgamlua2FrdWtlblwgOwor5YiG6Kej55qEIDwgYnVua2FpdGVraVwgOwor55Sw5aSr6YeO5Lq6IDwgZGVucHV5YWppblwgOwor5LuW6Kaa55qEIDwgdGFrYWt1dGVraVwgOwor5aSp5Li75pWZIDwgdGVuc2h1a3lvdVwgOwor6Zuq5YyW57KnIDwgeXVraWdlc2hvdVwgOwor5b2i5byP576OIDwga2Vpc2hpa2liaVwgOwor5aWH5aWH5oCq5oCqIDwga2lraWthaWthaVwgOwor6Zu76YCa5aSnIDwgZGVudHN1dWRhaVwgOwor5LiJ6KeS54K5IDwgc2Fua2FrdXRlblwgOwor5Lyd5pu46bOpIDwgZGVuc2hvYmF0b1wgOwor5LuW6Kaa55eHIDwgdGFrYWt1c2hvdVwgOwor5raI6ICX5oimIDwgc2hvdW1vdXNlblwgOwor5LuV6Kiz5pu4IDwgc2hpd2FrZXNob1wgOwor6YGK5LyR5ZywIDwgeXV1a3l1dWNoaVwgOwor5YKZ5LuYIDwgc29uYWV0c3VrZVwgOwor5Y+N5b+c5oCnIDwgaGFuJydub3VzZWlcIDsKK+aatOi1sOaXjyA8IGJvdXNvdXpva3VcIDsKK+e0gOWFg+evgCA8IGtpZ2Vuc2V0c3VcIDsKK+a4qeazieWuvyA8IG9uc2VuJyd5YWRvXCA7CivllJDovpvlrZAgPCB0b3VnYXJhc2hpXCA7Civml6XkuK3pn5MgPCBuaXRjaHV1a2FuXCA7CivnkIbop6PlipsgPCByaWthaXJ5b2t1XCA7CivnlaXlpaogPCByeWFrdWRhdHN1XCA7CivlhazlhbHosqEgPCBrb3VreW91emFpXCA7CivmpJzlrprmlpkgPCBrZW50ZWlyeW91XCA7CivluILplbfpgbggPCBzaGljaG91c2VuXCA7Civlronmma7oq4sgPCB5YXN1YnVzaGluXCA7CivnpZ7ku6PmloflrZcgPCBqaW5kYWltb2ppXCA7Civlj6TlhbjmmYLku6MgPCBrb3RlbmppZGFpXCA7CivluILkvJrorbDlk6EgPCBzaGlrYWlnaWluXCA7CivmsLTpgZPmlpkgPCBzdWlkb3VyeW91XCA7CivkuKHmiJDmlZcgPCByeW91c2VpYmFpXCA7CivljbHpmbrosqDmi4UgPCBraWtlbmZ1dGFuXCA7CivliJ3nr4Dlj6UgPCBoYXRzdXpla2t1XCA7Civmr5TovIPnmoQgPCBoaWtha3V0ZWtpXCA7Civlm73pgKPou40gPCBrb2t1cmVuZ3VuXCA7CivkuIrntJrnlJ8gPCBqb3VreXV1c2VpXCA7CivnhKHpoJPnnYAgPCBtdXRvbmNoYWt1XCA7Civlho3mnaXmnIggPCBzYXJhaWdldHN1XCA7Civlvozml6Xoq4cgPCBnb2ppdHN1ZGFuXCA7CivlgpnojZLpo58gPCBiaWtvdXNob2t1XCA7CivlgaXlurfkuI3lrokgPCBrZW5rb3VmdWFuXCA7Civmnb7omasgPCBtYXRzdW11c2hpXCA7CivkuI3ooYzot6EgPCBmdWd5b3VzZWtpXCA7Civmlpzpmb3ml48gPCBzaGF5b3V6b2t1XCA7CivpnZLljJbniakgPCBzZWlrYWJ1dHN1XCA7Civlv5zmgKXmuKHmsrMgPCBvdWt5dXV0b2thXCA7CivlpKnnjovlsbEgPCB0ZW4nJ25vdXphblwgOwor5LqM6YeN5ZCm5a6aIDwgbmlqdXVoaXRlaVwgOwor5Y6E5LuL6ICFIDwgeWFra2FpbW9ub1wgOwor5YuH54yb5b+DIDwgeXV1bW91c2hpblwgOwor5q2m5Yqb5oimIDwgYnVyeW9rdXNlblwgOwor5LiJ6KeS5rOVIDwgc2Fua2FrdWhvdVwgOwor5oSP5rCX6KGd5aSpIDwgaWtpc2hvdXRlblwgOwor5a6X5pWZ55S7IDwgc2h1dWt5b3VnYVwgOwor56CU56m255SfIDwga2Vua3l1dXNlaVwgOwor5Ye65aWU6ICFIDwgc2h1cHBvbnNoYVwgOwor5Y+O55uK6YeRIDwgc2h1dWVraWtpblwgOwor5rC36I+T5a2QIDwga29vcmlnYXNoaVwgOwor5Yy75a2m55So6KqeIDwgaWdha3V5b3Vnb1wgOwor6Iie5Y+w5Yq55p6cIDwgYnV0YWlrb3VrYVwgOwor6Lu95bel5qWtIDwga2Vpa291Z3lvdVwgOwor6KiY5oa25YqbIDwga2lva3VyeW9rdVwgOwor5Y2z6IiI6KmpIDwgc29ra3lvdXNoaVwgOwor5Y+k55Sf54mpIDwga29zZWlidXRzdVwgOwor54ax5oSb6ICFIDwgbmV0c3VhaXNoYVwgOwor5aSp6aCC54K5IDwgdGVuY2hvdXRlblwgOwor54Sh6LOH5YqbIDwgbXVzaGlyeW9rdVwgOwor6IiI6KGM5qipIDwga291Z3lvdWtlblwgOwor5p2+5qC55rK5IDwgc2hvdWtvbicneXVcIDsKK+S4oemaoyA8IHJ5b3Vkb25hcmlcIDsKK+eZvua4iOalvSA8IGt1ZGFyYWdha3VcIDsKK+WcqOS7u+S4rSA8IHphaW5pbmNodXVcIDsKK+a7nuWcqOS4rSA8IHRhaXphaWNodXVcIDsKK+ijveiMtualrSA8IHNlaWNoYWd5b3VcIDsKK+iyv+aYk+WVhiA8IGJvdWVraXNob3VcIDsKK+WbveWLmeecgSA8IGtva3VtdXNob3VcIDsKK+S4reWNl+exsyA8IGNodXVuYW5iZWlcIDsKK+e+pOmbgCA8IG11cmFzdXp1bWVcIDsKK+ahkOS4gOiRiSA8IGtpcmloaXRvaGFcIDsKK+mbu+S9jeW3ruioiCA8IGRlbicnaXNha2VpXCA7CivlhaXpgbjogIUgPCBueXV1c2Vuc2hhXCA7CivnuKbnpL7kvJogPCB0YXRlc2hha2FpXCA7CivluqbmlbDliIbluIMgPCBkb3N1dWJ1bnB1XCA7Civmk43nuKbluK0gPCBzb3VqdXVzZWtpXCA7Civlkajml4vlsYsgPCBzaHV1c2VuJyd5YVwgOwor5paH5a2m5aOrIDwgYnVuZ2FrdXNoaVwgOwor6YGL6YCB5L+d6Zm6IDwgdW5zb3Vob2tlblwgOwor5bel5a2m6ICFIDwga291Z2FrdXNoYVwgOwor5Y+k5Lyd6KqsIDwga29kZW5zZXRzdVwgOwor5Y2w5Yi35belIDwgaW5zYXRzdWtvdVwgOwor5r2c5rC05pyNIDwgc2Vuc3VpZnVrdVwgOwor5pyo6LOqIDwgbW9rdXNoaXRzdVwgOwor5aSn5Li75pWZIDwgZGFpc2h1a3lvdVwgOwor5LiK5aC05qCqIDwgam91am91a2FidVwgOwor6aGe5Z6L55qEIDwgcnVpa2VpdGVraVwgOwor5a6f54mpIDwgaml0c3VidXRzdVwgOwor5LiL6ZyyIDwgc2hpdGF0c3V5dVwgOwor5ZC55Ye654mpIDwgZnVraWRlbW9ub1wgOwor5oqX55yf6I+MIDwga291c2hpbmtpblwgOwor6Zuj5rOi5r2fIDwgbmFuaXdhZ2F0YVwgOwor56ef5YCf5ZywIDwgc29zaGFrdWNoaVwgOwor5Yqg6L6y56CyIDwga2FuJydub25ob3VcIDsKK+mAoOefs+eojiA8IHpvdWtva3V6ZWlcIDsKK+mnkOi7iuWgtCA8IGNodXVzaGFqb3VcIDsKK+ippueul+ihqCA8IHNoaXNhbmh5b3VcIDsKK+e1jOa4iOWtpiA8IGtlaXphaWdha3VcIDsKK+aApeWLvumFjSA8IGt5dXVrb3ViYWlcIDsKK+WEgOW8j+eUqCA8IGdpc2hpa2l5b3VcIDsKK+mrmOaJi+Wwj+aJiyA8IHRha2F0ZWtvdGVcIDsKK+ihgOagk+eXhyA8IGtlc3NlbnNob3VcIDsKK+S8iumBlOWnvyA8IGRhdGVzdWdhdGFcIDsKK+eXheWOn+S9kyA8IGJ5b3VnZW50YWlcIDsKK+eEoeWRs+S5vueHpSA8IG11bWlrYW5zb3VcIDsKK+S4i+mZouitsOmVtyA8IGthaW5naWNob3VcIDsKK+WFq+WIhuebriA8IGhhY2hpYnVubWVcIDsKK+ino+aekOaApyA8IGthaXNla2lzZWlcIDsKK+i7jeWCmeeuoeeQhiA8IGd1bmJpa2FucmlcIDsKK+Wuouims+aApyA8IGt5YWtrYW5zZWlcIDsKK+eVnOWKmyA8IGNoaWt1cnlva3VcIDsKK+i2heWqkuS9kyA8IGNob3ViYWl0YWlcIDsKK+awtOiKreiViSA8IG1penViYXNob3VcIDsKK+mVt+acn+eahCA8IGNob3VraXRla2lcIDsKK+ecvOmPoeibhyA8IG1lZ2FuZWhlYmlcIDsKK+aoueiEguWKoOW3pSA8IGp1c2hpa2Frb3VcIDsKK+WHuueJiOeVjCA8IHNodXBwYW5rYWlcIDsKK+W8geWEn+mHkSA8IGJlbnNob3VraW5cIDsKK+acqueGn+iAhSA8IG1panVrdW1vbm9cIDsKK+WIhuaVo+WeiyA8IGJ1bnNhbmdhdGFcIDsKK+efree3qOmbhiA8IHRhbnBlbnNodXVcIDsKK+WvkuakvyA8IGthbnRzdWJha2lcIDsKK+WIqeawtOW3peS6iyA8IHJpc3Vpa291amlcIDsKK+a3oei3r+WztiA8IGF3YWppc2hpbWFcIDsKK+Wil+aulueCiSA8IHpvdXNob2t1cm9cIDsKK+S4i+imi+advyA8IHNoaXRhbWlpdGFcIDsKK+WIhuaVmeWgtCA8IGJ1bmt5b3Vqb3VcIDsKK+mdnuW4uOS6i+aFiyA8IGhpam91aml0YWlcIDsKK+atpuijheicgui1tyA8IGJ1c291aG91a2lcIDsKK+WPsuaWmemkqCA8IHNoaXJ5b3VrYW5cIDsKK+acieWjsOmfs+WMliA8IHl1dXNlaW9ua2FcIDsKK+ihgOWwj+advyA8IGtlc3Nob3ViYW5cIDsKK+izqueahCA8IHNoaXRzdXRla2lcIDsKK+mHkeiJsuWggiA8IGtvbmppa2lkb3VcIDsKK+a8ouaWueiWrCA8IGthbnBvdXlha3VcIDsKK+S+oeWApOWfuua6liA8IGthY2hpa2lqdW5cIDsKK+iqv+eQhuWZqOWFtyA8IGNob3VyaWtpZ3VcIDsKK+egsueFmeW8vumbqCA8IGhvdWVuZGFuJyd1XCA7Civnv7voqLPlrrYgPCBob24nJ3lha3VrYVwgOwor5bmz562J6KazIDwgYnlvdWRvdWthblwgOwor5qSc5p+75a6YIDwga2Vuc2hvdWthblwgOwor5aSJ5YiG5a2mIDwgaGVuYnVuZ2FrdVwgOwor5YmN5qC954mpIDwgc2VuemFpbW9ub1wgOwor5by35aOu5YmkIDwga3lvdXNvdXphaVwgOwor5rW355Sj5qWtIDwga2Fpc2FuZ3lvdVwgOwor6aas6ICz5p2x6aKoIDwgYmFqaXRvdWZ1dVwgOwor54yu57SN6ICFIDwga2VuJydub3VzaGFcIDsKK+WFremAo+aYnyA8IHJva3VyZW5zZWlcIDsKK+ailOWtkCA8IGt1Y2hpbmFzaGlcIDsKK+WLhemhmOWvuiA8IGNob2t1Z2FuamlcIDsKK+S8neafk+eXhSA8IGRlbnNlbmJ5b3VcIDsKK+mpgOWcsCA8IG1hc3NoaWd1cmFcIDsKK+S4reiPr+mNiyA8IGNodXVrYW5hYmVcIDsKK+WkqeS4iuW3nSA8IHRlbmpvdWdhd2FcIDsKK+a0i+iKpeWtkCA8IHlvdWdhcmFzaGlcIDsKK+eahuWLpOizniA8IGthaWtpbnNob3VcIDsKK+mHkeWxnueJhyA8IGtpbnpva3VoZW5cIDsKK+Wlh+ihk+W4qyA8IGtpanV0c3VzaGlcIDsKK+Wil+WKoOeOhyA8IHpvdWthcml0c3VcIDsKK+aomea6luWeiyA8IGh5b3VqdW5rZWlcIDsKK+mHkei1pOiJsiA8IGtpbicnYWthaXJvXCA7Civosqzku7vmhJ8gPCBzZWtpbmlua2FuXCA7Civmt4vlt7Tnr4AgPCByaW5wYXNldHN1XCA7Civkvpvnianlj7AgPCBrdW1vdHN1ZGFpXCA7CivnsbPlm73kurogPCBiZWlrb2t1amluXCA7CivnrYnmuKnlvI8gPCB0b3VvbnNoaWtpXCA7CivliY3ku7vogIUgPCB6ZW4nJ25pbnNoYVwgOwor6KO96YCg5YWDIDwgc2Vpem91bW90b1wgOwor5oOF5aCx6YePIDwgam91aG91cnlvdVwgOwor5bmz6KGM56e75YuVIDwgaGVpa291aWRvdVwgOwor5raI6ICX5ZOBIDwgc2hvdW1vdWhpblwgOwor5Lih5omL5YipIDwgcnlvdXRla2lraVwgOwor6JOE6Zu75ZmoIDwgY2hpa3VkZW5raVwgOwor5a++6KeS57eaIDwgdGFpa2FrdXNlblwgOwor5bGx5YiAIDwgeWFtYWdhdGFuYVwgOwor5LiA5pmp5LitIDwgaGl0b2Jhbmp1dVwgOwor5LiL6YGTIDwgc2hpdGFtaWNoaVwgOwor5pqX5Ymj5q66IDwgYW5rZW5zYXRzdVwgOwor6aCt6Laz6aGeIDwgdG91c29rdXJ1aVwgOwor5Zyo5p2x5LqsIDwgemFpdG91a3lvdVwgOwor5qOE6KiA6JGJIDwgc3V0ZWtvdG9iYVwgOwor5YWN56iO6KGoIDwgbWVuemVpaHlvdVwgOwor5Zu95rCR5oCnIDwga29rdW1pbnNlaVwgOwor6KOc5Yqp5YuV6KmeIDwgaG9qb2RvdXNoaVwgOwor5b2r5Yi75a62IDwgY2hvdWtva3VrYVwgOwor5LiN6Lq+IDwgYnVzaGl0c3VrZVwgOwor55Sf5Y21IDwgbmFtYXRhbWFnb1wgOwor6Kqt5pu455WMIDwgZG9rdXNob2thaVwgOwor6aKo6JasIDwga2F6ZWd1c3VyaVwgOwor5puy6KqsIDwga3lva3VzZXRzdVwgOwor5bGF55WZ5rCRIDwga3lvcnl1dW1pblwgOwor5Li46KO4IDwgbWFydWhhZGFrYVwgOwor5peL5YWJ6KeSIDwgc2Vua291a2FrdVwgOwor6aOv57KSIDwgbWVzaGl0c3VidVwgOwor5bCP6ZaT5L2/IDwga29tYWR6dWthaVwgOwor6KeS6Iac54KOIDwga2FrdW1ha3VlblwgOwor54yr6LuKIDwgbmVrb2d1cnVtYVwgOwor6bCt6ISa6aGeIDwga2lreWFrdXJ1aVwgOwor6ZGR6K2Y5a62IDwga2Fuc2hpa2lrYVwgOwor6IiI6KGM5birIDwga291Z3lvdXNoaVwgOwor5LiJ6LaKIDwgbWl0c3Vrb3NoaVwgOwor5ay25aSp5LiLIDwga2FrYWFkZW5rYVwgOwor5Zu65b2i54mpIDwga29rZWlidXRzdVwgOwor57Sh57i+57O4IDwgYm91c2VraWl0b1wgOwor5ZCm5a6a5b+c562UIDwgaGl0ZWlvdXRvdVwgOwor5ZCd5ZeH5a62IDwgcmluc2hva3VrYVwgOwor54K65pu/5bC7IDwga2F3YXNlamlyaVwgOwor6Kqt6ICF5qyEIDwgZG9rdXNoYXJhblwgOwor5Ye65LiW5L2cIDwgc2h1c3Nlc2FrdVwgOwor5YuV5pGp5pOmIDwgZG91bWFzYXRzdVwgOwor6YOo5YiG6aOfIDwgYnVidW5zaG9rdVwgOwor5Ye654mI5rOVIDwgc2h1cHBhbmhvdVwgOwor6Kqy6aGM5puyIDwga2FkYWlreW9rdVwgOwor5a6i5pyIIDwga3lha3VnZXRzdVwgOwor5q666Jmr5YmkIDwgc2F0Y2h1dXphaVwgOwor6JaE6Zuq6I2JIDwgdXN1eXVraXNvdVwgOwor5Lq65L2T5a2mIDwgamludGFpZ2FrdVwgOwor5bmz5Z+O5LqsIDwgaGVpam91a3lvdVwgOwor5LiJ6KeS5bi9IDwgc2Fua2FrdWJvdVwgOwor6KGd5pKD5rOiIDwgc2hvdWdla2loYVwgOwor6Ieq5bex6LOH5pysIDwgamlrb3NoaWhvblwgOwor6YO16YCB5paZIDwgeXV1c291cnlvdVwgOwor55+z54Kt6YW4IDwgc2VraXRhbnNhblwgOwor5b6B5pyN6ICFIDwgc2VpZnVrdXNoYVwgOwor6aGU6LKMIDwga2Fva2F0YWNoaVwgOwor6buE6YeR5pmC5LujIDwgb3Vnb25qaWRhaVwgOwor5ZG95Luk5LiA5LiLIDwgbWVpcmVpaWtrYVwgOwor5by36KGM6LuNIDwga3lvdWtvdWd1blwgOwor57SN5LuY5pyf6ZmQIDwgbm91ZnVraWdlblwgOwor5Luj6KGo5ZujIDwgZGFpaHlvdWRhblwgOwor5bCP5YWQ6bq755e6IDwgc2hvdW5pbWFoaVwgOwor6ISa5pys5a62IDwga3lha3Vob25rYVwgOwor6I+T5a2Q6YmiIDwga2FzaGliYWNoaVwgOwor55u05YaG6YyQIDwgY2hva3VlbnN1aVwgOwor5a6j5Lyd6KiY5LqLIDwgc2VuZGVua2lqaVwgOwor5Ye654mI5qipIDwgc2h1cHBhbmtlblwgOwor5YaN5pyN5b25IDwgc2FpZnVrdWVraVwgOwor55Sf5pS+6YCBIDwgbmFtYWhvdXNvdVwgOwor6KiI566X5bC6IDwga2Vpc2FuamFrdVwgOwor5aSP5a2j5LyR5pqHIDwga2FraWt5dXVrYVwgOwor6YCa5Yuk6ICFIDwgdHN1dWtpbnNoYVwgOwor5LiA5aGB57eaIDwgaWNoaXJ1aXNlblwgOwor6Ieo5pmC5pS/5bqcIDwgcmluamlzZWlmdVwgOwor5bC65YWrIDwgc2hha3VoYWNoaVwgOwor5ray6YeP6KiIIDwgZWtpcnlvdWtlaVwgOwor5LiJ5pel5LiJ5pmpIDwgbWlra2FtaWJhblwgOwor5YiH5pSv5Li5IDwga2lyaXNoaXRhblwgOwor6ZeH5biC5aC0IDwgeWFtaXNoaWpvdVwgOwor5p2x55S3IDwgYXp1bWFvdG9rb1wgOwor6Zqc5a6z6ICFIDwgc2hvdWdhaXNoYVwgOwor6LK05peP55qEIDwga2l6b2t1dGVraVwgOwor5Y2w5Yi35Lq6IDwgaW5zYXRzdW5pblwgOwor5rW36LOK6Ii5IDwga2Fpem9rdXNlblwgOwor5oq96LGh5YyWIDwgY2h1dXNob3VrYVwgOwor6Kyb57+S5LyaIDwga291c2h1dWthaVwgOwor5oSb546p54mpIDwgYWlnYW5idXRzdVwgOwor6bq76ZuA5bGLIDwgbWF6ZWphbicneWFcIDsKK+S8neafk+avkiA8IGRlbnNlbmRva3VcIDsKK+eEoeeQhumbo+mhjCA8IG11cmluYW5kYWlcIDsKK+S7luWbveiAhSA8IHRha29rdW1vbm9cIDsKK+S6iOWCmeijhee9riA8IHlvYmlzb3VjaGlcIDsKK+aenOaoueagveWfuSA8IGthanVzYWliYWlcIDsKK+mHjeWxpOeahCA8IGp1dXNvdXRla2lcIDsKK+izquaouCA8IHNoaXRzdWJva3VcIDsKK+S6lOmHjeWhlCA8IGdvanV1bm90b3VcIDsKK+S4i+e0muWvqSA8IGtha3l1dXNoaW5cIDsKK+iCmOaelSA8IGhpamltYWt1cmFcIDsKK+eyl+iho+eyl+mjnyA8IHNvaXNvc2hva3VcIDsKK+S9juaJgOW+lyA8IHRlaXNob3Rva3VcIDsKK+S7j+a7hSA8IGJ1dHN1bWV0c3VcIDsKK+WwgumWgOeroCA8IHNlbm1vbnNob3VcIDsKK+mLs+mAoOaJgCA8IGNodXV6b3VzaG9cIDsKK+efreaZguaXpSA8IHRhbmppaml0c3VcIDsKK+S8kealreaXpSA8IGt5dXVneW91YmlcIDsKK+WFiOerr+eahCA8IHNlbnRhbnRla2lcIDsKK+S6uuawkeWnlOWToSA8IGppbm1pbicnaWluXCA7CivllqflmKnohbAgPCBrZW5rYWdvc2hpXCA7CivojYnlj4zntJkgPCBrdXNhem91c2hpXCA7Civnqbrmg7PnmoQgPCBrdXVzb3V0ZWtpXCA7Civpo73lkozokrjmsJcgPCBob3V3YWpvdWtpXCA7Civpm6rpgZTno6ggPCB5dWtpZGFydW1hXCA7CivljLnlpKvljLnlqaYgPCBoaXBwdWhpcHB1XCA7CivlhoXkuqTmuIkgPCBuYWlrb3VzaG91XCA7CivluoPlkYrnpL4gPCBrb3Vrb2t1c2hhXCA7CivlsI/ljIUgPCBrb2R6dXRzdW1pXCA7Civlr4blr4YgPCBtaXRzdW1pdHN1XCA7CivkuozliIbpn7PnrKYgPCBuaWJ1bicnb25wdVwgOwor6LKo54mp6aeFIDwga2Ftb3RzdWVraVwgOwor5Y2D5rOi5LiH5rOiIDwgc2VucGFiYW5wYVwgOwor6LKn5LmP57GkIDwgYmluYm91Z3VqaVwgOwor5a++6Kmx5byPIDwgdGFpd2FzaGlraVwgOwor5bCx5LitIDwgbmFrYW5kenVrdVwgOwor5YWx55Sj6LuNIDwga3lvdXNhbmd1blwgOwor5LiK6JOGIDwgdXdhbXVzaGlyb1wgOwor5LiN5om/6Ku+IDwgZnVzaG91ZGFrdVwgOwor5rGC5Lq66KqMIDwga3l1dWppbnNoaVwgOwor6Z6t5q+b6JmrIDwgYmVubW91Y2h1dVwgOwor57Ch5Y2Y5pyNIDwga2FudGFuZnVrdVwgOwor6buS56mC55eFIDwga3Vyb2hvYnlvdVwgOwor6ISx5YqbIDwgZGF0c3VyeW9rdVwgOwor6LOq5pytIDwgc2hpY2hpZnVkYVwgOwor5YiG5ouF6aGNIDwgYnVudGFuZ2FrdVwgOwor55Ww5bi455m655SfIDwgaWpvdWhhc3NlaVwgOwor5rK75a6J6YOo6ZqKIDwgY2hpYW5idXRhaVwgOwor5aSq6Zm96JmrIDwgdGFpeW91Y2h1dVwgOwor5pqr5a6a55qEIDwgemFudGVpdGVraVwgOwor5Luj6KGo5L6LIDwgZGFpaHlvdXJlaVwgOwor5LiJ6I+xIDwgbWl0c3ViaXNoaVwgOwor5YiD5YK35rKZ5rGwIDwgbmluam91emF0YVwgOwor5ZCM5Zu95rCRIDwgZG91a29rdW1pblwgOwor6KiY5b+154mpIDwga2luZW5idXRzdVwgOwor5pen5L2T5Yi2IDwga3l1dXRhaXNlaVwgOwor5Luu5p6VIDwga2FyaW1ha3VyYVwgOwor5Y2X5rSL5p2QIDwgbmFuJyd5b3V6YWlcIDsKK+mdnuW4uOWPoyA8IGhpam91Z3VjaGlcIDsKK+S4iuihqOe0mSA8IHV3YWJ5b3VzaGlcIDsKK+mdoueZveWRsyA8IG9tb3NoaXJvbWlcIDsKK+S/neWtmOmjnyA8IGhvem9uc2hva3VcIDsKK+S4jea0u+aAp+WMliA8IGZ1a2Fzc2Vpa2FcIDsKK+WNiuaEj+itmCA8IGhhbicnaXNoaWtpXCA7Civkvpvlh7ogPCBreW91c2h1dHN1XCA7Civlrq7lrqQgPCBreXV1c2hpdHN1XCA7CivmnKzoqr/lrZAgPCBob25jaG91c2hpXCA7CivnuZTlpbPmmJ8gPCBzaG9rdWpvc2VpXCA7CivmmKXpnJ4gPCBoYXJ1Z2FzdW1pXCA7CivlsILploDnmoQgPCBzZW5tb250ZWtpXCA7Civpo5/niakgPCBzaG9rdW1vdHN1XCA7CivloLHlhJ/ph5EgPCBob3VzaG91a2luXCA7Civmk7LlvL7nrZIgPCB0ZWtpZGFudG91XCA7CivosqfkuY/npZ4gPCBiaW5ib3VnYW1pXCA7CivmmJTpoqggPCBtdWthc2hpZnV1XCA7CivlpKfntbHpoJggPCBkYWl0b3VyeW91XCA7Civph4/lrZDoq5YgPCByeW91c2hpcm9uXCA7CivkuK3lipvnsokgPCBjaHV1cmlraWtvXCA7Civlrp3ls7YgPCB0YWthcmFqaW1hXCA7Civlt6Xkuovnj77loLQgPCBrb3VqaWdlbmJhXCA7CivnnLzpj6HnjL8gPCBtZWdhbmV6YXJ1XCA7Civku4/mp5ggPCBob3Rva2VzYW1hXCA7CivohJrlipsgPCBreWFrdXJ5b2t1XCA7Civmpa3nlYzntJkgPCBneW91a2Fpc2hpXCA7CivpnZ7lhazlvI8gPCBoaWtvdXNoaWtpXCA7CivmsLTlhbXmnI0gPCBzdWloZWlmdWt1XCA7Civosq/mnKjloLQgPCBjaG9ib2t1am91XCA7Civmoq/lrZDmrrUgPCBoYXNoaWdvZGFuXCA7CivlvZPmrbPpp5IgPCB0b3VzYWlnb21hXCA7CivlrpfmlZnlrrYgPCBzaHV1a3lvdWthXCA7CivnoJTnqbblrpggPCBrZW5reXV1a2FuXCA7CivmronmlZnogIUgPCBqdW5reW91c2hhXCA7Civmronpm6PogIUgPCBqdW4nJ25hbnNoYVwgOwor5aOB6Ki06KifIDwga2FiZXpvc2hvdVwgOwor5LiL6IG3IDwgc2hpdGFzaG9rdVwgOwor6Ieq5bex5a6j5LydIDwgamlrb3NlbmRlblwgOwor546J5pW055CGIDwgZ3lva3VzZWlyaVwgOwor6Iyo5Z+O55yMIDwgaWJhcmFraWtlblwgOwor5bGI5puy6YOoIDwga3Vra3lva3VidVwgOwor5raI6Ziy6ZqKIDwgc2hvdWJvdXRhaVwgOwor5pyn5piG5biDIDwgb2Jvcm9rb25idVwgOwor5rCX566h5pSv54KOIDwga2lrYW5zaGllblwgOwor55yL55eF5Lq6IDwga2FuYnlvdW5pblwgOwor6Iqx6Zu76LuKIDwgaGFuYWRlbnNoYVwgOwor5Zyw5paH5a2mIDwgY2hpbW9uZ2FrdVwgOwor5Y+j5L6b5pu4IDwga291a3lvdXNob1wgOwor5puy562GIDwga3lva3VoaXRzdVwgOwor5omL5YmN5Yud5omLIDwgdGVtYWVnYXR0ZVwgOwor5L+d5a6I5Li7576pIDwgaG9zaHVzaHVnaVwgOwor6I2J6YeO55CDIDwga3VzYXlha3l1dVwgOwor5qSc5LqL5bGAIDwga2VuamlreW9rdVwgOwor5pyo56uv5b6u5aG1IDwga29wcGFtaWppblwgOwor5YWt6L665b2iIDwgcm9rdWhlbmtlaVwgOwor5q275Lqh6KiY5LqLIDwgc2hpYm91a2lqaVwgOwor6Kqt6ICF5bGkIDwgZG9rdXNoYXNvdVwgOwor5YKs5L+D54q2IDwgc2Fpc29rdWpvdVwgOwor5YK+5pac6KeSIDwga2Vpc2hha2FrdVwgOwor6YGO5Ymw5Yip55uKIDwga2Fqb3VyaWVraVwgOwor5Y+O55uj54q2IDwgc2h1dWthbmpvdVwgOwor5Zyw6ZyH5a2mIDwgamlzaGluZ2FrdVwgOwor5Zyo5LiW5LitIDwgemFpc2VpY2h1dVwgOwor5aWl5bqn5pW3IDwgb2t1emFzaGlraVwgOwor5LiA57qPIDwgaGl0b21hdG9tZVwgOwor576O6KGT6aSoIDwgYmlqdXRzdWthblwgOwor6Kix5a656YePIDwga3lveW91cnlvdVwgOwor5aWz5bCK55S35Y2RIDwgam9zb25kYW5waVwgOwor5bCE5pKD5aC0IDwgc2hhZ2VraWpvdVwgOwor5b6M5aSp55qEIDwga291dGVudGVraVwgOwor6aeQ5bGv5ZywIDwgY2h1dXRvbmNoaVwgOwor6aOv5quDIDwgbWVzaGliaXRzdVwgOwor6ISz5rqi6KGAIDwgbm91aWtrZXRzdVwgOwor5a2Y5ZG95LitIDwgem9ubWVpY2h1dVwgOwor57O75YiX5YyWIDwga2VpcmV0c3VrYVwgOwor5Ye654mI5bGLIDwgc2h1cHBhbicneWFcIDsKK+Wvqee+jueahCA8IHNoaW5iaXRla2lcIDsKK+aBkuS5heaApyA8IGtvdWt5dXVzZWlcIDsKK+iyneafsSA8IGthaWJhc2hpcmFcIDsKK+eJh+iyv+aYkyA8IGthdGFib3Vla2lcIDsKK+aWh+eMruWtpiA8IGJ1bmtlbmdha3VcIDsKK+WNgeS6jOWNmOihoyA8IGp1dW5paGl0b2VcIDsKK+aZguS7o+iJsiA8IGppZGFpc2hva3VcIDsKK+WIhumbouiqsueojiA8IGJ1bnJpa2F6ZWlcIDsKK+Wkp+Wkp+eahCA8IGRhaWRhaXRla2lcIDsKK+S6jOmHjeapiyA8IG5panV1YmFzaGlcIDsKK+WcsOiqjOWtpiA8IGNoaXNoaWdha3VcIDsKK+WMluWtpueahCA8IGthZ2FrdXRla2lcIDsKK+absuebtCA8IGt5b2t1Y2hva3VcIDsKK+iCieW8vuaIpiA8IG5pa3VkYW5zZW5cIDsKK+S4gOe1g+eQtCA8IGljaGlnZW5raW5cIDsKK+mBiueJp+awkSA8IHl1dWJva3VtaW5cIDsKK+S4uOeTpiA8IG1hcnVnYXdhcmFcIDsKK+aguOWun+mokyA8IGtha3VqaWtrZW5cIDsKK+iyqOeJqei7iiA8IGthbW90c3VzaGFcIDsKK+S7u+aEj+aNnOafuyA8IG5pbicnaXNvdXNhXCA7CivmsYLkurrogIUgPCBreXV1amluc2hhXCA7CivkuIPnq4ggPCBuYW5ha2FtYWRvXCA7CivlnLDpnIflm70gPCBqaXNoaW5rb2t1XCA7CivlsYXnlZnlnLAgPCBreW9yeXV1Y2hpXCA7CivkuIrkvY3mpoLlv7UgPCBqb3VpZ2FpbmVuXCA7CivpmpzlrZDntJkgPCBzaG91amlnYW1pXCA7CivoiJ7lj7DpgZPlhbcgPCBidXRhaWRvdWd1XCA7CivmvZzlh73nl4UgPCBzZW5rYW5ieW91XCA7CivkuIDnqbQgPCBoaXRvdHN1YW5hXCA7CivlvJXnjofogIUgPCBpbnNvdHN1c2hhXCA7CivkuIrmmKDmmYLplpMgPCBqb3VlaWppa2FuXCA7CivlravlqJggPCBtYWdvbXVzdW1lXCA7Civmtbfos4rniYggPCBrYWl6b2t1YmFuXCA7Civkv6Hku7DogIUgPCBzaGlua291c2hhXCA7CivmtojpmLLou4ogPCBzaG91Ym91c2hhXCA7CivkuInnrYnos54gPCBzYW50b3VzaG91XCA7CivnhKHorablr58gPCBtdWtlaXNhdHN1XCA7Civku4/mgKcgPCBob3Rva2VzaG91XCA7CivpnZnpnZkgPCBzaGl6dXNoaXp1XCA7CivlvanoibLnlLsgPCBzYWlzaG9rdWdhXCA7Civli6flkYrogIUgPCBrYW5rb2t1c2hhXCA7CivoqIjlmajpo5vooYwgPCBrZWlraWhpa291XCA7Civlrp/lipsgPCBqaXRzdXJ5b2t1XCA7Civmm7LnjocgPCBreW9rdXJpdHN1XCA7CivlpKfpvJMgPCBvb3RzdWR6dW1pXCA7CivluoPlkYrmrIQgPCBrb3Vrb2t1cmFuXCA7Civos57ph5HnjosgPCBzaG91a2luJydvdVwgOwor5oim54G95a2k5YWQIDwgc2Vuc2Fpa29qaVwgOwor6YCa55+l54q2IDwgdHN1dWNoaWpvdVwgOwor5bel5L2c5ZOBIDwga291c2FrdWhpblwgOwor5Zyw5pS/5a2mIDwgY2hpc2VpZ2FrdVwgOwor5aSq6Zm956WeIDwgdGFpeW91c2hpblwgOwor57aZ5om/6ICFIDwga2Vpc2hvdXNoYVwgOwor5Z+65pys5Y6f55CGIDwga2lob25nZW5yaVwgOwor5Lmz6KO95ZOBIDwgbnl1dXNlaWhpblwgOwor54uQ6ImyIDwga2l0c3VuZWlyb1wgOwor6YGK5pKD6ZqKIDwgeXV1Z2VraXRhaVwgOwor5Y2R5oCv6ICFIDwgaGlreW91bW9ub1wgOwor5YaN5pWZ6IKyIDwgc2Fpa3lvdWlrdVwgOwor5Zu95YaF57eaIDwga29rdW5haXNlblwgOwor5Zmb54WZ6I2JIDwga2FtaXRhYmFrb1wgOwor5LiA552hIDwgaGl0b25lbXVyaVwgOwor5oWI5ZaE5biCIDwgaml6ZW4nJ2ljaGlcIDsKK+WbnuaDs+mMsiA8IGthaXNvdXJva3VcIDsKK+WkluS6pOeahCA8IGdhaWtvdXRla2lcIDsKK+aDheaEj+aKleWQiCA8IGpvdWl0b3Vnb3VcIDsKK+S4i+eUuiA8IHNoaXRhbWFjaGlcIDsKK+euoeeQhuapn+iDvSA8IGthbnJpa2lub3VcIDsKK+S6uuW/gyA8IGhpdG9nb2tvcm9cIDsKK+S/rueQhuS4rSA8IHNodXVyaWNodXVcIDsKK+iHqOaZguiomOWPtyA8IHJpbmppa2lnb3VcIDsKK+S4ieetieimqiA8IHNhbnRvdXNoaW5cIDsKK+WcsOihqOmdoiA8IGNoaWh5b3VtZW5cIDsKK+W5sua4ieioiCA8IGthbnNob3VrZWlcIDsKK+eglOeptuS8miA8IGtlbmt5dXVrYWlcIDsKK+iCluWDj+aoqSA8IHNob3V6b3VrZW5cIDsKK+S4g+eUnyA8IHNoaWNoaXNob3VcIDsKK+WFteW9ueW/jOmBvyA8IGhlaWVraWtpaGlcIDsKK+eHlem6piA8IGthcmFzdW11Z2lcIDsKK+W9ueS4jei2syA8IHlha3VidXNva3VcIDsKK+S4gOeVqiA8IGhpdG90c3VnYWlcIDsKK+azqOaEj+WKmyA8IGNodXVpcnlva3VcIDsKK+iFueS4iuatuyA8IGZ1a3Vqb3VzaGlcIDsKK+e3qOmbhuiAhSA8IGhlbnNodXVzaGFcIDsKK+W6g+WRiuadvyA8IGtvdWtva3ViYW5cIDsKK+a4ieemvemhniA8IHNob3VraW5ydWlcIDsKK+WAkumMr+iAhSA8IHRvdXNha3VzaGFcIDsKK+awtOeWseeYoSA8IG1penVib3Vzb3VcIDsKK+W5s+etieaoqSA8IGJ5b3Vkb3VrZW5cIDsKK+Wkp+mch+eBvSA8IGRhaXNoaW5zYWlcIDsKK+mHjeeXh+S+iyA8IGp1dXNob3VyZWlcIDsKK+WcsOWfn+eahCA8IGNoaWlraXRla2lcIDsKK+WFseeUo+ezuyA8IGt5b3VzYW5rZWlcIDsKK+mWi+mWieapiyA8IGthaWhlaWt5b3VcIDsKK+aIpuS6ieaYoOeUuyA8IHNlbnNvdWVpZ2FcIDsKK+mZs+aDheabuCA8IGNoaW5qb3VzaG9cIDsKK+iyoeaUv+WNseapnyA8IHphaXNlaWtpa2lcIDsKK+aKleapn+eGsSA8IHRvdWtpbmV0c3VcIDsKK+aciemZkOiKseW6jyA8IHl1dWdlbmtham9cIDsKK+eJqeiqniA8IG1vbm9nYXRhcmlcIDsKK+WGl+irh+S6iyA8IGpvdWRhbmtvdG9cIDsKK+acgOmrmOe0miA8IHNhaWtvdWt5dXVcIDsKK+aAneaDkeW4qyA8IG9tb3dha3VzaGlcIDsKK+Wls+mBlCA8IG9uJyduYXRhY2hpXCA7Civopb/ml6XmnKwgPCBuaXNoaW5paG9uXCA7Civov5Hku6PnmoQgPCBraW5kYWl0ZWtpXCA7CivotoXlpKflnosgPCBjaG91b29nYXRhXCA7CivnoJXmsLfoiLkgPCBzYWloeW91c2VuXCA7CivmvIHmpa3ms5UgPCBneW9neW91aG91XCA7CivmnKfmnIggPCBvYm9yb2R6dWtpXCA7CivmnKrop6PmsbogPCBtaWthaWtldHN1XCA7CivniYfot5sgPCBrYXRhY2hpbmJhXCA7Civou43kuovln7rlnLAgPCBndW5qaWtpY2hpXCA7Civlt6jkurrlm70gPCBreW9qaW5rb2t1XCA7CivmnIDlsI/pmZAgPCBzYWlzaG91Z2VuXCA7CivmnKvml6UgPCBtYXRzdWppdHN1XCA7CivlhazlhbHmgKcgPCBrb3VreW91c2VpXCA7CivkuI3mraPkuovku7YgPCBmdXNlaWppa2VuXCA7Civlh7rmnaXmrKHnrKwgPCBkZWtpc2hpZGFpXCA7Civlt6Xlrablo6sgPCBrb3VnYWt1c2hpXCA7CivphZLpgKDmpa0gPCBzaHV6b3VneW91XCA7CivlpInkvZPku67lkI0gPCBoZW50YWlnYW5hXCA7CivoibLpiZvnrYYgPCBpcm9lbnBpdHN1XCA7CivmnJvmnIggPCBtb2NoaWR6dWtpXCA7Civoi7Hpm4TkuLvnvqkgPCBlaXl1dXNodWdpXCA7CivngavmiZPnn7MgPCBoaXVjaGlpc2hpXCA7CivphrjpgKDmpa0gPCBqb3V6b3VneW91XCA7CivlpKfpmrwgPCBvb2hheWFidXNhXCA7CivljZjnnLzpj6EgPCB0YW5nYW5reW91XCA7Civnl7ToqbHllqflmKkgPCBjaGl3YWdlbmthXCA7CivmvIHmpa3mqKkgPCBneW9neW91a2VuXCA7Civnn7Pnga/nsaAgPCBpc2hpZG91cm91XCA7CivljZfmsLfmtIsgPCBuYW5weW91eW91XCA7CivpsYjloLTon7kgPCB0YXJhYmFnYW5pXCA7CivlsqHlsbHnnIwgPCBva2F5YW1ha2VuXCA7Civng4/mnInlhYjnlJ8gPCB1eXV1c2Vuc2VpXCA7CivntKHnuL7lt6UgPCBib3VzZWtpa291XCA7CivotbfniIbolqwgPCBraWJha3V5YWt1XCA7Civnorroqo3mm7ggPCBrYWt1bmluc2hvXCA7CivmhrLms5XpgZXlj40gPCBrZW5wb3VpaGFuXCA7Civlm57ou6LmpIXlrZAgPCBrYWl0ZW4nJ2lzdVwgOwor6KqV55Sf55+zIDwgdGFuam91c2VraVwgOwor6Ziy6Iet5YmkIDwgYm91c2h1dXphaVwgOwor6Yyr6KO95ZOBIDwgc3V6dXNlaWhpblwgOwor5pyI5pyIIDwgdHN1a2lkenVraVwgOwor6LKo54mp6Ii5IDwga2Ftb3RzdXNlblwgOwor5LiA5aGB5omLIDwgaWNoaXJ1aXNodVwgOwor6ISa57ea576OIDwga3lha3VzZW5iaVwgOwor6IO955m75Y2K5bO2IDwgbm90b2hhbnRvdVwgOwor5Yqj5oCn6YG65LydIDwgcmVzc2VpaWRlblwgOwor5pyJ5L6h54mpIDwgeXV1a2FidXRzdVwgOwor6KuL6LKg5Yi25bqmIDwgdWtlb2lzZWlkb1wgOwor5qSN55Sf5ZuzIDwgc2hva3VzZWl6dVwgOwor5LiA5rihIDwgaGl0b3dhdGFyaVwgOwor55m65oOF5pyfIDwgaGF0c3Vqb3VraVwgOwor55m95rC056S+IDwgaGFrdXN1aXNoYVwgOwor5rC06LuK5bCP5bGLIDwgc3Vpc2hhZ295YVwgOwor5o6h566X5qCqIDwgc2Fpc2Fua2FidVwgOwor6KSQ5q+b5ZKM56iuIDwgYWthZ2V3YXNodVwgOwor6ZW35LiB5aC0IDwgbmFnYWNob3ViYVwgOwor5aa+6IW5IDwgbWVrYWtlYmFyYVwgOwor5pyJ5a2U6JmrIDwgeXV1a291Y2h1dVwgOwor5Zu65a6a6LKg5YK1IDwga290ZWlmdXNhaVwgOwor5aSp54S255eYIDwgdGVuJyduZW50b3VcIDsKK+S+nemhmOWFjeWumCA8IGlnYW5tZW5rYW5cIDsKK+Wbm+aLjeWtkCA8IHlvbmJ5b3VzaGlcIDsKK+WGl+mVt+ezuyA8IGpvdWNob3VrZWlcIDsKK+aXpeacrOW8jyA8IG5paG9uc2hpa2lcIDsKK+a6gOW5tOm9oiA8IG1hbicnbmVucmVpXCA7CivmtojpmLLoiYcgPCBzaG91Ym91dGVpXCA7CivlsI/mtrLog54gPCBzaG91ZWtpaG91XCA7CivpppbllLHogIUgPCBzaHVzaG91c2hhXCA7Civpm7LpnJ4gPCBrdW1va2FzdW1pXCA7Civml6XmnKzlubMgPCBuaWhvbmRhaXJhXCA7CivpnanooosgPCBrYXdhYnVrdXJvXCA7CivpiYTpnaLnmq4gPCB0ZXRzdW1lbnBpXCA7CivkuLvmqKnlm70gPCBzaHVrZW5rb2t1XCA7Civosrfmjpvph5EgPCBrYWlrYWtla2luXCA7Civnn7PngbDnn7MgPCBzZWtrYWlzZWtpXCA7CivnsbPllY/lsYsgPCBrb21lZG9uJyd5YVwgOwor5oCd5oOz5YqHIDwgc2hpc291Z2VraVwgOwor5LiH5Zu95rCRIDwgYmFua29rdW1pblwgOwor5Yun5ZGK54q2IDwga2Fua29rdWpvdVwgOwor5pWX5YyX5oSfIDwgaGFpYm9rdWthblwgOwor5a+G6Ly46Ii5IDwgbWl0c3V5dXNlblwgOwor5Ye65p2l5LiN5Ye65p2lIDwgZGVraWZ1ZGVraVwgOwor5Y+v5aSJ57+8IDwga2FoZW4nJ3lva3VcIDsKK+aUv+W6nOapn+mWoiA8IHNlaWZ1a2lrYW5cIDsKK+WBj+mgreeXmyA8IGhlbnRvdXRzdXVcIDsKK+W5tOm9oue1piA8IG5lbnJlaWt5dXVcIDsKK+mAj+ejgeeOhyA8IHRvdWppcml0c3VcIDsKK+S6i+S7tuiomOiAhSA8IGppa2Vua2lzaGFcIDsKK+W5s+WuieW+jOacnyA8IGhlaWFua291a2lcIDsKK+WOhOS7i+S6iyA8IHlha2thaWdvdG9cIDsKK+S8j+WwhOa/oCA8IGZ1a3VzaGFnb3VcIDsKK+aekOWHuiA8IHNla2lzaHV0c3VcIDsKK+aHuOWjheWegiA8IGtlbicneW91c3VpXCA7CivnlYzno4HmpbUgPCBrYWlqaWt5b2t1XCA7Civlv5znlKjlipsgPCBvdXlvdXJ5b2t1XCA7Civml6Xmm5zml6UgPCBuaWNoaXlvdWJpXCA7CivmtojpmLLnvbIgPCBzaG91Ym91c2hvXCA7Civpm4fnlKjkv53pmbogPCBrb3lvdWhva2VuXCA7CivosqfkuY/mgKcgPCBiaW5ib3VzaG91XCA7CivmoLjltKnlo4ogPCBrYWt1aG91a2FpXCA7CivkuI3mvZTmhJ8gPCBmdWtldHN1a2FuXCA7CivmlbDlrabogIUgPCBzdXVnYWt1c2hhXCA7CivogbTlj5bogIUgPCBjaG91c2h1c2hhXCA7Civoqq3mm7jkurogPCBkb2t1c2hvamluXCA7Civkv53orbfosr/mmJMgPCBob2dvYm91ZWtpXCA7CivliY3ku7vlnLAgPCB6ZW4nJ25pbmNoaVwgOwor5ryB6Imy5a62IDwgZ3lvc2hva3VrYVwgOwor5LiW55WM5Yi26KaHIDwgc2VrYWlzZWloYVwgOwor6KO95L2c6ICFIDwgc2Vpc2FrdXNoYVwgOwor5LiN5p2fIDwgZnV0c3V0c3VrYVwgOwor5rKh5YCL5oCnIDwgYm90c3Vrb3NlaVwgOwor54Sh5qmf6IKl5paZIDwgbXVraWhpcnlvdVwgOwor5YWo5bqX5LitIDwgemVudGVuY2h1dVwgOwor6auY6YeO6LGG6IWQIDwga291eWFkb3VmdVwgOwor5a6Y57Wm5ZOBIDwga2Fua3l1dWhpblwgOwor55m96YeR5pePIDwgaGFra2luem9rdVwgOwor5aSp5paH5a2mIDwgdGVubW9uZ2FrdVwgOwor5YW15a2m6ICFIDwgaGVpZ2FrdXNoYVwgOwor5ZCI5ZSx6ZqKIDwgZ2Fzc2hvdXRhaVwgOwor5Luj6K2w5pS/5rK7IDwgZGFpZ2lzZWlqaVwgOwor5LiN5oiQ56uLIDwgZnVzZWlyaXRzdVwgOwor54yr5p+zIDwgbmVrb3lhbmFnaVwgOwor54yu57SN5ZOBIDwga2VuJydub3VoaW5cIDsKK+e0sOeykuWIhiA8IHNhaXJ5dXVidW5cIDsKK+aEj+mmrOW/g+eMvyA8IGliYXNoaW4nJ2VuXCA7CivnjJvnt7Tnv5IgPCBtb3VyZW5zaHV1XCA7CivkuqTpgJrpgbrlhZAgPCBrb3V0c3V1aWppXCA7CivkvovlpJbnmoQgPCByZWlnYWl0ZWtpXCA7CivlirnnjofljJYgPCBrb3VyaXRzdWthXCA7CivpmaTomavoj4ogPCBqb2NodXVnaWt1XCA7CivntIXnlJ/lp5wgPCBiZW5pc2hvdWdhXCA7CivlubLmi5PlnLAgPCBrYW50YWt1Y2hpXCA7Civlh43lgrfogIUgPCB0b3VzaG91c2hhXCA7CivlkIzlm73kurogPCBkb3Vrb2t1amluXCA7Civnm67nmoToqp4gPCBtb2t1dGVraWdvXCA7Civosrjku5ggPCBrYXNoaXRzdWtlXCA7CivkuInlm73lv5cgPCBzYW5nb2t1c2hpXCA7CivkurrniannlLsgPCBqaW5idXRzdWdhXCA7CivlkLjlhaXlmaggPCBreXV1bnl1dWtpXCA7CivpmLLlr5LmnI0gPCBib3VrYW5mdWt1XCA7Civkv67pmaLplbcgPCBzaHV1aW5jaG91XCA7Civlm73lhoXms5UgPCBrb2t1bmFpaG91XCA7CivmjqLnqbbogIUgPCB0YW5reXV1c2hhXCA7CivliJ3lv4PogIUgPCBzaG9zaGluc2hhXCA7Civni7jmsYEgPCB0YW51a2lqaXJ1XCA7CivmnKrplovnmbogPCBtaWthaWhhdHN1XCA7CivluoPlkYrloZQgPCBrb3Vrb2t1dG91XCA7Civplovmi5PogIUgPCBrYWl0YWt1c2hhXCA7CivkurrpoZ7lraYgPCBqaW5ydWlnYWt1XCA7Civnn6Xml6XmtL4gPCBjaGluaWNoaWhhXCA7CivmnIDpq5jmva4gPCBzYWlrb3VjaG91XCA7CivlpKnnhLbmuK8gPCB0ZW4nJ25lbmtvdVwgOwor5Y+N6YCG5YWQIDwgaGFuZ3lha3VqaVwgOwor5LiA5Zu96ICFIDwgaWtrb2t1bW9ub1wgOwor5aW95p2Q5paZIDwga291emFpcnlvdVwgOwor5aSq6Zm95pqmIDwgdGFpeW91cmVraVwgOwor5bi455So55mWIDwgam91eW91aGVraVwgOwor5pep5pWZ6IKyIDwgc291a3lvdWlrdVwgOwor5qC85a2Q57ieIDwga291c2hpamltYVwgOwor5Y+N6LuN55qEIDwgaGFuZ3VudGVraVwgOwor6Jas5YyF57SZIDwgeWFrdWhvdXNoaVwgOwor5YW15pu56ZW3IDwgaGVpc291Y2hvdVwgOwor5ryi5paH5a2mIDwga2FuYnVuZ2FrdVwgOwor5oCl5YWI6YuSIDwga3l1dXNlbnBvdVwgOwor5LiN5oqxIDwga2FrYXdhcmF6dVwgOwor5Y+j5aWH6bqXIDwga3VjaGlnaXJlaVwgOwor6KGM5pS/5rOVIDwgZ3lvdXNlaWhvdVwgOwor6YCB6YeR6aGNIDwgc291a2luZ2FrdVwgOwor5rGC5ama6ICFIDwga3l1dWtvbnNoYVwgOwor5YaN6Kq/5pW0IDwgc2FpY2hvdXNlaVwgOwor6aKo6KaL6baPIDwga2F6YW1pZG9yaVwgOwor5Z+35pS/5a6YIDwgc2hpc3NlaWthblwgOwor6IO95qW95aCCIDwgbm91Z2FrdWRvdVwgOwor5aW95LiL54mpIDwga291a2FidXRzdVwgOwor5Y+M55m65qmfIDwgc291aGF0c3VraVwgOwor6YG65qOE6LKo54mpIDwgaWtpa2Ftb3RzdVwgOwor5YWs5YWx5YK1IDwga291a3lvdXNhaVwgOwor5pio5bm05p2lIDwgc2FrdW5lbnJhaVwgOwor5o+Q5L6b6ICFIDwgdGVpa3lvdXNoYVwgOwor6Ya46YCg5a2mIDwgam91em91Z2FrdVwgOwor5LiA5omAIDwgaGl0b3Rva29yb1wgOwor5b6X54K55ZyPIDwgdG9rdXRlbmtlblwgOwor54Kt5YyW5rC057SgIDwgdGFua2FzdWlzb1wgOwor5a+p576O5a2mIDwgc2hpbmJpZ2FrdVwgOwor5aWz5L6/5omAIDwgb24nJ25hYmVuam9cIDsKK+WRieacjeeJqSA8IGdvZnVrdW1vbm9cIDsKK+eXh+WAmee+pCA8IHNob3Vrb3VndW5cIDsKK+WbsueigeS4iee0miA8IGlnb3Nhbmt5dXVcIDsKK+eUo+WppuS6uuenkSA8IHNhbmZ1amlua2FcIDsKK+absuWwuiA8IGt5b2t1c2hha3VcIDsKK+agvOWtkOeqkyA8IGtvdXNoaW1hZG9cIDsKK+aWh+aYjuWbvSA8IGJ1bm1laWtva3VcIDsKK+ihjOaUv+aoqSA8IGd5b3VzZWlrZW5cIDsKK+mHkeacqOeKgCA8IGtpbm1va3VzZWlcIDsKK+eQhuaDs+S4u+e+qSA8IHJpc291c2h1Z2lcIDsKK+WNgeWtl+egsueBqyA8IGp1dWppaG91a2FcIDsKK+mbquizqiA8IHl1a2lzaGl0c3VcIDsKK+mDvemBk+W6nOecjCA8IHRvZG91ZnVrZW5cIDsKK+m6nemmmeixjOixhiA8IGpha291ZW5kb3VcIDsKK+aJi+acreWeiyA8IHRlZnVkYWdhdGFcIDsKK+WFqOiIrOeahCA8IHplbnBhbnRla2lcIDsKK+eJueauiumLvCA8IHRva3VzaHVrb3VcIDsKK+Wcp+e4ruaApyA8IGFzc2h1a3VzZWlcIDsKK+ebsuWUluWtpuagoSA8IG1vdWFnYWtrb3VcIDsKK+S/neWuieadoeS+iyA8IGhvYW5qb3VyZWlcIDsKK+efs+WZqOaZguS7oyA8IHNla2tpamlkYWlcIDsKK+S8vOmdnueQhuWxiCA8IGVzZXJpa3V0c3VcIDsKK+WumOaIv+mVtyA8IGthbmJvdWNob3VcIDsKK+iomOW/teWIh+aJiyA8IGtpbmVua2l0dGVcIDsKK+eZveegguezliA8IHNoaXJvemF0b3VcIDsKK+WAi+S6uuWAi+S6uiA8IGtvamlua29qaW5cIDsKK+aYpeWIhueCuSA8IHNodW5idW50ZW5cIDsKK+aXp+S4u+S6uiA8IGt5dXVzaHVqaW5cIDsKK+eKh+eKhyA8IGhpc2hpaGlzaGlcIDsKK+mbm+ixhiA8IGhpeW9rb21hbWVcIDsKK+W7tua7nuWIqeWtkCA8IGVudGFpcmlzaGlcIDsKK+iRiee3kee0oCA8IHlvdXJ5b2t1c29cIDsKK+e2sumgrSA8IGFtaWdhc2hpcmFcIDsKK+WIhua0vuS4u+e+qSA8IGJ1bnBhc2h1Z2lcIDsKK+WGhemdoueahCA8IG5haW1lbnRla2lcIDsKK+avgOiqieikkuiytiA8IGtpeW9ob3VoZW5cIDsKK+iCuue1kOaguCA8IGhhaWtla2tha3VcIDsKK+WUr+e+juS4u+e+qSA8IHl1aWJpc2h1Z2lcIDsKK+WhqemtmiA8IHNoaW96YWthbmFcIDsKK+WbnuWPjumHkSA8IGthaXNodXVraW5cIDsKK+e2v+W4veWtkCA8IHdhdGFib3VzaGlcIDsKK+S4reWftyA8IGNodXVzaGl0c3VcIDsKK+Wkj+iZqyA8IG5hdHN1bXVzaGlcIDsKK+aApemAsua0viA8IGt5dXVzaGluaGFcIDsKK+i7jeS6i+ihm+aYnyA8IGd1bmppZWlzZWlcIDsKK+iKuOihk+mZoiA8IGdlaWp1dHN1aW5cIDsKK+amtOW8vuegsiA8IHJ5dXVkYW5wb3VcIDsKK+WGkumZuuW/gyA8IGJvdWtlbnNoaW5cIDsKK+WPr+eHg+eJqSA8IGthbmVuYnV0c3VcIDsKK+aXpeacrOS4gCA8IG5paG9uJydpY2hpXCA7Civkv67nt7TogIUgPCBzaHV1cmVuc2hhXCA7Civlj43lsITpj6EgPCBoYW5zaGFreW91XCA7Civkuoznm7Top5IgPCBuaWNob2trYWt1XCA7CivnhKHmiJHlpKLkuK0gPCBtdWdhbXVjaHV1XCA7CivlnovlpInmj5sgPCBrYXRhaGVua2FuXCA7Civljrvli6LniZsgPCBreW9zZWl1c2hpXCA7CivkuojlrprmnJ/pmZAgPCB5b3RlaWtpZ2VuXCA7Civniq/nvarlraYgPCBoYW56YWlnYWt1XCA7Civljp/nsY3lnLAgPCBnZW5zZWtpY2hpXCA7Civntr7pjKYgPCBheWFuaXNoaWtpXCA7CivmgKfpgZPlvrMgPCBzZWlkb3V0b2t1XCA7CivlubPmu5HljJYgPCBoZWlrYXRzdWthXCA7Civnq4vkvZPmmKDnlLsgPCByaXR0YWllaWdhXCA7Civpg7Xkvr/nrrEgPCB5dXViaW5iYWtvXCA7Civlj5fkv6HmlpkgPCBqdXNoaW5yeW91XCA7Civlho3ntYTnuZQgPCBzYWlzb3NoaWtpXCA7Civnvo7ooZPnlYwgPCBiaWp1dHN1a2FpXCA7CivlpKnmsJfmqKHmp5ggPCB0ZW5raW1veW91XCA7CivkuI3nrYnlvI8gPCBmdWRvdXNoaWtpXCA7Civngavlj6Pljp/muZYgPCBrYWtvdWdlbmtvXCA7CivmnIjliKUgPCB0c3VraWJldHN1XCA7Civooajpn7PlrZfmr40gPCBoeW91b25qaWJvXCA7CivntITlrprmm7ggPCB5YWt1am91c2hvXCA7CivkuInnrofml6UgPCBzYW5nYW5pY2hpXCA7Civpn7Plo7DoqIDoqp4gPCBvbnNlaWdlbmdvXCA7CivnmbrnpaXlnLAgPCBoYXNzaG91Y2hpXCA7CivkuIDmmKjmmKjml6UgPCBzYWtpb3RvdG9pXCA7Civli53miYvlj6MgPCBrYXR0ZWd1Y2hpXCA7CivlpJXpo5/lvowgPCB5dXVzaG9rdWdvXCA7CivmkKzlhaXml6UgPCBoYW4nJ255dXViaVwgOwor6LGq5ZWG5bGkIDwgZ291c2hvdXNvdVwgOwor5aW06LGG6IWQIDwgeWFra29kb3VmdVwgOwor6ISx5rOV6KGM54K6IDwgZGFwcG91a291aVwgOwor5oSf6Kaa6KuWIDwga2Fua2FrdXJvblwgOwor5Zu955Sj6LuKIDwga29rdXNhbnNoYVwgOwor5LiN5rWB6YCaIDwgZnVyeXV1dHN1dVwgOwor5qmL6aCt5aChIDwga3lvdXRvdWhvdVwgOwor5YCL5Lq65Li7576pIDwga29qaW5zaHVnaVwgOwor5aSP5pmC6ZaTIDwgbmF0c3VqaWthblwgOwor55+z54Kt5bGkIDwgc2VraXRhbnNvdVwgOwor57W55LiA5Yy5IDwga2ludWlwcGlraVwgOwor5bu655m95pu4IDwga2VucGFrdXNob1wgOwor5raI6Ziy5rOVIDwgc2hvdWJvdWhvdVwgOwor5Lit6L+R5p2xIDwgY2h1dWtpbnRvdVwgOwor5LiN5q2j6KaP6LuNIDwgZnVzZWlraWd1blwgOwor5aWq55WlIDwgZGF0c3VyeWFrdVwgOwor6Ki85Lq65Y+wIDwgc2hvdW5pbmRhaVwgOwor5rC055Sj5qWtIDwgc3Vpc2FuZ3lvdVwgOwor5q+U5L6L5byPIDwgaGlyZWlzaGlraVwgOwor55S35omA5bivIDwgb3Rva29qb3RhaVwgOwor5L+u5pW054mIIDwgc2h1dXNlaWhhblwgOwor5YeG55yL6K235ammIDwganVua2FuZ29mdVwgOwor5Ya35rC05rW0IDwgcmVpc3VpeW9rdVwgOwor5aSP576957mUIDwgbmF0c3ViYW9yaVwgOwor6KSS6KiA6JGJIDwgaG9tZWtvdG9iYVwgOwor57mB57mBIDwgc2hpZ2VzaGlnZVwgOwor5LqL5YuZ5py6IDwgamltdWR6dWt1ZVwgOwor5Li75YKs5Zu9IDwgc2h1c2Fpa29rdVwgOwor5aSn5aSW5YiIIDwgb29zb3RvZ2FyaVwgOwor5riF566X5Lq6IDwgc2Vpc2FuJyduaW5cIDsKK+S9j+awkeelqCA8IGp1dW1pbmh5b3VcIDsKK+avjeWtkOWutuW6rSA8IGJvc2hpa2F0ZWlcIDsKK+eEoee3muWxgCA8IG11c2Vua3lva3VcIDsKK+aCquadkOaWmSA8IGFrdXphaXJ5b3VcIDsKK+aXpeeFp+ioiCA8IG5pc3Nob3VrZWlcIDsKK+aUr+aMgeeOhyA8IHNoaWppcml0c3VcIDsKK+S6jOmAo+eZuiA8IG5pcmVucGF0c3VcIDsKK+WQjOWQjeeVsOS6uiA8IGRvdW1laWlqaW5cIDsKK+WFt+ixoeeahCA8IGd1c2hvdXRla2lcIDsKK+WJr+aKteW9kyA8IGZ1a3V0ZWl0b3VcIDsKK+iCsuWFkOaZgumWkyA8IGlrdWppamlrYW5cIDsKK+aZguS+oeeZuuihjCA8IGppa2FoYWtrb3VcIDsKK+iDuOiGnOeCjiA8IGt5b3VtYWt1ZW5cIDsKK+mZpOa5v+WZqCA8IGpvc2hpdHN1a2lcIDsKK+S5l+aPm+mnhSA8IG5vcmlrYWVla2lcIDsKK+S4gOWRqCA8IGhpdG9tZWd1cmlcIDsKK+WPpOacrOWxiyA8IGZ1cnVob24nJ3lhXCA7Civlt6jlpKfnl4cgPCBreW9kYWlzaG91XCA7CivkvJrorbDkuovpoIUgPCBrYWlnaWppa291XCA7Civnn6Xml6XlrrYgPCBjaGluaWNoaWthXCA7Civnmb3nnLzoppYgPCBoYWt1Z2Fuc2hpXCA7CivnhaflsITms5UgPCBzaG91c2hhaG91XCA7Civku67mg7PoqJjmhrYgPCBrYXNvdWtpb2t1XCA7Civng4/ps6kgPCBrYXJhc3ViYXRvXCA7CivotaTkv6Hlj7cgPCBha2FzaGluZ291XCA7CivplbfmlrnlvaIgPCBjaG91aG91a2VpXCA7CivkuIflm73lj7IgPCBiYW5rb2t1c2hpXCA7CivpgKDlhbXlu6AgPCB6b3VoZWlzaG91XCA7CivmnbHkuqzmub4gPCB0b3VreW91d2FuXCA7Civni6zlibXmgKcgPCBkb2t1c291c2VpXCA7Civpg6jliIbpurvphZQgPCBidWJ1bm1hc3VpXCA7CivmpJzkuovmjqfoqLQgPCBrZW5qaWtvdXNvXCA7CivmlL7mtarnmZYgPCBob3Vyb3VoZWtpXCA7CivooYzmlL/lrpggPCBneW91c2Vpa2FuXCA7CivmsqHotqPlkbMgPCBib3RzdXNodW1pXCA7CivpmbbphZTlooMgPCB0b3VzdWlreW91XCA7Civlj43lsITop5IgPCBoYW5zaGFrYWt1XCA7Civml4Xng48gPCB0YWJpZ2FyYXN1XCA7CivkuIPlhYkgPCBuYW5haGlrYXJpXCA7CivnibnlirnolqwgPCB0b2trb3V5YWt1XCA7CivlqJjlqb8gPCBtdXN1bWVtdWtvXCA7Civml6XmsqEgPCBuaWNoaWJvdHN1XCA7CivlpJrpoIXlvI8gPCB0YWtvdXNoaWtpXCA7Civooajmg4XnrYsgPCBoeW91am91a2luXCA7CivntYzllrbnrqHnkIYgPCBrZWllaWthbnJpXCA7CivliKnnm4rnjocgPCByaWVraXJpdHN1XCA7CivkuInmi43lrZAgPCBzYW5ieW91c2hpXCA7Civph4/osqnlupcgPCByeW91aGFudGVuXCA7Civnt6jpm4blrZAgPCBoZW5zaHV1c2hpXCA7CivlhpfplbfmgKcgPCBqb3VjaG91c2VpXCA7CivpvLvnnLzpj6EgPCBoYW5hbWVnYW5lXCA7CivlhoXoppbpj6EgPCBuYWlzaGlreW91XCA7CivotaTnv6Hnv6AgPCBha2FzaG91YmluXCA7Civpo5vooYzmmYLplpMgPCBoaWtvdWppa2FuXCA7CivnhrHmqZ/plqIgPCBuZXRzdWtpa2FuXCA7CivmkYLorbfohbogPCBzZXRzdWdvc2VuXCA7Civlr77mipfnrZYgPCB0YWlrb3VzYWt1XCA7Civov5Hku6PliocgPCBraW5kYWlnZWtpXCA7CivlvrnlupXnmoQgPCB0ZXR0ZWl0ZWtpXCA7Civlm5vlrZfnhp/oqp4gPCB5b2ppanVrdWdvXCA7CivmrbTku6Plj7IgPCByZWtpZGFpc2hpXCA7Civml6nopovooaggPCBoYXlhbWloeW91XCA7Civoh6jmqZ/lv5zlpIkgPCByaW5raW91aGVuXCA7CivmipXlsITop5IgPCB0b3VzaGFrYWt1XCA7CivlrprmnJ/kv53pmbogPCB0ZWlraWhva2VuXCA7Civnm6PnnaPogIUgPCBrYW50b2t1c2hhXCA7CivlhbHnlKPlnI8gPCBreW91c2Fua2VuXCA7Civlrp/ooYzkuK0gPCBqaWtrb3VjaHV1XCA7CivnjJvmlLvmkoMgPCBtb3Vrb3VnZWtpXCA7Civpm7vlrZDmrrsgPCBkZW5zaGlrYWt1XCA7CivpgKDoqIDpo5voqp4gPCB6b3VnZW5oaWdvXCA7CivmnZHlvbnloLQgPCBtdXJheWFrdWJhXCA7CivntLDpm6ogPCBzYXNhbWV5dWtpXCA7Civpmbjou5/poqggPCByaWt1bmFucHV1XCA7CivmlL/msrvoibIgPCBzZWlqaXNob2t1XCA7Civmr43lrZDojYkgPCBoYWhha29ndXNhXCA7CivnibnlvoXnlJ8gPCB0b2t1dGFpc2VpXCA7CivpoK3liIYgPCBrYXNoaXJhYnVuXCA7CivkuK3nm6TmiKYgPCBjaHV1YmFuc2VuXCA7Civkuovli5nnlKjlk4EgPCBqaW11eW91aGluXCA7CivoiJ7ouI/pnbQgPCBidXRvdWd1dHN1XCA7CivoqIDoqp7lnLDnkIYgPCBnZW5nb2NoaXJpXCA7CivlpKfpmarlr6kgPCBkYWliYWlzaGluXCA7CivnhKHnuIHku48gPCBtdWVuYm90b2tlXCA7CivmlpHniZsgPCBtYWRhcmF1c2hpXCA7Civnt5HoibIgPCByeW9rdXNob2t1XCA7Civoqo3lrproqLwgPCBuaW50ZWlzaG91XCA7Civnvo7ooZPmm7ggPCBiaWp1dHN1c2hvXCA7CivoqIjph4/ms5UgPCBrZWlyeW91aG91XCA7Civljp/mjK/li5UgPCBnZW5zaGluZG91XCA7CivlraboirjkvJogPCBnYWt1Z2Vpa2FpXCA7CivohILogqrlv4MgPCBzaGlib3VzaGluXCA7Civni7jppYLpo6kgPCB0YW51a2l1ZG9uXCA7CivmsLTnlKPluoEgPCBzdWlzYW5jaG91XCA7CivlkIjmhrLnmoQgPCBnb3VrZW50ZWtpXCA7CivkuLvkvZPnmoQgPCBzaHV0YWl0ZWtpXCA7Civniq/nvarooYzngrogPCBoYW56YWlrb3VpXCA7Civml6XmnIggPCBuaWNoaWdldHN1XCA7CivnqoPnm5fni4IgPCBzZXR0b3VreW91XCA7CivlpbPkuIDoiKwgPCBvbicnbmFpcHBhblwgOwor5rG65Yud57eaIDwga2Vzc2hvdXNlblwgOwor5pet5pelIDwga3lva3VqaXRzdVwgOwor6Ly46YCB5qmf6ZaiIDwgeXVzb3VraWthblwgOwor5Y+j5LiK5omLIDwga3VjaGlqb3V6dVwgOwor5bel5aC06ZW3IDwga291am91Y2hvdVwgOwor5peX5LqM5rWBIDwgaGF0YW5pcnl1dVwgOwor6KOc5Yqp6Imm6ImHIDwgaG9qb2thbnRlaVwgOwor5Y2z5L2N5byPIDwgc29rdWlzaGlraVwgOwor5LqU6YeM6Zyn5LitIDwgZ29yaW11Y2h1dVwgOwor5oeQ5p+U562WIDwga2FpanV1c2FrdVwgOwor5LiJ5pel5aSp5LiLIDwgbWlra2F0ZW5rYVwgOwor5bm75oOz5YqHIDwgZ2Vuc291Z2VraVwgOwor5Z+65pys5Y2Y5L2NIDwga2lob250YW4nJ2lcIDsKK+S6i+WLmeWupCA8IGppbXVzaGl0c3VcIDsKK+i2heimj+WJhyA8IGNob3VraXNva3VcIDsKK+aguOWutuaXjyA8IGtha3VrYXpva3VcIDsKK+WkleaciOWknCA8IHl1dWR6dWtleW9cIDsKK+eMtuS6iOacn+mWkyA8IHl1dXlva2lrYW5cIDsKK+Wkp+ihhui7iiA8IGRhaXNodXVzaGFcIDsKK+eEoeexjeiAhSA8IG11c2VraW1vbm9cIDsKK+aXpeeLrOS8iiA8IG5pY2hpZG9rdWlcIDsKK+mao+e1hCA8IHRvbmFyaWd1bWlcIDsKK+aCque/kuaFoyA8IGFrdXNodXVrYW5cIDsKK+ehq+mFuOmKhSA8IHJ5dXVzYW5kb3VcIDsKK+awtOeUo+WtpiA8IHN1aXNhbmdha3VcIDsKK+eDj+mHkSA8IGthcmFzdWdhbmVcIDsKK+W5uOemj+aEnyA8IGtvdWZ1a3VrYW5cIDsKK+izoOWEn+mHkSA8IGJhaXNob3VraW5cIDsKK+iri+iyoOW3peS6iyA8IHVrZW9pa291amlcIDsKK+mavOenkSA8IGhheWFidXNha2FcIDsKK+WFseeUo+WFmiA8IGt5b3VzYW50b3VcIDsKK+eJqeW/gyA8IG1vbm9nb2tvcm9cIDsKK+aXheaelSA8IHRhYmltYWt1cmFcIDsKK+e0hembgCA8IGJlbmlzdXp1bWVcIDsKK+eItuaWuSA8IGNoaWNoaWthdGFcIDsKK+W+jOmAgOaWh+WtlyA8IGtvdXRhaW1vamlcIDsKK+iIueadv+WhgCA8IGZ1bmFpdGFiZWlcIDsKK+WFqOWtpumAoyA8IHplbmdha3VyZW5cIDsKK+ebtOi1sOi3ryA8IGNob2t1c291cm9cIDsKK+eUt+WwiuWls+WNkSA8IGRhbnNvbmpvaGlcIDsKK+awt+ixhuiFkCA8IGtvb3JpZG91ZnVcIDsKK+WFpeWxheiAhSA8IG55dXVreW9zaGFcIDsKK+aXpemZsOiAhSA8IGhpa2FnZW1vbm9cIDsKK+e1tue4gee3miA8IHpldHN1ZW5zZW5cIDsKK+Wkp+aFiOWkp+aCsiA8IGRhaWppZGFpaGlcIDsKK+WhteiKpSA8IGNoaXJpYWt1dGFcIDsKK+WTgeipleS8miA8IGhpbnB5b3VrYWlcIDsKK+awtOeTtuW6pyA8IG1penVnYW1lemFcIDsKK+WQhOWbo+S9kyA8IGtha3VkYW50YWlcIDsKK+adpeadpemAsSA8IHJhaXJhaXNodXVcIDsKK+Wbm+WNgembgCA8IHNoaWp1dWthcmFcIDsKK+WmguS9leanmOW4qyA8IGlrYXNhbWFzaGlcIDsKK+mAmueUqOmWgCA8IHRzdXV5b3Vtb25cIDsKK+eIqualiuaenSA8IHRzdW1heW91amlcIDsKK+aVo+mrquWxiyA8IHNhbnBhdHN1eWFcIDsKK+agoeato+WItyA8IGtvdXNlaXp1cmlcIDsKK+m7kuecvOmPoSA8IGt1cm9tZWdhbmVcIDsKK+iHqOeVjOS6i+aVhSA8IHJpbmthaWppa29cIDsKK+mbqOeHlSA8IGFtYXRzdWJhbWVcIDsKK+WmueWpvyA8IGltb3V0b211a29cIDsKK+mAoOiIuealrSA8IHpvdXNlbmd5b3VcIDsKK+ims+WKh+S8miA8IGthbmdla2lrYWlcIDsKK+mbqueFmSA8IHl1a2lrZW11cmlcIDsKK+WFrOWus+eXhSA8IGtvdWdhaWJ5b3VcIDsKK+WPl+S/oeWBtCA8IGp1c2hpbmdhd2FcIDsKK+S8gealreW/gyA8IGtpZ3lvdXNoaW5cIDsKK+WboOaenOmWouS/giA8IGluZ2FrYW5rZWlcIDsKK+S/rue5leW3pSA8IHNodXV6ZW5rb3VcIDsKK+WNmOi6q+mKgyA8IHRhbnNoaW5qdXVcIDsKK+inkuibmSA8IHRzdW5vZ2FlcnVcIDsKK+eVsOeoruS6pOmFjSA8IGlzaHVrb3VoYWlcIDsKK+WknOmWk+WLpOWLmSA8IHlha2Fua2lubXVcIDsKK+eZvuW5tOebriA8IGh5YWt1bmVubWVcIDsKK+ayoeeQhuaDsyA8IGJvdHN1cmlzb3VcIDsKK+mdmeiEiOeCjiA8IGpvdW15YWt1ZW5cIDsKK+W+oeWbveiHquaFoiA8IG9rdW5pamltYW5cIDsKK+WFqOiDveiAhSA8IHplbicnbm91c2hhXCA7CivlkYnmnI3llYYgPCBnb2Z1a3VzaG91XCA7CivnnIHos4fmupAgPCBzaG91c2hpZ2VuXCA7Civpm4blkIjoq5YgPCBzaHV1Z291cm9uXCA7CivnpoHnhZnluK0gPCBraW4nJ2Vuc2VraVwgOwor5aSx5qWtIDwgc2hpdHN1Z3lvdVwgOwor6Kit56uLIDwgc2V0c3VyaXRzdVwgOwor6ZW35pa55L2TIDwgY2hvdWhvdXRhaVwgOwor5Y+X5L+h5Lq6IDwganVzaGluJyduaW5cIDsKK+aApeWBnOi7iiA8IGt5dXV0ZWlzaGFcIDsKK+mbkeeJqSA8IHphdHN1YnV0c3VcIDsKK+elnue1jOenkeWMuyA8IHNoaW5rZWlrYWlcIDsKK+eznuW6puiDuCA8IGt1c29kb2t5b3VcIDsKK+a2iOmYsuWjqyA8IHNob3Vib3VzaGlcIDsKK+acieeQhuW8jyA8IHl1dXJpc2hpa2lcIDsKK+e1guWIl+i7iiA8IHNodXVyZXNzaGFcIDsKK+aJgOacieagvCA8IHNob3l1dWtha3VcIDsKK+efpeimmuefpSA8IGNoaWtha3VjaGlcIDsKK+mBiuaSg+aJiyA8IHl1dWdla2lzaHVcIDsKK+ino+eGseWJpCA8IGdlbmV0c3V6YWlcIDsKK+W6l+Wxi+eJqSA8IHRlbicneWFtb25vXCA7CivnhrHng4ggPCBuZXRzdXJldHN1XCA7CivpgYrmkoPmiKYgPCB5dXVnZWtpc2VuXCA7CivlsbHmsLTplqMgPCBzYW5zdWlrYWt1XCA7CivoqqzmlZnluKsgPCBzZWtreW91c2hpXCA7Civls7bluJ3lm70gPCB0b3V0ZWlrb2t1XCA7CivljZHliqPmvKIgPCBoaXJldHN1a2FuXCA7Civpmo/npZ4gPCBrYW4nJ25hZ2FyYVwgOwor6KO46bqmIDwgaGFkYWthbXVnaVwgOwor5YWo55Sf5ravIDwgemVuc2hvdWdhaVwgOwor5YWo5Lya6KGGIDwgemVua2Fpc2h1dVwgOwor5Y+O5a656ICFIDwgc2h1dXlvdXNoYVwgOwor6Kej6ZuG5ZCIIDwga2Fpc2h1dWdvdVwgOwor55u45a++55qEIDwgc291dGFpdGVraVwgOwor55+z54Gw5LmzIDwgc2Vra2Fpbnl1dVwgOwor5YWx5pyJ6ICFIDwga3lvdXl1dXNoYVwgOwor5oyH5a6a5bitIDwgc2hpdGVpc2VraVwgOwor5ZWG5ZOB5ZCNIDwgc2hvdWhpbm1laVwgOwor5qC55pys55qEIDwga29ucG9udGVraVwgOwor576O6KGT5bGVIDwgYmlqdXRzdXRlblwgOwor57ie5qih5qeYIDwgc2hpbWFtb3lvdVwgOwor5raI6Ziy5ZujIDwgc2hvdWJvdWRhblwgOwor5Lm+6JGh6JCEIDwgaG9zaGlidWRvdVwgOwor6Zyc5pyIIDwgc2hpbW90c3VraVwgOwor57695qC56LuKIDwgaGFuZWd1cnVtYVwgOwor5a6M5YWo6Kmm5ZCIIDwga2FuemVuamlhaVwgOwor55m65YuV5qmfIDwgaGF0c3Vkb3VraVwgOwor6ZeY54mb5aOrIDwgdG91Z3l1dXNoaVwgOwor5ZCM5oOF56WoIDwgZG91am91aHlvdVwgOwor5YWl5Lya6YeRIDwgbnl1dWthaWtpblwgOwor54ax56Gs5YyWIDwgbmV0c3Vrb3VrYVwgOwor5aSi5p6VIDwgeXVtZW1ha3VyYVwgOwor5peF5b+DIDwgdGFiaWdva29yb1wgOwor6ZeY54mb5aC0IDwgdG91Z3l1dWpvdVwgOwor5Y+N5a++56WoIDwgaGFudGFpaHlvdVwgOwor54qs5L6NIDwgaW51emFtdXJhaVwgOwor5Ya35Y205ZmoIDwgcmVpa3lha3VraVwgOwor5YCf5YWl6YeRIDwga2FyaWlyZWtpblwgOwor5ZWG5ZOB5Yi4IDwgc2hvdWhpbmtlblwgOwor5YWs56S65Zyw5L6hIDwga291amljaGlrYVwgOwor5q2T5qW96KGXIDwga2FucmFrdWdhaVwgOwor56CU5YmK55ukIDwga2Vuc2FrdWJhblwgOwor5LiA5a2X5LiA5Y+lIDwgaWNoaWppaWtrdVwgOwor6K2Y5YilIDwgc2hpa2liZXRzdVwgOwor5Y6f55CG5Li7576pIDwgZ2VucmlzaHVnaVwgOwor5pys57GN5ZywIDwgaG9uc2VraWNoaVwgOwor5rCX5qyd55eHIDwga2l1dHN1c2hvdVwgOwor5oGL5aWz5oi/IDwga29pbnlvdWJvdVwgOwor6ISz56We57WMIDwgbm91c2hpbmtlaVwgOwor6Iag5Y6f55eFIDwga291Z2VuYnlvdVwgOwor54m95Yi255CDIDwga2Vuc2Vpa3l1dVwgOwor5paw6YCg6Ii5IDwgc2hpbnpvdXNlblwgOwor5oSf6Kaa54K5IDwga2Fua2FrdXRlblwgOwor5YG95ZCb5a2QIDwgbmlzZWt1bnNoaVwgOwor5rG65Yud54K5IDwga2Vzc2hvdXRlblwgOwor5aSa5pWw5rG6IDwgdGFzdXVrZXRzdVwgOwor5oSP6K2Y55qEIDwgaXNoaWtpdGVraVwgOwor5Y+N5bCE55qEIDwgaGFuc2hhdGVraVwgOwor5LiN5rS755m6IDwgZnVrYXBwYXRzdVwgOwor5Y+X6aCY6Ki8IDwganVyeW91c2hvdVwgOwor57SU5paH5a2mIDwganVuYnVuZ2FrdVwgOwor54m55oCl5Yi4IDwgdG9ra3l1dWtlblwgOwor5aa+5Ye6IDwgc2hvdXNodXRzdVwgOwor6buE6YeR6KGTIDwgb3Vnb25qdXRzdVwgOwor5Luu5YuY5a6aIDwga2FyaWthbmpvdVwgOwor57eR546JIDwgcnlva3VneW9rdVwgOwor54OP6JuHIDwga2FyYXN1aGViaVwgOwor6ZyK6ZW36aGeIDwgcmVpY2hvdXJ1aVwgOwor5YWo6Lqr5YOPIDwgemVuc2hpbnpvdVwgOwor5a+G6Ly45ZOBIDwgbWl0c3V5dWhpblwgOwor5pei6Kit57eaIDwga2lzZXRzdXNlblwgOwor5LqM6YCj5byPIDwgbmlyZW5zaGlraVwgOwor56ul6Kmx5L2c5a62IDwgZG91d2FzYWtrYVwgOwor5rib6YCf5p2QIDwgZ2Vuc29rdXphaVwgOwor5YWJ56OB5rCXIDwgaGlrYXJpamlraVwgOwor6Ki85piO5pu4IDwgc2hvdW1laXNob1wgOwor6ZaL5ouT5ZywIDwga2FpdGFrdWNoaVwgOwor5Luu5YWN6KixIDwga2FyaW1lbmt5b1wgOwor54m55Ye6IDwgdG9rdXNodXRzdVwgOwor57SZ6KKLIDwga2FtaWJ1a3Vyb1wgOwor5Y2w6LGh55qEIDwgaW5zaG91dGVraVwgOwor5pen5pWZ5b6SIDwga3l1dWt5b3V0b1wgOwor6LKo54mp5L6/IDwga2Ftb3RzdWJpblwgOwor5aao5a6z6KGM54K6IDwgYm91Z2Fpa291aVwgOwor6Zuq5p+zIDwgeXVraXlhbmFnaVwgOwor5pyJ5pyb5qCqIDwgeXV1Ym91a2FidVwgOwor5oWj5L6L55qEIDwga2FucmVpdGVraVwgOwor6Kaz55u45a2mIDwga2Fuc291Z2FrdVwgOwor6IKJ55So56iuIDwgbmlrdXlvdXNodVwgOwor6YGL5Za257WM6LK7IDwgdW4nJ2Vpa2VpaGlcIDsKK+aYpeS8kSA8IGhhcnV5YXN1bWlcIDsKK+WfuuWcsOWxgCA8IGtpY2hpa3lva3VcIDsKK+mBqeW/nOeXhyA8IHRla2lvdXNob3VcIDsKK+S4remrmOeUnyA8IGNodXVrb3VzZWlcIDsKK+S4i+a6luWCmSA8IHNoaXRhanVuYmlcIDsKK+S/oemgvOaEnyA8IHNoaW5yYWlrYW5cIDsKK+eZuumFteS5syA8IGhha2tvdW55dXVcIDsKK+aXheiKuOS6uiA8IHRhYmlnZWluaW5cIDsKK+S6uumbquW0qSA8IGhpdG9uYWRhcmVcIDsKK+S4u+S/oeWPtyA8IHNodXNoaW5nb3VcIDsKK+S6jOmDqOWQiOWljyA8IG5pYnVnYXNzb3VcIDsKK+S/oeWlieiAhSA8IHNoaW5wb3VzaGFcIDsKK+WQjeiqieavgOaQjSA8IG1laXlva2lzb25cIDsKK+Wwuuiyq+azlSA8IHNoYWtrYW5ob3VcIDsKK+e+juihk+WTgSA8IGJpanV0c3VoaW5cIDsKK+iomOmMsuaYoOeUuyA8IGtpcm9rdWVpZ2FcIDsKK+mAmuS/oeiyuyA8IHRzdXVzaGluaGlcIDsKK+S/oemgvOaApyA8IHNoaW5yYWlzZWlcIDsKK+aEn+immuavmyA8IGthbmtha3Vtb3VcIDsKK+mghuW/nOaApyA8IGp1bicnbm91c2VpXCA7CivluLjnv5LogIUgPCBqb3VzaHV1c2hhXCA7Civnvo7ooZPlj7IgPCBiaWp1dHN1c2hpXCA7CivmqoDpgqPlr7ogPCBkYW4nJ25hZGVyYVwgOwor5Y2D5q2z6aO0IDwgY2hpdG9zZWFtZVwgOwor6KO95p2Q5qWtIDwgc2VpemFpZ3lvdVwgOwor5paw5qmf6Lu4IDwgc2hpbmtpamlrdVwgOwor6IKJ6aWF6aCtIDwgbmlrdW1hbmp1dVwgOwor5rC06LOH5rqQIDwgbWl6dXNoaWdlblwgOwor55m96bOl5bqnIDwgaGFrdWNob3V6YVwgOwor55m+5YiG5q+UIDwgaHlha3VidW5oaVwgOwor6Kmm6YeR55+zIDwgc2hpa2luc2VraVwgOwor6YGL5pCs566h55CGIDwgdW5wYW5rYW5yaVwgOwor5YSq562J6LOeIDwgeXV1dG91c2hvdVwgOwor5Yy756eR5aSn5a2mIDwgaWthZGFpZ2FrdVwgOwor5aSn6KGG57SZIDwgdGFpc2h1dXNoaVwgOwor6Iqx6KaL5pmCIDwgaGFuYW1pZG9raVwgOwor5Yqg5rib5LmX6ZmkIDwga2FnZW5qb3Vqb1wgOwor5aGX5pOm5YmkIDwgdG9zYXRzdXphaVwgOwor6Zi/54mH5oim5LqJIDwgYWhlbnNlbnNvdVwgOwor5pyo6KO95ZOBIDwgbW9rdXNlaWhpblwgOwor5YaF6KeS55CDIDwgbmFpa2Fra3l1dVwgOwor6aWS6IiM5a62IDwgam91emV0c3VrYVwgOwor54ax5Yem55CGIDwgbmV0c3VzaG9yaVwgOwor6Kem55m6IDwgc2hva3VoYXRzdVwgOwor5paw5bm557eaIDwgc2hpbmthbnNlblwgOwor5YuV5ZCR6KGoIDwgZG91a291aHlvdVwgOwor5Lqk6Z+/6KmpIDwga291a3lvdXNoaVwgOwor5oyo5ou254q2IDwgYWlzYXRzdWpvdVwgOwor6Zml5rKh5rmWIDwga2FuYm90c3Vrb1wgOwor5ZSv5ZSv6Ku+6Ku+IDwgaWlkYWt1ZGFrdVwgOwor5L+h5aSp57+BIDwgc2hpbnRlbicnb3VcIDsKK+i1t+mbu+WKmyA8IGtpZGVucnlva3VcIDsKK+mOrumtguelrSA8IGNoaW5rb25zYWlcIDsKK+iItuadpeWTgSA8IGhha3VyYWloaW5cIDsKK+aJi+WhqeeavyA8IHRlc2hpb3phcmFcIDsKK+m7kuW6lee/syA8IGt1cm9zb2tvaGlcIDsKK+WtpueUn+W4vSA8IGdha3VzZWlib3VcIDsKK+e2meeItiA8IG1hbWFjaGljaGlcIDsKK+awtOagveWfuSA8IG1penVzYWliYWlcIDsKK+WWtumAoOeJqSA8IGVpem91YnV0c3VcIDsKK+aXpeeFp+aoqSA8IG5pc3Nob3VrZW5cIDsKK+ebuOWvvuiqpOW3riA8IHNvdXRhaWdvc2FcIDsKK+WFiemHj+WtkCA8IGtvdXJ5b3VzaGlcIDsKK+S4h+aEmuevgCA8IGJhbmd1c2V0c3VcIDsKK+iDveeLguiogCA8IG5vdWt5b3VnZW5cIDsKK+mjsumFkumBi+i7oiA8IGluc2h1dW50ZW5cIDsKK+eDj+e0mSA8IGthcmFzdWdhbWlcIDsKK+aUr+aMgeWKmyA8IHNoaWppcnlva3VcIDsKK+e1seioiOihqCA8IHRvdWtlaWh5b3VcIDsKK+WFiOWPsuWtpiA8IHNlbnNoaWdha3VcIDsKK+aMh+WQjeippuWQiCA8IHNoaW1laWppYWlcIDsKK+aXpeS7jyA8IG5pY2hpZnV0c3VcIDsKK+ehq+mFuOe0mSA8IHJ5dXVzYW5zaGlcIDsKK+aAp+W3ruWIpSA8IHNlaXNhYmV0c3VcIDsKK+mdtOS4iyA8IGt1dHN1c2hpdGFcIDsKK+acrOWbveS6uiA8IGhvbmdva3VqaW5cIDsKK+W3qOimlueahCA8IGt5b3NoaXRla2lcIDsKK+i7oui9jeapnyA8IHRlbnRldHN1a2lcIDsKK+ihqOW/oOeikSA8IGh5b3VjaHV1aGlcIDsKK+WPjuizhOe9qiA8IHNodXV3YWl6YWlcIDsKK+iWrOWJpOW4qyA8IHlha3V6YWlzaGlcIDsKK+W+jOimi+S6uiA8IGtvdWtlbicnbmluXCA7CivpgKPnlKjlvaIgPCByZW4nJ3lvdWtlaVwgOwor5L2Z55m95rOoIDwgeW9oYWt1Y2h1dVwgOwor5Lyd57Wx55qEIDwgZGVudG91dGVraVwgOwor57iu5bC6IDwgc2h1a3VzaGFrdVwgOwor5b6S5byf5Yi25bqmIDwgdG90ZWlzZWlkb1wgOwor6Kaq5qip6ICFIDwgc2hpbmtlbnNoYVwgOwor57SL57695LqM6YeNIDwgbW9uaGFidXRhZVwgOwor5YaG5aSp5LqVIDwgbWFydXRlbmpvdVwgOwor5aWz5Li7IDwgb24nJ25hYXJ1amlcIDsKK+WwkeW5tOmZoiA8IHNob3VuZW4nJ2luXCA7CivmrbTpnZLngq0gPCByZWtpc2VpdGFuXCA7CivosqjluaPliLbluqYgPCBrYWhlaXNlaWRvXCA7CivooI/lt6XoiLkgPCBrYW5pa291c2VuXCA7Civnm67lhavliIYgPCBtZWhhY2hpYnVuXCA7Civlm5vljYHogqkgPCBzaGlqdXVrYXRhXCA7Civmpb3oprPnmoQgPCByYWtrYW50ZWtpXCA7Civlv4PlgZzmraIgPCBzaGludGVpc2hpXCA7CivpgJ/lsITnoLIgPCBzb2t1c2hhaG91XCA7CivmlbXlpLEgPCB0ZWtpc2hpdHN1XCA7Civml6XlkozkuIvpp4QgPCBoaXlvcmlnZXRhXCA7CivmlrDlu7rmnZAgPCBzaGlua2VuemFpXCA7CivkuI3lv4XopoEgPCBmdWhpdHN1eW91XCA7CivmiYHpnZLnn7MgPCBoZW5zZWlzZWtpXCA7Civlj4znkIPoj4wgPCBzb3VreXV1a2luXCA7CivkuJbnlYzlubPlkowgPCBzZWthaWhlaXdhXCA7CivmsLTnvornvq4gPCBtaXp1eW91a2FuXCA7CivmipzmnKznmoQgPCBiYXBwb250ZWtpXCA7CivmlZnlrqQgPCBreW91c2hpdHN1XCA7CivljZjnmbrmqZ8gPCB0YW5wYXRzdWtpXCA7CivnhKHnkIbplqLmlbAgPCBtdXJpa2Fuc3V1XCA7Civou6LpgIHlhYggPCB0ZW5zb3VzYWtpXCA7CivlhaXkvJrogIUgPCBueXV1a2Fpc2hhXCA7CivkuLjmnKjoiLkgPCBtYXJ1a2lidW5lXCA7Civpn7PlkJDmnJfmnJcgPCBvbnRvcm91cm91XCA7CivluIzph4jmtrIgPCBraXNoYWt1ZWtpXCA7CivmooXpm6jliY3nt5ogPCBiYWl1emVuc2VuXCA7CivmnIjmm5zml6UgPCBnZXRzdXlvdWJpXCA7CivmnIDos4Pms5UgPCBzYWljaGluaG91XCA7Civpm7vmsJfmmYLoqIggPCBkZW5raWRva2VpXCA7CivpnanmlrDmtL4gPCBrYWt1c2hpbmhhXCA7Civntbbmu4UgPCB6ZXRzdW1ldHN1XCA7CivkuozljYHlm5vml6UgPCBuaWp1dXlva2thXCA7CivmiKbnl4XmrbsgPCBzZW5ieW91c2hpXCA7CivnlLfmgKfnmoQgPCBkYW5zZWl0ZWtpXCA7CivkubPphbjoj4wgPCBueXV1c2Fua2luXCA7CivliY3nhafnga8gPCB6ZW5zaG91dG91XCA7CivmgrLmrYzmhbfmhaggPCBoaWtha291Z2FpXCA7Civohbjmjbvou6IgPCBjaG91bmVudGVuXCA7CivopqrliIbmoKogPCBveWFidW5rYWJ1XCA7CivlrabnlKjlk4EgPCBnYWt1eW91aGluXCA7CivnibnmrormgKcgPCB0b2t1c2h1c2VpXCA7CivljZjoibLnlLsgPCB0YW5zaG9rdWdhXCA7Civku5Xnq4vliLggPCBzaGl0YXRla2VuXCA7CivkuojpmLLljLvlraYgPCB5b2JvdWlnYWt1XCA7CivlvZPmnJ/liKnnm4ogPCB0b3VraXJpZWtpXCA7CivopoHnn7MgPCBrYW5hbWVpc2hpXCA7Civnmq7kuIvohILogqogPCBoaWthc2hpYm91XCA7CivpmbDlvIHmhbYgPCBrYWdlYmVua2VpXCA7Civmt7fooYDlhZAgPCBrb25rZXRzdWppXCA7Civosqnlo7LlhYMgPCBoYW5iYWltb3RvXCA7CivluLjnv5Lniq8gPCBqb3VzaHV1aGFuXCA7Civpmbbno4HlmajlupcgPCB0b3VqaWtpdGVuXCA7CivmuIXmtrzliaQgPCBzZWlyeW91emFpXCA7CivmnIDlsI/lgKQgPCBzYWlzaG91Y2hpXCA7CivliIfnrKblo7LloLQgPCBraXBwdXVyaWJhXCA7Civoo7jkvZPkuLvnvqkgPCByYXRhaXNodWdpXCA7CivmsLTml4/ppKggPCBzdWl6b2t1a2FuXCA7CivlhbHniq/ogIUgPCBreW91aGFuc2hhXCA7Civlr7/lj7jpo68gPCBzdXNoaW1lc2hpXCA7CivmgKXou6Lmj5sgPCBreXV1dGVua2FuXCA7Civmi5vlvoXnirYgPCBzaG91dGFpam91XCA7CivmiZPmkrLlgrcgPCBkYWJva3VzaG91XCA7Civpn7PmqJnmloflrZcgPCBvbnB5b3Vtb2ppXCA7CivnibnlvoXliLggPCB0b2t1dGFpa2VuXCA7Civmr5Lkurrlj4IgPCBkb2t1bmluamluXCA7CivkuI3mraPopo/miKYgPCBmdXNlaWtpc2VuXCA7CivlpKnnq7rokbUgPCB0ZW5qaWt1YW9pXCA7CivlpbPkuJbluK8gPCBvbicnbmFqb3RhaVwgOwor5Lq66ZaT55qEIDwgbmluZ2VudGVraVwgOwor6Ki65pat5pu4IDwgc2hpbmRhbnNob1wgOwor6Jia6IuU5a2mIDwgc2VudGFpZ2FrdVwgOwor57W25a++5L2N572uIDwgemV0dGFpaWNoaVwgOwor5Y6f56i/5paZIDwgZ2Vua291cnlvdVwgOwor55uj552j5a6YIDwga2FudG9rdWthblwgOwor5ZWG5YuZ55yBIDwgc2hvdW11c2hvdVwgOwor5a6j5ZGK5pu4IDwgc2Vua29rdXNob1wgOwor5aSc5aSc5LitIDwgeW9ydXlvbmFrYVwgOwor6KOP6KmxIDwgdXJhYmFuYXNoaVwgOwor6YCa5L+h57C/IDwgdHN1dXNoaW5ib1wgOwor5aCG56mN5bKpIDwgdGFpc2VraWdhblwgOwor5oqR55WZ5omAIDwgeW9rdXJ5dXVqb1wgOwor5pKe5pyo5p2WIDwgc2h1bW9rdXp1ZVwgOwor6buE6YeR546HIDwgb3Vnb25yaXRzdVwgOwor5aCG56mN5bGkIDwgdGFpc2VraXNvdVwgOwor5ZCI5ZSx5ZujIDwgZ2Fzc2hvdWRhblwgOwor5aW95pW15omLIDwga291dGVraXNodVwgOwor57Ch5piT5L+d6Zm6IDwga2FuJydpaG9rZW5cIDsKK+eyieiWrCA8IGtvbmFndXN1cmlcIDsKK+aWh+eroOmhjCA8IGJ1bnNob3VkYWlcIDsKK+WvoemgreaUv+ayuyA8IGthdG91c2VpamlcIDsKK+mHkeeJqeWxiyA8IGthbmFtb25veWFcIDsKK+Wbo+iPiuelrSA8IGRhbmdpa3VzYWlcIDsKK+e3qeihnea2siA8IGthbnNob3Vla2lcIDsKK+WvhOWuv+iIjiA8IGtpc2h1a3VzaGFcIDsKK+e4ruWItyA8IHNodWt1c2F0c3VcIDsKK+a9nOacm+mPoSA8IHNlbmJvdWt5b3VcIDsKK+aWsOW3pue/vCA8IHNoaW5zYXlva3VcIDsKK+mBoeWPiueahCA8IHNva3l1dXRla2lcIDsKK+WQjOaDheW/gyA8IGRvdWpvdXNoaW5cIDsKK+S4i+eoveWPpCA8IHNoaXRhZ2Vpa29cIDsKK+ertuS6ieiAhSA8IGt5b3Vzb3VzaGFcIDsKK+WVhuW6l+ihlyA8IHNob3V0ZW5nYWlcIDsKK+eOieaJi+eusSA8IHRhbWF0ZWJha29cIDsKK+Wcn+ixmiA8IHRzdWNoaWJ1dGFcIDsKK+S4iuWNiui6qyA8IGpvdWhhbnNoaW5cIDsKK+S4i+awtOWHpueQhiA8IGdlc3Vpc2hvcmlcIDsKK+a4rOWumuazlSA8IHNva3V0ZWlob3VcIDsKK+mZjeWcp+WJpCA8IGtvdWF0c3V6YWlcIDsKK+aApeWCvuaWnCA8IGt5dXVrZWlzaGFcIDsKK+S4oeajsumhniA8IHJ5b3VzZWlydWlcIDsKK+acgOS4iue0miA8IHNhaWpvdWt5dXVcIDsKK+WBg+aciOWIgCA8IGVuZ2V0c3V0b3VcIDsKK+eci+itt+WNkiA8IGthbmdvc290c3VcIDsKK+iomOaGtue0oOWtkCA8IGtpb2t1c29zaGlcIDsKK+mfs+WjsOiomOWPtyA8IG9uc2Vpa2lnb3VcIDsKK+WSjOW5s+S8muitsCA8IHdhaGVpa2FpZ2lcIDsKK+e9q+e3muihqCA8IGtlaXNlbmh5b3VcIDsKK+egtOWjiuS4u+e+qSA8IGhha2Fpc2h1Z2lcIDsKK+mHneWcn+ernCA8IGhhcmltb2d1cmFcIDsKK+Wuh+WumeWfuuWcsCA8IHVjaHV1a2ljaGlcIDsKK+eBr+WPsOWuiCA8IHRvdWRhaW1vcmlcIDsKK+S7ruWFjeeKtiA8IGthcmltZW5qb3VcIDsKK+W8vuiWrOW6qyA8IGRhbicneWFrdWtvXCA7CivlkIjms5XnmoQgPCBnb3Vob3V0ZWtpXCA7CivkuI3lj6/nn6Xoq5YgPCBmdWthY2hpcm9uXCA7Civoh6rooZvmiYvmrrUgPCBqaWVpc2h1ZGFuXCA7CivmjKvmipjmhJ8gPCB6YXNldHN1a2FuXCA7CivlsI/lo7LlgKTmrrUgPCBrb3VyaW5lZGFuXCA7CivmlZHlh7ogPCBreXV1c2h1dHN1XCA7Civlo4HlnJ8gPCBrYWJldHN1Y2hpXCA7CivotaTmlrDogZ4gPCBha2FzaGluYnVuXCA7CivohqDnnYDoqp4gPCBrb3VjaGFrdWdvXCA7CivntYLmraLlvaIgPCBzaHV1c2hpa2VpXCA7Civlh7rmuK/oiLkgPCBzaHVra291c2VuXCA7CivovLjlhaXpoY0gPCB5dW55dXVnYWt1XCA7CivnlLLmrrvpoZ4gPCBrb3VrYWt1cnVpXCA7CivluILloLTopo/mqKEgPCBzaGlqb3VraWJvXCA7CivorbDlk6Hnq4vms5UgPCBnaWlucmlwcG91XCA7Civpmpzlo4HnlLsgPCBzaG91aGVraWdhXCA7CivmurbmjqXmqZ8gPCB5b3VzZXRzdWtpXCA7CivkuZfntYTlk6EgPCBub3Jpa3VtaWluXCA7CivohY7oh5Pnl4UgPCBqaW56b3VieW91XCA7Civlj6/mkKzlvI8gPCBrYWhhbnNoaWtpXCA7CivlgaXnrYblrrYgPCBrZW5waXRzdWthXCA7CivmraPkuK3nt5ogPCBzZWljaHV1c2VuXCA7CivljYPlubTplpMgPCBzZW4nJ25lbmthblwgOwor5qOS56OB55+zIDwgYm91amlzaGFrdVwgOwor6Kaz6LOe6a2aIDwga2Fuc2hvdWd5b1wgOwor56We5a2m5qChIDwgc2hpbmdha2tvdVwgOwor5L2c5qWt5pyNIDwgc2FneW91ZnVrdVwgOwor55m6552A5omAIDwgaGF0Y2hha3Vqb1wgOwor6Kaq6L+R5oSfIDwgc2hpbmtpbmthblwgOwor5Lmx5rOl5rWBIDwgcmFuZGVpcnl1dVwgOwor5b2T55u05ZOhIDwgdG91Y2hva3VpblwgOwor5a2m57Sa5aeU5ZOhIDwgZ2Fra3l1dWlpblwgOwor57Wx6KiI55qEIDwgdG91a2VpdGVraVwgOwor57WQ5pyrIDwga2V0c3VtYXRzdVwgOwor6Iq46KGT5a62IDwgZ2VpanV0c3VrYVwgOwor546E6Zai5YWIIDwgZ2Vua2Fuc2FraVwgOwor6Kaq5p+xIDwgb3lhYmFzaGlyYVwgOwor5rex5rW36a2aIDwgc2hpbmthaWd5b1wgOwor5ZCM5b+X55qEIDwgZG91c2hpdGVraVwgOwor57Kb57KbIDwgc2h1a3VzaHVrdVwgOwor5L6h5Y2D6YeRIDwgYXRhaXNlbmtpblwgOwor6K2w5Lya5Li7576pIDwgZ2lrYWlzaHVnaVwgOwor5Lmd5Zue5oimIDwga3l1dWthaXNlblwgOwor5Z+656SO56eR5a2mIDwga2lzb2thZ2FrdVwgOwor5Zu96KibIDwga3VuaW5hbWFyaVwgOwor5o2c5p+75pys6YOoIDwgc291c2Fob25idVwgOwor5Y2K5rC45LmFIDwgaGFuJydlaWt5dXVcIDsKK+mbkeW9ueWppiA8IHphdHN1ZWtpZnVcIDsKK+WGt+WHjealrSA8IHJlaXRvdWd5b3VcIDsKK+e2v+WfgyA8IHdhdGFib2tvcmlcIDsKK+Wuh+WumeaOouafuyA8IHVjaHV1dGFuc2FcIDsKK+WEkuaVmeeahCA8IGp1a3lvdXRla2lcIDsKK+imquaXpSA8IHNoaW4nJ25pY2hpXCA7CivphZsgPCBzYWtlbm9tb3RvXCA7Civmj5rpmbjoiaYgPCB5b3VyaWt1a2FuXCA7Civph43orLnmhY4gPCBqdXVraW5zaGluXCA7Civlh43osYbohZAgPCBzaGltaWRvdWZ1XCA7CivmsLjosLflnJIgPCBuYWdhdGFuaWVuXCA7Civkuozmp73lvI8gPCBuaXNvdXNoaWtpXCA7Civnm7jkuZfnqY0gPCBzb3Vqb3VzZWtpXCA7Civoj4zpoZ7lraYgPCBraW5ydWlnYWt1XCA7CivmlrDliIrmm7ggPCBzaGlua2Fuc2hvXCA7CivpnZLlsJHlubQgPCBzZWlzaG91bmVuXCA7CivmjqjpgLLogIUgPCBzdWlzaGluc2hhXCA7CivngbznhrEgPCBzaGFrdW5ldHN1XCA7CivliJfluK3ogIUgPCByZXNzZWtpc2hhXCA7Civlm73nlKPlk4EgPCBrb2t1c2FuaGluXCA7Civmh5Dml6foq4cgPCBrYWlreXV1ZGFuXCA7Civmnq/ojYnnhrEgPCBrb3NvdW5ldHN1XCA7Civpm4fkuLsgPCB5YXRvaW51c2hpXCA7CivkuK3nlLLmnb8gPCBjaHV1a2FucGFuXCA7Civln4vkvI/mra8gPCBtYWlmdWt1c2hpXCA7CivlhoXnt5LkuosgPCBuYWlzaG9nb3RvXCA7CivkuIDnrYnljZIgPCBpdHRvdXNvdHN1XCA7CivkupzpurvnuZTniakgPCBhbWFvcmltb25vXCA7CivnpZ7ku6PmnYkgPCBqaW5kYWlzdWdpXCA7CivlgKTltanmoKogPCBuZWdhc2FrYWJ1XCA7CivmlL/msrvlipsgPCBzZWlqaXJ5b2t1XCA7CivnrZTnlLPmm7ggPCB0b3VzaGluc2hvXCA7CivpoIbluo/kuI3lkIwgPCBqdW5qb2Z1ZG91XCA7CivntpnlqJggPCBtYW1hbXVzdW1lXCA7CivkubHlv4PogIUgPCByYW5zaGluc2hhXCA7CivntYzmuIjmj7TliqkgPCBrZWl6YWllbmpvXCA7CivnhLzlpLEgPCBzaG91c2hpdHN1XCA7CivkurrplpPmpa0gPCBuaW5nZW53YXphXCA7CivntK/nrpfmuKnluqYgPCBydWlzYW5vbmRvXCA7CivlhbHorIDogIUgPCBreW91Ym91c2hhXCA7CivmnaXos5PluK0gPCByYWloaW5zZWtpXCA7CivoiJ7ouI/mm7IgPCBidXRvdWt5b2t1XCA7Civkv67ooYzogIUgPCBzaHVneW91c2hhXCA7Civls7bmoLnnnIwgPCBzaGltYW5la2VuXCA7CivlvLfnoazoq5YgPCBreW91a291cm9uXCA7Civms5Xmsrvlm70gPCBob3VjaGlrb2t1XCA7CivkuI3lvpfnrZYgPCBmdXRva3VzYWt1XCA7CivoqLPlh7ogPCB5YWt1c2h1dHN1XCA7Civng4jml6UgPCByZXRzdWppdHN1XCA7CivlnKjnsbPkuK0gPCB6YWliZWljaHV1XCA7CivljL/lkI3mgKcgPCB0b2t1bWVpc2VpXCA7CivnmbvlsbHpnbQgPCB0b3phbmd1dHN1XCA7CivmtarmvKvkuLvnvqkgPCByb21hbnNodWdpXCA7CivluqfmlbfniaIgPCB6YXNoaWtpcm91XCA7CivnpZ7moLzljJYgPCBzaGlua2FrdWthXCA7CivotaTlpJbnt5ogPCBzZWtpZ2Fpc2VuXCA7CivolqznlKjphZIgPCB5YWt1eW91c2h1XCA7CivntZDmoLjoj4wgPCBrZWtrYWt1a2luXCA7Civnt6Dku5ggPCBzaGltZXRzdWtlXCA7CivojYnlsaXomasgPCB6b3VyaW11c2hpXCA7Civmraboo4Xpg73luIIgPCBidXNvdXRvc2hpXCA7CivlpKfooYbmgKcgPCB0YWlzaHV1c2VpXCA7Civlr4Tlrr/nlJ8gPCBraXNodWt1c2VpXCA7CivmmIfmsZ7msLQgPCBzaG91a291c3VpXCA7CivmrabogIXmhYQgPCBtdXNoYWJ1cnVpXCA7Civmlofnq6Doq5YgPCBidW5zaG91cm9uXCA7Civnibnpgbjlk4EgPCB0b2t1c2VuaGluXCA7Civov5HopqrogIUgPCBraW5zaGluc2hhXCA7CivopIfmlbDlvaIgPCBmdWt1c3V1a2VpXCA7Civlub3pgoPlooMgPCB5dXVzdWlreW91XCA7Civlho3mipXnpaggPCBzYWl0b3VoeW91XCA7CivkuI3mtLvli5UgPCBmdWthdHN1ZG91XCA7Civlhajlr67liLYgPCB6ZW5yeW91c2VpXCA7CivlubPlkozlm73lrrYgPCBoZWl3YWtva2thXCA7Civov73mgrzkvJogPCB0c3VpdG91a2FpXCA7CivpgZPot6/lnLDlm7MgPCBkb3Vyb2NoaXp1XCA7CivnrZLps6UgPCB0c3V0c3Vkb3JpXCA7Civnmb3lhbXmiKYgPCBoYWt1aGVpc2VuXCA7Civoq4vmsYLmqKkgPCBzZWlreXV1a2VuXCA7Civlv6DpnIrloZQgPCBjaHV1cmVpdG91XCA7CivpmpnplpPpoqggPCBzdWtpbWFrYXplXCA7CivlhbHmnInlnLAgPCBreW91eXV1Y2hpXCA7CivniYfngrrmm78gPCBrYXRhZ2F3YXNlXCA7Civnt6nooZ3lvIEgPCBrYW5zaG91YmVuXCA7Civlrr/moLnojYkgPCBzaHVra29uc291XCA7CivlpKfnq4vogIUgPCBvb2RhdGVtb25vXCA7Civms7DlsbHmnKggPCB0YWlzYW5ib2t1XCA7Civns7jnirbomasgPCBzaGlqb3VjaHV1XCA7CivntbbnuIHkvZMgPCB6ZXRzdWVudGFpXCA7Civph4zoqIDokYkgPCBzYXRva290b2JhXCA7CivlvqHmnLHljbDoiLkgPCBnb3NodWluc2VuXCA7Civos7zoqq3ogIUgPCBrb3Vkb2t1c2hhXCA7Civlo7Losrfpq5ggPCBiYWliYWlkYWthXCA7CivmjLrpgLLpmoogPCB0ZWlzaGludGFpXCA7CivoqZQgPCBtaWtvdG9ub3JpXCA7CivohLHmsLTnl4cgPCBkYXNzdWlzaG91XCA7Civli6fpgLLluLMgPCBrYW5qaW5jaG91XCA7Civmi6HlvLXljJYgPCBrYWt1Y2hvdWthXCA7CivmrrrkurrprLwgPCBzYXRzdWppbmtpXCA7CivmtYHli5XmgKcgPCByeXV1ZG91c2VpXCA7Civlm5vph43llLEgPCBzaGlqdXVzaG91XCA7CivmlZnogrLogIUgPCBreW91aWt1c2hhXCA7Civlj43lr77lgbQgPCBoYW50YWlnYXdhXCA7CivnkLTkuIDlvLUgPCBrb3RvaXRjaG91XCA7CivlhoXlnKjnmoQgPCBuYWl6YWl0ZWtpXCA7CivkuInmrrXot7MgPCBzYW5kYW50b2JpXCA7Civpo5vouo3nmoQgPCBoaXlha3V0ZWtpXCA7CivmiYvplbfnjL8gPCB0ZW5hZ2F6YXJ1XCA7CivogIHnnLzpj6EgPCByb3VnYW5reW91XCA7Civku67lh6bliIYgPCBrYXJpc2hvYnVuXCA7CivooovogLMgPCBmdWt1cm9taW1pXCA7CivlhajkurrmoLwgPCB6ZW5qaW5rYWt1XCA7CivliIbms4zniakgPCBidW5waWJ1dHN1XCA7Civoq4vmsYLmm7ggPCBzZWlreXV1c2hvXCA7CivntZDlrp8gPCBrZXRzdWppdHN1XCA7CivkuI3msbrmlq0gPCBmdWtldHN1ZGFuXCA7CivlhYjlhYjpgLEgPCBzZW5zZW5zaHV1XCA7Civoh7Tlkb3nmoQgPCBjaGltZWl0ZWtpXCA7CivkubPnn7Poi7EgPCBueXV1c2VraWVpXCA7CivosqHmlL/lraYgPCB6YWlzZWlnYWt1XCA7Civntprlh7ogPCB6b2t1c2h1dHN1XCA7CivlpJzpg47oh6rlpKcgPCB5YXJvdWppZGFpXCA7Civpo7Lpo5/lupcgPCBpbnNob2t1dGVuXCA7Civpg6jliIblkKblrpogPCBidWJ1bmhpdGVpXCA7CivntJnoo73lk4EgPCBrYW1pc2VpaGluXCA7CivonZ8gPCBoYXJpbmV6dW1pXCA7CivorJvlkozkvJrorbAgPCBrb3V3YWthaWdpXCA7Civnt6jntYTmqZ/morAgPCBoZW5zb2tpa2FpXCA7Civms5XlvovmoYggPCBob3VyaXRzdWFuXCA7CivljYrnm7Lnl4cgPCBoYW5tb3VzaG91XCA7CivnoZ3phbjpioAgPCBzaG91c2FuZ2luXCA7CivljLvnmYLlmajmorAgPCBpcnlvdWtpa2FpXCA7CivpmLLnt4/nnIEgPCBib3Vzb3VzaG91XCA7CivmraPopo/liIbluIMgPCBzZWlraWJ1bnB1XCA7CivpgIbmr5TkvosgPCBneWFrdWhpcmVpXCA7CivmipXmm7jnrrEgPCB0b3VzaG9iYWtvXCA7CivkvJrlk6HlkI3nsL8gPCBrYWlpbm1laWJvXCA7Civmv4PntKsgPCBrb211cmFzYWtpXCA7Civln47kuIvnlLogPCBqb3VrYW1hY2hpXCA7CivnibnliKXlp5QgPCB0b2t1YmV0c3VpXCA7CivmnZHoip3lsYUgPCBtdXJhc2hpYmFpXCA7Civntpnmga/lrZAgPCBtYW1hbXVzdWtvXCA7Civnmbrkv6Hpn7MgPCBoYXNzaGluJydvblwgOwor5aSp5aSJ5Zyw55WwIDwgdGVucGVuY2hpaVwgOwor5pyJ5Y+y5Lul5p2lIDwgeXV1c2hpaXJhaVwgOwor5Zub5q2755CDIDwgc2hpc2hpa3l1dVwgOwor54yu6YeR566xIDwga2Vua2luYmFrb1wgOwor5oim55Wl5a62IDwgc2Vucnlha3VrYVwgOwor5YWs6IG05LyaIDwga291Y2hvdWthaVwgOwor5rqd6bygIDwgZG9idW5lenVtaVwgOwor6JCZIDwga3V0YWJpcmVydVwgOwor6KSH5pWw5ZueIDwgZnVrdXN1dWthaVwgOwor5Lya6KiI5a2mIDwga2Fpa2VpZ2FrdVwgOwor57Ch55Wl5YyWIDwga2Fucnlha3VrYVwgOwor57Wm6Zu757eaIDwga3l1dWRlbnNlblwgOwor5ZCJ56Wl5aSpIDwga2lzc2hvdXRlblwgOwor5L+d6K236Zai56iOIDwgaG9nb2thbnplaVwgOwor5pyq5biw6YKE6ICFIDwgbWlraWthbnNoYVwgOwor5b6h5b2x55+zIDwgbWlrYWdlaXNoaVwgOwor5YaF5Zu955SjIDwgbmFpa29rdXNhblwgOwor5LiJ5pel5Z2K5Li7IDwgbWlra2Fib3V6dVwgOwor6Zuq5pyI6IqxIDwgc2V0c3VnZWtrYVwgOwor56eB5pu4566xIDwgc2hpc2hvYmFrb1wgOwor55u05pig6aSoIDwgY2hva3VlaWthblwgOwor55eF55CG5a2mIDwgYnlvdXJpZ2FrdVwgOwor5b6p5Yi754mIIDwgZnVra29rdWJhblwgOwor6YCA5buD55qEIDwgdGFpaGFpdGVraVwgOwor56K65Zu65LiN5YuVIDwga2Fra29mdWRvdVwgOwor5Lq66ZaT5a2mIDwgbmluZ2VuZ2FrdVwgOwor5LiL552A6aGeIDwgc2hpdGFnaXJ1aVwgOwor5ZSQ5aSJ5pyoIDwgdG91aGVuYm9rdVwgOwor57ea5pKu5b2xIDwgc2Vuc2F0c3VlaVwgOwor5paH5oi/5YW35bGLIDwgYnVuYm91Z3V5YVwgOwor5paw55Sf6Z2iIDwgc2hpbnNlaW1lblwgOwor5bq354WV5a2X5YW4IDwga291a2lqaXRlblwgOwor6KGA6ISIIDwga2V0c3VteWFrdVwgOwor5pWw5pel5b6MIDwgc3V1aml0c3Vnb1wgOwor5pyq5p2l5rC45YqrIDwgbWlyYWllaWdvdVwgOwor6LaF5ZCI6YeRIDwgY2hvdWdvdWtpblwgOwor5aSa5Zu957GNIDwgdGFrb2t1c2VraVwgOwor56mN566X5rOVIDwgc2VraXNhbmhvdVwgOwor54Sh55CG566X5q61IDwgbXVyaXNhbmRhblwgOwor5aSW54K65rOVIDwgZ2FpdGFtZWhvdVwgOwor5Ye65ZOB6ICFIDwgc2h1cHBpbnNoYVwgOwor6Kaa6YaS5YmkIDwga2FrdXNlaXphaVwgOwor6auY5bGx6J22IDwga291emFuY2hvdVwgOwor6L+R57iB5bGeIDwga2luJydlbnpva3VcIDsKK+S4iumBlOmDqCA8IGthbmRhY2hpbWVcIDsKK+WPr+mNm+mJhCA8IGthdGFudGV0c3VcIDsKK+W/g+eQhueahCA8IHNoaW5yaXRla2lcIDsKK+S5l+aPm+WIuCA8IG5vcmlrYWVrZW5cIDsKK+aVmeiCsueVjCA8IGt5b3Vpa3VrYWlcIDsKK+mZsOaltee3miA8IGlua3lva3VzZW5cIDsKK+WNiuiJh+i6qyA8IGhhbnRlaXNoaW5cIDsKK+imquWFhOW8nyA8IG95YWt5b3VkYWlcIDsKK+aXhemkqOalrSA8IHJ5b2thbmd5b3VcIDsKK+Wtpuacn+acqyA8IGdha2tpbWF0c3VcIDsKK+iZnue+juS6uuiNiSA8IGd1YmlqaW5zb3VcIDsKK+WIsOadpeeJqSA8IHRvdXJhaW1vbm9cIDsKK+ixoeeJmee0sOW3pSA8IHpvdWdlemFpa3VcIDsKK+ayluS7suS7lSA8IG9raW5ha2FzaGlcIDsKK+WkluWbveijvSA8IGdhaWtva3VzZWlcIDsKK+e1guebpOaIpiA8IHNodXViYW5zZW5cIDsKK+mAhuWFiee3miA8IGd5YWtrb3VzZW5cIDsKK+ixoeW+tOa0viA8IHNob3VjaG91aGFcIDsKK+WLp+mAsuWFgyA8IGthbmppbm1vdG9cIDsKK+mtmumhnuWtpiA8IGd5b3J1aWdha3VcIDsKK+mOjOm8rCA8IGthbWFpdGFjaGlcIDsKK+e4nueRqueRmSA8IHNoaW1hbWVub3VcIDsKK+ecn+epuueuoSA8IHNoaW5rdXVrYW5cIDsKK+iIjuWIqeWIpSA8IHNoYXJpYmV0c3VcIDsKK+S6rOmYquelniA8IGtlaWhhbnNoaW5cIDsKK+aFo+e/kuazlSA8IGthbnNodXVob3VcIDsKK+a7heiMtua7heiMtiA8IG1lY2hhbWVjaGFcIDsKK+mgremZgOiiiyA8IHp1ZGFidWt1cm9cIDsKK+mZsOalteeuoSA8IGlua3lva3VrYW5cIDsKK+a3t+WSjOeJqSA8IGtvbndhYnV0c3VcIDsKK+WIgOmNm+WGtiA8IGthdGFuYWthamlcIDsKK+a9nOS8j+aApyA8IHNlbnB1a3VzZWlcIDsKK+miqOi7iuWwj+WxiyA8IGZ1dXNoYWdveWFcIDsKK+aLm+W+heWIuCA8IHNob3V0YWlrZW5cIDsKK+WtkOS+m+mDqOWxiyA8IGtvZG9tb2JleWFcIDsKK+axguaEm+iqh+ekuiA8IGt5dXVhaWtvamlcIDsKK+WPl+mbo+evgCA8IGp1bmFuc2V0c3VcIDsKK+a4rOWumuWApCA8IHNva3V0ZWljaGlcIDsKK+WMlueyp+e0mSA8IGtlc2hvdWdhbWlcIDsKK+Wkp+aGsueroCA8IGRhaWtlbnNob3VcIDsKK+eOi+aUv+W+qeWPpCA8IG91c2VpZnVra29cIDsKK+WNmOiJsuWFiSA8IHRhbnNob2trb3VcIDsKK+iii+eJqSA8IGZ1a3Vyb21vbm9cIDsKK+eUsuauu+e2sSA8IGtvdWtha3Vrb3VcIDsKK+mbhuWQiOS9kyA8IHNodXVnb3V0YWlcIDsKK+S4gOS6uumDqOWxiyA8IGhpdG9yaWJleWFcIDsKK+eri+W+gOeUnyA8IHRhY2hpb3Vqb3VcIDsKK+erlSA8IGRlc2hpcml0dG9cIDsKK+S4jeiyt+mBi+WLlSA8IGZ1YmFpdW5kb3VcIDsKK+WtkOWurumguCA8IHNoaWt5dXVrZWlcIDsKK+WQneWXh+WQneWXhyA8IGtlY2hpa2VjaGlcIDsKK+e1jOmok+eahCA8IGtlaWtlbnRla2lcIDsKK+WMlueyp+eusSA8IGtlc2hvdWJha29cIDsKK+S6jOeVquaYnyA8IG5pYmFuYm9zaGlcIDsKK+ilv+WPoyA8IG5pc2hpZ3VjaGlcIDsKK+azleW+i+WutiA8IGhvdXJpdHN1a2FcIDsKK+Wumuacn+mgkOmHkSA8IHRlaWtpeW9raW5cIDsKK+S4gOWumuacn+mWkyA8IGl0dGVpa2lrYW5cIDsKK+a0l+a/r+advyA8IHNlbnRha3VpdGFcIDsKK+a7keayouWJpCA8IGthdHRha3V6YWlcIDsKK+WvvuensOaApyA8IHRhaXNob3VzZWlcIDsKK+WwkeW5tOazlSA8IHNob3VuZW5ob3VcIDsKK+W+s+W3neWutiA8IHRva3VnYXdha2VcIDsKK+WcsOS4i+mBi+WLlSA8IGNoaWthdW5kb3VcIDsKK+a1geWLleS9kyA8IHJ5dXVkb3V0YWlcIDsKK+e1guWIiuWPtyA8IHNodXVrYW5nb3VcIDsKK+ebo+S/ruiAhSA8IGthbnNodXVzaGFcIDsKK+WFsee3qOiAhSA8IGt5b3VoZW5zaGFcIDsKK+aHkOeWkeS4u+e+qSA8IGthaWdpc2h1Z2lcIDsKK+iejemAmueEoeeijSA8IHl1dXp1dW11Z2VcIDsKK+S/neWuieimgeWToSA8IGhvYW4nJ3lvdWluXCA7CivntbHoqIjlraYgPCB0b3VrZWlnYWt1XCA7CivovKrpg63nt5ogPCByaW5rYWt1c2VuXCA7Civou43oiabps6UgPCBndW5rYW5kb3JpXCA7CivllYboiLnpmoogPCBzaG91c2VudGFpXCA7CivotoXmuoDlk6EgPCBjaG91bWFuJydpblwgOwor54mH5omL6Y2LIDwga2F0YXRlbmFiZVwgOwor6IKh6Zai56+AIDwga29rYW5zZXRzdVwgOwor56+A56+AIDwgZnVzaGlidXNoaVwgOwor6Kq/5ZGz5paZIDwgY2hvdW1pcnlvdVwgOwor5Y+I5bCP5L2cIDwgbWF0YWtvc2FrdVwgOwor562S6KKWIDwgdHN1dHN1c29kZVwgOwor5LiN5q2j55u0IDwgZnVzaG91amlraVwgOwor5rSq56mN5bGkIDwga291c2VraXNvdVwgOwor5qSc5Zyn5ZmoIDwga2VuJydhdHN1a2lcIDsKK+S4u+aIkeS4u+e+qSA8IHNodWdhc2h1Z2lcIDsKK+afk+eJqeWxiyA8IHNvbWVtb25veWFcIDsKK+mFjeiGs+S6uiA8IGhhaXplbicnbmluXCA7CivlooPnlYznt5ogPCBreW91a2Fpc2VuXCA7CivpnZnniannlLsgPCBzZWlidXRzdWdhXCA7CivmlZnogrLms5UgPCBreW91aWt1aG91XCA7Civlj47pm4bprZQgPCBzaHV1c2h1dW1hXCA7Civpm6LogbfogIUgPCByaXNob2t1c2hhXCA7CivniafluKvppKggPCBib2t1c2hpa2FuXCA7CivljaDpoJjou40gPCBzZW5yeW91Z3VuXCA7Civns7jljbAgPCBpdG9qaXJ1c2hpXCA7CivkuK3nlJ/ku6MgPCBjaHV1c2VpZGFpXCA7CivngrrkurogPCBoaXRvdG9uYXJpXCA7CivkuIvljYrmnJ8gPCBzaGltb2hhbmtpXCA7CivmlZnkvJrms5UgPCBreW91a2FpaG91XCA7Civljp/msLTniIYgPCBnZW5zdWliYWt1XCA7CivnlIUgPCBzZW5jaGlndXJhXCA7Civnk7ggPCBoZWt1dG9ndXJhXCA7Civngq3kv7UgPCBzdW1pZGF3YXJhXCA7Civnk7EgPCBtaXJpZ3VyYW11XCA7Civnk6kgPCBraXJvZ3VyYW11XCA7Civnk6cgPCBkZWthZ3VyYW11XCA7CivliLrnuY3ns7ggPCBzaGlzaHV1aXRvXCA7CivkuI3kvZzngrrniq8gPCBmdXNha3VpaGFuXCA7CivmkK3kuZfmqYsgPCB0b3Vqb3VreW91XCA7Civnn7PpubjnrrEgPCBzZWtrZW5iYWtvXCA7Civlm57ou6Lou7ggPCBrYWl0ZW5qaWt1XCA7CivliLvkuIDliLsgPCBrb2t1aWtrb2t1XCA7CivlibXpgKDnmoQgPCBzb3V6b3V0ZWtpXCA7Civnl7TlkYbnl4cgPCBjaGlob3VzaG91XCA7CivnsbPmiYAgPCBrb21lZG9rb3JvXCA7CivmjpLmsLTph48gPCBoYWlzdWlyeW91XCA7CivlkITmg4XloLEgPCBrYWt1am91aG91XCA7CivoiJfoo4XnhYnnk6YgPCBob3NvdXJlbmdhXCA7CivmipXlvbHlm7Pms5UgPCB0b3VlaXp1aG91XCA7CivmoLjmlofms5UgPCBrYWt1YnVucG91XCA7Civlo7LkuIrpq5ggPCB1cmlhZ2VkYWthXCA7Civmt7HmiJDlsqkgPCBzaGluc2VpZ2FuXCA7Civog7jkuInlr7ggPCBtdW5lc2FuenVuXCA7CivlvpfmhI/lrqIgPCB0b2t1aWt5YWt1XCA7CivlvrTlhbXliLYgPCBjaG91aGVpc2VpXCA7Civnq6/ov5EgPCBoYXNoaWRqaWthXCA7CivpjpbpjowgPCBrdXNhcmlnYW1hXCA7CivmgKfmnKzog70gPCBzZWlob24nJ25vdVwgOwor5ruF6KOCIDwgbWV0c3VyZXRzdVwgOwor5LyR6Ki65pelIDwga3l1dXNoaW5iaVwgOwor5Z+36YeR6Yu8IDwgc2hpa2tvbmdvdVwgOwor57eP54q26Iqx5bqPIDwgc291am91a2Fqb1wgOwor56uc55qu5be7IDwgcnl1dWhpbWFraVwgOwor5Zue5biw54axIDwga2Fpa2luZXRzdVwgOwor56Wd6LOA5LyaIDwgc2h1a3VnYWthaVwgOwor55Sf5rS76LK7IDwgc2Vpa2F0c3VoaVwgOwor5rOV5YuZ5bGAIDwgaG91bXVreW9rdVwgOwor5Lit5a2m5qChIDwgY2h1dWdha2tvdVwgOwor5pyI6KaL6I2JIDwgdHN1a2ltaXNvdVwgOwor5riF5rWE54Sh5Z6iIDwgc2Vpam91bXVrdVwgOwor6YCa5L+X5YyWIDwgdHN1dXpva3VrYVwgOwor55u05Lqk5oCnIDwgY2hva2tvdXNlaVwgOwor56iy54ax55eFIDwgaW1vY2hpYnlvdVwgOwor5LiJ6Z2i6KiY5LqLIDwgc2FubWVua2lqaVwgOwor6auY6LiP55qEIDwga291dG91dGVraVwgOwor57Wm5paZ5pelIDwga3l1dXJ5b3ViaVwgOwor5omN5rCX57im5qiqIDwgc2Fpa2lqdXVvdVwgOwor5LiH5bm06Z2SIDwgbWFuJyduZW5zZWlcIDsKK+Wwj+WJjeaPkCA8IHNob3V6ZW50ZWlcIDsKK+WFreS4ieWItiA8IHJva3VzYW5zZWlcIDsKK+mAoOael+WtpiA8IHpvdXJpbmdha3VcIDsKK+acrOS9jeiyqOW5oyA8IGhvbicnaWthaGVpXCA7Civlhajosqzku7sgPCB6ZW5zZWtpbmluXCA7Civppqzpub/kuIHlr6cgPCBiYWthdGVpbmVpXCA7CivnhafmmI7lvL4gPCBzaG91bWVpZGFuXCA7CivmhJvlm73lv4MgPCBhaWtva3VzaGluXCA7Civmva7nhZkgPCBzaGlva2VtdXJpXCA7Civnn7Ppubjnmr8gPCBzZWtrZW56YXJhXCA7CivkuojlrproqqwgPCB5b3RlaXNldHN1XCA7CivnrYboiIwgPCBoaXRzdXpldHN1XCA7Civml6XokaHovp7mm7ggPCBuaXBwb2ppc2hvXCA7CivohLPnoazloZ4gPCBub3Vrb3Vzb2t1XCA7Civnt4/lpKflsIYgPCBzb3VkYWlzaG91XCA7Civlp4vmnKvlsYsgPCBzaGltYXRzdXlhXCA7Civlm73mnInmnpcgPCBrb2t1eXV1cmluXCA7Civolqzlrabpg6ggPCB5YWt1Z2FrdWJ1XCA7CivmibnliKTlipsgPCBoaWhhbnJ5b2t1XCA7CivnrYnouqvlpKcgPCB0b3VzaGluZGFpXCA7CivkvY3nm7jnqbrplpMgPCBpc291a3V1a2FuXCA7CivmtbfkuovooZvmmJ8gPCBrYWlqaWVpc2VpXCA7CivnqbrmsJfmqZ/morAgPCBrdXVraWtpa2FpXCA7Civnt4/mlLvmkoMgPCBzb3Vrb3VnZWtpXCA7Civpq5jlsbHnl4UgPCBrb3V6YW5ieW91XCA7CivkupTmnIjnpa0gPCBnb2dhdHN1c2FpXCA7CivlhbHlkIzkupXmiLggPCBreW91ZG91aWRvXCA7Civou43mpb3pmoogPCBndW5nYWt1dGFpXCA7CivkuInph43llLEgPCBzYW5qdXVzaG91XCA7CivljZfkuqzosYYgPCBuYW5raW5tYW1lXCA7Civmm7LppqzluKsgPCBreW9rdWJhc2hpXCA7Civlia/lj7jku6QgPCBmdWt1c2hpcmVpXCA7CivpjKbpr4kgPCBuaXNoaWtpZ29pXCA7CivmmLzml6XkuK0gPCBoaXJ1aGluYWthXCA7CivlkIjnkIbkuLvnvqkgPCBnb3VyaXNodWdpXCA7CivluLjorZjlrrYgPCBqb3VzaGlraWthXCA7Civmu5HohLEgPCBrYXRzdWRhdHN1XCA7CivlpKnmtKXlvqHlp4kgPCBhbWF0c3VtaWtvXCA7CivlpKnmiYvlj6ToiJ4gPCB0ZW50ZWtvbWFpXCA7CivoqIDokYnlsLsgPCBrb3RvYmFqaXJpXCA7CivogrrmtbjmvaQgPCBoYWlzaGluanVuXCA7CivlpJzlhYnmmYLoqIggPCB5YWtvdWRva2VpXCA7CivogJXkvZzogIUgPCBrb3VzYWt1c2hhXCA7CivlkIzlv4PlhoYgPCBkb3VzaGluJydlblwgOwor6Ie05q276YePIDwgY2hpc2hpcnlvdVwgOwor5byB6Ki86KuWIDwgYmVuc2hvdXJvblwgOwor5paw55m75aC0IDwgc2hpbnRvdWpvdVwgOwor6Ieq6Lui6LuK5bGLIDwgaml0ZW5zaGF5YVwgOwor5by35Yqb57KJIDwga3lvdXJpa2lrb1wgOwor5LqI5YKZ5a6kIDwgeW9iaXNoaXRzdVwgOwor5bqX6aCt5qCqIDwgdGVudG91a2FidVwgOwor55m65bCE6JasIDwgaGFzc2hheWFrdVwgOwor6Ieq5a6255So6LuKIDwgamlrYXlvdXNoYVwgOwor5Y2Y5L2N5Yi25bqmIDwgdGFuJydpc2VpZG9cIDsKK+WMlueyp+awtCA8IGtlc2hvdW1penVcIDsKK+WNgemAsuazlSA8IGppc3NoaW5ob3VcIDsKK+aWh+Wtl+aDheWgsSA8IG1vamlqb3Vob3VcIDsKK+aWh+ethuWutiA8IGJ1bnBpdHN1a2FcIDsKK+W+k+mHj+eojiA8IGp1dXJ5b3V6ZWlcIDsKK+eTpuWxi+aguSA8IGthd2FyYXlhbmVcIDsKK+mWouS/guiqvyA8IGthbmtlaWNob3VcIDsKK+WUr+W/g+irliA8IHl1aXNoaW5yb25cIDsKK+WKseaMr+euoSA8IHJlaXNoaW5rYW5cIDsKK+WFqOaXpeepuiA8IHplbicnbmlra3V1XCA7CivkuozmnprohbAgPCBuaW1haWdvc2hpXCA7CivmtYHliJHlnLAgPCByeXV1a2VpY2hpXCA7CivmtKrnqY3kuJYgPCBrb3VzZWtpc2VpXCA7CivpnIfngb3lnLAgPCBzaGluc2FpY2hpXCA7CivnrYbnrZIgPCBmdWRlZHp1dHN1XCA7Civopo/liLbop6PpmaQgPCBraXNlaWthaWpvXCA7Civmj4/lh7ogPCBieW91c2h1dHN1XCA7CivnnLzou5/oho8gPCBnYW4nJ25hbmtvdVwgOwor5rC05pm25L2TIDwgc3Vpc2hvdXRhaVwgOwor54K55ruF5ZmoIDwgdGVubWV0c3VraVwgOwor5YWE5byf5YiGIDwga3lvdWRhaWJ1blwgOwor6YeR6ZaA5qmLIDwga2lubW9ua3lvdVwgOwor5pmv5Yud5ZywIDwga2Vpc2hvdWNoaVwgOwor5YaF5o6l5YaGIDwgbmFpc2V0c3VlblwgOwor55Sf5rS76IumIDwgc2Vpa2F0c3VrdVwgOwor5p2x54Wn5a6uIDwgdG91c2hvdWd1dVwgOwor5Y+X6Zuj5puyIDwganVuYW5reW9rdVwgOwor5a++5rWB5ZyPIDwgdGFpcnl1dWtlblwgOwor5LiL5rC05bel5LqLIDwgZ2VzdWlrb3VqaVwgOwor5Y2x6Zm654mpIDwga2lrZW5idXRzdVwgOwor56CU5L+u55SfIDwga2Vuc2h1dXNlaVwgOwor6L+R6Kaq5amaIDwga2luc2hpbmtvblwgOwor5Lqk6Kqt5paHIDwga291ZG9rdWJ1blwgOwor6ISz5Y2S5LitIDwgbm91c290Y2h1dVwgOwor54S85q275L2TIDwgc2hvdXNoaXRhaVwgOwor5LiA56We5pWZIDwgaXNzaGlua3lvdVwgOwor5rS+5Ye65omAIDwgaGFzaHV0c3Vqb1wgOwor5oyv5YuV6KiIIDwgc2hpbmRvdWtlaVwgOwor5bGI5oqY6KqeIDwga3Vzc2V0c3Vnb1wgOwor5puy6aas5ZujIDwga3lva3ViYWRhblwgOwor5rOo5bCE5rayIDwgY2h1dXNoYWVraVwgOwor5ZCI5oSP5oOF5q27IDwgZ291aWpvdXNoaVwgOwor56aP56aE5a+/IDwgZnVrdXJva3VqdVwgOwor57SZ5ZC56ZuqIDwga2FtaWZ1YnVraVwgOwor5Luy5LuL6ICFIDwgY2h1dWthaXNoYVwgOwor6ZuG6YWN5Lq6IDwgc2h1dWhhaW5pblwgOwor5a6a56SO5byPIDwgdGVpc29zaGlraVwgOwor6KOB5Yik6ZW3IDwgc2FpYmFuY2hvdVwgOwor6Zu76Kmx5bGAIDwgZGVud2FreW9rdVwgOwor5L+456W/57GzIDwgaG91cm9rdW1haVwgOwor6Iqx5ZC56ZuqIDwgaGFuYWZ1YnVraVwgOwor5Zyf5aOBIDwgdHN1Y2hpa2FiZVwgOwor5YW157On57GzIDwgaHlvdXJvdW1haVwgOwor6KeS57Sw5belIDwgdHN1bm96YWlrdVwgOwor6Ly46YCB5YqbIDwgeXVzb3VyeW9rdVwgOwor5p6X6YeO5bqBIDwgcmluJyd5YWNob3VcIDsKK+aUr+mFjeeahCA8IHNoaWhhaXRla2lcIDsKK+Wkqum8k+apiyA8IHRhaWtvYmFzaGlcIDsKK+eulOWKm+eyiSA8IGhha3VyaWtpa29cIDsKK+eNheWtkOm8uyA8IHNoaXNoaWJhbmFcIDsKK+mAo+maiumVtyA8IHJlbnRhaWNob3VcIDsKK+err+acq+apnyA8IHRhbm1hdHN1a2lcIDsKK+WQueWlj+alvSA8IHN1aXNvdWdha3VcIDsKK+eGseWwhOeXhSA8IG5lc3NoYWJ5b3VcIDsKK+aThSA8IGhvc2hpaW1hbWFcIDsKK+atpuijheW5s+WSjCA8IGJ1c291aGVpd2FcIDsKK+W+s+eUqOeTtiA8IHRva3V5b3ViaW5cIDsKK+aJi+e2miA8IHRldHN1ZHp1a2lcIDsKK+Wkqea0peelniA8IGFtYXRzdWthbWlcIDsKK+mZjeawtOmHjyA8IGtvdXN1aXJ5b3VcIDsKK+WHuumHkeiAhSA8IHNodWtraW5zaGFcIDsKK+WFuOWei+eahCA8IHRlbmtlaXRla2lcIDsKK+ieouefsyA8IGhvdGFydWlzaGlcIDsKK+S4reaeouaApyA8IGNodXVzdXVzZWlcIDsKK+i/t+W9qeacjSA8IG1laXNhaWZ1a3VcIDsKK+S9j+WuhemboyA8IGp1dXRha3VuYW5cIDsKK+S7mOW4r+S6i+mghSA8IGZ1dGFpamlrb3VcIDsKK+WMlueyp+aWmSA8IGtlc2hvdXJ5b3VcIDsKK+W/g+eQhuWtpiA8IHNoaW5yaWdha3VcIDsKK+iKs+WQjemMsiA8IGhvdW1laXJva3VcIDsKK+WLleWKm+eCiSA8IGRvdXJ5b2t1cm9cIDsKK+Wwj+WFkOeXhSA8IHNob3VuaWJ5b3VcIDsKK+WwkeW5tOWboyA8IHNob3VuZW5kYW5cIDsKK+WFqOmdoueahCA8IHplbm1lbnRla2lcIDsKK+ihjOaWueS4jeaYjiA8IHl1a3VlZnVtZWlcIDsKK+Wwj+W4guawkSA8IHNob3VzaGltaW5cIDsKK+icnOicgiA8IG1pdHN1YmFjaGlcIDsKK+Wkqeawl+S6iOWgsSA8IHRlbmtpeW9ob3VcIDsKK+S4jeW5s+S4jea6gCA8IGZ1aGVpZnVtYW5cIDsKK+iiq+S/nemZuuiAhSA8IGhpaG9rZW5zaGFcIDsKK+WJr+asoeeahCA8IGZ1a3VqaXRla2lcIDsKK+akjumWk+advyA8IHRzdWlrYW5iYW5cIDsKK+imquWtkOmbu+ipsSA8IG95YWtvZGVud2FcIDsKK+iqsueojueOhyA8IGthemVpcml0c3VcIDsKK+mDteaUv+ecgSA8IHl1dXNlaXNob3VcIDsKK+Wkj+WgtOaJgCA8IG5hdHN1YmFzaG9cIDsKK+WkmuaDheWkmuaBqCA8IHRham91dGFrb25cIDsKK+euseafsyA8IGhha295YW5hZ2lcIDsKK+e1jOWWtuegtOe2uyA8IGtlaWVpaGF0YW5cIDsKK+WOmuWMlueypyA8IGF0c3VnZXNob3VcIDsKK+izm+WKqeS8muWToSA8IHNhbmpva2FpaW5cIDsKK+S6jOS6uue1hCA8IGZ1dGFyaWd1bWlcIDsKK+iHtOWRveWCtyA8IGNoaW1laXNob3VcIDsKK+euseaelSA8IGhha29tYWt1cmFcIDsKK+WJr+mDveW/gyA8IGZ1a3V0b3NoaW5cIDsKK+exs+S/tSA8IGtvbWVkYXdhcmFcIDsKK+eZuuahiOiAhSA8IGhhdHN1YW5zaGFcIDsKK+W8t+WKm+eKryA8IGdvdXJpa2loYW5cIDsKK+S4i+mDqOani+mAoCA8IGthYnVrb3V6b3VcIDsKK+a0l+a/r+S7oyA8IHNlbnRha3VkYWlcIDsKK+mBiuazs+ihkyA8IHl1dWVpanV0c3VcIDsKK+avjuWcn+abnOaXpSA8IG1haWRveW91YmlcIDsKK+ijvemZtualrSA8IHNlaXRvdWd5b3VcIDsKK+eQg+W6p+aomSA8IGt5dXV6YWh5b3VcIDsKK+ayiOS4geiKsSA8IGNoaW5jaG91Z2VcIDsKK+icguicnCA8IGhhY2hpbWl0c3VcIDsKK+S6iOeul+aOque9riA8IHlvc2Fuc29jaGlcIDsKK+iRoeiQhOeJmSA8IHBvcnV0b2dhcnVcIDsKK+S4jeepj+WIhuWtkCA8IGZ1b25idW5zaGlcIDsKK+aVmeS8muWggiA8IGt5b3VrYWlkb3VcIDsKK+aUr+W6l+mVtyA8IHNoaXRlbmNob3VcIDsKK+WWnOaAkuWTgOalvSA8IGtpZG9haXJha3VcIDsKK+W+oeW5tOeOiSA8IG90b3NoaWRhbWFcIDsKK+ilv+a0i+iRsSA8IHNlaXlvdW5lZ2lcIDsKK+eTnOWun+mhlCA8IHVyaXphbmVnYW9cIDsKK+ecn+epuuW4ryA8IHNoaW5rdXV0YWlcIDsKK+erueetkiA8IHRha2VkenV0c3VcIDsKK+i/vemAgeaknCA8IHRzdWlzb3VrZW5cIDsKK+acquaxuueboyA8IG1pa2V0c3VrYW5cIDsKK+a8ouWSjOi+nuWFuCA8IGthbndhaml0ZW5cIDsKK+aZrumAmuagqiA8IGZ1dHN1dWthYnVcIDsKK+WPi+iqvOWbveWutiA8IHl1dWdpa29ra2FcIDsKK+ebuOS6kuS/nemZuiA8IHNvdWdvaG9rZW5cIDsKK+WVhuW6l+S4uyA8IHNob3V0ZW5zaHVcIDsKK+aOoeefs+WgtCA8IHNhaXNla2lqb3VcIDsKK+eJouWQjeS4uyA8IHJvdW5hbnVzaGlcIDsKK+e0r+mAsueojiA8IHJ1aXNoaW56ZWlcIDsKK+Wkp+ertuS6iSA8IGRhaWt5b3Vzb3VcIDsKK+ajruael+azlSA8IHNoaW5yaW5ob3VcIDsKK+WQjOmDt+S6uiA8IGRvdWt5b3VqaW5cIDsKK+a0vuWHuuWppiA8IGhhc2h1dHN1ZnVcIDsKK+S6i+Wkp+S4u+e+qSA8IGppZGFpc2h1Z2lcIDsKK+WGheWbveWCtSA8IG5haWtva3VzYWlcIDsKK+S6lOi8quS8muitsCA8IGdvcmlua2FpZ2lcIDsKK+aUr+W6pumHkSA8IHNoaXRha3VraW5cIDsKK+err+erryA8IGhhc2hpYmFzaGlcIDsKK+WGjea1uOekvCA8IHNhaXNoaW5yZWlcIDsKK+WbveacieWcsCA8IGtva3V5dXVjaGlcIDsKK+imquWxleabuCA8IHNoaW50ZW5zaG9cIDsKK+iqnuW9ouWkieWMliA8IGdva2VpaGVua2FcIDsKK+W7ieaBpeW/gyA8IHJlbmNoaXNoaW5cIDsKK+eahuaXoumjnyA8IGthaWtpc2hva3VcIDsKK+mdnuaIpumXmOWToSA8IGhpc2VudG91aW5cIDsKK+i7ouWxheWFiCA8IHRlbmt5b3Nha2lcIDsKK+mAo+e1oemnhSA8IHJlbnJha3Vla2lcIDsKK+mbu+ipseWPoyA8IGRlbndhZ3VjaGlcIDsKK+eEoeW/teeEoeaDsyA8IG11bmVubXVzb3VcIDsKK+eyvuWLpOizniA8IHNlaWtpbnNob3VcIDsKK+WBpeW/mOeXhyA8IGtlbmJvdXNob3VcIDsKK+idtueVqiA8IGNob3V0c3VnYWlcIDsKK+a8lOeul+aJi+mghiA8IGVuemFudGVqdW5cIDsKK+aVmeS8muWPsiA8IGt5b3VrYWlzaGlcIDsKK+WwkeW5tOS8miA8IHNob3VuZW5rYWlcIDsKK+i0i+aJi+e0mSA8IG5pc2V0ZWdhbWlcIDsKK+WHuuW+gei7jSA8IHNodXNzZWlndW5cIDsKK+atpuaWreS4u+e+qSA8IGJ1ZGFuc2h1Z2lcIDsKK+ioiOeUu+iAhSA8IGtlaWtha3VzaGFcIDsKK+aVo+aWh+eahCA8IHNhbmJ1bnRla2lcIDsKK+S4luipseS6uumWkyA8IHNld2FuaW5nZW5cIDsKK+W5vuS9leW5s+WdhyA8IGtpa2FoZWlraW5cIDsKK+aLoOaJgCA8IHlvcmlkb2tvcm9cIDsKK+S6uuW3pemZjembqCA8IGppbmtvdWtvdXVcIDsKK+m7kum8oCA8IGt1cm9uZXp1bWlcIDsKK+WPi+WlveeahCA8IHl1dWtvdXRla2lcIDsKK+iHquWVj+iHquetlCA8IGppbW9uaml0b3VcIDsKK+WPrOWWmueKtiA8IHNob3VrYW5qb3VcIDsKK+iqjeiovOiAhSA8IG5pbnNob3VzaGFcIDsKK+W5tOeUo+mhjSA8IG5lbnNhbmdha3VcIDsKK+aPm+eul+ihqCA8IGthbnphbmh5b3VcIDsKK+aylue4hOecjCA8IG9raW5hd2FrZW5cIDsKK+aVkeS4lui7jSA8IGt5dXVzZWlndW5cIDsKK+a6gOi2s+aEnyA8IG1hbnpva3VrYW5cIDsKK+WlieWFrOWFiCA8IGhvdWtvdXNha2lcIDsKK+mbu+WgseaWmSA8IGRlbnBvdXJ5b3VcIDsKK+iNkuS6i+W4qyA8IGFyYWdvdG9zaGlcIDsKK+ahg+a6kOmDtyA8IHRvdWdlbmt5b3VcIDsKK+iTruaciOWwvCA8IHJlbmdldHN1bmlcIDsKK+eah+e0gOW5tOW6piA8IGtvdWtpbmVuZG9cIDsKK+e+veaWkeiaiiA8IGhhbWFkYXJha2FcIDsKK+actOW/teS7gSA8IGJva3VuZW5qaW5cIDsKK+WtkOWurueZjCA8IHNoaWt5dXVnYW5cIDsKK+ihqOWPoyA8IG9tb3RlZ3VjaGlcIDsKK+ejgeWKm+ioiCA8IGppcnlva3VrZWlcIDsKK+agueeykuiPjCA8IGtvbnJ5dXVraW5cIDsKK+e4puaXi+ebpCA8IHRhdGVzZW5iYW5cIDsKK+W4guW9ueaJgCA8IHNoaXlha3VzaG9cIDsKK+aknOa1geioiCA8IGtlbnJ5dXVrZWlcIDsKK+WNs+WjsuS8miA8IHNva3ViYWlrYWlcIDsKK+W7tuS6uuWToSA8IG5vYmVqaW4nJ2luXCA7Civlj6PohZTlpJbnp5EgPCBrb3Vrb3VnZWthXCA7Civoqr/lkIjliaQgPCBjaG91Z291emFpXCA7CivopoHnorroqo0gPCB5b3VrYWt1bmluXCA7CivluLjnt5HmqLkgPCBqb3VyeW9rdWp1XCA7Civnq4jnpZ4gPCBrYW1hZG9nYW1pXCA7CivpgbjnkIPnnLwgPCBzZW5reXV1Z2FuXCA7Civnn7PlkIjmiKYgPCBpc2hpZ2Fzc2VuXCA7CivlsIHlu7rnmoQgPCBob3VrZW50ZWtpXCA7Civpp5DlnKjmiYAgPCBjaHV1emFpc2hvXCA7CivkuJbluK/kuLsgPCBzZXRhaW51c2hpXCA7CivlubPluLjlv4MgPCBoZWlqb3VzaGluXCA7Civpu5LprqogPCBrdXJvbWFndXJvXCA7CivohLPmgKfpurvnl7ogPCBub3VzZWltYWhpXCA7CivkupTljYHpn7PpoIYgPCBnb2p1dW9uanVuXCA7CivosYblj7DpoqggPCBtYW1ldGFpZnV1XCA7CivmvJTnrpfnsr7luqYgPCBlbnphbnNlaWRvXCA7CivpibHlsbHmpa0gPCBrb3V6YW5neW91XCA7CivljYHlrZfmnrbnirYgPCBqdXVqaWtham91XCA7Civooajlh7ogPCBoeW91c2h1dHN1XCA7Civmp4vmlofmnKggPCBrb3VidW5tb2t1XCA7Civlj4LorIDplbcgPCBzYW5ib3VjaG91XCA7CivkuI3ogIHkuI3mrbsgPCBmdXJvdWZ1c2hpXCA7CivkuJbnlYzkuLvnvqkgPCBzZWthaXNodWdpXCA7CivlhpnnnJ/ppKggPCBzaGFzaGlua2FuXCA7CivmiKbmmYLoibIgPCBzZW5qaXNob2t1XCA7CivonrrpiL/ntLDlt6UgPCByYWRlbnphaWt1XCA7CivoqJjovInkuovpoIUgPCBraXNhaWppa291XCA7CivkvY/lroXooZcgPCBqdXV0YWt1Z2FpXCA7CivpoJPnj43mvKIgPCB0b25jaGlua2FuXCA7CivlvLHphbjmgKcgPCBqYWt1c2Fuc2VpXCA7CivkuK3ku5XliIcgPCBuYWthamlraXJpXCA7Civngq3ntKDnuYrntq0gPCB0YW5zb3NlbicnaVwgOwor5ZSQ6KGjIDwga2FyYWtvcm9tb1wgOwor5Yid6Iie5Y+wIDwgaGF0c3VidXRhaVwgOwor5YaZ55yf6aGUIDwgc2hhc2hpbmdhb1wgOwor54Sh57ea6Zu76KmxIDwgbXVzZW5kZW53YVwgOwor5Y2X5Lqs546JIDwgbmFua2luZGFtYVwgOwor6Ii557GN5rivIDwgc2Vuc2VraWtvdVwgOwor54eQ54Gw55+zIDwgcmlua2Fpc2VraVwgOwor5LiA5bm06ZaTIDwgaWNoaW5lbmthblwgOwor6Z2e5o6l6KemIDwgaGlzZXNzaG9rdVwgOwor5oyB57aa55qEIDwgaml6b2t1dGVraVwgOwor5rip5oOF5Li7576pIDwgb25qb3VzaHVnaVwgOwor5Za25qWt5LitIDwgZWlneW91Y2h1dVwgOwor6LaF6YGO6aGNIDwgY2hvdWthZ2FrdVwgOwor6aCQ6LK4546HIDwgeW90YWlyaXRzdVwgOwor5Luj55So6IKJIDwgZGFpeW91bmlrdVwgOwor5YCL5Lq657WM5Za2IDwga29qaW5rZWllaVwgOwor5pmC57O75YiXIDwgamlrZWlyZXRzdVwgOwor562G5peBIDwgZnVkZXp1a3VyaVwgOwor5aWU5pS+5LiN576IIDwgaG9ucG91ZnVraVwgOwor5a2Q5L6b5pyNIDwga29kb21vZnVrdVwgOwor6K2m6KaW5bqBIDwga2Vpc2hpY2hvdVwgOwor5YWN55ar5oCnIDwgbWVuJydla2lzZWlcIDsKK+ezu+e1seeahCA8IGtlaXRvdXRla2lcIDsKK+i7jeeUqOmHkSA8IGd1bicneW91a2luXCA7CivojZLku5XkuosgPCBhcmFzaGlnb3RvXCA7CivnmbvlsbHlrqIgPCB0b3phbmt5YWt1XCA7CivkvY7os4Pph5EgPCB0ZWljaGluZ2luXCA7CivkvrXlrrPogIUgPCBzaGluZ2Fpc2hhXCA7Civlo7LkuIrnpaggPCB1cmlhZ2VweW91XCA7CivpiYTlmajmmYLku6MgPCB0ZWtraWppZGFpXCA7CivmlL7pgIHliocgPCBob3Vzb3VnZWtpXCA7Civml6XnqIvooaggPCBuaXR0ZWloeW91XCA7Civlia/okazlk4EgPCBmdWt1c291aGluXCA7CivpvaPokL0gPCBrb21hb3Rvc2hpXCA7CivmjL/lhaXmlocgPCBzb3VueXV1YnVuXCA7CivliJ3lrabogIUgPCBzaG9nYWt1c2hhXCA7CivmlZnnv5LmiYAgPCBreW91c2h1dWpvXCA7CivlhaXloLTploAgPCBueXV1am91bW9uXCA7CivlrpjluoHooZcgPCBrYW5jaG91Z2FpXCA7CivniankvqHpqLDosrQgPCBidWtrYXRvdWtpXCA7Civopo/liYfnmoQgPCBraXNva3V0ZWtpXCA7CivlsI/lhorlrZAgPCBzaG91c2Fzc2hpXCA7CivovLvlsITnt5ogPCBmdWt1c2hhc2VuXCA7CivlgKkgPCB0c3VyYXRzdXJhXCA7CivljYHpgLLliLYgPCBqaXNzaGluc2VpXCA7CivopIfoo73lk4EgPCBmdWt1c2VpaGluXCA7Civmo67mnpfluK8gPCBzaGlucmludGFpXCA7CivntZDmmbbns7sgPCBrZXNzaG91a2VpXCA7CivnhKHnp6nluo8gPCBtdWNoaXRzdWpvXCA7Civml6XmnKzoiJ7ouIogPCBuaWhvbmJ1eW91XCA7Civogb7llJblrabmoKEgPCByb3VhZ2Fra291XCA7CivpjKjntrEgPCBpa2FyaWR6dW5hXCA7CivkuLvoprPnmoQgPCBzaHVrYW50ZWtpXCA7CivnoLTlo4rlipsgPCBoYWthaXJ5b2t1XCA7CivkuInmr5vkvZwgPCBzYW5tb3VzYWt1XCA7Civmoafnmq7okbogPCBoaXdhZGFidWtpXCA7CivlipvnuZTmqZ8gPCByaWtpc2hva2tpXCA7Civlha3pnaLkvZMgPCByb2t1bWVudGFpXCA7Civnj77ku6Poi7Hoqp4gPCBnZW5kYWllaWdvXCA7Civnmb3kurrnqK4gPCBoYWt1amluc2h1XCA7CivmsY7npZ7oq5YgPCBoYW5zaGlucm9uXCA7Civku67lrprmrL4gPCBrYXJpdGVpa2FuXCA7CivntI3nqI7poY0gPCBub3V6ZWlnYWt1XCA7Civoq7jlpJblm70gPCBzaG9nYWlrb2t1XCA7CivlpJbmjqXlhoYgPCBnYWlzZXRzdWVuXCA7CivljYHkuozkvb/lvpIgPCBqdXVuaXNoaXRvXCA7Civoo73ntJnmpa0gPCBzZWlzaGlneW91XCA7CivpiZvnm7Tnt5ogPCBlbmNob2t1c2VuXCA7Civlv4Ppm7voqIggPCBzaGluZGVua2VpXCA7Civnpo/liKnooaggPCBmdWt1cmloeW91XCA7CivnrZLlvaIgPCB0c3V0c3VnYXRhXCA7Civlvq7nlJ/niakgPCBiaXNlaWJ1dHN1XCA7Civlrp3nn7PlupcgPCBob3VzZWtpdGVuXCA7CivlibXmpa3ogIUgPCBzb3VneW91c2hhXCA7Civml6XmnKzluq3lnJIgPCBuaWhvbnRlaWVuXCA7Civpnanoo73lk4EgPCBrYXdhc2VpaGluXCA7CivlubPlubTkvZwgPCBoZWluZW5zYWt1XCA7Civmt7Hnt5EgPCBmdWthbWlkb3JpXCA7CivpgbrkvJ3mmpflj7cgPCBpZGVuJydhbmdvdVwgOwor54y/6Iqd5bGFIDwgc2FydXNoaWJhaVwgOwor5aC05aSW5qCqIDwgam91Z2Fpa2FidVwgOwor6by76JasIDwgaGFuYWd1c3VyaVwgOwor5byB6Ki85rOVIDwgYmVuc2hvdWhvdVwgOwor5Y2U5a6a5pu4IDwga3lvdXRlaXNob1wgOwor6LuN5LqL6Ly46YCBIDwgZ3Vuaml5dXNvdVwgOwor5LqU5pes56+AIDwgZ29qdW5zZXRzdVwgOwor5Ly05oCn6YG65LydIDwgaGFuc2VpaWRlblwgOwor5omA5p+EIDwgdG9rb3JvZ2FyYVwgOwor5Yid5Lu757WmIDwgc2hvbmlua3l1dVwgOwor6Zm45pu5562JIDwgcmlrdXNvdXRvdVwgOwor57WM5Za25Y+C5YqgIDwga2VpZWlzYW5rYVwgOwor5aW95oiQ57i+IDwga291c2Vpc2VraVwgOwor6YCa5pyJ5oCnIDwgdHN1dXl1dXNlaVwgOwor6IG05bCO54qsIDwgY2hvdWRvdWtlblwgOwor5LqI5YKZ6YG45oyZIDwgeW9iaXNlbmt5b1wgOwor5b6h6auY56WW6aCt5be+IDwgb2tvc296dWtpblwgOwor5LqI5YKZ6Imm6ZqKIDwgeW9iaWthbnRhaVwgOwor56OB5Yqb57eaIDwgamlyeW9rdXNlblwgOwor6Zui5ama546HIDwgcmlrb25yaXRzdVwgOwor56Gd6YW45aGpIDwgc2hvdXNhbicnZW5cIDsKK+S6iOWCmemBuOaJiyA8IHlvYmlzZW5zaHVcIDsKK+WGjeeiuuiqjSA8IHNhaWtha3VuaW5cIDsKK+eZuuahiOaoqSA8IGhhdHN1YW5rZW5cIDsKK+mFquijveWTgSA8IHJha3VzZWloaW5cIDsKK+Wcn+aAp+mqqCA8IGRvc2hvdWJvbmVcIDsKK+mBv+WmiuiWrCA8IGhpbmluJyd5YWt1XCA7CivkuI3lgLbmiLTlpKkgPCBmdWd1dGFpdGVuXCA7CivmjIHkuLsgPCBtb2NoaW51c2hpXCA7CivnmbrnlJ/lraYgPCBoYXNzZWlnYWt1XCA7CivkurrnqK7nmoQgPCBqaW5zaHV0ZWtpXCA7Civno4Hnn7Pnm6QgPCBqaXNoYWt1YmFuXCA7CivlpKfolLXntYwgPCBkYWl6b3VreW91XCA7CivmsrPljp/ptrggPCBrYXdhcmFoaXdhXCA7Civmi5nliqMgPCBzZXRzdXJldHN1XCA7CivnlZnnva7loLQgPCByeXV1Y2hpam91XCA7CivpgJrpoqjlrZQgPCB0c3V1ZnV1a291XCA7CivopoHmsYLogIUgPCB5b3VreXV1c2hhXCA7Civnn6XmgbXooosgPCBjaGllYnVrdXJvXCA7CivntJnpiYTnoLIgPCBrYW1pZGVwcG91XCA7CivliJ3po5vooYwgPCBoYXRzdWhpa291XCA7CivnmbvlsbHlj6MgPCB0b3phbmd1Y2hpXCA7Civosq/msLTph48gPCBjaG9zdWlyeW91XCA7CivnpL7kvJrpjYsgPCBzaGFrYWluYWJlXCA7CivlubPlkozpg6jpmoogPCBoZWl3YWJ1dGFpXCA7Civmrorli7Los54gPCBzaHVrdW5zaG91XCA7CivpgYvli5XpnbQgPCB1bmRvdWd1dHN1XCA7CivkuqTpmpvlm70gPCBrb3VzYWlrb2t1XCA7CivlhavmloflrZcgPCBoYWNoaW1vbmppXCA7Civoo4HliKTmspnmsbAgPCBzYWliYW56YXRhXCA7Civplovnmbrpg6ggPCBrYWloYXRzdWJ1XCA7Civoqr/ljbDlm70gPCBjaG91aW5rb2t1XCA7Civnm7jntprnqI4gPCBzb3V6b2t1emVpXCA7CivonYvkurrlvaIgPCByb3VuaW5neW91XCA7CivkurrlkI3pjLIgPCBqaW5tZWlyb2t1XCA7CivllrbliKnms5XkurogPCBlaXJpaG91amluXCA7CivokL3nrKznlJ8gPCByYWt1ZGFpc2VpXCA7Civlh53ngbDlsqkgPCBneW91a2FpZ2FuXCA7CivliKnku5jlgrUgPCByaXRzdWtpc2FpXCA7CivorbDkvJrmlL/msrsgPCBnaWthaXNlaWppXCA7Civpm6jlpKnpoIblu7YgPCB1dGVuanVuJydlblwgOwor5L2T6IWU5aOBIDwgdGFpa291aGVraVwgOwor5oyH5o6M57SLIDwgc2hpc2hvdW1vblwgOwor5LuY5biv6LK755SoIDwgZnV0YWloaXlvdVwgOwor5aWH6Leh55qEIDwga2lzZWtpdGVraVwgOwor5Luj6K2w5ZOh5ZujIDwgZGFpZ2lpbmRhblwgOwor6JuL55m95rqQIDwgdGFucGFrdWdlblwgOwor5pat5pyr6a2UIDwgZGFubWF0c3VtYVwgOwor6Kmz5Lyd56S+IDwgc2hvdWRlbnNoYVwgOwor6JGs5YSA5byPIDwgc291Z2lzaGlraVwgOwor5pCN5a6z6aGNIDwgc29uZ2FpZ2FrdVwgOwor6YmE6Yu85qWtIDwgdGVra291Z3lvdVwgOwor5pqX57Sr6ImyIDwgYW5zaGlzaG9rdVwgOwor5YWI5Lu76aCGIDwgc2VuJyduaW5qdW5cIDsKK+WlveaIpueahCA8IGtvdXNlbnRla2lcIDsKK+mYsumVt+WumCA8IGJvdWNob3VrYW5cIDsKK+awtOWcp+ioiCA8IHN1aWF0c3VrZWlcIDsKK+WkluWbveWLoiA8IGdhaWtva3V6ZWlcIDsKK+mfk+WbveS6uiA8IGthbmtva3VqaW5cIDsKK+aVoumXmOizniA8IGthbnRvdXNob3VcIDsKK+a1geizqiA8IHJ5dXVzaGljaGlcIDsKK+apn+WGhemjnyA8IGtpbmFpc2hva3VcIDsKK+ijj+eVque1hCA8IHVyYWJhbmd1bWlcIDsKK+WbvemYsuirliA8IGtva3Vib3Vyb25cIDsKK+S6jOmHjeiqsueojiA8IG5panV1a2F6ZWlcIDsKK+aJtumkiuaOp+mZpCA8IGZ1eW91a291am9cIDsKK+Wbvemam+e3miA8IGtva3VzYWlzZW5cIDsKK+ihm+aYn+mDveW4giA8IGVpc2VpdG9zaGlcIDsKK+mbu+awl+Wbnui3ryA8IGRlbmtpa2Fpcm9cIDsKK+iyuOmHkeW6qyA8IGthc2hpa2lua29cIDsKK+mAn+iomOihkyA8IHNva2tpanV0c3VcIDsKK+WbveiogOiRiSA8IGt1bmlrb3RvYmFcIDsKK+aKveWHuiA8IGNodXVzaHV0c3VcIDsKK+WMkOihjOeWuSA8IGZ1a2tvdXNoaW5cIDsKK+eUuuW3peWgtCA8IG1hY2hpa291YmFcIDsKK+WcsOS4i+S6jOmajiA8IGNoaWthbmlrYWlcIDsKK+iHs+aApeS+vyA8IHNoaWt5dXViaW5cIDsKK+WuneWGoOeroCA8IGhvdWthbnNob3VcIDsKK+iLpeaXpumCoyA8IHdha2FkYW4nJ25hXCA7CivmjJHmiKbogIUgPCBjaG91c2Vuc2hhXCA7CivpiYTpibHnn7MgPCB0ZWtrb3VzZWtpXCA7CivmqKrpmpTohpwgPCBvdWtha3VtYWt1XCA7CivpoJDph5Hlj6PluqcgPCB5b2tpbmtvdXphXCA7CivlkIzmpa3ogIUgPCBkb3VneW91c2hhXCA7CivmtLvnlKjoqp4gPCBrYXRzdXlvdWdvXCA7Civmt7HlkbzlkLggPCBzaGlua29reXV1XCA7CivkuInnlarpto8gPCBzYW5iYW5kb3JpXCA7CivliKTku7vlrpggPCBoYW4nJ25pbmthblwgOwor5aSW5Zu95YK1IDwgZ2Fpa29rdXNhaVwgOwor6YCj57Wh6Ii5IDwgcmVucmFrdXNlblwgOwor6JC956ys54K5IDwgcmFrdWRhaXRlblwgOwor6YCy6KGM55u4IDwgc2hpbmtvdXNvdVwgOwor6Imy5oGL5rKZ5rGwIDwgaXJva29pemF0YVwgOwor5rG65a6a55qEIDwga2V0dGVpdGVraVwgOwor6IKJ5paZ55CGIDwgbmlrdXJ5b3VyaVwgOwor5paH5rOV55qEIDwgYnVucG91dGVraVwgOwor5Zu95paH5rOVIDwga29rdWJ1bnBvdVwgOwor6LaF5byp57SaIDwgY2hvdWRva3l1dVwgOwor5aSn6JS155yBIDwgb29rdXJhc2hvdVwgOwor5oSf5oOF55qEIDwga2Fuam91dGVraVwgOwor5LmX5ZCI6Ii5IDwgbm9yaWFpYnVuZVwgOwor5b6z55So5ZOBIDwgdG9rdXlvdWhpblwgOwor54eD5paZ5qOSIDwgbmVucnlvdWJvdVwgOwor5LqM5pel6YWUIDwgZnV0c3VrYXlvaVwgOwor56We57WM57O7IDwgc2hpbmtlaWtlaVwgOwor5Luu6K2w6ZW3IDwga2FyaWdpY2hvdVwgOwor6LKo5bmj5L6h5YCkIDwga2FoZWlrYWNoaVwgOwor54us5pat6KuWIDwgZG9rdWRhbnJvblwgOwor5aSW5Zu95Lq6IDwgZ2Fpa29rdWppblwgOwor54+N57Oe5ryiIDwgY2hpbnB1bmthblwgOwor5oyv5YuV5p2/IDwgc2hpbmRvdWJhblwgOwor5q6L5YuZ5pW055CGIDwgemFubXVzZWlyaVwgOwor5Li75pWZ5YagIDwgc2h1a3lvdWthblwgOwor5q2j5pWZ5birIDwgc2Vpa3lvdXNoaVwgOwor57Sw6I+M5a2mIDwgc2Fpa2luZ2FrdVwgOwor6Jyc5pyIIDwgbWl0c3VnZXRzdVwgOwor6ICV5L2c5ZywIDwga291c2FrdWNoaVwgOwor5pS56YCy5YWaIDwga2Fpc2hpbnRvdVwgOwor5LiJ5YiG5pCXIDwgc2FuYnV0c3VraVwgOwor5LyR6ZaR5ZywIDwga3l1dWthbmNoaVwgOwor6LuN55So6ImmIDwgZ3VuJyd5b3VrYW5cIDsKK+aWsOiBnue0mSA8IHNoaW5idW5zaGlcIDsKK+i8u+WwhOeCuSA8IGZ1a3VzaGF0ZW5cIDsKK+WFrOWWtuS/nemZuiA8IGtvdWVpaG9rZW5cIDsKK+S4luS/l+eahCA8IHNlem9rdXRla2lcIDsKK+mHjeWcp+aEnyA8IGp1dWF0c3VrYW5cIDsKK+ixhumJhOegsiA8IG1hbWVkZXBwb3VcIDsKK+WEquengOWTgSA8IHl1dXNodXVoaW5cIDsKK+epuua2mSA8IHNvcmFuYW1pZGFcIDsKK+mHkeiejeeVjCA8IGtpbicneXV1a2FpXCA7Civlgo3ogbTliLggPCBib3VjaG91a2VuXCA7Civosq/ph5HnrrEgPCBjaG9raW5iYWtvXCA7Civlm73looPnt5ogPCBrb2treW91c2VuXCA7CivorbLmuKHmi4Xkv50gPCBqb3V0b3RhbnBvXCA7CivompXns7jmpa0gPCBzYW5zaGlneW91XCA7CivkuIDlubTojYkgPCBpY2hpbmVuc291XCA7Civpq5jlr4bluqYgPCBrb3VtaXRzdWRvXCA7CivlhY3nlqvkvZMgPCBtZW4nJ2VraXRhaVwgOwor56OB5rCX5bWQIDwgamlraWFyYXNoaVwgOwor5oyv5YuV5pWwIDwgc2hpbmRvdXN1dVwgOwor5aSn56S85pyNIDwgdGFpcmVpZnVrdVwgOwor5pS56Imv56iuIDwga2FpcnlvdXNodVwgOwor5YyX5Zu95Lq6IDwgaG9ra29rdWppblwgOwor54mi5b255Lq6IDwgcm91eWFrdW5pblwgOwor5riL5riLIDwgc2hpYnVzaGlidVwgOwor5YaF56Wd6KiAIDwgbmFpc2h1dWdlblwgOwor5LiA5a625Zuj5qySIDwgaWtrYWRhbnJhblwgOwor5Luj6K2w5ZOh5LyaIDwgZGFpZ2lpbmthaVwgOwor5Y2K6Lqr5YOPIDwgaGFuc2hpbnpvdVwgOwor5aSn6buS5aSpIDwgZGFpa29rdXRlblwgOwor56aP6KKLIDwgZnVrdWJ1a3Vyb1wgOwor6KOc5q2j5LqI566XIDwgaG9zZWl5b3NhblwgOwor5LiN5YiG5YmyIDwgZnVidW5rYXRzdVwgOwor6KW/5YyX6KW/IDwgc2VpaG9rdXNlaVwgOwor6YGO5Ymw6Ziy6KGbIDwga2Fqb3Vib3VlaVwgOwor562S5YWIIDwgdHN1dHN1c2FraVwgOwor562G5YqbIDwgaGl0c3VyeW9rdVwgOwor5oCS6auq5aSpIDwgZG9oYXRzdXRlblwgOwor5oiR5b+DIDwgd2FnYWtva29yb1wgOwor5LqI5YKZ5bqn5bitIDwgeW9iaXphc2VraVwgOwor5Y+N6Z2p5ZG9IDwgaGFua2FrdW1laVwgOwor6KGb55Sf5Z+65rqWIDwgZWlzZWlraWp1blwgOwor5paw6IGe56S+IDwgc2hpbmJ1bnNoYVwgOwor5LiA5qmf6Lu4IDwgaWNoaWtpamlrdVwgOwor5L+d6K235Zuj5L2TIDwgaG9nb2RhbnRhaVwgOwor6ZuG6a2a54GvIDwgc2h1dWd5b3RvdVwgOwor6Zuq6KaL6YWSIDwgeXVraW1pemFrZVwgOwor5YSA6KOF6aas6LuKIDwgZ2lzb3ViYXNoYVwgOwor5Z2K5Li76aCtIDwgYm91enVhdGFtYVwgOwor5YWI6aiT55qEIDwgc2Vua2VudGVraVwgOwor6ZeH57Wm5LiOIDwgeWFtaWt5dXV5b1wgOwor5pmC5LqL5ZWP6aGMIDwgamlqaW1vbmRhaVwgOwor5YKN6IG05Lq6IDwgYm91Y2hvdW5pblwgOwor5LqL5a6f5LiKIDwgamlqaXRzdWpvdVwgOwor576p5L6g5b+DIDwgZ2lreW91c2hpblwgOwor55So5rC05aCAIDwgeW91c3VpYm9yaVwgOwor6buS6Iu6IDwga3Vyb2ljaGlnb1wgOwor5Luu5pmu6KuLIDwga2FyaWJ1c2hpblwgOwor5Y2g6aCY5ZywIDwgc2VucnlvdWNoaVwgOwor5a+d6KOF5ZOBIDwgc2hpbnNvdWhpblwgOwor55S65YaF5LyaIDwgY2hvdW5haWthaVwgOwor5ZCM55uf5Zu9IDwgZG91bWVpa29rdVwgOwor55m66IKy5pyfIDwgaGF0c3Vpa3VraVwgOwor6KqT57SE5pu4IDwgc2VpeWFrdXNob1wgOwor55m65bGV5LitIDwgaGF0dGVuY2h1dVwgOwor6Iy255Wq55qEIDwgY2hhYmFudGVraVwgOwor54m555Sj5ZOBIDwgdG9rdXNhbmhpblwgOwor5aSr5amm5Zan5ZipIDwgZnV1ZnVnZW5rYVwgOwor6KO957KJ5qWtIDwgc2VpZnVuZ3lvdVwgOwor5raI5Y675rOVIDwgc2hvdWt5b2hvdVwgOwor6IKb6ZaA5a2mIDwga291bW9uZ2FrdVwgOwor56ep56aEIDwgY2hpdHN1cm9rdVwgOwor5aSn5Y+45pWZIDwgZGFpc2hpa3lvdVwgOwor5aaE5oOz55eHIDwgbW91c291c2hvdVwgOwor5b6h55So6YGUIDwgZ295b3VkYXRzdVwgOwor5bGV56S654mpIDwgdGVuamlidXRzdVwgOwor6Ieq5q666ICFIDwgamlzYXRzdXNoYVwgOwor5L2c5puy5a62IDwgc2Fra3lva3VrYVwgOwor5YWs5pWZ5LyaIDwga291a3lvdWthaVwgOwor5Y+I6ZqjIDwgbWF0YWRvbmFyaVwgOwor6KiI55S75oCnIDwga2Vpa2FrdXNlaVwgOwor5YiH6L+r5oSfIDwgc2VwcGFrdWthblwgOwor5p6i5a+G6ZmiIDwgc3V1bWl0c3VpblwgOwor5Zub5YWt5YikIDwgc2hpcm9rdWJhblwgOwor6L+95L2T6aiTIDwgdHN1aXRhaWtlblwgOwor5YWl5aC06ICFIDwgbnl1dWpvdXNoYVwgOwor5Y2K55eF5Lq6IDwgaGFuYnlvdW5pblwgOwor6YeR6YuPIDwga2FuYWJhc2FtaVwgOwor5pat5Zu65oqX6K2wIDwgZGFua29rb3VnaVwgOwor5o2c57Si6ZqKIDwgc291c2FrdXRhaVwgOwor5Y+L5aW95Zu9IDwgeXV1a291a29rdVwgOwor5q6/5LiK5Lq6IDwgdGVuam91Yml0b1wgOwor54Sh5rC054mpIDwgbXVzdWlidXRzdVwgOwor5YGl5bq355qEIDwga2Vua291dGVraVwgOwor5paw5L2T5pONIDwgc2hpbnRhaXNvdVwgOwor5oeQ5omLIDwgZnV0b2tvcm9kZVwgOwor56m65Lit57eaIDwga3V1Y2h1dXNlblwgOwor55Sw6IiO6YGTIDwgaW5ha2FtaWNoaVwgOwor5rOi5LmD6IqxIDwgbmFtaW5vaGFuYVwgOwor5YG25YOP5pWZIDwgZ3V1em91a3lvdVwgOwor56We6Kmx5a2mIDwgc2hpbndhZ2FrdVwgOwor55u457aa5qipIDwgc291em9rdWtlblwgOwor5oCn5pWZ6IKyIDwgc2Vpa3lvdWlrdVwgOwor5YmN5ZOo57eaIDwgemVuc2hvdXNlblwgOwor5LqU6Lyq6IGW54GrIDwgZ29yaW5zZWlrYVwgOwor54us5aWP6ICFIDwgZG9rdXNvdXNoYVwgOwor6Ieq5YiG5Yud5omLIDwgamlidW5rYXR0ZVwgOwor6LWk6KGA55CDIDwgc2Vra2Vra3l1dVwgOwor5aSp5Y+w5a6XIDwgdGVuZGFpc2h1dVwgOwor6LuN5qW95omLIDwgZ3VuZ2FrdXNodVwgOwor6LuN6ZyA5pmv5rCXIDwgZ3VuanVrZWlraVwgOwor6LuN6Imm5be7IDwgZ3Vua2FubWFraVwgOwor6buS57eRIDwga3Vyb21pZG9yaVwgOwor5pqX6KSQ6ImyIDwgYW5rYXNzaG9rdVwgOwor6YCG5L2c55SoIDwgZ3lha3VzYXlvdVwgOwor5oyR5oim54q2IDwgY2hvdXNlbmpvdVwgOwor5qSc6YeP57eaIDwga2VucnlvdXNlblwgOwor57ay5p2T5a2QIDwgYW1pamFrdXNoaVwgOwor5YaN5rOo5paHIDwgc2FpY2h1dW1vblwgOwor5YaF5Y+N6LazIDwgbmFpaGFuc29rdVwgOwor5bm05bCR6ICFIDwgbmVuc2hvdXNoYVwgOwor5paw55Sf5LujIDwgc2hpbnNlaWRhaVwgOwor5L+d566h54mpIDwgaG9rYW5idXRzdVwgOwor5Z+65bqV6YOo6ZaAIDwga2l0ZWlidW1vblwgOwor5YSq5Yud6ICFIDwgeXV1c2hvdXNoYVwgOwor5pS56Imv54K5IDwga2FpcnlvdXRlblwgOwor5Li45aSq5bCP5bGLIDwgbWFydXRhZ295YVwgOwor5oWE54OIIDwgcml0c3VyZXRzdVwgOwor57Wm5o6S5rC0IDwga3l1dWhhaXN1aVwgOwor5aSp55y86Y+hIDwgdGVuZ2Fua3lvdVwgOwor5LiJ6YCj5YudIDwgc2FucmVuc2hvdVwgOwor5LiN55m65by+IDwgZnVoYXRzdWRhblwgOwor5Y2K5a6Y55qEIDwgaGFua2FudGVraVwgOwor5oyv5YuV5a2QIDwgc2hpbmRvdXNoaVwgOwor6Yu45q2vIDwgbm9rb2dpcmliYVwgOwor5rS755m65YyWIDwga2FwcGF0c3VrYVwgOwor5LqI5oOz5Yip55uKIDwgeW9zb3VyaWVraVwgOwor5Y+O6ZuG5a62IDwgc2h1dXNodXVrYVwgOwor6YW45YyW6YmEIDwgc2Fua2F0ZXRzdVwgOwor5paw5Lq6546LIDwgc2hpbmppbicnb3VcIDsKK+W7tuaXpeaVsCA8IG5vYmVuaXNzdXVcIDsKK+WlieeMrumgjCA8IGhvdWtlbnNob3VcIDsKK+iyuOW6l+iIlyA8IGthc2hpdGVucG9cIDsKK+S6lOmfs+mfs+majiA8IGdvb24nJ29ua2FpXCA7CivkuozkurrlhbEgPCBmdXRhcml0b21vXCA7Civlj47mloLliaQgPCBzaHV1cmVuemFpXCA7Civlm73pmpvms5UgPCBrb2t1c2FpaG91XCA7Civpq5jlrablubQgPCBrb3VnYWt1bmVuXCA7CivmoLjngb3lrrMgPCBrYWt1c2FpZ2FpXCA7CivkvL3ojYnlrZAgPCB0b2dpem91c2hpXCA7Civnhb3mg4XnmoQgPCBzZW5qb3V0ZWtpXCA7Civoqo3oqLzlrpggPCBuaW5zaG91a2FuXCA7CivppIrompXmpa0gPCB5b3VzYW5neW91XCA7CivngavlsbHohIggPCBrYXphbm15YWt1XCA7Civoj5znqK7mrrsgPCBuYXRhbmVnYXJhXCA7Civpgb/mmpHlrqIgPCBoaXNob2t5YWt1XCA7CivngavmsJfljrPnpoEgPCBrYWtpZ2Vua2luXCA7Civmm7joqZXmrIQgPCBzaG9oeW91cmFuXCA7CivlhaXloLTnqI4gPCBueXV1am91emVpXCA7CivmuozliYwgPCBoYXRzdXJhdHN1XCA7CivoqabkvZzou4ogPCBzaGlzYWt1c2hhXCA7CivnjYTkuK3oqJggPCBnb2t1Y2h1dWtpXCA7CivkubPlhYTlvJ8gPCBjaGlreW91ZGFpXCA7CivljYHlrZfmnrblg48gPCBqdXVqaWthem91XCA7CivkuozkuIPml6UgPCBmdXRhbmFub2thXCA7CivmraPmlZnkvJogPCBzZWlreW91a2FpXCA7CivlhYjnlJ/mlrkgPCBzZW5zZWlnYXRhXCA7CivojYnpm7Lpm4AgPCBrdXNhaGliYXJpXCA7Civkvo3lvpPogbcgPCBqaWp1dXNob2t1XCA7Civlh6bnkIbpgY7nqIsgPCBzaG9yaWthdGVpXCA7CivlnLDlvaLlraYgPCBjaGlrZWlnYWt1XCA7CivkuIDlrprkuI3lpIkgPCBpdHRlaWZ1aGVuXCA7CivmnIjkuIvnvo7kurogPCBnZWtrYWJpamluXCA7CivkuIDnm7Tnt5ogPCBpdGNob2t1c2VuXCA7CivlpKnnnLzpgJogPCB0ZW5nYW50c3V1XCA7Civku7LosrfkurogPCBuYWthZ2FpbmluXCA7CivolqznkIblraYgPCB5YWt1cmlnYWt1XCA7CivngKzmiLjlhoXmtbcgPCBzZXRvbmFpa2FpXCA7CivogIHmlL/msrvlrrYgPCByb3VzZWlqaWthXCA7Civlm73mloflsIIgPCBrb2t1YnVuc2VuXCA7CivkuIDlubTnlJ8gPCBpY2hpbmVuc2VpXCA7CivlrprlvI/ljJYgPCB0ZWlzaGlraWthXCA7CivllYbmpa3ljJYgPCBzaG91Z3lvdWthXCA7CivkuIDovKrou4ogPCBpY2hpcmluc2hhXCA7Civlip/liKnkuLvnvqkgPCBrb3VyaXNodWdpXCA7Civmu7Lngq3pi7wgPCBzaGludGFua291XCA7Civou43nlKjniqwgPCBndW4nJ3lvdWtlblwgOwor5YWt6KeS5aCCIDwgcm9ra2FrdWRvdVwgOwor5bqK5pqW5oi/IDwgeXVrYWRhbmJvdVwgOwor562G5LiN57K+IDwgZnVkZWJ1c2hvdVwgOwor5rW354eVIDwgdW1pdHN1YmFtZVwgOwor5YWs6Ki85Lq6IDwga291c2hvdW5pblwgOwor6KaP5Yi257ep5ZKMIDwga2lzZWlrYW53YVwgOwor54mn6I2J5ZywIDwgYm9rdXNvdWNoaVwgOwor5bGe5oCn5YCkIDwgem9rdXNlaWNoaVwgOwor6Kej5q+S6JasIDwgZ2Vkb2t1eWFrdVwgOwor5rqA5pyf5pelIDwgbWFua2lqaXRzdVwgOwor5ZCN5L2c6YG4IDwgbWVpc2FrdXNlblwgOwor5aaC5piv5oiR6IGeIDwgbnlvemVnYW1vblwgOwor5piO5rK75pmC5LujIDwgbWVpamlqaWRhaVwgOwor5ZWG55So5paHIDwgc2hvdXlvdWJ1blwgOwor5ZCM5YyW5L2c55SoIDwgZG91a2FzYXlvdVwgOwor5Zu96Kqe5a2mIDwga29rdWdvZ2FrdVwgOwor5Y+v5Y+K55qEIDwga2FreXV1dGVraVwgOwor5Yil6YCU6aCQ6YeRIDwgYmV0dG95b2tpblwgOwor6YeR6KKLIDwga2FuYWJ1a3Vyb1wgOwor5YaZ55yf54+tIDwgc2hhc2hpbmhhblwgOwor5rK56JmrIDwgYWJ1cmFtdXNoaVwgOwor5LiA5YWD6KuWIDwgaWNoaWdlbnJvblwgOwor5LiL56iu5qC55oCnIDwgZ2VzdWtvbmpvdVwgOwor6Kq/5Ymk5birIDwgY2hvdXphaXNoaVwgOwor5Y2Y5LiJ5b2iIDwgdGFuc2FuZ2F0YVwgOwor55Sy5YaR5birIDwga2F0Y2h1dXNoaVwgOwor5YWI5Lu76ICFIDwgc2VuJyduaW5zaGFcIDsKK+absue3mue+jiA8IGt5b2t1c2VuYmlcIDsKK+mKgOeLkCA8IGdpbmdpdHN1bmVcIDsKK+WNl+miqCA8IG1pbmFtaWthemVcIDsKK+WFrOe0hOaVsCA8IGtvdXlha3VzdXVcIDsKK+eGseeLguiAhSA8IG5la2t5b3VzaGFcIDsKK+awtOe0i+WtpiA8IHN1aW1vbmdha3VcIDsKK+S6uueoruWtpiA8IGppbnNodWdha3VcIDsKK+aui+W/jeaApyA8IHphbicnbmluc2VpXCA7Civmj7TliqnkuqTpmpsgPCBlbmpva291c2FpXCA7CivomZDmrrogPCBneWFrdXNhdHN1XCA7Civnm7jplqLnmoQgPCBzb3VrYW50ZWtpXCA7CivlhpnnnJ/niYggPCBzaGFzaGluYmFuXCA7CivnlJ/mga/lnLAgPCBzZWlzb2t1Y2hpXCA7Civlm73kvJrorbDlk6EgPCBrb2trYWlnaWluXCA7CivlnJ/lnLDliKnnlKggPCB0b2NoaXJpeW91XCA7Civnn6XmgKfnmoQgPCBjaGlzZWl0ZWtpXCA7CivmoITmnq/nm5voobAgPCBlaWtvc2Vpc3VpXCA7CivmnKrnmbrpgZQgPCBtaWhhdHRhdHN1XCA7CivplovluZXmiKYgPCBrYWltYWt1c2VuXCA7Civnm7jkupLkvZznlKggPCBzb3Vnb3NheW91XCA7CivmsLTpj6EgPCBtaXp1a2FnYW1pXCA7CivoiJ7lj7DooaPoo4UgPCBidXRhaWlzaG91XCA7CivlvozphY3moKogPCBrb3VoYWlrYWJ1XCA7CivlgZzms4rlnLAgPCB0ZWloYWt1Y2hpXCA7CivnvbnmgqPnjocgPCByaWthbnJpdHN1XCA7CivpgLLooYzlvaIgPCBzaGlua291a2VpXCA7CivpgZPlvrPkuIogPCBkb3V0b2t1am91XCA7CivnpL7kvJrnmoQgPCBzaGFrYWl0ZWtpXCA7CivpnIfmupDlnLAgPCBzaGluZ2VuY2hpXCA7CivmmJ/pm7LoqqwgPCBzZWl1bnNldHN1XCA7CivmsrPljp/ogIUgPCBrYXdhcmFtb25vXCA7CivmurrmrbvogIUgPCBkZWtpc2hpc2hhXCA7CivmtbfllYbms5UgPCBrYWlzaG91aG91XCA7CivnkIbpq6rlupcgPCByaWhhdHN1dGVuXCA7Civpnanlkb3ou40gPCBrYWt1bWVpZ3VuXCA7CivmtLvniakgPCBrYXRzdWJ1dHN1XCA7CivljbXphZIgPCB0YW1hZ296YWtlXCA7CivlkIjorbDliLbluqYgPCBnb3VnaXNlaWRvXCA7Civmm7joqozlraYgPCBzaG9zaGlnYWt1XCA7CivkuozphbjljJbnoavpu4QgPCBuaXNhbmthaW91XCA7CivnkIbpq6rluKsgPCByaWhhdHN1c2hpXCA7CivkuJbkv5flv4MgPCBzZXpva3VzaGluXCA7Civpganku7vogIUgPCB0ZWtpbmluc2hhXCA7CivlpInlnKfmiYAgPCBoZW4nJ2F0c3Vqb1wgOwor5ryi5rCR5pePIDwga2FubWluem9rdVwgOwor6YGp55So5oCnIDwgdGVraXlvdXNlaVwgOwor6YO96bOlIDwgbWl5YWtvZG9yaVwgOwor5rG66KOCIDwga2V0c3VyZXRzdVwgOwor6Jas566xIDwga3VzdXJpYmFrb1wgOwor6bqm55WRIDwgbXVnaWJhdGFrZVwgOwor6ZuM6ZuE55Ww5qCqIDwgc2hpeXV1aXNodVwgOwor55u06KuH5YikIDwgamlrYWRhbnBhblwgOwor6IOM5L+h6ICFIDwgaGFpc2hpbnNoYVwgOwor562G6ICV5paZIDwgaGlra291cnlvdVwgOwor5Lyd5rOV6IKMIDwgZGVuYm91aGFkYVwgOwor57mK5q+b6JmrIDwgc2VubW91Y2h1dVwgOwor56u25aOy5Lq6IDwga3lvdWJhaW5pblwgOwor5L2c6Kme6ICFIDwgc2FrdXNoaXNoYVwgOwor6buS5ryGIDwga29rdXNoaXRzdVwgOwor5a6J5q276KGTIDwgYW5zaGlqdXRzdVwgOwor5ZaJ5LuPIDwgbm9kb2JvdG9rZVwgOwor5Y+N5bCE6Kqk5beuIDwgaGFuc2hhZ29zYVwgOwor5aGp57Sg6YW45aGpIDwgZW5zb3NhbicnZW5cIDsKK+apn+WLleWKmyA8IGtpZG91cnlva3VcIDsKK+e1tuWvvuiqpOW3riA8IHpldHRhaWdvc2FcIDsKK+acgOe1guWbniA8IHNhaXNodXVrYWlcIDsKK+S4u+imgeWbvSA8IHNodXlvdWtva3VcIDsKK+WPjemZveWtkCA8IGhhbicneW91c2hpXCA7CivlhoXlkJHnmoQgPCBuYWlrb3V0ZWtpXCA7CivpmLLmva7loKQgPCBib3VjaG91dGVpXCA7CivnianmkI3kuovmlYUgPCBidXNzb25qaWtvXCA7CivmtrLmmbbnm6QgPCBla2lzaG91YmFuXCA7CivnpZ7ntYzmiKYgPCBzaGlua2Vpc2VuXCA7Civpu4TlhavkuIggPCBraWhhY2hpam91XCA7Civooajkuozpmo4gPCBvbW90ZW5pa2FpXCA7CivoqabpqJPnmoQgPCBzaGlrZW50ZWtpXCA7CivlsaDmrrrloLQgPCB0b3NhdHN1am91XCA7Civml4XmlK/luqYgPCB0YWJpaml0YWt1XCA7Civlhajpg6jkv53pmbogPCB6ZW5idWhva2VuXCA7Civph5Hogb4gPCBrYW5hdHN1bmJvXCA7Civmm7jnsKHpm4YgPCBzaG9rYW5zaHV1XCA7CivllrbmnpflsYAgPCBlaXJpbmt5b2t1XCA7CivnhKHph43lipsgPCBtdWp1dXJ5b2t1XCA7CivpgbrlpLHogIUgPCBpc2hpdHN1c2hhXCA7Civmgqrlt6vlsbHmiK8gPCB3YXJ1ZnV6YWtlXCA7CivmlbTlvaLlpJbnp5EgPCBzZWlrZWlnZWthXCA7CivnlJ/lvpfmqKkgPCBzZWl0b2t1a2VuXCA7CivnsbPpqJLli5UgPCBrb21lc291ZG91XCA7CivmlrDkvZPliLYgPCBzaGludGFpc2VpXCA7CivooYDmuIXlraYgPCBrZXNzZWlnYWt1XCA7Civpg6jplbfplrIgPCBidWNob3VldHN1XCA7CivlpJzmg7Pmm7IgPCB5YXNvdWt5b2t1XCA7CivmrablrrbmlL/mqKkgPCBidWtlc2Vpa2VuXCA7CivmpoLlv7XnmoQgPCBnYWluZW50ZWtpXCA7CivnqbrkuK3mqKkgPCBrdXVjaHV1a2VuXCA7CivkuozpoIXliIbluIMgPCBuaWtvdWJ1bnB1XCA7CivlkajpgYrliLggPCBzaHV1eXV1a2VuXCA7CivlibXkvZzogIUgPCBzb3VzYWt1c2hhXCA7CivlkKvns5bph48gPCBnYW50b3VyeW91XCA7CivlgLnntITlrrYgPCBrZW4nJ3lha3VrYVwgOwor5Ye65by15omAIDwgc2h1dGNob3Vqb1wgOwor5pig55S75Lya56S+IDwgZWlnYWdhaXNoYVwgOwor566h55CG6IG3IDwga2FucmlzaG9rdVwgOwor6YmE56Cy55m+5ZCIIDwgdGVwcG91eXVyaVwgOwor5oGQ5oCW55eHIDwga3lvdWZ1c2hvdVwgOwor5pS/55Wl5a62IDwgc2Vpcnlha3VrYVwgOwor5YWs6KGG57ayIDwga291c2h1dW1vdVwgOwor5YWl5aC05qipIDwgbnl1dWpvdWtlblwgOwor5ZCN6KqJ5Lya5ZOhIDwgbWVpeW9rYWlpblwgOwor552j5oim6ZqKIDwgdG9rdXNlbnRhaVwgOwor5Y2D57696ba0IDwgc2VuYmFkenVydVwgOwor5L2P5a6F5ZywIDwganV1dGFrdWNoaVwgOwor5b+c5Yuf55So57SZIDwgb3Vib3lvdXNoaVwgOwor5YaF5oOR5pifIDwgbmFpd2FrdXNlaVwgOwor55yf5q2j55u0IDwgbWFzaG91amlraVwgOwor5a2j56+A6aKoIDwga2lzZXRzdWZ1dVwgOwor5L2O5a2m5bm0IDwgdGVpZ2FrdW5lblwgOwor5a2m57GN57C/IDwgZ2FrdXNla2lib1wgOwor56uL5L2T6Y+hIDwgcml0dGFpa3lvdVwgOwor5LqM6aCF5byPIDwgbmlrb3VzaGlraVwgOwor55m+5pel57SFIDwgc2FydXN1YmVyaVwgOwor6LuN55Wl5a62IDwgZ3Vucnlha3VrYVwgOwor6Ieq5rWE5L2c55SoIDwgamlqb3VzYXlvdVwgOwor5rCR6K2a6ZuGIDwgbWluZGFuc2h1dVwgOwor5oWw5ZWP6KKLIDwgaW1vbmJ1a3Vyb1wgOwor5raI55+z54GwIDwgc2hvdXNla2thaVwgOwor5Y2Y5LiA5YyWIDwgdGFuJydpdHN1a2FcIDsKK+WwgueUqOi7iiA8IHNlbicneW91c2hhXCA7Civku5XoiJ7niakgPCBzaGltYWltb25vXCA7CivlpKfnmb3ps6UgPCBvb2hha3VjaG91XCA7Civnt6nlvpDmm7IgPCBrYW5qb2t5b2t1XCA7CivliIDliaPllYYgPCB0b3VrZW5zaG91XCA7CivkvL3oip3lsYUgPCB0b2dpc2hpYmFpXCA7CivlpJbosqjpoJDph5EgPCBnYWlrYXlva2luXCA7CivmsJfosaHluoEgPCBraXNob3VjaG91XCA7CivkuIDlhobnjokgPCBpY2hpZW5kYW1hXCA7CivmgZDmgJbmmKDnlLsgPCBreW91ZnVlaWdhXCA7CivoqrLnqI7mjqfpmaQgPCBrYXplaWtvdWpvXCA7Civlt6HmtIvoiaYgPCBqdW4nJ3lvdWthblwgOwor5b+F6ZyA5ZOBIDwgaGl0c3VqdWhpblwgOwor5LiN5L+h55SoIDwgZnVzaGluJyd5b3VcIDsKK+a4rOWcsOe3miA8IHNva3VjaGlzZW5cIDsKK+mrmOacqOWxpCA8IGtvdWJva3Vzb3VcIDsKK+ioseWuueiqpOW3riA8IGt5b3lvdWdvc2FcIDsKK+ihqOWxpOaApyA8IGh5b3Vzb3VzZWlcIDsKK+awtOiWrCA8IG1penVndXN1cmlcIDsKK+WHuuW4reewvyA8IHNodXNzZWtpYm9cIDsKK+imqueOi+WmgyA8IHNoaW4nJ25vdWhpXCA7CivphY3ntabns7sgPCBoYWlreXV1a2VpXCA7CivlpInlnKflmaggPCBoZW4nJ2F0c3VraVwgOwor5a6f5L2T6Y+hIDwgaml0dGFpa3lvdVwgOwor5YSq5Yud5p2vIDwgeXV1c2hvdWhhaVwgOwor6YGp5LiN6YGpIDwgdGVraWZ1dGVraVwgOwor5LiN5a6a5pyf5YiRIDwgZnV0ZWlraWtlaVwgOwor56S+5Lqk55qEIDwgc2hha291dGVraVwgOwor6YWN57Wm57GzIDwgaGFpa3l1dW1haVwgOwor5pu46KiY5bGAIDwgc2hva2lreW9rdVwgOwor6LSI5Y+O6LOEIDwgem91c2h1dXdhaVwgOwor5Ye45Ye557SZIDwgdG90c3VvdXNoaVwgOwor6KOB5Yik5Lq6IDwgc2FpYmFuJyduaW5cIDsKK+S7iumBk+W/gyA8IGltYWRvdXNoaW5cIDsKK+aYjuayu+e2reaWsCA8IG1laWppaXNoaW5cIDsKK+e0ueS7i+iAhSA8IHNob3VrYWlzaGFcIDsKK+iogOiqnuapn+iDvSA8IGdlbmdva2lub3VcIDsKK+S/neeojuWAieW6qyA8IGhvemVpc291a29cIDsKK+awl+ixoeWtpiA8IGtpc2hvdWdha3VcIDsKK+ebuOe2muS6uiA8IHNvdXpva3VuaW5cIDsKK+iiq+WRiuW4rSA8IGhpa29rdXNla2lcIDsKK+S5s+iEguiCqiA8IG55dXVzaGlib3VcIDsKK+i+sueJp+WcsCA8IG5vdWJva3VjaGlcIDsKK+WMu+eZguapn+mWoiA8IGlyeW91a2lrYW5cIDsKK+aCquaIr+WtkCA8IGl0YXp1cmFra29cIDsKK+WwhOeahOWgtCA8IHNoYXRla2lqb3VcIDsKK+azieeGsSA8IGl6dW1pbmV0c3VcIDsKK+azleWtpuiAhSA8IGhvdWdha3VzaGFcIDsKK+WFqOWbvee0mSA8IHplbmtva3VzaGlcIDsKK+aVkembo+iIuSA8IGt5dXVuYW5zZW5cIDsKK+mHkeiejeWCtSA8IGtpbicneXV1c2FpXCA7Civnn7PkupXogbDkupIgPCBpc2hpaXNvdWdvXCA7Civou43kuovlsIHpjpYgPCBndW5qaWZ1dXNhXCA7CivkuIrovInlnKcgPCBqb3VzYWlhdHN1XCA7Civlj6PllqflmKkgPCBrdWNoaWdlbmthXCA7CivmiJDkurrnl4UgPCBzZWlqaW5ieW91XCA7CivoirHmsLTmnKggPCBoYW5hbWl6dWtpXCA7CivpgKDlnJLooZMgPCB6b3Vlbmp1dHN1XCA7CivkubPohbrngo4gPCBueXV1c2VuJydlblwgOwor5L2N6ZqO5Yuy562JIDwgaWthaWt1bnRvdVwgOwor5rW05a6kIDwgeW9rdXNoaXRzdVwgOwor5rW35rWB55O2IDwga2Fpcnl1dWJpblwgOwor5YiG5YWJ5a2mIDwgYnVua291Z2FrdVwgOwor5rCR5Li755qEIDwgbWluc2h1dGVraVwgOwor57K+55m957OWIDwgc2VpaGFrdXRvdVwgOwor54Sh5qmf6LOqIDwgbXVraXNoaXRzdVwgOwor5oSb5aiYIDwgbWFuYW11c3VtZVwgOwor6YCa6Kmx5paZIDwgdHN1dXdhcnlvdVwgOwor6ICQ54Gr54WJ55OmIDwgdGFpa2FyZW5nYVwgOwor5pS56Imv5ZOBIDwga2FpcnlvdWhpblwgOwor57K+55m957GzIDwgc2VpaGFrdW1haVwgOwor5b+r5YmK6Yu8IDwga2Fpc2FrdWtvdVwgOwor5pel5ZCR5rC0IDwgaGluYXRhbWl6dVwgOwor5Y+k54u4IDwgZnVydWRhbnVraVwgOwor6Zmq5a+p5ZOhIDwgYmFpc2hpbicnaW5cIDsKK+WPpOS7iueEoemhniA8IGtva29ubXVydWlcIDsKK+W4q+Wbo+mVtyA8IHNoaWRhbmNob3VcIDsKK+e1hOiBt+S9kyA8IHNvc2hva3V0YWlcIDsKK+aenOWun+mFkiA8IGthaml0c3VzaHVcIDsKK+Wpv+mkiuWtkCA8IG11a295b3VzaGlcIDsKK+WGmeecn+W4qyA8IHNoYXNoaW5zaGlcIDsKK+mbu+azoueuoeeQhiA8IGRlbnBha2FucmlcIDsKK+ays+eDjyA8IGthd2FnYXJhc3VcIDsKK+S4i+aknOafuyA8IHNoaXRha2Vuc2FcIDsKK+WEquWLneaIpiA8IHl1dXNob3VzZW5cIDsKK+engeWumyA8IHdhdGFzaGlhdGVcIDsKK+mAo+e2muS9kyA8IHJlbnpva3V0YWlcIDsKK+WkqeWIkeeXhSA8IHRlbmtlaWJ5b3VcIDsKK+awkeS6i+S6i+S7tiA8IG1pbmppamlrZW5cIDsKK+WNiue/heebriA8IGhhbnNoaW1va3VcIDsKK+iMtueVquWKhyA8IGNoYWJhbmdla2lcIDsKK+iHqueEtuS/neittyA8IHNoaXplbmhvZ29cIDsKK+WGmeecn+WxiyA8IHNoYXNoaW4nJ3lhXCA7CivnlLvlg4/lh6bnkIYgPCBnYXpvdXNob3JpXCA7Civoia/lsI7kvZMgPCByeW91ZG91dGFpXCA7CivmlZHkuJbkuLsgPCBreXV1c2Vpc2h1XCA7CivmnKrnnYDmiYsgPCBtaWNoYWt1c2h1XCA7CivkvZzoqanms5UgPCBzYWt1c2hpaG91XCA7CivnnJ/prZrpsLkgPCBtYW5hZ2F0c3VvXCA7Civlh7rlvLXlk6EgPCBzaHV0Y2hvdWluXCA7Civkurrlipvou4ogPCBqaW5yaWtpc2hhXCA7CivnqK7nqK7pm5HlpJogPCBzaHVqdXphdHRhXCA7Civlv4XnvbAgPCBoaXRzdWJhdHN1XCA7CivnpZ3ml6UgPCBzaHVrdWppdHN1XCA7Civlm73pmpvkurogPCBrb2t1c2FpamluXCA7CivmuKzplbfmqZ8gPCBzb2t1Y2hvdWtpXCA7CivlsI/kuLvoprMgPCBzaG91c2h1a2FuXCA7CivmmKDnlLvkv7PlhKogPCBlaWdhaGFpeXV1XCA7Civlrp/ot7XnmoQgPCBqaXNzZW50ZWtpXCA7CivpgKPntZDlmaggPCByZW5rZXRzdWtpXCA7CivogJDkuYXmgKcgPCB0YWlreXV1c2VpXCA7CivmnYnkuKbmnKggPCBzdWdpbmFtaWtpXCA7CivntYLkuoblvowgPCBzaHV1cnlvdWdvXCA7CivlpKnpgZPmp5ggPCB0ZW50b3VzYW1hXCA7CivlkIrmqYsgPCB0c3VyaWJhc2hpXCA7Civmkq7lvbHpmoogPCBzYXRzdWVpdGFpXCA7CivoirHoj5bokrIgPCBoYW5hc2hvdWJ1XCA7CivmpJznnLzpj6EgPCBrZW5nYW5reW91XCA7CivlvaLoqLEgPCBrYXRhYmFrYXJpXCA7CivphbjljJbniakgPCBzYW5rYWJ1dHN1XCA7Civms6LmnpUgPCBuYW1pbWFrdXJhXCA7CivlsI/kvZzmlpkgPCBrb3Nha3VyeW91XCA7CivlurbmsJHnmoQgPCBzaG9taW50ZWtpXCA7CivovKroiJ7mm7IgPCByaW5idWt5b2t1XCA7Civno4HmsJfpjLLpn7MgPCBqaWtpcm9rdW9uXCA7CivkuI3ljZTlkozpn7MgPCBmdWt5b3V3YW9uXCA7Civlh43ntZDlmaggPCB0b3VrZXRzdWtpXCA7CivlpI/onJzmn5EgPCBuYXRzdW1pa2FuXCA7CivmnKzkvY3oqJjlj7cgPCBob24nJ2lraWdvdVwgOwor562J5pa555qEIDwgdG91aG91dGVraVwgOwor6KGb55Sf566h55CGIDwgZWlzZWlrYW5yaVwgOwor5bKp5riF5rC0IDwgaXdhc2hpbWl6dVwgOwor56uL5qGI6ICFIDwgcml0c3VhbnNoYVwgOwor55u45LqS5Li7576pIDwgc291Z29zaHVnaVwgOwor6JGX6L+w5a62IDwgY2hvanV0c3VrYVwgOwor6ISz5qKF5q+SIDwgbm91YmFpZG9rdVwgOwor6LuN55So5ZOBIDwgZ3VuJyd5b3VoaW5cIDsKK+W/nOWLn+izh+mHkSA8IG91Ym9zaGlraW5cIDsKK+WDleS7sumWkyA8IGJva3VuYWthbWFcIDsKK+mbo+imluiBtCA8IG5hbnNoaWNob3VcIDsKK+W+qeWPpOS4u+e+qSA8IGZ1a2tvc2h1Z2lcIDsKK+W+s+e+qeW/gyA8IHRva3VnaXNoaW5cIDsKK+i/kea1t+eJqSA8IGtpbmthaW1vbm9cIDsKK+adsea0i+mAmiA8IHRvdXlvdXRzdXVcIDsKK+asoeS6nOehq+mFuCA8IGppYXJ5dXVzYW5cIDsKK+W5s+WuieaZguS7oyA8IGhlaWFuamlkYWlcIDsKK+mJhOegsueOiSA8IHRlcHBvdWRhbWFcIDsKK+awtOenpCA8IG1penViYWthcmlcIDsKK+a1geWksSA8IHJ5dXVzaGl0c3VcIDsKK+S+oeagvOihqCA8IGtha2FrdWh5b3VcIDsKK+iqv+WBnOiAhSA8IGNob3V0ZWlzaGFcIDsKK+attOWPsuimsyA8IHJla2lzaGlrYW5cIDsKK+W7uuevieiyuyA8IGtlbmNoaWt1aGlcIDsKK+mJi+WxkSA8IGthbicnbmFrdXp1XCA7Civkurrmg4XliocgPCBuaW5qb3VnZWtpXCA7Civoj7HppIUgPCBoaXNoaW1vY2hpXCA7CivlpJrnpZ7mlZkgPCB0YXNoaW5reW91XCA7Civmg4XloLHmqZ/lmaggPCBqb3Vob3VraWtpXCA7CivliY3lk6jlnLAgPCB6ZW5zaG91Y2hpXCA7CivkuInkvY3kuIDkvZMgPCBzYW5taWl0dGFpXCA7CivmlL/li5nmrKHlrpggPCBzZWltdWppa2FuXCA7CivlkInml6UgPCBraWNoaW5pY2hpXCA7CivkuIDluqbkuIggPCBpY2hpZG9kYWtlXCA7CivolqzmjIcgPCBrdXN1cml5dWJpXCA7CivpgKPntaHkvJogPCByZW5yYWt1a2FpXCA7CivkuIDoiKzogbcgPCBpcHBhbnNob2t1XCA7Civpm4zpm4TnlbDkvZMgPCBzaGl5dXVpdGFpXCA7CivnpL7kvJrlraYgPCBzaGFrYWlnYWt1XCA7CivlgbXlr5/mqZ8gPCB0ZWlzYXRzdWtpXCA7Civlr53lj7Dou4ogPCBzaGluZGFpc2hhXCA7CivlubTku6PniakgPCBuZW5kYWltb25vXCA7CivkuKHmm7/kurogPCByeW91Z2FlbmluXCA7CivlkITmlrkgPCBvbm9vbm9nYXRhXCA7Civmrabmlq3mlL/msrsgPCBidWRhbnNlaWppXCA7CivlkIjmoLzogIUgPCBnb3VrYWt1c2hhXCA7Civph5Hmp4wgPCBrYW5hZHp1Y2hpXCA7CivlsILnlKjnt5ogPCBzZW4nJ3lvdXNlblwgOwor5biv5Z+f5bmFIDwgdGFpaWtpaGFiYVwgOwor5Yid5LiA5b+1IDwgc2hvaWNoaW5lblwgOwor57S55LuL54q2IDwgc2hvdWthaWpvdVwgOwor5raI5q+S5ZmoIDwgc2hvdWRva3VraVwgOwor5pem6YKj6KGGIDwgZGFuJyduYXNodXVcIDsKK+WgheS/oeekvCA8IGtlbnNoaW5yZWlcIDsKK+WumOWFrOW6gSA8IGthbmtvdWNob3VcIDsKK+iBtOiBnuWDpyA8IGNob3Vtb25zb3VcIDsKK+WkquW5s+alvSA8IHRhaWhlaXJha3VcIDsKK+S4oeWkqeenpCA8IHJ5b3V0ZW5iaW5cIDsKK+WtlOmbgOefsyA8IGt1amFrdXNla2lcIDsKK+WJteS9nOaoqSA8IHNvdXNha3VrZW5cIDsKK+iJsuS6i+W4qyA8IGlyb2dvdG9zaGlcIDsKK+mFuOWMlueCree0oCA8IHNhbmthdGFuc29cIDsKK+awtOW9qeeUu+WutiA8IHN1aXNhaWdha2FcIDsKK+mZjemtlOihkyA8IGtvdW1hanV0c3VcIDsKK+Wwkeizh+acrCA8IHNob3VzaGlob25cIDsKK+izh+eUo+agqiA8IHNoaXNhbmthYnVcIDsKK+WfuuekjuS7o+isnSA8IGtpc290YWlzaGFcIDsKK+aBkOaAluW/gyA8IGt5b3VmdXNoaW5cIDsKK+Wun+mok+eahCA8IGppa2tlbnRla2lcIDsKK+S9v+W+kumBlCA8IHNoaXRvdGFjaGlcIDsKK+WJjemgrSA8IG1hZWdhc2hpcmFcIDsKK+WuiemFkuWgtCA8IHlhc3VzYWthYmFcIDsKK+iBtOiBnuS8miA8IGNob3Vtb25rYWlcIDsKK+iCsuWFkOmjnyA8IGlrdWppc2hva3VcIDsKK+eUt+S+v+aJgCA8IG90b2tvYmVuam9cIDsKK+mmluWun+aknCA8IGt1YmlqaWtrZW5cIDsKK+e0sOiDnuiGnCA8IHNhaWJvdW1ha3VcIDsKK+WQjeS6uuiCjCA8IG1laWppbmhhZGFcIDsKK+Wwj+WtpuagoSA8IHNob3VnYWtrb3VcIDsKK+S4gOadr+apn+WrjCA8IGlwcGFpa2lnZW5cIDsKK+aXp+iXqeS4uyA8IGt5dXVoYW5zaHVcIDsKK+awkeacieaelyA8IG1pbicneXV1cmluXCA7CivotaTpiYTpibEgPCBzZWtpdGVra291XCA7CivmnKzojYnlraYgPCBob256b3VnYWt1XCA7Civkv67mraPogIUgPCBzaHV1c2Vpc2hhXCA7CivpoqjpgJ/oqIggPCBmdXVzb2t1a2VpXCA7CivpgZPot6/ovLjpgIEgPCBkb3Vyb3l1c291XCA7CivmvZzlnKjnmoQgPCBzZW56YWl0ZWtpXCA7CivlpInmi43lrZAgPCBoZW5ieW91c2hpXCA7Civml6fmgJ3mg7MgPCBreXV1c2hpc291XCA7CivkupznhrHluK/mnpcgPCBhbmV0dGFpcmluXCA7Civpm5HmnKjmnpcgPCB6b3Vib2t1cmluXCA7CivmiKbpl5jnmoQgPCBzZW50b3V0ZWtpXCA7CivpnZLmga/lkJDmga8gPCBhb2lraXRvaWtpXCA7CivntYLpm7vou4ogPCBzaHV1ZGVuc2hhXCA7Civog4znvo7pr6ggPCBzZW1pa3VqaXJhXCA7CivmhYfmh4PnhKHnpLwgPCBpbmdpbmJ1cmVpXCA7CivnqbTmnZPlrZAgPCBhbmFqYWt1c2hpXCA7CivkuIDlubTkuK0gPCBpY2hpbmVuanV1XCA7CivpiYTnoLLmsLQgPCB0ZXBwb3VtaXp1XCA7Civlhajlm73msJEgPCB6ZW5rb2t1bWluXCA7Civkurrlj6PlraYgPCBqaW5rb3VnYWt1XCA7CivmtYHlh7ogPCByeXV1c2h1dHN1XCA7CivmtLvlipsgPCBrYXRzdXJ5b2t1XCA7Civnm7Tmu5HpmY0gPCBjaG9ra2Fra291XCA7Civns57nnJ/pnaLnm64gPCBrdXNvbWFqaW1lXCA7CivkuIrnlLPmm7ggPCBqb3VzaGluc2hvXCA7CivljbXnhLwgPCB0YW1hZ295YWtpXCA7Civph53ljYPmnKwgPCBoYXJpc2VuYm9uXCA7Civoh6rkuLvopo/liLYgPCBqaXNodWtpc2VpXCA7CivkuInmpa3lnLAgPCBzYW5neW91Y2hpXCA7CivkuKblpKfmirUgPCBuYW1pdGFpdGVpXCA7Civnmb3pm7Lnn7MgPCBoYWt1dW5zZWtpXCA7CivmsLTnhZkgPCBtaXp1a2VtdXJpXCA7CivmrKDluK3ogIUgPCBrZXNzZWtpc2hhXCA7CivlvJXlvZPph5EgPCBoaWtpYXRla2luXCA7Civoo4Xpo77pn7MgPCBzb3VzaG9rdW9uXCA7CivoppbogbTogIUgPCBzaGljaG91c2hhXCA7CivkubPoh63lhZAgPCBueXV1c2h1dWppXCA7CivmiYvmsqLmnKwgPCBzaHV0YWt1Ym9uXCA7CivorabmiJLlv4MgPCBrZWlrYWlzaGluXCA7CivlvKXnlJ/mmYLku6MgPCB5YXlvaWppZGFpXCA7CivkuK3lm73oqp4gPCBjaHV1Z29rdWdvXCA7CivlhaXmiYvpm6MgPCBueXV1c2h1bmFuXCA7Civpm7vmtYHoqIggPCBkZW5yeXV1a2VpXCA7CivpgZPpgZMgPCBtaWNoaW1pY2hpXCA7CivkuojlgpnkvJroq4cgPCB5b2Jpa2FpZGFuXCA7CivlkJvkuLvlm70gPCBrdW5zaHVrb2t1XCA7Civpn7Pmpb3lraYgPCBvbmdha3VnYWt1XCA7CivpjK/lrZfnl4cgPCBzYWt1amlzaG91XCA7CivnrYnkvY3mp4vpgKAgPCB0b3Vpa291em91XCA7CivlpKfnm6Tnn7MgPCBkYWliYW5qYWt1XCA7CivliIblrZDph48gPCBidW5zaGlyeW91XCA7CivkuIDnlarojLYgPCBpY2hpYmFuY2hhXCA7Civku5bmtYHoqablkIggPCB0YXJ5dXVqaWFpXCA7Civlronlrprmk43kvZwgPCBhbnRlaXNvdXNhXCA7CivnhKHlhJ/ooYzngrogPCBtdXNob3Vrb3VpXCA7CivpgYXliLvogIUgPCBjaGlrb2t1c2hhXCA7Civlho3nmbrotrMgPCBzYWlob3Nzb2t1XCA7Civlr77ouaDnmoQgPCB0YWlzaG90ZWtpXCA7CivlpI/mnJ/lrabmoKEgPCBrYWtpZ2Fra291XCA7Civmp43ooZPlrrYgPCBzb3VqdXRzdWthXCA7CivmrYzorKHmm7IgPCBrYXlvdWt5b2t1XCA7CivmtLvkurrnlLsgPCBrYXRzdWppbmdhXCA7CivkuozoqIDnm64gPCBmdXRha290b21lXCA7Civljp/lrZDph48gPCBnZW5zaGlyeW91XCA7CivlvLfohbAgPCB0c3V5b2dvc2hpXCA7CivlpKfluYXniakgPCBvb2hhYmFtb25vXCA7Civni6zlpY/kvJogPCBkb2t1c291a2FpXCA7CivliJ3pnJwgPCBoYXRzdXNoaW1vXCA7CivlroflrpnljLvlraYgPCB1Y2h1dWlnYWt1XCA7CivlkI3oqonpmaTpmoogPCBtZWl5b2pvdGFpXCA7CivkupToh5Plha3ohZEgPCBnb3pvdXJvcHB1XCA7Civlj7Plt6YgPCBtaWdpaGlkYXJpXCA7CivohLHoh63liaQgPCBkYXNzaHV1emFpXCA7Civlv6vpgJ/oiLkgPCBrYWlzb2t1c2VuXCA7CivnlJ/mrpblmaggPCBzZWlzaG9rdWtpXCA7Civou4rkuK3oq4cgPCBzaGFjaHV1ZGFuXCA7Civpjq7pnZnliaQgPCBjaGluc2VpemFpXCA7CivlkIjkvbXnl4cgPCBnYXBwZWlzaG91XCA7Civmh4fopqrkvJogPCBrb25zaGlua2FpXCA7CivnnYDpm6ogPCBjaGFrdXNldHN1XCA7Civlv4Xmu4UgPCBoaXRzdW1ldHN1XCA7Civnib3niZvmmJ8gPCBrZW5neXV1c2VpXCA7Civln7fooYzlp5Tlk6EgPCBzaGlra291aWluXCA7Civph4zlv4MgPCBzYXRvZ29rb3JvXCA7Civlm5vpnaLmpZrmrYwgPCBzaGltZW5zb2thXCA7CivojLbmn4TmnZMgPCBjaGFiaXNoYWt1XCA7CivmnInnpZ7oq5YgPCB5dXVzaGlucm9uXCA7Civlkb3kuK3mlbAgPCBtZWljaHV1c3V1XCA7Civmlrnop6Pnn7MgPCBob3VrYWlzZWtpXCA7Civlo7Lmjpvph5EgPCB1cmlrYWtla2luXCA7CivotoXlt6jmmJ8gPCBjaG91a3lvc2VpXCA7Civnq4vkvZPnmoQgPCByaXR0YWl0ZWtpXCA7Civnmb3mmLzlpKIgPCBoYWt1Y2h1dW11XCA7CivmlrDoqJjpjLIgPCBzaGlua2lyb2t1XCA7Civkv53ph4jph5EgPCBob3NoYWt1a2luXCA7Civlj43nspLlrZAgPCBoYW5yeXV1c2hpXCA7CivkuIvotrPmlpkgPCBnZXNva3VyeW91XCA7Civms6jmlofmm7ggPCBjaHV1bW9uc2hvXCA7CivlqIHpoqjloILloIIgPCBpZnV1ZG91ZG91XCA7CivljJblkIjniakgPCBrYWdvdWJ1dHN1XCA7CivlsYvlvaLoiLkgPCB5YWthdGFidW5lXCA7Civou43kuovkvJrorbAgPCBndW5qaWthaWdpXCA7Civot5vooYzmma/msJcgPCBoYWtvdWtlaWtpXCA7CivpgYvli5XlipsgPCB1bmRvdXJ5b2t1XCA7Civpipjpipjnmr8gPCBtZWltZWl6YXJhXCA7Civpu5Lmm5zlsqkgPCBrb2t1eW91Z2FuXCA7Civljp/kvZzogIUgPCBnZW5zYWt1c2hhXCA7CivlhbXnq5nlraYgPCBoZWl0YW5nYWt1XCA7CivntLDlr4bnlLsgPCBzYWltaXRzdWdhXCA7CivppYLpo6nnsonnl4UgPCB1ZG9ua29ieW91XCA7CivkuIDnlarnt5ogPCBpY2hpYmFuc2VuXCA7CivljYrkurrliY0gPCBoYW4nJ25pbm1hZVwgOwor5YqH5aC06KGXIDwgZ2VraWpvdWdhaVwgOwor5aSp5LiL5LiA5ZOBIDwgdGVua2FpcHBpblwgOwor5rG66K2w5qipIDwga2V0c3VnaWtlblwgOwor5Z+65Zyw6ZaJ6Y6WIDwga2ljaGloZWlzYVwgOwor6JG156WtIDwgYW9pbWF0c3VyaVwgOwor5LiA5qe95byPIDwgaXNzb3VzaGlraVwgOwor5a6F5oCl5L6/IDwgdGFra3l1dWJpblwgOwor5rK55aO3IDwgYWJ1cmF0c3Vib1wgOwor6ICB5Lq655eFIDwgcm91amluYnlvdVwgOwor562G6KiY55So5YW3IDwgaGlra2l5b3VndVwgOwor6JK45rCX5qmf6ZaiIDwgam91a2lraWthblwgOwor5ZCI5qC854K5IDwgZ291a2FrdXRlblwgOwor5Yi76LazIDwga2l6YW1pYXNoaVwgOwor6Kmm5L6b5ZOBIDwgc2hpa3lvdWhpblwgOwor5Lit5aCF5omLIDwgY2h1dWtlbnNodVwgOwor6JGb6aWF6aCtIDwga3V6dW1hbmp1dVwgOwor5o6l5a6i5ammIDwgc2Vra3lha3VmdVwgOwor5rS75a2X5pysIDwga2F0c3VqaWhvblwgOwor5ZWP6aGM5YqHIDwgbW9uZGFpZ2VraVwgOwor56OB5rCX5oq15oqXIDwgamlraXRlaWtvdVwgOwor6IG06Kyb55SfIDwgY2hvdWtvdXNlaVwgOwor5rC05p6VIDwgbWl6dW1ha3VyYVwgOwor6LO96Yqt566xIDwgc2Fpc2VuYmFrb1wgOwor5o+Q5ZSx6ICFIDwgdGVpc2hvdXNoYVwgOwor5LiB5a2X5a6a6KaPIDwgdGVpamlqb3VnaVwgOwor5Zm06aOv54mpIDwgZnVucGFubW9ub1wgOwor5Zu65a6a6YeR5YipIDwga290ZWlraW5yaVwgOwor5YiG5qW15YyWIDwgYnVua3lva3VrYVwgOwor566h55CG5bGAIDwga2FucmlreW9rdVwgOwor6KeS6YyQ5Y+wIDwga2FrdXN1aWRhaVwgOwor56aP5bKh55yMIDwgZnVrdW9rYWtlblwgOwor54us5aOH5aC0IDwgZG9rdWRhbmpvdVwgOwor5Luy6ZaT6KSSIDwgbmFrYW1hYm9tZVwgOwor6ZqP5oOz6YyyIDwgenVpc291cm9rdVwgOwor5pKu5b2x6ICFIDwgc2F0c3VlaXNoYVwgOwor5aaC6I+p6JapIDwgbnlvYm9zYXRzdVwgOwor5ZG95Lit5by+IDwgbWVpY2h1dWRhblwgOwor55yf5YiG5pWwIDwgc2hpbmJ1bnN1dVwgOwor6bCv6ZuyIDwgaXdhc2hpZ3Vtb1wgOwor6ZuH55So5Li7IDwga295b3VudXNoaVwgOwor5b+D5p+EIDwga29rb3JvZ2FyYVwgOwor6LW35YuV5pmC6ZaTIDwga2lkb3VqaWthblwgOwor5bm7IDwgbWFib3Jvc2hpXCA7CivlsY0gPCBzaGlrYWJhbmVcIDsKK+WtpCA8IG1pbmFzaGlnb1wgOwor54yqIDwgaW5vc2hpc2hpXCA7CivllIcgPCBrdWNoaWJpcnVcIDsKK+aqoyA8IGhvYmFzaGlyYVwgOwor5qmYIDwgdGFjaGliYW5hXCA7CivlhbUgPCB0c3V3YW1vbm9cIDsKK+mKgCA8IHNoaXJvZ2FuZVwgOwor6YKqIDwgeW9rb3NoaW1hXCA7Civlsa/nlLDlhbUgPCB0b25kZW5oZWlcIDsKK+aVtemDqOmaiiA8IHRla2lidXRhaVwgOwor5oq15b2T5qipIDwgdGVpdG91a2VuXCA7CivmnZHlpKvlrZAgPCBzb25wdXVzaGlcIDsKK+iHquW3seasuueeniA8IGppa29naW1hblwgOwor5oWw5a6J5peF6KGMIDwgaWFucnlva291XCA7Civmj5rmsLTou4ogPCB5b3VzdWlzaGFcIDsKK+aVkeaPtOi7jSA8IGt5dXVlbmd1blwgOwor6IKy5q+b5YmkIDwgaWt1bW91emFpXCA7CivnnaboqIAgPCBtdXRzdWdvdG9cIDsKK+WPjuWlqiA8IHNodXVkYXRzdVwgOwor6buS6aCt5be+IDwga3Vyb3p1a2luXCA7Civop6Pmr5LliaQgPCBnZWRva3V6YWlcIDsKK+aBkOWWnSA8IGt5b3VrYXRzdVwgOwor6auY5ae/5YuiIDwga291c2hpc2VpXCA7CivlsYvlj7DlupcgPCB5YXRhaW1pc2VcIDsKK+i1t+ejgeWKmyA8IGtpamlyeW9rdVwgOwor5Y6f55Sf5p6XIDwgZ2Vuc2VpcmluXCA7CivmrbTlj7LnlLsgPCByZWtpc2hpZ2FcIDsKK+ebrumgrSA8IG1lZ2FzaGlyYVwgOwor6I2J6aSgIDwga3VzYW1vY2hpXCA7CivliY3ljYrnlJ8gPCB6ZW5oYW5zZWlcIDsKK+WtmOWcqOirliA8IHNvbnphaXJvblwgOwor5YqH6IG3IDwgZ2VraXNob2t1XCA7CivluIzmnJvnmoQgPCBraWJvdXRla2lcIDsKK+iWrOS7oyA8IGt1c3VyaWRhaVwgOwor5Lq65bel6Zu3IDwgamlua291cmFpXCA7CivlsILnlKjmqZ8gPCBzZW4nJ3lvdWtpXCA7CivlvLfnm7QgPCBreW91Y2hva3VcIDsKK+W6pumHj+ihoSA8IGRvcnlvdWtvdVwgOwor5YWa5aSn5LyaIDwgdG91dGFpa2FpXCA7CivlkIzkuZfogIUgPCBkb3Vqb3VzaGFcIDsKK+WKtOWLleiAhSA8IHJvdWRvdXNoYVwgOwor5Y2Y5pWw5Z6LIDwgdGFuc3V1a2VpXCA7CivlvpPlhYTlvJ8gPCBqdXVrZWl0ZWlcIDsKK+m9p+atr+mhniA8IGdlc3NoaXJ1aVwgOwor5ZCE5YaKIDwga2FrdXNhdHN1XCA7CivpgJroqqwgPCB0c3V1c2V0c3VcIDsKK+WGoOacqOmWgCA8IGthYnVraW1vblwgOwor5LuY5bGe5ZOBIDwgZnV6b2t1aGluXCA7CivoqKrllY/ogIUgPCBob3Vtb25zaGFcIDsKK+ays+WPoyA8IGthd2FndWNoaVwgOwor6YCG6LOKIDwgZ3lha3V6b2t1XCA7CivpgZPojYkgPCBtaWNoaWt1c2FcIDsKK+eZuumgreS6uiA8IGhvdHRvdW5pblwgOwor5q2756WeIDwgc2hpbmlnYW1pXCA7Civmlofpgbjlt6UgPCBidW5zZW5rb3VcIDsKK+mBqeiBtyA8IHRla2lzaG9rdVwgOwor5qyg6JC9IDwga2V0c3VyYWt1XCA7Civlt7vprqggPCBtYWtpenVzaGlcIDsKK+WQjOWxheS6uiA8IGRvdWt5b25pblwgOwor5Y+C6Kmj5Lq6IDwgc2Fua2VpbmluXCA7Civlvbnlk6HkvJogPCB5YWt1aW5rYWlcIDsKK+WtpOeri+iqniA8IGtvcml0c3Vnb1wgOwor55Sf6I+T5a2QIDwgbmFtYWdhc2hpXCA7Civpm7vmsJflmajlhbcgPCBkZW5raWtpZ3VcIDsKK+WLneeOhyA8IHNob3VyaXRzdVwgOwor5YuY5a6a5pu4IDwga2Fuam91c2hvXCA7CivplovlgqzlnLAgPCBrYWlzYWljaGlcIDsKK+iQveW+jOiAhSA8IHJha3Vnb3NoYVwgOwor5Ye66LuNIDwgc2h1dHN1Z3VuXCA7CivljbHmqZ/miZPogIUgPCBraWtpZGFzaGFcIDsKK+WNiuaXpSA8IGhhbicnbmljaGlcIDsKK+WhqeWMluawtOe0oCA8IGVua2FzdWlzb1wgOwor5Y6E5bm0IDwgeWFrdWRvc2hpXCA7CivnlLflrZDmoKEgPCBkYW5zaGlrb3VcIDsKK+WJpeiEsSA8IGhha3VkYXRzdVwgOwor5LiA6Ium5Yq0IDwgaGl0b2t1cm91XCA7CivlgqzmtpnlvL4gPCBzYWlydWlkYW5cIDsKK+e1seayu+aoqSA8IHRvdWNoaWtlblwgOwor5b6S5qGcIDwgYWRhemFrdXJhXCA7CivljYPml6UgPCBzZW4nJ25pY2hpXCA7CivnpoHou6LovIkgPCBraW50ZW5zYWlcIDsKK+S6uuS6i+eVsOWLlSA8IGppbmppaWRvdVwgOwor5riv5rm+56iOIDwga291d2FuemVpXCA7CivkuI3lr5vlrrkgPCBmdWthbicneW91XCA7CivliKXooYwgPCBiZXRzdWd5b3VcIDsKK+S4jeS/oeS7sCA8IGZ1c2hpbmtvdVwgOwor5aSq5YWs5pybIDwgdGFpa291Ym91XCA7CivkuLjmi6zlvKcgPCBtYXJ1Z2Fra29cIDsKK+WkluWQkeaApyA8IGdhaWtvdXNlaVwgOwor6JC9552AIDwgcmFrdWNoYWt1XCA7CivkuI3otrPliY0gPCB0YXJhenVtYWVcIDsKK+S6jOWbvemWkyA8IG5pa29rdWthblwgOwor5Lqc6Ymb6YmE5p2/IDwgYWVudGVwcGFuXCA7CivkvJrokazogIUgPCBrYWlzb3VzaGFcIDsKK+mBruS6jOeEoeS6jCA8IHNoYW5pbXVuaVwgOwor6YCG6KWyIDwgZ3lha3VzaHV1XCA7Civnpo/lr7/ojYkgPCBmdWt1anVzb3VcIDsKK+avkuauuiA8IGRva3VzYXRzdVwgOwor56K65a6fIDwga2FrdWppdHN1XCA7Civms5Xmm7nnlYwgPCBob3Vzb3VrYWlcIDsKK+mHjeWHuiA8IGp1dXNodXRzdVwgOwor5Y+j5YWIIDwga3VjaGlzYWtpXCA7CivpgYvovLjnnIEgPCB1bicneXVzaG91XCA7Civlj6PlhYMgPCBrdWNoaW1vdG9cIDsKK+W8j+ebriA8IHNoaWtpbW9rdVwgOwor5Y2T5oqcIDwgdGFrdWJhdHN1XCA7CivkuZfou4rpp4UgPCBqb3VzaGFla2lcIDsKK+acnemuruiqniA8IGNob3VzZW5nb1wgOwor6Z2p5ZG95a62IDwga2FrdW1laWthXCA7CivmqZ/lr4bosrsgPCBraW1pdHN1aGlcIDsKK+S6uumAoOexsyA8IGppbnpvdW1haVwgOwor5rSL5ZOB5bqXIDwgeW91aGludGVuXCA7CivlgIvkurrnmoQgPCBrb2ppbnRla2lcIDsKK+S4gOWFg+WMliA8IGljaGlnZW5rYVwgOwor5Lyd6YGT6Ii5IDwgZGVuZG91c2VuXCA7CivmsqHlhaUgPCBib3RzdW55dXVcIDsKK+Wcp+i/q+aEnyA8IGFwcGFrdWthblwgOwor5LqI6Ziy562WIDwgeW9ib3VzYWt1XCA7Civoi6XpmqDlsYUgPCB3YWthaW5reW9cIDsKK+WumuS9j+iAhSA8IHRlaWp1dXNoYVwgOwor5Y+z5LiLIDwgbWlnaXNoaXRhXCA7CivmsLTmurbmgKcgPCBzdWl5b3VzZWlcIDsKK+W8t+eDiCA8IGt5b3VyZXRzdVwgOwor6YG66KiA5pu4IDwgeXVpZ29uc2hvXCA7Civku6Pnh4Pou4ogPCBkYWluZW5zaGFcIDsKK+WkieaIkOWyqSA8IGhlbnNlaWdhblwgOwor5LiA5a6a6YePIDwgaXR0ZWlyeW91XCA7Civoi6bngbDnn7MgPCBrdWthaXNla2lcIDsKK+W3puW/g+aIvyA8IHNhc2hpbmJvdVwgOwor6Lyq55Wq5Yi2IDwgcmluYmFuc2VpXCA7Civoq4vpoZjogIUgPCBzZWlnYW5zaGFcIDsKK+mAuOiEsSA8IGl0c3VkYXRzdVwgOwor55m96buSIDwgc2hpcm9rdXJvXCA7Civnm7TpgZQgPCBqaWtpdGF0c3VcIDsKK+Wcp+i/q+aApyA8IGFwcGFrdXNlaVwgOwor5oGL5LuHIDwga29pZ2F0YWtpXCA7CivnvoXnlJ/ploAgPCByYXNob3Vtb25cIDsKK+ebtOmAsiA8IGNob2t1c2hpblwgOwor5YCL5Lq655SoIDwga29qaW4nJ3lvdVwgOwor5Lqr5Y+X6ICFIDwga3lvdWp1c2hhXCA7CivlvqHotrPlirQgPCBnb3Nva3Vyb3VcIDsKK+ebtOmAmiA8IGNob2t1dHN1dVwgOwor5Ym956qDIDwgaHlvdXNldHN1XCA7CivniKzomavpoZ4gPCBoYWNodXVydWlcIDsKK+i/t+S/oeWutiA8IG1laXNoaW5rYVwgOwor5Ymy5664IDwgd2FyaWJhc2hpXCA7Civmm7jnsKHmlocgPCBzaG9rYW5idW5cIDsKK+ioseWPr+iovCA8IGt5b2thc2hvdVwgOwor5rCR5Li75YWaIDwgbWluc2h1dG91XCA7CivlhY3pu5wgPCBtZW5jaHV0c3VcIDsKK+mHkeS7jyA8IGthbmFidXRzdVwgOwor55m96be6IDwgc2hpcmFzYWdpXCA7CivphrXlh7ogPCBreW9zaHV0c3VcIDsKK+ebtOi9hCA8IGNob2trYXRzdVwgOwor5aSq5YiA5YWIIDwgdGFjaGlzYWtpXCA7CivljaDluKsgPCB1cmFuYWlzaGlcIDsKK+S8nemBk+iAhSA8IGRlbmRvdXNoYVwgOwor55uj6KaW6Ii5IDwga2Fuc2hpc2VuXCA7CivnuITmmpbnsL4gPCBuYXdhbm9yZW5cIDsKK+e2v+ijveWTgSA8IG1lbnNlaWhpblwgOwor55qu6Z20IDwga2F3YWd1dHN1XCA7Civlh7rotbDppqwgPCBzaHVzc291YmFcIDsKK+aApeWIhyA8IGt5dXVzZXRzdVwgOwor5LqM6ZqO5bu6IDwgbmlrYWlkYXRlXCA7Civkv67mraPmoYggPCBzaHV1c2VpYW5cIDsKK+Wuo+S8neaIpiA8IHNlbmRlbnNlblwgOwor6YWJ5bm0IDwgdG9yaWRvc2hpXCA7Civoq4vosqDmpa0gPCB1a2VvaWd5b3VcIDsKK+mhnuS6uueMvyA8IHJ1aWppbicnZW5cIDsKK+WQiOeQhueahCA8IGdvdXJpdGVraVwgOwor5Yud6LKg5birIDwgc2hvdWJ1c2hpXCA7Civns7jomq/ompMgPCBpdG9taW1penVcIDsKK+W7tumVt+aIpiA8IGVuY2hvdXNlblwgOwor5Zyf5bu65qWtIDwgZG9rZW5neW91XCA7CivotIjlkYjlk4EgPCB6b3V0ZWloaW5cIDsKK+mHkemJseWcsCA8IGtpbmtvdWNoaVwgOwor55yf6KO4IDwgbWFwcGFkYWthXCA7CivmmLzlvqHpo68gPCBoaXJ1Z29oYW5cIDsKK+iSmeWPpOilniA8IG1vdWtvaGlkYVwgOwor5Y2K5pyI5YiKIDwgaGFuZ2Vra2FuXCA7Civlh7rooYAgPCBzaHVra2V0c3VcIDsKK+eZvemxmiA8IHNoaXJvZ2lzdVwgOwor6YGT562LIDwgbWljaGlzdWppXCA7CivnnIzmsJHnqI4gPCBrZW5taW56ZWlcIDsKK+aJh+WLleiAhSA8IHNlbmRvdXNoYVwgOwor6ZuG5Lya5omAIDwgc2h1dWthaWpvXCA7CivmnKjlt6XloLQgPCBtb2trb3Vqb3VcIDsKK+a0kuiQveiAhSA8IHNoYXJlbW9ub1wgOwor5oim6ZeY5bi9IDwgc2VudG91Ym91XCA7CivlpJXljJbnsqcgPCB5dXVnZXNob3VcIDsKK+mBk+erryA8IG1pY2hpYmF0YVwgOwor5Y+v5YuV5aCwIDwga2Fkb3V6ZWtpXCA7CivlpKflubTlopcgPCBvb3Rvc2hpbWFcIDsKK+azleeQhuWtpiA8IGhvdXJpZ2FrdVwgOwor6buE6aC36JuHIDwgYW9kYWlzaG91XCA7CivpgI/mmI7kvZMgPCB0b3VtZWl0YWlcIDsKK+aVhemanOi7iiA8IGtvc2hvdXNoYVwgOwor55uj6KaW6ICFIDwga2Fuc2hpc2hhXCA7Civljbjlo7IgPCBvcm9zaGl1cmlcIDsKK+W/mOWksSA8IGJvdXNoaXRzdVwgOwor6JSt5Y+jIDwga2FnZWd1Y2hpXCA7CivljbXlpKcgPCB0YW1hZ29kYWlcIDsKK+W8geaFtuiNiSA8IGJlbmtlaXNvdVwgOwor5Yid6IqxIDwgaGF0c3VoYW5hXCA7CivpgZPnqIsgPCBtaWNoaW5vcmlcIDsKK+WtmOWcqOiAhSA8IHNvbnphaXNoYVwgOwor5YWo5Zu95Yy6IDwgemVua29rdWt1XCA7Civnmb3pq6ogPCBoYWt1aGF0c3VcIDsKK+Wkqeeah+aXlyA8IHRlbicnbm91a2lcIDsKK+WumOWDmuWMliA8IGthbnJ5b3VrYVwgOwor5pei5b6X5qipIDwga2l0b2t1a2VuXCA7CivlhYnnt5rpioMgPCBrb3VzZW5qdXVcIDsKK+ejlOWIkSA8IGhhcml0c3VrZVwgOwor5Luu6Z2i5YqHIDwga2FtZW5nZWtpXCA7CivmqZ/morDnmoQgPCBraWthaXRla2lcIDsKK+W9puaYnyA8IGhpa29ib3NoaVwgOwor6YG65Lyd5Zyw5ZuzIDwgaWRlbmNoaXp1XCA7CivovpvovqMgPCBzaGlucmF0c3VcIDsKK+ato+eJqSA8IHNob3VidXRzdVwgOwor5ZOB44CFIDwgc2hpbmFqaW5hXCA7CivnhqjmlpfntJkgPCBub3NoaWdhbWlcIDsKK+WGmeakjeapnyA8IHNoYXNob2traVwgOwor5Ye66JeNIDwgc2h1dHN1cmFuXCA7CivmnKzkvZPoq5YgPCBob250YWlyb25cIDsKK+eZuuWjsOazlSA8IGhhc3NlaWhvdVwgOwor57Wm5rmv5ZmoIDwga3l1dXRvdWtpXCA7CivlubToi6UgPCB0b3NoaXdha2FcIDsKK+mBiuiIiOiyuyA8IHl1dWt5b3VoaVwgOwor5bmz5a6J5LqsIDwgaGVpYW5reW91XCA7CivpgIboh6MgPCBneWFrdXNoaW5cIDsKK+eUn+asoOS8uCA8IG5hbWFha3ViaVwgOwor6YCB5LuY5YWIIDwgc291ZnVzYWtpXCA7CivlpJbph47luK0gPCBnYWl5YXNla2lcIDsKK+W5s+iKnSA8IGhpcmFzaGliYVwgOwor5qiq6Z2iIDwgeW9rb3RzdXJhXCA7Civnq4vkvZPmiKYgPCByaXR0YWlzZW5cIDsKK+ebtOiqrSA8IGNob2t1ZG9rdVwgOwor55uj6KaW57ayIDwga2Fuc2hpbW91XCA7CivmnIjmsLTph5EgPCBnZXNzdWlraW5cIDsKK+ato+aKleaJiyA8IHNlaXRvdXNodVwgOwor5Yed6KGAIDwgZ3lvdWtldHN1XCA7CivpgaDotaTlpJYgPCBlbnNla2lnYWlcIDsKK+aMh+ekuuiWrCA8IHNoaWppeWFrdVwgOwor6YCD6IWwIDwgbmlnZWdvc2hpXCA7Civlv4PlpKogPCB0b2tvcm90ZW5cIDsKK+ebtOiosyA8IGNob2t1eWFrdVwgOwor5Yid6ICzIDwgaGF0c3VtaW1pXCA7Civkv6Hlj7fmqZ8gPCBzaGluZ291a2lcIDsKK+S6leaIuOi7iiA8IGlkb2d1cnVtYVwgOwor5pyJ5ZCN56iOIDwgeXV1bWVpemVpXCA7Civnq4vkvZPmhJ8gPCByaXR0YWlrYW5cIDsKK+WEquWFiOaoqSA8IHl1dXNlbmtlblwgOwor5a6f6aiT5aC0IDwgamlra2Vuam91XCA7CivniaHkuLnppIUgPCBib3RhbW9jaGlcIDsKK+e1jOWbo+mAoyA8IGtlaWRhbnJlblwgOwor5LiN5rOV6KGM54K6IDwgZnVob3Vrb3VpXCA7Civmlq3poK3lj7AgPCBkYW50b3VkYWlcIDsKK+S6iOe0hOiAhSA8IHlveWFrdXNoYVwgOwor57WC5aSc54GvIDwgc2h1dXlhdG91XCA7Civmmpfpu5LpnaIgPCBhbmtva3VtZW5cIDsKK+Wuo+S8neWxiyA8IHNlbmRlbicneWFcIDsKK+S7o+abv+WTgSA8IGRhaXRhaWhpblwgOwor54Kt6YW45aGpIDwgdGFuc2FuJydlblwgOwor5LiL5a6/5bGLIDwgZ2VzaHVrdXlhXCA7Civoo5zntabnt5ogPCBob2t5dXVzZW5cIDsKK+WQjeS6uuaIpiA8IG1laWppbnNlblwgOwor5LiA6Iis5bitIDwgaXBwYW5zZWtpXCA7Civpga3pm6PogIUgPCBzb3VuYW5zaGFcIDsKK+eZvembqiA8IGhha3VzZXRzdVwgOwor5Ye66ImyIDwgc2h1c3Nob2t1XCA7Civljp/lrZDnoLIgPCBnZW5zaGlob3VcIDsKK+WAkue9ruazlSA8IHRvdWNoaWhvdVwgOwor5buD55a+IDwgaGFpc2hpdHN1XCA7CivnhafmupblmaggPCBzaG91anVua2lcIDsKK+WOn+S9j+awkSA8IGdlbmp1dW1pblwgOwor6IGW5YWs5LyaIDwgc2Vpa291a2FpXCA7Civliofng4ggPCBnZWtpcmV0c3VcIDsKK+WOn+eUo+WcsCA8IGdlbnNhbmNoaVwgOwor6Z2p5ZG95YWQIDwga2FrdW1laWppXCA7CivpgJ/nrYYgPCBzb2t1aGl0c3VcIDsKK+WEqumnv+mmrCA8IHl1dXNodW5iYVwgOwor5Li75oOF6KuWIDwgc2h1am91cm9uXCA7CivpqqjokaPlk4EgPCBrb3R0b3VoaW5cIDsKK+euoeiyoeS6uiA8IGthbnphaW5pblwgOwor5ryU5YqH55WMIDwgZW5nZWtpa2FpXCA7CivpioDplqPlr7ogPCBnaW5rYWt1amlcIDsKK+miqOmzpeW6pyA8IGZ1dWNob3V6YVwgOwor5oyf55685ZmoIDwga3lvdWtlbmtpXCA7CivmlZnmjojms5UgPCBreW91anVob3VcIDsKK+mbu+awl+mHnCA8IGRlbmtpZ2FtYVwgOwor6Zu75rCX6YePIDwgZGVua2lyeW91XCA7CivmsLTlj6MgPCBtaXp1Z3VjaGlcIDsKK+atu+S9k+mBuuajhCA8IHNoaXRhaWlraVwgOwor54K55YWJ5rqQIDwgdGVua291Z2VuXCA7Civml6XliIrntJkgPCBuaWtrYW5zaGlcIDsKK+mWk+eLguiogCA8IGFpa3lvdWdlblwgOwor5q665oiuIDwgc2F0c3VyaWt1XCA7CivogIHkurrmgKcgPCByb3VqaW5zZWlcIDsKK+W+jOWupCA8IGtvdXNoaXRzdVwgOwor6KiI5pWw566hIDwga2Vpc3V1a2FuXCA7Civph5HliKnpnpggPCBraW5yaXNob3VcIDsKK+iThOWmviA8IGNoaWt1c2hvdVwgOwor5Luu5pS/5bqcIDwga2FyaXNlaWZ1XCA7Civnj77ku6PniYggPCBnZW5kYWliYW5cIDsKK+S9juWnv+WLoiA8IHRlaXNoaXNlaVwgOwor5oCl6ZmN5LiLIDwga3l1dWtvdWthXCA7Civnq6XoqbHliocgPCBkb3V3YWdla2lcIDsKK+Wun+mok+WPsCA8IGppa2tlbmRhaVwgOwor5rC05oiQ5bKpIDwgc3Vpc2VpZ2FuXCA7CivlvqHlr67kurogPCBnb3J5b3VuaW5cIDsKK+iHqui6q+eVqiA8IGppc2hpbmJhblwgOwor56CC5pmC6KiIIDwgc3VuYWRva2VpXCA7CivlhoXph47lronmiZMgPCBuYWl5YWFuZGFcIDsKK+ihgOmBlOejqCA8IGNoaWRhcnVtYVwgOwor6aSK6baP5aC0IDwgeW91a2Vpam91XCA7CivpgLLnmbogPCBzaGlucGF0c3VcIDsKK+iEsei1sOWFtSA8IGRhc3NvdWhlaVwgOwor6Iy26KKLIDwgY2hhYnVrdXJvXCA7CivojZjlnJLliLYgPCBzaG91ZW5zZWlcIDsKK+WIneepuiA8IGhhdHN1em9yYVwgOwor5YmN5Y2K5oimIDwgemVucGFuc2VuXCA7CivoqJPoqYHlraYgPCBrdW5rb2dha3VcIDsKK+i7iuS6leaIuCA8IGt1cnVtYWlkb1wgOwor5aSW5YuZ55yBIDwgZ2FpbXVzaG91XCA7CivmlrDmmYLku6MgPCBzaGluamlkYWlcIDsKK+a4ieWklumDqCA8IHNob3VnYWlidVwgOwor5qiq6YGTIDwgeW9rb21pY2hpXCA7CivmhJ/lhYnntJkgPCBrYW5rb3VzaGlcIDsKK+aSruW9seapnyA8IHNhdHN1ZWlraVwgOwor5LiA55Sf5ravIDwgaXNzaG91Z2FpXCA7CivmsLTmupDlnLAgPCBzdWlnZW5jaGlcIDsKK+aVtOa1geWZqCA8IHNlaXJ5dXVraVwgOwor5bmz56mP54Sh5LqLIDwgaGVpb25idWppXCA7CivokL3mnK0gPCByYWt1c2F0c3VcIDsKK+WIruebriA8IGthdHN1bW9rdVwgOwor55m96YWSIDwgc2hpcm96YWtlXCA7CivpioDooYznlYwgPCBnaW5rb3VrYWlcIDsKK+ePvuS9j+aJgCA8IGdlbmp1dXNob1wgOwor5YuY5omAIDwga2FuZG9rb3JvXCA7CivliY3lj6PkuIogPCBtYWVrb3Vqb3VcIDsKK+WcsOWvvuepuiA8IGNoaXRhaWt1dVwgOwor6L+956qBIDwgdHN1aXRvdHN1XCA7CivnrKzkuIDpm4YgPCBkYWlpc3NodXVcIDsKK+W8j+acjSA8IHNoaWtpZnVrdVwgOwor5aSp55qH5a62IDwgdGVuJydub3VrZVwgOwor5Y2U5YqbIDwga3lvdXJ5b2t1XCA7CivntabmsrnoiLkgPCBreXV1eXVzZW5cIDsKK+S7o+abuOS6uiA8IGRhaXNob25pblwgOwor5Ym15aeL6ICFIDwgc291c2hpc2hhXCA7CivkvqHmoLzluK8gPCBrYWtha3V0YWlcIDsKK+WgtOaJgOafhCA8IGJhc2hvZ2FyYVwgOwor5L+h5Y+35omAIDwgc2hpbmdvdWpvXCA7CivmmI7mmI7lvozml6UgPCBzaGlhc2F0dGVcIDsKK+efs+aMgSA8IGlzaGltb2NoaVwgOwor5oKq5b6q55KwIDwgYWt1anVua2FuXCA7CivokL3ml6UgPCByYWt1aml0c3VcIDsKK+S4gOawl+WRteaIkCA8IGlra2lrYXNlaVwgOwor5a6f6aiT5YCkIDwgamlra2VuY2hpXCA7CivpgLjniakgPCBpY2hpbW90c3VcIDsKK+S4jemiqOa1gSA8IGJ1ZnV1cnl1dVwgOwor5a6j5Lyd5ZOhIDwgc2VuZGVuJydpblwgOwor6Zmk6Zu76YedIDwgam9kZW5iYXJpXCA7CivooZvnlJ/lraYgPCBlaXNlaWdha3VcIDsKK+ebtOiFuCA8IGNob2t1Y2hvdVwgOwor5q2m5Zmo6LK45LiOIDwgYnVraXRhaXlvXCA7CivnmbropovogIUgPCBoYWtrZW5zaGFcIDsKK+azleeOi+W6gSA8IGhvdW91Y2hvdVwgOwor5q205pelIDwgcmVraWppdHN1XCA7CivkuIDnlarmiYsgPCBpY2hpYmFudGVcIDsKK+S4gOWkq+WkmuWmuyA8IGlwcHV0YXNhaVwgOwor6ZmQ55WM54K5IDwgZ2Vua2FpdGVuXCA7Civmnb/nm67ntJkgPCBpdGFtZWdhbWlcIDsKK+aEgeWYhuWgtCA8IHNodXV0YW5iYVwgOwor6YCy54mpIDwgc2hpbm1vdHN1XCA7CivoirHnm7jmkrIgPCBoYW5henVtb3VcIDsKK+atr+enkeWtpiA8IHNoaWthZ2FrdVwgOwor5LuV5LqL552AIDwgc2hpZ290b2dpXCA7CivlhYnmlofnpL4gPCBrb3VidW5zaGFcIDsKK+mrmOeHpeWcsCA8IGtvdXNvdWNoaVwgOwor6L6y5Zyw5rOVIDwgbm91Y2hpaG91XCA7CivokZvmoLnmua8gPCBrYWtrb250b3VcIDsKK+WHuueriyA8IHNodXR0YXRzdVwgOwor55yf562GIDwgc2hpbnBpdHN1XCA7CivmraPmnIggPCBzaG91Z2F0c3VcIDsKK+WHnee4riA8IGd5b3VzaHVrdVwgOwor5YWJ6Zu7566hIDwga291ZGVua2FuXCA7CivouqvliIbmn4QgPCBtaWJ1bmdhcmFcIDsKK+ims+imp+WIuCA8IGthbnJhbmtlblwgOwor56aB5Yi25ZOBIDwga2luc2VpaGluXCA7CivnnYDnm64gPCBjaGFrdW1va3VcIDsKK+W9k+expOiAhSA8IHRvdXNlbnNoYVwgOwor6YCy5YyW6KuWIDwgc2hpbmthcm9uXCA7Civlho3mpJzoqI4gPCBzYWlrZW50b3VcIDsKK+WFreitmCA8IHJva3VzaGlraVwgOwor5Y2K5aSP55SfIDwgaGFuZ2VzaG91XCA7CivlvqHpo6/mmYIgPCBnb2hhbmRva2lcIDsKK+aEm+W8n+WtkCA8IG1hbmFkZXNoaVwgOwor5omL5byV5pu4IDwgdGViaWtpc2hvXCA7Civmj67nmbrmsrkgPCBraWhhdHN1eXVcIDsKK+e/sOael+mZoiA8IGthbnJpbicnaW5cIDsKK+aVtOWQiOaApyA8IHNlaWdvdXNlaVwgOwor5paZ55CG55WqIDwgcnlvdXJpYmFuXCA7CivljYHkuozlrq4gPCBqdXVuaWt5dXVcIDsKK+eUn+eUo+iyoSA8IHNlaXNhbnphaVwgOwor5LiA5Luj6KiYIDwgaWNoaWRhaWtpXCA7CivlhYPlp4vnpa0gPCBnZW5zaGlzYWlcIDsKK+S6oeWRveiAhSA8IGJvdW1laXNoYVwgOwor5pyJ56iO5ZOBIDwgeXV1emVpaGluXCA7CivnnLznlr4gPCBnYW5zaGl0c3VcIDsKK+Wkp+S9v+mkqCA8IHRhaXNoaWthblwgOwor6ZmQ5a6a6KmeIDwgZ2VudGVpc2hpXCA7CivmrYzmnpUgPCB1dGFtYWt1cmFcIDsKK++8uOe3miA8IGVra3VzdXNlblwgOwor54Sh6aeE6aOvIDwgbXVkYW1lc2hpXCA7Civnt4/msbrnrpcgPCBzb3VrZXNzYW5cIDsKK+attOWPsuWutiA8IHJla2lzaGlrYVwgOwor5rW35rC05bi9IDwga2Fpc3VpYm91XCA7CivmjqfpmaTpoY0gPCBrb3Vqb2dha3VcIDsKK+efpeaCiSA8IGNoaXNoaXRzdVwgOwor5a625pS/5a2mIDwga2FzZWlnYWt1XCA7CivlhoXlvJ/lrZAgPCB1Y2hpZGVzaGlcIDsKK+WkmuW/meS4rSA8IHRhYm91Y2h1dVwgOwor5Yil54mpIDwgYmV0c3Vtb25vXCA7Civljp/lr7jlpKcgPCBnZW5zdW5kYWlcIDsKK+ebtOe1kCA8IGNob2trZXRzdVwgOwor5qmf6IO955qEIDwga2lub3V0ZWtpXCA7CivlpbPmgKfnmoQgPCBqb3NlaXRla2lcIDsKK+a7kee/lOapnyA8IGthc3Nob3VraVwgOwor5bm05aeL54q2IDwgbmVuc2hpam91XCA7CivlrZDnhanmgqkgPCBrb2Jvbicnbm91XCA7CivmjIfljZfou4ogPCBzaGluYW5zaGFcIDsKK+WHneeriyA8IGd5b3VyaXRzdVwgOwor5bi456+AIDwgdG9rb2J1c2hpXCA7CivlhpnnlJ/mlocgPCBzaGFzZWlidW5cIDsKK+aomeitmCA8IGh5b3VzaGlraVwgOwor5YaF6YGK5pifIDwgbmFpeXV1c2VpXCA7Civlvozlh7ogPCBrb3VzaHV0c3VcIDsKK+WIneeJqSA8IGhhdHN1bW9ub1wgOwor6Ium6KGM6ICFIDwga3VneW91c2hhXCA7CivnvarmgqrmhJ8gPCB6YWlha3VrYW5cIDsKK+eEoeeXh+eKtiA8IG11c2hvdWpvdVwgOwor6Iqx6YGTIDwgaGFuYW1pY2hpXCA7Civop5LnoILns5YgPCBrYWt1emF0b3VcIDsKK+eUn+i/lOS6iyA8IG5hbWFoZW5qaVwgOwor5Ye655m6IDwgc2h1cHBhdHN1XCA7CivljZjntJTmgKcgPCB0YW5qdW5zZWlcIDsKK+WMl+WPoyA8IGtpdGFndWNoaVwgOwor5aSn5YOn5q2jIDwgZGFpc291am91XCA7CivlubTnjokgPCB0b3NoaWRhbWFcIDsKK+S4gOi6q+S4iiA8IGlzc2hpbmpvdVwgOwor5L+u6YGT5bC8IDwgc2h1dWRvdW5pXCA7Civou43mlL7pgIEgPCBndW5ob3Vzb3VcIDsKK+eZu+iomOaWmSA8IHRvdWtpcnlvdVwgOwor6Iux5Zu95Lq6IDwgZWlrb2t1amluXCA7Civlgb3oqLzogIUgPCBnaXNob3VzaGFcIDsKK+mBk+i3r+apiyA8IGRvdXJva3lvdVwgOwor5qmZ6ImyIDwgZGFpZGFpaXJvXCA7Civnn6nlt64gPCBrYW5lemFzaGlcIDsKK+WNg+S4hyA8IGNoaXlvcm96dVwgOwor5pKu5b2x5omAIDwgc2F0c3VlaWpvXCA7CivlvaLmhYvoq5YgPCBrZWl0YWlyb25cIDsKK+WBveiovOe9qiA8IGdpc2hvdXphaVwgOwor6aaW6KyA6ICFIDwgc2h1Ym91c2hhXCA7CivopIflj7fljJYgPCBmdWt1Z291a2FcIDsKK+W8k+W8piA8IHl1bWlkenVydVwgOwor5aeL56WW6bOlIDwgc2hpc29jaG91XCA7CivnibnoqLHms5UgPCB0b2treW9ob3VcIDsKK+mkiuavm+WJpCA8IHlvdW1vdXphaVwgOwor5rWu5rCX6ICFIDwgdXdha2ltb25vXCA7Civnm7LnqbQgPCBtZWt1cmFhbmFcIDsKK+WNseapn+eqgeegtCA8IGtpa2l0b3BwYVwgOwor5pqX6buS6KGXIDwgYW5rb2t1Z2FpXCA7CivlpKflhYPluKUgPCBkYWlnZW5zdWlcIDsKK+WFjeioseeKtiA8IG1lbmt5b2pvdVwgOwor6I2J566SIDwga3VzYWJvdWtpXCA7Civlh7rnj74gPCBzaHV0c3VnZW5cIDsKK+WknOWFieiZqyA8IHlha291Y2h1dVwgOwor5aWH5aSp54OIIDwga2l0ZXJldHN1XCA7CivljJnliqDmuJsgPCBzYWppa2FnZW5cIDsKK+WHneedgCA8IGd5b3VjaGFrdVwgOwor5Yqj5byxIDwgcmV0c3VqYWt1XCA7CivmipXmiYvmnb8gPCB0b3VzaHViYW5cIDsKK+W+k+alreWToSA8IGp1dWd5b3VpblwgOwor5om56KmV55y8IDwgaGloeW91Z2FuXCA7Civkv67pgZPlpbMgPCBzaHV1ZG91am9cIDsKK+Wcp+eXm+eCuSA8IGF0dHN1dXRlblwgOwor5rW35YW16ZqKIDwga2FpaGVpdGFpXCA7CivogIPoqrLooaggPCBrb3VrYWh5b3VcIDsKK+m6puiKveezliA8IGJha3VnYXRvdVwgOwor55yf546HIDwgc2hpbnNvdHN1XCA7Civoi6bomasgPCBuaWdhbXVzaGlcIDsKK+api+iEmiA8IGt5b3VreWFrdVwgOwor5bem6IWVIDwgaGlkYXJpdWRlXCA7CivmlofoirjmrIQgPCBidW5nZWlyYW5cIDsKK+WknOebsueXhyA8IHlhbW91c2hvdVwgOwor5oqV56i/6ICFIDwgdG91a291c2hhXCA7CivnhKHlt67liKUgPCBtdXNhYmV0c3VcIDsKK+epuuaMuumaiiA8IGt1dXRlaXRhaVwgOwor5b6u6Kq/5pW0IDwgYmljaG91c2VpXCA7Civlj6Plv6Dlrp8gPCBrdWNoaW1hbWVcIDsKK+iKseaooeanmCA8IGhhbmFtb3lvdVwgOwor5pyJ5ZCN5qChIDwgeXV1bWVpa291XCA7CivnibnoqLHmqKkgPCB0b2treW9rZW5cIDsKK+mrmOm8viA8IHRha2FpYmlraVwgOwor5qeL5oiQ5a2QIDwga291c2Vpc2hpXCA7CivnnJ/niakgPCBzaGluYnV0c3VcIDsKK+W8lOWuoiA8IGNob3VreWFrdVwgOwor6KuL6aGY5pu4IDwgc2VpZ2Fuc2hvXCA7Civmi6Hlo7DmqZ8gPCBrYWt1c2Vpa2lcIDsKK+WMu+eZguapn+WZqCA8IGlyeW91a2lraVwgOwor55m+6JasIDwgaHlha3V5YWt1XCA7CivoqI7oq5bkvJogPCB0b3Vyb25rYWlcIDsKK+iMtuetkiA8IGNoYWR6dXRzdVwgOwor5byf5aiYIDwgb3RvbXVzdW1lXCA7CivnnIHnlaUgPCBzaG91cnlha3VcIDsKK+aLmOe9ruaJgCA8IGtvdWNoaXNob1wgOwor5Lqk5riJ5ZOhIDwga291c2hvdWluXCA7CivlirTlvbnloLQgPCByb3Vla2lqb3VcIDsKK+mVt+Wwvum2jyA8IG5hZ2FvZG9yaVwgOwor5rC06YqA54GvIDwgc3VpZ2ludG91XCA7CivkuLvmiJDliIYgPCBzaHVzZWlidW5cIDsKK+S/rui+nuazlSA8IHNodXVqaWhvdVwgOwor5Y2T6Kmx5LyaIDwgdGFrdXdha2FpXCA7CivpgIbmtYEgPCBneWFrdXJ5dXVcIDsKK+atjOW/gyA8IHV0YWdva29yb1wgOwor5omL5bel6Iq4IDwgc2h1a291Z2VpXCA7CivmlpnnkIbms5UgPCByeW91cmlob3VcIDsKK+aJv+iqjeWbsyA8IHNob3VuaW56dVwgOwor5pys5bO25Lq6IDwgaG9udG91amluXCA7CivmgZLluLjmgKcgPCBrb3Vqb3VzZWlcIDsKK+mAseacqyA8IHNodXVtYXRzdVwgOwor552A5rC3IDwgY2hha3VoeW91XCA7Civnmb3oj4ogPCBzaGlyYWdpa3VcIDsKK+W5tOazoiA8IHRvc2hpbmFtaVwgOwor57WE57mU5YyWIDwgc29zaGlraWthXCA7CivlvqHmlrDpgKAgPCBnb3NoaW56b3VcIDsKK+ato+WupCA8IHNlaXNoaXRzdVwgOwor5Lm+6Zu75rGgIDwga2FuZGVuY2hpXCA7Civoh6rkvZzovrIgPCBqaXNha3Vub3VcIDsKK+iPiuaciCA8IGtpa3VkenVraVwgOwor5Yi256m65qipIDwgc2Vpa3V1a2VuXCA7CivoirHmpLDoj5wgPCBoYW5heWFzYWlcIDsKK+ertuaKgOWgtCA8IGt5b3VnaWpvdVwgOwor5pen5Yi25bqmIDwga3l1dXNlaWRvXCA7CivlhbHlkozmlL8gPCBreW91d2FzZWlcIDsKK+WkqeS4i+eEoeavlCA8IHRlbmthbXVoaVwgOwor5bCK546L5a62IDwgc29uJydub3VrYVwgOwor5bm05q+OIDwgdG9zaGlnb3RvXCA7CivpgLHml6UgPCBzaHV1aml0c3VcIDsKK+mBhemAsuWFkCA8IGNoaXNoaW5qaVwgOwor6Iqx6KGXIDwgaGFuYW1hY2hpXCA7Civlt53nuIEgPCBrYXdhYnVjaGlcIDsKK+W9ouS7oyA8IGthdGFzaGlyb1wgOwor5qCE6aSK5a2mIDwgZWl5b3VnYWt1XCA7Civmjqnorbfpg6jpmoogPCBlbmdvYnV0YWlcIDsKK+eZveiJsiA8IGhha3VzaG9rdVwgOwor5LiN5LuL5YWlIDwgZnVrYWlueXV1XCA7CivmipXmiYvmiKYgPCB0b3VzaHVzZW5cIDsKK+eKrOW8teWtkCA8IGludWhhcmlrb1wgOwor6YCB6Zu757eaIDwgc291ZGVuc2VuXCA7CivljbXpu4TlmqIgPCByYW4nJ291bm91XCA7CivliKXmo58gPCBiZXRzdW11bmVcIDsKK+awl+Wcp+ioiCA8IGtpYXRzdWtlaVwgOwor6aeG6Jmr5YmkIDwga3VjaHV1emFpXCA7Civniqzov73niakgPCBpbnVvdW1vbm9cIDsKK+S4ieaWkem2iSA8IG1pZnV1enVyYVwgOwor5YaK56uLIDwgc2FrdXJpdHN1XCA7Civppqzpub/ph47pg44gPCBiYWtheWFyb3VcIDsKK+WztumiqCA8IHNoaW1ha2F6ZVwgOwor5ouN5a2Q5pyoIDwgaHlvdXNoaWdpXCA7CivlpJrmr5vkvZwgPCB0YW1vdXNha3VcIDsKK+aJi+iNt+eJqSA8IHRlbmltb3RzdVwgOwor5byx5Y2SIDwgamFrdXNvdHN1XCA7Civlh6DluLPpnaIgPCBraWNob3VtZW5cIDsKK+aooeevhOeahCA8IG1vaGFudGVraVwgOwor5YOV6YGUIDwgYm9rdXRhY2hpXCA7Civpq63pnaIgPCBoaWdlZHp1cmFcIDsKK+ethuiomOW4syA8IGhpa2tpY2hvdVwgOwor5by15YqbIDwgY2hvdXJ5b2t1XCA7Civou5/os6ogPCBuYW5zaGl0c3VcIDsKK+mVt+i3nemboiA8IGNob3VreW9yaVwgOwor576O5bCR5bm0IDwgYmlzaG91bmVuXCA7Civkub7nh6XmnZAgPCBrYW5zb3V6YWlcIDsKK+eUn+eUo+iAhSA8IHNlaXNhbnNoYVwgOwor5LiN5pyN5b6TIDwgZnVmdWt1anV1XCA7CivmnKzmoLzmtL4gPCBob25rYWt1aGFcIDsKK+iPseW9oiA8IGhpc2hpZ2F0YVwgOwor5Y6f5a2Q5oimIDwgZ2Vuc2hpc2VuXCA7CivkuI3lpInph48gPCBmdWhlbnJ5b3VcIDsKK+mhlOmmtOafkyA8IGthb25hamltaVwgOwor6YCy5o2XIDwgc2hpbmNob2t1XCA7CivokL3okYnmqLkgPCByYWt1eW91anVcIDsKK+S4iemgreetiyA8IHNhbnRvdWtpblwgOwor5YO76KqsIDwgaGVraXNldHN1XCA7Civlj6Poqp7oi7Hoqp4gPCBrb3Vnb2VpZ29cIDsKK+S7o+iogOiAhSA8IGRhaWdlbnNoYVwgOwor6Iy255WRIDwgY2hhYmF0YWtlXCA7Civmj67nmbrluqYgPCBraWhhdHN1ZG9cIDsKK+Wkp+iHqueEtiA8IGRhaXNoaXplblwgOwor5LiN5pmC552AIDwgZnVqaWNoYWt1XCA7CivntbHliLbnt5ogPCB0b3VzZWlzZW5cIDsKK+aoque2sSA8IHlva29kenVuYVwgOwor5YWO6ICzIDwgdXNhZ2ltaW1pXCA7CivlhYnpm7vmsaAgPCBrb3VkZW5jaGlcIDsKK+iKseS+m+mkiiA8IGhhbmFrdXlvdVwgOwor6Zuj5ZWP6aGMIDwgbmFubW9uZGFpXCA7Civntpnpm7vpjbUgPCBrZWlkZW5rZW5cIDsKK+apn+aisOWtpiA8IGtpa2FpZ2FrdVwgOwor5bO26ZmwIDwgc2hpbWFrYWdlXCA7Civlqabkurrnl4UgPCBmdWppbmJ5b3VcIDsKK+WQjOWlveiAhSA8IGRvdWtvdXNoYVwgOwor5YG95aaK5aigIDwgZ2luaW5zaGluXCA7Civnn6LljbAgPCB5YWppcnVzaGlcIDsKK+edgOacjSA8IGNoYWt1ZnVrdVwgOwor54Gr57iE6YqDIDwgaGluYXdhanV1XCA7Civlu7rlnaogPCB0YXRldHN1Ym9cIDsKK+WJr+WwuiA8IGZ1a3VzaGFrdVwgOwor5Yid5pilIDwgaGF0c3VoYXJ1XCA7CivliY3li5jlrpogPCBtYWVrYW5qb3VcIDsKK+aXoueZuuihqCA8IGtpaGFwcHlvdVwgOwor5YWx56uLIDwga3lvdXJpdHN1XCA7CivoirHoj7EgPCBoYW5hYmlzaGlcIDsKK+eUsueKtuiFuiA8IGtvdWpvdXNlblwgOwor56i95Y+k5LqLIDwga2Vpa29nb3RvXCA7CivmiJDmlofms5UgPCBzZWlidW5ob3VcIDsKK+W7tuWdqiA8IG5vYmV0c3Vib1wgOwor6KaP5qC85ZOBIDwga2lrYWt1aGluXCA7Civku5Xkuovml6UgPCBzaGlnb3RvYmlcIDsKK+WIhuS4jueojiA8IGJ1bicneW96ZWlcIDsKK+eZveeEoeWeoiA8IHNoaXJvbXVrdVwgOwor5LqM562J6LOeIDwgbml0b3VzaG91XCA7CivmpbXph48gPCBreW9rdXJ5b3VcIDsKK+WumuS8keaXpSA8IHRlaWt5dXViaVwgOwor6Imv6K2YIDwgcnlvdXNoaWtpXCA7CivlvJ/liIYgPCBvdG91dG9idW5cIDsKK+eZveeBr+ayuSA8IGhha3V0b3V5dVwgOwor6Imy6Kq/IDwgc2hpa2ljaG91XCA7CivpiYTngavlkbPlmYwgPCB0ZWtrYW1pc29cIDsKK+mBi+i7ouW4rSA8IHVudGVuc2VraVwgOwor5YWs5rCR6aSoIDwga291bWlua2FuXCA7Civnr6TovrLlrrYgPCB0b2t1bm91a2FcIDsKK+iMieiOieiKsSA8IG1hdHN1cmlrYVwgOwor5Lq65bel5rivIDwgamlua291a291XCA7Civps7blj6MgPCB0b2JpZ3VjaGlcIDsKK+mrmOmZteWcnyA8IGtvdXJ5b3Vkb1wgOwor5oSf5YWJ5p2/IDwga2Fua291YmFuXCA7Civlhavnpo8gPCBoYWNoaWZ1a3VcIDsKK+iJsuimmiA8IHNoaWtpa2FrdVwgOwor5LiJ5LmX5qC5IDwgc2Fuam91a29uXCA7Civnn7Pku48gPCBzZWtpYnV0c3VcIDsKK+eUt+miqOWRgiA8IG90b2tvYnVyb1wgOwor5aWz6YOO6IqxIDwgb21pbmFlc2hpXCA7Civmu57ntI3ogIUgPCB0YWlub3VzaGFcIDsKK+ats+WHuiA8IHNhaXNodXRzdVwgOwor5Lyd6YGT5birIDwgZGVuZG91c2hpXCA7Civlv5zlj6zlhbUgPCBvdXNob3VoZWlcIDsKK+ikh+WNgeWtlyA8IGZ1a3VqdXVqaVwgOwor55u05rWBIDwgY2hva3VyeXV1XCA7CivpmL/lvKXpmYDntYwgPCBhbWlkYWt5b3VcIDsKK+iKjeiWrCA8IHNoYWt1eWFrdVwgOwor5YaN5qeL5oiQIDwgc2Fpa291c2VpXCA7CivmnInmrrXogIUgPCB5dXVkYW5zaGFcIDsKK+WNmOiho+eJqSA8IGhpdG9lbW9ub1wgOwor6KaP5qC85YikIDwga2lrYWt1YmFuXCA7CivnrKzkuInogIUgPCBkYWlzYW5zaGFcIDsKK+WHuuacrSA8IHNodXNzYXRzdVwgOwor5Ymy5aKXIDwgd2FyaW1hc2hpXCA7CivkvZPmk43loLQgPCB0YWlzb3Vqb3VcIDsKK+S4u+a1gea0viA8IHNodXJ5dXVoYVwgOwor6Iqd6I2JIDwgc2hpYmFrdXNhXCA7CivluoPloLHlrpggPCBrb3Vob3VrYW5cIDsKK+ecn+adsSA8IG1haGlnYXNoaVwgOwor5Lq65bel5rGgIDwgamlua291aWtlXCA7Civlj6Pok4vlnoIgPCBrb3VnYWlzdWlcIDsKK+mHkeWJm+eggiA8IGtvbmdvdXNoYVwgOwor5Y2B5LiJ5aScIDwganV1c2FuJyd5YVwgOwor5aSn5a2m6ZmiIDwgZGFpZ2FrdWluXCA7CivkuZfnlKjou4ogPCBqb3V5b3VzaGFcIDsKK+S4jeaYjueiuiA8IGZ1bWVpa2FrdVwgOwor6Zi/5byl6ZmA57GkIDwgYW1pZGFrdWppXCA7CivonIPmsJfmpbwgPCBzaGlua2lyb3VcIDsKK+ikh+iRieapnyA8IGZ1a3V5b3VraVwgOwor5LqM562J6KaqIDwgbml0b3VzaGluXCA7CivojYnnq7bppqwgPCBrdXNha2VpYmFcIDsKK+aouOebtCA8IGJva3VjaG9rdVwgOwor6Zqg5YWD6LGGIDwgaW5nZW5tYW1lXCA7CivluZXmnKsgPCBiYWt1bWF0c3VcIDsKK+e0r+S5l+aguSA8IHJ1aWpvdWtvblwgOwor5qSO6aqoIDwgdHN1aWtvdHN1XCA7CivmnbHmtIvkurogPCB0b3V5b3VqaW5cIDsKK+ertuaKgOS8miA8IGt5b3VnaWthaVwgOwor5Yun6KqY5ZOhIDwga2FuJyd5dXVpblwgOwor6ICB5amG5b+DIDwgcm91YmFzaGluXCA7CivlgrXmqKnogIUgPCBzYWlrZW5zaGFcIDsKK+esrOS4gOe+qSA8IGRhaWljaGlnaVwgOwor5q2j5Ye6IDwgc2Vpc2h1dHN1XCA7CivlnKflgJLnmoQgPCBhdHRvdXRla2lcIDsKK+S4jeaYjueerSA8IGZ1bWVpcnlvdVwgOwor5pS+6Zu7566hIDwgaG91ZGVua2FuXCA7Civlh7bml6UgPCBreW91aml0c3VcIDsKK+WJjei6q+mggyA8IG1hZW1pZ29yb1wgOwor5bCR5pWw5rS+IDwgc2hvdXN1dWhhXCA7CivnibnmjZzpg6ggPCB0b2t1c291YnVcIDsKK+iqv+mmrOW4qyA8IGNob3ViYXNoaVwgOwor6YGK5aSxIDwgeXV1c2hpdHN1XCA7CivnkIboq5bnmoQgPCByaXJvbnRla2lcIDsKK+mjsuawtOmHjyA8IGluc3VpcnlvdVwgOwor6Kq/55CG5rOVIDwgY2hvdXJpaG91XCA7CivntK/niq/ogIUgPCBydWloYW5zaGFcIDsKK+i7iuidpiA8IGt1cnVtYWViaVwgOwor5aW96YO95ZCIIDwga291dHN1Z291XCA7Civlronlhajln58gPCBhbnplbicnaWtpXCA7CivomZrmoITlv4MgPCBreW9laXNoaW5cIDsKK+Wumuacn+eahCA8IHRlaWtpdGVraVwgOwor5Yid5b25IDwgaGF0c3V5YWt1XCA7Civoqo3lj6/oqLwgPCBuaW5rYXNob3VcIDsKK+S/oeW/g+WutiA8IHNoaW5qaW5rYVwgOwor5by35aem572qIDwgZ291a2FuemFpXCA7CivmlZnmjojkvJogPCBreW91anVrYWlcIDsKK+mAo+WQiOi7jSA8IHJlbmdvdWd1blwgOwor6YG45Ye6IDwgc2Vuc2h1dHN1XCA7Civov6vmjIEgPCBzZXJpbW9jaGlcIDsKK+mHjeWQiOS9kyA8IGp1dWdvdXRhaVwgOwor5Yqg6JmQ5oSbIDwga2FneWFrdWFpXCA7CivmsrPlt53mlbcgPCBrYXNlbmppa2lcIDsKK+i7jemaiuiRrCA8IGd1bnRhaXNvdVwgOwor5pWw5bm06ZaTIDwgc3V1bmVua2FuXCA7Civou73msJfnkIMgPCBrZWlraWt5dXVcIDsKK+mdkua1ruiNiSA8IGFvdWtpa3VzYVwgOwor5a2Y5Zyo5oSP576pIDwgc29uemFpaWdpXCA7Civlronmpb3mrbsgPCBhbnJha3VzaGlcIDsKK+mHkeW5s+ezliA8IGtvbnBlaXRvdVwgOwor5a6a5L2P5ZywIDwgdGVpanV1Y2hpXCA7Civph5HovKrpmpsgPCBrb25yaW56YWlcIDsKK+aWmeeQhuW6lyA8IHJ5b3VyaXRlblwgOwor6LK/5piT6aKoIDwgYm91ZWtpZnV1XCA7Civkurrlt6XmnpcgPCBqaW5rb3VyaW5cIDsKK+a1t+mBi+alrSA8IGthaXVuZ3lvdVwgOwor6KGj6aOf5L2PIDwgaXNob2t1anV1XCA7CivnnYDluoogPCBjaGFrdXNob3VcIDsKK+WvneWFt+mhniA8IHNoaW5ndXJ1aVwgOwor5bm05byxIDwgdG9zaGl5b3dhXCA7CivlsbHptokgPCB5YW1hdXp1cmFcIDsKK+adseWNl+adsSA8IHRvdW5hbnRvdVwgOwor77y35p2vIDwgZGFidXJ1aGFpXCA7CivnlLLmnb/lk6EgPCBrb3VoYW4nJ2luXCA7Civnj77ku6Plj7IgPCBnZW5kYWlzaGlcIDsKK+agueiPnOmhniA8IGtvbnNhaXJ1aVwgOwor552A5bitIDwgY2hha3VzZWtpXCA7CivlrprkvovkvJogPCB0ZWlyZWlrYWlcIDsKK+axuumXmOeKtiA8IGtldHRvdWpvdVwgOwor6JqV5Y2157SZIDwgc2FucmFuc2hpXCA7CivlpJbokpnlj6QgPCBzb3RvbW91a29cIDsKK+i+u+acrSA8IHRzdWppZnVkYVwgOwor6LuK5Lih5YyWIDwgc2hhcnlvdWthXCA7CivpganliIcgPCB0ZWtpc2V0c3VcIDsKK+WPiOW+k+WFhOW8nyA8IG1hdGFpdG9rb1wgOwor55m655eFIDwgaGF0c3VieW91XCA7CivmhJ/lhYnmgKcgPCBrYW5rb3VzZWlcIDsKK+esrOS4gOeroCA8IGRhaWlzc2hvdVwgOwor55eF6K2YIDwgYnlvdXNoaWtpXCA7CivlibXlh7ogPCBzb3VzaHV0c3VcIDsKK+WIpeWupCA8IGJlc3NoaXRzdVwgOwor6Ieo55WM54K5IDwgcmlua2FpdGVuXCA7CivllYblo7LmsJcgPCBzaG91YmFpZ2lcIDsKK+WbveaGsuazlSA8IGtva2tlbnBvdVwgOwor5Lih6Zmb5LiLIDwgcnlvdWhlaWthXCA7CivpmZDlrprniYggPCBnZW50ZWliYW5cIDsKK+WJjei7iui8qiA8IHplbnNoYXJpblwgOwor5bm05bWpIDwgdG9zaGlrYXNhXCA7Civnvr3mr5vluIPlm6MgPCB1bW91ZnV0b25cIDsKK+mbhOeJm+ezniA8IG91c2hpa3Vzb1wgOwor5LiN5aaK55eHIDwgZnVuaW5zaG91XCA7CivlpInmtYHlmaggPCBoZW5yeXV1a2lcIDsKK+WIneWtqyA8IGhhdHN1bWFnb1wgOwor5Ye65b6hIDwgc2h1dHN1Z3lvXCA7Civph53kvpvppIogPCBoYXJpa3V5b3VcIDsKK+W+ruimlueahCA8IGJpc2hpdGVraVwgOwor55uj6KaW5aGUIDwga2Fuc2hpdG91XCA7Civnmb3njokgPCBzaGlyYXRhbWFcIDsKK+WNoOaLoOWcsCA8IHNlbmt5b2NoaVwgOwor5oyH5ZCR5oCnIDwgc2hpa291c2VpXCA7CivkuIDkurrnlKggPCBoaXRvcml5b3VcIDsKK+iqv+mmrOWgtCA8IGNob3ViYWpvdVwgOwor5YaN6Ly45YWlIDwgc2FpeXVueXV1XCA7Civntr/mtKXoposgPCB3YXRhdHN1bWlcIDsKK+WEquiJr+WFkCA8IHl1dXJ5b3VqaVwgOwor5rWu5YuV56WoIDwgZnVkb3VoeW91XCA7CivlhYjlpKnmgKcgPCBzZW50ZW5zZWlcIDsKK+W9ouaIkOWxpCA8IGtlaXNlaXNvdVwgOwor55u05pKDIDwgY2hva3VnZWtpXCA7CivluKvnr4Tku6MgPCBzaGloYW5kYWlcIDsKK+W5tOWvhCA8IHRvc2hpeW9yaVwgOwor5LyR5q2i56ymIDwga3l1dXNoaWZ1XCA7Civmpo7ojLggPCBlbm9raXRha2VcIDsKK+S4jemdouebriA8IGZ1bWVubW9rdVwgOwor6Ii56JmrIDwgZnVuYW11c2hpXCA7CivlsI/ns6Dpm6ggPCBrb251a2FhbWVcIDsKK+acrOS6iOeulyA8IGhvbicneW9zYW5cIDsKK+aMh+WNl+eVqiA8IHNoaW5hbmJhblwgOwor6Ieq55Sx5qWtIDwgaml5dXVneW91XCA7CivnpoHovLjlk4EgPCBraW4nJ3l1aGluXCA7Civlj7jkvJrogIUgPCBzaGlrYWlzaGFcIDsKK+aKleeov+ashCA8IHRvdWtvdXJhblwgOwor55m954axIDwgaGFrdW5ldHN1XCA7CivmpbXoloQgPCBreW9rdWhha3VcIDsKK+eZveeGiiA8IHNoaXJva3VtYVwgOwor5oy/6Kmx55qEIDwgc291d2F0ZWtpXCA7CivlibLku5ggPCB3YXJpdHN1a2VcIDsKK+WIneWkoiA8IGhhdHN1eXVtZVwgOwor6YGT5Lit6KiYIDwgZG91Y2h1dWtpXCA7CivljYrloanmsLQgPCBoYW4nJ2Vuc3VpXCA7CivmjpLku5bnmoQgPCBoYWl0YXRla2lcIDsKK+Wkp+iFuOeCjiA8IGRhaWNob3VlblwgOwor5YiG5a6kIDwgYnVuc2hpdHN1XCA7CivlsLzms5XluKsgPCBhbWFob3VzaGlcIDsKK+Wumue9rue2siA8IHRlaWNoaWFtaVwgOwor5bq25Ye6IDwgc2hvc2h1dHN1XCA7CivlhaXmu4UgPCBueXV1bWV0c3VcIDsKK+iKuOiDveeVjCA8IGdlaW5vdWthaVwgOwor5Y2K5r+B6Z+zIDwgaGFuZGFrdW9uXCA7CivphY3nrqHlt6UgPCBoYWlrYW5rb3VcIDsKK+WJsuS4iyA8IHdhcmlzaGl0YVwgOwor54++5Luj5Lq6IDwgZ2VuZGFpamluXCA7CivovrLmvIHmsJEgPCBub3VneW9taW5cIDsKK+W4guadviA8IGljaGltYXRzdVwgOwor5aWz5oCn5a2mIDwgam9zZWlnYWt1XCA7Civkub7nh6XlnLAgPCBrYW5zb3VjaGlcIDsKK+WIhumhnuazlSA8IGJ1bnJ1aWhvdVwgOwor5Yip5bex5Li7576pIDwgcmlrb3NodWdpXCA7Civnn7Poho/lg48gPCBzZWtrb3V6b3VcIDsKK+W9seatpuiAhSA8IGthZ2VtdXNoYVwgOwor5rS754mI5pysIDwga2FwcGFuYm9uXCA7Civku5XkuovloLQgPCBzaGlnb3RvYmFcIDsKK+WppuS6uuacjSA8IGZ1amluZnVrdVwgOwor5a+d5b+D5ZywIDwgbmVnb2tvY2hpXCA7CivlhKrnlLcgPCB5YXNhb3Rva29cIDsKK+e1teW3u+eJqSA8IGVtYWtpbW9ub1wgOwor5LiN5paZ57ChIDwgZnVyeW91a2VuXCA7CivljJbnn7PlsaQgPCBrYXNla2lzb3VcIDsKK+aZqemkkOS8miA8IGJhbnNhbmthaVwgOwor5LuV5pS+6aGMIDwgc2hpaG91ZGFpXCA7CivmoYjlhoXnirYgPCBhbicnbmFpam91XCA7CivlpJrlhYPnmoQgPCB0YWdlbnRla2lcIDsKK+WItua1t+aoqSA8IHNlaWthaWtlblwgOwor5Lqk6YWN56iuIDwga291aGFpc2h1XCA7CivovaLmrrogPCByZWtpc2F0c3VcIDsKK+WcqOS9j+iAhSA8IHphaWp1dXNoYVwgOwor5oiQ54af5pyfIDwgc2VpanVrdWtpXCA7CivnnJ/lrp8gPCBzaGluaml0c3VcIDsKK+WFseWSjOWFmiA8IGt5b3V3YXRvdVwgOwor5bmz5pa55qC5IDwgaGVpaG91a29uXCA7Civoq5zloLHlk6EgPCBjaG91aG91aW5cIDsKK+iIiOWlruWJpCA8IGtvdWZ1bnphaVwgOwor55m95rudIDwgc2hpcmF0YWtpXCA7CivlhYjopovogIUgPCBzZW5rZW5zaGFcIDsKK+iIquepuuWIuCA8IGtvdWt1dWtlblwgOwor6YCf5Y+jIDwgaGF5YWt1Y2hpXCA7CivlhYnpm7vlrZAgPCBrb3VkZW5zaGlcIDsKK+mAsuWFpSA8IHNoaW4nJ255dXVcIDsKK+WEsueJqSA8IG1vdWtlbW9ub1wgOwor6IWw6auYIDwga29zaGlkYWthXCA7Civlo7Llm73lpbQgPCBiYWlrb2t1ZG9cIDsKK+e5geWIhuaVsCA8IGhhbmJ1bnN1dVwgOwor5oCn6KGM5YuVIDwgc2Vpa291ZG91XCA7CivpioDooYzliLggPCBnaW5rb3VrZW5cIDsKK+api+ahgSA8IGhhc2hpZ2V0YVwgOwor5LiH5LiH5q2zIDwgYmFuYmFuemFpXCA7Civpqqjos6ogPCBrb3NzaGl0c3VcIDsKK+WBnOiIueWgtCA8IHRlaXNlbmpvdVwgOwor6IWw6aqoIDwga29zaGlib25lXCA7CivlmIbpoZjmm7ggPCB0YW5nYW5zaG9cIDsKK+WGjeeUn+eUoyA8IHNhaXNlaXNhblwgOwor5Zyw5a++5ZywIDwgY2hpdGFpY2hpXCA7Civkv67po74gPCBzaHV1c2hva3VcIDsKK+aWh+S9k+irliA8IGJ1bnRhaXJvblwgOwor6Kq/5p+75ZujIDwgY2hvdXNhZGFuXCA7Civnmb3mtaogPCBzaGlyYW5hbWlcIDsKK+WNmOihjOacrCA8IHRhbmtvdWJvblwgOwor5bCP5aSc5puyIDwgc2F5b2t5b2t1XCA7Civlh7rkuJbplpMgPCBzaHVzc2VrZW5cIDsKK+eZvea1nCA8IHNoaXJhaGFtYVwgOwor6Im256iuIDwgdHN1eWFkYW5lXCA7CivpgJ/lipsgPCBzb2t1cnlva3VcIDsKK+WNmOihjOabuCA8IHRhbmtvdXNob1wgOwor5LiA5pmC6ZaTIDwgaWNoaWppa2FuXCA7CivmuKnms4npg7cgPCBvbnNlbmt5b3VcIDsKK+i+u+W6lyA8IHRzdWppbWlzZVwgOwor5pyJ5ZCN5Lq6IDwgeXV1bWVpamluXCA7CivlvoznlLLmnb8gPCBrb3VrYW5wYW5cIDsKK+WWtuWIqeS4u+e+qSA8IGVpcmlzaHVnaVwgOwor5byx5L2T5YyWIDwgamFrdXRhaWthXCA7CivntYzmuIjpnaIgPCBrZWl6YWltZW5cIDsKK+S/rumok+mBkyA8IHNodWdlbmRvdVwgOwor6Iy25omAIDwgY2hhZG9rb3JvXCA7CivlvoDnlJ/pmpsgPCBvdWpvdWdpd2FcIDsKK+W6g+WPoyA8IGhpcm9rdWNoaVwgOwor5bC66aqoIDwgc2hha2tvdHN1XCA7Civlh7rloYEgPCBzaHV0c3VydWlcIDsKK+aui+WtmOiAhSA8IHphbnpvbnNoYVwgOwor6Iiq56m65L6/IDwga291a3V1YmluXCA7CivmoLjmraboo4UgPCBrYWt1YnVzb3VcIDsKK+ebruW6hyA8IG1hYmlzYXNoaVwgOwor55m95rC0IDwgc2hpcm9taXp1XCA7CivoibLnpZ4gPCBzaGlraXNoaW5cIDsKK+Wfi+iUtemHkSA8IG1haXpvdWtpblwgOwor5a2k56uL5YyWIDwga29yaXRzdWthXCA7CivogZblrrbml48gPCBzZWlrYXpva3VcIDsKK+azpeeCreWcsCA8IGRlaXRhbmNoaVwgOwor5aSW6Lyq6Ii5IDwgZ2Fpcmluc2VuXCA7CivopIfliKnms5UgPCBmdWt1cmlob3VcIDsKK+WFpeakjSA8IG55dXVzaG9rdVwgOwor6JK455WZ5ZmoIDwgam91cnl1dWtpXCA7CivpkZHlrprmm7ggPCBrYW50ZWlzaG9cIDsKK+ijveawt+apnyA8IHNlaWh5b3VraVwgOwor55u05bGeIDwgY2hva3V6b2t1XCA7CivmtojosrvosqEgPCBzaG91aGl6YWlcIDsKK+iRl+S9nOWutiA8IGNob3Nha3VrYVwgOwor5biC6LKp5ZOBIDwgc2hpaGFuaGluXCA7Civlt7vpoK3oqIAgPCBrYW50b3VnZW5cIDsKK+WHoeWksSA8IGJvbnNoaXRzdVwgOwor6Kq/55CG5birIDwgY2hvdXJpc2hpXCA7Civlha3mnIggPCByb2t1Z2F0c3VcIDsKK+ecn+ahkeeTnCA8IG1ha3V3YXVyaVwgOwor6ZqP5b6T6ICFIDwgenVpanV1c2hhXCA7CivkuIDlr7jlhYggPCBpc3N1bnNha2lcIDsKK+aWh+WtpumDqCA8IGJ1bmdha3VidVwgOwor5LqI57SE5Yi2IDwgeW95YWt1c2VpXCA7Civnt5rpgJ/luqYgPCBzZW5zb2t1ZG9cIDsKK+W5s+mdouW9oiA8IGhlaW1lbmtlaVwgOwor6KSH5q+U5L6LIDwgZnVrdWhpcmVpXCA7CivmlaPmsLTou4ogPCBzYW5zdWlzaGFcIDsKK+S4gOaZgumHkSA8IGljaGlqaWtpblwgOwor5YmN5bm05bqmIDwgemVuJyduZW5kb1wgOwor54Sh5aOw5pig55S7IDwgbXVzZWllaWdhXCA7CivlhaXmnK0gPCBueXV1c2F0c3VcIDsKK+eZuuihjOiAhSA8IGhha2tvdXNoYVwgOwor5YGc55WZ5omAIDwgdGVpcnl1dWpvXCA7Civlrq7ln47nnIwgPCBtaXlhZ2lrZW5cIDsKK+WJjeWJjeWbniA8IHplbnplbmthaVwgOwor54eX5b6z5YipIDwga2FuZG9rdXJpXCA7CivmrbvliJHloLQgPCBzaGlrZWlqb3VcIDsKK+WxsemBkyA8IHlhbWFtaWNoaVwgOwor5be75a2Q5pysIDwga2Fuc2hpaG9uXCA7CivpgIDlh7ogPCB0YWlzaHV0c3VcIDsKK+alveevgCA8IGdha3VzZXRzdVwgOwor5bi45aSPIDwgdG9rb25hdHN1XCA7CivnlLrorbDkvJogPCBjaG91Z2lrYWlcIDsKK+eUs+mBlCA8IHNoaW50YXRzdVwgOwor5Lq655Sf6KazIDwgamluc2Vpa2FuXCA7CivnnJ/nj6Dosp0gPCBzaGluanVnYWlcIDsKK+iLpeadviA8IHdha2FtYXRzdVwgOwor5bGA6ZW3IDwga3lva3VjaG91XCA7CivprLznk6YgPCBvbmlnYXdhcmFcIDsKK+W4neWupCA8IHRlaXNoaXRzdVwgOwor5Lqs6YO95biCIDwga3lvdXRvc2hpXCA7Civpm6jlj7DpoqggPCBhbWV0YWlmdXVcIDsKK+iHqueUseW9oiA8IGppeXV1Z2F0YVwgOwor5YWN6Kix5Yi2IDwgbWVua3lvc2VpXCA7Civpm5HloLHmrIQgPCB6YXBwb3VyYW5cIDsKK+aEm+WFmuW/gyA8IGFpdG91c2hpblwgOwor6Ziy5q2i5rOVIDwgYm91c2hpaG91XCA7Civoo5zliqnmvKLlrZcgPCBob2pva2FuamlcIDsKK+W6iuS4iyA8IHl1a2FzaGl0YVwgOwor6YG45oyZ5rOVIDwgc2Vua3lvaG91XCA7Civlkozoi7Hovp7mm7ggPCB3YWVpamlzaG9cIDsKK+edgOS/oSA8IGNoYWt1c2hpblwgOwor5aSp5LqV6KOPIDwgdGVuam91dXJhXCA7CivljYrpmbDlvbEgPCBoYW4nJ2luJydlaVwgOwor5pyA6YeN54K5IDwgc2FpanV1dGVuXCA7CivkuIDlr77kuIAgPCBpdHRhaWljaGlcIDsKK+eZveacrSA8IHNoaXJvZnVkYVwgOwor5YiH5YWlIDwgc2V0c3VueXV1XCA7CivmqJnmnK0gPCBoeW91c2F0c3VcIDsKK+WHuuWLlSA8IHNodXRzdWRvdVwgOwor6L+r5YqbIDwgaGFrdXJ5b2t1XCA7CivlsZHpiYQgPCBrdXp1dGV0c3VcIDsKK+mrque2sSA8IGthbWlkenVuYVwgOwor6YG45oyZ5rCRIDwgc2Vua3lvbWluXCA7CivpgJDkuIAgPCBjaGlrdWljaGlcIDsKK+aVmeWUhuiAhSA8IGt5b3VzYXNoYVwgOwor5paZ55CG5Lq6IDwgcnlvdXJpbmluXCA7Civoh6rnlLHluK0gPCBqaXl1dXNla2lcIDsKK+aciOWIiuiqjCA8IGdla2thbnNoaVwgOwor5L616aOfIDwgc2hpbnNob2t1XCA7CivkuI3nhp/nt7QgPCBmdWp1a3VyZW5cIDsKK+WPpOWFuOeahCA8IGtvdGVudGVraVwgOwor6Iqx5rC3IDwgaGFuYWdvb3JpXCA7Civkv4Tpm6ggPCBuaXdha2FhbWVcIDsKK+Wkieatu+iAhSA8IGhlbnNoaXNoYVwgOwor5pys5qC85YyWIDwgaG9ua2FrdWthXCA7Civku5XkuIrlt6UgPCBzaGlhZ2Vrb3VcIDsKK+eJoeS4ueadjyA8IGJvdGFua3lvdVwgOwor5bmz5pa55b2iIDwgaGVpaG91a2VpXCA7CivlpInljJbnkIMgPCBoZW5rYWt5dXVcIDsKK+mBoOmalOimliA8IGVua2FrdXNoaVwgOwor6Iy25a6kIDwgY2hhc2hpdHN1XCA7Civpm5HoqJjluLMgPCB6YWtraWNob3VcIDsKK+WcqOagoeeUnyA8IHphaWtvdXNlaVwgOwor55m95pelIDwgaGFrdWppdHN1XCA7CivkvqDpqqggPCBreW91a290c3VcIDsKK+WQjOS9jeWFg+e0oCA8IGRvdWlnZW5zb1wgOwor5pGp5pOm6Z+zIDwgbWFzYXRzdW9uXCA7CivlsJHpo58gPCBzaG91c2hva3VcIDsKK+W3s+W5tCA8IGhlYmlkb3NoaVwgOwor6JuN54OP6LOKIDwgaG90YXJ1aWthXCA7CivoibbniakgPCB0c3V5YW1vbm9cIDsKK+WGjeeUn+azlSA8IHNhaXNlaWhvdVwgOwor5aSa55m65qmfIDwgdGFoYXRzdWtpXCA7CivlhrflpbQgPCBoaXlheWFra29cIDsKK+a0u+eJiOWxiyA8IGthcHBhbicneWFcIDsKK+mHkeWJm+aJiyA8IGtvbmdvdXNodVwgOwor6KKr5a6z6aGNIDwgaGlnYWlnYWt1XCA7Civlho3lvpPlhYTlvJ8gPCBmdXRhaXRva29cIDsKK+mBuOaMmeaoqSA8IHNlbmt5b2tlblwgOwor5Z+65pys57WmIDwga2lob25reXV1XCA7CivpnZ7ph5HlsZ4gPCBoaWtpbnpva3VcIDsKK+Wwj+mgrSA8IGtvZ2FzaGlyYVwgOwor54yp54yp57eLIDwgc2hvdWpvdWhpXCA7Civlm57mlZnlvpIgPCBrYWlreW91dG9cIDsKK+aMh+ekuuWFiCA8IHNoaWppc2FraVwgOwor5YKZ5b+Y6YyyIDwgYmlib3Vyb2t1XCA7CivnoILns5bpu40gPCBzYXRvdWtpYmlcIDsKK+ahiOWGheabuCA8IGFuJyduYWlzaG9cIDsKK+WKn+WKtOmHkSA8IGtvdXJvdWtpblwgOwor6KKr5beu5YilIDwgaGlzYWJldHN1XCA7Civnl5jnl5XpnaIgPCBhYmF0YXp1cmFcIDsKK+acseaWh+mHkSA8IHNodWJ1bmtpblwgOwor5LiN6Ky55oWOIDwgZnVraW5zaGluXCA7Civogp3noazlpIkgPCBrYW5rb3VoZW5cIDsKK+acq+acn+eahCA8IG1ha2tpdGVraVwgOwor56S85aWJ5YWsIDwgcmVpYm91a291XCA7CivljZTmioDogIUgPCBreW91Z2lzaGFcIDsKK+Wkmui2s+mhniA8IHRhc29rdXJ1aVwgOwor5bGI6L6xIDwga3V0c3Vqb2t1XCA7CivnpZ7np5jmgKcgPCBzaGlucGlzZWlcIDsKK+ayuOmosOeCuSA8IGZ1dHRvdXRlblwgOwor6aSK6a2a5rGgIDwgeW91Z3lvY2hpXCA7CivprZTms5XnmoQgPCBtYWhvdXRla2lcIDsKK+S6nOmJm+WHuOeJiCA8IGFlbnRvcHBhblwgOwor6KO95rC35omAIDwgc2VpaHlvdWpvXCA7CivplqLopb/lvIEgPCBrYW5zYWliZW5cIDsKK+mqqOiGnCA8IGtvdHN1bWFrdVwgOwor5YWr5Y2D6I2JIDwgeWFjaGlndXNhXCA7CivnlLrop5IgPCBtYWNoaWthZG9cIDsKK+i+u+WQmyA8IHRzdWppZ2ltaVwgOwor55yB5YqbIDwgc2hvdXJ5b2t1XCA7Civpr4nluZ8gPCBrb2lub2JvcmlcIDsKK+mBk+S6pOazlSA8IGRvdWtvdWhvdVwgOwor6YeO6I+c5rGBIDwgeWFzYWlqaXJ1XCA7CivmlqHml4vmlpkgPCBhc3NlbnJ5b3VcIDsKK+i1pOmwryA8IGFrYWl3YXNoaVwgOwor6Iiq5rW35aOrIDwga291a2Fpc2hpXCA7Civmta7li5XmoKogPCBmdWRvdWthYnVcIDsKK+mqqOiCiSA8IGtvdHN1bmlrdVwgOwor5YaF5a6kIDwgbmFpc2hpdHN1XCA7Civmt7fkuqTmnpcgPCBrb25rb3VyaW5cIDsKK+aooeevhOWbmiA8IG1vaGFuc2h1dVwgOwor5bed5bK4IDwga2F3YWdpc2hpXCA7CivorJvnvqnpjLIgPCBrb3VnaXJva3VcIDsKK+W5leS4iyA8IG1ha3VzaGl0YVwgOwor55uu5Y2wIDwgbWVqaXJ1c2hpXCA7CivnlJ/lrZjogIUgPCBzZWl6b25zaGFcIDsKK+Wwu+i7vSA8IHNoaXJpZ2FydVwgOwor5LiN6Kys5oCnIDwgZnVieXV1c2VpXCA7CivlsI7pm7vmgKcgPCBkb3VkZW5zZWlcIDsKK+aUuemdqeahiCA8IGthaWtha3VhblwgOwor56OB5rCX5rWu5LiKIDwgamlraWZ1am91XCA7CivnlLfooYYgPCBvdG9rb3NodXVcIDsKK+azleaUueatoyA8IGhvdWthaXNlaVwgOwor55Sf55Sj5oCnIDwgc2Vpc2Fuc2VpXCA7CivpsJDlj6MgPCB3YW5pZ3VjaGlcIDsKK+S4iuS4reS4iyA8IGpvdWNodXVnZVwgOwor5L+h6LaKIDwgc2hpbicnZXRzdVwgOwor5L+K6YC4IDwgc2h1bicnaXRzdVwgOwor57Wm5rC05omAIDwga3l1dXN1aWpvXCA7CivnjJznlpHlv4MgPCBzYWlnaXNoaW5cIDsKK+S4jeiqv+azlSA8IGJ1Y2hvdWhvdVwgOwor5bGe6KiXIDwgc2hva3V0YWt1XCA7Civnm7LliKQgPCBtZWt1cmFiYW5cIDsKK+WPl+WLleeahCA8IGp1ZG91dGVraVwgOwor6Kq/55CG5Y+wIDwgY2hvdXJpZGFpXCA7CivnqbrplpHlnLAgPCBrdXVrYW5jaGlcIDsKK+WKtOWDjeelrSA8IHJvdWRvdXNhaVwgOwor5YaN5p2l6YCxIDwgc2FyYWlzaHV1XCA7CivoibLmsqIgPCBzaGlraXRha3VcIDsKK+WFreWwuiA8IHJva3VzaGFrdVwgOwor5Luj6KGo6YOoIDwgZGFpaHlvdWJ1XCA7Civlg4XlsJHlt64gPCBraW5zaG91c2FcIDsKK+WRqOacn+aApyA8IHNodXVraXNlaVwgOwor6aOb6KGM5pyNIDwgaGlrb3VmdWt1XCA7CivkuI3nibnlrpogPCBmdXRva3V0ZWlcIDsKK+ihqOmdouWMliA8IGh5b3VtZW5rYVwgOwor5biC5pyJ5ZywIDwgc2hpeXV1Y2hpXCA7CivmqJnmupboqp4gPCBoeW91anVuZ29cIDsKK+i+m+WPoyA8IGthcmFrdWNoaVwgOwor5rC05bmz6Z2iIDwgc3VpaGVpbWVuXCA7CivkuqTpgJrot68gPCBrb3V0c3V1cm9cIDsKK+a2iOiyu+iAhSA8IHNob3VoaXNoYVwgOwor5Y+k6YGT5YW3IDwgZnVydWRvdWd1XCA7Civln7rmnKznmoQgPCBraWhvbnRla2lcIDsKK+iNieWbo+WtkCA8IGt1c2FkYW5nb1wgOwor55yf54+g6ImyIDwgc2hpbmp1aXJvXCA7CivntbHluKXmqKkgPCB0b3VzdWlrZW5cIDsKK+iJsuassiA8IHNoaWtpeW9rdVwgOwor57e057+S5qmfIDwgcmVuc2h1dWtpXCA7CivmpbXnhrEgPCBnb2t1bmV0c3VcIDsKK+i3s+iZqyA8IHRvYmltdXNoaVwgOwor5piH6ZmN6Ii1IDwgc2hvdWtvdWRhXCA7CivlhbXluqvnnIwgPCBoeW91Z29rZW5cIDsKK+WFrOa1t+S4iiA8IGtvdWthaWpvdVwgOwor5r+A5oim5Yy6IDwgZ2VraXNlbmt1XCA7CivlhIDnpLznmoQgPCBnaXJlaXRla2lcIDsKK+acieW5s+ezliA8IGFydWhlaXRvdVwgOwor55eb54OIIDwgdHN1dXJldHN1XCA7CivkuqTpgJrosrsgPCBrb3V0c3V1aGlcIDsKK+iHo+evgCA8IHNoaW5zZXRzdVwgOwor6YeR6a2a6I2JIDwga2luZ3lvc291XCA7CivnnYDngavngrkgPCBjaGFra2F0ZW5cIDsKK+mBuOaMmeaIpiA8IHNlbmt5b3NlblwgOwor6aqo566xIDwga290c3ViYWtvXCA7CivlrpfkuLvmqKkgPCBzb3VzaHVrZW5cIDsKK+awtOmFuOaguSA8IHN1aXNhbmtvblwgOwor6LWk5Y2B5a2XIDwgc2VraWp1dWppXCA7Civok4Tpn7PmqZ8gPCBjaGlrdW9ua2lcIDsKK+S/l+iqrCA8IHpva3VzZXRzdVwgOwor6Ieq5bCK5b+DIDwgamlzb25zaGluXCA7CivooajoqJjms5UgPCBoeW91a2lob3VcIDsKK+mcsuWkqeWVhiA8IHJvdGVuc2hvdVwgOwor5LyR5bu35pelIDwga3l1dXRlaWJpXCA7Civpo7LphZLnmZYgPCBpbnNodWhla2lcIDsKK+S4gOaWiemrmCA8IGlzc2VpZGFrYVwgOwor5Yem5YiR5Y+wIDwgc2hva2VpZGFpXCA7CivlhrfmiL/ou4ogPCByZWlib3VzaGFcIDsKK+aknOeWq+aJgCA8IGtlbicnZWtpam9cIDsKK+eFp+W6puioiCA8IHNob3Vkb2tlaVwgOwor5Y+O56iO5ZCPIDwgc2h1dXplaXJpXCA7Civllonoh6rmhaIgPCBub2RvamltYW5cIDsKK+mHkeeci+advyA8IGtpbmthbmJhblwgOwor5pWj5by+6YqDIDwgc2FuZGFuanV1XCA7CivlhLLlvbkgPCBtb3VrZXlha3VcIDsKK+Wfuemkiua2siA8IGJhaXlvdWVraVwgOwor5aSp54uX6aKoIDwgdGVuZ3VrYXplXCA7CivkuIDmnKzmnYkgPCBpcHBvbnN1Z2lcIDsKK+a4rOW+ruioiCA8IHNva3ViaWtlaVwgOwor6aKo6Ie05p6XIDwgZnV1Y2hpcmluXCA7CivlnLDnkIblraYgPCBjaGlyaWdha3VcIDsKK+e+jumjn+WutiA8IGJpc2hva3VrYVwgOwor5bC/6YGT54KOIDwgbnlvdWRvdWVuXCA7CivonrPonoLmi7MgPCB0b3Vyb3VrZW5cIDsKK+iqv+eQhuS6uiA8IGNob3VyaW5pblwgOwor5Zar54WZ5omAIDwga2l0c3VlbmpvXCA7CivmmYLliIbmmYIgPCBqaWJ1bmRva2lcIDsKK+S+m+i/sCA8IGt5b3VqdXRzdVwgOwor5YWr6YeN5qGcIDwgeWFlemFrdXJhXCA7CivljZfom67oiLkgPCBuYW5iYW5zZW5cIDsKK+ixjOixhuixhiA8IGVuZG91bWFtZVwgOwor5bO754OIIDwgc2h1bnJldHN1XCA7CivnlLfohbkgPCBvdG9rb2JhcmFcIDsKK+WbnuaVsOWIuCA8IGthaXN1dWtlblwgOwor6KO96YCg6ICFIDwgc2Vpem91c2hhXCA7Civph43lvbnkvJogPCBqdXV5YWtrYWlcIDsKK+WMl+asp+S6uiA8IGhva3VvdWppblwgOwor5LiA5Lq65a2QIDwgaGl0b3Jpa2tvXCA7CivmpbXmtYEgPCBreW9rdXJ5dXVcIDsKK+atu+eUn+imsyA8IHNoaXNlaWthblwgOwor54Kt55a955eFIDwgdGFuc29ieW91XCA7Civnmb3lnLDlm7MgPCBoYWt1Y2hpenVcIDsKK+eVpeeroCA8IHJ5YWt1c2hvdVwgOwor6byI55Sy6ImyIDwgYmVra291aXJvXCA7CivkuZfou4rliLggPCBqb3VzaGFrZW5cIDsKK+a4rOeoi+WZqCA8IHNva3V0ZWlraVwgOwor5YaG6Iie5puyIDwgZW5idWt5b2t1XCA7Civoia/ml6UgPCByeW91aml0c3VcIDsKK+a2iOiyu+eojiA8IHNob3VoaXplaVwgOwor5aOB5LiA6YeNIDwga2FiZWhpdG9lXCA7Civlm5vpnaLkvZMgPCBzaGltZW50YWlcIDsKK+W3puWJjSA8IGhpZGFyaW1hZVwgOwor5Zyo5p2l57eaIDwgemFpcmFpc2VuXCA7CivlpKfnkIbnn7MgPCBkYWlyaXNla2lcIDsKK+eUn+eUo+WcsCA8IHNlaXNhbmNoaVwgOwor5a++6LOqIDwgdGFpc2hpdHN1XCA7CivkuI3ms5Xnp7vmsJEgPCBmdWhvdWltaW5cIDsKK+eJh+eUsOiIjiA8IGthdGFpbmFrYVwgOwor6KSH5YaZ5qmfIDwgZnVrdXNoYWtpXCA7CivlsI/oqqwgPCBzaG91c2V0c3VcIDsKK+miqOS/l+eUuyA8IGZ1dXpva3VnYVwgOwor5bem5YWaIDwgaGlkYXJpdG91XCA7CivohIfpgZMgPCB3YWtpbWljaGlcIDsKK+WBtOmdouWbsyA8IHNva3VtZW56dVwgOwor5qO556ekIDwgc2FvYmFrYXJpXCA7CivotormqKnooYzngrogPCBla2tlbmtvdWlcIDsKK+iogOiqnuWtpiA8IGdlbmdvZ2FrdVwgOwor5beh6Iiq6Ii5IDwganVua291c2VuXCA7Civljp/lp4vmnpcgPCBnZW5zaGlyaW5cIDsKK+iHs+S4iuaoqSA8IHNoaWpvdWtlblwgOwor5bCP5aOy5ZWGIDwga291cmlzaG91XCA7CivmoZzosp0gPCBzYWt1cmFnYWlcIDsKK+e1seWItuWTgSA8IHRvdXNlaWhpblwgOwor55eF5rKhIDwgYnlvdWJvdHN1XCA7CivnrKzkuIDlr6kgPCBkYWlpc3NoaW5cIDsKK+e0heavm+S6uiA8IGtvdW1vdWppblwgOwor6Ii55qmLIDwgZnVuYWJhc2hpXCA7CivorITlhpnniYggPCB0b3VzaGFiYW5cIDsKK+aOp+iotOWvqSA8IGtvdXNvc2hpblwgOwor5Lit5Y+k6LuKIDwgY2h1dWtvc2hhXCA7Civpq6rmsrkgPCBrYW1pYWJ1cmFcIDsKK+aWsOe0gOWFgyA8IHNoaW5raWdlblwgOwor57e057+S5omAIDwgcmVuc2h1dWpvXCA7Civnq4vmlrnmoLkgPCByaXBwb3Vrb25cIDsKK+efremfs+majiA8IHRhbicnb25rYWlcIDsKK+S4u+aEj+S4u+e+qSA8IHNodWlzaHVnaVwgOwor5a6j6KqT5pu4IDwgc2Vuc2Vpc2hvXCA7Civkuozmi43lrZAgPCBuaWJ5b3VzaGlcIDsKK+WKtOi+suWFmiA8IHJvdW5vdXRvdVwgOwor5b285bK46IqxIDwgaGlnYW5iYW5hXCA7Civlv6DprYLnopEgPCBjaHV1a29uaGlcIDsKK+acieWKueaApyA8IHl1dWtvdXNlaVwgOwor5LiJ5pel5pyIIDwgbWlrYWR6dWtpXCA7CivnmbrmjK/mqZ8gPCBoYXNzaGlua2lcIDsKK+iHquW3seaknOafuyA8IGppa29rZW5zYVwgOwor57eP5YuZ5bqBIDwgc291bXVjaG91XCA7Civnl4XmrKAgPCBieW91a2V0c3VcIDsKK+WFq+WIhyA8IHlhdHN1Z2lyaVwgOwor5rWB6KGM6KqeIDwgcnl1dWtvdWdvXCA7CivlhoXprq7kurogPCBuYWlzZW5qaW5cIDsKK+WFpeWKmyA8IG55dXVyeW9rdVwgOwor55Sf55CG55qEIDwgc2Vpcml0ZWtpXCA7CivlkI3oqonmhb4gPCBtZWl5b3lva3VcIDsKK+WKquWKm+WutiA8IGRvcnlva3VrYVwgOwor5Zyo5p2l56iuIDwgemFpcmFpc2h1XCA7CivnlLrnrYsgPCBtYWNoaXN1amlcIDsKK+WkmuS6i+WkmumboyA8IHRhaml0YW5hblwgOwor5Yqg56Gr5rOVIDwga2FyeXV1aG91XCA7CivlpKflrrbml48gPCBkYWlrYXpva3VcIDsKK+aZr+aVmeW+kiA8IGtlaWt5b3V0b1wgOwor77yh77yi77yj6aCGIDwgxJNixKtzaMSranVuXCA7CivohILotrMgPCBhYnVyYWFzaGlcIDsKK+eUuueriyA8IGNob3VyaXRzdVwgOwor6auY56mN6ZuyIDwga291c2VraXVuXCA7CivmhI/msJfmj5rmj5ogPCBpa2l5b3V5b3VcIDsKK+S5l+iIueWIuCA8IGpvdXNlbmtlblwgOwor6ISa6Ki7IDwga3lha3VjaHV1XCA7Civlho3lr6nmn7sgPCBzYWlzaGluc2FcIDsKK+eUqOiqnumbhiA8IHlvdWdvc2h1dVwgOwor5qW15pyIIDwgZ29rdWdldHN1XCA7CivosqDlgrfogIUgPCBmdXNob3VzaGFcIDsKK+iEguizqiA8IHNoaXNoaXRzdVwgOwor5Yq05YON5rOVIDwgcm91ZG91aG91XCA7CivmsY7nlKjmqZ8gPCBoYW4nJ3lvdWtpXCA7CivoiJ/mqYsgPCBmdW5haGFzaGlcIDsKK+S+m+ihgCA8IGt5b3VrZXRzdVwgOwor5ZCN6KqJ5b+DIDwgbWVpeW9zaGluXCA7CivpkZHlrprkurogPCBrYW50ZWluaW5cIDsKK+W3neS4iyA8IGthd2FzaGltb1wgOwor5oqV56Wo5pelIDwgdG91aHlvdWJpXCA7CivlhYjooYzoqZ4gPCBzZW5rb3VzaGlcIDsKK+eLrOa8lOS8miA8IGRva3VlbmthaVwgOwor6Z+z6Z+75a2mIDwgb24nJ2luZ2FrdVwgOwor5Yqf5Yq06ICFIDwga291cm91c2hhXCA7Civlrp/pjLIgPCBqaXRzdXJva3VcIDsKK+iEs+e0sOiDniA8IG5vdXNhaWJvdVwgOwor576O5paH6Kq/IDwgYmlidW5jaG91XCA7CivmmI7ntLDmm7ggPCBtZWlzYWlzaG9cIDsKK+eUt+aWh+WtlyA8IG90b2tvbW9qaVwgOwor5ZKM6Iux6L6e5YW4IDwgd2FlaWppdGVuXCA7Civnt4/li5jlrpogPCBzb3VrYW5qb3VcIDsKK+iJsuW8sSA8IHNoaWtpamFrdVwgOwor5Zue6Kan5p2/IDwga2FpcmFuYmFuXCA7Civku7vlkb3nirYgPCBuaW5tZWlqb3VcIDsKK+eZuuWHuiA8IGhhc3NodXRzdVwgOwor5LiK57SN6YeRIDwgam91bm91a2luXCA7Civmi7fllY/lj7AgPCBnb3Vtb25kYWlcIDsKK+iFsOe4hCA8IGtvc2hpbmF3YVwgOwor55Sf56+AIDwgbmFtYWJ1c2hpXCA7CivkuIrlpY/mlocgPCBqb3Vzb3VidW5cIDsKK+iHquiyrOeCuSA8IGppc2VraXRlblwgOwor6Laz6IWwIDwgYXNoaWtvc2hpXCA7Civliqnnm6PnnaMgPCBqb2thbnRva3VcIDsKK+WFpeS7jyA8IG55dXVidXRzdVwgOwor5Yem55Sf6KiTIDwgc2hvc2Vpa3VuXCA7CivlhaXkuqQgPCBpcmltYWppcmlcIDsKK+iFsOe0kCA8IGtvc2hpaGltb1wgOwor5pys6Kmm6aiTIDwgaG9uc2hpa2VuXCA7CivlpJbkv6Hpg6ggPCBnYWlzaGluYnVcIDsKK+S/rueviSA8IHNodXVjaGlrdVwgOwor5LiA5Lq65YmNIDwgaGl0b3JpbWFlXCA7CivlirTlg43mqKkgPCByb3Vkb3VrZW5cIDsKK+iCiemjnyA8IG5pa3VzaG9rdVwgOwor5Zyw55CD5YSAIDwgY2hpa3l1dWdpXCA7CivlnLDkuIrmqKkgPCBjaGlqb3VrZW5cIDsKK+S/oee0hCA8IHNoaW4nJ3lha3VcIDsKK+mHkeWxj+miqCA8IGtpbmJ5b3VidVwgOwor5bCO6Zu75L2TIDwgZG91ZGVudGFpXCA7CivlhbHnm4rosrsgPCBreW91ZWtpaGlcIDsKK+iEseiQvSA8IGRhdHN1cmFrdVwgOwor5LiN5oSP6Kmm6aiTIDwgZnVpc2hpa2VuXCA7Civppqzpub/pnaIgPCBiYWthZHp1cmFcIDsKK+Wcn+eUqOazoiA8IGRveW91bmFtaVwgOwor57eP6YG45oyZIDwgc291c2Vua3lvXCA7CivliLblvqHnm6QgPCBzZWlneW9iYW5cIDsKK+W/g+aEj+awlyA8IGtva29yb2lraVwgOwor5qih56+E6Kmm5ZCIIDwgbW9oYW5qaWFpXCA7Civph43lirTlg40gPCBqdXVyb3Vkb3VcIDsKK+aJi+amtOW8viA8IHRlcnl1dWRhblwgOwor5LiA5p6a5LiKIDwgaWNoaW1haXVlXCA7CivlpKnkupXnga8gPCB0ZW5qb3V0b3VcIDsKK+mkiumtmuWgtCA8IHlvdWd5b2pvdVwgOwor5oqV56Wo5omAIDwgdG91aHlvdWpvXCA7CivovKnlh7ogPCBoYWlzaHV0c3VcIDsKK+W6p+aomeezuyA8IHphaHlvdWtlaVwgOwor5YaG5YCf5qy+IDwgZW5zaGFra2FuXCA7Civntbblr77oq5YgPCB6ZXR0YWlyb25cIDsKK+aNleiZq+e2siA8IGhvY2h1dWFtaVwgOwor5Ye65p2l5pifIDwgZGVraWJvc2hpXCA7Civkuozph43mr43pn7MgPCBuaWp1dWJvaW5cIDsKK+iKseafs+eVjCA8IGthcnl1dWthaVwgOwor5YWs5rCR5qipIDwga291bWlua2VuXCA7CivlpoLkvZXoqLEgPCBpa2FiYWthcmlcIDsKK+a4heaVmeW+kiA8IHNlaWt5b3V0b1wgOwor57Sr5aSW57eaIDwgc2hpZ2Fpc2VuXCA7Civkv67npZMgPCBzaHV1ZnV0c3VcIDsKK+WQjOWlveS8miA8IGRvdWtvdWthaVwgOwor5rSX6LuK5aC0IDwgc2Vuc2hham91XCA7CivlsZXmnJvou4ogPCB0ZW5ib3VzaGFcIDsKK+WtpumWpSA8IGdha3ViYXRzdVwgOwor5pqX5Y+35bizIDwgYW5nb3VjaG91XCA7CivkvY3osqAgPCBrdXJhaW1ha2VcIDsKK+iLl+S7oyA8IG5hd2FzaGlyb1wgOwor5bGx55S3IDwgeWFtYW90b2tvXCA7CivluYzppqzou4ogPCBob3JvYmFzaGFcIDsKK+Wkp+S8gealrSA8IGRhaWtpZ3lvdVwgOwor5aOy56yR5ammIDwgYmFpc2hvdWZ1XCA7CivmjqHngrnogIUgPCBzYWl0ZW5zaGFcIDsKK+aghOiAgOaghOiPryA8IGVpeW91ZWlnYVwgOwor6ZaT6ZqZ5q+UIDwga2FuZ2VraWhpXCA7Civlo67ooYzkvJogPCBzb3Vrb3VrYWlcIDsKK+WGjeeUn+WTgSA8IHNhaXNlaWhpblwgOwor5YWs56S+5YK1IDwga291c2hhc2FpXCA7CivmoZzojYkgPCBzYWt1cmFzb3VcIDsKK+Wuoui2syA8IGt5YWt1YXNoaVwgOwor5bGe55uuIDwgc2hva3Vtb2t1XCA7CivmnKrmnaXlraYgPCBtaXJhaWdha3VcIDsKK+S/l+ethiA8IHpva3VoaXRzdVwgOwor5pyr5aeL57WCIDwgc3Vlc2hpanV1XCA7CivlhJ/ljbQgPCBzaG91a3lha3VcIDsKK+a9nOawtOiJpiA8IHNlbnN1aWthblwgOwor5rC06YGT566hIDwgc3VpZG91a2FuXCA7Civmr43oqp7oqbHogIUgPCBib2dvd2FzaGFcIDsKK+WkqeeQhuaVmSA8IHRlbnJpa3lvdVwgOwor5qW95b6LIDwgZ2FrdXJpdHN1XCA7CivmoZzoibIgPCBzYWt1cmFpcm9cIDsKK+S6iOaDs+mrmCA8IHlvc291ZGFrYVwgOwor5omL5p+E6aGUIDwgdGVnYXJhZ2FvXCA7CivmiYvoirjlk4EgPCBzaHVnZWloaW5cIDsKK+W5s+ihoemMmCA8IGhlaWtvdXN1aVwgOwor5oqX5q+S57SgIDwga291ZG9rdXNvXCA7CivlsI/nvoogPCBrb2hpdHN1amlcIDsKK+Wkp+ixhueylSA8IGRhaXp1a2FzdVwgOwor56CU56m26LK7IDwga2Vua3l1dWhpXCA7Civlrp/os6ogPCBqaXNzaGl0c3VcIDsKK+efpeiDveeKryA8IGNoaW5vdWhhblwgOwor6YG45omL5qipIDwgc2Vuc2h1a2VuXCA7Civpup3pppnpub8gPCBqYWtvdWppa2FcIDsKK+a1t+WyuOe3miA8IGthaWdhbnNlblwgOwor6LK/5piT5rivIDwgYm91ZWtpa291XCA7CivmmqblubTluqYgPCByZWtpbmVuZG9cIDsKK+WkqeWuruWbsyA8IHRlbmt5dXV6dVwgOwor5pyJ5qip6ICFIDwgeXV1a2Vuc2hhXCA7CivkvZPoo4HkuIogPCB0ZWlzYWlqb3VcIDsKK+S8iumBlOeUtyA8IGRhdGVvdG9rb1wgOwor5LyR5YiK5pelIDwga3l1dWthbmJpXCA7CivogpjpiYQgPCBoaWppdGV0c3VcIDsKK+izg+mkhSA8IGNoaW5tb2NoaVwgOwor5Y+k5YW45a2mIDwga290ZW5nYWt1XCA7Civlrp3osp0gPCB0YWthcmFnYWlcIDsKK+i7veWPoyA8IGthcnVrdWNoaVwgOwor5pS56KiC54mIIDwga2FpdGVpYmFuXCA7CivnlJ/lrZjmqKkgPCBzZWl6b25rZW5cIDsKK+i2heiEsSA8IGNob3VkYXRzdVwgOwor6Kmy5ZWP6aGMIDwgZ2FpbW9uZGFpXCA7Civmmpflj7flraYgPCBhbmdvdWdha3VcIDsKK+S7o+ihjOiAhSA8IGRhaWtvdXNoYVwgOwor55S354mpIDwgb3Rva29tb25vXCA7CivlhavljYPmrbMgPCB5YWNoaXRvc2VcIDsKK+WPo+ecn+S8vCA8IGt1Y2hpbWFuZVwgOwor5Ye654mI6YOoIDwgc2h1cHBhbmJ1XCA7CivogbfplbcgPCBzaG9rdWNob3VcIDsKK+ims+a4rOaJgCA8IGthbnNva3Vqb1wgOwor57WM5riI55WMIDwga2VpemFpa2FpXCA7CivkuI3nhrHlv4MgPCBmdW5lc3NoaW5cIDsKK+WFrOazleS6uiA8IGtvdWhvdWppblwgOwor5LyR55yg5pyfIDwga3l1dW1pbmtpXCA7Civlia/nt4/nkIYgPCBmdWt1c291cmlcIDsKK+S8tOWlj+iAhSA8IGJhbnNvdXNoYVwgOwor5a++6KuH6ICFIDwgdGFpZGFuc2hhXCA7Civosr/mmJPms5UgPCBib3Vla2lob3VcIDsKK+WckumBiuS8miA8IGVuJyd5dXVrYWlcIDsKK+izm+aIkOiAhSA8IHNhbnNlaXNoYVwgOwor5LuP6aGUIDwgaG90b2tlZ2FvXCA7Civoirjog73kurogPCBnZWlub3VqaW5cIDsKK+WIhuitsuWcsCA8IGJ1bmpvdWNoaVwgOwor5bGI5YWJ5oCnIDwga3Vra291c2VpXCA7CivnnJ/nj6Dmub4gPCBzaGluanV3YW5cIDsKK+S7j+mgmCA8IGZ1dHN1cnlvdVwgOwor5Lqk6YCa56aNIDwga291dHN1dWthXCA7Civmi53ngavmlZkgPCBoYWlrYWt5b3VcIDsKK+euh+adoeabuCA8IGtham91Z2FraVwgOwor55Wl5q20IDwgcnlha3VyZWtpXCA7CivpgbjmjJnkurogPCBzZW5reW9uaW5cIDsKK+mFqui+suWutiA8IHJha3Vub3VrYVwgOwor5bel6Iq45ZOBIDwga291Z2VpaGluXCA7CivmnKrmnaXlnosgPCBtaXJhaWdhdGFcIDsKK+W8gemwk+mhniA8IGJlbnNhaXJ1aVwgOwor54Sh6LOH5qC8IDwgbXVzaGlrYWt1XCA7Civku7vlkb3mqKkgPCBuaW5tZWlrZW5cIDsKK+iZq+WegueCjiA8IGNodXVzdWllblwgOwor6aqo5p+EIDwga290c3VnYXJhXCA7CivmnKjmiLjlvqHlhY0gPCBraWRvZ29tZW5cIDsKK+egtOiQveaIuCA8IGdvcm90c3VraVwgOwor57ep5LiL6JasIDwga2FuZ2V5YWt1XCA7CivmnInmqZ/nmoQgPCB5dXVraXRla2lcIDsKK+i1pOiJsiA8IHNla2lzaG9rdVwgOwor5q2j5Y+N5a++IDwgc2VpaGFudGFpXCA7CivlsLvnmZYgPCBzaGlyaWt1c2VcIDsKK+mdkua1t+WOnyA8IGFvdW5hYmFyYVwgOwor5Ye56Z2i6Y+hIDwgb3VtZW5reW91XCA7CivloLHpgZPpmaMgPCBob3Vkb3VqaW5cIDsKK+alteWwjyA8IGt5b2t1c2hvdVwgOwor5Yqj5Yui5oSfIDwgcmVzc2Vpa2FuXCA7Civoh6rlt7Hnlo7lpJYgPCBqaWtvc29nYWlcIDsKK+S/teeJqSA8IGh5b3Vtb3RzdVwgOwor5b6h5paZ5ZywIDwgZ29yeW91Y2hpXCA7CivnlJ/niKogPCBuYW1hZHp1bWVcIDsKK+advumiqCA8IG1hdHN1a2F6ZVwgOwor6KiI566X6ICFIDwga2Vpc2Fuc2hhXCA7CivnhKHpp4Tlj6MgPCBtdWRhZ3VjaGlcIDsKK+adjuaJv+aZqSA8IHJpc2hvdWJhblwgOwor6LaF57W2IDwgY2hvdXpldHN1XCA7CivoiLnlrqQgPCBzZW5zaGl0c3VcIDsKK+emj+mfs+abuCA8IGZ1a3VpbnNob1wgOwor5YWr5Y2m5o6MIDwgaGFra2VzaG91XCA7Civoh6rkuLvnmoQgPCBqaXNodXRla2lcIDsKK+mAsuatqeWFmiA8IHNoaW5wb3RvdVwgOwor55u45Y+N5oCnIDwgc291aGFuc2VpXCA7Civog73li5XmhYsgPCBub3Vkb3V0YWlcIDsKK+WPuOS7pOWumCA8IHNoaXJlaWthblwgOwor5Zyw6ZyH6KiIIDwgamlzaGlua2VpXCA7CivntJnkuIDph40gPCBrYW1paGl0b2VcIDsKK+awtOWKoOa4myA8IG1penVrYWdlblwgOwor5Ye654mI6LK7IDwgc2h1cHBhbmhpXCA7CivmnpzloLHogIUgPCBrYWhvdW1vbm9cIDsKK+aIkOmVt+acnyA8IHNlaWNob3VraVwgOwor6IW654axIDwgc2VuJyduZXRzdVwgOwor5rWE5Zyf5pWZIDwgam91ZG9reW91XCA7CivmnZ/pq6ogPCBzb2t1aGF0c3VcIDsKK+i7ouWHuiA8IHRlbnNodXRzdVwgOwor5aSp5LqV5p2/IDwgdGVuam91aXRhXCA7Civpm4blobXmqZ8gPCBzaHV1amlua2lcIDsKK+WHjOazouaApyA8IHJ5b3VoYXNlaVwgOwor5b+r55S35a2QIDwga2FpZGFuc2hpXCA7CivlpKnni5fojLggPCB0ZW5ndXRha2VcIDsKK+eLmeaSg+WFtSA8IHNvZ2VraWhlaVwgOwor5aSW6Lyq5bGxIDwgZ2FpcmluemFuXCA7CivmmIfpmY3mqZ8gPCBzaG91a291a2lcIDsKK+WfuuekjuaOp+mZpCA8IGtpc29rb3Vqb1wgOwor5bO25bO2IDwgc2hpbWFqaW1hXCA7CivmlL7ngavni4IgPCBob3VrYWt5b3VcIDsKK+miqOmmrOeJmyA8IGZ1dWJhZ3l1dVwgOwor6Zm25Zmo5ZWGIDwgdG91a2lzaG91XCA7CivnlaXmnI0gPCByeWFrdWZ1a3VcIDsKK+S4ieWhgee3miA8IHNhbnJ1aXNlblwgOwor5bO25bGxIDwgc2hpbWF5YW1hXCA7CivpgZPnvqnlv4MgPCBkb3VnaXNoaW5cIDsKK+i2heaZguepuiA8IGNob3VqaWt1dVwgOwor5b6u57KS5a2QIDwgYmlyeXV1c2hpXCA7CivmsLTlubPnt5ogPCBzdWloZWlzZW5cIDsKK+WGjeWwi+WVjyA8IHNhaWppbm1vblwgOwor6ayx5YuDIDwgdXRzdWJvdHN1XCA7CivmnbHpm7IgPCBzaGlub25vbWVcIDsKK+eUn+a7hSA8IHNob3VtZXRzdVwgOwor5riF5o6D6LuKIDwgc2Vpc291c2hhXCA7Civkv5fniakgPCB6b2t1YnV0c3VcIDsKK+iEseehqyA8IGRhdHN1cnl1dVwgOwor6ISI57WhIDwgbXlha3VyYWt1XCA7CivkuIDlrprmuKnluqYgPCBpdHRlaW9uZG9cIDsKK+acgOWJjee3miA8IHNhaXplbnNlblwgOwor57W25a++6ICFIDwgemV0dGFpc2hhXCA7CivmraPnorrluqYgPCBzZWlrYWt1ZG9cIDsKK+awt+WJiuapnyA8IGh5b3VzYWtraVwgOwor5YiG6Kej6IO9IDwgYnVua2Fpbm91XCA7Civlm5vop5LlvaIgPCBzaGlrYWtrZWlcIDsKK+Wuo+iogOabuCA8IHNlbmdlbnNob1wgOwor5Y+45Luk5aGUIDwgc2hpcmVpdG91XCA7CivlraborZggPCBnYWt1c2hpa2lcIDsKK+eri+WkquWtkCA8IHJpdHRhaXNoaVwgOwor5pyJ6LmE6aGeIDwgeXV1dGVpcnVpXCA7Civkvb/nlKjogIUgPCBzaGl5b3VzaGFcIDsKK+S+teeVpSA8IHNoaW5yeWFrdVwgOwor5aSp5LiK55WMIDwgdGVuam91a2FpXCA7CivpnZLmtbfkuoAgPCBhb3VtaWdhbWVcIDsKK+adpemBiuiAhSA8IHJhaXl1dXNoYVwgOwor5beo5Lq66LuNIDwga3lvamluZ3VuXCA7Civlrabpg6jnlJ8gPCBnYWt1YnVzZWlcIDsKK+W3peWtpumDqCA8IGtvdWdha3VidVwgOwor5pWZ56eR5pu4IDwga3lvdWthc2hvXCA7CivntYzmuIjms5UgPCBrZWl6YWlob3VcIDsKK+egtOWCt+miqCA8IGhhc2hvdWZ1dVwgOwor6IG36LKsIDwgc2hva3VzZWtpXCA7CivmjIHlj4LkurogPCBqaXNhbicnbmluXCA7Civnt4/nnaPlupwgPCBzb3V0b2t1ZnVcIDsKK+aXpeacrOmrqiA8IG5paG9uZ2FtaVwgOwor6Im25LqLIDwgdHN1eWFnb3RvXCA7CivliLblvqHmo5IgPCBzZWlneW9ib3VcIDsKK+aknOahiOabuCA8IGtlbicnYW5zaG9cIDsKK+eOiem0qyA8IHRhbWFzaGlnaVwgOwor5q2p6YGT5qmLIDwgaG9kb3VreW91XCA7CivlnLDmlrnntJkgPCBjaGlob3VzaGlcIDsKK+aXpeWCreWPliA8IGhpeW91dG9yaVwgOwor5Zyw542E5aSJIDwgamlnb2t1aGVuXCA7CivlkIjlpY/lm6MgPCBnYXNzb3VkYW5cIDsKK+eTpueJiCA8IGthd2FyYWJhblwgOwor5aSp5LqV5omHIDwgdGVuam91c2VuXCA7Civlgrflj6MgPCBraXp1Z3VjaGlcIDsKK+WFqOWPjeWwhCA8IHplbmhhbnNoYVwgOwor5a+G57SEIDwgbWl0c3V5YWt1XCA7CivlpInpgJ/mqZ8gPCBoZW5zb2t1a2lcIDsKK+eEoeeQhuW8jyA8IG11cmlzaGlraVwgOwor6Lu95Yq05YONIDwga2Vpcm91ZG91XCA7CivlrabooZMgPCBnYWt1anV0c3VcIDsKK+ato+WPjeWQiCA8IHNlaWhhbmdvdVwgOwor57WM5riI5qyEIDwga2VpemFpcmFuXCA7Civou5LkuIsgPCBub2tpc2hpdGFcIDsKK+i7iuS7oyA8IGt1cnVtYWRhaVwgOwor5YCf5paZIDwgc2hha3VyeW91XCA7CivnlJ/lrZflvJUgPCBpa2lqaWJpa2lcIDsKK+aKleelqOWMuiA8IHRvdWh5b3VrdVwgOwor5Lq66YGUIDwgaGl0b3RhY2hpXCA7CivmnKjmm5zml6UgPCBtb2t1eW91YmlcIDsKK+WHuuacqOW5tCA8IGRla2lkb3NoaVwgOwor5YCZ5paHIDwgc291cm91YnVuXCA7CivnopPmsLfls6AgPCB1c3VpdG91Z2VcIDsKK+WvuueUtyA8IHRlcmFvdG9rb1wgOwor5Yqg5YWl6YeRIDwga2FueXV1a2luXCA7CivmsJHplpPkurogPCBtaW5rYW5qaW5cIDsKK+WFrOWLn+agqiA8IGtvdWJva2FidVwgOwor5qW15YyXIDwga3lva3Vob2t1XCA7CivkuZfppqzmnI0gPCBqb3ViYWZ1a3VcIDsKK+iEseeNhCA8IGRhdHN1Z29rdVwgOwor5pel5pys6aCYIDwgbmlob25yeW91XCA7CivokZfmm7jlkI0gPCBjaG9zaG9tZWlcIDsKK+e1jOWWtuWtpiA8IGtlaWVpZ2FrdVwgOwor55m96Ymb6YmxIDwgaGFrdWVua291XCA7CivnlLrmlrkgPCBtYWNoaWthdGFcIDsKK+eyl+ebruezliA8IHphcmFtZXRvdVwgOwor5omL5YmN5ZGz5ZmMIDwgdGVtYWVtaXNvXCA7CivlhoXnjoTplqIgPCBuYWlnZW5rYW5cIDsKK+WcsOaWueeojiA8IGNoaWhvdXplaVwgOwor6auY5Z2PIDwgdGFrYXRzdWtpXCA7Civlt6Hmn7vplbcgPCBqdW5zYWNob3VcIDsKK+WNsOWIt+apnyA8IGluc2F0c3VraVwgOwor5YeN5q276ICFIDwgdG91c2hpc2hhXCA7Civnmb3pioXosqggPCBoYWt1ZG91a2FcIDsKK+iyuOizgyA8IGthc2hpY2hpblwgOwor5Y6f5aeL5Lq6IDwgZ2Vuc2hpamluXCA7CivliqDlt6Xos4MgPCBrYWtvdWNoaW5cIDsKK+WFgeaWh+WFgeatpiA8IGluYnVuaW5idVwgOwor56u56Lyq6bqpIDwgY2hpa3V3YWZ1XCA7CivkuIDmlrnnmoQgPCBpcHBvdXRla2lcIDsKK+WHuuS7leS6iyA8IGRlc2hpZ290b1wgOwor5q2j5b+15aC0IDwgc2hvdW5lbmJhXCA7CivlgInmlbcgPCBrdXJhc2hpa2lcIDsKK+S5numjnyA8IGtvdHN1amlraVwgOwor5p+U6YGT5aC0IDwganV1ZG91am91XCA7CivohIrpq4Tngo4gPCBzZWtpenVpZW5cIDsKK+S6jOmHjemHnCA8IG5panV1Z2FtYVwgOwor56uL5pa55L2TIDwgcmlwcG91dGFpXCA7CivkvLjnuK4gPCBzaGluc2h1a3VcIDsKK+mBoOmalOaApyA8IGVua2FrdXNlaVwgOwor6Lu95q2M5YqHIDwga2Vpa2FnZWtpXCA7CivliLbli5Xnga8gPCBzZWlkb3V0b3VcIDsKK+WCrOecoOWJpCA8IHNhaW1pbnphaVwgOwor5LuK5LiA5bqmIDwgaW1haWNoaWRvXCA7CivmlLvpmLLmiKYgPCBrb3Vib3VzZW5cIDsKK+a1hOWcn+WulyA8IGpvdWRvc2h1dVwgOwor5pON57im5qG/IDwgc291anV1a2FuXCA7CivmlofmmI7ppKggPCBidW5tZWlrYW5cIDsKK+WwjumWouaVsCA8IGRvdWthbnN1dVwgOwor5rue5Zyo5ZywIDwgdGFpemFpY2hpXCA7Civkurros6ogPCBoaXRvamljaGlcIDsKK+acnemjnyA8IGNob3VzaG9rdVwgOwor5LiK57SN57GzIDwgam91bm91bWFpXCA7CivlroflrpnmnI0gPCB1Y2h1dWZ1a3VcIDsKK+WIqeWPo+iAhSA8IHJpa291bW9ub1wgOwor5pa55rOV6KuWIDwgaG91aG91cm9uXCA7Civok4vnhLbmgKcgPCBnYWl6ZW5zZWlcIDsKK+WNiuijveWTgSA8IGhhbnNlaWhpblwgOwor5bO75YilIDwgc2h1bmJldHN1XCA7CivkuIDloLTpnaIgPCBpY2hpYmFtZW5cIDsKK+efs+eJiOeUuyA8IHNla2liYW5nYVwgOwor55m76Yyy57C/IDwgdG91cm9rdWJvXCA7Civoh6rmmrToh6rmo4QgPCBqaWJvdWppa2lcIDsKK+S4gOaYqOaZqSA8IGlzc2FrdWJhblwgOwor5bGK5pu4IDwgdG9kb2tlc2hvXCA7CivlrqLnrYsgPCBreWFrdXN1amlcIDsKK+WkmualteWMliA8IHRha3lva3VrYVwgOwor5aSn5LiA55WqIDwgb29pY2hpYmFuXCA7CivooZvmmJ/lm70gPCBlaXNlaWtva3VcIDsKK+ebuOaSsumDqOWxiyA8IHN1bW91YmV5YVwgOwor5pyN6aO+IDwgZnVrdXNob2t1XCA7CivlgpHlh7ogPCBrZXNzaHV0c3VcIDsKK+S8keiBtyA8IGt5dXVzaG9rdVwgOwor5LiL57Sa55SfIDwga2FreXV1c2VpXCA7CivmqJnmupbmmYIgPCBoeW91anVuamlcIDsKK+S6jOmBkyA8IGZ1dGFtaWNoaVwgOwor6auY6b2i6ICFIDwga291cmVpc2hhXCA7CivkuIDkuIHliY0gPCBpdGNob3VtYWVcIDsKK+iIueS4uyA8IGZ1bmFudXNoaVwgOwor6aOf6YCaIDwgc2hva3V0c3V1XCA7CivmqKrmgYvmhZUgPCB5b2tvcmVuYm9cIDsKK+iyoeeUo+eojiA8IHphaXNhbnplaVwgOwor6Ieq5bex5L+d5a2YIDwgamlrb2hvem9uXCA7Civkuozph43ouqsgPCBuaWp1dXNoaW5cIDsKK+WuoueoriA8IGt5YWt1ZGFuZVwgOwor6LOK6JmQIDwgem9rdWd5YWt1XCA7CivnlJ/nkIblraYgPCBzZWlyaWdha3VcIDsKK+eGseWZqOWFtyA8IG5ldHN1a2lndVwgOwor5a+S5Ya357SXIDwga2FucmVpc2hhXCA7CivmsLTpgZPmoJMgPCBzdWlkb3VzZW5cIDsKK+aOoue0ouacqCA8IHRhbnNha3VnaVwgOwor56CU56m256eRIDwga2Vua3l1dWthXCA7CivkubPpiaIgPCBueXV1YmFjaGlcIDsKK+aciOmhjSA8IGdldHN1Z2FrdVwgOwor5a6f5pa95L6LIDwgamlzc2hpcmVpXCA7Civplbfpn7Ppmo4gPCBjaG91b25rYWlcIDsKK+S4jeipleWIpCA8IGZ1aHlvdWJhblwgOwor5pyI6aCDIDwgdHN1a2lnb3JvXCA7CivpgbjmiYvlm6MgPCBzZW5zaHVkYW5cIDsKK+S9nOeUtyA8IHNha3VvdG9rb1wgOwor5aSa5LqL5aSa56uvIDwgdGFqaXRhdGFuXCA7Civlip/liKnnmoQgPCBrb3VyaXRla2lcIDsKK+WkqeeQg+WEgCA8IHRlbmt5dXVnaVwgOwor55S35b25IDwgb3Rva295YWt1XCA7CivnnJ/nj6DlsaQgPCBzaGluanVzb3VcIDsKK+W5s+Wdh+eCuSA8IGhlaWtpbnRlblwgOwor5LiK6bayIDwgam91Yml0YWtpXCA7CivohZXmnpUgPCB1ZGVtYWt1cmFcIDsKK+mAo+WQiOS8miA8IHJlbmdvdWthaVwgOwor5bel5qWt5YyWIDwga291Z3lvdWthXCA7CivotaTpgZPlhIAgPCBzZWtpZG91Z2lcIDsKK+i1pOeGsSA8IHNla2luZXRzdVwgOwor5paH5a2m5bqnIDwgYnVuZ2FrdXphXCA7Civmm5bmmKfmqKHns4ogPCBhaW1haW1va29cIDsKK+iIjOWFiCA8IHNoaXRhc2FraVwgOwor5Yq05YON5YWaIDwgcm91ZG91dG91XCA7CivohbnmjIEgPCBoYXJhbW9jaGlcIDsKK+e1jOa4iOaIpiA8IGtlaXphaXNlblwgOwor54+N6KqsIDwgY2hpbnNldHN1XCA7CivnsbPnqbrou40gPCBiZWlrdXVndW5cIDsKK+aVt+Wxhee9riA8IHNoaWtpaWNoaVwgOwor5LuY6JC9IDwgdHN1a2VvY2hpXCA7CivphY3lvZPph5EgPCBoYWl0b3VraW5cIDsKK+iFsOaOmyA8IGtvc2hpa2FrZVwgOwor5LmF6ZeKIDwga3l1dWthdHN1XCA7Civpo5vomornl4cgPCBoaWJ1bnNob3VcIDsKK+WvhueMnyA8IG1pdHN1cnlvdVwgOwor6LWk55ei6I+MIDwgc2VraXJpa2luXCA7CivkupTljYHogqkgPCBnb2p1dWthdGFcIDsKK+mrmOetieWumCA8IGtvdXRvdWthblwgOwor5Zyw5pa554mIIDwgY2hpaG91YmFuXCA7CivnlLPlubQgPCBzYXJ1ZG9zaGlcIDsKK+adkOizqiA8IHphaXNoaXRzdVwgOwor54mH6ISz5rK5IDwgaGVuJydub3V5dVwgOwor5p2+6J2JIDwgbWF0c3V6ZW1pXCA7Civkuovli5nmrKHlrpggPCBqaW11amlrYW5cIDsKK+WlieihjOaJgCA8IGJ1Z3lvdXNob1wgOwor6IKv5a6a5paHIDwga291dGVpYnVuXCA7CivkuqzooaggPCBreW91b21vdGVcIDsKK+iKs+mmmeWJpCA8IGhvdWtvdXphaVwgOwor54Gr54G95rWBIDwga2FzYWlyeXV1XCA7CivljbDliLfmiYAgPCBpbnNhdHN1am9cIDsKK+aiheaapiA8IHVtZWdveW9taVwgOwor5aSn6IGW5aCCIDwgZGFpc2VpZG91XCA7CivntYzmuIjmgKcgPCBrZWl6YWlzZWlcIDsKK+ibh+e0i+efsyA8IGphbW9uc2VraVwgOwor5rWB6KGM5q2MIDwgcnl1dWtvdWthXCA7CivkvZzniakgPCBzYWt1bW90c3VcIDsKK+iznue9sCA8IHNob3ViYXRzdVwgOwor5LiJ6KeS5rSyIDwgc2Fua2FrdXN1XCA7CivlrqTnlLogPCBtdXJvbWFjaGlcIDsKK+S4ieaWh+WIpCA8IHNhbm1vbmJhblwgOwor5LiJ6KeS5rOiIDwgc2Fua2FrdWhhXCA7Civlrp/pmpvmgKcgPCBqaXNzYWlzZWlcIDsKK+erueefouadpSA8IHRha2V5YXJhaVwgOwor5bmz6KGM57eaIDwgaGVpa291c2VuXCA7CivokbHlnYrkuLsgPCBuZWdpYm91enVcIDsKK+Wtq+W8n+WtkCA8IG1hZ29kZXNoaVwgOwor5a6556mN5q+UIDwgeW91c2VraWhpXCA7CivkuLvnnLzngrkgPCBzaHVnYW50ZW5cIDsKK+mBoOmalOWcsCA8IGVua2FrdWNoaVwgOwor5LiJ6KeS5q+UIDwgc2Fua2FrdWhpXCA7CivlsI/mm7IgPCBzaG91a3lva3VcIDsKK+mVt+aZgumWkyA8IGNob3VqaWthblwgOwor5Y2K56uv6ICFIDwgaGFucGFtb25vXCA7Civni6znpoHms5UgPCBkb2traW5ob3VcIDsKK+W6g+WRiuiyuyA8IGtvdWtva3VoaVwgOwor5qSc5Ye6IDwga2Vuc2h1dHN1XCA7CivmnIDlhKrpgYcgPCBzYWl5dXVndXVcIDsKK+WPsOmiqOecvCA8IHRhaWZ1dWdhblwgOwor5pyq5pWZ6IKyIDwgbWlreW91aWt1XCA7Civkv4rmipwgPCBzaHVuYmF0c3VcIDsKK+ijgeaWreW4qyA8IHNhaWRhbnNoaVwgOwor6IKJ562GIDwgbmlrdWhpdHN1XCA7CivlhajljZjlsIQgPCB6ZW50YW5zaGFcIDsKK+iFsOW8sSA8IGtvc2hpeW93YVwgOwor5Yq55p6c55qEIDwga291a2F0ZWtpXCA7CivnqbrmiYvlvaIgPCBrdXV0ZWdhdGFcIDsKK+WNsOWIu+W4qyA8IGlua29rdXNoaVwgOwor6IOG546JIDwga2ltb3R0YW1hXCA7CivpnZLlubTovKkgPCBzZWluZW5oYWlcIDsKK+WJsueDueW6lyA8IGthcHBvdXRlblwgOwor5p2+6Iy4IDwgbWF0c3V0YWtlXCA7Civosr/mmJPlk4EgPCBib3Vla2loaW5cIDsKK+WJiuWyqeapnyA8IHNha3VnYW5raVwgOwor5qGc5qGDIDwgc2FrdXJhbmJvXCA7Civlr4Lmu4UgPCBqYWt1bWV0c3VcIDsKK+acrOizqiA8IGhvbnNoaXRzdVwgOwor5a6M5LqG5b6MIDwga2FucnlvdWdvXCA7CivlpKfkuIrmrrUgPCBkYWlqb3VkYW5cIDsKK+WckuiKuOWtpiA8IGVuZ2VpZ2FrdVwgOwor5oyH55u45pKyIDwgeXViaXp1bW91XCA7CivmsJflrofluoPlpKcgPCBraXVrb3VkYWlcIDsKK+iCqeeUsuW4ryA8IGtlbmtvdXRhaVwgOwor5q2j5b2T5oCnIDwgc2VpdG91c2VpXCA7CivnlKPlrqQgPCBzYW5zaGl0c3VcIDsKK+egguezluawtCA8IHNhdG91bWl6dVwgOwor5pa56YyQ5b2iIDwgaG91c3Vpa2VpXCA7Civnm7jlvZPmlbAgPCBzb3V0b3VzdXVcIDsKK+iFsOW4gyA8IGtvc2hpbnVub1wgOwor6IWw5be7IDwga29zaGltYWtpXCA7CivkvYPnha4gPCB0c3VrdWRhbmlcIDsKK+mGuOmAoOmFkiA8IGpvdXpvdXNodVwgOwor5bem5Lit6ZaTIDwgc2FjaHV1a2FuXCA7CivkvJ3ku6TogIUgPCBkZW5yZWlzaGFcIDsKK+acqOe2v+mHnSA8IG1vbWVuYmFyaVwgOwor5qGB5qmLIDwga2V0YWJhc2hpXCA7CivmnKjniYjnlLsgPCBtb2t1aGFuZ2FcIDsKK+aknOafu+W9uSA8IGtlbnNheWFrdVwgOwor5b+Y5bm05LyaIDwgYm91bmVua2FpXCA7CivlroflrpnlraYgPCB1Y2h1dWdha3VcIDsKK+actOiopSA8IGJva3V0b3RzdVwgOwor6aOf6JmrIDwgc2hva3VjaHV1XCA7CivnnJ/nkIblgKQgPCBzaGlucmljaGlcIDsKK+mFjeawtOeuoSA8IGhhaXN1aWthblwgOwor5aSq6Zm96aKoIDwgdGFpeW91ZnV1XCA7Civmnb7ohIIgPCBtYXRzdXlhbmlcIDsKK+S4g+mboyA8IHNoaWNoaW5hblwgOwor5L2/55So5rOVIDwgc2hpeW91aG91XCA7CivljbDliLflsYsgPCBpbnNhdHN1eWFcIDsKK+mfs+WjsOWtpiA8IG9uc2VpZ2FrdVwgOwor5LyK6YGU5aWzIDwgZGF0ZW9uJyduYVwgOwor55S35Z2CIDwgb3Rva296YWthXCA7Civlrr/ms4ogPCBzaHVrdWhha3VcIDsKK+S8r+eItSA8IGhha3VzaGFrdVwgOwor5qKT5byTIDwgYXp1c2F5dW1pXCA7Civlia/oqZ7lj6UgPCBmdWt1c2hpa3VcIDsKK+Wun+aVsOS9kyA8IGppc3N1dXRhaVwgOwor5aSa5pWw5oSP6KaLIDwgdGFzdXVpa2VuXCA7CivppIXogowgPCBtb2NoaWhhZGFcIDsKK+ijj+mVt+WxiyA8IHVyYW5hZ2F5YVwgOwor5p2x5bel5aSnIDwgdG91a291ZGFpXCA7CivlsYXlrqQgPCBreW9zaGl0c3VcIDsKK+mhjemamyA8IGhpdGFpZ2l3YVwgOwor55WZ5YilIDwgcnl1dWJldHN1XCA7Civmra/np5HljLvluKsgPCBzaGlrYWlzaGlcIDsKK+iKseaZguioiCA8IGhhbmFkb2tlaVwgOwor6KO96YCg5ZOBIDwgc2Vpem91aGluXCA7CivoqIjnrpfmm7ggPCBrZWlzYW5zaG9cIDsKK+WItuWLleaJiyA8IHNlaWRvdXNodVwgOwor5LiN6KaP5b6LIDwgZnVraXJpdHN1XCA7Civlj6PohZTnmYwgPCBrb3Vrb3VnYW5cIDsKK+WbnuetlOiAhSA8IGthaXRvdXNoYVwgOwor5Y2Y5b6T6ZmjIDwgdGFuanV1amluXCA7Civlj43oi7Hpm4QgPCBoYW4nJ2VpeXV1XCA7CivkuLvmqKnogIUgPCBzaHVrZW5zaGFcIDsKK+Wkp+acrOWxsSA8IGRhaWhvbnphblwgOwor5Lit5ZKM5YmkIDwgY2h1dXdhemFpXCA7CivmhYjlloTnrrEgPCBqaXplbmJha29cIDsKK+acgOW3pue/vCA8IHNhaXNheW9rdVwgOwor5LiJ6KeS5peXIDwgc2Fua2FrdWtpXCA7Civnvo7ljJbpgYvli5UgPCBiaWthdW5kb3VcIDsKK+WKoOWFpeiAhSA8IGthbnl1dXNoYVwgOwor6KO+5qih5qeYIDwgc3Vzb21veW91XCA7CivkuIDpmrvnnLwgPCBpc3Nla2lnYW5cIDsKK+S9v+eUqOaoqSA8IHNoaXlvdWtlblwgOwor6L+R5L2T6KmpIDwga2ludGFpc2hpXCA7CivlpKnni7zmmJ8gPCB0ZW5yb3VzZWlcIDsKK+i0iOeJqSA8IG9rdXJpbW9ub1wgOwor5YaN54qv6ICFIDwgc2FpaGFuc2hhXCA7Civlk6jmiJLmqZ8gPCBzaG91a2Fpa2lcIDsKK+mAmumBjumnhSA8IHRzdXVrYWVraVwgOwor5aSn5Lq65YWxIDwgb3RvbmFkb21vXCA7Civpp5Dml6UgPCBjaHV1bmljaGlcIDsKK+iLpuW/g+irhyA8IGt1c2hpbmRhblwgOwor5pON57im5aOrIDwgc291anV1c2hpXCA7CivnnJ/nj6DlhYkgPCBzaGluanVrb3VcIDsKK+afv+a4iyA8IGtha2lzaGlidVwgOwor6YCf5bqm6KiIIDwgc29rdWRva2VpXCA7CivnhKHosqzku7sgPCBtdXNla2luaW5cIDsKK+aSreS9hue3miA8IGJhbnRhbnNlblwgOwor6IGW6KqV56WtIDwgc2VpdGFuc2FpXCA7CivnhKHkuIDmlocgPCBtdWljaGltb25cIDsKK+W4uOWIhuaVsCA8IGpvdWJ1bnN1dVwgOwor5LiL6YeRIDwgc2hpdGFnYW5lXCA7CivkuK3otoogPCBjaHV1Z29zaGlcIDsKK+WGjeiAg+aFriA8IHNhaWtvdXJ5b1wgOwor5YSA5YW46ZW3IDwgZ2l0ZW5jaG91XCA7Civlt6Xlrabnp5EgPCBrb3VnYWt1a2FcIDsKK+iHquW3seS4u+e+qSA8IGppa29zaHVnaVwgOwor5aqS6LOqIDwgYmFpc2hpdHN1XCA7CivkuqTmrZPkvJogPCBrb3VrYW5rYWlcIDsKK+WkqeixoeWEgCA8IHRlbnNob3VnaVwgOwor5Lm+6I2JIDwgaG9zaGlndXNhXCA7CivnkLTniKogPCBrb3RvZHp1bWVcIDsKK+iFsOWeoyA8IGtvc2hpZ2FraVwgOwor5byV55So5paHIDwgaW4nJ3lvdWJ1blwgOwor5L+C5a6YIDwga2FrYXJpa2FuXCA7CivojZLms5XluKsgPCBhcmFob3VzaGlcIDsKK+iEiOaQjyA8IG15YWt1aGFrdVwgOwor546J6JmrIDwgdGFtYW11c2hpXCA7CivnlJ/llL4gPCBuYW1hdHN1YmFcIDsKK+Wun+ihjOWnlOWToSA8IGppa2tvdWlpblwgOwor55mC6aSK6LK7IDwgcnlvdXlvdWhpXCA7CivmqZ/plqLplbcgPCBraWthbmNob3VcIDsKK+WQkeWcsOaApyA8IGtvdWNoaXNlaVwgOwor5Yex5peL6ZaAIDwgZ2Fpc2VubW9uXCA7Civpo5/ogokgPCBzaG9rdW5pa3VcIDsKK+ioreWCmeiyuyA8IHNldHN1YmloaVwgOwor5p2+56ygIDwgbWF0c3VrYXNhXCA7Civoo4HnuKvluKsgPCBzYWlob3VzaGlcIDsKK+iyoeeUo+aoqSA8IHphaXNhbmtlblwgOwor5oqV55+z5qmfIDwgdG91c2VraWtpXCA7CivmhJvmoKHlv4MgPCBhaWtvdXNoaW5cIDsKK+S8j+mtlOauvyA8IGZ1a3VtYWRlblwgOwor6Iy25Zmo57WEIDwgY2hha2lndW1pXCA7CivkuInloYHmiYsgPCBzYW5ydWlzaHVcIDsKK+S4g+mBkyA8IHNoaWNoaWRvdVwgOwor6Jma54Sh55qEIDwga3lvbXV0ZWtpXCA7CivnlLPlhaUgPCBtb3VzaGlpcmVcIDsKK+S8neWwjuaApyA8IGRlbmRvdXNlaVwgOwor5a6i5qeYIDwga3lha3VzYW1hXCA7CivmloflrZfliJcgPCBtb2ppcmV0c3VcIDsKK+WPjeiKu+mhniA8IGhhbnN1dXJ1aVwgOwor5a6a5Z6L6KmpIDwgdGVpa2Vpc2hpXCA7CivmsLToj5PlrZAgPCBtaXp1Z2FzaGlcIDsKK+WAn+S4uyA8IGthcmludXNoaVwgOwor6buN5Zuj5a2QIDwga2liaWRhbmdvXCA7Civou5/lj6Pok4sgPCBuYW5rb3VnYWlcIDsKK+S5vuiCiSA8IGhvc2hpbmlrdVwgOwor6ZeH55u45aC0IDwgeWFtaXNvdWJhXCA7Civlrr/mlpkgPCBzaHVrdXJ5b3VcIDsKK+Wun+alrSA8IGppdHN1Z3lvdVwgOwor5ZCI5rCX6YGT5a62IDwgYWlraWRvdWthXCA7Civlrr/mlbUgPCBzaHVrdXRla2lcIDsKK+Wuh+WumeWNmiA8IHVjaHV1aGFrdVwgOwor5LiD6LyqIDwgc2hpY2hpcmluXCA7CivnlKPlh7ogPCBzYW5zaHV0c3VcIDsKK+iKpeWtkOiPnCA8IGthcmFzaGluYVwgOwor54+N6YGT5YW3IDwgY2hpbmRvdWd1XCA7CivkvZXml6UgPCBuYW4nJ25pY2hpXCA7Civos6rngrkgPCBzaGl0c3V0ZW5cIDsKK+m7hOihqOe0mSA8IGtpYnlvdXNoaVwgOwor6ISz5a6kIDwgbm91c2hpdHN1XCA7CivlvpPlp4nlprkgPCBqdXVzaGltYWlcIDsKK+WxseS8jyA8IHlhbWFidXNoaVwgOwor5a2Q56aP6ICFIDwga29idWt1c2hhXCA7CivmgJ3mg7PnlYwgPCBzaGlzb3VrYWlcIDsKK+awkeihhuWMliA8IG1pbnNodXVrYVwgOwor6YiN6buE6ImyIDwgbmlidWtpaXJvXCA7Civlrp/moKogPCBqaXRzdWthYnVcIDsKK+S4ieinkuW9oiA8IHNhbmtha2tlaVwgOwor5L615aWqIDwgc2hpbmRhdHN1XCA7CivlpKfmnKzllrYgPCBkYWlob24nJ2VpXCA7CivnjJvnibnoqJMgPCBtb3V0b2trdW5cIDsKK+eUuuS4rSA8IG1hY2hpbmFrYVwgOwor55S65LimIDwgbWFjaGluYW1pXCA7CivkuojlkYrnt6ggPCB5b2tva3VoZW5cIDsKK+WGt+a5v+W4gyA8IHJlaXNoaXBwdVwgOwor5qiZ5rqW5YyWIDwgaHlvdWp1bmthXCA7CivkuIros6ogPCBqb3VzaGl0c3VcIDsKK+S4i+iyvCA8IHNoaXRhYmFyaVwgOwor6aOf57SFIDwgc2hva3ViZW5pXCA7CivljZfom67kurogPCBuYW5iYW5qaW5cIDsKK+abtOihoyA8IGtvcm9tb2dhZVwgOwor6aOf57OnIDwgc2hva3VyeW91XCA7CivnlLDlnJLoqakgPCBkZW4nJ2Vuc2hpXCA7CivkuK3ooaggPCBuYWthb21vdGVcIDsKK+S4ieinkuW6pyA8IHNhbmtha3V6YVwgOwor5bCP5aeRIDwga29qdXV0b21lXCA7Civlho3oqabpqJMgPCBzYWlzaGlrZW5cIDsKK+agg+acqCA8IHRvY2hpbm9raVwgOwor5a+S5biv5p6XIDwga2FudGFpcmluXCA7CivohILmgKcgPCBhYnVyYXNob3VcIDsKK+WAieS4uyA8IGt1cmFudXNoaVwgOwor5YK+5pac6Z2iIDwga2Vpc2hhbWVuXCA7CivmrbvkuqHogIUgPCBzaGlib3VzaGFcIDsKK+S4g+izoiA8IHNoaWNoaWtlblwgOwor6YG65peP5om25YqpIDwgaXpva3VmdWpvXCA7CivlqJHnvoXlj4zmqLkgPCBzYXJhc291anVcIDsKK+S4ieinkuW4hiA8IHNhbmtha3Vob1wgOwor5bC75Y+WIDwgc2hpcml0b3JpXCA7CivlqZrlp7vms5UgPCBrb24nJ2luaG91XCA7Civkuozph43nqpMgPCBuaWp1dW1hZG9cIDsKK+iHqueEtumhniA8IHNoaXplbnJ1aVwgOwor5bCC5aOy5ZOBIDwgc2VuYmFpaGluXCA7CivmoLzlvI8gPCBrYWt1c2hpa2lcIDsKK+S4jee1seS4gCA8IGZ1dG91aXRzdVwgOwor5pi86bO2IDwgaGlydXRvbmJpXCA7CivlpJzkvJrmnI0gPCB5YWthaWZ1a3VcIDsKK+S6ruebtCA8IHJ5b3VjaG9rdVwgOwor5pqi6YGUIDwgY2hvdXRhdHN1XCA7CivlhZrmtL7lv4MgPCB0b3VoYXNoaW5cIDsKK+aAneaDs+eKryA8IHNoaXNvdWhhblwgOwor6IWw5YWDIDwga29zaGltb3RvXCA7CivohIflt64gPCB3YWtpemFzaGlcIDsKK+W8geW9k+S7oyA8IGJlbnRvdWRhaVwgOwor5p2J5664IDwgc3VnaWJhc2hpXCA7Civogp3oh5PnmYwgPCBrYW56b3VnYW5cIDsKK+S7mOeEvCA8IHRzdWtleWFraVwgOwor57WM5riI5Lq6IDwga2VpemFpamluXCA7Civku4/mlZnlvpIgPCBidWtreW91dG9cIDsKK+exs+a1t+i7jSA8IGJlaWthaWd1blwgOwor5ZCr5rK55bGkIDwgZ2FuJyd5dXNvdVwgOwor5oOF5aCx6KqMIDwgam91aG91c2hpXCA7CivlrabmrpYgPCBnYWt1c2hva3VcIDsKK+WHseaXi+i7jSA8IGdhaXNlbmd1blwgOwor6J6N6Kej54K5IDwgeXV1a2FpdGVuXCA7Civmt4vlt7TnkIMgPCByaW5wYWt5dXVcIDsKK+WrjOeFmeaoqSA8IGtlbicnZW5rZW5cIDsKK+Wkq+WppuS7siA8IGZ1dWZ1bmFrYVwgOwor5oSf5p+T5Y6fIDwga2Fuc2VuZ2VuXCA7Civov47os5PppKggPCBnZWloaW5rYW5cIDsKK+agquW8jyA8IGthYnVzaGlraVwgOwor6KmV6K2w5LyaIDwgaHlvdWdpa2FpXCA7Civlpb3nlLflrZAgPCBrb3VkYW5zaGlcIDsKK+aXqeaYpeizpiA8IHNvdXNodW5mdVwgOwor5p+P5qeZIDwgYnlha3VzaGluXCA7CivllonpoK3nmYwgPCBrb3V0b3VnYW5cIDsKK+eLrOmFjCA8IGRva3VzaGFrdVwgOwor5a+d5qWt5birIDwgbmV3YXphc2hpXCA7CivkurrmoLzljJYgPCBqaW5rYWt1a2FcIDsKK+WvheW5tCA8IHRvcmFkb3NoaVwgOwor57a66bqX5LqLIDwga2lyZWlnb3RvXCA7CivoqJjlkI3moKogPCBraW1laWthYnVcIDsKK+aQuuW4r+WTgSA8IGtlaXRhaWhpblwgOwor6aeQ5bGv5omAIDwgY2h1dXRvbmpvXCA7CivnoJTnqbbmiYAgPCBrZW5reXV1am9cIDsKK+acgOWFiOerryA8IHNhaXNlbnRhblwgOwor5bGF5L2P6ICFIDwga3lvanV1c2hhXCA7CivoqoflvLXms5UgPCBrb2Nob3Vob3VcIDsKK+Wwj+WShCA8IGtvYmFuYXNoaVwgOwor5Li46IWwIDwgbWFydWdvc2hpXCA7CivmmLzpo68gPCBoaXJ1bWVzaGlcIDsKK+imluimmuWMliA8IHNoaWtha3VrYVwgOwor5LyQ5pyoIDwgYmF0c3Vib2t1XCA7Civkv4rlgpEgPCBzaHVua2V0c3VcIDsKK+S4reiPr+ihlyA8IGNodXVrYWdhaVwgOwor6IG35q20IDwgc2hva3VyZWtpXCA7CivpgKPliKTnirYgPCByZW5iYW5qb3VcIDsKK+m6nemmmeeMqyA8IGpha291bmVrb1wgOwor5aSJ5YWJ5pifIDwgaGVua291c2VpXCA7Civlr6nmn7vlrpggPCBzaGluc2FrYW5cIDsKK+WkmueUqOS4rSA8IHRheW91Y2h1dVwgOwor5pep5p2x5oimIDwgc291dG91c2VuXCA7Civpu5nnp5jmqKkgPCBtb2t1aGlrZW5cIDsKK+WGkumZuuirhyA8IGJvdWtlbmRhblwgOwor5bi45YKZ6JasIDwgam91Yml5YWt1XCA7CivmnrbmqYsgPCBrYWtlaGFzaGlcIDsKK+WmiuWppuacjSA8IG5pbnB1ZnVrdVwgOwor5p+P5pyoIDwga2FzaGl3YWdpXCA7CivkvZPph43oqIggPCB0YWlqdXVrZWlcIDsKK+itpuWumOmaiiA8IGtlaWthbnRhaVwgOwor5Luu5qmLIDwga2FyaWJhc2hpXCA7CivorJvoq4fnpL4gPCBrb3VkYW5zaGFcIDsKK+ixhueykiA8IG1hbWV0c3VidVwgOwor5LyR5pelIDwga3l1dWppdHN1XCA7CivkuIrolqwgPCB1d2FndXN1cmlcIDsKK+i/keS7o+ipqSA8IGtpbmRhaXNoaVwgOwor54WZ6I2J6YqtIDwgdGFiYWtvc2VuXCA7CivplpPmipXoqZ4gPCBrYW50b3VzaGlcIDsKK+etlOW8geiAhSA8IHRvdWJlbnNoYVwgOwor5bmz6KGM5qOSIDwgaGVpa291Ym91XCA7Civon7vlnLDnjYQgPCBhcmlqaWdva3VcIDsKK+WvhuWupCA8IG1pc3NoaXRzdVwgOwor5omB5qGD6IW6IDwgaGVudG91c2VuXCA7CivlhazliKTlu7cgPCBrb3VoYW50ZWlcIDsKK+eOieeroCA8IGd5b2t1c2hvdVwgOwor5pWw5YSE5bm0IDwgc3V1b2t1bmVuXCA7Civnm4bnga/nsaAgPCBib25kb3Vyb3VcIDsKK+Wuv+WwhiA8IHNodWt1c2hvdVwgOwor57WC5oim5b6MIDwgc2h1dXNlbmdvXCA7CivlsIbljZIgPCBzaG91c290c3VcIDsKK+S4oeiIjCA8IHJ5b3V6ZXRzdVwgOwor57eo6ZuG6YOoIDwgaGVuc2h1dWJ1XCA7Civlkajlm7LplbcgPCBzaHV1aWNob3VcIDsKK+WFrOmBuOWItiA8IGtvdXNlbnNlaVwgOwor6IG35qWtIDwgc2hva3VneW91XCA7Civkv67nkIblt6UgPCBzaHV1cmlrb3VcIDsKK+acgOmBqeWMliA8IHNhaXRla2lrYVwgOwor5YyW5a2m6ICFIDwga2FnYWt1c2hhXCA7CivlsI7lh7ogPCBkb3VzaHV0c3VcIDsKK+i0iOizhOe9qiA8IHpvdXdhaXphaVwgOwor5a6/5a2mIDwgc2h1a3VnYWt1XCA7CivkuI3mib/oqo0gPCBmdXNob3VuaW5cIDsKK+S6lOmHjeWUsSA8IGdvanV1c2hvdVwgOwor5bCP5YaKIDwgc2hvdXNhdHN1XCA7Civoh6rlt7HpoZXnpLogPCBqaWtva2VuamlcIDsKK+W5tOm9oumghiA8IG5lbnJlaWp1blwgOwor6LOt5Y2a5aC0IDwgdG9iYWt1am91XCA7CivkuKHohJogPCByeW91a3lha3VcIDsKK+eci+WuiOiAhSA8IGthbnNodXNoYVwgOwor6ISx5Ye6IDwgZGFzc2h1dHN1XCA7CivlrqLluK0gPCBreWFrdXNla2lcIDsKK+W8sembu+WZqCA8IGpha3VkZW5raVwgOwor5LiL6I2JIDwgc2hpdGFrdXNhXCA7Civml6XmnKznmoQgPCBuaWhvbnRla2lcIDsKK+WwhOWHuiA8IHNoYXNodXRzdVwgOwor6ZaL5aK+5ZywIDwga2Fpa29uY2hpXCA7CivmmqbooZMgPCByZWtpanV0c3VcIDsKK+emgeeMn+acnyA8IGtpbnJ5b3VraVwgOwor6LWk5ZyfIDwgYWthdHN1Y2hpXCA7CivliY3poY3pg6ggPCB6ZW5nYWt1YnVcIDsKK+ipleirluWutiA8IGh5b3Vyb25rYVwgOwor6Ieq5bex6LKg5ouFIDwgamlrb2Z1dGFuXCA7CivkuIDmlonlrokgPCBpc3NlaXlhc3VcIDsKK+mcsuWkqemiqOWRgiA8IHJvdGVuYnVyb1wgOwor5LiA6Kaq562JIDwgaXNzaGludG91XCA7Civlho3mlL7pgIEgPCBzYWlob3Vzb3VcIDsKK+WMluWtpue3miA8IGthZ2FrdXNlblwgOwor5oim5q276ICFIDwgc2Vuc2hpc2hhXCA7CivkuIDmloflrZcgPCBpY2hpbW9uamlcIDsKK+aEj+awl+aKleWQiCA8IGlraXRvdWdvdVwgOwor5paH5aOr6YCjIDwgYnVuc2hpcmVuXCA7CivmnKjntr/ns7ggPCBtb21lbicnaXRvXCA7CivnhKbpm7vmsJcgPCBzaG91ZGVua2lcIDsKK+aOiOS4juW8jyA8IGp1eW9zaGlraVwgOwor55uu5YiG6YePIDwgbWVidW5yeW91XCA7CivlpKnkuIvkuIAgPCB0ZW5rYWljaGlcIDsKK+S4reWPpOWTgSA8IGNodXVrb2hpblwgOwor5Lit57W2IDwgY2h1dXpldHN1XCA7CivluILloLTmgKcgPCBzaGlqb3VzZWlcIDsKK+S4reaAp+WhqSA8IGNodXVzZWllblwgOwor5LiL6IW5IDwgc2hpdGFiYXJhXCA7CivohLHkv5cgPCBkYXRzdXpva3VcIDsKK+aWh+iqnuiqvyA8IGJ1bmdvY2hvdVwgOwor5pWj5YW157eaIDwgc2FucGVpc2VuXCA7CivmtYHooYzlhZAgPCByeXV1a291amlcIDsKK+iFueaZguioiCA8IGhhcmFkb2tlaVwgOwor5biD6KKL6IW5IDwgaG90ZWliYXJhXCA7CivnhKHmlZnogrIgPCBtdWt5b3Vpa3VcIDsKK+afj+aJiyA8IGthc2hpd2FkZVwgOwor5pWZ5Yy65rCRIDwga3lvdWt1bWluXCA7CivlnLDpnIfluK8gPCBqaXNoaW50YWlcIDsKK+mVt+acn+aIpiA8IGNob3VraXNlblwgOwor6YCa55+l57C/IDwgdHN1dWNoaWJvXCA7Civkub7niakgPCBob3NoaW1vbm9cIDsKK+Wun+WtpiA8IGppdHN1Z2FrdVwgOwor5Yqg5bel5qWtIDwga2Frb3VneW91XCA7CivkuI3ooYznirYgPCBmdWd5b3Vqb3VcIDsKK+ahn+S/tSA8IHNhbmRhd2FyYVwgOwor6IOh6bq75rK5IDwgZ29tYWFidXJhXCA7Civml6XmnKznjL8gPCBuaWhvbnphcnVcIDsKK+eMn+iJsiA8IHJ5b3VzaG9rdVwgOwor5pen5LiW55WMIDwga3l1dXNla2FpXCA7CivkuIDohIggPCBpY2hpbXlha3VcIDsKK+awtOW5s+WLlSA8IHN1aWhlaWRvdVwgOwor6LWk5Y+jIDwgc2VraWd1Y2hpXCA7Civnn63lpKfnlJ8gPCB0YW5kYWlzZWlcIDsKK+iCluWDj+eUuyA8IHNob3V6b3VnYVwgOwor5LiA6KeS542jIDwgaWtrYWt1anV1XCA7Civlj6/lpInplbcgPCBrYWhlbmNob3VcIDsKK+S4gOimgee0oCA8IGljaGl5b3Vzb1wgOwor5YWQ56ul5YqHIDwgamlkb3VnZWtpXCA7CivkuK3nq4sgPCBjaHV1cml0c3VcIDsKK+Wfi+iRrOWcsCA8IG1haXNvdWNoaVwgOwor5LiK6KO95pysIDwgam91c2VpYm9uXCA7CivkuKHmgKfoirEgPCByeW91c2Vpa2FcIDsKK+Wun+ihjOiAhSA8IGppa2tvdXNoYVwgOwor6IG35o6MIDwgc2hva3VzaG91XCA7Civlgr7mlpzoqIggPCBrZWlzaGFrZWlcIDsKK+WupOWkliA8IHNoaXRzdWdhaVwgOwor54qv572q6ICFIDwgaGFuemFpc2hhXCA7Civlr5LljbUgPCBrYW50YW1hZ29cIDsKK+e1tuS6pOeKtiA8IHpla2tvdWpvdVwgOwor5aSW5p2l6ICFIDwgZ2FpcmFpc2hhXCA7CivkvJ3lsI7kvZMgPCBkZW5kb3V0YWlcIDsKK+izquaEnyA8IHNoaXRzdWthblwgOwor5qC85YilIDwga2FrdWJldHN1XCA7CivmoLjlipsgPCBrYWt1cnlva3VcIDsKK+aWnOa7kemZjSA8IHNoYWtha2tvdVwgOwor5bi45bmz5YCJIDwgam91aGVpc291XCA7CivkuLvlgqzogIUgPCBzaHVzYWlzaGFcIDsKK+aflOi7n+aApyA8IGp1dW5hbnNlaVwgOwor5YiG5ouF6YeRIDwgYnVudGFua2luXCA7CivlhrfolLXou4ogPCByZWl6b3VzaGFcIDsKK+acgOmrmOijgSA8IHNhaWtvdXNhaVwgOwor5Lih56uvIDwgcnlvdWhhc2hpXCA7CivliqDlhaXmqKkgPCBrYW55dXVrZW5cIDsKK+S4oeeriyA8IHJ5b3VyaXRzdVwgOwor5YmN5L2P5omAIDwgemVuanV1c2hvXCA7CivlsZXmnJvloZQgPCB0ZW5ib3V0b3VcIDsKK+mBjuaVj+eXhyA8IGthYmluc2hvdVwgOwor5Lq66aCt56iOIDwgbmludG91emVpXCA7CivoiJ7lj7DliocgPCBidXRhaWdla2lcIDsKK+S4i+e0kCA8IHNoaXRhaGltb1wgOwor5bmz5Z2H5YCkIDwgaGVpa2luY2hpXCA7Civku4rml6UgPCBrb24nJ25pY2hpXCA7CivmoLzlrZDpnaIgPCBrb3VzaGltZW5cIDsKK+aXqemjryA8IGhheWFtZXNoaVwgOwor5rC06Iy25bGLIDwgbWl6dWNoYXlhXCA7Civmg4XloLHntrIgPCBqb3Vob3Vtb3VcIDsKK+W3tOaXpuadjyA8IGhhdGFua3lvdVwgOwor6LK45pa5IDwga2FzaGlrYXRhXCA7Civlr6nnvo7nnLwgPCBzaGluYmlnYW5cIDsKK+iHqueEtuimsyA8IHNoaXplbmthblwgOwor6YGL5ZCm5aSp6LOmIDwgdW5wdXRlbnB1XCA7Civlr4zmoITppIrljJYgPCBmdWVpeW91a2FcIDsKK+iEguiCqumFuCA8IHNoaWJvdXNhblwgOwor6ZaA5aSW5ryiIDwgbW9uZ2Fpa2FuXCA7Civkub7mub8gPCBrYW5zaGl0c3VcIDsKK+aKl+iPjOaApyA8IGtvdWtpbnNlaVwgOwor6aGN57iBIDwgZ2FrdWJ1Y2hpXCA7CivkvJ3mn5PmgKcgPCBkZW5zZW5zZWlcIDsKK+WNsOW6puaUr+mCoyA8IGluZG9zaGluYVwgOwor5pyq57WE57mUIDwgbWlzb3NoaWtpXCA7CivmrKfljJbkuLvnvqkgPCBvdWthc2h1Z2lcIDsKK+awtOanmOa2siA8IHN1aXlvdWVraVwgOwor5pWR5Yqp6ZqKIDwga3l1dWpvdGFpXCA7CivnhKHkuoznhKHkuIkgPCBtdW5pbXV6YW5cIDsKK+S/neWtmOmHjyA8IGhvem9ucnlvdVwgOwor5LiJ5pel5LiJ5aScIDwgbWlra2FtaXlvXCA7CivniaHkuLnmtbfogIEgPCBib3RhbicnZWJpXCA7CivmoLjlhbXlmaggPCBrYWt1aGVpa2lcIDsKK+S4jea6gOi2syA8IGZ1bWFuem9rdVwgOwor6ZW36KuH6K2wIDwgbmFnYWRhbmdpXCA7CivlhpLpmbrogIUgPCBib3VrZW5zaGFcIDsKK+S4gOeykiA8IGhpdG90c3VidVwgOwor5auh5rWBIDwgY2hha3VyeXV1XCA7Civmm7Lnm64gPCBreW9rdW1va3VcIDsKK+mjn+assiA8IHNob2t1eW9rdVwgOwor57696JKy5ZujIDwgaGFuZWJ1dG9uXCA7Civmn7TlnqMgPCBzaGliYWdha2lcIDsKK+WcsOaWueWCtSA8IGNoaWhvdXNhaVwgOwor5Lqu5pyIIDwgcnlvdWdldHN1XCA7CivmnKzloLTniakgPCBob25iYW1vbm9cIDsKK+iqnuWtpuiAhSA8IGdvZ2FrdXNoYVwgOwor5LiL56m/IDwgc2hpdGFiYWtpXCA7Civlho3oqabooYwgPCBzYWlzaGlrb3VcIDsKK+S4gOevgCA8IGhpdG9mdXNoaVwgOwor5bGF5LiI6auYIDwgaXRha2VkYWthXCA7CivlpKrpmb3ns7sgPCB0YWl5b3VrZWlcIDsKK+eglOeptuWToSA8IGtlbmt5dXVpblwgOwor5byl57ir562WIDwgYmlob3VzYWt1XCA7CivnhKHloLHphawgPCBtdWhvdXNodXVcIDsKK+iYhua6neapiyA8IHJva291a3lvdVwgOwor57W25a++5YCkIDwgemV0dGFpY2hpXCA7CivlpKnpoILlhIAgPCB0ZW5jaG91Z2lcIDsKK+S4reeVpSA8IGNodXVyeWFrdVwgOwor5rW36LOK546LIDwga2Fpem9rdW91XCA7CivosqHnlYzkurogPCB6YWlrYWlqaW5cIDsKK+miqOadpeWdiiA8IGZ1dXJhaWJvdVwgOwor54q26KKLIDwgam91YnVrdXJvXCA7Civlr5LlhrflnLAgPCBrYW5yZWljaGlcIDsKK+WJjee9ruipniA8IHplbmNoaXNoaVwgOwor54mp6YePIDwgYnV0c3VyeW91XCA7CivliqDliKTkurogPCBrYWhhbicnbmluXCA7Civli5Xmu5Hou4ogPCBkb3VrYXNzaGFcIDsKK+e1kOawt+acnyA8IGtlcHB5b3VraVwgOwor6Zu75rCX5qmf5ZmoIDwgZGVua2lraWtpXCA7CivlsZXmnJvlj7AgPCB0ZW5ib3VkYWlcIDsKK+ekvOaLneWggiA8IHJlaWhhaWRvdVwgOwor6auY5oCn6IO9IDwga291c2Vpbm91XCA7Civkub7mtbfoi5QgPCBob3NoaW5vcmlcIDsKK+S9v+eUqOS+iyA8IHNoaXlvdXJlaVwgOwor5pyJ55Sw54S8IDwgYXJpdGF5YWtpXCA7Civpq5jlkajms6IgPCBrb3VzaHV1aGFcIDsKK+Wwv+aknOafuyA8IG55b3VrZW5zYVwgOwor55Kw54q257eaIDwga2Fuam91c2VuXCA7CivmnKvmtYEgPCBtYXRzdXJ5dXVcIDsKK+eZuuaDs+azlSA8IGhhc3NvdWhvdVwgOwor5qCq5Li7IDwga2FidW51c2hpXCA7CivkuIvnn7MgPCBzaGl0YWlzaGlcIDsKK+WFjeeojueCuSA8IG1lbnplaXRlblwgOwor5YCk5q616KGoIDwgbmVkYW5oeW91XCA7Civpo6/mmYIgPCBtZXNoaWRva2lcIDsKK+ebtOW8n+WtkCA8IGppa2lkZXNoaVwgOwor6Ieq5bex5auM5oKqIDwgamlrb2tlbicnb1wgOwor6YCj6YKm5Yi2IDwgcmVucG91c2VpXCA7Civkvb/nlKjkurogPCBzaGl5b3VuaW5cIDsKK+akjeacqOmJoiA8IHVla2liYWNoaVwgOwor54Wn5bCE6YeOIDwgc2hvdXNoYXlhXCA7CivkvZzku5ggPCBzYWt1ZHp1a2VcIDsKK+aFiOWWhOW/gyA8IGppemVuc2hpblwgOwor5LiK5568IDwgdXdhbWFidXRhXCA7CivmnKjnhYnnk6YgPCBtb2t1cmVuZ2FcIDsKK+acqOe2v+eJqSA8IG1vbWVubW9ub1wgOwor5YWt5YiG5YSAIDwgcm9rdWJ1bmdpXCA7CivoppblnLDlubMgPCBzaGljaGloZWlcIDsKK+W3peS9nOWToSA8IGtvdXNha3VpblwgOwor5Lyv5Y+UIDwgaGFrdXNodWt1XCA7CivniKrpnakgPCB0c3VtYWthd2FcIDsKK+WupOWGhSA8IHNoaXRzdW5haVwgOwor5a6/5Li7IDwgeWFkb251c2hpXCA7Civlm57mvJXlupcgPCBrYWlzb3V0ZW5cIDsKK+efs+eCree0gCA8IHNla2l0YW5raVwgOwor5oqV5qmf55qEIDwgdG91a2l0ZWtpXCA7CivnjJ/niqzluqcgPCByeW91a2VuemFcIDsKK+S6jOaciCA8IGZ1dGF0c3VraVwgOwor5pel6YyyIDwgbmljaGlyb2t1XCA7Civnmq7osqHluIMgPCBrYXdhemFpZnVcIDsKK+S4gOeepSA8IGljaGliZXRzdVwgOwor6ISz6KGA5qCTIDwgbm91a2Vzc2VuXCA7CivmraPliYfljJYgPCBzZWlzb2t1a2FcIDsKK+Wkp+WlpeanmCA8IG9vb2t1c2FtYVwgOwor5Luk5a6kIDwgcmVpc2hpdHN1XCA7CivkvZPkuK0gPCBrYXJhZGFqdXVcIDsKK+asoOmZpei7iiA8IGtla2thbnNoYVwgOwor5LiA5aSn5LqLIDwgaWNoaWRhaWppXCA7CivpgKPliIbmlbAgPCByZW5idW5zdXVcIDsKK+S/rueQhuS7oyA8IHNodXVyaWRhaVwgOwor5Luy5aW9IDwgbmFrYXlvc2hpXCA7CivolYHpurvnlrkgPCBqaW5tYXNoaW5cIDsKK+WFt+eUs+abuCA8IGd1c2hpbnNob1wgOwor6Kqt5pu45a62IDwgZG9rdXNob2thXCA7Civnvo7ooZPpg6ggPCBiaWp1dHN1YnVcIDsKK+aEn+isneelrSA8IGthbnNoYXNhaVwgOwor6LK05pa55pa5IDwgYW5hdGFnYXRhXCA7Civoqr/pq6ogPCBjaG91aGF0c3VcIDsKK+adseS6rOmDvSA8IHRvdWt5b3V0b1wgOwor5pen5a2X5L2TIDwga3l1dWppdGFpXCA7Civoo73kvZzosrsgPCBzZWlzYWt1aGlcIDsKK+S6jOmAsemWkyA8IG5pc2h1dWthblwgOwor6YOo6JC95rCRIDwgYnVyYWt1bWluXCA7Civnianos6ogPCBidXNzaGl0c3VcIDsKK+aXqemBkyA8IGhheWFtaWNoaVwgOwor5Yqg55uf5Zu9IDwga2FtZWlrb2t1XCA7CivkuIDlpJzkuK0gPCBoaXRveWFqdXVcIDsKK+ani+mAoOS9kyA8IGtvdXpvdXRhaVwgOwor5Lit5Yy75a2mIDwgY2h1dWlnYWt1XCA7Civlj5fkv6HogIUgPCBqdXNoaW5zaGFcIDsKK+S8muitsOmMsiA8IGthaWdpcm9rdVwgOwor56aB54WZ6LuKIDwga2luJydlbnNoYVwgOwor54mH6YGTIDwga2F0YW1pY2hpXCA7Civpm7vlrZDpioMgPCBkZW5zaGlqdXVcIDsKK+WFt+S9k+etliA8IGd1dGFpc2FrdVwgOwor6LuK5o6M5Yy6IDwgc2hhc2hvdWt1XCA7CivnibnoqK0gPCB0b2t1c2V0c3VcIDsKK+S7luWbveawkSA8IHRha29rdW1pblwgOwor5YSS5a2m6ICFIDwganVnYWt1c2hhXCA7CivlkI3mjqLlgbUgPCBtZWl0YW50ZWlcIDsKK+WbvemAo+aXlyA8IGtva3VyZW5raVwgOwor6a+j54OP6LOKIDwgc3VydW1laWthXCA7CivlhajluILmsJEgPCB6ZW5zaGltaW5cIDsKK+WgsemBk+WumCA8IGhvdWRvdWthblwgOwor5LuP5a2mIDwgYnV0c3VnYWt1XCA7Civml6XmnKzmmbQgPCBuaWhvbmJhcmVcIDsKK+W4g+Wbo+eariA8IGZ1dG9uZ2F3YVwgOwor5L+u57mV6LK7IDwgc2h1dXplbmhpXCA7CivpnLLpnJwgPCB0c3V5dWppbW9cIDsKK+WwgumWgOabuCA8IHNlbm1vbnNob1wgOwor5YWs55So6LuKIDwga291eW91c2hhXCA7CivogJDmgKfoj4wgPCB0YWlzZWlraW5cIDsKK+acreadnyA8IHNhdHN1dGFiYVwgOwor5ZCM56iu6aGeIDwgZG91c2h1cnVpXCA7Civpn7Pln5/lpJYgPCBvbicnaWtpZ2FpXCA7CivlpI/ps6UgPCBuYXRzdWRvcmlcIDsKK+izquWVjyA8IHNoaXRzdW1vblwgOwor6Kaq5ZKM5oCnIDwgc2hpbndhc2VpXCA7CivliY3poK3okYkgPCB6ZW50b3V5b3VcIDsKK+ePoOaaluewviA8IHRhbWFub3JlblwgOwor54us56uLIDwgZG9rdXJpdHN1XCA7CivkuZ3mmJ/lrrYgPCBreXV1c2Vpa2FcIDsKK+mAmuawl+WtlCA8IHRzdXVraWtvdVwgOwor5pyI5qyhIDwgdHN1a2luYW1pXCA7CivorKzoqqwgPCBieXV1c2V0c3VcIDsKK+mao+S6uuaEmyA8IHJpbmppbicnYWlcIDsKK+S4jeaJv+efpSA8IGZ1c2hvdWNoaVwgOwor5q275Lqh5pWwIDwgc2hpYm91c3V1XCA7CivlrabljZIgPCBnYWt1c290c3VcIDsKK+WxheS9j+aoqSA8IGt5b2p1dWtlblwgOwor6Ymk5ous5bynIDwga2FnaWtha2tvXCA7CivlgKbmgKDmhJ8gPCBrZW50YWlrYW5cIDsKK+WGt+iUteiIuSA8IHJlaXpvdXNlblwgOwor5aW06LypIDwgeWF0c3ViYXJhXCA7CivlkIjmiJDphZIgPCBnb3VzZWlzaHVcIDsKK+WRs+WZjOaxgSA8IG1pc29zaGlydVwgOwor5oyH5bCO6ICFIDwgc2hpZG91c2hhXCA7CivlrablipsgPCBnYWt1cnlva3VcIDsKK+WNiuWPr+mAmiA8IGhhbmthdHN1dVwgOwor54Sh6K2m5ZGKIDwgbXVrZWlrb2t1XCA7Civln7rmnKzlkIjmhI8gPCBraWhvbmdvdWlcIDsKK+Wkp+ilv+mDtyA8IGRhaXNhaWdvdVwgOwor552h55yg5YmkIDwgc3VpbWluemFpXCA7Civml4vnm6Tlt6UgPCBzZW5iYW5rb3VcIDsKK+W4r+WIhuaVsCA8IHRhaWJ1bnN1dVwgOwor5bCP5YWQ56eR5Yy7IDwgc2hvdW5pa2FpXCA7CivlvozntpnogIUgPCBrb3VrZWlzaGFcIDsKK+S6ruWvnyA8IHJ5b3VzYXRzdVwgOwor5aSp5pel5aGpIDwgdGVucGlzaGlvXCA7CivlqIHlnKfnmoQgPCBpYXRzdXRla2lcIDsKK+S6jOmHjeW6lSA8IG5panV1em9rb1wgOwor5Y+I5byf5a2QIDwgbWF0YWRlc2hpXCA7CivmlZHlkb3lhbcgPCBreXV1bWVpZ3VcIDsKK+S4reasoSA8IG5ha2F0c3VnaVwgOwor56aB54yf5Yy6IDwga2lucnlvdWt1XCA7CivlvKnntJroiaYgPCBkb2t5dXVrYW5cIDsKK+aXp+itmCA8IGt5dXVzaGlraVwgOwor5Lq65aa7IDwgaGl0b2R6dW1hXCA7CivmgZLkuYXljJYgPCBrb3VreXV1a2FcIDsKK+aWsOmHiCA8IHNoaW5zaGFrdVwgOwor5YW35L2T55qEIDwgZ3V0YWl0ZWtpXCA7CivohbnkuIDmna8gPCBoYXJhaXBwYWlcIDsKK+agvOeQhuirliA8IGtha3VyaXJvblwgOwor5pel6Ku+IDwgbmljaGlkYWt1XCA7CivmhJ/orJ3nirYgPCBrYW5zaGFqb3VcIDsKK+iCoeS4iyA8IG1hdGFzaGl0YVwgOwor54++6KGM54qvIDwgZ2Vua291aGFuXCA7Civnj43lrqIgPCBjaGlua3lha3VcIDsKK+aXpeS7mOWNsCA8IGhpZHp1a2VpblwgOwor5aSq6Zm954GvIDwgdGFpeW91dG91XCA7CivmiJHmrabogIXnvoUgPCBnYW11c2hhcmFcIDsKK+WklumdoiA8IHNvdG9kenVyYVwgOwor5oOF5aCx5rqQIDwgam91aG91Z2VuXCA7CivmmKXoibIgPCBzaHVuc2hva3VcIDsKK+WFrOS9v+mkqCA8IGtvdXNoaWthblwgOwor57+M5pyIIDwgeW9rdWdldHN1XCA7CivluIbnq4vosp0gPCBob3RhdGVnYWlcIDsKK+iLpeatpuiAhSA8IHdha2FtdXNoYVwgOwor5Lqs5aWzIDwga3lvdW9uJyduYVwgOwor5riF566X5pu4IDwgc2Vpc2Fuc2hvXCA7CivmnKzooZfpgZMgPCBob25rYWlkb3VcIDsKK+S4suafvyA8IGt1c2hpZ2FraVwgOwor6YO15L6/6LuKIDwgeXV1Ymluc2hhXCA7Civoh6rlt7HniqDnibIgPCBqaWtvZ2lzZWlcIDsKK+e/jOaXpSA8IHlva3VqaXRzdVwgOwor5LiA54K55qmfIDwgaWNoaXRlbmtpXCA7CivkuKHmpbUgPCByeW91a3lva3VcIDsKK+Wkj+miqOmCqiA8IG5hdHN1a2F6ZVwgOwor5LuP5ZCNIDwgYnV0c3VteW91XCA7CivnibnoibIgPCB0b2t1c2hva3VcIDsKK+S4remBk+a0viA8IGNodXVkb3VoYVwgOwor5pq06aKo5Z+fIDwgYm91ZnV1aWtpXCA7CivnmbrnpoHmnKwgPCBoYWtraW5ib25cIDsKK+Wcp+mbu+awlyA8IGF0c3VkZW5raVwgOwor5beo5Lq65YWaIDwga3lvamludG91XCA7Civpo5/lrqIgPCBzaG9ra3lha3VcIDsKK+aZguS7o+eJqSA8IGppZGFpbW9ub1wgOwor5bGP6aKo5bKpIDwgYnlvdWJ1aXdhXCA7Civlv6voqJjpjLIgPCBrYWlraXJva3VcIDsKK+eItuimqiA8IGNoaWNoaW95YVwgOwor5pq06aKo5ZyPIDwgYm91ZnV1a2VuXCA7Civku67kvY8gPCBrYXJpenVtYWlcIDsKK+mbqumdtCA8IHl1a2lndXRzdVwgOwor5LiN5oiQ57i+IDwgZnVzZWlzZWtpXCA7Civnj77lh7ogPCBnZW5zaHV0c3VcIDsKK+S7j+WKmyA8IGJ1dHN1cmlraVwgOwor5aSa6Z+z56+AIDwgdGFvbnNldHN1XCA7CivpgKPluK/mhJ8gPCByZW50YWlrYW5cIDsKK+mDqOWIhueahCA8IGJ1YnVudGVraVwgOwor5bCC6ZaA5bqXIDwgc2VubW9udGVuXCA7CivmhaPnlKjpn7MgPCBrYW4nJ3lvdW9uXCA7CivlpJzku5XkuosgPCB5b3NoaWdvdG9cIDsKK+a8lOe/kuaelyA8IGVuc2h1dXJpblwgOwor5LiL5qeYIDwgc2hpbW96YW1hXCA7Civmn5Dpq5jmoKEgPCBib3Vrb3Vrb3VcIDsKK+e5sOi2iiA8IGt1cmlrb3NoaVwgOwor57a/6I+T5a2QIDwgd2F0YWdhc2hpXCA7Civot6jnt5rmqYsgPCBrb3Nlbmt5b3VcIDsKK+eFmeiNieebhiA8IHRhYmFrb2JvblwgOwor5Y+X6aiT56WoIDwganVrZW5oeW91XCA7CivlhoXmlpzoppYgPCBuYWlzaGFzaGlcIDsKK+mbu+S/oeapnyA8IGRlbnNoaW5raVwgOwor5Zyn57iu5qmfIDwgYXNzaHVrdWtpXCA7CivnianohbAgPCBtb25vZ29zaGlcIDsKK+S4ieakjyA8IG1pdHN1bWF0YVwgOwor5a6f6KGM5qipIDwgamlra291a2VuXCA7Civmnb7ljp8gPCBtYXRzdWJhcmFcIDsKK+ebuOS6kuaJtuWKqSA8IHNvdWdvZnVqb1wgOwor6LOD5YCfIDwgY2hpbnNoYWt1XCA7Civnj77ooYzms5UgPCBnZW5rb3Vob3VcIDsKK+iHqueEtueVjCA8IHNoaXplbmthaVwgOwor5oe45Z6C57eaIDwga2Vuc3Vpc2VuXCA7CivkuIrmiYvogIUgPCBqb3V6dW1vbm9cIDsKK+aXpeacrOWtpiA8IG5paG9uZ2FrdVwgOwor5o6S6Zqc5ZmoIDwgaGFpc2hvdWtpXCA7CivnnJ/lpI/ml6UgPCBtYW5hdHN1YmlcIDsKK+eGn+mjnyA8IGp1a3VzaG9rdVwgOwor5oSf54Sh6YePIDwga2FubXVyeW91XCA7Civntabku5jph5EgPCBreXV1ZnVraW5cIDsKK+S7mOS6uiA8IHRzdWtlYml0b1wgOwor5Luj5ZCN6KmeIDwgZGFpbWVpc2hpXCA7CivlkIzpn7PnlbDnvqkgPCBkb3VvbicnaWdpXCA7CivmlZHliqnoiLkgPCBreXV1am9zZW5cIDsKK+eJveW8lei7iiA8IGtlbicnaW5zaGFcIDsKK+WxheS9j+aApyA8IGt5b2p1dXNlaVwgOwor5oqX5Yed5Zu6IDwga291Z3lvdWtvXCA7CivnnIvorbfplbcgPCBrYW5nb2Nob3VcIDsKK+S9juaAp+iDvSA8IHRlaXNlaW5vdVwgOwor54Sh6KiI55S7IDwgbXVrZWlrYWt1XCA7CivlpJrpnaLop5IgPCB0YW1lbmtha3VcIDsKK+S9juWRqOazoiA8IHRlaXNodXVoYVwgOwor55CG5oOz6YO3IDwgcmlzb3VreW91XCA7CivooqvniIbogIUgPCBoaWJha3VzaGFcIDsKK+eyvuijveezliA8IHNlaXNlaXRvdVwgOwor5pyJ55So5oCnIDwgeXV1eW91c2VpXCA7CivlqK/mpb3ooZcgPCBnb3Jha3VnYWlcIDsKK+W+jOWkqeaApyA8IGtvdXRlbnNlaVwgOwor5qCh5Y+L5LyaIDwga291eXV1a2FpXCA7CivljZjliKnooaggPCB0YW5yaWh5b3VcIDsKK+iHquW3seacrOS9jSA8IGppa29ob24nJ2lcIDsKK+aciOW9sSA8IHRzdWtpa2FnZVwgOwor55mC6aSK5omAIDwgcnlvdXlvdWpvXCA7Civkv53lrojnmoQgPCBob3NodXRla2lcIDsKK+aciOW9oiA8IHRzdWtpZ2F0YVwgOwor55qH5rCR5YWaIDwga291bWludG91XCA7Civkuozph43llLEgPCBuaWp1dXNob3VcIDsKK+S4g+abnCA8IHNoaWNoaXlvdVwgOwor5Y216IOO55SfIDwgcmFudGFpc2VpXCA7CivkuIDmnIggPCBoaXRvdHN1a2lcIDsKK+e3mummmeS7oyA8IHNlbmtvdWRhaVwgOwor5a++6KeS5YyWIDwgdGFpa2FrdWthXCA7CivmnIDpq5jngrkgPCBzYWlrb3V0ZW5cIDsKK+WkqeizqiA8IHRlbnNoaXRzdVwgOwor5LiL5pW3IDwgc2hpdGFqaWtpXCA7CivmnIDkvY7pmZAgPCBzYWl0ZWlnZW5cIDsKK+S4g+aYnyA8IHNoaWNoaXNlaVwgOwor5q2M5ZCI5oimIDwgdXRhZ2Fzc2VuXCA7CivlubPlkozos54gPCBoZWl3YXNob3VcIDsKK+aVsOS/guaVsCA8IHN1dWtlaXN1dVwgOwor5pyo54Kt55S7IDwgbW9rdXRhbmdhXCA7Civlho3pmY3oh6ggPCBzYWlrb3VyaW5cIDsKK+aYn+epuiA8IGhvc2hpem9yYVwgOwor5YaN6Kq/5p+7IDwgc2FpY2hvdXNhXCA7Civpq5jph47mp5kgPCBrb3V5YW1ha2lcIDsKK+Wumua7kei7iiA8IHRlaWthc3NoYVwgOwor5Ly85oiR6JyCIDwgamlnYWJhY2hpXCA7Civml4vlhYnmgKcgPCBzZW5rb3VzZWlcIDsKK+WQjeaKleaJiyA8IG1laXRvdXNodVwgOwor54m5562GIDwgdG9rdWhpdHN1XCA7CivkuIDml6UgPCB0c3VpdGFjaGlcIDsKK+aOoeeul+aApyA8IHNhaXNhbnNlaVwgOwor5LyB5qWt6ICFIDwga2lneW91c2hhXCA7CivkurrkvJ0gPCBoaXRvZHp1dGVcIDsKK+eVsOW4uOmrmOa4qSA8IGlqb3Vrb3VvblwgOwor54uQ54GrIDwga2l0c3VuZWJpXCA7CivpioDnoILlrZAgPCBnaW5zdW5hZ29cIDsKK+eIhuijgiA8IGJha3VyZXRzdVwgOwor54m556uLIDwgdG9rdXJpdHN1XCA7Civkurrku5ggPCBoaXRvZHp1a2lcIDsKK+WbveWIhuWvuiA8IGtva3VidW5qaVwgOwor6aSK6LGa5aC0IDwgeW91dG9uam91XCA7CivpnZ7lr77np7AgPCBoaXRhaXNob3VcIDsKK+S4jemKuemLvCA8IGZ1c2h1dWtvdVwgOwor5aSx6KiAIDwgc2hpdHN1Z2VuXCA7CivkuIDpmaLliLYgPCBpY2hpaW5zZWlcIDsKK+aJi+S7leS6iyA8IHRlc2hpZ290b1wgOwor6IOG5Zqi54KOIDwgdGFuJydub3VlblwgOwor6Zuq6YGTIDwgeXVraW1pY2hpXCA7Civpm5HpjLIgPCB6YXRzdXJva3VcIDsKK+W8t+aJk+iAhSA8IGt5b3VkYXNoYVwgOwor6KaP56+E55qEIDwga2loYW50ZWtpXCA7CivnvoXntJfntJkgPCByYXNoYWdhbWlcIDsKK+iEseiho+WgtCA8IGRhdHN1aWpvdVwgOwor5aWz6IW5IDwgb24nJ25hYmFyYVwgOwor54ax6YePIDwgbmV0c3VyeW91XCA7CivmlZHliqnntrIgPCBreXV1am9tb3VcIDsKK+mbqui+sSA8IHNldHN1am9rdVwgOwor5aSq6Zmw5pqmIDwgdGFpaW5yZWtpXCA7Civmj5rnvr3onbYgPCBhZ2VoYWNob3VcIDsKK+mgreagqiA8IGF0YW1ha2FidVwgOwor5aOr5ZCb5a2QIDwgc2hpa3Vuc2hpXCA7CivohbDnvr3nm64gPCBrb3NoaWJhbWVcIDsKK+eJh+S4gOaWuSA8IGthdGFpcHBvdVwgOwor6Zi/54mH56qfIDwgYWhlbmt1dHN1XCA7CivlpLHooYAgPCBzaGlra2V0c3VcIDsKK+aapuaciCA8IHJla2lnZXRzdVwgOwor5ZC+5pyo6aaZIDwgd2FyZW1va291XCA7CivlpInos6ogPCBoZW5zaGl0c3VcIDsKK+mjn+WHuiA8IGhhbWlkYXNoaVwgOwor5aSn5Z6L6LuKIDwgb29nYXRhc2hhXCA7CivlpI/lraPnhrEgPCBrYWtpbmV0c3VcIDsKK+WknOipsSA8IHlvYmFuYXNoaVwgOwor5YaF6Zm46ZynIDwgbmFpcmlrdW11XCA7CivmpI3lrZfmqZ8gPCBzaG9rdWppa2lcIDsKK+mBiuimp+iIuSA8IHl1dXJhbnNlblwgOwor5Lmz5oi/54KOIDwgbnl1dWJvdWVuXCA7CivohLPmjKvlgrcgPCBub3V6YXNob3VcIDsKK+WkqeiiiyA8IHRlbmJ1a3Vyb1wgOwor5a2m55Sf6KqyIDwgZ2FrdXNlaWthXCA7CivpnbTntJAgPCBrdXRzdWhpbW9cIDsKK+iXgeW4g+WboyA8IHdhcmFidXRvblwgOwor6Kmz6L+wIDwgc2hvdWp1dHN1XCA7CivmipXmqZ/lv4MgPCB0b3VraXNoaW5cIDsKK+mDteS+v+iIuSA8IHl1dWJpbnNlblwgOwor6Z2S5bm05ZujIDwgc2VpbmVuZGFuXCA7Civli6flkYrmoYggPCBrYW5rb2t1YW5cIDsKK+eJueeZuiA8IHRva3VoYXRzdVwgOwor6LuN5LqL5o+05YqpIDwgZ3VuamllbmpvXCA7CivlpKnmloflj7AgPCB0ZW5tb25kYWlcIDsKK+iHqueEtuazlSA8IHNoaXplbmhvdVwgOwor55+z54Gw5rSeIDwgc2Vra2FpZG91XCA7CivlvIrooaPnoLTluL0gPCBoZWlpaGFib3VcIDsKK+mdtOevpiA8IGt1dHN1YmVyYVwgOwor5aKX5YiK5Y+3IDwgem91a2FuZ291XCA7CivkuIvlvbkgPCBzaGl0YXlha3VcIDsKK+S4oeWyuCA8IHJ5b3VnaXNoaVwgOwor5puy5a2mIDwga3lva3VnYWt1XCA7CivlhoXlpKfoh6MgPCBuYWlkYWlqaW5cIDsKK+ePvuWcqOWcsCA8IGdlbnphaWNoaVwgOwor5oim6LuK6ZqKIDwgc2Vuc2hhdGFpXCA7Civnhp/pgZQgPCBqdWt1dGF0c3VcIDsKK+S4keW5tCA8IHVzaGlkb3NoaVwgOwor5LqM6YeN5Li4IDwgbmlqdXVtYXJ1XCA7CivpnLLojYkgPCB0c3V5dWt1c2FcIDsKK+mFkumAoOWgtCA8IHNodXpvdWpvdVwgOwor5oSb6Kqt6ICFIDwgYWlkb2t1c2hhXCA7CivkuIPkupTkuInnuIQgPCBzaGltZW5hd2FcIDsKK+aWh+WMlumBuueUoyA8IGJ1bmthaXNhblwgOwor55+z54Gw5rC0IDwgc2Vra2Fpc3VpXCA7CivlpKflnLDpnIcgPCBkYWlqaXNoaW5cIDsKK+iplemHiCA8IGh5b3VzaGFrdVwgOwor5LiN5ouh5aSnIDwgZnVrYWt1ZGFpXCA7CivkuLvlsI7ogIUgPCBzaHVkb3VzaGFcIDsKK+mrmOiSlOe1tSA8IHRha2FtYWtpZVwgOwor6Ieq54S25q27IDwgc2hpemVuc2hpXCA7CivlsYXkvY/lnLAgPCBreW9qdXVjaGlcIDsKK+S4gOW+iyA8IGljaGlyaXRzdVwgOwor5rG65q276ZqKIDwga2Vzc2hpdGFpXCA7CivkuLvohLPogIUgPCBzaHVub3VzaGFcIDsKK+iInualvemdoiA8IGJ1Z2FrdW1lblwgOwor6a2a5LuL6aGeIDwgZ3lva2FpcnVpXCA7CivmnIDpq5jmpJwgPCBzYWlrb3VrZW5cIDsKK+eGseaxmuafkyA8IG5ldHN1b3NlblwgOwor5oGS5pif5bm0IDwga291c2VpbmVuXCA7Civoh6rlnKjpiaQgPCBqaXphaWthZ2lcIDsKK+ertui1sOmmrCA8IGt5b3Vzb3ViYVwgOwor5b6h5omL5rSXIDwgbWl0YXJhc2hpXCA7CivlopfluYXlmaggPCB6b3VmdWt1a2lcIDsKK+aXpeacrOWBtCA8IG5paG9uZ2F3YVwgOwor5Lq66aGe5Y+yIDwgamlucnVpc2hpXCA7Civoi6blirTmp5ggPCBrdXJvdXNhbWFcIDsKK+emgOiri+abuCA8IHJpbnNlaXNob1wgOwor6aKo5Y+jIDwga2F6YWd1Y2hpXCA7Civkv7Poq6fluKsgPCBoYWlrYWlzaGlcIDsKK+Wkj+idiSA8IG5hdHN1emVtaVwgOwor6Ieq5a625Y+X57K+IDwgamlrYWp1c2VpXCA7CivmhaPnlKjoqp4gPCBrYW4nJ3lvdWdvXCA7CivlpbPlrabnlJ8gPCBqb2dha3VzZWlcIDsKK+mbu+WtkOeuoSA8IGRlbnNoaWthblwgOwor5qK15aSp546LIDwgYm9udGVuJydvdVwgOwor6Zye6I2JIDwga2FzdW1pc291XCA7CivlkIjmiJDntJkgPCBnb3VzZWlzaGlcIDsKK+m7hOmKhemJsSA8IGtvdWRvdWtvdVwgOwor6Ieq5a625Y+X57KJIDwgamlrYWp1ZnVuXCA7CivniafnlZwgPCBib2t1Y2hpa3VcIDsKK+WPuOaVmeWMuiA8IHNoaWt5b3VrdVwgOwor6Kej5pWj5qipIDwga2Fpc2Fua2VuXCA7CivpganpvaLmnJ8gPCB0ZWtpcmVpa2lcIDsKK+WogeWah+eahCA8IGlrYWt1dGVraVwgOwor6YqD6YCj5bCEIDwganV1cmVuc2hhXCA7CivlhY3nqI7lk4EgPCBtZW56ZWloaW5cIDsKK+eEvOmkhSA8IHlha2ltb2NoaVwgOwor6auY5rC05rqWIDwga291c3VpanVuXCA7CivlpKrpmb3lubQgPCB0YWl5b3VuZW5cIDsKK+awkeeUn+WnlOWToSA8IG1pbnNlaWlpblwgOwor55+z57Sw5belIDwgaXNoaXphaWt1XCA7Civlr53lsI/kvr8gPCBuZXNob3ViZW5cIDsKK+acq+WDmiA8IGJhdHN1cnlvdVwgOwor5Ya36JS15rOVIDwgcmVpem91aG91XCA7CivphY3liIbms5UgPCBoYWlidW5ob3VcIDsKK+iAvee+jueahCA8IHRhbmJpdGVraVwgOwor6Ki76YeIIDwgY2h1dXNoYWt1XCA7CivmvZzoiKroiYcgPCBzZW5rb3V0ZWlcIDsKK+WQjOeqk+eUnyA8IGRvdXNvdXNlaVwgOwor5pS+5rWq6ICFIDwgaG91cm91c2hhXCA7CivnqK7mpoLlv7UgPCBzaHVnYWluZW5cIDsKK+aXqeaYjuaIpiA8IHNvdW1laXNlblwgOwor5b6u56mN5YiGIDwgYmlzZWtpYnVuXCA7Civps6XnnrDlm7MgPCBjaG91a2FuenVcIDsKK+Wls+eOi+icgiA8IGpvb3ViYWNoaVwgOwor5paw57eRIDwgc2hpbnJ5b2t1XCA7CivlpLHohJogPCBzaGlra3lha3VcIDsKK+WkluS6pOWumCA8IGdhaWtvdWthblwgOwor5q2v6IKJ54KOIDwgc2hpbmlrdWVuXCA7Civoh6rnhLbmnpcgPCBzaGl6ZW5yaW5cIDsKK+a8lOe/kuWgtCA8IGVuc2h1dWpvdVwgOwor5bCP6bqm6ImyIDwga29tdWdpaXJvXCA7Civlvqnlj6Toqr8gPCBmdWtrb2Nob3VcIDsKK+WPjeecgeS8miA8IGhhbnNlaWthaVwgOwor54ax5biv6a2aIDwgbmV0dGFpZ3lvXCA7CivlpLHogbcgPCBzaGlzc2hva3VcIDsKK+WNmOiRieapnyA8IHRhbicneW91a2lcIDsKK+aEm+S7luS4u+e+qSA8IGFpdGFzaHVnaVwgOwor5omA5pyJ6ICFIDwgc2hveXV1c2hhXCA7Civosqnlo7LogIUgPCBoYW5iYWlzaGFcIDsKK+S4u+S6uumhlCA8IHNodWppbmdhb1wgOwor5ruR56i96ICFIDwgb2Rva2Vtb25vXCA7CivmsLTpo6LppYkgPCBtaXp1a2lraW5cIDsKK+a1t+S4iuazlSA8IGthaWpvdWhvdVwgOwor54ax5Y+v5aGRIDwgbmV0c3VrYXNvXCA7CivlpI/oj4ogPCBuYXRzdWdpa3VcIDsKK+S4gOWFmuS4gOa0viA8IGl0dG91aXBwYVwgOwor5YyW5a2m5ZOBIDwga2FnYWt1aGluXCA7CivnuJ7om4cgPCBzaGltYWhlYmlcIDsKK+S4reWTsiA8IGNodXV0ZXRzdVwgOwor5a2Q5rKi5bGxIDwga29kYWt1c2FuXCA7CivkvZnmsLTlkJAgPCB5b3N1aWhha2lcIDsKK+aAquWlh+aYoOeUuyA8IGthaWtpZWlnYVwgOwor6Kiz6L+wIDwgeWFrdWp1dHN1XCA7CivmlrDnr4kgPCBzaGluY2hpa3VcIDsKK+Wkj+iNiSA8IG5hdHN1Z3VzYVwgOwor5pio5bm05bqmIDwgc2FrdW5lbmRvXCA7CivnjonkuLIgPCB0YW1hZ3VzaGlcIDsKK+iHqueEtuaVsCA8IHNoaXplbnN1dVwgOwor5YaN6KiC54mIIDwgc2FpdGVpYmFuXCA7CivpnZLlubTkvJogPCBzZWluZW5rYWlcIDsKK+S4reWPoyA8IG5ha2FndWNoaVwgOwor5aWz55mWIDwgb24nJ25hZ3VzZVwgOwor54++5Zyw5Lq6IDwgZ2VuY2hpamluXCA7Civmh5DnlpHlv4MgPCBrYWlnaXNoaW5cIDsKK+WnpeahnCA8IHViYXpha3VyYVwgOwor5pyd5pel5b2xIDwgYXNhaGlrYWdlXCA7Civph4jov6bniZ/lsLwgPCBzaGFrYW11bmlcIDsKK+iqmOWwjuW8viA8IHl1dWRvdWRhblwgOwor6LKp5aOy57ayIDwgaGFuYmFpbW91XCA7CivkuK3ljZIgPCBjaHV1c290c3VcIDsKK+WFq+eZvuS4hyA8IHlhb3lvcm96dVwgOwor5LiL5Z2CIDwgc2hpbW9zYWthXCA7CivosqfkuY/kurogPCBiaW5ib3VuaW5cIDsKK+W3peS6i+S4rSA8IGtvdWppY2h1dVwgOwor56qD55uX572qIDwgc2V0dG91emFpXCA7CivpoqjkuIsgPCBrYXphc2hpbW9cIDsKK+mcnue2siA8IGthc3VtaWFtaVwgOwor5Y6f6KOB5YikIDwgZ2Vuc2FpYmFuXCA7CivngrnngavolqwgPCB0ZW5rYXlha3VcIDsKK+a1t+S4iuaoqSA8IGthaWpvdWtlblwgOwor5YyW5a2m5YmkIDwga2FnYWt1emFpXCA7Civnsr7oo73ms5UgPCBzZWlzZWlob3VcIDsKK+S4oeWPoyA8IHJ5b3VndWNoaVwgOwor5pa555y857SZIDwgaG91Z2Fuc2hpXCA7Civlj5fos57ogIUgPCBqdXNob3VzaGFcIDsKK+aOqOiWpuiAhSA8IHN1aXNlbnNoYVwgOwor6Zuq5qih5qeYIDwgeXVraW1veW91XCA7CivniIbnq7kgPCBiYWt1Y2hpa3VcIDsKK+S4gOe0muWTgSA8IGlra3l1dWhpblwgOwor5qC85a2Q54K5IDwga291c2hpdGVuXCA7Civml6Xni6wgPCBuaWNoaWRva3VcIDsKK+izvOiyt+iAhSA8IGtvdWJhaXNoYVwgOwor5LiA562J6LOeIDwgaXR0b3VzaG91XCA7Civku5blm73kurogPCB0YWtva3VqaW5cIDsKK+epuuawl+a1tCA8IGt1dWtpeW9rdVwgOwor5pen54mpIDwga3l1dWJ1dHN1XCA7CivnjaPlgY8gPCBrZW1vbm9oZW5cIDsKK+WkluS6pOWboyA8IGdhaWtvdWRhblwgOwor5Z+36KGM6YOoIDwgc2hpa2tvdWJ1XCA7CivpnLLnqIsgPCB0c3V5dWhvZG9cIDsKK+iqv+evgCA8IGNob3VzZXRzdVwgOwor55CG56We6KuWIDwgcmlzaGlucm9uXCA7Civlj5fpqJPmlpkgPCBqdWtlbnJ5b3VcIDsKK+mgreWtlyA8IGthc2hpcmFqaVwgOwor5Yud5omL5YWDIDwga2F0dGVtb3RvXCA7Civnm7jlr77oq5YgPCBzb3V0YWlyb25cIDsKK+WIiuihjOS8miA8IGthbmtvdWthaVwgOwor542E5Y2SIDwgZ29rdXNvdHN1XCA7Civkv53ogrLmlpkgPCBob2lrdXJ5b3VcIDsKK+e3j+izh+eUoyA8IHNvdXNoaXNhblwgOwor5L2P5rCR56iOIDwganV1bWluemVpXCA7CivkuJTlj4ggPCBrYXRzdW1hdGFcIDsKK+S/uOe1puaXpSA8IGhvdWt5dXViaVwgOwor54mp5rWBIDwgYnV0c3VyeXV1XCA7CivkuKHlh7ggPCByeW91dG90c3VcIDsKK+mZs+i/sCA8IGNoaW5qdXRzdVwgOwor6KGM5pS/5bqcIDwgZ3lvdXNlaWZ1XCA7Civlh6blpbPohpwgPCBzaG9qb21ha3VcIDsKK+maj+S8tOiAhSA8IHp1aWhhbnNoYVwgOwor5paw552AIDwgc2hpbmNoYWt1XCA7CivlpbPniakgPCBvbicnbmFtb25vXCA7CivkuI3ljbAgPCBmdWppcnVzaGlcIDsKK+aCquWuo+S8nSA8IGFrdXNlbmRlblwgOwor5pu45LuYIDwga2FraXRzdWtlXCA7CivlpJrpnaLnmoQgPCB0YW1lbnRla2lcIDsKK+ipsOiNiSA8IHRzdW1la3VzYVwgOwor5a++5oim6LuKIDwgdGFpc2Vuc2hhXCA7CivkuK3kvY0gPCBjaHV1Z3VyYWlcIDsKK+eGiuicgiA8IGt1bWFiYWNoaVwgOwor6Ium5Yq05oCnIDwga3Vyb3VzaG91XCA7CivmgZDlprvlrrYgPCBreW91c2Fpa2FcIDsKK+WNium5ueawtCA8IGhhbmthbnN1aVwgOwor56S+5Lya57WM5riIIDwgc2hha2Fpa2VpXCA7CivntZDot4/otrrluqcgPCBrZWtrYWZ1emFcIDsKK+WvhuiIquiAhSA8IG1pa2tvdXNoYVwgOwor5LiA562J6KaqIDwgaXR0b3VzaGluXCA7CivmlZnogbcgPCBreW91c2hva3VcIDsKK+WkseekvCA8IHNoaXRzdXJlaVwgOwor6KOc5by3562LIDwgaG9reW91a2luXCA7CivnnIvmnb/lsYsgPCBrYW5iYW4nJ3lhXCA7CivnpL7lk6Hlr64gPCBzaGFpbnJ5b3VcIDsKK+WRvOWQuOazlSA8IGtva3l1dWhvdVwgOwor54mp5qyyIDwgYnV0c3V5b2t1XCA7CivkuIDlj6MgPCBoaXRva3VjaGlcIDsKK+aTgumJoiA8IHN1cmliYWNoaVwgOwor5L2T6YeP5ZmoIDwgdGFpcnlvdWtpXCA7CivljJblrabkuIogPCBrYWdha3Vqb3VcIDsKK+S8veiXjemzpSA8IGdhcmFuY2hvdVwgOwor5b+D6IeT6YOoIDwgc2hpbnpvdWJ1XCA7CivniIbnmbogPCBiYWt1aGF0c3VcIDsKK+acgOmrmOWzsCA8IHNhaWtvdWhvdVwgOwor56u26Lyq5aC0IDwga2Vpcmluam91XCA7Civph43lqZrogIUgPCBqdXVrb25zaGFcIDsKK+imgeaSg+apnyA8IHlvdWdla2lraVwgOwor5rCX5YyW54axIDwga2lrYW5ldHN1XCA7CivmmKjml6UgPCBzYWt1aml0c3VcIDsKK+aXpeaVmee1hCA8IG5pa2t5b3Vzb1wgOwor6JOW6bq75a2Q5rK5IDwgaGltYXNoaXl1XCA7CivnuK7ntIQgPCBzaHVrdXlha3VcIDsKK+S4ieetieaYnyA8IHNhbnRvdXNlaVwgOwor5ZG95ZCN5rOVIDwgbWVpbWVpaG91XCA7Civlj4LliqDlm70gPCBzYW5rYWtva3VcIDsKK+acqumWi+aLkyA8IG1pa2FpdGFrdVwgOwor5YaN57eo5oiQIDwgc2FpaGVuc2VpXCA7CivlpLHnnYAgPCBzaGl0Y2hha3VcIDsKK+mAj+awtOaApyA8IHRvdXN1aXNlaVwgOwor5LiA5YiXIDwgaWNoaXJldHN1XCA7Civlj43lr77oq5YgPCBoYW50YWlyb25cIDsKK+WtpuiKuOWToSA8IGdha3VnZWlpblwgOwor5Ya35YeN6a2aIDwgcmVpdG91Z3lvXCA7CivmlZfmrovlhbUgPCBoYWl6YW5oZWlcIDsKK+S4i+WBtCA8IHNoaXRhZ2F3YVwgOwor6ZuA6ImyIDwgc3V6dW1laXJvXCA7Civmm7jnlJ/oq5YgPCBzaG9zZWlyb25cIDsKK+iyoeaUv+mboyA8IHphaXNlaW5hblwgOwor5LiA5YSyIDwgaGl0b21vdWtlXCA7CivliLbnmYzliaQgPCBzZWlnYW56YWlcIDsKK+aXj+a7hSA8IHpva3VtZXRzdVwgOwor55m65rOh5YmkIDwgaGFwcG91emFpXCA7CivkvJ3lpYfnmoQgPCBkZW5raXRla2lcIDsKK+e1huWJteiGjyA8IGJhbnNvdWtvdVwgOwor5LiL5L2cIDwgc2hpdGFzYWt1XCA7Civnn7PngbDlsqkgPCBzZWtrYWlnYW5cIDsKK+iqv+eVpSA8IGNob3VyeWFrdVwgOwor5YW15a2m5qChIDwgaGVpZ2Fra291XCA7Civlr4zlsbHnnIwgPCB0b3lhbWFrZW5cIDsKK+ipsuW9k+iAhSA8IGdhaXRvdXNoYVwgOwor54K55pWw5Yi2IDwgdGVuc3V1c2VpXCA7CivmmJTml6UgPCBzZWtpaml0c3VcIDsKK+mrmOefpeecjCA8IGtvdWNoaWtlblwgOwor5Y+j5LiK5pu4IDwga291am91c2hvXCA7Civop6PmlL7mhJ8gPCBrYWlob3VrYW5cIDsKK+W5s+WSjOeahCA8IGhlaXdhdGVraVwgOwor6Ieq6ZaJ55eHIDwgamloZWlzaG91XCA7Civpo7LnlKjmsLQgPCBpbicneW91c3VpXCA7CivlpKrpmb3lhYkgPCB0YWl5b3Vrb3VcIDsKK+api+mgreS/nSA8IGt5b3V0b3Vob1wgOwor5Y+k5pu45biCIDwga29zaG9pY2hpXCA7CivlpKnnhLbloakgPCB0ZW4nJ25lbmVuXCA7Civmlq3nhrEgPCBkYW4nJ25ldHN1XCA7CivmmI7ml6UgPCBteW91bmljaGlcIDsKK+S4i+S4iyA8IHNoaW1vamltb1wgOwor5pW355+zIDwgc2hpa2lpc2hpXCA7Civnibnmkq4gPCB0b2t1c2F0c3VcIDsKK+WFrOWus+e9qiA8IGtvdWdhaXphaVwgOwor5rer5aOy5a6/IDwgaW5iYWl5YWRvXCA7Civotbfoq4vmlocgPCBraXNob3Vtb25cIDsKK+mhmOS6iyA8IG5lZ2FpZ290b1wgOwor56KB55uk57ieIDwgZ29iYW5qaW1hXCA7CivpoLvlh7ogPCBoaW5zaHV0c3VcIDsKK+e2suiiiyA8IGFtaWJ1a3Vyb1wgOwor5L+X5LiW6ZaTIDwgem9rdXNla2VuXCA7CivnlJjntI3osYYgPCBhbWFuYXR0b3VcIDsKK+S5vumFque0oCA8IGthbnJha3Vzb1wgOwor5Ya26YeR5a2mIDwgeWFraW5nYWt1XCA7CivlhpfplbfluqYgPCBqb3VjaG91ZG9cIDsKK+inkumAkCA8IGtha3VjaGlrdVwgOwor56eB5a626ZuGIDwgc2hpa2FzaHV1XCA7CivkuIPkuIkgPCBzaGljaGlzYW5cIDsKK+e0sOmdoiA8IGhvc29vbW90ZVwgOwor5biC6KGX5ZywIDwgc2hpZ2FpY2hpXCA7Civlj6/oqq3mgKcgPCBrYWRva3VzZWlcIDsKK+aYjuekuueahCA8IG1laWppdGVraVwgOwor5aSn5Zue6LuiIDwgZGFpa2FpdGVuXCA7CivlkYnmnI3lupcgPCBnb2Z1a3V0ZW5cIDsKK+S4reiPr+S4vCA8IGNodXVrYWRvblwgOwor5aSn6KW/5rSLIDwgdGFpc2VpeW91XCA7CivnkIbmg7PnmoQgPCByaXNvdXRla2lcIDsKK+Wmu+W4r+iAhSA8IHNhaXRhaXNoYVwgOwor5YWr5a6d6I+cIDwgaGFwcG91c2FpXCA7Civlj4zouYTnjbggPCBzb3V0ZWlqdXVcIDsKK+mbhue1kCA8IHNodXVrZXRzdVwgOwor5Zu95YWo5ZyfIDwga29rdXplbmRvXCA7CivkuozpgLLms5UgPCBuaXNoaW5ob3VcIDsKK+ilv+miqCA8IG5pc2hpa2F6ZVwgOwor6Ieq54S25aKXIDwgc2hpemVuem91XCA7CivmmYLku6PliocgPCBqaWRhaWdla2lcIDsKK+Wkj+eXqSA8IG5hdHN1eWFzZVwgOwor5re35oiQ6YWSIDwga29uc2Vpc2h1XCA7CivlhazlgI3mlbAgPCBrb3ViYWlzdXVcIDsKK+WHpuaWueeuiyA8IHNob2hvdXNlblwgOwor55mM57Sw6IOeIDwgZ2Fuc2FpYm91XCA7CivntK/muJvnqI4gPCBydWlnZW56ZWlcIDsKK+aJgOS9nOS6iyA8IHNob3NhZ290b1wgOwor54Sh6ZmQ5bCPIDwgbXVnZW5zaG91XCA7CivnianmjIcgPCBtb25vc2FzaGlcIDsKK+eqg+ebl+eKryA8IHNldHRvdWhhblwgOwor5LuV5omL5qCqIDwgc2hpdGVrYWJ1XCA7Civlj6PkuIvmiYsgPCBrdWNoaWJldGFcIDsKK+mHkeabnOaXpSA8IGtpbicneW91YmlcIDsKK+S9juawtOa6liA8IHRlaXN1aWp1blwgOwor6KO95L2c5omAIDwgc2Vpc2FrdWpvXCA7CivkvJ3lo7DnrqEgPCBkZW5zZWlrYW5cIDsKK+mHj+WtkOWMliA8IHJ5b3VzaGlrYVwgOwor5pif5b2xIDwgaG9zaGlrYWdlXCA7Civni6zlipsgPCBkb2t1cnlva3VcIDsKK+WlveS4gOWvviA8IGtvdWl0dHN1aVwgOwor6Kem6Ki6IDwgc2hva3VzaGluXCA7Civkuovli5nlsYAgPCBqaW11a3lva3VcIDsKK+WjuueavyA8IHRzdWJvemFyYVwgOwor5Ymv6by76IWUIDwgZnVrdWJpa3V1XCA7CivmtarosrvnmZYgPCByb3VoaWhla2lcIDsKK+e1puiyu+eUnyA8IGt5dXVoaXNlaVwgOwor55yM5Lq65LyaIDwga2Vuamlua2FpXCA7CivkuLvku7vogIUgPCBzaHVuaW5zaGFcIDsKK+WFrOeUqOaWhyA8IGtvdXlvdWJ1blwgOwor572q5Lq6IDwgdHN1bWliaXRvXCA7CivooYzmlL/ljLogPCBneW91c2Vpa3VcIDsKK+aOqOiWpueKtiA8IHN1aXNlbmpvdVwgOwor5Lit6Led6ZuiIDwgY2h1dWt5b3JpXCA7CivlhbHnlKPljJYgPCBreW91c2Fua2FcIDsKK+S8muacn+S4rSA8IGthaWtpY2h1dVwgOwor6YeO55CD5aC0IDwgeWFreXV1am91XCA7CivplpHlj6Tps6UgPCBrYW5rb2RvcmlcIDsKK+eUo+ikpeacnyA8IHNhbmpva3VraVwgOwor5Li75bCO5qipIDwgc2h1ZG91a2VuXCA7Civli5/ph5HnrrEgPCBib2tpbmJha29cIDsKK+ehrOWPo+iTiyA8IGtvdWtvdWdhaVwgOwor5pW354mpIDwgc2hpa2ltb25vXCA7Civlj7LoqJjmioQgPCBzaGlraXNob3VcIDsKK+W5tOm9ouWxpCA8IG5lbnJlaXNvdVwgOwor6aCt6aCC6YOoIDwgdG91Y2hvdWJ1XCA7Civpm6rnlLcgPCB5dWtpb3Rva29cIDsKK+aXqeWgtOexsyA8IGhheWFiYW1haVwgOwor5Y+j6Kqe6KizIDwga291Z295YWt1XCA7CivmsrnlnKfoqIggPCB5dWF0c3VrZWlcIDsKK+Wkj+eJqSA8IG5hdHN1bW9ub1wgOwor5LqM5q+b5L2cIDwgbmltb3VzYWt1XCA7CivmpJzns5boqIggPCBrZW50b3VrZWlcIDsKK+iqmOWwjuS9kyA8IHl1dWRvdXRhaVwgOwor55yf5Zub6KeSIDwgbWFzaGlrYWt1XCA7CivnlLPlkb3oqJggPCBzaGlubWVpa2lcIDsKK+iEguiCquWxpCA8IHNoaWJvdXNvdVwgOwor57Wx6KiIIDwgYmFyYXRzdWtpXCA7Civnianlk4HnqI4gPCBidXBwaW56ZWlcIDsKK+mzs+e/hemQmCA8IGhvdXNoaXRvdVwgOwor5aWz5pa5IDwgb24nJ25hZ2F0YVwgOwor5paw5qmLIDwgc2hpbmJhc2hpXCA7CivlsaTnqY3pm7IgPCBzb3VzZWtpdW5cIDsKK+enkuaZguioiCA8IGJ5b3Vkb2tlaVwgOwor54+K55Ga56SBIDwgc2FuZ29zaG91XCA7CivpgKPkvZPoqZ4gPCByZW50YWlzaGlcIDsKK+eGseeXhSA8IG5ldHN1YnlvdVwgOwor6Zu754axIDwgZGVuJyduZXRzdVwgOwor5pif5bGRIDwgaG9zaGlrdXp1XCA7CivlpKnmsJflhbflkIggPCB0ZW5raWd1YWlcIDsKK+WxgeeQhuWxiCA8IGhlcmlrdXRzdVwgOwor5b+X6aGY6ICFIDwgc2hpZ2Fuc2hhXCA7CivmtarkurrnlJ8gPCByb3VuaW5zZWlcIDsKK+S4jeWPr+mAhiA8IGZ1a2FneWFrdVwgOwor6ZqU57W2IDwga2FrdXpldHN1XCA7Civni6zku48gPCBkb2t1ZnV0c3VcIDsKK+Wkp+mYquW4giA8IG9vc2FrYXNoaVwgOwor5aa75a6kIDwgc2Fpc2hpdHN1XCA7CivmhJvoqq3mm7ggPCBhaWRva3VzaG9cIDsKK+WPr+WhkeeJqSA8IGthc29idXRzdVwgOwor5paw6YCg6KqeIDwgc2hpbnpvdWdvXCA7CivnianlubIgPCBtb25vaG9zaGlcIDsKK+WPjeWvvuiAhSA8IGhhbnRhaXNoYVwgOwor57Sw6YGTIDwgaG9zb21pY2hpXCA7Civpu5LnoILns5YgPCBrdXJvemF0b3VcIDsKK+eOhOexs+iMtiA8IGdlbm1haWNoYVwgOwor5ryU57m55rOVIDwgZW4nJ2VraWhvdVwgOwor6Ieo5aC05oSfIDwgcmluam91a2FuXCA7CivnhrHnkIMgPCBuZXRzdWt5dXVcIDsKK+WBj+ilv+miqCA8IGhlbnNlaWZ1dVwgOwor6aaZ5ZGz5paZIDwga291bWlyeW91XCA7CivmraPnlLLmnb8gPCBzZWlrYW5wYW5cIDsKK+WvqeitsOS8miA8IHNoaW5naWthaVwgOwor6Z2S5qOu55yMIDwgYW9tb3Jpa2VuXCA7CivkuI3mhJ/nl4cgPCBmdWthbnNob3VcIDsKK+e4nueJqSA8IHNoaW1hbW9ub1wgOwor56aB6KGb6ZqKIDwga2luJydlaXRhaVwgOwor5paw5p6VIDwgbmlpbWFrdXJhXCA7CivmlL7msLTou4ogPCBob3VzdWlzaGFcIDsKK+iAkOawtOaApyA8IHRhaXN1aXNlaVwgOwor546E6Zai55WqIDwgZ2Vua2FuYmFuXCA7CivliY3lpJznpa0gPCB6ZW4nJ3lhc2FpXCA7CivmnIjmoYLlhqAgPCBnZWtrZWlrYW5cIDsKK+e1puihgCA8IGt5dXVrZXRzdVwgOwor5LqM5YiA5rWBIDwgbml0b3VyeXV1XCA7CivmlrDmnK0gPCBzaGluc2F0c3VcIDsKK+aJgOacieaoqSA8IHNob3l1dWtlblwgOwor5Ya35YeN6LuKIDwgcmVpdG91c2hhXCA7CivmlrDmnIggPCBzaGluZ2V0c3VcIDsKK+adpeS8muiAhSA8IHJhaWthaXNoYVwgOwor5paw5puyIDwgc2hpbmt5b2t1XCA7CivkuIDlj6PlkIzpn7MgPCBpa2t1ZG91b25cIDsKK+S4iuetieWTgSA8IGpvdXRvdWhpblwgOwor6I2S55mC5rK7IDwgYXJhcnlvdWppXCA7Civmpb3oprPoq5YgPCByYWtrYW5yb25cIDsKK+WAtuiIjuWulyA8IGt1c2hhc2h1dVwgOwor54Sh6KiA5YqHIDwgbXVnb25nZWtpXCA7CivlhaXoi5HliLggPCBueXV1ZW5rZW5cIDsKK+iFsememOeCjiA8IGtlbnNob3VlblwgOwor5LiN5Y+v5oCd6K2wIDwgZnVrYXNoaWdpXCA7Civpq5jlubTogIUgPCBrb3VuZW5zaGFcIDsKK+ipsOeJqSA8IHRzdW1lbW9ub1wgOwor5o6i5rW354GvIDwgdGFua2FpdG91XCA7CivnhKHopo/lvosgPCBtdWtpcml0c3VcIDsKK+eDj+iynSA8IGthcmFzdWdhaVwgOwor6Z205bqVIDwga3V0c3V6b2tvXCA7CivlvaLlrrnoqZ4gPCBrZWl5b3VzaGlcIDsKK+WMu+S6i+S8nemBkyA8IGlqaWRlbmRvdVwgOwor5pen5bm0IDwgZnVydXRvc2hpXCA7Civlsqnpm7Lpm4AgPCBpd2FoaWJhcmlcIDsKK+aYn+WeiyA8IGhvc2hpZ2F0YVwgOwor5b6S56u26LWwIDwgdG9reW91c291XCA7CivkuI3miKbli50gPCBmdXNlbnNob3VcIDsKK+iHqueEtuS6uiA8IHNoaXplbmppblwgOwor5a625bqt55qEIDwga2F0ZWl0ZWtpXCA7Civpq5jmsJflnKcgPCBrb3VraWF0c3VcIDsKK+a7keeoveacrCA8IGtva2tlaWJvblwgOwor5aWz5a2Q5a+uIDwgam9zaGlyeW91XCA7CivlpLHmnJsgPCBzaGl0c3Vib3VcIDsKK+aUv+ayu+eahCA8IHNlaWppdGVraVwgOwor5LiK562J5YW1IDwgam91dG91aGVpXCA7CivnhLzntZAgPCBzaG91a2V0c3VcIDsKK+WOn+eov+e0mSA8IGdlbmtvdXNoaVwgOwor6Imy55y86Y+hIDwgaXJvbWVnYW5lXCA7Civmpb3orZzlj7AgPCBnYWt1ZnVkYWlcIDsKK+WGt+awtOWhiiA8IHJlaXN1aWthaVwgOwor5L+d6K236ImyIDwgaG9nb3Nob2t1XCA7CivlobXntJkgPCBjaGlyaWdhbWlcIDsKK+iJsuWPjuW3riA8IGlyb3NodXVzYVwgOwor576O6KGT5a62IDwgYmlqdXRzdWthXCA7Civlho3oqZXkvqEgPCBzYWloeW91a2FcIDsKK+WkseaYjiA8IHNoaXRzdW1laVwgOwor5rqW5YKZ5LitIDwganVuYmljaHV1XCA7CivlhYnlkIjmiJAgPCBrb3Vnb3VzZWlcIDsKK+aCquadoeS7tiA8IGFrdWpvdWtlblwgOwor5LiJ5oKq6LajIDwgc2FuYWt1c2h1XCA7CivkuLvnlKPlnLAgPCBzaHVzYW5jaGlcIDsKK+mfs+mDqOiomOWPtyA8IG9uYnVraWdvdVwgOwor5be756mN6ZuyIDwga2Vuc2VraXVuXCA7CivluIznoavphbggPCBraXJ5dXVzYW5cIDsKK+aWh+aciCA8IGZ1bWlkenVraVwgOwor6ISx56mA5qmfIDwgZGFra29rdWtpXCA7CivpvI7oq4fkvJogPCB0ZWlkYW5rYWlcIDsKK+ikh+acrOS9jSA8IGZ1a3Vob24nJ2lcIDsKK+S/l+i2o+WRsyA8IHpva3VzaHVtaVwgOwor57WC5q2i56ymIDwgc2h1dXNoaWZ1XCA7Civngq3os6ogPCB0YW5zaGl0c3VcIDsKK+eyvuijveWTgSA8IHNlaXNlaWhpblwgOwor5oay5YW16ZqKIDwga2VucGVpdGFpXCA7CivoqoXmrrogPCBjaHV1c2F0c3VcIDsKK+Wkp+aYlCA8IG9vbXVrYXNoaVwgOwor6YWN5YG26ICFIDwgaGFpZ3V1c2hhXCA7CivlhYXlvZPph5EgPCBqdXV0b3VraW5cIDsKK+a2iOeBq+agkyA8IHNob3VrYXNlblwgOwor5aWI6Imv5pmC5LujIDwgbmFyYWppZGFpXCA7Civlr4TnlZnogIUgPCBraXJ5dXVzaGFcIDsKK+eBsOelnualvSA8IGhhaWthZ3VyYVwgOwor6YeR5LiA5bCBIDwga2luJydpcHB1dVwgOwor5bqK6YGL5YuVIDwgeXVrYXVuZG91XCA7CivplbfpnbQgPCBuYWdhZ3V0c3VcIDsKK+WvhOeUn+iZqyA8IGtpc2VpY2h1dVwgOwor57O46LuKIDwgaXRvZ3VydW1hXCA7CivlpJzmmZIgPCB5b3phcmFzaGlcIDsKK+S4ieetieWIhiA8IHNhbnRvdWJ1blwgOwor5Zar5rC057eaIDwga2lzc3Vpc2VuXCA7CivlpI/mnI0gPCBuYXRzdWZ1a3VcIDsKK+aCqueOieWMliA8IGFrdWRhbWFrYVwgOwor6LaF57Ch5piTIDwgY2hvdWthbicnaVwgOwor6Z205aKoIDwga3V0c3V6dW1pXCA7Civoo7jppqwgPCBoYWRha2F1bWFcIDsKK+aIr+S9nOiAhSA8IGdlc2FrdXNoYVwgOwor5aa55YiGIDwgaW1vdXRvYnVuXCA7Civml6XloqggPCBuaWNoaWJva3VcIDsKK+aWsOW8jyA8IHNoaW5zaGlraVwgOwor6Z2S55Oi566qIDwgYW9ieW91dGFuXCA7CivmgqPogIXmp5ggPCBrYW5qYXNhbWFcIDsKK+S6lOWvuOmHmCA8IGdvc3Vua3VnaVwgOwor5Luu55m76KiYIDwga2FyaXRvdWtpXCA7CivlkIjlkIzou40gPCBnb3Vkb3VndW5cIDsKK+Wkj+aZgiA8IG5hdHN1ZG9raVwgOwor54K46KOCIDwgc2FrdXJldHN1XCA7CivnibnliKUgPCB0b2t1YmV0c3VcIDsKK+ikh+mbkSA8IGZ1a3V6YXRzdVwgOwor6Z205Z6LIDwga3V0c3VnYXRhXCA7CivnspLpo58gPCByeXV1c2hva3VcIDsKK+mdnuePvualrSA8IGhpZ2VuZ3lvdVwgOwor5Yuk5Yq06ICFIDwga2lucm91c2hhXCA7Civlm7rlrprplbcgPCBrb3RlaWNob3VcIDsKK+auuuiPjOWJpCA8IHNha2tpbnphaVwgOwor57WQ6IacIDwga2V0c3VtYWt1XCA7CivmtIvmnI3lsYsgPCB5b3VmdWt1eWFcIDsKK+i1t+eIhuWJpCA8IGtpYmFrdXphaVwgOwor6KGo56S654GvIDwgaHlvdWppdG91XCA7Civkvr/liKnluLMgPCBiZW5yaWNob3VcIDsKK+WPluadkOePrSA8IHNodXphaWhhblwgOwor6ISC6IKq5L2TIDwgc2hpYm91dGFpXCA7Civpg7Xkvr/lsYsgPCB5dXViaW4nJ3lhXCA7CivnuJ7mn4QgPCBzaGltYWdhcmFcIDsKK+S4rei+nuWFuCA8IGNodXVqaXRlblwgOwor5rSX6Z2i5Y+wIDwgc2VubWVuZGFpXCA7CivlpLHmgYsgPCBzaGl0c3VyZW5cIDsKK+WGheijj+mbmyA8IGRhaXJpYmluYVwgOwor5YWo5LqM6YeNIDwgemVuJyduaWp1dVwgOwor5rq26Kej5oCnIDwgeW91a2Fpc2VpXCA7CivlpLHlv7UgPCBzaGl0c3VuZW5cIDsKK+mbqOabhyA8IGFtYWd1bW9yaVwgOwor5pW05pWw6KuWIDwgc2Vpc3V1cm9uXCA7CivoqZXmsbogPCBoeW91a2V0c3VcIDsKK+awkeekvuWFmiA8IG1pbnNoYXRvdVwgOwor5LyB55S75pu4IDwga2lrYWt1c2hvXCA7CivnlJ/lnLDnjYQgPCBpa2lqaWdva3VcIDsKK+e0lOexs+mFkiA8IGp1bm1haXNodVwgOwor5Zue6YGK6a2aIDwga2FpeXV1Z3lvXCA7CivnhKHplqLlv4MgPCBtdWthbnNoaW5cIDsKK+iAs+m8u+WSveWWiSA8IGppYmlpbmtvdVwgOwor5aWz5Z2CIDwgb24nJ25hemFrYVwgOwor57aa55m6IDwgem9rdWhhdHN1XCA7Civlj4vkurrplpMgPCB5dXVqaW5rYW5cIDsKK+acieaWkOmWoyA8IHl1dWhpa2FrdVwgOwor6LKp5aOy5bqXIDwgaGFuYmFpdGVuXCA7Civpm5HmoKogPCB6YXRzdWthYnVcIDsKK+W/l+acm+agoSA8IHNoaWJvdWtvdVwgOwor5aWJ6L+O6ZaAIDwgaG91Z2VpbW9uXCA7CivniZvliLogPCBneXV1c2FzaGlcIDsKK+Wft+iRlyA8IHNodXVjaGFrdVwgOwor6Z2i5Lya5Lq6IDwgbWVua2FpbmluXCA7CivkuIDnrofmnIggPCBpa2thZ2V0c3VcIDsKK+mAgeawtOeuoSA8IHNvdXN1aWthblwgOwor57OW6LOqIDwgdG91c2hpdHN1XCA7Civlhrflh43oiLkgPCByZWl0b3VzZW5cIDsKK+W5tOmFjeiAhSA8IG5lbnBhaXNoYVwgOwor5omL5pWw5paZIDwgdGVzdXVyeW91XCA7Civpm6LprYLnl4UgPCByaWtvbmJ5b3VcIDsKK+epuuawl+axmuafkyA8IGt1dWtpb3NlblwgOwor54mH5Y+jIDwga2F0YWt1Y2hpXCA7CivmsLTkuK3oirEgPCBzdWljaHV1a2FcIDsKK+WLleWQjeipniA8IGRvdW1laXNoaVwgOwor57Sw6IWwIDwgaG9zb2dvc2hpXCA7Civng4/luL3lrZDosp0gPCBlYm9zaGlnYWlcIDsKK+m7hOmHkeiJsiA8IGtvZ2FuZWlyb1wgOwor5LqM5YWD55qEIDwgbmlnZW50ZWtpXCA7CivnuJ7moJfpvKAgPCBzaGltYXJpc3VcIDsKK+Wor+alveWgtCA8IGdvcmFrdWpvdVwgOwor6YGK6Kan5ZywIDwgeXV1cmFuY2hpXCA7CivmnKzlm6DlnYogPCBob24nJ2luYm91XCA7CivlhbHmoITlnI8gPCBreW91ZWlrZW5cIDsKK+ebuOWvvuatuyA8IGFpdGFpamluaVwgOwor5Zu96Ieq5oWiIDwga3VuaWppbWFuXCA7Civph43lpKfoppYgPCBqdXVkYWlzaGlcIDsKK+S8gealreWGhSA8IGtpZ3lvdW5haVwgOwor6ZuG5pytIDwgc2h1dXNhdHN1XCA7CivlkIznqpPkvJogPCBkb3Vzb3VrYWlcIDsKK+azleiTruiNiSA8IGhvdXJlbnNvdVwgOwor5rW35aSW54mIIDwga2FpZ2FpYmFuXCA7CivmiYfnirblnLAgPCBzZW5qb3VjaGlcIDsKK+aXpeWHuiA8IG5pc3NodXRzdVwgOwor5omT5pKD5oimIDwgZGFnZWtpc2VuXCA7CivmnInosaHnhKHosaEgPCB1em91bXV6b3VcIDsKK+mAj+WGmee0mSA8IHRvdXNoYXNoaVwgOwor5Lq65paH5Y+yIDwgamluYnVuc2hpXCA7CivmjIflrprliLggPCBzaGl0ZWlrZW5cIDsKK+mmmeawtOeTtiA8IGtvdXN1aWJpblwgOwor54ax5biv55eFIDwgbmV0YWlieW91XCA7CivkvJ3oqJjniakgPCBkZW5raW1vbm9cIDsKK+ioiOmHj+WZqCA8IGtlaXJ5b3VraVwgOwor6KOc5YSf6YeRIDwgaG9zaG91a2luXCA7Civou73niq/nvaogPCBrZWloYW56YWlcIDsKK+WdqumHjyA8IHRzdWJvcnlvdVwgOwor5ZCI5oay5oCnIDwgZ291a2Vuc2VpXCA7CivlnLDpjq7npa0gPCBqaWNoaW5zYWlcIDsKK+S4u+S9k+aApyA8IHNodXRhaXNlaVwgOwor57Sg57KS5a2QIDwgc29yeXV1c2hpXCA7Civonb/lnLDnjYQgPCBoYWVqaWdva3VcIDsKK+Wkp+eBveWusyA8IGRhaXNhaWdhaVwgOwor5aW05YenIDwgeWFra29kYWtvXCA7Civmpb3lpKnlrrYgPCByYWt1dGVua2FcIDsKK+eQhuaAp+eahCA8IHJpc2VpdGVraVwgOwor57a/5rK5IDwgd2F0YWFidXJhXCA7CivnhLbnhLYgPCBzaGlrYWppa2FcIDsKK+m8k+esm+maiiA8IGtvdGVraXRhaVwgOwor6LW36Ki054y25LqIIDwga2lzb3l1dXlvXCA7Civlr5LmmpboqIggPCBrYW5kYW5rZWlcIDsKK+iKseeyieeXhyA8IGthZnVuc2hvdVwgOwor5Lq654K655qEIDwgamluJydpdGVraVwgOwor5LyK5Yui56We5a6uIDwgaXNlamluZ3V1XCA7Civlj5fpoJjogIUgPCBqdXJ5b3VzaGFcIDsKK+S8geeUu+aApyA8IGtpa2FrdXNlaVwgOwor5YaF6ZyA5Z6LIDwgbmFpanVnYXRhXCA7CivlsLjkvY3ntKDppJAgPCBzaGlpc29zYW5cIDsKK+eEpueGsSA8IHNob3VuZXRzdVwgOwor5Y6f5oiQ5bKpIDwgZ2Vuc2VpZ2FuXCA7CivooajnpLrmnb8gPCBoeW91amliYW5cIDsKK+Wkj+WxsSA8IG5hdHN1eWFtYVwgOwor54iq5YiHIDwgdHN1bWVraXJpXCA7CivmsLjkuYXmra8gPCBlaWt5dXVzaGlcIDsKK+WNg+ekvuacrSA8IHNlbmphZnVkYVwgOwor6I+p5o+Q5b+DIDwgYm9kYWlzaGluXCA7CivmlL/miYAgPCBtYW5kb2tvcm9cIDsKK+aVmeW8jyA8IGt5b3VzaGlraVwgOwor6KGo56S65pu4IDwgaHlvdWppc2hvXCA7CivmlL7msLTnrqEgPCBob3VzdWlrYW5cIDsKK+WPjOWtkOiRiSA8IHNvdXNoaXlvdVwgOwor5oCn6Lui5o+bIDwgc2VpdGVua2FuXCA7CivovLjpgIHph48gPCB5dXNvdXJ5b3VcIDsKK+aJgOacieWcsCA8IHNob3l1dWNoaVwgOwor6byT5omL6ZW3IDwga29zaHVjaG91XCA7CivniKrlhYggPCB0c3VtYXNha2lcIDsKK+e3j+acrOW6lyA8IHNvdWhvbnRlblwgOwor5YWD5rCX6ICFIDwgZ2Vua2ltb25vXCA7Civku6PlvIHogIUgPCBkYWliZW5zaGFcIDsKK+mHjuWkqemiqOWRgiA8IG5vdGVuYnVyb1wgOwor55S65Yy76ICFIDwgbWFjaGlpc2hhXCA7Civoo73mnZDmiYAgPCBzZWl6YWlzaG9cIDsKK+Whqea8rCA8IHNoaW9kenVrZVwgOwor5Y+N5Lmx6LuNIDwgaGFucmFuZ3VuXCA7Civnt4/kurrlj6MgPCBzb3VqaW5rb3VcIDsKK+W6l+S7leiIniA8IG1pc2VqaW1haVwgOwor5Lit5L+d6ICFIDwgY2h1dWhvc2hhXCA7CivlpZTlh7ogPCBob25zaHV0c3VcIDsKK+eri+azleiAhSA8IHJpcHBvdXNoYVwgOwor6I2J55u45pKyIDwga3VzYXp1bW91XCA7CivkuojlgpnpjKggPCB5b2JpaWthcmlcIDsKK+malOaciCA8IGtha3VnZXRzdVwgOwor5q2T6YCB5LyaIDwga2Fuc291a2FpXCA7Civlj4znv4XpoZ4gPCBzb3VzaGlydWlcIDsKK+e0mee0sOW3pSA8IGthbWl6YWlrdVwgOwor5bGx5rC06I2YIDwgc2Fuc3Vpc291XCA7CivooajmspnmsbAgPCBvbW90ZXphdGFcIDsKK+WUkOeNheWtkCA8IGthcmFqaXNoaVwgOwor5bmz5ZKM5Zu9IDwgaGVpd2Frb2t1XCA7CivkvY7msJflnKcgPCB0ZWlraWF0c3VcIDsKK+S9nOalreeUqCA8IHNhZ3lvdXlvdVwgOwor5pKD55m6IDwgZ2VraWhhdHN1XCA7Civln7fnrYYgPCBzaGlwcGl0c3VcIDsKK+awtOWus+WcsCA8IHN1aWdhaWNoaVwgOwor57eP5pys5bGxIDwgc291aG9uemFuXCA7CivmvJToqqzlrrYgPCBlbnpldHN1a2FcIDsKK+ebsuiFuOeCjiA8IG1vdWNob3VlblwgOwor5pal5YqbIDwgc2VraXJ5b2t1XCA7CivntYLnmbogPCBzaHV1aGF0c3VcIDsKK+mBo+WUkOS9vyA8IGtlbnRvdXNoaVwgOwor5Z2C6YGTIDwgc2FrYW1pY2hpXCA7CivkvZzmpa3nj60gPCBzYWd5b3VoYW5cIDsKK+a0u+aAp+eCrSA8IGthc3NlaXRhblwgOwor5pyA5bCP5YyWIDwgc2Fpc2hvdWthXCA7CivkuZfpmY3loLQgPCBqb3Vrb3Vqb3VcIDsKK+S/l+S4lueVjCA8IHpva3VzZWthaVwgOwor5q+b57mU54mpIDwga2Vvcmltb25vXCA7Civlv5fpoZjmm7ggPCBzaGlnYW5zaG9cIDsKK+S4jeatu+mzpSA8IGZ1c2hpY2hvdVwgOwor5oKy6Kaz55qEIDwgaGlrYW50ZWtpXCA7CivmkrLmu4UgPCBib2t1bWV0c3VcIDsKK+aIkOWKn+iAhSA8IHNlaWtvdXNoYVwgOwor55yL6K235a2mIDwga2FuZ29nYWt1XCA7CivkuIrlkJHnt5ogPCBqb3Vrb3VzZW5cIDsKK+a2iOeCjuWJpCA8IHNob3VlbnphaVwgOwor5YWs5LyR5pelIDwga291a3l1dWJpXCA7Civnt4/nvbfmpa0gPCBzb3VoaWd5b3VcIDsKK+WGjeaKleizhyA8IHNhaXRvdXNoaVwgOwor5q2M5YqH5aC0IDwga2FnZWtpam91XCA7CivmtYTmsLTloLQgPCBqb3VzdWlqb3VcIDsKK+mbquWlsyA8IHl1a2lvbicnbmFcIDsKK+ips+WvhiA8IHNob3VtaXRzdVwgOwor5rC06ICV5rOVIDwgc3Vpa291aG91XCA7CivlpKfmvJTnv5IgPCBkYWllbnNodXVcIDsKK+eEoeeQhueEoeS9kyA8IG11cmltdXRhaVwgOwor5a6f5ris5ZuzIDwgamlzc29rdXp1XCA7CivohqjlvLXluqYgPCBib3VjaG91ZG9cIDsKK+aYoOWGmeW5lSA8IGVpc2hhbWFrdVwgOwor5LiK5rC06YGTIDwgam91c3VpZG91XCA7CivlhajkvY/msJEgPCB6ZW5qdXVtaW5cIDsKK+a1hOawtOWcsCA8IGpvdXN1aWNoaVwgOwor6ZuR5a2mIDwgemF0c3VnYWt1XCA7CivlnYfos6ogPCBraW5zaGl0c3VcIDsKK+eUt+aAp+eUqCA8IGRhbnNlaXlvdVwgOwor5aW95aWH5b+DIDwga291a2lzaGluXCA7CivogonkvZPnvo4gPCBuaWt1dGFpYmlcIDsKK+WbveWutueahCA8IGtva2thdGVraVwgOwor54qg54my55qEIDwgZ2lzZWl0ZWtpXCA7CivpgKPlrZDnqpMgPCByZW5qaW1hZG9cIDsKK+ebuOWvvuaApyA8IHNvdXRhaXNlaVwgOwor54OP55OcIDwga2FyYXN1dXJpXCA7CivplqLlv4PkuosgPCBrYW5zaGluamlcIDsKK+WMl+aWl+aYnyA8IGhva3V0b3NlaVwgOwor5pys5oug5ZywIDwgaG9ua3lvY2hpXCA7CivoiJ7ouI/nl4UgPCBidXRvdWJ5b3VcIDsKK+WGheWkluS6uiA8IG5haWdhaWppblwgOwor5pKy5q66IDwgYm9rdXNhdHN1XCA7CivmkZjnmbogPCB0ZWtpaGF0c3VcIDsKK+S4i+eoruWlsyA8IGdlc3VvbicnbmFcIDsKK+i1pOmbu+i7iiA8IGFrYWRlbnNoYVwgOwor5aSP5ZCRIDwgbmF0c3VtdWtpXCA7Civnspjmnb/lsqkgPCBuZW5iYW5nYW5cIDsKK+S6i+alreiAhSA8IGppZ3lvdXNoYVwgOwor5q2T6L+O5LyaIDwga2FuZ2Vpa2FpXCA7CivoqJflhZDmiYAgPCB0YWt1amlzaG9cIDsKK+awtOaZguioiCA8IG1penVkb2tlaVwgOwor5o2o6YmiIDwgc3V0ZWJhY2hpXCA7Civnm7LlsI7niqwgPCBtb3Vkb3VrZW5cIDsKK+iyqeWjsuS6uiA8IGhhbmJhaW5pblwgOwor6a+QIDwgc3ViYXNoaXJpXCA7Civkurrlm73oqJggPCBqaW5rb2t1a2lcIDsKK+aZruWPiueJiCA8IGZ1a3l1dWJhblwgOwor6a6XIDwga29ub3NoaXJvXCA7CivljYrpg6jml48gPCBoYW5idXpva3VcIDsKK+mjm+mBk+WFtyA8IHRvYmlkb3VndVwgOwor5Lq66ZaT55WMIDwgbmluZ2Vua2FpXCA7CivkubPmr43ou4ogPCB1YmFndXJ1bWFcIDsKK+aDqOatu+S9kyA8IHphbnNoaXRhaVwgOwor5aCF54mpIDwga2F0YWJ1dHN1XCA7CivpgYvmkKzkurogPCB1bnBhbicnbmluXCA7CivmipfnlJ/liaQgPCBrb3VzZWl6YWlcIDsKK+WbvemJhCA8IGtva3V0ZXRzdVwgOwor6KeS5qi9IDwgdHN1bm9kYXJ1XCA7CivmkoPmu4UgPCBnZWtpbWV0c3VcIDsKK+S4lui/t+iogCA8IHlvbWFpZ290b1wgOwor5Lyd6KiA5p2/IDwgZGVuZ29uYmFuXCA7Civoh6rnq4voqp4gPCBqaXJpdHN1Z29cIDsKK+ezp+enoyA8IHJ5b3VtYXRzdVwgOwor54ax5biv5p6XIDwgbmV0dGFpcmluXCA7CivmsLjkuYXmgKcgPCBlaWt5dXVzZWlcIDsKK+ijveacrOWxiyA8IHNlaWhvbicneWFcIDsKK+axvei7iuizgyA8IGtpc2hhY2hpblwgOwor6Zqj5a6kIDwgcmluc2hpdHN1XCA7CivnpoHoo4/mp5ggPCBraW5yaXNhbWFcIDsKK+aFo+eUqOWPpSA8IGthbicneW91a3VcIDsKK+ims+WFieWcsCA8IGthbmtvdWNoaVwgOwor5Lya6KaL6ICFIDwga2Fpa2Vuc2hhXCA7CivmnbHlpKnntIUgPCB0b3V0ZW5rb3VcIDsKK+ims+WFieWboyA8IGthbmtvdWRhblwgOwor5oqA5ben55qEIDwgZ2lrb3V0ZWtpXCA7Civmpb3pmqDlsYUgPCByYWt1aW5reW9cIDsKK+mrmOmAn+W6piA8IGtvdXNva3Vkb1wgOwor56eB55Sf5a2QIDwgc2hpc2Vpc2hpXCA7Civml6XoqJjluLMgPCBuaWtraWNob3VcIDsKK+aUv+ayu+WtpiA8IHNlaWppZ2FrdVwgOwor5aSW5LuYIDwgc290b2R6dWtlXCA7CivmsLTnkIblraYgPCBzdWlyaWdha3VcIDsKK+avjeWtkOWvriA8IGJvc2hpcnlvdVwgOwor552A5b+D5ZywIDwga2lnb2tvY2hpXCA7CivlpI/kvZwgPCBuYXRzdXNha3VcIDsKK+aIkuWOs+S7pCA8IGthaWdlbnJlaVwgOwor5oqV5LiO6YePIDwgdG91eW9yeW91XCA7CivnhaflsLogPCBzaG91c2hha3VcIDsKK+aEj+awl+i7kumrmCA8IGlraWtlbmtvdVwgOwor6Zuq5YWOIDwgeXVraXVzYWdpXCA7Civlk7rkubPpoZ4gPCBob255dXVydWlcIDsKK+Wkp+idmeidoCA8IG9va291bW9yaVwgOwor54Sh5oqV56WoIDwgbXV0b3VoeW91XCA7CivmjIfkuoblm7MgPCBzaGlyeW91enVcIDsKK+mBqeW/nOaApyA8IHRla2lvdXNlaVwgOwor6KWy54i1IDwgc2h1dXNoYWt1XCA7CivmvKvmiY3luKsgPCBtYW56YWlzaGlcIDsKK+S6i+alreeojiA8IGppZ3lvdXplaVwgOwor5Y+O5a655omAIDwgc2h1dXlvdWpvXCA7Civlm73nkr3mm7ggPCBrb2t1amlzaG9cIDsKK+aEn+immuWZqCA8IGthbmtha3VraVwgOwor5pWZ6IKy6LK7IDwga3lvdWlrdWhpXCA7Civlm7rlrprntaYgPCBrb3RlaWt5dXVcIDsKK+Wxleimp+S8miA8IHRlbnJhbmthaVwgOwor5Lqk5Luj5Yi2IDwga291dGFpc2VpXCA7CivpmJ0gPCBrb3phdG9oZW5cIDsKK+imhua7hSA8IGZ1a3VtZXRzdVwgOwor5beh6KaW6ImHIDwganVuc2hpdGVpXCA7Civlt6HoppboiLkgPCBqdW5zaGlzZW5cIDsKK+axjumWouaVsCA8IGhhbmthbnN1dVwgOwor5YWo5Lq655SfIDwgemVuamluc2VpXCA7Civmlq3lvLfluqYgPCBkYW5reW91ZG9cIDsKK+WHpuWls+S9nCA8IHNob2pvc2FrdVwgOwor5YCL5oCn55qEIDwga29zZWl0ZWtpXCA7Civloqjlo7cgPCBzdW1pdHN1Ym9cIDsKK+WFqOmfs+majiA8IHplbicnb25rYWlcIDsKK+iqheS8kCA8IGNodXViYXRzdVwgOwor5Y+N5Lmx6ICFIDwgaGFucmFuc2hhXCA7Civou73pn7Pmpb0gPCBrZWlvbmdha3VcIDsKK+WbnuW+qeacnyA8IGthaWZ1a3VraVwgOwor5LiN5ZCI5qC8IDwgZnVnb3VrYWt1XCA7Civlkajms6LoqIggPCBzaHV1aGFrZWlcIDsKK+S4jeWPr+asoCA8IGZ1a2FrZXRzdVwgOwor5pS+5Ye6IDwgaG91c2h1dHN1XCA7CivntYLmpbUgPCBzaHV1a3lva3VcIDsKK+ehrOWMlueXhyA8IGtvdWthc2hvdVwgOwor6YCG5Yq55p6cIDwgZ3lha2tvdWthXCA7Civoo7jnt5ogPCBoYWRha2FzZW5cIDsKK+imhuayoSA8IGZ1a3Vib3RzdVwgOwor5LiA562J5Zu9IDwgaXR0b3Vrb2t1XCA7CivlhajlsIHlnLAgPCB6ZW5ob3VjaGlcIDsKK+WIhumFjemHkSA8IGJ1bnBhaWtpblwgOwor6Kqe5bC+5aSJ5YyWIDwgZ29iaWhlbmthXCA7Civlm57pgYroiLkgPCBrYWl5dXVzZW5cIDsKK+WFrOS8muWggiA8IGtvdWthaWRvdVwgOwor54Sh6KGo5oOFIDwgbXVoeW91am91XCA7CivnhanlnosgPCB1cnVzYWdhdGFcIDsKK+awtOmkg+WtkCA8IHN1aWd5b3V6YVwgOwor6KmU5YuFIDwgc2hvdWNob2t1XCA7CivpoqjlnJ/nl4UgPCBmdXVkb2J5b3VcIDsKK+aUr+WHuiA8IHNoaXNodXRzdVwgOwor6YCD6YG/55qEIDwgdG91aGl0ZWtpXCA7Civlj6TmloflraYgPCBrb2J1bmdha3VcIDsKK+WEquetieeUnyA8IHl1dXRvdXNlaVwgOwor57ai5a+GIDwgY2h1dW1pdHN1XCA7Civlm7rlrprnpaggPCBrb3RlaWh5b3VcIDsKK+WvvuWQkei7iiA8IHRhaWtvdXNoYVwgOwor57WE5puyIDwga3VtaWt5b2t1XCA7Civkuovmpa3nlYwgPCBqaWd5b3VrYWlcIDsKK+aJueWIpOeahCA8IGhpaGFudGVraVwgOwor5aSp5Zyw5Lq6IDwgdGVuY2hpamluXCA7CivooYDntbHmm7ggPCBrZXR0b3VzaG9cIDsKK+S4reS6jOmajiA8IGNodXVuaWthaVwgOwor57aZ5a6kIDwga2Vpc2hpdHN1XCA7Civlm73ooaggPCBrdW5pb21vdGVcIDsKK+WxseiRoeiQhCA8IHlhbWFidWRvdVwgOwor6buE6YGT6Z2iIDwga291ZG91bWVuXCA7Civlj5fpm6PpgLEgPCBqdW5hbnNodXVcIDsKK+WwiuWOs+atuyA8IHNvbmdlbnNoaVwgOwor6ICD5Y+k5a2mIDwga291a29nYWt1XCA7Civkv53pmbroqLwgPCBob2tlbnNob3VcIDsKK+mrmOWIhuWtkCA8IGtvdWJ1bnNoaVwgOwor5Yal5Yqg6YeRIDwgbXlvdWdha2luXCA7CivlhoXlnLDnsbMgPCBuYWljaGltYWlcIDsKK+aer+iRieWJpCA8IGthcmVoYXphaVwgOwor57eg5YiHIDwgc2hpbWVraXJpXCA7Civmi5vlvoXml6UgPCBzaG91dGFpYmlcIDsKK+iqk+mhmOaoqSA8IHNlaWdhbmtlblwgOwor5oSb5Zu96ICFIDwgYWlrb2t1c2hhXCA7CivoqLTpoZjkurogPCBzb2dhbicnbmluXCA7CivpoJjkuovppKggPCByeW91amlrYW5cIDsKK+S4u+eKr+iAhSA8IHNodWhhbnNoYVwgOwor6Ziy6K235aOBIDwgYm91Z29oZWtpXCA7Civos4fph5HmupAgPCBzaGlraW5nZW5cIDsKK+m8oOWSrOeXhyA8IHNva291c2hvdVwgOwor5LiJ6YeN55uXIDwgc2FuanV1dG91XCA7CivpgKPkvZPlvaIgPCByZW50YWlrZWlcIDsKK+Wcn+iJsiA8IHRzdWNoaWlyb1wgOwor54++5q616ZqOIDwgZ2VuZGFua2FpXCA7CivmiJDlubTogIUgPCBzZWluZW5zaGFcIDsKK+mHkeino+emgSA8IGtpbmthaWtpblwgOwor57695a2Q56qBIDwgaGFuZXRzdWtpXCA7CivmtJfmv6/nsokgPCBzZW50YWt1a29cIDsKK+WFieWMluWtpiA8IGtvdWthZ2FrdVwgOwor6L6y5a2m6YOoIDwgbm91Z2FrdWJ1XCA7CivkuLvku7vliLYgPCBzaHVuaW5zZWlcIDsKK+iInui4j+acjSA8IGJ1dG91ZnVrdVwgOwor57WM6aiT6KuWIDwga2Vpa2Vucm9uXCA7CivntYzpqJPoq4cgPCBrZWlrZW5kYW5cIDsKK+aOpee2miA8IHNldHN1em9rdVwgOwor5pOm6YGO5YK3IDwgc2Fra2FzaG91XCA7CivnsbPnspIgPCBrb21ldHN1YnVcIDsKK+ezn+a8rCA8IGthc3VkenVrZVwgOwor5Zub6YeN5aWPIDwgc2hpanV1c291XCA7CivouJ0gPCBrdXJ1YnVzaGlcIDsKK+ebuOWvvuWApCA8IHNvdXRhaWNoaVwgOwor5q+N5a2Q5YWxIDwgYm9zaGl0b21vXCA7CivpiYTngavlt7sgPCB0ZWtrYW1ha2lcIDsKK+iLseS9nOaWhyA8IGVpc2FrdWJ1blwgOwor5oim6LuK5YW1IDwgc2Vuc2hhaGVpXCA7Civlho3mipXnqL8gPCBzYWl0b3Vrb3VcIDsKK+aVmemkiumDqCA8IGt5b3V5b3VidVwgOwor56uL5rOV5qipIDwgcmlwcG91a2VuXCA7CivlpqXljZTngrkgPCBkYWt5b3V0ZW5cIDsKK+mbsuS7meWysyA8IHVuemVuZGFrZVwgOwor5Y+X6aCY5pu4IDwganVyeW91c2hvXCA7CivkuI3mtLvljJYgPCBmdWthdHN1a2FcIDsKK+aWh+eroOiqniA8IGJ1bnNob3Vnb1wgOwor6Z2S5L+h5Y+3IDwgYW9zaGluZ291XCA7CivmmYLoqIjnmr8gPCB0b2tlaXphcmFcIDsKK+W5veWGpeeVjCA8IHl1dW1laWthaVwgOwor5Z+36KGM5ZCPIDwgc2hpa2tvdXJpXCA7CivnrYnpq5jnt5ogPCB0b3Vrb3VzZW5cIDsKK+e1nummluWPsCA8IGtvdXNodWRhaVwgOwor56C05pOm6Z+zIDwgaGFzYXRzdW9uXCA7CivpgIHlj5fkv6EgPCBzb3VqdXNoaW5cIDsKK+aSq+WtkCA8IG5hZGVzaGlrb1wgOwor5LiA56We6KuWIDwgaXNzaGlucm9uXCA7CivnnYDpgZPmpb0gPCBraWRvdXJha3VcIDsKK+aYjuW+jOW5tCA8IG15b3Vnb25lblwgOwor5rOV5YuZ55yBIDwgaG91bXVzaG91XCA7CivphbXntKDlraYgPCBrb3Vzb2dha3VcIDsKK+ezoOayuSA8IG51a2FhYnVyYVwgOwor6ZW354mpIDwgY2hvdWJ1dHN1XCA7Civlm7Plg4/lraYgPCB6dXpvdWdha3VcIDsKK+WlieWKoOW4syA8IGhvdWdhY2hvdVwgOwor5oSf5ZiG6KmeIDwga2FudGFuc2hpXCA7CivliY3lo7LliLggPCBtYWV1cmlrZW5cIDsKK+imquW/gyA8IG95YWdva29yb1wgOwor6KGG6KqsIDwgc2h1dXNldHN1XCA7Civlv5fpoZjlhbUgPCBzaGlnYW5oZWlcIDsKK+WPjeWwhOWFiSA8IGhhbnNoYWtvdVwgOwor55qu57Sw5belIDwga2F3YXphaWt1XCA7CivlvqnmsLTlmaggPCBmdWt1c3Vpa2lcIDsKK+mWoumAo+aApyA8IGthbnJlbnNlaVwgOwor57Wx6Kqe5a2mIDwgdG91Z29nYWt1XCA7CivntbblppkgPCB6ZXRzdW15b3VcIDsKK+ism+a8lOaWmSA8IGtvdWVucnlvdVwgOwor5pWs6ICB5LyaIDwga2Vpcm91a2FpXCA7CivmmYLplpPou7ggPCBqaWthbmppa3VcIDsKK+WPjeWvvuWFmiA8IGhhbnRhaXRvdVwgOwor5pCt5LmX6ICFIDwgdG91am91c2hhXCA7CivkuZ3liIbkuZ3ljpggPCBrdWJ1a3VyaW5cIDsKK+ezuOahnCA8IGl0b3pha3VyYVwgOwor56S+5rCR5YWaIDwgc2hhbWludG91XCA7CivntZ7pppbliJEgPCBrb3VzaHVrZWlcIDsKK+WJteW7uuiAhSA8IHNvdWtlbnNoYVwgOwor5pyA5aSn6ZmQIDwgc2FpZGFpZ2VuXCA7CivpmbPliJcgPCBjaGlucmV0c3VcIDsKK+ezuOafsyA8IGl0b3lhbmFnaVwgOwor5qWT5a2Q6aaZIDwgZnV1c2hpa291XCA7Civmt7fmiJDlsqkgPCBrb25zZWlnYW5cIDsKK+Wft+aLlyA8IHNoaXRzdXlvdVwgOwor57SZ57KY5ZyfIDwga2FtaW5lbmRvXCA7CivmnaHku7bmlocgPCBqb3VrZW5idW5cIDsKK+aEj+itmOS9kyA8IGlzaGlraXRhaVwgOwor56eB5LyB5qWtIDwgc2hpa2lneW91XCA7CivnqbrmqKHmp5ggPCBzb3JhbW95b3VcIDsKK+WFrOacieaelyA8IGtvdXl1dXJpblwgOwor5bGx5rC05qW8IDwgc2Fuc3Vpcm91XCA7Civoo4MgPCBrYW1pc2hpbW9cIDsKK+WvhOeVmeWcsCA8IGtpcnl1dWNoaVwgOwor5pat5Ymb5oCnIDwgZGFuZ291c2VpXCA7CivnqbrlhYPmsJcgPCBrYXJhZ2Vua2lcIDsKK+ihpCA8IGtvcm9tb2hlblwgOwor5omT566X55qEIDwgZGFzYW50ZWtpXCA7CivpgIDolLXlk4EgPCB0YWl6b3VoaW5cIDsKK+imquWvhiA8IHNoaW5taXRzdVwgOwor5b2x6Z+/5ZyPIDwgZWlreW91a2VuXCA7CivnnJ/lloTnvo4gPCBzaGluemVuYmlcIDsKK+aJi+ihk+ihoyA8IHNodWp1dHN1aVwgOwor5Lq66ZaT5oSbIDwgbmluZ2VuJydhaVwgOwor55CG55+l55qEIDwgcmljaGl0ZWtpXCA7CivnrZLpn7MgPCB0c3V0c3VvdG9cIDsKK+eQpeePgOiJsiA8IGtvaGFrdWlyb1wgOwor5b6h6JSt5qeYIDwgb2thZ2VzYW1hXCA7Civmr5vntLDnrqEgPCBtb3VzYWlrYW5cIDsKK+e0i+aJgCA8IG1vbmRva29yb1wgOwor6KKL57ayIDwgZnVrdXJvYW1pXCA7Civnmb3og6HpursgPCBzaGlyb2dvbWFcIDsKK+iHquW3seimj+WItiA8IGppa29raXNlaVwgOwor5Li75Lq65YWsIDwgc2h1amlua291XCA7CivlkIzlp5Tlk6HkvJogPCBkb3VpaW5rYWlcIDsKK+S6uumWk+aApyA8IG5pbmdlbnNlaVwgOwor5Y2Y5a2U6aGeIDwgdGFua291cnVpXCA7CivlkIzlirTogIUgPCBkb3Vyb3VzaGFcIDsKK+WNs+aZguaApyA8IHNva3VqaXNlaVwgOwor5Lmz5ZGR5YWQIDwgY2hpbm9taWdvXCA7CivkuI3lvrPmvKIgPCBmdXRva3VrYW5cIDsKK+mBremBh+aIpiA8IHNvdWd1dXNlblwgOwor6KiA5LydIDwga290b2R6dXRlXCA7Civlj4jlrrbmnaUgPCBtYXRhZ2VyYWlcIDsKK+eBq+afsSA8IGhpYmFzaGlyYVwgOwor5LiA5aa75aSa5aSrIDwgaXNzYWl0YWZ1XCA7CivplqXml48gPCBiYXRzdXpva3VcIDsKK+ato+abuOazlSA8IHNlaXNob2hvdVwgOwor54us6Ieq5oCnIDwgZG9rdWppc2VpXCA7CivlvIHosqHlpKkgPCBiZW56YWl0ZW5cIDsKK+WLpOWLmeWFiCA8IGtpbm11c2FraVwgOwor6KeS5Y+JIDwgdHN1bm9tYXRhXCA7CivmjIHkuYXmiKYgPCBqaWt5dXVzZW5cIDsKK+mHjeimgeimliA8IGp1dXlvdXNoaVwgOwor56m65qKF6ZuoIDwga2FyYXRzdXl1XCA7Civmt7fmiJDlm6MgPCBrb25zZWlkYW5cIDsKK+S4jeato+ihjOeCuiA8IGZ1c2Vpa291aVwgOwor5oqc6YyoIDwgYmF0c3VieW91XCA7Civngavlj6Plo4EgPCBrYWtvdWhla2lcIDsKK+aZgumWk+ihqCA8IGppa2FuaHlvdVwgOwor56CC5Yip6YGTIDwgamFyaW1pY2hpXCA7CivkvJroqIjlrpggPCBrYWlrZWlrYW5cIDsKK+izpOalreWppiA8IHNlbmd5b3VmdVwgOwor57WM6aiT6ICFIDwga2Vpa2Vuc2hhXCA7Civpn5Plm73oqp4gPCBoYW5rb2t1Z29cIDsKK+aVmeadkOiyuyA8IGt5b3V6YWloaVwgOwor5Zu956uLIDwga29rdXJpdHN1XCA7Civli53liKnogIUgPCBzaG91cmlzaGFcIDsKK+a9nOS8j+acnyA8IHNlbnB1a3VraVwgOwor5aSn5Zuj5YaGIDwgZGFpZGFuJydlblwgOwor5Y2I5YmN5qeYIDwgZ296ZW5zYW1hXCA7Civmtbfmva7pn7MgPCBrYWljaG91b25cIDsKK+ato+eKr+iAhSA8IHNlaWhhbnNoYVwgOwor5Y+v5Zyn5oCnIDwga2FhdHN1c2VpXCA7CivoiLnlpKflt6UgPCBmdW5hZGFpa3VcIDsKK+Wcn+WcsOafhCA8IHRvY2hpZ2FyYVwgOwor55m76Ii356S8IDwgdG91Z2VucmVpXCA7Civmv4DnqoEgPCBnZWtpdG90c3VcIDsKK+aUv+W6nOetiyA8IHNlaWZ1c3VqaVwgOwor5rS75oCn5YmkIDwga2Fzc2VpemFpXCA7Civlj43kvZPliLYgPCBoYW50YWlzZWlcIDsKK+iXu+iPjOmhniA8IHNvdWtpbnJ1aVwgOwor5ruR55+z57KJIDwga2Fzc2VraWtvXCA7Civnt6nooZ3lmaggPCBrYW5zaG91a2lcIDsKK+mzqee+veiJsiA8IGhhdG9iYWlyb1wgOwor6aGV5b6u6Y+hIDwga2VuYmlreW91XCA7CivlkI3lupfooZcgPCBtZWl0ZW5nYWlcIDsKK+WIqeS8keiJsiA8IHJpa3l1dWlyb1wgOwor5Zu95LqL54qvIDwga29rdWppaGFuXCA7CivploDmnb4gPCBrYWRvbWF0c3VcIDsKK+a3t+aIkOWTgSA8IGtvbnNlaWhpblwgOwor5YiG6YWN6ICFIDwgYnVucGFpc2hhXCA7CivljYrpgI/mmI4gPCBoYW50b3VtZWlcIDsKK+WIhuawtOe3miA8IGJ1bnN1aXNlblwgOwor6YGK5oiv55qEIDwgeXV1Z2l0ZWtpXCA7Civov5HoppbnnLwgPCBraW5zaGlnYW5cIDsKK+S8muioiOWjqyA8IGthaWtlaXNoaVwgOwor5oqc6YGTIDwgbnVrZW1pY2hpXCA7CivliJ3lubTlhbUgPCBzaG9uZW5oZWlcIDsKK+WQjOW5tOi8qSA8IGRvdW5lbnBhaVwgOwor54+N54Sh6aGeIDwgY2hpbm11cnVpXCA7Civnrp3lj6Pku6QgPCBrYW5rb3VyZWlcIDsKK+WQiOazleaApyA8IGdvdWhvdXNlaVwgOwor57eP6aCY5LqLIDwgc291cnlvdWppXCA7Civlt57mlL/lupwgPCBzaHV1c2VpZnVcIDsKK+WVhuWLmeWumCA8IHNob3VtdWthblwgOwor6ZW35pyIIDwgbmFnYXRzdWtpXCA7Civlv5zmjqXplpMgPCBvdXNldHN1bWFcIDsKK+ihgOiCiSA8IGtldHN1bmlrdVwgOwor5Y+C5Lya6ICFIDwgc2Fua2Fpc2hhXCA7CivkupTkurrntYQgPCBnb25pbmd1bWlcIDsKK+m7hOawtOaZtiA8IGtpenVpc2hvdVwgOwor5YaF6KOP5qeYIDwgZGFpcmlzYW1hXCA7CivlpKfooYbljJYgPCB0YWlzaHV1a2FcIDsKK+mHjeWkp+aApyA8IGp1dWRhaXNlaVwgOwor5aSW5Zu96KqeIDwgZ2Fpa29rdWdvXCA7Civnj77nirbntq3mjIEgPCBnZW5qb3VpamlcIDsKK+WLouWKm+WutiA8IHNlaXJ5b2trYVwgOwor5aOw5qW95a62IDwgc2VpZ2FrdWthXCA7Civoo73pnbTmpa0gPCBzZWlrYWd5b3VcIDsKK+e0m+WksSA8IGZ1bnNoaXRzdVwgOwor566x6aas6LuKIDwgaGFrb2Jhc2hhXCA7Civlrq7lhoXnnIEgPCBrdW5haXNob3VcIDsKK+Wcn+eJoiA8IHRzdWNoaXJvdVwgOwor5LqL5qWt5omAIDwgamlneW91c2hvXCA7Civnqb/lsbHnlLIgPCBzZW56YW5rb3VcIDsKK+iHqOa4r+e3miA8IHJpbmtvdXNlblwgOwor5ZSv5ZCN6KuWIDwgeXVpbWVpcm9uXCA7CivnsbPmsrkgPCBrb21lYWJ1cmFcIDsKK+aUuemAoOi7iiA8IGthaXpvdXNoYVwgOwor6buE6YeR5Zu9IDwgb3Vnb25rb2t1XCA7CivoiovnvornvrkgPCBpbW95b3VrYW5cIDsKK+abtOeUn+WTgSA8IGtvdXNlaWhpblwgOwor5bqD5bCP6LevIDwgaGlyb2tvdWppXCA7CivnrYvpgZMgPCBzdWppbWljaGlcIDsKK+epuui/lOS6iyA8IHNvcmFoZW5qaVwgOwor56+z56+lIDwgaGljaGlyaWtpXCA7CivohZDmpI3lnJ8gPCBmdXNob2t1ZG9cIDsKK+asoeWWhOetliA8IGppemVuc2FrdVwgOwor576O6L6e6bqX5Y+lIDwgYmlqaXJlaWt1XCA7CivpgaDnnLzpj6EgPCB0b29tZWdhbmVcIDsKK+WJtemAoOiAhSA8IHNvdXpvdXNoYVwgOwor5LyR6Zu75pelIDwga3l1dWRlbmJpXCA7Civmnb/ploDlupcgPCBoYW5tb250ZW5cIDsKK+ihneeqgSA8IHNob3V0b3RzdVwgOwor5bCO5YWl6YOoIDwgZG91bnl1dWJ1XCA7CivnpoXllY/nrZQgPCB6ZW5tb25kb3VcIDsKK+ikh+aVsOWAiyA8IGZ1a3VzdXVrb1wgOwor55uy5a2m5qChIDwgbW91Z2Fra291XCA7CivnoJTkv67oqrIgPCBrZW5zaHV1a2FcIDsKK+W8vuaAp+S9kyA8IGRhbnNlaXRhaVwgOwor57Gz5quDIDwga29tZWJpdHN1XCA7CivnjK7lkYjmnKwgPCBrZW50ZWlib25cIDsKK+WwvumVt+m2jyA8IG9uYWdhZG9yaVwgOwor5pS+6YCB57ayIDwgaG91c291bW91XCA7CivpurvphZTolqwgPCBtYXN1aXlha3VcIDsKK+WNg+W5tOe0gCA8IHNlbicnbmVua2lcIDsKK+WDp+W4veW8gSA8IHNvdWJvdWJlblwgOwor5aSq6byT6IW5IDwgdGFpa29iYXJhXCA7CivkuI3oqIDkuI3oqp4gPCBmdWdlbmZ1Z29cIDsKK+WJjeijheegsiA8IHplbnNvdWhvdVwgOwor5YiG6YGj6ZqKIDwgYnVua2VudGFpXCA7CivlkLnlpY/ogIUgPCBzdWlzb3VzaGFcIDsKK+ernOmqqCA8IHJ5dXVrb3RzdVwgOwor5aW96KeS5a62IDwga291a2FrdWthXCA7CivntZDkuoYgPCBrZXRzdXJ5b3VcIDsKK+aCquWkqeWAmSA8IGFrdXRlbmtvdVwgOwor5o6o6YCy5qmfIDwgc3Vpc2hpbmtpXCA7CivmiZjpiaIgPCB0YWt1aGF0c3VcIDsKK+mJpOWNgeWtlyA8IGthZ2lqdXVqaVwgOwor5Lmx5rCX5rWBIDwgcmFua2lyeXV1XCA7Civlhrflh43liaQgPCByZWl0b3V6YWlcIDsKK+WIneWvvumdoiA8IHNob3RhaW1lblwgOwor6ZaP5bm0IDwgdXJ1dWRvc2hpXCA7Civnq40gPCBkZWthcml0dG9cIDsKK+acquWPjui8iSA8IG1pc2h1dXNhaVwgOwor5Zec5aW95ZOBIDwgc2hpa291aGluXCA7CivmgqrlpKnkvb8gPCBha3V0ZW5zaGlcIDsKK+W8t+WMluexsyA8IGt5b3VrYW1haVwgOwor5rC06Zu36ImHIDwgc3VpcmFpdGVpXCA7CivoprPmpZPkvJogPCBrYW5wdXVrYWlcIDsKK+S9k+mok+irhyA8IHRhaWtlbmRhblwgOwor54Sh5oSf6KaaIDwgbXVrYW5rYWt1XCA7CivnvqTpgJ/luqYgPCBndW5zb2t1ZG9cIDsKK+mbu+e3j+eglCA8IGRlbnNvdWtlblwgOwor5LiN56K65a6aIDwgZnVrYWt1dGVpXCA7Civnmb3nmb7lkIggPCBzaGlyYXl1cmlcIDsKK+iInui4iuWKhyA8IGJ1eW91Z2VraVwgOwor54Gr5Y+j5LiYIDwga2Frb3VreXV1XCA7CivkuI3mraPnorogPCBmdXNlaWtha3VcIDsKK+evgOe0hCA8IHNldHN1eWFrdVwgOwor6Zm95a2Q57eaIDwgeW91c2hpc2VuXCA7CivkuIvpg6jmqZ/plqIgPCBrYWJ1a2lrYW5cIDsKK+WAi+S6uuiqpOW3riA8IGtvamluZ29zYVwgOwor5pmC6ZaT57WmIDwgamlrYW5reXV1XCA7CivliIbmsLTnlYwgPCBidW5zdWlrYWlcIDsKK+S5seWPjeWwhCA8IHJhbmhhbnNoYVwgOwor6Kej562U5qyEIDwga2FpdG91cmFuXCA7CivprZrpm7foiYcgPCBneW9yYWl0ZWlcIDsKK+WFrOacieWcsCA8IGtvdXl1dWNoaVwgOwor5qy6556e55qEIDwgZ2ltYW50ZWtpXCA7CivmmI7nnq3luqYgPCBtZWlyeW91ZG9cIDsKK+S8muioiOS/giA8IGthaWtlaWtlaVwgOwor6J+H6JuZIDwgaGlraWdhZXJ1XCA7CivovLjlhaXnqI4gPCB5dW55dXV6ZWlcIDsKK+icgOm7jSA8IG1vcm9rb3NoaVwgOwor5LiN5b+D5b6XIDwgZnVrb2tvcm9lXCA7Civkuozmpa3lnLAgPCBuaWd5b3VjaGlcIDsKK+WNmOWtkOirliA8IHRhbnNoaXJvblwgOwor6Ki85oug6YeRIDwgc2hvdWtva2luXCA7CivnlJ/mvJTlpY8gPCBuYW1hZW5zb3VcIDsKK+W+ruWIhuWtpiA8IGJpYnVuZ2FrdVwgOwor5bCC5b6T6ICFIDwgc2VuanV1c2hhXCA7Civku5nlj7Dkvq8gPCBzZW5kYWlrb3VcIDsKK+ihgOecvCA8IGNoaW1hbmFrb1wgOwor5664566xIDwgaGFzaGliYWtvXCA7CivopIflvI8gPCBmdWt1c2hpa2lcIDsKK+WFhOW8n+aEmyA8IGt5b3VkYWlhaVwgOwor5LiH6I+v6Y+hIDwgbWFuZ2VreW91XCA7Civopb/lgbQgPCBuaXNoaWdhd2FcIDsKK+aQjeWksSA8IHNvbnNoaXRzdVwgOwor5Lq66ZaT5YOPIDwgbmluZ2Vuem91XCA7Civlm57luLDnmoQgPCBrYWlraXRla2lcIDsKK+W4guawkeeojiA8IHNoaW1pbnplaVwgOwor5a+M5aOr6aGNIDwgZnVqaWJpdGFpXCA7Civpl5blhaUgPCBjaGluJydueXV1XCA7CivonILps6UgPCBoYWNoaWRvcmlcIDsKK+mWi+elqOaJgCA8IGthaWh5b3Vqb1wgOwor5L2T6IKy6aSoIDwgdGFpaWt1a2FuXCA7CivngrrkvZMgPCB0ZWl0YXJha3VcIDsKK+Wkieiqv+azoiA8IGhlbmNob3VoYVwgOwor5ZCM55uf6LuNIDwgZG91bWVpZ3VuXCA7CivlkYroqLTkurogPCBrb2t1c29uaW5cIDsKK+WtpuWjq+mZoiA8IGdha3VzaGlpblwgOwor5YCr55CG55qEIDwgcmlucml0ZWtpXCA7CivngrnpvLvolqwgPCB0ZW5iaXlha3VcIDsKK+aKleabuOashCA8IHRvdXNob3JhblwgOwor6Ki06Kif5rOVIDwgc29zaG91aG91XCA7Civmurbos6ogPCB5b3VzaGl0c3VcIDsKK+Wbm+WNiuWIhiA8IHNoaWhhbmJ1blwgOwor5ZC46Z+z5p2QIDwga3l1dW9uemFpXCA7CivliJ3kvZPpqJMgPCBzaG90YWlrZW5cIDsKK+i8uOWFpeebpCA8IHl1bnl1dWJhblwgOwor5LiN55+l54GrIDwgc2hpcmFudWhpXCA7CivljbXntLDog54gPCByYW5zYWlib3VcIDsKK+eBsOWcnyA8IGhhaXRzdWNoaVwgOwor5LqM5qW15YyWIDwgbmlreW9rdWthXCA7CivljZfkuqzpjKAgPCBuYW5raW5qb3VcIDsKK+mzqeaZguioiCA8IGhhdG9kb2tlaVwgOwor5ZO65Lmz55O2IDwgaG9ueXV1YmluXCA7Civopb/mtIvpoqggPCBzZWl5b3VmdXVcIDsKK+aXouijveacjSA8IGtpc2VpZnVrdVwgOwor6Ieq55Sx5oSP5b+XIDwgaml5dXVpc2hpXCA7Civph47lpJbliocgPCB5YWdhaWdla2lcIDsKK+aZrumBjeeahCA8IGZ1aGVudGVraVwgOwor5LqL5qWt5ZujIDwgamlneW91ZGFuXCA7CivlsI/lvbnkurogPCBrb3lha3VuaW5cIDsKK+mzpeWqkuiKsSA8IGNob3ViYWlrYVwgOwor6Ieq5rK76aCYIDwgamljaGlyeW91XCA7Civoo4/miYkgPCB1cmF0b2JpcmFcIDsKK+egtOWjiueahCA8IGhha2FpdGVraVwgOwor5pCs5Ye6IDwgaGFuc2h1dHN1XCA7Civnqq7mjqrlpKcgPCBreXV1c29kYWlcIDsKK+mBlOejqOiIuSA8IGRhcnVtYXNlblwgOwor5YaF5Zyo5oCnIDwgbmFpemFpc2VpXCA7CivlsI/ojbfniakgPCBrb25pbW90c3VcIDsKK+aXpeezu+S6uiA8IG5pa2tlaWppblwgOwor57K+56We56eRIDwgc2Vpc2hpbmthXCA7CivkuIDlkIjnm64gPCBpY2hpZ291bWVcIDsKK+S9j+Wxhei3oSA8IGp1dWt5b2F0b1wgOwor5YaN5oqX5byBIDwgc2Fpa291YmVuXCA7CivovrLkvZzmpa0gPCBub3VzYWd5b3VcIDsKK+ieouWFieeHiCA8IGtlaWtvdXRvdVwgOwor5LuY5bm06KGoIDwgZnVuZW5weW91XCA7CivmraPoqqTooaggPCBzZWlnb2h5b3VcIDsKK+ijj+aDhSA8IHVyYW5hc2FrZVwgOwor5Zub6Lyq6LuKIDwgeW9ucmluc2hhXCA7Civon4fogqEgPCBrYWVydW1hdGFcIDsKK+S4iemHjeWljyA8IHNhbmp1dXNvdVwgOwor5L+d6Ki85pu4IDwgaG9zaG91c2hvXCA7CivlkKblrprnmoQgPCBoaXRlaXRla2lcIDsKK+S4jemAo+e2miA8IGZ1cmVuem9rdVwgOwor5q2m5pat55qEIDwgYnVkYW50ZWtpXCA7Civlh7rnqYLmnJ8gPCBzaHVzc3Vpa2lcIDsKK+S4iuWNiuacnyA8IGthbWloYW5raVwgOwor5Y2Y5a2Q6JGJIDwgdGFuc2hpeW91XCA7Civlvq7liIbllYYgPCBiaWJ1bnNob3VcIDsKK+ihgOeFmSA8IGNoaWtlbXVyaVwgOwor576p5YWE5byfIDwgZ2lreW91ZGFpXCA7CivopIfntKDmlbAgPCBmdWt1c29zdXVcIDsKK+i7ouagoeeUnyA8IHRlbmtvdXNlaVwgOwor5pi85aSc5bivIDwgY2h1dXlhb2JpXCA7Civkuovku7booaggPCBqaWtlbmh5b3VcIDsKK+W8t+ehrOa0viA8IGt5b3Vrb3VoYVwgOwor5o6S5rCX6YePIDwgaGFpa2lyeW91XCA7CivkuozmrKHoqJjmhrYgPCBuaWppa2lva3VcIDsKK+Wls+aWh+WtlyA8IG9uJyduYW1vamlcIDsKK+eEoeaJgOWxniA8IG11c2hvem9rdVwgOwor5ZGo5rOi5pWwIDwgc2h1dWhhc3V1XCA7CivnjJvnpr3poZ4gPCBtb3VraW5ydWlcIDsKK+eUn+aFi+ezuyA8IHNlaXRhaWtlaVwgOwor5ruR6JC9IDwga2F0c3VyYWt1XCA7CivmjIHniakgPCBtb2NoaW1vbm9cIDsKK+aVo+aWh+ipqSA8IHNhbmJ1bnNoaVwgOwor5qC95Z+556iuIDwgc2FpYmFpc2h1XCA7Civljp/okZfogIUgPCBnZW5jaG9zaGFcIDsKK+mbu+ipseaWmSA8IGRlbndhcnlvdVwgOwor5oqA6IO96LOeIDwgZ2lub3VzaG91XCA7Civmlpnph5HmiYAgPCByeW91a2luam9cIDsKK+aUr+mFjeiAhSA8IHNoaWhhaXNoYVwgOwor5rSX5r+v5bGLIDwgc2VudGFrdXlhXCA7CivlgbTov5HogIUgPCBzb2traW5zaGFcIDsKK+mWgOWPoyA8IGthZG9ndWNoaVwgOwor5a6f56S+5LyaIDwgamlzc2hha2FpXCA7CivlvqHpgKPntaEgPCBnb3JlbnJha3VcIDsKK+mmmeW3neecjCA8IGthZ2F3YWtlblwgOwor54K55ru05ZmoIDwgdGVudGVraWtpXCA7CivkuojlrprooaggPCB5b3RlaWh5b3VcIDsKK+W8geitt+aWmSA8IGJlbmdvcnlvdVwgOwor5Li76KaB6aeFIDwgc2h1eW91ZWtpXCA7CivljLrkvJrorbDlk6EgPCBrdWthaWdpaW5cIDsKK+aMn+auuiA8IGt5b3VzYXRzdVwgOwor5a++5b+c562WIDwgdGFpb3VzYWt1XCA7CivovLjlhaXmuK8gPCB5dW55dXVrb3VcIDsKK+WQjOW/l+S8miA8IGRvdXNoaWthaVwgOwor6L+O5pKD5qmfIDwgZ2VpZ2VraWtpXCA7CivkurrlnLDlkI0gPCBqaW5jaGltZWlcIDsKK+S/nemZuuaWmSA8IGhva2VucnlvdVwgOwor5aSn5ZKM6IqLIDwgeWFtYXRvaW1vXCA7Civpq5jlhKrlhYggPCBrb3V5dXVzZW5cIDsKK+aUvumAgeazlSA8IGhvdXNvdWhvdVwgOwor56S65Yqb5ZuzIDwgamlyeW9rdXp1XCA7Civlj6TkuovoqJjkvJ0gPCBrb2ppa2lkZW5cIDsKK+mbquWls+mDjiA8IHl1a2lqb3JvdVwgOwor6KGo5pu4IDwgb21vdGVnYWtpXCA7Civpm7bntLDovrIgPCByZWlzYWlub3VcIDsKK+eziuS7oyA8IG5vcmlzaGlyb1wgOwor55yf5riF5rC0IDwgbWFzaGltaXp1XCA7CivliqnlpKrliIAgPCBzdWtlZGFjaGlcIDsKK+WFi+W3seW/gyA8IGtva2tpc2hpblwgOwor6Kit6KiI6ICFIDwgc2Vra2Vpc2hhXCA7CivnhKHnpZ7oq5YgPCBtdXNoaW5yb25cIDsKK+eEoeeCuueEoeetliA8IG11aW11c2FrdVwgOwor5pyJ6KKL6aGeIDwgeXV1dGFpcnVpXCA7CivkuIDmrrrpgqMgPCBpc3NldHN1bmFcIDsKK+W/g+eQhuaIpiA8IHNoaW5yaXNlblwgOwor5b6h5q205q20IDwgb3Jla2lyZWtpXCA7CivkuI3lubPnrYkgPCBmdWJ5b3Vkb3VcIDsKK+WIqeWwv+WJpCA8IHJpbnlvdXphaVwgOwor56m06ZqZIDwga2V0c3VnZWtpXCA7CivniafmrYznmoQgPCBib2trYXRla2lcIDsKK+a8uOi/kee3miA8IHplbmtpbnNlblwgOwor5a2Q5a6J6LKdIDwga295YXN1a2FpXCA7Civml4Xml6XoqJggPCB0YWJpbmlra2lcIDsKK+WjsuS4iumHkSA8IHVyaWFnZWtpblwgOwor5Y+X57Wm6ICFIDwganVreXV1c2hhXCA7CivmmI7lubTluqYgPCBteW91bmVuZG9cIDsKK+S6jOaemuiIjCA8IG5pbWFpaml0YVwgOwor5LiJ6YeN5YagIDwgc2FuanV1a2FuXCA7Civoqpjpm7vlrZAgPCB5dXVkZW5zaGlcIDsKK+mMr+mbkSA8IHNha3V6YXRzdVwgOwor5Zyn5a+GIDwgYXRzdW1pdHN1XCA7CivplqLkv4LoqZ4gPCBrYW5rZWlzaGlcIDsKK+e0oemMmOW9oiA8IGJvdXN1aWtlaVwgOwor5aWJ5bmj5L2/IDwgaG91aGVpc2hpXCA7CivluILmsJHms5UgPCBzaGltaW5ob3VcIDsKK+acgOaVrOekvCA8IHNhaWtlaXJlaVwgOwor5qS0IDwgdG9kb21hdHN1XCA7Civoi6blrabnlJ8gPCBrdWdha3VzZWlcIDsKK+Wwj+eUn+aEj+awlyA8IGtvbmFtYWlraVwgOwor5b6X5oSP5YWIIDwgdG9rdWlzYWtpXCA7Civpm6jku5XluqYgPCBhbWFqaXRha3VcIDsKK+WRqOazouW4ryA8IHNodXVoYXRhaVwgOwor5rys54mpIDwgdHN1a2Vtb25vXCA7CivnrqHliLblrpggPCBrYW5zZWlrYW5cIDsKK+icnOixhiA8IG1pdHN1bWFtZVwgOwor5ryC552AIDwgaHlvdWNoYWt1XCA7Civnh4PmlpnosrsgPCBuZW5yeW91aGlcIDsKK+mHj+iomOWPtyA8IHJ5b3VraWdvdVwgOwor55m65YWJ5L2TIDwgaGFra291dGFpXCA7CivljYrlhoblvaIgPCBoYW4nJ2Vua2VpXCA7CivmsZrmn5PpmaTljrsgPCBvc2Vuam9reW9cIDsKK+aPkOWHuiA8IHRlaXNodXRzdVwgOwor5YaG6Jmr6aGeIDwgZW5jaHV1cnVpXCA7CivmibbppIrnvqnli5kgPCBmdXlvdWdpbXVcIDsKK+aHuOaDs+aWhyA8IGtlc291YnVtaVwgOwor5qSc5r2u5ZmoIDwga2VuY2hvdWtpXCA7Civlp4nlprnnt6ggPCBzaGltYWloZW5cIDsKK+ihgOezluWApCA8IGtldHRvdWNoaVwgOwor5rex6Z20IDwgZnVrYWd1dHN1XCA7CivnhKHph43ph48gPCBtdWp1dXJ5b3VcIDsKK+mbu+ipseW4syA8IGRlbndhY2hvdVwgOwor5Y2I5YmN5LitIDwgZ296ZW5jaHV1XCA7Civllrbmpa3miYAgPCBlaWd5b3VzaG9cIDsKK+evgOassiA8IHNldHN1eW9rdVwgOwor57Gz5biC5aC0IDwgYmVpaWNoaWJhXCA7CivkuI3li5Xlv4MgPCBmdWRvdXNoaW5cIDsKK+iii+W4ryA8IGZ1a3Vyb29iaVwgOwor5bCP5Yik5b2iIDwga29iYW5nYXRhXCA7CivnhafmmI7lmaggPCBzaG91bWVpa2lcIDsKK+W+ueeUsuW8viA8IHRla2tvdWRhblwgOwor5a6u5YaF5bqBIDwga3VuYWljaG91XCA7Civmk6zlj6TkuLvnvqkgPCBnaWtvc2h1Z2lcIDsKK+W4guawkeaoqSA8IHNoaW1pbmtlblwgOwor56mA6aOfIDwga29rdXNob2t1XCA7CivljYroiLfnoLIgPCBoYW5nZW5ob3VcIDsKK+aoqeWogeetiyA8IGtlbicnaXN1amlcIDsKK+Wkiembu+aJgCA8IGhlbmRlbnNob1wgOwor56mN6ZuqIDwgc2VraXNldHN1XCA7Civpm7vop6PmtrIgPCBkZW5rYWlla2lcIDsKK+mbsuS4iuS6uiA8IHVuam91Yml0b1wgOwor56+A5qaRIDwgZnVzaGlrdXJlXCA7CivkuIDlkajlubQgPCBpc3NodXVuZW5cIDsKK+ihgOaXjyA8IGtldHN1em9rdVwgOwor566h5Yi25aGUIDwga2Fuc2VpdG91XCA7Civoj6/ljrPntYwgPCBrZWdvbmt5b3VcIDsKK+WvvuaDheWgsSA8IHRhaWpvdWhvdVwgOwor5qC85aSJ5YyWIDwga2FrdWhlbmthXCA7CivmlZnogrLlrrYgPCBreW91aWt1a2FcIDsKK+WuieaBr+mmmSA8IGFuc29rdWtvdVwgOwor55+z6bm45rC0IDwgc2Vra2Vuc3VpXCA7CivkuI3li4nlvLcgPCBmdWJlbmt5b3VcIDsKK+WhqeWMlueJqSA8IGVua2FidXRzdVwgOwor5Lmd5a+45LqU5YiGIDwga3VzdW5nb2J1XCA7CivkuKHnlKjmqZ8gPCByeW91eW91a2lcIDsKK+W9k+S4lumiqCA8IHRvdXNlaWZ1dVwgOwor562W55WlIDwgc2FrdXJ5YWt1XCA7CivmoLzlpKnkupUgPCBnb3V0ZW5qb3VcIDsKK+S4reiAleapnyA8IGNodXVrb3VraVwgOwor5LiN6YGp5qC8IDwgZnV0ZWtrYWt1XCA7CivpgaDlv4PliIYgPCBlbnNoaW5idW5cIDsKK+mNvOihkyA8IHNoaW5qdXRzdVwgOwor5pmu6YCa5rOVIDwgZnV0c3V1aG91XCA7CivlqpLmn5PliaQgPCBiYWlzZW56YWlcIDsKK+egtOijgumfsyA8IGhhcmV0c3VvblwgOwor5Li76Kaz6KuWIDwgc2h1a2Fucm9uXCA7CivkuoznlarkvZwgPCBuaWJhbnNha3VcIDsKK+eUn+WRvee3miA8IHNlaW1laXNlblwgOwor56m65a++56m6IDwga3V1dGFpa3V1XCA7CivnjJvlkLnpm6ogPCBtb3VmdWJ1a2lcIDsKK+aLk+auliA8IHRha3VzaG9rdVwgOwor6auY5bCE56CyIDwga291c2hhaG91XCA7CivkuIDmranpioAgPCBpY2hpYnVnaW5cIDsKK+WliOiJr+a8rCA8IG5hcmFkenVrZVwgOwor5b2i6LGh5YyWIDwga2Vpc2hvdWthXCA7CivlhoXlnLDkurogPCBuYWljaGlqaW5cIDsKK+efs+WNl+iKsSA8IHNoYWt1bmFnZVwgOwor5YKA5YSh5birIDwga2FpcmFpc2hpXCA7CivkuIDmranph5EgPCBpY2hpYnVraW5cIDsKK+Wls+mDjuicmOibmyA8IGpvcm91Z3Vtb1wgOwor55ep5oiR5oWiIDwgeWFzZWdhbWFuXCA7Civom5not7MgPCBrYWVydXRvYmlcIDsKK+aCquWboOe4gSA8IGFrdWluJyduZW5cIDsKK+S4jeecoOeXhyA8IGZ1bWluc2hvdVwgOwor6Zu76Kej5qe9IDwgZGVua2Fpc291XCA7Civms5Xoj6/lrpcgPCBob2trZXNodXVcIDsKK+S4gOeerOmWkyA8IGlzc2h1bmthblwgOwor5q2j5LiJ5L2NIDwgc2hvdXNhbm1pXCA7CivlvL7pgZPlvL4gPCBkYW5kb3VkYW5cIDsKK+a3t+WQiOaelyA8IGtvbmdvdXJpblwgOwor5rC05aKo55S7IDwgc3VpYm9rdWdhXCA7CivkuqTmmJPkvJogPCBrb3Vla2lrYWlcIDsKK+mrmOaliuWtkCA8IHRha2F5b3VqaVwgOwor5qip5aiB55qEIDwga2VuJydpdGVraVwgOwor56S+55So6LuKIDwgc2hheW91c2hhXCA7CivliIbmsLTltrogPCBidW5zdWlyZWlcIDsKK+WtkOS+m+eUqCA8IGtvZG9tb3lvdVwgOwor6Kaq5a2d6KGMIDwgb3lha291a291XCA7CivnmbrlsITnrZIgPCBoYXNzaGF0b3VcIDsKK+aLvuS4h+WGhiA8IGp1dW1hbicnZW5cIDsKK+WLpOeah+WutiA8IGtpbicnbm91a2FcIDsKK+S5s+WMluWJpCA8IG55dXVrYXphaVwgOwor6L+R5Zyw54K5IDwga2luY2hpdGVuXCA7CivlnKflipsgPCBhdHN1cnlva3VcIDsKK+eEoeertuS6iSA8IG11a3lvdXNvdVwgOwor5Lqk6Zqb5rOVIDwga291c2FpaG91XCA7Civlj4LkuI7ogIUgPCBzYW4nJ3lvc2hhXCA7Civnq7nnrpIgPCB0YWtlYm91a2lcIDsKK+mjsuaWmeawtCA8IGlucnlvdXN1aVwgOwor6by76Z2iIDwgaGFuYWR6dXJhXCA7Civnp4vml6XlkowgPCBha2liaXlvcmlcIDsKK+WMuuW9ueaJgCA8IGt1eWFrdXNob1wgOwor56uL5b+X5LydIDwgcmlzc2hpZGVuXCA7CivlpKnnp6Tmo5IgPCB0ZW5iaW5ib3VcIDsKK+Wkieiqv+WZqCA8IGhlbmNob3VraVwgOwor6Zai5L+C6ICFIDwga2Fua2Vpc2hhXCA7CivkuI3pmo/mhI/nrYsgPCBmdXp1aWlraW5cIDsKK+Wkp+aIkOWKnyA8IGRhaXNlaWtvdVwgOwor5LqM5Lq656ewIDwgbmluaW5zaG91XCA7Civlgbblg4/oppYgPCBndXV6b3VzaGlcIDsKK+WBtui5hOmhniA8IGd1dXRlaXJ1aVwgOwor5p2l6Kiq6ICFIDwgcmFpaG91c2hhXCA7CivpqJLkubHnvaogPCBzb3VyYW56YWlcIDsKK+WujOaIkOWTgSA8IGthbnNlaWhpblwgOwor56e76KGM5pyf6ZaTIDwgaWtvdWtpa2FuXCA7Civoopblj6MgPCBzb2RlZ3VjaGlcIDsKK+WJtemAoOaApyA8IHNvdXpvdXNlaVwgOwor5o275Ye6IDwgbmVuc2h1dHN1XCA7Civlj4joq4vosqAgPCBtYXRhdWtlb2lcIDsKK+mHkemWo+WvuiA8IGtpbmtha3VqaVwgOwor6KqY6Zu75L2TIDwgeXV1ZGVudGFpXCA7CivljZfkuqznsbMgPCBuYW5raW5tYWlcIDsKK+eEoeelnue1jCA8IG11c2hpbmtlaVwgOwor6YqA5Lqk5o+bIDwgZ2lua291a2FuXCA7CivltZkgPCB5YW1hc2hpbmFcIDsKK+ijveWhqealrSA8IHNlaWVuZ3lvdVwgOwor5pWZ5Lya5ZOhIDwga3lvdWthaWluXCA7CivllZPon4QgPCBrZWljaGl0c3VcIDsKK+aQreS5l+WIuCA8IHRvdWpvdWtlblwgOwor6YGO56Gr6YW4IDwga2FyeXV1c2FuXCA7CivpgYvlkb3nmoQgPCB1bm1laXRla2lcIDsKK+ims+ahnOS8miA8IGthbicnb3VrYWlcIDsKK+a2membqCA8IG5hbWlkYWFtZVwgOwor54Sh56S86ICFIDwgYnVyZWltb25vXCA7Civmp4vmlofms5UgPCBrb3VidW5wb3VcIDsKK+evpOWunyA8IHRva3VqaXRzdVwgOwor6Y6W57O4IDwga3VzYXJpaXRvXCA7Civnpr/pt7IgPCBoYWdld2FzaGlcIDsKK+ihgOWwvyA8IGtldHN1bnlvdVwgOwor5o6l6L+R5oimIDwgc2Vra2luc2VuXCA7CivnhKHms5XogIUgPCBtdWhvdW1vbm9cIDsKK+aHsue9sCA8IGNob3ViYXRzdVwgOwor5LiN6YGp5b2TIDwgZnV0ZWtpdG91XCA7CivnhKHmsLTpjYsgPCBtdXN1aW5hYmVcIDsKK+aciOe1puaXpSA8IGdla2t5dXViaVwgOwor5Zu95YqbIDwga29rdXJ5b2t1XCA7CivmlqXlgJnpmoogPCBzZWtrb3V0YWlcIDsKK+WJtealreiyuyA8IHNvdWd5b3VoaVwgOwor5Zu95YilIDwga3VuaWJldHN1XCA7Civph43opoHmgKcgPCBqdXV5b3VzZWlcIDsKK+e3j+WjsuS4iiA8IHNvdXVyaWFnZVwgOwor5Y2B5YaG546JIDwganV1ZW5kYW1hXCA7Civmir3mlpcgPCBoaWtpZGFzaGlcIDsKK+WAq+eQhuWtpiA8IHJpbnJpZ2FrdVwgOwor5LiA6YCx6ZaTIDwgaXNzaHV1a2FuXCA7CivnpL7lhoXloLEgPCBzaGFuYWlob3VcIDsKK+S9j+WuheiyuyA8IGp1dXRha3VoaVwgOwor5bGI5Zyw5oCnIDwga3V0Y2hpc2VpXCA7Civku5jliqDkvqHlgKQgPCBmdWtha2FjaGlcIDsKK+evieWxsSA8IHRzdWtpeWFtYVwgOwor5Zu95pyJ5YyWIDwga29rdXl1dWthXCA7CivpgJrpoqjmqZ8gPCB0c3V1ZnV1a2lcIDsKK+WutuWxi+aVtyA8IGlleWFzaGlraVwgOwor5bGx5qSS6a2aIDwgc2Fuc2hvdXVvXCA7Civlhazmlofmm7ggPCBrb3VidW5zaG9cIDsKK+axuuWumuirliA8IGtldHRlaXJvblwgOwor5L+d6Ki85Lq6IDwgaG9zaG91bmluXCA7Civmsr/mtbflt54gPCBlbmthaXNodXVcIDsKK+S4jemBk+W+syA8IGZ1ZG91dG9rdVwgOwor5L6/5LmX6ICFIDwgYmluam91c2hhXCA7CivkuIDljYfnk7YgPCBpc3Nob3ViaW5cIDsKK+epuuiFueaZgiA8IGt1dWZ1a3VqaVwgOwor5YmN6KGb5oimIDwgemVuJydlaXNlblwgOwor6KKW5LuYIDwgc29kZXRzdWtlXCA7CivmhJ/mg4Xoq5YgPCBrYW5qb3Vyb25cIDsKK+aUr+mFjeaoqSA8IHNoaWhhaWtlblwgOwor5Zuj5a2Q6by7IDwgZGFuZ29iYW5hXCA7Civlhajoq5bngrkgPCB6ZW5yb250ZW5cIDsKK+aJvOauuiA8IHlha3VzYXRzdVwgOwor6YGT5YyW6ICFIDwgZG91a2Vtb25vXCA7Civopb/mtIvntJkgPCBzZWl5b3VzaGlcIDsKK+abuOiomOmVtyA8IHNob2tpY2hvdVwgOwor5Zyf5aOM5rGa5p+TIDwgZG9qb3Vvc2VuXCA7CivooYDloZcgPCBjaGltaWRvcm9cIDsKK+W/jOiogOiRiSA8IGltaWtvdG9iYVwgOwor6Zuj5LqL5qWtIDwgbmFuamlneW91XCA7Civku5jluK/nmoQgPCBmdXRhaXRla2lcIDsKK+mrmOmjm+i7iiA8IHRha2FiaXNoYVwgOwor6Zu76Kmx5LitIDwgZGVud2FjaHV1XCA7Civpu4TpgZPluK8gPCBrb3Vkb3V0YWlcIDsKK+mrmOagoeeUnyA8IGtvdWtvdXNlaVwgOwor6bq56bu0IDwga291amlrYWJpXCA7Civmtpnph5EgPCBuYW1pZGFraW5cIDsKK+iCuuawtOiFqyA8IGhhaXN1aXNodVwgOwor5ZWG55So6KqeIDwgc2hvdXlvdWdvXCA7CivnlaXoqJjms5UgPCByeWFra2lob3VcIDsKK+ihgOWcpyA8IGtldHN1YXRzdVwgOwor5r2u5aKDIDwgc2hpb3pha2FpXCA7CivokaHokITmo5ogPCBidWRvdWRhbmFcIDsKK+WlieWFrOS6uiA8IGhvdWtvdW5pblwgOwor56if6LOqIDwgaGluc2hpdHN1XCA7Civmub/nlLAgPCBzaGl0c3VkZW5cIDsKK+S7j+azleWDpyA8IGJ1cHBvdXNvdVwgOwor6buS6auqIDwga29rdWhhdHN1XCA7CivkvZPogrLnpa0gPCB0YWlpa3VzYWlcIDsKK+aZrumAmuW8viA8IGZ1dHN1dWRhblwgOwor5oim5Lit5rS+IDwgc2VuY2h1dWhhXCA7Civpq5jlsbHluK8gPCBrb3V6YW50YWlcIDsKK+aAp+eKr+e9qiA8IHNlaWhhbnphaVwgOwor5rCR6Iq45ZOBIDwgbWluZ2VpaGluXCA7CivopqrkvJrnpL4gPCBveWFnYWlzaGFcIDsKK+aJk+a2iCA8IHVjaGlrZXNoaVwgOwor5Y+C6LOA5bizIDwgc2FuZ2FjaG91XCA7CivkuInovKrou4ogPCBzYW5yaW5zaGFcIDsKK+eUo+enkeWtpiA8IHNhbmthZ2FrdVwgOwor6LuK5YaF54GvIDwgc2hhbmFpdG91XCA7CivljLvli5nlrqQgPCBpbXVzaGl0c3VcIDsKK+awuOe2muaApyA8IGVpem9rdXNlaVwgOwor6KGo5YG0IDwgb21vdGVnYXdhXCA7CivmjqLmpJzpmoogPCB0YW5rZW50YWlcIDsKK+Wun+WLmeWutiA8IGppdHN1bXVrYVwgOwor5b+F6aCI5qC8IDwgaGlzc3VrYWt1XCA7CivlpKflkozmrYwgPCB5YW1hdG91dGFcIDsKK+S4uOWkquadkCA8IG1hcnV0YXphaVwgOwor56CU5L+u5omAIDwga2Vuc2h1dWpvXCA7CivlhazmmI7lhZogPCBrb3VtZWl0b3VcIDsKK+e1teepuuiogCA8IGVzb3JhZ290b1wgOwor576F6Yed55ukIDwgcmFzaGluYmFuXCA7CivkuIrpmaLorbDlk6EgPCBqb3VpbmdpaW5cIDsKK+WZqOmHj+S6uiA8IGtpcnlvdWppblwgOwor5Zu96Zqb6KqeIDwga29rdXNhaWdvXCA7Civlm5vovrrlvaIgPCBzaGloZW5rZWlcIDsKK+eZuuS9nOeahCA8IGhvc3NhdGVraVwgOwor6IG+5a2m5qChIDwgcm91Z2Fra291XCA7CivpkJjmkp4gPCBrYW5ldHN1a2lcIDsKK+aOg+a1t+iJhyA8IHNvdWthaXRlaVwgOwor5Y+C6ICD5pu4IDwgc2Fua291c2hvXCA7CivljJbnsqflk4EgPCBrZXNob3VoaW5cIDsKK+WcsOW5s+mdoiA8IGNoaWhlaW1lblwgOwor6KGM5YiXIDwgZ3lvdXJldHN1XCA7CivkvY7og73ogIUgPCB0ZWlub3VzaGFcIDsKK+WFiOmok+irliA8IHNlbmtlbnJvblwgOwor6ZuG6Iux56S+IDwgc2h1dWVpc2hhXCA7CivnlKjmsLTmsaAgPCB5b3VzdWljaGlcIDsKK+WPl+mbo+WKhyA8IGp1bmFuZ2VraVwgOwor5YCJ5bqr5qWtIDwgc291a29neW91XCA7CivljYPlha3mnKwgPCBzZW5yb3Bwb25cIDsKK+i8uOWFpeWTgSA8IHl1bnl1dWhpblwgOwor5YyW57Kn5Y+wIDwga2VzaG91ZGFpXCA7CivloanliqDmuJsgPCBzaGlva2FnZW5cIDsKK+WomOWtkOi7jSA8IGpvdXNoaWd1blwgOwor6Ieq5rK755yBIDwgamljaGlzaG91XCA7CivlsL7plbfnjL8gPCBvbmFnYXphcnVcIDsKK+itpumYsuWboyA8IGtlaWJvdWRhblwgOwor5q2j6Kej6ICFIDwgc2Vpa2Fpc2hhXCA7CivpmZDluqbpoY0gPCBnZW5kb2dha3VcIDsKK+WGjea0l+ekvCA8IHNhaXNlbnJlaVwgOwor5aeJ5aa55qChIDwgc2hpbWFpa291XCA7CivmoLzpl5jmioAgPCBrYWt1dG91Z2lcIDsKK+mdkuaYpeacnyA8IHNlaXNodW5raVwgOwor6YCf6KiY6YyyIDwgc29ra2lyb2t1XCA7CivlhKrli53ppqwgPCB5dXVzaG91YmFcIDsKK+WHqSA8IGtvZ2FyYXNoaVwgOwor5rCX5YCZ5a2mIDwga2lrb3VnYWt1XCA7Civnl4XpmaLoiLkgPCBieW91aW5zZW5cIDsKK+WbveaWh+enkSA8IGtva3VidW5rYVwgOwor5ouF5b2T6ICFIDwgdGFudG91c2hhXCA7CivmnaXloLTogIUgPCByYWlqb3VzaGFcIDsKK+aJjeanjCA8IHNhaWR6dWNoaVwgOwor5o6S5rC05rqdIDwgaGFpc3Vpa291XCA7Civls7vkuIvliaQgPCBzaHVuZ2V6YWlcIDsKK+WkluWVhumDqCA8IGdhaXNob3VidVwgOwor5rm/5r2kIDwgc2hpdHN1anVuXCA7CivpvLvooZ0gPCBoYW5hdHN1a2lcIDsKK+ato+aWueW9oiA8IHNlaWhvdWtlaVwgOwor5riL57SZIDwgc2hpYnVnYW1pXCA7CivmnIjntYzluK8gPCBnZWtrZWl0YWlcIDsKK+inkuihjOeBryA8IGtha3VhbmRvblwgOwor6Kqy5b606YeRIDwga2FjaG91a2luXCA7CivkuqTmj5voiLkgPCBrb3VrYW5zZW5cIDsKK+S/neeuoeiovCA8IGhva2Fuc2hvdVwgOwor5re75Yqg54mpIDwgdGVua2Ftb25vXCA7CivpvKDorJsgPCBuZXp1bWlrb3VcIDsKK+adpeims+iAhSA8IHJhaWthbnNoYVwgOwor5b6h5a626aiS5YuVIDwgb2llc291ZG91XCA7Civpj6Hmnb8gPCBrYWdhbWlpdGFcIDsKK+e2uue+heaYnyA8IGtpcmFib3NoaVwgOwor5bGx5bKz6YOoIDwgc2FuZ2FrdWJ1XCA7CivnmbrlsZXmgKcgPCBoYXR0ZW5zZWlcIDsKK+epuueptCA8IGthcmFrZXRzdVwgOwor5Y2U5a6a5qGIIDwga3lvdXRlaWFuXCA7Civpuqbpo68gPCBtdWdpbWVzaGlcIDsKK+mLvOiJsiA8IGhhZ2FuZWlyb1wgOwor5rOo5bCE5ZmoIDwgY2h1dXNoYWtpXCA7CivmiZXmmoEgPCBmdXRzdWd5b3VcIDsKK+WPuOazleaoqSA8IHNoaWhvdWtlblwgOwor6Jmr6J67IDwgbXVzaGlrZXJhXCA7CivmraPmlLvms5UgPCBzZWlrb3Vob3VcIDsKK+aJi+aLjeWtkCA8IHRlYnlvdXNoaVwgOwor56S+5Lya6Z2iIDwgc2hha2FpbWVuXCA7CivosaHnmq7nl4UgPCB6b3VoaWJ5b3VcIDsKK+emgeWPjeiogCA8IGtpbmhhbmdlblwgOwor54Sh5Y+M56qTIDwgbXVzb3VtYWRvXCA7CivmmYLplpPlibIgPCBqaWthbndhcmlcIDsKK+eUqOW/g+ajkiA8IHlvdWppbmJvdVwgOwor5YaN5oSf5p+TIDwgc2Fpa2Fuc2VuXCA7Civmr5voo73lk4EgPCBtb3VzZWloaW5cIDsKK+S6jOW6puS4ieW6piA8IG5pZG9zYW5kb1wgOwor6auY56WW6aCt5be+IDwga29zb3p1a2luXCA7CivmoLzntI3luqsgPCBrYWt1bm91a29cIDsKK+e3j+e0ouW8lSA8IHNvdXNha3VpblwgOwor5LqI5a+p5bu3IDwgeW9zaGludGVpXCA7CivojLblsYvphZIgPCBjaGF5YXpha2VcIDsKK+Wbm+WIhuWGhiA8IHNoaWJ1bicnZW5cIDsKK+S9l+S9j+WxhSA8IHdhYml6dW1haVwgOwor54mH5omL5qG2IDwga2F0YXRlb2tlXCA7CivlibXliIrlj7cgPCBzb3VrYW5nb3VcIDsKK+Wbm+WIhuWFrSA8IHNoaWJ1cm9rdVwgOwor56ul5q2MIDwgd2FyYWJldXRhXCA7CivpmLLmvZzntrIgPCBib3VzZW5tb3VcIDsKK+aJk+aTsiA8IGNob3VjaGFrdVwgOwor5ZCN5Yi65YikIDwgbWVpc2hpYmFuXCA7CivmsrPnq6Xlt7sgPCBrYXBwYW1ha2lcIDsKK+WLsuS4gOetiSA8IGt1bicnaXR0b3VcIDsKK+WPjeeJqeWxiyA8IHRhbm1vbm95YVwgOwor5LqI5YKZ6YOo5ZOBIDwgeW9iaWJ1aGluXCA7CivkupLorbLnmoQgPCBnb2pvdXRla2lcIDsKK+S4lueVjOeahCA8IHNla2FpdGVraVwgOwor5b6h6L+35oORIDwgZ29tZWl3YWt1XCA7CivkuInpg6jkvZwgPCBzYW5idXNha3VcIDsKK+a0u+mHjyA8IGthdHN1cnlvdVwgOwor5q2j6Z2i5ZuzIDwgc2hvdW1lbnp1XCA7CivooajlhbfluKsgPCBoeW91Z3VzaGlcIDsKK+S4jemBqeS7uyA8IGZ1dGVraW5pblwgOwor57WM5LyB5bqBIDwga2Vpa2ljaG91XCA7CivpgYvli5XpoJggPCB1bmRvdXJ5b3VcIDsKK+WFiOiIrOadpSA8IHNlbnBhbnJhaVwgOwor5a6a5Yag6KmeIDwgdGVpa2Fuc2hpXCA7Civoh6rlt7HmibnliKQgPCBqaWtvaGloYW5cIDsKK+aOpeWwvui+niA8IHNldHN1YmlqaVwgOwor5rC054Sh5pyIIDwgbWluYWR6dWtpXCA7Civpp5DlnKjlk6EgPCBjaHV1emFpaW5cIDsKK+WZtOWHuiA8IGZ1bnNodXRzdVwgOwor5riL55quIDwgc2hpYnVrYXdhXCA7CivovLjlsL/nrqEgPCB5dW55b3VrYW5cIDsKK+iXgemdtCA8IHdhcmFndXRzdVwgOwor5Zu96Ziy6LK7IDwga29rdWJvdWhpXCA7Civkvo3lvpPplbcgPCBqaWp1dWNob3VcIDsKK+mOluaoiyA8IGt1c2FyaXRvaVwgOwor5rS76Lu4IDwga2F0c3VqaWt1XCA7Civmrrrpoqjmma8gPCBzYXBwdXVrZWlcIDsKK+S4reaUr+mCoyA8IG5ha2FzaGluYVwgOwor6Kqk5oy/5YWlIDwgZ29zb3VueXV1XCA7CivmraPmlZnmjoggPCBzZWlreW91anVcIDsKK+S8keeBq+WxsSA8IGt5dXVrYXphblwgOwor5a2Q5a6I5q2MIDwga29tb3JpdXRhXCA7CivmsbrlrprnqL8gPCBrZXR0ZWlrb3VcIDsKK+mYsueBq+WjgSA8IGJvdWthaGVraVwgOwor5rm/5p2/IDwgc2hpdHN1YmFuXCA7Civmta7ooosgPCB1a2lidWt1cm9cIDsKK+WPsOa5vuS6uiA8IHRhaXdhbmppblwgOwor5rS76LqNIDwga2F0c3V5YWt1XCA7Civml6Xnq6Dml5cgPCBuaXNzaG91a2lcIDsKK+mDqOmaiumVtyA8IGJ1dGFpY2hvdVwgOwor5b6h55yf5b2xIDwgZ29zaGluJydlaVwgOwor6Jmr6IW5IDwgbXVzaGliYXJhXCA7Civlh53lm7rngrkgPCBneW91a290ZW5cIDsKK+aUr+W6l+e2siA8IHNoaXRlbm1vdVwgOwor5pWw6KGo56S6IDwgc3V1aHlvdWppXCA7CivpoqjlkJHoqIggPCBmdXVrb3VrZWlcIDsKK+ibjeWFieadvyA8IGtlaWtvdWJhblwgOwor5paw6IGe6IiXIDwgc2hpbmJ1bmhvXCA7Civopb/ljZfopb8gPCBzZWluYW5zZWlcIDsKK+mBv+mbt+mHnSA8IGhpcmFpc2hpblwgOwor542F5a2Q6IieIDwgc2hpc2hpbWFpXCA7Civku7vmnJ/kuK0gPCBuaW5raWNodXVcIDsKK+aWuemdoumaiiA8IGhvdW1lbnRhaVwgOwor6aKo6Yi06I2JIDwgZnV1cmluc291XCA7Civmm7Lni6zmpb0gPCBreW9rdWdvbWFcIDsKK+ecn+WQkeazlSA8IG1ha2tvdWhvdVwgOwor5ZWG6Ii55peXIDwgc2hvdXNlbmtpXCA7CivpvKDoibIgPCBuZXp1bWlpcm9cIDsKK+azpemdtCA8IGRvcm9ndXRzdVwgOwor56CU5L+u5ZOhIDwga2Vuc2h1dWluXCA7CivoqZXliKToqJggPCBoeW91YmFua2lcIDsKK+aZrumAmuS+vyA8IGZ1dHN1dWJpblwgOwor5Ymv55+l5LqLIDwgZnVrdWNoaWppXCA7Civmr43pm4blm6MgPCBib3NodXVkYW5cIDsKK+S4ieWGoOeOiyA8IHNhbmthbicnb3VcIDsKK+aBi+aEm+imsyA8IHJlbicnYWlrYW5cIDsKK+ethuWiqCA8IGhpdHN1Ym9rdVwgOwor6Yed6bC7IDwgaGFyaXVuYWdpXCA7CivpvLvntrEgPCBoYW5hZHp1bmFcIDsKK+WcsOW9ueaoqSA8IGNoaWVraWtlblwgOwor562G5aGaIDwgZnVkZWR6dWthXCA7Civmma7pgJrkurogPCBmdXRzdXVqaW5cIDsKK+a7neWjuiA8IHRha2l0c3Vib1wgOwor5YaN5Y2U6K2wIDwgc2Fpa3lvdWtpXCA7Civku6Pota3oibIgPCB0YWlzaGFpcm9cIDsKK+aOpeWwvuiqniA8IHNldHN1Ymlnb1wgOwor5YqH5L2c5a62IDwgZ2VraXNha2thXCA7Civph43miKbou4ogPCBqdXVzZW5zaGFcIDsKK+mfs+alvemaiiA8IG9uZ2FrdXRhaVwgOwor5ZGK6YGUIDwga29rdXRhdHN1XCA7Civlho3npoHmraIgPCBzYWlraW5zaGlcIDsKK+eHu+iSuOWJpCA8IGt1bmpvdXphaVwgOwor5rSL6KOB5birIDwgeW91c2Fpc2hpXCA7CivnnJ/mraPpnaIgPCBtYXNob3VtZW5cIDsKK+a8j+WHuiA8IHJvdXNodXRzdVwgOwor562G5ZynIDwgaGl0c3VhdHN1XCA7CivmnIjntYzliY0gPCBnZWtrZWltYWVcIDsKK+eqrualtSA8IGt5dXVreW9rdVwgOwor5L2O5bGx5bivIDwgdGVpemFudGFpXCA7CivlirHmjK/lmaggPCByZWlzaGlua2lcIDsKK+mHkemvsSA8IGtpbnNoYWNoaVwgOwor6Iux6ZuE55qEIDwgZWl5dXV0ZWtpXCA7CivoqJjogIXluK0gPCBraXNoYXNla2lcIDsKK+WBpeW6t+iAhSA8IGtlbmtvdXNoYVwgOwor6IKl5rqA55eHIDwgaGltYW5zaG91XCA7CivmnIDlpKflgKQgPCBzYWlkYWljaGlcIDsKK+ioiOeUu+ahiCA8IGtlaWtha3VhblwgOwor6I+v5Y6z5a6XIDwga2Vnb25zaHV1XCA7CivkuLvopoHngrkgPCBzaHV5b3V0ZW5cIDsKK+WPo+mrrSA8IGt1Y2hpaGlnZVwgOwor6Jmr57GgIDwgbXVzaGlrYWdvXCA7CivmtYHooYAgPCByeXV1a2V0c3VcIDsKK+aGkeeJqSA8IHRzdWtpbW9ub1wgOwor56mN546HIDwgc2VraXJpdHN1XCA7CivkvJrlk6HoqLwgPCBrYWlpbnNob3VcIDsKK+eyvuiWhOWFkCA8IHNlaWhha3VqaVwgOwor5oy/5YWl5ZuzIDwgc291bnl1dXp1XCA7Civph5zpo68gPCBrYW1hbWVzaGlcIDsKK+S4geW5tOiAhSA8IHRlaW5lbnNoYVwgOwor5rex54iqIDwgZnVrYWR6dW1lXCA7Civnq7nluJsgPCBjaGlrdWhha3VcIDsKK+ebo+afu+W9uSA8IGthbnNheWFrdVwgOwor6JaE5YyW57KnIDwgdXN1Z2VzaG91XCA7Civlh7rli6TnsL8gPCBzaHVra2luYm9cIDsKK+S4reWkrue3miA8IGNodXVvdXNlblwgOwor5bGl5q205pu4IDwgcmlyZWtpc2hvXCA7Civms6Hpiq0gPCBhYnVrdXplbmlcIDsKK+mkiuWXo+WtkCA8IHlvdXNoaXNoaVwgOwor5oKq6LOqIDwgYWt1c2hpdHN1XCA7CivlpKfmtbfljp8gPCBvb3VuYWJhcmFcIDsKK+S9juS+oeagvCA8IHRlaWtha2FrdVwgOwor5Lqk6Zqb5LiKIDwga291c2Fpam91XCA7CivpurvooosgPCBhc2FidWt1cm9cIDsKK+WPguiAg+WTgSA8IHNhbmtvdWhpblwgOwor56We57WM56eRIDwgc2hpbmtlaWthXCA7CivlsI/kvZzovrIgPCBrb3Nha3Vub3VcIDsKK+iHqueUu+iHquizmyA8IGppZ2FqaXNhblwgOwor56eB5paH5pu4IDwgc2hpYnVuc2hvXCA7CivmsbrlrprniYggPCBrZXR0ZWliYW5cIDsKK+W/g+S4jeWFqCA8IHNoaW5mdXplblwgOwor5Lmz5bm85YWQIDwgbnl1dXlvdWppXCA7Civopo/liYfmm7ggPCBraXNva3VzaG9cIDsKK+a7neWPoyA8IHRha2lndWNoaVwgOwor5Yqg6Zmk5byPIDwga2Fqb3NoaWtpXCA7CivpvKDnrpcgPCBuZXp1bWl6YW5cIDsKK+a5v+W8jyA8IHNoaXNzaGlraVwgOwor5Y+45rOV5a6YIDwgc2hpaG91a2FuXCA7CivnqYDniakgPCBrb2t1bW90c3VcIDsKK+epuuWvvuWcsCA8IGt1dXRhaWNoaVwgOwor5q2j6KaW55y8IDwgc2Vpc2hpZ2FuXCA7Civml6nmhbbmiKYgPCBzb3VrZWlzZW5cIDsKK+azpemBkyA8IGRvcm9taWNoaVwgOwor5Y+k6Z20IDwgZnVydWd1dHN1XCA7CivmjpjliYrmqZ8gPCBrdXNzYWt1a2lcIDsKK+acqueiuuWumiA8IG1pa2FrdXRlaVwgOwor6auY5p625qmLIDwga291a2FreW91XCA7CivmsojprLEgPCBjaGluJyd1dHN1XCA7CivlgIvliKXljJYgPCBrb2JldHN1a2FcIDsKK+WQm+mBlCA8IGtpbWl0YWNoaVwgOwor5oy/5YWl5Y+lIDwgc291bnl1dWt1XCA7Civpt7LpvLsgPCB3YXNoaWJhbmFcIDsKK+aKmOS8jyA8IHNoYWt1YnVrdVwgOwor6byg56m0IDwgbmV6dW1pYW5hXCA7Civmu5Hlj7AgPCBzdWJlcmlkYWlcIDsKK+aUv+aoqeWFmiA8IHNlaWtlbnRvdVwgOwor5bCE5Yip5b+DIDwgc2hhcmlzaGluXCA7Civnq5zlt7sgPCB0YXRzdW1ha2lcIDsKK+mHo+mQmCA8IHRzdXJpZ2FuZVwgOwor55uj5a+f5Yy7IDwga2Fuc2F0c3VpXCA7CivpgZPljJbmlrkgPCBkb3VrZWdhdGFcIDsKK+WNiuS6jOmHjSA8IGhhbicnbmlqdXVcIDsKK+emgeayu+eUoyA8IGtpbmNoaXNhblwgOwor6aaW5L2N5omT6ICFIDwgc2h1aWRhc2hhXCA7CivljZjoqp7pm4YgPCB0YW5nb3NodXVcIDsKK+eUqOawtOWcsCA8IHlvdXN1aWlrZVwgOwor6LuK6auY55+tIDwgc2hha291dGFuXCA7Civov5HmtbfprZogPCBraW5rYWlneW9cIDsKK+acqOmHkeWcnyA8IG1va3VraW5kb1wgOwor5oyB57aa5oCnIDwgaml6b2t1c2VpXCA7CivlkI3lt6XlpKcgPCBtZWlrb3VkYWlcIDsKK+aUr+mFjeS6uiA8IHNoaWhhaW5pblwgOwor5bm55LqL6ZW3IDwga2FuamljaG91XCA7CivplbfmsLTot68gPCBjaG91c3Vpcm9cIDsKK+W5s+WFmuWToSA8IGhpcmF0b3VpblwgOwor5b6q55Kw57eaIDwganVua2Fuc2VuXCA7CivkuIvliYvkuIogPCBnZWtva3Vqb3VcIDsKK+a6gOWupCA8IG1hbnNoaXRzdVwgOwor5LiK5bGk6aKoIDwgam91c291ZnV1XCA7CivlnKflu7bpi7wgPCBhdHN1ZW5rb3VcIDsKK+WboOaenOW/nOWgsSA8IGluZ2FvdWhvdVwgOwor5rqW5pWZ5ZOhIDwganVua3lvdWluXCA7Civpt6bpt68gPCBtaXNvc2F6YWlcIDsKK+WHueecvOmPoSA8IG91Z2Fua3lvdVwgOwor54mp5L6h6auYIDwgYnVra2FkYWthXCA7Civoqpjmi5DnvaogPCB5dXVrYWl6YWlcIDsKK+err+WlsyA8IGhhc2hpdGFtZVwgOwor5b6q55Kw57O7IDwganVua2Fua2VpXCA7Civph6Pph50gPCB0c3VyaWJhcmlcIDsKK+a0vueUn+eahCA8IGhhc2VpdGVraVwgOwor57Sg5Y+N5b+cIDwgc29oYW4nJ25vdVwgOwor5Zyo6YO36ICFIDwgemFpZ291c2hhXCA7Civph5HpjpYgPCBraW5ndXNhcmlcIDsKK+WMl+a1t+mBkyA8IGhva2thaWRvdVwgOwor5LiL5aWz5LiL55S3IDwgZ2Vqb2dlbmFuXCA7Civmnpfmqo7nl4UgPCByaW5nb2J5b3VcIDsKK+iXpOiUkyA8IGZ1amlkenVydVwgOwor6Jas5LqL5rOVIDwgeWFrdWppaG91XCA7Civnn63mr5vnqK4gPCB0YW5tb3VzaHVcIDsKK+amguW/teirliA8IGdhaW5lbnJvblwgOwor6Ymb6ImyIDwgbmFtYXJpaXJvXCA7CivpgZPlvrPlrrYgPCBkb3V0b2t1a2FcIDsKK+WPguS4juWumCA8IHNhbicneW9rYW5cIDsKK+a4i+afvyA8IHNoaWJ1Z2FraVwgOwor5pyA57WC5qGIIDwgc2Fpc2h1dWFuXCA7CivkuJbnlYzmlrAgPCBzZWthaXNoaW5cIDsKK+WPguiAg+S6uiA8IHNhbmtvdW5pblwgOwor5bGL5Y+w6aqoIDwgeWF0YWlib25lXCA7CivlpKfmrZPov44gPCBkYWlrYW5nZWlcIDsKK+S4iuWxpOmajiA8IGpvdXNvdWthaVwgOwor5LiA5YiH57WMIDwgaXNzYWlreW91XCA7Civlj6TpiYQgPCBmdXJ1dGV0c3VcIDsKK+WGjemFjee9riA8IHNhaWhhaWNoaVwgOwor6IKM6KWm6KKiIDwgaGFkYWp1YmFuXCA7Civlha3op5LlvaIgPCByb2trYWtrZWlcIDsKK+aWsOeUn+WFkCA8IHNoaW5zZWlqaVwgOwor6Yi06JmrIDwgc3V6dW11c2hpXCA7Civphpzmpa3lqaYgPCBzaHVneW91ZnVcIDsKK+WQjOizqiA8IGRvdXNoaXRzdVwgOwor6KOB5Yik5qipIDwgc2FpYmFua2VuXCA7CivlpKfnpZ7lrq4gPCBkYWlqaW5ndXVcIDsKK+ato+aVmeWToSA8IHNlaWt5b3VpblwgOwor5Y+j6YeRIDwga3VjaGlnYW5lXCA7CivnqoHmkoMgPCB0b3RzdWdla2lcIDsKK+aCquaIr+edgCA8IGl0YXp1cmFnaVwgOwor5pi86KGM54GvIDwgaGlydWFuZG9uXCA7CivlnLDlubPnt5ogPCBjaGloZWlzZW5cIDsKK+WuiealveakheWtkCA8IGFucmFrdWlzdVwgOwor6YWN6Zu757eaIDwgaGFpZGVuc2VuXCA7Civnmb3poK3nv4EgPCBoYWt1dG91b3VcIDsKK+eZuuWwhOWPsCA8IGhhc3NoYWRhaVwgOwor6buS57iBIDwga3Vyb2J1Y2hpXCA7CivkuLvpmaPlnLAgPCBzaHVqaW5jaGlcIDsKK+aEn+aDs+aWhyA8IGthbnNvdWJ1blwgOwor5raI5YyW57O7IDwgc2hvdWtha2VpXCA7Civpjq7lnKcgPCBjaGluJydhdHN1XCA7CivkuLvoprPmgKcgPCBzaHVrYW5zZWlcIDsKK+Wkp+azleW7tyA8IGRhaWhvdXRlaVwgOwor5pyA57WC5pelIDwgc2Fpc2h1dWJpXCA7CivmsbrlrprmqKkgPCBrZXR0ZWlrZW5cIDsKK+WWquWksSA8IHNvdXNoaXRzdVwgOwor5YWO5bCP5bGLIDwgdXNhZ2lnb3lhXCA7CivlpJrnpZ7oq5YgPCB0YXNoaW5yb25cIDsKK+WnlOWToeS7mOiolyA8IGlpbmZ1dGFrdVwgOwor5b6M5Y2K55SfIDwga291aGFuc2VpXCA7CivnqK7msrkgPCB0YW5lYWJ1cmFcIDsKK+Wil+iogueJiCA8IHpvdXRlaWJhblwgOwor5omA5Zyo5ZywIDwgc2hvemFpY2hpXCA7Civngb3lrrPlnLAgPCBzYWlnYWljaGlcIDsKK+a2iOWMlueuoSA8IHNob3VrYWthblwgOwor5bm05Luj6aCGIDwgbmVuZGFpanVuXCA7CivnpZ7ntYzngo4gPCBzaGlua2VpZW5cIDsKK+WlieS7leiAhSA8IGhvdXNoaXNoYVwgOwor5ZSQ5quDIDwga2FyYWJpdHN1XCA7Civlho3lj5fmtbggPCBzYWlqdXNoaW5cIDsKK+WPo+i7vSA8IGt1Y2hpZ2FydVwgOwor56qu5bGIIDwga3l1dWt1dHN1XCA7CivkuojlgpnpgYvli5UgPCB5b2JpdW5kb3VcIDsKK+S6jOS6uuWJjSA8IGZ1dGFyaW1hZVwgOwor5a+M5aOr5aO6IDwgZnVqaXRzdWJvXCA7CivpgbrnlKPnrqHnkIYgPCBpc2Fua2FucmlcIDsKK+eZvuiyqOW6lyA8IGh5YWtrYXRlblwgOwor5qiq5pat5bmVIDwgb3VkYW5tYWt1XCA7CivkuozkurrliIYgPCBmdXRhcmlidW5cIDsKK+e0jeeojuiAhSA8IG5vdXplaXNoYVwgOwor6YW45oCn57SZIDwgc2Fuc2Vpc2hpXCA7Civlt6blj7Pou7ggPCBzYXl1dWppa3VcIDsKK+WkqeawtOahtiA8IHRlbnN1aW9rZVwgOwor6buS56u5IDwga3Vyb2NoaWt1XCA7Civlj4vpgZQgPCB0b21vZGFjaGlcIDsKK+WTgeeJqSA8IHNoaW5hbW9ub1wgOwor6LK06YeR5bGeIDwga2lraW56b2t1XCA7Civms6LnvoXonJwgPCBoYXJhbWl0c3VcIDsKK+eLqeeMn+acnyA8IHNodXJ5b3VraVwgOwor5paH5rOV5pu4IDwgYnVucG91c2hvXCA7Civnq7nlhYkgPCB0YWtlbWl0c3VcIDsKK+iXgeiLniA8IHdhcmFkenV0b1wgOwor5Y2g6aCY5LiLIDwgc2VucnlvdWthXCA7Civnh4PnhLzngokgPCBuZW5zaG91cm9cIDsKK+WPpOethuWutiA8IGtvaGl0c3VrYVwgOwor6Ziy6KGb5bqBIDwgYm91ZWljaG91XCA7CivlpKfnpa3lj7ggPCBkYWlzYWlzaGlcIDsKK+WUkOadviA8IGthcmFtYXRzdVwgOwor6Zub572M57KfIDwgaGluYWdlc2hpXCA7CivlhajlpKnlgJkgPCB6ZW50ZW5rb3VcIDsKK+i2heefreazoiA8IGNob3V0YW5wYVwgOwor5pS+5bCE6IO9IDwgaG91c2hhbm91XCA7CivliY3np5HogIUgPCB6ZW5rYW1vbm9cIDsKK+mVt+mHjuecjCA8IG5hZ2Fub2tlblwgOwor55+l5oG154axIDwgY2hpZW5ldHN1XCA7CivljIXoo4XntJkgPCBob3Vzb3VzaGlcIDsKK+S6ieitsOihjOeCuiA8IHNvdWdpa291aVwgOwor57Gz55Sj5ZywIDwgYmVpc2FuY2hpXCA7Civlhavop5LlvaIgPCBoYWtrYWtrZWlcIDsKK+S6lOWkp+a0siA8IGdvZGFpc2h1dVwgOwor5paw5a2m5pyfIDwgc2hpbmdha2tpXCA7CivpurvlqYbosYbohZAgPCBtxIFib2RvdWZ1XCA7CivphY3pm7vnm6QgPCBoYWlkZW5iYW5cIDsKK+iLseaWh+WtpiA8IGVpYnVuZ2FrdVwgOwor6JqK5p+xIDwga2FiYXNoaXJhXCA7CivlvqHlhYTlvJ8gPCBnb2t5b3VkYWlcIDsKK+ijgeWIpOaJgCA8IHNhaWJhbnNob1wgOwor5Y+C6Zmi6YG4IDwgc2FuJydpbnNlblwgOwor56u55LiyIDwgdGFrZWd1c2hpXCA7Civou43kurrpoqggPCBndW5qaW5mdXVcIDsKK+eEoeW+l+eCuSA8IG11dG9rdXRlblwgOwor6KuW55CG55qEIDwgcm9ucml0ZWtpXCA7Civpu5Lnmb0gPCBrb2t1Ynlha3VcIDsKK+WKg+acn+eahCA8IGtha2tpdGVraVwgOwor56We572wIDwgc2hpbmJhdHN1XCA7CivmsrnonYkgPCBhYnVyYXplbWlcIDsKK+S4ieecgeWggiA8IHNhbnNlaWRvdVwgOwor5Y+W6KqsIDwgdG9yaXNldHN1XCA7CivomZrlvLHlhZAgPCBreW9qYWt1amlcIDsKK+aWh+WMluaYoOeUuyA8IGJ1bmthZWlnYVwgOwor5b2T5LqL5Zu9IDwgdG91amlrb2t1XCA7Civoq5bkuonogIUgPCByb25zb3VzaGFcIDsKK+aUvuWwhOe3miA8IGhvdXNoYXNlblwgOwor6Ju45aO8IDwgdGFrb3RzdWJvXCA7CivltIfmi53ogIUgPCBzdXVoYWlzaGFcIDsKK+WBpeW6t+azlSA8IGtlbmtvdWhvdVwgOwor5oCq5paH5pu4IDwga2FpYnVuc2hvXCA7CivpgK7mjZXmrbQgPCB0YWlob3Jla2lcIDsKK+ethumgreiAhSA8IGhpdHRvdXNoYVwgOwor5rmn5Ye6IDwgeW91c2h1dHN1XCA7CivnqbrlrqQgPCBrdXVzaGl0c3VcIDsKK+S5vueUn+WnnCA8IGthbnNob3VnYVwgOwor55Sf5q6L6ICFIDwgc2VpemFuc2hhXCA7Civmt6HmsLTprZogPCB0YW5zdWlneW9cIDsKK+i0iOetlOWTgSA8IHpvdXRvdWhpblwgOwor5Lqk5o+b5omLIDwga291a2Fuc2h1XCA7Civom43lhYnkvZMgPCBrZWlrb3V0YWlcIDsKK+awt+eCueS4iyA8IGh5b3V0ZW5rYVwgOwor6KqY5ouQ54qvIDwgeXV1a2FpaGFuXCA7CivnhY7njonlrZAgPCBpcml0YW1hZ29cIDsKK+iIiOS/oeaJgCA8IGtvdXNoaW5qb1wgOwor55SY5ZGz5paZIDwga2FubWlyeW91XCA7CivoqabpqJPntJkgPCBzaGlrZW5zaGlcIDsKK+iCieilpuiioiA8IG5pa3VqdWJhblwgOwor55uj5a6I5Lq6IDwga2Fuc2h1bmluXCA7CivlopflpKflj7cgPCB6b3VkYWlnb3VcIDsKK+a7kei1sOi8qiA8IGthc3NvdXJpblwgOwor5YaN5Ym16YCgIDwgc2Fpc291em91XCA7CivmiLjnsY3ms5UgPCBrb3Nla2lob3VcIDsKK+mMmOW9oiA8IHRzdW11Z2F0YVwgOwor6I2S54mp5bGLIDwgYXJhbW9ub3lhXCA7CivkuK3opb/pg6ggPCBjaHV1c2VpYnVcIDsKK+iHquWLleeahCA8IGppZG91dGVraVwgOwor5YCf5a625Lq6IDwgc2hha2thbmluXCA7Civms5Xlrabpg6ggPCBob3VnYWt1YnVcIDsKK+i7jeizh+mHkSA8IGd1bnNoaWtpblwgOwor5paH5rOV5oCnIDwgYnVucG91c2VpXCA7CivovrLlpKvnl4cgPCBub3VmdXNob3VcIDsKK+adkOaWmeiyuyA8IHphaXJ5b3VoaVwgOwor5YKs5raZ6YqDIDwgc2FpcnVpanV1XCA7CivlpInmj5vlrZAgPCBoZW5rYW5zaGlcIDsKK+adkOacqOWxiyA8IHphaW1va3V5YVwgOwor6LKn56qu5YyWIDwgaGlua3l1dWthXCA7Civml6nlkIjngrkgPCBoYXlhZ2F0ZW5cIDsKK+i7iummrOizgyA8IHNoYWJhY2hpblwgOwor56uc6aiO5YW1IDwgcnl1dWtpaGVpXCA7CivlnJ/lj7Dnn7MgPCBkb2RhaWlzaGlcIDsKK+ippumok+euoSA8IHNoaWtlbmthblwgOwor5aSn5Y+N5a++IDwgZGFpaGFudGFpXCA7CivpnZ7lm73msJEgPCBoaWtva3VtaW5cIDsKK+Wwj+ixhumxkiA8IGF6dWtpbWFzdVwgOwor6I6i6LGM6LGGIDwgc2F5YWVuZG91XCA7CivkuKHmm7/mqZ8gPCByeW91Z2Fla2lcIDsKK+e2v+eBq+iWrCA8IG1lbmtheWFrdVwgOwor5Lq65rCR6LuNIDwgamlubWluZ3VuXCA7CivmrKDli6TogIUgPCBrZWtraW5zaGFcIDsKK+Wwj+S9nOexsyA8IGtvc2FrdW1haVwgOwor5rOl5p2/5bKpIDwgZGVpYmFuZ2FuXCA7Civmk6zpnanntJkgPCBnaWtha3VzaGlcIDsKK+iytOmHjeWTgSA8IGtpY2hvdWhpblwgOwor54Gr5bGx56SrIDwga2F6YW5yZWtpXCA7CivpoZTlhpnnnJ8gPCBrYW9qYXNoaW5cIDsKK+WFsea8lOiAhSA8IGt5b3VlbnNoYVwgOwor5pWR6K2354+tIDwga3l1dWdvaGFuXCA7Civph5HolJMgPCBrYW5lZHp1cnVcIDsKK+WGjeW+queSsCA8IHNhaWp1bmthblwgOwor5oSP5ZGz5YaF5a65IDwgaW1pbmFpeW91XCA7CivojbvmsZ/nr4AgPCBvZ2llYnVzaGlcIDsKK+mbhuWFieWZqCA8IHNodXVrb3VraVwgOwor5LiA6YOo5YiGIDwgaWNoaWJ1YnVuXCA7Civph6PoiLkgPCB0c3VyaWJ1bmVcIDsKK+ijheeUsui7iiA8IHNvdWtvdXNoYVwgOwor5paw5LiW57SAIDwgc2hpbnNlaWtpXCA7CivkuojlgpnliKTkuosgPCB5b2JpaGFuamlcIDsKK+mJoueJqSA8IGhhY2hpbW9ub1wgOwor5rWa5rirIDwgc2h1bnNldHN1XCA7Civmt5HlvrMgPCBzaHVrdXRva3VcIDsKK+elneemjyA8IHNodWt1ZnVrdVwgOwor6KOB5Yik5a6YIDwgc2FpYmFua2FuXCA7Civlh7rli6Tml6UgPCBzaHVra2luYmlcIDsKK+mAgeS/oeapnyA8IHNvdXNoaW5raVwgOwor5rKh6JC9IDwgYm90c3VyYWt1XCA7CivnqpPlj6MgPCBtYWRvZ3VjaGlcIDsKK+mbkeWxheWcsCA8IHpha2t5b2NoaVwgOwor6Iux5pWw5Zu9IDwgZWlzdXVrb2t1XCA7Civkv53nrqHmlpkgPCBob2thbnJ5b3VcIDsKK+atpuWutuaZguS7oyA8IGJ1a2VqaWRhaVwgOwor5Y2K6LK055+zIDwgaGFua2lzZWtpXCA7Civou43nlKjmqZ8gPCBndW4nJ3lvdWtpXCA7Civlk4Hmn4QgPCBzaGluYWdhcmFcIDsKK+WMu+eZgumBjuiqpCA8IGlyeW91a2Fnb1wgOwor6JmO6JC956ybIDwgbW9nYXJpYnVlXCA7CivnlJ/pgoTogIUgPCBzZWlrYW5zaGFcIDsKK+aHh+irh+S8miA8IGtvbmRhbmthaVwgOwor5pyq5YWs6KGoIDwgbWlrb3VoeW91XCA7Civopb/mtIvkurogPCBzZWl5b3VqaW5cIDsKK+eUsOiIjuiAhSA8IGluYWthbW9ub1wgOwor5ZC4552AIDwga3l1dWNoYWt1XCA7CivmtojljJbmtrIgPCBzaG91a2Fla2lcIDsKK+atpuWutuaUv+ayuyA8IGJ1a2VzZWlqaVwgOwor5aWz546L6Zmb5LiLIDwgam9vdWhlaWthXCA7CivnqbTlsYXkurogPCBrZWtreW9qaW5cIDsKK+WmqOalreWToSA8IGJvdWd5b3VpblwgOwor6aKo5ZGC5pW3IDwgZnVyb3NoaWtpXCA7Civlj6PohIcgPCBrdWNoaXdha2lcIDsKK+S9leabnOaXpSA8IG5hbicneW91YmlcIDsKK+itpuaIkue3miA8IGtlaWthaXNlblwgOwor56K66KqsIDwga2FrdXNldHN1XCA7CivkuqTmj5vlrKIgPCBrb3VrYW5qb3VcIDsKK+Wkp+mBk+iKuCA8IGRhaWRvdWdlaVwgOwor5YGc5q2i57eaIDwgdGVpc2hpc2VuXCA7CivoloTnt5EgPCB1c3VtaWRvcmlcIDsKK+WTgeaVsCA8IHNoaW5ha2F6dVwgOwor5YuJ5by35a62IDwgYmVua3lvdWthXCA7CivmtarmvKvnmoQgPCByb21hbnRla2lcIDsKK+WLp+S4lue4kiA8IGthbnpleW9yaVwgOwor56u557Sw5belIDwgdGFrZXphaWt1XCA7CivnlKPljbXlj6MgPCBzYW5yYW5rb3VcIDsKK+aEn+WLleipniA8IGthbmRvdXNoaVwgOwor5rC05Zyn5qmfIDwgc3VpYXRzdWtpXCA7Civpn7Pmpb3npa0gPCBvbmdha3VzYWlcIDsKK+m5v+eariA8IHNoaWthZ2F3YVwgOwor6buZ5q66IDwgbW9rdXNhdHN1XCA7Civkurrmg4XmnKwgPCBuaW5qb3Vib25cIDsKK+eah+mciuauvyA8IGtvdXJlaWRlblwgOwor5oGQ57iuIDwga3lvdXNodWt1XCA7Civkvb/lkb3ogIUgPCBzaGltZWlzaGFcIDsKK+eqgeWHuiA8IHRvc3NodXRzdVwgOwor5Luj55So5ZOBIDwgZGFpeW91aGluXCA7CivokYnoj5zpoZ4gPCB5b3VzYWlydWlcIDsKK+mDvemiqCA8IG1peWFrb2Z1dVwgOwor5rK557OfIDwgYWJ1cmFrYXN1XCA7CivlhpnnnJ/mqZ8gPCBzaGFzaGlua2lcIDsKK+awtOizqiA8IHN1aXNoaXRzdVwgOwor55S35LyK6YGUIDwgb3Rva29kYXRlXCA7CivlhbXnq5nnt5ogPCBoZWl0YW5zZW5cIDsKK+W4r+mbu+S9kyA8IHRhaWRlbnRhaVwgOwor56qB5YWlIDwgdG90c3VueXV1XCA7CivmlofljJbnmoQgPCBidW5rYXRla2lcIDsKK+acqueZuuihqCA8IG1paGFwcHlvdVwgOwor5YWI5L2P5rCRIDwgc2VuanV1bWluXCA7CivpgJTkuIrlm70gPCB0b2pvdWtva3VcIDsKK+Wkp+awl+axmuafkyA8IHRhaWtpb3NlblwgOwor5Y2K6Z+z6ZqOIDwgaGFuJydvbmthaVwgOwor55m95pyo5bGLIDwgc2hpcm9raXlhXCA7Civku5Xmp5jmm7ggPCBzaGl5b3VzaG9cIDsKK+awkeS6i+eahCA8IG1pbmppdGVraVwgOwor5oiQ5bGk5ZyPIDwgc2Vpc291a2VuXCA7CivokrjmsJflnKcgPCBqb3VraWF0c3VcIDsKK+S4oeabv+aJgCA8IHJ5b3VnYWVqb1wgOwor56ig5a+GIDwgY2hvdW1pdHN1XCA7Civpu5LmqKsgPCBrdXJvZ2FzaGlcIDsKK+a0u+attCA8IGthdHN1cmVraVwgOwor5b6M5Y2K5oimIDwga291aGFuc2VuXCA7Civlj6PntIUgPCBrdWNoaWJlbmlcIDsKK+WPs+erryA8IG1pZ2loYXNoaVwgOwor5bm95a+C5ZGzIDwgeXV1amFrdW1pXCA7CivluJ3njovlraYgPCB0ZWlvdWdha3VcIDsKK+iyr+awtOaxoCA8IGNob3N1aWNoaVwgOwor6Jas55O2IDwga3VzdXJpYmluXCA7Civlk7LlraYgPCB0ZXRzdWdha3VcIDsKK+aWsOS4lueVjCA8IHNoaW5zZWthaVwgOwor5ZG95Luk5rOVIDwgbWVpcmVpaG91XCA7Civln7rnpI7lt6XkuosgPCBraXNva291amlcIDsKK+ePvuWDj+a2siA8IGdlbnpvdWVraVwgOwor6Kaz6Kan6LuKIDwga2FucmFuc2hhXCA7CivkvJrnpL7okawgPCBrYWlzaGFzb3VcIDsKK+mJhOa4iyA8IGthbmFzaGlidVwgOwor56aB6YWS5rOVIDwga2luc2h1aG91XCA7CivohLPohpzngo4gPCBub3VtYWt1ZW5cIDsKK+WPjue4riA8IHNodXVzaHVrdVwgOwor5Y+w56ekIDwgZGFpYmFrYXJpXCA7Civmlofpg6jnnIEgPCBtb25idXNob3VcIDsKK+i7jeS6i+mAmiA8IGd1bmppdHN1dVwgOwor6ISz6IWr55iNIDwgbm91c2h1eW91XCA7CivkuJbnlYzkuIAgPCBzZWthaWljaGlcIDsKK+W/heiqrSA8IGhpdHN1ZG9rdVwgOwor5Y2a6K2YIDwgaGFrdXNoaWtpXCA7Civlho3liIbphY0gPCBzYWlidW5wYWlcIDsKK+aOm+W4g+WboyA8IGtha2VidXRvblwgOwor5aSW5rSL6Ii5IDwgZ2FpeW91c2VuXCA7Civpu5Lmnb4gPCBrdXJvbWF0c3VcIDsKK+e1hOiBt+WbsyA8IHNvc2hva3V6dVwgOwor54Sh55CG5b6A55SfIDwgbXVyaW91am91XCA7CivkuqTmj5vlk4EgPCBrb3VrYW5oaW5cIDsKK+eBq+mjn+mzpSA8IGhpa3VpZG9yaVwgOwor6LKv5rC05qe9IDwgY2hvc3Vpc291XCA7CivmtbfmsLTprZogPCBrYWlzdWlneW9cIDsKK+eyvumAsuaXpSA8IHNob3VqaW5iaVwgOwor5Y2T6K2YIDwgdGFrdXNoaWtpXCA7CivolqzniakgPCB5YWt1YnV0c3VcIDsKK+S4ieiJsuaXlyA8IHNhbnNob2traVwgOwor6YCD5Lqh6ICFIDwgdG91Ym91c2hhXCA7CivpgZPlhbfnrrEgPCBkb3VndWJha29cIDsKK+WHuuW7t+aXpSA8IHNodXR0ZWliaVwgOwor55S75a2m57SZIDwgZ2FnYWt1c2hpXCA7CivmsLfonZUgPCBoeW91c2hva3VcIDsKK+iyr+iUteaJgCA8IGNob3pvdXNob1wgOwor5p2x5rW36YGTIDwgdG91a2FpZG91XCA7CivkuqTmj5vlj7AgPCBrb3VrYW5kYWlcIDsKK+aIpuaZguS4rSA8IHNlbmppY2h1dVwgOwor5Y2T6KqsIDwgdGFrdXNldHN1XCA7Civpu5LmmJ8gPCBrdXJvYm9zaGlcIDsKK+a3t+WIhuaVsCA8IGtvbmJ1bnN1dVwgOwor55Sf55+z54GwIDwgc2Vpc2Vra2FpXCA7CivkuI3mpJzmnZ8gPCBmdWtlbnNva3VcIDsKK+Wwj+advuiPnCA8IGtvbWF0c3VuYVwgOwor6LSI5ZGI6ICFIDwgem91dGVpc2hhXCA7CivpoZ7mpoLlv7UgPCBydWlnYWluZW5cIDsKK+S7u+WkqeWggiA8IG5pbnRlbmRvdVwgOwor5Y2X5pa555SjIDwgbmFucG91c2FuXCA7CivntZDntI3ph5EgPCB5dWlub3VraW5cIDsKK+engOaKnCA8IHNodXViYXRzdVwgOwor5b+D6KGAIDwgc2hpbmtldHN1XCA7CivlpKrliIDnrYsgPCB0YWNoaXN1amlcIDsKK+awtOiZqyA8IG1penVtdXNoaVwgOwor6JST6I2JIDwgdHN1cnVrdXNhXCA7CivlvLfpo68gPCBrb3dhbWVzaGlcIDsKK+eGn+Wtl+iokyA8IGp1a3VqaWt1blwgOwor5aOw5piO5pu4IDwgc2VpbWVpc2hvXCA7CivllY/poYzngrkgPCBtb25kYWl0ZW5cIDsKK+WIhuW3peWgtCA8IGJ1bmtvdWpvdVwgOwor5a6a5bm05Yi2IDwgdGVpbmVuc2VpXCA7CivlnLDlhYPntJkgPCBqaW1vdG9zaGlcIDsKK+mgkOiol+mHkSA8IHlvdGFrdWtpblwgOwor6Ziy56m656CyIDwgYm91a3V1aG91XCA7CivpnZnlnKfmr5QgPCBzZWlhdHN1aGlcIDsKK+iRm+mkhSA8IGt1enVtb2NoaVwgOwor5Zue6aGn6YyyIDwga2Fpa29yb2t1XCA7CivptonosYYgPCB1enVyYW1hbWVcIDsKK+S4oeabv+WxiyA8IHJ5b3VnYWV5YVwgOwor5Lq65rCX6ICFIDwgbmlua2ltb25vXCA7CivkuI3oia/lk4EgPCBmdXJ5b3VoaW5cIDsKK+Wwj+S+v+aJgCA8IHNob3ViZW5qb1wgOwor5b6q55Kw5oCnIDwganVua2Fuc2VpXCA7CivllYbnlKjljJYgPCBzaG91eW91a2FcIDsKK+S6pOaPm+WGhiA8IGtvdWthbicnZW5cIDsKK+ippumok+azlSA8IHNoaWtlbmhvdVwgOwor5a2m5ZyS56WtIDwgZ2FrdWVuc2FpXCA7CivkvZXmmYLmmYLliIYgPCBpdHN1amlidW5cIDsKK+mHkeebpSA8IGthbmFkYXJhaVwgOwor5Y+j55mWIDwga3VjaGlndXNlXCA7CivnrKzlha3mhJ8gPCBkYWlyb2trYW5cIDsKK+iyp+awkeihlyA8IGhpbm1pbmdhaVwgOwor5ZG95Luk5pu4IDwgbWVpcmVpc2hvXCA7CivljYrlsI7kvZMgPCBoYW5kb3V0YWlcIDsKK+efs+mgrSA8IGlzaGlhdGFtYVwgOwor6bOl6buQIDwgdG9yaW1vY2hpXCA7Civmtpnlo7AgPCBuYW1pZGFnb2VcIDsKK+WFteWZqOW7oCA8IGhlaWtpc2hvdVwgOwor6JC96auqIDwgcmFrdWhhdHN1XCA7Civoo4HliKTkuIogPCBzYWliYW5qb3VcIDsKK+WjsuaYpeWppiA8IGJhaXNodW5wdVwgOwor5YuF6aGNIDwgY2hva3VnYWt1XCA7CivphY3pm7vmiYAgPCBoYWlkZW5zaG9cIDsKK+ekvuS6pOeVjCA8IHNoYWtvdWthaVwgOwor5YSq5Yud5peXIDwgeXV1c2hvdWtpXCA7CivmiYvlk4HluKsgPCB0ZWppbmFzaGlcIDsKK+mrhOiGnOeCjiA8IHp1aW1ha3VlblwgOwor5L+u6YGT6ZmiIDwgc2h1dWRvdWluXCA7CivljbXoibIgPCB0YW1hZ29pcm9cIDsKK+a1t+ibh+W6pyA8IHVtaWhlYml6YVwgOwor56iy5YWJIDwgaW5hYmlrYXJpXCA7Civlkb3ku6TmlocgPCBtZWlyZWlidW5cIDsKK+adsea0i+miqCA8IHRvdXlvdWZ1dVwgOwor5byf5oGv5a2QIDwgb3RvbXVzdWtvXCA7CivkupTlpKflm70gPCBnb2RhaWtva3VcIDsKK+aOpemqqOWMuyA8IHNla2tvdHN1aVwgOwor5pyb6YGg6Y+hIDwgYm91ZW5reW91XCA7CivmooXpm6jnqbogPCB0c3V5dXpvcmFcIDsKK+W3peWToeWvriA8IGtvdWlucnlvdVwgOwor54Sh6YGK55eFIDwgbXV5dXVieW91XCA7Civmrr/pgZQgPCB0b25vdGFjaGlcIDsKK+Wbvemam+WMliA8IGtva3VzYWlrYVwgOwor6ama55Ww55qEIDwga3lvdWl0ZWtpXCA7CivokL3po74gPCByYWt1c2hva3VcIDsKK+mWouadseW8gSA8IGthbnRvdWJlblwgOwor55u45LqS5L6d5a2YIDwgc291Z29pem9uXCA7CivopIflkIjoqp4gPCBmdWt1Z291Z29cIDsKK+W8mOa4iOS8miA8IGtvdXNhaWthaVwgOwor6Iez6L+R5by+IDwgc2hpa2luZGFuXCA7CivmnKzlubTluqYgPCBob24nJ25lbmRvXCA7CivmlZHorbfmiYAgPCBreXV1Z29zaG9cIDsKK+ayiOedgCA8IGNoaW5jaGFrdVwgOwor5ZGR5rCX6ICFIDwgbm9ua2ltb25vXCA7CivlsI/kvZzmqKkgPCBrb3Nha3VrZW5cIDsKK+S7o+eQhuavjSA8IGRhaXJpaGFoYVwgOwor5YiG55WM57eaIDwgYnVua2Fpc2VuXCA7Civnq6/looPmnJ8gPCBoYXpha2Fpa2lcIDsKK+iqnua6kOWtpiA8IGdvZ2VuZ2FrdVwgOwor5b+D6Zu75ZuzIDwgc2hpbmRlbnp1XCA7CivlgaXlurflnLAgPCBrZW5rb3VjaGlcIDsKK+iqnuW9meimj+WJhyA8IGdvaWtpc29rdVwgOwor5rCP5a2Q5pytIDwgdWppa29mdWRhXCA7Civoq7jllY/poYwgPCBzaG9tb25kYWlcIDsKK+WPo+WUh+acnyA8IGtvdXNoaW5raVwgOwor5bCG5qOL55ukIDwgc2hvdWdpYmFuXCA7CivnjYXlrZDllJAgPCBzaGlzaGl0b3VcIDsKK+W5s+S/oeW+kiA8IGhlaXNoaW50b1wgOwor56Wl5pyIIDwgc2hvdXRzdWtpXCA7CivlpKfmsJflnKcgPCB0YWlraWF0c3VcIDsKK+Wwhui7jeWutiA8IHNob3VndW5rZVwgOwor5Y2D5Luj57SZIDwgY2hpeW9nYW1pXCA7CivkuLvmiKboq5YgPCBzaHVzZW5yb25cIDsKK+WKo+etieeUnyA8IHJldHRvdXNlaVwgOwor5paw5a2X5L2TIDwgc2hpbmppdGFpXCA7Civlj47njocgPCBzaHV1cml0c3VcIDsKK+e0jeWTgeabuCA8IG5vdWhpbnNob1wgOwor55qH5aSq5a2QIDwga291dGFpc2hpXCA7Civnorrnq4sgPCBrYWt1cml0c3VcIDsKK+mokuaTvue9qiA8IHNvdWpvdXphaVwgOwor5Y2K5a6Y5aCxIDwgaGFua2FucG91XCA7CivlkIzkvLTogIUgPCBkb3VoYW5zaGFcIDsKK+a1t+m8oOadvyA8IG5hbWFrb2JhblwgOwor5YeG5aOr5a6YIDwganVuc2hpa2FuXCA7Civlrp/pqJPogIUgPCBqaWtrZW5zaGFcIDsKK+S7o+eQhualrSA8IGRhaXJpZ3lvdVwgOwor5LiA5qyh5YWDIDwgaWNoaWppZ2VuXCA7CivnlKjnm4rmqKkgPCB5b3Vla2lrZW5cIDsKK+S4iuiFleetiyA8IGpvdXdhbmtpblwgOwor5Y+C5pS/5qipIDwgc2Fuc2Vpa2VuXCA7Civlt6HnpLzogIUgPCBqdW5yZWlzaGFcIDsKK+Wun+mok+e+pCA8IGppa2tlbmd1blwgOwor56m65pmv5rCXIDwga2FyYWdlaWtpXCA7CivljaDogIUgPCB1cmFuYWlzaGFcIDsKK+WGmeecn+WutiA8IHNoYXNoaW5rYVwgOwor6LuK5qSF5a2QIDwga3VydW1haXN1XCA7Civmj67mr6vmlpkgPCBraWdvdXJ5b3VcIDsKK+iHquW3seW8geittyA8IGppa29iZW5nb1wgOwor6K2m5ZGK6Z+zIDwga2Vpa29rdW9uXCA7CivmlZnmjojpmaMgPCBreW91anVqaW5cIDsKK+WIneS4g+aXpSA8IHNob25hbm9rYVwgOwor5a6J5b+D5oSfIDwgYW5zaGlua2FuXCA7Civlv6Dnr4AgPCBjaHV1c2V0c3VcIDsKK+mJouW3uyA8IGhhY2hpbWFraVwgOwor5aSn5YWl6YGTIDwgb29ueXV1ZG91XCA7CivnpL7kvJrmgqogPCBzaGFrYWlha3VcIDsKK+WShOWutiA8IGhhbmFzaGlrYVwgOwor5Li76KO95ZOBIDwgc2h1c2VpaGluXCA7CivnhKHmsJflipsgPCBtdWtpcnlva3VcIDsKK+ekvuS8muaApyA8IHNoYWthaXNlaVwgOwor6ISx6ISC57a/IDwgZGFzc2hpbWVuXCA7CivmsJfosaHlj7AgPCBraXNob3VkYWlcIDsKK+WRveS7pOW9oiA8IG1laXJlaWtlaVwgOwor6KuW55CG5a2mIDwgcm9ucmlnYWt1XCA7Civlrp/kvZPoq5YgPCBqaXR0YWlyb25cIDsKK+Wwj+S8mua0viA8IHNob3VrYWloYVwgOwor5ZCM5YCk5oCnIDwgZG91Y2hpc2VpXCA7CivphbjmgKflsqkgPCBzYW5zZWlnYW5cIDsKK+efjemRoCA8IGtha3VzaGFrdVwgOwor5LiL6Laz55WqIDwgZ2Vzb2t1YmFuXCA7CivkupTljYHpn7Plm7MgPCBnb2p1dW9uenVcIDsKK+aWpeWAmeWFtSA8IHNla2tvdWhlaVwgOwor5aW95b2x6Z+/IDwga291ZWlreW91XCA7CivnlJ/ljJblraYgPCBzZWlrYWdha3VcIDsKK+ippuS5l+i7iiA8IHNoaWpvdXNoYVwgOwor5Zyn5Yi255qEIDwgYXNzZWl0ZWtpXCA7Civngq3phbjntJkgPCB0YW5zYW5zaGlcIDsKK+WIqeS7luS4u+e+qSA8IHJpdGFzaHVnaVwgOwor5YaN5b6T5byfIDwgc2FpanV1dGVpXCA7CivkvZnoqIjogIUgPCB5b2tlaW1vbm9cIDsKK+avkuiZqyA8IGRva3VtdXNoaVwgOwor5LiN5a+d55WqIDwgZnVzaGluYmFuXCA7CivnkIblsYjlsYsgPCByaWt1dHN1eWFcIDsKK+S/neeuoeS6uiA8IGhva2FuJyduaW5cIDsKK+WEquiJr+mmrCA8IHl1dXJ5b3ViYVwgOwor6YGL6Ly46YePIDwgdW4nJ3l1cnlvdVwgOwor5Y2T57W2IDwgdGFrdXpldHN1XCA7CivlpKrlubPmtIsgPCB0YWloZWl5b3VcIDsKK+iyr+iUteWTgSA8IGNob3pvdWhpblwgOwor5Y2Y57OW6aGeIDwgdGFudG91cnVpXCA7Civlj5bmtoggPCB0b3Jpa2VzaGlcIDsKK+iBmualveesrCA8IGp1cmFrdWRhaVwgOwor55Sf5Y2K5Y+vIDwgbmFtYWhhbmthXCA7Civlkajlr4YgPCBzaHV1bWl0c3VcIDsKK+iSn+iSuyA8IGtvbicnbnlha3VcIDsKK+WNlOitsOaJgCA8IGt5b3VnaXNob1wgOwor5LuK5bm05bqmIDwga29uJyduZW5kb1wgOwor5ZCE5pyIIDwga2FrdXRzdWtpXCA7CivmrrXooosgPCBkYW5idWt1cm9cIDsKK+ekvuS8muWxpCA8IHNoYWthaXNvdVwgOwor5oCd5pil5pyfIDwgc2hpc2h1bmtpXCA7CivmlL7lsITmgKcgPCBob3VzaGFzZWlcIDsKK+iZq+WqkuiKsSA8IGNodXViYWlrYVwgOwor5Yqg5oyB56WI56W3IDwga2FqaWtpdG91XCA7CivlhoXlkJHmgKcgPCBuYWlrb3VzZWlcIDsKK+WEquW+heWIuCA8IHl1dXRhaWtlblwgOwor5Zub5Lq657WEIDwgeW9uaW5ndW1pXCA7CivpgIDlrLDnmoQgPCB0YWllaXRla2lcIDsKK+WWhOW+jOetliA8IHplbmdvc2FrdVwgOwor5Y+O5rKhIDwgc2h1dWJvdHN1XCA7CivpiYTlsZEgPCB0ZXRzdWt1enVcIDsKK+WKqeaJi+W4rSA8IGpvc2h1c2VraVwgOwor54Gr5pyo6YeRIDwga2Ftb2t1a2luXCA7CivljZPnrYYgPCB0YWt1aGl0c3VcIDsKK+awj+WtkOW4syA8IHVqaWtvY2hvdVwgOwor55qH5aSq5ZCOIDwga291dGFpZ291XCA7Civlj5bmrKEgPCB0b3JpdHN1Z2lcIDsKK+eJueaUu+maiiA8IHRva2tvdXRhaVwgOwor5Y2T56uLIDwgdGFrdXJpdHN1XCA7CivpgbroqIDogIUgPCB5dWlnb25zaGFcIDsKK+mDt+Wcn+WPsiA8IGt5b3Vkb3NoaVwgOwor5q2j6YGTIDwgbWFzYW1pY2hpXCA7Civku5jlsZ7moKEgPCBmdXpva3Vrb3VcIDsKK+ayiOayoSA8IGNoaW5ib3RzdVwgOwor57Wx5rK76ICFIDwgdG91Y2hpc2hhXCA7CivlkI3kurroirggPCBtZWlqaW5nZWlcIDsKK+WHhOaWh+WPpSA8IHN1Z29tb25rdVwgOwor5oim54G96ICFIDwgc2Vuc2Fpc2hhXCA7CivoqabkvZzmqZ8gPCBzaGlzYWt1a2lcIDsKK+m7hOaer+iMtiA8IGtpZ2FyYWNoYVwgOwor6IOD6IW46JasIDwgaWNob3V5YWt1XCA7Civmr5LoiIwgPCBkb2t1emV0c3VcIDsKK+mZvembu+WtkCA8IHlvdWRlbnNoaVwgOwor56Oo5rGBIDwgdG9naXNoaXJ1XCA7Civmlofmrormp5ggPCBtb25qdXNhbWFcIDsKK+W9ueiBtyA8IHlha3VzaG9rdVwgOwor5LuY5bGe5pu4IDwgZnV6b2t1c2hvXCA7CivoqI7oq5bogIUgPCB0b3Vyb25zaGFcIDsKK+Wkmuaxl+eXhyA8IHRha2Fuc2hvdVwgOwor56Kn546JIDwgaGVraWd5b2t1XCA7CivmipXmiYvpmaMgPCB0b3VzaHVqaW5cIDsKK+S4ree2meaJgCA8IGNodXVrZWlqb1wgOwor5qC55oug5ZywIDwga29ua3lvY2hpXCA7Civms5XkurrnqI4gPCBob3VqaW56ZWlcIDsKK+WcsOWFg+awkSA8IGppbW90b21pblwgOwor5bm05pyf6ICFIDwgbmVua2ltb25vXCA7CivphbfnhrEgPCBrb2t1bmV0c3VcIDsKK+iKseWNieWckuiKuCA8IGtha2llbmdlaVwgOwor6Z+z5qW95oCnIDwgb25nYWt1c2VpXCA7CivooqvlkYrkurogPCBoaWtva3VuaW5cIDsKK+aWh+WMluW6gSA8IGJ1bmthY2hvdVwgOwor5YGP5ZCR5p2/IDwgaGVua291YmFuXCA7Civog4zku7vnvaogPCBoYWluaW56YWlcIDsKK+WCjeims+iAhSA8IGJvdWthbnNoYVwgOwor6JS15rWaIDwga3VyYXphcmFlXCA7CivmmJ/nirbkvZMgPCBzZWlqb3V0YWlcIDsKK+a2iOWMluWJpCA8IHNob3VrYXphaVwgOwor5qyn5bee54mIIDwgb3VzaHV1YmFuXCA7Civlkozoo73oi7Hoqp4gPCB3YXNlaWVpZ29cIDsKK+WPo+aXqSA8IGt1Y2hpYmF5YVwgOwor5bCP6LGG57KlIDwgYXp1a2lnYXl1XCA7CivmsYHniakgPCBzaGlydW1vbm9cIDsKK+ezu+Wbs+WtpiA8IGtlaXp1Z2FrdVwgOwor6YW354OIIDwga29rdXJldHN1XCA7Civku67lkI3miYvmnKwgPCBrYW5hZGVob25cIDsKK+iThOepjSA8IGNoaWt1c2VraVwgOwor5pu457Ch566LIDwgc2hva2Fuc2VuXCA7Civlho3phY3liIYgPCBzYWloYWlidW5cIDsKK+W8seiZqyA8IHlvd2FtdXNoaVwgOwor5Y2U6K2w5a6YIDwga3lvdWdpa2FuXCA7CivlkIzpoZ7poIUgPCBkb3VydWlrb3VcIDsKK+iHqui7oui7uCA8IGppdGVuamlrdVwgOwor5b+g54OIIDwgY2h1dXJldHN1XCA7CivkuIrnlLLmnb8gPCBqb3VrYW5wYW5cIDsKK+aDnOWIpSA8IHNla2liZXRzdVwgOwor5YWo5Zyw5pa5IDwgemVuY2hpaG91XCA7CivkvJrnpL7ms5UgPCBrYWlzaGFob3VcIDsKK+a0u+WKhyA8IGthdHN1Z2VraVwgOwor5aWJ5LuV5ZOBIDwgaG91c2hpaGluXCA7CivmiKrmi7PpgZMgPCBzZWtrZW5kb3VcIDsKK+WPsOaJgCA8IGRhaWRva29yb1wgOwor5LuV6Iie5bGLIDwgc2hpbW90YXlhXCA7CivmipjoobfmoYggPCBzZXRjaHV1YW5cIDsKK+iIquepuumaiiA8IGtvdWt1dXRhaVwgOwor6J2m6J+H5Y+jIDwgZ2FtYWd1Y2hpXCA7CivnpoHmraLms5UgPCBraW5zaGlob3VcIDsKK+mBk+WFt+aWuSA8IGRvdWd1a2F0YVwgOwor5b6M56iLIDwgbm9jaGlob2RvXCA7Civml6bpgqPoirggPCBkYW4nJ25hZ2VpXCA7CivmibbppIrmlpkgPCBmdXlvdXJ5b3VcIDsKK+W8k+ihkyA8IGt5dXVqdXRzdVwgOwor5LiN5L+h5b+DIDwgZnVzaGluamluXCA7CivpgaDov5EgPCBvY2hpa29jaGlcIDsKK+WKm+iqrCA8IHJpa2lzZXRzdVwgOwor5bmz5a6J5pydIDwgaGVpYW5jaG91XCA7CivlhoXph47luK0gPCBuYWl5YXNla2lcIDsKK+WboOaenOW+iyA8IGluZ2FyaXRzdVwgOwor6Iux5ZKM6L6e5YW4IDwgZWl3YWppdGVuXCA7Civou73mvJTliocgPCBrZWllbmdla2lcIDsKK+S6iOWCmeS8muitsCA8IHlvYmlrYWlnaVwgOwor5p2/6YeR5belIDwgYmFua2lua291XCA7CivlrprkvqHooaggPCB0ZWlrYWh5b3VcIDsKK+evpOW/l+WutiA8IHRva3VzaGlrYVwgOwor6bSs6ImyIDwgdWd1aXN1aXJvXCA7CivoqabpqJPloLQgPCBzaGlrZW5qb3VcIDsKK+aXheihjOiAhSA8IHJ5b2tvdXNoYVwgOwor5q2v6b2m54KOIDwgc2hpZ2luJydlblwgOwor6Ju45Z2K5Li7IDwgdGFrb2JvdXp1XCA7CivljZrniakgPCBoYWt1YnV0c3VcIDsKK+WPguaUv+WumCA8IHNhbnNlaWthblwgOwor6LuN5LqL55qEIDwgZ3Vuaml0ZWtpXCA7Civlj6Tpiq3lraYgPCBrb3Nlbmdha3VcIDsKK+i7jeWumOaGsiA8IGd1bmthbmtlblwgOwor6Zai5pWw6KuWIDwga2Fuc3V1cm9uXCA7CivmsrvnmYLosrsgPCBjaGlyeW91aGlcIDsKK+avkuethiA8IGRva3VoaXRzdVwgOwor5ZGR5Y+jIDwgbm9taWd1Y2hpXCA7Civlkb3kuZ4gPCBpbm9jaGlnb2lcIDsKK+adv+mHkeWxiyA8IGJhbmtpbicneWFcIDsKK+aTjei7iuWgtCA8IHNvdXNoYWpvdVwgOwor5oqV6J6N6LOHIDwgdG91eXV1c2hpXCA7CivnpL7kuqTmgKcgPCBzaGFrb3VzZWlcIDsKK+aTrOeIhuW8viA8IGdpYmFrdWRhblwgOwor56u56Jy76JuJIDwgdGFrZXRvbmJvXCA7CivmgYvlv4MgPCBrb2lnb2tvcm9cIDsKK+i2heWFmua0viA8IGNob3V0b3VoYVwgOwor5ZWP6aGM5aSWIDwgbW9uZGFpZ2FpXCA7CivkuIDoiKznmoQgPCBpcHBhbnRla2lcIDsKK+izh+acrOmHkSA8IHNoaWhvbmtpblwgOwor5oKq5Y+jIDwgd2FydWd1Y2hpXCA7CivnlLflrZDnlKggPCBkYW5zaGl5b3VcIDsKK+WInembqiA8IGhhdHN1eXVraVwgOwor56S+5Lya5YWaIDwgc2hha2FpdG91XCA7Civljq3kuJbnmoQgPCBlbnNlaXRla2lcIDsKK+W8seiFsCA8IHlvd2Fnb3NoaVwgOwor6KiT57e055SfIDwga3VucmVuc2VpXCA7CivpgIbpnpggPCBneWFrdXpheWFcIDsKK+i0iOWRiOacrCA8IHpvdXRlaWJvblwgOwor5LqM6Zmi5Yi25bqmIDwgbmlpbnNlaWRvXCA7CivlubTpoIMgPCB0b3NoaWdvcm9cIDsKK+WutuaXj+azlSA8IGthem9rdWhvdVwgOwor5Lq65rCX5qCqIDwgbmlua2lrYWJ1XCA7Civoqq3lvozmhJ8gPCBkb2t1Z29rYW5cIDsKK+WNmOe0sOiDniA8IHRhbnNhaWJvdVwgOwor6bO056a96aGeIDwgbWVpa2lucnVpXCA7CivlhoXpg6jnmoQgPCBuYWlidXRla2lcIDsKK+e3tOWFteWgtCA8IHJlbnBlaWpvdVwgOwor5aSP5pyf5pmC6ZaTIDwga2FraWppa2FuXCA7CivlpKfliY3mj5AgPCBkYWl6ZW50ZWlcIDsKK+edgOmZuCA8IGNoYWt1cmlrdVwgOwor5YaN5b6T5YWEIDwgc2FpanV1a2VpXCA7CivlkYrliKUgPCBrb2t1YmV0c3VcIDsKK+WPr+WLleapiyA8IGthZG91a3lvdVwgOwor5rC05rK5IDwgbWl6dWFidXJhXCA7CivmsLfmsLQgPCBrb29yaW1penVcIDsKK+mfs+alveWggiA8IG9uZ2FrdWRvdVwgOwor6I2S6Zqg5YWDIDwgc2F5YWluZ2VuXCA7CivkupXmiLjlsYvlvaIgPCBpZG95YWthdGFcIDsKK+a0l+ekvOWQjSA8IHNlbnJlaW1laVwgOwor54++5qWt5ZOhIDwgZ2VuZ3lvdWluXCA7CivkuIDlt6XlpKsgPCBoaXRva3VmdXVcIDsKK+WJjei8vyA8IHNha2lnb3NoaVwgOwor5Y+35a6kIDwgZ291c2hpdHN1XCA7Civohp3lsI/lg6cgPCBoaXpha296b3VcIDsKK+iHquW3seefm+ebviA8IGppa29tdWp1blwgOwor5L2c6Kme5a62IDwgc2FrdXNoaWthXCA7CivkvZzngrrnmoQgPCBzYWt1aXRla2lcIDsKK+Wwj+Wuh+WumSA8IHNob3V1Y2h1dVwgOwor6aKo5rC05a6zIDwgZnV1c3VpZ2FpXCA7CivlpKfou4rovKogPCBkYWlzaGFyaW5cIDsKK+aUueWumueJiCA8IGthaXRlaWhhblwgOwor56S+5Lya5Lq6IDwgc2hha2FpamluXCA7CivmgqrlvbHpn78gPCBha3VlaWt5b3VcIDsKK+ilv+mDqOWKhyA8IHNlaWJ1Z2VraVwgOwor6ZuR6LKo5ZWGIDwgemFra2FzaG91XCA7CivliqPnrYnmhJ8gPCByZXR0b3VrYW5cIDsKK+WHuumhmCA8IHNodXRzdWdhblwgOwor6YCP5piO5oCnIDwgdG91bWVpc2VpXCA7Civlh7rpoYwgPCBzaHV0c3VkYWlcIDsKK+iLpeWkq+WppiA8IHdha2FmdXVmdVwgOwor6bGX6ZuyIDwgdXJva29ndW1vXCA7CivptIPoiIwgPCBnZWtpemV0c3VcIDsKK+mZsOmZvemBkyA8IG9ubXlvdWRvdVwgOwor5LyR5oap5omAIDwga3l1dWtlaWpvXCA7CivphY3ntabmiYAgPCBoYWlreXV1am9cIDsKK+ijhei6q+WFtyA8IHNvdXNoaW5ndVwgOwor54Sh5qyg5bitIDwgbXVrZXNzZWtpXCA7Civoh6rliLblv4MgPCBqaXNlaXNoaW5cIDsKK+mAmumHiCA8IHRzdXVzaGFrdVwgOwor56CC57KSIDwgc3VuYXRzdWJ1XCA7Civlia/kvZznlKggPCBmdWt1c2F5b3VcIDsKK+WGjemBuOaMmSA8IHNhaXNlbmt5b1wgOwor6Zqg5Yy/6ICFIDwgaW50b2t1c2hhXCA7CivlkIzkurrnqK4gPCBkb3VqaW5zaHVcIDsKK+mBi+mAgealrSA8IHVuc291Z3lvdVwgOwor5YaF5YuZ55yBIDwgbmFpbXVzaG91XCA7Civngq3phbjmsLQgPCB0YW5zYW5zdWlcIDsKK+ihm+eUn+eahCA8IGVpc2VpdGVraVwgOwor5YaN55m66KGMIDwgc2FpaGFra291XCA7CivpgbroqIDnirYgPCB5dWlnb25qb3VcIDsKK+mAn+mBlCA8IHNva3V0YXRzdVwgOwor54K555y85rC0IDwgdGVuZ2Fuc3VpXCA7Civou73lkIjph5EgPCBrZWlnb3VraW5cIDsKK+S4gOeZuuWxiyA8IGlwcGF0c3V5YVwgOwor5Ye66ZmjIDwgc2h1dHN1amluXCA7Civlhajoo73lk4EgPCB6ZW5zZWloaW5cIDsKK+mAmumBlCA8IHRzdXV0YXRzdVwgOwor5b+c5Y+s6ICFIDwgb3VzaG91c2hhXCA7CivliJ3ph5wgPCBoYXRzdWdhbWFcIDsKK+WPpOWNsOe0mSA8IGZ1cnVpbnNoaVwgOwor6LOH5pys6LKhIDwgc2hpaG9uemFpXCA7Civlm57poafnmoQgPCBrYWlrb3Rla2lcIDsKK+S6jOimquetiSA8IG5pc2hpbnRvdVwgOwor5Lqk5oim5qipIDwga291c2Vua2VuXCA7CivluoPloLHoqowgPCBrb3Vob3VzaGlcIDsKK+S+i+W5tOelrSA8IHJlaW5lbnNhaVwgOwor5LqI6Ziy6JasIDwgeW9ib3V5YWt1XCA7Civlkozlo7DlraYgPCB3YXNlaWdha3VcIDsKK+WHuumWgCA8IHNodXRzdW1vblwgOwor6Z+z5qW95Y+yIDwgb25nYWt1c2hpXCA7CivokI7nuK7ohY4gPCBpc2h1a3VqaW5cIDsKK+ebl+iBtOWZqCA8IHRvdWNob3VraVwgOwor5LqI57SE6YeRIDwgeW95YWt1a2luXCA7Civph6PloIAgPCB0c3VyaWJvcmlcIDsKK+aYpeWgtOaJgCA8IGhhcnViYXNob1wgOwor56ef5bq46Kq/IDwgc295b3VjaG91XCA7Civov5HpoIMgPCBjaGlrYWdvcm9cIDsKK+mztuiBtyA8IHRvYmlzaG9rdVwgOwor5Y6f5a2Q6KuWIDwgZ2Vuc2hpcm9uXCA7CivnhKHmqZ/niakgPCBtdWtpYnV0c3VcIDsKK+axuuitsOahiCA8IGtldHN1Z2lhblwgOwor5Ym15L2c5a62IDwgc291c2FrdWthXCA7CivniJvnhp/mnJ8gPCByYW5qdWt1a2lcIDsKK+S4remWk+a0viA8IGNodXVrYW5oYVwgOwor55+z562GIDwgc2VraWhpdHN1XCA7Civph4znqIvmqJkgPCByaXRlaWh5b3VcIDsKK+izh+acrOirliA8IHNoaWhvbnJvblwgOwor5LuK5qeY5q2MIDwgaW1heW91dXRhXCA7Civnn7Pnq7kgPCBzZWtpY2hpa3VcIDsKK+W8lee2sSA8IGhpa2lkenVuYVwgOwor5Lya5rSl5aGXIDwgYWlkenVudXJpXCA7CivkuLjlnYrkuLsgPCBtYXJ1Ym91enVcIDsKK+enu+akjeaApyA8IGlzaG9rdXNlaVwgOwor55+t562SIDwgdGFuZHp1dHN1XCA7CivliKXlpKnlnLAgPCBiZXR0ZW5jaGlcIDsKK+avkueJqSA8IGRva3VidXRzdVwgOwor5Y2z5pelIDwgc29rdWppdHN1XCA7CivpmLLnqbrlo5UgPCBib3VrdXVnb3VcIDsKK+mAg+mBkyA8IG5pZ2VtaWNoaVwgOwor6YGL6YCB5paZIDwgdW5zb3VyeW91XCA7CivnpZ7kuLsgPCBrYW4nJ251c2hpXCA7Civlub3pnIroiLkgPCB5dXVyZWlzZW5cIDsKK+S8r+WCmee3miA8IGhha3ViaXNlblwgOwor6IOD6IW455eFIDwgaWNob3VieW91XCA7CivljbHmqZ/nrqHnkIYgPCBraWtpa2FucmlcIDsKK+WQiOWNsCA8IGFpamlydXNoaVwgOwor5Z+656SO5L2T5ripIDwga2lzb3RhaW9uXCA7CivljZLmpa0gPCBzb3RzdWd5b3VcIDsKK+WRiuekuuadvyA8IGtva3VqaWJhblwgOwor5bCP5L2c5Lq6IDwga29zYWt1bmluXCA7Civpm6LplpPnrZYgPCByaWthbnNha3VcIDsKK+WLneedgCA8IHNob3VjaGFrdVwgOwor5byxIDwgbmF5b25heW9cIDsKK+i5siA8IHRzdWt1YmFpXCA7Civlp5EgPCBzaHV1dG9tZVwgOwor5aGKIDwga2F0YW1hcmlcIDsKK+WgpCA8IHRzdXRzdW1pXCA7CivpvJMgPCB0c3VkenVtaVwgOwor5rqQIDwgbWluYW1vdG9cIDsKK+m2jyA8IG5pd2F0b3JpXCA7Civlj6IgPCBrdXNhbXVyYVwgOwor5Y2wIDwgc2hpcnVzaGlcIDsKK+mtgiA8IHRhbWFzaGlpXCA7CivohbggPCBoYXJhd2F0YVwgOwor5p2vIDwgc2FrYXp1a2lcIDsKK+mbtyA8IGthbWluYXJpXCA7Civpm4EgPCBrYXJpZ2FuZVwgOwor5pqBIDwgYWthdHN1a2lcIDsKK+e0qyA8IG11cmFzYWtpXCA7CivmjowgPCB0ZW5vaGlyYVwgOwor5oqRIDwgc29tb3NvbW9cIDsKK+aHkCA8IGZ1dG9rb3JvXCA7CivlkJDlh7ogPCB0b3NodXRzdVwgOwor6YeR5Z6LIDwga2FuYWdhdGFcIDsKK+efs+elniA8IHNoYWt1amluXCA7CivlkI3liLkgPCBtZWlzYXRzdVwgOwor5by+552AIDwgZGFuY2hha3VcIDsKK+iQveexjSA8IHJha3VzZWtpXCA7Civnn6LnrZIgPCB5YWR6dXRzdVwgOwor5b+D5pyNIDwgc2hpbnB1a3VcIDsKK+mAhui7oiA8IGd5YWt1dGVuXCA7CivlkIjlipsgPCBnb3VyeW9rdVwgOwor6JaZ5YiAIDwgbmFnaW5hdGFcIDsKK+WQjOWIlyA8IGRvdXJldHN1XCA7CivmsJHmlbDoqJggPCBtaW5zdXVraVwgOwor6YmE56Cy5bqnIDwgdGVwcG91emFcIDsKK+ebguiYreebhuS8miA8IHVyYWJvbicnZVwgOwor5paH5YyW5Lq6IDwgYnVua2FqaW5cIDsKK+acqOW3peaJgCA8IG1va2tvdWpvXCA7CivljLvnp5Hmra/np5EgPCBpa2FzaGlrYVwgOwor55u06Z2iIDwgY2hva3VtZW5cIDsKK+S4gOiIrOazlSA8IGlwcGFuaG91XCA7Civlvqnmpa0gPCBmdWt1Z3lvdVwgOwor6JaE5Y+jIDwgdXN1a3VjaGlcIDsKK+WKtOWLmeiAhSA8IHJvdW11c2hhXCA7CivojYnpo58gPCBzb3VzaG9rdVwgOwor5paH5bqr5pysIDwgYnVua29ib25cIDsKK+W4uOmXhyA8IHRva295YW1pXCA7CivlkIjlhoogPCBnb3VzYXRzdVwgOwor5Yml6JC9IDwgaGFrdXJha3VcIDsKK+iMtumrqiA8IGNoYXBhdHN1XCA7CivpgJ/oqq0gPCBzb2t1ZG9rdVwgOwor5Y6z5a+GIDwgZ2VubWl0c3VcIDsKK+S7o+eQhuS6uiA8IGRhaXJpbmluXCA7CivmtbfmsLTnnYAgPCBrYWlzdWlnaVwgOwor5Ye66YO3IDwgc2h1a2t5b3VcIDsKK+WOmuW6lSA8IGF0c3V6b2tvXCA7Civoh6rlt7HmtYEgPCBqaWtvcnl1dVwgOwor5byV56qTIDwgaGlraW1hZG9cIDsKK+S4geWvp+iqniA8IHRlaW5laWdvXCA7CivliIbovYQgPCBidW5rYXRzdVwgOwor6Z+z5qW95LyaIDwgb25nYWtrYWlcIDsKK+WQjOiDnuaEmyA8IGRvdWhvdWFpXCA7CivpgJroqq0gPCB0c3V1ZG9rdVwgOwor5q+b5ZSQ5Lq6IDwga2V0b3VqaW5cIDsKK+awkeS6i+S4iiA8IG1pbmppam91XCA7Civmt6HlvannlLsgPCB0YW5zYWlnYVwgOwor5pyf5b6F5YCkIDwga2l0YWljaGlcIDsKK+mBnOiJsiA8IHNvbnNob2t1XCA7Civlhajoo7jkvZMgPCB6ZW5yYXRhaVwgOwor56uL5L2T5rS+IDwgcml0dGFpaGFcIDsKK+i/vei3oSA8IHRzdWlzZWtpXCA7Civli7LniLUgPCBrdW5zaGFrdVwgOwor6K236YCB6Ii5IDwgZ29zb3VzZW5cIDsKK+mAmuiosyA8IHRzdXV5YWt1XCA7Civph47om67kurogPCB5YWJhbmppblwgOwor5Y+q5Y+qIDwgdGFkYXRhZGFcIDsKK+WPi+WeoyA8IHRvbW9nYWtpXCA7CivlpbPmgKfou40gPCBqb3NlaWd1blwgOwor5ZCM6Laj5ZGzIDwgZG91c2h1bWlcIDsKK+WNiuaciCA8IGhhbnRzdWtpXCA7Civlj6/li5XmgKcgPCBrYWRvdXNlaVwgOwor5LiN6aSK55SfIDwgZnV5b3Vqb3VcIDsKK+mjveWSjOeCuSA8IGhvdXdhdGVuXCA7CivnnJ/ov7kgPCBzaGluc2VraVwgOwor5pei5b6A55eHIDwga2lvdXNob3VcIDsKK+WQieS+iyA8IGtpdHN1cmVpXCA7Civov5HpiYQgPCBraW50ZXRzdVwgOwor6Iy26aOvIDwgY2hhbWVzaGlcIDsKK+WIpeiogCA8IGJldHN1Z2VuXCA7CivmrpbnlKMgPCBzaG9rdXNhblwgOwor6YeR5Y+jIDwga2luZ3VjaGlcIDsKK+mAoOihgCA8IHpvdWtldHN1XCA7Civps6XnsaAgPCB0b3Jpa2Fnb1wgOwor5YuD55m6IDwgYm9wcGF0c3VcIDsKK+W7uueviSA8IGtlbmNoaWt1XCA7CivkuIDoh7TngrkgPCBpdGNoaXRlblwgOwor5Ye66LqrIDwgc2h1c3NoaW5cIDsKK+ethuiomOiAhSA8IGhpa2tpc2hhXCA7CivljYHmnIggPCBqdXVnYXRzdVwgOwor6YCB6aKo5qmfIDwgc291ZnV1a2lcIDsKK+WPo+WNoCA8IGt1Y2hpdXJhXCA7Civlp6vlvqHlrZAgPCBoaW1lbWlrb1wgOwor5omL6YWN5pu4IDwgdGVoYWlzaG9cIDsKK+ato+eriyA8IHNlaXJpdHN1XCA7Civpr6jpqqggPCBnZWlrb3RzdVwgOwor5rGC5b+DIDwga3l1dXNoaW5cIDsKK+ebuOmOmiA8IGFpZHp1Y2hpXCA7CivnnLzorZggPCBnYW5zaGlraVwgOwor6ISz54+K55GaIDwgbm91c2FuZ29cIDsKK+S4iuWxpOWcnyA8IGpvdXNvdWRvXCA7Civlv4Pmi40gPCBzaGlucGFrdVwgOwor5LqI57SE6KqeIDwgeW95YWt1Z29cIDsKK+W9vOatpCA8IGthcmVrb3JlXCA7Civmsrnmp73oiLkgPCB5dXNvdXNlblwgOwor5q2v56OoIDwgaGFtaWdha2lcIDsKK+W4nemXlSA8IHRlaWtldHN1XCA7CivkuIDlr7joposgPCBjaG90dG9taVwgOwor5LqI6Ziy57eaIDwgeW9ib3VzZW5cIDsKK+WLmOWumuaXpSA8IGthbmpvdWJpXCA7CivlhoXpsJAgPCB1Y2hpd2FuaVwgOwor5Y+k5Ym1IDwgZnVydWtpenVcIDsKK+m0qOeMnyA8IGthbW9yeW91XCA7CivmsqHljbQgPCBib2treWFrdVwgOwor5YaF5biR6YeRIDwgbmFpZG9raW5cIDsKK+mHkeWKmyA8IGtpbnJ5b2t1XCA7Civlj7PlgbQgPCBtaWdpZ2F3YVwgOwor5Ye66LaFIDwgc2h1dGNob3VcIDsKK+WPo+WJjSA8IGt1Y2hpbWFlXCA7CivkvJ3pgIHot68gPCBkZW5zb3Vyb1wgOwor5Yi76JaEIDwga29rdWhha3VcIDsKK+mKgOe0sOW3pSA8IGdpbnphaWt1XCA7Civkurrnm7joposgPCBuaW5zb3VtaVwgOwor5rC05oCnIDwgbWl6dXNob3VcIDsKK+W6g+iiliA8IGhpcm9zb2RlXCA7Civph43lipsgPCBqdXVyeW9rdVwgOwor6aKo5Yi655S7IDwgZnV1c2hpZ2FcIDsKK+ebuOmJhCA8IHNvdXRldHN1XCA7Civojbfou4ogPCBuaWd1cnVtYVwgOwor5YuV54mpIDwgZG91YnV0c3VcIDsKK+WNiOmkkOS8miA8IGdvc2Fua2FpXCA7Civnn6XnlaUgPCBjaGlyeWFrdVwgOwor55uu6YyyIDwgbW9rdXJva3VcIDsKK+eEoeasoOWLpCA8IG11a2Vra2luXCA7Civmr5Tph43oqIggPCBoaWp1dWtlaVwgOwor5YiH6KuWIDwgc2V0c3Vyb25cIDsKK+mBi+mAgeW6lyA8IHVuc291dGVuXCA7Civlh7bos4ogPCBreW91em9rdVwgOwor5pON5L2c55ukIDwgc291c2FiYW5cIDsKK+edgOijhSA8IGNoYWt1c291XCA7CivlnKjluqvlk4EgPCB6YWlrb2hpblwgOwor6YGF6ISIIDwgY2hpbXlha3VcIDsKK+awtOW8lSA8IG1penVoaWtpXCA7CivmqYjpqqggPCB0b3Vrb3RzdVwgOwor5q6y5ruFIDwgc2VubWV0c3VcIDsKK+WGoOmbqiA8IGthbnNldHN1XCA7CivljJfmpbUgPCBob2treW9rdVwgOwor5bm76KGTIDwgZ2VuanV0c3VcIDsKK+awt+W6iiA8IGh5b3VzaG91XCA7CivlioPnrZYgPCBrYWt1c2FrdVwgOwor5rCR5Li75YyWIDwgbWluc2h1a2FcIDsKK+WNs+W4rSA8IHNva3VzZWtpXCA7Civlu7bmu57ph5EgPCBlbnRhaWtpblwgOwor5Y+I5Y+IIDwgbWF0YW1hdGFcIDsKK+awtOW6lSA8IG1pbmFzb2tvXCA7CivllJDnoLTpoqggPCBrYXJhaGFmdVwgOwor55u06YWNIDwgY2hva3VoYWlcIDsKK+WIh+iogCA8IHNldHN1Z2VuXCA7Civoh6rlhazmsJEgPCBqaWtvdW1pblwgOwor5oCl5ZGKIDwga3l1dWtva3VcIDsKK+mHiOWFuCA8IHNoYWt1dGVuXCA7Civos6LlpKvkurogPCBrZW5wdWppblwgOwor5q+r5pyrIDwgZ291bWF0c3VcIDsKK+WNiuaKmCA8IGhhbnNldHN1XCA7CivlubPoopYgPCBoaXJhc29kZVwgOwor5LqM5bqm5omL6ZaTIDwgbmlkb2RlbWFcIDsKK+mvm+mjryA8IHRhaW1lc2hpXCA7CivpgYvou6LogIUgPCB1bnRlbnNoYVwgOwor5YiH6KaBIDwgc2V0c3V5b3VcIDsKK+W3u+mbsiA8IG1ha2lndW1vXCA7CivkuI3moLzlpb0gPCBidWtha2tvdVwgOwor5YKs5rer5YmkIDwgc2FpaW56YWlcIDsKK+aui+eJqSA8IHphbmJ1dHN1XCA7CivmoITppIrnn60gPCBlaXlvdXRhblwgOwor5oWL44CFIDwgd2F6YXdhemFcIDsKK+WKq+eVpSA8IGdvdXJ5YWt1XCA7Civlj43liKUgPCB0YW5iZXRzdVwgOwor5q2j55u0IDwgc2hvdWppa2lcIDsKK+WMu+WtpueVjCA8IGlnYWt1a2FpXCA7CivlirnnjocgPCBrb3VyaXRzdVwgOwor54Sh5bi45oSfIDwgbXVqb3VrYW5cIDsKK+WPquS6iyA8IHRhZGFnb3RvXCA7CivnoqnlraYgPCBzZWtpZ2FrdVwgOwor6IOM5qC85aW9IDwgc2VrYWtrb3VcIDsKK+Wxseafu+WtkCA8IHNhbnphc2hpXCA7CivljLvlrabnlJ8gPCBpZ2FrdXNlaVwgOwor5rC05bWpIDwgbWl6dWthc2FcIDsKK+mWi+alreWMuyA8IGthaWd5b3VpXCA7Civnm7TpgIEgPCBjaG9rdXNvdVwgOwor5YiG6KOCIDwgYnVucmV0c3VcIDsKK+W9ueafhCA8IHlha3VnYXJhXCA7Civlh4zovrEgPCByeW91am9rdVwgOwor5b6L5paHIDwgcml0c3VidW5cIDsKK+eoi+OAhSA8IGhvZG9ob2RvXCA7Civlj47lhaUgPCBzaHV1bnl1dVwgOwor5L6/6KGj6ZqKIDwgYmVuJydpdGFpXCA7Civoi6Xpto8gPCB3YWthZG9yaVwgOwor5rKI5YuHIDwgY2hpbicneXV1XCA7Civlj4zlha0gPCBzdWdvcm9rdVwgOwor5buD57W2IDwgaGFpemV0c3VcIDsKK+W5ueS6i+S8miA8IGthbmppa2FpXCA7CivpgZPns7ggPCBtaWNoaWl0b1wgOwor5aSa5Y6f5a2QIDwgdGFnZW5zaGlcIDsKK+WJteeriyA8IHNvdXJpdHN1XCA7CivljZTlv4MgPCBreW91c2hpblwgOwor5YyX5pydIDwgaG9rdWNob3VcIDsKK+WLh+eDiCA8IHl1dXJldHN1XCA7CivmgKfliKUgPCBzZWliZXRzdVwgOwor5YuD54S2IDwgYm90c3V6ZW5cIDsKK+WNgeWtl+W9oiA8IGp1dWppa2VpXCA7CivljZjlvI8gPCB0YW5zaGlraVwgOwor5aSW6YeO5omLIDwgZ2FpeWFzaHVcIDsKK+WBpeiDg+mMoCA8IGtlbicnaWpvdVwgOwor6Zai6KW/6aasIDwga2Fuc2FpYmFcIDsKK+aMh+ekuuipniA8IHNoaWppc2hpXCA7Civlj4LliJcgPCBzYW5yZXRzdVwgOwor5piO5pel6JGJIDwgYXNoaXRhYmFcIDsKK+awl+W/gyA8IGtpZ29rb3JvXCA7Civnn63ot53pm6IgPCB0YW5reW9yaVwgOwor5LiA6LuS5bGLIDwgaWtrZW4nJ3lhXCA7Civlt53poqggPCBrYXdha2F6ZVwgOwor6Iq45YKZ57eaIDwgZ2VpYmlzZW5cIDsKK+WIgOihkyA8IHRvdWp1dHN1XCA7CivljKHmlZEgPCBreW91a3l1dVwgOwor5q2754mpIDwgc2hpYnV0c3VcIDsKK+WIs+iInyA8IGt1cmlidW5lXCA7CivpmaPlpKrpvJMgPCBqaW5kYWlrb1wgOwor55yf5Yas5pelIDwgbWFmdXl1YmlcIDsKK+Wbm+Wto+WgsSA8IHNoaWtpaG91XCA7CivliIbonZUgPCBidW5zaG9rdVwgOwor55m96bOlIDwgaGFrdWNob3VcIDsKK+WFtemjnyA8IGhlaXNob2t1XCA7Civmrr/mp5ggPCB0b25vc2FtYVwgOwor5Y+C5YWlIDwgc2FuJydueXV1XCA7Civlj5fku5ggPCB1a2V0c3VrZVwgOwor5Y2Y5bivIDwgaGl0b2VvYmlcIDsKK+efr+a/gCA8IGt5b3VnZWtpXCA7CivmgKrlgpEgPCBrYWlrZXRzdVwgOwor5Yi66IKhIDwgc2FzdW1hdGFcIDsKK+axsuWPliA8IGt1bWl0b3JpXCA7CivnoILmtZwgPCBzdW5haGFtYVwgOwor57mB6I+v6KGXIDwgaGFua2FnYWlcIDsKK+iok+e3tOaJgCA8IGt1bnJlbmpvXCA7CivpgZTnrYYgPCB0YXBwaXRzdVwgOwor5rW35rC05ripIDwga2Fpc3Vpb25cIDsKK+eti+mbu+WbsyA8IGtpbmRlbnp1XCA7CivlibLnpLwgPCBrYXRzdXJlaVwgOwor5q+O5pyIIDwgbWFpdHN1a2lcIDsKK+azjOWwv+W5viA8IGhpbnlvdWtpXCA7CivljYflvaIgPCBtYXN1Z2F0YVwgOwor5LiN5a6J5b+DIDwgZnVhbnNoaW5cIDsKK+W3nemcpyA8IGthd2FnaXJpXCA7CivliofnmoQgPCBnZWtpdGVraVwgOwor6Kiq5ZWP552AIDwgaG91bW9uZ2lcIDsKK+WIhuiYliA8IGJ1bmtldHN1XCA7CivkvJrnpL7lk6EgPCBrYWlzaGFpblwgOwor5Y+U5LiWIDwgc2h1a3VzZWlcIDsKK+WFgOm3uSA8IGhhZ2V0YWthXCA7Civms5XnjovmqKkgPCBob3VvdWtlblwgOwor5YuY5rG6IDwga2Fua2V0c3VcIDsKK+S4jeWwjuS9kyA8IGZ1ZG91dGFpXCA7CivljZjoqablkIggPCB0YW5zaGlhaVwgOwor5Y2z5aaZIDwgc29rdW15b3VcIDsKK+WJo+eqgSA8IGtlbnRzdWt1XCA7Civlv4XlrpogPCBoaXRzdWpvdVwgOwor5YmN57SEIDwgemVuJyd5YWt1XCA7Civliofnl5sgPCBnZWtpdHN1dVwgOwor5Y2I5bm0IDwgdW1hZG9zaGlcIDsKK+W5s+iQvSA8IGhpcmFvY2hpXCA7CivnoazlvI8gPCBrb3VzaGlraVwgOwor5YaZ55Sf55S7IDwgc2hhc2VpZ2FcIDsKK+W4uOitmCA8IGpvdXNoaWtpXCA7CivnrqHnkIbkurogPCBrYW5yaW5pblwgOwor5b+D5a2mIDwgc2hpbmdha3VcIDsKK+avjuaXpSA8IG1haW5pY2hpXCA7Civnmb3pqqggPCBoYWtrb3RzdVwgOwor5LiA5a626KiAIDwgaWtrYWdvdG9cIDsKK+WNh+W4rSA8IG1hc3VzZWtpXCA7CivlkIzmnJ/nlJ8gPCBkb3VraXNlaVwgOwor5qiq6aKoIDwgeW9rb2themVcIDsKK+S4geWumuimjyA8IHRlaWpvdWdpXCA7CivpsJDotrMgPCB3YW5pYXNoaVwgOwor6YGF562GIDwgY2hpaGl0c3VcIDsKK+avjeaWuSA8IGhhaGFrYXRhXCA7CivlrojlgpnpmoogPCBzaHViaXRhaVwgOwor5rC35aOBIDwgaHlvdWhla2lcIDsKK+eenuedgCA8IG1hbmNoYWt1XCA7CivovpvovpsgPCBrYXJhZ2FyYVwgOwor55u46K2YIDwgc291c2hpa2lcIDsKK+iPnOeuuCA8IHNhaWJhc2hpXCA7CivkvbXlkIjnvaogPCBoZWlnb3phaVwgOwor6YCx57WmIDwgc2h1dWt5dXVcIDsKK+WFq+mdoiA8IGhhY2hpbWVuXCA7CivljZrlraYgPCBoYWt1Z2FrdVwgOwor5q6W5rCRIDwgc2hva3VtaW5cIDsKK+mAsue0miA8IHNoaW5reXV1XCA7CivmsJfnhKHnsr4gPCBraWJ1c2hvdVwgOwor5LiJ5p6a55uuIDwgc2FubWFpbWVcIDsKK+WJjeevgCA8IHplbnNldHN1XCA7Civlvpflv4MgPCB0b2t1c2hpblwgOwor5omL6YWN5birIDwgdGVoYWlzaGlcIDsKK+edgOiIuSA8IGNoYWt1c2VuXCA7CivlvJXmva4gPCBoaWtpc2hpb1wgOwor5bi46KitIDwgam91c2V0c3VcIDsKK+eEoeiHquimmiA8IG11amlrYWt1XCA7CivlvpflvpcgPCB0b2t1dG9rdVwgOwor6JC95r2uIDwgcmFrdWNob3VcIDsKK+W8seavkiA8IGpha3Vkb2t1XCA7CivljqXlhrcgPCBrZXRzdXJlaVwgOwor6JS15YWDIDwga3VyYW1vdG9cIDsKK+W7uueJqSA8IHRhdGVtb25vXCA7Civmrbvmu4UgPCBzaGltZXRzdVwgOwor5YuH5rG6IDwgeXV1a2V0c3VcIDsKK+WFiOmrmCA8IHNha2lkYWthXCA7Civnmbrpp4UgPCBoYXRzdWVraVwgOwor54Gr5LqL5rOlIDwga2FqaWRvcm9cIDsKK+mAgOiJsiA8IHRhaXNob2t1XCA7CivmsJflrqQgPCBraXNoaXRzdVwgOwor5Lq65bel6KqeIDwgamlua291Z29cIDsKK+aXouW+gOattCA8IGtpb3VyZWtpXCA7CivlhobpjJAgPCBtYXJ1Z2lyaVwgOwor5LiA6Iis5oCnIDwgaXBwYW5zZWlcIDsKK+WLnealvSA8IHNob3VyYWt1XCA7CivlubTmnIjml6UgPCBuZW5nYXBwaVwgOwor5YWO6aasIDwgdXNhZ2l1bWFcIDsKK+W9k+aciCA8IHRvdWdldHN1XCA7CivljYPls7YgPCBjaGlzaGltYVwgOwor5qiq6ZuyIDwgeW9rb2d1bW9cIDsKK+WkieaIkOWZqCA8IGhlbnNlaWtpXCA7CivlvpDlvpAgPCBzb3Jvc29yb1wgOwor5YWD6auYIDwgbW90b2Rha2FcIDsKK+acquS/oeiAhSA8IG1pc2hpbmphXCA7CivluKvoqqwgPCBzaGlzZXRzdVwgOwor5YyF5pGCIDwgaG91c2V0c3VcIDsKK+auv+aWuSA8IHRvbm9nYXRhXCA7CivmsJHlrr8gPCBtaW5zaHVrdVwgOwor5LiN5qGI5YaFIDwgZnVhbicnbmFpXCA7Civoh6rmo4TphZIgPCB5YWtlemFrZVwgOwor5aGR5by+5oCnIDwgc29kYW5zZWlcIDsKK+atpuWZqOWAiSA8IGJ1a2lndXJhXCA7CivpgKPntZAgPCByZW5rZXRzdVwgOwor6IG06Z+z5ZmoIDwgY2hvdW9ua2lcIDsKK+ebtOiogCA8IGNob2t1Z2VuXCA7CivlubPku67lkI0gPCBoaXJhZ2FuYVwgOwor5b2O5pyIIDwgd2FuZ2V0c3VcIDsKK+aEn+efpeWZqCA8IGthbmNoaWtpXCA7Civlt6HpjKsgPCBqdW5zaGFrdVwgOwor5b2O5puyIDwgd2Fua3lva3VcIDsKK+ebtOinkiA8IGNob2trYWt1XCA7Civlu4nnm7QgPCByZW5jaG9rdVwgOwor55u06KaWIDwgY2hva3VzaGlcIDsKK+atu+a0uyA8IHNoaWthdHN1XCA7Civlv4PlooMgPCBzaGlua3lvdVwgOwor5bmz6ISIIDwgaGVpbXlha3VcIDsKK+W9k+aXpSA8IHRvdWppdHN1XCA7CivliY3ljYrmnJ8gPCB6ZW5wYW5raVwgOwor5b6p5a2mIDwgZnVrdWdha3VcIDsKK+WFpemWoyA8IG55dXVrYWt1XCA7Civnqbroq5blrrYgPCBrdXVyb25rYVwgOwor5oG15q+U5a+/6aGUIDwgZWJpc3VnYW9cIDsKK+aoqumVtyA8IHlva29uYWdhXCA7CivmrbvmsqEgPCBzaGlib3RzdVwgOwor5YyF5ousIDwgaG91a2F0c3VcIDsKK+W/oOWRiiA8IGNodXVrb2t1XCA7Civlt7vou7ggPCBtYWtpamlrdVwgOwor6L6y6ZaR5pyfIDwgbm91a2Fua2lcIDsKK+eZvumbtyA8IGh5YWt1cmFpXCA7CivkuI3os5vmiJAgPCBmdXNhbnNlaVwgOwor55m+6ZujIDwgaHlha3VuYW5cIDsKK+mkium2j+WutiA8IHlvdWtlaWthXCA7Civlh7roir0gPCBzaHV0c3VnYVwgOwor6I+F56ygIDwgc3VnZWdhc2FcIDsKK+WJm+ebtCA8IGdvdWNob2t1XCA7CivljYHkuozmlK8gPCBqdXVuaXNoaVwgOwor5Yqg5rm/IDwga2FzaGl0c3VcIDsKK+ani+aIkOavlCA8IGtvdXNlaWhpXCA7CivlkJHml6XokbUgPCBoaW1hd2FyaVwgOwor55m66Zu7IDwgaGF0c3VkZW5cIDsKK+WIhuiEiCA8IGJ1bm15YWt1XCA7Civnm6PoqLMgPCBrYW4nJ3lha3VcIDsKK+mBheedgCA8IGNoaWNoYWt1XCA7CivmqZ/mpa3lrrYgPCBraWd5b3VrYVwgOwor5YWa6ZalIDwgdG91YmF0c3VcIDsKK+WIpee0jSA8IGJldHN1bm91XCA7CivliJHnvbAgPCBrZWliYXRzdVwgOwor5YaF6YGUIDwgbmFpdGF0c3VcIDsKK+awtOa7uOS8nSA8IHN1aWtvZGVuXCA7CivlvqHlrKLmp5ggPCBvam91c2FtYVwgOwor5b+D5ZqiIDwgc2hpbicnbm91XCA7CivlvbnlvpcgPCB5YWt1dG9rdVwgOwor6Ieo5bqK5Yy7IDwgcmluc2hvdWlcIDsKK+mAo+eriyA8IHJlbnJpdHN1XCA7Civpg7fmhIEgPCBreW91c2h1dVwgOwor5b235b2/IDwgaG91ZnV0c3VcIDsKK+W6reefsyA8IG5pd2Fpc2hpXCA7CivliIfogIUgPCBraXJlbW9ub1wgOwor6YGF55m6IDwgY2hpaGF0c3VcIDsKK+aghOmkiua6kCA8IGVpeW91Z2VuXCA7CivlpJrlubTojYkgPCB0YW5lbnNvdVwgOwor6I235Y6E5LuLIDwgbml5YWtrYWlcIDsKK+WFg+memCA8IG1vdG9zYXlhXCA7CivlirHno4HmkI0gPCByZWlqaXNvblwgOwor5a6J5YWo55OjIDwgYW56ZW5iZW5cIDsKK+mHjemFuOe0oCA8IGp1dXNhbnNvXCA7Civlv5jljbQgPCBib3VreWFrdVwgOwor5q205q20IDwgcmVraXJla2lcIDsKK+S6jOWhgeaJiyA8IG5pcnVpc2h1XCA7Civnorrkv6EgPCBrYWt1c2hpblwgOwor55+z5p+xIDwgc2VraWNodXVcIDsKK+acqOW3peWFtyA8IG1va2tvdWd1XCA7CivmrKDnlaogPCBrZXRzdWJhblwgOwor5b2w5b6zIDwgc2hvdXRva3VcIDsKK+eCueecvOWZqCA8IHRlbmdhbmtpXCA7CivmhJrlm7PmhJrlm7MgPCBndXp1Z3V6dVwgOwor6bGI6IW5IDwgdGFyYWZ1a3VcIDsKK+WJsueJqSA8IHdhcmVtb25vXCA7CivluZXoh6MgPCBiYWt1c2hpblwgOwor5YWl6YuPIDwgbnl1dWt5b3VcIDsKK+iOq+Wkp+WwjyA8IG1lcml5YXN1XCA7Civoo73pi7zmiYAgPCBzZWlrb3Vqb1wgOwor6Lu96bSoIDwga2FydWdhbW9cIDsKK+maoOiUveWtkCA8IGlucGVpc2hpXCA7Civli5jlrprloLQgPCBrYW5qb3ViYVwgOwor57695Zuj5omHIDwgaGF1Y2hpd2FcIDsKK+W/teS7jyA8IG5lbmJ1dHN1XCA7CivnoLTmiJLlg6cgPCBoYWthaXNvdVwgOwor54Cs5oi454mpIDwgc2V0b21vbm9cIDsKK+iPiuefsyA8IGtpa3Vpc2hpXCA7CivlhrfooYAgPCByZWlrZXRzdVwgOwor5bmz57W5IDwgaGlyYWdpbnVcIDsKK+mFkuWRkSA8IHNha2Vub21pXCA7CivokYnmoZwgPCBoYXpha3VyYVwgOwor552A57GzIDwgY2hha3ViZWlcIDsKK+Wkp+iLseaWrSA8IGRhaWVpZGFuXCA7CivlvLfmlbUgPCBreW91dGVraVwgOwor5rGC5YSfIDwga3l1dXNob3VcIDsKK+mAmuensCA8IHRzdXVzaG91XCA7Civlv6Dlg5UgPCBjaHV1Ym9rdVwgOwor5rC05YqbIDwgc3Vpcnlva3VcIDsKK+aui+aciCA8IHphbmdldHN1XCA7Civli4Xmm7ggPCBjaG9rdXNob1wgOwor5YWI6K2w5qipIDwgc2VuZ2lrZW5cIDsKK+WFsemAmiA8IGt5b3V0c3V1XCA7Civlj43mipfmnJ8gPCBoYW5rb3VraVwgOwor5pys5Lya6K2wIDwgaG9ua2FpZ2lcIDsKK+WJjeeVpSA8IHplbnJ5YWt1XCA7Civmrormm7QgPCBrb3Rvc2FyYVwgOwor5bym5pyIIDwgZ2VuZ2V0c3VcIDsKK+iLseexs+S6uiA8IGVpYmVpamluXCA7CivkvY7poIbkvY0gPCB0ZWlqdW4nJ2lcIDsKK+ebruiWrCA8IG1lZ3VzdXJpXCA7CivkuI3ogIHms4kgPCBmdXJvdXNlblwgOwor5Y2U5ZWGIDwga3lvdXNob3VcIDsKK+eZvumMrCA8IGh5YWt1cmVuXCA7CivlhazpgZQgPCBrb3V0YXRzdVwgOwor5byx5pW1IDwgamFrdXRla2lcIDsKK+mAhueulyA8IGd5YWt1c2FuXCA7Civpu5njgIUgPCBtb2t1bW9rdVwgOwor5YWr6YGUIDwgaGF0dGF0c3VcIDsKK+WFq+mBkyA8IGhhY2hpZG91XCA7CivljJflsbEgPCBraXRheWFtYVwgOwor5Ym/5ruFIDwgc291bWV0c3VcIDsKK+WQjeWum+S6uiA8IG5hYXRlbmluXCA7CivlkozmsJfol7nol7kgPCB3YWtpYWlhaVwgOwor6Ieq55Sx6KmpIDwgaml5dXVzaGlcIDsKK+W7g+eJqSA8IGhhaWJ1dHN1XCA7Civlhazov7AgPCBrb3VqdXRzdVwgOwor5b+g5L+hIDwgY2h1dXNoaW5cIDsKK+earuizqiA8IGhpc2hpdHN1XCA7Civnn7PmlocgPCBpc2hpYnVtaVwgOwor5b2i5byPIDwga2Vpc2hpa2lcIDsKK+WHi+iQvSA8IGNob3VyYWt1XCA7CivmhI/lv5fnmoQgPCBpc2hpdGVraVwgOwor5Y245YCkIDwgb3Jvc2hpbmVcIDsKK+aIpumXmOWToSA8IHNlbnRvdWluXCA7Civljp/nlLvlg48gPCBnZW5nYXpvdVwgOwor55+t5pelIDwgdGFuaml0c3VcIDsKK+awtOWFiCA8IG1penVzYWtpXCA7Civlt7foqqwgPCBrb3VzZXRzdVwgOwor5aSn6IW/6YOoIDwgZGFpdGFpYnVcIDsKK+WFsei7myA8IGt5b3V5YWt1XCA7Civpu5LjgIUgPCBrdXJvZ3Vyb1wgOwor5Yml54S8IDwgc3VraXlha2lcIDsKK+a7i+izgOecjCA8IHNoaWdha2VuXCA7Civph43msLTntKAgPCBqdXVzdWlzb1wgOwor6YCi552AIDwgaG91Y2hha3VcIDsKK+W7g+eGsSA8IGhhaW5ldHN1XCA7CivkurrpgKDmuZYgPCBqaW56b3Vrb1wgOwor5b255a6FIDwgeWFrdXRha3VcIDsKK+WIsOedgCA8IHRvdWNoYWt1XCA7Civoq4vosqDluKsgPCB1a2VvaXNoaVwgOwor6Iy56Ju4IDwgeXVkZWRha29cIDsKK+awtOa6luWZqCA8IHN1aWp1bmtpXCA7CivmvKvnlLvmnKwgPCBtYW5nYWhvblwgOwor5LiN55yf6Z2i55uuIDwgZnVtYWppbWVcIDsKK+WGjeiqrCA8IHNhaXNldHN1XCA7CivpgKPnmbogPCByZW5wYXRzdVwgOwor5b6p5ZSxIDwgZnVrdXNob3VcIDsKK+efpeaXpSA8IGNoaW5pY2hpXCA7CivlvrTlj44gPCBjaG91c2h1dVwgOwor5YuF5pKwIDwgY2hva3VzZW5cIDsKK+S6kuaPm+aApyA8IGdva2Fuc2VpXCA7CivliIbnr4AgPCBidW5zZXRzdVwgOwor6YWN5YiXIDwgaGFpcmV0c3VcIDsKK+eorueoruebuCA8IHNodWp1c291XCA7Civlh6bnvbAgPCBzaG9iYXRzdVwgOwor5LqI6Ziy5rOVIDwgeW9ib3Vob3VcIDsKK+WuieWFqOeBryA8IGFuemVudG91XCA7CivmrbTmnJ0gPCByZWtpY2hvdVwgOwor5YqH5q+SIDwgZ2VraWRva3VcIDsKK+i/veeptiA8IHRzdWlreXV1XCA7CivmrbPmnKsgPCBzYWltYXRzdVwgOwor5qiq6Lu4IDwgeW9rb2ppa3VcIDsKK+WIhuethiA8IGJ1bnBpdHN1XCA7CivovK/pjLIgPCBzaHV1cm9rdVwgOwor5Y2K5Y+jIDwgaGFua3VjaGlcIDsKK+mBi+mAgeS6uiA8IHVuc291bmluXCA7CivljYHlk7IgPCBqdXR0ZXRzdVwgOwor55m+6YG4IDwgaHlha3VzZW5cIDsKK+S4iummluWwviA8IGpvdXNodWJpXCA7Civku4/oiI7liKkgPCBidXNzaGFyaVwgOwor6IiH5aSq6ICFIDwgeW90YW1vbm9cIDsKK+a6gOWkqeS4iyA8IG1hbnRlbmthXCA7CivlvpfmiYvli53miYsgPCBldGVrYXR0ZVwgOwor5YWI6YeRIDwgc2FraWdhbmVcIDsKK+i7vemjnyA8IGtlaXNob2t1XCA7CivliIbnq4sgPCBidW5yaXRzdVwgOwor5L6h5qC85beuIDwga2FrYWt1c2FcIDsKK+WGheiosyA8IHVjaGl3YWtlXCA7Civov73npo8gPCB0c3VpZnVrdVwgOwor54Sh6Iqx5p6cIDwgaWNoaWppa3VcIDsKK+assua3sSA8IHlva3VidWthXCA7CivkuI3kurrmg4UgPCBmdW5pbmpvdVwgOwor5Zyf5bu65bGLIDwgZG9rZW4nJ3lhXCA7Civmrarmm7IgPCB3YWlreW9rdVwgOwor5YWl6LaFIDwgbnl1dWNob3VcIDsKK+WJsuazqCA8IHdhcmljaHV1XCA7CivmsJHlipsgPCBtaW5yeW9rdVwgOwor6YGu5pat5qmfIDwgc2hhZGFua2lcIDsKK+S5seadreatryA8IHJhbmd1aWJhXCA7CivonYvntLDlt6UgPCByb3V6YWlrdVwgOwor5YyX5aOBIDwgaG9rdWhla2lcIDsKK+eznOeIm+aApyA8IGJpcmFuc2VpXCA7CivosrTlhazlrZAgPCBraWtvdXNoaVwgOwor5buD5ruFIDwgaGFpbWV0c3VcIDsKK+awtOS4iiA8IG1pbmFrYW1pXCA7CivliJ3nm4YgPCBoYXRzdWJvblwgOwor5buJ5L6h54mIIDwgcmVua2FiYW5cIDsKK+ato+acrSA8IHNob3VmdWRhXCA7CivlhaXos54gPCBueXV1c2hvdVwgOwor5YWI6YGUIDwgc2VuZGF0c3VcIDsKK+atouacqCA8IHRvbWFyaWdpXCA7CivnnYDnnLwgPCBjaGFrdWdhblwgOwor5Yid55m6IDwgc2hvaGF0c3VcIDsKK+WOn+WtkOeCiSA8IGdlbnNoaXJvXCA7Civou6Lmj5vngokgPCB0ZW5rYW5yb1wgOwor6buO5piO5pyfIDwgcmVpbWVpa2lcIDsKK+i7n+mqqCA8IG5hbmtvdHN1XCA7Civoj5bokrLmua8gPCBzaG91YnV5dVwgOwor54Sh6aeE6aqoIDwgbXVkYWJvbmVcIDsKK+mhnuS8vOWTgSA8IHJ1aWppaGluXCA7Civpo5vooYzpmoogPCBoaWtvdXRhaVwgOwor5b2T5bGAIDwgdG91a3lva3VcIDsKK+auuuWusyA8IHNhdHN1Z2FpXCA7Civph5Hps7PoirEgPCBraW5wb3VnZVwgOwor6buS6Zuy5q+NIDwga3Vyb3VubW9cIDsKK+iQveaOjCA8IHJha3VzaG91XCA7Civnm7jmiYvmlrkgPCBhaXRlZ2F0YVwgOwor5LiN5a6M5YWoIDwgZnVrYW56ZW5cIDsKK+W8t+W8sSA8IGt5b3VqYWt1XCA7Civlv4PkuK0gPCBzaGluY2h1dVwgOwor56WW5Zu95oSbIDwgc29rb2t1YWlcIDsKK+W5s+eavyA8IGhpcmF6YXJhXCA7Civli5/pm4bosrsgPCBib3NodXVoaVwgOwor5Yid55SjIDwgaGF0c3V6YW5cIDsKK+W4uOe3kSA8IGpvdXJ5b2t1XCA7CivnlJ/nlKPosrsgPCBzZWlzYW5oaVwgOwor57Wx5ZCI5YyWIDwgdG91Z291a2FcIDsKK+aXheihjOWutiA8IHJ5b2tvdWthXCA7CivnpL7lpJbnp5ggPCBzaGFnYWloaVwgOwor5Y2X5LuPIDwgbmFuZnV0c3VcIDsKK+W+k+S+oeeojiA8IGp1dWthemVpXCA7CivljYHlhasgPCBqdXVoYWNoaVwgOwor5L2/5b6S5pu4IDwgc2hpdG9zaG9cIDsKK+mBqealrSA8IHRla2lneW91XCA7CivprLHprLEgPCB1dHN1dXRzdVwgOwor6L+955m9IDwgdHN1aWhha3VcIDsKK+W+k+WNkiA8IGp1dXNvdHN1XCA7CivlvqHlhqAgPCBva2FubXVyaVwgOwor5b6L5ZGCIDwgcml0c3VyeW9cIDsKK+i+o+iFlSA8IHJhdHN1d2FuXCA7CivnnYDnlKggPCBjaGFrdXlvdVwgOwor6YCG55SoIDwgZ3lha3V5b3VcIDsKK+mAhueUoyA8IGd5YWt1emFuXCA7Civlha3opqogPCByb2t1c2hpblwgOwor5b6M5Y+jIDwgYXRva3VjaGlcIDsKK+WvneWMlueypyA8IG5lZ2VzaG91XCA7CivlibXkuJbmnJ8gPCBzb3VzZWlraVwgOwor6YeR55uu6a+bIDwga2lubWVkYWlcIDsKK+WNmOS4gCA8IHRhbicnaXRzdVwgOwor5biv57eRIDwgdGFpcnlva3VcIDsKK+efs+W8kyA8IGlzaGl5dW1pXCA7Civpgbjmm7IgPCBzZW5reW9rdVwgOwor6YCa54mSIDwgdHN1dWNob3VcIDsKK+S4iuS4i+e3miA8IGpvdWdlc2VuXCA7CivnkIbkuovlm70gPCByaWppa29rdVwgOwor5rC05rqW5YSAIDwgc3VpanVuZ2lcIDsKK+WGjeS/nemZuiA8IHNhaWhva2VuXCA7CivnnIznq4sgPCBrZW5yaXRzdVwgOwor5Yil54q2IDwgYmV0c3Vqb3VcIDsKK+S4i+mmrOWFiCA8IGdlYmFzYWtpXCA7Civlh43ntZAgPCB0b3VrZXRzdVwgOwor5a+E5LuY6KGM54K6IDwga2lmdWtvdWlcIDsKK+azieiyqOe0mSA8IHNlbmthc2hpXCA7CivlvqHku6TlrKIgPCBnb3JlaWpvdVwgOwor5bed6J2JIDwga2F3YXNlbWlcIDsKK+mDt+WbvSA8IGt5b3Vrb2t1XCA7Civov73nlLMgPCB0c3Vpc2hpblwgOwor6Zu75rCX6KGXIDwgZGVua2lnYWlcIDsKK+egguWxsSA8IHN1bmF5YW1hXCA7Civlvovli5UgPCByaXRzdWRvdVwgOwor5q2j5o6lIDwgc2Vpc2V0c3VcIDsKK+i/q+ecnyA8IGhha3VzaGluXCA7Civou43mlL/pg6ggPCBndW5zZWlidVwgOwor5b6h6aGM55uuIDwgb2RhaW1va3VcIDsKK+ecgeethiA8IHNlaWhpdHN1XCA7CivlvJ/lvqEgPCBvdG91dG9nb1wgOwor5YeE57W2IDwgc2VpemV0c3VcIDsKK+W+jOWIlyA8IGtvdXJldHN1XCA7CivnhKHkv53oqLwgPCBtdWhvc2hvdVwgOwor5Y+v5YiG5oCnIDwga2FidW5zZWlcIDsKK+S6nOmJm+mJhCA8IGFlbnRldHN1XCA7Civli5XlronlrpogPCBkb3VhbnRlaVwgOwor5bm0546HIDwgbmVucml0c3VcIDsKK+WIkeS6i+S4iiA8IGtlaWppam91XCA7CivlpbPmgKfnlKggPCBqb3NlaXlvdVwgOwor5YaX6IiMIDwgam91emV0c3VcIDsKK+aomeiouyA8IGh5b3VjaHV1XCA7CivnnJ/nmb0gPCBtYXNzaGlyb1wgOwor5YW46JasIDwgdGVuJyd5YWt1XCA7Civkub7nh6XngokgPCBrYW5zb3Vyb1wgOwor5byx5bCRIDwgamFrdXNob3VcIDsKK+iCsuWFkOazlSA8IGlrdWppaG91XCA7Civnm7TnrZQgPCBjaG9rdXRvdVwgOwor55+z5bGxIDwgaXNoaXlhbWFcIDsKK+iMnOiJsiA8IGFrYW5laXJvXCA7CivnmbroqIAgPCBoYXRzdWdlblwgOwor5oSb6bOl5a62IDwgYWljaG91a2FcIDsKK+acrOiInuWPsCA8IGhvbmJ1dGFpXCA7CivlgIvkurrmgKcgPCBrb2ppbnNlaVwgOwor5byT5b2iIDwgeXVtaW5hcmlcIDsKK+WJr+acqCA8IGZ1a3Vib2t1XCA7Civkvp3lrZjnl4cgPCBpem9uc2hvdVwgOwor55yf55eHIDwgc2hpbnNob3VcIDsKK+WKo+aDhSA8IHJldHN1am91XCA7CivmgqrmgKfluqYgPCBha3VzZWlkb1wgOwor5Yal572wIDwgbWVpYmF0c3VcIDsKK+elnuOAhSA8IGthbWlnYW1pXCA7CivliqPmgqogPCByZXRzdWFrdVwgOwor6a6u6KGAIDwgc2Vua2V0c3VcIDsKK+e+jueUt+WtkCA8IGJpbmFuc2hpXCA7CivlvbnlibIgPCB5YWt1d2FyaVwgOwor55+z5a6kIDwgaXNoaW11cm9cIDsKK+iLpeihhiA8IHdha2FzaHV1XCA7Civmr43lkJsgPCBoYWhhZ2ltaVwgOwor6Zu75rOi5rOVIDwgZGVucGFob3VcIDsKK+i7jeS6i+S4iiA8IGd1bmppam91XCA7CivlubPnhrEgPCBoZWluZXRzdVwgOwor55u056iOIDwgY2hva3V6ZWlcIDsKK+i/keedgCA8IGtpbmNoYWt1XCA7CivpgZPmnb8gPCBtaWNoaWl0YVwgOwor54OP54qA6KeSIDwgdXNhaWtha3VcIDsKK+efqeWwuiA8IGthbmVqYWt1XCA7CivlgY/lvq7liIYgPCBoZW5iaWJ1blwgOwor57Sg5a+S6LKnIDwgc3VrYW5waW5cIDsKK+ixmuWwj+WxiyA8IGJ1dGFnb3lhXCA7Civlu7bmu57nqI4gPCBlbnRhaXplaVwgOwor6YG45oqcIDwgc2VuYmF0c3VcIDsKK+WGpeeOi+aYnyA8IG1laW91c2VpXCA7Civlhobnm6TnirYgPCBlbmJhbmpvdVwgOwor55m96J+7IDwgc2hpcm9hcmlcIDsKK+W8t+WlqiA8IGdvdWRhdHN1XCA7CivolLXmm7jlrrYgPCB6b3VzaG9rYVwgOwor6Yyy6Z+z5qmfIDwgcm9rdW9ua2lcIDsKK+mBjuiIrOadpSA8IGthaGFucmFpXCA7CivpkZrlrZTmqZ8gPCBzYW5rb3VraVwgOwor5LiA6Iis5Lq6IDwgaXBwYW5qaW5cIDsKK+WIuuauuiA8IHNoaXNhdHN1XCA7Civlh6Hnmb4gPCBib25weWFrdVwgOwor5b6L5LukIDwgcml0c3VyZWlcIDsKK+ebuOaJi+W9uSA8IGFpdGV5YWt1XCA7CivlhoXohb8gPCB1Y2hpbW9tb1wgOwor5q2p5ZCI57WmIDwgYnVhaWt5dXVcIDsKK+S6leaIuOe2sSA8IGlkb2R6dW5hXCA7Civml6Lnn6XmlbAgPCBraWNoaXN1dVwgOwor6LuN6ZalIDwgZ3VuYmF0c3VcIDsKK+W3peWLmeW6lyA8IGtvdW11dGVuXCA7CivluaPniakgPCBoZWltb3RzdVwgOwor6YC45qW9IDwgaXRzdXJha3VcIDsKK+mAn+axuiA8IHNva2tldHN1XCA7CivljJflgbQgPCBob2t1c29rdVwgOwor5LiA5pyx6YqAIDwgaXNzaHVnaW5cIDsKK+W9q+WIuyA8IGNob3Vrb2t1XCA7CivpgIbmva4gPCBzYWthc2hpb1wgOwor56Cy5YiXIDwgaG91cmV0c3VcIDsKK+iIquepuuapnyA8IGtvdWt1dWtpXCA7Civpu5LnubvlrZAgPCBrdXJvanVzdVwgOwor55m76KiY5omAIDwgdG91a2lzaG9cIDsKK+ato+W8jyA8IHNlaXNoaWtpXCA7CivpganmmYLmiZMgPCB0ZWtpamlkYVwgOwor5Yag57W2IDwga2FuemV0c3VcIDsKK+auv+WOnyA8IHRvbm9iYXJhXCA7Civlh7jnirYgPCB0b3RzdWpvdVwgOwor5ZCI55CG5oCnIDwgZ291cmlzZWlcIDsKK+mBlOaWhyA8IHRhdHN1YnVuXCA7CivlvoHkvJAgPCBzZWliYXRzdVwgOwor5bm75ruFIDwgZ2VubWV0c3VcIDsKK+W8vuWcpyA8IGRhbicnYXRzdVwgOwor6Lu96Lu9IDwga2FydWdhcnVcIDsKK+mZsOmbu+WtkCA8IGluZGVuc2hpXCA7CivlhYXooYAgPCBqdXVrZXRzdVwgOwor5YaF6IG3IDwgbmFpc2hva3VcIDsKK+WKqeWLleipniA8IGpvZG91c2hpXCA7CivmhbDol4nmlpkgPCBpc2hhcnlvdVwgOwor6Luf6YmEIDwgbmFudGV0c3VcIDsKK+ihm+eUn+WFtSA8IGVpc2VpaGVpXCA7Civnn7PloqggPCBzZWtpYm9rdVwgOwor5L2O54mp5L6hIDwgdGVpYnVra2FcIDsKK+WAi+S6uuWxlSA8IGtvamludGVuXCA7Civlrp/kvZPljJYgPCBqaXR0YWlrYVwgOwor5Yik5rG6IDwgaGFua2V0c3VcIDsKK+efreWknCA8IG1pamlrYXlvXCA7CivlvLflnKcgPCBreW91YXRzdVwgOwor6YKq6a2U6ICFIDwgamFtYW1vbm9cIDsKK+W5s+a7kSA8IGhlaWthdHN1XCA7CivprKLplbcgPCBiaW4nJ25hZ2FcIDsKK+exs+itsOS8miA8IGJlaWdpa2FpXCA7CivnhKHlsL3olLUgPCBtdWppbnpvdVwgOwor5YaG572QIDwgbWFydWdhbWFcIDsKK+ebtOebtCA8IGppa2lqaWtpXCA7Civlt7vntJkgPCBtYWtpZ2FtaVwgOwor5YW86IG3IDwga2Vuc2hva3VcIDsKK+i7ouaPm+acnyA8IHRlbmthbmtpXCA7CivmrKDmlocgPCBrZXRzdWJ1blwgOwor5Luj6K2w5aOrIDwgZGFpZ2lzaGlcIDsKK+m8u+a/gemfsyA8IGJpZGFrdW9uXCA7CivlhqznqbogPCBmdXl1em9yYVwgOwor6YGF5pelIDwgY2hpaml0c3VcIDsKK+WIpeauvyA8IGJldHN1ZGVuXCA7CivliKXmrrUgPCBiZXRzdWRhblwgOwor6YCG5rWqIDwgc2FrYW5hbWlcIDsKK+eZveiTriA8IGJ5YWt1cmVuXCA7Civnn7PlnqMgPCBpc2hpZ2FraVwgOwor6auY6Zu75L2NIDwga291ZGVuJydpXCA7CivmjIHlj4Lph5EgPCBqaXNhbmtpblwgOwor5ZSv55CG6KuWIDwgeXVpcmlyb25cIDsKK+i7uOi2syA8IGppa3Vhc2hpXCA7CivlkI3mnJvlrrYgPCBtZWlib3VrYVwgOwor5aSa5YWD6KuWIDwgdGFnZW5yb25cIDsKK+ebrueahCA8IG1va3V0ZWtpXCA7CivokKnlsZ4gPCBoYWdpem9rdVwgOwor6Ieq5qOE57OeIDwgeWFrZWt1c29cIDsKK+ato+espuWPtyA8IHNlaWZ1Z291XCA7CivnhKHnlKPogIUgPCBtdXNhbnNoYVwgOwor6YCf5qWtIDwgaGF5YXdhemFcIDsKK+iCsuWFkOabuCA8IGlrdWppc2hvXCA7CivluILnq4sgPCBzaGlyaXRzdVwgOwor6Iul6I2JIDwgd2FrYWt1c2FcIDsKK+Wumuacn+iIuSA8IHRlaWtpc2VuXCA7CivnnYDmsLQgPCBjaGFrdXN1aVwgOwor5omL5byB5b2TIDwgdGViZW50b3VcIDsKK+S5vueHpeapnyA8IGthbnNvdWtpXCA7CivkuInml6XplpMgPCBtaWtrYWthblwgOwor5Y2B5LqM5YiGIDwganV1bmlidW5cIDsKK+eoveWPpOWPsCA8IGtlaWtvZGFpXCA7Civou6LovY0gPCB0ZW50ZXRzdVwgOwor6bCQ55quIDwgd2FuaWdhd2FcIDsKK+atouWuvyA8IHNoaXNodWt1XCA7CivoirjooZMgPCBnZWlqdXRzdVwgOwor5YWI6aCt5LyNIDwgc2VudG91Z29cIDsKK+ato+WulyA8IG1hc2FtdW5lXCA7CivmqKrohbkgPCB5b2tvYmFyYVwgOwor5YaX562GIDwgam91aGl0c3VcIDsKK+WFrOiBtyA8IGtvdXNob2t1XCA7CivlkITjgIUgPCBzb3Jlem9yZVwgOwor5YiD5rihIDwgaGF3YXRhcmlcIDsKK+mzqeWwviA8IG1pem9vY2hpXCA7Civlh7rmnaXpq5ggPCBkZWtpZGFrYVwgOwor5Ye65ryUIDwgc2h1dHN1ZW5cIDsKK+mBqeW9uSA8IHRla2l5YWt1XCA7CivouqvplbcgPCBzaGluY2hvdVwgOwor5LiJ5LiW55u4IDwgc2FuemVzb3VcIDsKK+WKm+WtpiA8IHJpa2lnYWt1XCA7CivoibLpgZMgPCBzaGlraWRvdVwgOwor55m+6Iq4IDwgaHlha3VnZWlcIDsKK+S5juWPpOatoueCuSA8IG9rb3RvdGVuXCA7Civli6LlipsgPCBzZWlyeW9rdVwgOwor6Ii56ZyKIDwgZnVuYWRhbWFcIDsKK+mBi+aguemIjSA8IHVua29uZG9uXCA7CivnoILljp8gPCBzdW5haGFyYVwgOwor5b2O5YWlIDwgd2FuJydueXV1XCA7CivooZvnlJ/kuIogPCBlaXNlaWpvdVwgOwor5Yi25pytIDwgc2Vpc2F0c3VcIDsKK+alvemVtyA8IGdha3VjaG91XCA7Civnm7TnkIMgPCBjaG9ra3l1dVwgOwor5Yy75a2m5aOrIDwgaWdha3VzaGlcIDsKK+iri+iyoOS6uiA8IHVrZW9pbmluXCA7CivmpbXpmZAgPCBreW9rdWdlblwgOwor6a6r6IaaIDwgc2FtZWhhZGFcIDsKK+aWremdouWbsyA8IGRhbm1lbnp1XCA7CivnmbroibIgPCBoYXNzaG9rdVwgOwor6Jma5Luu54y/IDwga29rZXphcnVcIDsKK+acquS9v+eUqCA8IG1pc2hpeW91XCA7Civpm7vms6LmmJ8gPCBkZW5wYXNlaVwgOwor6JGs5YiXIDwgc291cmV0c3VcIDsKK+WLheWVjyA8IGNob2t1bW9uXCA7CivlvL7lipsgPCBkYW5yeW9rdVwgOwor5byP5aC0IDwgc2hpa2lqb3VcIDsKK+mrmOmrmCA8IHRha2FkYWthXCA7Civpn7Ppn7voq5YgPCBvbicnaW5yb25cIDsKK+WJsuW8lSA8IHdhcmliaWtpXCA7CivmqZ/morDlt6UgPCBraWthaWtvdVwgOwor5qyy5b+DIDwgeW9rdXNoaW5cIDsKK+WGjeWwgemOliA8IHNhaWZ1dXNhXCA7CivliZTmiokgPCB0ZWtrZXRzdVwgOwor6Ziy5rOi5aCkIDwgYm91aGF0ZWlcIDsKK+assuW+lyA8IHlva3V0b2t1XCA7CivpgYvou6LmiYsgPCB1bnRlbnNodVwgOwor6a6u6IKJIDwgc2VuJyduaWt1XCA7CivpgIbmp5ggPCBzYWthc2FtYVwgOwor6YCy5pKDIDwgc2hpbmdla2lcIDsKK+S6ieimh+aIpiA8IHNvdWhhc2VuXCA7Civpu5LmloflrZcgPCBrdXJvbW9qaVwgOwor54Sh6aeE6LazIDwgbXVkYWFzaGlcIDsKK+WLleWKmyA8IGRvdXJ5b2t1XCA7Civli4Xlkb0gPCBjaG9rdW1laVwgOwor552A54mp5ZywIDwga2ltb25vamlcIDsKK+Wkluawl+WcjyA8IGdhaWtpa2VuXCA7Civlh5vng4ggPCByaW5yZXRzdVwgOwor6ZaL5Lya5pelIDwga2Fpa2FpYmlcIDsKK+eUseadpeabuCA8IHl1cmFpc2hvXCA7Civmrablo6sgPCBtb25vbm9mdVwgOwor6bWd5Y+j55ihIDwgZ2Frb3Vzb3VcIDsKK+auuuS6uiA8IHNhdHN1amluXCA7Civlg63otoogPCBzZW4nJ2V0c3VcIDsKK+mAo+aXpSA8IHJlbmppdHN1XCA7CivmraPlpKIgPCBtYXNheXVtZVwgOwor5Lm+54el5p6cIDwga2Fuc291a2FcIDsKK+WIt+aVsCA8IHNhdHN1c3V1XCA7Civou4vovaIgPCBhdHN1cmVraVwgOwor5a6J5YWo5oCnIDwgYW56ZW5zZWlcIDsKK+WEsuiThCA8IGNob2NoaWt1XCA7Civlr4zlo6vkupTmuZYgPCBmdWppZ29rb1wgOwor5YaG56qTIDwgbWFydW1hZG9cIDsKK+iLpeiAhSA8IHdha2Ftb25vXCA7Civou4rovYQgPCBzaGFrYXRzdVwgOwor5oGQ44CFIDwga293YWdvd2FcIDsKK+mAmuaagSA8IHRzdXVneW91XCA7CivliY3miZUgPCBtYWViYXJhaVwgOwor55m+6IGeIDwgaHlha3VidW5cIDsKK+aYr+aYr+mdnumdniA8IHplemVoaWhpXCA7CivnmbrogrIgPCBoYXRzdWlrdVwgOwor6YCQ5p2hIDwgY2hpa3Vqb3VcIDsKK+ebiuebiiA8IG1hc3VtYXN1XCA7CivmqKrnuJ4gPCB5b2tvamltYVwgOwor6YGU5byBIDwgdGF0c3ViZW5cIDsKK+aghOmkiuWjqyA8IGVpeW91c2hpXCA7Civlj7DluIPlt74gPCBkYWlidWtpblwgOwor5bej56qfIDwgc291a3V0c3VcIDsKK+W3neetiyA8IGthd2FzdWppXCA7Civmp4vmiJDlk6EgPCBrb3VzZWlpblwgOwor5YWN6IG3IDwgbWVuc2hva3VcIDsKK+aooeevhOeUnyA8IG1vaGFuc2VpXCA7Civpp4bli5XovKogPCBrdWRvdXJpblwgOwor5YuH5YqbIDwgeXV1cnlva3VcIDsKK+W3neerryA8IGthd2FiYXRhXCA7Civli4HljZIgPCBrZWlzb3RzdVwgOwor5p2x5rSL5Y+yIDwgdG95b2Z1bWlcIDsKK+WGheelnSA8IHVjaGlpd2FpXCA7CivojYnniakgPCBrdXNhbW9ub1wgOwor5bKz6bqTIDwgZ2FrdXJva3VcIDsKK+WIhualtSA8IGJ1bmt5b2t1XCA7Civmp43ooZMgPCBzb3VqdXRzdVwgOwor6YCj5o6lIDwgcmVuc2V0c3VcIDsKK+WNmOeyvuW6piA8IHRhbnNlaWRvXCA7CivngavmnKjlnJ8gPCBrYW1va3Vkb1wgOwor5Luj6K2w5Yi2IDwgZGFpZ2lzZWlcIDsKK+acquWumueovyA8IG1pdGVpa291XCA7CivlhaXnsY0gPCBueXV1c2VraVwgOwor5LiW6Kmx54mpIDwgc2V3YW1vbm9cIDsKK+WJr+WvqSA8IGZ1a3VzaGluXCA7Civnn6XlipsgPCBjaGlyeW9rdVwgOwor5Ymy5a6JIDwgd2FyaXlhc3VcIDsKK+WHpuaxuiA8IHNob2tldHN1XCA7CivlubTmnKsgPCBuZW5tYXRzdVwgOwor5bm+5pelIDwgaWt1bmljaGlcIDsKK+W5tOaciCA8IG5lbmdldHN1XCA7CivliIfmoKogPCBraXJpa2FidVwgOwor5Yq55YqbIDwga291cnlva3VcIDsKK+ims+aIpuiomCA8IGthbnNlbmtpXCA7CivlpKnnk5znsokgPCB0ZW5rYWZ1blwgOwor6aq46aqoIDwgZ2Fpa290c3VcIDsKK+W9ouaIkOacnyA8IGtlaXNlaWtpXCA7CivmlL7mmKDmqKkgPCBob3VlaWtlblwgOwor5byP5Y+wIDwgc2hpa2lkYWlcIDsKK+ebo+imluaJgCA8IGthbnNoaWpvXCA7CivpqqjpsZcgPCBrb3RzdXJpblwgOwor5b6h5pys5bCKIDwgZ29ob256b25cIDsKK+WNmOe0lOWMliA8IHRhbmp1bmthXCA7CivlgIvkurrlkI0gPCBrb2ppbm1laVwgOwor5qSc55y85Yy7IDwga2VuZ2FuJydpXCA7Civlho3nmbogPCBzYWloYXRzdVwgOwor5q275YqbIDwgc2hpcnlva3VcIDsKK+acqui4j+WzsCA8IG1pdG91aG91XCA7CivlirTlipsgPCByb3VyeW9rdVwgOwor5qiq562LIDwgeW9rb3N1amlcIDsKK+aWreaWreWbuiA8IGRhbmRhbmtvXCA7Civlt4znqp8gPCBnYW5rdXRzdVwgOwor5Yas54mpIDwgZnV5dW1vbm9cIDsKK+mAhuaVsCA8IGd5YWt1c3V1XCA7CivlhY7ntrIgPCB1c2FnaWFtaVwgOwor5pqW5oi/5ZmoIDwgZGFuYm91a2lcIDsKK+eZveezuCA8IHNoaXJhaXRvXCA7CivmrbvliKUgPCBzaGliZXRzdVwgOwor5YiH5pytIDwga2lyaWZ1ZGFcIDsKK+aWoeaXi+iAhSA8IGFzc2Vuc2hhXCA7CivliIfmnJsgPCBzZXRzdWJvdVwgOwor5bmz5pelIDwgaGVpaml0c3VcIDsKK+W3puebriA8IGhpZGFyaW1lXCA7Civou73olJEgPCBrZWliZXRzdVwgOwor5LuP55Sf5LyaIDwgYnVzc2hvdWVcIDsKK+WJo+WuoiA8IGtlbmt5YWt1XCA7CivlhoXnmbogPCBuYWloYXRzdVwgOwor6KaP5qC85YyWIDwga2lrYWt1a2FcIDsKK+WPuOS7pOmDqCA8IHNoaXJlaWJ1XCA7CivmhI/ljKDmqKkgPCBpc2hvdWtlblwgOwor6IqL6JmrIDwgaW1vbXVzaGlcIDsKK+aki+mzpSA8IG11a3Vkb3JpXCA7CivlubPmlL8gPCBoaXJhbWFzYVwgOwor5bCK5pWs6KqeIDwgc29ua2VpZ29cIDsKK+mqqOmrhCA8IGtvdHN1enVpXCA7CivlvaLmhYvntKAgPCBrZWl0YWlzb1wgOwor55uu5risIDwgbW9rdXNva3VcIDsKK+WFg+e3oCA8IG1vdG9qaW1lXCA7CivmiJHliKnmiJHliKkgPCBnYXJpZ2FyaVwgOwor55+z5LqAIDwgaXNoaWdhbWVcIDsKK+WFiOe0sCA8IHNha2lib3NvXCA7Civli4Xku7sgPCBjaG9rdW5pblwgOwor55+b5YWIIDwgaG9rb3Nha2lcIDsKK+e+juWwkeWlsyA8IGJpc2hvdWpvXCA7CivluqbluqYgPCB0YWJpdGFiaVwgOwor5YaG6YGL5YuVIDwgZW4nJ3VuZG91XCA7Civli4Xku6QgPCBjaG9rdXJlaVwgOwor5YWI57SEIDwgc2VuJyd5YWt1XCA7CivosaHniZnoibIgPCB6b3VnZWlyb1wgOwor6JCp5Y6fIDwgaGFnaXdhcmFcIDsKK+WFpeelniA8IG55dXVzaGluXCA7Civmra/liJcgPCBzaGlyZXRzdVwgOwor5YiH5patIDwgc2V0c3VkYW5cIDsKK+W7g+WroSA8IGhhaWNoYWt1XCA7CivmrarlipsgPCB3YWlyeW9rdVwgOwor5byP5YW4IDwgc2hpa2l0ZW5cIDsKK+ioseWPr+abuCA8IGt5b2thc2hvXCA7Civov73mkoMgPCB0c3VpZ2VraVwgOwor5ZWG6K2w5ZOhIDwgc2hvdWdpaW5cIDsKK+W+oeS4gOaWsCA8IGdvaXNzaGluXCA7CivoiovolJMgPCBpbW9kenVydVwgOwor5oSJ5b+r54qvIDwgeXVrYWloYW5cIDsKK+W3u+eJqSA8IG1ha2ltb25vXCA7CivmjIfnpLrmnb8gPCBzaGlqaWJhblwgOwor55u45q66IDwgc291c2F0c3VcIDsKK+WGl+eJqSA8IGpvdWJ1dHN1XCA7CivpiYTlt6XmiYAgPCB0ZWtrb3Vqb1wgOwor5YmN5bGIIDwgemVua3V0c3VcIDsKK+WIs+W9oiA8IGt1cmlrYXRhXCA7CivntYzllrbpm6MgPCBrZWllaW5hblwgOwor5q2j5YmyIDwgc2Vpa2F0c3VcIDsKK+i6jemAsiA8IHlha3VzaGluXCA7CivlvIHliKUgPCBiZW5iZXRzdVwgOwor6Zmw6Zm95birIDwgb24nJ3lvdWppXCA7Civmj5vmsJfmiYcgPCBrYW5raXNlblwgOwor6Z2e5ZCI5rOVIDwgaGlnb3Vob3VcIDsKK+mjm+ihjOiJhyA8IGhpa291dGVpXCA7CivnnYDmiYsgPCBjaGFrdXNodVwgOwor6aOb6KGM6Ii5IDwgaGlrb3VzZW5cIDsKK+e1jOWWtumZoyA8IGtlaWVpamluXCA7CivlvqHmnaXlhYkgPCBnb3JhaWtvdVwgOwor5LiN5pat6I2JIDwgZnVkYW5zb3VcIDsKK+iMtua8rCA8IGNoYWR6dWtlXCA7CivnlZnps6UgPCByeXV1Y2hvdVwgOwor5qCE6aSK5YmkIDwgZWl5b3V6YWlcIDsKK+iIuei2syA8IGZ1bmFhc2hpXCA7CivpgKPpjpblupcgPCByZW5zYXRlblwgOwor5YW155WlIDwgaGVpcnlha3VcIDsKK+eZveelqCA8IGhha3VoeW91XCA7CivlhbXms5XlrrYgPCBoZWlob3VrYVwgOwor6aC75bqm5pWwIDwgaGluZG9zdXVcIDsKK+izh+acrOWutiA8IHNoaWhvbmthXCA7CivlgY/po58gPCBoZW5zaG9rdVwgOwor5pyA5Y+z57+8IDwgc2FpdXlva3VcIDsKK+aghOmkiuWIhiA8IGVpeW91YnVuXCA7CivmrYzlkIggPCB1dGFhd2FzZVwgOwor6LqR6LqFIDwgdHN1dHN1amlcIDsKK+atjOWPoyA8IHV0YWd1Y2hpXCA7CivpsLnmnKggPCBrYXRzdW9naVwgOwor6L+r5pKDIDwgaGFrdWdla2lcIDsKK+WPr+WHpuWIhiA8IGthc2hvYnVuXCA7CivmsbLjgIUgPCBreXV1a3l1dVwgOwor6JKZ5Y+k5paRIDwgbW91a29oYW5cIDsKK+WIneaBiyA8IGhhdHN1a29pXCA7CivlhYjnqIsgPCBzYWtpaG9kb1wgOwor6Ii56LODIDwgZnVuYWNoaW5cIDsKK+iMtua4iyA8IGNoYXNoaWJ1XCA7CivpgI/lvrkgPCB0b3V0ZXRzdVwgOwor55eF6LqrIDwgYnlvdXNoaW5cIDsKK+WvkueoveWPpCA8IGthbmdlaWtvXCA7CivnrKzkuInntIAgPCBkYWlzYW5raVwgOwor5qaC6KqsIDwgZ2Fpc2V0c3VcIDsKK+W6iuW6lyA8IHRva29taXNlXCA7CivnoILpoqjlkYIgPCBzdW5hYnVyb1wgOwor6YGL6Lui5aOrIDwgdW50ZW5zaGlcIDsKK+esrOS4gOe3miA8IGRhaWlzc2VuXCA7Civoia/olqwgPCByeW91eWFrdVwgOwor5qyg5aC0IDwga2V0c3Vqb3VcIDsKK+WIh+aIuyA8IHNldHN1cmFpXCA7CivmqJnnn7MgPCBoeW91c2VraVwgOwor5YG96YeRIDwgbmlzZWdhbmVcIDsKK+ebruaomSA8IG1va3VoeW91XCA7CivpioDooYzlrrYgPCBnaW5rb3VrYVwgOwor5Yqb5YCGIDwgcmlraXJ5b3VcIDsKK+mBuOWIpSA8IHNlbmJldHN1XCA7CivliLrlrqIgPCBzaGlreWFrdVwgOwor5LiJ5LuZ5Y+JIDwgc2Fuc2Vuc2FcIDsKK+mAkOW5tCA8IGNoaWt1bmVuXCA7Civprqvnmq4gPCBzYW1lZ2F3YVwgOwor5bqD5bqDIDwgaGlyb2Jpcm9cIDsKK+WGjeW3peS6iyA8IHNhaWtvdWppXCA7CivmqKrnlLogPCB5b2tvY2hvdVwgOwor6KOP5pel5pysIDwgdXJhbmlob25cIDsKK+iiq+WCreiAhSA8IGhpeW91c2hhXCA7Civov5Hml6UgPCBraW5qaXRzdVwgOwor5bqD5bmFIDwgaGlyb2hhYmFcIDsKK+WKm+S9nCA8IHJpa2lzYWt1XCA7CivmpJzplrIgPCBrZW4nJ2V0c3VcIDsKK+eerOWIuyA8IHNodW5rb2t1XCA7CivnmbrnnYAgPCBoYXRjaGFrdVwgOwor5qW16KuWIDwga3lva3Vyb25cIDsKK+edgOW8viA8IGNoYWt1ZGFuXCA7Civou73msLTngokgPCBrZWlzdWlyb1wgOwor5YW454mpIDwgdGVuYnV0c3VcIDsKK+iHqueUsea4ryA8IGppeXV1a291XCA7CivlvqHmm7nlrZAgPCBvbnpvdXNoaVwgOwor6Ziy5rC05omJIDwgYm91c3VpaGlcIDsKK+eZveeamSA8IGhha3VzZWtpXCA7CivlsYXlv4PlnLAgPCBpZ29rb2NoaVwgOwor5Zyw5LiL6YGTIDwgY2hpa2Fkb3VcIDsKK+eZveeZvSA8IGhha3VoYWt1XCA7CivliIfmg4UgPCBzZXRzdWpvdVwgOwor5YiR5b6LIDwga2Vpcml0c3VcIDsKK+aomeeahCA8IGh5b3V0ZWtpXCA7Civlh7rmiYAgPCBkZWRva29yb1wgOwor54Sh6aeE6IqxIDwgbXVkYWJhbmFcIDsKK+i/veW+tCA8IHRzdWljaG91XCA7CivnnYDlupUgPCBjaGFrdXRlaVwgOwor5YWa55WlIDwgdG91cnlha3VcIDsKK+eEoeWumuimiyA8IG11dGVpa2VuXCA7CivluorlsbEgPCB0b2tveWFtYVwgOwor55eb6KaaIDwgdHN1dWtha3VcIDsKK+W5tOW8jyA8IG5lbnNoaWtpXCA7CivnmbrnmYwgPCBoYXRzdWdhblwgOwor552A5bi9IDwgY2hha3Vib3VcIDsKK+WGhea/oCA8IHVjaGlib3JpXCA7CivlhYjnnYAgPCBzZW5jaGFrdVwgOwor552A5bivIDwgY2hha3V0YWlcIDsKK+W4uOaYpSA8IHRva29oYXJ1XCA7Civnvo7lrrnluKsgPCBiaXlvdXNoaVwgOwor55m654Gr54K5IDwgaGFra2F0ZW5cIDsKK+iNt+aNjCA8IG5pc2FiYWtpXCA7CivlubPluq0gPCBoaXJhbml3YVwgOwor5bGx6bOpIDwgeWFtYWJhdG9cIDsKK+WxsemzpSA8IHlhbWFkb3JpXCA7CivpgJrlraYgPCB0c3V1Z2FrdVwgOwor55Wc6aGeIDwgY2hpa3VydWlcIDsKK+W5s+W6lSA8IGhpcmF6b2tvXCA7CivlhaXnjYQgPCBueXV1Z29rdVwgOwor5YWs54i1IDwga291c2hha3VcIDsKK+iJsuiJtiA8IGlyb3RzdXlhXCA7CivlubPluZUgPCBoaXJhbWFrdVwgOwor54++5Luj5YyWIDwgZ2VuZGFpa2FcIDsKK+WFiOeZuiA8IHNlbnBhdHN1XCA7Civnpo/kupXnnIwgPCBmdWt1aWtlblwgOwor55m955OcIDwgc2hpcm91cmlcIDsKK+S4jeaVrOiZlCA8IGZ1a2Vpa2VuXCA7Civov5HmjqUgPCBraW5zZXRzdVwgOwor5LiB5a2Q5rK5IDwgY2hvdWppeXVcIDsKK+i7ouiBtyA8IHRlbnNob2t1XCA7CivpgI/lr58gPCB0b3VzYXRzdVwgOwor5YqH5L2cIDwgZ2VraXNha3VcIDsKK+iyoeWLmeWumCA8IHphaW11a2FuXCA7CivmlpnnkIblsYsgPCByeW91cml5YVwgOwor6Lu457SiIDwgamlrdXNha3VcIDsKK+W4reaWmSA8IHNla2lyeW91XCA7CivmrKDlj7cgPCBrZXRzdWdvdVwgOwor5YGc6LuK5aC0IDwgdGVpc2hhYmFcIDsKK+aEn+WFieW6piA8IGthbmtvdWRvXCA7CivnhKHog73ogIUgPCBtdW5vdXNoYVwgOwor55m+542jIDwgaHlha3VqdXVcIDsKK+WDmuiIuSA8IHRvbW9idW5lXCA7CivnnJ/lv4MgPCBtYWdva29yb1wgOwor5YqH5LitIDwgZ2VraWNodXVcIDsKK+i5hOmJhCA8IHRlaXRldHN1XCA7CivkuqTlj4nngrkgPCBrb3VzYXRlblwgOwor5rC35rKz5pyfIDwgaHlvdWdha2lcIDsKK+mAgOWxiCA8IHRhaWt1dHN1XCA7CivkvY7pm7vkvY0gPCB0ZWlkZW4nJ2lcIDsKK+WHuuS4lumtmiA8IHNodXNzZXVvXCA7CivpgYvou6Llj7AgPCB1bnRlbmRhaVwgOwor5YmN5ZOyIDwgemVudGV0c3VcIDsKK+WHuuW7rCA8IHNodXRzdXJvXCA7CivpgankvZwgPCB0ZWtpc2FrdVwgOwor6YeO5b+D5a62IDwgeWFzaGlua2FcIDsKK+WGheazlSA8IHVjaGlub3JpXCA7Civlh7rluqYgPCBzaHV0c3Vkb1wgOwor5YqD5LiAIDwga2FrdWl0c3VcIDsKK+iHqueUseaoqSA8IGppeXV1a2VuXCA7Civou7jnrrEgPCBqaWt1YmFrb1wgOwor6Ziy5rC05biDIDwgYm91c3VpZnVcIDsKK+WHuuW4rSA8IHNodXNzZWtpXCA7Civlho3oh6jmtL4gPCBzYWlyaW5oYVwgOwor5Yil5aOyIDwgYmV0c3ViYWlcIDsKK+W4neaXpSA8IHRlaWppdHN1XCA7Civmp4vnr4kgPCBrb3VjaGlrdVwgOwor55uu5pKDIDwgbW9rdWdla2lcIDsKK+i7jeiBtyA8IGd1bnNob2t1XCA7CivlkI3loLTpnaIgPCBtZWliYW1lblwgOwor562G6KiY5L2TIDwgaGlra2l0YWlcIDsKK+W8pualveWZqCA8IGdlbmdha2tpXCA7Civmu57lnKjosrsgPCB0YWl6YWloaVwgOwor6KaP5a6a5YCkIDwga2l0ZWljaGlcIDsKK+S4gOS9k+aEnyA8IGl0dGFpa2FuXCA7CivlhqzmnI0gPCBmdXl1ZnVrdVwgOwor6Iy25p2TIDwgY2hhc2hha3VcIDsKK+murueDiCA8IHNlbnJldHN1XCA7CivotaTnoILns5YgPCBha2F6YXRvdVwgOwor54mb5bCP5bGLIDwgdXNoaWdveWFcIDsKK+W7ieS+oeWTgSA8IHJlbmthaGluXCA7CivmsJHpnIDlk4EgPCBtaW5qdWhpblwgOwor55yf5Lq66ZaTIDwgbWFuaW5nZW5cIDsKK+WGmeakjSA8IHNoYXNob2t1XCA7Civph5Hnm57oirEgPCBraW5zZW5rYVwgOwor5Yil5aCCIDwgYmV0c3Vkb3VcIDsKK+WIhuWuvyA8IGJ1bnNodWt1XCA7Civlhajmu4UgPCB6ZW5tZXRzdVwgOwor5bGx6aKoIDwgeWFtYWthemVcIDsKK+iNieaRuiA8IGt1c2F6dXJpXCA7CivmsZ/miLjmmYLku6MgPCBlZG9qaWRhaVwgOwor5YWI54mpIDwgc2FraW1vbm9cIDsKK+WPluaymeaxsCA8IHRvcml6YXRhXCA7CivpioDooYzlk6EgPCBnaW5rb3VpblwgOwor5bGk5L2N5a2mIDwgc291aWdha3VcIDsKK+eZvueCuSA8IGh5YWt1dGVuXCA7CivpgIblpKIgPCBzYWtheXVtZVwgOwor6YCP6KaW5ZuzIDwgdG91c2hpenVcIDsKK+WQjee+qeS6uiA8IG1laWdpbmluXCA7CivntabmsrnmiYAgPCBreXV1eXVqb1wgOwor5YWJ54axIDwga291bmV0c3VcIDsKK+iHqui1sOegsiA8IGppc291aG91XCA7CivliY3liJcgPCB6ZW5yZXRzdVwgOwor5a+E56i/6ICFIDwga2lrb3VzaGFcIDsKK+aKkuaDheipqSA8IGpvam91c2hpXCA7CivpgIblooMgPCBneWFra3lvdVwgOwor5YaG5YiD5YiAIDwgZW5qaW50b3VcIDsKK+eZh+eZqiA8IGthbnNoYWt1XCA7Civou43nuK4gPCBndW5zaHVrdVwgOwor6a6t5ryBIDwgc2FrZXJ5b3VcIDsKK+mBlOS6uiA8IHRhdHN1amluXCA7CivoibLntJkgPCBzaGlraXNoaVwgOwor55m95r+BIDwgaGFrdWRha3VcIDsKK+WEgeengCA8IHNodW5zaHV1XCA7CivluYXluoMgPCBoYWJhaGlyb1wgOwor5bGx6ZynIDwgeWFtYWdpcmlcIDsKK+S4ieS4g+aXpSA8IG1pbmFub2thXCA7CivpgLjlh7ogPCBpc3NodXRzdVwgOwor5YWl5rW0IDwgbnl1dXlva3VcIDsKK+asoOS+vyA8IGtldHN1YmluXCA7Civou73nn7MgPCBrYXJ1aXNoaVwgOwor5YiH5aa7IDwga2lyaXp1bWFcIDsKK+W3u+acqyA8IGthbm1hdHN1XCA7Civlr7rlsI/lsYsgPCB0ZXJha295YVwgOwor6Led6aqoIDwga3lva290c3VcIDsKK+eUsOmbsumbgCA8IHRhaGliYXJpXCA7CivmuKnmub/luIMgPCBvbnNoaXBwdVwgOwor55Sf6aaWIDwgbmFtYWt1YmlcIDsKK+WFpea0myA8IG55dXVyYWt1XCA7Civnm7Tmg4UgPCBjaG9rdWpvdVwgOwor5Ye25a6FIDwga3lvdXRha3VcIDsKK+WxsemamyA8IHlhbWFnaXdhXCA7Civluq3lhYggPCBuaXdhc2FraVwgOwor5b6h6Z2i55u4IDwgZ29tZW5zb3VcIDsKK+WxsemZsCA8IHlhbWFrYWdlXCA7CivliYPliIAgPCBrYW1pc29yaVwgOwor5qiq5rOiIDwgeW9rb25hbWlcIDsKK+edgOWcsCA8IGNoYWt1Y2hpXCA7CivkuIrmma/msJcgPCBqb3VrZWlraVwgOwor6IKy6Iux5LyaIDwgaWt1ZWlrYWlcIDsKK+S5l+mmrOmaiiA8IGpvdWJhdGFpXCA7CivlnLDkuIvooZcgPCBjaGlrYWdhaVwgOwor55uX5o6YIDwgdG91a3V0c3VcIDsKK+ecgeW6gSA8IHNob3VjaG91XCA7CivnlZnph5EgPCB0b21lZ2FuZVwgOwor5qmL5qKBIDwga3lvdXJ5b3VcIDsKK+eUuumVtyA8IGNob3VjaG91XCA7CivlsZ7poJggPCB6b2t1cnlvdVwgOwor6YCa5ZGKIDwgdHN1dWtva3VcIDsKK+WJjeWAnyA8IHplbnNoYWt1XCA7CivpnZLmh7jlt6MgPCBhb2tha2VzdVwgOwor5qyg5LmPIDwga2V0c3Vib3VcIDsKK+alteiHtCA8IGt5b2t1Y2hpXCA7CivkuI3mlaznvaogPCBmdWtlaXphaVwgOwor5Y6f5a2Q5L6hIDwgZ2Vuc2hpa2FcIDsKK+WIpeWRvSA8IGJldHN1bWVpXCA7Civoia/nrZYgPCByeW91c2FrdVwgOwor55SY6aOfIDwgYW1hc2hva3VcIDsKK+WGheaeoCA8IHVjaGl3YWt1XCA7CivmqYvmna0gPCBoYXNoaWd1aVwgOwor57eP5q2m57eaIDwgc291YnVzZW5cIDsKK+S4jee4uee3uyA8IGJ1a2lyeW91XCA7CivliKXlj7cgPCBiZXRzdWdvdVwgOwor5YCf6YqtIDwgc2hha3VzZW5cIDsKK+ecieWwuyA8IG1heXVqaXJpXCA7CivnnJ/lpoIgPCBzaGluJydueW9cIDsKK+ino+WDj+W6piA8IGthaXpvdWRvXCA7Civoi6XmsLQgPCB3YWthbWl6dVwgOwor5o6n6Ki054q2IDwga291c29qb3VcIDsKK+mAmuWKmyA8IHRzdXVyaWtpXCA7CivlupflhYggPCBtaXNlc2FraVwgOwor55WU6YGTIDwgYXplbWljaGlcIDsKK+iLpeauvyA8IHdha2F0b25vXCA7Civlho3mpJzmn7sgPCBzYWlrZW5zYVwgOwor6YCa5YmHIDwgdHN1dXNva3VcIDsKK+WIneWPoyA8IHNob2t1Y2hpXCA7CivmqL3mn78gPCB0YXJ1Z2FraVwgOwor6Iet6KaaIDwgc2h1dWtha3VcIDsKK+ikh+W6p+apnyA8IGZ1a3V6YWtpXCA7CivmibnoqZXlrrYgPCBoaWh5b3VrYVwgOwor5b6h5Lit5YWDIDwgb2NodXVnZW5cIDsKK+S6uuecn+S8vCA8IGhpdG9tYW5lXCA7CivmqKrmp5ggPCB5b2tvemFtYVwgOwor5qiq5qeNIDwgeW9rb3lhcmlcIDsKK+WGt+W+uSA8IHJlaXRldHN1XCA7CivnmoTlnLDkvY0gPCB0ZWtpY2hpaVwgOwor552j5L+DIDwgdG9rdXNva3VcIDsKK+aPm+awl+WPoyA8IGthbmtpa291XCA7Civoqr/mn7vlk6EgPCBjaG91c2FpblwgOwor5LiW6Kmx5b25IDwgc2V3YXlha3VcIDsKK+WIpOWIpSA8IGhhbmJldHN1XCA7CivluLjlrqIgPCBqb3VreWFrdVwgOwor5biz5bC7IDwgY2hvdWppcmlcIDsKK+aCquefpeaBtSA8IHdhcnVkamllXCA7Civoi5fmsLQgPCBuYXdhbWl6dVwgOwor55+t5pyf6ZaTIDwgdGFua2lrYW5cIDsKK+W+oeS4u+S6uiA8IGdvc2h1amluXCA7CivlsbHpib4gPCB5YW1hYm9rb1wgOwor6auE6JmrIDwgenVpbXVzaGlcIDsKK+eahuanmCA8IG1pbmFzYW1hXCA7CivliKXlhowgPCBiZXNzYXRzdVwgOwor5ZCM5pmC5oCnIDwgZG91amlzZWlcIDsKK+W4t+WtkCA8IGthdGFiaXJhXCA7CivojYnluIIgPCBrdXNhaWNoaVwgOwor6buE5aSJ57GzIDwgb3VoZW5tYWlcIDsKK+S9meaJgOiAhSA8IHlvc29tb25vXCA7Civnmb3mqoAgPCBieWFrdWRhblwgOwor6Iul5qeYIDwgd2FrYXNhbWFcIDsKK+ebtOWwhCA8IGNob2t1c2hhXCA7CivlsbHph4wgPCB5YW1hemF0b1wgOwor6YCA5Y20IDwgdGFpa3lha3VcIDsKK+a7i+mkiuWIhiA8IGppeW91YnVuXCA7Civmp43njokgPCB5YXJpZGFtYVwgOwor5qOa54mh5Li5IDwgdGFuYWJvdGFcIDsKK+eUsumJhCA8IGtvdXRldHN1XCA7CivpipjphZLlsYsgPCBtZWlzaHV5YVwgOwor5aGp6aGe5rOJIDwgZW5ydWlzZW5cIDsKK+WxgOmdoiA8IGt5b2t1bWVuXCA7Civkv53oj4zogIUgPCBob2tpbnNoYVwgOwor6YCa5L+hIDwgdHN1dXNoaW5cIDsKK+altee3miA8IGt5b2t1c2VuXCA7CivpmLLnoILmnpcgPCBib3VzYXJpblwgOwor6YCa5L+XIDwgdHN1dXpva3VcIDsKK+iIuee4gSA8IGZ1bmFiZXJpXCA7CivnmpPmnIggPCBrb3VnZXRzdVwgOwor6Imy55u4IDwgc2hpa2lzb3VcIDsKK+iJsuebsiA8IHNoaWtpbW91XCA7CivnnInloqggPCBtYXl1enVtaVwgOwor5YaF5o6lIDwgbmFpc2V0c3VcIDsKK+mWieS4lueVjCA8IGhlaXNla2FpXCA7Civlt7TmiKYgPCB0b21vZXNlblwgOwor5YWo5puyIDwgemVua3lva3VcIDsKK+i7uOeJqSA8IGppa3Vtb25vXCA7Civmpa3nuL4gPCBneW91c2VraVwgOwor5Zyw5LiL6IyOIDwgY2hpa2FrZWlcIDsKK+Wkmui+uuW9oiA8IHRhaGVua2VpXCA7CivlhaXmnKggPCBueXV1Ym9rdVwgOwor5qW157SwIDwgZ29rdWJvc29cIDsKK+S4jeaYjuaclyA8IGZ1bWVpcm91XCA7CivpgIHliKUgPCBzb3ViZXRzdVwgOwor6Laz6aaWIDwgYXNoaWt1YmlcIDsKK+WFvOaRgiA8IGtlbnNldHN1XCA7CivliKXkvr8gPCBiZXRzdWJpblwgOwor5bm05YilIDwgbmVuYmV0c3VcIDsKK+azpeeBq+WxsSA8IGRlaWthemFuXCA7CivnlJ/pjLIgPCBuYW1hcm9rdVwgOwor5Lqs6YO95bqcIDwga3lvdXRvZnVcIDsKK+eZveaihSA8IHNoaXJhdW1lXCA7Civoh4boqqwgPCBva3VzZXRzdVwgOwor5Luk5aSr5Lq6IDwgcmVpZnVqaW5cIDsKK+WFiOanmCA8IHNha2lzYW1hXCA7Civlhajml6UgPCB6ZW5qaXRzdVwgOwor5biD5byVIDwgbnVub2Jpa2lcIDsKK+e9t+WFjeaoqSA8IGhpbWVua2VuXCA7CivkuIHlrZflvaIgPCB0ZWlqaWtlaVwgOwor55uj5a+fIDwga2Fuc2F0c3VcIDsKK+WIhuWKmyA8IGJ1bnJ5b2t1XCA7CivlgJnoo5zogIUgPCBrb3Vob3NoYVwgOwor5YKN6ICzIDwga2F0YW1pbWlcIDsKK+eVpeiogCA8IHJ5YWt1Z2VuXCA7CivliKXkurogPCBiZXRzdW5pblwgOwor5bCP6a2aIDwga296YWthbmFcIDsKK+W3puaJiyA8IGhpZGFyaXRlXCA7CivoibLnlLogPCBpcm9tYWNoaVwgOwor6Imy55S3IDwgaXJvb3Rva29cIDsKK+alveeroCA8IGdha3VzaG91XCA7CivliIbliKUgPCBidW5iZXRzdVwgOwor57W155S76aSoIDwga2FpZ2FrYW5cIDsKK+msseeXhSA8IHV0c3VieW91XCA7Civlm73llrbljJYgPCBrb2t1ZWlrYVwgOwor6YCG5L+uIDwgZ3lha3VzaHVcIDsKK+eJqeaVheiAhSA8IGJ1a2tvc2hhXCA7CivliY3nm7jmkrIgPCBtYWV6dW1vdVwgOwor56CU57Gz5qmfIDwga2VubWFpa2lcIDsKK+ebtOWjsiA8IGNob2t1YmFpXCA7CivlgJ/osrggPCBzaGFrdXRhaVwgOwor5pqX6buS5pyfIDwgYW5rb2t1a2lcIDsKK+WAn+iyoSA8IHNoYWt1emFpXCA7Civnj77mmYLngrkgPCBnZW5qaXRlblwgOwor6Zqj5L+d6aSoIDwgcmlucG9rYW5cIDsKK+WGrOWxsSA8IGZ1eXV5YW1hXCA7CivliIblhoogPCBidW5zYXRzdVwgOwor54S85aS35by+IDwgc2hvdWlkYW5cIDsKK+S4geWtl+W4ryA8IHRlaWppdGFpXCA7Civou43nlaUgPCBndW5yeWFrdVwgOwor5Yqg6YWN57GzIDwga2FoYWltYWlcIDsKK+eUqOmBlCA8IHlvdXRhdHN1XCA7CivojZLlpLcgPCBhcmFlYmlzdVwgOwor5qW156uvIDwga3lva3V0YW5cIDsKK+ecn+WNlyA8IG1hbWluYW1pXCA7Civmra/np5HljLvpmaIgPCBzaGlrYWlpblwgOwor6auY57K+5bqmIDwga291c2VpZG9cIDsKK+eVpeijhSA8IHJ5YWt1c291XCA7CivpmbDplqLmlbAgPCBpbmthbnN1dVwgOwor5rC05rOz5bi9IDwgc3VpZWlib3VcIDsKK+WIl+S8nSA8IHJldHN1ZGVuXCA7CivosrjosrvnlJ8gPCB0YWloaXNlaVwgOwor6Ii556uvIDwgZnVuYWJhdGFcIDsKK+mvqOW6pyA8IGt1amlyYXphXCA7CivnnYDku7sgPCBjaGFrdW5pblwgOwor5aKX56iO5qGIIDwgem91emVpYW5cIDsKK+i+u+WggiA8IHRzdWppZG91XCA7Civkv7rpgZQgPCBvcmV0YWNoaVwgOwor6aST6ay85YWxIDwgZ2FraWRvbW9cIDsKK+ecn+WLhyA8IHNoaW4nJ3l1dVwgOwor5YKY57SZIDwga2FzYWdhbWlcIDsKK+ioseWPr+WItiA8IGt5b2thc2VpXCA7Civnmb3mmLwgPCBoYWt1Y2h1dVwgOwor55e855a+IDwga29zaGl0c3VcIDsKK+WBveiAhSA8IG5pc2Vtb25vXCA7CivlhYvmnI0gPCBrb2t1ZnVrdVwgOwor5aWz5oCn5YOPIDwgam9zZWl6b3VcIDsKK+eUu+izqiA8IGdhc2hpdHN1XCA7Civot7Pouo0gPCBjaG91eWFrdVwgOwor54Gr5pif5bm0IDwga2FzZWluZW5cIDsKK+eZuuaYjiA8IGhhdHN1bWVpXCA7CivkupznoavphbggPCBhcnl1dXNhblwgOwor6YCG5LiKIDwgZ3lha3Vqb3VcIDsKK+WFiOaciCA8IHNlbmdldHN1XCA7CivlubPku4QgPCBoeW91c29rdVwgOwor5YaG5b2iIDwgbWFydWdhdGFcIDsKK+WGjei7jeWCmSA8IHNhaWd1bmJpXCA7Civmnb/lsYvosp0gPCBpdGF5YWdhaVwgOwor5bCR6aGNIDwgc2hvdWdha3VcIDsKK+aWoeaXi+ahiCA8IGFzc2VuJydhblwgOwor6Iqx5bSX5bKpIDwga2Frb3VnYW5cIDsKK+i/lOWNtCA8IGhlbmt5YWt1XCA7Civlh7blhYYgPCBreW91Y2hvdVwgOwor5qWT57OWIDwga2FlZGV0b3VcIDsKK+W5leWGhSA8IG1ha3V1Y2hpXCA7CivmnKrlrozmiJAgPCBtaWthbnNlaVwgOwor5be75bC6IDwgbWFraWpha3VcIDsKK+WFiOaXpSA8IHNlbmppdHN1XCA7CivnhKHnlKjlv4MgPCBidXlvdWppblwgOwor5oiQ5paH5YyWIDwgc2VpYnVua2FcIDsKK+WAn+impyA8IHNoYWt1cmFuXCA7Civnspfmgqrlk4EgPCBzb2FrdWhpblwgOwor5o6n6Ki05qipIDwga291c29rZW5cIDsKK+mnkumzpSA8IGtvbWFkb3JpXCA7Civoqr/nkIbloLQgPCBjaG91cmliYVwgOwor5Zyw5LiL57eaIDwgY2hpa2FzZW5cIDsKK+W5leWDmiA8IGJha3VyeW91XCA7Civlhpnlrp8gPCBzaGFqaXRzdVwgOwor5Lqc56Gd6YW4IDwgYXNob3VzYW5cIDsKK+WFg+aXpSA8IGdhbmppdHN1XCA7Civnmb3mj48gPCBoYWt1YnlvdVwgOwor5bC76YeNIDwgc2hpcmlvbW9cIDsKK+iEm+mqqCA8IGtlaWtvdHN1XCA7CivkvZPns7vljJYgPCB0YWlrZWlrYVwgOwor5YWD5pa5IDwgbW90b2thdGFcIDsKK+eZuuaPmiA8IGhhdHN1eW91XCA7CivntYzllrbogIUgPCBrZWllaXNoYVwgOwor6Iy25aO6IDwgY2hhdHN1Ym9cIDsKK+S/rui6qyA8IHNodXVzaGluXCA7CivnmbrmjpggPCBoYWtrdXRzdVwgOwor5bed5bqVIDwga2F3YXpva29cIDsKK+W3neW6iiA8IGthd2Fkb2tvXCA7Civlh7bkvZwgPCBreW91c2FrdVwgOwor5qaC55WlIDwgZ2Fpcnlha3VcIDsKK+iiq+WGmeS9kyA8IGhpc2hhdGFpXCA7Civlt53luYUgPCBrYXdhaGFiYVwgOwor5YK355eFIDwgc2hvdWJ5b3VcIDsKK+akjuiMuCA8IHNoaWl0YWtlXCA7Civlt57lt54gPCBzaHV1c2h1dVwgOwor5YGc6IG3IDwgdGVpc2hva3VcIDsKK+S+kemjnyA8IHl1dXNob2t1XCA7CivliIblqKnmnJ8gPCBidW5iZW5raVwgOwor5b6M5LuV6IieIDwgYXRvamltYWlcIDsKK+WGheWxgCA8IG5haWt5b2t1XCA7CivnlLfopqogPCBvdG9rb295YVwgOwor6KOP6Z2i5Y+yIDwgcmltZW5zaGlcIDsKK+iKseafhCA8IGhhbmFnYXJhXCA7CivopovkuJbniakgPCBtaXNlbW9ub1wgOwor5bGx6KWeIDwgeWFtYWhpZGFcIDsKK+i+u+WNoCA8IHRzdWppdXJhXCA7Civmp5jmp5ggPCBzYW1hemFtYVwgOwor55yf5LitIDwgbWFuJyduYWthXCA7CivlhoXlr4YgPCBuYWltaXRzdVwgOwor6Kqe5b2Z5YqbIDwgZ29pcnlva3VcIDsKK+iKseadnyA8IGhhbmF0YWJhXCA7CivlhoXlrp8gPCBuYWlqaXRzdVwgOwor5YWx5biDIDwgdG9tb251bm9cIDsKK+WxseijviA8IHlhbWFzdXNvXCA7Civpq5jnqbogPCB0YWthem9yYVwgOwor6Iqx5pytIDwgaGFuYWZ1ZGFcIDsKK+mtlOazleeTtiA8IG1haG91YmluXCA7Civnmb7mhYsgPCBoeWFrdXRhaVwgOwor5YiG5aip5pmCIDwgYnVuYmVuamlcIDsKK+S4iuS4i+WLlSA8IGpvdWdlZG91XCA7CivlubPpnaLlm7MgPCBoZWltZW56dVwgOwor6ICQ54Gr5oCnIDwgdGFpa2FzZWlcIDsKK+eXlOeWviA8IGppc2hpdHN1XCA7Civlho3lrprnvqkgPCBzYWl0ZWlnaVwgOwor6Zu75rCX5belIDwgZGVua2lrb3VcIDsKK+WPjeWPpOexoCA8IGhvZ3VrYWdvXCA7CivlhavluaEgPCBoYWNoaW1hblwgOwor5b6h6ZmN6KqVIDwgZ29rb3V0YW5cIDsKK+W3oeWvnyA8IGp1bnNhdHN1XCA7Civou73mpa0gPCBrYXJ1d2F6YVwgOwor5bed5bC7IDwga2F3YWppcmlcIDsKK+aYjuaWh+WMliA8IG1laWJ1bmthXCA7CivohbnlhbflkIggPCBoYXJhZ3VhaVwgOwor55u05YmNIDwgY2hva3V6ZW5cIDsKK+mBuOaMmeaXpSA8IHNlbmt5b2JpXCA7Civmo5LooZMgPCBib3VqdXRzdVwgOwor6Iqx5pmCIDwgaGFuYWRva2lcIDsKK+WFpeW5lSA8IG55dXVtYWt1XCA7Civnmbrmg4UgPCBoYXRzdWpvdVwgOwor5L+z6KyUIDwgaGFpZ3lha3VcIDsKK+WyqeiEiCA8IGdhbm15YWt1XCA7CivluLPlhYMgPCBjaG91bW90b1wgOwor55eF55qEIDwgYnlvdXRla2lcIDsKK+aoquW5hSA8IHlva29oYWJhXCA7CivovLjnsr7nrqEgPCB5dXNlaWthblwgOwor55eF55mWIDwgYnlvdWhla2lcIDsKK+Wwj+WjsuW6lyA8IGtvdXJpdGVuXCA7Civlroflrpnoq5YgPCB1Y2h1dXJvblwgOwor6IO46auYIDwgbXVuYWRha2FcIDsKK+mRkeWumuWutiA8IGthbnRlaWthXCA7Civkv4PpgLIgPCBzb2t1c2hpblwgOwor5qiZ5b60IDwgaHlvdWNob3VcIDsKK+Wbuua6tuS9kyA8IGtveW91dGFpXCA7CivmoYjlhoXmiYAgPCBhbicnbmFpam9cIDsKK+eXheeXhyA8IGJ5b3VzaG91XCA7Civoh6rkv6HlrrYgPCBqaXNoaW5rYVwgOwor5Ya35Y20IDwgcmVpa3lha3VcIDsKK+S6nOmJm+acqyA8IGFlbm1hdHN1XCA7Civoho/ooYAgPCBrb3VrZXRzdVwgOwor5YK354mpIDwga2l6dW1vbm9cIDsKK+Wwjumbu+W6piA8IGRvdWRlbmRvXCA7CivnnIznn6XkuosgPCBrZW5jaGlqaVwgOwor55m+5byKIDwgaHlha3VoZWlcIDsKK+WHneS5syA8IGd5b3VueXV1XCA7CivnlZzoiI4gPCBjaGlrdXNoYVwgOwor5oSP5rCX6Zi75ZaqIDwgaWtpc29zb3VcIDsKK+WFseWtpiA8IGt5b3VnYWt1XCA7CivlroflrpnoprMgPCB1Y2h1dWthblwgOwor6Zu75YuV5qmfIDwgZGVuZG91a2lcIDsKK+WwkemHjyA8IHNob3VyeW91XCA7CivkuIDkuIHnm64gPCBpdGNob3VtZVwgOwor5LyK6YGU6KGGIDwgZGF0ZXNodXVcIDsKK+iFi+eqqeiFuiA8IGVraWthc2VuXCA7CivkuI3mlofms5UgPCBmdWJ1bnBvdVwgOwor55m+5bm0IDwgaHlha3VuZW5cIDsKK+i2s+i7vSA8IGFzaGlnYXJ1XCA7CivkuIDosqvmgKcgPCBpa2thbnNlaVwgOwor5Y+j5YaF54KOIDwga291bmFpZW5cIDsKK+WBpeethiA8IGtlbnBpdHN1XCA7CivpgY7kuI3otrMgPCBrYWZ1c29rdVwgOwor5a+S6aSFIDwga2FubW9jaGlcIDsKK+WvrumVtyA8IHJ5b3VjaG91XCA7CivmhJvnlKjogIUgPCBhaXlvdXNoYVwgOwor5L+K6LazIDwgc2h1bnNva3VcIDsKK+WFrOawkeenkSA8IGtvdW1pbmthXCA7CivlhaXlr4IgPCBueXV1amFrdVwgOwor5Ye65qC85a2QIDwgZGVnb3VzaGlcIDsKK+S/oeiqjSA8IHNoaW4nJ25pblwgOwor5LuK5LiW57SAIDwga29uc2Vpa2lcIDsKK+WFpeWtpiA8IG55dXVnYWt1XCA7Civmpa3niakgPCB3YXphbW9ub1wgOwor5pyq5ama6ICFIDwgbWlrb25zaGFcIDsKK+i1pOmdtCA8IGFrYWd1dHN1XCA7CivlgJnoo5znlJ8gPCBrb3Vob3NlaVwgOwor5bee5aKDIDwgc2h1dWt5b3VcIDsKK+adseWNl+S6nCA8IHRvdW5hbicnYVwgOwor5L+h6KiXIDwgc2hpbnRha3VcIDsKK+S+m+mkiuWhlCA8IGt1eW91dG91XCA7CivlgaXog4PliaQgPCBrZW4nJ2l6YWlcIDsKK+Wuv+mnhSA8IHNodWt1ZWtpXCA7CivmpbXngrkgPCBreW9rdXRlblwgOwor5L+X6Kq/IDwgem9rdWNob3VcIDsKK+iIjOeZjCA8IHpldHN1Z2FuXCA7Civnm7TkuK0gPCB0YWRhbmFrYVwgOwor6Iqx5oi/IDwgaGFuYWZ1c2FcIDsKK+S/rumok+iAhSA8IHNodWdlbmphXCA7Civnlqvnl4UgPCB5YWt1YnlvdVwgOwor6Iul5a6uIDwgd2FrYW1peWFcIDsKK+WFg+W4syA8IG1vdG9jaG91XCA7Civlr5vpl4ogPCBrYW5rYXRzdVwgOwor5a+46YmEIDwgc3VudGV0c3VcIDsKK+mBleeKr+ihjOeCuiA8IGloYW5rb3VpXCA7Civmn5TpgZPnnYAgPCBqdXVkb3VnaVwgOwor55m+5a6zIDwgaHlha3VnYWlcIDsKK+W+ruezu+aVsCA8IGJpa2Vpc3V1XCA7Civku5Xnva7loLQgPCBzaGlva2liYVwgOwor5YG255m6IDwgZ3V1aGF0c3VcIDsKK+W5s+aWueWSjCA8IGhlaWhvdXdhXCA7CivlsI/ouqsgPCBzaG91c2hpblwgOwor5a6/6aGYIDwgc2h1a3VnYW5cIDsKK+S8tOWlj+mDqCA8IGJhbnNvdWJ1XCA7CivnlJ/olqwgPCBzaG91eWFrdVwgOwor5a6/6aGMIDwgc2h1a3VkYWlcIDsKK+WPpOWGmeacrCA8IGtvc2hhaG9uXCA7Civnk7boqbAgPCBiaW5kenVtZVwgOwor5YGP56qfIDwgaGVua3V0c3VcIDsKK+WFiOWxsSA8IHNha2l5YW1hXCA7CivnlLfoibIgPCBuYW5zaG9rdVwgOwor6ISx6LyqIDwgZGF0c3VyaW5cIDsKK+WHuuadpeeJqSA8IGRla2ltb25vXCA7CivlgLnntIQgPCBrZW4nJ3lha3VcIDsKK+iNieS4iCA8IGt1c2F0YWtlXCA7CivlnJ/ppYXpoK0gPCBkb21hbmp1dVwgOwor5LiW6Kmx5Lq6IDwgc2V3YWJpdG9cIDsKK+WFpeWhviA8IG55dXVqdWt1XCA7Civnvo7poZTmsLQgPCBiaWdhbnN1aVwgOwor6Ieq55Sx5YiRIDwgaml5dXVrZWlcIDsKK+WhqemiqOWRgiA8IHNoaW9idXJvXCA7CivlhYXpm7vlmaggPCBqdXVkZW5raVwgOwor6KKr6aiT6ICFIDwgaGlrZW5zaGFcIDsKK+Wwj+eGiuW6pyA8IGtvZ3VtYXphXCA7CivlhKrlvaIgPCB5YXNhZ2F0YVwgOwor5omL5L+h6KqeIDwgdGVzaGluZ29cIDsKK+WFiOWuoiA8IHNlbmt5YWt1XCA7CivotaTmr5vluIMgPCBha2FnZXR0b1wgOwor5L+X6KGGIDwgem9rdXNodXVcIDsKK+WxseiGmiA8IHlhbWFoYWRhXCA7CivmppXmqLkgPCBnYWp1bWFydVwgOwor5YWI5a6JIDwgc2FraXlhc3VcIDsKK+mmrOmdoiA8IHVtYWR6dXJhXCA7CivmsLTlvannlLsgPCBzdWlzYWlnYVwgOwor5LiA5Lq65a+dIDwgaGl0b3JpbmVcIDsKK+mdkuWRs+azpSA8IGFvbWlkb3JvXCA7Civnmb7lp5MgPCBoeWFrdXNlaVwgOwor6Ieq55Sx5YWaIDwgaml5dXV0b3VcIDsKK+WFheWunyA8IGp1dWppdHN1XCA7Civoipnok4nls7AgPCBmdXlvdWhvdVwgOwor6JC96Iqx55SfIDwgcmFra2FzZWlcIDsKK+iKseW9oiA8IGhhbmFnYXRhXCA7CivlsbHplpPpg6ggPCBzYW5rYW5idVwgOwor55uX5Lq6IDwgbnVzdWJpdG9cIDsKK+WQjOaZguS7oyA8IGRvdWppZGFpXCA7Civnmb3lppkgPCBzaGlyb3RhZVwgOwor5bGx6ISIIDwgeWFtYW5hbWlcIDsKK+eEoeWul+a0viA8IG11c2h1dWhhXCA7CivoirHlvIEgPCBoYW5hYmlyYVwgOwor5YWl5Zu9IDwgbnl1dWtva3VcIDsKK+altea0iyA8IGt5b2t1eW91XCA7Civou43mlL/lupwgPCBndW5zZWlmdVwgOwor55m95aOBIDwgaGFrdWhla2lcIDsKK+eZveWiqCA8IGhha3Vib2t1XCA7Civnmbrlo7IgPCBoYXRzdWJhaVwgOwor5YaF5YqbIDwgbmFpcnlva3VcIDsKK+i1pOmKhSA8IHNoYWt1ZG91XCA7Civnmq7liaUgPCBrYXdhaGFnaVwgOwor5amm5Lq65LyaIDwgZnVqaW5rYWlcIDsKK+WOn+e5iue2rSA8IGdlbnNlbicnaVwgOwor5beo5Yi5IDwga3lvc2F0c3VcIDsKK+mqqOebpCA8IGtvdHN1YmFuXCA7Civpr4nlj6MgPCBrb2lndWNoaVwgOwor55Sf6ImyIDwgc2Vpc2hva3VcIDsKK+e2membu+awlyA8IGtlaWRlbmtpXCA7CivkuI3mlofmmI4gPCBmdWJ1bm1laVwgOwor5bmz5Zyf6ZaTIDwgaGlyYWRvbWFcIDsKK+asoeeUt+WdiiA8IGppbmFuYm91XCA7CivlhYjlpKogPCBzYWtpYnV0b1wgOwor6LaF6LaKIDwgY2hvdWV0c3VcIDsKK+iGgOiDseeCjiA8IGJvdWtvdWVuXCA7CivmnInlirnmiZMgPCB5dXVrb3VkYVwgOwor6Zuo6YeP6KiIIDwgdXJ5b3VrZWlcIDsKK+WFteWNkiA8IGhlaXNvdHN1XCA7CivlroflrpnoiLkgPCB1Y2h1dXNlblwgOwor5rib6KGw5ZmoIDwgZ2Vuc3Vpa2lcIDsKK+anmOW8jyA8IHlvdXNoaWtpXCA7CivkvLTpo58gPCBiYW5zaG9rdVwgOwor5aSa6Iq45oCnIDwgdGFnZWlzZWlcIDsKK+WFteWKmyA8IGhlaXJ5b2t1XCA7CivotaTliIfnrKYgPCBha2FnaXBwdVwgOwor5qW95qW9IDwgcmFrdXJha3VcIDsKK+mrmOa9riA8IHRha2FzaGlvXCA7CivlhoXlgbQgPCB1Y2hpZ2F3YVwgOwor6ISF6L+rIDwga3lvdWhha3VcIDsKK+iFueiGnCA8IGZ1a3VtYWt1XCA7CivngavmmJ/kurogPCBrYXNlaWppblwgOwor5YaF5YCJIDwgdWNoaWd1cmFcIDsKK+aXpeiIquapnyA8IG5pa2tvdWtpXCA7Civku4rkuJbnlYwgPCBrb25zZWthaVwgOwor6Iqx5a6IIDwgaGFuYW1vcmlcIDsKK+iDuOmDrSA8IGt5b3VrYWt1XCA7Civou43pnIDlk4EgPCBndW5qdWhpblwgOwor55eF5q+SIDwgYnlvdWRva3VcIDsKK+altealvSA8IGdva3VyYWt1XCA7CivmsLTokrjmsJcgPCBzdWlqb3VraVwgOwor5qW15qW1IDwgZ29rdWdva3VcIDsKK+WNmOa8ouWtlyA8IHRhbmthbmppXCA7CivljYHmloflrZcgPCBqdXVtb25qaVwgOwor5a6I5YKZ5YW1IDwgc2h1YmloZWlcIDsKK+eXheattCA8IGJ5b3VyZWtpXCA7Civmmpflj7fmlocgPCBhbmdvdWJ1blwgOwor6Iqx5auBIDwgaGFuYXlvbWVcIDsKK+WFqOWKmyA8IHplbnJ5b2t1XCA7CivlhbHlhbEgPCB0b21vZG9tb1wgOwor6auY562J56eRIDwga291dG91a2FcIDsKK+iKseWpvyA8IGhhbmFtdWtvXCA7CivotIvpppYgPCBuaXNla3ViaVwgOwor6Iul5ZCbIDwgd2FrYWdpbWlcIDsKK+WxgOiIjiA8IGt5b2t1c2hhXCA7Civlt57kv5cgPCBzaHV1em9rdVwgOwor5re75LmX5ZOhIDwgdGVuam91aW5cIDsKK+akjeeUnyA8IHNob2t1c2VpXCA7CivmqKnlipsgPCBrZW5yeW9rdVwgOwor5YSq5aWzIDwgeWFzYW9uJydhXCA7Civlrr/phZQgPCBzaHVrdXN1aVwgOwor6LWr6LWrIDwga2FrdWtha3VcIDsKK+ahiOWGheWbsyA8IGFuJyduYWl6dVwgOwor5ZCI6KiA6JGJIDwgYWlrb3RvYmFcIDsKK+WvhumAoCA8IG1pdHN1em91XCA7Civmpb3mm7IgPCBnYWtreW9rdVwgOwor6auY5rOiIDwgdGFrYW5hbWlcIDsKK+S8mumjnyA8IGthaXNob2t1XCA7CivlrprmnJ/liLggPCB0ZWlraWtlblwgOwor5YCS56uLIDwgdG91cml0c3VcIDsKK+iJsuaEnyA8IHNoaWtpa2FuXCA7Civlt6bkuIogPCBoaWRhcml1ZVwgOwor5LqI566X5qGIIDwgeW9zYW4nJ2FuXCA7CivlpJrmp5jmgKcgPCB0YXlvdXNlaVwgOwor5YWI5ZOyIDwgc2VudGV0c3VcIDsKK+iHquizoOazlSA8IGppYmFpaG91XCA7CivmpbXmnbEgPCBreW9rdXRvdVwgOwor5Ye65LiN57K+IDwgZGVidXNob3VcIDsKK+WuieWxseWyqSA8IGFuemFuZ2FuXCA7CivogIHlpKflrrYgPCByb3V0YWlrYVwgOwor5rCP57Sg5oCnIDwgdWppc3Vqb3VcIDsKK+S4iuWkqeawlyA8IGpvdXRlbmtpXCA7CivnrKzkuIDlo7AgPCBkYWlpc3NlaVwgOwor5bCO54Gr57eaIDwgZG91a2FzZW5cIDsKK+mtmuWxiyA8IHNha2FuYXlhXCA7Civkvp3poLzlv4MgPCBpcmFpc2hpblwgOwor6Lez566xIDwgdG9iaWJha29cIDsKK+i7n+W8jyA8IG5hbnNoaWtpXCA7CivosqDlgrXogIUgPCBmdXNhaXNoYVwgOwor6auY5q6/IDwgdGFrYWRvbm9cIDsKK+W+jOmgremDqCA8IGtvdXRvdWJ1XCA7CivlgY/niYcgPCBrYXRhaGFyYVwgOwor5bed5LiKIDwga2F3YWthbWlcIDsKK+earuiGmueXhSA8IGhpZnVieW91XCA7CivlsbHnqIsgPCB5YW1haG9kb1wgOwor55m65YuVIDwgaGF0c3Vkb3VcIDsKK+iAgeWkq+WppiA8IHJvdWZ1dWZ1XCA7CivlhYjlj6MgPCBzZW5rdWNoaVwgOwor5Zyw5LiL5rC0IDwgY2hpa2FzdWlcIDsKK+iCi+mqqCA8IHJva2tvdHN1XCA7Civpm7vmsJfku6MgPCBkZW5raWRhaVwgOwor5a6a576p5Z+fIDwgdGVpZ2lpa2lcIDsKK+eVnOeUoyA8IGNoaWt1c2FuXCA7CivoibLlvakgPCBzaGlraXNhaVwgOwor6Imv5b+DIDwgcnlvdXNoaW5cIDsKK+eUn+exsyA8IG5hbWFnb21lXCA7CivnlKjnrYYgPCB5b3VoaXRzdVwgOwor5pS+54Gr572qIDwgaG91a2F6YWlcIDsKK+mbqOWQiOe+vSA8IGFtYWdhcHBhXCA7Civlj5fliJHogIUgPCBqdWtlaXNoYVwgOwor6IeT54mpIDwgem91bW90c3VcIDsKK+mdnuWFrOmWiyA8IGhpa291a2FpXCA7CivpgZnjgIUgPCBoYXJ1YmFydVwgOwor6aqo54GwIDwga290c3ViYWlcIDsKK+aZruiri+WgtCA8IGZ1c2hpbmJhXCA7CivlpJrls7bmtbcgPCB0YXRvdWthaVwgOwor6Ii55peFIDwgZnVuYXRhYmlcIDsKK+iIueaWuSA8IGZ1bmFrYXRhXCA7CivlirTlg43mrYwgPCByb3Vkb3VrYVwgOwor5a+E5riv5ZywIDwga2lrb3VjaGlcIDsKK+iKseWckiA8IGhhbmF6b25vXCA7CivlrprmnJ/kvr8gPCB0ZWlraWJpblwgOwor6LuN5b6LIDwgZ3Vucml0c3VcIDsKK+i7jeW9uSA8IGd1bicneWFrdVwgOwor5pyq5p2l5b2iIDwgbWlyYWlrZWlcIDsKK+eZvuWEhCA8IGh5YWt1b2t1XCA7CivlsZHnsaAgPCBrdXp1a2Fnb1wgOwor55eb5pKDIDwgdHN1dWdla2lcIDsKK+WFqOS5syA8IHplbicnbnl1dVwgOwor5qC86Kq/IDwga2FrdWNob3VcIDsKK+i8uOWHuiA8IHl1c2h1dHN1XCA7Civpo5vooYzlo6sgPCBoaWtvdXNoaVwgOwor5qaC5ousIDwgZ2Fpa2F0c3VcIDsKK+iGoOedgCA8IGtvdWNoYWt1XCA7CivlpornlKPlqaYgPCBuaW5zYW5wdVwgOwor55+t5pmC6ZaTIDwgdGFuamlrYW5cIDsKK+S9teiorSA8IGhlaXNldHN1XCA7Civnmb7lgI0gPCBoeWFrdWJhaVwgOwor5YGP5beu5YCkIDwgaGVuc2FjaGlcIDsKK+S4i+mZjee3miA8IGtha291c2VuXCA7CivmtIvoj5PlrZAgPCB5b3VnYXNoaVwgOwor5pat6KOB5qmfIDwgZGFuc2Fpa2lcIDsKK+i7iuW6pyA8IGt1cnVtYXphXCA7CivlhYjlhaUgPCBzZW4nJ255dXVcIDsKK+mjm+ihjOWgtCA8IGhpa291am91XCA7CivlgJ/nlKggPCBzaGFrdXlvdVwgOwor5a6/6LODIDwgeWFkb2NoaW5cIDsKK+eVnOeKrCA8IGNoaWt1a2VuXCA7CivmgbXmr5TpoIjorJsgPCBlYmlzdWtvdVwgOwor5YKN5p2WIDwgc29iYWR6dWVcIDsKK+WFg+WFgyA8IG1vdG9tb3RvXCA7Civlt6XlhbflhaUgPCBrb3VndWlyZVwgOwor5L2T5rip6KiIIDwgdGFpb25rZWlcIDsKK+WvneiiiyA8IG5lYnVrdXJvXCA7CivnmbrooYzml6UgPCBoYWtrb3ViaVwgOwor6Iqd5ZywIDwgc2hpYmFjaGlcIDsKK+aLt+WVj+WFtyA8IGdvdW1vbmd1XCA7CivnmoTkuK0gPCB0ZWtpY2h1dVwgOwor6Zmk5aSW5L6LIDwgam9nYWlyZWlcIDsKK+Wwsee4myA8IHNodXViYWt1XCA7Civlr7/ogIHkurogPCBqdXJvdWppblwgOwor5a+G6KyAIDwgbWl0c3Vib3VcIDsKK+WFrOWPluWnlCA8IGtvdXRvcmlpXCA7CivpmaLlpJblm6MgPCBpbmdhaWRhblwgOwor5LiN5aSJ5oCnIDwgZnVoZW5zZWlcIDsKK+WvhuirhyA8IG1pdHN1ZGFuXCA7CivlpJrnlKPns7sgPCB0YXNhbmtlaVwgOwor55m65LukIDwgaGF0c3VyZWlcIDsKK+Wwj+imj+aooSA8IHNob3VraWJvXCA7CivlkIjorbDliLYgPCBnb3VnaXNlaVwgOwor57at566h5p2fIDwgaWthbnNva3VcIDsKK+iJr+WwhiA8IHJ5b3VzaG91XCA7CivlrqLou4ogPCBreWFrdXNoYVwgOwor6ISx6ImyIDwgZGFzc2hva3VcIDsKK+mrmOa4qeioiCA8IGtvdW9ua2VpXCA7Civpq5jmnK0gPCBrb3VzYXRzdVwgOwor5Yid562J56eRIDwgc2hvdG91a2FcIDsKK+iomOaGtuazlSA8IGtpb2t1aG91XCA7Civku4rmnJ3mlrkgPCBrZXNhZ2F0YVwgOwor55m+5LiHIDwgaHlha3VtYW5cIDsKK+egtOegleaApyA8IGhhc2Fpc2VpXCA7Civpub/ph47oi5EgPCByb2t1eWFvblwgOwor5LuZ6aqoIDwgc2Vua290c3VcIDsKK+WuiemFkiA8IHlhc3V6YWtlXCA7Civlg7vlooMgPCBoZWtpa3lvdVwgOwor6LuK5bGLIDwga3VydW1heWFcIDsKK+iInuWPsOijjyA8IGJ1dGFpdXJhXCA7CivntYzllrbmqKkgPCBrZWllaWtlblwgOwor6Lqr5b+DIDwgc2hpbnNoaW5cIDsKK+eXm+aDnCA8IHRzdXVzZWtpXCA7CivkuI3nh4PmgKcgPCBmdW5lbnNlaVwgOwor5YG95pytIDwgbmlzZWZ1ZGFcIDsKK+elnuelh+WumCA8IGppbmdpa2FuXCA7CivlgJ/niakgPCBrYXJpbW9ub1wgOwor6LWk6JuZIDwgYWthZ2FlcnVcIDsKK+iiq+Wus+iAhSA8IGhpZ2Fpc2hhXCA7Civku5jppqwgPCB0c3VrZXVtYVwgOwor5rC06YW45Z+6IDwgc3Vpc2Fua2lcIDsKK+WkqeS9k+WbsyA8IHRlbnRhaXp1XCA7Civov5Hot53pm6IgPCBraW5reW9yaVwgOwor5rqW56S+5ZOhIDwganVuc2hhaW5cIDsKK+i1pOiZqyA8IGFrYW11c2hpXCA7CivkvZfoqIAgPCB3YWJpZ290b1wgOwor5Lq65Lu26LK7IDwgamlua2VuaGlcIDsKK+W4uOW+l+aEjyA8IGpvdXRva3VpXCA7CivnlJ/nmq4gPCBuYW1ha2F3YVwgOwor5qW15oCnIDwga3lva3VzZWlcIDsKK+iJsuWlsyA8IGlyb29uJyduYVwgOwor6Lyq5LyQIDwgcmluYmF0c3VcIDsKK+WAjeeOhyA8IGJhaXJpdHN1XCA7Civnmq7ohILohbogPCBoaXNoaXNlblwgOwor54Sh5a6a5b2iIDwgbXV0ZWlrZWlcIDsKK+WPr+eUqOaApyA8IGtheW91c2VpXCA7CivkurrnlJ/mtL4gPCBqaW5zZWloYVwgOwor5L+X56ewIDwgem9rdXNob3VcIDsKK+WxseeMvyA8IHlhbWF6YXJ1XCA7CivlsbHnjKsgPCB5YW1hbmVrb1wgOwor5Lyd6YGUIDwgZGVudGF0c3VcIDsKK+eZuuihjOaJgCA8IGhha2tvdWpvXCA7CivmkanlpKnmpbwgPCBtYXRlbnJvdVwgOwor5a+16IejIDwgY2hvdXNoaW5cIDsKK+Wwj+mWk+eJqSA8IGtvbWFtb25vXCA7CivmpI3mr5sgPCBzaG9rdW1vdVwgOwor5b6h5aSn5bGkIDwgZ290YWlzb3VcIDsKK+itpuWCmemaiiA8IGtlaWJpdGFpXCA7CivlibLng7nnnYAgPCBrYXBwb3VnaVwgOwor5Y2U5ZKM6Z+zIDwga3lvdXdhb25cIDsKK+WPl+WLleaFiyA8IGp1ZG91dGFpXCA7Civnt4/li5Xlk6EgPCBzb3Vkb3VpblwgOwor6IKJ6Y2LIDwgbmlrdW5hYmVcIDsKK+eUt+eItSA8IGRhbnNoYWt1XCA7CivoirHmnpfns5YgPCBrYXJpbnRvdVwgOwor5Lq66a2CIDwgaGl0b2RhbWFcIDsKK+iFueeXmyA8IGZ1a3V0c3V1XCA7CivoiLnlupUgPCBmdW5hem9rb1wgOwor6Ii55bqKIDwgZnVuYWRva29cIDsKK+mnhuiQvSA8IGtha2VvY2hpXCA7CivmpbXluIwgPCBnb2t1bWFyZVwgOwor5Lq66aqoIDwgamlua290c3VcIDsKK+Wwj+e1kCA8IGtvbXVzdWJpXCA7CivmraPnpL7lk6EgPCBzZWlzaGFpblwgOwor562J5rip57eaIDwgdG91b25zZW5cIDsKK+Wun+iqrCA8IGppc3NldHN1XCA7CivlvqHpnIrlsYsgPCBtaXRhbWF5YVwgOwor5LiA5aSV6KmxIDwgaXNzZWtpd2FcIDsKK+Wwj+eCuuabvyA8IGtvZ2F3YXNlXCA7CivnrKzkuIDkvY0gPCBkYWlpY2hpaVwgOwor5bGl54mpIDwgaGFraW1vbm9cIDsKK+eXheW+tCA8IGJ5b3VjaG91XCA7CivnqI7plqLlkI8gPCB6ZWlrYW5yaVwgOwor6aSK6IKy6LK7IDwgeW91aWt1aGlcIDsKK+WumuiqrCA8IHRlaXNldHN1XCA7Civoh6jmnIggPCByaW5nZXRzdVwgOwor5rWB6Y+R6aasIDwgeWFidXNhbWVcIDsKK+eXheW8sSA8IGJ5b3VqYWt1XCA7CivmjqfoqLTkurogPCBrb3Vzb25pblwgOwor6Iy26Kmx5LyaIDwgY2hhd2FrYWlcIDsKK+WWq+e3iuS6iyA8IGtpa2tpbmppXCA7CivlkLjph5HliZsgPCBrb2tvbmdvdVwgOwor6aqo5p2QIDwga290c3V6YWlcIDsKK+eUo+eJqSA8IHNhbmJ1dHN1XCA7CivmpJzmnK0gPCBrZW5zYXRzdVwgOwor6LKq6aOfIDwgZG9uc2hva3VcIDsKK+S/oeeUqCA8IHNoaW4nJ3lvdVwgOwor6ISH6IW5IDwgd2FraWJhcmFcIDsKK+iAgee3tOWutiA8IHJvdXJlbmthXCA7CivkuI3oqr/lkowgPCBmdWNob3V3YVwgOwor55Sf54mpIDwgbmFtYW1vbm9cIDsKK+WxgOeVqiA8IGt5b2t1YmFuXCA7CivlsI/nrZYgPCBzaG91c2FrdVwgOwor5qeN5YWIIDwgeWFyaXNha2lcIDsKK+awl+euoeaUryA8IGtpa2Fuc2hpXCA7Civnl7Dlo7ogPCB0YW50c3Vib1wgOwor6auq5bqKIDwga2FtaWRva29cIDsKK+awtOmFuOWMliA8IHN1aXNhbmthXCA7CivlpKfkurrmsJcgPCBkYWluaW5raVwgOwor5a+S6ImyIDwga2Fuc2hva3VcIDsKK+mdkumKheWZqCA8IHNlaWRvdWtpXCA7CivmpI3moL0gPCBzaG9rdXNhaVwgOwor5LyR6LazIDwga3l1dXNva3VcIDsKK+iIueWuvyA8IGZ1bmF5YWRvXCA7Civku4/ploAgPCBidXRzdW1vblwgOwor6aOb6KGM5L6/IDwgaGlrb3ViaW5cIDsKK+WCjeW9uSA8IHdha2l5YWt1XCA7Civogonov6sgPCBuaWt1aGFrdVwgOwor5Y+v6IO95rOVIDwga2Fub3Vob3VcIDsKK+ecn+ePoOavjSA8IHNoaW5qdWJvXCA7CivmoLjohpwgPCBrYWt1bWFrdVwgOwor5bCC5pS756eRIDwgc2Vua291a2FcIDsKK+WMluiGv+iPjCA8IGthbm91a2luXCA7CivkuqHpqrggPCBuYWtpZ2FyYVwgOwor6IeY5pyIIDwgcm91Z2V0c3VcIDsKK+akjeaelyA8IHNob2t1cmluXCA7CivpnZ7luLjnt5ogPCBoaWpvdXNlblwgOwor57K+5LiA5p2vIDwgc2VpaXBwYWlcIDsKK+mBh+S4jemBhyA8IGd1dWZ1Z3V1XCA7Civog7johpwgPCBreW91bWFrdVwgOwor6aO96aOfIDwgaG91c2hva3VcIDsKK+S/rueGnyA8IHNodXVqdWt1XCA7CivmnKrogJXlnLAgPCBtaWtvdWNoaVwgOwor6ZaA5LiL55SfIDwgbW9ua2FzZWlcIDsKK+S4gOmiqOWRgiA8IGhpdG9mdXJvXCA7CivlroXoqLogPCB0YWt1c2hpblwgOwor5bCP56aEIDwgc2hvdXJva3VcIDsKK+S8neiqrCA8IGRlbnNldHN1XCA7CivotrPnmZYgPCBhc2hpa3VzZVwgOwor6ISx56iOIDwgZGF0c3V6ZWlcIDsKK+S6rOmfvyA8IGt5b3VreW91XCA7Civln7nppIrln7ogPCBiYWl5b3VraVwgOwor6Lui5YWlIDwgdGVuJydueXV1XCA7Civou43pmorljJYgPCBndW50YWlrYVwgOwor5ryU6Iq45LyaIDwgZW5nZWlrYWlcIDsKK+WvvueriyA8IHRhaXJpdHN1XCA7CivmlofkurrnlLsgPCBidW5qaW5nYVwgOwor54++5pmC5LujIDwgZ2VuamlkYWlcIDsKK+iFq+eJqSA8IHNodW1vdHN1XCA7CivluoPnr4Tlm7IgPCBrb3VoYW4nJ2lcIDsKK+alteWkpyA8IGt5b2t1ZGFpXCA7CivnlaXmm7ggPCByeWFrdXNob1wgOwor5a6/6IiOIDwgc2h1a3VzaGFcIDsKK+i7jeWNkiA8IGd1bnNvdHN1XCA7CivlhoblsYvmoLkgPCBtYXJ1eWFuZVwgOwor5bOw5bOwIDwgbWluZW1pbmVcIDsKK+WfuemkiuWcnyA8IGJhaXlvdWRvXCA7Civlr5LmsJflm6MgPCBrYW5raWRhblwgOwor5a656ImyIDwgeW91c2hva3VcIDsKK+eyl+WIqeebiiA8IGFyYXJpZWtpXCA7Civku4vpjK8gPCBrYWlzaGFrdVwgOwor5LqI566X5aSWIDwgeW9zYW5nYWlcIDsKK+mdnuawkeS4uyA8IGhpbWluc2h1XCA7CivltYzlhaUgPCBrYW4nJ255dXVcIDsKK+i7kuWIpSA8IGtlbmJldHN1XCA7CivlgbTlvbkgPCBzb2JheWFrdVwgOwor6Lui5YCfIDwgdGVuc2hha3VcIDsKK+WPl+ebiuiAhSA8IGp1ZWtpc2hhXCA7CivohIrntKIgPCBzZWtpc2FrdVwgOwor5a6J5a6a5p2/IDwgYW50ZWliYW5cIDsKK+iomOW/temkqCA8IGtpbmVua2FuXCA7CivkuIDmrankuIDmrakgPCBpcHBvaXBwb1wgOwor5aSn5a6H5a6ZIDwgZGFpdWNodXVcIDsKK+iyoemWpSA8IHphaWJhdHN1XCA7CivkupzmgKXmgKcgPCBha3l1dXNlaVwgOwor5pyo6bygIDwga2luZXp1bWlcIDsKK+mqqOaKmCA8IGtvc3NldHN1XCA7CivohJrnq4sgPCBreWF0YXRzdVwgOwor5YO75LqLIDwgaGlnYWdvdG9cIDsKK+ioiOeul+ewvyA8IGtlaXNhbmJvXCA7CivnlaXmlocgPCByeWFrdWJ1blwgOwor6LuS5YWIIDwgbm9raXNha2lcIDsKK+mdmeatoueUuyA8IHNlaXNoaWdhXCA7CivkuI3mlbTlkIggPCBmdXNlaWdvdVwgOwor5LqM6YeN6aGOIDwgbmlqdXVhZ29cIDsKK+WItuW+oeapnyA8IHNlaWd5b2tpXCA7CivmoLnntbYgPCBrb256ZXRzdVwgOwor5p6d6YGTIDwgZWRhbWljaGlcIDsKK+S6jOetieWIhiA8IG5pdG91YnVuXCA7Civlrr/ogIEgPCBzaHVrdXJvdVwgOwor6LK46YeRIDwga2FzaGlraW5cIDsKK+W5s+eCieazlSA8IGhlaXJvaG91XCA7Civpq5jlr4YgPCBrb3VtaXRzdVwgOwor5LqU56ic5aChIDwgZ29yeW91aG9cIDsKK+acquadpeWDjyA8IG1pcmFpem91XCA7CivotrPmuKnlmaggPCBzb2t1b25raVwgOwor5LqM562J5YW1IDwgbml0b3VoZWlcIDsKK+iytOaXj+mZoiA8IGtpem9rdWluXCA7Civku4/pgZMgPCBidXRzdWRvdVwgOwor5L2V6ICFIDwgbmFuaW1vbm9cIDsKK+iJr+S/lyA8IHJ5b3V6b2t1XCA7CivoqJjlj7foq5YgPCBraWdvdXJvblwgOwor5L2P6IG3IDwganV1c2hva3VcIDsKK+aflOihkyA8IGp1dWp1dHN1XCA7CivnlJ/msLQgPCBuYW1hbWl6dVwgOwor5ZCN6Kme5Y+lIDwgbWVpc2hpa3VcIDsKK+iDuOezniA8IG11bmVrdXNvXCA7CivlrqLoiLkgPCBreWFrdXNlblwgOwor6ICB6aqoIDwgcm91a290c3VcIDsKK+aelei+uiA8IG1ha3VyYWJlXCA7CivlsKTniakgPCB5dXVidXRzdVwgOwor5Lyd6aas6Ii5IDwgdGVubWFzZW5cIDsKK+S5semrqiA8IHJhbnBhdHN1XCA7CivpioDmsrPns7sgPCBnaW5nYWtlaVwgOwor5L2T572wIDwgdGFpYmF0c3VcIDsKK+S6uumHjCA8IGhpdG96YXRvXCA7CivlrqLohrMgPCBreWFrdXplblwgOwor5aSn5a6u5Y+4IDwgZGFpZ3V1amlcIDsKK+iCieimqiA8IG5pa3VzaGluXCA7CivmtYHooYznm64gPCBoYXlhcmltZVwgOwor6YGg6KaW55y8IDwgZW5zaGlnYW5cIDsKK+WvjOexpCA8IHRvbWlrdWppXCA7CivljbXlt6Pngo4gPCByYW5zb3VlblwgOwor5YG15a+fIDwgdGVpc2F0c3VcIDsKK+iDveethiA8IG5vdWhpdHN1XCA7Civkub7poqggPCBrYXJha2F6ZVwgOwor6auq5Z6LIDwga2FtaWdhdGFcIDsKK+acquS6oeS6uiA8IG1pYm91amluXCA7CivlvJXnlKjnrKYgPCBpbicneW91ZnVcIDsKK+iJr+S5hSA8IHJ5b3VreXV1XCA7CivmnZHpm6ggPCBtdXJhc2FtZVwgOwor5p+U6YGT5a62IDwganV1ZG91a2FcIDsKK+i7kuS4piA8IG5va2luYW1pXCA7CivkuI3lnYfooaEgPCBmdWtpbmtvdVwgOwor6LuS5LiIIDwgbm9raXRha2VcIDsKK+WvkueruSA8IGthbmNoaWt1XCA7CivmnIjpvaIgPCBnZXRzdXJlaVwgOwor5a++6Kmx6ICFIDwgdGFpd2FzaGFcIDsKK+i3s+aigSA8IGNob3VyeW91XCA7Civlr5LnqbogPCBzYW11em9yYVwgOwor6Kif5YuZ6YOoIDwgc2hvdW11YnVcIDsKK+S7sOinkiA8IGd5b3VrYWt1XCA7CivlvqHpnIrliY0gPCBnb3JlaXplblwgOwor5YWM5o+b5Yi4IDwgZGFrYW5rZW5cIDsKK+S4jeaRgueUnyA8IGZ1c2Vzc2VpXCA7Civmpb3liocgPCBnYWt1Z2VraVwgOwor5pel5pys6aKoIDwgbmlob25mdXVcIDsKK+mjhOmjhCA8IGh5b3VoeW91XCA7CivmnKjpqqggPCBtb2trb3RzdVwgOwor5YCZ6KOc5ZywIDwga291aG9jaGlcIDsKK+eOiemrhCA8IGd5b2t1enVpXCA7CivnoILpmLLmnpcgPCBzYWJvdXJpblwgOwor5L+X5rWBIDwgem9rdXJ5dXVcIDsKK+S4i+Wjq+WumCA8IGthc2hpa2FuXCA7CivluILorbDkvJogPCBzaGlnaWthaVwgOwor5LiA5pmC5pyfIDwgaWNoaWppa2lcIDsKK+WBpeWunyA8IGtlbmppdHN1XCA7Civoh6rosqDlv4MgPCBqaWZ1c2hpblwgOwor6LGq6ZuqIDwgZ291c2V0c3VcIDsKK+ebuOWQiOWCmCA8IGFpYWlnYXNhXCA7CivogbToppogPCBjaG91a2FrdVwgOwor6KyZ6K2y6KqeIDwga2Vuam91Z29cIDsKK+ePjemHjSA8IGNoaW5jaG91XCA7CivmibbmjIHnsbMgPCBmdWNoaW1haVwgOwor5YaN6LW35YuVIDwgc2Fpa2lkb3VcIDsKK+eNo+WMu+WtpiA8IGp1dWlnYWt1XCA7CivpnZ7luLjnlKggPCBoaWpvdXlvdVwgOwor56C05buJ5oGlIDwgaGFyZW5jaGlcIDsKK+WHuuaUvumhjCA8IGRlaG91ZGFpXCA7CivlronlrprmhJ8gPCBhbnRlaWthblwgOwor5YG05aOBIDwgc29rdWhla2lcIDsKK+aknOWwvyA8IGtlbicnbnlvdVwgOwor6aSK6ICB6ZmiIDwgeW91cm91aW5cIDsKK+S5sembkSA8IHJhbnphdHN1XCA7CivlsZ7mnJsgPCBzaG9rdWJvdVwgOwor6YeO6Imv54yrIDwgbm9yYW5la29cIDsKK+S4rem7kiA8IG5ha2FndXJvXCA7CivmnKrkuIHlubQgPCBtaXRlaW5lblwgOwor5Lq66LazIDwgaGl0b2FzaGlcIDsKK+WvvueJqSA8IHRhaWJ1dHN1XCA7CivlronlrprmgKcgPCBhbnRlaXNlaVwgOwor546J6aGUIDwgZ3lva3VnYW5cIDsKK+mir+miryA8IHNhc3NhdHN1XCA7Civku4/oqqwgPCBidXNzZXRzdVwgOwor5bO25Y+wIDwgc2hpbWFkYWlcIDsKK+S7h+iujiA8IGt5dXVzaHV1XCA7CivkvbXnmbogPCBoZWloYXRzdVwgOwor6aeQ55WZIDwgY2h1dXJ5dXVcIDsKK+eVpeW4vSA8IHJ5YWt1Ym91XCA7CivmsbrnrpfmnJ8gPCBrZXNzYW5raVwgOwor5pyd6aOvIDwgYXNhbWVzaGlcIDsKK+iHquS5l+aguSA8IGppam91a29uXCA7Civlhajojbfph40gPCB6ZW5rYWp1dVwgOwor5L2V56iLIDwgbmFuaWhvZG9cIDsKK+WlpeW+oeauvyA8IG9rdWdvdGVuXCA7Civpoqjpo58gPCBmdXVzaG9rdVwgOwor55Wz5bGLIDwgdGF0YW1peWFcIDsKK+ijvemAoOaJgCA8IHNlaXpvdWpvXCA7CivlgbTlnKcgPCBzb2t1YXRzdVwgOwor6LSW572qIDwgc2hva3V6YWlcIDsKK+W/q+eUt+WFkCA8IGthaWRhbmppXCA7CivogqnogpggPCBrYXRhaGlqaVwgOwor5pe65paH56S+IDwgb3VidW5zaGFcIDsKK+afk+iJsiA8IHNlbnNob2t1XCA7CivotoXpn7Pms6IgPCBjaG91b25wYVwgOwor5a6I6K236ZyKIDwgc2h1Z29yZWlcIDsKK+eEoeacn+W7tuacnyA8IG11a2llbmtpXCA7CivmnKjmm77lt50gPCBraXNvZ2F3YVwgOwor5byx6Z+z5ZmoIDwgamFrdW9ua2lcIDsKK+adkemHjCA8IG11cmF6YXRvXCA7Civku5nooZMgPCBzZW5qdXRzdVwgOwor5L+X5qW9IDwgem9rdWdha3VcIDsKK+mmluetiyA8IGt1YmlzdWppXCA7CivkvYfnq4sgPCBjaG9yaXRzdVwgOwor5a+G552AIDwgbWl0Y2hha3VcIDsKK+axuueul+aXpSA8IGtlc3NhbmJpXCA7CivohbDmnb8gPCBrb3NoaWl0YVwgOwor6IKh6IKJIDwgbW9tb25pa3VcIDsKK+iEsea8jyA8IGRhdHN1cm91XCA7Civoh6rkuLvmqKkgPCBqaXNodWtlblwgOwor6IO95byB5a62IDwgbm91YmVua2FcIDsKK+WPr+iDveaApyA8IGthbm91c2VpXCA7CivlpKfml6bpgqMgPCBvb2RhbicnbmFcIDsKK+S4uOmrtyA8IG1hcnVtYWdlXCA7CivljbDluqbmlZkgPCBpbmRva3lvdVwgOwor5bGI5puyIDwga3Vra3lva3VcIDsKK+iIueS6uiA8IGZ1bmFiaXRvXCA7CivpqqjlpKogPCBob25lYnV0b1wgOwor6auY5Y2SIDwga291c290c3VcIDsKK+eEoeS6uuWztiA8IG11amludG91XCA7CivlsLHmpa0gPCBzaHV1Z3lvdVwgOwor6aOf6YGTIDwgc2hva3Vkb3VcIDsKK+ecn+S8vOS6iyA8IG1hbmVnb3RvXCA7CivosLfpoqggPCB0YW5pa2F6ZVwgOwor6KyE5YaZ5ZmoIDwgdG91c2hha2lcIDsKK+S7ruiRuiA8IGthcmlidWtpXCA7Civpoqjpm6ogPCBmdXVzZXRzdVwgOwor5p+U6IKMIDwgeWF3YWhhZGFcIDsKK+mnkOeLrCA8IGNodXVkb2t1XCA7CivluLDpgoTogIUgPCBraWthbnNoYVwgOwor546J6ZaAIDwgZ3lva3Vtb25cIDsKK+WKqeeUo+mZoiA8IGpvc2FuJydpblwgOwor5pyI6aOfIDwgZ2Vzc2hva3VcIDsKK+Wls+W6l+WToSA8IGpvdGVuJydpblwgOwor5qCX55+zIDwga3VyaWlzaGlcIDsKK+Wwj+azoiA8IHNhemFuYW1pXCA7Civom7jpg6jlsYsgPCB0YWtvYmV5YVwgOwor5LqI566X5LiKIDwgeW9zYW5qb3VcIDsKK+WumueriyA8IHRlaXJpdHN1XCA7CivkuLjpppYgPCBtYXJ1a3ViaVwgOwor5Lit6auYIDwgbmFrYWRha2FcIDsKK+WumuaZguWItiA8IHRlaWppc2VpXCA7Civlrpjnq4sgPCBrYW5yaXRzdVwgOwor6IO9546HIDwgbm91cml0c3VcIDsKK+ato+W8puazoiA8IHNlaWdlbmhhXCA7CivkvZnmiYDkuosgPCB5b3NvZ290b1wgOwor6Laz5qWtIDwgYXNoaXdhemFcIDsKK+acqOmQuCA8IGJva3V0YWt1XCA7CivkuLvpo58gPCBzaHVzaG9rdVwgOwor5L+X5puyIDwgem9ra3lva3VcIDsKK+S9nOeXhSA8IHNha3VieW91XCA7CivkvZXnmb4gPCBuYW5ieWFrdVwgOwor5LuB6KGTIDwgamluanV0c3VcIDsKK+mmrOm5v+iAhSA8IGJha2Ftb25vXCA7CivmoZzmua8gPCBzYWt1cmF5dVwgOwor5qSc5ZynIDwga2VuJydhdHN1XCA7CivlhIDnpLzlhbUgPCBnaXJlaWhlaVwgOwor5LiA6b2jIDwgaGl0b2tvbWFcIDsKK+i2s+aisCA8IGFzaGlrYXNlXCA7CivmnIjpnaIgPCBnZXRzdW1lblwgOwor5pel5pys6YWSIDwgbmlob25zaHVcIDsKK+WwveaXpSA8IGppbmppdHN1XCA7CivlsJHmrLIgPCBzaG91eW9rdVwgOwor55S75byVIDwga2FrdWJpa2lcIDsKK+aXqeeUo+WFkCA8IHNvdXphbmppXCA7CivnlZnlraYgPCByeXV1Z2FrdVwgOwor5a2m57+SIDwgZ2FrdXNodXVcIDsKK+i3i+aWhyA8IGJhdHN1YnVuXCA7CivlsbHlvaYgPCB5YW1hYmlrb1wgOwor5bGx5b2iIDwgeWFtYWdhdGFcIDsKK+eXheS4rSA8IGJ5b3VjaHV1XCA7CivmjqHntr/lmaggPCBzYWltZW5raVwgOwor5YG25YqbIDwgZ3V1cnlva3VcIDsKK+iLsemAo+mCpiA8IGVpcmVucG91XCA7Civku7vogbcgPCBuaW5zaG9rdVwgOwor6ISx5q+bIDwgZGF0c3Vtb3VcIDsKK+aXqeeUn+WFkCA8IHNvdXNlaWppXCA7CivmnKjpi48gPCBraWJhc2FtaVwgOwor6LKn6KGAIDwgaGlua2V0c3VcIDsKK+WKoOebn+iAhSA8IGthbWVpc2hhXCA7CivpmY3pm6jph48gPCBrb3V1cnlvdVwgOwor6ICz6KixIDwgbWltaW1vdG9cIDsKK+WCkeS6uiA8IGtldHN1amluXCA7Civlr77msbogPCB0YWlrZXRzdVwgOwor5bCE5q66IDwgc2hhc2F0c3VcIDsKK+itpuWCmeiJhyA8IGtlaWJpdGVpXCA7Civlh7rmnaXkuosgPCBkZWtpZ290b1wgOwor5Luk6ImyIDwgcmVpc2hva3VcIDsKK+S+oembu+WtkCA8IGthZGVuc2hpXCA7CivlsIHmrrogPCBmdXVzYXRzdVwgOwor5Y+k55Sf55WMIDwga29zZWlrYWlcIDsKK+Wwj+anjCA8IGtvZHp1Y2hpXCA7CivlrabnuL4gPCBnYWt1c2VraVwgOwor5bGx5bedIDwgeWFtYWdhd2FcIDsKK+mrmOS9jiA8IHRha2FoaWt1XCA7CivkuK3poIMgPCBuYWthZ29yb1wgOwor6IG36IO9IDwgc2hva3Vub3VcIDsKK+WxiOaKmCA8IGt1c3NldHN1XCA7Civlrp/nm7QgPCBqaXRjaG9rdVwgOwor6YeR6a2a5bGLIDwga2luZ3lveWFcIDsKK+iFsOaKmCA8IGtvc2hpb3JlXCA7CivmnKjlpKnok7wgPCBtYXRhdGFiaVwgOwor5a6f55uKIDwgaml0c3Vla2lcIDsKK+WNiuijuOS9kyA8IGhhbnJhdGFpXCA7CivlrprnnYAgPCB0ZWljaGFrdVwgOwor5qKB5pyoIDwgcnlvdWJva3VcIDsKK+aXpeacrOi7jSA8IG5paG9uZ3VuXCA7Civml6XmnKzou4ogPCBuaWhvbnNoYVwgOwor5YG25YG2IDwgdGFtYXRhbWFcIDsKK+S/rue+hemBkyA8IHNodXJhZG91XCA7CivotrPml6kgPCBhc2hpYmF5YVwgOwor5ZWG6KGM54K6IDwgc2hvdWtvdWlcIDsKK+iIjOS7oyA8IHpldHN1ZGFpXCA7Civmn7Hnn7MgPCBjaHV1c2VraVwgOwor5bGx5bGxIDwgeWFtYXlhbWFcIDsKK+adoemHjOWItiA8IGpvdXJpc2VpXCA7CivkuK3pmpQgPCBjaHV1a2FrdVwgOwor5bGA5omAIDwga3lva3VzaG9cIDsKK+afk+ethiA8IHNlbnBpdHN1XCA7CivmipXlvbHms5UgPCB0b3VlaWhvdVwgOwor5L+h5oaRIDwgc2hpbnB5b3VcIDsKK+ahn+apiyA8IHNhbmJhc2hpXCA7CivogonntLAgPCBuaWt1Ym9zb1wgOwor5a6i55SoIDwga3lha3V5b3VcIDsKK+S4remZkCA8IG5ha2FnaXJpXCA7CivmnInlsL7poZ4gPCB5dXViaXJ1aVwgOwor5bGx5a+6IDwgeWFtYWRlcmFcIDsKK+asp+e+heW3tCA8IHlvdXJvcHBhXCA7CivkuIfpqqggPCBiYW5rb3RzdVwgOwor5LiW6ZaT5L2TIDwgc2VrZW50ZWlcIDsKK+S8iumBlOW3uyA8IGRhdGVtYWtpXCA7Civkv67lvqkgPCBzaHV1ZnVrdVwgOwor5LuP6ImmIDwgZnV0c3VrYW5cIDsKK+Wun+eUqCA8IGppdHN1eW91XCA7Civkv67lvpcgPCBzaHV1dG9rdVwgOwor6IOG55WlIDwgdGFucnlha3VcIDsKK+awtOWIqeaoqSA8IHN1aXJpa2VuXCA7Civlj7LlrablrrYgPCBzaGlnYWtrYVwgOwor5Li46ZG/IDwgbWFydW5vbWlcIDsKK+WxseWuiCA8IHlhbWFtb3JpXCA7CivotrPmkbogPCBhc2hpenVyaVwgOwor6aOf6KiAIDwgc2hva3VnZW5cIDsKK+e0jeS7mOmHkSA8IG5vdWZ1a2luXCA7CivolY7puqbmrrsgPCBzb2JhZ2FyYVwgOwor5LqM6KiAIDwgZnV0YWtvdG9cIDsKK+S9k+eGsSA8IHRhaW5ldHN1XCA7CivotaTps6XotaTohbkgPCBha2Frb2trb1wgOwor5pa55ZCR6Ii1IDwgaG91a291ZGFcIDsKK+S7rue2tCA8IGthcml0b2ppXCA7CivlpI/oh7Pnt5ogPCBnZXNoaXNlblwgOwor5LiN5Z2H562JIDwgZnVraW50b3VcIDsKK+Wuh+WumeW4vSA8IHVjaHV1Ym91XCA7CivnhKHpoLzmvKIgPCBidXJhaWthblwgOwor5bGI5b6TIDwga3V0c3VqdXVcIDsKK+Wun+ePviA8IGppdHN1Z2VuXCA7Civmv4PluqboqIggPCBub3Vkb2tlaVwgOwor54++6IG3IDwgZ2Vuc2hva3VcIDsKK+ixgemBlCA8IGthdHRhdHN1XCA7Civkv6Hlv7UgPCBzaGluJyduZW5cIDsKK+mhjumqqCA8IGdha2tvdHN1XCA7CivkuIDmmKjlubQgPCBvdG90b3NoaVwgOwor5pyq57WM6aiTIDwgbWlrZWlrZW5cIDsKK+S4iemjnyA8IHNhbnNob2t1XCA7CivmnJ3lr53lnYogPCBhc2FuZWJvdVwgOwor5LqG6KaaIDwgcnlvdWtha3VcIDsKK+e+pOmbsiA8IG11cmFrdW1vXCA7CivmnIjph5EgPCBnZXRzdWtpblwgOwor6LWk5rKIIDwgc2VraWNoaW5cIDsKK+S4i+mhjiA8IHNoaXRhYWdvXCA7CivlsbHlp6sgPCB5YW1haGltZVwgOwor6ISC5rGXIDwgYWJ1cmFhc2VcIDsKK+iFsOW8gSA8IGtvc2hpYmVuXCA7Civlrp3njokgPCBob3VneW9rdVwgOwor6YGO5aSn6KaWIDwga2FkYWlzaGlcIDsKK+WwkeaVtSA8IHNob3V0ZWtpXCA7Civnv6Hnv6DoibIgPCBoaXN1aWlyb1wgOwor6amN5bCGIDwgZ3lvdXNob3VcIDsKK+S4mOmZtSA8IGt5dXVyeW91XCA7CivnlaXlkI0gPCByeWFrdW1laVwgOwor5Zyf5qC55oCnIDwgZG9rb25qb3VcIDsKK+eVpeWPtyA8IHJ5YWt1Z291XCA7CivnlaXlj7IgPCByeWFrdXNoaVwgOwor55Wq5Y2SIDwgYmFuc290c3VcIDsKK+e3j+aooeanmCA8IHNvdW1veW91XCA7CivnlaXlj5YgPCByeWFrdXNodVwgOwor6KiI566X5qmfIDwga2Vpc2Fua2lcIDsKK+W8geW9k+WxiyA8IGJlbnRvdXlhXCA7Civku6PmiZPogIUgPCBkYWlkYXNoYVwgOwor5a6f54q2IDwgaml0c3Vqb3VcIDsKK+WAn+WcsCA8IHNoYWt1Y2hpXCA7CivkvbXmrrogPCBoZWlzYXRzdVwgOwor6IWw5bivIDwga29zaGlvYmlcIDsKK+S4iumdtCA8IHV3YWd1dHN1XCA7Civohpzlo4EgPCBtYWt1aGVraVwgOwor6aKo5aqS6IqxIDwgZnV1YmFpa2FcIDsKK+iEseaWhyA8IGRhdHN1YnVuXCA7CivlrZjnq4sgPCBzb25yaXRzdVwgOwor54Sh6Kmm6aiTIDwgbXVzaGlrZW5cIDsKK+WuneeJqSA8IGhvdW1vdHN1XCA7CivphrjpgKDphaIgPCBqb3V6b3VzdVwgOwor5L+X5b2iIDwgem9rdWd5b3VcIDsKK+WPjeWLlea0viA8IGhhbmRvdWhhXCA7CivntYzmuIjlrrYgPCBrZWl6YWlrYVwgOwor5reL5be06IW6IDwgcmlucGFzZW5cIDsKK+S6uuiGmiA8IGhpdG9oYWRhXCA7CivpoqjotrMgPCBrYXphYXNoaVwgOwor5Lm+6KOCIDwga2FucmV0c3VcIDsKK+ahjuaijyA8IHNoaWtrb2t1XCA7CivkuIDpoIMgPCBoaXRva29yb1wgOwor6Ieq5Li75oCnIDwgamlzaHVzZWlcIDsKK+e/jOmAsSA8IHlva3VzaHV1XCA7CivotorlpKnmpb0gPCBldGVucmFrdVwgOwor5qip5Yip6YeRIDwga2VucmlraW5cIDsKK+WvvuaXpSA8IHRhaW5pY2hpXCA7CivmnqDntYQgPCB3YWt1Z3VtaVwgOwor5oWi5oCn5YyWIDwgbWFuc2Vpa2FcIDsKK+e/u+iosyA8IGhvbicneWFrdVwgOwor5Lq66ISIIDwgamlubXlha3VcIDsKK+aOiOS5s+acnyA8IGp1bnl1dWtpXCA7CivlsILploDoqp4gPCBzZW5tb25nb1wgOwor5bGx5Z+OIDwgeWFtYWppcm9cIDsKK+WJjeiInuWPsCA8IG1hZWJ1dGFpXCA7CivlpKnniL7kuY7ms6IgPCB0ZW5pd29oYVwgOwor6ISa5pysIDwga3lha3Vob25cIDsKK+mBuOenkeeUnyA8IHNlbmthc2VpXCA7CivmnbHoip0gPCB0b3VzaGliYVwgOwor6LWk5qirIDwgYWthZ2FzaGlcIDsKK+iEiuakjiA8IHNla2l0c3VpXCA7Civlrp/pmpvlrrYgPCBqaXNzYWlrYVwgOwor5p+054qsIDwgc2hpYmFpbnVcIDsKK+S/ruWtpiA8IHNodXVnYWt1XCA7Civkv4rlvrMgPCBzaHVudG9rdVwgOwor5LiA5pi85aScIDwgaXRjaHV1eWFcIDsKK+aciOi8qiA8IGdldHN1cmluXCA7Civku7Lnp4sgPCBjaHV1c2h1dVwgOwor5Li76L+wIDwgc2h1anV0c3VcIDsKK+ihhuitsOmZoiA8IHNodXVnaWluXCA7CivkurrogokgPCBqaW4nJ25pa3VcIDsKK+WqkumFjCA8IGJhaXNoYWt1XCA7Civml6XmnKzoo70gPCBuaWhvbnNlaVwgOwor5L6L5pyIIDwgcmVpZ2V0c3VcIDsKK+eUn+WomCA8IGtpbXVzdW1lXCA7CivljbDliKTluKsgPCBpbmJhbnNoaVwgOwor5Luj562GIDwgZGFpaGl0c3VcIDsKK+WvhuauuiA8IG1pc3NhdHN1XCA7CivmmrTpo58gPCBib3VzaG9rdVwgOwor5bGx5Zu9IDwgeWFtYWd1bmlcIDsKK+iBt+eoriA8IHNob2t1c2h1XCA7CivkuIDpmpsgPCBoaXRva2l3YVwgOwor5bCP54Gr5ZmoIDwgc2hvdWtha2lcIDsKK+eEoemiqOW4ryA8IG11ZnV1dGFpXCA7CivkuIDpmoUgPCBoaXRvc3VtaVwgOwor5bCx5bqKIDwgc2h1dXNob3VcIDsKK+S4iOmVtyA8IHRha2VuYWdhXCA7CivpoK3pq6ogPCB0b3VoYXRzdVwgOwor54yl6ZuRIDwgd2FpemF0c3VcIDsKK+i2s+W9oiA8IGFzaGlnYXRhXCA7CivotbDmn7vnt5ogPCBzb3VzYXNlblwgOwor5a6J54mpIDwgeWFzdW1vbm9cIDsKK+epuuaJi+WutiA8IGthcmF0ZWthXCA7CivlpKnkupXlgKQgPCB0ZW5qb3VuZVwgOwor5a+S5qW1IDwga2Fua3lva3VcIDsKK+i2s+W8sSA8IGFzaGl5b3dhXCA7CivoqIjnrpfmnKggPCBrZWlzYW5naVwgOwor5YCZ5ZOJIDwgc291cm91eWFcIDsKK+S+i+aXpSA8IHJlaWppdHN1XCA7CivkuK3pgJ8gPCBjaHV1c29rdVwgOwor5o6h54Kt5omAIDwgc2FpdGFuam9cIDsKK+W8geWLmeWumCA8IGJlbm11a2FuXCA7Civlj5fnm4rmqKkgPCBqdWVraWtlblwgOwor55Sf5aOBIDwgbmFtYWthYmVcIDsKK+WKoOW3pee0mSA8IGtha291c2hpXCA7CivogonnmoQgPCBuaWt1dGVraVwgOwor6IO45qSOIDwga3lvdXRzdWlcIDsKK+aVmeWLmeiqsiA8IGt5b3VtdWthXCA7CivmoYLmnIggPCBrZWlnZXRzdVwgOwor5a6k5ripIDwgc2hpdHN1b25cIDsKK+mAo+WLleapnyA8IHJlbmRvdWtpXCA7Civku5nnqp8gPCBzZW5rdXRzdVwgOwor5a+n5pelIDwgbmVpaml0c3VcIDsKK+itsOS6i+mMsiA8IGdpamlyb2t1XCA7Civlho3mnaXlubQgPCBzYXJhaW5lblwgOwor5LiA5pio5aScIDwgaXNzYWt1eWFcIDsKK+eVquS7mCA8IGJhbmR6dWtlXCA7CivlroflrpnlobUgPCB1Y2h1dWppblwgOwor5rC06YGT5bGLIDwgc3VpZG91eWFcIDsKK+i1pOadviA8IGFrYW1hdHN1XCA7CivnlaXkvZMgPCByeWFrdXRhaVwgOwor5qKF5bmyIDwgdW1lYm9zaGlcIDsKK+iFueWjgSA8IGZ1a3VoZWtpXCA7CivkuK3ou7ggPCBjaHV1amlrdVwgOwor55Wl5LydIDwgcnlha3VkZW5cIDsKK+iFuOWjgSA8IGNob3VoZWtpXCA7CivosaHomasgPCB6b3VtdXNoaVwgOwor5p6X56uLIDwgcmlucml0c3VcIDsKK+mHjei7jOadoSA8IGp1dWtpam91XCA7Civos6rnlpEgPCBzaGl0c3VnaVwgOwor5bGx5ZC5IDwgeWFtYWJ1a2lcIDsKK+i4j+WIhyA8IGZ1bWlraXJpXCA7CivpgZXntITph5EgPCBpeWFrdWtpblwgOwor5p2P6Iy4IDwgYW56dXRha2VcIDsKK+eUn+WbvSA8IHNob3Vrb2t1XCA7CivpuJrptaHnl4UgPCBvdW11YnlvdVwgOwor5p2f6ISpIDwgc29rdXNodXVcIDsKK+WNmOaAp+iKsSA8IHRhbnNlaWthXCA7Civlrr/mpa0gPCBzaHVrdWdvdVwgOwor5rOo5oSP54K5IDwgY2h1dWl0ZW5cIDsKK+W4uOWCmemHkSA8IGpvdWJpa2luXCA7CivnlLPlkYogPCBzaGlua29rdVwgOwor5a+S5pyIIDwga2FuZ2V0c3VcIDsKK+acieitmCA8IHl1dXNoaWtpXCA7Civou6Lnp7vmgKcgPCB0ZW4nJ2lzZWlcIDsKK+mkhee2siA8IG1vY2hpYW1pXCA7CivkvZXmp5ggPCBuYW5pc2FtYVwgOwor57+B6LKdIDwgb2tpbmFnYWlcIDsKK+a0u+eBq+WxsSA8IGtha2themFuXCA7Civlr4zmnK0gPCB0b21pZnVkYVwgOwor5bGA5aSWIDwga3lva3VnYWlcIDsKK+mjn+iGsyA8IHNob2t1emVuXCA7CivmnYnoi5QgPCBzdWdpZ29rZVwgOwor5a+G5p6XIDwgbWl0c3VyaW5cIDsKK+WAieWNkiA8IHNvdXNvdHN1XCA7CivlrqLmrr8gPCBreWFrdWRlblwgOwor5Lim6LazIDwgbmFtaWFzaGlcIDsKK+WKoOW3peeojiA8IGtha291emVpXCA7CivnlZHkvZwgPCBoYXRhc2FrdVwgOwor55Om5bGLIDwga2F3YXJheWFcIDsKK+WuouatuyA8IGt5YWt1c2hpXCA7CivnlLfliY0gPCBvdG9rb21hZVwgOwor5bGA5aCxIDwga3lva3Vob3VcIDsKK+mhsOi5mSA8IGhpbnNodWt1XCA7Civnvo7nsqfpmaIgPCBiaXNob3VpblwgOwor5a6u5qeYIDwgbWl5YXNhbWFcIDsKK+S9nOafhCA8IHNha3VnYXJhXCA7CivnjK7phYwgPCBrZW5zaGFrdVwgOwor6Iy2566q56ylIDwgY2hhZGFuc3VcIDsKK+mjn+iCsiA8IHNob2t1aWt1XCA7CivlmbTngavlsbEgPCBmdW5rYXphblwgOwor5Zyw5pa55pmCIDwgY2hpaG91amlcIDsKK+S4oei2syA8IHJ5b3Vzb2t1XCA7CivmgqrppJPprLwgPCB3YXJ1Z2FraVwgOwor5Y2a5oSb5a62IDwgaGFrdWFpa2FcIDsKK+S6jOiCoSA8IGZ1dGFtYXRhXCA7CivkuIrpgZQgPCBqb3V0YXRzdVwgOwor5oOF5aCx6YOoIDwgam91aG91YnVcIDsKK+iGneWFgyA8IGhpemFtb3RvXCA7Civlrr/mnJsgPCBzaHVrdWJvdVwgOwor5pel5pys6Iy2IDwgbmlob25jaGFcIDsKK+iEseW4vSA8IGRhdHN1Ym91XCA7CivnlLPlh7ogPCBtb3VzaGlkZVwgOwor5p+E54mpIDwgZ2FyYW1vbm9cIDsKK+S4iui/sCA8IGpvdWp1dHN1XCA7CivkvZzmm7IgPCBzYWtreW9rdVwgOwor6ICz57OeIDwgbWltaWt1c29cIDsKK+iAgeiLpSA8IHJvdW55YWt1XCA7CivlhYnooYzlt64gPCBrb3Vrb3VzYVwgOwor5aSW6ICz6YGTIDwgZ2Fpamlkb3VcIDsKK+iCieeJmyA8IG5pa3VneXV1XCA7CivlsbHlhYMgPCB5YW1hbW90b1wgOwor5Zyw6ZyH5rOiIDwgamlzaGluaGFcIDsKK+S4ieWhgeaJkyA8IHNhbnJ1aWRhXCA7CivmnZ/nuJsgPCBzb2t1YmFrdVwgOwor5Yu+5byV54q2IDwga291aW5qb3VcIDsKK+WcsOmbt+a6kCA8IGppcmFpZ2VuXCA7Civpm7vmqZ/lrZAgPCBkZW5raXNoaVwgOwor5pyr6JGJIDwgbWF0c3V5b3VcIDsKK+W4uOWCmei7jSA8IGpvdWJpZ3VuXCA7CivkvZXmnIggPCBuYW5nYXRzdVwgOwor6LGa6I2JIDwgYnV0YWt1c2FcIDsKK+WwkeWwkSA8IHNob3VzaG91XCA7CivlsI/lnovljJYgPCBrb2dhdGFrYVwgOwor5Yi35q+b5YWIIDwgaGFrZXNha2lcIDsKK+aal+mXhyA8IGt1cmF5YW1pXCA7CivnjonokbEgPCB0YW1hbmVnaVwgOwor6Z2S5YaF6ZqcIDwgYW9zb2tvaGlcIDsKK+ipleitsOWToSA8IGh5b3VnaWluXCA7CivkubPoh60gPCBueXV1c2h1dVwgOwor55SY5Y+jIDwgYW1ha3VjaGlcIDsKK+WFrOWIhuavjSA8IGtvdWJ1bmJvXCA7CivmnKjoj58gPCBtaW1penVrdVwgOwor5Y+v6IG05bqmIDwga2FjaG91ZG9cIDsKK+eEoeadoeS7tiA8IG11am91a2VuXCA7Civnn6Lpo5vnmb0gPCB5YWdhc3VyaVwgOwor5omL6IWV5a62IDwgc2h1d2Fua2FcIDsKK+eUo+WIpSA8IHNhbmJldHN1XCA7CivmpJzkuovmraMgPCBrZW5qaXNlaVwgOwor5L6/5aO6IDwgYmVudHN1Ym9cIDsKK+S4gOi8myA8IGljaGlyeW91XCA7Civos5zniakgPCB0YW1hbW9ub1wgOwor5YG95ZaE6ICFIDwgZ2l6ZW5zaGFcIDsKK+S8neWwjuW6piA8IGRlbmRvdWRvXCA7Civlhazli5/lgrUgPCBrb3Vib3NhaVwgOwor6aaW5p63IDwga3ViaWthc2VcIDsKK+WtkOeItSA8IHNoaXNoYWt1XCA7CivkvovlvI8gPCByZWlzaGlraVwgOwor54++55SfIDwgZ2VuJyduYW1hXCA7CivmnKjoi7ogPCBraWljaGlnb1wgOwor5qmf6Zai6YqDIDwga2lrYW5qdXVcIDsKK+eKrOm3siA8IGludXdhc2hpXCA7CivmnKzoibIgPCBob25zaG9rdVwgOwor5Lmx6ISIIDwgcmFubXlha3VcIDsKK+WvhuaOpSA8IG1pc3NldHN1XCA7CivkuIDouo0gPCBpY2hpeWFrdVwgOwor5bGx5Lq6IDwgeWFtYWJpdG9cIDsKK+iEh+aBryA8IGt5b3Vzb2t1XCA7Civnvr3ooaMgPCBoYWdvcm9tb1wgOwor5pyN6JasIDwgZnVrdXlha3VcIDsKK+atpuWLh+S8nSA8IGJ1eXV1ZGVuXCA7CivmorXliLkgPCBib25zZXRzdVwgOwor5LyP5rWBIDwgZnVrdXJ5dXVcIDsKK+WItuW+oeS4iyA8IHNlaWd5b2thXCA7Civlr77lsYAgPCB0YWlreW9rdVwgOwor6JOu6I+v6I2JIDwgcmVuZ2Vzb3VcIDsKK+WgseefpeapnyA8IGhvdWNoaWtpXCA7CivnjKvotrMgPCBuZWtvYXNoaVwgOwor5bCP5aiYIDwga29tdXN1bWVcIDsKK+S7o+eJqSA8IGRhaWJ1dHN1XCA7Civlp6vpsZIgPCBoaW1lbWFzdVwgOwor5pys6IWwIDwgaG9uZ29zaGlcIDsKK+iFueWIhyA8IGhhcmFraXJpXCA7Civmmanpo68gPCBiYW5tZXNoaVwgOwor57+857+8IDwgeW9rdXlva3VcIDsKK+eUn+WCtyA8IG5hbWFraXp1XCA7CivosZrogokgPCBidXRhbmlrdVwgOwor5aSP6Iez54K5IDwgZ2VzaGl0ZW5cIDsKK+mgremHkSA8IGF0YW1ha2luXCA7CivmraboirjogIUgPCBidWdlaXNoYVwgOwor576O6LOqIDwgYmlzaGl0c3VcIDsKK+i1sOmmrOeBryA8IHNvdW1hdG91XCA7CivlsYrlh7ogPCB0b2Rva2VkZVwgOwor6LWk5b+DIDwgc2VraXNoaW5cIDsKK+eKtumqqCA8IGpvdWtvdHN1XCA7Civnv6DoibIgPCBzdWlzaG9rdVwgOwor5Lih6KKWIDwgcnlvdXNvZGVcIDsKK+S4uOiWrCA8IGdhbicneWFrdVwgOwor5a6/5omAIDwgc2h1a3VzaG9cIDsKK+aenOeJqSA8IGt1ZGFtb25vXCA7Civkuozph43nqI4gPCBuaWp1dXplaVwgOwor54++54mpIDwgZ2VuYnV0c3VcIDsKK+S4i+iriyA8IHNoaXRhdWtlXCA7CivmnKjogLMgPCBraWt1cmFnZVwgOwor5bC95YqbIDwgamlucnlva3VcIDsKK+ato+avlOS+iyA8IHNlaWhpcmVpXCA7CivpoJDph5HogIUgPCB5b2tpbnNoYVwgOwor5Lq655WcIDwgamluY2hpa3VcIDsKK+WKoOmAn+W6piA8IGthc29rdWRvXCA7CivmraPlvZPljJYgPCBzZWl0b3VrYVwgOwor5omL5LiN6LazIDwgdGVidXNva3VcIDsKK+WBtOeBq+WxsSA8IHNva2themFuXCA7CivpgY7kuI3lj4ogPCBrYWZ1a3l1dVwgOwor5q666byg5YmkIDwgc2Fzc296YWlcIDsKK+iomOW/teelrSA8IGtpbmVuc2FpXCA7Civkv4Llk6EgPCBrYWthcmlpblwgOwor5LiN5omL6ZqbIDwgZnV0ZWdpd2FcIDsKK+S4jeetiei+uiA8IGZ1dG91aGVuXCA7CivooqvlrrPlnLAgPCBoaWdhaWNoaVwgOwor5pel5pys57SZIDwgbmlob25zaGlcIDsKK+S4gOirviA8IGljaGlkYWt1XCA7CivmvZzmsLTlpKsgPCBzZW5zdWlmdVwgOwor5b6h6ZmA5LuPIDwgb2RhYnV0c3VcIDsKK+WtpuattCA8IGdha3VyZWtpXCA7Civlrr/mgqogPCBzaHVrdWFrdVwgOwor6IO45bqnIDwgbXVuYWd1cmFcIDsKK+S4gOiqrSA8IGljaGlkb2t1XCA7Civlr6Xlr6UgPCByeW91cnlvdVwgOwor5p2l552AIDwgcmFpY2hha3VcIDsKK+S8kealrSA8IGt5dXVneW91XCA7CivlpJzlrabmoKEgPCB5YWdha2tvdVwgOwor5YaN5LiK5pigIDwgc2Fpam91ZWlcIDsKK+S/ruS6hiA8IHNodXVyeW91XCA7Civog7jluYUgPCBtdW5laGFiYVwgOwor5aSW5p2l6KqeIDwgZ2FpcmFpZ29cIDsKK+mbo+egtOiIuSA8IG5hbnBhc2VuXCA7CivkuIDoqIAgPCBoaXRva290b1wgOwor5a6/5b+XIDwgc2h1a3VzaGlcIDsKK+mnkuS4i+mnhCA8IGtvbWFnZXRhXCA7CivohZXlipsgPCB3YW5yeW9rdVwgOwor6IW55LitIDwgZnVrdWNodXVcIDsKK+S4gOinkiA8IGhpdG9rYWRvXCA7CivogonmrLIgPCBuaWt1eW9rdVwgOwor5rOo5oSP5pu4IDwgY2h1dWlzaG9cIDsKK+ePoOeOiSA8IHNodWd5b2t1XCA7Civku4DniakgPCBqdXVtb3RzdVwgOwor5LqU6YeN5aWPIDwgZ29qdXVzb3VcIDsKK+iCqeabuCA8IGthdGFnYWtpXCA7CivmvKvoq4flrrYgPCBtYW5kYW5rYVwgOwor5YCN57K+5bqmIDwgYmFpc2VpZG9cIDsKK+e0jeS7mOiAhSA8IG5vdWZ1c2hhXCA7Civlrr/lvIogPCBzaHVrdWhlaVwgOwor5Zm054Gr5Y+jIDwgZnVua2Frb3VcIDsKK+S7i+itt+S6uiA8IGthaWdvbmluXCA7CivkubHnrYYgPCByYW5waXRzdVwgOwor5Lq654mpIDwgamluYnV0c3VcIDsKK+S/l+S/oSA8IHpva3VzaGluXCA7CivnjK7ooYAgPCBrZW5rZXRzdVwgOwor5qC85a6JIDwga2FrdXlhc3VcIDsKK+S4oeiTiyA8IHJ5b3VidXRhXCA7Civlrabmpa0gPCBnYWt1Z3lvdVwgOwor5Lq654i1IDwgamluc2hha3VcIDsKK+eMpeikuyA8IHdhaXNldHN1XCA7CivpgZPorbDkvJogPCBkb3VnaWthaVwgOwor5pyJ5qmf5L2TIDwgeXV1a2l0YWlcIDsKK+ixmueusSA8IGJ1dGFiYWtvXCA7Civku67mrr8gPCBrYXJpZG9ub1wgOwor6aOb55+zIDwgdG9iaWlzaGlcIDsKK+S5seeriyA8IHJhbnJpdHN1XCA7CivmrbvnlKPlhZAgPCBzaGl6YW5qaVwgOwor5a6/5bizIDwgeWFkb2Nob3VcIDsKK+WvkuWvkiA8IHNhbXV6YW11XCA7CivmnLHnrYYgPCBzaHVoaXRzdVwgOwor5LiN6KaP5YmHIDwgZnVraXNva3VcIDsKK+S4u+iEiCA8IHNodW15YWt1XCA7CivmvZzmsLTlmaggPCBzZW5zdWlraVwgOwor5LuY5re7IDwgdHN1a2lzb2lcIDsKK+acrOevgCA8IGhvbmJ1c2hpXCA7Civmm7LoirggPCBreW9rdWdlaVwgOwor5pyr56+AIDwgbWFzc2V0c3VcIDsKK+i2s+WFgyA8IGFzaGltb3RvXCA7CivosqHniakgPCB6YWlidXRzdVwgOwor5bCP5ZCNIDwgc2hvdW15b3VcIDsKK+aVtOWCmeW3pSA8IHNlaWJpa291XCA7CivkuZfntYQgPCBub3Jpa3VtaVwgOwor5a+d5ae/IDwgbmVzdWdhdGFcIDsKK+abs+iIuSA8IGhpa2lidW5lXCA7CivmnKvnrYYgPCBtYXBwaXRzdVwgOwor6I2S5q2m6ICFIDwgYXJhbXVzaGFcIDsKK+mBoOWcsOeCuSA8IGVuY2hpdGVuXCA7CivmmLzpoIMgPCBoaXJ1Z29yb1wgOwor54us6LqrIDwgZG9rdXNoaW5cIDsKK+eQtOabsiA8IGtpbmt5b2t1XCA7CivkuqzniakgPCBreW91bW9ub1wgOwor5p+Q5pyIIDwgYm91Z2V0c3VcIDsKK+WkluWtl+e0mSA8IGdhaWppc2hpXCA7Civku4rmmYLliIYgPCBpbWFqaWJ1blwgOwor6LGG57KVIDwgbWFtZWthc3VcIDsKK+S4reiFuSA8IGNodXVmdWt1XCA7Civlj43li5XlrrYgPCBoYW5kb3VrYVwgOwor6aCG6YCGIDwganVuZ3lha3VcIDsKK+Wkp+aZpuaXpSA8IG9vbWlzb2thXCA7CivmnYnnmq4gPCBzdWdpa2F3YVwgOwor5bCG5Y+IIDwgaGF0YW1hdGFcIDsKK+S4jeeyvuW3pyA8IGZ1c2Vpa291XCA7CivlpKfkuIjlpKsgPCBkYWlqb3VidVwgOwor6ISx5Y20IDwgZGFra3lha3VcIDsKK+WvguWvniA8IHNla2liYWt1XCA7Civpo5/nlKggPCBzaG9rdXlvdVwgOwor5p+Q5pelIDwgYm91aml0c3VcIDsKK+S/neWFqOS8miA8IGhvemVua2FpXCA7CivlkIzntKDkvZMgPCBkb3Vzb3RhaVwgOwor5pmp6YWMIDwgYmFuc2hha3VcIDsKK+S4reiCiSA8IGNodXVuaWt1XCA7Civkvp3mgJnotJTlsZMgPCBla29oaWlraVwgOwor6LKe54OIIDwgdGVpcmV0c3VcIDsKK+WGjeS6pOS7mCA8IHNhaWtvdWZ1XCA7Civpo7LniakgPCBub21pbW9ub1wgOwor5Lih6IaaIDwgcnlvdWhhZGFcIDsKK+Wun+W8viA8IGppdHN1ZGFuXCA7CivkuIvokKAgPCBzaGl0YW1vZVwgOwor5aSp5pel5rOVIDwgdGVucGlob3VcIDsKK+absuiAhSA8IGt1c2Vtb25vXCA7CivlrojorbfnpZ4gPCBzaHVnb2ppblwgOwor5qGD5ZySIDwgbW9tb3pvbm9cIDsKK+e1hOWQiOiyuyA8IGt1bWlhaWhpXCA7Civpppblt7sgPCBrdWJpbWFraVwgOwor5LuP5rCXIDwgaG90b2tlZ2lcIDsKK+aYpemiqCA8IGhhcnVrYXplXCA7CivojZLolarlnLAgPCBrb3VidWNoaVwgOwor5Lim6IKJIDwgbmFtaW5pa3VcIDsKK+aEm+Wqm+ecjCA8IGVoaW1la2VuXCA7CivmnKrpnZLlubQgPCBtaXNlaW5lblwgOwor5a6i5bm0IDwga3lha3VuZW5cIDsKK+i2iuWNlyA8IGJldG9uYW11XCA7CivkuKHohIcgPCByeW91d2FraVwgOwor6aKo56qTIDwga2F6YW1hZG9cIDsKK+S6uuS6i+ashCA8IGppbmppcmFuXCA7CivpoqjnqbQgPCBmdXVrZXRzdVwgOwor5LuP5q6/IDwgYnV0c3VkZW5cIDsKK+iDuOWjgSA8IGt5b3VoZWtpXCA7Civplbfpn7PnrKYgPCBjaG91b25wdVwgOwor5a6a5byPIDwgdGVpc2hpa2lcIDsKK+S4jeWdh+aWiSA8IGZ1a2luc2VpXCA7CivkuKHogpggPCByeW91aGlqaVwgOwor5rqW5YKZ6YeRIDwganVuYmlraW5cIDsKK+WroeeUtyA8IGNoYWt1bmFuXCA7CivkubPnmb0gPCBueXV1aGFrdVwgOwor5reL5be05rayIDwgcmlucGFla2lcIDsKK+S6i+WLmemVtyA8IGppbXVjaG91XCA7Civkv67nkIblsYsgPCBzaHV1cml5YVwgOwor5L2O5a+GIDwgdGVpbWl0c3VcIDsKK+S4oeiAsyA8IHJ5b3VtaW1pXCA7Civmh5DnlpHoq5YgPCBrYWlnaXJvblwgOwor5ZaJ6aCt54KOIDwga291dG91ZW5cIDsKK+aatOiZkCA8IGJvdWd5YWt1XCA7CivogpjmjpsgPCBoaWppa2FrZVwgOwor55aO5aSW5oSfIDwgc29nYWlrYW5cIDsKK+S4oee/vCA8IHJ5b3V5b2t1XCA7Civlr4blo7IgPCBtaXRzdWJhaVwgOwor5pyo55+zIDwgYm9rdXNla2lcIDsKK+eOieeglSA8IGd5b2t1c2FpXCA7CivkuIPojYkgPCBuYW5ha3VzYVwgOwor5Yqg6YCf5ZmoIDwga2Fzb2t1a2lcIDsKK+WuruWuiCA8IG1peWFtb3JpXCA7Civnjonnn7MgPCB0YW1haXNoaVwgOwor5bqt5LiL6aeEIDwgbml3YWdldGFcIDsKK+S7suaYpSA8IGNodXVzaHVuXCA7CivmoZHljp8gPCBrdXdhYmFyYVwgOwor6K2Y6Za+IDwgc2hpa2lpa2lcIDsKK+S6uuazoiA8IGhpdG9uYW1pXCA7CivmmKXpm6ggPCBoYXJ1c2FtZVwgOwor57+z55uuIDwga2FzdW1pbWVcIDsKK+eMv+iCoSA8IHNhcnVtYXRhXCA7CivkvJHmiJogPCBreXV1c2VraVwgOwor6Z2e5bi45YukIDwgaGlqb3VraW5cIDsKK+mHjueQg+mDqCA8IHlha3l1dWJ1XCA7CivlrqLlsaQgPCBreWFrdXNvdVwgOwor5YmN6aeG5oimIDwgemVua3VzZW5cIDsKK+aYpemZvSA8IHNodW4nJ3lvdVwgOwor6LKe5reRIDwgdGVpc2h1a3VcIDsKK+WuiOW9uSA8IG1vcml5YWt1XCA7CivkuLvnr4AgPCBzaHVzZXRzdVwgOwor5oyH5bCO6YOoIDwgc2hpZG91YnVcIDsKK+iyoeeUo+WutiA8IHphaXNhbmthXCA7CivkuIDoirEgPCBoaXRvaGFuYVwgOwor6aGU6ImyIDwgZ2Fuc2hva3VcIDsKK+S4ree0sCA8IGNodXVib3NvXCA7CivkuK3ntJogPCBjaHV1a3l1dVwgOwor5bGF5YKs5L+DIDwgaXphaXNva3VcIDsKK+eOh+ebtCA8IHNvdGNob2t1XCA7CivnjKvoiIwgPCBuZWtvaml0YVwgOwor5LiJ6ISaIDwgc2Fua3lha3VcIDsKK+aZuuitmCA8IGNoaXNoaWtpXCA7CivlvZPmrbPppqwgPCB0b3VzYWliYVwgOwor5LiL6IKlIDwgc2hpbW9nb2VcIDsKK+Wun+WusyA8IGppdHN1Z2FpXCA7CivlsI/kuIAgPCBzaG91aWNoaVwgOwor6LKq5qyyIDwgZG9uJyd5b2t1XCA7Civku4HnjovlipsgPCBuaW91cmlraVwgOwor5Lq65qyyIDwgamluJyd5b2t1XCA7CivlpJrogonmnpwgPCB0YW5pa3VrYVwgOwor5pyA55ub5pyfIDwgc2Fpc2Vpa2lcIDsKK+Wun+WtmCA8IGppdHN1em9uXCA7Civlj43mr5TkvosgPCBoYW5waXJlaVwgOwor6aCY6KKWIDwgcnlvdXNodXVcIDsKK+aXsemtgyA8IGthbmJhdHN1XCA7Civnibnpm4YgPCB0b2t1c2h1dVwgOwor5pyr55S3IDwgYmF0c3VuYW5cIDsKK+mfs+izqiA8IG9uc2hpdHN1XCA7Civlr7jlgJ8gPCBzdW5zaGFrdVwgOwor5aWz5a2Q6auYIDwgam9zaGlrb3VcIDsKK+mWi+Wbnui3ryA8IGthaWthaXJvXCA7CivotoXkv5cgPCBjaG91em9rdVwgOwor5puy566hIDwga3lva3VrYW5cIDsKK+Wvqeafu+WToSA8IHNoaW5zYWluXCA7CivohIjli5UgPCBteWFrdWRvdVwgOwor6IKp5bmFIDwga2F0YWhhYmFcIDsKK+S6i+WLmeapn+WZqCA8IGppbXVraWtpXCA7CivmoYjlh7ogPCBhbnNodXRzdVwgOwor6bqd6aaZ5rC0IDwgamFrb3VzdWlcIDsKK+aXpeacrOeKrCA8IG5paG9ua2VuXCA7Civkuovli5nph48gPCBqaW11cnlvdVwgOwor6IKh5byVIDwgbW9tb2hpa2lcIDsKK+S4uOemvyA8IG1hcnVoYWdlXCA7CivlvJXnlKjlj6UgPCBpbicneW91a3VcIDsKK+S+m+S6uiA8IHRvbW9iaXRvXCA7Civnp5HlrabpmaIgPCBrYWdha3VpblwgOwor5Lq65qeYIDwgaGl0b3NhbWFcIDsKK+S5s+eJmyA8IG55dXVneXV1XCA7CivlsILkuIAgPCBzZW4nJ2l0c3VcIDsKK+WJjemgremDqCA8IHplbnRvdWJ1XCA7CivljYHlm5vml6UgPCBqdXV5b2trYVwgOwor5p6V5pyoIDwgbWFrdXJhZ2lcIDsKK+iCoeW6pyA8IG1hdGFndXJhXCA7CivnibnplbcgPCB0b2t1Y2hvdVwgOwor54u46Je7IDwgdGFudWtpbW9cIDsKK+e8tuipsCA8IGthbmR6dW1lXCA7CivkuIDnv7wgPCBpY2hpeW9rdVwgOwor5a6f5aa5IDwgaml0c3VtYWlcIDsKK+S4reepuiA8IG5ha2F6b3JhXCA7Civpo7LmsLQgPCBub21pbWl6dVwgOwor5Lit56iLIDwgbmFrYWhvZG9cIDsKK+S7iuaciCA8IGtvbmdldHN1XCA7CivosrjmnKwgPCBrYXNoaWhvblwgOwor5Lim56uLIDwgaGVpcml0c3VcIDsKK+WuieWuvyA8IHlhc3V5YWRvXCA7Civoh6rlt7HmmpfnpLogPCBqaWtvYW5qaVwgOwor6IO95YqbIDwgbm91cnlva3VcIDsKK+mAo+atjOW4qyA8IHJlbmdhc2hpXCA7CivnianpmbAgPCBtb25va2FnZVwgOwor5a6J5a6JIDwgeWFzdXlhc3VcIDsKK+WtpuW+syA8IGdha3V0b2t1XCA7CivmlK/mj7TogIUgPCBzaGllbnNoYVwgOwor57+S55mWIDwgc2h1dWhla2lcIDsKK+aituacqOW6pyA8IGthamlraXphXCA7CivkuLjnn7MgPCBtYXJ1aXNoaVwgOwor5Zyw5pa55Yy6IDwgY2hpaG91a3VcIDsKK+S4h+e3kSA8IGJhbnJ5b2t1XCA7Civlrr/lkb0gPCBzaHVrdW1laVwgOwor5bGx54Gr5LqLIDwgeWFtYWthamlcIDsKK+aJjeacqua6gCA8IHNhaW1pbWFuXCA7Civku4/mlocgPCBmdXRzdWJ1blwgOwor54mb6Z2pIDwgZ3l1dWthd2FcIDsKK+iBluaXpSA8IHNlaWppdHN1XCA7Civkurrmn4QgPCBoaXRvZ2FyYVwgOwor5Lqr5qW9IDwga3lvdXJha3VcIDsKK+advuafjyA8IHNob3VoYWt1XCA7CivnvqTnq7kgPCBtdXJhdGFrZVwgOwor6K2m6LmVIDwga2VpaGl0c3VcIDsKK+S5s+a/gSA8IG55dXVkYWt1XCA7Civnv6DnjokgPCBzdWlneW9rdVwgOwor5Lq66aGe54y/IDwgamlucnVpZW5cIDsKK+aXpemjnyA8IG5pc3Nob2t1XCA7Civku4fmlbUgPCBreXV1dGVraVwgOwor6Z266Z6oIDwgbWFra2F0c3VcIDsKK+Wnv+imiyA8IHN1Z2F0YW1pXCA7CivorbDlrprmm7ggPCBnaXRlaXNob1wgOwor5a6f5ZyoIDwgaml0c3V6YWlcIDsKK+aciOeVqiA8IHRzdWtpYmFuXCA7CivnkrDkuIMgPCBrYW4nJ25hbmFcIDsKK+iDuOWFiCA8IG11bmFzYWtpXCA7Civog7jlhYMgPCBtdW5hbW90b1wgOwor5LiA57WEIDwgaGl0b2t1bWlcIDsKK+iMtuWdiuS4uyA8IGNoYWJvdXp1XCA7CivnjKvns54gPCBuZWtvYmFiYVwgOwor5Yqg55uf5bqXIDwga2FtZWl0ZW5cIDsKK+mdtOmfsyA8IGt1dHN1b3RvXCA7CivkuZfniakgPCBub3JpbW9ub1wgOwor6aKo54mpIDwgZnV1YnV0c3VcIDsKK+S9nOWKhyA8IHNha3VnZWtpXCA7CivmmpboibIgPCBkYW5zaG9rdVwgOwor5L2V5Y2SIDwgbmFuaXRvem9cIDsKK+e3qeS4i+WJpCA8IGthbmdlemFpXCA7CivnjofnhLYgPCBzb3RzdXplblwgOwor6JCM6buE6ImyIDwgbW9lZ2lpcm9cIDsKK+epuuawl+mKgyA8IGt1dWtpanV1XCA7CivkvJHlraYgPCBreXV1Z2FrdVwgOwor6bm55rC05rmWIDwga2Fuc3Vpa29cIDsKK+S4ieethiA8IHNhbnBpdHN1XCA7CivkvY/lj4sgPCBzdW1pdG9tb1wgOwor5rW36ICB6IWwIDwgZWJpZ29zaGlcIDsKK+advuaYjiA8IHRhaW1hdHN1XCA7Civku67lvbkgPCBrYXJpeWFrdVwgOwor55Sf6KiI6LK7IDwgc2Vpa2VpaGlcIDsKK+S4reeavyA8IGNodXV6YXJhXCA7CivkurrmlbAgPCBoaXRva2F6dVwgOwor5ama57SEIDwga29uJyd5YWt1XCA7CivkuIvnqbQgPCBzaGl0YWFuYVwgOwor5a6/5YWtIDwgeWFkb3Jva3VcIDsKK+WPguWKoOiAhSA8IHNhbmthc2hhXCA7Civml6XmnKzmtbcgPCBuaWhvbmthaVwgOwor6ICz5py2IDwgbWltaXRhYnVcIDsKK+abuOeVmSA8IGtha2l0b21lXCA7CivkuIDnrYsgPCBoaXRvc3VqaVwgOwor5a2m5a+uIDwgZ2FrdXJ5b3VcIDsKK+S4gOethiA8IGhpdG9mdWRlXCA7CivooqvkuZfmlbAgPCBoaWpvdXN1dVwgOwor54mH6ZqFIDwga2F0YXN1bWlcIDsKK+ixgeeEtiA8IGthdHN1emVuXCA7CivmiYvpoqjnkLQgPCB0ZWZ1dWtpblwgOwor54mH6ZmwIDwga2F0YWthZ2VcIDsKK+S6peaciCA8IGdhaWdldHN1XCA7Civms6jmhI/loLEgPCBjaHV1aWhvdVwgOwor6aKo5pmv55S7IDwgZnV1a2VpZ2FcIDsKK+izquWxiyA8IHNoaWNoaXlhXCA7CivnjKrnqoEgPCBjaG90b3RzdVwgOwor5Lqs5pa5IDwga3lvdWdhdGFcIDsKK+mbu+WtkOmfsyA8IGRlbnNoaW9uXCA7CivniZvpjYsgPCBneXV1bmFiZVwgOwor5a6f5ZCNIDwgaml0c3VtZWlcIDsKK+i7ouWMluezliA8IHRlbmthdG91XCA7CivmnaXmnIggPCByYWlnZXRzdVwgOwor6IO45LitIDwga3lvdWNodXVcIDsKK+S4gOeoriA8IGhpdG9rdXNhXCA7CivplonntYzmnJ8gPCBoZWlrZWlraVwgOwor5piO6YGUIDwgbWVpdGF0c3VcIDsKK+Wuv+S+vyA8IHNodWt1YmVuXCA7Civlr4bku6QgPCBtaXRzdXJlaVwgOwor5LiA56eSIDwgaWNoaWJ5b3VcIDsKK+S6kuWKqeeahCA8IGdvam90ZWtpXCA7Civkub7miYDluK8gPCBrYW5qb3RhaVwgOwor5aSn6Z+z5aOwIDwgZGFpb25qb3VcIDsKK+egtOeUo+iAhSA8IGhhc2Fuc2hhXCA7Civplonlm57ot68gPCBoZWlrYWlyb1wgOwor5Li754mpIDwgc2h1YnV0c3VcIDsKK+e+pOeZuiA8IGd1bnBhdHN1XCA7Civmm7LnkIMgPCBreW9ra3l1dVwgOwor5pep6ZCYIDwgaGF5YWdhbmVcIDsKK+iDoem6u+aTgiA8IGdvbWFzdXJpXCA7CivmqZ/pm7fljp8gPCBraXJhaWdlblwgOwor5LqM5qGBIDwgZnV0YWtldGFcIDsKK+adpeaXpSA8IHJhaW5pY2hpXCA7CivniKrpn7MgPCB0c3VtYW90b1wgOwor5pat6auqIDwgZGFucGF0c3VcIDsKK+absueOiSA8IG1hZ2F0YW1hXCA7CivlpJrlrZTmgKcgPCB0YWtvdXNlaVwgOwor5ZCI5oiQ6Z+zIDwgZ291c2Vpb25cIDsKK+egtOmtlOW8kyA8IGhhbWF5dW1pXCA7CivlrqLliIYgPCBreWFrdWJ1blwgOwor5L2V5L2VIDwgbmFuaW5hbmlcIDsKK+mAoOW9seWJpCA8IHpvdWVpemFpXCA7Civog4blipsgPCB0YW5yeW9rdVwgOwor5LqL5p+EIDwga290b2dhcmFcIDsKK+S7ruWuriA8IGthcmltaXlhXCA7Civmm7jniakgPCBzaG9tb3RzdVwgOwor54mb6YWqIDwgZ3l1dXJha3VcIDsKK+WApuaAoOacnyA8IGtlbnRhaWtpXCA7Civni6znv5IgPCBkb2t1c2h1dVwgOwor5Luu5a6FIDwga2FyaXRha3VcIDsKK+WtkOWunSA8IGtvZGFrYXJhXCA7Civpn67okbEgPCBuaXJhbmVnaVwgOwor5pyq57SN6ICFIDwgbWlub3VzaGFcIDsKK+S6jOmHjeaYnyA8IG5panV1c2VpXCA7CivkvZfkurogPCB3YWJpYml0b1wgOwor5LuP5byPIDwgYnVzc2hpa2lcIDsKK+S4ieebtCA8IHNhbmNob2t1XCA7CivkvZXkuosgPCBuYW5pZ290b1wgOwor6IKJ5aSqIDwgbmlrdWJ1dG9cIDsKK+e5geS9k+WtlyA8IGhhbnRhaWppXCA7CivkuInnmb4gPCBzYW5ieWFrdVwgOwor54m56LOeIDwgdG9rdXNob3VcIDsKK+a2iOmfs+WZqCA8IHNob3VvbmtpXCA7CivpoZTnnYAgPCBnYW5jaGFrdVwgOwor5aSa5Lq65pWwIDwgdGFuaW56dXVcIDsKK+i1tOS7u+WcsCA8IGZ1bmluY2hpXCA7Civlj6TnlJ/ku6MgPCBrb3NlaWRhaVwgOwor5Lmz5qWtIDwgbnl1dWd5b3VcIDsKK+aXpemKgCA8IG5pY2hpZ2luXCA7CivmnpXluK0gPCBjaGluc2VraVwgOwor6LOT5a6iIDwgaGlua3lha3VcIDsKK+iKneWxheawlyA8IHNoaWJhaWdlXCA7Civlrp/lg48gPCBqaXRzdXpvdVwgOwor5a6f5YONIDwgaml0c3Vkb3VcIDsKK+aoquW6p+aomSA8IG91emFoeW91XCA7Civoh6rorablm6MgPCBqaWtlaWRhblwgOwor5pqr5a6a5qGIIDwgemFudGVpYW5cIDsKK+mtmuW4guWgtCA8IHVvaWNoaWJhXCA7Civlrq7kurogPCBtaXlhYml0b1wgOwor5pen6YeMIDwgZnVydXNhdG9cIDsKK+S4gOeavyA8IGhpdG9zYXJhXCA7CivkuIDnmq4gPCBoaXRva2F3YVwgOwor5LqM5pa5IDwgZnV0YWthdGFcIDsKK+mnhemmrOi7iiA8IGVraWJhc2hhXCA7CivkuIrnlaUgPCBqb3VyeWFrdVwgOwor6LKr5b65IDwga2FudGV0c3VcIDsKK+WvvuipseS9kyA8IHRhaXdhdGFpXCA7CivmnqLlr4YgPCBzdXVtaXRzdVwgOwor5LiA55mWIDwgaGl0b2t1c2VcIDsKK+WuruS4rSA8IGt5dXVjaHV1XCA7CivosYbmrrsgPCBtYW1lZ2FyYVwgOwor54++5bC6IDwgZ2Vuc2hha3VcIDsKK+S6uuW9sSA8IGhpdG9rYWdlXCA7CivlrqLkvZMgPCBreWFrdXRhaVwgOwor5riF5o6D5aSrIDwgc2Vpc291ZnVcIDsKK+Wun+S+iyA8IGppdHN1cmVpXCA7Civpq5jmhJ/luqYgPCBrb3VrYW5kb1wgOwor5pyo5qeMIDwga2lkenVjaGlcIDsKK+e0gOWFg+WJjSA8IGtpZ2VuemVuXCA7Civno6jnoJTntJkgPCBtYWtlbnNoaVwgOwor54++5a6fIDwgZ2Vuaml0c3VcIDsKK+WuouS6uiA8IGt5YWt1amluXCA7Civml6LlqZrogIUgPCBraWtvbnNoYVwgOwor6Zy56Z2CIDwgaGVraXJla2lcIDsKK+aQrOmAgeazoiA8IGhhbnNvdWhhXCA7CivorbLokYkgPCB5dXp1cmloYVwgOwor55aO6ZaL6ICFIDwgc29rYWlzaGFcIDsKK+aAneaDs+WutiA8IHNoaXNvdWthXCA7CivosLfmsLQgPCB0YW5pbWl6dVwgOwor6LGq5pelIDwgZ291bmljaGlcIDsKK+acjeavkiA8IGZ1a3Vkb2t1XCA7CivlsqnnlLDluK8gPCBpd2F0YW9iaVwgOwor6IG35Z+fIDwgc2hva3Vpa2lcIDsKK+aatOeZuiA8IGJvdWhhdHN1XCA7CivplovplonmqZ8gPCBrYWloZWlraVwgOwor5bqP56C05oClIDwgam9oYWt5dXVcIDsKK+i2s+W/oOWunyA8IGFzaGltYW1lXCA7Civpo5/mjIcgPCBzaG9rdXNoaVwgOwor5Y2K5rib5pyfIDwgaGFuZ2Vua2lcIDsKK+aXpei8qiA8IG5pY2hpcmluXCA7Civoh6rnhLbnvo4gPCBzaGl6ZW5iaVwgOwor6IKp5YWIIDwga2F0YXNha2lcIDsKK+WklumwkCA8IHNvdG93YW5pXCA7CivpoLvnmbogPCBoaW5wYXRzdVwgOwor5YmN5LiW57SAIDwgemVuc2Vpa2lcIDsKK+acrOacqyA8IGhvbm1hdHN1XCA7CivnoJTno6jntJkgPCBrZW5tYXNoaVwgOwor5LiH54mpIDwgYmFubW90c3VcIDsKK+eOieadryA8IGd5b2t1aGFpXCA7CivnjK7niakgPCBrZW5tb3RzdVwgOwor5Lq65bGxIDwgaGl0b3lhbWFcIDsKK+mdkuWGmeecnyA8IGFvamFzaGluXCA7Civml6notrMgPCBoYXlhYXNoaVwgOwor56WI56W35pu4IDwga2l0b3VzaG9cIDsKK+mcp+mbqCA8IGtpcmlzYW1lXCA7CivluLDpgoTlhbUgPCBraWthbmhlaVwgOwor6ZaJ57WM5b6MIDwgaGVpa2VpZ29cIDsKK+izouWTsiA8IGtlbnRldHN1XCA7CivniYfotrMgPCBrYXRhYXNoaVwgOwor5LiA54mHIDwgaGl0b2hpcmFcIDsKK+WkmuaWuemdoiA8IHRhaG91bWVuXCA7Civnh5XlsL7mnI0gPCBlbmJpZnVrdVwgOwor56aA6K2w5pu4IDwgcmluZ2lzaG9cIDsKK+acrOaXpSA8IGhvbmppdHN1XCA7Civkub7mi60gPCBrYXJhYnVraVwgOwor54i25YWE5LyaIDwgZnVrZWlrYWlcIDsKK+mrmOm6l+alvSA8IGtvbWFnYWt1XCA7Civpo5/mhJ8gPCBzaG9rdWthblwgOwor5pW06auqIDwgc2VpaGF0c3VcIDsKK+S7j+WjhyA8IGJ1dHN1ZGFuXCA7Civkuojmg7PlpJYgPCB5b3NvdWdhaVwgOwor5omB5qGD5rK5IDwgaGVudG91eXVcIDsKK+WtpuWJsiA8IGdha3V3YXJpXCA7CivmlbTpqqggPCBzZWlrb3RzdVwgOwor6LSL5L2cIDwgbmlzZXNha3VcIDsKK+WtpuWJhyA8IGdha3Vzb2t1XCA7Civmm7LmsLQgPCBreW9rdXN1aVwgOwor6Z2S5bm05pyfIDwgc2VpbmVua2lcIDsKK+miqOaciCA8IGZ1dWdldHN1XCA7CivpnJzpm6ogPCBzb3VzZXRzdVwgOwor5Z2H562J5YyWIDwga2ludG91a2FcIDsKK+S5seaOmCA8IHJhbmt1dHN1XCA7Civlj5fpqJPogIUgPCBqdWtlbnNoYVwgOwor5pmC5Luj55u4IDwgamlkYWlzb3VcIDsKK+S5neaXpSA8IGtva29ub2thXCA7Civml6XosaogPCBuaWNoaWdvdVwgOwor5aKX5Yqg5YiGIDwgem91a2FidW5cIDsKK+S6jOmAo+mKgyA8IG5pcmVuanV1XCA7CivkuZ3ml48gPCBreXV1em9rdVwgOwor6Kqt6Z+/IDwgeW9taWt5b3VcIDsKK+eJm+inkiA8IGd5dXVrYWt1XCA7CivlpKfpm6ogPCB0YWlzZXRzdVwgOwor5aSW6aOfIDwgZ2Fpc2hva3VcIDsKK+S4gOWbnui7oiA8IGlra2FpdGVuXCA7CivlpJXpo68gPCB5dXVtZXNoaVwgOwor6IG35ZCNIDwgc2hva3VtZWlcIDsKK+aZqeevgCA8IGJhbnNldHN1XCA7CivkuozlvbkgPCBmdXRheWFrdVwgOwor5Li76ISz6YOoIDwgc2h1bm91YnVcIDsKK+S6jOW9oiA8IGZ1dGFuYXJpXCA7CivmmKXoj4ogPCBzaHVuZ2lrdVwgOwor5a2m5YOVIDwgZ2FrdWJva3VcIDsKK+e0jeS7mOabuCA8IG5vdWZ1c2hvXCA7CivosYbmlpkgPCBtYW1lcnlvdVwgOwor5pyd5pW1IDwgY2hvdXRla2lcIDsKK+WNmOW8geiKsSA8IHRhbmJlbmthXCA7CivmtYHmtarogIUgPCBydXJvdXNoYVwgOwor5pWj6auqIDwgc2FucGF0c3VcIDsKK+iPk+WtkOebhiA8IGthc2hpYm9uXCA7CivorI7orI4gPCBuYXpvbmF6b1wgOwor5YWs55So6KqeIDwga291eW91Z29cIDsKK+WmhOiqrCA8IG1vdXNldHN1XCA7CivpoJPnnYAgPCB0b25jaGFrdVwgOwor5LuP5Zm4IDwgZnV0c3V0b25cIDsKK+WmluihkyA8IHlvdWp1dHN1XCA7Civpm5vps6UgPCBoaW5hZG9yaVwgOwor6Zu76aO+IDwgZGVuc2hva3VcIDsKK+WkqumZveeCiSA8IHRhaXlvdXJvXCA7Civml6foqLMgPCBreXV1eWFrdVwgOwor5pyI5pyrIDwgdHN1a2l6dWVcIDsKK+eLrOeZvSA8IGRva3VoYWt1XCA7CivnjJvng4ggPCBtb3VyZXRzdVwgOwor5Y+X6Lqr5b2iIDwgdWtlbWlrZWlcIDsKK+awkeWWtuWMliA8IG1pbicnZWlrYVwgOwor5Lq65pyb5a62IDwgamluYm91a2FcIDsKK+eIqui3oSA8IHRzdW1lYXRvXCA7Civku67liJ0gPCBrYXJpc29tZVwgOwor5p2l5a6iIDwgcmFpa3lha3VcIDsKK+aciOabnCA8IGdldHN1eW91XCA7Civnv4zmnJ0gPCB5b2t1Y2hvdVwgOwor57eP5LqM6ZqOIDwgc291bmlrYWlcIDsKK+e5gembkSA8IGhhbnphdHN1XCA7Civop6Ppm4fogIUgPCBrYWlrb3NoYVwgOwor5ryi5pmC5LujIDwga2FuamlkYWlcIDsKK+WGheWklumHjiA8IG5haWdhaXlhXCA7CivniYfku67lkI0gPCBrYXRha2FuYVwgOwor6ISx6KGj5omAIDwgZGF0c3Vpam9cIDsKK+iBt+WIhiA8IHNob2t1YnVuXCA7Civkub7lvI8gPCBrYW5zaGlraVwgOwor6Z2i6K2YIDwgbWVuc2hpa2lcIDsKK+S6uuWeoyA8IGhpdG9nYWtpXCA7CivotIjkuI7ogIUgPCB6b3V5b3NoYVwgOwor5aSx6YyvIDwgc2hpc3Nha3VcIDsKK+S5heaWuSA8IGhpc2FrYXRhXCA7CivmnIjmmI4gPCBnZXRzdW1laVwgOwor5aOw6auYIDwga293YWRha2FcIDsKK+irlui/sCA8IHJvbmp1dHN1XCA7Civnv4zmmKUgPCB5b2t1c2h1blwgOwor5L+d5a6I57O7IDwgaG9zaHVrZWlcIDsKK+irvuirviA8IGRha3VkYWt1XCA7CivorZjogIUgPCBzaGlraXNoYVwgOwor5LuV5Y+jIDwgc2hpa3VjaGlcIDsKK+a1t+mmrOWbniA8IGthaWJha2FpXCA7Civoh6rloJXokL0gPCBqaWRhcmFrdVwgOwor54+N5aaZIDwgY2hpbm15b3VcIDsKK+iyneWhmiA8IGthaWR6dWthXCA7CivmnKzloYHmiZMgPCBob25ydWlkYVwgOwor6IGW5ZOyIDwgc2VpdGV0c3VcIDsKK+aEm+mkkOS8miA8IGFpc2Fua2FpXCA7Civlr77mipfppqwgPCB0YWlrb3ViYVwgOwor6Z2i6KmwIDwgbWVua2l0c3VcIDsKK+e4nummrCA8IHNoaW1hdW1hXCA7Civku67lkI3mlocgPCBrYW5hYnVtaVwgOwor6aOf5bC9IDwgc2hva3VqaW5cIDsKK+izreS6iyA8IGtha2Vnb3RvXCA7CivkuIDmtYEgPCBpY2hpcnl1dVwgOwor5Lit5p+EIDwgY2h1dWdhcmFcIDsKK+abuOacrSA8IHNob3NhdHN1XCA7CivlppnolqwgPCBteW91eWFrdVwgOwor5Li75pelIDwgc2h1aml0c3VcIDsKK+iruOiruCA8IG1vcm9tb3JvXCA7Civog6HpurvloakgPCBnb21hc2hpb1wgOwor5Yqg5bel5ZOBIDwga2Frb3VoaW5cIDsKK+aoqeWIqeabuCA8IGtlbnJpc2hvXCA7Civoq7joqqwgPCBzaG9zZXRzdVwgOwor5buD6KaB57SgIDwgaGFpeW91c29cIDsKK+Wls+imqiA8IG9uJyduYW95YVwgOwor5pu05pu0IDwgc2FyYXNhcmFcIDsKK+adk+WtkCA8IHNoYWt1c2hpXCA7Civnqbrmg7PlrrYgPCBrdXVzb3VrYVwgOwor5puy5puyIDwga3VtYWd1bWFcIDsKK+aYjuiJsiA8IG1laXNob2t1XCA7Civosqnlo7Lpg6ggPCBoYW5iYWlidVwgOwor55y86Y+h5bGLIDwgbWVnYW5leWFcIDsKK+S7luWHuiA8IHRhc2h1dHN1XCA7CivliY3kuJbnlYwgPCB6ZW5zZWthaVwgOwor5pys5aC05omAIDwgaG9uYmFzaG9cIDsKK+mbqOmdtCA8IGFtYWd1dHN1XCA7CivomZrnhKHlhZogPCBreW9tdXRvdVwgOwor5Lq66aGe5oSbIDwgamlucnVpYWlcIDsKK+S6jOmHjeWljyA8IG5panV1c291XCA7CivmhJvlpb3ogIUgPCBhaWtvdXNoYVwgOwor5ZCI5oiQ6KqeIDwgZ291c2VpZ29cIDsKK+acrOW8jyA8IGhvbnNoaWtpXCA7Civku4/liY0gPCBidXRzdXplblwgOwor6Zuq6ZuyIDwgeXVraWd1bW9cIDsKK+mbqOmcsCA8IGFtZWFyYXJlXCA7CivmnKjlvasgPCBtb2t1Y2hvdVwgOwor5pqR54axIDwgc2hvbmV0c3VcIDsKK+efs+eBq+efoiA8IGlzaGliaXlhXCA7CivnianoibIgPCBidXNzaG9rdVwgOwor6IG35Lq6IDwgc2hva3VuaW5cIDsKK+WHuue0jeewvyA8IHN1aXRvdWJvXCA7Civoq6forJQgPCBrYWlneWFrdVwgOwor54us54m5IDwgZG9rdXRva3VcIDsKK+WksemAnyA8IHNoaXNzb2t1XCA7CivmmKXnua0gPCBoYXJ1bWF5dVwgOwor54ax6aGYIDwgbmV0c3VnYW5cIDsKK+i7jeeuoeWMuiA8IGd1bmthbmt1XCA7CivmnKvlubQgPCBtYXRzdW5lblwgOwor5auh5a2rIDwgY2hha3Vzb25cIDsKK+eJqeiHrSA8IG1vbm9ndXNhXCA7Civlq6HlrZAgPCBjaGFrdXNoaVwgOwor6Kuk6KukIDwgZ2FrdWdha3VcIDsKK+eLoeeMviA8IGtvdWthdHN1XCA7Civpm5Hpo58gPCB6YXNzaG9rdVwgOwor5Li75oyBIDwgc2h1bW9jaGlcIDsKK+WssOWFkCA8IG1pZG9yaWdvXCA7Civnp4vnlLDnnIwgPCBha2l0YWtlblwgOwor57im6ZW3IDwgdGF0ZW5hZ2FcIDsKK+WEkuWtpueVjCA8IGp1Z2Fra2FpXCA7CivkuIvmiYvns54gPCBoZXRha3Vzb1wgOwor5LqJ5aWqIDwgc291ZGF0c3VcIDsKK+S7j+WDjyA8IGJ1dHN1em91XCA7CivmnKrlor7lnLAgPCBtaWtvbmNoaVwgOwor5aSn5aSa5pWwIDwgZGFpdGFzdXVcIDsKK+WtkOWNiOe3miA8IHNoaWdvc2VuXCA7CivogIHlrp8gPCByb3VqaXRzdVwgOwor5aSn6YCGIDwgZGFpZ3lha3VcIDsKK+aXpeiTriA8IG5pY2hpcmVuXCA7CivmraPluLjljJYgPCBzZWlqb3VrYVwgOwor55m66YW157SgIDwgaGFra291c29cIDsKK+i3nembouioiCA8IGt5b3Jpa2VpXCA7CivnhrHpm7cgPCBuZXRzdXJhaVwgOwor6Ii55bCP5bGLIDwgZnVuYWdveWFcIDsKK+mGuOmAoOaJgCA8IGpvdXpvdWpvXCA7Civoqabpo58gPCBzaGlzaG9rdVwgOwor5pW36YeRIDwgc2hpa2lraW5cIDsKK+WroeWmuyA8IGNoYWt1c2FpXCA7CivkuIDmo58gPCBoaXRvbXVuZVwgOwor5aSn57SN6KiAIDwgZGFpbmFnb25cIDsKK+WkqeaWh+WutiA8IHRlbm1vbmthXCA7CivmqKHpgKDogIUgPCBtb3pvdXNoYVwgOwor5aSx6LehIDwgc2hpc3Nla2lcIDsKK+WvneS4jei2syA8IG5lYnVzb2t1XCA7CivkurrliLogPCBqaW5zYXNoaVwgOwor6Zu76YmEIDwgZGVudGV0c3VcIDsKK+S6uuWIpSA8IG5pbmJldHN1XCA7CivlsILploDlrrYgPCBzZW5tb25rYVwgOwor6KuW6KqsIDwgcm9uc2V0c3VcIDsKK+acqueEtuW9oiA8IG1pemVua2VpXCA7CivmnKzlsYAgPCBob25reW9rdVwgOwor5Ymq6KOB5qmfIDwgc2Vuc2Fpa2lcIDsKK+S4reaMhyA8IG5ha2F5dWJpXCA7Civos7zosrfpg6ggPCBrb3ViYWlidVwgOwor6LK45YCfIDwgdGFpc2hha3VcIDsKK+eNsuW+lyA8IGtha3V0b2t1XCA7Civoq5boqbAgPCByb25raXRzdVwgOwor5oWI5ZaE5LyaIDwgaml6ZW5rYWlcIDsKK+aCqui2o+WRsyA8IGFrdXNodW1pXCA7CivkuIDmoYEgPCBoaXRva2V0YVwgOwor5pa96KGTIDwgc2hpanV0c3VcIDsKK+mhm+acqyA8IHRlbm1hdHN1XCA7CivotIjkuI7nqI4gPCB6b3V5b3plaVwgOwor6LKh5YqbIDwgemFpcnlva3VcIDsKK+iqnumDqCA8IGthdGFyaWJlXCA7Civkv53lrZjns7sgPCBob3pvbmtlaVwgOwor5LiJ5puyIDwgc2Fua3lva3VcIDsKK+awl+WLlei7iiA8IGtpZG91c2hhXCA7CivmsLjkvY/ogIUgPCBlaWp1dXNoYVwgOwor5pmv54mpIDwga2VpYnV0c3VcIDsKK+aWueihkyA8IGhvdWp1dHN1XCA7CivnibnntIQgPCB0b2t1eWFrdVwgOwor57mw6KiAIDwga3VyaWdvdG9cIDsKK+eJm+iCiSA8IGd5dXVuaWt1XCA7CivmnYnlnqMgPCBzdWdpZ2FraVwgOwor546L5a6kIDwgb3VzaGl0c3VcIDsKK+S4gOadnyA8IGhpdG90YWJhXCA7CivniaHnvoogPCBvaGl0c3VqaVwgOwor6LC35bqVIDwgdGFuaXpva29cIDsKK+acqueGn+WFkCA8IG1panVrdWppXCA7CivkuIDmnKggPCBpY2hpYm9rdVwgOwor5Lq65YKRIDwgamlua2V0c3VcIDsKK+iomOW/teWTgSA8IGtpbmVuaGluXCA7CivnoLTnk5znl4UgPCBoYWthYnlvdVwgOwor5pio56eLIDwgc2FrdXNodXVcIDsKK+iwt+W3nSA8IHRhbmlnYXdhXCA7Civku4Tku4QgPCBob25vYm9ub1wgOwor56C055Sj5rOVIDwgaGFzYW5ob3VcIDsKK+WBnOmbu+aXpSA8IHRlaWRlbmJpXCA7CivosrfkuLsgPCBrYWludXNoaVwgOwor5Y+X6aiT55SfIDwganVrZW5zZWlcIDsKK+mZuOiSuOawlyA8IG9rYWpvdWtpXCA7CivkuIDmmYIgPCBoaXRvdG9raVwgOwor5piH57WmIDwgc2hvdWt5dXVcIDsKK+Wun+ihjOaZgiA8IGppa2tvdWppXCA7CivniYfohp0gPCBrYXRhaGl6YVwgOwor6aOy5YqpIDwgbm9taXN1a2VcIDsKK+absuaCqiA8IGt5b2t1YWt1XCA7CivmqKHpgKDntJkgPCBtb3pvdXNoaVwgOwor5LqM5Y6f5a2QIDwgbmlnZW5zaGlcIDsKK+S4gOaXlyA8IGhpdG9oYXRhXCA7CivkuIDml48gPCBpY2hpem9rdVwgOwor6aOf5ZOBIDwgc2hva3VoaW5cIDsKK+eJqee0jSA8IGJ1dHN1bm91XCA7CivlpLHoqr8gPCBzaGl0Y2hvdVwgOwor54Wu6a2aIDwgbml6YWthbmFcIDsKK+WkseiqniA8IHNoaXRzdWdvXCA7CivkuIflm73ml5cgPCBiYW5rb2traVwgOwor5pep6ICzIDwgaGF5YW1pbWlcIDsKK+S4uOW6lSA8IG1hcnV6b2tvXCA7Civkuovli5nnmoQgPCBqaW11dGVraVwgOwor5Lq65Lq6IDwgaGl0b2JpdG9cIDsKK+aVo+mAuCA8IHNhbicnaXRzdVwgOwor54mH6IKMIDwga2F0YWhhZGFcIDsKK+abuOW8jyA8IHNob3NoaWtpXCA7CivkurrkuosgPCBoaXRvZ290b1wgOwor57eP6auqIDwgc291aGF0c3VcIDsKK+acjeWxniA8IGZ1a3V6b2t1XCA7CivnibnnqK4gPCB0b2t1ZGFuZVwgOwor5Lit5b2iIDwgY2h1dWdhdGFcIDsKK+S6uuS4rSA8IGhpdG9uYWthXCA7Civmjqjnp7vnmoQgPCBzdWlpdGVraVwgOwor5LiA5pKDIDwgaWNoaWdla2lcIDsKK+epuuawl+eptCA8IGt1dWtpYW5hXCA7Civlj5flrrnogIUgPCBqdXlvdXNoYVwgOwor57Og5ZGz5ZmMIDwgbnVrYW1pc29cIDsKK+aWueW9ouazoiA8IGhvdWtlaWhhXCA7CivmiKbliY3mtL4gPCBzZW56ZW5oYVwgOwor5Yem55CG5aC0IDwgc2hvcmlqb3VcIDsKK+S6jOW8pueQtCA8IG5pZ2Vua2luXCA7CivkuK3luq0gPCBuYWthbml3YVwgOwor5aeL55m6IDwgc2hpaGF0c3VcIDsKK+isnee1tiA8IHNoYXpldHN1XCA7Civkub7lkrMgPCBrYXJhemVraVwgOwor6YWS6YCg5a62IDwgc2h1em91a2FcIDsKK+S4reW5lSA8IG5ha2FtYWt1XCA7CivkuK3luYUgPCBjaHV1aGFiYVwgOwor5o6y56S65p2/IDwga2VpamliYW5cIDsKK+WGhemiqOWRgiA8IHVjaGlidXJvXCA7Civoq7johp0gPCBtb3JvaGl6YVwgOwor6Ku46IaaIDwgbW9yb2hhZGFcIDsKK+S4reW4rSA8IG5ha2FzZWtpXCA7CivmnJ3lpJUgPCBjaG91c2VraVwgOwor54mn56ybIDwgYm9rdXRla2lcIDsKK+S4oeW+lyA8IHJ5b3V0b2t1XCA7CivnuKbou7ggPCB0YXRlamlrdVwgOwor5Lit5Yq05aeUIDwgY2h1dXJvdWlcIDsKK+WnpueJqSA8IGthbmJ1dHN1XCA7Civpo5/liLsgPCBzaG9ra29rdVwgOwor546J5Z6jIDwgdGFtYWdha2lcIDsKK+aEm+eMq+WutiA8IGFpYnlvdWthXCA7CivkuInlm57lv4wgPCBzYW5rYWlraVwgOwor57eP5LuV6IieIDwgc291amltYWlcIDsKK+mbsui2syA8IGt1bW9hc2hpXCA7Civnt5HpoqggPCByeW9rdWZ1dVwgOwor54mp56iuIDwgbW9ub2RhbmVcIDsKK+S4puW5hSA8IG5hbWloYWJhXCA7CivlppnnrZYgPCBteW91c2FrdVwgOwor6Z2Z6ISIIDwgam91bXlha3VcIDsKK+eJqeeojiA8IGJ1dHN1emVpXCA7CivkuLvlrqIgPCBzaHVreWFrdVwgOwor6Ya46YCg5a62IDwgam91em91a2FcIDsKK+S6pOS6pCA8IGtvbW9nb21vXCA7CivniIbolqwgPCBiYWt1eWFrdVwgOwor5Lit5bO2IDwgbmFrYWppbWFcIDsKK+S6pOS7mOmHkSA8IGtvdWZ1a2luXCA7CivkuovlhbEgPCBrb3RvZG9tb1wgOwor5omH6aKo5qmfIDwgc2VucHV1a2lcIDsKK+S4jeaCiSA8IGZ1c2hpdHN1XCA7CivlhajlgJnoo5wgPCB6ZW5rb3Vob1wgOwor55CG5oOz6KuWIDwgcmlzb3Vyb25cIDsKK+eJp+elniA8IGJva3VzaGluXCA7Civnt5HpnZIgPCByb2t1c2hvdVwgOwor5ryi5pWw5a2XIDwga2Fuc3V1amlcIDsKK+i8neeFjOW4nSA8IGtpa291dGVpXCA7CivmlK/mjIHogIUgPCBzaGlqaXNoYVwgOwor5pa56IifIDwgaGFrb2J1bmVcIDsKK+mjr+S6iyA8IG1hbWFnb3RvXCA7CivkuK3lsI8gPCBjaHV1c2hvdVwgOwor5pel57GzIDwgbmljaGliZWlcIDsKK+eEvOmzpSA8IHlha2l0b3JpXCA7CivlpKfmloflrZcgPCBkYWltb25qaVwgOwor6Ky555u0IDwga2luY2hva3VcIDsKK+S4reWtpiA8IGNodXVnYWt1XCA7Civnt7TpiYQgPCByZW50ZXRzdVwgOwor5aSJ6KqsIDwgaGVuc2V0c3VcIDsKK+aVteilsiA8IHRla2lzaHV1XCA7CivlrZDljYjnkrAgPCBzaGlnb2thblwgOwor5pS+6YCQIDwgaG91Y2hpa3VcIDsKK+S4ieW9uSA8IHNhbicneWFrdVwgOwor6KqN6K2YIDwgbmluc2hpa2lcIDsKK+iJtuemj+WutiA8IGVucHVrdWthXCA7CivlsILploDljLsgPCBzZW5tb24nJ2lcIDsKK+abtOW5tOacnyA8IGtvdW5lbmtpXCA7Civml6XmnKzliIAgPCBuaWhvbnRvdVwgOwor57eR6ZaAIDwgcnlva3Vtb25cIDsKK+S4jeihjOWEgCA8IGZ1Z3lvdWdpXCA7CivluLDlt6PmgKcgPCBraXNvdXNlaVwgOwor5LiL5omL54mpIDwgZ2V0ZW1vbm9cIDsKK+adkeS6uiA8IG11cmFiaXRvXCA7Civmj5DmoYjogIUgPCB0ZWlhbnNoYVwgOwor5Y+X5L+h5qmfIDwganVzaGlua2lcIDsKK+S4i+W4ryA8IHNoaXRhb2JpXCA7CivkuIDlvbkgPCBoaXRveWFrdVwgOwor6LGq5YKRIDwgZ291a2V0c3VcIDsKK+aPmuWtkOaxnyA8IHlvdXN1a291XCA7CivkuovkuosgPCBrb3RvZ290b1wgOwor57a/6ZuyIDwgd2F0YWd1bW9cIDsKK+S5seWFpSA8IHJhbicnbnl1dVwgOwor57a/6ZuqIDwgd2F0YXl1a2lcIDsKK+e1jOW4uOiyuyA8IGtlaWpvdWhpXCA7CivkuojkuoggPCBrYW5lZ2FuZVwgOwor5LiW5bGAIDwgc2Vpa3lva3VcIDsKK+e3tOmBlCA8IHJlbnRhdHN1XCA7CivmmofmmocgPCBoaW1haGltYVwgOwor6ZqG6ZqGIDwgcnl1dXJ5dXVcIDsKK+a1t+eOi+aYnyA8IGthaW91c2VpXCA7CivkuIDluqYgPCBoaXRvdGFiaVwgOwor6ZqF6ZqFIDwgc3VtaXp1bWlcIDsKK+W5vOeomuWckiA8IHlvdWNoaWVuXCA7CivkuIDlubQgPCBoaXRvdG9zZVwgOwor6Z2Z57KbIDwgc2Vpc2h1a3VcIDsKK+WhqemurSA8IHNoaW96YWtlXCA7Civml4/nsY0gPCB6b2t1c2VraVwgOwor5aSn6JKcIDwgbmluJyduaWt1XCA7CivkuIDluZUgPCBoaXRvbWFrdVwgOwor5pyI5qGC5qi5IDwgZ2Vra2VpanVcIDsKK+acquiomOWFpSA8IG1pa2lueXV1XCA7CivkuIDlt7sgPCBoaXRvbWFraVwgOwor6Zuj6KmwIDwgbmFua2l0c3VcIDsKK+mbgOi6jSA8IGpha3V5YWt1XCA7CivkuK3loZcgPCBuYWthbnVyaVwgOwor6Zmq6aOfIDwgYmFpc2hva3VcIDsKK+eglOejqOadkCA8IGtlbm1hemFpXCA7CivkuozlubTojYkgPCBuaW5lbnNvdVwgOwor6aCM5pilIDwgc2hvdXNodW5cIDsKK+e+qeWLh+i7jSA8IGdpeXV1Z3VuXCA7Civmlofoqp7mlocgPCBidW5nb2J1blwgOwor6KqV55Sf5pelIDwgdGFuam91YmlcIDsKK+S8r+WJjOilv+eIviA8IGJ1cmFqaXJ1XCA7CivkuIflsYsgPCB5b3JvenV5YVwgOwor5Lit5Z6jIDwgbmFrYWdha2lcIDsKK+mHkeaZguioiCA8IGtpbmRva2VpXCA7CivpoqjlipsgPCBmdXVyeW9rdVwgOwor56m65rSe5YyWIDwga3V1ZG91a2FcIDsKK+eznuWRs+WZjCA8IGt1c29taXNvXCA7CivkubHkvJAgPCByYW5iYXRzdVwgOwor5pel5pys5Lq6IDwgbmlob25qaW5cIDsKK+eMq+WxniA8IG5la296b2t1XCA7CivmgKfpgYrmiK8gPCBzZWl5dXVnaVwgOwor5Lit5Zu9IDwgY2h1dWdva3VcIDsKK+asoeeCueiAhSA8IGppdGVuc2hhXCA7CivpoIPml6UgPCBrZWlqaXRzdVwgOwor6Ziy6IWQ5YmkIDwgYm91ZnV6YWlcIDsKK+ips+iouyA8IHNob3VjaHV1XCA7Civml6XmnKzkuK0gPCBuaWhvbmp1dVwgOwor6ZuR6KuHIDwgemF0c3VkYW5cIDsKK+iFleebuOaSsiA8IHVkZXp1bW91XCA7CivlnLDln5/lt64gPCBjaGlpa2lzYVwgOwor5L+d6K236bOlIDwgaG9nb2Nob3VcIDsKK+aXpeebtCA8IG5pdGNob2t1XCA7Civnt5HphZIgPCByeW9rdXNodVwgOwor5LiA5a6kIDwgaXNzaGl0c3VcIDsKK+WkquiFvyA8IGZ1dG9tb21vXCA7CivlsI/miYvlhYggPCBrb3Rlc2FraVwgOwor54Sh6ZmN5rC0IDwgbXVrb3VzdWlcIDsKK+aWree1tiA8IGRhbnpldHN1XCA7CivkuIDlrZAgPCBoaXRvcmlnb1wgOwor5aer5qeYIDwgaGltZXNhbWFcIDsKK+m8u+WRvOWQuCA8IGJpa29reXV1XCA7Civpm7vok4QgPCBkZW5jaGlrdVwgOwor6YeN6aiO5YW1IDwganV1a2loZWlcIDsKK+WPpOS7o+WPsiA8IGtvZGFpc2hpXCA7CivmnKvku6MgPCBtYXRzdWRhaVwgOwor6KiA6ZyKIDwga290b2RhbWFcIDsKK+S4oeWbvSA8IHJ5b3Vnb2t1XCA7CivkuLvlj5YgPCBzaHV1ZG9yaVwgOwor6Zuo6JuZIDwgYW1hZ2FlcnVcIDsKK+eGn+iqrSA8IGp1a3Vkb2t1XCA7CivnjonkvZMgPCBneW9rdXRhaVwgOwor54mn54mbIDwgYm9rdWd5dXVcIDsKK+WhvumVtyA8IGp1a3VjaG91XCA7CivnhrHooYAgPCBuZWtrZXRzdVwgOwor6IO96Iie5Y+wIDwgbm91YnV0YWlcIDsKK+eOieS7oyA8IGd5b2t1ZGFpXCA7Civpm4boqLsgPCBzaHV1Y2h1dVwgOwor56u26aas6aasIDwga2VpYmF1bWFcIDsKK+malOmAsSA8IGtha3VzaHV1XCA7CivlhY3np5/lnLAgPCBtZW5zb2NoaVwgOwor5pel55SoIDwgbmljaGl5b3VcIDsKK+abuOWPliA8IGtha2l0b3JpXCA7CivkuozmrKHnmoQgPCBuaWppdGVraVwgOwor5ryU5aWP6ICFIDwgZW5zb3VzaGFcIDsKK+S4u+WKmyA8IHNodXJ5b2t1XCA7CivlhbfkvZPmgKcgPCBndXRhaXNlaVwgOwor5pyI5YaFIDwgZ2V0c3VuYWlcIDsKK+S5nuS4kCA8IGtvdHN1Z2FpXCA7CivkuIPlpJUgPCB0YW5hYmF0YVwgOwor6Kyh54mpIDwgdXRhaW1vbm9cIDsKK+mgu+WwvyA8IGhpbicnbnlvdVwgOwor5aSp572wIDwgdGVuYmF0c3VcIDsKK+S4gOetiei7iiA8IGl0dG91c2hhXCA7CivpnaLnmb0gPCBvbW9zaGlyb1wgOwor5puy5ZCNIDwga3lva3VtZWlcIDsKK+e3j+i9hCA8IHNvdWthdHN1XCA7CivkuK3lj6QgPCBjaHV1YnVydVwgOwor5LiN5ZOB6KGMIDwgZnVoaW5rb3VcIDsKK+eLvOW6pyA8IG9va2FtaXphXCA7CivoqLzot6EgPCBzaG91c2VraVwgOwor54m556eR5YW1IDwgdG9ra2FoZWlcIDsKK+iEguiCquayuSA8IHNoaWJvdXl1XCA7Civlt6blpKfoh6MgPCBzYWRhaWppblwgOwor6YeR5a2X5aGUIDwga2luaml0b3VcIDsKK+WlrueZuiA8IGZ1bnBhdHN1XCA7Civpq5jph47lsbEgPCBrb3V5YXNhblwgOwor5aSn54aK5bqnIDwgb29ndW1hemFcIDsKK+aYjua7hSA8IG1laW1ldHN1XCA7Civpmbjph6MgPCBva2FkenVyaVwgOwor6KyA55WlIDwgYm91cnlha3VcIDsKK+S4gOWhqSA8IGhpdG9zaGlvXCA7CivpoqjkuIogPCBrYXpha2FtaVwgOwor5YaS6Zm65a62IDwgYm91a2Vua2FcIDsKK+WkluiCoSA8IHNvdG9tYXRhXCA7Civloanmv4PluqYgPCBlbicnbm91ZG9cIDsKK+e1tumjnyA8IHplc3Nob2t1XCA7Civmm7jliJ0gPCBrYWtpem9tZVwgOwor5pel5LmD5Li4IDwgaGlub21hcnVcIDsKK+iqpue/kiA8IHNob3VzaHV1XCA7CivniIbnrJEgPCBiYWt1c2hvdVwgOwor57+S5L2cIDwgc2h1dXNha3VcIDsKK+eJueazqCA8IHRva3VjaHV1XCA7CivmmqblraYgPCByZWtpZ2FrdVwgOwor5Li45YK3IDwgdGFtYWtpenVcIDsKK+S9leWHpui/hCA8IGRva29tYWRlXCA7Civov5HkvLzlgKQgPCBraW5qaWNoaVwgOwor6YCP56OB5oCnIDwgdG91amlzZWlcIDsKK+WlieelnSA8IGhvdXNodWt1XCA7Civkv53orbfpoJggPCBob2dvcnlvdVwgOwor5Lit5YWxIDwgY2h1dWt5b3VcIDsKK+eJuea0vuWToSA8IHRva3VoYWluXCA7CivkuKbliJcgPCBoZWlyZXRzdVwgOwor5LmF5LmFIDwgaGlzYWJpc2FcIDsKK+WUvua2suiFuiA8IGRhZWtpc2VuXCA7Civnt5HosYYgPCByeW9rdXRvdVwgOwor5aW954mpIDwga291YnV0c3VcIDsKK+S4i+mZouitsOWToSA8IGthaW5naWluXCA7Civluq3mnKjmiLggPCBuaXdha2lkb1wgOwor6Z2S55WzIDwgYW9kYXRhbWlcIDsKK+mbm+iPiiA8IGhpbmFnaWt1XCA7CivmmYLmmYIgPCB0b2tpZG9raVwgOwor5b6M5o+06ICFIDwga291ZW5zaGFcIDsKK+m7hOmJhOmJsSA8IG91dGVra291XCA7CivlpLHnrJEgPCBzaGlzc2hvdVwgOwor5pWX6ImyIDwgaGFpc2hva3VcIDsKK+mbquiGmiA8IHl1a2loYWRhXCA7CivmmpflrqQgPCBhbnNoaXRzdVwgOwor5Y+k5Luj5Lq6IDwga29kYWlqaW5cIDsKK+S6i+WLmeacjSA8IGppbXVmdWt1XCA7CivlsI/puqbnsokgPCBrb211Z2lrb1wgOwor5LiL5ZGzIDwgc2hpdGFhamlcIDsKK+S4jea6tuaApyA8IGZ1eW91c2VpXCA7CivntZDpq6ogPCBrZXBwYXRzdVwgOwor6aGn5ZWP5ZujIDwga29tb25kYW5cIDsKK+aYvOaZgiA8IGhpcnVkb2tpXCA7Civkv53mnInogIUgPCBob3l1dXNoYVwgOwor6YG/55eF6ZmiIDwgaGlieW91aW5cIDsKK+WJjeaZr+awlyA8IG1hZWdlaWtpXCA7CivkuLjkuosgPCBtYXJ1Z290b1wgOwor6Zu75rCX5qSF5a2QIDwgZGVua2lpc3VcIDsKK+WkluS6pOWToSA8IGdhaWtvdWluXCA7CivmlofnrrEgPCBmdW1pYmFrb1wgOwor5aSn562SIDwgb29kenV0c3VcIDsKK+S4uOS4uCA8IG1hcnVtYXJ1XCA7CivpmLLpm6ogPCBib3VzZXRzdVwgOwor6YqF55u45aC0IDwgZG91c291YmFcIDsKK+ios+iqrSA8IHlha3Vkb2t1XCA7CivkuIPlkbMgPCBzaGljaGltaVwgOwor5pa555WlIDwgaG91cnlha3VcIDsKK+S4uOS4gCA8IG1hcnVpY2hpXCA7CivkuK3kvY4gPCBuYWthYmlrdVwgOwor5aeL5pyrIDwgc2hpbWF0c3VcIDsKK+Wkp+erpSA8IG9vd2FyYXdhXCA7Civlgr7mlpzluqYgPCBrZWlzaGFkb1wgOwor6auY5bqm6KiIIDwga291ZG9rZWlcIDsKK+mdkueOiSA8IHNlaWd5b2t1XCA7Civov5HmnKrmnaUgPCBraW5taXJhaVwgOwor5o2V6a+o6Ii5IDwgaG9nZWlzZW5cIDsKK+WkseelniA8IHNoaXNzaGluXCA7Civpm4bokL0gPCBzaHV1cmFrdVwgOwor6Z2Z54mpIDwgc2VpYnV0c3VcIDsKK+WKoOWus+iAhSA8IGthZ2Fpc2hhXCA7CivmlbDnj6DnjokgPCBqdXp1ZGFtYVwgOwor5LiA5ZCRIDwgaGl0YXN1cmFcIDsKK+eLrOWtpiA8IGRva3VnYWt1XCA7CivmmKjmnJ0gPCBzYWt1Y2hvdVwgOwor5LiA5Y+iIDwgaGl0b211cmFcIDsKK+absuS6iyA8IGt1c2Vnb3RvXCA7CivmiYvnvr3lhYggPCB0ZWJhc2FraVwgOwor6KOc5Yqp57+8IDwgaG9qb3lva3VcIDsKK+S4reS4rSA8IG5ha2FuYWthXCA7CivmhYjmgrLlv4MgPCBqaWhpc2hpblwgOwor6aGe5YilIDwgcnVpYmV0c3VcIDsKK+WkluiyqOWCtSA8IGdhaWthc2FpXCA7CivnuK7nt6wgPCBjaGlyaW1lblwgOwor5oOF5aCx5YyWIDwgam91aG91a2FcIDsKK+aYqOaagSA8IHNha3VneW91XCA7Civnt4/kuojnrpcgPCBzb3V5b3NhblwgOwor55yf5aSc5LitIDwgbWF5b25ha2FcIDsKK+e1kOmhmCA8IGtlY2hpZ2FuXCA7CivmmKjmmKUgPCBzYWt1c2h1blwgOwor5LiH5YilIDwgYmFuYmV0c3VcIDsKK+mggeWyqSA8IGtldHN1Z2FuXCA7CivkuKbkuKYgPCBuYW1pbmFtaVwgOwor57im57ieIDwgdGF0ZWppbWFcIDsKK+iml+mtlCA8IG5vem9raW1hXCA7CivlopfoqK0gPCB6b3VzZXRzdVwgOwor5LiA5YmyIDwgaWNoaXdhcmlcIDsKK+WkleeriyA8IHl1dWRhY2hpXCA7CivloanovpsgPCBzaGlva2FyYVwgOwor5pen5rWBIDwga3l1dXJ5dXVcIDsKK+S4i+aEj+itmCA8IGthaXNoaWtpXCA7Civku6PnqL3lj6QgPCBkYWlnZWlrb1wgOwor5rC45L2P5qipIDwgZWlqdXVrZW5cIDsKK+S/neacieexsyA8IGhveXV1bWFpXCA7Civoh6rlm73oqp4gPCBqaWtva3Vnb1wgOwor5Y+N5a++6KqeIDwgaGFudGFpZ29cIDsKK+WkieeVsOS9kyA8IGhlbicnaXRhaVwgOwor57W56YedIDwga2ludWJhcmlcIDsKK+eNhOS4rSA8IGdva3VjaHV1XCA7CivliKnlt7HnmoQgPCByaWtvdGVraVwgOwor5LiA5YWIIDwgaGl0b21henVcIDsKK+W7uuWFt+WxiyA8IHRhdGVndXlhXCA7CivmmIfmoLwgPCBzaG91a2FrdVwgOwor6Ziy5a+S5YW3IDwgYm91a2FuZ3VcIDsKK+Wls+WtpuagoSA8IGpvZ2Fra291XCA7Civkv53lrojmgKcgPCBob3NodXNlaVwgOwor57mt546JIDwgbWF5dWRhbWFcIDsKK+aYjuaciCA8IG1laWdldHN1XCA7Civpnq3mkrsgPCBiZW50YXRzdVwgOwor6Zuo57KSIDwgYW1ldHN1YnVcIDsKK+WlveaZr+awlyA8IGtvdWtlaWtpXCA7CivlubPlkozntq3mjIEgPCBoZWl3YWlqaVwgOwor5Lqk5LuY6ICFIDwga291ZnVzaGFcIDsKK+WPr+WkieaVsCA8IGthaGVuc3V1XCA7CivoirHmloflrZcgPCBoYW5hbW9qaVwgOwor5pq05YqbIDwgYm91cnlva3VcIDsKK+mdouS8muaXpSA8IG1lbmthaWJpXCA7CivoprPplrIgPCBrYW4nJ2V0c3VcIDsKK+eFmeiNieWxiyA8IHRhYmFrb3lhXCA7Civnt5Hol7sgPCByeW9rdXNvdVwgOwor5aOu57W2IDwgc291emV0c3VcIDsKK+mbqOaooeanmCA8IGFtZW1veW91XCA7CivmlZnnsY0gPCBreW91c2VraVwgOwor5piO5pilIDwgbXlvdXNodW5cIDsKK+S4h+S7oyA8IHlvcm96dXlvXCA7CivmlK/ohIggPCBzaGlteWFrdVwgOwor5o+657GD5pyfIDwgeW91cmFua2lcIDsKK+eqgeegtOWPoyA8IHRvcHBha291XCA7Civni6zlm70gPCBkb2t1a29rdVwgOwor6L+R5Luj5YyWIDwga2luZGFpa2FcIDsKK+eCueeBq+ezuyA8IHRlbmtha2VpXCA7CivkuozlubTnlJ8gPCBuaW5lbnNlaVwgOwor5pif5rCX5L2TIDwgc2Vpa2l0YWlcIDsKK+S4jeetieWPtyA8IGZ1ZG91Z291XCA7CivmnInngrrou6LlpIkgPCB1aXRlbnBlblwgOwor5LqU6L665b2iIDwgZ29oZW5rZWlcIDsKK+S6jOi8qui7iiA8IG5pcmluc2hhXCA7CivkuInkuIsgPCBzYW5zaGl0YVwgOwor5aSn55WlIDwgdGFpcnlha3VcIDsKK+eUqOeuquespSA8IHlvdWRhbnN1XCA7CivlpbPmsJcgPCBvbicnbmFra2VcIDsKK+WhqeixhiA8IHNoaW9tYW1lXCA7CivlhrfolLXluqsgPCByZWl6b3Vrb1wgOwor5LiH5LiAIDwgbWFuJydpY2hpXCA7Civpm6rnqbogPCB5dWtpem9yYVwgOwor6KyA5q66IDwgYm91c2F0c3VcIDsKK+e1hOmVtyA8IGt1bWljaG91XCA7CivoqIDoqqwgPCBnZW5zZXRzdVwgOwor5LiN5omA5a2YIDwgZnVzaG96b25cIDsKK+inkumAmiA8IGtha3V0c3V1XCA7CivmipXlhYnlmaggPCB0b3Vrb3VraVwgOwor5rWc6IyE5a2QIDwgaGFtYW5hc3VcIDsKK+WPpOabuOWxlSA8IGtvc2hvdGVuXCA7CivkuozljYHku6MgPCBuaWp1dWRhaVwgOwor5LiA5LiAIDwgaXRzdWl0c3VcIDsKK+e1sei9hCA8IHRvdWthdHN1XCA7CivorKHmm7IgPCB5b3VreW9rdVwgOwor57SF6bGSIDwgYmVuaW1hc3VcIDsKK+W4guihl+WbsyA8IHNoaWdhaXp1XCA7Civni6zllLEgPCBkb2t1c2hvdVwgOwor5qi55p6d54q2IDwganVzaGlqb3VcIDsKK+e3keiMtiA8IHJ5b2t1Y2hhXCA7Civluo/nm6TmiKYgPCBqb2JhbnNlblwgOwor5pi85bitIDwgaGlydXNla2lcIDsKK+eBq+aIkOWyqSA8IGthc2VpZ2FuXCA7CivntYTlkIjlk6EgPCBrdW1pYWlpblwgOwor5Lqc6ISx6Ie8IDwgYWRha2t5dXVcIDsKK+e0hemurSA8IGJlbml6YWtlXCA7CivntI3pqqggPCBub3Vrb3RzdVwgOwor6ayx6YeR6ImyIDwgdWtvbicnaXJvXCA7Civml6fmoKogPCBreXV1a2FidVwgOwor5aer5a6uIDwgaGltZW1peWFcIDsKK+WinOiQvSA8IHRzdWlyYWt1XCA7CivprLzmrabogIUgPCBvbmltdXNoYVwgOwor5pac5oqV5b2xIDwgc2hhdG91ZWlcIDsKK+aVsOeZviA8IHN1dWh5YWt1XCA7Civpm4bntIQgPCBzaHV1eWFrdVwgOwor6KqY55m6IDwgeXV1aGF0c3VcIDsKK+a7keepuuapnyA8IGtha2t1dWtpXCA7CivniYfmoJcgPCBrYXRha3VyaVwgOwor5pes5pyIIDwganVuZ2V0c3VcIDsKK+i7vemojuWFtSA8IGtlaWtpaGVpXCA7CivkuozlhYPoq5YgPCBuaWdlbnJvblwgOwor5omL5paZ55CGIDwgdGVyeW91cmlcIDsKK+WNmOWIqeazlSA8IHRhbnJpaG91XCA7CivlvqHnpZ7ovL8gPCBvbWlrb3NoaVwgOwor5YWI6Yut5YyWIDwgc2VuJydlaWthXCA7Civpm7vnlaUgPCBkZW5yeWFrdVwgOwor5pKS5biD5YmkIDwgc2FwcHV6YWlcIDsKK+aWh+eJqSA8IGJ1bmJ1dHN1XCA7CivlkYnmnI3lsYsgPCBnb2Z1a3V5YVwgOwor5pS556+JIDwga2FpY2hpa3VcIDsKK+ippuetiyA8IHRhbWVzdWppXCA7CivoqabnrYYgPCBzaGloaXRzdVwgOwor5pen5pqmIDwga3l1dXJla2lcIDsKK+aXrOaXpSA8IGp1bmppdHN1XCA7Civpm5HnqI4gPCB6YXRzdXplaVwgOwor6Kqt54mpIDwgeW9taW1vbm9cIDsKK+a6tuino+eCiSA8IHlvdWthaXJvXCA7Civpm6rnm7IgPCBzZXRzdW1vdVwgOwor5Y+v5aSJ5oCnIDwga2FoZW5zZWlcIDsKK+itpuWvnyA8IGtlaXNhdHN1XCA7CivlubTpvaLlt64gPCBuZW5yZWlzYVwgOwor6Kej6KqsIDwga2Fpc2V0c3VcIDsKK+e3qee3qSA8IHl1cnV5dXJ1XCA7Civml6nml6kgPCBoYXlhYmF5YVwgOwor6KeS6LKdIDwgdHN1bm9nYWlcIDsKK+WIgOWcreWutiA8IHRvdWtlaWthXCA7CivmkYLpo58gPCBzZXNzaG9rdVwgOwor6KW/6ZmjIDwgbmlzaGlqaW5cIDsKK+mzs+S7meiKsSA8IGhvdXNlbmthXCA7Civop6bop5IgPCBzaG9ra2FrdVwgOwor5aOB57SZIDwga2FiZWdhbWlcIDsKK+WwjuazoueuoSA8IGRvdWhha2FuXCA7CivljZjmr5TkvosgPCB0YW5waXJlaVwgOwor5o2V6a+o56CyIDwgaG9nZWlob3VcIDsKK+e0kOmdqSA8IGhpbW9rYXdhXCA7Civnm7TotrPooosgPCBqaWthdGFiaVwgOwor5pen5pWZIDwga3l1dWt5b3VcIDsKK+mbhuepjSA8IHNodXVzZWtpXCA7Civln4vpqqggPCBtYWlrb3RzdVwgOwor5peX5pysIDwgaGF0YW1vdG9cIDsKK+WklueJqSA8IGdhaWJ1dHN1XCA7CivmgqrlpKrpg44gPCBha3V0YXJvdVwgOwor5pyJ55CG5pWwIDwgeXV1cmlzdXVcIDsKK+mDqOWIhuWTgSA8IGJ1YnVuaGluXCA7Civlj6/nh4PmgKcgPCBrYW5lbnNlaVwgOwor5LiN5ZaE5oSfIDwgZnV6ZW5rYW5cIDsKK+e0mumVtyA8IGt5dXVjaG91XCA7CivmlqzmrrogPCB6YW5zYXRzdVwgOwor5rSX6Z2i5omAIDwgc2VubWVuam9cIDsKK+eJqeaDhSA8IGJ1dHN1am91XCA7Civpm4bnpaggPCBzaHV1aHlvdVwgOwor6Zuo55S3IDwgYW1lb3Rva29cIDsKK+eIhuayiCA8IGJha3VjaGluXCA7CivlpJzng48gPCB5b2dhcmFzdVwgOwor6YCB5rK5566hIDwgc291eXVrYW5cIDsKK+agvOWtkOaIuCA8IGtvdXNoaWRvXCA7CivlhbfkvZPkvosgPCBndXRhaXJlaVwgOwor5aer5Z6jIDwgaGltZWdha2lcIDsKK+aUr+aMgeadrSA8IHNoaWppa291XCA7CivnhornrLkgPCBrdW1hemFzYVwgOwor54ax55m6IDwgbmVwcGF0c3VcIDsKK+eEoemZkOWkpyA8IG11Z2VuZGFpXCA7CivpoIbliJcgPCBqdW5yZXRzdVwgOwor5aKo57mpIDwgc3VtaW5hd2FcIDsKK+eyvuexs+aJgCA8IHNlaW1haWpvXCA7CivorJnmipEgPCBrZW4nJ3lva3VcIDsKK+aSruimgSA8IHNhdHN1eW91XCA7CivlpInniakgPCBoZW5idXRzdVwgOwor57Wx6Kqe6KuWIDwgdG91Z29yb25cIDsKK+acqumWi+WiviA8IG1pa2Fpa29uXCA7CivmmKXlrrUgPCBzaHVuc2hvdVwgOwor5L2c5qWt6LK7IDwgc2FneW91aGlcIDsKK+mXh+mbsiA8IHlhbWlrdW1vXCA7CivlpKfpmKrlupwgPCBvb3Nha2FmdVwgOwor54yK576O5riTIDwgZ2VpYmlrZWlcIDsKK+aJk+aSg+eOiyA8IGRhZ2VraW91XCA7CivntprokL0gPCB6b2t1cmFrdVwgOwor6Zuq546JIDwgeXVraWRhbWFcIDsKK+aRmOmMsiA8IHRla2lyb2t1XCA7CivluoPokYnmqLkgPCBrb3V5b3VqdVwgOwor57eK57iuIDwga2luc2h1a3VcIDsKK+ippuedgCA8IHNoaWNoYWt1XCA7CivojYnlibXmnJ8gPCBzb3Vzb3VraVwgOwor5L6N6KGb6ZW3IDwgamllaWNob3VcIDsKK+S6jOmAsuacqCA8IG5pc2hpbmdpXCA7CivlpJbmv6AgPCBzb3RvYm9yaVwgOwor5aa+5a6FIDwgc2hvdXRha3VcIDsKK+mhleWcqOWMliA8IGtlbnphaWthXCA7Civlho3oqablkIggPCBzYWlzaGlhaVwgOwor5Lyd6Z+z5ZmoIDwgZGVuJydvbmtpXCA7Civnvqnli5nnmoQgPCBnaW11dGVraVwgOwor6Ly45Y21566hIDwgeXVyYW5rYW5cIDsKK+S9juWIqemHkSA8IHRlaXJpa2luXCA7CivmiKbliKnlk4EgPCBzZW5yaWhpblwgOwor5paH6Kqe5L2TIDwgYnVuZ290YWlcIDsKK+S5vuaAp+ayuSA8IGthbnNlaXl1XCA7Civop5LoopYgPCBrYWt1c29kZVwgOwor5pOC57KJ5pyoIDwgc3VyaWtvZ2lcIDsKK+mXh+mXhyA8IHlhbWl5YW1pXCA7CivmjIflsI7lk6EgPCBzaGlkb3VpblwgOwor5pyq6ZaL5ZywIDwgbWlrYWljaGlcIDsKK+enmOabuOWumCA8IGhpc2hva2FuXCA7CivlpJrmub8gPCB0YXNoaXRzdVwgOwor6Z2i5o6lIDwgbWVuc2V0c3VcIDsKK+mbkeeUqCA8IHphdHN1eW91XCA7CivmlrDmoKogPCBzaGlua2FidVwgOwor5pG66LazIDwgc3VyaWFzaGlcIDsKK+atpuWutueJqSA8IGJ1a2Vtb25vXCA7CivmlbTnkIbliLggPCBzZWlyaWtlblwgOwor6IKy6Zub5ZmoIDwgaWt1c3V1a2lcIDsKK+Wcp+aQvuapnyA8IGFzc2FrdWtpXCA7Civml4Hml4EgPCBrYXRhZ2F0YVwgOwor5paw5p+EIDwgc2hpbmdhcmFcIDsKK+aUv+eVpSA8IHNlaXJ5YWt1XCA7CivopovpgJogPCBtaXRvb3NoaVwgOwor6Zuj54mpIDwgbmFuYnV0c3VcIDsKK+S6jOWIhuazlSA8IG5pYnVuaG91XCA7Civmt7fmiJDoqp4gPCBrb25zZWlnb1wgOwor54+I55Cy6IuRIDwga291aGlpZW5cIDsKK+S6jOmDqOS9nCA8IG5pYnVzYWt1XCA7Civnt4/kvJrlsYsgPCBzb3VrYWl5YVwgOwor6KaL6L+UIDwgbWlrYWVzaGlcIDsKK+S7leaJi+aIpiA8IHNoaXRlc2VuXCA7Civlp6vlkJsgPCBoaW1lZ2ltaVwgOwor5pS755WlIDwga291cnlha3VcIDsKK+e1kOirliA8IGtldHN1cm9uXCA7CivlpY/mm7IgPCBzb3VreW9rdVwgOwor5aW95aW954i6IDwga291a291eWFcIDsKK+eojuWLmee9siA8IHplaW11c2hvXCA7Civosqnlo7LmqZ8gPCBoYW5iYWlraVwgOwor6Zy95pyIIDwgc2VpZ2V0c3VcIDsKK+epuuawl+WtlCA8IGt1dWtpa291XCA7CivnlrLlirTmhJ8gPCBoaXJvdWthblwgOwor5pS+5rC06LevIDwgaG91c3Vpcm9cIDsKK+aWsOaapiA8IHNoaW5yZWtpXCA7CivnhLzogokgPCB5YWtpbmlrdVwgOwor57WQ6KiAIDwga2V0c3VnZW5cIDsKK+iovOelqCA8IHNob3VoeW91XCA7Civpmo/nrYYgPCB6dWloaXRzdVwgOwor5aSW5rOVIDwgc290b25vcmlcIDsKK+aWsOaYpSA8IHNoaW5zaHVuXCA7CivkvJrorbDmiYAgPCBrYWlnaXNob1wgOwor6Zm457aaIDwgcmlrdXpva3VcIDsKK+eGseeGsSA8IGF0c3VhdHN1XCA7Civlopfnr4kgPCB6b3VjaGlrdVwgOwor5b2i5a656KqeIDwga2VpeW91Z29cIDsKK+S4gOWbnuaIpiA8IGlra2Fpc2VuXCA7CivnuK7muJsgPCBzaHVrdWdlblwgOwor57mB5q6WIDwgaGFuc2hva3VcIDsKK+WkqealtSA8IHRlbmt5b2t1XCA7CivnlpHllY/oqZ4gPCBnaW1vbnNoaVwgOwor5pen5bmVIDwga3l1dWJha3VcIDsKK+e1ueiOoiA8IGtpbnVzYXlhXCA7Civoi6blirTkurogPCBrdXJvdW5pblwgOwor5aSx5qC8IDwgc2hpa2tha3VcIDsKK+iBlueBq+WPsCA8IHNlaWthZGFpXCA7Civml6XluLggPCBuaWNoaWpvdVwgOwor5rC05L2N5qiZIDwgc3VpaWh5b3VcIDsKK+aCsuims+irliA8IGhpa2Fucm9uXCA7CivlpoToqp7miJIgPCBtb3Vnb2thaVwgOwor6ZuR54S2IDwgemF0c3V6ZW5cIDsKK+awuOWwj+S9nCA8IGVpa29zYWt1XCA7Civngq3ntKDpi7wgPCB0YW5zb2tvdVwgOwor57mK57at5p2fIDwgc2VuaXNva3VcIDsKK+ino+aUvuWMuiA8IGthaWhvdWt1XCA7Civkv53lrojlhZogPCBob3NodXRvdVwgOwor5pS+54axIDwgaG91bmV0c3VcIDsKK+iqmOauuiA8IHl1dXNhdHN1XCA7CivntKDos6ogPCBzb3NoaXRzdVwgOwor57SF5LiA54K5IDwga291aXR0ZW5cIDsKK+WegumrqiA8IHRhcmVnYW1pXCA7Civpm4HniKogPCBnYW5kenVtZVwgOwor57im5rOiIDwgdGF0ZW5hbWlcIDsKK+iouueZgiA8IHNoaW5yeW91XCA7CivntprntpogPCB6b2t1em9rdVwgOwor54iG5pKDIDwgYmFrdWdla2lcIDsKK+WutuW6reeUqCA8IGthdGVpeW91XCA7CivopovorZggPCBrZW5zaGlraVwgOwor6Jma56m66JS1IDwga29rdXV6b3VcIDsKK+iqsOafkCA8IGRhcmVzb3JlXCA7Civml4vlvosgPCBzZW5yaXRzdVwgOwor5Lya6KiI6KqyIDwga2Fpa2Vpa2FcIDsKK+eGsea6kCA8IG5ldHN1Z2VuXCA7Civli6Tli5nogIUgPCBraW5tdXNoYVwgOwor5aSc5qGcIDwgeW96YWt1cmFcIDsKK+aWh+acqyA8IGJ1bm1hdHN1XCA7Civot53pm6LmhJ8gPCBreW9yaWthblwgOwor5pen5a6FIDwga3l1dXRha3VcIDsKK+iqv+aVmSA8IGNob3VreW91XCA7CivmmYLlgbYgPCB0b2tpdGFtYVwgOwor5aaC5a6fIDwgbnlvaml0c3VcIDsKK+aWjuaXpSA8IHNhaWppdHN1XCA7CivnhrHmtpkgPCBuZXRzdXJ1aVwgOwor6Zu75qW1IDwgZGVua3lva3VcIDsKK+WhteeusSA8IGdvbWliYWtvXCA7CivmlY/mtLsgPCBiaW5rYXRzdVwgOwor6ZaL6ZeiIDwga2FpYnlha3VcIDsKK+eFpeeZuiA8IGthbnBhdHN1XCA7CivnnIvorbfms5UgPCBrYW5nb2hvdVwgOwor5aSn5pelIDwgZGFpbmljaGlcIDsKK+WCrOS6i+WgtCA8IHNhaWppam91XCA7CivprLzlhbXpmoogPCBraWhlaXRhaVwgOwor5aWz5a2Q5aSnIDwgam9zaGlkYWlcIDsKK+mfk+S6uiA8IGthcmFiaXRvXCA7CivlpJbmnqAgPCBzb3Rvd2FrdVwgOwor5ZSv5oiR6KuWIDwgeXVpZ2Fyb25cIDsKK+acquijveWTgSA8IG1pc2VpaGluXCA7Civmlbfmnb8gPCBzaGlraWl0YVwgOwor6Kqs5piOIDwgc2V0c3VtZWlcIDsKK+eEoee1seWItiA8IG11dG91c2VpXCA7CivnuKbmqKogPCB0YXRleW9rb1wgOwor6KaB6KijIDwgeW91a2V0c3VcIDsKK+Wil+eZuiA8IHpvdWhhdHN1XCA7CivpgKDoiLnmiYAgPCB6b3VzZW5qb1wgOwor6Lqr5pSv5bqmIDwgbWlqaXRha3VcIDsKK+aYjuWTsiA8IG1laXRldHN1XCA7CivlpJzmmLwgPCB5b3J1aGlydVwgOwor6YeR5pys5L2NIDwga2luaG9uJydpXCA7CivlpJXmnIggPCB5dXVkenVraVwgOwor5aSa6Z2i5oCnIDwgdGFtZW5zZWlcIDsKK+Wkp+Wei+apnyA8IG9vZ2F0YWtpXCA7CivmlrnlvI8gPCBob3VzaGlraVwgOwor5pyq6ZaL5Lq6IDwgbWlrYWlqaW5cIDsKK+mWgOmWpSA8IG1vbmJhdHN1XCA7Civol4HlsYvmoLkgPCB3YXJheWFuZVwgOwor5pyI5LiW55WMIDwgZ2Vzc2VrYWlcIDsKK+W+l+aEj+mhlCA8IHRva3VpZ2FvXCA7CivmiYvplpPpmpkgPCB0ZW1haGltYVwgOwor5pS/5rK754qvIDwgc2VpamloYW5cIDsKK+aYpeWFiCA8IGhhcnVzYWtpXCA7Civlp4vlgKQgPCBoYWppbWVuZVwgOwor5rSX6Z2i5ZmoIDwgc2VubWVua2lcIDsKK+aWsOW9oiA8IHNoaW5nYXRhXCA7CivkurrmloflrZcgPCBoaXRvbW9qaVwgOwor5qih6YCg5ZOBIDwgbW96b3VoaW5cIDsKK+mZuOebuCA8IHJpa3VzaG91XCA7CivlkbzlkLjlmaggPCBrb2t5dXVraVwgOwor57W557a/IDwga2ludXdhdGFcIDsKK+Wcn+WcsOmRkSA8IHRvY2hpa2FuXCA7CivniYblo4EgPCBzaG91aGVraVwgOwor5aOK5ruFIDwga2FpbWV0c3VcIDsKK+mam+eJqSA8IGtpd2Ftb25vXCA7CivmsJfpgIHnrqEgPCBraXNvdWthblwgOwor5L2O6YeR5YipIDwgdGVpa2lucmlcIDsKK+WkreaKmCA8IHlvdXNldHN1XCA7Civoi7HlsI/mloflrZcgPCBlaWtvbW9qaVwgOwor5pW15pa5IDwgdGVraWdhdGFcIDsKK+mVt+mVtyA8IG5hZ2FuYWdhXCA7CivluL3lrZDlsYsgPCBib3VzaGl5YVwgOwor5b6h5oiQ5YqfIDwgZ29zZWlrb3VcIDsKK+ePiueRmua1tyA8IHNhbmdva2FpXCA7CivntIToq74gPCB5YWt1ZGFrdVwgOwor5pWw5pelIDwgc3V1aml0c3VcIDsKK+abs+WFieW8viA8IGVpa291ZGFuXCA7CivljYPph4znnLwgPCBzZW5yaWdhblwgOwor6Ziy57iuIDwgYm91c2h1a3VcIDsKK+iQveS4i+WCmCA8IHJha2thc2FuXCA7Civmk4Hnq4sgPCB5b3VyaXRzdVwgOwor5rih6Iiq6ICFIDwgdG9rb3VzaGFcIDsKK+aVsOaVsCA8IGthenVrYXp1XCA7CivlpKfmiYAgPCBvb2Rva29yb1wgOwor5Zyw6bygIDwgamluZXp1bWlcIDsKK+S4i+aJi+S6uiA8IGdlc2h1bmluXCA7Civlh6blpbPmnpcgPCBzaG9qb3JpblwgOwor57SU6KGAIDwganVua2V0c3VcIDsKK+S6i+alremDqCA8IGppZ3lvdWJ1XCA7Civlr4zlsbHmiL8gPCBmdXphbmJvdVwgOwor57KJ6aO+IDwgZnVuc2hva3VcIDsKK+e4puabuCA8IHRhdGVnYWtpXCA7Civmk6bnlrUgPCBzdXJpa2l6dVwgOwor5aGa56m0IDwgdHN1a2FhbmFcIDsKK+aOpeW+heiyuyA8IHNldHRhaWhpXCA7CivnuYrntq3mgKcgPCBzZW4nJ2lzZWlcIDsKK+aJi+ipseazlSA8IHNodXdhaG91XCA7CivkvZXlh6blhbblh6YgPCBkb2tvc29rb1wgOwor5L+d6aSK5ZywIDwgaG95b3VjaGlcIDsKK+eFp+eEvCA8IHRlcml5YWtpXCA7CivliKnlt7Hlv4MgPCByaWtvc2hpblwgOwor54K554Gr5qCTIDwgdGVua2FzZW5cIDsKK+e1tuethiA8IHplcHBpdHN1XCA7Civpm6Pmm7IgPCBuYW5reW9rdVwgOwor6KiI55WlIDwga2Vpcnlha3VcIDsKK+mOlOmJseeCiSA8IHlvdWtvdXJvXCA7Civlj6/mj5vnvqQgPCBrYWthbmd1blwgOwor5Lya6K2w5aC0IDwga2FpZ2lqb3VcIDsKK+S6uumdnuS6uiA8IG5pbnBpbmluXCA7CivopovokL0gPCBtaW90b3NoaVwgOwor54K46JasIDwgc2FrdXlha3VcIDsKK+iKseeyieeuoSA8IGthZnVua2FuXCA7Civln4voqK0gPCBtYWlzZXRzdVwgOwor6YGO5r+A5rS+IDwga2FnZWtpaGFcIDsKK+aOpemqqCA8IHNla2tvdHN1XCA7Civpmb3niakgPCB5b3VidXRzdVwgOwor6KuW5a6iIDwgcm9ua3lha3VcIDsKK+inkuesmyA8IHRzdW5vYnVlXCA7CivnhrHmnJsgPCBuZXRzdWJvdVwgOwor5rq26Kej5bqmIDwgeW91a2FpZG9cIDsKK+mWsuiqrSA8IGV0c3Vkb2t1XCA7Civlj6Xoqq3ngrkgPCBrdXRvdXRlblwgOwor5o2c5p+76ZmjIDwgc291c2FqaW5cIDsKK+iqsOW9vCA8IHRhcmVrYXJlXCA7CivnsbPpo58gPCBiZWlzaG9rdVwgOwor57Si6I6rIDwgc2FrdWJha3VcIDsKK+WWtuWIqeeahCA8IGVpcml0ZWtpXCA7Civooqvngb3ogIUgPCBoaXNhaXNoYVwgOwor5LiN5b6T6aCGIDwgZnVqdXVqdW5cIDsKK+WPjeWwhOeCiSA8IGhhbnNoYXJvXCA7Civpm5Hmm7IgPCB6YWtreW9rdVwgOwor5L2d5YOC55eFIDwga3VydWJ5b3VcIDsKK+WkquW3uyA8IGZ1dG9tYWtpXCA7CivmlrDlprsgPCBuaWlkenVtYVwgOwor6YO95Lya5Lq6IDwgdG9rYWlqaW5cIDsKK+e1kOe0riA8IGtlc3NhdHN1XCA7CivlkarnpoHpgZMgPCBqdWtvbmRvdVwgOwor5Y+k54mI5pysIDwga29oYW5ib25cIDsKK+a4rOWAmeaJgCA8IHNva2tvdWpvXCA7Civml6fliocgPCBreXV1Z2VraVwgOwor5rS+6YGj6ZqKIDwgaGFrZW50YWlcIDsKK+aRmOiKryA8IHRla2lzaGluXCA7CivmrZPov47lrrQgPCBrYW5nZWllblwgOwor54mp5LqLIDwgbW9ub2dvdG9cIDsKK+aIkOWKn+ijoSA8IHNlaWtvdXJpXCA7CivoqLPms6ggPCB5YWt1Y2h1dVwgOwor5pS55pytIDwga2Fpc2F0c3VcIDsKK+WutuW6reashCA8IGthdGVpcmFuXCA7Civnha7msrggPCBzaGFmdXRzdVwgOwor5aSn5bWQIDwgb29hcmFzaGlcIDsKK+WkmuWkieaVsCA8IHRhaGVuc3V1XCA7CivnlLfmgKfnvo4gPCBkYW5zZWliaVwgOwor6ZuR5paHIDwgemF0c3VidW5cIDsKK+mrmOapn+iDvSA8IGtvdWtpbm91XCA7CivntJnoirEgPCBrYW1pYmFuYVwgOwor5Lq66ZaT6IumIDwgbmluZ2Vua3VcIDsKK+eEvOeJqSA8IHlha2ltb25vXCA7CivntZDnr4AgPCBrZXNzZXRzdVwgOwor6ZW36Lu4IDwgY2hvdWppa3VcIDsKK+WkluW6rSA8IHNvdG9uaXdhXCA7CivkuInlkbPnt5ogPCBzaGFtaXNlblwgOwor57WE57SQIDwga3VtaWhpbW9cIDsKK+eykumKgCA8IHRzdWJ1Z2luXCA7CivplovosYEgPCBrYWlrYXRzdVwgOwor57iB5pelIDwgZW4nJ25pY2hpXCA7CivlkIznqIvluqYgPCBkb3V0ZWlkb1wgOwor5aSc5bWQIDwgeW9hcmFzaGlcIDsKK+aVsOW8jyA8IHN1dXNoaWtpXCA7Civlpb3loanoj4wgPCBrb3VlbmtpblwgOwor6YCB5rCX566hIDwgc291a2lrYW5cIDsKK+eKoOeJsuiAhSA8IGdpc2Vpc2hhXCA7CivoirHntIvmnb8gPCBrYW1vbmJhblwgOwor6Zu75a2Q5YyWIDwgZGVuc2hpa2FcIDsKK+eJm+S5syA8IGd5dXVueXV1XCA7CivlsL3mnKrmnaUgPCBqaW5taXJhaVwgOwor5Y+l6Kqt5rOVIDwga3V0b3Vob3VcIDsKK+WlveWkqeawlyA8IGtvdXRlbmtpXCA7CivplbfotrMgPCBjaG91c29rdVwgOwor5aGp54mpIDwgc2hpb21vbm9cIDsKK+eJh+WBtCA8IGthdGFnYXdhXCA7CivmtYTljJbmp70gPCBqb3VrYXNvdVwgOwor6ZuA5paRIDwgc29iYWthc3VcIDsKK+acieWjsOmfsyA8IHl1dXNlaW9uXCA7Civpm7LlvaIgPCBrdW1vZ2F0YVwgOwor57WM56m0IDwga2Vpa2V0c3VcIDsKK+WPjeS9nOeUqCA8IGhhbnNheW91XCA7Civmkp7nnYAgPCBkb3VjaGFrdVwgOwor5YWo6Ieq5YuVIDwgemVuamlkb3VcIDsKK+WPjeWvvua0viA8IGhhbnRhaWhhXCA7Civml6fkvZwgPCBreXV1c2FrdVwgOwor57SF6IqxIDwgYmVuaWJhbmFcIDsKK+WHpuWls+aApyA8IHNob2pvc2VpXCA7CivmiYvplpPos4MgPCB0ZW1hY2hpblwgOwor6Zmw5rm/IDwgaW5zaGl0c3VcIDsKK+e3qOabsiA8IGhlbmt5b2t1XCA7CivntYTnq4sgPCBrdW1pdGF0ZVwgOwor57Sw57SwIDwgaG9zb2Jvc29cIDsKK+ippuaOmCA8IHNoaWt1dHN1XCA7CivloannhLwgPCBzaGlveWFraVwgOwor5aSW5bGAIDwgZ2Fpa3lva3VcIDsKK+Wil+auliA8IHpvdXNob2t1XCA7Civml6fkurogPCBmdXJ1Yml0b1wgOwor5LiA5Zue5YiGIDwgaWtrYWlidW5cIDsKK+e9ueeBveiAhSA8IHJpc2Fpc2hhXCA7CivoqLPmpa0gPCB5YWt1Z3lvdVwgOwor5o6S6ZuqIDwgaGFpc2V0c3VcIDsKK+eym+i7jSA8IHNodWt1Z3VuXCA7CivnhrHmhJ8gPCBuZXRzdWthblwgOwor5aSx5aKcIDwgc2hpdHRzdWlcIDsKK+WbvemzpSA8IGtva3VjaG91XCA7Civosq/ngq3miYAgPCBjaG90YW5qb1wgOwor6Ku45YWxIDwgbW9yb3RvbW9cIDsKK+acieS6uuWMliA8IHl1dWppbmthXCA7CivlpJblrqIgPCBnYWlreWFrdVwgOwor5Y2w6LGh5rS+IDwgaW5zaG91aGFcIDsKK+eGseaDhSA8IG5ldHN1am91XCA7CivlpJblrasgPCBzb3RvbWFnb1wgOwor57OW6JycIDwgdG91bWl0c3VcIDsKK+mbo+W9uSA8IG5hbicneWFrdVwgOwor5aGX54mpIDwgbnVyaW1vbm9cIDsKK+eJiOS4iyA8IGhhbnNoaXRhXCA7Civmp43pqI7lhbUgPCBzb3VraWhlaVwgOwor6Zmk5rm/IDwgam9zaGl0c3VcIDsKK+mAg+mBv+ihjCA8IHRvdWhpa291XCA7CivlhoXngavoiYcgPCBuYWlrYXRlaVwgOwor57Wx546HIDwgdG91c290c3VcIDsKK+aXheWFiCA8IHRhYmlzYWtpXCA7CivntLDnrYYgPCBzYWloaXRzdVwgOwor6Zuq5ba6IDwgc2V0c3VyZWlcIDsKK+e1ueeJqSA8IGtpbnVtb25vXCA7CivliKnmqKnlsYsgPCByaWtlbicneWFcIDsKK+ios+afhCA8IHdha2VnYXJhXCA7CivopZ/ohbAgPCBlcmlrb3NoaVwgOwor57WQ552AIDwga2V0Y2hha3VcIDsKK+e3keaelyA8IHJ5b2t1cmluXCA7CivplrLlhbXlj7AgPCBlcHBlaWRhaVwgOwor57WQ55ufIDwga2V0c3VtZWlcIDsKK+a3t+eoruiqniA8IGtvbnNodWdvXCA7CivnhrHlvIEgPCBuZXRzdWJlblwgOwor6YCP6YGO5oCnIDwgdG91a2FzZWlcIDsKK+S8muimi+iomCA8IGthaWtlbmtpXCA7Civpm5Hlv7UgPCB6YXRzdW5lblwgOwor6KiO5q27IDwgdWNoaWppbmlcIDsKK+ebuOS8vOeCuSA8IHNvdWppdGVuXCA7CivonrrlrZDph5ggPCBuZWppa3VnaVwgOwor5Yem5aWz5bOwIDwgc2hvam9ob3VcIDsKK+eci+itt+W4qyA8IGthbmdvc2hpXCA7CivmlK/miZUgPCBzaGloYXJhaVwgOwor6Kaq552mIDwgc2hpbmJva3VcIDsKK+WggOerryA8IGhvcmliYXRhXCA7CivpmaXmsqEgPCBrYW5ib3RzdVwgOwor6KeS54mbIDwga2FrdWd5dXVcIDsKK+mbkeW9uSA8IHphdHN1ZWtpXCA7Civpm6rlsbEgPCB5dWtpeWFtYVwgOwor5pyJ6aCC54K5IDwgdWNob3V0ZW5cIDsKK+iruOS6uiA8IG1vcm9iaXRvXCA7CivkuIDnrYnmmJ8gPCBpdHRvdXNlaVwgOwor5LiL5rC06YGTIDwgZ2VzdWlkb3VcIDsKK+mdnuS6uuaDhSA8IGhpbmluam91XCA7CivpmaPmsqEgPCBqaW5ib3RzdVwgOwor54i25LiKIDwgY2hpY2hpdWVcIDsKK+mbquWusyA8IHNldHN1Z2FpXCA7CivplbfoopYgPCBuYWdhc29kZVwgOwor6Ziy54axIDwgYm91bmV0c3VcIDsKK+S4u+e+qeiAhSA8IHNodWdpc2hhXCA7CivnuITlvLUgPCBuYXdhYmFyaVwgOwor5rS+6YGj6LuNIDwgaGFrZW5ndW5cIDsKK+WGjeaPkOahiCA8IHNhaXRlaWFuXCA7Civnvo7mhI/orZggPCBiaWlzaGlraVwgOwor6KOP6YGTIDwgdXJhbWljaGlcIDsKK+mao+aOpSA8IHJpbnNldHN1XCA7Civntpnmr40gPCBtYW1haGFoYVwgOwor5aSn5ZadIDwgZGFpa2F0c3VcIDsKK+e3j+acrOWutiA8IHNvdWhvbmtlXCA7CivluqblpJboppYgPCBkb2dhaXNoaVwgOwor5Ye65p2l5YW35ZCIIDwgZGVraWd1YWlcIDsKK+mcsuWHuiA8IHJvc2h1dHN1XCA7CivoqKrml6UgPCBob3VuaWNoaVwgOwor6YGg5b6B6ZqKIDwgZW5zZWl0YWlcIDsKK+WhqeawtCA8IHNoaW9taXp1XCA7CivnkIbmg7PlnosgPCByaXNvdWtlaVwgOwor5pW35ZywIDwgc2hpa2ljaGlcIDsKK+S7ruWIhuaVsCA8IGthYnVuc3V1XCA7CivpmobmmIwgPCByeXV1c2hvdVwgOwor5paw5L+uIDwgc2hpbnNodXVcIDsKK+WKqeaVsOipniA8IGpvc3V1c2hpXCA7Civnsr7nrpfmiYAgPCBzZWlzYW5qb1wgOwor5aSn5ZCJIDwgZGFpa2ljaGlcIDsKK+WkmumdouS9kyA8IHRhbWVudGFpXCA7CivmlrDkvZwgPCBzaGluc2FrdVwgOwor6Zai6ISHIDwgc2VraXdha2VcIDsKK+eHreWPsCA8IHNob2t1ZGFpXCA7Civngq3nqq8gPCBzdW1pZ2FtYVwgOwor6Zu75ZynIDwgZGVuJydhdHN1XCA7Civpm6jlpbMgPCBhbWVvbicnbmFcIDsKK+a/gOmchyA8IGdla2lzaGluXCA7CivlpInlnKcgPCBoZW4nJ2F0c3VcIDsKK+W9oumquOWMliA8IGtlaWdhaWthXCA7CivmrKfnsbPkurogPCBvdWJlaWppblwgOwor5aSn5Y2SIDwgZGFpc290c3VcIDsKK+e1jOW4q+WxiyA8IGt5b3VqaXlhXCA7CivoqqTlpInmj5sgPCBnb2hlbmthblwgOwor6YKE5LuY6YeRIDwga2FucHVraW5cIDsKK+WjgeW9uSA8IGthYmV5YWt1XCA7Civmjpvou7ggPCBrYWtlamlrdVwgOwor57iE5bC7IDwgbmF3YWppcmlcIDsKK+ijsuiloCA8IHVjaGlrYWtlXCA7Civln7rnnaMgPCBraXJpc3V0b1wgOwor5pmp5b6h6aOvIDwgYmFuZ29oYW5cIDsKK+iFleiHquaFoiA8IHVkZWppbWFuXCA7CivmtYTmsLTlmaggPCBqb3VzdWlraVwgOwor5Yqp5pWZ6KutIDwgam9reW91eXVcIDsKK+Wkp+WIpSA8IHRhaWJldHN1XCA7CivmlonliJcgPCBzZWlyZXRzdVwgOwor6Zuq5Zu9IDwgeXVraWd1bmlcIDsKK+WHpuWls+WcsCA8IHNob2pvY2hpXCA7CivlpKflhoogPCB0YWlzYXRzdVwgOwor57e75a+GIDwgY2hpbWl0c3VcIDsKK+WkieWTsiA8IGhlbnRldHN1XCA7Civns7jnq7kgPCBzaGljaGlrdVwgOwor6ZaL6ISaIDwga2Fpa3lha3VcIDsKK+aUr+WxgCA8IHNoaWt5b2t1XCA7CivlpLHkv50gPCBzaGl0c3Vob1wgOwor5Yip55So6ICFIDwgcml5b3VzaGFcIDsKK+e1gueGhCA8IHNodXVzb2t1XCA7CivnhKHnsr7ljbUgPCBtdXNlaXJhblwgOwor6bGpIDwgaGF0YWhhdGFcIDsKK+eEoemWouS/giA8IG11a2Fua2VpXCA7CivlpJblipsgPCBnYWlyeW9rdVwgOwor6Kq/5LyPIDwgY2hvdWJ1a3VcIDsKK+mbm+WeiyA8IGhpbmFnYXRhXCA7CivmraPlrZfms5UgPCBzZWlqaWhvdVwgOwor6KaB55WlIDwgeW91cnlha3VcIDsKK+i7jeWMu+eboyA8IGd1bicnaWthblwgOwor6a+RIDwga2F6dW5va29cIDsKK+itpuS4luWutiA8IGtlaXNlaWthXCA7CivmnaXlrabmnJ8gPCByYWlnYWtraVwgOwor5pig55S76KmVIDwgZWlnYWh5b3VcIDsKK+aJueWIpOiAhSA8IGhpaGFuc2hhXCA7CivploDohIggPCBtb25teWFrdVwgOwor5bmz5Y+Z5paHIDwgaGVpam9idW5cIDsKK+ikkOiJsiA8IGthc3Nob2t1XCA7CivkuInph43oi6YgPCBzYW5qdXVrdVwgOwor6a2BIDwgc2FraWdha2VcIDsKK+aooeWAo+iAhSA8IG1vaG91c2hhXCA7CivprKMgPCB0YXRlZ2FtaVwgOwor6Zu75YqbIDwgZGVucnlva3VcIDsKK+S6iOmBuOS8miA8IHlvc2Vua2FpXCA7CivmvJTlpY/kvJogPCBlbnNvdWthaVwgOwor5pWw5YiXIDwgc3V1cmV0c3VcIDsKK+aUvuWfkiA8IGhvdXJhdHN1XCA7CivlpJblgbQgPCBzb3RvZ2F3YVwgOwor6KGo6ZaAIDwgb21vdGVtb25cIDsKK+aVsOWGiiA8IHN1dXNhdHN1XCA7Civpm7LliqkgPCBrdW1vc3VrZVwgOwor6ZuR5ZqiIDwgemF0c3Vub3VcIDsKK+S4jea0u+aApyA8IGZ1a2Fzc2VpXCA7Civmv4HphZIgPCBkb2J1cm9rdVwgOwor5Zyf6LOqIDwgZG9zaGl0c3VcIDsKK+mWi+WPo+mDqCA8IGthaWtvdWJ1XCA7CivmlbXlgbQgPCB0ZWtpZ2F3YVwgOwor5Y+M6IO05qmfIDwgc291ZG91a2lcIDsKK+iopeW8gSA8IHRvdHN1YmVuXCA7Civoo4/ooaggPCB1cmFvbW90ZVwgOwor6Kqt5LqGIDwgZG9rdXJ5b3VcIDsKK+eBsOevqSA8IGhhaWZ1cnVpXCA7CivnsqXohbkgPCBrYXl1YmFyYVwgOwor6aCI5byl5bGxIDwgc2h1bWlzZW5cIDsKK+eAieihgCA8IHNoYWtldHN1XCA7Civlgb3pgKDnvaogPCBnaXpvdXphaVwgOwor5aCF54KtIDwga2F0YXp1bWlcIDsKK+e2v+W8kyA8IHdhdGF5dW1pXCA7CivppJ4gPCBoYW5hbXVrZVwgOwor5Z6C6ICzIDwgdGFyZW1pbWlcIDsKK+ipsOWVjyA8IGtpdHN1bW9uXCA7Civnp4DnlLvlrrYgPCBzaHV1Z2FrYVwgOwor5Lqk5Luj5ZOhIDwga291dGFpaW5cIDsKK+WjsuWNtCA8IGJhaWt5YWt1XCA7CivmjqHooYAgPCBzYWlrZXRzdVwgOwor57im5YiXIDwganV1cmV0c3VcIDsKK+i1pOmbu+ipsSA8IGFrYWRlbndhXCA7CivmnInmnJ/liJEgPCB5dXVraWtlaVwgOwor5Y+j6Kmx5rOVIDwga291d2Fob3VcIDsKK+aIuOS4u+aoqSA8IGtvc2h1a2VuXCA7CivntbbmnJsgPCB6ZXRzdWJvdVwgOwor5YWs5a6J5a6YIDwga291YW5rYW5cIDsKK+aSg+ayiCA8IGdla2ljaGluXCA7Civop5Lmn7EgPCBrYWt1Y2h1dVwgOwor5Zu96L6xIDwga29rdWpva3VcIDsKK+atr+eJmeeKtiA8IHNoaWdham91XCA7CivkvJ3lo7DlmaggPCBkZW5zZWlraVwgOwor6aCRIDwga2F0YWt1bmFcIDsKK+S/nemZuumHkSA8IGhva2Vua2luXCA7Civlo6vljZIgPCBzaGlzb3RzdVwgOwor5oyH5pWw6YOoIDwgc2hpc3V1YnVcIDsKK+ixquiPr+iIuSA8IGdvdWthc2VuXCA7CivkuLjmmpfoqJggPCBtYXJ1YW5raVwgOwor5Zyw6KKLIDwgamlidWt1cm9cIDsKK+WjsuWHuiA8IHVyaWRhc2hpXCA7Civnt4rlr4YgPCBraW5taXRzdVwgOwor5Z+65rqW54K5IDwga2lqdW50ZW5cIDsKK+aPuuevrSA8IHl1cmlrYWdvXCA7Civpm6rlg48gPCBzZXRzdXpvdVwgOwor57SF546JIDwga291Z3lva3VcIDsKK+exs+iUtSA8IGtvbWVndXJhXCA7Civlvozmj7TkvJogPCBrb3VlbmthaVwgOwor5r2u6aKoIDwgc2hpb2themVcIDsKK+Wei+e0mSA8IGthdGFnYW1pXCA7CivnnIzorbDkvJogPCBrZW5naWthaVwgOwor6Kiq5a6iIDwgaG91a3lha3VcIDsKK+ihjOWcqOaJgCA8IGFuemFpc2hvXCA7CivpmrwgPCBoYXlhYnVzYVwgOwor6Kix5auBIDwgaWluYXp1a2VcIDsKK+aNj+mAoCA8IG5ldHN1em91XCA7Civlj6Poqp7mlocgPCBrb3Vnb2J1blwgOwor5a+d54WZ6I2JIDwgbmV0YWJha29cIDsKK+aWreegtOWjiiA8IGRhbmhha2FpXCA7CivpmbUgPCBtaXNhc2FnaVwgOwor56OB6YmE6YmxIDwgaml0ZWtrb3VcIDsKK+WGhueCuuabvyA8IGVuZ2F3YXNlXCA7CivnnIvorbflhbUgPCBrYW5nb2hlaVwgOwor5Za25qWt6YOoIDwgZWlneW91YnVcIDsKK+mWj+enkiA8IHVydXVieW91XCA7CivkuI3mtojljJYgPCBmdXNob3VrYVwgOwor5r2k6aO+IDwganVuc2hva3VcIDsKK+aLs+mqqCA8IGdlbmtvdHN1XCA7Civntr/lr4YgPCBtZW5taXRzdVwgOwor5LiN5b6z576pIDwgZnV0b2t1Z2lcIDsKK+WcsOWQuembqiA8IGppZnVidWtpXCA7Civmv4DotoogPCBnZWtpZXRzdVwgOwor6aCI5byl5aOHIDwgc2h1bWlkYW5cIDsKK+e2v+WunyA8IG1lbmppdHN1XCA7CivkvZDluZXmtL4gPCBzYWJha3VoYVwgOwor6ZaKIDwgdHN1a2FlcnVcIDsKK+mgk+eXtOawlyA8IHRvbmNoaWtpXCA7Civlm73os4ogPCBrb2t1em9rdVwgOwor5aSa5pWw5YWaIDwgdGFzdXV0b3VcIDsKK+eCuea7hSA8IHRlbm1ldHN1XCA7Civmv4Dos54gPCBnZWtpc2hvdVwgOwor5o6h5rK55qipIDwgc2FpeXVrZW5cIDsKK+adpeS4lue0gCA8IHJhaXNlaWtpXCA7CivpmpTlo4EgPCBrYWt1aGVraVwgOwor5bGx5rC055S7IDwgc2Fuc3VpZ2FcIDsKK+aOg+mZpOS6uiA8IHNvdWppbmluXCA7CivmhI/lkbPpg6jploAgPCBpbWlidW1vblwgOwor5LiA562J5ZywIDwgaXR0b3VjaGlcIDsKK+eojuWLmeWumCA8IHplaW11a2FuXCA7CivnnIvorbfkurogPCBrYW5nb25pblwgOwor5Y2K5YiH56ymIDwgaGFua2lwcHVcIDsKK+Wcp+eAmOWZqCA8IGF0c3Vyb2tpXCA7Civnt5HlnLAgPCByeW9rdWNoaVwgOwor5Z+65rqW5rOVIDwga2lqdW5ob3VcIDsKK+evgOmbuyA8IHNldHN1ZGVuXCA7Civlj5forJvogIUgPCBqdWtvdXNoYVwgOwor5ris6Led5YSAIDwgc29ra3lvZ2lcIDsKK+eymOeymCA8IG5lYmFuZWJhXCA7Civlhrflh43mqZ8gPCByZWl0b3VraVwgOwor6Yu4IDwgbm9rb2dpcmlcIDsKK+etiei3nemboiA8IHRvdWt5b3JpXCA7Civngo7nhrEgPCBlbicnbmV0c3VcIDsKK+WbveiosSA8IGt1bmltb3RvXCA7CivkuI3lkI3mlbAgPCBmdW1laXN1dVwgOwor6ZaL55m6IDwga2FpaGF0c3VcIDsKK+ippumBi+i7oiA8IHNoaXVudGVuXCA7Civnvqnli4flhbUgPCBnaXl1dWhlaVwgOwor6Kaq55S76Z2iIDwgb3lhZ2FtZW5cIDsKK+aLkuWQpuaoqSA8IGt5b2hpa2VuXCA7Civkuoznlarnt5ogPCBuaWJhbnNlblwgOwor5Za25qWt6LK7IDwgZWlneW91aGlcIDsKK+ebuOS8vOW9oiA8IHNvdWppa2VpXCA7Civnvbnngb3msJEgPCByaXNhaW1pblwgOwor5a+E55Sf5pyoIDwgeWFkb3JpZ2lcIDsKK+imquaXjyA8IHNoaW56b2t1XCA7CivngavolqzluqsgPCBrYXlha3Vrb1wgOwor6LWk6aCt5be+IDwgYWthenVraW5cIDsKK+icpeictOW6pyA8IHRva2FnZXphXCA7CivorabloLHpn7MgPCBrZWlob3VvblwgOwor57KJ57KJIDwga29uYWdvbmFcIDsKK+Wkp+icpeictCA8IG9vdG9rYWdlXCA7Civpm4fkurogPCB5YXRvaW5pblwgOwor5pu055Sf5pyfIDwga291c2Vpa2lcIDsKK+ioreWVjyA8IHNldHN1bW9uXCA7CivlnJ/lt6booZvploAgPCBkb3phZW1vblwgOwor6Kaa5pu4IDwgb2JvZWdha2lcIDsKK+eWkeWVj+aWhyA8IGdpbW9uYnVuXCA7Civojbfngrrmm78gPCBuaWdhd2FzZVwgOwor57eo5YWlIDwgaGVuJydueXV1XCA7Civmi5Lpo58gPCBreW9zaG9rdVwgOwor6IWO6IeT54KOIDwgamluem91ZW5cIDsKK+e0r+aciCA8IHJ1aWdldHN1XCA7CivlnoLnm7QgPCBzdWljaG9rdVwgOwor5a+E6LSI6ICFIDwga2l6b3VzaGFcIDsKK+WutuW6reWGhSA8IGthdGVpbmFpXCA7CivntIXmrrsgPCBiZW5pZ2FyYVwgOwor6JC96Kqe5a62IDwgcmFrdWdva2FcIDsKK+eEoeevgOaTjSA8IG11c2Vzc291XCA7Civop5LlupcgPCBrYWRvbWlzZVwgOwor57e05LmzIDwgcmVuJydueXV1XCA7CivlrrnnlpHogIUgPCB5b3VnaXNoYVwgOwor57Gz57OgIDwga29tZW51a2FcIDsKK+WxlemWi+WbsyA8IHRlbmthaXp1XCA7Civnp4HnlJ/lhZAgPCBzaGlzZWlqaVwgOwor6Lq+IDwgc2hpdHN1a2VcIDsKK+e3j+WKmyA8IHNvdXJ5b2t1XCA7CivlpKfmiYvnrYsgPCBvb3Rlc3VqaVwgOwor57Sv5pelIDwgcnVpaml0c3VcIDsKK+WFrOWumuS+oSA8IGtvdXRlaWthXCA7CivmsJfliIblsYsgPCBraWJ1bicneWFcIDsKK+WcqOiBtyA8IHphaXNob2t1XCA7Civln4vmsqEgPCBtYWlib3RzdVwgOwor5LiA562J5YW1IDwgaXR0b3VoZWlcIDsKK+S4i+awtOeuoSA8IGdlc3Vpa2FuXCA7CivmlbTmlbDmr5QgPCBzZWlzdXVoaVwgOwor57KY552AIDwgbmVuY2hha3VcIDsKK+eznua6nCA8IGt1c29kYW1lXCA7Civnr4npgKAgPCBjaGlrdXpvdVwgOwor56S+5YuZ5omAIDwgc2hhbXVzaG9cIDsKK+inpuWqkiA8IHNob2t1YmFpXCA7Civpq5jlsaTpm7IgPCBrb3Vzb3V1blwgOwor5bi45aWX6KqeIDwgam91dG91Z29cIDsKK+iIueWkluapnyA8IHNlbmdhaWtpXCA7CivpmorliJcgPCB0YWlyZXRzdVwgOwor5Y+M5pqX6LuKIDwgc291YW5zaGFcIDsKK+e0ouaVtSA8IHNha3V0ZWtpXCA7Civml4XlrqLmqZ8gPCByeW9rYWtraVwgOwor5aKX5Yi3IDwgem91c2F0c3VcIDsKK+e3keS+vyA8IHJ5b2t1YmVuXCA7Civmva7otrMgPCBzaGlvYXNoaVwgOwor6Zay5q20IDwgZXRzdXJla2lcIDsKK+mBi+WWtuiAhSA8IHVuJydlaXNoYVwgOwor5oGj5oSP55qEIDwgc2hpaXRla2lcIDsKK+e0jeacrSA8IG5vdXNhdHN1XCA7CivnoLTlpKnojZIgPCBoYXRlbmtvdVwgOwor54ax5biv5aScIDwgbmV0dGFpeWFcIDsKK+mBlOaIkOW6piA8IHRhc3NlaWRvXCA7CivlpJrop5LlvaIgPCB0YWtha2tlaVwgOwor5oyv6KKWIDwgZnVyaXNvZGVcIDsKK+ezn+axgSA8IGthc3VqaXJ1XCA7CivlhaXkvJrmqKkgPCBpcmlhaWtlblwgOwor5Y2D6JGJ55yMIDwgY2hpYmFrZW5cIDsKK+S6lOaciOmbqCA8IHNhbWlkYXJlXCA7CivmupbkvJrlk6EgPCBqdW5rYWlpblwgOwor6Ku6IDwga290b3dhemFcIDsKK+e0hOadnyA8IHlha3Vzb2t1XCA7CivmsLTmm5zml6UgPCBzdWl5b3ViaVwgOwor5riH5rC05pyfIDwga2Fzc3Vpa2lcIDsKK+aKkemssSA8IHlva3V1dHN1XCA7Civnq7bppqzloLQgPCBrZWliYWpvdVwgOwor5oyH6LKrIDwgeXViaW51a2lcIDsKK+mzqeWwj+WxiyA8IGhhdG9nb3lhXCA7Civmv4Doh60gPCBnZWtpc2h1dVwgOwor5LiN5q2j6KaWIDwgZnVzZWlzaGlcIDsKK+imi+aJgCA8IG1pZG9rb3JvXCA7Civlm5vljYrmnJ8gPCBzaGloYW5raVwgOwor57KX546HIDwgYXJhcml0c3VcIDsKK+S9nOeUqOeCuSA8IHNheW91dGVuXCA7CivpgYrlnJLlnLAgPCB5dXVlbmNoaVwgOwor6LuM6YGT6Ii5IDwga2lkb3VzZW5cIDsKK+W8geeQhuWjqyA8IGJlbnJpc2hpXCA7CivntYLluZUgPCBzaHV1bWFrdVwgOwor6KWy5pKDIDwgc2h1dWdla2lcIDsKK+m6u+mFlOmKgyA8IG1hc3VpanV1XCA7CivopIwgPCBmdW5kb3NoaVwgOwor5pyo6J665a2QIDwgbW9rdW5lamlcIDsKK+e1kOWxgCA8IGtla2t5b2t1XCA7CivmranmlbDoqIggPCBob3N1dWtlaVwgOwor5Li76aGM5q2MIDwgc2h1ZGFpa2FcIDsKK+eti+mqqCA8IHN1amlib25lXCA7CivmraPkvJrlk6EgPCBzZWlrYWlpblwgOwor5b6u5YiG5rOVIDwgYmlidW5ob3VcIDsKK+WLleWToeS7pCA8IGRvdWlucmVpXCA7CivoprPlrqIgPCBrYW5reWFrdVwgOwor5o6l552AIDwgc2V0Y2hha3VcIDsKK+mdkueTpuWPsCA8IHNlaWdhZGFpXCA7CivpmaPliJcgPCBqaW5yZXRzdVwgOwor5rih6Ii55aC0IDwgdG9zZW5qb3VcIDsKK+Wcn+ethiA8IHRzdWt1c2hpXCA7CivnspvnhLYgPCBzaHVrdXplblwgOwor5oSP6K2Y5LiLIDwgaXNoaWtpa2FcIDsKK+e0sOW8lSA8IGhvc29iaWtpXCA7CivopqrlsYAgPCBveWFreW9rdVwgOwor5L+d6K235Zu9IDwgaG9nb2tva3VcIDsKK+WQjOaAp+aEmyA8IGRvdXNlaWFpXCA7CivmsrnlnKflmaggPCB5dWF0c3VraVwgOwor54eV6Z2S5ouzIDwgZW5zZWlrZW5cIDsKK+W5vOW5tOacnyA8IHlvdW5lbmtpXCA7Civosaroj6/niYggPCBnb3VrYWJhblwgOwor6KGo6Iq4IDwgb21vdGVnZWlcIDsKK+WMu+WOn+eXhSA8IGlnZW5ieW91XCA7Civpm7voqbHnt5ogPCBkZW53YXNlblwgOwor5Ya35YeN5bqrIDwgcmVpdG91a29cIDsKK+mChOS7mOeojiA8IGthbnB1emVpXCA7CivlvIHorbfogIUgPCBiZW5nb3NoYVwgOwor6KOF552AIDwgc291Y2hha3VcIDsKK+mbu+ipsee2siA8IGRlbndhbW91XCA7CivnmbvlsbHpgZMgPCB0b3phbmRvdVwgOwor6JukIDwgaGFtYWd1cmlcIDsKK+a/g+e4riA8IG5vdXNodWt1XCA7CivmhI/lkbPljp/nkIYgPCBpbWlnZW5yaVwgOwor5o+Q54GvIDwgY2hvdWNoaW5cIDsKK+mYv+aIv+mzpSA8IGFob3Vkb3JpXCA7CivkuojlgpnnmoQgPCB5b2JpdGVraVwgOwor6KOP55S6IDwgdXJhbWFjaGlcIDsKK+Wcn+elniA8IHVjaGlnYW1pXCA7CivmibbliqnmlpkgPCBmdWpvcnlvdVwgOwor5aCA5bedIDwgaG9yaWthd2FcIDsKK+eMv+efpeaBtSA8IHNhcnVkamllXCA7CivlnLDolLXpoZQgPCBqaXpvdWdhb1wgOwor57W25ZG9IDwgemV0c3VtZWlcIDsKK+mZi+WKoyA8IHJvdXJldHN1XCA7CivkvZzmpa3loLQgPCBzYWd5b3ViYVwgOwor562G6aCGIDwgaGl0c3VqdW5cIDsKK+epuuebuOWgtCA8IGt1dXNvdWJhXCA7CivoorTnnYAgPCBoYWthbWFnaVwgOwor5Zu957GNIDwga29rdXNla2lcIDsKK+aMveiCiSA8IGhpa2luaWt1XCA7Civmt7flkIjoqp4gPCBrb25nb3Vnb1wgOwor5aal5Y2U5qGIIDwgZGFreW91YW5cIDsKK+e0sOWvhiA8IHNhaW1pdHN1XCA7CivplpPmn4QgPCBhaWRhZ2FyYVwgOwor54Sh5oq15oqXIDwgbXV0ZWlrb3VcIDsKK+aSg+WinCA8IGdla2l0c3VpXCA7CivokYnnr4DngrkgPCBoYXNldHRlblwgOwor5LuW5YuV6KmeIDwgdGFkb3VzaGlcIDsKK+aYoOeUu+eLgiA8IGVpZ2FreW91XCA7Civlm73nrZYgPCBrb2t1c2FrdVwgOwor5rOV6I+v57WMIDwgaG9rZWt5b3VcIDsKK+ethumZoyA8IGhpdHN1amluXCA7CivphaLmlpnnkIYgPCBzdXJ5b3VyaVwgOwor5pS/5bqc57GzIDwgc2VpZnVtYWlcIDsKK+e1kOWboyA8IGtldHN1ZGFuXCA7CivonqLpm6ogPCBrZWlzZXRzdVwgOwor5aW957WQ5p6cIDwga291a2Vra2FcIDsKK+a0u+aAp+WMliA8IGthc3NlaWthXCA7CivliqnoqIDogIUgPCBqb2dvbnNoYVwgOwor6KOP5Y2D5a62IDwgdXJhc2Vua2VcIDsKK+iIjuWIqeWhlCA8IHNoYXJpdG91XCA7CivonbbprqsgPCBjaG91emFtZVwgOwor5pCm5omLIDwga2FyYW1ldGVcIDsKK+S4jeelneWEgCA8IGJ1c2h1dWdpXCA7Civlm6PntZAgPCBkYW5rZXRzdVwgOwor6YGO5rih55qEIDwga2F0b3Rla2lcIDsKK+mZtuiKuOWutiA8IHRvdWdlaWthXCA7CivntJnlsZEgPCBrYW1pa3V6dVwgOwor5L2c5qWt5ZOhIDwgc2FneW91aW5cIDsKK+ihgOiJsiA8IGtlc3Nob2t1XCA7CivlpJrmkanlt50gPCB0YW1hZ2F3YVwgOwor5b6u6Ium56yRIDwgYmlrdXNob3VcIDsKK+asuueenuiAhSA8IGdpbWFuc2hhXCA7CivploDmnK0gPCBtb25zYXRzdVwgOwor56uL5rOV5bqcIDwgcmlwcG91ZnVcIDsKK+iiq+eBveWcsCA8IGhpc2FpY2hpXCA7CivnjJvmiZPogIUgPCBtb3VkYXNoYVwgOwor57W25YCrIDwgemV0c3VyaW5cIDsKK+Wei+aeoCA8IGthdGF3YWt1XCA7CivkuI3npaXkuosgPCBmdXNob3VqaVwgOwor57WQ5p6c6KuWIDwga2Vra2Fyb25cIDsKK+mXh+W4giA8IHlhbWlpY2hpXCA7Civono3pm6ogPCB5dXVzZXRzdVwgOwor57CS56uLIDwgc2Fucml0c3VcIDsKK+S4i+awtOa6nSA8IGdlc3Vpa291XCA7CivmsLTpoqjlkYIgPCBtaXp1YnVyb1wgOwor5pa55L2N6KeSIDwgaG91aWtha3VcIDsKK+mYsuWhteedgCA8IGJvdWppbmdpXCA7Civml6Loppbmg7MgPCBraXNoaWthblwgOwor5Zyw54axIDwgY2hpbmV0c3VcIDsKK+iBviA8IG1pbWlzaGlpXCA7Civlj6Poqp7kvZMgPCBrb3Vnb3RhaVwgOwor5bm56YOo5LyaIDwga2FuYnVrYWlcIDsKK+S6pOmam+iyuyA8IGtvdXNhaWhpXCA7CivnrYvph5EgPCBzdWppZ2FuZVwgOwor5q2m5aOr6YGTIDwgYnVzaGlkb3VcIDsKK+mtlOaWuemZoyA8IG1haG91amluXCA7CivnrpfooZMgPCBzYW5qdXRzdVwgOwor6JGh6JCE6YWSIDwgYnVkb3VzaHVcIDsKK+mVt+aXhSA8IG5hZ2F0YWJpXCA7Civlj4zlrZDluqcgPCBmdXRhZ296YVwgOwor6ISx5rC05qmfIDwgZGFzc3Vpa2lcIDsKK+eBq+WPo+WOnyA8IGtha291Z2VuXCA7CivkvY7mrKHlhYMgPCB0ZWlqaWdlblwgOwor6Ziy5Lq6IDwgc2FraW1vcmlcIDsKK+WOs+WGrOacnyA8IGdlbnRvdWtpXCA7CivkuI3pgIDou6IgPCBmdXRhaXRlblwgOwor6J+76JyCIDwgYXJpYmFjaGlcIDsKK+aJi+Wcn+eUoyA8IHRlbWl5YWdlXCA7CivljbHpmbroppYgPCBraWtlbnNoaVwgOwor6KGd56uLIDwgdHN1aXRhdGVcIDsKK+iInui4iuWboyA8IGJ1dG91ZGFuXCA7CivkuI3msbrlrpogPCBmdWtldHRlaVwgOwor5Zue5biw57eaIDwga2Fpa2lzZW5cIDsKK+e2tCA8IHRzdWR6dXJpXCA7CivljLrmsJHnqI4gPCBrdW1pbnplaVwgOwor5L2V55Wq55uuIDwgbmFuYmFubWVcIDsKK+ewoeeVpSA8IGthbnJ5YWt1XCA7CivohLHmsJfmsLQgPCBkYWtraXN1aVwgOwor5YiR5YuZ5omAIDwga2VpbXVzaG9cIDsKK+WBpeWVluWutiA8IGtlbnRhbmthXCA7CivnoLTlo4rogIUgPCBoYWthaXNoYVwgOwor6Ieq5oSP6K2YIDwgamlpc2hpa2lcIDsKK+S4g+WNgei3ryA8IG5hbmFzb2ppXCA7CivoprPoh6rlnKggPCBrYW5qaXphaVwgOwor6YGg5b+D5qmfIDwgZW5zaGlua2lcIDsKK+aNqOeMqyA8IHN1dGVuZWtvXCA7CivmnLHljbDoiLkgPCBzaHVpbnNlblwgOwor5rSX5r+v5qmfIDwgc2VudGFra2lcIDsKK+S4jeWLleeUoyA8IGZ1ZG91c2FuXCA7Civon4DosLcgPCBrb21la2FtaVwgOwor5Zm05rCX5a2UIDwgZnVua2lrb3VcIDsKK+ifr+iZqyA8IGd5b3VjaHV1XCA7CivonablpLfmnb4gPCBlem9tYXRzdVwgOwor6ay85YiR5LqLIDwgb25pa2VpamlcIDsKK+aEn+WYhuespiA8IGthbnRhbmZ1XCA7Civms5XljLvlraYgPCBob3VpZ2FrdVwgOwor57KJ5pyrIDwgZnVubWF0c3VcIDsKK+evgSA8IHRha2FtdXJhXCA7Civln5LlpJYgPCByYWNoaWdhaVwgOwor6bOl5bCP5bGLIDwgdG9yaWdveWFcIDsKK+WdquaVsCA8IHRzdWJvc3V1XCA7CivnrY0gPCB0YWtlbm9rb1wgOwor6Ieq5Za25qWtIDwgamllaWd5b3VcIDsKK+eznuWwvyA8IGZ1bicnbnlvdVwgOwor6KGo55m9IDwgaHlvdWhha3VcIDsKK+eyvumMrOaJgCA8IHNlaXJlbmpvXCA7Civlm5vnmb4gPCB5b25oeWFrdVwgOwor57Sw5YilIDwgc2FpYmV0c3VcIDsKK+aJi+mPoSA8IHRla2FnYW1pXCA7Civpu4Toj5bokrIgPCBraXNob3VidVwgOwor5Lqc5aSn6Zm4IDwgYXRhaXJpa3VcIDsKK+WCmeiAg+ashCA8IGJpa291cmFuXCA7CivooI/ogqEgPCBnYW5pbWF0YVwgOwor5aCA5YmyIDwgaG9yaXdhcmlcIDsKK+eJh+aJi+mWkyA8IGthdGF0ZW1hXCA7CivkurrplpPlkbMgPCBuaW5nZW5taVwgOwor6Zai5a6IIDwgc2VraW1vcmlcIDsKK+eEoeaEj+itmCA8IG11aXNoaWtpXCA7CivmipXos4flrrYgPCB0b3VzaGlrYVwgOwor5LiL5rC05p2/IDwgZ2VzdWlpdGFcIDsKK+ihgOeojiA8IGtldHN1emVpXCA7CivppqzouYTlvaIgPCBiYXRlaWtlaVwgOwor5YWo6Z+z56ymIDwgemVuJydvbnB1XCA7Civln7fli5kgPCBzaGl0c3VtdVwgOwor5o2V54mpIDwgdG9yaW1vbm9cIDsKK+aIkOmmmSA8IG5hcmlreW91XCA7Civpq5jovJ3luqYgPCBrb3VraWRvdVwgOwor57Gz5p2+IDwgYmVpbWF0c3VcIDsKK+evgOezuCA8IGZ1c2hpaXRvXCA7CivkuI3lj6/kvrUgPCBmdWthc2hpblwgOwor6buE5Y+j5YWQIDwga291a291amlcIDsKK+WIhuenkeS8miA8IGJ1bmtha2FpXCA7Civnr4DnsbMgPCBzZXRzdW1haVwgOwor6JyY6Jub6IacIDwga3Vtb21ha3VcIDsKK+S6i+alreWutiA8IGppZ3lvdWthXCA7Civmib/oq74gPCBzaG91ZGFrdVwgOwor5YWl5Lya5ZywIDwgaXJpYWljaGlcIDsKK+ethuirhyA8IGhpdHN1ZGFuXCA7Civlm7Pmm7jppKggPCB0b3Nob2thblwgOwor6ZaL5bGAIDwga2Fpa3lva3VcIDsKK+ijveeJiOaJgCA8IHNlaWhhbmpvXCA7CivmnbHlpKflr7ogPCB0b3VkYWlqaVwgOwor6Y6M6aaWIDwga2FtYWt1YmlcIDsKK+eri+mjnyA8IHJpc3Nob2t1XCA7CivkuK3kvY3mlbAgPCBjaHV1aXN1dVwgOwor6KGG55uuIDwgc2h1dW1va3VcIDsKK+ethuinpiA8IGhpc3Nob2t1XCA7Civlj4Los4DogIUgPCBzYW5nYXNoYVwgOwor5om55YeG5pu4IDwgaGlqdW5zaG9cIDsKK+WeguW5lSA8IHRhcmVtYWt1XCA7Civnq4vpoZggPCByaXRzdWdhblwgOwor5pGC5YuVIDwgc2V0c3Vkb3VcIDsKK+iInui4j+S8miA8IGJ1dG91a2FpXCA7Civnsr7lr4YgPCBzZWltaXRzdVwgOwor55CG5YyW5a2mIDwgcmlrYWdha3VcIDsKK+evgOeptCA8IGZ1c2hpYW5hXCA7CivnmbvlsbHogIUgPCB0b3phbnNoYVwgOwor5Yqp5pWZ5o6IIDwgam9reW91anVcIDsKK+WIkeWLmeWumCA8IGtlaW11a2FuXCA7CivnmbggPCBtaXp1bm90b1wgOwor5pS/5YuZ5a6YIDwgc2VpbXVrYW5cIDsKK+evgOeojiA8IHNldHN1emVpXCA7CivmraPnvqnmhJ8gPCBzZWlnaWthblwgOwor57O45Y+jIDwgaXRvZ3VjaGlcIDsKK+WMu+iWrOWTgSA8IGl5YWt1aGluXCA7CivljJbnsqfnnYAgPCBrZXNob3VnaVwgOwor5omL6LuKIDwgdGVndXJ1bWFcIDsKK+eBq+mBlOejqCA8IGhpZGFydW1hXCA7CivplbflsLsgPCBuYWdhamlyaVwgOwor5r+B5rWBIDwgZGFrdXJ5dXVcIDsKK+e0oOS6uiA8IHNoaXJvdXRvXCA7CivkuI3lvrnlupUgPCBmdXRldHRlaVwgOwor5r+A5rWBIDwgZ2VraXJ5dXVcIDsKK+Wft+S6iyA8IHNoaXRzdWppXCA7CivnlZnlrojlroUgPCBydXN1dGFrdVwgOwor5omA6L2EIDwgc2hva2F0c3VcIDsKK+aLkue1tiA8IGt5b3pldHN1XCA7Civlh6HoqablkIggPCBib25zaGlhaVwgOwor5LiH5q2p6KiIIDwgbWFucG9rZWlcIDsKK+S6jOaemuiynSA8IG5pbWFpZ2FpXCA7CivmjpLml6UgPCBoYWluaWNoaVwgOwor55So5rC06LevIDwgeW91c3Vpcm9cIDsKK+ezu+WIlyA8IGtlaXJldHN1XCA7CivoobDmu4UgPCBzdWltZXRzdVwgOwor5pmC6KiI5bqXIDwgdG9rZWl0ZW5cIDsKK+WbuuWumuWtkCA8IGtvdGVpc2hpXCA7CivmnInnhZnngq0gPCB5dXVlbnRhblwgOwor6KOP6ay86ZaAIDwgdXJha2ltb25cIDsKK+aOoeaOmCA8IHNhaWt1dHN1XCA7CivlvqHmr43mp5ggPCBva2Fhc2FtYVwgOwor5Z+S5YaFIDwgcmFjaGluYWlcIDsKK+mBk+elluelniA8IGRvdXNvamluXCA7CivlnKjml6UgPCB6YWluaWNoaVwgOwor5ZCI5rOV5YyWIDwgZ291aG91a2FcIDsKK+a8geiJsiA8IGd5b3Nob2t1XCA7Civmi5nnrYYgPCBzZXBwaXRzdVwgOwor57SU5LiAIDwganVuJydpdHN1XCA7Civpppbpg73lnI8gPCBzaHV0b2tlblwgOwor5LiJ5q+b54yrIDwgbWlrZW5la29cIDsKK+aOouefpeapnyA8IHRhbmNoaWtpXCA7CivmrbvngavlsbEgPCBzaGlrYXphblwgOwor6Imy5qih5qeYIDwgaXJvbW95b3VcIDsKK+ezuOmbu+ipsSA8IGl0b2RlbndhXCA7Civph43lpKfljJYgPCBqdXVkYWlrYVwgOwor5pCs5YWlIDwgaGFuJydueXV1XCA7CivplqLlj5YgPCBzZWtpdG9yaVwgOwor5LiJ5q6155uuIDwgc2FuZGFubWVcIDsKK+elreWjh+W6pyA8IHNhaWRhbnphXCA7CivmkL7kubMgPCBzYWt1bnl1dVwgOwor54OP5bi95a2Q5ZCNIDwgZWJvc2hpbmFcIDsKK+a8q+ethiA8IG1hbnBpdHN1XCA7CivlhYTlvJ/lrZAgPCBhbmlkZXNoaVwgOwor6YGL5ZG96KuWIDwgdW5tZWlyb25cIDsKK+aZrumAmuenkSA8IGZ1dHN1dWthXCA7CivkuIrlj6Tlj7IgPCBqb3Vrb3NoaVwgOwor6aCQ6LKv6YeRIDwgeW9jaG9raW5cIDsKK+aKnOe+pCA8IGJhdHN1Z3VuXCA7CivlpqXlvZPmgKcgPCBkYXRvdXNlaVwgOwor5Zu95p+EIDwga3VuaWdhcmFcIDsKK+iRoeiQhOiJsiA8IGJ1ZG91aXJvXCA7CivmjpLmsLTot68gPCBoYWlzdWlyb1wgOwor5qiq5pat6Z2iIDwgb3VkYW5tZW5cIDsKK+aVtOe1jOapnyA8IHNlaWtlaWtpXCA7CivmiYvooosgPCB0ZWJ1a3Vyb1wgOwor6Zaj5YOaIDwga2FrdXJ5b3VcIDsKK+ewoeS9k+WtlyA8IGthbnRhaWppXCA7CivpoqjpgqrmsJflkbMgPCBrYXplZ2ltaVwgOwor5Y+v5rq254mHIDwga2F5b3VoZW5cIDsKK+WEgOS7l+WFtSA8IGdpam91aGVpXCA7CivpmbjlsYvmoLkgPCByb2t1eWFuZVwgOwor57Gk5byVIDwga3VqaWJpa2lcIDsKK+W6p+irh+S8miA8IHphZGFua2FpXCA7CivluIbliY3oiLkgPCBob21hZXNlblwgOwor5oyH6Kmx5rOVIDwgc2hpd2Fob3VcIDsKK+WBvemAoOWTgSA8IGdpem91aGluXCA7CivnrYvogokgPCBraW4nJ25pa3VcIDsKK+S4luW4r+aVsCA8IHNldGFpc3V1XCA7CivkuIDlkajmnJ8gPCBpc3NodXVraVwgOwor5Lit6ICz54KOIDwgY2h1dWppZW5cIDsKK+eqk+mamyA8IG1hZG9naXdhXCA7Civlr4zlo6vpgJogPCBmdWppdHN1dVwgOwor5a625bGL56iOIDwga2Fva3V6ZWlcIDsKK+mWk+WFqyA8IGthbnBhY2hpXCA7CivnrLnoiJ8gPCBzYXNhYnVuZVwgOwor5qmf5YuV6ZqKIDwga2lkb3V0YWlcIDsKK+mYsueBq+e3miA8IGJvdWthc2VuXCA7CivmlZnorbfpmaIgPCBreW91Z29pblwgOwor5o6l5bK4IDwgc2V0c3VnYW5cIDsKK+aIr+iogCA8IHRhd2Fnb3RvXCA7CivonrrlrZDlsbEgPCBuZWppeWFtYVwgOwor5Lmz5YWQ6ZmiIDwgbnl1dWppaW5cIDsKK+ihgOa2siA8IGtldHN1ZWtpXCA7CivohZXmmYLoqIggPCB1ZGVkb2tlaVwgOwor6KCP546JIDwga2FuaXRhbWFcIDsKK+ihgOa2mSA8IGtldHN1cnVpXCA7CivmiLjooosgPCB0b2J1a3Vyb1wgOwor5pyx5Y2w54q2IDwgc2h1aW5qb3VcIDsKK+aOqOWvnyA8IHN1aXNhdHN1XCA7CivnnJ/mhI/nvqkgPCBzaGluJydpZ2lcIDsKK+mBiuaKgOWgtCA8IHl1dWdpam91XCA7Civli6flt6XloLQgPCBrYW5rb3ViYVwgOwor5o6l5a6iIDwgc2Vra3lha3VcIDsKK+S4ieWGoOmmrCA8IHNhbmthbmJhXCA7Civll4XoppogPCBreXV1a2FrdVwgOwor5aSp5omN5YWQIDwgdGVuc2FpamlcIDsKK+mAhuiMguacqCA8IHNha2Ftb2dpXCA7Civmipjnr4AgPCBvcmlmdXNoaVwgOwor6KOc5YWF5YW1IDwgaG9qdXVoZWlcIDsKK+W7uuitsOiAhSA8IGtlbmdpc2hhXCA7CivluLjlpJznga8gPCBqb3V5YXRvdVwgOwor5r2k5ruRIDwganVua2F0c3VcIDsKK+mOjOi2syA8IGthbWFhc2hpXCA7CivojYnlsYvmoLkgPCBrdXNheWFuZVwgOwor5r2u5rWBIDwgY2hvdXJ5dXVcIDsKK+Wbm+aciCA8IHNoaWdhdHN1XCA7CivlmLLnrJEgPCBjaG91c2hvdVwgOwor5qip5aiB6ICFIDwga2VuJydpc2hhXCA7Civnqq7ov70gPCBreXV1dHN1aVwgOwor56qu6L+rIDwga3l1dWhha3VcIDsKK+aPoeWKmyA8IGFrdXJ5b2t1XCA7CivnoJXlsqnmqZ8gPCBzYWlnYW5raVwgOwor6JGh6JCE57OWIDwgYnVkb3V0b3VcIDsKK+eZveS6nOmkqCA8IGhha3Vha2FuXCA7Civmt7flkozmgKcgPCBrb253YXNlaVwgOwor5bem6aGn5Y+z55yEIDwgc2Frb3ViZW5cIDsKK+WMlueyp+auvyA8IGtld2FpZGVuXCA7CivpjZvpiYQgPCB0YW50ZXRzdVwgOwor5o+a5YqbIDwgeW91cnlva3VcIDsKK+WNg+WIhuavlCA8IHNlbmJ1bmhpXCA7Civnq7nolq4gPCB0YWtleWFidVwgOwor5omN6ImyIDwgc2Fpc2hva3VcIDsKK+aZguioiOWPsCA8IHRva2VpZGFpXCA7CivlkIzmr43lp4kgPCBkb3Vib3NoaVwgOwor56uL6KuWIDwgcml0c3Vyb25cIDsKK+exs+WdqiA8IGJlaXRzdWJvXCA7CivmpaAgPCBrdXN1bm9raVwgOwor562G566xIDwgZnVkZWJha29cIDsKK+a4rOmHjyA8IHNva3VyeW91XCA7CivnrYnnrYkgPCBuYWRvbmFkb1wgOwor56uL6KiAIDwgcml0c3VnZW5cIDsKK+m7hOawtOS7mSA8IGtpc3Vpc2VuXCA7CivnspvlhZogPCBzaHVrdXRvdVwgOwor5byx5ZGz5ZmMIDwgeW93YW1pc29cIDsKK+ijuOWHuiA8IHJhc2h1dHN1XCA7CivpjYvph5wgPCBuYWJla2FtYVwgOwor55WZ5a6I5LitIDwgcnVzdWNodXVcIDsKK+ihneaSgyA8IHNob3VnZWtpXCA7Civmt7fpm5EgPCBrb256YXRzdVwgOwor5bCP5YWQ56eRIDwgc2hvdW5pa2FcIDsKK+mVt+S5hSA8IGNob3VreXV1XCA7CivkuInljYHmiLggPCBzYW5qaWtrb1wgOwor6Zu76Zui5bGkIDwgZGVucmlzb3VcIDsKK+mrmOi4j+a0viA8IGtvdXRvdWhhXCA7CivnkIblt6Xns7sgPCByaWtvdWtlaVwgOwor54Sh56S86KybIDwgYnVyZWlrb3VcIDsKK+WcsOWigyA8IGRqaXpha2FpXCA7CivmjL/mipwgPCBzb3ViYXRzdVwgOwor5Luu5ZCN5paH5a2XIDwga2FuYW1vamlcIDsKK+S4jeWNgeWIhiA8IGZ1anV1YnVuXCA7Civlk7rkubPmnJ8gPCBob255dXVraVwgOwor55+z5rK5546LIDwgc2VraXl1b3VcIDsKK+iho+aJiyA8IGtvcm9tb2RlXCA7CivlvqHliKnnm4ogPCBnb3JpeWFrdVwgOwor5oqV5pu45a62IDwgdG91c2hva2FcIDsKK+mBuueVmeWTgSA8IGlyeXV1aGluXCA7Civom7jotrMgPCB0YWtvYXNoaVwgOwor6YG65Lyd55eFIDwgaWRlbmJ5b3VcIDsKK+aPmueCreapnyA8IHlvdXRhbmtpXCA7CivpnZ7lpInmj5sgPCBoaWhlbmthblwgOwor5pS55q2j5qGIIDwga2Fpc2VpYW5cIDsKK+mrmOmrmOW6piA8IGtvdWtvdWRvXCA7CivntYznlKPlqaYgPCBrZWlzYW5wdVwgOwor5o6l5ZCIIDwgc2V0c3Vnb3VcIDsKK+ijj+WPoyA8IHVyYWd1Y2hpXCA7CivmipHnlZkgPCB5b2t1cnl1dVwgOwor6LWk6KO46KO4IDwgc2VraXJhcmFcIDsKK+a3t+WQiOapnyA8IGtvbmdvdWtpXCA7Civmva7mmYIgPCBzaGlvZG9raVwgOwor5a+E6LSI5ZOBIDwga2l6b3VoaW5cIDsKK+a/g+WvhiA8IG5vdW1pdHN1XCA7CivlpJzooYzmgKcgPCB5YWtvdXNlaVwgOwor5YmN6KGb5rS+IDwgemVuJydlaWhhXCA7CivmnKrmsbrnrpcgPCBtaWtlc3NhblwgOwor5Zu95a2mIDwga29rdWdha3VcIDsKK+a8oOa8oCA8IGJha3ViYWt1XCA7Civmj4nkuosgPCBtb21lZ290b1wgOwor5Li76KaB6YOoIDwgc2h1eW91YnVcIDsKK+mBv+WvkuWcsCA8IGhpa2FuY2hpXCA7CivmsLTlnqLpm6IgPCBtaXp1Z29yaVwgOwor5aeU6KiX55SfIDwgaXRha3VzZWlcIDsKK+itpuWgseapnyA8IGtlaWhvdWtpXCA7CivmuKnnvajms5UgPCBvbicnYW5wb3VcIDsKK+WvvuW/nOeJiCA8IHRhaW91YmFuXCA7CivlloflmJvmlZkgPCByYW1ha3lvdVwgOwor6YG655WZ5YiGIDwgaXJ5dXVidW5cIDsKK+aYhuW4g+iMtiA8IGtvbmJ1Y2hhXCA7CivpvLvpq60gPCBoYW5haGlnZVwgOwor5LmX566X5ZmoIDwgam91emFua2lcIDsKK+eri+iRtSA8IHRhY2hpYW9pXCA7CivnsonkubMgPCBmdW4nJ255dXVcIDsKK+m8u+mrmCA8IGhhbmF0YWthXCA7CivokazlhIDnpL4gPCBzb3VnaXNoYVwgOwor5Yik5qSc5LqLIDwgaGFua2VuamlcIDsKK+WWgOihgCA8IGtha2tldHN1XCA7CivnibnnlbDngrkgPCB0b2t1aXRlblwgOwor5L+d6Zm65bGLIDwgaG9rZW4nJ3lhXCA7CivmipXniakgPCBuYWdlbW9ub1wgOwor5Zyw5Y21IDwgaml0YW1hZ29cIDsKK+S4jemDveWQiCA8IGZ1dHN1Z291XCA7CivmiYDmjIHph5EgPCBzaG9qaWtpblwgOwor6JmO5rKz6LGaIDwgdG9yYWZ1Z3VcIDsKK+aKgOiDveiAhSA8IGdpbm91c2hhXCA7CivmipforbDmlocgPCBrb3VnaWJ1blwgOwor6KKW5Z6jIDwgc29kZWdha2lcIDsKK+aXouijveWTgSA8IGtpc2VpaGluXCA7Civln7rnpI7nmoQgPCBraXNvdGVraVwgOwor5rex6YWSIDwgZnVrYXpha2VcIDsKK+iynee0sOW3pSA8IGthaXphaWt1XCA7Civpu5Lnmb7lkIggPCBrdXJveXVyaVwgOwor56m66LGGIDwgc29yYW1hbWVcIDsKK+iMtuiPk+WtkCA8IGNoYWdhc2hpXCA7CivpvLvpoqggPCBoYW5ha2F6ZVwgOwor57Gz5LuPIDwgYmVpZnV0c3VcIDsKK+WQpuWumuaWhyA8IGhpdGVpYnVuXCA7CivmjZXlpLEgPCBob3NoaXRzdVwgOwor5oqE54mpIDwgc2hvdW1vbm9cIDsKK+erueewoSA8IGNoaWt1a2FuXCA7CivmirnmrrogPCBtYXNzYXRzdVwgOwor5byB6K235aOrIDwgYmVuZ29zaGlcIDsKK+aJi+ijj+WJoyA8IHNodXJpa2VuXCA7CivpioDmmYLoqIggPCBnaW5kb2tlaVwgOwor5LiJ6YCj56ymIDwgc2FucmVucHVcIDsKK+ijj+S7mCA8IHVyYWR6dWtlXCA7CivllJDpi6QgPCBrYXJhc3VraVwgOwor5Zyn5Ye6IDwgYXNzaHV0c3VcIDsKK+eri+iEmiA8IHJpa2t5YWt1XCA7Civnq7nnroYgPCB0YWtlYmVyYVwgOwor5Zu95Zu9IDwga3VuaWd1bmlcIDsKK+ewkuWlqiA8IHNhbmRhdHN1XCA7CivlnYfkuIAgPCBraW4nJ2l0c3VcIDsKK+a8j+azhCA8IHJvdXNldHN1XCA7CivpvLvpnakgPCBoYW5hZ2F3YVwgOwor56m66KqsIDwga3V1c2V0c3VcIDsKK+Wwj+WIh+WtkCA8IGtva2lyaWtvXCA7CivmkK3kuZflk6EgPCB0b3Vqb3VpblwgOwor5LiW55WM6KazIDwgc2VrYWlrYW5cIDsKK+Wcp+WFpSA8IGF0c3VueXV1XCA7CivmjJnlvI8gPCBreW9zaGlraVwgOwor56m66KiAIDwgc29yYWdvdG9cIDsKK+WUkOmHkSA8IGthcmFrYW5lXCA7CivlgInluqvnlaogPCBzb3Vrb2JhblwgOwor6JmO6ayaIDwgdG9yYWhpZ2VcIDsKK+a6tueZuiA8IHlvdWhhdHN1XCA7Civmu7Tmu7QgPCB0ZWtpdGVraVwgOwor5ryC5rWBIDwgaHlvdXJ5dXVcIDsKK+mPkeefoiA8IGthYnVyYXlhXCA7Civmlofnp5Hns7sgPCBidW5rYWtlaVwgOwor6IO95paH5a62IDwgbm91YnVua2FcIDsKK+W8geitt+WboyA8IGJlbmdvZGFuXCA7Civlt6sgPCBrYW4nJ25hZ2lcIDsKK+mKgOS4lueVjCA8IGdpbnNla2FpXCA7Civmi5nmlocgPCBzZXRzdWJ1blwgOwor6J6i54GrIDwgaG90YXJ1YmlcIDsKK+WMiOeJmeWIqSA8IGhhbmdhcmlpXCA7CivmiY3nlaUgPCBzYWlyeWFrdVwgOwor6YqA6bygIDwgZ2luJyduZXp1XCA7CivnjL/nnJ/kvLwgPCBzYXJ1bWFuZVwgOwor54yq5Y+j5omNIDwgY2hva296YWlcIDsKK+mLs+eJqeW4qyA8IGltb25vc2hpXCA7CivnhKHpiYTnoLIgPCBtdXRlcHBvdVwgOwor5ZCM5YiG5q+NIDwgZG91YnVuYm9cIDsKK+WbveWOnyA8IGt1bmliYXJhXCA7CivmnKrmtojljJYgPCBtaXNob3VrYVwgOwor6Jue6J2TIDwgbmFtZWt1amlcIDsKK+epuuidiSA8IHV0c3VzZW1pXCA7Civnr4nluq0gPCBjaGlrdXRlaVwgOwor56+k5a2mIDwgdG9rdWdha3VcIDsKK+W6g+adseiqniA8IGthbnRvbmdvXCA7Civlr78gPCBrb3RvYnVraVwgOwor5LiA56eB5Lq6IDwgaXNzaGlqaW5cIDsKK+iejeeGsSA8IHl1dW5ldHN1XCA7CivmvKLolLXoqp4gPCBrYW56b3Vnb1wgOwor5LqM5Lq655uuIDwgZnV0YXJpbWVcIDsKK+WvjOWjq+e1uSA8IGZ1amlnaW51XCA7CivogpvploDnp5EgPCBrb3Vtb25rYVwgOwor6Z2Z6Zu75rCXIDwgc2VpZGVua2lcIDsKK+mNi+iTiyA8IG5hYmVidXRhXCA7Civljp/li5XmqZ8gPCBnZW5kb3VraVwgOwor5Lm+6Ii55rigIDwga2FuZG9ra3VcIDsKK+m8k+WQueiAhSA8IGtvc3Vpc2hhXCA7CivlpKflkoznha4gPCB5YW1hdG9uaVwgOwor562G5rSXIDwgZnVkZWFyYWlcIDsKK+iMtumBk+WFtyA8IGNoYWRvdWd1XCA7Civlm7DljbQgPCBrb25reWFrdVwgOwor5oe457W2IDwga2VuemV0c3VcIDsKK+aOkuawl+euoSA8IGhhaWtpa2FuXCA7Civpu5Lpu7QgPCBrdXJva2FiaVwgOwor5b2T5LqL6ICFIDwgdG91amlzaGFcIDsKK+Wik+iqjOmKmCA8IGJvc2hpbWVpXCA7Civpu5LpuqYgPCBrdXJvbXVnaVwgOwor55+t5rC06LevIDwgdGFuc3Vpcm9cIDsKK+aIkOeoiyA8IG5hcnVob2RvXCA7CivllqvojLblupcgPCBraXNzYXRlblwgOwor5pmC6ZaT5bivIDwgamlrYW50YWlcIDsKK+eEoeawtOmFuCA8IG11c3Vpc2FuXCA7CivmiY3niakgPCBzYWlidXRzdVwgOwor6buS6be6IDwga3Vyb3NhZ2lcIDsKK+mJpOm8uyA8IGthZ2liYW5hXCA7CivnoLTpmLLms5UgPCBoYWJvdWhvdVwgOwor5re36KGAIDwga29ua2V0c3VcIDsKK+euseW6rSA8IGhha29uaXdhXCA7CivlkIjmrZPmnKggPCBuZW11bm9raVwgOwor5ouZ5oKqIDwgc2V0c3Vha3VcIDsKK+iBluatjOmaiiA8IHNlaWthdGFpXCA7Civpu5LptKggPCBrdXJvZ2Ftb1wgOwor6YqA6auqIDwgZ2lucGF0c3VcIDsKK+ibhuiZqyA8IHVqaW11c2hpXCA7CivljbDntJnnqI4gPCBpbnNoaXplaVwgOwor6KCN5bqnIDwgc2Fzb3JpemFcIDsKK+iiluS4iCA8IHNvZGV0YWtlXCA7CivmiKbnlaUgPCBzZW5yeWFrdVwgOwor5paH5oi/5YW3IDwgYnVuYm91Z3VcIDsKK+S/neeuoemHkSA8IGhva2Fua2luXCA7Civlm57li4UgPCBrYWljaG9rdVwgOwor5pyA5aSa5pWwIDwgc2FpdGFzdXVcIDsKK+S4jemAj+aYjiA8IGZ1dG91bWVpXCA7CivmoL3ln7nmiYAgPCBzYWliYWlqb1wgOwor5p6X5qqO6YWSIDwgcmluZ29zaHVcIDsKK+WbveS6uiA8IGt1bmliaXRvXCA7Civmr43ntLDog54gPCBib3NhaWJvdVwgOwor5aW95omT6ICFIDwga291ZGFzaGFcIDsKK+WGhuetkuW9oiA8IGVudG91a2VpXCA7CivmkYLplqLlrrYgPCBzZWtrYW5rZVwgOwor5q2j6KaP6LuNIDwgc2Vpa2lndW5cIDsKK+a1nOmiqCA8IGhhbWFrYXplXCA7CivluLjlpZflj6UgPCBqb3V0b3VrdVwgOwor56uq55C0IDwgdGF0ZWdvdG9cIDsKK+a4i+iMtiA8IHNoaWJ1Y2hhXCA7CivmnKrmsbrmuIggPCBtaWtlc3NhaVwgOwor6Jqw6JySIDwgZ2VqaWdlamlcIDsKK+e0jeaIuOiJsiA8IG5hbmRvaXJvXCA7Civmipfml6UgPCBrb3VuaWNoaVwgOwor6Z2e57ea5b2iIDwgaGlzZW5rZWlcIDsKK+miqOWRgumHnCA8IGZ1cm9nYW1hXCA7CivlvIHorbfkurogPCBiZW5nb25pblwgOwor5riL6ImyIDwgc2hpYnVpcm9cIDsKK+mOruWuiOW6nCA8IGNoaW5qdWZ1XCA7CivkuIDlvLXnvoUgPCBpdGNob3VyYVwgOwor5a2Q5Lya56S+IDwga29nYWlzaGFcIDsKK+S4jeWHjea4ryA8IGZ1dG91a291XCA7CivmtLvprZogPCBrYXRzdWd5b1wgOwor5Y215aGU5aC0IDwgcmFudG91YmFcIDsKK+S4reWkrumDqCA8IGNodXVvdWJ1XCA7CivkuI3lh43mtrIgPCBmdXRvdWVraVwgOwor5aSp56ek5bqnIDwgdGVuYmluemFcIDsKK+epuuiAsyA8IHNvcmFtaW1pXCA7CivljbHpmbrmgKcgPCBraWtlbnNlaVwgOwor5LiN5YeN5rW3IDwgZnV0b3VrYWlcIDsKK+Wkp+ecn+mdouebriA8IG9vbWFqaW1lXCA7CivnmbvlsbHluL0gPCB0b3phbmJvdVwgOwor6Yqt6YeRIDwgemVuaWthbmVcIDsKK+eFjuixhuiFkCA8IGlyaWRvdWZ1XCA7CivliLjlo7LmqZ8gPCBrZW5iYWlraVwgOwor5pmC6ZaT5aSWIDwgamlrYW5nYWlcIDsKK+aLneWvnyA8IGhhaXNhdHN1XCA7CivmsJflgJnluK8gPCBraWtvdXRhaVwgOwor5qW95Zmo5bqXIDwgZ2Fra2l0ZW5cIDsKK+aJv+acjSA8IHNob3VmdWt1XCA7CivmpJzpnZ7pgZXkvb8gPCBrZWJpaXNoaVwgOwor5oiq54S2IDwgc2V0c3V6ZW5cIDsKK+m+jeiInyA8IHJ5dXVzaHV1XCA7CivmnKzph5HluqsgPCBob25raW5rb1wgOwor6ZuE5byB5a62IDwgeXV1YmVua2FcIDsKK+S7mOW4r+eKryA8IGZ1dGFpaGFuXCA7Civopb/mtIvnooEgPCBzZWl5b3Vnb1wgOwor5oim5LqJ5b6MIDwgc2Vuc291Z29cIDsKK+aVj+iFleWutiA8IGJpbndhbmthXCA7CivkuK3ku6XkuIogPCBjaHV1aWpvdVwgOwor6auY5LiL6aeEIDwgdGFrYWdldGFcIDsKK+mdnuWjsuWTgSA8IGhpYmFpaGluXCA7Civmt7foibIgPCBrb25zaG9rdVwgOwor5L2V5Luj55uuIDwgbmFuZGFpbWVcIDsKK+mrmOaetue3miA8IGtvdWthc2VuXCA7CivmsLTpnaLkuIsgPCBzdWltZW5rYVwgOwor57K+5rK55omAIDwgc2VpeXVzaG9cIDsKK+adseilv+WxiyA8IHRvdXphaXlhXCA7CivmuqLmtYEgPCBpdHN1cnl1dVwgOwor6YqF54mI55S7IDwgZG91aGFuZ2FcIDsKK+aKleaKgCA8IG5hZ2V3YXphXCA7Civngorpo6/lmaggPCBzdWloYW5raVwgOwor5oiR54mpIDwgd2FnYW1vbm9cIDsKK+WFg+W4peW6nCA8IGdlbnN1aWZ1XCA7CivpvLvoqLEgPCBoYW5hbW90b1wgOwor6bOl5LmL5bejIDwgdG9yaW5vc3VcIDsKK+WMu+eZgui7iiA8IGlyeW91c2hhXCA7CivnibnnlbDmgKcgPCB0b2t1aXNlaVwgOwor5rqd5rOlIDwgZG9idWRvcm9cIDsKK+emhOmrmCA8IHJva3VkYWthXCA7Civlhqzoh7Pnt5ogPCB0b3VqaXNlblwgOwor56m/5a2U5qmfIDwgc2Vua291a2lcIDsKK+eEoeiTi+i7iiA8IG11Z2Fpc2hhXCA7Civmup3msLQgPCBkb2J1bWl6dVwgOwor56m657GkIDwga2FyYWt1amlcIDsKK+aKteaKl+WZqCA8IHRlaWtvdWtpXCA7CivokrjmsJfoiLkgPCBqb3VraXNlblwgOwor6Z2e6Kix5a65IDwgaGlreW95b3VcIDsKK+mBoOi/keazlSA8IGVua2luaG91XCA7CivpiYTpqqggPCB0ZWtrb3RzdVwgOwor5rmv54WZIDwgeXVrZW11cmlcIDsKK+a3oeiJsiA8IHRhbnNob2t1XCA7Civku67lrprms5UgPCBrYXRlaWhvdVwgOwor6KW/5rSL55S7IDwgc2VpeW91Z2FcIDsKK+engemJhCA8IHNoaXRldHN1XCA7CivpgZTno6jlv4wgPCBkYXJ1bWFraVwgOwor56eS6YCfIDwgYnlvdXNva3VcIDsKK+epuueusSA8IGthcmFiYWtvXCA7CivnqoHnq4sgPCB0b3R0YXRzdVwgOwor55Wz5oiQ6KqeIDwgam91c2VpZ29cIDsKK+aAquS6i+S7tiA8IGthaWppa2VuXCA7CivmiYDmjIHogIUgPCBzaG9qaXNoYVwgOwor5pOs5Lq65rOVIDwgZ2lqaW5ob3VcIDsKK+WUkOiNiSA8IGthcmFrdXNhXCA7CivmupblpKfmiYsgPCBqdW4nJ29vdGVcIDsKK+Wbnui7ouapnyA8IGthaXRlbmtpXCA7Civon7vloZogPCBhcmlkenVrYVwgOwor5r2u5YWIIDwgc2hpb3Nha2lcIDsKK+iZmuiqrCA8IGt5b3NldHN1XCA7CivooYDkvr8gPCBrZXRzdWJlblwgOwor5oim5rKhIDwgc2VuYm90c3VcIDsKK+WPr+WTgOebuCA8IGthd2Fpc291XCA7CivmjIflhYggPCB5dWJpc2FraVwgOwor6Yym57W1IDwgbmlzaGlraWVcIDsKK+S6pOmam+WutiA8IGtvdXNhaWthXCA7Civpm6LkubPmnJ8gPCByaW55dXVraVwgOwor56OB5oCn5bGkIDwgamlzZWlzb3VcIDsKK+i2iuWGrOmaiiA8IGV0dG91dGFpXCA7CivlvqHnhKHmspnmsbAgPCBnb2J1c2F0YVwgOwor5omL5p6VIDwgdGVtYWt1cmFcIDsKK+WPs+mhp+W3puechCA8IHVrb3NhYmVuXCA7CivorZzpnaLlj7AgPCBmdW1lbmRhaVwgOwor56eA6YC4IDwgc2h1dWl0c3VcIDsKK+S7ruWwj+WxiyA8IGthcmlnb3lhXCA7Civnm67oq5boposgPCBtb2t1cm9taVwgOwor56u55qeNIDwgdGFrZXlhcmlcIDsKK+a8lOeul+WtkCA8IGVuemFuc2hpXCA7Civpu5LpiYQgPCBrdXJvZ2FuZVwgOwor5pyJ6ZmQ5YCLIDwgeXV1Z2Vua29cIDsKK+aIuOmanOWtkCA8IHRvc2hvdWppXCA7Civlj6/pjZvmgKcgPCBrYXRhbnNlaVwgOwor5aSq6byT5YikIDwgdGFpa29iYW5cIDsKK+a1t+WdiuS4uyA8IHVtaWJvdXp1XCA7CivnrYnlvI8gPCB0b3VzaGlraVwgOwor6Jep6ZalIDwgaGFuYmF0c3VcIDsKK+a1gemHjyA8IHJ5dXVyeW91XCA7Civpu43prZrlrZAgPCBraWJpbmFnb1wgOwor56qB55m6IDwgdG9wcGF0c3VcIDsKK+mJpOmHnSA8IGthZ2liYXJpXCA7CivmipXlrr8gPCB0b3VzaHVrdVwgOwor5Za25p6X572yIDwgZWlyaW5zaG9cIDsKK+erueaelyA8IGNoaWt1cmluXCA7Civlm7rmnInlgKQgPCBrb3l1dWNoaVwgOwor5ZWT55m6IDwga2VpaGF0c3VcIDsKK+erueadkCA8IGNoaWt1emFpXCA7CivpgbrkvJ3lraYgPCBpZGVuZ2FrdVwgOwor6IKy56iu5omAIDwgaWt1c2h1am9cIDsKK+epuueZuiA8IGt1dWhhdHN1XCA7CivmiZXmi60gPCBmdXNzaG9rdVwgOwor6YeR6Y2N6YeRIDwga2lubWVra2lcIDsKK+elnumiqCA8IGthbWlrYXplXCA7CivmtYHpgJ8gPCByeXV1c29rdVwgOwor5rWB6YCaIDwgcnl1dXRzdXVcIDsKK+a7neW3nSA8IHRha2lnYXdhXCA7Civlj4LkuovlrpggPCBzYW5qaWthblwgOwor55u46KuH5omAIDwgc291ZGFuam9cIDsKK+eEoeeojuWTgSA8IG11emVpaGluXCA7CivnqYDnspIgPCBrb2t1cnl1dVwgOwor56uv5pyrIDwgdGFubWF0c3VcIDsKK+WUkOe0mSA8IGthcmFrYW1pXCA7Civlv5znrZTog70gPCBvdXRvdW5vdVwgOwor5qSc5ZWP5omAIDwga2VubW9uam9cIDsKK+WyoeWgtOaJgCA8IG9rYWJhc2hvXCA7CivlnLDolLXlsIogPCBqaXpvdXNvblwgOwor56m65LiW6L6eIDwga2FyYXNlamlcIDsKK+ihqOWFt+WxiyA8IGh5b3VndXlhXCA7CivlvJTmhbDph5EgPCBjaG91aWtpblwgOwor5Yid55Sj5ammIDwgc2hvc2FucHVcIDsKK+ibuOeEvCA8IHRha295YWtpXCA7CivnpZ3pm7sgPCBzaHVrdWRlblwgOwor5oGQ6b6NIDwga3lvdXJ5dXVcIDsKK+aal+iomOeJqSA8IGFua2ltb25vXCA7CivpurvphZTliaQgPCBtYXN1aXphaVwgOwor6Jeq5Yy76ICFIDwgeWFidWlzaGFcIDsKK+WTgeiWhCA8IHNoaW5hdXN1XCA7Civmi53lgJ8gPCBoYWlzaGFrdVwgOwor5L2V5pmC6aCDIDwgaXRzdWdvcm9cIDsKK+eorue0mSA8IHRhbmVnYW1pXCA7CivmuKnnhrEgPCBvbicnbmV0c3VcIDsKK+mJhOmJoiA8IHRlcHBhY2hpXCA7CivmuoDmnIggPCBtYW5nZXRzdVwgOwor6Y2L54mpIDwgbmFiZW1vbm9cIDsKK+S6jOe+qeeahCA8IG5pZ2l0ZWtpXCA7Civpm4Hnmq7ntJkgPCBnYW5waXNoaVwgOwor5pel5ZKM6KaLIDwgaGl5b3JpbWlcIDsKK+azoumiqCA8IG5hbWlrYXplXCA7CivnpL7kvJrpg6ggPCBzaGFrYWlidVwgOwor6ZGR5YilIDwga2FuYmV0c3VcIDsKK+m7kuixuSA8IGt1cm9oeW91XCA7CivmiL/miL8gPCBmdXNhZnVzYVwgOwor6buS6LGGIDwga3Vyb21hbWVcIDsKK+WIpeS4lueVjCA8IGJlc3Nla2FpXCA7CivnhKHlkI3msI8gPCBtdW1laXNoaVwgOwor6ZuH5YKt6ICFIDwga295b3VzaGFcIDsKK+WUkOeqgSA8IHRvdXRvdHN1XCA7CivntaLnt57lrZAgPCBheWFkb25zdVwgOwor5rim54q25paHIDwga2Fqb3Vtb25cIDsKK+m7meirviA8IG1va3VkYWt1XCA7Civoh6rli5Xou4ogPCBqaWRvdXNoYVwgOwor6Zmk6I2J5YmkIDwgam9zb3V6YWlcIDsKK+mHjum8oCA8IG5vbmV6dW1pXCA7CivkuI3lhazmraMgPCBmdWtvdXNlaVwgOwor6ZeY5oqA5aC0IDwgdG91Z2lqb3VcIDsKK+WWrOacqCA8IGt5b3Vib2t1XCA7Civpu5noqq0gPCBtb2t1ZG9rdVwgOwor5oGl6aqoIDwgY2hpa290c3VcIDsKK+S4u+iomOaGtiA8IHNodWtpb2t1XCA7CivmiYvlv4MgPCB0ZWdva29yb1wgOwor56qB54S2IDwgdG90c3V6ZW5cIDsKK+m8u+S4i+mVtyA8IGJpa2FjaG91XCA7CivmnIDlpKfljJYgPCBzYWlkYWlrYVwgOwor5oq85YiHIDwgb3NoaWtpcmlcIDsKK+mYsueCjuWJpCA8IGJvdWVuemFpXCA7CivmipHlnKcgPCB5b2t1YXRzdVwgOwor5oW256WdIDwga2Vpc2h1a3VcIDsKK+ethuWkqiA8IGZ1ZGVidXRvXCA7CivpiYTpgZMgPCB0ZXRzdWRvdVwgOwor5L2V5pmC6ZaTIDwgbmFuamlrYW5cIDsKK+ezu+e1seaouSA8IGtlaXRvdWp1XCA7CivlvqHoh6rouqsgPCBnb2ppc2hpblwgOwor5LiK6I+T5a2QIDwgam91Z2FzaGlcIDsKK+iZmuiEsSA8IGt5b2RhdHN1XCA7CivmsrPpsZIgPCBrYXdhbWFzdVwgOwor6KKr5rib5pWwIDwgaGlnZW5zdXVcIDsKK+aYn+adoeaXlyA8IHNlaWpvdWtpXCA7Civpiq3oi5QgPCB6ZW5pZ29rZVwgOwor56uL5pytIDwgdGF0ZWZ1ZGFcIDsKK+WZm+WCtyA8IGthbWlraXp1XCA7Civph47ptrIgPCBub2JpdGFraVwgOwor55aO5rC05oCnIDwgc29zdWlzZWlcIDsKK+iHquayu+aoqSA8IGppY2hpa2VuXCA7CivpgK7mjZXogIUgPCB0YWlob3NoYVwgOwor5ryU5Ye6IDwgZW5zaHV0c3VcIDsKK+m8u+e0mSA8IGhhbmFnYW1pXCA7CivmuKnmuKkgPCBudWt1bnVrdVwgOwor5LqM6aCt562LIDwgbml0b3VraW5cIDsKK+m8u+ezniA8IGhhbmFrdXNvXCA7CivntKDmtarkurogPCBzdXJvdW5pblwgOwor56eL5aC05omAIDwgYWtpYmFzaG9cIDsKK+iIueeBq+S6iyA8IGZ1bmFrYWppXCA7CivogrLnqK7lrrYgPCBpa3VzaHVrYVwgOwor5oKq6YCGIDwgYWt1Z3lha3VcIDsKK+ato+iqsuWkliA8IHNlaWthZ2FpXCA7CivnhYnnk6bloYAgPCByZW5nYWJlaVwgOwor5oKq6L6jIDwgYWt1cmF0c3VcIDsKK+iLseaWh+azlSA8IGVpYnVucG91XCA7CivmnKrmsbrlrpogPCBtaWtldHRlaVwgOwor6buS6KGoIDwga29rdWh5b3VcIDsKK+WBpeW6t+e+jiA8IGtlbmtvdWJpXCA7CivkuKHorbDpmaIgPCByeW91Z2lpblwgOwor5oSb5ZSx5q2MIDwgYWlzaG91a2FcIDsKK+S6jOacrOajkiA8IG5paG9uYm91XCA7CivpvLvnrYsgPCBoYW5hc3VqaVwgOwor5rKI6buZIDwgY2hpbm1va3VcIDsKK+mdkueJqeWxiyA8IGFvbW9ub3lhXCA7Civph5Hpq6ogPCBraW5wYXRzdVwgOwor5Luu5a6a5b2iIDwga2F0ZWlrZWlcIDsKK+mJiOixhiA8IG5hdGFtYW1lXCA7Civno6/pt7ggPCBpc29zaGlnaVwgOwor5rqd5bedIDwgZG9idWdhd2FcIDsKK+iHquWLleipniA8IGppZG91c2hpXCA7Civkvr/lrpzkuIogPCBiZW5naWpvdVwgOwor55Sw6IiO6aKoIDwgaW5ha2FmdXVcIDsKK+mNteadnyA8IGthZ2l0YWJhXCA7CivnpZ7pgJ8gPCBzaGluc29rdVwgOwor5pyd5b6h6aOvIDwgYXNhZ29oYW5cIDsKK+m7kuibhyA8IGt1cm9oZWJpXCA7CivmjIfmj67mqKkgPCBzaGlraWtlblwgOwor6Kit6KiI5ZuzIDwgc2Vra2VpenVcIDsKK+a6gOaCpiA8IG1hbicnZXRzdVwgOwor5oiR5oiRIDwgd2FyZXdhcmVcIDsKK+mDqOWkluiAhSA8IGJ1Z2Fpc2hhXCA7CivmuIXmvZQgPCBzZWlrZXRzdVwgOwor6JGs5YSA5aC0IDwgc291Z2lqb3VcIDsKK+ejgeaAp+S9kyA8IGppc2VpdGFpXCA7CivpioDmnKzkvY0gPCBnaW5ob24nJ2lcIDsKK+ethuWQjSA8IGhpdHN1bWVpXCA7CivmlL/lhZrlk6EgPCBzZWl0b3VpblwgOwor5a++5b+c5YCkIDwgdGFpb3VjaGlcIDsKK+i7jeiJpuaXlyA8IGd1bmthbmtpXCA7CivkuozkuZfmoLkgPCBuaWpvdWtvblwgOwor56iu55WcIDwgc2h1Y2hpa3VcIDsKK+aMh+aPruajkiA8IHNoaWtpYm91XCA7Civmr43lm73oqp4gPCBib2tva3Vnb1wgOwor55S755So57SZIDwgZ2F5b3VzaGlcIDsKK+mKheiJsiA8IGRvdXNob2t1XCA7CivmpJzmuKnlmaggPCBrZW4nJ29ua2lcIDsKK+WPjemqqCA8IGhhbmtvdHN1XCA7CivllYbms4EgPCBzaG91a3lvdVwgOwor6aeG5r2c6ImHIDwga3VzZW50ZWlcIDsKK+WgleiDjue9qiA8IGRhdGFpemFpXCA7Civmub/luqYgPCBzaGl0c3Vkb1wgOwor56OB5rCX5a2mIDwgamlraWdha3VcIDsKK+ifhOS8jyA8IGNoaXBwdWt1XCA7CivmtYXokbEgPCBhc2F0c3VraVwgOwor5oeQ54KJ54GwIDwga2Fpcm9iYWlcIDsKK+imgeazqOaEjyA8IHlvdWNodXVpXCA7CivliJ3nlJ/lhZAgPCBzaG9zZWlqaVwgOwor5oiS5b6LIDwga2Fpcml0c3VcIDsKK+S4jemuruaYjiA8IGZ1c2VubWVpXCA7Civnq7rlraYgPCBqaWt1Z2FrdVwgOwor5aSp6bWe57WoIDwgYmlyb3Vkb3VcIDsKK+WQueiyqyA8IGZ1a2ludWtpXCA7CivnrLnljp8gPCBzYXNhaGFyYVwgOwor56qT5p6gIDwgbWFkb3dha3VcIDsKK+WUkOeJqSA8IHRvdW1vdHN1XCA7Civoo73ns5bmiYAgPCBzZWl0b3Vqb1wgOwor56uv5bGAIDwgdGFua3lva3VcIDsKK+aKnuS4gCA8IHRha3VpdHN1XCA7CivlhYjpp4bogIUgPCBzZW5rdXNoYVwgOwor5Yqp5oiQ6YeRIDwgam9zZWlraW5cIDsKK+a4oeadpeS6uiA8IHRvcmFpamluXCA7CivnrYblhYggPCBmdWRlc2FraVwgOwor6YCf6KiY6ICFIDwgc29ra2lzaGFcIDsKK+mKreeusSA8IHplbmliYWtvXCA7CivpjKjms4ogPCBieW91aGFrdVwgOwor6Imm6LyJ5qmfIDwga2Fuc2Fpa2lcIDsKK+a3t+a1tCA8IGtvbicneW9rdVwgOwor5rex5rexIDwgZnVrYWJ1a2FcIDsKK+iXquibhyA8IHlhYnVoZWJpXCA7Civoo73nsonmqZ8gPCBzZWlmdW5raVwgOwor5Lmx5bGk6ZuyIDwgcmFuc291dW5cIDsKK+WPguS6i+S8miA8IHNhbmppa2FpXCA7CivnqK7niakgPCB0YW5lbW9ub1wgOwor56iu54mbIDwgdGFuZXVzaGlcIDsKK+ibh+avkiA8IGhlYmlkb2t1XCA7CivmiIzlubQgPCBpbnVkb3NoaVwgOwor6YGV5rOV6KGM54K6IDwgaWhvdWtvdWlcIDsKK+aOkuawl+W8gSA8IGhhaWtpYmVuXCA7Civmu5HliaQgPCBrYXRzdXphaVwgOwor6buS6Ii5IDwga3Vyb2Z1bmVcIDsKK+ato+e1sea0viA8IHNlaXRvdWhhXCA7CivpioDnv7wgPCBnaW4nJ3lva3VcIDsKK+azpei2syA8IGRvcm9hc2hpXCA7Civoo5zkvZDlvbkgPCBob3NheWFrdVwgOwor6Y6M5b2iIDwga2FtYWdhdGFcIDsKK+acqumFjeW9kyA8IG1paGFpdG91XCA7Civmu4XljbQgPCBtZWtreWFrdVwgOwor5piv6Z2e5YWxIDwgemVoaXRvbW9cIDsKK+mHo+mKrSA8IHRzdXJpc2VuXCA7CivmnKrliIrooYwgPCBtaWthbmtvdVwgOwor5p6i5qmf5Y2/IDwgc3V1a2lrZWlcIDsKK+acqumBgue9qiA8IG1pc3VpemFpXCA7CivmlofljJbosqEgPCBidW5rYXphaVwgOwor5q2m6KOF6Ii5IDwgYnVzb3VzZW5cIDsKK+iomOiAheWboyA8IGtpc2hhZGFuXCA7CivllYbmpa0gPCBzaG91Z3lvdVwgOwor5b6h55So6YK4IDwgZ295b3V0ZWlcIDsKK+W+oeWFiOajkiA8IG9zYWtpYm91XCA7CivpibHohIggPCBrb3VteWFrdVwgOwor6JqK54e7IDwga2FpYnVzaGlcIDsKK+WQg+mAhiA8IHNoYWtrdXJpXCA7Civpurnoj4wgPCBrb3VqaWtpblwgOwor5a6a5q+U5L6LIDwgdGVpaGlyZWlcIDsKK+WRveiEiCA8IG1laW15YWt1XCA7Civlr4zlo6vlt50gPCBmdWppa2F3YVwgOwor6buS6IKJIDwga3Vyb25pa3VcIDsKK+m6puiXgSA8IG11Z2l3YXJhXCA7CivnlKPljbXmnJ8gPCBzYW5yYW5raVwgOwor56u55Z6jIDwgdGFrZWdha2lcIDsKK+WIhuebuOapnyA8IGJ1bnNvdWtpXCA7CivpjZvmjqUgPCB0YW5zZXRzdVwgOwor6Yed6YeRIDwgaGFyaWdhbmVcIDsKK+S8muaEj+aWh+WtlyA8IGthaWltb2ppXCA7CivpioDnuIEgPCBnaW5idWNoaVwgOwor5LiK5bGk6ZuyIDwgam91c291dW5cIDsKK+mHkemMhiA8IGthbmFzYWJpXCA7CivnqI7njocgPCB6ZWlyaXRzdVwgOwor56uL5bGxIDwgdGF0ZXlhbWFcIDsKK+S4ieasoeWFgyA8IHNhbmppZ2VuXCA7CivnvqTppqznnIwgPCBndW5tYWtlblwgOwor6bqm6JKUIDwgbXVnaW1ha2lcIDsKK+WPpOmHkSA8IGZ1cnVnYW5lXCA7CivllYTmnKggPCB0YWt1Ym9rdVwgOwor5Y+j6YeNIDwga3VjaGlvbW9cIDsKK+WFteermemDqCA8IGhlaXRhbmJ1XCA7CivkuI3lhazlubMgPCBmdWtvdWhlaVwgOwor5riH5pybIDwga2F0c3Vib3VcIDsKK+aJjeWKmyA8IHNhaXJ5b2t1XCA7Civlj6TphZIgPCBmdXJ1emFrZVwgOwor5YmN6by757eSIDwgbWFlaGFuYW9cIDsKK+S4jeWHjeWJpCA8IGZ1dG91emFpXCA7CivpvLvnhoogPCBoYW5hZ3VtYVwgOwor6Yyr5p2WIDwgc2hha3Vqb3VcIDsKK+epuuaSriA8IGt1dXNhdHN1XCA7Civpu5nntIQgPCBtb2t1eWFrdVwgOwor54mp55yf5Ly8IDwgbW9ub21hbmVcIDsKK+mBiuatqemBkyA8IHl1dWhvZG91XCA7CivnpL7oqqwgPCBzaGFzZXRzdVwgOwor5rWF57eRIDwgc2Vucnlva3VcIDsKK+aJi+WIgCA8IHRlZ2F0YW5hXCA7CivlkIjnuIHlpYfnuIEgPCBhaWVua2llblwgOwor54Sh5Yi26ZmQIDwgbXVzZWlnZW5cIDsKK+epjealtSA8IHNla2t5b2t1XCA7CivmiZPlgrcgPCB1Y2hpa2l6dVwgOwor6YmE6ImyIDwgdGV0c3Vpcm9cIDsKK+S9k+iCsuWutiA8IHRhaWlrdWthXCA7CivliIblspDpp4UgPCBidW5raWVraVwgOwor56aP6ICzIDwgZnVrdW1pbWlcIDsKK+a7heS6oSA8IG1ldHN1Ym91XCA7CivljLvnmYLnlKggPCBpcnlvdXlvdVwgOwor5oWE54S2IDwgcml0c3V6ZW5cIDsKK+WQjOiqrCA8IGRvdXNldHN1XCA7CivnqpLmga8gPCBjaGlzc29rdVwgOwor5Y+z6LazIDwgbWlnaWFzaGlcIDsKK+mAruaNleeKtiA8IHRhaWhvam91XCA7Civmspbph6MgPCBva2lkenVyaVwgOwor6YGO5Y675bizIDwga2Frb2Nob3VcIDsKK+m7kuexsyA8IGt1cm9nb21lXCA7CivmqZ/li5XmgKcgPCBraWRvdXNlaVwgOwor6YmE6IWVIDwgdGV0c3V3YW5cIDsKK+WPm+mAhiA8IGhhbmd5YWt1XCA7CivnhrHpoqjngokgPCBuZXBwdXVyb1wgOwor5q2p6KGM6ICFIDwgaG9rb3VzaGFcIDsKK+m7nueptCA8IHRlbmtldHN1XCA7CivmsLTps6UgPCBtaXp1ZG9yaVwgOwor5rqA5ZarIDwgbWFua2l0c3VcIDsKK+WGhumMkOW9oiA8IGVuc3Vpa2VpXCA7CivmiJHlm70gPCB3YWdha3VuaVwgOwor5a6I6Yqt5aW0IDwgc2h1c2VuZG9cIDsKK+mBk+WMluW4qyA8IGRvdWtlc2hpXCA7CivmgqroiIwgPCBha3V6ZXRzdVwgOwor6JmO54yrIDwgdG9yYW5la29cIDsKK+S4i+iFuemDqCA8IGthZnVrdWJ1XCA7Civlj43mlL/lupwgPCBoYW5zZWlmdVwgOwor5Zue6Lui5YSAIDwga2FpdGVuZ2lcIDsKK+S4iuiNieWxpSA8IHV3YXpvdXJpXCA7CivnsbPkuIrpmaIgPCBiZWlqb3VpblwgOwor5rSS6ISxIDwgc2hhZGF0c3VcIDsKK+m6u+e2sSA8IGFzYWR6dW5hXCA7Civpu5Dnq78gPCBtb2NoaXphb1wgOwor5pyd56i95Y+kIDwgYXNhZ2Vpa29cIDsKK+WQq+iThCA8IGdhbmNoaWt1XCA7Civoo73nsonmiYAgPCBzZWlmdW5qb1wgOwor6KKr5rK76ICFIDwgaGljaGlzaGFcIDsKK+WPgumFjCA8IHNhbnNoYWt1XCA7Civlrq7nlLDlrrYgPCBtaXlhdGFrZVwgOwor6L+R6KGb5YW1IDwga29ub2VoZWlcIDsKK+WyqeaJi+ecjCA8IGl3YXRla2VuXCA7CivpgKPpmorml5cgPCByZW50YWlraVwgOwor566h5qW95ZmoIDwga2FuZ2Fra2lcIDsKK+isneaBqeS8miA8IHNoYW9ua2FpXCA7CivppIronILlrrYgPCB5b3Vob3VrYVwgOwor5LqU57ea57SZIDwgZ29zZW5zaGlcIDsKK+WQhOihjCA8IGtha3VneW91XCA7CivpjYvlupUgPCBuYWJlem9rb1wgOwor5bmz55Sf552AIDwgaGVpemVpZ2lcIDsKK+apn+W4huiIuSA8IGtpaGFuc2VuXCA7CivmgqrogIUgPCB3YXJ1bW9ub1wgOwor6by75rC0IDwgaGFuYW1penVcIDsKK+mdnuaOkuawtCA8IGhpaGFpc3VpXCA7CivnnYDnlarlj7cgPCBraWJhbmdvdVwgOwor5LiN5YCr572qIDwgZnVyaW56YWlcIDsKK+mjtOe0sOW3pSA8IGFtZXphaWt1XCA7Civlgb3kvLznl4cgPCBnaWppc2hvdVwgOwor5aSn5bqD6ZaTIDwgb29oaXJvbWFcIDsKK+mBv+mbo+iAhSA8IGhpbmFuc2hhXCA7CivlrprluLjms6IgPCB0ZWlqb3VoYVwgOwor5LuY5bGe6KqeIDwgZnV6b2t1Z29cIDsKK+aCtue1tiA8IG1vbnpldHN1XCA7CivlubTkvJrosrsgPCBuZW5rYWloaVwgOwor5pWF6LK36ICFIDwga29iYWlzaGFcIDsKK+S6lOWkp+a0iyA8IGdvZGFpeW91XCA7Civnq4vlkb0gPCByaXRzdW1laVwgOwor54+q6Je75ZyfIDwga2Vpc291ZG9cIDsKK+WOs+mBlCA8IGdlbnRhdHN1XCA7CivkurrlkI3nsL8gPCBqaW5tZWlib1wgOwor5o6S5rCX5Y+jIDwgaGFpa2lrb3VcIDsKK+mBv+WmiuazlSA8IGhpbmluaG91XCA7CivnibnkvqHlk4EgPCB0b2trYWhpblwgOwor6YeN6KqsIDwganV1c2V0c3VcIDsKK+aPmuaKl+avlCA8IHlvdWtvdWhpXCA7CivpjYvlsLsgPCBuYWJlamlyaVwgOwor6L6e5pu46aGeIDwgamlzaG9ydWlcIDsKK+Wkp+W+gOeUnyA8IGRhaW91am91XCA7Civov73otbfoqLQgPCB0c3Vpa2lzb1wgOwor5rC36ZyHIDwgaHlvdXNoaW5cIDsKK+mBjuWNiuaVsCA8IGthaGFuc3V1XCA7CivpiYTnrYYgPCB0ZXBwaXRzdVwgOwor5a6J5oGv5pelIDwgYW5zb2t1YmlcIDsKK+WGjea1ruS4iiA8IHNhaWZ1am91XCA7CivmtLvnnLwgPCBrYXRzdWdhblwgOwor5Zuz5pu45Yi4IDwgdG9zaG9rZW5cIDsKK+eZuui1t+S6uiA8IGhva2tpbmluXCA7CivmtJ7nqp8gPCBkb3VrdXRzdVwgOwor6YGT5YW36KuWIDwgZG91Z3Vyb25cIDsKK+WIhuebuOW/nCA8IGJ1bnNvdW91XCA7CivmiJHlhJggPCB3YWdhbWFtYVwgOwor56uL5YCZ6KOcIDwgcmlra291aG9cIDsKK+mBv+aakeWcsCA8IGhpc2hvY2hpXCA7CivmsLTpmpsgPCBtaXp1Z2l3YVwgOwor5o6l6aqo5pyoIDwgbml3YXRva29cIDsKK+ekvuS8muenkSA8IHNoYWthaWthXCA7Civph43opIcgPCBjaG91ZnVrdVwgOwor5rS755m6IDwga2FwcGF0c3VcIDsKK+S4iuapn+WrjCA8IGpvdWtpZ2VuXCA7CivkuqTmj5vmiYAgPCBrb3VrYW5qb1wgOwor5Zac5q2M5YqHIDwga2lrYWdla2lcIDsKK+a3u+WKoOWJpCA8IHRlbmthemFpXCA7CivmnKrlvqnlk6EgPCBtaWZ1a3VpblwgOwor5raI5rKIIDwgc2hvdWNoaW5cIDsKK+ismemBnOiqniA8IGtlbnNvbmdvXCA7CivmnKrlh6bnva4gPCBtaXNob2NoaVwgOwor5oKq562GIDwgYWt1aGl0c3VcIDsKK+WcsOW9ouWbsyA8IGNoaWtlaXp1XCA7CivmnKrnn6XmlbAgPCBtaWNoaXN1dVwgOwor56Gs6aqoIDwga291a290c3VcIDsKK+WFq+a9rui3ryA8IHlhc2hpb2ppXCA7CivmsqLooI8gPCBzYXdhZ2FuaVwgOwor5Luj55CG6ICFIDwgZGFpcmlzaGFcIDsKK+aGq+WvnyA8IGJpbnNhdHN1XCA7CivpupfnrYYgPCByZWloaXRzdVwgOwor6JeB57SZIDwgd2FyYWdhbWlcIDsKK+i7jeS7pOmDqCA8IGd1bnJlaWJ1XCA7Civnq4vlg48gPCByaXRzdXpvdVwgOwor5qiq5paH5a2XIDwgeW9rb21vamlcIDsKK+a0u+eUqCA8IGthdHN1eW91XCA7Civmtojmr5IgPCBzaG91ZG9rdVwgOwor5aSq5Y+k5LujIDwgdGFpa29kYWlcIDsKK+aIkeS6uiA8IHdhcmVoaXRvXCA7CivpjYvloqggPCBuYWJlenVtaVwgOwor6buS54yrIDwga3Vyb25la29cIDsKK+aIkeS6iyA8IHdhZ2Frb3RvXCA7Civlub7kvZXlraYgPCBraWthZ2FrdVwgOwor6KW/5rSL5YyWIDwgc2VpeW91a2FcIDsKK+WIkeS9meiAhSA8IGtlaXlvc2hhXCA7CivmuKHkuJbkurogPCB0b3NlaW5pblwgOwor5ZCM6IOeIDwgaGFyYWthcmFcIDsKK+e+hemHneWEgCA8IHJhc2hpbmdpXCA7CivlrZDpn7PnvqQgPCBzaGlpbmd1blwgOwor5pqX6Ki85YyWIDwgYW5zaG91a2FcIDsKK+a7kei1sOi3ryA8IGthc3NvdXJvXCA7Civoo73lm7Pmnb8gPCBzZWl6dWJhblwgOwor55qH57Wx6K2cIDwga291dG91ZnVcIDsKK+eQhuWtpumDqCA8IHJpZ2FrdWJ1XCA7CivnqbrlpKIgPCBzb3JheXVtZVwgOwor5rOl57iEIDwgZG9yb25hd2FcIDsKK+iLseiqnuWhviA8IGVpZ29qdWt1XCA7CivphYvplbcgPCBzaHV1Y2hvdVwgOwor5oKy5Zac5YqHIDwgaGlraWdla2lcIDsKK+S/neeuoeaelyA8IGhva2FucmluXCA7CivljYrpnbQgPCBoYW5ndXRzdVwgOwor5oK2552AIDwgbW9uY2hha3VcIDsKK+WGjeatpuijhSA8IHNhaWJ1c291XCA7Civpu5LnhoogPCBrdXJvZ3VtYVwgOwor6JKy6a2aIDwga2FtYXRvdG9cIDsKK+WWieWFgyA8IG5vZG9tb3RvXCA7CivnqbrloIAgPCBrYXJhYm9yaVwgOwor6LWk6Jy76JuJIDwgYWthdG9uYm9cIDsKK+iWhOiGnCA8IGhha3VtYWt1XCA7Civnqq/lhYMgPCBrYW1hbW90b1wgOwor5rib5ZynIDwgZ2VuJydhdHN1XCA7CivnhKHovrrpmpsgPCBtdWhlbnphaVwgOwor5LiN6Ieq54S2IDwgZnVzaGl6ZW5cIDsKK+iFjuS4jeWFqCA8IGppbmZ1emVuXCA7CivnqJrmi5kgPCBjaGlzZXRzdVwgOwor56WQ562GIDwgeXV1aGl0c3VcIDsKK+WutOS8muWgtCA8IGVua2Fpam91XCA7Civlj6TojYkgPCBmdXJ1a3VzYVwgOwor5LiN5L+h6ICFIDwgZnVzaGluamFcIDsKK+WPo+iNkiA8IGt1Y2hpYXJhXCA7CivljZjmnKzkvY0gPCB0YW5ob24nJ2lcIDsKK+WGhumMkOWPsCA8IGVuc3VpZGFpXCA7CivnpZ3npa0gPCBzaHVrdXNhaVwgOwor5Zug5p6c6ICFIDwgaW5nYW1vbm9cIDsKK+S4jeS/oee+qSA8IGZ1c2hpbmdpXCA7CivljYrplbcgPCBoYW4nJ25hZ2FcIDsKK+mJhOeTtiA8IHRldHN1YmluXCA7CivmsLTpg6ggPCBtaXp1bm9idVwgOwor6LuN5LqL6Z2iIDwgZ3VuamltZW5cIDsKK+aBkuays+aymSA8IGdvdWdhc2hhXCA7CivmgqrnmZYgPCB3YXJ1Z3VzZVwgOwor6buS5r2uIDwga3Vyb3NoaW9cIDsKK+iThOmbuyA8IGNoaWt1ZGVuXCA7Civmr43ps6UgPCBoYWhhZG9yaVwgOwor6Ieq5rK75L2TIDwgamljaGl0YWlcIDsKK+edgOWwuuWcsCA8IGtpamFrdWppXCA7CivlvozljYrmnJ8gPCBrb3VoYW5raVwgOwor5Y+j6IiMIDwga291emV0c3VcIDsKK+elneegsiA8IHNodWt1aG91XCA7Civmr5vpq6ogPCBtb3VoYXRzdVwgOwor6Ieq5rK75LyaIDwgamljaGlrYWlcIDsKK+S+oeWApOimsyA8IGthY2hpa2FuXCA7Civopb/pgYroqJggPCBzZWl5dXVraVwgOwor55uj5p+75aeU5ZOhIDwga2Fuc2FpaW5cIDsKK+ekvOevgCA8IHJlaXNldHN1XCA7CivlubTku6PoqJggPCBuZW5kYWlraVwgOwor5oSf5oOF5a62IDwga2Fuam91a2FcIDsKK+aWh+WMluelrSA8IGJ1bmthc2FpXCA7Civlj4rokL0gPCBreXV1cmFrdVwgOwor6YqD5q66IDwganV1c2F0c3VcIDsKK+WkieaPm+WZqCA8IGhlbmthbmtpXCA7Civmg4XnhrEgPCBqb3VuZXRzdVwgOwor5LiW55WM5Y+yIDwgc2VrYWlzaGlcIDsKK+WPl+eyvuWNtSA8IGp1c2VpcmFuXCA7Civph5HohIggPCBraW5teWFrdVwgOwor5Y+q6ICFIDwgdGFkYW1vbm9cIDsKK+aHh+WIhyA8IGtvbnNldHN1XCA7CivnpoHniakgPCBraW5tb3RzdVwgOwor5bm055Sy5paQIDwgdG9zaGlnYWlcIDsKK+iZkOaUvyA8IGd5YWt1c2VpXCA7CivlkI3nrYYgPCBtZWloaXRzdVwgOwor56K66Ki8IDwga2FrdXNob3VcIDsKK+WQjOethiA8IGRvdWhpdHN1XCA7CivphY3pgZQgPCBoYWl0YXRzdVwgOwor5rOl5LuV5ZCIIDwgZG9yb2ppYWlcIDsKK+a4heWtkOmfsyA8IHNlaXNoaWluXCA7CivkuozmnJ/kvZwgPCBuaWtpc2FrdVwgOwor6Yu45bGRIDwgbm9rb2t1enVcIDsKK+aoque0i+etiyA8IG91bW9ua2luXCA7Civmt4Dlt50gPCB5b2RvZ2F3YVwgOwor6YGL5YuV55WMIDwgdW5kb3VrYWlcIDsKK+aDkea6uiA8IHdha3VkZWtpXCA7CivmnKrnmbroposgPCBtaWhha2tlblwgOwor5rWF5rKTIDwgYXNhZ3V0c3VcIDsKK+WQjOeptCA8IGRvdWtldHN1XCA7Civlgbblg4/ljJYgPCBndXV6b3VrYVwgOwor6KOc6IG05ZmoIDwgaG9jaG91a2lcIDsKK+iLseiqnuWKhyA8IGVpZ29nZWtpXCA7Civph6Pns7ggPCB0c3VyaWl0b1wgOwor6Zu7566X5qmfIDwgZGVuc2Fua2lcIDsKK+a0l+eGiiA8IGFyYWlndW1hXCA7Civlho3lkJ/lkbMgPCBzYWlnaW5taVwgOwor6YeN572wIDwganV1YmF0c3VcIDsKK+WGhumMkOS9kyA8IGVuc3VpdGFpXCA7CivmtYHmsLcgPCByeXV1aHlvdVwgOwor5rOo55uuIDwgY2h1dW1va3VcIDsKK+mdkuWkqeS6lSA8IGFvdGVuam91XCA7Civlj4zohJogPCBzb3VreWFrdVwgOwor5rWq5puyIDwgcm91a3lva3VcIDsKK+mdnuaIpuirliA8IGhpc2Vucm9uXCA7CivmnKrnmbrooYwgPCBtaWhha2tvdVwgOwor55u45aC05birIDwgc291YmFzaGlcIDsKK+WPpOaIpuWgtCA8IGtvc2Vuam91XCA7CivkuInnlbPntIAgPCBzYW5qb3VraVwgOwor5aW95oSP55qEIDwga291aXRla2lcIDsKK+W+oemms+i1sCA8IGdvY2hpc291XCA7Civph5HnuIEgPCBraW5idWNoaVwgOwor5Y2K6YGTIDwgaGFubWljaGlcIDsKK+WMl+mZuCA8IGhva3VyaWt1XCA7CivmibbppIrogIUgPCBmdXlvdXNoYVwgOwor5Y2B5a2X6LuNIDwganV1amlndW5cIDsKK+aMieaJi+ekvCA8IGFuc2h1cmVpXCA7CivlkIzkvY3op5IgPCBkb3Vpa2FrdVwgOwor5Y6f6JasIDwgZ2VuJyd5YWt1XCA7CivljbPoq74gPCBzb2t1ZGFrdVwgOwor5rS75q66IDwga2Fzc2F0c3VcIDsKK+WRqOa1gSA8IHNodXVyeXV1XCA7CivovKrou6LmqZ8gPCByaW50ZW5raVwgOwor56iy5aa7IDwgaW5hZHp1bWFcIDsKK+WOreS6uuiAhSA8IGVuamluc2hhXCA7CivnhKHphY3lvZMgPCBtdWhhaXRvdVwgOwor5ZSQ5aKoIDwga2FyYXN1bWlcIDsKK+WvjOijleeojiA8IGZ1eXV1emVpXCA7CivnlbDlj6PlkIzpn7MgPCBpa3Vkb3VvblwgOwor6Yej56u/IDwgdHN1cml6YW9cIDsKK+mBjuWKtOatuyA8IGthcm91c2hpXCA7CivntIXooZvlhbUgPCBrb3VlaWhlaVwgOwor6Yed566xIDwgaGFyaWJha29cIDsKK+euoeeQhuiAhSA8IGthbnJpc2hhXCA7CivlpJzllYbkurogPCB5b2FraW5kb1wgOwor6IiM5LiL6IW6IDwgemVra2FzZW5cIDsKK+aJgOaMgeWTgSA8IHNob2ppaGluXCA7CivntIDooYzmlocgPCBraWtvdWJ1blwgOwor54Gr5bGx54GwIDwga2F6YW5iYWlcIDsKK+mojuWjq+mBkyA8IGtpc2hpZG91XCA7CivlibDkvZnph5EgPCBqb3V5b2tpblwgOwor5Y2T6LaKIDwgdGFrdWV0c3VcIDsKK+ixiuawtOacnyA8IGhvdXN1aWtpXCA7CivkvY7og73lhZAgPCB0ZWlub3VqaVwgOwor5biw57SN5rOVIDwga2lub3Vob3VcIDsKK+eNheWtkOW6pyA8IHNoaXNoaXphXCA7CivkuqTmj5vlmaggPCBrb3VrYW5raVwgOwor5LiW55WM5Lq6IDwgc2VrYWlqaW5cIDsKK+ihm+eUn+maiiA8IGVpc2VpdGFpXCA7Civlj5bntYQgPCB0b3Jpa3VtaVwgOwor6JKy6Ym+IDwga2FtYWJva29cIDsKK+a1t+aKnCA8IGthaWJhdHN1XCA7Civph5HnrrEgPCBrYW5lYmFrb1wgOwor55CG5LqL6ZW3IDwgcmlqaWNob3VcIDsKK+W5s+Wxi+aguSA8IGhpcmF5YW5lXCA7Civmtojmga8gPCBzaG91c29rdVwgOwor5YWD6ICB6ZmiIDwgZ2Vucm91aW5cIDsKK+ajhOaoqeiAhSA8IGtpa2Vuc2hhXCA7CivkuJbnlYzkuK0gPCBzZWthaWp1dVwgOwor5rKz5Y+j5rivIDwga2Frb3Vrb3VcIDsKK+WPo+esmyA8IGt1Y2hpYnVlXCA7Civljp/ojLggPCBoYXJhdGFrZVwgOwor6bSb6bSmIDwgb3NoaWRvcmlcIDsKK+iWrOeOiSA8IGt1c3VkYW1hXCA7CivkuI3kvZPoo4EgPCBmdXRlaXNhaVwgOwor6JmQ5b6FIDwgZ3lha3V0YWlcIDsKK+avkuicmOibmyA8IGRva3VndW1vXCA7CivljZjoqp7nr4cgPCB0YW5nb2hlblwgOwor6buS5p6gIDwga3Vyb3dha3VcIDsKK+mHkeeptCA8IGtpbmtldHN1XCA7CivnlJ/lvpLmlbAgPCBzZWl0b3N1dVwgOwor6buS5pyNIDwga3Vyb2Z1a3VcIDsKK+e+iuearue0mSA8IHlvdWhpc2hpXCA7Civli53ppqwgPCBrYWNoaXVtYVwgOwor56C06ZCYIDwgd2FyZWdhbmVcIDsKK+W/heimgSA8IGhpdHN1eW91XCA7Civmt7flhaUgPCBrb24nJ255dXVcIDsKK+avjeezu+WItiA8IGJva2Vpc2VpXCA7CivlsZXnpLrloLQgPCB0ZW5qaWpvdVwgOwor5b+N6KGTIDwgbmluanV0c3VcIDsKK+WOs+e9sCA8IGdlbmJhdHN1XCA7Civlvozpgbrnl4cgPCBrb3Vpc2hvdVwgOwor5rWB5pyoIDwgcnl1dWJva3VcIDsKK+mIjeeJqSA8IGRvbmJ1dHN1XCA7CivlvJXngavmuKnluqYgPCBpbmthb25kb1wgOwor5Y+455u0IDwgc2hpY2hva3VcIDsKK+emgeassiA8IGtpbicneW9rdVwgOwor5riH5LuwIDwga2F0c3Vnb3VcIDsKK+enqeW6jyA8IGNoaXRzdWpvXCA7CivljZLoq5YgPCBzb3RzdXJvblwgOwor5LiN5a6a6KmeIDwgZnV0ZWlzaGlcIDsKK+awtOicnCA8IHN1aW1pdHN1XCA7CivliqDmi4XogIUgPCBrYXRhbnNoYVwgOwor55+z6auYIDwga29rdWRha2FcIDsKK+mZvembu+awlyA8IHlvdWRlbmtpXCA7Civlkb3ml6UgPCBtZWluaWNoaVwgOwor5b6p6K6QIDwgZnVrdXNodXVcIDsKK+Wuo+S8neiyuyA8IHNlbmRlbmhpXCA7CivlkIznjocgPCBkb3VyaXRzdVwgOwor5oOc5pilIDwgc2VraXNodW5cIDsKK+WKh+aYoOeUuyA8IGdla2llaWdhXCA7CivnpLzniakgPCByZWltb3RzdVwgOwor55+t6auqIDwgdGFucGF0c3VcIDsKK+iZmuWunyA8IGt5b2ppdHN1XCA7CivmgYvnnYAgPCByZW5jaGFrdVwgOwor6Zi/5Y+k5bGL6LKdIDwgYWtveWFnYWlcIDsKK+mBiuiVqeWFkCA8IHl1dXRvdWppXCA7Civlvqnoqr8gPCBmdWt1Y2hvdVwgOwor6YeR5rqA5a62IDwga2lubWFua2FcIDsKK+mMoOWJjeWxiyA8IGpvdW1hZXlhXCA7Civnn6XlkI3luqYgPCBjaGltZWlkb1wgOwor5ZCN54mpIDwgbWVpYnV0c3VcIDsKK+WMl+mAsiA8IGhva3VzaGluXCA7Civlh7rpsYjnm64gPCBkZXRhcmFtZVwgOwor6buE5piPIDwgdGFzb2dhcmVcIDsKK+aHh+ipseS8miA8IGtvbndha2FpXCA7Civpgb/pm6PmsJEgPCBoaW5hbm1pblwgOwor5Y+y55WlIDwgc2hpcnlha3VcIDsKK+WNgeWtl+ihlyA8IGp1dWppZ2FpXCA7CivkuLvmvJTogIUgPCBzaHVlbnNoYVwgOwor5rOl5r+YIDwgbnVrYXJ1bWlcIDsKK+iXpOajmiA8IGZ1amlkYW5hXCA7CivkuJbkv5fljJYgPCBzZXpva3VrYVwgOwor57KX6KO95ZOBIDwgc29zZWloaW5cIDsKK+WOs+eymyA8IGdlbnNodWt1XCA7CivpiYTmo5IgPCB0ZXRzdWJvdVwgOwor6bOp6bqmIDwgaGF0b211Z2lcIDsKK+WPs+W/g+aIvyA8IHVzaGluYm91XCA7CivlnKfliLbogIUgPCBhc3NlaXNoYVwgOwor5bGV56S65ZOBIDwgdGVuamloaW5cIDsKK+mJhOaigyA8IGthbmF0ZWtvXCA7CivokL3prYQgPCByYWt1aGFrdVwgOwor6YeP55qEIDwgcnlvdXRla2lcIDsKK+W/oOiJryA8IGNodXVyeW91XCA7Civmm7joqJjlrpggPCBzaG9raWthblwgOwor6YO35Zyf5oSbIDwga3lvdWRvYWlcIDsKK+iyr+iUteW6qyA8IGNob3pvdWtvXCA7Civol6nmnK0gPCBoYW5zYXRzdVwgOwor55Sf55yf6Z2i55uuIDwga2ltYWppbWVcIDsKK+S4i+mmrOiplSA8IGdlYmFoeW91XCA7CivkuI3og73ogIUgPCBmdW5vdXNoYVwgOwor5YuF6aGYIDwgY2hva3VnYW5cIDsKK+mFkuiUtSA8IHNha2FndXJhXCA7Civli4XpoYwgPCBjaG9rdWRhaVwgOwor5LiN6Imv5YyWIDwgZnVyeW91a2FcIDsKK+iWhOiNt+ezliA8IGhha2thdG91XCA7CivoloTojbfnsr4gPCBoYWtrYXNlaVwgOwor5byx6ZyHIDwgamFrdXNoaW5cIDsKK+avlOWWqeeahCA8IGhpeXV0ZWtpXCA7CivnpoHmnK0gPCBraW5zYXRzdVwgOwor5LqJ6K2w5qipIDwgc291Z2lrZW5cIDsKK+mHjeemgemMriA8IGp1dWtpbmtvXCA7CivpgYvli5XmrIQgPCB1bmRvdXJhblwgOwor56iu5YilIDwgc2h1YmV0c3VcIDsKK+m7kuaIvyA8IGt1cm9idXNhXCA7CivovrLnuYHmnJ8gPCBub3VoYW5raVwgOwor5oKm5qW9IDwgZXRzdXJha3VcIDsKK+awtOiNiSA8IG1penVrdXNhXCA7CivmhJvlrZAgPCBpdG9zaGlnb1wgOwor6YmE5p2QIDwgdGV0c3V6YWlcIDsKK+W8pumfsyA8IHRzdXJ1b3RvXCA7CivllJDlgpggPCBrYXJha2FzYVwgOwor5oSf5Y+X5oCnIDwga2FuanVzZWlcIDsKK+m6puadnyA8IG11Z2l0YWJhXCA7CivlhbXlmajlt6UgPCBoZWlraWtvdVwgOwor5YCq6Zuy5p6XIDwgZ2VpdW5yaW5cIDsKK+awtOiMjiA8IG1penVndWtpXCA7CivpgYvpgIHoiLkgPCB1bnNvdXNlblwgOwor5oaC5LqLIDwgdXJlaWdvdG9cIDsKK+efremdtCA8IHRhbmd1dHN1XCA7CivmsLToi5QgPCBtaXp1Z29rZVwgOwor6YGK5Ya26YOOIDwgeXV1eWFyb3VcIDsKK+eUu+S7mee0mSA8IGdhc2Vuc2hpXCA7CivmtIvmoqggPCB5b3VuYXNoaVwgOwor5aSa5q616ZqOIDwgdGFkYW5rYWlcIDsKK+ippumok+apnyA8IHNoaWtlbmtpXCA7CivkuIDoiKzoq5YgPCBpcHBhbnJvblwgOwor5Yqg566X56iOIDwga2FzYW56ZWlcIDsKK+aui+mbqiA8IHphbnNldHN1XCA7CivljprntJkgPCBhdHN1Z2FtaVwgOwor5rW05a6iIDwgeW9ra3lha3VcIDsKK+WIhuWykOe3miA8IGJ1bmtpc2VuXCA7Civlloflj63miYsgPCByYXBwYXNodVwgOwor5rC06Ii5IDwgbWl6dWJ1bmVcIDsKK+azpeayvCA8IGRvcm9udW1hXCA7Civlj43nmbogPCBoYW5wYXRzdVwgOwor56We5qeYIDwga2FtaXNhbWFcIDsKK+ejqOefsyA8IHRvZ2lpc2hpXCA7CivlvIHpq6ogPCBiZW5wYXRzdVwgOwor5rOl5rC0IDwgZG9yb21penVcIDsKK+azoeayqyA8IGhvdW1hdHN1XCA7CivlhY3nvarnrKYgPCBtZW56YWlmdVwgOwor54qs6buE5qWKIDwgaW51dHN1Z2VcIDsKK+elnualrSA8IGthbWl3YXphXCA7CivmsLTohbkgPCBtaXp1YmFyYVwgOwor5Y+C552AIDwgc2FuY2hha3VcIDsKK+WOreS4luimsyA8IGVuc2Vpa2FuXCA7CivnorrntIQgPCBrYWt1eWFrdVwgOwor5rC06ISIIDwgc3VpbXlha3VcIDsKK+WNiuS4lue0gCA8IGhhbnNlaWtpXCA7CivphbXmr43oj4wgPCBrb3Vib2tpblwgOwor56We5qOaIDwga2FtaWRhbmFcIDsKK+WGt+e9qOazlSA8IHJlaWFucG91XCA7Civlj6TniakgPCBmdXJ1bW9ub1wgOwor5oSb6JS154mIIDwgYWl6b3ViYW5cIDsKK+W/q+e1tiA8IGthaXpldHN1XCA7CivlvqHlgYnmlrkgPCBvZXJhZ2F0YVwgOwor6KiY5pWw5rOVIDwga2lzdXVob3VcIDsKK+epuuS4i+aJiyA8IGthcmFoZXRhXCA7Civph5HniakgPCBrYW5hbW9ub1wgOwor56We5qC8IDwgc2hpbmtha3VcIDsKK+emv+WxsSA8IGhhZ2V5YW1hXCA7CivljYHolqwgPCBkb2t1ZGFtaVwgOwor5LiN5YGl5bq3IDwgZnVrZW5rb3VcIDsKK+ayiOeXmyA8IGNoaW50c3V1XCA7CivmgKXnl4UgPCBreXV1YnlvdVwgOwor5o6i5qSc5a62IDwgdGFua2Vua2FcIDsKK+efs+mPgyA8IHNla2l6b2t1XCA7CivlpKfmsJflnI8gPCB0YWlraWtlblwgOwor542F5a2Q5ZC8IDwgc2hpc2hpa3VcIDsKK+eojuWIpSA8IHplaWJldHN1XCA7Civku6PnkIbmqKkgPCBkYWlyaWtlblwgOwor54mp5Lu26LK7IDwgYnVra2VuaGlcIDsKK+m7kuW5lSA8IGt1cm9tYWt1XCA7CivnpZ3mna8gPCBzaHVrdWhhaVwgOwor5oKq5pOmIDwgd2FydXp1cmVcIDsKK+ato+imj+WFtSA8IHNlaWtpaGVpXCA7Civlho3phY3luIMgPCBzYWloYWlmdVwgOwor6by75YWIIDwgaGFuYXNha2lcIDsKK+elnuaciCA8IGtvdWR6dWtpXCA7CivmsJHojYkgPCB0YW1pZ3VzYVwgOwor5Zub55Wz5Y2KIDwgeW9qb3VoYW5cIDsKK+a0u+W8gSA8IGthdHN1YmVuXCA7CivlsZXnpLrkvJogPCB0ZW5qaWthaVwgOwor5aSn6YO95biCIDwgZGFpdG9zaGlcIDsKK+WSjOWupCA8IHdhc2hpdHN1XCA7CivlhYjlrabmnJ8gPCBzZW5nYWtraVwgOwor5oKq5rSS6JC9IDwgd2FydWphcmVcIDsKK+mHiOeEtiA8IHNoYWt1emVuXCA7Civoh6rmsJHlhZogPCBqaW1pbnRvdVwgOwor5Yy755mC5ZOBIDwgaXJ5b3VoaW5cIDsKK+WGheaymeaxsCA8IHVjaGl6YXRhXCA7Civlk7LkurogPCB0ZXRzdWppblwgOwor56aP5b6zIDwgZnVrdXRva3VcIDsKK+m7kuWxsSA8IGt1cm95YW1hXCA7Civli7/oq5YgPCBtb2NoaXJvblwgOwor5YiG5YWJ5ZmoIDwgYnVua291a2lcIDsKK+aAqueJqSA8IGthaWJ1dHN1XCA7CivopqrkuI3lrZ0gPCBveWFmdWtvdVwgOwor56aP5byVIDwgZnVrdWJpa2lcIDsKK+WNkuiAhSA8IHNvdHN1c2hhXCA7CivnuIHotbfniakgPCBlbmdpbW9ub1wgOwor5rWB5pif6ZuoIDwgcnl1dXNlaXVcIDsKK+WOn+eZuiA8IGdlbnBhdHN1XCA7CivlibLpq5ggPCB3YXJpZGFrYVwgOwor6JGX6L+wIDwgY2hvanV0c3VcIDsKK+W5tOiyouexsyA8IG5lbmd1bWFpXCA7Civljprnmq4gPCBhdHN1a2F3YVwgOwor5rSX5rWE5ZmoIDwgc2Vuam91a2lcIDsKK+avm+iZsSA8IGtlamlyYW1pXCA7CivlvqrnkrDlmaggPCBqdW5rYW5raVwgOwor6YWS57OfIDwgc2FrZWthc3VcIDsKK+eEoeeQhuefoueQhiA8IG11cml5YXJpXCA7CivlgaXlurflhZAgPCBrZW5rb3VqaVwgOwor56iO55CG5aOrIDwgemVpcmlzaGlcIDsKK+W8lemHkSA8IGhpa2lnYW5lXCA7Civlj6TmsrMgPCBmdXJ1a2F3YVwgOwor5Lq65oOF5ZGzIDwgbmluam91bWlcIDsKK+etieiqnue3miA8IHRvdWdvc2VuXCA7Civmr5Lom4cgPCBkb2t1aGViaVwgOwor5Y2B5a2X57eaIDwganV1amlzZW5cIDsKK+S4jeS9v+eUqCA8IGZ1c2hpeW91XCA7CivkuIDnlJ/pnaIgPCBpc3NlaW1lblwgOwor5peF6KGM6KiYIDwgcnlva291a2lcIDsKK+mJhOW6iiA8IGthbmF0b2tvXCA7CivlgIvkvZPnvqQgPCBrb3RhaWd1blwgOwor5ZCN5puyIDwgbWVpa3lva3VcIDsKK+WPo+iTi+mfsyA8IGtvdWdhaW9uXCA7CivlkIzmnIggPCBkb3VnZXRzdVwgOwor5Zyn5bu25qmfIDwgYXRzdWVua2lcIDsKK+WSjOWjsOazlSA8IHdhc2VpaG91XCA7CivljaDnrpcgPCB1cmF5YXNhblwgOwor6auY6aC75bqmIDwga291aGluZG9cIDsKK+Wwj+ixhuiJsiA8IGF6dWtpaXJvXCA7Civmr5LolqwgPCBkb2t1eWFrdVwgOwor5Y6z576O5riTIDwgZ2VuYmlrZWlcIDsKK+axuueEtiA8IGtldHN1emVuXCA7CivnpLrlqIHpgYvli5UgPCBqaWl1bmRvdVwgOwor54Gr5bGx5by+IDwga2F6YW5kYW5cIDsKK+WNiuirp+mfsyA8IGhhbmthaW9uXCA7Civmg4Xlrp8gPCBqb3VqaXRzdVwgOwor56eL5Y+jIDwgYWtpZ3VjaGlcIDsKK+WPluaxuiA8IHRvcmlraW1lXCA7CivlkIzml6UgPCBkb3VqaXRzdVwgOwor56Wt5byPIDwgc2Fpc2hpa2lcIDsKK+iZkOS9vyA8IGd5YWt1c2hpXCA7CivmspDmtbQgPCBtb2t1eW9rdVwgOwor6YmE5bGxIDwgdGV0c3V6YW5cIDsKK+axguazleiAhSA8IGd1aG91c2hhXCA7CivngavlsbHluK8gPCBrYXphbnRhaVwgOwor5rSe5a+fIDwgZG91c2F0c3VcIDsKK+S4i+mnhOeusSA8IGdldGFiYWtvXCA7CivpgZPpoIYgPCBtaWNoaWp1blwgOwor56We5b6zIDwgc2hpbnRva3VcIDsKK+iKnea1t+iAgSA8IHNoaWJhZWJpXCA7CivlpKfliIbnnIwgPCBvb2l0YWtlblwgOwor5b6p57GNIDwgZnVrdXNla2lcIDsKK+Wxsee+iumrrSA8IHlhZ2loaWdlXCA7CivngKzmiLjpmpsgPCBzZXRvZ2l3YVwgOwor5q+S6Iy4IDwgZG9rdXRha2VcIDsKK+W7tumHkSA8IG5vYmVnYW5lXCA7CivnooznoowgPCByb2t1cm9rdVwgOwor6Yqt5LqAIDwgemVuaWdhbWVcIDsKK+eBq+WxseWztiA8IGthemFudG91XCA7CivkuIDlpKvkuIDlqaYgPCBpcHB1aXBwdVwgOwor5q2v6LuKIDwgaGFndXJ1bWFcIDsKK+S4jeWvqeeBqyA8IGZ1c2hpbmJpXCA7CivlpYnku5XlpbMgPCBob3VzaGltZVwgOwor54Gr5bGx5bKpIDwga2F6YW5nYW5cIDsKK+W8lei2iiA8IGhpa2tvc2hpXCA7CivliYPpq6ogPCB0ZWloYXRzdVwgOwor5b+954S2IDwga290c3V6ZW5cIDsKK+eOieegguWIqSA8IHRhbWFqYXJpXCA7CivkuIDliIbljYogPCBpcHB1bmhhblwgOwor5Y+k5qCqIDwgZnVydWthYnVcIDsKK+iKsemzpeeUuyA8IGthY2hvdWdhXCA7CivnhKHoj4zms5UgPCBtdWtpbmhvdVwgOwor5oKE5oKEIDwgc3Vnb3N1Z29cIDsKK+eEoeWFjeiosSA8IG11bWVua3lvXCA7CivlvoXpgb/nt5ogPCB0YWloaXNlblwgOwor56Gs562GIDwga291aGl0c3VcIDsKK+W5tOizgOeKtiA8IG5lbmdham91XCA7Civlj6Tlj4LogIUgPCBrb3NhbnNoYVwgOwor5b+F552AIDwgaGl0Y2hha3VcIDsKK+S6lOWIhuS6lOWIhiA8IGdvYnVnb2J1XCA7Civlj6TmnI0gPCBmdXJ1ZnVrdVwgOwor5YiG5bKQ54K5IDwgYnVua2l0ZW5cIDsKK+S+jeW+k+WumCA8IGppanV1a2FuXCA7CivlhoXph47miYsgPCBuYWl5YXNodVwgOwor5rK56YCB566hIDwgeXVzb3VrYW5cIDsKK+awtOeTtiA8IG1penVnYW1lXCA7Civoqpjom77nga8gPCB5dXVnYXRvdVwgOwor5b+D55qEIDwgc2hpbnRla2lcIDsKK+ioiOeQhuWjqyA8IGtlaXJpc2hpXCA7Civpm5HosqjlupcgPCB6YWtrYXRlblwgOwor5bqn5Y+z6YqYIDwgemF5dXVtZWlcIDsKK+WQvuWtkCA8IHdhZ2ltb2tvXCA7CivlrZDpn7PmgKcgPCBzaGlpbnNlaVwgOwor5rCX55+tIDwga2ltaWppa2FcIDsKK+W+l+etliA8IHRva3VzYWt1XCA7Civli4Xoo4EgPCBjaG9rdXNhaVwgOwor5pyf5b6F5oSfIDwga2l0YWlrYW5cIDsKK+mBqemHjyA8IHRla2lyeW91XCA7Civlv4Pnl5sgPCBzaGludHN1dVwgOwor6YGL5YuV5a62IDwgdW5kb3VzaGFcIDsKK+mHkeaYnyA8IGtpbmJvc2hpXCA7CivmhJrpgKPpmoogPCBndXJlbnRhaVwgOwor5Y6f5a2Q6ZuyIDwgZ2Vuc2hpdW5cIDsKK+S7o+eQhuW6lyA8IGRhaXJpdGVuXCA7CivlvL7olqwgPCBkYW4nJ3lha3VcIDsKK+awtOeOiSA8IG1penV0YW1hXCA7CivnpoHlnKcgPCBraW4nJ2F0c3VcIDsKK+W+s+ebriA8IHRva3Vtb2t1XCA7Civoq7jlmajmorAgPCBzaG9raWthaVwgOwor6YeM5pa5IDwgc2F0b2thdGFcIDsKK+azleW+iyA8IGhvdXJpdHN1XCA7Civph4jmmI4gPCBzaGFrdW1laVwgOwor5pON6Ii15omLIDwgc291ZGFzaHVcIDsKK+WHuuatr+S6gCA8IGRlYmFrYW1lXCA7CivkuI3lgaXlhaggPCBmdWtlbnplblwgOwor5rS75YuVIDwga2F0c3Vkb3VcIDsKK+m7kuWGhiA8IGt1cm9tYXJ1XCA7Civnm7joo5zmgKcgPCBzb3Vob3NlaVwgOwor5rC054mpIDwgbWl6dW1vbm9cIDsKK+W+l+elqCA8IHRva3VoeW91XCA7CivliJ3mnJ/lgKQgPCBzaG9raWNoaVwgOwor5rS+5Ye6IDwgaGFzaHV0c3VcIDsKK+mHiOaUviA8IHNoYWt1aG91XCA7CivmjqXpoK3ovp4gPCBzZXR0b3VqaVwgOwor55Sf5b6S5LyaIDwgc2VpdG9rYWlcIDsKK+a1geWFpSA8IHJ5dXVueXV1XCA7CivmrovomZAgPCB6YW5neWFrdVwgOwor6Jas5bGLIDwga3VzdXJpeWFcIDsKK+iWrOWxgCA8IHlha2t5b2t1XCA7Civnoaznm7QgPCBrb3VjaG9rdVwgOwor5ZCI5byPIDwgZ291c2hpa2lcIDsKK+elnuWmmSA8IHNoaW5teW91XCA7CivpgaDpgZMgPCB0b29taWNoaVwgOwor6aCQ6KiA6ICFIDwgeW9nZW5zaGFcIDsKK+W9k+iBtyA8IHRvdXNob2t1XCA7CivlupXpnakgPCBzb2tvZ2F3YVwgOwor6Jas5a2mIDwgeWFrdWdha3VcIDsKK+emj+WKqSA8IGZ1a3VzdWtlXCA7Civplovlgqzml6UgPCBrYWlzYWliaVwgOwor6IO06ZaT5aOwIDwgZG91bWFnb2VcIDsKK+iDjOeVquWPtyA8IHNlYmFuZ291XCA7Civmta7mtarogIUgPCBmdXJvdXNoYVwgOwor5Lya5ZOh5Yi4IDwga2FpaW5rZW5cIDsKK+S8muWToeWItiA8IGthaWluc2VpXCA7Civmr5vnrYYgPCBtb3VoaXRzdVwgOwor6Iux57Gz5rOVIDwgZWliZWlob3VcIDsKK+WOu+aciCA8IGt5b2dldHN1XCA7CivnnYDpp4UgPCBjaGFrdWVraVwgOwor5ZCI55CG6KuWIDwgZ291cmlyb25cIDsKK+Wkp+mDqOWIhiA8IGRhaWJ1YnVuXCA7CivmgZDmgqYgPCBreW91ZXRzdVwgOwor6JSt5qeYIDwga2FnZXNhbWFcIDsKK+elnuWfnyA8IHNoaW4nJ2lraVwgOwor5Y2D55SfIDwgc2VuJyduYXJpXCA7CivoloTlvLEgPCBoYWt1amFrdVwgOwor5LqU6KeS5b2iIDwgZ29rYWtrZWlcIDsKK+S4reimj+aooSA8IGNodXVraWJvXCA7Civlv4XnhLYgPCBoaXRzdXplblwgOwor5aSn6YO95LyaIDwgZGFpdG9rYWlcIDsKK+itt+mAgei7iiA8IGdvc291c2hhXCA7Civph43miYvku6MgPCBvbW90ZWRhaVwgOwor5ZCM5bGAIDwgZG91a3lva3VcIDsKK+iSuOedgCA8IGpvdWNoYWt1XCA7CivluoPloLHpg6ggPCBrb3Vob3VidVwgOwor5Y2K546JIDwgaGFuZ3lva3VcIDsKK+mAhumiqCA8IGd5YWt1ZnV1XCA7CivliIbpqqggPCBidW5rb3RzdVwgOwor5b6M6bOl57696ZmiIDwgZ290b2JhaW5cIDsKK+W5vOmhlCA8IG9zYW5hZ2FvXCA7CivlkIzlrr8gPCBkb3VzaHVrdVwgOwor5ZCN5a6fIDwgbWVpaml0c3VcIDsKK+atouihgCA8IHNoaWtldHN1XCA7Civli5XohIggPCBkb3VteWFrdVwgOwor552A6aCGIDwgY2hha3VqdW5cIDsKK+iSuOeZuiA8IGpvdWhhdHN1XCA7CivpgIbpoIYgPCBneWFrdWp1blwgOwor5ZCI5a6/IDwgZ2Fzc2h1a3VcIDsKK+WKh+iplSA8IGdla2loeW91XCA7CivphbjmrKAgPCBzYW5rZXRzdVwgOwor5b6M55m6IDwga291aGF0c3VcIDsKK+S4ieadr+mFoiA8IHNhbmJhaXp1XCA7Civnr4Dngq3lmaggPCBzZXR0YW5raVwgOwor6YmE5YiGIDwgdGV0c3VidW5cIDsKK+W4jOacm+iAhSA8IGtpYm91c2hhXCA7CivlpJbnp5HlraYgPCBnZWthZ2FrdVwgOwor5YiR5LqL54qvIDwga2VpamloYW5cIDsKK+mFjee3muWbsyA8IGhhaXNlbnp1XCA7CivmqZ/morDoq5YgPCBraWthaXJvblwgOwor552A6Zu7IDwgY2hha3VkZW5cIDsKK+W3neeni+aymSA8IGthd2FhaXNhXCA7Civlj4vmiJAgPCB0b21vbmFyaVwgOwor5paH5YyW5ZyPIDwgYnVua2FrZW5cIDsKK+aOpemgreiqniA8IHNldHRvdWdvXCA7CivmsLTmtJ8gPCBtaXp1YmFuYVwgOwor5LqL5pWF5q20IDwgamlrb3Jla2lcIDsKK+WJjei/sCA8IHplbmp1dHN1XCA7CivlibLorbIgPCBrYXRzdWpvdVwgOwor5bGx5bCP5bGLIDwgeWFtYWdveWFcIDsKK+WOn+absiA8IGdlbmt5b2t1XCA7Civns7jonLvom4kgPCBpdG90b25ib1wgOwor5Y2B6YeN5LqM5Y2B6YeNIDwgdG9laGF0YWVcIDsKK+W+jOeUoyA8IG5vY2hpemFuXCA7Civnp7vou6LlhYggPCBpdGVuc2FraVwgOwor6JC96I6rIDwgcmFrdWJha3VcIDsKK+mBqeiplSA8IHRla2loeW91XCA7Civok4vniakgPCBmdXRhbW9ub1wgOwor5Ye66aasIDwgc2h1dHN1YmFcIDsKK+awtOayoSA8IHN1aWJvdHN1XCA7CivlvqHniakgPCBneW9idXRzdVwgOwor5aSn5Yuy5L2NIDwgZGFpa3VuJydpXCA7CivlvZPnr4AgPCB0b3VzZXRzdVwgOwor5ZC45Y+jIDwgc3Vpa3VjaGlcIDsKK+Wkp+ebrueOiSA8IG9vbWVkYW1hXCA7CivlrpjlhazlkI8gPCBrYW5rb3VyaVwgOwor5oKL5ZeHIDwgcmluc2hva3VcIDsKK+WNlOitsOWToSA8IGt5b3VnaWluXCA7Civou43kuovniq8gPCBndW5qaWhhblwgOwor6ZqP6KGM5ZOhIDwgenVpa291aW5cIDsKK+S4gOi+uuWAkiA8IGlwcGVudG91XCA7Civph53lsbEgPCBoYXJpeWFtYVwgOwor5Y+W5byVIDwgdG9yaWhpa2lcIDsKK+ayoeW5tCA8IGJvdHN1bmVuXCA7Civlj7Llrp8gPCBzaGlqaXRzdVwgOwor6JGJ6ISIIDwgeW91bXlha3VcIDsKK+WPsOWvhiA8IHRhaW1pdHN1XCA7Civnj77ku6Poqp4gPCBnZW5kYWlnb1wgOwor6YGU6K2YIDwgdGFzc2hpa2lcIDsKK+m6puS9nCA8IG11Z2lzYWt1XCA7CivkuI3lsI7mgKcgPCBmdWRvdXNlaVwgOwor5oCn5oKqIDwgc2hvdXdhcnVcIDsKK+eQhuWuueW4qyA8IHJpeW91c2hpXCA7CivlvpPniakgPCBqdXVidXRzdVwgOwor5Lmx6auY5LiLIDwgcmFua291Z2VcIDsKK+W9ueeVnCA8IGVraWNoaWt1XCA7Civlh6HpqqggPCBib25rb3RzdVwgOwor6YeR5bGRIDwga2FuYWt1enVcIDsKK+W/heauuiA8IGhpc3NhdHN1XCA7Civlj6Tlr7ogPCBmdXJ1ZGVyYVwgOwor56S+5Lqk5a62IDwgc2hha291a2FcIDsKK+a0m+S4rSA8IHJha3VjaHV1XCA7Civlh7jpnaIgPCB0b3RzdW1lblwgOwor5paH5YyW5Y+yIDwgYnVua2FzaGlcIDsKK+WQuOWFpSA8IGt5dXVueXV1XCA7CivkuI3nlKjlk4EgPCBmdXlvdWhpblwgOwor5Yiw6YGUIDwgdG91dGF0c3VcIDsKK+WPo+WunyA8IGtvdWppdHN1XCA7CivpgI/mmI7luqYgPCB0b3VtZWlkb1wgOwor5LiN5a6a5rOVIDwgZnV0ZWlob3VcIDsKK+WKh+iWrCA8IGdla2l5YWt1XCA7Civnn63nuK4gPCB0YW5zaHVrdVwgOwor5rip5o6S5rC0IDwgb25oYWlzdWlcIDsKK+WGt+m6piA8IGhpeWFtdWdpXCA7CivnpZ3lhbggPCBzaHVrdXRlblwgOwor5Ye66ZmzIDwgc2h1dGNoaW5cIDsKK+iIquepuui3ryA8IGtvdWt1dXJvXCA7CivokZvnsaAgPCB0c3VkenVyYVwgOwor6LOH55Sj5a62IDwgc2hpc2Fua2FcIDsKK+mhnuS8vOeCuSA8IHJ1aWppdGVuXCA7Civmt6HmsLTmuZYgPCB0YW5zdWlrb1wgOwor5bqD5aCx6KqyIDwga291aG91a2FcIDsKK+W+s+ayoiA8IHRva3V0YWt1XCA7Civph4jlsIogPCBzaGFrdXNvblwgOwor5bmz6Y2LIDwgaGlyYW5hYmVcIDsKK+mFkuaovSA8IHNha2FkYXJ1XCA7CivlvIHoiIwgPCBiZW56ZXRzdVwgOwor5bCP5Lq65pWwIDwga29uaW56dXVcIDsKK+aEm+efpeecjCA8IGFpY2hpa2VuXCA7Civov73pjLIgPCB0c3Vpcm9rdVwgOwor5oGL5aa7IDwga29pZHp1bWFcIDsKK+W+qea0uyA8IGZ1a2thdHN1XCA7CivkurrpgKDol40gPCBqaW56b3VhaVwgOwor5Yy75a2m6ICFIDwgaWdha3VzaGFcIDsKK+aCquaEn+aDhSA8IGFra2Fuam91XCA7Civmgavllp0gPCBkb3VrYXRzdVwgOwor5pyq5Yem5YiGIDwgbWlzaG9idW5cIDsKK+W3rumFjeS6uiA8IHNhaGFpbmluXCA7CivkvY7poLvluqYgPCB0ZWloaW5kb1wgOwor5L2c54K654qvIDwgc2FrdWloYW5cIDsKK+WJo+ihkyA8IGtlbmp1dHN1XCA7CivljrPlvosgPCBnZW5yaXRzdVwgOwor5q2v56eR55SoIDwgc2hpa2F5b3VcIDsKK+WKq+e9sCA8IGdvdWJhdHN1XCA7CivlvavnkKIgPCBjaG91dGFrdVwgOwor5YyW54mpIDwgYmFrZW1vbm9cIDsKK+iWquWJsiA8IG1ha2l3YXJpXCA7CivlvZPnm7QgPCB0b3VjaG9rdVwgOwor5YaN5Yem55CGIDwgc2Fpc2hvcmlcIDsKK+WJr+iZuSA8IGZ1a3VuaWppXCA7CivoirHojKPok5kgPCBoYW5hZ296YVwgOwor5YyX54iGIDwgaG9rdWJha3VcIDsKK+eOhOatpuWyqSA8IGdlbmJ1Z2FuXCA7CivluLjpo58gPCBqb3VzaG9rdVwgOwor6bCQ6a6rIDwgd2FuaXphbWVcIDsKK+azqOWFpSA8IGNodXVueXV1XCA7CivmgKXls7sgPCBreXV1c2h1blwgOwor5ray54q25YyWIDwgZWtpam91a2FcIDsKK+eEoeWIqeaBryA8IG11cmlzb2t1XCA7CivpmaPnvr3nuZQgPCBqaW5iYW9yaVwgOwor6bOp6IO4IDwgaGF0b211bmVcIDsKK+aIpumXmOapnyA8IHNlbnRvdWtpXCA7CivmnInmhI/nmoQgPCB5dXVpdGVraVwgOwor5bqX6LODIDwgdGFuYWNoaW5cIDsKK+WVj+mhjOWFkCA8IG1vbmRhaWppXCA7Civlv4PmoLkgPCBrb2tvcm9uZVwgOwor5Yas6bOlIDwgZnV5dWRvcmlcIDsKK+WNlOalrSA8IGt5b3VneW91XCA7CivlgrXli5nogIUgPCBzYWltdXNoYVwgOwor5Yed6ZuGIDwgZ3lvdXNodXVcIDsKK+S4gOmojuiojiA8IGlra2l1Y2hpXCA7Civoo5zntabot68gPCBob2t5dXVyb1wgOwor6YCB6YGUIDwgc291dGF0c3VcIDsKK+W9q+eJqSA8IGhvcmltb25vXCA7CivlupXosYYgPCBzb2tvbWFtZVwgOwor6bOl6IKMIDwgdG9yaWhhZGFcIDsKK+mzpeiCiSA8IHRvcmluaWt1XCA7Civmr43niakgPCBoYWhhbW9ub1wgOwor5b2iIDwga2F0YWNoaVwgOwor6L2NIDwgd2FkYWNoaVwgOwor5be3IDwgY2hpbWF0YVwgOwor6LejIDwgaGFkYXNoaVwgOwor6LajIDwgb21vbXVraVwgOwor5bGAIDwgdHN1Ym9uZVwgOwor5a+nIDwgbXVzaGlyb1wgOwor5426IDwga2F3YXVzb1wgOwor54uQIDwga2l0c3VuZVwgOwor5auCIDwgYW5peW9tZVwgOwor6KmxIDwgaGFuYXNoaVwgOwor54eVIDwgdHN1YmFtZVwgOwor5ru0IDwgc2hpenVrdVwgOwor5rmWIDwgbWl6dXVtaVwgOwor5YmjIDwgdHN1cnVnaVwgOwor5YedIDwgc2hpa29yaVwgOwor5YagIDwga2FubXVyaVwgOwor5qS/IDwgdHN1YmFraVwgOwor5qKfIDwgZnVrdXJvdVwgOwor6aCCIDwgaXRhZGFraVwgOwor5p+xIDwgaGFzaGlyYVwgOwor5L+OIDwgbWFuYWl0YVwgOwor5p6XIDwgaGF5YXNoaVwgOwor5L6NIDwgc2FtdXJhaVwgOwor576KIDwgaGl0c3VqaVwgOwor5p2xIDwgaGlnYXNoaVwgOwor5piUIDwgbXVrYXNoaVwgOwor57WMIDwgdGF0ZWl0b1wgOwor6YymIDwgbmlzaGlraVwgOwor56eBIDwgd2F0YXNoaVwgOwor56WtIDwgbWF0c3VyaVwgOwor56S+IDwgeWFzaGlyb1wgOwor56K6IDwgdGFzaGlrYVwgOwor6YK4IDwgeWFzaGlraVwgOwor56S+5YWxIDwgc2hha3lvdVwgOwor5b+D5p2QIDwgc2hpbnphaVwgOwor6L+R6ZaTIDwgY2hpa2FtYVwgOwor5Y675bCxIDwga3lvc2h1dVwgOwor5YmN6KGoIDwgemVucHlvdVwgOwor5ZCb5YG0IDwga3Vuc29rdVwgOwor6L+96YCBIDwgdHN1aXNvdVwgOwor5Y2g5pyJIDwgc2VuJyd5dXVcIDsKK+W/jOaXpSA8IGtpbmljaGlcIDsKK+WNoOabuCA8IHVyYWJ1bWlcIDsKK+W4s+mdoiA8IGNob3VtZW5cIDsKK+ebtOmfsyA8IGNob2t1b25cIDsKK+WKn+e4viA8IGtvdXNla2lcIDsKK+awkealrSA8IG1pbmd5b3VcIDsKK+iWhOWRvSA8IGhha3VtZWlcIDsKK+W4remghiA8IHNla2lqdW5cIDsKK+ebiumzpSA8IGVraWNob3VcIDsKK+ayluWkqSA8IGNodXV0ZW5cIDsKK+S4i+WxpOWcnyA8IGthc291ZG9cIDsKK+W/nOaOpSA8IG91c2V0c3VcIDsKK+eeoOiLpSA8IGRvdWpha3VcIDsKK+i1t+WLleapnyA8IGtpZG91a2lcIDsKK+W+jOa1gSA8IGtvdXJ5dXVcIDsKK+WPrOWWmiA8IHNob3VrYW5cIDsKK+W8leeulyA8IGhpa2l6YW5cIDsKK+W4r+mdqSA8IG9iaWthd2FcIDsKK+WHuumHkSA8IHNodWtraW5cIDsKK+WNgeWtl+aetiA8IGp1dWppa2FcIDsKK+WPq+WWmiA8IGt5b3VrYW5cIDsKK+WQieWHtiA8IGtpa2t5b3VcIDsKK+mHjeWcpyA8IGp1dWF0c3VcIDsKK+i/sOmDqCA8IGp1dHN1YnVcIDsKK+m3suW6pyA8IHdhc2hpemFcIDsKK+W8k+eurSA8IGt5dXVzZW5cIDsKK+WIhumAsiA8IGJ1bnNoaW5cIDsKK+iPqeiWqSA8IGJvc2F0c3VcIDsKK+WIhumAnyA8IGZ1bnNva3VcIDsKK+awtOaSgyA8IHN1aWdla2lcIDsKK+ayouWcsCA8IHNhd2FjaGlcIDsKK+WIh+i/qyA8IHNlcHBha3VcIDsKK+WNl+acnSA8IG5hbmNob3VcIDsKK+S6uuW3pembqCA8IGppbmtvdXVcIDsKK+W/teW/tSA8IG5lbicnbmVuXCA7CivvvK7pn78gPCBlbnVreW91XCA7CivmraPntpogPCBzZWl6b2t1XCA7CivokL3nrKwgPCByYWt1ZGFpXCA7Civph6PlkIggPCB0c3VyaWFpXCA7CivmraPntbkgPCBzaG91a2VuXCA7CivppJPprLzpgZMgPCBnYWtpZG91XCA7CivljrPlrrkgPCBnZW4nJ3lvdVwgOwor6YCy6KGMIDwgc2hpbmtvdVwgOwor5ZCJ5YWGIDwga2l0Y2hvdVwgOwor5LiN5a6a5pyfIDwgZnV0ZWlraVwgOwor5YuV55qEIDwgZG91dGVraVwgOwor5ZCM5YOaIDwgZG91cnlvdVwgOwor5q2j57WMIDwgc2Vpa3lvdVwgOwor5YyX5rqAIDwgaG9rdW1hblwgOwor5Y2K5qC8IDwgaGFua2FrdVwgOwor6YCa6KyAIDwgdHN1dWJvdVwgOwor5qih5pOs5bqXIDwgbW9naXRlblwgOwor5Y+s5ZG9IDwgc2hvdW1laVwgOwor6YCa6KuWIDwgdHN1dXJvblwgOwor5bqP6KqsIDwgam9zZXRzdVwgOwor5rOl5LitIDwgZGVpY2h1dVwgOwor5bqV6KeSIDwgdGVpa2FrdVwgOwor5Ymy6IiIIDwgd2FyaWtvdVwgOwor5b6z5pybIDwgdG9rdWJvdVwgOwor5oCl5aSJIDwga3l1dWhlblwgOwor5Y+j5ZSHIDwga291c2hpblwgOwor6bOl57ayIDwgdG9yaWFtaVwgOwor5oGt5YC5IDwga3lvdWtlblwgOwor5Y+r5Y+3IDwga3lvdWdvdVwgOwor5Y+k5q2m6YGTIDwga29idWRvdVwgOwor5qCE6aSK57SgIDwgZWl5b3Vzb1wgOwor5Yi66KGdIDwgc2hpc2hvdVwgOwor5bm96LC3IDwgeXV1a29rdVwgOwor6YSZ5q2MIDwgaGluYXV0YVwgOwor5q6154mpIDwgZGFubW9ub1wgOwor5ZCM5L+hIDwgZG91c2hpblwgOwor55+z55ukIDwgc2VraWJhblwgOwor5q2756WoIDwgc2hpaHlvdVwgOwor5Ymy6IW5IDwga2FwcHVrdVwgOwor5buQ6IiOIDwga3l1dXNoYVwgOwor6YCa6KiIIDwgdHN1dWtlaVwgOwor5Y+w5YyXIDwgdGFpaG9rdVwgOwor5Yuk546LIDwga2luJydub3VcIDsKK+W/q+W+qSA8IGthaWZ1a3VcIDsKK+awkeaciSA8IG1pbicneXV1XCA7CivmrbTnqIsgPCByZWtpdGVpXCA7CivnoLTmu4UgPCBoYW1ldHN1XCA7CivmgKXlopcgPCBreXV1em91XCA7CivpgJrop6MgPCB0c3V1a2FpXCA7CivliKToqq0gPCBoYW5kb2t1XCA7Civph43llLEgPCBqdXVzaG91XCA7CivlkI3kvZwgPCBtZWlzYWt1XCA7CivpgJroprMgPCB0c3V1a2FuXCA7CivlvJTnpa0gPCBjaG91c2FpXCA7CivlkITlgZwgPCBrYWt1dGVpXCA7CivmganlgJ8gPCBvbnNoYWt1XCA7Civlj7LliocgPCBzaGlnZWtpXCA7CivljJfmtIsgPCBob2t1eW91XCA7CivpgJropqcgPCB0c3V1cmFuXCA7CivpganogIUgPCB0ZWtpc2hhXCA7Civlia/ohY4gPCBmdWt1amluXCA7CivnpL7kuK0gPCBzaGFjaHV1XCA7Civov73otIggPCB0c3Vpem91XCA7CivmgKXloLEgPCBreXV1aG91XCA7CivluKvplbcgPCBzaGljaG91XCA7CivliIDouqsgPCB0b3VzaGluXCA7CivliqDnrYYgPCBrYWhpdHN1XCA7Civljrvlo7AgPCBreW9zaG91XCA7CivlkI3ku6MgPCBteW91ZGFpXCA7CivljKHmraMgPCBreW91c2VpXCA7Civouqvli53miYsgPCBtaWdhdHRlXCA7CivlkIjkvZwgPCBnYXNzYWt1XCA7CivnhKHliKnlrZAgPCBtdXJpc2hpXCA7CivlvpPmpa0gPCBqdXVneW91XCA7CivljYrmmYIgPCBoYW50b2tpXCA7CivokL3no5AgPCByYWt1YmFuXCA7Civljp/lr6kgPCBnZW5zaGluXCA7Civmr5LmtrIgPCBkb2t1ZWtpXCA7CivlvbzmsI8gPCBrYXJlc2hpXCA7CivluJ3pmbUgPCB0ZWlyeW91XCA7CivlvrPmlL8gPCB0b2t1c2VpXCA7CivmsJHml48gPCBtaW56b2t1XCA7CivpgaDogLMgPCB0b29taW1pXCA7CivnkaDnkoPoibIgPCBydXJpaXJvXCA7CivlkI3kuLsgPCBuYW51c2hpXCA7CivmgKXlnYIgPCBreXV1aGFuXCA7CivliJ3oqLogPCBzaG9zaGluXCA7CivluoPop5IgPCBrb3VrYWt1XCA7CivlkInkuosgPCBraXRzdWppXCA7CivmsI/ml48gPCBzaGl6b2t1XCA7CivlvJTnoLIgPCBjaG91aG91XCA7Civlu7rnrZYgPCBrZW5zYWt1XCA7CivliY3okYkgPCB6ZW4nJ3lvdVwgOwor6YCa6KGMIDwgdHN1dWtvdVwgOwor5ZCM5LiAIDwgZG91aXRzdVwgOwor5bm+6KixIDwgaWt1YmFrdVwgOwor6YeN5Y6aIDwgY2hvdWtvdVwgOwor6I236YCBIDwgbmlva3VyaVwgOwor5b6p5penIDwgZnVra3l1dVwgOwor6IOD6IW454KOIDwgaWNob3VlblwgOwor5rKh5Y+OIDwgYm9zc2h1dVwgOwor5bu756ugIDwga2Fpc2hvdVwgOwor5Y2a5o2cIDwgaGFrdXNvdVwgOwor55+l55qEIDwgY2hpdGVraVwgOwor5ZCE5Lq6IDwga2FrdWppblwgOwor5q6L55WZIDwgemFucnl1dVwgOwor6LW35YuV5pmCIDwga2lkb3VqaVwgOwor5bmV6LuNIDwgYmFrdWd1blwgOwor5bu656uLIDwga29ucnl1dVwgOwor5rKD5ZywIDwgeW9rdWNoaVwgOwor6YGK6IiIIDwgeXV1a3lvdVwgOwor5b6p5paHIDwgZnVrdWJ1blwgOwor5ZCI5LiAIDwgZ291aXRzdVwgOwor5Yil6KGoIDwgYmVwcHlvdVwgOwor5Ymv572yIDwgZnVrdXNob1wgOwor5Y+X5Y+WIDwgdWtldG9yaVwgOwor5b+D5oi/IDwgc2hpbmJvdVwgOwor5Y+k5Yi5IDwga29zYXRzdVwgOwor5Yq055u4IDwgcm91c2hvdVwgOwor6YOt5riFIDwga2FrdXNlaVwgOwor5Ye66LWwIDwgc2h1c3NvdVwgOwor5bm76KaaIDwgZ2Vua2FrdVwgOwor5Ymb6IW5IDwgZ291ZnVrdVwgOwor5q666Zmj5birIDwgdGF0ZXNoaVwgOwor6aGe576p6KqeIDwgcnVpZ2lnb1wgOwor5q2v55+zIDwgc2hpc2VraVwgOwor5a626KiI57C/IDwga2FrZWlib1wgOwor5oGl5LiYIDwgY2hpa3l1dVwgOwor5YWo6bqmIDwgemVuYmFrdVwgOwor5Y2a5omTIDwgYmFrdWNoaVwgOwor6L+96KqNIDwgdHN1aW5pblwgOwor6YeP5YiRIDwgcnlvdWtlaVwgOwor6YeN5Yi7IDwganV1a29rdVwgOwor56K65a6IIDwga2FrdXNodVwgOwor55m76KiY57C/IDwgdG91a2lib1wgOwor6L+96KmmIDwgdHN1aXNoaVwgOwor5Ye66LOHIDwgc2h1c3NoaVwgOwor55yf6LSLIDwgc2hpbmdhblwgOwor5rCX5oyBIDwga2ltb2NoaVwgOwor6YeN5q+N6Z+zIDwganV1Ym9pblwgOwor5bmz6KeSIDwgaGVpa2FrdVwgOwor5q2j56K6IDwgc2Vpa2FrdVwgOwor6L+96KiOIDwgdHN1aXRvdVwgOwor5q+s5qCXIDwgaWdhZ3VyaVwgOwor5q2755eFIDwgc2hpYnlvdVwgOwor5YWx6bO0IDwga3lvdW1laVwgOwor5Y+N5Y+OIDwgdGFuc2h1dVwgOwor6YGF55+l5oG1IDwgb3NvZGppZVwgOwor5b+W5bqmIDwgc29udGFrdVwgOwor5biv6YeRIDwgb2JpZ2FuZVwgOwor6I2Y6YeNIDwgc291Y2hvdVwgOwor5aSn6YGO5Y67IDwgZGFpa2Frb1wgOwor5b+D5oOFIDwgc2hpbmpvdVwgOwor5Yy55pW1IDwgaGl0dGVraVwgOwor6YOo5rS7IDwgYnVrYXRzdVwgOwor6YeO5YWOIDwgbm91c2FnaVwgOwor5rC45bm0IDwgbmFnYW5lblwgOwor5Yqg566X5ZmoIDwga2FzYW5raVwgOwor6YCG6KGMIDwgZ3lha2tvdVwgOwor5aSn55u45pKyIDwgb296dW1vdVwgOwor6L+F6YCfIDwgamluc29rdVwgOwor5qmf6IO96KqeIDwga2lub3Vnb1wgOwor5b6M5pu4IDwgYXRvZ2FraVwgOwor5YmN6IaKIDwgemVucGFrdVwgOwor6YeR5YG0IDwga2luZ2F3YVwgOwor5b+D5oCnIDwgc2hpbnNlaVwgOwor6L+w6KqeIDwganV0c3Vnb1wgOwor56Kn5bGxIDwgaGVraXphblwgOwor5rKI5ZCfIDwgY2hpbmdpblwgOwor5pyJ5rCX6Z+zIDwgeXV1a2lvblwgOwor5YmN6ISzIDwgemVuJydub3VcIDsKK+W5tOihqCA8IG5lbnB5b3VcIDsKK+WJjeiEmiA8IG1hZWFzaGlcIDsKK+atjuensCA8IHRhbnNob3VcIDsKK+WHuuismyA8IHNodWtrb3VcIDsKK+S4jeadoeeQhiA8IGZ1am91cmlcIDsKK+WIuuiNiSA8IGlyYWt1c2FcIDsKK+WNg+aMryA8IHNlbmJ1cmlcIDsKK+W/g+W+lyA8IGtva29yb2VcIDsKK+aBkuS5hSA8IGtvdWt5dXVcIDsKK+WPquS7iiA8IHRhZGFpbWFcIDsKK+WPjeWJhyA8IGhhbnNva3VcIDsKK+WPo+S+myA8IGtvdWt5b3VcIDsKK+W8t+eBqyA8IHRzdXlvYmlcIDsKK+aBi+S7siA8IGtvaW5ha2FcIDsKK+atu+eQgyA8IHNoaWt5dXVcIDsKK+WKqeeVqiA8IHN1a2ViYW5cIDsKK+W+jOaXpSA8IGdvbmljaGlcIDsKK+mFjeW9uSA8IGhhaXlha3VcIDsKK+aBi+S6uiA8IGtvaWJpdG9cIDsKK+Wkp+mBk+WFtyA8IG9vZG91Z3VcIDsKK+WumuS9jee9riA8IHRlaWljaGlcIDsKK+aAquWKmyA8IGthaXJpa2lcIDsKK+W+geacjSA8IHNlaWZ1a3VcIDsKK+avjeanmCA8IGthYXNhbWFcIDsKK+ecn+irpiA8IHNoaW50ZWlcIDsKK+W8seeCuSA8IGpha3V0ZW5cIDsKK+mAo+iNmCA8IHJlbmNoYW5cIDsKK+WGhumhlCA8IG1hcnVnYW9cIDsKK+ebsumAsiA8IG1vdXNoaW5cIDsKK+W/oOWtnSA8IGNodXVrb3VcIDsKK+mzpeeesCA8IGNob3VrYW5cIDsKK+W5vOiZqyA8IHlvdWNodXVcIDsKK+iQveeQgyA8IHJha2t5dXVcIDsKK+W3qOmhjSA8IGt5b2dha3VcIDsKK+WJsueulyA8IHdhcml6YW5cIDsKK+mBi+mAgeWxiyA8IHVuc291eWFcIDsKK+mAoOWWtuiyuyA8IHpvdWVpaGlcIDsKK+WPjeWFsSA8IGhhbmt5b3VcIDsKK+aui+eFpyA8IHphbnNob3VcIDsKK+WMl+adsSA8IGhva3V0b3VcIDsKK+mAuOiBniA8IGl0c3VidW5cIDsKK+mFkuW4rSA8IHNodXNla2lcIDsKK+efs+eCrSA8IHNla2l0YW5cIDsKK+awt+WxsSA8IGh5b3V6YW5cIDsKK+W8leeOhyA8IGluc290c3VcIDsKK+W7tuedgCA8IGVuY2hha3VcIDsKK+awt+WxiyA8IGtvb3JpeWFcIDsKK+WNseWxgCA8IGtpa3lva3VcIDsKK+iSmeWPpOiqniA8IG1vdWtvZ29cIDsKK+WHuOinkiA8IHRva2tha3VcIDsKK+ebrumAgSA8IG1va3Vzb3VcIDsKK+apn+aisOenkSA8IGtpa2Fpa2FcIDsKK+ebtOi8uCA8IGNob2t1eXVcIDsKK+egleawtyA8IHNhaWh5b3VcIDsKK+ecn+iogCA8IHNoaW5nb25cIDsKK+W7uueZvSA8IGtlbnBha3VcIDsKK+atpueVpSA8IGJ1cnlha3VcIDsKK+aAp+WIhiA8IHNob3VidW5cIDsKK+WGl+mVtyA8IGpvdWNob3VcIDsKK+eiuuWgsSA8IGtha3Vob3VcIDsKK+W6p+iBtyA8IHphc2hva3VcIDsKK+WPo+S4rSA8IGtvdWNodXVcIDsKK+WGt+mFtyA8IHJlaWtva3VcIDsKK+asoeW5tOW6piA8IGppbmVuZG9cIDsKK+autOauuiA8IG91c2F0c3VcIDsKK+WFpemtgiA8IG55dXVrb25cIDsKK+W/l+WtpiA8IHNoaWdha3VcIDsKK+WkmumHjeWMliA8IHRhanV1a2FcIDsKK+W+gOaXpSA8IG91aml0c3VcIDsKK+axguWpmiA8IGt5dXVrb25cIDsKK+W7tueZuiA8IGVucGF0c3VcIDsKK+WNg+S7o+WlsyA8IGNoaXlvam9cIDsKK+ecn+ilvyA8IG1hbmlzaGlcIDsKK+WPpOekvuWvuiA8IGtvc2hhamlcIDsKK+W8k+eKtiA8IGt5dXVqb3VcIDsKK+mGnOWQjSA8IHNodXVtZWlcIDsKK+awkeW/gyA8IG1pbnNoaW5cIDsKK+aoqemrmCA8IGtlbmRha2FcIDsKK+S4gOWxpOebriA8IGlzc291bWVcIDsKK+awkeW+syA8IG1pbnRva3VcIDsKK+WPjeS/lyA8IGhhbnpva3VcIDsKK+axuuWLnSA8IGtlc3Nob3VcIDsKK+WGhemZuCA8IG5haXJpa3VcIDsKK+ebtOi3ryA8IGNob2t1cm9cIDsKK+mBqeeiuiA8IHRla2tha3VcIDsKK+iMtumHnCA8IGNoYWdhbWFcIDsKK+WokeWphuawlyA8IHNoYWJha2VcIDsKK+i+m+mFuCA8IHNoaW5zYW5cIDsKK+W4jOmHiCA8IGtpc2hha3VcIDsKK+WHtuihjCA8IGt5b3Vrb3VcIDsKK+avjuacnSA8IG1haWNob3VcIDsKK+eZvemvqCA8IGhha3VnZWlcIDsKK+WNiuW8kyA8IGhhbmt5dXVcIDsKK+WKseejgeapnyA8IHJlaWppa2lcIDsKK+S4jemmluWwviA8IGZ1c2h1YmlcIDsKK+WIneiNtyA8IGhhdHN1bmlcIDsKK+WMl+aUryA8IGhva3VzaGlcIDsKK+aCquaEn+WMliA8IGFra2Fua2FcIDsKK+W+hemBv+aJgCA8IHRhaWhpam9cIDsKK+WGhemWsiA8IG5haWV0c3VcIDsKK+WGhemWoyA8IG5haWtha3VcIDsKK+mFjeWxniA8IGhhaXpva3VcIDsKK+iUteWMvyA8IHpvdXRva3VcIDsKK+W4q+i1sCA8IHNoaXdhc3VcIDsKK+ayiOWAqyA8IGNoaW5yaW5cIDsKK+mFkuWuoiA8IHNodWtha3VcIDsKK+avlOaXpSA8IGhpbmljaGlcIDsKK+WOn+WRiiA8IGdlbmtva3VcIDsKK+Wbm+iCoeWQjSA8IHNoaWtvbmFcIDsKK+eZvemtmiA8IHNoaXJhdW9cIDsKK+WNiuW5tCA8IGhhbicnbmVuXCA7CivpgYvnrYYgPCB1bnBpdHN1XCA7Civpt7nljKAgPCB0YWtham91XCA7CivmrbTnhLYgPCByZWtpemVuXCA7CivkuI3kurrmsJcgPCBmdW5pbmtpXCA7CivlhazpoJggPCBrb3VyeW91XCA7Civov5HopqogPCBraW5zaGluXCA7CivmgKXkvb8gPCBreXV1c2hpXCA7Civlib3nm5cgPCBoeW91dG91XCA7Civlubzoi6UgPCB5b3VqYWt1XCA7Civopb/mrKfljJYgPCBzZWlvdWthXCA7CivlhajpoY0gPCB6ZW5nYWt1XCA7CivmqJnpq5ggPCBoeW91a291XCA7CivljbPlo7IgPCBzb2t1YmFpXCA7Civkuozpmo7lsYsgPCBuaWthaXlhXCA7CivljYPluqYgPCBjaGl0YWJpXCA7CivlvLfmsJcgPCB0c3V5b2tpXCA7Civmo5LmmpfoqJggPCBib3VhbmtpXCA7CivluoHoiI4gPCBjaG91c2hhXCA7CivliofnlYwgPCBnZWtpa2FpXCA7CivljYPlubQgPCBjaGl0b3NlXCA7CivkuI3kuIDoh7QgPCBmdWl0Y2hpXCA7CivooYDlj43lkJAgPCBjaGloZWRvXCA7CivliofnlJogPCBnZWtpamluXCA7CivmqKrpoZQgPCB5b2tvZ2FvXCA7Civmm7PngavlvL4gPCBlaWthZGFuXCA7Civli6fmpa0gPCBrYW5neW91XCA7Civlh53oppYgPCBneW91c2hpXCA7CivliLrnuY0gPCBzaGlzaHV1XCA7CivnnqDnm64gPCBkb3Vtb2t1XCA7Civlho3pjLIgPCBzYWlyb2t1XCA7CivnnJ/omasgPCBtYW11c2hpXCA7Civps6XnjaMgPCBjaG91anV1XCA7CivlvrnlrrUgPCB0ZXNzaG91XCA7CivljZHlsYggPCBoaWt1dHN1XCA7CivliqDnhrEgPCBrYW5ldHN1XCA7CivnsKHntKDljJYgPCBrYW5zb2thXCA7CivlgIvkvZPlt64gPCBrb3RhaXNhXCA7Civlho3pi7MgPCBzYWljaHV1XCA7CivmsLfloYogPCBoeW91a2FpXCA7CivlkIzpn7Poqp4gPCBkb3VvbmdvXCA7CivljZLlr78gPCBzb3RzdWp1XCA7CivlvLfmrLIgPCBnb3V5b2t1XCA7CivljZTlrpogPCBreW91dGVpXCA7CivlhbXplbcgPCBoZWljaG91XCA7CivphYzlqaYgPCBzaGFrdWZ1XCA7CivnoLLmkoMgPCBob3VnZWtpXCA7CivmsJflr4YgPCBraW1pdHN1XCA7CivpgbjnkIMgPCBzZW5reXV1XCA7Civljp/liYcgPCBnZW5zb2t1XCA7CivlhbHpl5ggPCBreW91dG91XCA7CivkuZfli5nlk6EgPCBqb3VtdWluXCA7Civnm7Toq6sgPCBjaG9ra2FuXCA7Civoo4/mnKjmiLggPCB1cmFraWRvXCA7CivnmbrppqwgPCBoYXRzdWJhXCA7CivliLrntaEgPCBzaGlyYWt1XCA7Civlhajpm4YgPCB6ZW5zaHV1XCA7CivljZPlrZAgPCB0ZWlidXJ1XCA7Civnm7Toq4cgPCBqaWtpZGFuXCA7CivlhaXpm7sgPCBueXV1ZGVuXCA7CivliY3nq6AgPCB6ZW5zaG91XCA7Civnn7PmrrUgPCBpc2hpZGFuXCA7Civmrabng4ggPCBidXJldHN1XCA7Civnm7ToqbEgPCBjaG9rdXdhXCA7Civno4HlipsgPCBqaXJ5b2t1XCA7CivmsLTlnqIgPCBtaXp1YWthXCA7CivlubPoh7wgPCBoaXJhdXN1XCA7CivlvbnmiYAgPCB5YWt1c2hvXCA7CivpgannlKggPCB0ZWtpeW91XCA7CivpgKPntpogPCByZW56b2t1XCA7CivljbXlmqIgPCByYW4nJ25vdVwgOwor5rCP5a+6IDwgdWppZGVyYVwgOwor5YWl6ZqKIDwgbnl1dXRhaVwgOwor5b+D5aSWIDwgc2hpbmdhaVwgOwor6YeR5q+Y576FIDwga29ucGlyYVwgOwor5Y2K5a61IDwgaGFuc2hvdVwgOwor6YCj57WhIDwgcmVucmFrdVwgOwor5Yi257SEIDwgc2VpeWFrdVwgOwor556R55uuIDwgbWVpbW9rdVwgOwor5Yqb54K5IDwgcmlraXRlblwgOwor5rC05ZynIDwgc3VpYXRzdVwgOwor5bm76IG0IDwgZ2VuY2hvdVwgOwor5qiZ6aGMIDwgaHlvdWRhaVwgOwor5rC35ZqiIDwgaHlvdW5vdVwgOwor5b+15YqbIDwgbmVucmlraVwgOwor54Sh6YCg5L2cIDwgbXV6b3VzYVwgOwor55u06KanIDwgamlraXJhblwgOwor5Y2D5bCLIDwgY2hpaGlyb1wgOwor5YWo6ZW3IDwgemVuY2hvdVwgOwor5Y2a5aSnIDwgaGFrdWRhaVwgOwor5Y2B5LqM5pmCIDwganV1bmlqaVwgOwor6JC95raZIDwgcmFrdXJ1aVwgOwor5YaF6YeRIDwgdWNoaWtpblwgOwor55m76aCCIDwgdG91Y2hvdVwgOwor55uX6LOKIDwgdG91em9rdVwgOwor5Y2a5aOrIDwgaGFrdXNoaVwgOwor5oSP5oOz5aSWIDwgaXNvdWdhaVwgOwor5LiN5a6J5a6aIDwgZnVhbnRlaVwgOwor55m66Z+zIDwgaGF0c3VvblwgOwor5YWl6ZaAIDwgbnl1dW1vblwgOwor5q+S5omLIDwgZG9rdXNodVwgOwor55+z5qmLIDwgc2Vra3lvdVwgOwor55yf6I+MIDwgc2hpbmtpblwgOwor55m96Z2iIDwgaGFrdW1lblwgOwor5b655aScIDwgdGV0c3V5YVwgOwor6Zmw6Zu75rCXIDwgaW5kZW5raVwgOwor55+z5qeoIDwgc2Vra2FrdVwgOwor5YiH6IW5IDwgc2VwcHVrdVwgOwor5b+g5ZCbIDwgY2h1dWt1blwgOwor6JaE6aas6bm/IDwgdXN1YmFrYVwgOwor6JS15Lq6IDwga3Vyb3Vkb1wgOwor5bm06ICBIDwgdG9zaGlvaVwgOwor6IuU6aGeIDwga29rZXJ1aVwgOwor5LiB5a2X6LevIDwgdGVpamlyb1wgOwor55m66ZyyIDwgaGF0c3Vyb1wgOwor5YWH6aGeIDwga3lvdXJ1aVwgOwor6YCU57W2IDwgdG96ZXRzdVwgOwor55u06KGMIDwgY2hva2tvdVwgOwor5Yqb5ryVIDwgcmlraXNvdVwgOwor5Y2g5ZywIDwgc2hpbWVqaVwgOwor5b+D5ZywIDwga29rb2NoaVwgOwor5o+Q56S66YOoIDwgdGVpamlidVwgOwor5YWI6aCDIDwgc2Vua29yb1wgOwor5q275q+SIDwgc2hpZG9rdVwgOwor5oWw5ZWP5ZOBIDwgaW1vbmhpblwgOwor5bqc56uLIDwgZnVyaXRzdVwgOwor5Y6f5L2cIDwgZ2Vuc2FrdVwgOwor5Y2w5ZOyIDwgaW50ZXRzdVwgOwor5Ya36KmVIDwgcmVpaHlvdVwgOwor5b+D5ZugIDwgc2hpbicnaW5cIDsKK+mAn+eulyA8IHNva3VzYW5cIDsKK+WOhOWJjSA8IHlha3VtYWVcIDsKK+aui+alrSA8IHphbmd5b3VcIDsKK+iNkuihjCA8IGFyYWd5b3VcIDsKK+WGhemAmiA8IG5haXRzdXVcIDsKK+imquaWh+WtlyA8IG95YW1vamlcIDsKK+WLneaZryA8IHNob3VrZWlcIDsKK+eereeEtiA8IHJ5b3V6ZW5cIDsKK+W+k+WxniA8IGp1dXpva3VcIDsKK+W8pualvSA8IGdlbmdha3VcIDsKK+WKg+eEtiA8IGtha3V6ZW5cIDsKK+WNs+WQnyA8IHNva3VnaW5cIDsKK+WNg+WnqyA8IHNlbmhpbWVcIDsKK+W/oOWLpCA8IGNodXVraW5cIDsKK+W/oOWLhyA8IGNodXV5dXVcIDsKK+eQhuiyoeWutiA8IHJpemFpa2FcIDsKK+WGt+immiA8IHJlaWtha3VcIDsKK+mAmueulyA8IHRzdXVzYW5cIDsKK+mAhue4gSA8IGd5YWt1ZW5cIDsKK+acieiAtueEoeiAtiA8IHV5YW11eWFcIDsKK+eoveWPpOaXpSA8IGtlaWtvYmlcIDsKK+WInee0miA8IHNob2t5dXVcIDsKK+avkuaApyA8IGRva3VzZWlcIDsKK+W3oemBiiA8IGp1bicneXV1XCA7CivlvpPlrrkgPCBzaG91eW91XCA7CivljZflm70gPCBuYW5nb2t1XCA7CivkuozloYHmiZMgPCBuaXJ1aWRhXCA7CivlvLfmmrQgPCBreW91Ym91XCA7CivluZXoiI4gPCBiYWt1c2hhXCA7CivmsLfljp8gPCBoeW91Z2VuXCA7CivlubPnuZQgPCBoaXJhb3JpXCA7Civlv5zlipsgPCBvdXJ5b2t1XCA7Civli53mlZcgPCBzaG91aGFpXCA7CivmiYvnm7joposgPCB0ZXNvdW1pXCA7CivmsYLliJEgPCBreXV1a2VpXCA7CivlpJznm5fom74gPCB5b3RvdWdhXCA7Civlt7vosp0gPCBtYWtpZ2FpXCA7CivlvI/mrKEgPCBzaGlraWppXCA7CivlhpnosaEgPCBzaGFzaG91XCA7CivlpbPmgKfnvo4gPCBqb3NlaWJpXCA7Civmrovmn7EgPCB6YW5jaHV1XCA7Civnn7PmnZAgPCBzZWtpemFpXCA7Civpoqjpgqrlo7AgPCBrYXplZ29lXCA7Civljq3kuJblrrYgPCBlbnNlaWthXCA7Civpgqbmpb0gPCBob3VnYWt1XCA7CivliaPnjokgPCBrZW5kYW1hXCA7CivljJfltrogPCBob2t1cmVpXCA7CivlubTntaYgPCBuZW5reXV1XCA7Civlhajph48gPCB6ZW5yeW91XCA7CivlvozlraYgPCBrb3VnYWt1XCA7CivpgoTmtYEgPCBrYW5yeXV1XCA7CivljbPliLsgPCBzb2trb2t1XCA7Civlh7bogZ4gPCBreW91YnVuXCA7CivmsJHlm70gPCBtaW5rb2t1XCA7CivlhaXph5EgPCBueXV1a2luXCA7CivliZvnkIMgPCBnb3VreXV1XCA7Civnhqjmlpfnm64gPCBub3NoaW1lXCA7CivljYrlm70gPCBoYW5nb2t1XCA7CivmsLjliKUgPCBlaWJldHN1XCA7Civphbfkvb8gPCBrb2t1c2hpXCA7Civlv6vkvZwgPCBrYWlzYWt1XCA7CivljbDliLcgPCBpbnNhdHN1XCA7Civov73ntI0gPCB0c3Vpbm91XCA7CivmsLfliIMgPCBoeW91amluXCA7CivpmbDorIDlrrYgPCBpbmJvdWthXCA7Civlha3pgZMgPCByb2t1ZG91XCA7CivljJflsrggPCBob2t1Z2FuXCA7CivpgIHnsY0gPCBzb3VzZWtpXCA7CivliKXnp7AgPCBiZXNzaG91XCA7Civpmo/mhI/nrYsgPCB6dWlpa2luXCA7Civluq3nlaogPCBuaXdhYmFuXCA7CivovrLolqwgPCBub3V5YWt1XCA7CivpgYrnjJ8gPCB5dXVyeW91XCA7CivnmbvpjLIgPCB0b3Vyb2t1XCA7CivljaDljZwgPCBzZW5ib2t1XCA7CivmiYvliqDmuJsgPCB0ZWthZ2VuXCA7Civorprnvo7mrYwgPCBzYW5iaWthXCA7CivokYnmnIggPCBoYWR6dWtpXCA7Civlt6jos4ogPCBreW96b2t1XCA7Civoj6/nh60gPCBrYXNob2t1XCA7CivlvZPmg5EgPCB0b3V3YWt1XCA7CivliIbntI0gPCBidW4nJ25vdVwgOwor5Yid56mCIDwgaGF0c3Vob1wgOwor5b+F5YudIDwgaGlzc2hvdVwgOwor55m96YqRIDwgaGFrdXNlblwgOwor5YWo6YCfIDwgemVuc29rdVwgOwor5YWl6YG4IDwgbnl1dXNlblwgOwor5YWo6YCaIDwgemVudHN1dVwgOwor55m96YqFIDwgaGFrdWRvdVwgOwor55m96YqAIDwgaGFrdWdpblwgOwor5YWl6YGTIDwgbnl1dWRvdVwgOwor6YKq5puyIDwgamFreW9rdVwgOwor5Y2c5Y2gIDwgYm9rdXNlblwgOwor5ZCM5L2N5L2TIDwgZG91aXRhaVwgOwor5bel6LODIDwga291Y2hpblwgOwor5rC35YOPIDwgaHlvdXpvdVwgOwor6aGe6Z+z6KqeIDwgcnVpb25nb1wgOwor6YGK54mnIDwgeXV1Ym9rdVwgOwor6YCx55WqIDwgc2h1dWJhblwgOwor5b+D5Yq0IDwgc2hpbnJvdVwgOwor5Yid56eLIDwgc2hvc2h1dVwgOwor5bm+56iLIDwgaWt1aG9kb1wgOwor5q6L5pW1IDwgemFudGVraVwgOwor6YCa56CUIDwgdHN1dWtlblwgOwor5Y2U5ZCMIDwga3lvdWRvdVwgOwor5bmz562JIDwgYnlvdWRvdVwgOwor5Y+J5omL57ayIDwgc2FkZWFtaVwgOwor5Y2z5YCkIDwgc29rdWNoaVwgOwor6YCa55+lIDwgdHN1dWNoaVwgOwor55mC6aSKIDwgcnlvdXlvdVwgOwor5bm056uvIDwgdG9zaGloYVwgOwor5bqt55CDIDwgdGVpa3l1dVwgOwor5q6J5pWZIDwganVua3lvdVwgOwor5q2M5rKiIDwgdXRhemF3YVwgOwor5YuB5pW1IDwga2VpdGVraVwgOwor5YaN6Kq/IDwgc2FpY2hvdVwgOwor5YaN6KqtIDwgc2FpZG9rdVwgOwor5rGC5Lq6IDwga3l1dWppblwgOwor5Yqf5qWtIDwga291Z3lvdVwgOwor6Imy6buSIDwgaXJvZ3Vyb1wgOwor5Y2X5YyXIDwgbmFuYm9rdVwgOwor5bCP57as6baPIDwga29qdWtlaVwgOwor5Y2a5Yq0IDwgYmFrdXJvdVwgOwor5pm06Zuo6KiIIDwgc2VpdWtlaVwgOwor5paH5bqr5YyWIDwgYnVua29rYVwgOwor56C05bGAIDwgaGFreW9rdVwgOwor5q2j5qWtIDwgc2VpZ3lvdVwgOwor6YeO5qyh6aasIDwgeWFqaXVtYVwgOwor5biv6IqvIDwgb2Jpc2hpblwgOwor5Y2K5ZGoIDwgaGFuc2h1dVwgOwor6YGh5rqQIDwgc2FrdWdlblwgOwor5YWo6LqrIDwgemVuc2hpblwgOwor5q+S5a6zIDwgZG9rdWdhaVwgOwor6KGX6Lev5qi5IDwgZ2Fpcm9qdVwgOwor5YaF6Ku+IDwgbmFpZGFrdVwgOwor5bm456aPIDwga291ZnVrdVwgOwor5Yuk5oGqIDwga2lua2FrdVwgOwor5Ye657K+IDwgc2h1c3NlaVwgOwor5b6p5ZG9IDwgZnVrdW1laVwgOwor6Iul6YCgIDwgd2FrYXpvdVwgOwor5bqX55WqIDwgbWlzZWJhblwgOwor6a2N6a2OIDwgbW91cnlvdVwgOwor5o6n6Ki06ZmiIDwga291c29pblwgOwor6YGp5rOVIDwgdGVraWhvdVwgOwor5YSq6ZW3IDwgeXV1Y2hvdVwgOwor5b+Z5LitIDwgYm91Y2h1dVwgOwor5Y2R5YqjIDwgaGlyZXRzdVwgOwor5Yip55m6IDwgcmloYXRzdVwgOwor5LuZ5Lq65o6MIDwgc2Fib3RlblwgOwor5b6p5Y+3IDwgZnVrdWdvdVwgOwor5b+D5YOPIDwgc2hpbnpvdVwgOwor6YCj55SoIDwgcmVuJyd5b3VcIDsKK+awl+WKmyA8IGtpcnlva3VcIDsKK+auteW5syA8IGRhbmJpcmFcIDsKK+WFseiyqSA8IGt5b3VoYW5cIDsKK+WGheiovCA8IG5haXNob3VcIDsKK+WGheiouiA8IG5haXNoaW5cIDsKK+WJiueJhyA8IHNha3VoZW5cIDsKK+W+qeWOnyA8IGZ1a3VnZW5cIDsKK+eZuumAsiA8IGhhc3NoaW5cIDsKK+W8lOaWhyA8IGNob3VidW5cIDsKK+WMl+WkqSA8IGhva3V0ZW5cIDsKK+WMl+WkpyA8IGhva3VkYWlcIDsKK+WFg+mHkSA8IG1vdG9raW5cIDsKK+iLpei8qSA8IGpha3VoYWlcIDsKK+ebiuiZqyA8IGVraWNodXVcIDsKK+W+s+WIqSA8IHRva2t1cmlcIDsKK+WLgeaNtyA8IGtlaXNob3VcIDsKK+W/heS/riA8IGhpc3NodXVcIDsKK+ebsuiFuCA8IG1vdWNob3VcIDsKK+W+s+WIhiA8IHRva3VidW5cIDsKK+iSuOWZqCA8IG11c2hpa2lcIDsKK+W+ruWKmyA8IGJpcnlva3VcIDsKK+WMv+WQjSA8IHRva3VtZWlcIDsKK+W6teeCuSA8IGlvcml0ZW5cIDsKK+W7tuajkiA8IG5vYmVib3VcIDsKK+W4uOe/kiA8IGpvdXNodXVcIDsKK+WItueQgyA8IHNlaWt5dXVcIDsKK+WIhuenkiA8IGZ1bmJ5b3VcIDsKK+atk+alvSA8IGthbnJha3VcIDsKK+awtOS4rSA8IHN1aWNodXVcIDsKK+mDqOWxgCA8IGJ1a3lva3VcIDsKK+WHjeiCiSA8IHRvdW5pa3VcIDsKK+mAmueUqCA8IHRzdXV5b3VcIDsKK+iNieiJsiA8IGt1c2Fpcm9cIDsKK+WMl+WigyA8IGhva2t5b3VcIDsKK+mtgumthCA8IGtvbnBha3VcIDsKK+W+tOWFtSA8IGNob3VoZWlcIDsKK+mFjeS/oSA8IGhhaXNoaW5cIDsKK+mAl+eVmSA8IHRvdXJ5dXVcIDsKK+mBqeatoyA8IHRla2lzZWlcIDsKK+ato+acnSA8IHNlaWNob3VcIDsKK+ato+aclCA8IHNlaXNha3VcIDsKK+WHhOiFlSA8IHN1Z291ZGVcIDsKK+WFiemAnyA8IGtvdXNva3VcIDsKK+WLmOW/jSA8IGthbicnbmluXCA7CivlhYjpgLIgPCBzZW5zaGluXCA7CivlhYjpgLEgPCBzZW5zaHV1XCA7CivlhaXosqIgPCBueXV1a291XCA7CivphZLku6MgPCBzYWthZGFpXCA7Civnmb3ouqsgPCBzaGlyb21pXCA7Civlt6vooZMgPCBmdWp1dHN1XCA7CivpgJ/nkIMgPCBzb2treXV1XCA7Civov5TntI0gPCBoZW4nJ25vdVwgOwor5b6p5Yi7IDwgZnVra29rdVwgOwor6Lu96ZyHIDwga2Vpc2hpblwgOwor6I2S6IKdIDwgYXJhZ2ltb1wgOwor5Ye656mCIDwgc2h1c3N1aVwgOwor5byV5o+bIDwgaGlraWthZVwgOwor6Ly76LyzIDwgZnVrdXNvdVwgOwor5qyy5rGCIDwgeW9ra3l1dVwgOwor5bu25p2/IDwgbm9iZWl0YVwgOwor55yf56m6IDwgc2hpbmt1dVwgOwor55y855uuIDwgZ2FubW9rdVwgOwor5byV5o6lIDwgaW5zZXRzdVwgOwor6Imy6a2UIDwgc2hpa2ltYVwgOwor5b+F5LitIDwgaGl0Y2h1dVwgOwor6Lyq6YOtIDwgcmlua2FrdVwgOwor576p5o+06YeRIDwgZ2llbmtpblwgOwor5Y2Y5L2cIDwgdGFuc2FrdVwgOwor55yB57eaIDwgc2hvdXNlblwgOwor5by+5bmVIDwgZGFubWFrdVwgOwor5bm055uKIDwgbmVuJydla2lcIDsKK+W+qeWFmiA8IGZ1a3V0b3VcIDsKK+WFiei7uCA8IGtvdWppa3VcIDsKK+W7v+aXpSA8IGhhdHN1a2FcIDsKK+W8seW/lyA8IGpha3VzaGlcIDsKK+WMl+WbvSA8IGhva2tva3VcIDsKK+W8t+W8gSA8IGt5b3ViZW5cIDsKK+mChOaapiA8IGthbnJla2lcIDsKK+WKseaMryA8IHJlaXNoaW5cIDsKK+i+nuiJsiA8IGppc2hva3VcIDsKK+WHuuekviA8IHNodXNzaGFcIDsKK+iNieiCpSA8IGt1c2Fnb2VcIDsKK+WIqeeOhyA8IHJpcml0c3VcIDsKK+eZuui2syA8IGhvc3Nva3VcIDsKK+WFrOiplSA8IGtvdWh5b3VcIDsKK+WFrOiovCA8IGtvdXNob3VcIDsKK+WNgeWFrSA8IGp1dXJva3VcIDsKK+WIpeePjSA8IGJldGNoaW5cIDsKK+WNlOS8miA8IGt5b3VrYWlcIDsKK+S/r+eesOWbsyA8IGZ1a2FuenVcIDsKK+W+oeaWsOmmmSA8IG9zaGlua29cIDsKK+S6nOexs+WIqeWKoCA8IGFtZXJpa2FcIDsKK+WMuuWIpSA8IGt1YmV0c3VcIDsKK+WNg+WEhCA8IHNlbicnb2t1XCA7CivmsJfkvY0gPCBraWd1cmFpXCA7CivlvqHlrrbkurogPCBnb2tlbmluXCA7CivlvLHlvJ8gPCBqYWt1dGVpXCA7CivlhbHopZ8gPCB0b21vZXJpXCA7CivnnLznl4UgPCBnYW5ieW91XCA7Civlha3op5IgPCByb2trYWt1XCA7CivljZLkvI0gPCBzb3RzdWdvXCA7CivlpKflr7rpmaIgPCBkYWlqaWluXCA7Civmrq/lrq4gPCBoaW5reXV1XCA7CivnoJTlraYgPCBrZW5nYWt1XCA7Civmrovlv7UgPCB6YW4nJ25lblwgOwor6I2356mNIDwgbmlkenVtaVwgOwor5Y2X5LitIDwgbmFuY2h1dVwgOwor5Ya36IKJIDwgcmVpbmlrdVwgOwor6JC95omLIDwgcmFrdXNodVwgOwor55u457aaIDwgc291em9rdVwgOwor5q6L5b+NIDwgemFuJyduaW5cIDsKK+awl+S7mCA8IGtpZHp1a2VcIDsKK+WFpeippiA8IG55dXVzaGlcIDsKK+aui+W/gyA8IHphbnNoaW5cIDsKK+eDj+e+veeOiSA8IHViYXRhbWFcIDsKK+WJtealrSA8IHNvdWd5b3VcIDsKK+WHoeetliA8IGJvbnNha3VcIDsKK+WLieW8tyA8IGJlbmt5b3VcIDsKK+WFseijjyA8IHRvbW91cmFcIDsKK+W+jOWOhCA8IGF0b3lha3VcIDsKK+iQveaIkCA8IHJha3VzZWlcIDsKK+WFqOinkiA8IHplbmtha3VcIDsKK+W8seW5tCA8IGpha3VuZW5cIDsKK+WLp+WtpiA8IGthbmdha3VcIDsKK+WNiuS9nCA8IGhhbnNha3VcIDsKK+W6tua1gSA8IHNob3J5dXVcIDsKK+aAp+ihjOeCuiA8IHNlaWtvdWlcIDsKK+attOaIpiA8IHJla2lzZW5cIDsKK+S4gOiIrOWMliA8IGlwcGFua2FcIDsKK+W3neidpiA8IGthd2FlYmlcIDsKK+atjOabsiA8IGtha3lva3VcIDsKK+W+heWQiCA8IG1hY2hpYWlcIDsKK+W4sOe1kCA8IGtpa2V0c3VcIDsKK+efs+W6rSA8IHNla2l0ZWlcIDsKK+WNkuS4rSA8IHNvdGNodXVcIDsKK+WNk+S4iiA8IHRha3Vqb3VcIDsKK+WFhei2syA8IGp1dXNva3VcIDsKK+iMtuiFuSA8IGNoYWJhcmFcIDsKK+WFjeiyrCA8IG1lbnNla2lcIDsKK+iNkue4hCA8IGFyYW5hd2FcIDsKK+WDu+mahSA8IGhla2lndXVcIDsKK+WKh+aakSA8IGdla2lzaG9cIDsKK+ebtOe1jCA8IGNob2trZWlcIDsKK+WNgeS6lOWknCA8IGp1dWdveWFcIDsKK+ebrue4gSA8IG1hYnVjaGlcIDsKK+WDu+mZrCA8IGhla2lzdXVcIDsKK+mBjeattCA8IGhlbnJla2lcIDsKK+W4r+e0mSA8IG9iaWdhbWlcIDsKK+W5sueToiA8IGthbnB5b3VcIDsKK+WEn+mHkSA8IHNob3VraW5cIDsKK+awj+S6uiA8IHVqaWhpdG9cIDsKK+efpeW+syA8IGNoaXRva3VcIDsKK+mBiuattCA8IHl1dXJla2lcIDsKK+S6jOmZouWItiA8IG5paW5zZWlcIDsKK+WFrOihhiA8IGtvdXNodXVcIDsKK+WFiOiyoCA8IHNlbm1ha2VcIDsKK+ecvOeQgyA8IGdhbmt5dXVcIDsKK+W4veeroCA8IGJvdXNob3VcIDsKK+i/keensCA8IGtpbnNob3VcIDsKK+eZuuitsCA8IGhhdHN1Z2lcIDsKK+WHuueboyA8IHNodWtrYW5cIDsKK+mAgeeQgyA8IHNvdWt5dXVcIDsKK+WutuaUv+WppiA8IGthc2VpZnVcIDsKK+iJr+miqCA8IHJ5b3VmdXVcIDsKK+WIhueVmSA8IGJ1bnJ5dXVcIDsKK+WLmOWvqSA8IGthbnNoaW5cIDsKK+mBqeadkCA8IHRla2l6YWlcIDsKK+mCgOaSgyA8IHlvdWdla2lcIDsKK+mAo+a/gSA8IHJlbmRha3VcIDsKK+esrOS6jOe+qSA8IGRhaW5pZ2lcIDsKK+atv+W+jCA8IGJvdHN1Z29cIDsKK+WGhui7jOmBkyA8IGVua2lkb3VcIDsKK+ecn+ebuCA8IHNoaW5zb3VcIDsKK+ecn+ebtCA8IG1hc3N1Z3VcIDsKK+W9ueWQjSA8IHlha3VtZWlcIDsKK+W+k+WDlSA8IGp1dWJva3VcIDsKK+mBk+alvSA8IGRvdXJha3VcIDsKK+eerOaWrSA8IHNodW5kYW5cIDsKK+mHjuiRoeiQhCA8IG5vYnVkb3VcIDsKK+eZuuiqniA8IGhhdHN1Z29cIDsKK+WLp+WlqCA8IGthbnNob3VcIDsKK+WKm+aKlSA8IHJpa2l0b3VcIDsKK+WIkeeNhCA8IGtlaWdva3VcIDsKK+eZvuioiCA8IGh5YWtrZWlcIDsKK+WNg+S4oSA8IHNlbnJ5b3VcIDsKK+W+jOWFiCA8IGF0b3Nha2lcIDsKK+WNgeS5nSA8IGp1dWt5dXVcIDsKK+eZuuipsSA8IGhhdHN1d2FcIDsKK+WMl+WNiiA8IGhva3VoYW5cIDsKK+W7g+alrSA8IGhhaWd5b3VcIDsKK+eZuuiouyA8IGhhdGNodXVcIDsKK+WNgeS4oSA8IGp1dXJ5b3VcIDsKK+WKm+aIpiA8IHJpa2lzZW5cIDsKK+WNgeS4gyA8IGp1dW5hbmFcIDsKK+WNgeS4gCA8IGp1dWljaGlcIDsKK+W8leW9kyA8IGhpa2lhdGVcIDsKK+mAuOawkSA8IGl0c3VtaW5cIDsKK+W+i+WEgCA8IHJpY2hpZ2lcIDsKK+W/nOWLn+iAhSA8IG91Ym9zaGFcIDsKK+WJjeattCA8IHplbnJla2lcIDsKK+WJr+acrCA8IGZ1a3Vob25cIDsKK+iJsemboyA8IGthbicnbmFuXCA7Civpurvlrp/msrkgPCBhc2FtaXl1XCA7CivojLbpo6/kuosgPCBzYWhhbmppXCA7CivlvI/lvq4gPCBzaGlraWJpXCA7CivpgYrmpb0gPCB5dXVyYWt1XCA7Civou73ph48gPCBrZWlyeW91XCA7Civou73ph40gPCBrZWljaG91XCA7Civnm67nrpcgPCBtb2t1c2FuXCA7Civlh7rnlKMgPCBzaHVzc2FuXCA7CivnmbroppogPCBoYWtrYWt1XCA7CivpgLLmsLQgPCBzaGluc3VpXCA7Civlhavph43pm7IgPCB5YWVndW1hXCA7CivmrLLmnJsgPCB5b2t1Ym91XCA7Civli4flsIYgPCB5dXVzaG91XCA7Civnm5/ntIQgPCBtZWl5YWt1XCA7Civnm7jnp7AgPCBzb3VzaG91XCA7Civlvbzlh6YgPCBrYXNoaWtvXCA7Civnn67lsI8gPCB3YWlzaG91XCA7Civnnavmr5sgPCBtYXRzdWdlXCA7CivpgrjlroUgPCB0ZWl0YWt1XCA7Civnm67nq68gPCBtZWhhc2hpXCA7Civli4nlraYgPCBiZW5nYWt1XCA7Civpr6jogokgPCBnZWluaWt1XCA7CivlhKrotoogPCB5dXVldHN1XCA7Civnmb7ooYwgPCBoeWFra291XCA7Civov5HnnLwgPCBjaGlrYW1lXCA7Civoj4zmr5IgPCBraW5kb2t1XCA7CivmrbTlubQgPCByZWtpbmVuXCA7CivmnKrouI/mn7sgPCBtaXRvdXNhXCA7CivlvJPluKsgPCB5dW1pc2hpXCA7CivlhYjoppogPCBzZW5rYWt1XCA7CivlvozkvZwgPCBhdG9zYWt1XCA7Civlt6joiLYgPCBreW9oYWt1XCA7CivlupXmtYEgPCB0ZWlyeXV1XCA7CivntbXokYnmm7ggPCBlaGFnYWtpXCA7CivnmbrooaggPCBoYXBweW91XCA7Civpgbjmip4gPCBzZW50YWt1XCA7CivmrKDmoLwgPCBrZWtrYWt1XCA7CivlhbHokZcgPCBreW91Y2hvXCA7CivnqL3lj6TloLQgPCBrZWlrb2JhXCA7CivluoPmvKAgPCBrb3ViYWt1XCA7CivojYnnrJsgPCBrdXNhYnVlXCA7Civli53loLEgPCBzaG91aG91XCA7CivliJ3mva4gPCBzaG9jaG91XCA7CivliqnlubMgPCBzdWtlYmVpXCA7CivlronlhajmnJ8gPCBhbnplbmtpXCA7CivlvLflpKcgPCBreW91ZGFpXCA7Civlj43mhI/oqp4gPCBoYW4nJ2lnb1wgOwor6Lyq6KqtIDwgcmluZG9rdVwgOwor55+l5bCGIDwgY2hpc2hvdVwgOwor5YaF6IacIDwgbmFpbWFrdVwgOwor5by35aOuIDwga3lvdXNvdVwgOwor5b255YOnIDwgeWFrdXNvdVwgOwor5YCL5Lq65beuIDwga29qaW5zYVwgOwor5YqH5oimIDwgZ2VraXNlblwgOwor57eP5YuZ6YOoIDwgc291bXVidVwgOwor5q+S5YiDIDwgZG9rdWppblwgOwor55m96J2LIDwgaGFrdXJvdVwgOwor5biG57axIDwgaG9kenVuYVwgOwor6LuN6ZW3IDwgZ3VuY2hvdVwgOwor5Yqb5b25IDwgcmlraWVraVwgOwor6K2m6YOo6KOcIDwga2VpYnVob1wgOwor5Ya356yRIDwgcmVpc2hvdVwgOwor5LiO5aSq6YOOIDwgeW90YXJvdVwgOwor6Iy257KlIDwgY2hhZ2F5dVwgOwor5bu75b+DIDwga2Fpc2hpblwgOwor55yL55eFIDwga2FuYnlvdVwgOwor55uu56S8IDwgbW9rdXJlaVwgOwor6Ly46KGAIDwgeXVrZXRzdVwgOwor5L2N54mM5aCCIDwgaWhhaWRvdVwgOwor5Yud5ZywIDwgc2hvdWNoaVwgOwor5Yid5rmvIDwgaGF0c3V5dVwgOwor576p5aSq5aSrIDwgZ2lkYXl1dVwgOwor5Ye254ybIDwga3lvdW1vdVwgOwor5LiJ6Z6t6YWSIDwgc2hhbnBlblwgOwor6Imm6ZW3IDwga2FuY2hvdVwgOwor5aaD5q6/5LiLIDwgaGlkZW5rYVwgOwor5YeN55+zIDwgdG91c2VraVwgOwor5Yi25qyyIDwgc2VpeW9rdVwgOwor5Ye654mIIDwgc2h1cHBhblwgOwor5byf5auBIDwgb3RveW9tZVwgOwor5Ye254q2IDwga3lvdWpvdVwgOwor5qi66ImyIDwga2FiYWlyb1wgOwor6YCA5r2uIDwgdGFpY2hvdVwgOwor56CC5ZywIDwgc3VuYWNoaVwgOwor6YGT5pWZIDwgZG91a3lvdVwgOwor5ryr55S75a62IDwgbWFuZ2FrYVwgOwor6YGO5pelIDwga2FqaXRzdVwgOwor6Lui6YedIDwgdGVuc2hpblwgOwor6Iy2566xIDwgY2hhYmFrb1wgOwor5biw552AIDwga2ljaGFrdVwgOwor6YGp5omAIDwgdGVraXNob1wgOwor5YO76YKRIDwgaGVraXl1dVwgOwor5LiN5pys5oSPIDwgZnVob24nJ2lcIDsKK+atjuaBryA8IHRhbnNva3VcIDsKK+iLm+iZkCA8IGthZ3lha3VcIDsKK+atqeWQiOeulyA8IGJ1YWl6YW5cIDsKK+W9q+WDjyA8IGNob3V6b3VcIDsKK+iqnuW9meeahCA8IGdvaXRla2lcIDsKK+efs+WhlCA8IHNla2l0b3VcIDsKK+i/lOeQgyA8IGhlbmt5dXVcIDsKK+efs+WhgCA8IGlzaGliZWlcIDsKK+W8n+WnqyA8IG90b2hpbWVcIDsKK+WIqeauliA8IHJpc2hva3VcIDsKK+W9ueS6uiA8IHlha3VuaW5cIDsKK+i+seefpSA8IGpva3VjaGlcIDsKK+WLp+WRiiA8IGthbmtva3VcIDsKK+ebsuebriA8IG1vdW1va3VcIDsKK+eXm+miqCA8IHRzdXVmdXVcIDsKK+mAuOadkCA8IGl0c3V6YWlcIDsKK+esrOS4gOiqsiA8IGRhaWlra2FcIDsKK+WHuueCrSA8IHNodXR0YW5cIDsKK+W8seWbvSA8IGpha2tva3VcIDsKK+iNt+eJqSA8IG5pbW90c3VcIDsKK+WMl+S4iiA8IGhva3Vqb3VcIDsKK+S6leaIuOerryA8IGlkb2JhdGFcIDsKK+WJr+aJiyA8IGZ1a3VzaHVcIDsKK+WJveaCjSA8IGh5b3VrYW5cIDsKK+iJsumHjCA8IGlyb3phdG9cIDsKK+eQhuS6i+S8miA8IHJpamlrYWlcIDsKK+ebpOefsyA8IGJhbmpha3VcIDsKK+i+suebuCA8IG5vdXNob3VcIDsKK+mBiuaSgyA8IHl1dWdla2lcIDsKK+eBq+abnOaXpSA8IGtheW91YmlcIDsKK+WFpeiIjiA8IG55dXVzaGFcIDsKK+W+oeS4jea1hCA8IGdvZnVqb3VcIDsKK+mAkOasoSA8IGNoaWt1amlcIDsKK+i+uueWhiA8IGhlbmt5b3VcIDsKK+WJjeaWuSA8IG1hZWthdGFcIDsKK+eZveiPnCA8IGhha3VzYWlcIDsKK+acquWumue+qSA8IG1pdGVpZ2lcIDsKK+WJsuaEmyA8IGthdHN1YWlcIDsKK+ebo+edoyA8IGthbnRva3VcIDsKK+i6gemssSA8IHNvdXV0c3VcIDsKK+alvemaiiA8IGdha3V0YWlcIDsKK+auieWbvSA8IGp1bmtva3VcIDsKK+mAhuavlCA8IGd5YWt1aGlcIDsKK+WvvuS9jeazlSA8IHRhaWlob3VcIDsKK+WGpeemjyA8IG1laWZ1a3VcIDsKK+edpuaciCA8IG11dHN1a2lcIDsKK+WIu+acrCA8IGtva3Vob25cIDsKK+ato+WtkCA8IHNob3VzaGlcIDsKK+W5veasnSA8IHl1dXV0c3VcIDsKK+auuuWCtyA8IHNhc3Nob3VcIDsKK+a1rua1quWFkCA8IGZ1cm91amlcIDsKK+WppuS6uuenkSA8IGZ1amlua2FcIDsKK+WGhee0hCA8IG5haXlha3VcIDsKK+W8t+WRsyA8IHRzdXlvbWlcIDsKK+WJo+aInyA8IGtlbmdla2lcIDsKK+i/lOeFpyA8IGhlbnNob3VcIDsKK+iJh+mVtyA8IHRlaWNob3VcIDsKK+S7luS4lueVjCA8IHRhc2VrYWlcIDsKK+mBqeW9kyA8IHRla2l0b3VcIDsKK+aFsOWKtOmHkSA8IGlyb3VraW5cIDsKK+aoqeiDvSA8IGtlbicnbm91XCA7CivmraPlq6EgPCBzZWl0ZWtpXCA7CivmrLLmg4UgPCB5b2t1am91XCA7CivluqfmlbcgPCB6YXNoaWtpXCA7CivmpbzplqMgPCByb3VrYWt1XCA7CivliIbms6ggPCBidW5jaHV1XCA7CivljIXkuIEgPCBob3VjaG91XCA7Civnmbroir0gPCBoYXRzdWdhXCA7CivpgLLmlbAgPCBzaGluc3V1XCA7CivnkIbkuI3lsL0gPCByaWZ1amluXCA7Civnmb7oiKwgPCBoeWFwcGFuXCA7Civlh7rmuKAgPCBzaHVra3lvXCA7CivljZjlnZDmqZ8gPCB0YW56YWtpXCA7CivokL3ln44gPCByYWt1am91XCA7CivlibLlvZMgPCB3YXJpYXRlXCA7CivmrLLlv7UgPCB5b2t1bmVuXCA7CivmqJ/ohLMgPCBzaG91bm91XCA7CivkuI3po73lkowgPCBmdWhvdXdhXCA7Civov5HngasgPCBjaGlrYWJpXCA7CivliKXmoLwgPCBiZWtrYWt1XCA7Civnlr7poqggPCBzaGlwcHV1XCA7CivokL3lnLAgPCByYWt1Y2hpXCA7CivlhbHnt6ggPCBreW91aGVuXCA7CivmraTlpbQgPCBrb3lhdHN1XCA7Civnm5fnmZYgPCB0b3VoZWtpXCA7CivoiLnplbcgPCBzZW5jaG91XCA7Civku6PorbDlk6EgPCBkYWlnaWluXCA7CivnoJTkv64gPCBrZW5zaHV1XCA7CivliLfmlrAgPCBzYXNzaGluXCA7CivpnZ7lkIjnkIYgPCBoaWdvdXJpXCA7Civmrr/kuK0gPCBkZW5jaHV1XCA7CivlvLflipsgPCBnb3VyaWtpXCA7Civluo/mm7IgPCBqb2t5b2t1XCA7Civnt4/li5noqrIgPCBzb3VtdWthXCA7Civluormnb8gPCB5dWthaXRhXCA7CivpgJrmnIkgPCB0c3V1eXV1XCA7CivlhbXns6cgPCBoeW91cm91XCA7Civnm4bnn7MgPCBib25zZWtpXCA7CivmrKPmgqYgPCBraW5ldHN1XCA7CivlhbjnsY0gPCB0ZW5zZWtpXCA7CivpgZPlvrMgPCBkb3V0b2t1XCA7Civnl4Xpm6MgPCBieW91bmFuXCA7Civlipvlo6sgPCByaWtpc2hpXCA7CivmpLDlrZDmsrkgPCB5YXNoaXl1XCA7Civou4rovJsgPCBzaGFyeW91XCA7CivlhbXnsY0gPCBoZWlzZWtpXCA7CivpgJ/mlq0gPCBzb2t1ZGFuXCA7Civou4rou7ggPCBzaGFqaWt1XCA7CivlhoXnqY0gPCBuYWlzZWtpXCA7CivliaPlvaIgPCBrZW5nYXRhXCA7CivojZLniakgPCBhcmFtb25vXCA7Civnm7LniIYgPCBtb3ViYWt1XCA7Civlg7voq5YgPCBoZWtpcm9uXCA7CivlvLflhbUgPCBreW91aGVpXCA7CivlhazntIQgPCBrb3V5YWt1XCA7CivmrrXkuJggPCBkYW5reXV1XCA7CivovrLniacgPCBub3Vib2t1XCA7CivlhaXntr8gPCBpcmV3YXRhXCA7CivmsLTms7PnnYAgPCBzdWllaWdpXCA7CivmqKrnt5ogPCB5b2tvc2VuXCA7Civnmb3nvr0gPCBzaGlyYWhhXCA7Civls7vpmbogPCBzaHVua2VuXCA7Civlt6vnpZ0gPCBmdXNodWt1XCA7Civou7joo4UgPCBqaWt1c291XCA7Civnm6PnjYQgPCBrYW5nb2t1XCA7CivliKXmmYIgPCBiZXRzdWppXCA7CivlvJTllY8gPCBjaG91bW9uXCA7CivlhajntJogPCB6ZW5reXV1XCA7CivlhoXnpo8gPCBuYWlmdWt1XCA7CivlhpnnnJ8gPCBzaGFzaGluXCA7Civlh53mu54gPCBneW91dGFpXCA7CivpgZPluoogPCBkb3VzaG91XCA7Civmrorli50gPCBzaHVzaG91XCA7Civou43otrMgPCBndW5zb2t1XCA7Civlg7voqIAgPCBoZWtpZ2VuXCA7CivntbXojYnntJkgPCBlem91c2hpXCA7CivliaPluZUgPCBrZW5tYWt1XCA7Civlh7bmrbMgPCBreW91c2FpXCA7CivliZvlvLcgPCBnb3VreW91XCA7CivliIbmpa0gPCBidW5neW91XCA7Civou6Loqr8gPCB0ZW5jaG91XCA7CivmrYzlp6sgPCB1dGFoaW1lXCA7CivpgaDlsbEgPCB0b295YW1hXCA7CivmqKrns7ggPCB5b2tvaXRvXCA7CivmrKHlvI8gPCBqaXNoaWtpXCA7CivpgYrlvIsgPCB5dXV5b2t1XCA7CivpgbrlpLEgPCBpc2hpdHN1XCA7CivpgbjlpaggPCBzZW5zaG91XCA7Civlg7voposgPCBoZWtpa2VuXCA7CivoirHokbUgPCBoYW5hYW9pXCA7CivokL3lkb0gPCByYWt1bWVpXCA7CivpgYrlu5MgPCB5dXVrYWt1XCA7CivmqLnnq4sgPCBqdXJpdHN1XCA7CivprZTooZMgPCBtYWp1dHN1XCA7Civlh6HmtYEgPCBib25yeXV1XCA7CivoiIzpn7MgPCB6ZXRzdW9uXCA7CivliJ3ml6UgPCBoYXRzdWhpXCA7CivlvJXlj5cgPCBoaWtpdWtlXCA7CivlioflpIkgPCBnZWtpaGVuXCA7Civlu7rlm70gPCBrZW5rb2t1XCA7Civnn63lhoogPCB0YW56YWt1XCA7Civnn7Plg48gPCBzZWtpem91XCA7CivnnaPmiKYgPCB0b2t1c2VuXCA7CivnnLrmnJsgPCBjaG91Ym91XCA7Civlioflo4cgPCBnZWtpZGFuXCA7Civov5Hms4EgPCBraW5reW91XCA7CivmrKDluK0gPCBrZXNzZWtpXCA7Civlt6jnn7MgPCBreW9zZWtpXCA7CivmrbTlj7IgPCByZWtpc2hpXCA7CivlubPmnI0gPCBoZWlmdWt1XCA7Civou6LopoYgPCB0ZW5wdWt1XCA7CivmqZ/nlaUgPCBraXJ5YWt1XCA7CivlsI/niqzluqcgPCBrb2ludXphXCA7CivliofloLQgPCBnZWtpam91XCA7Civouqvov5EgPCBtaWRqaWthXCA7CivpgIbml4UgPCBnZWtpcnlvXCA7CivouqvovrogPCBzaGlucGVuXCA7CivliIbmnpAgPCBidW5zZWtpXCA7CivlvLHkvZMgPCBqYWt1dGFpXCA7CivmqKrnrJsgPCB5b2tvYnVlXCA7CivnmbrntaYgPCBoYWtreXV1XCA7Civou73oloQgPCBrZWloYWt1XCA7CivlvJXlipsgPCBpbnJ5b2t1XCA7Civlhobnm4YgPCBtYXJ1Ym9uXCA7CivotaTlkbPlmYwgPCBha2FtaXNvXCA7CivokZfkvZwgPCBjaG9zYWt1XCA7Civnl6nouqsgPCBzb3VzaGluXCA7CivoirHoibIgPCBoYW5haXJvXCA7CivpgJ/miJAgPCBzb2t1c2VpXCA7Civlt6bnm7QgPCBzYWNob2t1XCA7CivliY3lubQgPCB6ZW4nJ25lblwgOwor6YCB5paZIDwgc291cnlvdVwgOwor6bGX5pyoIDwgcmluYm9rdVwgOwor55m957KJIDwgb3NoaXJvaVwgOwor5YaF55qEIDwgbmFpdGVraVwgOwor6Ium56+AIDwga3VzZXRzdVwgOwor55m957GzIDwgaGFrdW1haVwgOwor55+t5L+hIDwgdGFuc2hpblwgOwor5qiq56m0IDwgeW9rb2FuYVwgOwor5qW16YGTIDwgZ29rdWRvdVwgOwor5a++576p6KqeIDwgdGFpZ2lnb1wgOwor55y35pePIDwga2Vuem9rdVwgOwor6YGT5a2mIDwgZG91Z2FrdVwgOwor5YG06Z2iIDwgc29rdW1lblwgOwor5bmj5p2fIDwgaGVpc29rdVwgOwor5Yqp5YuiIDwgc3VrZXplaVwgOwor5Yqf5ZCNIDwga291bXlvdVwgOwor6ImH6LqrIDwgdGVpc2hpblwgOwor5rGa5p+T6I+MIDwgb3NlbmtpblwgOwor6YGO5a+GIDwga2FtaXRzdVwgOwor5LiJ5pel6LevIDwgbWlra2FqaVwgOwor5Yqq5YqbIDwgZG9yeW9rdVwgOwor5bGF6YWS5bGLIDwgaXpha2F5YVwgOwor5bqt5birIDwgbml3YXNoaVwgOwor6aqo6aq8IDwga29ra2FrdVwgOwor5Yqp5YqbIDwgam9yeW9rdVwgOwor6L+95pS+IDwgdHN1aWhvdVwgOwor6Ieq5a626KO9IDwgamlrYXNlaVwgOwor6YGK5a2mIDwgeXV1Z2FrdVwgOwor5q2z5YWlIDwgc2Fpbnl1dVwgOwor6bOp5ZCIIDwga3l1dWdvdVwgOwor5qyg5a2XIDwga2V0c3VqaVwgOwor5aGX5biD5YmkIDwgdG9mdXphaVwgOwor5q2j5YyXIDwgc2VpaG9rdVwgOwor5YK36LehIDwga2l6dWF0b1wgOwor5q2m5YqbIDwgYnVyeW9rdVwgOwor6YGp5ZywIDwgdGVraWNoaVwgOwor5Yqf5YqbIDwga291cmlraVwgOwor5Y+k5YW46KqeIDwga290ZW5nb1wgOwor6I2S5rOiIDwgYXJhbmFtaVwgOwor6L+R5qWtIDwga2luZ3lvdVwgOwor55yf5pu4IDwgc2hpbnNob1wgOwor5bq15a6kIDwgYW5qaXRzdVwgOwor5YWx55uKIDwga3lvdWVraVwgOwor6YCa5oCnIDwgdHN1dXNlaVwgOwor5q2j5YmHIDwgc2Vpc29rdVwgOwor6ayx6KGAIDwgdWtrZXRzdVwgOwor5YW855SoIDwga2VuJyd5b3VcIDsKK+WKtOS9nCA8IHJvdXNha3VcIDsKK+mAmuW/tSA8IHRzdXVuZW5cIDsKK+WHi+auiyA8IGNob3V6YW5cIDsKK+S4jeaZr+awlyA8IGZ1a2Vpa2lcIDsKK+WGt+a2vCA8IHJlaXJ5b3VcIDsKK+i7veiInyA8IGtlaXNodXVcIDsKK+iQveS9kyA8IHJha3V0YWlcIDsKK+mAo+W5tCA8IHJlbicnbmVuXCA7CivliIfmj5sgPCBraXJpa2FlXCA7Civnl5Xot6EgPCBrb25zZWtpXCA7CivlkIjnkIbljJYgPCBnb3VyaWthXCA7CivlubLmi5MgPCBrYW50YWt1XCA7CivmrbvkurogPCBzaGliaXRvXCA7CivlhaznmoQgPCBrb3V0ZWtpXCA7Civlu7rliY0gPCB0YXRlbWFlXCA7CivliIfmjpsgPCBraWtrYWtlXCA7CivpgLLlsZUgPCBzaGludGVuXCA7CivmrKDlpoIgPCBrZXRzdWpvXCA7CivpqqjpoIIgPCBrb3RjaG91XCA7CivmqKrnnYAgPCBvdWNoYWt1XCA7CivliIbmjowgPCBidW5zaG91XCA7CivlvIHlhJ8gPCBiZW5zaG91XCA7Civmi4nkuIHoqp4gPCByYXRlbmdvXCA7CivliJHmiK4gPCBrZWlyaWt1XCA7CivpgJrlvIogPCB0c3V1aGVpXCA7CivnmbrnpaUgPCBoYXNzaG91XCA7CivpgJrlvIEgPCB0c3V1YmVuXCA7CivmrbTkvJ0gPCByZWtpZGVuXCA7Civlub3mhIEgPCB5dXVzaHV1XCA7CivokL3kurogPCBvY2h1dWRvXCA7CivlhaXnm6MgPCBueXV1a2FuXCA7CivmrbvkuK0gPCBzaGljaHV1XCA7CivmrbTku7sgPCByZWtpbmluXCA7CivliKXlvowgPCBiZXRzdWdvXCA7Civpm7vno4Hms6IgPCBkZW5qaWhhXCA7CivmrbTku6MgPCByZWtpZGFpXCA7CivlhbHnlKggPCBreW91eW91XCA7CivmpbXosqcgPCBnb2t1aGluXCA7CivlhbHnlKMgPCBreW91c2FuXCA7CivmqKnnm4ogPCBrZW4nJ2VraVwgOwor5bm75oORIDwgZ2Vud2FrdVwgOwor6Lui6JC9IDwgdGVucmFrdVwgOwor5bmV5pS/IDwgYmFrdXNlaVwgOwor55yM5pyJIDwga2VuJyd5dXVcIDsKK+i/veaHkCA8IHRzdWlrYWlcIDsKK+mtmuiFuSA8IGd5b2Z1a3VcIDsKK+mAmuW4uCA8IHRzdXVqb3VcIDsKK+i/veaGtiA8IHRzdWlva3VcIDsKK+i6iui6hyA8IGNodXVjaG9cIDsKK+msvOiTriA8IG9uaWJhc3VcIDsKK+ecn+aRryA8IHNoaW5zaGlcIDsKK+mbu+ejgeawlyA8IGRlbmppa2lcIDsKK+eahuebriA8IGthaW1va3VcIDsKK+eZveeggiA8IGhha3VzaGFcIDsKK+amguiplSA8IGdhaWh5b3VcIDsKK+W8i+S6uiA8IHlva3VqaW5cIDsKK+WHneacmyA8IGd5b3Vib3VcIDsKK+WCvuinkiA8IGtlaWtha3VcIDsKK+WFuOeNhCA8IHRlbmdva3VcIDsKK+mvm+eEvCA8IHRhaXlha2lcIDsKK+mBqeWQiCA8IHRla2lnb3VcIDsKK+WKh+WJpCA8IGdla2l6YWlcIDsKK+WIpeW4rSA8IGJlc3Nla2lcIDsKK+WFg+emhCA8IGdlbnJva3VcIDsKK+WCvuimhiA8IGtlaWZ1a3VcIDsKK+mtmuiCiSA8IGd5b25pa3VcIDsKK+WFpeeUqCA8IG55dXV5b3VcIDsKK+eZveecvCA8IGhha3VnYW5cIDsKK+iNkualrSA8IGFyYXdhemFcIDsKK+WIuuWtkCA8IHNhc2hpa29cIDsKK+ato+S9kyA8IHNob3V0YWlcIDsKK+mAhuW+kiA8IGd5YWt1dG9cIDsKK+Wxsem6kyA8IHNhbnJva3VcIDsKK+i/juaYpSA8IGdlaXNodW5cIDsKK+eZveebriA8IHNoaXJvbWVcIDsKK+WIl+W8tyA8IHJla2t5b3VcIDsKK+i+sualrSA8IG5vdWd5b3VcIDsKK+WIh+aEmyA8IHNldHN1YWlcIDsKK+WAmemzpSA8IGtvdWNob3VcIDsKK+aghOmkiuS+oSA8IGVpeW91a2FcIDsKK+mChOS/lyA8IGdlbnpva3VcIDsKK+mAn+WwhCA8IHNva3VzaGFcIDsKK+i/t+aDkSA8IG1laXdha3VcIDsKK+mAvOWhniA8IGhpc3Nva3VcIDsKK+eXm+iogCA8IHRzdXVnZW5cIDsKK+WIneW3syA8IGhhdHN1bWlcIDsKK+esrOS6jOasoSA8IGRhaW5pamlcIDsKK+eWvui1sCA8IHNoaXNzb3VcIDsKK+WIl+W6pyA8IHJldHN1emFcIDsKK+edgOW6pyA8IGNoYWt1emFcIDsKK+iMtuauuyA8IGNoYWdhcmFcIDsKK+i/veW+kyA8IHRzdWlqdXVcIDsKK+ato+S4rSA8IHNlaWNodXVcIDsKK+i6rOihjCA8IGt5dXVrb3VcIDsKK+eZveeXtCA8IGhha3VjaGlcIDsKK+S6leaIuOawtCA8IGlkb21penVcIDsKK+WHtuaJiyA8IGt5b3VzaHVcIDsKK+W4guazgSA8IHNoaWt5b3VcIDsKK+WIl+W4rSA8IHJlc3Nla2lcIDsKK+W4nealrSA8IHRlaWd5b3VcIDsKK+WJjeWegiA8IG1hZWRhcmVcIDsKK+S4gOWAi+S6uiA8IGlra29qaW5cIDsKK+S6oeellueItiA8IGJvdXNvZnVcIDsKK+W+oeacseWNsCA8IGdvc2h1aW5cIDsKK+edgOW3pSA8IGNoYWtrb3VcIDsKK+WJsuWLmCA8IHdhcmlrYW5cIDsKK+eVsOaAp+S9kyA8IGlzZWl0YWlcIDsKK+eZuueWuSA8IGhvc3NoaW5cIDsKK+mzpeS6uiA8IGNob3VqaW5cIDsKK+i/juaSgyA8IGdlaWdla2lcIDsKK+mAsuWhgSA8IHNoaW5ydWlcIDsKK+WJo+WRkSA8IGtlbicnbm9uXCA7CivlhpLmtpwgPCBib3V0b2t1XCA7CivmpJzpj6EgPCBrZW5reW91XCA7CivlhYjnmocgPCBzZW4nJ25vdVwgOwor6YCA5bitIDwgdGFpc2VraVwgOwor5Yil5a60IDwgYmV0c3VlblwgOwor6YCx5aCxIDwgc2h1dWhvdVwgOwor5Ymy5YmNIDwgd2FyaW1hZVwgOwor5YaG5ruRIDwgZW5rb3RzdVwgOwor5Yil5a6FIDwgYmV0dGFrdVwgOwor5YWN55arIDwgbWVuJydla2lcIDsKK+WJsuWIpCA8IHdhcmloYW5cIDsKK+mdnuWQjOacnyA8IGhpZG91a2lcIDsKK+i7uOe3miA8IGppa3VzZW5cIDsKK+WNgemcsuebpCA8IHNvcm9iYW5cIDsKK+WBtOi+uiA8IHNva3VoZW5cIDsKK+asoOWToSA8IGtldHN1aW5cIDsKK+ajkumxiCA8IGJvdWRhcmFcIDsKK+WFpeeJqSA8IGlyZW1vbm9cIDsKK+WFpeeJoiA8IG55dXVyb3VcIDsKK+mBuOS7uyA8IHNlbicnbmluXCA7Civlh7bmgqogPCBreW91YWt1XCA7CivnrYboqJjlhbcgPCBoaWtraWd1XCA7CivnlarplbcgPCBiYW5jaG91XCA7CivnqY/lgaXmtL4gPCBvbmtlbmhhXCA7CivogrLlhZDlnJIgPCBpa3VqaWVuXCA7CivlubzlsJEgPCB5b3VzaG91XCA7Civpm7vmsJfngokgPCBkZW5raXJvXCA7CivojYnmnKggPCBzb3Vtb2t1XCA7Civnm67mmJ8gPCBtZWJvc2hpXCA7Civkvp3lrZjmgKcgPCBpem9uc2VpXCA7Civlub3lr4IgPCB5dXVqYWt1XCA7Civlg5roiaYgPCByeW91a2FuXCA7CivliIblt7sgPCBidW5tYWtpXCA7Civmr5Tlj6HlsbEgPCBoaWVpemFuXCA7Civnmannl4UgPCByYWlieW91XCA7CivpgJrlpY8gPCB0c3V1c291XCA7CivnlqPotrMgPCBpYm9hc2hpXCA7Civkvp3poLzogIUgPCBpcmFpc2hhXCA7Civoia/og70gPCByeW91bm91XCA7CivovInnqY0gPCBzYWlzZWtpXCA7CivojLbmo5ogPCBjaGFkYW5hXCA7CivlubzlrZAgPCBvc2FuYWdvXCA7CivpgankvosgPCB0ZWtpcmVpXCA7CivmpJzph50gPCBrZW5zaGluXCA7Civlh7rlu7cgPCBzaHV0dGVpXCA7CivltKnokL0gPCBob3VyYWt1XCA7CivnnJ/lvbEgPCBzaGluJydlaVwgOwor5bm05bCRIDwgbmVuc2hvdVwgOwor5bmj5bibIDwgaGVpaGFrdVwgOwor5Ye25by+IDwga3lvdWRhblwgOwor6YCf5aCxIDwgc29rdWhvdVwgOwor55Sy6auYIDwga291ZGFrYVwgOwor55m954q2IDwgaGFrdWpvdVwgOwor6KO95rK55omAIDwgc2VpeXVqb1wgOwor6YGp5Lu7IDwgdGVraW5pblwgOwor5Yi25ZynIDwgc2VpYXRzdVwgOwor55a+6KaWIDwgc2hpc3NoaVwgOwor6Ium54axIDwga3VuZXRzdVwgOwor55m654uCIDwgaGFra3lvdVwgOwor5Ym15L2cIDwgc291c2FrdVwgOwor5qqE5paHIDwgZ2VraWJ1blwgOwor5YaF5rGgIDwgdWNoaWlrZVwgOwor55uu5pKlIDwgbWViYWNoaVwgOwor5YGP6YedIDwgaGVuc2hpblwgOwor6YCA5a2mIDwgdGFpZ2FrdVwgOwor5YGP6YeNIDwgaGVuY2hvdVwgOwor5bm05a2QIDwgdG9zaGlnb1wgOwor6YCa5aCxIDwgdHN1dWhvdVwgOwor5Z+65pys6KqeIDwga2lob25nb1wgOwor5Ymj5YWIIDwga2Vuc2FraVwgOwor5Ye25bm0IDwga3lvdW5lblwgOwor55yf5bmzIDwgbWFwcGlyYVwgOwor55mS552AIDwgeXVjaGFrdVwgOwor5b6h5LiJ5a62IDwgZ29zYW5rZVwgOwor5Ymv5L2/IDwgZnVrdXNoaVwgOwor6I6r5aSnIDwgYmFrdWRhaVwgOwor5YmN5Y6EIDwgbWFleWFrdVwgOwor6a2a56ucIDwgZ3lvcnl1dVwgOwor6L+35a6uIDwgbWVpa3l1dVwgOwor6YGF5Yi7IDwgY2hpa29rdVwgOwor5bmU5bmVIDwgbWFubWFrdVwgOwor5LqU56+A5Y+lIDwgZ29zZWtrdVwgOwor5qOu6ZaRIDwgc2hpbmthblwgOwor6L6f5piTIDwgaGVraWVraVwgOwor5YWl5ryBIDwgbnl1dWd5b1wgOwor55u05oqrIDwgY2hva3VoaVwgOwor6Kqk5YuV5L2cIDwgZ29kb3VzYVwgOwor55m654WZIDwgaGF0c3VlblwgOwor6Iif6KGMIDwgc2h1dWtvdVwgOwor5bK46L66IDwga2lzaGliZVwgOwor6YGT5L+XIDwgZG91em9rdVwgOwor6YCy5Y+WIDwgc2hpbnNodVwgOwor6Iao6ZqGIDwgYm91cnl1dVwgOwor5YCN6aGNIDwgYmFpZ2FrdVwgOwor55uu5oyHIDwgbW9rdXNoaVwgOwor5b2x5Y2w5pysIDwgZWlpbmhvblwgOwor6a2U56qfIDwgbWFrdXRzdVwgOwor5Yed5b+1IDwgZ3lvdW5lblwgOwor5beh5q20IDwganVucmVraVwgOwor5bGx6aCCIDwgc2FuY2hvdVwgOwor5YWl5rmvIDwgbnl1dXRvdVwgOwor5Ye65bGVIDwgc2h1dHRlblwgOwor5YWl5rigIDwgbnl1dWt5b1wgOwor6Iub54OIIDwga2FyZXRzdVwgOwor57WM5Za26LK7IDwga2VpZWloaVwgOwor6L+r5a6zIDwgaGFrdWdhaVwgOwor5YWr5rSyIDwgeWFzaGltYVwgOwor5YaG55u45aC0IDwgZW5zb3ViYVwgOwor6L2f5rKIIDwgZ291Y2hpblwgOwor55yM5bqBIDwga2VuY2hvdVwgOwor5Yeh5bq4IDwgYm9uJyd5b3VcIDsKK+eZh+eZliA8IGthbnBla2lcIDsKK+iJsue0oCA8IHNoaWtpc29cIDsKK+i/keW5tCA8IGtpbicnbmVuXCA7Civnm4bmmq4gPCBib25rdXJlXCA7CivouYnot4wgPCBzYXRldHN1XCA7CivlubTlopcgPCB0b3NoaW1hXCA7CivpgZPkuLsgPCBkb3VzaHV1XCA7Civlh4vmgrQgPCBjaG91c3VpXCA7CivpgZPkuK0gPCBkb3VjaHV1XCA7CivlsbHpmb0gPCBzYW4nJ3lvdVwgOwor5bGx6Zm1IDwgc2FucnlvdVwgOwor6YGK5LyRIDwgeXV1a3l1dVwgOwor55eY6IuXIDwgdG91YnlvdVwgOwor6YCx5YiKIDwgc2h1dWthblwgOwor6KKr55aR6ICFIDwgaGlnaXNoYVwgOwor5bqW5Y6oIDwgaG91Y2h1dVwgOwor5YCS6ZajIDwgdG91a2FrdVwgOwor5YiX5Zu9IDwgcmVra29rdVwgOwor552j5YqxIDwgdG9rdXJlaVwgOwor5beh5qWtIDwganVuZ3lvdVwgOwor5qiZ5rqWIDwgaHlvdWp1blwgOwor6I+K5YikIDwga2lrdWJhblwgOwor55Sj6aGNIDwgc2FuZ2FrdVwgOwor6YCx5YaFIDwgc2h1dW5haVwgOwor6bC75bGLIDwgdW5hZ2l5YVwgOwor5YWl5rC0IDwgbnl1dXN1aVwgOwor5Yi25YudIDwgc2Vpc2hvdVwgOwor5Yi75Yi7IDwga29ra29rdVwgOwor5YKZ6JOEIDwgYmljaGlrdVwgOwor6YCa5ZCNIDwgdG9vcmluYVwgOwor6LuN57GNIDwgZ3Vuc2VraVwgOwor6Ii56Ii2IDwgc2VucGFrdVwgOwor6YCj5YudIDwgcmVuc2hvdVwgOwor6YCa5Y+yIDwgdHN1dXNoaVwgOwor55u05b6MIDwgY2hva3Vnb1wgOwor55u05b6AIDwgY2hva3VvdVwgOwor5pS+54Gr6a2UIDwgaG91a2FtYVwgOwor5L+u6aSKIDwgc2h1dXlvdVwgOwor5LiN5pat552AIDwgZnVkYW5naVwgOwor6IGW6Lev5YqgIDwgc2Vpcm9rYVwgOwor55eF6I+MIDwgYnlvdWtpblwgOwor5Ye65aWUIDwgc2h1cHBvblwgOwor5qW96IGWIDwgZ2FrdXNlaVwgOwor6Ii56IW5IDwgc2VucHVrdVwgOwor5LiL57ea6YOoIDwga2FzZW5idVwgOwor55m95rSyIDwgc2hpcmFzdVwgOwor5Yeh5bCPIDwgYm9uc2hvdVwgOwor5YmN5Lu7IDwgemVuJyduaW5cIDsKK+W3qOacqCA8IGt5b2Jva3VcIDsKK+iIrOiLpSA8IGhhbicnbnlhXCA7CivlgrfogIUgPCBzaG91c2hhXCA7Civlhobmm7IgPCBlbmt5b2t1XCA7CivlsL7pqqggPCBiaWtvdHN1XCA7CivluoPlkYogPCBrb3Vrb2t1XCA7Civoip3nlJ8gPCBzaGliYWZ1XCA7CivpgJrli6QgPCB0c3V1a2luXCA7Civoh6roqqwgPCBqaXNldHN1XCA7CivlhYXmuqIgPCBqdXVpdHN1XCA7CivnnIvlrqIgPCBrYW5rYWt1XCA7CivojLbmiZggPCBjaGF0YWt1XCA7CivnnJ/lpI8gPCBtYW5hdHN1XCA7CivovrrluYUgPCBoZW5wdWt1XCA7CivlupflhoUgPCB0ZW4nJ25haVwgOwor5aSa5qyh5YWDIDwgdGFqaWdlblwgOwor5bed5p+zIDwgc2Vucnl1dVwgOwor5qWt6IW5IDwgZ291aGFyYVwgOwor6Imv56iuIDwgcnlvdXNodVwgOwor5YCf6YeRIDwgc2hha2tpblwgOwor5YmK5LqVIDwgc2FrdXNlaVwgOwor5Ly86Z2e6ICFIDwgZXNlbW9ub1wgOwor5bqP5YiXIDwgam9yZXRzdVwgOwor5YCS6YyvIDwgdG91c2FrdVwgOwor5bid5b6zIDwgdGVpdG9rdVwgOwor6ISz5aSW56eRIDwgbm91Z2VrYVwgOwor6YCa5YiGIDwgdHN1dWJ1blwgOwor6L+95ZaEIDwgdHN1aXplblwgOwor5Ye25aCxIDwga3lvdWhvdVwgOwor5b6h5LiL5ZWPIDwgZ29rYW1vblwgOwor5qSc6KqNIDwga2VuJyduaW5cIDsKK+iNkuW3uyA8IGFyYW1ha2lcIDsKK+eXheiIjiA8IGJ5b3VzaGFcIDsKK+iInuiMuCA8IG1haXRha2VcIDsKK+mAseS7pCA8IHNodXVyZWlcIDsKK+WHhuW3niA8IGp1bnNodXVcIDsKK+iGg+iCreiHjSA8IG90dG9zZWlcIDsKK+WFseagkyA8IHRvbW9zZW5cIDsKK+Wls+aAp+WZqCA8IGpvc2Vpa2lcIDsKK+WtteWNteWZqCA8IGZ1cmFua2lcIDsKK+aknOiovCA8IGtlbnNob3VcIDsKK+eEoeeQhuinoyA8IG11cmlrYWlcIDsKK+W4uOWuvyA8IGpvdXlhZG9cIDsKK+S/oemgvCA8IHNoaW5yYWlcIDsKK+WFieayoiA8IGtvdXRha3VcIDsKK+W4neW7nyA8IHRlaWJ5b3VcIDsKK+WHueWcsCA8IGt1Ym9jaGlcIDsKK+WHuOWdiiA8IGRla29ib3VcIDsKK+i7jeelqCA8IGd1bnB5b3VcIDsKK+ebm+W+syA8IHNlaXRva3VcIDsKK+alreiAhSA8IGd5b3VzaGFcIDsKK+i7jeelniA8IGd1bnNoaW5cIDsKK+i5iOilsiA8IHRvdXNodXVcIDsKK+iIn+iJhyA8IHNodXV0ZWlcIDsKK+aoquajkiA8IHlva29ib3VcIDsKK+W5tOWPjiA8IG5lbnNodXVcIDsKK+WFpeaihSA8IG55dXViYWlcIDsKK+iFk+mqqCA8IGhpa290c3VcIDsKK+WFseaciSA8IGt5b3V5dXVcIDsKK+mwpOWtkCA8IGJ1cmlra29cIDsKK+ebuOWuoiA8IGFpa3lha3VcIDsKK+eItuaAp+aEmyA8IGZ1c2VpYWlcIDsKK+i/veWPtyA8IHRzdWlnb3VcIDsKK+mAo+S9nCA8IHJlbnNha3VcIDsKK+WFjuasoCA8IHRva2V0c3VcIDsKK+WFhuawkSA8IGNob3VtaW5cIDsKK+WIpeWEgCA8IGJldHN1Z2lcIDsKK+mdnuatpuijhSA8IGhpYnVzb3VcIDsKK+iJr+efpSA8IHJ5b3VjaGlcIDsKK+mAo+S8kSA8IHJlbmt5dXVcIDsKK+WIh+WRsyA8IGtpcmVhamlcIDsKK+mAoOS9nCA8IHpvdXNha3VcIDsKK+WFreabuCA8IHJva3VzaG9cIDsKK+edgOWJoyA8IGNoYWtrZW5cIDsKK+WIhuWRqCA8IGJ1bnNodXVcIDsKK+WFreabnCA8IHJva3V5b3VcIDsKK+WFq+aclCA8IGhhc3Nha3VcIDsKK+WIquS/riA8IHNhbnNodXVcIDsKK+WHhuWwhiA8IGp1bnNob3VcIDsKK+iFlemmliA8IHVkZWt1YmlcIDsKK+ecvOWKmyA8IGdhbnJpa2lcIDsKK+mAmuS+iyA8IHRzdXVyZWlcIDsKK+aomeamnCA8IGh5b3Vib3VcIDsKK+WFpeadpSA8IG55dXVyYWlcIDsKK+eVpeitnCA8IHJ5YWt1ZnVcIDsKK+i9ouaWrSA8IHJla2lkYW5cIDsKK+i7oueUqCA8IHRlbicneW91XCA7CivnmpDmnIggPCBzYXRzdWtpXCA7CivpgKPkuK0gPCByZW5jaHV1XCA7CivlhYPmrYwgPCBtb3RvdXRhXCA7CivoibLnmb0gPCBpcm9qaXJvXCA7Civlsqnop5IgPCBpd2FrYWRvXCA7CivlkIzniLbmr40gPCBkb3VmdWJvXCA7CivojLblupcgPCBjaGFtaXNlXCA7Civlh53loYogPCBneW91a2FpXCA7Civlh7rlk4EgPCBzaHVwcGluXCA7CivovrLlraYgPCBub3VnYWt1XCA7CivpgJrkurogPCB0c3V1amluXCA7CivnlaXoqp4gPCByeWFrdWdvXCA7Civlg63nlKggPCBzZW4nJ3lvdVwgOwor6LiK6LqNIDwgeW91eWFrdVwgOwor6Iy25bitIDwgY2hhc2VraVwgOwor6L+95YiKIDwgdHN1aWthblwgOwor55So6YePIDwgeW91cnlvdVwgOwor6Ieq6JmQIDwgamlneWFrdVwgOwor6ay855WcIDwga2ljaGlrdVwgOwor6IWQ6aOfIDwgZnVzaG9rdVwgOwor5bm05YaFIDwgbmVuJyduYWlcIDsKK+WCjeiBtCA8IGJvdWNob3VcIDsKK+W3puaKmCA8IHNhc2V0c3VcIDsKK+eZveahgyA8IGhha3V0b3VcIDsKK+Wls+aAp+WMliA8IGpvc2Vpa2FcIDsKK+iLpeaenSA8IHdha2FlZGFcIDsKK+i/keWbvSA8IGtpbmdva3VcIDsKK+iIueexjSA8IHNlbnNla2lcIDsKK+WFg+aomSA8IGdlbnB5b3VcIDsKK+WHuuWPoyA8IGRlZ3VjaGlcIDsKK+WIh+WJiiA8IHNlc3Nha3VcIDsKK+eVpeinoyA8IHJ5YWtrYWlcIDsKK+WIgOWMoCA8IHRvdXNob3VcIDsKK+eZuuahiCA8IGhhdHN1YW5cIDsKK+eEoeacn+mZkCA8IG11a2lnZW5cIDsKK+i7n+eQgyA8IG5hbmt5dXVcIDsKK+S/rumMrCA8IHNodXVyZW5cIDsKK+iHquWutueUqCA8IGppa2F5b3VcIDsKK+ebtOWljyA8IGppa2lzb3VcIDsKK+iIque2miA8IGtvdXpva3VcIDsKK+iJr+eUsCA8IHJ5b3VkZW5cIDsKK+i2s+mfsyA8IGFzaGlvdG9cIDsKK+WFiOajkiA8IHNha2lib3VcIDsKK+Wutuezu+WbsyA8IGtha2VpenVcIDsKK+S4gOS4lue0gCA8IGlzc2Vpa2lcIDsKK+WIiOWFpSA8IGthcmlpcmVcIDsKK+eZveacqCA8IHNoaXJha2lcIDsKK+iHqueUseW6piA8IGppeXV1ZG9cIDsKK+aomeacrCA8IGh5b3Vob25cIDsKK+eZveabuCA8IGhha3VzaG9cIDsKK+axmuafk+a6kCA8IG9zZW5nZW5cIDsKK+i7jeeUqCA8IGd1bicneW91XCA7CivliJ3kubMgPCBzaG9ueXV1XCA7CivlubPkv6EgPCBoZWlzaGluXCA7CivojZLlo4EgPCBhcmFrYWJlXCA7CivlhavmjpsgPCBoYWtrYWtlXCA7CivovKrmpa0gPCByaW5neW91XCA7CivojLblr64gPCBjaGFyeW91XCA7CivlubPkvZwgPCBoZWlzYWt1XCA7Civnm7Lln7cgPCBtb3VzaHV1XCA7CivnlJjphZIgPCBhbWF6YWtlXCA7CivlhYPmoJMgPCBtb3Rvc2VuXCA7CivlhavmjLogPCBoYXRjaG91XCA7CivnnJ/liaMgPCBzaGlua2VuXCA7Civkvp3poLznirYgPCBpcmFpam91XCA7Civlh7nlh7ggPCBvdXRvdHN1XCA7CivovpvlrZAgPCBrYXJhc2hpXCA7Civlh7jlh7kgPCB0b3RzdW91XCA7Civnmb7mlrkgPCBoeWFwcG91XCA7CivlgbTog4wgPCBzb2t1aGFpXCA7CivnmYLms5UgPCByeW91aG91XCA7CivlhaXmjpsgPCBpcmVrYWt1XCA7Civov7fkv6EgPCBtZWlzaGluXCA7Civlh7bliIMgPCBreW91amluXCA7CivnrKzkuIDmrakgPCBkYWlpcHBvXCA7Civlh7rlhbUgPCBzaHVwcGVpXCA7Civnmb3mlpEgPCBoYWt1aGFuXCA7CivpgIDkuqwgPCB0YWlreW91XCA7Civnmb3mlocgPCBoYWt1YnVuXCA7Civlvq7lobXlrZAgPCBtaWppbmtvXCA7Civlh7jlhoYgPCB0b3RzdWVuXCA7CivlsbHos4ogPCBzYW56b2t1XCA7CivnnLzkuK0gPCBnYW5jaHV1XCA7CivotJTlsZPnm64gPCBoaWlraW1lXCA7CivlgbTogZ4gPCBzb2t1YnVuXCA7Civmpa3nqK4gPCBneW91c2h1XCA7CivlhavmiYsgPCB5YXRzdWRlXCA7CivoibLniakgPCBpcm9tb25vXCA7Civnl7Pnl4UgPCByaW5ieW91XCA7CivlhYPmnI0gPCBnZW5wdWt1XCA7Civkv67pgZMgPCBzaHV1ZG91XCA7CivlhYvmmI4gPCBrb2t1bWVpXCA7CivlubTkuIogPCB0b3NoaXVlXCA7Civkv53ph4ggPCBob3NoYWt1XCA7CivlhaXmiYsgPCBueXV1c2h1XCA7CivlhaXmiYAgPCBueXV1c2hvXCA7Civov7DkvZwgPCBqdXNzYWt1XCA7Civpm7vno4HloLQgPCBkZW5qaWJhXCA7Civnm7TllrYgPCBjaG9rdWVpXCA7CivlsI/pnaIgPCBzaG91bWVuXCA7CivlsL/phbggPCBueW91c2FuXCA7CivovpvlpLcgPCBrb2J1c2hpXCA7Civlha3mg4UgPCByb2t1am91XCA7CivkuIDkvZPljJYgPCBpdHRhaWthXCA7CivlvqHml6Xmp5ggPCBvaGlzYW1hXCA7Civpn7Pnvr3lsYsgPCBvdG93YXlhXCA7Civpq5jnsrEgPCBrb3VyeWFuXCA7CivlsI/pm6MgPCBzaG91bmFuXCA7CivlsYDpg6ggPCBreW9rdWJ1XCA7CivljLvpmaLplbcgPCBpaW5jaG91XCA7CivljbDmrKfoqp4gPCBpbicnb3Vnb1wgOwor5bid5Zu9IDwgdGVpa29rdVwgOwor5Ye65LyaIDwgc2h1a2thaVwgOwor6ayx54S2IDwgdXRzdXplblwgOwor5YK355eVIDwgc2hvdWtvblwgOwor5YaN5a+pIDwgc2Fpc2hpblwgOwor55yM5YaFIDwga2VuJyduYWlcIDsKK+Wwv+mBkyA8IG55b3Vkb3VcIDsKK+WBtOe3miA8IHNva3VzZW5cIDsKK+WFrOW+syA8IGtvdXRva3VcIDsKK+W4uOWLnSA8IGpvdXNob3VcIDsKK+WGpeWigyA8IG1laWt5b3VcIDsKK+ecn+S6uiA8IHNoaW5qaW5cIDsKK+WGt+WYsiA8IHJlaWNob3VcIDsKK+mmtOm5vyA8IHRvbmFrYWlcIDsKK+ebtOWPgiA8IGppa2lzYW5cIDsKK+WHuuadpeeniyA8IGRla2lha2lcIDsKK+mjm+ihjOapnyA8IGhpa291a2lcIDsKK+WFpeW/tSA8IG55dXVuZW5cIDsKK+iEiumrhCA8IHNla2l6dWlcIDsKK+eEoeS9nOeCuiA8IG11c2FrdWlcIDsKK+ecn+S4iyA8IG1hc2hpdGFcIDsKK+WGhuWuiSA8IGVuJyd5YXN1XCA7CivlsIrplbcgPCBzb25jaG91XCA7Civlgb3nrYYgPCBnaWhpdHN1XCA7Civnm7jliYsgPCBzb3Vrb2t1XCA7Civohp3ooYwgPCBzaGlra291XCA7Civpg73luILpg6ggPCB0b3NoaWJ1XCA7Civou6Lms6ggPCB0ZW5jaHV1XCA7CivluqfokrLlm6MgPCB6YWJ1dG9uXCA7CivlhaXlu7cgPCBueXV1dGVpXCA7Civkv5fovKkgPCB6b2t1aGFpXCA7CivohJrpn7sgPCBreWFrdWluXCA7Civlh6Hkv5cgPCBib256b2t1XCA7Civlr5LprpIgPCBrYW5idW5hXCA7Civmpa3nl4UgPCBnb3VieW91XCA7CivovrLljZogPCBub3VoYWt1XCA7CivovrLljZQgPCBub3VreW91XCA7CivlhajluYUgPCB6ZW5wdWt1XCA7CivmlL7oqrLlvowgPCBob3VrYWdvXCA7CivlhajluK0gPCB6ZW5zZWtpXCA7Civpq5jnpoQgPCBrb3Vyb2t1XCA7Civov5HkvZwgPCBraW5zYWt1XCA7CivojbfkuLsgPCBuaW51c2hpXCA7Civoia/muK8gPCByeW91a291XCA7Civlr7jpmpkgPCBzdW5nZWtpXCA7CivkuIDmnKzmsJcgPCBpcHBvbmdpXCA7Civnm67liY0gPCBtb2t1emVuXCA7CivlsqnogowgPCBpd2FoYWRhXCA7Civlh6HkurogPCBib24nJ25pblwgOwor5L+h6LKpIDwgc2hpbnBhblwgOwor6Zu75rCX5bGLIDwgZGVua2l5YVwgOwor5L+X6LajIDwgem9rdXNodVwgOwor5L+u6KuWIDwgc2h1dXJvblwgOwor5YW15a2mIDwgaGVpZ2FrdVwgOwor55Sw6J66IDwgdGFuaXNoaVwgOwor55Sj6KSlIDwgc2Fuam9rdVwgOwor5bCP6YqDIDwgc2hvdWp1dVwgOwor5L6/6YCaIDwgYmVudHN1dVwgOwor5bCP6YmiIDwga29iYWNoaVwgOwor5pyq5p2l5rS+IDwgbWlyYWloYVwgOwor6LWk6aOvIDwgc2VraWhhblwgOwor5bid5YqHIDwgdGVpZ2VraVwgOwor5YWx5a2YIDwga3lvdXpvblwgOwor55yB5LukIDwgc2hvdXJlaVwgOwor6Ieq57KbIDwgamlzaHVrdVwgOwor55m+5bqmIDwgaHlha3Vkb1wgOwor5qCE6KqJ56S8IDwgZWl5b3JlaVwgOwor5YaF5aOBIDwgbmFpaGVraVwgOwor55a+55eFIDwgc2hpcHBlaVwgOwor5YWD5oKqIDwgZ2VuJydha3VcIDsKK+ezluiho+mMoCA8IHRvdWlqb3VcIDsKK+eWvOeXmyA8IHRvdXRzdXVcIDsKK+Wus+mzpSA8IGdhaWNob3VcIDsKK+WCjeeZvSA8IGJvdWhha3VcIDsKK+iJr+awkSA8IHJ5b3VtaW5cIDsKK+i6geeXhSA8IHNvdWJ5b3VcIDsKK+eQhuirluWutiA8IHJpcm9ua2FcIDsKK+eUsOiZqyA8IHRhbXVzaGlcIDsKK+eZveW4hiA8IHNoaXJhaG9cIDsKK+mrmOebtCA8IGtvdWppa2lcIDsKK+aJk+alveWZqCA8IGRhZ2Fra2lcIDsKK+eUn+ihgCA8IG5hbWFjaGlcIDsKK+eEoeS9nOazlSA8IGJ1c2Fob3VcIDsKK+WFpeWumiA8IG55dXVqb3VcIDsKK+i7oualrSA8IHRlbmd5b3VcIDsKK+WxiOiolyA8IGt1dHRha3VcIDsKK+ebtOS8nSA8IGppa2lkZW5cIDsKK+iMtuWMmSA8IGNoYXNhamlcIDsKK+iHquethiA8IGppaGl0c3VcIDsKK+S7geeOi+mWgCA8IG5pb3Vtb25cIDsKK+iLl+W6iiA8IG5hZWRva29cIDsKK+i1pOmdoiA8IHNla2ltZW5cIDsKK+WPpOWFuOa0viA8IGtvdGVuaGFcIDsKK+WGheWcpyA8IG5haWF0c3VcIDsKK+eXm+eCuSA8IHRzdXV0ZW5cIDsKK+e0oOWwgeWutiA8IHNvaG91a2FcIDsKK+WFiOW5tCA8IHNlbicnbmVuXCA7CivnlrHnlrkgPCBob3VzaGluXCA7Civkv5forKEgPCB6b2t1eW91XCA7CivlsI/pgZMgPCBrb21pY2hpXCA7Civoh6rnq4sgPCBqaXJpdHN1XCA7Civkv67ooYwgPCBzaHVneW91XCA7CivlhoXlm70gPCBuYWlrb2t1XCA7Civkv5foq7ogPCB6b2t1Z2VuXCA7Civoh7Pnpo8gPCBzaGlmdWt1XCA7Civlr7rpiq0gPCB0ZXJhc2VuXCA7CivovrLkvZwgPCBub3VzYWt1XCA7Civkv5foq6YgPCB6b2t1dGFpXCA7Civkv4rosaogPCBzaHVuZ291XCA7Civkv5foq5YgPCB6b2t1cm9uXCA7Civnl4fnirYgPCBzaG91am91XCA7Civkv5foq4cgPCB6b2t1ZGFuXCA7CivlsI7pgJogPCBkb3V0c3V1XCA7CivprZrml48gPCBneW96b2t1XCA7CivlhaXlqb8gPCBpcmltdWtvXCA7Civlg7vmnZEgPCBoZWtpc29uXCA7CivprqjlsYsgPCBzdXNoaXlhXCA7Civlr4Tpo58gPCBraXNob2t1XCA7Civnmb3lsbEgPCBoYWt1c2FuXCA7Civnl4XnirYgPCBieW91am91XCA7CivlhYPlubQgPCBnYW4nJ25lblwgOwor5bit5LiKIDwgc2VraWpvdVwgOwor6I2S5LqLIDwgYXJhZ290b1wgOwor55uj5L+uIDwga2Fuc2h1dVwgOwor5q2p5ZCI5Yi2IDwgYnVhaXNlaVwgOwor5YG455uXIDwgY2h1dXRvdVwgOwor5YO75pu4IDwgaGVraXNob1wgOwor55WZ572uIDwgcnl1dWNoaVwgOwor6L6b5YWaIDwga2FyYXRvdVwgOwor5qC86ZeYIDwga2FrdXRvdVwgOwor55Wq57WEIDwgYmFuZ3VtaVwgOwor6a2C5p+xIDwga29uY2h1dVwgOwor55m+5a6YIDwgaHlha2thblwgOwor5L2c6aKoIDwgc2FrdWZ1dVwgOwor6a2a5rKz5bK4IDwgdW9nYXNoaVwgOwor6aas6aOfIDwgYmFzaG9rdVwgOwor6Ieq55Sx5YyWIDwgaml5dXVrYVwgOwor6Imm5qmLIDwga2Fua3lvdVwgOwor5qiZ5a6aIDwgaHlvdXRlaVwgOwor5qiq5aWqIDwgb3VkYXRzdVwgOwor55m95a2QIDwgc2hpcm9rb1wgOwor5YaN5ZGKIDwgc2Fpa29rdVwgOwor6LuN5qW9IDwgZ3VuZ2FrdVwgOwor5bGx6IqLIDwgeWFtYWltb1wgOwor5bid5LqsIDwgdGVpa3lvdVwgOwor6Ly75bCEIDwgZnVrdXNoYVwgOwor5YWl5aOwIDwgbmlzc2hvdVwgOwor5o6I55Sj5omAIDwganVzYW5qb1wgOwor6aeG5YuV5qmfIDwga3Vkb3VraVwgOwor5a+G6ZuyIDwgbWl0c3V1blwgOwor5LqM566H5omAIDwgbmlrYXNob1wgOwor5YK+5rOoIDwga2VpY2h1dVwgOwor5YWl5aKoIDwgaXJlenVtaVwgOwor5a+G6ZuGIDwgbWlzc2h1dVwgOwor6YGV54qv6ICFIDwgaWhhbnNoYVwgOwor6Ieq55S75YOPIDwgamlnYXpvdVwgOwor6Imy5p+EIDwgaXJvZ2FyYVwgOwor5b2i5oSP5ouzIDwga2VpaWtlblwgOwor6IOM6auYIDwgc2VpdGFrYVwgOwor5bCG6LuNIDwgc2hvdWd1blwgOwor5qaC5rOBIDwgZ2Fpa3lvdVwgOwor5YWo5Z+fIDwgemVuJydpa2lcIDsKK+avjeaAp+aEmyA8IGJvc2VpYWlcIDsKK+S6leaIuOWBtCA8IGlkb2dhd2FcIDsKK+WxseiFuSA8IHNhbnB1a3VcIDsKK+WFiOWtpiA8IHNlbmdha3VcIDsKK+iEmumDqCA8IGt5YWt1YnVcIDsKK+iDtOmVtyA8IGRvdW5hZ2FcIDsKK+WDp+acjSA8IHNvdWZ1a3VcIDsKK+WGjeWLnSA8IHNhaXNob3VcIDsKK+iFueiUtSA8IGZ1a3V6b3VcIDsKK+iJr+adkCA8IHJ5b3V6YWlcIDsKK+S9jumhjSA8IHRlaWdha3VcIDsKK+mtmuaLkyA8IGd5b3Rha3VcIDsKK+i8lOW8vCA8IGhvaGl0c3VcIDsKK+WFqOWbvSA8IHplbmdva3VcIDsKK+iJr+abuCA8IHJ5b3VzaG9cIDsKK+WusOmgmCA8IHNhaXJ5b3VcIDsKK+eZveWkqiA8IHNoaXJhdGFcIDsKK+eZveWknCA8IGJ5YWt1eWFcIDsKK+i5tOeIqiA8IGtlZHp1bWVcIDsKK+i1pOmMhiA8IGFrYXNhYmlcIDsKK+WFpeWboyA8IG55dXVkYW5cIDsKK+W3peWNmiA8IGtvdWhha3VcIDsKK+W3ruWIpSA8IHNhYmV0c3VcIDsKK+WGquS5lyA8IGJla2lqb3VcIDsKK+i7jeacjSA8IGd1bnB1a3VcIDsKK+eUsuiDhCA8IGthdGNodXVcIDsKK+iHqueZuiA8IGppaGF0c3VcIDsKK+eVouernyA8IGhpa2t5b3VcIDsKK+agoemWsiA8IGtvdWV0c3VcIDsKK+eWjueVpSA8IHNvcnlha3VcIDsKK+WyqeekgSA8IGdhbnNob3VcIDsKK+WCt+atjiA8IHNob3V0YW5cIDsKK+iJsuaWhyA8IGlyb2J1bWlcIDsKK+egtOegleapnyA8IGhhc2Fpa2lcIDsKK+mmlumgmCA8IHNodXJ5b3VcIDsKK+mBleitpue9qiA8IGlrZWl6YWlcIDsKK+W4jOWcn+mhniA8IGtpZG9ydWlcIDsKK+i1pOmHkSA8IGFrYWdhbmVcIDsKK+mpleiChiA8IGt5b3VzaGlcIDsKK+Wtpum9oiA8IGdha3VyZWlcIDsKK+WutemXhyA8IHlvaXlhbWlcIDsKK+Wwj+irliA8IHNob3Vyb25cIDsKK+S6nOmJm+W8lSA8IGFlbmJpa2lcIDsKK+WkquWusOW6nCA8IGRhemFpZnVcIDsKK+WyqeefsyA8IGdhbnNla2lcIDsKK+iFueiKuCA8IGhhcmFnZWlcIDsKK+eZveWcsCA8IHNoaXJvamlcIDsKK+aguOmFuCA8IGtha3VzYW5cIDsKK+WFreWQiCA8IHJpa3Vnb3VcIDsKK+iIueatjCA8IGZ1bmF1dGFcIDsKK+WvvuixoSA8IHRhaXNob3VcIDsKK+mosOiQvSA8IHRvdXJha3VcIDsKK+WBj+eZliA8IGhlbnBla2lcIDsKK+WFuOWJhyA8IHRlbnNva3VcIDsKK+ajkue4niA8IGJvdWppbWFcIDsKK+S8iumBlOiAhSA8IGRhdGVzaGFcIDsKK+WFreWNgSA8IHJva3VqdXVcIDsKK+i1pOmBkyA8IHNla2lkb3VcIDsKK+eUn+iCiSA8IHNlaW5pa3VcIDsKK+mAgeipseWZqCA8IHNvdXdha2lcIDsKK+akjeeariA8IHNob2t1aGlcIDsKK+Wun+mcgCA8IGppdHN1anVcIDsKK+WFjeWbmiA8IG1lbnNodXVcIDsKK+S8tOWkqemAoyA8IGJhdGVyZW5cIDsKK+mnhumAkCA8IGt1Y2hpa3VcIDsKK+S6nOm6u+W4gyA8IGFtYW51bm9cIDsKK+mnkOi7iiA8IGNodXVzaGFcIDsKK+agqumHkSA8IGthYnVraW5cIDsKK+iHqueOiSA8IGppZ3lva3VcIDsKK+Wls+mDjuWxiyA8IGpvcm91eWFcIDsKK+Wuv+mKrSA8IHlhZG9zZW5cIDsKK+mmlumVtyA8IHNodWNob3VcIDsKK+iFueiDjCA8IGZ1a3VoYWlcIDsKK+WZtOmcp+WZqCA8IGZ1bm11a2lcIDsKK+eXheatuyA8IGJ5b3VzaGlcIDsKK+WwhOinkiA8IHNoYWtha3VcIDsKK+iLseWNmOiqniA8IGVpdGFuZ29cIDsKK+WuoumWkyA8IGt5YWt1bWFcIDsKK+W3peS9nCA8IGtvdXNha3VcIDsKK+WEgOW8jyA8IGdpc2hpa2lcIDsKK+eUsOe0syA8IGRlbnNoaW5cIDsKK+WvvuiosyA8IHRhaXlha3VcIDsKK+i1pOi7jSA8IHNla2lndW5cIDsKK+iEgui6qyA8IGFidXJhbWlcIDsKK+Wzoea5viA8IGt5b3V3YW5cIDsKK+i7jeaLoSA8IGd1bmtha3VcIDsKK+eZvuWRsyA8IGh5YWt1bWlcIDsKK+iNt+mmrOi7iiA8IG5pYmFzaGFcIDsKK+aTrOaFi+iqniA8IGdpdGFpZ29cIDsKK+WvvuinkiA8IHRhaWtha3VcIDsKK+afsemdoiA8IGNodXVtZW5cIDsKK+W3qOS5syA8IGt5b255dXVcIDsKK+eVsOmCpuS6uiA8IGlob3VqaW5cIDsKK+eUu+ethiA8IGdhaGl0c3VcIDsKK+S+m+impyA8IGt5b3VyYW5cIDsKK+aAquaIkeS6uiA8IGtlZ2FuaW5cIDsKK+WvuOiplSA8IHN1bnB5b3VcIDsKK+WGheS4rSA8IHVjaGlqdXVcIDsKK+WKueaenOmfsyA8IGtvdWthb25cIDsKK+WvhumAmiA8IG1pdHRzdXVcIDsKK+WAtueZuiA8IGd1aGF0c3VcIDsKK+WFrOWDlSA8IGtvdWJva3VcIDsKK+S9k+mHjyA8IHRhaXJ5b3VcIDsKK+Wik+eikemKmCA8IGJvaGltZWlcIDsKK+Wul+mWgCA8IHNodXVtb25cIDsKK+iHhueXhSA8IG9rdWJ5b3VcIDsKK+WFqOWEqiA8IHplbicneXV1XCA7Civpo5vooYzlrrYgPCBoaWtvdWthXCA7CivnlaXnlLsgPCByeWFrdWdhXCA7Civkv7jntaYgPCBob3VreXV1XCA7Civlrr/pgYsgPCBzaHVrdXVuXCA7CivoiLnmnb8gPCBmdW5haXRhXCA7Civkv4roi7EgPCBzaHVuJydlaVwgOwor6Iqz5aKoIDwgaG91Ym9rdVwgOwor55m+5YyBIDwgaHlha3VtZVwgOwor55Sf57W5IDwgc3V6dXNoaVwgOwor6Luf5byxIDwgbmFuamFrdVwgOwor5LyR6aSoIDwga3l1dWthblwgOwor5a+G6Ly4IDwgbWl0c3V5dVwgOwor5YWa5YmHIDwgdG91c29rdVwgOwor5L+u57mVIDwgc2h1dXplblwgOwor5LyR6aSKIDwga3l1dXlvdVwgOwor5qa05by+IDwgcnl1dWRhblwgOwor5bGx56mNIDwgc2Fuc2VraVwgOwor6Ii25p2lIDwgaGFrdXJhaVwgOwor6LWk6LKnIDwgc2VraWhpblwgOwor6Iux5YKRIDwgZWlrZXRzdVwgOwor5qW15pqRIDwgZ29rdXNob1wgOwor55eF5qOfIDwgYnlvdXRvdVwgOwor54Gr54ao5paXIDwgaGlub3NoaVwgOwor6IKM6aqoIDwga2lrb3RzdVwgOwor6Imv5oCnIDwgcnlvdXNlaVwgOwor6Laz6Iq4IDwgYXNoaWdlaVwgOwor6IW457eaIDwgY2hvdXNlblwgOwor6Lyq5ZSxIDwgcmluc2hvdVwgOwor5YGJ54mpIDwgZXJhbW9ub1wgOwor55m95YiDIDwgaGFrdWppblwgOwor5L6u6JSRIDwgYnViZXRzdVwgOwor6Iul5YWaIDwgd2FrYXRvdVwgOwor55eF5qC5IDwgYnlvdWtvblwgOwor5Lya6ZuGIDwga2Fpc2h1dVwgOwor5bGR57O4IDwga3V6dWl0b1wgOwor5qKf572qIDwga3lvdXphaVwgOwor55m95YW1IDwgaGFrdWhlaVwgOwor5L2O6YCfIDwgdGVpc29rdVwgOwor5YWl5LyaIDwgbnl1dWthaVwgOwor5bGR57GzIDwga3V6dW1haVwgOwor6Lu95aaZIDwga2VpbXlvdVwgOwor6Ieq5ruFIDwgamltZXRzdVwgOwor5LyR6Zu7IDwga3l1dWRlblwgOwor5bO25qC5IDwgc2hpbWFuZVwgOwor5a2m6aKoIDwgZ2FrdWZ1dVwgOwor5YO15bGNIDwga3lvbnNoaVwgOwor5YWI5Yi7IDwgc2Vua29rdVwgOwor5YSq5L2N5oCnIDwgeXV1aXNlaVwgOwor6IKJ6aWFIDwgbmlrdW1hblwgOwor5L216KqtIDwgaGVpZG9rdVwgOwor6aas6LezIDwgdW1hdG9iaVwgOwor6Lui5bGeIDwgdGVuem9rdVwgOwor6LWk6KqgIDwgc2VraXNlaVwgOwor6Imv5birIDwgcnlvdXNoaVwgOwor5Lya6ZW3IDwga2FpY2hvdVwgOwor5qC86KiAIDwga2FrdWdlblwgOwor6aeB6KuWIDwgYmFrdXJvblwgOwor54Sh6Laj5ZGzIDwgbXVzaHVtaVwgOwor6YGO54++5pyqIDwga2FnZW5taVwgOwor5YWD5Ye2IDwgZ2Vua3lvdVwgOwor6IKJ6aGeIDwgbmlrdXJ1aVwgOwor55a85pyoIDwgaGlpcmFnaVwgOwor6Lui5a6FIDwgdGVudGFrdVwgOwor5qCE6YGUIDwgZWl0YXRzdVwgOwor6Lui5a2mIDwgdGVuZ2FrdVwgOwor6Ieq5rS7IDwgamlrYXRzdVwgOwor5L+456aEIDwgaG91cm9rdVwgOwor6Iul5Lq6IDwgd2Frb3Vkb1wgOwor5qW95omNIDwgZ2FrdXNhaVwgOwor5a+G6K2wIDwgbWl0c3VnaVwgOwor6aaZ6LuKIDwga3lvdXNoYVwgOwor5L+X57SvIDwgem9rdXJ1aVwgOwor6ZW35qSF5a2QIDwgbmFnYWlzdVwgOwor6IG+5ZSW6ICFIDwgcm91YXNoYVwgOwor5YGc5rOKIDwgdGVpaGFrdVwgOwor5qWK5p+zIDwgeW91cnl1dVwgOwor5bCP6IiFIDwga29qdXV0b1wgOwor6Ieq5rG6IDwgamlrZXRzdVwgOwor55m+5LqLIDwgaHlha3VqaVwgOwor5a+G6KqeIDwgbWl0c3Vnb1wgOwor6IO46KWfIDwga3lvdWtpblwgOwor5bC/566hIDwgbnlvdWthblwgOwor6ayx5bGIIDwgdWtrdXRzdVwgOwor6LuN5bGeIDwgZ3Vuem9rdVwgOwor5paH5a2X55ukIDwgbW9qaWJhblwgOwor55eb5oakIDwgdHN1dWZ1blwgOwor5LqU5Y2B6Z+zIDwgZ29qdXVvblwgOwor5bGx55WqIDwgeWFtYWJhblwgOwor5qW95oOzIDwgZ2FrdXNvdVwgOwor6Ieq5q66IDwgamlzYXRzdVwgOwor6ISx6Ie8IDwgZGFra3l1dVwgOwor6aaW6LazIDwgc2h1c29rdVwgOwor6ISx6IetIDwgZGFzc2h1dVwgOwor6LuN5bCGIDwgZ3Vuc2hvdVwgOwor5YK35oK0IDwgc2hvdXN1aVwgOwor5YGP5rWBIDwgaGVucnl1dVwgOwor6ISz6IacIDwgbm91bWFrdVwgOwor54++6auYIDwgZ2VuZGFrYVwgOwor6Iej5rCRIDwgc2hpbm1pblwgOwor6ay85amGIDwgb25pYmFiYVwgOwor5L2c6KmpIDwgc2FrdXNoaVwgOwor6ISx6IW4IDwgZGF0Y2hvdVwgOwor5a6F6YWNIDwgdGFrdWhhaVwgOwor5LyR6YyYIDwga3l1dXN1aVwgOwor55Sw55WRIDwgZGVucGF0YVwgOwor55eb5oGoIDwgdHN1dWtvblwgOwor6Iez5qW1IDwgc2hpZ29rdVwgOwor5qW15oKqIDwgZ29rdWFrdVwgOwor5a6J6YC4IDwgYW4nJ2l0c3VcIDsKK+WkqeWppue+hSA8IHRlbnB1cmFcIDsKK+WDu+WcsCA8IGhla2ljaGlcIDsKK+WDu+WcqCA8IGhla2l6YWlcIDsKK+Wumui3oSA8IGpvdXNla2lcIDsKK+i8quS9nCA8IHJpbnNha3VcIDsKK+WyqeazoiA8IGl3YW5hbWlcIDsKK+Wzu+aLkiA8IHNodW5reW9cIDsKK+iJr+WmuyA8IHJ5b3VzYWlcIDsKK+iHhua4rCA8IG9rdXNva3VcIDsKK+eUo+eXmyA8IHNhbnRzdXVcIDsKK+WvnemBk+WFtyA8IG5lZG91Z3VcIDsKK+iBt+majiA8IHNob2trYWlcIDsKK+eVnea6nSA8IHVuZW1pem9cIDsKK+alteW+riA8IGt5b2t1YmlcIDsKK+eVsOWIhuWtkCA8IGlidW5zaGlcIDsKK+iGnOeKtiA8IG1ha3Vqb3VcIDsKK+eUmOeariA8IGFtYWthd2FcIDsKK+i1pOiVqiA8IGFrYWthYnVcIDsKK+WxseeKrCA8IHlhbWFpbnVcIDsKK+S/iuerpSA8IHNodW5kb3VcIDsKK+alveW4qyA8IGdha3VzaGlcIDsKK+ahkeiJsiA8IGt1d2Fpcm9cIDsKK+iFleeroCA8IHdhbnNob3VcIDsKK+mmrOihkyA8IGJhanV0c3VcIDsKK+eXheaFiyA8IGJ5b3V0YWlcIDsKK+iFleeriyA8IHVkZXRhdGVcIDsKK+iFueeZkiA8IGhhcmFpc2VcIDsKK+iInuaJhyA8IG1haW91Z2lcIDsKK+WvruiIjiA8IHJ5b3VzaGFcIDsKK+alteW6piA8IGt5b2t1ZG9cIDsKK+WBlealvSA8IGthaXJha3VcIDsKK+eQg+mdoiA8IGt5dXVtZW5cIDsKK+Wwj+e3qCA8IHNob3VoZW5cIDsKK+iHquiyqeapnyA8IGppaGFua2lcIDsKK+eXheaCoyA8IGJ5b3VrYW5cIDsKK+WuouiqniA8IGt5YWt1Z29cIDsKK+aelemgrSA8IGNoaW50b3VcIDsKK+alteW3piA8IGt5b2t1c2FcIDsKK+eToueuqiA8IGh5b3V0YW5cIDsKK+WFq+mHjeWeoyA8IHlhZWdha2lcIDsKK+iKuOS6iyA8IGdlaWdvdG9cIDsKK+akjeaouSA8IHNob2t1anVcIDsKK+Wun+ipsSA8IGppdHN1d2FcIDsKK+eWvuaCoyA8IHNoaWtrYW5cIDsKK+eEoeS+oeWApCA8IG11a2FjaGlcIDsKK+ahg+iJsiA8IG1vbW9pcm9cIDsKK+aknOagoSA8IGtlbmd5b3VcIDsKK+Wun+iovCA8IGppc3Nob3VcIDsKK+S7iumggyA8IGltYWdvcm9cIDsKK+iFsOeXmyA8IHlvdXRzdXVcIDsKK+Wwj+eykiA8IGtvdHN1YnVcIDsKK+alreW4qyA8IHdhemFzaGlcIDsKK+iKseS7oyA8IGhhbmFkYWlcIDsKK+WuouimsyA8IGt5YWtrYW5cIDsKK+S/l+ecvCA8IHpva3VnYW5cIDsKK+S9v+iHoyA8IHNoaXNoaW5cIDsKK+WvkuiPiiA8IGthbmdpa3VcIDsKK+S6uuS6i+mZoiA8IGppbmppaW5cIDsKK+S8kei8iSA8IGt5dXVzYWlcIDsKK+Wwu+ebriA8IHNoaXJpbWVcIDsKK+WumuiplSA8IHRlaWh5b3VcIDsKK+S8kei7oiA8IGt5dXV0ZW5cIDsKK+eXheW8iiA8IGJ5b3VoZWlcIDsKK+WCt+WusyA8IHNob3VnYWlcIDsKK+WumuiosyA8IHRlaXlha3VcIDsKK+i7jeWbvSA8IGd1bmtva3VcIDsKK+mtlOWKmyA8IG1hcnlva3VcIDsKK+aknOadnyA8IGtlbnNva3VcIDsKK+S4jeWknOWfjiA8IGZ1eWFqb3VcIDsKK+WxheeVmSA8IGt5b3J5dXVcIDsKK+e+juS4iOWkqyA8IGJpam91ZnVcIDsKK+iNj+iDoem6u+ayuSA8IGVnb21heXVcIDsKK+WyqeajmiA8IGl3YWRhbmFcIDsKK+S7j+mZgCA8IGJ1dHN1ZGFcIDsKK+Wus+iZqyA8IGdhaWNodXVcIDsKK+WwseecoCA8IHNodXVtaW5cIDsKK+iEh+iDvSA8IHdha2lub3VcIDsKK+WEhOWFhiA8IG9rdWNob3VcIDsKK+eXheW3oyA8IGJ5b3Vzb3VcIDsKK+i1pOiGmiA8IGFrYWhhZGFcIDsKK+Wwj+erpSA8IGtvd2FwcGFcIDsKK+S7j+mWoyA8IGJ1a2tha3VcIDsKK+aYk+aQjeWTgSA8IGlzb25oaW5cIDsKK+S7j+mWkyA8IGJ1dHN1bWFcIDsKK+i1pOiFuSA8IGFrYWhhcmFcIDsKK+WwvOWDp+mZoiA8IG5pc291aW5cIDsKK+iFjuefsyA8IGppbnNla2lcIDsKK+iJr+WTgSA8IHJ5b3VoaW5cIDsKK+iDg+iiiyA8IGlidWt1cm9cIDsKK+eEoeeQhuaVsCA8IG11cmlzdXVcIDsKK+Wzu+W2uiA8IHNodW5yZWlcIDsKK+WEkuS7jyA8IGp1YnV0c3VcIDsKK+mtheWKmyA8IG1pcnlva3VcIDsKK+iyuOmWkyA8IGthc2hpbWFcIDsKK+iDuOiHhiA8IGt5b3Vva3VcIDsKK+eEoemfu+ipqSA8IG11aW5zaGlcIDsKK+mtmuS/oSA8IGd5b3NoaW5cIDsKK+iFleeZvSA8IHdhbnBha3VcIDsKK+WkmuanmOWMliA8IHRheW91a2FcIDsKK+iDuOiFuiA8IGt5b3VzZW5cIDsKK+S6rOmiqCA8IGt5b3VmdXVcIDsKK+alveWkqSA8IHJha3V0ZW5cIDsKK+iJr+WPiyA8IHJ5b3V5dXVcIDsKK+iEseepgCA8IGRha2tva3VcIDsKK+ePremVtyA8IGhhbmNob3VcIDsKK+S8neiqpiA8IGRlbnNob3VcIDsKK+WwiuensCA8IHNvbnNob3VcIDsKK+WBg+aciCA8IGVuZ2V0c3VcIDsKK+WvvuetliA8IHRhaXNha3VcIDsKK+WAn+asviA8IHNoYWtrYW5cIDsKK+alveWjhyA8IGdha3VkYW5cIDsKK+S+v+ebiiA8IGJlbicnZWtpXCA7CivkvJroqq0gPCBrYWlkb2t1XCA7Civmo7rmobYgPCBrYW4nJ29rZVwgOwor5L2O6JC9IDwgdGVpcmFrdVwgOwor55eF5a6zIDwgYnlvdWdhaVwgOwor5YGJ5pa5IDwgZXJhZ2F0YVwgOwor55qu6Iaa56eR5Yy7IDwgaGlmdWthaVwgOwor55WM5qiZIDwga2FpaHlvdVwgOwor6LOD6YqtIDwgY2hpbnNlblwgOwor5L2e6IejIDwgbmVpc2hpblwgOwor5L2Z6ImyIDwgeW9zaG9rdVwgOwor6aOy6aOfIDwgaW5zaG9rdVwgOwor5bGL5qC56KOPIDwgeWFuZXVyYVwgOwor5YK+5Zu9IDwga2Vpa29rdVwgOwor5pq06aKo6ZuoIDwgYm91ZnV1dVwgOwor5L+C55WZIDwga2Vpcnl1dVwgOwor55S35rCXIDwgb3Rva29naVwgOwor5qWT5bGeIDwgZnV1em9rdVwgOwor6IOD6JasIDwgaWd1c3VyaVwgOwor5LuZ6YO3IDwgc2Vua3lvdVwgOwor5qCX6ImyIDwga3VyaWlyb1wgOwor6LO86KqtIDwga291ZG9rdVwgOwor55Sf55CG5pelIDwgc2VpcmliaVwgOwor6LuK5YqbIDwgc2hhcmlraVwgOwor5YiG6ZmQ6ICFIDwgYnVnZW5qYVwgOwor6Iel5omAIDwgZnVzaGlkb1wgOwor5L2T6IetIDwgdGFpc2h1dVwgOwor6aas6ISaIDwgYmFreWFrdVwgOwor5a+456eSIDwgc3VuYnlvdVwgOwor5Lq65LqL6YOoIDwgamluamlidVwgOwor6LW3562GIDwga2loaXRzdVwgOwor6aeQ57GzIDwgY2h1dWJlaVwgOwor5Lm+6a2aIDwgaG9zaGl1b1wgOwor6bia6bWh6LKdIDwgb3VtdWdhaVwgOwor6IKd6KaBIDwga2FuJyd5b3VcIDsKK+ajruaelyA8IHNoaW5yaW5cIDsKK+i1pOe1hCA8IGFrYWd1bWlcIDsKK+i7ouS7uyA8IHRlbicnbmluXCA7CivmoLzntI0gPCBrYWt1bm91XCA7CivlsI/nmaogPCBrb3NoYWt1XCA7CivotaTntJkgPCBha2FnYW1pXCA7CivpqZrmrY4gPCBreW91dGFuXCA7Civotbfnq4sgPCBraXJpdHN1XCA7CivkuIDkuIHlrZcgPCBpdHRlaWppXCA7CivkvZzogIUgPCBzYWt1c2hhXCA7Civpo5/ppIwgPCBzaG9rdWppXCA7CivohbjmuoAgPCBjaG91bWFuXCA7Civku7LosrcgPCBuYWthZ2FpXCA7CivliIbpm6LmtL4gPCBidW5yaWhhXCA7CivlsI/ntLDlt6UgPCBrb3phaWt1XCA7Civnl4XlpIkgPCBieW91aGVuXCA7Civmmpflj7fljJYgPCBhbmdvdWthXCA7Civlg6XlgJYgPCBneW91a291XCA7Civos6DosqwgPCBiYWlzZWtpXCA7Civos57os5sgPCBzaG91c2FuXCA7CivlsIrnmocgPCBzb24nJ25vdVwgOwor546E6bqmIDwgZ2VuYmFrdVwgOwor6ISI566hIDwgbXlha2thblwgOwor5p6i6Lu4IDwgc3V1amlrdVwgOwor6Iie5aerIDwgbWFpaGltZVwgOwor55eb5ZiGIDwgdHN1dXRhblwgOwor5bCo54qsIDwgbXVrdWludVwgOwor5qOf5qKBIDwgdG91cnlvdVwgOwor5Y+z5b6A5bem5b6AIDwgdW91c2FvdVwgOwor5Y2w5bqm5rSLIDwgaW5kb3lvdVwgOwor5aGp57Sg6YW4IDwgZW5zb3NhblwgOwor5bGg5q66IDwgdG9zYXRzdVwgOwor6LOK6LuNIDwgem9rdWd1blwgOwor6IW45rayIDwgY2hvdWVraVwgOwor6IiO5a6FIDwgc2hhdGFrdVwgOwor6Lqr5ZG9IDwgc2hpbm1laVwgOwor5L6d6aC85Lq6IDwgaXJhaW5pblwgOwor55ar5a2mIDwgZWtpZ2FrdVwgOwor5bCP55S6IDwga29tYWNoaVwgOwor5bCP55S3IDwga29vdG9rb1wgOwor6IWw5rmvIDwga29zaGl5dVwgOwor5bCE55qEIDwgc2hhdGVraVwgOwor6ISz55eFIDwgbm91YnlvdVwgOwor5bCP55SfIDwgc2hvdXNlaVwgOwor54i25q+N5LyaIDwgZnVib2thaVwgOwor5bGx5qSSIDwgc2Fuc2hvdVwgOwor5L2z56+AIDwga2FzZXRzdVwgOwor5LuK6YCxIDwga29uc2h1dVwgOwor6IGW6YCxIDwgc2Vpc2h1dVwgOwor6aOy6YWS5a62IDwgaW5zaHVrYVwgOwor5LiN6KqN5Y+vIDwgZnVuaW5rYVwgOwor5L2O57+8IDwgdGVpeW9rdVwgOwor6Imy5LqLIDwgaXJvZ290b1wgOwor5p+/6ImyIDwga2FraWlyb1wgOwor55Sw5qW9IDwgZGVuZ2FrdVwgOwor5LuK6L+EIDwgaW1hbWFkZVwgOwor5Lm+6aOvIDwgaG9zaGlpaVwgOwor6Imv5Lq6IDwgcnlvdWppblwgOwor5a6/57iBIDwgc2h1a3VlblwgOwor6Iej5b6TIDwgc2hpbmp1dVwgOwor6IW55rC0IDwgZnVrdXN1aVwgOwor6LeL5riJIDwgYmFzc2hvdVwgOwor55S65p2RIDwgY2hvdXNvblwgOwor5YCS5pyoIDwgdG91Ym9rdVwgOwor5oWw5Yq05LyaIDwgaXJvdWthaVwgOwor6Ieo5bitIDwgcmluc2VraVwgOwor5L+u5q2jIDwgc2h1dXNlaVwgOwor5pyo6a2aIDwgbW9rdWd5b1wgOwor6LGG6IWQ5bGLIDwgdG91ZnV5YVwgOwor6auY5aOwIDwgdGFrYWdvZVwgOwor5L2156ewIDwgaGVpc2hvdVwgOwor5YiG6Zui5qmfIDwgYnVucmlraVwgOwor5qaC5YmHIDwgZ2Fpc29rdVwgOwor6ICQ6ZyHIDwgdGFpc2hpblwgOwor5qCE6IG3IDwgZWlzaG9rdVwgOwor5LuP6LehIDwgYnVzc2VraVwgOwor54Gr54KO55O2IDwga2FlbmJpblwgOwor6LKr6YCaIDwga2FudHN1dVwgOwor6IGW6LmfIDwgc2Vpc2VraVwgOwor5bO25Zu9IDwgdG91Z29rdVwgOwor55Sj5qWtIDwgc2FuZ3lvdVwgOwor6IWw5rCXIDwga29zaGlrZVwgOwor5YK35Ym1IDwgc2hvdXNvdVwgOwor6aOf6ZaTIDwgc2hva2thblwgOwor5b6h5aSa5YiGIDwgZ290YWJ1blwgOwor5Luu6KaqIDwga2FyaW95YVwgOwor6IKy6IuXIDwgaWt1YnlvdVwgOwor5a6Y6IO9IDwga2FuJydub3VcIDsKK+izg+iyuCA8IGNoaW50YWlcIDsKK+WyoeaDmiA8IG9rYWJvcmVcIDsKK+aeneixhiA8IGVkYW1hbWVcIDsKK+iBtOiosSA8IGNob3VreW9cIDsKK+eUn+alrSA8IG5hcml3YWlcIDsKK+S7o+iqrSA8IGRhaWRva3VcIDsKK+ePvuixoSA8IGdlbnNob3VcIDsKK+Wun+e/kiA8IGppc3NodXVcIDsKK+S7suijgSA8IGNodXVzYWlcIDsKK+Wwj+eIqiA8IGtvZHp1bWVcIDsKK+eWjuWvhiA8IHNvbWl0c3VcIDsKK+iBtOinoyA8IGNob3VrYWlcIDsKK+iyp+i+siA8IGhpbicnbm91XCA7Civoh6jmmYLosrsgPCByaW5qaWhpXCA7Civku6PoqLogPCBkYWlzaGluXCA7CivogbToppYgPCBjaG91c2hpXCA7CivlsZ7moLwgPCB6b2trYWt1XCA7CivlgrflhbUgPCBzaG91aGVpXCA7Civmpb3lhbggPCBnYWt1dGVuXCA7CivnlLvmlbAgPCBrYWt1c3V1XCA7Civohrrmh7IgPCB5b3VjaG91XCA7CivlgI3ml6cgPCBiYWlreXV1XCA7CivlpKflpKrpvJMgPCBvb2RhaWtvXCA7Civpq5jlnKcgPCBrb3VhdHN1XCA7CivnlLrmlL8gPCBjaG91c2VpXCA7CivmpbXliJEgPCBreW9ra2VpXCA7CivlpoLkvZXnqIsgPCBpa2Fob2RvXCA7CivniaHniZvluqcgPCBvdXNoaXphXCA7Civnl4XlkI0gPCBieW91bWVpXCA7CivliqDlt6XosrsgPCBrYWtvdWhpXCA7Civmorbmo5IgPCBrYWppYm91XCA7CivmpbXlhqAgPCBreW9ra2FuXCA7CivmpbXlhoUgPCBnb2t1bmFpXCA7Civnl4Xlj4sgPCBieW91eXV1XCA7CivpqrDlrZAgPCBzYWlrb3JvXCA7CivlsqHlvJUgPCBva2FoaWtpXCA7CivlgrTlg4IgPCBzZW11c2hpXCA7CivmnLHpnpggPCBzaHV6YXlhXCA7CivkurrkuovoqrIgPCBqaW5qaWthXCA7Civlrp/nuL4gPCBqaXNzZWtpXCA7Civnl4Xljp8gPCBieW91Z2VuXCA7CivmpbXlhYkgPCBreW9ra291XCA7CivkuqjpgJogPCBrb3V0c3V1XCA7CivmnKzpoJggPCBob25yeW91XCA7Civkurrot6EgPCBoaXRvYXRvXCA7Civku5joqK0gPCBmdXNldHN1XCA7CivpppbntJogPCBzaHVreXV1XCA7CivkvpvniakgPCBrdW1vdHN1XCA7Civls7vljrMgPCBzaHVuZ2VuXCA7CivosaHpmZAgPCBzaG91Z2VuXCA7CivouqvkvZMgPCBzaGludGFpXCA7Civoh7PlppkgPCBzaGlteW91XCA7CivnlJjmoJcgPCBhbWFndXJpXCA7Civku5XoqLMgPCBzaGl3YWtlXCA7Civouo3li5UgPCB5YWt1ZG91XCA7Civku6PooaggPCBkYWloeW91XCA7Civph47oia/niqwgPCBub3JhaW51XCA7Civnl4Xli6IgPCBieW91c2VpXCA7CivlrrnnqY0gPCB5b3VzZWtpXCA7Civku4/oqp4gPCBidXRzdWdvXCA7CivohbDmpI4gPCB5b3V0c3VpXCA7Civouqvku6MgPCBzaGluZGFpXCA7Civml6XmnKzplpMgPCBuaWhvbm1hXCA7Civnjonpn7MgPCBneW9rdW9uXCA7CivlpKfosYbmsrkgPCBkYWl6dXl1XCA7Civlr5Pnm64gPCBndXVtb2t1XCA7CivmnaXpgLEgPCByYWlzaHV1XCA7CivoiLnlgbQgPCBzZW5zb2t1XCA7CivmnKzpnIcgPCBob25zaGluXCA7CivmnKjpnbQgPCBraWd1dHN1XCA7CivpppnnrrEgPCBrb3ViYWtvXCA7CivmnJ3poqggPCBhc2FrYXplXCA7CivlhZDnq6XnlLsgPCBqaWRvdWdhXCA7CivmvJToiJ7loLQgPCBlbmJ1am91XCA7CivlsqnlsbEgPCBpd2F5YW1hXCA7Civmpb3kurogPCBnYWt1amluXCA7CivosYbpoZ4gPCBtYW1lcnVpXCA7CivlrpjntaYgPCBrYW5reXV1XCA7CivnjonpnLIgPCBneW9rdXJvXCA7CivoiLnkvr8gPCBmdW5hYmluXCA7Civlgqzkv4MgPCBzYWlzb2t1XCA7CivnlJ/mlrAgPCBzZWlzaGluXCA7CivotoXnhLYgPCBjaG91emVuXCA7CivkvJ3nv5IgPCBkZW5zaHV1XCA7CivnlZnlubQgPCByeXV1bmVuXCA7CivotIXogokgPCB6ZWluaWt1XCA7Civpq5jlj7AgPCB0YWthZGFpXCA7CivlsqnlrqQgPCBpd2FtdXJvXCA7Civkv7XmlbAgPCBoeW91c3V1XCA7CivlraboirggPCBnYWt1Z2VpXCA7CivnlLfmiYsgPCBvdG9rb2RlXCA7CivkvLzpnZ7kuosgPCBlc2Vnb3RvXCA7CivmooXmr5IgPCBiYWlkb2t1XCA7CivkuI3ntZDmnpwgPCBmdWtla2thXCA7CivmnJ3pnYQgPCBhc2Ftb3lhXCA7CivlsYjmnI0gPCBrdXBwdWt1XCA7CivmnJ3pnKcgPCBhc2FnaXJpXCA7CivogozoibIgPCBoYWRhaXJvXCA7CivlraboiI4gPCBnYWt1c2hhXCA7CivmpbXkuIogPCBnb2t1am91XCA7Civnl4flgJkgPCBzaG91a291XCA7CivoiLnkuK0gPCBzZW5jaHV1XCA7CivogonoibIgPCBuaWt1aXJvXCA7Civkv67mlLkgPCBzaHV1a2FpXCA7Civlsrjlo4EgPCBnYW5wZWtpXCA7CivkurroqLwgPCBuaW5zaG91XCA7CivnlaXlrZcgPCByeWFrdWppXCA7Civkv67mkrAgPCBzaHV1c2VuXCA7CivlnLDkuIvljJYgPCBjaGlrYWthXCA7CivkvI/nvaogPCBmdWt1emFpXCA7Civlr4bnlLsgPCBtaXRzdWdhXCA7Civlhavnmb7plbcgPCB5YW9jaG91XCA7CivppKHonJwgPCBhbm1pdHN1XCA7CivogL3oqq0gPCB0YW5kb2t1XCA7CivogonohasgPCBuaWt1c2h1XCA7Civkv5fmm7ggPCB6b2t1c2hvXCA7CivogIHphpwgPCByb3VzaHV1XCA7CivpqZXmhaIgPCBreW91bWFuXCA7CivlgJTlvLcgPCBrdWtreW91XCA7Civnl4XkurogPCBieW91bmluXCA7CivlgY/ln7cgPCBoZW5zaHV1XCA7CivpgY7po73lkowgPCBrYWhvdXdhXCA7CivkubPphbggPCBueXV1c2FuXCA7Civkva/ni4IgPCB5b3VreW91XCA7Civmm7PppqwgPCBoaWtpdW1hXCA7Civlr77mtYEgPCB0YWlyeXV1XCA7CivpoZTpu5IgPCBnYW5ndXJvXCA7CivkvI/nuKsgPCBmdXNlbnVpXCA7Civmm7LppqwgPCBreW9rdWJhXCA7CivotaTnh5AgPCBzZWtpcmluXCA7CivlgpHkvZwgPCBrZXNzYWt1XCA7CivnkZ7npaUgPCB6dWlzaG91XCA7CivkvI/nt5ogPCBmdWt1c2VuXCA7CivlgoDlhKEgPCBrdWd1dHN1XCA7Civnj43oq4cgPCBjaGluZGFuXCA7Civkv5fmlocgPCB6b2t1YnVuXCA7CivlgJLluZUgPCB0b3ViYWt1XCA7CivlrrbnlZwgPCBrYWNoaWt1XCA7CivkuK3po68gPCBjaHV1aGFuXCA7CivnkIPoj4wgPCBreXV1a2luXCA7Civml6nlsJHlpbMgPCBzYW90b21lXCA7CivkuK3poqggPCBjaHV1YnV1XCA7Civpoqjpjq4gPCBmdXVjaGluXCA7CivlgJ/lsYsgPCBzaGFrdXlhXCA7Civls7bkuK0gPCB0b3VjaHV1XCA7Civlrp3nn7MgPCBob3VzZWtpXCA7Civog4bnn7MgPCB0YW5zZWtpXCA7CivlsbHluKsgPCB5YW1hc2hpXCA7CivmnKjph5EgPCBtb2t1a2luXCA7CivlpoLkvZXniakgPCBpa2Ftb25vXCA7CivlsZ7mgKcgPCB6b2t1c2VpXCA7CivmnaXoqLogPCByYWlzaGluXCA7CivniYjnlLvlrrYgPCBoYW5nYWthXCA7Civkvr/mnI0gPCBiZW5wdWt1XCA7CivkuqHopqogPCBib3VzaGluXCA7Civku5XojYkgPCBzaGlndXNhXCA7CivkuZ3ph40gPCBrb2tvbm9lXCA7Civkv4rmlY8gPCBzaHVuYmluXCA7CivouIrlrZcgPCBvZG9yaWppXCA7CivlsbHls6EgPCB5YW1ha2FpXCA7CivotaTmva4gPCBha2FzaGlvXCA7CivlrabntJogPCBnYWtreXV1XCA7CivnlaXlm7MgPCByeWFrdXp1XCA7CivkuKHpoK0gPCByeW91dG91XCA7CivlsJrmm7QgPCBuYW9zYXJhXCA7CivkuK3pmoogPCBjaHV1dGFpXCA7CivmnKjpgKAgPCBtb2t1em91XCA7CivkvJ3npaggPCBkZW5weW91XCA7CivmnJ3phZIgPCBhc2F6YWtlXCA7Civlr4LnhLYgPCBzZWtpemVuXCA7CivlsILmpa0gPCBzZW5neW91XCA7Civot6HlvaIgPCBhdG9rYXRhXCA7CivlgbbkvZwgPCBndXVzYWt1XCA7CivlsI/mn4QgPCBrb2R6dWthXCA7CivogbTnvaogPCBjaG91emFpXCA7CivkvZnnhrEgPCB5b25ldHN1XCA7CivkuKHpnaIgPCByeW91bWVuXCA7Civkv6HmhJsgPCBzaGluJydhaVwgOwor5L+X5omNIDwgem9rdXNhaVwgOwor5a2Y57aaIDwgc29uem9rdVwgOwor5pyb6YO3IDwgYm91a3lvdVwgOwor5a6d55SfIDwgaG91c2hvdVwgOwor576O6auqIDwgYmloYXRzdVwgOwor5Lit6ZaTIDwgY2h1dWthblwgOwor5LiA6auqIDwgaXBwYXRzdVwgOwor5Luy57aZIDwgY2h1dWtlaVwgOwor5a6J552AIDwgYW5jaGFrdVwgOwor5a2j56+AIDwga2lzZXRzdVwgOwor5oSb6aOy6ICFIDwgYWlpbnNoYVwgOwor5LqM6KaqIDwgZnV0YW95YVwgOwor6LGa6LazIDwgdG9uc29rdVwgOwor5L2Z54OIIDwgeW9yZXRzdVwgOwor5p2+6JGJIDwgbWF0c3ViYVwgOwor5a6J55u0IDwgYW5jaG9rdVwgOwor6aKo6YCfIDwgZnV1c29rdVwgOwor6aGO6autIDwgYWdvaGlnZVwgOwor57+86LObIDwgeW9rdXNhblwgOwor5bGe5bO2IDwgem9rdXRvdVwgOwor6IK655eFIDwgaGFpYnlvdVwgOwor5a6f55CGIDwgaml0c3VyaVwgOwor5a2m56ulIDwgZ2FrdWRvdVwgOwor5a6J5a6a5ZmoIDwgYW50ZWlraVwgOwor5qOL5a6iIDwga2lreWFrdVwgOwor5pyr6LevIDwgbWF0c3Vyb1wgOwor6aeE6I+T5a2QIDwgZGFnYXNoaVwgOwor5bCG5p2lIDwgc2hvdXJhaVwgOwor5LqG6KejIDwgcnlvdWthaVwgOwor55WR5ZywIDwgaGF0YWNoaVwgOwor55S35ai8IDwgZGFuc2hvdVwgOwor5a2k56uLIDwga29yaXRzdVwgOwor5ZSQ6IOh6bq7IDwgdG91Z29tYVwgOwor6IW55bivIDwgZnVrdXRhaVwgOwor5L+X5oOFIDwgem9rdWpvdVwgOwor5LqG6KaLIDwgcnlvdWtlblwgOwor5Li46Yu8IDwgbWFydWtvdVwgOwor5L+K5omNIDwgc2h1bnNhaVwgOwor5YGc6Z+z56ymIDwgdGVpb25wdVwgOwor5L+X5oKqIDwgem9rdWFrdVwgOwor6IG357WEIDwgc2hva3Vzb1wgOwor576k6ZuGIDwgZ3Vuc2h1dVwgOwor576k6ZuEIDwgZ3VuJyd5dXVcIDsKK+WxseWnpSA8IHlhbWF1YmFcIDsKK+S4iumhjiA8IGpvdWdha3VcIDsKK+WvneauvyA8IHNoaW5kZW5cIDsKK+WwkeaVsCA8IHNob3VzdXVcIDsKK+WckuiKuOWutiA8IGVuZ2Vpa2FcIDsKK+Wwj+aWjiA8IHNob3VzYWlcIDsKK+aKleW9seapnyA8IHRvdWVpa2lcIDsKK+iEguawlyA8IGFidXJha2VcIDsKK+WwveW/oCA8IGppbmNodXVcIDsKK+iLseWQieWIqSA8IGlnaXJpc3VcIDsKK+adoeiZqyA8IGpvdWNodXVcIDsKK+eVpeWPmSA8IHJ5YWt1am9cIDsKK+e+jumjnyA8IGJpc2hva3VcIDsKK+WxseWlpSA8IHlhbWFva3VcIDsKK+ePjeiUtSA8IGNoaW56b3VcIDsKK+eEoeWjsOmfsyA8IG11c2Vpb25cIDsKK+S/l+W/tSA8IHpva3VuZW5cIDsKK+agvOautSA8IGtha3VkYW5cIDsKK+S4gOmjnyA8IGlzc2hva3VcIDsKK+eNhOmWgCA8IGdva3Vtb25cIDsKK+WUkOiMhOWtkCA8IHRvdW5hc3VcIDsKK+aXpeacrOiqniA8IG5paG9uZ29cIDsKK+S5seiqvyA8IHJhbmNob3VcIDsKK+S6uuiHoyA8IGppbnNoaW5cIDsKK+S4gOmhniA8IGljaGlydWlcIDsKK+S5seiqrSA8IHJhbmRva3VcIDsKK+S6gOijgiA8IGtpcmV0c3VcIDsKK+iDuOawtCA8IGt5b3VzdWlcIDsKK+aeoOe3miA8IHdha3VzZW5cIDsKK+S8keecoCA8IGt5dXVtaW5cIDsKK+iHqOS8kSA8IHJpbmt5dXVcIDsKK+W+k+S4ieS9jSA8IGp1c2FubWlcIDsKK+WppuWls+WtkCA8IGZ1am9zaGlcIDsKK+S8j+ebriA8IGZ1c2hpbWVcIDsKK+S4h+mboyA8IGJhbicnbmFuXCA7CivlsY7lsL8gPCBzaGlueW91XCA7CivkuIrpmbggPCBqb3VyaWt1XCA7CivlsLrluqYgPCBzaGFrdWRvXCA7CivkuIfpmpwgPCBiYW5zaG91XCA7CivmnIDpgakgPCBzYWl0ZWtpXCA7CivlsLHlvbkgPCBzaHV1ZWtpXCA7CivkuIDpnaIgPCBpY2hpbWVuXCA7Civlr77mlbUgPCB0YWl0ZWtpXCA7Civlt6XkuovosrsgPCBrb3VqaWhpXCA7CivmuKnluqboqIggPCBvbmRva2VpXCA7Civku4/nuIEgPCBidXRzdWVuXCA7Civku5XntYQgPCBzaGlrdW1pXCA7CivmoZDmnZAgPCBraXJpemFpXCA7CivlsITmkoMgPCBzaGFnZWtpXCA7CivlronlrprljJYgPCBhbnRlaWthXCA7CivkuIDpm6ggPCBoaXRvYW1lXCA7Civmn7HnirYgPCBjaHV1am91XCA7CivkvZzms4EgPCBzYWtreW91XCA7CivkuIDpm6MgPCBpY2hpbmFuXCA7CivlsbHlnLAgPCB5YW1hY2hpXCA7Civms5Xonrrosp0gPCBob3JhZ2FpXCA7Civog7TmrLIgPCBkb3V5b2t1XCA7CivpoY3pnaIgPCBnYWt1bWVuXCA7Civnj43oirggPCBjaGluZ2VpXCA7Civmo67ljrMgPCBzaGluZ2VuXCA7CivnlLflm5ogPCBkYW5zaHV1XCA7Civmoq/lrZAgPCBoYXNoaWdvXCA7CivmnpXntbUgPCBtYWt1cmFlXCA7CivnlarlgpggPCBiYW5nYXNhXCA7CivpnZ7luLjmmYIgPCBoaWpvdWppXCA7CivkuIDpmaMgPCBpY2hpamluXCA7Civku4/ntYwgPCBidWtreW91XCA7CivpoKzpq60gPCBob29oaWdlXCA7CivmnKroqK0gPCBtaXNldHN1XCA7CivnlaXlhIAgPCByeWFrdWdpXCA7CivkuLvou7ggPCBzaHVqaWt1XCA7CivpoKzpqqggPCBob29ib25lXCA7CivkubHooYwgPCByYW5neW91XCA7CivogonnnLwgPCBuaWt1Z2FuXCA7CivkuK3pgZMgPCBjaHV1ZG91XCA7CivlrqLmvJQgPCBreWFrdWVuXCA7Civlroznhp8gPCBrYW5qdWt1XCA7CivkuIDploAgPCBpY2hpbW9uXCA7CivmmpfprLEgPCBhbicndXRzdVwgOwor5YWr5Y2D5LujIDwgeWFjaGl5b1wgOwor5qSN5LuYIDwgdWV0c3VrZVwgOwor55CG56qfIDwgcmlrdXRzdVwgOwor5a6f5ryUIDwgaml0c3VlblwgOwor5bC85a+6IDwgYW1hZGVyYVwgOwor5Lit6L6yIDwgY2h1dW5vdVwgOwor5p2R6JC9IDwgc29ucmFrdVwgOwor5pyr6KOUIDwgbWF0c3VlaVwgOwor5bC65a+4IDwgc2VraXN1blwgOwor5pyo6KO9IDwgbW9rdXNlaVwgOwor5L2X5q2MIDwgd2FiaXV0YVwgOwor5L+u5aOrIDwgc2h1dXNoaVwgOwor6aKo6KmVIDwgZnV1aHlvdVwgOwor55Wq5Lq6IDwgYmFuJyduaW5cIDsKK+Wus+avkiA8IGdhaWRva3VcIDsKK+acl+iqrSA8IHJvdWRva3VcIDsKK+Wun+a4rCA8IGppc3Nva3VcIDsKK+eUn+WeoyA8IGlrZWdha2lcIDsKK+WxnuWbvSA8IHpva2tva3VcIDsKK+S6lOiJsiA8IGdvc2hva3VcIDsKK+i1pOacrSA8IGFrYWZ1ZGFcIDsKK+S4jee0sOW3pSA8IGJ1c2Fpa3VcIDsKK+adv+e3oCA8IGl0YWppbWVcIDsKK+ePjeiBniA8IGNoaW5idW5cIDsKK+S9meawtOi3ryA8IHlvc3Vpcm9cIDsKK+eUuuWQjSA8IGNob3VtZWlcIDsKK+acneimiyA8IGNob3VrZW5cIDsKK+aarumbqiA8IGJvc2V0c3VcIDsKK+S9s+aciCA8IGthZ2V0c3VcIDsKK+iCieeVjCA8IG5pa3VrYWlcIDsKK+adpeiBtCA8IHJhaWNob3VcIDsKK+S7u+eUqCA8IG5pbicneW91XCA7Civog7jmnb8gPCBtdW5haXRhXCA7Civkv6HlpYkgPCBzaGlucG91XCA7Civmnb/ntJkgPCBpdGFnYW1pXCA7CivkuozoibIgPCBuaXNob2t1XCA7Civpp5DmlK8gPCBjaHV1c2hpXCA7Civmm7Lot68gPCBreW9rdXJvXCA7CivlsJHlvJ8gPCBzaG91dGVpXCA7Civnm7jpgZXngrkgPCBzb3VpdGVuXCA7CivkuKHovKogPCByeW91cmluXCA7CivmnKjonYsgPCBtb2t1cm91XCA7CivkuIDpjKAgPCBpY2hpam91XCA7Civlrp/ms4EgPCBqaWtreW91XCA7CivotaTml5cgPCBha2FoYXRhXCA7Civkv4LlsZ4gPCBrZWl6b2t1XCA7CivkuKHou40gPCByeW91Z3VuXCA7Civog47mr5IgPCB0YWlkb2t1XCA7CivnlZnku7sgPCByeXV1bmluXCA7CivmnL3okYkgPCBrdWNoaWJhXCA7Civmm7zojbznvoUgPCBtYW5kYXJhXCA7CivlsbHli5ggPCB5YW1ha2FuXCA7CivlsJHlubQgPCBzaG91bmVuXCA7Civku4rnqIsgPCBpbWFob2RvXCA7Civpp5LmkI0gPCBrb21hc29uXCA7CivnvarpmpwgPCB6YWlzaG91XCA7CivlsI/lupcgPCBzaG91dGVuXCA7CivlnLDpm7fngasgPCBqaXJhaWthXCA7Civlhazli5nlk6EgPCBrb3VtdWluXCA7Civlrr/moLkgPCBzaHVra29uXCA7CivmnIjoqZUgPCBnZXBweW91XCA7CivmoYjlsbHlrZAgPCBrYWthc2hpXCA7CivkuIvpg6ggPCBzaGltb2JlXCA7CivmnZ/nvqQgPCBzb2t1Z3VuXCA7Civlrp/mr40gPCBqaXRzdWJvXCA7CivkuI3pgZQgPCBmdXRhdHN1XCA7Civlj6Tku6Poqp4gPCBrb2RhaWdvXCA7CivnlJ/kuIDmnKwgPCBraWlwcG9uXCA7CivkuIvpgZQgPCBrYXRhdHN1XCA7Civpo5vohJogPCBoaWt5YWt1XCA7CivnlLrlhoUgPCBjaG91bmFpXCA7CivmnIjoposgPCB0c3VraW1pXCA7Civkv5flobUgPCB6b2t1amluXCA7CivlgIvliKUgPCBrb2JldHN1XCA7CivlsZ7lkI0gPCB6b2t1bWVpXCA7Civku5jnnYAgPCBmdWNoYWt1XCA7CivkuIrpgLIgPCBqb3VzaGluXCA7CivnjJ/pioMgPCByeW91anV1XCA7CivkuqTntaEgPCBrb3VyYWt1XCA7CivkvZXmn5AgPCBuYW5pYm91XCA7CivouqvotJTlsZMgPCBtaWJpaWtpXCA7Civku5XnnYAgPCBzaGlraXNlXCA7CivmnKjolKYgPCBraWR6dXRhXCA7CivogonniYcgPCBuaWt1aGVuXCA7CivnlLflhKogPCBkYW4nJ3l1dVwgOwor5pyo6JOuIDwgbW9rdXJlblwgOwor5pyq5pW055CGIDwgbWlzZWlyaVwgOwor5LqI56eR55SfIDwgeW9rYXNlaVwgOwor5puy6K2cIDwga3lva3VmdVwgOwor6IKl5rqcIDwga29lZGFtZVwgOwor6LOe546pIDwgc2hvdWdhblwgOwor5YCf5Lq6IDwga2FyaW5pblwgOwor5L+K5aOrIDwgc2h1bnNoaVwgOwor5pu46KmVIDwgc2hvaHlvdVwgOwor5a+G5pWZIDwgbWlra3lvdVwgOwor5LiA6YGTIDwgaWNoaWRvdVwgOwor5LiA6YGHIDwgaWNoaWd1dVwgOwor5pu46Ki8IDwgc2hvc2hvdVwgOwor6LKr56aEIDwga2Fucm9rdVwgOwor5pyq57WM6YGOIDwgbWlrZWlrYVwgOwor6LaK5bm0IDwgZXRzdW5lblwgOwor5LiA6YCjIDwgaWNoaXJlblwgOwor5LiJ6Lu4IDwgc2FuamlrdVwgOwor6ICB6IejIDwgcm91c2hpblwgOwor5p2h57SEIDwgam91eWFrdVwgOwor6LGG6JS1IDwgbWFtZXpvdVwgOwor5L2Z5pelIDwgeW9qaXRzdVwgOwor55CD55WMIDwga3l1dWthaVwgOwor5L2c5paHIDwgc2FrdWJ1blwgOwor5rW35p2+6LKdIDwgbWlydWdhaVwgOwor5L2O5pyoIDwgdGVpYm9rdVwgOwor6aas5pa5IDwgdW1ha2F0YVwgOwor5Lmx6IejIDwgcmFuc2hpblwgOwor5L2V5pmCIDwgbmFuZG9raVwgOwor6LWk5omLIDwgc2VraXNodVwgOwor5YCS5LyPIDwgdG91ZnVrdVwgOwor5puy6KejIDwga3lva2thaVwgOwor5LiA6LyqIDwgaWNoaXJpblwgOwor5bCK5a65IDwgc29uJyd5b3VcIDsKK+S4iui2syA8IGpvdXNva3VcIDsKK+S4oeirliA8IHJ5b3Vyb25cIDsKK+S4gOi7jSA8IGljaGlndW5cIDsKK+eUuuS6uiA8IGNob3VuaW5cIDsKK+S4iui2iiA8IGpvdWV0c3VcIDsKK+WxgOWToSA8IGt5b2t1aW5cIDsKK+WwguWxniA8IHNlbnpva3VcIDsKK+S9leaVhSA8IG5hbml5dWVcIDsKK+S7i+eXhSA8IGthaWJ5b3VcIDsKK+S7j+eUuyA8IGJ1dHN1Z2FcIDsKK+iEseWtlyA8IGRhdHN1amlcIDsKK+eMm+i/vSA8IG1vdXRzdWlcIDsKK+i0heayoiA8IHplaXRha3VcIDsKK+S/oeWPtyA8IHNoaW5nb3VcIDsKK+eUsOS9nCA8IGRlbnNha3VcIDsKK+WFteWFkOW4ryA8IGhla29vYmlcIDsKK+WxseS4rSA8IHNhbmNodXVcIDsKK+acrOiFuSA8IGhvbnB1a3VcIDsKK+S6lOevgCA8IGdvc2V0c3VcIDsKK+S4u+iZuSA8IHNodW5pamlcIDsKK+S4puijvSA8IG5hbWlzZWlcIDsKK+eUmuWFrSA8IGppbnJva3VcIDsKK+i1pOaBpSA8IGFrYWhhamlcIDsKK+i6q+Wlh+m6lyA8IG1pZ2lyZWlcIDsKK+acseiCiSA8IHNodW5pa3VcIDsKK+S9meaOpSA8IHlvc2V0c3VcIDsKK+aknOafu+WToSA8IGtlbnNhaW5cIDsKK+eUsuS5mSA8IGtvdW90c3VcIDsKK+S6leetkiA8IGlkenV0c3VcIDsKK+acrOiDvSA8IGhvbicnbm91XCA7CivnkaPmnKsgPCBzYW1hdHN1XCA7CivkurrnmocgPCBuaW4nJ25vdVwgOwor5Lq655qEIDwgamludGVraVwgOwor6ISG5byxIDwgemVpamFrdVwgOwor6aWR5riHIDwga2lrYXRzdVwgOwor5Li76JasIDwgc2h1eWFrdVwgOwor5Y2x5qmf5oSfIDwga2lraWthblwgOwor6LWk6IyE5a2QIDwgYWthbmFzdVwgOwor5a6Y5pyJIDwga2FuJyd5dXVcIDsKK+S7lueJqSA8IHRhYnV0c3VcIDsKK+e+veiZqyA8IGhhbXVzaGlcIDsKK+eUo+S8kSA8IHNhbmt5dXVcIDsKK+S9nOaIpiA8IHNha3VzZW5cIDsKK+S8r+aelyA8IGJlcnVyaW5cIDsKK+iDjOaVmSA8IGhhaWt5b3VcIDsKK+ixiuiDuCA8IGhvdWt5b3VcIDsKK+afs+adoSA8IHJ5dXVqb3VcIDsKK+err+atpuiAhSA8IGhhbXVzaGFcIDsKK+eUn+S5syA8IHNlaW55dXVcIDsKK+WNsOW6puS6uiA8IGluZG9qaW5cIDsKK+WGheWuieaJkyA8IG5haWFuZGFcIDsKK+iCieaxoCA8IG5pa3VjaGlcIDsKK+S4ieinkiA8IHNhbmtha3VcIDsKK+S4i+imiyA8IHNoaXRhbWlcIDsKK+S8j+aoiyA8IGZ1c2Vkb2lcIDsKK+iCieaxgSA8IG5pa3VqdXVcIDsKK+Wxi+agueadvyA8IHlhbmVpdGFcIDsKK+eEoeacn+WIkSA8IG11a2lrZWlcIDsKK+eOhOe/gSA8IGdlbicnbm91XCA7CivoqJjlv7XnopEgPCBraW5lbmhpXCA7CivkuIDoqqwgPCBpc3NldHN1XCA7Civpp5Dlsa8gPCBjaHV1dG9uXCA7CivlsLHlirQgPCBzaHV1cm91XCA7CivosrfniakgPCBrYWltb25vXCA7Civpg73luILljJYgPCB0b3NoaWthXCA7CivlsYXlgJkgPCBpc291cm91XCA7CivmnI3ohrogPCBmdWt1eW91XCA7Civmnq/muIcgPCBrb2thdHN1XCA7Civpoqjnv5IgPCBmdXVzaHV1XCA7CivkuZfnvoMgPCBqb3ViZWtpXCA7CivlsYjkvLggPCBrdXNzaGluXCA7Civkv5flg6cgPCB6b2t1c291XCA7Civlupznn6XkuosgPCBmdWNoaWppXCA7CivlhoXogLPngo4gPCBuYWlqaWVuXCA7CivmnKzntaYgPCBob25reXV1XCA7CivkuK3okYkgPCBjaHV1eW91XCA7Civnvarot6EgPCB6YWlzZWtpXCA7Civpo5vnpKsgPCB0c3VidXRlXCA7CivmnaHnm64gPCBqb3Vtb2t1XCA7CivkuIDopqcgPCBpY2hpcmFuXCA7Civlr4bluqYgPCBtaXRzdWRvXCA7CivkuIrooaggPCBqb3VoeW91XCA7CivljJfkuqzoqp4gPCBwZWtpbmdvXCA7CivkuIvooYAgPCBnZWtldHN1XCA7CivotrPlirQgPCBzb2t1cm91XCA7CivlsI/lloQgPCBzaG91emVuXCA7Civku67msbogPCBrYWtldHN1XCA7CivkupXnm64gPCBzZWltb2t1XCA7CivlsJrlj4ggPCBuYW9tYXRhXCA7CivniqzlsI/lsYsgPCBpbnVnb3lhXCA7Civmmpfouo0gPCBhbicneWFrdVwgOwor5b285bK45LyaIDwgaGlnYW4nJ2VcIDsKK+iyqOeJqSA8IGthbW90c3VcIDsKK+Wun+aKgCA8IGppdHN1Z2lcIDsKK+acrOexpCA8IGhvbmt1amlcIDsKK+iEseWWtiA8IGRhdHN1ZWlcIDsKK+S9k+W+lyA8IHRhaXRva3VcIDsKK+acrOexjSA8IGhvbnNla2lcIDsKK+Wwj+WTgSA8IHNob3VoaW5cIDsKK+acieiBtyA8IHl1dXNva3VcIDsKK+S9s+WuoiA8IGtha3lha3VcIDsKK+e+juihkyA8IGJpanV0c3VcIDsKK+i1pOWtkCA8IHNla2lzaGlcIDsKK+Wus+W/gyA8IGdhaXNoaW5cIDsKK+aYvOmkkCA8IGNodXVzYW5cIDsKK+S6jOedgCA8IG5pY2hha3VcIDsKK+ebuOW8n+WtkCA8IGFpZGVzaGlcIDsKK+S/l+S8nSA8IHpva3VkZW5cIDsKK+aguOWtkCA8IGtha3VzaGlcIDsKK+acrOeusSA8IGhvbmJha29cIDsKK+S6jOebtCA8IG5pY2hva3VcIDsKK+mmrOW4giA8IHVtYWljaGlcIDsKK+S9leW5tCA8IG5hbicnbmVuXCA7CivlsI/lj6MgPCBrb2d1Y2hpXCA7Civmnb7nhaQgPCBzaG91YmFpXCA7CivmnKznrYsgPCBob25zdWppXCA7CivmnbHni6wgPCB0b3Vkb2t1XCA7CivnjaPogokgPCBqdXVuaWt1XCA7Civkuoznmb4gPCBuaWh5YWt1XCA7Civmm7LoiJ4gPCBrdXNlbWFpXCA7Civnj43njaMgPCBjaGluanV1XCA7CivmnKznq6AgPCBob25zaG91XCA7CivkuLvnv7wgPCBzaHV5b2t1XCA7CivnvqTokL0gPCBndW5yYWt1XCA7Civpo7TnjokgPCBhbWVkYW1hXCA7CivogITnoowgPCBtb3Vyb2t1XCA7Civlrq7lu7cgPCBreXV1dGVpXCA7CivlsLHku7sgPCBzaHV1bmluXCA7CivlppnpvaIgPCBteW91cmVpXCA7CivmmYLpm6ggPCBzaGlndXJlXCA7CivmnKjnq4sgPCBrb2RhY2hpXCA7Civnjovnq4sgPCBvdXJpdHN1XCA7CivlsI/li4cgPCBzaG91eXV1XCA7CivogbfmqKkgPCBzaG9ra2VuXCA7Civlr4Tlrr8gPCBraXNodWt1XCA7Civps7Plh7DluqcgPCBob3VvdXphXCA7Civog4zlvrMgPCBoYWl0b2t1XCA7CivmoLzlpJYgPCBrYWt1Z2FpXCA7Civlkr3poK3ngo4gPCBpbnRvdWVuXCA7CivkuIrolJ8gPCBqb3V6b2t1XCA7CivkuK3og4wgPCBjaHV1emVpXCA7CivotaTlpJYgPCBzZWtpZ2FpXCA7CivkuKHoiLcgPCByeW91Z2VuXCA7CivlraPmnKsgPCBraW1hdHN1XCA7Civmnb7mv6QgPCBzaG91dG91XCA7Civmn4TmnZMgPCBoaXNoYWt1XCA7Civni6zotbAgPCBkb2t1c291XCA7CivmipXlvbHlm7MgPCB0b3VlaXp1XCA7CivnjonnqL8gPCBneW9ra291XCA7Civkvr/kvqsgPCBiZW4nJ25laVwgOwor5LiN6KGb55SfIDwgZnVlaXNlaVwgOwor5LuW5q66IDwgdGFzYXRzdVwgOwor5LiL6JGJIDwgc2hpdGFiYVwgOwor6Laz5LujIDwgYXNoaWRhaVwgOwor5Lit6ICBIDwgY2h1dXJvdVwgOwor5pyI57WmIDwgZ2Vra3l1dVwgOwor6aeQ5ZyoIDwgY2h1dXphaVwgOwor5Lih6IWVIDwgcnlvdXVkZVwgOwor542E6IiOIDwgZ29rdXNoYVwgOwor5bCO5YWlIDwgZG91bnl1dVwgOwor5pW055CG6YOoIDwgc2VpcmlidVwgOwor5YWl5q+N5bGLIDwgaXJpbW95YVwgOwor5LmZ56iuIDwgb3RzdXNodVwgOwor54md6baPIDwgbWVuZG9yaVwgOwor5aSa6Laj5ZGzIDwgdGFzaHVtaVwgOwor5a2f5pilIDwgbW91c2h1blwgOwor5L6b5YuiIDwgdG9tb3plaVwgOwor5a+p5ZWPIDwgc2hpbm1vblwgOwor5LuL5q67IDwga2Fpa2FrdVwgOwor5LiA6JGJIDwgaWNoaXlvdVwgOwor5pyA57WCIDwgc2Fpc2h1dVwgOwor5Lmz55mMIDwgbnl1dWdhblwgOwor6IC95rq6IDwgdGFuZGVraVwgOwor5L2P5a6FIDwganV1dGFrdVwgOwor6LaF5YukIDwgY2hvdWtpblwgOwor6ICB55eFIDwgcm91YnlvdVwgOwor6LOT5qC8IDwgaGlua2FrdVwgOwor5pyd56S8IDwgY2hvdXJlaVwgOwor6Z+z6KiY5Y+3IDwgb25raWdvdVwgOwor5bCP5L6/IDwgc2hvbmJlblwgOwor5bCB5YWlIDwgZnV1bnl1dVwgOwor5pil6Zu3IDwgc2h1bnJhaVwgOwor5bCP5Z2K5Li7IDwga29ib3V6dVwgOwor5Lit57eoIDwgY2h1dWhlblwgOwor5pyq552AIDwgbWljaGFrdVwgOwor5pu457WMIDwgc2hva3lvdVwgOwor5a+45Yi7IDwgc3Vua29rdVwgOwor5LqL54mpIDwgamlidXRzdVwgOwor5LuV5qWtIDwgc2hpd2F6YVwgOwor5pel5pys55S7IDwgbmlob25nYVwgOwor54++5qWtIDwgZ2VuZ3lvdVwgOwor5puz57ayIDwgaGlraWFtaVwgOwor5bCK5L+hIDwgc29uc2hpblwgOwor6LaF5YehIDwgY2hvdWJvblwgOwor5Luy5patIDwgY2h1dWRhblwgOwor5bCP5LydIDwgc2hvdWRlblwgOwor6Z6m6Z+GIDwgYnVyYW5rb1wgOwor57SA5YWD5b6MIDwga2lnZW5nb1wgOwor5Lmx55SoIDwgcmFuJyd5b3VcIDsKK+S4g+iJsiA8IG5hbmFpcm9cIDsKK+S4iuiGiiA8IGpvdWhha3VcIDsKK+S9leWltCA8IGRveWF0c3VcIDsKK+S9k+a4qeWZqCA8IHRhaW9ua2lcIDsKK+S4gOiKuCA8IGljaGlnZWlcIDsKK+eKrOmHmCA8IGludWt1Z2lcIDsKK+acqueZuiA8IG1paGF0c3VcIDsKK+Wwj+S6uiA8IHNob3VuaW5cIDsKK+S9l+WjsCA8IHdhYmlnb2VcIDsKK+S4gOiJsiA8IGhpdG9pcm9cIDsKK+S4u+etiyA8IHNodXN1amlcIDsKK+S4reezuCA8IGNodXVpdG9cIDsKK+izh+agvCA8IHNoaWtha3VcIDsKK+abuOexjSA8IHNob3Nla2lcIDsKK+Wuv+WgtCA8IHNodWt1YmFcIDsKK+aYpemXmCA8IHNodW50b3VcIDsKK+aatOiQvSA8IGJvdXJha3VcIDsKK+S6rOa0myA8IGtlaXJha3VcIDsKK+S4h+iDvSA8IG1hbicnbm91XCA7CivkuInogrIgPCBzYW4nJ2lrdVwgOwor5LiJ6IKhIDwgc2FubWF0YVwgOwor5LiA6IazIDwgaWNoaXplblwgOwor54m56Zu7IDwgdG9rdWRlblwgOwor6aCG6Kq/IDwganVuY2hvdVwgOwor5769566SIDwgaGFib3VraVwgOwor6ISa5YWJIDwga3lha2tvdVwgOwor54us6KOBIDwgZG9rdXNhaVwgOwor576K6IacIDwgeW91bWFrdVwgOwor5pyr55SfIDwgc3VlbmFyaVwgOwor5p+75a+fIDwgc2FzYXRzdVwgOwor5LiK57+8IDwgam91eW9rdVwgOwor5LyR5oCgIDwga3l1dXRhaVwgOwor5Lmx542yIDwgcmFua2FrdVwgOwor576p57W2IDwgZ2l6ZXRzdVwgOwor5piH6aCGIDwgc2hvdWp1blwgOwor54++5pyJIDwgZ2VuJyd5dXVcIDsKK+iyneauvCA8IGthaWdhcmFcIDsKK+eJqemfsyA8IG1vbm9vdG9cIDsKK+W+rua4qea5ryA8IGJpb250b3VcIDsKK+S4u+elniA8IHNodXNoaW5cIDsKK+eOieeSvSA8IGd5b2t1amlcIDsKK+S8muW4rSA8IGthaXNla2lcIDsKK+eLvOiXiSA8IHJvdXpla2lcIDsKK+e+iuiCiSA8IHlvdW5pa3VcIDsKK+mgkOihgCA8IHlva2V0c3VcIDsKK+iytOWppuS6uiA8IGtpZnVqaW5cIDsKK+miqOeWuSA8IGZ1dXNoaW5cIDsKK+eOieeRmyA8IGd5b2t1ZWlcIDsKK+Wuv+WWtiA8IHNodWt1ZWlcIDsKK+S7luaXpSA8IHRhaml0c3VcIDsKK+iAgeeGnyA8IHJvdWp1a3VcIDsKK+izh+aWmSA8IHNoaXJ5b3VcIDsKK+mnkOWFtSA8IGNodXVoZWlcIDsKK+WPs+Wkp+iHoyA8IHVkYWlqaW5cIDsKK+S9juWcpyA8IHRlaWF0c3VcIDsKK+advualkyA8IHNob3VmdXVcIDsKK+S7iuacnSA8IGtvbmNob3VcIDsKK+S4ueeipyA8IHRhbnBla2lcIDsKK+aaruiJsiA8IGJvc2hva3VcIDsKK+S7leaWuSA8IHNoaWthdGFcIDsKK+W4sOWMluS6uiA8IGtpa2FqaW5cIDsKK+S7iuabtCA8IGltYXNhcmFcIDsKK+WvhuWRiiA8IG1pa2tva3VcIDsKK+eKr+i3oSA8IGhhbnNla2lcIDsKK+iytOacrSA8IGtpc2F0c3VcIDsKK+mjhOeEtiA8IGh5b3V6ZW5cIDsKK+S7iuaagSA8IGtvbmd5b3VcIDsKK+aXqemmrCA8IGhheWF1bWFcIDsKK+S9nOWTgSA8IHNha3VoaW5cIDsKK+iyoOaltSA8IGZ1a3lva3VcIDsKK+aIpuW+jOa0viA8IHNlbmdvaGFcIDsKK+S6uuagvCA8IGppbmtha3VcIDsKK+acrOeJqSA8IGhvbm1vbm9cIDsKK+S7iuaZgiA8IGltYWRva2lcIDsKK+adpeattCA8IHJhaXJla2lcIDsKK+mfs+iosyA8IG9uJyd5YWt1XCA7Civku4rmmKUgPCBrb25zaHVuXCA7Civosq/mnKggPCBjaG9ib2t1XCA7CivosrfmmKUgPCBiYWlzaHVuXCA7Civlr4zlipsgPCBmdXJ5b2t1XCA7CivkuIrntJogPCBqb3VreXV1XCA7CivkuIrntJkgPCB1d2FnYW1pXCA7CivogZrmlaMgPCBzaHV1c2FuXCA7CivkuIrntJAgPCB1d2FoaW1vXCA7Civku4rmlrkgPCBpbWFnYXRhXCA7CivmnKjniYggPCBtb2t1aGFuXCA7CivmnKjniYcgPCBtb2t1aGVuXCA7Civog4zlnKcgPCBoYWlhdHN1XCA7CivogonlvL4gPCBuaWt1ZGFuXCA7CivnjYTnqpMgPCBnb2t1c291XCA7CivlrablubQgPCBnYWt1bmVuXCA7CivlrqLlnJ8gPCBreWFrdWRvXCA7CivorbTosqwgPCBrZW5zZWtpXCA7CivkvY7llLEgPCB0ZWlzaG91XCA7Civml6fpoqggPCBreXV1ZnV1XCA7CivlrZjlv7UgPCB6b24nJ25lblwgOwor546H54i+IDwgc290c3VqaVwgOwor5a2m5bi9IDwgZ2FrdWJvdVwgOwor5pys54S2IDwgaG9uJyduZW5cIDsKK+eLguiogCA8IGt5b3VnZW5cIDsKK+S7leaOmyA8IHNoaWtha2VcIDsKK+agquWIuCA8IGthYnVrZW5cIDsKK+mjm+ayqyA8IGhpbWF0c3VcIDsKK+miqOeLgiA8IGZ1dWt5b3VcIDsKK+WtkOaBryA8IHNoaXNva3VcIDsKK+mmrOWMuSA8IGJhaGl0c3VcIDsKK+abuOebriA8IHNob21va3VcIDsKK+S4iueusSA8IHV3YWJha29cIDsKK+iDuOWDjyA8IGt5b3V6b3VcIDsKK+iDtOWFgyA8IGRvdW1vdG9cIDsKK+aal+iJsiA8IGFuc2hva3VcIDsKK+WujOWjgSA8IGthbmJla2lcIDsKK+iDhuWaoiA8IHRhbicnbm91XCA7CivosYrnhp8gPCBob3VqdWt1XCA7CivkuIrnrZYgPCBqb3VzYWt1XCA7CivpoY7ntJAgPCBhZ29oaW1vXCA7CivmnKjngq0gPCBtb2t1dGFuXCA7CivkvZnlipsgPCB5b3J5b2t1XCA7Civlj5flg4/mqZ8gPCBqdXpvdWtpXCA7CivkuK3nm6QgPCBjaHV1YmFuXCA7CivoqJjlv7XmqLkgPCBraW5lbmp1XCA7CivogLPmoJMgPCBtaW1pc2VuXCA7CivkvZnlibIgPCB5b2thdHN1XCA7CivkuIfnrZYgPCBiYW5zYWt1XCA7Civku6Tmga8gPCByZWlzb2t1XCA7Civnsonlvq7lobUgPCBrb21pamluXCA7CivniYfpnaIgPCBrYXRhbWVuXCA7CivngrrmlL/ogIUgPCBpc2Vpc2hhXCA7CivnibnphY0gPCB0b2t1aGFpXCA7CivkubPmuIUgPCBueXV1c2VpXCA7Civml6XpnLIgPCBuaWNoaXJvXCA7CivlpKfniqzluqcgPCBvb2ludXphXCA7Civml6XmmYLoqIggPCBoaWRva2VpXCA7CivkubPmtrIgPCBueXV1ZWtpXCA7CivnjK7nq4sgPCBrb25kYXRlXCA7CivkuKHnnLwgPCByeW91Z2FuXCA7CivkvZXlh6YgPCBkb2tvaXJhXCA7CivosYbngq0gPCBtYW1ldGFuXCA7Civlrp/lk6EgPCBqaXRzdWluXCA7Civnj43mnKwgPCBjaGlucG9uXCA7Civku6PlvbkgPCBkYWl5YWt1XCA7CivkubHmtYEgPCByYW5yeXV1XCA7CivkuIDnq68gPCBpcHBhc2hpXCA7Civnj43mm7ggPCBjaGluc2hvXCA7CivkvZXlhbEgPCBuYW50b21vXCA7Civlr5LkuK0gPCBrYW5jaHV1XCA7CivmmYLkuovoq5YgPCBqaWppcm9uXCA7CivkuK3nk7YgPCBjaHV1YmluXCA7CivkuIfnpo8gPCBtYW5wdWt1XCA7Civogbflt6UgPCBzaG9ra291XCA7CivlroXlnLAgPCB0YWt1Y2hpXCA7CivkubPmsYEgPCBueXV1anV1XCA7CivmoKHlgIkgPCBhemVrdXJhXCA7Civnv5XnhLYgPCBreXV1emVuXCA7Civkv53ppIrpmaIgPCBob3lvdWluXCA7CivmlrDprq4gPCBzaGluc2VuXCA7CivosYrmvIEgPCBob3VyeW91XCA7CivoravoqIAgPCB1d2Fnb3RvXCA7CivmnJ3mva4gPCBhc2FzaGlvXCA7Civoh6rnhLbolq8gPCBqaW5lbmpvXCA7Civkv53lgaXmiYAgPCBob2tlbmpvXCA7Civpoqjmva4gPCBmdXVjaG91XCA7Civog7TkuK0gPCBkb3VuYWthXCA7CivpoJrogokgPCBrZWluaWt1XCA7CivkvZzkvosgPCBzYWt1cmVpXCA7Civpm6LlvIHoirEgPCByaWJlbmthXCA7CivmnKzmtYEgPCBob25yeXV1XCA7Civlr4bkuosgPCBtaXRzdWppXCA7Civku7DlsbEgPCBneW91c2FuXCA7Civku4/mgakgPCBidXRzdW9uXCA7CivmrKHkuJbku6MgPCBqaXNlZGFpXCA7Civku5blvosgPCB0YXJpdHN1XCA7CivmnaXmmKUgPCByYWloYXJ1XCA7CivkuI3lmajnlKggPCBidWtpeW91XCA7Civnj77lvbkgPCBnZW4nJ2VraVwgOwor5LiA56S8IDwgaWNoaXJlaVwgOwor6aCG6ImvIDwganVucnlvdVwgOwor5LiK55+zIDwgdXdhaXNoaVwgOwor5a6f5YuZIDwgaml0c3VtdVwgOwor5a2Q5bGAIDwga29reW9rdVwgOwor5omL5aWH6bqXIDwgdGVnaXJlaVwgOwor5LiL552AIDwgc2hpdGFnaVwgOwor5pyq5rG6IDwgbWlrZXRzdVwgOwor5aSn6buSIDwgZGFpa29rdVwgOwor5aGp5Z+65oCnIDwgZW5raXNlaVwgOwor5LuV5bqmIDwgc2hpdGFrdVwgOwor5a2m5aSWIDwgZ2FrdWdhaVwgOwor6aCs57SFIDwgaG9vYmVuaVwgOwor6Z2i6ZW3IDwgb21vbmFnYVwgOwor6K2Y6KqeIDwgc2hpa2lnb1wgOwor5L2O5L+XIDwgdGVpem9rdVwgOwor5LiL55uuIDwgc2hpdGFtZVwgOwor5p2P5p6XIDwga3lvdXJpblwgOwor5a2R5a2RIDwgYm91ZnVyaVwgOwor5pqX57eRIDwgYW5yeW9rdVwgOwor6aas5Li7IDwgYmFudXNoaVwgOwor54m56LWmIDwgdG9rdXNoYVwgOwor5LiN55m6IDwgZnVoYXRzdVwgOwor5L2V5Lq6IDwgbmFucGl0b1wgOwor6KiY5b+15pelIDwga2luZW5iaVwgOwor6auY56WW54i2IDwga291c29mdVwgOwor5LuK5pel5LitIDwga3lvdWp1dVwgOwor6IG35a6JIDwgc2hva3VhblwgOwor5pmv6ImyIDwga2VzaGlraVwgOwor5p2R5pyJIDwgc29uJyd5dXVcIDsKK+adkOacqCA8IHphaW1va3VcIDsKK+acp+awlyA8IG9ib3JvZ2VcIDsKK+S4h+ebriA8IGJhbm1va3VcIDsKK+mcsumqqCA8IHJva290c3VcIDsKK+S7j+W6pyA8IGJ1dHN1emFcIDsKK+mjm+acrSA8IGhpc2F0c3VcIDsKK+Wkp+m3uiA8IGRhaXNhZ2lcIDsKK+irlumngSA8IHJvbmJha3VcIDsKK+miqOa1gSA8IGZ1dXJ5dXVcIDsKK+WtpuWgsSA8IGdha3Vob3VcIDsKK+iCieWjsCA8IG5pa3VzZWlcIDsKK+S7o+WwhiA8IGRhaXNob3VcIDsKK+ixiuaygyA8IGhvdXlva3VcIDsKK+iQjum7hOeXhSA8IGlvdWJ5b3VcIDsKK+iBluW7nyA8IHNlaWJ5b3VcIDsKK+WutuS4uyA8IHlhbnVzaGlcIDsKK+S4gOedgCA8IGl0Y2hha3VcIDsKK+S4gOecvCA8IGljaGlnYW5cIDsKK+S4gOecuCA8IGljaGlib3VcIDsKK+itmOimiyA8IHNoaWtrZW5cIDsKK+afkOWbvSA8IGJvdWtva3VcIDsKK+adieadkCA8IHN1Z2l6YWlcIDsKK+S4gOecoCA8IGljaGltaW5cIDsKK+S7geW+syA8IGppbnRva3VcIDsKK+Wum+WFiCA8IGF0ZXNha2lcIDsKK+aTrOWPpOaWhyA8IGdpa29idW5cIDsKK+aWsOmiqCA8IHNoaW5wdXVcIDsKK+S4gOebtCA8IGl0Y2hva3VcIDsKK+S7iuW5tCA8IGtvbicnbmVuXCA7Civog5rkubMgPCBoYWlueXV1XCA7Civkuozml6UgPCBmdXRzdWthXCA7Civmlq3po58gPCBkYW5qaWtpXCA7CivkubPmo5IgPCBueXV1Ym91XCA7CivkuIvnlaUgPCBnZXJ5YWt1XCA7CivnkZ7lhYYgPCB6dWljaG91XCA7CivmlrDpoZQgPCBzaGluZ2FvXCA7CivkuIfnl4UgPCBtYW5ieW91XCA7Civpn7vohJogPCBpbmt5YWt1XCA7CivlnLDooaPpoZ4gPCBjaGlpcnVpXCA7Civnv7zmo58gPCB5b2t1dG91XCA7CivkuInnlLcgPCBzYW4nJ25hblwgOwor5p2Q5paZIDwgemFpcnlvdVwgOwor5amG576F6ZaAIDwgYmFyYW1vblwgOwor5a6Y5YOaIDwga2FucnlvdVwgOwor5paH6bOlIDwgYnVuY2hvdVwgOwor5Lq65b6zIDwgbmludG9rdVwgOwor5Luw5aSpIDwgZ3lvdXRlblwgOwor6LOK5a6zIDwgem9rdWdhaVwgOwor6aGM55uuIDwgZGFpbW9rdVwgOwor5Lq65b2iIDwgbmluZ3lvdVwgOwor54mb6LuKIDwgZ3l1dXNoYVwgOwor6LOK5a2QIDwgem9rdXNoaVwgOwor56eY5pu46KqyIDwgaGlzaG9rYVwgOwor5pys5qWtIDwgaG9uZ3lvdVwgOwor5Y2w55S757SZIDwgaW5nYXNoaVwgOwor6LKn5byxIDwgaGluamFrdVwgOwor54iG6aKoIDwgYmFrdWZ1dVwgOwor6ICB5py9IDwgcm91a3l1dVwgOwor5pep6YCfIDwgc2Fzc29rdVwgOwor5pen6YGTIDwga3l1dWRvdVwgOwor6ICB5pyoIDwgcm91Ym9rdVwgOwor54m56KqNIDwgdG9rdW5pblwgOwor5pys5qOaIDwgaG9uZGFuYVwgOwor5aaZ6LajIDwgbXlvdXNodVwgOwor54mp6LGhIDwgYnVzc2hvdVwgOwor5LuP5a+6IDwgYnV0c3VqaVwgOwor5LqI5oOz5bGLIDwgeW9zb3V5YVwgOwor5oWI5ZaE5a62IDwgaml6ZW5rYVwgOwor5pyr5qKiIDwgbWFzc2hvdVwgOwor6KuW6ZujIDwgcm9uJyduYW5cIDsKK+Wcn+abnOaXpSA8IGRveW91YmlcIDsKK+S4iueOiSA8IGpvdWRhbWFcIDsKK+irlumbhiA8IHJvbnNodXVcIDsKK+ael+WtpiA8IHJpbmdha3VcIDsKK+WtpuWVjyA8IGdha3Vtb25cIDsKK+ixquaXjyA8IGdvdXpva3VcIDsKK+iBt+WgtCA8IHNob2t1YmFcIDsKK+acrOagvCA8IGhvbmtha3VcIDsKK+S8muWJhyA8IGthaXNva3VcIDsKK+S4u+a1gSA8IHNodXJ5dXVcIDsKK+aXoui/sCA8IGtpanV0c3VcIDsKK+e+qeeDiCA8IGdpcmV0c3VcIDsKK+mZjembqOaelyA8IGtvdXVyaW5cIDsKK+eJqeitsCA8IGJ1dHN1Z2lcIDsKK+iyuOWutiA8IGthc2hpeWFcIDsKK+acieavkiA8IHl1dWRva3VcIDsKK+aWsOmWiyA8IHNoaW5rYWlcIDsKK+S4i+eJqSA8IGthYnV0c3VcIDsKK+S7meWlsyA8IHNlbicnbnlvXCA7CivniIbpm7cgPCBiYWt1cmFpXCA7CivkvI/li6IgPCBmdXNlemVpXCA7CivkuIrniakgPCBqb3Vtb25vXCA7CivmnJ3poqjlkYIgPCBhc2FidXJvXCA7CivmnqDlpJYgPCB3YWt1Z2FpXCA7CivmnKzmnJ0gPCBob25jaG91XCA7Civnibnoo4UgPCB0b2t1c291XCA7CivpoJjnqbogPCByeW91a3V1XCA7CivlrablkI0gPCBnYWt1bWVpXCA7Civml6fouZ8gPCBmdXJ1YXRvXCA7CivmnKvmnJ8gPCBtYXRzdWdvXCA7CivmnKjmna8gPCBtb2t1aGFpXCA7Civlho3kuIvku5ggPCBzYWlrYWZ1XCA7CivmtIvnlLvlrrYgPCB5b3VnYWthXCA7CivorKzoq5YgPCBieXV1cm9uXCA7CivmnKjmnZAgPCBtb2t1emFpXCA7Civlrablj4sgPCBnYWt1eXV1XCA7CivmnKjmnKwgPCBtb2t1aG9uXCA7CivkuIvnhrEgPCBnZW5ldHN1XCA7Civlrpropo/luqcgPCBqb3VnaXphXCA7CivmnaXlvqkgPCByYWlmdWt1XCA7CivmnKjmm5wgPCBtb2t1eW91XCA7Civmm7LmtaYgPCBreW9rdWhvXCA7CivpoZ7nhLwgPCBydWlzaG91XCA7CivpoqjmoLwgPCBmdXVrYWt1XCA7Civmnb7lsYsgPCBtYXRzdXlhXCA7CivpoK3nm64gPCB0b3Vtb2t1XCA7CivkuZ3mnIggPCBrdWdhdHN1XCA7CivkvI/lhbUgPCBmdWt1aGVpXCA7Civnibnono0gPCB0b2t1eXV1XCA7CivkubHmkoMgPCByYW5nZWtpXCA7CivnjaPmrLIgPCBqdXV5b2t1XCA7CivlpKnpoJggPCB0ZW5yeW91XCA7CivpnIDnlKjlrrYgPCBqdXlvdWthXCA7Civkv53lgaXlqaYgPCBob2tlbmZ1XCA7CivosYbmnb8gPCBtYW1laXRhXCA7Civos7zlhaUgPCBrb3VueXV1XCA7CivppIXlsYsgPCBtb2NoaXlhXCA7Civlq6HmiqsgPCBjaGFrdWhpXCA7CivmnJ3mnaUgPCBjaG91cmFpXCA7CivorKzoposgPCBieXV1a2VuXCA7CivkuIvngasgPCBzaGl0YWJpXCA7CivosYbmnKwgPCBtYW1laG9uXCA7Civpq5jnpZbmr40gPCBrb3Vzb2JvXCA7CivlppnoqIggPCBteW91a2VpXCA7Civku4rlpJUgPCBrb24nJ3l1dVwgOwor5Lmd5pifIDwga3l1dXNlaVwgOwor5ae/57W1IDwgc3VnYXRhZVwgOwor6IG35ZOhIDwgc2hva3VpblwgOwor5aSc6aOfIDwgeWFzaG9rdVwgOwor55CD5ZujIDwga3l1dWRhblwgOwor5aSW6ICz54KOIDwgZ2FpamllblwgOwor5aSa6aOfIDwgdGFzaG9rdVwgOwor6IKW5YOPIDwgc2hvdXpvdVwgOwor5p2x5bGLIDwgYXp1bWF5YVwgOwor5aSp6ZuyIDwgYW1hZ3Vtb1wgOwor5LiN5r2UIDwgZnVrZXRzdVwgOwor5LiN6KOB5Y+vIDwgZnVzYWlrYVwgOwor5a2m5YaFIDwgZ2FrdW5haVwgOwor5Lit5q2jIDwgY2h1dXNlaVwgOwor5paH6Z2pIDwgYnVua2FrdVwgOwor5p2f5bivIDwgc29rdXRhaVwgOwor6K2m5YKZ5ZOhIDwga2VpYmlpblwgOwor5pyf5pelIDwga2lqaXRzdVwgOwor6aOf5b6MIDwgc2hva3Vnb1wgOwor5LiN5ruFIDwgZnVtZXRzdVwgOwor5pyd5pa5IDwgYXNhZ2F0YVwgOwor5aSV6aKoIDwgeXV1a2F6ZVwgOwor6Z+z56+AIDwgb25zZXRzdVwgOwor5aSn6Zm4IDwgdGFpcmlrdVwgOwor6Kqk5L2c5YuVIDwgZ29zYWRvdVwgOwor6IG05Y+WIDwgY2hvdXNodVwgOwor54us55y8IDwgZG9rdWdhblwgOwor5LiL5rmvIDwgc2hpbW95dVwgOwor5aSc6ZyyIDwgeW90c3V5dVwgOwor5Lq65aOwIDwgaGl0b2dvZVwgOwor54+N5a6dIDwgY2hpbnBvdVwgOwor5aaE6KmVIDwgbW91aHlvdVwgOwor6IG35YuZIDwgc2hva3VtdVwgOwor6aOv5bGLIDwgbWVzaGl5YVwgOwor5p2/5aOBIDwgaXRha2FiZVwgOwor5Lq65aKDIDwgamlua3lvdVwgOwor5Lm+5b6zIDwga2VudG9rdVwgOwor5Luu5ZCN5pysIDwga2FuYWhvblwgOwor5pu45qOaIDwgc2hvZGFuYVwgOwor5aSV6Z2EIDwgeXV1bW95YVwgOwor5p2l5a6FIDwgcmFpdGFrdVwgOwor572u54mpIDwgb2tpbW9ub1wgOwor542E5q27IDwgZ29rdXNoaVwgOwor5pyr5oqAIDwgbWF0c3VnaVwgOwor5pyt5omAIDwgZnVkYXNob1wgOwor5aSV6ZynIDwgeXV1Z2lyaVwgOwor6aCS55m9IDwgaGFucGFrdVwgOwor5LiK5rW3IDwgc2hhbmhhaVwgOwor5pak6YePIDwga2lucnlvdVwgOwor5paw6YGTIDwgc2hpbmRvdVwgOwor5pmp56eLIDwgYmFuc2h1dVwgOwor5LiK5rWBIDwgam91cnl1dVwgOwor5LmX5o+bIDwgbm9yaWthZVwgOwor5LiJ5rWBIDwgc2Fucnl1dVwgOwor5LiK5rSbIDwgam91cmFrdVwgOwor5pyr5oiQIDwgdXJhbmFyaVwgOwor54mH6KaqIDwga2F0YW95YVwgOwor6LOg5YSfIDwgYmFpc2hvdVwgOwor57+M5pmpIDwgeW9rdWJhblwgOwor5Lmd5oudIDwga3l1dWhhaVwgOwor5Luu5YWNIDwga2FyaW1lblwgOwor5Li45p2QIDwgbWFydXphaVwgOwor5Lu75L6gIDwgbmlua3lvdVwgOwor6IKJ5L2TIDwgbmlrdXRhaVwgOwor5pyI5pelIDwgdHN1a2loaVwgOwor5pW16ZmjIDwgdGVraWppblwgOwor6aCF55uuIDwga291bW9rdVwgOwor5aSJ6Z2pIDwgaGVua2FrdVwgOwor5LiA5rWqIDwgaWNoaXJvdVwgOwor5paZ6YeRIDwgcnlvdWtpblwgOwor6ICB5byxIDwgcm91amFrdVwgOwor5aSV6ZeHIDwgeXV1eWFtaVwgOwor5pWw6Zq7IDwgc3V1c2VraVwgOwor5paw6LuKIDwgc2hpbnNoYVwgOwor5Lit5p6iIDwgY2h1dXN1dVwgOwor5LqL5bGAIDwgamlreW9rdVwgOwor5paH6Y6uIDwgYnVuY2hpblwgOwor5Luu5YCfIDwga2FzaGFrdVwgOwor5Luj5YWlIDwgZGFpbnl1dVwgOwor5LiA5rOhIDwgaGl0b2F3YVwgOwor6Zuo6aKoIDwgYW1la2F6ZVwgOwor6LGq5beeIDwgZ291c2h1dVwgOwor5Yqp55Sj5omAIDwgam9zYW5qb1wgOwor6Z2p6KOFIDwga2F3YXNvdVwgOwor5LuP5Y2wIDwgZnV0c3VpblwgOwor5Li75pWZIDwgc2h1a3lvdVwgOwor5LiA5rG6IDwgaWtrZXRzdVwgOwor5LqL5a6fIDwgamlqaXRzdVwgOwor5LqI5a+fIDwgeW9zYXRzdVwgOwor5LiA5rGXIDwgaGl0b2FzZVwgOwor6Ku46KizIDwgc2hvd2FrZVwgOwor5aem562WIDwga2Fuc2FrdVwgOwor5Luy5LuVIDwgbmFrYXNoaVwgOwor5Luy5LuLIDwgY2h1dWthaVwgOwor5Luy5Lq6IDwgbmFrb3Vkb1wgOwor5Lqs5ZywIDwga3lvdWNoaVwgOwor6LK35Y+OIDwgYmFpc2h1dVwgOwor5LiA5q+rIDwgaWNoaWdvdVwgOwor5p6g5YaFIDwgd2FrdW5haVwgOwor5LiA5q+bIDwgaWNoaW1vdVwgOwor6ICz5Z6iIDwgbWltaWFrYVwgOwor54mn6I2JIDwgYm9rdXNvdVwgOwor6aSo5YaFIDwga2FuJyduYWlcIDsKK+S4reaXrCA8IGNodXVqdW5cIDsKK+e4pumalCA8IGp1dWtha3VcIDsKK+Wkp+aZguS7oyA8IG9vamlkYWlcIDsKK+aeuOarnumFuCA8IGt1ZW5zYW5cIDsKK+mbkemngSA8IHphcHBha3VcIDsKK+mgk+eLgiA8IHRvbmt5b3VcIDsKK+iZmueEoeWDpyA8IGtvbXVzb3VcIDsKK+WksemAjyA8IHNoaXR0b3VcIDsKK+S4oeabvyA8IHJ5b3VnYWVcIDsKK+mbqumaoCA8IHNldGNoaW5cIDsKK+WssOiomOWPtyA8IGVpa2lnb3VcIDsKK+acq+W6pyA8IG1hdHN1emFcIDsKK+mjtOWdiiA8IGFtZW5ib3VcIDsKK+S/neWBpeWMuyA8IGhva2VuJydpXCA7Civku6PkvZwgPCBkYWlzYWt1XCA7CivkuLjmkI0gPCBtYXJ1em9uXCA7CivmnpflhoUgPCByaW4nJ25haVwgOwor5pyr5bqDIDwgc3VlaGlyb1wgOwor6aCt5a2X6KqeIDwgdG91amlnb1wgOwor5Luj5LyRIDwgZGFpa3l1dVwgOwor54mn6IiOIDwgYm9rdXNoYVwgOwor5LuP5YW3IDwgYnV0c3VndVwgOwor5pyr5bitIDwgbWFzc2VraVwgOwor6Ky56IG0IDwga2luY2hvdVwgOwor6Ku46KGMIDwgc2hvZ3lvdVwgOwor5pyo5aSq5YiAIDwga2lkYWNoaVwgOwor546J5bqnIDwgZ3lva3V6YVwgOwor5pys5beeIDwgaG9uc2h1dVwgOwor54yb5q+SIDwgbW91ZG9rdVwgOwor57eY6buZIDwga2FubW9rdVwgOwor5LuL5YWlIDwga2Fpbnl1dVwgOwor5pud5pu4IDwgYmFrdXNob1wgOwor6LG55aSJIDwgaHlvdWhlblwgOwor5pWR6ZujIDwga3l1dW5hblwgOwor5Lih5patIDwgcnlvdWRhblwgOwor5aWl6KGMIDwgb2t1eXVraVwgOwor5pyd5bu3IDwgY2hvdXRlaVwgOwor5paH6YCaIDwgYnVudHN1dVwgOwor6aOf5aGpIDwgc2hva3VlblwgOwor54ax6ZuyIDwgbmV0c3V1blwgOwor6JOu6I+v5bqnIDwgcmVuZ2V6YVwgOwor5pWZ6ZaAIDwga3lvdW1vblwgOwor6ZuR6Z+zIDwgemF0c3VvblwgOwor54ub54qsIDwga29tYWludVwgOwor54+N5ZWPIDwgY2hpbm1vblwgOwor5oSb5pu45a62IDwgYWlzaG9rYVwgOwor6ZuB6aaWIDwgZ2Fua3ViaVwgOwor5pqm5rOVIDwgcmVraWhvdVwgOwor5aSp6Lu4IDwgdGVuamlrdVwgOwor6Kqe6YeIIDwgZ29zaGFrdVwgOwor5Lq65YmNIDwgaGl0b21hZVwgOwor6aas5YiA6LKdIDwgbWF0ZWdhaVwgOwor54++5Lu7IDwgZ2VuJyduaW5cIDsKK+WknOmBkyA8IHlvbWljaGlcIDsKK+irluiqvyA8IHJvbmNob3VcIDsKK+S5meW3oSA8IG90c3VqdW5cIDsKK+Wkj+mHjiA8IG5hdHN1bm9cIDsKK+WklumDrSA8IGdhaWtha3VcIDsKK+ePjeWTgSA8IGNoaW5waW5cIDsKK+acneW4giA8IGFzYWljaGlcIDsKK+WlieiqrSA8IGhvdWRva3VcIDsKK+aYvOekvCA8IGNodXVyZWlcIDsKK+acq+WwviA8IG1hdHN1YmlcIDsKK+S4i+acnyA8IHNoaW1va2lcIDsKK+aVsOmHjyA8IHN1dXJ5b3VcIDsKK+eHl+mFkiA8IGthbnpha2VcIDsKK+S7leS6iyA8IHNoaWdvdG9cIDsKK+irluiplSA8IHJvbnB5b3VcIDsKK+S4iuacjSA8IHV3YWZ1a3VcIDsKK+acqOWxpSA8IHBva2t1cmlcIDsKK+acq+WvuiA8IG1hdHN1amlcIDsKK+irluiovCA8IHJvbnNob3VcIDsKK+eJqee9riA8IG1vbm9va2lcIDsKK+acjeW+kyA8IGZ1a3VqdXVcIDsKK+S4ieaciCA8IG1pdHN1a2lcIDsKK+i2o+aEj+abuCA8IHNodWlzaG9cIDsKK+acjeW9uSA8IGZ1a3Vla2lcIDsKK+S4oeaQjSA8IHJ5b3V6b25cIDsKK+eJm+iEgiA8IGd5dXVzaGlcIDsKK+eJp+e+iiA8IGJva3V5b3VcIDsKK+WkiemHjyA8IGhlbnJ5b3VcIDsKK+S4h+aciSA8IGJhbicneXV1XCA7CivmnKzlroUgPCBob250YWt1XCA7Civmm7LmioAgPCBreW9rdWdpXCA7CivpnZLom5kgPCBhb2dhZXJ1XCA7CivmnInlvrMgPCB5dXV0b2t1XCA7CivnibnntJogPCB0b2treXV1XCA7CivnjK7mnKggPCBrZW5ib2t1XCA7Civpo5vlnLAgPCB0b2JpY2hpXCA7CivnjKvmnb8gPCBuZWtvaXRhXCA7Civml6Xoi7EgPCBuaWNoaWVpXCA7Civoq4vorIEgPCBzZWlldHN1XCA7CivmmJPntYwgPCBla2lreW91XCA7Civosp3libIgPCBrYWl3YXJpXCA7CivkuI3ml6UgPCBmdWppdHN1XCA7CivmmpbmtYEgPCBkYW5yeXV1XCA7CivpnZLomasgPCBhb211c2hpXCA7CivkuInmmKUgPCBzYW5zaHVuXCA7CivkuIDmnK0gPCBpc3NhdHN1XCA7CivogJDlnKcgPCB0YWlhdHN1XCA7CivnuKvph50gPCBudWliYXJpXCA7CivpgYvmkKzosrsgPCB1bnBhbmhpXCA7CivpoILngrkgPCBjaG91dGVuXCA7CivkuIDmm7IgPCBpa2t5b2t1XCA7CivkuLnlv7UgPCB0YW4nJ25lblwgOwor6Z+z54mpIDwgaW5tb3RzdVwgOwor5pel6IieIDwgbmljaGlidVwgOwor5pen6IeYIDwga3l1dXJvdVwgOwor542j5b+DIDwganV1c2hpblwgOwor6KuL6KiXIDwgc2VpdGFrdVwgOwor6ICB5aKDIDwgcm91a3lvdVwgOwor5pSY5aS36KuWIDwgam91aXJvblwgOwor5oeQ55aR5rS+IDwga2FpZ2loYVwgOwor5LuK5LiAIDwgaW1haWNoaVwgOwor5LiH5pabIDwgYmFua29rdVwgOwor54Sh54WZ54KtIDwgbXVlbnRhblwgOwor5LiJ5pWZIDwgc2Fua3lvdVwgOwor5LiA5pmpIDwgaGl0b2JhblwgOwor5aSp6LGhIDwgdGVuc2hvdVwgOwor5pmp54afIDwgYmFuanVrdVwgOwor5aal57WQIDwgZGFrZXRzdVwgOwor5pil56eLIDwgaGFydWFraVwgOwor54mb57y2IDwgZ3l1dWthblwgOwor5a6J6Z2Z5pmCIDwgYW5zZWlqaVwgOwor5pyA5by3IDwgc2Fpa3lvdVwgOwor5aSJ6YCfIDwgaGVuc29rdVwgOwor5aSJ6YCaIDwgaGVudHN1dVwgOwor5pqX5q66IDwgYW5zYXRzdVwgOwor5pW16LuNIDwgdGVraWd1blwgOwor54m5562JIDwgdG9rdXRvdVwgOwor54mH6IWVIDwga2F0YXVkZVwgOwor5LiA5pesIDwgaWNoaWp1blwgOwor5aWz55Sf5b6SIDwgam9zZWl0b1wgOwor5Lme5am/IDwga29pbXVrb1wgOwor6JmO54eV5ouzIDwga29lbmtlblwgOwor6aC45qSOIDwga2VpdHN1aVwgOwor6LKs5Lu7IDwgc2VraW5pblwgOwor6aGU5paZIDwgZ2FucnlvdVwgOwor5q2j5bi45L2NIDwgc2Vpam91aVwgOwor5pyr5aWzIDwgbWF0c3Vqb1wgOwor5pyx5aKoIDwgc2h1Ym9rdVwgOwor5LiB5pWwIDwgY2hvdXN1dVwgOwor5peX6ImyIDwgaGF0YWlyb1wgOwor6KOc5Yqp6YeRIDwgaG9qb2tpblwgOwor5aWz6ImyIDwgam9zaG9rdVwgOwor5pen6IGeIDwga3l1dWJ1blwgOwor6Zi/5amG5pOmIDwgYWJhenVyZVwgOwor54mH6IK6IDwga2F0YWhhaVwgOwor5pyx5aGXIDwgc2h1bnVyaVwgOwor6aCY5rC0IDwgcnlvdXN1aVwgOwor6Z2i6Ii1IDwgb21va2FqaVwgOwor5Li45bivIDwgbWFydW9iaVwgOwor55C155C26KGMIDwgYml3YWtvdVwgOwor57eP6auYIDwgc291ZGFrYVwgOwor5aOw6YePIDwgc2VpcnlvdVwgOwor5Yqp55Sj5ammIDwgam9zYW5wdVwgOwor5pyn5aScIDwgb2Jvcm95b1wgOwor5aOB6Z2iIDwgaGVraW1lblwgOwor57+w5aKoIDwga2FuYm9rdVwgOwor546E5aaZIDwgZ2VubXlvdVwgOwor5L+u576F5aC0IDwgc2h1cmFiYVwgOwor57645byxIDwgcnVpamFrdVwgOwor5Lmd5aSnIDwga3l1dWRhaVwgOwor5LiJ5oyvIDwgc2Fuc2hpblwgOwor5LiN5oqcIDwgZnViYXRzdVwgOwor5aSn6KmwIDwgb29kenVtZVwgOwor6LGq5ZWGIDwgZ291c2hvdVwgOwor5omL5LiA5p2vIDwgdGVpcHBhaVwgOwor5Lit5bm0IDwgY2h1dW5lblwgOwor5LiA5o+hIDwgaWNoaWFrdVwgOwor5puy5bqHIDwga3lva3VoaVwgOwor6Kqs6KutIDwgc2V0c3V5dVwgOwor54Sh57ea5qmfIDwgbXVzZW5raVwgOwor5Lit5bi9IDwgY2h1dWJvdVwgOwor5pil55ygIDwgc2h1bm1pblwgOwor6aCs5qGBIDwgaG9vZ2V0YVwgOwor5LiH54Gv5LyaIDwgbWFuZG91ZVwgOwor54mn56ulIDwgYm9rdWRvdVwgOwor5p2x5LqsIDwgdG91a3lvdVwgOwor5pys5Zu9IDwgaG9uZ29rdVwgOwor6Kqs6KmxIDwgc2V0c3V3YVwgOwor5LqM5YiXIDwgbmlyZXRzdVwgOwor5LiA5ousIDwgaWtrYXRzdVwgOwor6Z2e6IG3IDwgaGlzaG9rdVwgOwor5pS56YuzIDwga2FpY2h1dVwgOwor54yb5pKDIDwgbW91Z2VraVwgOwor5pWP6YCfIDwgYmluc29rdVwgOwor6aCs5p2WIDwgaG9vZHp1ZVwgOwor5paw6JGXIDwgc2hpbmNob1wgOwor5rC05L2N6KiIIDwgc3VpaWtlaVwgOwor576e5oGlIDwgc2h1dWNoaVwgOwor5Lmd5ZywIDwga3l1dWNoaVwgOwor5piO56K6IDwgbWVpa2FrdVwgOwor57eP6aGNIDwgc291Z2FrdVwgOwor5LqM5YWrIDwgbmloYWNoaVwgOwor5ryi5pa55Yy7IDwga2FucG91aVwgOwor5pmv5rOBIDwga2Vpa3lvdVwgOwor5pel57WmIDwgbmlra3l1dVwgOwor576955uu5p2/IDwgaGFtZWl0YVwgOwor5YW35L2T5qGIIDwgZ3V0YWlhblwgOwor6ZuG6YeRIDwgc2h1dWtpblwgOwor6Zuo6LazIDwgYW1lYXNoaVwgOwor5pqm5pWwIDwgcmVraXN1dVwgOwor5paw6Iy2IDwgc2hpbmNoYVwgOwor6aKo5ZynIDwgZnV1YXRzdVwgOwor57eP6Z2pIDwgc291Z2F3YVwgOwor5Lit5bCKIDwgY2h1dXpvblwgOwor5piO556tIDwgbWVpcnlvdVwgOwor57i36KqsIDwgcnVzZXRzdVwgOwor6ZuG6YWNIDwgc2h1dWhhaVwgOwor5pyI5aSuIDwgZ2V0c3VvdVwgOwor5Lit5a6uIDwgY2h1dWd1dVwgOwor57a/6aO0IDwgd2F0YWFtZVwgOwor5pyI5aScIDwgdHN1a2l5b1wgOwor5pel5pys5YyWIDwgbmlob25rYVwgOwor5LiJ5b6zIDwgc2FudG9rdVwgOwor6Zmw6ayxIDwgaW4nJ3V0c3VcIDsKK+e3kemZsCA8IHJ5b2t1aW5cIDsKK+aVteimliA8IHRla2lzaGlcIDsKK+aUvumAuCA8IGhvdWl0c3VcIDsKK+eglOejqOapnyA8IGtlbm1ha2lcIDsKK+S4iuW9uSA8IHV3YXlha3VcIDsKK+Wil+mhjSA8IHpvdWdha3VcIDsKK+S4gOaBryA8IGhpdG9pa2lcIDsKK+S5s+WJpCA8IG55dXV6YWlcIDsKK+aYjueZvSA8IG1laWhha3VcIDsKK+Wkp+mbkeaKiiA8IG9vemFwcGFcIDsKK+S4i+W6pyA8IHNoaW1vemFcIDsKK+WPpOS6leaIuCA8IGZ1cnVpZG9cIDsKK+S4gOW/tSA8IGljaGluZW5cIDsKK+S4h+W8lSA8IG1hbmJpa2lcIDsKK+iDg+a9sOeYjSA8IGlrYWl5b3VcIDsKK+eJueeUoyA8IHRva3VzYW5cIDsKK+acqOWPoyA8IGtpZ3VjaGlcIDsKK+S4gOW+uSA8IGl0dGV0c3VcIDsKK+mhlOW9uSA8IGthb3lha3VcIDsKK+e/u+WIuyA8IGhvbmtva3VcIDsKK+S4ieW5tCA8IHNhbicnbmVuXCA7Civml6Xnq4sgPCBoaXRhY2hpXCA7CivmlZHosqcgPCBreXV1aGluXCA7Civmlq3ohbggPCBkYW5jaG91XCA7CivmnY/ku4EgPCBreW91bmluXCA7CivkuIflubQgPCBtYW4nJ25lblwgOwor54mp55qEIDwgYnV0dGVraVwgOwor6Zm46aKoIDwgcmlrdWZ1dVwgOwor5aSa576p5oCnIDwgdGFnaXNlaVwgOwor5LiA5byPIDwgaXNzaGlraVwgOwor54q25rOBIDwgam91a3lvdVwgOwor55SY6Zyy54WuIDwga2Fucm9uaVwgOwor5paw6IGeIDwgc2hpbmJ1blwgOwor5pys5YmHIDwgaG9uc29rdVwgOwor5Lit5aSWIDwgY2h1dWdhaVwgOwor5LmZ5aWz5bqnIDwgb3RvbWV6YVwgOwor5aW0562JIDwgeWF0c3VyYVwgOwor54us5patIDwgZG9rdWRhblwgOwor6Kmw6LKsIDwga2lzc2VraVwgOwor6ICQ5LmFIDwgdGFpa3l1dVwgOwor6Zuj6KqtIDwgbmFuZG9rdVwgOwor6aGn5a6iIDwga29reWFrdVwgOwor54us5paHIDwgZG9rdWJ1blwgOwor5L+d5a6I5rS+IDwgaG9zaHVoYVwgOwor5peX56u/IDwgaGF0YXphb1wgOwor6ZyK6JasIDwgcmVpeWFrdVwgOwor5pWZ6KiTIDwga3lvdWt1blwgOwor5LiN5bGIIDwgZnVrdXRzdVwgOwor5pyo5YiAIDwgYm9rdXRvdVwgOwor5paw576FIDwgc2hpcmFnaVwgOwor5aKX6ZW3IDwgem91Y2hvdVwgOwor5pqB5pifIDwgZ3lvdXNlaVwgOwor6Zm66ZujIDwga2VuJyduYW5cIDsKK+WPmeS6i+ipqSA8IGpvamlzaGlcIDsKK+S4iuWxpSA8IHV3YWJha2lcIDsKK+acrOWFgyA8IGhvbm1vdG9cIDsKK+Wkp+aOg+mZpCA8IG9vc291amlcIDsKK+eDj+m+jeiMtiA8IMWrcm9uY2hhXCA7CivkuK3loIUgPCBjaHV1a2VuXCA7CivlpI/ompUgPCBuYXRzdWdvXCA7CivlpbPnjovon7sgPCBqb291YXJpXCA7CivljYrmr43pn7MgPCBoYW5ib2luXCA7CivkuInlsLogPCBzYW5qYWt1XCA7CivlpKnojYkgPCB0ZW5ndXNhXCA7CivmnIjllYYgPCBnZXNzaG91XCA7CivnhKHmlL/lupwgPCBtdXNlaWZ1XCA7CivkuIvlrr8gPCBnZXNodWt1XCA7CivorbDmsbogPCBnaWtldHN1XCA7CivkubHkvZwgPCByYW5zYWt1XCA7CivkuIvlrrYgPCBzaGl0YXlhXCA7CivniZvnl5ggPCBneXV1dG91XCA7CivniannkIYgPCBidXRzdXJpXCA7Civmm7TlnLAgPCBzYXJhY2hpXCA7CivniZvnlqsgPCBneXV1ZWtpXCA7Civnvqnlkozlm6MgPCBnaXdhZGFuXCA7CivmnJ3lh6ogPCBhc2FuYWdpXCA7CivkuIDlsLogPCBpc3NoYWt1XCA7Civni6zmjqIgPCBkb2t1dGFuXCA7Civnt5Hph44gPCByeW9rdXlhXCA7CivkuIPlrp0gPCBzaGlwcG91XCA7Civml6fnm6QgPCBreXV1YmFuXCA7CivoqbPop6MgPCBzaG91a2FpXCA7CivlpZHntIQgPCBrZWl5YWt1XCA7Civpm6PooYwgPCBuYW5neW91XCA7CivmnIjlj44gPCBnZXNzaHV1XCA7Civpm5HoqbEgPCB6YXRzdXdhXCA7Civml6fnm4YgPCBreXV1Ym9uXCA7CivkuIDlrr8gPCBpc3NodWt1XCA7CivnhKHpqqggPCBidWtvdHN1XCA7Civlpb3kuovlrrYgPCBrb3V6dWthXCA7Civlo7LooYwgPCB1cmV5dWtpXCA7CivpoIHmlbAgPCBwxJNqaXN1dVwgOwor5pat57aaIDwgZGFuem9rdVwgOwor6Z+z5puyIDwgb25neW9rdVwgOwor5LiA5a2YIDwgaWNoaXpvblwgOwor5aSV6I+FIDwgeXV1c3VnZVwgOwor5pa9562WIDwgc2hpc2FrdVwgOwor5pel55m9IDwgbmlwcGFrdVwgOwor5aSn6IW4IDwgZGFpY2hvdVwgOwor6KGM54K66ICFIDwga291aXNoYVwgOwor54mi542EIDwgcm91Z29rdVwgOwor54qs5qmHIDwgaW51em9yaVwgOwor5LiO5aWqIDwgeW9kYXRzdVwgOwor5pys5Lq6IDwgaG9uJyduaW5cIDsKK+eGn+irhyA8IGp1a3VkYW5cIDsKK+apn+mWouW6qyA8IGtpa2Fua29cIDsKK+apn+mWouW6pyA8IGtpa2FuemFcIDsKK+eJoeeMqyA8IG9zdW5la29cIDsKK+aZqeaYpSA8IGJhbnNodW5cIDsKK+eLrOaIvyA8IGRva3Vib3VcIDsKK+aWsOexsyA8IHNoaW5tYWlcIDsKK+aWueetliA8IGhvdXNha3VcIDsKK+eKrOanmSA8IGludW1ha2lcIDsKK+acqOS7jyA8IGtpYnV0c3VcIDsKK+aXqeeVqiA8IGhheWFiYW5cIDsKK+acrOS4uCA8IGhvbm1hcnVcIDsKK+aZqeaWuSA8IGJhbmdhdGFcIDsKK+e5ree0rCA8IGtlbmNodXVcIDsKK+mdkuelqCA8IHNlaWh5b3VcIDsKK+eMm+WwhiA8IG1vdXNob3VcIDsKK+WQjOaEj+imiyA8IGRvdWlrZW5cIDsKK+S4iOWkqyA8IG1hc3VyYW9cIDsKK+aciOWIqSA8IGdldHN1cmlcIDsKK+aUueiosyA8IGthaXlha3VcIDsKK+Wil+mHjyA8IHpvdXJ5b3VcIDsKK+mbtuiQvSA8IHJlaXJha3VcIDsKK+S4uOWNgSA8IG1hcnVqdXVcIDsKK+mbhuioiCA8IHNodXVrZWlcIDsKK+ipseihkyA8IHdhanV0c3VcIDsKK+eJneeKrCA8IG1lc3VpbnVcIDsKK+eGn+impyA8IGp1a3VyYW5cIDsKK+eGn+imliA8IGp1a3VzaGlcIDsKK+mdouebriA8IG1lbm1va3VcIDsKK+eFjumNiyA8IGlyaW5hYmVcIDsKK+eOhOS6uiA8IGt1cm91dG9cIDsKK+aWreeusSA8IGRhbmJha29cIDsKK+itsOS6i+WggiA8IGdpamlkb3VcIDsKK+Whq+mamSA8IHRlbmdla2lcIDsKK+S4iuWhlyA8IHV3YW51cmlcIDsKK+S4gOWmgiA8IGljaGlueW9cIDsKK+S4jeWfkiA8IGZ1cmFjaGlcIDsKK+e3iui/qyA8IGtpbnBha3VcIDsKK+S4h+WigyA8IGJhbmt5b3VcIDsKK+irluetliA8IHJvbnNha3VcIDsKK+ios+i8iSA8IHlha3VzYWlcIDsKK+aYjua+hCA8IG1laWNob3VcIDsKK+S4gOWkpyA8IGljaGlkYWlcIDsKK+ipleirliA8IGh5b3Vyb25cIDsKK+iqv+e3tCA8IGNob3VyZW5cIDsKK+S4reWOnyA8IGNodXVnZW5cIDsKK+iqpOiEsSA8IGdvZGF0c3VcIDsKK+iqreiAhSA8IGRva3VzaGFcIDsKK+WjsuiWrCA8IGJhaXlha3VcIDsKK+ixhuS5syA8IHRvdW55dXVcIDsKK+S4gOWjsCA8IGhpdG9rb2VcIDsKK+WkqeezuOeTnCA8IGhlY2hpbWFcIDsKK+S/neWuieaelyA8IGhvYW5yaW5cIDsKK+iFkOiRieWcnyA8IGZ1eW91ZG9cIDsKK+S4i+WcsCA8IHNoaXRhamlcIDsKK+Wil+mAsiA8IHpvdXNoaW5cIDsKK+mdoueWlCA8IG1lbmNob3VcIDsKK+mgguaItCA8IGNob3VkYWlcIDsKK+irlueptiA8IHJvbmt5dXVcIDsKK+aWsOeojiA8IHNoaW56ZWlcIDsKK+a1t+ixmuW6pyA8IGlydWthemFcIDsKK+S4i+WbsyA8IHNoaXRhenVcIDsKK+iHquihm+maiiA8IGppZWl0YWlcIDsKK+aUueihjCA8IGthaWd5b3VcIDsKK+iqnuiEiCA8IGdvbXlha3VcIDsKK+e5iue2ree0oCA8IHNlbicnaXNvXCA7CivkuInlm70gPCBzYW5nb2t1XCA7CivkuKHlkI0gPCByeW91bWVpXCA7Civpmo/ouqsgPCB6dWlzaGluXCA7CivnhKHpm5EgPCBtdXphdHN1XCA7Civnp7vooYzmgKcgPCBpa291c2VpXCA7CivkuK3liY0gPCBjaHV1emVuXCA7CivopqrpuJ4gPCBzaGlucmFuXCA7Civpm7vohLMgPCBkZW4nJ25vdVwgOwor5rmv5rmv5amGIDwgeXV0YW5wb1wgOwor5Lit5YiGIDwgY2h1dWJ1blwgOwor57W26aCCIDwgemV0Y2hvdVwgOwor6aCR5by3IDwgZ2Fua3lvdVwgOwor57mL57ibIDwga2VpYmFrdVwgOwor5aSq57O4IDwgZnV0b2l0b1wgOwor5Lqk5bC+5pyfIDwga291YmlraVwgOwor5aeL5qWtIDwgc2hpZ3lvdVwgOwor5LiA5ZujIDwgaWNoaWRhblwgOwor5pep54afIDwgc291anVrdVwgOwor6KqH6ImyIDwga29zaG9rdVwgOwor6KiX6YCBIDwgdGFrdXNvdVwgOwor6ZuM6JiCIDwgbWVzaGliZVwgOwor6aCG5b+cIDwganVuJydub3VcIDsKK+mZuOmAgSA8IHJpa3Vzb3VcIDsKK+aciOS6iyA8IGdldHN1amlcIDsKK+imqumzpSA8IG95YWRvcmlcIDsKK+eJueautSA8IHRva3VkYW5cIDsKK+S4oeWJjSA8IHJ5b3VtYWVcIDsKK+Wkp+eykiA8IG9vdHN1YnVcIDsKK+iok+i/qiA8IGt1bnRla2lcIDsKK+mZtuejgeWZqCA8IHRvdWppa2lcIDsKK+eJueauiiA8IHRva3VzaHVcIDsKK+Wig+mBhyA8IGt5b3VndXVcIDsKK+ippuiWrCA8IHNoaXlha3VcIDsKK+mHjemmrOWgtCA8IG9tb2JhYmFcIDsKK+ipkOihkyA8IHNhanV0c3VcIDsKK+S4oeWIhiA8IHJ5b3VidW5cIDsKK+ats+aZguiomCA8IHNhaWppa2lcIDsKK+mYv+WkmuemjyA8IG90YWZ1a3VcIDsKK+S4jeWQiSA8IGZ1a2l0c3VcIDsKK+S4iuWRiiA8IGpvdWtva3VcIDsKK+W+oeevgOS7iyA8IG9zZWtrYWlcIDsKK+mZuOi7jSA8IHJpa3VndW5cIDsKK+S6nOm6u+S7geayuSA8IGFtYW5peXVcIDsKK+aWsOebpCA8IHNoaW5iYW5cIDsKK+mfu+W+iyA8IGlucml0c3VcIDsKK+aatOWcpyA8IGJvdWF0c3VcIDsKK+ioseirviA8IGt5b2Rha3VcIDsKK+eIhueglSA8IGJha3VzYWlcIDsKK+S4oeWDjyA8IHJ5b3V6b3VcIDsKK+eLguaFiyA8IGt5b3V0YWlcIDsKK+Wpv+WFpSA8IG11a29pcmlcIDsKK+ios+ipqSA8IHlha3VzaGlcIDsKK+mbouiEsSA8IHJpZGF0c3VcIDsKK+aYh+autSA8IHNob3VkYW5cIDsKK+eJp+awkSA8IGJva3VtaW5cIDsKK+WkqeeqkyA8IHRlbm1hZG9cIDsKK+S4gOWRvSA8IGljaGltZWlcIDsKK+aVmeiCsiA8IGt5b3Vpa3VcIDsKK+S4gOWRsyA8IGhpdG9hamlcIDsKK+WkseemgSA8IHNoaWtraW5cIDsKK+e3j+iplSA8IHNvdWh5b3VcIDsKK+WmmeazlSA8IG15b3Vob3VcIDsKK+imqumqqCA8IG95YWJvbmVcIDsKK+abuOS4rSA8IHNob2NodXVcIDsKK+S4h+WNmiA8IGJhbnBha3VcIDsKK+eVquWwj+WxiyA8IGJhbmdveWFcIDsKK+mfs+W+iyA8IG9ucml0c3VcIDsKK+S4i+WKoyA8IGdlcmV0c3VcIDsKK+aEm+eKrOWutiA8IGFpa2Vua2FcIDsKK+S4ieWKqSA8IHNhbnN1a2VcIDsKK+S4oeS+vyA8IHJ5b3ViZW5cIDsKK+iAvee+jua0viA8IHRhbmJpaGFcIDsKK+aYpeacrCA8IHNodW5wb25cIDsKK+S4g+WNgSA8IG5hbmFqdXVcIDsKK+imv+mdoiA8IHRla2ltZW5cIDsKK+S4h+WKmyA8IG1hbnJpa2lcIDsKK+S4geWNiiA8IGNob3VoYW5cIDsKK+Wkp+emjyA8IGRhaWZ1a3VcIDsKK+WkqeelkCA8IHRlbicneXV1XCA7CivmmKjmmakgPCBzYWt1YmFuXCA7Civkv53ogrLmiYAgPCBob2lrdWpvXCA7CivmmanlubQgPCBiYW4nJ25lblwgOwor54Wn6KanIDwgc2hvdXJhblwgOwor57eK6KaBIDwga2luJyd5b3VcIDsKK+WmqOalrSA8IGJvdWd5b3VcIDsKK+S4oeS6uiA8IHJ5b3VuaW5cIDsKK+ims+mfsyA8IGthbicnbm9uXCA7CivmmYLmipggPCB0b2tpb3JpXCA7CivpgYrpm6Lln7ogPCB5dXVyaWtpXCA7CivmkrDpjLIgPCBzZW5yb2t1XCA7CivkupLliqnkvJogPCBnb2pva2FpXCA7CivmlLnoia8gPCBrYWlyeW91XCA7Civmlr3niakgPCBzZW1vdHN1XCA7Civlpa7mv4AgPCBmdW5nZWtpXCA7CivkuKHkuIkgPCByeW91c2FuXCA7Civpm7vnrpcgPCBkZW5zb3JvXCA7CivntZDpnLIgPCBrZXRzdXJvXCA7CivmlZnnt7QgPCBreW91cmVuXCA7CivkuIrlgbQgPCB1d2FnYXdhXCA7Civlp6bmgqogPCBrYW4nJ2FrdVwgOwor6KOc5Yqp57eaIDwgaG9qb3NlblwgOwor6KeS6YyQIDwga2FrdXN1aVwgOwor57WQ6ZuGIDwga2Vzc2h1dVwgOwor5LiL5YCkIDwgc2hpdGFuZVwgOwor5aWz5rmvIDwgb24nJ25heXVcIDsKK+S4gOWFgyA8IGljaGlnZW5cIDsKK+e+heWIlyA8IHJhcmV0c3VcIDsKK+aaluWbvSA8IGRhbmtva3VcIDsKK+S6i+WLmeaJgCA8IGppbXVzaG9cIDsKK+mZs+isnSA8IGNoaW5zaGFcIDsKK+S4gOWEhCA8IGljaGlva3VcIDsKK+iok+iqrSA8IGt1bmRva3VcIDsKK+eIm+eGnyA8IHJhbmp1a3VcIDsKK+aYjuacnSA8IG1pbmNob3VcIDsKK+iol+iogCA8IHRha3VnZW5cIDsKK+mgmOWfnyA8IHJ5b3Vpa2lcIDsKK+iogOiyrCA8IGdlbnNla2lcIDsKK+S/neitt+mHkSA8IGhvZ29raW5cIDsKK+WkqueZvSA8IHRhaWhha3VcIDsKK+eJueaXqCA8IHRva3VzaGlcIDsKK+WkqeeahyA8IHRlbicnbm91XCA7CivmlbDnp5IgPCBzdXVieW91XCA7CivmlaPnrZYgPCBzYW5zYWt1XCA7CivkuIfkvZwgPCBtYW5zYWt1XCA7CivmmI7mmbAgPCBtZWlzZWtpXCA7CivmmanlraYgPCBiYW5nYWt1XCA7CivmmI7mmakgPCBteW91YmFuXCA7CivkuIDlgI0gPCBpY2hpYmFpXCA7CivntYLpm7sgPCBzaHV1ZGVuXCA7Civml6XmrKcgPCBuaWNoaW91XCA7CivmmI7mmJ8gPCBteW91am91XCA7CivkuInkurogPCBzYW4nJ25pblwgOwor57im56ybIDwgdGF0ZWJ1ZVwgOwor6ZuG576kIDwgc2h1dWd1blwgOwor5LiH5Lq6IDwgbWFuJyduaW5cIDsKK+Wkp+eXhSA8IHRhaWJ5b3VcIDsKK+iPk+WtkOWZqCA8IGthc2hpa2lcIDsKK+mgreWPliA8IHRvdWRvcmlcIDsKK+mbqOesoCA8IGFtYWdhc2FcIDsKK+e4pueptCA8IHRhdGVhbmFcIDsKK+S4gOS7uyA8IGljaGluaW5cIDsKK+Wkp+eUtyA8IG9vb3Rva29cIDsKK+e9sOWJhyA8IGJhc3Nva3VcIDsKK+mch+ebqiA8IHNoaW50b3VcIDsKK+mciueahCA8IHJlaXRla2lcIDsKK+aEm+Wmu+WutiA8IGFpc2Fpa2FcIDsKK+WkluebuCA8IGdhaXNob3VcIDsKK+WkmueZuiA8IHRhaGF0c3VcIDsKK+mbqOepuiA8IGFtYXpvcmFcIDsKK+eEtuirviA8IHplbmRha3VcIDsKK+iprue0oiA8IHNlbnNha3VcIDsKK+aVo+elqCA8IHNhbnB5b3VcIDsKK+mkiueItuavjSA8IHlvdWZ1Ym9cIDsKK+e3tOe/kiA8IHJlbnNodXVcIDsKK+ipleiAhSA8IGh5b3VzaGFcIDsKK+eGn+e3tCA8IGp1a3VyZW5cIDsKK+WklueahCA8IGdhaXRla2lcIDsKK+manOazpeeDj+iziiA8IGFvcmlpa2FcIDsKK+eLrOWWhCA8IGRva3V6ZW5cIDsKK+Wkj+edgCA8IG5hdHN1Z2lcIDsKK+WkqeeQgyA8IHRlbmt5dXVcIDsKK+i1t+mbu+apnyA8IGtpZGVua2lcIDsKK+Wmu+aIuCA8IHRzdW1hZG9cIDsKK+S6jOatu+W+jCA8IG5pc2hpZ29cIDsKK+aWkeeMqyA8IGhhbm15b3VcIDsKK+aZi+WxsSA8IHNoaW56YW5cIDsKK+aXi+avmyA8IHRzdW11amlcIDsKK+WgsemFrCA8IGhvdXNodXVcIDsKK+iRieeJoeS4uSA8IGhhYm90YW5cIDsKK+W3sueEtuW9oiA8IGl6ZW5rZWlcIDsKK+eDiOmchyA8IHJlc3NoaW5cIDsKK+aYpeaDhSA8IHNodW5qb3VcIDsKK+e3rOe+iiA8IG1lbicneW91XCA7CivnuJ/npLwgPCBqb2t1cmVpXCA7CivlpKfnjYQgPCB0YWlnb2t1XCA7Civni4LlpZQgPCBreW91aG9uXCA7CivloqjoibIgPCBzdW1paXJvXCA7Civnt4/oirEgPCBzb3ViYW5hXCA7CivmlabnnaYgPCB0b25ib2t1XCA7CivlpKfopo/mqKEgPCBkYWlraWJvXCA7Civni6zlkJ8gPCBkb2t1Z2luXCA7CivlhbfkvZPljJYgPCBndXRhaWthXCA7CivopobpnaIgPCBmdWt1bWVuXCA7CivnuZTniakgPCBvcmltb25vXCA7Civkv53lronlrpggPCBob2Fua2FuXCA7Civml6fmnaUgPCBreXV1cmFpXCA7Civml6fmnZEgPCBreXV1c29uXCA7Civph47njaPmtL4gPCB5YWp1dWhhXCA7Civni6zljaAgPCBkb2t1c2VuXCA7Civpm7vkvY3lt64gPCBkZW4nJ2lzYVwgOwor5pel5pydIDwgbml0Y2hvdVwgOwor5aaC5pyIIDwgbmlnYXRzdVwgOwor5aSx54K5IDwgc2hpdHRlblwgOwor6ZuR56mAIDwgemFra29rdVwgOwor6KWf6auqIDwgZXJpZ2FtaVwgOwor6Kaq6YeMIDwgb3lhemF0b1wgOwor54Wn6IeoIDwgc2hvdXJpblwgOwor5pep5pilIDwgc291c2h1blwgOwor5pio5bm0IDwgc2FrdW5lblwgOwor5aSp54S2IDwgdGVuJyduZW5cIDsKK+WlpeanmCA8IG9rdXNhbWFcIDsKK+aXpeaZgiA8IG5pY2hpamlcIDsKK+e3keiCpSA8IHJ5b2t1aGlcIDsKK+mdnuWvvuW/nCA8IGhpdGFpb3VcIDsKK+iTlum6u+WtkCA8IGhpbWFzaGlcIDsKK+ijuOS9k+eUuyA8IHJhdGFpZ2FcIDsKK+mgmOWGhSA8IHJ5b3VuYWlcIDsKK+S6i+WLmeWumCA8IGppbXVrYW5cIDsKK+mbu+eQgyA8IGRlbmt5dXVcIDsKK+eJh+aWuSA8IGthdGFob3VcIDsKK+ios+iAhSA8IHlha3VzaGFcIDsKK+eJueW+hSA8IHRva3V0YWlcIDsKK+i1t+iotOeKtiA8IGtpc29qb3VcIDsKK+iln+mmliA8IGVyaWt1YmlcIDsKK+WlquagvCA8IGRha2tha3VcIDsKK+mHjuaarueUqCA8IHlhYm95b3VcIDsKK+aVteeKtiA8IHRla2lqb3VcIDsKK+aSg+mAgCA8IGdla2l0YWlcIDsKK+eEoeeBr+eBqyA8IG11dG91a2FcIDsKK+mbo+eZliA8IG5hbmt1c2VcIDsKK+aYpeW1kCA8IHNodW5yYW5cIDsKK+ilsumbtyA8IHNodXVyYWlcIDsKK+WmmeaJgCA8IG15b3VzaG9cIDsKK+aYjuW+syA8IG1laXRva3VcIDsKK+mbo+eXhyA8IG5hbnNob3VcIDsKK+mbo+eXhSA8IG5hbmJ5b3VcIDsKK+eEoeihgCA8IG11a2V0c3VcIDsKK+eEoeiomOWQjSA8IG11a2ltZWlcIDsKK+aYlOW5tCA8IHNla2luZW5cIDsKK+eCkumjryA8IGNoYWFoYW5cIDsKK+iqmOeIhiA8IHl1dWJha3VcIDsKK+WklueCuiA8IGdhaXRhbWVcIDsKK+mch+eBvSA8IHNoaW5zYWlcIDsKK+aYpeWvkiA8IHNodW5rYW5cIDsKK+eIhuatuyA8IGJha3VzaGlcIDsKK+mDveitsOmBuCA8IHRvZ2lzZW5cIDsKK+e2suiGnCA8IG1vdW1ha3VcIDsKK+eGn+efpSA8IGp1a3VjaGlcIDsKK+aYjuW5tCA8IG15b3VuZW5cIDsKK+Wkqea4myA8IHRlbmJpa2lcIDsKK+S/neiCsuWckiA8IGhvaWt1ZW5cIDsKK+WnieWpvyA8IGFuZW11a29cIDsKK+e1gui7iiA8IHNodXVzaGFcIDsKK+eyvum6piA8IHNlaWJha3VcIDsKK+eGn+edoSA8IGp1a3VzdWlcIDsKK+e4q+eJqSA8IG51aW1vbm9cIDsKK+e3iue4myA8IGtpbmJha3VcIDsKK+eGn+ecoCA8IGp1a3VtaW5cIDsKK+S/neiCsuWZqCA8IGhvaWt1a2lcIDsKK+WiqOezuCA8IHN1bWlpdG9cIDsKK+mZsOiGsyA8IGthZ2V6ZW5cIDsKK+ipqeeahCA8IHNoaXRla2lcIDsKK+aYn+WtpiA8IHNlaWdha3VcIDsKK+aEm+WlveWutiA8IGFpa291a2FcIDsKK+mdkuaYpSA8IHNlaXNodW5cIDsKK+aah+S6uiA8IGhpbWFqaW5cIDsKK+mfs+WKmyA8IG9ucnlva3VcIDsKK+eCuumKgCA8IHRhbWVnaW5cIDsKK+iok+iCsiA8IGt1bicnaWt1XCA7CivlpaXmlrkgPCBva3VnYXRhXCA7Civni6nkurogPCBrYXJ5dWRvXCA7CivntK/pgLIgPCBydWlzaGluXCA7CivnhLzoiosgPCB5YWtpaW1vXCA7Civlp5Tku7vnirYgPCBpbmluam91XCA7Civpmaroh6MgPCBiYWlzaGluXCA7CivniafluKsgPCBib2t1c2hpXCA7CivlvqHmiqvpnLLnm64gPCBvaGlyb21lXCA7CivmlrDmoYggPCBzaGluJydhblwgOwor6ZqO57SaIDwga2Fpa3l1dVwgOwor54m55a6aIDwgdG9rdXRlaVwgOwor55So5Zmo55S7IDwgeW91a2lnYVwgOwor5pio5aSVIDwgc2FrdXl1dVwgOwor6Zq755y8IDwgc2VraWdhblwgOwor5L+d6aSK5omAIDwgaG95b3Vqb1wgOwor5a625bqt56eRIDwga2F0ZWlrYVwgOwor5aKX57WmIDwgem91a3l1dVwgOwor5LiN5ZCN6KqJIDwgZnVtZWl5b1wgOwor5pen5oKqIDwga3l1dWFrdVwgOwor5pWw5ru0IDwgc3V1dGVraVwgOwor57a+57W5IDwgYXlhZ2ludVwgOwor57Si6YGTIDwgc2FrdWRvdVwgOwor57WQ6KqeIDwga2V0c3Vnb1wgOwor5aWz5omLIDwgb24nJ25hZGVcIDsKK+eGseeLgiA8IG5la2t5b3VcIDsKK+Wls+aIvyA8IG55b3Vib3VcIDsKK+Wklua1tyA8IHNvdG91bWlcIDsKK+Wkp+assiA8IHRhaXlva3VcIDsKK+e1kOiolyA8IGtldHRha3VcIDsKK+WkluaziiA8IGdhaWhha3VcIDsKK+imhui8qiA8IGZ1a3VyaW5cIDsKK+aVtOa1gSA8IHNlaXJ5dXVcIDsKK+mgguS4iiA8IGNob3Vqb3VcIDsKK+S6lOi8quaXlyA8IGdvcmlua2lcIDsKK+eGseeHlyA8IGF0c3VrYW5cIDsKK+aXpeW9kyA8IGhpYXRhcmlcIDsKK+ezoOmbqCA8IG51a2FhbWVcIDsKK+aXp+W8iiA8IGt5dXVoZWlcIDsKK+eJueWkpyA8IHRva3VkYWlcIDsKK+imquiosSA8IG95YW1vdG9cIDsKK+aYpeWdiiA8IGhhcnVib3VcIDsKK+S9nOalreihoyA8IHNhZ3lvdWlcIDsKK+ipq+eKtiA8IHdhYmlqb3VcIDsKK+mbu+a1gSA8IGRlbnJ5dXVcIDsKK+acqOaIuOmKrSA8IGtpZG9zZW5cIDsKK+eJueWjsiA8IHRva3ViYWlcIDsKK+iAs+S4i+iFuiA8IGppa2FzZW5cIDsKK+eEoeiJsiA8IG11c2hva3VcIDsKK+irluaVtSA8IHJvbnRla2lcIDsKK+WutuW6reedgCA8IGthdGVpZ2lcIDsKK+mbgOeQgyA8IGphbmt5dXVcIDsKK+aWh+anmCA8IG1vbicneW91XCA7CivlpKfmpa0gPCB0YWlneW91XCA7Civml4XmiYAgPCB0YWJpc2hvXCA7Civns7jpi7ggPCBpdG9ub2tvXCA7CivlpJbpmbDpg6ggPCBnYWlpbmJ1XCA7CivnibnloLEgPCB0b2t1aG91XCA7Civmlofmpb0gPCBidW5yYWt1XCA7CivnhKHohbAgPCBtdWdvc2hpXCA7CivpnaLlvbEgPCBvbW9rYWdlXCA7CivnhZnnqoEgPCBlbnRvdHN1XCA7CivlopPnqbQgPCBib2tldHN1XCA7Civlkozoj5PlrZAgPCB3YWdhc2hpXCA7Civoqr/mm7ggPCBjaG91c2hvXCA7CivpnanluK8gPCBrYXdhb2JpXCA7Civml4XmhIEgPCByeW9zaHV1XCA7Civoh6rlnKjnlLsgPCBqaXphaWdhXCA7Civop6PohLEgPCBnZWRhdHN1XCA7CivmmLzliY0gPCBoaXJ1bWFlXCA7Civntprnt6ggPCB6b2t1aGVuXCA7CivogJXpgYvmqZ8gPCBrb3V1bmtpXCA7CivnhrHmvJQgPCBuZXRzdWVuXCA7Civpm6rmtJ4gPCBib25ib3JpXCA7Civnt4/nnaMgPCBzb3V0b2t1XCA7CivkuIDlm57lv4wgPCBpa2thaWtpXCA7CivplpPpmpkgPCBrYW5nZWtpXCA7CivkuI3lj6/op6MgPCBmdWtha2FpXCA7CivpnbTlsYsgPCBrdXRzdXlhXCA7Civmlo7mnI0gPCBzYWlmdWt1XCA7Civml6flsYUgPCBreXV1a3lvXCA7CivkuI3lj6/oppYgPCBmdWthc2hpXCA7CivlpKfmnKggPCB0YWlib2t1XCA7Civln47pg60gPCBqb3VrYWt1XCA7CivpmbjnqLIgPCByaWt1dG91XCA7Civnt4/nkIblupwgPCBzb3VyaWZ1XCA7CivlpLHmlawgPCBzaGlra2VpXCA7CivplovpmbMgPCBrYWljaGluXCA7CivlpLHmlZcgPCBzaGlwcGFpXCA7CivlpYfmipwgPCBraWJhdHN1XCA7CivkuozliIbmnKggPCBuaWJ1bmdpXCA7CivlpLHmlL8gPCBzaGlzc2VpXCA7CivoqI7nqbYgPCB0b3VreXV1XCA7CivpnIrmn6kgPCByZWlreXV1XCA7Civoqq3mnKwgPCBkb2t1aG9uXCA7CivpmLLoh60gPCBib3VzaHV1XCA7Civoqq3mm7ggPCBkb2t1c2hvXCA7Civniq/kurogPCBoYW4nJ25pblwgOwor5aWl5bqtIDwgb2t1bml3YVwgOwor5aaK5aigIDwgbmluc2hpblwgOwor5aWl5bqVIDwgb2t1em9rb1wgOwor54mn5ZywIDwgYm9rdWNoaVwgOwor5bqD6L6e6IuRIDwga291amllblwgOwor57eo54mpIDwgYW1pbW9ub1wgOwor5aSp5pW1IDwgdGVudGVraVwgOwor6ZyK5pyoIDwgcmVpYm9rdVwgOwor5aSc5puyIDwgeWFreW9rdVwgOwor57eP55S7IDwgc291a2FrdVwgOwor5aSa5pWw5rS+IDwgdGFzdXVoYVwgOwor6Zmj56ygIDwgamluZ2FzYVwgOwor6ZqG55ubIDwgcnl1dXNlaVwgOwor6KmV54K5IDwgaHlvdXRlblwgOwor5L+d6K236ICFIDwgaG9nb3NoYVwgOwor5aSc6ZaT6YOoIDwgeWFrYW5idVwgOwor5paH5pWZIDwgYnVua3lvdVwgOwor55WZ5a6I6Zu7IDwgcnVzdWRlblwgOwor5aSJ5qKDIDwgaGVudGVrb1wgOwor57Gz6bqmIDwgYmVpYmFrdVwgOwor57Sw6J66IDwga2lzaGFnb1wgOwor54ax5rCXIDwgbmV0c3VrZVwgOwor5pio5YasIDwgc2FrdXRvdVwgOwor5pil5YiGIDwgc2h1bmJ1blwgOwor6ZW36ZuoIDwgbmFnYWFtZVwgOwor5pen5aWXIDwga3l1dXRvdVwgOwor6Kqe5pyrIDwgZ29tYXRzdVwgOwor57On6YGTIDwgcnlvdWRvdVwgOwor5o6D6Zmk5qmfIDwgc291amlraVwgOwor6KWf6LazIDwgZXJpYXNoaVwgOwor6Ky55ZGKIDwga2lua29rdVwgOwor5LqL5YuZ5LyaIDwgamltdWthaVwgOwor5pat5b+1IDwgZGFuJyduZW5cIDsKK+aXpeWknCA8IG5pY2hpeWFcIDsKK+aXpeWklSA8IG5pc3Nla2lcIDsKK+aYpeWFiSA8IHNodW5rb3VcIDsKK+aUvua1gSA8IGhvdXJ5dXVcIDsKK+mch+aXpiA8IHNoaW50YW5cIDsKK+WlpeWxsSA8IG9rdXlhbWFcIDsKK+mdmeWvgiA8IHNlaWpha3VcIDsKK+S6i+WJjeW+jCA8IGppemVuZ29cIDsKK+iPqeaPkOaouSA8IGJvZGFpanVcIDsKK+eBq+mJoiA8IGhpYmFjaGlcIDsKK+e1tue4gSA8IHpldHN1ZW5cIDsKK+WkleaWuSA8IHl1dWdhdGFcIDsKK+eyl+mjnyA8IHNvc2hva3VcIDsKK+iyneeLrOalvSA8IGJhaWdvbWFcIDsKK+Wig+ebriA8IHNha2FpbWVcIDsKK+eEoemYsuWCmSA8IG11Ym91YmlcIDsKK+S4jeaAneitsCA8IGZ1c2hpZ2lcIDsKK+aXheWuoiA8IHJ5b2tha3VcIDsKK+S4jeepj+W9kyA8IGZ1b250b3VcIDsKK+aYreS7oyA8IHNob3VkYWlcIDsKK+eEoeethiA8IG11aGl0c3VcIDsKK+WkseaFiyA8IHNoaXR0YWlcIDsKK+e1kOiFuCA8IGtldGNob3VcIDsKK+eJueWFuCA8IHRva3V0ZW5cIDsKK+WPr+WhkeadkCA8IGthc296YWlcIDsKK+WkseaEjyA8IHNoaXRzdWlcIDsKK+eIhuW8viA8IGJha3VkYW5cIDsKK+eJueWFjSA8IHRva3VtZW5cIDsKK+aUr+a1gSA8IHNoaXJ5dXVcIDsKK+aPmumZuCA8IHlvdXJpa3VcIDsKK+imquiIuSA8IG95YWJ1bmVcIDsKK+mZuOeUoyA8IHJpa3VzYW5cIDsKK+mZuOeUnyA8IHJpa3VzZWlcIDsKK+mdouWjgSA8IG1lbnBla2lcIDsKK+aOoumzpSA8IHRhbmNob3VcIDsKK+e0hOiogCA8IHlha3VnZW5cIDsKK+ais+e2v+apnyA8IHNvbWVua2lcIDsKK+eyl+mbkSA8IHNvemF0c3VcIDsKK+eEoeaJi+mghiA8IG11dGVqdW5cIDsKK+mbu+aSgyA8IGRlbmdla2lcIDsKK+aVmeabuCA8IGt5b3VzaG9cIDsKK+mWk+i/kSA8IG1hZGppa2FcIDsKK+aWsOWxhSA8IHNoaW5reW9cIDsKK+e0uuiJsiA8IGtvbicnaXJvXCA7Civntpnnm64gPCB0c3VnaW1lXCA7Civpm7fmkoMgPCByYWlnZWtpXCA7CivlsL7nirboirEgPCBiaWpvdWthXCA7Civlob7nlJ8gPCBqdWt1c2VpXCA7Civoqr/lvKYgPCBjaG91Z2VuXCA7Civnh4PmlpkgPCBuZW5yeW91XCA7CivpmqDmu4UgPCBpbm1ldHN1XCA7CivlpKfmga8gPCB0YWlzb2t1XCA7Civpm4bmqKkgPCBzaHV1a2VuXCA7Civkvr/liKnlsYsgPCBiZW5yaXlhXCA7CivplovpgJogPCBrYWl0c3V1XCA7CivpmaPnl5sgPCBqaW50c3V1XCA7CivlpJbmiJogPCBnYWlzZWtpXCA7CivntrLnjJ8gPCBhbWlyeW91XCA7CivmlbXmiYsgPCB0ZWtpc2h1XCA7CivlpKflvrMgPCBkYWl0b2t1XCA7Civpm6Lml6UgPCByaW5pY2hpXCA7Civnsr7pgLIgPCBzaG91amluXCA7Civkuojnn6XlpKIgPCB5b2NoaW11XCA7Civnsr7pgJogPCBzZWl0c3V1XCA7CivnhYnnjYQgPCByZW5nb2t1XCA7CivlvqHnpZ7nsaQgPCBvbWlrdWppXCA7Civoq7jlm70gPCBzaG9rb2t1XCA7Civml6flkI0gPCBreXV1bWVpXCA7CivmmKDlhpnmqZ8gPCBlaXNoYWtpXCA7Civpm6PmlbUgPCBuYW50ZWtpXCA7Civkv53orbfnqI4gPCBob2dvemVpXCA7CivngJ3pnZIgPCByZWtpc2VpXCA7Civlj5nkuovmlocgPCBqb2ppYnVuXCA7Civml6flj4sgPCBreXV1eXV1XCA7CivntZDnuIEgPCBrZWNoaWVuXCA7Civoop7pvo0gPCBrb25yeW91XCA7CivmlrDlqZogPCBzaGlua29uXCA7Civoi7HkvJroqbEgPCBlaWthaXdhXCA7CivmloflvLEgPCBidW5qYWt1XCA7Civml6Xlj44gPCBuaXNzaHV1XCA7CivkuI3lj6/og70gPCBmdWthbm91XCA7Civpm5HmnKggPCB6b3Vib2t1XCA7CivoqqzlvpcgPCBzZXR0b2t1XCA7CivmmKDnlLvppKggPCBlaWdha2FuXCA7CivpnZblm70gPCBzZWlrb2t1XCA7CivlpKnluZUgPCB0ZW5tYWt1XCA7CivplrLopqcgPCBldHN1cmFuXCA7Civpnanlkb0gPCBrYWt1bWVpXCA7CivnuZTluIMgPCBzaG9rdWZ1XCA7Civml6XljbAgPCBuaWNoaWluXCA7CivnuYrlvLEgPCBzZW5qYWt1XCA7CivntLDohZUgPCBob3NvdWRlXCA7Civpm7bmiKYgPCB6ZXJvc2VuXCA7CivopprogIUgPCBrYWt1c2hhXCA7CivntYTnuZQgPCBzb3NoaWtpXCA7CivorKzkvJ0gPCBieXV1ZGVuXCA7Civoqpjmg5EgPCB5dXV3YWt1XCA7CivniafkurogPCBib2t1amluXCA7CivplbfovrogPCBjaG91aGVuXCA7CivpnIrlu58gPCByZWlieW91XCA7Civoqa7mlrkgPCBzZW5rYXRhXCA7CivniYfliY0gPCBrYXRhbWFlXCA7Civpoqjpm7LlhZAgPCBmdXV1bmppXCA7CivlnoLov7kgPCBzdWlqYWt1XCA7CivloqjmsYEgPCBib2t1anV1XCA7CivmlLnmmqYgPCBrYWlyZWtpXCA7CivpmKrnpZ4gPCBoYW5zaGluXCA7CivmlbXlvL4gPCB0ZWtpZGFuXCA7CivploDot6EgPCBtb256ZWtpXCA7Civnspfph5EgPCBhcmFnYW5lXCA7CivopqrnsbMgPCBzaGluYmVpXCA7CivmlY/mjbcgPCBiaW5zaG91XCA7CivniYjlhYMgPCBoYW5tb3RvXCA7CivmpZXlhoblvaIgPCBkYWVua2VpXCA7Civopovnv5IgPCBtaW5hcmFpXCA7CivmlrDlnLAgPCBzaGluY2hpXCA7CivmlL7mk7IgPCBob3V0ZWtpXCA7CivmvJTlpY/lrrYgPCBlbnNvdWthXCA7CivmlbfluIMgPCBzaGlraWZ1XCA7CivniZvkuLwgPCBneXV1ZG9uXCA7Civop5Lnm4YgPCBrYWt1Ym9uXCA7CivoqZTmm7ggPCBzaG91c2hvXCA7CivlpKflraYgPCBkYWlnYWt1XCA7Civlj6/loZHmgKcgPCBrYXNvc2VpXCA7Civlo4Hmnb8gPCBrYWJlaXRhXCA7CivooqvpmaTmlbAgPCBoaWpvc3V1XCA7CivmloflraYgPCBidW5nYWt1XCA7CivmlLvmkoMgPCBrb3VnZWtpXCA7CivkuozmrKHlhYMgPCBuaWppZ2VuXCA7Civnt5HmqLkgPCByeW9rdWp1XCA7CivniKrljbAgPCB0c3VtZWluXCA7CivmiYvmlofluqsgPCB0ZWJ1bmtvXCA7Civml6fkvosgPCBreXV1cmVpXCA7Civns57onb8gPCBrdXNvYmFlXCA7CivkuIDnrofmiYAgPCBpa2thc2hvXCA7CivkuojlgpnpmoogPCB5b2JpdGFpXCA7CivnlpHllY/nrKYgPCBnaW1vbmZ1XCA7CivnuZTlp6sgPCBvcmloaW1lXCA7CivntIXoibIgPCBiZW5paXJvXCA7CivpmbjmtbcgPCByaWt1a2FpXCA7CivntYLnq68gPCBzaHV1dGFuXCA7Civop5LnlaogPCBrYWRvYmFuXCA7Civlm7rlrprosrsgPCBrb3RlaWhpXCA7Civnsr7oqq0gPCBzZWlkb2t1XCA7CivnuZTlpbMgPCBzaG9rdWpvXCA7Civml6Xku5ggPCBoaWR6dWtlXCA7CivnhrHmhJsgPCBuZXRzdWFpXCA7CivlooPmtq8gPCBreW91Z2FpXCA7CivpnJzlpJwgPCBzaGltb3lvXCA7CivlpbPlgpEgPCBqb2tldHN1XCA7CivlpKnlpbMgPCB0ZW4nJ255b1wgOwor6KeS55O2IDwga2FrdWJpblwgOwor57Sh57i+IDwgYm91c2VraVwgOwor5pen5Li7IDwga3l1dXNodVwgOwor5aSn5aWzIDwgb29vbicnbmFcIDsKK+aVteWvviA8IHRla2l0YWlcIDsKK+ioiOa4rCA8IGtlaXNva3VcIDsKK+aWsOWTgSA8IHNoaW5waW5cIDsKK+aYjuayu+W6pyA8IG1laWppemFcIDsKK+eQhuaDs+WutiA8IHJpc291a2FcIDsKK+eEoeeGsSA8IG11bmV0c3VcIDsKK+Wcn+Wjh+WgtCA8IGRvdGFuYmFcIDsKK+S6jOasoeS8miA8IG5pamlrYWlcIDsKK+e3j+ahkCA8IHNvdWdpcmlcIDsKK+irluWRiiA8IHJvbmtva3VcIDsKK+eGseW/gyA8IG5lc3NoaW5cIDsKK+WlieWRiiA8IGhvdWtva3VcIDsKK+WkseWcsCA8IHNoaXRjaGlcIDsKK+e+qeWLmeaEnyA8IGdpbXVrYW5cIDsKK+aVsOWtpiA8IHN1dWdha3VcIDsKK+aSg+eglSA8IGdla2lzYWlcIDsKK+iqreWjsiA8IHlvbWl1cmlcIDsKK+aOmOmRvyA8IGt1c3Nha3VcIDsKK+mbueWusyA8IGh5b3VnYWlcIDsKK+e3j+afhCA8IHNvdWdhcmFcIDsKK+mciuWmmSA8IHJlaW15b3VcIDsKK+S4ieWPiei3ryA8IHNhbnNhcm9cIDsKK+WkieWuuSA8IGhlbicneW91XCA7Civml4Xlg6cgPCB0YWJpc291XCA7Civnhp/mha4gPCBqdWt1cnlvXCA7Civngo7oibIgPCBlbnNob2t1XCA7CivoqLPmnKwgPCB5YWt1aG9uXCA7Civloqjmm7ggPCBib2t1c2hvXCA7CivntJvns74gPCBmdW5reXV1XCA7Civmjqjph48gPCBzdWlyeW91XCA7Civmkp7nkIMgPCBkb3VreXV1XCA7CivlpJnlpJwgPCBzaHVrdXlhXCA7CivnhrHluqYgPCBuZXRzdWRvXCA7CivpnIflpK4gPCBzaGluJydvdVwgOwor5rOi5biD6Iy2IDwgaGFidWNoYVwgOwor57Sv56mNIDwgcnVpc2VraVwgOwor6KOP6YeYIDwgdXJha3VnaVwgOwor6KOP6YeRIDwgdXJhZ2FuZVwgOwor5pSq5ouMIDwga2FrdWhhblwgOwor6Zm45qmLIDwgcmlra3lvdVwgOwor6Ki85paHIDwgc2hvdW1vblwgOwor6LWk5ZWE5pyo6bOlIDwgYWthZ2VyYVwgOwor5LiN5oSb5oOzIDwgYnVhaXNvdVwgOwor6Ki65patIDwgc2hpbmRhblwgOwor5aSn5Zu9IDwgdGFpa29rdVwgOwor6Ki75paHIDwgY2h1dW1vblwgOwor57S656KnIDwga29ucGVraVwgOwor5LiA566H5bm0IDwgaWtrYW5lblwgOwor5pS55oKbIDwga2Fpc2h1blwgOwor57W254ShIDwgemV0c3VtdVwgOwor5aSW5aOBIDwgZ2FpaGVraVwgOwor5aGe5rqQIDwgc29rdWdlblwgOwor5aSn5Zi0IDwgb29oYXNoaVwgOwor5paw5YW1IDwgc2hpbnBlaVwgOwor6Kiz5paHIDwgeWFrdWJ1blwgOwor5LqI5YKZ6YeRIDwgeW9iaWtpblwgOwor5o6b6YeRIDwga2FrZWtpblwgOwor5pWX5bCGIDwgaGFpc2hvdVwgOwor5o6o6YCyIDwgc3Vpc2hpblwgOwor6ZuE5b+DIDwgeXV1c2hpblwgOwor5pW15aGBIDwgdGVraXJ1aVwgOwor57ay5qOaIDwgYW1pZGFuYVwgOwor6Zm45qOaIDwgcmlrdWhvdVwgOwor5LiN5Y+v55+lIDwgZnVrYWNoaVwgOwor5Zu96aKoIDwga29rdWZ1dVwgOwor6ZqG5pu/IDwgcnl1dXRhaVwgOwor57ea5o+PIDwgc2VuYnlvdVwgOwor6Kq/5ZCIIDwgY2hvdWdvdVwgOwor6I+p5o+Q5a+6IDwgYm9kYWlqaVwgOwor56Gr6buE5bGxIDwgaW91eWFtYVwgOwor6Zmw5qW1IDwgaW5reW9rdVwgOwor5aSP5aC0IDwgbmF0c3ViYVwgOwor57Sg5Zug5pWwIDwgc29pbnN1dVwgOwor6KSH6KO9IDwgZnVrdXNlaVwgOwor5aSW5ZynIDwgZ2FpYXRzdVwgOwor5LuP6Jit6KW/IDwgZnVyYW5zdVwgOwor54af5bm0IDwganVrdW5lblwgOwor57WQ55CDIDwga2Vra3l1dVwgOwor5aSW5Zu9IDwgZ2Fpa29rdVwgOwor5o6l6L6eIDwgc2V0c3VqaVwgOwor5LiN5ZCI55CGIDwgZnVnb3VyaVwgOwor57K+6JaEIDwgc2VpaGFrdVwgOwor5o6D6Zmk5ammIDwgc291amlmdVwgOwor5o2V6aOfIDwgaG9zaG9rdVwgOwor5pW15Zu9IDwgdGVra29rdVwgOwor6YeO5pqu5aSpIDwgeWFib3RlblwgOwor5aSJ5Z+fIDwgaGVuJydpa2lcIDsKK+S/neitt+WnlOWToSA8IGhvZ29paW5cIDsKK+mZveaapiA8IHlvdXJla2lcIDsKK+WutuWFt+etiSA8IGthZ3V0b3VcIDsKK+Wkp+WQjSA8IGRhaW15b3VcIDsKK+iWlOiWh+iJsiA8IGJhcmFpcm9cIDsKK+WbvembuyA8IGtva3VkZW5cIDsKK+Wkp+WPoyA8IG9vZ3VjaGlcIDsKK+S4jeaEieW/qyA8IGZ1eXVrYWlcIDsKK+i+suapn+WFtyA8IG5vdWtpZ3VcIDsKK+WbvemboyA8IGtva3VuYW5cIDsKK+i8uOmAgeiyuyA8IHl1c291aGlcIDsKK+m9siA8IG11c2hpYmFcIDsKK+mZveaYpSA8IHlvdXNodW5cIDsKK+eci+itt+WppiA8IGthbmdvZnVcIDsKK+WbvemamyA8IGtva3VzYWlcIDsKK+e0i+eroCA8IG1vbnNob3VcIDsKK+WcsOmBkyA8IGppbWljaGlcIDsKK+imqueOiSA8IG95YWRhbWFcIDsKK+W+oeelnueBqyA8IGdvamlua2FcIDsKK+aVheWunyA8IGtvaml0c3VcIDsKK+WbvemYsiA8IGtva3Vib3VcIDsKK+aUvuWwvyA8IGhvdW55b3VcIDsKK+aWh+WNmiA8IGJ1bmhha3VcIDsKK+S6iOWCmei7jSA8IHlvYmlndW5cIDsKK+aTr+aWpSA8IGhpbnNla2lcIDsKK+e4ruWbsyA8IHNodWt1enVcIDsKK+mWk+iGnCA8IGthbm1ha3VcIDsKK+Wkp+WKmyA8IGRhaXJpa2lcIDsKK+aOqOizniA8IHN1aXNob3VcIDsKK+a/gOmXmCA8IGdla2l0b3VcIDsKK+WkluWRqCA8IGdhaXNodXVcIDsKK+WPpOaWh+abuCA8IGtvbW9uam9cIDsKK+WbsOmboyA8IGtvbicnbmFuXCA7CivnuKblnZEgPCB0YXRla291XCA7CivntabmupAgPCBreXV1Z2VuXCA7CivpnLLku48gPCByb2Z1dHN1XCA7Civoh6rooZvmqKkgPCBqaWVpa2VuXCA7CivoqqHlkYogPCBrYWlrb2t1XCA7CivlnLDou7ggPCBjaGlqaWt1XCA7CivlpKflh7YgPCBkYWlreW91XCA7CivptqsgPCB0c3VndW1pXCA7CivopoHnm64gPCB5b3Vtb2t1XCA7CivntYTniYggPCBrdW1paGFuXCA7CivnuZTlhYMgPCBvcmltb3RvXCA7CivopZ/nq6AgPCBlcmlzaG91XCA7CivptaQgPCBpa2FydWdhXCA7Civpm5vlo4cgPCBoaW5hZGFuXCA7CivptYYgPCBjaGlkb3JpXCA7CivntJTnnJ8gPCBqdW5zaGluXCA7CivpmrflsZ4gPCByZWl6b2t1XCA7CivmlpzkuqQgPCBoYXN1a2FpXCA7CivnuYHliocgPCBoYW5nZWtpXCA7CivnhanmgqkgPCBib24nJ25vdVwgOwor5aOy5Zu9IDwgYmFpa29rdVwgOwor57SU55uKIDwganVuJydla2lcIDsKK+aWmeS6rSA8IHJ5b3V0ZWlcIDsKK+e3nuW4syA8IGRvbmNob3VcIDsKK+mwmCA8IG11cm9hamlcIDsKK+aVteWLoiA8IHRla2l6ZWlcIDsKK+ihqOmdoiA8IGh5b3VtZW5cIDsKK+mVt+iKiyA8IG5hZ2FpbW9cIDsKK+e0lOeZvSA8IGp1bnBha3VcIDsKK+mvsyA8IHN1a2Vzb3VcIDsKK+mYsuavkiA8IGJvdWRva3VcIDsKK+aVsOWMuSA8IHN1dWhpa2lcIDsKK+mbu+WNkyA8IGRlbnRha3VcIDsKK+e1gueCuSA8IHNodXV0ZW5cIDsKK+e3iuaApSA8IGtpbmt5dXVcIDsKK+aVteWJjSA8IHRla2l6ZW5cIDsKK+WkleWHqiA8IHl1dW5hZ2lcIDsKK+WQiOawo+mBkyA8IGFpa2lkb3VcIDsKK+e5muS5sSA8IHJ5b3VyYW5cIDsKK+e4hOWiqCA8IGpvdWJva3VcIDsKK+msmCA8IGthdHN1cmFcIDsKK+imqua9riA8IG95YXNoaW9cIDsKK+eCueeBq+WZqCA8IHRlbmtha2lcIDsKK+ijnOihgCA8IGhva2V0c3VcIDsKK+ims+a4rCA8IGthbnNva3VcIDsKK+eFruW5siA8IG5pYm9zaGlcIDsKK+e2seaJiyA8IHRzdW5hZGVcIDsKK+mZuOaIpiA8IHJpa3VzZW5cIDsKK+e+veS6jOmHjSA8IGhhYnV0YWVcIDsKK+mbhuWhtSA8IHNodXVqaW5cIDsKK+imj+a6luWMliA8IGtpanVua2FcIDsKK+malOW5tCA8IGtha3VuZW5cIDsKK+mrmOW6puW3riA8IGtvdWRvc2FcIDsKK+eEoeacrSA8IG11c2F0c3VcIDsKK+eEoeaciCA8IG11Z2V0c3VcIDsKK+eGseWUsSA8IG5lc3Nob3VcIDsKK+WvhOS7mOmHkSA8IGtpZnVraW5cIDsKK+aWieS4gCA8IHNlaWl0c3VcIDsKK+eBq+WPo+a5liA8IGtha291a29cIDsKK+Wil+W8tyA8IHpvdWt5b3VcIDsKK+mZuuaCqiA8IGtlbicnYWt1XCA7CivplbfogIEgPCBjaG91cm91XCA7CivmlL/msrvlsYsgPCBzZWlqaXlhXCA7CivooYzpoK0gPCBneW91dG91XCA7CivlgIvjgIXkurogPCBrb2tvamluXCA7CivpmqDlr4YgPCBvbm1pdHN1XCA7CivpnI3kubEgPCBrYWt1cmFuXCA7Civlm73pgZMgPCBrb2t1ZG91XCA7CivntZDmsLcgPCBrZXBweW91XCA7Civpm4blm6MgPCBzaHV1ZGFuXCA7CivmlL/msrvlrrYgPCBzZWlqaWthXCA7Civlm73pgKMgPCBrb2t1cmVuXCA7CivpgYvllrbosrsgPCB1bicnZWloaVwgOwor6Zmz5oOFIDwgY2hpbmpvdVwgOwor54Gr5664IDwgaGliYXNoaVwgOwor6J2m5aS36I+KIDwgZXpvZ2lrdVwgOwor5aOy5Y2cIDwgYmFpYm9rdVwgOwor5pWX5YyXIDwgaGFpYm9rdVwgOwor5aKX5bmFIDwgem91ZnVrdVwgOwor5L+d6K235p6XIDwgaG9nb3JpblwgOwor5r2u6aiSIDwgc2hpb3NhaVwgOwor5pyo5oi455WqIDwga2lkb2JhblwgOwor57Si54S2IDwgc2FrdXplblwgOwor57a+5biDIDwgYXlhbnVub1wgOwor57KY6IacIDwgbmVubWFrdVwgOwor5pGC55CGIDwgc2V0c3VyaVwgOwor6Zuq5YakIDwgc2V0c3VlblwgOwor5aKo5a6IIDwgYm9rdXNodVwgOwor57KJ6Iy2IDwga29uYWNoYVwgOwor6KeS5p2QIDwga2FrdXphaVwgOwor57WM5q20IDwga2VpcmVraVwgOwor6Zui5YilIDwgcmliZXRzdVwgOwor6ZeY54mbIDwgdG91Z3l1dVwgOwor5pGp5ruFIDwgbWFtZXRzdVwgOwor5Zu96LuNIDwga29rdWd1blwgOwor5r+r6Ke0IDwgcmFuc2hvdVwgOwor5pWZ5YW4IDwga3lvdXRlblwgOwor5Zyw6KGoIDwgY2hpaHlvdVwgOwor5o6o6JasIDwgc3VpeWFrdVwgOwor6Zmz5byBIDwgY2hpbmJlblwgOwor54Ks54e1IDwga290YXRzdVwgOwor6KGM6ZaTIDwgZ3lvdWthblwgOwor6ZaL56uLIDwga2Fpcnl1dVwgOwor5pKe5pyoIDwgc2h1bW9rdVwgOwor5rWF55+l5oG1IDwgYXNhZGppZVwgOwor6ZuR5YuZIDwgemF0c3VtdVwgOwor57Sw5rWBIDwgc2Fpcnl1dVwgOwor6ZuG5ZCIIDwgc2h1dWdvdVwgOwor5Zyw6JyCIDwgamliYWNoaVwgOwor6Z2S6LGM6LGGIDwgYW9lbmRvdVwgOwor6Zm65bO7IDwga2Vuc2h1blwgOwor6KGX6YyyIDwgZ2Fpcm9rdVwgOwor5aWz5LiI5aSrIDwgam9qb3VidVwgOwor5YaG6KiY5Y+3IDwgZW5raWdvdVwgOwor6ZuR5YmHIDwgemFzc29rdVwgOwor6KOF6JasIDwgc291eWFrdVwgOwor5Zu96LOTIDwga29rdWhpblwgOwor6Zm45bK4IDwgcmlrdWdhblwgOwor5aGX5oq5IDwgdG9tYXRzdVwgOwor6Zm95bCEIDwgaGl6YXNoaVwgOwor6Zai55m9IDwga2FucGFrdVwgOwor54Sm5oWuIDwgc2hvdXJ5b1wgOwor5Lqc5a+S5bivIDwgYWthbnRhaVwgOwor5oyv6Yi0IDwgc2hpbnJlaVwgOwor6ZuR5YW1IDwgem91aHlvdVwgOwor6Zqj5Zu9IDwgcmluZ29rdVwgOwor6ZuA5Y2TIDwgamFudGFrdVwgOwor6Zuq5LitIDwgc2V0Y2h1dVwgOwor5aKo5aCkIDwgYm9rdXRlaVwgOwor6KiX5a6jIDwgdGFrdXNlblwgOwor5pCN55uKIDwgc29uJydla2lcIDsKK+mZo+W5lSA8IGppbm1ha3VcIDsKK+axn+aIuOW3nSA8IGVkb2dhd2FcIDsKK+eBsOeavyA8IGhhaXphcmFcIDsKK+e1kOadnyA8IGtlc3Nva3VcIDsKK+eBsOeZvSA8IGthaWhha3VcIDsKK+imquagqiA8IG95YWthYnVcIDsKK+W5vOWFkOiqniA8IHlvdWppZ29cIDsKK+mOuSA8IGthc3VnYWlcIDsKK+WbveirliA8IGtva3Vyb25cIDsKK+e3keWcnyA8IHJ5b2t1ZG9cIDsKK+a/gOirliA8IGdla2lyb25cIDsKK+aal+aal+ijoSA8IGFuJydhbnJpXCA7CivkuI3mtYTloLQgPCBmdWpvdWJhXCA7CivopoHmsYIgPCB5b3VreXV1XCA7Civpi6kgPCBraXNzYWtpXCA7CivnhrHkuK0gPCBuZXRjaHV1XCA7Civmua/msrvloLQgPCB0b3VqaWJhXCA7Civoo4/ohbkgPCB1cmFoYXJhXCA7CivoqZXliKQgPCBoeW91YmFuXCA7CivntI3mtrwgPCBub3VyeW91XCA7Civlm7PoqqwgPCB6dXNldHN1XCA7CivplpPnlLcgPCBtYW90b2tvXCA7CivmkbrmnKwgPCBzaG91aG9uXCA7CivohLPlkbPlmYwgPCBub3VtaXNvXCA7Civpm5HkuosgPCB6YXRzdWppXCA7CivlrZDnlLvpnaIgPCBrb2dhbWVuXCA7Civntbbmga8gPCB6ZXNzb2t1XCA7CivpmaPlrrkgPCBqaW4nJ3lvdVwgOwor6Zm45aSnIDwgcmlrdWRhaVwgOwor6KSl55ihIDwgam9rdXNvdVwgOwor57KX562LIDwgYXJhc3VqaVwgOwor6ZW355+tIDwgY2hvdXRhblwgOwor6Kaq5pa5IDwgb3lha2F0YVwgOwor5Y+v6KaW5YyWIDwga2FzaGlrYVwgOwor6Kit5Za2IDwgc2V0c3VlaVwgOwor57W15b+DIDwgZWdva29yb1wgOwor5oud6aCYIDwgaGFpcnlvdVwgOwor57W25b6MIDwgemV0c3Vnb1wgOwor5LiN5rOo5oSPIDwgZnVjaHV1aVwgOwor57KY56igIDwgbmVuY2h1dVwgOwor5pKu5b2xIDwgc2F0c3VlaVwgOwor6K236KGb6ImmIDwgZ29laWthblwgOwor5aGp5a6zIDwgc2hpb2dhaVwgOwor6KOc57a0IDwgaG90ZXRzdVwgOwor56+k6L6yIDwgdG9rdW5vdVwgOwor5o+u55m6IDwga2loYXRzdVwgOwor54OP5pyoIDwga29rdXRhblwgOwor5qyh5omT6ICFIDwgamlkYXNoYVwgOwor5aCG5pyxIDwgdHN1aXNodVwgOwor6Zm45ZywIDwgcmlrdWNoaVwgOwor5aKD5Z+fIDwga3lvdWlraVwgOwor5oqr6Zyy5a60IDwgaGlyb3VlblwgOwor54Wn5ZCIIDwgc2hvdWdvdVwgOwor6KmV5LydIDwgaHlvdWRlblwgOwor6Ieq6KGb5a6YIDwgamllaWthblwgOwor5Z6L55WqIDwga2F0YWJhblwgOwor54S85aOyIDwgc2h1dW1haVwgOwor55WZ5a6I55WqIDwgcnVzdWJhblwgOwor6KSH55y8IDwgZnVrdWdhblwgOwor5Lqc6Z+z6YCfIDwgYW9uc29rdVwgOwor54Sh5a6/IDwgbXVzaHVrdVwgOwor6KeS5bi9IDwga2FrdWJvdVwgOwor6ZW355S3IDwgY2hvdW5hblwgOwor6Kaq5oyHIDwgb3lheXViaVwgOwor6KeS5bivIDwga2FrdW9iaVwgOwor54Sh5a6fIDwgbXVqaXRzdVwgOwor57Si5p2hIDwgc2FrdWpvdVwgOwor57eP5YmHIDwgc291c29rdVwgOwor6LmEIDwgaGlkenVtZVwgOwor5aKX5Y+OIDwgem91c2h1dVwgOwor57a+5Y+WIDwgYXlhdG9yaVwgOwor57aa5aCxIDwgem9rdWhvdVwgOwor5aCx5b6zIDwgaG91dG9rdVwgOwor5pGp5pOmIDwgbWFzYXRzdVwgOwor5aCx5b6pIDwgaG91ZnVrdVwgOwor5b6h5rOo5oSPIDwgZ29jaHV1aVwgOwor6KaL5paZIDwga2VucnlvdVwgOwor6KGo6KOFIDwgaHlvdXNvdVwgOwor5Zu96JGsIDwga29rdXNvdVwgOwor6KW/5pqmIDwgc2VpcmVraVwgOwor57Gg57WhIDwgcm91cmFrdVwgOwor5Yy756eR5a2mIDwgaWthZ2FrdVwgOwor57KX55quIDwgYXJha2F3YVwgOwor54Kt5p+xIDwgdGFuY2h1dVwgOwor6Kaz5b+1IDwga2FuJyduZW5cIDsKK+e0lOactCA8IGp1bmJva3VcIDsKK+iok+WRiiA8IGt1bmtva3VcIDsKK+ilv+aXpSA8IG5pc2hpYmlcIDsKK+exs+epgCA8IGJlaWtva3VcIDsKK+eVsOaWueaApyA8IGlob3VzZWlcIDsKK+aTgeWjgSA8IHlvdWhla2lcIDsKK+ioreWCmSA8IHNldHN1YmlcIDsKK+ihgOixhiA8IGNoaW1hbWVcIDsKK+Wcp+e4riA8IGFzc2h1a3VcIDsKK+e3kuS9nCA8IHNob3Nha3VcIDsKK+eEoemRkeafuyA8IG11a2Fuc2FcIDsKK+e0muaVsCA8IGt5dXVzdXVcIDsKK+e0i+acjSA8IG1vbnB1a3VcIDsKK+ijleemjyA8IHl1dWZ1a3VcIDsKK+aOm+eulyA8IGtha2V6YW5cIDsKK+e1teWnvyA8IGVzdWdhdGFcIDsKK+isrCA8IGF5YW1hcmlcIDsKK+WcsOexjSA8IGNoaXNla2lcIDsKK+S6jOeVquebriA8IG5pYmFubWVcIDsKK+aOoueptiA8IHRhbmt5dXVcIDsKK+eykueVjCA8IHJ5dXVrYWlcIDsKK+ehrOWMluayuSA8IGtvdWtheXVcIDsKK+aQjea1gSA8IHNvbnJ5dXVcIDsKK+iqvCA8IHlvc2hpbWlcIDsKK+aYoOeUu+elrSA8IGVpZ2FzYWlcIDsKK+iqriA8IHlhc2FzaGlcIDsKK+a8humjnyA8IHNoaWtrdWlcIDsKK+aYoOeUu+ekviA8IGVpZ2FzaGFcIDsKK+eCueaPjyA8IHRlbmJ5b3VcIDsKK+S4jeato+imjyA8IGZ1c2Vpa2lcIDsKK+iNiuajmOe3miA8IGJhcmFzZW5cIDsKK+aLk+mKgCA8IHRha3VnaW5cIDsKK+e1tuWjgSA8IHplcHBla2lcIDsKK+aFsOmciuelrSA8IGlyZWlzYWlcIDsKK+WtpuagoeWMuyA8IGdha2tvdWlcIDsKK+mZuOWFtSA8IHJpa3VoZWlcIDsKK+e2seWFtyA8IHRzdW5hZ3VcIDsKK+eyl+eOiSA8IGFyYXRhbWFcIDsKK+e2suWFgyA8IGFtaW1vdG9cIDsKK+iogOWPiiA8IGdlbmt5dXVcIDsKK+mHkeaWh+WtlyA8IGtpbm1vamlcIDsKK+ezuOaeoCA8IGl0b3dha3VcIDsKK+mZpOWNtCA8IGpva3lha3VcIDsKK+a8q+mMsiA8IG1hbnJva3VcIDsKK+maj+S4gCA8IHp1aWljaGlcIDsKK+ezuOadiSA8IGl0b3N1Z2lcIDsKK+eBsOauuyA8IGhhaWdhcmFcIDsKK+aRguaUvyA8IHNlc3Nob3VcIDsKK+ilhSA8IGNoaWhheWFcIDsKK+WhqeWRsyA8IHNoaW9hamlcIDsKK+e1kOWwviA8IGtldHN1YmlcIDsKK+e0hOaVsCA8IHlha3VzdXVcIDsKK+mYsuWjgSA8IGJvdWhla2lcIDsKK+W+oeazleW6piA8IGdvaGF0dG9cIDsKK+WhgeWjgSA8IHJ1aWhla2lcIDsKK+e1kOWvqSA8IGtlc3NoaW5cIDsKK+aLmemAnyA8IHNlc3Nva3VcIDsKK+aSruWcnyA8IHNhdHN1ZG9cIDsKK+awl+S/nemkiiA8IGtpaG95b3VcIDsKK+igjiA8IHV3YWJhbWlcIDsKK+mJhOeBq+WgtCA8IHRla2thYmFcIDsKK+WLpOWLmeWToSA8IGtpbm11aW5cIDsKK+inkuWcsCA8IGthZG9jaGlcIDsKK+e1jOWtpiA8IGtlaWdha3VcIDsKK+eyi+eLgiA8IHN1aWt5b3VcIDsKK+ijj+eZvSA8IHVyYWppcm9cIDsKK+WhteWFpSA8IGdvbWlpcmVcIDsKK+eVsOaYn+S6uiA8IGlzZWlqaW5cIDsKK+e0sOW4ryA8IGhvc29vYmlcIDsKK+ichiA8IHNoaWppbWlcIDsKK+eEoeWPoyA8IG11a3VjaGlcIDsKK+Wft+W/tSA8IHNodXVuZW5cIDsKK+mZuOS4iiA8IHJpa3Vqb3VcIDsKK+aYoOeUu+eVjCA8IGVpZ2FrYWlcIDsKK+a8q+mBiiA8IG1hbicneXV1XCA7CivntbbllLEgPCB6ZXNzaG91XCA7CivombEgPCBzaGlyYW1pXCA7CivkupTnlb/lhoUgPCBnb2tpbmFpXCA7CivlvqHnoLTnrpcgPCBnb2hhc2FuXCA7CivlnLDnm64gPCBjaGltb2t1XCA7CivlkKblrproqp4gPCBoaXRlaWdvXCA7CivnhKHlipsgPCBtdXJ5b2t1XCA7Civolb4gPCB0c3Vib21pXCA7Civmir3pgbggPCBjaHV1c2VuXCA7Civntbblj6sgPCB6ZWtreW91XCA7CivpgZXmhrLmgKcgPCBpa2Vuc2VpXCA7CivloanljJbpioAgPCBlbmthZ2luXCA7Civlm73nsosgPCBrb2t1c3VpXCA7Civplonmpa0gPCBoZWlneW91XCA7CivnsbPni6wgPCBiZWlkb2t1XCA7CivmjK/oiJ4gPCBmdXJ1bWFpXCA7Civkv53orbflj7ggPCBob2dvc2hpXCA7CivplbfmrYwgPCBuYWdhdXRhXCA7CivntI3lvpcgPCBuYXR0b2t1XCA7CivlnJ/nnYAgPCBkb2NoYWt1XCA7Civlm73nrYkgPCBrb2t1dG91XCA7CivloILlroggPCBkb3Vtb3JpXCA7Civmi53orIEgPCBoYWlldHN1XCA7CivlvpfmhI/msJcgPCB0b2t1aWdlXCA7CivmkqTlj44gPCB0ZXNzaHV1XCA7Civnga/mmI4gPCB0b3VteW91XCA7Civmi53oqq0gPCBoYWlkb2t1XCA7CivnrYnplpEgPCBuYW96YXJpXCA7Civpj6TpqqggPCBydWtvdHN1XCA7CivmiYvntLDlt6UgPCB0ZXphaWt1XCA7CivoiI7liKnloakgPCBzaGFyaWVuXCA7CivlnKjnlZkgPCB6YWlyeXV1XCA7CivmkI3mlpkgPCBzb25yeW91XCA7CivlnK3nkqcgPCBrZWloZWtpXCA7Civmj4/ms5UgPCBieW91aG91XCA7Civopqrppqzpub8gPCBveWFiYWthXCA7CivoiJ7ouIrlrrYgPCBidXRvdWthXCA7Civlm73nqI4gPCBrb2t1emVpXCA7CivlpYflvaLlhZAgPCBraWtlaWppXCA7CivploDmn7EgPCBtb25jaHV1XCA7CivljYjlvozkuK0gPCBnb2dvanV1XCA7CivoiYAgPCBoYXNoaWtlXCA7Civlm7Dnqq4gPCBrb25reXV1XCA7CivooajntJkgPCBoeW91c2hpXCA7Civng4jlpbMgPCByZXRzdWpvXCA7Civoqa3lvIHlrrYgPCBraWJlbmthXCA7CivopqrlloQgPCBzaGluemVuXCA7CivmvKvoqq0gPCBtYW5kb2t1XCA7CivplqLmiYAgPCBzZWtpc2hvXCA7Civns7jlupUgPCBpdG96b2tvXCA7CivmvKvoqZUgPCBtYW5weW91XCA7CivopovlooMgPCBtaXNha2FpXCA7CivogaIgPCBzaGlrYXRvXCA7Civog4PmtJfmtYQgPCBpc2Vuam91XCA7CivmipjovrwgPCBvcmlrb21pXCA7CivkuI3lkIzljJYgPCBmdWRvdWthXCA7Civnv7wgPCB0c3ViYXNhXCA7CivnlbDmlZnlvpIgPCBpa3lvdXRvXCA7CivmjojniLUgPCBqdXNoYWt1XCA7Civpj6HpnaIgPCBreW91bWVuXCA7Civlm7rnnYAgPCBrb2NoYWt1XCA7CivmjqjmuKwgPCBzdWlzb2t1XCA7Civlm73nm4ogPCBrb2t1ZWtpXCA7Civmua/liqDmuJsgPCB5dWthZ2VuXCA7CivntITlrpogPCB5YWt1am91XCA7CivpnZ7oqrLnqI4gPCBoaWthemVpXCA7Civlkozmpb3lmaggPCB3YWdha2tpXCA7CivntbHkuIAgPCB0b3VpdHN1XCA7Civplovmi5MgPCBrYWl0YWt1XCA7Civoo5zmrrogPCBob3NhdHN1XCA7Civns7jlsZEgPCBpdG9rdXp1XCA7CivpgZXms5XogIUgPCBpaG91c2hhXCA7CivmkoPliaMgPCBnZWtpa2VuXCA7CivmiYHpoY0gPCBoZW5nYWt1XCA7CivmvJToqqwgPCBlbnpldHN1XCA7CivmiYDpoJggPCBzaG9yeW91XCA7Civnq7nppqwgPCBjaGlrdWJhXCA7Civlm73nlKMgPCBrb2t1c2FuXCA7CivooYDnuIEgPCBrZXRzdWVuXCA7CivopIfmlrkgPCBmdWt1aG91XCA7CivnspfmnKsgPCBzb21hdHN1XCA7Civpjq7prYIgPCBjaGluZ29uXCA7CivopIfmlbAgPCBmdWt1c3V1XCA7CivmkI3lvpcgPCBzb250b2t1XCA7CivloJXlipsgPCBkYXJ5b2t1XCA7CivovLjpgIHmqZ8gPCB5dXNvdWtpXCA7CivkuI7ph47lhZogPCB5b3lhdG91XCA7CivooYDns4ogPCBjaGlub3JpXCA7CivlvJXngavngrkgPCBpbmthdGVuXCA7CivmvLjokL0gPCB6ZW5yYWt1XCA7CivnspfmlrkgPCBhcmFrYXRhXCA7Civns7jlp6sgPCBpdG9oaW1lXCA7Civnr4DnvqkgPCBzZXRzdWdpXCA7Civnvr3lrZDmnb8gPCBoYWdvaXRhXCA7CivnrYbouZ8gPCBoaXNzZWtpXCA7Civpn7PmspnmsbAgPCBvdG9zYXRhXCA7Civnpr7mnKznp5EgPCBrYWhvbmthXCA7CivkuI3lj6/liIYgPCBmdWthYnVuXCA7CivntYLlgKQgPCBvd2FyaW5lXCA7CivooYDnrYsgPCBjaGlzdWppXCA7Civln47lo4EgPCBqb3VoZWtpXCA7CivpvKDlvoTpg6ggPCBzb2tlaWJ1XCA7CivlnLDmrrsgPCBjaGlrYWt1XCA7CivnrZborIAgPCBzYWt1Ym91XCA7Civono3pgJogPCB5dXVkenV1XCA7CivplovluZUgPCBrYWltYWt1XCA7CivllqvpqZogPCBiaWtrdXJpXCA7CivplonluZUgPCBoZWltYWt1XCA7CivpjpbpqqggPCBzYWtvdHN1XCA7CivmuoDpoY0gPCBtYW5nYWt1XCA7CivooZfnnYAgPCBtYWNoaWdpXCA7CivlnKfmrrogPCBhc3NhdHN1XCA7Civpjq7pnZkgPCBjaGluc2VpXCA7CivnhKHmioDlt6cgPCBtdWdpa291XCA7Civon4von4AgPCBrb29yb2dpXCA7Civmi53ogbQgPCBoYWljaG91XCA7Civmv4HngrkgPCBkYWt1dGVuXCA7CivooI/nvLYgPCBrYW5pa2FuXCA7CivnpI4gPCBpc2hpenVlXCA7CivplbflvoQgPCBjaG91a2VpXCA7Civpg73orbDkvJogPCB0b2dpa2FpXCA7CivmjqjmnI0gPCBzdWlmdWt1XCA7CivplpHlr4IgPCBrYW5qYWt1XCA7Civns77llY8gPCBreXV1bW9uXCA7Civoo4/mm7ggPCB1cmFnYWtpXCA7CivkuojlgpnmoKEgPCB5b2Jpa291XCA7CivplbflubwgPCBjaG91eW91XCA7CivmkL7lj5YgPCBzYWt1c2h1XCA7CivloIXkurogPCBrYXRhamluXCA7CivlnJ/mqYsgPCBkb2Jhc2hpXCA7CivoprPkuJbpn7MgPCBrYW56ZW9uXCA7CivmiYvov5EgPCB0ZWRqaWthXCA7Civoo4/mlrkgPCB1cmFrYXRhXCA7CivljYrpgY7ljrsgPCBoYW5rYWtvXCA7CivkuI3lj4LliqAgPCBmdXNhbmthXCA7Civmv4DmuJsgPCBnZWtpZ2VuXCA7Civnspflv70gPCBzb2tvdHN1XCA7CivntI3lhaUgPCBub3VueXV1XCA7CivmioDooZMgPCBnaWp1dHN1XCA7CivmipXolqwgPCB0b3V5YWt1XCA7Civmv4DmtaogPCBnZWtpcm91XCA7CivmgaPmhI/mgKcgPCBzaGlpc2VpXCA7Civlm73ms5UgPCBrb2t1aG91XCA7CivnspLlvoQgPCByeXV1a2VpXCA7CivnlKYgPCB5b21pZ2FlXCA7Civku5jliqDnqI4gPCBmdWthemVpXCA7Civlm73msJEgPCBrb2t1bWluXCA7Civnsr7lppkgPCBzZWlteW91XCA7Civmv4HmsLQgPCBkYWt1c3VpXCA7CivmmYLoqIjluqcgPCB0b2tlaXphXCA7CivmjpLmlqUgPCBoYWlzZWtpXCA7Civpg6jlsYvku6MgPCBoZXlhZGFpXCA7Civmr43pn7PmgKcgPCBib2luc2VpXCA7CivooYznirYgPCBneW91am91XCA7Civonbbosp0gPCBjaG91Z2FpXCA7CivkuI3lvpfmhI8gPCBmdXRva3VpXCA7CivopZ/lhYMgPCBlcmltb3RvXCA7Civpm7voqbHmqZ8gPCBkZW53YWtpXCA7CivnhKHmi4Xkv50gPCBtdXRhbnBvXCA7Civmh7jpmpQgPCBrZW5rYWt1XCA7Civoo4/mioAgPCB1cmF3YXphXCA7CivlnKjmlrkgPCB6YWlrYXRhXCA7Civnq7novKogPCBjaGlrdXdhXCA7CivmjpLmkoMgPCBoYWlnZWtpXCA7Civmjqrovp7ms5UgPCBzb2ppaG91XCA7CivmjqHmip4gPCBzYWl0YWt1XCA7CivlhavkuZ3liIYgPCBoYWtrdWJ1XCA7Civonp/omasgPCBtZWljaHV1XCA7Civngb3ljoQgPCBzYWl5YWt1XCA7CivlnJ/ml6UgPCBkb25pY2hpXCA7CivmoLnlpKrmnb8gPCBuZWRhaXRhXCA7CivmiJDpioAgPCBuYXJpZ2luXCA7CivniZwgPCB1c2hpaGVuXCA7Civnr4TnlocgPCBoYW5jaHV1XCA7CivngavliqDmuJsgPCBoaWthZ2VuXCA7Civkupznh5DphbggPCBhcmluc2FuXCA7CivmmYLoqIjlsYsgPCB0b2tlaXlhXCA7Civmjozmj6EgPCBzaG91YWt1XCA7CivmiJDph5EgPCBuYXJpa2luXCA7CivmvZTnmb0gPCBrZXBwYWt1XCA7CivpnZLkuozmiY0gPCBhb25pc2FpXCA7CivmvZTnmZYgPCBrZXBwZWtpXCA7CivmvKLnsY0gPCBrYW5zZWtpXCA7CivlnKfmjqUgPCBhc3NldHN1XCA7Civph47mlL7lm7MgPCBub2hvdXp1XCA7CivnspLlrZAgPCByeXV1c2hpXCA7CivmiY3oppogPCBzYWlrYWt1XCA7Civngavlj6MgPCBoaWd1Y2hpXCA7CivmiYDorIIgPCBpd2F5dXJ1XCA7CivplpPlj6MgPCBtYWd1Y2hpXCA7CivplqPlhoUgPCBrYWt1bmFpXCA7CivlubzlhZDmnJ8gPCB5b3VqaWtpXCA7CivmuoDouqsgPCBtYW5zaGluXCA7CivmjInmkanoho8gPCBhbm1ha291XCA7CivmsJfoi6blirQgPCBraWd1cm91XCA7Civoo4/luq0gPCB1cmFuaXdhXCA7Civoo4/lupcgPCB1cmFkYW5hXCA7Civlm73mnIkgPCBrb2t1eXV1XCA7CivmlL/lupzmoYggPCBzZWlmdWFuXCA7Civlm73mm7ggPCBrb2t1c2hvXCA7CivngavlipsgPCBrYXJ5b2t1XCA7Civnq5zou4ogPCByeXV1c2hhXCA7CivkuojlgpnlvbkgPCB5b2JpZWtpXCA7CivmiJHovKkgPCB3YWdhaGFpXCA7CivmuoDotrMgPCBtYW56b2t1XCA7CivooYDmva4gPCBjaGlzaGlvXCA7CivmvIbntbUgPCB1cnVzaGllXCA7CivpvbfpvaogPCBha3VzZWt1XCA7CivlnLDlv4MgPCBjaGlzaGluXCA7CivnqbrppqwgPCBrYXJhdW1hXCA7Civlm73mlocgPCBrb2t1YnVuXCA7Civlm73mlZkgPCBrb2treW91XCA7Civlm73mlL8gPCBrb2t1c2VpXCA7CivnsbPlr6kgPCBiZWlzaGluXCA7CivlnanloJ0gPCBydXRzdWJvXCA7CivkuI3pgZPnkIYgPCBmdWRvdXJpXCA7Civph5HnhKHlnqIgPCBraW5tdWt1XCA7Civlm6PmoJcgPCBkb25ndXJpXCA7Civlm7PmmJ8gPCB6dWJvc2hpXCA7Civoo4/lsbEgPCB1cmF5YW1hXCA7CivmipjntJkgPCBvcmlnYW1pXCA7CivooYzmsLQgPCBneW91enVpXCA7Civnsonlo4EgPCBmdW5wZWtpXCA7Civlgb3pgKDljbAgPCBnaXpvdWluXCA7Civnq4vouqsgPCByaXNzaGluXCA7Civnq7noo70gPCB0YWtlc2VpXCA7CivnhKHmibnliKQgPCBtdWhpaGFuXCA7CivooYDmsoggPCBrZXRjaGluXCA7CivmiYvolJMgPCB0ZWR6dXJ1XCA7Civmr64gPCBtdXNoaXJ1XCA7Civlm7Pmm7josrsgPCB0b3Nob2hpXCA7Civngavku5ggPCBoaXRzdWtlXCA7CivlubjpgYvlhZAgPCBrb3V1bmppXCA7CivllJDpu40gPCB0b3VraWJpXCA7CivlnLDls6EgPCBjaGlreW91XCA7CivloanmsLTmuZYgPCBlbnN1aWtvXCA7CivmtYHluIPmnKwgPCBydWZ1Ym9uXCA7Civnr4nmuK8gPCBjaGlra291XCA7CivnqbrpmpkgPCBrdXVnZWtpXCA7CivmipznqbQgPCBudWtlYW5hXCA7CivlsbHojLboirEgPCBzYXphbmthXCA7Civnp7vmsJHms5UgPCBpbWluaG91XCA7CivnqbrpmbggPCBrdXVyaWt1XCA7CivprLznmb7lkIggPCBvbml5dXJpXCA7CivplpPkuK0gPCBhaWRhanV1XCA7CivmjpLlsL8gPCBoYWlueW91XCA7Civlm73miYsgPCBrb2t1c2h1XCA7CivooajmmI4gPCBoeW91bWVpXCA7CivlpYjoia/nnIwgPCBuYXJha2VuXCA7CivkuI3li53miYsgPCBmdWthdHRlXCA7Civlm57mlZkgPCBrYWlreW91XCA7CivlnLDlraYgPCBjaGlnYWt1XCA7CivmvIHnpIEgPCBneW9zaG91XCA7CivooajmlawgPCBoeW91a2VpXCA7Civmv4DmhqQgPCBnZWtpZnVuXCA7CivmvaTmsqIgPCBqdW50YWt1XCA7CivmjK/mm78gPCBmdXJpa2FlXCA7Civnr6bmo5IgPCBiZXJhYm91XCA7CivmipXnpaggPCB0b3VoeW91XCA7Civlm73mg4UgPCBrb2t1am91XCA7CivlnKjlroUgPCB6YWl0YWt1XCA7CivkuI3liKnnm4ogPCBmdXJpZWtpXCA7CivlnKjlraYgPCB6YWlnYWt1XCA7CivluILlkI/lk6EgPCBzaGlyaWluXCA7CivmhI/opovmm7ggPCBpa2Vuc2hvXCA7CivmhbDpnIrloZQgPCBpcmVpdG91XCA7Civnq4voqLwgPCByaXNzaG91XCA7Civmo5cgPCBuYXRzdW1lXCA7Civmjpvlo7AgPCBrYWtlZ29lXCA7CivmorsgPCBzaGlraW1pXCA7CivmiJHliKnli4kgPCBnYXJpYmVuXCA7CivooYzmnKsgPCB5dWt1c3VlXCA7CivooYzmm7ggPCBneW91c2hvXCA7CivmuL7ouqsgPCBrb25zaGluXCA7Civlm7Dmg5EgPCBrb253YWt1XCA7CivooYbmnJsgPCBzaHV1Ym91XCA7CivmuJvph48gPCBnZW5yeW91XCA7Civmm5kgPCBha2Vib25vXCA7Civmk6zlrp3nj6AgPCBnaWJvc2hpXCA7CivlpKflkozntbUgPCB5YW1hdG9lXCA7CivooYzmlbAgPCBneW91c3V1XCA7Civlm7PlvI8gPCB6dXNoaWtpXCA7CivlsI/liIfmiYsgPCBrb2dpdHRlXCA7CivmvL/mtrIgPCBzaG91ZWtpXCA7CivmmZIgPCBzYXJhc2hpXCA7Civou6Lot6/lmaggPCB0ZW5yb2tpXCA7CivnqYDpoZ4gPCBrb2t1cnVpXCA7CivmvKDnhLYgPCBiYWt1emVuXCA7CivnqoHpgLIgPCB0b3NzaGluXCA7CivnsbPlj44gPCBiZWlzaHV1XCA7Civml4EgPCB0c3VrdXJpXCA7CivliKTkuovoo5wgPCBoYW5qaWhvXCA7CivlsaDomIfmlaMgPCB0b3Nvc2FuXCA7Civnqb/pgJogPCBzZW50c3V1XCA7Civooajmg4UgPCBoeW91am91XCA7CivlmbTmtYEgPCBmdW5yeXV1XCA7CivnqK7ppqwgPCB0YW5ldW1hXCA7Civmt6Hpm6ogPCBhd2F5dWtpXCA7Civlj4LorbDpmaIgPCBzYW5naWluXCA7CivmjqXlj5cgPCBzZXRzdWp1XCA7CivmjKjmi7YgPCBhaXNhdHN1XCA7CivmjKvmipggPCB6YXNldHN1XCA7CivmjqXlj44gPCBzZXNzaHV1XCA7CivmiYvntrEgPCB0YWR6dW5hXCA7Civlm73lr74gPCBrb2t1dGFpXCA7Civkuojlgpnlk4EgPCB5b2JpaGluXCA7CivmvIHnjbIgPCBneW9rYWt1XCA7CivmiYnntbUgPCB0b2JpcmFlXCA7CivmvIHnjJ8gPCBneW9yeW91XCA7Civlm73lrpogPCBrb2t1dGVpXCA7CivnkIblt6Xnp5EgPCByaWtvdWthXCA7CivngavokazloLQgPCBrYXNvdWJhXCA7CivllIfpn7MgPCBzaGluJydvblwgOwor5a+S5Z6i6ZuiIDwga2FuZ29yaVwgOwor6KGM5oiQIDwgaWtpbmFyaVwgOwor5ruR55+zIDwga2Fzc2VraVwgOwor6Ziy6KGb6LK7IDwgYm91ZWloaVwgOwor5Zyw5Y+jIDwgamlndWNoaVwgOwor5omL566SIDwgdGVib3VraVwgOwor5ZSQ6ZaAIDwga2FyYW1vblwgOwor6aas5bCP5bGLIDwgdW1hZ295YVwgOwor56uc6ISzIDwgcnl1dW5vdVwgOwor5Zu95aSnIDwga29rdWRhaVwgOwor57Gz5L+XIDwgYmVpem9rdVwgOwor5Zu95aSWIDwga29rdWdhaVwgOwor6KOP5YG0IDwgdXJhZ2F3YVwgOwor5r+B5aOwIDwgZGFtaWdvZVwgOwor57Gz5L2cIDwgYmVpc2FrdVwgOwor5LqI5YKZ5YW1IDwgeW9iaWhlaVwgOwor5ZSx6YGTIDwgc2hvdWRvdVwgOwor5ZWP6LKsIDwgbW9uc2VraVwgOwor56m66LC3IDwga3V1a29rdVwgOwor5r+A5aKXIDwgZ2VraXpvdVwgOwor5bCP6YGT5YW3IDwga29kb3VndVwgOwor56uv57axIDwgaGFkenVuYVwgOwor5rex6YGgIDwgc2hpbicnZW5cIDsKK+ijj+S9nCA8IHVyYXNha3VcIDsKK+ijguWCtyA8IHJlc3Nob3VcIDsKK+ibruilnyA8IGJhbmthcmFcIDsKK+W4jOWFg+e0oCA8IGtpZ2Vuc29cIDsKK+aAuiA8IGtvcmFlcnVcIDsKK+S4lueVjOiqniA8IHNla2FpZ29cIDsKK+exs+S4rSA8IGJlaWNodXVcIDsKK+eri+iFuSA8IHJpcHB1a3VcIDsKK+eojumhjSA8IHplaWdha3VcIDsKK+erv+eruSA8IHNhb2Rha2VcIDsKK+a3q+mAuCA8IGluJydpdHN1XCA7CivlvqQgPCB0YWtlc2hpXCA7CivorbfooZvlhbUgPCBnb2VpaGVpXCA7Civnqbroqr8gPCBrdXVjaG91XCA7CivomavpoZ4gPCBjaHV1cnVpXCA7CivlvaLogIzkuIsgPCBrZWlqaWthXCA7CivmjbrljbAgPCBuYXRzdWluXCA7CivooYblurYgPCBzaHV1c2hvXCA7Civnq7nnq78gPCB0YWtlemFvXCA7CivpnZLpm7voqbEgPCBhb2RlbndhXCA7Civkuozmnprnm64gPCBuaW1haW1lXCA7CivllY/oqLogPCBtb25zaGluXCA7Civmi5PmnKwgPCB0YWt1aG9uXCA7CivnqY3ovIkgPCBzZWtpc2FpXCA7CivnqbropbIgPCBrdXVzaHV1XCA7Civku5blupznnIwgPCB0YWZ1a2VuXCA7Civkv53nt5rljLogPCBob3Nlbmt1XCA7Civlt70gPCB0YXRzdW1pXCA7CivlnKjkv5cgPCB6YWl6b2t1XCA7Civlh7rnqL3lj6QgPCBkZWdlaWtvXCA7CivnqbrooYwgPCBrdXVneW91XCA7CivlnLDkuLsgPCBqaW51c2hpXCA7CivkuI3lhbfogIUgPCBmdWd1c2hhXCA7CivlnLDkuK0gPCBjaGljaHV1XCA7CivmvJTnrpfmqZ8gPCBlbnphbmtpXCA7CivpgbrkvJ3ms5UgPCBpZGVuaG91XCA7Civlm73lj7cgPCBrb2t1Z291XCA7CivpjK/op5IgPCBzYWtrYWt1XCA7CivlnKjkuqwgPCB6YWlreW91XCA7Civmi43mlbAgPCBoYWt1c3V1XCA7Civpgbrlrrbml48gPCBpa2F6b2t1XCA7CivlsI/liKnlj6MgPCBrb3Jpa291XCA7CivlnKjkuK0gPCB6YWljaHV1XCA7CivooajlnKggPCBoeW91emFpXCA7Civmu7TmsLQgPCB0ZWtpc3VpXCA7CivmiZPnjocgPCBkYXJpdHN1XCA7Civpi7PpgKAgPCBjaHV1em91XCA7Civlm5vlm70gPCBzaGlrb2t1XCA7Civlm73lirQgPCBrb2t1cm91XCA7Civmv4Dli5UgPCBnZWtpZG91XCA7Civnq4vnsbMgPCByeXV1YmVpXCA7CivnrYvms6ggPCBraW5jaHV1XCA7Civmv4DlirEgPCBnZWtpcmVpXCA7CivmipHmraIgPCB5b2t1c2hpXCA7CivmvKLml48gPCBrYW56b2t1XCA7Civnr4DluqYgPCBzZXRzdWRvXCA7CivlpKnmsJfpgYsgPCB0ZW5raXVuXCA7CivmvIHmpa0gPCBneW9neW91XCA7CivmtrLph48gPCBla2lyeW91XCA7CivlupzorbDkvJogPCBmdWdpa2FpXCA7Civom4fooI0gPCBkYWthdHN1XCA7Civlm73lhoUgPCBrb2t1bmFpXCA7Civlm73lhbggPCBrb2t1dGVuXCA7CivonYvnn7MgPCByb3VzZWtpXCA7Civnq5znpZ4gPCByeXV1amluXCA7CivmtojpmLIgPCBzaG91Ym91XCA7CivmtYHpupcgPCByeXV1cmVpXCA7Civnq6/nmoQgPCB0YW50ZWtpXCA7CivmuKnoibIgPCBvbnNob2t1XCA7CivmupbnlKggPCBqdW4nJ3lvdVwgOwor56m06JS1IDwgYW5hZ3VyYVwgOwor5ouN5omLIDwgaGFrdXNodVwgOwor5omL54etIDwgdGVzaG9rdVwgOwor5aOsIDwgbWl6dW5vZVwgOwor5q2i6Z+z5ZmoIDwgc2hpb25raVwgOwor5ZCI5rCX5LyaIDwgYWlraWthaVwgOwor6YaN6YaQ5ZGzIDwgZGFpZ29taVwgOwor566x5birIDwgaGFrb3NoaVwgOwor6KGo5Y+3IDwgaHlvdWdvdVwgOwor6buE6bq7IDwgdHN1bmFzb1wgOwor6Jmr6YW4IDwgbXVzaGl6dVwgOwor5rqA55uuIDwgbWFubW9rdVwgOwor5oud5b6pIDwgaGFpZnVrdVwgOwor6ZCY5qW8IDwgc2hvdXJvdVwgOwor56uL56eLIDwgcmlzc2h1dVwgOwor56eL6aKoIDwgc2h1dWZ1dVwgOwor5oq85o26IDwgb3VuYXRzdVwgOwor5oSP5Zuz55qEIDwgaXRvdGVraVwgOwor5rWm6aKoIDwgdXJha2F6ZVwgOwor56m66Iy2IDwga2FyYWNoYVwgOwor56uc55y8IDwgcnl1dWdhblwgOwor5rW36Zm4IDwga2FpcmlrdVwgOwor5Zyw56OB5rCXIDwgY2hpamlraVwgOwor56iO6L68IDwgemVpa29taVwgOwor55Sf5oSP5rCXIDwgbmFtYWlraVwgOwor6buS6a+bIDwga3Vyb2RhaVwgOwor56m66ImyIDwgc29yYWlyb1wgOwor5Zub5qyh5YWDIDwgeW9qaWdlblwgOwor5oyZ5Zu9IDwga3lva29rdVwgOwor6KGw5YWGIDwgc3VpY2hvdVwgOwor5Zu95LitIDwga3VuaWp1dVwgOwor56eL6ZycIDwgc2h1dXNvdVwgOwor5ZaJ56ybIDwgbm9kb2J1ZVwgOwor56eL6ZyWIDwgc2h1dXJpblwgOwor5b6h55uu546JIDwgb21lZGFtYVwgOwor6KGM5ZWTIDwgZ3lvdWtlaVwgOwor5ZqPIDwga3VzaGFtaVwgOwor56eL6ZuoIDwgYWtpc2FtZVwgOwor56m66IW5IDwga3V1ZnVrdVwgOwor5oy/5YWlIDwgc291bnl1dVwgOwor5ZKM6aOfIDwgd2FzaG9rdVwgOwor5oqc5pOiIDwgYmF0dGVraVwgOwor6Y2156m0IDwga2FnaWFuYVwgOwor6J+75be7IDwgYXJpbWFraVwgOwor5oyH5ZynIDwgc2hpYXRzdVwgOwor5oqV5pOyIDwgdG91dGVraVwgOwor5YWs5paH5omAIDwga3Vtb25qb1wgOwor5oyH5ZuzIDwgc2FzaGl6dVwgOwor5b6h5bqn5omAIDwgZ296YXNob1wgOwor5rq65rC0IDwgZGVraXN1aVwgOwor5aSn6Yu45bGRIDwgb2dha3V6dVwgOwor56+J5ZywIDwgdHN1a2lqaVwgOwor55SY5rW36IuUIDwgYW1hbm9yaVwgOwor5bu66K2w5qGIIDwga2VuZ2lhblwgOwor6J2L54etIDwgcm91c29rdVwgOwor5rq65q27IDwgZGVraXNoaVwgOwor56KB5Lya5omAIDwgZ29rYWlqb1wgOwor5ouZ5a6FIDwgc2V0dGFrdVwgOwor5omL5rKiIDwgc2h1dGFrdVwgOwor5oqR5o+aIDwgeW9rdXlvdVwgOwor56yK5rOVIDwgemFydWhvdVwgOwor5oeH56+kIDwga29udG9rdVwgOwor5ZSQ6JavIDwga2FyYWltb1wgOwor56iO6Kq/IDwgemVpY2hvdVwgOwor6Jit6YuzIDwgcmFuY2h1dVwgOwor5ouh5aSnIDwga2FrdWRhaVwgOwor6Ziy54Gr5oi4IDwgYm91a2Fkb1wgOwor6YqF6ZC4IDwgZG91dGFrdVwgOwor55m75bGx5a62IDwgdG96YW5rYVwgOwor54KK5LqL5aC0IDwgc3VpamliYVwgOwor5oiQ54afIDwgc2VpanVrdVwgOwor5rqc5rGgIDwgdGFtZWlrZVwgOwor5rWm6YeMIDwgdXJhemF0b1wgOwor6Iux5paH56eRIDwgZWlidW5rYVwgOwor5rmv54aoIDwgeXVub3NoaVwgOwor5Zar54WZIDwga2l0c3VlblwgOwor5rqA5r2uIDwgbWFuY2hvdVwgOwor5ZqH5ZqHIDwga2Fra2FrdVwgOwor5ouT5aSnIDwgdGFrdWRhaVwgOwor5rqQ5rWBIDwgZ2Vucnl1dVwgOwor56mO6ISxIDwgZWlkYXRzdVwgOwor56qB56uvIDwgdG9wcGFuYVwgOwor6YW45oCn6ZuoIDwgc2Fuc2VpdVwgOwor6buE6ZuAIDwga291amFrdVwgOwor5ZaA55ewIDwga2FrdXRhblwgOwor6by76KGAIDwgaGFuYWRqaVwgOwor6Yyv57acIDwgc2FrdXNvdVwgOwor6KGT5LitIDwganV0Y2h1dVwgOwor5rS+55Sf6KqeIDwgaGFzZWlnb1wgOwor5rS+6ZalIDwgaGFiYXRzdVwgOwor6YG65Lyd5oCnIDwgaWRlbnNlaVwgOwor5Yy755mC6LK7IDwgaXJ5b3VoaVwgOwor5aSn56WW54i2IDwgZGFpc29mdVwgOwor6bq76ZuAIDwgbWF6ZWphblwgOwor56+G5Yi7IDwgdGVua29rdVwgOwor6LuN6I285YipIDwgZ3VuZGFyaVwgOwor5oiv5q2MIDwgemFyZXV0YVwgOwor5ZSQ6Ie8IDwga2FyYXVzdVwgOwor5rqA5rSyIDwgbWFuc2h1dVwgOwor5rm+5rWBIDwgd2Fucnl1dVwgOwor5ZaE546JIDwgemVuZGFtYVwgOwor56eB6YCaIDwgc2hpdHN1dVwgOwor56iu6IuXIDwgc2h1YnlvdVwgOwor55m95Lqc57SAIDwgaGFrdWFraVwgOwor5Li8IDwgZG9uYnVyaVwgOwor5rW36LOKIDwga2Fpem9rdVwgOwor56iu6IqLIDwgdGFuZWltb1wgOwor5oim5q20IDwgc2VucmVraVwgOwor6aiO6aas5oimIDwga2liYXNlblwgOwor55uu5LiA5p2vIDwgbWVpcHBhaVwgOwor5oyH5YCkIDwgc2FzaGluZVwgOwor6KiY5LqL5paHIDwga2lqaWJ1blwgOwor5rW36LGhIDwgc2VpdWNoaVwgOwor5oq85aOyIDwgb3NoaXVyaVwgOwor5ZOB6KmVIDwgaGlucHlvdVwgOwor5oOo6YW3IDwgemFua29rdVwgOwor5ZKM5aSq6byTIDwgd2FkYWlrb1wgOwor5oKq6aOfIDwgYWt1amlraVwgOwor6Juu55qEIDwgYmFudGVraVwgOwor5LqI5a6a5qGIIDwgeW90ZWlhblwgOwor56We6auEIDwgc2hpbnp1aVwgOwor6JiH6YmEIDwgc290ZXRzdVwgOwor6J+E5bGFIDwgY2hpa2t5b1wgOwor5oSa6KqsIDwgZ3VzZXRzdVwgOwor5oe45r+BIDwga2VuZGFrdVwgOwor5rqd5p2/IDwgZG9idWl0YVwgOwor56ym5Y+35ZmoIDwgZnVnb3VraVwgOwor5Zqi5LitIDwgbm91Y2h1dVwgOwor5pu46KiY6KOcIDwgc2hva2lob1wgOwor56eY6KijIDwgaGlrZXRzdVwgOwor56m655m9IDwga3V1aGFrdVwgOwor5b+c5o+05ZujIDwgb3VlbmRhblwgOwor6YG65Lyd5a2QIDwgaWRlbnNoaVwgOwor6Zmk6I2J5ZmoIDwgam9zb3VraVwgOwor6Jm56ImyIDwgbmlqaWlyb1wgOwor562W5a6aIDwgc2FrdXRlaVwgOwor5rWB6YCjIDwgcnl1dXJlblwgOwor56mN566XIDwgc2VraXNhblwgOwor5LqI5a6a5pelIDwgeW90ZWliaVwgOwor5oKq6Zi7IDwgdHN1d2FyaVwgOwor5oiv5puyIDwgZ2lreW9rdVwgOwor5L+d5oyB6ICFIDwgaG9qaXNoYVwgOwor5ouh5YWFIDwga2FrdWp1dVwgOwor56mA57KJIDwga29rdWZ1blwgOwor5ZSQ57O4IDwga2FyYWl0b1wgOwor6YmE6Y6aIDwgdGV0dHN1aVwgOwor56m655O2IDwga2FyYWJpblwgOwor5Y2Y5L2N5YWDIDwgdGFuaWdlblwgOwor5oSP5Zyw5oKqIDwgaWppd2FydVwgOwor5rqA5qCqIDwgbWFua2FidVwgOwor56eY6KGTIDwgaGlqdXRzdVwgOwor6JuL55m9IDwgdGFucGFrdVwgOwor5LiK5Ye65p2lIDwgam91ZGVraVwgOwor5ZGo6YGKIDwgc2h1dXl1dVwgOwor56ym5Y+35YyWIDwgZnVnb3VrYVwgOwor5ruF5bqmIDwgbWV0c3Vkb1wgOwor5rqA5pu0IDwgbWFuemFyYVwgOwor5ZGo6L66IDwgc2h1dWhlblwgOwor5oiQ5qGCIDwgbmFyaWtlaVwgOwor5rW36JuHIDwgdW1paGViaVwgOwor5rS76LevIDwga2F0c3Vyb1wgOwor6buS6LKCIDwga3Vyb3RlblwgOwor5LiN55u45b+cIDwgZnVzb3VvdVwgOwor6Yqt6JG1IDwgemVuaWFvaVwgOwor6Iux6Kqe54mIIDwgZWlnb2JhblwgOwor6YeN54Gr5ZmoIDwganV1a2FraVwgOwor5rOi6Z+zIDwgbmFtaW90b1wgOwor5pGp5Yip5pSvIDwgbWFyaXNoaVwgOwor56ic57eaIDwgcnlvdXNlblwgOwor55Ww56uv6KaWIDwgaXRhbnNoaVwgOwor5omN5b6zIDwgc2FpdG9rdVwgOwor56uL5qGIIDwgcml0c3VhblwgOwor6buZ6KqNIDwgbW9rdW5pblwgOwor56m654iGIDwga3V1YmFrdVwgOwor5ZCE6aeFIDwga2FrdWVraVwgOwor5oq85YWlIDwgb3NoaWlyZVwgOwor5re355SoIDwga29uJyd5b3VcIDsKK+a4pua9riA8IHV6dXNoaW9cIDsKK+iRrOWEgOWxiyA8IHNvdWdpeWFcIDsKK+mgheS9jee9riA8IGtvdWljaGlcIDsKK+mHo+mtmiA8IGNob3VneW9cIDsKK+aIkeaWuSA8IHdhZ2Fob3VcIDsKK+eptOeGiiA8IGFuYWd1bWFcIDsKK+aJgOW+lyA8IHNob3Rva3VcIDsKK+WMu+W4q+azlSA8IGlzaGlob3VcIDsKK+a6nOaBryA8IHRhbWVpa2lcIDsKK+aBremghiA8IGt5b3VqdW5cIDsKK+a8j+WIuyA8IHJvdWtva3VcIDsKK+iRoeiQhOWckiA8IGJ1ZG91ZW5cIDsKK+iWqemVtyA8IHNhdGNob3VcIDsKK+a1geiogCA8IHJ5dXVnZW5cIDsKK+aLheS7uyA8IHRhbicnbmluXCA7Civnq4vmmKUgPCByaXNzaHVuXCA7Civnqq/mpa0gPCB5b3VneW91XCA7CivmipzljrsgPCBiYWtreW91XCA7CivmuKnmtbQgPCBvbicneW9rdVwgOwor56aB6LazIDwga2luc29rdVwgOwor5rqW5oClIDwganVua3l1dVwgOwor5ZCD6Z+zIDwga2l0c3VvblwgOwor6YmE6LevIDwgdGV0c3Vyb1wgOwor5LqU5paX57GzIDwgZ290b2JlaVwgOwor56S+6ZW3IDwgc2hhY2hvdVwgOwor5ZCE6Z2iIDwga2FrdW1lblwgOwor6buS6KGAIDwga3Vyb2NoaVwgOwor5raI6ICXIDwgc2hvdW1vdVwgOwor56uj5oiQIDwgc2h1bnNlaVwgOwor6buS6J+7IDwga3Vyb2FyaVwgOwor5Y+v5oSb5rCXIDwga2F3YWlnZVwgOwor5rWB6KGMIDwgcnl1dWtvdVwgOwor56qS5q27IDwgY2hpc3NoaVwgOwor6YeR6auYIDwga2luZGFrYVwgOwor5LqU57ea6K2cIDwgZ29zZW5mdVwgOwor5ZCE6ZqOIDwga2FrdWthaVwgOwor56eL6I2JIDwgYWtpa3VzYVwgOwor5omN5a2mIDwgc2FpZ2FrdVwgOwor5b6h5bqc5YaFIDwgZ29mdW5haVwgOwor5a2Q6aas5bqnIDwga291bWF6YVwgOwor5oSJ6ImyIDwgeXVzaG9rdVwgOwor5bCP6Iql5a2QIDwga29rZXNoaVwgOwor5riF5r+BIDwgc2VpZGFrdVwgOwor5ZGo6KanIDwgc2h1dXJhblwgOwor5oGS5rip5ZmoIDwga291b25raVwgOwor5omA5bGeIDwgc2hvem9rdVwgOwor5oim5b25IDwgc2VuJydla2lcIDsKK+efpeaBteiAhSA8IGNoaWVzaGFcIDsKK+iWhOmbsiA8IHVzdWd1bW9cIDsKK+iWhOmbqiA8IHVzdXl1a2lcIDsKK+elnei+niA8IHNodWt1amlcIDsKK+aKkeWItiA8IHlva3VzZWlcIDsKK+aBi+miqCA8IGtvaWthemVcIDsKK+elnui8vyA8IG1pa29zaGlcIDsKK+mBuui0iOWIhiA8IGl6b3VidW5cIDsKK+m5v+i/vSA8IHNoaWthb2lcIDsKK+ellui/sCA8IHNvanV0c3VcIDsKK+aIiuaIjCA8IGJvanV0c3VcIDsKK+iWrOmFkiA8IHlha3VzaHVcIDsKK+WRquihkyA8IGp1anV0c3VcIDsKK+WPpOmhlCA8IGZ1cnVnYW9cIDsKK+WkquWIgOmtmiA8IHRhY2hpdW9cIDsKK+aJi+WmuyA8IHRlZHp1bWFcIDsKK+a3t+a/gSA8IGtvbmRha3VcIDsKK+WKqea8lOiAhSA8IGpvZW5zaGFcIDsKK+mHkemhjSA8IGtpbmdha3VcIDsKK+S7o+eQhumDqCA8IGRhaXJpYnVcIDsKK+aDqOiQvSA8IHNhbnJha3VcIDsKK+iYiuiThCA8IHVuY2hpa3VcIDsKK+mKgOiJsiA8IGdpbicnaXJvXCA7Civpuqbop5IgPCBiYWtrYWt1XCA7Civlj7DplqMgPCBkYWlrYWt1XCA7CivmuoDluK0gPCBtYW5zZWtpXCA7Civnp7vli5XkvZMgPCBpZG91dGFpXCA7CivpgYvli5XosrsgPCB1bmRvdWhpXCA7CivlpKnptZ3ntaggPCBiaXJvdWRvXCA7CivkuIDphbjljJYgPCBpc3NhbmthXCA7CivnpZ3os4AgPCBzaHVrdWdhXCA7CivmgqroqZUgPCBha3VoeW91XCA7CivmgqroqLMgPCBha3V5YWt1XCA7Civolarpm5EgPCBidXphdHN1XCA7Civpu5LojLYgPCBrdXJvY2hhXCA7CivnqI7nm64gPCB6ZWltb2t1XCA7CivpgaDot53pm6IgPCBlbmt5b3JpXCA7CivkvZDos4DnnIwgPCBzYWdha2VuXCA7CivnpLrpgZQgPCBqaXRhdHN1XCA7CivomY7nqbQgPCBrb2tldHN1XCA7Civpq5jpn7Ppg6ggPCBrb3VvbmJ1XCA7Civpjq7lrpogPCBjaGludGVpXCA7CivnlbDnq6/ogIUgPCBpdGFuc2hhXCA7CivnrZLkupUgPCB0c3V0c3VpXCA7Civlk7LnkIYgPCB0ZXRzdXJpXCA7CivpiI3otrMgPCBkb25zb2t1XCA7CivnqbrmobYgPCBrYXJhb2tlXCA7CivoloTpiI0gPCB1c3Vub3JvXCA7Civmh7LmgqogPCBjaG91YWt1XCA7CivnqbrmoKogPCBrdXVrYWJ1XCA7Civom67ml48gPCBiYW56b2t1XCA7CivnrJvlkLkgPCBmdWVmdWtpXCA7CivmhJ/ljJbpmaIgPCBrYW5rYWluXCA7Civnq5zlrq4gPCByeXV1Z3V1XCA7CivnpZ3oqIAgPCBzaHV1Z2VuXCA7CivmgaXovrEgPCBjaGlqb2t1XCA7CivkuI3mqZ/lq4wgPCBmdWtpZ2VuXCA7Civpg6jlpJbnp5ggPCBidWdhaWhpXCA7CivlloTmgqogPCB6ZW4nJ2FrdVwgOwor6YeN6Y6uIDwganV1Y2hpblwgOwor6JaE6YGHIDwgaGFrdWd1dVwgOwor5Lqc54ax5bivIDwgYW5ldHRhaVwgOwor5omL5Y+jIDwgdGVndWNoaVwgOwor5rKI6ZmNIDwgY2hpbmtvdVwgOwor5ZaE5b6zIDwgemVudG9rdVwgOwor5rer5qyyIDwgaW4nJ3lva3VcIDsKK+mKgOe0mSA8IGdpbmdhbWlcIDsKK+WvjOWjq+WxsSA8IGZ1amlzYW5cIDsKK+mItOiYrSA8IHN1enVyYW5cIDsKK+aIpuWfnyA8IHNlbicnaWtpXCA7CivlkJ/oqqYgPCBnaW5zaG91XCA7CivmjIfmj67miYAgPCBzaGlraWpvXCA7Civlk4Hnm64gPCBoaW5tb2t1XCA7CivphpzpoZ4gPCBzaHV1cnVpXCA7CivnlJ/phqTmsrkgPCBraWpvdXl1XCA7CivpioXnrpQgPCBkb3VoYWt1XCA7CivmiKblm70gPCBzZW5nb2t1XCA7CivmhJvnnYAgPCBhaWNoYWt1XCA7CivmtYTnkaDnkoMgPCBqb3VydXJpXCA7Civoo5zkvZDlrpggPCBob3Nha2FuXCA7CivpiI3op5IgPCBkb25rYWt1XCA7CivpuqbojLYgPCBtdWdpY2hhXCA7Civpu5Lnt5ogPCBrb2t1c2VuXCA7CivpgY7ljrvlvaIgPCBrYWtva2VpXCA7CivojYnku67lkI0gPCBzb3VnYW5hXCA7CivmhJrnm7QgPCBndWNob2t1XCA7CivpioDnrpQgPCBnaW5wYWt1XCA7Civol6ToibIgPCBmdWppaXJvXCA7CivmiLjlj6MgPCB0b2d1Y2hpXCA7Civnqbrmj5ogPCBrYXJhYWdlXCA7CivpioDnrJsgPCBnaW50ZWtpXCA7CivlvqHmqZ/lq4wgPCBnb2tpZ2VuXCA7CivnrKzkuIAgPCBkYWlpY2hpXCA7Civph47pgZMgPCBub21pY2hpXCA7CivllJDmrYwgPCBrYXJhdXRhXCA7CivlkIzoqr8gPCBkb3VjaG91XCA7CivkuI3lsaXooYwgPCBmdXJpa291XCA7CivlkIjoqr8gPCBnb3VjaG91XCA7Civlj6PovKogPCBrdWNoaXdhXCA7Civlv6DprYIgPCBjaHV1a29uXCA7CivlkIToq5YgPCBrYWt1cm9uXCA7CivlkIjoqZUgPCBnYXBweW91XCA7Civlj5nov7AgPCBqb2p1dHN1XCA7Civnq4vloLQgPCB0YWNoaWJhXCA7CivllJDmp5ggPCBrYXJheW91XCA7CivpmL/lvJfliKnliqAgPCBhZnVyaWthXCA7CivpurvnuIQgPCBhc2FuYXdhXCA7CivptrrptJIgPCBzZWtpcmVpXCA7Civmgqroh60gPCBha3VzaHV1XCA7Civmk6zkurrljJYgPCBnaWppbmthXCA7CivnqY3mnKggPCB0c3VtaWtpXCA7CivmupbliYcgPCBqdW5zb2t1XCA7Civpjq7lj7AgPCBjaGluZGFpXCA7CivliIbluqblmaggPCBidW5kb2tpXCA7CivmsojphZQgPCBjaGluc3VpXCA7Civpu5nnpbcgPCBtb2t1dG91XCA7Civph5HotaQgPCBraW4nJ2FrYVwgOwor56uL5Zu9IDwgcmlra29rdVwgOwor5omL5LitIDwgc2h1Y2h1dVwgOwor5omL5LiLIDwgdGVzaGl0YVwgOwor5Y+O6LyJIDwgc2h1dXNhaVwgOwor5Ye655uu6YeRIDwgZGVtZWtpblwgOwor5aSc5rG96LuKIDwgeW9naXNoYVwgOwor5rqA5Y2TIDwgbWFudGFrdVwgOwor5bem5rS+57O7IDwgc2FoYWtlaVwgOwor5rim5be7IDwgdXp1bWFraVwgOwor5rW354yrIDwgdW1pbmVrb1wgOwor5oSa54mpIDwgZ3VidXRzdVwgOwor6YeN6LKsIDwganV1c2VraVwgOwor6by75rGXIDwgaGFuYWFzZVwgOwor5oCl6YCBIDwga3l1dXNvdVwgOwor5ZaE5aWzIDwgemVuJydueW9cIDsKK+mJm+ethiA8IGVucGl0c3VcIDsKK+aIkuWQjSA8IGthaW15b3VcIDsKK+WOhOmboyA8IHlha3VuYW5cIDsKK+a1t+eJmyA8IGthaWd5dXVcIDsKK+iWrOiOoiA8IHlha2t5b3VcIDsKK+m8u+atjCA8IGhhbmF1dGFcIDsKK+aGkeaLoCA8IGh5b3VreW9cIDsKK+mJhOe0oiA8IHRlc3Nha3VcIDsKK+WPjei2iiA8IGhhbmV0c3VcIDsKK+WQueiBtCA8IGZ1aWNob3VcIDsKK+a5r+WPoyA8IHl1Z3VjaGlcIDsKK+WPpOiqrCA8IGtvc2V0c3VcIDsKK+awtOmjtCA8IG1penVhbWVcIDsKK+WNs+mhjCA8IHNva3VkYWlcIDsKK+WPo+iqrCA8IGt1emV0c3VcIDsKK+ipkOasuue9qiA8IHNhZ2l6YWlcIDsKK+eoruadvyA8IHRhbmVpdGFcIDsKK+iZq+awlyA8IG11c2hpa2VcIDsKK+epuuW4rSA8IGt1dXNla2lcIDsKK+a4rOWumiA8IHNva3V0ZWlcIDsKK+mlgumjqeWxiyA8IHVkb24nJ3lhXCA7Civmub7lhoUgPCB3YW4nJ25haVwgOwor5oSV54S2IDwgZ2FrdXplblwgOwor56iu5pysIDwgdGFuZWhvblwgOwor5Y+O6LOEIDwgc2h1dXdhaVwgOwor5aSi5oOz5a62IDwgbXVzb3VrYVwgOwor6KiY6K2c5rOVIDwga2lmdWhvdVwgOwor5LiA5q275b6MIDwgaXNzaGlnb1wgOwor6YeN6KizIDwganV1eWFrdVwgOwor6YiN6ImyIDwgbmliaWlyb1wgOwor5rex5oWuIDwgc2hpbnJ5b1wgOwor6Z2e6KGb55SfIDwgaGllaXNlaVwgOwor56iu5pePIDwgc2h1em9rdVwgOwor6YeM6KaqIDwgc2F0b295YVwgOwor6buS55ejIDwga3Vyb2F6YVwgOwor6YaL6YW4IDwgc2FrdXNhblwgOwor6bqm56ybIDwgbXVnaWJ1ZVwgOwor5ZCb6IejIDwga3Vuc2hpblwgOwor5rSe56m0IDwgaG9yYWFuYVwgOwor6Kqk5oqV5LiLIDwgZ290b3VrYVwgOwor5rW45r2kIDwgc2hpbmp1blwgOwor5Y+k6KGAIDwgZnVydWNoaVwgOwor5oaC5oiaIDwgeXV1c2VraVwgOwor5ZCr576eIDwgZ2Fuc2h1dVwgOwor56m65bCGIDwga3V1c2hvdVwgOwor5rC06Zm4IDwgc3VpcmlrdVwgOwor5LiN6Ieq55SxIDwgZnVqaXl1dVwgOwor5rWB55SoIDwgcnl1dXlvdVwgOwor5rqA5LqGIDwgbWFucnlvdVwgOwor5rWB55SjIDwgcnl1dXphblwgOwor56mN5oKqIDwgc2VraWFrdVwgOwor6Ymb55u0IDwgZW5jaG9rdVwgOwor44CDIDwgb25hamlrdVwgOwor5oKq562WIDwgYWt1c2FrdVwgOwor6bqm56eLIDwgbXVnaWFraVwgOwor6YeR6J6NIDwga2luJyd5dXVcIDsKK+iLseaVsOWtlyA8IGVpc3V1amlcIDsKK+W/hemcgCA8IGhpdHN1anVcIDsKK+elnue1jCA8IHNoaW5rZWlcIDsKK+WPjeimhiA8IGhhbnB1a3VcIDsKK+eqgeWmgiA8IHRvdHN1am9cIDsKK+a2suaZtiA8IGVraXNob3VcIDsKK+WQjOiFuSA8IGRvdWZ1a3VcIDsKK+epjeW8iiA8IHNla2loZWlcIDsKK+iZmualrSA8IGt5b2d5b3VcIDsKK+ayueiPnCA8IGFidXJhbmFcIDsKK+WNiumhjSA8IGhhbmdha3VcIDsKK+axuuitsCA8IGtldHN1Z2lcIDsKK+mJhOefsyA8IHRlc3Nla2lcIDsKK+W/q+mBqSA8IGthaXRla2lcIDsKK+mFt+mBhyA8IGtva3VndXVcIDsKK+m7meeEtiA8IG1va3VuZW5cIDsKK+mFqumFuCA8IHJha3VzYW5cIDsKK+mHieiWrCA8IHl1dXlha3VcIDsKK+WRiuefpSA8IGtva3VjaGlcIDsKK+efpeaDheaEjyA8IGNoaWpvdWlcIDsKK+miqOWRguahtiA8IGZ1cm9va2VcIDsKK+aBi+iNiSA8IGtvaWd1c2FcIDsKK+a1puazoiA8IHVyYW5hbWlcIDsKK+iWrOexoCA8IHlha3Vyb3VcIDsKK+iLseiqnuWcjyA8IGVpZ29rZW5cIDsKK+epuuWcpyA8IGt1dWF0c3VcIDsKK+S9jumfs+mDqCA8IHRlaW9uYnVcIDsKK+eni+awtCA8IHNodXVzdWlcIDsKK+WPs+iFlSA8IG1pZ2l1ZGVcIDsKK+WPo+iMtiA8IGt1Y2hpamFcIDsKK+W+kumjnyA8IHRvc2hva3VcIDsKK+mFqui+siA8IHJha3Vub3VcIDsKK+iWhOiCiSA8IHVzdW5pa3VcIDsKK+WMl+muriA8IGhva3VzZW5cIDsKK+m7hOeGnyA8IGtvdWp1a3VcIDsKK+S6jOacn+WItiA8IG5pa2lzZWlcIDsKK+WPjuiUtSA8IHNodXV6b3VcIDsKK+a1tOanvSA8IHlva3Vzb3VcIDsKK+mHkeiJsiA8IGtvbmppa2lcIDsKK+aTrOWjsOiqniA8IGdpc2VpZ29cIDsKK+WOn+iouyA8IGdlbmNodXVcIDsKK+aCqueXhyA8IGFrdXNob3VcIDsKK+aCqueXhSA8IGFrdWJ5b3VcIDsKK+WMlumqqCA8IGtha290c3VcIDsKK+mHjOiKiyA8IHNhdG9pbW9cIDsKK+WPjeiQvSA8IGhhbnJha3VcIDsKK+W/g+mFjSA8IHNoaW5wYWlcIDsKK+awt+i8qiA8IGh5b3VyaW5cIDsKK+aEn+acjSA8IGthbnB1a3VcIDsKK+avkumtmiA8IGRva3VneW9cIDsKK+engeassiA8IHNoaXlva3VcIDsKK+m5v+egpiA8IHJva3VzYWlcIDsKK+eUqOWLmeWToSA8IHlvdW11aW5cIDsKK+eqruS5jyA8IGt5dXVib3VcIDsKK+a3seWknCA8IHNoaW4nJ3lhXCA7Civnorroqo0gPCBrYWt1bmluXCA7CivmuJvlj44gPCBnZW5zaHV1XCA7CivolqznpLwgPCB5YWt1cmVpXCA7CivpjKjlnLAgPCBieW91Y2hpXCA7CivoloTnuIEgPCB1c3ViZXJpXCA7CivlvqHoi6blirQgPCBnb2t1cm91XCA7CivmnKrnmbvoqJggPCBtaXRvdWtpXCA7CivnsKHmmJPljJYgPCBrYW4nJ2lrYVwgOwor6JaE57W5IDwgdXN1Z2ludVwgOwor5b+r6Ku+IDwga2FpZGFrdVwgOwor5YyX6aKoIDwgaG9rdWZ1dVwgOwor5LiA6YGO5oCnIDwgaWtrYXNlaVwgOwor6YeN6IG0IDwganV1Y2hvdVwgOwor6YqY5p+EIDwgbWVpZ2FyYVwgOwor5oKq546JIDwgYWt1ZGFtYVwgOwor56eY5puyIDwgaGlreW9rdVwgOwor6JaE57SZIDwgdXN1Z2FtaVwgOwor6JaE57SFIDwgdXN1YmVuaVwgOwor6YGL6YCB6LK7IDwgdW5zb3VoaVwgOwor5riL5ZGzIDwgc2hpYnVtaVwgOwor5Y2X6YCyIDwgbmFuc2hpblwgOwor5Yy75bir5LyaIDwgaXNoaWthaVwgOwor6YqY5pyoIDwgbWVpYm9rdVwgOwor5ZCN56ewIDwgbWVpc2hvdVwgOwor5rWB5rGXIDwgcnl1dWthblwgOwor5YyX6Z2iIDwgaG9rdW1lblwgOwor5oKJ55qGIDwgc2hpa2thaVwgOwor5rWB5rC0IDwgcnl1dXN1aVwgOwor6Ieq5Y+Z5LydIDwgamlqb2RlblwgOwor56qB5YWIIDwgdG9zc2FraVwgOwor5rS75rOBIDwga2Fra3lvdVwgOwor6YeI576pIDwgc2hha3VnaVwgOwor5aSp5rCX5bGLIDwgdGVua2l5YVwgOwor6Zuj5piT5bqmIDwgbmFuJydpZG9cIDsKK+WQieelpSA8IGtpc3Nob3VcIDsKK+ehq+mFuCA8IHJ5dXVzYW5cIDsKK+W8sem9oiA8IGpha3VyZWlcIDsKK+azoeebmyA8IGF3YW1vcmlcIDsKK+WMl+mZkCA8IGhva3VnZW5cIDsKK+eni+aZtCA8IGFraWJhcmVcIDsKK+eptOWHuSA8IGFuYWJva29cIDsKK+mHkee2siA8IGthbmFhbWlcIDsKK+WPt+esmyA8IGdvdXRla2lcIDsKK+ibh+WPoyA8IGphZ3VjaGlcIDsKK+a3keWlsyA8IHNodWt1am9cIDsKK+WPjOe/vCA8IHNvdXlva3VcIDsKK+S7ruaVsOmDqCA8IGthc3V1YnVcIDsKK+WNiui+siA8IGhhbicnbm91XCA7CivpiI3nl5sgPCBkb250c3V1XCA7CivljYHlrZfot68gPCBqdXVqaXJvXCA7CivljJfploAgPCBraXRhbW9uXCA7CivlkLjniakgPCBzdWltb25vXCA7CivljYHpgLIgPCBqaXNzaGluXCA7CivolqznlKggPCB5YWt1eW91XCA7CivpioDmnY8gPCBnaW4nJ25hblwgOwor5rih5LuPIDwgdG9mdXRzdVwgOwor56OK6JC9IDwgcmFpcmFrdVwgOwor6Jma5b+DIDwga3lvc2hpblwgOwor5rSX5ruMIDwgc2VuZGVraVwgOwor5rSl5rOiIDwgdHN1bmFtaVwgOwor5rKW57iEIDwgb2tpbmF3YVwgOwor5rCR6LiKIDwgbWluJyd5b3VcIDsKK+iZmuW8sSA8IGt5b2pha3VcIDsKK+WPpOethiA8IGtvaGl0c3VcIDsKK+W+jOmHnCA8IGF0b2dhbWFcIDsKK+mHjeevpCA8IGp1dXRva3VcIDsKK+a3u+WJiiA8IHRlbnNha3VcIDsKK+mHkeetiyA8IGtpbnN1amlcIDsKK+W+l+mBkyA8IHRva3Vkb3VcIDsKK+iyoOespuWPtyA8IGZ1ZnVnb3VcIDsKK+mHjeeusSA8IGp1dWJha29cIDsKK+WQhOecjCA8IGtha3VrZW5cIDsKK+WPr+elnSA8IGthc2hpa3VcIDsKK+WQjOeXhSA8IGRvdWJ5b3VcIDsKK+Wkp+W+oeaJgCA8IG9vZ29zaG9cIDsKK+WPjue0jSA8IHNodXVub3VcIDsKK+epuuS4rSA8IGt1dWNodXVcIDsKK+m7kuadvyA8IGtva3ViYW5cIDsKK+iXgeeBsCA8IHdhcmFiYWlcIDsKK+WIhuW4g+WbsyA8IGJ1bnB1enVcIDsKK+mKg+aSgyA8IGp1dWdla2lcIDsKK+efs+mvmyA8IGlzaGlkYWlcIDsKK+mGnOiBniA8IHNodXVidW5cIDsKK+ijveWbs+WutiA8IHNlaXp1a2FcIDsKK+W+jOmAuCA8IGtvdWl0c3VcIDsKK+WPsOefsyA8IGRhaWlzaGlcIDsKK+WNk+irliA8IHRha3Vyb25cIDsKK+auv+mWoyA8IGRlbmtha3VcIDsKK+iWhOeariA8IHVzdWthd2FcIDsKK+aIpuaZguS4iyA8IHNlbmppa2FcIDsKK+WOmuiHvCA8IGF0c3V1c3VcIDsKK+WNmuimpyA8IGhha3VyYW5cIDsKK+Wkqeawl+WbsyA8IHRlbmtpenVcIDsKK+WNmOinkiA8IHRhbmtha3VcIDsKK+iZjuW3uyA8IHRvcmFrYW5cIDsKK+W9k+mZkCA8IHRvdWdpcmlcIDsKK+epjeWIhiA8IHNla2lidW5cIDsKK+mMr+S5sSA8IHNha3VyYW5cIDsKK+m7kuaWkSA8IGtva3VoYW5cIDsKK+ayu+eZgiA8IGNoaXJ5b3VcIDsKK+WNmOikhyA8IHRhbnB1a3VcIDsKK+aui+mrmCA8IHphbmRha2FcIDsKK+mJhOapiyA8IHRla2t5b3VcIDsKK+i7jeS6i+iyuyA8IGd1bmppaGlcIDsKK+a3t+S9nCA8IGtvbnNha3VcIDsKK+mHkeefsyA8IGtpbnNla2lcIDsKK+eCjuWkqeS4iyA8IGVudGVua2FcIDsKK+S7iuaXpeaYjuaXpSA8IGt5b3Vhc3VcIDsKK+WPjueojiA8IHNodXV6ZWlcIDsKK+aDnOaVlyA8IHNla2loYWlcIDsKK+eosuWPoiA8IGluYW11cmFcIDsKK+a1ruW9qyA8IHVraWJvcmlcIDsKK+W+jOi2syA8IGF0b2FzaGlcIDsKK+WMl+i+uiA8IGhva3VoZW5cIDsKK+iCpea6gOWFkCA8IGhpbWFuamlcIDsKK+mHo+eTtiA8IHRzdXJ1YmVcIDsKK+a1qua8q+a0viA8IHJvbWFuaGFcIDsKK+aFn+WTrSA8IGRvdWtva3VcIDsKK+aDkeaYnyA8IHdha3VzZWlcIDsKK+WNiuilnyA8IGhhbicnZXJpXCA7Civotbfph43mqZ8gPCBraWp1dWtpXCA7CivlnKfnoJXmqZ8gPCBhc3NhaWtpXCA7CivmrbvprYQgPCBzaGloYWt1XCA7Civlm57ot6/lm7MgPCBrYWlyb3p1XCA7CivnorrogZ4gPCBrYWt1YnVuXCA7CivmgYvnl4UgPCBrb2l5YW1pXCA7Civph5HnmoQgPCBraW50ZWtpXCA7CivljYroopYgPCBoYW5zb2RlXCA7CivlkLjmrrsgPCBzdWlnYXJhXCA7CivomavlnoIgPCBjaHV1c3VpXCA7CivmsJHooYYgPCBtaW5zaHV1XCA7CivlhbXlmajluqsgPCBoZWlraWtvXCA7CivpiYTmn7EgPCB0ZXRjaHV1XCA7Civmr47pgLEgPCBtYWlzaHV1XCA7CivmrovpoY0gPCB6YW5nYWt1XCA7Civmga/ngb0gPCBzb2t1c2FpXCA7CivlspDpmJznnIwgPCBnaWZ1a2VuXCA7CivlvLHpm7sgPCBqYWt1ZGVuXCA7CivolLXnsbMgPCBrdXJhbWFpXCA7CivmtbflsbEgPCB1bWl5YW1hXCA7Civmrovpn78gPCB6YW5reW91XCA7CivmtIvmpb0gPCB5b3VnYWt1XCA7Civph43nl4UgPCBqdXVieW91XCA7CivolqzmtrIgPCB5YWt1ZWtpXCA7CivoloTniakgPCB1c3Vtb25vXCA7CivoloTniYcgPCBoYWt1aGVuXCA7Civms6XmtbcgPCBkb3JvdW1pXCA7Civlurbli5noqrIgPCBzaG9tdWthXCA7CivlvqHooosgPCBvZnVrdXJvXCA7CivmsLToirggPCBtaXp1Z2VpXCA7CivljbPoiIggPCBzb2treW91XCA7Civnp5jlr4YgPCBoaW1pdHN1XCA7CivljbXohpwgPCByYW5tYWt1XCA7Civlj43nm64gPCBoYW5tb2t1XCA7CivmsLToibIgPCBtaXp1aXJvXCA7Civpm6LnuIHnirYgPCByaWVuam91XCA7CivolYPnpZ4gPCBiYW5zaGluXCA7Civph53nirYgPCBoYXJpam91XCA7Civmronpm6MgPCBqdW4nJ25hblwgOwor5b6L6KqeIDwgcml0c3Vnb1wgOwor5oGL54yrIDwga29pbmVrb1wgOwor5ZKM5byPIDwgd2FzaGlraVwgOwor5Y2Y6JGJIDwgdGFuJyd5b3VcIDsKK+m7meW+kyA8IG1va3VqdXVcIDsKK+mHkeeOiSA8IGtpbnRhbWFcIDsKK+mKgOW5lSA8IGdpbm1ha3VcIDsKK+efoumdoiA8IHlhb21vdGVcIDsKK+eojuWPjiA8IHplaXNodXVcIDsKK+eosuS9nCA8IGluYXNha3VcIDsKK+a0i+acjSA8IHlvdWZ1a3VcIDsKK+ato+imj+WMliA8IHNlaWtpa2FcIDsKK+WNsOiCiSA8IGluJyduaWt1XCA7CivmgKfnmZYgPCBzZWloZWtpXCA7CivlvIHpp4EgPCBiZW5wYWt1XCA7CivomK3lraYgPCByYW5nYWt1XCA7CivlkI3mtYEgPCBtZWlyeXV1XCA7CivmgbXmsqIgPCBrZWl0YWt1XCA7CivlvaLot6EgPCBrZWlzZWtpXCA7CivlkIzmtYEgPCBkb3VyeXV1XCA7CivlvJTpm7sgPCBjaG91ZGVuXCA7CivokL3pm7cgPCByYWt1cmFpXCA7Civlj4znkqcgPCBzb3VoZWtpXCA7CivmgqrmlrkgPCBha3VnYXRhXCA7CivlkIjmtYEgPCBnb3VyeXV1XCA7CivokL3pm4EgPCByYWt1Z2FuXCA7CivnpL7mrbQgPCBzaGFyZWtpXCA7CivokL3pmb0gPCByYWt1eW91XCA7Civph43niIYgPCBqdXViYWt1XCA7Civku4rlh7rmnaUgPCBpbWFkZWtpXCA7Civpu5LluK8gPCBrdXJvb2JpXCA7Civlj5nniLUgPCBqb3NoYWt1XCA7CivljJfopb8gPCBob2t1c2VpXCA7CivmpJzms6LlmaggPCBrZW5wYWtpXCA7Civlj6PngasgPCBrdWNoaWJpXCA7Civlj5TniLYgPCBzaHVrdWZ1XCA7Civms6Xmo5IgPCBkb3JvYm91XCA7CivmsYHnsokgPCBzaGlydWtvXCA7CivlvLHphbggPCBqYWt1c2FuXCA7CivolLXnm7ggPCB6b3VzaG91XCA7CivljYPojYkgPCBjaGlndXNhXCA7CivlkKvmnIkgPCBnYW4nJ3l1dVwgOwor5Y+N54mpIDwgdGFubW9ub1wgOwor6bOl6aGeIDwgY2hvdXJ1aVwgOwor5byB6ZujIDwgYmVuJyduYW5cIDsKK+WNs+e0jSA8IHNva3Vub3VcIDsKK+ekvualrSA8IHNoYWd5b3VcIDsKK+awl+iEiCA8IGtpbXlha3VcIDsKK+ekvOalvSA8IHJlaWdha3VcIDsKK+avjeimqiA8IGhhaGFveWFcIDsKK+enu+WHuiA8IGlzaHV0c3VcIDsKK+W+s+iCsiA8IHRva3Vpa3VcIDsKK+ejgeefsyA8IGppc2hha3VcIDsKK+a2iOWOuyA8IHNob3VreW9cIDsKK+mGnOeUtyA8IGJ1b3Rva29cIDsKK+egtOijgiA8IGhhcmV0c3VcIDsKK+a2iOWNsCA8IGtlc2hpaW5cIDsKK+WQjOalrSA8IGRvdWd5b3VcIDsKK+engeWhviA8IHNoaWp1a3VcIDsKK+aCquaIryA8IGl0YXp1cmFcIDsKK+WLlei7uCA8IGRvdWppa3VcIDsKK+eip+epuiA8IGhla2lrdXVcIDsKK+WKiOmgrSA8IGhla2l0b3VcIDsKK+iYreWbvSA8IHJhbmtva3VcIDsKK+WNs+etlCA8IHNva3V0b3VcIDsKK+S4i+S7mOmHkSA8IGthZnVraW5cIDsKK+mJhOW/gyA8IHRlc3NoaW5cIDsKK+avm+iZqyA8IGtlbXVzaGlcIDsKK+mBv+mbo+aJgCA8IGhpbmFuam9cIDsKK+aBi+aysyA8IGtvaWthd2FcIDsKK+mFjee1piA8IGhhaWt5dXVcIDsKK+WQjOagvCA8IGRvdWtha3VcIDsKK+eJh+aEj+WcsCA8IGthdGFpamlcIDsKK+iWrOaWuSA8IHlha3Vob3VcIDsKK+a0u+WtlyA8IGthdHN1amlcIDsKK+WTgOWIpSA8IGFpYmV0c3VcIDsKK+W+kuiKsSA8IGFkYWJhbmFcIDsKK+ekvOacjSA8IHJlaWZ1a3VcIDsKK+aBi+awtCA8IGtvaW1penVcIDsKK+WTgOWIhyA8IGFpc2V0c3VcIDsKK+WQiOagvCA8IGdvdWtha3VcIDsKK+a1t+WOnyA8IHVuYWJhcmFcIDsKK+m6u+WxkSA8IGFzYWt1enVcIDsKK+WPpOaxoCA8IGZ1cnVpa2VcIDsKK+aEmuWKoyA8IGd1cmV0c3VcIDsKK+efrei7uCA8IHRhbmppa3VcIDsKK+mGnOeKtiA8IHNodXVqb3VcIDsKK+WQhOagoSA8IGtha3Vrb3VcIDsKK+aBi+atuyA8IGtvaWppbmlcIDsKK+aCquW+syA8IGFrdXRva3VcIDsKK+awl+e1tiA8IGtpemV0c3VcIDsKK+ayiOa+sSA8IGNoaW5kZW5cIDsKK+WKiOmWiyA8IGhla2lrYWlcIDsKK+WPpOatjCA8IGZ1cnV1dGFcIDsKK+iQvemBuCA8IHJha3VzZW5cIDsKK+WJr+mhjCA8IGZ1a3VkYWlcIDsKK+W8j+mDqCA8IHNoaWtpYnVcIDsKK+WNnOetriA8IGJva3V6ZWlcIDsKK+WMu+WtpumDqCA8IGlnYWt1YnVcIDsKK+WRguW+iyA8IHJvcmV0c3VcIDsKK+iRiei6qyA8IHlvdXNoaW5cIDsKK+W+kOiEiCA8IGpvbXlha3VcIDsKK+eip+ecvCA8IGhla2lnYW5cIDsKK+W+jOiFuSA8IGF0b2JhcmFcIDsKK+attOmBiiA8IHJla2l5dXVcIDsKK+S6iOWgsemfsyA8IHlvaG91b25cIDsKK+W9rOiUmiA8IGhpbnV0c3VcIDsKK+emheWvuiA8IHplbmRlcmFcIDsKK+miqOWRguS7oyA8IGZ1cm9kYWlcIDsKK+atu+i7uCA8IHNoaWppa3VcIDsKK+a1geWfnyA8IHJ5dXVpa2lcIDsKK+W+jOefpeaBtSA8IGF0b2RqaWVcIDsKK+m2tOenkSA8IHRzdXJ1a2FcIDsKK+aBreaVrCA8IGt5b3VrZWlcIDsKK+axjueUqCA8IGhhbicneW91XCA7Civlt67mqZ/plqIgPCBzYWtpa2FuXCA7Civlj5Tmr40gPCBzaHVrdWJvXCA7Civnp4DlkJ8gPCBzaHV1Z2luXCA7CivliY3pq6ogPCBtYWVnYW1pXCA7CivlkoDlmrwgPCBzb3NoYWt1XCA7CivmrrromasgPCBzYXRjaHV1XCA7Civli6TooYwgPCBnb25neW91XCA7CivoqZDmrLrluKsgPCBzYWdpc2hpXCA7CivljbXnmb0gPCByYW5wYWt1XCA7Civph5Hmo5IgPCBrYW5hYm91XCA7CivluqfpqqggPCB6YWtvdHN1XCA7CivlvrTnqI4gPCBjaG91emVpXCA7CivlirTos4MgPCByb3VjaGluXCA7CivlkIjmjowgPCBnYXNzaG91XCA7CivlpJbnpZbniLYgPCBnYWlzb2Z1XCA7Civli4XoqLEgPCBjaG9ra3lvXCA7Civnn63oqZUgPCB0YW5weW91XCA7Civoq5bnkIblkowgPCByb25yaXdhXCA7Civnp5jku48gPCBoaWJ1dHN1XCA7Civph47llrblnLAgPCB5YWVpY2hpXCA7CivmtbfkuoAgPCB1bWlnYW1lXCA7CivpgoHpgLIgPCBtYWlzaGluXCA7Civpm7Dlm7LmsJcgPCBmdW4nJ2lraVwgOwor5Zug576O57eaIDwgaW5iaXNlblwgOwor5Y+k5pysIDwgZnVydWJvblwgOwor5Y+N5qeYIDwga2Fpc2FtYVwgOwor5rCR56aPIDwgbWlucHVrdVwgOwor5rCX5LiI5aSrIDwga2lqb3VidVwgOwor5Yid5pyf5YyWIDwgc2hva2lrYVwgOwor6YGF6ZycIDwgb3Nvamltb1wgOwor5rSb5aSWIDwgcmFrdWdhaVwgOwor6YWS55mWIDwgc2h1aGVraVwgOwor6YKq6KqsIDwgamFzZXRzdVwgOwor5rCP56WeIDwgdWppZ2FtaVwgOwor5q616JC9IDwgZGFucmFrdVwgOwor5ZG75ZCfIDwgc2hpbmdpblwgOwor6YmE5aOBIDwgdGVwcGVraVwgOwor56eL5L2cIDwgYWtpc2FrdVwgOwor5Yy656uLIDwga3VyaXRzdVwgOwor5ZCE5omAIDwga2FrdXNob1wgOwor5oOo5YqHIDwgc2FuZ2VraVwgOwor5oGL5paHIDwga29pYnVtaVwgOwor5rOV5oKmIDwgaG91ZXRzdVwgOwor6YKm6KizIDwgaG91eWFrdVwgOwor5rC055CDIDwgc3Vpa3l1dVwgOwor5rWm5Lq6IDwgdXJhYml0b1wgOwor6YqA5YG0IDwgZ2luZ2F3YVwgOwor5Y+W5pu/IDwgdG9yaWthZVwgOwor5q2p6KGM5ZmoIDwgaG9rb3VraVwgOwor5YmN6ZmzIDwgemVuY2hpblwgOwor55+z6J2LIDwgc2VraXJvdVwgOwor6JOs55SfIDwgeW9tb2dpdVwgOwor5rWB5YuVIDwgcnl1dWRvdVwgOwor5rmv6LGG6IWQIDwgeXVkb3VmdVwgOwor6KOP6IOM5oi4IDwgdXJhc2Vkb1wgOwor6YCG6bGXIDwgZ2VraXJpblwgOwor55+l6KGMIDwgY2hpZ3lvdVwgOwor5ZCM5b25IDwgZG91eWFrdVwgOwor6YW45ry/IDwgaG9venVraVwgOwor5q206KanIDwgcmVraXJhblwgOwor5rC054miIDwgbWl6dXJvdVwgOwor5rC054mbIDwgc3VpZ3l1dVwgOwor5pS+55Sf5LyaIDwgaG91am91ZVwgOwor6IKy5YWQ6ZmiIDwgaWt1amlpblwgOwor5LiN5L2c54K6IDwgZnVzYWt1aVwgOwor6bOl6LKdIDwgdG9yaWdhaVwgOwor5rC054iGIDwgc3VpYmFrdVwgOwor5q2m6KOF5YW3IDwgYnVzb3VndVwgOwor5YyX57GzIDwgaG9rdWJlaVwgOwor5LiL6aeE55WqIDwgZ2V0YWJhblwgOwor5Y2T55SoIDwgdGFrdXlvdVwgOwor5Ym96Lu9IDwgaHlvdWtpblwgOwor5ZKO5Lq6IDwgdG9nYW5pblwgOwor6JGJ6JyCIDwgaGFiYWNoaVwgOwor5b6z55SoIDwgdG9rdXlvdVwgOwor5Y2B55uuIDwganV1bW9rdVwgOwor5ZCM5bitIDwgZG91c2VraVwgOwor55yf6buSIDwgbWFra3Vyb1wgOwor6Ieq5YuV5YyWIDwgamlkb3VrYVwgOwor5Yqj6KeSIDwgcmVra2FrdVwgOwor6Jas5a6zIDwgeWFrdWdhaVwgOwor56aE5ZG9IDwgcm9rdW1laVwgOwor5Yi76ZmQIDwga29rdWdlblwgOwor5ZCb5a+1IDwga3VuY2hvdVwgOwor5ZCE5bqXIDwga2FrdXRlblwgOwor5Y2T55CDIDwgdGFra3l1dVwgOwor54Sh6YGg5oWuIDwgYnVlbnJ5b1wgOwor6YGL5YuV5aC0IDwgdW5kb3ViYVwgOwor5a626KiI6LK7IDwga2FrZWloaVwgOwor56aA5ZGKIDwgcmlua29rdVwgOwor5ZGo5YiwIDwgc2h1dXRvdVwgOwor5rGX5rC0IDwgYXNlbWl6dVwgOwor5YyX56uvIDwgaG9rdXRhblwgOwor6Z+z5qW95a62IDwgb25nYWtrYVwgOwor6buS5Lq6IDwga29rdWppblwgOwor5b2856iLIDwgYXJlaG9kb1wgOwor6YGT6L66IDwgbWljaGliZVwgOwor5q2m6KGTIDwgYnVqdXRzdVwgOwor5aSW56WW5q+NIDwgZ2Fpc29ib1wgOwor5q6L6I+KIDwgemFuZ2lrdVwgOwor5rKh5oiRIDwgYm90c3VnYVwgOwor5rWB5LqhIDwgcnl1dWJvdVwgOwor5Yq05YuZ6KqyIDwgcm91bXVrYVwgOwor5Yid6Z+zIDwgaGF0c3VuZVwgOwor6YO956uLIDwgdG9yaXRzdVwgOwor5Yil6ZuiIDwgYmV0c3VyaVwgOwor5b6T55qEIDwganV1dGVraVwgOwor56C056u5IDwgaGFjaGlrdVwgOwor6JK855m9IDwgc291aGFrdVwgOwor5rC05ru0IDwgc3VpdGVraVwgOwor5Yqb6KGMIDwgcnlva2tvdVwgOwor54Sh6LuM6YGTIDwgbXVraWRvdVwgOwor6YG46KmVIDwgc2VucHlvdVwgOwor56Sr5bKpIDwgcmVraWdhblwgOwor5ZCE5bGkIDwga2FrdXNvdVwgOwor5Yil6ZmiIDwgYmV0c3VpblwgOwor5YqH6KmpIDwgZ2VraXNoaVwgOwor6YmE5YmHIDwgdGVzc29rdVwgOwor6YGF6YCfIDwgY2hpc29rdVwgOwor56Kn5rC0IDwgaGVraXN1aVwgOwor55+z6Ie8IDwgaXNoaXVzdVwgOwor5bm06aGNIDwgbmVuZ2FrdVwgOwor5Yil6ZaTIDwgYmV0c3VtYVwgOwor5rGB5rCXIDwgc2hpcnVrZVwgOwor5rSb5YaFIDwgcmFrdW5haVwgOwor5q+O56eSIDwgbWFpYnlvdVwgOwor5b6u54axIDwgYmluZXRzdVwgOwor5rC05rW0IDwgc3VpeW9rdVwgOwor5oOR5LmxIDwgd2FrdXJhblwgOwor6IOD55eZ5pSjIDwgaWtlaXJlblwgOwor5Y+k5byPIDwga29zaGlraVwgOwor6YGL5YuV5ZOhIDwgdW5kb3VpblwgOwor5qmf5qKw6KqeIDwga2lrYWlnb1wgOwor5Y2K54afIDwgaGFuanVrdVwgOwor5rC05rWBIDwgc3Vpcnl1dVwgOwor5Y6f5pyoIDwgZ2VuYm9rdVwgOwor5Yuk57aaIDwga2luem9rdVwgOwor6YC86L+rIDwgaGlwcGFrdVwgOwor5Y6a5p2/IDwgYXRzdWl0YVwgOwor576O5a656ZmiIDwgYml5b3VpblwgOwor5byx6ICFIDwgamFrdXNoYVwgOwor6YeR5bmzIDwga2lucGlyYVwgOwor5Y2x5rCXIDwgYWJ1bmFnZVwgOwor5oCl5omAIDwga3l1dXNob1wgOwor5q6756u/IDwga2FyYXNhb1wgOwor5LiA6Lui5qmfIDwgaXR0ZW5raVwgOwor5Y+W5b6XIDwgc2h1dG9rdVwgOwor5Y2z5q27IDwgc29rdXNoaVwgOwor6bSH6ImyIDwgdG9raWlyb1wgOwor5Y+w5bC7IDwgZGFpamlyaVwgOwor5p2T5paH5a2XIDwgc2hhbW9qaVwgOwor6L+96ZqPIDwgdHN1aXp1aVwgOwor5Yuy56ugIDwga3Vuc2hvdVwgOwor6YCj6YePIDwgcmVucnlvdVwgOwor5o6i5p+75qmfIDwgdGFuc2FraVwgOwor55Sw6IiO5a62IDwgaW5ha2F5YVwgOwor5ZCI5aOBIDwgZ2FwcGVraVwgOwor5Ye66aGNIDwgZGViaXRhaVwgOwor5Yi56YKjIDwgc2V0c3VuYVwgOwor5bm06ZW3IDwgbmVuY2hvdVwgOwor5Ye66aCtIDwgc2h1dHRvdVwgOwor5YiH6ZmkIDwgc2V0c3Vqb1wgOwor6JGt57CAIDwgeW9zaGl6dVwgOwor6YGL6Lui6LK7IDwgdW50ZW5oaVwgOwor5qmZ55qu5rK5IDwgdG91aGl5dVwgOwor5rSL5YKYIDwgeW91Z2FzYVwgOwor6YGO5bm05bqmIDwga2FuZW5kb1wgOwor56CU56m2IDwga2Vua3l1dVwgOwor6YCy6LuNIDwgc2hpbmd1blwgOwor6YWS5q+SIDwgc2h1ZG9rdVwgOwor6Jas5ZOBIDwgeWFrdWhpblwgOwor5rKI5oCdIDwgY2hpbnNoaVwgOwor5Y2X5rSLIDwgbmFuJyd5b3VcIDsKK+atu+iCiSA8IHNoaW5pa3VcIDsKK+aAneaDkSA8IG9tb3dha3VcIDsKK+mztuiJsiA8IHRvYmlpcm9cIDsKK+mBi+WLleWFtyA8IHVuZG91Z3VcIDsKK+iQveiDhiA8IHJha3V0YW5cIDsKK+mzpeiRrCA8IGNob3Vzb3VcIDsKK+ayouWxsSA8IHRha3VzYW5cIDsKK+W+oeWtmOefpSA8IGdvem9uamlcIDsKK+WIuui6qyA8IHNhc2hpbWlcIDsKK+WQhOWcsCA8IGtha3VjaGlcIDsKK+iWhOWiqCA8IHVzdXp1bWlcIDsKK+WutuaUv+enkSA8IGthc2Vpa2FcIDsKK+WQhOWbvSA8IGtha2tva3VcIDsKK+iRpuesmyA8IGFzaGlidWVcIDsKK+Wwj+Wlh+m6lyA8IGtvZ2lyZWlcIDsKK+W5lembuyA8IG1ha3VkZW5cIDsKK+WJpeijvSA8IGhha3VzZWlcIDsKK+mGnOaFiyA8IHNodXV0YWlcIDsKK+efree1oSA8IHRhbnJha3VcIDsKK+enu+S9j+iAhSA8IGlqdXVzaGFcIDsKK+awkeaziiA8IG1pbnBha3VcIDsKK+ekvuWRiiA8IHNoYWtva3VcIDsKK+W8geiGnCA8IGJlbm1ha3VcIDsKK+mBk+WFt+WxiyA8IGRvdWd1eWFcIDsKK+mGnOaCqiA8IHNodXVha3VcIDsKK+iWrOWJpCA8IHlha3V6YWlcIDsKK+avlOeOhyA8IGhpcml0c3VcIDsKK+W8iue/kiA8IGhlaXNodXVcIDsKK+W9ueeJmyA8IGVraWd5dXVcIDsKK+WQjOe+qeiqniA8IGRvdWdpZ29cIDsKK+ayvOWcsCA8IG51bWFjaGlcIDsKK+iOq+mAoyA8IGJha3VyZW5cIDsKK+azleWQjSA8IGhvdW15b3VcIDsKK+aooeaTrOaIpiA8IG1vZ2lzZW5cIDsKK+WInemAnyA8IHNob3Nva3VcIDsKK+WQjeWPtyA8IG15b3Vnb3VcIDsKK+azleWNmiA8IGhvdWhha3VcIDsKK+mAhumBiyA8IGd5YWt1dW5cIDsKK+eciembqiA8IGJpc2V0c3VcIDsKK+WHuOmPoSA8IHRva2t5b3VcIDsKK+WQiOWPoyA8IGFpa3VjaGlcIDsKK+ekvuWJhyA8IHNoYXNva3VcIDsKK+iNkumnkiA8IGFyYWdvbWFcIDsKK+awuOaXpSA8IGVpaml0c3VcIDsKK+WIhumHnSA8IGZ1bnNoaW5cIDsKK+WIhumHjyA8IGJ1bnJ5b3VcIDsKK+iSsuWFrOiLsSA8IHRhbnBvcG9cIDsKK+WIpei3ryA8IGJldHN1cm9cIDsKK+azleWKmyA8IGhvdXJpa2lcIDsKK+avlOeGsSA8IGhpbmV0c3VcIDsKK+azleWJhyA8IGhvdXNva3VcIDsKK+eoveWPpOedgCA8IGtlaWtvZ2lcIDsKK+eevCA8IG1hYnV0YVwgOwor6L63IDwgc3ViZXJ1XCA7CivnnrMgPCBoaXRvbWlcIDsKK+i8qSA8IHlha2FyYVwgOwor55uyIDwgbWVzaGlpXCA7Civou4ogPCBrdXJ1bWFcIDsKK+W6jyA8IHRzdWlkZVwgOwor55qGIDwgbWluJyduYVwgOwor5bmVIDwgdG9iYXJpXCA7CivluJ0gPCBtaWthZG9cIDsKK+W3piA8IGhpZGFyaVwgOwor55a+IDwgc2hpdHN1XCA7CivnlbMgPCB0YXRhbWlcIDsKK+eVoCA8IGhhdGFrZVwgOwor55OmIDwga2F3YXJhXCA7CivlsqwgPCBtaXNha2lcIDsKK+WxiiA8IHRvZG9rZVwgOwor5bCKIDwgbWlrb3RvXCA7Civlrp0gPCB0YWthcmFcIDsKK+eNoyA8IGtlbW9ub1wgOwor54u8IDwgb29rYW1pXCA7Civni6wgPCBkb2l0c3VcIDsKK+iqoCA8IG1ha290b1wgOwor6Ki8IDwgYWthc2hpXCA7CivniLYgPCBjaGljaGlcIDsKK+iomyA8IG5hbWFyaVwgOwor5aiYIDwgbXVzdW1lXCA7Civlp78gPCBzdWdhdGFcIDsKK+WmviA8IHdhcmF3YVwgOwor5aa5IDwgaW1vdXRvXCA7CivopoEgPCBrYW5hbWVcIDsKK+iltyA8IHRhc3VraVwgOwor54WZIDwga2VtdXJpXCA7CivopZYgPCBmdXN1bWFcIDsKK+ijuCA8IGhhZGFrYVwgOwor6KK0IDwgaGFrYW1hXCA7CivooosgPCBmdWt1cm9cIDsKK+ihoyA8IGtvcm9tb1wgOwor5Z+DIDwgaG9rb3JpXCA7Civon4AgPCBzaHV0c3VcIDsKK+m8rCA8IGl0YWNoaVwgOwor6bygIDwgbmV6dW1pXCA7CivlnJ8gPCB0c3VjaGlcIDsKK+a8hiA8IHVydXNoaVwgOwor6Ju5IDwgc2FuYWdpXCA7Civom5kgPCBrYXdhenVcIDsKK+WZqCA8IHV0c3V3YVwgOwor5rivIDwgbWluYXRvXCA7CivolqwgPCBrdXN1cmlcIDsKK+iWqiA8IHRha2lnaVwgOwor5raZIDwgbmFtaWRhXCA7CivolocgPCB6ZW5tYWlcIDsKK+iWhCA8IHN1c3VraVwgOwor6bSJIDwga2FyYXN1XCA7CivljqggPCBrdXJpeWFcIDsKK+WNuCA8IG9yb3NoaVwgOwor5Y21IDwgdGFtYWdvXCA7CivmraogPCBpYml0c3VcIDsKK+mtmiA8IHNha2FuYVwgOwor5Y2XIDwgbWluYW1pXCA7CivljKAgPCB0YWt1bWlcIDsKK+aruyA8IHNha3VyYVwgOwor6Iu6IDwgaWNoaWdvXCA7Civli6IgPCBoYXp1bWlcIDsKK+aqnCA8IGhpbm9raVwgOwor6IiFIDwgc2h1dXRvXCA7CivmpoogPCBzYWtha2lcIDsKK+WFiSA8IGhpa2FyaVwgOwor6aSoIDwgeWFrYXRhXCA7CivlgJkgPCBzb3Vyb3VcIDsKK+mfvyA8IGhpYmlraVwgOwor5p+zIDwgeWFuYWdpXCA7Civkv4QgPCBuaXdha2FcIDsKK+S/giA8IGtha2FyaVwgOwor5L6/IDwgeW9zdWdhXCA7CivmnpUgPCBtYWt1cmFcIDsKK+acuiA8IHRzdWt1ZVwgOwor5LuPIDwgaG90b2tlXCA7Civmm4cgPCBrdW1vcmlcIDsKK+mbgCA8IHN1enVtZVwgOwor5LqsIDwgbWl5YWtvXCA7CivpmqMgPCB0b25hcmlcIDsKK+S5mSA8IGtpbm90b1wgOwor5LmNIDwgbmFnYXJhXCA7CivkuIcgPCB5b3JvenVcIDsKK+S4gyA8IHNoaWNoaVwgOwor5LiBIDwgaGlub3RvXCA7Civnt5EgPCBtaWRvcmlcIDsKK+e1oyA8IGthc3VyaVwgOwor57WGIDwga2l6dW5hXCA7CivnsL4gPCBzdWRhcmVcIDsKK+mPoSA8IGthZ2FtaVwgOwor6Y6WIDwga3VzYXJpXCA7CivnrZIgPCB0c3V0c3VcIDsKK+aNjCA8IHNhYmFraVwgOwor6Yu8IDwgaGFnYW5lXCA7Civnq6UgPCB3YXJhYmVcIDsKK+mLjyA8IGhhc2FtaVwgOwor5omJIDwgdG9iaXJhXCA7CivmiYAgPCB0b2tvcm9cIDsKK+W7g+iZmiA8IGhhaWt5b1wgOwor5b+/5oCSIDwgZnVuJydudVwgOwor6YCB6L+OIDwgc291Z2VpXCA7Civov4Xpm7cgPCBqaW5yYWlcIDsKK+W/l+aTjSA8IHNoaXNvdVwgOwor6YCa6LKoIDwgdHN1dWthXCA7CivlkI3liLogPCBtZWlzaGlcIDsKK+WQjOWJjSA8IGRvdXplblwgOwor56S85YW4IDwgcmVpdGVuXCA7CivliY3ooZsgPCB6ZW4nJ2VpXCA7Civnn6LnrYggPCB5YWhhenVcIDsKK+mHkeWdkSA8IGtpbmtvdVwgOwor5Y6f5b2iIDwgZ2Vua2VpXCA7CivlvqnmqKkgPCBmdWtrZW5cIDsKK+WJjeihjCA8IHplbmtvdVwgOwor5ZCN5YiGIDwgbWVpYnVuXCA7CivlvaLnirYgPCBrZWlqb3VcIDsKK+WIl+i7iiA8IHJlc3NoYVwgOwor5ZCN5YiAIDwgbWVpdG91XCA7Civlu4Pol6kgPCBoYWloYW5cIDsKK+mFjeacrCA8IGhhaWhvblwgOwor5Y6a5b+XIDwga291c2hpXCA7CivoloTlkbMgPCBoYWt1bWlcIDsKK+ekvuWDpyA8IHNoYXNvdVwgOwor5ZCI5YmkIDwgZ291emFpXCA7CivlkIzlh6YgPCBkb3VzaG9cIDsKK+azleWFuCA8IGhvdXRlblwgOwor56S+5YK1IDwgc2hhc2FpXCA7CivlubTovKogPCBuZW5yaW5cIDsKK+W5tOi8qSA8IG5lbnBhaVwgOwor56OB5b+DIDwgamlzaGluXCA7CivliIbpgaMgPCBidW5rZW5cIDsKK+WPi+WlvSA8IHl1dWtvdVwgOwor5Yuk55WqIDwga2luYmFuXCA7Civnn7PnopEgPCBzZWtpaGlcIDsKK+WQiOWIhyA8IGdhc3NhaVwgOwor6YCA6LuiIDwgdGFpdGVuXCA7CivmraPnt6ggPCBzZWloZW5cIDsKK+WPjeWkiSA8IGhhbnBlblwgOwor5Y+x5ZKkIDwgc2hpdHRhXCA7CivlkIzlhZogPCBkb3V0b3VcIDsKK+W5vei2oyA8IHl1dXNodVwgOwor5Yqg57WmIDwga2FreXV1XCA7CivlkI3lhKogPCBtZWl5dXVcIDsKK+WOs+WwgSA8IGdlbnB1dVwgOwor5biv6Zu7IDwgdGFpZGVuXCA7Civlvovms5UgPCByaXBwb3VcIDsKK+WHjOmbsiA8IHJ5b3V1blwgOwor5b+r5oSfIDwga2Fpa2FuXCA7CivpgbjogIMgPCBzZW5rb3VcIDsKK+efoueoriA8IHlhZGFuZVwgOwor5rGO5oSbIDwgaGFuJydhaVwgOwor5by355uXIDwgZ291dG91XCA7CivljrPlr5IgPCBnZW5rYW5cIDsKK+mHj+WZqCA8IHJ5b3VraVwgOwor5ZCN5YOnIDwgbWVpc291XCA7CivmraPntbEgPCBzZWl0b3VcIDsKK+mBiuiVqSA8IHl1dXRvdVwgOwor5rG65a6aIDwga2V0dGVpXCA7CivokrjmsJEgPCBqb3VtaW5cIDsKK+W8vueXlSA8IGRhbmtvblwgOwor6YeN5Zm4IDwganV1dG9uXCA7Civov4Lpl4ogPCB1a2F0c3VcIDsKK+mAoOipoyA8IHpvdWtlaVwgOwor5reh44CFIDwgdGFudGFuXCA7CivljrPlroggPCBnZW5zaHVcIDsKK+WPsOWQjSA8IHRhaW1laVwgOwor5Y6z5a2YIDwgZ2Vuc29uXCA7CivmraPns7sgPCBzZWlrZWlcIDsKK+mCquelniA8IGphc2hpblwgOwor6L666ZmsIDwgaGVuc3V1XCA7CivpgKDoqIAgPCB6b3VnZW5cIDsKK+mAg+i1sCA8IHRvdXNvdVwgOwor6YCa6KqeIDwgdHN1dWdvXCA7CivliIbovIkgPCBidW5zYWlcIDsKK+mFuOaApyA8IHNhbnNlaVwgOwor55u46ZaiIDwgc291a2FuXCA7CivlvozmrrUgPCBrb3VkYW5cIDsKK+ekvuS8miA8IHNoYWthaVwgOwor6YCa6KmxIDwgdHN1dXdhXCA7CivlvqnmoKEgPCBmdWtrb3VcIDsKK+WQjOWApCA8IGRvdWNoaVwgOwor5YiH6LqrIDwga2lyaW1pXCA7CivlkJvkuLsgPCBrdW5zaHVcIDsKK+iNiemeiyA8IHdhcmFqaVwgOwor5rOV5L6LIDwgaG91cmVpXCA7CivliLboo4EgPCBzZWlzYWlcIDsKK+WNl+aWuSA8IG5hbnBvdVwgOwor5YyX5rW3IDwgaG9ra2FpXCA7Civlv6DmhJsgPCBjaHV1YWlcIDsKK+mHkeWToSA8IGtpbicnaW5cIDsKK+WNmOaWhyA8IHRhbmJ1blwgOwor56K65bqmIDwga2FrdWRvXCA7CivmsJHmnJsgPCBtaW5ib3VcIDsKK+iWhOWIqSA8IGhha3VyaVwgOwor56S+5LqkIDwgc2hha291XCA7Civlvq7mnI0gPCBiaWZ1a3VcIDsKK+axguaEmyA8IGt5dXVhaVwgOwor5Y2Y5pWwIDwgdGFuc3V1XCA7Civlv4XmkLogPCBoaWtrZWlcIDsKK+mHkeWTgSA8IGtpbnBpblwgOwor5Yqj562JIDwgcmV0dG91XCA7Civnm6TpnaIgPCBiYW5tZW5cIDsKK+WMoOawlyA8IHNob3VraVwgOwor5YuV55SjIDwgZG91c2FuXCA7Civlu7bntI0gPCBlbicnbm91XCA7CivnoJXniYcgPCBzYWloZW5cIDsKK+ecn+mAhiA8IG1hc2FrYVwgOwor5ZCM5L2TIDwgZG91dGFpXCA7CivmsrPljJcgPCBrYWhva3VcIDsKK+ekvuS4uyA8IHNoYXNodVwgOwor5Y2X5pSvIDwgbmFuc2hpXCA7Civlj6PlkLsgPCBrb3VmdW5cIDsKK+W8vueQtCA8IGRhbmtpblwgOwor5bir6ZaAIDwgc2hpbW9uXCA7CivmsJfml6kgPCBraWJheWFcIDsKK+aApeWgtCA8IGt5dXViYVwgOwor5ZCM5Ly0IDwgZG91aGFuXCA7CivpgKPooaEgPCByZW5rb3VcIDsKK+WPo+WQnyA8IGtvdWdpblwgOwor5rOV5Lq6IDwgaG91amluXCA7CivlhrfpnZkgPCByZWlzZWlcIDsKK+i/lOmHkSA8IGhlbmtpblwgOwor5Y+C5aCCIDwgc2FuZG91XCA7Civlv6vlvIEgPCBrYWliZW5cIDsKK+W/oOaBlSA8IGNodXVqb1wgOwor5Y+s5YufIDwgc2hvdWJvXCA7CivlkIjkvbUgPCBnb3VoZWlcIDsKK+WQkOS5syA8IHRvbnl1dVwgOwor5ZCN5Lq6IDwgbWVpamluXCA7CivlkIjkvZMgPCBnYXR0YWlcIDsKK+iWhOWFiSA8IGhha2tvdVwgOwor6JST5bu2IDwgbWFuJydlblwgOwor5b2T54S2IDwgdG91emVuXCA7Civlj43lmawgPCBoYW56ZWlcIDsKK+WOn+WvuCA8IGdlbnN1blwgOwor5ZCM5LuBIDwgZG91amluXCA7CivlkIzkurogPCBkb3VuaW5cIDsKK+WFuOm6lyA8IHRlbnJlaVwgOwor5ZCR5LiKIDwga291am91XCA7Civlt6Ppto8gPCBzdWRvcmlcIDsKK+WNgeacrCA8IGp1cHBvblwgOwor5buD6ImmIDwgaGFpa2FuXCA7CivmsZ/lsbEgPCBrb3V6YW5cIDsKK+W6p+iWrCA8IHpheWFrdVwgOwor6JCO57iuIDwgaXNodWt1XCA7Civph43lkIggPCBqdXVnb3VcIDsKK+W6g+iogCA8IGtvdWdlblwgOwor5buD6Ii5IDwgaGFpc2VuXCA7Civlu5DogqUgPCBreXV1aGlcIDsKK+WQjOS5lyA8IGRvdWpvdVwgOwor5b+c5oClIDwgb3VreXV1XCA7CivpgYroirggPCB5dXVnZWlcIDsKK+aui+eXlSA8IHphbmtvblwgOwor5YmN6JGXIDwgemVuY2hvXCA7Civoj5bokrIgPCBzaG91YnVcIDsKK+mHjuWOnyA8IG5vaGFyYVwgOwor5rG65aOKIDwga2Vra2FpXCA7Civljp/lrZAgPCBnZW5zaGlcIDsKK+avm+awiCA8IG1vdXNlblwgOwor5Y2g5ougIDwgc2Vua3lvXCA7CivliKXoo70gPCBiZXNzZWlcIDsKK+W8iuekviA8IGhlaXNoYVwgOwor5q+U5rOBIDwgaGlreW91XCA7CivpgI/oppYgPCB0b3VzaGlcIDsKK+WNiuaVsCA8IGhhbnN1dVwgOwor6Yac5aWzIDwgc2h1dWpvXCA7Civlirnnm64gPCBraWtpbWVcIDsKK+awkeaUvyA8IG1pbnNlaVwgOwor6bO056a9IDwgbWVpa2luXCA7CivmsJHmlL4gPCBtaW5wb3VcIDsKK+i/kemDtyA8IGtpbmdvdVwgOwor6YWS5omLIDwgc2FrYXRlXCA7Civov5TpgoQgPCBoZW5rYW5cIDsKK+W8k+efoiA8IHl1bWl5YVwgOwor5YmN6I+cIDwgemVuc2FpXCA7Civlj43llY8gPCBoYW5tb25cIDsKK+WHpumBhyA8IHNob2d1dVwgOwor5b+D5oqAIDwgc2hpbmdpXCA7CivliJ3oposgPCBzaG9rZW5cIDsKK+asoOiIqiA8IGtla2tvdVwgOwor55uX6Zu7IDwgdG91ZGVuXCA7Civlt6jpr6ggPCBreW9nZWlcIDsKK+ayg+WcnyA8IHlva3Vkb1wgOwor5be76aaWIDwga2Fuc2h1XCA7Civlh7rotrMgPCBkZWFzaGlcIDsKK+aui+eUnyA8IHphbnNlaVwgOwor5YyX5qynIDwgaG9rdW91XCA7Civnm5fpm6MgPCB0b3VuYW5cIDsKK+WKoOemhCA8IGthcm9rdVwgOwor5Y+35L+4IDwgZ291aG91XCA7CivljbHmgKUgPCBraWt5dXVcIDsKK+WJm+iHhiA8IGdvdW9rdVwgOwor5by+54mHIDwgZGFucGVuXCA7CivnnIzpgZMgPCBrZW5kb3VcIDsKK+WNs+W/nCA8IHNva3VvdVwgOwor5q2m56WeIDwgYnVzaGluXCA7Civov5TpgIEgPCBoZW5zb3VcIDsKK+W+qeaUuSA8IGZ1a2thaVwgOwor6YeR5YmbIDwga29uZ291XCA7CivluaPosqIgPCBoZWlrb3VcIDsKK+mFjeaJgCA8IGhhaXNob1wgOwor5Y215b2iIDwgcmFua2VpXCA7Civph5HliLggPCBraW5rZW5cIDsKK+mFlOaFiyA8IHN1aXRhaVwgOwor5beo6a2BIDwga3lva2FpXCA7CivolYPlnLAgPCBiYW5jaGlcIDsKK+WNgeaVsCA8IGp1dXN1dVwgOwor5rG95ZynIDwga2lhdHN1XCA7Civlh6HpgIAgPCBib250YWlcIDsKK+mBlOiAhSA8IHRhc3NoYVwgOwor5b6T5p2lIDwganV1cmFpXCA7CivpgbjnrqEgPCBzZW5rYW5cIDsKK+WIhuitsiA8IGJ1bmpvdVwgOwor5Y+45LyaIDwgc2hpa2FpXCA7CivlvqHmlpkgPCBnb3J5b3VcIDsKK+WGhumrmCA8IGVuZGFrYVwgOwor6L+R6L66IDwga2lucGVuXCA7Civlj6PlhoUgPCBrb3VuYWlcIDsKK+WHuuiyuyA8IHNodXBwaVwgOwor6YeR5YagIDwga2lua2FuXCA7CivljbDlvaIgPCBpbmd5b3VcIDsKK+WPuOS7pCA8IHNoaXJlaVwgOwor6YeN5YiRIDwganV1a2VpXCA7Civov73oqLQgPCB0c3Vpc29cIDsKK+WPt+S7pCA8IGdvdXJlaVwgOwor5Yqg56GrIDwga2FyeXV1XCA7CivliZvog4YgPCBnb3V0YW5cIDsKK+mHkeWFtyA8IGthbmFndVwgOwor5Y+O5Y+XIDwgc2h1dWp1XCA7CivphY3mha4gPCBoYWlyeW9cIDsKK+i/t+irliA8IG1laXJvblwgOwor5q+O5q+OIDwgbWFpbWFpXCA7Civov73oqJggPCB0c3Vpa2lcIDsKK+edoeiTriA8IHN1aXJlblwgOwor5b+D5oSPIDwgc2hpbicnaVwgOwor5Ymy57eaIDwga2Fzc2VuXCA7CivliIfoq4wgPCBzZWtrYW5cIDsKK+W/mOW5tCA8IGJvdW5lblwgOwor5Y2z5bqnIDwgc29rdXphXCA7Civlt7vpoK0gPCBrYW50b3VcIDsKK+WKueeUqCA8IGtvdXlvdVwgOwor6JKy5p+zIDwgaG9yeXV1XCA7CivmgZLkvosgPCBrb3VyZWlcIDsKK+WPsuS8nSA8IHNoaWRlblwgOwor5b+N5b6TIDwgbmluanV1XCA7Civphbflr5IgPCBrb2trYW5cIDsKK+WLh+eMmyA8IHl1dW1vdVwgOwor5q+s5p6cIDwga3l1dWthXCA7CivojbfotrMgPCBuaWFzaGlcIDsKK+W4uOmBkyA8IGpvdWRvdVwgOwor5YiG6KmeIDwgYnVuc2hpXCA7CivmsrvkubEgPCBjaGlyYW5cIDsKK+WNteW3oyA8IHJhbnNvdVwgOwor5q2755SjIDwgc2hpemFuXCA7CivmrbvnlJ8gPCBzaGlzZWlcIDsKK+WNmuaEmyA8IGhha3VhaVwgOwor5bi46YCjIDwgam91cmVuXCA7CivlhpLpoK0gPCBib3V0b3VcIDsKK+aAp+WQkSA8IHNlaWtvdVwgOwor5biw6YO3IDwga2lreW91XCA7CivmsLTlubMgPCBzdWloZWlcIDsKK+ayu+S4liA8IGNoaXNlaVwgOwor5byV55SoIDwgaW4nJ3lvdVwgOwor6a6u6bqXIDwgc2VucmVpXCA7Civnm67ph5ggPCBtZWt1Z2lcIDsKK+WPjeWLlSA8IGhhbmRvdVwgOwor5YmN6IWVIDwgbWFldWRlXCA7Civlj7LkuZcgPCBzaGlqb3VcIDsKK+WIhuinoyA8IGJ1bmthaVwgOwor5Y+C5ZCRIDwgc2Fua291XCA7Civlj7PkuIogPCBtaWdpdWVcIDsKK+mBo+exsyA8IGtlbmJlaVwgOwor5Y+k5L+XIDwga296b2t1XCA7Civlvozmma8gPCBrb3VrZWlcIDsKK+WOluWkpyA8IGJvdWRhaVwgOwor6YCA6KGMIDwgdGFpa291XCA7Civlj6/kuZ8gPCBrYW5hcmlcIDsKK+W6p+iIiCA8IHpha3lvdVwgOwor5q2j55y8IDwgc2VpZ2FuXCA7CivlvoXmnJsgPCB0YWlib3VcIDsKK+ejgeWjgSA8IGppaGVraVwgOwor5beu6aGNIDwgc2FnYWt1XCA7CivmrovniYcgPCB6YW5wZW5cIDsKK+WPpeS9nCA8IGt1c2FrdVwgOwor5b6M5piGIDwga291a29uXCA7CivmraPnm64gPCBtYXNhbWVcIDsKK+efoueOiSA8IHlhZGFtYVwgOwor5Y2B5oyHIDwganVzc2hpXCA7CivljZjmgKcgPCB0YW5zZWlcIDsKK+avm+aguSA8IG1vdWtvblwgOwor6JK45pWjIDwgam91c2FuXCA7CivlvozmlrkgPCBrb3Vob3VcIDsKK+mFjeW9kyA8IGhhaXRvdVwgOwor5Yqg55mCIDwga2FyeW91XCA7Civlvovml4sgPCByaXNzZW5cIDsKK+WPo+S8nSA8IGtvdWRlblwgOwor6YWS5bqXIDwgc2h1dGVuXCA7CivluKvpgZMgPCBzaGlkb3VcIDsKK+W6leiNtyA8IHNva29uaVwgOwor5YiK6KGMIDwga2Fua291XCA7Civlh7roqLQgPCBzaHVzc29cIDsKK+WNmuW+kiA8IGJha3V0b1wgOwor56CC5rygIDwgc2FiYWt1XCA7CivmgKXli58gPCBreXV1Ym9cIDsKK+W8seeBqyA8IHlvd2FiaVwgOwor5YmN6ICFIDwgemVuc2hhXCA7CivmgKXli5kgPCBreXV1bXVcIDsKK+W3qOmgrSA8IGt5b3RvdVwgOwor6JGJ54mpIDwgaGFtb25vXCA7CivliIboooIgPCBidW5iZWlcIDsKK+WGhumggiA8IGVuY2hvdVwgOwor5rCX5oGvIDwga2lzb2t1XCA7CivlvozmlLsgPCBrb3Vrb3VcIDsKK+mzqeebriA8IGhhdG9tZVwgOwor6YeN5L2TIDwganV1dGFpXCA7CivljrPlkb0gPCBnZW5tZWlcIDsKK+S4i+S4luipsSA8IGdlc2V3YVwgOwor5YaS6Zm6IDwgYm91a2VuXCA7Civljp/lm6AgPCBnZW4nJ2luXCA7CivlhoXpoIUgPCBuYWlrb3VcIDsKK+WJjee/hSA8IHplbnNoaVwgOwor5bqm6IO4IDwgZG9reW91XCA7CivnnIvosqsgPCBrYW5rYW5cIDsKK+WNmuW8lSA8IGhha3VpblwgOwor5qmf6ZW3IDwga2ljaG91XCA7CivlibLnrKYgPCB3YXJpZnVcIDsKK+awl+aApyA8IGtpc2hvdVwgOwor5Y2B5oiSIDwgamlra2FpXCA7Civlj5fkv6EgPCBqdXNoaW5cIDsKK+ebrumAlCA8IG1va3V0b1wgOwor6L6y6YGTIDwgbm91ZG91XCA7Civnn7PngbAgPCBzZWtrYWlcIDsKK+awkeaDhSA8IG1pbmpvdVwgOwor5Y6a5ZywIDwgYXRzdWppXCA7Civph43ku7sgPCBqdXVuaW5cIDsKK+i/juizkyA8IGdlaWhpblwgOwor5Y6z5ZCbIDwgZ2Vua3VuXCA7CivliY3nva4gPCB6ZW5jaGlcIDsKK+mHjeS7oyA8IGp1dWRhaVwgOwor5YiX6JepIDwgcmVwcGFuXCA7Civps6Xnm64gPCB0b3JpbWVcIDsKK+WNmOW8gSA8IHRhbmJlblwgOwor5q615q61IDwgZGFuZGFuXCA7CivmsLTlsYsgPCBtaXp1eWFcIDsKK+W+gOaYlCA8IG91c2VraVwgOwor6YeR5Li7IDwga2luc2h1XCA7CivnoLTmoLwgPCBoYWtha3VcIDsKK+WNg+aFriA8IHNlbnJ5b1wgOwor5Y675YuiIDwga3lvc2VpXCA7CivlvZPmrbMgPCB0b3VzYWlcIDsKK+earumdqSA8IGhpa2FrdVwgOwor5YaF6Z2iIDwgbmFpbWVuXCA7Civlt7fplpMgPCBrb3VrYW5cIDsKK+WGt+mFkiA8IHJlaXNodVwgOwor5Y215a2QIDwgcmFuc2hpXCA7CivmgKrlhYkgPCBrYWlrb3VcIDsKK+WFvOmhjCA8IGtlbmRhaVwgOwor5qqA6YKjIDwgZGFuJyduYVwgOwor6YeO5LitIDwgbm9uYWthXCA7CivpgKDoiLkgPCB6b3VzZW5cIDsKK+WPguWGhSA8IHNhbmRhaVwgOwor5rC05a6zIDwgc3VpZ2FpXCA7CivlvrnlupUgPCB0ZXR0ZWlcIDsKK+awl+W8sSA8IGtpeW93YVwgOwor5Y+b5LmxIDwgaGFucmFuXCA7CivlvqHmhbYgPCBneW9rZWlcIDsKK+ecjOitpiA8IGtlbmtlaVwgOwor5bid6YGTIDwgdGVpZG91XCA7CivliKXojZggPCBiZXNzb3VcIDsKK+eigeW4rSA8IGdvc2VraVwgOwor5Yid6JGJIDwgc2hveW91XCA7CivlvbzmlrkgPCBrYW5hdGFcIDsKK+ebn+mCpiA8IG1laWhvdVwgOwor5b+r5aCxIDwga2FpaG91XCA7Civljq3ljq0gPCBpeWFpeWFcIDsKK+awtOWtkCA8IG1penVnb1wgOwor5YaN6ZaLIDwgc2Fpa2FpXCA7CivpgaDnp7AgPCBlbnNob3VcIDsKK+WMl+aWuSA8IGhvcHBvdVwgOwor5YaF6ZmjIDwgbmFpamluXCA7CivljYrlvoQgPCBoYW5rZWlcIDsKK+iRm+a5ryA8IGt1enV5dVwgOwor6a6u6a2aIDwgc2VuZ3lvXCA7CivlhrfpgYcgPCByZWlndXVcIDsKK+WNiuW9sSA8IGhhbicnZWlcIDsKK+WPjeS+iyA8IGhhbnJlaVwgOwor5bej6ZubIDwgc3VoaW5hXCA7Civov6bmpbznvoUgPCBrYXJ1cmFcIDsKK+W+ruW8sSA8IGJpamFrdVwgOwor6YO35p2RIDwgZ291c29uXCA7CivnoazmgKcgPCBrb3VzZWlcIDsKK+mFkuWxiyA8IHNha2F5YVwgOwor5YmN57eoIDwgemVucGVuXCA7CivpgIDolLUgPCB0YWl6b3VcIDsKK+WHneitsCA8IGd5b3VnaVwgOwor5YmN57eaIDwgemVuc2VuXCA7Civlt53pnaIgPCBrYXdhbW9cIDsKK+WOn+WTgSA8IGdlbnBpblwgOwor5byV54WnIDwgaW5zaG91XCA7CivlhajppKggPCB6ZW5rYW5cIDsKK+i/keipoCA8IGtpbicnZWlcIDsKK+iSmeaYpyA8IG1vdW1haVwgOwor5q6L5ruTIDwgemFuc2hpXCA7CivmspnkuJggPCBzYWt5dXVcIDsKK+atu+eCuSA8IHNoaXRlblwgOwor55u46LKMIDwgc291Ym91XCA7CivpgIHokawgPCBzb3Vzb3VcIDsKK+eZvemtlCA8IGhha3VtYVwgOwor5Y2c5bGFIDwgYm9ra3lvXCA7Civnoo3lrZAgPCBnYWlzaGlcIDsKK+avjuaZqSA8IG1haWJhblwgOwor5Y6z5YasIDwgZ2VudG91XCA7Civlj4vkurogPCB5dXVqaW5cIDsKK+ebiumHkSA8IGVraWtpblwgOwor5Yq054G9IDwgcm91c2FpXCA7CivljZflsrggPCBuYW5nYW5cIDsKK+aJi+W/oOWunyA8IHRlbWFtZVwgOwor552A6I23IDwgY2hha2thXCA7Civokabmr5sgPCBhc2hpZ2VcIDsKK+asoeesrCA8IHNoaWRhaVwgOwor5Y6a5ZGzIDwgYXRzdW1pXCA7CivlhbXpm6MgPCBoZWluYW5cIDsKK+WNs+WknCA8IHNva3V5YVwgOwor5b2i5pyoIDwga2F0YWdpXCA7CivluKvos4cgPCBzaGlzaGlcIDsKK+WNl+WxsSA8IG5hbnphblwgOwor55yL6KaWIDwga2Fuc2hpXCA7Civov5HoppYgPCBraW5zaGlcIDsKK+W3jOmgrSA8IGdhbnRvdVwgOwor6Iy26YGTIDwgY2hhZG91XCA7CivmrKHnq6AgPCBqaXNob3VcIDsKK+WFt+mZsyA8IGd1Y2hpblwgOwor5oCq5Lq6IDwga2FpamluXCA7Civnmbvpq5ggPCB0b3Vrb3VcIDsKK+ebpOi4niA8IGJhbmt5b1wgOwor5YW16ZqKIDwgaGVpdGFpXCA7CivpgKPnvbIgPCByZW5zaG9cIDsKK+mnhOa0kuiQvSA8IGRhamFyZVwgOwor5q2j54qvIDwgc2VpaGFuXCA7CivljZjlsIQgPCB0YW5zaGFcIDsKK+WPguS8miA8IHNhbmthaVwgOwor5YqH55S7IDwgZ2VraWdhXCA7Civlhajpn7MgPCB6ZW4nJ29uXCA7CivljbXloZQgPCByYW50b3VcIDsKK+WFmummliA8IHRvdXNodVwgOwor6YGO56ewIDwga2FzaG91XCA7CivljYHlubIgPCBqaWtrYW5cIDsKK+iLsemgmCA8IGVpcnlvdVwgOwor5Y2R5bGsIDwgaGl6b2t1XCA7Civlt6jpkJggPCBvb2dhbmVcIDsKK+aoqumgmCA8IG91cnlvdVwgOwor55+z5rK5IDwgc2VraXl1XCA7Civlu7vnirYgPCBrYWlqb3VcIDsKK+S4i+mnhOWxiyA8IGdldGF5YVwgOwor6YGU56OoIDwgZGFydW1hXCA7Civljp/li5UgPCBnZW5kb3VcIDsKK+WNl+WuiyA8IG5hbnNvdVwgOwor5byx5rCXIDwgeW93YWtpXCA7CivlhajpnaIgPCB6ZW5tZW5cIDsKK+W+oeW5uCA8IG1peXVraVwgOwor5b6Y5b6KIDwgaGFpa2FpXCA7Civpg7XmlL8gPCB5dXVzZWlcIDsKK+WNiuWztiA8IGhhbnRvdVwgOwor5Y2R5bCPIDwgaGlzaG91XCA7Civnmb3ppqwgPCBoYWt1YmFcIDsKK+ebuOirhyA8IHNvdWRhblwgOwor5qyd56mNIDwgdXNzZWtpXCA7CivlvoHmiKYgPCBzZWlzZW5cIDsKK+WJsuebriA8IHdhcmVtZVwgOwor5YWo6ZyKIDwgemVucmVpXCA7CivpgKPnuYsgPCByZW5rZWlcIDsKK+W9k+advyA8IGF0ZWl0YVwgOwor5Y+C5LiOIDwgc2FuJyd5b1wgOwor5b6M5oKUIDwga291a2FpXCA7Civlj4LkuIogPCBzYW5qb3VcIDsKK+ayiOS4iyA8IGNoaW5rYVwgOwor55yf6JavIDwgc2hpbmpvXCA7Civlh73ok4sgPCBrYW5nYWlcIDsKK+WOn+WInSA8IGdlbnNob1wgOwor5YmN56uvIDwgemVudGFuXCA7Civlv6vlk4kgPCBrYWlzYWlcIDsKK+awl+WtpiA8IGtpZ2FrdVwgOwor5rC05Z+fIDwgc3VpaWtpXCA7Civlvq7lsJEgPCBiaXNob3VcIDsKK+WFqOmaiiA8IHplbnRhaVwgOwor6YCB6Ie0IDwgc291Y2hpXCA7CivpgKPntr8gPCByZW5tZW5cIDsKK+WJteeXlSA8IHNvdWtvblwgOwor5qyy55uuIDwgeW9rdW1lXCA7CivlvpfluqYgPCB0b2t1ZG9cIDsKK+W+k+W8nyA8IGp1dXRlaVwgOwor6YOo5pePIDwgYnV6b2t1XCA7CivolYPkurogPCBiYW5qaW5cIDsKK+iPnOeoriA8IG5hdGFuZVwgOwor55u06Ki0IDwgamlraXNvXCA7Civljp/lhbggPCBnZW50ZW5cIDsKK+mxl+iMjiA8IHJpbmtlaVwgOwor5YWl6ZmiIDwgbnl1dWluXCA7Civnn63mr5sgPCB0YW5tb3VcIDsKK+iNkuiqlSA8IGtvdXRhblwgOwor5Yid6ICBIDwgc2hvcm91XCA7CivphbflkI8gPCBrb2t1cmlcIDsKK+mAo+e0ryA8IHJlbnJ1aVwgOwor6JWD5Li7IDwgYmFuc2h1XCA7CivluKvoqJMgPCBzaGlrdW5cIDsKK+aoqemZkCA8IGtlbmdlblwgOwor5YuY5qScIDwga2Fua2VuXCA7CivpgbrniakgPCBpYnV0c3VcIDsKK+WHhuiosSA8IGp1bmt5b1wgOwor6YWS5aC0IDwgc2FrYWJhXCA7CivlhajplosgPCB6ZW5rYWlcIDsKK+auieatuyA8IGp1bnNoaVwgOwor5Y6f5YOPIDwgZ2Vuem91XCA7Civnm67oqLEgPCBtZW1vdG9cIDsKK+awtOWaoiA8IHN1aW5vdVwgOwor5b2T5pa5IDwgdG91aG91XCA7Civlh7rojbcgPCBzaHVra2FcIDsKK+ecn+iPsCA8IG1ha29tb1wgOwor5Y2X5aSpIDwgbmFudGVuXCA7Civnm67op5IgPCBtZWthZG9cIDsKK+WGjemBuCA8IHNhaXNlblwgOwor5buD55ukIDwgaGFpYmFuXCA7CivnoavlrokgPCByeXV1YW5cIDsKK+apn+i7uCA8IGtpamlrdVwgOwor5Yui5pybIDwgc2VpYm91XCA7CivmqKnploAgPCBrZW5tb25cIDsKK+mKmOOAhSA8IG1laW1laVwgOwor5YuY5qGIIDwga2FuJydhblwgOwor5b6M5bm0IDwga291bmVuXCA7CivljLvlsYAgPCBpa3lva3VcIDsKK+WGjemBiiA8IHNhaXl1dVwgOwor56Cy5omLIDwgaG91c2h1XCA7Civnmb3pnLIgPCBoYWt1cm9cIDsKK+iKsemzpSA8IGthY2hvdVwgOwor6L+96IKlIDwgdHN1aWhpXCA7Civlv7XlhpkgPCBuZW5zaGFcIDsKK+efpeatryA8IGNoaXNoaVwgOwor5biG6LWwIDwgaGFuc291XCA7CivlvoDlvqkgPCBvdWZ1a3VcIDsKK+efs+amtCA8IHpha3Vyb1wgOwor55m96ZuyIDwgaGFrdXVuXCA7Civlho3pgIEgPCBzYWlzb3VcIDsKK+WFiemgrSA8IGtvdXRvdVwgOwor5b6L5birIDwgcmlzc2hpXCA7CivmhIjjgIUgPCBpeW9peW9cIDsKK+WFtemLkiA8IGhlaWhvdVwgOwor5Ye66IqxIDwgZGViYW5hXCA7CivmranmuKwgPCBob3Nva3VcIDsKK+WFiOmgrSA8IHNlbnRvdVwgOwor5bqD57iBIDwgaGlyb2VuXCA7CivmtarjgIUgPCByb3Vyb3VcIDsKK+WKm+a8lCA8IHJpa2llblwgOwor6YKq5qyyIDwgamF5b2t1XCA7Civpp4Tms5XonrogPCBkYWJvcmFcIDsKK+W/g+WcnyA8IHNoaW5kb1wgOwor5b6u5aaZIDwgYmlteW91XCA7CivlvoTluq0gPCBrZWl0ZWlcIDsKK+WIpee0mSA8IGJlc3NoaVwgOwor5b+c5Y+sIDwgb3VzaG91XCA7Civlh7roiLkgPCBkZWZ1bmVcIDsKK+mFt+WIkSA8IGtva2tlaVwgOwor5b+r5YiAIDwga2FpdG91XCA7CivlhYjpnq0gPCBzZW5iZW5cIDsKK+W3p+mBhSA8IGtvdWNoaVwgOwor5bqn56SBIDwgemFzaG91XCA7Civpgbjngq0gPCBzZW50YW5cIDsKK+W8gea4iCA8IGJlbnNhaVwgOwor5Y2K5aSpIDwgaGFudGVuXCA7Civlv5flkJEgPCBzaGlrb3VcIDsKK+WHuuiHjSA8IGRlYmVzb1wgOwor5b235b6oIDwgaG91a291XCA7CivljYrlpJwgPCBoYW4nJ3lhXCA7CivliLbnqbogPCBzZWlrdXVcIDsKK+WOn+S6uiA8IGdlbmppblwgOwor5YaN6LuiIDwgc2FpdGVuXCA7CivlvaLmiJAgPCBrZWlzZWlcIDsKK+W4guiyqSA8IHNoaWhhblwgOwor56Gd5a6JIDwgc2hvdWFuXCA7CivliJ3ntYwgPCBzaG9rZWlcIDsKK+WNiuWjiiA8IGhhbmthaVwgOwor5byU5q2MIDwgY2hvdWthXCA7Civov5HokZcgPCBraW5jaG9cIDsKK+iQveasviA8IHJha2thblwgOwor5YiH5769IDwga2lyaWhhXCA7CivnoZ3lrZAgPCBnYXJhc3VcIDsKK+W5uee3miA8IGthbnNlblwgOwor6YO95b+DIDwgdG9zaGluXCA7Civnorrkv50gPCBrYWt1aG9cIDsKK+ats+atsyA8IHNhaXNhaVwgOwor5YWF6Zu7IDwganV1ZGVuXCA7CivmsaDkuq0gPCBjaGl0ZWlcIDsKK+WGhei8qiA8IHVjaGl3YVwgOwor6YGL55SoIDwgdW4nJ3lvdVwgOwor55ub6KazIDwgc2Vpa2FuXCA7CivljYPlpJwgPCBzZW4nJ3lhXCA7Civluo/nq6AgPCBqb3Nob3VcIDsKK+WItuempiA8IHNlaWd5b1wgOwor5YiG572yIDwgYnVuc2hvXCA7CivlvaLmhYsgPCBrZWl0YWlcIDsKK+ehrOWkiSA8IGtvdWhlblwgOwor5YWI6ZmjIDwgc2VuamluXCA7Civlhazph5EgPCBrb3VraW5cIDsKK+mzpea4oSA8IGNob3R0b1wgOwor6YGF55WqIDwgb3NvYmFuXCA7Civlipvms7MgPCByaWtpZWlcIDsKK+ato+ayuSA8IHNob3V5dVwgOwor5Y2w5YyjIDwgaW5iYWtvXCA7CivljbPlirkgPCBzb2trb3VcIDsKK+iNt+iIuSA8IG5pYnVuZVwgOwor5bqD56+EIDwga291aGFuXCA7Civnn7PmnKggPCBpc2hpa2lcIDsKK+eiqeWEkiA8IHNla2lqdVwgOwor6JGX5pu4IDwgY2hvc2hvXCA7Civlt53ovrogPCBrYXdhYmVcIDsKK+mzqea0viA8IGhhdG9oYVwgOwor5q+N5b6hIDwgaGFoYWdvXCA7CivpgY7kv53orbcgPCBrYWhvZ29cIDsKK+mEreWjsCA8IHRlaXNlaVwgOwor56Cy5by+IDwgaG91ZGFuXCA7CivlvZPmiYAgPCB0b3VzaG9cIDsKK+ebm+ijhSA8IHNlaXNvdVwgOwor5rC05YuiIDwgc3Vpc2VpXCA7Civpg73luoEgPCB0b2Nob3VcIDsKK+WFremDqCA8IHJva3VidVwgOwor5q2i5rC0IDwgc2hpc3VpXCA7Civprq7pi60gPCBzZW4nJ2VpXCA7CivphZLlkI0gPCBzaHVtZWlcIDsKK+ebm+ihsCA8IHNlaXN1aVwgOwor5rCR5ZujIDwgbWluZGFuXCA7CivoirjpoqggPCBnZWlmdXVcIDsKK+W8puadkCA8IGdlbnphaVwgOwor5Yid562JIDwgc2hvdG91XCA7CivlhazpgrggPCBrb3V0ZWlcIDsKK+WNsOWIuyA8IGlua29rdVwgOwor5Ymy54O5IDwga2FwcG91XCA7Civok67lj7AgPCByZW5kYWlcIDsKK+ato+auvyA8IHNlaWRlblwgOwor5YaN6LKpIDwgc2FpaGFuXCA7CivliIfnt5ogPCBzZXNzZW5cIDsKK+WJo+eKtiA8IGtlbmpvdVwgOwor5Y215YaGIDwgcmFuJydlblwgOwor6YW35Ly8IDwga29rdWppXCA7CivliKXnqK4gPCBiZXNzaHVcIDsKK+edpeedqCA8IGhlaWdlaVwgOwor6JGJ5p+EIDwgeW91aGVpXCA7CivokZfmmI4gPCBjaG9tZWlcIDsKK+W+k+WniSA8IGp1dXNoaVwgOwor5q665oSPIDwgc2F0c3VpXCA7Civovp7ooaggPCBqaWh5b3VcIDsKK+mdnuWWtuWIqSA8IGhpZWlyaVwgOwor5YWs6YG4IDwga291c2VuXCA7CivlvpPlprkgPCBqdXVtYWlcIDsKK+WIqeemjyA8IHJpZnVrdVwgOwor57WM57ev5YSAIDwga2VpaWdpXCA7CivljaDlj5YgPCBzZW5zaHVcIDsKK+avjuW5tCA8IG1haW5lblwgOwor5q6L5pqRIDwgemFuc2hvXCA7CivlhazpgZMgPCBrb3Vkb3VcIDsKK+ato+atoyA8IHNlaXNlaVwgOwor5bmz57GzIDwgaGVpYmVpXCA7CivphY3lkIggPCBoYWlnb3VcIDsKK+awtOWIhiA8IHN1aWJ1blwgOwor55yf576OIDwgc2hpbmJpXCA7CivluYToiI4gPCBha3VzaGFcIDsKK+mtmumxlyA8IGd5b3JpblwgOwor55+i5p+EIDwgeWFnYXJhXCA7CivlhaXpg6ggPCBueXV1YnVcIDsKK+efs+aWpyA8IHNla2lmdVwgOwor5YaX6KuHIDwgam91ZGFuXCA7CivmsLTlhrcgPCBzdWlyZWlcIDsKK+efruaYnyA8IHdhaXNlaVwgOwor6JK85aSpIDwgc291dGVuXCA7CivlhajpgZMgPCB6ZW5kb3VcIDsKK+W5vOerpSA8IHlvdWRvdVwgOwor6L2f6L2fIDwgZ291Z291XCA7CivnnaHnnKAgPCBzdWltaW5cIDsKK+W3qOizhyA8IGt5b3NoaVwgOwor6JGJ5pu4IDwgaGFnYWtpXCA7CivljIXluK8gPCBob3V0YWlcIDsKK+WOhOS7iyA8IHlha2thaVwgOwor5rCR5Za2IDwgbWluJydlaVwgOwor5YuH5patIDwgeXV1ZGFuXCA7Civli5Xmj7ogPCBkb3V5b3VcIDsKK+auv+W+oSA8IHRvbm9nb1wgOwor5Y2B5ZueIDwganVra2FpXCA7CivljYHlm5sgPCBqdXV5b25cIDsKK+W3qOiyoSA8IGt5b3phaVwgOwor5Y2U5ZKMIDwga3lvdXdhXCA7Civlub3nqpMgPCB5dXVzb3VcIDsKK+W3nei3ryA8IGthd2FqaVwgOwor5YuH5pWiIDwgeXV1a2FuXCA7Civlt6josaEgPCBreW96b3VcIDsKK+WGl+iogCA8IGpvdWdlblwgOwor5qyg54mHIDwga2FrZXJhXCA7CivpgKPnm58gPCByZW5tZWlcIDsKK+W5vOeomiA8IHlvdWNoaVwgOwor5b6M5aSpIDwga291dGVuXCA7CivlhbfotrMgPCBndXNva3VcIDsKK+mxl+eyiSA8IHJpbnB1blwgOwor5YyW5a2mIDwga2FnYWt1XCA7CivpgbXms5UgPCBqdW5wb3VcIDsKK+eZvemHkSA8IGhha2tpblwgOwor6YGp5ripIDwgdGVraW9uXCA7CivljZfljYogPCBuYW5oYW5cIDsKK+mAuOeQgyA8IGlra3l1dVwgOwor6YWN5YmkIDwgaGFpemFpXCA7Civmra/moLkgPCBzaGlrb25cIDsKK+WNkuWOuyA8IHNva2t5b1wgOwor5YaN6KqVIDwgc2FpdGFuXCA7CivpgbjmsJEgPCBzZW5taW5cIDsKK+W4guihlyA8IHNoaWdhaVwgOwor5bWp6auYIDwgc3V1a291XCA7CivlhYjpi5IgPCBzZW5wb3VcIDsKK+ecn+e2vyA8IG1hd2F0YVwgOwor5qyj54S2IDwga2luemVuXCA7CivlkZHlhbXooZsgPCBub25iZWVcIDsKK+W+jOWhtSA8IGtvdWppblwgOwor5YWo6LuNIDwgemVuZ3VuXCA7CivpgIHnqL8gPCBzb3Vrb3VcIDsKK+WGt+iUtSA8IHJlaXpvdVwgOwor6YWN5YiGIDwgaGFpYnVuXCA7Civlvqnlk6EgPCBmdWt1aW5cIDsKK+WHuue0jSA8IHN1aXRvdVwgOwor5Yem572uIDwgc2hvY2hpXCA7Civlho3oqKogPCBzYWlob3VcIDsKK+iNieiRiSA8IGt1c2FiYVwgOwor5bm056iOIDwgbmVuemVpXCA7Civlho3oqIIgPCBzYWl0ZWlcIDsKK+iLm+mFtyA8IGtha29rdVwgOwor5by35omTIDwga3lvdWRhXCA7CivpgqrmlZkgPCBqYWt5b3VcIDsKK+efouaWhyA8IHlhYnVtaVwgOwor5YaF6KuHIDwgbmFpZGFuXCA7CivmsI/lkI0gPCBzaGltZWlcIDsKK+WFt+ixoSA8IGd1c2hvdVwgOwor55yf57SFIDwgc2hpbmt1XCA7CivljZPlirkgPCB0YWtrb3VcIDsKK+iJpum9oiA8IGthbnJlaVwgOwor5Yuk5oCgIDwga2ludGFpXCA7CivljbPku4ogPCBzb2trb25cIDsKK+mAo+eVqiA8IHJlbmJhblwgOwor5b605YufIDwgY2hvdWJvXCA7CivpgqbmlocgPCBob3VidW5cIDsKK+W9k+W6lyA8IHRvdXRlblwgOwor5qyg54K5IDwga2V0dGVuXCA7CivlvIrmnZEgPCBoZWlzb25cIDsKK+W9k+W5tCA8IHRvdW5lblwgOwor5bm056WtIDwgbmVuc2FpXCA7CivlvbzlpbMgPCBrYW5vam9cIDsKK+iNt+e4hCA8IG5pbmF3YVwgOwor5q275paHIDwgc2hpYnVuXCA7CivojY/oi5IgPCBqaW56ZW5cIDsKK+ats+aZqSA8IHNhaWJhblwgOwor5YyF5a65IDwgaG91eW91XCA7CivovrLoirggPCBub3VnZWlcIDsKK+W5tOekvCA8IG5lbnJlaVwgOwor5byU5peXIDwgY2hvdWtpXCA7CivpgIDnpL4gPCB0YWlzaGFcIDsKK+WNiuWNiiA8IGhhbmhhblwgOwor5Yil55uDIDwgYmVwcGFpXCA7CivpgY7mv4AgPCBrYWdla2lcIDsKK+WGheiokyA8IG5haWt1blwgOwor55qH6LuNIDwga291Z3VuXCA7CivmsLTku5kgPCBzdWlzZW5cIDsKK+WNtOS4iyA8IGt5YWtrYVwgOwor5LiN576p55CGIDwgZnVnaXJpXCA7Civlho3oo70gPCBzYWlzZWlcIDsKK+W8t+aFoiA8IGdvdW1hblwgOwor5biM6JaEIDwga2loYWt1XCA7CivljZjlhYMgPCB0YW5nZW5cIDsKK+mBoOa1hSA8IHRvb2FzYVwgOwor6L2G6L2kIDwgcm9rdXJvXCA7Civmr5LlqaYgPCBkb2t1ZnVcIDsKK+WNl+WFiSA8IG5hbmtvdVwgOwor6YWN5YG2IDwgaGFpZ3V1XCA7CivlhoXoprMgPCBuYWlrYW5cIDsKK+eZuumAgSA8IGhhc3NvdVwgOwor5b6h5ZGKIDwgb3RzdWdlXCA7CivlhoXopqcgPCBuYWlyYW5cIDsKK+mBoOa0iyA8IGVuJyd5b3VcIDsKK+W8vuaApyA8IGRhbnNlaVwgOwor5YaF6KaLIDwgbmFpa2VuXCA7CivlvaLlrrkgPCBrZWl5b3VcIDsKK+acieaEj+W3riA8IHl1dWlzYVwgOwor5by35oOFIDwgZ291am91XCA7CivljYPljYMgPCBjaGlkamlcIDsKK+i/kee4gSA8IGtpbicnZW5cIDsKK+ecn+euhyA8IHNoaW5rb1wgOwor6a2a6aGeIDwgZ3lvcnVpXCA7Civli4fmiKYgPCB5dXVzZW5cIDsKK+m2j+WPoyA8IGtlaWtvdVwgOwor5bi4572uIDwgam91Y2hpXCA7CivljZLlhYggPCBzb3NzZW5cIDsKK+mBoOayiCA8IGVuY2hpblwgOwor5q2j5pysIDwgc2VpaG9uXCA7CivmraPmnKggPCBtYXNha2lcIDsKK+WFqOiyjCA8IHplbmJvdVwgOwor6YOo5bCGIDwgYnVzaG91XCA7CivlhYjpgaMgPCBzZW5rZW5cIDsKK+ehq+WMliA8IHJ5dXVrYVwgOwor6YGh5rGCIDwgc29reXV1XCA7CivnnLznnrwgPCBnYW5rZW5cIDsKK+WNiuWIhiA8IGhhbnB1blwgOwor5YiG56S+IDwgYnVuc2hhXCA7CivmraPmm7ggPCBzZWlzaG9cIDsKK+WFpeiyuyA8IG55dXVoaVwgOwor55+t5omAIDwgdGFuc2hvXCA7CivljYjliLsgPCBnb2tva3VcIDsKK+WNoOS9jyA8IHNlbmp1dVwgOwor5beh6KanIDwganVucmFuXCA7CivmsJflhJggPCBraW1hbWFcIDsKK+W/jOS4rSA8IGtpY2h1dVwgOwor5YaF6KOFIDwgbmFpc291XCA7CivlvbnloLQgPCB5YWt1YmFcIDsKK+mtlOmiqCA8IG1ha2F6ZVwgOwor5Ye656qTIDwgZGVtYWRvXCA7Civnm67ohIIgPCBtZXlhbmlcIDsKK+WKqeaVmSA8IGpva3lvdVwgOwor6YWS5LuZIDwgc2h1c2VuXCA7Civpto/ljbUgPCBrZWlyYW5cIDsKK+ecn+eruSA8IG1hZGFrZVwgOwor55yL57WMIDwga2Fua2luXCA7Civlu7rmnZAgPCBrZW56YWlcIDsKK+eZuui7iiA8IGhhc3NoYVwgOwor5rCR5YW1IDwgbWlucGVpXCA7CivlvqnliIogPCBmdWtrYW5cIDsKK+WNiuWGhiA8IGhhbicnZW5cIDsKK+WLmOW9kyA8IGthbmRvdVwgOwor5byK5pS/IDwgaGVpc2VpXCA7CivljIjlpbQgPCBreW91ZG9cIDsKK+mFkuS5sSA8IHNodXJhblwgOwor55uy6ICFIDwgbW91c2hhXCA7Civlu4PmtrIgPCBoYWlla2lcIDsKK+W3puihqCA8IHNhaHlvdVwgOwor6YGF5rueIDwgY2hpdGFpXCA7CivliIDnpLwgPCB0b3VyZWlcIDsKK+W8geaYjiA8IGJlbm1laVwgOwor5b+D5LqLIDwgc2hpbmppXCA7Civli5jlvIEgPCBrYW5iZW5cIDsKK+assuawlyA8IHlva3VrZVwgOwor55+t5oWuIDwgdGFucnlvXCA7CivljYPliIYgPCBzZW5idW5cIDsKK+WKo+aVlyA8IHJlcHBhaVwgOwor5q+O5aSVIDwgbWFpeXV1XCA7CivnoLLlo7AgPCBob3VzZWlcIDsKK+WFiei8qiA8IGtvdXJpblwgOwor5Y2S5YCSIDwgc290dG91XCA7CivljZjkvZMgPCB0YW50YWlcIDsKK+eZvui2syA8IG11a2FkZVwgOwor5qyn5rSyIDwgb3VzaHV1XCA7Civli4XmhI8gPCBjaG9rdWlcIDsKK+WFrOirliA8IGtvdXJvblwgOwor5Y2B5YiGIDwganVwcHVuXCA7CivprZrpm7cgPCBneW9yYWlcIDsKK+WFiOi8qSA8IHNlbnBhaVwgOwor5bmz55uuIDwgaGlyYW1lXCA7Civpg7flo6sgPCBnb3VzaGlcIDsKK+atpOaWuSA8IGtvbmF0YVwgOwor5Ymj5rOVIDwga2VucG91XCA7CivojLbojLYgPCBjaGFjaGFcIDsKK+ato+aWuSA8IHNlaWhvdVwgOwor5q2m5pWZIDwgYnVreW91XCA7Civliarmr5sgPCBzZW5tb3VcIDsKK+mFjeS5lyA8IGhhaWpvdVwgOwor55+c5oyBIDwga3lvdWppXCA7CivovrLogJUgPCBub3Vrb3VcIDsKK+WNg+WGhiA8IHNlbicnZW5cIDsKK+WIneeUnyA8IHNob3NlaVwgOwor5YWs6KqNIDwga291bmluXCA7Civlt6HooYwgPCBqdW5rb3VcIDsKK+WMuuWKgyA8IGt1a2FrdVwgOwor5q2j5paHIDwgc2VpYnVuXCA7CivmrYzmoLwgPCBrYWtha3VcIDsKK+W5veeVjCA8IHl1dWthaVwgOwor5q2j5pWwIDwgc2Vpc3V1XCA7CivlvozlkbMgPCBhdG9hamlcIDsKK+egsuWhlCA8IGhvdXRvdVwgOwor56Gd5YyWIDwgc2hvdWthXCA7CivlhbzooYwgPCBrZW5rb3VcIDsKK+W9q+WhkSA8IGNob3Vzb1wgOwor5Y2B5YWoIDwganV1emVuXCA7CivlhazoqLEgPCBrb3VreW9cIDsKK+WNl+S6rCA8IG5hbmtpblwgOwor55+l5oWuIDwgY2hpcnlvXCA7CivmrbvmiYAgPCBzaGlzaG9cIDsKK+W5vOeUnyA8IHlvdXNlaVwgOwor6YGT5rCRIDwgZG91bWluXCA7CivljYrlgKQgPCBoYW4nJ25lXCA7CivmgrbjgIUgPCBtb25tb25cIDsKK+i/lOetlCA8IGhlbnRvdVwgOwor6Iy26ImyIDwgY2hhaXJvXCA7CivmqKnorIAgPCBrZW5ib3VcIDsKK+m2j+WGoCA8IHRvc2FrYVwgOwor55m+6LKoIDwgaHlha2thXCA7Civlu7vmlocgPCBrYWlidW5cIDsKK+WLgeaCjSA8IGtlaWthblwgOwor5YWD6LuNIDwgZ2VuZ3VuXCA7CivljYHlhIQgPCBqdXVva3VcIDsKK+W8leaJiyA8IGhpa2l0ZVwgOwor6a2U6ZqcIDwgbWFzaG91XCA7CivliIfnm64gPCBraXJlbWVcIDsKK+W8leaIuCA8IGhpa2lkb1wgOwor6Luf6aKoIDwgbmFucHV1XCA7CivnnLznlYwgPCBnYW5rYWlcIDsKK+iMtuiHvCA8IGNoYXVzdVwgOwor6YG45pu4IDwgc2Vuc2hvXCA7Civoi7HoqLMgPCBlaXlha3VcIDsKK+i7oumfsyA8IHRlbicnb25cIDsKK+aui+W9sSA8IHphbicnZWlcIDsKK+iKs+mGhyA8IGhvdWp1blwgOwor5bm055SjIDwgbmVuc2FuXCA7CivlubTnlJ8gPCBuZW5zZWlcIDsKK+WNg+WAjSA8IHNlbmJhaVwgOwor5buD5q6LIDwgaGFpemFuXCA7Civoia/ppqwgPCByeW91YmFcIDsKK+W5s+eUnyA8IGhlaXplaVwgOwor6YGK5rCRIDwgeXV1bWluXCA7CivokZvluIMgPCBrdXp1ZnVcIDsKK+W7g+atoiA8IGhhaXNoaVwgOwor6Lyq6LuiIDwgcmludGVuXCA7Civpq5jnt6/luqYgPCBrb3VpZG9cIDsKK+W4huiIuSA8IGhvYnVuZVwgOwor5Y2B5YCNIDwganV1YmFpXCA7CivliZvmr5sgPCBnb3Vtb3VcIDsKK+avjuWbniA8IG1haWthaVwgOwor5q+N5Zu9IDwgYm9rb2t1XCA7CivmsJHkurogPCBtaW5qaW5cIDsKK+ecn+eggiA8IG1hc2Fnb1wgOwor5Yqp5omLIDwgc3VrZXRlXCA7CivmraLmj5ogPCBzaGl5b3VcIDsKK+W5veeOhCA8IHl1dWdlblwgOwor6Iq46YGTIDwgZ2VpZG91XCA7CivliqDmjK8gPCBrYXNoaW5cIDsKK+ebm+iAhSA8IGpvdXNoYVwgOwor5b255ZOhIDwgeWFrdWluXCA7Civlvq7kubMgPCBiaW55dXVcIDsKK+ecjOeojiA8IGtlbnplaVwgOwor5YSq6YGHIDwgeXV1Z3V1XCA7Civnn7Plt6UgPCBzZWtrb3VcIDsKK+WGheiUtSA8IG5haXpvdVwgOwor5rCR5Li7IDwgbWluc2h1XCA7CivliJ3niq8gPCBzaG9oYW5cIDsKK+auv+WggiA8IGRlbmRvdVwgOwor5bq25rCRIDwgc2hvbWluXCA7CivnnqzmmYIgPCBzaHVuamlcIDsKK+WEqumAgCA8IHl1dXRhaVwgOwor5Ye555uuIDwga3Vib21lXCA7CivliqPmiY0gPCByZXNzYWlcIDsKK+i8qui3nSA8IHJpbmt5b1wgOwor6L+U56S8IDwgaGVucmVpXCA7CivliIDnl5UgPCB0b3Vrb25cIDsKK+mztOaIuCA8IG5hcnV0b1wgOwor5YuY5a6aIDwga2Fuam91XCA7CivlhoXokpkgPCBuYWltb3VcIDsKK+ebruezniA8IG1la3Vzb1wgOwor5bqn5rW0IDwgemF5b2t1XCA7CivmqJnoqp4gPCBoeW91Z29cIDsKK+eZveipsSA8IGhha3V3YVwgOwor5Yik54S2IDwgaGFuemVuXCA7CivnoILlrZAgPCBzdW5hZ29cIDsKK+aCoOOAhSA8IHl1dXl1dVwgOwor5Yq05b25IDwgcm91ZWtpXCA7CivojJfojbcgPCBteW91Z2FcIDsKK+ebruexoCA8IG1la2Fnb1wgOwor552A54mpIDwga2ltb25vXCA7Civou4rpoqggPCBzaGFmdXVcIDsKK+aomeiomCA8IGh5b3VraVwgOwor6aya6auvIDwgc2h1emVuXCA7CivliY3mrrUgPCB6ZW5kYW5cIDsKK+mBruaWrSA8IHNoYWRhblwgOwor6YGp5pmCIDwgdGVraWppXCA7CivojYnntJkgPCBzb3VzaGlcIDsKK+iQveW+jCA8IHJha3Vnb1wgOwor55uy566hIDwgbW91a2FuXCA7CivljYHkuIkgPCBqdXVzYW5cIDsKK+WNgeS4hyA8IGp1dW1hblwgOwor5q+S5ZGzIDwgZG9rdW1pXCA7CivokYnlt7sgPCBoYW1ha2lcIDsKK+W8teWtkCA8IGhhcmlrb1wgOwor55+z5bGLIDwgaXNoaXlhXCA7CivlvqHkuLsgPCBvbnVzaGlcIDsKK+mDveWQiCA8IHRzdWdvdVwgOwor5b6h5LitIDwgb25jaHV1XCA7CivoirHovKogPCBoYW5hd2FcIDsKK+W8geaFtiA8IGJlbmtlaVwgOwor5LiN6LKe5a+dIDwgZnV0ZW5lXCA7CivlhY3oqLEgPCBtZW5reW9cIDsKK+W5sueKryA8IGthbnBhblwgOwor5Ymq5p6dIDwgc2Vuc2hpXCA7CivoirHou7ggPCBrYWppa3VcIDsKK+W5veeEtiA8IHl1dXplblwgOwor5Ye555SwIDwga3Vib3RhXCA7Civoi6boobcgPCBrdWNodXVcIDsKK+eZuuimiyA8IGhha2tlblwgOwor5YWO6KeSIDwgdG9rYWt1XCA7CivlvZPlnLAgPCB0b3VjaGlcIDsKK+W5sueJqSA8IGhpbW9ub1wgOwor5bmz54mIIDwgaGVpaGFuXCA7Civoi6booYwgPCBrdWd5b3VcIDsKK+mvqOiEgiA8IGdlaXNoaVwgOwor5YaN6IiIIDwgc2Fpa291XCA7CivokL3luqYgPCBvY2hpZG9cIDsKK+egsuWPsCA8IGhvdWRhaVwgOwor5YaN6IeoIDwgc2FpcmluXCA7CivnnJ/nlLAgPCBzYW5hZGFcIDsKK+WKqeW9uSA8IGpveWFrdVwgOwor5q+O5Y+3IDwgbWFpZ291XCA7CivliqPmgKcgPCByZXNzZWlcIDsKK+ebruesiiA8IG1lemFydVwgOwor5q2v5b2iIDwgaGFnYXRhXCA7CivlvL7lpY8gPCBkYW5zb3VcIDsKK+WMheWQqyA8IGhvdWdhblwgOwor5buD5qChIDwgaGFpa291XCA7Civlvozkvr8gPCBrb3ViaW5cIDsKK+WMjeWMkCA8IGhvZnVrdVwgOwor6YOK5aSWIDwga291Z2FpXCA7CivlvLflp6YgPCBnb3VrYW5cIDsKK+eZveihoyA8IGJ5YWt1ZVwgOwor5beo6ImmIDwga3lva2FuXCA7CivpgLLmrakgPCBzaGlucG9cIDsKK+WHoeecvCA8IGJvbmdhblwgOwor5YOn6ZaAIDwgc291bW9uXCA7Civov5Tnm4MgPCBoZW5wYWlcIDsKK+W3peiKuCA8IGtvdWdlaVwgOwor6LuN6ZqKIDwgZ3VudGFpXCA7CivokL3lt64gPCByYWt1c2FcIDsKK+W3qOiIuSA8IGt5b3NlblwgOwor6bGX54q2IDwgcmluam91XCA7Civou43pmaMgPCBndW5qaW5cIDsKK+i8quismyA8IHJpbmtvdVwgOwor5q6L5a2YIDwgemFuem9uXCA7CivlubPnhLYgPCBoZWl6ZW5cIDsKK+WIh+eJhyA8IHNlcHBlblwgOwor5YyX5YWJIDwgaG9ra291XCA7CivmrablvrMgPCBidXRva3VcIDsKK+ecieebriA8IGJpbW9rdVwgOwor55y854K5IDwgZ2FudGVuXCA7Civli5XlpKkgPCBkb3V0ZW5cIDsKK+WKn+W+syA8IGt1ZG9rdVwgOwor5b6M5Lu2IDwga291a2VuXCA7CivoiabpmoogPCBrYW50YWlcIDsKK+atr+WMu+iAhSA8IGhhaXNoYVwgOwor6IuX6KOUIDwgYnlvdWVpXCA7CivliqDlvbkgPCBrYXlha3VcIDsKK+W+jOS7oyA8IGtvdWRhaVwgOwor6bGX54mHIDwgcmlucGVuXCA7CivlvIrlupcgPCBoZWl0ZW5cIDsKK+ecn+eQhiA8IHNoaW5yaVwgOwor5YSV6LypIDwgc2FpaGFpXCA7Civnmq7ohpwgPCBoaW1ha3VcIDsKK+S8vOmhlOe1tSA8IG5pZ2FvZVwgOwor5b255YSAIDwgeWFrdWdpXCA7CivnnJ/nj6AgPCBzaGluanVcIDsKK+WJquaWrSA8IHNlbmRhblwgOwor5YWs6JGsIDwga291c291XCA7CivnoILloLQgPCBzdW5hYmFcIDsKK+W8geW9kyA8IGJlbnRvdVwgOwor6YCT5ribIDwgdGVpZ2VuXCA7CivlvoDkv6EgPCBvdXNoaW5cIDsKK+i7jemWgCA8IGd1bm1vblwgOwor5bqn5qiZIDwgemFoeW91XCA7CivprZrpgZMgPCBneW9kb3VcIDsKK+iJh+mmliA8IHRlaXNodVwgOwor6YKq5a6XIDwgamFzaHV1XCA7CivmraPlvKYgPCBzZWlnZW5cIDsKK+WLh+WnvyA8IHl1dXNoaVwgOwor5YiG54WZIDwgYnVuJydlblwgOwor5qyg5pysIDwga2VwcG9uXCA7Civmr47liIYgPCBtYWlmdW5cIDsKK+WItuatoiA8IHNlaXNoaVwgOwor6YO15Yi4IDwgeXV1a2VuXCA7CivojZLno68gPCBhcmFpc29cIDsKK+i7vei8qSA8IGtlaWhhaVwgOwor6I+v5pePIDwga2F6b2t1XCA7Civmp4vpgKAgPCBrb3V6b3VcIDsKK+iRl+WkpyA8IGNob2RhaVwgOwor5Ye654mpIDwgZGVtb25vXCA7CivojIXoiI4gPCBib3VzaGFcIDsKK+W6p+alrSA8IHphZ3lvdVwgOwor5Yud5ZugIDwgc2hvdWluXCA7Civnmq7ogokgPCBoaW5pa3VcIDsKK+WJjeagvSA8IHNlbnphaVwgOwor56Cy5YW1IDwgaG91aGVpXCA7CivlhoXogZ4gPCBuYWlidW5cIDsKK+WIhueCuSA8IGJ1bnRlblwgOwor5q275a6IIDwgc2hpc2h1XCA7CivlupXmraIgPCB0ZWlzaGlcIDsKK+WFteiIuSA8IGhlaXNlblwgOwor5Yil5rOVIDwgYmVwcG91XCA7Civlh7jniYggPCB0b3BwYW5cIDsKK+mAmuawlyA8IHRzdXVraVwgOwor5Yqg5beeIDwga2FzaHV1XCA7CivmraPluLggPCBzZWlqb3VcIDsKK+W7u+W7iiA8IGthaXJvdVwgOwor6YCf5q2pIDwgc29rdWhvXCA7CivlubLmvZ8gPCBoaWdhdGFcIDsKK+i7vei6gSA8IGtlaXNvdVwgOwor6YGl5oudIDwgeW91aGFpXCA7Civoirjoq4cgPCBnZWlkYW5cIDsKK+W3p+iAhSA8IGtvdXNoYVwgOwor5YSq6KuaIDwgeXV1am91XCA7Civps6nluqcgPCBoYXRvemFcIDsKK+efreWkpyA8IHRhbmRhaVwgOwor5bem57+8IDwgc2F5b2t1XCA7CivojLbnrYUgPCBjaGFzZW5cIDsKK+WJjeadvyA8IG1hZWl0YVwgOwor5YO76YGgIDwgaGVraWVuXCA7Civpq5jpupcgPCBrb3VyYWlcIDsKK+i6q+mggyA8IG1pZ29yb1wgOwor5YmN5p2hIDwgemVuam91XCA7CivlhaXojbcgPCBueXV1a2FcIDsKK+WJsuaLoCA8IGtha2t5b1wgOwor5by35Zu6IDwga3lvdWtvXCA7CivlubPmupYgPCBoZWlqdW5cIDsKK+W8n+WmuSA8IHRlaW1haVwgOwor55eb6aOyIDwgdHN1dWluXCA7Civlir7lpY8gPCBnYWlzb3VcIDsKK+W5sua6gCA8IGthbm1hblwgOwor5YmN5pu4IDwgemVuc2hvXCA7Civlu7blubQgPCBlbicnbmVuXCA7Civnl4XprZQgPCBieW91bWFcIDsKK+WIqeassiA8IHJpeW9rdVwgOwor6YOt5YWsIDwga2Fra291XCA7Civluq3mnKggPCBuaXdha2lcIDsKK+alvemfsyA8IGdha3VvblwgOwor5q6L5aGBIDwgemFucnVpXCA7CivlhaXoi5EgPCBueXV1ZW5cIDsKK+iLpeiRiSA8IHdha2FiYVwgOwor5YeG55yLIDwganVua2FuXCA7CivluLjnlKggPCBqb3V5b3VcIDsKK+WLsuWKnyA8IGt1bmtvdVwgOwor5byK5a6zIDwgaGVpZ2FpXCA7CivmraTlsrggPCBzaGlnYW5cIDsKK+W5s+a3oSA8IGhlaXRhblwgOwor54Gr5LqL5aC0IDwga2FqaWJhXCA7CivlhajoiKwgPCB6ZW5wYW5cIDsKK+WJjeaZryA8IHplbmtlaVwgOwor6YGg5oiaIDwgZW5zZWtpXCA7CivmrrrliLAgPCBzYXR0b3VcIDsKK+ebruebmyA8IG1lbW9yaVwgOwor6Iul6I+cIDwgd2FrYW5hXCA7CivluIbnq4sgPCBob3RhdGVcIDsKK+mDoeWItiA8IGd1bnNlaVwgOwor6YO15L6/IDwgeXV1YmluXCA7Civou6LpgIEgPCB0ZW5zb3VcIDsKK+ebrueZvSA8IG1lamlyb1wgOwor55uq55uqIDwgdG91dG91XCA7CivliJ3mrrUgPCBzaG9kYW5cIDsKK+iIuemgrSA8IHNlbmRvdVwgOwor5b2T5YiGIDwgdG91YnVuXCA7CivpgLHmnJ8gPCBzaHV1a2lcIDsKK+mDjuWQmyA8IHJvdWt1blwgOwor6L+R54q2IDwga2luam91XCA7Civlt6jnt6ggPCBreW9oZW5cIDsKK+iKseimiyA8IGhhbmFtaVwgOwor5YaF57eaIDwgbmFpc2VuXCA7CivmrKDmkI0gPCBrZXNzb25cIDsKK+WGhee3kiA8IG5haXNob1wgOwor5YiR5rOVIDwga2VpaG91XCA7Civps7TlrZAgPCBuYXJ1a29cIDsKK+WJjeaWhyA8IHplbmJ1blwgOwor5q2m5a2mIDwgYnVnYWt1XCA7Civlh7rmva4gPCBkZXNoaW9cIDsKK+W4reeUuyA8IHNla2lnYVwgOwor6YCG5q+bIDwgc2FrYWdlXCA7Civpganlv5wgPCB0ZWtpb3VcIDsKK+mtmuiynSA8IGd5b2JhaVwgOwor6Iul6Iq9IDwgd2FrYW1lXCA7Civou6LovIkgPCB0ZW5zYWlcIDsKK+WGt+ecvCA8IHJlaWdhblwgOwor5Yuk5YuJIDwga2luYmVuXCA7Civmq5vmr5QgPCBzaGlwcGlcIDsKK+mAgeawtCA8IHNvdXN1aVwgOwor5Yuk5Yq0IDwga2lucm91XCA7CivluILnqI4gPCBzaGl6ZWlcIDsKK+avjeS5syA8IGJvbnl1dVwgOwor6Lui6LuiIDwgdGVudGVuXCA7CivpgZTmiJAgPCB0YXNzZWlcIDsKK+WGhee0myA8IG5haWZ1blwgOwor5Yu/5L2TIDwgbW90dGFpXCA7Civli5jlkIggPCBrYW5nb3VcIDsKK+iMtueilyA8IGNoYXdhblwgOwor6LuN6YWNIDwgZ3VuYmFpXCA7CivlubPmsLQgPCBoZWlzdWlcIDsKK+mzpeWxiyA8IHRvcml5YVwgOwor5bmz5rCRIDwgaGVpbWluXCA7CivlubPmsI8gPCBoZWlzaGlcIDsKK+mAo+aenSA8IHJlbnNoaVwgOwor5q+N5LiKIDwgaGFoYXVlXCA7Civli5XlkJEgPCBkb3Vrb3VcIDsKK+eWvumnhiA8IHNoaWtrdVwgOwor5Ye95rigIDwga2Fua3lvXCA7CivovrLnlKMgPCBub3VzYW5cIDsKK+WIkeatuyA8IGtlaXNoaVwgOwor5qW86ZaAIDwgcm91bW9uXCA7CivlhaznvbIgPCBrb3VzaG9cIDsKK+W5tOatryA8IG5lbnNoaVwgOwor6YCg5p6XIDwgem91cmluXCA7CivoiLnpmoogPCBzZW50YWlcIDsKK+mBoOW/gyA8IGVuc2hpblwgOwor6Iub6IubIDwgaXJhaXJhXCA7CivlvLHlkbMgPCB5b3dhbWlcIDsKK+mBqeW6piA8IHRla2lkb1wgOwor5YmK5pGpIDwgc2FrdW1hXCA7CivovKrolLUgPCByaW56b3VcIDsKK+W8vuWKviA8IGRhbmdhaVwgOwor6YGU5oSPIDwgdGF0c3VpXCA7CivlupXmnKwgPCB0ZWlob25cIDsKK+WIsOadpSA8IHRvdXJhaVwgOwor55m66ImmIDwgaGFra2FuXCA7CivliI7mrbsgPCBmdW5zaGlcIDsKK+i7jemBkyA8IGd1bmRvdVwgOwor5Ym15bu6IDwgc291a2VuXCA7CivliY3mj5AgPCB6ZW50ZWlcIDsKK+WGrOedgCA8IGZ1eXVnaVwgOwor6YCg5pysIDwgem91aG9uXCA7CivnnIvngrkgPCBrYW50ZW5cIDsKK+aso+aHkCA8IGtpbmthaVwgOwor6JaE44CFIDwgdXN1dXN1XCA7CivlhqznnKAgPCB0b3VtaW5cIDsKK+ixqumbqOemjSA8IGdvdXVrYVwgOwor5Yud5YipIDwgc2hvdXJpXCA7Civnmbvoh6ggPCB0b3VyaW5cIDsKK+i7iumBkyA8IHNoYWRvdVwgOwor5by35YyWIDwga3lvdWthXCA7Civovpvnm64gPCBrYXJhbWVcIDsKK+WLleWLoiA8IGRvdXNlaVwgOwor55e06YiNIDwgY2hpZG9uXCA7Civmrovlk4EgPCB6YW5waW5cIDsKK+W6uOaJjSA8IHlvdXNhaVwgOwor5YuV5Yq0IDwgZG91cm91XCA7Civou5LovIogPCBrZW5jaGlcIDsKK+WFieiKkiA8IGtvdWJvdVwgOwor5biv54q2IDwgb2Jpam91XCA7Civoi6bogokgPCBrdW5pa3VcIDsKK+mAo+aYnyA8IHJlbnNlaVwgOwor55uu546JIDwgbWVkYW1hXCA7CivojLbnm4YgPCBjaGFib25cIDsKK+mDjuWFmiA8IHJvdWRvdVwgOwor5biD55+zIDwgZnVzZWtpXCA7Civoh6Xpvo0gPCBnYXJ5b3VcIDsKK+W8geWkqSA8IGJlbnRlblwgOwor5YiH5q2vIDwgc2Vzc2hpXCA7Civnn63lkb0gPCB0YW5tZWlcIDsKK+W3o+eusSA8IHN1YmFrb1wgOwor5q6/5LiKIDwgdGVuam91XCA7CivoiLfploAgPCBnZW5tb25cIDsKK+mBuOWumiA8IHNlbnRlaVwgOwor5YuH5ZCNIDwgeXV1bWVpXCA7CivmraPlpKcgPCBzZWlkYWlcIDsKK+mrkemrjyA8IGRva3Vyb1wgOwor5Yip5pytIDwgcmlmdWRhXCA7Civpgbflrq4gPCBzZW5ndXVcIDsKK+i7ouiyuCA8IHRlbnRhaVwgOwor5byB5aOrIDwgYmVuc2hpXCA7Civkupzpurvoo70gPCBhbWFzZWlcIDsKK+mBk+W/tSA8IGRvdW5lblwgOwor556z5a2QIDwgZG91c2hpXCA7CivlvZPku6MgPCB0b3VkYWlcIDsKK+W6iuacuiA8IHNob3VnaVwgOwor5YWI6IisIDwgc2VucGFuXCA7CivlvZPkurogPCB0b3VuaW5cIDsKK+mBteWuiCA8IGp1bnNodVwgOwor6LuK6LyqIDwgc2hhcmluXCA7CivliJ3moKEgPCBzaG9rb3VcIDsKK+i7jei7iiA8IGd1bnNoYVwgOwor6YCj5pWXIDwgcmVucGFpXCA7CivlupXmlbAgPCB0ZWlzdXVcIDsKK+WHuuawtCA8IGRlbWl6dVwgOwor6Lqr6YqtIDwgbWl6ZW5pXCA7CivoiabovIkgPCBrYW5zYWlcIDsKK+W6g+adsSA8IGthbnRvblwgOwor5biD55uuIDwgbnVub21lXCA7Civlhbjnr4QgPCB0ZW5wYW5cIDsKK+eXhemZoiA8IGJ5b3VpblwgOwor55+l5ZG9IDwgY2hpbWVpXCA7Civnm5fnlKggPCB0b3V5b3VcIDsKK+WJm+aApyA8IGdvdXNlaVwgOwor5b2T5LiWIDwgdG91c2VpXCA7Civli4nlirEgPCBiZW5yZWlcIDsKK+WHuuauuyA8IGRlZ2FyYVwgOwor5YWO6IKJIDwgdG9uaWt1XCA7CivnnKDmsJcgPCBuZW11a2VcIDsKK+iMtueVqiA8IGNoYWJhblwgOwor55yf5rC0IDwgbWFtaXp1XCA7Civlt6bnqIsgPCBzYWhvZG9cIDsKK+mrmOmiqCA8IGtvdWZ1dVwgOwor5bm95p6XIDwgeXV1cmluXCA7Civov5TmuIggPCBoZW5zYWlcIDsKK+WGrOeTnCA8IHRvdWdhblwgOwor5q6K5YuyIDwgc2h1a3VuXCA7CivlhYnog4wgPCBrb3VoYWlcIDsKK+i7jOi3oSA8IGtpc2VraVwgOwor5byx5YagIDwgamFra2FuXCA7Civnn6Xlj4sgPCBjaGl5dXVcIDsKK+WKoOWcpyA8IGthYXRzdVwgOwor6Iy255O2IDwgY2hhYmluXCA7CivliKnmlbUgPCByaXRla2lcIDsKK+WIpOaYjiA8IGhhbm1laVwgOwor6YGp5a6cIDwgdGVraWdpXCA7Civmrorlip8gPCBzaHVrb3VcIDsKK+W8peWLkiA8IG1pcm9rdVwgOwor5Yal55WMIDwgbWVpa2FpXCA7Civoiq3olYkgPCBiYXNob3VcIDsKK+mBi+W8kyA8IHVua3l1dVwgOwor5Ymj5bivIDwga2VudGFpXCA7Civpq5jpn7MgPCB0YWthbmVcIDsKK+iJr+iyqCA8IHJ5b3VrYVwgOwor55+t5YmjIDwgdGFua2VuXCA7CivlhYjogZYgPCBzZW5zZWlcIDsKK+WFqOexsyA8IHplbmJlaVwgOwor55uy54K5IDwgbW91dGVuXCA7CivliKTmlq0gPCBoYW5kYW5cIDsKK+atk+WjsCA8IGthbnNlaVwgOwor5qy95a6aIDwga2ludGVpXCA7CivpgI/mmI4gPCB0b3VtZWlcIDsKK+mHjeOAhSA8IGp1dWp1dVwgOwor6Luf6KuWIDwgbmFucm9uXCA7CivpgrjlhoUgPCB0ZWluYWlcIDsKK+WFjee9qiA8IG1lbnphaVwgOwor5buD5bidIDwgaGFpdGVpXCA7Civnn63liIAgPCB0YW50b3VcIDsKK+WFrOeulyA8IGtvdXNhblwgOwor6IiM6aCtIDwgemV0dG91XCA7CivpgbjlpJYgPCBzZW5nYWlcIDsKK+atu+WOuyA8IHNoaWt5b1wgOwor6LuN6LOHIDwgZ3Vuc2hpXCA7CivlvJXlkIggPCBoaWtpYWlcIDsKK+W5veaZryA8IHl1dWtlaVwgOwor6YGK5bqVIDwgeXV1dGVpXCA7Civnn6nliYcgPCBrdXNva3VcIDsKK+W3oeekvCA8IGp1bnJlaVwgOwor5bm05p2lIDwgbmVucmFpXCA7CivliJ3ml6wgPCBzaG9qdW5cIDsKK+W5s+advyA8IGhlaWJhblwgOwor5YSA6KGoIDwgZ2loeW91XCA7CivlhbXnqK4gPCBoZWlzaHVcIDsKK+W3qOegsiA8IGt5b2hvdVwgOwor55qG57SNIDwga2Fpbm91XCA7CivmrovlhZogPCB6YW50b3VcIDsKK+asoeW4rSA8IGppc2VraVwgOwor5q2M5aOwIDwgdXRhZ29lXCA7CivmqKHntKIgPCBtb3Nha3VcIDsKK+aui+WFiSA8IHphbmtvdVwgOwor5YWD6ICBIDwgZ2Vucm91XCA7CivoirPojYkgPCBob3Vzb3VcIDsKK+ecn+aoqiA8IG1heW9rb1wgOwor5YWr56uvIDwgaGF0dGFuXCA7CivliIbmoKEgPCBidW5rb3VcIDsKK+mAo+aKlSA8IHJlbnRvdVwgOwor55uX54qvIDwgdG91aGFuXCA7CivlvL7kuLggPCBkYW5nYW5cIDsKK+atjOWigyA8IGtha3lvdVwgOwor5YaZ55SfIDwgc2hhc2VpXCA7Civmrovlg48gPCB6YW56b3VcIDsKK+atqeWTqCA8IGhvc2hvdVwgOwor55yM5rCRIDwga2VubWluXCA7CivliaPlsbEgPCBrZW56YW5cIDsKK+WKtOWKnyA8IHJvdWtvdVwgOwor6YCj5oimIDwgcmVuc2VuXCA7CivlhrfnhLYgPCByZWl6ZW5cIDsKK+WLleS5sSA8IGRvdXJhblwgOwor5Yi25oayIDwgc2Vpa2VuXCA7CivlvJPli6IgPCB5dW56ZWlcIDsKK+WGheecgSA8IG5haXNlaVwgOwor5bmz5piOIDwgaGVpbWVpXCA7CivmrbvliJEgPCBzaGlrZWlcIDsKK+ecieavmyA8IG1heXVnZVwgOwor6YCg5oiQIDwgem91c2VpXCA7Civlu4PlsYsgPCBoYWlva3VcIDsKK+WIh+abvyA8IHNldHRhaVwgOwor6YCD5pWjIDwgdG91c2FuXCA7Civouqvou70gPCBtaWdhcnVcIDsKK+efouWFiCA8IHlhc2FraVwgOwor6LuN6KuHIDwgZ3VuZGFuXCA7CivlubTmlbAgPCBuZW5zdXVcIDsKK+Wxsee+iuW6pyA8IHlhZ2l6YVwgOwor5q2j5ZGzIDwgc2hvdW1pXCA7CivpgIDmlaMgPCB0YWlzYW5cIDsKK+iKuOiDvSA8IGdlaW5vdVwgOwor6YCj5oOzIDwgcmVuc291XCA7CivmrovkvZkgPCB6YW4nJ3lvXCA7CivpgaPlpJYgPCBrZW5nYWlcIDsKK+W8geWPoyA8IGJlbmtvdVwgOwor55qT56SsIDwga291YmFuXCA7CivmraPlj7cgPCBzZWlnb3VcIDsKK+iLpueskSA8IGt1c2hvdVwgOwor5YiG5piOIDwgYnVubWVpXCA7CivlvJPlhbcgPCBreXV1Z3VcIDsKK+eZjOiFqyA8IGdhbnNodVwgOwor55+u5Lq6IDwgd2FpamluXCA7CivojZLmtbcgPCBhcmF1bWlcIDsKK+mztOWLlSA8IG1laWRvdVwgOwor5YaF55WMIDwgbmFpa2FpXCA7CivluqfluK0gPCB6YXNla2lcIDsKK+ato+WNlyA8IHNlaW5hblwgOwor6Iq46ICFIDwgZ2Vpc2hhXCA7CivmraPljYggPCBzaG91Z29cIDsKK+WGheeUqCA8IG5haXlvdVwgOwor5Yil5oeHIDwgYmVra29uXCA7CivliIbmlbAgPCBidW5zdXVcIDsKK+WIhuaVoyA8IGJ1bnNhblwgOwor5YSq6ICFIDwgeXV1c2hhXCA7CivljZLloZTlqYYgPCBzb3RvYmFcIDsKK+atr+WGoCA8IHNoaWthblwgOwor5YaN54++IDwgc2FpZ2VuXCA7Civlurflr6cgPCBrb3VuZWlcIDsKK+WKn+WKtCA8IGtvdXJvdVwgOwor5qyE5bmyIDwgcmFua2FuXCA7CivliJfmjJkgPCByZWtreW9cIDsKK+WJjeWxsSA8IHplbnphblwgOwor5byl5LmFIDwgYmlreXV1XCA7Civnmbrnq68gPCBob3R0YW5cIDsKK+WIneaIpiA8IHNob3NlblwgOwor6LuN6KOFIDwgZ3Vuc291XCA7CivliKXmhI8gPCBiZXRzdWlcIDsKK+WHuuaZgiA8IGRlZG9raVwgOwor6YCj5by+IDwgcmVuZGFuXCA7CivkupzpurvoibIgPCBhbWFpcm9cIDsKK+efpeS6uiA8IGNoaWppblwgOwor6Iyr54S2IDwgYm91emVuXCA7CivovJTnv7wgPCBob3lva3VcIDsKK+i+suazlSA8IG5vdWhvdVwgOwor5Yip5oGvIDwgcmlzb2t1XCA7CivlupzluoEgPCBmdWNob3VcIDsKK+W6tuWtkCA8IHNob3NoaVwgOwor6I+v5aWiIDwga3lhc2hhXCA7Civoh7Ppm6MgPCBzaGluYW5cIDsKK+WKtOS9vyA8IHJvdXNoaVwgOwor5buJ5aOyIDwgcmVuYmFpXCA7CivmrbvkvZMgPCBzaGl0YWlcIDsKK+mAouW8lSA8IGFpYmlraVwgOwor5YGc6aCTIDwgdGVpdG9uXCA7CivpgbrlkYogPCB5dWlnb3VcIDsKK+WHveaVsCA8IGthbnN1dVwgOwor5Ya35rehIDwgcmVpdGFuXCA7CivnnJ/mmLwgPCBtYWhpcnVcIDsKK+WHuuaWuSA8IGRla2F0YVwgOwor5Ymj5aOrIDwga2Vuc2hpXCA7Civlhaznm4ogPCBrb3Vla2lcIDsKK+iIuei3ryA8IGZ1bmFqaVwgOwor55aO6ZqUIDwgc29rYWt1XCA7CivliqDlhaUgPCBrYW55dXVcIDsKK+i+suawkSA8IG5vdW1pblwgOwor6YGg5Zu9IDwgb25nb2t1XCA7CivlhbfnlLMgPCBndXNoaW5cIDsKK+iNt+acrSA8IG5pZnVkYVwgOwor5bit5qyhIDwgc2VraWppXCA7CivliKnlvpcgPCByaXRva3VcIDsKK+WFqOebsiA8IHplbm1vdVwgOwor5q275LqhIDwgc2hpYm91XCA7Civlt6jnjaMgPCBreW9qdXVcIDsKK+ato+WFtSA8IHNlaWhlaVwgOwor5YWo55ubIDwgemVuc2VpXCA7CivouYjpnrQgPCB0YXRhcmFcIDsKK+mAo+W4ryA8IHJlbnRhaVwgOwor6YCf5bqmIDwgc29rdWRvXCA7CivliLDlupUgPCB0b3V0ZWlcIDsKK+WFjeeojiA8IG1lbnplaVwgOwor6IiM6YuSIDwgemVwcG91XCA7CivpgKDluaMgPCB6b3VoZWlcIDsKK+aomeekuiA8IGh5b3VqaVwgOwor5bmz5omLIDwgaGlyYXRlXCA7CivlgZzpm7sgPCB0ZWlkZW5cIDsKK+WBpemXmCA8IGtlbnRvdVwgOwor6Iif6YGLIDwgc2h1dXVuXCA7CivmqKrnm64gPCB5b2tvbWVcIDsKK+WHseaXiyA8IGdhaXNlblwgOwor55uu5qyhIDwgbW9rdWppXCA7Civlhrfms4kgPCByZWlzZW5cIDsKK+WFqOeZkiA8IHplbicneXVcIDsKK+eZveejgSA8IGhha3VqaVwgOwor6L+U5pysIDwgaGVucG9uXCA7CivliKXlvaIgPCBiZWtrZWlcIDsKK+W5u+aDsyA8IGdlbnNvdVwgOwor55yL5p2/IDwga2FuYmFuXCA7Civlho3nh4MgPCBzYWluZW5cIDsKK+edgOaEjyA8IGNoYWt1aVwgOwor5YaF54q2IDwgbmFpam91XCA7CivliKXlvZMgPCBiZXR0b3VcIDsKK+i/keadsSA8IGtpbnRvdVwgOwor5bu65YW3IDwgdGF0ZWd1XCA7Civov5HmnaUgPCBraW5yYWlcIDsKK+i/lOabuCA8IGhlbnNob1wgOwor5bqP5bmVIDwgam9tYWt1XCA7CivlgbTpjpYgPCBzb2t1c2FcIDsKK+amguirliA8IGdhaXJvblwgOwor55eF6LqvIDwgYnlvdWt1XCA7Civmpb3orZwgPCBnYWt1ZnVcIDsKK+WGt+axlyA8IHJlaWthblwgOwor5YiG5ouFIDwgYnVudGFuXCA7CivovqPmsrkgPCByYXpleXVcIDsKK+WKh+WMliA8IGdla2lrYVwgOwor5Ya35rC0IDwgcmVpc3VpXCA7CivpgoTlhYMgPCBrYW5nZW5cIDsKK+WIqeW5hSA8IHJpaGFiYVwgOwor5Yeh5pu4IDwgYm9uc2hvXCA7CivpgKPls7AgPCByZW5wb3VcIDsKK+WKh+WLmSA8IGdla2ltdVwgOwor5YiH5omLIDwga2lyZXRlXCA7CivlubvmgKogPCBnZW5rYWlcIDsKK+i/veaFlSA8IHRzdWlib1wgOwor55m656CyIDwgaGFwcG91XCA7CivouqvoqLEgPCBtaW1vdG9cIDsKK+mBqeWQpiA8IHRla2loaVwgOwor5Ye65o6bIDwgZGVnYWtlXCA7Civlhobnhp8gPCBlbmp1a3VcIDsKK+i/keaZryA8IGtpbmtlaVwgOwor6YCj5bGxIDwgcmVuemFuXCA7Civpq5jpgoEgPCBrb3VtYWlcIDsKK+WJjeWljyA8IHplbnNvdVwgOwor5bqX5bGLIDwgbWlzZXlhXCA7Civlh6bmlrkgPCBzaG9ob3VcIDsKK+mdkua1t+iLlCA8IGFvbm9yaVwgOwor6YGN5ZyoIDwgaGVuemFpXCA7CivliKXlt7sgPCBiZWtrYW5cIDsKK+WGl+a8qyA8IGpvdW1hblwgOwor5qaC6KazIDwgZ2Fpa2FuXCA7CivliY3lpJwgPCB6ZW4nJ3lhXCA7Civlu7rlgKQgPCB0YXRlbmVcIDsKK+W5u+W9sSA8IGdlbicnZWlcIDsKK+mAo+WwhCA8IHJlbnNoYVwgOwor5YmN5aOyIDwgbWFldXJpXCA7CivmpoLopoEgPCBnYWl5b3VcIDsKK+WCjei8qSA8IGhvdWJhaVwgOwor55m955yJIDwgaGFrdWJpXCA7Civls6Hpg6ggPCBreW91YnVcIDsKK+WItuWumiA8IHNlaXRlaVwgOwor6Lu9572qIDwga2VpemFpXCA7CivnlarpoK0gPCBiYW50b3VcIDsKK+WIneW5tCA8IHNob25lblwgOwor6L6b5rCXIDwgc2hpbmtpXCA7CivlibLlkIggPCB3YXJpYWlcIDsKK+alvOimsyA8IHJvdWthblwgOwor6Ium55ebIDwga3V0c3V1XCA7Civlub7lubQgPCBpa3VuZW5cIDsKK+WGrOavmyA8IGZ1eXVnZVwgOwor5YWI55+lIDwgc2VuY2hpXCA7CivlupflrZAgPCB0YW5ha29cIDsKK+mtmue+pCA8IGd5b2d1blwgOwor6YCA5b25IDwgdGFpZWtpXCA7CivlubzlubQgPCB5b3VuZW5cIDsKK+i/guabsiA8IHVreW9rdVwgOwor5Ymy5Y2wIDwgd2FyaWluXCA7CivliKnlsL8gPCByaW55b3VcIDsKK+S8vOmdnuimqiA8IGVzZW95YVwgOwor5bqK5bGLIDwgdG9rb3lhXCA7CivpgIDlu7cgPCB0YWl0ZWlcIDsKK+aoqeePviA8IGdvbmdlblwgOwor5YG06YOoIDwgc29rdWJ1XCA7CivluLDmnI0gPCBraWZ1a3VcIDsKK+ecvOW6lSA8IGdhbnRlaVwgOwor6YCA5buDIDwgdGFpaGFpXCA7CivliKXlsYUgPCBiZWtreW9cIDsKK+eVmemjsiA8IHJ5dXVpblwgOwor5Yiq5a6aIDwgc2FudGVpXCA7CivmrITlpJYgPCByYW5nYWlcIDsKK+WGoOawtCA8IGthbnN1aVwgOwor5Yil5bCBIDwgYmVwcHV1XCA7CivnnLzluK8gPCBnYW50YWlcIDsKK+W5s+W5tCA8IGhlaW5lblwgOwor5bmz5bmzIDwgaGVpaGVpXCA7Civoh4bpnaIgPCBva3VtZW5cIDsKK+W7g+WTgSA8IGhhaWhpblwgOwor6L+35b2pIDwgbWVpc2FpXCA7CivluILmsJEgPCBzaGltaW5cIDsKK+W6hOWxiyA8IHNob3V5YVwgOwor6Imy6ImyIDwgaXJvaXJvXCA7CivlhqDmr5sgPCBrYW5tb3VcIDsKK+W4uOaVsCA8IGpvdXN1dVwgOwor6L6y5p6XIDwgbm91cmluXCA7CivlubPluLggPCBoZWlqb3VcIDsKK+iLlOeZrCA8IHRhaXNlblwgOwor55my55mHIDwgdGVua2FuXCA7Civkupzpurvns7ggPCBhbWFpdG9cIDsKK+WIpOWumiA8IGhhbnRlaVwgOwor5Yik5a6YIDwgaGFuZ2FuXCA7Civlt53ngKwgPCBrYXdhc2VcIDsKK+W7t+S4gSA8IHRlaXRlaVwgOwor55m655SfIDwgaGFzc2VpXCA7CivovrLmnZEgPCBub3Vzb25cIDsKK+WBtOi/kSA8IHNva2tpblwgOwor55uk5qC5IDwgYmFua29uXCA7CivprYLog4YgPCBrb250YW5cIDsKK+WFreWNgei3ryA8IG11c29qaVwgOwor6L2f54S2IDwgZ291emVuXCA7CivliKXlrKogPCBiZXBwaW5cIDsKK+asoOWTgSA8IGtlcHBpblwgOwor6a2a57ayIDwgZ3lvbW91XCA7CivlhoXmua8gPCB1Y2hpeXVcIDsKK+S6nOa4qeW4ryA8IGFvbnRhaVwgOwor55Sf6bqpIDwgbmFtYWZ1XCA7Civlub3lsYUgPCB5dXVreW9cIDsKK+mAo+WknCA8IHJlbicneWFcIDsKK+W3oea8lCA8IGp1bicnZW5cIDsKK+atjOS8miA8IHV0YWthaVwgOwor5YWs54S2IDwga291emVuXCA7Civlt7vmr5sgPCBtYWtpZ2VcIDsKK+i7jeiJpiA8IGd1bmthblwgOwor6YCj5aOwIDwgcmVuam91XCA7CivkvZnmiYDoposgPCB5b3NvbWlcIDsKK+iHqumHjSA8IGppY2hvdVwgOwor5YaF5riIIDwgbmFpc2FpXCA7CivlhYjnlaogPCBzZW5iYW5cIDsKK+mBiuWQnyA8IHl1dWdpblwgOwor6YGK5ZCbIDwgeXV1a3VuXCA7Civou43oiLkgPCBndW5zZW5cIDsKK+iNieacrCA8IHNvdWhvblwgOwor55uy5patIDwgbW91ZGFuXCA7CivnnYDlsLogPCBraWpha3VcIDsKK+iJqOiJnyA8IG1vdWRvdVwgOwor5YG96LazIDwgZ2lzb2t1XCA7CivojYnmm7ggPCBzb3VzaG9cIDsKK+WFqOeEtiA8IHplbnplblwgOwor5YiX5a+nIDwgcmVlbmluXCA7CivprZrnsr4gPCBneW9zZWlcIDsKK+iJpuiJhyA8IGthbnRlaVwgOwor55uu5pa5IDwgbWVrYXRhXCA7Civlh6HmiY0gPCBib25zYWlcIDsKK+WHoeaJiyA8IGJvbnNodVwgOwor5YWF55SoIDwganV1eW91XCA7CivprZrnsokgPCBneW9mdW5cIDsKK+WHoeaIpiA8IGJvbnNlblwgOwor5bq45ZCbIDwgeW91a3VuXCA7CivlgKTpoIMgPCBuZWdvcm9cIDsKK+WHtuW+kiA8IGt5b3V0b1wgOwor55aO6YCaIDwgc290c3V1XCA7Civoh7Pov5EgPCBzaGlraW5cIDsKK+W5ouW5oSA8IGRvdWJhblwgOwor5bmz5bGLIDwgaGlyYXlhXCA7CivpgYXlj4IgPCBjaGlzYW5cIDsKK+mAhuWtkCA8IHNha2Fnb1wgOwor5aeU5ZOh5LyaIDwgaWlua2FpXCA7Civnmb3ni5AgPCBieWFra29cIDsKK+WApOmemCA8IG5lemF5YVwgOwor5Ye65bqrIDwgc2h1a2tvXCA7Civov73lsL4gPCB0c3VpYmlcIDsKK+WHuuW6nCA8IHNodXBwdVwgOwor5Yid5amaIDwgc2hva29uXCA7Civlh7rlupcgPCBkZW1pc2VcIDsKK+WGheayuyA8IG5haWNoaVwgOwor6L6y5pS/IDwgbm91c2VpXCA7CivliZvli4cgPCBnb3V5dXVcIDsKK+asoOWLpCA8IGtla2tpblwgOwor5YWx5ryUIDwga3lvdWVuXCA7Civoh6rpgakgPCBqaXRla2lcIDsKK+WHoeaFriA8IGJvbnJ5b1wgOwor6YCA5a6YIDwgdGFpa2FuXCA7CivnnLzlrZQgPCBnYW5rb3VcIDsKK+eVjOmdoiA8IGthaW1lblwgOwor6YGv5LiWIDwgdG9uc2VpXCA7CivlubPlrpogPCBoZWl0ZWlcIDsKK+iPr+WGkSA8IGthY2h1dVwgOwor6Lyq55WqIDwgcmluYmFuXCA7Civkvp3lrZjluqYgPCBpem9uZG9cIDsKK+WHuuW4qyA8IHN1aXNoaVwgOwor5YmN5ZCNIDwgemVubWVpXCA7CivpgZPlhYMgPCBkb3VnZW5cIDsKK+WJjeWPtyA8IHplbmdvdVwgOwor5Yik5aOrIDwgaGFuc2hpXCA7CivovKrnlJ8gPCByaW5zZWlcIDsKK+WGheawlyA8IHVjaGlraVwgOwor5YKN6KiTIDwgYm91a3VuXCA7CivnnLjlrZAgPCBib3VzaGlcIDsKK+mBheWKuSA8IGNoaWtvdVwgOwor5buD5YW1IDwgaGFpaGVpXCA7CivlhY3nirYgPCBtZW5qb3VcIDsKK+W4huahgSA8IGhvZ2V0YVwgOwor5qmf5qWtIDwga2lneW91XCA7CivpgJPlopcgPCB0ZWl6b3VcIDsKK+W5leW6nCA8IGJha3VmdVwgOwor5bit5o2yIDwgc2Vra2VuXCA7CivojbflvbkgPCBuaXlha3VcIDsKK+WGheauvyA8IG5haWRlblwgOwor5YKN6KazIDwgYm91a2FuXCA7CivnlYzpmoggPCBrYWl3YWlcIDsKK+WIhuWwgSA8IGJ1bnBvdVwgOwor5YWs5rqWIDwga291anVuXCA7Civlgo3oppYgPCB3YWtpbWlcIDsKK+eZveeFmSA8IGhha3VlblwgOwor6IuU54q2IDwgdGFpam91XCA7CivprZTnrJsgPCBtYXRla2lcIDsKK+WJteS4liA8IHNvdXNlaVwgOwor6Lez6aasIDwgY2hvdWJhXCA7CivluLjmhYsgPCBqb3V0YWlcIDsKK+W6g+WgtCA8IGhpcm9iYVwgOwor5bGx6aGbIDwgc2FudGVuXCA7CivlgZzou4ogPCB0ZWlzaGFcIDsKK+mrmOimpyA8IGtvdXJhblwgOwor55SY6a+bIDwgYW1hZGFpXCA7CivluoPln58gPCBrb3Vpa2lcIDsKK+aoqua6oiA8IG91aXRzdVwgOwor5Yas5pelIDwgZnV5dWJpXCA7Civpq5joposgPCB0YWthbWlcIDsKK+WDp+e2sSA8IHNvdWdvdVwgOwor5YmN5YmNIDwgbWFlbWFlXCA7CivluqfljZMgPCB6YXRha3VcIDsKK+WGoOacqCA8IGthYnVraVwgOwor6Imv57iBIDwgcnlvdWVuXCA7CivliZvlgaUgPCBnb3VrZW5cIDsKK+WBveiovCA8IGdpc2hvdVwgOwor5biC5pyJIDwgc2hpeXV1XCA7Civluq3liY0gPCB0ZWl6ZW5cIDsKK+mYv+WDp+elhyA8IGFzb3VnaVwgOwor5qSc6LuKIDwga2Vuc2hhXCA7Civlupflk6EgPCB0ZW4nJ2luXCA7CivpgLLljJYgPCBzaGlua2FcIDsKK+aoueawtyA8IGp1aHlvdVwgOwor5bqE5ZySIDwgc2hvdWVuXCA7Civoh6rotrMgPCBqaXNva3VcIDsKK+mqqOi6qyA8IGhvbmVtaVwgOwor5YWt5rOVIDwgcm9wcG91XCA7Civlh7rlrrYgPCBzaHVra2VcIDsKK+mrmOijgSA8IGtvdXNhaVwgOwor55S76ZuGIDwgZ2FzaHV1XCA7CivliIblqKkgPCBidW5iZW5cIDsKK+iJsuezuCA8IGlyb2l0b1wgOwor55S76ZqcIDwgZ2FzaG91XCA7CivlsbHpnIogPCBzYW5yZWlcIDsKK+WGmeacrCA8IHNoYWhvblwgOwor5YWl5rW3IDwgaXJpdW1pXCA7CivouYLouqogPCBqdXVyaW5cIDsKK+W5leWxiyA8IG1ha3V5YVwgOwor5Yi75Y2wIDwga29rdWluXCA7Civlh6HluLggPCBib25qb3VcIDsKK+i/t+WmhCA8IG1laW1vdVwgOwor55eb6IumIDwgdHN1dWt1XCA7Civnm4bmma8gPCBib25rZWlcIDsKK+iIueiNtyA8IGZ1bmFuaVwgOwor6YCj5ZCfIDwgcmVuZ2luXCA7CivliJ3lm54gPCBzaG9rYWlcIDsKK+W7g+S6uiA8IGhhaWppblwgOwor5Ymb5L2TIDwgZ291dGFpXCA7Civou4rnt5ogPCBzaGFzZW5cIDsKK+mAo+WQiCA8IHJlbmdvdVwgOwor55uy5oOzIDwgbW91c291XCA7CivlubTloLEgPCBuZW5wb3VcIDsKK+ebuOaApyA8IGFpc2hvdVwgOwor6Iul5rmvIDwgd2FrYXl1XCA7CivlhazmsJEgPCBrb3VtaW5cIDsKK+W4guaXpSA8IGljaGliaVwgOwor5qeY55u4IDwgeW91c291XCA7CivpsYjlrZAgPCB0YXJha29cIDsKK+WIhuWkliA8IGJ1bmdhaVwgOwor55uj5oi/IDwga2FuYm91XCA7CivluIPmlZkgPCBmdWt5b3VcIDsKK+mAoOWPjSA8IHpvdWhhblwgOwor5YiG5aOyIDwgYnVuYmFpXCA7Civlh4Tmg6ggPCBzZWlzYW5cIDsKK+ebm+aMmSA8IHNlaWt5b1wgOwor6Lu955uuIDwga2FydW1lXCA7CivluLDlv4MgPCBraXNoaW5cIDsKK+iMmOaenSA8IHJlaXNoaVwgOwor55u45b25IDwgYWl5YWt1XCA7CivluqflhYMgPCB6YW1vdG9cIDsKK+WGjeadpSA8IHNhaXJhaVwgOwor5YW85qWtIDwga2VuZ291XCA7Civnm77luqcgPCB0YXRlemFcIDsKK+WGt+aIvyA8IHJlaWJvdVwgOwor5Yi25YuVIDwgc2VpZG91XCA7Civnm7jlvZMgPCBzb3V0b3VcIDsKK+W3oeaknCA8IGp1bmtlblwgOwor5YW15qipIDwgaGVpa2VuXCA7Civnmb7muIggPCBrdWRhcmFcIDsKK+iHs+irliA8IHNoaXJvblwgOwor6Ii56ImZIDwgc2Vuc291XCA7CivlsbHplpMgPCB5YW1hYWlcIDsKK+W5s+WdhyA8IGhlaWtpblwgOwor5bGx6ZaAIDwgc2FubW9uXCA7Civlgq3oiLkgPCB5b3VzZW5cIDsKK+WGhuafsSA8IGVuY2h1dVwgOwor55Sf6aGeIDwgc2VpcnVpXCA7CivlubPlnLAgPCBoZWljaGlcIDsKK+mAo+WLlSA8IHJlbmRvdVwgOwor5YmN5L6/IDwgemVuYmluXCA7CivlurjkurogPCB5b3VqaW5cIDsKK+W5tOWbniA8IG5lbmthaVwgOwor6YCA5ZujIDwgdGFpZGFuXCA7Civnm7LlvpMgPCBtb3VqdXVcIDsKK+WGl+aWhyA8IGpvdWJ1blwgOwor5YWo5qynIDwgemVuJydvdVwgOwor552+5Li4IDwga291Z2FuXCA7Civoh7PoqIAgPCBzaGlnZW5cIDsKK+mAo+WIpCA8IHJlbnBhblwgOwor6LuS56uvIDwgbm9raWJhXCA7CivluKvlvJ8gPCBzaGl0ZWlcIDsKK+WJjeS7tiA8IHplbmtlblwgOwor5YWr5Y2B6LevIDwgeWFzb2ppXCA7CivlsY/poqggPCBieW91YnVcIDsKK+ebuOW4rSA8IGFpc2VraVwgOwor5YmN5LujIDwgemVuZGFpXCA7CivnlJ/pnaIgPCBzZWltZW5cIDsKK+iLpuaxgSA8IG5pZ2FyaVwgOwor5LyK5Yui6J2mIDwgaXNlZWJpXCA7CivliY3kurogPCB6ZW5qaW5cIDsKK+WIh+WcsCA8IGtpcmVqaVwgOwor5Ye25aSiIDwga3lvdW11XCA7CivliIblnLAgPCBidW5jaGlcIDsKK+iJtuemjyA8IGVucHVrdVwgOwor6Iul5rCXIDwgd2FrYWdlXCA7CivnlKPpmaIgPCBzYW4nJ2luXCA7CivliIblm6MgPCBidW5kYW5cIDsKK+iHquiouyA8IGppY2h1dVwgOwor5Yid5Y+3IDwgc2hvZ291XCA7CivpgLjkuosgPCBpdHN1amlcIDsKK+WDu+ebriA8IGhpZ2FtZVwgOwor5YiA5ZytIDwgdG91a2VpXCA7CivlhormlbAgPCBzYXNzdXVcIDsKK+eUu+mLsiA8IGdhYnlvdVwgOwor5Ye65Z+OIDwgZGVqaXJvXCA7CivlubzlkI0gPCB5b3VtZWlcIDsKK+Wwj+m8uyA8IGtvYmFuYVwgOwor5YaF5peoIDwgbmFpc2hpXCA7Civnl5vnvbUgPCB0c3V1YmFcIDsKK+iHquimmiA8IGppa2FrdVwgOwor5YaF5pa5IDwgbmFpaG91XCA7Civlgb3olqwgPCBnaXlha3VcIDsKK+eXheiHpSA8IGJ5b3VnYVwgOwor5YWx5qCEIDwga3lvdWVpXCA7CivlgKTpgYcgPCBjaGlndXVcIDsKK+W5tuWRkSA8IGhlaWRvblwgOwor5bm+5Y2DIDwgaWt1c2VuXCA7Civpq5jokZcgPCBrb3VjaG9cIDsKK+Wwj+m6piA8IGtvbXVnaVwgOwor5YiG5Za2IDwgYnVuJydlaVwgOwor5qOS6Yu8IDwgYm91a291XCA7CivpgIHlkYggPCBzb3V0ZWlcIDsKK+W6p+S4rSA8IHphY2h1dVwgOwor5bm25ZCIIDwgaGVpZ291XCA7Civkv67pmaIgPCBzaHV1aW5cIDsKK+W6leWApCA8IHNva29uZVwgOwor5biw5bGeIDwga2l6b2t1XCA7Civlt6XmlbAgPCBrb3VzdXVcIDsKK+WFteabuSA8IGhlaXNvdVwgOwor5YW15pu4IDwgaGVpc2hvXCA7Civmm77npZbniLYgPCBoaWppamlcIDsKK+WIkeWQjSA8IGtlaW1laVwgOwor6LuN56S8IDwgZ3VucmVpXCA7CivmqLnmnKggPCBqdW1va3VcIDsKK+mrmOiPnCA8IHRha2FuYVwgOwor55u45a++IDwgc291dGFpXCA7CivlubTlj7cgPCBuZW5nb3VcIDsKK+imi+aghOWdiiA8IG1pZWJvdVwgOwor6Iqx54GrIDwgaGFuYWJpXCA7CivlsZXplosgPCB0ZW5rYWlcIDsKK+ebuOWuvyA8IGFpeWFkb1wgOwor6YCA5Y67IDwgdGFpa3lvXCA7CivluK/lsIEgPCBvYmlmdXVcIDsKK+S6nOmJm+eJiCA8IGFlbmJhblwgOwor5YeN5a+SIDwgdG91a2FuXCA7CivlubPljp8gPCBoZWlnZW5cIDsKK+WHjeWusyA8IHRvdWdhaVwgOwor5bGx6YeOIDwgc2FuJyd5YVwgOwor6YCP5YaZIDwgdG91c2hhXCA7CivliLbku6QgPCBzZWlyZWlcIDsKK+WFreacrCA8IHJvcHBvblwgOwor6Ium5qW9IDwga3VyYWt1XCA7CivluLDlroUgPCBraXRha3VcIDsKK+eWveiFqyA8IHNvc2hvdVwgOwor5qiq5qC5IDwgeW9rb25lXCA7Civlub7liIYgPCBpa3VidW5cIDsKK+eVsOiqrCA8IGlzZXRzdVwgOwor6a2U55CDIDwgbWFreXV1XCA7Civlh7blmaggPCBreW91a2lcIDsKK+S/nemdqSA8IGhva2FrdVwgOwor5YaN5oyZIDwgc2Fpa3lvXCA7Civkv4rppqwgPCBzaHVubWVcIDsKK+WFq+acrCA8IGhhcHBvblwgOwor5YWs5pyJIDwga291eXV1XCA7CivlgY/oposgPCBoZW5rZW5cIDsKK+W6nOS4rSA8IGZ1Y2h1dVwgOwor55uu5bC7IDwgbWVqaXJpXCA7CivlhbbmlrkgPCBzb25hdGFcIDsKK+ebm+W5tCA8IHNlaW5lblwgOwor5bCP6bSoIDwga29nYW1vXCA7CivpgIDli6IgPCB0YWlzZWlcIDsKK+i/lOWgsSA8IGhlbnBvdVwgOwor5YaF5o6iIDwgbmFpdGFuXCA7CivmqKnmn4QgPCBrZW5wZWlcIDsKK+Wwj+mzpSA8IGtvdG9yaVwgOwor5bm05YqfIDwgbmVua291XCA7CivnlLDph44gPCBkZW4nJ3lhXCA7CivlhbXmlbAgPCBoZWlzdXVcIDsKK+ebquWwvSA8IHRvdWppblwgOwor55y85YmNIDwgZ2FuemVuXCA7CivoiabnoLIgPCBrYW5wb3VcIDsKK+W6l+S4uyA8IHRlbnNodVwgOwor6Lui55SfIDwgdGVuc2VpXCA7CivotrPpp4QgPCBhc2hpZGFcIDsKK+WFq+aZryA8IGhha2tlaVwgOwor55m75qW8IDwgdG91cm91XCA7Civnm67lrokgPCBtZXlhc3VcIDsKK+amgueulyA8IGdhaXNhblwgOwor5YiG5Y6YIDwgYnVucmluXCA7CivlvqHnjKrlj6MgPCBvY2hva29cIDsKK+i/veWKoCA8IHRzdWlrYVwgOwor5qiq5pyoIDwgeW9rb2dpXCA7CivlhKrmuKUgPCB5dXVha3VcIDsKK+W4huW9sSA8IGhva2FnZVwgOwor5bm05YidIDwgbmVuc2hvXCA7CivohbDplpMgPCB5b3VrYW5cIDsKK+iNieWxiyA8IHNvdW9rdVwgOwor5YWs5piOIDwga291bWVpXCA7CivlubTliIogPCBuZW5rYW5cIDsKK+W5tOWIhiA8IG5lbmJ1blwgOwor5bmV5Za2IDwgYmFrdWVpXCA7CivlsI/psK0gPCBrb2hhZGFcIDsKK+W5s+WIhiA8IGhlaWJ1blwgOwor5bmz5YehIDwgaGVpYm9uXCA7CivnmIvnmbIgPCBmdXV0ZW5cIDsKK+i/veWIhiA8IG9pd2FrZVwgOwor6bCl5aSrIDwgeWFtb21lXCA7CivnlKjph5EgPCB5b3VraW5cIDsKK+mujuS4puWlsyA8IGFpbmFtZVwgOwor6a2U54mpIDwgbWFtb25vXCA7CivlhazmlocgPCBrb3VidW5cIDsKK+iMtuW3viA8IGNoYWtpblwgOwor5YiR5YW4IDwga2VpdGVuXCA7Civov5HlnKggPCBraW56YWlcIDsKK+WIpeS7tiA8IGJla2tlblwgOwor5bGx6L66IDwgeWFtYWJlXCA7CivnlaXoqJggPCByeWFra2lcIDsKK+W3p+aJiyA8IGtvdXNodVwgOwor55yf5ZGzIDwgc2hpbm1pXCA7CivouqvnqbogPCBtaXNvcmFcIDsKK+iKi+eJiCA8IGltb2JhblwgOwor5beh5oudIDwganVucGFpXCA7CivnlKPph5EgPCBzYW5raW5cIDsKK+WFqOaVsCA8IHplbnN1dVwgOwor5YWo5pWXIDwgemVucGFpXCA7CivnnJ/lkKYgPCBzaGlucGlcIDsKK+iLpeacqCA8IHdha2FnaVwgOwor5YiX5YCZIDwgcmVra291XCA7Civov73lhLogPCB0c3VpbmFcIDsKK+WGt+WusyA8IHJlaWdhaVwgOwor5bqK5LiKIDwgeXVrYXVlXCA7Civlgb3ohpwgPCBnaW1ha3VcIDsKK+W4huW4gyA8IGhvbnVub1wgOwor5Yed5Zu6IDwgZ3lvdWtvXCA7CivpgJTkuK0gPCB0b2NodXVcIDsKK+WGheaGgiA8IG5haXl1dVwgOwor5L+X6ZaTIDwgem9ra2FuXCA7Civkv4Ppn7MgPCBzb2t1b25cIDsKK+Wwj+mqqCA8IGtvYm9uZVwgOwor5YW45ougIDwgdGVua3lvXCA7Civnmbvmnb8gPCB0b3ViYW5cIDsKK+WIneS7oyA8IHNob2RhaVwgOwor5YiA5YmjIDwgdG91a2VuXCA7CivluZXlkI8gPCBiYWt1cmlcIDsKK+mtmueBryA8IGd5b3RvdVwgOwor6Iaa6LqrIDwgaGFkYW1pXCA7CivnmZbmr5sgPCBrdXNlZ2VcIDsKK+WDreeOiyA8IHNlbicnb3VcIDsKK+WGjeaAnSA8IHNhaXNoaVwgOwor55yM5Za2IDwga2VuJydlaVwgOwor6a6u5piOIDwgc2VubWVpXCA7CivnlJ/phZIgPCBraXpha2VcIDsKK+WIhuWFmiA8IGJ1bnRvdVwgOwor5bm+5Lq6IDwgaWt1bmluXCA7CivohLPpq4QgPCBub3V6dWlcIDsKK+ecn+WMlyA8IG1ha2l0YVwgOwor5beo5oKqIDwga3lvYWt1XCA7CivojYrlprsgPCBrZWlzYWlcIDsKK+WFqOaQjSA8IHplbnNvblwgOwor5YiD5YWIIDwgaGFzYWtpXCA7CivlsbHot68gPCB5YW1hamlcIDsKK+W4r+WfnyA8IHRhaWlraVwgOwor6L+U5ZOBIDwgaGVucGluXCA7CivlsI/pppYgPCBrb2t1YmlcIDsKK+W5tOS9mSA8IG5lbicneW9cIDsKK+eUmOmFuCA8IGthbnNhblwgOwor6aiS6ZyKIDwgc291cmVpXCA7Civoh7PoirggPCBzaGlnZWlcIDsKK+mAgOS8miA8IHRhaWthaVwgOwor5a+h6buZIDwga2Ftb2t1XCA7CivliIPlgrcgPCBuaW5qb3VcIDsKK+WGjeW7uiA8IHNhaWtvblwgOwor5qW156eYIDwgZ29rdWhpXCA7CivpgIPkuqEgPCB0b3Vib3VcIDsKK+mAgOS7uyA8IHRhaW5pblwgOwor5bm05LujIDwgbmVuZGFpXCA7Civlgo3nt5ogPCBib3VzZW5cIDsKK+ecgeWWtiA8IHNob3VlaVwgOwor5biw5Zu9IDwga2lrb2t1XCA7CivnnYDkuIggPCBraXRha2VcIDsKK+i+suWgtCA8IG5vdWpvdVwgOwor6Lu95ribIDwga2VpZ2VuXCA7CivpqqjokaMgPCBrb3R0b3VcIDsKK+eZguayuyA8IHJ5b3VqaVwgOwor6L665ZywIDwgaGVuY2hpXCA7Civpp53ps6UgPCBkYWNob3VcIDsKK+WGheW+hCA8IG5haWtlaVwgOwor6IW56YOoIDwgZnVrdWJ1XCA7Civlh7rlhYggPCBkZXNha2lcIDsKK+WFg+adpSA8IGdhbnJhaVwgOwor55yf5YasIDwgbWFmdXl1XCA7CivovKrmoL0gPCByaW5zYWlcIDsKK+W3qOW8viA8IGt5b2RhblwgOwor5YWD5pysIDwgZ2VucG9uXCA7Civlh7blhbcgPCBreW91Z3VcIDsKK+iHquiLpSA8IGppamFrdVwgOwor5bm05LitIDwgbmVuanV1XCA7CivnmbrmlaMgPCBoYXNzYW5cIDsKK+W4q+WboyA8IHNoaWRhblwgOwor6aex6aedIDwgcmFrdWRhXCA7CivlhoXlu7cgPCBuYWl0ZWlcIDsKK+WCjeezuyA8IGJvdWtlaVwgOwor5YiG5L2TIDwgYnVudGFpXCA7CivlubPmmJPljJYgPCBoZWlpa2FcIDsKK+i/juWQiCA8IGdlaWdvdVwgOwor5a6J5L+d55CGIDwgYW5wb3JpXCA7Civkv67pgKAgPCBzaHV6b3VcIDsKK+iNieWggiA8IHNvdWRvdVwgOwor5bmy5LiOIDwga2FuJyd5b1wgOwor5qmf5bGLIDwgaGF0YXlhXCA7CivovrLlnLAgPCBub3VjaGlcIDsKK+abvuelluavjSA8IGhpYmFiYVwgOwor6Iiq56m6IDwga291a3V1XCA7CivluILlrZAgPCBpY2hpa29cIDsKK+WwiumhlCA8IHNvbmdhblwgOwor6LuN54qsIDwgZ2Vua2VuXCA7Civkv67ovp4gPCBzaHV1amlcIDsKK+eUn+i6qyA8IG5hbWFtaVwgOwor5qiq5omLIDwgeW9rb3RlXCA7CivlgZzoiLkgPCB0ZWlzZW5cIDsKK+ecjOWLoiA8IGtlbnNlaVwgOwor5YWt5oSfIDwgcm9ra2FuXCA7CivlhYPml6YgPCBnYW50YW5cIDsKK+eUu+iqvyA8IGdhY2hvdVwgOwor5YaX5a6YIDwgam91a2FuXCA7Civlh6bliIYgPCBzaG9idW5cIDsKK+i7veawtCA8IGtlaXN1aVwgOwor6Ieq6IW5IDwgamliYXJhXCA7CivliIbkuI4gPCBidW4nJ3lvXCA7Civlh6blh6YgPCBzaG9zaG9cIDsKK+iKkua0iyA8IGJvdXlvdVwgOwor5bCP6ZuqIDwga295dWtpXCA7CivlsI/pm6ggPCBrb3NhbWVcIDsKK+WwjumbuyA8IGRvdWRlblwgOwor5YW15b25IDwgaGVpZWtpXCA7CivlsI/pm4AgPCBrb2dhcmFcIDsKK+exkOakheWtkCA8IHRvdWlzdVwgOwor5Ye95Lq6IDwga2FuamluXCA7Civnm5floYEgPCB0b3VydWlcIDsKK+iLpuaJiyA8IG5pZ2F0ZVwgOwor5a++6aGUIDwgdGFpZ2FuXCA7Civoi6XmiYsgPCB3YWthdGVcIDsKK+WGrOWgtCA8IGZ1eXViYVwgOwor5YKs55ygIDwgc2FpbWluXCA7CivlhKrmn5QgPCB5dXVqdXVcIDsKK+Wwj+aWh+WtlyA8IGtvbW9qaVwgOwor6Iq45p6XIDwgZ2VpcmluXCA7Civnm7jlj40gPCBzb3VoYW5cIDsKK+W3qOWyqSA8IGt5b2dhblwgOwor5biv5ZCMIDwgdGFpZG91XCA7CivluLjli6QgPCBqb3VraW5cIDsKK+iNmOWPuCA8IHNob3VqaVwgOwor5YeN5Y6fIDwgdG91Z2VuXCA7Civmpb3nlYwgPCBnYWtrYWlcIDsKK+iNmOWOsyA8IHNvdWdvblwgOwor5Ye65LiWIDwgc2h1c3NlXCA7Civlh4TlkbMgPCBzdWdvbWlcIDsKK+iHque/kiA8IGppc2h1dVwgOwor5Yeh5YOnIDwgYm9uc291XCA7Civlr77pnaIgPCB0YWltZW5cIDsKK+eVquiMtiA8IGJhbmNoYVwgOwor55Ww6ImyIDwgaXNob2t1XCA7Civlhoblr4IgPCBlbmpha3VcIDsKK+W3nuW0jiA8IHN1c2FraVwgOwor6L+R5YKNIDwga2luYm91XCA7CivlhaXlvqEgPCBueXV1Z29cIDsKK+WGheWuriA8IG5haWd1dVwgOwor5biC5aG1IDwgc2hpamluXCA7Civot7XoqIAgPCBzZW5nZW5cIDsKK+iKs+abuCA8IGhvdXNob1wgOwor55So6KuHIDwgeW91ZGFuXCA7CivoirHmnKggPCBrYWJva3VcIDsKK+S9meaJgOebriA8IHlvc29tZVwgOwor5YWs5bmzIDwga291aGVpXCA7CivlhoXlrasgPCBuYWlzb25cIDsKK+S/nei6qyA8IGhvc2hpblwgOwor55m65oakIDwgaGFwcHVuXCA7CivoiIznq68gPCB6ZXR0YW5cIDsKK+WFqOW6lyA8IHplbnRlblwgOwor5a++6ZmjIDwgdGFpamluXCA7CivkvovpoYwgPCByZWlkYWlcIDsKK+W4r+WJoyA8IHRhaWtlblwgOwor5bid5ZG9IDwgdGVpbWVpXCA7Civou5/ms6UgPCBuYW5kZWlcIDsKK+iMheWxiyA8IGJvdW9rdVwgOwor5YWl5bqrIDwgbnl1dWtvXCA7CivnlKjoqIAgPCB5b3VnZW5cIDsKK+eZuuaEjyA8IGhhdHN1aVwgOwor5YWl5bqcIDwgbnl1dWZ1XCA7CivoirjmlocgPCBnZWlidW5cIDsKK+WwgumWgCA8IHNlbm1vblwgOwor5biv5YiAIDwgdGFpdG91XCA7Civoi6blv4MgPCBrdXNoaW5cIDsKK+aqgOWQmyA8IGRhbmt1blwgOwor5YW85a6YIDwga2Vua2FuXCA7CivlsL/ot68gPCBueW91cm9cIDsKK+ecjOS8miA8IGtlbmthaVwgOwor55uk5Y+wIDwgYmFuZGFpXCA7CivluIPlnLAgPCBudW5vamlcIDsKK+iHs+e0lCA8IHNoaWp1blwgOwor6I2J5Y6fIDwgc291Z2VuXCA7Civoh6rnuJsgPCBqaWJha3VcIDsKK+aihemFkiA8IHVtZXNodVwgOwor5YWD5omLIDwgbW90b2RlXCA7CivkuIvpmaLorbAgPCBrYWluZ2lcIDsKK+ecjOS7pCA8IGtlbnJlaVwgOwor5a+d6aaWIDwgbmVrdWJpXCA7CivnlJ/oqpUgPCBzZWl0YW5cIDsKK+i7n+awtCA8IG5hbnN1aVwgOwor6L+R5LujIDwga2luZGFpXCA7CivnnIzkurogPCBrZW5qaW5cIDsKK+ebhuWcsCA8IGJvbmNoaVwgOwor5a215YyW5ZmoIDwgZnVrYWtpXCA7Civou43muK8gPCBndW5rb3VcIDsKK+WFmuW8iiA8IHRvdWhlaVwgOwor5Ya35Y6zIDwgcmVpZ2VuXCA7Civoh63ntKAgPCBzaHV1c29cIDsKK+iMhOWtkCA8IG5hc3ViaVwgOwor55uX5ZOBIDwgdG91aGluXCA7CivoiJfnn7MgPCBob3Nla2lcIDsKK+iHque1piA8IGppa3l1dVwgOwor6L+U5LiKIDwgaGVuam91XCA7CivprZrmoq8gPCBneW90ZWlcIDsKK+ebm+WQjSA8IHNlaW1laVwgOwor5YWo5bO2IDwgemVudG91XCA7Civota3poZQgPCBzaGFnYW5cIDsKK+WFseWvnSA8IHRvbW9uZVwgOwor5omL55yf5Ly8IDwgdGVtYW5lXCA7CivlsI/piq0gPCBrb3plbmlcIDsKK+i/keS4liA8IGtpbnNlaVwgOwor6Ieo57WCIDwgcmluanV1XCA7CivluLjkvosgPCBqb3VyZWlcIDsKK+WFqOWyuCA8IHplbmdhblwgOwor5beo5aSnIDwga3lvZGFpXCA7CivovpvlkbMgPCBrYXJhbWlcIDsKK+WGheWkliA8IG5haWdhaVwgOwor55uu5YWIIDwgbWVzYWtpXCA7CivluLjkvY8gPCBqb3VqdXVcIDsKK+i+suWFtSA8IG5vdWhlaVwgOwor5YKN55uuIDwgaGF0YW1lXCA7CivlsZXopqcgPCB0ZW5yYW5cIDsKK+W4uOS8miA8IGpvdWthaVwgOwor5bi45Lu7IDwgam91bmluXCA7Civkv6/op5IgPCBmdWtha3VcIDsKK+eXtOa8oiA8IGNoaWthblwgOwor6LuN5rOVIDwgZ3VucG91XCA7CivlsI/ph5EgPCBrb2dhbmVcIDsKK+WGt+WJmyA8IHJlaWdvdVwgOwor5bi45Lq6IDwgam91amluXCA7CivprZrmnb8gPCBneW9iYW5cIDsKK+W0qea9sCA8IGhvdWthaVwgOwor5LiN5aaC5oSPIDwgZnVueW9pXCA7Civlg6fmraMgPCBzb3Vqb3VcIDsKK+WFgeaBrSA8IGlua3lvdVwgOwor6Lu45pyoIDwgamlrdWdpXCA7Civnm7jkvJ0gPCBzb3VkZW5cIDsKK+W4neWGoCA8IHRlaWthblwgOwor5L216Z+zIDwgcGluJydpblwgOwor6auY55uuIDwgdGFrYW1lXCA7Civlhobln58gPCBlbicnaWtpXCA7Civlr5LpoqggPCBrYW5wdXVcIDsKK+mnhemgrSA8IGVraXRvdVwgOwor5YK+54CJIDwga2Vpc2hhXCA7Civlhrflh40gPCByZWl0b3VcIDsKK+i7jeawkSA8IGd1bm1pblwgOwor6aqo57KJIDwga29wcHVuXCA7Civnl4XnkIYgPCBieW91cmlcIDsKK+W4uOS4liA8IHRva295b1wgOwor6Ia16IeTIDwgc3Vpem91XCA7CivlhbblpbQgPCBzb2l0c3VcIDsKK+WFheW9kyA8IGp1dXRvdVwgOwor5L+u6KOcIDwgc2h1dWhvXCA7CivluIPlkYogPCBmdWtva3VcIDsKK+iIjueboyA8IHNoYWthblwgOwor5YSS5pWZIDwganVreW91XCA7Civkv5forbAgPCB6b2t1Z2lcIDsKK+a5r+aWh+WtlyA8IHl1bW9qaVwgOwor5Ya35YWJIDwgcmVpa291XCA7Civlr53pmpsgPCBuZWdpd2FcIDsKK+eahOWxiyA8IHRla2l5YVwgOwor55Ww5qmf56iuIDwgaWtpc2h1XCA7Civnm4rlj4sgPCBla2l5dXVcIDsKK+WGheWcqCA8IG5haXphaVwgOwor5YW15aSJIDwgaGVpaGVuXCA7CivlsbHokbUgPCB3YXNhYmlcIDsKK+WBteefpSA8IHRlaWNoaVwgOwor55ar55mYIDwgZWtpcmVpXCA7Civnm7LkurogPCBtb3VqaW5cIDsKK+eah+WuriA8IGtvdWd1dVwgOwor6IO96Z2iIDwgbm91bWVuXCA7Civnm5vlhbggPCBzZWl0ZW5cIDsKK+aguembqiA8IG5leXVraVwgOwor6IyF5aC0IDwga2F5YWJhXCA7CivluLDkuIAgPCBraWl0c3VcIDsKK+eah+WtqyA8IGtvdXNvblwgOwor5L6u6L6xIDwgYnVqb2t1XCA7Civnlarnt5ogPCBiYW5zZW5cIDsKK+i+suS8miA8IG5vdWthaVwgOwor5L+X6KqeIDwgem9rdWdvXCA7Civnm67ku4ogPCBtb2trb25cIDsKK+ebtOS4iyA8IGNob2trYVwgOwor5bGx6I+cIDwgc2Fuc2FpXCA7Civou6LmoKEgPCB0ZW5rb3VcIDsKK+S/l+ipsSA8IHpva3V3YVwgOwor55al55msIDwga2Fpc2VuXCA7Civoi6blraYgPCBrdWdha3VcIDsKK+WFg+W4pSA8IGdlbnN1aVwgOwor55m95a+/IDwgaGFrdWp1XCA7CivlhqXliKkgPCBteW91cmlcIDsKK+eZuuWxlSA8IGhhdHRlblwgOwor5beh5ZueIDwganVua2FpXCA7CivovKrlu7sgPCByaW4nJ25lXCA7CivlhbjlnosgPCB0ZW5rZWlcIDsKK+WxseiNmCA8IHNhbnNvdVwgOwor5YWs5aOyIDwga291YmFpXCA7CivohLHpgIAgPCBkYXR0YWlcIDsKK+S/l+inoyA8IHpva2thaVwgOwor6IOM6bCtIDwgc2ViaXJlXCA7CivotaTploAgPCBha2Ftb25cIDsKK+WxjeidiyA8IHNoaXJvdVwgOwor55Wd57mUIDwgdW5lb3JpXCA7Civkv5foposgPCB6b2trZW5cIDsKK+WAieiNtyA8IGt1cmFuaVwgOwor6Iqz5oOFIDwgaG91am91XCA7CivpppbprYEgPCBzaHVrYWlcIDsKK+eUn+iWkSA8IHNob3VnYVwgOwor5YW15ZujIDwgaGVpZGFuXCA7Civlr77pgYcgPCB0YWlndXVcIDsKK+S6nOegkumFuCA8IGFoaXNhblwgOwor55Sf6JWDIDwgc2VpYmFuXCA7CivlhY3lrpggPCBtZW5rYW5cIDsKK+W4guWGhSA8IHNoaW5haVwgOwor6Lu95oyZIDwga2Vpa3lvXCA7Civoia/moYggPCByeW91YW5cIDsKK+WuuemhlCA8IHlvdWdhblwgOwor5YaG5ZGzIDwgbWFydW1pXCA7Civnm5vkvJogPCBzZWlrYWlcIDsKK+WGhuWRqCA8IGVuc2h1dVwgOwor6Iq45b2TIDwgZ2VpdG91XCA7CivnlJjolq8gPCBrYW5zaG9cIDsKK+WGheWRvSA8IG5haW1laVwgOwor6LuK5qScIDwgc2hha2VuXCA7CivoirPlv5cgPCBob3VzaGlcIDsKK+Wwj+i2syA8IGtvYXNoaVwgOwor5a++6L66IDwgdGFpaGVuXCA7Civoi5flrZcgPCBteW91amlcIDsKK+iDjOmqqCA8IHNlYm9uZVwgOwor5YaF5ZCrIDwgbmFpZ2FuXCA7CivppqzpnakgPCBiYWtha3VcIDsKK+ebn+S4uyA8IG1laXNodVwgOwor5YaF5ZCIIDwgbmFpZ291XCA7Civlt6jlj6MgPCBreW9rb3VcIDsKK+WGjeWLpCA8IHNhaWtpblwgOwor5biC5YK1IDwgc2hpc2FpXCA7CivlsqnnqbQgPCBpd2FhbmFcIDsKK+WFg+WvhyA8IGdlbmtvdVwgOwor5L2Z6ZyHIDwgeW9zaGluXCA7CivlhpXlhqAgPCBiZW5rYW5cIDsKK+iMtuS8miA8IGNoYWthaVwgOwor5L2O6aCtIDwgdGVpdG91XCA7CivlhobljZMgPCBlbnRha3VcIDsKK+WvhumWiSA8IG1pcHBlaVwgOwor5bGx6IOMIDwgeWFtYXNlXCA7Civmp5jmhYsgPCB5b3V0YWlcIDsKK+iMtuS7oyA8IGNoYWRhaVwgOwor5YKs5raZIDwgc2FpcnVpXCA7Civog4zpprMgPCBoYWljaGlcIDsKK+iEsei1sCA8IGRhc3NvdVwgOwor55m+5aScIDwgbW9tb3lvXCA7Civoi6blooMgPCBrdWt5b3VcIDsKK+WGmeWDjyA8IHNoYXpvdVwgOwor5a6f6aiTIDwgamlra2VuXCA7CivojLbkurogPCBjaGFqaW5cIDsKK+iLseWbvSA8IGVpa29rdVwgOwor5YaN5YiKIDwgc2Fpa2FuXCA7CivlhoXli6QgPCBuYWlraW5cIDsKK+iCuumtmiA8IGhhaWd5b1wgOwor6Ieq55m9IDwgamloYWt1XCA7Civou43mm7ggPCBndW5zaG9cIDsKK+WCjeeCuSA8IGJvdXRlblwgOwor5L6/6KanIDwgYmVucmFuXCA7Civnmbvlo4cgPCB0b3VkYW5cIDsKK+aknOecvCA8IGtlbmdhblwgOwor5qCh6ZaAIDwga291bW9uXCA7CivpppbpoYwgPCBzaHVkYWlcIDsKK+WFiOWmuyA8IHNlbnNhaVwgOwor6aqo55u4IDwga29zc291XCA7CivpmL/kv67nvoUgPCBhc2h1cmFcIDsKK+eUmOiNiSA8IGthbnpvdVwgOwor55SY6Iy2IDwgYW1hY2hhXCA7CivnmbvloLQgPCB0b3Vqb3VcIDsKK+WvnemFkiA8IG5lemFrZVwgOwor5b6h6ZuR54WuIDwgb3pvdW5pXCA7CivlhYTlprkgPCBrZWltYWlcIDsKK+WFpeWWtiA8IG55dXVlaVwgOwor5YW85YukIDwga2Vua2luXCA7Civou5LmlbAgPCBrZW5zdXVcIDsKK+WFiOWkqSA8IHNlbnRlblwgOwor5YaG5YaFIDwgZW4nJ25haVwgOwor5YaF5YaFIDwgbmFpbmFpXCA7Civou43ml4UgPCBndW5yeW9cIDsKK+WGheWFuCA8IG5haXRlblwgOwor6Lu95b+rIDwga2Vpa2FpXCA7Civlhajlk6EgPCB6ZW4nJ2luXCA7Civoh6jnlYwgPCByaW5rYWlcIDsKK+mrmOeArCA8IHRha2FzZVwgOwor5YWo5ZOBIDwgemVucGluXCA7CivmpJznl7AgPCBrZW50YW5cIDsKK+WFpeWUkCA8IG5pdHRvdVwgOwor5bCP6KmxIDwgc2hvdXdhXCA7Civog4zpnakgPCBzZWdhd2FcIDsKK+W3qOWEhCA8IGt5b29rdVwgOwor6IOM6Z2iIDwgaGFpbWVuXCA7CivlgrXmqKkgPCBzYWlrZW5cIDsKK+i8quWnpiA8IHJpbmthblwgOwor55aR542EIDwgZ2lnb2t1XCA7Civnmq7ohprnp5EgPCBoaWZ1a2FcIDsKK+Wwj+iogCA8IGtvZ290b1wgOwor5qSc55WqIDwga2VuYmFuXCA7CivlhYXloasgPCBqdXV0ZW5cIDsKK+WxpOe+pCA8IHNvdWd1blwgOwor6Iqx5bGLIDwgaGFuYXlhXCA7Civou5/mipUgPCBuYW50b3VcIDsKK+i7ouaIpiA8IHRlbnNlblwgOwor5YG254S2IDwgZ3V1emVuXCA7CivnlJ/ogrIgPCBzZWlpa3VcIDsKK+WyqeebpCA8IGdhbmJhblwgOwor5YWx5YqpIDwga3lvdWpvXCA7CivovIPlt64gPCBrYWt1c2FcIDsKK+WFteWIgyA8IGhlaWppblwgOwor6IuX5ZyDIDwgYnlvdWhvXCA7Civlho3ku7sgPCBzYWluaW5cIDsKK+S9memMsiA8IHlvcm9rdVwgOwor55eF5rCXIDwgYnlvdWtpXCA7Civpp4XpgJMgPCBla2l0ZWlcIDsKK+Wun+mamyA8IGppc3NhaVwgOwor55Sf6ICFIDwgc2hvdWphXCA7CivnlLHnt5IgPCB5dWlzaG9cIDsKK+S/s+iBliA8IGhhaXNlaVwgOwor5bGx57O7IDwgc2Fua2VpXCA7CivnlLfns7sgPCBkYW5rZWlcIDsKK+WvvuirliA8IHRhaXJvblwgOwor5a+u6LK7IDwgcnlvdWhpXCA7Civouqvmn4QgPCBtaWdhcmFcIDsKK+WAq+ekviA8IHJpbnNoYVwgOwor5beo5L2TIDwga3lvdGFpXCA7CivlhoXkvY8gPCBuYWlqdXVcIDsKK+eah+WQjiA8IGtvdWdvdVwgOwor5bCP6KKWIDwga29zb2RlXCA7Civlr77oqp4gPCB0c3VpZ29cIDsKK+iDvei+ryA8IG5vdWJlblwgOwor6Ium5ZGzIDwgbmlnYW1pXCA7CivprYXmg5EgPCBtaXdha3VcIDsKK+WGjeS4iSA8IHNhaXNhblwgOwor5beo5Lq6IDwga3lvamluXCA7CivlsIboo5wgPCBzaG91aG9cIDsKK+iKuOWkpyA8IGdlaWRhaVwgOwor6Ii35qKvIDwgZ2VudGVpXCA7CivohLHooaMgPCBkYXRzdWlcIDsKK+WGhuS4mCA8IGVua3l1dVwgOwor6Iqd5bGFIDwgc2hpYmFpXCA7Civou5/mgKcgPCBuYW5zZWlcIDsKK+eahuWLpCA8IGthaWtpblwgOwor5beo5LiHIDwga3lvbWFuXCA7Civmn7vplrIgPCBzYWV0c3VcIDsKK+WvuOiogCA8IHN1bmdlblwgOwor5a+G6YCBIDwgbWlzc291XCA7CivnlKjntJkgPCB5b3VzaGlcIDsKK+S9k+mHjSA8IHRhaWp1dVwgOwor5qOE57SEIDwga2l5YWt1XCA7Civkvo3oqq0gPCBqaWRva3VcIDsKK+mqqOeJjCA8IGthcnV0YVwgOwor6aqo54mHIDwga29wcGVuXCA7CivlhJLlraYgPCBqdWdha3VcIDsKK+iHqueEtiA8IHNoaXplblwgOwor6LWk6LWkIDwgYWthYWthXCA7CivoibLmgqogPCBpcm9ha3VcIDsKK+iLpuWKmyA8IGt1dXJpaVwgOwor6Lqr5pa5IDwgbWlrYXRhXCA7Civmpbfmm7ggPCBrYWlzaG9cIDsKK+WunemRkSA8IGhvdWthblwgOwor5byf5bCP54i2IDwgb3Rvb2ppXCA7Civkv6HogIUgPCBzaGluamFcIDsKK+iGv+eYjSA8IG5vdXlvdVwgOwor5qaC5pWwIDwgZ2Fpc3V1XCA7Civoirjln58gPCBnZWlpa2lcIDsKK+Wwj+iZjiA8IGtvZG9yYVwgOwor6Imy5oGLIDwgaXJva29pXCA7CivogrrploAgPCBoYWltb25cIDsKK+eVoueUnyA8IGhpc3NlaVwgOwor55Sf57SZIDwga2lnYW1pXCA7CivlhYjlkJsgPCBzZW5rdW5cIDsKK+i1pOiynSA8IGFrYWdhaVwgOwor5L6L6KejIDwgcmVpa2FpXCA7CivnmoblhbUgPCBrYWloZWlcIDsKK+i7jeaDhSA8IGd1bmpvdVwgOwor6auY5q2vIDwgdGFrYWJhXCA7CivlhbXkubEgPCBoZWlyYW5cIDsKK+S9lemBjSA8IG5hbmJlblwgOwor6aeE6LODIDwgZGFjaGluXCA7CivlsL7nv7wgPCBiaXlva3VcIDsKK+mrhOa2siA8IHp1aWVraVwgOwor5bCB6J2LIDwgZnV1cm91XCA7CivlhZrlhoUgPCB0b3VuYWlcIDsKK+WFrOS9jyA8IGtvdWp1dVwgOwor55Sf57KLIDwga2lzc3VpXCA7Civkv5fogLMgPCB6b2t1amlcIDsKK+WutOmBiiA8IGVuJyd5dXVcIDsKK+WFg+WPtyA8IGdlbmdvdVwgOwor6aqo54KtIDwga290dGFuXCA7CivlgbTms7MgPCBzb2JhZWlcIDsKK+iLseS/iiA8IGVpc2h1blwgOwor6ISx6JepIDwgZGFwcGFuXCA7CivlhIDlrrggPCBnaXNoaW5cIDsKK+S/guiIuSA8IGtlaXNlblwgOwor5p+U6aCGIDwganV1anVuXCA7CivnlarniqwgPCBiYW5rZW5cIDsKK+mmrOi6qyA8IGJhc2hpblwgOwor55eZ5pSjIDwga2VpcmVuXCA7Civkvr/oiLkgPCBiaW5zZW5cIDsKK+iFjuiHkyA8IGppbnpvdVwgOwor6aaz6LWwIDwgY2hpc291XCA7CivkuLvmsrvljLsgPCBzaHVqaWlcIDsKK+iFi+iHrSA8IHdha2lnYVwgOwor5LiN6Kqg5oSPIDwgZnVzZWlpXCA7CivlgZzmu54gPCB0ZWl0YWlcIDsKK+iLseS6rCA8IGVpa3lvdVwgOwor5a+d6KiAIDwgbmVnb3RvXCA7CivlgYnng4ggPCBpcmV0c3VcIDsKK+mtr+WbvSA8IHJva29rdVwgOwor5YWF5YiGIDwganV1YnVuXCA7CivnmobkvJ0gPCBrYWlkZW5cIDsKK+eXtOaDhSA8IGNoaWpvdVwgOwor5bSH5pWsIDwgc3V1a2VpXCA7CivlvqHoqaDmrYwgPCBnb2Vpa2FcIDsKK+i7ouWvnSA8IGdvcm9uZVwgOwor6IWQ6IKJIDwgZnVuaWt1XCA7CivovLjlhaUgPCB5dW55dXVcIDsKK+WFiOWFtSA8IHNlbnBlaVwgOwor6LuN5bi9IDwgZ3VuYm91XCA7Civkv5fnuIEgPCB6b2t1ZW5cIDsKK+iFueetiyA8IGZ1a2tpblwgOwor6Ieq5racIDwgaml0b2t1XCA7CivohprnnYAgPCBoYWRhZ2lcIDsKK+Wuuei1piA8IHlvdXNoYVwgOwor5bC/57SgIDwgbnlvdXNvXCA7CivmoITpgLIgPCBlaXNoaW5cIDsKK+alk+aelyA8IGZ1dXJpblwgOwor5L2Z6LOKIDwgeW96b2t1XCA7CivmpJzmuKkgPCBrZW4nJ29uXCA7Civlr5PoqIAgPCBndXVnZW5cIDsKK+mmlui8qiA8IGt1Yml3YVwgOwor6Iq45ZCNIDwgZ2VpbWVpXCA7CivlgaXmsJcgPCBrZW5hZ2VcIDsKK+aghOi+sSA8IGVpam9rdVwgOwor6IOD5LiL5Z6CIDwgaWthc3VpXCA7CivotaToo7ggPCBzZWtpcmFcIDsKK+Wwj+iIuSA8IGtvYnVuZVwgOwor5LyN6ZW3IDwgZ29jaG91XCA7CivlsYjnrYsgPCBrdWtraW5cIDsKK+WuueiyjCA8IHlvdWJvdVwgOwor55m65LyaIDwgaGFra2FpXCA7Civoh6rmsoggPCBqaWNoaW5cIDsKK+eXm+aJkyA8IHRzdXVkYVwgOwor5a626LODIDwgeWFjaGluXCA7Civnmbvku5kgPCB0b3VzZW5cIDsKK+iKs+WQjSA8IGhvdW1laVwgOwor5a2m6ZmiIDwgZ2FrdWluXCA7CivliLfmr5vnm64gPCBoYWtlbWVcIDsKK+mtlOWigyA8IG1ha3lvdVwgOwor55Sy54OP6LOKIDwga291aWthXCA7CivoiIzmoLkgPCB6ZWtrb25cIDsKK+W0qeW+oSA8IGhvdWd5b1wgOwor6aWF6aCtIDwgbWFuanV1XCA7CivkvZzorZwgPCBzYWt1ZnVcIDsKK+WFiOS+vyA8IHNlbmJpblwgOwor5bCP6IadIDwga29oaXphXCA7Civlsqzmub4gPCBrb3V3YW5cIDsKK+Wwj+iFuSA8IGtvYmFyYVwgOwor5YWD5YCkIDwgbW90b25lXCA7Civpqqjms5UgPCBrb3Bwb3VcIDsKK+iJr+WutiA8IHJ5b3VrZVwgOwor5YWJ5L2TIDwga291dGFpXCA7CivlrpjovrogPCBrYW5wZW5cIDsKK+Wun+i7iiA8IGppc3NoYVwgOwor5a+G6KiIIDwgbWlra2VpXCA7Civkupzmi4nmr5jkupwgPCBhcmFiaWFcIDsKK+S7i+mxlyA8IGthaXJpblwgOwor6IO46KOPIDwga3lvdXJpXCA7CivlsI/ohIcgPCBrb3dha2lcIDsKK+S8iumBlOedgCA8IGRhdGVnaVwgOwor5bSH5oudIDwgc3V1aGFpXCA7CivmpoLlv7UgPCBnYWluZW5cIDsKK+eUqOebiiA8IHlvdWVraVwgOwor5bGv55SwIDwgdG9uZGVuXCA7Civohr7ngpkgPCBrYWlzaGFcIDsKK+WFiOS7oyA8IHNlbmRhaVwgOwor5bCP6IKhIDwga29tYXRhXCA7Civou6LlpIkgPCB0ZW5wZW5cIDsKK+i7ouWjsiA8IHRlbmJhaVwgOwor5b6h6KaL6IieIDwgb21pbWFpXCA7Civlrp/ot7UgPCBqaXNzZW5cIDsKK+WumOi7jSA8IGthbmd1blwgOwor6IOM6LWwIDwgaGFpc291XCA7CivouqvlvaIgPCBtaW5hcmlcIDsKK+agoeiokyA8IGtvdWt1blwgOwor5bCP6ICzIDwga29taW1pXCA7CivogbTpn7MgPCBjaG91b25cIDsKK+WuueiqjSA8IHlvdW5pblwgOwor6ISx6ISCIDwgZGFzc2hpXCA7CivkvJrph4ggPCBlc2hha3VcIDsKK+WtlOmbgCA8IGt1amFrdVwgOwor5bCP6ICFIDwga29tb25vXCA7Civku6PpoZggPCBkYWlnYW5cIDsKK+mkium2jyA8IHlvdWtlaVwgOwor6IOM5paH5a2XIDwgc2Vtb2ppXCA7Civkv4LntK8gPCBrZWlydWlcIDsKK+iCnemKmCA8IGthbm1laVwgOwor5L2Z6KeSIDwgeW9rYWt1XCA7CivohLHogpsgPCBkYWtrb3VcIDsKK+WvneiXgSA8IG5ld2FyYVwgOwor5YSq5puH6I+vIDwgdWRvbmdlXCA7CivlgbbmnIkgPCBndXV5dXVcIDsKK+WvhuihjCA8IG1pa2tvdVwgOwor5YWD5LiJIDwgZ2FuemFuXCA7CivkvZPoqIAgPCB0YWlnZW5cIDsKK+i6q+W5hSA8IG1paGFiYVwgOwor5Luy6ZaTIDwgbmFrYW1hXCA7CivkvLTotbAgPCBiYW5zb3VcIDsKK+i7ouWcsCA8IHRlbmNoaVwgOwor6Imv5aScIDwgcnlvdXlhXCA7CivkvZPopoEgPCB0YWl5b3VcIDsKK+S8nemAgSA8IGRlbnNvdVwgOwor6LSL6YCgIDwgZ2Fuem91XCA7CivlvqHopYHopJMgPCBvbXV0c3VcIDsKK+iHqOaknCA8IHJpbmtlblwgOwor5a++6IGvIDwgdGFpcmVuXCA7CivpppborIAgPCBzaHVib3VcIDsKK+WDleWpoiA8IGJva3VoaVwgOwor5qOS54q2IDwgYm91am91XCA7Civku5bpoJggPCB0YXJ5b3VcIDsKK+WvuOiDtCA8IHp1bmRvdVwgOwor5Lq66a2aIDwgbmluZ3lvXCA7CivkvZPoo4EgPCB0ZWlzYWlcIDsKK+WBtuaVsCA8IGd1dXN1dVwgOwor6aSK6a2aIDwgeW91Z3lvXCA7CivlsI7nt5ogPCBkb3VzZW5cIDsKK+WujOi1sCA8IGthbnNvdVwgOwor6aas6J2/IDwgdW1hYmFlXCA7Civku6TplqggPCByZWlrZWlcIDsKK+Wvvue9riA8IHRhaWNoaVwgOwor6aeQ6IuxIDwgY2h1dWVpXCA7Civopb/nj63niZkgPCBzdXBlaW5cIDsKK+iCqei6qyA8IGthdGFtaVwgOwor5LuK6aKoIDwgaW1hZnV1XCA7CivpgJnjgIUgPCBob3Vob3VcIDsKK+iKuOS6uiA8IGdlaW5pblwgOwor5p+U6YGTIDwganV1ZG91XCA7CivohLHnt5ogPCBkYXNzZW5cIDsKK+agueiPnCA8IGtvbnNhaVwgOwor6IOh6J22IDwga29jaG91XCA7CivlsI/ns6AgPCBrb251a2FcIDsKK+aknOahiCA8IGtlbicnYW5cIDsKK+WumuirliA8IHRlaXJvblwgOwor5qW95bGLIDwgZ2FrdXlhXCA7Civnl4XlvowgPCBieW91Z29cIDsKK+iGv+axgSA8IG5vdWp1dVwgOwor5YKy5bK4IDwgZ291Z2FuXCA7CivlsI/nsbMgPCBrb2dvbWVcIDsKK+WtpumDqCA8IGdha3VidVwgOwor6Ieo5pu4IDwgcmluc2hvXCA7Civmn7voqq0gPCBzYWRva3VcIDsKK+iFq+eYjSA8IHNodXlvdVwgOwor5qW95a+dIDwgcmFrdW5lXCA7CivlsIHnt5ggPCBmdXVrYW5cIDsKK+agueiMjiA8IGtvbmtlaVwgOwor6Iao5rqAIDwgYm91bWFuXCA7Civkv67nkIYgPCBzaHV1cmlcIDsKK+iEseezniA8IGRhcHB1blwgOwor6IeY5qKFIDwgcm91YmFpXCA7Civmn7voqLwgPCBzYXNob3VcIDsKK+WAkua9sCA8IHRvdWthaVwgOwor6IiM5oimIDwgemVzc2VuXCA7Civpq5jmhaIgPCBrb3VtYW5cIDsKK+aflOi7nyA8IGp1dW5hblwgOwor5bCP566xIDwga29iYWtvXCA7CivlsL3nmIEgPCBqaW5zdWlcIDsKK+WwiuewoSA8IHNvbmthblwgOwor5bCO566hIDwgZG91a2VuXCA7CivlrproposgPCB0ZWlrZW5cIDsKK+eTpuekqyA8IGdhcmVraVwgOwor5a6f6KOFIDwgamlzc291XCA7CivmpbXlr5IgPCBnb2trYW5cIDsKK+mnheiIjiA8IGVraXNoYVwgOwor5p2l6a6uIDwgcmFpc2VuXCA7CivkurrpoZ4gPCBqaW5ydWlcIDsKK+S6oemtgiA8IGJvdWtvblwgOwor6LSI6LOEIDwgem91d2FpXCA7Civkvb/ogZggPCBzaGloZWlcIDsKK+S6uumgrSA8IGppbnRvdVwgOwor6LWw6ICFIDwgc291c2hhXCA7Civlrp/ooYwgPCBqaWtrb3VcIDsKK+i7jeWWtiA8IGd1bicnZWlcIDsKK+i7veS+vyA8IGtlaWJlblwgOwor5L2/6ICFIDwgc2hpc2hhXCA7CivlgbbmiJAgPCBndXVzZWlcIDsKK+i7ouWLpCA8IHRlbmtpblwgOwor5L+X55S7IDwgem9rdWdhXCA7Civlr77nsbMgPCB0YWliZWlcIDsKK+i3neeIqiA8IGt5b3NvdVwgOwor5Lq66Z2iIDwgamlubWVuXCA7CivogIHpvaIgPCByb3VyZWlcIDsKK+iJr+WQjyA8IHJ5b3VyaVwgOwor5p2+6ZyyIDwgc2hvdXJvXCA7CivlsIHnrZIgPCBmdXV0b3VcIDsKK+mjm+mzpSA8IGhpY2hvdVwgOwor6ISa57WGIDwga3lhaGFuXCA7CivlgbbmhJ8gPCBndXVrYW5cIDsKK+iynemhniA8IGthaXJ1aVwgOwor5LuY6YyyIDwgZnVyb2t1XCA7CivlgY/ml4EgPCBoZW5ib3VcIDsKK+S7o+mHkSA8IGRhaWtpblwgOwor5YGP5pacIDwgaGVuc2hhXCA7Civlr5LogqUgPCBrYW5nb2VcIDsKK+i7ouWGmSA8IHRlbnNoYVwgOwor5Lya6KuHIDwga2FpZGFuXCA7CivoiI7lvJ8gPCBzaGF0ZWlcIDsKK+mmtOiHtCA8IGp1bmNoaVwgOwor6a2a5LuLIDwgZ3lva2FpXCA7CivlgpjlsYsgPCBrYXNheWFcIDsKK+S8neiogCA8IGRlbmdvblwgOwor6LuK5Y+wIDwgc2hhZGFpXCA7CivkuI3opovnm64gPCBtaWppbWVcIDsKK+WvvuepuiA8IHRhaWt1dVwgOwor5Lya6KiIIDwga2Fpa2VpXCA7CivkvZzoiIggPCBzYWtrb3VcIDsKK+iFuOeCjiA8IGNob3VlblwgOwor5Lq66ZaTIDwgbmluZ2VuXCA7CivlrabosrsgPCBnYWt1aGlcIDsKK+adsemdoiA8IHRvdW1lblwgOwor5bCP56C0IDwgc2hvdWhhXCA7Civpo5vprZogPCB0b2JpdW9cIDsKK+WxseawtCA8IHNhbnN1aVwgOwor5L2Z6IiIIDwgeW9reW91XCA7CivlsbHmsJcgPCB5YW1ha2VcIDsKK+Wwj+efsyA8IGtvaXNoaVwgOwor6JWO6bqm57KJIDwgc29iYWtvXCA7Civou43li6IgPCBndW56ZWlcIDsKK+S9meiHrSA8IHlvc2h1dVwgOwor5Lya6KaLIDwga2Fpa2VuXCA7CivlsIHnpoUgPCBob3V6ZW5cIDsKK+i0heiogCA8IHplaWdlblwgOwor54++6YeRIDwgZ2Vua2luXCA7CivlsYXnhLYgPCBreW96ZW5cIDsKK+WEhOS4hyA8IG9rdW1hblwgOwor5qSc5oyZIDwga2Vua3lvXCA7Civou6LlgJIgPCB0ZW50b3VcIDsKK+eUuuatqSA8IGNob3VidVwgOwor5YOn5YW1IDwgc291aGVpXCA7CivnlpHmg5EgPCBnaXdha3VcIDsKK+S7o+i/lCA8IGRhaWhlblwgOwor5qW95ZyfIDwgcmFrdWRvXCA7Civoh6jmiKYgPCByaW5zZW5cIDsKK+WuneiUtSA8IGhvdXpvdVwgOwor5qW95ZySIDwgcmFrdWVuXCA7Civmnpfph44gPCByaW4nJ3lhXCA7CivkuqzpmKogPCBrZWloYW5cIDsKK+i1pOe3miA8IGFrYXNlblwgOwor5LuW6YO3IDwgdGFreW91XCA7Civou43liIAgPCBndW50b3VcIDsKK+eXtOWRhiA8IGNoaWhvdVwgOwor5p2h6aCFIDwgam91a291XCA7CivlsI/nm64gPCBrb21va3VcIDsKK+aghOiQvSA8IGVpcmFrdVwgOwor6Lui5L2PIDwgdGVuanV1XCA7CivnlKjms5UgPCB5b3Vob3VcIDsKK+iHhuaWrSA8IG9rdWRhblwgOwor6LqN5aaCIDwgeWFrdWpvXCA7CivlsI/nmr8gPCBrb3phcmFcIDsKK+Wwj+eauiA8IGtvaml3YVwgOwor5Lqh6ZyKIDwgYm91cmVpXCA7Civmoq3lrZDprZogPCBrYW1hc3VcIDsKK+iIueWeiyA8IHNlbmtlaVwgOwor6LWk57WMIDwgc2Vra2VpXCA7CivkvZ7ogIUgPCBuZWlzaGFcIDsKK+mmrOiCiSA8IGJhbmlrdVwgOwor5YGV5oiQIDwga2Fpc2VpXCA7Civou43lhbUgPCBndW5wZWlcIDsKK+adpembuyA8IHJhaWRlblwgOwor5p2x6ZaAIDwgdG91bW9uXCA7CivnlKjmsLQgPCB5b3VzdWlcIDsKK+i7iuWGhSA8IHNoYW5haVwgOwor6aat6ICFIDwgZ3lvc2hhXCA7CivkuI3pmo/mhI8gPCBmdXp1aWlcIDsKK+mtheS6hiA8IG1pcnlvdVwgOwor5LqM6aOfIDwgbmlqaWtpXCA7CivohILnsokgPCBzaGlmdW5cIDsKK+iHs+W9kyA8IHNoaXRvdVwgOwor5L2T6IKyIDwgdGFpaWt1XCA7CivlsaXmrbQgPCByaXJla2lcIDsKK+WDp+S+tiA8IHNvdXJ5b1wgOwor5p6X6YGTIDwgcmluZG91XCA7CivlgKTmnK0gPCBuZWZ1ZGFcIDsKK+e0q+mZveiKsSA8IGFqaXNhaVwgOwor5L2O6IO9IDwgdGVpbm91XCA7CivmnaXpmKogPCByYWloYW5cIDsKK+S+i+elrSA8IHJlaXNhaVwgOwor6LK06YWsIDwga2lzaHV1XCA7Civog5rog44gPCBoYWl0YWlcIDsKK+WDp+S8vSA8IHNvdWd5YVwgOwor5qGn55quIDwgaGl3YWRhXCA7CivlrZDosZogPCBrb2J1dGFcIDsKK+iyr+mHkSA8IGNob2tpblwgOwor5Luj6LWwIDwgZGFpc291XCA7CivogrrokYkgPCBoYWl5b3VcIDsKK+WDreS4iiA8IHNlbmpvdVwgOwor6Ieo5b6hIDwgcmluZ3lvXCA7CivosqfpibEgPCBoaW5rb3VcIDsKK+WBj+aEmyA8IGhlbicnYWlcIDsKK+WBveWtpiA8IGdpZ2FrdVwgOwor5YKR5aOrIDwga2Vzc2hpXCA7Civph47oia/nnYAgPCBub3JhZ2lcIDsKK+mmluiEsyA8IHNodW5vdVwgOwor55Sf5q6LIDwgc2VpemFuXCA7Civmnb/ph5EgPCBiYW5raW5cIDsKK+ajn+acqCA8IG11bmFnaVwgOwor55Wq5omAIDwgYmFuc2hvXCA7Civkuo7omK3nm4YgPCB1cmFib25cIDsKK+i3r+aomSA8IHJvaHlvdVwgOwor6LuK5L2TIDwgc2hhdGFpXCA7CivoiLnlk6EgPCBzZW4nJ2luXCA7CivlrZfoqLMgPCBqaXlha3VcIDsKK+iLpuWRs+e0oCA8IGt1bWlzb1wgOwor5YGP5oCnIDwgaGVuc2VpXCA7Civmo43mo5IgPCBrb25ib3VcIDsKK+WBnOW5tCA8IHRlaW5lblwgOwor5YKY5ZywIDwga2FzYWppXCA7CivlrpjoiI4gPCBrYW5zaGFcIDsKK+mokueEtiA8IHNvdXplblwgOwor5bGx5p6XIDwgc2FucmluXCA7CivmpbXlj7MgPCBreW9rdXVcIDsKK+acqOmtgiA8IGtvZGFtYVwgOwor6IWO54KOIDwgamluJydlblwgOwor5bGx5p2RIDwgc2Fuc29uXCA7CivkurrpgbggPCBqaW5zZW5cIDsKK+Wwj+eMqyA8IGtvbmVrb1wgOwor5Luu6KiXIDwga2F0YWt1XCA7Civmo5Lmna0gPCBib3VndWlcIDsKK+S6uumBkyA8IGppbmRvdVwgOwor6aas57OnIDwgYmFyeW91XCA7Civos4fosqEgPCBzaGl6YWlcIDsKK+mmrOezniA8IG1hZ3Vzb1wgOwor5YOF5YOFIDwga2lua2luXCA7CivmpbXljbAgPCBnb2t1aW5cIDsKK+S7o+ismyA8IGRhaWtvdVwgOwor5Lya6JGsIDwga2Fpc291XCA7Civou4rkuIogPCBzaGFqb3VcIDsKK+iHs+WwiiA8IHNoaXNvblwgOwor6IiF5aeRIDwga3l1dWtvXCA7Civogrroh5MgPCBoYWl6b3VcIDsKK+i6q+WGhSA8IG1pdWNoaVwgOwor6Lqr5YWxIDwgbWlkb21vXCA7Civoh7Plrp0gPCBzaGlob3VcIDsKK+S9k+ezuyA8IHRhaWtlaVwgOwor5YGP5bmzIDwgaGVucGVpXCA7Civlr5/nn6UgPCBzYXRjaGlcIDsKK+acq+mmmSA8IG1ha2tvdVwgOwor5pyo6aasIDwgbW9rdWJhXCA7CivlgbTlpbMgPCBzb2JhbWVcIDsKK+acrOmkqCA8IGhvbmthblwgOwor5Luj6KiAIDwgZGFpZ2VuXCA7Civogrrog54gPCBoYWlob3VcIDsKK+S6uui7iiA8IGppbnNoYVwgOwor5pyx6aGUIDwgc2h1Z2FuXCA7CivnlKjmnZAgPCB5b3V6YWlcIDsKK+i2s+a5ryA8IGFzaGl5dVwgOwor5YK+5YCSIDwga2VpdG91XCA7Civmpa3li5kgPCBneW91bXVcIDsKK+WAjeaVsCA8IGJhaXN1dVwgOwor6ICB6ZuEIDwgcm91eXV1XCA7CivoiLnlh7ogPCBmdW5hZGVcIDsKK+iHquWuhSA8IGppdGFrdVwgOwor6ISH55uuIDwgd2FraW1lXCA7CivmnKzpoZggPCBob25nYW5cIDsKK+acrOmhjCA8IGhvbmRhaVwgOwor5Lmx6ZuyIDwgcmFuJyd1blwgOwor55a+5ZG8IDwgc2hpa2tvXCA7CivoiLnlhbcgPCBmdW5hZ3VcIDsKK+WutuetiyA8IGllc3VqaVwgOwor5pys6Z+zIDwgaG9uJyduZVwgOwor5LuY6KiXIDwgZnV0YWt1XCA7CivnlJ/mnaUgPCBzZWlyYWlcIDsKK+WApuaGiiA8IGtlbnBhaVwgOwor5p6i6KaBIDwgc3V1eW91XCA7CivporHpoqggPCB0YWlmdXVcIDsKK+WvneeZliA8IG5lZ3VzZVwgOwor54Sh5LqL5pWFIDwgbXVqaWtvXCA7Civoh43luK8gPCBzZWl0YWlcIDsKK+aknOWumiA8IGtlbnRlaVwgOwor5p2l6YK4IDwgcmFpdGVpXCA7CivohbnmoYggPCBmdWt1YW5cIDsKK+eUn+acqCA8IG5hbWFraVwgOwor5L2Z56iLIDwgeW9ob2RvXCA7CivlgrLlgKggPCBnb3VreW9cIDsKK+mqqOWtkCA8IGtvc3NoaVwgOwor5p2l6YGKIDwgcmFpeXV1XCA7CivmnbHou40gPCB0b3VndW5cIDsKK+WxleacmyA8IHRlbmJvdVwgOwor6ICz6LyqIDwgbWltaXdhXCA7CivlsI/mva4gPCBrb3NoaW9cIDsKK+aituacqCA8IGthamlraVwgOwor6LKn6LOkIDwgaGluc2VuXCA7CivmnaXov44gPCByYWlnb3VcIDsKK+aciemrqiA8IHVoYXRzdVwgOwor6LWk55eiIDwgc2VraXJpXCA7Civkvr/ms5UgPCBiZW5wb3VcIDsKK+S9juepuiA8IHRlaWt1dVwgOwor5Lyd6IGeIDwgZGVuYnVuXCA7CivmnKzpmoogPCBob250YWlcIDsKK+WyqeWxpCA8IGdhbnNvdVwgOwor5pyd6aGUIDwgYXNhZ2FvXCA7CivouqvkuIggPCBtaXRha2VcIDsKK+acrOmZoyA8IGhvbmppblwgOwor5pys6ZmiIDwgaG9uJydpblwgOwor5bCo5q+bIDwgbXVrdWdlXCA7CivlrprntIsgPCBqb3Vtb25cIDsKK+mkiuixmiA8IHlvdXRvblwgOwor5LuY6KGoIDwgZnVoeW91XCA7CivmnLHploAgPCBzaHVtb25cIDsKK+S9teeUqCA8IGhlaXlvdVwgOwor5pyo6ZmwIDwga29rYWdlXCA7CivlgrXkuLsgPCBzYWlzaHVcIDsKK+adpei7iiA8IHJhaXNoYVwgOwor6IOM562LIDwgaGFpa2luXCA7CivlsbHmiYsgPCB5YW1hdGVcIDsKK+iFi+avmyA8IHdha2lnZVwgOwor5L6/5q6/IDwgYmVuZGVuXCA7Civogp3og4YgPCBrYW50YW5cIDsKK+acnemcsiA8IGNob3Vyb1wgOwor5bGv5omAIDwgdG9uc2hvXCA7Civos4DooaggPCBnYWh5b3VcIDsKK+WuneeulyA8IGhvdXNhblwgOwor5LiA5pio5pelIDwgb3RvdG9pXCA7CivpoqjpnJwgPCBmdXVzb3VcIDsKK+i1t+eIhiA8IGtpYmFrdVwgOwor6IiI5ZGzIDwga3lvdW1pXCA7Civogonoir0gPCBuaWt1Z2FcIDsKK+WtpOiInyA8IGtvc2h1dVwgOwor5LqM6YCyIDwgbmlzaGluXCA7CivmnZHpgZMgPCBzb25kb3VcIDsKK+WBj+WlvSA8IGhlbmtvdVwgOwor5LqM6YCaIDwgbml0c3V1XCA7CivlgKTluYUgPCBuZWhhYmFcIDsKK+miqOmYsiA8IGZ1dWJvdVwgOwor5p6v6JGJIDwga2FyZWhhXCA7CivlrrbnnaMgPCBrYXRva3VcIDsKK+WBtuWQnyA8IGd1dWtpblwgOwor5Lyd57eaIDwgZGVuc2VuXCA7Civoh6rlm70gPCBqaWtva3VcIDsKK+iHqOWcqCA8IHJpbnphaVwgOwor5L2Z55m9IDwgeW9oYWt1XCA7Civlrr/nl74gPCBzaHVrdWFcIDsKK+WvhueUnyA8IG1pc3NlaVwgOwor5a+E55WZIDwga2lyeXV1XCA7CivmnaXos5MgPCByYWloaW5cIDsKK+S8nee1sSA8IGRlbnRvdVwgOwor55S75b+DIDwgZ2FzaGluXCA7CivlsI7msLQgPCBkb3VzdWlcIDsKK+adpeiyoiA8IHJhaWtvdVwgOwor6ISx5rOVIDwgZGFwcG91XCA7CivlgKTltakgPCBuZWdhc2FcIDsKK+WHuuadpeWApCA8IGRla2luZVwgOwor6LGq6YK4IDwgZ291dGVpXCA7CivkvZnnl4UgPCB5b2J5b3VcIDsKK+iAgemFkiA8IHJvdXNodVwgOwor5L2O55uuIDwgaGlrdW1lXCA7CivkvZznlLsgPCBzYWt1Z2FcIDsKK+eNo+mhniA8IGp1dXJ1aVwgOwor6LGq6YKBIDwgZ291bWFpXCA7CivlsITms5UgPCBzaGFob3VcIDsKK+mnhOeJqSA8IGRhbW9ub1wgOwor6ISx5rC0IDwgZGFzc3VpXCA7Civpo5vouo0gPCBoaXlha3VcIDsKK+S5semFlCA8IHJhbnN1aVwgOwor5Lmx6YWSIDwgcmFuc2h1XCA7CivoiI7lhYQgPCBzaGFrZWlcIDsKK+S7sOiHpSA8IGd5b3VnYVwgOwor55Wq5aSWIDwgYmFuZ2FpXCA7CivlsqnloakgPCBnYW4nJ2VuXCA7CivkvZXnlaogPCBuYW5iYW5cIDsKK+abuOmiqCA8IHNob2Z1dVwgOwor6ISz5q27IDwgbm91c2hpXCA7CivkuozotrMgPCBuaXNva3VcIDsKK+e+vemiqCA8IGhha2F6ZVwgOwor6LGq6L6yIDwgZ291bm91XCA7CivnlLvluYUgPCBnYWZ1a3VcIDsKK+abuOmhniA8IHNob3J1aVwgOwor55Sf5oaOIDwgYWluaWt1XCA7CivkuK3po5sgPCBjaHV1aGlcIDsKK+iwt+mWkyA8IHRhbmltYVwgOwor5p2x6KW/IDwgdG91emFpXCA7Civoh63lkbMgPCBzaHV1bWlcIDsKK+eQtOe3miA8IGtpbnNlblwgOwor6IOh55OcIDwga3l1dXJpXCA7Civpo5votoogPCBoaWV0c3VcIDsKK+adpeirhyA8IHJhaWRhblwgOwor5YCJ5bupIDwgc291cmluXCA7CivohZDmnL0gPCBmdWt5dXVcIDsKK+WuieepjyA8IGFuJydub25cIDsKK+WApOWuiSA8IG5leWFzdVwgOwor5Luj6ImmIDwgZGFpa2FuXCA7Civlr7jms5UgPCBzdW5wb3VcIDsKK+iDjuebpCA8IHRhaWJhblwgOwor6ICB6L6yIDwgcm91bm91XCA7CivkubHpgKAgPCByYW56b3VcIDsKK+WCjeS6uiA8IGJvdWppblwgOwor5bGI5oyHIDwga3Vzc2hpXCA7CivogrLnqK4gPCBpa3VzaHVcIDsKK+aiheaelyA8IGJhaXJpblwgOwor5pyo6YeYIDwga2lrdWdpXCA7CivnlLflt6UgPCBkYW5rb3VcIDsKK+ixvOiyhSA8IGhpa3l1dVwgOwor5pyI6ZaTIDwgZ2Vra2FuXCA7Civku4/okawgPCBidXNzb3VcIDsKK+WAn+WutiA8IHNoYWtrYVwgOwor5pu46Z2iIDwgc2hvbWVuXCA7CivmnaXoqKogPCByYWlob3VcIDsKK+S4remfsyA8IGNodXVvblwgOwor6LSI562UIDwgem91dG91XCA7CivogIHovKkgPCByb3VoYWlcIDsKK+iBvuiAhSA8IHJvdXNoYVwgOwor5qGR5rW3IDwgc291a2FpXCA7CivlsI/mpa8gPCBrb2RhdGVcIDsKK+afseekjiA8IGNodXVzb1wgOwor6IGa6JC9IDwganVyYWt1XCA7CivmpJzlk4EgPCBrZW5waW5cIDsKK+WBtuWDjyA8IGd1dXpvdVwgOwor5a2Y572uIDwgc29uY2hpXCA7CivmnKzpgrggPCBob250ZWlcIDsKK+acrOmCpiA8IGhvbnBvdVwgOwor5p2l6KazIDwgcmFpa2FuXCA7CivppIrompUgPCB5b3VzYW5cIDsKK+acrOmBuCA8IGhvbnNlblwgOwor6aC96b2iIDwgdGFpcmVpXCA7CivnkrDmtbcgPCBrYW5rYWlcIDsKK+acqOmDqCA8IG1va3VidVwgOwor5pys6YGTIDwgaG9uZG91XCA7CivlsYXmiYAgPCBreW9zaG9cIDsKK+i3r+W6iiA8IHJvc2hvdVwgOwor5YG95L2cIDwgZ2lzYWt1XCA7CivkubHou40gPCByYW5ndW5cIDsKK+iznue+jiA8IHNob3ViaVwgOwor6LKv6JS1IDwgY2hvem91XCA7CivlgKHlqaYgPCBzaG91ZnVcIDsKK+acnemHjiA8IGNob3V5YVwgOwor6IOa54+gIDwgaGFpc2h1XCA7CivmnKrpgLIgPCBtaXNoaW5cIDsKK+S8keespiA8IGt5dXVmdVwgOwor6aKo6YeHIDwgZnV1c2FpXCA7CivnlKPlu4MgPCBzYW5wYWlcIDsKK+S7pOiBniA8IHJlaWJ1blwgOwor6Ieq5YqbIDwgamlyaWtpXCA7Civkv4LmlbAgPCBrZWlzdXVcIDsKK+S4remZsCA8IGNodXVpblwgOwor5qSc5Y2wIDwga2VuJydpblwgOwor5bCR5p6XIDwgc2hvcmluXCA7CivlgaXlhaggPCBrZW56ZW5cIDsKK+WvruavjSA8IHJ5b3Vib1wgOwor55S75a2mIDwgZ2FnYWt1XCA7CivkupLop5IgPCBnb2tha3VcIDsKK+izque0oCA8IHNoaXNzb1wgOwor5qC55rqQIDwga29uZ2VuXCA7Civmn7PnnIkgPCByeXV1YmlcIDsKK+S6ieirliA8IHNvdXJvblwgOwor6LWw5rOVIDwgc291aG91XCA7CivkuIrpqLAgPCBqb3V0b3VcIDsKK+WxseWutiA8IHlhbWFnYVwgOwor5a6f55SfIDwgbWlzaG91XCA7CivmnKvovKkgPCBtYXBwYWlcIDsKK+WxnuW3riA8IHpva3VzYVwgOwor5LiN6aa0IDwgZnVuYXJlXCA7CivmpL/kuosgPCBjaGluamlcIDsKK+mmluePrSA8IHNodWhhblwgOwor5a6a55WqIDwgdGVpYmFuXCA7CivlgbbkurogPCBndXVqaW5cIDsKK+eUt+WtkCA8IGRhbnNoaVwgOwor5Luj572yIDwgZGFpc2hvXCA7Civku6Pnva4gPCBkYWljaGlcIDsKK+S8iuWLouS4uSA8IGlzZXRhblwgOwor6IK655mMIDwgaGFpZ2FuXCA7CivppYznsbMgPCBzZW5tYWlcIDsKK+i2o+aXqCA8IHNodXNoaVwgOwor5LuK6IisIDwga29ucGFuXCA7CivlsIrmnaUgPCBzb25yYWlcIDsKK+air+W9oiA8IHRlaWtlaVwgOwor5LqM6KaLIDwgZnV0YW1pXCA7Civoh6rlhJggPCBqaW1hbWFcIDsKK+aenOiCiSA8IGthbmlrdVwgOwor5qSc5YiGIDwga2VuYnVuXCA7CivkuKHpmaIgPCByeW91aW5cIDsKK+eUsuWtkCA8IGthc3NoaVwgOwor5LiA6amaIDwgaWtreW91XCA7CivkupTooYwgPCBnb2d5b3VcIDsKK+iHs+S+vyA8IHNoaWJlblwgOwor5bCK5pu4IDwgc29uc2hvXCA7CivlsI/mmLwgPCBrb2hpcnVcIDsKK+abnemcsiA8IGJha3Vyb1wgOwor5bCP5pilIDwga29oYXJ1XCA7CivkvZnngJ0gPCB5b3Jla2lcIDsKK+eMrumljCA8IGtlbnNlblwgOwor5L+h5b6SIDwgc2hpbnRvXCA7Civnlarlj7cgPCBiYW5nb3VcIDsKK+S4gOmnhCA8IGljaGlkYVwgOwor6aGe6aGMIDwgcnVpZGFpXCA7Civmm5zpnIogPCB5b3VyZWlcIDsKK+agueayuyA8IGtvbmNoaVwgOwor5YGJ5YqbIDwgaXJ5b2t1XCA7Civlr6HmrLIgPCBrYXlva3VcIDsKK+aciemFjSA8IHl1dWhhaVwgOwor5LuV572uIDwgc2hpb2tpXCA7Civpoqjou4ogPCBmdXVzaGFcIDsKK+aal+m7mSA8IGFubW9rdVwgOwor5bGx5aWzIDwgeWFtYW1lXCA7Civmmpfpu5IgPCBhbmtva3VcIDsKK+WwgeabuCA8IGZ1dXNob1wgOwor5LuP6ICFIDwgYnVzc2hhXCA7Civmo4TlrZAgPCBzdXRlZ29cIDsKK+WAueWQnSA8IGtlbnJpblwgOwor6Ieq5L6bIDwgamlreW91XCA7CivkuInpn5MgPCBzYW5rYW5cIDsKK+S6iOihqCA8IHlvaHlvdVwgOwor5LiH6aCDIDwgYmFua2VpXCA7CivkuIDpo5sgPCBpY2hpaGlcIDsKK+agueavmyA8IGtvbm1vdVwgOwor5L2Z5ru0IDwgeW90ZWtpXCA7CivlgI3lpKcgPCBiYWlkYWlcIDsKK+iHquS9nCA8IGppc2FrdVwgOwor6IKy55SfIDwgaWt1c2VpXCA7CivnlLvlooMgPCBnYWt5b3VcIDsKK+acqOiziiA8IHRva3VzYVwgOwor5bCK5pWsIDwgc29ua2VpXCA7CivkuIrpnaIgPCBqb3VtZW5cIDsKK+WxheW4uCA8IGt5b2pvdVwgOwor5Luj57SNIDwgZGFpbm91XCA7Civlr5LmsJcgPCBzYW11a2VcIDsKK+S4iemdoiA8IHNhbm1lblwgOwor5bCK5pSYIDwgc29uam91XCA7CivlgZzkvJogPCB0ZWlrYWlcIDsKK+WAjeWilyA8IGJhaXpvdVwgOwor5qSc5L6/IDwga2VuYmVuXCA7CivnlJ/lrZggPCBzZWl6b25cIDsKK+WxkeWxiyA8IGt1enV5YVwgOwor6aGY6Z2iIDwgZ2FubWVuXCA7CivpoqjotqMgPCBmdXVzaHVcIDsKK+iDuOavmyA8IG11bmFnZVwgOwor5bGx5aC0IDwgeWFtYWJhXCA7CivlsY/lsYUgPCBoZWlreW9cIDsKK+S4h+mbtyA8IGJhbnJhaVwgOwor5LiJ6ZqOIDwgc2FuZ2FpXCA7Civlr53mp5ggPCBuZXphbWFcIDsKK+atpOWHpuetiSA8IGtva29yYVwgOwor55Wq5YW1IDwgYmFucGVpXCA7CivmnJ3os4AgPCBjaG91Z2FcIDsKK+WvvuaVsCA8IHRhaXN1dVwgOwor5a+p5p+7IDwgc2hpbnNhXCA7Civlr53mpa0gPCBuZXdhemFcIDsKK+mcsuilv+S6nCA8IHJvc2hpYVwgOwor5pys6KuWIDwgaG9ucm9uXCA7CivlgJ/llY8gPCBzaGFtb25cIDsKK+abvumBiiA8IHNvdXl1dVwgOwor55Ci56OoIDwgdGFrdW1hXCA7CivohbnlrZAgPCBoYXJha29cIDsKK+ahn+aVtyA8IHNhamlraVwgOwor5a++5pSvIDwgdGFpc2hpXCA7CivppIrogrIgPCB5b3Vpa3VcIDsKK+S8r+eItiA8IGhha3VmdVwgOwor5pys6KqMIDwgaG9uc2hpXCA7CivlrZDnqK4gPCBrb2RhbmVcIDsKK+Wwj+aMhyA8IGtveXViaVwgOwor5pyq6KqtIDwgbWlkb2t1XCA7Civnm67ljLvogIUgPCBtZWlzaGFcIDsKK+S4gOmauyA8IGlzc2VraVwgOwor5a+45patIDwgc3VuZGFuXCA7CivogIHoobAgPCByb3VzdWlcIDsKK+iFkOW/gyA8IGZ1c2hpblwgOwor5pq06aKoIDwgYm91ZnV1XCA7CivkvZnmsqIgPCB5b3Rha3VcIDsKK+WumueCuSA8IHRlaXRlblwgOwor5pu46YGTIDwgc2hvZG91XCA7CivkuK3pg6ggPCBjaHV1YnVcIDsKK+WBj+S6uiA8IGhlbmppblwgOwor5YCm5Y6tIDwga2VuJydlblwgOwor5a2m55ujIDwgZ2Fra2FuXCA7CivppIrogIEgPCB5b3Vyb3VcIDsKK+eUo+WjsCA8IHVidWdvZVwgOwor6aO06ImyIDwgYW1laXJvXCA7CivnlLDlnLAgPCBkZW5jaGlcIDsKK+acneitsCA8IGNob3VnaVwgOwor55Sw5ZySIDwgZGVuJydlblwgOwor6aaZ5rivIDwgaG9ua29uXCA7CivmoYLmnpcgPCBrZWlyaW5cIDsKK+S4gOmWkyA8IGhpdG9tYVwgOwor5a2Y55+lIDwgem9uY2hpXCA7CivkuK3pgJQgPCBjaHV1dG9cIDsKK+eQuueRryA8IGhvdXJvdVwgOwor6aC76aC7IDwgaGlucGluXCA7CivlsLvlsL4gPCBzaGlwcG9cIDsKK+eUmuWkpyA8IGppbmRhaVwgOwor5L6L5pWwIDwgcmVpc3V1XCA7CivkuozokYkgPCBmdXRhYmFcIDsKK+mjvOiCsiA8IHNoaWlrdVwgOwor5L+z5aOHIDwgaGFpZGFuXCA7Civlsa/llrYgPCB0b24nJ2VpXCA7CivmnaXoh6ggPCByYWlyaW5cIDsKK+aiteWkqSA8IGJvbnRlblwgOwor5aaC5L2V5qeYIDwgaWtheW91XCA7Civlr5LmooUgPCBrYW5iYWlcIDsKK+agueafoiA8IGtvbnRlaVwgOwor5L2V5q2zIDwgbmFuc2FpXCA7CivmoJfmr5sgPCBrdXJpZ2VcIDsKK+WwiuaFriA8IHNvbnJ5b1wgOwor5L2P5rCRIDwganV1bWluXCA7CivlsJHmgakgPCBzaG91b25cIDsKK+eUo+WcsCA8IHNhbmNoaVwgOwor5LyB55S7IDwga2lrYWt1XCA7CivnlJjloakgPCBhbWFqaW9cIDsKK+i1pOacrCA8IGFrYWhvblwgOwor6aKo6KejIDwgZnV1a2FpXCA7CivkvbXmnIkgPCBoZWl5dXVcIDsKK+Wxi+WkliA8IG9rdWdhaVwgOwor6aas5qmHIDwgYmFzb3JpXCA7CivkuK3ouqsgPCBuYWthbWlcIDsKK+eQhuelniA8IHJpc2hpblwgOwor5qC55pysIDwgbmVtb3RvXCA7CivkurrntbkgPCBqaW5rZW5cIDsKK+S4u+izkyA8IHNodWhpblwgOwor55Sf5ZywIDwgc2VpY2hpXCA7CivpoqjoposgPCBrYXphbWlcIDsKK+S7luensCA8IHRhc2hvdVwgOwor6aaZ5rC0IDwga291c3VpXCA7Civlr5LmnZEgPCBrYW5zb25cIDsKK+adieiPnCA8IHN1Z2luYVwgOwor55WZ5L+dIDwgcnl1dWhvXCA7Civog73mm7ggPCBub3VzaG9cIDsKK+S9nOalrSA8IHNhZ3lvdVwgOwor5YCo5YKyIDwga3lvZ291XCA7CivmoLnmmpcgPCBuZWt1cmFcIDsKK+i3oeWcsCA8IGF0b2NoaVwgOwor5Lq657OeIDwgamlucHVuXCA7CivlrabnkIYgPCBnYWt1cmlcIDsKK+S9mealrSA8IHlvZ3lvdVwgOwor5bCP5b2iIDwga29nYXRhXCA7CivmnIjorJ0gPCBnZXNzaGFcIDsKK+WvhuagkyA8IG1pc3NlblwgOwor5a+S5pqWIDwga2FuZGFuXCA7CivpoqjooosgPCBmdXV0YWlcIDsKK+S4iemHjSA8IHNhbmp1dVwgOwor6LKh57WMIDwgemFpa2VpXCA7CivlrZjnlJ8gPCB6b25qb3VcIDsKK+S4h+mHkSA8IG1hbmtpblwgOwor5bCK5b2xIDwgc29uJydlaVwgOwor5qC55pa5IDwgbmVrYXRhXCA7CivnlKjlk4EgPCB5b3VoaW5cIDsKK+S7rueXhSA8IGtlYnlvdVwgOwor5LiK6YWSIDwgam91c2h1XCA7CivlrpfmtL4gPCBzaHV1aGFcIDsKK+WumuazlSA8IGpvdWhvdVwgOwor5a625qWtIDwga2FneW91XCA7Civog6HmpJIgPCBrb3Nob3VcIDsKK+iDhuaxgSA8IHRhbmp1dVwgOwor55Cl54+AIDwga29oYWt1XCA7Civog73mlocgPCBub3VidW5cIDsKK+Wwj+W5hSA8IGtvaGFiYVwgOwor5a2k54usIDwga29kb2t1XCA7CivnlKPlk4EgPCBzYW5waW5cIDsKK+S4jemBqSA8IGZ1dGVraVwgOwor5a+G5pu4IDwgbWlzc2hvXCA7CivogqHngasgPCBtYXRhYmlcIDsKK+e+jumGnCA8IGJpc2h1dVwgOwor5LiA6YeMIDwgaWNoaXJpXCA7Civlr7XmhJsgPCBjaG91YWlcIDsKK+WuneauvyA8IGhvdWRlblwgOwor5bCP5beuIDwgc2hvdXNhXCA7Civnj6DnrpcgPCBzaHV6YW5cIDsKK+S4jemAmiA8IGZ1dHN1dVwgOwor6ISz5bm5IDwgbm91a2FuXCA7Civkvpvlv5wgPCBreW91b3VcIDsKK+eOieiXuyA8IHRhbWFtb1wgOwor6IKd54KOIDwga2FuJydlblwgOwor5LiJ6YG4IDwgc2Fuc2VuXCA7CivlsIvluLggPCBqaW5qb3VcIDsKK+S/ruWWtiA8IHNodXVlaVwgOwor6IOh5qGDIDwga3VydW1pXCA7CivkuIfpgqYgPCBiYW5wb3VcIDsKK+iAgeiNmCA8IHJvdXNvdVwgOwor5a6Y5rCRIDwga2FubWluXCA7CivnoLTprZTnn6IgPCBoYW1heWFcIDsKK+WxnuWQjyA8IHpva3VyaVwgOwor5p6h55uuIDwgbWFzdW1lXCA7CivkuIHphYkgPCB0ZWl5dXVcIDsKK+i2iuW+jCA8IGVjaGlnb1wgOwor5bCa5bCaIDwgbmFvbmFvXCA7CivkuInpgKMgPCBzYW5yZW5cIDsKK+S4u+ioiCA8IHNodWtlaVwgOwor5qCh5pysIDwga291aG9uXCA7Civmmq7pkJggPCBib3Nob3VcIDsKK+WwgeW7uiA8IGhvdWtlblwgOwor5YCS5YOPIDwgdG91em91XCA7CivnvoXph50gPCByYXNoaW5cIDsKK+aiteWUhCA8IGJvbmJhaVwgOwor5LiK6L66IDwgam91aGVuXCA7CivkuIDpg60gPCBpa2tha3VcIDsKK+S4gOmDqCA8IGljaGlidVwgOwor5L2V5p6aIDwgbmFubWFpXCA7Civlr7jlv5cgPCBzdW5zaGlcIDsKK+S9nuaZuiA8IG5laWNoaVwgOwor5Li76KazIDwgc2h1a2FuXCA7Civlrrbmn4QgPCBpZWdhcmFcIDsKK+Wwj+WztiA8IGtvamltYVwgOwor5pys6JGsIDwgaG9uc291XCA7CivnlKPljbUgPCBzYW5yYW5cIDsKK+S6uueoriA8IGppbnNodVwgOwor5a6M5rK7IDwga2FuY2hpXCA7CivkvZXmnaEgPCBuYW5qb3VcIDsKK+S7o+eUqCA8IGRhaXlvdVwgOwor55u46YOo5bGLIDwgYWliZXlhXCA7CivkvK/mr40gPCBoYWt1Ym9cIDsKK+S/s+WQjSA8IGhhaW1laVwgOwor5a2k5YWQ6ZmiIDwga29qaWluXCA7Civnvqnos4ogPCBnaXpva3VcIDsKK+Wwj+WxsSA8IGtveWFtYVwgOwor5bCK5bSHIDwgc29uc3V1XCA7Civkv7Plj4sgPCBoYWl5dXVcIDsKK+S4gOmAsSA8IGlzc2h1dVwgOwor5LyR5ryUIDwga3l1dWVuXCA7CivkuIDpgJogPCBpdHRzdXVcIDsKK+iEh+aIuCA8IHdha2lkb1wgOwor5bC/5ZmoIDwgbnlvdWtpXCA7CivkuInou40gPCBzYW5ndW5cIDsKK+eLremcpyA8IHNhZ2lyaVwgOwor5qC55ougIDwga29ua3lvXCA7CivkupXntrEgPCBpZHp1bmFcIDsKK+S7iuaXpeaXpSA8IGt5b3ViaVwgOwor5LiH6LuNIDwgYmFuZ3VuXCA7CivmnbHnq68gPCB0b3V0YW5cIDsKK+acrOiNiSA8IGhvbnpvdVwgOwor6LK755uuIDwgaGltb2t1XCA7Civku5nnlYwgPCBzZW5rYWlcIDsKK+eUo+WJjSA8IHNhbnplblwgOwor546J6I+cIDwgdGFtYW5hXCA7CivmnKvojLYgPCBtYXRjaGFcIDsKK+mjr+exsyA8IGhhbm1haVwgOwor6aCG6aKoIDwganVucHV1XCA7CivmnLHoibIgPCBzaHVpcm9cIDsKK+S8neazlSA8IGRlbnBvdVwgOwor55S75LyvIDwgZ2FoYWt1XCA7Civni63pmpggPCBreW91YWlcIDsKK+eNo+ihjCA8IGp1dWtvdVwgOwor5LiN6LazIDwgZnVzb2t1XCA7Civos4fnlKMgPCBzaGlzYW5cIDsKK+WrgeiPnCA8IHlvbWVuYVwgOwor5LqU57WMIDwgZ29reW91XCA7Civpp4XmiYsgPCBla2lzaHVcIDsKK+eUn+WJjSA8IHNlaXplblwgOwor5LiL6LazIDwgZ2Vzb2t1XCA7CivkvZXmlrkgPCBkb25hdGFcIDsKK+ixmuiIjiA8IHRvbnNoYVwgOwor6Laz5aC0IDwgYXNoaWJhXCA7CivpoIbpoIYgPCBqdW5qdW5cIDsKK+iNvOaes+WwvCA8IGRha2luaVwgOwor5LiA6LqrIDwgaXNzaGluXCA7CivogqXmsoMgPCBoaXlva3VcIDsKK+aiseWMhSA8IGtvbnBvdVwgOwor5p6X55SjIDwgcmluc2FuXCA7Civkurrnn6UgPCBqaW5jaGlcIDsKK+e9sOmHkSA8IGJha2tpblwgOwor5Luk54q2IDwgcmVpam91XCA7CivkvovlubQgPCByZWluZW5cIDsKK+eLremWkyA8IGhhemFtYVwgOwor6ISb5be+IDwgaGFiYWtpXCA7CivlsaXkv64gPCByaXNodXVcIDsKK+iGneS4iyA8IHNoaWtrYVwgOwor5LqM57SaIDwgbmlreXV1XCA7CivmtbfogIHpjKAgPCBlYmlqb3VcIDsKK+acrOiGsyA8IGhvbnplblwgOwor5LiA6LevIDwgaWNoaXJvXCA7CivohIbmgKcgPCB6ZWlzZWlcIDsKK+S9k+aTjSA8IHRhaXNvdVwgOwor5L2/5b25IDwgc2hpZWtpXCA7CivmmanppJAgPCBiYW5zYW5cIDsKK+iCneayuSA8IGthbicneXVcIDsKK+e+pOirliA8IGd1bnJvblwgOwor55So5L6/IDwgeW91YmVuXCA7Civku4rnlJ8gPCBrb25qb3VcIDsKK+WwkeWlsyA8IHNob3Vqb1wgOwor5Lq655u4IDwgbmluc291XCA7CivkuojntIQgPCB5b3lha3VcIDsKK+S6uuebriA8IGhpdG9tZVwgOwor55SY5YWaIDwgYW1hdG91XCA7Civosqfnm7ggPCBoaW5zb3VcIDsKK+iDjOaZryA8IGhhaWtlaVwgOwor6aeS5bqnIDwga29tYXphXCA7Civlronmpb0gPCBhbnJha3VcIDsKK+S4luiplSA8IHNlaHlvdVwgOwor54+t55SwIDwgaGFuZGVuXCA7CivmnInok4sgPCB5dXVnYWlcIDsKK+eUqOS7tiA8IHlvdWtlblwgOwor5LmX6Ii5IDwgam91c2VuXCA7Civlrp/mma8gPCBqaWtrZWlcIDsKK+Wxi+WGhSA8IG9rdW5haVwgOwor5a2m5rS+IDwgZ2FrdWhhXCA7CivpoqjoiLkgPCBmdXVzZW5cIDsKK+aflOavmyA8IGp1dW1vdVwgOwor54++54q2IDwgZ2Vuam91XCA7Civpn7Ppn78gPCBvbmt5b3VcIDsKK+acqOiCjCA8IGtpaGFkYVwgOwor5bCK5aSnIDwgc29uZGFpXCA7CivohLPlpKkgPCBub3V0ZW5cIDsKK+WqmuiWrCA8IGJpeWFrdVwgOwor6aKo6Ie0IDwgZnV1Y2hpXCA7Civlr53luoogPCBuZWRva29cIDsKK+S4luilsiA8IHNlc2h1dVwgOwor6ICB57e0IDwgcm91cmVuXCA7CivkuI3oqbMgPCBmdXNob3VcIDsKK+Wun+aWvSA8IGppc3NoaVwgOwor5LiH6KydIDwgYmFuc2hhXCA7CivkuInoq5YgPCBzYW5yb25cIDsKK+S/l+WLmSA8IHpva3VtdVwgOwor6aeF5byBIDwgZWtpYmVuXCA7CivmnKznvbIgPCBob25zaG9cIDsKK+WvneW3uyA8IG5lbWFraVwgOwor5a6f5pWwIDwgamlzc3V1XCA7CivkurrnlJ8gPCBqaW5zZWlcIDsKK+WuiOagqiA8IHNodXNodVwgOwor6JWO6bqm5bGLIDwgc29iYXlhXCA7Civkuonnq68gPCBzb3V0YW5cIDsKK+S4gOitsCA8IGljaGlnaVwgOwor5Ly05pifIDwgYmFuc2VpXCA7Civpo5vnq5wgPCBoaXJ5dXVcIDsKK+agueW5uSA8IGtvbmthblwgOwor6LWk5bi9IDwgYWthYm91XCA7CivppIrnlJ8gPCB5b3Vqb3VcIDsKK+aatOi1sCA8IGJvdXNvdVwgOwor5LiK6KiIIDwgam91a2VpXCA7Civlrr/mhI8gPCBzaHVrdWlcIDsKK+WujOacrCA8IGthbnBvblwgOwor6ICz55uuIDwgamltb2t1XCA7CivkvZ7mgqogPCBuZWlha3VcIDsKK+S/r+S8jyA8IGZ1ZnVrdVwgOwor6aiZ5Y+WIDwgaGVuc2h1XCA7Civkv6/ku7AgPCBmdWd5b3VcIDsKK+S4iuimpyA8IGpvdXJhblwgOwor5LiH6KiAIDwgbWFuZ2VuXCA7Civlr77lpJYgPCB0YWlnYWlcIDsKK+S9j+aJgCA8IGp1dXNob1wgOwor6LKh55WMIDwgemFpa2FpXCA7CivpoqjogZ4gPCBmdXVidW5cIDsKK+S4iuimhiA8IHV3YW9vaVwgOwor5a655oWLIDwgeW91ZGFpXCA7CivosqHnlKMgPCB6YWlzYW5cIDsKK+mbjOaNu+WtkCA8IG1lbmVqaVwgOwor5Lih6JmOIDwgcnlvdWtvXCA7CivnjKXoq4cgPCB3YWlkYW5cIDsKK+i2iuWigyA8IGVra3lvdVwgOwor5LiK6KO9IDwgam91c2VpXCA7Civkv5flhJIgPCB6b2t1anVcIDsKK+S4iuijgSA8IGpvdXNhaVwgOwor5Lyd5p2lIDwgZGVucmFpXCA7Civlr53lsI8gPCBuZXNob3VcIDsKK+acrOe1uSA8IGhvbmtlblwgOwor6aOv55uSIDwgaGFuZ291XCA7CivkuIvooaggPCBrYWh5b3VcIDsKK+iFleWJjSA8IHVkZW1hZVwgOwor5Luu5rOKIDwga2FoYWt1XCA7CivkvZnlvrMgPCB5b3Rva3VcIDsKK+S9nuW8gSA8IG5laWJlblwgOwor5Lit6I+vIDwgY2h1dWthXCA7CivlrrPmgqogPCBnYWlha3VcIDsKK+WwgeWcsCA8IGhvdWNoaVwgOwor5a6M5pWXIDwga2FucGFpXCA7Civkv5rkv5cgPCByaXpva3VcIDsKK+Wxi+S4iiA8IG9rdWpvdVwgOwor5pyo57WEIDwga2lndW1pXCA7CivmnInog70gPCB5dXVub3VcIDsKK+WwmuWPpCA8IHNob3Vrb1wgOwor6IOM5oi7IDwgaGFpcmVpXCA7CivlrqPmiKYgPCBzZW5zZW5cIDsKK+S6lOebriA8IGdvbW9rdVwgOwor5a+T5bGFIDwgZ3V1a3lvXCA7CivlsIvllY8gPCBqaW5tb25cIDsKK+aatOirliA8IGJvdXJvblwgOwor5p2h55eVIDwgam91a29uXCA7CivkvbXlrZggPCBoZWl6b25cIDsKK+WvjOWysyA8IGZ1Z2FrdVwgOwor6IOh5byTIDwga29reXV1XCA7CivmmLzppIkgPCBoaXJ1Z2VcIDsKK+eQtOafsSA8IGtvdG9qaVwgOwor6Lao5YuiIDwgc3V1c2VpXCA7CivpoJHov7cgPCBnYW5tZWlcIDsKK+Wum+aJgCA8IGF0ZXNob1wgOwor5p+Q5p+QIDwgYm91Ym91XCA7Civosq/ngq0gPCBjaG90YW5cIDsKK+S6jOebriA8IGZ1dGFtZVwgOwor5pq06KiAIDwgYm91Z2VuXCA7Civkv4rlgYkgPCBzaHVuJydpXCA7CivlsIrlkb0gPCBzb25tZWlcIDsKK+iCpeaWmSA8IGhpcnlvdVwgOwor5a6f5oWLIDwgaml0dGFpXCA7CivmnKjnrrEgPCBraWJha29cIDsKK+aciee9qiA8IHl1dXphaVwgOwor5a2m5qChIDwgZ2Fra291XCA7CivmnKjnrqEgPCBtb2trYW5cIDsKK+eOhOexsyA8IGdlbm1haVwgOwor54+I55CyIDwga291aGlpXCA7CivpoqjntIsgPCBmdXVtb25cIDsKK+agquWxiyA8IGthYnV5YVwgOwor5bCK5ZCbIDwgc29ua3VuXCA7Civlrp/mhI8gPCBqaXRzdWlcIDsKK+S9juW7iSA8IHRlaXJlblwgOwor6aO854qsIDwga2FpaW51XCA7CivlsIrlj7cgPCBzb25nb3VcIDsKK+S7lua1gSA8IHRhcnl1dVwgOwor5pyr56uvIDwgbWF0dGFuXCA7Civkurrngb0gPCBqaW5zYWlcIDsKK+S4i+iWrCA8IGdleWFrdVwgOwor5a+G5bCBIDwgbWlwcHV1XCA7CivlsI/ljJkgPCBrb3NhamlcIDsKK+WwiuWOsyA8IHNvbmdlblwgOwor6IKJ5qGCIDwgbmlra2VpXCA7CivotbDloYEgPCBzb3VydWlcIDsKK+S8neaQrCA8IGRlbnBhblwgOwor5a+b5aSnIDwga2FuZGFpXCA7Civlj6TkuovoqJggPCBrb2ppa2lcIDsKK+acrOeovyA8IGhvbmtvdVwgOwor5a2Q5qeYIDwga29zYW1hXCA7Civlrr/lsYsgPCB5YWRveWFcIDsKK+Wvv+WRvSA8IGp1bXlvdVwgOwor55yf6Z2i55uuIDwgbWFqaW1lXCA7CivkuInolLUgPCBzYW56b3VcIDsKK+mfs+mHjyA8IG9ucnlvdVwgOwor5LmX566XIDwgam91emFuXCA7CivmoLnlpKogPCBuZWJ1dG9cIDsKK+itsOmVtyA8IGdpY2hvdVwgOwor5pu457+wIDwgc2hva2FuXCA7CivmnaXnirYgPCByYWlqb3VcIDsKK+S7j+azlSA8IGJ1cHBvdVwgOwor5a6J5omLIDwgeWFzdWRlXCA7Civlr77lj6UgPCB0c3Vpa3VcIDsKK+S4reiAsyA8IGNodXVqaVwgOwor5pys56S+IDwgaG9uc2hhXCA7CivkuIvokL0gPCBnZXJha3VcIDsKK+itpumYsiA8IGtlaWJvdVwgOwor5a+S5aScIDwga2FuJyd5YVwgOwor5a6I5oiQIDwgc2h1c2VpXCA7Civnibnpq5ggPCB0b2trb3VcIDsKK+acq+ekviA8IG1hc3NoYVwgOwor5L2X5a+dIDwgd2FiaW5lXCA7Civlrp/lvJ8gPCBqaXR0ZWlcIDsKK+eOsueTjyA8IHJlaXJvdVwgOwor6ICB55y8IDwgcm91Z2FuXCA7CivmoL3ln7kgPCBzYWliYWlcIDsKK+eJoem2jyA8IG9uZG9yaVwgOwor5bCP5YW1IDwga29oeW91XCA7CivmnIjntYwgPCBnZWtrZWlcIDsKK+iDjOW6gyA8IHNlYmlyb1wgOwor5a2j5pilIDwga2lzaHVuXCA7CivlsI/lhZAgPCBzaG91bmlcIDsKK+ixiueolCA8IGhvdW5lblwgOwor54md6beEIDwgaGlua2VpXCA7CivosaHnnLwgPCB6b3VnYW5cIDsKK+eOs+eRgSA8IHRhaW1haVwgOwor5pqX6KqmIDwgYW5zaG91XCA7CivpqJLkurogPCBzb3VqaW5cIDsKK+WtkOagqiA8IGtva2FidVwgOwor5pi86ZaTIDwgaGlydW1hXCA7CivkvY7lsaQgPCB0ZWlzb3VcIDsKK+agueWfjiA8IG5lamlyb1wgOwor5LqA55SyIDwga2lra291XCA7CivpoZXokZcgPCBrZW5jaG9cIDsKK+mokuS5sSA8IHNvdXJhblwgOwor5bCK5YWsIDwgc29ua291XCA7CivlrrXlrq4gPCB5b21peWFcIDsKK+S9j+WwgiA8IGp1dXNlblwgOwor6Z+z6YCfIDwgb25zb2t1XCA7CivkvJDmjqEgPCBiYXNzYWlcIDsKK+S+v+S5lyA8IGJpbmpvdVwgOwor5Lm+55SwIDwga2FuZGVuXCA7CivosYbnp5EgPCBtYW1la2FcIDsKK+iEseWFmiA8IGRhdHRvdVwgOwor5L2e5aemIDwgbmVpa2FuXCA7CivkvY/lrrYgPCBzdW1pa2FcIDsKK+eOsueOsiA8IHJlaXJlaVwgOwor5L625Ly0IDwgcnlvaGFuXCA7Civos5zmna8gPCBzaGloYWlcIDsKK+iyoea6kCA8IHphaWdlblwgOwor5a6J5oGvIDwgYW5zb2t1XCA7CivlsIrlg48gPCBzb256b3VcIDsKK+S4jeiJryA8IGZ1cnlvdVwgOwor5a6a5bi4IDwgdGVpam91XCA7CivnjK7ojLYgPCBrZW5jaGFcIDsKK+S4gOiPiiA8IGlra2lrdVwgOwor5a6u5a62IDwgbWl5YWtlXCA7CivpoqjnpZ4gPCBmdXVqaW5cIDsKK+WvvuWHpiA8IHRhaXNob1wgOwor5Lih576pIDwgcnlvdWdpXCA7CivkuIfoirggPCBiYW5nZWlcIDsKK+izouaYjiA8IGtlbm1laVwgOwor6LKv5rC0IDwgY2hvc3VpXCA7Civmnq/mnKggPCBrYXJla2lcIDsKK+S4gOiNmCA8IGlpY2hhblwgOwor5a+45YmNIDwgc3VuemVuXCA7Civlro/lvIEgPCBrb3ViZW5cIDsKK+WvvuWGhSA8IHRhaW5haVwgOwor6ICB55SfIDwgcm91c2VpXCA7Civnjbrnpa0gPCBkYXNzYWlcIDsKK+eLrOiqniA8IGRva3Vnb1wgOwor5LiK6Ie8IDwgdXdhdXN1XCA7CivlsI/kvZwgPCBrb3Nha3VcIDsKK+acrOeblyA8IGhvbnRvdVwgOwor6aO95rqAIDwgaG91bWFuXCA7CivpgqPnlLHku5YgPCBuYXl1dGFcIDsKK+WvuOWIhiA8IHN1bmJ1blwgOwor54us6KmxIDwgZG9rdXdhXCA7CivkuIfoiKwgPCBiYW5wYW5cIDsKK+S4iuiHiCA8IGpvdXJvdVwgOwor5pyo55uuIDwgbW9rdW1lXCA7CivlrqblrpggPCBrYW5nYW5cIDsKK+abtOe0lyA8IHNhcmFzYVwgOwor5Lq65rCXIDwgaGl0b2tlXCA7CivmnKjnmr8gPCBraXphcmFcIDsKK+S6uuawkSA8IGppbm1pblwgOwor5LiK6IWVIDwgam91d2FuXCA7CivlsIrkvZMgPCBzb250YWlcIDsKK+acqOeariA8IG1va3VoaVwgOwor5Luj5pu/IDwgZGFpdGFpXCA7Civmn5DmiYAgPCBib3VzaG9cIDsKK+WtkOaWuSA8IGtva2F0YVwgOwor5L2c5aC0IDwgc2FrdWJhXCA7CivosqfmsJEgPCBoaW5taW5cIDsKK+S7iuanmCA8IGltYXlvdVwgOwor5Lqs5rWcIDwga2VpaGluXCA7CivmnInnqI4gPCB5dXV6ZWlcIDsKK+iEseS8miA8IGRha2thaVwgOwor5LiK6IOMIDwgdXdhemVpXCA7Civlr7XlhZAgPCBjaG91amlcIDsKK+S4iuiCoiA8IGpvdXNoaVwgOwor5pm66KyAIDwgY2hpYm91XCA7CivpoZ7ogZogPCBydWlqdXVcIDsKK+acrOeVqiA8IGhvbmJhblwgOwor54m56ZyAIDwgdG9rdWp1XCA7CivosrTmp5ggPCBraXNhbWFcIDsKK+iBsOaYjiA8IHNvdW1laVwgOwor6aKo55y8IDwgZnV1Z2FuXCA7CivogIHnjaogPCByb3VrYWlcIDsKK+WutuWhviA8IGthanVrdVwgOwor6LOH5pysIDwgc2hpaG9uXCA7CivkvZzlnJ8gPCBzYWt1ZG9cIDsKK+S8muW8jyA8IGVzaGlraVwgOwor576a576KIDwgcmVpeW91XCA7CivkuInogIUgPCBzYW5zaGFcIDsKK+ixqueIvSA8IGdvdXNvdVwgOwor5L2c5ZuzIDwgc2FrdXp1XCA7CivnjKvog4wgPCBuZWtvemVcIDsKK+mjm+eBqyA8IHRvYmloaVwgOwor54mH6bGXIDwgaGVucmluXCA7Civpp4XlkI0gPCBla2ltZWlcIDsKK+S7o+aVsCA8IGRhaXN1dVwgOwor6LGQ55SwIDwgdG95b3RhXCA7Civni6zooYwgPCBkb2trb3VcIDsKK+eJm+mmrCA8IGd5dXViYVwgOwor5Li456eYIDwgbWFydWhpXCA7Civpo5vngJEgPCBoaWJha3VcIDsKK+WAtualvemDqCA8IGt1cmFidVwgOwor6aCS6KGMIDwgaGFua291XCA7CivmnbHmr44gPCB0b3VtYWlcIDsKK+iDoeWbvSA8IGtva29rdVwgOwor5qGI5YaFIDwgYW4nJ25haVwgOwor5L2V5ZueIDwgbmFua2FpXCA7CivorbfouqsgPCBnb3NoaW5cIDsKK+acqOeQtCA8IG1va2tpblwgOwor5LuP5pu4IDwgYnVzc2hvXCA7CivpoZ7nuoIgPCBydWlzYW5cIDsKK+mdkum7tCA8IGFva2FiaVwgOwor5pyo55CGIDwgbW9rdXJpXCA7CivkvpvkuI4gPCBreW91eW9cIDsKK+iukuislyA8IHphbmJvdVwgOwor5a+d5YiDIDwgbmV0YWJhXCA7CivkuIDnvr0gPCBpY2hpd2FcIDsKK+iCieaEnyA8IG5pa2thblwgOwor6LOi5omNIDwga2Vuc2FpXCA7CivlsYvmoLnlsYsgPCB5YW5leWFcIDsKK+WuieWvpyA8IGFuJyduZWlcIDsKK+S4u+egsiA8IHNodWhvdVwgOwor5a+d5YW3IDwgc2hpbmd1XCA7Civosr/mmJMgPCBib3Vla2lcIDsKK+ePvuaVsCA8IGdlbnN1dVwgOwor6Z+z6Kq/IDwgb25jaG91XCA7Civpp4XliY0gPCBla2ltYWVcIDsKK+WuiOWuriA8IHlhbW9yaVwgOwor6Z+z6KqtIDwgb25kb2t1XCA7CivmnprmlbAgPCBtYWlzdXVcIDsKK+iBoeaVjyA8IHNvdWJpblwgOwor6LKn5qOSIDwgYmluYm91XCA7CivmnIjnm7ggPCBnZXNzb3VcIDsKK+mdkum3uiA8IGFvc2FnaVwgOwor5a2m5b6SIDwgZ2FrdXRvXCA7CivmnInnm4ogPCB5dXVla2lcIDsKK+S7iuaZqSA8IGtvbmJhblwgOwor5a+S5YmkIDwga2FuemFpXCA7Civos6Lmha4gPCBrZW5yeW9cIDsKK+S4i+e1tSA8IHNoaXRhZVwgOwor6K6S6KiAIDwgemFuZ2VuXCA7CivotablhY0gPCBzaGFtZW5cIDsKK+S6iOa4rCA8IHlvc29rdVwgOwor6aKo55C0IDwgZnV1a2luXCA7CivkuInntYQgPCBtaWt1bWlcIDsKK+S4iee1gyA8IHNhbmdlblwgOwor5LiK57SNIDwgam91bm91XCA7CivnjovniakgPCBvdW1vbm9cIDsKK+S4gOe4tyA8IGljaGlydVwgOwor5LqM5rWBIDwgbmlyeXV1XCA7CivmtbfogIHojLYgPCBlYmljaGFcIDsKK+iBluaWrSA8IHNlaWRhblwgOwor5L2p5YmjIDwgaGFpa2VuXCA7CivkurrmnZAgPCBqaW56YWlcIDsKK+acqueGnyA8IG1panVrdVwgOwor5LiK57GzIDwgam91bWFpXCA7CivkuK3noLQgPCBjaHV1aGFcIDsKK+S6uuacmyA8IGppbmJvdVwgOwor5a+h5L2cIDwga2FzYWt1XCA7CivkuK3noKUgPCBuYWthdG9cIDsKK+mir+eIvSA8IHNhc3NvdVwgOwor5a6f5ZywIDwgaml0Y2hpXCA7Civog4zlmqIgPCBoYWlub3VcIDsKK+izpuW9uSA8IGJ1eWFrdVwgOwor5pyJ55SoIDwgeXV1eW91XCA7CivmnInnlKMgPCB5dXVzYW5cIDsKK+aciOeUoyA8IGdlc3NhblwgOwor5LyP5bGLIDwgZnVzZXlhXCA7CivpmL/lqr3muK8gPCBhbWFrb3VcIDsKK+adkeawkSA8IHNvbm1pblwgOwor55CD5oqAIDwga3l1dWdpXCA7CivmnprmjJkgPCBtYWlreW9cIDsKK+aXpemggyA8IGhpZ29yb1wgOwor5LiL562WIDwgZ2VzYWt1XCA7CivpnZLprqsgPCBhb3phbWVcIDsKK+Wtl+W8lSA8IGppYmlraVwgOwor5L2O5ZCfIDwgdGVpZ2luXCA7CivkvZXljYMgPCBuYW56ZW5cIDsKK+S9leWNgSA8IG5hbmp1dVwgOwor6aas5YqbIDwgYmFyaWtpXCA7CivlrZjlu4MgPCB6b25wYWlcIDsKK+ejgeaWueS9jSA8IGppaG91aVwgOwor5LiJ562JIDwgc2FudG91XCA7CivkuIDnsYwgPCBpdGNodXVcIDsKK+WtkOW9uSA8IGtveWFrdVwgOwor5LyP5a2XIDwgZnVzZWppXCA7CivogJDmsLQgPCB0YWlzdWlcIDsKK+S4iuerryA8IGpvdXRhblwgOwor6aeE5L2cIDwgZGFzYWt1XCA7CivkuLnnlLAgPCB0YW5kZW5cIDsKK+mnheS8nSA8IGVraWRlblwgOwor5a2X5bmVIDwgamltYWt1XCA7CivkuIfnq68gPCBiYW50YW5cIDsKK+S4iuepuiA8IGpvdWt1dVwgOwor542w54ybIDwgbmVpbW91XCA7CivniYfpm7IgPCBoZW4nJ3VuXCA7Civni6zoi7EgPCBkb2t1ZWlcIDsKK+aXpembgCA8IGhpZ2FyYVwgOwor6aGM57C9IDwgZGFpc2VuXCA7Civlr4blgbUgPCBtaXR0ZWlcIDsKK+mgu+e5gSA8IGhpbnBhblwgOwor5LiA562WIDwgaXNzYWt1XCA7CivkvZXliIYgPCBuYW5wdW5cIDsKK+eJvemAoyA8IGtlbnJlblwgOwor5a2r5a2QIDwgbWFnb2tvXCA7CivkuInnqK4gPCBzYW5zaHVcIDsKK+S4iueoiyA8IGpvdXRlaVwgOwor5pel6ZmwIDwgaGlrYWdlXCA7CivppqzlhYsgPCBtYXJ1a3VcIDsKK+WumOWWtiA8IGthbicnZWlcIDsKK+e+veeUsCA8IGhhbmVkYVwgOwor5LiA56yRIDwgaXNzaG91XCA7CivpnaLpoKwgPCBtZW5wb29cIDsKK+aXpemZkCA8IGhpZ2lyaVwgOwor5Lih55uuIDwgcnlvdW1lXCA7CivmnKzmupAgPCBob25nZW5cIDsKK+iCieWxiyA8IG5pa3V5YVwgOwor5aem6KiIIDwga2Fua2VpXCA7CivpnZnppIogPCBzZWl5b3VcIDsKK+iyoeaUvyA8IHphaXNlaVwgOwor5a2k5a6iIDwga29rYWt1XCA7Civku6TlvJ8gPCByZWl0ZWlcIDsKK+agquS+oSA8IGthYnVrYVwgOwor5Lit55SfIDwgbmFrYXRlXCA7Civni6zoh6ogPCBkb2t1amlcIDsKK+S7o+W8gSA8IGRhaWJlblwgOwor5a+G5L2/IDwgbWlzc2hpXCA7CivlrrblhYMgPCBpZW1vdG9cIDsKK+eJp+mHjiA8IGJva3V5YVwgOwor6Z2i6Z2iIDwgbWVubWVuXCA7Civkuovmpa0gPCBqaWd5b3VcIDsKK+S4geeomiA8IGRldGNoaVwgOwor5p2l5pu4IDwgcmFpc2hvXCA7Civml6XplbcgPCBoaW5hZ2FcIDsKK+S6lOahgSA8IGdva2V0YVwgOwor5Lya5aCCIDwga2FpZG91XCA7Civlr4bkvJogPCBtaWtrYWlcIDsKK+iziuW+kiA8IHpva3V0b1wgOwor54yr56eRIDwgbmVrb2thXCA7Civml4XppKggPCByeW9rYW5cIDsKK+S7u+WumCA8IG5pbmthblwgOwor5a2f5a2QIDwgbW91c2hpXCA7CivnvqTnm7IgPCBndW5tb3VcIDsKK+aYj+i/tyA8IGtvbm1laVwgOwor5Lmz5q+NIDwgbnl1dWJvXCA7Civku5blv4MgPCB0YXNoaW5cIDsKK+S9j+WDpyA8IGp1dXNvdVwgOwor5LiA56WoIDwgaXBweW91XCA7CivpjZvlhrblsYsgPCBrYWppeWFcIDsKK+afu+WPjiA8IHNhc2h1dVwgOwor5LqM5qC4IDwgbmlrYWt1XCA7Civlrp/li6IgPCBqaXNzZWlcIDsKK+S7ruWxiyA8IGthcml5YVwgOwor5L2e5Lq6IDwgbmVpamluXCA7CivmnKvms5UgPCBtYXBwb3VcIDsKK+adpeaWuSA8IGtpa2F0YVwgOwor6aOy5paZIDwgaW5yeW91XCA7CivlrpjljbAgPCBrYW4nJ2luXCA7CivkurrmiYsgPCBoaXRvZGVcIDsKK+abuOeKtiA8IHNob2pvdVwgOwor5Luu5a+dIDwga2FyaW5lXCA7CivlrZTlrZ8gPCBrb3Vtb3VcIDsKK+S7ruWutiA8IGthcmlpZVwgOwor5LuB5oSbIDwgamluJydhaVwgOwor5aSn6bqmIDwgb29tdWdpXCA7Civni63nvqkgPCBreW91Z2lcIDsKK+isnemHkSA8IHNoYWtpblwgOwor5a2Q5a6IIDwga29tb3JpXCA7Civlrr/kuJYgPCBzdWt1c2VcIDsKK+WlrumXmCA8IGZ1bnRvdVwgOwor5a6X5YuZIDwgc2h1dW11XCA7CivlqZrnpLwgPCBrb25yZWlcIDsKK+acrOauvyA8IGhvbmRlblwgOwor54yb56a9IDwgbW91a2luXCA7Civku4HmgbUgPCBqaW5rZWlcIDsKK+S6lOaXpSA8IGl0c3VrYVwgOwor5pm66IO9IDwgY2hpbm91XCA7CivkuIDnnqwgPCBpc3NodW5cIDsKK+miqOa0niA8IGZ1dWRvdVwgOwor5pas6aaWIDwgemFuc2h1XCA7Civml6Xpiq0gPCBoaXplbmlcIDsKK+acrOashCA8IGhvbnJhblwgOwor5LuP5birIDwgYnVzc2hpXCA7CivlrrbkuKYgPCB5YW5hbWlcIDsKK+ixiuawtCA8IGhvdXN1aVwgOwor5LiB55uuIDwgY2hvdW1lXCA7Civku6TlrasgPCByZWlzb25cIDsKK+S7j+W3pSA8IGJ1a2tvdVwgOwor5aGp5Z+65bqmIDwgZW5raWRvXCA7CivogonloYogPCBuaWtrYWlcIDsKK+aarueniyA8IGJvc2h1dVwgOwor5pm66ICFIDwgY2hpc2hhXCA7CivmlrnpnaIgPCBob3VtZW5cIDsKK+WtmOWkliA8IHpvbmdhaVwgOwor576O55qEIDwgYml0ZWtpXCA7CivkvLblhKogPCByZWl5dXVcIDsKK+efoue+veaguSA8IHlhYmFuZVwgOwor5LmX5rCXIDwgbm9yaWtpXCA7CivkuIrnlaogPCBqb3ViYW5cIDsKK+miqOawtCA8IGZ1dXN1aVwgOwor5LuY5bGeIDwgZnV6b2t1XCA7CivkuInnlaogPCBzYW5iYW5cIDsKK+WtpuWckiA8IGdha3VlblwgOwor6KyZ6YGcIDwga2Vuc29uXCA7CivkuIrnlLAgPCBqb3VkZW5cIDsKK+WknOm3uSA8IHlvdGFrYVwgOwor6LSI5ZGIIDwgem91dGVpXCA7Civoq5bpoYwgPCByb25kYWlcIDsKK+S8muWQiCA8IGthaWdvdVwgOwor55CG5a2mIDwgcmlnYWt1XCA7Civml6fpg70gPCBreXV1dG9cIDsKK+i0iOWPtyA8IHpvdWdvdVwgOwor5Lit54GrIDwgY2h1dWJpXCA7CivkvJ3ljZggPCBkZW50YW5cIDsKK+Wuo+S8nSA8IHNlbmRlblwgOwor6LSL5Y2wIDwgbmlzZWluXCA7Civog4zku7sgPCBoYWluaW5cIDsKK+e/u+ahiCA8IGhvbicnYW5cIDsKK+eOi+anmCA8IG91c2FtYVwgOwor5Lu75ZywIDwgbmluY2hpXCA7CivkuIDnlosgPCBpcHBpa2lcIDsKK+iAgeadpSA8IHJvdXJhaVwgOwor5LuW5a6XIDwgdGFzaHV1XCA7CivogIHmnYkgPCByb3VzYW5cIDsKK+WujOWFqCA8IGthbnplblwgOwor5pat6Z2iIDwgZGFubWVuXCA7Civku6TlprkgPCByZWltYWlcIDsKK+WknOmzpSA8IHlhY2hvdVwgOwor54yb55yBIDwgbW91c2VpXCA7Civmn5TlkowgPCBueXV1d2FcIDsKK+WumuS+iyA8IHRlaXJlaVwgOwor54++5a2YIDwgZ2Vuem9uXCA7CivkubHmna0gPCByYW5ndWlcIDsKK+S8tOS+tiA8IGhhbnJ5b1wgOwor5a6a5L2PIDwgdGVpanV1XCA7CivlrojlhbUgPCBzaHVoZWlcIDsKK+iDjOS4rSA8IHNlbmFrYVwgOwor54m56KixIDwgdG9ra3lvXCA7CivlrZjlnKggPCBzb256YWlcIDsKK+iDjOS4iCA8IHNldGFrZVwgOwor54m56KiTIDwgdG9ra3VuXCA7CivniIbpn7MgPCBiYWt1b25cIDsKK+S4i+eNhCA8IGdlZ29rdVwgOwor5LuK5bCaIDwgaW1hbmFvXCA7Civkurrlt6UgPCBqaW5rb3VcIDsKK+S5seaatCA8IHJhbmJvdVwgOwor5pyb5qiTIDwgYm91cm91XCA7CivkuInnjL8gPCBtaXphcnVcIDsKK+irlumZoyA8IHJvbmppblwgOwor5Ly25Lq6IDwgcmVpamluXCA7CivorLnoqIAgPCBraW5nZW5cIDsKK+acseabuCA8IHNodXNob1wgOwor6aSo5aiDIDwga2FuJydhaVwgOwor54mH6LyqIDwga2F0YXdhXCA7CivlronlgKQgPCB5YXN1bmVcIDsKK+acrOadpSA8IGhvbnJhaVwgOwor5piO6KiAIDwgbWVpZ2VuXCA7Civnv7DmnpcgPCBrYW5yaW5cIDsKK+S7pOWggiA8IHJlaWRvdVwgOwor5LiH54q2IDwgYmFuam91XCA7CivlrpfkuLsgPCBzb3VzaHVcIDsKK+mciumtgiA8IHJlaWtvblwgOwor5pys5pyoIDwgbW90b2tpXCA7CivmnKzmnJsgPCBob25tb3VcIDsKK+e9ueeXhSA8IHJpYnlvdVwgOwor6aGY54q2IDwgZ2Fuam91XCA7CivmnKvmnKsgPCBzdWV6dWVcIDsKK+eZvuWQiOaguSA8IHl1cmluZVwgOwor5a2Q5ZqiIDwgc2hpbm91XCA7CivkuozmiYsgPCBmdXRhdGVcIDsKK+S5seaVsCA8IHJhbnN1dVwgOwor5pil6JqVIDwgaGFydWdvXCA7CivmnKjmnKsgPCBrb251cmVcIDsKK+iCjOWQiCA8IGhhZGFhaVwgOwor546L5pydIDwgb3VjaG91XCA7Civpm7fps7QgPCByYWltZWlcIDsKK+S7u+WRvSA8IG5pbm1laVwgOwor5LuA5a6dIDwganV1aG91XCA7CivkurrlsYsgPCBoaXRveWFcIDsKK+acpuacpyA8IG1vdXJvdVwgOwor5pym5pymIDwgbW91bW91XCA7CivkuK3mtLIgPCBuYWthc3VcIDsKK+izm+WYhiA8IHNhbnRhblwgOwor5pel6LazIDwgaGlhc2hpXCA7Civmlpzpmb0gPCBzaGF5b3VcIDsKK+Wkp+miqCA8IG9va2F6ZVwgOwor5aWq6YKEIDwgZGFra2FuXCA7Civpn7Pnt6AgPCBuZWppbWVcIDsKK+WkqemhlCA8IHRlbmdhblwgOwor54mp6KaLIDwgbW9ub21pXCA7CivpmL/nvoXmvKIgPCBhcmFrYW5cIDsKK+WtpuWLmSA8IGdha3VtdVwgOwor5pu/5q2MIDwga2FldXRhXCA7CivlrZjlkb0gPCB6b25tZWlcIDsKK+Wlrui/hSA8IGZ1bmppblwgOwor6LOt5Y2aIDwgdG9iYWt1XCA7CivmnYnmiLggPCBzdWdpZG9cIDsKK+iyp+WvkiA8IGhpbmthblwgOwor5pyJ5qeYIDwgYXJpeW91XCA7CivmnKzmlocgPCBob25tb25cIDsKK+adpeW6lyA8IHJhaXRlblwgOwor5pys5pWwIDwgaG9uc3V1XCA7Civmlqfpkb8gPCBmdXNha3VcIDsKK+adpeW5tCA8IHJhaW5lblwgOwor5paH6aGMIDwgYnVuZGFpXCA7Civnjovml48gPCBvdXpva3VcIDsKK+S6lOW+syA8IGdvdG9rdVwgOwor5LiH54K5IDwgbWFudGVuXCA7Civku4rlpJwgPCBrb24nJ3lhXCA7CivkuK3msJcgPCBjaHV1a2lcIDsKK+S8neS7pCA8IGRlbnJlaVwgOwor5LuP5aGUIDwgYnV0dG91XCA7CivpnJzpm7AgPCBzb3VmdW5cIDsKK+mgreeXmyA8IHp1dHN1dVwgOwor5Li75qipIDwgc2h1a2VuXCA7Civpm7fprZogPCByYWlneW9cIDsKK+S4h+eBryA8IG1hbmRvdVwgOwor6LKh5a6dIDwgemFpaG91XCA7CivlpJzpoqggPCB5b2themVcIDsKK+iyquWpqiA8IGRvbnJhblwgOwor5LyQ5YCSIDwgYmF0dG91XCA7Civph47ot6/lrZAgPCBub2ppa29cIDsKK+ePvuWcsCA8IGdlbmNoaVwgOwor54yb54qsIDwgbW91a2VuXCA7CivlpKnpm7cgPCB0ZW5yYWlcIDsKK+acneaZqSA8IGFzYWJhblwgOwor5LuW5Zu9IDwgdGFrb2t1XCA7Civku67lkI0gPCBrZW15b3VcIDsKK+miqOaZryA8IGZ1dWtlaVwgOwor6KuW6YuSIDwgcm9ucG91XCA7CivmlofpnaIgPCBidW5tZW5cIDsKK+S8juWAhiA8IGdpcnlvdVwgOwor6aSD5a2QIDwgZ3lvdXphXCA7CivlrablhYQgPCBnYWtrZWlcIDsKK+eKr+e9qiA8IGhhbnphaVwgOwor5aSn6ZujIDwgdGFpbmFuXCA7CivkuK3mrKcgPCBjaHV1b3VcIDsKK+S8neS4liA8IGRlbnNlaVwgOwor5aSa6aGNIDwgdGFnYWt1XCA7CivlpKnpmbogPCB0ZW5rZW5cIDsKK+S8muS4uyA8IGthaXNodVwgOwor5p2x5a6uIDwgdG91Z3V1XCA7CivogZbln58gPCBzZWlpa2lcIDsKK+S7o+WTgSA8IGRhaWhpblwgOwor6aCT55+lIDwgdG9uY2hpXCA7CivlpJXpoZQgPCB5dXVnYW9cIDsKK+S5seaIpiA8IHJhbnNlblwgOwor6ICD5oWuIDwga291cnlvXCA7Civku4vlnKggPCBrYWl6YWlcIDsKK+aVtOmiqCA8IHNlaWZ1dVwgOwor5Lu75YWNIDwgbmlubWVuXCA7CivlrZjliIYgPCB6b25idW5cIDsKK+S7pOWQjSA8IHJlaW1laVwgOwor6aOy5bGLIDwgbm9taXlhXCA7CivkurrlpJYgPCBuaW5nYWlcIDsKK+aWp+mJniA8IGZ1ZXRzdVwgOwor5aSc6ZynIDwgeW9naXJpXCA7CivnjJvnhLYgPCBtb3V6ZW5cIDsKK+S6uuWjqyA8IGppbnNoaVwgOwor6Z2i6LKMIDwgbWVuYm91XCA7Civosqnlo7IgPCBoYW5iYWlcIDsKK+S4u+aguSA8IHNodWtvblwgOwor5aSn6ZaiIDwgb296ZWtpXCA7Civml6foqaAgPCBreXV1ZWlcIDsKK+S7iuWbniA8IGtvbmthaVwgOwor5pel6KqMIDwgbmlzc2hpXCA7Civml6noqIggPCBzb3VrZWlcIDsKK+S7o+WPgiA8IGRhaXNhblwgOwor5aSn6ZaAIDwgZGFpbW9uXCA7CivmnKzmi6AgPCBob25reW9cIDsKK+acieacmyA8IHl1dWJvdVwgOwor5pW06aCTIDwgc2VpdG9uXCA7Civml6foqJggPCBreXV1a2lcIDsKK+WmhOiogCA8IG1vdWdlblwgOwor5peF6LevIDwgdGFiaWppXCA7Civosarlv6sgPCBnb3VrYWlcIDsKK+aXqeimiyA8IGhheWFtaVwgOwor6Zu76aGVIDwgZGVua2VuXCA7CivlpJbpm7sgPCBnYWlkZW5cIDsKK+adv+WhgCA8IGl0YWJlaVwgOwor54mH6KiAIDwgaGVuZ2VuXCA7CivnvarnirYgPCB6YWlqb3VcIDsKK+eOqeW8hCA8IGdhbnJvdVwgOwor5aWJ6YG3IDwgaG91c2VuXCA7CivmnKzmh5AgPCBob25rYWlcIDsKK+S4ueacsSA8IHRhbnNodVwgOwor5Li45pyoIDwgbWFydWtpXCA7CivlrabkuosgPCBnYWt1amlcIDsKK+aciOaXpiA8IGdldHRhblwgOwor5aSc6ZW3IDwgeW9uYWdhXCA7CivpnaLoq4cgPCBtZW5kYW5cIDsKK+Wliei/jiA8IGhvdWdlaVwgOwor5pyJ5pWwIDwgeXV1c3V1XCA7CivlqpLmn5MgPCBiYWlzZW5cIDsKK+e5gemWkSA8IGhhbmthblwgOwor5Luy5YCkIDwgbmFrYW5lXCA7CivkuIrmsLQgPCBqb3VzdWlcIDsKK+iqmOmbuyA8IHl1dWRlblwgOwor5pm0552AIDwgaGFyZWdpXCA7CivnvbDngrkgPCBiYXR0ZW5cIDsKK+Wkp+mOjCA8IG9vZ2FtYVwgOwor5Lqh5aa7IDwgYm91c2FpXCA7CivpnZLosYYgPCBhb21hbWVcIDsKK+iyp+WbsCA8IGhpbmtvblwgOwor5Luy5L+dIDwgY2h1dWhvXCA7Civnj43lpYcgPCBjaGlua2lcIDsKK+Wkp+mNiyA8IG9vbmFiZVwgOwor5pyA5pepIDwgbW9oYXlhXCA7CivkuIfmsJEgPCBiYW5taW5cIDsKK+S5l+aJiyA8IG5vcml0ZVwgOwor5LuP5Y+CIDwgYnVzc2FuXCA7CivkuIDms4ogPCBpcHBha3VcIDsKK+S4u+aWhyA8IHNodWJ1blwgOwor54++5YuiIDwgZ2Vuc2VpXCA7CivogIHlubwgPCByb3V5b3VcIDsKK+iAgeW5tCA8IHJvdW5lblwgOwor5LiJ5q27IDwgc2Fuc2hpXCA7Civku5blipsgPCB0YXJpa2lcIDsKK+acrOaApyA8IGhvbnNlaVwgOwor57+75byEIDwgaG9ucm91XCA7CivosqHlm6MgPCB6YWlkYW5cIDsKK+iqjOmdoiA8IHNoaW1lblwgOwor5LiH5q27IDwgYmFuc2hpXCA7CivkuIfmrbMgPCBtYW56YWlcIDsKK+WtkOS+myA8IGtvZG9tb1wgOwor5a2Y5LqhIDwgc29uYm91XCA7CivkuozlrZAgPCBmdXRhZ29cIDsKK+Wcn+S4i+W6pyA8IGRvZ2V6YVwgOwor6aCG55WqIDwganVuYmFuXCA7Civpm7Lpm4YgPCB1bnNodXVcIDsKK+mbsumbgCA8IGhpYmFyaVwgOwor54++5YmNIDwgZ2VuemVuXCA7Civku4vljbUgPCBrYWlyYW5cIDsKK+Wkp+mJiCA8IG9vbmF0YVwgOwor6Zuj6aGMIDwgbmFuZGFpXCA7CivmnKzlvbEgPCBob24nJ2VpXCA7CivkuKbmnKggPCBuYW1pa2lcIDsKK+aWnOi+uiA8IHNoYWhlblwgOwor6LOi5Li7IDwga2Vuc2h1XCA7Civmm7jmlo4gPCBzaG9zYWlcIDsKK+e+iuavmyA8IHlvdW1vdVwgOwor5aSn6YeRIDwgdGFpa2luXCA7Civku4HlkJsgPCBqaW5rdW5cIDsKK+S4jeanmCA8IGJ1emFtYVwgOwor5Lq65ZOhIDwgamluJydpblwgOwor5Lit5pelIDwgbmFrYWJpXCA7CivmnKvlvJ8gPCBtYXR0ZWlcIDsKK+S6uuWTgSA8IGppbnBpblwgOwor5LiJ5qipIDwgc2Fua2VuXCA7CivkuIDmrKEgPCBpY2hpamlcIDsKK+eGsemiqCA8IG5lcHB1dVwgOwor5LiK5qeYIDwgdWV6YW1hXCA7CivlpKfphZIgPCBvb3pha2VcIDsKK+S6uuWRvSA8IGppbm1laVwgOwor57im6ZmjIDwganV1amluXCA7Civlq4HlvqEgPCB5b21lZ29cIDsKK+iznuS4jiA8IHNob3V5b1wgOwor5pys5bqXIDwgaG9udGVuXCA7Civpm7LplpMgPCBrdW1vbWFcIDsKK+Wni+e1giA8IHNoaWp1dVwgOwor6KuW6LObIDwgcm9uc2FuXCA7Civku4/lhbggPCBidXR0ZW5cIDsKK+S4iealrSA8IHNhbmdvdVwgOwor5Luj5Lu7IDwgZGFpbmluXCA7CivnvqjmnJsgPCBzZW5ib3VcIDsKK+ippumokyA8IHNoaWtlblwgOwor5LiW5p+EIDwgeW9nYXJhXCA7Civoqp7pjLIgPCBnb3Jva3VcIDsKK+WkqemBkyA8IHRlbmRvdVwgOwor5Lq65Y+CIDwgbmluamluXCA7CivlpKnpgYsgPCB0ZW4nJ3VuXCA7CivkuIDmqLkgPCBpY2hpanVcIDsKK+S7iuWGrCA8IGtvbnRvdVwgOwor5aSn6YGTIDwgZGFpZG91XCA7CivmhbDlronogIUgPCBpYW5zaGFcIDsKK+mboumalCA8IHJpa2FrdVwgOwor5pq05rCRIDwgYm91bWluXCA7Civpm6LpmbggPCByaXJpa3VcIDsKK+iAgeWusyA8IHJvdWdhaVwgOwor5paH6YG4IDwgYnVuc2VuXCA7CivmnKjlt6UgPCBtb2trb3VcIDsKK+S5seWwhCA8IHJhbnNoYVwgOwor5aSp6L66IDwgdGVwcGVuXCA7Civosqzli5kgPCBzZWtpbXVcIDsKK+aWh+mBiyA8IGJ1bicndW5cIDsKK+aXheijhSA8IHJ5b3NvdVwgOwor5pa56KiAIDwgaG91Z2VuXCA7CivkuInmoYEgPCBtaWtldGFcIDsKK+iAgeWsoiA8IHJvdWpvdVwgOwor6IGW5YOPIDwgc2Vpem91XCA7Civml4XooYwgPCByeW9rb3VcIDsKK+mbo+mWoiA8IG5hbmthblwgOwor5paw6KqeIDwgc2hpbmdvXCA7CivlpKfovKogPCB0YWlyaW5cIDsKK+acrOWxsSA8IGhvbnphblwgOwor5aSp6LuNIDwgdGVuZ3VuXCA7CivkuInmnpogPCBzYW5tYWlcIDsKK+adv+WJjSA8IGl0YW1hZVwgOwor54++5LujIDwgZ2VuZGFpXCA7CivpoLvmrbsgPCBoaW5zaGlcIDsKK+acrOWxiyA8IGhvbicneWFcIDsKK+S4ieadvyA8IHNhbnBhblwgOwor6aGe5pysIDwgcnVpaG9uXCA7Civlo7DploAgPCBzZWltb25cIDsKK+ePvuS7iiA8IGdlbmtvblwgOwor5Lqr5Y+XIDwga3lvdWp1XCA7CivpoqjluKsgPCBmdXVzaGlcIDsKK+mhnuabuCA8IHJ1aXNob1wgOwor5pys5bCKIDwgaG9uem9uXCA7CivkuIrmnJ8gPCBrYW1pa2lcIDsKK+eGsemXmCA8IG5ldHRvdVwgOwor54+N5ZGzIDwgY2hpbm1pXCA7Civmm7jmiL8gPCBzaG9ib3VcIDsKK+S4gOahiCA8IGljaGlhblwgOwor5LiJ5pysIDwgc2FuYm9uXCA7CivppIrliIYgPCB5b3VidW5cIDsKK+ixquWloiA8IGdvdXNoYVwgOwor5pS56aGMIDwga2FpZGFpXCA7CivkuIrmm7ggPCBqb3VzaG9cIDsKK+acqOWxkSA8IGtpa3V6dVwgOwor5LuP5LyaIDwgYnV0c3VlXCA7CivkuqHlkb0gPCBib3VtZWlcIDsKK+aWreiogCA8IGRhbmdlblwgOwor5aSW6YGKIDwgZ2FpeXV1XCA7CivnjonlsYsgPCB0YW1heWFcIDsKK+S7leS4iiA8IHNoaWFnZVwgOwor6aGY5pybIDwgZ2FubW91XCA7CivniKzomasgPCBoYWNodXVcIDsKK+eMruacrCA8IGtlbnBvblwgOwor5pyA5oKqIDwgc2FpYWt1XCA7Civni6zmvJQgPCBkb2t1ZW5cIDsKK+mhmOabuCA8IGdhbnNob1wgOwor5pyr5a2rIDwgbWFzc29uXCA7CivmmpfmtYEgPCBhbnJ5dXVcIDsKK+acq+WtkCA8IG1hc3NoaVwgOwor57+g5bWQIDwgc3VpcmFuXCA7Civpo5/lmaggPCBzaG9ra2lcIDsKK+Wkp+i2syA8IG9vYXNoaVwgOwor5Lqh5Y+LIDwgYm91eXV1XCA7Civku4rku4ogPCBpbWFpbWFcIDsKK+S7iuS6uiA8IGtvbmppblwgOwor6IGW5Lq6IDwgc2VpamluXCA7CivnjaPmgKcgPCBqdXVzZWlcIDsKK+mbsumHjyA8IHVucnlvdVwgOwor5LiK5pesIDwgam91anVuXCA7CivkuIDmnJ0gPCBpdGNob3VcIDsKK+Wkoui3ryA8IHl1bWVqaVwgOwor5LiA5pyNIDwgaXBwdWt1XCA7Civoq4foq5YgPCBkYW5yb25cIDsKK+S4oeaLsyA8IGphbmtlblwgOwor6aOv5Y+wIDwgaGFuZGFpXCA7Civml6XoiKogPCBuaWtrb3VcIDsKK+e9t+alrSA8IGhpZ3lvdVwgOwor5Lq65YGPIDwgbmluYmVuXCA7CivlpJbovKogPCBnYWlyaW5cIDsKK+WkqeiznCA8IHRlbnNoaVwgOwor5LiJ5pa5IDwgc2FucG91XCA7CivpnZLol40gPCBzZWlyYW5cIDsKK+mfsueJqSA8IGFlbW9ub1wgOwor5Li75b6TIDwgc2h1anV1XCA7Civmlq3oo4EgPCBkYW5zYWlcIDsKK+S6uuWAqyA8IGppbnJpblwgOwor6KuL6KiTIDwgc2Vpa3VuXCA7CivnjKXmnKwgPCB3YWlob25cIDsKK+S5vuWdpCA8IGtlbmtvblwgOwor5Lmx5aOyIDwgcmFuYmFpXCA7CivlpInpgbcgPCBoZW5zZW5cIDsKK+mhjOadkCA8IGRhaXphaVwgOwor5aSW6LuKIDwgZ2Fpc2hhXCA7CivkuKHmiYsgPCByeW91dGVcIDsKK+S4g+aXpSA8IG5hbm9rYVwgOwor5aSJ6YCgIDwgaGVuem91XCA7CivpoZjmlocgPCBnYW5tb25cIDsKK+WlieihjCA8IGJ1Z3lvdVwgOwor5LuB5Lq6IDwgamluamluXCA7CivmnKzlprsgPCBob25zYWlcIDsKK+miqOWusyA8IGZ1dWdhaVwgOwor5auJ5aasIDwgc2hpdHRvXCA7CivorJ3nvaogPCBzaGF6YWlcIDsKK+S6uuS9kyA8IG5pbnRlaVwgOwor5paH6LGqIDwgYnVuZ291XCA7Civmlr3olqwgPCBzZXlha3VcIDsKK+aWnOimliA8IHNoYXNoaVwgOwor5pWw6LuSIDwgc3V1a2VuXCA7Civnvarmpa0gPCB6YWlnb3VcIDsKK+mbu+i7iiA8IGRlbnNoYVwgOwor6aGe5o6oIDwgcnVpc3VpXCA7CivlpInou6IgPCBoZW50ZW5cIDsKK+S4gOaTsiA8IGl0dGVraVwgOwor54yb5pqRIDwgbW91c2hvXCA7Civoq7joirggPCBzaG9nZWlcIDsKK+S6iOWRiiA8IHlva29rdVwgOwor5pu45bqXIDwgc2hvdGVuXCA7CivmnKzloYEgPCBob25ydWlcIDsKK+eHu+ijvSA8IGt1bnNlaVwgOwor6Zui6YO3IDwgcmlreW91XCA7CivntbXml6XoqJggPCBlbmlra2lcIDsKK+mdkuiNiSA8IGFva3VzYVwgOwor5aSW6LKMIDwgZ2FpYm91XCA7CivkuK3luqcgPCBjaHV1emFcIDsKK+e9sOadryA8IGJhcHBhaVwgOwor6aC45pyoIDwga3ViaWtpXCA7CivkuZnlpJwgPCBvdHN1eWFcIDsKK+mgk+atuyA8IHRvbnNoaVwgOwor5pil552AIDwgaGFydWdpXCA7Civnt6jpmoogPCBoZW50YWlcIDsKK+iqreiqpiA8IGRva3VqdVwgOwor5Lqs5Lq6IDwga2VpamluXCA7CivnjJvmlLsgPCBtb3Vrb3VcIDsKK+S6jOWJsiA8IG5pd2FyaVwgOwor5pyo5Z6LIDwga2lnYXRhXCA7CivmnJvlpJYgPCBib3VnYWlcIDsKK+aaruaYpSA8IGJvc2h1blwgOwor5Li75bCOIDwgc2h1ZG91XCA7CivlqK/mpb0gPCBnb3Jha3VcIDsKK+mZgOe+heWwvCA8IGRhcmFuaVwgOwor5pq05pS/IDwgYm91c2VpXCA7CivoqqTorKwgPCBnb2J5dXVcIDsKK+S6gOWNnCA8IGtpYm9rdVwgOwor6Kqt6KejIDwgZG9ra2FpXCA7CivkuLvlrrAgPCBzaHVzYWlcIDsKK+eOi+WbvSA8IG91a29rdVwgOwor5aSa6KqtIDwgdGFkb2t1XCA7CivkuZfloLQgPCBub3JpYmFcIDsKK+WkouimiyA8IHl1bWVtaVwgOwor5Lih5bqmIDwgcnlvdWRvXCA7CivpoLvmlbAgPCBoaW5zdXVcIDsKK+iqpOiqrSA8IGdvZG9rdVwgOwor5pmm5riLIDwga2FpanV1XCA7CivkuI3mg5EgPCBmdXdha3VcIDsKK+aVl+i7jSA8IGhhaWd1blwgOwor5p2l5LyaIDwgcmFpa2FpXCA7CivkuIDmiYsgPCBoaXRvdGVcIDsKK+e+heaWueS9jSA8IHJhaG91aVwgOwor5p2l5Lu7IDwgcmFpbmluXCA7Civmm77lrasgPCBoaW1hZ29cIDsKK+iqpOiosyA8IGdveWFrdVwgOwor5pyX5aCxIDwgcm91aG91XCA7CivlpJrop5IgPCB0YWtha3VcIDsKK+S4h+aEnyA8IGJhbmthblwgOwor5aWI6JC9IDwgbmFyYWt1XCA7CivlpJzopbIgPCB5YXNodXVcIDsKK+eKoOeJmyA8IGdpZ3l1dVwgOwor5pil55S7IDwgc2h1bmdhXCA7CivmnaHku7YgPCBqb3VrZW5cIDsKK+aVo+iyoSA8IHNhbnphaVwgOwor6ZqP6aCGIDwgenVpanVuXCA7CivmnaXkuJYgPCByYWlzZWlcIDsKK+e4puiyqyA8IGp1dWthblwgOwor5LiN5b6zIDwgZnV0b2t1XCA7Civnt5Hpm6ggPCByeW9rdXVcIDsKK+WkluimiyA8IHNvdG9taVwgOwor5piP552hIDwga29uc3VpXCA7CivoqanpgbggPCBzaGlzZW5cIDsKK+mdoue5iyA8IG9tb2dhaVwgOwor5paw6Iq9IDwgc2hpbm1lXCA7CivmlbDoqZ4gPCBzdXVzaGlcIDsKK+aYjuecuCA8IG1laWJvdVwgOwor6aCt5pWwIDwgdG91c3V1XCA7CivmmrTmjJkgPCBib3VreW9cIDsKK+malOmboiA8IGtha3VyaVwgOwor5pys5ZG9IDwgaG9ubWVpXCA7CivpoZ7lvaIgPCBydWlrZWlcIDsKK+S4reWtkCA8IG5ha2Fnb1wgOwor5puz5a2QIDwgaGlraWtvXCA7CivlpKnompUgPCB0ZW5zYW5cIDsKK+Wls+e1piA8IGpva3l1dVwgOwor6Zu76KejIDwgZGVua2FpXCA7CivmnIjloLEgPCBnZXBwb3VcIDsKK+acgOWkpyA8IHNhaWRhaVwgOwor54e76JK4IDwga3Vuam91XCA7CivkupHkupEgPCB1bicnbnVuXCA7CivpmpnplpMgPCBzdWtpbWFcIDsKK+acgOWkliA8IHNhaWdhaVwgOwor5pS56YCgIDwga2Fpem91XCA7CivlpKfomY4gPCBvb2RvcmFcIDsKK+mZtemnlSA8IHJ5b3VnYVwgOwor5aOy6LK3IDwgYmFpYmFpXCA7CivkuLjlpKogPCBtYXJ1dGFcIDsKK+adkeS8miA8IHNvbmthaVwgOwor576O5b6zIDwgYml0b2t1XCA7CivmnKrlj44gPCBtaXNodXVcIDsKK+S4gOW/nCA8IGljaGlvdVwgOwor5pyN5ZywIDwgZnVrdWppXCA7CivorJ3npLwgPCBzaGFyZWlcIDsKK+acqOWPoiA8IGtvbXVyYVwgOwor5LiA5b6zIDwgaXR0b2t1XCA7CivkuozkurogPCBmdXRhcmlcIDsKK+iAgeWFtSA8IHJvdWhlaVwgOwor542E5bGLIDwgZ29rdXlhXCA7CivnhY7ppIUgPCBzZW5iZWlcIDsKK+S4iuW4ryA8IHV3YW9iaVwgOwor6ZuR6LiPIDwgemF0dG91XCA7Civmlofol7sgPCBidW5zb3VcIDsKK+eGseizmyA8IG5lc3NhblwgOwor5pWZ6K23IDwga3lvdWdvXCA7CivkubPlhZAgPCBueXV1amlcIDsKK+e+pOWxhSA8IGd1bmt5b1wgOwor57qP57a/IDwgdGVubWVuXCA7CivnlbDkvZPlrZcgPCBpdGFpamlcIDsKK+eMm+aCqiA8IG1vdWFrdVwgOwor5aSn6JS1IDwgb29rdXJhXCA7CivkuIflt7sgPCBtYW5nYW5cIDsKK+aXpeeoiyA8IG5pdHRlaVwgOwor5LiB5bqmIDwgY2hvdWRvXCA7CivlpKnok4sgPCB0ZW5nYWlcIDsKK+aVmeirrSA8IGt5b3V5dVwgOwor5LiA5bqnIDwgaWNoaXphXCA7CivkuZflkIggPCBub3JpYWlcIDsKK+mfs+aomSA8IG9ucHlvdVwgOwor5LmX5Y+3IDwgam91Z291XCA7CivmmrTmgqogPCBib3Vha3VcIDsKK+miqOWQkSA8IGZ1dWtvdVwgOwor5pys5YiGIDwgaG9uYnVuXCA7CivmlZHorbcgPCBreXV1Z29cIDsKK+e4puimpyA8IGp1dXJhblwgOwor5pyN5ZaqIDwgZnVrdW1vXCA7CivmnKjliaMgPCBib2trZW5cIDsKK+Wkp+iRlyA8IHRhaWNob1wgOwor5pOs6Z2pIDwgZ2lrYWt1XCA7Civoq5bogIUgPCByb25zaGFcIDsKK+irluiAgyA8IHJvbmtvdVwgOwor6Z+z5qW9IDwgb25nYWt1XCA7CivmnJflkJ8gPCByb3VnaW5cIDsKK+mbquimiyA8IHl1a2ltaVwgOwor5Lmx5YCrIDwgcmFucmluXCA7Civpm7LooaggPCB1bnB5b3VcIDsKK+eJm+eariA8IGd5dXVoaVwgOwor5LiK5bGkIDwgam91c291XCA7Civpm6PoqJMgPCBuYW5rdW5cIDsKK+iAgeS9kyA8IHJvdXRhaVwgOwor6Zm46ZuiIDwgcmlrdXJpXCA7Civmlq3nvaogPCBkYW56YWlcIDsKK+iok+mbuyA8IGt1bmRlblwgOwor54mi55WqIDwgcm91YmFuXCA7CivmmYLmtYEgPCBqaXJ5dXVcIDsKK+aWrOe9qiA8IHphbnphaVwgOwor5peF57GgIDwgaGF0YWdvXCA7CivmmbTmnJcgPCBzZWlyb3VcIDsKK+S4ieWwgSA8IHNhbnB1dVwgOwor54ax6KqgIDwgbmVzc2VpXCA7CivkuInlr7ggPCBzYW56dW5cIDsKK+iAgeS6uiA8IHJvdWppblwgOwor5pm05puHIDwgc2VpZG9uXCA7CivpoqjliY0gPCBmdXV6ZW5cIDsKK+mZo+miqCA8IGppbnB1dVwgOwor6ZuG6LKoIDwgc2h1dWthXCA7CivpmqfpgZMgPCBzdWlkb3VcIDsKK+acgOWWhCA8IHNhaXplblwgOwor572q5oKqIDwgemFpYWt1XCA7CivmmpbmiL8gPCBkYW5ib3VcIDsKK+aVrOiZlCA8IGtlaWtlblwgOwor6Zqj6YKmIDwgcmlucG91XCA7CivkubHkuqQgPCByYW5rb3VcIDsKK+iAgeS4rSA8IHJvdWp1dVwgOwor5aWz56WeIDwgbWVnYW1pXCA7CivpnZLnrYsgPCBhb3N1amlcIDsKK+iruOeoriA8IHNob3NodVwgOwor5pyL5Y+LIDwgaG91eXV1XCA7CivmlofoirggPCBidW5nZWlcIDsKK+mZsOmZvSA8IG9uJyd5b3VcIDsKK+S4geWvpyA8IHRlaW5laVwgOwor5LiA5a++IDwgaXR0c3VpXCA7Civnvqnlob4gPCBnaWp1a3VcIDsKK+Wkp+iIuSA8IG9vYnVuZVwgOwor6Z2S56u5IDwgYW9kYWtlXCA7CivpnannoKUgPCBrYXdhdG9cIDsKK+mbkeiqjCA8IHphc3NoaVwgOwor54mH55y8IDwga2F0YW1lXCA7Civmlq3nt5ogPCBkYW5zZW5cIDsKK+S5seS4liA8IHJhbnNlaVwgOwor54af6K2wIDwganVrdWdpXCA7CivpmqDpgLggPCBpbml0c3VcIDsKK+Wkp+iHoyA8IGRhaWppblwgOwor576O5a2mIDwgYmlnYWt1XCA7CivmlL/oq5YgPCBzZWlyb25cIDsKK+acjeWLmSA8IGZ1a3VtdVwgOwor6Z2S56m6IDwgYW96b3JhXCA7CivmnInljYogPCB5dXVoYW5cIDsKK+mbkeiogCA8IHpvdWdvblwgOwor5ZCM5oSP6KqeIDwgZG91aWdvXCA7CivkuIvlp5MgPCBnZXNob3VcIDsKK+WmmeeOiyA8IG15b3VvdVwgOwor5peF56iLIDwgcnlvdGVpXCA7CivlpYnntI0gPCBob3Vub3VcIDsKK+eGn+iqniA8IGp1a3Vnb1wgOwor54uZ5pKDIDwgc29nZWtpXCA7CivnjLblpKogPCB5dWRheWFcIDsKK+WknOiIuSA8IHlvZnVuZVwgOwor5aSn6IOGIDwgZGFpdGFuXCA7CivkuIrlpKkgPCBqb3V0ZW5cIDsKK+aXqeeUoyA8IHNvdXphblwgOwor5aSn6IKhIDwgb29tYXRhXCA7CivmnIDljZcgPCBzYWluYW5cIDsKK+WkqeiBniA8IHRlbmJ1blwgOwor6Ki06L+9IDwgc290c3VpXCA7CivoqaDoqqYgPCBlaXNob3VcIDsKK+aZpuaXpSA8IG1pc29rYVwgOwor6KiY6YyyIDwga2lyb2t1XCA7Civmm7jlkI0gPCBzaG9tZWlcIDsKK+S4h+WkqSA8IGJhbnRlblwgOwor5Lit5ZKMIDwgY2h1dXdhXCA7CivmlLnoqIIgPCBrYWl0ZWlcIDsKK+aXpeeUoyA8IG5pc3NhblwgOwor6Z2i55u4IDwgbWVuc291XCA7CivoqZXorbAgPCBoeW91Z2lcIDsKK+Wkp+iAgSA8IHRhaXJvdVwgOwor6aKo5L2TIDwgZnV1dGVpXCA7CivniZ3niZsgPCBtZXVzaGlcIDsKK+Wil+mFjSA8IHpvdWhhaVwgOwor5LiA5aWzIDwgaWNoaWpvXCA7CivkuIrloLQgPCBqb3Vqb3VcIDsKK+Wkp+e+pCA8IHRhaWd1blwgOwor6Zmi6ZW3IDwgaW5jaG91XCA7CivkuK3lj6UgPCBjaHV1a3VcIDsKK+S4ieWhgSA8IHNhbnJ1aVwgOwor6Zq76KqeIDwgc2VraWdvXCA7Civmm4flpKkgPCBkb250ZW5cIDsKK+aciOWFiSA8IGdla2tvdVwgOwor6ZyK6IO9IDwgcmVpbm91XCA7Civlp7vml48gPCBpbnpva3VcIDsKK+S4ueWJjSA8IHRhbnplblwgOwor5Li45YmkIDwgZ2FuemFpXCA7CivkuIDlpKIgPCBpY2hpbXVcIDsKK+acgOWInSA8IHNhaXNob1wgOwor5LiA5aScIDwgaGl0b3lvXCA7CivkuIfloLQgPCBtYW5qb3VcIDsKK+iruOebuCA8IHNob3NvdVwgOwor5aWH562WIDwga2lzYWt1XCA7CivlqZrlp7sgPCBrb24nJ2luXCA7CivkuI7lnKcgPCB5b2F0c3VcIDsKK+eGlOinoyA8IHlvdWthaVwgOwor5aSa6IKJIDwgdGFuaWt1XCA7CivmmpfluZUgPCBhbm1ha3VcIDsKK+mahumBiyA8IHJ5dXV1blwgOwor6Z+L6aeE5aSpIDwgaWRhdGVuXCA7Civoqpjoh7QgPCB5dXVjaGlcIDsKK+aaluW4ryA8IGRhbnRhaVwgOwor5LiL5Zu9IDwgZ2Vrb2t1XCA7CivmmqvlrpogPCB6YW50ZWlcIDsKK+aWreeoriA8IGRhbnNodVwgOwor54us5b6AIDwgZG9rdW91XCA7CivkuInlm7IgPCBtaXRzdWlcIDsKK+WkluiBniA8IGdhaWJ1blwgOwor54m55rS+IDwgdG9rdWhhXCA7CivkuLvlgpggPCBzaHVzYW5cIDsKK+eCuuaUv+WutiA8IGlzZWlrYVwgOwor5aSp57ayIDwgdGVubW91XCA7CivpmbbphZQgPCB0b3VzdWlcIDsKK+abuOWGmSA8IHNob3NoYVwgOwor5LqM5bqm55uuIDwgbmlkb21lXCA7CivnjYTlkI8gPCBnb2t1cmlcIDsKK+eLrOW6pyA8IGRva3V6YVwgOwor5LiA5Zu9IDwgaWtrb2t1XCA7CivpoJjluIMgPCByeW91ZnVcIDsKK+eJh+eJhyA8IGhlbnBlblwgOwor5LiA5ZugIDwgaWNoaWluXCA7CivpnKfnrJsgPCBtdXRla2lcIDsKK+mZuOmBiyA8IHJpa3V1blwgOwor54Sh6ZeHIDwgbXV5YW1pXCA7Civpm4TonIIgPCBvYmFjaGlcIDsKK+e1uembsiA8IGtlbicndW5cIDsKK+eFruixhiA8IG5pbWFtZVwgOwor54aU6J6NIDwgeW91eXV1XCA7CivkuLvkvZMgPCBzaHV0YWlcIDsKK+iok+mAoyA8IGt1bnJlblwgOwor5LiH5ZaEIDwgbWFuemVuXCA7Civmlofns7sgPCBidW5rZWlcIDsKK+aWveeZgiA8IHNlcnlvdVwgOwor5Li75Lu7IDwgc2h1bmluXCA7CivmlazogIEgPCBrZWlyb3VcIDsKK+mghuW9kyA8IGp1bnRvdVwgOwor6Zm96LuiIDwgeW91dGVuXCA7Civml6XnhLwgPCBoaXlha2VcIDsKK+S4iuWTgSA8IGpvdWJvblwgOwor5Li75Lq6IDwgc2h1amluXCA7Civpm4TomIIgPCB5dXV6dWlcIDsKK+mbo+iIuSA8IG5hbnNlblwgOwor6ZqG6LW3IDwgcnl1dWtpXCA7Civlp7vmiJogPCBpbnNla2lcIDsKK+mhnuWQjCA8IHJ1aWRvdVwgOwor6Kqm57WMIDwgenVreW91XCA7Civml6nngKwgPCBoYXlhc2VcIDsKK+abuOS9kyA8IHNob3RhaVwgOwor57eS6KuWIDwgY2hvcm9uXCA7CivkuLvkuIogPCBzaHVqb3VcIDsKK+acgOS4rSA8IG1vbmFrYVwgOwor6ZuR6I+MIDwgemFra2luXCA7Civmlofnr4QgPCBidW5wYW5cIDsKK+aWsOebhiA8IG5paWJvblwgOwor5aKX6LOHIDwgem91c2hpXCA7CivmnIDkuIogPCBtb2dhbWlcIDsKK+Wkp+etiyA8IG9vc3VqaVwgOwor5aqS5L2TIDwgYmFpdGFpXCA7CivniIbnoLQgPCBiYWt1aGFcIDsKK+eLrOWxhSA8IGRva2t5b1wgOwor54m55qipIDwgdG9ra2VuXCA7CivoqLPoqp4gPCB5YWt1Z29cIDsKK+S4reS9kCA8IGNodXVzYVwgOwor5LiH5Y+jIDwgYmFua291XCA7Civpm5HojYkgPCB6YXNzb3VcIDsKK+S4iuWNiiA8IGpvdWhhblwgOwor6Zm46LevIDwgcmlrdXJvXCA7CivlqpLku4sgPCBiYWlrYWlcIDsKK+WkqeepuiA8IHRlbmt1dVwgOwor57eS6KiAIDwgY2hvZ2VuXCA7CivpnIDntaYgPCBqdWt5dXVcIDsKK+S4juWKmyA8IHlvcmlraVwgOwor5aSn56m6IDwgb296b3JhXCA7CivlpJbnsbMgPCBnYWltYWlcIDsKK+WkqeeonyA8IHRlbnBpblwgOwor5Lit5LqMIDwgY2h1dW5pXCA7CivlpYfnmZYgPCBraWhla2lcIDsKK+aVj+iFlSA8IGJpbndhblwgOwor5aSp56ekIDwgdGVuYmluXCA7CivntKLpurogPCBzb3VtZW5cIDsKK+e+pOWDjyA8IGd1bnpvdVwgOwor5aWu54S2IDwgZnVuemVuXCA7CivkuIfliqsgPCBtYW5nb3VcIDsKK+S4iuWJjSA8IHV3YW1hZVwgOwor6ZuM6IqxIDwgbWViYW5hXCA7CivlpYfnl4UgPCBraWJ5b3VcIDsKK+mdkueJqSA8IGFvbW9ub1wgOwor5aSp56WeIDwgdGVuamluXCA7CivnhLbov4QgPCBzYW1hZGVcIDsKK+mhjOWQjSA8IGRhaW1laVwgOwor6aGM5Y+3IDwgZGFpZ291XCA7CivlpKfnpa0gPCB0YWlzYWlcIDsKK+S4ieWIhiA8IHNhbnB1blwgOwor576p5L6gIDwgZ2lreW91XCA7Civnt4/oo48gPCBzb3V1cmFcIDsKK+eJqeaoqSA8IGJ1a2tlblwgOwor5aSc56m6IDwgeW96b3JhXCA7Civnt4/oo4EgPCBzb3VzYWlcIDsKK+eEoemHjyA8IG11cnlvdVwgOwor6ZuA6I2YIDwgamFuc291XCA7Civnt4ropIwgPCBraW5rb25cIDsKK+S4luS/lyA8IHNlem9rdVwgOwor54mb5q2pIDwgZ3l1dWhvXCA7Civml6fmtL4gPCBreXV1aGFcIDsKK+e+heWMlyA8IHJhaG9rdVwgOwor57Sw6a2aIDwgc2F5b3JpXCA7CivkuIvlg5UgPCBnZWJva3VcIDsKK+Wkp+egsiA8IHRhaWhvdVwgOwor5pWw562JIDwgc3V1dG91XCA7CivlpbPmu50gPCBtZWRha2lcIDsKK+itpuaJiyA8IGtlaXNodVwgOwor6ZqP6KGMIDwgenVpa291XCA7CivlpoLms5UgPCBueW9ob3VcIDsKK+S4gOWGhiA8IGljaGllblwgOwor5LiA5YW3IDwgaWNoaWd1XCA7CivmlbDlr4TlsYsgPCBzdWtpeWFcIDsKK+e3qOiRlyA8IGhlbmNob1wgOwor54ib54ibIDwgcmFucmFuXCA7CivmmpblnLAgPCBkYW5jaGlcIDsKK+e2uOiogCA8IHJpbmdlblwgOwor5pS+6IOGIDwgaG91dGFuXCA7CivoqJPoq60gPCBrdW4nJ3l1XCA7Civoqq3noLQgPCBkb2t1aGFcIDsKK+S4ieWAjSA8IHNhbmJhaVwgOwor54yb5YuHIDwgbW91eXV1XCA7CivpoZ7kvosgPCBydWlyZWlcIDsKK+iok+iqoSA8IGt1bmthaVwgOwor6Ky55pu4IDwga2luc2hvXCA7CivmmI7mnJcgPCBtZWlyb3VcIDsKK+WkqeebgyA8IHRlbnBhaVwgOwor5pq05YuVIDwgYm91ZG91XCA7CivloKTpmLIgPCB0ZWlib3VcIDsKK+iojuirliA8IHRvdXJvblwgOwor5pel5q+OIDwgaGlnb3RvXCA7CivkuI3ku7IgPCBmdW5ha2FcIDsKK+Wkp+eavyA8IG9vemFyYVwgOwor5LiJ5L2TIDwgc2FudGFpXCA7CivlkIzmhI/nvqkgPCBkb3VpZ2lcIDsKK+aWh+ebsiA8IG1vbm1vdVwgOwor54ax57eaIDwgbmVzc2VuXCA7Civnhp/ogIMgPCBqdWtrb3VcIDsKK+eMn+WFtyA8IHJ5b3VndVwgOwor5aKT6KGoIDwgYm9oeW91XCA7CivmmLXmh4cgPCBqaWtrb25cIDsKK+Wls+a1gSA8IGpvcnl1dVwgOwor6ZyK55+lIDwgcmVpY2hpXCA7CivkuIrku6MgPCBqb3VkYWlcIDsKK+Wlh+eJuSA8IGtpZG9rdVwgOwor576O5L+XIDwgYml6b2t1XCA7CivmmJPmlq0gPCBla2lkYW5cIDsKK+S4jeS5mSA8IGZ1aXRzdVwgOwor572q5ZCNIDwgemFpbWVpXCA7CivmmI/mmI8gPCBrb25rb25cIDsKK+mbkee6giA8IHphc3NhblwgOwor5aaZ5qGIIDwgbXlvdWFuXCA7CivlpbPms6IgPCBtZW5hbWlcIDsKK+mbouexjSA8IHJpc2VraVwgOwor5piO5patIDwgbWVpZGFuXCA7CivmlaznpLwgPCBrZWlyZWlcIDsKK+mbt+elniA8IHJhaWppblwgOwor6Kq/55CGIDwgY2hvdXJpXCA7Civmlq3nhLYgPCBkYW56ZW5cIDsKK+aYjuaVjyA8IG1laWJpblwgOwor54mI5qipIDwgaGFua2VuXCA7Civng4jpoqggPCByZXBwdXVcIDsKK+S4h+S4hyA8IG1hbm1hblwgOwor6KiA6KuWIDwgZ2Vucm9uXCA7CivpmbjooYwgPCByaWtrb3VcIDsKK+Wkp+eUnyA8IGRhaXNlaVwgOwor6ZuA576FIDwgamFrdXJhXCA7CivkuIHkuqUgPCB0ZWlnYWlcIDsKK+itsOW4rSA8IGdpc2VraVwgOwor576O5LqLIDwgbWlnb3RvXCA7Civlp5Hmga8gPCBrb3Nva3VcIDsKK+e5geebmyA8IGhhbmpvdVwgOwor5LiA5Lq6IDwgaGl0b3JpXCA7CivmlL7nuKYgPCBob3VqdXVcIDsKK+irlueCuSA8IHJvbnRlblwgOwor6Kmp57eoIDwgc2hpaGVuXCA7Civml6Xmp5ggPCBoaXNhbWFcIDsKK+mZquimsyA8IGJhaWthblwgOwor5LiA5LqMIDwgaWNoaW5pXCA7CivntKDpppYgPCBzb2t1YmlcIDsKK+eIm+a8qyA8IHJhbm1hblwgOwor54m55o6qIDwgdG9rdXNvXCA7Civoqabnt7QgPCBzaGlyZW5cIDsKK+iogOiosyA8IGlpd2FrZVwgOwor5Z+56aSKIDwgYmFpeW91XCA7CivoqIDoqIAgPCBnZW5nZW5cIDsKK+e3j+iPnCA8IHNvdXphaVwgOwor5aSa55eFIDwgdGFieW91XCA7CivmkqTpgIAgPCB0ZXR0YWlcIDsKK+aUuee3qCA8IGthaWhlblwgOwor54Sh6LODIDwgbXVjaGluXCA7Civpm4Tnt6ggPCB5dXVoZW5cIDsKK+e4gee1hCA8IGVuZ3VtaVwgOwor54m55oqAIDwgdG9rdWdpXCA7CivmlZnnpZYgPCBreW91c29cIDsKK+eJqeaQjSA8IGJ1c3NvblwgOwor6KaB6aCFIDwgeW91a291XCA7CivnvbDkv7ggPCBiYXBwb3VcIDsKK+WnieW8nyA8IHNoaW1haVwgOwor6Zui56SBIDwgcmlzaG91XCA7Civpn7Pln58gPCBvbicnaWtpXCA7CivloLHpgZMgPCBob3Vkb3VcIDsKK+aXreaaiSA8IGt5b2traVwgOwor57W26LObIDwgemVzc2FuXCA7CivlpoLmnaUgPCBueW9yYWlcIDsKK+Wkp+eJqSA8IG9vbW9ub1wgOwor6Zyy5ru0IDwgcm90ZWtpXCA7CivntprooYwgPCB6b2trb3VcIDsKK+eJiOacrCA8IGhhbnBvblwgOwor5pqW5YasIDwgZGFudG91XCA7Civpm7vnlaogPCBkZW5iYW5cIDsKK+Wkp+iiiOijnyA8IG9vZ2VzYVwgOwor5pep5pmpIDwgc291YmFuXCA7CivpnIrnjaMgPCByZWlqdXVcIDsKK+e3qOe6giA8IGhlbnNhblwgOwor5paw5rS+IDwgc2hpbnBhXCA7Civpm5HnqK4gPCB6YXNzaHVcIDsKK+mbquebriA8IHl1a2ltZVwgOwor5pen5pmCIDwga3l1dWppXCA7CivoqpXnlJ8gPCB0YW5qb3VcIDsKK+aYvOWvnSA8IGhpcnVuZVwgOwor5LqL5YuZ5bGLIDwgamltdXlhXCA7Civmta7kuJbntbUgPCB1a2l5b2VcIDsKK+eJueaBtSA8IHRva2tlaVwgOwor54WZ6I2JIDwgdGFiYWtvXCA7CivnkLXnkLbmuZYgPCBiaXdha29cIDsKK+ishOacrCA8IHRvdWhvblwgOwor5pS556uEIDwga2FpemFuXCA7Civnibnlv6sgPCB0b2trYWlcIDsKK+S6i+WLmeWutiA8IGppbXVrYVwgOwor5pel5pWwIDwgaGlrYXp1XCA7Civmlq3msLQgPCBkYW5zdWlcIDsKK+WmmeaKgCA8IG15b3VnaVwgOwor5aa75bivIDwgc2FpdGFpXCA7CivlqIHllp0gPCBpa2F0c3VcIDsKK+eFjuiMtiA8IHNlbmNoYVwgOwor6Zu3542jIDwgcmFpanV1XCA7CivpnZLmoZAgPCBhb2dpcmlcIDsKK+Wkp+a9riA8IG9vc2hpb1wgOwor6Zm26Iq4IDwgdG91Z2VpXCA7Civml5fml6UgPCBoYXRhYmlcIDsKK+mdkuafsyA8IGFveWFnaVwgOwor6Kit572uIDwgc2V0Y2hpXCA7CivnianmgKcgPCBidXNzZWlcIDsKK+aal+S4rSA8IGFuY2h1dVwgOwor5pi85aScIDwgY2h1dXlhXCA7CivoqIDokYkgPCBrb3RvYmFcIDsKK+e0oemMmCA8IGJvdXN1aVwgOwor5aSW54GvIDwgZ2FpdG91XCA7Civln7zpioAgPCBzYWlnaW5cIDsKK+S4jeWPr+mBvyA8IGZ1a2FoaVwgOwor6ZaT6bSoIDwgYWlnYW1vXCA7CivpnKfmsLcgPCBtdWh5b3VcIDsKK+aYpeWtoyA8IHNodW5raVwgOwor5aKX572uIDwgem91Y2hpXCA7Civntr7nvoUgPCByeW91cmFcIDsKK+eLguWPpSA8IGt5b3VrdVwgOwor6Zmz6IWQIDwgY2hpbnB1XCA7CivloLHorJ0gPCBob3VzaGFcIDsKK+eFqee0ryA8IGhhbnJ1aVwgOwor54mH5omLIDwga2F0YXRlXCA7CivniYfmiLggPCBrYXRhZG9cIDsKK+aWkeawlyA8IG11cmFraVwgOwor5pWm54WMIDwgdG9ua291XCA7CivlpKfms6IgPCBvb25hbWlcIDsKK+aWreahiCA8IGRhbicnYW5cIDsKK+WkqeawtCA8IHRlbnN1aVwgOwor5aSW5rmvIDwgc290b3l1XCA7CivmmablhqUgPCBrYWltZWlcIDsKK+aVmeeItiA8IGt5b3VmdVwgOwor57SU6YqAIDwganVuZ2luXCA7CivlpKfmsLQgPCBvb21penVcIDsKK+Wklua4ryA8IGdhaWtvdVwgOwor6Kqs5rOVIDwgc2VwcG91XCA7CivopovovrwgPCBtaWtvbWlcIDsKK+ioquexsyA8IGhvdWJlaVwgOwor57Sw6LqrIDwgaG9zb21pXCA7CivmlofmsJEgPCBidW5taW5cIDsKK+eCremJsSA8IHRhbmtvdVwgOwor5pen5oGpIDwga3l1dW9uXCA7CivntJTph5EgPCBqdW5raW5cIDsKK+S6i+WLmeWZqCA8IGppbXVraVwgOwor5aSc5rOKIDwgeWFoYWt1XCA7CivmlrnmlrkgPCBob3Vib3VcIDsKK+e2v+ezuCA8IG1lbnNoaVwgOwor5peo5b+1IDwgc2hpbmVuXCA7Civmk43oiLkgPCBzb3VzZW5cIDsKK+e2vuezuCA8IGF5YWl0b1wgOwor6Zu75rqQIDwgZGVuZ2VuXCA7CivlpoTlv7UgPCBtb3VuZW5cIDsKK+ilv+mBiiA8IHNlaXl1dVwgOwor5aWu5oimIDwgZnVuc2VuXCA7Civngq3phbggPCB0YW5zYW5cIDsKK+e0jemHkSA8IG5vdWtpblwgOwor57SN6YeHIDwgbm91c2FpXCA7CivoprPopqcgPCBrYW5yYW5cIDsKK+iruOaJiyA8IG1vcm90ZVwgOwor6Z+z5L+hIDwgb25zaGluXCA7Civnsr7prYIgPCBzZWlrb25cIDsKK+WknOavjiA8IHlvZ290b1wgOwor5pWj5ryrIDwgc2FubWFuXCA7Civnt6nnm64gPCB5dXJ1bWVcIDsKK+eJh+W9sSA8IGhlbicnZWlcIDsKK+WmhOW8gSA8IGJvdWJlblwgOwor6ZyK5q6/IDwgcmVpZGVuXCA7Civml6LlvpcgPCBraXRva3VcIDsKK+irluaXqCA8IHJvbnNoaVwgOwor57K+6auEIDwgc2VpenVpXCA7CivlvqHmtJLokL0gPCBvc2hhcmVcIDsKK+S6i+WLmeWToSA8IGppbXVpblwgOwor5Z+06LyqIDwgaGFuaXdhXCA7Civoq5bmlq0gPCByb25kYW5cIDsKK+irluaWhyA8IHJvbmJ1blwgOwor54WZ566hIDwga2lzZXJ1XCA7Civoqr/mn7sgPCBjaG91c2FcIDsKK+akjeacqOWxiyA8IHVla2l5YVwgOwor54Sh6IetIDwgbXVzaHV1XCA7CivpnbHluK8gPCBqaW50YWlcIDsKK+aYjuWkpyA8IG1laWRhaVwgOwor6ZaJ6aSoIDwgaGVpa2FuXCA7Civoq7jmgqogPCBzaG9ha3VcIDsKK+WjgeeUuyA8IGhla2lnYVwgOwor57Sg6LazIDwgc3Vhc2hpXCA7CivmlbXmrakgPCB0ZWtpZnVcIDsKK+mbhOeKrCA8IG9zdWludVwgOwor5aKX56iOIDwgem91emVpXCA7Civlor7nlLAgPCBrb25kZW5cIDsKK+aUueeJiCA8IGthaWhhblwgOwor54i25b6hIDwgdGV0ZWdvXCA7CivkuI3lj6/oqqQgPCBmdWthZ29cIDsKK+mWoumWgCA8IGthbm1vblwgOwor5aSn5qC5IDwgZGFpa29uXCA7Civpm5HngoogPCB6b3VzdWlcIDsKK+WknOalrSA8IHlhZ3lvdVwgOwor57Sw6KuWIDwgc2Fpcm9uXCA7CivniaflpKsgPCBib2t1ZnVcIDsKK+aWh+ahiCA8IGJ1bicnYW5cIDsKK+aXheaDhSA8IHJ5b2pvdVwgOwor5aSJ5q27IDwgaGVuc2hpXCA7CivlpJbmp5ggPCB0b3phbWFcIDsKK+Wkp+afhCA8IG9vZ2FyYVwgOwor5b6h6YeI6L+mIDwgb3NoYWthXCA7Civoq7jlvaYgPCBzaG9nZW5cIDsKK+mWk+mamyA8IG1hZ2l3YVwgOwor54Sh6IGKIDwgYnVyeW91XCA7Civplbfpp4YgPCBjaG91a3VcIDsKK+mbsuavjSA8IGtpcmFyYVwgOwor5pep5a+dIDwgaGF5YW5lXCA7Civopb/osqIgPCBzYWlnb25cIDsKK+aVmea0viA8IGt5b3VoYVwgOwor5pON57imIDwgc291anV1XCA7CivlpKfmnKwgPCB0YWlob25cIDsKK+Wkp+acmyA8IHRhaW1vdVwgOwor6KuW5ougIDwgcm9ua3lvXCA7Civml6XlsIQgPCBuaXNzaGFcIDsKK+WlieaLnSA8IGhvdWhhaVwgOwor54mn5aC0IDwgbWFraWJhXCA7CivoqIjnrpcgPCBrZWlzYW5cIDsKK+mZpOexjSA8IGpvc2VraVwgOwor57O46YGKIDwgaXRveXV1XCA7Civpm6PmsrsgPCBuYW5jaGlcIDsKK+WiqOeXlSA8IGJva2tvblwgOwor5Y2w5a2X5qmfIDwgaW5qaWtpXCA7Civoq5bmiKYgPCByb25zZW5cIDsKK+WkqeaYjiA8IHRlbm1laVwgOwor5aKT55+zIDwgYm9zZWtpXCA7CivloqjnlLsgPCBib2t1Z2FcIDsKK+mbo+awkSA8IG5hbm1pblwgOwor57Sg6KqtIDwgc29kb2t1XCA7CivopoHoq6YgPCB5b3V0ZWlcIDsKK+WkqeaWhyA8IHRlbm1vblwgOwor5aSn5pa5IDwgb29rYXRhXCA7Civnoavpu4Tms4kgPCBpb3VzZW5cIDsKK+mWi+mWgCA8IGthaW1vblwgOwor57e054KtIDwgcmVudGFuXCA7CivplonploAgPCBoZWltb25cIDsKK+Wil+ebiiA8IHpvdWVraVwgOwor5aSW5p2lIDwgZ2FpcmFpXCA7Civpl4fot68gPCB5YW1pamlcIDsKK+WkluadkCA8IGdhaXphaVwgOwor6ZaA6ZmiIDwgbW9uJydpblwgOwor57SN6LGGIDwgbmF0dG91XCA7CivploDpmZAgPCBtb25nZW5cIDsKK+aWueW9oiA8IGhvdWtlaVwgOwor5paH5pS/IDwgYnVuc2VpXCA7CivlpbPlrpggPCBueW9rYW5cIDsKK+eEoee1piA8IG11a3l1dVwgOwor5pep5aSnIDwgc291ZGFpXCA7CivopoHopqcgPCB5b3VyYW5cIDsKK+mbm+autSA8IHN1dWRhblwgOwor6Z2i5a2QIDwgbWVudHN1XCA7CivmlbDmnpogPCBzdXVtYWlcIDsKK+mbqOaoiyA8IGFtYWRvaVwgOwor6ZuE5ri+IDwgeXV1a29uXCA7CivopIfpn7MgPCBmdWt1b25cIDsKK+aYjuWQmyA8IG1laWt1blwgOwor6Zm655u4IDwga2Vuc291XCA7Civnibnli5kgPCB0b2t1bXVcIDsKK+eJqeWTgSA8IGJ1cHBpblwgOwor5aKX55SjIDwgem91c2FuXCA7CivmkI3ph5EgPCBzb25raW5cIDsKK+mVt+mWkSA8IG5vZG9rYVwgOwor6Kqe5pePIDwgZ296b2t1XCA7CivlgYnkuIjlpKsgPCBpam91ZnVcIDsKK+irluW8gSA8IHJvbmJlblwgOwor5pel5aCxIDwgbmlwcG91XCA7CivploDpkZEgPCBtb25rYW5cIDsKK+WgleiQvSA8IGRhcmFrdVwgOwor6Zai6YCjIDwga2FucmVuXCA7Civnha7niakgPCBuaW1vbm9cIDsKK+aXheWvnSA8IHRhYmluZVwgOwor6Zmz55quIDwgY2hpbnBpXCA7CivluIPmtbfoi5QgPCBmdW5vcmlcIDsKK+e0q+iYrSA8IHNoaXJhblwgOwor6ZaL6YqAIDwga2FpZ2luXCA7CivnhKHnrZYgPCBtdXNha3VcIDsKK+ispuWSsyA8IGtlaWdhaVwgOwor5aal5Y2UIDwgZGFreW91XCA7CivlpKfmioAgPCBvb3dhemFcIDsKK+eyvumMrCA8IHNlaXJlblwgOwor5pen5ZyfIDwga3l1dWRvXCA7Civpm7vmlq0gPCBkZW5kYW5cIDsKK+mcsOW8viA8IHNhbmRhblwgOwor5pWZ5qGIIDwga3lvdWFuXCA7CivlppnlkbMgPCBteW91bWlcIDsKK+aYjuWInSA8IG1laXNob1wgOwor57We572qIDwga291emFpXCA7CivmmKjku4ogPCBzYWtrb25cIDsKK+e1qOe3niA8IGp1dXRhblwgOwor5pa55a+4IDwgaG91c3VuXCA7CivlpInmlLkgPCBoZW5rYWlcIDsKK+mbtuaVlyA8IHJlaWhhaVwgOwor5aWl5aaZIDwgb3VteW91XCA7CivmlaPmlocgPCBzYW5idW5cIDsKK+aVo+aVoyA8IHNhbnphblwgOwor5Zyf6b6NIDwgbW9ndXJhXCA7CivnuKbmlq0gPCBqdXVkYW5cIDsKK+ismuWPtyA8IHNoaWdvdVwgOwor5aWz5ZuaIDwgam9zaHV1XCA7Civmlq3lrpogPCBkYW50ZWlcIDsKK+irluWumiA8IHJvbnRlaVwgOwor5aG155WMIDwgamlua2FpXCA7Civoq5blrZ8gPCByb25tb3VcIDsKK+aXpeWSjCA8IGhpeW9yaVwgOwor57ay54q2IDwgbW91am91XCA7CivlpKflvaIgPCBvb2d5b3VcIDsKK+aFsOWuieS8miA8IGlhbmthaVwgOwor6Zuj5paHIDwgbmFuYnVuXCA7CivmiqvpnLLnm64gPCBoaXJvbWVcIDsKK+exs+mjryA8IGJlaWhhblwgOwor57ay54mIIDwgYW1paGFuXCA7Civlo7LmlocgPCBiYWlidW5cIDsKK+aXpeWQkSA8IGhpbmF0YVwgOwor57K+6L6yIDwgc2Vpbm91XCA7CivmlrDlqaYgPCBzaGlucHVcIDsKK+mYsuepuiA8IGJvdWt1dVwgOwor5aSp5bqVIDwgdGVudGVpXCA7CivlpKrlubMgPCB0YWloZWlcIDsKK+WlpeWcsCA8IG9rdWNoaVwgOwor5aSn5bqXIDwgb29kYW5hXCA7Civpm5Hmm7ggPCB6YXNzaG9cIDsKK+mWo+itsCA8IGtha3VnaVwgOwor54Gw6LKdIDwgaGFpZ2FpXCA7CivlpKfluYUgPCBvb2hhYmFcIDsKK+Wkp+W4qyA8IGRhaXNoaVwgOwor57WQ57SNIDwgeXVpbm91XCA7Civml4Xlm6MgPCByeW9kYW5cIDsKK+e5geW/mSA8IGhhbmJvdVwgOwor5Zyw6auqIDwgamlnYW1pXCA7CivpmLLnpqYgPCBib3VneW9cIDsKK+e0sOiDniA8IHNhaWJvdVwgOwor5pel5YukIDwgbmlra2luXCA7CivngrnojLYgPCB0ZW5jaGFcIDsKK+mVt+mAlCA8IGNob3V0b1wgOwor5LqI5YKZ6aasIDwgeW9iaWJhXCA7CivmsJfljJblmaggPCBraWtha2lcIDsKK+aRmOiKvSA8IHRla2lnYVwgOwor6ZuE5p2+IDwgb21hdHN1XCA7Civml6nlh7ogPCBoYXlhZGVcIDsKK+Wlh+WmmSA8IGtpbXlvdVwgOwor5aSW5b6EIDwgZ2Fpa2VpXCA7CivlpJblvoEgPCBnYWlzZWlcIDsKK+aOpemgrSA8IHNldHRvdVwgOwor6KiT54K5IDwga3VudGVuXCA7CivmrabogIXntbUgPCBtdXNoYWVcIDsKK+irluWkliA8IHJvbmdhaVwgOwor5aSc5bqXIDwgeW9taXNlXCA7CivntYPnt5ogPCBnZW5zZW5cIDsKK+irvuWQpiA8IGRha3VoaVwgOwor54Sh55ebIDwgbXV0c3V1XCA7CivnhKHnl4UgPCBtdWJ5b3VcIDsKK+Wjn+aWrSA8IHJvdWRhblwgOwor54mH5YiDIDwga2F0YWhhXCA7CivmlbXlvbEgPCB0ZWtpZWlcIDsKK+e1ueebriA8IGtpbnVtZVwgOwor54Wu5rGBIDwgbmlqaXJ1XCA7Civoo77ph44gPCBzdXNvbm9cIDsKK+WknOW4giA8IHlvaWNoaVwgOwor5aSn5bGxIDwgdGFpemFuXCA7Civoq7jlkJsgPCBzaG9rdW5cIDsKK+mcnOWusyA8IHNvdWdhaVwgOwor5pS55piTIDwga2FpZWtpXCA7Civlo67mjJkgPCBzb3VreW9cIDsKK+e0heiRiSA8IG1vbWlqaVwgOwor5paO5a6uIDwgc2FpZ3V1XCA7Civpm6PmiYAgPCBuYW5zaG9cIDsKK+WlquWPliA8IGRhc3NodVwgOwor5aSq5a6IIDwgdGFpc2h1XCA7CivmlonlsIQgPCBzZWlzaGFcIDsKK+WkieW9oiA8IGhlbmtlaVwgOwor57Sg6IKMIDwgc3VoYWRhXCA7CivlpKrlrZcgPCBmdXRvamlcIDsKK+WkqeWtqyA8IHRlbnNvblwgOwor6ZuR5pCNIDwgemFzc29uXCA7Civml6XlgpggPCBoaWdhc2FcIDsKK+mdqeWFtyA8IGthd2FndVwgOwor6Z2i5YmNIDwgbWVuemVuXCA7CivpnIrls7AgPCByZWlob3VcIDsKK+mat+abuCA8IHJlaXNob1wgOwor6KeS55quIDwga2FrdWhpXCA7CivmlbDlubQgPCBzdXVuZW5cIDsKK+WlruWKsSA8IGZ1bnJlaVwgOwor6Z2e5YqbIDwgaGlyaWtpXCA7Civoq63lkYogPCB5dWtva3VcIDsKK+miqOWcn+iomCA8IGZ1ZG9raVwgOwor5paH5a6YIDwgYnVua2FuXCA7Civml6zkvZkgPCBqdW4nJ3lvXCA7CivntIXojLYgPCBrb3VjaGFcIDsKK+e0sOe3uyA8IHNhaWNoaVwgOwor5Z+L6JS1IDwgbWFpem91XCA7CivpnIrlsbEgPCByZWl6YW5cIDsKK+ijj+mWgCA8IHVyYW1vblwgOwor6Zu75belIDwgZGVua291XCA7CivmlpzloZQgPCBzaGF0b3VcIDsKK+WknOWvkiA8IHlvemFtdVwgOwor5aGp54WuIDwgc2hpb25pXCA7Civoq7jliIMgPCBtb3JvaGFcIDsKK+Wfi+iRrCA8IG1haXNvdVwgOwor57a/5q+bIDwgd2F0YWdlXCA7CivntZDnpL4gPCBrZXNzaGFcIDsKK+ikkuiytiA8IGhvdWhlblwgOwor57Sv57SvIDwgcnVpcnVpXCA7CivlnLDpnIogPCBjaGlyZWlcIDsKK+WknOWtpiA8IHlhZ2FrdVwgOwor5pel5LyKIDwgbmljaGlpXCA7Civop5LnlYwgPCBrYWtrYWlcIDsKK+aVj+aEnyA8IGJpbmthblwgOwor5pW35bGFIDwgc2hpa2lpXCA7Civngq3ogrogPCB0YW5oYWlcIDsKK+eFmeavkiA8IGVuZG9rdVwgOwor54ax5oSPIDwgbmV0c3VpXCA7CivlnLDpmo4gPCBjaGlrYWlcIDsKK+aXheWIuCA8IHJ5b2tlblwgOwor6Zqj5p2RIDwgcmluc29uXCA7CivpnaLlgJIgPCBtZW5kb3VcIDsKK+aXpeS4rSA8IGhpbmFrYVwgOwor5aWR5ZCIIDwga2VpZ291XCA7CivpnIrlqpIgPCByZWliYWlcIDsKK+exs+mKrSA8IGJlaXNlblwgOwor6Kqe5a2mIDwgZ29nYWt1XCA7CivoqpjlsI4gPCB5dXVkb3VcIDsKK+mbkeaEnyA8IHpha2thblwgOwor5paO5aC0IDwgc2Fpam91XCA7CivlpbPkvZMgPCBueW90YWlcIDsKK+mdouS9kyA8IG1lbnRlaVwgOwor5aWJ5ZGIIDwgaG91dGVpXCA7CivmkoPnoLQgPCBnZWtpaGFcIDsKK+mdouS8miA8IG1lbmthaVwgOwor5aOy5bqXIDwgYmFpdGVuXCA7Civoq5blj6IgPCByb25zb3VcIDsKK+mbu+WtkCA8IGRlbnNoaVwgOwor54i15L2NIDwgc2hha3VpXCA7CivlpbPkurogPCBueW9uaW5cIDsKK+e1tueJiCA8IHplcHBhblwgOwor6Zuq5bSpIDwgbmFkYXJlXCA7CivntJvntJsgPCBmdW5wdW5cIDsKK+WjruW5tCA8IHNvdW5lblwgOwor5aSn5Z6LIDwgb29nYXRhXCA7CivntJTntr8gPCBqdW5tZW5cIDsKK+Whqea5ryA8IHNoaW95dVwgOwor5aWz5LitIDwgam9jaHV1XCA7CivploDooZsgPCBtb24nJ2VpXCA7CivlnoLoqJMgPCBzdWlrdW5cIDsKK+mYsueKryA8IGJvdWhhblwgOwor54ax5bivIDwgbmV0dGFpXCA7CivnhJrngasgPCB0YWtpYmlcIDsKK+aUueaCqiA8IGthaWFrdVwgOwor57SU57O7IDwganVua2VpXCA7CivlpaXkvJ0gPCBva3VkZW5cIDsKK+Whqea1tCA8IGVueW9rdVwgOwor6KuH5ZCIIDwgZGFuZ291XCA7CivpnIrln58gPCByZWlpa2lcIDsKK+irluWIpCA8IHJvbnBhblwgOwor54Wu5pa5IDwgbmlrYXRhXCA7CivnhormiYsgPCBrdW1hZGVcIDsKK+e0lOeyiyA8IGp1bnN1aVwgOwor6Kqt5ZuzIDwgZG9rdXp1XCA7Civngavok4sgPCBoaWJ1dGFcIDsKK+iqv+WSjCA8IGNob3V3YVwgOwor6Kq/5ZGzIDwgY2hvdW1pXCA7Civml4XkurogPCByeW9qaW5cIDsKK+e3j+aVsCA8IHNvdXN1dVwgOwor6ZuR5be+IDwgem91a2luXCA7CivpmoXmnKggPCBzdW1pa2lcIDsKK+imqueWjiA8IHNoaW5zb1wgOwor5pa55L6/IDwgaG91YmVuXCA7Civpm6Llrq4gPCByaWt5dXVcIDsKK+e1oueImyA8IGtlbnJhblwgOwor5b6h5rKz56ulIDwgb2thcHBhXCA7CivlpJblnLAgPCBnYWljaGlcIDsKK+WhqeawlyA8IHNoaW9rZVwgOwor5o6l6L+RIDwgc2Vra2luXCA7Civpm4TlvIEgPCB5dXViZW5cIDsKK+exs+i7jSA8IGJlaWd1blwgOwor5pS55buDIDwga2FpaGFpXCA7Civpmo7mlbAgPCBrYWlzdXVcIDsKK+WcsOmHkSA8IGppZ2FuZVwgOwor6Kq/5Y2wIDwgY2hvdWluXCA7CivnsaTpgYsgPCBrdWppdW5cIDsKK+a/gemfsyA8IGRha3VvblwgOwor5aSn5ZKMIDwgeWFtYXRvXCA7Civoq4fliKQgPCBkYW5wYW5cIDsKK+mVt+ibhyA8IGNob3VkYVwgOwor5pa55LuKIDwgaG91a29uXCA7CivntIXnsokgPCBiZW5pa29cIDsKK+WcsOmFkiA8IGppemFrZVwgOwor6Zq75b2xIDwgc2VraWVpXCA7CivlnJ/pjYsgPCBkb25hYmVcIDsKK+eBsOiJsiA8IGhhaWlyb1wgOwor5aSp5Y+wIDwgdGVuZGFpXCA7CivlpKflkJsgPCB0YWlrdW5cIDsKK+mZsOaguCA8IGlua2FrdVwgOwor57Sw55uuIDwgaG9zb21lXCA7Civmj5DopoEgPCB0ZWl5b3VcIDsKK+eBq+iKsSA8IGhpYmFuYVwgOwor6ZuR5bGFIDwgemFra3lvXCA7Civln4vnt5ogPCBtYWlzZW5cIDsKK+aVsOWbniA8IHN1dWthaVwgOwor5aWV5LiWIDwgZWtpc2VpXCA7CivpvaYgPCBoYWd1a2lcIDsKK+Wkp+WNiiA8IHRhaWhhblwgOwor6byIIDwgc3VwcG9uXCA7CivopJDol7sgPCBrYXNzb3VcIDsKK+m7nCA8IGNodXRzdVwgOwor54Sh5q+SIDwgbXVkb2t1XCA7CivlpKfljJkgPCBvb3NhamlcIDsKK+e1tua1tyA8IHpla2thaVwgOwor6ZuE5bOwIDwgeXV1aG91XCA7CivntI3nqI4gPCBub3V6ZWlcIDsKK+Wcn+mHnCA8IGRvZ2FtYVwgOwor5aSn5YuiIDwgdGFpemVpXCA7Civnt5LmiKYgPCBjaG9zZW5cIDsKK+m6kyA8IGZ1bW90b1wgOwor5aSn5YuHIDwgdGFpeXV1XCA7Civoo7Poo74gPCBtb3N1c29cIDsKK+mZpOaguCA8IGpva2FrdVwgOwor6Kej5q+SIDwgZ2Vkb2t1XCA7CivpmbDmmqYgPCBpbnJla2lcIDsKK+eEoeassiA8IG11eW9rdVwgOwor6Kqj5ZGKIDwgYnVrb2t1XCA7CivlpKfliIYgPCBkYWlidW5cIDsKK+Wkp+WIgCA8IGRhaXRvdVwgOwor6ZuR5amaIDwgemFra29uXCA7CivmkI3ogJcgPCBzb25tb3VcIDsKK+Wcp+i/qyA8IGFwcGFrdVwgOwor5aSn5YehIDwgb295b3NvXCA7Civpmo/miYAgPCB6dWlzaG9cIDsKK+mbheWuoiA8IGdha2FrdVwgOwor5aSp5YW1IDwgdGVucGVpXCA7CivptaUgPCBrYWtlc3VcIDsKK+maoOW/jSA8IGluJyduaW5cIDsKK+mZpOacjSA8IGpvZnVrdVwgOwor6bSsIDwgdWd1aXN1XCA7CivlpKflhaggPCB0YWl6ZW5cIDsKK+m0jiA8IGthbW9tZVwgOwor6Zu75ZG9IDwgZGVubWVpXCA7Civoo5zoqLsgPCBob2NodXVcIDsKK+aRuOeJjCA8IG1vdXBhaVwgOwor5oSb54WZ5a62IDwgYWllbmthXCA7Civpg6jlsYvnnYAgPCBoZXlhZ2lcIDsKK+mciuWJoyA8IHJlaWtlblwgOwor5pWw5ZCNIDwgc3V1bWVpXCA7Civooajpn7MgPCBoeW91b25cIDsKK+S6iOWCmeiyuyA8IHlvYmloaVwgOwor5aSW5YukIDwgZ2Fpa2luXCA7Civpmo/mhJ8gPCB6dWlrYW5cIDsKK+mxuCA8IHN1enVraVwgOwor54Kv55y8IDwga2VpZ2FuXCA7CivpsbAgPCBzaGlpcmFcIDsKK+WknOWHqiA8IHlvbmFnaVwgOwor6ZqP5oOzIDwgenVpc291XCA7CivpsLkgPCBrYXRzdW9cIDsKK+aOqOirliA8IHN1aXJvblwgOwor6bCvIDwgaXdhc2hpXCA7CivlpInlkI0gPCBoZW5tZWlcIDsKK+e1puayuSA8IGt5dXV5dVwgOwor6bCaIDwgaGFyYWthXCA7CivntYLnhIkgPCBzaHV1ZW5cIDsKK+mwhiA8IHNhd2FyYVwgOwor54ax5Z6LIDwgbmVra2VpXCA7Civpm7flkIwgPCByYWlkb3VcIDsKK+mcp+S4rSA8IG11Y2h1dVwgOwor6a+xIDwgc2hhY2hpXCA7Civpr7AgPCBuYW1henVcIDsKK+mvqCA8IGt1amlyYVwgOwor6a+jIDwgc3VydW1lXCA7CivmlbDljYMgPCBzdXVzZW5cIDsKK+aVsOWNgSA8IHN1dWp1dVwgOwor6KaB55SoIDwgeW91eW91XCA7CivntprmmKAgPCB6b2t1ZWlcIDsKK+WftOeUnyA8IGhhbnl1dVwgOwor5aSW5Ye6IDwgc290b2RlXCA7Civpm7LlkZEgPCB3YW50YW5cIDsKK+muqiA8IG1hZ3Vyb1wgOwor57WQ5rueIDwga2V0dGFpXCA7CivprpYgPCBrYWppa2FcIDsKK+eCieerryA8IHJvYmF0YVwgOwor6ZuR5aCxIDwgemFwcG91XCA7CivntK/niq8gPCBydWloYW5cIDsKK+aOqOioiCA8IHN1aWtlaVwgOwor54Wn5b+cIDwgc2hvdW91XCA7CivnuKvlkIggPCBob3Vnb3VcIDsKK+Wbm+maoyA8IHNoaXJpblwgOwor5aSW5YW4IDwgZ2FpdGVuXCA7CivngJjpgY7lmaggPCByb2tha2lcIDsKK+Wbm+mahSA8IHlvc3VtaVwgOwor5aCF54miIDwga2Vucm91XCA7CivngavnuIQgPCBoaW5hd2FcIDsKK+WkieWLlSA8IGhlbmRvdVwgOwor6ZqP5b6TIDwgenVpanV1XCA7Civpm4TlpKcgPCB5dXVkYWlcIDsKK+aWh+S+iyA8IGJ1bnJlaVwgOwor6Zuj5ZWPIDwgbmFubW9uXCA7CivmlZnllIYgPCBreW91c2FcIDsKK+aOouioqiA8IHRhbmJvdVwgOwor5o276LuiIDwgbmVudGVuXCA7CivmlZnlk6EgPCBreW91aW5cIDsKK+Wbs+mMsiA8IHp1cm9rdVwgOwor5aSn5LujIDwgZGFpZGFpXCA7Civoo5zliqnlk6EgPCBob2pvaW5cIDsKK+ijj+ilnyA8IHVyYWVyaVwgOwor5Zyf6LazIDwgZG9zb2t1XCA7CivlpJblgrUgPCBnYWlzYWlcIDsKK+aOiOizniA8IGp1c2hvdVwgOwor6KaL54mpIDwgbWltb25vXCA7CivlpKnkuLwgPCB0ZW5kb25cIDsKK+Wkp+S5sSA8IHRhaXJhblwgOwor54Wn5bqmIDwgc2hvdWRvXCA7CivmlofkurogPCBidW5qaW5cIDsKK+Wkp+S5lyA8IGRhaWpvdVwgOwor5aOy5ZOBIDwgYmFpaGluXCA7CivlpKnkuI4gPCB0ZW4nJ3lvXCA7CivlnLDorKEgPCBqaXV0YWlcIDsKK+ijveiMtiA8IHNlaWNoYVwgOwor5aSc5Ly9IDwgeW90b2dpXCA7CivlpJrkvZwgPCB0YXNha3VcIDsKK+mVt+iAhSA8IGNob3VqYVwgOwor5aOy5ZCNIDwgYmFpbWVpXCA7CivloYrmoLkgPCBrYWlrb25cIDsKK+eEmuabuCA8IGZ1bnNob1wgOwor5pGC55SfIDwgc2Vzc2VpXCA7CivplqLnqbogPCBrYW5rdXVcIDsKK+eEoeaYjiA8IG11bXlvdVwgOwor5q+U5LiY5bC8IDwgYmlrdW5pXCA7Civlm73pgYsgPCBrb2t1dW5cIDsKK+mWiee1jCA8IGhlaWtlaVwgOwor6KGA6aSFIDwga2VwcGVpXCA7Civpm7vlgZwgPCBkZW50ZWlcIDsKK+aVsOWApCA8IHN1dWNoaVwgOwor6Zai56iOIDwga2FuemVpXCA7CivmlbDlgI0gPCBzdXViYWlcIDsKK+WknOS4rSA8IHlvbmFrYVwgOwor5pWj5YW1IDwgc2FucGVpXCA7CivlpJbkurogPCBnYWlqaW5cIDsKK+Wjh+WgtCA8IGRhbmpvdVwgOwor5o2o6LqrIDwgc3V0ZW1pXCA7CivloZfmlpkgPCB0b3J5b3VcIDsKK+e0oOeEvCA8IHN1eWFraVwgOwor54WZ5bmVIDwgZW5tYWt1XCA7CivlpJbkubEgPCBnYWlyYW5cIDsKK+mbkeWTgSA8IHphcHBpblwgOwor6Kej5pWjIDwga2Fpc2FuXCA7Civmk7HluqcgPCBrYWt1emFcIDsKK+eyvueyviA8IHNlaXplaVwgOwor57W25pmvIDwgemVra2VpXCA7CivoqLHlrrkgPCBreW95b3VcIDsKK+WcsOijgSA8IGNoaXNhaVwgOwor57K+57KJIDwgc2VpZnVuXCA7CivpnpAgPCBrb2hhemVcIDsKK+aNlemAuCA8IGhvaXRzdVwgOwor5pWR5YqpIDwga3l1dWpvXCA7Civnsr7nsbMgPCBzZWltYWlcIDsKK+aUueWWhCA8IGthaXplblwgOwor5Zyn6KaaIDwgYWtrYWt1XCA7CivmlbDkurogPCBzdXVuaW5cIDsKK+mZsOW+syA8IGludG9rdVwgOwor54Gr56iuIDwgaGlkYW5lXCA7CivpnJ4gPCBrYXN1bWlcIDsKK+mcmSA8IG1pem9yZVwgOwor6Kit5a6aIDwgc2V0dGVpXCA7CivoqanlkJ8gPCBzaGlnaW5cIDsKK+mbmyA8IGhpeW9rb1wgOwor57Sv5ribIDwgcnVpZ2VuXCA7CivntJTnhLYgPCBqdW56ZW5cIDsKK+aVsOS4hyA8IHN1dW1hblwgOwor5aSJ5LmxIDwgaGVucmFuXCA7Civms6LmraLloLQgPCBoYXRvYmFcIDsKK+mZquW+kyA8IGJhaWp1dVwgOwor6KGj6YmiIDwgaWhhdHN1XCA7CivooqvopoYgPCBoaWZ1a3VcIDsKK+eCr+eCryA8IGtlaWtlaVwgOwor54Kt54GrIDwgc3VtaWJpXCA7Civlm73osrsgPCBrb2t1aGlcIDsKK+WcsOiZqyA8IG1pbWl6dVwgOwor5Zue6YGKIDwga2FpeXV1XCA7CivoprPmoZwgPCBrYW4nJ291XCA7CivmmJPli5XluqYgPCBpZG91ZG9cIDsKK+WeguevhCA8IHN1aWhhblwgOwor6Zuj5Lu2IDwgbmFua2VuXCA7CivoqJPlsI4gPCBrdW5kb3VcIDsKK+mRoiA8IHlhc3VyaVwgOwor57W15Zuz6Z2iIDwgZXp1bWVuXCA7CivmlZfkuqEgPCBoYWlib3VcIDsKK+WjsuS6uiA8IGJhaW5pblwgOwor5r2u6ZaTIDwgc2hpb21hXCA7Civoo7jlqabnlLsgPCByYWZ1Z2FcIDsKK+mbouS5syA8IHJpbnl1dVwgOwor6KOP6Iq4IDwgdXJhZ2VpXCA7Civlm57ou6IgPCBrYWl0ZW5cIDsKK+WgtOaVsCA8IGJha2F6dVwgOwor54Gr55q/IDwgaGl6YXJhXCA7CivmrankuIDmrakgPCBob2lwcG9cIDsKK+Wil+WkpyA8IHpvdWRhaVwgOwor57iB5YWIIDwgZW5zYWtpXCA7CivkuInljYHot68gPCBtaXNvamlcIDsKK+WjsuS4iiA8IHVyaWFnZVwgOwor6ZuR5L+zIDwgemFwcGFpXCA7Civlm73oqp4gPCBrb2t1Z29cIDsKK+mMuiA8IGthemFyaVwgOwor57WM5pu4IDwga2Vpc2hvXCA7CivmlLnlhYMgPCBrYWlnZW5cIDsKK+aPm+eulyA8IGthbnphblwgOwor57KX57KXIDwgYXJhYXJhXCA7CivngorniKggPCBzdWlzYW5cIDsKK+a/gOiqniA8IGdla2lnb1wgOwor57Sh5q+bIDwgYm91bW91XCA7CivnhKHlv4MgPCBtdXNoaW5cIDsKK+e0q+aqgCA8IHNoaXRhblwgOwor57iB5YG0IDwgZW5nYXdhXCA7CivkuI3mspnmsbAgPCBidXNhdGFcIDsKK+mKjSA8IGNoaXRzdVwgOwor6KOc57+SIDwgaG9zaHV1XCA7CivpmaPlsYsgPCBqaW4nJ3lhXCA7Civpm5Hku7YgPCB6YWtrZW5cIDsKK+mJiyA8IGthbicnbmFcIDsKK+S4jeatu+i6qyA8IGZ1amltaVwgOwor6ZuR5Lq6IDwgem91bmluXCA7Civnt7TlhbUgPCByZW5wZWlcIDsKK+Wik+WgtCA8IGhha2FiYVwgOwor6ZuF5L+XIDwgZ2F6b2t1XCA7CivphqogPCBtb3JvbWlcIDsKK+aUvuS7uyA8IGhvdW5pblwgOwor5Yqg5aWI6ZmAIDwga2FuYWRhXCA7CivmjqjogIMgPCBzdWlrb3VcIDsKK+e0lOavmyA8IGp1bm1vdVwgOwor57SF5raZIDwga291cnVpXCA7CivntKDmqLggPCBzb2Jva3VcIDsKK+WZtOmjryA8IGZ1bnBhblwgOwor57aZ5a2QIDwgbWFtYWtvXCA7CivntJTmraMgPCBqdW5zZWlcIDsKK+imh+alrSA8IGhhZ3lvdVwgOwor54Gr546JIDwgaGlkYW1hXCA7CivoqKrllY8gPCBob3Vtb25cIDsKK+mVt+ebriA8IG5hZ2FtZVwgOwor57Wx5b6hIDwgdG91Z3lvXCA7CivpgZYgPCBhcHBhcmVcIDsKK+ifu+mjnyA8IGFyaWt1aVwgOwor5pC+5rK5IDwgc2FrdXl1XCA7Civku6XpgaDmqKkgPCBpZW5rZW5cIDsKK+ihv+ijjyA8IGVyaXVyYVwgOwor6KOc57WmIDwgaG9reXV1XCA7Civmlr3ppJPprLwgPCBzZWdha2lcIDsKK+ipleS+oSA8IGh5b3VrYVwgOwor6ZaA55WqIDwgbW9uYmFuXCA7Civlm7PooaggPCB6dWh5b3VcIDsKK+i/miA8IHRvdGVtb1wgOwor57Gz57a/IDwgYmVpbWVuXCA7Civlobnlo5UgPCB6YW5nb3VcIDsKK+S4iemHjeecjCA8IG1pZWtlblwgOwor57eR5YyWIDwgcnlva2thXCA7CivpmYvlsYsgPCByb3Vva3VcIDsKK+WcsOiCjCA8IGppaGFkYVwgOwor6Ziy5by+IDwgYm91ZGFuXCA7CivlvqHmspnmsbAgPCBnb3NhdGFcIDsKK+iogOWkliA8IGdlbmdhaVwgOwor57eP5YuiIDwgc291emVpXCA7Civlm57oqJMgPCBrYWlrdW5cIDsKK+e1kOaIkCA8IGtlc3NlaVwgOwor6LuIIDwgeWFnYXRlXCA7CivntITmrL4gPCB5YWtrYW5cIDsKK+i6uyA8IHV0c3VrZVwgOwor6LquIDwgc2VnYXJlXCA7CivmkqTlu4MgPCB0ZXBwYWlcIDsKK+WboOilsiA8IGluc2h1dVwgOwor57Gz57KJIDwgYmVpZnVuXCA7CivnhanlirQgPCBoYW5yb3VcIDsKK+WiqOWIkSA8IGJva2tlaVwgOwor54Sh5a2mIDwgbXVnYWt1XCA7Civmr5vnubvlrZAgPCBrZWp1c3VcIDsKK+aPj+egtCA8IGJ5b3VoYVwgOwor5pGY5p6cIDwgdGVraWthXCA7CivpmbDlmqIgPCBmdWd1cmlcIDsKK+i4tSA8IGtha2F0b1wgOwor5LiN5ZCM5oSPIDwgZnVkb3VpXCA7Civmi7PpioMgPCBrZW5qdXVcIDsKK+evgOmFkiA8IHNlc3NodVwgOwor5Zm06ZaAIDwgZnVubW9uXCA7Civooajoo48gPCBoeW91cmlcIDsKK+maj+WIhiA8IHp1aWJ1blwgOwor57W25a++IDwgemV0dGFpXCA7Civnspfnm64gPCB6YXJhbWVcIDsKK+a8oumfsyA8IGthbicnb25cIDsKK+aMh+i8qiA8IHl1Yml3YVwgOwor57KJ56CVIDwgZnVuc2FpXCA7CivpmbDllIcgPCBpbnNoaW5cIDsKK+mao+S6uiA8IHJpbmppblwgOwor57Gz56qBIDwgbcSTdG9ydVwgOwor57Sg5pW1IDwgc3V0ZWtpXCA7CivlopfliIogPCB6b3VrYW5cIDsKK+Wil+WIhiA8IHpvdWJ1blwgOwor5r2u6LevIDwgc2hpb2ppXCA7CivooZPoqIggPCBqdWtrZWlcIDsKK+e0jeadryA8IG5vdWhhaVwgOwor6KGG6K2wIDwgc2h1dWdpXCA7CivngrnmlbAgPCB0ZW5zdXVcIDsKK+e0jeacrCA8IG5vdWhvblwgOwor5ouz6YGTIDwga29uZG91XCA7CivpmaPllrYgPCBqaW4nJ2VpXCA7CivntJnmlbAgPCBzaGlzdXVcIDsKK+e0m+aTviA8IGZ1bmpvdVwgOwor6ZaA54GvIDwgbW9udG91XCA7Civmi6Dph5EgPCBreW9raW5cIDsKK+mWgOeBqyA8IGthZG9iaVwgOwor57W25aW9IDwgemVra291XCA7CivntKDmj48gPCBzb2J5b3VcIDsKK+iisee0lyA8IGZ1a3VzYVwgOwor6ZqP5Ly0IDwgenVpaGFuXCA7Civmj5DnkLQgPCB0ZWlraW5cIDsKK+iomOWFpSA8IGtpbnl1dVwgOwor5Zyo57GzIDwgemFpYmVpXCA7Civopprmgp8gPCBrYWt1Z29cIDsKK+Wil+S/uCA8IHpvdWhvdVwgOwor5aKX5L6/IDwgem91YmluXCA7CivoqIEgPCBnb25iZW5cIDsKK+a8j+mbuyA8IHJvdWRlblwgOwor5LqI5YKZ56eRIDwgeW9iaWthXCA7CivopJDngq0gPCBrYXR0YW5cIDsKK+aOu+eXkiA8IHNvdXlvdVwgOwor54KJ5qOaIDwgcm9kYW5hXCA7CivlooPlhoUgPCBrZWlkYWlcIDsKK+aOqOefpSA8IHN1aWNoaVwgOwor54Gr5rC0IDwgaGltaXp1XCA7CivopoHmiYAgPCB5b3VzaG9cIDsKK+WcsOeojiA8IGNoaXplaVwgOwor57W55ZywIDwga2ludWppXCA7CivmsZ/miLjliY0gPCBlZG9tYWVcIDsKK+eyvua2siA8IHNlaWVraVwgOwor5o6i55+lIDwgdGFuY2hpXCA7Civlmajph48gPCBraXJ5b3VcIDsKK+igjSA8IHNhc29yaVwgOwor6ZW35rmvIDwgbmFnYXl1XCA7CivmvLjov5EgPCB6ZW5raW5cIDsKK+mZouWGhSA8IGluJyduYWlcIDsKK+WgtOWkliA8IGpvdWdhaVwgOwor5Z6C5rqWIDwgc3VpanVuXCA7CivnhKHlkYogPCBtdWtva3VcIDsKK+iok+S7pCA8IGt1bnJlaVwgOwor57Sv5bm0IDwgcnVpbmVuXCA7CivlnKfnpZ4gPCBhc3NoaW5cIDsKK+exs+eUoyA8IGJlaXNhblwgOwor57WQ5amaIDwga2Vra29uXCA7CivntI3miYAgPCBuYXNzaG9cIDsKK+ibjSA8IGhvdGFydVwgOwor5pKk5ZueIDwgdGVra2FpXCA7CivnsaDnm64gPCBrYWdvbWVcIDsKK+e0lOaEmyA8IGp1bicnYWlcIDsKK+aJi+m8uyA8IHRlYmFuYVwgOwor6ZW35rOiIDwgY2hvdWhhXCA7CivlnoLmto4gPCB6dWl6ZW5cIDsKK+e0ouW8lSA8IHNha3VpblwgOwor57SU5oOFIDwganVuam91XCA7Civntbblk4EgPCB6ZXBwaW5cIDsKK+aOoueVqiA8IHRhbmJhblwgOwor6ZaA5q2vIDwgbW9uc2hpXCA7Civmv4PntLogPCBub3Vrb25cIDsKK+e0hOaJiyA8IHlha3V0ZVwgOwor6Ja6IDwgbmF6dW5hXCA7CivoobDogJcgPCBzdWltb3VcIDsKK+ethumgrSA8IGhpdHRvdVwgOwor5o6h55SoIDwgc2FpeW91XCA7CivmjZXnuJsgPCBob2Jha3VcIDsKK+iVqCA8IHdhcmFiaVwgOwor57KJ54KtIDwgZnVudGFuXCA7CivpmarkuZcgPCBiYWlqb3VcIDsKK+iUtiA8IHNvbm9rb1wgOwor5Zyn552AIDwgYXRzdWdpXCA7CivlnqPmoLkgPCBrYWtpbmVcIDsKK+iTrCA8IHlvbW9naVwgOwor6Kej5YmWIDwga2FpYm91XCA7CivntbHlkIggPCB0b3Vnb3VcIDsKK+Wcn+efsyA8IGRvc2VraVwgOwor6JKFIDwgc3VrdW1vXCA7CivlnLDnlaogPCBjaGliYW5cIDsKK+eEmuWIkSA8IGZ1bmtlaVwgOwor57Sw5a2XIDwgaG9zb2ppXCA7CivnhKHlhJ8gPCBtdXNob3VcIDsKK+e1guWknCA8IHNodXV5YVwgOwor6KiA5LiKIDwgZ29uam91XCA7Civkv53orbfljLogPCBob2dva3VcIDsKK+mWk+acjSA8IGFpZnVrdVwgOwor5rWF6IyF55SfIDwgYXNhaml1XCA7CivnhKHlgrcgPCBtdWtpenVcIDsKK+aSpOWOuyA8IHRla2t5b1wgOwor6Iy4IDwga2lub2tvXCA7Civlm6DnuIEgPCBpbicnbmVuXCA7CivlmIbpoZggPCB0YW5nYW5cIDsKK+a+seeyiSA8IGRlbnB1blwgOwor6KaB5a6zIDwgeW91Z2FpXCA7CivntJnlsYsgPCBrYW1peWFcIDsKK+mWk+aVsCA8IG1ha2F6dVwgOwor5Zu956aBIDwga29ra2luXCA7CivmjL/ntbUgPCBzYXNoaWVcIDsKK+WcsOeNhCA8IGppZ29rdVwgOwor5Z6C5qWKIDwgc3VpeW91XCA7CivlnJ/nlKMgPCBtaXlhZ2VcIDsKK+ino+S9kyA8IGthaXRhaVwgOwor5o6l54K5IDwgc2V0dGVuXCA7Civlm73npI4gPCBrb2t1c29cIDsKK+iGoCA8IG5pa2F3YVwgOwor56uv6bqXIDwgdGFucmVpXCA7CivooYDohr8gPCBjaGl1bWlcIDsKK+ino+S7uyA8IGthaW5pblwgOwor57SZ5a2QIDwga2FtaWtvXCA7Civngq3lsaQgPCB0YW5zb3VcIDsKK+aSpOWFtSA8IHRlcHBlaVwgOwor57Sv5aKXIDwgcnVpem91XCA7CivooYzogIUgPCBneW91amFcIDsKK+eDiOWjqyA8IHJlc3NoaVwgOwor5ryr6KuHIDwgbWFuZGFuXCA7CivmiYvpp5IgPCB0ZWdvbWFcIDsKK+WgheWhgSA8IGtlbnJ1aVwgOwor5a625YW35bGLIDwga2FndXlhXCA7CivmiYvpppYgPCB0ZWt1YmlcIDsKK+Wwj+awl+WRsyA8IGtva2ltaVwgOwor54KJ5b+DIDwgcm9zaGluXCA7CivnrYbpi5IgPCBoaXBwb3VcIDsKK+WgguWggiA8IGRvdWRvdVwgOwor6Kaq5ZKMIDwgc2hpbndhXCA7CivlnoLmnKggPCB0YXJ1a2lcIDsKK+WgtOWGhSA8IGpvdW5haVwgOwor5oyJ6IW5IDwgYW5wdWt1XCA7CivlnLDngrkgPCBjaGl0ZW5cIDsKK+mXh+WxiyA8IHlhbWl5YVwgOwor57W25LiWIDwgemVzc2VpXCA7CivntYTlkIggPCBrdW1pYWlcIDsKK+aJi+mggyA8IHRlZ29yb1wgOwor6KaG5ZyfIDwgZnVrdWRvXCA7Civln7nlnLAgPCBiYWljaGlcIDsKK+WbnuekvCA8IGthaXJlaVwgOwor5omA6aGYIDwgc2hvZ2FuXCA7CivntZDlhZogPCBrZXR0b3VcIDsKK+e0lOWilyA8IGp1bnpvdVwgOwor57iFIDwgb2Rvc2hpXCA7Civoo73mnZAgPCBzZWl6YWlcIDsKK+eDmeWNsCA8IHJha3VpblwgOwor5omL6ZqbIDwgdGVnaXdhXCA7CivmiYvpmpkgPCB0ZXN1a2lcIDsKK+imquWIhiA8IG95YWJ1blwgOwor562J6L66IDwgdG91aGVuXCA7CivngrnlnKggPCB0ZW56YWlcIDsKK+e1puS4jiA8IGt5dXV5b1wgOwor54Kt5aG1IDwgdGFuamluXCA7CivnspfmnI0gPCBzb2Z1a3VcIDsKK+Wfn+WkliA8IGlraWdhaVwgOwor57Sw5ZCbIDwgc2Fpa3VuXCA7CivlpKnompXns7ggPCB0ZWd1c3VcIDsKK+ezkiA8IGhvc2hpaVwgOwor5ouZ6JGXIDwgc2V0Y2hvXCA7CivmiYvplbcgPCB0ZW5hZ2FcIDsKK+mXh+WknCA8IHlhbWl5b1wgOwor5Zu9546LIDwga29rdW91XCA7CivnsonmnKwgPCBmdW5wb25cIDsKK+Wcj+eCuSA8IGtlbnRlblwgOwor54Gr5bqKIDwgaGlkb2tvXCA7CivooYDnrqEgPCBrZWtrYW5cIDsKK+e1jOS8nSA8IGtlaWRlblwgOwor6KGo55quIDwgaHlvdWhpXCA7CivnrIIgPCB1dHN1Ym9cIDsKK+aOkuawtCA8IGhhaXN1aVwgOwor5Zu954i2IDwga29rdWZ1XCA7CivntLDliIYgPCBzYWlidW5cIDsKK+eriCA8IGthbWFkb1wgOwor5oyB57aaIDwgaml6b2t1XCA7Civmj6HmiYsgPCBha3VzaHVcIDsKK+aJi+mNiyA8IHRlbmFiZVwgOwor56uc6aasIDwgcnl1dW1lXCA7Civnqq7pvKAgPCBreXV1c29cIDsKK+WfjuWhgSA8IGpvdXJ1aVwgOwor5ruR6LuKIDwga2Fzc2hhXCA7Civnq6XpoZQgPCBkb3VnYW5cIDsKK+enpCA8IGhha2FyaVwgOwor6ZaA5byfIDwgbW9udGVpXCA7CivmiKbpm7IgPCBzZW4nJ3VuXCA7CivnpoogPCBtaXNvZ2lcIDsKK+aJi+mJpCA8IHRla2FnaVwgOwor5rm+6aCtIDwgd2FudG91XCA7CivntI3lk4EgPCBub3VoaW5cIDsKK+aQjeWusyA8IHNvbmdhaVwgOwor57Gz5p2QIDwgYmVpemFpXCA7CivnlbDmlofljJYgPCBpYnVua2FcIDsKK+a6gOmdoiA8IG1hbm1lblwgOwor56uc6aCtIDwgcnl1dXp1XCA7Civllqvpo68gPCBraXBwYW5cIDsKK+e0ouWFtyA8IHNha3VndVwgOwor6KOP5p2/IDwgdXJhaXRhXCA7CivmiYvphYwgPCB0ZWpha3VcIDsKK+aLmeiAhSA8IHNlc3NoYVwgOwor56CmIDwgdG9yaWRlXCA7CivplbfluqcgPCBjaG91emFcIDsKK+mWieWxsSA8IGhlaXphblwgOwor5Zyw5qScIDwgY2hpa2VuXCA7CivplovlsIEgPCBrYWlmdXVcIDsKK+eCreWKtCA8IHRhbnJvdVwgOwor57SU5YiGIDwganVuYnVuXCA7Civlnabmh5AgPCB0YW5rYWlcIDsKK+a6gOmWiyA8IG1hbmthaVwgOwor57Sv5LmXIDwgcnVpam91XCA7Civmjqjmlq0gPCBzdWlkYW5cIDsKK+aJueiplSA8IGhpaHlvdVwgOwor5o6I5qWtIDwganVneW91XCA7CivkvY3nm7jlt64gPCBpc291c2FcIDsKK+e0r+S4liA8IHJ1aXNlaVwgOwor6KGA55u4IDwga2Vzc291XCA7CivopIfluqcgPCBmdWt1emFcIDsKK+a/g+a3oSA8IG5vdXRhblwgOwor5omL6Lu9IDwgdGVnYXJ1XCA7CivlnKjmoKEgPCB6YWlrb3VcIDsKK+ikpeWppiA8IGpva3VmdVwgOwor6ZW35bGLIDwgbmFnYXlhXCA7CivooYDnl7AgPCBrZXR0YW5cIDsKK+mWi+WniyA8IGthaXNoaVwgOwor5Z+f5YaFIDwgaWtpbmFpXCA7Civplbflr78gPCBjaG91anVcIDsKK+WcqOadpSA8IHphaXJhaVwgOwor6KOB5patIDwgc2FpZGFuXCA7Civnk7wgPCBzYXJha2VcIDsKK+aKnOiQgyA8IGJhc3N1aVwgOwor57Sb5LqJIDwgZnVuc291XCA7CivmiYvotrMgPCB0ZWFzaGlcIDsKK+Wcp+acjSA8IGFwcHVrdVwgOwor57Sb5LmxIDwgZnVucmFuXCA7CivmvbDnmI0gPCBrYWl5b3VcIDsKK+aOqOaMmSA8IHN1aWt5b1wgOwor5Zu95q+NIDwga29rdWJvXCA7CivnspLluqYgPCByeXV1ZG9cIDsKK+WcsOaWhyA8IGNoaW1vblwgOwor6JaU6JaH5ZySIDwgYmFyYWVuXCA7CivmuLjprZogPCB5dXVneW9cIDsKK+Wcn+acqCA8IGRvYm9rdVwgOwor57Gz5oeHIDwgYmVpa29uXCA7CivplqPlk6EgPCBrYWt1aW5cIDsKK+mWgOWkliA8IG1vbmdhaVwgOwor5o265p+TIDwgbmFzc2VuXCA7Civln47lhbUgPCBqb3VoZWlcIDsKK+a8geiIuSA8IGd5b3NlblwgOwor6YGO5rih5pyfIDwga2F0b2tpXCA7Civpl4flgKQgPCB5YW1pbmVcIDsKK+eLuCA8IHRhbnVraVwgOwor5oyB55eFIDwgamlieW91XCA7CivplbflpbMgPCBjaG91am9cIDsKK+WbveaoqSA8IGtva2tlblwgOwor57SK5LmxIDwgYnVucmFuXCA7CivlnJ/mlrkgPCBkb2thdGFcIDsKK+aJk+iouiA8IGRhc2hpblwgOwor5Zyn5pC+IDwgYXNzYWt1XCA7CivmvJTnubkgPCBlbicnZWtpXCA7Civoo5zlvLcgPCBob2t5b3VcIDsKK+mWgOWcsCA8IG1vbmNoaVwgOwor56uL6YyQIDwgcmlzc3VpXCA7CivlloTpmqMgPCB6ZW5yaW5cIDsKK+aIpui7iiA8IHNlbnNoYVwgOwor5omL6KixIDwgdGVtb3RvXCA7CivoobDmrosgPCBzdWl6YW5cIDsKK+eyieWxiyA8IGtvbmF5YVwgOwor5omA6KuWIDwgc2hvcm9uXCA7Civlm6PmrJIgPCBkYW5yYW5cIDsKK+a6gOi8iSA8IG1hbnNhaVwgOwor5bGF5aC05omAIDwgaWJhc2hvXCA7CivmuoDou4ogPCBtYW5zaGFcIDsKK+WcqOaJgCA8IHphaXNob1wgOwor57Gz5bidIDwgYmVpdGVpXCA7Civllp3ph4cgPCBrYXNzYWlcIDsKK+ibrumiqCA8IGJhbnB1dVwgOwor5oeH6aGYIDwga29uZ2FuXCA7CivnrYboh7QgPCBoaXRjaGlcIDsKK+Wbs+afhCA8IHp1Z2FyYVwgOwor5oiK6L6wIDwgYm9zaGluXCA7Civlm73mmK8gPCBrb2t1emVcIDsKK+eznuS+vyA8IGZ1bmJlblwgOwor6YGV5ZKM5oSfIDwgaXdha2FuXCA7Civmva7ngKwgPCBzaGlvc2VcIDsKK+erpeiyniA8IGRvdXRlaVwgOwor56qB6aKoIDwgdG9wcHV1XCA7CivngavlhYggPCBob3Nha2lcIDsKK+exs+WxiyA8IGtvbWV5YVwgOwor54Gr5YWDIDwgaGltb3RvXCA7CivlnLDlvaIgPCBjaGlrZWlcIDsKK+a4miA8IG5hZ2lzYVwgOwor57K+5YukIDwgc2Vpa2luXCA7Civmipzns7ggPCBiYXNzaGlcIDsKK+eptOmmrCA8IGFuYXVtYVwgOwor54Gr5YK3IDwgeWFrZWRvXCA7Civmu4Xoj4wgPCBtZWtraW5cIDsKK+eUn+iVjum6piA8IGtpc29iYVwgOwor562G6ICVIDwgaGlra291XCA7Civpjq7orbcgPCBjaGluZ29cIDsKK+ibrumatyA8IGJhbnJlaVwgOwor5raOIDwgeW9kYXJlXCA7CivnrYbogIUgPCBoaXNzaGFcIDsKK+WcqOW9uSA8IHphaWVraVwgOwor5Zyw5bmzIDwgY2hpaGVpXCA7CivmjqjlrpogPCBzdWl0ZWlcIDsKK+WVj+mhjCA8IG1vbmRhaVwgOwor6ZaA5YmNIDwgbW9uemVuXCA7Civlm5vmoYEgPCB5b2tldGFcIDsKK+ihjOauiiA8IGd5b3Vqb1wgOwor56m66Z+zIDwgc29yYW5lXCA7CivlnKflu7YgPCBhdHN1ZW5cIDsKK+mWgOWHuiA8IGthZG9kZVwgOwor5o6h5a+4IDwgc2Fpc3VuXCA7Civmibbnv7wgPCBmdXlva3VcIDsKK+axgCA8IG1pZ2l3YVwgOwor5rC1IDwgc2FuenVpXCA7CivnsaDlsYUgPCByb3VreW9cIDsKK+aHuOi7jSA8IGtlbmd1blwgOwor56m66Zu7IDwga3V1ZGVuXCA7Civoo73lk4EgPCBzZWloaW5cIDsKK+epuumamyA8IGt1dXNhaVwgOwor6Y2b6YysIDwgdGFucmVuXCA7Civlm73mioAgPCBrb2t1Z2lcIDsKK+mMsumfsyA8IHJva3VvblwgOwor5omA6JS1IDwgc2hvem91XCA7CivplovkvJogPCBrYWlrYWlcIDsKK+a9n+a5liA8IHNla2lrb1wgOwor5LiN5rCX5ZGzIDwgYnVraW1pXCA7CivllonovKogPCBub2Rvd2FcIDsKK+a4i+mdoiA8IGp1dW1lblwgOwor6ZaJ5LyaIDwgaGVpa2FpXCA7CivnrYbntJkgPCBoaXNzaGlcIDsKK+epuumWqCA8IGt1dWtlaVwgOwor5ryU55uuIDwgZW5tb2t1XCA7CivnqbrplpMgPCBrdXVrYW5cIDsKK+aotSA8IGtpa29yaVwgOwor5qiuIDwgaG9rdXNvXCA7CivmiY3oirggPCBzYWlnZWlcIDsKK+ikh+WIqSA8IGZ1a3VyaVwgOwor6KOP5aOwIDwgdXJhZ29lXCA7Civmu57ntI0gPCB0YWlub3VcIDsKK+aLoOeCuSA8IGt5b3RlblwgOwor5omL6Iq4IDwgc2h1Z2VpXCA7CivmuKzpiZsgPCBzb2t1ZW5cIDsKK+WcqOWumCA8IHphaWthblwgOwor5Zm054WZIDwgZnVuJydlblwgOwor5qWUIDwga3VzYWJpXCA7CivmvILnoIIgPCBoeW91c2FcIDsKK+mWgOS6uiA8IG1vbmppblwgOwor5qSqIDwga3VudWdpXCA7CivnrYbnrpcgPCBoaXNzYW5cIDsKK+WbveaBqSA8IGtva3VvblwgOwor5omN6IWVIDwgc2Fpd2FuXCA7Civlm7DmhoogPCBrb25wYWlcIDsKK+evgOawtCA8IHNlc3N1aVwgOwor562G56uvIDwgaGl0dGFuXCA7CivmiYvohZUgPCBzaHV3YW5cIDsKK+a9nOawtCA8IHNlbnN1aVwgOwor5r+A5oCSIDwgZ2VraWRvXCA7CivmiY3og70gPCBzYWlub3VcIDsKK+mNm+mAoCA8IHRhbnpvdVwgOwor5qCeIDwgc2hpb3JpXCA7CivlnLDlpIkgPCBjaGloZW5cIDsKK+ihgOagkyA8IGtlc3NlblwgOwor5omL6IG3IDwgdGVqb2t1XCA7CivnqpPovrogPCBtYWRvYmVcIDsKK+ihk+aVsCA8IGp1c3N1dVwgOwor5p2OIDwgc3Vtb21vXCA7Civmv4HluqYgPCBkYWt1ZG9cIDsKK+WcqOWkqSA8IHphaXRlblwgOwor5Zyo5aSWIDwgemFpZ2FpXCA7CivooYDmm7ggPCBrZXNzaG9cIDsKK+WcsOWfnyA8IGNoaWlraVwgOwor5pqmIDwga295b21pXCA7CivmuJvphY0gPCBnZW5wYWlcIDsKK+epjembsiA8IHNla2l1blwgOwor5pi0IDwgc3ViYXJ1XCA7CivmuoDokpkgPCBtYW5tb3VcIDsKK+W+oeats+aariA8IG9zZWlib1wgOwor5ry45ribIDwgemVuZ2VuXCA7Civmu5HnqbogPCBrYWtrdXVcIDsKK+a3semWkyA8IGZ1a2FtYVwgOwor6KGA5paRIDwga2VwcGFuXCA7CivnqJrpsKQgPCB3YXJhc2FcIDsKK+a4m+mAgCA8IGdlbnRhaVwgOwor56uv6ImHIDwgdGFudGVpXCA7CivmjqXlkLsgPCBzZXBwdW5cIDsKK+aLmOazpSA8IGtvdWRlaVwgOwor562L55uuIDwgc3VqaW1lXCA7CivnqJrpro4gPCBjaGlheXVcIDsKK+S6iOWCmeWToSA8IHlvYmlpblwgOwor6Jyl6Jy0IDwgdG9rYWdlXCA7Civmi53mrr8gPCBoYWlkZW5cIDsKK+eomumtmiA8IGNoaWd5b1wgOwor5pig55S75YyWIDwgZWlnYWthXCA7CivlmbTmsLQgPCBmdW5zdWlcIDsKK+aJi+e0mSA8IHRlZ2FtaVwgOwor56+G5pu4IDwgdGVuc2hvXCA7CivnqK7poZ4gPCBzaHVydWlcIDsKK+a4hemFkiA8IHNlaXNodVwgOwor57KJ5L2TIDwgZnVudGFpXCA7CivllYbpgYsgPCBzaG91dW5cIDsKK+epuui7oiA8IGt1dXRlblwgOwor5qyn5Y2w6KqeIDwgb3VpbmdvXCA7CivlnYfliIYgPCBraW5idW5cIDsKK+a7heengSA8IG1lc3NoaVwgOwor56m66LuNIDwga3V1Z3VuXCA7Civnqbrou4ogPCBrdXVzaGFcIDsKK+eyi+S6uiA8IHN1aWppblwgOwor5Zuz5qGI5a62IDwgenVhbmthXCA7CivmiYvnsaAgPCB0ZWthZ29cIDsKK+a6gOiFlCA8IG1hbmtvdVwgOwor5oqr54CdIDwgaGlyZWtpXCA7CivmiYvnrrEgPCB0ZWJha29cIDsKK+aJi+euoSA8IHRla3VkYVwgOwor5omL562LIDwgdGVzdWppXCA7CivmiYvnrYggPCB0ZWhhenVcIDsKK+aMmeaJiyA8IGt5b3NodVwgOwor5omWIDwgaGFtZXJ1XCA7CivnqoHosqsgPCB0b2trYW5cIDsKK+eruee4gSA8IHRha2VlblwgOwor5o6S5Y21IDwgaGFpcmFuXCA7Civmua/oirEgPCB5dWJhbmFcIDsKK+aHh+iriyA8IGtvbnNlaVwgOwor5oeH6KuHIDwga29uZGFuXCA7CivmjajloLQgPCBzdXRlYmFcIDsKK+a5r+iIuSA8IHl1YnVuZVwgOwor6KGG5oSaIDwgc2h1dWd1XCA7CivmhpYgPCBuYW1hamlcIDsKK+a3semDqCA8IHNoaW5idVwgOwor5oi457GNIDwga29zZWtpXCA7Civnr4Dmk40gPCBzZXNzb3VcIDsKK+iiq+WRiiA8IGhpa29rdVwgOwor5ruF55u4IDwgbWVzc291XCA7Civnq6/nt5ogPCB0YW5zZW5cIDsKK+err+e3kiA8IHRhbmNob1wgOwor5Zyo5YukIDwgemFpa2luXCA7CivmvZTmlo4gPCBrZXNzYWlcIDsKK+Wcp+WLnSA8IGFzc2hvdVwgOwor5rW36bygIDwgbmFtYWtvXCA7CivmjqXkvLQgPCBzZXBwYW5cIDsKK+erueewgCA8IHRha2VzdVwgOwor5Zyw5YWDIDwgamltb3RvXCA7CivmtrLpnaIgPCBla2ltZW5cIDsKK+ibh+i2syA8IGRhc29rdVwgOwor5Zu95ZyfIDwga29rdWRvXCA7Civlv5zmj7TmrYwgPCBvdWVua2FcIDsKK+epuuirliA8IGt1dXJvblwgOwor56m66KuHIDwga3V1ZGFuXCA7CivlvaAgPCBrdXdha3VcIDsKK+a8gea4ryA8IGd5b2tvdVwgOwor5oSb6bOlIDwgYWljaG91XCA7Civlu5MgPCBrdXJ1d2FcIDsKK+igseaDkSA8IGtvd2FrdVwgOwor5o6S5L6/IDwgaGFpYmVuXCA7Civlm73llrYgPCBrb2t1ZWlcIDsKK+W5nyA8IG5vYm9yaVwgOwor5bmJIDwgdGF6dW5hXCA7Civmi67mja4gPCBraWtreW9cIDsKK+aMr+WtkCA8IGZ1cmlrb1wgOwor5Zm45pWwIDwgdG9uc3V1XCA7CivmvIHms5UgPCBneW9ob3VcIDsKK+Wbo+WhiiA8IGRhbmthaVwgOwor5Zyw5LujIDwgY2hpZGFpXCA7Civllqvnt4ogPCBraWtraW5cIDsKK+aJi+eZliA8IHRla3VzZVwgOwor6Yyv6KqkIDwgc2FrdWdvXCA7CivnqI7plqIgPCB6ZWlrYW5cIDsKK+W1kCA8IGFyYXNoaVwgOwor5ryB5rCRIDwgZ3lvbWluXCA7CivlnKjkvY8gPCB6YWlqdXVcIDsKK+iaiumJpCA8IGthYmFyaVwgOwor5Zyo5Lu7IDwgemFpbmluXCA7Civmva7lubIgPCBzaGlvaGlcIDsKK+a1t+mtmiA8IGthaWd5b1wgOwor566X5pWwIDwgc2Fuc3V1XCA7CivlnJ/kv7UgPCBkb2h5b3VcIDsKK+Wcn+S/lyA8IGRvem9rdVwgOwor5omT55CDIDwgZGFreXV1XCA7CivpvLvpj6EgPCBiaWt5b3VcIDsKK+aOiOS5syA8IGp1bnl1dVwgOwor5rW36amiIDwgYXNoaWthXCA7CivmvKvmlocgPCBtYW5idW5cIDsKK+ihqOWcnyA8IGh5b3Vkb1wgOwor5Zu95YuZIDwga29rdW11XCA7CivmiJHnrYkgPCB3YXJlcmFcIDsKK+aMveWbniA8IGJhbmthaVwgOwor56m66JmaIDwga3V1a3lvXCA7CivlnJ/kuK0gPCBkb2NodXVcIDsKK+aJgOeUoyA8IHNob3NhblwgOwor5aufIDwgaml5dWt1XCA7Civono3ngrkgPCB5dXV0ZW5cIDsKK+a8ouaWhyA8IGthbmJ1blwgOwor5omL546JIDwgdGVkYW1hXCA7Civllqrnq6AgPCBtb3Nob3VcIDsKK+Wbo+WToSA8IGRhbicnaW5cIDsKK+aJi+eLrSA8IHRlemVtYVwgOwor5Zu95YWJIDwga29ra291XCA7CivpioDpsZcgPCBnaW5yaW5cIDsKK+mYv+iYremZgCA8IG9yYW5kYVwgOwor5ZWT6JKZIDwga2VpbW91XCA7CivooYblpJogPCBzaHV1dGFcIDsKK+eojumHkSA8IHplaWtpblwgOwor6buS6bWQIDwga3Vyb2ppXCA7CivooI/luqcgPCBrYW5pemFcIDsKK+a8geadkSA8IGd5b3NvblwgOwor5rW36ZujIDwga2FpbmFuXCA7CivnqbrojbcgPCBrYXJhbmlcIDsKK+Wbm+WNgyA8IHlvbnNlblwgOwor5Zub5Y2BIDwgeW9uanV1XCA7Civlm73kvJogPCBrb2trYWlcIDsKK+WctyA8IGFrdXRzdVwgOwor5Zuz5L2TIDwgenV1dGFpXCA7CivnrrHlsYsgPCBoYWtveWFcIDsKK+a7heazlSA8IG1lcHBvdVwgOwor5oq15oqXIDwgdGVpa291XCA7Civmv4HkuJYgPCBkYWt1c2VcIDsKK+eEoeaFiOaCsiA8IG11amloaVwgOwor6b2y6J2VIDwgdXNob2t1XCA7CivooajlhbcgPCBoeW91Z3VcIDsKK+a8geaSiCA8IGd5b3JvdVwgOwor5rib6ICXIDwgZ2VubW91XCA7CivooYzlj7ggPCBneW91amlcIDsKK+WPl+ipseWZqCA8IGp1d2FraVwgOwor56qS57SgIDwgY2hpc3NvXCA7Civpi63op5IgPCBlaWtha3VcIDsKK+enmOmMsiA8IGhpcm9rdVwgOwor57+76LuK6a2aIDwgbWFuYm91XCA7CivkuI3lh7rmnaUgPCBmdWRla2lcIDsKK+ihsOS6oSA8IHN1aWJvdVwgOwor56uc546LIDwgcnl1dW91XCA7CivlmbTlsIQgPCBmdW5zaGFcIDsKK+WQjiA8IGtpc2FraVwgOwor5ZWP572qIDwgbW9uemFpXCA7Civpm5HprZrlr50gPCB6YWtvbmVcIDsKK+WOoCA8IGthd2F5YVwgOwor6JuH6IW5IDwgamFiYXJhXCA7CivkvIrlpKrliKkgPCBpdGFyaWlcIDsKK+aJi+awtCA8IHRlbWl6dVwgOwor5oSb6YO3IDwgYWlreW91XCA7CivppYLpo6nnsokgPCB1ZG9ua29cIDsKK+aJi+avrCA8IHRlbWFyaVwgOwor5oqY5oqYIDwgb3Jpb3JpXCA7Civmua/njokgPCB5dWRhbWFcIDsKK+aMmeWLlSA8IGt5b2RvdVwgOwor5rWB6Z+zIDwgcnl1dW9uXCA7CivmiYvmrrUgPCBzaHVkYW5cIDsKK+a1gemcsiA8IHJ5dXVyb1wgOwor5oqK5o2JIDwgaGFzb2t1XCA7CivmtYHpm6IgPCByeXV1cmlcIDsKK+m8oOiziiA8IHNvem9rdVwgOwor55SY5rW36ICBIDwgYW1hZWJpXCA7CivmjJnlhbUgPCBreW9oZWlcIDsKK+a4qeeqgSA8IG9uZG9ydVwgOwor5omL5qmfIDwgdGViYXRhXCA7CivlhZwgPCBrYWJ1dG9cIDsKK+aLt+WVjyA8IGdvdW1vblwgOwor6J6N5pyXIDwgeXV1cm91XCA7CivpurrpoZ4gPCBtZW5ydWlcIDsKK+a4m+eulyA8IGdlbnphblwgOwor5omL5qWtIDwgdGV3YXphXCA7CivmvLjlopcgPCB6ZW56b3VcIDsKK+a1t+i7jSA8IGthaWd1blwgOwor5raI6LK7IDwgc2hvdWhpXCA7CivmtarpgJ8gPCBuYW5pd2FcIDsKK+mKgOmJsSA8IGdpbmtvdVwgOwor5ZWP562UIDwgbW9uZG91XCA7CivlkLnps7QgPCBzdWltZWlcIDsKK+ethuaJjSA8IGhpc3NhaVwgOwor6YqA6Yi0IDwgZ2lucmVpXCA7CivmuIXntJQgPCBzZWlqdW5cIDsKK+ethuaIpiA8IGhpc3NlblwgOwor5bCP6aas6bm/IDwga29iYWthXCA7CivomZroqpUgPCBreW90YW5cIDsKK+a3i+iPjCA8IHJpbmtpblwgOwor5rib56iOIDwgZ2VuemVpXCA7CivnrZblv5wgPCBzYWt1b3VcIDsKK+epuuepuiA8IGt1dWt1dVwgOwor56u25q2pIDwga3lvdWhvXCA7CivmuKnnn7MgPCBvbmpha3VcIDsKK+iZmuiogCA8IGt5b2dlblwgOwor5omL5p+EIDwgdGVnYXJhXCA7CivmiYvmnrcgPCB0ZWthc2VcIDsKK+a3t+e3miA8IGtvbnNlblwgOwor5LuHIDwga2F0YWtpXCA7CivnrYbmhI8gPCBoaXRzdWlcIDsKK+aJi+acrSA8IHRlZnVkYVwgOwor5b6h6I+T5a2QIDwgb2thc2hpXCA7CivnrZTlvIEgPCB0b3ViZW5cIDsKK+a0l+mhlCA8IHNlbmdhblwgOwor5rWc6L66IDwgaGFtYWJlXCA7Civpu5LpiZsgPCBrb2t1ZW5cIDsKK+a6gOawtCA8IG1hbnN1aVwgOwor5oi45qOaIDwgdG9kYW5hXCA7CivpvI7oq4cgPCB0ZWlkYW5cIDsKK+a5v+awlyA8IHNoaWtrZVwgOwor5oiR5rWBIDwgZ2FyeXV1XCA7CivmgqrpoqggPCBha3VmdXVcIDsKK+a0l+mdoiA8IHNlbm1lblwgOwor5rSL6aKoIDwgeW91ZnV1XCA7CivnqbrnoLIgPCBrdXVob3VcIDsKK+a9nOWDjyA8IHNlbnpvdVwgOwor5oSb6KqtIDwgYWlkb2t1XCA7CivmiYDmnJsgPCBzaG9tb3VcIDsKK+aJgOaciSA8IHNob3l1dVwgOwor6buS6YWSIDwga3Vyb2tpXCA7CivmiZPmkrIgPCBkYWJva3VcIDsKK+emhemWgCA8IHplbm1vblwgOwor5omT5pKDIDwgZGFnZWtpXCA7CivkuInnn6XlnJ8gPCB0YXRha2lcIDsKK+a0numWgCA8IGRvdW1vblwgOwor5ZC46aOyIDwga3l1dWluXCA7Civnqbrnm64gPCBzb3JhbWVcIDsKK+a5r+awtCA8IHl1bWl6dVwgOwor5oKq6ZyKIDwgYWt1cmVpXCA7CivmiYvmkbogPCB0ZXN1cmlcIDsKK+evgOS8miA8IHNlY2hpZVwgOwor5oiR5qyyIDwgZ2F5b2t1XCA7Civmua/mrr8gPCB5dWRvbm9cIDsKK+err+agqiA8IGhha2FidVwgOwor5rmn5rC0IDwgeXV1c3VpXCA7Civllrbmpa0gPCBlaWd5b3VcIDsKK+a4m+eUoyA8IGdlbnNhblwgOwor6LOT5L2N6KqeIDwgaGluaWdvXCA7CivmiYvmi60gPCB0ZWZ1a2lcIDsKK+WQuembqiA8IGZ1YnVraVwgOwor5rq65oSbIDwgZGVraWFpXCA7CivnrYvlrZAgPCBzdWppa29cIDsKK+mJhOmLvCA8IHRla2tvdVwgOwor5oKM6aCGIDwgdGVpanVuXCA7CivmtJfpjKwgPCBzZW5yZW5cIDsKK+a6gOadryA8IG1hbnBhaVwgOwor6Jas6aSMIDwgeWFrdWppXCA7Civnpo/pgYsgPCBmdWt1dW5cIDsKK+aRqeiOq+aesyA8IG1hbWFraVwgOwor6Jar6aKoIDwga3VucHV1XCA7CivpjLLnlLsgPCByb2t1Z2FcIDsKK+a8huWZqCA8IHNoaWtraVwgOwor5rWE6LKhIDwgam91emFpXCA7CivomY7okL0gPCBtb2dhcmlcIDsKK+a4qeeBuCA8IG9ua3l1dVwgOwor5oKq6YqtIDwgYWt1c2VuXCA7CivlkI3pppkgPCBtZWlrb3VcIDsKK+WSjOiosyA8IHdheWFrdVwgOwor5raZ6IW6IDwgcnVpc2VuXCA7CivmirHljbUgPCBob3VyYW5cIDsKK+aJleW6lSA8IGZ1dHRlaVwgOwor5rSL6YqAIDwgeW91Z2luXCA7Civpjq7mkqsgPCBjaGluYnVcIDsKK+WWquacjSA8IG1vZnVrdVwgOwor5ZKM6KaqIDwgd2FzaGluXCA7CivmiYvlvbkgPCB0ZXlha3VcIDsKK+mKgOijvSA8IGdpbnNlaVwgOwor6buZ6KixIDwgbW9ra3lvXCA7CivmiYvlvaIgPCB0ZWdhdGFcIDsKK+aJk+W4rSA8IGRhc2VraVwgOwor6Jar6Zm2IDwga3VudG91XCA7CivmiYvlvJUgPCB0ZWJpa2lcIDsKK+a4vuayjCA8IGtvbnRvblwgOwor5ryU5YqHIDwgZW5nZWtpXCA7CivnpoHovLggPCBraW4nJ3l1XCA7Civmta7oloQgPCBmdWhha3VcIDsKK+WQjOmhniA8IGRvdXJ1aVwgOwor5rSL6YWSIDwgeW91c2h1XCA7CivmiYvluLMgPCB0ZWNob3VcIDsKK+aIkOaVlyA8IHNlaWJhaVwgOwor6Jma6IGeIDwga3lvYnVuXCA7CivpiI3plpMgPCBub3JvbWFcIDsKK+mHnemtmiA8IGhhcml5b1wgOwor5rOi6ZaTIDwgbmFtaW1hXCA7CivpvJPohpwgPCBrb21ha3VcIDsKK+aGq+eEtiA8IGJpbnplblwgOwor5oKq6YGTIDwgYWt1ZG91XCA7Civms6LplbcgPCBoYWNob3VcIDsKK+m8k+iFuSA8IGtvZnVrdVwgOwor5rOV6ZujIDwgaG91bmFuXCA7CivmsrjpqLAgPCBmdXR0b3VcIDsKK+esoOWtkCA8IGthc2Fnb1wgOwor5rS76KiIIDwga2Fra2VpXCA7Civmu57lnKggPCB0YWl6YWlcIDsKK+a4oea4iSA8IHRvc2hvdVwgOwor6YeR6a2aIDwga2luZ3lvXCA7CivpipjojLYgPCBtZWljaGFcIDsKK+engeiUtSA8IHNoaXpvdVwgOwor5ZGz6KaaIDwgbWlrYWt1XCA7CivpvpXnga8gPCBnYW5kb3VcIDsKK+m7tOiPjCA8IGJhaWtpblwgOwor5oqc5YmjIDwgYmFra2VuXCA7CivlloTmoLkgPCB6ZW5rb25cIDsKK+WQjemWgCA8IG1laW1vblwgOwor56m65rivIDwga3V1a291XCA7CivpjJjnirYgPCBzdWlqb3VcIDsKK+a6tuWqkiA8IHlvdWJhaVwgOwor5rK/6Z2pIDwgZW5rYWt1XCA7CivlsI/nmb7lkIggPCBzYXl1cmlcIDsKK+err+W9uSA8IGhheWFrdVwgOwor5ZGJ6LaKIDwgZ29ldHN1XCA7Civmt7fnhLYgPCBrb256ZW5cIDsKK+eti+WQiCA8IHN1amlhaVwgOwor5rib5rOVIDwgZ2VucG91XCA7CivnqbrmtJ4gPCBrdXVkb3VcIDsKK+a6kOW5syA8IGdlbnBlaVwgOwor5ZCN6ZGRIDwgbWVpa2FuXCA7Civph47pp5IgPCBub2dvbWFcIDsKK+a1ruiFqyA8IG11a3VtaVwgOwor6bq76KOPIDwgYXNhdXJhXCA7CivnqK7nl5ggPCBzaHV0b3VcIDsKK+mIjemHjSA8IGRvbmp1dVwgOwor5omA5a6aIDwgc2hvdGVpXCA7CivmtpnnrqEgPCBydWlrYW5cIDsKK+aJgOWtmCA8IHNob3pvblwgOwor5rOl6YWUIDwgZGVpc3VpXCA7CivmuJvmrrogPCBnZW5zYWlcIDsKK+a4m+autSA8IGdlbnRhblwgOwor6Y6u5bqnIDwgY2hpbnphXCA7CivlkIjpjbUgPCBhaWthZ2lcIDsKK+eri+aGsiA8IHJpa2tlblwgOwor56S86YeRIDwgcmVpa2luXCA7CivmuoDlubIgPCBtYW5rYW5cIDsKK+emveiIjiA8IGtpbnNoYVwgOwor5ZGK6KutIDwga29rdXl1XCA7CivnqbrmrIQgPCBrdXVyYW5cIDsKK+ayoemgrSA8IGJvdHRvdVwgOwor5Y+l6ZuGIDwga3VzaHV1XCA7CivmiYvloakgPCB0ZXNoaW9cIDsKK+a5v+W4gyA8IHNoaXBwdVwgOwor56uv5bGxIDwgaGF5YW1hXCA7Civnq5zluqcgPCByeXV1emFcIDsKK+mJhOijvSA8IHRlc3NlaVwgOwor5Y+X6aCYIDwganVyeW91XCA7CivmuIfmsLQgPCBrYXNzdWlcIDsKK+eDj+W4veWtkCA8IGVib3NoaVwgOwor5ZCI6YeRIDwgZ291a2luXCA7Civmt7fmt4YgPCBrb25rb3VcIDsKK+WTgeetiSA8IGhpbnRvdVwgOwor5oKq6KiAIDwgYWt1Z2VuXCA7CivllpzmgqYgPCBraWV0c3VcIDsKK+m8k+esmyA8IGtvdGVraVwgOwor6bq76JasIDwgbWF5YWt1XCA7Civnq6/lrZAgPCB0YW5zaGlcIDsKK+iZmuekvCA8IGt5b3JlaVwgOwor6J6N5ZCIIDwgeXV1Z291XCA7CivlkIzpgqYgPCBkb3Vob3VcIDsKK+aHh+abuCA8IGtvbnNob1wgOwor5rm+5bK4IDwgd2FuZ2FuXCA7CivmuoDlsbEgPCBtYW56YW5cIDsKK+aJjeWZuCA8IHNhaXRvblwgOwor56iy54axIDwgaW1vY2hpXCA7Civpjq7lroggPCBjaGluanVcIDsKK+WTgeeoriA8IGhpbnNodVwgOwor6buE6I+KIDwga2lnaWt1XCA7CivmhJrnrZYgPCBndXNha3VcIDsKK+WQhOmDqCA8IGtha3VidVwgOwor56WW54i25q+NIDwgc29mdWJvXCA7Civms6Lot68gPCBuYW1pamlcIDsKK+WPjemdoiA8IGhhbm1lblwgOwor5Y2B5YWt5aScIDwgaXpheW9pXCA7CivmiYDlnKggPCBzaG96YWlcIDsKK+aCquihgCA8IG9rZXRzdVwgOwor5oWo54S2IDwgZ2FpemVuXCA7Civnq7blo7IgPCBrZWliYWlcIDsKK+iXu+iNiSA8IG1vZ3VzYVwgOwor56e7552AIDwgaWNoYWt1XCA7CivnpZ3oqZ4gPCBub3JpdG9cIDsKK+WQjOi8qSA8IGRvdWhhaVwgOwor5oCl6aCIIDwga3l1dXN1XCA7Civnp5jnrZYgPCBoaXNha3VcIDsKK+a2iOejqCA8IHNob3VtYVwgOwor5oaO5rCXIDwgbmlrdWdlXCA7CivlkIzou4ogPCBkb3VzaGFcIDsKK+a5luW/gyA8IGtvc2hpblwgOwor56iu54GrIDwgdGFuZWJpXCA7CivmiYvlk4EgPCB0ZWppbmFcIDsKK+aIkeWutiA8IHdhZ2F5YVwgOwor56m65pu5IDwga3V1c291XCA7Civov4Llm57ot68gPCB1a2Fpcm9cIDsKK+aJjeWQjSA8IHNhaW1laVwgOwor56S+6LOTIDwgc2hhaGluXCA7CivmtrLnirYgPCBla2lqb3VcIDsKK+ilpOikuOWutiA8IGJvcm95YVwgOwor5oG16LSIIDwga2Vpem91XCA7CivnpLzos5sgPCByYWlzYW5cIDsKK+epguazoiA8IGhvbmFtaVwgOwor6Y+k5Yi7IDwgcnVrb2t1XCA7Civph5HpioAgPCBraW5naW5cIDsKK+mKgOe1jCA8IGdpbmtlaVwgOwor5ZKM57a0IDwgd2F0b2ppXCA7CivpnZLntKvomIcgPCBhb2ppc29cIDsKK+e3keWVhOacqOmzpSA8IGFvZ2VyYVwgOwor6YqA57O4IDwgZ2luc2hpXCA7Civmt6HmsLQgPCB0YW5zdWlcIDsKK+epuuaWhyA8IGt1dWJ1blwgOwor5ZCf6KmgIDwgZ2luJydlaVwgOwor6YqA57KJIDwgZ2lucHVuXCA7Civmh6blvLEgPCBkYWpha3VcIDsKK+aBreizgCA8IGt5b3VnYVwgOwor5Y216buEIDwgcmFuJydvdVwgOwor5rqA5aGBIDwgbWFucnVpXCA7Civmganos54gPCBvbnNob3VcIDsKK+awtOm7vSA8IGFtZW5ib1wgOwor5ZOA55ebIDwgYWl0c3V1XCA7Civpuqboir0gPCBiYWt1Z2FcIDsKK+WPsOi7iiA8IGRhaXNoYVwgOwor5ZOB55WqIDwgaGluYmFuXCA7CivmiYvlhpkgPCBzaHVzaGFcIDsKK+azleirliA8IGhvdXJvblwgOwor5omL5YWIIDwgdGVzYWtpXCA7CivmganorpAgPCBvbnNodXVcIDsKK+WOn+mfsyA8IGdlbicnb25cIDsKK+epuuaMuiA8IGt1dXRlaVwgOwor6YiN6KGMIDwgZG9ua291XCA7CivmiYvlgrcgPCB0ZWtpenVcIDsKK+epuuaLsyA8IGt1dWtlblwgOwor6Yed6LevIDwgc2hpbnJvXCA7CivlkIzoqJMgPCBkb3VrdW5cIDsKK+mHkei8qiA8IGthbmF3YVwgOwor5rKi6L66IDwgc2F3YWJlXCA7CivpvIjnlLIgPCBiZWtrb3VcIDsKK+epuuaJiyA8IGthcmF0ZVwgOwor56S86KOFIDwgcmVpc291XCA7CivnqbrmiYAgPCBrdXVzaG9cIDsKK+W/temhmCA8IG5lbmdhblwgOwor5ZCI6KiIIDwgZ291a2VpXCA7CivpurvnuZQgPCBhc2FvcmlcIDsKK+WRque4myA8IGp1YmFrdVwgOwor56m65oimIDwga3V1c2VuXCA7CivmhajmrY4gPCBnYWl0YW5cIDsKK+W/temgrSA8IG5lbnRvdVwgOwor56eR55m9IDwgc2VyaWZ1XCA7Civolq7omoogPCB5YWJ1a2FcIDsKK+a6gOWToSA8IG1hbicnaW5cIDsKK+WPm+i7jSA8IGhhbmd1blwgOwor6buE57KJIDwga2luYWtvXCA7Civpjpblm70gPCBzYWtva3VcIDsKK+aEgeeciSA8IHNodXViaVwgOwor6bq757WyIDwgYXNhaXRvXCA7CivmiY3kurogPCBzYWlqaW5cIDsKK+WQjOihviA8IGRvdWtpblwgOwor56uL5ZywIDwgcml0Y2hpXCA7Civpu5LnqYIgPCBrdXJvYm9cIDsKK+aDhee3kiA8IGpvdWNob1wgOwor5rKD6YeOIDwgeW9rdXlhXCA7CivmhJvnjKsgPCBhaWJ5b3VcIDsKK+mGuOmAoCA8IGpvdXpvdVwgOwor5rm+5Y+jIDwgd2Fua291XCA7CivpioPnnLwgPCBqdXVnYW5cIDsKK+eroOWPpSA8IHNob3VrdVwgOwor5oa25b+1IDwgb2t1bmVuXCA7CivmiKbliY0gPCBzZW56ZW5cIDsKK+m4nui8vyA8IHJhbicneW9cIDsKK+aGp+aGrCA8IGRvdWtlaVwgOwor5ray5rGBIDwgZWtpanV1XCA7CivmhqTmh6MgPCBmdW5tYW5cIDsKK+WPr+iqrSA8IGthZG9rdVwgOwor5oe45Z6CIDwga2Vuc3VpXCA7CivnqI7ms5UgPCB6ZWlob3VcIDsKK+WOs+mHjSA8IGdlbmp1dVwgOwor6YqA55ukIDwgZ2luYmFuXCA7Civlj4vou40gPCB5dXVndW5cIDsKK+WSjOedpiA8IHdhYm9rdVwgOwor6YqA55uDIDwgZ2lucGFpXCA7CivmhqTmhaggPCBmdW5nYWlcIDsKK+mJhOe3miA8IHRlc3NlblwgOwor6by75q+bIDwgaGFuYWdlXCA7Civlj6Poqr8gPCBrdWNob3VcIDsKK+err+WAqiA8IHRhbmdlaVwgOwor6YeR6KuHIDwga2luZGFuXCA7Civlj6ToqLsgPCBrb2NodXVcIDsKK+a1geefsyA8IHNhc3VnYVwgOwor6YmE57KJIDwgdGVwcHVuXCA7CivpuqbnsokgPCBtdWdpa29cIDsKK+a3seaJiyA8IGZ1a2FkZVwgOwor6buS55uuIDwga3Vyb21lXCA7CivmhpDmhqsgPCByZW5iaW5cIDsKK+WOn+mHjiA8IGdlbicneWFcIDsKK+WPl+irviA8IGp1ZGFrdVwgOwor5rCX6ayxIDwga2l1dHN1XCA7CivolqzoiJcgPCB5YWt1aG9cIDsKK+WQjeiRlyA8IG1laWNob1wgOwor6YmE566hIDwgdGVra2FuXCA7Civph43oqIAgPCBqdXVnb25cIDsKK+awt+mcpyA8IGh5b3VtdVwgOwor6YeR6KW0IDwga2lucmFuXCA7CivmsLTpnaIgPCBtaW5vbW9cIDsKK+emjeemjyA8IGthZnVrdVwgOwor5rC36ZuoIDwgaGlzYW1lXCA7CivpiYTnrYsgPCB0ZWtraW5cIDsKK+mFlOmhlCA8IHN1aWdhblwgOwor5ZCI6JGXIDwgZ291Y2hvXCA7Civnpr3njaMgPCBraW5qdXVcIDsKK+awtOmbtyA8IHN1aXJhaVwgOwor5Y+X6Ki7IDwganVjaHV1XCA7CivmsLTpm6MgPCBzdWluYW5cIDsKK+WQm+iHqCA8IGt1bnJpblwgOwor5Y+X6KiXIDwganV0YWt1XCA7CivmiKbkubEgPCBzZW5yYW5cIDsKK+S4jeWFt+WQiCA8IGZ1Z3VhaVwgOwor5ZWP5bGLIDwgdG9uJyd5YVwgOwor6YmE56qTIDwgdGVzc291XCA7CivmhafmlY8gPCBrZWliaW5cIDsKK+ibh+W6pyA8IGhlYml6YVwgOwor5rmv5YWDIDwgeXVtb3RvXCA7CivpvLvmooEgPCBiaXJ5b3VcIDsKK+WPjeirliA8IGhhbnJvblwgOwor5Zac5YqHIDwga2lnZWtpXCA7CivmhoLmhqQgPCB5dXVmdW5cIDsKK+aEn+a2mSA8IGthbnJ1aVwgOwor56m05bGFIDwga2Vra3lvXCA7Civnq4vlhqwgPCByaXR0b3VcIDsKK+aGguaFriA8IHl1dXJ5b1wgOwor5ZKM54usIDwgd2Fkb2t1XCA7Civph5Honb8gPCBraW5iYWVcIDsKK+awtOmWgCA8IHN1aW1vblwgOwor5ZaE5ZOJIDwgemVuemFpXCA7CivljZjpn7MgPCB0YW4nJ29uXCA7CivpiZvnmb0gPCBlbnBha3VcIDsKK+WPguisgCA8IHNhbmJvdVwgOwor5oaC5oK2IDwgeXV1bW9uXCA7CivpvLvmnKggPCBoYW5hZ2lcIDsKK+WSjOeJmyA8IHdhZ3l1dVwgOwor6JaE6JGJIDwgdXN1eW91XCA7CivllJDmiLggPCBrYXJhZG9cIDsKK+WQiOiHtCA8IGdhdGNoaVwgOwor5Y2X6Z2iIDwgbmFubWVuXCA7CivmtbfmtZwgPCBrYWloaW5cIDsKK+awkemiqCA8IG1pbnB1dVwgOwor5oKq56iOIDwgYWt1emVpXCA7CivlkLnnrqEgPCBzdWlrYW5cIDsKK+mJhOegsiA8IHRlcHBvdVwgOwor5ZCE6IeqIDwga2FrdWppXCA7CivpurvnlrkgPCBtYXNoaW5cIDsKK+WWp+S8nSA8IGtlbmRlblwgOwor6JaE6Iy2IDwgdXN1Y2hhXCA7CivljZfpmoUgPCBuYW5ndXVcIDsKK+aCquelniA8IGFrdWppblwgOwor56uL5L2TIDwgcml0dGFpXCA7CivljYrpn7MgPCBoYW4nJ29uXCA7CivljZfpmZAgPCBuYW5nZW5cIDsKK+eqgeWgpCA8IHRvdHRlaVwgOwor5Zaq5LitIDwgbW9jaHV1XCA7CivmuJvloakgPCBnZW4nJ2VuXCA7CivmuKXlnLAgPCBha3VjaGlcIDsKK+a3oeW9qSA8IHRhbnNhaVwgOwor5rW35rC0IDwga2Fpc3VpXCA7Civmta7mtYEgPCBmdXJ5dXVcIDsKK+mHkeiUtSA8IGtpbnpvdVwgOwor5oSb5qyyIDwgYWl5b2t1XCA7CivljrPoq4cgPCBnZW5kYW5cIDsKK+iWhOiJsiA8IHVzdWlyb1wgOwor56Wt56S8IDwgc2FpcmVpXCA7Civnn6XmgbXmra8gPCBjaGllYmFcIDsKK+iZmuaguSA8IGt5b2tvblwgOwor5b6u6ZyHIDwgYmlzaGluXCA7CivphanphYogPCBtZWl0ZWlcIDsKK+WQjOe9qiA8IGRvdXphaVwgOwor5rWu5rKIIDwgZnVjaGluXCA7CivmsLTpioAgPCBzdWlnaW5cIDsKK+W+oemhjCA8IGd5b2RhaVwgOwor5ZOA5qW9IDwgYWlyYWt1XCA7Civnqbrln58gPCBrdXVpa2lcIDsKK+mKgOa8oiA8IGdpbmthblwgOwor5rex5bGxIDwgbWl5YW1hXCA7Civph47okpwgPCBub2JpcnVcIDsKK+a0u+eJiCA8IGthcHBhblwgOwor5rCX6ZW3IDwga2luYWdhXCA7CivnqbrlnLAgPCBha2ljaGlcIDsKK+aEm+alvSA8IGFpZ3lvdVwgOwor6YeO6I+KIDwgbm9naWt1XCA7CivmsJHplpMgPCBtaW5rYW5cIDsKK+aCquebuCA8IGFrdXNvdVwgOwor5b6h6ZyKIDwgbWl0YW1hXCA7Civms5XntrIgPCBob3Vtb3VcIDsKK+aCsueXmyA8IGhpdHN1dVwgOwor6bqm55SwIDwgbXVnaXRhXCA7CivmsLTpg7cgPCBzdWlnb3VcIDsKK+WQiOe5iiA8IGdvdXNlblwgOwor5LiN6LW36Ki0IDwgZnVraXNvXCA7CivmhaLmgKcgPCBtYW5zZWlcIDsKK+WQkeexsyA8IGtvdWJlaVwgOwor6YqA5rOlIDwgZ2luZGVpXCA7CivomZrmlbAgPCBreW9zdXVcIDsKK+aCqueWqyA8IGFrdWVraVwgOwor5rC06L66IDwgbWl6dWJlXCA7CivnqJ/mgKcgPCBoaW5zZWlcIDsKK+mNm+WGtiA8IHRhbicneWFcIDsKK+aCqueUqCA8IGFrdXlvdVwgOwor5oSJ5qW9IDwgeXVyYWt1XCA7CivnhKHljLvmnZEgPCBtdWlzb25cIDsKK+awtOi7iiA8IHN1aXNoYVwgOwor6JmO5paRIDwgdG9yYWZ1XCA7Civlvozpm6MgPCBrb3VuYW5cIDsKK+epuuWQjSA8IGt1dW1laVwgOwor6Yym5ZywIDwga2luY2hpXCA7CivpvLvmga8gPCBiaXNva3VcIDsKK+aCqueQgyA8IGFra3l1dVwgOwor5ZCI566XIDwgZ2Fzc2FuXCA7CivmtbfmnIggPCBrdXJhZ2VcIDsKK+WUkOWtkCA8IGthcmFrb1wgOwor5rWB5rS+IDwgcnl1dWhhXCA7CivoloTntJcgPCBoYWt1c2FcIDsKK+a3t+WcqCA8IGtvbnphaVwgOwor5ZCM56qTIDwgZG91c291XCA7Civpipjmnb8gPCBtZWliYW5cIDsKK+ayuee1tSA8IGFidXJhZVwgOwor5Y2K6YeRIDwgaGFua2luXCA7Civmr5vpoK0gPCBtb3V0b3VcIDsKK+WQjOeoriA8IGRvdXNodVwgOwor6YeN572qIDwganV1emFpXCA7CivphaLosZogPCBzdWJ1dGFcIDsKK+WNg+mIniA8IHNlbmtpblwgOwor56m65YmNIDwga3V1emVuXCA7Civlv5zoq74gPCBvdWRha3VcIDsKK+a4m+WFjSA8IGdlbm1lblwgOwor5rCR6YG4IDwgbWluc2VuXCA7CivnqbrlhrcgPCBrdXVyZWlcIDsKK+aDmuawlyA8IG5vcm9rZVwgOwor5ZKM5qW9IDwgd2FyYWt1XCA7CivmgKrohZUgPCBrYWl3YW5cIDsKK+WQiOelrSA8IGdvdXNhaVwgOwor5ZWG5YuZIDwgc2hvdW11XCA7CivmgqrnhrEgPCBhbmV0c3VcIDsKK+m7hOawtCA8IGtpbWl6dVwgOwor5Y+j57W1IDwga3VjaGllXCA7CivlvqHphYwgPCBvc2hha3VcIDsKK+awl+i7vSA8IGtpZ2FydVwgOwor5p6c5qi55ZySIDwga2FqdWVuXCA7CivmtbfmkI0gPCBrYWlzb25cIDsKK+aFruWkliA8IHJ5b2dhaVwgOwor6YWS6LGqIDwgc2h1Z291XCA7CivljYrovKogPCBoYW5yaW5cIDsKK+mHkeeyiSA8IGtpbnB1blwgOwor5b2T6aeFIDwgdG91ZWtpXCA7CivlvqHpgYogPCBneW95dXVcIDsKK+azleebuCA8IGhvc3NvdVwgOwor5rex5ZGzIDwgZnVrYW1pXCA7Civljp/okZcgPCBnZW5jaG9cIDsKK+m6pua5ryA8IG11Z2l5dVwgOwor5ZCM55ufIDwgZG91bWVpXCA7CivmtKrmsLQgPCBrb3V6dWlcIDsKK+WTgOaEgSA8IGFpc2h1dVwgOwor5ZCJ55u4IDwga2lzc291XCA7CivnqbrkvLwgPCBzb3JhbmlcIDsKK+WSjOacjSA8IHdhZnVrdVwgOwor5b6h6Lui5amGIDwgb3RlbmJhXCA7CivolqznkIYgPCB5YWt1cmlcIDsKK+W+jOmHkSA8IGF0b2tpblwgOwor6bm1542yIDwgcm9rYWt1XCA7Civlkb3moLkgPCBtZWlrb25cIDsKK+mMoOWJjSA8IGpvdW1hZVwgOwor5ZCN55SjIDwgbWVpc2FuXCA7CivmhJvmga8gPCBhaXNva3VcIDsKK+azpeeKtiA8IGRlaWpvdVwgOwor5b+F6KaLIDwgaGlra2VuXCA7Civlj43nsbMgPCBoYW5iZWlcIDsKK+egtOmPoSA8IGhha3lvdVwgOwor6YeN56iOIDwganV1emVpXCA7CivphaLom7ggPCBzdWRha29cIDsKK+WPoueloCA8IGhva29yYVwgOwor5b6T6LuNIDwganV1Z3VuXCA7Civmr5vpiI4gPCBrZWJhcmlcIDsKK+mDqOmVtyA8IGJ1Y2hvdVwgOwor5oOo5pWXIDwgemFucGFpXCA7Civmgqrms5UgPCBha3Vob3VcIDsKK+WPs+ebriA8IG1pZ2ltZVwgOwor5b+F6KGwIDwgaGlzc3VpXCA7Civmra/pu5IgPCBoYWd1cm9cIDsKK+awkeirliA8IG1pbnJvblwgOwor5Y+C57GgIDwgc2Fucm91XCA7CivmgqrmsLQgPCBha3VzdWlcIDsKK+aEieaCpiA8IHl1ZXRzdVwgOwor6Yed55uuIDwgaGFyaW1lXCA7CivljJfpg6ggPCBob2t1YnVcIDsKK+aCquawlyA8IHdhcnVnaVwgOwor55+i6bGIIDwgeWF0YXJhXCA7CivnpI7nn7MgPCBzb3Nla2lcIDsKK+a1tOW+jCA8IHlva3Vnb1wgOwor5Y2T6KaLIDwgdGFra2VuXCA7Civlkb3mlbAgPCBtZWlzdXVcIDsKK+aui+mquCA8IHphbmdhaVwgOwor6aKo5ZGC5bGLIDwgZnVyb3lhXCA7Civms6Xngq0gPCBkZWl0YW5cIDsKK+WQjeeKtiA8IG1laWpvdVwgOwor6JGb6aShIDwga3V6dWFuXCA7CivmsrznlLAgPCBudW1hZGFcIDsKK+elreauvyA8IHNhaWRlblwgOwor56Cy6YeRIDwgaG91a2luXCA7Civlj6TnnYAgPCBmdXJ1Z2lcIDsKK+mKgOaJhyA8IGdpbnNlblwgOwor6YeN55+zIDwgb21vc2hpXCA7CivlvLfpn7MgPCBreW91b25cIDsKK+axmuiBtyA8IG9zaG9rdVwgOwor5re35LmxIDwga29ucmFuXCA7Civph5Hnm64gPCBrYW5lbWVcIDsKK+aEj+WRs+irliA8IGltaXJvblwgOwor56CU6ZG9IDwga2Vuc2FuXCA7CivlvLHpn7MgPCB5b3dhbmVcIDsKK+aui+mjryA8IHphbnBhblwgOwor5rC06JGsIDwgc3Vpc291XCA7CivljYroo4EgPCBoYW5zYWlcIDsKK+WUr+S4gCA8IHl1aXRzdVwgOwor54Sh6YKq5rCXIDwgbXVqYWtpXCA7CivlvqHoqJcgPCBnb3Rha3VcIDsKK+W+ruihtyA8IGJpY2h1dVwgOwor5Y2K6KG/IDwgaGFuZXJpXCA7CivomZrlpoQgPCBreW9tb3VcIDsKK+axuueulyA8IGtlc3NhblwgOwor5YyW6LqrIDwga2VzaGluXCA7CivmgaznhLYgPCB0ZW56ZW5cIDsKK+iWrOa5ryA8IHlha3V5dVwgOwor5rG956ybIDwga2l0ZWtpXCA7CivmtrzlkbMgPCByeW91bWlcIDsKK+awtOiPnCA8IG1penVuYVwgOwor5rW35bK4IDwga2FpZ2FuXCA7Civmgqrmpa0gPCBha3Vnb3VcIDsKK+mJhOadvyA8IHRlcHBhblwgOwor6JO06I+cIDwganVuc2FpXCA7CivlkKvmsLQgPCBnYW5zdWlcIDsKK+W9sei6qyA8IGthZ2VtaVwgOwor5q+b6LazIDwga2Vhc2hpXCA7Civmra/pq4QgPCBzaGl6dWlcIDsKK+iQvemmrCA8IHJha3ViYVwgOwor5Y+M55y8IDwgc291Z2FuXCA7Civlj43nnIEgPCBoYW5zZWlcIDsKK+azqOayuSA8IGNodXV5dVwgOwor6YO36LuNIDwgZ291Z3VuXCA7CivmsojnoIIgPCBjaGluc2FcIDsKK+WLp+mKgCA8IGthbmdpblwgOwor5Yy76KGTIDwgaWp1dHN1XCA7CivpoqjlkYLloLQgPCBmdXJvYmFcIDsKK+aEn+WlriA8IGthbnB1blwgOwor5raZ5ZqiIDwgcnVpbm91XCA7CivljbXog54gPCByYW5ob3VcIDsKK+mHjueQgyA8IHlha3l1dVwgOwor5ZGJ5pyNIDwgZ29mdWt1XCA7CivnpZ7mpb0gPCBrYWd1cmFcIDsKK+W/oOe+qSA8IGNodXVnaVwgOwor5rC06IWrIDwgc3Vpc2h1XCA7Civol43mn5MgPCBhaXpvbWVcIDsKK+aCquabuCA8IGFrdXNob1wgOwor5rSL5pysIDwgeW91aG9uXCA7CivlkJvmsJEgPCBrdW5taW5cIDsKK+iRiemZsCA8IGhha2FnZVwgOwor6Zi/6JiH5bGxIDwgYXNvc2FuXCA7CivmsrjngrkgPCBmdXR0ZW5cIDsKK+aBrOa3oSA8IHRlbnRhblwgOwor6buZ5bqnIDwgbW9rdXphXCA7CivmtrLliaQgPCBla2l6YWlcIDsKK+auv+i7jSA8IGRlbmd1blwgOwor5byK6aKoIDwgaGVpZnV1XCA7Civph5HniYwgPCBraW5wYWlcIDsKK+mKheWxsSA8IGRvdXphblwgOwor5rW35aSWIDwga2FpZ2FpXCA7Civpg7Xosq8gPCB5dXVjaG9cIDsKK+mHjueJmyA8IHlhZ3l1dVwgOwor5rS75oCnIDwga2Fzc2VpXCA7CivnpL7mrr8gPCBzaGFkZW5cIDsKK+mHjeeJiCA8IGp1dWhhblwgOwor5oKq5paHIDwgYWt1YnVuXCA7CivlvqHlrrboirggPCBvaWVnZWlcIDsKK+mFjeiGsyA8IGhhaXplblwgOwor6YqA5bGxIDwgZ2luemFuXCA7Civlv43ogJAgPCBuaW50YWlcIDsKK+aCquaUvyA8IGFrdXNlaVwgOwor56Wt5paHIDwgc2FpbW9uXCA7CivlkITmtL4gPCBrYWt1aGFcIDsKK+mBuumqqCA8IGlrb3RzdVwgOwor6buS5be+IDwga3Vyb2dvXCA7CivmganmsqIgPCBvbnRha3VcIDsKK+a1t+WfnyA8IGthaWlraVwgOwor5oSb5Zu9IDwgYWlrb2t1XCA7CivpiYTmi7MgPCB0ZWtrZW5cIDsKK+WQjeauiyA8IG5hZ29yaVwgOwor6Jma5ZCNIDwga3lvbWVpXCA7CivlvL7pgZMgPCBkYW5kb3VcIDsKK+awkeiKuCA8IG1pbmdlaVwgOwor5ZO65LmzIDwgaG9ueXV1XCA7Civlj7Dmub4gPCB0YWl3YW5cIDsKK+awuOe2miA8IGVpem9rdVwgOwor5q2j6Z2iIDwgbWF0b21vXCA7Civph43ngbAgPCBqdXVrYWlcIDsKK+WNsee1tSA8IGFidW5hZVwgOwor5oGl5q+bIDwgY2hpbW91XCA7CivliqnplbcgPCBqb2Nob3VcIDsKK+a2suS9kyA8IGVraXRhaVwgOwor6YiN5qC5IDwgZG9ua29uXCA7Civmg4Xlv7UgPCBqb3VuZW5cIDsKK+aui+mHkSA8IHphbmtpblwgOwor5q+s6Je7IDwgbWFyaW1vXCA7Civolqvmn5MgPCBrdW5zZW5cIDsKK+avm+ifuSA8IGtlZ2FuaVwgOwor5ZOB5ZCNIDwgaGlubWVpXCA7CivmgqrmipUgPCBha3V0b3VcIDsKK+WOn+ebpCA8IGdlbmJhblwgOwor5YuV6LyqIDwgZG91cmluXCA7CivmgqrmiY0gPCBha3VzYWlcIDsKK+ayu+awtCA8IGNoaXN1aVwgOwor6buS5a2QIDwgaG9rdXJvXCA7Civli4fpgoEgPCB5dXVtYWlcIDsKK+aCsuaEgSA8IGhpc2h1dVwgOwor5q6K6YGHIDwgc2h1Z3V1XCA7CivmgqrmhYsgPCBha3V0YWlcIDsKK+WPpOa1gSA8IGtvcnl1dVwgOwor5Y2B6IO9IDwganV1bm91XCA7CivpioDloYogPCBnaW5rYWlcIDsKK+iXu+WxkSA8IG1va3V6dVwgOwor5ZCM5qC5IDwgZG91a29uXCA7Civpu5nlpZEgPCBtb2trZWlcIDsKK+mHjea2siA8IGp1dWVraVwgOwor5q+S6Ju+IDwgZG9rdWdhXCA7Civph5Hms6UgPCBrb25kZWlcIDsKK+axoOeVlCA8IGNoaWhhblwgOwor5ZCM5p2RIDwgZG91c29uXCA7CivlkI3mnK0gPCBuYWZ1ZGFcIDsKK+WNmOe0lCA8IHRhbmp1blwgOwor5aSn6YOo5bGLIDwgb29iZXlhXCA7CivomIrlpaUgPCB1bicnbm91XCA7Civlv6vnnKAgPCBrYWltaW5cIDsKK+aCquW/tSA8IGFrdW5lblwgOwor5ZCM5pyLIDwgZG91Ym91XCA7CivlkIjmnb8gPCBnb3ViYW5cIDsKK+mHkeawlyA8IGthbmFrZVwgOwor56eY5Yy/IDwgaGl0b2t1XCA7Civnpo/lr78gPCBmdWt1anVcIDsKK+WQiOacrCA8IGdhcHBvblwgOwor6YGt6ZujIDwgc291bmFuXCA7Civph43msLQgPCBqdXVzdWlcIDsKK+awtOemvSA8IHN1aWtpblwgOwor6Jma5LydIDwga3lvZGVuXCA7CivljZfnsbMgPCBuYW5iZWlcIDsKK+m2j+e+pCA8IGtlaWd1blwgOwor5aCV6IOO5Yy7IDwgZGF0YWlpXCA7CivljZjnsKEgPCB0YW5rYW5cIDsKK+aCquW8iiA8IGFrdWhlaVwgOwor5b6p57iBIDwgZnVrdWVuXCA7Civpu73li4kgPCBiaW5iZW5cIDsKK+emheWwvCA8IHplbicnbmlcIDsKK+WQjOaWrSA8IGRvdWRhblwgOwor5Y+W5rC0IDwgc2h1c3VpXCA7CivmtYTln58gPCBqb3Vpa2lcIDsKK+mFkueojiA8IHNodXplaVwgOwor5ZCM5paHIDwgZG91YnVuXCA7Civli53oqLQgPCBzaG91c29cIDsKK+WQjOaVsCA8IGRvdXN1dVwgOwor5b6T6ICFIDwganV1c2hhXCA7CivlkIjmlrkgPCBhaWthdGFcIDsKK+WOn+eJiCA8IGdlbnBhblwgOwor6JaE5p2/IDwgdXN1aXRhXCA7CivljZfnq68gPCBuYW50YW5cIDsKK+W8t+irhyA8IGdvdWRhblwgOwor56eA5Y+lIDwgc2h1dWt1XCA7Civlj6Tmpb0gPCBrb2dha3VcIDsKK+mIjeaJjSA8IGRvbnNhaVwgOwor6Je75aGpIDwgbW9zaGlvXCA7Civlj43mr5sgPCBoYW5tb3VcIDsKK+awtOedgCA8IG1penVnaVwgOwor56KR55+zIDwgaGlzZWtpXCA7CivliqDpgJ8gPCBrYXNva3VcIDsKK+axmueJqSA8IG9idXRzdVwgOwor5Y+w5pysIDwgZGFpaG9uXCA7Civpto/ns54gPCBrZWlmdW5cIDsKK+awtOebpCA8IHN1aWJhblwgOwor5Y2D56+HIDwgc2VucGVuXCA7CivpiI3mhJ8gPCBkb25rYW5cIDsKK+avm+iEmyA8IGtlenVuZVwgOwor6bOz6LymIDwgaG91cmVuXCA7CivkuI3nlKjmhI8gPCBmdXlvdWlcIDsKK+S5heaFiOebriA8IGt1amltZVwgOwor5bu66YCgIDwga2Vuem91XCA7CivliLrprZogPCB0b2dldW9cIDsKK+mDqOiQvSA8IGJ1cmFrdVwgOwor5Y+35pWwIDwgZ291c3V1XCA7CivpioPliaMgPCBqdXVrZW5cIDsKK+WPguauvyA8IHNhbmRlblwgOwor5rC055axIDwgc3VpaG91XCA7Civlj7PmlocgPCB5dXVidW5cIDsKK+WPpOacqCA8IGtvYm9rdVwgOwor5ZCb5oGpIDwga3VuJydvblwgOwor5aSn5b6h5LujIDwgb29taXlvXCA7Civlvq7npoQgPCBiaXJva3VcIDsKK+eigeefsyA8IGdvaXNoaVwgOwor5rC055SwIDwgc3VpZGVuXCA7CivlupXprZogPCBzb2tvdW9cIDsKK+enmOS4rSA8IGhpY2h1dVwgOwor5q666I+MIDwgc2Fra2luXCA7Civpipjku5kgPCBtZWlzZW5cIDsKK+W8seihjCA8IGpha2tvdVwgOwor5ZG85ZCNIDwgeW9iaW5hXCA7CivmsbrmsLQgPCBrZXNzdWlcIDsKK+WQjOaGgiA8IGRvdXl1dVwgOwor6YqF5YOPIDwgZG91em91XCA7CivmrZPov44gPCBrYW5nZWlcIDsKK+mJhOWhlCA8IHRldHRvdVwgOwor5ZCM5oSfIDwgZG91a2FuXCA7CivmtarkurogPCByb3VuaW5cIDsKK+WJlOmZpCA8IHRla2lqb1wgOwor5rKh5pu4IDwgYm9zc2hvXCA7Civpt7nmtL4gPCB0YWthaGFcIDsKK+WJjembuyA8IHplbmRlblwgOwor5oOz5YOPIDwgc291em91XCA7Civlj5bmnZAgPCBzaHV6YWlcIDsKK+iYreS6uiA8IHJhbmppblwgOwor6I+M6aGeIDwga2lucnVpXCA7CivnpZ7lrq4gPCBqaW5ndXVcIDsKK+WNteeKtiA8IHJhbmpvdVwgOwor5oKq5aSpIDwgYWt1dGVuXCA7Civpga3pgYcgPCBzb3VndXVcIDsKK+WJiumZpCA8IHNha3Vqb1wgOwor5Y2K552hIDwgaGFuc3VpXCA7CivlkL7lprkgPCB3YWdpbW9cIDsKK+WPs+aKmCA8IHVzZXRzdVwgOwor5Y6f5rK5IDwgZ2VuJyd5dVwgOwor5q2z6KiIIDwgc2Fpa2VpXCA7CivmgKfmoLkgPCBzaG91bmVcIDsKK+iRm+iXpCA8IGthdHRvdVwgOwor5oKq5aC0IDwgd2FydWJhXCA7Civlj7PmiYsgPCBtaWdpdGVcIDsKK+WPieacqCA8IG1hdGFnaVwgOwor5q2p6Kq/IDwgaG9jaG91XCA7Civljp/msJEgPCBnZW5taW5cIDsKK+WQjeW6lyA8IG1laXRlblwgOwor5Yi46Z2iIDwga2VubWVuXCA7CivlubLpsYggPCBoaWRhcmFcIDsKK+WQiOW8gSA8IGdvdWJlblwgOwor5byB6KuWIDwgYmVucm9uXCA7CivmtYHlhIAgPCByeXV1Z2lcIDsKK+awtOeFriA8IG1penVuaVwgOwor5bqn6ZW3IDwgemFjaG91XCA7Civmr5LntKAgPCBkb2t1c29cIDsKK+W6lemdoiA8IHRlaW1lblwgOwor5b28562JIDwga2FyZXJhXCA7Civljpjmr5sgPCByaW5tb3VcIDsKK+WOu+adpSA8IGt5b3JhaVwgOwor5byB6KejIDwgYmVua2FpXCA7CivpgYvph50gPCB1bnNoaW5cIDsKK+WPpOaJiyA8IGZ1cnV0ZVwgOwor5q+b562LIDwga2VzdWppXCA7CivnpL7lsYsgPCBzaGFva3VcIDsKK+WPr+aDnCA8IGF0dGFyYVwgOwor6YGK6YeRIDwgeXV1a2luXCA7CivlkJvlrZAgPCBrdW5zaGlcIDsKK+WIqememCA8IHJpemF5YVwgOwor5oCo5pW1IDwgb250ZWtpXCA7CivmnInmhI/nvqkgPCB5dXVpZ2lcIDsKK+mHjuiWlOiWhyA8IG5vYmFyYVwgOwor5oGL5oSbIDwgcmVuJydhaVwgOwor5qyg6YWNIDwga2VwcGFpXCA7Civlkb3ku6QgPCBtZWlyZWlcIDsKK+WQjeWxsSA8IG1laXphblwgOwor55yf6bSoIDwgbWFnYW1vXCA7CivpgKPplqIgPCByZW5rYW5cIDsKK+axgOa4miA8IHRlaXNob1wgOwor5b6h55uu6KaL5b6XIDwgb21lbWllXCA7CivlkIzlsYUgPCBkb3VreW9cIDsKK+mBhemFjSA8IGNoaWhhaVwgOwor5qKF6Zuo5pyfIDwgYmFpdWtpXCA7CivmgbXlrZggPCBrZWl6b25cIDsKK+WQjOWwgSA8IGRvdWZ1dVwgOwor5Y+w5b2iIDwgZGFpa2VpXCA7CivmgYvmgYsgPCByZW5yZW5cIDsKK+mBoOi2syA8IGVuc29rdVwgOwor5YmN6YeRIDwgbWFla2luXCA7CivliaXouqsgPCBtdWtpbWlcIDsKK+awtOa6kCA8IHN1aWdlblwgOwor6YCB6aKoIDwgc291ZnV1XCA7CivpgbroqIAgPCB5dWlnb25cIDsKK+aBr+WtkCA8IG11c3Vrb1wgOwor5oKq5ZCNIDwgYWt1bWVpXCA7Civljp/moYggPCBnZW4nJ2FuXCA7CivnpZblm70gPCBzb2tva3VcIDsKK+iUteabuCA8IHpvdXNob1wgOwor5oKq5Y+LIDwgYWt1eXV1XCA7Civlub3pnIogPCB5dXVyZWlcIDsKK+aCsuWKhyA8IGhpZ2VraVwgOwor5bqn6YeRIDwgemFnYW5lXCA7Civlj43miKYgPCBoYW5zZW5cIDsKK+W6pumHjyA8IGRvcnlvdVwgOwor6YeO5b+DIDwgeWFzaGluXCA7Civli4PoiIggPCBib2trb3VcIDsKK+WMluefsyA8IGthc2VraVwgOwor56S+5aSWIDwgc2hhZ2FpXCA7Civlj6Tlu58gPCBrb2J5b3VcIDsKK+W6g+mWkyA8IGhpcm9tYVwgOwor5rC35rKzIDwgaHlvdWdhXCA7CivlubPpnaIgPCBoZWltZW5cIDsKK+WQu+WQiCA8IGZ1bmdvdVwgOwor5YiG6aGeIDwgYnVucnVpXCA7CivlvoznlJ8gPCBnb3Nob3VcIDsKK+W/q+alvSA8IGtlcmFrdVwgOwor6Jas5ZySIDwgeWFrdWVuXCA7Civmga/lpbMgPCBzb2t1am9cIDsKK+azleWkliA8IGhvdWdhaVwgOwor6YmE5YKYIDwgdGVzc2FuXCA7Civlub3plokgPCB5dXVoZWlcIDsKK+W/jeazlSA8IG5pbnBvdVwgOwor5ZCM5aSnIDwgZG91ZGFpXCA7Civlvbnnm64gPCB5YWt1bWVcIDsKK+iRl+iAhSA8IGNob3NoYVwgOwor5ZCN5aOwIDwgbWVpc2VpXCA7Civlj6Tlt6MgPCBmdXJ1c3VcIDsKK+awtOawlyA8IG1penVrZVwgOwor5bm06ZmQIDwgbmVuZ2VuXCA7CivmsqLlurUgPCB0YWt1YW5cIDsKK+avkuefoiA8IGRva3V5YVwgOwor5ZCI5aWPIDwgZ2Fzc291XCA7Civmr5vnmq4gPCBrZWdhd2FcIDsKK+WNl+a6nyA8IG5hbm1laVwgOwor55uu6by7IDwgbWVoYW5hXCA7Civpg73nnaMgPCB0b3Rva3VcIDsKK+WNl+a6gCA8IG5hbm1hblwgOwor6YGL6LODIDwgdW5jaGluXCA7Civljp/mlocgPCBnZW5idW5cIDsKK+m6puS+oSA8IGJha3VrYVwgOwor56aB5LukIDwga2lucmVpXCA7Civol6nkuLsgPCBoYW5zaHVcIDsKK+efpeiCsiA8IGNoaWlrdVwgOwor5Yq56IO9IDwga291bm91XCA7CivliIbpmpsgPCBidW56YWlcIDsKK+mBgei1sCA8IHRvbnNvdVwgOwor5ZCJ5aCxIDwga2lwcG91XCA7CivmgKDmhaIgPCB0YWltYW5cIDsKK+mAoOmFkiA8IHpvdXNodVwgOwor5YiG6ZmiIDwgYnVuJydpblwgOwor5YiG6ZmQIDwgYnVuZ2VuXCA7CivmgJ3mha4gPCBzaGlyeW9cIDsKK+WHsemiqCA8IGdhaWZ1dVwgOwor5oCo5b+1IDwgb24nJ25lblwgOwor5YyW55SfIDwga2VzaG91XCA7Civph5HlsbEgPCBraW56YW5cIDsKK+aCn+WFpSA8IGdvbnl1dVwgOwor6YC46LazIDwgaXNzb2t1XCA7CivnoKXnn7MgPCB0b2lzaGlcIDsKK+WPpOWutiA8IGZ1cnVpZVwgOwor6Jas5ZGzIDwgeWFrdW1pXCA7CivnnLzpj6EgPCBtZWdhbmVcIDsKK+ecn+mdkiA8IG1hc3Nhb1wgOwor5Y2K5ribIDwgaGFuZ2VuXCA7Civlj7flpJYgPCBnb3VnYWlcIDsKK+mBlOimsyA8IHRha2thblwgOwor5Ye66ZqbIDwgZGVnaXdhXCA7Civlj47lt64gPCBzaHV1c2FcIDsKK+axuuaEjyA8IGtldHN1aVwgOwor5bqV6L66IDwgdGVpaGVuXCA7CivlkJvlkb0gPCBrdW5tZWlcIDsKK+mHjuWuvyA8IG5vanVrdVwgOwor55+t57eoIDwgdGFucGVuXCA7CivokZvnsokgPCBrdXp1a29cIDsKK+mAmumBiyA8IHRzdXV1blwgOwor6JaE5aGpIDwgdXN1amlvXCA7CivmgqrkurogPCBha3VuaW5cIDsKK+mAo+i8iSA8IHJlbnNhaVwgOwor5Yil6YK4IDwgYmV0dGVpXCA7Civms6Llj4ogPCBoYWt5dXVcIDsKK+WOn+aLoCA8IGdlbmt5b1wgOwor5byp57SaIDwgZG9reXV1XCA7Civmr5vnjokgPCBrZWRhbWFcIDsKK+mHjOWtkCA8IHNhdG9nb1wgOwor56S+5ZG9IDwgc2hhbWVpXCA7Civmra/ogokgPCBoYW5pa3VcIDsKK+iNt+mejSA8IG5pZ3VyYVwgOwor55+z57KJIDwgaXNoaWtvXCA7CivmgqnkubEgPCBub3VyYW5cIDsKK+WOhOaXpSA8IHlha3ViaVwgOwor5Y2X5qynIDwgbmFuJydvdVwgOwor6ICz6by756eRIDwgamliaWthXCA7CivpgYropqcgPCB5dXVyYW5cIDsKK+mBruiUvSA8IHNoYWhlaVwgOwor6Jas5Yq5IDwgeWFra291XCA7CivlkI3lk4EgPCBtZWloaW5cIDsKK+ekvuWPiyA8IHNoYXl1dVwgOwor6YOh55yMIDwgZ3Vua2VuXCA7Civph43lqZogPCBqdXVrb25cIDsKK+mAgemHkSA8IHNvdWtpblwgOwor5Y6a5omLIDwgYXRzdWRlXCA7CivluZXplpMgPCBtYWt1YWlcIDsKK+W5tOmHkSA8IG5lbmtpblwgOwor5Y+N5bCEIDwgaGFuc2hhXCA7Civlj43lr74gPCBoYW50YWlcIDsKK+WQjeWQnyA8IG1laWdpblwgOwor55uu6auYIDwgbWVkYWthXCA7Civov5Tpm7sgPCBoZW5kZW5cIDsKK+mIjeWIgCA8IGRvbnRvdVwgOwor56C0542EIDwgaGFnb2t1XCA7CivmsrnlnKcgPCB5dWF0c3VcIDsKK+WNr+aciCA8IHVkenVraVwgOwor5rC05pyoIDwgbWl6dWtpXCA7CivnoILnpKsgPCBzYXJla2lcIDsKK+aAkuW8tSA8IGRvY2hvdVwgOwor55S75p625bqnIDwgZ2FrYXphXCA7CivliIbpioUgPCBmdW5kb3VcIDsKK+S4jeWuieawlyA8IGZ1YW5nZVwgOwor6YC46KmxIDwgaXRzdXdhXCA7CivojYnprZogPCBzb3VneW9cIDsKK+WNs+aZgiA8IHNva3VqaVwgOwor5byB6ICFIDwgYmVuc2hhXCA7CivpgJrot68gPCB0c3V1cm9cIDsKK+iTruaguSA8IHJlbmtvblwgOwor5ZCI5ZCMIDwgZ291ZG91XCA7Civov5HpmqMgPCBraW5yaW5cIDsKK+Wkp+WHuuadpSA8IG9vZGVraVwgOwor6YeN5aSJIDwganV1aGVuXCA7CivpoqjpgqrmsJcgPCBrYXpla2VcIDsKK+iNkummrCA8IGFyYXVtYVwgOwor5b+r5oyZIDwga2Fpa3lvXCA7CivliIbph44gPCBidW4nJ3lhXCA7CivphZLmna8gPCBzaHVoYWlcIDsKK+WQjOWLoiA8IGRvdXplaVwgOwor5rCX5qW9IDwga2lyYWt1XCA7CivmsJHmqKkgPCBtaW5rZW5cIDsKK+WIg+mHnSA8IGhhYmFyaVwgOwor5q2m5Zmo5bqrIDwgYnVraWtvXCA7Civlj4Llrq4gPCBzYW5ndXVcIDsKK+WIhumFjSA8IGJ1bnBhaVwgOwor6YG66ISxIDwgaWRhdHN1XCA7Civov7AgPCBqdXRzdVwgOwor5b+FIDwgaGl0c3VcIDsKK+i+uyA8IHRzdWppXCA7CivlvrkgPCB0ZXRzdVwgOwor556lIDwgYmV0c3VcIDsKK+W+jCA8IG5vY2hpXCA7CivlvosgPCByaXRzdVwgOwor552AIDwgY2hha3VcIDsKK+W8jyA8IHNoaWtpXCA7CivnmrogPCBzaGl3YVwgOwor6LqFIDwgY2hva3VcIDsKK+eZviA8IGh5YWt1XCA7Civnmb0gPCBzaGlyb1wgOwor55m8IDwgaG90c3VcIDsKK+eZuiA8IGhhdHN1XCA7CivlubggPCBzYWNoaVwgOwor5bm0IDwgdG9zaGlcIDsKK+eZqiA8IHNoYWt1XCA7Civlt7QgPCB0b21vZVwgOwor55eFIDwgeWFtYWlcIDsKK+eVpSA8IHJ5YWt1XCA7CivnlZwgPCBjaGlrdVwgOwor55S6IDwgbWFjaGlcIDsKK+eUtyA8IG90b2tvXCA7CivnlLEgPCB5b3NoaVwgOwor5bO2IDwgc2hpbWFcIDsKK+izqiA8IHRhY2hpXCA7CivlsrggPCBraXNoaVwgOwor5bGIIDwga3V0c3VcIDsKK+WwuyA8IHNoaXJpXCA7Civlr6YgPCBqaXRzdVwgOwor5a+fIDwgc2F0c3VcIDsKK+WvhiA8IG1pdHN1XCA7CivlrrQgPCB1dGFnZVwgOwor5a6iIDwga3lha3VcIDsKK+eMviA8IGthdHN1XCA7CivoqqwgPCBzZXRzdVwgOwor6KmwIDwga2l0c3VcIDsKK+eIuiA8IGppamlpXCA7CivniKogPCB0c3VtZVwgOwor6KijIDwga2V0c3VcIDsKK+inuCA8IHNob2t1XCA7Civop5IgPCB0c3Vub1wgOwor5aa7IDwgdHN1bWFcIDsKK+eGsSA8IG5ldHN1XCA7Civopb8gPCBuaXNoaVwgOwor5aW0IDwgeWF0c3VcIDsKK+WlqiA8IGRhdHN1XCA7CivlpI8gPCBuYXRzdVwgOwor54OIIDwgcmV0c3VcIDsKK+iityA8IGF3YXNlXCA7Civngo4gPCBob25vb1wgOwor5aKDIDwgc2FrYWlcIDsKK+WhtSA8IGNoaXJpXCA7CivloZogPCB0c3VrYVwgOwor5Z+6IDwgbW90b2lcIDsKK+WfkiA8IHJhY2hpXCA7CivpvaIgPCB5b3dhaVwgOwor6by+IDwgaWJpa2lcIDsKK+icgiA8IGhhY2hpXCA7Civpu5AgPCBtb2NoaVwgOwor5ruFIDwgbWV0c3VcIDsKK+ialSA8IGthaWtvXCA7Civpub8gPCBzaGlrYVwgOwor6JmrIDwgbXVzaGlcIDsKK+iZniA8IG9zb3JlXCA7CivlmYIgPCB1d2FzYVwgOwor5re1IDwgZnVjaGlcIDsKK+m3siA8IHdhc2hpXCA7Civmt5EgPCBzaHVrdVwgOwor6ba0IDwgdHN1cnVcIDsKK+WWhyA8IHJhdHN1XCA7CivllL4gPCB0c3ViYVwgOwor5rOJIDwgaXp1bWlcIDsKK+ayuSA8IGFidXJhXCA7CivmsqEgPCBib3RzdVwgOwor5ZKEIDwgdG90c3VcIDsKK+axgSA8IHRzdXl1XCA7CivpsIwgPCBkb2pvdVwgOwor5ZCJIDwga2ljaGlcIDsKK+WPoyA8IGt1Y2hpXCA7CivljZggPCBoaXRvZVwgOwor5Y2SIDwgc290c3VcIDsKK+asoSA8IHRzdWdpXCA7Civmq5sgPCBrdXNoaVwgOwor6IqdIDwgc2hpYmFcIDsKK+WKmyA8IHJ5b2t1XCA7CivoibYgPCB0c3V5YVwgOwor5qmLIDwgaGFzaGlcIDsKK+aoqyA8IGthc2hpXCA7CivoiIwgPCBzaGl0YVwgOwor5YiDIDwgeWFpYmFcIDsKK+iFsCA8IGtvc2hpXCA7CivlhY4gPCB1c2FnaVwgOwor5YWAIDwga290c3VcIDsKK+iEiCA8IG15YWt1XCA7Civpo68gPCBtZXNoaVwgOwor5qKoIDwgbmFzaGlcIDsKK+aioiA8IGtvenVlXCA7CivmopMgPCBhenVzYVwgOwor6aGNIDwgaGl0YWlcIDsKK+mggSA8IHBlaWppXCA7Civnv4EgPCBva2luYVwgOwor6Z6tIDwgbXVjaGlcIDsKK+mehCA8IGthYmFuXCA7Civmnb4gPCBtYXRzdVwgOwor572wIDwgYmF0c3VcIDsKK+e9qiA8IHRzdW1pXCA7CivkvZsgPCBidXRzdVwgOwor5L2NIDwga3VyYWlcIDsKK+S8uCA8IG5vc2hpXCA7CivpnLAgPCBhcmFyZVwgOwor6ZycIDwgc2hpbW9cIDsKK+aciCA8IHRzdWtpXCA7Civmm7IgPCBreW9rdVwgOwor6ZucIDwgemF0c3VcIDsKK+S7mSA8IHNlbnRvXCA7Civpm4cgPCB5YXRvaVwgOwor5Lm+IDwgaG9zaGlcIDsKK+S4uyA8IG51c2hpXCA7CivntrEgPCB0c3VuYVwgOwor57W2IDwgemV0c3VcIDsKK+e1giA8IG93YXJpXCA7Civmk40gPCBtaXNhb1wgOwor56+AIDwgYnVzaGlcIDsKK+eukiA8IGhvdWtpXCA7CivnrZQgPCBrb3RhZVwgOwor5ouCIDwgZnV0c3VcIDsKK+aIpiA8IGlrdXNhXCA7CivpgZMgPCBtaWNoaVwgOwor6YC5IDwgdGF0c3VcIDsKK+mAhiA8IGd5YWt1XCA7Civnnr3ogIUgPCBrb3NoYVwgOwor5ZCN5YmNIDwgbmFtYWVcIDsKK+W4sOmghiA8IGtpanVuXCA7CivluqfoppYgPCB6YXNoaVwgOwor5b+r5omTIDwga2FpZGFcIDsKK+mAgei+niA8IHNvdWppXCA7CivlkI3liKkgPCBtZWlyaVwgOwor55yJ6ZaTIDwgbWlrZW5cIDsKK+ejgeaApyA8IGppc2VpXCA7CivolqzkvqEgPCB5YWtrYVwgOwor56Cy54WZIDwgaG91ZW5cIDsKK+ekvOWEgCA8IHJlaWdpXCA7Civms5XlhbcgPCBob3VndVwgOwor5ZCP5YWaIDwgcml0b3VcIDsKK+ebrumhlCA8IG1lZ2FvXCA7CivnopHmlocgPCBoaWJ1blwgOwor6YCj6KqeIDwgcmVuZ29cIDsKK+mHjeWbsiA8IGNob3VpXCA7Civmsq7llqogPCBzb3NvdVwgOwor6YG657+SIDwgaXNodXVcIDsKK+mBuOiAhSA8IHNlbmphXCA7CivmrYzogZYgPCBrYXNlaVwgOwor6YCg6KqeIDwgem91Z29cIDsKK+egsueBqyA8IGhvdWthXCA7CivokrjmsJcgPCBqb3VraVwgOwor5oCq5aWHIDwga2Fpa2lcIDsKK+mAo+iomCA8IHJlbmtpXCA7Civph43lmaggPCBqdXVraVwgOwor5Yqg57OWIDwga2F0b3VcIDsKK+aBqeWFuCA8IG9udGVuXCA7Civluo/oq5YgPCBqb3JvblwgOwor5q+F54S2IDwga2l6ZW5cIDsKK+WItuimhyA8IHNlaWhhXCA7CivmrY7nvo4gPCB0YW5iaVwgOwor6YCA6LevIDwgdGFpcm9cIDsKK+W/nOaJiyA8IG91c2h1XCA7CivpgJ/oqJggPCBzb2traVwgOwor5rOi5LmxIDwgaGFyYW5cIDsKK+W/nOaIpiA8IG91c2VuXCA7CivpgKPopocgPCByZW5wYVwgOwor5oCo5aOwIDwgZW5zZWlcIDsKK+ayueWNmCA8IHl1dGFuXCA7Civluo/oqZ4gPCBqb3NoaVwgOwor5Yy75qWtIDwgaWd5b3VcIDsKK+W6j+iogCA8IGpvZ2VuXCA7Civlv5jmiJEgPCBib3VnYVwgOwor6I236YeNIDwga2FqdXVcIDsKK+WMuuaknCA8IGt1a2VuXCA7CivljZfmlpcgPCBuYW50b1wgOwor5rK95Yi4IDwga29rZW5cIDsKK+WNiuacnyA8IGhhbmtpXCA7CivlkIzkvqEgPCBkb3VrYVwgOwor5YuV55S7IDwgZG91Z2FcIDsKK+ays+WNlyA8IGthbmFuXCA7CivoloTliIMgPCB1c3ViYVwgOwor5Yqg566XIDwga2FzYW5cIDsKK+W5tOizpiA8IG5lbnB1XCA7Civlj6PlkbMgPCBrb3VtaVwgOwor6L+36LevIDwgbWVpcm9cIDsKK+ayueWJpCA8IHl1emFpXCA7CivlubTos4AgPCBuZW5nYVwgOwor5Y+v5YuVIDwga2Fkb3VcIDsKK+W5tOiyoiA8IG5lbmd1XCA7CivlvqHmoKogPCBva2FidVwgOwor5Y6o5a2QIDwgenVzaGlcIDsKK+WIpeiomCA8IGJla2tpXCA7CivlkI/kurogPCByaWppblwgOwor5ZCE5YCLIDwga2Fra29cIDsKK+mCquefpSA8IGphY2hpXCA7Civlj6Tlj4IgPCBrb3NhblwgOwor5rOV5LqLIDwgaG91amlcIDsKK+iVg+WktyA8IGJhbicnaVwgOwor6YeN5ZGzIDwgb21vbWlcIDsKK+aouem9oiA8IGp1cmVpXCA7CivljYPmnKggPCBjaGlnaVwgOwor5oG15LiOIDwga2VpeW9cIDsKK+mFuOW6piA8IHNhbmRvXCA7CivlirHno4EgPCByZWlqaVwgOwor5Ymj6IieIDwga2VuYnVcIDsKK+azleS4uyA8IGhvc3N1XCA7Civmr43muK8gPCBib2tvdVwgOwor6YeO5ZCIIDwgeWFnb3VcIDsKK+WQjOS6iyA8IGRvdWppXCA7Civlj6/liIYgPCBrYWJ1blwgOwor6YeO5Y+yIDwgeWFzaGlcIDsKK+WKqeelrSA8IGpvc2FpXCA7CivlkITkvY0gPCBrYWt1aVwgOwor5b6h5pytIDwgb2Z1ZGFcIDsKK+mBjuiIrCA8IGthaGFuXCA7CivliIbos6YgPCBidW5wdVwgOwor56iu44CFIDwgc2h1anVcIDsKK+W/mOaBqSA8IGJvdW9uXCA7CivlvoXmqZ8gPCB0YWlraVwgOwor5oGp5Lq6IDwgb25qaW5cIDsKK+W/jOaGmiA8IGtpdGFuXCA7CivpgYvoiKogPCB1bmtvdVwgOwor5rKz5YaFIDwgaGFub2lcIDsKK+aBqOS6iyA8IGtvbmppXCA7CivmgKflmaggPCBzZWlraVwgOwor5oCS5aOwIDwgZG9zZWlcIDsKK+apn+mmliA8IGtpc2h1XCA7CivliJfoqJggPCByZWtraVwgOwor5Y+k5Yi2IDwga29zZWlcIDsKK+WPjeWTuiA8IGhhbnBvXCA7CivljYHml6UgPCB0b29rYVwgOwor5b6h5pi8IDwgb2hpcnVcIDsKK+mDveawkSA8IHRvbWluXCA7CivnnIvpgY4gPCBrYW5rYVwgOwor5Y+k5YiAIDwga290b3VcIDsKK+W8peeUnyA8IHlheW9pXCA7CivpgIHoqbEgPCBzb3V3YVwgOwor5bmz6KqeIDwgaGVpZ29cIDsKK+avkuawlyA8IGRva2tlXCA7Civnn5vnm74gPCBtdWp1blwgOwor56C05rC0IDwgaGFzdWlcIDsKK+mHkeWIqSA8IGtpbnJpXCA7Civms4nkuIsgPCBzZW5rYVwgOwor6L+U6L6eIDwgaGVuamlcIDsKK+m1nuavmyA8IGdhbW91XCA7Civlj5nli7IgPCBqb2t1blwgOwor5rKW5ZCIIDwgb2tpYWlcIDsKK+WPpOWFuCA8IGtvdGVuXCA7Civpr6jpo7IgPCBnZWlpblwgOwor6YeN5YipIDwganV1cmlcIDsKK+WNsOW9sSA8IGluJydlaVwgOwor5Y2Y5omTIDwgdGFuZGFcIDsKK+W+oeaVsCA8IG9rYXp1XCA7Civlj5fli5UgPCBqdWRvdVwgOwor6YGT576pIDwgZG91Z2lcIDsKK+W+jOaetiA8IGtvdWthXCA7CivpgaDnuIEgPCB0b29lblwgOwor5YiG6KqyIDwgYnVua2FcIDsKK+mCpueUuyA8IGhvdWdhXCA7Civph47lhZogPCB5YXRvdVwgOwor552A6KGjIDwgeWFrdWlcIDsKK+WPl+WIkSA8IGp1a2VpXCA7Civmr47mrKEgPCBtYWlqaVwgOwor5b6M5pyfIDwga291a2lcIDsKK+iVqeWFkCA8IHRvdWppXCA7CivmsrnkupUgPCB5dXNlaVwgOwor5bu656KRIDwga2VucGlcIDsKK+WGpemXhyA8IG1laWFuXCA7CivluIPpmaMgPCBmdWppblwgOwor6I2S6YeOIDwga291eWFcIDsKK+ayu+S4iyA8IGNoaWthXCA7CivovrrphJkgPCBoZW5waVwgOwor6YWS5b6SIDwgc2h1dG9cIDsKK+apn+mbtyA8IGtpcmFpXCA7CivmrYznqL8gPCBrYWtvdVwgOwor5byn54q2IDwga29qb3VcIDsKK+mBt+enuyA8IHNlbicnaVwgOwor5biw6YKEIDwga2lrYW5cIDsKK+atr+eXmyA8IGhhaXRhXCA7CivmsJHmiLggPCBtaW5rb1wgOwor5Yqg55ufIDwga2FtZWlcIDsKK+iPiuiKsSA8IGtpa2thXCA7Civlj6TkvosgPCBrb3JlaVwgOwor5Y+w5LiLIDwgZGFpa2FcIDsKK+WIu+iLpiA8IGtva2t1XCA7Civmr43mqKkgPCBib2tlblwgOwor5Y+k5L2TIDwga290YWlcIDsKK+W+gOadpSA8IG91cmFpXCA7Civlj5flg48gPCBqdXpvdVwgOwor5Y+l5LyaIDwga3VrYWlcIDsKK+WPpOS8nSA8IGtvZGVuXCA7Civlv5zlr74gPCBvdXRhaVwgOwor5Y2x5bOwIDwga2lob3VcIDsKK+auuuawlyA8IHNha2tpXCA7CivliqnnlKMgPCBqb3NhblwgOwor5biw6L6yIDwga2lub3VcIDsKK+WPpOS7oyA8IGtvZGFpXCA7Civlj6Tku4ogPCBrb2tvblwgOwor5Y+k5Lq6IDwga29qaW5cIDsKK+mBlee0hCA8IGl5YWt1XCA7Civljp/lm7MgPCBnZW56dVwgOwor5Y2B5omLIDwgaml0dGVcIDsKK+awkeaEjyA8IG1pbicnaVwgOwor5Y+C5YqgIDwgc2Fua2FcIDsKK+WGtumHkSA8IHlha2luXCA7Civnn7PngasgPCBzZWtrYVwgOwor5YW16aasIDwgaGVpYmFcIDsKK+W+oeaJgCA8IGdvc2hvXCA7Civph47kurogPCB5YWppblwgOwor5byB55aPIDwgYmVuc29cIDsKK+WOn+WZqCA8IGdlbmtpXCA7CivpgKDoirEgPCB6b3VrYVwgOwor5bid6YO9IDwgdGVpdG9cIDsKK+iLsemtgiA8IGVpa29uXCA7Civljq3lkbMgPCBpeWFtaVwgOwor5Y2x5a6zIDwga2lnYWlcIDsKK+W6l+iIlyA8IHRlbnBvXCA7CivphY3luIMgPCBoYWlmdVwgOwor5q615q2pIDwgdGFuYnVcIDsKK+WNmOW6pyA8IHRhbnphXCA7Civlj5nku7sgPCBqb25pblwgOwor5qyn57GzIDwgb3ViZWlcIDsKK+aAkuWPtyA8IGRvZ291XCA7CivmsLjlrZggPCBlaXpvblwgOwor5bel6Z2iIDwga3VtZW5cIDsKK+WGhemcgCA8IG5haWp1XCA7Civlj5fku7sgPCBqdW5pblwgOwor5b6M5o+0IDwga291ZW5cIDsKK+ecjOitsCA8IGtlbmdpXCA7Civli6TmsYIgPCBnb25ndVwgOwor55yL6K23IDwga2FuZ29cIDsKK+WGhumZoyA8IGVuamluXCA7Civphbjln7ogPCBzYW5raVwgOwor5biw6LaoIDwga2lzdXVcIDsKK+W9k+apnyA8IHRvdWtpXCA7CivlvIHnkIYgPCBiZW5yaVwgOwor5q+N5p2QIDwgYm96YWlcIDsKK+W+kuaJiyA8IHRvc2h1XCA7Civnm5vpgYsgPCBzZWl1blwgOwor5q2v54mZIDwgc2hpZ2FcIDsKK+awkeW6piA8IG1pbmRvXCA7CivpgYvnrpcgPCB1bnphblwgOwor5b+c5aSJIDwgb3VoZW5cIDsKK+mFkuWutiA8IHNodWthXCA7CivlvKXmvKsgPCBiaW1hblwgOwor6YWS5a60IDwgc2h1ZW5cIDsKK+mun+mxhyA8IGFua291XCA7CivovZ/pn7MgPCBnb3VvblwgOwor5b6h5b+1IDwgZ29uZW5cIDsKK+W+l+aEjyA8IHRva3VpXCA7Civlhbjpm4UgPCB0ZW5nYVwgOwor5Y+M5LqSIDwgc291Z29cIDsKK+WLmOawlyA8IGthbmtpXCA7Civovp7pgIAgPCBqaXRhaVwgOwor5Y6f5Y+lIDwgZ2Vua3VcIDsKK+mBuueVmSA8IGlyeXV1XCA7CivmqZ/pioMgPCBraWp1dVwgOwor6YO95pS/IDwgdG9zZWlcIDsKK+WLleawlyA8IGRvdWtpXCA7Civlv5zloLEgPCBvdWhvdVwgOwor5bm86Iq9IDwgeW91Z2FcIDsKK+ehrOW6piA8IGtvdWRvXCA7CivlvqnluLAgPCBmdWtraVwgOwor5qy6556eIDwgZ2ltYW5cIDsKK+mBoOefoiA8IHRvb3lhXCA7CivpgY7nqIsgPCBrYXRlaVwgOwor5rC05aSrIDwgc3VpZnVcIDsKK+avjeaWkSA8IGJvaGFuXCA7CivmgJzkv5AgPCByZWlyaVwgOwor5biC6YOoIDwgc2hpYnVcIDsKK+WKq+eBqyA8IGdvdWthXCA7CivlhqXpgJQgPCBtZWlkb1wgOwor5Y+C5LqLIDwgc2FuamlcIDsKK+W+oeW5oyA8IGdvaGVpXCA7CivlvL7mqZ8gPCBkYW5raVwgOwor6YGg55y8IDwgZW5nYW5cIDsKK+egtOaRpyA8IGhhc2FpXCA7Civov5HooZsgPCBrb25vZVwgOwor55+t5rOiIDwgdGFucGFcIDsKK+mBoOebriA8IHRvb21lXCA7CivphofljJYgPCBqdW5rYVwgOwor5Yik6ICFIDwgaGFuamFcIDsKK+egtOaQjSA8IGhhc29uXCA7CivpgZPnoLQgPCBkb3VoYVwgOwor6Iux6ZyKIDwgZWlyZWlcIDsKK+WLh+awlyA8IHl1dWtpXCA7CivmsJflrZQgPCBraWtvdVwgOwor5Yqg54K5IDwga2F0ZW5cIDsKK+mFuOWRsyA8IHNhbm1pXCA7CivlhqDovp4gPCBrYW5qaVwgOwor6Iux6ZuEIDwgZWl5dXVcIDsKK+W/q+WRsyA8IGthaW1pXCA7CivlubPoh6UgPCBoZWlnYVwgOwor5Y6a5YipIDwga291cmlcIDsKK+W+kuW8nyA8IHRvdGVpXCA7Civnn63msJcgPCB0YW5raVwgOwor5rCR5a62IDwgbWlua2FcIDsKK+W3rumHkSA8IHNha2luXCA7Civpg6jmlbAgPCBidXN1dVwgOwor5bqD576pIDwga291Z2lcIDsKK+WLh+atpiA8IHl1dWJ1XCA7CivlhYjpp4YgPCBzZW5rdVwgOwor6YKq5rOVIDwgamFob3VcIDsKK+W/jOWeoyA8IGlnYWtpXCA7CivliY3np5EgPCB6ZW5rYVwgOwor5rCP5a2QIDwgdWppa29cIDsKK+W3rumFjSA8IHNhaGFpXCA7Civnn63mrYwgPCB0YW5rYVwgOwor5YaF6YeOIDwgbmFpeWFcIDsKK+ebuOijnCA8IHNvdWhvXCA7CivlvKbmrYwgPCBnZW5rYVwgOwor5Y2D5a62IDwgc2Vua2VcIDsKK+iLpumboyA8IGt1bmFuXCA7CivlvJjms5UgPCBndWhvdVwgOwor5qmf6LuiIDwga2l0ZW5cIDsKK+egtOaIkiA8IGhha2FpXCA7Civmr4DmkI0gPCBraXNvblwgOwor5Y2B5a2XIDwganV1amlcIDsKK+W3rumBoyA8IHNha2VuXCA7CivlvqHlrrQgPCBneW9lblwgOwor5YuY5p+7IDwga2Fuc2FcIDsKK+efruaouSA8IHdhaWp1XCA7Civnmb3pm6ggPCBoYWt1dVwgOwor5b6h5a6FIDwgb3Rha3VcIDsKK+WGhemDqCA8IG5haWJ1XCA7Civlhrfoqp4gPCByZWlnb1wgOwor5bqn56aFIDwgemF6ZW5cIDsKK+iNt+iRiSA8IGtheW91XCA7Civoi6bpl5ggPCBrdXRvdVwgOwor6L6e6K2yIDwgamlqb3VcIDsKK+WMu+WtpiA8IGlnYWt1XCA7CivliqDmuJsgPCBrYWdlblwgOwor5bqn56S8IDwgemFyZWlcIDsKK+mFkuWZqCA8IHNodWtpXCA7Civlt6bpgbcgPCBzYXNlblwgOwor55m76ZmiIDwgdG91aW5cIDsKK+WFiOmdniA8IHNlbnBpXCA7CivpgYvnl7QgPCB1bmNoaVwgOwor5biC6LK7IDwgc2hpaGlcIDsKK+W+gOW5tCA8IG91bmVuXCA7CivlupznqI4gPCBmdXplaVwgOwor56CU5pGpIDwga2VubWFcIDsKK+W3oemCjyA8IGp1bnJhXCA7CivliaPnkr0gPCBrZW5qaVwgOwor5YWN6ZmkIDwgbWVuam9cIDsKK+iKsemtgSA8IG9pcmFuXCA7Civlu7bmu54gPCBlbnRhaVwgOwor5bem6L66IDwgc2FoZW5cIDsKK+W+ruWhtSA8IG1pamluXCA7Civpg6jmiYAgPCBidXNob1wgOwor5Yy55ammIDwgaGlwcHVcIDsKK+WFiemZsCA8IGtvdWluXCA7CivmrKHnlLcgPCBqaW5hblwgOwor5Yqg5rOVIDwga2Fob3VcIDsKK+W+jOWwviA8IGtvdWJpXCA7Civlhobou6IgPCBlbnRlblwgOwor6YGT55CGIDwgZG91cmlcIDsKK+ats+asoSA8IHNhaWppXCA7CivlhpfosrsgPCBqb3VoaVwgOwor5Yil566HIDwgYmVra29cIDsKK+iMtuipsSA8IGNoYXdhXCA7Civmr43mgKcgPCBib3NlaVwgOwor5rCX5ZyPIDwga2lrZW5cIDsKK+W4guitsCA8IHNoaWdpXCA7CivmsJflm6MgPCBraWRhblwgOwor5b+c5YiGIDwgb3VidW5cIDsKK+W+oeWkpyA8IG9udGFpXCA7CivliqDmsLQgPCBrYXN1aVwgOwor5q+b5biDIDwgbW91ZnVcIDsKK+WGjei1tyA8IHNhaWtpXCA7CivmsLjliqsgPCBlaWdvdVwgOwor5rC05YyWIDwgc3Vpa2FcIDsKK+mAlOerryA8IHRvdGFuXCA7Civpg73luqYgPCB0c3Vkb1wgOwor5q+N5b2iIDwgYm9rZWlcIDsKK+W5s+e0oCA8IGhlaXNvXCA7Civli7/mgKogPCBtb2trZVwgOwor5YaZ6K2cIDwgc2hhZnVcIDsKK+ato+avlCA8IHNlaWhpXCA7CivlvbzlsrggPCBoaWdhblwgOwor5Y2w5YikIDwgaW5wYW5cIDsKK+avjuW6piA8IG1haWRvXCA7Civlhajpg70gPCB6ZW50b1wgOwor5Y2w5YiAIDwgaW50b3VcIDsKK+WFqOmDqCA8IHplbmJ1XCA7CivmsLTliKkgPCBzdWlyaVwgOwor5b2p5bqmIDwgc2FpZG9cIDsKK+W9ouW9sSA8IGtlaWVpXCA7CivliKXnp5EgPCBiZWtrYVwgOwor6YGg54GrIDwgdG9vYmlcIDsKK+iRieacqyA8IGhhenVlXCA7Civlv6vkuosgPCBrYWlqaVwgOwor5bqc55yMIDwgZnVrZW5cIDsKK+WGl+iqniA8IGpvdWdvXCA7CivljLrln58gPCBrdWlraVwgOwor5beo6LK7IDwga3lvaGlcIDsKK+W+oeWdiiA8IGdvYm91XCA7Civnn6LmnaUgPCB5YXJhaVwgOwor5YyW5bCOIDwga2Vkb3VcIDsKK+iLsemCgSA8IGVpbWFpXCA7CivlvozlprsgPCBnb3NhaVwgOwor5q+U5bO2IDwgaGl0b3VcIDsKK+WNmOWPpSA8IHRhbmt1XCA7CivmsJflk4EgPCBraWhpblwgOwor5YaN6K2wIDwgc2FpZ2lcIDsKK+W3peiyuyA8IGtvdWhpXCA7Civli53miYsgPCBrYXR0ZVwgOwor55y856qpIDwgZ2Fua2FcIDsKK+W4g+iiiyA8IGhvdGVpXCA7CivoibbpupcgPCBlbnJlaVwgOwor5YSq6ZuFIDwgeXV1Z2FcIDsKK+avm+WtlCA8IGtlYW5hXCA7CivnoLTlsYsgPCBoYW9rdVwgOwor5Yuk5oOwIDwga2luZGFcIDsKK+WGheitsCA8IG5haWdpXCA7CivmrZTmrLcgPCBreW9raVwgOwor6Ly46YqAIDwgeXVnaW5cIDsKK+WFqOi6ryA8IHplbmt1XCA7CivlubPnqY8gPCBoZWlvblwgOwor5Y2z5L2NIDwgc29rdWlcIDsKK+W6j+ebpCA8IGpvYmFuXCA7Civov5Hnv5IgPCBraW5qdVwgOwor5qih6YCgIDwgbW96b3VcIDsKK+avjeWxiyA8IG9tb3lhXCA7CivprZHprYUgPCBjaGltaVwgOwor5rC45L2PIDwgZWlqdXVcIDsKK+ebruiMtiA8IG1lY2hhXCA7Civlhazot68gPCBrb3Vyb1wgOwor5YiH56ymIDwga2lwcHVcIDsKK+aoqui7oiA8IG91dGVuXCA7CivlubTnp58gPCBuZW5zb1wgOwor6LuN6byTIDwgZ3Vua29cIDsKK+WNiuWPryA8IGhhbmthXCA7CivljYrlj6UgPCBoYW5rdVwgOwor5Y2Y5YipIDwgdGFucmlcIDsKK+W+s+WMliA8IHRva2thXCA7CivliKnnm4ogPCByaWVraVwgOwor5qyh54K5IDwgaml0ZW5cIDsKK+W9k+W6pyA8IHRvdXphXCA7CivlvpPlm6AgPCBqdXVpblwgOwor5rC45LujIDwgZWl0YWlcIDsKK+awl+WLoiA8IGtpc2VpXCA7Civmra/mnLYgPCBzaGlkYVwgOwor5q2z5pquIDwgc2VpYm9cIDsKK+W9vOWltCA8IGFpdHN1XCA7Civlvqnlj6QgPCBmdWtrb1wgOwor5YeE6Im2IDwgc2VpZW5cIDsKK+avjeWtkCA8IGJvc2hpXCA7CivpgaDmtbcgPCBlbmthaVwgOwor5rCX5YmNIDwga2ltYWVcIDsKK+WNg+WPpCA8IHNlbmtvXCA7Civlhrfoj5MgPCByZWlrYVwgOwor5byV5pWwIDwgaW5zdXVcIDsKK+WMquWboyA8IGhpZGFuXCA7CivphY3lgpkgPCBoYWliaVwgOwor5b6u5YuVIDwgYmlkb3VcIDsKK+awuOS4liA8IGVpc2VpXCA7CivmrrXlt64gPCBkYW5zYVwgOwor5b255aSrIDwgZWtpZnVcIDsKK+awl+WIhiA8IGtpYnVuXCA7CivphZLkv50gPCBzaHVob1wgOwor5by35oSPIDwga3lvdWlcIDsKK+WGheimjyA8IG5haWtpXCA7CivpgaDms7MgPCBlbicnZWlcIDsKK+iNieiKsSA8IHNvdWthXCA7CivphZTkvZkgPCBzdWl5b1wgOwor6JKy5ZujIDwgZnV0b25cIDsKK+W+oeWPsCA8IG1pZGFpXCA7Civou43pto8gPCBzaGFtb1wgOwor6YCj55CGIDwgcmVucmlcIDsKK+mCquaOqCA8IGphc3VpXCA7CivmsJHliKkgPCBtaW5yaVwgOwor6YGL5ryVIDwgdW5zb3VcIDsKK+mAo+ePoCA8IHJlbmp1XCA7CivliKnnlKggPCByaXlvdVwgOwor5b6u5YiGIDwgYmlidW5cIDsKK+WNiOWJjSA8IGdvemVuXCA7Civoi7Hos4cgPCBlaXNoaVwgOwor5YaF6KOPIDwgZGFpcmlcIDsKK+i8uOmAgSA8IHl1c291XCA7CivlhYjpgJQgPCBzZW5kb1wgOwor5Yqp5pS7IDwgam9rb3VcIDsKK+auv+WuhyA8IGRlbicndVwgOwor6Iqf6ZmkIDwgc2Fuam9cIDsKK+WIh+ejiyA8IHNlc3NhXCA7CivmsJHlhbcgPCBtaW5ndVwgOwor6bWE5bC+IDwgc2hpYmlcIDsKK+WMu+WNmiA8IGloYWt1XCA7CivojLboj5MgPCBjaGFrYVwgOwor5b6u5YWJIDwgYmlrb3VcIDsKK+atqeaVsCA8IGhvc3V1XCA7Civmr47lpJwgPCBtYWl5b1wgOwor5q2m5patIDwgYnVkYW5cIDsKK+WNmOS9jSA8IHRhbicnaVwgOwor5YW86KOcIDwga2VucG9cIDsKK+WKoOaVsCA8IGthc3V1XCA7CivlvZPlrrYgPCB0b3VrZVwgOwor5by35byVIDwgZ291aW5cIDsKK+W+kuWQjSA8IGFkYW5hXCA7CivlvqHlh7ggPCBvZGVrb1wgOwor5b2T5a2XIDwgYXRlamlcIDsKK+mFjeS4iyA8IGhhaWthXCA7CivlhazoqLQgPCBrb3Vzb1wgOwor5bmz55mSIDwgaGVpeXVcIDsKK+eZuui1tyA8IGhva2tpXCA7CivmsJfkvZMgPCBraXRhaVwgOwor6YKq5oWzIDwgamFrZW5cIDsKK+WMuuWIhiA8IGt1YnVuXCA7Civpgb/mmpEgPCBoaXNob1wgOwor6YGK5rOzIDwgeXV1ZWlcIDsKK+WMuuWHpiA8IGt1c2hvXCA7Civmr43loIIgPCBib2RvdVwgOwor5b6h5YWNIDwgZ29tZW5cIDsKK+W+oeWFiCA8IG9zYWtpXCA7CivojLboiJcgPCBjaGFob1wgOwor5YuH5b6AIDwgeXV1b3VcIDsKK+W8k+aJiyA8IHl1bmRlXCA7CivljZfkuIsgPCBuYW5rYVwgOwor5Yy65YaFIDwga3VuYWlcIDsKK+iJsummmSA8IGlyb2thXCA7CivlvpLlirQgPCB0b3JvdVwgOwor5YWa6K2wIDwgdG91Z2lcIDsKK+mCquaCqiA8IGphYWt1XCA7CivlubTnlKsgPCBuZW5wb1wgOwor6YOo5aSWIDwgYnVnYWlcIDsKK+atjOabuCA8IGthc2hvXCA7CivliZvmsJcgPCBnb3VraVwgOwor5byn5b2iIDwga29rZWlcIDsKK+WLouWutiA8IHNlaWthXCA7CivlioPmnJ8gPCBrYWtraVwgOwor56CC5bKpIDwgc2FnYW5cIDsKK+mCquaBiyA8IGphcmVuXCA7CivmsJfkuIggPCBraWpvdVwgOwor5b6p5L2NIDwgZnVrdWlcIDsKK+W+kuWIkSA8IHRva2VpXCA7Civnm67nt5ogPCBtZXNlblwgOwor6JCM5pyoIDwgbW9lZ2lcIDsKK+WGt+e9tSA8IHJlaWJhXCA7CivmsJHkuosgPCBtaW5qaVwgOwor55+p5b2iIDwga3VrZWlcIDsKK+mBuuaXjyA8IGl6b2t1XCA7Civmr5vllJAgPCBrZXRvdVwgOwor5YWo6KO4IDwgemVucmFcIDsKK+mCquW/tSA8IGphbmVuXCA7CivliqnmiJAgPCBqb3NlaVwgOwor6LuN6aasIDwgZ3VuYmFcIDsKK+WJteahiCA8IHNvdWFuXCA7CivmqKHoqaYgPCBtb3NoaVwgOwor6YGK5q2pIDwgeXV1aG9cIDsKK+WHueecvCA8IG91Z2FuXCA7CivlvZPlpJwgPCB0b3V5YVwgOwor6LuK6aasIDwgc2hhYmFcIDsKK+WKoOaLhSA8IGthdGFuXCA7CivptKjlsYUgPCBrYW1vaVwgOwor5b6h5L6bIDwgb3RvbW9cIDsKK+W+kuWFmiA8IHRvdG91XCA7Civlhobok4sgPCBlbmdhaVwgOwor5Y2D5LujIDwgY2hpeW9cIDsKK+WFhOiytCA8IGFuaWtpXCA7Civoi6boqIAgPCBrdWdlblwgOwor5b6h5Ly9IDwgb3RvZ2lcIDsKK+WMluWQiCA8IGthZ291XCA7CivliKnngrkgPCByaXRlblwgOwor6ay86Z2iIDwga2ltZW5cIDsKK+i8v+irliA8IHlvcm9uXCA7CivljYHkupQgPCBqdXVnb1wgOwor5q275b6MIDwgc2hpZ29cIDsKK+WNgeS6jCA8IGp1dW5pXCA7CivmqKrooYwgPCBvdWtvdVwgOwor5b6h5LuBIDwgZ29qaW5cIDsKK+W+jOWFiSA8IGdva291XCA7CivlhYjorbAgPCBzZW5naVwgOwor6YGg5p2lIDwgZW5yYWlcIDsKK+WJjeatryA8IG1hZWJhXCA7CivpgaDmnJsgPCBlbmJvdVwgOwor5Ye655WqIDwgZGViYW5cIDsKK+efpeW3sSA8IGNoaWtpXCA7CivlirHlvKcgPCByZWlrb1wgOwor55yL56C0IDwga2FucGFcIDsKK+W+oeS4iiA8IG9rYW1pXCA7CivlhY3oqLQgPCBtZW5zb1wgOwor5b255YuZIDwgZWtpbXVcIDsKK+iSmeWPpCA8IG1vdWtvXCA7CivlhqDogIUgPCBrYW5qYVwgOwor5buD5qOEIDwgaGFpa2lcIDsKK+WIqea9pCA8IHJpanVuXCA7Civlg6fpmaIgPCBzb3VpblwgOwor6LuN6Z20IDwgZ3Vua2FcIDsKK+WGpOe9qiA8IGVuemFpXCA7CivpgaDmma8gPCBlbmtlaVwgOwor5YaF6IuRIDwgbmFpZW5cIDsKK+W7g+ahiCA8IGhhaWFuXCA7Civou43pnIAgPCBndW5qdVwgOwor6ay86ZaAIDwga2ltb25cIDsKK+mBoOaWuSA8IGVucG91XCA7Civlt6boiLcgPCBzYWdlblwgOwor5YWB6KixIDwgaW5reW9cIDsKK+W4sOekviA8IGtpc2hhXCA7CivliqPlvKcgPCByZWtrb1wgOwor6YOo5ZOBIDwgYnVoaW5cIDsKK+egguWhtSA8IHNhamluXCA7CivliJ3mvJQgPCBzaG9lblwgOwor5q2p5buKIDwgaG9yb3VcIDsKK+atjOaJiyA8IGthc2h1XCA7CivlvozkuosgPCBrb3VqaVwgOwor5YuH5ammIDwgeXV1ZnVcIDsKK+atquW6piA8IHdhaWRvXCA7CivlubPngokgPCBoZWlyb1wgOwor6L6y56eRIDwgbm91a2FcIDsKK+atpuW8gSA8IGJ1YmVuXCA7Civpg73lhoUgPCB0b25haVwgOwor5byf5a2QIDwgZGVzaGlcIDsKK+W3puiEsyA8IHNhbm91XCA7CivliqDlubQgPCBrYW5lblwgOwor6L+R55W/IDwga2lua2lcIDsKK+W8geW6pyA8IGJlbnphXCA7CivliKXmtL4gPCBiZXBwYVwgOwor5q2j5bqnIDwgc2VpemFcIDsKK+W8leWwjiA8IGluZG91XCA7CivpgKPmrYwgPCByZW5nYVwgOwor6a2U6YGTIDwgbWFkb3VcIDsKK+W9seWDjyA8IGVpem91XCA7Civlt6vogIUgPCBmdXNoYVwgOwor5Ye554mIIDwgb3ViYW5cIDsKK+WGheiAsyA8IG5haWppXCA7CivlvZPlkKYgPCB0b3VoaVwgOwor5Yip5rC0IDwgcmlzdWlcIDsKK+mAoOasoSA8IHpvdWppXCA7Civlha3oirEgPCByaWtrYVwgOwor5Yem55CGIDwgc2hvcmlcIDsKK+W7tuW8lSA8IGVuJydpblwgOwor552/5pm6IDwgZWljaGlcIDsKK+WFq+iLpiA8IGhha2t1XCA7Civmr5TlgKsgPCBoaXJpblwgOwor6YGO5pWPIDwga2FiaW5cIDsKK+W7tuW7tiA8IGVuJydlblwgOwor5YuV5ZugIDwgZG91aW5cIDsKK+W8iuWxpSA8IGhlaXJpXCA7CivpgbrlvrMgPCBpdG9rdVwgOwor56C05YCrIDwgaGFyaW5cIDsKK+WMl+S6rCA8IHBla2luXCA7CivnoILlmLQgPCBzYXNoaVwgOwor5YmN5pyfIDwgemVua2lcIDsKK+asoeaVsCA8IGppc3V1XCA7CivpgKDmqZ8gPCB6b3VraVwgOwor5q+U5L6LIDwgaGlyZWlcIDsKK+mDqOWIhiA8IGJ1YnVuXCA7Civlho3nuIEgPCBzYWllblwgOwor55uu55ypIDwgbWVtYWlcIDsKK+aoueiEgiA8IGp1c2hpXCA7Civmrovln7ogPCB6YW5raVwgOwor6YC45pu4IDwgaXNzaG9cIDsKK+mDveS8miA8IHRva2FpXCA7CivmrL3mhZUgPCBraW5ib1wgOwor6YOo5YaFIDwgYnVuYWlcIDsKK+WFreiFkSA8IHJvcHB1XCA7CivpgJPmrKEgPCB0ZWlqaVwgOwor6YO95Lq6IDwgdG9qaW5cIDsKK+mBi+aQrCA8IHVucGFuXCA7CivliY3ml6UgPCBtYWViaVwgOwor5q+N5L2TIDwgYm90YWlcIDsKK+WIqeaoqSA8IHJpa2VuXCA7CivpgbfluqcgPCBzZW56YVwgOwor5Yqg5a6zIDwga2FnYWlcIDsKK+mBoOaFriA8IGVucnlvXCA7Civli6fljJYgPCBrYW5nZVwgOwor5YuH5ZuzIDwgeXV1dG9cIDsKK+iPqeaPkCA8IGJvZGFpXCA7Civlg6fpg70gPCBzb3V6dVwgOwor5q2m5a6YIDwgYnVrYW5cIDsKK+WIneatqSA8IHNob2hvXCA7Civnn7PlmaggPCBzZWtraVwgOwor6YCA5rK7IDwgdGFpamlcIDsKK+iPsuaJjSA8IGhpc2FpXCA7Civli6Tli5kgPCBraW5tdVwgOwor5q2j5a2XIDwgc2VpamlcIDsKK+W3qOe0sCA8IGtvc2FpXCA7CivpgYvmjIcgPCB1bnNoaVwgOwor6bOl5bGFIDwgdG9yaWlcIDsKK+W5s+awlyA8IGhlaWtpXCA7CivpgKPmnrYgPCByZW5rYVwgOwor5YiG5rS+IDwgYnVucGFcIDsKK+i7jemDqCA8IGd1bmJ1XCA7Civlh7rmua8gPCBpZGV5dVwgOwor5bqm5pWwIDwgZG9zdXVcIDsKK+mBiuaKgCA8IHl1dWdpXCA7CivpgIDmrakgPCB0YWlob1wgOwor6YKm5ZyfIDwgaG91ZG9cIDsKK+mBv+WvkiA8IGhpa2FuXCA7Civpg6jkvJogPCBidWthaVwgOwor5Yip5qC5IDwgcmlrb25cIDsKK+W0jumZvSA8IGtpeW91XCA7CivlubTmrKEgPCBuZW5qaVwgOwor5beu562JIDwgc2F0b3VcIDsKK+i7jOmBkyA8IGtpZG91XCA7CivpgbrlsL8gPCBpbnlvdVwgOwor5q275ZugIDwgc2hpaW5cIDsKK+WLsuS9jSA8IGt1bicnaVwgOwor6JGs5YW3IDwgc291Z3VcIDsKK+WGhuetkiA8IGVudG91XCA7CivliIbmr40gPCBidW5ib1wgOwor6Iy255uuIDwgY2hhbWVcIDsKK+W6l+aYryA8IHRlbnplXCA7Civli5/lhbUgPCBib2hlaVwgOwor5q6/5LiLIDwgZGVua2FcIDsKK+asneaGpCA8IHVwcHVuXCA7CivokazlhIAgPCBzb3VnaVwgOwor6YGV5b+DIDwgaXNoaW5cIDsKK+W8seWMliA8IGpha2thXCA7CivliqDlopcgPCBrYXpvdVwgOwor6YGK5oOwIDwgeXV1ZGFcIDsKK+WLn+WCtSA8IGJvc2FpXCA7CivpgY7mgKAgPCBrYXRhaVwgOwor5Ye65rGBIDwgZGFzaGlcIDsKK+ebo+eQhiA8IGthbnJpXCA7CivliY3miK8gPCB6ZW5naVwgOwor5bir54i2IDwgc2hpZnVcIDsKK+W6uOaEmiA8IHlvdWd1XCA7CivlvJXllqkgPCBpbicneXVcIDsKK+W4neeOiyA8IHRlaW91XCA7Civpgb/lpoogPCBoaW5pblwgOwor5YaF56eRIDwgbmFpa2FcIDsKK+W6j+aWhyA8IGpvYnVuXCA7Civou43ot68gPCBndW5yb1wgOwor5bqP5pWwIDwgam9zdXVcIDsKK+aui+WLmSA8IHphbm11XCA7CivliJ3mnJ8gPCBzaG9raVwgOwor6Lqr6YeNIDwgbWlvbW9cIDsKK+W6p+aJgCA8IHphc2hvXCA7CivovKroiJ4gPCByaW5idVwgOwor6YCU5pa5IDwgdG9ob3VcIDsKK+WEgOijhSA8IGdpc291XCA7Civlub3mmpcgPCB5dXVhblwgOwor6Iux57GzIDwgZWliZWlcIDsKK+i7jeiyuyA8IGd1bnBpXCA7CivprZTooZcgPCBtYWdhaVwgOwor6Lui6KibIDwgdGVua2FcIDsKK+i7ouiomCA8IHRlbmtpXCA7Civlh7HmrYwgPCBnYWlrYVwgOwor5qyh5bm0IDwgamluZW5cIDsKK+mBuuWiqCA8IGlib2t1XCA7CivpgYXlu7YgPCBjaGllblwgOwor5bm85pmCIDwgeW91amlcIDsKK+ebhueUuyA8IGJvbmdhXCA7CivliJHmnJ8gPCBrZWlraVwgOwor5bm05pyfIDwgbmVua2lcIDsKK+WLleS9nCA8IGRvdXNhXCA7Civlh7rmp5ggPCBkZXlvdVwgOwor6Iq46IuRIDwgZ2VpZW5cIDsKK+W8p+WFiSA8IGtva291XCA7CivmrYzlo4cgPCBrYWRhblwgOwor5YW156eRIDwgaGVpa2FcIDsKK+WKqeWRvSA8IGpvbWVpXCA7Civpq5jpm4UgPCBrb3VnYVwgOwor5bi45ripIDwgam91b25cIDsKK+WJjeW+jCA8IHplbmdvXCA7CivmrabllY8gPCBidW1vblwgOwor5Yq05YuZIDwgcm91bXVcIDsKK+W3ruebiiA8IHNhZWtpXCA7CivpgKPmiZMgPCByZW5kYVwgOwor5YSq6Im2IDwgeXV1ZW5cIDsKK+iKseiMjiA8IGtha2VpXCA7CivnoILkuIogPCBzYWpvdVwgOwor6LuN6K2wIDwgZ3VuZ2lcIDsKK+W5s+aZgiA8IGhlaWppXCA7CivkvIrlkYLms6IgPCBpcm9oYVwgOwor5YaG55ukIDwgZW5iYW5cIDsKK+WBvembuyA8IGdpZGVuXCA7Civnmq7nm7ggPCBoaXNvdVwgOwor6L+U5q2MIDwgaGVua2FcIDsKK+WJjeW6pyA8IHplbnphXCA7Civnl6nouq8gPCBzb3VrdVwgOwor5YiG5pyoIDwgYnVuZ2lcIDsKK+ato+WToSA8IHNlaWluXCA7CivlhoXnmq4gPCBuYWloaVwgOwor5qih56+EIDwgbW9oYW5cIDsKK+iKveiDniA8IGdhaG91XCA7CivliIDmnrYgPCB0b3VrYVwgOwor6LyJ6I23IDwgc2Fpa2FcIDsKK+earueZrCA8IGhpemVuXCA7CivpgYrlsbEgPCB5dXNhblwgOwor5q2m5ZCNIDwgYnVtZWlcIDsKK+S6nOmJm+iPryA8IGFlbmthXCA7Civoipnok4kgPCBmdXlvdVwgOwor5q275YWQIDwgc2hpamlcIDsKK+W6leaEjyA8IHNva29pXCA7Civoh6rpppYgPCBqaXNodVwgOwor6LuN6KiYIDwgZ3Vua2lcIDsKK+WKo+WMliA8IHJla2thXCA7CivpgaDlpKcgPCBlbmRhaVwgOwor5YW355y8IDwgZ3VnYW5cIDsKK+asoeWumCA8IGppa2FuXCA7CivmrKHlrZAgPCBqaXNoaVwgOwor5q2m5YuyIDwgYnVrdW5cIDsKK+W7tuWRvSA8IGVubWVpXCA7CivlhYPntKAgPCBnZW5zb1wgOwor5q2m5YuHIDwgYnV5dXVcIDsKK+atpuWKnyA8IGJ1a291XCA7Civlu7flkI8gPCB0ZWlyaVwgOwor5YaG55KwIDwgZW5rYW5cIDsKK+WyqemtmiA8IGl3YW5hXCA7CivliJ3miYsgPCBzaG90ZVwgOwor5YSq576OIDwgeXV1YmlcIDsKK+WEkuiJryA8IGp1Z29uXCA7CivlhZDnq6UgPCBqaWRvdVwgOwor5q2T5ZG8IDwga2Fua29cIDsKK+mzs+WHsCA8IGhvdW91XCA7Civnn6XkuosgPCBjaGlqaVwgOwor6YGT5aSuIDwgZG91b3VcIDsKK+i7jeihoyA8IGd1bicnaVwgOwor5Yi25bqmIDwgc2VpZG9cIDsKK+atqeWFtSA8IGhvaGVpXCA7CivlgZzpn7MgPCB0ZWlvblwgOwor5byV5L6LIDwgaW5yZWlcIDsKK+eXtOipsSA8IGNoaXdhXCA7CivliqDlhqAgPCBrYWthblwgOwor6YCj5bqnIDwgcmVuemFcIDsKK+mBoOWcsCA8IGVuY2hpXCA7Civnmb3npo0gPCBoYWtrYVwgOwor6YGO5aSnIDwga2FkYWlcIDsKK+iLm+eojiA8IGthemVpXCA7CivpgYrlpbMgPCB5dXVqb1wgOwor6Lyd57eaIDwga2lzZW5cIDsKK+WFpeebuCA8IGlyaWFpXCA7CivoiovojI4gPCB6dWlraVwgOwor55aO6ZaLIDwgc29rYWlcIDsKK+WJjeWppiA8IHplbnB1XCA7CivlgY/poJcgPCBoZW5wYVwgOwor6YG35YyWIDwgc2VuZ2VcIDsKK+e2reaMgeiyuyA8IGlqaWhpXCA7CivokL3kuIsgPCByYWtrYVwgOwor5YW354++IDwgZ3VnZW5cIDsKK+WGt+awlyA8IHJlaWtpXCA7CivlhJLogIUgPCBqdXNoYVwgOwor6IiX6YGTIDwgaG9kb3VcIDsKK+WFiOelliA8IHNlbnpvXCA7CivnmbrnoLQgPCBoYXBwYVwgOwor55Wz6Z+7IDwgam91aW5cIDsKK+ebuOajkiA8IGFpYm91XCA7Civlu4PlnJIgPCBoYWllblwgOwor6L+R5pmCIDwga2luamlcIDsKK+mtmuiCpSA8IGd5b2hpXCA7Civouo3otbcgPCB5YWtraVwgOwor6Iqx57SLIDwga2Ftb25cIDsKK+WFg+elliA8IGdhbnNvXCA7Civnm5fmsZcgPCBuZWFzZVwgOwor5q2m5Lq6IDwgYnVqaW5cIDsKK+iKseeyiSA8IGthZnVuXCA7CivoiJ7ouYggPCBidXRvdVwgOwor5bm+5bqmIDwgaWt1ZG9cIDsKK+asoeWbniA8IGppa2FpXCA7CivprLHokrwgPCB1c3NvdVwgOwor6Iie6LiKIDwgYnV5b3VcIDsKK+i8quemjSA8IHJpbmthXCA7CivliJHlvpIgPCBrZWl0b1wgOwor5bm05b6MIDwgbmVuZ29cIDsKK+mAo+WtkCA8IHJlbmppXCA7Civnm7jmnb8gPCBhaWJhblwgOwor5YmN5aC0IDwgemVuYmFcIDsKK+eUsOm6qSA8IGRlbmJ1XCA7Civlh7nmiYAgPCBvdXNob1wgOwor5YG96YCgIDwgZ2l6b3VcIDsKK+iLpueVjCA8IGt1Z2FpXCA7CivluLjmmYIgPCBqb3VqaVwgOwor6YKE5LuYIDwga2FucHVcIDsKK+mBi+WWtiA8IHVuJydlaVwgOwor5bm05bqmIDwgbmVuZG9cIDsKK+mAruWknCA8IHRhaXlhXCA7CivpgIDluqcgPCB0YWl6YVwgOwor5Yip5a6zIDwgcmlnYWlcIDsKK+iJseiLpiA8IGthbmt1XCA7CivmrKHlloQgPCBqaXplblwgOwor5Yip5a2QIDwgcmlzaGlcIDsKK+WIpeWutiA8IGJla2tlXCA7CivpgbrkvZwgPCBpc2FrdVwgOwor6I2S5pyoIDwgYXJha2lcIDsKK+WyqemWkyA8IGl3YW1hXCA7Civluq3lnJIgPCB0ZWllblwgOwor6a+o5rOiIDwgZ2VpaGFcIDsKK+W5tOW3riA8IG5lbnNhXCA7Civpr6jmsrkgPCBnZWl5dVwgOwor6Lm26LW3IDwga2Vra2lcIDsKK+WGhua6gCA8IGVubWFuXCA7CivovrLmnJ8gPCBub3VraVwgOwor5Yik5a2QIDwgaGFua29cIDsKK+iPr+WOsyA8IGtlZ29uXCA7CivpgaDlh7ogPCB0b29kZVwgOwor6YGL5ZG9IDwgdW5tZWlcIDsKK+mBk+WMliA8IGRvdWtlXCA7CivmrYzku5kgPCBrYXNlblwgOwor6Lui576pIDwgdGVuZ2lcIDsKK+asoeWPtyA8IGppZ291XCA7CivmrYzkurogPCBrYWppblwgOwor55u45pKyIDwgc3Vtb3VcIDsKK+iJtuiBniA8IGVuYnVuXCA7Civluo/lpY8gPCBqb3NvdVwgOwor6L+R5omAIDwga2luam9cIDsKK+WHoeaJkyA8IGJvbmRhXCA7Civlh7nlvaIgPCBvdWtlaVwgOwor6IiO6LK7IDwgc2hhaGlcIDsKK+mBjuWLpCA8IGtha2luXCA7CivpgY7lirQgPCBrYXJvdVwgOwor6Ieq6YK4IDwgaml0ZWlcIDsKK+mBi+WLoiA8IHVuc2VpXCA7Civlt6jms6IgPCBreW9oYVwgOwor6YGL5YuVIDwgdW5kb3VcIDsKK+i+nuafhCA8IGppaGVpXCA7CivpgY7libAgPCBrYWpvdVwgOwor55Wd6ZaTIDwgdW5lbWFcIDsKK+iHqumBuCA8IGppc2VuXCA7Civovp7mnpcgPCBqaXJpblwgOwor5bmz5a62IDwgaGVpa2VcIDsKK+mAuOWTgSA8IGlwcGluXCA7CivpgZPlhbcgPCBkb3VndVwgOwor5bmz5a6JIDwgaGVpYW5cIDsKK+eahueEoSA8IGthaW11XCA7Civlh6HmhJogPCBib25ndVwgOwor5YiG5bKQIDwgYnVua2lcIDsKK+WJjeWPpCA8IHplbmtvXCA7CivnlLvppIUgPCBnYWJlaVwgOwor5L6d5Lyw5ZywIDwgZWtvamlcIDsKK+i+nuabuCA8IGppc2hvXCA7CivpgKDlnJIgPCB6b3VlblwgOwor5Ymw5L2ZIDwgam91eW9cIDsKK+W6tuWLmSA8IHNob211XCA7CivnlLvpoqggPCBnYWZ1dVwgOwor5YSA56+EIDwgZ2loYW5cIDsKK+iKs+eciSA8IGhvdWJpXCA7CivliJ3lpJwgPCBzaG95YVwgOwor5qi55rayIDwganVla2lcIDsKK+WIneWkjyA8IHNob2thXCA7CivluIzmnJsgPCBraWJvdVwgOwor5beo5q2pIDwga3lvaG9cIDsKK+W5vOWlsyA8IHlvdWpvXCA7CivnlLvpoYwgPCBnYWRhaVwgOwor5YiG5a62IDwgYnVua2VcIDsKK+W4jOabuCA8IGtpc2hvXCA7CivluLDmipUgPCBraXRvdVwgOwor5Yak5p6JIDwgZW4nJ291XCA7CivmqLnmtbcgPCBqdWthaVwgOwor5bm+5aScIDwgaWt1eW9cIDsKK+W5vuWkmiA8IGlrdXRhXCA7CivmrKHlhYQgPCBqaWtlaVwgOwor5qyh5YWDIDwgamlnZW5cIDsKK+i/t+WtkCA8IG1haWdvXCA7CivmqZ/morAgPCBraWthaVwgOwor5bqn5Y+zIDwgemF5dXVcIDsKK+W5u+WkoiA8IGdlbm11XCA7CivlhYjniLYgPCBzZW5wdVwgOwor6YGh5LiKIDwgc29qb3VcIDsKK+apn+aguSA8IGtpa29uXCA7Civlgb3oqpMgPCBnaXNlaVwgOwor6YCg5Za2IDwgem91ZWlcIDsKK+iIl+ijhSA8IGhvc291XCA7CivnlbDpg7cgPCBpa3lvdVwgOwor55S76Z2iIDwgZ2FtZW5cIDsKK+WAjemfsyA8IGJhaW9uXCA7Civmo4vpoqggPCBraWZ1dVwgOwor5YG96KiIIDwgZ2lrZWlcIDsKK+ebuOaEmyA8IHNvdWFpXCA7Civlgb3oqIAgPCBnaWdlblwgOwor5YG26KqeIDwgZ3V1Z29cIDsKK+apn+adkCA8IGtpemFpXCA7CivmrKHkvr8gPCBqaWJpblwgOwor6YCj5ZG8IDwgcmVua29cIDsKK+W3puanmCA8IHNheW91XCA7CivlgbboqaAgPCBndXVlaVwgOwor6a2U56WeIDwgbWFqaW5cIDsKK+W7iuS4iyA8IHJvdWthXCA7CivpqZ/pm6ggPCBzaHV1dVwgOwor55uy5oSbIDwgbW91YWlcIDsKK+WGjeahiCA8IHNhaWFuXCA7CivmhI/msJflnLAgPCBpa3VqaVwgOwor5YSA56S8IDwgZ2lyZWlcIDsKK+iHquizmyA8IGppc2FuXCA7CivpgKPlj6UgPCByZW5rdVwgOwor6Lev6aCtIDwgcm90b3VcIDsKK+i/t+WkoiA8IG1laW11XCA7Civoi7Hms5UgPCBlaWhvdVwgOwor6Ieq6LKpIDwgamloYW5cIDsKK+iLpua4iyA8IGt1anV1XCA7Civnm7jlv5wgPCBzb3VvdVwgOwor5qyh5LujIDwgamlkYWlcIDsKK+WwvumwrSA8IG9iaXJlXCA7CivluKvmgakgPCBzaGlvblwgOwor5YWs5q2mIDwga291YnVcIDsKK+i7ouenuyA8IHRlbicnaVwgOwor6Lev6Z2iIDwgcm9tZW5cIDsKK+Wyoei+uiA8IG9rYWJlXCA7CivlgYnouZ8gPCBpc2VraVwgOwor5YWa5rS+IDwgdG91aGFcIDsKK+mBi+S4iiA8IHVuam91XCA7Civmpa3oi6YgPCBnb3VrdVwgOwor5bGk6ZuyIDwgc291dW5cIDsKK+W6p+WDjyA8IHphem91XCA7CivluLfluZUgPCBpYmFrdVwgOwor5bi35bizIDwgaWNob3VcIDsKK+WIqeWPoyA8IHJpa291XCA7CivmqZ/mlY8gPCBraWJpblwgOwor5YWl5q2vIDwgaXJlYmFcIDsKK+W6tuS6iyA8IHNob2ppXCA7CivprZTnnaEgPCBtYXN1aVwgOwor5qiq5q27IDwgb3VzaGlcIDsKK+i7jOevhCA8IGtpaGFuXCA7CivlhobmnKwgPCBlbnBvblwgOwor5YSS55SfIDwganVzZWlcIDsKK+W3oeafuyA8IGp1bnNhXCA7Civlho3mmKAgPCBzYWllaVwgOwor5bq15Li7IDwgYW5zaHVcIDsKK+iHquiqjSA8IGppbmluXCA7CivoirHniYcgPCBrYWhlblwgOwor6ay856WeIDwga2lqaW5cIDsKK+i8uOa2siA8IHl1ZWtpXCA7CivnlJjpnLIgPCBrYW5yb1wgOwor5qqA5b6SIDwgZGFudG9cIDsKK+eVsOixoSA8IGlzaG91XCA7CivojILmnpcgPCBtb3JpblwgOwor5L+d6aSKIDwgaG95b3VcIDsKK+WFieazoiA8IGtvdWhhXCA7Civot53pm6IgPCBreW9yaVwgOwor5bem5pa5IDwgc2Fob3VcIDsKK+W6p+S5lyA8IHpham91XCA7CivmqLnmnpcgPCBqdXJpblwgOwor6a2U55WMIDwgbWFrYWlcIDsKK+W5s+WSjCA8IGhlaXdhXCA7CivlhbfmnIkgPCBndXl1dVwgOwor5YWs5qGIIDwga291YW5cIDsKK+WHpuWlsyA8IHNob2pvXCA7CivluJ3luqcgPCB0ZWl6YVwgOwor5YiR5ZCPIDwga2VpcmlcIDsKK+mAgeWPlyA8IHNvdWp1XCA7Civlt67mkI0gPCBzYXNvblwgOwor5qih5qeYIDwgbW95b3VcIDsKK+apn+aJjSA8IGtpc2FpXCA7Civlh6HlpKsgPCBib25wdVwgOwor5Yi75LiLIDwga29ra2FcIDsKK+mAgOWMliA8IHRhaWthXCA7Civlh4blsIkgPCBqdW4nJ2lcIDsKK+WGtuW3pSA8IHlha291XCA7CivmqKrmn4QgPCBvdWhlaVwgOwor5YW45pWFIDwgdGVua29cIDsKK+iJsuebriA8IGlyb21lXCA7CivliKnkvr8gPCByaWJlblwgOwor55S76YGTIDwgZ2Fkb3VcIDsKK+i3r+mKgCA8IHJvZ2luXCA7CivojYnlsaUgPCB6b3VyaVwgOwor5L+d6Zm6IDwgaG9rZW5cIDsKK+W5tOWIqSA8IG5lbnJpXCA7Civoi7Hmm7ggPCBlaXNob1wgOwor5YWt5pelIDwgbXVpa2FcIDsKK+WIhuWMuiA8IGJ1bmt1XCA7Civlhavml6UgPCB5b3VrYVwgOwor5YWs5pa5IDwga3Vib3VcIDsKK+aoquaatCA8IG91Ym91XCA7CivlhqXlupwgPCBtZWlmdVwgOwor5YiR5YW3IDwga2VpZ3VcIDsKK+iLpuadryA8IGt1aGFpXCA7Civoi7HmmI4gPCBlaW1laVwgOwor5qqA5a62IDwgZGFua2FcIDsKK+aooeacrCA8IG1vaG9uXCA7CivlhaXml6UgPCBpcmloaVwgOwor5bC+6ZW3IDwgb25hZ2FcIDsKK+i+suWppiA8IG5vdWZ1XCA7CivlsI/prKIgPCBrb2JpblwgOwor5Yik5LqLIDwgaGFuamlcIDsKK+WIhuWIqSA8IGJ1bnJpXCA7Civoi7Hmlq0gPCBlaWRhblwgOwor5YKF6IKyIDwgZnVpa3VcIDsKK+aoquaWrSA8IG91ZGFuXCA7Civoi7HmlocgPCBlaWJ1blwgOwor5Yeh5ZmoIDwgYm9ua2lcIDsKK+iLseaVsCA8IGVpc3V1XCA7CivlhrTlr5IgPCBnb2thblwgOwor6YCU5LiKIDwgdG9qb3VcIDsKK+W4g+W3viA8IGZ1a2luXCA7Civnm7jloLQgPCBzb3ViYVwgOwor6aiS6Z+zIDwgc291b25cIDsKK+WFmuaYryA8IHRvdXplXCA7CivovrLlpbQgPCBub3Vkb1wgOwor55So6YCUIDwgeW91dG9cIDsKK+WFieaghCA8IGtvdWVpXCA7CivojLblsYsgPCBjaGF5YVwgOwor6Ly/5pybIDwgeW9ib3VcIDsKK+iHquiRlyA8IGppY2hvXCA7CivlhZDmm7kgPCBqaXNvdVwgOwor5Ye65YmNIDwgZGVtYWVcIDsKK+Wwj+mmrCA8IGtvdW1hXCA7Civojbflj7AgPCBuaWRhaVwgOwor55SY6YWiIDwgYW1henVcIDsKK+iLl+acqCA8IG5hZWdpXCA7Civpp7vppqwgPCBrYW5iYVwgOwor55S76LObIDwgZ2FzYW5cIDsKK+eZveaXlyA8IGhha2tpXCA7CivpgIHku5ggPCBzb3VmdVwgOwor5YaF5b+cIDwgbmFpb3VcIDsKK+WHjeWcnyA8IHRvdWRvXCA7CivluK/lnLAgPCBvYmlqaVwgOwor6L665ZyfIDwgaGVuZG9cIDsKK+WwvumMoCA8IGJpam91XCA7CivliJHkuosgPCBrZWlqaVwgOwor5YaG5by+IDwgZW5kYW5cIDsKK+ebruWeoiA8IG1lYWthXCA7Civov5Hlj6QgPCBraW5rb1wgOwor6Lu95rWuIDwga2VpZnVcIDsKK+iLm+aWgiA8IGthcmVuXCA7Civou6LngokgPCB0ZW5yb1wgOwor6L6y5ZySIDwgbm91ZW5cIDsKK+W3u+WwviA8IGthbmJpXCA7Civnp4vliIDprZogPCBzYW5tYVwgOwor5L2z6bqXIDwga2FyZWlcIDsKK+iJtueEtiA8IGVuemVuXCA7Civoi7HmiY0gPCBlaXNhaVwgOwor6IWw6YOoIDwgeW91YnVcIDsKK+i7veayuSA8IGtlaXl1XCA7CivluYfliqkgPCBob3Vqb1wgOwor5YaF5biRIDwgbmFpZG9cIDsKK+eUu+irhyA8IGdhZGFuXCA7CivlhpnlrZcgPCBzaGFqaVwgOwor5L6b6aSKIDwga3V5b3VcIDsKK+WAkuiqniA8IHRvdWdvXCA7CivprLzngasgPCBvbmliaVwgOwor6a2a5rK5IDwgZ3lveXVcIDsKK+W4neWcnyA8IHRlaWRvXCA7CivmqZ/lq4wgPCBraWdlblwgOwor6Iqx5qKoIDwga2FyaW5cIDsKK+WFjOaPmyA8IGRha2FuXCA7CivprZTms5UgPCBtYWhvdVwgOwor6Ium5oimIDwga3VzZW5cIDsKK+WCt+eXjSA8IHNob3VpXCA7CivlgJnoo5wgPCBrb3Vob1wgOwor5bi45YuZIDwgam91bXVcIDsKK+W4sOWPgiA8IGtpc2FuXCA7CivlhoblsYUgPCBtYWRvaVwgOwor5qi55bm5IDwganVrYW5cIDsKK+iLpuaFriA8IGt1cnlvXCA7CivppqzpvaIgPCBiYXJlaVwgOwor5L2Z6b2iIDwgeW9yZWlcIDsKK+eXlOeYuyA8IGppcm91XCA7Civlt6jlr4wgPCBreW9mdVwgOwor5YWs5bqrIDwga291a29cIDsKK+WCmeegsiA8IGJpaG91XCA7Civlhazluo8gPCBrb3Vqb1wgOwor6Ium5oOFIDwga3Vqb3VcIDsKK+iMtuWckiA8IGNoYWVuXCA7Civoi6bmgrYgPCBrdW1vblwgOwor6Ium5oKpIDwga3Vub3VcIDsKK+eUqOiqniA8IHlvdWdvXCA7Civlt6blrpggPCBzYWthblwgOwor5qeQ5qi5IDwga2FpanVcIDsKK+WGl+WkmiA8IGpvdXRhXCA7Civou5/mtL4gPCBuYW5wYVwgOwor5YWs5biDIDwga291ZnVcIDsKK+eVsOiFuSA8IGlmdWt1XCA7CivlhYjmiYsgPCBzZW50ZVwgOwor5YWs5beuIDwga291c2FcIDsKK+iMtuWZqCA8IGNoYWtpXCA7Civoh5PohZEgPCB6b3VmdVwgOwor6ayx5rueIDwgdXR0YWlcIDsKK+ahgummrCA8IGtlaW1hXCA7Civov5Tku5ggPCBoZW5wdVwgOwor5qKF6YWiIDwgdW1lenVcIDsKK+i+suWLmSA8IG5vdW11XCA7CivluLjlgpkgPCBqb3ViaVwgOwor6Ium5b25IDwga3Vla2lcIDsKK+iIjOemjSA8IHpla2thXCA7CivltZDmsJcgPCByYW5raVwgOwor5qK16KqeIDwgYm9uZ29cIDsKK+ecjOS4iyA8IGtlbmthXCA7CivohZXovKogPCB1ZGV3YVwgOwor6LW36Zu7IDwga2lkZW5cIDsKK+W4q+WEkiA8IHNoaWp1XCA7CivlrrbptKggPCBhaGlydVwgOwor5a+d6aGUIDwgbmVnYW9cIDsKK+i+suWFtyA8IG5vdWd1XCA7CivluILllrYgPCBzaGllaVwgOwor5YaG5aKzIDwgZW5wdW5cIDsKK+iJsuawlyA8IGlyb2tlXCA7Civovp7ljrsgPCBqaWt5b1wgOwor6ay85q2vIDwgb25pYmFcIDsKK+WwgemOliA8IGZ1dXNhXCA7Civoi7Hlsa8gPCBlaXRvblwgOwor5bCW6YOoIDwgc2VuYnVcIDsKK+W3peWgtCA8IGtvdWJhXCA7CivnmbrluIMgPCBoYXBwdVwgOwor5biw5Lu7IDwga2luaW5cIDsKK+WFhOW+jCA8IGFuaWdvXCA7Civlhavph43mra8gPCB5YWViYVwgOwor5YC26ICFIDwga3VzaGFcIDsKK+S/muiruiA8IHJpZ2VuXCA7Civkv47osYYgPCBzb3RvdVwgOwor55Sf6J2LIDwga2lyb3VcIDsKK+WFi+W3sSA8IGtva2tpXCA7CivlhoXlm6AgPCBuYWlpblwgOwor6Leb6KGMIDwgaGFrb3VcIDsKK+ebsuS6gCA8IG1vdWtpXCA7Civoi6blr5IgPCBrdWthblwgOwor55ar55eiIDwgZWtpcmlcIDsKK+ebm+WEgCA8IHNlaWdpXCA7CivluILljLogPCBzaGlrdVwgOwor6aas6aaWIDwgYmFzaHVcIDsKK+S9memmmSA8IHlva291XCA7CivnmbvlsbEgPCB0b3phblwgOwor5YaX5Y+lIDwgam91a3VcIDsKK+Wkp+S8r+eItiA8IG9vb2ppXCA7CivovrLkuosgPCBub3VqaVwgOwor5qip5aiBIDwga2VuJydpXCA7Civnm67kuIsgPCBtb2trYVwgOwor5bau5bKoIDwga2Vuc29cIDsKK+iHquekviA8IGppc2hhXCA7CivnlqPnl5QgPCBpYm9qaVwgOwor5L2Z6aKoIDwgeW9mdXVcIDsKK+S9memhniA8IHlvcnVpXCA7CivlhZDlrasgPCBqaXNvblwgOwor6aas6aCtIDwgYmF0b3VcIDsKK+eUmOiXuyA8IGFtYW1vXCA7CivlrrbpoqggPCBrYWZ1dVwgOwor6Im25pu4IDwgZW5zaG9cIDsKK+WEquW8pyA8IHl1dWtvXCA7Civovp7ku6QgPCBqaXJlaVwgOwor5qOJ6IqxIDwgbWVua2FcIDsKK+apn+WGhSA8IGtpbmFpXCA7Civlhazlm7MgPCBrb3V6dVwgOwor5YW15Za2IDwgaGVpZWlcIDsKK+eUsOiIjiA8IGluYWthXCA7Civlt6blj7MgPCBzYXl1dVwgOwor5YWo5ZyfIDwgemVuZG9cIDsKK+WFqOWbsyA8IHplbnp1XCA7Civog6/plpMgPCBrb2thblwgOwor55S76IGWIDwgZ2FzZWlcIDsKK+W4jOS7oyA8IGtpZGFpXCA7CivlsI/osYYgPCBhenVraVwgOwor5YW15ZOhIDwgaGVpaW5cIDsKK+ahiOmFjSA8IGFuYmFpXCA7Civlrrbpm7sgPCBrYWRlblwgOwor5YaF5YuZIDwgbmFpbXVcIDsKK+WwiuiytCA8IHNvbmtpXCA7Civlt67liIYgPCBzYWJ1blwgOwor5YaF5YqpIDwgbmFpam9cIDsKK+eTpuinoyA8IGdha2FpXCA7CivlhqDkvY0gPCBrYW4nJ2lcIDsKK+aiheimiyA8IHVtZW1pXCA7Civlt6Xli5kgPCBrb3VtdVwgOwor5qih5Z6LIDwgbW9rZWlcIDsKK+aghOmkiiA8IGVpeW91XCA7Civkv5jomZwgPCBmdXJ5b1wgOwor6a2U5omLIDwgbWFzaHVcIDsKK+S9jumbsiA8IHRlaXVuXCA7CivluIPku6QgPCBmdXJlaVwgOwor55m95aCKIDwgaGFrdWFcIDsKK+WFvOWLmSA8IGtlbm11XCA7Civot6/ogqkgPCByb2tlblwgOwor5Ly86aGUIDwgbmlnYW9cIDsKK+eUsue+hSA8IGtvdXJhXCA7Civoh6rnlLEgPCBqaXl1dVwgOwor5qOE6IOMIDwga2loYWlcIDsKK+S+v+ihoyA8IGJlbicnaVwgOwor5YaG5YWJIDwgZW5rb3VcIDsKK+iHqueUqCA8IGppeW91XCA7Civkvb/pgJQgPCBzaGl0b1wgOwor6Lu95b6uIDwga2VpYmlcIDsKK+WFteWMqiA8IGhlaWhpXCA7Civlt6XlhbcgPCBrb3VndVwgOwor55m75Z2CIDwgdG9oYW5cIDsKK+WvjOmJsSA8IGZ1a291XCA7Civkvq7oqIAgPCBidWdlblwgOwor6Ly/5ZywIDwgeW9jaGlcIDsKK+iKuOWtkCA8IGdlaWtvXCA7Civog4zpm6IgPCBoYWlyaVwgOwor5bem5YK+IDwgc2FrZWlcIDsKK+S/neiPjCA8IGhva2luXCA7CivlhavljaYgPCBoYWtrZVwgOwor6Lu95bqmIDwga2VpZG9cIDsKK+W3tOS6uiA8IGhhamluXCA7CivnlLvntJkgPCBnYXNoaVwgOwor5YWs5YufIDwga291Ym9cIDsKK+eVquebriA8IGJhbm1lXCA7CivlpKfkvK/mr40gPCBvb29iYVwgOwor5YW85YKZIDwga2VuYmlcIDsKK+WvhOmHkSA8IGtpa2luXCA7CivotbDot68gPCBzb3Vyb1wgOwor6a2U5by+IDwgbWFkYW5cIDsKK+WyoeebriA8IG9rYW1lXCA7CivlrpjpnIAgPCBrYW5qdVwgOwor55Ge6ZuyIDwgenVpdW5cIDsKK+mrmOa4qSA8IGtvdW9uXCA7CivlsL7oirEgPCBvYmFuYVwgOwor5a++6KmxIDwgdGFpd2FcIDsKK+S8nemmrCA8IHRlbm1hXCA7CivovY3lj4kgPCB0ZXNzYVwgOwor5L6d6KiXIDwgaXRha3VcIDsKK+iEs+ijoSA8IG5vdXJpXCA7CivmqKnljJYgPCBnb25nZVwgOwor6Ium5ZCfIDwga3VnaW5cIDsKK+iKuOWmkyA8IGdlaWdpXCA7Civot6/nt5ogPCByb3NlblwgOwor6LWk6LqrIDwgYWthbWlcIDsKK+WFteWCmSA8IGhlaWJpXCA7Civlr4zovrIgPCBmdW5vdVwgOwor5L+u576FIDwgc2h1cmFcIDsKK+iKpeWtkCA8IGtlc2hpXCA7CivnlpHngrkgPCBnaXRlblwgOwor5qi95L+OIDwgc29uc29cIDsKK+S+jeismyA8IGppa291XCA7Civou43miYsgPCBndW50ZVwgOwor5qip5YipIDwga2VucmlcIDsKK+S8mumjsiA8IGthaWluXCA7Civlhbjkvo0gPCB0ZW5qaVwgOwor5a6J6Z2ZIDwgYW5zZWlcIDsKK+mnhei3ryA8IGVraXJvXCA7CivlhaXlhoUgPCBqdWRhaVwgOwor5YWa5YuZIDwgdG91bXVcIDsKK+WFt+S9kyA8IGd1dGFpXCA7Civnmbrlj6UgPCBob2trdVwgOwor6Ium5Yq0IDwga3Vyb3VcIDsKK+anmOWtkCA8IHlvdXN1XCA7Civkv53ogrIgPCBob2lrdVwgOwor55S756i/IDwgZ2Frb3VcIDsKK+S+i+ipsSA8IHJlaXdhXCA7CivlhajlgpkgPCB6ZW5iaVwgOwor5YWa5YipIDwgdG91cmlcIDsKK+iHqueCiiA8IGppc3VpXCA7CivkvbPos5MgPCBrYWhpblwgOwor55Sf57O4IDwga2lpdG9cIDsKK+aooeWGmSA8IG1vc2hhXCA7Civlg6flvpIgPCBzb3V0b1wgOwor55aO5ryPIDwgc29yb3VcIDsKK+WuiemWkSA8IGFua2FuXCA7CivmqLnkuIogPCBqdWpvdVwgOwor5L2Z6LypIDwgeW9oYWlcIDsKK+aiheiKsSA8IGJhaWthXCA7CivlhIDlrrkgPCBnaXlvdVwgOwor55Sw56efIDwgZGVuc29cIDsKK+mmrOi7iiA8IGJhc2hhXCA7CivlhYjli5kgPCBzZW5tdVwgOwor5L+6562JIDwgb3JlcmFcIDsKK+aooeWAoyA8IG1vaG91XCA7Civlr4zosaogPCBmdWdvdVwgOwor6aas6LmEIDwgYmF0ZWlcIDsKK+i3teelmiA8IHNlbnNvXCA7Civot6/nqIsgPCByb3RlaVwgOwor57Sr6Zuy6IuxIDwgZ2VuZ2VcIDsKK+WvhOi0iCA8IGtpem91XCA7CivkvZPouq8gPCB0YWlrdVwgOwor55e05oSaIDwgY2hpZ3VcIDsKK+iDjOmDqCA8IGhhaWJ1XCA7Civkv53nt5ogPCBob3NlblwgOwor6Iux5Li7IDwgZWlzaHVcIDsKK+WFg+WIqSA8IGdlbnJpXCA7CivlgKvnkIYgPCByaW5yaVwgOwor6LuK5bqrIDwgc2hha29cIDsKK+Wvk+ipsSA8IGd1dXdhXCA7Civnlo/msLQgPCBzb3N1aVwgOwor5L2Z6LKhIDwgeW96YWlcIDsKK+iEvuiHnyA8IGhpem91XCA7Civlg6flsLwgPCBzb3VuaVwgOwor55m65L2cIDwgaG9zc2FcIDsKK+iHquayuyA8IGppY2hpXCA7CivnmZLlkIggPCB5dWdvdVwgOwor5YWF5YKZIDwganV1YmlcIDsKK+iEvuiFqyA8IGhpc2h1XCA7CivlsL7nsaAgPCBiaXJvdVwgOwor55eb5omLIDwgaXRhZGVcIDsKK+WutuiyoSA8IGthemFpXCA7Civou6LlqYYgPCB0ZW5iYVwgOwor6ay85a2QIDwgb25pZ29cIDsKK+WumOmAlCA8IGthbnRvXCA7Civoh6rmsJEgPCBqaW1pblwgOwor5L+d566hIDwgaG9rYW5cIDsKK+aghOi7oiA8IGVpdGVuXCA7CivmpJzms6IgPCBrZW5wYVwgOwor5a2X6Z2iIDwgamltZW5cIDsKK+i3r+ebpCA8IHJvYmFuXCA7CivoiLXmiYsgPCBkYXNodVwgOwor5L2Z6KuHIDwgeW9kYW5cIDsKK+WvjOijlSA8IGZ1eXV1XCA7CivnlKPnnYAgPCB1YnVnaVwgOwor5YGP5rOiIDwgaGVuaGFcIDsKK+WBveacrCA8IGdpaG9uXCA7Civoibblp78gPCBlbnNoaVwgOwor5YSq5YipIDwgeXV1cmlcIDsKK+alteaEjyA8IGdva3VpXCA7Civku67pnaIgPCBrYW1lblwgOwor5YG95pu4IDwgZ2lzaG9cIDsKK+Wyoea5ryA8IG9rYXl1XCA7Civkv53nqI4gPCBob3plaVwgOwor5L2Z6KiIIDwgeW9rZWlcIDsKK+WDheW3riA8IGtpbnNhXCA7Civkv6/nnrAgPCBmdWthblwgOwor6Ieo5qmfIDwgcmlua2lcIDsKK+acquabvuaciSA8IG1pem91XCA7CivoiYfluqsgPCB0ZWlrb1wgOwor5bCK6ICFIDwgc29uamFcIDsKK+i3oeebriA8IGF0b21lXCA7Civot6/nlKggPCByb3lvdVwgOwor5a626KiTIDwga2FrdW5cIDsKK+S9juiqniA8IHRlaWdvXCA7Civlrp/osrsgPCBqaXBwaVwgOwor5YK+5beuIDwga2Vpc2FcIDsKK+eUt+eMqyA8IG9uZWtvXCA7CivnlKbnlJ8gPCBzb3NlaVwgOwor6LW36I2JIDwga2lzb3VcIDsKK+S9meijlSA8IHlveXV1XCA7CivltanlkbwgPCBzdXVrb1wgOwor5a6Y6LK7IDwga2FucGlcIDsKK+mkiumviSA8IHlvdXJpXCA7Civou43lpKsgPCBndW5wdVwgOwor55aO5p6XIDwgc29yaW5cIDsKK+WutuijgSA8IGthc2FpXCA7Civkv7PnlLsgPCBoYWlnYVwgOwor5LuW6Z2iIDwgdGFtZW5cIDsKK+Wwj+e0iyA8IGtvbW9uXCA7CivnlJ/nkIYgPCBzZWlyaVwgOwor6IWL56qpIDwgZWtpa2FcIDsKK+S7mOmajyA8IGZ1enVpXCA7Civlrrbonb8gPCBpZWJhZVwgOwor5qSc5p+7IDwga2Vuc2FcIDsKK+WCmeW/mCA8IGJpYm91XCA7CivlsI/nsosgPCBrb2lraVwgOwor5a6f6KiYIDwgamlra2lcIDsKK+S6uummrCA8IGppbmJhXCA7CivlhITliqsgPCBva2t1dVwgOwor6Ieq5pq0IDwgamlib3VcIDsKK+S+v+enmCA8IGJlbnBpXCA7CivlrpjoqbEgPCBrYW53YVwgOwor5Lyv54i26LK0IDwgb2ppa2lcIDsKK+eWjuaUviA8IHNvaG91XCA7CivkvZnolqsgPCB5b2t1blwgOwor6Ieq5piOIDwgamltZWlcIDsKK+iHqOaZgiA8IHJpbmppXCA7CivppIzpo58gPCBlamlraVwgOwor5a6a6KaPIDwgam91Z2lcIDsKK+iIueWwviA8IHNlbmJpXCA7Civku4rpmpsgPCBpbWF3YVwgOwor5YSE5YaGIDwgb2t1ZW5cIDsKK+WEgOWIgCA8IGdpdG91XCA7CivlrojorbcgPCBzaHVnb1wgOwor5Lya6LK7IDwga2FpaGlcIDsKK+WyqeaguSA8IGl3YW5lXCA7CivnlLfmu50gPCBvZGFraVwgOwor55Oc56eRIDwgdXJpa2FcIDsKK+i7veS+riA8IGtlaWJ1XCA7CivkvpvnsbMgPCBrdW1haVwgOwor5qCE6J66IDwgc2F6YWVcIDsKK+WApOautSA8IG5lZGFuXCA7CivlraTou40gPCBrb2d1blwgOwor5YG95oKqIDwgZ2lha3VcIDsKK+S6nOm6u+S7gSA8IGFtYW5pXCA7CivnlrLlvIogPCBoaWhlaVwgOwor5Lya6K2wIDwga2FpZ2lcIDsKK+adpemnlSA8IHJhaWdhXCA7Civpq5jluqcgPCBrb3V6YVwgOwor6Imv5Yy7IDwgcnlvdWlcIDsKK+S8neiomCA8IGRlbmtpXCA7CivkvJroqbEgPCBrYWl3YVwgOwor5L2Z6IqzIDwgeW9ob3VcIDsKK+S5sem6uyA8IHJhbm1hXCA7Civlgpjlr78gPCBzYW5qdVwgOwor5bGx5rKzIDwgc2FuZ2FcIDsKK+iAs+mghiA8IGppanVuXCA7CivkvL3ol40gPCBnYXJhblwgOwor5YSA5LuXIDwgZ2lqb3VcIDsKK+WuiOihmyA8IHNodWVpXCA7Civou43li5kgPCBndW5tdVwgOwor55Sj5rmvIDwgdWJ1eXVcIDsKK+mmmeiPryA8IGtvdWdlXCA7CivlsL7nh4ggPCBiaXRvdVwgOwor5L6b56WtIDwgZ3VzYWlcIDsKK+izk+i+niA8IGhpbmppXCA7CivkupTljYHot68gPCBpc29qaVwgOwor6Iie5a2QIDwgbWFpa29cIDsKK+iHquaFoiA8IGppbWFuXCA7Civmpb3lmaggPCBnYWtraVwgOwor55aR5b+1IDwgZ2luZW5cIDsKK+S9meiBniA8IHlvYnVuXCA7CivlraboqrIgPCBnYWtrYVwgOwor6aas6ICVIDwgYmFrb3VcIDsKK+i4j+afuyA8IHRvdXNhXCA7CivnlLvmpbwgPCBnYXJvdVwgOwor6ISx55quIDwgZGFwcGlcIDsKK+adpemZoiA8IHJhaWluXCA7Civkvo3npa0gPCBqaXNhaVwgOwor6LuN5YKZIDwgZ3VuYmlcIDsKK+eUo+awlyA8IHNhbmtlXCA7CivnlKPmr5sgPCB1YnVnZVwgOwor6IWQ54ibIDwgZnVyYW5cIDsKK+iEseeWvSA8IGRhc3NvXCA7CivlsqnmiLggPCBpd2F0b1wgOwor5a+/55uDIDwganVoYWlcIDsKK+iHquW8gSA8IGppYmVuXCA7CivnlarmiYsgPCBiYW50ZVwgOwor5YG45a6JIDwgdG91YW5cIDsKK+Wwj+eQtCA8IG9nb3RvXCA7Civkv4TnhLYgPCBnYXplblwgOwor55S75p2/IDwgZ2FiYW5cIDsKK+Wtl+iokyA8IGppa3VuXCA7CivmorPmr5sgPCBzb21vdVwgOwor6aOb6Zu7IDwgaGlkZW5cIDsKK+S6jOmajiA8IG5pa2FpXCA7CivnlLvmnZAgPCBnYXphaVwgOwor6LuN5LqLIDwgZ3VuamlcIDsKK+eQhuiyoSA8IHJpemFpXCA7CivnlLvmnKwgPCBnYWhvblwgOwor55W45b2iIDwga2lrZWlcIDsKK+S7o+itsCA8IGRhaWdpXCA7CivotbDnoLQgPCBzb3VoYVwgOwor5YK15YuZIDwgc2FpbXVcIDsKK+i6q+WIhiA8IG1pYnVuXCA7Civos4Tos4IgPCB3YWlyb1wgOwor6IKy6IuxIDwgaWt1ZWlcIDsKK+Wwj+eKrCA8IGtvaW51XCA7CivnlLHmnaUgPCB5dXJhaVwgOwor5Ly9576FIDwga3lhcmFcIDsKK+S7j+iyqCA8IGZ1a2thXCA7CivmnbHpg70gPCB0b3V0b1wgOwor5p2x6YOoIDwgdG91YnVcIDsKK+S7ruijhSA8IGthc291XCA7Civoh6rlsL0gPCBqaWppblwgOwor55CG6KuWIDwgcmlyb25cIDsKK+WBj+W3riA8IGhlbnNhXCA7CivlsIrniLYgPCBzb25wdVwgOwor5YG95aCxIDwgZ2lob3VcIDsKK+Wumue+qSA8IHRlaWdpXCA7Civlgpnlk4EgPCBiaWhpblwgOwor6LKo6LuKIDwga2FzaGFcIDsKK+S/l+awlyA8IHpva2tlXCA7Civoh6rlrrMgPCBqaWdhaVwgOwor6LK46LK7IDwgdGFpaGlcIDsKK+eVmeaEjyA8IHJ5dXVpXCA7CivkvZXnrocgPCBuYW5rb1wgOwor5YCL5pWwIDwga29zdXVcIDsKK+WvneebuCA8IG5lem91XCA7CivporbpoqggPCBndWZ1dVwgOwor5qGC55quIDwga2VpaGlcIDsKK+mjsumFkiA8IGluc2h1XCA7CivkuqjpgYsgPCBrb3V1blwgOwor55CG6KejIDwgcmlrYWlcIDsKK+S9leetiSA8IG5hbnJhXCA7Civosqnot68gPCBoYW5yb1wgOwor5L+X5q2MIDwgem9ra2FcIDsKK+S5l+mmrCA8IGpvdWJhXCA7Civku5joqIAgPCBmdWdlblwgOwor6LWk55uuIDwgYWthbWVcIDsKK+S7i+ittyA8IGthaWdvXCA7Civku5boqIAgPCB0YWdvblwgOwor5LqU6YeNIDwgZ29qdXVcIDsKK+iInuWPsCA8IGJ1dGFpXCA7CivmnJ3ppIkgPCBhc2FnZVwgOwor5a+h55S3IDwgeWFtb29cIDsKK+S7luimiyA8IHRha2VuXCA7CivoiI7llrYgPCBzaGFlaVwgOwor5LyO6Iq4IDwgZ2lnZWlcIDsKK+eWjuWkliA8IHNvZ2FpXCA7Civlgbblm6AgPCBndXVpblwgOwor5a6J572uIDwgYW5jaGlcIDsKK+WCjeWPlyA8IGJvdWp1XCA7CivlsqnlsYsgPCBpd2F5YVwgOwor5LqM6YeNIDwgZnV0YWVcIDsKK+iCpeiCsiA8IGhpaWt1XCA7CivlsI/mu50gPCBvdGFraVwgOwor5YG95ZaEIDwgZ2l6ZW5cIDsKK+aip+ahkCA8IGdvdG91XCA7CivnlLvmiY0gPCBnYXNhaVwgOwor55S75omLIDwgZ2FzaHVcIDsKK+miqOmfuyA8IGZ1dWluXCA7Civku5booYwgPCB0YWtvdVwgOwor6LKh6LKoIDwgemFpa2FcIDsKK+S6kumBuCA8IGdvc2VuXCA7CivpoqjpnaEgPCBmdXViaVwgOwor5LyO6IO9IDwgZ2lub3VcIDsKK+acqumWiyA8IG1pa2FpXCA7CivosrTopqcgPCBraXJhblwgOwor6aKo6ZuyIDwgZnV1dW5cIDsKK+S5lumboiA8IGthaXJpXCA7CivnlrLlirQgPCBoaXJvdVwgOwor5YG95ZCNIDwgZ2ltZWlcIDsKK+S6uuiqniA8IGppbmdvXCA7Civpoqjpm4UgPCBmdXVnYVwgOwor5LqU6LyqIDwgZ29yaW5cIDsKK+WBveWPsiA8IGdpc2hpXCA7CivkuojpgbggPCB5b3NlblwgOwor5LmX6ZmkIDwgam91am9cIDsKK+WBj+WlhyA8IGhlbmtpXCA7CivkuLvppqwgPCBzaHVtZVwgOwor5L+d5pyJIDwgaG95dXVcIDsKK+iHquWcqCA8IGppemFpXCA7CivkuozovKogPCBuaXJpblwgOwor5pyd6ZaTIDwgYXNhbWFcIDsKK+iEs+azoiA8IG5vdWhhXCA7Civlrp/np5EgPCBqaWtrYVwgOwor5bGg5omAIDwgdG9zaG9cIDsKK+eWkeWVjyA8IGdpbW9uXCA7CivoiI7liKkgPCBzaGFyaVwgOwor5LqM6LuNIDwgbmlndW5cIDsKK+WAkuW9sSA8IHRvdWVpXCA7Civku5bolqYgPCB0YXplblwgOwor6aeE54qsIDwgZGFrZW5cIDsKK+mjm+i7iiA8IGhpc2hhXCA7CivlsbnluqYgPCBraXR0b1wgOwor5YCt5a+HIDwgd2Frb3VcIDsKK+Wwj+atjCA8IGtvdXRhXCA7CivkuLvpn7MgPCBzaHVvblwgOwor5a6555aRIDwgeW91Z2lcIDsKK+S9meeUnyA8IHlvc2VpXCA7Civnvo7pupcgPCBiaXJlaVwgOwor5a6a56SOIDwgdGVpc29cIDsKK+WyqeWgtCA8IGl3YWJhXCA7Civoh6rllY8gPCBqaW1vblwgOwor5YG95YW1IDwgZ2loZWlcIDsKK+iFleacqCA8IHVkZWdpXCA7CivnlLvluJYgPCBnYWpvdVwgOwor57696Z+zIDwgaGFvdG9cIDsKK+WAieW6qyA8IHNvdWtvXCA7CivmnLrovrogPCBraWhlblwgOwor55Ww5Zu9IDwgaWtva3VcIDsKK+adkeiyuyA8IHNvbnBpXCA7Civos6LogIUgPCBrZW5qYVwgOwor5pys6YOoIDwgaG9uYnVcIDsKK+S6kuitsiA8IGdvam91XCA7Civlr77mrKcgPCB0YWlvdVwgOwor6ICB6LqvIDwgcm91a3VcIDsKK+eUo+W+jCA8IHNhbmdvXCA7CivnlKjluqYgPCB5b3Vkb1wgOwor5pu46ZmiIDwgc2hvaW5cIDsKK+ahkOayuSA8IHRvdXl1XCA7CivmnKrpgYIgPCBtaXN1aVwgOwor55Sf5b6SIDwgc2VpdG9cIDsKK+eUn+W+jCA8IHNlaWdvXCA7CivohJrmsJcgPCBrYWtrZVwgOwor546L6YGTIDwgb3Vkb3VcIDsKK+izm+e+jiA8IHNhbmJpXCA7CivohZDmlZcgPCBmdWhhaVwgOwor6LmE5Y+JIDwgdGVpc2FcIDsKK+acqOmAmiA8IGFrZWJpXCA7Civku5XoiJ4gPCBqaW1haVwgOwor6LaK5qipIDwgZWtrZW5cIDsKK+i3i+aJiCA8IGJha2tvXCA7CivkvZnnh7wgPCB5b2ppblwgOwor6Ieq5YmNIDwgamltYWVcIDsKK+iDg+eXmyA8IGl0c3V1XCA7CivlsI/mnp0gPCBrb2VkYVwgOwor6IOD55eFIDwgaWJ5b3VcIDsKK+iHquWIhiA8IGppYnVuXCA7Civotbfmr5sgPCBraW1vdVwgOwor55Gq55GZIDwgbWVub3VcIDsKK+miqOmCqiA8IGZ1dWphXCA7CivkvZzngrogPCBzYWt1aVwgOwor5a6J55ygIDwgYW5taW5cIDsKK+iHquWFmiA8IGppdG91XCA7CivlsL/mhI8gPCBueW91aVwgOwor5pyb6YGgIDwgYm91ZW5cIDsKK+S6iOiogCA8IHlvZ2VuXCA7CivkuZ3ovKogPCBrdXJpblwgOwor5Lmx6LK7IDwgcmFucGlcIDsKK+S7luiBniA8IHRhYnVuXCA7CivmnKrouI8gPCBtaXRvdVwgOwor5a++5qGIIDwgdGFpYW5cIDsKK+S6iOimiyA8IHlva2VuXCA7Civku5bogIUgPCB0YXNoYVwgOwor5Luu57SNIDwga2Fub3VcIDsKK+eMqummliA8IGlrdWJpXCA7CivkuI3poIYgPCBmdWp1blwgOwor5LiA6aaWIDwgaXNzaHVcIDsKK+eUo+WxiyA8IHVidXlhXCA7Civku67nsqcgPCBrZXdhaVwgOwor6LGq6KqeIDwgZ291Z29cIDsKK+mhnumfuyA8IHJ1aWluXCA7CivpoZ7pn7MgPCBydWlvblwgOwor6LKn6IumIDwgaGlua3VcIDsKK+eUt+WlsyA8IGRhbmpvXCA7CivmoLnmsJcgPCBrb25raVwgOwor6LWk5q+bIDwgYWthZ2VcIDsKK+S4gOmjryA8IGlwcGFuXCA7Civnvo7poqggPCBiaWZ1dVwgOwor6aOb6KGMIDwgaGlrb3VcIDsKK+S6rOiPryA8IGtlaWthXCA7CivlronnlKMgPCBhbnphblwgOwor5LiA6aKoIDwgaXBwdXVcIDsKK+e+jumhlCA8IGJpZ2FuXCA7Civlrp/niLYgPCBqaXBwdVwgOwor6Ieq5LydIDwgamlkZW5cIDsKK+iBluiAhSA8IHNlaWphXCA7Civkvr/miYAgPCBiZW5qb1wgOwor5LiW6ZaTIDwgc2VrZW5cIDsKK+S4gOmgrSA8IGl0dG91XCA7Civoh6rku4ogPCBqaWtvblwgOwor5Li76YOoIDwgc2h1YnVcIDsKK+S4gOmghSA8IGlra291XCA7CivnlLDlpKsgPCBkZW5wdVwgOwor6aOb6J2XIDwgYmF0dGFcIDsKK+eQhuezuyA8IHJpa2VpXCA7CivnlKPlqaYgPCBzYW5wdVwgOwor5a+45pqHIDwgc3Vua2FcIDsKK+aetuepuiA8IGtha3V1XCA7CivnlKPlqYYgPCBzYW5iYVwgOwor6LGM6LGGIDwgZW5kb3VcIDsKK+S4i+mYqiA8IGdlaGFuXCA7Civlr7jmmYIgPCBzdW5qaVwgOwor5qK15a2XIDwgYm9uamlcIDsKK+eUmOWtkCA8IGFtYWdvXCA7CivkvZPmuKkgPCB0YWlvblwgOwor5LuB576pIDwgamluZ2lcIDsKK+S4u+i+niA8IHNodWppXCA7CivmmrTpo7IgPCBib3VpblwgOwor5a+d5qO6IDwgbmVrYW5cIDsKK+i1sOafuyA8IHNvdXNhXCA7CivkuIDpmo4gPCBpa2thaVwgOwor5pys6Ki0IDwgaG9uc29cIDsKK+S4gOmaiiA8IGl0dGFpXCA7Civmm7npgZQgPCBzb3VkYVwgOwor6LKn6ICFIDwgaGluamFcIDsKK+eUsOWcgyA8IGRlbnBvXCA7Civku5jnrosgPCBmdXNlblwgOwor5LiA6ZaDIDwgaXNzZW5cIDsKK+S+ruaFoiA8IGJ1bWFuXCA7CivkvZzmrYwgPCBzYWtrYVwgOwor5pyo5LmD5LyKIDwgbWlpcmFcIDsKK+e+qemHkSA8IGdpa2luXCA7Civkv53lroggPCBob3NodVwgOwor6aKo6KutIDwgZnV1eXVcIDsKK+S4lumKgCA8IHNlZ2luXCA7Civkv53lrZggPCBob3pvblwgOwor55SY5aSiIDwga2FubXVcIDsKK+WwpOW6piA8IHl1dWRvXCA7CivmnIjos6YgPCBnZXBwdVwgOwor5bGV5aKTIDwgdGVuYm9cIDsKK+ePque0oCA8IGtlaXNvXCA7CivmoLjmnpwgPCBrYWtrYVwgOwor5bCK5oSPIDwgc29uJydpXCA7CivpppnmsrkgPCBrb3V5dVwgOwor55So5ZmoIDwgeW91a2lcIDsKK+ahiOaWhyA8IGFubW9uXCA7CivmnJfoqaAgPCByb3VlaVwgOwor5YCS5Y+lIDwgdG91a3VcIDsKK+WAkuWPmSA8IHRvdWpvXCA7Civku67nnKAgPCBrYW1pblwgOwor5LqU6IeTIDwgZ296b3VcIDsKK+iDjOazsyA8IGhhaWVpXCA7CivkuqHogIUgPCBtb3VqYVwgOwor5LiH6YeMIDwgYmFucmlcIDsKK+eQhuefpSA8IHJpY2hpXCA7Civku4/npZYgPCBidXNzb1wgOwor6aeE5paHIDwgZGFidW5cIDsKK+e+qei7jSA8IGdpZ3VuXCA7CivlgK3kurogPCB3YWppblwgOwor5LiD6YeNIDwgbmFuYWVcIDsKK+S4i+mDjiA8IGdlcm91XCA7CivkuIrpg6ggPCBqb3VidVwgOwor6aCT6aasIDwgdG9ubWFcIDsKK+S4iemDqCA8IHNhbmJ1XCA7CivkuI3pgZwgPCBmdXNvblwgOwor5LiN6YGHIDwgZnVndXVcIDsKK+S+v+WunCA8IGJlbmdpXCA7CivkuI3pgJ4gPCBmdXRlaVwgOwor5bCP5bedIDwgb2dhd2FcIDsKK+S4jemAgCA8IGZ1dGFpXCA7Civnvo7phZIgPCBiaXNodVwgOwor5Li76Ki0IDwgc2h1c29cIDsKK+aal+mbsiA8IGFuJyd1blwgOwor5LqM5Y2B6YeNIDwgaGF0YWVcIDsKK+eUt+WFkCA8IGRhbmppXCA7CivkuozogIUgPCBuaXNoYVwgOwor55S75YOPIDwgZ2F6b3VcIDsKK+S/s+WRsyA8IGhhaW1pXCA7CivnlKjli5kgPCB5b3VtdVwgOwor5amm6YGTIDwgZnVkb3VcIDsKK+adkee/gSA8IHNvbm91XCA7Civlronms7AgPCBhbnRhaVwgOwor6IKl5rqAIDwgaGltYW5cIDsKK+S4i+i8qSA8IGdlaGFpXCA7CivlrrbmnaUgPCBrZXJhaVwgOwor5YCk5LiKIDwgbmVhZ2VcIDsKK+eUmOWRsyA8IGthbm1pXCA7Civkv7Plj6UgPCBoYWlrdVwgOwor5LiA6YGNIDwgaXBwZW5cIDsKK+iAgeiIlyA8IHJvdWhvXCA7Civmmpfpl5ggPCBhbnRvdVwgOwor5LiL6LuKIDwgZ2VzaGFcIDsKK+eUmuWPpSA8IGppbmt1XCA7CivkupvntLAgPCBzYXNhaVwgOwor55CG55SxIDwgcml5dXVcIDsKK+S6uuelliA8IGppbnNvXCA7CivkubHoiJ4gPCByYW5idVwgOwor5L6N5b6TIDwgamlqdXVcIDsKK+Wog+msnyA8IGFpa2FuXCA7CivkvJrmtL4gPCBrYWloYVwgOwor5LuW55WMIDwgdGFrYWlcIDsKK+S6lOe1gyA8IGdvZ2VuXCA7CivlsI/lrZcgPCBrb2F6YVwgOwor5bGL5Y+wIDwgeWF0YWlcIDsKK+WwiuWutiA8IHNvbmthXCA7CivkuIDou6IgPCBpdHRlblwgOwor55S75Lq6IDwgZ2FqaW5cIDsKK+mhjOi+niA8IGRhaWppXCA7CivkuIDou5IgPCBpa2tlblwgOwor5a6f5qKFIDwgbWl1bWVcIDsKK+i3r+WCjSA8IHJvYm91XCA7CivmnKzoiJcgPCBob25wb1wgOwor5LiN6LK3IDwgZnViYWlcIDsKK+S4i+izpCA8IGdlc2VuXCA7Civlr53mga8gPCBuZWlraVwgOwor5p6v54elIDwga29zb3VcIDsKK+acqOiIniA8IGtvbWFpXCA7CivogIHnv4EgPCByb3VvdVwgOwor57696J+7IDwgaGFhcmlcIDsKK+Wvm+aBlSA8IGthbmpvXCA7CivosrvnlKggPCBoaXlvdVwgOwor5Luj54i2IDwgZGFpZnVcIDsKK+iyq+ebriA8IGthbm1lXCA7CivnvqnoqJMgPCBnaWt1blwgOwor5LqI57SNIDwgeW9ub3VcIDsKK+S4h+iyqCA8IGJhbmthXCA7Civmnb/nm64gPCBpdGFtZVwgOwor6aCt6YeNIDwgenVvbW9cIDsKK+aiheWckiA8IGJhaWVuXCA7CivosrTnlLcgPCB0YWthb1wgOwor5a6a5pyfIDwgdGVpa2lcIDsKK+Wwj+WjsCA8IGtvZ29lXCA7CivmoYLlurUgPCBrZWlhblwgOwor5LiA6LKrIDwgaWtrYW5cIDsKK+eUn+S/nSA8IHNlaWhvXCA7Civkvr/lmaggPCBiZW5raVwgOwor5pyq6IGeIDwgbWltb25cIDsKK+mfs+mfuyA8IG9uJydpblwgOwor5pmv6ZuyIDwga2VpdW5cIDsKK+S6jOetiSA8IG5pdG91XCA7CivkuIroq60gPCBqb3V5dVwgOwor5LqI566XIDwgeW9zYW5cIDsKK+mhnuiqniA8IHJ1aWdvXCA7Civot6/kuIogPCByb2pvdVwgOwor5pys576pIDwgaG9uZ2lcIDsKK+ixhuiFkCA8IHRvdWZ1XCA7Civpp4TlvIEgPCBkYWJlblwgOwor5amm6K2mIDwgZnVrZWlcIDsKK+i1t+WxhSA8IGtpa3lvXCA7Civmnb/nlLsgPCBoYW5nYVwgOwor5L2T5oqAIDwgdGFpZ2lcIDsKK+S/neWGtyA8IGhvcmVpXCA7CivkvZnmhqQgPCB5b2Z1blwgOwor5LiK6Ki0IDwgam91c29cIDsKK+S/neWFqCA8IGhvemVuXCA7CivkuoznqK4gPCBuaXNodVwgOwor5p6c54S2IDwga2F6ZW5cIDsKK+mfs+majiA8IG9ua2FpXCA7Civnvo7oq4cgPCBiaWRhblwgOwor5a625oayIDwga2FrZW5cIDsKK+S7o+a8lCA8IGRhaWVuXCA7CivkvZnmg4UgPCB5b2pvdVwgOwor5a+h5bGFIDwga2FreW9cIDsKK+eKrOmmrCA8IGtlbmJhXCA7CivlsLzlg6cgPCBuaXNvdVwgOwor57+h57+gIDwgaGlzdWlcIDsKK+aer+a3oSA8IGtvdGFuXCA7CivmnKrnt7QgPCBtaXJlblwgOwor5LiA6KiIIDwgaWtrZWlcIDsKK+e+juimsyA8IGJpa2FuXCA7CivpoJDph5EgPCB5b2tpblwgOwor5L2Z5b+1IDwgeW9uZW5cIDsKK+mhjOipoCA8IGRhaWVpXCA7CivmnKjntr8gPCBtb21lblwgOwor5Li56ImyIDwgbmlpcm9cIDsKK+eOi+e1sSA8IG91dG91XCA7CivotqPlkbMgPCBzaHVtaVwgOwor6LOi5q+NIDwga2VuYm9cIDsKK+aal+i7oiA8IGFudGVuXCA7CivmnKrntI0gPCBtaW5vdVwgOwor6K2w6aGMIDwgZ2lkYWlcIDsKK+S9meW8iiA8IHlvaGVpXCA7CivotaTlrZcgPCBha2FqaVwgOwor6aSK54i2IDwgeW91ZnVcIDsKK+adpeeUsSA8IHJhaXl1XCA7CivmoLnlrZAgPCBuZWtrb1wgOwor5a+45ZyfIDwgc3VuZG9cIDsKK+S9leW6piA8IG5hbmRvXCA7Civog6HluqcgPCBhZ3VyYVwgOwor5qGI5aSWIDwgYW5nYWlcIDsKK+S9nOWLmeihoyA8IHNhbXVlXCA7Civmm7PoiKogPCBlaWtvdVwgOwor55CG5rOVIDwgcmlob3VcIDsKK+miqOe0gCA8IGZ1dWtpXCA7Civku6Pmr40gPCBkYWlib1wgOwor5Lq654K6IDwgamluJydpXCA7CivkvJ3mkq0gPCBkZW5wYVwgOwor57216KiAIDwgYmFnZW5cIDsKK+mojuWFtSA8IGtpaGVpXCA7CivmoZHlnJIgPCBzb3VlblwgOwor5LqS55SoIDwgZ295b3VcIDsKK+S4u+e+qSA8IHNodWdpXCA7CivmnaHnkIYgPCBqb3VyaVwgOwor5bCP5YuiIDwga296ZWlcIDsKK+WvhOWvkyA8IGtpZ3V1XCA7CivkuoznlaogPCBuaWJhblwgOwor6IOM5b6MIDwgaGFpZ29cIDsKK+eJoem5vyA8IG9qaWthXCA7CivmnKznp5EgPCBob25rYVwgOwor6aas5bGLIDwgdW1heWFcIDsKK+S8neaOiCA8IGRlbmp1XCA7CivlsI/liKQgPCBrb2JhblwgOwor576957+8IDwgdXlva3VcIDsKK+aeneavmyA8IGVkYWdlXCA7Civlr7/lj7ggPCBzdXNoaVwgOwor6aaW5bqnIDwgc2h1emFcIDsKK+mmluW6nCA8IHNodWZ1XCA7CivkuqHniLYgPCBib3VmdVwgOwor5pmu6YGNIDwgZnVoZW5cIDsKK+S9meWvkiA8IHlva2FuXCA7CivorZzpnaIgPCBmdW1lblwgOwor5Lu75pyfIDwgbmlua2lcIDsKK+i1reWcnyA8IHNoYWRvXCA7CivlrrblsYsgPCBrYW9rdVwgOwor6IGW5rK5IDwgc2VpeXVcIDsKK+eMn+iZjiA8IHJha2tvXCA7Civlr53lnYogPCBuZWJvdVwgOwor6aO054WuIDwgYW1lbmlcIDsKK+aeouapnyA8IHN1dWtpXCA7CivkvY/lsYUgPCBzdW1haVwgOwor6IOD5byxIDwgaWpha3VcIDsKK+S8neaJiyA8IHRzdXRlXCA7CivlrrXlr50gPCB5b2luZVwgOwor6Laz5LiLIDwgc29ra2FcIDsKK+Wwj+WDpyA8IGtvem91XCA7Civlrp3luqsgPCBob3Vrb1wgOwor6aCG6LevIDwganVucm9cIDsKK+S4iuiNtyA8IHV3YW5pXCA7CivkuIDokaYgPCBpY2hpaVwgOwor5a6u5bGFIDwgbWl5YWlcIDsKK+iEseWFjiA8IGRhdHRvXCA7Civnvr3nuZQgPCBoYW9yaVwgOwor5pqX6KaWIDwgYW5zaGlcIDsKK+ael+aqjiA8IHJpbmdvXCA7Civku6PmoYggPCBkYWlhblwgOwor6aaW5bC+IDwgc2h1YmlcIDsKK+i2iuWGrCA8IGV0dG91XCA7Civlronlv4MgPCBhbmppblwgOwor6LKq5rGaIDwgdGFuJydvXCA7CivkvqHlgKQgPCBrYWNoaVwgOwor5aaW6a2UIDwgeW91bWFcIDsKK+S4gOiJmCA8IGlzc291XCA7CivmnaXmvJQgPCByYWllblwgOwor5LyR5oSPIDwga3l1dWlcIDsKK+mkiuavjSA8IHlvdWJvXCA7CivkuIDoh7QgPCBpdGNoaVwgOwor6aeF5ZOhIDwgZWtpaW5cIDsKK+S8muW+lyA8IGV0b2t1XCA7Civlr53lj7AgPCBuZWRhaVwgOwor5LiN6ICBIDwgZnVyb3VcIDsKK+itt+mAgSA8IGdvc291XCA7Civku5bmnZEgPCB0YXNvblwgOwor5p2c5ryPIDwgenVyb3VcIDsKK+afu+WumiA8IHNhdGVpXCA7CivlrpflrrYgPCBzb3VrZVwgOwor54md6aasIDwgaGluYmFcIDsKK+e+juiCsiA8IGJpaWt1XCA7CivmoYjliIYgPCBhbmJ1blwgOwor5LuP5p6cIDwgYnVra2FcIDsKK+iAgeeIuiA8IHJvdXlhXCA7CivogIHniLYgPCByb3VmdVwgOwor6aCt6JOLIDwgenVnYWlcIDsKK+eQhuaVsCA8IHJpc3V1XCA7CivkupzmtYEgPCBhcnl1dVwgOwor6LGh54mZIDwgem91Z2VcIDsKK+itpumCjyA8IGtlaXJhXCA7CivlronlsYUgPCBhbmt5b1wgOwor5p2x5qynIDwgdG91b3VcIDsKK+mnhuWLlSA8IGt1ZG91XCA7CivotJTlsZMgPCBoaWlraVwgOwor5a+h5YW1IDwga2FoZWlcIDsKK+S7luaWuSA8IHRhaG91XCA7Civku7vmhI8gPCBuaW4nJ2lcIDsKK+mhnue4gSA8IHJ1aWVuXCA7CivkvZnllpggPCB5b3plblwgOwor6K6S6KqjIDwgemFuYnVcIDsKK+S6oeavjSA8IGJvdWJvXCA7CivlsYXnlZnlroggPCBpcnVzdVwgOwor5a6J5a6aIDwgYW50ZWlcIDsKK+S4i+e3kiA8IHNhZ2VvXCA7CivlroflrpkgPCB1Y2h1dVwgOwor6K6S6Ki0IDwgemFuc29cIDsKK+mfs+ipqSA8IG9uc2hpXCA7CivkvI7lt6UgPCBnaWtvdVwgOwor6Z+z6KiTIDwgb25rdW5cIDsKK+izouaEmiA8IGtlbmd1XCA7Civog4Plo4EgPCBpaGVraVwgOwor5L2Z5ZG9IDwgeW9tZWlcIDsKK+S4jeeyiyA8IGJ1c3VpXCA7Civlppbpm7IgPCB5b3V1blwgOwor6LW05Lu7IDwgZnVuaW5cIDsKK+izpuaApyA8IGZ1c2VpXCA7Civku6PmiZMgPCBkYWlkYVwgOwor5qGI5Lu2IDwgYW5rZW5cIDsKK+eNo+eariA8IGp1dWhpXCA7CivkupTmrrUgPCBnb2RhblwgOwor6LOb5oSPIDwgc2FuJydpXCA7Civmnb/mnKggPCBoYW5naVwgOwor6aOi5rCRIDwga2ltaW5cIDsKK+mjm+aziSA8IGhpc2VuXCA7CivmnKrnhLYgPCBtaXplblwgOwor6aeQ5LyKIDwgY2h1dWlcIDsKK+aYoOmFjSA8IGVpaGFpXCA7CivlraTluIYgPCBrb2hhblwgOwor5L2c5YuVIDwgc2Fkb3VcIDsKK+S4gOezuCA8IGlzc2hpXCA7CivkuI3nrYkgPCBmdXRvdVwgOwor5Lq65pmCIDwgbmluamlcIDsKK+mgreiEsyA8IHp1bm91XCA7CivmnKjngbAgPCBraWJhaVwgOwor576F57SXIDwgcmFzaGFcIDsKK+Wlh+m6lyA8IGtpcmVpXCA7Civku5XmiYsgPCBzaGl0ZVwgOwor6aas5Yi4IDwgYmFrZW5cIDsKK+WuruWPuCA8IGd1dWppXCA7CivnkIbmg7MgPCByaXNvdVwgOwor5a6l5ZKMIDwgeXV1d2FcIDsKK+itsOirliA8IGdpcm9uXCA7Civmm7jnlLsgPCBzaG9nYVwgOwor542y54mpIDwgZW1vbm9cIDsKK+WlrumjmyA8IGZ1bnBpXCA7CivogqXlpKcgPCBoaWRhaVwgOwor5L2Z5YWaIDwgeW90b3VcIDsKK+eQhuaApyA8IHJpc2VpXCA7CivmmYLoq5YgPCBqaXJvblwgOwor6K2m6K23IDwga2VpZ29cIDsKK+iyoOaVsCA8IGZ1c3V1XCA7Civkuozmp5ggPCBuaXlvdVwgOwor576p55y8IDwgZ2lnYW5cIDsKK+afu+WVjyA8IHNhbW9uXCA7CivnkIblv7UgPCByaW5lblwgOwor6Z2S6aasIDwgYW91bWFcIDsKK+itq+iqniA8IHNlbmdvXCA7CivmnKrmuoAgPCBtaW1hblwgOwor5a625YaFIDwga2FuYWlcIDsKK+S4luefpSA8IHNlY2hpXCA7Civlrprlk6EgPCB0ZWlpblwgOwor6LK35omLIDwga2FpdGVcIDsKK+WvneakheWtkCA8IG5laXN1XCA7CivmnaXmnJ8gPCByYWlraVwgOwor5LqV5qGBIDwgaWdldGFcIDsKK+aal+e/syA8IGFuJydlaVwgOwor5pyq5riIIDwgbWlzYWlcIDsKK+WnieiytCA8IGFuZWtpXCA7CivogIHmr40gPCByb3Vib1wgOwor5LuW5b+1IDwgdGFuZW5cIDsKK+Wum+WQjSA8IGF0ZW5hXCA7CivlpbPpm6MgPCBqb25hblwgOwor5aW06Zq3IDwgZG9yZWlcIDsKK+S4luebuCA8IHNlc291XCA7Civku7LlsYUgPCBuYWthaVwgOwor5pyr5rS+IDwgbWFwcGFcIDsKK+mdnumboyA8IGhpbmFuXCA7CivkuIvnn6UgPCBnZWRqaVwgOwor5aSq6byTIDwgdGFpa29cIDsKK+mgiOiHviA8IHNodXl1XCA7CivmnJ3mua8gPCBhc2F5dVwgOwor5aWU6aasIDwgaG9uYmFcIDsKK+iBluaBqSA8IHNlaW9uXCA7Civlq4zmsJcgPCBrZW5raVwgOwor5LiN55ygIDwgZnVtaW5cIDsKK+S6nOaXjyA8IGF6b2t1XCA7Civku4HmhYggPCBqaW5qaVwgOwor5Luu5a+TIDwga2FndXVcIDsKK+S7j+W+kiA8IGJ1dHRvXCA7Civmnb/miLggPCBpdGFkb1wgOwor5Lq65oiRIDwgamluZ2FcIDsKK+iyp+aJkyA8IGhpbmRhXCA7CivkvZnkurogPCB5b25pblwgOwor5LuW5bqXIDwgdGF0ZW5cIDsKK+Wkp+m7hCA8IGRhaW91XCA7CivkuIrnnYAgPCB1d2FnaVwgOwor5aSn6bq7IDwgdGFpbWFcIDsKK+acrOawlyA8IGhvbmtpXCA7CivogIHmqLkgPCByb3VqdVwgOwor5piv6KqNIDwgemVuaW5cIDsKK+iyoOaLhSA8IGZ1dGFuXCA7Civmmpfnt5ogPCBhbnNlblwgOwor5LiK55uuIDwgdXdhbWVcIDsKK+aghOWGoCA8IGVpa2FuXCA7CivkvY7kvqEgPCB0ZWlrYVwgOwor546L5rC0IDwgb3VzdWlcIDsKK+S7iuW+jCA8IGtvbmdvXCA7CivkuJbnlYwgPCBzZWthaVwgOwor5a2f5aWzIDwgbW91am9cIDsKK+mjm+adpSA8IGhpcmFpXCA7Civkuozmm7QgPCBuaWtvdVwgOwor6aas5LiKIDwgYmFqb3VcIDsKK+WutuS6uiA8IGtlbmluXCA7Civku4HmgZUgPCBqaW5qb1wgOwor5a2f5aSPIDwgbW91a2FcIDsKK+aWkemzqSA8IGlrYXJ1XCA7Civpoqjms6IgPCBmdXVoYVwgOwor5LuK5bqmIDwga29uZG9cIDsKK+S4i+eWsyA8IGdla2FuXCA7Civpn7PoibIgPCBuZWlyb1wgOwor6ICM5p2lIDwgamlyYWlcIDsKK+adnOaSsCA8IHp1c2FuXCA7CivorY7oqZAgPCBraXNzYVwgOwor5LiL55WMIDwgZ2VrYWlcIDsKK+S4i+eUtyA8IGdlbmFuXCA7CivkuIvnlLAgPCBnZWRlblwgOwor5pqW57C+IDwgbm9yZW5cIDsKK+S7luWxsSA8IHRhemFuXCA7CivlrZDlpbMgPCBzaGlqb1wgOwor546L5qipIDwgb3VrZW5cIDsKK+mjm+aVoyA8IGhpc2FuXCA7CivlrIzmhYsgPCBzaGluYVwgOwor576O55S3IDwgYmluYW5cIDsKK+e+jueUsCA8IGJpZGVuXCA7CivkuIDnlJ8gPCBpc3NlaVwgOwor5a6J5YWoIDwgYW56ZW5cIDsKK+S6lOaMhyA8IGdvc2hpXCA7Civku4/lrrYgPCBidWtrZVwgOwor54m56KiYIDwgdG9ra2lcIDsKK+aXoumBgiA8IGtpc3VpXCA7CivpoYznlLsgPCBkYWlnYVwgOwor6IGW5a+/IDwgc2VpanVcIDsKK+isueipsSA8IGtpbndhXCA7CivkuI3niq8gPCBmdWJvblwgOwor5LuK5a61IDwga295b2lcIDsKK+S6lOaIkiA8IGdva2FpXCA7CivmnZ7mhoIgPCBraXl1dVwgOwor6Z2i6YOoIDwgbWVuYnVcIDsKK+aYjuiomCA8IG1laWtpXCA7Civku5blp5MgPCB0YXNlaVwgOwor5aWz6YOOIDwgam9yb3VcIDsKK+iyoeW4gyA8IHNhaWZ1XCA7CivmnKrmnaUgPCBtaXJhaVwgOwor5LiN54eDIDwgZnVuZW5cIDsKK+S4gOeMriA8IGlra29uXCA7Civmlr3pjKAgPCBzZWpvdVwgOwor5a6J5L2PIDwgYW5qdXVcIDsKK+W6p+akheWtkCA8IHphaXN1XCA7CivpnZ7pgZMgPCBoaWRvdVwgOwor6Zyn6ZuwIDwgbXVmdW5cIDsKK+adv+WxiyA8IGl0YXlhXCA7CivkupTmgqogPCBnb2FrdVwgOwor5a2m5Yy6IDwgZ2Fra3VcIDsKK+S6uuWvvyA8IGppbmp1XCA7CivkuI7ngrkgPCB5b3RlblwgOwor5Lq65a62IDwgamlua2FcIDsKK+acquaYjiA8IG1pbWVpXCA7CivkupLmgbUgPCBnb2tlaVwgOwor6Z2i6LyqIDwgb21vd2FcIDsKK+iyp+WvjCA8IGhpbnB1XCA7Civnj77loLQgPCBnZW5iYVwgOwor6LKn5a62IDwgaGlua2FcIDsKK+mhnueBqyA8IHJ1aWthXCA7CivlrZjlkKYgPCB6b25waVwgOwor5p2/5a2QIDwgaXRhZ29cIDsKK+WloOmDvSA8IHRlbnRvXCA7CivogZblpJwgPCBzZWl5YVwgOwor5LuK5aSPIDwga29ua2FcIDsKK+S6iOaDsyA8IHlvc291XCA7Civku7vli5kgPCBuaW5tdVwgOwor5pa56YeMIDwgaG91cmlcIDsKK+eOi+aUvyA8IG91c2VpXCA7Civnvo7ngrkgPCBiaXRlblwgOwor5LqM5b+1IDwgbmluZW5cIDsKK+ism+ipsSA8IGtvdXdhXCA7Civos5vlkKYgPCBzYW5waVwgOwor5aSn6ZuoIDwgb29hbWVcIDsKK+WklemkiSA8IHl1dWdlXCA7CivlpKrpmbAgPCB0YWlpblwgOwor5pyd5pelIDwgYXNhaGlcIDsKK+S7o+WToSA8IGRhaWluXCA7CivkuIrmvJQgPCBqb3VlblwgOwor5paH6ZuFIDwgYnVuZ2FcIDsKK+S4jea6gCA8IGZ1bWFuXCA7CivotIjkuI4gPCB6b3V5b1wgOwor5Lmx5omTIDwgcmFuZGFcIDsKK+WklumhjCA8IGdlZGFpXCA7CivniaHooKMgPCBib3JlaVwgOwor5aWu6LW3IDwgZnVua2lcIDsKK+S6uuWkqyA8IG5pbnB1XCA7CivogLblrKIgPCB5YWpvdVwgOwor5aaE6KqeIDwgbW91Z29cIDsKK+iynuWppiA8IHRlaWZ1XCA7CivnvqnmsJEgPCBnaW1pblwgOwor6Kqe6aGeIDwgZ29ydWlcIDsKK+aWuemAlCA8IGhvdXRvXCA7Civku4/lmaggPCBidWtraVwgOwor5pel6KqyIDwgbmlra2FcIDsKK+iqnumghiA8IGdvanVuXCA7CivkuLvmn7sgPCBzaHVzYVwgOwor5aSa6ZujIDwgdGFuYW5cIDsKK+S4jea1hCA8IGZ1am91XCA7Civml6XoqJggPCBuaWtraVwgOwor5Lul5YyXIDwgaWhva3VcIDsKK+WtkOWIhiA8IGtvYnVuXCA7CivlpJbpnIAgPCBnYWlqdVwgOwor5a2m5L2NIDwgZ2FrdWlcIDsKK+acrOaJiyA8IGhvbnRlXCA7Civosp7lpbMgPCB0ZWlqb1wgOwor6Z+z56iLIDwgb250ZWlcIDsKK+e/u+aEjyA8IGhvbicnaVwgOwor6KyA6K2wIDwgYm91Z2lcIDsKK+S4jeazlSA8IGZ1aG91XCA7Civku6Pli5kgPCBkYWltdVwgOwor576F5ryiIDwgcmFrYW5cIDsKK+e9ueeBvSA8IHJpc2FpXCA7CivmnKrmiJAgPCBtaXNlaVwgOwor5pyA5pyfIDwgc2FpZ29cIDsKK+mbqumnhCA8IHNldHRhXCA7CivlpJXpmb0gPCB5dXVoaVwgOwor5aSc6ZaTIDwgeWFrYW5cIDsKK+iAgeW+jCA8IHJvdWdvXCA7Civml4XosrsgPCByeW9oaVwgOwor5LqV5a6IIDwgaW1vcmlcIDsKK+mdkuiynSA8IGFvZ2FpXCA7CivkuIvmsLQgPCBnZXN1aVwgOwor5aWI6L66IDwgbmFoZW5cIDsKK+aVtOmZpCA8IHNlaWpvXCA7CivkuI3mr5sgPCBmdW1vdVwgOwor5LiL5rCRIDwgZ2VtaW5cIDsKK+WrjOaCqiA8IGtlbicnb1wgOwor6LKn5ZyfIDwgaGluZG9cIDsKK+mbu+mboiA8IGRlbnJpXCA7CivpoZ7mr5QgPCBydWloaVwgOwor5LiN5q27IDwgZnVzaGlcIDsKK+S4i+autSA8IGdlZGFuXCA7Civpm7bpnLIgPCByZWlyb1wgOwor5LqM5bCBIDwgbmlmdXVcIDsKK+mbt+mbsiA8IHJhaXVuXCA7Civku5bli5UgPCB0YWRvdVwgOwor5LiK5q2vIDwgdXdhYmFcIDsKK+S6jOWuriA8IG5pZ3V1XCA7Civku5blirEgPCB0YXJlaVwgOwor54+t5ZOhIDwgaGFuaW5cIDsKK+irt+iqpiA8IGZ1dWp1XCA7CivkuIDmsLQgPCBpc3N1aVwgOwor5LqI5a6aIDwgeW90ZWlcIDsKK+iytOWQmyA8IGtpa3VuXCA7Civmlq3ot68gPCBkYW5yb1wgOwor54u854WZIDwgcm91ZW5cIDsKK+iytOWQjSA8IGtpbWVpXCA7Civku67ku6QgPCB0YXRvZVwgOwor5LiA5q61IDwgaXR0YW5cIDsKK+S4gOatsyA8IGlzc2FpXCA7CivmnaXloLQgPCByYWliYVwgOwor6Z+z55ukIDwgb25iYW5cIDsKK+S7i+WKqSA8IGthaWpvXCA7CivkuIfmqZ8gPCBiYW5raVwgOwor6Zuq6Iqx6I+cIDwgb2thcmFcIDsKK+mjr+WgtCA8IGhhbmJhXCA7CivlpKfpg6ggPCBkYWlidVwgOwor5pmC56m6IDwgamlrdXVcIDsKK+mfs+eXtCA8IG9uY2hpXCA7Civmlofpg6ggPCBtb25idVwgOwor5pqX5r65IDwgYW50YW5cIDsKK+ipsemhjCA8IHdhZGFpXCA7CivlpJrph40gPCB0YWp1dVwgOwor6Kmx6aCtIDwgd2F0b3VcIDsKK+S6i+WkiSA8IGppaGVuXCA7CivmmannlJ8gPCBva3V0ZVwgOwor6Zuo6ZaTIDwgYW1hYWlcIDsKK+WmluiJtiA8IHlvdWVuXCA7CivlpJbph44gPCBnYWl5YVwgOwor5LiL5qChIDwgZ2Vrb3VcIDsKK+irluitsCA8IHJvbmdpXCA7Civoqq3pgY4gPCBkb2trYVwgOwor5piO576OIDwgbWVpYmlcIDsKK+S7mOS8miA8IGZ1a2FpXCA7Civoq4vosqAgPCB1a2VvaVwgOwor5Li75oiRIDwgc2h1Z2FcIDsKK+mjveWSjCA8IGhvdXdhXCA7CivkuozloYEgPCBuaXJ1aVwgOwor6Kqk6YWNIDwgZ29oYWlcIDsKK+mboumWkyA8IHJpa2FuXCA7Civnv7vlrZcgPCBob25qaVwgOwor6aOb5aCxIDwgaGlob3VcIDsKK+S7luS6uiA8IHRhbmluXCA7CivlpJbpg6ggPCBnYWlidVwgOwor6KuW6KqeIDwgcm9uZ29cIDsKK+abnOaXpSA8IHlvdWJpXCA7CivlpJbpg44gPCB1aXJvdVwgOwor6Z2S6J2/IDwgYW9iYWVcIDsKK+e9qOazlSA8IGFucG91XCA7CivogIHlqYYgPCByb3ViYVwgOwor6LKh5YuZIDwgemFpbXVcIDsKK+S4i+abuCA8IGdlc2hvXCA7Civmlr3ooYwgPCBzZWtvdVwgOwor5pyA5oSbIDwgc2FpYWlcIDsKK+abluaYpyA8IGFpbWFpXCA7Civml6noi5cgPCBzYW5hZVwgOwor5LiH5py2IDwgYmFuZGFcIDsKK+acrOWutiA8IGhvbmtlXCA7CivlpJbpgZMgPCBnZWRvdVwgOwor5aqa5oWLIDwgYml0YWlcIDsKK+aZguefrSA8IGppdGFuXCA7CivmmpfmtpkgPCBhbnJ1aVwgOwor5pyJ5b+DIDwgdXNoaW5cIDsKK+ePvuS4liA8IGdlbnplXCA7CivmmqLmsJcgPCBub25raVwgOwor6ICB5aaTIDwgcm91Z2lcIDsKK+acquWumiA8IG1pdGVpXCA7CivkuI3mmJMgPCBmdWVraVwgOwor5pyq5a6MIDwgbWlrYW5cIDsKK+S4jeaYjiA8IGZ1bWVpXCA7Civosrzku5ggPCB0ZW5wdVwgOwor5pyr5a2jIDwgbWFra2lcIDsKK+iAgeWlsyA8IHJvdWpvXCA7CivkuIDmna8gPCBpcHBhaVwgOwor576O5pysIDwgYmlob25cIDsKK+S4iuaYoCA8IGpvdWVpXCA7CivnjovlrasgPCBvdXNvblwgOwor5LiL5pesIDwgZ2VqdW5cIDsKK+S4jeaWrSA8IGZ1ZGFuXCA7CivkuIDmnKwgPCBpcHBvblwgOwor5LiN5paHIDwgZnVidW5cIDsKK+adkOWZqCA8IHphaWtpXCA7Civlhavnmb7lsYsgPCB5YW95YVwgOwor5LiJ5pelIDwgbWlra2FcIDsKK+Wni+elliA8IHNoaXNvXCA7CivkuI3mlY8gPCBmdWJpblwgOwor6LGK5a+MIDwgaG91ZnVcIDsKK+e+juaZryA8IGJpa2VpXCA7CivnvqnmjJkgPCBnaWt5b1wgOwor6KuH6KmxIDwgZGFud2FcIDsKK+aVrOmBoCA8IGtlaWVuXCA7CivmnKrlqZogPCBtaWtvblwgOwor5pyd5a+dIDwgYXNhbmVcIDsKK+iyuOS4jiA8IHRhaXlvXCA7CivosqDlgrUgPCBmdXNhaVwgOwor5LmZ5a2QIDwgb3RvZ29cIDsKK+Wkp+ixhiA8IGRhaXp1XCA7Civpm6jph48gPCB1cnlvdVwgOwor576p5omLIDwgZ2lzaHVcIDsKK+S4gOaWuSA8IGlwcG91XCA7CivkuIDmlqQgPCBpa2tpblwgOwor576p5oimIDwgZ2lzZW5cIDsKK+iqueislyA8IGhpYm91XCA7Civnt4vpr4kgPCBoaWdvaVwgOwor576I5peFIDwga2lyeW9cIDsKK+e+qeaGpCA8IGdpZnVuXCA7CivkuozlkJsgPCBuaWt1blwgOwor5LiW5omNIDwgc2VzYWlcIDsKK+S6jOWPtyA8IG5pZ291XCA7CivmnIDlt6YgPCBzYWlzYVwgOwor5Lqh5YWQIDwgYm91amlcIDsKK+abuOW6qyA8IHNob2tvXCA7Civpm7vot68gPCBkZW5yb1wgOwor5LmZ5aWzIDwgb3RvbWVcIDsKK+aWh+iqniA8IGJ1bmdvXCA7CivkuJbmhYsgPCBzZXRhaVwgOwor546p5ZGzIDwgZ2FubWlcIDsKK+mhp+aFriA8IGtvcnlvXCA7CivlpJzoraYgPCB5YWtlaVwgOwor6Zqg6aGVIDwgaW5rZW5cIDsKK+eOi+WfjiA8IG91am91XCA7CivkuIrmiYsgPCBqb3V6dVwgOwor5pys5ZyfIDwgaG9uZG9cIDsKK+e+juaMmSA8IGJpa3lvXCA7CivkuIDmjJkgPCBpa2t5b1wgOwor6Zui6L6yIDwgcmlub3VcIDsKK+S4h+aIuCA8IGJhbmtvXCA7Civpn7PmupAgPCBvbmdlblwgOwor5LqM5YiGIDwgbmlidW5cIDsKK+aaq+aZgiA8IHphbmppXCA7CivmmI7npLogPCBtZWlqaVwgOwor6Zqg6Z2iIDwgaW5tZW5cIDsKK+iotOmhmCA8IHNvZ2FuXCA7CivnvqnlvJ8gPCBnaXRlaVwgOwor546H5ZyfIDwgc290dG9cIDsKK+S6pOS6kiA8IGtvdWdvXCA7CivoqqToqo0gPCBnb25pblwgOwor6Z2i5721IDwgbWVuYmFcIDsKK+WkluiqniA8IGdhaWdvXCA7CivlpJroqIAgPCB0YWdlblwgOwor5LqU5YCNIDwgZ29iYWlcIDsKK+mghuasoSA8IGp1bmppXCA7CivpoZjmhI8gPCBnYW4nJ2lcIDsKK+miqOWcnyA8IGZ1dWRvXCA7Civpm6Pot68gPCBuYW5yb1wgOwor54eD6LK7IDwgbmVucGlcIDsKK+S6lOS9kyA8IGdvdGFpXCA7CivmnInlpI8gPCB5dXVrYVwgOwor5LqM5YCNIDwgbmliYWlcIDsKK+S4i+W+oSA8IGdlZ3lvXCA7CivnjqnlhbcgPCBnYW5ndVwgOwor6Kmt6L6vIDwga2liZW5cIDsKK+Wlpee+qSA8IG9rdWdpXCA7Civpm7voqbEgPCBkZW53YVwgOwor54yb5omTIDwgbW91ZGFcIDsKK+mcgOimgSA8IGp1eW91XCA7CivlpKfom4cgPCBkYWlqYVwgOwor5pyx5Y2wIDwgc2h1aW5cIDsKK+WkluiiqyA8IGdhaWhpXCA7CivmnIDlpJogPCBzYWl0YVwgOwor5LiN5bmzIDwgZnVoZWlcIDsKK+Wls+ezuyA8IGpva2VpXCA7CivosLflnLAgPCB5YWNoaVwgOwor5LiK5bqnIDwgam91emFcIDsKK+e4gei+uiA8IGVucGVuXCA7Civkuovku7YgPCBqaWtlblwgOwor5LqM5LmXIDwgbmlqb3VcIDsKK+S4iuW4gyA8IGpvdWZ1XCA7CivmnKzli5kgPCBob25tdVwgOwor5LqM5LiWIDwgbmlzZWlcIDsKK+S6jOS4iSA8IG5pc2FuXCA7CivorbLmuKEgPCBqb3V0b1wgOwor6aKo5ZGzIDwgZnV1bWlcIDsKK+itt+azlSA8IGdvaG91XCA7CivosZrlhZAgPCB0b25qaVwgOwor6Zuj6KqeIDwgbmFuZ29cIDsKK+aVheiytyA8IGtvYmFpXCA7Civpm5HosrsgPCB6YXBwaVwgOwor6ZuR6LKoIDwgemFra2FcIDsKK+S4i+WxsSA8IGdlemFuXCA7CivmlZfoqLQgPCBoYWlzb1wgOwor5aOw6KqJIDwgc2VpeW9cIDsKK+S4iuWxiyA8IHV3YXlhXCA7CivnjovlhqAgPCBvdWthblwgOwor6aKo5YyWIDwgZnV1a2FcIDsKK+aatOW+kiA8IGJvdXRvXCA7CivnvqnlprkgPCBnaW1haVwgOwor5LiH5a+/IDwgYmFuanVcIDsKK+mhnuWtlyA8IHJ1aWppXCA7CivpmY3prZQgPCBnb3VtYVwgOwor6Z+z5qCTIDwgb25zZW5cIDsKK+mfu+abuCA8IGluc2hvXCA7Civmlr3nsbMgPCBzZW1haVwgOwor6K2y5q2pIDwgam91aG9cIDsKK+aWh+iLkSA8IGJ1bmVuXCA7Civnvo7lrrkgPCBiaXlvdVwgOwor6KuH576pIDwgZGFuZ2lcIDsKK+maoOmBgSA8IGludG9uXCA7CivkuIDlrpogPCBpdHRlaVwgOwor6aCT5oyrIDwgdG9uemFcIDsKK+mbkeiomCA8IHpha2tpXCA7CivpmqDpgIAgPCBpbnRhaVwgOwor6Z2x55quIDwgamlucGlcIDsKK+miqOWEgCA8IGZ1dWdpXCA7CivpmaTpnIogPCBqb3JlaVwgOwor5aGp6aGeIDwgZW5ydWlcIDsKK+mZsOmWgCA8IGlubW9uXCA7Civml6fnl74gPCBreXV1YVwgOwor6Z+75paHIDwgaW5idW5cIDsKK+acgOWPpCA8IHNhaWtvXCA7CivnuYHojIIgPCBoYW5tb1wgOwor5aSa6Iq4IDwgdGFnZWlcIDsKK+mZpOmaiiA8IGpvdGFpXCA7CivlpJboi5EgPCBnYWllblwgOwor5pyr5LiWIDwgbWFzc2VcIDsKK+S4h+WkqyA8IGJhbnB1XCA7CivkuLvli5kgPCBzaHVtdVwgOwor6Kut56S6IDwgeXVzaGlcIDsKK+mbheiogCA8IGdhZ2VuXCA7CivnhKHpoqggPCBtdWZ1dVwgOwor6Z2i55quIDwgbWVucGlcIDsKK+mgreW3viA8IHp1a2luXCA7CivnhKHpoZ4gPCBtdXJ1aVwgOwor576O5aSnIDwgYmlkYWlcIDsKK+e3mui3ryA8IHNlbnJvXCA7CivnhKHpoYwgPCBtdWRhaVwgOwor54Sh6aC8IDwgYnVyYWlcIDsKK+ippuijnCA8IHNoaWhvXCA7Civnvo7lo7AgPCBiaXNlaVwgOwor5aSa6IO9IDwgdGFub3VcIDsKK+S4i+WfjiA8IGdlam91XCA7CivmmK/mraMgPCB6ZXNlaVwgOwor5pWj6I+vIDwgc2FuZ2VcIDsKK+Wkj+iHsyA8IGdlc2hpXCA7Civnt4/ouqsgPCBzb3VtaVwgOwor5LiN5ZyoIDwgZnV6YWlcIDsKK+iqpOiBniA8IGdvYnVuXCA7CivpnaLnlLsgPCBtZW5nYVwgOwor54Sh6Zu7IDwgbXVkZW5cIDsKK+eEoemboyA8IGJ1bmFuXCA7CivlpJbogLMgPCBnYWlqaVwgOwor6Z2e55WqIDwgaGliYW5cIDsKK+acieS9mSA8IHl1dXlvXCA7CivnhKHpmZAgPCBtdWdlblwgOwor5LiN5ZaEIDwgZnV6ZW5cIDsKK+S4jeWVjyA8IGZ1bW9uXCA7CivmnInkuosgPCB5dXVqaVwgOwor56Gr6buE6I+vIDwgaW91a2FcIDsKK+e+qeWLhyA8IGdpeXV1XCA7CivpoJLluIMgPCBoYW5wdVwgOwor6KuW56C0IDwgcm9ucGFcIDsKK+e9teWjsCA8IGJhc2VpXCA7CivkuIvlk4EgPCBnZWhpblwgOwor5pyI5LiLIDwgZ2Vra2FcIDsKK+iok+i+niA8IGt1bmppXCA7CivlpKLnsr4gPCBtdXNlaVwgOwor6Z+z5oSfIDwgb25rYW5cIDsKK+S4jeWPgiA8IGZ1c2FuXCA7CivpoIbluo8gPCBqdW5qb1wgOwor6aGe5Y+lIDwgcnVpa3VcIDsKK+S4iuWPpCA8IGpvdWtvXCA7CivkuInlj4kgPCBzYW5zYVwgOwor6Zm66LevIDwga2Vucm9cIDsKK+mYsumZpCA8IGJvdWpvXCA7CivkuI3li6IgPCBidXplaVwgOwor6Kmx6Iq4IDwgd2FnZWlcIDsKK+e+juWQjSA8IGJpbWVpXCA7CivloanphbggPCBlbnNhblwgOwor5aSn56m0IDwgb29hbmFcIDsKK+eMquWPoyA8IGNob2tvXCA7CivmlqTnm64gPCBraW5tZVwgOwor54mn5q2MIDwgYm9ra2FcIDsKK+S4i+WJpCA8IGdlemFpXCA7CivnhKHpiq0gPCBtdXNlblwgOwor5aC06Z2iIDwgYmFtZW5cIDsKK+iogOi+niA8IGdlbmppXCA7CivnhKHpipggPCBtdW1laVwgOwor6Kqk566XIDwgZ29zYW5cIDsKK+eIqueJmSA8IHNvdWdhXCA7CivlpKrnpZYgPCB0YWlzb1wgOwor5pqX5aScIDwgYW4nJ3lhXCA7CivlpKnnpZYgPCB0ZW5zb1wgOwor6K235oayIDwgZ29rZW5cIDsKK+WkmuerryA8IHRhdGFuXCA7CivoqaDojYkgPCBlaXNvdVwgOwor5aOu576OIDwgc291YmlcIDsKK+WkmueoriA8IHRhc2h1XCA7CivnhKHphY0gPCBtdWhhaVwgOwor54qv5oSPIDwgaGFuJydpXCA7CivkuIvlg6cgPCBnZXNvdVwgOwor576p5Lq6IDwgZ2lqaW5cIDsKK+S4gOWIhiA8IGlwcHVuXCA7CivlpYfnkZ4gPCBraXp1aVwgOwor6KuW55CGIDwgcm9ucmlcIDsKK+Wkp+egtCA8IHRhaWhhXCA7Civpm4Xoh7QgPCBnYWNoaVwgOwor5LiN5YCrIDwgZnVyaW5cIDsKK+ipseiAhSA8IHdhc2hhXCA7Civml6Xms6IgPCBuaXBwb1wgOwor5LiW5LujIDwgc2VkYWlcIDsKK+S4luS6uiA8IHNlamluXCA7CivmlYXogIEgPCBrb3JvdVwgOwor5LiK5YCkIDwgdXdhbmVcIDsKK+eEoemBkyA8IG11ZG91XCA7CivkuI3kvr8gPCBmdWJlblwgOwor5aKX6KOcIDwgem91aG9cIDsKK+e5lOebriA8IG9yaW1lXCA7CivoqJPoqbEgPCBrdW53YVwgOwor54Sh6L66IDwgbXVoZW5cIDsKK+maoOiUvSA8IGlucGVpXCA7CivnvoXlhbggPCByYXRlblwgOwor6Zmw6KyAIDwgaW5ib3VcIDsKK+iok+ipgSA8IGt1bmtvXCA7CivlppPmpbwgPCBnaXJvdVwgOwor5paH55uuIDwgYXlhbWVcIDsKK+WkieenuyA8IGhlbicnaVwgOwor5LiL5Lq6IDwgZ2VuaW5cIDsKK+aatOWIqSA8IGJvdXJpXCA7CivmmpfllqkgPCBhbicneXVcIDsKK+WhkemAoCA8IHNvem91XCA7CivlqZrlhIAgPCBrb25naVwgOwor57SZ6a2aIDwgc2hpbWlcIDsKK+S4h+S6iyA8IGJhbmppXCA7Civoq7jmtL4gPCBzaG9oYVwgOwor5LiK5LiLIDwgam91Z2VcIDsKK+S4ieS4liA8IHNhbnplXCA7Civpm7vno4EgPCBkZW5qaVwgOwor6aCR5Zu6IDwgZ2Fua29cIDsKK+e+juS6uiA8IGJpamluXCA7CivnvbflhY0gPCBoaW1lblwgOwor5aSn55O2IDwgb29iaW5cIDsKK+iogOiqniA8IGdlbmdvXCA7CivlpLfni4QgPCBpdGVraVwgOwor5pqX5ZCbIDwgYW5rdW5cIDsKK+aal+WQiCA8IGFuZ291XCA7CivorbflsrggPCBnb2dhblwgOwor5b6h56We6YWSIDwgb21pa2lcIDsKK+eJqeaVhSA8IGJ1a2tvXCA7CivlpKnnkIYgPCB0ZW5yaVwgOwor57Sg6aSKIDwgc295b3VcIDsKK+WnkOW+oSA8IGFuZWdvXCA7CivlpJznlaogPCB5b2JhblwgOwor6Zyy54K5IDwgcm90ZW5cIDsKK+mfs+WkpyA8IG9uZGFpXCA7Civpn7Plo7AgPCBvbnNlaVwgOwor5aSa55SoIDwgdGF5b3VcIDsKK+WkmueUoyA8IHRhc2FuXCA7CivntKDpoZQgPCBzdWdhb1wgOwor5pS557WEIDwga2Fpc29cIDsKK+e0q+mbsiA8IHNoaXVuXCA7Civnt6jogIUgPCBoZW5qYVwgOwor5aWz5qipIDwgam9rZW5cIDsKK+WkqeeLlyA8IHRlbmd1XCA7CivlpaXmra8gPCBva3ViYVwgOwor5pep5pyfIDwgc291a2lcIDsKK+e0oOmdoiA8IHN1bWVuXCA7CivnuKvnm64gPCBudWltZVwgOwor54Sh6KyAIDwgbXVib3VcIDsKK+aXheasoSA8IHJ5b2ppXCA7Civml6XmnKwgPCBuaWhvblwgOwor54Sh6KuWIDwgbXVyb25cIDsKK+mdnualrSA8IGhpZ291XCA7Civml6bmmq4gPCB0YW5ib1wgOwor57O46a2aIDwgaXRveW9cIDsKK+mbqOedgCA8IGFtYWdpXCA7CivlqIHlnKcgPCBpYXRzdVwgOwor54Sh6KiAIDwgbXVnb25cIDsKK+WmguaYryA8IG55b3plXCA7CivlqIHlmocgPCBpa2FrdVwgOwor5pWw55CGIDwgc3V1cmlcIDsKK+eGseeggiA8IG5lc3NhXCA7CivlpKnngasgPCB0ZW5waVwgOwor54yK5LiLIDwgZ2Vpa2FcIDsKK+mYsuittyA8IGJvdWdvXCA7CivpoK3kuIogPCB6dWpvdVwgOwor6Z2S5qKFIDwgYW91bWVcIDsKK+Whl+ijhSA8IHRvc291XCA7CivmlYXnn6UgPCBrb2NoaVwgOwor6Zqg57eaIDwgaW5zZW5cIDsKK+imlumHjiA8IHNoaXlhXCA7CivpmbDojI4gPCBpbmtlaVwgOwor54eg54GrIDwgb2tpYmlcIDsKK+mfs+WQjSA8IG9ubWVpXCA7CivlpqXlvZMgPCBkYXRvdVwgOwor5pmC5aCxIDwgamlob3VcIDsKK+e1jOi3ryA8IGtlaXJvXCA7CivloanolLUgPCBlbnpvdVwgOwor5pig5bCEIDwgZWlzaGFcIDsKK+iruuaWhyA8IG9ubW9uXCA7CivloqjntbUgPCBzdW1pZVwgOwor57Sw6YOoIDwgc2FpYnVcIDsKK+e3tOejqCA8IHJlbm1hXCA7CivorJ3mgakgPCBzaGFvblwgOwor5piG5biDIDwga29uYnVcIDsKK+mbsueFmSA8IHVuJydlblwgOwor5aW95omTIDwga291ZGFcIDsKK+mYsuihmyA8IGJvdWVpXCA7CivlpKfmsrMgPCB0YWlnYVwgOwor6Zu354GrIDwgcmFpa2FcIDsKK+e2sue+hSA8IG1vdXJhXCA7CivoqJPnvqkgPCBrdW5naVwgOwor5pio5aScIDwgeXV1YmVcIDsKK+eEoeiTiyA8IG11Z2FpXCA7CivopofpgZMgPCBoYWRvdVwgOwor6KW/6YOoIDwgc2VpYnVcIDsKK+mbh+eUqCA8IGtveW91XCA7Civpn7Plg48gPCBvbnpvdVwgOwor5LyK5L2Q5pyoIDwgaXNha2lcIDsKK+Wmu+WlsyA8IHNhaWpvXCA7CivlpKfmrYwgPCBvb3V0YVwgOwor5paH5q6KIDwgbW9uanVcIDsKK+eEoeiPjCA8IG11a2luXCA7CivmlofmraYgPCBidW5idVwgOwor5oWw5a6J5ammIDwgaWFuZnVcIDsKK+eEoeiMtiA8IG11Y2hhXCA7Civpn7Pkvr8gPCBvbmJpblwgOwor5aSa5q+bIDwgdGFtb3VcIDsKK+Wkp+aouSA8IHRhaWp1XCA7CivlpJbmsJcgPCBnYWlraVwgOwor54Sh6Iq4IDwgbXVnZWlcIDsKK+Wkp+anmCA8IG9veW91XCA7Civoo73pursgPCBzZWltYVwgOwor57eP56S+IDwgc291amFcIDsKK+itpuWPpSA8IGtlaWt1XCA7CivpnZ7mg4UgPCBoaWpvdVwgOwor5pmC5YyWIDwgc2hpa2VcIDsKK+mbqOa7tCA8IHV0ZWtpXCA7Civpm7LmtbcgPCB1bmthaVwgOwor6ZuR54WuIDwgem91bmlcIDsKK+aYn+WbsyA8IHNlaXp1XCA7CivopoHot68gPCB5b3Vyb1wgOwor5aWz5b6hIDwgbnlvZ29cIDsKK+aWoeaXiyA8IGFzc2VuXCA7Civpm7Lms6UgPCB1bmRlaVwgOwor6K2m5YuZIDwga2VpbXVcIDsKK+eEoeiDvSA8IG11bm91XCA7CivniqzlhJIgPCBrZW5qdVwgOwor5aSn6KaL5b6XIDwgb29taWVcIDsKK+aVsOasoSA8IHN1dWppXCA7CivmlbXmqZ8gPCB0ZWtraVwgOwor6Zuy5rC0IDwgdW5zdWlcIDsKK+WmluWphiA8IHlvdWJhXCA7CivpnZLmga8gPCBhb2lraVwgOwor6ZaR6ZuFIDwga2FuZ2FcIDsKK+Wkp+aenSA8IG9vZWRhXCA7Civlo7Lmt6sgPCBiYWlpblwgOwor6Zyn5pWjIDwgbXVzYW5cIDsKK+Wls+W4nSA8IGpvdGVpXCA7Civnt5rnlLsgPCBzZW5nYVwgOwor5paw5omLIDwgYXJhdGVcIDsKK+eEoee9qiA8IG11emFpXCA7CivmlaPmrakgPCBzYW5wb1wgOwor6Zuo5rC3IDwgdWh5b3VcIDsKK+aWh+abuCA8IG1vbmpvXCA7Civml6LlrpogPCBraXRlaVwgOwor57Sb6K2wIDwgZnVuZ2lcIDsKK+mZpOeulyA8IGpvemFuXCA7CivorbDkvJogPCBnaWthaVwgOwor5bCE5omL5bqnIDwgaXRlemFcIDsKK+ippua8lCA8IHNoaWVuXCA7CivmkqvogrIgPCBidWlrdVwgOwor6Kqe5qC5IDwgZ29rb25cIDsKK+eGseazoiA8IG5lcHBhXCA7CivlpJrmnJsgPCB0YWJvdVwgOwor5aWz5bCKIDwgam9zb25cIDsKK+eJouWbuiA8IHJvdWtvXCA7CivoqbHms5UgPCB3YWhvdVwgOwor54KJ6L66IDwgcm9oZW5cIDsKK+eFqeeRoyA8IGhhbnNhXCA7Civnt4/nkIYgPCBzb3VyaVwgOwor54Sh57OWIDwgbXV0b3VcIDsKK+mZveeariA8IHlvdWhpXCA7CivlpKfmkI0gPCBvb3pvblwgOwor6Zyy5oKqIDwgcm9ha3VcIDsKK+eKgOWIqSA8IHNhaXJpXCA7CivlpJrmlbAgPCB0YXN1dVwgOwor57ay55uuIDwgYW1pbWVcIDsKK+WkqeaOiCA8IHRlbmp1XCA7CivlpJbmlrkgPCBzb3Bwb1wgOwor57KX6aSQIDwgc29zYW5cIDsKK+eyl+mjryA8IHNvaGFuXCA7CivplonpjpYgPCBoZWlzYVwgOwor57Sg6KGMIDwgc29rb3VcIDsKK+e1uee1tSA8IGtpbnVlXCA7CivorZzku6MgPCBmdWRhaVwgOwor5aGp56iOIDwgZW56ZWlcIDsKK+e1tee1uSA8IGVnaW51XCA7CivpmqDnhLYgPCBpbnplblwgOwor6Kqe5pWwIDwgZ29zdXVcIDsKK+aYoOWAqyA8IGVpcmluXCA7Civnsr7pi60gPCBzZWllaVwgOwor6Zuy5pmvIDwgdW5rZWlcIDsKK+eJiOWbsyA8IGhhbnRvXCA7CivlpYflt4wgPCBraWdhblwgOwor5aeJ5LiKIDwgYW5ldWVcIDsKK+eEoeeovSA8IG11a2VpXCA7CivopbLooaMgPCBzaHV1aVwgOwor6ZaT6YGgIDwgbWFkb29cIDsKK+eEoeeojiA8IG11emVpXCA7CivoqaDmrY4gPCBlaXRhblwgOwor5aSn5oSaIDwgdGFpZ3VcIDsKK+mbsuaVoyA8IHVuc2FuXCA7Civpm6LmnZEgPCByaXNvblwgOwor5aSc5oimIDwgeWFzZW5cIDsKK+S4jeaEj+awlyA8IGJ1aWtpXCA7CivntbXnrYYgPCBlZnVkZVwgOwor5aSa5omNIDwgdGFzYWlcIDsKK+aWh+aEjyA8IGJ1bicnaVwgOwor6KWk6KS4IDwgcmFucnVcIDsKK+Wkp+aCnyA8IGRhaWdvXCA7CivnhKHnpLwgPCBidXJlaVwgOwor57m75a2QIDwgc2h1c3VcIDsKK+mWi+mBiyA8IGthaXVuXCA7CivlpKfmgakgPCBkYWlvblwgOwor6Kmy5qGIIDwgZ2FpYW5cIDsKK+WkouaDsyA8IG11c291XCA7CivopabooqIgPCBqdWJhblwgOwor6Zuj5piTIDwgbmFuJydpXCA7Civml6jlkbMgPCB1bWFtaVwgOwor6Kmx5p+EIDwgd2FoZWlcIDsKK+WlieWuiSA8IGhvdWFuXCA7CivloJXog44gPCBkYXRhaVwgOwor5aSa5oSfIDwgdGFrYW5cIDsKK+aSreeoriA8IGhhc2h1XCA7CivoqrLlvbkgPCBrYWVraVwgOwor6Zmi55SfIDwgaW5zZWlcIDsKK+ijnOmhjCA8IGhvZGFpXCA7CivlpJrmg4UgPCB0YWpvdVwgOwor6Zui5pWjIDwgcmlzYW5cIDsKK+ippuahiCA8IHNoaWFuXCA7CivlpJrmgaggPCB0YWtvblwgOwor5aSn5bqmIDwgdGFpZG9cIDsKK+aVteaEjyA8IHRla2lpXCA7CivmlofluqsgPCBidW5rb1wgOwor6KaL6IieIDwgbWltYWlcIDsKK+Wglee9qiA8IGRhemFpXCA7CivloannlLAgPCBlbmRlblwgOwor54Sh55uKIDwgbXVla2lcIDsKK+Wkp+W3riA8IHRhaXNhXCA7CivlpKflt6UgPCBkYWlrdVwgOwor5aSa5b2iIDwgdGFrZWlcIDsKK+aVrOaFlSA8IGtlaWJvXCA7Civmj7Tou40gPCBlbmd1blwgOwor5pWs5oSbIDwga2VpYWlcIDsKK+WkmuW8gSA8IHRhYmVuXCA7CivpnZ7lkb0gPCBoaW1laVwgOwor6KyA5Y+bIDwgbXVob25cIDsKK+eyl+mKhSA8IHNvZG91XCA7CivmkanogJcgPCBtYW1vdVwgOwor54i25ZCbIDwgZnVrdW5cIDsKK+aUvuaYoCA8IGhvdWVpXCA7CivntIXok64gPCBndXJlblwgOwor6ZuB5pyoIDwgZ2FuZ2lcIDsKK+ijj+mdoiA8IHJpbWVuXCA7Civmlrnlm7MgPCBob3V6dVwgOwor6Zuo5oi4IDwgYW1hZG9cIDsKK+eEoeeUqCA8IG11eW91XCA7CivniaHkuLkgPCBib3RhblwgOwor5aSn5bC+IDwgdGFpYmlcIDsKK+eyl+mFkiA8IHNvc2h1XCA7Civlo7LmiYsgPCB1cml0ZVwgOwor5aKX5rS+IDwgem91aGFcIDsKK+iqmOW8lSA8IHl1dWluXCA7CivlpKflrrYgPCB0YWlrZVwgOwor6ZuF5paHIDwgZ2FidW5cIDsKK+imh+iAhSA8IGhhc2hhXCA7CivmlbDluqYgPCBzdXVkb1wgOwor5aSn5a2XIDwgb29hemFcIDsKK+aWreWbuiA8IGRhbmtvXCA7CivojY/og6HpursgPCBlZ29tYVwgOwor5paH5a2XIDwgbW9uamlcIDsKK+eHleW3oyA8IGVuc291XCA7CivlpaXljbAgPCBva3VpblwgOwor5aSr5ammIDwgbWVvdG9cIDsKK+WkmuWxpCA8IHRhc291XCA7CivoqLTmqKkgPCBzb2tlblwgOwor6Zu25bqmIDwgcmVpZG9cIDsKK+eCueiAhSA8IHRlbmphXCA7CivntbXnlLsgPCBrYWlnYVwgOwor6Z2e5YehIDwgaGlib25cIDsKK+Wls+WEqiA8IGpveXV1XCA7CivoqqTlsIQgPCBnb3NoYVwgOwor5aSW5a6uIDwgZ2VrdXVcIDsKK+WkquWkqyA8IHRheXV1XCA7CivlpKflpaUgPCBvb29rdVwgOwor5o6S6ZmkIDwgaGFpam9cIDsKK+WmguS4iiA8IGpvam91XCA7CivlpKflo7AgPCBvb2dvZVwgOwor5pOs5q+bIDwgZ2ltb3VcIDsKK+WlkeWNsCA8IGtlaWluXCA7CivopoHntKAgPCB5b3Vzb1wgOwor6Zuy5bGFIDwga3Vtb2lcIDsKK+mcsuWRvSA8IHJvbWVpXCA7CivpmbDmr5sgPCBpbm1vdVwgOwor57mU5ZywIDwgb3JpamlcIDsKK+mciuWkoiA8IHJlaW11XCA7CivlpJrlpKcgPCB0YWRhaVwgOwor5o2V6a+oIDwgaG9nZWlcIDsKK+WkmuWjsiA8IHRhYmFpXCA7CivpnLLlj7AgPCByb2RhaVwgOwor57mB5aSaIDwgaGFudGFcIDsKK+mZpOazlSA8IGpvaG91XCA7CivnhJzngokgPCBrb25yb1wgOwor6Zui5bK4IDwgcmlnYW5cIDsKK+eCree0oCA8IHRhbnNvXCA7CivlpJbloLQgPCBnYWliYVwgOwor6Zui5bGxIDwgcml6YW5cIDsKK+Wkp+WYmCA8IG9vdXNvXCA7CivmlbDlpJogPCBzdXV0YVwgOwor6ZqP5pmCIDwgenVpamlcIDsKK+mciuWckiA8IHJlaWVuXCA7CivmlL/lupwgPCBzZWlmdVwgOwor6Zi/5ryVIDwgYWtvZ2lcIDsKK+aWl+WNlyA8IHRvbmFuXCA7Civlo7LlrZAgPCB1cmlrb1wgOwor6Zu75aC0IDwgZGVuYmFcIDsKK+WkluWboCA8IGdhaWluXCA7CivpmLLngasgPCBib3VrYVwgOwor6Zyy5YWJIDwgcm9rb3VcIDsKK+Wkp+WRsyA8IG9vYWppXCA7Civmlr3kuLsgPCBzZXNodVwgOwor54Sh5rOVIDwgbXVob3VcIDsKK+aVheWxsSA8IGtvemFuXCA7CivlpKflj7AgPCBvb2RhaVwgOwor5Zyo6YeOIDwgemFpeWFcIDsKK+eBq+iJsiA8IGhpaXJvXCA7Civmloflj6UgPCBtb25rdVwgOwor6by/IDwgZ290c3VcIDsKK+eEoeawtCA8IG11c3VpXCA7CivpvI4gPCBrYW5hZVwgOwor54Sh5q+bIDwgbXVtb3VcIDsKK+Wbs+mdoiA8IHp1bWVuXCA7CivmlL7lsYEgPCBob3VoaVwgOwor5aOy5aWzIDwgYmFpdGFcIDsKK+WkqeWKqSA8IHRlbmpvXCA7CivnsbPosqggPCBiZWlrYVwgOwor54Sh5q6LIDwgbXV6YW5cIDsKK+mWi+iKsSA8IGthaWthXCA7CivlpJzlj4kgPCB5YXNoYVwgOwor5Z+655ukIDwga2liYW5cIDsKK+m3qSA8IGhldHN1XCA7CivlpKfliKQgPCBvb2JhblwgOwor57Sg55u0IDwgc3VuYW9cIDsKK+imqueIuiA8IG95YWppXCA7CivpnIDlk4EgPCBqdWhpblwgOwor6KOc6KybIDwgaG9rb3VcIDsKK+mbo+WgtCA8IG5hbmJhXCA7Civpto0gPCBpc3VrYVwgOwor5aOy5aC0IDwgdXJpYmFcIDsKK+m2iSA8IHV6dXJhXCA7CivpmaLmnKwgPCBpbnBvblwgOwor5aSa5YuiIDwgdGF6ZWlcIDsKK+Wbm+mhpyA8IHNoaWtvXCA7CivlpKflhJIgPCBkYWlqdVwgOwor5aSc5YmNIDwgeWF6ZW5cIDsKK+exs+iqniA8IGJlaWdvXCA7CivpmLvmraIgPCBzb3NoaVwgOwor5aSW5YuZIDwgZ2FpbXVcIDsKK+mbkeWkmiA8IHphdHRhXCA7CivlpJzliIYgPCB5YWJ1blwgOwor5pWX5ZugIDwgaGFpaW5cIDsKK+exs+ipsSA8IGJlaXdhXCA7CivpsZcgPCB1cm9rb1wgOwor6bC7IDwgdW5hZ2lcIDsKK+aWieWCmSA8IHNlaWJpXCA7CivntbXmloflrZcgPCBlbW9qaVwgOwor5aKT5omAIDwgYm9zaG9cIDsKK+mwkiA8IGF3YWJpXCA7CivpsI8gPCBoeW9rdVwgOwor6Kqe5YuiIDwgZ29zZWlcIDsKK+mwjSA8IGluYWRhXCA7CivoqqTliKQgPCBnb2hhblwgOwor6bCJIDwgaGlnYWlcIDsKK+mvjyA8IGFzYXJpXCA7Civlm7PpkZEgPCB6dWthblwgOwor6a6tIDwgc2hha2VcIDsKK+mbsuWPsCA8IHVuZGFpXCA7Civoqo3lkKYgPCBuaW5waVwgOwor54Sh5qC5IDwgbXVrb25cIDsKK+WkieWMliA8IGhlbmdlXCA7Civoqo3lj68gPCBuaW5rYVwgOwor6au6IDwgZ2F0c3VcIDsKK+e2suaIuCA8IGFtaWRvXCA7CivoqJjmhrYgPCBraW9rdVwgOwor5paH5LqLIDwgYnVuamlcIDsKK+aTrOaFiyA8IGdpdGFpXCA7CivnspfojLYgPCBzb2NoYVwgOwor5aSc5LyaIDwgeWFrYWlcIDsKK+e0lOeQhiA8IGp1bnJpXCA7Civpm6LlkIggPCByaWdvdVwgOwor6Zuj5Y+lIDwgbmFua3VcIDsKK+e3nuWtkCA8IGRvbnN1XCA7Civpm6Llj40gPCByaWhhblwgOwor57Sg54mHIDwgc29oZW5cIDsKK+iqpOS8nSA8IGdvZGVuXCA7Civns7jnm64gPCBpdG9tZVwgOwor57W15p+EIDwgZWdhcmFcIDsKK+iomOW/tSA8IGtpbmVuXCA7CivnhKHmlq0gPCBtdWRhblwgOwor6Zmw5oOoIDwgaW5zYW5cIDsKK+eEoeaVsCA8IG11c3V1XCA7CivntbXmnK0gPCBlZnVkYVwgOwor5pWw5L6hIDwgc3V1a2FcIDsKK+e2v+W4gyA8IG1lbnB1XCA7Civpm7vkvY0gPCBkZW4nJ2lcIDsKK+eyvueylyA8IHNlaXNvXCA7Civpm6jlhbcgPCBhbWFndVwgOwor6Z2oIDwgZWt1Ym9cIDsKK+aOqeiUvSA8IGVucGVpXCA7Civpm6PlhIAgPCBuYW5naVwgOwor6ZqJIDwgZ2V0c3VcIDsKK+ippuWQiCA8IHNoaWFpXCA7CivpmqDlo6sgPCBpbnNoaVwgOwor5aKz5aKTIDwgZnVuYm9cIDsKK+ihsOmBiyA8IHN1aXVuXCA7Civpm4Xlj7cgPCBnYWdvdVwgOwor6Kmg5ZCfIDwgZWlnaW5cIDsKK+aUv+WLmSA8IHNlaW11XCA7CivloLTmnKsgPCBiYXN1ZVwgOwor57a+5a2QIDwgcmluenVcIDsKK+eEoeaJjSA8IG11c2FpXCA7CivngqzngasgPCBreW9rYVwgOwor57Gz6IuxIDwgYmVpZWlcIDsKK+maoOWdiiA8IG9uYm91XCA7Civpmrvlj6UgPCBzZWtrdVwgOwor54Sh5oWuIDwgbXVyeW9cIDsKK+WggOaxnyA8IGhvcmllXCA7Civpm6Lku7sgPCByaW5pblwgOwor57WQ5p6cIDwga2Vra2FcIDsKK+ihsOi6ryA8IHN1aWt1XCA7Civpm6PkuosgPCBuYW5qaVwgOwor5Zyw6JS1IDwgaml6b3VcIDsKK+eEoeaDhSA8IG11am91XCA7Civpj4kgPCBzaHl1dVwgOwor6Y6nIDwgeW9yb2lcIDsKK+ipkOWPliA8IHNhc2h1XCA7Civpm4XlhYQgPCBnYWtlaVwgOwor6YyoIDwgaWthcmlcIDsKK+mMmCA8IHRzdW11XCA7CivnhKHlv7UgPCBtdW5lblwgOwor5Zue6LevIDwga2Fpcm9cIDsKK+imquacqCA8IG95YWdpXCA7Civpm5HkvZwgPCB6b3VzYVwgOwor6ZmQ5bqmIDwgZ2VuZG9cIDsKK+mIuiA8IGd5b2t1XCA7CivloYHmiZMgPCBydWlkYVwgOwor5Zyf6JS1IDwgZG96b3VcIDsKK+imi+anmCA8IG1peW91XCA7CivmlYXkuLsgPCBrb3NodVwgOwor6KW/5qynIDwgc2Vpb3VcIDsKK+imh+aoqSA8IGhha2VuXCA7CivnspfnrKggPCBzb2hvblwgOwor57Sh5qmfIDwgYm91a2lcIDsKK+Wbs+inoyA8IHp1a2FpXCA7CivlnLDoibIgPCBqaWlyb1wgOwor5Zyf6JGsIDwgZG9zb3VcIDsKK+aOque9riA8IHNvY2hpXCA7CivlopPlnLAgPCBib2NoaVwgOwor5Zyo6IuxIDwgemFpZWlcIDsKK+eznOeImyA8IGJpcmFuXCA7CivloLTmiYAgPCBiYXNob1wgOwor6KGX6LevIDwgZ2Fpcm9cIDsKK+Whl+W3pSA8IHRva291XCA7Civpmo/lk6EgPCB6dWlpblwgOwor5ouX6Z+zIDwgeW91b25cIDsKK+imi+aghCA8IG1pYmFlXCA7CivntbnluIMgPCBrZW5wdVwgOwor54Sh5bC9IDwgbXVqaW5cIDsKK+mZpOWkliA8IGpvZ2FpXCA7Civlopflk6EgPCB6b3VpblwgOwor57W15be7IDwgZW1ha2lcIDsKK+imi+acrCA8IG1paG9uXCA7CivpmaLlpJYgPCBpbmdhaVwgOwor57eP5YuZIDwgc291bXVcIDsKK+mXiuatqSA8IGthcHBvXCA7CivourUgPCBuZXJhdVwgOwor6Zqg5YWDIDwgaW5nZW5cIDsKK+eEoeWumCA8IG11a2FuXCA7Civln7rmnKwgPCBraWhvblwgOwor57KX56ClIDwgYXJhdG9cIDsKK+WgseaBqSA8IGhvdW9uXCA7CivntKDmnZAgPCBzb3phaVwgOwor57eP5Ye6IDwgc291ZGVcIDsKK+WckuiKuCA8IGVuZ2VpXCA7Civot5sgPCBiaWtrb1wgOwor5o2V6JmcIDwgaG9yeW9cIDsKK+mao+S/nSA8IHJpbnBvXCA7CivlopPlj4IgPCBib3NhblwgOwor6KO455y8IDwgcmFnYW5cIDsKK+e1tuWutiA8IHpla2tlXCA7CivoqJjlj7cgPCBraWdvdVwgOwor5r++57SZIDwgcm9zaGlcIDsKK+aRqeaQjSA8IG1hc29uXCA7CivloZTlqYYgPCB0b3ViYVwgOwor57Sg5pWwIDwgc29zdXVcIDsKK+Wik+WJjSA8IGJvemVuXCA7CivopqrlvqEgPCBveWFnb1wgOwor54K55pKtIDwgdGVucGFcIDsKK+iotOS6uiA8IHNvbmluXCA7CivooZfooaIgPCBnYWlrdVwgOwor6ZaL5ryUIDwga2FpZW5cIDsKK+e0i+aXpSA8IG1vbmJpXCA7CivpmaTlj7cgPCBqb2dvdVwgOwor5Zuw6IumIDwga29ua3VcIDsKK+mZpOWOuyA8IGpva3lvXCA7CivpmaLlj7cgPCBpbmdvdVwgOwor6ZqK5LyNIDwgdGFpZ29cIDsKK+ifu+mFuCA8IGdpc2FuXCA7CivlnLDnp58gPCBjaGlzb1wgOwor57Sw5b6uIDwgc2FpYmlcIDsKK+aLnei+niA8IGhhaWppXCA7CivlnJ/nrqEgPCBkb2thblwgOwor5aGK5ZyfIDwga2FpZG9cIDsKK+ijj+ebriA8IHVyYW1lXCA7CivoppbluqYgPCBzaGlkb1wgOwor57KX54WuIDwgYXJhbmlcIDsKK+imluW3riA8IHNoaXNhXCA7CivntKDmgKcgPCBzdWpvdVwgOwor57Sw5belIDwgc2Fpa3VcIDsKK+mZquS+jSA8IGJhaWppXCA7CivloLDloKQgPCBlbnRlaVwgOwor6JecIDwgYWthemFcIDsKK+Wcp+eglSA8IGFzc2FpXCA7CivnhKHlirkgPCBtdWtvdVwgOwor5Zyw55ukIDwgamliYW5cIDsKK+iWiiA8IGF6YW1pXCA7CivngavmobYgPCBoaW9rZVwgOwor5o2V57iEIDwgaG9qb3VcIDsKK+e1tuWPpSA8IHpla2t1XCA7CivnsKHntKAgPCBrYW5zb1wgOwor6JSmIDwgdHN1dGFcIDsKK+iUpCA8IGJpdHN1XCA7CivmirzpgIEgPCBvdXNvdVwgOwor5Zyf56CCIDwgZG9zaGFcIDsKK+eCueW3riA8IHRlbnNhXCA7CivloKHloYEgPCBob3J1aVwgOwor57SU5bqmIDwganVuZG9cIDsKK+Wcp+eXlSA8IGFra29uXCA7CivojKggPCBpYmFyYVwgOwor6IycIDwgYWthbmVcIDsKK+eyvuafuyA8IHNlaXNhXCA7CivojIAgPCBodXRzdVwgOwor6Iu2IDwgZGV0c3VcIDsKK+aBteavlOWvvyA8IGViaXN1XCA7CivloLTlkbMgPCBiYWFqaVwgOwor54OI5ammIDwgcmVwcHVcIDsKK+aOiOeUoyA8IGp1c2FuXCA7CivnhKHkvZMgPCBtdXRhaVwgOwor6KGM6ISaIDwgYW5neWFcIDsKK+eEoeS9jyA8IG11anV1XCA7Civmj7rmm7MgPCB5b3VlaVwgOwor5Zyf55SoIDwgZG95b3VcIDsKK+ieuumIvyA8IHJhZGVuXCA7CivnhKHkurogPCBtdW5pblwgOwor5Zyf55O2IDwgZG9iaW5cIDsKK+mYsuWFtyA8IGJvdWd1XCA7Civplbfmn4QgPCBuYWdhZVwgOwor6KWf5bqmIDwga2luZG9cIDsKK+iho+ezpyA8IGlyeW91XCA7CivpmLLlgpkgPCBib3ViaVwgOwor6IKtIDwgZG90c3VcIDsKK+e1kOWPpSA8IGtla2t1XCA7CivogosgPCBhYmFyYVwgOwor5omT6aCGIDwgZGFqdW5cIDsKK+aRguWutiA8IHNla2tlXCA7CivloIXlm7ogPCBrZW5nb1wgOwor5omL6aCGIDwgdGVqdW5cIDsKK+aJk+mbuyA8IGRhZGVuXCA7Civmj5DmoYggPCB0ZWlhblwgOwor5Zyn54K5IDwgYXR0ZW5cIDsKK+ijnOatoyA8IGhvc2VpXCA7Civmj6HmlqcgPCBha3VmdVwgOwor5omT6ZaLIDwgZGFrYWlcIDsKK+imgeWbsyA8IHlvdXp1XCA7CivopoHlm6AgPCB5b3VpblwgOwor56u26aasIDwga2VpYmFcIDsKK+a8j+ipsSA8IHJvdXdhXCA7CivmjqHmsrkgPCBzYWl5dVwgOwor5aC05LujIDwgYmFkYWlcIDsKK+eyl+aatCA8IHNvYm91XCA7CivlnLDmuKkgPCBjaGlvblwgOwor6KOP5q+bIDwgdXJha2VcIDsKK+mWgOaJiSA8IG1vbnBpXCA7CivploDmiLggPCBtb25rb1wgOwor57KSIDwgdHN1YnVcIDsKK+aKq+imiyA8IGhpa2VuXCA7Civnr6kgPCBmdXJ1aVwgOwor54Kt5ZujIDwgdGFkb25cIDsKK+WbnuebriA8IGthaW1lXCA7Civmu4Xph5EgPCBtZWtraVwgOwor562PIDwgaWthZGFcIDsKK+WcsOatqSA8IGNoaWhvXCA7CivmiYvpjKAgPCB0ZWpvdVwgOwor5Zyw5q2MIDwgaml1dGFcIDsKK+mWgOW+kiA8IG1vbnRvXCA7Civnp6sgPCBqb3RzdVwgOwor5Zuz54mIIDwgenVoYW5cIDsKK+eBq+WxsSA8IGthemFuXCA7Civns7vlm7MgPCBrZWl6dVwgOwor5Zyn5q27IDwgYXNzaGlcIDsKK+aJi+mHkSA8IHRla2luXCA7CivlnJ/msJEgPCBkb21pblwgOwor54K55YmNIDwgdGVtYWVcIDsKK+aOouafuyA8IHRhbnNhXCA7CivntI3lj5cgPCBub3VqdVwgOwor5omL6YWNIDwgdGVoYWlcIDsKK+aOiOaoqSA8IGp1a2VuXCA7CivnrYboqJggPCBoaWtraVwgOwor57KX5oKqIDwgc29ha3VcIDsKK+e0oOS9kyA8IHNvdGFpXCA7Civns57lnJ8gPCBmdW5kb1wgOwor55WZ5a6I5bGFIDwgcnVzdWlcIDsKK+mVt+WxhSA8IG5hZ2FpXCA7CivmvKvnvbUgPCBtYW5iYVwgOwor56uv6YqtIDwgaGFzZW5cIDsKK+eWmSA8IGdpdHN1XCA7CivkuI3lvpfmiYsgPCBmdWV0ZVwgOwor566q56ylIDwgdGFuc3VcIDsKK+Wbs+azlSA8IHp1aG91XCA7CivmvaTnm64gPCB1cnVtZVwgOwor5rmW6Z2iIDwga29tZW5cIDsKK+aPmuWxiyA8IGFnZXlhXCA7Civoo4/miYsgPCB1cmF0ZVwgOwor6J6f6Ju+IDwgbWVpZ2FcIDsKK+Wcp+aUvyA8IGFzc2VpXCA7CivmirzntbUgPCBvc2hpZVwgOwor5rmv6YqtIDwgeXVzZW5cIDsKK+mWsuWFtSA8IGVwcGVpXCA7Civoo5zlvKYgPCBob2dlblwgOwor6KGM54GvIDwgYW5kb25cIDsKK+aJi+ipsSA8IHNodXdhXCA7CivlnKfmjpIgPCBhcHBhaVwgOwor5Za26L6yIDwgZWlub3VcIDsKK+aJi+ijvSA8IHRlc2VpXCA7Civln47kuIsgPCBqb3VrYVwgOwor57KX5aSnIDwgc29kYWlcIDsKK+WbuuaciSA8IGtveXV1XCA7CivmuKnpoZQgPCBvbmdhblwgOwor54KK5LqLIDwgc3VpamlcIDsKK+eCjuS4iiA8IGVuam91XCA7CivmjbvmjKsgPCBuZW56YVwgOwor5ryU566XIDwgZW56YW5cIDsKK+a4qemghiA8IG9uanVuXCA7CivnqoHpo5sgPCB0b3BwaVwgOwor54Sh5oSP576pIDwgbXVpZ2lcIDsKK+exs+WvvyA8IGJlaWp1XCA7CivmipXntrIgPCB0b2FtaVwgOwor5pCN5L+dIDwgc29ucG9cIDsKK+ijj+WxiyA8IHVyYXlhXCA7CivmjqrlrpogPCBzb3RlaVwgOwor5oim6KiYIDwgc2Vua2lcIDsKK+aJi+iWhCA8IHRldXN1XCA7CivlnKjluqsgPCB6YWlrb1wgOwor56ul6KmxIDwgZG91d2FcIDsKK+mWk+S7oyA8IG1hZGFpXCA7CivlnKflt7sgPCBha2thblwgOwor5ryr55S7IDwgbWFuZ2FcIDsKK+aPmuWPpSA8IGFnZWt1XCA7Civoo5zloasgPCBob3RlblwgOwor57KX5ZOBIDwgc29oaW5cIDsKK+Wcn+W3pSA8IGRva291XCA7Civlm5vml6UgPCB5b2trYVwgOwor5omL6I2SIDwgdGVhcmFcIDsKK+exs+WhqSA8IGJlaWVuXCA7Civmjqnlo5UgPCBlbmdvdVwgOwor5Zyo5a62IDwgemFpa2VcIDsKK+ijnOWbniA8IGhva2FpXCA7Civmpb4gPCBoYXpvdVwgOwor5qSjIDwgc2hpZGVcIDsKK+mWgOS4iyA8IG1vbmthXCA7CivlmbTngasgPCBmdW5rYVwgOwor57KX5YipIDwgYXJhcmlcIDsKK+ijj+WcsCA8IHVyYWppXCA7Civmt6vpoqggPCBpbnB1dVwgOwor5omT6ICFIDwgZGFzaGFcIDsKK+aggyA8IHRvY2hpXCA7CivlnLDlo7AgPCBqaWdvZVwgOwor5Zu95bqrIDwga29ra29cIDsKK+adgSA8IGVidXJpXCA7CivnrYbnpo0gPCBoaWtrYVwgOwor6Jy76JuJIDwgdG9uYm9cIDsKK+ihjOaWuSA8IHl1a3VlXCA7Civoo7jlg48gPCByYXpvdVwgOwor5Zuz5b2iIDwgenVrZWlcIDsKK++8sO+8oyA8IHDEq3NoxKtcIDsKK+aJk+e3miA8IGRhc2VuXCA7CivlnLDlm7MgPCBjaGl6dVwgOwor6KGo5oSPIDwgaHlvdWlcIDsKK+aKgOeglCA8IGdpa2VuXCA7CivmiYvnuZQgPCB0ZW9yaVwgOwor6KO45L2TIDwgcmF0YWlcIDsKK+Wbs+W3pSA8IHp1a291XCA7CivoobDlvq4gPCBzdWliaVwgOwor6KOP5ZCNIDwgdXJhbmFcIDsKK+Wcn+WhiiA8IGRva2FpXCA7CivmiYvnt7QgPCB0ZXJlblwgOwor5Zyf5aGBIDwgZG9ydWlcIDsKK+Wcn+WhgCA8IGRvYmVpXCA7CivllJDpn7MgPCB0b3VvblwgOwor5Zug5b6qIDwgaW5qdW5cIDsKK+ewv+WkliA8IGJvZ2FpXCA7CivmjqHlkKYgPCBzYWloaVwgOwor5pKlIDwgYmFjaGlcIDsKK+aKgOeboyA8IGdpa2FuXCA7CivnqbrovLggPCBrdXV5dVwgOwor6KOc5YWFIDwgaG9qdXVcIDsKK+WdkeWEkiA8IGtvdWp1XCA7Civlm7rlrpogPCBrb3RlaVwgOwor5oyZ5o6qIDwga3lvc29cIDsKK+aJk+eulyA8IGRhc2FuXCA7Civmjp8gPCBva2l0ZVwgOwor5Zyf5ZqiIDwgZG9ub3VcIDsKK+a8uOasoSA8IHplbmppXCA7Civnqbrot68gPCBrdXVyb1wgOwor5Zu95aiBIDwga29rdWlcIDsKK+a9nOaZgiA8IHNlbmppXCA7Civmh6QgPCBjaHl1dVwgOwor6KOc5Lu7IDwgaG9uaW5cIDsKK+a8q+atqSA8IG1hbnBvXCA7CivmvIHngasgPCBneW9rYVwgOwor5oeH6KmxIDwga29ud2FcIDsKK+epuuiyuyA8IGt1dWhpXCA7Civom67oqp4gPCBiYW5nb1wgOwor5oiv57W1IDwgemFyZWVcIDsKK+Wbo+WtkCA8IGRhbmdvXCA7CivlnJ/lj7AgPCBkb2RhaVwgOwor5ra86ZuoIDwgcnlvdXVcIDsKK+WdiuS4uyA8IGJvdXp1XCA7CivllrbnuZUgPCBlaXplblwgOwor56e76aeQIDwgaWNodXVcIDsKK+iZjumtmiA8IG9rb3plXCA7CivnrpfmnKggPCBzYW5naVwgOwor5omL55u4IDwgdGVzb3VcIDsKK+Wcp+WAkiA8IGF0dG91XCA7CivmtbfpsLsgPCBhbmFnb1wgOwor5baNIDwgc2hpaHVcIDsKK+aGgui6qyA8IHVraW1pXCA7CivmibnngrkgPCBoaXRlblwgOwor5Zyf5YG2IDwgZG9ndXVcIDsKK+ihjOWuriA8IGFuZ3V1XCA7Civls6AgPCB0b3VnZVwgOwor5bKPIDwgZ3V3YW5cIDsKK+WTgOmhmCA8IGFpZ2FuXCA7CivlnJ/kurogPCBkb2ppblwgOwor5a2wIDwgaXp1cmVcIDsKK+aEm+mkkCA8IGFpc2FuXCA7CivlrIcgPCBrdXdhaVwgOwor6JuH6KGMIDwgZGFrb3VcIDsKK+a1hem7hCA8IGFzYWdpXCA7Civmhbbos4AgPCBrZWlnYVwgOwor6KGX5ZuzIDwgZ2FpenVcIDsKK+WjtyA8IHRzdWJvXCA7CivmiZPngrkgPCBkYXRlblwgOwor5ryP5paXIDwgcm91dG9cIDsKK+a4oeiIuSA8IHRvc2VuXCA7Civmt6vooYwgPCBpbmtvdVwgOwor5Z6UIDwgc2h5b3VcIDsKK+WejyA8IHJvdHN1XCA7Civlm64gPCBvdG9yaVwgOwor5rip57+SIDwgc2FyYWlcIDsKK+evgOWppiA8IHNlcHB1XCA7Civllp3noLQgPCBrYXBwYVwgOwor5ZenIDwgZ2Fyb25cIDsKK+WXliA8IHNodWh1XCA7CivlkozpoqggPCB3YWZ1dVwgOwor6J665peLIDwgcmFzZW5cIDsKK+eon+itsCA8IHJpbmdpXCA7CivmhoLomZ4gPCB5dXVndVwgOwor5omT5rOVIDwgZGFob3VcIDsKK+WTmCA8IHNhc291XCA7CivmibbmoZEgPCBmdXNvdVwgOwor6Jma6L6eIDwga3lvamlcIDsKK+ihm+WFtSA8IGVpaGVpXCA7CivmhJrpiI0gPCBndWRvblwgOwor6byg6LypIDwgc29oYWlcIDsKK+WQiyA8IGluY2hpXCA7Civlm57ku5ggPCBrYWlmdVwgOwor5Y2NIDwgbWFuamlcIDsKK+m8oOi5iiA8IHNva2VpXCA7CivljIEgPCBtb25tZVwgOwor5oqK5o+hIDwgaGFha3VcIDsKK+a4oeexsyA8IHRvYmVpXCA7Civmi7Plm7ogPCBnZW5rb1wgOwor5oqV5omTIDwgdG91ZGFcIDsKK+m6kum6nyA8IGtpcmluXCA7CivmhoLoi6YgPCB5dXVrdVwgOwor5Zef5q2OIDwgc2F0YW5cIDsKK+WEsiA8IG1vdWtlXCA7CivmtbfovrogPCB1bWliZVwgOwor5oSb6LuKIDwgYWlzaGFcIDsKK+aJk+ajkiA8IGRhYm91XCA7CivlgZ8gPCBrdXdhdVwgOwor5YCMIDwga3V3YW5cIDsKK+aCqumtlCA8IGFrdW1hXCA7Civmua/ngYwgPCB5dWthblwgOwor5omL5qG2IDwgdGVva2VcIDsKK+eosuiNtyA8IGluYXJpXCA7CivmtabovrogPCB1cmFiZVwgOwor5ZKM6YeRIDwgd2FraW5cIDsKK+m6nemmmSA8IGpha291XCA7CivpiI3pursgPCBkb25tYVwgOwor5oKq6aasIDwgYWt1bWVcIDsKK+aJi+acrCA8IHRlaG9uXCA7CivkuYQgPCBzaGltZVwgOwor5rib56OoIDwgZ2VubWFcIDsKK+eqgeegtCA8IHRvcHBhXCA7CivmtbfosZogPCBpcnVrYVwgOwor6JuH566hIDwgamFrYW5cIDsKK+WTgOipqSA8IGFpc2hpXCA7CivmiZPmlbAgPCBkYXN1dVwgOwor5oSa6KuWIDwgZ3Vyb25cIDsKK+aJi+aWpyA8IHRlb25vXCA7Civmi53lj5cgPCBoYWlqdVwgOwor5rWq6LK7IDwgcm91aGlcIDsKK+aJi+aVsCA8IHRlc3V1XCA7CivmiLjmnb8gPCB0b2l0YVwgOwor5ryi5ZyfIDwga2FuZG9cIDsKK+aEmuioiCA8IGd1a2VpXCA7CivpiZvpjJggPCBlbnN1aVwgOwor56uL5rS+IDwgcmlwcGFcIDsKK+aEmuimiyA8IGd1a2VuXCA7Civmg7notbcgPCBqYWtraVwgOwor5ZGz6YaCIDwgbWlyaW5cIDsKK+WRvemBiyA8IG1laXVuXCA7Civnp5joqIggPCBoaWtlaVwgOwor6JiH6YCjIDwgc29yZW5cIDsKK+aEmuihjCA8IGd1a291XCA7Civnqbrnlo4gPCBrdXVzb1wgOwor5ryB5aSrIDwgZ3lvZnVcIDsKK+aLneWFtyA8IGhhaWd1XCA7CivpioDosqggPCBnaW5rYVwgOwor56uv5pysIDwgaGFob25cIDsKK+a1gei7oiA8IHJ1dGVuXCA7CivmtbTooaMgPCB5b2t1aVwgOwor5ryB5aC0IDwgZ3lvYmFcIDsKK+aEj+ihqCA8IGloeW91XCA7CivmiK/mlocgPCBnaWJ1blwgOwor5ray6IKlIDwgZWtpaGlcIDsKK+epuueQhiA8IGt1dXJpXCA7CivmuoDmnJ8gPCBtYW5raVwgOwor5rmW5rC0IDwga29zdWlcIDsKK+WSjOiumiA8IHdhc2FuXCA7Civnq6/mlbAgPCBoYXN1dVwgOwor5ZiY5a2XIDwgdXNvamlcIDsKK+aIkOahiCA8IHNlaWFuXCA7Civms6LpoK0gPCBoYXRvdVwgOwor5oSb6JS1IDwgYWl6b3VcIDsKK+m6pumFkiA8IGJpaXJ1XCA7CivlkI3ppqwgPCBtZWliYVwgOwor5ZKM6KiTIDwgd2FrdW5cIDsKK+WSjOinoyA8IHdha2FpXCA7Civms6LpnaIgPCBoYW1lblwgOwor5omL5b2TIDwgdGVhdGVcIDsKK+eosuepgiA8IGluYWhvXCA7CivpvLvnt5IgPCBoYW5hb1wgOwor5ZKM6KO9IDwgd2FzZWlcIDsKK+mLpOewviA8IGpvcmVuXCA7Civlkozoo4UgPCB3YXNvdVwgOwor5ouF5L+dIDwgdGFucG9cIDsKK+WSjOijgSA8IHdhc2FpXCA7CivmhoLnm64gPCB1a2ltZVwgOwor5rip5rmvIDwgb250b3VcIDsKK+WQjOmfsyA8IGRvdW9uXCA7Civmhq7nhLYgPCBidXplblwgOwor5oKq6YGLIDwgYWt1dW5cIDsKK+aHuOaetiA8IGtlbmdhXCA7CivmgqPpg6ggPCBrYW5idVwgOwor6YqY6I+TIDwgbWVpa2FcIDsKK+m7kuihoyA8IGtva3VlXCA7Civmgp/pgZMgPCBnb2RvdVwgOwor5ZGz6KaLIDwgYWppbWlcIDsKK+eEoeaEj+WRsyA8IG11aW1pXCA7CivmuKnmsLQgPCBvbnN1aVwgOwor6by756uvIDwgYml0YW5cIDsKK+a4oea0iyA8IHRveW91XCA7CivmhJvogrIgPCBhaWlrdVwgOwor5ruF5aSaIDwgbWV0dGFcIDsKK+a3q+eMpSA8IGlud2FpXCA7CivmvIHlhbcgPCBneW9ndVwgOwor5oKq6LevIDwgYWt1cm9cIDsKK+aDheipsSA8IGpvdXdhXCA7CivnqK7nmq4gPCBzaHVoaVwgOwor5oSa6ICFIDwgZ3VzaGFcIDsKK+aJh+WtkCA8IHNlbnN1XCA7Civph47ppqwgPCBub3VtYVwgOwor56aF6KmxIDwgemVud2FcIDsKK+aIkeaFoiA8IGdhbWFuXCA7Civlj6TpoqggPCBrb2Z1dVwgOwor56m65rCXIDwga3V1a2lcIDsKK+epuuavjSA8IGt1dWJvXCA7CivllL7mtrIgPCBkYWVraVwgOwor5rqA5bqnIDwgbWFuemFcIDsKK+WWtuW6rSA8IGVpdGVpXCA7CivomZrnqbogPCBrb2t1dVwgOwor5re15rqQIDwgZW5nZW5cIDsKK+WSjOiIuSA8IHdhc2VuXCA7CivnpL7pgYsgPCBzaGF1blwgOwor5om55YikIDwgaGloYW5cIDsKK+aJi+WeoiA8IHRlYWthXCA7CivmgqroqIggPCBha2tlaVwgOwor5om55YeGIDwgaGlqdW5cIDsKK+m8k+erpSA8IGtvZG91XCA7CivlkI/pgZMgPCByb2RvdVwgOwor5oqV5LiOIDwgdG91eW9cIDsKK+aHuOaDsyA8IGtlc291XCA7Civlj5fpm6MgPCBqdW5hblwgOwor5oi45aSWIDwga29nYWlcIDsKK+aHuuaClCA8IHphbmdlXCA7Civpi7PniakgPCBpbW9ub1wgOwor5rip5pqWIDwgb25kYW5cIDsKK+a4oeadpSA8IHRvcmFpXCA7CivmgaXpg6ggPCBjaGlidVwgOwor5oe45b+1IDwga2VuZW5cIDsKK+aCquihjCA8IGFra291XCA7Civmt6HmuZYgPCB0YW5rb1wgOwor5oiQ5bCxIDwgam91anVcIDsKK+enn+eojiA8IHNvemVpXCA7CivlloTmhI8gPCB6ZW4nJ2lcIDsKK+WPpOmKrSA8IGtvc2VuXCA7Civnq6XlpbMgPCBkb3Vqb1wgOwor6byg55arIDwgc29la2lcIDsKK+a1gee9qiA8IHJ1emFpXCA7Civll5rlkr0gPCBvZXRzdVwgOwor5oGp6LWmIDwgb25zaGFcIDsKK+aJi+WLoiA8IHRlemVpXCA7CivmhI/lm7rlnLAgPCBpa29qaVwgOwor5reY5rGwIDwgdG91dGFcIDsKK+a0kuiQvSA8IHNoYXJlXCA7CivmtbfnoIIgPCBrYWlzYVwgOwor5Y+w6LyqIDwgZGFpd2FcIDsKK+a5luWyuCA8IGtvZ2FuXCA7CivmtLXnvo4gPCBqdW5iaVwgOwor56ys5LqMIDwgZGFpbmlcIDsKK+ekuuirhyA8IGppZGFuXCA7Civph47pg44gPCB5YXJvdVwgOwor5rOV6KqeIDwgaG91Z29cIDsKK+WQiOitsCA8IGdvdWdpXCA7Civmh4fmhI8gPCBrb24nJ2lcIDsKK+aHiuaCqSA8IG91bm91XCA7CivlkI3oqokgPCBtZWl5b1wgOwor5oSa55e0IDwgZ3VjaGlcIDsKK+awtOm2jyA8IGt1aW5hXCA7Civlj4npioMgPCBzYWp1dVwgOwor5rip5oOFIDwgb25qb3VcIDsKK+aEm+eUqCA8IGFpeW91XCA7Civmh4jmgKAgPCBnZXRhaVwgOwor5oSa55SfIDwgZ3VzZWlcIDsKK+mHiOi/piA8IHNoYWthXCA7Civmua/lnqIgPCB5dWFrYVwgOwor5oGL6LevIDwga29pamlcIDsKK+a0vuexsyA8IGhhYmVpXCA7Civms5XooqsgPCBoYXBwaVwgOwor6JeN6ImyIDwgYWlpcm9cIDsKK+err+WNiCA8IHRhbmdvXCA7CivomZrnhKEgPCBreW9tdVwgOwor5omL5LujIDwgdGVkYWlcIDsKK+WPl+i6qyA8IHVrZW1pXCA7CivmuKHlvqEgPCB0b2d5b1wgOwor5rC06a2UIDwgc3VpbWFcIDsKK+mHjui2oyA8IHlhc2h1XCA7Civlv6vpn7MgPCBrYWlvblwgOwor5omA5L2cIDwgc2hvc2FcIDsKK+WPpOixqiA8IGtvZ291XCA7Civph5HosqggPCBraW5rYVwgOwor5oSb54qsIDwgYWlrZW5cIDsKK+ejr+i+uiA8IGlzb2JlXCA7CivpvLvmsYEgPCBiaWp1dVwgOwor5oOw55ygIDwgZGFtaW5cIDsKK+aCque9tSA8IGFrdWJhXCA7CivmiJDlj6UgPCBzZWlrdVwgOwor5omA5LiOIDwgc2hveW9cIDsKK+WPpOiruiA8IGtvZ2VuXCA7CivnqLLmnKggPCBpbmFnaVwgOwor5Y+k6KiTIDwga29rdW5cIDsKK+epuuW3oyA8IGFraXN1XCA7CivmgqrnuIEgPCBha3VlblwgOwor5rip5a2YIDwgb256b25cIDsKK+WPl+ismyA8IGp1a291XCA7Civlj6HopqcgPCBlaXJhblwgOwor5Y2x6ZujIDwga2luYW5cIDsKK+W+oei+nuWEgCA8IG9qaWdpXCA7Civlv4XpoIggPCBoaXNzdVwgOwor5Y+N6KqeIDwgaGFuZ29cIDsKK+m8u+aguSA8IGJpa29uXCA7Civlj43oqLQgPCBoYW5zb1wgOwor6Yut5pWPIDwgZWliaW5cIDsKK+aEm+a2siA8IGFpZWtpXCA7CivlkI3oiJcgPCBtZWlob1wgOwor5rS+55SfIDwgaGFzZWlcIDsKK+WWh+WPrSA8IHJhcHBhXCA7CivpjbzljLsgPCBoYXJpaVwgOwor5oCq6KidIDwga2VnZW5cIDsKK+mHjuibriA8IHlhYmFuXCA7CivljbDpkZEgPCBpbmthblwgOwor5rGa6L6xIDwgb2pva3VcIDsKK+mKg+eBqyA8IGp1dWthXCA7CivmhJrmsJEgPCBndW1pblwgOwor5Zaq5Li7IDwgbW9zaHVcIDsKK+WNl+mYvyA8IG5hbicnYVwgOwor6buE54+tIDwgb3VoYW5cIDsKK+WQjee+qSA8IG1laWdpXCA7CivmsJHpnIAgPCBtaW5qdVwgOwor6Jma5qCEIDwga3lvZWlcIDsKK+a2heangyA8IG5laGFuXCA7Civmt7vlrZcgPCBzb2VqaVwgOwor5ZOh5pWwIDwgaW56dXVcIDsKK+a1ruawlyA8IHV3YWtpXCA7Civms6LntIsgPCBoYW1vblwgOwor56aF55S7IDwgemVuZ2FcIDsKK+eptOWgtCA8IGFuYWJhXCA7CivlkozmvKIgPCB3YWthblwgOwor5oSP5qyyIDwgaXlva3VcIDsKK+mHjuiPnCA8IHlhc2FpXCA7Civlj6TojLYgPCBrb2NoYVwgOwor56We56S+IDwgamluamFcIDsKK+m7hOeHkCA8IG91cmluXCA7CivmtYXngKwgPCBhc2FzZVwgOwor5b6h6ZujIDwgZ29uYW5cIDsKK+mHjuiNiSA8IHlhc291XCA7CivlvqHpmbAgPCBva2FnZVwgOwor6JqV5bqnIDwgc2FuemFcIDsKK+a4qeWOmiA8IG9ua291XCA7CivpioDms6IgPCBnaW5wYVwgOwor6YqA5rKzIDwgZ2luZ2FcIDsKK+aFleaDhSA8IGJvam91XCA7CivlkozmtIsgPCB3YXlvdVwgOwor5ZCN57C/IDwgbWVpYm9cIDsKK+a3i+W3tCA8IHJpbnBhXCA7CivmhYfmh4MgPCBpbmdpblwgOwor5b+16KqmIDwgbmVuanVcIDsKK+aEm+abuCA8IGFpc2hvXCA7Civmsr/nt5ogPCBlbnNlblwgOwor6YeR6IKlIDwga2lucGlcIDsKK+WOn+iiqyA8IGdlbnBpXCA7CivolZfojYkgPCByb3NvdVwgOwor5rCX6YeNIDwga2lvbW9cIDsKK+WNl+mDqCA8IG5hbmJ1XCA7Civmt6vlo7IgPCBpbmJhaVwgOwor56eY5pysIDwgaGlob25cIDsKK+aEmuaYpyA8IGd1bWFpXCA7CivmtYHmtaogPCBydXJvdVwgOwor5rC06LevIDwgc3Vpcm9cIDsKK+awl+mFjSA8IGtlaGFpXCA7CivolqznoJQgPCB5YWdlblwgOwor5Y+X6IOOIDwganV0YWlcIDsKK+W+rumGuiA8IGJpa3VuXCA7CivljYrph4wgPCBoYW5yaVwgOwor56iy5a2QIDwgaW5hZ29cIDsKK+avlOmhniA8IGhpcnVpXCA7CivmtYHmsJEgPCBydW1pblwgOwor5Y2D6YeMIDwgc2VucmlcIDsKK+WQjOelliA8IGRvdXNvXCA7CivpiYTngasgPCB0ZWtrYVwgOwor56C06aGUIDwgaGFnYW5cIDsKK+WNkei/kSA8IGhpa2luXCA7CivlvqHph5wgPCBva2FtYVwgOwor5b6h6YeRIDwgb2thbmVcIDsKK+a1puabsiA8IHVyYXdhXCA7Civph43nuIEgPCBqdXVlblwgOwor6YOo6aaWIDwgYnVzaHVcIDsKK+mDvembuyA8IHRvZGVuXCA7CivmhJrmjJkgPCBndWt5b1wgOwor5ZOA5oarIDwgYWliaW5cIDsKK+WTgOaGkCA8IGFpcmVuXCA7Civlvanpm7IgPCBzYWl1blwgOwor6YOo6aGeIDwgYnVydWlcIDsKK+iUrOiPnCA8IHNvc2FpXCA7CivlkozmnKwgPCB3YWhvblwgOwor5ray5a6JIDwgZWtpYW5cIDsKK+epuuS9kCA8IGt1dXNhXCA7Civlj5fntI0gPCBqdW5vdVwgOwor5ZOA5oOFIDwgYWlqb3VcIDsKK+WTgOaCvCA8IGFpdG91XCA7Civlkozmm7ggPCB3YXNob1wgOwor5oaC5ZOtIDwgdWtpbmVcIDsKK+WPl+eyiSA8IGp1ZnVuXCA7Civpg6jpnaIgPCBidW1lblwgOwor55+u6baPIDwgY2hhYm9cIDsKK+avq+mHkCA8IGdvdXJpXCA7CivmhJvmg7MgPCBhaXNvdVwgOwor6buE5qWKIDwgdHN1Z2VcIDsKK+mLs+WeiyA8IGlnYXRhXCA7Civlvq7os6QgPCBiaXNlblwgOwor5ZKM5paHIDwgd2FidW5cIDsKK+iWhOedgCA8IHVzdWdpXCA7Civms6LnirYgPCBoYWpvdVwgOwor6JaE55uuIDwgdXN1bWVcIDsKK+W+kui8qSA8IHRvaGFpXCA7Civph4znqIsgPCByaXRlaVwgOwor6JuH5L2TIDwgamF0YWlcIDsKK+eoveWPpCA8IGtlaWtvXCA7CivmhJrlvJ8gPCBndXRlaVwgOwor5oSa5byEIDwgZ3Vyb3VcIDsKK+iWq+eFmSA8IGt1bmVuXCA7CivmsrvnmZIgPCBjaGl5dVwgOwor5oKy5q2OIDwgaGl0YW5cIDsKK+axmuiHrSA8IG9zaHV1XCA7CivljZHoqIAgPCBoaWdlblwgOwor5rCR6KmxIDwgbWlud2FcIDsKK+avlOmHjSA8IGhpanV1XCA7Civnpo3moLkgPCBrYWtvblwgOwor6YeO56CyIDwgeWFob3VcIDsKK+aEieW/qyA8IHl1a2FpXCA7CivnqY/lgaUgPCBvbmtlblwgOwor5Y6f576pIDwgZ2VuZ2lcIDsKK+mYv+W8pemZgCA8IGFtaWRhXCA7CivmsrnnlLAgPCB5dWRlblwgOwor5by+6ZuoIDwgZGFuJyd1XCA7Civpg73pgpEgPCB0b3l1dVwgOwor5Y2K6KO4IDwgaGFucmFcIDsKK+W+oeipoCA8IGd5b2VpXCA7Civph43nm64gPCBvbW9tZVwgOwor56CC6ZiyIDwgc2Fib3VcIDsKK+WRquaWhyA8IGp1bW9uXCA7CivlvqHopqcgPCBnb3JhblwgOwor5ZCQ54CJIDwgdG9zaGFcIDsKK+a3q+S5sSA8IGlucmFuXCA7CivnpZ7mraYgPCBqaW5tdVwgOwor5ZCI54K5IDwgZ2F0ZW5cIDsKK+aEm+WtqyA8IGFpc29uXCA7CivmtYXmiYsgPCBhc2FkZVwgOwor6JqV5YW3IDwgc2FuZ3VcIDsKK+aDsOaApyA8IGRhc2VpXCA7CivlsYXlkIjpgZMgPCBpYWRvdVwgOwor5rK554q2IDwgeXVqb3VcIDsKK+mHjueUnyA8IHlhc2VpXCA7Civms6LmtaogPCBoYXJvdVwgOwor6JOu6I+vIDwgcmVuZ2VcIDsKK+aEm+WpvyA8IGFpc2VpXCA7Civlv43oi6YgPCBuaW5rdVwgOwor6YqD5bqnIDwganV1emFcIDsKK+WOn+ewvyA8IGdlbmJvXCA7CivpioDluqcgPCBnaW56YVwgOwor5oSb5aa7IDwgYWlzYWlcIDsKK+eojuWQjyA8IHplaXJpXCA7CivmhJvlpb0gPCBhaWtvdVwgOwor5Yq06Z+zIDwgcm91b25cIDsKK+mHjueNoyA8IHlhanV1XCA7Civph47njKogPCB5YWNob1wgOwor5rC06IKlIDwgc3VpaGlcIDsKK+WLn+mHkSA8IGJva2luXCA7CivphbjntKAgPCBzYW5zb1wgOwor6YeO54qsIDwgeWFrZW5cIDsKK+W7tumrhCA8IGVuenVpXCA7CivnqI7li5kgPCB6ZWltdVwgOwor5oKq5pelIDwgYWt1YmlcIDsKK+eomuWFkCA8IGNoaWdvXCA7Civlv43ogIUgPCBuaW5qYVwgOwor6by75YaFIDwgYmluYWlcIDsKK+WPpeeCuSA8IGt1dGVuXCA7CivnoLToq4cgPCBoYWRhblwgOwor5ZKM5bCaIDwgb3Nob3VcIDsKK+W9k+i3ryA8IHRvdXJvXCA7Civmg4XmhJsgPCBqb3VhaVwgOwor6YOo6LKhIDwgYnV6YWlcIDsKK+mJhOaJiSA8IHRlcHBpXCA7Civmtbflm7MgPCBrYWl6dVwgOwor5oSa5ZWPIDwgZ3Vtb25cIDsKK+awtOe0oCA8IHN1aXNvXCA7Civlk4Dlj7cgPCBhaWdvdVwgOwor5oKy5oakIDwgaGlmdW5cIDsKK+m6u+W5uSA8IG9nYXJhXCA7CivljbDnsaAgPCBpbnJvdVwgOwor56e75YWlIDwgaW55dXVcIDsKK+azsOaWlyA8IHRhaXRvXCA7CivmhJvlkJ8gPCBhaWdpblwgOwor6YeN5rmvIDwgb21veXVcIDsKK+asuumomSA8IGdpaGVuXCA7CivlvqHohbkgPCBvbmFrYVwgOwor5oKy5oGLIDwgaGlyZW5cIDsKK+WPpeazlSA8IGt1aG91XCA7Civlvq7nvaogPCBiaXphaVwgOwor5Y6f55S7IDwgZ2VuZ2FcIDsKK+WPpOazlSA8IGtvaG91XCA7CivomZrlgb0gPCBreW9naVwgOwor5Yuy6KiYIDwga3Vua2lcIDsKK+mHkeazoiA8IGtpbnBhXCA7Civmtbflj4IgPCBpcmlrb1wgOwor56eY5Y+yIDwgaGlzaGlcIDsKK+mCqumBkyA8IGphZG91XCA7CivljrPniLYgPCBnZW5wdVwgOwor6YqA5ZywIDwgZ2luamlcIDsKK+ekvuaYryA8IHNoYXplXCA7CivmtbfljLogPCBrYWlrdVwgOwor5Y2w56iOIDwgaW56ZWlcIDsKK+mHjeayuSA8IGp1dXl1XCA7Civnn67ouq8gPCB3YWlrdVwgOwor5oKq5b+DIDwgb3NoaW5cIDsKK+axl+eWuSA8IGFzZW1vXCA7CivmgqrlvpIgPCBha3V0b1wgOwor56G857SgIDwgaG91c29cIDsKK+WPl+a0lyA8IGp1c2VuXCA7CivpioDlmaggPCBnaW5raVwgOwor5b+r55mSIDwga2FpeXVcIDsKK+mHkeatryA8IGtpbmJhXCA7Civnn63ot68gPCB0YW5yb1wgOwor6YGg6Z+zIDwgdG9vbmVcIDsKK+W+rue0sCA8IGJpc2FpXCA7Civli4PotbcgPCBib2traVwgOwor5oSa5YOnIDwgZ3Vzb3VcIDsKK+emheWutiA8IHplbmtlXCA7CivliqDphY0gPCBrYWhhaVwgOwor5ZOB5L2NIDwgaGluJydpXCA7CivmrKfpoqggPCBvdWZ1dVwgOwor5rWE5ZyfIDwgam91ZG9cIDsKK+acqumAmuWlsyA8IG9ib2tvXCA7CivmgJLmv6QgPCBkb3RvdVwgOwor5oO55Y+lIDwgamFra3VcIDsKK+ejqOa3rCA8IG1hc2FpXCA7CivmsLjnnKAgPCBlaW1pblwgOwor5by36Ki0IDwgZ291c29cIDsKK+WShOWXnyA8IHRvc3NhXCA7CivmrabpgZMgPCBidWRvdVwgOwor5Y+N5q+UIDwgaGFucGlcIDsKK+WNsOebuCA8IGluem91XCA7CivmrKHpoZ4gPCBqaXJ1aVwgOwor5Y+N5q2vIDwgc29wcGFcIDsKK+WJqumZpCA8IHNlbmpvXCA7Civphrjmr40gPCBqb3Vib1wgOwor5q2m6L66IDwgYnVoZW5cIDsKK+W6p+mrmCA8IHpha291XCA7CivlkozlkI0gPCB3YW1laVwgOwor5oSb5Lq6IDwgYWlqaW5cIDsKK+WSjOWQiCA8IHdhZ291XCA7CivljYrnq68gPCBoYW5wYVwgOwor6JaE5pelIDwgdXN1YmlcIDsKK+aEmuS6uiA8IGd1amluXCA7Civlv5znlKggPCBvdXlvdVwgOwor5ZCm5b+cIDwgaXlhb3VcIDsKK+avjeiJpiA8IGJva2FuXCA7Civmsrnmlq0gPCB5dWRhblwgOwor5q+N6Ii5IDwgYm9zZW5cIDsKK+WPpOadpSA8IGtvcmFpXCA7Civlj6Tmm7ggPCBrb3Nob1wgOwor6YeO5pyrIDwgbm96dWVcIDsKK+mHjuacmyA8IHlhYm91XCA7CivmraPot68gPCBzZWlyb1wgOwor6Ymx5Yy6IDwga291a3VcIDsKK+azouW9oiA8IGhha2VpXCA7CivliY3pnZ4gPCB6ZW5waVwgOwor5rGa5r+BIDwgb2Rha3VcIDsKK+eigeebpCA8IGdvYmFuXCA7CivlvJjoqpMgPCBndXplaVwgOwor5rWu5LiWIDwgdWtpeW9cIDsKK+W6p+mgrSA8IHphdG91XCA7CivlkJDmga8gPCB0b2lraVwgOwor5oKq5aWzIDwgYWt1am9cIDsKK+avm+e5lCA8IGtlb3JpXCA7CivmsZ/muZYgPCBnb3Vrb1wgOwor5oGp5oSbIDwgb24nJ2FpXCA7CivmgqrlpKIgPCBha3VtdVwgOwor5YyX57evIDwgaG9rdWlcIDsKK+iWhOaJiyA8IHVzdWRlXCA7CivmganmgbUgPCBvbmtlaVwgOwor5rC454miIDwgZWlyb3VcIDsKK+WNiOedoSA8IGdvc3VpXCA7CivmtYHliJEgPCBydWtlaVwgOwor6YqA5L2NIDwgZ2luJydpXCA7CivljZfnlLsgPCBuYW5nYVwgOwor5Zuy54KJ6KOPIDwgaXJvcmlcIDsKK+W8geittyA8IGJlbmdvXCA7Civli6Toi6YgPCBraW5rdVwgOwor5Yqp6KiAIDwgam9nb25cIDsKK+azleW6piA8IGhhdHRvXCA7Civmg4XlkbMgPCBqb3VtaVwgOwor5ZCm5a6aIDwgaGl0ZWlcIDsKK+W9see1tSA8IGthZ2VlXCA7CivlkIzluqcgPCBkb3V6YVwgOwor56C057a7IDwgaGF0YW5cIDsKK+a0vuWFtSA8IGhhaGVpXCA7CivnpoXlkbMgPCB6ZW5taVwgOwor5oKq5ZugIDwgYWt1aW5cIDsKK+iSlOe1tSA8IG1ha2llXCA7CivljJXnrrggPCBoaWNob1wgOwor5Y2K55SwIDwgaGFuZGFcIDsKK+aBi+aFlSA8IHJlbmJvXCA7Civph43miYsgPCBvbW9kZVwgOwor5q2m6KOFIDwgYnVzb3VcIDsKK+WNkeeMpSA8IGhpd2FpXCA7CivnoLTnrpcgPCBoYXNhblwgOwor5ZGR5ZCQIDwgZG9udG9cIDsKK+ayueW9qSA8IHl1c2FpXCA7Civlj6Hmha4gPCBlaXJ5b1wgOwor5rWB5Lq6IDwgcnVuaW5cIDsKK+W+oeeSvSA8IGd5b2ppXCA7Civlj5bmiYsgPCB0b3R0ZVwgOwor5ZCN5a6bIDwgbmFhdGVcIDsKK+edgOmhniA8IGtpcnVpXCA7CivmrYzoq5YgPCBrYXJvblwgOwor6YeN5oSbIDwganV1YWlcIDsKK+WPsOW6pyA8IGRhaXphXCA7CivlibLos6YgPCB3YXBwdVwgOwor55yf6a+JIDwgbWFnb2lcIDsKK+aui+iKsSA8IHphbmthXCA7Civpu4TkurogPCBvdWppblwgOwor5rC05ripIDwgc3Vpb25cIDsKK+mBi+i8uCA8IHVuJyd5dVwgOwor6Jep5YSSIDwgaGFuanVcIDsKK+m6l+WPpSA8IHJlaWt1XCA7CivokYnojLYgPCBoYWRqYVwgOwor5b6h546JIDwgb3RhbWFcIDsKK+mBk+i3ryA8IGRvdXJvXCA7CivpgYvou6IgPCB1bnRlblwgOwor5Yid6ZmjIDwgdWlqaW5cIDsKK+mAo+mOliA8IHJlbnNhXCA7CivpgY3ot68gPCBoZW5yb1wgOwor6Ymb5Li5IDwgZW50YW5cIDsKK+awtOazsyA8IHN1aWVpXCA7Civms6XlnJ8gPCBkZWlkb1wgOwor5Y+L5oSbIDwgeXV1YWlcIDsKK+WQjOWknCA8IGRvdXlhXCA7Civph43luqYgPCBqdXVkb1wgOwor5YmN6LyqIDwgbWFld2FcIDsKK+ayu+WuiSA8IGNoaWFuXCA7CivpiI3lmaggPCBkb25raVwgOwor5oCn5oSbIDwgc2VpYWlcIDsKK+eggue1tSA8IHN1bmFlXCA7CivmspnlvKUgPCBzaGFtaVwgOwor56Wt5YW3IDwgc2FpZ3VcIDsKK+mFjea1gSA8IGhhaXJ1XCA7CivliIjpmaQgPCBnYWlqb1wgOwor5oCo5oGoIDwgZW5rb25cIDsKK+mBoOimiyA8IHRvb21pXCA7CivojbfppqwgPCBuaXVtYVwgOwor55yf6aGUIDwgbWFnYW9cIDsKK+WIqemIjSA8IHJpZG9uXCA7CivmgJ3mhZUgPCBzaGlib1wgOwor5oCg5oOwIDwgdGFpZGFcIDsKK+WIqemHkSA8IHJpa2luXCA7CivphZTmrakgPCBzdWlob1wgOwor5Ye56Z2iIDwgb3VtZW5cIDsKK+WQn+WRsyA8IGdpbm1pXCA7CivmraboirggPCBidWdlaVwgOwor5b6S54S2IDwgdG96ZW5cIDsKK+mHkeWtkCA8IGtpbnN1XCA7CivljZjmr5QgPCB0YW5waVwgOwor6YGO6KiAIDwga2Fnb25cIDsKK+ekvuWToSA8IHNoYWluXCA7CivmgqrkuosgPCBha3VqaVwgOwor5b2p55S7IDwgc2FpZ2FcIDsKK+iWq+WMliA8IGt1bmthXCA7CivnpZblhYggPCBzb3NlblwgOwor6YiN5YyWIDwgZG9ua2FcIDsKK+WIpemAlCA8IGJldHRvXCA7Civlj7DloLQgPCBkYWliYVwgOwor6JaE5ZywIDwgdXN1amlcIDsKK+WNsOadkCA8IGluemFpXCA7CivlubPph44gPCBoZWl5YVwgOwor5oGv5ZC5IDwgaWJ1a2lcIDsKK+WQjeWPpSA8IG1laWt1XCA7CivmrabogIUgPCBtdXNoYVwgOwor56S+5YuZIDwgc2hhbXVcIDsKK+WOn+aEjyA8IGdlbicnaVwgOwor5Y+k5aKzIDwga29mdW5cIDsKK+mHjuWkqSA8IG5vdGVuXCA7CivlkIjlkKYgPCBnb3VoaVwgOwor5Yq057WEIDwgcm91c29cIDsKK+mHjuWkliA8IHlhZ2FpXCA7Civluqfoq4cgPCB6YWRhblwgOwor5byX57SgIDwgZnVzc29cIDsKK+azleWLmSA8IGhvdW11XCA7CivlvqHkuJbovp4gPCBvc2VqaVwgOwor56C054mHIDwgaGFoZW5cIDsKK+WQkOWJpCA8IHRvemFpXCA7CivlvqHmrr8gPCBnb3RlblwgOwor5Yy65rCRIDwga3VtaW5cIDsKK+efsyA8IGtva3VcIDsKK+i/qyA8IGhha3VcIDsKK+i/hCA8IG1hZGVcIDsKK+W/gyA8IHNoaW5cIDsKK+i+vCA8IGtvbXVcIDsKK+W+tCA8IGNob3VcIDsKK+W+syA8IHRva3VcIDsKK+i+sSA8IGpva3VcIDsKK+eerSA8IHJ5b3VcIDsKK+eerCA8IHNodW5cIDsKK+W+qSA8IGZ1a3VcIDsKK+W9vCA8IGthcmVcIDsKK+W9uSA8IHlha3VcIDsKK+W9sSA8IGthZ2VcIDsKK+edpiA8IGJva3VcIDsKK+W8viA8IHRhbWFcIDsKK+W8tyA8IGt5b3VcIDsKK+i8ryA8IHNodXVcIDsKK+eciSA8IG1heXVcIDsKK+i8gyA8IGtha3VcIDsKK+ebtCA8IGhpdGFcIDsKK+i7kiA8IG5va2lcIDsKK+W7giA8IHNob3VcIDsKK+eavyA8IHNhcmFcIDsKK+W6tSA8IGlvcmlcIDsKK+eariA8IGthd2FcIDsKK+W6rSA8IG5pd2FcIDsKK+W6lyA8IG1pc2VcIDsKK+W6lSA8IHNva29cIDsKK+i6kSA8IHRla2lcIDsKK+i6iiA8IGNodXVcIDsKK+W6iiA8IHl1a2FcIDsKK+eahCA8IG1hdG9cIDsKK+W5uSA8IG1pa2lcIDsKK+W5syA8IGhpcmFcIDsKK+i5oCA8IHNla2lcIDsKK+eZliA8IGt1c2VcIDsKK+W5hSA8IGhhYmFcIDsKK+W4uCA8IHRvd2FcIDsKK+W4jCA8IG1hcmVcIDsKK+W4gyA8IG51bm9cIDsKK+W3uyA8IG1ha2lcIDsKK+i2syA8IGFzaGlcIDsKK+i2iiA8IGV0c3VcIDsKK+eVmSA8IHJ5dXVcIDsKK+eUsyA8IHNhcnVcIDsKK+eUnyA8IG5hbWFcIDsKK+W0liA8IGdha2VcIDsKK+W0jiA8IHNha2lcIDsKK+WzsCA8IG1pbmVcIDsKK+iziiA8IHpva3VcIDsKK+izgyA8IGNoaW5cIDsKK+WxsSA8IHlhbWFcIDsKK+WxkSA8IGt1enVcIDsKK+ixhiA8IG1hbWVcIDsKK+eQtCA8IGtvdG9cIDsKK+WvviA8IHRzdWlcIDsKK+WvuiA8IHRlcmFcIDsKK+WvjCA8IHRvbWlcIDsKK+WvgiA8IHNhYmlcIDsKK+WuvyA8IHlhZG9cIDsKK+WuriA8IG1peWFcIDsKK+WupCA8IG11cm9cIDsKK+eOliA8IGt5dXVcIDsKK+eOiSA8IGRhbWFcIDsKK+WuiSA8IHlhc3VcIDsKK+WuiCA8IG1vcmlcIDsKK+WuhSA8IHRha3VcIDsKK+WtuCA8IGdha3VcIDsKK+WtqyA8IG1hZ29cIDsKK+eNqCA8IGRva3VcIDsKK+eNhCA8IGdva3VcIDsKK+eMqyA8IG5la29cIDsKK+isoSA8IHV0YWlcIDsKK+isjiA8IG5hem9cIDsKK+WrgSA8IHlvbWVcIDsKK+iqsCA8IGRhcmVcIDsKK+WpvyA8IG11a29cIDsKK+eJqSA8IG1vbm9cIDsKK+eJmyA8IHVzaGlcIDsKK+iplSA8IGh5b3VcIDsKK+WphiA8IGJhYmFcIDsKK+iosyA8IHdha2VcIDsKK+eIhiA8IGJha3VcIDsKK+WnqyA8IGhpbWVcIDsKK+WmmSA8IG15b3VcIDsKK+eGiiA8IGt1bWFcIDsKK+eFpCA8IHN1c3VcIDsKK+eEvCA8IHlha2lcIDsKK+WkqyA8IG90dG9cIDsKK+WkoiA8IHl1bWVcIDsKK+WknCA8IHlvcnVcIDsKK+WkliA8IGhva2FcIDsKK+ijviA8IHN1c29cIDsKK+WjsSA8IGljaGlcIDsKK+WjkyA8IGF0c3VcIDsKK+WjgSA8IGthYmVcIDsKK+eCuiA8IHRhbWVcIDsKK+eCrSA8IHN1bWlcIDsKK+iiliA8IHNvZGVcIDsKK+WikyA8IGhha2FcIDsKK+WhqSA8IHNoaW9cIDsKK+WhniA8IHNva3VcIDsKK+ihkyA8IHN1YmVcIDsKK+ihjCA8IGd5b3VcIDsKK+eAnSA8IHJla2lcIDsKK+WggCA8IGhvcmlcIDsKK+a/gSA8IGRha3VcIDsKK+a/gCA8IGdla2lcIDsKK+WeoyA8IGtha2lcIDsKK+WeiyA8IGthdGFcIDsKK+idiSA8IHNlbWlcIDsKK+WdgiA8IHNha2FcIDsKK+m8uyA8IGhhbmFcIDsKK+WckiA8IHNvbm9cIDsKK+WbvSA8IGt1bmlcIDsKK+m7tCA8IGthYmlcIDsKK+m7mSA8IG1va3VcIDsKK+m7kiA8IGt1cm9cIDsKK+m7jSA8IGtpYmlcIDsKK+ibhyA8IGhlYmlcIDsKK+a6uiA8IGRla2lcIDsKK+m6piA8IG11Z2lcIDsKK+iapCA8IG5vbWlcIDsKK+a6oiA8IGl0c3VcIDsKK+a6nSA8IG1pem9cIDsKK+iZjiA8IHRvcmFcIDsKK+m3uSA8IHRha2FcIDsKK+iXpCA8IGZ1amlcIDsKK+iXgSA8IHdhcmFcIDsKK+WWiSA8IG5vZG9cIDsKK+a1tCA8IHlva3VcIDsKK+a1nCA8IGhhbWFcIDsKK+WUryA8IHRhZGFcIDsKK+a0niA8IGhvcmFcIDsKK+a0myA8IHJha3VcIDsKK+WUliA8IG9zaGlcIDsKK+iTriA8IGhhc3VcIDsKK+mzqSA8IGhhdG9cIDsKK+mzpSA8IHRvcmlcIDsKK+azpSA8IGRvcm9cIDsKK+azoiA8IG5hbWlcIDsKK+iTiyA8IGZ1dGFcIDsKK+ayvCA8IG51bWFcIDsKK+iSuyA8IGpha3VcIDsKK+iSsiA8IGdhbWFcIDsKK+ayoiA8IHNhd2FcIDsKK+mxiCA8IHRhcmFcIDsKK+iQvSA8IG9jaGlcIDsKK+awtCA8IG1penVcIDsKK+awkSA8IHRhbWlcIDsKK+WPsyA8IG1pZ2lcIDsKK+WPpCA8IGZ1cnVcIDsKK+avjSA8IGhhaGFcIDsKK+iPiiA8IGtpa3VcIDsKK+WPiyA8IHRvbW9cIDsKK+WPiCA8IG1hdGFcIDsKK+auvyA8IGRvbm9cIDsKK+auuyA8IGthcmFcIDsKK+iOoiA8IHNheWFcIDsKK+WOnyA8IGhhcmFcIDsKK+iNiSA8IGt1c2FcIDsKK+WNhyA8IG1hc3VcIDsKK+mssSA8IHV0c3VcIDsKK+msmiA8IGhpZ2VcIDsKK+WMmSA8IHNhamlcIDsKK+WMlyA8IGhva3VcIDsKK+iMjiA8IGt1a2lcIDsKK+iMhSA8IGtheWFcIDsKK+WMgiA8IG5pb3VcIDsKK+mrtyA8IG1hZ2VcIDsKK+mrqiA8IGthbWlcIDsKK+iLlCA8IGtva2VcIDsKK+mqqCA8IGhvbmVcIDsKK+WKqSA8IHN1a2VcIDsKK+WJsiA8IHdhcmlcIDsKK+apnyA8IGhhdGFcIDsKK+WJiiA8IHNha3VcIDsKK+iIuSA8IGZ1bmVcIDsKK+WIuiA8IHRvZ2VcIDsKK+aoqiA8IHlva29cIDsKK+WIiCA8IGthcmlcIDsKK+aohSA8IG1vbWlcIDsKK+mnkiA8IGtvbWFcIDsKK+iHjSA8IGhlc29cIDsKK+WGrCA8IGZ1eXVcIDsKK+iGnSA8IGhpemFcIDsKK+iGnCA8IG1ha3VcIDsKK+mmliA8IGt1YmlcIDsKK+WGhiA8IG1hcnVcIDsKK+WGhSA8IHVjaGlcIDsKK+WFsSA8IGRvbW9cIDsKK+alrSA8IHdhemFcIDsKK+WFrSA8IHJva3VcIDsKK+WFpSA8IG55dXVcIDsKK+WFgyA8IG1vdG9cIDsKK+WEmCA8IG1hbWFcIDsKK+iEhyA8IHdha2lcIDsKK+iEgiA8IHlhbmlcIDsKK+iDuCA8IG11bmVcIDsKK+ajmiA8IHRhbmFcIDsKK+iCnSA8IGtpbW9cIDsKK+iCmCA8IGhpamlcIDsKK+WCmCA8IGthc2FcIDsKK+iCjCA8IGhhZGFcIDsKK+iCiSA8IG5pa3VcIDsKK+aigyA8IHRla29cIDsKK+WBvSA8IG5pc2VcIDsKK+ahkCA8IGtpcmlcIDsKK+ahgyA8IG1vbW9cIDsKK+ahgSA8IGtldGFcIDsKK+iAsyA8IG1pbWlcIDsKK+mgrCA8IGhvaG9cIDsKK+aglyA8IGt1cmlcIDsKK+mggyA8IGdvcm9cIDsKK+afmiA8IHl1enVcIDsKK+S+oSA8IGF0YWlcIDsKK+adliA8IHRzdWVcIDsKK+adkSA8IG11cmFcIDsKK+adjyA8IGFuenVcIDsKK+adiSA8IHN1Z2lcIDsKK+S8vSA8IHRvZ2lcIDsKK+acrSA8IGZ1ZGFcIDsKK+mbsiA8IGt1bW9cIDsKK+S7siA8IG5ha2FcIDsKK+mbqiA8IHl1a2lcIDsKK+mbjCA8IG1lc3VcIDsKK+S6uiA8IGhpdG9cIDsKK+mamSA8IHN1a2lcIDsKK+aahyA8IGhpbWFcIDsKK+S5iyA8IGtvcmVcIDsKK+aZgiA8IHRva2lcIDsKK+aYvCA8IGhpcnVcIDsKK+e4piA8IHRhdGVcIDsKK+aYpSA8IGhhcnVcIDsKK+S4iCA8IGRha2VcIDsKK+e4hCA8IG5hd2FcIDsKK+mXhyA8IHlhbWlcIDsKK+aXhSA8IHRhYmlcIDsKK+e2vyA8IHdhdGFcIDsKK+e1uSA8IGtpbnVcIDsKK+e1hCA8IGt1bWlcIDsKK+e0kCA8IGhpbW9cIDsKK+e0hSA8IGJlbmlcIDsKK+eypSA8IGtheXVcIDsKK+eyiSA8IGtvbmFcIDsKK+exsyA8IGtvbWVcIDsKK+exoCA8IGthZ29cIDsKK+mQmCA8IGthbmVcIDsKK+aPuiA8IHl1cmlcIDsKK+aPjyA8IGJ5b3VcIDsKK+eusSA8IGhha29cIDsKK+euoSA8IGt1ZGFcIDsKK+mNtSA8IGthZ2lcIDsKK+mNiyA8IG5hYmVcIDsKK+etiyA8IHN1amlcIDsKK+etiSA8IG5hZG9cIDsKK+etiCA8IGhhenVcIDsKK+ethiA8IGZ1ZGVcIDsKK+esuSA8IHNhc2FcIDsKK+aMhyA8IHl1YmlcIDsKK+eruSA8IHRha2VcIDsKK+eqkyA8IG1hZG9cIDsKK+mKkSA8IHp1a3VcIDsKK+epuiA8IHNvcmFcIDsKK+aJhyA8IG91Z2lcIDsKK+aIvyA8IGZ1c2FcIDsKK+mItCA8IHN1enVcIDsKK+eoriA8IHRhbmVcIDsKK+aIkSA8IHdhcmVcIDsKK+eojSA8IHlheWFcIDsKK+eoiyA8IGhvZG9cIDsKK+mHnSA8IGhhcmlcIDsKK+mHnCA8IGthbWFcIDsKK+mHmCA8IGt1Z2lcIDsKK+emvyA8IGhhZ2VcIDsKK+aGqSA8IGlrb2lcIDsKK+mFkiA8IHNha2VcIDsKK+aFiyA8IHphbWFcIDsKK+aDkSA8IHdha3VcIDsKK+aCqiA8IHdhcnVcIDsKK+eipyA8IGhla2lcIDsKK+aBpSA8IGhhamlcIDsKK+mAmiA8IHRzdXVcIDsKK+eggiA8IHN1bmFcIDsKK+W/nOaPtCA8IG91ZW5cIDsKK+WPpOWZqCA8IGtva2lcIDsKK+WHjembqCA8IHRvdXVcIDsKK+W+kuatqSA8IHRvaG9cIDsKK+WPr+WQpiA8IGthaGlcIDsKK+W+kOatqSA8IGpvaG9cIDsKK+W6h+ittyA8IGhpZ29cIDsKK+mHjuWWtiA8IHlhZWlcIDsKK+azleS8miA8IGhvdWVcIDsKK+WQjOS9jSA8IGRvdWlcIDsKK+WNseaHvCA8IGtpZ3VcIDsKK+WPpeWPpSA8IGt1a3VcIDsKK+WPo+WPlyA8IGt1anVcIDsKK+ayu+WFtyA8IGppZ3VcIDsKK+WGt+mbqCA8IHJlaXVcIDsKK+W9k+eCuiA8IHRvdWlcIDsKK+WPs+WFmiA8IHV0b3VcIDsKK+mBuueyviA8IGlzZWlcIDsKK+mHjuWNkSA8IHlhaGlcIDsKK+WPs+WCviA8IHVrZWlcIDsKK+WMu+abuCA8IGlzaG9cIDsKK+mBleiDjCA8IGloYWlcIDsKK+aAqOWXnyA8IGVuc2FcIDsKK+m4muWTpSA8IGlua29cIDsKK+egtOavgCA8IGhha2lcIDsKK+WPjeWQkCA8IGhlZG9cIDsKK+WPjeWPpCA8IGhvZ29cIDsKK+WPpOWEgCA8IGtvZ2lcIDsKK+WNsOW6piA8IGluZG9cIDsKK+mBuueovyA8IGlrb3VcIDsKK+ebuOmBlSA8IHNvdWlcIDsKK+W6p+iHpSA8IHphZ2FcIDsKK+W4sOmAlCA8IGtpdG9cIDsKK+WGhumhsSA8IGVucm9cIDsKK+ejgeWgtCA8IGppYmFcIDsKK+WPpOS6iyA8IGtvamlcIDsKK+awuOWvvyA8IGVpanVcIDsKK+W+gOaZgiA8IG91amlcIDsKK+ejgeWcnyA8IGppZG9cIDsKK+m0ieeJhyA8IGFoZW5cIDsKK+WNsOWtlyA8IGluamlcIDsKK+mBleeulyA8IGlzYW5cIDsKK+WPmeS6iyA8IGpvamlcIDsKK+ejgeWZqCA8IGppa2lcIDsKK+W+ruW+riA8IGJpYmlcIDsKK+W4sOi3ryA8IGtpcm9cIDsKK+W+oeaEjyA8IGd5b2lcIDsKK+eggua0siA8IHNhc3VcIDsKK+WNiOW+jCA8IGdvZ29cIDsKK+avgOajhCA8IGtpa2lcIDsKK+mBoOelliA8IGVuc29cIDsKK+W+jOaJiyA8IGdvdGVcIDsKK+W5suiRiSA8IGhpYmFcIDsKK+W8leeBqyA8IGlua2FcIDsKK+W+oeW9sSA8IGdvZWlcIDsKK+aouemZsCA8IGp1aW5cIDsKK+iLsemfsyA8IGVpb25cIDsKK+axmuWQjSA8IG9tZWlcIDsKK+ejgeWMuiA8IGppa3VcIDsKK+mCqua3qyA8IGphaW5cIDsKK+i/guiogCA8IHVnZW5cIDsKK+ejgeWMliA8IGppa2FcIDsKK+WMu+W4qyA8IGlzaGlcIDsKK+W9vOaIkSA8IGhpZ2FcIDsKK+WNseWdkCA8IGtpemFcIDsKK+apn+mBiyA8IGtpdW5cIDsKK+WKqea8lCA8IGpvZW5cIDsKK+mCquawlyA8IGpha2lcIDsKK+W8peasoSA8IHlhamlcIDsKK+W+gOW+gCA8IG91b3VcIDsKK+WIgOiHqiA8IHRvamlcIDsKK+W+oeWtkCA8IG1pa29cIDsKK+WMu+WumCA8IGlrYW5cIDsKK+WKoOa4qSA8IGthb25cIDsKK+mBjueWjiA8IGthc29cIDsKK+W/nOWLnyA8IG91Ym9cIDsKK+mBuua8jyA8IGlyb3VcIDsKK+W+jOWutiA8IGdva2VcIDsKK+WMu+WkpyA8IGlkYWlcIDsKK+autOaJkyA8IG91ZGFcIDsKK+atqeatpiA8IGhvYnVcIDsKK+mBleeKryA8IGloYW5cIDsKK+WGhuiyqCA8IGVua2FcIDsKK+awl+WRsyA8IGdpbWlcIDsKK+awl+WQiCA8IGtpYWlcIDsKK+W4g+ihjSA8IGZ1ZW5cIDsKK+mtlOmthSA8IG1hbWlcIDsKK+W+jOWgtCA8IGdvYmFcIDsKK+egtOWutiA8IGJha2FcIDsKK+awl+WMliA8IGtpa2FcIDsKK+W+geWktyA8IHNlaWlcIDsKK+awtOS9jSA8IHN1aWlcIDsKK+WGhuimjyA8IGVua2lcIDsKK+ebiOiZpyA8IGVpa2lcIDsKK+W+oeWQjSA8IG1pbmFcIDsKK+mDqOWxiyA8IGhleWFcIDsKK+iLseiyqCA8IGVpa2FcIDsKK+mBjua4oSA8IGthdG9cIDsKK+mBleazlSA8IGlob3VcIDsKK+aut+WvjCA8IGlucHVcIDsKK+iMo+iTmSA8IGdvemFcIDsKK+iLseiqniA8IGVpZ29cIDsKK+mBi+aysyA8IHVuZ2FcIDsKK+efpeaBtSA8IGNoaWVcIDsKK+mBi+awlyA8IHVua2lcIDsKK+i8uOi0jyA8IHl1ZWlcIDsKK+WLouWtkCA8IHNla29cIDsKK+WMheWbsiA8IGhvdWlcIDsKK+W+gOWPpCA8IG91a29cIDsKK+WKoOaMgSA8IGthamlcIDsKK+W8p+W6piA8IGtvZG9cIDsKK+mDveWWtiA8IHRvZWlcIDsKK+avlOWWqSA8IGhpeXVcIDsKK+mBuuaWhyA8IGlidW5cIDsKK+mAoueArCA8IG91c2VcIDsKK+WHuuebriA8IGRlbWVcIDsKK+atpuaKgCA8IGJ1Z2lcIDsKK+W6p+a0siA8IHphc3VcIDsKK+W+oeS7oyA8IG1peW9cIDsKK+WMu+S8miA8IGlrYWlcIDsKK+W+l+S9kyA8IGV0YWlcIDsKK+W9seWNsCA8IGVpaW5cIDsKK+WGhuiIniA8IGVuYnVcIDsKK+m1nOWMoCA8IHVqb3VcIDsKK+avjeWNsCA8IGJvaW5cIDsKK+mAuOapnyA8IGlra2lcIDsKK+mDqOWToSA8IGJ1aW5cIDsKK+earuiGmiA8IGhpZnVcIDsKK+WIt+avmyA8IGhha2VcIDsKK+atpuW6qyA8IGJ1a29cIDsKK+apn+e4gSA8IGtpZW5cIDsKK+egguWcnyA8IHNhZG9cIDsKK+mBuuaBqCA8IGlrb25cIDsKK+iKseitnCA8IGthZnVcIDsKK+avlOS+oSA8IGhpa2FcIDsKK+atpuWutiA8IGJ1a2VcIDsKK+aoquiHpSA8IG91Z2FcIDsKK+mssemHkSA8IHVrb25cIDsKK+avlOS4mCA8IGJpa3VcIDsKK+mDveS4iyA8IHRva2FcIDsKK+efouWgtCA8IHlhYmFcIDsKK+mBleaGsiA8IGlrZW5cIDsKK+W7tuWvvyA8IGVuanVcIDsKK+eZvuiIjCA8IG1venVcIDsKK+atpuWkqyA8IGJ1ZnVcIDsKK+egguWIqSA8IGphcmlcIDsKK+mDqOS4iyA8IGJ1a2FcIDsKK+eeveWlsyA8IGdvemVcIDsKK+WHuuatryA8IGRlYmFcIDsKK+mBjuW6piA8IGthZG9cIDsKK+atpuWZqCA8IGJ1a2lcIDsKK+mBi+W6pyA8IHVuemFcIDsKK+asoeW6jyA8IGppam9cIDsKK+aooeeziiA8IG1va29cIDsKK+iKseiKvSA8IGthZ2FcIDsKK+W5s+aYkyA8IGhlaWlcIDsKK+atqeWQiCA8IGJ1YWlcIDsKK+eWjumfsyA8IHNvaW5cIDsKK+aoueeariA8IGp1aGlcIDsKK+W6nOW6qyA8IGZ1a29cIDsKK+mBuuWTgSA8IGloaW5cIDsKK+eWkembsiA8IGdpdW5cIDsKK+mBuuWRvSA8IGltZWlcIDsKK+atpOWHpiA8IGtva29cIDsKK+atpuWFtyA8IGJ1Z3VcIDsKK+WHoOahiCA8IGtpYW5cIDsKK+atpuWCmSA8IGJ1YmlcIDsKK+i/veaJiyA8IG90dGVcIDsKK+eVsOmiqCA8IGlmdXVcIDsKK+eVsOmhniA8IGlydWlcIDsKK+WIqeW3sSA8IHJpa29cIDsKK+atpuS6iyA8IGJ1amlcIDsKK+iNiuajmCA8IGJhcmFcIDsKK+mtlOe+hSA8IG1hcmFcIDsKK+mBuuS9kyA8IGl0YWlcIDsKK+mBuuS8nSA8IGlkZW5cIDsKK+mBjuWOuyA8IGtha29cIDsKK+asp+WMliA8IG91a2FcIDsKK+eWjumBoCA8IHNvZW5cIDsKK+eWkei+niA8IGdpamlcIDsKK+W3pua0viA8IHNhaGFcIDsKK+iJtue+jiA8IGVuYmlcIDsKK+mpoummrCA8IHJvYmFcIDsKK+WykOmYnCA8IGdpZnVcIDsKK+W6p+WToSA8IHphaW5cIDsKK+awuOOAhSA8IGVpZWlcIDsKK+ecn+W4hiA8IG1haG9cIDsKK+ebuOaJiyA8IGFpdGVcIDsKK+W6puWQiCA8IGRvYWlcIDsKK+mBleS+iyA8IGlyZWlcIDsKK+WIqeWZqCA8IHJpa2lcIDsKK+iJsue1tSA8IGlyb2VcIDsKK+W7g+S9jSA8IGhhaWlcIDsKK+W4g+aWvSA8IGZ1c2VcIDsKK+iHquiyuyA8IGppaGlcIDsKK+iHquiyoCA8IGppZnVcIDsKK+WFpeaxnyA8IGlyaWVcIDsKK+movummrCA8IHJhYmFcIDsKK+iKseeOiyA8IGthb3VcIDsKK+aji+mZoiA8IGtpaW5cIDsKK+W4t+W5hCA8IGlha3VcIDsKK+iLseatpiA8IGVpYnVcIDsKK+eVsOi2oyA8IGlzaHVcIDsKK+WFt+ahiCA8IGd1YW5cIDsKK+iHquihmyA8IGppZWlcIDsKK+eVsOirliA8IGlyb25cIDsKK+ebuOWtkCA8IGFpa29cIDsKK+W6nOS4iyA8IGZ1a2FcIDsKK+mtlOeOiyA8IG1hb3VcIDsKK+WIqeS7liA8IHJpdGFcIDsKK+mojummrCA8IGtpYmFcIDsKK+apn+W9sSA8IGtpZWlcIDsKK+eZuuadoSA8IGJhbmVcIDsKK+WGheaEjyA8IG5haWlcIDsKK+apn+W6jyA8IGtpam9cIDsKK+W4neWogSA8IHRlaWlcIDsKK+i/guWbniA8IHVrYWlcIDsKK+mAgOS9jSA8IHRhaWlcIDsKK+aihembqCA8IGJhaXVcIDsKK+aooeaTrCA8IG1vZ2lcIDsKK+WGhuW8pyA8IGVua29cIDsKK+eXsueXuiA8IG1haGlcIDsKK+ebruWcsCA8IG1lamlcIDsKK+WGhuW6pyA8IGVuemFcIDsKK+iKseaouSA8IGthanVcIDsKK+eUu+itnCA8IGdhZnVcIDsKK+apn+WunCA8IGtpZ2lcIDsKK+WwvumDqCA8IGJpYnVcIDsKK+ebsuWUliA8IG1vdWFcIDsKK+S+nemhmCA8IGlnYW5cIDsKK+S+nemgvCA8IGlyYWlcIDsKK+eWkee+qSA8IGdpZ2lcIDsKK+ecn+S8vCA8IG1hbmVcIDsKK+aji+itnCA8IGtpZnVcIDsKK+WFkOaIryA8IGppZ2lcIDsKK+ecn+S4iiA8IG1hdWVcIDsKK+W4jOWcnyA8IGtpZG9cIDsKK+iHmeiEgiA8IGVuamlcIDsKK+WBg+iHpSA8IGVuZ2FcIDsKK+iDoem6uyA8IGdvbWFcIDsKK+agl+m8oCA8IHJpc3VcIDsKK+WvuumZoiA8IGppaW5cIDsKK+ebruWHpiA8IG1lZG9cIDsKK+mnhOmmrCA8IGRhYmFcIDsKK+WFrOWutiA8IGt1Z2VcIDsKK+msseawlyA8IHVra2lcIDsKK+i7veaYkyA8IGtlaWlcIDsKK+iLseWtlyA8IGVpamlcIDsKK+S/muiqniA8IHJpZ29cIDsKK+WxoOiYhyA8IHRvc29cIDsKK+mnhumZpCA8IGt1am9cIDsKK+WvnemWkyA8IG5lbWFcIDsKK+ebruS4iiA8IG1ldWVcIDsKK+i8quW3riA8IHdhc2FcIDsKK+S9memfuyA8IHlvaW5cIDsKK+eVsOerryA8IGl0YW5cIDsKK+W3peWQiCA8IGd1YWlcIDsKK+iKseW6jyA8IGtham9cIDsKK+Wxsee+iiA8IHlhZ2lcIDsKK+iLpuWcnyA8IGt1ZG9cIDsKK+Wvv+izgCA8IGp1Z2FcIDsKK+iHqueUuyA8IGppZ2FcIDsKK+efs+aWkemtmiA8IHVndWlcIDsKK+iLseWSjCA8IGVpd2FcIDsKK+eUu+e0oCA8IGdhc29cIDsKK+aiqOiKsSA8IHJpa2FcIDsKK+eUsee4gSA8IHl1ZW5cIDsKK+mtmuW6pyA8IHVvemFcIDsKK+WFt+WCmSA8IGd1YmlcIDsKK+i2iuiotCA8IGVzc29cIDsKK+WEkuWutiA8IGp1a2FcIDsKK+i1t+iotCA8IGtpc29cIDsKK+S/muiAsyA8IHJpamlcIDsKK+WutumBiyA8IGthdW5cIDsKK+eVsOeKtiA8IGlqb3VcIDsKK+almualmiA8IHNvc29cIDsKK+mlkemkkyA8IGtpZ2FcIDsKK+eah+S9jSA8IGtvdWlcIDsKK+Wutui3ryA8IGllamlcIDsKK+mtlOWlsyA8IG1ham9cIDsKK+mlgumjqSA8IHVkb25cIDsKK+Wtl+mfsyA8IGppb25cIDsKK+WvhOiqniA8IGtpZ29cIDsKK+iAs+m8uyA8IGppYmlcIDsKK+mkk+msvCA8IGdha2lcIDsKK+iDpOijlCA8IGluZWlcIDsKK+WEsuS9jSA8IGNob2lcIDsKK+iHquajhCA8IHlha2VcIDsKK+eQhumdniA8IHJpaGlcIDsKK+WEquS9jSA8IHl1dWlcIDsKK+aghOiqiSA8IGVpeW9cIDsKK+i8lOS9kCA8IGhvc2FcIDsKK+S8iumBlCA8IGRhdGVcIDsKK+eVsOanmCA8IGl5b3VcIDsKK+S9meiYiiA8IHlvdW5cIDsKK+WutuiaiiA8IGlla2FcIDsKK+WwvOeUqyA8IGppaG9cIDsKK+WBieadkCA8IGl6YWlcIDsKK+eVsOacrCA8IGlob25cIDsKK+akjeacqCA8IHVla2lcIDsKK+iDvOiDnSA8IHRha29cIDsKK+iIquWuhyA8IGtvdXVcIDsKK+eWkeaHvCA8IGdpa3VcIDsKK+eVsOaVsCA8IGlzdXVcIDsKK+eWkeaDpyA8IGdpZ3VcIDsKK+mtgeWBiSA8IGthaWlcIDsKK+S/neeEoSA8IGhvbXVcIDsKK+iHquaEmyA8IGppYWlcIDsKK+aghOiPryA8IGVpZ2FcIDsKK+WBieaMmSA8IGlreW9cIDsKK+WBieaJjSA8IGlzYWlcIDsKK+eQhui3ryA8IHJpcm9cIDsKK+izpuipoCA8IGZ1ZWlcIDsKK+eVj+aVrCA8IGlrZWlcIDsKK+S/nea4qSA8IGhvb25cIDsKK+eUu+aetiA8IGdha2FcIDsKK+S6jOmZoiA8IG5paW5cIDsKK+iHquW3sSA8IGppa29cIDsKK+ixqumbqCA8IGdvdXVcIDsKK+S7mOitsCA8IGZ1Z2lcIDsKK+S/neavjSA8IGhvYm9cIDsKK+WuieiHpSA8IGFuZ2FcIDsKK+S6nOmItCA8IGFyZWlcIDsKK+S7mOiomCA8IGZ1a2lcIDsKK+Wwj+eBqyA8IGJveWFcIDsKK+mnhOebriA8IGRhbWVcIDsKK+Wxi+aguSA8IHlhbmVcIDsKK+S+neeEtiA8IGl6ZW5cIDsKK+eVsOWtmCA8IGl6b25cIDsKK+S6jOmDqCA8IG5pYnVcIDsKK+miqOmbqCA8IGZ1dXVcIDsKK+alleWGhiA8IGRhZW5cIDsKK+WBveWNsCA8IGdpaW5cIDsKK+eVsOWkiSA8IGloZW5cIDsKK+eVmeWuiCA8IHJ1c3VcIDsKK+S9jeebuCA8IGlzb3VcIDsKK+S4gOm8kyA8IGlra29cIDsKK+eUqOaEjyA8IHlvdWlcIDsKK+iAs+iqniA8IGppZ29cIDsKK+eVsOWfnyA8IGlpa2lcIDsKK+S/neaMgSA8IGhvamlcIDsKK+iIiOS6nCA8IGtvdWFcIDsKK+eTpuaWryA8IGdhc3VcIDsKK+iHquWIqSA8IGppcmlcIDsKK+S9meeFmSA8IHlvZW5cIDsKK+S4i+mnhCA8IGdldGFcIDsKK+S4i+mmrCA8IGdlYmFcIDsKK+WBh+WQjSA8IGthbmFcIDsKK+eVsOWQjCA8IGlkb3VcIDsKK+iAtuiYhyA8IHlhc29cIDsKK+eRoOeSgyA8IHJ1cmlcIDsKK+WBieWLsiA8IGlrdW5cIDsKK+S5hemBoCA8IGt1b25cIDsKK+iHquS9mSA8IGppeW9cIDsKK+S4jemboiA8IGZ1cmlcIDsKK+iHquS7liA8IGppdGFcIDsKK+e+jumfsyA8IGJpb25cIDsKK+WtkOetiSA8IGtvcmFcIDsKK+S4i+mZoiA8IGthaW5cIDsKK+S4jemWkyA8IGJ1bWFcIDsKK+eUu+WboCA8IGdhaW5cIDsKK+S9meazoiA8IHlvaGFcIDsKK+eVj+WPiyA8IGl5dXVcIDsKK+Wwj+aJiyA8IGtvdGVcIDsKK+i2o+aEjyA8IHNodWlcIDsKK+WBieS6uiA8IGlqaW5cIDsKK+S/neWuiSA8IGhvYW5cIDsKK+S9meaugyA8IHlvb3VcIDsKK+i3r+WcsCA8IHJvamlcIDsKK+eQteeQtiA8IGJpd2FcIDsKK+aarumbsiA8IGJvdW5cIDsKK+iDg+a2siA8IGlla2lcIDsKK+S6nOiBliA8IGFzZWlcIDsKK+S4i+mHjiA8IGdleWFcIDsKK+S4iumHjiA8IHVlbm9cIDsKK+iCjOeQhiA8IGtpbWVcIDsKK+mmtOafkyA8IG5hamlcIDsKK+S6nOe+pCA8IGFndW5cIDsKK+S4lui+niA8IHNlamlcIDsKK+S4jemBiyA8IGZ1dW5cIDsKK+S9meaghCA8IHlvZWlcIDsKK+aiqOWckiA8IHJpZW5cIDsKK+S+m+W+oSA8IGd1Z29cIDsKK+i3r+WKoCA8IHJ1a2FcIDsKK+S6nOe2sSA8IGFrb3VcIDsKK+S9meaahyA8IHlva2FcIDsKK+S4gOmBjiA8IGlra2FcIDsKK+Wwj+WxiyA8IGtveWFcIDsKK+S4gOmAlCA8IGl0dG9cIDsKK+e+jui+niA8IGJpamlcIDsKK+WuieawlyA8IGFua2lcIDsKK+aghOaeryA8IGVpa29cIDsKK+Wvk+aEjyA8IGd1dWlcIDsKK+S4luipsSA8IHNld2FcIDsKK+S6nOeoriA8IGFzaHVcIDsKK+aZtOmbqCA8IHNlaXVcIDsKK+Wwj+WknCA8IHNheW9cIDsKK+mjm+ewtyA8IGhpZW5cIDsKK+mfs+mgrSA8IG9uZG9cIDsKK+S9meaKgCA8IHlvZ2lcIDsKK+S4jeiqniA8IGZ1Z29cIDsKK+S9meaJgCA8IHlvc29cIDsKK+eOi+iAhSA8IG91amFcIDsKK+aal+mDqCA8IGFuYnVcIDsKK+S+m+WliSA8IGd1YnVcIDsKK+Wus+aEjyA8IGdhaWlcIDsKK+S6iOekuiA8IHlvamlcIDsKK+WuieaYkyA8IGFuJydpXCA7CivkuIvooYYgPCBnZXN1XCA7CivkuIrooaMgPCBqb3VpXCA7CivlrZfmr40gPCBqaWJvXCA7Civog4zmiLggPCBzZWRvXCA7Civlr4TluK0gPCB5b3NlXCA7CivkvbPlrrQgPCBrYWVuXCA7CivniqDpo5sgPCBnaWhpXCA7CivkuI3omZ4gPCBmdWd1XCA7CivohZDlhJIgPCBmdWp1XCA7CivnvbXoqYggPCBiYXJpXCA7Civku5bmtL4gPCB0YWhhXCA7CivlronmiZMgPCBhbmRhXCA7CivmmpforZwgPCBhbnB1XCA7CivmmK/pnZ4gPCB6ZWhpXCA7CivlrrblrrYgPCBpZWllXCA7CivmnrjmnZ4gPCBrdWtvXCA7CivnjL/oh4IgPCBlbnBpXCA7CivkupHniL4gPCB1bmppXCA7Civkupzngq0gPCBhdGFuXCA7Civku6XmnbEgPCBpdG91XCA7CivlronluqcgPCBhbnphXCA7Civml5fpvJMgPCBraWtvXCA7Civpno3ppqwgPCBhbmJhXCA7CivkuIDoh4IgPCBpcHBpXCA7CivmnKjnk5wgPCBib2tlXCA7Civogqnlt74gPCBoaXJlXCA7CivmmYLpgYsgPCBqaXVuXCA7Civpn7voqp4gPCBpbmdvXCA7Civpn7PorZwgPCBvbnB1XCA7CivkuIrntbUgPCB1d2FlXCA7CivlraTlvbEgPCBrb2VpXCA7CivmoYjkvqEgPCBhbmthXCA7CivnjJvogIUgPCBtb3NhXCA7Civnvr3nm64gPCBoYW1lXCA7CivorbforKggPCBnb211XCA7CivkuozmrKEgPCBuaWppXCA7CivlpoLpnLIgPCBqb3JvXCA7CivkuI3nqY8gPCBmdW9uXCA7CivlronloLUgPCBhbmRvXCA7CivppqzlhbcgPCBiYWd1XCA7Civku5bmhJsgPCB0YWFpXCA7Civlrrblh7ogPCBpZWRlXCA7Civlronlm7ogPCBhbmtvXCA7CivlrrblhbcgPCBrYWd1XCA7CivkuI3no6ggPCBmdW1hXCA7Civml6XplpMgPCBoaWFpXCA7CivkvI7lpbMgPCBnaWpvXCA7Civlr4TkuI4gPCBraXlvXCA7CivpnZLpnZIgPCBhb2FvXCA7CivkuozmnJ8gPCBuaWtpXCA7CivlronlkKYgPCBhbnBpXCA7Civog6HkubEgPCB1cm9uXCA7CivkuojmnJ8gPCB5b2tpXCA7CivnvqnnkIYgPCBnaXJpXCA7CivorY/oqrkgPCBraWhpXCA7CivkuIvnl6IgPCBnZXJpXCA7Civos63loLQgPCB0b2JhXCA7Civos4DlrrQgPCBnYWVuXCA7CivlroflhoUgPCB1ZGFpXCA7Civku6XlpJYgPCBpZ2FpXCA7CivlpKLprZQgPCBtdW1hXCA7CivmnaXmhI8gPCByYWlpXCA7CivmmpfnpLogPCBhbmppXCA7Civlronkv50gPCBhbnBvXCA7CivpnZ7pgYsgPCBoaXVuXCA7Civogb7llJYgPCByb3VhXCA7Civnvr3mr5sgPCB1bW91XCA7Civpn7PntKAgPCBvbnNvXCA7CivotIjkvY0gPCB6b3VpXCA7Civku5jlm7MgPCBmdXp1XCA7CivkuojlvowgPCB5b2dvXCA7CivkuozluqYgPCBuaWRvXCA7CivnvqnmsJcgPCBnaWtpXCA7Civnvqnmr40gPCBnaWJvXCA7Civoqp7pn7MgPCBnb29uXCA7Civku6XljZcgPCBpbmFuXCA7CivlpJzpmbAgPCB5YWluXCA7Civku5jlkowgPCBmdXdhXCA7CivnjovmiYsgPCBvdXRlXCA7Civnvr3moLkgPCBoYW5lXCA7CivpnZ7orbAgPCBoaWdpXCA7Civku6XlhoUgPCBpbmFpXCA7CivkuIDmtL4gPCBpcHBhXCA7CivkuInmr5sgPCBtaWtlXCA7Civpm7fpm6ggPCByYWl1XCA7Civpm5HprZogPCBqYWtvXCA7CivorbfnrKYgPCBnb2Z1XCA7Civpm7LpnKcgPCB1bm11XCA7Civos6bkuI4gPCBmdXlvXCA7CivlpKfph44gPCBvb25vXCA7CivkuIDmrakgPCBpcHBvXCA7Civmlo7pg6ggPCBpbmJlXCA7Civku6PkvY0gPCBkYWlpXCA7CivnjovluqcgPCBvdXphXCA7Civku6Pku6MgPCB5b3lvXCA7Civku5bkuosgPCB0YWppXCA7Civni5Lni5IgPCBoaWhpXCA7Civni5Dni7ggPCBrb3JpXCA7CivpnLLoqp4gPCByb2dvXCA7CivlpKfot68gPCBvb2ppXCA7CivnjovlrrYgPCBvdWtlXCA7Civnvqnmj7QgPCBnaWVuXCA7CivnjovlpoMgPCBvdWhpXCA7CivnjovlpbMgPCBvdWpvXCA7CivpnZLokYkgPCBhb2JhXCA7CivpnZLoj5wgPCBhb25hXCA7CivkupLliqkgPCBnb2pvXCA7CivkupTliIYgPCBnb2J1XCA7Civkuovli5kgPCBqaW11XCA7CivkuIvmiYsgPCBoZXRhXCA7CivkuIvmiLggPCBnZWtvXCA7CivmnbHkup4gPCB0b3VhXCA7CivmnKjlnLAgPCBraWppXCA7CivnjovlnJ8gPCBvdWRvXCA7Civnvo7mioAgPCBiaWdpXCA7CivoqqToqJggPCBnb2tpXCA7Civpn7Pms6IgPCBvbnBhXCA7Civpn7vmr40gPCBpbmJvXCA7CivkuojlgpkgPCB5b2JpXCA7CivkuozkvqEgPCBuaWthXCA7Civmlr3ogqUgPCBzZWhpXCA7CivkuozkvZAgPCBuaXNhXCA7Civml6nnqLIgPCB3YXNlXCA7CivnhZnpnKcgPCBlbm11XCA7CivnhZnpm6ggPCBlbicndVwgOwor6aKo5ZGCIDwgZnVyb1wgOwor5Lm+5L2NIDwga2VuaVwgOwor5pOs6Z+zIDwgZ2lvblwgOwor57iB6LW3IDwgZW5naVwgOwor5Lmd5YiGIDwga3VidVwgOwor5LiN5a6JIDwgZnVhblwgOwor54i256WWIDwgZnVzb1wgOwor5LiA5a62IDwgaWtrZVwgOwor6Zmw6ZicIDwgaW5mdVwgOwor5pqX5oSaIDwgYW5ndVwgOwor5LiO5aSqIDwgeW90YVwgOwor5LiL5aWzIDwgZ2Vqb1wgOwor54Sh6aeEIDwgbXVkYVwgOwor57iB6KqeIDwgZW5nb1wgOwor6ZuF6KqeIDwgZ2Fnb1wgOwor542j5Yy7IDwganV1aVwgOwor576O5aerIDwgYmlraVwgOwor5amm5aWzIDwgZnVqb1wgOwor6aKo5L2NIDwgZnV1aVwgOwor576O5aWzIDwgYmlqb1wgOwor6Z2S56ClIDwgYW90b1wgOwor54Sh6Z+zIDwgbXVvblwgOwor6K2w5qGIIDwgZ2lhblwgOwor5LiN5ZuzIDwgZnV0b1wgOwor6ZqY6LevIDwgYWlyb1wgOwor54yb5aiBIDwgbW91aVwgOwor5aSa576pIDwgdGFnaVwgOwor5pq05aiBIDwgYm91aVwgOwor6Kqe576pIDwgZ29naVwgOwor6Zmw6YOoIDwgaW5idVwgOwor5aWz546LIDwgam9vdVwgOwor6Z2e55CGIDwgaGlyaVwgOwor6Zuy6ISCIDwgZnVrZVwgOwor576p5YuZIDwgZ2ltdVwgOwor6Zui6IumIDwgcmlrdVwgOwor6Z2S55SwIDwgYW90YVwgOwor5LiN5ZGzIDwgZnVtaVwgOwor5LiJ5ZGzIDwgc2FtaVwgOwor5LiL5Y+lIDwgZ2VrdVwgOwor57i357i3IDwgcnVydVwgOwor5aOB6J2oIDwgZGFuaVwgOwor576O5ZGzIDwgYmltaVwgOwor5LiL5Y2RIDwgZ2ViaVwgOwor6K235oyBIDwgZ29qaVwgOwor5LiA5Y+lIDwgaWtrdVwgOwor54Sh6YmbIDwgbXVlblwgOwor576O5YyWIDwgYmlrYVwgOwor5LiN5YKZIDwgZnViaVwgOwor54qg5omTIDwgZ2lkYVwgOwor5aSW56eRIDwgZ2VrYVwgOwor5aSn55uuIDwgb29tZVwgOwor57iB6ICFIDwgZW5qYVwgOwor5pel5q2pIDwgaGlidVwgOwor6Z+z5a2XIDwgb25qaVwgOwor6Zmi6K2wIDwgaW5naVwgOwor5LiA5L2QIDwgaXNzYVwgOwor54i25q+NIDwgZnVib1wgOwor6Z2e5q+AIDwgaGlraVwgOwor5pmC5beuIDwgamlzYVwgOwor57Sw6ZuoIDwgc2FpdVwgOwor6ZyK55WwIDwgcmVpaVwgOwor5Z+66Z+zIDwga2lvblwgOwor57ev57eaIDwgaXNlblwgOwor6Zqg6ICFIDwgaW5qYVwgOwor6Za76a2UIDwgZW5tYVwgOwor5pel5pelIDwgaGliaVwgOwor5pWw54+gIDwganV6dVwgOwor6Zmw6JCOIDwgaW4nJ2lcIDsKK+mfs+WQkCA8IG9udG9cIDsKK+mfs+WPiSA8IG9uc2FcIDsKK+mdkuacqCA8IGFva2lcIDsKK+WogeWOsyA8IGlnZW5cIDsKK+isneaEjyA8IHNoYWlcIDsKK+e2uue+hSA8IGtpcmFcIDsKK+WfuumDqCA8IGtpYnVcIDsKK+WmguaEjyA8IG55b2lcIDsKK+WlveaCqiA8IGtvdW9cIDsKK+mfs+S+oSA8IG9ua2FcIDsKK+aXouW+gCA8IGtpb3VcIDsKK+WlpeaEjyA8IG9rdWlcIDsKK+Wik+eikSA8IGJvaGlcIDsKK+mbqOawtCA8IHVzdWlcIDsKK+WknOaalyA8IHlhYW5cIDsKK+aZguS6iyA8IGppamlcIDsKK+WnlOS7uyA8IGluaW5cIDsKK+WltOWpoiA8IG51aGlcIDsKK+Wkp+aJiyA8IG9vZGVcIDsKK+mcsuW6pyA8IHJvemFcIDsKK+mZsOeUuyA8IGluZ2FcIDsKK+WjiuatuyA8IGVzaGlcIDsKK+eEoeeijSA8IG11Z2VcIDsKK+ipkOasuiA8IHNhZ2lcIDsKK+mdkuWcsCA8IGFvamlcIDsKK+mdkuWbsyA8IGFvenVcIDsKK+eyl+mHjiA8IHNveWFcIDsKK+Wkp+WxiyA8IG9veWFcIDsKK+iqpOW3riA8IGdvc2FcIDsKK+eEoeeQhiA8IG11cmlcIDsKK+WkouWvkCA8IG11YmlcIDsKK+WkmuWykCA8IHRha2lcIDsKK+eFmeazoiA8IGVucGFcIDsKK+aXp+S6iyA8IGt1amlcIDsKK+iqnuWwviA8IGdvYmlcIDsKK+mcsuWWtiA8IHJvZWlcIDsKK+mZsOawlyA8IGlua2lcIDsKK+WkmuWkmiA8IHRhdGFcIDsKK+Wcn+mWkyA8IGRvbWFcIDsKK+aOqui+niA8IHNvamlcIDsKK+eEoea0viA8IG11aGFcIDsKK+a/vumBjiA8IHJva2FcIDsKK+m9sSA8IHNla3VcIDsKK+mbqOWkqSA8IHV0ZW5cIDsKK+mbqOWjsCA8IHVzZWlcIDsKK+m8jyA8IGJla2lcIDsKK+eEoeavlCA8IG11aGlcIDsKK+imi+ebriA8IG1pbWVcIDsKK+m6vyA8IG1hcm9cIDsKK+mbqOWfnyA8IHVpa2lcIDsKK+WknOWNiiA8IHlvd2FcIDsKK+m2qiA8IGtla2lcIDsKK+eEoeapnyA8IG11a2lcIDsKK+m0qCA8IGthbW9cIDsKK+maoOW+riA8IGluYmlcIDsKK+ijnOiomCA8IGhva2lcIDsKK+maj+aEjyA8IHp1aWlcIDsKK+mxpyA8IGhhbW9cIDsKK+mxmiA8IGtpc3VcIDsKK+mwpCA8IGJ1cmlcIDsKK+mwmSA8IGhheWFcIDsKK+mwkCA8IHdhbmlcIDsKK+WknOWFtyA8IHlhZ3VcIDsKK+mvliA8IHNhYmFcIDsKK+mvlCA8IGJvcmFcIDsKK+mviiA8IGhhemVcIDsKK+mutCA8IGdvcmlcIDsKK+musiA8IG1hdGVcIDsKK+muqyA8IHNhbWVcIDsKK+mukiA8IGZ1bmFcIDsKK+mtuSA8IHRvZG9cIDsKK+mqrSA8IGhhZ2lcIDsKK+mqiSA8IGh5dXVcIDsKK+eyl+iPkyA8IHNva2FcIDsKK+eBq+eurSA8IGhpeWFcIDsKK+e1teacrCA8IGVob25cIDsKK+mfriA8IG5pcmFcIDsKK+meoCA8IG1hcmlcIDsKK+Wcn+iqniA8IGRvZ29cIDsKK+mdhCA8IG1veWFcIDsKK+WcsOihoyA8IGNoaWlcIDsKK+mbh+WToSA8IGtvaW5cIDsKK+mbheWRsyA8IGdhbWlcIDsKK+ewv+iomCA8IGJva2lcIDsKK+mWliA8IHl1cnVcIDsKK+eEoeaJiyA8IG11dGVcIDsKK+eEoeaIkSA8IG11Z2FcIDsKK+mRkyA8IHlhcmlcIDsKK+mRgyA8IHR5b3VcIDsKK+mYv+aIvyA8IGFob3VcIDsKK+mNrCA8IGt1d2FcIDsKK+ijnOiCpSA8IGhvaGlcIDsKK+mJviA8IGhva29cIDsKK+imj+aooSA8IGtpYm9cIDsKK+iiiOijnyA8IGtlc2FcIDsKK+mEmSA8IGhpbmFcIDsKK+Whl+W4gyA8IHRvZnVcIDsKK+mAqSA8IGthbXVcIDsKK+mApyA8IHNha29cIDsKK+i/jSA8IGNodW5cIDsKK+i9jCA8IHNvcmlcIDsKK+mZpOWknCA8IGpveWFcIDsKK+eBq+eCiSA8IGthcm9cIDsKK+izrSA8IGtha2VcIDsKK+aKvOmfuyA8IG91aW5cIDsKK+aTrOWPpCA8IGdpa29cIDsKK+ixmiA8IGJ1dGFcIDsKK+eEoeWeoiA8IG11a3VcIDsKK+eEoeWcsCA8IG11amlcIDsKK+ilniA8IGhpZGFcIDsKK+e0oOaJiyA8IHN1ZGVcIDsKK+iksSA8IGthaWVcIDsKK+ijmyA8IHlvdXVcIDsKK+iisCA8IGhvcm9cIDsKK+ifuSA8IGthbmlcIDsKK+eEoeWRsyA8IG11bWlcIDsKK+iaiyA8IGJ1eW9cIDsKK+iZmSA8IGh1a3VcIDsKK+iXqiA8IHlhYnVcIDsKK+iVqiA8IGthYnVcIDsKK+iUhyA8IGtpa2VcIDsKK+iTvCA8IHRhZGVcIDsKK+iTkSA8IG1pbm9cIDsKK+iRsSA8IG5lZ2lcIDsKK+mZouS4uyA8IGluanVcIDsKK+WgguWuhyA8IGRvdXVcIDsKK+mYv+WFhCA8IGFrZWlcIDsKK+iLhiA8IHN1c2FcIDsKK+iKuSA8IHNlcmlcIDsKK+eEoeS+oSA8IG11a2FcIDsKK+iKkiA8IG5vZ2lcIDsKK+WgtOWQiCA8IGJhYWlcIDsKK+e1teWDjyA8IGV6b3VcIDsKK+eEoeS6jCA8IG11bmlcIDsKK+iGgyA8IG90c3VcIDsKK+iEmyA8IHN1bmVcIDsKK+iho+e0iyA8IGVtb25cIDsKK+e0jeWxiyA8IG5heWFcIDsKK+imi+WgtCA8IG1pYmFcIDsKK+eskemhlCA8IGVnYW9cIDsKK+e9oCA8IHdhbmFcIDsKK+aPtuaPhCA8IHlheXVcIDsKK+e2myA8IGthc2VcIDsKK+eyl+actiA8IHNvZGFcIDsKK+ezoCA8IG51a2FcIDsKK+eziiA8IG5vcmlcIDsKK+aJi+mWkyA8IHRlbWFcIDsKK+Wbs+eUuyA8IHp1Z2FcIDsKK+eygiA8IGt1bWVcIDsKK+ewlyA8IHlhbmFcIDsKK+eujSA8IHRhZ2FcIDsKK+euhiA8IGhlcmFcIDsKK+esiiA8IHphcnVcIDsKK+eBq+WxiyA8IGhveWFcIDsKK+eArOaIuCA8IHNldG9cIDsKK+ieu+ibhCA8IGtlcmFcIDsKK+eYpCA8IGtvYnVcIDsKK+mWk+WkqyA8IG1hYnVcIDsKK+eUlSA8IG1pa2FcIDsKK+eyl+W4gyA8IHNvZnVcIDsKK+eRlSA8IGtpenVcIDsKK+eNtiA8IG55b3VcIDsKK+ibmem7vSA8IGFib3VcIDsKK+aOj+aRuCA8IHN1cmlcIDsKK+eHuCA8IGppeXVcIDsKK+ijuOWppiA8IHJhZnVcIDsKK+Wbs+ahiCA8IHp1YW5cIDsKK+Wcn+aJiyA8IGRvdGVcIDsKK+a7kyA8IGthc3VcIDsKK+a4qembhSA8IG9uZ2FcIDsKK+aPtOWKqSA8IGVuam9cIDsKK+m9n+m9rCA8IHNvZ29cIDsKK+apsyA8IG51ZGVcIDsKK+apsiA8IHp1c2FcIDsKK+Wbm+aWuSA8IHlvbW9cIDsKK+aovSA8IHRhcnVcIDsKK+aouiA8IGthYmFcIDsKK+alhSA8IGh5a3VcIDsKK+akqCA8IHRhZnVcIDsKK+akpSA8IG5hZ2lcIDsKK+aggiA8IHRvZ2FcIDsKK+adoyA8IHNvbWFcIDsKK+WbveW6nCA8IGtvZnVcIDsKK+aNu+WtkCA8IG5lamlcIDsKK+aJi+e+vSA8IHRlYmFcIDsKK+a3q+mbqCA8IGluJyd1XCA7Civoo5zliqkgPCBob2pvXCA7Civmua/okYkgPCB5dWJhXCA7CivlnJ/lmaggPCBkb2tpXCA7CivmjInmkakgPCBhbm1hXCA7CivmiaggPCBzYXRlXCA7Civmjojlj5cgPCBqdWp1XCA7CivmiZPnoLQgPCBkYWhhXCA7Civmi7/mjZUgPCBkYWhvXCA7CivlnJ/ljKogPCBkb2hpXCA7CivlvbYgPCBraWh1XCA7CivlvLYgPCBneWF1XCA7CivlvJcgPCBkb3J1XCA7CivlvJMgPCB5dW1pXCA7Civlu6cgPCBzaGF1XCA7CivluKQgPCBnZXlvXCA7CivluKIgPCBrYWh1XCA7Civlt6QgPCByZWh1XCA7Civltq8gPCBzaGl1XCA7CivltYAgPCBjaGl1XCA7CivlnKjkvY0gPCB6YWlpXCA7CivltKggPCBzZWh1XCA7Civls4UgPCBrdXJhXCA7Civmta7lobXlrZAgPCB1bmthXCA7CivlsbYgPCBuYXRhXCA7CivmhJvppqwgPCBhaWJhXCA7CivlrqggPCB0ZXdhXCA7CivmjojkuI4gPCBqdXlvXCA7Civlm5vlm7IgPCBzaGlpXCA7Civlm7rljJYgPCBrb2thXCA7CivmhJvpo7IgPCBhaWluXCA7CivlrLwgPCByaXdhXCA7Civlk4Dpn7MgPCBhaW9uXCA7CivlrLYgPCBrYWthXCA7CivlqoMgPCBqeXV1XCA7Civlm57lkJEgPCBla291XCA7CivmiK/nlLsgPCBnaWdhXCA7Civlob4gPCBqdWt1XCA7Civln5YgPCBnb21pXCA7CivmhbDorJ0gPCBpc2hhXCA7CivlnL4gPCBneXV1XCA7CivlmLggPCBzYXpvXCA7CivlmIEgPCBzYWh1XCA7Civll70gPCB1Z2FpXCA7CivllqIgPCB0ZWh1XCA7CivllaYgPCByYWh1XCA7Civlkozpn7MgPCB3YW9uXCA7CivlkrYgPCBrdXVpXCA7Civmirzlv40gPCBvc3N1XCA7Civnp7vou6IgPCBpdGVuXCA7CivpioXpkbwgPCBkb3JhXCA7CivliosgPCBzeW91XCA7Civlh7ggPCBkZWtvXCA7CivmhJvovJ0gPCBhaWtpXCA7Civmua/nha4gPCB5dW5pXCA7CivmgqrprLwgPCBha2tpXCA7Civkv4cgPCBreWF1XCA7CivkvqAgPCBreWFuXCA7CivkvZcgPCB3YWJpXCA7CivkuoAgPCBrYW1lXCA7CivkuZ8gPCBuYXJpXCA7CivmhJvorbcgPCBhaWdvXCA7Civlk4DoqbEgPCBhaXdhXCA7Civlk4DoqLQgPCBhaXNvXCA7CivlkYnpoIggPCBnb3N1XCA7Civnp5joqbEgPCBoaXdhXCA7Civmua/msJcgPCB5dWdlXCA7Civpu4TouqsgPCBraW1pXCA7CivlkozorbAgPCB3YWdpXCA7Civlkozoqp4gPCB3YWdvXCA7CivlkJDpnLIgPCB0b3JvXCA7CivmganpoacgPCBvbmtvXCA7CivmgbXpm6ggPCBrZWl1XCA7CivmtbfoiosgPCBrYWl1XCA7CivmtYTooaMgPCBqb3VlXCA7CivolY7puqYgPCBzb2JhXCA7CivpuJrptaEgPCBvdW11XCA7CivlkIjplpMgPCBhaW1hXCA7Civlj7PpnaIgPCB1bWVuXCA7CivpvLvnpZYgPCBiaXNvXCA7CivmgqrosqggPCBha2thXCA7CivmuKHmrKcgPCB0b291XCA7Civlj6Tpn7MgPCBrb29uXCA7CivlmJTlkJAgPCBvdXRvXCA7Civlkozoi7EgPCB3YWVpXCA7Civlj6Tpm4UgPCBrb2dhXCA7Civmu4vlkbMgPCBqaW1pXCA7CivllJbnhLYgPCBhemVuXCA7CivomIfoirMgPCBzdW91XCA7Civol43opLggPCBib3JvXCA7CivmgqrooaMgPCBha3VpXCA7Civmua/lsYsgPCB5dXlhXCA7CivllL7mo4QgPCBkYWtpXCA7Civlj7PovrogPCB1aGVuXCA7Civllpzlr78gPCBraWp1XCA7Civmua/lpbMgPCB5dW5hXCA7Civljq3pm6IgPCBvbnJpXCA7CivpvLvngo4gPCBiaWVuXCA7Civph47ovrogPCBub2JlXCA7CivmganoqrwgPCBvbmdpXCA7Civph47ot68gPCBub2ppXCA7CivlkarnrKYgPCBqdWZ1XCA7Civlj6Toqp4gPCBrb2dvXCA7CivllrbliKkgPCBlaXJpXCA7Civlv5zpnIAgPCBvdWp1XCA7CivmiJHliKkgPCBnYXJpXCA7Civnp7vmsJEgPCBpbWluXCA7CivlloflmJsgPCByYW1hXCA7Civmho7mgqogPCB6b3VvXCA7Civlj7PokYkgPCB1eW91XCA7Civlk4DmrYwgPCBhaWthXCA7Civlj5fomIogPCBqdXVuXCA7CivlvqHpoZQgPCBva2FvXCA7CivpubXnsL8gPCByb2JvXCA7CivljYHpm6ggPCBqdXV1XCA7Civlj7PohLMgPCB1bm91XCA7CivmuKnlkowgPCBvbndhXCA7CivmsLjpgaAgPCBlaWVuXCA7Civph47oia8gPCBub3JhXCA7Civmtbfmnb4gPCBtaXJ1XCA7CivlkozmrYwgPCB3YWthXCA7CivmsZrooYwgPCBva291XCA7CivnoLTpoqggPCBoYWZ1XCA7CivmhJvmkqsgPCBhaWJ1XCA7Civpu4Tms4kgPCB5b21pXCA7Civlv5zoqLQgPCBvdXNvXCA7Civlk4DmhZUgPCBhaWJvXCA7CivlkIjnnYAgPCBhaWdpXCA7CivlvqHouqsgPCBvbm1pXCA7CivmhbDllY8gPCBpbW9uXCA7CivljLrosrsgPCBrdWhpXCA7CivlkYbmsJcgPCBha2tlXCA7CivpgqrprZQgPCBqYW1hXCA7Civpg73phJkgPCB0b2hpXCA7CivnoLTpgqogPCBoYWphXCA7CivlvoDot68gPCBvdXJvXCA7Civpgqrpo5sgPCBqYWhpXCA7CivnpZbmr40gPCBzb2JvXCA7CivmtL7miYsgPCBoYWRlXCA7CivlvKXpmYAgPCBtaWRhXCA7Civph47njL8gPCB5YWVuXCA7Civlj5fnkIYgPCBqdXJpXCA7Civlkbzlv5wgPCBrb291XCA7Civnp5jlpaUgPCBoaW91XCA7CivmsZrnqaIgPCBvd2FpXCA7CivmhJrlm7MgPCBndXp1XCA7CivmtYHluIMgPCBydWZ1XCA7Civmr43oqp4gPCBib2dvXCA7Civph47ngasgPCBub2JpXCA7CivlkozlrZcgPCB3YWppXCA7CivlkIjmrZMgPCBuZW11XCA7CivlvqHojLYgPCBvY2hhXCA7CivpurvluIMgPCBtYWZ1XCA7CivmgqrmhJ8gPCBva2FuXCA7Civnp7vkvY8gPCBpanV1XCA7CivomZrkvY0gPCBreW9pXCA7CivmgbXmlrkgPCBlaG91XCA7CivmhJvlhZAgPCBhaWppXCA7CivmspnmsbAgPCBzYXRhXCA7CivmrabpgYsgPCBidXVuXCA7CivlvqHnsL4gPCBtaXN1XCA7CivlkbPlmYwgPCBtaXNvXCA7Civlj7PmlrkgPCB1aG91XCA7CivkupzntLDkupwgPCBhamlhXCA7Civlu4jploAgPCBhbW9pXCA7CivmsZrngrkgPCBvdGVuXCA7Civmr5vnvr0gPCBrZWJhXCA7Civph47mmq4gPCB5YWJvXCA7CivlkIjmhI8gPCBnb3VpXCA7CivlvqHnpLwgPCBvcmVpXCA7Civms6LluIMgPCBoYWJ1XCA7CivlvqHnopcgPCBvd2FuXCA7CivpgbrotIggPCBpem91XCA7CivmsZrms6UgPCBvZGVpXCA7Civnn7Pok7QgPCBhb3NhXCA7CivlvqHnm4YgPCBvYm9uXCA7CivmsZrmsLQgPCBvc3VpXCA7CivljZfnhKEgPCBuYW11XCA7Civov73poqggPCBvaXRlXCA7CivnoJLntKAgPCBoaXNvXCA7CivmgKrmiJEgPCBrZWdhXCA7Civlj7PlsrggPCB1Z2FuXCA7CivmsZrmn5MgPCBvc2VuXCA7CivmganlqIEgPCBvbicnaVwgOwor6I236aeEIDwgbmlkYVwgOwor5ZCI5ZuzIDwgYWl6dVwgOwor6YG66JGXIDwgaWNob1wgOwor5bm+6YeNIDwgaWt1ZVwgOwor5rGa5pCNIDwgb3NvblwgOwor5ZCP5ZOhIDwgcmlpblwgOwor5Y6t5oKqIDwgZW4nJ29cIDsKK+WOu+W5tCA8IGtvem9cIDsKK+WQjeWMuyA8IG1laWlcIDsKK+WQj+WLmSA8IHJpbXVcIDsKK+i/tyA8IG1laVwgOwor5b+1IDwgbmVuXCA7Civnn60gPCB0YW5cIDsKK+W/qyA8IGthaVwgOwor6L+lIDwga2VpXCA7Civnn6UgPCBjaGlcIDsKK+efnCA8IGtpblwgOwor5b+ZIDwgYm91XCA7Civov5QgPCBoZW5cIDsKK+i/jiA8IGdlaVwgOwor5b+NIDwgbmluXCA7Civov4UgPCBqaW5cIDsKK+i+vyA8IHRlblwgOwor5567IDwgc2VuXCA7CivovrIgPCBub3VcIDsKK+i+ryA8IGJlblwgOwor5b6qIDwganVuXCA7CivnnqAgPCBkb3VcIDsKK+W+niA8IGp1dVwgOwor5b6FIDwgdGFpXCA7CivlvakgPCBzYWlcIDsKK+edoSA8IHN1aVwgOwor6L2fIDwgZ291XCA7CivlvZMgPCB0b3VcIDsKK+W9iCA8IGRhblwgOwor55ypIDwgZ2VuXCA7CivnnKAgPCBtaW5cIDsKK+W8nyA8IHRlaVwgOwor5bybIDwgc2hpXCA7CivlvJggPCBrb3VcIDsKK+ecjCA8IGtlblwgOwor55yLIDwga2FuXCA7CivlvIQgPCByb3VcIDsKK+ecgSA8IHNlaVwgOwor55u4IDwgc291XCA7Civlu6IgPCBoYWlcIDsKK+i7jSA8IGd1blwgOwor5buJIDwgcmVuXCA7Civnm4YgPCBib25cIDsKK+W6uCA8IHlvdVwgOwor55qwIDwgaG91XCA7CivouocgPCBjaG9cIDsKK+W5viA8IGlrdVwgOwor5bm9IDwgeXV1XCA7CivnmYwgPCBnYW5cIDsKK+i3oSA8IGF0b1wgOwor6LefIDwga29uXCA7Civot50gPCBreW9cIDsKK+eWiiA8IGpvdVwgOwor55WqIDwgYmFuXCA7CivnlaYgPCBhemVcIDsKK+eVlCA8IGhhblwgOwor55SjIDwgc2FuXCA7CivotIUgPCB6ZWlcIDsKK+eTtiA8IGJpblwgOwor6LOjIDwgYmFpXCA7Civnk5wgPCB1cmlcIDsKK+WyqSA8IGl3YVwgOwor6LKhIDwgemFpXCA7CivosaEgPCB6b3VcIDsKK+WxjyA8IGhlaVwgOwor5bCaIDwgbmFvXCA7CivlsIQgPCBzaGFcIDsKK+WwgSA8IGZ1dVwgOwor5a+4IDwgc3VuXCA7CivlrrUgPCB5b2lcIDsKK+WusyA8IGdhaVwgOwor5a6bIDwgYXRlXCA7CivlrZggPCBzb25cIDsKK+WsqiA8IGhpblwgOwor6Ku4IDwgc2hvXCA7Civoq5YgPCByb25cIDsKK+WrjCA8IGl5YVwgOwor54qsIDwgaW51XCA7CivoqoQgPCBydWlcIDsKK+eJoSA8IG9zdVwgOwor54mMIDwgcGFpXCA7CivniJsgPCByYW5cIDsKK+eHuyA8IGt1blwgOwor5aeJIDwgYW5lXCA7CivopqogPCBveWFcIDsKK+WlriA8IGZ1blwgOwor5aWlIDwgb2t1XCA7CivopZ8gPCBlcmlcIDsKK+eEtiA8IHplblwgOwor5aOwIDwga29lXCA7Civoo48gPCB1cmFcIDsKK+iigiA8IGJlaVwgOwor6J+7IDwgYXJpXCA7Civmv5ggPCBuZWlcIDsKK+WfiyA8IG1haVwgOwor5Z6iIDwgYWthXCA7Civonb8gPCBoYWVcIDsKK+m9oSA8IHJlaVwgOwor5ru/IDwgbWFuXCA7Civom5sgPCBzaHVcIDsKK+WbmyA8IHlvblwgOwor6bq7IDwgYXNhXCA7Civmub4gPCB3YW5cIDsKK+iZnCA8IHJ5b1wgOwor5rimIDwgdXp1XCA7CivlmJggPCB1c29cIDsKK+iYgiA8IHp1aVwgOwor5reLIDwgcmluXCA7CivmtrIgPCBla2lcIDsKK+WWsCA8IGt1dVwgOwor5rW3IDwgdW1pXCA7CivllY8gPCBtb25cIDsKK+azoSA8IGF3YVwgOwor6JKZIDwgbW91XCA7CivmspYgPCBva2lcIDsKK+ayjCA8IHRvblwgOwor5ZGzIDwgYWppXCA7CivmsaAgPCBpa2VcIDsKK+axlyA8IGFzZVwgOwor5ZGRIDwgZG9uXCA7CivmsI8gPCB1amlcIDsKK+WPsCA8IGRhaVwgOwor5q6YIDwgemFuXCA7CivmrYwgPCB1dGFcIDsKK+WNiCA8IHVtYVwgOwor5Y2BIDwgdG9vXCA7CivprLwgPCBvbmlcIDsKK+iMtiA8IGNoYVwgOwor5YukIDwgZ29uXCA7Civoi5cgPCBuYWVcIDsKK+iJsiA8IGlyb1wgOwor5YmNIDwgbWFlXCA7CivliIYgPCBidW5cIDsKK+iHvCA8IHVzdVwgOwor6aatIDwgZ3lvXCA7CivohZUgPCB1ZGVcIDsKK+WFjSA8IG1lblwgOwor5YWEIDwgYW5pXCA7Civpo7QgPCBhbWVcIDsKK+mjnCA8IGhvblwgOwor5YKzIDwgZGVuXCA7CivmooUgPCB1bWVcIDsKK+ahtiA8IG9rZVwgOwor5YG2IDwgZ3V1XCA7CivpoZQgPCBrYW9cIDsKK+mhjiA8IGFnb1wgOwor6aC8IDwgcmFpXCA7Civkv7ogPCBvcmVcIDsKK+aenSA8IGVkYVwgOwor5p2/IDwgaXRhXCA7CivkvZUgPCBuYW5cIDsKK+maiCA8IHdhaVwgOwor57mUIDwgb3JpXCA7CivkuJggPCBva2FcIDsKK+e2siA8IGFtaVwgOwor6ZW3IDwgb3NhXCA7CivmlbggPCBzdXVcIDsKK+aVhSA8IHl1ZVwgOwor57O4IDwgaXRvXCA7CivnspcgPCBhcmFcIDsKK+aPoSA8IGFrdVwgOwor56ybIDwgZnVlXCA7Civnq78gPCBzYW9cIDsKK+eosiA8IGluZVwgOwor5oiWIDwgYXJ1XCA7Civph40gPCBvbW9cIDsKK+eniyA8IGFraVwgOwor56awIDwgZGVpXCA7Civmga8gPCBpa2lcIDsKK+aBiyA8IGtvaVwgOwor6L+C6YGgIDwgdWVuXCA7Civlvq7mhI8gPCBiaWlcIDsKK+WPmeS9jSA8IGpvaVwgOwor6L+C6LevIDwgdXJvXCA7CivlvpfmiYsgPCBldGVcIDsKK+awl+WuhyA8IGtpdVwgOwor5Yy75a62IDwgaWthXCA7Civlhavph40gPCB5YWVcIDsKK+WMu+WToSA8IGlpblwgOwor5Yy75YuZIDwgaW11XCA7CivljLvkuosgPCBpamlcIDsKK+mBuuaEmyA8IGlhaVwgOwor6YG65b2xIDwgaWVpXCA7Civpg6jkvY0gPCBidWlcIDsKK+mBuuWtpCA8IGlrb1wgOwor55Ww6Z+zIDwgaW9uXCA7CivluIzmnIkgPCBrZXVcIDsKK+i/guaEmiA8IHVndVwgOwor5qyn5LqcIDwgb3VhXCA7CivmrKHkvY0gPCBqaWlcIDsKK+asoeS6nCA8IGppYVwgOwor55yJ5a6HIDwgYml1XCA7CivnlbDorbAgPCBpZ2lcIDsKK+WxhemWkyA8IGltYVwgOwor5biw5L6dIDwga2llXCA7CivpppnprZogPCBheXVcIDsKK+apn+S9jSA8IGtpaVwgOwor5Ly86Z2eIDwgZXNlXCA7CivlsL7nvr0gPCBvaGFcIDsKK+eVsOeItiA8IGlmdVwgOwor5Lya6ZmwIDwgZWluXCA7CivnlbDmr40gPCBpYm9cIDsKK+S6nOm6uyA8IGFtYVwgOwor5Lul6YGgIDwgaWVuXCA7CivkvIroqp4gPCBpZ29cIDsKK+S6nOmJmyA8IGFlblwgOwor5bC+5qC5IDwgb25lXCA7CivmpIXlrZAgPCBpc3VcIDsKK+S+neaAmSA8IGVrb1wgOwor5LqR54K6IDwgdW5pXCA7CivkupzmrKcgPCBhb3VcIDsKK+S7peW+gCA8IGlvdVwgOwor5pyJ54ShIDwgdW11XCA7CivkvJrljq0gPCBlZW5cIDsKK+aghOS9jSA8IGVpaVwgOwor5LqV5oi4IDwgaWRvXCA7CivpnZ7pgZUgPCBoaWlcIDsKK+WknOmbqCA8IHlhdVwgOwor5aSa6ZuoIDwgdGF1XCA7CivkuozlsIkgPCBuaWlcIDsKK+S4jeaEjyA8IGZ1aVwgOwor5aiB5q2mIDwgaWJ1XCA7CivmnInljaYgPCB1a2VcIDsKK+eOi+S9jSA8IG91aVwgOwor576F5a6HIDwgcmFvXCA7Civnvr3ljJYgPCB1a2FcIDsKK+e1temmrCA8IGVtYVwgOwor5aOK55a9IDwgZXNvXCA7Civpm6jmsJcgPCB1a2lcIDsKK+iqnuaEjyA8IGdvaVwgOwor6Zuo5b6MIDwgdWdvXCA7CivnhKHngrogPCBtdWlcIDsKK+ijnOmBuiA8IGhvaVwgOwor6b6SIDwgcnl1XCA7Civpu7YgPCBhemFcIDsKK+mYv+avlCA8IGFiaVwgOwor6bOwIDwgbmlvXCA7CivpsJUgPCBlYmlcIDsKK+mwkyA8IGVyYVwgOwor6aSMIDwgZXNhXCA7CivpjoogPCBoYXVcIDsKK+mNkSA8IGh1dVwgOwor6Yy1IDwgbmllXCA7CivpiJYgPCBodW5cIDsKK+mEvCA8IHNhYlwgOwor6YSeIDwgZ2luXCA7Civpgr4gPCBjaHVcIDsKK+i9kSA8IHJhdVwgOwor6KScIDwgZW5hXCA7CivntbXlm7MgPCBlenVcIDsKK+imi+W+lyA8IG1pZVwgOwor6Jm7IDwgYWJ1XCA7CivpmL/lkL0gPCBhdW5cIDsKK+iRtSA8IGFvaVwgOwor6I27IDwgb2dpXCA7CivoiosgPCBpbW9cIDsKK+iHkSA8IGRhdVwgOwor5ruL6ZuoIDwgaml1XCA7CivnqJcgPCBoaWVcIDsKK+eTtCA8IHJpaVwgOwor57SG5L2ZIDwgdXlvXCA7CivmqIsgPCB0b2lcIDsKK+ajsCA8IHNvaVwgOwor5p2tIDwga3VpXCA7CivmlqcgPCBvbm9cIDsKK+aEsCA8IGthdVwgOwor5b2vIDwgaGV1XCA7CivlvKggPCBzZXVcIDsKK+W7hyA8IHJpdVwgOwor5buFIDwgYWh1XCA7CivluqMgPCB0ZXVcIDsKK+W2hiA8IHNhdVwgOwor5bW6IDwgcmV1XCA7CivltbYgPCB0YW9cIDsKK+a1t+mrqiA8IG9nb1wgOwor5ayIIDwgZGV1XCA7Civlq7kgPCBiYXVcIDsKK+WrmSA8IHNlYlwgOwor5oSP6aasIDwgaWJhXCA7CivlpaEgPCBnYXVcIDsKK+WemiA8IGdldVwgOwor5ZymIDwgaXJpXCA7CivlmrcgPCBqYXVcIDsKK+Wbs+S8miA8IHp1ZVwgOwor5ZirIDwgZGFtXCA7Civlg6AgPCBmYW5cIDsKK+S9giA8IHlhaVwgOwor5oKq6ZyyIDwgb3JvXCA7CivonablpLcgPCBlem9cIDsKK+epouWkmiA8IGV0YVwgOwor56mi5ZyfIDwgZWRvXCA7CivmhbDlrokgPCBpYW5cIDsKK+WNgemHjSA8IHRvZVwgOwor5oSa5oSPIDwgZ3VpXCA7Civlj7PmtL4gPCB1aGFcIDsKK+aEj+WRsyA8IGltaVwgOwor6JCO6Z2hIDwgaWJpXCA7Civov6YgPCBrYVwgOwor55+iIDwgeWFcIDsKK+W/nCA8IG91XCA7Civlv4wgPCBraVwgOwor6L6tIDwgamlcIDsKK+W+riA8IGJpXCA7CivlvqEgPCBnb1wgOwor5b6SIDwgdG9cIDsKK+W+kCA8IGpvXCA7CivnnLwgPCBtZVwgOwor6LyqIDwgd2FcIDsKK+W8pSA8IG1pXCA7CivnnJ8gPCBtYVwgOwor5byVIDwgaW5cIDsKK+W8kCA8IG5pXCA7Civlu7YgPCBlblwgOwor5bqrIDwga29cIDsKK+W6pyA8IHphXCA7CivluqYgPCBkb1wgOwor5bqcIDwgZnVcIDsKK+W6hyA8IGhpXCA7CivouLAgPCB5dVwgOwor6LevIDwgcm9cIDsKK+W3riA8IHNhXCA7Civlt6MgPCBzdVwgOwor55ebIDwgdHNcIDsKK+eWkSA8IGdpXCA7Civnlo4gPCBzb1wgOwor55SwIDwgdGFcIDsKK+eUpSA8IG9pXCA7CivosasgPCB5b1wgOwor5bGlIDwgcmlcIDsKK+WvnSA8IG5lXCA7CivlrrYgPCBrZVwgOwor6KidIDwgZ2FcIDsKK+eHnyA8IGVpXCA7CivopaYgPCBqdVwgOwor5aWIIDwgbmFcIDsKK+eEoSA8IG11XCA7CivopJ4gPCBvblwgOwor6KSTIDwgaG9cIDsKK+ijsyA8IG1vXCA7Civloq4gPCBkYVwgOwor5aC0IDwgYmFcIDsKK+eArCA8IHNlXCA7CivonrogPCByYVwgOwor5ZuzIDwgenVcIDsKK+WXnyA8IGFhXCA7Civol40gPCBhaVwgOwor6bWhIDwgYnVcIDsKK+a0viA8IGhhXCA7CivojqsgPCBib1wgOwor6IumIDwga3VcIDsKK+WHuiA8IGRlXCA7CivlhbcgPCBndVwgOwor5qGIIDwgYW5cIDsKK+mdkiA8IGFvXCA7CivkupEgPCB1blwgOwor5LmDIDwgbm9cIDsKK+aYryA8IHplXCA7CivmiYsgPCB0ZVwgOwor5oO5IDwgamFcIDsKK+S8iuS6lSA8IGlpXCA7Civpl54gPCBrblwgOwor6YiHIDwgaHVcIDsKK+iuhCA8IHJ1XCA7Civmm70gPCB6b1wgOwor5pCZIDwgbnVcIDsKK+W6riA8IGl1XCA7CivltrQgPCBhdVwgOwor5bKGIDwgZXVcIDsKK+WxgSA8IGhlXCA7CivluLcgPCBpXCA7CivlsL4gPCBvXCA7CivlrocgPCB1XCA7CivmsZ8gPCBlXCA7Civkup4gPCBhXCA7Civms5Xlrabns7vlpKflrabpmaLlhbHpgJrlhaXlraboqabpqJMgPiBob3VnYWt1a2VpZGFpZ2FrdWlua3lvdXRzdXVueXV1Z2FrdXNoaWtlblwgOwor5pyd6a6u5rCR5Li75Li7576p5Lq65rCR5YWx5ZKM5Zu9ID4gY2hvdXNlbm1pbnNodXNodWdpamlubWlua3lvdXdha29rdVwgOwor6Ieq5YuV6LuK5pCN5a6z6LOg5YSf6LKs5Lu75L+d6Zm6ID4gamlkb3VzaGFzb25nYWliYWlzaG91c2VraW5pbmhva2VuXCA7CivnsbPlm73lpKflrablhaXlrablhbHpgJroqabpqJMgPiBiZWlrb2t1ZGFpZ2FrdW55dXVnYWt1a3lvdXRzdXVzaGlrZW5cIDsKK+aXpeacrOWKtOWDjee1hOWQiOe3j+ipleitsOS8miA+IG5paG9ucm91ZG91a3VtaWFpc291aHlvdWdpa2FpXCA7Civmi5jmnZ/lkI3nsL/lvI/mr5Tkvovku6PooajliLYgPiBrb3Vzb2t1bWVpYm9oaXJlaWRhaWh5b3VzZWlcIDsKK+iHqOWFtemXmOiAheeahumZo+ijguWcqOWJjSA+IHJpbnB5b3V0b3VzaGFrYWlqaW5yZXRzdXphaXplblwgOwor5aSq5bmz5rSL5qmf5qKw57+76Kiz5Y2U5LyaID4gdGFpaGVpeW91a2lrYWlob24nJ3lha3VreW91a2FpXCA7Civli6TlirTogIXosqHnlKPlvaLmiJDkv4PpgLIgPiBraW5yb3VzaGF6YWlzYW5rZWlzZWlzb2t1c2hpblwgOwor6LaF6LaF5aSn6KaP5qih6ZuG56mN5Zue6LevID4gY2hvdWNob3VkYWlraWJvc2h1dXNla2lrYWlyb1wgOwor6LaF44CF5aSn6KaP5qih6ZuG56mN5Zue6LevID4gY2hvdWNob3VkYWlraWJvc2h1dXNla2lrYWlyb1wgOwor5aSq5bmz5rSL5a6J5YWo5L+d6Zqc5p2h57SEID4gdGFpaGVpeW91YW56ZW5ob3Nob3Vqb3V5YWt1XCA7Civmk43nuKbluK3pn7Plo7DoqJjpjLLoo4Xnva4gPiBzb3VqdXVzZWtpb25zZWlraXJva3Vzb3VjaGlcIDsKK+iIquepuuWuh+WumeaKgOihk+eglOeptuaJgCA+IGtvdWt1dXVjaHV1Z2lqdXRzdWtlbmt5dXVqb1wgOwor5rWu5YuV5bCP5pWw54K55ryU566X5qmf5qeLID4gZnVkb3VzaG91c3V1dGVuJydlbnphbmtpa291XCA7Civnj77ph5Hoh6rli5XpoJDph5HmlK/miZXmqZ8gPiBnZW5raW5qaWRvdXlva2luc2hpaGFyYWlraVwgOwor5Li76L6e6aeG5YuV5Y+l5qeL6YCg5paH5rOVID4gc2h1amlrdWRvdWt1a291em91YnVucG91XCA7CivntYzmuIjljZTlipvplovnmbrmqZ/mp4sgPiBrZWl6YWlreW91cnlva3VrYWloYXRzdWtpa291XCA7CivljJfmtbfpgZPplovnmbrluoHplbflrpggPiBob2trYWlkb3VrYWloYXRzdWNob3VjaG91a2FuXCA7CivlpJblm73kurrnmbvpjLLoqLzmmI7mm7ggPiBnYWlrb2t1amludG91cm9rdXNob3VtZWlzaG9cIDsKK+aIpueVpeWFteWZqOWJiua4m+adoee0hCA+IHNlbnJ5YWt1aGVpa2lzYWt1Z2Vuam91eWFrdVwgOwor5Zu96Zqb5qmf5qKw57+76Kiz5Y2U5LyaID4ga29rdXNhaWtpa2FpaG9uJyd5YWt1a3lvdWthaVwgOwor5Zu96Zqb6Zu75rCX6YCa5L+h6YCj5ZCIID4ga29rdXNhaWRlbmtpdHN1dXNoaW5yZW5nb3VcIDsKK+a1t+Wklue1jOa4iOWNlOWKm+WfuumHkSA+IGthaWdhaWtlaXphaWt5b3VyeW9rdWtpa2luXCA7Civml6XnsbPlronlhajkv53pmpzmnaHntIQgPiBuaWNoaWJlaWFuemVuaG9zaG91am91eWFrdVwgOwor5oim5rKh6ICF6L+95oK86KiY5b+15pelID4gc2VuYm90c3VzaGF0c3VpdG91a2luZW5iaVwgOwor5oim6KGT6Iiq56m657Wx5Yi25pys6YOoID4gc2VuanV0c3Vrb3VrdXV0b3VzZWlob25idVwgOwor5bel5qWt6auY562J5bCC6ZaA5a2m5qChID4ga291Z3lvdWtvdXRvdXNlbm1vbmdha2tvdVwgOwor5YyX5aSn6KW/5rSL5p2h57SE5qmf5qeLID4ga2l0YXRhaXNlaXlvdWpvdXlha3VraWtvdVwgOwor6LaF5aSn6KaP5qih6ZuG56mN5Zue6LevID4gY2hvdWRhaWtpYm9zaHV1c2VraWthaXJvXCA7CivljJblrablhbXlmajnpoHmraLmnaHntIQgPiBrYWdha3VoZWlraWtpbnNoaWpvdXlha3VcIDsKK+mWoueojuiyv+aYk+S4gOiIrOWNlOWumiA+IGthbnplaWJvdWVraWlwcGFua3lvdXRlaVwgOwor5Zyo55WZ5pyf6ZaT5pu05paw6Kix5Y+vID4gemFpcnl1dWtpa2Fua291c2hpbmt5b2thXCA7CivkuIflm73lm73pmpvpn7PmqJnmloflrZcgPiBiYW5rb2t1a29rdXNhaW9ucHlvdW1vamlcIDsKK+a1t+a0i+aKleajhOimj+WItuadoee0hCA+IGthaXlvdXRvdWtpa2lzZWlqb3V5YWt1XCA7Civph47nlJ/li5Xniankv53orbflm6PkvZMgPiB5YXNlaWRvdWJ1dHN1aG9nb2RhbnRhaVwgOwor6Ieq5YuV5YiX6LuK5Yi25b6h6KOF572uID4gamlkb3VyZXNzaGFzZWlneW9zb3VjaGlcIDsKK+WkqeeEtuizh+a6kOS/neitt+irluiAhSA+IHRlbicnbmVuc2hpZ2VuaG9nb3JvbnNoYVwgOwor6Z2e5bi45LqL5oWL5a++5Yem6KiI55S7ID4gaGlqb3VqaXRhaXRhaXNob2tlaWtha3VcIDsKK+iHquWLleWIl+i7iuWBnOatouijhee9riA+IGppZG91cmVzc2hhdGVpc2hpc291Y2hpXCA7CivotaTljYHlrZflm73pmpvlp5Tlk6HkvJogPiBzZWtpanV1amlrb2t1c2FpaWlua2FpXCA7Civoq4foqbHooajnpLrmp4vpgKDnkIboq5YgPiBkYW53YWh5b3VqaWtvdXpvdXJpcm9uXCA7CivlhbHnlKPlhZrkuK3lpK7lp5Tlk6HkvJogPiBreW91c2FudG91Y2h1dW91aWlua2FpXCA7CivmsJHkuLvlhZrlhajlm73lp5Tlk6HkvJogPiBtaW5zaHV0b3V6ZW5rb2t1aWlua2FpXCA7Civoi7Hoqp7ln7rnpI7og73lipvoqabpqJMgPiBlaWdva2lzb25vdXJ5b2t1c2hpa2VuXCA7CivkuIDoiKzlkb3ku6TmvJTnrpfmqZ/mp4sgPiBpcHBhbm1laXJlaWVuemFua2lrb3VcIDsKK+efpeitmOmbhue0hOWei+eUo+alrSA+IGNoaXNoaWtpc2h1dXlha3VnYXRhc2FuZ3lvdVwgOwor6Ieq5b6L56We57WM5aSx6Kq/55eHID4gamlyaXRzdXNoaW5rZWlzaGl0Y2hvdXNob3VcIDsKK+aylue4hOmWi+eZuuW6gemVt+WumCA+IG9raW5hd2FrYWloYXRzdWNob3VjaG91a2FuXCA7CivlvIHoqLzms5XnmoTllK/nianoq5YgPiBiZW5zaG91aG91dGVraXl1aWJ1dHN1cm9uXCA7Civlm73pmpvljZTlipvkuovmpa3lm6MgPiBrb2t1c2Fpa3lvdXJ5b2t1amlneW91ZGFuXCA7Civnt4/lkIjnmoTlk4Hos6rnrqHnkIYgPiBzb3Vnb3V0ZWtpaGluc2hpdHN1a2FucmlcIDsKK+eWkeS8vOebtOaOpeebrueahOiqniA+IGdpamljaG9rdXNldHN1bW9rdXRla2lnb1wgOwor5LiH5Zu96JGX5L2c5qip5p2h57SEID4gYmFua29rdWNob3Nha3VrZW5qb3V5YWt1XCA7CivoqIDoqp7lrabnmoTlrp/lnKjoq5YgPiBnZW5nb2dha3V0ZWtpaml0c3V6YWlyb25cIDsKK+WGoOeKtuWLleiEiOihgOagk+eXhyA+IGthbmpvdWRvdW15YWt1a2Vzc2Vuc2hvdVwgOwor56eR5a2m5oqA6KGT5bqB6ZW35a6YID4ga2FnYWt1Z2lqdXRzdWNob3VjaG91a2FuXCA7CivotaTooYDnkIPmsojpmY3pgJ/luqYgPiBzZWtrZWtreXV1Y2hpbmtvdXNva3Vkb1wgOwor55+z5rK56Ly45Ye65Zu95qmf5qeLID4gc2VraXl1eXVzaHV0c3Vrb2t1a2lrb3VcIDsKK+WFrOWFseiBt+alreWuieWumuaJgCA+IGtvdWt5b3VzaG9rdWd5b3VhbnRlaWpvXCA7CivmiKbooZPoiKrnqbrntbHliLbnj60gPiBzZW5qdXRzdWtvdWt1dXRvdXNlaWhhblwgOwor6Ieq5YuV6YeR6Yqt5Ye65YWl5qmfID4gamlkb3VraW5zZW5zaHV0c3VueXV1a2lcIDsKK+WcsOmch+mbt+eBq+S6i+imqueItiA+IGppc2hpbmthbWluYXJpa2FqaW95YWppXCA7CivlpJrogqLpgbjmip7lvI/oqabllY8gPiB0YXNoaXNlbnRha3VzaGlraXNoaW1vblwgOwor5paw6Zai6KW/5Zu96Zqb56m65rivID4gc2hpbmthbnNhaWtva3VzYWlrdXVrb3VcIDsKK+iogOiqnuWtpueahOims+W/teirliA+IGdlbmdvZ2FrdXRla2lrYW4nJ25lbnJvblwgOwor5b6M55m655m65bGV6YCU5LiK5Zu9ID4ga291aGF0c3VoYXR0ZW50b2pvdWtva3VcIDsKK+aKuea2iOeZu+mMsuiovOaYjuabuCA+IG1hc2hvdXRvdXJva3VzaG91bWVpc2hvXCA7CivntYzmuIjkvIHnlLvluoHplbflrpggPiBrZWl6YWlraWtha3VjaG91Y2hvdWthblwgOwor5YaN55Sf5LiN6Imv5oCn6LKn6KGAID4gc2Fpc2VpZnVyeW91c2VpaGlua2V0c3VcIDsKK+eBq+WKm+aUr+aPtOiqv+aVtOe3miA+IGthcnlva3VzaGllbmNob3VzZWlzZW5cIDsKK+egtOWjiua0u+WLlemYsuatouazlSA+IGhha2Fpa2F0c3Vkb3Vib3VzaGlob3VcIDsKK+Wbvemam+i/lOS/oeWIh+aJi+WIuCA+IGtva3VzYWloZW5zaGlua2l0dGVrZW5cIDsKK+S4reiPr+S6uuawkeWFseWSjOWbvSA+IGNodXVrYWppbm1pbmt5b3V3YWtva3VcIDsKK+adsea1t+mBk+S6lOWNgeS4ieasoSA+IHRvdWthaWRvdWdvanV1c2FudHN1Z2lcIDsKK+Wuh+WumemWi+eZuuS6i+alreWboyA+IHVjaHV1a2FpaGF0c3VqaWd5b3VkYW5cIDsKK+S4iei7uOWcp+e4ruippumok+apnyA+IHNhbmppa3Vhc3NodWt1c2hpa2Vua2lcIDsKK+imluiBtOiAheWPguWKoOeVque1hCA+IHNoaWNob3VzaGFzYW5rYWJhbmd1bWlcIDsKK+W3numam+mAmuWVhuWnlOWToeS8miA+IHNodXVzYWl0c3V1c2hvdWlpbmthaVwgOwor5ZGo5rOi5pWw5aSJ5o+b6KOF572uID4gc2h1dWhhc3V1aGVua2Fuc291Y2hpXCA7CivmhaLmgKfnlrLlirTnl4flgJnnvqQgPiBtYW5zZWloaXJvdXNob3Vrb3VndW5cIDsKK+WFrOWus+WvvuetluWfuuacrOazlSA+IGtvdWdhaXRhaXNha3VraWhvbmhvdVwgOwor57WM5riI5Zuj5L2T6YCj5ZCI5LyaID4ga2VpemFpZGFudGFpcmVuZ291a2FpXCA7CivmiKbpl5jpm7vlrZDmiKbmg4XloLEgPiBzZW50b3VkZW5zaGlzZW5qb3Vob3VcIDsKK+ePvumHkeiHquWLleaUr+aJleapnyA+IGdlbmtpbmppZG91c2hpaGFyYWlraVwgOwor5pyA6auY57WM5Za26LKs5Lu76ICFID4gc2Fpa291a2VpZWlzZWtpbmluc2hhXCA7Civoo4XnlLLkurrlk6HpgYvmkKzou4ogPiBzb3Vrb3VqaW4nJ2luJyd1bnBhbnNoYVwgOwor5pel5pys6Kqe6IO95Yqb6Kmm6aiTID4gbmlob25nb25vdXJ5b2t1c2hpa2VuXCA7Civpn7Pnr4DkuLvpn7PnmoTlrZDpn7MgPiBvbnNldHN1c2h1b250ZWtpc2hpaW5cIDsKK+iovOWIuOWPluW8leWnlOWToeS8miA+IHNob3VrZW50b3JpaGlraWlpbmthaVwgOwor5pyA6auY6LKh5YuZ6LKs5Lu76ICFID4gc2Fpa291emFpbXVzZWtpbmluc2hhXCA7Civnn63ot53pm6Lpm6LnnYDpmbjmqZ8gPiB0YW5reW9yaXJpY2hha3VyaWt1a2lcIDsKK+apn+iDveWNmOS4gOWMluaWh+azlSA+IGtpbm91dGFuJydpdHN1a2FidW5wb3VcIDsKK+efpeiDveaDheWgseeglOeptumDqCA+IGNoaW5vdWpvdWhvdWtlbmt5dXVidVwgOwor5Yqg5Zyn5rC05Z6L5Y6f5a2Q54KJID4ga2FhdHN1c3VpZ2F0YWdlbnNoaXJvXCA7CivnkrDlpKrlubPmtIvlnLDpnIfluK8gPiBrYW50YWloZWl5b3VqaXNoaW50YWlcIDsKK+S6uueoruW3ruWIpeS4u+e+qeiAhSA+IGppbnNodXNhYmV0c3VzaHVnaXNoYVwgOwor6Ieq54S255Kw5aKD5L+d5YWo5rOVID4gc2hpemVua2Fua3lvdWhvemVuaG91XCA7CivnkrDlpKrlubPmtIvpgKDlsbHluK8gPiBrYW50YWloZWl5b3V6b3V6YW50YWlcIDsKK+ihjOWLleS4u+e+qeW/g+eQhuWtpiA+IGtvdWRvdXNodWdpc2hpbnJpZ2FrdVwgOwor56ys5LiA5qyh5LiW55WM5aSn5oimID4gZGFpaWNoaWppc2VrYWl0YWlzZW5cIDsKK+WkieWLleeCuuabv+ebuOWgtOWItiA+IGhlbmRvdWthd2FzZXNvdWJhc2VpXCA7Civmra/lhoXnmYLms5XlsILploDljLsgPiBzaGlrYXJ5b3Vob3VzZW5tb24nJ2lcIDsKK+eSsOWkquW5s+a0i+eBq+WxseW4ryA+IGthbnRhaWhlaXlvdWthemFudGFpXCA7Civlrp/mg4Xoqr/mn7vlp5Tlk6HkvJogPiBqaXRzdWpvdWNob3VzYWlpbmthaVwgOwor56eR5a2m5Z+656SO56CU56m25omAID4ga2FnYWt1a2lzb2tlbmt5dXVzaG9cIDsKK+WkieW9oueUn+aIkOe1seiqnuirliA+IGhlbmtlaXNlaXNlaXRvdWdvcm9uXCA7CivlpKfopo/mqKHpm4bnqY3lm57ot68gPiBkYWlraWJvc2h1dXNla2lrYWlyb1wgOwor5Y2X54Sh5aaZ5rOV6JOu6I+v57WMID4gbmFtdW15b3Vob3VyZW5nZWt5b3VcIDsKK+acqueiuuiqjemjm+ihjOeJqeS9kyA+IG1pa2FrdW5pbmhpa291YnV0dGFpXCA7CivkuIDphbjljJbngq3ntKDkuK3mr5IgPiBpc3NhbmthdGFuc29jaHV1ZG9rdVwgOwor5YWs5q2j5Y+W5byV5aeU5ZOh5LyaID4ga291c2VpdG9yaWhpa2lpaW5rYWlcIDsKK+eojuW8leWJjeW9k+acn+WIqeebiiA+IHplaWJpa2ltYWV0b3VraXJpZWtpXCA7CivpgKPpgqblj5blvJXlp5Tlk6HkvJogPiByZW5wb3V0b3JpaGlraWlpbmthaVwgOwor5rWB6KGM5oCn6ICz5LiL6IW654KOID4gcnl1dWtvdXNlaWppa2FzZW4nJ2VuXCA7Civnt4/nkIblupznt4/li5nplbflrpggPiBzb3VyaWZ1c291bXVjaG91a2FuXCA7CivnkrDlooPkv53orbfkuLvnvqnogIUgPiBrYW5reW91aG9nb3NodWdpc2hhXCA7Civml6XmnKzpmbjkuIroh6rooZvpmoogPiBuaWhvbnJpa3Vqb3VqaWVpdGFpXCA7Civph5HlnLDph5HmnKzkvY3liLbluqYgPiBraW5qaWdhbmVob24nJ2lzZWlkb1wgOwor6YeN6KaB54Sh5b2i5paH5YyW6LKhID4ganV1eW91bXVrZWlidW5rYXphaVwgOwor57WM5riI56S+5Lya55CG5LqL5LyaID4ga2VpemFpc2hha2FpcmlqaWthaVwgOwor5Li76Kqe5Yqp5YuV6Kme5YCS572uID4gc2h1Z29qb2RvdXNoaXRvdWNoaVwgOwor5ZCI5ZCM5oqA6KGT5aeU5ZOh5LyaID4gZ291ZG91Z2lqdXRzdWlpbmthaVwgOwor6Ieq5YuV5pa55ZCR5o6i55+l5qmfID4gamlkb3Vob3Vrb3V0YW5jaGlraVwgOwor5biw6YKE5LiN6IO96ZmQ55WM54K5ID4ga2lrYW5mdW5vdWdlbmthaXRlblwgOwor5Zu95a625YWs5a6J5aeU5ZOh6ZW3ID4ga29ra2Frb3VhbicnaWluY2hvdVwgOwor5Zu95Lya5a++562W5aeU5ZOh5LyaID4ga29ra2FpdGFpc2FrdWlua2FpXCA7CivnrKzkuozmrKHkuJbnlYzlpKfmiKYgPiBkYWluaWppc2VrYWl0YWlzZW5cIDsKK+S6nOexs+WIqeWKoOWQiOihhuWbvSA+IGFtZXJpa2FnYXNzaHV1a29rdVwgOwor5pel5pys6Iiq56m66Ieq6KGb6ZqKID4gbmlob25rb3VrdXVqaWVpdGFpXCA7CivnrKblj7fljJbmloflrZfpm4blkIggPiBmdWdvdWthbW9qaXNodXVnb3VcIDsKK+aXpeacrOa1t+S4iuiHquihm+maiiA+IG5paG9ua2Fpam91amllaXRhaVwgOwor5LiL5L2N56+E55aH5YyW57Sg5oCnID4ga2FpaGFuY2h1dWthc29zZWlcIDsKK+mBuOaMmeeuoeeQhuWnlOWToeS8miA+IHNlbmt5b2thbnJpaWlua2FpXCA7CivkuIvkvY3nr4TnlofljJbljp/nkIYgPiBrYWloYW5jaHV1a2FnZW5yaVwgOwor6ICz6by75ZK95ZaJ5bCC6ZaA5Yy7ID4gamliaWlua291c2VubW9uJydpXCA7CivorbDpmaLpgYvllrblp5Tlk6HkvJogPiBnaWluJyd1bicnZWlpaW5rYWlcIDsKK++8ku+8kO+8kO+8kOW5tOWVj+mhjCA+IG5pc2VuJyduZW5tb25kYWlcIDsKK+Wul+aVmeeahOeLrOeri+aApyA+IHNodXVreW91dGVraWRva3VyaXRzdXNlaVwgOwor55u05o6l54Wn5rqW5bCE5pKDID4gY2hva3VzZXRzdXNob3VqdW5zaGFnZWtpXCA7Civnibnmrorlj5bmibHpg7Xkvr8gPiB0b2t1c2h1dG9yaWF0c3VrYWl5dXViaW5cIDsKK+S5vua5v+eQg+a5v+W6puioiCA+IGthbnNoaXRzdWt5dXVzaGl0c3Vkb2tlaVwgOwor5Zyn5a+G6ZmN5LyP5b+c5YqbID4gYXRzdW1pdHN1a291ZnVrdW91cnlva3VcIDsKK+WFrOiqjeWNuOWjsualreiAhSA+IGtvdW5pbicnb3Jvc2hpdXJpZ3lvdXNoYVwgOwor5qC45YiG6KOC55Sf5oiQ54mpID4ga2FrdWJ1bnJldHN1c2Vpc2VpYnV0c3VcIDsKK+iBt+alreWIpembu+ipseW4syA+IHNob2t1Z3lvdWJldHN1ZGVud2FjaG91XCA7CivlhaXlrablhbHpgJroqabpqJMgPiBueXV1Z2FrdWt5b3V0c3V1c2hpa2VuXCA7CivlrqTlhoXnrqHlvKbmpb3lm6MgPiBzaGl0c3VuYWlrYW5nZW5nYWt1ZGFuXCA7CivmnbHkuqzmoKrlvI/luILloLQgPiB0b3VreW91a2FidXNoaWtpc2hpam91XCA7Civnorrnjoflr4bluqbplqLmlbAgPiBrYWt1cml0c3VtaXRzdWRva2Fuc3V1XCA7Civljp/lrZDlipvnmbrpm7vmiYAgPiBnZW5zaGlyeW9rdWhhdHN1ZGVuc2hvXCA7Civli6flloTmh7LmgqrlsI/oqqwgPiBrYW56ZW5jaG91YWt1c2hvdXNldHN1XCA7Civmna3lkajpnaLmkanmk6blipsgPiBrdWlzaHV1bWVubWFzYXRzdXJ5b2t1XCA7CivplpPmjqXnhafmupblsITmkoMgPiBrYW5zZXRzdXNob3VqdW5zaGFnZWtpXCA7CivmlrDopo/moKrlvI/lhazplosgPiBzaGlua2lrYWJ1c2hpa2lrb3VrYWlcIDsKK+Wtpue/kuaMh+WwjuimgemgmCA+IGdha3VzaHV1c2hpZG91eW91cnlvdVwgOwor5pep55m65oCn55e05ZGG55eHID4gc291aGF0c3VzZWljaGlob3VzaG91XCA7Civkv6HnlKjljZTlkIzntYTlkIggPiBzaGluJyd5b3VreW91ZG91a3VtaWFpXCA7CivlvKbmpb3lm5vph43lpY/mm7IgPiBnZW5nYWt1c2hpanV1c291a3lva3VcIDsKK+a8lOe5ueeahOiqrOaYjuazlSA+IGVuJydla2l0ZWtpc2V0c3VtZWlob3VcIDsKK+a3seWcqOaAp+ecn+iPjOeXhyA+IHNoaW56YWlzZWlzaGlua2luc2hvdVwgOwor57Wx546H5p2f57ib55CG6KuWID4gdG91c290c3Vzb2t1YmFrdXJpcm9uXCA7CivmnKzmhYvmgKfpq5jooYDlnKcgPiBob250YWlzZWlrb3VrZXRzdWF0c3VcIDsKK+mZuOS4iuerr+WxgOijhee9riA+IHJpa3Vqb3V0YW5reW9rdXNvdWNoaVwgOwor5pel57Gz6LK/5piT5pGp5pOmID4gbmljaGliZWlib3Vla2ltYXNhdHN1XCA7CivpgJrllYbnlKPmpa3lpKfoh6MgPiB0c3V1c2hvdXNhbmd5b3VkYWlqaW5cIDsKK+mAmuWVhuiIqua1t+adoee0hCA+IHRzdXVzaG91a291a2Fpam91eWFrdVwgOwor6Luf5Yik5a6a6K2Y5Yil5ZmoID4gbmFuaGFudGVpc2hpa2liZXRzdWtpXCA7Civnqbrmg7Pnp5HlrablsI/oqqwgPiBrdXVzb3VrYWdha3VzaG91c2V0c3VcIDsKK+aWsOWFpeekvuWToeaVmeiCsiA+IHNoaW4nJ255dXVzaGFpbmt5b3Vpa3VcIDsKK+aOqOWlqOaWh+eMruebrumMsiA+IHN1aXNob3VidW5rZW5tb2t1cm9rdVwgOwor5b6z5bed5LiJ5Luj5a625YWJID4gdG9rdWdhd2FzYW5kYWlpZW1pdHN1XCA7CivnlJ/mtLvljZTlkIzntYTlkIggPiBzZWlrYXRzdWt5b3Vkb3VrdW1pYWlcIDsKK+aWmemHkeWIpee0jemDteS+vyA+IHJ5b3VraW5iZXRzdW5vdXl1dWJpblwgOwor5Lit6Led6Zui5qC45oim5YqbID4gY2h1dWt5b3Jpa2FrdXNlbnJ5b2t1XCA7CivovrLmpa3ljZTlkIzntYTlkIggPiBub3VneW91a3lvdWRvdWt1bWlhaVwgOwor5aSn6Zm45qiq5pat6YmE6YGTID4gdGFpcmlrdW91ZGFudGV0c3Vkb3VcIDsKK+mrmOWIhuWtkOWQuOWPjuS9kyA+IGtvdWJ1bnNoaWt5dXVzaHV1dGFpXCA7Civml6XnsbPmp4vpgKDljZTorbAgPiBuaWNoaWJlaWtvdXpvdWt5b3VnaVwgOwor5qmf5qKw57+76Kiz5Y2U5LyaID4ga2lrYWlob24nJ3lha3VreW91a2FpXCA7CivkuK3lpK7ooYzmlL/lrpjluoEgPiBjaHV1b3VneW91c2Vpa2FuY2hvdVwgOwor5YyX5aSn6KW/5rSL5p2h57SEID4ga2l0YXRhaXNlaXlvdWpvdXlha3VcIDsKK+mbu+awl+mAmuS/oeWkp+WtpiA+IGRlbmtpdHN1dXNoaW5kYWlnYWt1XCA7CivoirPpppnml4/ljJblkIjniakgPiBob3Vrb3V6b2t1a2Fnb3VidXRzdVwgOwor5YaF6Zaj5a6Y5oi/6ZW35a6YID4gbmFpa2FrdWthbmJvdWNob3VrYW5cIDsKK+W8pualveS6lOmHjeWlj+absiA+IGdlbmdha3Vnb2p1dXNvdWt5b2t1XCA7CivlroflrpnplovnmbroqIjnlLsgPiB1Y2h1dWthaWhhdHN1a2Vpa2FrdVwgOwor57Gz6YCj6YKm6Iiq56m65bGAID4gYmVpcmVucG91a3V1a291a3lva3VcIDsKK+WkluWbveS6uueZu+mMsuazlSA+IGdhaWtva3VqaW50b3Vyb2t1aG91XCA7CivlhbHnlKPlhZrmlL/msrvlsYAgPiBreW91c2FudG91c2VpamlreW9rdVwgOwor5p2f57ib57aZ5om/5Y6f55CGID4gc29rdWJha3VrZWlzaG91Z2VucmlcIDsKK+S4iei7uOWcp+e4ruippumokyA+IHNhbmppa3Vhc3NodWt1c2hpa2VuXCA7Civnqbrou43pgKPntaHlsIbmoKEgPiBrdXVndW5yZW5yYWt1c2hvdWtvdVwgOwor5Y245aOy54mp5L6h5oyH5pWwID4gb3Jvc2hpdXJpYnVra2FzaGlzdXVcIDsKK+WGmeecn+WIpOWumuaxuuWLnSA+IHNoYXNoaW5oYW50ZWlrZXNzaG91XCA7CivliY3nq4vohbrogqXlpKfnl4cgPiB6ZW5yaXRzdXNlbmhpZGFpc2hvdVwgOwor6Kqs5piO55qE5aal5b2T5oCnID4gc2V0c3VtZWl0ZWtpZGF0b3VzZWlcIDsKK+WFsemAmuS4gOasoeippumokyA+IGt5b3V0c3V1aWNoaWppc2hpa2VuXCA7CivnrKzkuInnqK7pg7Xkvr/niakgPiBkYWlzYW5zaHV5dXViaW5idXRzdVwgOwor5Y+L5aW96YCa5ZWG6Iiq5rW3ID4geXV1a291dHN1dXNob3Vrb3VrYWlcIDsKK+eEoeaLheS/neiyuOS7mOmHkSA+IG11dGFucG9rYXNoaXRzdWtla2luXCA7Civlv4XopoHljYHliIbmnaHku7YgPiBoaXRzdXlvdWp1dWJ1bmpvdWtlblwgOwor57K+56We55qE5oyH5bCO6ICFID4gc2Vpc2hpbnRla2lzaGlkb3VzaGFcIDsKK+WOn+WtkOeJqeeQhuWtpuiAhSA+IGdlbnNoaWJ1dHN1cmlnYWt1c2hhXCA7Civnsr7lr4bmqZ/morDlt6Xmpa0gPiBzZWltaXRzdWtpa2Fpa291Z3lvdVwgOwor5YaN5YWl5Zu96Kix5Y+v5pu4ID4gc2Fpbnl1dWtva3VreW91a2FzaG9cIDsKK+WumuW9ouWklumDteS+v+eJqSA+IHRlaWtlaWdhaXl1dWJpbmJ1dHN1XCA7CivotoXkuKbliJfoqIjnrpfmqZ8gPiBjaG91aGVpcmV0c3VrZWlzYW5raVwgOwor5Lit5p6i56We57WM57O757WxID4gY2h1dXN1dXNoaW5rZWlrZWl0b3VcIDsKK+S8nemAgeWItuW+oeaLoeW8tSA+IGRlbnNvdXNlaWd5b2tha3VjaG91XCA7Civml6XkuK3lj4vlpb3ljZTkvJogPiBuaXRjaHV1eXV1a291a3lvdWthaVwgOwor5Zu95rCR6YeR6J6N5YWs5bqrID4ga29rdW1pbmtpbicneXV1a291a29cIDsKK+WPo+i+uuWNmOe0lOeWseeWuSA+IGtvdWhlbnRhbmp1bmhvdXNoaW5cIDsKK+mbhuWbo+WuieWFqOS/nemanCA+IHNodXVkYW4nJ2FuemVuaG9zaG91XCA7CivlkI3npZ7pq5jpgJ/pgZPot68gPiBtZWlzaGlua291c29rdWRvdXJvXCA7CivmlL7lsITmgKfpmY3kuIvniakgPiBob3VzaGFzZWlrb3VrYWJ1dHN1XCA7CivliqPmgKfpgbrkvJ3lvaLos6ogPiByZXNzZWlpZGVua2Vpc2hpdHN1XCA7CivliJ3mnJ/pgbjmip7poIXnm64gPiBzaG9raXNlbnRha3Vrb3Vtb2t1XCA7Civlhajlm73mtKXmtKXmtabmtaYgPiB6ZW5rb2t1dHN1dHN1dXJhdXJhXCA7Civkv6Hku7vntbHmsrvliLbluqYgPiBzaGluJyduaW50b3VjaGlzZWlkb1wgOwor5Li76KaB6YOo57WC56uv5Z6LID4gc2h1eW91YnVzaHV1dGFuZ2F0YVwgOwor5ZCI5oiQ5YyW5a2m5bel5qWtID4gZ291c2Vpa2FnYWt1a291Z3lvdVwgOwor5Zu95rCR5L2T6IKy5aSn5LyaID4ga29rdW1pbnRhaWlrdXRhaWthaVwgOwor5Zu96Zqb6Zu75L+h6Zu76KmxID4ga29rdXNhaWRlbnNoaW5kZW53YVwgOwor6Zu75a2Q6LOH6YeR5oyv5pu/ID4gZGVuc2hpc2hpa2luZnVyaWthZVwgOwor5bym5qW95Zub6YeN5aWP5ZujID4gZ2VuZ2FrdXNoaWp1dXNvdWRhblwgOwor6Iiq56m65Lqk6YCa566h5Yi2ID4ga291a3V1a291dHN1dWthbnNlaVwgOwor6LKh5pS/5Z2H6KGh6KiI55S7ID4gemFpc2Vpa2lua291a2Vpa2FrdVwgOwor5pel5pys6KaP5qC85Y2U5LyaID4gbmlwcG9ua2lrYWt1a3lvdWthaVwgOwor5YuV54mp5oSb6K235Y2U5LyaID4gZG91YnV0c3VhaWdva3lvdWthaVwgOwor57Gz6Iiq56m65a6H5a6Z5bGAID4gYmVpa291a3V1dWNodXVreW9rdVwgOwor5YWo5Zu95rSl44CF5rWm44CFID4gemVua29rdXRzdXRzdXVyYXVyYVwgOwor5pel5pys5a2m6KGT5Lya6K2wID4gbmlob25nYWt1anV0c3VrYWlnaVwgOwor5Lq66ZaT55Kw5aKD5a6j6KiAID4gbmluZ2Vua2Fua3lvdXNlbmdlblwgOwor5a625a6F5o2c57Si5Luk54q2ID4ga2F0YWt1c291c2FrdXJlaWpvdVwgOwor5a6J5Zyf5qGD5bGx5pmC5LujID4gYXp1Y2hpbW9tb3lhbWFqaWRhaVwgOwor55Sf55CG55qE6aOf5aGp5rC0ID4gc2Vpcml0ZWtpc2hva3VlbnN1aVwgOwor55Kw5aSq5bmz5rSL6Ku45Zu9ID4ga2FudGFpaGVpeW91c2hva29rdVwgOwor54Gr5Yqb5pSv5o+06KiI55S7ID4ga2FyeW9rdXNoaWVua2Vpa2FrdVwgOwor6JGX5L2c5qip5omA5pyJ6ICFID4gY2hvc2FrdWtlbnNob3l1dXNoYVwgOwor5pWw5a2m55qE5biw57SN5rOVID4gc3V1Z2FrdXRla2lraW5vdWhvdVwgOwor5pel5pys5Zu954m56Kix5bqBID4gbmlob25rb2t1dG9ra3lvY2hvdVwgOwor6aOf57On566h55CG5Yi25bqmID4gc2hva3VyeW91a2FucmlzZWlkb1wgOwor55Sf54mp5YyW5a2m5YW15ZmoID4gc2VpYnV0c3VrYWdha3VoZWlraVwgOwor5aWz5qip5ouh5by16KuW6ICFID4gam9rZW5rYWt1Y2hvdXJvbnNoYVwgOwor57Wx5ZCI5bmV5YOa5Lya6K2wID4gdG91Z291YmFrdXJ5b3VrYWlnaVwgOwor5bCE5pKD56aB5q2i5Zyw5Z+fID4gc2hhZ2VraWtpbnNoaWNoaWlraVwgOwor54m55ZG95YWo5qip5YWs5L2/ID4gdG9rdW1laXplbmtlbmtvdXNoaVwgOwor5paw6IGe5YCr55CG57ax6aCYID4gc2hpbmJ1bnJpbnJpa291cnlvdVwgOwor6KiY6L+w55qE5aal5b2T5oCnID4ga2lqdXRzdXRla2lkYXRvdXNlaVwgOwor5LiH5Zu96YO15L6/6YCj5ZCIID4gYmFua29rdXl1dWJpbnJlbmdvdVwgOwor5L2P5a6F6YeR6J6N5YWs5bqrID4ganV1dGFrdWtpbicneXV1a291a29cIDsKK+WNmOS9jeS9k+epjemHjemHjyA+IHRhbicnaXRhaXNla2lqdXVyeW91XCA7CivntbHkuIDlnLDmlrnpgbjmjJkgPiB0b3VpdHN1Y2hpaG91c2Vua3lvXCA7CivlhazplovluILloLTmlL/nrZYgPiBrb3VrYWlzaGlqb3VzZWlzYWt1XCA7CivlnLDnkIPoprPmuKzooZvmmJ8gPiBjaGlreXV1a2Fuc29rdWVpc2VpXCA7Civph43ph4/mi7Ppl5jpgbjmiYsgPiBqdXVyeW91a2VudG91c2Vuc2h1XCA7Civkurrlt6XmsJfog7jnmYLms5UgPiBqaW5rb3VraWt5b3VyeW91aG91XCA7CivlnLDmlrnlhazlhbHlm6PkvZMgPiBjaGlob3Vrb3VreW91ZGFudGFpXCA7CivmiYvmoLnnrqHnl4flgJnnvqQgPiBzaHVrb25rYW5zaG91a291Z3VuXCA7Civpq5jliIblrZDljJblkIjniakgPiBrb3VidW5zaGlrYWdvdWJ1dHN1XCA7CivpmbjkuIrkvZzmiKbmnKzpg6ggPiByaWt1am91c2FrdXNlbmhvbmJ1XCA7CivmlL7lsITmgKflu4Pmo4TniakgPiBob3VzaGFzZWloYWlraWJ1dHN1XCA7CivpgIbou6LliIbluIPkv4LmlbAgPiBneWFrdXRlbmJ1bnB1a2Vpc3V1XCA7CivonJjom5vohpzkuIvlh7rooYAgPiBrdW1vbWFrdWthc2h1a2tldHN1XCA7CivlhbHlkIzmlZHmuIjln7rph5EgPiBreW91ZG91a3l1dXNhaWtpa2luXCA7Civkv53pmbrph5Hlj5flj5bkurogPiBob2tlbmtpbicndWtldG9yaW5pblwgOwor6Zm46LuN5aOr5a6Y5a2m5qChID4gcmlrdWd1bnNoaWthbmdha2tvdVwgOwor5ryB5qWt5bCC566h5rC05Z+fID4gZ3lvZ3lvdXNlbmthbnN1aWlraVwgOwor6Iq46KGT6Iez5LiK5Li7576pID4gZ2VpanV0c3VzaGlqb3VzaHVnaVwgOwor54m55ZG95YWo5qip5aSn5L2/ID4gdG9rdW1laXplbmtlbnRhaXNoaVwgOwor6L+R5o6l6Iiq56m65pSv5o+0ID4ga2luc2V0c3Vrb3VrdXVzaGllblwgOwor5pyJ5qmf5rC06YqA5Lit5q+SID4geXV1a2lzdWlnaW5jaHV1ZG9rdVwgOwor55Kw5aSq5bmz5rSL5qeL5oOzID4ga2FudGFpaGVpeW91a291c291XCA7CivlhaznmoTkuI3ms5XlpqjlrrMgPiBrb3V0ZWtpZnVob3Vib3VnYWlcIDsKK+aIpumXmOaUr+aPtOioiOeUuyA+IHNlbnRvdXNoaWVua2Vpa2FrdVwgOwor5Zue57ea5Yi25b6h6KaP5YmHID4ga2Fpc2Vuc2VpZ3lva2lzb2t1XCA7CivmuK/mub7pgYvpgIHkuovmpa0gPiBrb3V3YW4nJ3Vuc291amlneW91XCA7CivploDmiLjplovmlL7mlL/nrZYgPiBtb25rb2thaWhvdXNlaXNha3VcIDsKK+adseWQjemrmOmAn+mBk+i3ryA+IHRvdW1laWtvdXNva3Vkb3Vyb1wgOwor5YaF6Zaj57eP55CG5aSn6IejID4gbmFpa2FrdXNvdXJpZGFpamluXCA7Civml6XmnKzmlL7pgIHljZTkvJogPiBuaWhvbmhvdXNvdWt5b3VrYWlcIDsKK+iIquepuuWuh+WumeW3pealrSA+IGtvdWt1dXVjaHV1a291Z3lvdVwgOwor5a6J5YWo5L+d6Zqc5p2h57SEID4gYW56ZW5ob3Nob3Vqb3V5YWt1XCA7CivkuLvlg43lnJ/lnKfkv4LmlbAgPiBzaHVkb3Vkb2F0c3VrZWlzdXVcIDsKK+WPjeWwhOeahOWNiumghuW6jyA+IGhhbnNoYXRla2loYW5qdW5qb1wgOwor5Zu96Zqb6YCa6LKo5Z+66YeRID4ga29rdXNhaXRzdXVrYWtpa2luXCA7Civnn63mnJ/pm4bkuK3orJvluqcgPiB0YW5raXNodXVjaHV1a291emFcIDsKK+aXpeacrOi+suael+imj+agvCA+IG5paG9uJydub3VyaW5raWtha3VcIDsKK+iIquepuuWuh+WumeeUo+alrSA+IGtvdWt1dXVjaHV1c2FuZ3lvdVwgOwor5ZOB6LOq5L+d5oyB5pyf6ZmQID4gaGluc2hpdHN1aG9qaWtpZ2VuXCA7Civml6XmnKzlt6Xmpa3opo/moLwgPiBuaWhvbmtvdWd5b3VraWtha3VcIDsKK+S4rei3nembouaguOWFteWZqCA+IGNodXVreW9yaWtha3VoZWlraVwgOwor6YW45YyW6YKE5YWD5Y+N5b+cID4gc2Fua2FrYW5nZW5oYW4nJ25vdVwgOwor5YWs5YuZ5Z+36KGM5aao5a6zID4ga291bXVzaGlra291Ym91Z2FpXCA7Civpq5jnrYnlsILploDlrabmoKEgPiBrb3V0b3VzZW5tb25nYWtrb3VcIDsKK+atqeWFteaIpumXmOi7iuS4oSA+IGhvaGVpc2VudG91c2hhcnlvdVwgOwor5YWx5ZCM6KiY6ICF5Lya6KaLID4ga3lvdWRvdWtpc2hha2Fpa2VuXCA7CivlpKrpmb3nhrHmuKnmsLTlmaggPiB0YWl5b3VuZXRzdW9uc3Vpa2lcIDsKK+mdmeatouWcn+Wcp+S/guaVsCA+IHNlaXNoaWRvYXRzdWtlaXN1dVwgOwor5Lq65Y+j5YuV5oWL57Wx6KiIID4gamlua291ZG91dGFpdG91a2VpXCA7Civlm73pgKPkuovli5nnt4/plbcgPiBrb2t1cmVuamltdXNvdWNob3VcIDsKK+S4jeWLleeUo+WPluW+l+eojiA+IGZ1ZG91c2Fuc2h1dG9rdXplaVwgOwor5bm05qyh5pyJ57Wm5LyR5pqHID4gbmVuaml5dXVreXV1a3l1dWthXCA7CivljYHkuozmjIfohbjmvbDnmI0gPiBqdXVuaXNoaWNob3VrYWl5b3VcIDsKK+aIpuS6ieeKr+e9quazleW7tyA+IHNlbnNvdWhhbnphaWhvdXRlaVwgOwor5bm05Yqf5bqP5YiX5Yi25bqmID4gbmVua291am9yZXRzdXNlaWRvXCA7CivovrLmnpfmsLTnlKPlpKfoh6MgPiBub3VyaW5zdWlzYW5kYWlqaW5cIDsKK+S4u+imgemDqOWFiOWwjuWeiyA+IHNodXlvdWJ1c2VuZG91Z2F0YVwgOwor5Zu95rCR5YGl5bq35L+d6Zm6ID4ga29rdW1pbmtlbmtvdWhva2VuXCA7CivkuI3lrproqIjph4/nqbrplpMgPiBmdXRlaWtlaXJ5b3VrdXVrYW5cIDsKK+WPjeW4neWbveS4u+e+qeiAhSA+IGhhbnRlaWtva3VzaHVnaXNoYVwgOwor6Zu76I2357WQ5ZCI57Sg5a2QID4gZGVua2FrZXRzdWdvdXNvc2hpXCA7CivmnInpmZDnirbmhYvmlofms5UgPiB5dXVnZW5qb3V0YWlidW5wb3VcIDsKK+S/ruato+izh+acrOS4u+e+qSA+IHNodXVzZWlzaGlob25zaHVnaVwgOwor5LiA5Y215oCn5Y+M55Sf5YWQID4gaWNoaXJhbnNlaXNvdXNlaWppXCA7CivlnLDkuK3mtbfmgKfmsJflgJkgPiBjaGljaHV1a2Fpc2Vpa2lrb3VcIDsKK+aKleizh+acieS+oeiovOWIuCA+IHRvdXNoaXl1dWthc2hvdWtlblwgOwor5YmN5pa55YaN6KOc57Wm54K5ID4gemVucG91c2FpaG9reXV1dGVuXCA7Civnq4vmhrLlkJvkuLvmlL/kvZMgPiByaWtrZW5rdW5zaHVzZWl0YWlcIDsKK+aUvumAgeemgeatoueUqOiqniA+IGhvdXNvdWtpbnNoaXlvdWdvXCA7CivljYHkuIDpnaLoprPkuJbpn7MgPiBqdXVpY2hpbWVua2FuemVvblwgOwor5b2i54q26KiY5oa25ZCI6YeRID4ga2Vpam91a2lva3Vnb3VraW5cIDsKK+ihjOWLleeZuui1t+aZguWIuyA+IGtvdWRvdWhha2tpamlrb2t1XCA7CivljYHpg6jploDliIbpoZ7ms5UgPiBqdXVidW1vbmJ1bnJ1aWhvdVwgOwor5LiW55WM5LiA5ZGo5peF6KGMID4gc2VrYWlpc3NodXVyeW9rb3VcIDsKK+S4lueVjOS6uuaoqeWuo+iogCA+IHNla2Fpamlua2Vuc2VuZ2VuXCA7CivlhaznmoTljLvnmYLmqZ/plqIgPiBrb3V0ZWtpaXJ5b3VraWthblwgOwor5Y+X5YON5Zyf5Zyn5L+C5pWwID4ganVkb3Vkb2F0c3VrZWlzdXVcIDsKK+S4jeeiuuWumuaAp+WOn+eQhiA+IGZ1a2FrdXRlaXNlaWdlbnJpXCA7CivkuoznrYnovrrkuInop5LlvaIgPiBuaXRvdWhlbnNhbmtha2tlaVwgOwor5pS/5Luk5oyH5a6a6YO95biCID4gc2VpcmVpc2hpdGVpdG9zaGlcIDsKK+eEoeaLheS/neWAn+WFpemHkSA+IG11dGFucG9rYXJpaXJla2luXCA7CivljZjkvY3lirTlg43ntYTlkIggPiB0YW4nJ2lyb3Vkb3VrdW1pYWlcIDsKK+S4reWkruWHpueQhuijhee9riA+IGNodXVvdXNob3Jpc291Y2hpXCA7CivmrKflt57pgJrosqjljZjkvY0gPiBvdXNodXV0c3V1a2F0YW4nJ2lcIDsKK+iHqueUseiyv+aYk+W4r+WfnyA+IGppeXV1Ym91ZWtpdGFpaWtpXCA7CivmgYvmhJvoh7PkuIrkuLvnvqkgPiByZW4nJ2Fpc2hpam91c2h1Z2lcIDsKK+iHquWLlei7iuS/nemZuuaWmSA+IGppZG91c2hhaG9rZW5yeW91XCA7CivmiKbloLToiKrnqbrpmLvmraIgPiBzZW5qb3Vrb3VrdXVzb3NoaVwgOwor57Wx5ZCI5Y+C6KyA5pys6YOoID4gdG91Z291c2FuYm91aG9uYnVcIDsKK+acgOmVt+S4jeWAkui3nemboiA+IHNhaWNob3VmdXRvdWt5b3JpXCA7CivljbDosaHkuLvnvqnpn7Pmpb0gPiBpbnNob3VzaHVnaW9uZ2FrdVwgOwor6L+R5Luj5LqU56iu56u25oqAID4ga2luZGFpZ29zaHVreW91Z2lcIDsKK+W+jOaWueWcsOWfn+itpuWCmSA+IGtvdWhvdWNoaWlraWtlaWJpXCA7Civoh6rli5Xmk43nuKboo4Xnva4gPiBqaWRvdXNvdWp1dXNvdWNoaVwgOwor6YO95biC5a++5oqX6YeO55CDID4gdG9zaGl0YWlrb3V5YWt5dXVcIDsKK+mHkeWJm+WknOWPieWmmeeOiyA+IGtvbmdvdXlhc2hhbXlvdW91XCA7Civpq5jpgJ/mvJTnrpfmqZ/mp4sgPiBrb3Vzb2t1ZW56YW5raWtvdVwgOwor6aOb6KGM56aB5q2i56m65Z+fID4gaGlrb3VraW5zaGlrdXVpa2lcIDsKK+eSsOWig+S/neitt+irluiAhSA+IGthbmt5b3Vob2dvcm9uc2hhXCA7CivpgLHplpPlpKnmsJfkuojloLEgPiBzaHV1a2FudGVua2l5b2hvdVwgOwor5pS+5bCE57ea5oSf5Y+X5oCnID4gaG91c2hhc2Vua2FuanVzZWlcIDsKK+ekvuS8muawkeS4u+S4u+e+qSA+IHNoYWthaW1pbnNodXNodWdpXCA7Civpg6jliIbmg4XloLHmp4vpgKAgPiBidWJ1bmpvdWhvdWtvdXpvdVwgOwor5LiA5oyZ5omL5LiA5oqV6LazID4gaWtreW9zaHVpdHRvdXNva3VcIDsKK+acieW9ouWbuuWumuizh+eUoyA+IHl1dWtlaWtvdGVpc2hpc2FuXCA7Civpo5vooYzoqJjpjLLoo4Xnva4gPiBoaWtvdWtpcm9rdXNvdWNoaVwgOwor6KKr5ouF5L+d5YK15qip6aGNID4gaGl0YW5wb3NhaWtlbmdha3VcIDsKK+S6jOS6pOabv+WItuWKtOWDjSA+IG5pa291dGFpc2Vpcm91ZG91XCA7Civkv53lrojns7vnhKHmiYDlsZ4gPiBob3NodWtlaW11c2hvem9rdVwgOwor5Y+N6Lui5YiG5biD5L+C5pWwID4gaGFudGVuYnVucHVrZWlzdXVcIDsKK+epuuaMuumZjeS4i+WcsOWfnyA+IGt1dXRlaWtvdWthY2hpaWtpXCA7CivngavlipvmlK/mj7Tpg6jpmoogPiBrYXJ5b2t1c2hpZW5idXRhaVwgOwor5q2M6Iie5LyO5Y2B5YWr55WqID4ga2FidWtpanV1aGFjaGliYW5cIDsKK+Wkp+mHj+egtOWjiuWFteWZqCA+IHRhaXJ5b3VoYWthaWhlaWtpXCA7Civlj43lsITkv4LmlbDnt5rlm7MgPiBoYW5zaGFrZWlzdXVzZW56dVwgOwor57Sg57KS5a2Q5Yqg6YCf5ZmoID4gc29yeXV1c2hpa2Fzb2t1a2lcIDsKK+iHqueUseiyv+aYk+WcsOWfnyA+IGppeXV1Ym91ZWtpY2hpaWtpXCA7CivlhazplovluILloLTmk43kvZwgPiBrb3VrYWlzaGlqb3Vzb3VzYVwgOwor5Lq66Lqr5L+d6K235Luk54q2ID4gamluc2hpbmhvZ29yZWlqb3VcIDsKK+avjeWtkOWBpeW6t+aJi+W4syA+IGJvc2hpa2Vua291dGVjaG91XCA7CivljprnlJ/lubTph5Hkv53pmbogPiBrb3VzZWluZW5raW5ob2tlblwgOwor5oCn6KGM54K65oSf5p+T55eHID4gc2Vpa291aWthbnNlbnNob3VcIDsKK+eUn+WRveS/nemZuuS8muekviA+IHNlaW1laWhva2VuZ2Fpc2hhXCA7Civnp4HmnInosqHnlKPliLbluqYgPiBzaGl5dXV6YWlzYW5zZWlkb1wgOwor5LiA5Zu95LiA5YWa5Li7576pID4gaWtrb2t1aXR0b3VzaHVnaVwgOwor5pel5pys6YGT6Lev5YWs5ZujID4gbmlob25kb3Vyb2tvdWRhblwgOwor5a6f6Le155CG5oCn5om55YikID4gamlzc2VucmlzZWloaWhhblwgOwor5aSa6YeN5ZCN5YmN56m66ZaTID4gdGFqdXVuYW1hZWt1dWthblwgOwor5bmz5ZKM57at5oyB5rS75YuVID4gaGVpd2FpamlrYXRzdWRvdVwgOwor5LqM5Y215oCn5Y+M55Sf5YWQID4gbmlyYW5zZWlzb3VzZWlqaVwgOwor5Li76L6e57Sg5oCn6KaP57SEID4gc2h1amlzb3NlaWtpeWFrdVwgOwor5aWz5oCn6Kej5pS+6YGL5YuVID4gam9zZWlrYWlob3V1bmRvdVwgOwor54Kt6YW45ZCM5YyW5L2c55SoID4gdGFuc2FuZG91a2FzYXlvdVwgOwor5LqM5aSn5pS/5YWa5Li7576pID4gbmlkYWlzZWl0b3VzaHVnaVwgOwor5LiN57SU55Ww5oCn5Lqk6YGKID4gZnVqdW4nJ2lzZWlrb3V5dXVcIDsKK+mqqOearueti+WPs+ihm+mWgCA+IGhvbmVrYXdhc3VqaWVtb25cIDsKK+a1hemWk+WxseiNmOS6i+S7tiA+IGFzYW1hc2Fuc291amlrZW5cIDsKK+eSsOWig+S/neitt+S4u+e+qSA+IGthbmt5b3Vob2dvc2h1Z2lcIDsKK+S4lueVjOiyv+aYk+apn+mWoiA+IHNla2FpYm91ZWtpa2lrYW5cIDsKK+eEoeW9ouWbuuWumuizh+eUoyA+IG11a2Vpa290ZWlzaGlzYW5cIDsKK+mfs+WjsOWkmumHjeaUvumAgSA+IG9uc2VpdGFqdXVob3Vzb3VcIDsKK+iEs+aAp+Wwj+WFkOm6u+eXuiA+IG5vdXNlaXNob3VuaW1haGlcIDsKK+Wkp+adseS6nOWFseaghOWcjyA+IGRhaXRvdWFreW91ZWlrZW5cIDsKK+Wwj+WjsueJqeS+oeaMh+aVsCA+IGtvdXJpYnVra2FzaGlzdXVcIDsKK+iHqueUseS4u+e+qee1jOa4iCA+IGppeXV1c2h1Z2lrZWl6YWlcIDsKK+WknOmWk+mgkOmHkeOAheW6qyA+IHlha2FuJyd5b2tpbmtpbmtvXCA7CivpgKPpgqbmupblgpnliLbluqYgPiByZW5wb3VqdW5iaXNlaWRvXCA7CivotoXpgY7li6Tli5nmiYvlvZMgPiBjaG91a2FraW5tdXRlYXRlXCA7Civkuojlgpnlo6vlrpjlrabmoKEgPiB5b2Jpc2hpa2FuZ2Fra291XCA7CivnlLvlg4/lh6bnkIboo4Xnva4gPiBnYXpvdXNob3Jpc291Y2hpXCA7Civlha3ljYHlm5vliIbpn7PnrKYgPiByb2t1anV1c2hpYnVvbnB1XCA7CivmlL7lsITmgKflkIzkvY3kvZMgPiBob3VzaGFzZWlkb3VpdGFpXCA7CivlpJzplpPpoJDph5Hph5HluqsgPiB5YWthbicneW9raW5raW5rb1wgOwor5Lqc54ax5biv6auY5rCX5ZynID4gYW5ldHRhaWtvdWtpYXRzdVwgOwor56OB5rCX5YWx6bO055S75YOPID4gamlraWt5b3VtZWlnYXpvdVwgOwor6bOl542j5L+d6K235Yy65Z+fID4gY2hvdWp1dWhvZ29rdWlraVwgOwor5Zu96Zqb5o+05Yqp5qmf6ZaiID4ga29rdXNhaWVuam9raWthblwgOwor54Sh5pS/5bqc5Li7576p6ICFID4gbXVzZWlmdXNodWdpc2hhXCA7CivkuJbnlYzkv53lgaXmqZ/plqIgPiBzZWthaWhva2Vua2lrYW5cIDsKK+S6jOWNgeWbm+aZgumWk+WItiA+IG5panV1eW9qaWthbnNlaVwgOwor55yL6K235amm6aSK5oiQ5omAID4ga2FuZ29mdXlvdXNlaWpvXCA7CivkuI3lvZPlirTlg43ooYzngrogPiBmdXRvdXJvdWRvdWtvdWlcIDsKK+iLpuaDheWHpueQhuapn+mWoiA+IGt1am91c2hvcmlraWthblwgOwor6KOc5Yqp6KiY5oa26KOF572uID4gaG9qb2tpb2t1c291Y2hpXCA7CivmloflrZflpJrph43mlL7pgIEgPiBtb2ppdGFqdXVob3Vzb3VcIDsKK+WMu+W4q+WbveWutuippumokyA+IGlzaGlrb2trYXNoaWtlblwgOwor6IKi5L2T5LiN6Ieq55Sx5YWQID4gc2hpdGFpZnVqaXl1dWppXCA7Civku67lkI3mvKLlrZflpInmj5sgPiBrYW5ha2FuamloZW5rYW5cIDsKK+WbveWutuWFrOWLmeWToeazlSA+IGtva2tha291bXVpbmhvdVwgOwor5oSP5b+X5rG65a6a5qmf6ZaiID4gaXNoaWtldHRlaWtpa2FuXCA7CivkuLvovp7ntKDmgKfljp/nkIYgPiBzaHVqaXNvc2VpZ2VucmlcIDsKK+W8geitt+Wjq+S6i+WLmeaJgCA+IGJlbmdvc2hpamltdXNob1wgOwor6Ieq55Sx5Li7576p5Zu95a62ID4gaml5dXVzaHVnaWtva2thXCA7CivnlJ/lkb3ntq3mjIHoo4Xnva4gPiBzZWltZWlpamlzb3VjaGlcIDsKK+aWh+Wtl+espuWPt+WMluazlSA+IG1vamlmdWdvdWthaG91XCA7CivljZfnhKHpmL/lvKXpmYDku48gPiBuYW11YW1pZGFidXRzdVwgOwor6Kqe5b2Z5qmf6IO95paH5rOVID4gZ29pa2lub3VidW5wb3VcIDsKK+WAtuaiqOS8vee+hee0i+e0iyA+IGt1cmlrYXJhbW9ubW9uXCA7CivkuInljYHkuozliIbpn7PnrKYgPiBzYW5qdXVuaWJ1b25wdVwgOwor5oiR5Yip5oiR5Yip5Lqh6ICFID4gZ2FyaWdhcmltb3VqYVwgOwor5a6I56eY576p5YuZ6YGV5Y+NID4gc2h1aGlnaW11aWhhblwgOwor5piv5piv6Z2e6Z2e5Li7576pID4gemV6ZWhpaGlzaHVnaVwgOwor54OP6Iq75rKZ5pGp5aaZ546LID4gdXN1c2FtYW15b3VvdVwgOwor5Luj6KGo5Y+W57eg5b25ID4gZGFpaHlvdXRvcmlzaGltYXJpeWFrdVwgOwor5Y+W5omx6Kqs5piO5pu4ID4gdG9yaWF0c3VrYWlzZXRzdW1laXNob1wgOwor5Zu956uL5Y2a54mp6aSoID4ga29rdXJpdHN1aGFrdWJ1dHN1a2FuXCA7Civpm4bkuK3msrvnmYLlrqQgPiBzaHV1Y2h1dWNoaXJ5b3VzaGl0c3VcIDsKK+ebtOi9hOakjeawkeWcsCA+IGNob2trYXRzdXNob2t1bWluY2hpXCA7CivmnKjpgKDlu7rnr4nniakgPiBtb2t1em91a2VuY2hpa3VidXRzdVwgOwor5qSN54mp5oCn6JuL55m9ID4gc2hva3VidXRzdXNlaXRhbnBha3VcIDsKK+S/oeeUqOWPluW8leWFiCA+IHNoaW4nJ3lvdXRvcmloaWtpc2FraVwgOwor5bi45YuZ5Y+W57eg5b25ID4gam91bXV0b3Jpc2hpbWFyaXlha3VcIDsKK+S4g+aYn+WkqemBk+iZqyA+IG5hbmFob3NoaXRlbnRvdW11c2hpXCA7CivmsJHml4/lpKfomZDmrrogPiBtaW56b2t1ZGFpZ3lha3VzYXRzdVwgOwor6LaK5bm055Sf5qSN54mpID4gZXRzdW5lbnNlaXNob2t1YnV0c3VcIDsKK+ani+aIkOe0oOe1seW+oSA+IGtvdXNlaXNva291em91dG91Z3lvXCA7Civnm7TmjqXnm67nmoToqp4gPiBjaG9rdXNldHN1bW9rdXRla2lnb1wgOwor5bCC5YuZ5Y+W57eg5b25ID4gc2VubXV0b3Jpc2hpbWFyaXlha3VcIDsKK+S4gOW5tOeUn+akjeeJqSA+IGljaGluZW5zZWlzaG9rdWJ1dHN1XCA7Civpurvolqzlj5bnt6Dnj60gPiBtYXlha3V0b3Jpc2hpbWFyaWhhblwgOwor6bq76Jas5Y+W57eg5rOVID4gbWF5YWt1dG9yaXNoaW1hcmlob3VcIDsKK+S4reW/g+eahOW9ueWJsiA+IGNodXVzaGludGVraXlha3V3YXJpXCA7Civlj47nuK7mnJ/ooYDlnKcgPiBzaHV1c2h1a3VraWtldHN1YXRzdVwgOwor5Y2Y5a2Q6JGJ5qSN54mpID4gdGFuc2hpeW91c2hva3VidXRzdVwgOwor6YCj56uL5pa556iL5byPID4gcmVucml0c3Vob3V0ZWlzaGlraVwgOwor6YCa5ZWG55Sj5qWt55yBID4gdHN1dXNob3VzYW5neW91c2hvdVwgOwor5Y6f5a2Q5Yqb55m66Zu7ID4gZ2Vuc2hpcnlva3VoYXRzdWRlblwgOwor55u05o6l5rCR5Li75Yi2ID4gY2hva3VzZXRzdW1pbnNodXNlaVwgOwor6YCy5Ye65Yi26ZmQ57eaID4gc2hpbnNodXRzdXNlaWdlbnNlblwgOwor5qCq5byP5Y+W5byV5omAID4ga2FidXNoaWtpdG9yaWhpa2lqb1wgOwor55u05o6l5pWZ5o6I5rOVID4gY2hva3VzZXRzdWt5b3VqdWhvdVwgOwor5Y+M5a2Q6JGJ5qSN54mpID4gc291c2hpeW91c2hva3VidXRzdVwgOwor6Iql5bed6b6N5LmL5LuLID4gYWt1dGFnYXdhcnl1dW5vc3VrZVwgOwor6LK45YCf5a++54Wn6KGoID4gdGFpc2hha3V0YWlzaG91aHlvdVwgOwor5YWs5a6a5Ymy5byV546HID4ga291dGVpd2FyaWJpa2lyaXRzdVwgOwor5by36L+r56We57WM55eHID4ga3lvdWhha3VzaGlua2Vpc2hvdVwgOwor5ZWG5qWt5L+h55So54q2ID4gc2hvdWd5b3VzaGluJyd5b3Vqb3VcIDsKK+i8uOWHuuS/oeeUqOeKtiA+IHl1c2h1dHN1c2hpbicneW91am91XCA7Civml6fmlrDntITlhajmm7ggPiBreXV1c2hpbicneWFrdXplbnNob1wgOwor5Ye65YWl5Zu9566h55CGID4gc2h1dHN1bnl1dWtva3VrYW5yaVwgOwor6Zqc5a6z54mp56u26LWwID4gc2hvdWdhaWJ1dHN1a3lvdXNvdVwgOwor5pi85YWJ6Imy6Zu755CDID4gY2h1dWtvdXNob2t1ZGVua3l1dVwgOwor5aSp54S26Imy5YaZ55yfID4gdGVuJyduZW5zaG9rdXNoYXNoaW5cIDsKK+awtOWKm+eZuumbu+aJgCA+IHN1aXJ5b2t1aGF0c3VkZW5zaG9cIDsKK+e0oOWHuuWKm+adoeS7tiA+IHNvc2h1dHN1cnlva3Vqb3VrZW5cIDsKK+Wbveawkee3j+aUr+WHuiA+IGtva3VtaW5zb3VzaGlzaHV0c3VcIDsKK+akjeeJqeaAp+iEguiCqiA+IHNob2t1YnV0c3VzZWlzaGlib3VcIDsKK+aXp+aWsOe0hOiBluabuCA+IGt5dXVzaGluJyd5YWt1c2Vpc2hvXCA7CivplbfmnJ/osrjku5jph5EgPiBjaG91a2lrYXNoaXRzdWtla2luXCA7CivnlJ/nianniannkIblraYgPiBzZWlidXRzdWJ1dHN1cmlnYWt1XCA7CivlubPlrrbnianoqp7mioQgPiBoZWlrZW1vbm9nYXRhcmlzaG91XCA7CivoprPlr5/nmoTnoJTnqbYgPiBrYW5zYXRzdXRla2lrZW5reXV1XCA7Civos4PosrjlgJ/lpZHntIQgPiBjaGludGFpc2hha3VrZWl5YWt1XCA7CivlvrPlt53lhazniLXpgrggPiB0b2t1Z2F3YWtvdXNoYWt1dGVpXCA7Civnsr7npZ7liIboo4Lnl4cgPiBzZWlzaGluYnVucmV0c3VzaG91XCA7CivlpKrpmb3nhrHnmbrpm7sgPiB0YWl5b3VuZXRzdWhhdHN1ZGVuXCA7CivmtbflpJbnlZnlrabnhrEgPiBrYWlnYWlyeXV1Z2FrdW5ldHN1XCA7CivlporlqKDkuK3mr5Lnl4cgPiBuaW5zaGluY2h1dWRva3VzaG91XCA7Civni6znq4vmjqHnrpfliLYgPiBkb2t1cml0c3VzYWlzYW5zZWlcIDsKK+W4guWgtOWNoOacieeOhyA+IHNoaWpvdXNlbicneXV1cml0c3VcIDsKK+imluiBtOimmuaVmeadkCA+IHNoaWNob3VrYWt1a3lvdXphaVwgOwor5YaF6Zaj5rOV5Yi25bGAID4gbmFpa2FrdWhvdXNlaWt5b2t1XCA7CivkuK3lsI/kvIHmpa3luoEgPiBjaHV1c2hvdWtpZ3lvdWNob3VcIDsKK+abuOewoeS9k+Wwj+iqrCA+IHNob2thbnRhaXNob3VzZXRzdVwgOwor56S+5Lya55Sf54mp5a2mID4gc2hha2Fpc2VpYnV0c3VnYWt1XCA7Civou43pmorooYzpgLLmm7IgPiBndW50YWlrb3VzaGlua3lva3VcIDsKK+iRrOmAgeihjOmAsuabsiA+IHNvdXNvdWtvdXNoaW5reW9rdVwgOwor54mp55CG55qE54++6LGhID4gYnV0c3VyaXRla2lnZW5zaG91XCA7Civlv4Poh5PlvIHohpznl4cgPiBzaGluem91YmVubWFrdXNob3VcIDsKK+iGneiTi+iFseWPjeWwhCA+IHNoaXRzdWdhaWtlbmhhbnNoYVwgOwor5L+457Wm55Sf5rS76ICFID4gaG91a3l1dXNlaWthdHN1c2hhXCA7CivnlJ/nianmg4XloLHlraYgPiBzZWlidXRzdWpvdWhvdWdha3VcIDsKK+WkmuW5tOeUn+akjeeJqSA+IHRhbmVuc2Vpc2hva3VidXRzdVwgOwor6YeP5a2Q54mp55CG5a2mID4gcnlvdXNoaWJ1dHN1cmlnYWt1XCA7CivljJfnsbPlkIjooYblm70gPiBob2t1YmVpZ2Fzc2h1dWtva3VcIDsKK+adpeWuouiKs+WQjemMsiA+IHJhaWt5YWt1aG91bWVpcm9rdVwgOwor5Zyw5pa55qSc5a+f5bqBID4gY2hpaG91a2Vuc2F0c3VjaG91XCA7CivlsILploDnmoTnn6XorZggPiBzZW5tb250ZWtpY2hpc2hpa2lcIDsKK+e1kOWpmuihjOmAsuabsiA+IGtla2tvbmtvdXNoaW5reW9rdVwgOwor5qCq5byP6YWN5b2T6YeRID4ga2FidXNoaWtpaGFpdG91a2luXCA7CivnibnliKXphY3lvZPph5EgPiB0b2t1YmV0c3VoYWl0b3VraW5cIDsKK+e1jOa4iOaIkOmVt+eOhyA+IGtlaXphaXNlaWNob3VyaXRzdVwgOwor55Sj5qWt5Yil57WE5ZCIID4gc2FuZ3lvdWJldHN1a3VtaWFpXCA7CivlhKrnrYnljZLmpa3nlJ8gPiB5dXV0b3Vzb3RzdWd5b3VzZWlcIDsKK+WFpeWbveeuoeeQhuWxgCA+IG55dXVrb2t1a2FucmlreW9rdVwgOwor6ZaT5o6l5pKu5b2x5rOVID4ga2Fuc2V0c3VzYXRzdWVpaG91XCA7Civlrp/nianlpKfmqKHlnosgPiBqaXRzdWJ1dHN1ZGFpbW9rZWlcIDsKK+i7jeS6i+eahOS+teeVpSA+IGd1bmppdGVraXNoaW5yeWFrdVwgOwor56mN5YiG5pa556iL5byPID4gc2VraWJ1bmhvdXRlaXNoaWtpXCA7CivnqY3nrpfpm7vlipvoqIggPiBzZWtpc2FuZGVucnlva3VrZWlcIDsKK+S6jOW5tOeUn+akjeeJqSA+IG5pbmVuc2Vpc2hva3VidXRzdVwgOwor5Y2D5Lmd55m+5bm05LujID4gc2Vua3l1dWh5YWt1bmVuZGFpXCA7Civnp5HlrabljZrnianppKggPiBrYWdha3VoYWt1YnV0c3VrYW5cIDsKK+S4reWbveWFseeUo+WFmiA+IGNodXVnb2t1a3lvdXNhbnRvdVwgOwor6auY5YiG5a2Q54mp6LOqID4ga291YnVuc2hpYnVzc2hpdHN1XCA7CivnmbrpgZTlv4PnkIblraYgPiBoYXR0YXRzdXNoaW5yaWdha3VcIDsKK+eyvuelnuiWhOW8seiAhSA+IHNlaXNoaW5oYWt1amFrdXNoYVwgOwor54m55Yil6KGM5pS/5Yy6ID4gdG9rdWJldHN1Z3lvdXNlaWt1XCA7CivkuInoibLljbDliLfms5UgPiBzYW5zaG9rdWluc2F0c3Vob3VcIDsKK+aOkuWNteiqmOeZuuWJpCA+IGhhaXJhbicneXV1aGF0c3V6YWlcIDsKK+eUn+a0u+W/hemcgOWTgSA+IHNlaWthdHN1aGl0c3VqdWhpblwgOwor5bCR5bm06ZGR5Yil5omAID4gc2hvdW5lbmthbmJldHN1c2hvXCA7CivluqfpqqjnpZ7ntYznl5sgPiB6YWtvdHN1c2hpbmtlaXRzdXVcIDsKK+akjeawkeWcsOaUv+etliA+IHNob2t1bWluY2hpc2Vpc2FrdVwgOwor6Ki85Yi45Y+W5byV5rOVID4gc2hvdWtlbnRvcmloaWtpaG91XCA7CivllYblk4Hlm57ou6LnjocgPiBzaG91aGlua2FpdGVucml0c3VcIDsKK+evgOi2s+WLleeJqemWgCA+IHNlc3Nva3Vkb3VidXRzdW1vblwgOwor6KiI566X55Sf54mp5a2mID4ga2Vpc2Fuc2VpYnV0c3VnYWt1XCA7CivlsLHogbfmg4XloLHoqowgPiBzaHV1c2hva3Vqb3Vob3VzaGlcIDsKK+W7uuioreeahOmWouS/giA+IGtlbnNldHN1dGVraWthbmtlaVwgOwor5a6i5a6k5LmX5YuZ5ZOhID4ga3lha3VzaGl0c3Vqb3VtdWluXCA7CivmlK/mjIHlipvlrprlvI8gPiBzaGlqaXJ5b2t1dGVpc2hpa2lcIDsKK+WLleeJqeihjOWLleWtpiA+IGRvdWJ1dHN1a291ZG91Z2FrdVwgOwor6IG36IO95Luj6KGo5Yi2ID4gc2hva3Vub3VkYWloeW91c2VpXCA7CivmnIDpq5jmpJzlr5/luoEgPiBzYWlrb3VrZW5zYXRzdWNob3VcIDsKK+W/g+elnuiAl+W8seiAhSA+IHNoaW5zaGlubW91amFrdXNoYVwgOwor54Sh6ISK5qSO5YuV54mpID4gbXVzZWtpdHN1aWRvdWJ1dHN1XCA7CivlrrblroXkvrXlhaXnvaogPiBrYXRha3VzaGluJydueXV1emFpXCA7CivliIblrZDnlJ/nianlraYgPiBidW5zaGlzZWlidXRzdWdha3VcIDsKK+WkqeS9k+WGmeecn+ihkyA+IHRlbnRhaXNoYXNoaW5qdXRzdVwgOwor56eY5a+G5ryP5rSp572qID4gaGltaXRzdXJvdXNldHN1emFpXCA7CivplpPmjqXnm67nmoToqp4gPiBrYW5zZXRzdW1va3V0ZWtpZ29cIDsKK+eymOa2suWIhuazjOiFuiA+IG5lbicnZWtpYnVucGl0c3VzZW5cIDsKK+eerOmWk+aOpeedgOWJpCA+IHNodW5rYW5zZXRjaGFrdXphaVwgOwor5Lq65Y+j5a+G6ZuG546HID4gamlua291bWlzc2h1dXJpdHN1XCA7Civljp/oibLlhpnnnJ/niYggPiBnZW5zaG9rdXNoYXNoaW5iYW5cIDsKK+mHj+WtkOiJsuWKm+WtpiA+IHJ5b3VzaGlpcm9yaWtpZ2FrdVwgOwor5Zyo5pel57Gz6Zm46LuNID4gemFpbmljaGliZWlyaWt1Z3VuXCA7Civpo5/lk4Hmt7vliqDniakgPiBzaG9rdWhpbnRlbmthYnV0c3VcIDsKK+WLleeJqeaAp+ibi+eZvSA+IGRvdWJ1dHN1c2VpdGFucGFrdVwgOwor54m55a6a6YO15L6/5bGAID4gdG9rdXRlaXl1dWJpbmt5b2t1XCA7Civngavlipvnmbrpm7vmiYAgPiBrYXJ5b2t1aGF0c3VkZW5zaG9cIDsKK+WkmuinkuW8j+i+sualrSA+IHRha2FrdXNoaWtpbm91Z3lvdVwgOwor5rC45LiW5Lit56uL5Zu9ID4gZWlzZWljaHV1cml0c3Vrb2t1XCA7CivllK/nianlvIHoqLzms5UgPiB5dWlidXRzdWJlbnNob3Vob3VcIDsKK+WPsueahOWUr+eJqeirliA+IHNoaXRla2l5dWlidXRzdXJvblwgOwor5a6j6KqT5L6b6L+w5pu4ID4gc2Vuc2Vpa3lvdWp1dHN1c2hvXCA7CivnhrHohqjlvLXkv4LmlbAgPiBuZXRzdWJvdWNob3VrZWlzdXVcIDsKK+akjeeJqeaAp+e5iue2rSA+IHNob2t1YnV0c3VzZWlzZW4nJ2lcIDsKK+mBjuWkseWCt+Wus+e9qiA+IGthc2hpdHN1c2hvdWdhaXphaVwgOwor5YWx5ZCM5Ym16Kit6ICFID4ga3lvdWRvdXNvdXNldHN1c2hhXCA7CivkuIrntJrlia/npL7plbcgPiBqb3VreXV1ZnVrdXNoYWNob3VcIDsKK+aIpueVpeeahOaPkOaQuiA+IHNlbnJ5YWt1dGVraXRlaWtlaVwgOwor55Kw5aKD5bqB6ZW35a6YID4ga2Fua3lvdWNob3VjaG91a2FuXCA7CivlnKflipvoqr/mlbTlmaggPiBhdHN1cnlva3VjaG91c2Vpa2lcIDsKK+eUn+murumjn+aWmeWTgSA+IHNlaXNlbnNob2t1cnlvdWhpblwgOwor5pS+5bCE5oCn54mp6LOqID4gaG91c2hhc2VpYnVzc2hpdHN1XCA7CivlnLDnkIPniannkIblraYgPiBjaGlreXV1YnV0c3VyaWdha3VcIDsKK+WPjeWul+aVmeaUuemdqSA+IGhhbnNodXVreW91a2Fpa2FrdVwgOwor5a2m6K2Y57WM6aiT6ICFID4gZ2FrdXNoaWtpa2Vpa2Vuc2hhXCA7CivotaTpnaLmgZDmgJbnl4cgPiBzZWtpbWVua3lvdWZ1c2hvdVwgOwor6aOf5ZOB6KGb55Sf5rOVID4gc2hva3VoaW4nJ2Vpc2VpaG91XCA7CivmlZnogbflk6HntYTlkIggPiBreW91c2hva3Vpbmt1bWlhaVwgOwor5q+b5rKi5p2x5Li75bitID4gbW91dGFrdXRvdXNodXNla2lcIDsKK+WIpemAlOepjeeri+mHkSA+IGJldHRvdHN1bWl0YXRla2luXCA7Civov5Tkv6HmlpnokYnmm7ggPiBoZW5zaGlucnlvdWhhZ2FraVwgOwor6Ku46LuK6YCa6KGM5q2iID4gc2hvc2hhdHN1dWtvdWRvbWVcIDsKK+WbveWcn+W6gemVt+WumCA+IGtva3Vkb2Nob3VjaG91a2FuXCA7Civli6flloTmh7LmgqrliocgPiBrYW56ZW5jaG91YWt1Z2VraVwgOwor5Yy75a2m55Sf54mp5a2mID4gaWdha3VzZWlidXRzdWdha3VcIDsKK+mdnuaomea6luaLoeW8tSA+IGhpaHlvdWp1bmtha3VjaG91XCA7CivlpKrpmb3lhYnnmbrpm7sgPiB0YWl5b3Vrb3VoYXRzdWRlblwgOwor6L+U5L+h55So6JGJ5pu4ID4gaGVuc2hpbicneW91aGFnYWtpXCA7CivnnJ/nj6DppIrmrpbloLQgPiBzaGluanV5b3VzaG9rdWpvdVwgOwor6IKL6ZaT56We57WM55ebID4gcm9ra2Fuc2hpbmtlaXRzdXVcIDsKK+a1t+a0i+eJqeeQhuWtpiA+IGthaXlvdWJ1dHN1cmlnYWt1XCA7Civnsr7npZ7nmoToi6bnl5sgPiBzZWlzaGludGVraWt1dHN1dVwgOwor5Lqk5rWB55m66Zu75qmfID4ga291cnl1dWhhdHN1ZGVua2lcIDsKK+eLqeeMn+aOoembhuawkSA+IHNodXJ5b3VzYWlzaHV1bWluXCA7CivmiKbpl5jmraPpnaLluYUgPiBzZW50b3VzaG91bWVuaGFiYVwgOwor5LiN5L+h5Lu75oqV56WoID4gZnVzaGluJyduaW50b3VoeW91XCA7CivpgIHph5Hlj5flj5bkurogPiBzb3VraW4nJ3VrZXRvcmluaW5cIDsKK++8pO+8su+8s+eQhuirliA+IGRpXCDMhGFcIMyEcnVlc3VyaXJvblwgOwor6aOf57On566h55CG5rOVID4gc2hva3VyeW91a2Fucmlob3VcIDsKK+ebsuiFuOeCjuaJi+ihkyA+IG1vdWNob3VlbnNodWp1dHN1XCA7CivnrKzkuIDntJrmrrrkurogPiBkYWlpa2t5dXVzYXRzdWppblwgOwor5oim55Wl5qC45YW15ZmoID4gc2Vucnlha3VrYWt1aGVpa2lcIDsKK+WHjee1kOmYsuatouWJpCA+IHRvdWtldHN1Ym91c2hpemFpXCA7CivkuK3plpPphY3lvZPpoY0gPiBjaHV1a2FuaGFpdG91Z2FrdVwgOwor6auY6YCf5aKX5q6W54KJID4ga291c29rdXpvdXNob2t1cm9cIDsKK+i/lOS/oeaWmeWwgeetkiA+IGhlbnNoaW5yeW91ZnV1dG91XCA7CivooZvmmJ/lnLDnkIPlsYAgPiBlaXNlaWNoaWt5dXVreW9rdVwgOwor5Zyo55WZ5aSW5Zu95Lq6ID4gemFpcnl1dWdhaWtva3VqaW5cIDsKK+eUo+alreW7g+ajhOeJqSA+IHNhbmd5b3VoYWlraWJ1dHN1XCA7CivlpKnnhLboqJjlv7XniakgPiB0ZW4nJ25lbmtpbmVuYnV0c3VcIDsKK+WHuueUn+iovOaYjuabuCA+IHNodXNzZWlzaG91bWVpc2hvXCA7CivkuIrntJrnrqHnkIbogbcgPiBqb3VreXV1a2FucmlzaG9rdVwgOwor56iO6Zai55Sz5ZGK5pu4ID4gemVpa2Fuc2hpbmtva3VzaG9cIDsKK+i/lOS/oeeUqOWwgeetkiA+IGhlbnNoaW4nJ3lvdWZ1dXRvdVwgOwor54ax54uC55qE5L+h6ICFID4gbmVra3lvdXRla2lzaGluamFcIDsKK+S8gealremWk+S/oeeUqCA+IGtpZ3lvdWthbnNoaW4nJ3lvdVwgOwor6ZaL5ouT6ICF57K+56WeID4ga2FpdGFrdXNoYXNlaXNoaW5cIDsKK+a3seWcqOaAp+ecn+iPjCA+IHNoaW56YWlzZWlzaGlua2luXCA7CivmnZHokL3lhbHlkIzkvZMgPiBzb25yYWt1a3lvdWRvdXRhaVwgOwor5LiK6Zm455So6Iif6ImHID4gam91cmlrdXlvdXNodXV0ZWlcIDsKK+WPpOeUn+eJqeWtpuiAhSA+IGtvc2VpYnV0c3VnYWt1c2hhXCA7CivplovnmbrpgJTkuIrlm70gPiBrYWloYXRzdXRvam91a29rdVwgOwor6KGA5Zyn6ZmN5LiL5YmkID4ga2V0c3VhdHN1a291a2F6YWlcIDsKK+eEoeW3ruWIpeeIhuaSgyA+IG11c2FiZXRzdWJha3VnZWtpXCA7CivlubPlkoznmoTop6PmsbogPiBoZWl3YXRla2lrYWlzZXRzdVwgOwor6aOf5ZOB5Yqg5bel5qWtID4gc2hva3VoaW5rYWtvdWd5b3VcIDsKK+mrmOe0muS9j+WuheWcsCA+IGtvdWt5dXVqdXV0YWt1Y2hpXCA7CivpgY7lpLHoh7TmrbvnvaogPiBrYXNoaXRzdWNoaXNoaXphaVwgOwor6auY6aGN5omA5b6X6ICFID4ga291Z2FrdXNob3Rva3VzaGFcIDsKK+WNgeS4gOmdouims+mfsyA+IGp1dWljaGltZW5rYW4nJ25vblwgOwor5pyI57WM5Zuw6Zuj55eHID4gZ2Vra2Vpa29uJyduYW5zaG91XCA7Civlm73pmpvopovmnKzluIIgPiBrb2t1c2FpbWlob24nJ2ljaGlcIDsKK+e3keWcsOWMluioiOeUuyA+IHJ5b2t1Y2hpa2FrZWlrYWt1XCA7CivkuK3mnqLnpZ7ntYzns7sgPiBjaHV1c3V1c2hpbmtlaWtlaVwgOwor5a6f6aiT55qE56CU56m2ID4gamlra2VudGVraWtlbmt5dXVcIDsKK+WwgueUqOmnkOi7iuWgtCA+IHNlbicneW91Y2h1dXNoYWpvdVwgOwor54Sh6YGO5aSx6LKs5Lu7ID4gbXVrYXNoaXRzdXNla2luaW5cIDsKK+S4gOasoeaWueeoi+W8jyA+IGljaGlqaWhvdXRlaXNoaWtpXCA7CivlsLHmpa3mmYLplpPkuK0gPiBzaHV1Z3lvdWppa2FuY2h1dVwgOwor5Zu95rCR5LyR5pqH5p2RID4ga29rdW1pbmt5dXVrYW11cmFcIDsKK+WtkOWuruWkluWmiuWooCA+IHNoaWt5dXVnYWluaW5zaGluXCA7CivnhKHmi4Xkv53osrjku5ggPiBtdXRhbnBva2FzaGl0c3VrZVwgOwor5LiA57KS5a2Q5pei57SEID4gaWNoaXJ5dXVzaGlraXlha3VcIDsKK+S8gealreWIpee1hOWQiCA+IGtpZ3lvdWJldHN1a3VtaWFpXCA7CivkuI3ms5XkvrXlhaXogIUgPiBmdWhvdXNoaW4nJ255dXVzaGFcIDsKK+WPjuepq+aEn+isneelrSA+IHNodXVrYWt1a2Fuc2hhc2FpXCA7CivmjIflkJHmgKfniIbolqwgPiBzaGlrb3VzZWliYWt1eWFrdVwgOwor5b+D5Zug5oCn5Y+N5b+cID4gc2hpbicnaW5zZWloYW4nJ25vdVwgOwor5Lqc54ax5biv5qSN54mpID4gYW5ldHRhaXNob2t1YnV0c3VcIDsKK+WGhemWo+e3j+i+nuiBtyA+IG5haWtha3Vzb3VqaXNob2t1XCA7CivoqLzliLjlj5blvJXmiYAgPiBzaG91a2VudG9yaWhpa2lqb1wgOwor5bGI5oqY5pyb6YGg6Y+hID4ga3Vzc2V0c3Vib3Vlbmt5b3VcIDsKK+atr+eJmeefr+ato+ihkyA+IHNoaWdha3lvdXNlaWp1dHN1XCA7CivljZjntLDog57nlJ/niakgPiB0YW5zYWlib3VzZWlidXRzdVwgOwor5pel5pys6Jas5bGA5pa5ID4gbmlob24nJ3lha2t5b2t1aG91XCA7Civmt7HlsaTlv4PnkIblraYgPiBzaGluc291c2hpbnJpZ2FrdVwgOwor57K+56We6JaE5byx5YWQID4gc2Vpc2hpbmhha3VqYWt1amlcIDsKK+WMluWtpuaWueeoi+W8jyA+IGthZ2FrdWhvdXRlaXNoaWtpXCA7CivmgKXpmY3kuIvniIbmkoMgPiBreXV1a291a2FiYWt1Z2VraVwgOwor5rC05LiK55Sf5rS76ICFID4gc3Vpam91c2Vpa2F0c3VzaGFcIDsKK+WcqOWtpuiovOaYjuabuCA+IHphaWdha3VzaG91bWVpc2hvXCA7CivmpI3msJHlnLDntbHmsrsgPiBzaG9rdW1pbmNoaXRvdWNoaVwgOwor6Zai5pWw5pa556iL5byPID4ga2Fuc3V1aG91dGVpc2hpa2lcIDsKK+aOqOmAsueglOeptuaJgCA+IHN1aXNoaW5rZW5reXV1c2hvXCA7CivmiKbooZPmoLjlhbXlmaggPiBzZW5qdXRzdWtha3VoZWlraVwgOwor55m65bGV55qE6Kej5raIID4gaGF0dGVudGVraWthaXNob3VcIDsKK+Wbveeri+Wbs+abuOmkqCA+IGtva3VyaXRzdXRvc2hva2FuXCA7CivkuInooYzluoPlkYrmrIQgPiBzYW5neW91a291a29rdXJhblwgOwor5Yun5qWt5Y2a6Kan5LyaID4ga2FuZ3lvdWhha3VyYW5rYWlcIDsKK+WIhuaekOW/g+eQhuWtpiA+IGJ1bnNla2lzaGlucmlnYWt1XCA7CivmlZnogrLlv4PnkIblraYgPiBreW91aWt1c2hpbnJpZ2FrdVwgOwor5qWt5YuZ5LiK6YGO5aSxID4gZ3lvdW11am91a2FzaGl0c3VcIDsKK+aIkOe4vuiovOaYjuabuCA+IHNlaXNla2lzaG91bWVpc2hvXCA7CivlhaXlrablv5fpoZjogIUgPiBueXV1Z2FrdXNoaWdhbnNoYVwgOwor5Lit5aSu5pS+6YCB5bGAID4gY2h1dW91aG91c291a3lva3VcIDsKK+WFseWQjOebuOe2muS6uiA+IGt5b3Vkb3Vzb3V6b2t1bmluXCA7CivnoJTnqbbnmbrooajkvJogPiBrZW5reXV1aGFwcHlvdWthaVwgOwor5aSp5L2T5YiG5YWJ6KGTID4gdGVudGFpYnVua291anV0c3VcIDsKK+eQg+mdouS4ieinkuazlSA+IGt5dXVtZW5zYW5rYWt1aG91XCA7CivoqIjph4/ntYzmuIjlraYgPiBrZWlyeW91a2VpemFpZ2FrdVwgOwor6JGX5L2c5qip5L615a6zID4gY2hvc2FrdWtlbnNoaW5nYWlcIDsKK+eJueWIpeW8geitt+S6uiA+IHRva3ViZXRzdWJlbmdvbmluXCA7Civlr4zlm73lvLflhbXnrZYgPiBmdWtva3VreW91aGVpc2FrdVwgOwor5LqI5oOz5Y+O56mr6auYID4geW9zb3VzaHV1a2FrdWRha2FcIDsKK+ihgOWPi+eXheaCo+iAhSA+IGtldHN1eXV1YnlvdWthbmphXCA7Civnm7Top5LkuInop5LlvaIgPiBjaG9ra2FrdXNhbmtha2tlaVwgOwor6ZeH5L6h5qC85Y2U5a6aID4geWFtaWtha2FrdWt5b3V0ZWlcIDsKK+i1pOWklue3muWGmeecnyA+IHNla2lnYWlzZW5zaGFzaGluXCA7CivlpKnnmofmqZ/plqLoqqwgPiB0ZW4nJ25vdWtpa2Fuc2V0c3VcIDsKK+WFrOiovOS6uuW9ueWgtCA+IGtvdXNob3VuaW4nJ3lha3ViYVwgOwor6LaF54++5a6f5Li7576pID4gY2hvdWdlbmppdHN1c2h1Z2lcIDsKK+S6jOalteecn+epuueuoSA+IG5pa3lva3VzaGlua3V1a2FuXCA7CivpmKrnpZ7lpKfpnIfngb0gPiBoYW5zaGluZGFpc2hpbnNhaVwgOwor5rOV5a6a5b6X56Wo5pWwID4gaG91dGVpdG9rdWh5b3VzdXVcIDsKK+ioreeri+i2o+aEj+abuCA+IHNldHN1cml0c3VzaHVpc2hvXCA7CivlpJblm73kurrnmbvpjLIgPiBnYWlrb2t1amludG91cm9rdVwgOwor6Lqr5L2T6Zqc5a6z6ICFID4gc2hpbnRhaXNob3VnYWlzaGFcIDsKK+a2iOiyu+iAheS/oeeUqCA+IHNob3VoaXNoYXNoaW4nJ3lvdVwgOwor6YiN6KeS5LiJ6KeS5b2iID4gZG9ua2FrdXNhbmtha3VrZWlcIDsKK+a1t+mbo+WvqeWIpOW6gSA+IGthaW5hbnNoaW5wYW5jaG91XCA7Civniq/nvarnmbrnlJ/njocgPiBoYW56YWloYXNzZWlyaXRzdVwgOwor5b6u55Sf54mp5a2m6ICFID4gYmlzZWlidXRzdWdha3VzaGFcIDsKK+S4g+iJsuWUkOi+m+WtkCA+IG5hbmFpcm90b3VnYXJhc2hpXCA7CivlhazogbfpgbjmjJnms5UgPiBrb3VzaG9rdXNlbmt5b2hvdVwgOwor5a6a5b2i6YO15L6/54mpID4gdGVpa2VpeXV1YmluYnV0c3VcIDsKK+WvvuS4reWbvemWouS/giA+IHRhaWNodXVnb2t1a2Fua2VpXCA7Civnp5HlrabmioDooZPluoEgPiBrYWdha3VnaWp1dHN1Y2hvdVwgOwor5aSn6Iux5Y2a54mp6aSoID4gZGFpZWloYWt1YnV0c3VrYW5cIDsKK+WLleiEiOehrOWMlueXhyA+IGRvdW15YWt1a291a2FzaG91XCA7CivluJ3njovnpZ7mqKnoqqwgPiB0ZWlvdXNoaW5rZW5zZXRzdVwgOwor5a6H5a6Z5aSn54iG55m6ID4gdWNodXVkYWliYWt1aGF0c3VcIDsKK+mmluebuOWFvOWkluebuCA+IHNodXNob3VrZW5nYWlzaG91XCA7CivnlJ/nianlnLDnkIblraYgPiBzZWlidXRzdWNoaXJpZ2FrdVwgOwor5Y6f5a2Q54mp55CG5a2mID4gZ2Vuc2hpYnV0c3VyaWdha3VcIDsKK+eVpeWPluiqmOaLkOe9qiA+IHJ5YWt1c2h1eXV1a2FpemFpXCA7CivlpKnkvZPniannkIblraYgPiB0ZW50YWlidXRzdXJpZ2FrdVwgOwor6ZmN5Zyn5aSJ5Zyn5ZmoID4ga291YXRzdWhlbicnYXRzdWtpXCA7CivmnbHljbDluqbkvJrnpL4gPiBoaWdhc2hpaW5kb2dhaXNoYVwgOwor54mp6LOq5Li7576p6ICFID4gYnVzc2hpdHN1c2h1Z2lzaGFcIDsKK+Wbvemam+eahOiyv+aYkyA+IGtva3VzYWl0ZWtpYm91ZWtpXCA7CivkuK3mgKflrZDniIblvL4gPiBjaHV1c2Vpc2hpYmFrdWRhblwgOwor5Luj5pWw5pa556iL5byPID4gZGFpc3V1aG91dGVpc2hpa2lcIDsKK+W5s+Wdh+WkqumZveaXpSA+IGhlaWtpbnRhaXlvdWppdHN1XCA7CivkubPlhZDmrbvkuqHnjocgPiBueXV1amlzaGlib3VyaXRzdVwgOwor5LiH5Zu95Y2a6Kan5LyaID4gYmFua29rdWhha3VyYW5rYWlcIDsKK+mYsuihm+aWveioreW6gSA+IGJvdWVpc2hpc2V0c3VjaG91XCA7CivmnInmlpnpp5Dou4rloLQgPiB5dXVyeW91Y2h1dXNoYWpvdVwgOwor6Ieo5bqK5b+D55CG5a2mID4gcmluc2hvdXNoaW5yaWdha3VcIDsKK+WGmeecn+mAseWIiuiqjCA+IHNoYXNoaW5zaHV1a2Fuc2hpXCA7Civlt6jnn7PoqJjlv7XniakgPiBreW9zZWtpa2luZW5idXRzdVwgOwor5LqM5YWD5pa556iL5byPID4gbmlnZW5ob3V0ZWlzaGlraVwgOwor6YGT576p55qE6LKs5Lu7ID4gZG91Z2l0ZWtpc2VraW5pblwgOwor542F5a2Q5ZSQ6L6b5a2QID4gc2hpc2hpdG91Z2FyYXNoaVwgOwor5rCX6LGh6Kaz5ris6Ii5ID4ga2lzaG91a2Fuc29rdXNlblwgOwor5Lq654y/5ZCM56WW6KqsID4gamluJydlbmRvdXNvc2V0c3VcIDsKK+Wbo+S9k+S6pOa4ieaoqSA+IGRhbnRhaWtvdXNob3VrZW5cIDsKK+WvvuS6uuaBkOaAlueXhyA+IHRhaWppbmt5b3VmdXNob3VcIDsKK+iEs+iEiumrhOiGnOeCjiA+IG5vdXNla2l6dWltYWt1ZW5cIDsKK+imgeazqOaEj+S6uueJqSA+IHlvdWNodXVpamluYnV0c3VcIDsKK+WtpuagoeaVmeiCsuazlSA+IGdha2tvdWt5b3Vpa3Vob3VcIDsKK+eOi+aoqeelnuaOiOiqrCA+IG91a2Vuc2hpbmp1c2V0c3VcIDsKK+ecn+mDqOWIhumbhuWQiCA+IHNoaW5idWJ1bnNodXVnb3VcIDsKK+eLrOWNoOemgeatouazlSA+IGRva3VzZW5raW5zaGlob3VcIDsKK+WxhemWk+WFvOWvneWupCA+IGltYWtlbnNoaW5zaGl0c3VcIDsKK+WFrOensOizh+acrOmHkSA+IGtvdXNob3VzaGlob25raW5cIDsKK+mbu+WLleeZuuWLleapnyA+IGRlbmRvdWhhdHN1ZG91a2lcIDsKK+W/nOeUqOeJqeeQhuWtpiA+IG91eW91YnV0c3VyaWdha3VcIDsKK+S4ieWNgeWFq+W6pue3miA+IHNhbmp1dWhhY2hpZG9zZW5cIDsKK+iqjeefpeW/g+eQhuWtpiA+IG5pbmNoaXNoaW5yaWdha3VcIDsKK+W3pealreaJgOacieaoqSA+IGtvdWd5b3VzaG95dXVrZW5cIDsKK+WkmuWkiemHj+ino+aekCA+IHRhaGVucnlvdWthaXNla2lcIDsKK+a4hea2vOmjsuaWmeawtCA+IHNlaXJ5b3VpbnJ5b3VzdWlcIDsKK+mHkeWIqeeUn+a0u+iAhSA+IGtpbnJpc2Vpa2F0c3VzaGFcIDsKK+mBuuiogOWft+ihjOiAhSA+IHl1aWdvbnNoaWtrb3VzaGFcIDsKK+iyv+aYk+WkluWPjuaUryA+IGJvdWVraWdhaXNodXVzaGlcIDsKK+afk+iJsuS9k+WcsOWbsyA+IHNlbnNob2t1dGFpY2hpenVcIDsKK+S4u+W4reeglOeptuWToSA+IHNodXNla2lrZW5reXV1aW5cIDsKK+mrmOmAn+W6puWGmeecnyA+IGtvdXNva3Vkb3NoYXNoaW5cIDsKK+mrmOasoeaWueeoi+W8jyA+IGtvdWppaG91dGVpc2hpa2lcIDsKK+W+ruWIhuaWueeoi+W8jyA+IGJpYnVuaG91dGVpc2hpa2lcIDsKK+mDteS+v+engeabuOeusSA+IHl1dWJpbnNoaXNob2Jha29cIDsKK+aWnOagvOaAp+e1seW+oSA+IHNoYWtha3VzZWl0b3VneW9cIDsKK+e1jOWPo+mBv+WmiuiWrCA+IGtlaWtvdWhpbmluJyd5YWt1XCA7CivkurrmnZDplovnmbrpg6ggPiBqaW56YWlrYWloYXRzdWJ1XCA7CivkuIflm73mqJnmupbmmYIgPiBiYW5rb2t1aHlvdWp1bmppXCA7CivpmLLooZvluoHplbflrpggPiBib3VlaWNob3VjaG91a2FuXCA7CivlkKvmsLTljJblkIjniakgPiBnYW5zdWlrYWdvdWJ1dHN1XCA7CivplqLmnbHlpKfpnIfngb0gPiBrYW50b3VkYWlzaGluc2FpXCA7Civoo4XnlLLlm57lj47ou4ogPiBzb3Vrb3VrYWlzaHV1c2hhXCA7CivlnLDmlrnooYzosqHmlL8gPiBjaGlob3VneW91emFpc2VpXCA7CivmgKfooajnj77mg4XloLEgPiBzZWloeW91Z2Vuam91aG91XCA7CivluIzmnJvnmoToprPmuKwgPiBraWJvdXRla2lrYW5zb2t1XCA7Civlj43lsITmuJvoobDph48gPiBoYW5zaGFnZW5zdWlyeW91XCA7CivlpInmhYvlv4PnkIblraYgPiBoZW50YWlzaGlucmlnYWt1XCA7CivmrKflt57lhbHlkIzkvZMgPiBvdXNodXVreW91ZG91dGFpXCA7CivntKvlpJbnt5rnmYLms5UgPiBzaGlnYWlzZW5yeW91aG91XCA7CivpnZ7mraboo4XkuK3nq4sgPiBoaWJ1c291Y2h1dXJpdHN1XCA7CivkuLvluK3lpJbkuqTlrpggPiBzaHVzZWtpZ2Fpa291a2FuXCA7CivntLDog57os6rpgbrkvJ0gPiBzYWlib3VzaGl0c3VpZGVuXCA7CivlhbHnlKPlhZrlrqPoqIAgPiBreW91c2FudG91c2VuZ2VuXCA7Civlt6Hlm57oqLrnmYLmiYAgPiBqdW5rYWlzaGlucnlvdWpvXCA7CivmupDms4nmiYDlvpfnqI4gPiBnZW5zZW5zaG90b2t1emVpXCA7CivntYTogbflirTlg43ogIUgPiBzb3Nob2t1cm91ZG91c2hhXCA7CivlirTlg43ogIXpmo7ntJogPiByb3Vkb3VzaGFrYWlreXV1XCA7Civmi6HlpKflho3nlJ/nlKMgPiBrYWt1ZGFpc2Fpc2Vpc2FuXCA7CivkuIrntJroo4HliKTmiYAgPiBqb3VreXV1c2FpYmFuc2hvXCA7CivnpoHmrLLkuLvnvqnogIUgPiBraW4nJ3lva3VzaHVnaXNoYVwgOwor54m55q6K5r2c6Iiq6ImHID4gdG9rdXNodXNlbmtvdXRlaVwgOwor5pyA5oG15Zu95b6F6YGHID4gc2Fpa2Vpa29rdXRhaWd1dVwgOwor5YWx55Sj5Li7576p5Zu9ID4ga3lvdXNhbnNodWdpa29rdVwgOwor5Y6f5ZGK5a++6KKr5ZGKID4gZ2Vua29rdXRhaWhpa29rdVwgOwor5Y+X6KiX5Y+O6LOE572qID4ganV0YWt1c2h1dXdhaXphaVwgOwor5rWB6KGM5oCn5oSf5YaSID4gcnl1dWtvdXNlaWthbmJvdVwgOwor5Zu95rCR57eP55Sf55SjID4ga29rdW1pbnNvdXNlaXNhblwgOwor5Lit6Led6Zui56u26LWwID4gY2h1dWt5b3Jpa3lvdXNvdVwgOwor5YWo5Zu955qE56+E5ZuyID4gemVua29rdXRla2loYW4nJ2lcIDsKK+mAo+mCpuWFseWSjOWbvSA+IHJlbnBvdWt5b3V3YWtva3VcIDsKK+aZrumBjeeahOazleWJhyA+IGZ1aGVudGVraWhvdXNva3VcIDsKK+Wkp+e1semgmOmBuOaMmSA+IGRhaXRvdXJ5b3VzZW5reW9cIDsKK+aXpeeMtuWQjOelluirliA+IG5pY2hpeXV1ZG91c29yb25cIDsKK+S4oeabv+aJi+aVsOaWmSA+IHJ5b3VnYWV0ZXN1dXJ5b3VcIDsKK+izh+acrOWIqeebiueOhyA+IHNoaWhvbnJpZWtpcml0c3VcIDsKK+aIpui7iuaPmumZuOiJpiA+IHNlbnNoYXlvdXJpa3VrYW5cIDsKK+WjsuaYpemYsuatouazlSA+IGJhaXNodW5ib3VzaGlob3VcIDsKK+WFieWMluWtpuWPjeW/nCA+IGtvdWthZ2FrdWhhbicnbm91XCA7Civou43kuovlvZPlsYDogIUgPiBndW5qaXRvdWt5b2t1c2hhXCA7CivogonkvZPlirTlg43ogIUgPiBuaWt1dGFpcm91ZG91c2hhXCA7Civoh6rkuLvmtYHpgJrnsbMgPiBqaXNodXJ5dXV0c3V1bWFpXCA7CivnrKzkuIDmrKHnlKPmpa0gPiBkYWlpY2hpamlzYW5neW91XCA7Civlrp/lrZjkuLvnvqnogIUgPiBqaXRzdXpvbnNodWdpc2hhXCA7Civnj77lrp/kuLvnvqnogIUgPiBnZW5qaXRzdXNodWdpc2hhXCA7Civlj43mlL/lupzli6LlipsgPiBoYW5zZWlmdXNlaXJ5b2t1XCA7CivlhY3nlqvkuI3lhajnl4cgPiBtZW4nJ2VraWZ1emVuc2hvdVwgOwor5Y2B6YCy5YiG6aGe5rOVID4gamlzc2hpbmJ1bnJ1aWhvdVwgOwor5YG25YOP5pWZ5b6S55qEID4gZ3V1em91a3lvdXRvdGVraVwgOwor57SF55m95q2M5ZCI5oimID4ga291aGFrdXV0YWdhc3NlblwgOwor57WM5riI56CU56m25omAID4ga2VpemFpa2Vua3l1dXNob1wgOwor6LuN5LqL6YCa5L+h5ZOhID4gZ3Vuaml0c3V1c2hpbicnaW5cIDsKK+Wfuua6luWGheizg+mHkSA+IGtpanVuJyduYWljaGluZ2luXCA7CivnnIzluoHmiYDlnKjlnLAgPiBrZW5jaG91c2hvemFpY2hpXCA7CivnnJ/lrpflpKfosLfmtL4gPiBzaGluc2h1dW9vdGFuaWhhXCA7Civlho3lhaXlm73oqLHlj68gPiBzYWlueXV1a29rdWt5b2thXCA7Civoi7Hlm73lm73mlZnkvJogPiBlaWtva3Vrb2treW91a2FpXCA7CivmuIXmlZnlvpLpnanlkb0gPiBzZWlreW91dG9rYWt1bWVpXCA7CivlpKrpmb3npZ7ntYzlj6IgPiB0YWl5b3VzaGlua2Vpc291XCA7CivntYzllrblrabkv67lo6sgPiBrZWllaWdha3VzaHV1c2hpXCA7CivlgaXlurfoqLzmmI7mm7ggPiBrZW5rb3VzaG91bWVpc2hvXCA7CivnpL7kvJrlv4PnkIblraYgPiBzaGFrYWlzaGlucmlnYWt1XCA7CivlhazlhbHkvIHmpa3kvZMgPiBrb3VreW91a2lneW91dGFpXCA7Civpg73luILlho3plovnmbogPiB0b3NoaXNhaWthaWhhdHN1XCA7CivmlL7lsITnt5rnmYLms5UgPiBob3VzaGFzZW5yeW91aG91XCA7Civlm73pgKPliIbmi4Xph5EgPiBrb2t1cmVuYnVudGFua2luXCA7CivlrprmnJ/liIrooYzniakgPiB0ZWlraWthbmtvdWJ1dHN1XCA7CivmlLvmkoPplovlp4vnt5ogPiBrb3VnZWtpa2Fpc2hpc2VuXCA7CivlubPpnaLkuInop5Lms5UgPiBoZWltZW5zYW5rYWt1aG91XCA7Civms5XlrprkvJ3mn5Pnl4UgPiBob3V0ZWlkZW5zZW5ieW91XCA7CivkuK3ot53pm6Lnq7bkuokgPiBjaHV1a3lvcmlreW91c291XCA7CivkuInlj4nnpZ7ntYznl5sgPiBzYW5zYXNoaW5rZWl0c3V1XCA7CivlhKrli53msbrlrprmiKYgPiB5dXVzaG91a2V0dGVpc2VuXCA7CivmnIDkvY7nlJ/mtLvosrsgPiBzYWl0ZWlzZWlrYXRzdWhpXCA7CivlupznnIzliKXkurrlj6MgPiBmdWtlbmJldHN1amlua291XCA7Civmjqjlrprnm7jntprkurogPiBzdWl0ZWlzb3V6b2t1bmluXCA7CivlpJrlm73nsY3kvIHmpa0gPiB0YWtva3VzZWtpa2lneW91XCA7CivmmbTkuIDmmYLlsI/pm6ggPiBoYXJlaWNoaWppa29zYW1lXCA7CivlraPnr4DlirTlg43ogIUgPiBraXNldHN1cm91ZG91c2hhXCA7CivkuK3lsI/oq7jlm73lrrYgPiBjaG91c2hvdXNob2tva2thXCA7CivkuI3lubPnrYnmnaHntIQgPiBmdWJ5b3Vkb3Vqb3V5YWt1XCA7CivmnIDkvY7os4Pph5HliLYgPiBzYWl0ZWljaGluZ2luc2VpXCA7CivluJ3lm73kuLvnvqnnmoQgPiB0ZWlrb2t1c2h1Z2l0ZWtpXCA7CivntI3nqI7pgJrnn6Xmm7ggPiBub3V6ZWl0c3V1Y2hpc2hvXCA7CivplqLnqI7libLlvZPliLYgPiBrYW56ZWl3YXJpYXRlc2VpXCA7CivlsYXkvY/oqLzmmI7mm7ggPiBreW9qdXVzaG91bWVpc2hvXCA7CivlpKfkvb/ntJrkvJroq4cgPiB0YWlzaGlreXV1a2FpZGFuXCA7CivmsJHkuLvmtLvli5XlrrYgPiBtaW5zaHVrYXRzdWRvdWthXCA7CivlrqLlk6HnoJTnqbblk6EgPiBreWFrdWlua2Vua3l1dWluXCA7CivmlK/mjIHlipvkv4LmlbAgPiBzaGlqaXJ5b2t1a2Vpc3V1XCA7Civnm7TkuIvlnovlnLDpnIcgPiBjaG9ra2FnYXRhamlzaGluXCA7CivmnKrop6PmsbrllY/poYwgPiBtaWthaWtldHN1bW9uZGFpXCA7Civlu7rnr4nln7rmupbms5UgPiBrZW5jaGlrdWtpanVuaG91XCA7Civnn6XnmoTmiYDmnInmqKkgPiBjaGl0ZWtpc2hveXV1a2VuXCA7Civogbfmpa3lronlrprmiYAgPiBzaG9rdWd5b3VhbnRlaWpvXCA7CivlhbHnlKPlhZrntLDog54gPiBreW91c2FudG91c2FpYm91XCA7CivkuIDlubTnlJ/ojYnmnKwgPiBpY2hpbmVuc2Vpc291aG9uXCA7CivmnaHntITliqDnm5/lm70gPiBqb3V5YWt1a2FtZWlrb2t1XCA7Civnq4vmraPkvbzmiJDkvJogPiByaXNzaG91a291c2Vpa2FpXCA7CivlhbHoprPnpo/pn7Pmm7ggPiBreW91a2FuZnVrdWluc2hvXCA7Civpq5jmiYDmgZDmgJbnl4cgPiBrb3VzaG9reW91ZnVzaG91XCA7CivmlrDogZ7osqnlo7LlupcgPiBzaGluYnVuaGFuYmFpdGVuXCA7CivovrLmnpfmsLTnlKPnnIEgPiBub3VyaW5zdWlzYW5zaG91XCA7CivkuozogIXpgbjkuIDms5UgPiBuaXNoYXNlbicnaXRzdWhvdVwgOwor5aKD55WM5YCk5ZWP6aGMID4ga3lvdWthaWNoaW1vbmRhaVwgOwor56S+5Lya5Lq66YeO55CDID4gc2hha2FpamluJyd5YWt5dXVcIDsKK+iPnOmjn+S4u+e+qeiAhSA+IHNhaXNob2t1c2h1Z2lzaGFcIDsKK+i7jeeUo+ikh+WQiOS9kyA+IGd1bnNhbmZ1a3Vnb3V0YWlcIDsKK+eyvuelnuWMu+WtpuiAhSA+IHNlaXNoaW4nJ2lnYWt1c2hhXCA7CivntYzmuIjkvIHnlLvluoEgPiBrZWl6YWlraWtha3VjaG91XCA7CivlhYjnq6/mlK/mjIHlipsgPiBzZW50YW5zaGlqaXJ5b2t1XCA7Civkv53lgaXniannkIblraYgPiBob2tlbmJ1dHN1cmlnYWt1XCA7CivliIbop6Pokrjmupzms5UgPiBidW5rYWlqb3VyeXV1aG91XCA7CivoqIjph4/oqIDoqp7lraYgPiBrZWlyeW91Z2VuZ29nYWt1XCA7CivlnLDln5/mjK/oiIjliLggPiBjaGlpa2lzaGlua291a2VuXCA7CivmgKXpgLLkuLvnvqnogIUgPiBreXV1c2hpbnNodWdpc2hhXCA7CivkuqTpgJrpgYvovLjmpa0gPiBrb3V0c3V1dW4nJ3l1Z3lvdVwgOwor54Sh5Yi26ZmQ5L6b57WmID4gbXVzZWlnZW5reW91a3l1dVwgOwor57Wm5LiO5omA5b6X6ICFID4ga3l1dXlvc2hvdG9rdXNoYVwgOwor5oim6ZeY54iG5pKD5qmfID4gc2VudG91YmFrdWdla2lraVwgOwor5p6X5qWt6Kmm6aiT5aC0ID4gcmluZ3lvdXNoaWtlbmpvdVwgOwor5pOy5by+55m65bCE562SID4gdGVraWRhbmhhc3NoYXRvdVwgOwor55Sj6LuN6KSH5ZCI5L2TID4gc2FuZ3VuZnVrdWdvdXRhaVwgOwor5pyA5aSn5YWs57SE5pWwID4gc2FpZGFpa291eWFrdXN1dVwgOwor5Zu95YaF5raI6LK756iOID4ga29rdW5haXNob3VoaXplaVwgOwor5bCR5bm05a+p5Yik5omAID4gc2hvdW5lbnNoaW5wYW5qb1wgOwor5rWB6KGM5oCn6IKd54KOID4gcnl1dWtvdXNlaWthbicnZW5cIDsKK+a6lua6luaxuuWLneaIpiA+IGp1bmp1bmtlc3Nob3VzZW5cIDsKK+S4jeWujOWFqOeHg+eEvCA+IGZ1a2FuemVuJyduZW5zaG91XCA7Civljp/lrZDlipvmmYLku6MgPiBnZW5zaGlyeW9rdWppZGFpXCA7CivovrLmpa3oqabpqJPloLQgPiBub3VneW91c2hpa2Vuam91XCA7Civpq5jpgJ/luqbmkq7lvbEgPiBrb3Vzb2t1ZG9zYXRzdWVpXCA7Civlpb3msJfmgKfnlJ/niakgPiBrb3VraXNlaXNlaWJ1dHN1XCA7Civlrrbluq3lhoXmmrTlipsgPiBrYXRlaW5haWJvdXJ5b2t1XCA7CivlnKjnsY3lsILlvpPogIUgPiB6YWlzZWtpc2VuanV1c2hhXCA7CivlrpjosrvnlZnlrabnlJ8gPiBrYW5waXJ5dXVnYWt1c2VpXCA7CivljZfljJfmnJ3mmYLku6MgPiBuYW5ib2t1Y2hvdWppZGFpXCA7CivmrbvkuqHoqLrmlq3mm7ggPiBzaGlib3VzaGluZGFuc2hvXCA7CivlvKbmpb3lm5vph43lpY8gPiBnZW5nYWt1c2hpanV1c291XCA7Civku7Loo4Hoo4HliKTmiYAgPiBjaHV1c2Fpc2FpYmFuc2hvXCA7CivnkIboq5bniannkIblraYgPiByaXJvbmJ1dHN1cmlnYWt1XCA7CivlhajoiKzliY3lk6jnt5ogPiB6ZW5wYW56ZW5zaG91c2VuXCA7CivljYHkuozmjIfohbjomasgPiBqdXVuaXNoaWNob3VjaHV1XCA7CivlnJ/mnKjlt6XlrabogIUgPiBkb2Jva3Vrb3VnYWt1c2hhXCA7Civml6XkuK3pn5PntbHlkIggPiBuaXRjaHV1a2FudG91Z291XCA7Civmi6HlvLXlgI3nsr7luqYgPiBrYWt1Y2hvdWJhaXNlaWRvXCA7CivlirTlg43lj47lrrnmiYAgPiByb3Vkb3VzaHV1eW91c2hvXCA7CivnhKHnnYDpmbjpo5vooYwgPiBtdWNoYWt1cmlrdWhpa291XCA7Civml6Xku5jlpInmm7Tnt5ogPiBoaWR6dWtlaGVua291c2VuXCA7CivlvZPkuovogIXog73lipsgPiB0b3VqaXNoYW5vdXJ5b2t1XCA7CivmkI3nm4roqIjnrpfmm7ggPiBzb24nJ2VraWtlaXNhbnNob1wgOwor5oCl6KGM5YGc6LuK6aeFID4ga3l1dWtvdXRlaXNoYWVraVwgOwor5Y+N5qSN5rCR5Li7576pID4gaGFuc2hva3VtaW5zaHVnaVwgOwor5qW15L2O5rip56eR5a2mID4ga3lva3V0ZWlvbmthZ2FrdVwgOwor5YaZ55yf5pyb6YGg6Y+hID4gc2hhc2hpbmJvdWVua3lvdVwgOwor5aaZ5rOV6JOu6I+v57WMID4gbXlvdWhvdXJlbmdla3lvdVwgOwor5a6f55So5Li7576p6ICFID4gaml0c3V5b3VzaHVnaXNoYVwgOwor5b6M5pa56YCj57Wh57eaID4ga291aG91cmVucmFrdXNlblwgOwor5a6f6aiT5b+D55CG5a2mID4gamlra2Vuc2hpbnJpZ2FrdVwgOwor5LiN5rOV5YWl5Zu96ICFID4gZnVob3VueXV1a29rdXNoYVwgOwor5aSa5YWD5pa556iL5byPID4gdGFnZW5ob3V0ZWlzaGlraVwgOwor5Zu95YaF57eP55Sf55SjID4ga29rdW5haXNvdXNlaXNhblwgOwor6YmE6YGT5YWs5a6J5a6YID4gdGV0c3Vkb3Vrb3VhbmthblwgOwor5bmz5Y+w5Z6L6LKo6LuKID4gaGlyYWRhaWdhdGFrYXNoYVwgOwor5Lq656ew5Luj5ZCN6KmeID4gbmluc2hvdWRhaW1laXNoaVwgOwor5a6f5qWt5LmL5pel5pysID4gaml0c3VneW91bm9uaWhvblwgOwor56mN5bGk5Lm+6Zu75rGgID4gc2VraXNvdWthbmRlbmNoaVwgOwor6KGM5pS/566h55CG5bqBID4gZ3lvdXNlaWthbnJpY2hvdVwgOwor6LWk5Y2B5a2X5p2h57SEID4gc2VraWp1dWppam91eWFrdVwgOwor5YWJ5a2m6aGV5b6u6Y+hID4ga291Z2FrdWtlbmJpa3lvdVwgOwor5by35Yi25Y+O5a655omAID4ga3lvdXNlaXNodXV5b3Vqb1wgOwor54qv572q5b+D55CG5a2mID4gaGFuemFpc2hpbnJpZ2FrdVwgOwor6YCj6YKm5o2c5p+75bGAID4gcmVucG91c291c2FreW9rdVwgOwor5aSn6Zm456e75YuV6KqsID4gdGFpcmlrdWlkb3VzZXRzdVwgOwor5LyB5qWt5YaF5pWZ6IKyID4ga2lneW91bmFpa3lvdWlrdVwgOwor56qS57Sg6YW45YyW54mpID4gY2hpc3Nvc2Fua2FidXRzdVwgOwor5bid546L5YiH6ZaL6KGTID4gdGVpb3VzZWtrYWlqdXRzdVwgOwor5pil5qmf55m65YuV5pyfID4gc2h1bmtpaGF0c3Vkb3VraVwgOwor5aSp5bmV6KO96YCg5Lq6ID4gdGVubWFrdXNlaXpvdW5pblwgOwor5pyA5YSq56eA6YG45omLID4gc2FpeXV1c2h1dXNlbnNodVwgOwor5Yud5Yip5Y+I5Yud5YipID4gc2hvdXJpbWF0YXNob3VyaVwgOwor5aWz5rWB5paH5a2m6ICFID4gam9yeXV1YnVuZ2FrdXNoYVwgOwor6ICQ5LmF5raI6LK76LKhID4gdGFpa3l1dXNob3VoaXphaVwgOwor6Z2e5YWs5byP5Y2U6K2wID4gaGlrb3VzaGlraWt5b3VnaVwgOwor56m65riv5L2/55So5paZID4ga3V1a291c2hpeW91cnlvdVwgOwor54Sh6YeN5Yqb54q25oWLID4gbXVqdXVyeW9rdWpvdXRhaVwgOwor5aSp54Wn55qH5aSn56WeID4gdGVuc2hvdWtvdWRhaWppblwgOwor57K+56We5a6J5a6a5YmkID4gc2Vpc2hpbicnYW50ZWl6YWlcIDsKK+mFuOaAp+mFuOWMlueJqSA+IHNhbnNlaXNhbmthYnV0c3VcIDsKK+WGmeWun+S4u+e+qeiAhSA+IHNoYWppdHN1c2h1Z2lzaGFcIDsKK+WGt+aIpuWei+aAneiAgyA+IHJlaXNlbmdhdGFzaGlrb3VcIDsKK+mbu+WtkOW3pealreS8miA+IGRlbnNoaWtvdWd5b3VrYWlcIDsKK+mbu+WtkOW3peWtpuiAhSA+IGRlbnNoaWtvdWdha3VzaGFcIDsKK+awkeS4u+WFseWSjOWbvSA+IG1pbnNodWt5b3V3YWtva3VcIDsKK+eLrOeri+iomOW/teaXpSA+IGRva3VyaXRzdWtpbmVuYmlcIDsKK+WMluWtpuiqv+WRs+aWmSA+IGthZ2FrdWNob3VtaXJ5b3VcIDsKK+e1gui6q+mbh+eUqOWItiA+IHNodXVzaGlua295b3VzZWlcIDsKK+S4jeWumuaWueeoi+W8jyA+IGZ1dGVpaG91dGVpc2hpa2lcIDsKK+Wkp+S/rumBk+mZoumVtyA+IGRhaXNodXVkb3VpbmNob3VcIDsKK+a4r+a5vumBi+mAgealrSA+IGtvdXdhbicndW5zb3VneW91XCA7Civlkajms6LmlbDlpInoqr8gPiBzaHV1aGFzdXVoZW5jaG91XCA7Civkub7nh6XlnLDovrLmpa0gPiBrYW5zb3VjaGlub3VneW91XCA7CivnkrDlooPphY3mha7mm7ggPiBrYW5reW91aGFpcnlvc2hvXCA7Civlm7rkvZPniannkIblraYgPiBrb3RhaWJ1dHN1cmlnYWt1XCA7CivntYTnuZTlirTlg43ogIUgPiBzb3NoaWtpcm91ZG91c2hhXCA7Civllrbmpa3loLHlkYrmm7ggPiBlaWd5b3Vob3Vrb2t1c2hvXCA7CivluoPlkYrku6PnkIblupcgPiBrb3Vrb2t1ZGFpcml0ZW5cIDsKK+aIpuaZguWbvemam+azlSA+IHNlbmppa29rdXNhaWhvdVwgOwor5aSa6aGN57SN56iO6ICFID4gdGFnYWt1bm91emVpc2hhXCA7CivlpKrlhYPluKXlppnnjosgPiBkYWlnZW5zdWlteW91b3VcIDsKK+S4remDqOWkquW5s+a0iyA+IGNodXVidXRhaWhlaXlvdVwgOwor5LyB5qWt5YaF57WE5ZCIID4ga2lneW91bmFpa3VtaWFpXCA7CivlpKrlubPmtIvmiKbkuokgPiB0YWloZWl5b3VzZW5zb3VcIDsKK+mAo+W4r+S/neiovOS6uiA+IHJlbnRhaWhvc2hvdW5pblwgOwor6LuN5Zu95Li7576p6ICFID4gZ3Vua29rdXNodWdpc2hhXCA7Civlj43luJ3lm73kuLvnvqkgPiBoYW50ZWlrb2t1c2h1Z2lcIDsKK+S8muekvuabtOeUn+azlSA+IGthaXNoYWtvdXNlaWhvdVwgOwor5Zu96YG45byB6K235Lq6ID4ga29rdXNlbmJlbmdvbmluXCA7Civoh6rnhLblnLDnkIblraYgPiBzaGl6ZW5jaGlyaWdha3VcIDsKK+WcsOWfn+eahOWIhuW4gyA+IGNoaWlraXRla2lidW5wdVwgOwor5Ymq5pat5a6J5a6a5oCnID4gc2VuZGFuJydhbnRlaXNlaVwgOwor6auY5YiG5a2Q5YyW5a2mID4ga291YnVuc2hpa2FnYWt1XCA7Civmg4XloLHlhazplovms5UgPiBqb3Vob3Vrb3VrYWlob3VcIDsKK+WPjeWwhOacm+mBoOmPoSA+IGhhbnNoYWJvdWVua3lvdVwgOwor54m55Yil5aeU5ZOh5LyaID4gdG9rdWJldHN1aWlua2FpXCA7CivlhoXpnIDkuLvlsI7lnosgPiBuYWlqdXNodWRvdWdhdGFcIDsKK+aZtOWkqeS5seawl+a1gSA+IHNlaXRlbnJhbmtpcnl1dVwgOwor5Z+65pys55qE5Lq65qipID4ga2lob250ZWtpamlua2VuXCA7CivmiKbkuonniq/nvarkurogPiBzZW5zb3VoYW56YWluaW5cIDsKK+WPjeWvvuiyv+aYk+miqCA+IGhhbnRhaWJvdWVraWZ1dVwgOwor6YGT6Lev5Lqk6YCa5rOVID4gZG91cm9rb3V0c3V1aG91XCA7CivlhbHnlKPlm73lrrbpg6EgPiBreW91c2Fua29ra2FndW5cIDsKK+S7ruijheW3oea0i+iJpiA+IGthc291anVuJyd5b3VrYW5cIDsKK+aVmeiCsuWfuuacrOazlSA+IGt5b3Vpa3VraWhvbmhvdVwgOwor55Sf55Sj6ICF5L6h5qC8ID4gc2Vpc2Fuc2hha2FrYWt1XCA7CivmnIDlsI/kuozkuZfms5UgPiBzYWlzaG91bmlqb3Vob3VcIDsKK+S4u+W5ueeglOeptuWToSA+IHNodWthbmtlbmt5dXVpblwgOwor5a6Y5YOa5Li7576p6ICFID4ga2FucnlvdXNodWdpc2hhXCA7CivlsI/pgbjmjJnljLrliLYgPiBzaG91c2Vua3lva3VzZWlcIDsKK+iHqui7oui7iuaTjealrSA+IGppdGVuc2hhc291Z3lvdVwgOwor5LiW55WM5paw6KiY6YyyID4gc2VrYWlzaGlua2lyb2t1XCA7CivllYblt6XkvJrorbDmiYAgPiBzaG91a291a2FpZ2lzaG9cIDsKK+W8vuWKvuijgeWIpOaJgCA+IGRhbmdhaXNhaWJhbnNob1wgOwor5L+d6K236Zai56iO546HID4gaG9nb2thbnplaXJpdHN1XCA7CivmupbnpoHmsrvnlKPogIUgPiBqdW5raW5jaGlzYW5zaGFcIDsKK+itsOmZouWGhemWo+WItiA+IGdpaW4nJ25haWtha3VzZWlcIDsKK+eUn+a0u+S/neitt+azlSA+IHNlaWthdHN1aG9nb2hvdVwgOwor5YWx55Sj5Li7576p6ICFID4ga3lvdXNhbnNodWdpc2hhXCA7CivmraPlronmga/pppnphbggPiBzZWlhbnNva3Vrb3VzYW5cIDsKK+WFrOWus+eXheaCo+iAhSA+IGtvdWdhaWJ5b3VrYW5qYVwgOwor6LKh5pS/5oqV6J6N6LOHID4gemFpc2VpdG91eXV1c2hpXCA7CivmuK/mub7lirTlg43ogIUgPiBrb3V3YW5yb3Vkb3VzaGFcIDsKK+WGhemZuOaAp+awl+WAmSA+IG5haXJpa3VzZWlraWtvdVwgOwor5Lit5aSu5qiZ5rqW5pmCID4gY2h1dW91aHlvdWp1bmppXCA7CivmipXlhYnnhafmmI7lmaggPiB0b3Vrb3VzaG91bWVpa2lcIDsKK+e3j+WQjOebn+e9t+alrSA+IHNvdWRvdW1laWhpZ3lvdVwgOwor5pyA6auY6KOB5Yik5omAID4gc2Fpa291c2FpYmFuc2hvXCA7Civllrblm6PlnLDkuIvpiYQgPiBlaWRhbmNoaWthdGV0c3VcIDsKK+mjveWSjOWMluWQiOeJqSA+IGhvdXdha2Fnb3VidXRzdVwgOwor6YeR5bGe5o6i55+l5qmfID4ga2luem9rdXRhbmNoaWtpXCA7Civmta7li5XlsI/mlbDngrkgPiBmdWRvdXNob3VzdXV0ZW5cIDsKK+iogOiqnuW/g+eQhuWtpiA+IGdlbmdvc2hpbnJpZ2FrdVwgOwor5LiA5aer5LqM5aSq6YOOID4gaWNoaWhpbWVuaXRhcm91XCA7CivnlYzpnaLmtLvmgKfliaQgPiBrYWltZW5rYXNzZWl6YWlcIDsKK+S6uueUn+ahiOWGheashCA+IGppbnNlaWFuJyduYWlyYW5cIDsKK+S4gOWIhuS6jOWNgeenkiA+IGlwcHVuJyduaWp1dWJ5b3VcIDsKK+WNl+mYv+WFseWSjOWbvSA+IG5hbicnYWt5b3V3YWtva3VcIDsKK+S4u+aIpumXmOaIpui7iiA+IHNodXNlbnRvdXNlbnNoYVwgOwor5q+U6LyD6KiA6Kqe5a2mID4gaGlrYWt1Z2VuZ29nYWt1XCA7CivlhoXmlL/kuI3lubLmuIkgPiBuYWlzZWlmdWthbnNob3VcIDsKK+mrmOetieijgeWIpOaJgCA+IGtvdXRvdXNhaWJhbnNob1wgOwor55CD6Z2i5bm+5L2V5a2mID4ga3l1dW1lbmtpa2FnYWt1XCA7Civpm7vlrZDpoZXlvq7pj6EgPiBkZW5zaGlrZW5iaWt5b3VcIDsKK+WKtOWDjeeUn+eUo+aApyA+IHJvdWRvdXNlaXNhbnNlaVwgOwor5bmz6KGM5Zub6L665b2iID4gaGVpa291c2hpaGVua2VpXCA7CivmhJ/lgrfkuLvnvqnogIUgPiBrYW5zaG91c2h1Z2lzaGFcIDsKK+WtpueUn+iHquayu+S8miA+IGdha3VzZWlqaWNoaWthaVwgOwor5bm06YeR5Y+X57Wm6ICFID4gbmVua2luanVreXV1c2hhXCA7CivpnZ7lkIzmnJ/pgJrkv6EgPiBoaWRvdWtpdHN1dXNoaW5cIDsKK+S4ieWNgeW5tOaIpuS6iSA+IHNhbmp1dW5lbnNlbnNvdVwgOwor6ZaJ5omA5oGQ5oCW55eHID4gaGVpam9reW91ZnVzaG91XCA7Civlj7jms5XnoJTkv67miYAgPiBzaGlob3VrZW5zaHV1am9cIDsKK+S9jumHkeWIqeaUv+etliA+IHRlaWtpbnJpc2Vpc2FrdVwgOwor6bq76Jas5bi455So6ICFID4gbWF5YWt1am91eW91c2hhXCA7Civplbfot53pm6LliJfou4ogPiBjaG91a3lvcmlyZXNzaGFcIDsKK+aHsue9sOWnlOWToeS8miA+IGNob3ViYXRzdWlpbmthaVwgOwor5pyJ5qmf5YyW5ZCI54mpID4geXV1a2lrYWdvdWJ1dHN1XCA7Civmpb3lpKnkuLvnvqnogIUgPiByYWt1dGVuc2h1Z2lzaGFcIDsKK+eEoeadoeS7tumZjeS8jyA+IG11am91a2Vua291ZnVrdVwgOwor6YGL6Lui5YWN6Kix6Ki8ID4gdW50ZW5tZW5reW9zaG91XCA7CivmoLzpl5jmiKbpg6jpmoogPiBrYWt1dG91c2VuYnV0YWlcIDsKK+WxleekuuWNs+WjsuS8miA+IHRlbmppc29rdWJhaWthaVwgOwor6LuN5LqL5aKD55WM57eaID4gZ3VuamlreW91a2Fpc2VuXCA7CivmtojosrvogIXlm6PkvZMgPiBzaG91aGlzaGFkYW50YWlcIDsKK+WFqOS9k+S4u+e+qeWbvSA+IHplbnRhaXNodWdpa29rdVwgOwor5LiN5Y+v5L615p2h57SEID4gZnVrYXNoaW5qb3V5YWt1XCA7CivluqfluK3mjIflrprliLggPiB6YXNla2lzaGl0ZWlrZW5cIDsKK+W4sOWbveWtkOWls+aeoCA+IGtpa29rdXNoaWpvd2FrdVwgOwor6YG66KiA6KOc6Laz5pu4ID4geXVpZ29uaG9zb2t1c2hvXCA7Civngq3pibHlirTlg43ogIUgPiB0YW5rb3Vyb3Vkb3VzaGFcIDsKK+ino+aekOW5vuS9leWtpiA+IGthaXNla2lraWthZ2FrdVwgOwor57WM5riI5oCn5ZCR5LiKID4ga2VpemFpc2Vpa291am91XCA7CivlnLDkuIvmoLjlrp/pqJMgPiBjaGlrYWtha3VqaWtrZW5cIDsKK+avlOS+i+S7o+ihqOWItiA+IGhpcmVpZGFpaHlvdXNlaVwgOwor56uL5oay5ZCb5Li75pS/ID4gcmlra2Vua3Vuc2h1c2VpXCA7CivprZrpm7fnmbrlsITnrqEgPiBneW9yYWloYXNzaGFrYW5cIDsKK+aQjeebiuWIhuWykOeCuSA+IHNvbicnZWtpYnVua2l0ZW5cIDsKK+ekvuS8muS/nemZuuW6gSA+IHNoYWthaWhva2VuY2hvdVwgOwor5q2p6KGM6ICF5aSp5Zu9ID4gaG9rb3VzaGF0ZW5nb2t1XCA7Civlm73msJHnmobkv53pmbogPiBrb2t1bWlua2FpaG9rZW5cIDsKK+WNmOe0lOWGjeeUn+eUoyA+IHRhbmp1bnNhaXNlaXNhblwgOwor6KKr6YG45oyZ6LOH5qC8ID4gaGlzZW5reW9zaGlrYWt1XCA7Civln7rmupblpJbos4Pph5EgPiBraWp1bmdhaWNoaW5naW5cIDsKK+eGseW4r+S9juawl+WcpyA+IG5ldHRhaXRlaWtpYXRzdVwgOwor54++5Zyo5a6M5LqG5pmCID4gZ2VuemFpa2FucnlvdWppXCA7CivnrYnovrrkuInop5LlvaIgPiB0b3VoZW5zYW5rYWtrZWlcIDsKK+aXpeW4uOiMtumjr+S6iyA+IG5pY2hpam91c2FoYW5qaVwgOwor6YCj6Y6W54q255CD6I+MID4gcmVuc2Fqb3VreXV1a2luXCA7Civljp/niIbniqDnibLogIUgPiBnZW5iYWt1Z2lzZWlzaGFcIDsKK+WkluWbveaKleizh+WutiA+IGdhaWtva3V0b3VzaGlrYVwgOwor6Zu75rOi5aSp5paH5a2mID4gZGVucGF0ZW5tb25nYWt1XCA7Civmp4vpgKDoqIDoqp7lraYgPiBrb3V6b3VnZW5nb2dha3VcIDsKK+WcsOWfn+WGt+aaluaIvyA+IGNoaWlraXJlaWRhbmJvdVwgOwor5Lq65bel5ZG85ZC45rOVID4gamlua291a29reXV1aG91XCA7Civlrp/oqLzkuLvnvqnogIUgPiBqaXNzaG91c2h1Z2lzaGFcIDsKK+aUr+aMgeWKm+eQhuirliA+IHNoaWppcnlva3VyaXJvblwgOwor5YWs6ZaL6KiO6KuW5LyaID4ga291a2FpdG91cm9ua2FpXCA7Civmlofpg6jnp5HlrabnnIEgPiBtb25idWthZ2FrdXNob3VcIDsKK+eJueioseaYjue0sOabuCA+IHRva2t5b21laXNhaXNob1wgOwor56iO5Yi26Kq/5p+75LyaID4gemVpc2VpY2hvdXNha2FpXCA7CivnmbrlsZXpgJTkuIrlm70gPiBoYXR0ZW50b2pvdWtva3VcIDsKK+WFrOWFseWbs+abuOmkqCA+IGtvdWt5b3V0b3Nob2thblwgOwor5Zu95YaF6KaP5qC85YyWID4ga29rdW5haWtpa2FrdWthXCA7CivlibXnq4voqJjlv7Xml6UgPiBzb3VyaXRzdWtpbmVuYmlcIDsKK+mHkemKreeZu+mMsuWZqCA+IGtpbnNlbnRvdXJva3VraVwgOwor5Yq05YON57WE5ZCI5rOVID4gcm91ZG91a3VtaWFpaG91XCA7CivntKDlvaLmnZDnlKPmpa0gPiBzb2tlaXphaXNhbmd5b3VcIDsKK+S6pOaPm+iyv+aYk+WItiA+IGtvdWthbmJvdWVraXNlaVwgOwor54++5Zyw6aeQ5Zyo5ZOhID4gZ2VuY2hpY2h1dXphaWluXCA7CivmnIDlsI/oh6rkuZfms5UgPiBzYWlzaG91amlqb3Vob3VcIDsKK+Wwj+Wei+S5l+eUqOi7iiA+IGtvZ2F0YWpvdXlvdXNoYVwgOwor5bGe5oCn5YCk6KGM5YiXID4gem9rdXNlZ3lvdXJldHN1XCA7Civmtbfou43lhbXlrabmoKEgPiBrYWlndW5oZWlnYWtrb3VcIDsKK+m7hOmBk+WNgeS6jOWuriA+IGtvdWRvdWp1dW5pa3l1dVwgOwor5Ye65p2l6auY5LuV5LqLID4gZGVraWRha2FzaGlnb3RvXCA7Civos4fnlKPosqDlgrXooaggPiBzaGlzYW5mdXNhaWh5b3VcIDsKK+eJiOaoqeaJgOacieiAhSA+IGhhbmtlbnNob3l1dXNoYVwgOwor5L+h5b6S5Lyd5YuV6ICFID4gc2hpbnRvZGVuZG91c2hhXCA7Civlrpjog73kuLvnvqnogIUgPiBrYW4nJ25vdXNodWdpc2hhXCA7CivogZbpnIrpmY3oh6jnpa0gPiBzZWlyZWlrb3VyaW5zYWlcIDsKK+a1geihjOaAp+iEs+eCjiA+IHJ5dXVrb3VzZWlub3VlblwgOwor6KiY5b+16KuW5paH6ZuGID4ga2luZW5yb25idW5zaHV1XCA7Civoh6rli5XpgKPntZDmqZ8gPiBqaWRvdXJlbmtldHN1a2lcIDsKK+Wkp+mZuOaAp+awl+WAmSA+IHRhaXJpa3VzZWlraWtvdVwgOwor5qC45YW15Zmo5a6f6aiTID4ga2FrdWhlaWtpamlra2VuXCA7CivoqoflpKflpoTmg7Pni4IgPiBrb2RhaW1vdXNvdWt5b3VcIDsKK+i6q+WIhuiovOaYjuabuCA+IG1pYnVuc2hvdW1laXNob1wgOwor5paH5YyW5Lq66aGe5a2mID4gYnVua2FqaW5ydWlnYWt1XCA7CivnrKzkuInmrKHnlKPmpa0gPiBkYWlzYW5qaXNhbmd5b3VcIDsKK+aWh+WMluWkp+mdqeWRvSA+IGJ1bmthZGFpa2FrdW1laVwgOwor6Z2e5bGA5omA5YiG5bKQID4gaGlreW9rdXNob2J1bmtpXCA7CivplqLkv4Lku6PlkI3oqZ4gPiBrYW5rZWlkYWltZWlzaGlcIDsKK+WkmuWbveexjeiogOiqniA+IHRha29rdXNla2lnZW5nb1wgOwor5rC06YqA5rCX5Zyn6KiIID4gc3VpZ2lua2lhdHN1a2VpXCA7CivlhZDnq6Xlv4PnkIblraYgPiBqaWRvdXNoaW5yaWdha3VcIDsKK+epuua0nuWMluePvuixoSA+IGt1dWRvdWthZ2Vuc2hvdVwgOwor54Sh55CG5pa556iL5byPID4gbXVyaWhvdXRlaXNoaWtpXCA7CivkuqTlt67lr77np7DmgKcgPiBrb3VzYXRhaXNob3VzZWlcIDsKK+WWp+WYqeS4oeaIkOaVlyA+IGtlbmthcnlvdXNlaWJhaVwgOwor6KaW6IG06Kaa5qmf5ZmoID4gc2hpY2hvdWtha3VraWtpXCA7Civmn5PoibLkvZPnlbDluLggPiBzZW5zaG9rdXRhaWlqb3VcIDsKK+e1kOWpmumBqem9ouacnyA+IGtla2tvbnRla2lyZWlraVwgOwor5ry46L+R55qE6Ieq55SxID4gemVua2ludGVraWppeXV1XCA7CivnpL7kvJrmsJHkuLvlhZogPiBzaGFrYWltaW5zaHV0b3VcIDsKK+engeioreW/nOaPtOWboyA+IHNoaXNldHN1b3VlbmRhblwgOwor57WM5riI5ZCM5Y+L5LyaID4ga2VpemFpZG91eXV1a2FpXCA7Civlj43oqLzlj6/og73mgKcgPiBoYW5zaG91a2Fub3VzZWlcIDsKK+aQrOmAgeWRqOazouaVsCA+IGhhbnNvdXNodXVoYXN1dVwgOwor5pyA6auY5oyH5bCO6ICFID4gc2Fpa291c2hpZG91c2hhXCA7CivokaHokITnirbnkIPoj4wgPiBidWRvdWpvdWt5dXVraW5cIDsKK+WFqOe/vOmjm+ihjOapnyA+IHplbicneW9rdWhpa291a2lcIDsKK+mAn+WKueaAp+iCpeaWmSA+IHNva2tvdXNlaWhpcnlvdVwgOwor6YGF5Yq55oCn6IKl5paZID4gY2hpa291c2VpaGlyeW91XCA7Civlm73nsovkuLvnvqnogIUgPiBrb2t1c3Vpc2h1Z2lzaGFcIDsKK+aWreW8vuaAp+S/guaVsCA+IGRhbmRhbnNlaWtlaXN1dVwgOwor5LqM5qyh5pa556iL5byPID4gbmlqaWhvdXRlaXNoaWtpXCA7Civlv5znlKjlv4PnkIblraYgPiBvdXlvdXNoaW5yaWdha3VcIDsKK+eyvuelnueVsOW4uOiAhSA+IHNlaXNoaW4nJ2lqb3VzaGFcIDsKK+WHuueUn+W5tOaciOaXpSA+IHNodXNzZWluZW5nYXBwaVwgOwor5YuV6Kme54q25ZCN6KmeID4gZG91c2hpam91bWVpc2hpXCA7Civoh6rnlLHoo4Hph4/mqKkgPiBqaXl1dXNhaXJ5b3VrZW5cIDsKK+S4reWkrumbhuaoqeWMliA+IGNodXVvdXNodXVrZW5rYVwgOwor54Sh5Yip5oGv6Ki85Yi4ID4gbXVyaXNva3VzaG91a2VuXCA7Civku4HnvqnnpLzmmbrkv6EgPiBqaW5naXJlaWNoaXNoaW5cIDsKK+abtOW5tOacn+manOWusyA+IGtvdW5lbmtpc2hvdWdhaVwgOwor5Zu96Kqe5a+p6K2w5LyaID4ga29rdWdvc2hpbmdpa2FpXCA7CivlnLDmlrnoo4HliKTmiYAgPiBjaGlob3VzYWliYW5zaG9cIDsKK+iHquWLleaUueacreapnyA+IGppZG91a2Fpc2F0c3VraVwgOwor5pyq5bCx5a2m5YWQ56ulID4gbWlzaHV1Z2FrdWppZG91XCA7Civlrp/mmYLplpPlh6bnkIYgPiBqaXRzdWppa2Fuc2hvcmlcIDsKK+mgkOmHkea6luWCmeeOhyA+IHlva2luanVuYmlyaXRzdVwgOwor5aSp5L2T5pyb6YGg6Y+hID4gdGVudGFpYm91ZW5reW91XCA7CivnpL7kvJroq7jnp5HlraYgPiBzaGFrYWlzaG9rYWdha3VcIDsKK+azleW+i+S6i+WLmeaJgCA+IGhvdXJpdHN1amltdXNob1wgOwor5a6f5Yip5Li7576p6ICFID4gaml0c3VyaXNodWdpc2hhXCA7CivmnKrnorroqo3mg4XloLEgPiBtaWtha3VuaW5qb3Vob3VcIDsKK+iAgeS6uuaAp+eXtOWRhiA+IHJvdWppbnNlaWNoaWhvdVwgOwor5Zyo5aSW56CU56m25ZOhID4gemFpZ2Fpa2Vua3l1dWluXCA7CivlrqLoprPkuLvnvqnogIUgPiBreWFra2Fuc2h1Z2lzaGFcIDsKK+mBuOaJi+aoqeWkp+S8miA+IHNlbnNodWtlbnRhaWthaVwgOwor5LiL57Sa6KOB5Yik5omAID4ga2FreXV1c2FpYmFuc2hvXCA7CivpgJPpmY3lpInlnKflmaggPiB0ZWlrb3VoZW5hdHN1a2lcIDsKK+mZkOeVjOmhleW+rumPoSA+IGdlbmthaWtlbmJpa3lvdVwgOwor6KaB5pKD5oim6ZeY5qmfID4geW91Z2VraXNlbnRvdWtpXCA7CivkuI3lhazlubPnq7bkuokgPiBmdWtvdWhlaWt5b3Vzb3VcIDsKK+WFrOiqjeS8muioiOWjqyA+IGtvdW5pbmthaWtlaXNoaVwgOwor54qv6KGM5aOw5piO5paHID4gaGFua291c2VpbWVpYnVuXCA7CivmtojosrvogIXkvqHmoLwgPiBzaG91aGlzaGFrYWtha3VcIDsKK+mfs+alveipleirluWutiA+IG9uZ2FrdWh5b3Vyb25rYVwgOwor5YWs5a6J6Kq/5p+75bqBID4ga291YW5jaG91c2FjaG91XCA7CivkuZfpmY3ou4rlhKrlhYggPiBqb3Vrb3VzaGF5dXVzZW5cIDsKK+S6uuW3peeUmOWRs+aWmSA+IGppbmtvdWthbm1pcnlvdVwgOwor5Zyo6YO36LuN5Lq65LyaID4gemFpZ291Z3Vuamlua2FpXCA7Civoh6roqJjmub/luqboqIggPiBqaWtpc2hpdHN1ZG9rZWlcIDsKK+Wkp+e1seS4gOeQhuirliA+IGRhaXRvdWl0c3VyaXJvblwgOwor5qSc5a6a5pWZ56eR5pu4ID4ga2VudGVpa3lvdWthc2hvXCA7CivljLvlrabmioDooZPlo6sgPiBpZ2FrdWdpanV0c3VzaGlcIDsKK+Wkqeeah+iqleeUn+aXpSA+IHRlbicnbm91dGFuam91YmlcIDsKK+WkquW5s+a0i+WcsOWfnyA+IHRhaWhlaXlvdWNoaWlraVwgOwor6LOH55Sj5YaN6KmV5L6hID4gc2hpc2Fuc2FpaHlvdWthXCA7Civmg4Xnt5LpmpzlrrPlhZAgPiBqb3VjaG9zaG91Z2FpamlcIDsKK+aXpeacrOWbveaGsuazlSA+IG5paG9ua29rdWtlbnBvdVwgOwor5Lq65rCR6Kej5pS+6LuNID4gamlubWlua2FpaG91Z3VuXCA7Civntbblr77lkJvkuLvliLYgPiB6ZXR0YWlrdW5zaHVzZWlcIDsKK+iKuOihk+aEm+WlveWutiA+IGdlaWp1dHN1YWlrb3VrYVwgOwor56eB55Sf5YWQ5Ye655SjID4gc2hpc2VpamlzaHVzc2FuXCA7CivkuKHpmaLljZTorbDkvJogPiByeW91aW5reW91Z2lrYWlcIDsKK+Wwj+eUsOWOn+aPkOeBryA+IG9kYXdhcmFkam91Y2hpblwgOwor6LKo54mp6Ieq5YuV6LuKID4ga2Ftb3RzdWppZG91c2hhXCA7CivniYfmiYvplpPku5XkuosgPiBrYXRhdGVtYXNoaWdvdG9cIDsKK+elnue1jOWbnui3r+e2siA+IHNoaW5rZWlrYWlyb21vdVwgOwor54Kt57Sg5YyW5ZCI54mpID4gdGFuc29rYWdvdWJ1dHN1XCA7CivmsJfnrqHmlK/llpjmga8gPiBraWthbnNoaXplbnNva3VcIDsKK+S4jeWLleeUo+alreiAhSA+IGZ1ZG91c2FuZ3lvdXNoYVwgOwor5rW35rSL5rCX6LGh5Y+wID4ga2FpeW91a2lzaG91ZGFpXCA7Civoh6rli5Xnv7voqLPmqZ8gPiBqaWRvdWhvbicneWFrdWtpXCA7CivnuITmloflvI/lnJ/lmaggPiBqb3Vtb25zaGlraWRva2lcIDsKK+i8uOWFpeiqsuW+tOmHkSA+IHl1bnl1dWthY2hvdWtpblwgOwor6YeN5ZWG5Li7576p6ICFID4ganV1c2hvdXNodWdpc2hhXCA7CivpgbrnlKPnm7jntprnqI4gPiBpc2Fuc291em9rdXplaVwgOwor5q+Y5bus6YGu6YKj5LuPID4gYmlydXNoYW5hYnV0c3VcIDsKK+mWoueojuiHquS4u+aoqSA+IGthbnplaWppc2h1a2VuXCA7Civln7rmnKzlkajms6LmlbAgPiBraWhvbnNodXVoYXN1dVwgOwor5Zub6Lyq6aeG5YuV6LuKID4geW9ucmlua3Vkb3VzaGFcIDsKK+mdmembu+awl+mYsuatoiA+IHNlaWRlbmtpYm91c2hpXCA7CivnhZnnqoHmjoPpmaTlpKsgPiBlbnRvdHN1c291amlmdVwgOwor5LyR5oim6KiY5b+15pelID4ga3l1dXNlbmtpbmVuYmlcIDsKK+Wtpuagoee+pOWItuW6piA+IGdha2tvdWd1bnNlaWRvXCA7CivmlL7lsITnt5rmioDluKsgPiBob3VzaGFzZW5naXNoaVwgOwor5a625bqt6KOB5Yik5omAID4ga2F0ZWlzYWliYW5zaG9cIDsKK+mVt+i3nembouaJk+iAhSA+IGNob3VreW9yaWRhc2hhXCA7Civml6XmnKzmqJnmupbmmYIgPiBuaWhvbmh5b3VqdW5qaVwgOwor6KqY5bCO6Zu75YuV5qmfID4geXV1ZG91ZGVuZG91a2lcIDsKK+W7uuWbveiomOW/teaXpSA+IGtlbmtva3VraW5lbmJpXCA7CivkvJ3ntbHkuLvnvqnogIUgPiBkZW50b3VzaHVnaXNoYVwgOwor55m76KiY55Wq5Y+35qyEID4gdG91a2liYW5nb3VyYW5cIDsKK+atqeihjOiAheWEquWFiCA+IGhva291c2hheXV1c2VuXCA7CivnhKHkurrlroflrpnoiLkgPiBtdWppbicndWNodXVzZW5cIDsKK+e+heiQhOaXpei+nuWFuCA+IHJhcG9uaWNoaWppdGVuXCA7CivmuKnmmpbljJbnj77osaEgPiBvbmRhbmthZ2Vuc2hvdVwgOwor5amm5Lq65Y+C5pS/5qipID4gZnVqaW5zYW5zZWlrZW5cIDsKK+iHqueUseawkeS4u+WFmiA+IGppeXV1bWluc2h1dG91XCA7CivlgIvkvZPnmbrnlJ/oq5YgPiBrb3RhaWhhc3NlaXJvblwgOwor5aSn5aiB5b6z5aaZ546LID4gZGFpaXRva3VteW91b3VcIDsKK+Wkp+mfk+iIquepuuapnyA+IHRhaWthbmtvdWt1dWtpXCA7CivkuI3nibnlrprlpJrmlbAgPiBmdXRva3V0ZWl0YXN1dVwgOwor5Li75oOF5Li7576p6ICFID4gc2h1am91c2h1Z2lzaGFcIDsKK+azleWumuS7o+eQhuS6uiA+IGhvdXRlaWRhaXJpbmluXCA7Civlhazplovlm7Pmm7jppKggPiBrb3VrYWl0b3Nob2thblwgOwor5LiA5pmC6ZaT5Lul5YaFID4gaWNoaWppa2FuJydpbmFpXCA7CivmlbDnkIboqIDoqp7lraYgPiBzdXVyaWdlbmdvZ2FrdVwgOwor6YG655Sj55u457aa5Lq6ID4gaXNhbnNvdXpva3VuaW5cIDsKK+aWueWQkeaOouefpeWZqCA+IGhvdWtvdXRhbmNoaWtpXCA7CivnhrHlj6/loZHmqLnohIIgPiBuZXRzdWthc29qdXNoaVwgOwor54Sh5qmf5YyW5ZCI54mpID4gbXVraWthZ291YnV0c3VcIDsKK+mHjeimgeaWh+WMluiyoSA+IGp1dXlvdWJ1bmthemFpXCA7CivlsYXplpPlhbzpo5/loIIgPiBpbWFrZW5zaG9rdWRvdVwgOwor55Ww5pa55bCO6Zu76IacID4gaWhvdWRvdWRlbm1ha3VcIDsKK+aMh+ekuuS7o+WQjeipniA+IHNoaWppZGFpbWVpc2hpXCA7Civlm57lvqnkuI3lj6/og70gPiBrYWlmdWt1ZnVrYW5vdVwgOwor5oud6YeR5Li7576p6ICFID4gaGFpa2luc2h1Z2lzaGFcIDsKK+S6uumBk+S4u+e+qeiAhSA+IGppbmRvdXNodWdpc2hhXCA7CivkuK3lpK7liIbpm6LluK8gPiBjaHV1b3VidW5yaXRhaVwgOwor5rip5biv5L2O5rCX5ZynID4gb250YWl0ZWlraWF0c3VcIDsKK+i2heWbveWutuS4u+e+qSA+IGNob3Vrb2trYXNodWdpXCA7CivliKnlrrPplqLkv4LogIUgPiByaWdhaWthbmtlaXNoYVwgOwor6KGG6K2w5ZOh6K2w6ZW3ID4gc2h1dWdpaW5naWNob3VcIDsKK+WwjuazoueuoeWumuaVsCA+IGRvdWhha2FudGVpc3V1XCA7CivkuIHlrZflvaLlrpropo8gPiB0ZWlqaWdhdGFqb3VnaVwgOwor57Ch5piT6KOB5Yik5omAID4ga2FuJydpc2FpYmFuc2hvXCA7Civlj43li5XkuLvnvqnogIUgPiBoYW5kb3VzaHVnaXNoYVwgOwor6Z+z5qW95Zuz5pu46aSoID4gb25nYWt1dG9zaG9rYW5cIDsKK+S5l+eUqOiHquWLlei7iiA+IGpvdXlvdWppZG91c2hhXCA7CivlnKflgJLnmoTlpJrmlbAgPiBhdHRvdXRla2l0YXN1dVwgOwor6Z2e5pS/5bqc57WE57mUID4gaGlzZWlmdXNvc2hpa2lcIDsKK+iHqueUseWKtOWDjeiAhSA+IGppeXV1cm91ZG91c2hhXCA7CivljZrmhJvkuLvnvqnogIUgPiBoYWt1YWlzaHVnaXNoYVwgOwor5a6a5pyf5LmX6LuK5Yi4ID4gdGVpa2lqb3VzaGFrZW5cIDsKK+mbu+awl+a0l+a/r+apnyA+IGRlbmtpc2VudGFrdWtpXCA7CivntYLmiKboqJjlv7Xml6UgPiBzaHV1c2Vua2luZW5iaVwgOwor56S+5Lya5Li7576p6ICFID4gc2hha2Fpc2h1Z2lzaGFcIDsKK+Wwj+Wei+iHquWLlei7iiA+IGtvZ2F0YWppZG91c2hhXCA7CivmsJHkuovoqLToqJ/ms5UgPiBtaW5qaXNvc2hvdWhvdVwgOwor56ys5LqM6YeP5a2Q5YyWID4gZGFpbmlyeW91c2hpa2FcIDsKK+S6jOWOn+WtkOWIhuWtkCA+IG5pZ2Vuc2hpYnVuc2hpXCA7CivluLjku7vmjIfmj67ogIUgPiBqb3VuaW5zaGlraXNoYVwgOwor6L6y5LqL6Kmm6aiT5aC0ID4gbm91amlzaGlrZW5qb3VcIDsKK+aDheWgseWMluekvuS8miA+IGpvdWhvdWthc2hha2FpXCA7CivkuLvoprPkuLvnvqnogIUgPiBzaHVrYW5zaHVnaXNoYVwgOwor54Sh5pWZ5Lya5Li7576pID4gbXVreW91a2Fpc2h1Z2lcIDsKK+exs+S+oeWvqeitsOS8miA+IGJlaWthc2hpbmdpa2FpXCA7CivmmYLplpPlpJblirTlg40gPiBqaWthbmdhaXJvdWRvdVwgOwor55m+56eR5YWo5pu45rS+ID4gaHlha2themVuc2hvaGFcIDsKK+S6jOeZvuS6jOWNgeaXpSA+IG5paHlha3VoYXRzdWthXCA7Civkuozph43kvqHmoLzliLYgPiBuaWp1dWtha2FrdXNlaVwgOwor5YiR5LqL6Ki06Kif5rOVID4ga2Vpamlzb3Nob3Vob3VcIDsKK+iyqeWjsuS7o+eQhuW6lyA+IGhhbmJhaWRhaXJpdGVuXCA7CivmnbHkupzoq7jmsJHml48gPiB0b3Vhc2hvbWluem9rdVwgOwor5Y2Y6JGJ6aOb6KGM5qmfID4gdGFuJyd5b3VoaWtvdWtpXCA7Civlm73kvJrorbDkuovpjLIgPiBrb2trYWlnaWppcm9rdVwgOwor5pS/5bqc5L+d6Ki85YK1ID4gc2VpZnVob3Nob3VzYWlcIDsKK+S+v+S5l+S4u+e+qeiAhSA+IGJpbmpvdXNodWdpc2hhXCA7CivkuozlpKfmlL/lhZrliLYgPiBuaWRhaXNlaXRvdXNlaVwgOwor54Sh5Yip5oGv5YWs5YK1ID4gbXVyaXNva3Vrb3VzYWlcIDsKK+i2s+e0oOaAp+WOn+eQhiA+IGFzaGlzdWpvdWdlbnJpXCA7Civos4fmnKzkuLvnvqnogIUgPiBzaGlob25zaHVnaXNoYVwgOwor5paH5YyW5Zyw55CG5a2mID4gYnVua2FjaGlyaWdha3VcIDsKK+WFrOiqjeWAmeijnOiAhSA+IGtvdW5pbmtvdWhvc2hhXCA7CivkuJbnlYzpgbjmiYvmqKkgPiBzZWthaXNlbnNodWtlblwgOwor5paw55+z5Zmo5pmC5LujID4gc2hpbnNla2tpamlkYWlcIDsKK+WPl+mok+WPguiAg+abuCA+IGp1a2Vuc2Fua291c2hvXCA7CivpnZnmraLnlLvmlL7pgIEgPiBzZWlzaGlnYWhvdXNvdVwgOwor5bCR5bm05oSf5YyW6ZmiID4gc2hvdW5lbmthbmthaW5cIDsKK+mVt+i3nemboui8uOmAgSA+IGNob3VreW9yaXl1c291XCA7Civlho3luLDku6PlkI3oqZ4gPiBzYWlraWRhaW1laXNoaVwgOwor5o6n6Ki06KOB5Yik5omAID4ga291c29oYWliYW5zaG9cIDsKK+aWh+WMluWKn+WKtOiAhSA+IGJ1bmtha291cm91c2hhXCA7CivnnJ/nqbrmjoPpmaTmqZ8gPiBzaGlua3V1c291amlraVwgOwor5Lq65b2i5rWE55Gg55KDID4gbmluZ3lvdWpvdXJ1cmlcIDsKK+aUv+ayu+ipleirluWutiA+IHNlaWppaHlvdXJvbmthXCA7CivkvJ3mib/lj5nkuovoqakgPiBkZW5zaG91am9qaXNoaVwgOwor5pyJ6KaW55WM6aOb6KGMID4geXV1c2hpa2FpaGlrb3VcIDsKK+mZjeS4ieS4luWmmeeOiyA+IGdvdXphbnplbXlvdW91XCA7CivnrYnpq5jnt5rlnLDlm7MgPiB0b3Vrb3VzZW5jaGl6dVwgOwor6KO96YCg5bm05pyI5pelID4gc2Vpem91bmVuZ2FwcGlcIDsKK+WcsOaWueS6pOS7mOeojiA+IGNoaWhvdWtvdWZ1emVpXCA7Civml6XmnKzoqp7mlZnmnKwgPiBuaWhvbmdva3lvdWhvblwgOwor5L+Y6Jmc5Y+O5a655omAID4gZnVyeW9zaHV1eW91am9cIDsKK+epuuawl+Wcp+e4ruapnyA+IGt1dWtpYXNzaHVrdWtpXCA7Civlm73pgKPoqJjlv7Xml6UgPiBrb2t1cmVua2luZW5iaVwgOwor54Sh6KiY5ZCN5oqV56WoID4gbXVraW1laXRvdWh5b3VcIDsKK+iHqueEtuS4u+e+qeiAhSA+IHNoaXplbnNodWdpc2hhXCA7CivnrqHljLrmsJfosaHlj7AgPiBrYW5rdWtpc2hvdWRhaVwgOwor5rOV5a6a5rqW5YKZ6YeRID4gaG91dGVpanVuYmlraW5cIDsKK+a1t+a0i+aAp+awl+WAmSA+IGthaXlvdXNlaWtpa291XCA7CivlpJbosqjmupblgpnpq5ggPiBnYWlrYWp1bmJpZGFrYVwgOwor5peF6KGM5Luj55CG5bqXID4gcnlva291ZGFpcml0ZW5cIDsKK+S6iOmBuOmAmumBjuiAhSA+IHlvc2VudHN1dWthc2hhXCA7CivlpbPmgKfop6PmlL7oq5YgPiBqb3NlaWthaWhvdXJvblwgOwor6YG65Lyd5a2Q5rK755mCID4gaWRlbnNoaWNoaXJ5b3VcIDsKK+e1tuWvvuS4u+e+qeiAhSA+IHpldHRhaXNodWdpc2hhXCA7CivlhbHlkIzngorkuovloLQgPiBreW91ZG91c3VpamliYVwgOwor56aP56WJ5LqL5YuZ5omAID4gZnVrdXNoaWppbXVzaG9cIDsKK+S4ieinkuezu+eVsOW4uCA+IHNhbmtha3VrZWlpam91XCA7CivmsLTnlKPoqabpqJPmiYAgPiBzdWlzYW5zaGlrZW5qb1wgOwor6LuN5LqL6KOB5Yik5omAID4gZ3VuamlzYWliYW5zaG9cIDsKK+maoOmAgOiUteeJqeizhyA+IGludGFpem91YnVzc2hpXCA7Civlj4LogIPlm7Pmm7jppKggPiBzYW5rb3V0b3Nob2thblwgOwor54Sh57ea5ZGo5rOi5pWwID4gbXVzZW5zaHV1aGFzdXVcIDsKK+mHjei+suS4u+e+qeiAhSA+IGp1dW5vdXNodWdpc2hhXCA7CivkuZflkIjoh6rli5Xou4ogPiBub3JpYWlqaWRvdXNoYVwgOwor57Sw6IOe6YG65Lyd5a2mID4gc2FpYm91aWRlbmdha3VcIDsKK+i2hemfs+azoua0l+a1hCA+IGNob3VvbnBhc2Vuam91XCA7CivliJHkuovooqvlkYrkurogPiBrZWlqaWhpa29rdW5pblwgOwor576k5Lyd5pCs5pmC6ZaTID4gZ3VuZGVucGFuamlrYW5cIDsKK+WBpeW6t+S/nemZuuazlSA+IGtlbmtvdWhva2VuaG91XCA7CivluLjku7vnkIbkuovlm70gPiBqb3VuaW5yaWppa29rdVwgOwor6Z2e6YeR5bGe5YWD57SgID4gaGlraW56b2t1Z2Vuc29cIDsKK+mZuOS4iuiHquihm+maiiA+IHJpa3Vqb3VqaWVpdGFpXCA7Civkv53pmbrli6foqpjlk6EgPiBob2tlbmthbicneXV1aW5cIDsKK+eqkue0oOWbuuWumuazlSA+IGNoaXNzb2tvdGVpaG91XCA7Civnm7jlr77mgKfljp/nkIYgPiBzb3V0YWlzZWlnZW5yaVwgOwor576O6KGT5oSb5aW95a62ID4gYmlqdXRzdWFpa291a2FcIDsKK+S4reefs+WZqOaZguS7oyA+IGNodXVzZWtraWppZGFpXCA7CivkuLvnn6XkuLvnvqnogIUgPiBzaHVjaGlzaHVnaXNoYVwgOwor6JqV57O46Kmm6aiT5omAID4gc2Fuc2hpc2hpa2Vuam9cIDsKK+eri+S9k+W5vuS9leWtpiA+IHJpdHRhaWtpa2FnYWt1XCA7CivkuI3li5XnlKPpkZHlrpogPiBmdWRvdXNhbmthbnRlaVwgOwor6ZW36Led6Zui6aOb6KGMID4gY2hvdWt5b3JpaGlrb3VcIDsKK+esrOS6jOasoeaAp+W+tCA+IGRhaW5pamlzZWljaG91XCA7Civlj6Xmp4vpgKDmlofms5UgPiBrdWtvdXpvdWJ1bnBvdVwgOwor5aOr5a6Y5YCZ6KOc55SfID4gc2hpa2Fua291aG9zZWlcIDsKK+W3oeWbnuWbs+abuOmkqCA+IGp1bmthaXRvc2hva2FuXCA7CivlvrTlhbXlv4zpgb/ogIUgPiBjaG91aGVpa2loaXNoYVwgOwor5Ye66Ki05pyf6ZmQ5rOVID4gc2h1c3Nva2lnZW5ob3VcIDsKK+i7jeeUqOi8uOmAgeapnyA+IGd1bicneW91eXVzb3VraVwgOwor6KiA6Kqe5Zyw55CG5a2mID4gZ2VuZ29jaGlyaWdha3VcIDsKK+WJjeaWueW+jOWGhuWisyA+IHplbnBvdWtvdWVuZnVuXCA7Civomavmp5jnqoHotbfngo4gPiBjaHV1eW91dG9ra2llblwgOwor5pyJ5b2i5paH5YyW6LKhID4geXV1a2VpYnVua2F6YWlcIDsKK+aXp+efs+WZqOaZguS7oyA+IGt5dXVzZWtraWppZGFpXCA7Civoh6rnlLHmsJHmqKnoq5YgPiBqaXl1dW1pbmtlbnJvblwgOwor56C055Sj6KOB5Yik5omAID4gaGFzYW5zYWliYW5zaG9cIDsKK+S6uui6q+S/neitt+azlSA+IGppbnNoaW5ob2dvaG91XCA7CivmlL7lsITmgKflhYPntKAgPiBob3VzaGFzZWlnZW5zb1wgOwor5o2V6Jmc5Y+O5a655omAID4gaG9yeW9zaHV1eW91am9cIDsKK+eUn+ioiOiyu+aMh+aVsCA+IHNlaWtlaWhpc2hpc3V1XCA7Civlm73kvJrlm7Pmm7jppKggPiBrb2trYWl0b3Nob2thblwgOwor6auY562J5byB5YuZ5a6YID4ga291dG91YmVubXVrYW5cIDsKK+aZgumWk+mghuW6j+epjSA+IGppa2FuanVuam9zZWtpXCA7CivlnLDnkIPmuKnmmpbljJYgPiBjaGlreXV1b25kYW5rYVwgOwor6Z2e5bi45Yuk6Kyb5birID4gaGlqb3VraW5rb3VzaGlcIDsKK+iHquWLlei7iuWtpuagoSA+IGppZG91c2hhZ2Fra291XCA7CivnqI7ph5Hpgb/pm6PlnLAgPiB6ZWlraW5oaW5hbmNoaVwgOwor5Lq66YGT55qE5o+05YqpID4gamluZG91dGVraWVuam9cIDsKK+a2iOiyu+iAhemBi+WLlSA+IHNob3VoaXNoYXVuZG91XCA7CivlirTlg43ln7rmupbms5UgPiByb3Vkb3VraWp1bmhvdVwgOwor5ryi5a2X5Yi26ZmQ6KuWID4ga2FuamlzZWlnZW5yb25cIDsKK+WRqOazouaVsOWBj+enuyA+IHNodXVoYXN1dWhlbicnaVwgOwor54Sh5Yi26ZmQ6LK/5piTID4gbXVzZWlnZW5ib3Vla2lcIDsKK+asoeWFg+ato+WJh+WMliA+IGppZ2Vuc2Vpc29rdWthXCA7CivkurrlkI3nlKjmvKLlrZcgPiBqaW5tZWl5b3VrYW5qaVwgOwor5b6B5aS35aSn5bCG6LuNID4gc2VpaXRhaXNob3VndW5cIDsKK+eUo+alreS6iOWCmei7jSA+IHNhbmd5b3V5b2JpZ3VuXCA7CivliKnlrZDlubPooaHnqI4gPiByaXNoaWhlaWtvdXplaVwgOwor54Sh5Lu75omA5aSn6IejID4gbXVuaW5zaG9kYWlqaW5cIDsKK+S6jOmHjeebsuaknOazlSA+IG5panV1bW91a2VuaG91XCA7Civoh6ros6Dosqzkv53pmbogPiBqaWJhaXNla2lob2tlblwgOwor6YeN54Kt6YW45pu56YGUID4ganV1dGFuc2Fuc291ZGFcIDsKK+mVt+i3nemboumbu+ipsSA+IGNob3VreW9yaWRlbndhXCA7CivpgbrkvJ3lrZDlt6XlraYgPiBpZGVuc2hpa291Z2FrdVwgOwor5LiN5Y+v6IO96YG45oqeID4gZnVrYW5vdXNlbnRha3VcIDsKK+WPpeani+mAoOimj+WJhyA+IGt1a291em91a2lzb2t1XCA7CivmiYvlvaLkuqTmj5vmiYAgPiB0ZWdhdGFrb3VrYW5qb1wgOwor5Zyw5pa56Ieq5rK75L2TID4gY2hpaG91amljaGl0YWlcIDsKK+S4jeimj+WJh+WLleipniA+IGZ1a2lzb2t1ZG91c2hpXCA7CivlrozlhajkuLvnvqnogIUgPiBrYW56ZW5zaHVnaXNoYVwgOwor5qeL5oiQ57Sg5qeL6YCgID4ga291c2Vpc29rb3V6b3VcIDsKK+i8ieiyqOWQg+awtOe3miA+IHNhaWtha2lzc3Vpc2VuXCA7CivmsLTpioDmuKnluqboqIggPiBzdWlnaW4nJ29uZG9rZWlcIDsKK+aVsOeQhuirlueQhuWtpiA+IHN1dXJpcm9ucmlnYWt1XCA7CivnmoflpKrlrZDmrr/kuIsgPiBrb3V0YWlzaGlkZW5rYVwgOwor5oim5LqJ5pyq5Lqh5Lq6ID4gc2Vuc291bWlib3VqaW5cIDsKK+egtOeUo+euoeiyoeS6uiA+IGhhc2Fua2FuemFpbmluXCA7CivljZTlrprkuJbnlYzmmYIgPiBreW91dGVpc2VrYWlqaVwgOwor5rW35LiK5L+d5a6J5bqBID4ga2Fpam91aG9hbmNob3VcIDsKK+eJueeVsOWApOWIhuinoyA+IHRva3VpY2hpYnVua2FpXCA7CivmsJHllrbljJbkvIHmpa0gPiBtaW4nJ2Vpa2FraWd5b3VcIDsKK+Wkp+ilv+a0i+aoquaWrSA+IHRhaXNlaXlvdW91ZGFuXCA7Civkurrlt6Xpgb/lporms5UgPiBqaW5rb3VoaW5pbmhvdVwgOwor6a2a576k5o6i55+l5qmfID4gZ3lvZ3VudGFuY2hpa2lcIDsKK+mBiumbouWfuuWPjeW/nCA+IHl1dXJpa2loYW4nJ25vdVwgOwor5bCP55Sw5Y6f6KmV5a6aID4gb2Rhd2FyYWh5b3Vqb3VcIDsKK+mokumfs+mYsuatouazlSA+IHNvdW9uYm91c2hpaG91XCA7CivnlpHllY/ku6PlkI3oqZ4gPiBnaW1vbmRhaW1laXNoaVwgOwor55u45a++5oCn55CG6KuWID4gc291dGFpc2Vpcmlyb25cIDsKK+mFuOWMlumYsuatouWJpCA+IHNhbmthYm91c2hpemFpXCA7CivnrKzkuozmrKHnlKPmpa0gPiBkYWluaWppc2FuZ3lvdVwgOwor5pyJ5qmf5aGp5rq25aqSID4geXV1a2llbicneW91YmFpXCA7Civpm7vlrZDoqIjnrpfmqZ8gPiBkZW5zaGlrZWlzYW5raVwgOwor5oim6ZeY54qg54my6ICFID4gc2VudG91Z2lzZWlzaGFcIDsKK+awkemWk+iIquepuuapnyA+IG1pbmthbmtvdWt1dWtpXCA7Civlj43miKbkuLvnvqnogIUgPiBoYW5zZW5zaHVnaXNoYVwgOwor6Kaz5YWJ5qGI5YaF5omAID4ga2Fua291YW4nJ25haWpvXCA7Civpq5jpvaLljJbnpL7kvJogPiBrb3VyZWlrYXNoYWthaVwgOwor6KiY5Y+36KuW55CG5a2mID4ga2lnb3Vyb25yaWdha3VcIDsKK+aMh+WQjeaJi+mFjeS6uiA+IHNoaW1laXRlaGFpamluXCA7Civoh6rou6Lou4rml4XooYwgPiBqaXRlbnNoYXJ5b2tvdVwgOwor5bmz5Z2H5aSq6Zm95pmCID4gaGVpa2ludGFpeW91amlcIDsKK+Wlveawl+aAp+e0sOiPjCA+IGtvdWtpc2Vpc2Fpa2luXCA7Civpm7vms6LmnJvpgaDpj6EgPiBkZW5wYWJvdWVua3lvdVwgOwor5Yq05YON6YGL5YuV6ICFID4gcm91ZG91dW5kb3VzaGFcIDsKK+mch+eBveiomOW/teaXpSA+IHNoaW5zYWlraW5lbmJpXCA7CivmgqrlvrPmlL/msrvlrrYgPiBha3V0b2t1c2VpamlrYVwgOwor5oOF5aCx5Li76KaB57SgID4gam91aG91c2h1eW91c29cIDsKK+WFrOatpuWQiOS9k+irliA+IGtvdWJ1Z2F0dGFpcm9uXCA7Civpm7vlhYnmjrLnpLrmnb8gPiBkZW5rb3VrZWlqaWJhblwgOwor5L6h6Zu75a2Q54q25oWLID4ga2FkZW5zaGlqb3V0YWlcIDsKK+awtOeUo+WKoOW3peWTgSA+IHN1aXNhbmtha291aGluXCA7CivlubPpnaLlub7kvZXlraYgPiBoZWltZW5raWthZ2FrdVwgOwor6Ieq6Lui6LuK572u5aC0ID4gaml0ZW5zaGFva2liYVwgOwor5pWZ6IKy5aeU5ZOh5LyaID4ga3lvdWlrdWlpbmthaVwgOwor5rC05LiK6aOb6KGM5qmfID4gc3Vpam91aGlrb3VraVwgOwor5Y6t5LiW5oKy6Kaz6ICFID4gZW5zZWloaWthbnNoYVwgOwor5b6M5pyf5Y2w6LGh5rS+ID4ga291a2lpbnNob3VoYVwgOwor5aSn6KaP5qih5oim5LqJID4gZGFpa2lib3NlbnNvdVwgOwor54Sh5ouF5L+d56S+5YK1ID4gbXV0YW5wb3NoYXNhaVwgOwor6YGg5b+D5YiG6Zui5qmfID4gZW5zaGluYnVucmlraVwgOwor6Zu75rCX5Ya36JS15bqrID4gZGVua2lyZWl6b3Vrb1wgOwor5pyA5L2O5rip5bqm6KiIID4gc2FpdGVpb25kb2tlaVwgOwor6aGn5ZWP5byB6K235aOrID4ga29tb25iZW5nb3NoaVwgOwor5LqM56Gr5YyW54Kt57SgID4gbmlyeXV1a2F0YW5zb1wgOwor5pep5pyf6K2m5oiS5qmfID4gc291a2lrZWlrYWlraVwgOwor5qeL6YCg6YG65Lyd5a2QID4ga291em91aWRlbnNoaVwgOwor6Z2S6YqF5Zmo5pmC5LujID4gc2VpZG91a2lqaWRhaVwgOwor5Lya6KiI5qSc5p+76ZmiID4ga2Fpa2Vpa2Vuc2FpblwgOwor6aaW5L2N5pS76Ziy5oimID4gc2h1aWtvdWJvdXNlblwgOwor5YWo5pa55L2N5aSW5LqkID4gemVuaG91aWdhaWtvdVwgOwor54Sh5Lq65YyW5bel5aC0ID4gbXVqaW5rYWtvdWpvdVwgOwor54Gr5LqL5aC05rOl5qOSID4ga2FqaWJhZG9yb2JvdVwgOwor5Lq65bel5qCE6aSK5YWQID4gamlua291ZWl5b3VqaVwgOwor5qyn57Gz6Ku46KiA6KqeID4gb3ViZWlzaG9nZW5nb1wgOwor5Lq65bel5a215YyW5rOVID4gamlua291ZnVrYWhvdVwgOwor6LuN5LqL6aGn5ZWP5ZujID4gZ3Vuamlrb21vbmRhblwgOwor6auY5bGk5aSp5rCX5ZuzID4ga291c291dGVua2l6dVwgOwor5Luu6Z2i6Iie6LiP5LyaID4ga2FtZW5idXRvdWthaVwgOwor5L2c5qWt6YOo5Lya5qGIID4gc2FneW91YnVrYWlhblwgOwor5pig55S76KmV6KuW5a62ID4gZWlnYWh5b3Vyb25rYVwgOwor56ys5LqM5qyh5aSn5oimID4gZGFpbmlqaXRhaXNlblwgOwor6YeO5qyh6aas5qC55oCnID4geWFqaXVtYWtvbmpvdVwgOwor6Iux5Lya6Kmx5a2m5qChID4gZWlrYWl3YWdha2tvdVwgOwor5YmN5pa55LiN5rOo5oSPID4gemVucG91ZnVjaHV1aVwgOwor5Zyw5pa55YWs5YuZ5ZOhID4gY2hpaG91a291bXVpblwgOwor6Ieq5YuV6LKp5aOy5qmfID4gamlkb3VoYW5iYWlraVwgOwor6Zu756OB6Kq/55CG5ZmoID4gZGVuamljaG91cmlraVwgOwor6Iiq56m66Ieq6KGb6ZqKID4ga291a3V1amllaXRhaVwgOwor5qmf6Zai5oqV6LOH5a62ID4ga2lrYW50b3VzaGlrYVwgOwor5Zue6Lev6YGu5pat5qmfID4ga2Fpcm9zaGFkYW5raVwgOwor6IGW6Lev5Yqg55eF6ZmiID4gc2Vpcm9rYWJ5b3VpblwgOwor5YiG6Zui5Li7576p6ICFID4gYnVucmlzaHVnaXNoYVwgOwor5oay5rOV6KiY5b+15pelID4ga2VucG91a2luZW5iaVwgOwor5Yqg5rib5oq15oqX5ZmoID4ga2FnZW50ZWlrb3VraVwgOwor6Ieq5YuV6LKp5aOy5ZmoID4gamlkb3VoYW5iYWlraVwgOwor54Sh5YWN6Kix6YGL6LuiID4gbXVtZW5reW91bnRlblwgOwor5LiN5Y+v6KaW5YWJ57eaID4gZnVrYXNoaWtvdXNlblwgOwor6LK/5piT6Ieq55Sx5YyWID4gYm91ZWtpaml5dXVrYVwgOwor56m65rCX5Yi25YuV5qmfID4ga3V1a2lzZWlkb3VraVwgOwor5LqU5Y2B5q2p55m+5q2pID4gZ29qdXBwb2h5YXBwb1wgOwor5Y6f55CG5Li7576p6ICFID4gZ2VucmlzaHVnaXNoYVwgOwor5aSa5YWD5paH5YyW6KuWID4gdGFnZW5idW5rYXJvblwgOwor6K2y5rih5oCn6aCQ6YeRID4gam91dG9zZWl5b2tpblwgOwor5Zu95a625Li7576p6ICFID4ga29ra2FzaHVnaXNoYVwgOwor5rK/5bK46K2m5YKZ6ZqKID4gZW5nYW5rZWliaXRhaVwgOwor5YCL5Lq65Li7576p6ICFID4ga29qaW5zaHVnaXNoYVwgOwor5aSW5Lqk5aeU5ZOh6ZW3ID4gZ2Fpa291aWluY2hvdVwgOwor54Sh5oq15oqX5Li7576pID4gbXV0ZWlrb3VzaHVnaVwgOwor5pS+5bCE6IO95rGa5p+TID4gaG91c2hhbm91b3NlblwgOwor6Zu75rCX6Ieq5YuV6LuKID4gZGVua2lqaWRvdXNoYVwgOwor5YSq55Sf5L+d6K235rOVID4geXV1c2VpaG9nb2hvdVwgOwor5Zyw5pa55LqL5YuZ5omAID4gY2hpaG91amltdXNob1wgOwor6Ly45YWl6Ieq55Sx5YyWID4geXVueXV1aml5dXVrYVwgOwor54Sh5Yip5oGv5YK15YuZID4gbXVyaXNva3VzYWltdVwgOwor56Gr6buE6YW45YyW54mpID4gaW91c2Fua2FidXRzdVwgOwor6YGT6Lev5o6D6Zmk5Lq6ID4gZG91cm9zb3VqaWppblwgOwor5LuB6Lyq5Yqg54uC6KiAID4gbml3YWtha3lvdWdlblwgOwor6Ieq6Ieq5YWs77yT5YWaID4gamlqaWtvdXNhbnRvdVwgOwor5rCX566h5pSv6IK654KOID4ga2lrYW5zaGloYWllblwgOwor5aSa6YeN5YK15YuZ6ICFID4gdGFqdXVzYWltdXNoYVwgOwor6Kuu5ZWP5aeU5ZOh5LyaID4gc2hpbW9uJydpaW5rYWlcIDsKK+mrmOmrmOW6pumjm+ihjCA+IGtvdWtvdWRvaGlrb3VcIDsKK+WbveS8muitsOS6i+WggiA+IGtva2thaWdpamlkb3VcIDsKK+S6jOWNgeWbm+evgOawlyA+IG5panV1c2hpc2Vra2lcIDsKK+eEoeW9ouaWh+WMluiyoSA+IG11a2VpYnVua2F6YWlcIDsKK+W4guWgtOiHqueUseWMliA+IHNoaWpvdWppeXV1a2FcIDsKK+e1jOWWtuWkmuinkuWMliA+IGtlaWVpdGFrYWt1a2FcIDsKK+S4u+aIkeS4u+e+qeiAhSA+IHNodWdhc2h1Z2lzaGFcIDsKK+aal+WPt+WMluaJi+azlSA+IGFuZ291a2FzaHVob3VcIDsKK+S4jeimi+i7ouiKuOiAhSA+IG1penV0ZW5nZWlzaGFcIDsKK+WKn+WIqeS4u+e+qeiAhSA+IGtvdXJpc2h1Z2lzaGFcIDsKK+iHquWLlei7iuS/nemZuiA+IGppZG91c2hhaG9rZW5cIDsKK+iHquW3semhleekuuassiA+IGppa29rZW5qaXlva3VcIDsKK+eEoemFjeW9k+S/nemZuiA+IG11aGFpdG91aG9rZW5cIDsKK+aenOaoueagveWfueiAhSA+IGthanVzYWliYWlzaGFcIDsKK+ijgeWIpOWumOW/jOmBvyA+IHNhaWJhbmthbmtpaGlcIDsKK+mdnuatpuijheWcsOW4ryA+IGhpYnVzb3VjaGl0YWlcIDsKK+epuuawl+a4hea1hOapnyA+IGt1dWtpc2Vpam91a2lcIDsKK+S4gOS6i+S4jeWGjeitsCA+IGljaGlqaWZ1c2FpZ2lcIDsKK+WJteW7uuiomOW/teaXpSA+IHNvdWtlbmtpbmVuYmlcIDsKK+aZrumBjeWmpeW9k+aApyA+IGZ1aGVuZGF0b3VzZWlcIDsKK+WOn+WtkOegtOWjiuapnyA+IGdlbnNoaWhha2Fpa2lcIDsKK+e1kOWpmuiomOW/teaXpSA+IGtla2tvbmtpbmVuYmlcIDsKK+Wkp+mbqOazqOaEj+WgsSA+IG9vYW1lY2h1dWlob3VcIDsKK+exs+adsemDqOaZgumWkyA+IGJlaXRvdWJ1amlrYW5cIDsKK+WKo+aAp+mBuuS8neWtkCA+IHJlc3NlaWlkZW5zaGlcIDsKK+eEoeS+oeWApOizh+eUoyA+IG11a2FjaGlzaGlzYW5cIDsKK+WBpeW6t+S/nemZuuWMuyA+IGtlbmtvdWhva2VuJydpXCA7CivluLjku7vlp5Tlk6HkvJogPiBqb3VuaW4nJ2lpbmthaVwgOwor6Ieq55Sx5Li7576p6ICFID4gaml5dXVzaHVnaXNoYVwgOwor55+t5rOi5Y+X5L+h5qmfID4gdGFucGFqdXNoaW5raVwgOwor56C05aOK5Li7576p6ICFID4gaGFrYWlzaHVnaXNoYVwgOwor5b6h6YO95ZCI5Li7576pID4gZ290c3Vnb3VzaHVnaVwgOwor5LqM5Y2B5pel5aSn5qC5ID4gaGF0c3VrYWRhaWtvblwgOwor6JC95LiL5YKY6YOo6ZqKID4gcmFra2FzYW5idXRhaVwgOwor6ZW36Led6Zui5L6d5a2YID4gY2hvdWt5b3JpaXpvblwgOwor56ym5Y+35aSJ5o+b5ZmoID4gZnVnb3VoZW5rYW5raVwgOwor6YCB6YeR5bCP5YiH5omLID4gc291a2lua29naXR0ZVwgOwor5a++5oim6LuK54Gr5ZmoID4gdGFpc2Vuc2hha2FraVwgOwor5byX5YyW5rC057Sg6YW4ID4gZnVra2FzdWlzb3NhblwgOwor55u46KOc5oCn5Y6f55CGID4gc291aG9zZWlnZW5yaVwgOwor6JK45rCX5qmf6Zai6LuKID4gam91a2lraWthbnNoYVwgOwor5paH5YyW5LqL5qWt6YOoID4gYnVua2FqaWd5b3VidVwgOwor54Sh6KiY5ZCN56S+5YK1ID4gbXVraW1laXNoYXNhaVwgOwor5ZCI5ZCM5oWw6ZyK56WtID4gZ291ZG91aXJlaXNhaVwgOwor54Gr54G95aCx55+l5qmfID4ga2FzYWlob3VjaGlraVwgOwor6Zu75rOi5o6i55+l5qmfID4gZGVucGF0YW5jaGlraVwgOwor5Y+v5aSJ5oq15oqX5ZmoID4ga2FoZW50ZWlrb3VraVwgOwor5YWs5YuZ5ZOh6Kmm6aiTID4ga291bXVpbnNoaWtlblwgOwor5a6H5a6Z6aOb6KGM5aOrID4gdWNodXVoaWtvdXNoaVwgOwor55yL6K235amm5a2m6ZmiID4ga2FuZ29mdWdha3VpblwgOwor5Y2B5a2X6LuN6aiO5aOrID4ganV1amlndW5raXNoaVwgOwor54Sh5qmf6auY5YiG5a2QID4gbXVraWtvdWJ1bnNoaVwgOwor54Gr54G95aCx55+l5ZmoID4ga2FzYWlob3VjaGlraVwgOwor6Zu75rOi5o6i55+l5ZmoID4gZGVucGF0YW5jaGlraVwgOwor5oyH5o+u5omA5ryU57+SID4gc2hpa2lqb2Vuc2h1dVwgOwor5LqM6YW45YyW56qS57SgID4gbmlzYW5rYWNoaXNzb1wgOwor6Ieq5YuV6LuK6Zu76KmxID4gamlkb3VzaGFkZW53YVwgOwor5oOF5aCx5Y+v6KaW5YyWID4gam91aG91a2FzaGlrYVwgOwor5pGC5rCP77yS77yQ5bqmID4gc2Vzc2hpbmlqdXVkb1wgOwor5bCP5Z6L6LWk5a626JqKID4ga29nYXRhYWthaWVrYVwgOwor57WQ5ama5oqr6Zyy5a60ID4ga2Vra29uaGlyb3VlblwgOwor5rW35LiK6Ieq6KGb6ZqKID4ga2Fpam91amllaXRhaVwgOwor5Y6f5qGI5aeU5ZOh5LyaID4gZ2VuJydhbicnaWlua2FpXCA7CivpgbjmiYvmqKnoqablkIggPiBzZW5zaHVrZW5qaWFpXCA7Civml6XlkozopovkuLvnvqkgPiBoaXlvcmltaXNodWdpXCA7Civku67oo4XoiJ7ouI/kvJogPiBrYXNvdWJ1dG91a2FpXCA7Civpga7lhYnlmajlnJ/lgbYgPiBzaGFrb3VraWRvZ3V1XCA7CivkuIvmsLTlh6bnkIbloLQgPiBnZXN1aXNob3Jpam91XCA7CivlkIjnkIbkuLvnvqnogIUgPiBnb3VyaXNodWdpc2hhXCA7Civmpb3lmajmvJTlpY/ogIUgPiBnYWtraWVuc291c2hhXCA7Civlj6TlhbjkuLvnvqnogIUgPiBrb3RlbnNodWdpc2hhXCA7Civlm73lnJ/lnLDnkIbpmaIgPiBrb2t1ZG9jaGlyaWluXCA7CivluILooZfljJbljLrln58gPiBzaGlnYWlrYWt1aWtpXCA7Civpm7vmsJfmqZ/plqLou4ogPiBkZW5raWtpa2Fuc2hhXCA7CivlvKXmrKHppqzmoLnmgKcgPiB5YWppdW1ha29uam91XCA7CivplovmoKHoqJjlv7Xml6UgPiBrYWlrb3VraW5lbmJpXCA7CivkuI3lj6/nn6Xoq5bogIUgPiBmdWthY2hpcm9uc2hhXCA7CivnhKHoqJjlkI3lgrXmqKkgPiBtdWtpbWVpc2Fpa2VuXCA7Civlhajms6Llj5fkv6HmqZ8gPiB6ZW5wYWp1c2hpbmtpXCA7CivlubPlkozkuLvnvqnogIUgPiBoZWl3YXNodWdpc2hhXCA7CivpnZLlpKnkupXkuojnrpcgPiBhb3RlbmpvdXlvc2FuXCA7Civnirbms4HmhI/lkbPoq5YgPiBqb3VreW91aW1pcm9uXCA7CivmvKLlrZfmlofljJblnI8gPiBrYW5qaWJ1bmtha2VuXCA7Civmra/np5HmioDlt6Xlo6sgPiBzaGlrYWdpa291c2hpXCA7CivmtbfkuIrovLjpgIHot68gPiBrYWlqb3V5dXNvdXJvXCA7Civoqr/lgZzlp5Tlk6HkvJogPiBjaG91dGVpaWlua2FpXCA7CivooYzmlrnkuI3mmI7ogIUgPiB5dWt1ZWZ1bWVpc2hhXCA7CivlgIvkurrnmoTmhI/oposgPiBrb2ppbnRla2lpa2VuXCA7CivljJflm73otaTmtbfogIEgPiBob2trb2t1YWthZWJpXCA7Civkvb/pgJTkuI3mmI7ph5EgPiBzaGl0b2Z1bWVpa2luXCA7CivmsJHkuLvljJbpgYvli5UgPiBtaW5zaHVrYXVuZG91XCA7CivlpKnmsJfnm7joq4fmiYAgPiB0ZW5raXNvdWRhbmpvXCA7Civlj4LliqDluIzmnJvogIUgPiBzYW5rYWtpYm91c2hhXCA7Civmh5DnlpHkuLvnvqnogIUgPiBrYWlnaXNodWdpc2hhXCA7CivluILorbDkvJrorbDlk6EgPiBzaGlnaWthaWdpaW5cIDsKK+S4reWkruWnlOWToeS8miA+IGNodXVvdWlpbmthaVwgOwor6IOD6YW46YGO5aSa55eHID4gaXNhbmthdGFzaG91XCA7Civpm7vmsJfpmbDmgKfluqYgPiBkZW5raWluc2VpZG9cIDsKK+eEoeiomOWQjemgkOmHkSA+IG11a2ltZWl5b2tpblwgOwor5Yip5bex5Li7576p6ICFID4gcmlrb3NodWdpc2hhXCA7Civlm73lrrblhazli5nlk6EgPiBrb2trYWtvdW11aW5cIDsKK+W4jOWcn+mhnuWFg+e0oCA+IGtpZG9ydWlnZW5zb1wgOwor6Zu75rCX5o6D6Zmk5qmfID4gZGVua2lzb3VqaWtpXCA7CivolpTolofljYHlrZflm6MgPiBiYXJhanV1amlkYW5cIDsKK+WvjOWjq+eBq+WxseW4ryA+IGZ1amlrYXphbnRhaVwgOwor5pif5bqn5oqV5b2x5qmfID4gc2VpemF0b3VlaWtpXCA7CivmrKflt57lp5Tlk6HkvJogPiBvdXNodXVpaW5rYWlcIDsKK+S4iuS9jeS6kuaPm+aApyA+IGpvdWlnb2thbnNlaVwgOwor5pS+5bCE57ea56eR5Yy7ID4gaG91c2hhc2Vua2FpXCA7Civngavngo7mlL7lsITlmaggPiBrYWVuaG91c2hha2lcIDsKK+WQiOWQjOWnlOWToeS8miA+IGdvdWRvdWlpbmthaVwgOwor6YG655Sj566h55CG5Lq6ID4gaXNhbmthbnJpbmluXCA7Civosr/mmJPkvp3lrZjluqYgPiBib3Vla2lpem9uZG9cIDsKK+WKtOWDjeWnlOWToeS8miA+IHJvdWRvdWlpbmthaVwgOwor5qih5Z6L6aOb6KGM5qmfID4gbW9rZWloaWtvdWtpXCA7CivkuIvkvY3nr4TnlofljJYgPiBrYWloYW5jaHV1a2FcIDsKK+mdnuWWtuWIqeWbo+S9kyA+IGhpZWlyaWRhbnRhaVwgOwor5Lqc54ax5biv5rCX5YCZID4gYW5ldHRhaWtpa291XCA7CivnhKHmlL/lupzkuLvnvqkgPiBtdXNlaWZ1c2h1Z2lcIDsKK+enu+WLleWbs+abuOmkqCA+IGlkb3V0b3Nob2thblwgOwor5a6f6KGM5aeU5ZOh5LyaID4gamlra291aWlua2FpXCA7CivnlZnlrojnlarpm7voqbEgPiBydXN1YmFuZGVud2FcIDsKK+aknOiojuWnlOWToeS8miA+IGtlbnRvdWlpbmthaVwgOwor6KGG6K2w6Zmi6K2w5ZOhID4gc2h1dWdpaW5naWluXCA7CivpgbjogIPlp5Tlk6HkvJogPiBzZW5rb3VpaW5rYWlcIDsKK+mhnue+qeiqnui+nuWFuCA+IHJ1aWdpZ29qaXRlblwgOwor5Y+z5pa56auY6bqX5qW9ID4gdWhvdWtvbWFnYWt1XCA7CivogqXljprmgKfpvLvngo4gPiBoaWtvdXNlaWJpZW5cIDsKK+S6nOmFuOWMlueqkue0oCA+IGFzYW5rYWNoaXNzb1wgOwor5a6J5a6a5ZCM5L2N5L2TID4gYW50ZWlkb3VpdGFpXCA7CivmloflrZfnrKblj7fns7sgPiBtb2ppZnVnb3VrZWlcIDsKK+WMu+eZgui8uOmAgeapnyA+IGlyeW91eXVzb3VraVwgOwor6YGO6YW45YyW5rC057SgID4ga2FzYW5rYXN1aXNvXCA7Civku6PnkIblp5Tku7vnirYgPiBkYWlyaWluaW5qb3VcIDsKK+S6nOWvkuW4r+awl+WAmSA+IGFrYW50YWlraWtvdVwgOwor6auY6Z+z6YOo6KiY5Y+3ID4ga291b25idWtpZ291XCA7CivkvY3nm7jlub7kvZXlraYgPiBpc291a2lrYWdha3VcIDsKK+S8iuWLouWkp+elnuWuriA+IGlzZWRhaWppbmd1dVwgOwor5LqM6YW45YyW54Kt57SgID4gbmlzYW5rYXRhbnNvXCA7CivkvY7pn7Ppg6joqJjlj7cgPiB0ZWlvbmJ1a2lnb3VcIDsKK+aEm+S7luS4u+e+qeiAhSA+IGFpdGFzaHVnaXNoYVwgOwor5Li75oSP5Li7576p6ICFID4gc2h1aXNodWdpc2hhXCA7CivmrKHphbjljJbngq3ntKAgPiBqaXNhbmthdGFuc29cIDsKK+ayu+Wuiee2reaMgeazlSA+IGNoaWFuJydpamlob3VcIDsKK+S6leaIuOerr+S8muitsCA+IGlkb2JhdGFrYWlnaVwgOwor5bqm5pWw5YiG5biD5ZuzID4gZG9zdXVidW5wdXp1XCA7Civoh6rli5Xou4rkuovmlYUgPiBqaWRvdXNoYWppa29cIDsKK+i+suWcsOWnlOWToeS8miA+IG5vdWNoaWlpbmthaVwgOwor5YK15YuZ5LiN5bGl6KGMID4gc2FpbXVmdXJpa291XCA7CivkuIDphbjljJbngq3ntKAgPiBpc3NhbmthdGFuc29cIDsKK+S7mOWKoOS+oeWApOeojiA+IGZ1a2FrYWNoaXplaVwgOwor5bi4572u5aeU5ZOh5LyaID4gam91Y2hpaWlua2FpXCA7Civlhazlronlp5Tlk6HkvJogPiBrb3VhbicnaWlua2FpXCA7CivpnZ7llrbliKnkuovmpa0gPiBoaWVpcmlqaWd5b3VcIDsKK+e1jOWWtuWQiOeQhuWMliA+IGtlaWVpZ291cmlrYVwgOwor5byB6K235L6d6aC85Lq6ID4gYmVuZ29pcmFpbmluXCA7CivliKnku5bkuLvnvqnogIUgPiByaXRhc2h1Z2lzaGFcIDsKK+Wwiueah+eOi+aUmOWktyA+IHNvbicnbm91am91aVwgOwor6Z2e6ZaL56S65ZCI5oSPID4gaGlrYWlqaWdvdWlcIDsKK+imi+anmOimi+ecn+S8vCA+IG1peW91bWltYW5lXCA7CivpmL/lkYbpmYDnvoXntYwgPiBhaG9kYXJha3lvdVwgOwor5rOV5YuZ5aeU5ZOh5LyaID4gaG91bXVpaW5rYWlcIDsKK+iEium7hOmdkum4muWTpSA+IHNla2lzZWlpbmtvXCA7CivlsYvmoLnoo4/pg6jlsYsgPiB5YW5ldXJhYmV5YVwgOwor6Zi/5aSa56aP6aKo6YKqID4gb3RhZnVrdWthemVcIDsKK+S4jemaj+aEj+mBi+WLlSA+IGZ1enVpaXVuZG91XCA7Civml6XmnKzoqp7mloflrZcgPiBuaWhvbmdvbW9qaVwgOwor5bmz5ZKM57at5oyB6LuNID4gaGVpd2FpamlndW5cIDsKK+iAs+m8u+WSveWWieenkSA+IGppYmlpbmtvdWthXCA7Civlj4LorbDpmaLorbDlk6EgPiBzYW5naWluZ2lpblwgOwor5rGf5oi45YmN5a+/5Y+4ID4gZWRvbWFlenVzaGlcIDsKK+iHquiomOa4qeW6puioiCA+IGppa2lvbmRva2VpXCA7Civmupblgpnlp5Tlk6HkvJogPiBqdW5iaWlpbmthaVwgOwor5LiL5L2N5LqS5o+b5oCnID4ga2FpZ29rYW5zZWlcIDsKK+S6nOmJm+iPr+i7n+iGjyA+IGFlbmthbmFua291XCA7CivkupznsbPliKnliqDmnYkgPiBhbWVyaWthc3VnaVwgOwor5pGp6Ki25LiN5oCd6K2wID4gbWFrYWZ1c2hpZ2lcIDsKK+eUo+WppuS6uuenkeWMuyA+IHNhbmZ1amlua2FpXCA7CivpgYvllrblp5Tlk6HkvJogPiB1bicnZWlpaW5rYWlcIDsKK+WQjOmfs+eVsOe+qeiqniA+IGRvdW9uJydpZ2lnb1wgOwor5Ye65p2l5LiN5Ye65p2lID4gZGVraWZ1ZGVraVwgOwor5b6h6auY56WW6aCt5be+ID4gb2tvc296dWtpblwgOwor5LqM6YW45YyW56Gr6buEID4gbmlzYW5rYWlvdVwgOwor5Y2B6YeN5LqM5Y2B6YeNID4gdG9laGF0YWVcIDsKK+mVt+aXpeakjeeJqSA+IGNob3VqaXRzdXNob2t1YnV0c3VcIDsKK+W+i+S7pOagvOW8jyA+IHJpdHN1cnlvdWt5YWt1c2hpa2lcIDsKK+mjn+iCieakjeeJqSA+IHNob2t1bmlrdXNob2t1YnV0c3VcIDsKK+ebtOaOpeaOpee2miA+IGNob2t1c2V0c3VzZXRzdXpva3VcIDsKK+mjn+iZq+akjeeJqSA+IHNob2t1Y2h1dXNob2t1YnV0c3VcIDsKK+S4gOaXpeS4gOaXpSA+IGljaGluaWNoaWljaGluaWNoaVwgOwor55+t5pel5qSN54mpID4gdGFuaml0c3VzaG9rdWJ1dHN1XCA7CivmqJnmupblh7rlipsgPiBoeW91anVuc2h1dHN1cnlva3VcIDsKK+S/oeiznuW/hee9sCA+IHNoaW5zaG91aGl0c3ViYXRzdVwgOwor54m55b605oq95Ye6ID4gdG9rdWNob3VjaHV1c2h1dHN1XCA7CivnnYDnlJ/mpI3niakgPiBjaGFrdXNlaXNob2t1YnV0c3VcIDsKK+Wun+eJqeWPluW8lSA+IGppdHN1YnV0c3V0b3JpaGlraVwgOwor55u05o6l5o6l6KemID4gY2hva3VzZXRzdXNlc3Nob2t1XCA7Civosrjku5jkv6HoqJcgPiBrYXNoaXRzdWtlc2hpbnRha3VcIDsKK+WNs+aXpemAn+mBlCA+IHNva3VqaXRzdXNva3V0YXRzdVwgOwor55m+55m655m+5LitID4gaHlhcHBhdHN1aHlha3VjaHV1XCA7Civlj5bnt6DlvbnkvJogPiB0b3Jpc2hpbWFyaXlha3VrYWlcIDsKK+WHuuWKm+ijhee9riA+IHNodXRzdXJ5b2t1c291Y2hpXCA7CivopIfpm5HpqqjmipggPiBmdWt1emF0c3Vrb3NzZXRzdVwgOwor54mp55qE5rWB6YCaID4gYnV0c3V0ZWtpcnl1dXRzdXVcIDsKK+WNgeW5tOS4gOaYlCA+IGp1dW5lbmhpdG9tdWthc2hpXCA7CivnpaXmnIjlkb3ml6UgPiBzaG91dHN1a2ltZWluaWNoaVwgOwor5oim55Wl54mp6LOqID4gc2Vucnlha3VidXNzaGl0c3VcIDsKK+WwseiBt+a0u+WLlSA+IHNodXVzaG9rdWthdHN1ZG91XCA7CivlvLHogonlvLfpo58gPiBqYWt1bmlrdWt5b3VzaG9rdVwgOwor5Ly457iu56iO546HID4gc2hpbnNodWt1emVpcml0c3VcIDsKK+elnuWHuumsvOayoSA+IHNoaW5zaHV0c3VraWJvdHN1XCA7CivlkLjooYDli5XniakgPiBreXV1a2V0c3Vkb3VidXRzdVwgOwor54ax5Yqb5a2m55qEID4gbmV0c3VyaWtpZ2FrdXRla2lcIDsKK+akjeeJqeaOoembhiA+IHNob2t1YnV0c3VzYWlzaHV1XCA7Civlh7rlipvnq6/lrZAgPiBzaHV0c3VyeW9rdXRhbnNoaVwgOwor5qiZ5rqW5YWl5YqbID4gaHlvdWp1bicnbnl1dXJ5b2t1XCA7CivoprPokYnmpI3niakgPiBrYW4nJ3lvdXNob2t1YnV0c3VcIDsKK+S4g+eUn+WgseWbvSA+IHNoaWNoaXNob3Vob3Vrb2t1XCA7Civlrp/nianmj4/lhpkgPiBqaXRzdWJ1dHN1YnlvdXNoYVwgOwor5q6655yf6I+M6JasID4gc2F0c3VzaGlua2luJyd5YWt1XCA7CivmqJnmnKzmir3lh7ogPiBoeW91aG9uY2h1dXNodXRzdVwgOwor57eP5ous6LOq5ZWPID4gc291a2F0c3VzaGl0c3Vtb25cIDsKK+a9ruWKm+eZuumbuyA+IGNob3VyeW9rdWhhdHN1ZGVuXCA7Civnm7TmjqXos7zlhaUgPiBjaG9rdXNldHN1a291bnl1dVwgOwor56qu5qW155uu55qEID4ga3l1dWt5b2t1bW9rdXRla2lcIDsKK+WkqeeFp+Wkp+elniA+IGFtYXRlcmFzdW9vbWlrYW1pXCA7Civos6rlrp/liZvlgaUgPiBzaGl0c3VqaXRzdWdvdWtlblwgOwor5bGA5aSW5Lit56uLID4ga3lva3VnYWljaHV1cml0c3VcIDsKK+iJsuW9qeiqv+evgCA+IHNoaWtpc2FpY2hvdXNldHN1XCA7CivolqznlKjmpI3niakgPiB5YWt1eW91c2hva3VidXRzdVwgOwor56eL6Zyc54OI5pelID4gc2h1dXNvdXJldHN1aml0c3VcIDsKK+ebtOaOpeiri+axgiA+IGNob2t1c2V0c3VzZWlreXV1XCA7CivlrpfmlZnlk7LlraYgPiBzaHV1a3lvdXRldHN1Z2FrdVwgOwor6Jas54mp5Lit5q+SID4geWFrdWJ1dHN1Y2h1dWRva3VcIDsKK+Wwj+W/g+e/vOe/vCA+IHNob3VzaGluJyd5b2t1eW9rdVwgOwor54m55Yil5bmV5YOaID4gdG9rdWJldHN1YmFrdXJ5b3VcIDsKK+WIhuijgueJqeizqiA+IGJ1bnJldHN1YnVzc2hpdHN1XCA7Civnm7TmjqXnhafmmI4gPiBjaG9rdXNldHN1c2hvdW1laVwgOwor5Zix6KiX5q665Lq6ID4gc2hva3V0YWt1c2F0c3VqaW5cIDsKK+a5v+eUn+akjeeJqSA+IHNoaXNzZWlzaG9rdWJ1dHN1XCA7CivkuIPljYHkurroqLMgPiBzaGljaGlqdXVuaW4nJ3lha3VcIDsKK+eZuueZjOeJqeizqiA+IGhhdHN1Z2FuYnVzc2hpdHN1XCA7Civnmb3plbfpoIjpr6ggPiBzaGlyb25hZ2FzdWt1amlyYVwgOwor6Kaz6LOe5qSN54mpID4ga2Fuc2hvdXNob2t1YnV0c3VcIDsKK+W/g+elnuWWquWksSA+IHNoaW5zaGluc291c2hpdHN1XCA7CivpgJrkv5flsI/oqqwgPiB0c3V1em9rdXNob3VzZXRzdVwgOwor55m+5oim55m+5YudID4gaHlha3VzZW5oeWFrdXNob3VcIDsKK+aPkOeBr+ihjOWIlyA+IGNob3VjaGluZ3lvdXJldHN1XCA7CivlpLHmpa3lr77nrZYgPiBzaGl0c3VneW91dGFpc2FrdVwgOwor5bCP5b+D57+844CFID4gc2hvdXNoaW4nJ3lva3V5b2t1XCA7Civlt6blgbTpgJrooYwgPiBoaWRhcmlnYXdhdHN1dWtvdVwgOwor5pWR5Ye65L2c5oimID4ga3l1dXNodXRzdXNha3VzZW5cIDsKK+WupOWGheijhemjviA+IHNoaXRzdW5haXNvdXNob2t1XCA7Civnm7TmjqXnq7bkuokgPiBjaG9rdXNldHN1a3lvdXNvdVwgOwor5pet5pel5piH5aSpID4ga3lva3VqaXRzdXNob3V0ZW5cIDsKK+iYmuiLlOakjeeJqSA+IHNlbnRhaXNob2t1YnV0c3VcIDsKK+eglOeptuWupOajnyA+IGtlbmt5dXVzaGl0c3V0b3VcIDsKK+ilv+WBtOiruOWbvSA+IG5pc2hpZ2F3YXNob2tva3VcIDsKK+iEiuakjuWLleeJqSA+IHNla2l0c3VpZG91YnV0c3VcIDsKK+ahkeWOn+ahkeWOnyA+IGt1d2FiYXJha3V3YWJhcmFcIDsKK+S6q+alveeUn+a0uyA+IGt5b3VyYWt1c2Vpa2F0c3VcIDsKK+WFpeWKm+mbu+a1gSA+IG55dXVyeW9rdWRlbnJ5dXVcIDsKK+WNgeW5tOS4gOaXpSA+IGp1dW5lbicnaWNoaWppdHN1XCA7Civpoqjkv5flsI/oqqwgPiBmdXV6b2t1c2hvdXNldHN1XCA7CivkvY7ooYDlnKfnl4cgPiB0ZWlrZXRzdWF0c3VzaG91XCA7CivomZrjgIXlrp/jgIUgPiBreW9reW9qaXRzdWppdHN1XCA7CivmioDooZPljZTlipsgPiBnaWp1dHN1a3lvdXJ5b2t1XCA7CivnqbrkuK3ooZ3nqoEgPiBrdXVjaHV1c2hvdXRvdHN1XCA7CivljYPnr4fkuIDlvosgPiBzZW5wZW4nJ2ljaGlyaXRzdVwgOwor5paZ55CG5pWZ5a6kID4gcnlvdXJpa3lvdXNoaXRzdVwgOwor5pys5qC85bCP6KqsID4gaG9ua2FrdXNob3VzZXRzdVwgOwor5Zu956uL5YqH5aC0ID4ga29rdXJpdHN1Z2VraWpvdVwgOwor6I2J6aOf5YuV54mpID4gc291c2hva3Vkb3VidXRzdVwgOwor55u05o6l6YG45oyZID4gY2hva3VzZXRzdXNlbmt5b1wgOwor55Sf6ICF5b+F5ruFID4gc2hvdWphaGl0c3VtZXRzdVwgOwor54ax5biv5qSN54mpID4gbmV0dGFpc2hva3VidXRzdVwgOwor5p2+5LiL6Zu75belID4gbWF0c3VzaGl0YWRlbmtvdVwgOwor5ZWG5qWt566X6KGTID4gc2hvdWd5b3VzYW5qdXRzdVwgOwor5oim5oim5qCX5qCXID4gc2Vuc2Vucml0c3VyaXRzdVwgOwor5o+u55m654mp6LOqID4ga2loYXRzdWJ1c3NoaXRzdVwgOwor55m65YWJ5qSN54mpID4gaGFra291c2hva3VidXRzdVwgOwor6Zu75Yqb5L6b57WmID4gZGVucnlva3VreW91a3l1dVwgOwor5oim55Wl54iG5pKDID4gc2Vucnlha3ViYWt1Z2VraVwgOwor5aaK5aig5Lit57W2ID4gbmluc2hpbmNodXV6ZXRzdVwgOwor55u05o6l5Lya6KuHID4gY2hva3VzZXRzdWthaWRhblwgOwor5Ymy5aKX6LOD6YeRID4gd2FyaW1hc2hpY2hpbmdpblwgOwor5L2c5LuY6Z2i56mNID4gc2FrdWR6dWtlbWVuc2VraVwgOwor5pel54us5Y2U5LyaID4gbmljaGlkb2t1a3lvdWthaVwgOwor5pel5bi455Sf5rS7ID4gbmljaGlqb3VzZWlrYXRzdVwgOwor5q2z5YWl5q2z5Ye6ID4gc2Fpbnl1dXNhaXNodXRzdVwgOwor54m55Yil5oCl6KGMID4gdG9rdWJldHN1a3l1dWtvdVwgOwor6Lui5Ye66Ki85piOID4gdGVuc2h1dHN1c2hvdW1laVwgOwor5pWR6I2S5L2c54mpID4ga3l1dWtvdXNha3Vtb3RzdVwgOwor5Zyw54ax55m66Zu7ID4gY2hpbmV0c3VoYXRzdWRlblwgOwor6Jas54mp55mC5rOVID4geWFrdWJ1dHN1cnlvdWhvdVwgOwor6aOf57On6YWN57WmID4gc2hva3VyeW91aGFpa3l1dVwgOwor55u057O76KGA5pePID4gY2hva2tlaWtldHN1em9rdVwgOwor6LOq5ZWP55So57SZID4gc2hpdHN1bW9uJyd5b3VzaGlcIDsKK+eLrOi6q+eUn+a0uyA+IGRva3VzaGluc2Vpa2F0c3VcIDsKK+itpuWvn+W9k+WxgCA+IGtlaXNhdHN1dG91a3lva3VcIDsKK+ebtOaOpeS8neafkyA+IGNob2t1c2V0c3VkZW5zZW5cIDsKK+mdkuepuuaVmeWupCA+IGFvem9yYWt5b3VzaGl0c3VcIDsKK+mdnuWroeWHuuWtkCA+IGhpY2hha3VzaHV0c3VzaGlcIDsKK+eUn+a0u+anmOW8jyA+IHNlaWthdHN1eW91c2hpa2lcIDsKK+eJh+mBk+aWmemHkSA+IGthdGFtaWNoaXJ5b3VraW5cIDsKK+WOn+ayuea1geWHuiA+IGdlbicneXVyeXV1c2h1dHN1XCA7CivnlaXlvI/lkb3ku6QgPiByeWFrdXNoaWtpbWVpcmVpXCA7CivoirjooZPmtLvli5UgPiBnZWlqdXRzdWthdHN1ZG91XCA7CivmrbTlj7Llk7LlraYgPiByZWtpc2hpdGV0c3VnYWt1XCA7CivkuIvnlLroqIDokYkgPiBzaGl0YW1hY2hpa290b2JhXCA7Civnt4rmgKXnnYDpmbggPiBraW5reXV1Y2hha3VyaWt1XCA7CivlhrfooYDli5XniakgPiByZWlrZXRzdWRvdWJ1dHN1XCA7Civlj5bmibHms6jmhI8gPiB0b3JpYXRzdWthaWNodXVpXCA7CivlibLlopfmlpnph5EgPiB3YXJpbWFzaGlyeW91a2luXCA7Civnm7TmiKrnsKHmmI4gPiBjaG9rdXNldHN1a2FubWVpXCA7Civpu4TpgZPlkInml6UgPiBrb3Vkb3VraWNoaW5pY2hpXCA7CivkuIDop6bljbPnmbogPiBpc3Nob2t1c29rdWhhdHN1XCA7CivljbPml6XplovnpaggPiBzb2t1aml0c3VrYWloeW91XCA7Civlrp/os6ros4Pph5EgPiBqaXNzaGl0c3VjaGluZ2luXCA7CivmlZnppIrlsI/oqqwgPiBreW91eW91c2hvdXNldHN1XCA7Civmir3osaHoirjooZMgPiBjaHV1c2hvdWdlaWp1dHN1XCA7Civnm7TmjqXmlK/phY0gPiBjaG9rdXNldHN1c2hpaGFpXCA7Civpm4blm6PlsLHogbcgPiBzaHV1ZGFuc2h1dXNob2t1XCA7CivmsLTnlJ/mpI3niakgPiBzdWlzZWlzaG9rdWJ1dHN1XCA7Civogbfli5nos6rllY8gPiBzaG9rdW11c2hpdHN1bW9uXCA7Civkub7nlJ/mpI3niakgPiBrYW5zZWlzaG9rdWJ1dHN1XCA7Civlrr/ms4roqK3lgpkgPiBzaHVrdWhha3VzZXRzdWJpXCA7Civlm73nq4vlpKflraYgPiBrb2t1cml0c3VkYWlnYWt1XCA7CivkuIDoqIDkuozoqIAgPiBoaXRva290b2Z1dGFrb3RvXCA7CivmraPpnaLooZ3nqoEgPiBzaG91bWVuc2hvdXRvdHN1XCA7CivkuIDml6XljYPnp4sgPiBpY2hpbmljaGlzZW5zaHV1XCA7CivllYbmpa3nm67nmoQgPiBzaG91Z3lvdW1va3V0ZWtpXCA7CivopIflvI/lrabntJogPiBmdWt1c2hpa2lnYWtreXV1XCA7CivljZLmpa3oqLzmm7ggPiBzb3RzdWd5b3VzaG91c2hvXCA7CivnhLzogonlrprpo58gPiB5YWtpbmlrdXRlaXNob2t1XCA7CivooajpnaLlvLXlipsgPiBoeW91bWVuY2hvdXJ5b2t1XCA7CivnibnliKXnlarntYQgPiB0b2t1YmV0c3ViYW5ndW1pXCA7Civlrabnv5Log73lipsgPiBnYWt1c2h1dW5vdXJ5b2t1XCA7Civkv6HnlKjlj5blvJUgPiBzaGluJyd5b3V0b3JpaGlraVwgOwor6auY6KGA5Zyn55eHID4ga291a2V0c3VhdHN1c2hvdVwgOwor5Lit5b+D5Lq654mpID4gY2h1dXNoaW5qaW5idXRzdVwgOwor6aOf5paZ5ZOB5ZWGID4gc2hva3VyeW91aGluc2hvdVwgOwor6LaF54++5a6f55qEID4gY2hvdWdlbmppdHN1dGVraVwgOwor5Y2z6Lqr5oiQ5LuPID4gc29rdXNoaW5qb3VidXRzdVwgOwor5Zu95aSW6ISx5Ye6ID4ga29rdWdhaWRhc3NodXRzdVwgOwor55u05o6l5Zue562UID4gY2hva3VzZXRzdWthaXRvdVwgOwor5YWI54mp5Y+W5byVID4gc2FraW1vbm90b3JpaGlraVwgOwor5q205Y+y5bCP6KqsID4gcmVraXNoaXNob3VzZXRzdVwgOwor54Wu5rK45raI5q+SID4gc2hhZnV0c3VzaG91ZG9rdVwgOwor5rW35aSW6YCy5Ye6ID4ga2FpZ2Fpc2hpbnNodXRzdVwgOwor5rC05Yqb55m66Zu7ID4gc3Vpcnlva3VoYXRzdWRlblwgOwor5b2i6LOq5bCO5YWlID4ga2Vpc2hpdHN1ZG91bnl1dVwgOwor55u05o6l6Zai5L+CID4gY2hva3VzZXRzdWthbmtlaVwgOwor55u05o6l57Ch5piOID4gY2hva3VzZXRzdWthbm1laVwgOwor5oyv5pu/5LyR5pelID4gZnVyaWthZWt5dXVqaXRzdVwgOwor5Y2D57eo5LiA5b6LID4gc2VucGVuJydpY2hpcml0c3VcIDsKK+mDteS+v+Wwj+WMhSA+IHl1dWJpbmtvZHp1dHN1bWlcIDsKK+WNmOS4gOelnuaVmSA+IHRhbicnaXRzdXNoaW5reW91XCA7CivomZrlvLHkvZPos6ogPiBreW9qYWt1dGFpc2hpdHN1XCA7CivohIrntKLli5XniakgPiBzZWtpc2FrdWRvdWJ1dHN1XCA7CivmrablipvooZ3nqoEgPiBidXJ5b2t1c2hvdXRvdHN1XCA7CivnhrHmoLjlj43lv5wgPiBuZXRzdWtha3VoYW4nJ25vdVwgOwor56iu5a2Q5qSN54mpID4gc2h1c2hpc2hva3VidXRzdVwgOwor55u05o6l6KGM5YuVID4gY2hva3VzZXRzdWtvdWRvdVwgOwor5rGC6IG35bqD5ZGKID4ga3l1dXNob2t1a291a29rdVwgOwor5a6f6Ki85ZOy5a2mID4gamlzc2hvdXRldHN1Z2FrdVwgOwor6Iqx5auB6Iqx5am/ID4gaGFuYXlvbWVoYW5hbXVrb1wgOwor5aSn5ZCN6KGM5YiXID4gZGFpbXlvdWd5b3VyZXRzdVwgOwor6auY5bGx5qSN54mpID4ga291emFuc2hva3VidXRzdVwgOwor54m55Yil5paZ6YeRID4gdG9rdWJldHN1cnlvdWtpblwgOwor5Lit6ZaT5bCP6KqsID4gY2h1dWthbnNob3VzZXRzdVwgOwor55Sf54mp5r+D57iuID4gc2VpYnV0c3Vub3VzaHVrdVwgOwor5YWl5Yqb5L+h5Y+3ID4gbnl1dXJ5b2t1c2hpbmdvdVwgOwor5b2r5Yi75a6k5bqnID4gY2hvdWtva3VzaGl0c3V6YVwgOwor56K6546H5qiZ5pysID4ga2FrdXJpdHN1aHlvdWhvblwgOwor5bee56uL5aSn5a2mID4gc2h1dXJpdHN1ZGFpZ2FrdVwgOwor5aSa6IKJ5qSN54mpID4gdGFuaWt1c2hva3VidXRzdVwgOwor54ax5Lyd5bCO546HID4gbmV0c3VkZW5kb3VyaXRzdVwgOwor5qSN54mp5Lq66ZaTID4gc2hva3VidXRzdW5pbmdlblwgOwor6Jma6Jma5a6f5a6fID4ga3lva3lvaml0c3VqaXRzdVwgOwor54mp54mp5Lqk5o+bID4gYnV0c3VidXRzdWtvdWthblwgOwor5a6f5Yqb6KGM5L2/ID4gaml0c3VyeW9rdWtvdXNoaVwgOwor5Z6L5byP6Ki85piOID4ga2F0YXNoaWtpc2hvdW1laVwgOwor6YCj5Yud6KSH5byPID4gcmVuc2hvdWZ1a3VzaGlraVwgOwor55u05o6l5Y2U6K2wID4gY2hva3VzZXRzdWt5b3VnaVwgOwor572q6Zqc5raI5ruFID4gemFpc2hvdXNob3VtZXRzdVwgOwor5pmp55Sf5qSN54mpID4gYmFuc2Vpc2hva3VidXRzdVwgOwor5r2c5Zyo5aSx5qWtID4gc2VuemFpc2hpdHN1Z3lvdVwgOwor55u05o6l5q+U6LyDID4gY2hva3VzZXRzdWhpa2FrdVwgOwor5qC45oqR5q2i5YqbID4ga2FrdXlva3VzaGlyeW9rdVwgOwor5LiH54mp5rWB6LuiID4gYmFuYnV0c3VyeXV1dGVuXCA7Civou5/lvI/luq3nkIMgPiBuYW5zaGlraXRlaWt5dXVcIDsKK+S/rumBk+eUn+a0uyA+IHNodXVkb3VzZWlrYXRzdVwgOwor56eY5a+G6K2m5a+fID4gaGltaXRzdWtlaXNhdHN1XCA7Civms5XkurrmoKrkuLsgPiBob3VqaW5rYWJ1bnVzaGlcIDsKK+mWk+aOpeeFp+aYjiA+IGthbnNldHN1c2hvdW1laVwgOwor57Sb6aqo56CV6LqrID4gZnVua290c3VzYWlzaGluXCA7CivkuKHmo7Lli5XniakgPiByeW91c2VpZG91YnV0c3VcIDsKK+mbhue0hOi+sualrSA+IHNodXV5YWt1bm91Z3lvdVwgOwor5buD55a+5p2h5Lu2ID4gaGFpc2hpdHN1am91a2VuXCA7Civog73njofos4Pph5EgPiBub3VyaXRzdWNoaW5naW5cIDsKK+WNmOWIgOebtOWFpSA+IHRhbnRvdWNob2t1bnl1dVwgOwor5LiJ5paH5bCP6KqsID4gc2FubW9uc2hvdXNldHN1XCA7CivnrYvogonms6jlsIQgPiBraW4nJ25pa3VjaHV1c2hhXCA7Civlm5vpgJrlhavpgZQgPiBzaGl0c3V1aGF0dGF0c3VcIDsKK+WJsuWil+mBi+izgyA+IHdhcmltYXNoaXVuY2hpblwgOwor5Y2X5qW16Kaz5risID4gbmFua3lva3VrYW5zb2t1XCA7CivkuIDnm67nnq3nhLYgPiBpY2hpbW9rdXJ5b3V6ZW5cIDsKK+e0oOS6uuS4i+WuvyA+IHNoaXJvdXRvZ2VzaHVrdVwgOwor5a2m5qCh57Wm6aOfID4gZ2Fra291a3l1dXNob2t1XCA7CivplpPmjqXmkq7lvbEgPiBrYW5zZXRzdXNhdHN1ZWlcIDsKK+eZveW3neWknOiIuSA+IHNoaXJha2F3YXlvZnVuZVwgOwor54m5562G5aSn5pu4ID4gdG9rdWhpdHN1dGFpc2hvXCA7Civpo5/lk4Hlt6Xmpa0gPiBzaG9rdWhpbmtvdWd5b3VcIDsKK+ajmOearuWLleeJqSA+IGt5b2t1aGlkb3VidXRzdVwgOwor5oCq5Yqb5Lmx56WeID4ga2Fpcnlva3VyYW5zaGluXCA7CivkurrnlJ/lk7LlraYgPiBqaW5zZWl0ZXRzdWdha3VcIDsKK+aWsOWpmueUn+a0uyA+IHNoaW5rb25zZWlrYXRzdVwgOwor5YWs6ZaL5YWl5pytID4ga291a2Fpbnl1dXNhdHN1XCA7CivmoKrlvI/luILloLQgPiBrYWJ1c2hpa2lzaGlqb3VcIDsKK+WtpualreaIkOe4viA+IGdha3VneW91c2Vpc2VraVwgOwor54mp6LOq5ZCN6KmeID4gYnVzc2hpdHN1bWVpc2hpXCA7Civnn63nt6jlsI/oqqwgPiB0YW5wZW5zaG91c2V0c3VcIDsKK+WVhualreaVsOWtpiA+IHNob3VneW91c3V1Z2FrdVwgOwor6ISx5Ye66YCf5bqmID4gZGFzc2h1dHN1c29rdWRvXCA7CivnibnliKXnt4/kvJogPiB0b2t1YmV0c3Vzb3VrYWlcIDsKK+esrOS4gOalveeroCA+IGRhaWljaGlnYWt1c2hvdVwgOwor57Si5p2h6YmE6YGTID4gc2FrdWpvdXRldHN1ZG91XCA7Civou43oqJjnianoqp4gPiBndW5raW1vbm9nYXRhcmlcIDsKK+WOs+ato+S4reeriyA+IGdlbnNlaWNodXVyaXRzdVwgOwor5LiA5pel5LiA5aScID4gaWNoaW5pY2hpaWNoaXlhXCA7CivpmbDpmbDmu4Xmu4UgPiBpbicnaW5tZXRzdW1ldHN1XCA7CivlsLHogbfmtarkurogPiBzaHV1c2hva3Vyb3VuaW5cIDsKK+e0lOa9lOaVmeiCsiA+IGp1bmtldHN1a3lvdWlrdVwgOwor5a6X5pWZ5pS56Z2pID4gc2h1dWt5b3VrYWlrYWt1XCA7CivmlK/pm6Lmu4Xoo4IgPiBzaGlyaW1ldHN1cmV0c3VcIDsKK+WbveawkeWuv+iIjiA+IGtva3VtaW5zaHVrdXNoYVwgOwor54us56uL5a6j6KiAID4gZG9rdXJpdHN1c2VuZ2VuXCA7Civlia/ohY7nmq7os6ogPiBmdWt1amluaGlzaGl0c3VcIDsKK+WbveawkeeUn+a0uyA+IGtva3VtaW5zZWlrYXRzdVwgOwor56mN6LyJ6IO95YqbID4gc2VraXNhaW5vdXJ5b2t1XCA7Civlj47lrrnog73lipsgPiBzaHV1eW91bm91cnlva3VcIDsKK+iFsOmrmOmanOWtkCA+IGtvc2hpZGFrYXNob3VqaVwgOwor5bm06aCD5pel6aCDID4gdG9zaGlnb3JvaGlnb3JvXCA7CivpgJrkv5fmloflraYgPiB0c3V1em9rdWJ1bmdha3VcIDsKK+WEquWFiOagquS4uyA+IHl1dXNlbmthYnVudXNoaVwgOwor5YaZ55yf5ris6YePID4gc2hhc2hpbnNva3VyeW91XCA7CivkvIHmpa3kvZPos6ogPiBraWd5b3V0YWlzaGl0c3VcIDsKK+eMqueqgeeMm+mAsiA+IGNob3RvdHN1bW91c2hpblwgOwor5a2m55Sf5Ymy5byVID4gZ2FrdXNlaXdhcmliaWtpXCA7CivkvqHmoLzlnKflipsgPiBrYWtha3VhdHN1cnlva3VcIDsKK+ihqOePvuW9ouW8jyA+IGh5b3VnZW5rZWlzaGlraVwgOwor5Ye66aGY5pu46aGeID4gc2h1dHN1Z2Fuc2hvcnVpXCA7CivlrpfmlZnmlZnogrIgPiBzaHV1a3lvdWt5b3Vpa3VcIDsKK+S9meijlee2vee2vSA+IHlveXV1c2hha3VzaGFrdVwgOwor55+l55qE6IO95YqbID4gY2hpdGVraW5vdXJ5b2t1XCA7Civlj43pqqjnsr7npZ4gPiBoYW5rb3RzdXNlaXNoaW5cIDsKK+ato+eiuueIhuaSgyA+IHNlaWtha3ViYWt1Z2VraVwgOwor5pel6Iux6YCa6KizID4gbmljaGllaXRzdXV5YWt1XCA7Civpo5/niannuYrntq0gPiBzaG9rdW1vdHN1c2VuJydpXCA7CivnrpfooZPntJrmlbAgPiBzYW5qdXRzdWt5dXVzdXVcIDsKK+WFpeWKm+ijhee9riA+IG55dXVyeW9rdXNvdWNoaVwgOwor6IG35qWt6KiT57e0ID4gc2hva3VneW91a3VucmVuXCA7CivmjqLlgbXlsI/oqqwgPiB0YW50ZWlzaG91c2V0c3VcIDsKK+eUn+a0u+WPjeW/nCA+IHNlaWthdHN1aGFuJydub3VcIDsKK+advuS4i+mbu+WZqCA+IG1hdHN1c2hpdGFkZW5raVwgOwor55+l6K2Y6ZqO57SaID4gY2hpc2hpa2lrYWlreXV1XCA7CivmoKrlvI/kvJrnpL4gPiBrYWJ1c2hpa2lnYWlzaGFcIDsKK+S4gOaZgumgkOaJgCA+IGljaGlqaWF6dWthcmlqb1wgOwor5ouh5aSn6Kej6YeIID4ga2FrdWRhaWthaXNoYWt1XCA7Civlk4Hos6rkv53oqLwgPiBoaW5zaGl0c3Vob3Nob3VcIDsKK+S/oeS7sOWRiueZvSA+IHNoaW5rb3Vrb2t1aGFrdVwgOwor5qC854mp6Ie055+lID4ga2FrdWJ1dHN1Y2hpY2hpXCA7CivnsbPnqYDpgJrluLMgPiBiZWlrb2t1dHN1dWNob3VcIDsKK+Wun+eUqOaWsOahiCA+IGppdHN1eW91c2hpbicnYW5cIDsKK+W/g+i6q+manOWusyA+IHNoaW5zaGluc2hvdWdhaVwgOwor6YCf5oim5Y2z5rG6ID4gc29rdXNlbnNva2tldHN1XCA7CivljJblrablkLjnnYAgPiBrYWdha3VreXV1Y2hha3VcIDsKK+Wbm+aWueWxseipsSA+IHlvbW95YW1hYmFuYXNoaVwgOwor55qH5a6k5YW456+EID4ga291c2hpdHN1dGVucGFuXCA7CivnibnliKXlm73kvJogPiB0b2t1YmV0c3Vrb2trYWlcIDsKK+S4gOWdquacrOekviA+IGhpdG90c3Vib2hvbnNoYVwgOwor5pep5Y+j6KiA6JGJID4gaGF5YWt1Y2hpa290b2JhXCA7Civmt7HlsbHlub3osLcgPiBzaGluemFuJyd5dXVrb2t1XCA7CivpgJrllYbnlKPmpa0gPiB0c3V1c2hvdXNhbmd5b3VcIDsKK+W7uueviemdouepjSA+IGtlbmNoaWt1bWVuc2VraVwgOwor55uk5qC56Yyv56+AID4gYmFua29uc2FrdXNldHN1XCA7CivlhoXnmoTnlJ/mtLsgPiBuYWl0ZWtpc2Vpa2F0c3VcIDsKK+enmOWvhua8j+a0qSA+IGhpbWl0c3Vyb3VzZXRzdVwgOwor546J55+z5re35reGID4gZ3lva3VzZWtpa29ua291XCA7Civpm5vpkZHliKXogIUgPiBoaW5ha2FuYmV0c3VzaGFcIDsKK+e1gui6q+W5tOmHkSA+IHNodXVzaGluJyduZW5raW5cIDsKK+eyiemqqOeglei6qyA+IGZ1bmtvdHN1c2Fpc2hpblwgOwor5Lq654mp5a+45o+PID4gamluYnV0c3VzdW5ieW91XCA7CivllYblk4Hnm67pjLIgPiBzaG91aGlubW9rdXJva3VcIDsKK+Wklumjn+eUo+alrSA+IGdhaXNob2t1c2FuZ3lvdVwgOwor6LOH5rqQ56+A57SEID4gc2hpZ2Vuc2V0c3V5YWt1XCA7CivpnZnohIjms6jlsIQgPiBqb3VteWFrdWNodXVzaGFcIDsKK+WGkumZuuWwj+iqrCA+IGJvdWtlbnNob3VzZXRzdVwgOwor54ax56Gs5YyW54mpID4gbmV0c3Vrb3VrYWJ1dHN1XCA7Civlm73mnInpiYTpgZMgPiBrb2t1eXV1dGV0c3Vkb3VcIDsKK+eiuueOh+WkieaVsCA+IGtha3VyaXRzdWhlbnN1dVwgOwor6ZaL55m66KiI55S7ID4ga2FpaGF0c3VrZWlrYWt1XCA7CivmnInlrrPnianos6ogPiB5dXVnYWlidXNzaGl0c3VcIDsKK+aDheeKtumFjOmHjyA+IGpvdWpvdXNoYWt1cnlvdVwgOwor5L6155Wl5oim5LqJID4gc2hpbnJ5YWt1c2Vuc291XCA7CivlhpLpoK3pmbPov7AgPiBib3V0b3VjaGluanV0c3VcIDsKK+eEvOi6q+iHquauuiA+IHNob3VzaGluamlzYXRzdVwgOwor5aSn5a6J5ZCJ5pelID4gdGFpYW5raWNoaW5pY2hpXCA7Civnn6/mraPoppblipsgPiBreW91c2Vpc2hpcnlva3VcIDsKK+eglOeptumWi+eZuiA+IGtlbmt5dXVrYWloYXRzdVwgOwor6KuH5ZCI5YWl5pytID4gZGFuZ291bnl1dXNhdHN1XCA7CivpmbjnlJ/li5XniakgPiByaWt1c2VpZG91YnV0c3VcIDsKK+WNl+WkquW5s+a0iyA+IG1pbmFtaXRhaWhlaXlvdVwgOwor5a2m55Sf55Sf5rS7ID4gZ2FrdXNlaXNlaWthdHN1XCA7CivvvJHvvJHvvJnnlaogPiBoeWFrdWp1dWt5dXViYW5cIDsKK+e1kOWQiOe1hOe5lCA+IGtldHN1Z291c29zaGlraVwgOwor5b2r5b+D6Y+k6aqoID4gY2hvdXNoaW5ydWtvdHN1XCA7CivnuIHml6XllYbkurogPiBlbicnbmljaGlzaG91bmluXCA7Civlv4PnpZ7ogJflvLEgPiBzaGluc2hpbm1vdWpha3VcIDsKK+efreacn+iyuOS7mCA+IHRhbmtpa2FzaGl0c3VrZVwgOwor546J55+z5re35LqkID4gZ3lva3VzZWtpa29ua291XCA7Civlt6bkuK3mi6zlvKcgPiBoaWRhcmljaHV1a2Fra29cIDsKK+m7kuiJsuS6uueoriA+IGtva3VzaG9rdWppbnNodVwgOwor5YWs5byP55m66KGoID4ga291c2hpa2loYXBweW91XCA7Civou5/pqqjntYTnuZQgPiBuYW5rb3RzdXNvc2hpa2lcIDsKK+aYn+mWk+eJqeizqiA+IHNlaWthbmJ1c3NoaXRzdVwgOwor55Sf5rav5a2m57+SID4gc2hvdWdhaWdha3VzaHV1XCA7Civnn6XorZjooajnj74gPiBjaGlzaGlraWh5b3VnZW5cIDsKK+a6kOawj+eJqeiqniA+IGdlbmppbW9ub2dhdGFyaVwgOwor5LiD6Lui5YWr5YCSID4gc2hpY2hpdGVuYmF0dG91XCA7Civnmb3oibLkurrnqK4gPiBoYWt1c2hva3VqaW5zaHVcIDsKK+W5s+WutueJqeiqniA+IGhlaWtlbW9ub2dhdGFyaVwgOwor5L2Z6KOV57a944CFID4geW95dXVzaGFrdXNoYWt1XCA7Civmi5Lntbblj43lv5wgPiBreW96ZXRzdWhhbicnbm91XCA7CivnibnliKXlvoXpgYcgPiB0b2t1YmV0c3V0YWlndXVcIDsKK+mdkuWkqeeZveaXpSA+IHNlaXRlbmhha3VqaXRzdVwgOwor5aSp572w6Ka/6Z2iID4gdGVuYmF0c3V0ZWtpbWVuXCA7CivooYDml4/ntZDlqZogPiBrZXRzdXpva3VrZWtrb25cIDsKK+eZuuiJsuePvuWDjyA+IGhhc3Nob2t1Z2Vuc2hvdVwgOwor5YWl5pyt5L6h5qC8ID4gbnl1dXNhdHN1a2FrYWt1XCA7CivpgKPnq4vlhoXplqMgPiByZW5yaXRzdW5haWtha3VcIDsKK+iFueW8j+WRvOWQuCA+IGZ1a3VzaGlraWtva3l1dVwgOwor5L2O6ZaL55m65Zu9ID4gdGVpa2FpaGF0c3Vrb2t1XCA7Civou73lppnmtJLohLEgPiBrZWlteW91c2hhZGF0c3VcIDsKK+mLvOe0oumJhOmBkyA+IGtvdXNha3V0ZXRzdWRvdVwgOwor54++5pyJ5Yui5YqbID4gZ2VuJyd5dXVzZWlyeW9rdVwgOwor6YGK5LyR5pa96KitID4geXV1a3l1dXNoaXNldHN1XCA7Civot7Pouo3mjK/li5UgPiBjaG91eWFrdXNoaW5kb3VcIDsKK+i2heeEtuWGhemWoyA+IGNob3V6ZW4nJ25haWtha3VcIDsKK+Wun+alreWtpuagoSA+IGppdHN1Z3lvdWdha2tvdVwgOwor56eB56uL5aSn5a2mID4gc2hpcml0c3VkYWlnYWt1XCA7CivmnIDkvY7ooYDlnKcgPiBzYWl0ZWlrZXRzdWF0c3VcIDsKK+WwiuWxnuauuuS6uiA+IHNvbnpva3VzYXRzdWppblwgOwor5Lit56uL5Zyw5bivID4gY2h1dXJpdHN1Y2hpdGFpXCA7CivkuKHmpbXlnLDmlrkgPiByeW91a3lva3VjaGlob3VcIDsKK+mAo+e2muauuuS6uiA+IHJlbnpva3VzYXRzdWppblwgOwor5Z6C55u05YiG5qWtID4gc3VpY2hva3VidW5neW91XCA7CivmtJfmv6/nn7PpubggPiBzZW50YWt1c2V0c3VrZW5cIDsKK+mXmOeXheeUn+a0uyA+IHRvdWJ5b3VzZWlrYXRzdVwgOwor5ZCM5paH6YCa6YGUID4gZG91YnVudHN1dXRhdHN1XCA7Civlhobou6Lmu5HohLEgPiBlbnRlbmthdHN1ZGF0c3VcIDsKK+eUn+eJqeW3peWtpiA+IHNlaWJ1dHN1a291Z2FrdVwgOwor5LiA5b6L5rib5Y+NID4gaWNoaXJpdHN1Z2VudGFuXCA7Civkurrlk6HnuK7lsJEgPiBqaW4nJ2luc2h1a3VzaG91XCA7Civni6znq4vlpInmlbAgPiBkb2t1cml0c3VoZW5zdXVcIDsKK+S6uuWumuizquWVjyA+IGppbnRlaXNoaXRzdW1vblwgOwor5paw57SE6IGW5pu4ID4gc2hpbicneWFrdXNlaXNob1wgOwor55Sf5q665LiO5aWqID4gc2Vpc2F0c3V5b2RhdHN1XCA7Civmrr/mp5jku5XkuosgPiB0b25vc2FtYXNoaWdvdG9cIDsKK+WPsOaJgOeUqOWTgSA+IGRhaWRva29yb3lvdWhpblwgOwor6LK06YeR5bGe5Y24ID4ga2lraW56b2t1b3Jvc2hpXCA7CivkuIrmlrnotIXlha0gPiBrYW1pZ2F0YXplaXJva3VcIDsKK+ihgOaXj+mWouS/giA+IGtldHN1em9rdWthbmtlaVwgOwor5a2Q5a6u5b6M5bGIID4gc2hpa3l1dWtvdWt1dHN1XCA7CivljZflvoHljJfkvJAgPiBuYW5zZWlob2t1YmF0c3VcIDsKK+ecn+Wun+S4gOi3ryA+IHNoaW5qaXRzdWljaGlyb1wgOwor54m55Yil6YGL6LODID4gdG9rdWJldHN1dW5jaGluXCA7CivpgJrluLjmiKblipsgPiB0c3V1am91c2Vucnlva3VcIDsKK+WIqeWus+W+l+WksSA+IHJpZ2FpdG9rdXNoaXRzdVwgOwor5rWF6YWM5L2O5ZSxID4gc2Vuc2hha3V0ZWlzaG91XCA7Civoo7jlrZDmpI3niakgPiByYXNoaXNob2t1YnV0c3VcIDsKK+WAn+eUqOiovOabuCA+IHNoYWt1eW91c2hvdXNob1wgOwor5YWx5pyJ57WQ5ZCIID4ga3lvdXl1dWtldHN1Z291XCA7Civlm57mipjpoJjln58gPiBrYWlzZXRzdXJ5b3Vpa2lcIDsKK+iBt+alreaEj+itmCA+IHNob2t1Z3lvdWlzaGlraVwgOwor5Y2Y5byP5a2m57SaID4gdGFuc2hpa2lnYWtreXV1XCA7CivlrabooZPpm5HoqowgPiBnYWt1anV0c3V6YXNzaGlcIDsKK+WNkualreippumokyA+IHNvdHN1Z3lvdXNoaWtlblwgOwor5YSq5oCn5b2i6LOqID4geXV1c2Vpa2Vpc2hpdHN1XCA7CivmiJDplbfmm7Lnt5ogPiBzZWljaG91a3lva3VzZW5cIDsKK+eZvuWFq+WNgeW6piA+IGh5YWt1aGFjaGlqdXVkb1wgOwor5aSn5ZKM5pKr5a2QID4geWFtYXRvbmFkZXNoaWtvXCA7Civlpb3oibLmloflraYgPiBrb3VzaG9rdWJ1bmdha3VcIDsKK+mciumtgua2iOa7hSA+IHJlaWtvbnNob3VtZXRzdVwgOwor54m55Yil6YWN5b2TID4gdG9rdWJldHN1aGFpdG91XCA7Civpoqjlipvpmo7ntJogPiBmdXVyeW9rdWthaWt5dXVcIDsKK+a1geS9k+WKm+WtpiA+IHJ5dXV0YWlyaWtpZ2FrdVwgOwor5Yqj5byx5oSP6K2YID4gcmV0c3VqYWt1aXNoaWtpXCA7CivkuozogqHoho/olqwgPiBmdXRhbWF0YWtvdXlha3VcIDsKK+eJqeizquS7o+isnSA+IGJ1c3NoaXRzdXRhaXNoYVwgOwor566h6L2E5a6Y5bqBID4ga2Fua2F0c3VrYW5jaG91XCA7Civkv67mraPnlLPlkYogPiBzaHV1c2Vpc2hpbmtva3VcIDsKK+W/g+eQhuWwj+iqrCA+IHNoaW5yaXNob3VzZXRzdVwgOwor552A6Zm45Zyw54K5ID4gY2hha3VyaWt1Y2hpdGVuXCA7Civlrp/pqJPlsI/oqqwgPiBqaWtrZW5zaG91c2V0c3VcIDsKK+WOn+WtkOeIhueZuiA+IGdlbnNoaWJha3VoYXRzdVwgOwor5YWl5Yqb5oOF5aCxID4gbnl1dXJ5b2t1am91aG91XCA7Civph4/lrZDlipvlraYgPiByeW91c2hpcmlraWdha3VcIDsKK+WlquS4ieaMr+eOiyA+IGRhdHN1c2Fuc2hpbicnb3VcIDsKK+W5tOacq+iqv+aVtCA+IG5lbm1hdHN1Y2hvdXNlaVwgOwor5a2m6KGT6KuW5paHID4gZ2FrdWp1dHN1cm9uYnVuXCA7CivnlJ/nianlrabogIUgPiBzZWlidXRzdWdha3VzaGFcIDsKK+WFreeZvuWFreWPtyA+IHJvcHB5YWt1cm9rdWdvdVwgOwor5oCd5byB5ZOy5a2mID4gc2hpYmVudGV0c3VnYWt1XCA7CivmipfnlJ/nianos6ogPiBrb3VzZWlidXNzaGl0c3VcIDsKK+a0u+WLleWGmeecnyA+IGthdHN1ZG91c2hhc2hpblwgOwor5Lih55Sf5YuV54mpID4gcnlvdXNlaWRvdWJ1dHN1XCA7Civnsr7npZ7oloTlvLEgPiBzZWlzaGluaGFrdWpha3VcIDsKK+W8t+i/q+ims+W/tSA+IGt5b3VoYWt1a2FuJyduZW5cIDsKK+i7jee4ruWNlOWumiA+IGd1bnNodWt1a3lvdXRlaVwgOwor552A6Zm45Zyw5bivID4gY2hha3VyaWt1Y2hpdGFpXCA7Civngq3lobXniIbnmbogPiB0YW5qaW5iYWt1aGF0c3VcIDsKK+eUn+a0u+eSsOWigyA+IHNlaWthdHN1a2Fua3lvdVwgOwor5oqA6KGT6Z2p5pawID4gZ2lqdXRzdWtha3VzaGluXCA7Civnsp/nspLntZDmoLggPiB6b2t1cnl1dWtla2tha3VcIDsKK+S7ruWPl+WPluiovCA+IGthcml1a2V0b3Jpc2hvdVwgOwor5paw6IGe6YWN6YGUID4gc2hpbmJ1bmhhaXRhdHN1XCA7CivljZLmpa3oq5bmlocgPiBzb3RzdWd5b3Vyb25idW5cIDsKK+eZu+mMsuWVhuaomSA+IHRvdXJva3VzaG91aHlvdVwgOwor5L+h55So6YqY5p+EID4gc2hpbicneW91bWVpZ2FyYVwgOwor5pON5rWE55Gg55KDID4gYXlhdHN1cmlqb3VydXJpXCA7CivlhbHlkIznlJ/mtLsgPiBreW91ZG91c2Vpa2F0c3VcIDsKK+S8nemBlOeJueaApyA+IGRlbnRhdHN1dG9rdXNlaVwgOwor5L+h5Luw55Sf5rS7ID4gc2hpbmtvdXNlaWthdHN1XCA7Civpg7flnJ/lsI/oqqwgPiBreW91ZG9zaG91c2V0c3VcIDsKK+mbhuWbo+eUn+a0uyA+IHNodXVkYW5zZWlrYXRzdVwgOwor6aeQ5pel5aSn5L2/ID4gY2h1dW5pY2hpdGFpc2hpXCA7Civls7blm73moLnmgKcgPiBzaGltYWd1bmlrb25qb3VcIDsKK+W3puWwj+aLrOW8pyA+IGhpZGFyaXNob3VrYWtrb1wgOwor5rCR5peP5a6X5pWZID4gbWluem9rdXNodXVreW91XCA7Civml6XkuK3pn5PotoogPiBuaXRjaHV1a2FuJydldHN1XCA7Civpu5LoibLngavolqwgPiBrb2t1c2hva3VrYXlha3VcIDsKK+S4h+acieelnuaVmSA+IGJhbicneXV1c2hpbmt5b3VcIDsKK+mgreiEs+a1geWHuiA+IHp1bm91cnl1dXNodXRzdVwgOwor55u05o6l6Kmx5rOVID4gY2hva3VzZXRzdXdhaG91XCA7CivlvaLos6rou6Lmj5sgPiBrZWlzaGl0c3V0ZW5rYW5cIDsKK+ato+ecn+ato+mKmCA+IHNob3VzaGluc2hvdW1laVwgOwor54iG5by+55m66KiAID4gYmFrdWRhbmhhdHN1Z2VuXCA7Civnm7Tnq4vkuI3li5UgPiBjaG9rdXJpdHN1ZnVkb3VcIDsKK+WVhualremBk+W+syA+IHNob3VneW91ZG91dG9rdVwgOwor54m56Kit5Lya5aC0ID4gdG9rdXNldHN1a2Fpam91XCA7CivmoLjniannkIblraYgPiBrYWt1YnV0c3VyaWdha3VcIDsKK+ebtOeri+eMv+S6uiA+IGNob2t1cml0c3VlbmppblwgOwor6LaF6YCj57WQ5a2QID4gY2hvdXJlbmtldHN1c2hpXCA7CivnlLLoq5bkuZnpp4EgPiBrb3Vyb24nJ290c3ViYWt1XCA7CivniannmoTos4fmupAgPiBidXRzdXRla2lzaGlnZW5cIDsKK+ebtOaOpeaUr+aPtCA+IGNob2t1c2V0c3VzaGllblwgOwor5paw5Yi25Lit5a2mID4gc2hpbnNlaWNodXVnYWt1XCA7CivlnKflipvlm6PkvZMgPiBhdHN1cnlva3VkYW50YWlcIDsKK+a4qeihgOWLleeJqSA+IG9ua2V0c3Vkb3VidXRzdVwgOwor5Lit56uL5Yq06YCjID4gY2h1dXJpdHN1cm91cmVuXCA7CivnoJTnqbbmtLvli5UgPiBrZW5reXV1a2F0c3Vkb3VcIDsKK+iHqueEtuWTsuWtpiA+IHNoaXplbnRldHN1Z2FrdVwgOwor5qCq5Li757eP5LyaID4ga2FidW51c2hpc291a2FpXCA7CivmgKfmoLzliKTliKUgPiBzZWlrYWt1aGFuYmV0c3VcIDsKK+mBjuWkseWCt+WusyA+IGthc2hpdHN1c2hvdWdhaVwgOwor6YCa5L+h5bel5a2mID4gdHN1dXNoaW5rb3VnYWt1XCA7CivlkIzkuIDkurrniakgPiBkb3VpdHN1amluYnV0c3VcIDsKK+WVhuWtpuWNmuWjqyA+IHNob3VnYWt1aGFrdXNoaVwgOwor5b+D6aCt5ruF5Y20ID4gc2hpbnRvdW1la2t5YWt1XCA7CivkuIPpoZvlhavlgJIgPiBzaGljaGl0ZW5iYXR0b3VcIDsKK+W8t+ihjOaOoeaxuiA+IGt5b3Vrb3VzYWlrZXRzdVwgOwor5bCx5Lu75ryU6KqsID4gc2h1dW5pbicnZW56ZXRzdVwgOwor5ZCN6KuW5Y2T6KqsID4gbWVpcm9udGFrdXNldHN1XCA7Civms6jlhaXmlZnogrIgPiBjaHV1bnl1dWt5b3Vpa3VcIDsKK+WQkeeyvuelnuiWrCA+IGtvdXNlaXNoaW4nJ3lha3VcIDsKK+WIhuWIl+ihjOmAsiA+IGJ1bnJldHN1a291c2hpblwgOwor6aOf5paZ5ZOB5bqXID4gc2hva3VyeW91aGludGVuXCA7Civmva7msZDmkanmk6YgPiBjaG91c2VraW1hc2F0c3VcIDsKK+evgOi2s+WLleeJqSA+IHNlc3Nva3Vkb3VidXRzdVwgOwor6aOf54mp6YCj6Y6WID4gc2hva3Vtb3RzdXJlbnNhXCA7CivkuK3ogonkuK3og4wgPiBjaHV1bmlrdWNodXV6ZWlcIDsKK+mbhuS4reaUu+aSgyA+IHNodXVjaHV1a291Z2VraVwgOwor56K65a6a5Yik5rG6ID4ga2FrdXRlaWhhbmtldHN1XCA7CivlsJHlpbPlsI/oqqwgPiBzaG91am9zaG91c2V0c3VcIDsKK+WNmuWtpuWKm+ihjCA+IGhha3VnYWt1cnlva2tvdVwgOwor5YKN57O76KGA5pePID4gYm91a2Vpa2V0c3V6b2t1XCA7CivkuK3plpPlhoXplqMgPiBjaHV1a2FuJyduYWlrYWt1XCA7CivljZjni6zkvpvntaYgPiB0YW5kb2t1a3lvdWt5dXVcIDsKK+WksealreS/nemZuiA+IHNoaXRzdWd5b3Vob2tlblwgOwor54m55Yil5Lya6KiIID4gdG9rdWJldHN1a2Fpa2VpXCA7CivmjK/luYXlpInoqr8gPiBzaGlucHVrdWhlbmNob3VcIDsKK+W6g+WRiuWPjuWFpSA+IGtvdWtva3VzaHV1bnl1dVwgOwor5Lit5Zu95aSn6Zm4ID4gY2h1dWdva3V0YWlyaWt1XCA7CivmlL7lh7rnianos4cgPiBob3VzaHV0c3VidXNzaGlcIDsKK+mFjemBlOiovOaYjiA+IGhhaXRhdHN1c2hvdW1laVwgOwor5pyA57WC55uu55qEID4gc2Fpc2h1dW1va3V0ZWtpXCA7CivkuIDok67miZjnlJ8gPiBpY2hpcmVudGFrdXNob3VcIDsKK+S4ieinkua4rOmHjyA+IHNhbmtha3Vzb2t1cnlvdVwgOwor5YuV54mp5a2m6ICFID4gZG91YnV0c3VnYWt1c2hhXCA7CivljJblrabnianos6ogPiBrYWdha3VidXNzaGl0c3VcIDsKK+eGseWOn+WtkOaguCA+IG5ldHN1Z2Vuc2hpa2FrdVwgOwor5Zyw6LOq6Kq/5p+7ID4gY2hpc2hpdHN1Y2hvdXNhXCA7Civmra/liJfnn6/mraMgPiBzaGlyZXRzdWt5b3VzZWlcIDsKK+Wbm+WNgeS4g+WjqyA+IHNoaWp1dXNoaWNoaXNoaVwgOwor5Y2B5pyI6Z2p5ZG9ID4ganV1Z2F0c3VrYWt1bWVpXCA7Civmlofos6rlvazlvawgPiBidW5zaGl0c3VoaW5waW5cIDsKK+S/oeiol+Wlkee0hCA+IHNoaW50YWt1a2VpeWFrdVwgOwor54us56uL5oim5LqJID4gZG9rdXJpdHN1c2Vuc291XCA7Civngavlipvnmbrpm7sgPiBrYXJ5b2t1aGF0c3VkZW5cIDsKK+mAn+mBlOmDteS+vyA+IHNva3V0YXRzdXl1dWJpblwgOwor5Zub55m+5Zub55eFID4gc2hpaHlha3VzaGlieW91XCA7CivlhYPluLPmrovpq5ggPiBtb3RvY2hvdXphbmRha2FcIDsKK+aKveixoee+juihkyA+IGNodXVzaG91YmlqdXRzdVwgOwor54mp6LOq5paH5piOID4gYnVzc2hpdHN1YnVubWVpXCA7CivotoXniannkIblraYgPiBjaG91YnV0c3VyaWdha3VcIDsKK+mjn+ezp+S4jei2syA+IHNob2t1cnlvdWJ1c29rdVwgOwor5YWs5YWx5pa96KitID4ga291a3lvdXNoaXNldHN1XCA7CivljZfmpbXmnaHntIQgPiBuYW5reW9rdWpvdXlha3VcIDsKK+WFteWKm+WJiua4myA+IGhlaXJ5b2t1c2FrdWdlblwgOwor5YWs6IG36L+95pS+ID4ga291c2hva3V0c3VpaG91XCA7CivlrabooZPlm6PkvZMgPiBnYWt1anV0c3VkYW50YWlcIDsKK+WFseeUn+eUn+eJqSA+IGt5b3VzZWlzZWlidXRzdVwgOwor6KKr5a2Q5qSN54mpID4gaGlzaGlzaG9rdWJ1dHN1XCA7CivmnInnlZzovrLmpa0gPiB5dXVjaGlrdW5vdWd5b3VcIDsKK+WvhOeUn+akjeeJqSA+IGtpc2Vpc2hva3VidXRzdVwgOwor5q2m5L6g5bCP6KqsID4gYnVreW91c2hvdXNldHN1XCA7CivmnKjos6rnuYrntq0gPiBtb2t1c2hpdHN1c2VuJydpXCA7Civnm7TpgJrliJfou4ogPiBjaG9rdXRzdXVyZXNzaGFcIDsKK+S4gOS4gOS5neeVqiA+IGh5YWt1anV1a3l1dWJhblwgOwor6Lui572u6KGM5YiXID4gdGVuY2hpZ3lvdXJldHN1XCA7Civlh7rli5Xlkb3ku6QgPiBzaHV0c3Vkb3VtZWlyZWlcIDsKK+iIjOWFiOS4ieWvuCA+IHNoaXRhc2FraXNhbnp1blwgOwor5aSn6KGG6aOf5aCCID4gdGFpc2h1dXNob2t1ZG91XCA7CivlhoXplqPplqPlg5ogPiBuYWlrYWt1a2FrdXJ5b3VcIDsKK+S6uuWPo+eIhueZuiA+IGppbmtvdWJha3VoYXRzdVwgOwor5Zyn57iu5Yq5546HID4gYXNzaHVrdWtvdXJpdHN1XCA7Civlm73nq4vpioDooYwgPiBrb2t1cml0c3VnaW5rb3VcIDsKK+S4gOeXheaBr+eBvSA+IGljaGlieW91c29rdXNhaVwgOwor5q2j6YeR5Y+W5byVID4gc2hvdWtpbnRvcmloaWtpXCA7CivmtYHpgJrpnanlkb0gPiByeXV1dHN1dWtha3VtZWlcIDsKK+iKuOihk+S9nOWTgSA+IGdlaWp1dHN1c2FrdWhpblwgOwor5paw6IiI5a6X5pWZID4gc2hpbmtvdXNodXVreW91XCA7Civnn6XorZjlt6XlraYgPiBjaGlzaGlraWtvdWdha3VcIDsKK+S9k+izquaUueWWhCA+IHRhaXNoaXRzdWthaXplblwgOwor54mH5YG06YCa6KGMID4ga2F0YWdhd2F0c3V1a291XCA7CivljZfmpbXlpKfpmbggPiBuYW5reW9rdXRhaXJpa3VcIDsKK+iJtueskeWwj+ipsSA+IGVuc2hvdWtvYmFuYXNoaVwgOwor5ZWG5qWt576O6KGTID4gc2hvdWd5b3ViaWp1dHN1XCA7CivnpZ7oibLoh6roi6UgPiBzaGluc2hva3VqaWpha3VcIDsKK+awtOmam+S9nOaIpiA+IG1penVnaXdhc2FrdXNlblwgOwor54mp55qE6Ki85ougID4gYnV0c3V0ZWtpc2hvdWtvXCA7Civmk43mpa3nn63nuK4gPiBzb3VneW91dGFuc2h1a3VcIDsKK+WGheiCoeiGj+iWrCA+IHVjaGltYXRhZ291eWFrdVwgOwor6Imy5b2p5oSf6KaaID4gc2hpa2lzYWlrYW5rYWt1XCA7CivotoXog73lipvogIUgPiBjaG91bm91cnlva3VzaGFcIDsKK+acqOmjn+S4iuS6uiA+IG1va3VqaWtpc2hvdW5pblwgOwor6YCj6LyJ5bCP6KqsID4gcmVuc2Fpc2hvdXNldHN1XCA7CivnhKbnhrHlnLDnjYQgPiBzaG91bmV0c3VqaWdva3VcIDsKK+mqqOeyl+mshueXhyA+IGtvdHN1c29zaG91c2hvdVwgOwor5rWB6YCa6Ki85Yi4ID4gcnl1dXRzdXVzaG91a2VuXCA7Civlt67lvJXli5jlrpogPiBzYXNoaWhpa2lrYW5qb3VcIDsKK+mWi+iFueaJi+ihkyA+IGthaWZ1a3VzaHVqdXRzdVwgOwor5Y2z5pel5Ye66I23ID4gc29rdWppdHN1c2h1a2thXCA7CivmoKrlvI/phY3lvZMgPiBrYWJ1c2hpa2loYWl0b3VcIDsKK+ibjeWFieeJqeizqiA+IGtlaWtvdWJ1c3NoaXRzdVwgOwor6IG06Kaa56We57WMID4gY2hvdWtha3VzaGlua2VpXCA7Civmh7LmiJLlhY3ogbcgPiBjaG91a2FpbWVuc2hva3VcIDsKK+eiuuWumueUs+WRiiA+IGtha3V0ZWlzaGlua29rdVwgOwor6IG35qWt6LuN5Lq6ID4gc2hva3VneW91Z3VuamluXCA7Civnmb3msrPlpJzoiLkgPiBzaGlyYWthd2F5b2Z1bmVcIDsKK+agquW8j+WFrOmWiyA+IGthYnVzaGlraWtvdWthaVwgOwor5buD5LuP5q+A6YeIID4gaGFpYnV0c3VraXNoYWt1XCA7CivnnLzlupXlh7rooYAgPiBnYW50ZWlzaHVra2V0c3VcIDsKK+S/oeS7u+aKleelqCA+IHNoaW4nJ25pbnRvdWh5b3VcIDsKK+mWoumAo+izquWVjyA+IGthbnJlbnNoaXRzdW1vblwgOwor5bu656+J5qWt6ICFID4ga2VuY2hpa3VneW91c2hhXCA7Civlk7Llrablj7LopoEgPiB0ZXRzdWdha3VzaGl5b3VcIDsKK+efpeitmOeUo+alrSA+IGNoaXNoaWtpc2FuZ3lvdVwgOwor5rWa5rir5L2c5qWtID4gc2h1bnNldHN1c2FneW91XCA7Civljbjlo7LluILloLQgPiBvcm9zaGl1cmlzaGlqb3VcIDsKK+mAmuS/oeaVmeiCsiA+IHRzdXVzaGlua3lvdWlrdVwgOwor5YyX5paX5LiD5pifID4gaG9rdXRvc2hpY2hpc2VpXCA7CivmraPlvI/nmbrooaggPiBzZWlzaGlraWhhcHB5b3VcIDsKK+aatOWKm+mdqeWRvSA+IGJvdXJ5b2t1a2FrdW1laVwgOwor5YWx55Sj5Lit5Zu9ID4ga3lvdXNhbmNodXVnb2t1XCA7Civmo67mnpfpiYTpgZMgPiBzaGlucmludGV0c3Vkb3VcIDsKK+e1jOa4iOWNlOWKmyA+IGtlaXphaWt5b3VyeW9rdVwgOwor54mp55qE5pCN5a6zID4gYnV0c3V0ZWtpc29uZ2FpXCA7CivnqbrkuK3niIbmkoMgPiBrdXVjaHV1YmFrdWdla2lcIDsKK+W5tOS4reWkseiogCA+IG5lbmp1dXNoaXRzdWdlblwgOwor5q2j5pa56KGM5YiXID4gc2VpaG91Z3lvdXJldHN1XCA7CivogIHoi6XnlLflpbMgPiByb3VueWFrdW5hbicnbnlvXCA7Civkv67kuoboqLzmm7ggPiBzaHV1cnlvdXNob3VzaG9cIDsKK+S4i+etieakjeeJqSA+IGthdG91c2hva3VidXRzdVwgOwor6aGV6Iqx5qSN54mpID4ga2Vua2FzaG9rdWJ1dHN1XCA7CivlnLDlhYPorablr58gPiBqaW1vdG9rZWlzYXRzdVwgOwor5Lit5Zu95Zyw5pa5ID4gY2h1dWdva3VjaGlob3VcIDsKK+S4ieagoee1guS6hiA+IHNhbmtvdXNodXVyeW91XCA7Civkurrlt6XooYDmtrIgPiBqaW5rb3VrZXRzdWVraVwgOwor5pyJ5oCn55Sf5q6WID4geXV1c2Vpc2Vpc2hva3VcIDsKK+mMrOmHkeihk+W4qyA+IHJlbmtpbmp1dHN1c2hpXCA7Civlr77ml6XmhJ/mg4UgPiB0YWluaWNoaWthbmpvdVwgOwor54yl6KS75paH5pu4ID4gd2Fpc2V0c3VidW5zaG9cIDsKK+S7ruijheihjOWIlyA+IGthc291Z3lvdXJldHN1XCA7CivmraPlvKbmm7Lnt5ogPiBzZWlnZW5reW9rdXNlblwgOwor5rKh5YCL5oCn55qEID4gYm90c3Vrb3NlaXRla2lcIDsKK+eLrOeri+mBi+WLlSA+IGRva3VyaXRzdXVuZG91XCA7CivohLHohILnsonkubMgPiBkYXNzaGlmdW4nJ255dXVcIDsKK+WOn+WtkOWKm+iIuSA+IGdlbnNoaXJ5b2t1c2VuXCA7CivkuInnkIPkuInmjK8gPiBzYW5reXV1c2Fuc2hpblwgOwor6Z2i55m95Y2K5YiGID4gb21vc2hpcm9oYW5idW5cIDsKK+WVhuiIueWkp+WtpiA+IHNob3VzZW5kYWlnYWt1XCA7CivlpKnlnLDkuIfniakgPiB0ZW5jaGliYW5idXRzdVwgOwor6ICQ54ax5ZCI6YeRID4gdGFpbmV0c3Vnb3VraW5cIDsKK+aUv+eVpee1kOWpmiA+IHNlaXJ5YWt1a2Vra29uXCA7Civnibnpq5jorablr58gPiB0b2trb3VrZWlzYXRzdVwgOwor5ZWG5oWj57+S5rOVID4gc2hvdWthbnNodXVob3VcIDsKK+aYhuiZq+aOoembhiA+IGtvbmNodXVzYWlzaHV1XCA7CivkuK3lm73mi7Pms5UgPiBjaHV1Z29rdWtlbnBvdVwgOwor576O6KGT55uj552jID4gYmlqdXRzdWthbnRva3VcIDsKK+WJr+Wkp+e1semgmCA+IGZ1a3VkYWl0b3VyeW91XCA7CivnhKbmgKfnoavphbggPiBzaG91c2Vpcnl1dXNhblwgOwor5ZGo5peL5qWt6ICFID4gc2h1dXNlbmd5b3VzaGFcIDsKK+WNl+WbnuW4sOe3miA+IG1pbmFtaWthaWtpc2VuXCA7Civog47nlJ/li5XniakgPiB0YWlzZWlkb3VidXRzdVwgOwor5YWo5Zu95Lit57aZID4gemVua29rdWNodXVrZWlcIDsKK+eJm+atqeaIpuihkyA+IGd5dXVob3Nlbmp1dHN1XCA7CivnqoHmkoPpmorlk6EgPiB0b3RzdWdla2l0YWlpblwgOwor57SE55m+5LiH5YaGID4geWFrdWh5YWt1bWFuZW5cIDsKK+S6uua1t+aIpuihkyA+IGppbmthaXNlbmp1dHN1XCA7CivlpKnmloflrabnmoQgPiB0ZW5tb25nYWt1dGVraVwgOwor5oCd5qGI5oqV6aaWID4gc2hpYW4nJ25hZ2VrdWJpXCA7Civoo4/lj6Pllrbmpa0gPiB1cmFndWNoaWVpZ3lvdVwgOwor5Lyd5aWH5bCP6KqsID4gZGVua2lzaG91c2V0c3VcIDsKK+S4reeri+S4u+e+qSA+IGNodXVyaXRzdXNodWdpXCA7CivnoJTnqbbos4fmlpkgPiBrZW5reXV1c2hpcnlvdVwgOwor5Y+k55Sf54mp5a2mID4ga29zZWlidXRzdWdha3VcIDsKK+abtOeUn+aWveiorSA+IGtvdXNlaXNoaXNldHN1XCA7CivniYfpgZPliIfnrKYgPiBrYXRhbWljaGlraXBwdVwgOwor5o6l57aa5Yqp6KmeID4gc2V0c3V6b2t1am9zaGlcIDsKK+iLseS7j+a1t+WzoSA+IGVpZnV0c3VrYWlreW91XCA7CivnqJTlrp/kuI3oia8gPiBuZW5qaXRzdWZ1cnlvdVwgOwor5YWs6KGG5rW05aC0ID4ga291c2h1dXlva3Vqb3VcIDsKK+err+acq+ijhee9riA+IHRhbm1hdHN1c291Y2hpXCA7Civpp5Dou4rmlpnph5EgPiBjaHV1c2hhcnlvdWtpblwgOwor6LOH5pys5Y+W5byVID4gc2hpaG9udG9yaWhpa2lcIDsKK+agquW8j+ebuOWgtCA+IGthYnVzaGlraXNvdWJhXCA7CivlhY3nlqvlj43lv5wgPiBtZW4nJ2VraWhhbicnbm91XCA7Civlu7roqK3kvJrnpL4gPiBrZW5zZXRzdWdhaXNoYVwgOwor5pys5pyr6aGb5YCSID4gaG9ubWF0c3V0ZW50b3VcIDsKK+WIneW/l+iyq+W+uSA+IHNob3NoaWthbnRldHN1XCA7CivnlKPmpa3pnanlkb0gPiBzYW5neW91a2FrdW1laVwgOwor5a6a5bm06YCA6IG3ID4gdGVpbmVudGFpc2hva3VcIDsKK+Wbvemam+imquWWhCA+IGtva3VzYWlzaGluemVuXCA7CivmgKfmoLzoqLrmlq0gPiBzZWlrYWt1c2hpbmRhblwgOwor5YWo6Lqr6KGw5byxID4gemVuc2hpbnN1aWpha3VcIDsKK+WVj+mhjOino+axuiA+IG1vbmRhaWthaWtldHN1XCA7Civlk7rkubPli5XniakgPiBob255dXVkb3VidXRzdVwgOwor6LOH5pys5rOo5YWlID4gc2hpaG9uY2h1dW55dXVcIDsKK+S/rualreW5tOmZkCA+IHNodXVneW91bmVuZ2VuXCA7Civnt5HntqzopJLnq6AgPiByeW9rdWp1aG91c2hvdVwgOwor56CU56m26aGM55uuID4ga2Vua3l1dWRhaW1va3VcIDsKK+eXheW6iuaXpeiqjCA+IGJ5b3VzaG91bmlzc2hpXCA7CivnrpfooZPoqIjnrpcgPiBzYW5qdXRzdWtlaXNhblwgOwor5biw5YyW5qSN54mpID4ga2lrYXNob2t1YnV0c3VcIDsKK+mHkeiejeaBkOaFjCA+IGtpbicneXV1a3lvdWtvdVwgOwor54m55Yil5o6q572uID4gdG9rdWJldHN1c29jaGlcIDsKK+W8m+W8teaMr+WLlSA+IHNoaWNob3VzaGluZG91XCA7CivmiKbmiKblhaLlhaIgPiBzZW5zZW5reW91a3lvdVwgOwor6Kaz5YWJ5pa96KitID4ga2Fua291c2hpc2V0c3VcIDsKK+WWhOeUt+WWhOWlsyA+IHplbicnbmFuemVuJydueW9cIDsKK+S/oeeUqOiyqeWjsiA+IHNoaW4nJ3lvdWhhbmJhaVwgOwor5pyr5qKi56We57WMID4gbWFzc2hvdXNoaW5rZWlcIDsKK+mqqOmrhOenu+akjSA+IGtvdHN1enVpaXNob2t1XCA7CivpgZPlvrPmlZnogrIgPiBkb3V0b2t1a3lvdWlrdVwgOwor6YeR5q6/546J5qW8ID4ga2luZGVuZ3lva3Vyb3VcIDsKK+eCuea7tOazqOWwhCA+IHRlbnRla2ljaHV1c2hhXCA7Civlt6Xlrabkv67lo6sgPiBrb3VnYWt1c2h1dXNoaVwgOwor6ZaA5aSW5LiN5Ye6ID4gbW9uZ2FpZnVzaHV0c3VcIDsKK+mAmuS/oeijhee9riA+IHRzdXVzaGluc291Y2hpXCA7CivkvZzmiKboqIjnlLsgPiBzYWt1c2Vua2Vpa2FrdVwgOwor5aC05aSW5Y+W5byVID4gam91Z2FpdG9yaWhpa2lcIDsKK+S/oeiol+mKgOihjCA+IHNoaW50YWt1Z2lua291XCA7CivlooPnlYzoqr/mlbQgPiBreW91a2FpY2hvdXNlaVwgOwor5Li75Yqb6Imm6ZqKID4gc2h1cnlva3VrYW50YWlcIDsKK+iBt+WgtOeSsOWigyA+IHNob2t1YmFrYW5reW91XCA7CivlibLlvJXkvqHmoLwgPiB3YXJpYmlraWtha2FrdVwgOwor5pW05b2i5omL6KGTID4gc2Vpa2Vpc2h1anV0c3VcIDsKK+mFuOaAp+mjn+WTgSA+IHNhbnNlaXNob2t1aGluXCA7Civljp/lrZDlipvlraYgPiBnZW5zaGlyaWtpZ2FrdVwgOwor5rC05Lit57+86Ii5ID4gc3VpY2h1dXlva3VzZW5cIDsKK+eZuumBlOautemajiA+IGhhdHRhdHN1ZGFua2FpXCA7Civoq7joqqzntJvntJsgPiBzaG9zZXRzdWZ1bnB1blwgOwor5Lmz6YW46aOy5paZID4gbnl1dXNhbicnaW5yeW91XCA7CivlgIvjgIXliKXliKUgPiBrb2tvYmV0c3ViZXRzdVwgOwor5Y+j5LiN6Kq/5rOVID4ga3VjaGlidWNob3Vob3VcIDsKK+i2heiHqueEtueahCA+IGNob3VzaGl6ZW50ZWtpXCA7Civlm73pmLLplbflrpggPiBrb2t1Ym91Y2hvdWthblwgOwor5q2j57Wx5L+h5pWZID4gc2VpdG91c2hpbmt5b3VcIDsKK+W8t+WMluWQiOWuvyA+IGt5b3VrYWdhc3NodWt1XCA7CivmnJ3prq7kurrlj4IgPiBjaG91c2VuJyduaW5qaW5cIDsKK+adn+e4m+WkiemghSA+IHNva3ViYWt1aGVua291XCA7CivnpZ7ntYzntYTnuZQgPiBzaGlua2Vpc29zaGlraVwgOwor6LaF6LaK6Zai5pWwID4gY2hvdWV0c3VrYW5zdXVcIDsKK+WKueeOh+WQkeS4iiA+IGtvdXJpdHN1a291am91XCA7CivlpKfohLPnmq7os6ogPiBkYWlub3VoaXNoaXRzdVwgOwor55Sf5L2T5Yqb5a2mID4gc2VpdGFpcmlraWdha3VcIDsKK+WxseS4i+WFrOWckiA+IHlhbWFzaGl0YWtvdWVuXCA7Civlj6Pov7DoqabpqJMgPiBrb3VqdXRzdXNoaWtlblwgOwor5LiA5pel54mH5pmCID4gaWNoaW5pY2hpaGVuamlcIDsKK+ekvuS8mueUn+a0uyA+IHNoYWthaXNlaWthdHN1XCA7Civlh7rniYjnm67pjLIgPiBzaHVwYW5tb2t1cm9rdVwgOwor5Yil6YCU5pSv5Ye6ID4gYmV0dG9zaGlzaHV0c3VcIDsKK+eUs+WRiue0jeeojiA+IHNoaW5rb2t1bm91emVpXCA7CivljbPmsbroo4HliKQgPiBzb2trZXRzdXNhaWJhblwgOwor54us56uL6Ieq5bCKID4gZG9rdXJpdHN1amlzb25cIDsKK+Wpmue0hOaMh+i8qiA+IGtvbicneWFrdXl1Yml3YVwgOwor6KGA5ray5Yed5Zu6ID4ga2V0c3Vla2lneW91a29cIDsKK+WHuuWHpumAsumAgCA+IHNodXNzaG9zaGludGFpXCA7CivlvJPnn6LlhavluaEgPiB5dW1peWFoYWNoaW1hblwgOwor6K2m5a+f5omL5bizID4ga2Vpc2F0c3V0ZWNob3VcIDsKK+iBt+alreWppuS6uiA+IHNob2t1Z3lvdWZ1amluXCA7Civoh7Pnpo/ljYPlubQgPiBzaGlmdWt1c2VuJyduZW5cIDsKK+WkqeWcsOmWi+mXoiA+IHRlbmNoaWthaWJ5YWt1XCA7Civlhrflh43po5/lk4EgPiByZWl0b3VzaG9rdWhpblwgOwor6KOc6Laz6Kqs5piOID4gaG9zb2t1c2V0c3VtZWlcIDsKK+S/oeeUqOeKtuaFiyA+IHNoaW4nJ3lvdWpvdXRhaVwgOwor57W25a++5rm/5bqmID4gemV0dGFpc2hpdHN1ZG9cIDsKK+aYjuaYjueZveeZvSA+IG1laW1laWhha3VoYWt1XCA7Civou43lgpnnuK7lsI8gPiBndW5iaXNodWt1c2hvdVwgOwor5pq05Yqb5Zuj5ZOhID4gYm91cnlva3VkYW4nJ2luXCA7CivlpKflrabmlZnogrIgPiBkYWlnYWt1a3lvdWlrdVwgOwor56ys5LiJ5Lq656ewID4gZGFpc2FuJyduaW5zaG91XCA7CivmsLjkuJbkuK3nq4sgPiBlaXNlaWNodXVyaXRzdVwgOwor56CU56m26aCY5Z+fID4ga2Vua3l1dXJ5b3Vpa2lcIDsKK+aVmeiCsuWLheiqniA+IGt5b3Vpa3VjaG9rdWdvXCA7Civnsr7npZ7pmpzlrrMgPiBzZWlzaGluc2hvdWdhaVwgOwor5aSp56m65rW35r+2ID4gdGVua3V1a2Fpa2F0c3VcIDsKK+mjn+mkjOeZguazlSA+IHNob2t1amlyeW91aG91XCA7CivkvZzogIXkuI3nn6UgPiBzYWt1c2hhc2hpcmF6dVwgOwor55Sf5rS75rC05rqWID4gc2Vpa2F0c3VzdWlqdW5cIDsKK+WNteeUn+WLleeJqSA+IHJhbnNlaWRvdWJ1dHN1XCA7CivnrYvogonlirTlg40gPiBraW4nJ25pa3Vyb3Vkb3VcIDsKK+WNl+aUr+mCo+a1tyA+IG1pbmFtaXNoaW5ha2FpXCA7CivlrabooZPnlKjoqp4gPiBnYWt1anV0c3V5b3Vnb1wgOwor6Ieq54S26aOf5ZOBID4gc2hpemVuc2hva3VoaW5cIDsKK+WVhualree1hOWQiCA+IHNob3VneW91a3VtaWFpXCA7CivogbfmqKnkubHnlKggPiBzaG9ra2VucmFuJyd5b3VcIDsKK+S8tOmjn+Wkp+iHoyA+IGJhbnNob2t1ZGFpamluXCA7CivlsqHnm67lhavnm64gPiBva2FtZWhhY2hpbW9rdVwgOwor5pas5paw5aWH5oqcID4gemFuc2hpbmtpYmF0c3VcIDsKK+ebtOaDheW+hOihjCA+IGNob2t1am91a2Vpa291XCA7Civnp4Hnq4vlrabmoKEgPiBzaGlyaXRzdWdha2tvdVwgOwor5Lit5pel6L6e5YW4ID4gY2h1dW5pY2hpaml0ZW5cIDsKK+WIhumhnuebrumMsiA+IGJ1bnJ1aW1va3Vyb2t1XCA7CivlhoXliIbms4zohbogPiBuYWlidW5waXRzdXNlblwgOwor5rS76Lev6ZaL5ouTID4ga2F0c3Vyb2thaXRha3VcIDsKK+W5s+adv+a4rOmHjyA+IGhlaWJhbnNva3VyeW91XCA7CivmupDms4nlvrTlj44gPiBnZW5zZW5jaG91c2h1dVwgOwor6YCa5L+h6KGb5pifID4gdHN1dXNoaW4nJ2Vpc2VpXCA7CivmuIXnrpflj5blvJUgPiBzZWlzYW50b3JpaGlraVwgOwor54m55q6K5a2m57SaID4gdG9rdXNodWdha2t5dXVcIDsKK+S/oeeUqOiqv+afuyA+IHNoaW4nJ3lvdWNob3VzYVwgOwor5YWI54mp5aOy6LK3ID4gc2FraW1vbm9iYWliYWlcIDsKK+S4g+mbo+WFq+iLpiA+IHNoaWNoaW5hbmhha2t1XCA7Civop5Lohpznp7vmpI0gPiBrYWt1bWFrdWlzaG9rdVwgOwor5pWR5oCl55eF6ZmiID4ga3l1dWt5dXVieW91aW5cIDsKK+aOpeinpuaEn+afkyA+IHNlc3Nob2t1a2Fuc2VuXCA7CivnqI7ph5HnlLPlkYogPiB6ZWlraW5zaGlua29rdVwgOwor57Wo5q+v54iG5pKDID4ganV1dGFuYmFrdWdla2lcIDsKK+S4g+i7ouWFq+i1tyA+IHNoaWNoaXRlbmhha2tpXCA7CivmsLTpioDkuK3mr5IgPiBzdWlnaW5jaHV1ZG9rdVwgOwor6Zyy5Ye65LiN6LazID4gcm9zaHV0c3VidXNva3VcIDsKK+W5s+S4iuWOu+WFpSA+IGh5b3Vqb3VreW9ueXV1XCA7Civlm73nq4vlhazlnJIgPiBrb2t1cml0c3Vrb3VlblwgOwor5YWs56uL5a2m5qChID4ga291cml0c3VnYWtrb3VcIDsKK+mAmuS/oeWcj+WkliA+IHRzdXVzaGlua2VuZ2FpXCA7CivntITmnZ/miYvlvaIgPiB5YWt1c29rdXRlZ2F0YVwgOwor5Y+s6ZuG5Luk54q2ID4gc2hvdXNodXVyZWlqb3VcIDsKK+aWsOWFpeekvuWToSA+IHNoaW4nJ255dXVzaGFpblwgOwor5pel5Y2X5rW35bK4ID4gbmljaGluYW5rYWlnYW5cIDsKK+axjuaVtOaVsOW8jyA+IGhhbnNlaXN1dXNoaWtpXCA7Civlj6TnianllYbkurogPiBrb2J1dHN1c2hvdW5pblwgOwor5q2m5Yqb5bmy5riJID4gYnVyeW9rdWthbnNob3VcIDsKK+WFrOihhumBk+W+syA+IGtvdXNodXVkb3V0b2t1XCA7CivmgKrlpYflsI/oqqwgPiBrYWlraXNob3VzZXRzdVwgOwor56eY5a+G5oqV56WoID4gaGltaXRzdXRvdWh5b3VcIDsKK+Wcp+WKm+WuueWZqCA+IGF0c3VyeW9rdXlvdWtpXCA7Civlgo3nm67lhavnm64gPiBva2FtZWhhY2hpbW9rdVwgOwor5rGC5ama5bqD5ZGKID4ga3l1dWtvbmtvdWtva3VcIDsKK+W/g+WboOWPjeW/nCA+IHNoaW4nJ2luaGFuJydub3VcIDsKK+m6puiXgeW4veWtkCA+IG11Z2l3YXJhYm91c2hpXCA7CivntI3nqI7nlLPlkYogPiBub3V6ZWlzaGlua29rdVwgOwor5Y+N5a++56ew55qEID4gaGFudGFpc2hvdXRla2lcIDsKK+S9j+WPi+mKgOihjCA+IHN1bWl0b21vZ2lua291XCA7Civlh7rmiYDpgLLpgIAgPiBzaHVzc2hvc2hpbnRhaVwgOwor5bCx5qWt5Lq65Y+jID4gc2h1dWd5b3VqaW5rb3VcIDsKK+WFqOWLneWEquWLnSA+IHplbnNob3V5dXVzaG91XCA7Civlu7roqK3lpKfoh6MgPiBrZW5zZXRzdWRhaWppblwgOwor6Z2e6Imv5b+D55qEID4gaGlyeW91c2hpbnRla2lcIDsKK+e1tuWvvuW/heimgSA+IHpldHRhaWhpdHN1eW91XCA7Civom7jotrPphY3nt5ogPiB0YWtvYXNoaWhhaXNlblwgOwor5bel5qWt5aSn5a2mID4ga291Z3lvdWRhaWdha3VcIDsKK+mHkeWjseS4h+WGhiA+IGtpbicnaWNoaW1hbicnZW5cIDsKK+aXheWuouWIl+i7iiA+IHJ5b2t5YWt1cmVzc2hhXCA7Civnq4vkvJrmvJToqqwgPiB0YWNoaWFpZW56ZXRzdVwgOwor5aWo5a2m6LOH6YeRID4gc2hvdWdha3VzaGlraW5cIDsKK+ePvumHkeWPjuWFpSA+IGdlbmtpbnNodXVueXV1XCA7CivlrabooZPkvJrorbAgPiBnYWt1anV0c3VrYWlnaVwgOwor5rOV5b6L5ZWP6aGMID4gaG91cml0c3Vtb25kYWlcIDsKK+ebtOmAmumbu+ipsSA+IGNob2t1dHN1dWRlbndhXCA7Civlj7DmiYDpgZPlhbcgPiBkYWlkb2tvcm9kb3VndVwgOwor6Zu75rqQ5L6b57WmID4gZGVuZ2Vua3lvdWt5dXVcIDsKK+WBnOW5tOmAgOiBtyA+IHRlaW5lbnRhaXNob2t1XCA7CivmsLTpmbjkuKHnlKggPiBzdWlyaWt1cnlvdXlvdVwgOwor6YCa5L+h5omL5q61ID4gdHN1dXNoaW5zaHVkYW5cIDsKK+S4i+iri+S8muekviA+IHNoaXRhdWtlZ2Fpc2hhXCA7CivnrKzkuIDkurrnp7AgPiBkYWlpY2hpbmluc2hvdVwgOwor5a2m5q2056S+5LyaID4gZ2FrdXJla2lzaGFrYWlcIDsKK+a8lOWlj+absuebriA+IGVuc291a3lva3Vtb2t1XCA7CivmgJ3mg7Porablr58gPiBzaGlzb3VrZWlzYXRzdVwgOwor5YWs55uK6LOq5bGLID4ga291ZWtpc2hpY2hpeWFcIDsKK+WBleiAgeWQjOeptCA+IGthaXJvdWRvdWtldHN1XCA7CivlgaXlurfpo5/lk4EgPiBrZW5rb3VzaG9rdWhpblwgOwor5oq96LGh5ZCN6KmeID4gY2h1dXNob3VtZWlzaGlcIDsKK+Wwj+S5l+S7j+aVmSA+IHNob3Vqb3VidWtreW91XCA7CivlkIjnm67nmoTmgKcgPiBnb3Vtb2t1dGVraXNlaVwgOwor6Zu75Yqb5Lya56S+ID4gZGVucnlva3VnYWlzaGFcIDsKK+a1t+a0i+mWi+eZuiA+IGthaXlvdWthaWhhdHN1XCA7CivntLDog57liIboo4IgPiBzYWlib3VidW5yZXRzdVwgOwor5oCl6KGM5paZ6YeRID4ga3l1dWtvdXJ5b3VraW5cIDsKK+S4geS4geeZuuatoiA+IGNob3VjaG91aGFzc2hpXCA7CivmlZnogbfoqrLnqIsgPiBreW91c2hva3VrYXRlaVwgOwor5Ye654mI5qWt6ICFID4gc2h1cHBhbmd5b3VzaGFcIDsKK+WwseiBt+mBi+WLlSA+IHNodXVzaG9rdXVuZG91XCA7CivnlaXlparooYzngrogPiByeWFrdWRhdHN1a291aVwgOwor55CG6Z2e5puy55u0ID4gcmloaWt5b2t1Y2hva3VcIDsKK+WIpeWGiuS7mOmMsiA+IGJlc3NhdHN1ZnVyb2t1XCA7CivkuInmqKnliIbnq4sgPiBzYW5rZW5idW5yaXRzdVwgOwor5YWx5ZCM56CU56m2ID4ga3lvdWRvdWtlbmt5dXVcIDsKK+aWsOWIiue0ueS7iyA+IHNoaW5rYW5zaG91a2FpXCA7Civmo5/libLplbflsYsgPiBtdW5ld2FyaW5hZ2F5YVwgOwor5L+u5aW95p2h57SEID4gc2h1dWtvdWpvdXlha3VcIDsKK+WGoOeKtuWLleiEiCA+IGthbmpvdWRvdW15YWt1XCA7CivnqbrnqbrmvKDmvKAgPiBrdXVrdXViYWt1YmFrdVwgOwor5oKq5oCn6LKn6KGAID4gYWt1c2VpaGlua2V0c3VcIDsKK+S8keaIpuWNlOWumiA+IGt5dXVzZW5reW91dGVpXCA7CivnpZ7ntYzoobDlvLEgPiBzaGlua2Vpc3VpamFrdVwgOwor5Zue5oqY5qC85a2QID4ga2Fpc2V0c3Vrb3VzaGlcIDsKK+WFiOaxuuWVj+mhjCA+IHNlbmtldHN1bW9uZGFpXCA7CivlsLHmpa3ml6XmlbAgPiBzaHV1Z3lvdW5pc3N1dVwgOwor5a6f6aiT5YuV54mpID4gamlra2VuZG91YnV0c3VcIDsKK+W/oOWQm+aEm+WbvSA+IGNodXVrdW4nJ2Fpa29rdVwgOwor5rGC5Lq65bqD5ZGKID4ga3l1dWppbmtvdWtva3VcIDsKK+eLrOeri+eLrOatqSA+IGRva3VyaXRzdWRvcHBvXCA7Civoq7joqqzntJvjgIUgPiBzaG9zZXRzdWZ1bnB1blwgOwor5pyJ5a6z6aOf5ZOBID4geXV1Z2Fpc2hva3VoaW5cIDsKK+m6u+iWrOS4reavkiA+IG1heWFrdWNodXVkb2t1XCA7Civph5HlsZ7lt6Xmpa0gPiBraW56b2t1a291Z3lvdVwgOwor5Y245aOy54mp5L6hID4gb3Jvc2hpdXJpYnVra2FcIDsKK+WFseWQjOWHuuizhyA+IGt5b3Vkb3VzaHVzc2hpXCA7Civni63ou4zpiYTpgZMgPiBreW91a2l0ZXRzdWRvdVwgOwor5ZWG5qWt5omL5b2iID4gc2hvdWd5b3V0ZWdhdGFcIDsKK+mDteS+v+mFjemBlCA+IHl1dWJpbmhhaXRhdHN1XCA7CivmuK/mub7lvZPlsYAgPiBrb3V3YW50b3VreW9rdVwgOwor5ZWG5qWt6YqA6KGMID4gc2hvdWd5b3VnaW5rb3VcIDsKK+ecgeeVpeiomOWPtyA+IHNob3VyeWFrdWtpZ291XCA7CivkuK3plpPloLHlkYogPiBjaHV1a2FuaG91a29rdVwgOwor5Lit5b+D5oCd5oOzID4gY2h1dXNoaW5zaGlzb3VcIDsKK+S6lOaciOS6uuW9oiA+IGdvZ2F0c3VuaW5neW91XCA7CivkvJ3mib/mloflraYgPiBkZW5zaG91YnVuZ2FrdVwgOwor6Luf5L2T5YuV54mpID4gbmFudGFpZG91YnV0c3VcIDsKK+W8t+WItuWPjuWuuSA+IGt5b3VzZWlzaHV1eW91XCA7CivkuIDpmb3mnaXohbkgPiBpY2hpeW91cmFpZnVrdVwgOwor5ryB5qWt5Y2U5a6aID4gZ3lvZ3lvdWt5b3V0ZWlcIDsKK+awtOeUn+WLleeJqSA+IHN1aXNlaWRvdWJ1dHN1XCA7CivmpZTlvaLmloflrZcgPiBrdXNhYmlnYXRhbW9qaVwgOwor5L+h55So57WE5ZCIID4gc2hpbicneW91a3VtaWFpXCA7CivnoJTnqbbloLHlkYogPiBrZW5reXV1aG91a29rdVwgOwor5rC05aSp5b235b2/ID4gc3VpdGVuaG91ZnV0c3VcIDsKK+S9j+WuheeUo+alrSA+IGp1dXRha3VzYW5neW91XCA7Civms6HmsqvkvJrnpL4gPiBob3VtYXRzdWdhaXNoYVwgOwor6KuH6KuW6aKo55m6ID4gZGFucm9uZnV1aGF0c3VcIDsKK+WFiOeZuuaKleaJiyA+IHNlbnBhdHN1dG91c2h1XCA7CivmjqjnkIblsI/oqqwgPiBzdWlyaXNob3VzZXRzdVwgOwor57Sz5aOr5Y2U5a6aID4gc2hpbnNoaWt5b3V0ZWlcIDsKK+Wkp+WQjeWxi+aVtyA+IGRhaW15b3V5YXNoaWtpXCA7CivnibnnlbDkvZPos6ogPiB0b2t1aXRhaXNoaXRzdVwgOwor5Lit6ZaT5pC+5Y+WID4gY2h1dWthbnNha3VzaHVcIDsKK+WNlOiqv+S9nOalrSA+IGt5b3VjaG91c2FneW91XCA7CivmjIflnKfnmYLms5UgPiBzaGlhdHN1cnlvdWhvdVwgOwor5bel5qWt5oqA6KGTID4ga291Z3lvdWdpanV0c3VcIDsKK+e3j+WQiOiKuOihkyA+IHNvdWdvdWdlaWp1dHN1XCA7CivkuK3nlKPpmo7ntJogPiBjaHV1c2Fua2Fpa3l1dVwgOwor5Y2X5Y2B5a2X5pifID4gbWluYW1panV1amlzZWlcIDsKK+W/g+mciuaJi+ihkyA+IHNoaW5yZWl0ZWp1dHN1XCA7CivmiJDplbfnlKPmpa0gPiBzZWljaG91c2FuZ3lvdVwgOwor5Zu96Zqb5Y+O5pSvID4ga29rdXNhaXNodXVzaGlcIDsKK+WOmueUn+aWveiorSA+IGtvdXNlaXNoaXNldHN1XCA7CivkuIrpmbjkvZzmiKYgPiBqb3VyaWt1c2FrdXNlblwgOwor5YuV5Yqb6LOH5rqQID4gZG91cnlva3VzaGlnZW5cIDsKK+W/heimgeadoeS7tiA+IGhpdHN1eW91am91a2VuXCA7CivkuK3mtYHmhI/orZggPiBjaHV1cnl1dWlzaGlraVwgOwor5Ye65ryB5Yy65Z+fID4gc2h1dHN1Z3lva3Vpa2lcIDsKK+iyoeW9ouiyr+iThCA+IHphaWtlaWNob2NoaWt1XCA7CivogbfkurrmsJfos6ogPiBzaG9rdW5pbmthdGFnaVwgOwor5Y2Y5L2N6KGM5YiXID4gdGFuJydpZ3lvdXJldHN1XCA7Civlm73pgKPmhrLnq6AgPiBrb2t1cmVua2Vuc2hvdVwgOwor5rC05YWI5qGI5YaFID4gbWl6dXNha2lhbicnbmFpXCA7Civlj47lrrnoqK3lgpkgPiBzaHV1eW91c2V0c3ViaVwgOwor5rex5rW35ryB5qWtID4gc2hpbmthaWd5b2d5b3VcIDsKK+ebtOW+gOmCgemAsiA+IGNob2t1b3VtYWlzaGluXCA7CivlpKnkvZPlipvlraYgPiB0ZW50YWlyaWtpZ2FrdVwgOwor55yf56m66Zu755CDID4gc2hpbmt1dWRlbmt5dXVcIDsKK+S4iuWxpOW7uueviSA+IGpvdXNvdWtlbmNoaWt1XCA7CivlvbnogbfmiYvlvZMgPiB5YWt1c2hva3V0ZWF0ZVwgOwor6auY5Zyn6Zu75rWBID4ga291YXRzdWRlbnJ5dXVcIDsKK+S6pOmAmumBk+W+syA+IGtvdXRzdXVkb3V0b2t1XCA7CivmsLTmupbmuKzph48gPiBzdWlqdW5zb2t1cnlvdVwgOwor5byB6Ki85rOV55qEID4gYmVuc2hvdWhvdXRla2lcIDsKK+advuiMuOW+oemjryA+IG1hdHN1dGFrZWdvaGFuXCA7CivplqLnqI7pmpzlo4EgPiBrYW56ZWlzaG91aGVraVwgOwor57Wx5ous6YOo6ZW3ID4gdG91a2F0c3VidWNob3VcIDsKK+aQjeWkseijnOWhqyA+IHNvbnNoaXRzdWhvdGVuXCA7CivkuovkuovnianniakgPiBqaWppYnV0c3VidXRzdVwgOwor5oim44CF5oGQ44CFID4gc2Vuc2Vua3lvdWt5b3VcIDsKK+mAo+e2muWGmeecnyA+IHJlbnpva3VzaGFzaGluXCA7Civlm5vnmb7kvZnlt54gPiBzaGloeWFrdXlvc2h1dVwgOwor5LiA6Zm95p2l5b6pID4gaWNoaXlvdXJhaWZ1a3VcIDsKK+W/g+eti+ail+WhniA+IHNoaW5raW5rb3Vzb2t1XCA7CivlrpfmlZnoo4HliKQgPiBzaHV1a3lvdXNhaWJhblwgOwor5YaZ55yf55+z54mIID4gc2hhc2hpbnNla2liYW5cIDsKK+maoOiKseakjeeJqSA+IGlua2FzaG9rdWJ1dHN1XCA7Civlvq7nlJ/nianlraYgPiBiaXNlaWJ1dHN1Z2FrdVwgOwor5oim55Wl56m66LuNID4gc2Vucnlha3VrdXVndW5cIDsKK+aBreizgOaWsOW5tCA+IGt5b3VnYXNoaW4nJ25lblwgOwor5Zu96Zqb5Y2U5a6aID4ga29rdXNhaWt5b3V0ZWlcIDsKK+iJsuWNs+aYr+epuiA+IHNoaWtpc29rdXpla3V1XCA7CivpoK3lr5LotrPnhrEgPiB6dWthbnNva3VuZXRzdVwgOwor5Yy65qSc5a+f5bqBID4ga3VrZW5zYXRzdWNob3VcIDsKK+aguOmYsuihm+WKmyA+IGtha3Vib3VlaXJ5b2t1XCA7Civlrozlhajnh4PnhLwgPiBrYW56ZW4nJ25lbnNob3VcIDsKK+mHjemHj+aEn+immiA+IGp1dXJ5b3VrYW5rYWt1XCA7Civpm4zpm4TpkZHliKUgPiBzaGl5dXVrYW5iZXRzdVwgOwor5Y6f55Sf5YuV54mpID4gZ2Vuc2VpZG91YnV0c3VcIDsKK+ebrueahOaEj+itmCA+IG1va3V0ZWtpaXNoaWtpXCA7CivmtbfnlJ/li5XniakgPiBrYWlzZWlkb3VidXRzdVwgOwor5pS75pKD57K+56WeID4ga291Z2VraXNlaXNoaW5cIDsKK+S9nOaIkOaKgOihkyA+IHNha3VzZWlnaWp1dHN1XCA7Civph5Hpiq3kv6HoqJcgPiBraW5zZW5zaGludGFrdVwgOwor5ZC45Y+O5ZCI5L21ID4ga3l1dXNodXVnYXBwZWlcIDsKK+aPm+mqqOWlquiDjiA+IGthbmtvdHN1ZGF0dGFpXCA7Civnoazos6rpmbblmaggPiBrb3VzaGl0c3V0b3VraVwgOwor5a+d5Y+w5paZ6YeRID4gc2hpbmRhaXJ5b3VraW5cIDsKK+izvOWFpeazqOaWhyA+IGtvdW55dXVjaHV1bW9uXCA7CivnhKblnJ/miKbooZMgPiBzaG91ZG9zZW5qdXRzdVwgOwor5pyJ6IG35pWF5a6fID4geXV1c29rdWtvaml0c3VcIDsKK+eEoeWEn+S/oeiolyA+IG11c2hvdXNoaW50YWt1XCA7CivmtojosrvnlJ/mtLsgPiBzaG91aGlzZWlrYXRzdVwgOwor5a6k5YaF6YGK5oivID4gc2hpdHN1bmFpeXV1Z2lcIDsKK+Wul+aVmeWbo+S9kyA+IHNodXVreW91ZGFudGFpXCA7CivpgLLooYznirbms4EgPiBzaGlua291am91a3lvdVwgOwor6auY562J5YuV54mpID4ga291dG91ZG91YnV0c3VcIDsKK+S4gOiGs+mjr+WxiyA+IGljaGl6ZW5tZXNoaXlhXCA7CivmmYLku6PlsI/oqqwgPiBqaWRhaXNob3VzZXRzdVwgOwor5puy57ea5bqn5qiZID4ga3lva3VzZW56YWh5b3VcIDsKK+W9k+ipsuS6uueJqSA+IHRvdWdhaWppbmJ1dHN1XCA7CivopoHmsYLpgIHkv6EgPiB5b3VreXV1c291c2hpblwgOwor55m+5Lq65LiA6aaWID4gaHlha3VuaW4nJ2lzc2h1XCA7Civpm4blm6PmpJzoqLogPiBzaHV1ZGFua2Vuc2hpblwgOwor5a6J5a+n56ep5bqPID4gYW4nJ25laWNoaXRzdWpvXCA7CivmpbXmpb3ps6XoirEgPiBnb2t1cmFrdWNob3VrYVwgOwor5Lit6LaK57Sb5LqJID4gY2h1dWV0c3VmdW5zb3VcIDsKK+S4gOaLrOizvOWFpSA+IGlra2F0c3Vrb3VueXV1XCA7CivmsJHml4/oh6rmsbogPiBtaW56b2t1amlrZXRzdVwgOwor5q2j6Z2i5pS75pKDID4gc2hvdW1lbmtvdWdla2lcIDsKK+aVmeiCsueUo+alrSA+IGt5b3Vpa3VzYW5neW91XCA7Civnqbroqr/oqK3lgpkgPiBrdXVjaG91c2V0c3ViaVwgOwor5Y2Y54us5YaF6ZajID4gdGFuZG9rdW5haWtha3VcIDsKK+aVmeiCsuWun+e/kiA+IGt5b3Vpa3VqaXNzaHV1XCA7CivlsLHmpa3opo/liYcgPiBzaHV1Z3lvdWtpc29rdVwgOwor5pWZ6aSK55Wq57WEID4ga3lvdXlvdWJhbmd1bWlcIDsKK+WHjee1kOizh+eUoyA+IHRvdWtldHN1c2hpc2FuXCA7Civpm4blm6PovrLloLQgPiBzaHV1ZGFuJydub3Vqb3VcIDsKK+WRqOi+uuiruOWbvSA+IHNodXVoZW5zaG9rb2t1XCA7Civlm73nsY3mnaHpoIUgPiBrb2t1c2VraWpvdWtvdVwgOwor54++54mp57Wm5LiOID4gZ2VuYnV0c3VreXV1eW9cIDsKK+ixqumbquWcsOW4ryA+IGdvdXNldHN1Y2hpdGFpXCA7CivmtbfljYPlsbHljYMgPiB1bWlzZW4nJ3lhbWFzZW5cIDsKK+mdqeaWsOaUv+WFmiA+IGtha3VzaGluc2VpdG91XCA7CivlsJHmlbDmsJHml48gPiBzaG91c3V1bWluem9rdVwgOwor5Yq05YON5Y2U57SEID4gcm91ZG91a3lvdXlha3VcIDsKK+mbu+aSg+S9nOaIpiA+IGRlbmdla2lzYWt1c2VuXCA7CivkuIPpoZvlhavotbcgPiBzaGljaGl0ZW5oYWtraVwgOwor6ISK6auE56We57WMID4gc2VraXp1aXNoaW5rZWlcIDsKK+e+juihk+Wkp+WtpiA+IGJpanV0c3VkYWlnYWt1XCA7Civpgbjmip7poIXnm64gPiBzZW50YWt1a291bW9rdVwgOwor6ZaT5o6l6YG45oyZID4ga2Fuc2V0c3VzZW5reW9cIDsKK+iyneauu+i/veaUviA+IGthaWdhcmF0c3VpaG91XCA7CivnvqTnmbrlnLDpnIcgPiBndW5wYXRzdWppc2hpblwgOwor57eK6KSM5LiA55WqID4ga2lua29uJydpY2hpYmFuXCA7Civni6zouqvosrTml48gPiBkb2t1c2hpbmtpem9rdVwgOwor56eR5a2m55+l6K2YID4ga2FnYWt1Y2hpc2hpa2lcIDsKK+efs+mDqOmHkeWQiSA+IGlzaGliZWtpbmtpY2hpXCA7CivoirHps6XpoqjmnIggPiBrYWNob3VmdXVnZXRzdVwgOwor5o+Q5Ye65pyf6ZmQID4gdGVpc2h1dHN1a2lnZW5cIDsKK+WkqemVt+WcsOS5hSA+IHRlbmNob3VjaGlreXV1XCA7Civnmb7kuIfplbfogIUgPiBoeWFrdW1hbmNob3VqYVwgOwor5a++55eH55mC5rOVID4gdGFpc2hvdXJ5b3Vob3VcIDsKK+S4reaeouelnue1jCA+IGNodXVzdXVzaGlua2VpXCA7CivllYblt6Xmpa3ogIUgPiBzaG91a291Z3lvdXNoYVwgOwor6ZaL56Wo6YCf5aCxID4ga2FpaHlvdXNva3Vob3VcIDsKK+aAp+eahOihneWLlSA+IHNlaXRla2lzaG91ZG91XCA7Civnibnmrormkq7lvbEgPiB0b2t1c2h1c2F0c3VlaVwgOwor6Ly45Ye65omL5b2iID4geXVzaHV0c3V0ZWdhdGFcIDsKK+WPsuaWmemkqOWtpiA+IHNoaXJ5b3VrYW5nYWt1XCA7CivnqbrkuK3mpbzplqMgPiBrdXVjaHV1cm91a2FrdVwgOwor5bCR5bm05paH5a2mID4gc2hvdW5lbmJ1bmdha3VcIDsKK+iqv+aVtOaUu+aSgyA+IGNob3VzZWlrb3VnZWtpXCA7Civnsr7npZ7lubTpvaIgPiBzZWlzaGluJyduZW5yZWlcIDsKK+WxheS4reiqv+WBnCA+IGt5b2NodXVjaG91dGVpXCA7CivnqI7liKXkvqHmoLwgPiB6ZWliZXRzdWtha2FrdVwgOwor6LuN5Lq655Sf5rS7ID4gZ3Vuamluc2Vpa2F0c3VcIDsKK+eah+WuruitpuWvnyA+IGtvdWd1dWtlaXNhdHN1XCA7CivnspLjgIXovpvoi6YgPiByeXV1cnl1dXNoaW5rdVwgOwor5p2x5Lqs5aSn5a2mID4gdG91a3lvdWRhaWdha3VcIDsKK+iIiOWRs+a0pea0pSA+IGt5b3VtaXNoaW5zaGluXCA7CivljYPlrqLkuIfmnaUgPiBzZW5reWFrdWJhbnJhaVwgOwor6YG45oqc6Kmm6aiTID4gc2VuYmF0c3VzaGlrZW5cIDsKK+iIqui3r+aomeitmCA+IGtvdXJvaHlvdXNoaWtpXCA7Civnt4rmgKXnmbrpgLIgPiBraW5reXV1aGFzc2hpblwgOwor56m65Lit5YaZ55yfID4ga3V1Y2h1dXNoYXNoaW5cIDsKK+WWtualrea0u+WLlSA+IGVpZ3lvdWthdHN1ZG91XCA7CivmlZHmj7TmtLvli5UgPiBreXV1ZW5rYXRzdWRvdVwgOwor5aSp54S256Gd5a2QID4gdGVuJyduZW5zaG91c2hpXCA7Civkv6HoqJfos4fph5EgPiBzaGludGFrdXNoaWtpblwgOwor5biC5rCR55Sf5rS7ID4gc2hpbWluc2Vpa2F0c3VcIDsKK+e1tuWvvuaoqeWKmyA+IHpldHRhaWtlbnJ5b2t1XCA7Civlkajnq6Dni7zni70gPiBzaHV1c2hvdXJvdWJhaVwgOwor5rCR5peP5a2m6ICFID4gbWluem9rdWdha3VzaGFcIDsKK+iGoOedgOeKtuaFiyA+IGtvdWNoYWt1am91dGFpXCA7CivpnaLmjqXoqabpqJMgPiBtZW5zZXRzdXNoaWtlblwgOwor5pS/562W5Y2U5a6aID4gc2Vpc2FrdWt5b3V0ZWlcIDsKK+iyqeWjsuaIpueVpSA+IGhhbmJhaXNlbnJ5YWt1XCA7CivlhazoqK3luILloLQgPiBrb3VzZXRzdWljaGliYVwgOwor5Lq654mp57WM5riIID4gamluYnV0c3VrZWl6YWlcIDsKK+W/g+eahOeKtuaFiyA+IHNoaW50ZWtpam91dGFpXCA7CivkuJjpmbXlnLDluK8gPiBreXV1cnlvdWNoaXRhaVwgOwor55Sf5rav5pWZ6IKyID4gc2hvdWdhaWt5b3Vpa3VcIDsKK+aXp+e0hOWFqOabuCA+IGt5dXV5YWt1emVuc2hvXCA7CivlpKfmoLnlvbnogIUgPiBkYWlrb24nJ3lha3VzaGFcIDsKK+S4h+W5tOaWsOmAoCA+IG1hbicnbmVuc2hpbnpvdVwgOwor5bqn6aqo56We57WMID4gemFrb3RzdXNoaW5rZWlcIDsKK+mVt+iAgeaVmeS8miA+IGNob3Vyb3VreW91a2FpXCA7Civosq/ok4TlgrXliLggPiBjaG9jaGlrdXNhaWtlblwgOwor5q2m5Yqb5LuL5YWlID4gYnVyeW9rdWthaW55dXVcIDsKK+eyvuWvhuenkeWtpiA+IHNlaW1pdHN1a2FnYWt1XCA7Civnp4HpiYTnt4/pgKMgPiBzaGl0ZXRzdXNvdXJlblwgOwor5Lyd6YCB57WC5LqGID4gZGVuc291c2h1dXJ5b3VcIDsKK+iWq+iSuOa2iOavkiA+IGt1bmpvdXNob3Vkb2t1XCA7CivpuqbnqIjluL3lrZAgPiBtdWdpd2FyYWJvdXNoaVwgOwor5rOV5b6L55u46KuHID4gaG91cml0c3Vzb3VkYW5cIDsKK+WcsOWfn+mWi+eZuiA+IGNoaWlraWthaWhhdHN1XCA7Civlm73lhoXnlKPmpa0gPiBrb2t1bmFpc2FuZ3lvdVwgOwor5LiA5omT6YCG6LuiID4gaWNoaWRhZ3lha3V0ZW5cIDsKK+awtOeUn+eUn+eJqSA+IHN1aXNlaXNlaWJ1dHN1XCA7CivmnInnt5rpgJrkv6EgPiB5dXVzZW50c3V1c2hpblwgOwor6LW35om/6Lui57WQID4ga2lzaG91dGVua2V0c3VcIDsKK+eJqeizquS4u+e+qSA+IGJ1c3NoaXRzdXNodWdpXCA7Civkv6HoqJfkvJrnpL4gPiBzaGludGFrdWdhaXNoYVwgOwor5Lit6ZaT5ZWG5Lq6ID4gY2h1dWthbnNob3VuaW5cIDsKK+mdmembu+WuuemHjyA+IHNlaWRlbicneW91cnlvdVwgOwor5Lit5rWB56S+5LyaID4gY2h1dXJ5dXVzaGFrYWlcIDsKK+engeeri+aOouWBtSA+IHNoaXJpdHN1dGFudGVpXCA7Civlm73msJHmipXnpaggPiBrb2t1bWludG91aHlvdVwgOwor5pyJ572q5Yik5rG6ID4geXV1emFpaGFua2V0c3VcIDsKK+W8t+WMlumjn+WTgSA+IGt5b3VrYXNob2t1aGluXCA7CivkvLjnuK7oh6rlnKggPiBzaGluc2h1a3VqaXphaVwgOwor6Zm46LuN5aSn5a2mID4gcmlrdWd1bmRhaWdha3VcIDsKK+mAmuS/oemAn+W6piA+IHRzdXVzaGluc29rdWRvXCA7Civpu5Lph5HliZvnn7MgPiBrdXJva29uZ291c2VraVwgOwor5Lit5Zu95Lq66KGXID4gY2h1dWdva3VqaW5nYWlcIDsKK+WtpuiKuOWkp+WtpiA+IGdha3VnZWlkYWlnYWt1XCA7CivlpKfmsrPlsI/oqqwgPiB0YWlnYXNob3VzZXRzdVwgOwor6YmE6YGT5Lya56S+ID4gdGV0c3Vkb3VnYWlzaGFcIDsKK+mfs+alveW9ouW8jyA+IG9uZ2FrdWtlaXNoaWtpXCA7CivmgKfmoLzliIbmnpAgPiBzZWlrYWt1YnVuc2VraVwgOwor54++6YeR5pu455WZID4gZ2Vua2lua2FraXRvbWVcIDsKK+S8keaIpuadoee0hCA+IGt5dXVzZW5qb3V5YWt1XCA7CivkuozotrPli5XniakgPiBuaXNva3Vkb3VidXRzdVwgOwor5b+D55CG5a2m55qEID4gc2hpbnJpZ2FrdXRla2lcIDsKK+S+g+OAheirpOirpCA+IGthbmthbmdha3VnYWt1XCA7Civnm7Tnt5rpgYvli5UgPiBjaG9rdXNlbicndW5kb3VcIDsKK+aCquW+s+aWsOiBniA+IGFrdXRva3VzaGluYnVuXCA7CivmnKrmsbrmi5jnlZkgPiBtaWtldHN1a291cnl1dVwgOwor5a6a6YeP5YiG5p6QID4gdGVpcnlvdWJ1bnNla2lcIDsKK+e0meWxkeWQjOeEtiA+IGthbWlrdXp1ZG91emVuXCA7CivmuKnlrqTmoL3ln7kgPiBvbnNoaXRzdXNhaWJhaVwgOwor6Yed5bCP5qOS5aSnID4gc2hpbnNob3Vib3VkYWlcIDsKK+WkquWIgOS6jOiFsCA+IHRhY2hpZnV0YWtvc2hpXCA7Civoqo3orZjkuI3otrMgPiBuaW5zaGlraWJ1c29rdVwgOwor5Zuj5L2T5Y2U57SEID4gZGFudGFpa3lvdXlha3VcIDsKK+aIpuOAheWFouOAhSA+IHNlbnNlbmt5b3VreW91XCA7Civkv6HpoLzlm57lvqkgPiBzaGlucmFpa2FpZnVrdVwgOwor5L+u5a2m5peF6KGMID4gc2h1dWdha3VyeW9rb3VcIDsKK+mbu+a6kOmWi+eZuiA+IGRlbmdlbmthaWhhdHN1XCA7CivmqKHlvI/mqJnmnKwgPiBtb3NoaWtpaHlvdWhvblwgOwor6L+96Leh6Kq/5p+7ID4gdHN1aXNla2ljaG91c2FcIDsKK+WJsuW8leaJi+W9oiA+IHdhcmliaWtpdGVnYXRhXCA7Civnm7TmtYHlm57ot68gPiBjaG9rdXJ5dXVrYWlyb1wgOwor6IiI6KGM5oiQ57i+ID4ga291Z3lvdXNlaXNla2lcIDsKK+WMl+a0i+a8gealrSA+IGhva3V5b3VneW9neW91XCA7Civlm73mloflrablj7IgPiBrb2t1YnVuZ2FrdXNoaVwgOwor5rC45LmF6ISx5q+bID4gZWlreXV1ZGF0c3Vtb3VcIDsKK+aOkuWHuuWfuua6liA+IGhhaXNodXRzdWtpanVuXCA7CivntYTogbfmlLnpnakgPiBzb3Nob2t1a2Fpa2FrdVwgOwor6YGO5aSx6Ie05q27ID4ga2FzaGl0c3VjaGlzaGlcIDsKK+S6pOmAmuS/oeWPtyA+IGtvdXRzdXVzaGluZ291XCA7Civli5Xnianlrp/pqJMgPiBkb3VidXRzdWppa2tlblwgOwor5rC05LiK6K2m5a+fID4gc3Vpam91a2Vpc2F0c3VcIDsKK+WKtOS9nOaVmeiCsiA+IHJvdXNha3VreW91aWt1XCA7CivmoLjlu4Pmo4TniakgPiBrYWt1aGFpa2lidXRzdVwgOwor6Y6u6a2C5puy5q2MID4gY2hpbmtvbmt5b2t1a2FcIDsKK+mdnumJhOmHkeWxniA+IGhpdGV0c3VraW56b2t1XCA7CivkuInnmb7ku6PoqIAgPiBzYW5ieWFrdWRhaWdlblwgOwor5Lit5Zu95Lyd5p2lID4gY2h1dWdva3VkZW5yYWlcIDsKK+eti+eEoeWKm+eXhyA+IGtpbm11cnlva3VzaG91XCA7CivmtYHpgJros4fmnKwgPiByeXV1dHN1dXNoaWhvblwgOwor56m65Y2z5piv6ImyID4ga3V1c29rdXplc2hpa2lcIDsKK+aVmeiCsuaUuemdqSA+IGt5b3Vpa3VrYWlrYWt1XCA7CivliIfplovmiYvooZMgPiBzZWtrYWlzaHVqdXRzdVwgOwor5pWR6K235rS75YuVID4ga3l1dWdva2F0c3Vkb3VcIDsKK+Wuo+S8nea0u+WLlSA+IHNlbmRlbmthdHN1ZG91XCA7CivosqHnlKPnm67pjLIgPiB6YWlzYW5tb2t1cm9rdVwgOwor5q2j5bi457WC5LqGID4gc2Vpam91c2h1dXJ5b3VcIDsKK+S6oeWRveeUn+a0uyA+IGJvdW1laXNlaWthdHN1XCA7CivlhKrotoropIflkIggPiB5dXVldHN1ZnVrdWdvdVwgOwor57SU5pel5pys5byPID4ganVuJyduaWhvbnNoaWtpXCA7CivmiYvlvaLlibLlvJUgPiB0ZWdhdGF3YXJpYmlraVwgOwor5YuV54mp5bSH5oudID4gZG91YnV0c3VzdXVoYWlcIDsKK+WFseWQjOS9j+WuhSA+IGt5b3Vkb3VqdXV0YWt1XCA7CivmnInooovli5XniakgPiB5dXV0YWlkb3VidXRzdVwgOwor6KKL5bCP6Lev5paHID4gZnVrdXJva291amlidW5cIDsKK+eZveeggumdkuadviA+IGhha3VzaGFzZWlzaG91XCA7CivoirHlq4HlvqHlr64gPiBoYW5heW9tZWdvcnlvdVwgOwor5paw6Zmz5Luj6KydID4gc2hpbmNoaW50YWlzaGFcIDsKK+S4gOWFremKgOihjCA+IGljaGlyb2t1Z2lua291XCA7CivlsLHogbfmlqHml4sgPiBzaHV1c2hva3Vhc3NlblwgOwor6Z6t5q+b6Jmr55eHID4gYmVubW91Y2h1dXNob3VcIDsKK+e1tuS9k+e1tuWRvSA+IHpldHRhaXpldHN1bWVpXCA7Civnsr7npZ7liIbmnpAgPiBzZWlzaGluYnVuc2VraVwgOwor57O75YiX5Lya56S+ID4ga2VpcmV0c3VnYWlzaGFcIDsKK+WIhuWtkOmWk+WKmyA+IGJ1bnNoaWthbnJ5b2t1XCA7CivkvIHmpa3miKbnlaUgPiBraWd5b3VzZW5yeWFrdVwgOwor5Zu95rCR5omA5b6XID4ga29rdW1pbnNob3Rva3VcIDsKK+i8uOWHuuWItumZkCA+IHl1c2h1dHN1c2VpZ2VuXCA7Civnibnlrprpipjmn4QgPiB0b2t1dGVpbWVpZ2FyYVwgOwor6LKh5YuZ5L2T6LOqID4gemFpbXV0YWlzaGl0c3VcIDsKK+itpuWvn+WtpuagoSA+IGtlaXNhdHN1Z2Fra291XCA7CivkuI3ms5XkvrXlhaUgPiBmdWhvdXNoaW4nJ255dXVcIDsKK+eUn+a0u+ioreioiCA+IHNlaWthdHN1c2Vra2VpXCA7Civou73oloTnn63lsI8gPiBrZWloYWt1dGFuc2hvdVwgOwor566X6KGT5bmz5Z2HID4gc2FuanV0c3VoZWlraW5cIDsKK+WNs+W4reaWmeeQhiA+IHNva3VzZWtpcnlvdXJpXCA7CivniannkIbnmYLms5UgPiBidXRzdXJpcnlvdWhvdVwgOwor6Z2S6YW45Lit5q+SID4gc2Vpc2FuY2h1dWRva3VcIDsKK+Wul+aVmeazleS6uiA+IHNodXVreW91aG91amluXCA7CivlhpnnnJ/mpI3lrZcgPiBzaGFzaGluc2hva3VqaVwgOwor57eK57iu6LKh5pS/ID4ga2luc2h1a3V6YWlzZWlcIDsKK+WNmOaAp+eUn+auliA+IHRhbnNlaXNlaXNob2t1XCA7Civpq5jnrYnnlJ/niakgPiBrb3V0b3VzZWlidXRzdVwgOwor6IiI5ZGz5rSl44CFID4ga3lvdW1pc2hpbnNoaW5cIDsKK+S/neiovOeJm+S5syA+IGhvc2hvdWd5dXVueXV1XCA7Civlj5fog47oqr/nr4AgPiBqdXRhaWNob3VzZXRzdVwgOwor6YCP5p6Q55mC5rOVID4gdG91c2VraXJ5b3Vob3VcIDsKK+aEn+immuelnue1jCA+IGthbmtha3VzaGlua2VpXCA7CivlsILploDnn6XorZggPiBzZW5tb25jaGlzaGlraVwgOwor6LuN5ouh56u25LqJID4gZ3Vua2FrdWt5b3Vzb3VcIDsKK+eZu+WgtOS6uueJqSA+IHRvdWpvdWppbmJ1dHN1XCA7CivpnZ7nj77lrp/nmoQgPiBoaWdlbmppdHN1dGVraVwgOwor6YCG5oCn55+z6bm4ID4gZ3lha3VzZWlzZWtrZW5cIDsKK+W5vemWgOeLreeqhCA+IHl1dW1vbmt5b3VzYWt1XCA7CivpgKPpgqblvZPlsYAgPiByZW5wb3V0b3VreW9rdVwgOwor55u05bCE5pel5YWJID4gY2hva3VzaGFuaWtrb3VcIDsKK+WFiOS7u+WwhuagoSA+IHNlbicnbmluc2hvdWtvdVwgOwor6Ky55Y6z5a6f55u0ID4ga2luZ2Vuaml0Y2hva3VcIDsKK+W6l+mgreWPluW8lSA+IHRlbnRvdXRvcmloaWtpXCA7Civnmbrlo7LnpoHmraIgPiBoYXRzdWJhaWtpbnNoaVwgOwor5ZOB6LOq566h55CGID4gaGluc2hpdHN1a2FucmlcIDsKK+e3qOWFpeippumokyA+IGhlbicnbnl1dXNoaWtlblwgOwor5Lyd6YGU6Zai5pWwID4gZGVudGF0c3VrYW5zdXVcIDsKK+WwveW/oOWgseWbvSA+IGppbmNodXVob3Vrb2t1XCA7CivlirTkvb/ljZToqr8gPiByb3VzaGlreW91Y2hvdVwgOwor55m+6Imy55y86Y+hID4gaHlha3Vpcm9tZWdhbmVcIDsKK+S4reaAp+WtkOadnyA+IGNodXVzZWlzaGlzb2t1XCA7Civnt4rmgKXlr77nrZYgPiBraW5reXV1dGFpc2FrdVwgOwor5Y2w5Yi35oqA6KGTID4gaW5zYXRzdWdpanV0c3VcIDsKK+W/g+eahOihqOekuiA+IHNoaW50ZWtpaHlvdWppXCA7CivlkI3miYDml6fot6EgPiBtZWlzaG9reXV1c2VraVwgOwor5oqV6LOH5L+h6KiXID4gdG91c2hpc2hpbnRha3VcIDsKK+aWsOmfk+WbveWFmiA+IHNoaW5rYW5rb2t1dG91XCA7Civlm73pmpvmnaHntIQgPiBrb2t1c2Fpam91eWFrdVwgOwor5LiD5aCC5Ly96JeNID4gc2hpY2hpZG91Z2FyYW5cIDsKK+imquaXj+mWouS/giA+IHNoaW56b2t1a2Fua2VpXCA7CivlgpjlvaLnoo3lrZAgPiBrYXNhZ2F0YWdhaXNoaVwgOwor5oKq5ryi5bCP6KqsID4gYWtrYW5zaG91c2V0c3VcIDsKK+WFrOaVteS4gOWPtyA+IGtvdXRla2lpY2hpZ291XCA7CivmsLTos6rmsZrmv4EgPiBzdWlzaGl0c3VvZGFrdVwgOwor57K+56We55mC5rOVID4gc2Vpc2hpbnJ5b3Vob3VcIDsKK+iMq+eEtuiHquWksSA+IGJvdXplbmppc2hpdHN1XCA7CivlnLDos6rmmYLku6MgPiBjaGlzaGl0c3VqaWRhaVwgOwor56uL5YWl56aB5q2iID4gdGFjaGlpcmlraW5zaGlcIDsKK+Wkp+WQjOWbo+e1kCA+IGRhaWRvdWRhbmtldHN1XCA7Civosq/ph5HpgJrluLMgPiBjaG9raW50c3V1Y2hvdVwgOwor5paO5oiS5rKQ5rW0ID4gc2Fpa2FpbW9rdXlva3VcIDsKK+aWsOWItuWkp+WtpiA+IHNoaW5zZWlkYWlnYWt1XCA7CivlhbHlkIzosqzku7sgPiBreW91ZG91c2VraW5pblwgOwor5paw6IGe55m66KGoID4gc2hpbmJ1bmhhcHB5b3VcIDsKK+i7iuWGheaUueacrSA+IHNoYW5haWthaXNhdHN1XCA7CivmmIbomavlrabogIUgPiBrb25jaHV1Z2FrdXNoYVwgOwor6YCA6IG35bm06YeRID4gdGFpc2hva3VuZW5raW5cIDsKK+WIhuWJsue1seayuyA+IGJ1bmthdHN1dG91Y2hpXCA7CivnorrnjofpgY7nqIsgPiBrYWt1cml0c3VrYXRlaVwgOwor56CU56m255m66KGoID4ga2Vua3l1dWhhcHB5b3VcIDsKK+aXp+e0hOiBluabuCA+IGt5dXV5YWt1c2Vpc2hvXCA7CivokrLpib7lhbXoiI4gPiBrYW1hYm9rb2hlaXNoYVwgOwor57WM6LK756+A57SEID4ga2VpaGlzZXRzdXlha3VcIDsKK+eti+iQjue4rueXhyA+IGtpbicnaXNodWt1c2hvdVwgOwor5YSq55Sf5omL6KGTID4geXV1c2Vpc2h1anV0c3VcIDsKK+WFrOWFseaWmemHkSA+IGtvdWt5b3VyeW91a2luXCA7CivlvLfliLbkuK3mlq0gPiBreW91c2VpY2h1dWRhblwgOwor5LiH5pyJ5byV5YqbID4gYmFuJyd5dXVpbnJ5b2t1XCA7Civnq4vlpKrlrZDlvI8gPiByaXR0YWlzaGlzaGlraVwgOwor5pel5YaF5ZGo5pyfID4gbmljaGluYWlzaHV1a2lcIDsKK+aGsuazleino+mHiCA+IGtlbnBvdWthaXNoYWt1XCA7Civnvo7nmoTnlJ/mtLsgPiBiaXRla2lzZWlrYXRzdVwgOwor5Zuj5L2T5Ymy5byVID4gZGFudGFpd2FyaWJpa2lcIDsKK+Wbvemam+S6pOa1gSA+IGtva3VzYWlrb3VyeXV1XCA7CivlhqDnirbpnZnohIggPiBrYW5qb3Vqb3VteWFrdVwgOwor6YCG5LiJ6KeS5b2iID4gZ3lha3VzYW5rYWtrZWlcIDsKK+W4gueri+WtpuagoSA+IHNoaXJpdHN1Z2Fra291XCA7CivopIfpm5HmgKrlpYcgPiBmdWt1emF0c3VrYWlraVwgOwor6auY5bGk5bu656+JID4ga291c291Z2VuY2hpa3VcIDsKK+ecn+ePoOmkiuauliA+IHNoaW5qdXlvdXNob2t1XCA7CivnlLPlkYrnlKjntJkgPiBzaGlua29rdXlvdXNoaVwgOwor5bGA5Zyw5oim5LqJID4ga3lva3VjaGlzZW5zb3VcIDsKK+mHjeimgeS6uueJqSA+IGp1dXlvdWppbmJ1dHN1XCA7CivmtLvniYjljbDliLcgPiBrYXBwYW4nJ2luc2F0c3VcIDsKK+mAo+aXpemAo+WknCA+IHJlbmppdHN1cmVuJyd5YVwgOwor5LiJ6ICF5a++56uLID4gc2Fuc2hhdGFpcml0c3VcIDsKK+axguWmu+W6g+WRiiA+IGt5dXVzYWlrb3Vrb2t1XCA7Civni4LoqIDoh6rmrrogPiBreW91Z2VuamlzYXRzdVwgOwor5oCn5p+T6Imy5L2TID4gc2Vpc2Vuc2hva3V0YWlcIDsKK+WHuOeJiOWNsOWItyA+IHRvcHBhbicnaW5zYXRzdVwgOwor5Yi66Lqr5YyF5LiBID4gc2FzaGltaWJvdWNob3VcIDsKK+aXpeexs+iyv+aYkyA+IG5pY2hpYmVpYm91ZWtpXCA7Civou43kuovljZTlipsgPiBndW5qaWt5b3VyeW9rdVwgOwor5qW16ZmQ54q25oWLID4ga3lva3VnZW5qb3V0YWlcIDsKK+eJqeeQhuePvuixoSA+IGJ1dHN1cmlnZW5zaG91XCA7CivkurrouqvmlLvmkoMgPiBqaW5zaGlua291Z2VraVwgOwor6KiY5oa25Zaq5aSxID4ga2lva3Vzb3VzaGl0c3VcIDsKK+ekvuS8muenqeW6jyA+IHNoYWthaWNoaXRzdWpvXCA7CivkvoPkvoPoq6Toq6QgPiBrYW5rYW5nYWt1Z2FrdVwgOwor5rib5L6h5YSf5Y20ID4gZ2Vua2FzaG91a3lha3VcIDsKK+epuuS4reafu+WvnyA+IGt1dWNodXVzYXNhdHN1XCA7CivntKDkurroip3lsYUgPiBzaGlyb3V0b3NoaWJhaVwgOwor5LiA5YWt5Yud6LKgID4gaWNoaXJva3VzaG91YnVcIDsKK+S6pOmfv+alveWboyA+IGtvdWt5b3VnYWt1ZGFuXCA7CivooYDmtrLpioDooYwgPiBrZXRzdWVraWdpbmtvdVwgOwor5ZWG5ZOB5Zyo6auYID4gc2hvdWhpbnphaWRha2FcIDsKK+eJqeeQhuWtpuiAhSA+IGJ1dHN1cmlnYWt1c2hhXCA7CivlubTnmb7lubTkuK0gPiBuZW5ieWFrdW5lbmp1dVwgOwor5p6d6JGJ5pyr56+AID4gc2hpeW91bWFzc2V0c3VcIDsKK+i7jemaiueUn+a0uyA+IGd1bnRhaXNlaWthdHN1XCA7Civmr5TovIPnmoTlsI8gPiBoaWtha3V0ZWtpc2hvdVwgOwor5r2c5Zyo6IO95YqbID4gc2VuemFpbm91cnlva3VcIDsKK+W3peWtpuWNmuWjqyA+IGtvdWdha3VoYWt1c2hpXCA7CivmnInlhJ/lpZHntIQgPiB5dXVzaG91a2VpeWFrdVwgOwor5paw6IGe5bqD5ZGKID4gc2hpbmJ1bmtvdWtva3VcIDsKK+S4iue0muabuemVtyA+IGpvdWt5dXVzb3VjaG91XCA7CivkubHoqLrkubHnmYIgPiByYW5zaGlucmFucnlvdVwgOwor6ZuG5ZCI5L2P5a6FID4gc2h1dWdvdWp1dXRha3VcIDsKK+W+oemjn+S6i+WHpiA+IG9zaG9rdWppZG9rb3JvXCA7CivppIrmrpbnnJ/nj6AgPiB5b3VzaG9rdXNoaW5qdVwgOwor5YaF6YOo5ZGK55m6ID4gbmFpYnVrb2t1aGF0c3VcIDsKK+WQjeebruizg+mHkSA+IG1laW1va3VjaGluZ2luXCA7Civnm7jlr77mub/luqYgPiBzb3V0YWlzaGl0c3Vkb1wgOwor5pys5pyr6Lui5YCSID4gaG9ubWF0c3V0ZW50b3VcIDsKK+WtpuagoeeUn+a0uyA+IGdha2tvdXNlaWthdHN1XCA7CivlhaXlm73mn7voqLwgPiBueXV1a29rdXNhc2hvdVwgOwor6Ieq5b6L56We57WMID4gamlyaXRzdXNoaW5rZWlcIDsKK+WnieanmOS6uuW9oiA+IGFuZXNhbWFuaW5neW91XCA7CivmiKbmiKbmgZDmgZAgPiBzZW5zZW5reW91a3lvdVwgOwor6KGd5pKD6Zai5pWwID4gc2hvdWdla2lrYW5zdXVcIDsKK+W3p+iogOS7pOiJsiA+IGtvdWdlbnJlaXNob2t1XCA7CivlpInmuKnli5XniakgPiBoZW4nJ29uZG91YnV0c3VcIDsKK+WOn+Wni+WLleeJqSA+IGdlbnNoaWRvdWJ1dHN1XCA7CivnqbrplpPoirjooZMgPiBrdXVrYW5nZWlqdXRzdVwgOwor5L6D44CF6Kuk44CFID4ga2Fua2FuZ2FrdWdha3VcIDsKK+mWi+W6l+S8kealrSA+IGthaXRlbmt5dXVneW91XCA7CivlqK/mpb3mlr3oqK0gPiBnb3Jha3VzaGlzZXRzdVwgOwor5Y2K5rC45LmF55qEID4gaGFuJydlaWt5dXV0ZWtpXCA7Civpo5/ns6fkuovmg4UgPiBzaG9rdXJ5b3VqaWpvdVwgOwor5Y+v6YCG5Y+N5b+cID4ga2FneWFrdWhhbicnbm91XCA7CivnibnliKXkvJrlk6EgPiB0b2t1YmV0c3VrYWlpblwgOwor5q275rS75ZWP6aGMID4gc2hpa2F0c3Vtb25kYWlcIDsKK+ezu+e1seelnuWtpiA+IGtlaXRvdXNoaW5nYWt1XCA7Civou5/pqqjprZrpoZ4gPiBuYW5rb3RzdWd5b3J1aVwgOwor5ZCE5Lq65ZCE5qeYID4ga2FrdWppbmtha3V5b3VcIDsKK+mAmuS/oeS6i+alrSA+IHRzdXVzaGluamlneW91XCA7Civosr/mmJPpmpzlo4EgPiBib3Vla2lzaG91aGVraVwgOwor5Y2Y5LiA6YCa6LKoID4gdGFuJydpdHN1dHN1dWthXCA7CivljYPkuKHlvbnogIUgPiBzZW5yeW91eWFrdXNoYVwgOwor5Yiw552A5pmC5Yi7ID4gdG91Y2hha3VqaWtva3VcIDsKK+amgueul+imgeaxgiA+IGdhaXNhbicneW91a3l1dVwgOwor5Zu95rCR5bm06YeRID4ga29rdW1pbicnbmVua2luXCA7Civms6XmsLTnqLzmpa0gPiBkb3JvbWl6dWthZ3lvdVwgOwor5Zyo5pel57Gz6LuNID4gemFpbmljaGliZWlndW5cIDsKK+i2iuWig+WFpeWtpiA+IGVra3lvdW55dXVnYWt1XCA7CivmlbDnkIblk7LlraYgPiBzdXVyaXRldHN1Z2FrdVwgOwor5ZSv54mp5Y+y6KazID4geXVpYnV0c3VzaGlrYW5cIDsKK+WVhualreWtpuagoSA+IHNob3VneW91Z2Fra291XCA7Civlt6blpKfmi6zlvKcgPiBoaWRhcmlkYWlrYWtrb1wgOwor5rCR5peP57K+56WeID4gbWluem9rdXNlaXNoaW5cIDsKK+Wun+WKm+ihjOeCuiA+IGppdHN1cnlva3Vrb3VpXCA7Civmtbfntr/li5XniakgPiBrYWltZW5kb3VidXRzdVwgOwor57Gz6LuN5YW15YqbID4gYmVpZ3VuaGVpcnlva3VcIDsKK+WwseWtpuW5tOm9oiA+IHNodXVnYWt1bmVucmVpXCA7CivpibHnianos4fmupAgPiBrb3VidXRzdXNoaWdlblwgOwor6Luf5byP6YeO55CDID4gbmFuc2hpa2l5YWt5dXVcIDsKK+S/oeiol+e1seayuyA+IHNoaW50YWt1dG91Y2hpXCA7CivntYzmuIjmtLvli5UgPiBrZWl6YWlrYXRzdWRvdVwgOwor5YW15byP5L2T5pONID4gaGVpc2hpa2l0YWlzb3VcIDsKK+eUn+aulue0sOiDniA+IHNlaXNob2t1c2FpYm91XCA7CivlnLDlvaLmuKzph48gPiBjaGlrZWlzb2t1cnlvdVwgOwor5ZWG5qWt6LOH5pysID4gc2hvdWd5b3VzaGlob25cIDsKK+aVsOWApOebruaomSA+IHN1dWNoaW1va3VoeW91XCA7CivkuIDlvpfkuIDlpLEgPiBpdHRva3Vpc3NoaXRzdVwgOwor6YCa5L+h6LKp5aOyID4gdHN1dXNoaW5oYW5iYWlcIDsKK+W8t+WItuWft+ihjCA+IGt5b3VzZWlzaGlra291XCA7Civlubvopprnl4fnirYgPiBnZW5rYWt1c2hvdWpvdVwgOwor5YyX6Zm45Zyw5pa5ID4gaG9rdXJpa3VjaGlob3VcIDsKK+WJsuW8leeZuuihjCA+IHdhcmliaWtpaGFra291XCA7CivluoPloLHmtLvli5UgPiBrb3Vob3VrYXRzdWRvdVwgOwor5bGx6auY5bi95a2QID4geWFtYXRha2Fib3VzaGlcIDsKK+afk+iJsuW3peWgtCA+IHNlbnNob2t1a291am91XCA7CivlhazlvI/oqKrllY8gPiBrb3VzaGlraWhvdW1vblwgOwor57eP5ZCI6ZaL55m6ID4gc291Z291a2FpaGF0c3VcIDsKK+mAo+eri+aUv+aoqSA+IHJlbnJpdHN1c2Vpa2VuXCA7Civlt67liKXooajnj74gPiBzYWJldHN1aHlvdWdlblwgOwor5qip5Yqb6ZeY5LqJID4ga2Vucnlva3V0b3Vzb3VcIDsKK+ijveWTgeaIpueVpSA+IHNlaWhpbnNlbnJ5YWt1XCA7CivliIbmsLTlsbHohIggPiBidW5zdWlzYW5teWFrdVwgOwor6KqY6Zu75q2j5o6lID4geXV1ZGVuc2Vpc2V0c3VcIDsKK+efpeimmuelnue1jCA+IGNoaWtha3VzaGlua2VpXCA7CivpgJDmnaHlr6norbAgPiBjaGlrdWpvdXNoaW5naVwgOwor5Y2D5bO25YiX5bO2ID4gY2hpc2hpbWFyZXR0b3VcIDsKK+i8uOWHuui2hemBjiA+IHl1c2h1dHN1Y2hvdWthXCA7CivlsIrnjovoqI7luZUgPiBzb24nJ25vdXRvdWJha3VcIDsKK+aDheWgsemAmuS/oSA+IGpvdWhvdXRzdXVzaGluXCA7CivotoXotorkuqTku6MgPiBjaG91ZXRzdWtvdXRhaVwgOwor55Sf5rS756m66ZaTID4gc2Vpa2F0c3VrdXVrYW5cIDsKK+WJjeeri+iFuueCjiA+IHplbnJpdHN1c2VuJydlblwgOwor6KGM5pS/5pS56Z2pID4gZ3lvdXNlaWthaWtha3VcIDsKK+W+i+S7pOWbveWutiA+IHJpdHN1cnlvdWtva2thXCA7Civlv4PpnIrnj77osaEgPiBzaGlucmVpZ2Vuc2hvdVwgOwor55Sf6KqV55m+5bm0ID4gc2VpdGFuaHlha3VuZW5cIDsKK+iHquWLleedgOS/oSA+IGppZG91Y2hha3VzaGluXCA7CivnrKzkuInli6LlipsgPiBkYWlzYW5zZWlyeW9rdVwgOwor5pu455WZ6YO15L6/ID4ga2FraXRvbWV5dXViaW5cIDsKK+efpeitmOS9k+ezuyA+IGNoaXNoaWtpdGFpa2VpXCA7Civpm4blkIjoqJjov7AgPiBzaHV1Z291a2lqdXRzdVwgOwor5LiJ55m+6Ku45L6vID4gc2FuYnlha3VzaG9rb3VcIDsKK+Wkp+ihhuaWh+WtpiA+IHRhaXNodXVidW5nYWt1XCA7CivkuK3nrYnmlZnogrIgPiBjaHV1dG91a3lvdWlrdVwgOwor5pWZ6IKy6KGM5pS/ID4ga3lvdWlrdWd5b3VzZWlcIDsKK+atpuijheS4reeriyA+IGJ1c291Y2h1dXJpdHN1XCA7CivlubPlkozljZTlipsgPiBoZWl3YWt5b3VyeW9rdVwgOwor6Zu76YmE5Lya56S+ID4gZGVudGV0c3VnYWlzaGFcIDsKK+WHuuW4reaXpeaVsCA+IHNodXNzZWtpbmlzc3V1XCA7CivnnIznq4vnl4XpmaIgPiBrZW5yaXRzdWJ5b3VpblwgOwor57KS57KS6L6b6IumID4gcnl1dXJ5dXVzaGlua3VcIDsKK+WBj+aXgeWGoOiEmiA+IGhlbmJvdWthbmt5YWt1XCA7Civosqnlo7Lkv4PpgLIgPiBoYW5iYWlzb2t1c2hpblwgOwor5L+h6KiX5oqV6LOHID4gc2hpbnRha3V0b3VzaGlcIDsKK+S4reWwj+S8gealrSA+IGNodXVzaG91a2lneW91XCA7CivkuInooYzluoPlkYogPiBzYW5neW91a291a29rdVwgOwor6KGA5ray5b6q55KwID4ga2V0c3Vla2lqdW5rYW5cIDsKK+mAo+e1kOaxuueulyA+IHJlbmtldHN1a2Vzc2FuXCA7Civpqqjou5/ljJbnl4cgPiBrb3RzdW5hbmthc2hvdVwgOwor5pS/5rK75ZOy5a2mID4gc2Vpaml0ZXRzdWdha3VcIDsKK+WVhualreaUvumAgSA+IHNob3VneW91aG91c291XCA7Civlm73pmLLnt4/nnIEgPiBrb2t1Ym91c291c2hvdVwgOwor55Sf5rS75oyH5bCOID4gc2Vpa2F0c3VzaGlkb3VcIDsKK+eCjueGseWcsOeNhCA+IGVuJyduZXRzdWppZ29rdVwgOwor5YWr6Z2i546y55OPID4gaGFjaGltZW5yZWlyb3VcIDsKK+mdouS8muisnee1tiA+IG1lbmthaXNoYXpldHN1XCA7CivpgZPot6/mqJnorZggPiBkb3Vyb2h5b3VzaGlraVwgOwor5Zu95Za26YCa5L+hID4ga29rdWVpdHN1dXNoaW5cIDsKK+mBqeadkOmBqeaJgCA+IHRla2l6YWl0ZWtpc2hvXCA7Civliofnl4fogp3ngo4gPiBnZWtpc2hvdWthbicnZW5cIDsKK+eJqeaDhemokueEtiA+IGJ1dHN1am91c291emVuXCA7CivlhazmsJHnlJ/mtLsgPiBrb3VtaW5zZWlrYXRzdVwgOwor5YWl5a2m6Kmm6aiTID4gbnl1dWdha3VzaGlrZW5cIDsKK+e1tuWvvue1tuWRvSA+IHpldHRhaXpldHN1bWVpXCA7CivkuovjgIXnianjgIUgPiBqaWppYnV0c3VidXRzdVwgOwor5YCL5YCL5Yil5YilID4ga29rb2JldHN1YmV0c3VcIDsKK+WQiOWUsemaiumVtyA+IGdhc3Nob3V0YWljaG91XCA7Civkub7nh6XniZvkubMgPiBrYW5zb3VneXV1bnl1dVwgOwor55u057O75bCK5bGeID4gY2hva2tlaXNvbnpva3VcIDsKK+WFpeWtpumhmOabuCA+IG55dXVnYWt1Z2Fuc2hvXCA7Civlh7rnmbrmmYLplpMgPiBzaHVwcGF0c3VqaWthblwgOwor5Li76KaB5Lq654mpID4gc2h1eW91amluYnV0c3VcIDsKK+aWh+WtpuS9nOWTgSA+IGJ1bmdha3VzYWt1aGluXCA7Civou73kvr/piYTpgZMgPiBrZWliZW50ZXRzdWRvdVwgOwor5Ymy5byV5biC5aC0ID4gd2FyaWJpa2lzaGlqb3VcIDsKK+Wksei4quWuo+WRiiA+IHNoaXNzb3VzZW5rb2t1XCA7CivljJblrabntZDlkIggPiBrYWdha3VrZXRzdWdvdVwgOwor5L+d6Zm65paZ546HID4gaG9rZW5yeW91cml0c3VcIDsKK+S/oei2iuacrOe3miA+IHNoaW5ldHN1aG9uc2VuXCA7CivnpZ7ntYzkuK3mnqIgPiBzaGlua2VpY2h1dXN1dVwgOwor55m65YWJ5YuV54mpID4gaGFra291ZG91YnV0c3VcIDsKK+ikh+W8j+eBq+WxsSA+IGZ1a3VzaGlraWthemFuXCA7CivloIXlv43kuI3mipwgPiBrZW4nJ25pbmZ1YmF0c3VcIDsKK+iAkOS5j+eUn+a0uyA+IHRhaWJvdXNlaWthdHN1XCA7CivnpL7kvJrpgJrlv7UgPiBzaGFrYWl0c3V1bmVuXCA7CivmjqXlrqLmhYvluqYgPiBzZWtreWFrdXRhaWRvXCA7Civou73niIbmkoPmqZ8gPiBrZWliYWt1Z2VraWtpXCA7CivnvbLlkI3mjbrljbAgPiBzaG9tZWluYXRzdWluXCA7Civog7jpg6jnlr7mgqMgPiBreW91YnVzaGlra2FuXCA7CivosaHniZnlj5blvJUgPiB6b3VnZXRvcmloaWtpXCA7Civml6Xmm5zlpKflt6UgPiBuaWNoaXlvdWRhaWt1XCA7Civnm67njonllYblk4EgPiBtZWRhbWFzaG91aGluXCA7Civoo73olqzkvJrnpL4gPiBzZWl5YWt1Z2Fpc2hhXCA7CivmipXlhYnnhafmmI4gPiB0b3Vrb3VzaG91bWVpXCA7CivmuIXlu4nmvZTnmb0gPiBzZWlyZW5rZXBwYWt1XCA7CivmlbXliY3pgIPkuqEgPiB0ZWtpemVudG91Ym91XCA7Civml6XliIrmlrDogZ4gPiBuaWtrYW5zaGluYnVuXCA7CivmirHohbnntbblgJIgPiBob3VmdWt1emV0dG91XCA7CivmgqromZDnhKHpgZMgPiBha3VneWFrdW11ZG91XCA7Civlm73lrrbmqKnlipsgPiBrb2trYWtlbnJ5b2t1XCA7CivljZfmtIvoq7jls7YgPiBuYW4nJ3lvdXNob3RvdVwgOwor5Zua5Lq65Yq05YONID4gc2h1dWppbnJvdWRvdVwgOwor5Yqj562J6Kaz5b+1ID4gcmV0dG91a2FuJyduZW5cIDsKK+mWouS/guWumOW6gSA+IGthbmtlaWthbmNob3VcIDsKK+i+suawkeaWh+WtpiA+IG5vdW1pbmJ1bmdha3VcIDsKK+iHqueEtuePvuixoSA+IHNoaXplbmdlbnNob3VcIDsKK+iFjuiHk+e1kOefsyA+IGppbnpvdWtlc3Nla2lcIDsKK+aWveaUv+aWuemHnSA+IHNoaXNlaWhvdXNoaW5cIDsKK+Wkqeeruua1quS6uiA+IHRlbmppa3Vyb3VuaW5cIDsKK+mciumtguS4jea7hSA+IHJlaWtvbmZ1bWV0c3VcIDsKK+WFrOWFsee1hOWQiCA+IGtvdWt5b3VrdW1pYWlcIDsKK+aciee3mumbu+S/oSA+IHl1dXNlbmRlbnNoaW5cIDsKK+ihgOihjOmanOWusyA+IGtla2tvdXNob3VnYWlcIDsKK+S6uueahOizh+a6kCA+IGppbnRla2lzaGlnZW5cIDsKK+WcsOaWueihjOaUvyA+IGNoaWhvdWd5b3VzZWlcIDsKK+mch+WkqeWLleWcsCA+IHNoaW50ZW5kb3VjaGlcIDsKK+esrOS4ieW4neWbvSA+IGRhaXNhbnRlaWtva3VcIDsKK+WkqeaWh+WtpuiAhSA+IHRlbm1vbmdha3VzaGFcIDsKK+a3seWknOaUvumAgSA+IHNoaW4nJ3lhaG91c291XCA7Civpn7Plo7DlvaLlvI8gPiBvbnNlaWtlaXNoaWtpXCA7CivkuqTpgJrllY/poYwgPiBrb3V0c3V1bW9uZGFpXCA7CivlhazlhbHmipXos4cgPiBrb3VreW91dG91c2hpXCA7CivlioPmmYLku6PnmoQgPiBrYWt1amlkYWl0ZWtpXCA7CivlkIzml4/kvJrnpL4gPiBkb3V6b2t1Z2Fpc2hhXCA7Civlv4PnkIbmj4/lhpkgPiBzaGlucmlieW91c2hhXCA7CivmioDooZPmsLTmupYgPiBnaWp1dHN1c3VpanVuXCA7CivnkIblrabljZrlo6sgPiByaWdha3VoYWt1c2hpXCA7CivlsYDmiYDpurvphZQgPiBreW9rdXNob21hc3VpXCA7CivnlKPliKXkvJrorbAgPiBzYW5iZXRzdWthaWdpXCA7CivlsLHlrablhZDnq6UgPiBzaHV1Z2FrdWppZG91XCA7CivnqbrkuK3ntabmsrkgPiBrdXVjaHV1a3l1dXl1XCA7Civlm73pmpvopo/moLwgPiBrb2t1c2Fpa2lrYWt1XCA7CivlrabmoKHmlrDogZ4gPiBnYWtrb3VzaGluYnVuXCA7Civmg4XloLHnlKPmpa0gPiBqb3Vob3VzYW5neW91XCA7CivnmbvpjLLnlarlj7cgPiB0b3Vyb2t1YmFuZ291XCA7CivlnJ/mnKjlt6XlraYgPiBkb2Jva3Vrb3VnYWt1XCA7CivnlJ/kvZPlj43lv5wgPiBzZWl0YWloYW4nJ25vdVwgOwor6LGh5b605Li7576pID4gc2hvdWNob3VzaHVnaVwgOwor6Z+z5qW95pWZ6IKyID4gb25nYWt1a3lvdWlrdVwgOwor6Kaz5ris5Zyw54K5ID4ga2Fuc29rdWNoaXRlblwgOwor5oqA6KGT5ZCM5aOrID4gZ2lqdXRzdWRvdXNoaVwgOwor5b+c5oCl5pS75pKDID4gb3VreXV1a291Z2VraVwgOwor5ZCM5LuB5pWZ5LyaID4gZG91amlua3lvdWthaVwgOwor5a6f5YON5pmC6ZaTID4gaml0c3Vkb3VqaWthblwgOwor6Z2S56m66aeQ6LuKID4gYW96b3JhY2h1dXNoYVwgOwor6Zu75Yqb6Ly46YCBID4gZGVucnlva3V5dXNvdVwgOwor6LuN6ZqK5pWZ6IKyID4gZ3VudGFpa3lvdWlrdVwgOwor6YGg5rSL5ryB5qWtID4gZW4nJ3lvdWd5b2d5b3VcIDsKK+S/nemanOWNoOmgmCA+IGhvc2hvdXNlbnJ5b3VcIDsKK+S6pOaPm+azleWJhyA+IGtvdWthbmhvdXNva3VcIDsKK+eJveW8leeZguazlSA+IGtlbicnaW5yeW91aG91XCA7Civpp4XkvJ3nq7botbAgPiBla2lkZW5reW91c291XCA7CivliIfmra/mibzohZUgPiBzZXNzaGl5YWt1d2FuXCA7Civlm6PkvZPkuqTmuIkgPiBkYW50YWlrb3VzaG91XCA7Civkuq3kuLvplqLnmb0gPiB0ZWlzaHVrYW5wYWt1XCA7CivkuIDmrrXli5XoqZ4gPiBpY2hpZGFuZG91c2hpXCA7CivkuIDoiKzluZXlg5ogPiBpcHBhbmJha3VyeW91XCA7Civlr53lj7DliJfou4ogPiBzaGluZGFpcmVzc2hhXCA7CivmipXmk7Lnq7bmioAgPiB0b3V0ZWtpa3lvdWdpXCA7CivmsJfosaHpgJrloLEgPiBraXNob3V0c3V1aG91XCA7CivplovmnpDlj7DlnLAgPiBrYWlzZWtpZGFpY2hpXCA7Civlrp/nlKjkuLvnvqkgPiBqaXRzdXlvdXNodWdpXCA7Civlt6XloLTlrp/nv5IgPiBrb3Vqb3VqaXNzaHV1XCA7CivkuK3ntpnosr/mmJMgPiBjaHV1a2VpYm91ZWtpXCA7CivmgKfog73nibnmgKcgPiBzZWlub3V0b2t1c2VpXCA7CivmnIDlvozpgJrniZIgPiBzYWlnb3RzdXVjaG91XCA7Civlm73pmpvntZDlqZogPiBrb2t1c2Fpa2Vra29uXCA7CivpgKDmnKzmioDooZMgPiB6b3Vob25naWp1dHN1XCA7CivlpqjlrrPlt6XkvZwgPiBib3VnYWlrb3VzYWt1XCA7CivmsJHml4/mhI/orZggPiBtaW56b2t1aXNoaWtpXCA7CivotIXmsqLkuInmmKcgPiB6ZWl0YWt1emFubWFpXCA7CivlhpnnnJ/oo73niYggPiBzaGFzaGluc2VpaGFuXCA7CivlrabmoKHmlZnogrIgPiBnYWtrb3VreW91aWt1XCA7CivpnKfkuK3kv6Hlj7cgPiBtdWNodXVzaGluZ291XCA7Civnsr7npZ7nirbmhYsgPiBzZWlzaGluam91dGFpXCA7CivllYbnp5HlpKflraYgPiBzaG91a2FkYWlnYWt1XCA7CivlhpnnnJ/ntZDlqZogPiBzaGFzaGlua2Vra29uXCA7CivlhbHlkIzmiKbnt5ogPiBreW91ZG91c2Vuc2VuXCA7CivngavlsbHmtLvli5UgPiBrYXphbmthdHN1ZG91XCA7CivpuqbnqIjntLDlt6UgPiBtdWdpd2FyYXphaWt1XCA7Civli6TlirTmiYDlvpcgPiBraW5yb3VzaG90b2t1XCA7Civpppbnm7jlrpjpgrggPiBzaHVzaG91a2FudGVpXCA7Civoqq3mm7jkuInmmKcgPiBkb2t1c2hvemFubWFpXCA7CivkuK3nrYnmlZnlk6EgPiBjaHV1dG91a3lvdWluXCA7CivkuIDmrKHpm7vmtYEgPiBpY2hpamlkZW5yeXV1XCA7Civlj7DkuK3plqLkv4IgPiB0YWljaHV1a2Fua2VpXCA7Civnp5jlr4bntZDnpL4gPiBoaW1pdHN1a2Vzc2hhXCA7CivmnbHmlrnmi6HlpKcgPiB0b3Vob3VrYWt1ZGFpXCA7Civov5HpmqPoq7jlm70gPiBraW5yaW5zaG9rb2t1XCA7CivlirTlg43pmo7ntJogPiByb3Vkb3VrYWlreXV1XCA7Civosp7mk43oprPlv7UgPiB0ZWlzb3VrYW4nJ25lblwgOwor5rCR6ZaT5Lyd5om/ID4gbWlua2FuZGVuc2hvdVwgOwor6IaA6IOx57WQ55+zID4gYm91a291a2Vzc2VraVwgOwor6Lui5bGF6YCa55+lID4gdGVua3lvdHN1dWNoaVwgOwor57SU5q2j5pWw5a2mID4ganVuc2Vpc3V1Z2FrdVwgOwor55S354i15aSr5Lq6ID4gZGFuc2hha3VmdWppblwgOwor5aGp6JS16aOf5ZOBID4gZW56b3VzaG9rdWhpblwgOwor5LiA6Ie05Zuj57WQID4gaXRjaGlkYW5rZXRzdVwgOwor6K2m5a+f5Zu95a62ID4ga2Vpc2F0c3Vrb2trYVwgOwor57WM5riI55m95pu4ID4ga2VpemFpaGFrdXNob1wgOwor56mA5YCJ5Zyw5bivID4ga29rdXNvdWNoaXRhaVwgOwor55Kw5aKD5LqL5qWtID4ga2Fua3lvdWppZ3lvdVwgOwor57eP5ZCI5ZWG56S+ID4gc291Z291c2hvdXNoYVwgOwor5bCR5bm05Yq05YONID4gc2hvdW5lbnJvdWRvdVwgOwor5LiA5oyZ5Lih5b6XID4gaWtreW9yeW91dG9rdVwgOwor5ris5a6a6KOF572uID4gc29rdXRlaXNvdWNoaVwgOwor5YmN6KGb576O6KGTID4gemVuJydlaWJpanV0c3VcIDsKK+eahuaXouaciOmjnyA+IGthaWtpZ2Vzc2hva3VcIDsKK+WFrOWbo+S9j+WuhSA+IGtvdWRhbmp1dXRha3VcIDsKK+ioreWCmeaKleizhyA+IHNldHN1Yml0b3VzaGlcIDsKK+aXpeW4uOiMtumjryA+IG5pY2hpam91c2FoYW5cIDsKK+e+pOmbhuW/g+eQhiA+IGd1bnNodXVzaGlucmlcIDsKK+eZvuaIpue3tOejqCA+IGh5YWt1c2VucmVubWFcIDsKK+WNs+iIiOipqeS6uiA+IHNva2t5b3VzaGlqaW5cIDsKK+WWhOmao+aUv+etliA+IHplbnJpbnNlaXNha3VcIDsKK+WJjeWPl+WPjuebiiA+IG1hZXVrZXNodXVla2lcIDsKK+WbveawkeeahuWFtSA+IGtva3VtaW5rYWloZWlcIDsKK+mqqOebuOWtpuiAhSA+IGtvc3NvdWdha3VzaGFcIDsKK+aIuOWIpeioquWVjyA+IGtvYmV0c3Vob3Vtb25cIDsKK+eIhuW8vuWjsOaYjiA+IGJha3VkYW5zZWltZWlcIDsKK+mBk+alveaBr+WtkCA+IGRvdXJha3VtdXN1a29cIDsKK+eZkuWCt+e1hOe5lCA+IHl1c2hvdXNvc2hpa2lcIDsKK+eUt+WtkOWtpueUnyA+IGRhbnNoaWdha3VzZWlcIDsKK+iyq+mAmumKg+WJtSA+IGthbnRzdXVqdXVzb3VcIDsKK+aWsOmDjuaWsOWppiA+IHNoaW5yb3VzaGlucHVcIDsKK+epuuaMuuS9nOaIpiA+IGt1dXRlaXNha3VzZW5cIDsKK+mFjeeuoeW3pealrSA+IGhhaWthbmtvdWd5b3VcIDsKK+Wuh+WumemAmuS/oSA+IHVjaHV1dHN1dXNoaW5cIDsKK+etieavlOaVsOWIlyA+IHRvdWhpc3V1cmV0c3VcIDsKK+W6iuS4iua1uOawtCA+IHl1a2F1ZXNoaW5zdWlcIDsKK+iHqueEtueSsOWigyA+IHNoaXplbmthbmt5b3VcIDsKK+aXpeS4reaIpuS6iSA+IG5pdGNodXVzZW5zb3VcIDsKK+aomemhjOmfs+alvSA+IGh5b3VkYWlvbmdha3VcIDsKK+WKo+etieikh+WQiCA+IHJldHRvdWZ1a3Vnb3VcIDsKK+ecvOeQg+mKgOihjCA+IGdhbmt5dXVnaW5rb3VcIDsKK+W4guWgtOWIhuaekCA+IHNoaWpvdWJ1bnNla2lcIDsKK+S4remWk+ippumokyA+IGNodXVrYW5zaGlrZW5cIDsKK+iovOWIuOS8muekviA+IHNob3VrZW5nYWlzaGFcIDsKK+a8j+ipsee1kOWQiCA+IHJvdXdhZ2V0c3Vnb3VcIDsKK+Wbvemam+e0m+S6iSA+IGtva3VzYWlmdW5zb3VcIDsKK+mbhuWbo+ihjOWLlSA+IHNodXVkYW5rb3Vkb3VcIDsKK+i7iuS4oee4pumaiiA+IHNoYXJ5b3VqdXV0YWlcIDsKK+S6pOS7o+aTjealrSA+IGtvdXRhaXNvdWd5b3VcIDsKK+S9nOiAheacquipsyA+IHNha3VzaGFtaXNob3VcIDsKK+ilv+acrOmhmOWvuiA+IG5pc2hpaG9uZ2FuamlcIDsKK+awuOS7o+WAn+WcsCA+IGVpdGFpc2hha3VjaGlcIDsKK+WtkOWurueti+iFqyA+IHNoaWt5dXVraW5zaHVcIDsKK+WIh+aJi+iSkOmbhiA+IGtpdHRlc2h1dXNodXVcIDsKK+WumOiyu+eVmeWtpiA+IGthbnBpcnl1dWdha3VcIDsKK+e3qOmbhuS4u+W5uSA+IGhlbnNodXVzaHVrYW5cIDsKK+eUn+eUo+aKgOihkyA+IHNlaXNhbmdpanV0c3VcIDsKK+awtOW5s+W/nOWKmyA+IHN1aWhlaW91cnlva3VcIDsKK+WFiOerr+aKgOihkyA+IHNlbnRhbmdpanV0c3VcIDsKK+elnuWurueQg+WgtCA+IGppbmd1dWt5dXVqb3VcIDsKK+mfs+alveWkp+WtpiA+IG9uZ2FrdWRhaWdha3VcIDsKK+S+teeVpeihjOeCuiA+IHNoaW5yeWFrdWtvdWlcIDsKK+WFpeWwhOWFiee3miA+IG55dXVzaGFrb3VzZW5cIDsKK+S4ieinkuWHveaVsCA+IHNhbmtha3VrYW5zdXVcIDsKK+eri+S9k+WGmeecnyA+IHJpdHRhaXNoYXNoaW5cIDsKK+Wbvemam+mWouS/giA+IGtva3VzYWlrYW5rZWlcIDsKK+a1hOWcn+ecn+WulyA+IGpvdWRvc2hpbnNodXVcIDsKK+S4ieWbveWQjOebnyA+IHNhbmdva3Vkb3VtZWlcIDsKK+mpmuWkqeWLleWcsCA+IGt5b3V0ZW5kb3VjaGlcIDsKK+epuuS4rea7kei1sCA+IGt1dWNodXVrYXNzb3VcIDsKK+Wbvemam+WVj+mhjCA+IGtva3VzYWltb25kYWlcIDsKK+ekvuWklueZuuS/oSA+IHNoYWdhaWhhc3NoaW5cIDsKK+i3s+aigei3i+aJiCA+IGNob3VyeW91YmFra29cIDsKK+mbhuS4reegsueBqyA+IHNodXVjaHV1aG91a2FcIDsKK+S6uumWk+W3peWtpiA+IG5pbmdlbmtvdWdha3VcIDsKK+i6q+WFg+eiuuiqjSA+IG1pbW90b2tha3VuaW5cIDsKK+W3ruWIpeW+hemBhyA+IHNhYmV0c3V0YWlndXVcIDsKK+WNg+mzpeagvOWtkCA+IGNoaWRvcmlnb3VzaGlcIDsKK+S7j+WDj+S6jOS9kyA+IGJ1dHN1em91bml0YWlcIDsKK+WFqOaZr+WGmeecnyA+IHplbmtlaXNoYXNoaW5cIDsKK+WFrOWFseWbo+S9kyA+IGtvdWt5b3VkYW50YWlcIDsKK+Wghuepjei8quW7uyA+IHRhaXNla2lyaW4nJ25lXCA7CivkuIDoiKznlJ/mtLsgPiBpcHBhbnNlaWthdHN1XCA7CivmqKrmsrPpm7vmqZ8gPiB5b2tvZ2F3YWRlbmtpXCA7CivkuK3ntpnmlL7pgIEgPiBjaHV1a2VpaG91c291XCA7CivnpoHmraLmnaHntIQgPiBraW5zaGlqb3V5YWt1XCA7Civlhajlm73mlL7pgIEgPiB6ZW5rb2t1aG91c291XCA7CivlhZrliKnlhZrnlaUgPiB0b3VyaXRvdXJ5YWt1XCA7CivlpJbkuqTkuqTmuIkgPiBnYWlrb3Vrb3VzaG91XCA7Civlrablo6vpmaLos54gPiBnYWt1c2hpaW5zaG91XCA7CivooYzli5XoqIjnlLsgPiBrb3Vkb3VrZWlrYWt1XCA7CivlhbHmnInosqHnlKMgPiBreW91eXV1emFpc2FuXCA7CivpgLjlpLHliKnnm4ogPiBpc3NoaXRzdXJpZWtpXCA7CivovrLlnLDmlLnpnakgPiBub3VjaGlrYWlrYWt1XCA7CivkuqTpgJrmuIvmu54gPiBrb3V0c3V1anV1dGFpXCA7CivnpZ7ntYzntLDog54gPiBzaGlua2Vpc2FpYm91XCA7Civmpa3nlYzlm6PkvZMgPiBneW91a2FpZGFudGFpXCA7Civli6flloTmh7LmgqogPiBrYW56ZW5jaG91YWt1XCA7CivlhbHnlKPpmaPllrYgPiBreW91c2FuamluJydlaVwgOwor5qyg5bit6KOB5YikID4ga2Vzc2VraXNhaWJhblwgOwor5Y2K6Z2p6KOF5LiBID4gaGFua2F3YXNvdXRlaVwgOwor56u25LqJ5biC5aC0ID4ga3lvdXNvdXNoaWpvdVwgOwor55+l55qE6LKh55SjID4gY2hpdGVraXphaXNhblwgOwor5Y2X5YyX5ZWP6aGMID4gbmFuYm9rdW1vbmRhaVwgOwor56qB54S25aSJ55WwID4gdG90c3V6ZW5oZW4nJ2lcIDsKK+mBqeW/nOmanOWusyA+IHRla2lvdXNob3VnYWlcIDsKK+a3t+i8ieiyqOeJqSA+IGtvbnNhaWthbW90c3VcIDsKK+iAkOmanOWus+aApyA+IHRhaXNob3VnYWlzZWlcIDsKK+i/keimquebuOWnpiA+IGtpbnNoaW5zb3VrYW5cIDsKK+Wkp+mBk+WVhuS6uiA+IGRhaWRvdXNob3VuaW5cIDsKK+S4jeS/oeS7u+ahiCA+IGZ1c2hpbicnbmluJydhblwgOwor5a6u5bu36Z+z5qW9ID4ga3l1dXRlaW9uZ2FrdVwgOwor57ep6KGd5Zyw5bivID4ga2Fuc2hvdWNoaXRhaVwgOwor6KGA5riF5rOo5bCEID4ga2Vzc2VpY2h1dXNoYVwgOwor5Yqg57OW57KJ5LmzID4ga2F0b3VmdW4nJ255dXVcIDsKK+S/oeiyqeS8muekviA+IHNoaW5wYW5nYWlzaGFcIDsKK+WNgeS4gOeMrumHkSA+IGp1dWljaGlrZW5raW5cIDsKK+emj+elieS6i+alrSA+IGZ1a3VzaGlqaWd5b3VcIDsKK+aaluiho+mjvemjnyA+IGRhbicnaWhvdXNob2t1XCA7Civmupbmsbrli53miKYgPiBqdW5rZXNzaG91c2VuXCA7Civph47nlJ/li5XniakgPiB5YXNlaWRvdWJ1dHN1XCA7CivnpL7kvJrnj77osaEgPiBzaGFrYWlnZW5zaG91XCA7CivljJfmrKfoq7jlm70gPiBob2t1b3VzaG9rb2t1XCA7Civoh6rnhLbkvJHkvJogPiBzaGl6ZW5reXV1a2FpXCA7Civoia/kuozljYPnn7MgPiByeW91bmlzZW5zZWtpXCA7CivmloflrabpnZLlubQgPiBidW5nYWt1c2VpbmVuXCA7Civkv67pgZPoqpPpoZggPiBzaHV1ZG91c2VpZ2FuXCA7Civpo5/ns6fmj7TliqkgPiBzaG9rdXJ5b3VlbmpvXCA7CivooYborbDkuIDmsbogPiBzaHV1Z2lpa2tldHN1XCA7CivphbjntKDlkLjlhaUgPiBzYW5zb2t5dXVueXV1XCA7CivnlJ/oh63lnYrkuLsgPiBuYW1hZ3VzYWJvdXp1XCA7Civou43kuovmlr3oqK0gPiBndW5qaXNoaXNldHN1XCA7Civpg7Xkvr/mjK/mm78gPiB5dXViaW5mdXJpa2FlXCA7Civmlrnph53msbrlrpogPiBob3VzaGlua2V0dGVpXCA7CivlsLHmpa3mmYLplpMgPiBzaHV1Z3lvdWppa2FuXCA7Civkurrlj6PmipHliLYgPiBqaW5rb3V5b2t1c2VpXCA7Civou43kurrmganntaYgPiBndW5qaW4nJ29ua3l1dVwgOwor5Lq65bel5rWB55SjID4gamlua291cnl1dXphblwgOwor55yf5Ymj5Yud6LKgID4gc2hpbmtlbnNob3VidVwgOwor6Zqg6YCA55Sf5rS7ID4gaW50YWlzZWlrYXRzdVwgOwor5b255ZOh5aCx6YWsID4geWFrdWluaG91c2h1dVwgOwor5Ymy5byV5pmC6ZaTID4gd2FyaWJpa2lqaWthblwgOwor55m96JGh6JCE6YWSID4gc2hpcm9idWRvdXNodVwgOwor5Yi25pyN5Yi25bi9ID4gc2VpZnVrdXNlaWJvdVwgOwor5Y+k6Imy6JK854S2ID4ga29zaG9rdXNvdXplblwgOwor55WZ572u6YO15L6/ID4gdG9tZW9raXl1dWJpblwgOwor6KiI55S75YCS55SjID4ga2Vpa2FrdXRvdXNhblwgOwor55qG5pei5pel6aOfID4ga2Fpa2luaXNzaG9rdVwgOwor6YCj5oim6YCj5YudID4gcmVuc2VucmVuc2hvdVwgOwor5Lqr5qW95Li7576pID4ga3lvdXJha3VzaHVnaVwgOwor5bqD5ZGK5aqS5L2TID4ga291a29rdWJhaXRhaVwgOwor5Zu95rCR5a+p5p+7ID4ga29rdW1pbnNoaW5zYVwgOwor5re35aOw5ZCI5ZSxID4ga29uc2VpZ2Fzc2hvdVwgOwor56We6YGT5L+h6ICFID4gc2hpbnRvdXNoaW5qYVwgOwor5a6f5rOB5pS+6YCBID4gamlra3lvdWhvdXNvdVwgOwor5YiG5YWJ5YiG5p6QID4gYnVua291YnVuc2VraVwgOwor55Sj5qWt57WE5ZCIID4gc2FuZ3lvdWt1bWlhaVwgOwor5Y+W5o2o6YG45oqeID4gc2h1c2hhc2VudGFrdVwgOwor5Zyw6ZyH5a2m6ICFID4gamlzaGluZ2FrdXNoYVwgOwor5aSn6Ziq5aSn5a2mID4gb29zYWthZGFpZ2FrdVwgOwor56CU56m25pa55rOVID4ga2Vua3l1dWhvdWhvdVwgOwor5pat6YOK56u26LWwID4gZGFua291a3lvdXNvdVwgOwor5q+U6LyD5paH5a2mID4gaGlrYWt1YnVuZ2FrdVwgOwor5aOr6L6y5bel5ZWGID4gc2hpbm91a291c2hvdVwgOwor5Lm+5Z2k5LiA5pOyID4ga2Vua29uJydpdHRla2lcIDsKK+WBnOatouS/oeWPtyA+IHRlaXNoaXNoaW5nb3VcIDsKK+W7uuevieePvuWgtCA+IGtlbmNoaWt1Z2VuYmFcIDsKK+WbvemAo+Wkp+S9vyA+IGtva3VyZW50YWlzaGlcIDsKK+ecieebruengOm6lyA+IGJpbW9rdXNodXVyZWlcIDsKK+aDhee3kumanOWusyA+IGpvdXNob3Nob3VnYWlcIDsKK+isueizgOaWsOW5tCA+IGtpbmdhc2hpbicnbmVuXCA7Civnt7Tnv5LllY/poYwgPiByZW5zaHV1bW9uZGFpXCA7CivkurrnlZznhKHlrrMgPiBqaW5jaGlrdW11Z2FpXCA7CivkuIrmtYHnpL7kvJogPiBqb3VyeXV1c2hha2FpXCA7Civpmbjmtbfnqbrou40gPiByaWt1a2Fpa3V1Z3VuXCA7CivnnJ/nm7joqr/mn7sgPiBzaGluc291Y2hvdXNhXCA7CivooajmlazoqKrllY8gPiBoeW91a2VpaG91bW9uXCA7Civmma7pgJrmlZnogrIgPiBmdXRzdXVreW91aWt1XCA7CivlhazmsJHmlZnogrIgPiBrb3VtaW5reW91aWt1XCA7CivmsLTlrrPlr77nrZYgPiBzdWlnYWl0YWlzYWt1XCA7CivlsIbmnaXlsZXmnJsgPiBzaG91cmFpdGVuYm91XCA7CivlsIvllY/oqr/mm7ggPiBqaW5tb25jaG91c2hvXCA7CivnnYDlvL7ot53pm6IgPiBjaGFrdWRhbmt5b3JpXCA7CivlpKnnnJ/niJvmvKsgPiB0ZW5zaGlucmFubWFuXCA7Civlj43lsITnpZ7ntYwgPiBoYW5zaGFzaGlua2VpXCA7CivpnZLoibLnlLPlkYogPiBhb2lyb3NoaW5rb2t1XCA7CivpgKDlvaLnvo7ooZMgPiB6b3VrZWliaWp1dHN1XCA7Civlj7LnmoTnj77lnKggPiBzaGl0ZWtpZ2VuemFpXCA7CivlhoXpg6jnlJ/mtLsgPiBuYWlidXNlaWthdHN1XCA7Civmp4vpgKDoqJjov7AgPiBrb3V6b3VraWp1dHN1XCA7CivlhbHlrZjlhbHmoIQgPiBreW91em9ua3lvdWVpXCA7CivluK/nirbnlrHnlrkgPiB0YWlqb3Vob3VzaGluXCA7Civnj77lrp/kuLvnvqkgPiBnZW5qaXRzdXNodWdpXCA7CivlubTjgIXmrbPjgIUgPiBuZW4nJ25lbnNhaXNhaVwgOwor56CU56m26KuW5paHID4ga2Vua3l1dXJvbmJ1blwgOwor5pyA57WC57eo5oiQID4gc2Fpc2h1dWhlbnNlaVwgOwor5bCC5L+u5a2m5qChID4gc2Vuc2h1dWdha2tvdVwgOwor5Y+z5Lit5ous5bynID4gbWlnaWNodXVrYWtrb1wgOwor5L+u6YGT6Zmi6ZW3ID4gc2h1dWRvdWluY2hvdVwgOwor5a62552j55u457aaID4ga2F0b2t1c291em9rdVwgOwor5a6/5ZG96KuW6ICFID4gc2h1a3VtZWlyb25qYVwgOwor5rip5bqm6Kq/56+AID4gb25kb2Nob3VzZXRzdVwgOwor6KiA6Kqe6IO95YqbID4gZ2VuZ29ub3VyeW9rdVwgOwor5Yip5r2k6L+95rGCID4gcmlqdW50c3Vpa3l1dVwgOwor57Wx546H55CG6KuWID4gdG91c290c3VyaXJvblwgOwor6Imv6aKo576O5L+XID4gcnlvdWZ1dWJpem9rdVwgOwor5Zu95rCR5a2m5qChID4ga29rdW1pbmdha2tvdVwgOwor5Y2Y54K655Sf5q6WID4gdGFuJydpc2Vpc2hva3VcIDsKK+S6jOWNgeaXpem8oCA+IGhhdHN1a2FuZXp1bWlcIDsKK+iyv+aYk+WPjuaUryA+IGJvdWVraXNodXVzaGlcIDsKK+S6uuW3peW/g+iHkyA+IGppbmtvdXNoaW56b3VcIDsKK+Wkqea0peaXpeWXoyA+IGFtYXRzdWhpdHN1Z2lcIDsKK+e+pOmbhOWJsuaLoCA+IGd1bicneXV1a2Fra3lvXCA7CivlhYjlpKnmooXmr5IgPiBzZW50ZW5iYWlkb2t1XCA7Civkurrlt6Xlv4PogrogPiBqaW5rb3VzaGluYmFpXCA7CivlkbzlkLjkuK3mnqIgPiBrb2t5dXVjaHV1c3V1XCA7Civpp5DnlZnpg6jpmoogPiBjaHV1cnl1dWJ1dGFpXCA7CivmrrrnlJ/npoHmlq0gPiBzZXNzaG91a2luZGFuXCA7CivnhKHpiq3pgYroiIggPiBtdXNlbicneXV1a3lvdVwgOwor5Li75bit5YWo5qipID4gc2h1c2VraXplbmtlblwgOwor55Sy5LmZ5LiZ5LiBID4ga291b3RzdWhlaXRlaVwgOwor6KOc5qyg6YG45oyZID4gaG9rZXRzdXNlbmt5b1wgOwor5b6u6YeP5YiG5p6QID4gYmlyeW91YnVuc2VraVwgOwor5Zyw5Z+f5Luj6KGoID4gY2hpaWtpZGFpaHlvdVwgOwor55S75LiA5Li7576pID4ga2FrdWl0c3VzaHVnaVwgOwor5Lqs6YO95aSn5a2mID4ga3lvdXRvZGFpZ2FrdVwgOwor55Sf5L2T5bel5a2mID4gc2VpdGFpa291Z2FrdVwgOwor5rOh5rKr5YCZ6KOcID4gaG91bWF0c3Vrb3Vob1wgOwor55u457aa6LKh55SjID4gc291em9rdXphaXNhblwgOwor5a++5oim5oiQ57i+ID4gdGFpc2Vuc2Vpc2VraVwgOwor5Zu96Zqb56m65rivID4ga29rdXNhaWt1dWtvdVwgOwor5Zu96YCj57eP5LyaID4ga29rdXJlbnNvdWthaVwgOwor5bCC6ZaA5pWZ6IKyID4gc2VubW9ua3lvdWlrdVwgOwor5Za25qWt5aCx5ZGKID4gZWlneW91aG91a29rdVwgOwor6KGA5ray5qSc5p+7ID4ga2V0c3Vla2lrZW5zYVwgOwor6Z2p5paw5Li7576pID4ga2FrdXNoaW5zaHVnaVwgOwor6Zyy5Ye65pmC6ZaTID4gcm9zaHV0c3VqaWthblwgOwor5oqV56Wo55So57SZID4gdG91aHlvdXlvdXNoaVwgOwor6Jas55So55+z6bm4ID4geWFrdXlvdXNla2tlblwgOwor5Y2Y54us6KGM5YuVID4gdGFuZG9rdWtvdWRvdVwgOwor5aSr5amm55Sf5rS7ID4gZnV1ZnVzZWlrYXRzdVwgOwor6IKJ5L2T6Zai5L+CID4gbmlrdXRhaWthbmtlaVwgOwor6LuN5LqL6K2m5a+fID4gZ3VuamlrZWlzYXRzdVwgOwor5paw5ama5peF6KGMID4gc2hpbmtvbnJ5b2tvdVwgOwor6Zm95oCn5Y+N5b+cID4geW91c2VpaGFuJydub3VcIDsKK+i7uOW3ruW/nOWKmyA+IGppa3VzYW91cnlva3VcIDsKK+S6uumhnuWtpuiAhSA+IGppbnJ1aWdha3VzaGFcIDsKK+atpuWjq+awl+izqiA+IGJ1c2hpa2lzaGl0c3VcIDsKK+esrOS4gOS6uuiAhSA+IGRhaWljaGluaW5zaGFcIDsKK+WutuW6reeUn+a0uyA+IGthdGVpc2Vpa2F0c3VcIDsKK+WNsemZuuS6uueJqSA+IGtpa2VuamluYnV0c3VcIDsKK+Wkp+WtpuaVmeaOiCA+IGRhaWdha3VreW91anVcIDsKK+WJjemAsumBi+WLlSA+IHplbnNoaW4nJ3VuZG91XCA7CivmtLvli5XmiJDmnpwgPiBrYXRzdWRvdXNlaWthXCA7Civnt4/lkIjlj47mlK8gPiBzb3Vnb3VzaHV1c2hpXCA7CivlkITpp4XlgZzou4ogPiBrYWt1ZWtpdGVpc2hhXCA7Civop6blqpLkvZznlKggPiBzaG9rdWJhaXNheW91XCA7Civnp5HlrabmioDooZMgPiBrYWdha3VnaWp1dHN1XCA7CivljbDliLfnlKjntJkgPiBpbnNhdHN1eW91c2hpXCA7CivkurrnmoToqLzmi6AgPiBqaW50ZWtpc2hvdWtvXCA7CivmipforbDmtLvli5UgPiBrb3VnaWthdHN1ZG91XCA7CivlhYjlj5blvpfngrkgPiBzZW5zaHV0b2t1dGVuXCA7CivopIflkIjkvIHmpa0gPiBmdWt1Z291a2lneW91XCA7CivnhKHlt67liKXntJogPiBtdXNhYmV0c3VreXV1XCA7CivlpJrlm73nsY3ou40gPiB0YWtva3VzZWtpZ3VuXCA7Civnq7bkuonkvqHmoLwgPiBreW91c291a2FrYWt1XCA7CivnpL7kvJrkurrmnqAgPiBzaGFrYWlqaW53YWt1XCA7CivllYbmpa3lnLDljLogPiBzaG91Z3lvdWNoaWt1XCA7CivooajlsaTmp4vpgKAgPiBoeW91c291a291em91XCA7Civnsr7npZ7ooZvnlJ8gPiBzZWlzaGluJydlaXNlaVwgOwor6Iiq56m65YaZ55yfID4ga291a3V1c2hhc2hpblwgOwor5LiK5piH5rCX5rWBID4gam91c2hvdWtpcnl1dVwgOwor5YyX5aSn6KW/5rSLID4ga2l0YXRhaXNlaXlvdVwgOwor6KGM5pS/5oyH5bCOID4gZ3lvdXNlaXNoaWRvdVwgOwor5a6a572u5ryB5qWtID4gdGVpY2hpZ3lvZ3lvdVwgOwor5pyA6auY57Sa5ZOBID4gc2Fpa291a3l1dWhpblwgOwor5Ye66aCt5ZG95LukID4gc2h1dHRvdW1laXJlaVwgOwor5Ye66KGA6YGO5aSaID4gc2h1a2tldHN1a2F0YVwgOwor6Zu75a2Q5Ye654mIID4gZGVuc2hpc2h1cHBhblwgOwor6Imy57Sg57Sw6IOeID4gc2hpa2lzb3NhaWJvdVwgOwor6Iqx5auB6KGj6KOzID4gaGFuYXlvbWVpc2hvdVwgOwor5bCP5Y+j54++6YeRID4ga29ndWNoaWdlbmtpblwgOwor5Y2a5a2m5aSa5omNID4gaGFrdWdha3V0YXNhaVwgOwor5aSW5qeY5aSn5ZCNID4gdG96YW1hZGFpbXlvdVwgOwor5Zu95rCR5Li75qipID4ga29rdW1pbnNodWtlblwgOwor5YWs6YeR5qiq6aCYID4ga291a2luJydvdXJ5b3VcIDsKK+i/kemDiui+sualrSA+IGtpbmtvdW5vdWd5b3VcIDsKK+WFqOWbveWkp+S8miA+IHplbmtva3V0YWlrYWlcIDsKK+WQn+mBiuipqeS6uiA+IGdpbicneXV1c2hpamluXCA7CivlhrfmsLTmkanmk6YgPiByZWlzdWltYXNhdHN1XCA7Civmm7LlrabpmL/kuJYgPiBreW9rdWdha3Vhc2VpXCA7CivkvqHmoLznq7bkuokgPiBrYWtha3VreW91c291XCA7CivnpoHmlq3nl4fnirYgPiBraW5kYW5zaG91am91XCA7Civnq5zmlJjomY7mkI8gPiByeXV1am91a29oYWt1XCA7CivmraPlkbPph43ph48gPiBzaG91bWlqdXVyeW91XCA7CivlhazoqLzlvbnloLQgPiBrb3VzaG91eWFrdWJhXCA7CivmuIXmtrzpo7LmlpkgPiBzZWlyeW91aW5yeW91XCA7Civmr5vnrqHnj77osaEgPiBtb3VrYW5nZW5zaG91XCA7CivkvZzmiKblnLDln58gPiBzYWt1c2VuY2hpaWtpXCA7Civlh7rlvLXml4XosrsgPiBzaHV0Y2hvdXJ5b2hpXCA7CivmlL7pgIHnlarntYQgPiBob3Vzb3ViYW5ndW1pXCA7CivmsLjkuYXno4Hnn7MgPiBlaWt5dXVqaXNoYWt1XCA7Civlo7Lmjpvli5jlrpogPiB1cmlrYWtla2Fuam91XCA7CivplpPlrq7mtbfls6EgPiBtYW1peWFrYWlreW91XCA7CivnjYTkuK3ml6XoqJggPiBnb2t1Y2h1dW5pa2tpXCA7CivmsojmgJ3pu5nogIMgPiBjaGluc2hpbW9ra291XCA7CivotoXlm73lrrbnmoQgPiBjaG91a29ra2F0ZWtpXCA7CivpmLLngavlu7rnr4kgPiBib3VrYWtlbmNoaWt1XCA7Civph5Hono3luILloLQgPiBraW4nJ3l1dXNoaWpvdVwgOwor6ZuG5Zuj5b+D55CGID4gc2h1dWRhbnNoaW5yaVwgOwor5YWl56S+6Kmm6aiTID4gbnl1dXNoYXNoaWtlblwgOwor6YG45oqe5YCk576kID4gc2VudGFrdWNoaWd1blwgOwor56K6546H6Kqk5beuID4ga2FrdXJpdHN1Z29zYVwgOwor56ys5Zub6ZqO57SaID4gZGFpeW9ua2Fpa3l1dVwgOwor6YCN6YGl5a2m5rS+ID4gc2hvdXlvdWdha3VoYVwgOwor6buS54K55ZGo5pyfID4ga29rdXRlbnNodXVraVwgOwor576O6KGT5a2m5qChID4gYmlqdXRzdWdha2tvdVwgOwor5Y2K5q275Y2K55SfID4gaGFuc2hpaGFuc2hvdVwgOwor5b+r6YCf6Zu76LuKID4ga2Fpc29rdWRlbnNoYVwgOwor5Y2X5YyX5oim5LqJID4gbmFuYm9rdXNlbnNvdVwgOwor5bCP5YWQ5ZaY5oGvID4gc2hvdW5pemVuc29rdVwgOwor5YaF5pS/5bmy5riJID4gbmFpc2Vpa2Fuc2hvdVwgOwor5YWs5bmz5pS/562WID4ga291aGVpc2Vpc2FrdVwgOwor5bel5qWt6KaP5qC8ID4ga291Z3lvdWtpa2FrdVwgOwor5Zub6KeS5Zub6Z2iID4gc2hpa2FrdXNoaW1lblwgOwor5bCR5bm05bCR5aWzID4gc2hvdW5lbnNob3Vqb1wgOwor5YaN6LKp5qWt6ICFID4gc2FpaGFuZ3lvdXNoYVwgOwor6LaF6auY6YCf5bqmID4gY2hvdWtvdXNva3Vkb1wgOwor6Kq/5p+75aCx5ZGKID4gY2hvdXNhaG91a29rdVwgOwor5rW36Zuj5a+p5YikID4ga2FpbmFuc2hpbnBhblwgOwor55CG5a2m5L+u5aOrID4gcmlnYWt1c2h1dXNoaVwgOwor5aSW55qE5qC55ougID4gZ2FpdGVraWtvbmt5b1wgOwor55Sf5ZG95bel5a2mID4gc2VpbWVpa291Z2FrdVwgOwor5aSp5L2R56We5YqpID4gdGVuJyd5dXVzaGluam9cIDsKK+WkluWbveaXheihjCA+IGdhaWtva3VyeW9rb3VcIDsKK+WFseWQjOawtOagkyA+IGt5b3Vkb3VzdWlzZW5cIDsKK+aLoeWkp+Wdh+ihoSA+IGtha3VkYWlraW5rb3VcIDsKK+WHseaXi+Wwhui7jSA+IGdhaXNlbnNob3VndW5cIDsKK+mbhuepjeWbnui3ryA+IHNodXVzZWtpa2Fpcm9cIDsKK+ijvumHjueUo+alrSA+IHN1c29ub3Nhbmd5b3VcIDsKK+mOrumtguW4sOelniA+IGNoaW5rb25raXNoaW5cIDsKK+WQiOagvOiAheWQjSA+IGdvdWtha3VzaGFtZWlcIDsKK+acieizh+agvOiAhSA+IHl1dXNoaWtha3VzaGFcIDsKK+WMluWtpuWPjeW/nCA+IGthZ2FrdWhhbicnbm91XCA7CivpnIDopoHkvpvntaYgPiBqdXlvdWt5b3VreXV1XCA7Civlj6zllprku6TnirYgPiBzaG91a2FucmVpam91XCA7CivoqabpqJPli4nlvLcgPiBzaGlrZW5iZW5reW91XCA7CivmuKnlrqTlirnmnpwgPiBvbnNoaXRzdWtvdWthXCA7CivmnInpiaTmnaHomasgPiB5dXVrb3Vqb3VjaHV1XCA7CivlhoXnmoTmoLnmi6AgPiBuYWl0ZWtpa29ua3lvXCA7Civov5HmtbfmvIHmpa0gPiBraW5rYWlneW9neW91XCA7CivmsbrmiKbmipXnpaggPiBrZXNzZW50b3VoeW91XCA7CivlhbHlkIznpL7kvJogPiBreW91ZG91c2hha2FpXCA7CivllJDojYnmqKHmp5ggPiBrYXJha3VzYW1veW91XCA7CivljIXnmq7liIfmlq0gPiBob3VoaXNldHN1ZGFuXCA7CivlrprmnJ/lj5blvJUgPiB0ZWlraXRvcmloaWtpXCA7Civkub7nh6XmtJfmv68gPiBrYW5zb3VzZW50YWt1XCA7Civpm4blkIjlkI3oqZ4gPiBzaHV1Z291bWVpc2hpXCA7CivlsI/lnovmlrDogZ4gPiBrb2dhdGFzaGluYnVuXCA7CivljLvnmYLmlr3oqK0gPiBpcnlvdXNoaXNldHN1XCA7Civli5XnianmsrnohIIgPiBkb3VidXRzdXl1c2hpXCA7Civlj43pnaLmlZnluKsgPiBoYW5tZW5reW91c2hpXCA7Civml6XluLjkvJroqbEgPiBuaWNoaWpvdWthaXdhXCA7CivovLjlhaXmpa3ogIUgPiB5dW55dXVneW91c2hhXCA7CivmqJnmupbkvqHmoLwgPiBoeW91anVua2FrYWt1XCA7CivkuI3lpormiYvooZMgPiBmdW5pbnNodWp1dHN1XCA7CivlsbHnjKvkuonorbAgPiB5YW1hbmVrb3NvdWdpXCA7Civlh7rkuJbplpPnmoQgPiBzaHVzc2VrZW50ZWtpXCA7CivlubTkuK3ooYzkuosgPiBuZW5jaHV1Z3lvdWppXCA7CivpjozlgInmmYLku6MgPiBrYW1ha3VyYWppZGFpXCA7Civngo7nl4fnl4Xlt6MgPiBlbnNob3VieW91c291XCA7Civms6jmhI/kurrniakgPiBjaHV1aWppbmJ1dHN1XCA7Civml6XmtKropqrlloQgPiBuaWtrb3VzaGluemVuXCA7Civov73liqDms6jmlocgPiB0c3Vpa2FjaHV1bW9uXCA7CivnrYblhpnnlaXlrZcgPiBoaXNzaGFyeWFrdWppXCA7CivnjK7ooYDpgYvli5UgPiBrZW5rZXRzdXVuZG91XCA7CivoiJ7lj7DoirjooZMgPiBidXRhaWdlaWp1dHN1XCA7CivoqabpqJPnm6PnnaMgPiBzaGlrZW5rYW50b2t1XCA7CivmkqTpoK3lvrnlsL4gPiB0ZXR0b3V0ZXRzdWJpXCA7Civnlr7poqjov4Xpm7cgPiBzaGlwcHV1amlucmFpXCA7CivluILloLTnkrDlooMgPiBzaGlqb3VrYW5reW91XCA7Civljp/miJDlsqnnn7MgPiBnZW5zZWlnYW5zZWtpXCA7CivliY3lpKfntbHpoJggPiB6ZW5kYWl0b3VyeW91XCA7CivlvLfliLbpgIHpgoQgPiBreW91c2Vpc291a2FuXCA7CivlkIzmpa3ntYTlkIggPiBkb3VneW91a3VtaWFpXCA7Civpm7vmsJfliYPliIAgPiBkZW5raWthbWlzb3JpXCA7Civkuovli5nlsYDplbcgPiBqaW11a3lva3VjaG91XCA7CivntYzmuIjmlLnpnakgPiBrZWl6YWlrYWlrYWt1XCA7CivmsJHkv5foirjog70gPiBtaW56b2t1Z2Vpbm91XCA7Civlj47nqavkuojmg7MgPiBzaHV1a2FrdXlvc291XCA7CivloanovpvonLvom4kgPiBzaGlva2FyYXRvbmJvXCA7CivntIbkvZnmm7LmipggPiB1eW9reW9rdXNldHN1XCA7CivmpbXotoXnn63ms6IgPiBnb2t1Y2hvdXRhbnBhXCA7CivkuLvmqKnkvrXniq8gPiBzaHVrZW5zaGlucGFuXCA7CivkuK3mgKfmtJfliaQgPiBjaHV1c2Vpc2VuemFpXCA7CivosqjnianliJfou4ogPiBrYW1vdHN1cmVzc2hhXCA7CivooYDmuIXnmYLms5UgPiBrZXNzZWlyeW91aG91XCA7CivmlrDmoYjnibnoqLEgPiBzaGluJydhbnRva2t5b1wgOwor5q275b6M56Gs55u0ID4gc2hpZ29rb3VjaG9rdVwgOwor5ZSv54mp5Li7576pID4geXVpYnV0c3VzaHVnaVwgOwor5pel6Zyy5oim5LqJID4gbmljaGlyb3NlbnNvdVwgOwor5pat6YOK56u25LqJID4gZGFua291a3lvdXNvdVwgOwor5ZCM55uf5p2h57SEID4gZG91bWVpam91eWFrdVwgOwor5LiA5pSr5Y2D6YeRID4gaWtrYWtrdXNlbmtpblwgOwor6ZqO57Sa6ZeY5LqJID4ga2Fpa3l1dXRvdXNvdVwgOwor54ax56Gs5YyW5YmkID4gbmV0c3Vrb3VrYXphaVwgOwor5bCC55So5Zue57eaID4gc2VuJyd5b3VrYWlzZW5cIDsKK+S6pOaPm+WtpueUnyA+IGtvdWthbmdha3VzZWlcIDsKK+WLlee3muioiOeUuyA+IGRvdXNlbmtlaWtha3VcIDsKK+awkeaUv+mVt+WumCA+IG1pbnNlaWNob3VrYW5cIDsKK+WIpOaWreS4reatoiA+IGhhbmRhbmNodXVzaGlcIDsKK+WxgOaJgOWIhuWykCA+IGt5b2t1c2hvYnVua2lcIDsKK+mAmuW4uOWbveS8miA+IHRzdXVqb3Vrb2trYWlcIDsKK+aVsOWApOino+aekCA+IHN1dWNoaWthaXNla2lcIDsKK+i7jeWCmeaLoeW8tSA+IGd1bmJpa2FrdWNob3VcIDsKK+mBqeiAheeUn+WtmCA+IHRla2lzaGFzZWl6b25cIDsKK+eyvuelnumRkeWumiA+IHNlaXNoaW5rYW50ZWlcIDsKK+mJhOmBk+i8uOmAgSA+IHRldHN1ZG91eXVzb3VcIDsKK+esrOS4iemajue0miA+IGRhaXNhbmthaWt5dXVcIDsKK+WNg+aFi+S4h+anmCA+IHNlbnRhaWJhbicneW91XCA7Civpm7vlrZDlt6XlraYgPiBkZW5zaGlrb3VnYWt1XCA7CivntYzmuIjnirbms4EgPiBrZWl6YWlqb3VreW91XCA7CivnpL7kvJrmlZnogrIgPiBzaGFrYWlreW91aWt1XCA7CivovrLogJXmsJHml48gPiBub3Vrb3VtaW56b2t1XCA7CivlhajouqvlhajpnIogPiB6ZW5zaGluemVucmVpXCA7Civlhaznp7Dos4fmnKwgPiBrb3VzaG91c2hpaG9uXCA7CivlpKflrZfniYflsbEgPiBvb2F6YWthdGF5YW1hXCA7CivolqzluKvlpoLmnaUgPiB5YWt1c2hpbnlvcmFpXCA7Civnmb7miKbpjKzno6ggPiBoeWFrdXNlbnJlbm1hXCA7CivlkIznm5/kvJHmoKEgPiBkb3VtZWlreXV1a291XCA7CivkuK3lpK7oqIjnlLsgPiBjaHV1b3VrZWlrYWt1XCA7CivkuK3lpK7pm4bmqKkgPiBjaHV1b3VzaHV1a2VuXCA7CivkuInop5Losr/mmJMgPiBzYW5rYWt1Ym91ZWtpXCA7CivliIbmnpDljJblraYgPiBidW5zZWtpa2FnYWt1XCA7CivlsJHlo67lo6vlrpggPiBzaG91c291c2hpa2FuXCA7Civms5XnmoTmoLnmi6AgPiBob3V0ZWtpa29ua3lvXCA7CivmrrrlrrPkuovku7YgPiBzYXRzdWdhaWppa2VuXCA7Civoh6rnhLblopflj44gPiBzaGl6ZW56b3VzaHV1XCA7Civoia/mgKfohavnmI0gPiByeW91c2Vpc2h1eW91XCA7CivpgJrli6Tpm7vou4ogPiB0c3V1a2luZGVuc2hhXCA7CivlsJHlubTniq/nvaogPiBzaG91bmVuaGFuemFpXCA7CivmsLTphbjljJbniakgPiBzdWlzYW5rYWJ1dHN1XCA7CivopqrmiJrnn6Xlt7EgPiBzaGluc2VraWNoaWtpXCA7CivljZjni6zmsbrnrpcgPiB0YW5kb2t1a2Vzc2FuXCA7Civlm73pmpvmg4Xli6IgPiBrb2t1c2Fpam91c2VpXCA7CivooZfpoK3mvJToqqwgPiBnYWl0b3VlbnpldHN1XCA7CivmrKPllpzpm4Douo0gPiBraW5raWpha3V5YWt1XCA7Civlk4HnqK7mlLnoia8gPiBoaW5zaHVrYWlyeW91XCA7Civlhaznp7DppqzlipsgPiBrb3VzaG91YmFyaWtpXCA7Civlm5vlha3mmYLkuK0gPiBzaGlyb2t1amljaHV1XCA7CivkuqTpgJrpga7mlq0gPiBrb3V0c3V1c2hhZGFuXCA7CivlpKflrabntJvkuokgPiBkYWlnYWt1ZnVuc291XCA7CivosqHmlL/lj47mlK8gPiB6YWlzZWlzaHV1c2hpXCA7CivooYblj4LkuKHpmaIgPiBzaHV1c2FucnlvdWluXCA7CivogJDngavlu7rnr4kgPiB0YWlrYWtlbmNoaWt1XCA7CivoppblipvmpJzmn7sgPiBzaGlyeW9rdWtlbnNhXCA7CivlsI/liIDntLDlt6UgPiBrb2dhdGFuYXphaWt1XCA7Civos6rnlpHlv5znrZQgPiBzaGl0c3VnaW91dG91XCA7CivmjZzmn7vlvZPlsYAgPiBzb3VzYXRvdWt5b2t1XCA7CivnhafokYnni4LoqIAgPiB0ZXJpaGFreW91Z2VuXCA7Civlh7rlvoHou43kurogPiBzaHVzc2VpZ3VuamluXCA7CivmlL7lsITog73pm7IgPiBob3VzaGFub3VndW1vXCA7CivnpL7kvJrmlL/nrZYgPiBzaGFrYWlzZWlzYWt1XCA7Civpm7vmpbXpm7vkvY0gPiBkZW5reW9rdWRlbicnaVwgOwor5Lq65bel6YCP5p6QID4gamlua291dG91c2VraVwgOwor6KSH5ZCI5aqS5L2TID4gZnVrdWdvdWJhaXRhaVwgOwor5L2P5rCR5oqV56WoID4ganV1bWludG91aHlvdVwgOwor5bel5qWt5Zyw5bivID4ga291Z3lvdWNoaXRhaVwgOwor5ZG85ZC45Zuw6ZujID4ga29reXV1a29uJyduYW5cIDsKK+mkiuitt+aWveiorSA+IHlvdWdvc2hpc2V0c3VcIDsKK+i8uOWHuuimj+WItiA+IHl1c2h1dHN1a2lzZWlcIDsKK+aIpuWKm+e1hOaIkCA+IHNlbnJ5b2t1c29zZWlcIDsKK+axuumBuOaKleelqCA+IGtlc3NlbnRvdWh5b3VcIDsKK+e1seS4gOimi+inoyA+IHRvdWl0c3VrZW5rYWlcIDsKK+WCrOecoOeZguazlSA+IHNhaW1pbnJ5b3Vob3VcIDsKK+W3pealreijveWTgSA+IGtvdWd5b3VzZWloaW5cIDsKK+W9ueS6uuagueaApyA+IHlha3VuaW5rb25qb3VcIDsKK+eLrOaIv+ebo+emgSA+IGRva3Vib3VrYW5raW5cIDsKK+WwjumAmuaKteaKlyA+IGRvdXRzdXV0ZWlrb3VcIDsKK+WNlOiqv+S4u+e+qSA+IGt5b3VjaG91c2h1Z2lcIDsKK+S8muioiOWgseWRiiA+IGthaWtlaWhvdWtva3VcIDsKK+WPsOa5vua1t+WzoSA+IHRhaXdhbmthaWt5b3VcIDsKK+aXpea4heaIpuS6iSA+IG5pc3NoaW5zZW5zb3VcIDsKK+Wuo+iogOeZuuihqCA+IHNlbmdlbmhhcHB5b3VcIDsKK+WkqeS9k+WGmeecnyA+IHRlbnRhaXNoYXNoaW5cIDsKK+mHjemHj+WZuOaVsCA+IGp1dXJ5b3V0b25zdXVcIDsKK+aYjumPoeatouawtCA+IG1laWt5b3VzaGlzdWlcIDsKK+W5tOmWk+ioiOeUuyA+IG5lbmthbmtlaWtha3VcIDsKK+WPo+i/sOethuiomCA+IGtvdWp1dHN1aGlra2lcIDsKK+Wbvemam+mAmuiyqCA+IGtva3VzYWl0c3V1a2FcIDsKK+WBpeW6t+iouuaWrSA+IGtlbmtvdXNoaW5kYW5cIDsKK+ahg+WxseaZguS7oyA+IG1vbW95YW1hamlkYWlcIDsKK+iBt+WgtOe1kOWpmiA+IHNob2t1YmFrZWtrb25cIDsKK+eSsOWig+WVj+mhjCA+IGthbmt5b3Vtb25kYWlcIDsKK+iovOS6uuWWmuWVjyA+IHNob3VuaW5rYW5tb25cIDsKK+aUu+aSg+aWueWQkSA+IGtvdWdla2lob3Vrb3VcIDsKK+ertuS6ieWjsuiytyA+IGt5b3Vzb3ViYWliYWlcIDsKK+iRl+S9nOaoqeazlSA+IGNob3Nha3VrZW5ob3VcIDsKK+Wbvemam+ekvuS8miA+IGtva3VzYWlzaGFrYWlcIDsKK+aWsOWItumrmOagoSA+IHNoaW5zZWlrb3Vrb3VcIDsKK+WvhOeUn+iZq+eXhyA+IGtpc2VpY2h1dXNob3VcIDsKK+S4reaKmOW4veWtkCA+IG5ha2FvcmVib3VzaGlcIDsKK+WFrOmWi+e3tOe/kiA+IGtvdWthaXJlbnNodXVcIDsKK+e1jOa4iOaUv+etliA+IGtlaXphaXNlaXNha3VcIDsKK+WQiOaIkOWGmeecnyA+IGdvdXNlaXNoYXNoaW5cIDsKK+aWsOmAsuS9nOWutiA+IHNoaW5zaGluc2Fra2FcIDsKK+mFuOe0oOS+m+e1piA+IHNhbnNva3lvdWt5dXVcIDsKK+S6pOmAmuWFrOekviA+IGtvdXRzdXVrb3VzaGFcIDsKK+a0u+auuuiHquWcqCA+IGthc3NhdHN1aml6YWlcIDsKK+mbu+mAgeWGmeecnyA+IGRlbnNvdXNoYXNoaW5cIDsKK+WFqOefpeWFqOiDvSA+IHplbmNoaXplbicnbm91XCA7Civlm73li6Loqr/mn7sgPiBrb2t1c2VpY2hvdXNhXCA7CivmtYHpgJrmqZ/mp4sgPiByeXV1dHN1dWtpa291XCA7CivlhbXlmajovLjlh7ogPiBoZWlraXl1c2h1dHN1XCA7CivlpKnnmofltIfmi50gPiB0ZW4nJ25vdXN1dWhhaVwgOwor5L+d6Ki85Lq66KaBID4gaG9zaG91bmluJyd5b3VcIDsKK+a1rumBiueUn+eJqSA+IGZ1eXV1c2VpYnV0c3VcIDsKK+e1gui6q+S/nemZuiA+IHNodXVzaGluaG9rZW5cIDsKK+aHuOiznuirluaWhyA+IGtlbnNob3Vyb25idW5cIDsKK+W4guWgtOaUuemdqSA+IHNoaWpvdWthaWtha3VcIDsKK+mbu+WKm+mcgOimgSA+IGRlbnJ5b2t1anV5b3VcIDsKK+iHqOW6iuWwi+WVjyA+IHJpbnNob3VqaW5tb25cIDsKK+mZsOaltee3mueuoSA+IGlua3lva3VzZW5rYW5cIDsKK+aXi+WFieWIhuaekCA+IHNlbmtvdWJ1bnNla2lcIDsKK+WMluefs+eHg+aWmSA+IGthc2VraW5lbnJ5b3VcIDsKK+mbu+S/oeeCuuabvyA+IGRlbnNoaW5rYXdhc2VcIDsKK+aHkOS4rembu+eBryA+IGthaWNodXVkZW50b3VcIDsKK+aJjeiJsuWFvOWCmSA+IHNhaXNob2t1a2VuYmlcIDsKK+aMh+WwjuimgemgmCA+IHNoaWRvdXlvdXJ5b3VcIDsKK+mDteS+v+W5tOmHkSA+IHl1dWJpbicnbmVua2luXCA7CivplqLpgKPllYblk4EgPiBrYW5yZW5zaG91aGluXCA7CivpmZDnlYznirbms4EgPiBnZW5rYWlqb3VreW91XCA7Civnj77lnKjlrozkuoYgPiBnZW56YWlrYW5yeW91XCA7CivliLbntITkvJ3mkKwgPiBzZWl5YWt1ZGVucGFuXCA7CivkuLjkuIDpgLHplpMgPiBtYXJ1aXNzaHV1a2FuXCA7Civlt6Xmpa3lm6PlnLAgPiBrb3VneW91ZGFuY2hpXCA7CivmpbXmpb3mtYTlnJ8gPiBnb2t1cmFrdWpvdWRvXCA7CivljJblrabliIbmnpAgPiBrYWdha3VidW5zZWtpXCA7CivlkIzngrnmsbrli50gPiBkb3V0ZW5rZXNzaG91XCA7CivkvZPlpJbpm6LohLEgPiB0YWlnYWlyaWRhdHN1XCA7CivnlJ/nianlhbXlmaggPiBzZWlidXRzdWhlaWtpXCA7CivljZjpn7Pnr4Doqp4gPiB0YW4nJ29uc2V0c3Vnb1wgOwor5pS75pKD6ZqK5b2iID4ga291Z2VraXRhaWtlaVwgOwor5rOV5Lq65omA5b6XID4gaG91amluc2hvdG9rdVwgOwor5aSn6YCG5LqL5Lu2ID4gdGFpZ3lha3VqaWtlblwgOwor5Y6f5aeL5pWZ5LyaID4gZ2Vuc2hpa3lvdWthaVwgOwor5L6h5qC85Y2U5a6aID4ga2FrYWt1a3lvdXRlaVwgOwor5a+T5oSP5bCP6KqsID4gZ3V1aXNob3VzZXRzdVwgOwor5bCC6ZaA5oqA6KGTID4gc2VubW9uZ2lqdXRzdVwgOwor5ouh5by15Y+v6IO9ID4ga2FrdWNob3VrYW5vdVwgOwor5oCl6YCy5Li7576pID4ga3l1dXNoaW5zaHVnaVwgOwor6KiY5b+15byP5YW4ID4ga2luZW5zaGlraXRlblwgOwor56u25ZCI6ISx57eaID4ga3lvdWdvdWRhc3NlblwgOwor5pqR5Lit5LyR5pqHID4gc2hvY2h1dWt5dXVrYVwgOwor57mB5paH57if56S8ID4gaGFuYnVuam9rdXJlaVwgOwor55uu5qiZ566h55CGID4gbW9rdWh5b3VrYW5yaVwgOwor5pa55ZCR6Kaz5b+1ID4gaG91a291a2FuJyduZW5cIDsKK+a1t+W6lembu+S/oSA+IGthaXRlaWRlbnNoaW5cIDsKK+alreeVjOWLleWQkSA+IGd5b3VrYWlkb3Vrb3VcIDsKK+W/heimgee1jOiyuyA+IGhpdHN1eW91a2VpaGlcIDsKK+awtOeOieaooeanmCA+IG1penV0YW1hbW95b3VcIDsKK+WHuuW+geWutuaXjyA+IHNodXNzZWlrYXpva3VcIDsKK+e1jOW4uOWPjuaUryA+IGtlaWpvdXNodXVzaGlcIDsKK+WcsOeQg+enkeWtpiA+IGNoaWt5dXVrYWdha3VcIDsKK+aDheWgseaKgOihkyA+IGpvdWhvdWdpanV0c3VcIDsKK+epuuS4reWIhuinoyA+IGt1dWNodXVidW5rYWlcIDsKK+W8t+WItuWKtOWDjSA+IGt5b3VzZWlyb3Vkb3VcIDsKK+majue0muaEj+itmCA+IGthaWt5dXVpc2hpa2lcIDsKK+WNmuWjq+irluaWhyA+IGhha3VzaGlyb25idW5cIDsKK+S6uuagvOW9ouaIkCA+IGppbmtha3VrZWlzZWlcIDsKK+e1ueezuOe0oee4viA+IGtlbnNoaWJvdXNla2lcIDsKK+iBt+WgtOmXmOS6iSA+IHNob2t1YmF0b3Vzb3VcIDsKK+aVmeiCsuWtpumDqCA+IGt5b3Vpa3VnYWt1YnVcIDsKK+WkiemAn+ijhee9riA+IGhlbnNva3Vzb3VjaGlcIDsKK+ecn+WGhuecn+ePoCA+IHNoaW4nJ2Vuc2hpbmp1XCA7Civlm73msJHntYzmuIggPiBrb2t1bWlua2VpemFpXCA7CivlhoXpnaLmj4/lhpkgPiBuYWltZW5ieW91c2hhXCA7CivlqpLkvZPntYLnq68gPiBiYWl0YWlzaHV1dGFuXCA7Civlv4PnkIbnmYLms5UgPiBzaGlucmlyeW91aG91XCA7CivmgKfnmoTplqLkv4IgPiBzZWl0ZWtpa2Fua2VpXCA7CivnhKHpiq3po7Lpo58gPiBtdXNlbicnaW5zaG9rdVwgOwor56+E55aH5paH5rOVID4gaGFuY2h1dWJ1bnBvdVwgOwor6ZW35pyf5YCf5qy+ID4gY2hvdWtpc2hha2thblwgOwor5YWo5L2T6ZuG5ZCIID4gemVudGFpc2h1dWdvdVwgOwor5Y+z5bCP5ous5bynID4gbWlnaXNob3VrYWtrb1wgOwor5Luu5oOz5pW15Zu9ID4ga2Fzb3V0ZWtpa29rdVwgOwor5qW15qW95b6A55SfID4gZ29rdXJha3VvdWpvdVwgOwor5Yid562J5pWZ6IKyID4gc2hvdG91a3lvdWlrdVwgOwor6KGM5pS/5ZG95LukID4gZ3lvdXNlaW1laXJlaVwgOwor5a++5Zyw5pS75pKDID4gdGFpY2hpa291Z2VraVwgOwor6Ieq54S25o+P5YaZID4gc2hpemVuYnlvdXNoYVwgOwor6YeR6J6N6LOH5pysID4ga2luJyd5dXVzaGlob25cIDsKK+eEoeiDveWKm+iAhSA+IG11bm91cnlva3VzaGFcIDsKK+WMluWtpuW3pealrSA+IGthZ2FrdWtvdWd5b3VcIDsKK+ihjOaUv+WMuueUuyA+IGd5b3VzZWlrdWtha3VcIDsKK+Wtpue/kui+nuWFuCA+IGdha3VzaHV1aml0ZW5cIDsKK+mWqOmWpeaUv+ayuyA+IGtlaWJhdHN1c2VpamlcIDsKK+S6i+alreaLoeWFhSA+IGppZ3lvdWtha3VqdXVcIDsKK+i+suadkeW3pealrSA+IG5vdXNvbmtvdWd5b3VcIDsKK+eni+mbqOWJjee3miA+IGFraXNhbWV6ZW5zZW5cIDsKK+WFseWQjOi+suWgtCA+IGt5b3Vkb3Vub3Vqb3VcIDsKK+Wls+aoqeaLoeW8tSA+IGpva2Vua2FrdWNob3VcIDsKK+ism+e/kuS8muWgtCA+IGtvdXNodXVrYWlqb3VcIDsKK+axmuafk+eJqeizqiA+IG9zZW5idXNzaGl0c3VcIDsKK+eKtuazgeWIpOaWrSA+IGpvdWt5b3VoYW5kYW5cIDsKK+W9k+ipsuWumOW6gSA+IHRvdWdhaWthbmNob3VcIDsKK+S7suS7i+iyv+aYkyA+IGNodXVrYWlib3Vla2lcIDsKK+WbveWGheW4guWgtCA+IGtva3VuYWlzaGlqb3VcIDsKK+S4gOaemueci+advyA+IGljaGltYWlrYW5iYW5cIDsKK+eEoee3mumAmuS/oSA+IG11c2VudHN1dXNoaW5cIDsKK+e1jOa4iOWkp+WbvSA+IGtlaXphaXRhaWtva3VcIDsKK+WPjeekvuS8mueahCA+IGhhbnNoYWthaXRla2lcIDsKK+S4gOWIqeS4gOWusyA+IGljaGlyaWljaGlnYWlcIDsKK+S6jOW+i+iDjOWPjSA+IG5pcml0c3VoYWloYW5cIDsKK+W+qeWFg+S9nOalrSA+IGZ1a3VnZW5zYWd5b3VcIDsKK+S6uumWk+eIhuW8viA+IG5pbmdlbmJha3VkYW5cIDsKK+Wto+evgOWKtOWDjSA+IGtpc2V0c3Vyb3Vkb3VcIDsKK+mZuOi7jeWkp+iHoyA+IHJpa3VndW5kYWlqaW5cIDsKK+aWreaKteaKl+inkiA+IGRhbnRlaWtvdWtha3VcIDsKK+mAmuS/oeapn+mWoiA+IHRzdXVzaGlua2lrYW5cIDsKK+WGmeecn+WHuOeJiCA+IHNoYXNoaW50b3BwYW5cIDsKK+WMluWtpueZguazlSA+IGthZ2FrdXJ5b3Vob3VcIDsKK+e2see0gOeym+atoyA+IGtvdWtpc2h1a3VzZWlcIDsKK+eojuWItuaUuemdqSA+IHplaXNlaWthaWtha3VcIDsKK+iqv+WBnOijgeWIpCA+IGNob3V0ZWlzYWliYW5cIDsKK+eEoee9quWIpOaxuiA+IG11emFpaGFua2V0c3VcIDsKK+i7jeS6i+aIpueVpSA+IGd1bmppc2Vucnlha3VcIDsKK+iHqOW6iuippumokyA+IHJpbnNob3VzaGlrZW5cIDsKK+mYsuatouaMh+mHnSA+IGJvdXNoaXNoaXNoaW5cIDsKK+awl+ixoeims+a4rCA+IGtpc2hvdWthbnNva3VcIDsKK+iInuWPsOeUn+a0uyA+IGJ1dGFpc2Vpa2F0c3VcIDsKK+Wkp+WQjeaXheihjCA+IGRhaW15b3VyeW9rb3VcIDsKK+S9nOalreeZguazlSA+IHNhZ3lvdXJ5b3Vob3VcIDsKK+WkluWbveeCuuabvyA+IGdhaWtva3VrYXdhc2VcIDsKK+mDveeri+mrmOagoSA+IHRvcml0c3Vrb3Vrb3VcIDsKK+W9ouW8j+S4u+e+qSA+IGtlaXNoaWtpc2h1Z2lcIDsKK+WMluWtpuW3peWtpiA+IGthZ2FrdWtvdWdha3VcIDsKK+inkumBi+WLlemHjyA+IGtha3V1bmRvdXJ5b3VcIDsKK+WujOWFqOeEoeasoCA+IGthbnplbm11a2V0c3VcIDsKK+aUv+etluaxuuWumiA+IHNlaXNha3VrZXR0ZWlcIDsKK+W+queSsOWwj+aVsCA+IGp1bmthbnNob3VzdXVcIDsKK+Wkp+mfk+awkeWbvSA+IGRhaWthbm1pbmtva3VcIDsKK+mBqeeUqOalreWLmSA+IHRla2l5b3VneW91bXVcIDsKK+aIpuS6ieaWh+WtpiA+IHNlbnNvdWJ1bmdha3VcIDsKK+S5neWkqeebtOS4iyA+IGt5dXV0ZW5jaG9ra2FcIDsKK+mdouW+k+iFueiDjCA+IG1lbmp1dWZ1a3VoYWlcIDsKK+eiuuS/neWkseaVlyA+IGtha3Vob3NoaXBwYWlcIDsKK+WFsemAmuiogOiqniA+IGt5b3V0c3V1Z2VuZ29cIDsKK+W8t+WItuWHpuWIhiA+IGt5b3VzZWlzaG9idW5cIDsKK+aWreW0lue1tuWjgSA+IGRhbmdhaXplcHBla2lcIDsKK+eUo+alreekvuS8miA+IHNhbmd5b3VzaGFrYWlcIDsKK+WQhOeoruWtpuagoSA+IGtha3VzaHVnYWtrb3VcIDsKK+WIhuino+WGmeecnyA+IGJ1bmthaXNoYXNoaW5cIDsKK+WNsOWIt+WqkuS9kyA+IGluc2F0c3ViYWl0YWlcIDsKK+eglOeptuaJgOWgsSA+IGtlbmt5dXVzaG9ob3VcIDsKK+S5seWwhOS5seaSgyA+IHJhbnNoYXJhbmdla2lcIDsKK+ajkuiFuee1tuWAkiA+IGhvdWZ1a3V6ZXR0b3VcIDsKK+eJueioseS+teWusyA+IHRva2t5b3NoaW5nYWlcIDsKK+Wumumhjeiyr+mHkSA+IHRlaWdha3VjaG9raW5cIDsKK+WFrOihhuS8neWLlSA+IGtvdXNodXVkZW5kb3VcIDsKK+mJhOmBk+mmrOi7iiA+IHRldHN1ZG91YmFzaGFcIDsKK+WGheWbveeCuuabvyA+IG5haWtva3VrYXdhc2VcIDsKK+eorueoruanmOanmCA+IHNodWp1c2FtYXphbWFcIDsKK+WWnOiJsua6gOmdoiA+IGtpc2hva3VtYW5tZW5cIDsKK+W8geWIpee0oOaApyA+IGJlbmJldHN1c29zZWlcIDsKK+S9nOaIpuWRveS7pCA+IHNha3VzZW5tZWlyZWlcIDsKK+itsOmVt+iBt+aoqSA+IGdpY2hvdXNob2trZW5cIDsKK+WVk+iSmeaAnea9riA+IGtlaW1vdXNoaWNob3VcIDsKK+WFrOWovOWFqOW7gyA+IGtvdXNob3V6ZW5wYWlcIDsKK+WvvumdouS6pOmAmiA+IHRhaW1lbmtvdXRzdXVcIDsKK+S4gOWVj+S4gOetlCA+IGljaGltb24nJ2l0dG91XCA7Civpm7vlrZDlr4bluqYgPiBkZW5zaGltaXRzdWRvXCA7CivotoXkvY7kvqHmoLwgPiBjaG91dGVpa2FrYWt1XCA7CivkuIDmi6zlo7LosrcgPiBpa2thdHN1YmFpYmFpXCA7CivliLbntITmnaHku7YgPiBzZWl5YWt1am91a2VuXCA7CivkvJHmiKbkvJroq4cgPiBreXV1c2Vua2FpZGFuXCA7CivniYjmqKnkvrXlrrMgPiBoYW5rZW5zaGluZ2FpXCA7CivpmpTpm6Lnl4Xmo58gPiBrYWt1cmlieW91dG91XCA7CivnlJ/prq7mlpnlk4EgPiBzZWlzZW5yeW91aGluXCA7CivkuIrmmIflgr7lkJEgPiBqb3VzaG91a2Vpa291XCA7CivkuI3ms5XlhaXlm70gPiBmdWhvdW55dXVnb2t1XCA7CivmlZnppIrlrabpg6ggPiBreW91eW91Z2FrdWJ1XCA7Civpq5jkv6HpoLzmgKcgPiBrb3VzaGlucmFpc2VpXCA7CivlrrblroXmjZzntKIgPiBrYXRha3Vzb3VzYWt1XCA7CivoqIjnlLvntYzmuIggPiBrZWlrYWt1a2VpemFpXCA7CivkuInou7joqabpqJMgPiBzYW5qaWt1c2hpa2VuXCA7CivmnIDntYLmrrXpmo4gPiBzYWlzaHV1ZGFua2FpXCA7Civlj47lhaXljbDntJkgPiBzaHV1bnl1dWluc2hpXCA7CivljYrnhp/nt7Tlt6UgPiBoYW5qdWt1cmVua291XCA7CivlhpnnnJ/liKTlrpogPiBzaGFzaGluaGFudGVpXCA7CivntYzmuIjoprPlv7UgPiBrZWl6YWlrYW4nJ25lblwgOwor6LOD6YeR5rC05rqWID4gY2hpbmdpbnN1aWp1blwgOwor5Za25qWt5Y+O5pSvID4gZWlneW91c2h1dXNoaVwgOwor5LiJ55u45Lqk5rWBID4gc2Fuc291a291cnl1dVwgOwor57WM5Za25oim55WlID4ga2VpZWlzZW5yeWFrdVwgOwor5pil5aSP56eL5YasID4gc2h1bmthc2h1dXRvdVwgOwor54Sm54K55rex5bqmID4gc2hvdXRlbnNoaW5kb1wgOwor5LiA5pmC5omA5b6XID4gaWNoaWppc2hvdG9rdVwgOwor5p2J6Iqx57KJ55eHID4gc3VnaWthZnVuc2hvdVwgOwor5Lq65rCR5oqV56WoID4gamlubWludG91aHlvdVwgOwor5ZCI5b6T6YCj6KGhID4gZ2Fzc2hvdXJlbmtvdVwgOwor54OP6YeO6LGM6LGGID4ga2FyYXN1bm9lbmRvdVwgOwor54Sh6Iq45aSn6aOfID4gbXVnZWl0YWlzaG9rdVwgOwor5Zu96Zqb6YCj5ZCIID4ga29rdXNhaXJlbmdvdVwgOwor54ax5Lqk5o+b5ZmoID4gbmV0c3Vrb3VrYW5raVwgOwor5a6H5a6Z6ZaL55m6ID4gdWNodXVrYWloYXRzdVwgOwor5ryi5paH6KiT6KqtID4ga2FuYnVua3VuZG9rdVwgOwor56m66ZaT5oSf6KaaID4ga3V1a2Fua2Fua2FrdVwgOwor5LqM5Lq65LiJ6ISaID4gbmluaW5zYW5reWFrdVwgOwor5qip5Yqb5Li7576pID4ga2Vucnlva3VzaHVnaVwgOwor5Yuf6ZuG5bqD5ZGKID4gYm9zaHV1a291a29rdVwgOwor5a2m57+S55CG6KuWID4gZ2FrdXNodXVyaXJvblwgOwor6aeQ6LuK56aB5q2iID4gY2h1dXNoYWtpbnNoaVwgOwor5YWx5ZCM5a6j6KiAID4ga3lvdWRvdXNlbmdlblwgOwor5aSp5Zyw56We5piOID4gdGVuY2hpc2hpbm1laVwgOwor6Kmz57Sw5oOF5aCxID4gc2hvdXNhaWpvdWhvdVwgOwor54mb6aOy6aas6aOfID4gZ3l1dWluYmFzaG9rdVwgOwor6YeR5Z+O6YmE5aOBID4ga2luam91dGVwcGVraVwgOwor6ZuG5Lit6Kyb576pID4gc2h1dWNodXVrb3VnaVwgOwor5aSJ5b2i6Jmr6aGeID4gaGVua2VpY2h1dXJ1aVwgOwor5YWs55qE5bm06YeRID4ga291dGVraW5lbmtpblwgOwor6YCx5YiK6ZuR6KqMID4gc2h1dWthbnphc3NoaVwgOwor57Sh57i+5bel5aC0ID4gYm91c2VraWtvdWpvdVwgOwor5Yid562J5pWw5a2mID4gc2hvdG91c3V1Z2FrdVwgOwor5q6L5a2Y5pel5pWwID4gemFuc29uJyduaXNzdXVcIDsKK+Wbvemam+WxlemWiyA+IGtva3VzYWl0ZW5rYWlcIDsKK+W5tOWKn+W6j+WIlyA+IG5lbmtvdWpvcmV0c3VcIDsKK+WVhualremDveW4giA+IHNob3VneW91dG9zaGlcIDsKK+S4remAlOmAgOWtpiA+IGNodXV0b3RhaWdha3VcIDsKK+WFseWQjOS8muimiyA+IGt5b3Vkb3VrYWlrZW5cIDsKK+aGsuazleWtpuiAhSA+IGtlbnBvdWdha3VzaGFcIDsKK+aApei7ouebtOS4iyA+IGt5dXV0ZW5jaG9ra2FcIDsKK+WOn+WtkOeIhuW8viA+IGdlbnNoaWJha3VkYW5cIDsKK+eZu+WxsemJhOmBkyA+IHRvemFudGV0c3Vkb3VcIDsKK+eJqeeQhuWMluWtpiA+IGJ1dHN1cmlrYWdha3VcIDsKK+e1puawtOWItumZkCA+IGt5dXVzdWlzZWlnZW5cIDsKK+acnemuruaIpuS6iSA+IGNob3VzZW5zZW5zb3VcIDsKK+WrjOawl+eUn+eJqSA+IGtlbmtpc2VpYnV0c3VcIDsKK+mBuOaKnueKtuaFiyA+IHNlbnRha3Vqb3V0YWlcIDsKK+mrmOWzsOWFq+W6pyA+IGtvdWhvdWhhY2hpemFcIDsKK+S4jea2iOWMlueJqSA+IGZ1c2hvdWthYnV0c3VcIDsKK+azleeahOaWh+abuCA+IGhvdXRla2lidW5zaG9cIDsKK+enmOWvhumBuOaMmSA+IGhpbWl0c3VzZW5reW9cIDsKK+WcsOeQg+WMluWtpiA+IGNoaWt5dXVrYWdha3VcIDsKK+aWsOeGseW4r+WMuiA+IHNoaW4nJ25ldHRhaWt1XCA7CivntZDlqZrmjIfovKogPiBrZWtrb24nJ3l1Yml3YVwgOwor5ZaE6Zqj5Y+L5aW9ID4gemVucmluJyd5dXVrb3VcIDsKK+WPl+WPluaJi+W9oiA+IHVrZXRvcml0ZWdhdGFcIDsKK+axuueul+WgseWRiiA+IGtlc3NhbmhvdWtva3VcIDsKK+W/g+eQhuWtpuiAhSA+IHNoaW5yaWdha3VzaGFcIDsKK+irlueQhuW9ouW8jyA+IHJvbnJpa2Vpc2hpa2lcIDsKK+S9jumgreW5s+i6qyA+IHRlaXRvdWhlaXNoaW5cIDsKK+a3t+WQiOi+sualrSA+IGtvbmdvdW5vdWd5b3VcIDsKK+aWh+iKuOS9nOWTgSA+IGJ1bmdlaXNha3VoaW5cIDsKK+aciemWkemajue0miA+IHl1dWthbmthaWt5dXVcIDsKK+WPi+Wlveadoee0hCA+IHl1dWtvdWpvdXlha3VcIDsKK+WJh+WkqeWOu+engSA+IHNva3V0ZW5reW9zaGlcIDsKK+WGmeWun+S4u+e+qSA+IHNoYWppdHN1c2h1Z2lcIDsKK+Wbvemam+W4guWgtCA+IGtva3VzYWlzaGlqb3VcIDsKK+S6jOmHjeeUn+a0uyA+IG5panV1c2Vpa2F0c3VcIDsKK+iHqOapn+ebruaomSA+IHJpbmtpbW9rdWh5b3VcIDsKK+WVhualreeZu+iomCA+IHNob3VneW91dG91a2lcIDsKK+m7hOiJsuS6uueoriA+IG91c2hva3VqaW5zaHVcIDsKK+WRqOazouWkieiqvyA+IHNodXVoYWhlbmNob3VcIDsKK+asoOmZpeWVhuWTgSA+IGtla2thbnNob3VoaW5cIDsKK+W+k+WxnuWkieaVsCA+IGp1dXpva3VoZW5zdXVcIDsKK+aXoue0hOihqOePviA+IGtpeWFrdWh5b3VnZW5cIDsKK+S4jeiJr+WwkeW5tCA+IGZ1cnlvdXNob3VuZW5cIDsKK+a4rOmHj+aKgOW4qyA+IHNva3VyeW91Z2lzaGlcIDsKK+ajrue+heS4h+ixoSA+IHNoaW5yYWJhbnNob3VcIDsKK+eUo+alreani+mAoCA+IHNhbmd5b3Vrb3V6b3VcIDsKK+asp+W3nuiruOWbvSA+IG91c2h1dXNob2tva3VcIDsKK+mAmuWLpOWcsOeNhCA+IHRzdXVraW5qaWdva3VcIDsKK+aYvOmWk+S6uuWPoyA+IGNodXVrYW5qaW5rb3VcIDsKK+aAp+agvOWIpOaWrSA+IHNlaWtha3VoYW5kYW5cIDsKK+S/oemgvOmWouS/giA+IHNoaW5yYWlrYW5rZWlcIDsKK+WQjOacn+mAmuS/oSA+IGRvdWtpdHN1dXNoaW5cIDsKK+S4iemHjeeEpueCuSA+IHNhbmp1dXNob3V0ZW5cIDsKK+aKleelqOe3j+aVsCA+IHRvdWh5b3Vzb3VzdXVcIDsKK+Wkp+W5heWIt+aWsCA+IG9vaGFiYXNhc3NoaW5cIDsKK+WIh+aWreaCo+iAhSA+IHNldHN1ZGFua2FuamFcIDsKK+iiluaJi+WCjeimsyA+IHNodXVzaHVib3VrYW5cIDsKK+aLjeaJi+WWnemHhyA+IGhha3VzaHVrYXNzYWlcIDsKK+S9nOalreS7ruiqrCA+IHNhZ3lvdWthc2V0c3VcIDsKK+e1jOa4iOaIkOmVtyA+IGtlaXphaXNlaWNob3VcIDsKK+WQiOaIkOWuneefsyA+IGdvdXNlaWhvdXNla2lcIDsKK+e1kOe3oOe1hOe5lCA+IGtldHRlaXNvc2hpa2lcIDsKK+WGhumMkOabsue3miA+IGVuc3Vpa3lva3VzZW5cIDsKK+iBluS9k+aLnemgmCA+IHNlaXRhaWhhaXJ5b3VcIDsKK+W6tuawkemHkeiejSA+IHNob21pbmtpbicneXV1XCA7CivkvZPnqY3mirXmipcgPiB0YWlzZWtpdGVpa291XCA7CivljZTlkIzntYTlkIggPiBreW91ZG91a3VtaWFpXCA7CivlhYjkvY/msJHml48gPiBzZW5qdXVtaW56b2t1XCA7CivntbHkuIDmiKbnt5ogPiB0b3VpdHN1c2Vuc2VuXCA7CivlkIzmmYLpgJroqLMgPiBkb3VqaXRzdXV5YWt1XCA7Civlkajnn6XlvrnlupUgPiBzaHV1Y2hpdGV0dGVpXCA7CivoibHpm6Povpvoi6YgPiBrYW4nJ25hbnNoaW5rdVwgOwor5pS/5YWa5YaF6ZajID4gc2VpdG91bmFpa2FrdVwgOwor54++5Zyw5aCx5ZGKID4gZ2VuY2hpaG91a29rdVwgOwor5oe46LOe5ZWP6aGMID4ga2Vuc2hvdW1vbmRhaVwgOwor5YKt6Ii55aWR57SEID4geW91c2Vua2VpeWFrdVwgOwor5LuK5LiK5aSp55qHID4ga2luam91dGVuJydub3VcIDsKK+S7luimmueXh+eKtiA+IHRha2FrdXNob3Vqb3VcIDsKK+asoOmjn+WFkOerpSA+IGtlc3Nob2t1amlkb3VcIDsKK+Wor+alveeVque1hCA+IGdvcmFrdWJhbmd1bWlcIDsKK+eyvuelnuWMu+WtpiA+IHNlaXNoaW4nJ2lnYWt1XCA7CivlhoXlrrnoqLzmmI4gPiBuYWl5b3VzaG91bWVpXCA7Civlh7rmuK/lgZzmraIgPiBzaHVra291dGVpc2hpXCA7CivlpKvlqabntITmnZ8gPiBmdXVmdXlha3Vzb2t1XCA7Civml4XooYzmpa3ogIUgPiByeW9rb3VneW91c2hhXCA7Civkvb/lvpLkv6HntYwgPiBzaGl0b3NoaW5reW91XCA7CivlpJbos4flsI7lhaUgPiBnYWlzaGlkb3VueXV1XCA7CivmiJDkurrmlZnogrIgPiBzZWlqaW5reW91aWt1XCA7CivlhazlvI/kuLvnvqkgPiBrb3VzaGlraXNodWdpXCA7CivkuIDnjbLljYPph5EgPiBpa2tha2t1c2Vua2luXCA7CivopIfmlbDmpa3li5kgPiBmdWt1c3V1Z3lvdW11XCA7CivnpoHmrLLkuLvnvqkgPiBraW4nJ3lva3VzaHVnaVwgOwor56m66KWy6K2m5aCxID4ga3V1c2h1dWtlaWhvdVwgOwor55Sj5qWt5YaN55SfID4gc2FuZ3lvdXNhaXNlaVwgOwor6LOD6LK45L6h5qC8ID4gY2hpbnRhaWtha2FrdVwgOwor5oim6ZeY5YmN5ZOoID4gc2VudG91emVuc2hvdVwgOwor5LiA6KiA5LiA6KGMID4gaWNoaWdlbicnaWtrb3VcIDsKK+WQueWlj+alveWboyA+IHN1aXNvdWdha3VkYW5cIDsKK+ebtOe3mui3nemboiA+IGNob2t1c2Vua3lvcmlcIDsKK+i/keimque1kOWpmiA+IGtpbnNoaW5rZWtrb25cIDsKK+exs+iLseS7j+iYrSA+IGJlaWVpYnV0c3VyYW5cIDsKK+WFseWQjOS9nOalrSA+IGt5b3Vkb3VzYWd5b3VcIDsKK+a4m+WPjeaUv+etliA+IGdlbnRhbnNlaXNha3VcIDsKK+W/g+eQhuS9nOaIpiA+IHNoaW5yaXNha3VzZW5cIDsKK+W/g+iHk+enu+akjSA+IHNoaW56b3Vpc2hva3VcIDsKK+aciemZkOiyrOS7uyA+IHl1dWdlbnNla2luaW5cIDsKK+e1hOe5lOWGjee3qCA+IHNvc2hpa2lzYWloZW5cIDsKK+emj+mfs+aVmeS8miA+IGZ1a3Vpbmt5b3VrYWlcIDsKK+mWouS/guWJr+ipniA+IGthbmtlaWZ1a3VzaGlcIDsKK+WPsuaWmee3qOe6giA+IHNoaXJ5b3VoZW5zYW5cIDsKK+eMn+WumOmBi+WLlSA+IHJ5b3VrYW4nJ3VuZG91XCA7CivogonkvZPlirTlg40gPiBuaWt1dGFpcm91ZG91XCA7Civlj4LnhafmlofnjK4gPiBzYW5zaG91YnVua2VuXCA7Civpn7Pmpb3nm6PnnaMgPiBvbmdha3VrYW50b2t1XCA7CivlubPouqvkvY7poK0gPiBoZWlzaGludGVpdG91XCA7CivlhbHnlKPliIblrZAgPiBreW91c2FuYnVuc2hpXCA7CivkuojntITlh7rniYggPiB5b3lha3VzaHVwcGFuXCA7Civngq3msLTljJbniakgPiB0YW5zdWlrYWJ1dHN1XCA7Civov5Hku6PmloflraYgPiBraW5kYWlidW5nYWt1XCA7CivlnLDmlrnlrpjluoEgPiBjaGlob3VrYW5jaG91XCA7Civlm5vliIbkupToo4IgPiBzaGlidW5nb3JldHN1XCA7CivntYzmuIjlm57lvqkgPiBrZWl6YWlrYWlmdWt1XCA7Civlrp/lrZjkuLvnvqkgPiBqaXRzdXpvbnNodWdpXCA7CivmgZLmuKnli5XniakgPiBrb3VvbmRvdWJ1dHN1XCA7Civph47oj5zkuIDnmr8gPiB5YXNhaWhpdG9zYXJhXCA7CivlvaLlvI/oq5bnkIYgPiBrZWlzaGlraXJvbnJpXCA7CivlpKflrabmtarkurogPiBkYWlnYWt1cm91bmluXCA7CivmmqvlrprljZTlrpogPiB6YW50ZWlreW91dGVpXCA7CivmlL7pgIHlpKflraYgPiBob3Vzb3VkYWlnYWt1XCA7Civms5XlvovliLbluqYgPiBob3VyaXRzdXNlaWRvXCA7Civkv6HnlKjph5HluqsgPiBzaGluJyd5b3VraW5rb1wgOwor5pyJ5ZCN54Sh5a6fID4geXV1bWVpbXVqaXRzdVwgOwor57WC6Lqr5Lya5ZOhID4gc2h1dXNoaW5rYWlpblwgOwor5LiJ6KeS6Zai5pWwID4gc2Fua2FrdWthbnN1dVwgOwor56yR5q2i5Y2D5LiHID4gc2hvdXNoaXNlbmJhblwgOwor5paH5a2m5Y2a5aOrID4gYnVuZ2FrdWhha2FzZVwgOwor5bqt5YWI55u45aC0ID4gbml3YXNha2lzb3ViYVwgOwor5raI6LK76ICF5YG0ID4gc2hvdWhpc2hhZ2F3YVwgOwor57K+56We5qeL6YCgID4gc2Vpc2hpbmtvdXpvdVwgOwor6YmE6aqo5bel5LqLID4gdGVra290c3Vrb3VqaVwgOwor5Zu95Yip5rCR56aPID4ga29rdXJpbWlucHVrdVwgOwor6Lu95L275rWu6JaEID4ga2VpY2hvdWZ1aGFrdVwgOwor5rKW56mN5bmz6YeOID4gY2h1dXNla2loZWl5YVwgOwor6YWq6L6y6KO95ZOBID4gcmFrdW5vdXNlaWhpblwgOwor6Kyd572q5bqD5ZGKID4gc2hhemFpa291a29rdVwgOwor5a+M5Zu95by35YW1ID4gZnVrb2t1a3lvdWhlaVwgOwor5aSW6YOt5Zuj5L2TID4gZ2Fpa2FrdWRhbnRhaVwgOwor5YWx5ZCM5LyB5qWtID4ga3lvdWRvdWtpZ3lvdVwgOwor6ZqO57Sa56S+5LyaID4ga2Fpa3l1dXNoYWthaVwgOwor5a++5aSW5pS/562WID4gdGFpZ2Fpc2Vpc2FrdVwgOwor57K+6ZyK5L+h5LuwID4gc2VpcmVpc2hpbmtvdVwgOwor77yn77yi55CG6KuWID4gamlcIMyEYmlcIMyEcmlyb25cIDsKK+aYpemiqOmnmOiVqSA+IHNodW5wdXV0YWl0b3VcIDsKK+atu+WIkeWft+ihjCA+IHNoaWtlaXNoaWtrb3VcIDsKK+S6jOiAheaKnuS4gCA+IG5pc2hhdGFrdWl0c3VcIDsKK+mFuOaAp+WPjeW/nCA+IHNhbnNlaWhhbicnbm91XCA7CivmsLTpgZPmlpnph5EgPiBzdWlkb3VyeW91a2luXCA7CivnqbrmsJflipvlraYgPiBrdXVraXJpa2lnYWt1XCA7CivllYblo7LmsJfos6ogPiBzaG91YmFpa2F0YWdpXCA7CivoqJjpjLLmloflraYgPiBraXJva3VidW5nYWt1XCA7CivlvbzmlrnmraTmlrkgPiBhY2hpcmFrb2NoaXJhXCA7Civnq4vouqvlh7rkuJYgPiByaXNzaGluc2h1c3NlXCA7CivmraPph5HpioDooYwgPiBzaG91a2luZ2lua291XCA7CivlhbHmuIjkuovmpa0gPiBreW91c2FpamlneW91XCA7CivlhYjooYzmioDooZMgPiBzZW5rb3VnaWp1dHN1XCA7Civlm7Pmm7jnm67pjLIgPiB0b3Nob21va3Vyb2t1XCA7CivoqLzmi6DpmqDmu4UgPiBzaG91a29pbm1ldHN1XCA7Civnq7bkuonplqLkv4IgPiBreW91c291a2Fua2VpXCA7CivkuovliY3mpJzplrIgPiBqaXplbmtlbicnZXRzdVwgOwor6KGM5pS/5Yem5YiGID4gZ3lvdXNlaXNob2J1blwgOwor5YWo6Z2i5bqD5ZGKID4gemVubWVua291a29rdVwgOwor5Zu95YuZ6ZW35a6YID4ga29rdW11Y2hvdWthblwgOwor57K+56We55eF6ZmiID4gc2Vpc2hpbmJ5b3VpblwgOwor5Zub5Y2B5Lmd5pelID4gc2hpanV1a3VuaWNoaVwgOwor5p2T5a2Q5a6a6KaPID4gc2hha3VzaGlqb3VnaVwgOwor5Y+v5aGR54mp6LOqID4ga2Fzb2J1c3NoaXRzdVwgOwor5Y2K6L6y5Y2K5ryBID4gaGFuJydub3VoYW5neW9cIDsKK+aatOmjsuaatOmjnyA+IGJvdWluYm91c2hva3VcIDsKK+eglOeptuWIhumHjiA+IGtlbmt5dXVidW4nJ3lhXCA7Civkurrlj6Plr4bluqYgPiBqaW5rb3VtaXRzdWRvXCA7Civkurrouqvlo7LosrcgPiBqaW5zaGluYmFpYmFpXCA7CivmrrrkurrmnKrpgYIgPiBzYXRzdWppbm1pc3VpXCA7CivotrPliKnmmYLku6MgPiBhc2hpa2FnYWppZGFpXCA7CivlvL7nnYDot53pm6IgPiBkYW5jaGFrdWt5b3JpXCA7Civli5XnianmpJzmn7sgPiBkb3VidXRzdWtlbnNhXCA7CivolqzppIznmYLms5UgPiB5YWt1amlyeW91aG91XCA7CivkurrplpPlm73lrp0gPiBuaW5nZW5rb2t1aG91XCA7Civnt4ropoHlnLDlvaIgPiBraW4nJ3lvdWNoaWtlaVwgOwor5biC5aC05oiQ6ZW3ID4gc2hpam91c2VpY2hvdVwgOwor5oyH5ZCN5oqV56WoID4gc2hpbWVpdG91aHlvdVwgOwor5ZGJ6LaK5ZCM6IifID4gZ29ldHN1ZG91c2h1dVwgOwor5a6F5Zyw6YCg5oiQID4gdGFrdWNoaXpvdXNlaVwgOwor57K+56We5Yq05YONID4gc2Vpc2hpbnJvdWRvdVwgOwor5a625peP6KiI55S7ID4ga2F6b2t1a2Vpa2FrdVwgOwor6ZaL5Y+j5LiA55WqID4ga2Fpa291aWNoaWJhblwgOwor55u057O75Y2R5bGeID4gY2hva2tlaWhpem9rdVwgOwor5Ymy6LOm5pa55byPID4ga2FwcHVob3VzaGlraVwgOwor5Yuk5Yq05aSn6KGGID4ga2lucm91dGFpc2h1dVwgOwor5pyq5Y+O5YWl6YeRID4gbWlzaHV1bnl1dWtpblwgOwor6aKo5L+X5Za25qWtID4gZnV1em9rdWVpZ3lvdVwgOwor5rCR5L+X6Z+z5qW9ID4gbWluem9rdW9uZ2FrdVwgOwor5rW35rC05rW05aC0ID4ga2Fpc3VpeW9rdWpvdVwgOwor6YCj5ZCI5L2c5oimID4gcmVuZ291c2FrdXNlblwgOwor5Lih6JOL5pmC6KiIID4gcnlvdWJ1dGFkb2tlaVwgOwor5Li75a6i6Lui5YCSID4gc2h1a2FrdXRlbnRvdVwgOwor5pCN55uK5YuY5a6aID4gc29uJydla2lrYW5qb3VcIDsKK+WLleWKm+mZjeS4iyA+IGRvdXJ5b2t1a291a2FcIDsKK+S4ieinkumXmOS6iSA+IHNhbmtha3V0b3Vzb3VcIDsKK+mAgOWtpuWHpuWIhiA+IHRhaWdha3VzaG9idW5cIDsKK+Wun+mok+adkOaWmSA+IGppa2tlbnphaXJ5b3VcIDsKK+mHjeimgeeUo+alrSA+IGp1dXlvdXNhbmd5b3VcIDsKK+a2suS9k+eHg+aWmSA+IGVraXRhaW5lbnJ5b3VcIDsKK+S8nemBk+mbhuS8miA+IGRlbmRvdXNodXVrYWlcIDsKK+WFq+mdouWFreiHgiA+IGhhY2hpbWVucm9wcGlcIDsKK+aJjeawl+eFpeeZuiA+IHNhaWtpa2FucGF0c3VcIDsKK+aEn+aDheihqOePviA+IGthbmpvdWh5b3VnZW5cIDsKK+S6uueoruW3ruWIpSA+IGppbnNodXNhYmV0c3VcIDsKK+iLseWbveeZuumfsyA+IGVpa29rdWhhdHN1b25cIDsKK+eEoemZkOaVsOWIlyA+IG11Z2Vuc3V1cmV0c3VcIDsKK+aCqumAhueEoemBkyA+IGFrdWd5YWt1bXVkb3VcIDsKK+eGn+aFruaWreihjCA+IGp1a3VyeW9kYW5rb3VcIDsKK+ebtOS6pOW6p+aomSA+IGNob2trb3V6YWh5b3VcIDsKK+WMl+WkquW5s+a0iyA+IGtpdGF0YWloZWl5b3VcIDsKK+eUt+WjsOWQiOWUsSA+IGRhbnNlaWdhc3Nob3VcIDsKK+iDg+iFuOeXheWtpiA+IGljaG91YnlvdWdha3VcIDsKK+S4ieinkumWouS/giA+IHNhbmtha3VrYW5rZWlcIDsKK+awkeaXj+mfs+alvSA+IG1pbnpva3Vvbmdha3VcIDsKK+WNmOeLrOS8muimiyA+IHRhbmRva3VrYWlrZW5cIDsKK+iyoeeUo+ebuOe2miA+IHphaXNhbnNvdXpva3VcIDsKK+S4iuaZuuWkp+WtpiA+IGpvdWNoaWRhaWdha3VcIDsKK+WDp+W6teeUn+a0uyA+IHNvdWFuc2Vpa2F0c3VcIDsKK+azleW+i+eUqOiqniA+IGhvdXJpdHN1eW91Z29cIDsKK+mbjOmbhOmBuOaKniA+IHNoaXl1dXNlbnRha3VcIDsKK+eZvuiKsee5muS5sSA+IGh5YWtrYXJ5b3VyYW5cIDsKK+mfs+alveeZguazlSA+IG9uZ2FrdXJ5b3Vob3VcIDsKK+S9j+awkeeZu+mMsiA+IGp1dW1pbnRvdXJva3VcIDsKK+aWreWxpOWGmeecnyA+IGRhbnNvdXNoYXNoaW5cIDsKK+WNoOmgmOWcsOW4ryA+IHNlbnJ5b3VjaGl0YWlcIDsKK+iWrOWTgeS8muekviA+IHlha3VoaW5nYWlzaGFcIDsKK+WHuuWPo+iqv+afuyA+IGRlZ3VjaGljaG91c2FcIDsKK+iDveWLleWFjeeWqyA+IG5vdWRvdW1lbicnZWtpXCA7CivlnKjnlZnpgqbkurogPiB6YWlyeXV1aG91amluXCA7Civpuqbol4HntLDlt6UgPiBtdWdpd2FyYXNhaWt1XCA7Civlt6Xoirjnvo7ooZMgPiBrb3VnZWliaWp1dHN1XCA7CivoiKrnqbrmlLvmkoMgPiBrb3VrdXVrb3VnZWtpXCA7Civph43ph4/pgbjmiYsgPiBqdXVyeW91c2Vuc2h1XCA7CivotaTnq4vnvr3onbYgPiBha2F0YXRlaGFjaG91XCA7CivmhJvps6XpgLHplpMgPiBhaWNob3VzaHV1a2FuXCA7Civlt6Xmpa3ljJblraYgPiBrb3VneW91a2FnYWt1XCA7CivmioDooZPmj5DmkLogPiBnaWp1dHN1dGVpa2VpXCA7CivkuK3mgKflrZDmmJ8gPiBjaHV1c2Vpc2hpc2VpXCA7CivlhazlhbHkuovmpa0gPiBrb3VreW91amlneW91XCA7CivkuIrotormnKznt5ogPiBqb3VldHN1aG9uc2VuXCA7CivnhKHlhJ/lpZHntIQgPiBtdXNob3VrZWl5YWt1XCA7CivploPlhYnpm7vnkIMgPiBzZW5rb3VkZW5reXV1XCA7Civlm73nsY3oqIDoqp4gPiBrb2t1c2VraWdlbmdvXCA7CivlrprmuKnli5XniakgPiB0ZWlvbmRvdWJ1dHN1XCA7CivnqbrliY3ntbblvowgPiBrdXV6ZW56ZXRzdWdvXCA7CivmrablipvlpJbkuqQgPiBidXJ5b2t1Z2Fpa291XCA7CivmiLjnsY3mioTmnKwgPiBrb3Nla2lzaG91aG9uXCA7CivmnJ3prq7ljYrls7YgPiBjaG91c2VuaGFudG91XCA7CivpnZ7luLjlj6zpm4YgPiBoaWpvdXNob3VzaHV1XCA7CivlhajoiKzliY3lk6ggPiB6ZW5wYW56ZW5zaG91XCA7CivlpKfkuZfku4/mlZkgPiBkYWlqb3VidWtreW91XCA7CivliIbmnpDoqabpqJMgPiBidW5zZWtpc2hpa2VuXCA7Civlub3pnIrlsYvmlbcgPiB5dXVyZWl5YXNoaWtpXCA7CivmnInnlKPpmo7ntJogPiB5dXVzYW5rYWlreXV1XCA7CivmqKnlipvmlL/msrsgPiBrZW5yeW9rdXNlaWppXCA7CivohIXov6vpm7voqbEgPiBreW91aGFrdWRlbndhXCA7CivoiLnojbfoqLzliLggPiBmdW5hbmlzaG91a2VuXCA7CivmiYvml5fkv6Hlj7cgPiB0ZWJhdGFzaGluZ291XCA7CivmoITppIrlpLHoqr8gPiBlaXlvdXNoaXRjaG91XCA7CivkvZzms4HmjIfmlbAgPiBzYWtreW91c2hpc3V1XCA7Civnm7jkupLpgJrkv6EgPiBzb3Vnb3RzdXVzaGluXCA7CivooajlsaTpm6rltKkgPiBoeW91c291bmFkYXJlXCA7Civngb3lrrPlr77nrZYgPiBzYWlnYWl0YWlzYWt1XCA7Civkuovlrp/oqr/mn7sgPiBqaWppdHN1Y2hvdXNhXCA7Civml6XntYzmlrDogZ4gPiBuaWtrZWlzaGluYnVuXCA7CivkuK3plpPpgbjmjJkgPiBjaHV1a2Fuc2Vua3lvXCA7CivluILplbfpgbjmjJkgPiBzaGljaG91c2Vua3lvXCA7CivmsojpmY3mtbflsrggPiBjaGlua291a2FpZ2FuXCA7CivnpL7kvJrnpo/npYkgPiBzaGFrYWlmdWt1c2hpXCA7Civoq5blip/ooYzos54gPiByb25rb3Vrb3VzaG91XCA7Civlrp/ot7XouqzooYwgPiBqaXNzZW5reXV1a291XCA7CivmraPlia/kuozpgJogPiBzZWlmdWt1bml0c3V1XCA7CivkuqTmhJ/npZ7ntYwgPiBrb3VrYW5zaGlua2VpXCA7Civmtojosrvpnanlkb0gPiBzaG91aGlrYWt1bWVpXCA7CivlsILku7vorJvluKsgPiBzZW4nJ25pbmtvdXNoaVwgOwor5aSn6YeP55Sf55SjID4gdGFpcnlvdXNlaXNhblwgOwor5pyA6auY5qmf5a+GID4gc2Fpa291a2ltaXRzdVwgOwor566h5bym5qW95rOVID4ga2FuZ2VuZ2FrdWhvdVwgOwor5paw5ZOB5ZCM5qeYID4gc2hpbnBpbmRvdXlvdVwgOwor5YKZ6I2S6LKv6JOEID4gYmlrb3VjaG9jaGlrdVwgOwor6JaE5b+X5byx6KGMID4gaGFrdXNoaWpha2tvdVwgOwor5Yuk5Yq06ZqO57SaID4ga2lucm91a2Fpa3l1dVwgOwor5pel5Y2w6Zai5L+CID4gbmljaGlpbmthbmtlaVwgOwor6ZW35pyf6KiI55S7ID4gY2hvdWtpa2Vpa2FrdVwgOwor5LiN5pmC552A6Zm4ID4gZnVqaWNoYWt1cmlrdVwgOwor5o6S5rOE5Zmo5a6YID4gaGFpc2V0c3VraWthblwgOwor6Iux5paH6Kej6YeIID4gZWlidW5rYWlzaGFrdVwgOwor5YWN6LKs5p2h6aCFID4gbWVuc2VraWpvdWtvdVwgOwor6YmE6YGT57ea6LevID4gdGV0c3Vkb3VzZW5yb1wgOwor5pS75pKD5oWL5YuiID4ga291Z2VraXRhaXNlaVwgOwor5a6a5pyf5piH57WmID4gdGVpa2lzaG91a3l1dVwgOwor6KiY6L+w5paH5rOVID4ga2lqdXRzdWJ1bnBvdVwgOwor6Iej57GN6ZmN5LiLID4gc2hpbnNla2lrb3VrYVwgOwor54Kt6YW46aOy5paZID4gdGFuc2FuJydpbnJ5b3VcIDsKK+W4guWgtOaLoeWkpyA+IHNoaWpvdWtha3VkYWlcIDsKK+eyvuWvhuapn+aisCA+IHNlaW1pdHN1a2lrYWlcIDsKK+apn+WLleitpuWvnyA+IGtpZG91a2Vpc2F0c3VcIDsKK+W5tOmWk+WPjuebiiA+IG5lbmthbnNodXVla2lcIDsKK+S7suijgeijgeWumiA+IGNodXVzYWlzYWl0ZWlcIDsKK+WBteWvn+imgeWToSA+IHRlaXNhdHN1eW91aW5cIDsKK+aWh+iXneaYpeeniyA+IGJ1bmdlaXNodW5qdXVcIDsKK+S6uuW9ouiKneWxhSA+IG5pbmd5b3VzaGliYWlcIDsKK+awtOS4reecvOmPoSA+IHN1aWNodXVtZWdhbmVcIDsKK+WFrOW6j+iJr+S/lyA+IGtvdWpvcnlvdXpva3VcIDsKK+WpmuWJjeS6pOa4iSA+IGtvbnplbmtvdXNob3VcIDsKK+WkqumZvem7kueCuSA+IHRhaXlvdWtva3V0ZW5cIDsKK+S4iuW+oeS4gOS6uiA+IGthbWlnb2ljaGluaW5cIDsKK+S4u+imgeW3pealrSA+IHNodXlvdWtvdWd5b3VcIDsKK+S4i+etieWLleeJqSA+IGthdG91ZG91YnV0c3VcIDsKK+iHpeiWquWYl+iDhiA+IGdhc2hpbnNob3V0YW5cIDsKK+iouueZguaUr+aPtCA+IHNoaW5yeW91c2hpZW5cIDsKK+i7ouWcsOeZgumkiiA+IHRlbmNoaXJ5b3V5b3VcIDsKK+S4h+iDvemBuOaJiyA+IGJhbicnbm91c2Vuc2h1XCA7CivmlZnkvJrpn7Pmpb0gPiBreW91a2Fpb25nYWt1XCA7CivljYPovInkuIDpgYcgPiBzZW56YWlpY2hpZ3V1XCA7Civlo7LosrflpZHntIQgPiBiYWliYWlrZWl5YWt1XCA7CivkvY/lroXlnLDluK8gPiBqdXV0YWt1Y2hpdGFpXCA7CivmuJvpgJ/oo4Xnva4gPiBnZW5zb2t1c291Y2hpXCA7CivkvY/lroXllY/poYwgPiBqdXV0YWt1bW9uZGFpXCA7CivlhY3nlqvooYDmuIUgPiBtZW4nJ2VraWtlc3NlaVwgOwor5qC45Y+N5b+c54KJID4ga2FrdWhhbicnbm91cm9cIDsKK+aUvuWwhOe3muWtpiA+IGhvdXNoYXNlbmdha3VcIDsKK+a1gemAmue1jOi3ryA+IHJ5dXV0c3V1a2Vpcm9cIDsKK+Wwi+W4uOS4gOanmCA+IGppbmpvdWljaGl5b3VcIDsKK+WbveacieiyoeeUoyA+IGtva3V5dXV6YWlzYW5cIDsKK+W4guawkemajue0miA+IHNoaW1pbmthaWt5dXVcIDsKK+iogOiqnuefpeitmCA+IGdlbmdvY2hpc2hpa2lcIDsKK+WFrOWFseaUvumAgSA+IGtvdWt5b3Vob3Vzb3VcIDsKK+aWkeeKtue1hOe5lCA+IGhhbmpvdXNvc2hpa2lcIDsKK+mHjeeIhuaSg+apnyA+IGp1dWJha3VnZWtpa2lcIDsKK+WpmuWkluS6pOa4iSA+IGtvbmdhaWtvdXNob3VcIDsKK+S7suijgeijgeWIpCA+IGNodXVzYWlzYWliYW5cIDsKK+S+r+eIteWkq+S6uiA+IGtvdXNoYWt1ZnVqaW5cIDsKK+acieiJsumHjuiPnCA+IHl1dXNob2t1eWFzYWlcIDsKK+mbhuWbo+iotOionyA+IHNodXVkYW5zb3Nob3VcIDsKK+S4gOasoeeUo+alrSA+IGljaGlqaXNhbmd5b3VcIDsKK+e3tOe/kuS4jei2syA+IHJlbnNodXVidXNva3VcIDsKK+WVhuiIueWtpuagoSA+IHNob3VzZW5nYWtrb3VcIDsKK+m6puiXgeicu+ibiSA+IG11Z2l3YXJhdG9uYm9cIDsKK+aciemZkOmbhuWQiCA+IHl1dWdlbnNodXVnb3VcIDsKK+i/veWKoOaWmemHkSA+IHRzdWlrYXJ5b3VraW5cIDsKK86g5Lit6ZaT5a2QID4gcGFpY2h1dWthbnNoaVwgOwor6YGg6ZqU5pWZ6IKyID4gZW5rYWt1a3lvdWlrdVwgOwor6ISz6ISK6auE5rayID4gbm91c2VraXp1aWVraVwgOwor5p2x6KW/5Y2X5YyXID4gdG91emFpbmFuYm9rdVwgOwor6Kix5a6557ea6YePID4ga3lveW91c2VucnlvdVwgOwor5q2j5pyt5YCk5q61ID4gc2hvdWZ1ZGFuZWRhblwgOwor5beu5Yil6Zai56iOID4gc2FiZXRzdWthbnplaVwgOwor5Lit562J5a2m5qChID4gY2h1dXRvdWdha2tvdVwgOwor566h5bym5qW95ZujID4ga2FuZ2VuZ2FrdWRhblwgOwor5a+E55Sf55Sf54mpID4ga2lzZWlzZWlidXRzdVwgOwor5Li75qip5Zue5b6pID4gc2h1a2Vua2FpZnVrdVwgOwor5Lih6YOo56We6YGTID4gcnlvdWJ1c2hpbnRvdVwgOwor57WC5qWt5pmC6ZaTID4gc2h1dWd5b3VqaWthblwgOwor57W55biD5LiA5be7ID4ga2VucHVoaXRvbWFraVwgOwor6YGO5Zyn5a+G5q+UID4ga2FhdHN1bWl0c3VoaVwgOwor6Ieq54S26YG45oqeID4gc2hpemVuc2VudGFrdVwgOwor5Y+N5b+c6YCf5bqmID4gaGFuJydub3Vzb2t1ZG9cIDsKK+WBteWvn+ihm+aYnyA+IHRlaXNhdHN1ZWlzZWlcIDsKK+ato+WJr+itsOmVtyA+IHNlaWZ1a3VnaWNob3VcIDsKK+elnuWJjee1kOWpmiA+IHNoaW56ZW5rZWtrb25cIDsKK+azleeahOaJi+autSA+IGhvdXRla2lzaHVkYW5cIDsKK+S9nOalremgmOWfnyA+IHNhZ3lvdXJ5b3Vpa2lcIDsKK+W5tOmHkeiovOabuCA+IG5lbmtpbnNob3VzaG9cIDsKK+S6pOmAmuWmqOWusyA+IGtvdXRzdXVib3VnYWlcIDsKK+eUuuadkeWQiOS9tSA+IGNob3Vzb25nYXBwZWlcIDsKK+aVmeS8muaXi+azlSA+IGt5b3VrYWlzZW5wb3VcIDsKK+W5leiXqeS9k+WItiA+IGJha3VoYW50YWlzZWlcIDsKK+esrOS4gOWNsOixoSA+IGRhaWljaGlpbnNob3VcIDsKK+ecn+epuuWMheijhSA+IHNoaW5rdXVob3Vzb3VcIDsKK+ebo+afu+iovOi3oSA+IGthbnNhc2hvdXNla2lcIDsKK+iqmOWwjumbu+a1gSA+IHl1dWRvdWRlbnJ5dXVcIDsKK+W+qeaXp+S9nOalrSA+IGZ1a2t5dXVzYWd5b3VcIDsKK+aQjeWus+izoOWEnyA+IHNvbmdhaWJhaXNob3VcIDsKK+aDs+WDj+WmiuWooCA+IHNvdXpvdW5pbnNoaW5cIDsKK+iZmuW/g+WdpuaHkCA+IGt5b3NoaW50YW5rYWlcIDsKK+iAkOmch+ani+mAoCA+IHRhaXNoaW5rb3V6b3VcIDsKK+aciemZkOe0muaVsCA+IHl1dWdlbmt5dXVzdXVcIDsKK+WbveWcn+ioiOeUuyA+IGtva3Vkb2tlaWtha3VcIDsKK+eUn+WtmOertuS6iSA+IHNlaXpvbmt5b3Vzb3VcIDsKK+W4guawkemdqeWRvSA+IHNoaW1pbmtha3VtZWlcIDsKK+Wkp+e1semgmOmBuCA+IGRhaXRvdXJ5b3VzZW5cIDsKK+ijnOe/kuaVmeiCsiA+IGhvc2h1dWt5b3Vpa3VcIDsKK+WPuOS7pOmVt+WumCA+IHNoaXJlaWNob3VrYW5cIDsKK+izg+mHkeS9k+ezuyA+IGNoaW5naW50YWlrZWlcIDsKK+WFqOS6uuaVmeiCsiA+IHplbmppbmt5b3Vpa3VcIDsKK+WumOaIv+mVt+WumCA+IGthbmJvdWNob3VrYW5cIDsKK+S8gealreenmOWvhiA+IGtpZ3lvdWhpbWl0c3VcIDsKK+auuuS6uuS6i+S7tiA+IHNhdHN1amluamlrZW5cIDsKK+WHtuaCqueKr+e9qiA+IGt5b3Vha3VoYW56YWlcIDsKK+WkqeeEtuizh+a6kCA+IHRlbicnbmVuc2hpZ2VuXCA7Civnmb7lp5PkuIDmj4YgPiBoeWFrdXNob3Vpa2tpXCA7Civnt4/lkIjlpKflraYgPiBzb3Vnb3VkYWlnYWt1XCA7Civku4/poILlsIrli50gPiBidWNob3Vzb25zaG91XCA7CivljYPlt67kuIfliKUgPiBzZW5zYWJhbmJldHN1XCA7CivntrLnirbntYTnuZQgPiBtb3Vqb3Vzb3NoaWtpXCA7CivnrKzkuIDpg6jplbcgPiBkYWlpY2hpYnVjaG91XCA7Civmupbmupbmsbrli50gPiBqdW5qdW5rZXNzaG91XCA7CivlpKflkozmsJHml48gPiB5YW1hdG9taW56b2t1XCA7CivlubTlubTmrbPmrbMgPiBuZW4nJ25lbnNhaXNhaVwgOwor5Zyw5q675aSJ5YuVID4gY2hpa2FrdWhlbmRvdVwgOwor6LKh5pS/5pS56Z2pID4gemFpc2Vpa2Fpa2FrdVwgOwor5YWx5ZCM6KiI566XID4ga3lvdWRvdWtlaXNhblwgOwor5YaZ55yf6Zu76YCBID4gc2hhc2hpbmRlbnNvdVwgOwor5LiN6Imv6Ki65patID4gZnVyeW91c2hpbmRhblwgOwor5rC055Sj5aSn5a2mID4gc3Vpc2FuZGFpZ2FrdVwgOwor5Y2Y5byP54Gr5bGxID4gdGFuc2hpa2lrYXphblwgOwor5LiA5YiG5LiA5Y6YID4gaWNoaWJ1aWNoaXJpblwgOwor5a6f5Zyw5qSc6Ki8ID4gaml0Y2hpa2Vuc2hvdVwgOwor5YyX5riF5LqL5aSJID4gaG9rdXNoaW5qaWhlblwgOwor5Lq66Z2i542j5b+DID4gbmlubWVuanV1c2hpblwgOwor6KiI55S75q616ZqOID4ga2Vpa2FrdWRhbmthaVwgOwor56S+5ZOh6aOf5aCCID4gc2hhaW5zaG9rdWRvdVwgOwor5o2n6IW557W25YCSID4gaG91ZnVrdXpldHRvdVwgOwor6YO15L6/5paZ6YeRID4geXV1YmlucnlvdWtpblwgOwor5LqU5Y2B5LiJ5qyhID4gZ29qdXVzYW50c3VnaVwgOwor5YSq5Yud5Yqj5pWXID4geXV1c2hvdXJlcHBhaVwgOwor5b+r6YCf5YiX6LuKID4ga2Fpc29rdXJlc3NoYVwgOwor6Zuj5rCR5p2h57SEID4gbmFubWluam91eWFrdVwgOwor5Zu96Zqb5pS+6YCBID4ga29rdXNhaWhvdXNvdVwgOwor5YWt5Y2B5L2Z5beeID4gcm9rdWp1dXlvc2h1dVwgOwor5oCl6KGM5YiX6LuKID4ga3l1dWtvdXJlc3NoYVwgOwor5qOu5p6X5Zyw5bivID4gc2hpbnJpbmNoaXRhaVwgOwor6Y6W5Zu95pS/562WID4gc2Frb2t1c2Vpc2FrdVwgOwor5YW36LGh576O6KGTID4gZ3VzaG91YmlqdXRzdVwgOwor5oeQ55+z5paZ55CGID4ga2Fpc2VraXJ5b3VyaVwgOwor57Ch5piT6aOf5aCCID4ga2FuJydpc2hva3Vkb3VcIDsKK+aal+m7kuWkp+mZuCA+IGFua29rdXRhaXJpa3VcIDsKK+WPjeWLlemdqeWRvSA+IGhhbmRvdWtha3VtZWlcIDsKK+WFreaguea4hea1hCA+IHJva2tvbnNob3Vqb3VcIDsKK+WVhualreS4u+e+qSA+IHNob3VneW91c2h1Z2lcIDsKK+S/oemgvOmGuOaIkCA+IHNoaW5yYWlqb3VzZWlcIDsKK+WFseWQjOWjsOaYjiA+IGt5b3Vkb3VzZWltZWlcIDsKK+WJsuW8leWIh+espiA+IHdhcmliaWtpa2lwcHVcIDsKK+WGt+WNtOacn+mWkyA+IHJlaWt5YWt1a2lrYW5cIDsKK+S5neatu+S4gOeUnyA+IGt5dXVzaGlpc3Nob3VcIDsKK+S4reiPr+awkeWbvSA+IGNodXVrYW1pbmtva3VcIDsKK+aLoeWjsOijhee9riA+IGtha3VzZWlzb3VjaGlcIDsKK+mBk+i3r+W7uuiorSA+IGRvdXJva2Vuc2V0c3VcIDsKK+S6uumAoOWuneefsyA+IGppbnpvdWhvdXNla2lcIDsKK+i8uOWHuuS/nemZuiA+IHl1c2h1dHN1aG9rZW5cIDsKK+W/heS/ruenkeebriA+IGhpc3NodXVrYW1va3VcIDsKK+e1puS4juaJgOW+lyA+IGt5dXV5b3Nob3Rva3VcIDsKK+attOWPsuWtpua0viA+IHJla2lzaGlnYWt1aGFcIDsKK+etieW3ruaVsOWIlyA+IHRvdXNhc3V1cmV0c3VcIDsKK+WQm+WtkOixueWkiSA+IGt1bnNoaWh5b3VoZW5cIDsKK+S4i+ihqOWPgueFpyA+IGthaHlvdXNhbnNob3VcIDsKK+WLouWKm+evhOWbsiA+IHNlaXJ5b2t1aGFuJydpXCA7CivpgJrosqjmlL/nrZYgPiB0c3V1a2FzZWlzYWt1XCA7Civni6zljaDkvIHmpa0gPiBkb2t1c2Vua2lneW91XCA7CivnibnmqKnpmo7ntJogPiB0b2trZW5rYWlreXV1XCA7CivmraPopo/mm7Lnt5ogPiBzZWlraWt5b2t1c2VuXCA7Civlgo3ogbTnhKHmlpkgPiBib3VjaG91bXVyeW91XCA7CivnlKPmpa3os4fmnKwgPiBzYW5neW91c2hpaG9uXCA7Civnq4vnn7Ppm7vmqZ8gPiB0YXRlaXNoaWRlbmtpXCA7CivlpJzplpPkuK3lraYgPiB5YWthbmNodXVnYWt1XCA7Civosr/mmJPmkanmk6YgPiBib3Vla2ltYXNhdHN1XCA7CivlubTovKrlj7LlraYgPiBuZW5yaW5zaGlnYWt1XCA7CivmqZ/morDnv7voqLMgPiBraWthaWhvbicneWFrdVwgOwor5b656aCt5b655bC+ID4gdGV0dG91dGV0c3ViaVwgOwor6YeR56eR546J5p2hID4ga2lua2FneW9rdWpvdVwgOwor5rCR6ZaT55mC5rOVID4gbWlua2FucnlvdWhvdVwgOwor5oOF5rOB6Ki85ougID4gam91a3lvdXNob3Vrb1wgOwor5b+D5oK45Lqi6YCyID4gc2hpbmtpa291c2hpblwgOwor5a6a5oCn5YiG5p6QID4gdGVpc2VpYnVuc2VraVwgOwor5ZuD5a2Q6KiA6JGJID4gaGF5YXNoaWtvdG9iYVwgOwor54m56Kix5oqA6KGTID4gdG9ra3lvZ2lqdXRzdVwgOwor5aCx6YGT5YaZ55yfID4gaG91ZG91c2hhc2hpblwgOwor5pyA5L2O6LOD6YeRID4gc2FpdGVpY2hpbmdpblwgOwor556s6ZaT6Zu75patID4gc2h1bmthbmRlbmRhblwgOwor5bm06aCt5pWZ5pu4ID4gbmVudG91a3lvdXNob1wgOwor5p2x5rSL5q616YCaID4gdG91eW91ZGFudHN1dVwgOwor54us5Y2g6LOH5pysID4gZG9rdXNlbnNoaWhvblwgOwor5p2x5pa55pWZ5LyaID4gdG91aG91a3lvdWthaVwgOwor6Ieq6Kaa55eH54q2ID4gamlrYWt1c2hvdWpvdVwgOwor5aSp5L2T6Kaz5risID4gdGVudGFpa2Fuc29rdVwgOwor576k6ZuG6KGM5YuVID4gZ3Vuc2h1dWtvdWRvdVwgOwor6KGG5Lq655Kw6KaWID4gc2h1dWppbmthbnNoaVwgOwor6L+36LWw56We57WMID4gbWVpc291c2hpbmtlaVwgOwor5oim55Wl5YW15ZmoID4gc2Vucnlha3VoZWlraVwgOwor5YWI5Yi25pS75pKDID4gc2Vuc2Vpa291Z2VraVwgOwor5pyJ57Wm5LyR5pqHID4geXV1a3l1dWt5dXVrYVwgOwor6KaL5a2m5peF6KGMID4ga2VuZ2FrdXJ5b2tvdVwgOwor5Zu95YaF57WM5riIID4ga29rdW5haWtlaXphaVwgOwor5a++56m65bCE5pKDID4gdGFpa3V1c2hhZ2VraVwgOwor5q+U6LyD5a++54WnID4gaGlrYWt1dGFpc2hvdVwgOwor5biC5Lit6YqA6KGMID4gc2hpY2h1dWdpbmtvdVwgOwor5a6a54K56Kaz5risID4gdGVpdGVua2Fuc29rdVwgOwor5L+D5oiQ5qC95Z+5ID4gc29rdXNlaXNhaWJhaVwgOwor6LOD6YeR5qC85beuID4gY2hpbmdpbmtha3VzYVwgOwor5pSv6YWN6ZqO57SaID4gc2hpaGFpa2Fpa3l1dVwgOwor5LqM6YeN6Zyy5Ye6ID4gbmlqdXVyb3NodXRzdVwgOwor5YuV6ISI56Gs5YyWID4gZG91bXlha3Vrb3VrYVwgOwor6Zqj5o6l6YOo6ZqKID4gcmluc2V0c3VidXRhaVwgOwor5bu66Kit5qmf5qKwID4ga2Vuc2V0c3VraWthaVwgOwor5LiK5bGk6ZqO57SaID4gam91c291a2Fpa3l1dVwgOwor5LiJ5oud5Lmd5oudID4gc2FucGFpa3l1dWhhaVwgOwor54m55q6K5rOV5Lq6ID4gdG9rdXNodWhvdWppblwgOwor5aOr6a2C5ZWG5omNID4gc2hpa29uc2hvdXNhaVwgOwor6Jma5b+D5ouF5oeQID4ga3lvc2hpbnRhbmthaVwgOwor5YK355eF5o2V6JmcID4gc2hvdWJ5b3Vob3J5b1wgOwor54Sh5oCn55Sf5q6WID4gbXVzZWlzZWlzaG9rdVwgOwor6LKh5pS/5pS/562WID4gemFpc2Vpc2Vpc2FrdVwgOwor6Zm45LiK56u25oqAID4gcmlrdWpvdWt5b3VnaVwgOwor5Y2a6Kan5by36KiYID4gaGFrdXJhbmt5b3VraVwgOwor5Lq65qip5L615a6zID4gamlua2Vuc2hpbmdhaVwgOwor57eP6aCY5oGv5a2QID4gc291cnlvdW11c3Vrb1wgOwor6I+c6aOf5Li7576pID4gc2Fpc2hva3VzaHVnaVwgOwor6LWk5aSW55m65pWjID4gc2VraWdhaWhhc3NhblwgOwor6KGb5pif6YCa5L+hID4gZWlzZWl0c3V1c2hpblwgOwor5Lq65ZOh5YmK5ribID4gamluJydpbnNha3VnZW5cIDsKK+eOh+WFiOi6rOihjCA+IHNvc3Nlbmt5dXVrb3VcIDsKK+WFjeeojuaJgOW+lyA+IG1lbnplaXNob3Rva3VcIDsKK+mYsue4ruWKoOW3pSA+IGJvdXNodWt1a2Frb3VcIDsKK+ikh+W8j+ewv+iomCA+IGZ1a3VzaGlraWJva2lcIDsKK+iyrOS7u+WIhuaLhSA+IHNla2luaW5idW50YW5cIDsKK+atpuWKm+ihjOS9vyA+IGJ1cnlva3Vrb3VzaGlcIDsKK+eVque1hOe3qOaIkCA+IGJhbmd1bWloZW5zZWlcIDsKK+S8keaBr+aZgumWkyA+IGt5dXVzb2t1amlrYW5cIDsKK+S6jOmHjemWouevgCA+IG5panV1a2Fuc2V0c3VcIDsKK+ims+WFieeUo+alrSA+IGthbmtvdXNhbmd5b3VcIDsKK+WNmuW8leaXgeiovCA+IGhha3VpbmJvdXNob3VcIDsKK+WFseiyqeS8muekviA+IGt5b3VoYW5nYWlzaGFcIDsKK+aPmumZuOiJpuiJhyA+IHlvdXJpa3VrYW50ZWlcIDsKK+S4u+Wuoumhm+WAkiA+IHNodWtha3V0ZW50b3VcIDsKK+WFrOWus+WvvuetliA+IGtvdWdhaXRhaXNha3VcIDsKK+mZveWLleS9nOaIpiA+IHlvdWRvdXNha3VzZW5cIDsKK+iqmOaLkOeKr+S6uiA+IHl1dWthaWhhbicnbmluXCA7CivlhoXoh5Pnlr7mgqMgPiBuYWl6b3VzaGlra2FuXCA7Civkv67lo6voq5bmlocgPiBzaHV1c2hpcm9uYnVuXCA7Civpq5jnrYnmlZnogrIgPiBrb3V0b3VreW91aWt1XCA7CivmuKzph4/mqZ/morAgPiBzb2t1cnlvdWtpa2FpXCA7CivpnIrmhJ/llYbms5UgPiByZWlrYW5zaG91aG91XCA7CivlkarnianltIfmi50gPiBqdWJ1dHN1c3V1aGFpXCA7CivmlofkurrloqjlrqIgPiBidW5qaW5ib2trYWt1XCA7Civmib/nn6XkuYvliqkgPiBzaG91Y2hpbm9zdWtlXCA7CivotorlubTojYnmnKwgPiBldHN1bmVuc291aG9uXCA7CivpgJrli6TliJfou4ogPiB0c3V1a2lucmVzc2hhXCA7Civnsr7pgLLmlpnnkIYgPiBzaG91amlucnlvdXJpXCA7CivkuLvlipvpg6jpmoogPiBzaHVyeW9rdWJ1dGFpXCA7Civpg7flnJ/mloflraYgPiBreW91ZG9idW5nYWt1XCA7CivmnJ/mnKvoqabpqJMgPiBraW1hdHN1c2hpa2VuXCA7CivpgKPpgqbpppbnm7ggPiByZW5wb3VzaHVzaG91XCA7Civmg4XloLHlt6XlraYgPiBqb3Vob3Vrb3VnYWt1XCA7CivkuIPliIbkuInliIYgPiBzaGljaGlidXNhbmJ1XCA7CivlhazniLXlpKvkurogPiBrb3VzaGFrdWZ1amluXCA7Civlj4LogIPos4fmlpkgPiBzYW5rb3VzaGlyeW91XCA7Civni6zmlq3lsILooYwgPiBkb2t1ZGFuc2Vua291XCA7CivlhaXlrabogIPmn7sgPiBueXV1Z2FrdWtvdXNhXCA7Civpga3pm6Pkv6Hlj7cgPiBzb3VuYW5zaGluZ291XCA7CivmtYHli5Xos4fnlKMgPiByeXV1ZG91c2hpc2FuXCA7CivkuIvlm5vljYrmnJ8gPiBzaGltb3NoaWhhbmtpXCA7Civpgbjmip7np5Hnm64gPiBzZW50YWt1a2Ftb2t1XCA7Civmg4XloLHmpJzntKIgPiBqb3Vob3VrZW5zYWt1XCA7CivpoILkuIrkvJroq4cgPiBjaG91am91a2FpZGFuXCA7CivlhbHmuIjntYTlkIggPiBreW91c2Fpa3VtaWFpXCA7Civlj4LogIPmm7jnm64gPiBzYW5rb3VzaG9tb2t1XCA7Civmsrvlronorablr58gPiBjaGlhbmtlaXNhdHN1XCA7CivoiIjmpa3pioDooYwgPiBrb3VneW91Z2lua291XCA7CivooYzmlL/mm7jlo6sgPiBneW91c2Vpc2hvc2hpXCA7CivplqLpgKPpoIXnm64gPiBrYW5yZW5rb3Vtb2t1XCA7Civpm6PooYzoi6booYwgPiBuYW5neW91a3VneW91XCA7CivpoJDph5HpgJrluLMgPiB5b2tpbnRzdXVjaG91XCA7CivntrLohpzliaXpm6IgPiBtb3VtYWt1aGFrdXJpXCA7CivovLjlh7rmpJzmn7sgPiB5dXNodXRzdWtlbnNhXCA7CivmjIflrprpipjmn4QgPiBzaGl0ZWltZWlnYXJhXCA7CivphZLmsaDogonmnpcgPiBzaHVjaGluaWt1cmluXCA7CivlhKrnrYnos57nirYgPiB5dXV0b3VzaG91am91XCA7Civpu4Tph5HliIblibIgPiBvdWdvbmJ1bmthdHN1XCA7Civkv67nuZXlt6XloLQgPiBzaHV1emVua291am91XCA7CivkuozogIXpgbjkuIAgPiBuaXNoYXNlbicnaXRzdVwgOwor54q25rOB6Ki85ougID4gam91a3lvdXNob3Vrb1wgOwor6I+M6aGe5a2m6ICFID4ga2lucnVpZ2FrdXNoYVwgOwor5Luy6KOB44CF5YikID4gY2h1dXNhaXNhaWJhblwgOwor5aSW5Zu96YO15L6/ID4gZ2Fpa29rdXl1dWJpblwgOwor5Lqk6YCa5Zyw542EID4ga291dHN1dWppZ29rdVwgOwor6ZuG5Zuj57WQ5amaID4gc2h1dWRhbmtla2tvblwgOwor5oSb546p5YuV54mpID4gYWlnYW5kb3VidXRzdVwgOwor6ZaT5o6l6Kmx5rOVID4ga2Fuc2V0c3V3YWhvdVwgOwor5a2m55Sf6YOo6ZW3ID4gZ2FrdXNlaWJ1Y2hvdVwgOwor6Zuy5b2i5a6a6KaPID4ga3Vtb2dhdGFqb3VnaVwgOwor5bGL5aSW5bqD5ZGKID4gb2t1Z2Fpa291a29rdVwgOwor5Lqh5ZG95paH5a2mID4gYm91bWVpYnVuZ2FrdVwgOwor6YCj57aa6Zai5pWwID4gcmVuem9rdWthbnN1dVwgOwor562G6Leh6ZGR5a6aID4gaGlzc2VraWthbnRlaVwgOwor5buD54mp5Yip55SoID4gaGFpYnV0c3VyaXlvdVwgOwor6LuK5Lih5Lya56S+ID4gc2hhcnlvdWdhaXNoYVwgOwor6bq76Jas5bi457+SID4gbWF5YWt1am91c2h1dVwgOwor5LiN5b6X6KaB6aCYID4gZnV0b2t1eW91cnlvdVwgOwor5bGx5bKz5Zyw5bivID4gc2FuZ2FrdWNoaXRhaVwgOwor5ZWP6aGM6aCY5Z+fID4gbW9uZGFpcnlvdWlraVwgOwor5YCL5Yil6LKp5aOyID4ga29iZXRzdWhhbmJhaVwgOwor5bmz6KGh5oSf6KaaID4gaGVpa291a2Fua2FrdVwgOwor5YaF5Zu96YO15L6/ID4gbmFpa29rdXl1dWJpblwgOwor5aCx6YGT55Wq57WEID4gaG91ZG91YmFuZ3VtaVwgOwor5YWx5ZCM57WE5ZCIID4ga3lvdWRvdWt1bWlhaVwgOwor57SZ5LiK6KiI55S7ID4gc2hpam91a2Vpa2FrdVwgOwor5LqM6YeN5Zu957GNID4gbmlqdXVrb2t1c2VraVwgOwor6KGM5pS/6Ki06KifID4gZ3lvdXNlaXNvc2hvdVwgOwor57W257iB5oq15oqXID4gemV0c3VlbnRlaWtvdVwgOwor5Yy/5ZCN5om56KmVID4gdG9rdW1laWhpaHlvdVwgOwor6ZW35pyf5Zu95YK1ID4gY2hvdWtpa29rdXNhaVwgOwor5YWJ57ea55mC5rOVID4ga291c2VucnlvdWhvdVwgOwor5rWB5YuV6LOH5pysID4gcnl1dWRvdXNoaWhvblwgOwor6Ki85Yi45biC5aC0ID4gc2hvdWtlbnNoaWpvdVwgOwor5bu66Kit5bel5LqLID4ga2Vuc2V0c3Vrb3VqaVwgOwor5aSJ5oWL5oCn5qyyID4gaGVudGFpc2VpeW9rdVwgOwor56m65Lit57Sw6I+MID4ga3V1Y2h1dXNhaWtpblwgOwor5Luj6YeR5byV5o+bID4gZGFpa2luaGlraWthZVwgOwor6Iy255Wq54uC6KiAID4gY2hhYmFua3lvdWdlblwgOwor5Lqk6YCa6KaP5YmHID4ga291dHN1dWtpc29rdVwgOwor5Lya5bit5paZ55CGID4ga2Fpc2VraXJ5b3VyaVwgOwor54++54mp55u45aC0ID4gZ2VuYnV0c3Vzb3ViYVwgOwor5p2f57ib55CG6KuWID4gc29rdWJha3VyaXJvblwgOwor5YWs5q2j6Ki85pu4ID4ga291c2Vpc2hvdXNob1wgOwor5ZCM55uf5oCg5qWtID4gZG91bWVpdGFpZ3lvdVwgOwor6KGM5YuV5pa56YedID4ga291ZG91aG91c2hpblwgOwor6YGp5q2j5L6h5qC8ID4gdGVraXNlaWtha2FrdVwgOwor5Lq656iu5pS56ImvID4gamluc2h1a2FpcnlvdVwgOwor5Y2K5rWB5YuV5L2TID4gaGFucnl1dWRvdXRhaVwgOwor5pmu5LuP5oim5LqJID4gZnVmdXRzdXNlbnNvdVwgOwor5LqM6YeN57WQ5ZCIID4gbmlqdXVrZXRzdWdvdVwgOwor5YWN6LKs54m55qipID4gbWVuc2VraXRva2tlblwgOwor5oey5oiS5Yem5YiGID4gY2hvdWthaXNob2J1blwgOwor5LiN5b+D5b6X6ICFID4gZnVrb2tvcm9lbW9ub1wgOwor6LGq5pS+56OK6JC9ID4gZ291aG91cmFpcmFrdVwgOwor6Imm56Cy5bCE5pKDID4ga2FucG91c2hhZ2VraVwgOwor6Zai5pWw6Kej5p6QID4ga2Fuc3V1a2Fpc2VraVwgOwor6YCa5L+h6Kyb5bqnID4gdHN1dXNoaW5rb3V6YVwgOwor5aSW6LKo542y5b6XID4gZ2Fpa2FrYWt1dG9rdVwgOwor5b+D5oK45piC6YCyID4gc2hpbmtpa291c2hpblwgOwor6Zu75rCX5rq25o6lID4gZGVua2l5b3VzZXRzdVwgOwor5ZCu55mw6IiQ55eUID4gc2VuJyd5b3VzaGlqaVwgOwor5Yq05YON5p2h5Lu2ID4gcm91ZG91am91a2VuXCA7CivlpJblm73oiKrot68gPiBnYWlrb2t1a291cm9cIDsKK+S8nemAgemAn+W6piA+IGRlbnNvdXNva3Vkb1wgOwor5LiA5pys6Kq/5a2QID4gaXBwb25kam91c2hpXCA7CivlopzokL3kuovmlYUgPiB0c3VpcmFrdWppa29cIDsKK+e3mummmeiKseeBqyA+IHNlbmtvdWhhbmFiaVwgOwor5p2x5Lqs6YO95pS/ID4gdG91a3lvdXRvc2VpXCA7Civou43kuovnlKPmpa0gPiBndW5qaXNhbmd5b3VcIDsKK+S7o+eQhueJp+W4qyA+IGRhaXJpYm9rdXNoaVwgOwor5LiJ5Y2B5LiJ5omAID4gc2FuanV1c2Fuc2hvXCA7CivkuIDmrKHnt5rovKogPiBpY2hpamlzZW5yaW5cIDsKK+S+oeagvOWkieWLlSA+IGtha2FrdWhlbmRvdVwgOwor5oKg5oKg6Ieq6YGpID4geXV1eXV1aml0ZWtpXCA7CivlsbHntKvmsLTmmI4gPiBzYW5zaGlzdWltZWlcIDsKK+epuui8uOiyqOeJqSA+IGt1dXl1a2Ftb3RzdVwgOwor6Kaz5YWJ6LOH5rqQID4ga2Fua291c2hpZ2VuXCA7CivoppbopproqIDoqp4gPiBzaGlrYWt1Z2VuZ29cIDsKK+m6u+iWrOW4uOeUqCA+IG1heWFrdWpvdXlvdVwgOwor5pel5pyd6L6e5YW4ID4gbml0Y2hvdWppdGVuXCA7CivlupfpoK3lgrXliLggPiB0ZW50b3VzYWlrZW5cIDsKK+eJiOaoqeaJgOaciSA+IGhhbmtlbnNob3l1dVwgOwor5LiA5rOK6KGM6LuNID4gaXBwYWt1a291Z3VuXCA7CivpnZLnqbrluILloLQgPiBhb3pvcmFzaGlqb3VcIDsKK+mWi+elqOe1kOaenCA+IGthaWh5b3VrZWtrYVwgOwor5Y2Y54us6Kyb5ZKMID4gdGFuZG9rdWtvdXdhXCA7Civov5Hku6Pnp5HlraYgPiBraW5kYWlrYWdha3VcIDsKK+eEoeelnuirluiAhSA+IG11c2hpbnJvbnNoYVwgOwor5pyJ5b2i6LKh55SjID4geXV1a2VpemFpc2FuXCA7CivmsrPlsrjmrrXkuJggPiBrYWdhbmRhbmt5dXVcIDsKK+WkqumZveWFiee3miA+IHRhaXlvdWtvdXNlblwgOwor5YSE5LiH6ZW36ICFID4gb2t1bWFuY2hvdWphXCA7CivljJbnsqfnn7PpubggPiBrZXNob3VzZWtrZW5cIDsKK+iogOiqnueZguazlSA+IGdlbmdvcnlvdWhvdVwgOwor5a6J5a6a5oiQ6ZW3ID4gYW50ZWlzZWljaG91XCA7CivnpZ7mqKnmlL/msrsgPiBzaGlua2Vuc2VpamlcIDsKK+iHs+S4iuWRveS7pCA+IHNoaWpvdW1laXJlaVwgOwor6Z+z5qW9576O5a2mID4gb25nYWt1YmlnYWt1XCA7CivlirTlg43lpKfoh6MgPiByb3Vkb3VkYWlqaW5cIDsKK+mZjeagvOS6uuS6iyA+IGtvdWtha3VqaW5qaVwgOwor56qS57Sg6IKl5paZID4gY2hpc3NvaGlyeW91XCA7Civou43pg6jni6zoo4EgPiBndW5idWRva3VzYWlcIDsKK+WFrOWLmeeWvueXhSA+IGtvdW11c2hpcHBlaVwgOwor6Iqx54Gr5aSn5LyaID4gaGFuYWJpdGFpa2FpXCA7CivooYzpm7LmtYHmsLQgPiBrb3V1bnJ5dXVzdWlcIDsKK+WPjeWvvuioiuWVjyA+IGhhbnRhaWppbm1vblwgOwor5pa55ZCR6Lui5o+bID4gaG91a291dGVua2FuXCA7CivnhKHnt5rmioDooZMgPiBtdXNlbmdpanV0c3VcIDsKK+iJruS4i+iJruS4iiA+IGdvbmthZ29uc2hvdVwgOwor5pyq5p2l5a6M5LqGID4gbWlyYWlrYW5yeW91XCA7CivliY3pgLLpg6jpmoogPiB6ZW5zaGluYnV0YWlcIDsKK+aXoue0hOWIhuaVsCA+IGtpeWFrdWJ1bnN1dVwgOwor5YWs5Za25L2P5a6FID4ga291ZWlqdXV0YWt1XCA7Civnm6Pmn7vloLHlkYogPiBrYW5zYWhvdWtva3VcIDsKK+aciOe1jOWRqOacnyA+IGdla2tlaXNodXVraVwgOwor56eR5a2m6ZuR6KqMID4ga2FnYWt1emFzc2hpXCA7CivpgJrosqjntbHlkIggPiB0c3V1a2F0b3Vnb3VcIDsKK+WvvuWcsOmAn+W6piA+IHRhaWNoaXNva3Vkb1wgOwor5a6Y5YOa5Li7576pID4ga2FucnlvdXNodWdpXCA7CivlvqHoqr/lrZDogIUgPiBvY2hvdXNoaW1vbm9cIDsKK+S6jOi2s+S4ieaWhyA+IG5pc29rdXNhbm1vblwgOwor6YW45oCn6IKl5paZID4gc2Fuc2VpaGlyeW91XCA7CivoqIDmlofkuIDoh7QgPiBnZW5idW4nJ2l0Y2hpXCA7CivlhbHlkIznrqHnkIYgPiBreW91ZG91a2FucmlcIDsKK+a1t+WkluaXheihjCA+IGthaWdhaXJ5b2tvdVwgOwor5LiN5a+p5bCL5ZWPID4gZnVzaGluamlubW9uXCA7Civosqzku7vou6Llq4EgPiBzZWtpbmludGVua2FcIDsKK+mVt+acn+aJi+W9oiA+IGNob3VraXRlZ2F0YVwgOwor57Wm5LiO5rC05rqWID4ga3l1dXlvc3VpanVuXCA7CivlsJHmlbDnsr7pi60gPiBzaG91c3V1c2VpZWlcIDsKK+i7ouaPm+ekvuWCtSA+IHRlbmthbnNoYXNhaVwgOwor5rK/5bK45ryB5qWtID4gZW5nYW5neW9neW91XCA7CivkuqTpmpvnpL7kvJogPiBrb3VzYWlzaGFrYWlcIDsKK+WItumZkOS6i+mghSA+IHNlaWdlbmppa29rdVwgOwor5YiR5LqL6LKs5Lu7ID4ga2VpamlzZWtpbmluXCA7Civmt7flkIjngavolqwgPiBrb25nb3VrYXlha3VcIDsKK+WPjOWLmeWlkee0hCA+IHNvdW11a2VpeWFrdVwgOwor5Y+k5YW45a2m6ICFID4ga290ZW5nYWt1c2hhXCA7CivnlJ/mtLvmibbliqkgPiBzZWlrYXRzdWZ1am9cIDsKK+eUqOebiueJqeaoqSA+IHlvdWVraWJ1a2tlblwgOwor5Ye65Yuk5pmC6ZaTID4gc2h1a2tpbmppa2FuXCA7Civnm7jplqLkv4LmlbAgPiBzb3VrYW5rZWlzdXVcIDsKK+ekvuS8muS/nemanCA+IHNoYWthaWhvc2hvdVwgOwor5Y2U5ZCM5YuV5L2cID4ga3lvdWRvdWRvdXNhXCA7Civmg4Xnt5LnupLntr8gPiBqb3VjaG90ZW5tZW5cIDsKK+eri+aGsuWQm+S4uyA+IHJpa2tlbmt1bnNodVwgOwor5peF5Yi45p+76Ki8ID4gcnlva2Vuc2FzaG91XCA7CivokL3oirHni7zol4kgPiByYWtrYXJvdXpla2lcIDsKK+WMluWtpuijveWTgSA+IGthZ2FrdXNlaWhpblwgOwor6YGp5oCn5qSc5p+7ID4gdGVraXNlaWtlbnNhXCA7CivnlJ/lkb3np5HlraYgPiBzZWltZWlrYWdha3VcIDsKK+W3peS9nOapn+aisCA+IGtvdXNha3VraWthaVwgOwor5Zuz5pu46aSo5a2mID4gdG9zaG9rYW5nYWt1XCA7Civkurrlj6PllY/poYwgPiBqaW5rb3Vtb25kYWlcIDsKK+W+oeeUqOWtpuiAhSA+IGdveW91Z2FrdXNoYVwgOwor5rCX5Zyn6YWN572uID4ga2lhdHN1aGFpY2hpXCA7CivmmYLpmZDniIblvL4gPiBqaWdlbmJha3VkYW5cIDsKK+iHqueEtuWvvuaVsCA+IHNoaXplbnRhaXN1dVwgOwor5aSc6ZaT5pKu5b2xID4geWFrYW5zYXRzdWVpXCA7CivnpZ7ntYznuYrntq0gPiBzaGlua2Vpc2VuJydpXCA7CivmtYHli5XosqDlgrUgPiByeXV1ZG91ZnVzYWlcIDsKK+acgOmrmOiomOmMsiA+IHNhaWtvdWtpcm9rdVwgOwor5paw6KaP5LqL5qWtID4gc2hpbmtpamlneW91XCA7Civlp5PlkI3liKTmlq0gPiBzZWltZWloYW5kYW5cIDsKK+WPjeWvvue1puS7mCA+IGhhbnRhaWt5dXVmdVwgOwor5pWX5oim5oqV5omLID4gaGFpc2VudG91c2h1XCA7CivmrabmvKLkuInpjq4gPiBidWthbnNhbmNoaW5cIDsKK+S4gOacneS4gOWklSA+IGl0Y2hvdWlzc2VraVwgOwor5a625YaF5bel5qWtID4ga2FuYWlrb3VneW91XCA7CivmtYXlraboj7LmiY0gPiBzZW5nYWt1aGlzYWlcIDsKK+a3t+WQiOe1jOa4iCA+IGtvbmdvdWtlaXphaVwgOwor5biC5rCR5Zuj5L2TID4gc2hpbWluZGFudGFpXCA7CivkvIHmpa3pgKPlkIggPiBraWd5b3VyZW5nb3VcIDsKK+aZguS7o+aEn+immiA+IGppZGFpa2Fua2FrdVwgOwor5YWx5ZCM5Zug5a2QID4ga3lvdWRvdWluc2hpXCA7CivkuIDmhI/lsILlv4MgPiBpY2hpaXNlbnNoaW5cIDsKK+asp+exs+iruOWbvSA+IG91YmVpc2hva29rdVwgOwor6Z2p5ZG96YGL5YuVID4ga2FrdW1laXVuZG91XCA7CivntJTnsovln7nppIogPiBqdW5zdWliYWl5b3VcIDsKK+WGjeS4ieWGjeWbmyA+IHNhaXNhbnNhaXNoaVwgOwor5b2i6ICM5LiK5a2mID4ga2Vpamlqb3VnYWt1XCA7CivlnLDmlrnlm6PkvZMgPiBjaGlob3VkYW50YWlcIDsKK+WFrOawkeWtpuagoSA+IGtvdW1pbmdha2tvdVwgOwor5L6h5qC857Wx5Yi2ID4ga2FrYWt1dG91c2VpXCA7CivmhI/ljKDnmbvpjLIgPiBpc2hvdXRvdXJva3VcIDsKK+WPl+WLleWWq+eFmSA+IGp1ZG91a2l0c3VlblwgOwor6KO957y25bel5aC0ID4gc2Vpa2Fua291am91XCA7Civlm7rlvaLnh4PmlpkgPiBrb2tlaW5lbnJ5b3VcIDsKK+mDteS+v+eCuuabvyA+IHl1dWJpbmthd2FzZVwgOwor5Y+j6aCt5byB6KuWID4ga291dG91YmVucm9uXCA7Civnq4vkvZPljJblraYgPiByaXR0YWlrYWdha3VcIDsKK+WTgeihjOaWueatoyA+IGhpbmtvdWhvdXNlaVwgOwor6LKp5aOy5L6h5qC8ID4gaGFuYmFpa2FrYWt1XCA7CivmgYvmhJvntZDlqZogPiByZW4nJ2Fpa2Vra29uXCA7CivljJfnsbPlnJ/kurogPiBob2t1YmVpZG9qaW5cIDsKK+iHqOa1t+WtpuagoSA+IHJpbmthaWdha2tvdVwgOwor5LiA6Kqe5LiA6KqeID4gaWNoaWdvaWNoaWdvXCA7CivljYrlrpjljYrmsJEgPiBoYW5rYW5oYW5taW5cIDsKK+Wkp+WbveS4u+e+qSA+IHRhaWtva3VzaHVnaVwgOwor5rSL5pyN566q56ylID4geW91ZnVrdWRhbnN1XCA7CivkuIDmlrnpgJrooYwgPiBpcHBvdXRzdXVrb3VcIDsKK+WPguiAg+aWh+eMriA+IHNhbmtvdWJ1bmtlblwgOwor5L+h5Luw566H5p2hID4gc2hpbmtvdWtham91XCA7CivmsJHplpPos4fmnKwgPiBtaW5rYW5zaGlob25cIDsKK+S4gOaxgeS4gOiPnCA+IGljaGlqdXVpc3NhaVwgOwor5Y2B56iu56u25oqAID4gamlzc2h1a3lvdWdpXCA7CivlubPlkozlhbHlrZggPiBoZWl3YWt5b3V6b25cIDsKK+WNmOe3mumBi+i7oiA+IHRhbnNlbicndW50ZW5cIDsKK+S6i+W+jOaJv+irviA+IGppZ29zaG91ZGFrdVwgOwor5pig5YOP5L+h5Y+3ID4gZWl6b3VzaGluZ291XCA7Civlronlhajlr77nrZYgPiBhbnplbnRhaXNha3VcIDsKK+eUn+eUo+e1hOWQiCA+IHNlaXNhbmt1bWlhaVwgOwor5bGF5L2P5rC05rqWID4ga3lvanV1c3VpanVuXCA7CivnrpfnlKjmlbDlrZcgPiBzYW4nJ3lvdXN1dWppXCA7Civlp4nlprnkvJrnpL4gPiBzaGltYWlnYWlzaGFcIDsKK+mBuOaMmeWFrOWgsSA+IHNlbmt5b2tvdWhvdVwgOwor5LuP5YOP5LqM5bqnID4gYnV0c3V6b3VuaXphXCA7CivoprPlhYnml4XooYwgPiBrYW5rb3VyeW9rb3VcIDsKK+eglOeptuiqsumhjCA+IGtlbmt5dXVrYWRhaVwgOwor6YeR5ou+5LiH5YaGID4ga2luanV1bWFuJydlblwgOwor5bGO5bC/5Yem55CGID4gc2hpbnlvdXNob3JpXCA7CivllYbkuovkvJrnpL4gPiBzaG91amlnYWlzaGFcIDsKK+mbhuWQiOWgtOaJgCA+IHNodXVnb3ViYXNob1wgOwor5b2i5a656Kme5bm5ID4ga2VpeW91c2hpa2FuXCA7CivmnaHku7blj43lsIQgPiBqb3VrZW5oYW5zaGFcIDsKK+S/oeW+kuS8neWLlSA+IHNoaW50b2RlbmRvdVwgOwor5pyJ5paZ6YGT6LevID4geXV1cnlvdWRvdXJvXCA7Civmpa3li5nlpqjlrrMgPiBneW91bXVib3VnYWlcIDsKK+mYv+eJh+S4reavkiA+IGFoZW5jaHV1ZG9rdVwgOwor57Sw6IOe6J6N5ZCIID4gc2FpYm91eXV1Z291XCA7CivlkI3kurrmsJfos6ogPiBtZWlqaW5rYXRhZ2lcIDsKK+mDteaUv+Wkp+iHoyA+IHl1dXNlaWRhaWppblwgOwor5Lq65qip5pOB6K23ID4gamlua2VuJyd5b3Vnb1wgOwor5YWE5byf5Zan5ZipID4ga3lvdWRhaWdlbmthXCA7Civlt6HoiKrpgJ/luqYgPiBqdW5rb3Vzb2t1ZG9cIDsKK+S4gOWknOWkp+iHoyA+IGljaGl5YWRhaWppblwgOwor542F5a2Q5aWu6L+FID4gc2hpc2hpZnVuamluXCA7Civplqjnp4DkvZzlrrYgPiBrZWlzaHV1c2Fra2FcIDsKK+WwgumWgOWtpuagoSA+IHNlbm1vbmdha2tvdVwgOwor5pS56Z2p6YGO56iLID4ga2Fpa2FrdWthdGVpXCA7Civnt4rmgKXmjqrnva4gPiBraW5reXV1c29jaGlcIDsKK+eUu+ernOWkqeedmyA+IGdhcnlvdXRlbnNlaVwgOwor5LiA6YCy5LiA6YCAID4gaXNzaGluJydpdHRhaVwgOwor5a6a5bi454q25oWLID4gdGVpam91am91dGFpXCA7CivmjIfmlbDplqLmlbAgPiBzaGlzdXVrYW5zdXVcIDsKK+ippumok+enkeebriA+IHNoaWtlbmthbW9rdVwgOwor54G95a6z5pWR5YqpID4gc2FpZ2Fpa3l1dWpvXCA7Civlhrbph5HlrabogIUgPiB5YWtpbmdha3VzaGFcIDsKK+WcsOaWuemKgOihjCA+IGNoaWhvdWdpbmtvdVwgOwor57WM5riI55m65bGVID4ga2VpemFpaGF0dGVuXCA7CivnibnmrorlhbXlmaggPiB0b2t1c2h1aGVpa2lcIDsKK+a1t+S4reWFrOWckiA+IGthaWNodXVrb3VlblwgOwor5Zuj5L2T5peF6KGMID4gZGFudGFpcnlva291XCA7CivkuInlj4nnpZ7ntYwgPiBzYW5zYXNoaW5rZWlcIDsKK+assuaxguS4jea6gCA+IHlva2t5dXVmdW1hblwgOwor57WC5aSc5Za25qWtID4gc2h1dXlhZWlneW91XCA7CivlnLDkuIvntYTnuZQgPiBjaGlrYXNvc2hpa2lcIDsKK+iAkOmch+WutuWxiyA+IHRhaXNoaW5rYW9rdVwgOwor5q2j5LiJ6KeS5b2iID4gc2Vpc2Fua2Fra2VpXCA7CivotbDooYzou4rnt5ogPiBzb3Vrb3VzaGFzZW5cIDsKK+epuuawl+iqv+aVtCA+IGt1dWtpY2hvdXNlaVwgOwor6YGL5YuV56We57WMID4gdW5kb3VzaGlua2VpXCA7Civlj5fog47lkYrnn6UgPiBqdXRhaWtva3VjaGlcIDsKK+ino+etlOeUqOe0mSA+IGthaXRvdXlvdXNoaVwgOwor5LiN5omA5a2Y6ICFID4gZnVzaG96b25tb25vXCA7CivliqDlt6XnlKPmpa0gPiBrYWtvdXNhbmd5b3VcIDsKK+imj+agvOWOn+ahiCA+IGtpa2FrdWdlbicnYW5cIDsKK+WSjOmtgua0i+aJjSA+IHdha29uJyd5b3VzYWlcIDsKK+WPjeaIpumBi+WLlSA+IGhhbnNlbicndW5kb3VcIDsKK+iruOihjOeEoeW4uCA+IHNob2d5b3VtdWpvdVwgOwor5aWR57SE5pyf6ZaTID4ga2VpeWFrdWtpa2FuXCA7Civkurrmlofnp5HlraYgPiBqaW5idW5rYWdha3VcIDsKK+S4gOS6uuS4gOS6uiA+IGhpdG9yaWJpdG9yaVwgOwor5Yqx5oyv57Sg5a2QID4gcmVpc2hpbnNvc2hpXCA7Civlroflrpnlt6XlraYgPiB1Y2h1dWtvdWdha3VcIDsKK+S6i+WJjeaXpeS7mCA+IGppemVuaGlkenVrZVwgOwor6Ieq5a625pKe552AID4gamlrYWRvdWNoYWt1XCA7Civnn7PngbDogqXmlpkgPiBzZWtrYWloaXJ5b3VcIDsKK+WFrOebiuWEquWFiCA+IGtvdWVraXl1dXNlblwgOwor5pel6LGK5pys57eaID4gbmlwcG91aG9uc2VuXCA7Civnn7PmsrnljJblraYgPiBzZWtpeXVrYWdha3VcIDsKK+ebuOWvvumAn+W6piA+IHNvdXRhaXNva3Vkb1wgOwor6buS5a2X5YCS55SjID4ga3Vyb2ppdG91c2FuXCA7CivlhoXmhoLlpJbmgqMgPiBuYWl5dXVnYWlrYW5cIDsKK+mWouaVsOepuumWkyA+IGthbnN1dWt1dWthblwgOwor5LuY5bGe55eF6ZmiID4gZnV6b2t1YnlvdWluXCA7Civoh6jluorljLvlraYgPiByaW5zaG91aWdha3VcIDsKK+exs+a1t+WFtemaiiA+IGJlaWthaWhlaXRhaVwgOwor5oux5omL5YKN6KazID4ga291c2h1Ym91a2FuXCA7CivpoIbms5Xpl5jkuokgPiBqdW5wb3V0b3Vzb3VcIDsKK+aIpumXmOmZo+WcsCA+IHNlbnRvdWppbmNoaVwgOwor5LiA5oyZ5LiA5YuVID4gaWtreW9pY2hpZG91XCA7CivlqIHlmoflsITmkoMgPiBpa2FrdXNoYWdla2lcIDsKK+Wun+WcsOippumokyA+IGppdGNoaXNoaWtlblwgOwor5Lit6ZaT5pmv5rCXID4gY2h1dWthbmtlaWtpXCA7Civlj7jmlZnmqKnluqcgPiBzaGlreW91a2VuemFcIDsKK+WkieabtOWxpeattCA+IGhlbmtvdXJpcmVraVwgOwor6YCj5oim6YCj5pWXID4gcmVuc2VucmVucGFpXCA7Civmra/mp73ohr/mvI8gPiBzaGlzb3Vub3Vyb3VcIDsKK+e0oOeykuWtkOirliA+IHNvcnl1dXNoaXJvblwgOwor6KGb5pif5Lit57aZID4gZWlzZWljaHV1a2VpXCA7CivlnKflu7blt6XloLQgPiBhdHN1ZW5rb3Vqb3VcIDsKK+WIhuWoqeiHpeW6iiA+IGJ1bmJlbmdhc2hvdVwgOwor5Lq66YCg57W557O4ID4gamluem91a2Vuc2hpXCA7Civnl5Xot6HlmajlrpggPiBrb25zZWtpa2lrYW5cIDsKK+ibjeWFieWhl+aWmSA+IGtlaWtvdXRvcnlvdVwgOwor5YWs5Yik6Kq/5p+7ID4ga291aGFuY2hvdXNhXCA7CivpgKPntaHkvJrorbAgPiByZW5yYWt1a2FpZ2lcIDsKK+WFrOaVmeimgeeQhiA+IGtvdWt5b3V5b3VyaVwgOwor6aqo6JGj5ZOB5bqXID4ga290dG91aGludGVuXCA7CivljYHkuozmjIfohbggPiBqdXVuaXNoaWNob3VcIDsKK+iyoeaUv+WVj+mhjCA+IHphaXNlaW1vbmRhaVwgOwor6KiA6Kqe5a2m6ICFID4gZ2VuZ29nYWt1c2hhXCA7Civph5Hono3mqZ/plqIgPiBraW4nJ3l1dWtpa2FuXCA7CivnlLDlnJLoqankurogPiBkZW4nJ2Vuc2hpamluXCA7CivnrYnmr5TntJrmlbAgPiB0b3VoaWt5dXVzdXVcIDsKK+mBk+WMluW9ueiAhSA+IGRvdWtleWFrdXNoYVwgOwor5rSl5rSl5rWm5rWmID4gdHN1ZHp1dXJhdXJhXCA7Civkub7nh6XlnLDluK8gPiBrYW5zb3VjaGl0YWlcIDsKK+mfs+evgOS4u+mfsyA+IG9uc2V0c3VzaHVvblwgOwor6Iiq5rW35pel6KqMID4ga291a2Fpbmlzc2hpXCA7CivljYrlsIHlu7rmgKcgPiBoYW5ob3VrZW5zZWlcIDsKK+aBi+aEm+mWouS/giA+IHJlbicnYWlrYW5rZWlcIDsKK+aIkOmVt+mBjueoiyA+IHNlaWNob3VrYXRlaVwgOwor6YCj5biv5L+d6Ki8ID4gcmVudGFpaG9zaG91XCA7Civlv4Poh5PogqXlpKcgPiBzaGluem91aGlkYWlcIDsKK+WkqeWjjOeEoeeqriA+IHRlbmpvdW11a3l1dVwgOwor5YWo6Lqr6bq76YWUID4gemVuc2hpbm1hc3VpXCA7Civlm57nt5rkuqTmj5sgPiBrYWlzZW5rb3VrYW5cIDsKK+i8uOWFpeWItumZkCA+IHl1bnl1dXNlaWdlblwgOwor5qeL6YCg5LiN5rOBID4ga291em91ZnVreW91XCA7Civoh6rlt7HlhbHlvbkgPiBqaWtva3lvdXlha3VcIDsKK+ani+aIkOWIhuWtkCA+IGtvdXNlaWJ1bnNoaVwgOwor5biC5aC05bGV6ZaLID4gc2hpam91dGVua2FpXCA7CivlupfpoK3osqnlo7IgPiB0ZW50b3VoYW5iYWlcIDsKK+WQiOWUsemaiuWToSA+IGdhc3Nob3V0YWlpblwgOwor57WM6LK75YmK5ribID4ga2VpaGlzYWt1Z2VuXCA7CivmlofoirjlvqnoiIggPiBidW5nZWlmdWtrb3VcIDsKK+eSsOWkquW5s+a0iyA+IGthbnRhaWhlaXlvdVwgOwor5ZCN576p5pu45o+bID4gbWVpZ2lrYWtpa2FlXCA7Civph43lpKfllY/poYwgPiBqdXVkYWltb25kYWlcIDsKK+mdnuenkeWtpueahCA+IGhpa2FnYWt1dGVraVwgOwor6ZmQ5a6a5oim5LqJID4gZ2VudGVpc2Vuc291XCA7CivkuI3lnKjoqLzmmI4gPiBmdXphaXNob3VtZWlcIDsKK+WMu+WtpuWNmuWjqyA+IGlnYWt1aGFrdXNoaVwgOwor5qGI5YaF5pu45ZGIID4gYW4nJ25haXNob3RlaVwgOwor5bCC5Yi25ZCb5Li7ID4gc2Vuc2Vpa3Vuc2h1XCA7Civli6Tli5nlrp/nuL4gPiBraW5tdWppc3Nla2lcIDsKK+apn+WvhuS6i+mghSA+IGtpbWl0c3VqaWtvdVwgOwor5pep5pyf6Ki65patID4gc291a2lzaGluZGFuXCA7CivlgZzmraLkvqHmoLwgPiB0ZWlzaGlrYWtha3VcIDsKK+iomOaGtuWuuemHjyA+IGtpb2t1eW91cnlvdVwgOwor5Ye655Sf6YGO5YmwID4gc2h1c3NlaWtham91XCA7CivlvJXpgIDoiIjooYwgPiBpbnRhaWtvdWd5b3VcIDsKK+S4ieWRs+e3muW8viA+IHNoYW1pc2VuaGlraVwgOwor6Kmm6aiT5q616ZqOID4gc2hpa2VuZGFua2FpXCA7Civou43kuovku4vlhaUgPiBndW5qaWthaW55dXVcIDsKK+aUv+ayu+mBk+W+syA+IHNlaWppZG91dG9rdVwgOwor5Zu95Za25LyB5qWtID4ga29rdWVpa2lneW91XCA7CivluLDlt6PmnKzog70gPiBraXNvdWhvbicnbm91XCA7CivkuKHmgKflhbfmnIkgPiByeW91c2VpZ3V5dXVcIDsKK+m7hOmHkeS4h+iDvSA+IG91Z29uYmFuJydub3VcIDsKK+aLheW9k+iqsumVtyA+IHRhbnRvdWthY2hvdVwgOwor5re35oiQ56u25oqAID4ga29uc2Vpa3lvdWdpXCA7CivlirTlg43mlLvli6IgPiByb3Vkb3Vrb3VzZWlcIDsKK+mWkeipseS8kemhjCA+IGthbndha3l1dWRhaVwgOwor5b255YuZ6LOg5YSfID4gZWtpbXViYWlzaG91XCA7CivlubPlkoznlKPmpa0gPiBoZWl3YXNhbmd5b3VcIDsKK+WNsOixoeaJueiplSA+IGluc2hvdWhpaHlvdVwgOwor5YGc5rue5YmN57eaID4gdGVpdGFpemVuc2VuXCA7CivmsJHplpPmlL7pgIEgPiBtaW5rYW5ob3Vzb3VcIDsKK+WxnuWcsOS4u+e+qSA+IHpva3VjaGlzaHVnaVwgOwor5Ye654mI6YOo5pWwID4gc2h1cHBhbmJ1c3V1XCA7Civoh6rli5XkurrlvaIgPiBqaWRvdW5pbmd5b3VcIDsKK+aEj+W/l+iWhOW8sSA+IGlzaGloYWt1amFrdVwgOwor5b+D55CG5oim5LqJID4gc2hpbnJpc2Vuc291XCA7CivoqrLnqI7miYDlvpcgPiBrYXplaXNob3Rva3VcIDsKK+a1geihjOS9nOWutiA+IHJ5dXVrb3VzYWtrYVwgOwor5qC55rCX5LuV5LqLID4ga29ua2lzaGlnb3RvXCA7Civou73niq/nvarms5UgPiBrZWloYW56YWlob3VcIDsKK+aPo+aRqeaGtua4rCA+IHNoaW1hb2t1c29rdVwgOwor5pS55L+u5bel5LqLID4ga2Fpc2h1dWtvdWppXCA7Civlr77mipfmhI/orZggPiB0YWlrb3Vpc2hpa2lcIDsKK+mBk+i3r+S6pOmAmiA+IGRvdXJva291dHN1dVwgOwor5rOV5bu35L6u6L6xID4gaG91dGVpYnVqb2t1XCA7CivlhYnlrabmqZ/morAgPiBrb3VnYWt1a2lrYWlcIDsKK+iEseWtl+iomOWPtyA+IGRhdHN1amlraWdvdVwgOwor5YWs5pyJ5rC06Z2iID4ga291eXV1c3VpbWVuXCA7CivpmbDmgKflj43lv5wgPiBpbnNlaWhhbicnbm91XCA7CivlnYfooaHntYzmuIggPiBraW5rb3VrZWl6YWlcIDsKK+iYreagveWfueazlSA+IHJhbnNhaWJhaWhvdVwgOwor5q2m6KOF6ZuG5ZujID4gYnVzb3VzaHV1ZGFuXCA7CivljbDpkZHoqLzmmI4gPiBpbmthbnNob3VtZWlcIDsKK+Wfn+WGheiyv+aYkyA+IGlraW5haWJvdWVraVwgOwor5L2/5b6S6KGM5LydID4gc2hpdG9neW91ZGVuXCA7CivkvbPkurroloTlkb0gPiBrYWppbmhha3VtZWlcIDsKK+acieS9k+izh+eUoyA+IHl1dXRhaXNoaXNhblwgOwor5a++5rOw6Zai5L+CID4gdGFpdGFpa2Fua2VpXCA7CivmrKflt57pgKPlkIggPiBvdXNodXVyZW5nb3VcIDsKK+Wls+WtkOWtpueUnyA+IGpvc2hpZ2FrdXNlaVwgOwor5Y2Y57SU5bmz5Z2HID4gdGFuanVuaGVpa2luXCA7Civlho3luqbnorroqo0gPiBzYWlkb2tha3VuaW5cIDsKK+msvOmdouS8neW/gyA+IGtpbWVuZGVuc2hpblwgOwor6LK/5piT6buS5a2XID4gYm91ZWtpa3Vyb2ppXCA7CivntYTlkIjlk6HoqLwgPiBrdW1pYWlpbnNob3VcIDsKK+eGn+afv+S4u+e+qSA+IGp1a3VzaGlzaHVnaVwgOwor5Ya35oi/6KOF572uID4gcmVpYm91c291Y2hpXCA7Civnj77lnLDnlJ/nlKMgPiBnZW5jaGlzZWlzYW5cIDsKK+aWsOiBnuiomOiAhSA+IHNoaW5idW5raXNoYVwgOwor5aSn5bGx6bO05YuVID4gdGFpemFubWVpZG91XCA7Civms6LnirbmlLvmkoMgPiBoYWpvdWtvdWdla2lcIDsKK+WNmOiomOaKleelqCA+IHRhbmtpdG91aHlvdVwgOwor5LiA5qyh6Zai5pWwID4gaWNoaWppa2Fuc3V1XCA7CivlubzlvaLpgLLljJYgPiB5b3VrZWlzaGlua2FcIDsKK+mdkueJqeW4guWgtCA+IGFvbW9ub2ljaGliYVwgOwor5a2m55Sf6YGL5YuVID4gZ2FrdXNlaXVuZG91XCA7CivloLHlvqnmjqrnva4gPiBob3VmdWt1c29jaGlcIDsKK+WbnuW+qeWPr+iDvSA+IGthaWZ1a3VrYW5vdVwgOwor5q2j6KeS5a6a5pyoID4gc2Vpa2FrdWpvdWdpXCA7CivmrbTlj7LlnLDnkIYgPiByZWtpc2hpY2hpcmlcIDsKK+W5tOS4reeEoeS8kSA+IG5lbmp1dW11a3l1dVwgOwor55S756uc54K5552bID4gZ2FyeW91dGVuc2VpXCA7Civku6PmlbDnmoTlkowgPiBkYWlzdXV0ZWtpd2FcIDsKK+W3puWPs+ebuOensCA+IHNheXV1c291c2hvdVwgOwor5bid5Zu95Li7576pID4gdGVpa29rdXNodWdpXCA7Civopb/mtIvmnb7pnLIgPiBzZWl5b3VzaG91cm9cIDsKK+Wbnui7ouWLmOWumiA+IGthaXRlbmthbmpvdVwgOwor5L6d6KiX5bCE5pKDID4gaXRha3VzaGFnZWtpXCA7CivmraPopo/ooajnj74gPiBzZWlraWh5b3VnZW5cIDsKK+e3j+mgmOS6i+mkqCA+IHNvdXJ5b3VqaWthblwgOwor55uX6Zuj6Ziy5q2iID4gdG91bmFuYm91c2hpXCA7Civmu4Xnp4HlpYnlhawgPiBtZXNzaGlob3Vrb3VcIDsKK+e3j+WQiOenkeWtpiA+IHNvdWdvdWthZ2FrdVwgOwor5ouY5p2f5pmC6ZaTID4ga291c29rdWppa2FuXCA7Civlm5vmlrnlhavmlrkgPiBzaGlob3VoYXBwb3VcIDsKK+S4u+imgeiruOWFgyA+IHNodXlvdXNob2dlblwgOwor5Y2B5YiG5p2h5Lu2ID4ganV1YnVuam91a2VuXCA7CivmmYLku6PmgJ3mva4gPiBqaWRhaXNoaWNob3VcIDsKK+S7o+eQhuaKleelqCA+IGRhaXJpdG91aHlvdVwgOwor5Y+k5YW46Z+z5qW9ID4ga290ZW4nJ29uZ2FrdVwgOwor6YqA6KGM5by355uXID4gZ2lua291Z291dG91XCA7CivotbfniIboo4Xnva4gPiBraWJha3Vzb3VjaGlcIDsKK+mAruaNleioseirviA+IHRhaWhva3lvZGFrdVwgOwor5q2v54mZ55a+5oKjID4gc2hpZ2FzaGlra2FuXCA7CivlhbHlkIznpZbnlYwgPiBreW91ZG91c29rYWlcIDsKK+ayueaWreWkp+aVtSA+IHl1ZGFudGFpdGVraVwgOwor5bCC5qWt6L6y5a62ID4gc2VuZ3lvdW5vdWthXCA7CivnhrHlj6/loZHmgKcgPiBuZXRzdWthc29zZWlcIDsKK+W4guacieiyoeeUoyA+IHNoaXl1dXphaXNhblwgOwor5Zu95a626LOg5YSfID4ga29ra2FiYWlzaG91XCA7CivpnZnmhYvnt4/oqIggPiBzZWl0YWlzb3VrZWlcIDsKK+WwgumWgOmbkeiqjCA+IHNlbm1vbnphc3NoaVwgOwor5by+5Li45YiX6LuKID4gZGFuZ2FucmVzc2hhXCA7CivlpKfmraPmmYLku6MgPiB0YWlzaG91amlkYWlcIDsKK+ioreioiOWkieabtCA+IHNla2tlaWhlbmtvdVwgOwor5LqG6Kej5LqL6aCFID4gcnlvdWthaWppa291XCA7Civlrp/pqJPmrrXpmo4gPiBqaWtrZW5kYW5rYWlcIDsKK+WumOWDmuaUv+ayuyA+IGthbnJ5b3VzZWlqaVwgOwor5Lq656iu5ZWP6aGMID4gamluc2h1bW9uZGFpXCA7CivmvJTnv5LllY/poYwgPiBlbnNodXVtb25kYWlcIDsKK+WKtOWDjee1hOWQiCA+IHJvdWRvdWt1bWlhaVwgOwor6YaH6aKo576O5L+XID4ganVucHV1Yml6b2t1XCA7CivpgKDlj43mnInnkIYgPiB6b3VoYW4nJ3l1dXJpXCA7CivmtojosrvmgKflkJEgPiBzaG91aGlzZWlrb3VcIDsKK+W+oeeUqOaWsOiBniA+IGdveW91c2hpbmJ1blwgOwor5YWs5a6a5L6h5qC8ID4ga291dGVpa2FrYWt1XCA7CivloIbnqY3kvZznlKggPiB0YWlzZWtpc2F5b3VcIDsKK+aUu+WuiOWQjOebnyA+IGtvdXNodWRvdW1laVwgOwor5bel56eR5aSn5a2mID4ga291a2FkYWlnYWt1XCA7CivnpL7lhazpgKPlkIggPiBzaGFrb3VyZW5nb3VcIDsKK+i7jeS6i+aVmee3tCA+IGd1bmppa3lvdXJlblwgOwor5bmz5ZKM5p2h57SEID4gaGVpd2Fqb3V5YWt1XCA7CivnhKHos4fmoLzogIUgPiBtdXNoaWtha3VzaGFcIDsKK+ebuOauuumWoueojiA+IHNvdXNhaWthbnplaVwgOwor5Y2z5pmC5YGc5oimID4gc29rdWppdGVpc2VuXCA7CivmuKzlnLDooZvmmJ8gPiBzb2t1Y2hpZWlzZWlcIDsKK+epuuS4rea1rumBiiA+IGt1dWNodXVmdXl1dVwgOwor5L+h55So6KmQ5qy6ID4gc2hpbicneW91c2FnaVwgOwor5piO55y455qT5q2vID4gbWVpYm91a291c2hpXCA7CivkuIrnrYnlhbXmm7kgPiBqb3V0b3VoZWlzb3VcIDsKK+mHkeWIqeaUv+etliA+IGtpbnJpc2Vpc2FrdVwgOwor6I2J5qC55pyo55quID4gc291a29ubW9rdWhpXCA7CivlirTlg43ngb3lrrMgPiByb3Vkb3VzYWlnYWlcIDsKK+aOqOWumuW5tOm9oiA+IHN1aXRlaW5lbnJlaVwgOwor5pel5pys5paH5a2mID4gbmlob25idW5nYWt1XCA7Civlrp/pqJPnp5HlraYgPiBqaWtrZW5rYWdha3VcIDsKK+WNsemZuuS/oeWPtyA+IGtpa2Vuc2hpbmdvdVwgOwor6KW/5qyn6Ku45Zu9ID4gc2Vpb3VzaG9rb2t1XCA7CivlpJzplpPllrbmpa0gPiB5YWthbicnZWlneW91XCA7Civkvb/lvpLmib/kvJ0gPiBzaGl0b3Nob3VkZW5cIDsKK+WbveWutuS4u+W4rSA+IGtva2thc2h1c2VraVwgOwor6Zuq6KaL54Gv57GgID4geXVraW1pZG91cm91XCA7CivkuLvluK3liKTkuosgPiBzaHVzZWtpaGFuamlcIDsKK+WumOijveiRieabuCA+IGthbnNlaWhhZ2FraVwgOwor5Lyd6KiY5paH5a2mID4gZGVua2lidW5nYWt1XCA7CivliLbli5XmlL7lsIQgPiBzZWlkb3Vob3VzaGFcIDsKK+azleW+i+ihjOeCuiA+IGhvdXJpdHN1a291aVwgOwor5YWx55Sj5Zu95a62ID4ga3lvdXNhbmtva2thXCA7CivmlZnogrLmqZ/plqIgPiBreW91aWt1a2lrYW5cIDsKK+mdnuW4uOS/oeWPtyA+IGhpam91c2hpbmdvdVwgOwor6Zuq6KaL6Zqc5a2QID4geXVraW1pc2hvdWppXCA7CivmqZ/mp4vmlLnpnakgPiBraWtvdWthaWtha3VcIDsKK+W+oeeOieadk+WtkCA+IG90YW1hamFrdXNoaVwgOwor5pyA57WC57WQ5p6cID4gc2Fpc2h1dWtla2thXCA7CivnibnmgbXplqLnqI4gPiB0b2trZWlrYW56ZWlcIDsKK+WcsOmch+S6iOefpSA+IGppc2hpbicneW9jaGlcIDsKK+WFseWQjOWLn+mHkSA+IGt5b3Vkb3Vib2tpblwgOwor5LqL5YuZ5b2T5bGAID4gamltdXRvdWt5b2t1XCA7CivkuInlj7fpm5HoqowgPiBzYW5nb3V6YXNzaGlcIDsKK+a8j+a0qembu+a1gSA+IHJvdWVpZGVucnl1dVwgOwor5a6j5oim5biD5ZGKID4gc2Vuc2VuZnVrb2t1XCA7CivlhbHnlKPlnLDljLogPiBreW91c2FuY2hpa3VcIDsKK+S7o+eUqOaVmeWToSA+IGRhaXlvdWt5b3VpblwgOwor5LiJ6KeS5a6a6KaPID4gc2Fua2FrdWpvdWdpXCA7Civopb/mtIvlsIbmo4sgPiBzZWl5b3VzaG91Z2lcIDsKK+S/oeWPt+eEoeimliA+IHNoaW5nb3VtdXNoaVwgOwor5Zyf5Zyw5pS56Z2pID4gdG9jaGlrYWlrYWt1XCA7CivngKzmiLjnianluIIgPiBzZXRvbW9ub2ljaGlcIDsKK+WuieWAjeW3nemkhSA+IGFiZWthd2Ftb2NoaVwgOwor5p2x5qyn6Ku45Zu9ID4gdG91b3VzaG9rb2t1XCA7Civot6Hnm67nm7jntpogPiBhdG9tZXNvdXpva3VcIDsKK+S6uuW3peWRvOWQuCA+IGppbmtvdWtva3l1dVwgOwor6Iiq56m66YO15L6/ID4ga291a3V1eXV1YmluXCA7CivkuKbooYzovLjlhaUgPiBoZWlrb3V5dW55dXVcIDsKK+e1jOa4iOagvOW3riA+IGtlaXphaWtha3VzYVwgOwor56S+5Lya6LOH5pysID4gc2hha2Fpc2hpaG9uXCA7CivlpJbkuqTnibnmqKkgPiBnYWlrb3V0b2trZW5cIDsKK+alreWLmeaPkOaQuiA+IGd5b3VtdXRlaWtlaVwgOwor5r2c5Zyo5oSP6K2YID4gc2VuemFpaXNoaWtpXCA7CivliLblvqHoo4Xnva4gPiBzZWlneW9zb3VjaGlcIDsKK+aJgOaJgOaWueaWuSA+IHNob3Nob2hvdWJvdVwgOwor5Zu65L2T54eD5paZID4ga290YWluZW5yeW91XCA7CivpvLvlhYPmgJ3moYggPiBoYW5hbW90b2ppYW5cIDsKK+WPs+aKmOemgeatoiA+IHVzZXRzdWtpbnNoaVwgOwor5Y2D5oCd5LiH6ICDID4gc2Vuc2hpYmFua291XCA7Civkvp3poZjpgIDogbcgPiBpZ2FudGFpc2hva3VcIDsKK+S4iemDqOWQiOWUsSA+IHNhbmJ1Z2Fzc2hvdVwgOwor6KiA6Kqe5Lit5p6iID4gZ2VuZ29jaHV1c3V1XCA7Civnj77ku6PmlofmmI4gPiBnZW5kYWlidW5tZWlcIDsKK+mkiuitt+Wtpue0miA+IHlvdWdvZ2Fra3l1dVwgOwor5Zue6Lui6YGL5YuVID4ga2FpdGVuJyd1bmRvdVwgOwor6YGL6Ly45qWt6ICFID4gdW4nJ3l1Z3lvdXNoYVwgOwor55+z5rK55YWs5ZujID4gc2VraXl1a291ZGFuXCA7CivlsYDpg6jpurvphZQgPiBreW9rdWJ1bWFzdWlcIDsKK+e+qeWkquWkq+evgCA+IGdpZGF5dXVidXNoaVwgOwor6YeR5bGe5Yqg5belID4ga2luem9rdWtha291XCA7CivmgqrmgKfohavnmI0gPiBha3VzZWlzaHV5b3VcIDsKK+mmrOm5v+ato+ebtCA+IGJha2FzaG91amlraVwgOwor5ZCI5byB5Lya56S+ID4gZ291YmVuZ2Fpc2hhXCA7Civlhaznm4rkuovmpa0gPiBrb3Vla2lqaWd5b3VcIDsKK+S/oeWPt+mbu+azoiA+IHNoaW5nb3VkZW5wYVwgOwor5rSl44CF5rWm44CFID4gdHN1ZHp1dXJhdXJhXCA7CivlhoXovKrlkIzlv5cgPiB1Y2hpd2Fkb3VzaGlcIDsKK+ekvuS8muS6i+alrSA+IHNoYWthaWppZ3lvdVwgOwor6Zu257Sw5LyB5qWtID4gcmVpc2Fpa2lneW91XCA7Civlm73lrprlhazlnJIgPiBrb2t1dGVpa291ZW5cIDsKK+W/nOWKm+W+hOi3ryA+IG91cnlva3VrZWlyb1wgOwor5o6n6Ki05qOE5Y20ID4ga291c29raWt5YWt1XCA7CivpgJrli6TlrprmnJ8gPiB0c3V1a2ludGVpa2lcIDsKK+attOWPsuWcsOWbsyA+IHJla2lzaGljaGl6dVwgOwor6Zu75a2Q6YO15L6/ID4gZGVuc2hpeXV1YmluXCA7Civkurrlt6Xnn6Xog70gPiBqaW5rb3VjaGlub3VcIDsKK+epuuS4reaKleS4iyA+IGt1dWNodXV0b3VrYVwgOwor5qW95aSp5Li7576pID4gcmFrdXRlbnNodWdpXCA7CivmtbflpJbmipXos4cgPiBrYWlnYWl0b3VzaGlcIDsKK+aal+iovOeVquWPtyA+IGFuc2hvdWJhbmdvdVwgOwor5bm06b2i5Yi26ZmQID4gbmVucmVpc2VpZ2VuXCA7CivkvqHmoLzmiKbkuokgPiBrYWtha3VzZW5zb3VcIDsKK+mrmOmAn+W6pumLvCA+IGtvdXNva3Vkb2tvdVwgOwor54Gr5Yqb5pSv5o+0ID4ga2FyeW9rdXNoaWVuXCA7Civpq5jpgJ/pgZPot68gPiBrb3Vzb2t1ZG91cm9cIDsKK+S9v+eUqOemgeatoiA+IHNoaXlvdWtpbnNoaVwgOwor5Yag5ama6JGs56WtID4ga2Fua29uc291c2FpXCA7CivmsLTlubPlsL7nv7wgPiBzdWloZWliaXlva3VcIDsKK+axuuitsOapn+mWoiA+IGtldHN1Z2lraWthblwgOwor6YCj6Y6W5Y+N5b+cID4gcmVuc2FoYW4nJ25vdVwgOwor5biC5rCR56S+5LyaID4gc2hpbWluc2hha2FpXCA7Civpg6jliIbpm4blkIggPiBidWJ1bnNodXVnb3VcIDsKK+Wbm+aNqOS6lOWFpSA+IHNoaXNoYWdvbnl1dVwgOwor5Y+X6KiX5Lya56S+ID4ganV0YWt1Z2Fpc2hhXCA7CivllY/poYzmhI/orZggPiBtb25kYWlpc2hpa2lcIDsKK+mHkeiejeWFrOW6qyA+IGtpbicneXV1a291a29cIDsKK+WPi+mBlOeUsuaWkCA+IHRvbW9kYWNoaWdhaVwgOwor5LiA6Iis5pWZ6aSKID4gaXBwYW5reW91eW91XCA7CivlronlrprmgZDmhYwgPiBhbnRlaWt5b3Vrb3VcIDsKK+awtOe0oOWMlueJqSA+IHN1aXNva2FidXRzdVwgOwor55Kw5aKD5aSJ5YyWID4ga2Fua3lvdWhlbmthXCA7CivkvZPmoLzmpJzmn7sgPiB0YWlrYWt1a2Vuc2FcIDsKK+WMluWtpuWQiOaIkCA+IGthZ2FrdWdvdXNlaVwgOwor5bmz5bmz5Yeh5YehID4gaGVpaGVpYm9uYm9uXCA7CivluILloLTkvqHmoLwgPiBzaGlqb3VrYWtha3VcIDsKK+WWhOmao+mWouS/giA+IHplbnJpbmthbmtlaVwgOwor5ZCI5oiQ5rSX5YmkID4gZ291c2Vpc2VuemFpXCA7CivoprPlv7XkuLvnvqkgPiBrYW4nJ25lbnNodWdpXCA7CivpgJrli6TmmYLplpMgPiB0c3V1a2luamlrYW5cIDsKK+e1jOa4iOS9k+WItiA+IGtlaXphaXRhaXNlaVwgOwor5L2P5omA5rCP5ZCNID4ganV1c2hvc2hpbWVpXCA7Civnlr7poqjmgJLmv6QgPiBzaGlwcHV1ZG90b3VcIDsKK+WMu+eZguadkOaWmSA+IGlyeW91emFpcnlvdVwgOwor5pyJ5qmf6L6y5qWtID4geXV1a2lub3VneW91XCA7CivlpqjlrrPmlL7pgIEgPiBib3VnYWlob3Vzb3VcIDsKK+mHkeWxnuWFg+e0oCA+IGtpbnpva3VnZW5zb1wgOwor5q2v5YaF55mC5rOVID4gc2hpa2FyeW91aG91XCA7CivmgqrmiK/lsI/lg6cgPiBpdGF6dXJha296b3VcIDsKK+WFqOaoqeWkp+S9vyA+IHplbmtlbnRhaXNoaVwgOwor5Y2x5oCl5a2Y5LqhID4ga2lreXV1c29uYm91XCA7CivlroflrpnkuK3ntpkgPiB1Y2h1dWNodXVrZWlcIDsKK+mdnuS6uumWk+eahCA+IGhpbmluZ2VudGVraVwgOwor5Y+X5L+h6KOF572uID4ganVzaGluc291Y2hpXCA7CivmlbDlgKToqIjnrpcgPiBzdXVjaGlrZWlzYW5cIDsKK+eJh+iogOmau+iqniA+IGhlbmdlbnNla2lnb1wgOwor5oeQ5Lit5pmC6KiIID4ga2FpY2h1dWRva2VpXCA7Civnq7bovKrpgbjmiYsgPiBrZWlyaW5zZW5zaHVcIDsKK+aal+WPt+ino+iqrSA+IGFuZ291a2FpZG9rdVwgOwor5Y+N5YuV5oCd5oOzID4gaGFuZG91c2hpc291XCA7Civlrp/oqLzkuLvnvqkgPiBqaXNzaG91c2h1Z2lcIDsKK+aomea6luWBj+W3riA+IGh5b3VqdW5oZW5zYVwgOwor6LOH5rqQ5ZWP6aGMID4gc2hpZ2VubW9uZGFpXCA7CivpgYvpgIHmpa3ogIUgPiB1bnNvdWd5b3VzaGFcIDsKK+ihjOWLleWcsOW4ryA+IGtvdWRvdWNoaXRhaVwgOwor5bmz562J5Li7576pID4gYnlvdWRvdXNodWdpXCA7CivkuqTku6PmipXmiYsgPiBrb3V0YWl0b3VzaHVcIDsKK+WbveWutueLrOWNoCA+IGtva2thZG9rdXNlblwgOwor5Zyf5Zyw5pS56ImvID4gdG9jaGlrYWlyeW91XCA7CivnkrDlooPln7rmupYgPiBrYW5reW91a2lqdW5cIDsKK+WkluS6pOaWh+abuCA+IGdhaWtvdWJ1bnNob1wgOwor6Lu95oyZ5aaE5YuVID4ga2Vpa3lvbW91ZG91XCA7CivpmLLomavliqDlt6UgPiBib3VjaHV1a2Frb3VcIDsKK+S4jeWcqOaKleelqCA+IGZ1emFpdG91aHlvdVwgOwor5auM54WZ6YGL5YuVID4ga2VuJydlbicndW5kb3VcIDsKK+Wwgee3mOiRieabuCA+IGZ1dWthbmhhZ2FraVwgOwor5rOw54S26Ieq6IulID4gdGFpemVuamlqYWt1XCA7CivmlZfljJfkuLvnvqkgPiBoYWlib2t1c2h1Z2lcIDsKK+S+oeagvOaAp+iDvSA+IGtha2FrdXNlaW5vdVwgOwor5pu46aGe6YCB5qScID4gc2hvcnVpc291a2VuXCA7CivkurrmqKnllY/poYwgPiBqaW5rZW5tb25kYWlcIDsKK+S4gOatu+WgseWbvSA+IGlzc2hpaG91a29rdVwgOwor57e06aas5aSn5qC5ID4gbmVyaW1hZGFpa29uXCA7CivkuIDns7jkuIDmr6sgPiBpc3NoaWljaGlnb3VcIDsKK+eJueauiuS6i+aDhSA+IHRva3VzaHVqaWpvdVwgOwor6ICB5bCR5LiN5a6aID4gcm91c2hvdWZ1dGVpXCA7Civnm7jkuZflubPlnYcgPiBzb3Vqb3VoZWlraW5cIDsKK+S4h+W5tOWAmeijnCA+IG1hbicnbmVua291aG9cIDsKK+WuieWFqOaVmeiCsiA+IGFuemVua3lvdWlrdVwgOwor54Sh6LOD5LmX6LuKID4gbXVjaGluam91c2hhXCA7CivniYfli5nlpZHntIQgPiBoZW5tdWtlaXlha3VcIDsKK+S4gOiIrOWkp+ihhiA+IGlwcGFudGFpc2h1dVwgOwor5Y+k5YW45paH5a2mID4ga290ZW5idW5nYWt1XCA7Civpq5jmoKHph47nkIMgPiBrb3Vrb3V5YWt5dXVcIDsKK+S4jeWvqeioiuWVjyA+IGZ1c2hpbmppbm1vblwgOwor5Lit6I+v5paZ55CGID4gY2h1dWthcnlvdXJpXCA7CivlgaXlurfnirbmhYsgPiBrZW5rb3Vqb3V0YWlcIDsKK+m5v+WFkOWztuecjCA+IGthZ29zaGltYWtlblwgOwor5rqW5YKZ54q25rOBID4ganVuYmlqb3VreW91XCA7CivpgbjlpJbkvbPkvZwgPiBzZW5nYWlrYXNha3VcIDsKK+iogOiqnuaVmeiCsiA+IGdlbmdva3lvdWlrdVwgOwor5ZCM5paH5ZCM56iuID4gZG91YnVuZG91c2h1XCA7CivntabkuI7kvZPns7sgPiBreXV1eW90YWlrZWlcIDsKK+m6u+iWrOeKr+e9qiA+IG1heWFrdWhhbnphaVwgOwor5pyd5Luk5pqu5pS5ID4gY2hvdXJlaWJva2FpXCA7CivkupLmgbXmnaHntIQgPiBnb2tlaWpvdXlha3VcIDsKK+S4gOWbveS4gOelqCA+IGlra29rdWlwcHlvdVwgOwor56Cy6Imm5aSW5LqkID4gaG91a2FuZ2Fpa291XCA7CivmtYHooYzoqIDokYkgPiBoYXlhcmlrb3RvYmFcIDsKK+S6pOmAmuapn+mWoiA+IGtvdXRzdXVraWthblwgOwor5rC06YqA6Zu75rGgID4gc3VpZ2luZGVuY2hpXCA7Civov73lloTkvpvppIogPiB0c3VpemVua3V5b3VcIDsKK+S7luWKm+acrOmhmCA+IHRhcmlraWhvbmdhblwgOwor56ym5Y+36Kej6KqtID4gZnVnb3VrYWlkb2t1XCA7Civnn6Xog73mjIfmlbAgPiBjaGlub3VzaGlzdXVcIDsKK+W9k+WWtualreaJgCA+IHRvdWVpZ3lvdXNob1wgOwor6IG35ZOh5Lya6K2wID4gc2hva3VpbmthaWdpXCA7CivoqIDoqp7nibnmnIkgPiBnZW5nb3Rva3V5dXVcIDsKK+acgOWwj+mZkOW6piA+IHNhaXNob3VnZW5kb1wgOwor5p+T5LqV5ZCJ6YeOID4gc29tZWl5b3NoaW5vXCA7Civlrozlhajniq/nvaogPiBrYW56ZW5oYW56YWlcIDsKK+aVmeiCsuWItuW6piA+IGt5b3Vpa3VzZWlkb1wgOwor5oim5Zu95pmC5LujID4gc2VuZ29rdWppZGFpXCA7CivliY3pp4bnl4fnirYgPiB6ZW5rdXNob3Vqb3VcIDsKK+e0q+e2rOikkuizniA+IHNoaWp1aG91c2hvdVwgOwor5LiA6KiA5Y2K5Y+lID4gaWNoaWdvbmhhbmt1XCA7CivkuI3ms5XljaDmnIkgPiBmdWhvdXNlbicneXV1XCA7Civlrrbluq3nkrDlooMgPiBrYXRlaWthbmt5b3VcIDsKK+iInuWPsOebo+edoyA+IGJ1dGFpa2FudG9rdVwgOwor5ZCI5oiQ55qu6Z2pID4gZ291c2VpaGlrYWt1XCA7CivlnKjlroXli6Tli5kgPiB6YWl0YWt1a2lubXVcIDsKK+S4jeWcqOWcsOS4uyA+IGZ1emFpamludXNoaVwgOwor5LiA5a6/5LiA6aOvID4gaXNzaHVrdWlwcGFuXCA7CivogIHkurrnl4XpmaIgPiByb3VqaW5ieW91aW5cIDsKK+eJh+iCuumjm+ihjCA+IGthdGFoYWloaWtvdVwgOwor5a++5r2c5rC06ImmID4gdGFpc2Vuc3Vpa2FuXCA7CivorabmiJLorabloLEgPiBrZWlrYWlrZWlob3VcIDsKK+e0r+epjei1pOWtlyA+IHJ1aXNla2lha2FqaVwgOwor5a625peP5qeL5oiQID4ga2F6b2t1a291c2VpXCA7CivlhoXmn5TlpJbliZsgPiBuYWlqdXVnYWlnb3VcIDsKK+WxnuS6uuS4u+e+qSA+IHpva3VqaW5zaHVnaVwgOwor56Gs6Luf5Lih5rS+ID4ga291bmFucnlvdWhhXCA7CivluqfluK3nlarlj7cgPiB6YXNla2liYW5nb3VcIDsKK+epuuS4rea1ruaPmiA+IGt1dWNodXVmdXlvdVwgOwor5LiB56ia5aWJ5YWsID4gZGV0Y2hpYm91a291XCA7CivkuIDmlrnkuqTpgJogPiBpcHBvdWtvdXRzdXVcIDsKK+S4ieaXpeaciOW9oiA+IG1pa2FkenVraWtlaVwgOwor5qSc5LqL57eP6ZW3ID4ga2Vuamlzb3VjaG91XCA7CivmlrDopo/mipXos4cgPiBzaGlua2l0b3VzaGlcIDsKK+WNmOiqnuaknOe0oiA+IHRhbmdva2Vuc2FrdVwgOwor6Zqg5Yy/54mp6LOHID4gaW50b2t1YnVzc2hpXCA7CivlpbPkurrnpoHliLYgPiBueW9uaW5raW5zZWlcIDsKK+Wkp+S/rumBk+mZoiA+IGRhaXNodXVkb3VpblwgOwor5qOu5p6X5YWs5ZySID4gc2hpbnJpbmtvdWVuXCA7Civlj5fpqJPos4fmoLwgPiBqdWtlbnNoaWtha3VcIDsKK+Wkp+WSjOiogOiRiSA+IHlhbWF0b2tvdG9iYVwgOwor5YSA5byP5Li7576pID4gZ2lzaGlraXNodWdpXCA7CivpgKDlsbHpgYvli5UgPiB6b3V6YW4nJ3VuZG91XCA7CivkuIDoiKzmlZnogrIgPiBpcHBhbmt5b3Vpa3VcIDsKK+eri+S9k+mfs+mfvyA+IHJpdHRhaW9ua3lvdVwgOwor54m56ZuG6KiY5LqLID4gdG9rdXNodXVraWppXCA7Civku5jluK/msbrorbAgPiBmdXRhaWtldHN1Z2lcIDsKK+ijvee0meW3peWgtCA+IHNlaXNoaWtvdWpvdVwgOwor5pWR5o+05oqV5omLID4ga3l1dWVudG91c2h1XCA7CivosqHlm6Pms5XkurogPiB6YWlkYW5ob3VqaW5cIDsKK+awkeS/l+iInui4iiA+IG1pbnpva3VidXlvdVwgOwor5oim5LqJ54qv572qID4gc2Vuc291aGFuemFpXCA7Civpm6Pnh4PliqDlt6UgPiBuYW4nJ25lbmtha291XCA7CivljZfoiLnljJfppqwgPiBuYW5zZW5ob2t1YmFcIDsKK+apn+iDvemanOWusyA+IGtpbm91c2hvdWdhaVwgOwor5pel5pys5Zu95rCRID4gbmlob25rb2t1bWluXCA7CivoiJ7ouI/mlZnluKsgPiBidXRvdWt5b3VzaGlcIDsKK+ael+mWk+WtpuagoSA+IHJpbmthbmdha2tvdVwgOwor6Iqx6a2B6YGT5LitID4gb2lyYW5kb3VjaHV1XCA7Civmu5HpmY3nq7bmioAgPiBrYWtrb3VreW91Z2lcIDsKK+WcqOWkluWFrOmkqCA+IHphaWdhaWtvdWthblwgOwor5Zyw5pa56YG45oyZID4gY2hpaG91c2Vua3lvXCA7CivlkIjmiJDljJblraYgPiBnb3VzZWlrYWdha3VcIDsKK+engeijveiRieabuCA+IHNoaXNlaWhhZ2FraVwgOwor5LiN5a6a56mN5YiGID4gZnV0ZWlzZWtpYnVuXCA7CivmraPjgIXloILjgIUgPiBzZWlzZWlkb3Vkb3VcIDsKK+WNiuS/oeWNiueWkSA+IGhhbnNoaW5oYW5naVwgOwor6Ly45YWl6LaF6YGOID4geXVueXV1Y2hvdWthXCA7Civlm5vlhYPpgJ/luqYgPiBzaGlnZW5zb2t1ZG9cIDsKK+S7mOWxnuWtpuagoSA+IGZ1em9rdWdha2tvdVwgOwor5Lq65bel55yf54+gID4gamlua291c2hpbmp1XCA7CivkurrmqKnlm6PkvZMgPiBqaW5rZW5kYW50YWlcIDsKK+acrOaWh+aJueiplSA+IGhvbm1vbmhpaHlvdVwgOwor55S76b6N54K5552bID4gZ2FyeW91dGVuc2VpXCA7Civkub7lnLDovrLms5UgPiBrYW5jaGlub3Vob3VcIDsKK+WWp+WWp+WbguWbgiA+IGtlbmtlbmdvdWdvdVwgOwor5Lq65a6a5bCL5ZWPID4gamludGVpamlubW9uXCA7Civku7vmnJ/muoDkuoYgPiBuaW5raW1hbnJ5b3VcIDsKK+ertummrOaWsOiBniA+IGtlaWJhc2hpbmJ1blwgOwor6Zu75rCX5bel5a2mID4gZGVua2lrb3VnYWt1XCA7CivkvpvntabpgY7lpJogPiBreW91a3l1dWthdGFcIDsKK+WPo+mgreWvqeeQhiA+IGtvdXRvdXNoaW5yaVwgOwor5bmz5ZKM5pWZ6IKyID4gaGVpd2FreW91aWt1XCA7Civnt4/lkIjnl4XpmaIgPiBzb3Vnb3VieW91aW5cIDsKK+S4iuWxpOawl+a1gSA+IGpvdXNvdWtpcnl1dVwgOwor6ICB6b2i5bm06YeRID4gcm91cmVpbmVua2luXCA7CivmvJTlpY/nt7Tnv5IgPiBlbnNvdXJlbnNodXVcIDsKK+S7leaOm+WcsOmbtyA+IHNoaWtha2VqaXJhaVwgOwor5Zue6Lui6LOH6YeRID4ga2FpdGVuc2hpa2luXCA7CivmmpfkuK3mqKHntKIgPiBhbmNodXVtb3Nha3VcIDsKK+WUr+aIkeeLrOWwiiA+IHl1aWdhZG9rdXNvblwgOwor6ZuG5pWj5Li7576pID4gc2h1dXNhbnNodWdpXCA7CivlnJ/nlKPnianlsYsgPiBtaXlhZ2Vtb25veWFcIDsKK+iHque1puiHqui2syA+IGppa3l1dWppc29rdVwgOwor5ZKM5bmz5Y2U5a6aID4gd2FoZWlreW91dGVpXCA7CivlnLDmlrnliIbmqKkgPiBjaGlob3VidW5rZW5cIDsKK+W4guWGheims+WFiSA+IHNoaW5haWthbmtvdVwgOwor5pS+5bCE6IO96ZuoID4gaG91c2hhbm91YW1lXCA7Civoq5zloLHmqZ/plqIgPiBjaG91aG91a2lrYW5cIDsKK+WwseWtpue+qeWLmSA+IHNodXVnYWt1Z2ltdVwgOwor6Iiq56m65YSq5YuiID4ga291a3V1eXV1c2VpXCA7CivkurrmiY3nmbvnlKggPiBqaW56YWl0b3V5b3VcIDsKK+ikh+acrOS9jeWItiA+IGZ1a3Vob24nJ2lzZWlcIDsKK+eUn+a0u+S/neittyA+IHNlaWthdHN1aG9nb1wgOwor6ZuG5Lit6LGq6ZuoID4gc2h1dWNodXVnb3V1XCA7CivlvrTlhbXlhY3pmaQgPiBjaG91aGVpbWVuam9cIDsKK+WFrOWus+WVj+mhjCA+IGtvdWdhaW1vbmRhaVwgOwor5Y2Y6Lqr6LW05Lu7ID4gdGFuc2hpbmZ1bmluXCA7Civlt67liKXnlKjoqp4gPiBzYWJldHN1eW91Z29cIDsKK+S6uuWPo+WLleaFiyA+IGppbmtvdWRvdXRhaVwgOwor5a6H5a6Z54mp55CGID4gdWNodXVidXRzdXJpXCA7CivlhajpnaLmiKbkuokgPiB6ZW5tZW5zZW5zb3VcIDsKK+e1jOa4iOeKtuaFiyA+IGtlaXphaWpvdXRhaVwgOwor5aeU6KiX56CU56m2ID4gaXRha3VrZW5reXV1XCA7CivljYPovpvkuIfoi6YgPiBzZW5zaGluYmFua3VcIDsKK+WMu+eZguWgsemFrCA+IGlyeW91aG91c2h1dVwgOwor5rC05pm25pmC6KiIID4gc3Vpc2hvdWRva2VpXCA7CivkuInmlofmloflo6sgPiBzYW5tb25idW5zaGlcIDsKK+Wbnui7ouacqOmmrCA+IGthaXRlbm1va3ViYVwgOwor5LiN5oim5p2h57SEID4gZnVzZW5qb3V5YWt1XCA7CivkuIDnlJ/mh7jlkb0gPiBpc3Nob3VrZW5tZWlcIDsKK+aXpemAsuaciOatqSA+IG5pc3NoaW5nZXBwb1wgOwor5Y+X6KiX6LKp5aOyID4ganV0YWt1aGFuYmFpXCA7CivmlofljJbli7Lnq6AgPiBidW5rYWt1bnNob3VcIDsKK+aCoOaCoOmWkemWkSA+IHl1dXl1dWthbmthblwgOwor5LuP6Iux6L6e5YW4ID4gZnV0c3VlaWppdGVuXCA7CivooZvnlJ/lt6XlraYgPiBlaXNlaWtvdWdha3VcIDsKK+aUv+imi+aUvumAgSA+IHNlaWtlbmhvdXNvdVwgOwor5rC05oCn5aGX5paZID4gc3Vpc2VpdG9yeW91XCA7CivlhYjpgLLlhbXlmaggPiBzZW5zaGluaGVpa2lcIDsKK+iHquW3seS4reW/gyA+IGppa29jaHV1c2hpblwgOwor5ZCM5ZKM5pWZ6IKyID4gZG91d2FreW91aWt1XCA7CivlrabpvaLlhZDnq6UgPiBnYWt1cmVpamlkb3VcIDsKK+iBluWcsOW3oeekvCA+IHNlaWNoaWp1bnJlaVwgOwor56S+5Zuj5rOV5Lq6ID4gc2hhZGFuaG91amluXCA7CivosqjnianovLjpgIEgPiBrYW1vdHN1eXVzb3VcIDsKK+ato+WkmuinkuW9oiA+IHNlaXRha2FrdWtlaVwgOwor6Zu75rCX5a656YePID4gZGVua2l5b3VyeW91XCA7CivmupbnpoHmsrvnlKMgPiBqdW5raW5jaGlzYW5cIDsKK+WMluWtpuani+mAoCA+IGthZ2FrdWtvdXpvdVwgOwor5LiA5YWa54us6KOBID4gaXR0b3Vkb2t1c2FpXCA7CivnhKHpmZDlsI/mlbAgPiBtdWdlbnNob3VzdXVcIDsKK+a4vueEtuS4gOS9kyA+IGtvbnplbicnaXR0YWlcIDsKK+a1t+W6leWcsOmchyA+IGthaXRlaWppc2hpblwgOwor5Y2a5aOr6Kqy56iLID4gaGFrdXNoaWthdGVpXCA7CivlubPlnYflr7/lkb0gPiBoZWlraW5qdW15b3VcIDsKK+W4guawkemBi+WLlSA+IHNoaW1pbicndW5kb3VcIDsKK+iomOW/teWHuueJiCA+IGtpbmVuc2h1cHBhblwgOwor6KOF572u5Yi25b6hID4gc291Y2hpc2VpZ3lvXCA7Civljp/oo4HliKTmiYAgPiBnZW5zYWliYW5zaG9cIDsKK+WOmueUn+Wkp+iHoyA+IGtvdXNlaWRhaWppblwgOwor5rK56ISC5bel5qWtID4geXVzaGlrb3VneW91XCA7Civnt4/mlK/phY3kurogPiBzb3VzaGloYWluaW5cIDsKK+aXpeeFp+aZgumWkyA+IG5pc3Nob3VqaWthblwgOwor5LiA6Iis5pWZ5pu4ID4gaXBwYW5reW91c2hvXCA7CivkuIDpg6jlp4vntYIgPiBpY2hpYnVzaGlqdXVcIDsKK+mWouaVsOWOn+WeiyA+IGthbnN1dWdlbmtlaVwgOwor5LiJ6YeN5a6d5YagID4gc2FuanV1aG91a2FuXCA7CivmrZPpgIHov47kvJogPiBrYW5zb3VnZWlrYWlcIDsKK+e3iuaApemBv+mboyA+IGtpbmt5dXVoaW5hblwgOwor5Yi56YKj5Li7576pID4gc2V0c3VuYXNodWdpXCA7Civlt6Xmpa3lnLDljLogPiBrb3VneW91Y2hpa3VcIDsKK+aIkealveWkmuW4giA+IGdhcmFrdXRhaWNoaVwgOwor6Lui5YaZ5o265p+TID4gdGVuc2hhbmFzc2VuXCA7Civoh6rnhLbngb3lrrMgPiBzaGl6ZW5zYWlnYWlcIDsKK+WkqeS6leajp+aVtyA+IHRlbmpvdXNhamlraVwgOwor5YWI6KGM5p2h5Lu2ID4gc2Vua291am91a2VuXCA7CivmnIjkuIvmsLfkurogPiBnZWtrYWh5b3VqaW5cIDsKK+WMu+iWrOWIhualrSA+IGl5YWt1YnVuZ3lvdVwgOwor6Lqr5YWD5L+d6Ki8ID4gbWltb3RvaG9zaG91XCA7CivntJTmraPnp5HlraYgPiBqdW5zZWlrYWdha3VcIDsKK+S6jOmHjemBk+W+syA+IG5panV1ZG91dG9rdVwgOwor5oKy5Zac5Lqk5LqkID4gaGlraWtvbW9nb21vXCA7Civnt4rmgKXli5XorbAgPiBraW5reXV1ZG91Z2lcIDsKK+WkqumZvembu+axoCA+IHRhaXlvdWRlbmNoaVwgOwor6KGX6aCt6Yyy6Z+zID4gZ2FpdG91cm9rdW9uXCA7Civlm73pmpvmqZ/plqIgPiBrb2t1c2Fpa2lrYW5cIDsKK+WJjeWCvuWnv+WLoiA+IHplbmtlaXNoaXNlaVwgOwor5biw5bGe5oSP6K2YID4ga2l6b2t1aXNoaWtpXCA7CivlhazooYbkvr/miYAgPiBrb3VzaHV1YmVuam9cIDsKK+aXpeacrOWbveWGhSA+IG5paG9ua29rdW5haVwgOwor6YG45rCR5oCd5oOzID4gc2VubWluc2hpc291XCA7CivlkoDlmrzpgYvli5UgPiBzb3NoYWt1dW5kb3VcIDsKK+WFseWQjOeWjumWiyA+IGt5b3Vkb3Vzb2thaVwgOwor6KiY5b+15YaZ55yfID4ga2luZW5zaGFzaGluXCA7Civngavnh7XluIPlm6MgPiBrb3RhdHN1YnV0b25cIDsKK+WFqOmdouemgeatoiA+IHplbm1lbmtpbnNoaVwgOwor5YyX5Zue5biw57eaID4ga2l0YWthaWtpc2VuXCA7CivpgKPlkIjoiabpmoogPiByZW5nb3VrYW50YWlcIDsKK+S6uuWRveaVkeWKqSA+IGppbm1laWt5dXVqb1wgOwor5oim5LqJ54q25oWLID4gc2Vuc291am91dGFpXCA7CivlpbPlrZDlpKflraYgPiBqb3NoaWRhaWdha3VcIDsKK+WbveWjq+eEoeWPjCA+IGtva3VzaGltdXNvdVwgOwor5bmz5Z2H5L2Z5ZG9ID4gaGVpa2luJyd5b21laVwgOwor5LqL5L6L56CU56m2ID4gamlyZWlrZW5reXV1XCA7CivliIbmlaPmipXos4cgPiBidW5zYW50b3VzaGlcIDsKK+WBtuWDj+ekvOaLnSA+IGd1dXpvdXJlaWhhaVwgOwor5Yq55p6c6Ka/6Z2iID4ga291a2F0ZWtpbWVuXCA7Civnt4rlvLXnt6nlkowgPiBraW5jaG91a2Fud2FcIDsKK+S4jeioseikh+ijvSA+IGZ1a3lvZnVrdXNlaVwgOwor5YyX5qyn56We6KmxID4gaG9rdW91c2hpbndhXCA7CivkurrkuovooYzmlL8gPiBqaW5qaWd5b3VzZWlcIDsKK+aYreWSjOW5tOmWkyA+IHNob3V3YW5lbmthblwgOwor5Zu95a2X5ZWP6aGMID4ga29rdWppbW9uZGFpXCA7Civlm73li5nlpKfoh6MgPiBrb2t1bXVkYWlqaW5cIDsKK+iogOiqnumanOWusyA+IGdlbmdvc2hvdWdhaVwgOwor5YaN6LKp5L6h5qC8ID4gc2FpaGFua2FrYWt1XCA7CivlubPlnYfmoKrkvqEgPiBoZWlraW5rYWJ1a2FcIDsKK+WuieaBr+mmmemFuCA+IGFuc29rdWtvdXNhblwgOwor6K2c5Luj5aSn5ZCNID4gZnVkYWlkYWlteW91XCA7CivpgZPot6/oqIjnlLsgPiBkb3Vyb2tlaWtha3VcIDsKK+WPpOiHquWLlei7iiA+IGZ1cnVqaWRvdXNoYVwgOwor5a655ae/56uv6bqXID4geW91c2hpdGFucmVpXCA7Civoq4vosqDmpa3ogIUgPiB1a2VvaWd5b3VzaGFcIDsKK+mAmuW4uOWPo+iqniA+IHRzdXVqb3Vrb3Vnb1wgOwor5Zyo5aSW6YKm5Lq6ID4gemFpZ2FpaG91amluXCA7CivplovmlL7ntYzmuIggPiBrYWlob3VrZWl6YWlcIDsKK+S9k+aTjeertuaKgCA+IHRhaXNvdWt5b3VnaVwgOwor5Yq05YON5ZCM55ufID4gcm91ZG91ZG91bWVpXCA7Civlm73pmpvpg73luIIgPiBrb2t1c2FpdG9zaGlcIDsKK+acieWIuumJhOe3miA+IHl1dXNoaXRlc3NlblwgOwor5Zuj5L2T6KGM5YuVID4gZGFudGFpa291ZG91XCA7Civlv5znlKjmlbDlraYgPiBvdXlvdXN1dWdha3VcIDsKK+S6pOmAmuW3oeafuyA+IGtvdXRzdXVqdW5zYVwgOwor54Sh5pW16Imm6ZqKID4gbXV0ZWtpa2FudGFpXCA7CivoiKrnqbrkvJrnpL4gPiBrb3VrdXVnYWlzaGFcIDsKK+Wkp+aUv+WliemChCA+IHRhaXNlaWhvdWthblwgOwor5LiN5pKT5LiN5bGIID4gZnV0b3VmdWt1dHN1XCA7Civnm7jplqLplqLkv4IgPiBzb3VrYW5rYW5rZWlcIDsKK+WQjOebn+e9t+alrSA+IGRvdW1laWhpZ3lvdVwgOwor6LuN5YKZ56u25LqJID4gZ3VuYmlreW91c291XCA7CivlvaLlrrnli5XoqZ4gPiBrZWl5b3Vkb3VzaGlcIDsKK+ijnOe1puW5uee3miA+IGhva3l1dWthbnNlblwgOwor54K65pu/6KOB5a6aID4ga2F3YXNlc2FpdGVpXCA7Civooajnj77kuLvnvqkgPiBoeW91Z2Vuc2h1Z2lcIDsKK+aWh+aVmeWcsOWMuiA+IGJ1bmt5b3VjaGlrdVwgOwor6YeR5bGe55ay5Yq0ID4ga2luem9rdWhpcm91XCA7CivlvLfliLbnlo7plosgPiBreW91c2Vpc29rYWlcIDsKK+itpuimlue3j+eboyA+IGtlaXNoaXNvdWthblwgOwor5Luj6KGo56S+5ZOhID4gZGFpaHlvdXNoYWluXCA7CivlgJ/lsYvkvY/lsYUgPiBzaGFrdXlhenVtYWlcIDsKK+W+tOWFteWItuW6piA+IGNob3VoZWlzZWlkb1wgOwor55+t5pyf5aSn5a2mID4gdGFua2lkYWlnYWt1XCA7Civnq4vkvZPmlL7pgIEgPiByaXR0YWlob3Vzb3VcIDsKK+WkqeS6leahn+aVtyA+IHRlbmpvdXNhamlraVwgOwor5Zyn6L+r5YyF5bivID4gYXBwYWt1aG91dGFpXCA7CivpgJrnlKjmnJ/plpMgPiB0c3V1eW91a2lrYW5cIDsKK+WLieW8t+aZgumWkyA+IGJlbmt5b3VqaWthblwgOwor5oi457GN6KyE5pysID4ga29zZWtpdG91aG9uXCA7Civlrrbluq3mlZnogrIgPiBrYXRlaWt5b3Vpa3VcIDsKK+WcsOmch+aOoumJsSA+IGppc2hpbnRhbmtvdVwgOwor6YG/6Zuj5qKv5a2QID4gaGluYW5iYXNoaWdvXCA7CivnpL7kvJrlpYnku5UgPiBzaGFrYWlob3VzaGlcIDsKK+WpmuWkluaAp+S6pCA+IGtvbmdhaXNlaWtvdVwgOwor5LiN5Y+v5oqX5YqbID4gZnVrYWtvdXJ5b2t1XCA7Civln7fooYzmqZ/plqIgPiBzaGlra291a2lrYW5cIDsKK+WLpOWLmeipleWumiA+IGtpbm11aHlvdXRlaVwgOwor5bi455So5a++5pWwID4gam91eW91dGFpc3V1XCA7CivlpKfpgZPoirjkurogPiBkYWlkb3VnZWluaW5cIDsKK+m7kumiqOeZvembqCA+IGtva3VmdXVoYWt1dVwgOwor6YqA6KGM5qWt5YuZID4gZ2lua291Z3lvdW11XCA7Civnj77lnLDoqr/mn7sgPiBnZW5jaGljaG91c2FcIDsKK+mBoOa0i+iIqua1tyA+IGVuJyd5b3Vrb3VrYWlcIDsKK+WkluS6pOmWouS/giA+IGdhaWtvdWthbmtlaVwgOwor56eB5a2m5Yqp5oiQID4gc2hpZ2FrdWpvc2VpXCA7CivnhKHnl5vliIblqKkgPiBtdXRzdXVidW5iZW5cIDsKK+S4jeiJr+WCteaoqSA+IGZ1cnlvdXNhaWtlblwgOwor5Zyw5Z+f5pmC5Yi7ID4gY2hpaWtpamlrb2t1XCA7Civlh7nniYjljbDliLcgPiBvdWhhbmluc2F0c3VcIDsKK+WfuuW5ueeUo+alrSA+IGtpa2Fuc2FuZ3lvdVwgOwor6Lev5LiK6aeQ6LuKID4gcm9qb3VjaHV1c2hhXCA7CivpppbohLPkvJroq4cgPiBzaHVub3VrYWlkYW5cIDsKK+eLrOijgeaUv+ayuyA+IGRva3VzYWlzZWlqaVwgOwor5aSW5Lqk5ZWP6aGMID4gZ2Fpa291bW9uZGFpXCA7CivnoLTnlKPnlLPoq4sgPiBoYXNhbnNoaW5zZWlcIDsKK+mDt+Wcn+iKuOiDvSA+IGt5b3Vkb2dlaW5vdVwgOwor5b6M5pa55Zyw5Z+fID4ga291aG91Y2hpaWtpXCA7CivlpKrpmb3mlL7lsIQgPiB0YWl5b3Vob3VzaGFcIDsKK+ilv+a0i+aWh+aYjiA+IHNlaXlvdWJ1bm1laVwgOwor5oyv5pu/6Ly46YCBID4gZnVyaWthZXl1c291XCA7CivkuqTmj5vmnaHku7YgPiBrb3VrYW5qb3VrZW5cIDsKK+eZuuihjOW4guWgtCA+IGhha2tvdXNoaWpvdVwgOwor5LiA5pio5pio5bm0ID4gc2FraW90b3Rvc2hpXCA7Civoo73oj5Pmpa3ogIUgPiBzZWlrYWd5b3VzaGFcIDsKK+aEm+WbveWbo+S9kyA+IGFpa29rdWRhbnRhaVwgOwor5aSJ5b2i6KaP5YmHID4gaGVua2Vpa2lzb2t1XCA7CivkurrmsJfmipXnpaggPiBuaW5raXRvdWh5b3VcIDsKK+eUt+Wls+W5s+etiSA+IGRhbmpvYnlvdWRvdVwgOwor6YO15L6/6JGJ5pu4ID4geXV1YmluaGFnYWtpXCA7CivmtYXlrabpnZ7miY0gPiBzZW5nYWt1aGlzYWlcIDsKK+W4guWgtOaSpOmAgCA+IHNoaWpvdXRldHRhaVwgOwor5a6a5pyf5qSc6Ki6ID4gdGVpa2lrZW5zaGluXCA7Civlm6PkvZPnq7bmioAgPiBkYW50YWlreW91Z2lcIDsKK+awkemWk+Wbo+S9kyA+IG1pbmthbmRhbnRhaVwgOwor5bCB5bu65oCd5oOzID4gaG91a2Vuc2hpc291XCA7CivoiKrntprot53pm6IgPiBrb3V6b2t1a3lvcmlcIDsKK+WPjOWzsOmnsemnnSA+IHNvdWhvdXJha3VkYVwgOwor55m+56eR5YWo5pu4ID4gaHlha2themVuc2hvXCA7CivoqabooYzpjK/oqqQgPiBzaGlrb3VzYWt1Z29cIDsKK+W3peWgtOWcsOW4ryA+IGtvdWpvdWNoaXRhaVwgOwor5pS/5rK75pS56Z2pID4gc2VpamlrYWlrYWt1XCA7CivluILmsJHkvJrppKggPiBzaGltaW5rYWlrYW5cIDsKK+aciemZkOS8muekviA+IHl1dWdlbmdhaXNoYVwgOwor6YeN5ZWG5Li7576pID4ganV1c2hvdXNodWdpXCA7Civpp4XliY3luoPloLQgPiBla2ltYWVoaXJvYmFcIDsKK+aUv+ayu+iyrOS7uyA+IHNlaWppc2VraW5pblwgOwor5bCC5qWt5Li75ammID4gc2VuZ3lvdXNodWZ1XCA7Civnj77loLTnm6PnnaMgPiBnZW5iYWthbnRva3VcIDsKK+WFrOi7ouWRqOacnyA+IGtvdXRlbnNodXVraVwgOwor5Y+j5LiJ5ZGz57eaID4ga3VjaGlqYW1pc2VuXCA7CivkuIDmmKjmmKjlpJwgPiBpc3Nha3VzYWt1eWFcIDsKK+ihgOa4heiCneeCjiA+IGtlc3NlaWthbicnZW5cIDsKK+S6uui3oeacqui4jyA+IGppbnNla2ltaXRvdVwgOwor5by35Yi25L+d6Zm6ID4ga3lvdXNlaWhva2VuXCA7CivkuIDmnJvljYPph4wgPiBpY2hpYm91c2VucmlcIDsKK+WIkeWLmeaJgOmVtyA+IGtlaW11c2hvY2hvdVwgOwor5aC05YaF5pS+6YCBID4gam91bmFpaG91c291XCA7CivmnJ3kuInmmq7lm5sgPiBjaG91c2FuYm9zaGlcIDsKK+emj+elieWbveWutiA+IGZ1a3VzaGlrb2trYVwgOwor6ZW35YiA5LiA5p6dID4gY2hvdXRvdWlzc2hpXCA7CivmgrLllpzkuqTjgIUgPiBoaWtpa29tb2dvbW9cIDsKK+eEoee3muW3peWtpiA+IG11c2Vua291Z2FrdVwgOwor5Yud5Yip5oqV5omLID4gc2hvdXJpdG91c2h1XCA7CivlpKnmsJfmpoLms4EgPiB0ZW5raWdhaWt5b3VcIDsKK+eEoeW4uOi/hemAnyA+IG11am91amluc29rdVwgOwor6KGM5YuV56eR5a2mID4ga291ZG91a2FnYWt1XCA7CivkuojpmLLms6jlsIQgPiB5b2JvdWNodXVzaGFcIDsKK+alteenmOaDheWgsSA+IGdva3VoaWpvdWhvdVwgOwor5bCB5bu656S+5LyaID4gaG91a2Vuc2hha2FpXCA7CivlirTkvb/ntJvkuokgPiByb3VzaGlmdW5zb3VcIDsKK+iHquWtpuiHque/kiA+IGppZ2FrdWppc2h1dVwgOwor5LiN6YCj57aa57eaID4gZnVyZW56b2t1c2VuXCA7CivmsrvlpJbms5XmqKkgPiBjaGlnYWlob3VrZW5cIDsKK+e1jOa4iOWkluS6pCA+IGtlaXphaWdhaWtvdVwgOwor5YiD54mp5LiJ5pinID4gaGFtb25vemFubWFpXCA7CivlhYnlrabnuYrntq0gPiBrb3VnYWt1c2VuJydpXCA7CivlhajkvJHmraLnrKYgPiB6ZW5reXV1c2hpZnVcIDsKK+WSjOa0i+aKmOihtyA+IHdheW91c2V0Y2h1dVwgOwor5riF566X5Lya56S+ID4gc2Vpc2FuZ2Fpc2hhXCA7Civlu4Pol6nnva7nnIwgPiBoYWloYW5jaGlrZW5cIDsKK+iHqOW6iuism+e+qSA+IHJpbnNob3Vrb3VnaVwgOwor57SU5pel5pys6aKoID4ganVuJyduaWhvbmZ1dVwgOwor5oyZ5Zu95LiA6Ie0ID4ga3lva29rdWl0Y2hpXCA7CivlpKfooYbpgYvli5UgPiB0YWlzaHV1dW5kb3VcIDsKK+W4guWgtOiqv+afuyA+IHNoaWpvdWNob3VzYVwgOwor5YWs6ZaL5aSW5LqkID4ga291a2FpZ2Fpa291XCA7CivlpKfolLXlpKfoh6MgPiBvb2t1cmFkYWlqaW5cIDsKK+S/ruato+S6iOeulyA+IHNodXVzZWl5b3NhblwgOwor6KGM5pS/5qmf6ZaiID4gZ3lvdXNlaWtpa2FuXCA7CivmlL/mlZnliIbpm6IgPiBzZWlreW91YnVucmlcIDsKK+aQreS5l+ahiOWGhSA+IHRvdWpvdWFuJyduYWlcIDsKK+S6lOS6uuWbg+WtkCA+IGdvbmluYmF5YXNoaVwgOwor54us5ZaE5Li7576pID4gZG9rdXplbnNodWdpXCA7CivoiKrnqbrmm7jnsKEgPiBrb3VrdXVzaG9rYW5cIDsKK+izm+WQpuWQjOelqCA+IHNhbnBpZG91aHlvdVwgOwor5Lq65paH5a2m5rS+ID4gamluYnVuZ2FrdWhhXCA7Civmj7TnlKjnlJ/nlKMgPiBlbicneW91c2Vpc2FuXCA7CivkuI3ogJXkvZzlnLAgPiBmdWtvdXNha3VjaGlcIDsKK+Wkp+S9v+WFrOmCuCA+IHRhaXNoaWtvdXRlaVwgOwor5rG66K2w5LqL6aCFID4ga2V0c3VnaWppa291XCA7CivmuKnms4nnmYLms5UgPiBvbnNlbnJ5b3Vob3VcIDsKK+S4gOmhsOS4gOeskSA+IGlwcGluJydpc3Nob3VcIDsKK+mbu+awl+S/oeWPtyA+IGRlbmtpc2hpbmdvdVwgOwor5bCC566h5rC05Z+fID4gc2Vua2Fuc3VpaWtpXCA7CivlpKnkvZPltIfmi50gPiB0ZW50YWlzdXVoYWlcIDsKK+ebuOS6kuWPgueFpyA+IHNvdWdvc2Fuc2hvdVwgOwor5Ymy54O55paZ55CGID4ga2FwcG91cnlvdXJpXCA7Civpg4rlpJbpm7vou4ogPiBrb3VnYWlkZW5zaGFcIDsKK+S/ruato+S4u+e+qSA+IHNodXVzZWlzaHVnaVwgOwor6KOc5by36Ki85ougID4gaG9reW91c2hvdWtvXCA7CivkurrmnZDpioDooYwgPiBqaW56YWlnaW5rb3VcIDsKK+i/keS7o+mfs+alvSA+IGtpbmRhaW9uZ2FrdVwgOwor6KOP6Z2i5bel5L2cID4gcmltZW5rb3VzYWt1XCA7Civms5XmsrvnpL7kvJogPiBob3VjaGlzaGFrYWlcIDsKK+Wkp+ebpOaMr+iIniA+IG9vYmFuYnVydW1haVwgOwor5LiJ5bKQ5Luj6KGoID4gc2FuZ2lkYWloeW91XCA7CivmlZnlk6HntYTlkIggPiBreW91aW5rdW1pYWlcIDsKK+a1t+mbo+aVkeWKqSA+IGthaW5hbmt5dXVqb1wgOwor6Yyy6Z+z5pS+6YCBID4gcm9rdW9uaG91c291XCA7CivkuInogIXlh6HpgIAgPiBzYW5zaGFib250YWlcIDsKK+aXpeacrOa1t+a1gSA+IG5paG9ua2Fpcnl1dVwgOwor5Y+y5LiK5pyA5aSnID4gc2hpam91c2FpZGFpXCA7CivoqJjmhrbpmpzlrrMgPiBraW9rdXNob3VnYWlcIDsKK+S4jeWKtOaJgOW+lyA+IGZ1cm91c2hvdG9rdVwgOwor6ICB6I2Y5oCd5oOzID4gcm91c291c2hpc291XCA7Civou43pnIDlt6Xmpa0gPiBndW5qdWtvdWd5b3VcIDsKK+mbouWQiOmbhuaVoyA+IHJpZ291c2h1dXNhblwgOwor6Imv5aa76LOi5q+NID4gcnlvdXNhaWtlbmJvXCA7Civou43lj7jku6TlrpggPiBndW5zaGlyZWlrYW5cIDsKK+iyv+aYk+S8muekviA+IGJvdWVraWdhaXNoYVwgOwor54eQ6YW46IKl5paZID4gcmluc2FuaGlyeW91XCA7CivnhKHpmZDosqzku7sgPiBtdWdlbnNla2luaW5cIDsKK+enkeWtpuaAneaDsyA+IGthZ2FrdXNoaXNvdVwgOwor5Zub5rW35ZCM6IOeID4gc2hpa2FpZG91aG91XCA7CivlgaXlurfllY/poYwgPiBrZW5rb3Vtb25kYWlcIDsKK+aEn+WCt+S4u+e+qSA+IGthbnNob3VzaHVnaVwgOwor6aas6aCt6Kaz6Z+zID4gYmF0b3VrYW4nJ25vblwgOwor5aSp6aCC6Led6ZuiID4gdGVuY2hvdWt5b3JpXCA7Civoqr/mn7vpg6jplbcgPiBjaG91c2FidWNob3VcIDsKK+WNg+e0q+S4h+e0hSA+IHNlbnNoaWJhbmtvdVwgOwor6KGM5YuV5ZG95LukID4ga291ZG91bWVpcmVpXCA7Civngrrmm7/miYvlvaIgPiBrYXdhc2V0ZWdhdGFcIDsKK+i1pOmBk+awl+WboyA+IHNla2lkb3VraWRhblwgOwor56m65Lit6JC95LiLID4ga3V1Y2h1dXJha2thXCA7CivlrprmoLzojbfph40gPiB0ZWlrYWt1a2FqdXVcIDsKK+eCuuabv+mKgOihjCA+IGthd2FzZWdpbmtvdVwgOwor5a6Y6IO95Li7576pID4ga2FuJydub3VzaHVnaVwgOwor5a625bqt5pWZ5birID4ga2F0ZWlreW91c2hpXCA7CivmmLzlpJzlhbzooYwgPiBjaHV1eWFrZW5rb3VcIDsKK+S8muekvuWWtualrSA+IGthaXNoYWVpZ3lvdVwgOwor5ZWT6JKZ5oCd5oOzID4ga2VpbW91c2hpc291XCA7CivpnZ7lvqrnkrDnmoQgPiBoaWp1bmthbnRla2lcIDsKK+aWh+awkee1seWItiA+IGJ1bm1pbnRvdXNlaVwgOwor6YGO6YW45YyW54mpID4ga2FzYW5rYWJ1dHN1XCA7CivkuIDlv7XnmbrotbcgPiBpY2hpbmVuaG9ra2lcIDsKK+iCsuaIkOagveWfuSA+IGlrdXNlaXNhaWJhaVwgOwor54++5aC05qSc6Ki8ID4gZ2VuYmFrZW5zaG91XCA7CivmmYLku6PogIPoqLwgPiBqaWRhaWtvdXNob3VcIDsKK+aEn+W6puiJr+WlvSA+IGthbmRvcnlvdWtvdVwgOwor6YCP5piO5Lq66ZaTID4gdG91bWVpbmluZ2VuXCA7CivluLjlpZfmiYvmrrUgPiBqb3V0b3VzaHVkYW5cIDsKK+WSjOW5s+W3peS9nCA+IHdhaGVpa291c2FrdVwgOwor5pqX5Lit6aOb6LqNID4gYW5jaHV1aGl5YWt1XCA7CivkurrmsJHoo4HliKQgPiBqaW5taW5zYWliYW5cIDsKK+aWveihjOimj+WJhyA+IHNoaWtvdWtpc29rdVwgOwor5Y2K6Lqr5LiN6ZqPID4gaGFuc2hpbmZ1enVpXCA7Civmma7pgJrlkI3oqZ4gPiBmdXRzdXVtZWlzaGlcIDsKK+WvvuixoeevhOWbsiA+IHRhaXNob3VoYW4nJ2lcIDsKK+S6uuawkeaIpue3miA+IGppbm1pbnNlbnNlblwgOwor57Ch5piO5by35Zu6ID4ga2FubWVpa3lvdWtvXCA7Civlj6/og73pgbjmip4gPiBrYW5vdXNlbnRha3VcIDsKK+Wxi+WGheertuaKgCA+IG9rdW5haWt5b3VnaVwgOwor5aSa5oOF5LuP5b+DID4gdGFqb3VidXNzaGluXCA7CivljZjntJToqIjnrpcgPiB0YW5qdW5rZWlzYW5cIDsKK+WFrOihhumbu+ipsSA+IGtvdXNodXVkZW53YVwgOwor6Iqx6Ieq5YuV6LuKID4gaGFuYWppZG91c2hhXCA7CivmlL7olanmga/lrZAgPiBob3V0b3VtdXN1a29cIDsKK+WGmeecn+apn+W6lyA+IHNoYXNoaW5raXRlblwgOwor5LiJ562J6LuN5pu5ID4gc2FudG91Z3Vuc291XCA7Civnt4rmgKXpgK7mjZUgPiBraW5reXV1dGFpaG9cIDsKK+iynuaTjei5gui6qiA+IHRlaXNvdWp1dXJpblwgOwor5b+D6IK65qmf6IO9ID4gc2hpbnBhaWtpbm91XCA7Civpm4zpm4TlkIzmoKogPiBzaGl5dXVkb3VzaHVcIDsKK+mghumiqOa6gOW4hiA+IGp1bnB1dW1hbnBhblwgOwor5a2m5qCh5rOV5Lq6ID4gZ2Fra291aG91amluXCA7CivlpInkvY3pm7vmtYEgPiBoZW4nJ2lkZW5yeXV1XCA7CivliY3lk6jli6Tli5kgPiB6ZW5zaG91a2lubXVcIDsKK+a1t+a0i+enkeWtpiA+IGthaXlvdWthZ2FrdVwgOwor6L6y5rCR6YGL5YuVID4gbm91bWluJyd1bmRvdVwgOwor6LKs5Lu756+E5ZuyID4gc2VraW5pbmhhbicnaVwgOwor55m65YWJ5aGX5paZID4gaGFra291dG9yeW91XCA7CivmhJ/lv5zkvZznlKggPiBrYW4nJ25vdXNheW91XCA7CivlrZDmjIHmmIbluIMgPiBrb21vY2hpa29uYnVcIDsKK+W4guWWtuS9j+WuhSA+IHNoaWVpanV1dGFrdVwgOwor5LqL5qWt6YOo6ZW3ID4gamlneW91YnVjaG91XCA7CivlpKfog4bkuI3mlbUgPiBkYWl0YW5mdXRla2lcIDsKK+WkqeWcsOWJtemAoCA+IHRlbmNoaXNvdXpvdVwgOwor5biC5aC057WM5riIID4gc2hpam91a2VpemFpXCA7CivkuojlrprmnJ/ml6UgPiB5b3RlaWtpaml0c3VcIDsKK+WMu+eZguaKgOihkyA+IGlyeW91Z2lqdXRzdVwgOwor5L2/5b255YuV6KmeID4gc2hpZWtpZG91c2hpXCA7CivlvrTlhbXmpJzmn7sgPiBjaG91aGVpa2Vuc2FcIDsKK+iHquWutueZuumbuyA+IGppa2FoYXRzdWRlblwgOwor5ZCM6Kqe5Y+N5b6pID4gZG91Z29oYW5wdWt1XCA7CivlvIHoq5blpKfkvJogPiBiZW5yb250YWlrYWlcIDsKK+S4gOiIrOaKleelqCA+IGlwcGFudG91aHlvdVwgOwor5LiA5Lq65oGv5a2QID4gaGl0b3JpbXVzdWtvXCA7CivpgIDlvbnou43kurogPiB0YWlla2lndW5qaW5cIDsKK+S6uueUn+acgOaCqiA+IGppbnNlaXNhaWFrdVwgOwor5Y2w5Yqg6Zu75ZynID4gaW5rYWRlbicnYXRzdVwgOwor5ray5oCn6ZmQ55WMID4gZWtpc2VpZ2Vua2FpXCA7CivmoITppIrlrabogIUgPiBlaXlvdWdha3VzaGFcIDsKK+mDveW4guS6pOmAmiA+IHRvc2hpa291dHN1dVwgOwor5Lqk5o+b5pWZ5o6IID4ga291a2Fua3lvdWp1XCA7CivlrabnlJ/mmYLku6MgPiBnYWt1c2VpamlkYWlcIDsKK+aEm+ekvueyvuelniA+IGFpc2hhc2Vpc2hpblwgOwor6ICB5YyW54++6LGhID4gcm91a2FnZW5zaG91XCA7CivnpL7kvJrllY/poYwgPiBzaGFrYWltb25kYWlcIDsKK+ebsueuoemKg+WJtSA+IG1vdWthbmp1dXNvdVwgOwor5p2x5rW35Zyw5pa5ID4gdG91a2FpY2hpaG91XCA7CivnmbrooYzkvJrnpL4gPiBoYWtrb3VnYWlzaGFcIDsKK+i/keaJgOWQiOWjgSA+IGtpbmpvZ2FwcGVraVwgOwor6Z+z5aOw5Zyn57iuID4gb25zZWlhc3NodWt1XCA7CivmsJHml4/kuLvnvqkgPiBtaW56b2t1c2h1Z2lcIDsKK+WwgumWgOenkeebriA+IHNlbm1vbmthbW9rdVwgOwor5rib6YeP57WM5Za2ID4gZ2VucnlvdWtlaWVpXCA7CivnnaHnnKDkuI3otrMgPiBzdWltaW5idXNva3VcIDsKK+WFhOWmueWWp+WYqSA+IGt5b3VkYWlnZW5rYVwgOwor6YGL6YCB5aWR57SEID4gdW5zb3VrZWl5YWt1XCA7CivoiJ7lj7DkuK3ntpkgPiBidXRhaWNodXVrZWlcIDsKK+S4i+WxpOmajue0miA+IGthc291a2Fpa3l1dVwgOwor57WM5riI6ZeY5LqJID4ga2VpemFpdG91c291XCA7CivkuI3oia/lsJHlpbMgPiBmdXJ5b3VzaG91am9cIDsKK+W/nOaPtOa8lOiqrCA+IG91ZW4nJ2VuemV0c3VcIDsKK+ihjOWLleWNiuW+hCA+IGtvdWRvdWhhbmtlaVwgOwor5Zyw6ZyH5Zyw5bivID4gamlzaGluY2hpdGFpXCA7CivpgJrpgY7osr/mmJMgPiB0c3V1a2Fib3Vla2lcIDsKK+e1seioiOW5tOmRkSA+IHRvdWtlaW5lbmthblwgOwor5Lq65omL5LiN6LazID4gaGl0b2RlYnVzb2t1XCA7CivljYHkuK3lhavkuZ0gPiBqaXRjaHV1aGFra3VcIDsKK+a7i+W8t+mjsuaWmSA+IGppa3lvdWlucnlvdVwgOwor5Zub6KeS5Y+356K8ID4gc2hpa2FrdWdvdW1hXCA7Civlm7rlrproprPlv7UgPiBrb3RlaWthbicnbmVuXCA7CivntYzpqJPnp5HlraYgPiBrZWlrZW5rYWdhZ3VcIDsKK+iNt+mbu+eykuWtkCA+IGthZGVucnl1dXNoaVwgOwor5Lq65bel55Sf5ZG9ID4gamlua291c2VpbWVpXCA7Civpm7vmsJfmlpnph5EgPiBkZW5raXJ5b3VraW5cIDsKK+W+gOW+qeiRieabuCA+IG91ZnVrdWhhZ2FraVwgOwor5Lq66YCg55+z5rK5ID4gamluem91c2VraXl1XCA7CivlpKnnq7rniaHkuLkgPiB0ZW5qaWt1Ym90YW5cIDsKK+W+oemms+i1sOanmCA+IGdvY2hpc291c2FtYVwgOwor5aSp6Lev5q2056iLID4gdGVucm9yZWtpdGVpXCA7CivlhbHlkIzkvr/miYAgPiBreW91ZG91YmVuam9cIDsKK+aal+auuuacqumBgiA+IGFuc2F0c3VtaXN1aVwgOwor5pyq5omV6LK755SoID4gbWloYXJhaWhpeW91XCA7Civnm7jkupLphY3lsZ4gPiBzb3Vnb2hhaXpva3VcIDsKK+egtOmhlOS4gOeskSA+IGhhZ2FuJydpc3Nob3VcIDsKK+ayu+eZguWKueaenCA+IGNoaXJ5b3Vrb3VrYVwgOwor54yf5a6Y5Yi25bqmID4gcnlvdWthbnNlaWRvXCA7Civlj47lrrnmgqPogIUgPiBzaHV1eW91a2FuamFcIDsKK+atpumZteahg+a6kCA+IGJ1cnlvdXRvdWdlblwgOwor5Lq65rCR5omA5pyJID4gamlubWluc2hveXV1XCA7Civlj43lsITkv4LmlbAgPiBoYW5zaGFrZWlzdXVcIDsKK+W3pealreaEj+WMoCA+IGtvdWd5b3Vpc2hvdVwgOwor55u45a++6KmV5L6hID4gc291dGFpaHlvdWthXCA7CivntYzmuIjllY/poYwgPiBrZWl6YWltb25kYWlcIDsKK+S4ieWNgeWFreioiCA+IHNhbmp1dXJva2tlaVwgOwor5q6L5qWt5omL5b2TID4gemFuZ3lvdXRlYXRlXCA7CivmipXnkIPli5XkvZwgPiB0b3VreXV1ZG91c2FcIDsKK+mYsueBveiok+e3tCA+IGJvdXNhaWt1bnJlblwgOwor6ICQ55So5bm05pWwID4gdGFpeW91bmVuc3V1XCA7CivmsJHlrprmhrLms5UgPiBtaW50ZWlrZW5wb3VcIDsKK+emj+WIqeWOmueUnyA+IGZ1a3VyaWtvdXNlaVwgOwor5raI6ICX5ZOB6LK7ID4gc2hvdW1vdWhpbmhpXCA7Civnp4HmnInosqHnlKMgPiBzaGl5dXV6YWlzYW5cIDsKK+Wtpue0mumWiemOliA+IGdha2t5dXVoZWlzYVwgOwor5Lq655Sf6KiY6YyyID4gamluc2Vpa2lyb2t1XCA7Civlrp/liKnkuLvnvqkgPiBqaXRzdXJpc2h1Z2lcIDsKK+WFrOS9v+mkqOWToSA+IGtvdXNoaWthbicnaW5cIDsKK+mAsuWMluirluiAhSA+IHNoaW5rYXJvbnNoYVwgOwor56m65Lit5qmf5YuVID4ga3V1Y2h1dWtpZG91XCA7CivmipXnpajntZDmnpwgPiB0b3VoeW91a2Vra2FcIDsKK+WJjeaPkOadoeS7tiA+IHplbnRlaWpvdWtlblwgOwor5aSW5Lq66YG45omLID4gZ2Fpamluc2Vuc2h1XCA7Civlt6jlpKfliIblrZAgPiBreW9kYWlidW5zaGlcIDsKK+i0i+mAoOe0meW5oyA+IGdhbnpvdXNoaWhlaVwgOwor5qSc5a6a6Kmm6aiTID4ga2VudGVpc2hpa2VuXCA7Civol43ntqzopJLnq6AgPiByYW5qdWhvdXNob3VcIDsKK+WPuOazleippumokyA+IHNoaWhvdXNoaWtlblwgOwor5p+U6Luf5L2T5pONID4ganV1bmFudGFpc291XCA7CivkuI3oia/lsI7kvZMgPiBmdXJ5b3Vkb3V0YWlcIDsKK+WvvuaIpui7iuegsiA+IHRhaXNlbnNoYWhvdVwgOwor5q275L2T6Kej5YmWID4gc2hpdGFpa2FpYm91XCA7Civlhbzmpa3ovrLlrrYgPiBrZW5neW91bm91a2FcIDsKK+WFrOmWi+mMsumfsyA+IGtvdWthaXJva3VvblwgOwor5rW36LuN5aSn6IejID4ga2FpZ3VuZGFpamluXCA7CivljZfkuqzoirHngasgPiBuYW5raW5oYW5hYmlcIDsKK+aJgeahg+iFuueCjiA+IGhlbnRvdXNlbicnZW5cIDsKK+S4reWkrumKgOihjCA+IGNodXVvdWdpbmtvdVwgOwor5Zyn57iu56m65rCXID4gYXNzaHVrdWt1dWtpXCA7CivmsbrmuIjmiYvmrrUgPiBrZXNzYWlzaHVkYW5cIDsKK+S7o+eQhualreiAhSA+IGRhaXJpZ3lvdXNoYVwgOwor6YWN572u6Lui5o+bID4gaGFpY2hpdGVua2FuXCA7CivnpoHmsrvnlKPogIUgPiBraW5jaGlzYW5zaGFcIDsKK+WFqOi6q+S4jemajyA+IHplbnNoaW5mdXp1aVwgOwor6YGL6Lui5oqA6KGTID4gdW50ZW5naWp1dHN1XCA7Civpm7vlrZDpn7Pmpb0gPiBkZW5zaGlvbmdha3VcIDsKK+WNg+S4h+eEoemHjyA+IHNlbm1hbm11cnlvdVwgOwor6Ieq5q665bmH5YqpID4gamlzYXRzdWhvdWpvXCA7Civku6PmlbDplqLmlbAgPiBkYWlzdXVrYW5zdXVcIDsKK+mfs+mfv+ioreioiCA+IG9ua3lvdXNla2tlaVwgOwor5Lmz5qeY56qB6LW3ID4gbnl1dXlvdXRva2tpXCA7CivkuovliY3libLlvZMgPiBqaXplbndhcmlhdGVcIDsKK+WFteW9ueWFjeeKtiA+IGhlaWVraW1lbmpvdVwgOwor5aSp5rav5a2k54usID4gdGVuZ2Fpa29kb2t1XCA7CivkuI3mib/kuI3mib8gPiBmdXNob3VidXNob3VcIDsKK+eEoeaJgOWxnuePviA+IG11c2hvem9rdWdlblwgOwor5pyo6YCg5a625bGLID4gbW9rdXpvdWthb2t1XCA7CivppIrogIHlubTph5EgPiB5b3Vyb3VuZW5raW5cIDsKK+aCoOOAheiHqumBqSA+IHl1dXl1dWppdGVraVwgOwor5LqL5YmN56CU5L+uID4gaml6ZW5rZW5zaHV1XCA7CivkvZPns7vmlofms5UgPiB0YWlrZWlidW5wb3VcIDsKK+mbjOmbhOWQjOS9kyA+IHNoaXl1dWRvdXRhaVwgOwor5qeL6YCg5rGa6IG3ID4ga291em91b3Nob2t1XCA7Civln7rnpI7nn6XorZggPiBraXNvY2hpc2hpa2lcIDsKK+WcsOWfn+e0m+S6iSA+IGNoaWlraWZ1bnNvdVwgOwor5Y2Y5bOw6aex6aedID4gdGFucG91cmFrdWRhXCA7CivkurrmsJfllYblo7IgPiBuaW5raXNob3ViYWlcIDsKK+WnieWmueWWp+WYqSA+IGt5b3VkYWlnZW5rYVwgOwor5Y2D5ae/5LiH5oWLID4gc2Vuc2hpYmFudGFpXCA7CivlhazmnInosqHnlKMgPiBrb3V5dXV6YWlzYW5cIDsKK+WFiOihjOaKleizhyA+IHNlbmtvdXRvdXNoaVwgOwor6KO96YCg5bel56iLID4gc2Vpem91a291dGVpXCA7Civoh6rnlLHnq7bkuokgPiBqaXl1dWt5b3Vzb3VcIDsKK+W3nemtmuaWmeeQhiA+IGthd2F1b3J5b3VyaVwgOwor54++5Luj56eR5a2mID4gZ2VuZGFpa2FnYWt1XCA7CivnlKPmpa3mqZ/morAgPiBzYW5neW91a2lrYWlcIDsKK+S4jeWQiOagvOiAhSA+IGZ1Z291a2FrdXNoYVwgOwor5pqR5Lit6KaL6IieID4gc2hvY2h1dW1pbWFpXCA7CivoqpjlsI7lsIvllY8gPiB5dXVkb3VqaW5tb25cIDsKK+eRoOeSg+WUkOiNiSA+IHJ1cmlrYXJha3VzYVwgOwor5a6a5b2i5YuV6KmeID4gdGVpa2VpZG91c2hpXCA7CivllqfjgIXlm4LjgIUgPiBrZW5rZW5nb3Vnb3VcIDsKK+S6uumWk+mWouS/giA+IG5pbmdlbmthbmtlaVwgOwor6LWk5Y2B5a2X56S+ID4gc2VraWp1dWppc2hhXCA7CivnhKHnlKPpmo7ntJogPiBtdXNhbmthaWt5dXVcIDsKK+WFreazleWFqOabuCA+IHJvcHBvdXplbnNob1wgOwor6ZuG5qip5o6S6ZmkID4gc2h1dWtlbmhhaWpvXCA7Civlm73pmpvkvJrorbAgPiBrb2t1c2Fpa2FpZ2lcIDsKK+WFkOerpeaWh+WtpiA+IGppZG91YnVuZ2FrdVwgOwor6LuN5LqL56eY5a+GID4gZ3VuamloaW1pdHN1XCA7Civku7vmhI/lh7rpoK0gPiBuaW4nJ2lzaHV0dG91XCA7Civku5jpmo/nj77osaEgPiBmdXp1aWdlbnNob3VcIDsKK+WUh+atr+i8lOi7iiA+IHNoaW5zaGlob3NoYVwgOwor5Y6f5Zug6Kq/5p+7ID4gZ2VuJydpbmNob3VzYVwgOwor5Lq66Leh5pyq5YiwID4gamluc2VraW1pdG91XCA7Civmi4XlvZPpg6jplbcgPiB0YW50b3VidWNob3VcIDsKK+S4u+S7u+aVmeaOiCA+IHNodW5pbmt5b3VqdVwgOwor6LuN5YKZ5YmK5ribID4gZ3VuYmlzYWt1Z2VuXCA7Civlhazplovoo4HliKQgPiBrb3VrYWlzYWliYW5cIDsKK+WIhuino+S/rueQhiA+IGJ1bmthaXNodXVyaVwgOwor55m+6Iqx5paJ5pS+ID4gaHlha2thc2VpaG91XCA7CivkurrpgKDnnJ/nj6AgPiBqaW56b3VzaGluanVcIDsKK+elnue1jOmBjuaVjyA+IHNoaW5rZWlrYWJpblwgOwor6YCB6YeR54K65pu/ID4gc291a2lua2F3YXNlXCA7CivljrPmraPnp5HlraYgPiBnZW5zZWlrYWdha3VcIDsKK+WPuOazleabuOWjqyA+IHNoaWhvdXNob3NoaVwgOwor5Zyo5aSW6LOH55SjID4gemFpZ2Fpc2hpc2FuXCA7Civms5XlvovpgZXlj40gPiBob3VyaXRzdWloYW5cIDsKK+mAsui3r+aMh+WwjiA+IHNoaW5yb3NoaWRvdVwgOwor5LqI5YKZ5Y2U57SEID4geW9iaWt5b3V5YWt1XCA7CivmlZnogrLnjqnlhbcgPiBreW91aWt1Z2FuZ3VcIDsKK+aWh+azleimj+WJhyA+IGJ1bnBvdWtpc29rdVwgOwor5a6M5LqG5pmC5Yi2ID4ga2FucnlvdWppc2VpXCA7Civkuovlrp/oqqToqo0gPiBqaWppdHN1Z29uaW5cIDsKK+i7jemcgOeUo+alrSA+IGd1bmp1c2FuZ3lvdVwgOwor6Ieq54S256eR5a2mID4gc2hpemVua2FnYWt1XCA7CivmrabogIXkv67ooYwgPiBtdXNoYXNodWd5b3VcIDsKK+eUn+aIkOaWh+azlSA+IHNlaXNlaWJ1bnBvdVwgOwor5Y+45rOV5aSn6IejID4gc2hpaG91ZGFpamluXCA7CivkuLvohLPkvJroq4cgPiBzaHVub3VrYWlkYW5cIDsKK+W+oeeUqOWVhuS6uiA+IGdveW91c2hvdW5pblwgOwor5L2/5b6S5L+h5p2hID4gc2hpdG9zaGluam91XCA7CivoqLzmi6Dnianku7YgPiBzaG91a29idWtrZW5cIDsKK+S6iOWCmeefpeitmCA+IHlvYmljaGlzaGlraVwgOwor5ZCI5ZCN5Lya56S+ID4gZ291bWVpZ2Fpc2hhXCA7CivlhbHlkIzkuIDoh7QgPiBreW91ZG91aXRjaGlcIDsKK+atpuWKm+aUv+ayuyA+IGJ1cnlva3VzZWlqaVwgOwor6LuM6YGT5L+u5q2jID4ga2lkb3VzaHV1c2VpXCA7Civmub7lsrjmiKbkuokgPiB3YW5nYW5zZW5zb3VcIDsKK+WQiOagvOeliOmhmCA+IGdvdWtha3VraWdhblwgOwor5YyW5a2m6IKl5paZID4ga2FnYWt1aGlyeW91XCA7Civni6zoo4Hlm73lrrYgPiBkb2t1c2Fpa29ra2FcIDsKK+S9juWIqemHkeiejSA+IHRlaXJpa2luJyd5dXVcIDsKK+Wcn+mhnumHkeWxniA+IGRvcnVpa2luem9rdVwgOwor5YWx5ZKM5pS/5L2TID4ga3lvdXdhc2VpdGFpXCA7Civms5Xlu7fpl5jkuokgPiBob3V0ZWl0b3Vzb3VcIDsKK+WGjeeUn+ijhee9riA+IHNhaXNlaXNvdWNoaVwgOwor5YyX5pa56aCY5ZyfID4gaG9wcG91cnlvdWRvXCA7Civlhajlu4Poq5bogIUgPiB6ZW5wYWlyb25zaGFcIDsKK+e0r+mAsuiqsueojiA+IHJ1aXNoaW5rYXplaVwgOwor5Zu96Ziy5Lya6K2wID4ga29rdWJvdWthaWdpXCA7Civkuoznmb7ljYHml6UgPiBuaWh5YWt1dG9va2FcIDsKK+S6i+WJjemAmuWgsSA+IGppemVudHN1dWhvdVwgOwor56S+5Lya5oSP6K2YID4gc2hha2FpaXNoaWtpXCA7Civmj7Tliqnlh43ntZAgPiBlbmpvdG91a2V0c3VcIDsKK+WuieWFqOesrOS4gCA+IGFuemVuZGFpaWNoaVwgOwor5YCL5Lq65pS75pKDID4ga29qaW5rb3VnZWtpXCA7CivmgqrmiK/lnYrkuLsgPiBpdGF6dXJhYm91enVcIDsKK+mBiuWLleWGhuacqCA+IHl1dWRvdWVuYm9rdVwgOwor5YaG5b2i5YqH5aC0ID4gZW5rZWlnZWtpam91XCA7Civoiq3olYnmorbmnKggPiBiYXNob3VrYWppa2lcIDsKK+aDheWgseenkeWtpiA+IGpvdWhvdWthZ2FrdVwgOwor5YK35a6z5L+d6Zm6ID4gc2hvdWdhaWhva2VuXCA7CivnoLTnlKPlrqPlkYogPiBoYXNhbnNlbmtva3VcIDsKK+eZqeeXheaCo+iAhSA+IHJhaWJ5b3VrYW5qYVwgOwor5q2j5q2j5aCC5aCCID4gc2Vpc2VpZG91ZG91XCA7Civlm6DlrZDliIbmnpAgPiBpbnNoaWJ1bnNla2lcIDsKK+W+heWQiOaUv+ayuyA+IG1hY2hpYWlzZWlqaVwgOwor5pyr5rOV5oCd5oOzID4gbWFwcG91c2hpc291XCA7CivoiKrntprmmYLplpMgPiBrb3V6b2t1amlrYW5cIDsKK+WwguWjsueJueiosSA+IHNlbmJhaXRva2t5b1wgOwor5ZCM56iu5ZCM5paHID4gZG91c2h1ZG91YnVuXCA7CivpiYTpgZPkuovmlYUgPiB0ZXRzdWRvdWppa29cIDsKK+ecn+eQhumWouaVsCA+IHNoaW5yaWthbnN1dVwgOwor5a2Q5a2Q5a2r5a2rID4gc2hpc2hpc29uc29uXCA7Civoi7Hlm73nn7PmsrkgPiBlaWtva3VzZWtpeXVcIDsKK+S/neitt+ims+WvnyA+IGhvZ29rYW5zYXRzdVwgOwor56eY5a+G5YW15ZmoID4gaGltaXRzdWhlaWtpXCA7Civpg7Xkvr/osq/ph5EgPiB5dXViaW5jaG9raW5cIDsKK+S6jOmHjeS6uuagvCA+IG5panV1amlua2FrdVwgOwor55m96KGj5piO5aaDID4gYnlha3VlbXlvdWhpXCA7CivnlJ/kvZPop6PliZYgPiBzZWl0YWlrYWlib3VcIDsKK+eri+WkquWtkOekvCA+IHJpdHRhaXNoaXJlaVwgOwor5a6f6Zqb5ZWP6aGMID4gamlzc2FpbW9uZGFpXCA7Civlhazou6LpgJ/luqYgPiBrb3V0ZW5zb2t1ZG9cIDsKK+S4gOefs+S6jOmzpSA+IGlzc2VraW5pY2hvdVwgOwor5pWZ6IKy6Kqy56iLID4ga3lvdWlrdWthdGVpXCA7Civkurrku6PlkI3oqZ4gPiBqaW5kYWltZWlzaGlcIDsKK+WEqueUn+e1kOWpmiA+IHl1dXNlaWtla2tvblwgOwor5Y+j6aCt6Kmm5ZWPID4ga291dG91c2hpbW9uXCA7CivkuqTpgJrlronlhaggPiBrb3V0c3V1YW56ZW5cIDsKK+WSjOaWh+iLseiosyA+IHdhYnVuJydlaXlha3VcIDsKK+acrOWutuacrOWFgyA+IGhvbmtlaG9ubW90b1wgOwor55uy55uu6aOb6KGMID4gbW91bW9rdWhpa291XCA7Civmu57nqbroqJjpjLIgPiB0YWlrdXVraXJva3VcIDsKK+eri+S9k+ijgeaWrSA+IHJpdHRhaXNhaWRhblwgOwor5Zu95YaF5LqL5oOFID4ga29rdW5haWppam91XCA7CivmjqXop6bkuovmlYUgPiBzZXNzaG9rdWppa29cIDsKK+S5vueHpeiFkOacvSA+IGthbnNvdWZ1a3l1dVwgOwor5ZCI6LOH5Lya56S+ID4gZ291c2hpZ2Fpc2hhXCA7CivlvavliLvlhbfluqcgPiBjaG91a29rdWd1emFcIDsKK+aIuOWkluaSruW9sSA+IGtvZ2Fpc2F0c3VlaVwgOwor5b+c5oCl5L+u55CGID4gb3VreXV1c2h1dXJpXCA7CivpurvphZTms6jlsIQgPiBtYXN1aWNodXVzaGFcIDsKK+acq+err+S+oeagvCA+IG1hdHRhbmtha2FrdVwgOwor5YG25YOP5bSH5oudID4gZ3V1em91c3V1aGFpXCA7Civmma7pgJrliJfou4ogPiBmdXRzdXVyZXNzaGFcIDsKK+WSjOW5s+S6pOa4iSA+IHdhaGVpa291c2hvdVwgOwor5b6q55Kw6KuW5rOVID4ganVua2Fucm9ucG91XCA7Civpo73po5/mmpbooaMgPiBob3VzaG9rdWRhbmlcIDsKK+apn+aisOW3pealrSA+IGtpa2Fpa291Z3lvdVwgOwor54Sh6ZmQ6ZuG5ZCIID4gbXVnZW5zaHV1Z291XCA7CivmnInkvqHoqLzliLggPiB5dXVrYXNob3VrZW5cIDsKK+e3j+e1semBuOaMmSA+IHNvdXRvdXNlbmt5b1wgOwor5Lq65rCX5b256ICFID4gbmlua2l5YWt1c2hhXCA7CivluILlhoXpgJroqbEgPiBzaGluYWl0c3V1d2FcIDsKK+S4gOetiemZuOWjqyA+IGl0dG91cmlrdXNoaVwgOwor6Kyb5ZKM5p2h57SEID4ga291d2Fqb3V5YWt1XCA7Civlt6Xmpa3pg73luIIgPiBrb3VneW91dG9zaGlcIDsKK+WNk+S4iumbu+ipsSA+IHRha3Vqb3VkZW53YVwgOwor5a6i6Kaz5Li7576pID4ga3lha2thbnNodWdpXCA7CivlhbHlkIzorIDorbAgPiBreW91ZG91Ym91Z2lcIDsKK+izvOiyt+e1hOWQiCA+IGtvdWJhaWt1bWlhaVwgOwor6KuL6LKg5LuV5LqLID4gdWtlb2lzaGlnb3RvXCA7Civpm4fnlKjlpZHntIQgPiBrb3lvdWtlaXlha3VcIDsKK+W9k+aEj+WNs+WmmSA+IHRvdWlzb2t1bXlvdVwgOwor5Yq05YON5biC5aC0ID4gcm91ZG91c2hpam91XCA7Civlj43lr77lsIvllY8gPiBoYW50YWlqaW5tb25cIDsKK+Wjq+WumOWtpuagoSA+IHNoaWthbmdha2tvdVwgOwor5ZCN6KqJ5Lya6ZW3ID4gbWVpeW9rYWljaG91XCA7CivlubPlnYfntabkuI4gPiBoZWlraW5reXV1eW9cIDsKK+Wwj+S+v+Wwj+WDpyA+IHNob3ViZW5rb3pvdVwgOwor5Lq65qip6LmC6LqqID4gamlua2VuanV1cmluXCA7CivlnKfnuK7phbjntKAgPiBhc3NodWt1c2Fuc29cIDsKK+S6uuaoqei5gui6mSA+IGppbmtlbmp1dXJpblwgOwor5bm05qyh5aCx5ZGKID4gbmVuamlob3Vrb2t1XCA7Civpg7Xkvr/nlarlj7cgPiB5dXViaW5iYW5nb3VcIDsKK+ioiOeul+WVj+mhjCA+IGtlaXNhbm1vbmRhaVwgOwor57eP5ZCI6ZuR6KqMID4gc291Z291emFzc2hpXCA7CivlnJ/lnLDlj47nlKggPiB0b2NoaXNodXV5b3VcIDsKK+W6g+WRiuWKueaenCA+IGtvdWtva3Vrb3VrYVwgOwor5bm85YWQ5pWZ6IKyID4geW91amlreW91aWt1XCA7Civov5HmiYDov7fmg5EgPiBraW5qb21laXdha3VcIDsKK+eEoemZkOe0muaVsCA+IG11Z2Vua3l1dXN1dVwgOwor5LiA5Yi75Y2D6YeRID4gaWtrb2t1c2Vua2luXCA7Civpmarlr6nliLbluqYgPiBiYWlzaGluc2VpZG9cIDsKK+e3qOmbhuapn+iDvSA+IGhlbnNodXVraW5vdVwgOwor5YWI5Y+W54m55qipID4gc2Vuc2h1dG9ra2VuXCA7CivlsILploDliIbph44gPiBzZW5tb25idW4nJ3lhXCA7Civmi4XlrZDoj4zpoZ4gPiB0YW5zaGlraW5ydWlcIDsKK+mWouS/guW8t+WMliA+IGthbmtlaWt5b3VrYVwgOwor5pS75pKD6YOo6ZqKID4ga291Z2VraWJ1dGFpXCA7Civnp5jlr4bkvJrorbAgPiBoaW1pdHN1a2FpZ2lcIDsKK+atpuiAheS/rualrSA+IG11c2hhc2h1Z3lvdVwgOwor5raI6Z+z6KOF572uID4gc2hvdW9uc291Y2hpXCA7CivmuoDlt57kuovlpIkgPiBtYW5zaHV1amloZW5cIDsKK+izh+eUo+ipleS+oSA+IHNoaXNhbmh5b3VrYVwgOwor5Ye654mI6Kix5Y+vID4gc2h1cHBhbmt5b2thXCA7Civlm73lhoXpnIDopoEgPiBrb2t1bmFpanV5b3VcIDsKK+WNg+S4h+mVt+iAhSA+IHNlbmJhbmNob3VqYVwgOwor5YyW5a2m6Kmm6aiTID4ga2FnYWt1c2hpa2VuXCA7CivntLDog57ln7nppIogPiBzYWlib3ViYWl5b3VcIDsKK+mfs+mfu+e1hOe5lCA+IG9uJydpbnNvc2hpa2lcIDsKK+WHpuWHpuaWueaWuSA+IHNob3Nob2hvdWJvdVwgOwor5bqn5qiZ5aSJ5o+bID4gemFoeW91aGVua2FuXCA7CivmqZ/morDlt6XlraYgPiBraWthaWtvdWdha3VcIDsKK+esrOS4iemDqOmVtyA+IGRhaXNhbmJ1Y2hvdVwgOwor5aWH5bKp5oCq55+zID4ga2lnYW5rYWlzZWtpXCA7CivogJDpoqjmp4vpgKAgPiB0YWlmdXVrb3V6b3VcIDsKK+efs+m5uOW3peWgtCA+IHNla2tlbmtvdWpvdVwgOwor5Zyo6YO36LuN5Lq6ID4gemFpZ291Z3VuamluXCA7Civlub3pnIrkvJrnpL4gPiB5dXVyZWlnYWlzaGFcIDsKK+eSsOWig+egtOWjiiA+IGthbmt5b3VoYWthaVwgOwor5Zu96Zqb5Li7576pID4ga29rdXNhaXNodWdpXCA7CivlvqHnr4DmlpnnkIYgPiBvc2VjaGlyeW91cmlcIDsKK+S/rueQhuW3peWgtCA+IHNodXVyaWtvdWpvdVwgOwor5ouS5ZCm5Y+N5b+cID4ga3lvaGloYW4nJ25vdVwgOwor5LiA6KiA5LiA5Y+lID4gaWNoaWdvbicnaWtrdVwgOwor5Y2Y54us6aOb6KGMID4gdGFuZG9rdWhpa291XCA7CivkuLvmqKnlnKjmsJEgPiBzaHVrZW56YWltaW5cIDsKK+S6uuagvOS4u+e+qSA+IGppbmtha3VzaHVnaVwgOwor6Ieq5q665pyq6YGCID4gamlzYXRzdW1pc3VpXCA7Civlh7rlrrbpgYHkuJYgPiBzaHVra2V0b25zZWlcIDsKK+e0kOmdqemlgumjqSA+IGhpbW9rYXdhdWRvblwgOwor5oSa5rCR5pS/562WID4gZ3VtaW5zZWlzYWt1XCA7CivljZjnp5HlpKflraYgPiB0YW5rYWRhaWdha3VcIDsKK+mBqeato+WIqea9pCA+IHRla2lzZWlyaWp1blwgOwor55m66Z+z6KiY5Y+3ID4gaGF0c3VvbmtpZ291XCA7Civou43kuovljZTlrpogPiBndW5qaWt5b3V0ZWlcIDsKK+ilv+mrmOadseS9jiA+IHNlaWtvdXRvdXRlaVwgOwor5pCN6ICX5Lq65ZOhID4gc29ubW91amluJydpblwgOwor5a6f5Yui5L6h5qC8ID4gamlzc2Vpa2FrYWt1XCA7Civmj7TnlKjoqK3oqIggPiBlbicneW91c2Vra2VpXCA7Civnj77loLTkuK3ntpkgPiBnZW5iYWNodXVrZWlcIDsKK+aEn+efpeijhee9riA+IGthbmNoaXNvdWNoaVwgOwor6K2w5rG65qmf6ZaiID4gZ2lrZXRzdWtpa2FuXCA7Civlronlv4Pnq4vlkb0gPiBhbmppbnJ5b3VtZWlcIDsKK+WQiOWQjOS6i+alrSA+IGdvdWRvdWppZ3lvdVwgOwor5ZCM5pyf5L+h5Y+3ID4gZG91a2lzaGluZ291XCA7Civku7LplpPmhI/orZggPiBuYWthbWFpc2hpa2lcIDsKK+WqkuS7i+WkieaVsCA+IGJhaWthaWhlbnN1dVwgOwor5a+S5Lit5rC05rOzID4ga2FuY2h1dXN1aWVpXCA7Civooqvkv53pmbrniakgPiBoaWhva2VuYnV0c3VcIDsKK+aal+auuuS6i+S7tiA+IGFuc2F0c3VqaWtlblwgOwor5oqY6KG35Li7576pID4gc2V0Y2h1dXNodWdpXCA7CivljZjlvI/nsL/oqJggPiB0YW5zaGlraWJva2lcIDsKK+aVmemkiuiqsueoiyA+IGt5b3V5b3VrYXRlaVwgOwor5LiJ6ICF5Lya6KuHID4gc2Fuc2hha2FpZGFuXCA7CivpgKPoqJjmipXnpaggPiByZW5raXRvdWh5b3VcIDsKK+W/g+eQhueKtuaFiyA+IHNoaW5yaWpvdXRhaVwgOwor5rW35aSW5biC5aC0ID4ga2FpZ2Fpc2hpam91XCA7Civml6LmiJDkuovlrp8gPiBraXNlaWppaml0c3VcIDsKK+S6i+WLmee3j+WxgCA+IGppbXVzb3VreW9rdVwgOwor5YmN6YCy5Z+65ZywID4gemVuc2hpbmtpY2hpXCA7CivlkIzlt6XnlbDmm7IgPiBkb3Vrb3Vpa3lva3VcIDsKK+WRvemhjOmWouaVsCA+IG1laWRhaWthbnN1dVwgOwor5YyX6KW/6Iiq6LevID4gaG9rdXNlaWtvdXJvXCA7CivlkIjlkIzkvJrlkIggPiBnb3Vkb3VrYWlnb3VcIDsKK+eri+WcsOadoeS7tiA+IHJpdGNoaWpvdWtlblwgOwor5Zyw55CG5a2m6ICFID4gY2hpcmlnYWt1c2hhXCA7CivlpKfmiYDpq5jmiYAgPiB0YWlzaG9rb3VzaG9cIDsKK+mHjeikh+S/nemZuiA+IGp1dWZ1a3Vob2tlblwgOwor6YCa5bi45YW15ZmoID4gdHN1dWpvdWhlaWtpXCA7CivlpJblm73pg6jpmoogPiBnYWlrb2t1YnV0YWlcIDsKK+aWh+WMluS6pOa1gSA+IGJ1bmtha291cnl1dVwgOwor5biC5aSW6YCa6KmxID4gc2hpZ2FpdHN1dXdhXCA7Civmr5vntLDooYDnrqEgPiBtb3VzYWlrZWtrYW5cIDsKK+WLleaFi+e1seioiCA+IGRvdXRhaXRvdWtlaVwgOwor56S+5YaF5oOF5aCxID4gc2hhbmFpam91aG91XCA7CivkuK3lhazmlofluqsgPiBjaHV1a291YnVua29cIDsKK+Wcp+mbu+WKueaenCA+IGF0c3VkZW5rb3VrYVwgOwor6a2R6a2F6a2N6a2OID4gY2hpbWltb3VyeW91XCA7CivlvqrnkrDns7vntbEgPiBqdW5rYW5rZWl0b3VcIDsKK+WvvuS6uumWouS/giA+IHRhaWppbmthbmtlaVwgOwor5pmu6YCa6YG45oyZID4gZnV0c3V1c2Vua3lvXCA7CivmnaHku7bpl5jkuokgPiBqb3VrZW50b3Vzb3VcIDsKK+WNg+eKtuS4h+aFiyA+IHNlbmpvdWJhbnRhaVwgOwor5YyW5oiQ5bel5qWtID4ga2FzZWlrb3VneW91XCA7CivntYzmuIjljp/oq5YgPiBrZWl6YWlnZW5yb25cIDsKK+aoqeisgOihk+aVsCA+IGtlbmJvdWp1c3N1dVwgOwor5LiN5o+u55m65oCnID4gZnVraWhhdHN1c2VpXCA7Civpq5jnrYnlrabmoKEgPiBrb3V0b3VnYWtrb3VcIDsKK+mAo+WQiOeOi+WbvSA+IHJlbmdvdW91a29rdVwgOwor6YO15L6/5pu457ChID4geXV1Ymluc2hva2FuXCA7Civmt7HorIDpgaDmha4gPiBzaGluYm91ZW5yeW9cIDsKK+S9j+awkemBi+WLlSA+IGp1dW1pbicndW5kb3VcIDsKK+azleaWh+WtpumDqCA+IGhvdWJ1bmdha3VidVwgOwor5pmu6YCa6YO15L6/ID4gZnV0c3V1eXV1YmluXCA7CivlkJvkuLvmlL/kvZMgPiBrdW5zaHVzZWl0YWlcIDsKK+aNsuWcn+mHjeadpSA+IGtlbmRvY2hvdXJhaVwgOwor5aWz5aOw5ZCI5ZSxID4gam9zZWlnYXNzaG91XCA7CivnsbPopb/miKbkuokgPiBiZWlzZWlzZW5zb3VcIDsKK+mrmOW6puaIkOmVtyA+IGtvdWRvc2VpY2hvdVwgOwor5Lm+5biD5pGp5pOmID4ga2FucHVtYXNhdHN1XCA7CivkuK3oj6/mgJ3mg7MgPiBjaHV1a2FzaGlzb3VcIDsKK+i0iOS4juiovOabuCA+IHpvdXlvc2hvdXNob1wgOwor5YWs6KGG6KGb55SfID4ga291c2h1dWVpc2VpXCA7CivnpL7kvJrnp5HlraYgPiBzaGFrYWlrYWdha3VcIDsKK+i+suiKuOWMluWtpiA+IG5vdWdlaWthZ2FrdVwgOwor5Lqk6YCa5pW055CGID4ga291dHN1dXNlaXJpXCA7Civnibnmrorpg6jpmoogPiB0b2t1c2h1YnV0YWlcIDsKK+S6i+Wun+eEoeaguSA+IGppaml0c3VtdWtvblwgOwor5a2U6ZuA5aaZ546LID4ga3VqYWt1bXlvdW91XCA7CivosqHnlKPliIbkuI4gPiB6YWlzYW5idW4nJ3lvXCA7CivpgqblrZfmlrDogZ4gPiBob3VqaXNoaW5idW5cIDsKK+apn+WLleioiOeUuyA+IGtpZG91a2Vpa2FrdVwgOwor5a2k56uL5Li7576pID4ga29yaXRzdXNodWdpXCA7CivmmI7msrvlpKnnmocgPiBtZWlqaXRlbicnbm91XCA7CivnhKbngrnot53pm6IgPiBzaG91dGVua3lvcmlcIDsKK+mbhuWQiOaZgumWkyA+IHNodXVnb3VqaWthblwgOwor5L2P5a6F5Zyw5Yy6ID4ganV1dGFrdWNoaWt1XCA7CivlpJrop5Losr/mmJMgPiB0YWtha3Vib3Vla2lcIDsKK+mdnuWWq+eFmeiAhSA+IGhpa2l0c3VlbnNoYVwgOwor5raI5YyW5LiN6ImvID4gc2hvdWthZnVyeW91XCA7CivoiJ7lj7DnhafmmI4gPiBidXRhaXNob3VtZWlcIDsKK+S4jeeUn+eUo+eahCA+IGZ1c2Vpc2FudGVraVwgOwor6Z2e55Sf55Sj55qEID4gaGlzZWlzYW50ZWtpXCA7Civli5/pm4bkurrlk6EgPiBib3NodXVqaW4nJ2luXCA7Civljp/nqL/nlKjntJkgPiBnZW5rb3V5b3VzaGlcIDsKK+eEoeaEj+itmOeahCA+IG11aXNoaWtpdGVraVwgOwor57eP5Y+45Luk5a6YID4gc291c2hpcmVpa2FuXCA7CivorbLmuKHmiYDlvpcgPiBqb3V0b3Nob3Rva3VcIDsKK+WtpuerpeS/neiCsiA+IGdha3Vkb3Vob2lrdVwgOwor5pyA57WC5YW15ZmoID4gc2Fpc2h1dWhlaWtpXCA7Civmu5HotbDou4rovKogPiBrYXNzb3VzaGFyaW5cIDsKK+aciOWIiumbkeiqjCA+IGdla2thbnphc3NoaVwgOwor5YKN6Iul54Sh5Lq6ID4gYm91amFrdWJ1amluXCA7Civli6TlirTlpYnku5UgPiBraW5yb3Vob3VzaGlcIDsKK+aAp+iFuuaRmOmZpCA+IHNlaXNlbnRla2lqb1wgOwor5oay5rOV5pS55q2jID4ga2VucG91a2Fpc2VpXCA7CivooYzot6/nl4XogIUgPiBrb3Vyb2J5b3VzaGFcIDsKK+S4gOS6uuiKneWxhSA+IGhpdG9yaXNoaWJhaVwgOwor5YWx5ZCM6Ziy6KGbID4ga3lvdWRvdWJvdWVpXCA7Civpl5jlv5fmuoDmuoAgPiB0b3VzaGltYW5tYW5cIDsKK+W4guWLouiqv+afuyA+IHNoaXNlaWNob3VzYVwgOwor5Lya5Y6t6Luf6aqoID4gZWVuJyduYW5rb3RzdVwgOwor6LuN55So5Zyw5ZuzID4gZ3VuJyd5b3VjaGl6dVwgOwor5p2x5aWU6KW/6LWwID4gdG91aG9uc2Vpc291XCA7CivkuqTku6PkvZzmpa0gPiBrb3V0YWlzYWd5b3VcIDsKK+aXpeiomOaWh+WtpiA+IG5pa2tpYnVuZ2FrdVwgOwor5pel57O757Gz5Lq6ID4gbmlra2VpYmVpamluXCA7Civoh7Plhazoh7PlubMgPiBzaGlrb3VzaGloZWlcIDsKK+mWoumAo+S8muekviA+IGthbnJlbmdhaXNoYVwgOwor5Lq65qip5a6j6KiAID4gamlua2Vuc2VuZ2VuXCA7CivkurrpgKDkurrplpMgPiBqaW56b3VuaW5nZW5cIDsKK+WCvuaWnOWutuizgyA+IGtlaXNoYXlhY2hpblwgOwor6Ieq5rCR5YWa5YmHID4gamltaW50b3Vzb2t1XCA7Civlj43lvqnoqJjlj7cgPiBoYW5wdWt1a2lnb3VcIDsKK+aXpeacrOiIquepuiA+IG5pcHBvbmtvdWt1dVwgOwor6Iux5omN5pWZ6IKyID4gZWlzYWlreW91aWt1XCA7CivmjpLmsLTmnaHku7YgPiBoYWlzdWlqb3VrZW5cIDsKK+iLseWbveiIquepuiA+IGVpa29rdWtvdWt1dVwgOwor5pqX5Lit5pG457SiID4gYW5jaHV1bW9zYWt1XCA7CivliY3lk6jpqI7lhbUgPiB6ZW5zaG91a2loZWlcIDsKK+awtOe0oOeIhuW8viA+IHN1aXNvYmFrdWRhblwgOwor5r2F5ryR55So5rC0ID4ga2FuZ2FpeW91c3VpXCA7CivkuIDmlonlsITmkoMgPiBpc3NlaXNoYWdla2lcIDsKK+Wfuui7uOmAmuiyqCA+IGtpamlrdXRzdXVrYVwgOwor5YK+5pac55Sf55SjID4ga2Vpc2hhc2Vpc2FuXCA7CivlooPnlYznkIboq5YgPiBreW91a2Fpcmlyb25cIDsKK+Wkqeeah+mZm+S4iyA+IHRlbicnbm91aGVpa2FcIDsKK+WkqeeEtuaenOaxgSA+IHRlbicnbmVua2FqdXVcIDsKK+mciuiCieS4gOiHtCA+IHJlaW5pa3VpdGNoaVwgOwor57WM5riI5b6p6IiIID4ga2VpemFpZnVra291XCA7Civkurrlj6PntbHoqIggPiBqaW5rb3V0b3VrZWlcIDsKK+aIpuaZgueUo+alrSA+IHNlbmppc2FuZ3lvdVwgOwor5Y+k6Yqt5a2m6ICFID4ga29zZW5nYWt1c2hhXCA7Civlr77lvL7pgZPlvL4gPiB0YWlkYW5kb3VkYW5cIDsKK+ijvemAoOeVquWPtyA+IHNlaXpvdWJhbmdvdVwgOwor5aSa6YeN5Lq65qC8ID4gdGFqdXVqaW5rYWt1XCA7CivkuIDliIDkuKHmlq0gPiBpdHRvdXJ5b3VkYW5cIDsKK+WFseeUo+S4u+e+qSA+IGt5b3VzYW5zaHVnaVwgOwor6KiY5ZCN5oqV56WoID4ga2ltZWl0b3VoeW91XCA7CivkvJHmhqnmmYLplpMgPiBreXV1a2VpamlrYW5cIDsKK+S4uOWkqui2s+WgtCA+IG1hcnV0YWFzaGliYVwgOwor5qGD6Imy6YGK5oivID4gbW9tb2lyb3l1dWdpXCA7Civmrablo6vpmo7ntJogPiBidXNoaWthaWt5dXVcIDsKK+Wbvemam+mbu+ipsSA+IGtva3VzYWlkZW53YVwgOwor5Lq65bel5Zyw6ZyHID4gamlua291amlzaGluXCA7CivmvZzlnKjkuLvmqKkgPiBzZW56YWlzaHVrZW5cIDsKK+mBjuWwj+ipleS+oSA+IGthc2hvdWh5b3VrYVwgOwor56+E55aH6YOo6ZaAID4gaGFuY2h1dWJ1bW9uXCA7Civkv67pgZPliLbluqYgPiBzaHV1ZG91c2VpZG9cIDsKK+e1seiqnuevhOeWhyA+IHRvdWdvaGFuY2h1dVwgOwor6KGb55Sf6Kit5YKZID4gZWlzZWlzZXRzdWJpXCA7CivkuIDmrKHnlKPlk4EgPiBpY2hpamlzYW5waW5cIDsKK+WFrOaYjuato+WkpyA+IGtvdW1laXNlaWRhaVwgOwor6Iqx54Gr57ea6aaZID4gaGFuYWJpc2Vua291XCA7CivoiLbnlKjmqZ/plqIgPiBoYWt1eW91a2lrYW5cIDsKK+WFrOawkeaoqeazlSA+IGtvdW1pbmtlbmhvdVwgOwor5piP552h54q25oWLID4ga29uc3Vpam91dGFpXCA7Civlr77lkJHou4rnt5ogPiB0YWlrb3VzaGFzZW5cIDsKK+mJhOaLs+WItuijgSA+IHRla2tlbnNlaXNhaVwgOwor5qGC5Yag6Kmp5Lq6ID4ga2Vpa2Fuc2hpamluXCA7Civkurrlj6Poqr/mn7sgPiBqaW5rb3VjaG91c2FcIDsKK+WPuOazleino+WJliA+IHNoaWhvdWthaWJvdVwgOwor5Lq65Y+j6Z2Z5oWLID4gamlua291c2VpdGFpXCA7CivmnInkvZPli5XnlKMgPiB5dXV0YWlkb3VzYW5cIDsKK+aOoeeUqOippumokyA+IHNhaXlvdXNoaWtlblwgOwor5rCX6LGh5oOF5aCxID4ga2lzaG91am91aG91XCA7CivmnInnt5rmlL7pgIEgPiB5dXVzZW5ob3Vzb3VcIDsKK+WWgOeXsOaknOafuyA+IGtha3V0YW5rZW5zYVwgOwor6YO35Zyf5paZ55CGID4ga3lvdWRvcnlvdXJpXCA7CivkuInmrrXoq5bms5UgPiBzYW5kYW5yb25wb3VcIDsKK+aZguS7o+eyvuelniA+IGppZGFpc2Vpc2hpblwgOwor6KqH5aSn5bqD5ZGKID4ga29kYWlrb3Vrb2t1XCA7CivkuIDmmKjjgIXlpJwgPiBpc3Nha3VzYWt1eWFcIDsKK+mDveW4guioiOeUuyA+IHRvc2hpa2Vpa2FrdVwgOwor6Zai5p2x5LiA5YaGID4ga2FudG91aWNoaWVuXCA7Civoh6rnhLbnmbrnlJ8gPiBzaGl6ZW5oYXNzZWlcIDsKK+asveWumuaGsuazlSA+IGtpbnRlaWtlbnBvdVwgOwor5pWw5YCk5Yi25b6hID4gc3V1Y2hpc2VpZ3lvXCA7CivmrabogIXkurrlvaIgPiBtdXNoYW5pbmd5b3VcIDsKK+WIhuWRqOWbnui3ryA+IGJ1bnNodXVrYWlyb1wgOwor6Iel6b6N54K5552bID4gZ2FyeW91dGVuc2VpXCA7CivluILmsJHlpKfkvJogPiBzaGltaW50YWlrYWlcIDsKK+i1pOWtl+WbveWCtSA+IGFrYWppa29rdXNhaVwgOwor5L2/55So5pa55rOVID4gc2hpeW91aG91aG91XCA7CivlsI/mmKXml6XlkowgPiBrb2hhcnViaXlvcmlcIDsKK+WFrOW8j+ippuWQiCA+IGtvdXNoaWtpamlhaVwgOwor54Wn5bCE5Yem55CGID4gc2hvdXNoYXNob3JpXCA7Civlj4Lli6TkuqTmm78gPiBzYW5raW5rb3V0YWlcIDsKK+e+iumgreeLl+iCiSA+IHlvdXRvdWt1bmlrdVwgOwor5pah5peL5qWt6ICFID4gYXNzZW5neW91c2hhXCA7CivkvJrnpL7mpoLopoEgPiBrYWlzaGFnYWl5b3VcIDsKK+awkeS4u+aUv+S9kyA+IG1pbnNodXNlaXRhaVwgOwor57KX5pS+6L6y5qWtID4gc29ob3Vub3VneW91XCA7CivosqHli5noq7jooaggPiB6YWltdXNob2h5b3VcIDsKK+iaiuWPlue3mummmSA+IGthdG9yaXNlbmtvdVwgOwor5bqD5aCx5oOF5aCxID4ga291aG91am91aG91XCA7Civnt4rmgKXkuovmhYsgPiBraW5reXV1aml0YWlcIDsKK+Wdh+ihoeS+oeagvCA+IGtpbmtvdWtha2FrdVwgOwor5a2j56+A5aSJ55WwID4ga2lzZXRzdWhlbicnaVwgOwor5pyJ5oSf5Zyw6ZyHID4geXV1a2FuamlzaGluXCA7Civnt6nlkozmjK/li5UgPiBrYW53YXNoaW5kb3VcIDsKK+W5vemciuS6uuWPoyA+IHl1dXJlaWppbmtvdVwgOwor57Wx6Kqe5oyH5qiZID4gdG91Z29zaGloeW91XCA7CivmnIDpq5jkvqHmoLwgPiBzYWlrb3VrYWtha3VcIDsKK+mFuOaAp+eZveWcnyA+IHNhbnNlaWhha3Vkb1wgOwor5rCR5peP6KGj6KOFID4gbWluem9rdWlzaG91XCA7Civkv67lo6voqrLnqIsgPiBzaHV1c2hpa2F0ZWlcIDsKK+WFrOebiuazleS6uiA+IGtvdWVraWhvdWppblwgOwor5q205Y+y5Li7576pID4gcmVraXNoaXNodWdpXCA7CivlvIHmhbbmoLzlrZAgPiBiZW5rZWlnb3VzaGlcIDsKK+esrOS6jOS6uuensCA+IGRhaW5pbmluc2hvdVwgOwor5LiL5rWB56S+5LyaID4ga2FyeXV1c2hha2FpXCA7Civlv6vmpb3kuLvnvqkgPiBrYWlyYWt1c2h1Z2lcIDsKK+S4jeeyvuS4jeeyviA+IGZ1c2hvdWJ1c2hvdVwgOwor5Yi26ZmQ6YCf5bqmID4gc2VpZ2Vuc29rdWRvXCA7CivmlofmrabkuKHpgZMgPiBidW5idXJ5b3Vkb3VcIDsKK+S4iuaYh+mZkOW6piA+IGpvdXNob3VnZW5kb1wgOwor5L2c55So56mN5YiGID4gc2F5b3VzZWtpYnVuXCA7CivohbnnrYvpgYvli5UgPiBmdWtraW4nJ3VuZG91XCA7Civlhazoqo3oqJjpjLIgPiBrb3VuaW5raXJva3VcIDsKK+S4gOe2suaJk+WwvSA+IGljaGltb3VkYWppblwgOwor5a2m5qCh55So5ZOBID4gZ2Fra291eW91aGluXCA7CivkvY/lroXmiYvlvZMgPiBqdXV0YWt1dGVhdGVcIDsKK+iqjeefpeenkeWtpiA+IG5pbmNoaWthZ2FrdVwgOwor5ZWG5aOy6YGT5YW3ID4gc2hvdWJhaWRvdWd1XCA7Civljp/lrZDmiKbkuokgPiBnZW5zaGlzZW5zb3VcIDsKK+S6jOmHjeeEpueCuSA+IG5panV1c2hvdXRlblwgOwor5Y+j562U6Kmm5ZWPID4ga291dG91c2hpbW9uXCA7Civlm7Pmm7jppKjplbcgPiB0b3Nob2thbmNob3VcIDsKK+WcqOW6q+iqv+aVtCA+IHphaWtvY2hvdXNlaVwgOwor5a++5pWw6Zai5pWwID4gdGFpc3V1a2Fuc3V1XCA7CivmlL/mlZnkuIDoh7QgPiBzZWlreW91aXRjaGlcIDsKK+aWh+iKuOaJueiplSA+IGJ1bmdlaWhpaHlvdVwgOwor57ea5b2i5Luj5pWwID4gc2Vua2VpZGFpc3V1XCA7CivpgKPlkIjmlL/mqKkgPiByZW5nb3VzZWlrZW5cIDsKK+mgvOavjeWtkOismyA+IHRhbm9tb3NoaWtvdVwgOwor5Zyo6Z+T57Gz6LuNID4gemFpa2FuYmVpZ3VuXCA7CivkuIDlpJzkuZ7po58gPiBpY2hpeWFrb2ppa2lcIDsKK+eVsOW4uOe1guS6hiA+IGlqb3VzaHV1cnlvdVwgOwor6Kmm6aiT5Zyw542EID4gc2hpa2Vuamlnb2t1XCA7CivnpL7lk6HmlZnogrIgPiBzaGFpbmt5b3Vpa3VcIDsKK+S8gealreW5tOmHkSA+IGtpZ3lvdW5lbmtpblwgOwor5Lme6aOf5qC55oCnID4ga29qaWtpa29uam91XCA7CivkvIHmpa3lkIjlkIwgPiBraWd5b3Vnb3Vkb3VcIDsKK+iHquS4u+aMh+mHnSA+IGppc2h1c2hpc2hpblwgOwor5oSf5oWo54Sh6YePID4ga2FuZ2FpbXVyeW91XCA7CivmlbXmgKflm73lrrYgPiB0ZWtpc2Vpa29ra2FcIDsKK+etieW3rue0muaVsCA+IHRvdXNha3l1dXN1dVwgOwor5bir56+E5a2m5qChID4gc2hpaGFuZ2Fra291XCA7CivntYzmuIjnpL7kvJogPiBrZWl6YWlzaGFrYWlcIDsKK+aUueiJr+S4u+e+qSA+IGthaXJ5b3VzaHVnaVwgOwor57WM5riI5Yi26KOBID4ga2VpemFpc2Vpc2FpXCA7CivkuLvmiKbmipXmiYsgPiBzaHVzZW50b3VzaHVcIDsKK+mBiuaSg+maiuWToSA+IHl1dWdla2l0YWlpblwgOwor5LiA5pmC5biw5LyRID4gaWNoaWppa2lreXV1XCA7Civlj5fnm4roqLzliLggPiBqdWVraXNob3VrZW5cIDsKK+aLmemAn+S4u+e+qSA+IHNlc3Nva3VzaHVnaVwgOwor5pyq6ZaL5ouT5ZywID4gbWlrYWl0YWt1Y2hpXCA7CivlhajmqKnlhazkvb8gPiB6ZW5rZW5rb3VzaGlcIDsKK+e1seWItue1jOa4iCA+IHRvdXNlaWtlaXphaVwgOwor55Sw5ZyS6aKo5pmvID4gZGVuJydlbmZ1dWtlaVwgOwor5peF6KGM5pel56iLID4gcnlva291bml0dGVpXCA7CivnhKHph4/lpKfmlbAgPiBtdXJ5b3VkYWlzdXVcIDsKK+WJsuW8leatqeWQiCA+IHdhcmliaWtpYnVhaVwgOwor5Y+N5qC46YGL5YuVID4gaGFua2FrdXVuZG91XCA7CivpppnmuK/ov5TpgoQgPiBob25rb25oZW5rYW5cIDsKK+S8gealreWQiOS9tSA+IGtpZ3lvdWdhcHBlaVwgOwor6Z2e6KGM5bCR5bm0ID4gaGlrb3VzaG91bmVuXCA7Civph47lpJbmkq7lvbEgPiB5YWdhaXNhdHN1ZWlcIDsKK+WNg+aJi+ims+mfsyA+IHNlbmp1a2FuJydub25cIDsKK+eyvuelnuS4u+e+qSA+IHNlaXNoaW5zaHVnaVwgOwor57WC5aeL5LiA6LKrID4gc2h1dXNoaWlra2FuXCA7CivnnIzmsJHkvJrppKggPiBrZW5taW5rYWlrYW5cIDsKK+aVmeadoeS4u+e+qSA+IGt5b3Vqb3VzaHVnaVwgOwor5pu055Sf5Lya56S+ID4ga291c2VpZ2Fpc2hhXCA7CivnuYrntq3lt6Xmpa0gPiBzZW4nJ2lrb3VneW91XCA7CivkurrplpPlkIzlo6sgPiBuaW5nZW5kb3VzaGlcIDsKK+WLmOWQiOiyv+aYkyA+IGthbmdvdWJvdWVraVwgOwor55m+5a625LqJ6bO0ID4gaHlha2thc291bWVpXCA7CivkuJbnlYzmlL/nrZYgPiBzZWthaXNlaXNha3VcIDsKK+WutuWxi+WPsOW4syA+IGthb2t1ZGFpY2hvdVwgOwor5p2x5rW36YGT57eaID4gdG91a2FpZG91c2VuXCA7CivpgY7lvZPnq7bkuokgPiBrYXRvdWt5b3Vzb3VcIDsKK+a2suS9k+eqkue0oCA+IGVraXRhaWNoaXNzb1wgOwor5bmz5ZKM5Y2U5a6aID4gaGVpd2FreW91dGVpXCA7CivnhKHnt5rpm7vkv6EgPiBtdXNlbmRlbnNoaW5cIDsKK+WwgumWgOeUqOiqniA+IHNlbm1vbicneW91Z29cIDsKK+S6uumAoOiCpeaWmSA+IGppbnpvdWhpcnlvdVwgOwor5aSn56Cy5LiJ6ZaAID4gdGFpaG91c2FubW9uXCA7Civlrp/pqJPoo4Xnva4gPiBqaWtrZW5zb3VjaGlcIDsKK+S4reWkruWKtOWDjSA+IGNodXVvdXJvdWRvdVwgOwor5YaF57ea55Wq5Y+3ID4gbmFpc2VuYmFuZ291XCA7CivkvJ3oqJjkvZzogIUgPiBkZW5raXNha3VzaGFcIDsKK+S6uuawkeWFrOekviA+IGppbm1pbmtvdXNoYVwgOwor6YCj57Wh5YiH56ymID4gcmVucmFrdWtpcHB1XCA7CivlhbHlkIzlopPlnLAgPiBreW91ZG91Ym9jaGlcIDsKK+Wun+aFi+iqv+afuyA+IGppdHRhaWNob3VzYVwgOwor57eP5YuZ6ZW35a6YID4gc291bXVjaG91a2FuXCA7Civmt7fkubHnirbmhYsgPiBrb25yYW5qb3V0YWlcIDsKK+WutuaXj+aEj+itmCA+IGthem9rdWlzaGlraVwgOwor5aSW5p+U5YaF5YmbID4gZ2FpanV1bmFpZ291XCA7CivoqKrllY/osqnlo7IgPiBob3Vtb25oYW5iYWlcIDsKK+aOkuaWpemBi+WLlSA+IGhhaXNla2l1bmRvdVwgOwor5Y6f5a2Q5by+6aCtID4gZ2Vuc2hpZGFudG91XCA7Civllrbmpa3moYjlhoUgPiBlaWd5b3VhbicnbmFpXCA7CivlpKnmlofoiKrms5UgPiB0ZW5tb25rb3Vob3VcIDsKK+mdnuWun+mam+eahCA+IGhpamlzc2FpdGVraVwgOwor5Y+C5Yuk5Lqk5LujID4gc2Fua2lua291dGFpXCA7Civoo4/mm7jorbLmuKEgPiB1cmFnYWtpam91dG9cIDsKK+mWouS/guabuOmhniA+IGthbmtlaXNob3J1aVwgOwor5YWN6Kix55qG5LydID4gbWVua3lva2FpZGVuXCA7Civlm57ou6Lnq7bmioAgPiBrYWl0ZW5reW91Z2lcIDsKK+e1jOa4iOawtOWfnyA+IGtlaXphaXN1aWlraVwgOwor54Sh5qyy5oGs5rehID4gbXV5b2t1dGVudGFuXCA7Civoh6rmiJHlrp/nj74gPiBqaWdhaml0c3VnZW5cIDsKK+Wft+ihjOeMtuS6iCA+IHNoaWtrb3V5dXV5b1wgOwor6J6N6YCa5omL5b2iID4geXV1enV1dGVnYXRhXCA7CivljprnlJ/lubTph5EgPiBrb3VzZWluZW5raW5cIDsKK+mZouWGheaEn+afkyA+IGluJyduYWlrYW5zZW5cIDsKK+aCquaAp+awtOiFqyA+IGFrdXNlaXN1aXNodVwgOwor5Zuj5Y2B6YOO5LiIID4gZGFuanV1cm91am91XCA7Civku6Xlv4PkvJ3lv4MgPiBpc2hpbmRlbnNoaW5cIDsKK+S4gOWtl+WNg+mHkSA+IGljaGlqaXNlbmtpblwgOwor5qWt57i+5oKq5YyWID4gZ3lvdXNla2lha2thXCA7CivkuozmnZ/kuInmlocgPiBuaXNva3VzYW5tb25cIDsKK+WFteWZqOaLoeaVoyA+IGhlaWtpa2FrdXNhblwgOwor5Lqk5Y+L6Zai5L+CID4ga291eXV1a2Fua2VpXCA7Civlm73pmpvmlL/msrsgPiBrb2t1c2Fpc2VpamlcIDsKK+abuOmdouWvqeeQhiA+IHNob21lbnNoaW5yaVwgOwor5Lq66ZaT56S+5LyaID4gbmluZ2Vuc2hha2FpXCA7Civou43lm73kuLvnvqkgPiBndW5rb2t1c2h1Z2lcIDsKK+awtOS4iuertuaKgCA+IHN1aWpvdWt5b3VnaVwgOwor5rKz5Y6f5Lme6aOfID4ga2F3YXJha29qaWtpXCA7Civkuozph43mkq7lvbEgPiBuaWp1dXNhdHN1ZWlcIDsKK+e1tuWvvuipleS+oSA+IHpldHRhaWh5b3VrYVwgOwor5Zyo57Gz6YKm5Lq6ID4gemFpYmVpaG91amluXCA7Civlm5vmnIjppqzpub8gPiBzaGlnYXRzdWJha2FcIDsKK+aWsOmAsuawl+mLrSA+IHNoaW5zaGlua2llaVwgOwor5omA5b6X5o6n6ZmkID4gc2hvdG9rdWtvdWpvXCA7CivplqLkv4LkvJrnpL4gPiBrYW5rZWlnYWlzaGFcIDsKK+iHquS/oea6gOa6gCA+IGppc2hpbm1hbm1hblwgOwor5pel5pys5a2m6ICFID4gbmlob25nYWt1c2hhXCA7CivmmKXml6XlpKfnpL4gPiBrYXN1Z2F0YWlzaGFcIDsKK+aWh+aYjuekvuS8miA+IGJ1bm1laXNoYWthaVwgOwor5ZCM5Lq66ZuR6KqMID4gZG91amluemFzc2hpXCA7Civlj7jms5Xoo4HliKQgPiBzaGlob3VzYWliYW5cIDsKK+S6uuS9k+Wun+mokyA+IGppbnRhaWppa2tlblwgOwor5Lqh5ZG95pS/5qipID4gYm91bWVpc2Vpa2VuXCA7Civku7LplpPlkIzlo6sgPiBuYWthbWFkb3VzaGlcIDsKK+e1jOWWtuW3peWtpiA+IGtlaWVpa291Z2FrdVwgOwor6LOb5ZCm5Lih6KuWID4gc2FucGlyeW91cm9uXCA7CivkuI3ms5Xpm4bkvJogPiBmdWhvdXNodXVrYWlcIDsKK+ecvOmrmOaJi+S9jiA+IGdhbmtvdXNodXRlaVwgOwor6Ieq5YuV5bCP6YqDID4gamlkb3VzaG91anV1XCA7CivlnLDln5/npL7kvJogPiBjaGlpa2lzaGFrYWlcIDsKK+S6pOa1geS6uuS6iyA+IGtvdXJ5dXVqaW5qaVwgOwor54m55q6K5Yq55p6cID4gdG9rdXNodWtvdWthXCA7Civoh6rlrrbkuK3mr5IgPiBqaWthY2h1dWRva3VcIDsKK+ebsuiyq+mKg+WJtSA+IG1vdWthbmp1dXNvdVwgOwor5Lq65rCX55Wq57WEID4gbmlua2liYW5ndW1pXCA7CivmlbXmnKzkuLvnvqkgPiB0ZWtpaG9uc2h1Z2lcIDsKK+WPo+WGheaAp+S6pCA+IGtvdW5haXNlaWtvdVwgOwor6ISz6Luf5YyW55eHID4gbm91bmFua2FzaG91XCA7Civnj77lnLDms5XkurogPiBnZW5jaGlob3VqaW5cIDsKK+iHquWLlei7iuazpSA+IGppZG91c2hhZG9yb1wgOwor5LiA5pmC5YGc5q2iID4gaWNoaWppdGVpc2hpXCA7CivlrablnJLntJvkuokgPiBnYWt1ZW5mdW5zb3VcIDsKK+acgOmrmOWtpuW6nCA+IHNhaWtvdWdha3VmdVwgOwor5L+d6Zm65aWR57SEID4gaG9rZW5rZWl5YWt1XCA7CivlpbPmgKflt67liKUgPiBqb3NlaXNhYmV0c3VcIDsKK+WFkOerpeemj+eliSA+IGppZG91ZnVrdXNoaVwgOwor6Kmm6aiT5ZWP6aGMID4gc2hpa2VubW9uZGFpXCA7CivmvLjpgLLkuLvnvqkgPiB6ZW5zaGluc2h1Z2lcIDsKK+mfs+S/oeS4jemAmiA+IG9uc2hpbmZ1dHN1dVwgOwor5YuH5b6A6YKB6YCyID4geXV1b3VtYWlzaGluXCA7CivpnZnmraLnirbmhYsgPiBzZWlzaGlqb3V0YWlcIDsKK+WMl+aUr+S6i+WkiSA+IGhva3VzaGlqaWhlblwgOwor5a+45YCf6KmQ5qy6ID4gc3Vuc2hha3VzYWdpXCA7CivmjIflkI3pgJroqbEgPiBzaGltZWl0c3V1d2FcIDsKK+iLpuW/g+aDqOaGuiA+IGt1c2hpbnNhbnRhblwgOwor54m95by35LuY5LyaID4ga2Vua3lvdWZ1a2FpXCA7Civlr5LlhrfliY3nt5ogPiBrYW5yZWl6ZW5zZW5cIDsKK+mAn+W6puWItumZkCA+IHNva3Vkb3NlaWdlblwgOwor5Zub6YOo5ZCI5ZSxID4gc2hpYnVnYXNzaG91XCA7Civpm7vpm7vlhaznpL4gPiBkZW5kZW5rb3VzaGFcIDsKK+WEquWLneWAmeijnCA+IHl1dXNob3Vrb3Vob1wgOwor5Y+L5aW96Zai5L+CID4geXV1a291a2Fua2VpXCA7CivmlZHmj7Tnianos4cgPiBreXV1ZW5idXNzaGlcIDsKK+elnuekvuS7j+mWoyA+IGppbmphYnVra2FrdVwgOwor5rC05bmz5oCd6ICDID4gc3VpaGVpc2hpa291XCA7Civpn7PmhJ/mlZnogrIgPiBvbmthbmt5b3Vpa3VcIDsKK+a7nue0jeWHpuWIhiA+IHRhaW5vdXNob2J1blwgOwor5YWx5ZCM57WM5Za2ID4ga3lvdWRvdWtlaWVpXCA7Civkuozlha3mmYLkuK0gPiBuaXJva3VqaWNodXVcIDsKK+S4gOaZguiznOmHkSA+IGljaGlqaXNoaWtpblwgOwor6Ieq54S25bSH5oudID4gc2hpemVuc3V1aGFpXCA7Civlr6norbDmnKrkuoYgPiBzaGluZ2ltaXJ5b3VcIDsKK+mkiuWtkOe4gee1hCA+IHlvdXNoaWVuZ3VtaVwgOwor5rCP5peP5Yi25bqmID4gc2hpem9rdXNlaWRvXCA7Civou43pmaPljLvlraYgPiBndW5qaW4nJ2lnYWt1XCA7CivmraPlm5vpnaLkvZMgPiBzZWlzaGltZW50YWlcIDsKK+WumuagvOiri+iyoCA+IHRlaWtha3V1a2VvaVwgOwor5b6F6YGH5pS55ZaEID4gdGFpZ3V1a2FpemVuXCA7CivnuYrntq3lhYnlraYgPiBzZW4nJ2lrb3VnYWt1XCA7Civpu5LkurrpnIrmrYwgPiBrb2t1amlucmVpa2FcIDsKK+eJueauiuapn+iDvSA+IHRva3VzaHVraW5vdVwgOwor57WM6Lev56mN5YiGID4ga2Vpcm9zZWtpYnVuXCA7Civlm73llrbovrLloLQgPiBrb2t1ZWlub3Vqb3VcIDsKK+Wbveeyi+S4u+e+qSA+IGtva3VzdWlzaHVnaVwgOwor55Sy54q26IW654KOID4ga291am91c2VuJydlblwgOwor6LOH55Sj5ZCI6KiIID4gc2hpc2FuZ291a2VpXCA7Civpr6jpo7Lppqzpo58gPiBnZWlpbmJhc2hva3VcIDsKK+W/g+iHk+eZuuS9nCA+IHNoaW56b3Vob3NzYVwgOwor5paw5Lq65q2M5omLID4gc2hpbmppbmthc2h1XCA7CivovLjlhaXmiYvlvaIgPiB5dW55dXV0ZWdhdGFcIDsKK+Wcp+edgOerr+WtkCA+IGF0c3VnaXRhbnNoaVwgOwor5pyq5pS55b+D6ICFID4gbWlrYWlzaGluc2hhXCA7CivnhKHlirnmipXnpaggPiBtdWtvdXRvdWh5b3VcIDsKK+mbo+aUu+S4jeiQvSA+IG5hbmtvdWZ1cmFrdVwgOwor5LiA5b+D5ZCM5L2TID4gaXNzaGluZG91dGFpXCA7CivlrqXlkozmlL/nrZYgPiB5dXV3YXNlaXNha3VcIDsKK+mZkOeVjOWKueeUqCA+IGdlbmthaWtvdXlvdVwgOwor5Y2B5LiH5YSE5ZyfID4ganV1bWFuJydva3Vkb1wgOwor5aSJ5oWL5b+D55CGID4gaGVudGFpc2hpbnJpXCA7Civmi43lrZDoqJjlj7cgPiBoeW91c2hpa2lnb3VcIDsKK+WFrOS8muWVj+etlCA+IGtvdWthaW1vbmRvdVwgOwor6ICD5Y+k5a2m6ICFID4ga291a29nYWt1c2hhXCA7Civph47nkIPpgbjmiYsgPiB5YWt5dXVzZW5zaHVcIDsKK+WkoumBiueXheiAhSA+IG11eXV1YnlvdXNoYVwgOwor6KaB5omA6KaB5omAID4geW91c2hveW91c2hvXCA7Civkvb/lvpLntpnmib8gPiBzaGl0b2tlaXNob3VcIDsKK+WKseejgembu+a1gSA+IHJlaWppZGVucnl1dVwgOwor56S+5Lya5Yi25bqmID4gc2hha2Fpc2VpZG9cIDsKK+S7o+eQhumgmOS6iyA+IGRhaXJpcnlvdWppXCA7CivngrnmlbDliIfnrKYgPiB0ZW5zdXVraXBwdVwgOwor5YyW5oiQ6IKl5paZID4ga2FzZWloaXJ5b3VcIDsKK+acquaIkOW5tOiAhSA+IG1pc2VpbmVuc2hhXCA7CivkuIDlpKnkuIfkuZcgPiBpdHRlbmJhbmpvdVwgOwor6Kaq5a2Q6Zai5L+CID4gb3lha29rYW5rZWlcIDsKK+aBkOaAluaUv+ayuyA+IGt5b3VmdXNlaWppXCA7CivomZrmlbDljZjkvY0gPiBreW9zdXV0YW4nJ2lcIDsKK+mBuOaMmeWItuW6piA+IHNlbmt5b3NlaWRvXCA7CivlpKfpoZjmiJDlsLEgPiBkYWlnYW5qb3VqdVwgOwor5YaG5Y2T5Lya6K2wID4gZW50YWt1a2FpZ2lcIDsKK+Wkp+WuruW+oeaJgCA+IG9vbWl5YWdvc2hvXCA7CivkuIrkuIvplqLkv4IgPiBqb3VnZWthbmtlaVwgOwor5YWs5Za25LyB5qWtID4ga291ZWlraWd5b3VcIDsKK+mHjea2suWIhumboiA+IGp1dWVraWJ1bnJpXCA7Civlrp/ot7XnkIbmgKcgPiBqaXNzZW5yaXNlaVwgOwor6KGM5L2P5Z2Q6IelID4gZ3lvdWp1dXphZ2FcIDsKK+iogOihjOS4gOiHtCA+IGdlbmtvdWl0Y2hpXCA7CivluoPlpKfnhKHovrogPiBrb3VkYWltdWhlblwgOwor5YSq5YWI5LqL6aCFID4geXV1c2Vuamlrb3VcIDsKK+aQuuW4r+mbu+ipsSA+IGtlaXRhaWRlbndhXCA7CivmmYLku6PpjK/oqqQgPiBqaWRhaXNha3Vnb1wgOwor5Lq65bel6KGb5pifID4gamlua291ZWlzZWlcIDsKK+e3muW9oumghuW6jyA+IHNlbmtlaWp1bmpvXCA7CivlpJbkuqTlrpjoo5wgPiBnYWlrb3VrYW5ob1wgOwor5L2P5bGF5omL5b2TID4ganV1a3lvdGVhdGVcIDsKK+mBk+i3r+aomeekuiA+IGRvdXJvaHlvdWppXCA7CivkuojlgpnlsIbmoKEgPiB5b2Jpc2hvdWtvdVwgOwor5rCR6ZaT6aOb6KGMID4gbWlua2FuaGlrb3VcIDsKK+awuOWtkOS9nOaoqSA+IGVpa29zYWt1a2VuXCA7CivnpL7kvJrpgYvli5UgPiBzaGFrYWl1bmRvdVwgOwor56e76KGM6KiI55S7ID4gaWtvdWtlaWtha3VcIDsKK+aOpei/kee1jOi3ryA+IHNla2tpbmtlaXJvXCA7CivkuJbnlYzntYzmuIggPiBzZWthaWtlaXphaVwgOwor5rWu5LiW6I2J5a2QID4gdWtpeW96b3VzaGlcIDsKK+WumuaVsOaYr+atoyA+IHRlaXN1dXplc2VpXCA7Civlronkv53mnaHntIQgPiBhbnBvam91eWFrdVwgOwor6LKp5aOy5YCk5q61ID4gaGFuYmFpbmVkYW5cIDsKK+WfuuW6leani+mAoCA+IGtpdGVpa291em91XCA7Civlv4XpoIjmnaHku7YgPiBoaXNzdWpvdWtlblwgOwor5Yy66KOB5Yik5omAID4ga3VzYWliYW5zaG9cIDsKK+S6iOihjOa8lOe/kiA+IHlva291ZW5zaHV1XCA7CivpgbjmjJnpgYvli5UgPiBzZW5reW91bmRvdVwgOwor5Zu96Zqb6KaP5qihID4ga29rdXNhaWtpYm9cIDsKK+mBi+i7ouWFjeiosSA+IHVudGVubWVua3lvXCA7Civnt5rlvaLoq5bnkIYgPiBzZW5rZWlyb25yaVwgOwor5bm06LOA6YO15L6/ID4gbmVuZ2F5dXViaW5cIDsKK+a4qemiqOaaluaIvyA+IG9ucHV1ZGFuYm91XCA7CivlhoXpg6jmp4vpgKAgPiBuYWlidWtvdXpvdVwgOwor5LiN5a6a5Z6L6KmpID4gZnV0ZWlrZWlzaGlcIDsKK+m7hOmHkeW0h+aLnSA+IG91Z29uc3V1aGFpXCA7CivkuJboqbHlpbPmiL8gPiBzZXdhbnlvdWJvdVwgOwor54qs5YSS5a2m5rS+ID4ga2VuanVnYWt1aGFcIDsKK+S4gOWTgeaWmeeQhiA+IGlwcGlucnlvdXJpXCA7CivkupznoavphbjloakgPiBhcnl1dXNhbicnZW5cIDsKK+acieWjsOWtkOmfsyA+IHl1dXNlaXNoaWluXCA7CivnmoblhbXliLbluqYgPiBrYWloZWlzZWlkb1wgOwor5pyq57WM6aiT6ICFID4gbWlrZWlrZW5zaGFcIDsKK+S4iuaEj+S4i+mBlCA+IGpvdWlrYXRhdHN1XCA7Civou4rplpPot53pm6IgPiBzaGFrYW5reW9yaVwgOwor5rC35rKz5pmC5LujID4gaHlvdWdhamlkYWlcIDsKK+aDheWgseeQhuirliA+IGpvdWhvdXJpcm9uXCA7CivlvqHlpJrlv5nkuK0gPiBnb3RhYm91Y2h1dVwgOwor5oSb5p+T5piO546LID4gYWl6ZW5teW91b3VcIDsKK+W5s+mdouS6pOW3riA+IGhlaW1lbmtvdXNhXCA7CivntYzpqJPkuLvnvqkgPiBrZWlrZW5zaHVnaVwgOwor5byB6K235aOr5LyaID4gYmVuZ29zaGlrYWlcIDsKK+e0lOaDheWPr+aGkCA+IGp1bmpvdWthcmVuXCA7CivovInosqjlkIPmsLQgPiBzYWlrYWtpc3N1aVwgOwor5Y2K5r+B6Z+z56ymID4gaGFuZGFrdW9uZnVcIDsKK+aEm+afk+WmmeeOiyA+IGFpemVubXlvdW91XCA7Civplqjnp4DnlLvlrrYgPiBrZWlzaHV1Z2FrYVwgOwor5LiJ5Y2K6KaP566hID4gc2FuaGFua2lrYW5cIDsKK+WwgeW7uuaZguS7oyA+IGhvdWtlbmppZGFpXCA7Civotorlhqzos4fph5EgPiBldHRvdXNoaWtpblwgOwor5omA5biv6YGT5YW3ID4gc2hvdGFpZG91Z3VcIDsKK+WCsuWyuOeEoeekvCA+IGdvdWdhbmJ1cmVpXCA7CivnpL7kvJrkv53pmbogPiBzaGFrYWlob2tlblwgOwor6LyD5YSq5L2N6KuWID4ga2FrdXl1dWlyb25cIDsKK+S4luirluiqv+afuyA+IHlvcm9uY2hvdXNhXCA7CivlhqzmnJ/kvJHmmocgPiB0b3VraWt5dXVrYVwgOwor5LiK6YOo5qeL6YCgID4gam91YnVrb3V6b3VcIDsKK+ixoeW9ouaWh+WtlyA+IHNob3VrZWltb2ppXCA7CivovrLmnKzkuLvnvqkgPiBub3Vob25zaHVnaVwgOwor5LiA5YiH6KGG55SfID4gaXNzYWlzaHVqb3VcIDsKK+aXp+aFi+S+neeEtiA+IGt5dXV0YWlpemVuXCA7CivmlbTnkIbnlarlj7cgPiBzZWlyaWJhbmdvdVwgOwor5b2T5bqn6LOH55SjID4gdG91emFzaGlzYW5cIDsKK+aui+WTgeaVtOeQhiA+IHphbnBpbnNlaXJpXCA7CivlroflrpnpgJ/luqYgPiB1Y2h1dXNva3Vkb1wgOwor5Yqg5rC05YiG6KejID4ga2FzdWlidW5rYWlcIDsKK+Wuo+S8neS+oeWApCA+IHNlbmRlbmthY2hpXCA7CivlubTlraPlpYnlhawgPiBuZW5raWJvdWtvdVwgOwor6LKo5bmj57WM5riIID4ga2FoZWlrZWl6YWlcIDsKK+eEoeacn+aHsuW9uSA+IG11a2ljaG91ZWtpXCA7CivluILloLTljLrliIYgPiBzaGlqb3VrdWJ1blwgOwor5Yid5pyf6Kit5a6aID4gc2hva2lzZXR0ZWlcIDsKK+S6uumAoOe5iue2rSA+IGppbnpvdXNlbicnaVwgOwor5pmu6YCa6aCQ6YeRID4gZnV0c3V1eW9raW5cIDsKK+S9juWIqeizh+mHkSA+IHRlaXJpc2hpa2luXCA7CivnnJ/nj6DntLDlt6UgPiBzaGluanV6YWlrdVwgOwor5Li755+l5Li7576pID4gc2h1Y2hpc2h1Z2lcIDsKK+S6jOmgheS/guaVsCA+IG5pa291a2Vpc3V1XCA7CivntKDmgKfmp4vpgKAgPiBzb3NlaWtvdXpvdVwgOwor5oSb5Zu95Li7576pID4gYWlrb2t1c2h1Z2lcIDsKK+aIpumXmOaUr+aPtCA+IHNlbnRvdXNoaWVuXCA7CivkurrlkI3ovp7mm7ggPiBqaW5tZWlqaXNob1wgOwor5YmN6Lyq6aeG5YuVID4gemVucmlua3Vkb3VcIDsKK+S+oeagvOaTjeS9nCA+IGtha2FrdXNvdXNhXCA7CivlvaLogIzkuIvlraYgPiBrZWlqaWthZ2FrdVwgOwor5LiA5pyf5LiA5LyaID4gaWNoaWdvaWNoaWVcIDsKK+Wcn+acqOW3peS6iyA+IGRvYm9rdWtvdWppXCA7CivlpbPlrZDpq5jnlJ8gPiBqb3NoaWtvdXNlaVwgOwor546L6YGT5qW95ZyfID4gb3Vkb3VyYWt1ZG9cIDsKK+aCquaIpuiLpumXmCA+IGFrdXNlbmt1dG91XCA7CivnpZ7ntYzlpJbnp5EgPiBzaGlua2VpZ2VrYVwgOwor5LiN55yg5LiN5LyRID4gZnVtaW5mdWt5dXVcIDsKK+WQjeiqieaVmeaOiCA+IG1laXlva3lvdWp1XCA7Civlm7Pmm7jppKjlk6EgPiB0b3Nob2thbicnaW5cIDsKK+mrmOatjOaUvuWQnyA+IGtvdWthaG91Z2luXCA7Civmp4vmiJDljZjkvY0gPiBrb3VzZWl0YW4nJ2lcIDsKK+WkluS6uuiomOiAhSA+IGdhaWppbmtpc2hhXCA7CivkvovlpJblh6bnkIYgPiByZWlnYWlzaG9yaVwgOwor5aSr5amm6Iy256KXID4gbWVvdG9kamF3YW5cIDsKK+WFqOmdouism+WSjCA+IHplbm1lbmtvdXdhXCA7Civnvqnli5nmlZnogrIgPiBnaW11a3lvdWlrdVwgOwor5oKy6Kaz6KuW6ICFID4gaGlrYW5yb25zaGFcIDsKK+WAi+S6uuaDheWgsSA+IGtvamluam91aG91XCA7CivnlLrmrrXnlZ3mrakgPiBjaG91dGFuc2VidVwgOwor5Luj55CG5aSn5L2/ID4gZGFpcml0YWlzaGlcIDsKK+ani+mAoOS4u+e+qSA+IGtvdXpvdXNodWdpXCA7CivlhoXnt5rpm7voqbEgPiBuYWlzZW5kZW53YVwgOwor5YWs56S65L6h5qC8ID4ga291amlrYWtha3VcIDsKK+a2suS9k+mFuOe0oCA+IGVraXRhaXNhbnNvXCA7CivmsoPluqbkuIHlub4gPiB5b3Vkb2NoaW5raVwgOwor5YiR5LqL6Ki06KifID4ga2Vpamlzb3Nob3VcIDsKK+eovOWDjeS6uuWPoyA+IGthZG91amlua291XCA7Civou73mqZ/plqLpioMgPiBrZWlraWthbmp1dVwgOwor5qmf5a+G5L+d6K23ID4ga2ltaXRzdWhvZ29cIDsKK+S6iOWCmeS6pOa4iSA+IHlvYmlrb3VzaG91XCA7CivpgI/oppblm7Pms5UgPiB0b3VzaGl6dWhvdVwgOwor57e057+S6Kmm5ZCIID4gcmVuc2h1dWppYWlcIDsKK+WPr+imluWFiee3miA+IGthc2hpa291c2VuXCA7CivnrYboqJjoqabpqJMgPiBoaWtraXNoaWtlblwgOwor5YWs5a6a55u45aC0ID4ga291dGVpc291YmFcIDsKK+S+oeagvOimj+WItiA+IGtha2FrdWtpc2VpXCA7CivliqDph43lubPlnYcgPiBrYWp1dWhlaWtpblwgOwor5q2m6KOF6K2m5a6YID4gYnVzb3VrZWlrYW5cIDsKK+awtOWtkOS+m+mkiiA+IG1penVnb2t1eW91XCA7CivljYPlpInkuIfljJYgPiBzZW5wZW5iYW5rYVwgOwor5p+75a6a5L6h5qC8ID4gc2F0ZWlrYWtha3VcIDsKK+S4i+WxpOekvuS8miA+IGthc291c2hha2FpXCA7Civoh6rnhLbkuLvnvqkgPiBzaGl6ZW5zaHVnaVwgOwor6IiI5ZGz5pys5L2NID4ga3lvdW1paG9uJydpXCA7CivnhKHkvZPos4fnlKMgPiBtdXRhaXNoaXNhblwgOwor57WM5riI5bCB6Y6WID4ga2VpemFpZnV1c2FcIDsKK+ertuS6ieebuOaJiyA+IGt5b3Vzb3VhaXRlXCA7CivkupTovKrlpKfkvJogPiBnb3JpbnRhaWthaVwgOwor5pel5pys5LiJ5pmvID4gbmlob25zYW5rZWlcIDsKK+ayueaAp+Whl+aWmSA+IHl1c2VpdG9yeW91XCA7CivmlLnoqILlopfoo5wgPiBrYWl0ZWl6b3Vob1wgOwor5LiA6Iis5qaC5b+1ID4gaXBwYW5nYWluZW5cIDsKK+Wwj+S4gOaZgumWkyA+IGtvaWNoaWppa2FuXCA7CivkuInohJrmpIXlrZAgPiBzYW5reWFrdWlzdVwgOwor55qu6Iaa5oSf6KaaID4gaGlmdWthbmtha3VcIDsKK+aoqeWIqeihjOS9vyA+IGtlbnJpa291c2hpXCA7CivmvKLlrZflpInmj5sgPiBrYW5qaWhlbmthblwgOwor54Sh5L2T6LKh55SjID4gbXV0YWl6YWlzYW5cIDsKK+WFqOS9k+S8muitsCA+IHplbnRhaWthaWdpXCA7Civkuozph43mirXlvZMgPiBuaWp1dXRlaXRvdVwgOwor5qmf5qKw5paH5piOID4ga2lrYWlidW5tZWlcIDsKK+Wkqea0peS5meWlsyA+IGFtYXRzdW90b21lXCA7CivliKnlrrPplqLkv4IgPiByaWdhaWthbmtlaVwgOwor5aSa6KeS57WM5Za2ID4gdGFrYWt1a2VpZWlcIDsKK+Wkq+WppuWIpeWnkyA+IGZ1dWZ1YmVzc2VpXCA7Civml6XmnKzoqp7oqLMgPiBuaWhvbmdveWFrdVwgOwor5Lqk5o+b5qmf6IO9ID4ga291a2Fua2lub3VcIDsKK+eUo+WNteWgtOaJgCA+IHNhbnJhbmJhc2hvXCA7CivotbDooYzot53pm6IgPiBzb3Vrb3VreW9yaVwgOwor54Sh5bC957WE5ZCIID4gbXVqaW5rdW1pYWlcIDsKK+WGjeeUn+WIqeeUqCA+IHNhaXNlaXJpeW91XCA7CivoiKrnqbrmr43oiaYgPiBrb3VrdXVib2thblwgOwor5Lq65ZCN6L6e5YW4ID4gamlubWVpaml0ZW5cIDsKK+aYqOmdnuS7iuaYryA+IHNha3VoaWtvbnplXCA7CivmlrDlj6TlhbjmtL4gPiBzaGlua290ZW5oYVwgOwor57WM5Za26LOH5rqQID4ga2VpZWlzaGlnZW5cIDsKK+iiq+Wus+WmhOaDsyA+IGhpZ2FpbW91c291XCA7CivntLDoj4zlhbXlmaggPiBzYWlraW5oZWlraVwgOwor6aO95ZKM5rq25rayID4gaG91d2F5b3Vla2lcIDsKK+S4gOiIrOS8muioiCA+IGlwcGFua2Fpa2VpXCA7Civmupblgpnos4fph5EgPiBqdW5iaXNoaWtpblwgOwor5pS/5YWa5pS/5rK7ID4gc2VpdG91c2VpamlcIDsKK+avjeWtkOW5tOmHkSA+IGJvc2hpbmVua2luXCA7Civnvo7lrrnmlbTlvaIgPiBiaXlvdXNlaWtlaVwgOwor5Yid5pyf5oqV6LOHID4gc2hva2l0b3VzaGlcIDsKK+acgOefrei3nemboiA+IHNhaXRhbmt5b3JpXCA7CivlkajovrrmqZ/lmaggPiBzaHV1aGVua2lraVwgOwor5Yi26ZmQ5pmC6ZaTID4gc2VpZ2VuamlrYW5cIDsKK+WLpOWKtOaEj+assiA+IGtpbnJvdWl5b2t1XCA7CivlgInluqvkvJrnpL4gPiBzb3Vrb2dhaXNoYVwgOwor5pyq6ZaL56S+5LyaID4gbWlrYWlzaGFrYWlcIDsKK+mBjuWkp+ipleS+oSA+IGthZGFpaHlvdWthXCA7CivnoLTlu4nmgaXnvaogPiBoYXJlbmNoaXphaVwgOwor5pmC6ZmQ6KOF572uID4gamlnZW5zb3VjaGlcIDsKK+aZr+awl+WkieWLlSA+IGtlaWtpaGVuZG91XCA7CivkuIDmrKHoqJjmhrYgPiBpY2hpamlraW9rdVwgOwor6KGd5YuV6KGM54K6ID4gc2hvdWRvdWtvdWlcIDsKK+ioseWuueevhOWbsiA+IGt5b3lvdWhhbicnaVwgOwor55Sf55Sj566h55CGID4gc2Vpc2Fua2FucmlcIDsKK+WMu+eZguS8nemBkyA+IGlyeW91ZGVuZG91XCA7CivnqoHosqvlt6XkuosgPiB0b2trYW5rb3VqaVwgOwor6YG46ICD5Z+65rqWID4gc2Vua291a2lqdW5cIDsKK+mDveW4gumKgOihjCA+IHRvc2hpZ2lua291XCA7CivlrqPkvJ3mmKDnlLsgPiBzZW5kZW4nJ2VpZ2FcIDsKK+aFiOWWhOS6i+alrSA+IGppemVuamlneW91XCA7CivliqDpgJ/luqboqIggPiBrYXNva3Vkb2tlaVwgOwor5YKy5oWi5LiN6YGcID4gZ291bWFuZnVzb25cIDsKK+WIkeWLmeS9nOalrSA+IGtlaW11c2FneW91XCA7CivlnLDnkIPopo/mqKEgPiBjaGlreXV1a2lib1wgOwor6YCU5Lit6KiI5pmCID4gdG9jaHV1a2VpamlcIDsKK+mrmOWwhOeJueenkSA+IGtvdXNoYXRva2thXCA7CivkuInpnaLlha3oh4IgPiBzYW5tZW5yb3BwaVwgOwor5b6u5YiG5pat6Z2iID4gYmlidW5kYW5tZW5cIDsKK+WIhuWoqeS9nOeUqCA+IGJ1bmJlbnNheW91XCA7Civkv53lgaXkvZPogrIgPiBob2tlbnRhaWlrdVwgOwor5pq06LWw6YGL6LuiID4gYm91c291dW50ZW5cIDsKK+irruWVj+apn+mWoiA+IHNoaW1vbmtpa2FuXCA7CivnlLDoiI7oip3lsYUgPiBpbmFrYXNoaWJhaVwgOwor55mM6YG65Lyd5a2QID4gZ2FuJydpZGVuc2hpXCA7Civnmb7prLzlpJzooYwgPiBoeWFra2l5YWtvdVwgOwor5rC45bCP5L2c5qipID4gZWlrb3Nha3VrZW5cIDsKK+eEoeatu+a6gOWhgSA+IG11c2hpbWFucnVpXCA7CivkuoznlarmirXlvZMgPiBuaWJhbnRlaXRvdVwgOwor57eP5YuZ6YOo6ZW3ID4gc291bXVidWNob3VcIDsKK+iHqueUseiyv+aYkyA+IGppeXV1Ym91ZWtpXCA7CivlubPlkozmnaHpoIUgPiBoZWl3YWpvdWtvdVwgOwor5rCX5YiG6Lui5o+bID4ga2lidW50ZW5rYW5cIDsKK+WEkuaVmeS4u+e+qSA+IGp1a3lvdXNodWdpXCA7CivlpbPmrYzoiJ7kvI4gPiBvbicnbmFrYWJ1a2lcIDsKK+mjm+ihjOapn+mbsiA+IGhpa291a2lndW1vXCA7Civot6/pnaLpm7vou4ogPiByb21lbmRlbnNoYVwgOwor5Y2Y54us6KGM54K6ID4gdGFuZG9rdWtvdWlcIDsKK+iqoOW/g+iqoOaEjyA+IHNlaXNoaW5zZWlpXCA7Civml6XmnKzmlpnnkIYgPiBuaWhvbnJ5b3VyaVwgOwor5pWF5LqL5p2l5q20ID4ga29qaXJhaXJla2lcIDsKK+WGhei8quWWp+WYqSA+IHVjaGl3YWdlbmthXCA7CivkupznoZ3phbjloakgPiBhc2hvdXNhbicnZW5cIDsKK+S4gOinkueNo+W6pyA+IGlra2FrdWp1dXphXCA7Civlj43kvZPliLbmtL4gPiBoYW50YWlzZWloYVwgOwor5Yy65YqD5pW055CGID4ga3VrYWt1c2VpcmlcIDsKK+aUvuS7u+S4u+e+qSA+IGhvdW5pbnNodWdpXCA7Civpgbrml4/ntabku5ggPiBpem9rdWt5dXVmdVwgOwor5aSJ5L2N5Yi25b6hID4gaGVuJydpc2VpZ3lvXCA7Civmlofpg6jlpKfoh6MgPiBtb25idWRhaWppblwgOwor5aWz5qip6KuW6ICFID4gam9rZW5yb25zaGFcIDsKK+S4i+Wjq+WumOWFtSA+IGthc2hpa2FuaGVpXCA7CivkuK3npoXlr7rmuZYgPiBjaHV1emVuamlrb1wgOwor6KO95ZOB5Y6f5L6hID4gc2VpaGluZ2Vua2FcIDsKK+S6uuawkeS4u+e+qSA+IGppbm1pbnNodWdpXCA7Civli4nlvLfpg6jlsYsgPiBiZW5reW91YmV5YVwgOwor56We5a6u5aSW6IuRID4gamluZ3V1Z2FpZW5cIDsKK+WFqOiIrOaUr+aPtCA+IHplbnBhbnNoaWVuXCA7CivlsJHlo67mnInngrogPiBzaG91c291eXV1aVwgOwor57WM5Y+j5oqV5LiOID4ga2Vpa291dG91eW9cIDsKK+aPm+awl+ijhee9riA+IGthbmtpc291Y2hpXCA7CivlhbHlkozliLbluqYgPiBreW91d2FzZWlkb1wgOwor5LqM6Kqy5YuJ5by3ID4gbmlrYWJlbmt5b3VcIDsKK+S6iOmYsuaOpeeoriA+IHlvYm91c2Vzc2h1XCA7CivnlbDlm73mg4Xnt5IgPiBpa29rdWpvdWNob1wgOwor6YGL6Lui5YGc5q2iID4gdW50ZW50ZWlzaGlcIDsKK+aCquWPo+mbkeiogCA+IGFra291em91Z29uXCA7Civou43ms5XkvJrorbAgPiBndW5wb3VrYWlnaVwgOwor5aSp5Zyw54Sh55SoID4gdGVuY2hpbXV5b3VcIDsKK+eVsOW4uOaAp+assiA+IGlqb3VzZWl5b2t1XCA7Civkurrlt6Xlj5fog44gPiBqaW5rb3VqdXRhaVwgOwor5pel5pys5paH5rOVID4gbmlob25idW5wb3VcIDsKK+S4iuS4i+awtOmBkyA+IGpvdWdlc3VpZG91XCA7CivpioDooYzlj6PluqcgPiBnaW5rb3Vrb3V6YVwgOwor5aSP5pyf5aSn5a2mID4ga2FraWRhaWdha3VcIDsKK+mAo+mCpuitsOS8miA+IHJlbnBvdWdpa2FpXCA7CivmnKvmnJ/nl4fnirYgPiBtYWtraWpvdXRhaVwgOwor5LqU5q615YuV6KmeID4gZ29kYW5kb3VzaGlcIDsKK+eri+azleapn+mWoiA+IHJpcHBvdWtpa2FuXCA7Civlm6Dlvqrlp5Hmga8gPiBpbmp1bmtvc29rdVwgOwor5aSn5bGx5qSS6a2aID4gb29zYW5zaG91dW9cIDsKK+iZjuimlueciOeciCA+IGtvc2hpdGFudGFuXCA7Civog4zpnaLpo5vooYwgPiBoYWltZW5oaWtvdVwgOwor5by+5Li46YGT6LevID4gZGFuZ2FuZG91cm9cIDsKK+WEquWFiOWkluiyqCA+IHl1dXNlbmdhaWthXCA7CivlvZPnlKjmvKLlrZcgPiB0b3V5b3VrYW5qaVwgOwor5rCR5pys5Li7576pID4gbWlucG9uc2h1Z2lcIDsKK+S6uuW3peWPl+e0myA+IGppbmtvdWp1ZnVuXCA7CivkuLvopoHniankvqEgPiBzaHV5b3VidWtrYVwgOwor5Lq65bel5Y+X57K+ID4gamlua291anVzZWlcIDsKK+eZu+Wxsembu+i7iiA+IHRvemFuZGVuc2hhXCA7CivmmqvlrprmlL/lupwgPiB6YW50ZWlzZWlmdVwgOwor5LmX5ZCI6aas6LuKID4gbm9yaWFpYmFzaGFcIDsKK+acn+aIkOWQjOebnyA+IGtpc2VpZG91bWVpXCA7CivmlaPlhYnmmJ/pm7IgPiBzYW5rb3VzZWl1blwgOwor6aOi6aST55mC5rOVID4ga2lnYXJ5b3Vob3VcIDsKK+ezuOWBj+aZr+awlyA+IGl0b2hlbmtlaWtpXCA7CivniankvqHlpInli5UgPiBidWtrYWhlbmRvdVwgOwor6L+R6YOK6YO95biCID4ga2lua291dG9zaGlcIDsKK+WFrOmWi+acn+mWkyA+IGtvdWthaWtpa2FuXCA7CivliY3lvozkuI3oppogPiB6ZW5nb2Z1a2FrdVwgOwor5rqW5YKZ5L2T5pONID4ganVuYml0YWlzb3VcIDsKK+avjeezu+WutuaXjyA+IGJva2Vpa2F6b2t1XCA7Civmra/np5HljLvooZMgPiBzaGlrYWlqdXRzdVwgOwor6YeR566h5qW95ZmoID4ga2lua2FuZ2Fra2lcIDsKK+WIh+eji+eQouejqCA+IHNlc3NhdGFrdW1hXCA7CivkuIDmmYLop6Ppm4cgPiBpY2hpamlrYWlrb1wgOwor6YGL6Lui6LOH6YeRID4gdW50ZW5zaGlraW5cIDsKK+WhkeaAp+mZkOeVjCA+IHNvc2VpZ2Vua2FpXCA7Civph5HmqKnmlL/msrsgPiBraW5rZW5zZWlqaVwgOwor6Ziy5b6h6YOo6ZqKID4gYm91Z3lvYnV0YWlcIDsKK+mdmeatouihm+aYnyA+IHNlaXNoaWVpc2VpXCA7Civlho3luqbljZTorbAgPiBzYWlkb2t5b3VnaVwgOwor5LiA5YiH5ZCI6LKhID4gaXNzYWlnYXNzYWlcIDsKK+mBuueUo+ebuOe2miA+IGlzYW5zb3V6b2t1XCA7CivloZHmgKflpInlvaIgPiBzb3NlaWhlbmtlaVwgOwor5LiA5aSp5Zub5rW3ID4gaXR0ZW5zaGlrYWlcIDsKK+mfs+mfv+WKueaenCA+IG9ua3lvdWtvdWthXCA7CivljZjmnKzkvY3mgKcgPiB0YW5ob24nJ2lzZWlcIDsKK+mbsuaVo+mcp+a2iCA+IHVuc2FubXVzaG91XCA7CivlhajkvZPkuLvnvqkgPiB6ZW50YWlzaHVnaVwgOwor5YGc5q2i5pmC6ZaTID4gdGVpc2hpamlrYW5cIDsKK+S9juepuumjm+ihjCA+IHRlaWt1dWhpa291XCA7CivmlK/luqbpg6jlsYsgPiBzaGl0YWt1YmV5YVwgOwor5Yqg5bel6LK/5piTID4ga2Frb3Vib3Vla2lcIDsKK+ihm+aYn+aUvumAgSA+IGVpc2VpaG91c291XCA7Civpm7vmsJfliIbop6MgPiBkZW5raWJ1bmthaVwgOwor6aKo6Ie05Zyw5Yy6ID4gZnV1Y2hpY2hpa3VcIDsKK+WvhumWieWuueWZqCA+IG1pcHBlaXlvdWtpXCA7CivpgKPluK/lgrXli5kgPiByZW50YWlzYWltdVwgOwor6YeR5Ymb6Jap5aCVID4ga29uZ291c2F0dGFcIDsKK+S4gOS6uuWkqeS4iyA+IGhpdG9yaWRlbmthXCA7CivmmYLplpPlj43ou6IgPiBqaWthbmhhbnRlblwgOwor6KW/5qyn5paH5piOID4gc2Vpb3VidW5tZWlcIDsKK+S4i+mDqOe1hOe5lCA+IGthYnVzb3NoaWtpXCA7Civnm7jkuZflirnmnpwgPiBzb3Vqb3Vrb3VrYVwgOwor5rC05bmz6Led6ZuiID4gc3VpaGVpa3lvcmlcIDsKK+i7jeWCmeaSpOW7gyA+IGd1bmJpdGVwcGFpXCA7Civlm7rmnInlkI3oqZ4gPiBrb3l1dW1laXNoaVwgOwor5Lq66ZaT55aO5aSWID4gbmluZ2Vuc29nYWlcIDsKK+acieapn+WMluWtpiA+IHl1dWtpa2FnYWt1XCA7Civku7LplpPlgKTmrrUgPiBuYWthbWFuZWRhblwgOwor5rip5pWF55+l5pawID4gb25rb2NoaXNoaW5cIDsKK+aal+imluijhee9riA+IGFuc2hpc291Y2hpXCA7Civlm73lrrboqabpqJMgPiBrb2trYXNoaWtlblwgOwor6Z2S5p6c5biC5aC0ID4gc2Vpa2FpY2hpYmFcIDsKK+awkeS6i+ijgeWIpCA+IG1pbmppc2FpYmFuXCA7Civljp/lrZDlhbXlmaggPiBnZW5zaGloZWlraVwgOwor6IKv5a6a5b+c562UID4ga291dGVpb3V0b3VcIDsKK+WkieabtOS4jeiDvSA+IGhlbmtvdWZ1bm91XCA7CivntIDli6LmnKznt5ogPiBraXNlaWhvbnNlblwgOwor6bq76KOP6I2J5bGlID4gYXNhdXJhem91cmlcIDsKK+WPsOa5vuWdiuS4uyA+IHRhaXdhbmJvdXp1XCA7CivlraPliIrpm5HoqowgPiBraWthbnphc3NoaVwgOwor5Y2X6Zi/5oim5LqJID4gbmFuJydhc2Vuc291XCA7CivnhKHnt5rlkajms6IgPiBtdXNlbnNodXVoYVwgOwor6ZW35pyf6YeR5YipID4gY2hvdWtpa2lucmlcIDsKK+mjm+ihjOapn+etiSA+IGhpa291a2luYWRvXCA7CivlgoDlhKHmlL/lupwgPiBrYWlyYWlzZWlmdVwgOwor5biC5aSW6Zu76KmxID4gc2hpZ2FpZGVud2FcIDsKK+mAo+mCpuaUv+W6nCA+IHJlbnBvdXNlaWZ1XCA7CivmlL7mrYzpq5jlkJ8gPiBob3VrYWtvdWdpblwgOwor5b6u6YeP5YWD57SgID4gYmlyeW91Z2Vuc29cIDsKK+iLseWtl+aWsOiBniA+IGVpamlzaGluYnVuXCA7CivmuoDouqvlibXnl40gPiBtYW5zaGluc291aVwgOwor56ys5LqM57WE5ZCIID4gZGFpbmlrdW1pYWlcIDsKK+WppuS6uuitpuWumCA+IGZ1amlua2Vpa2FuXCA7CivnrKzkuInkuJbnlYwgPiBkYWlzYW5zZWthaVwgOwor5q+Y5rKZ6ZaA5aSpID4gYmlzaGFtb250ZW5cIDsKK+ekvuS8muS4u+e+qSA+IHNoYWthaXNodWdpXCA7CivlrabkvY3oq5bmlocgPiBnYWt1aXJvbmJ1blwgOwor56S+5Lqk6L6e5LukID4gc2hha291amlyZWlcIDsKK+W+tOWFteW/jOmBvyA+IGNob3VoZWlraWhpXCA7CivmqZ/kvJrlnYfnrYkgPiBraWthaWtpbnRvdVwgOwor5pqr5a6a5o6q572uID4gemFudGVpc29jaGlcIDsKK+aWueWQkemfs+eXtCA+IGhvdWtvdW9uY2hpXCA7CivkuJbnlYzpioDooYwgPiBzZWthaWdpbmtvdVwgOwor5YWo5qip5aeU5Lu7ID4gemVua2VuJydpbmluXCA7Civoh6rnhLboqIDoqp4gPiBzaGl6ZW5nZW5nb1wgOwor6KqH5aSn5aaE5oOzID4ga29kYWltb3Vzb3VcIDsKK+WMlueyp+mBk+WFtyA+IGtlc2hvdWRvdWd1XCA7CivkuI3lpInos4fmnKwgPiBmdWhlbnNoaWhvblwgOwor6LOe5ZGz5pyf6ZmQID4gc2hvdW1pa2lnZW5cIDsKK+W/g+iHk+WkluenkSA+IHNoaW56b3VnZWthXCA7Civlub7kvZXntJrmlbAgPiBraWtha3l1dXN1dVwgOwor5LiJ6YOo5ZCI5aWPID4gc2FuYnVnYXNzb3VcIDsKK+iSmeWPpOS6uueoriA+IG1vdWtvamluc2h1XCA7Civpm7vmsJfljJblraYgPiBkZW5raWthZ2FrdVwgOwor6LGG6IWQ5LiA5LiBID4gdG91ZnVpdGNob3VcIDsKK+a2iOiyu+mDveW4giA+IHNob3VoaXRvc2hpXCA7CivkuIDkuIDjgIfnlaogPiBoeWFrdXRvb2JhblwgOwor5a625peP5Yi25bqmID4ga2F6b2t1c2VpZG9cIDsKK+eUn+WtmOacn+mWkyA+IHNlaXpvbmtpa2FuXCA7Civph47oia/ku5XkuosgPiBub3Jhc2hpZ290b1wgOwor5pel5LyK6L6e5YW4ID4gbmljaGlpaml0ZW5cIDsKK+S4jeato+S5l+i7iiA+IGZ1c2Vpam91c2hhXCA7Civoqr/mn7vntZDmnpwgPiBjaG91c2FrZWtrYVwgOwor5LiN5b2T5buJ5aOyID4gZnV0b3VyZW5iYWlcIDsKK+a7heWkmuefoumxiCA+IG1ldHRheWF0YXJhXCA7CivliY3kurrmnKrouI8gPiB6ZW5qaW5taXRvdVwgOwor5LiN5b2T5Yip5b6XID4gZnV0b3VyaXRva3VcIDsKK+WbnuaVmeWvuumZoiA+IGthaWt5b3VqaWluXCA7Civou43kuovoqJPnt7QgPiBndW5qaWt1bnJlblwgOwor57eP5ZCI5Y+j5bqnID4gc291Z291a291emFcIDsKK+mDoeecjOWItuW6piA+IGd1bmtlbnNlaWRvXCA7Civkvb/nlKjlj6/og70gPiBzaGl5b3VrYW5vdVwgOwor5YaF6YOo55WZ5L+dID4gbmFpYnVyeXV1aG9cIDsKK+WGjeiyqeWItuW6piA+IHNhaWhhbnNlaWRvXCA7CivooqvpgbjmjJnmqKkgPiBoaXNlbmt5b2tlblwgOwor54mp5L6h57Wx5Yi2ID4gYnVra2F0b3VzZWlcIDsKK+WboOaVsOWIhuinoyA+IGluc3V1YnVua2FpXCA7CivnlJ/nlJ/mtYHou6IgPiBzZWlzZWlydXRlblwgOwor54Sh55+l6JKZ5pinID4gbXVjaGltb3VtYWlcIDsKK+WgleiQveWdiuS4uyA+IGRhcmFrdWJvdXp1XCA7CivoiJ7lj7Dluqbog7ggPiBidXRhaWRva3lvdVwgOwor5rOw6KW/5ZCN55S7ID4gdGFpc2VpbWVpZ2FcIDsKK+azleayu+WbveWutiA+IGhvdWNoaWtva2thXCA7CivlhKrlhYjpoIbkvY0gPiB5dXVzZW5qdW4nJ2lcIDsKK+WNmOS9jee1hOWQiCA+IHRhbicnaWt1bWlhaVwgOwor566h55CG5oOF5aCxID4ga2Fucmlqb3Vob3VcIDsKK+WujOWFqOS4u+e+qSA+IGthbnplbnNodWdpXCA7CivkuIPkuI3mgJ3orbAgPiBuYW5hZnVzaGlnaVwgOwor5aCx5b6p6KGM54K6ID4gaG91ZnVrdWtvdWlcIDsKK+Wuo+S8neaWh+WPpSA+IHNlbmRlbm1vbmt1XCA7CivkuozmiJDmlofns7sgPiBuaXNlaWJ1bmtlaVwgOwor5L2T5YaF5pmC6KiIID4gdGFpbmFpZG9rZWlcIDsKK+WMuueUu+aVtOeQhiA+IGt1a2FrdXNlaXJpXCA7CivntYLlpJzpgYvou6IgPiBzaHV1eWF1bnRlblwgOwor5Yqg6YCf6YGL5YuVID4ga2Fzb2t1dW5kb3VcIDsKK+WvvuaKl+mDqOmaiiA+IHRhaWtvdWJ1dGFpXCA7CivntZDlqZrosrvnlKggPiBrZWtrb25oaXlvdVwgOwor6LuN5LqL5pS/5qipID4gZ3VuamlzZWlrZW5cIDsKK+acieapn+i+suazlSA+IHl1dWtpbm91aG91XCA7CivpmLLooZvpg6jplbcgPiBib3VlaWJ1Y2hvdVwgOwor6YGL5Za26LOH6YeRID4gdW4nJ2Vpc2hpa2luXCA7CivmnIjopovolY7puqYgPiB0c3VraW1pc29iYVwgOwor5Lq655Sf6Iiq6LevID4gamluc2Vpa291cm9cIDsKK+eUn+WRveS/nemZuiA+IHNlaW1laWhva2VuXCA7Civlv5zmgKXmiYvlvZMgPiBvdWt5dXV0ZWF0ZVwgOwor5pyJ5b2i54Sh5b2iID4geXV1a2VpbXVrZWlcIDsKK+WPl+S/oeWbnui3ryA+IGp1c2hpbmthaXJvXCA7Civlj4LogIPlm7Pmm7ggPiBzYW5rb3V0b3Nob1wgOwor6Iux6ZuE5bSH5oudID4gZWl5dXVzdXVoYWlcIDsKK+WPl+mok+eVquWPtyA+IGp1a2VuYmFuZ291XCA7Civph43ovrLkuLvnvqkgPiBqdXVub3VzaHVnaVwgOwor6K235Zu956We56S+ID4gZ29rb2t1amluamFcIDsKK+aYjuayu+elnuWuriA+IG1laWppamluZ3V1XCA7CivlsJHmlbDmhI/oposgPiBzaG91c3V1aWtlblwgOwor5q+U57+86YCj55CGID4gaGl5b2t1cmVucmlcIDsKK+acieacn+W5tOmHkSA+IHl1dWtpbmVua2luXCA7CivkuozlhYPmlL7pgIEgPiBuaWdlbmhvdXNvdVwgOwor6Ieq5L+h6YGO5YmwID4gamlzaGlua2Fqb3VcIDsKK+Wliee0jeebuOaSsiA+IGhvdW5vdXp1bW91XCA7CivkurrouqvlvqHkvpsgPiBoaXRvbWlnb2t1dVwgOwor5L+d6K235qSc5p2fID4gaG9nb2tlbnNva3VcIDsKK+WIhuecjOWcsOWbsyA+IGJ1bmtlbmNoaXp1XCA7CivpmL/oq5vov73lvpMgPiBheXV0c3Vpc2hvdVwgOwor6Zu75YWJ55+z54GrID4gZGVua291c2Vra2FcIDsKK+azoueAvuS4h+S4iCA+IGhhcmFuYmFuam91XCA7Civnm7jkupLplqLkv4IgPiBzb3Vnb2thbmtlaVwgOwor5YaF6YOo5LuV5qeYID4gbmFpYnVzaGl5b3VcIDsKK+earuS4i+azqOWwhCA+IGhpa2FjaHV1c2hhXCA7Civkub7nh6Xph47oj5wgPiBrYW5zb3V5YXNhaVwgOwor55+t5qmf6Zai6YqDID4gdGFua2lrYW5qdXVcIDsKK+ePvuWcsOaZgumWkyA+IGdlbmNoaWppa2FuXCA7CivkuIDnrYnou43mm7kgPiBpdHRvdWd1bnNvdVwgOwor5a625bqt55So5ZOBID4ga2F0ZWl5b3VoaW5cIDsKK+mJseWxseaKgOW4qyA+IGtvdXphbmdpc2hpXCA7CivkuIDlrZDnm7jkvJ0gPiBpc3NoaXNvdWRlblwgOwor5pmC6ZmQ56uL5rOVID4gamlnZW5yaXBwb3VcIDsKK+aEm+WIpembouiLpiA+IGFpYmV0c3VyaWt1XCA7Civlm7rlrpros4fnlKMgPiBrb3RlaXNoaXNhblwgOwor5ZKM54us6L6e5YW4ID4gd2Fkb2t1aml0ZW5cIDsKK+eZu+agoeaLkuWQpiA+IHRvdWtvdWt5b2hpXCA7CivmvJTlpY/ml4XooYwgPiBlbnNvdXJ5b2tvdVwgOwor5pu455S76aqo6JGjID4gc2hvZ2Frb3R0b3VcIDsKK+mBi+WLlemBuOaJiyA+IHVuZG91c2Vuc2h1XCA7CivlrablnJLpg73luIIgPiBnYWt1ZW50b3NoaVwgOwor5p2x5rSL5Li7576pID4gdG91eW91c2h1Z2lcIDsKK+Wkp+miqOWRguaVtyA+IG9vYnVyb3NoaWtpXCA7CivmnInok4vosqjou4ogPiB5dXVnYWlrYXNoYVwgOwor5pS/5rK76LOH6YeRID4gc2VpamlzaGlraW5cIDsKK+iogOirluapn+mWoiA+IGdlbnJvbmtpa2FuXCA7CivppIrorbflrabmoKEgPiB5b3Vnb2dha2tvdVwgOwor6LWw6KGM5pmC6ZaTID4gc291a291amlrYW5cIDsKK+ipleS+oeWfuua6liA+IGh5b3VrYWtpanVuXCA7CivmlrDogZ7oqJjkuosgPiBzaGluYnVua2lqaVwgOwor5aSr5ZSx5amm6ZqPID4gZnVzaG91ZnV6dWlcIDsKK+mbu+WtkOi+nuabuCA+IGRlbnNoaWppc2hvXCA7CivlkIzmmYLpjLLpn7MgPiBkb3VqaXJva3VvblwgOwor566h55CG56S+5LyaID4ga2FucmlzaGFrYWlcIDsKK+S4gOimluWQjOS7gSA+IGlzc2hpZG91amluXCA7CivkuIDoppblkIzkurogPiBpc3NoaWRvdWppblwgOwor5qeL6YCg5aSJ5YyWID4ga291em91aGVua2FcIDsKK+Wls+a1geS9nOWutiA+IGpvcnl1dXNha2thXCA7CivvvJHvvJHvvJDnlaogPiBoeWFrdXRvb2JhblwgOwor5Y+45rOV5Yi25bqmID4gc2hpaG91c2VpZG9cIDsKK+WLpOWLmeS6pOS7oyA+IGtpbm11a291dGFpXCA7Civnn63nt6jmmKDnlLsgPiB0YW5wZW4nJ2VpZ2FcIDsKK+S8muWToeimj+e0hCA+IGthaWlua2l5YWt1XCA7CivkuozngrnlhYjlj5YgPiBuaXRlbnNlbnNodVwgOwor5Y+N5oim5Li7576pID4gaGFuc2Vuc2h1Z2lcIDsKK+aatOiZjummruaysyA+IGJvdWtvaHlvdWdhXCA7Civlt6bohZXmipXmiYsgPiBzYXdhbnRvdXNodVwgOwor5YmN5pyf6Kmm6aiTID4gemVua2lzaGlrZW5cIDsKK+iiq+mBuOaMmeS6uiA+IGhpc2Vua3lvbmluXCA7Civog4zlvozplqLkv4IgPiBoYWlnb2thbmtlaVwgOwor6aST6ay85aSn5bCGID4gZ2FraWRhaXNob3VcIDsKK+eVquWPt+iomOWPtyA+IGJhbmdvdWtpZ291XCA7CivliJHkuovoo5zlhJ8gPiBrZWlqaWhvc2hvdVwgOwor5LiA5L2T5YWo5L2TID4gaXR0YWl6ZW50YWlcIDsKK+a1t+mBi+WQjOebnyA+IGthaXVuZG91bWVpXCA7CivlsILlrojpmLLooZsgPiBzZW5zaHVib3VlaVwgOwor5Y2X6Zi/6YCj6YKmID4gbmFuJydhcmVucG91XCA7CivnmbrooYzpg6jmlbAgPiBoYWtrb3VidXN1dVwgOwor5YiR5LqL6KOB5YikID4ga2VpamlzYWliYW5cIDsKK+WFrOW5s+eEoeengSA+IGtvdWhlaW11c2hpXCA7CivniankvqHmjIfmlbAgPiBidWtrYXNoaXN1dVwgOwor5YiR5LqL6KKr5ZGKID4ga2VpamloaWtva3VcIDsKK+iomOiAheS8muimiyA+IGtpc2hha2Fpa2VuXCA7CivlvpPou43oqJjogIUgPiBqdXVndW5raXNoYVwgOwor56m65rCX5oq15oqXID4ga3V1a2l0ZWlrb3VcIDsKK+ePvumHkeato+S+oSA+IGdlbmtpbnNlaWthXCA7CivlpKflkIzlsI/nlbAgPiBkYWlkb3VzaG91aVwgOwor55Sf5ZG95YCr55CGID4gc2VpbWVpcmlucmlcIDsKK+mnhuWLleijhee9riA+IGt1ZG91c291Y2hpXCA7CivljYPou43kuIfppqwgPiBzZW5ndW5iYW5iYVwgOwor5aSJ5bm76Ieq5ZyoID4gaGVuZ2Vuaml6YWlcIDsKK+ebuOWvvuS4u+e+qSA+IHNvdXRhaXNodWdpXCA7Civou43ljLvlrabmoKEgPiBndW4nJ2lnYWtrb3VcIDsKK+mDveawkeS8mumkqCA+IHRvbWlua2Fpa2FuXCA7CivluILloLTkvqHlgKQgPiBzaGlqb3VrYWNoaVwgOwor5bmz5ZKM6KuW6ICFID4gaGVpd2Fyb25zaGFcIDsKK+Wwv+e0oOaoueiEgiA+IG55b3Vzb2p1c2hpXCA7CivmjoPpmaTlvZPnlaogPiBzb3VqaXRvdWJhblwgOwor5Luj55CG5oim5LqJID4gZGFpcmlzZW5zb3VcIDsKK+WcsOebpOayiOS4iyA+IGppYmFuY2hpbmthXCA7Civmp4vmiJDkuLvnvqkgPiBrb3VzZWlzaHVnaVwgOwor5q2j5aSa6Z2i5L2TID4gc2VpdGFtZW50YWlcIDsKK+S4gOWIh+WQiOWIhyA+IGlzc2FpZ2Fzc2FpXCA7Civkv53nqI7lnLDln58gPiBob3plaWNoaWlraVwgOwor5Lq65ZOh5pW055CGID4gamluJydpbnNlaXJpXCA7CivkurrplpPku6XliY0gPiBuaW5nZW4nJ2l6ZW5cIDsKK+W5s+mdouWbs+W9oiA+IGhlaW1lbnp1a2VpXCA7Civlroflrpnml4XooYwgPiB1Y2h1dXJ5b2tvdVwgOwor6I2Y5ZyS5Yi25bqmID4gc2hvdWVuc2VpZG9cIDsKK+iHquekvuijveWTgSA+IGppc2hhc2VpaGluXCA7CivliJ3mnJ/mrrXpmo4gPiBzaG9raWRhbmthaVwgOwor5YmN6YCU6YG86YGgID4gemVudG9yeW91ZW5cIDsKK+i1pOiRoeiQhOmFkiA+IGFrYWJ1ZG91c2h1XCA7Civljp/lp4vmmYLku6MgPiBnZW5zaGlqaWRhaVwgOwor5Y+C6KyA5pys6YOoID4gc2FuYm91aG9uYnVcIDsKK+Wls+WtkOWkp+eUnyA+IGpvc2hpZGFpc2VpXCA7CivmjpLlpJbpgYvli5UgPiBoYWlnYWl1bmRvdVwgOwor5rC05bmz6aOb6KGMID4gc3VpaGVpaGlrb3VcIDsKK+S9juWbnui2o+WRsyA+IHRlaWthaXNodW1pXCA7CivkupLmgbXosr/mmJMgPiBnb2tlaWJvdWVraVwgOwor5Lq66ZaT5Lul5LiKID4gbmluZ2VuJydpam91XCA7CivlgrLmhaLnhKHnpLwgPiBnb3VtYW5idXJlaVwgOwor5b6S5omL56m65ouzID4gdG9zaHVrdXVrZW5cIDsKK+S6nOeCreWMlueJqSA+IGF0YW5rYWJ1dHN1XCA7CivmsLTms7PlpKfkvJogPiBzdWllaXRhaWthaVwgOwor55S35aWz5ZCM5qipID4gZGFuam9kb3VrZW5cIDsKK+W5tOmHkeWItuW6piA+IG5lbmtpbnNlaWRvXCA7Civnqbrou43ln7rlnLAgPiBrdXVndW5raWNoaVwgOwor5aSn5ZKM5pmC5LujID4geWFtYXRvamlkYWlcIDsKK+W4neeOi+WIh+mWiyA+IHRlaW91c2Vra2FpXCA7Civlj43mlL/lupzlhZogPiBoYW5zZWlmdXRvdVwgOwor6JmO6KaW55yI44CFID4ga29zaGl0YW50YW5cIDsKK+atr+enkeeXhemZoiA+IHNoaWthYnlvdWluXCA7CivovInosqjlsa/mlbAgPiBzYWlrYXRvbnN1dVwgOwor6KuW6Kqs5aeU5ZOhID4gcm9uc2V0c3VpaW5cIDsKK+WLneaJi+asoeesrCA+IGthdHRlc2hpZGFpXCA7CivnqbrmjLrpmorlk6EgPiBrdXV0ZWl0YWlpblwgOwor6Ieq55Sx57WM5riIID4gaml5dXVrZWl6YWlcIDsKK+iyoeaUv+egtOe2uyA+IHphaXNlaWhhdGFuXCA7CivmlL/msrvnjK7ph5EgPiBzZWlqaWtlbmtpblwgOwor5omL6ZaT5LuV5LqLID4gdGVtYXNoaWdvdG9cIDsKK+S4gOacrOWLneiyoCA+IGlwcG9uc2hvdWJ1XCA7CivkuK3pgJTljYrnq68gPiBjaHV1dG9oYW5wYVwgOwor6YCa6YGO5YSA56S8ID4gdHN1dWthZ2lyZWlcIDsKK+iLseWtl+mbhuWQiCA+IGVpamlzaHV1Z291XCA7CivnvbLlkI3pgYvli5UgPiBzaG9tZWl1bmRvdVwgOwor5aGR5oCn5oyH5pWwID4gc29zZWlzaGlzdXVcIDsKK+WQiOWQjOWKtOe1hCA+IGdvdWRvdXJvdXNvXCA7CivkuLvnrqHmqZ/plqIgPiBzaHVrYW5raWthblwgOwor5aSp5rCX6YO95ZCIID4gdGVua2l0c3Vnb3VcIDsKK+WFteWZqOW3peWgtCA+IGhlaWtpa291am91XCA7CivlubPmsJHkuLvnvqkgPiBoZWltaW5zaHVnaVwgOwor5a625peP5Lya6K2wID4ga2F6b2t1a2FpZ2lcIDsKK+a4m+WCteWfuumHkSA+IGdlbnNhaWtpa2luXCA7CivnpZblhYjltIfmi50gPiBzb3NlbnN1dWhhaVwgOwor5LqL5aSn5oCd5oOzID4gamlkYWlzaGlzb3VcIDsKK+WcsOWgtOeUo+alrSA+IGppYmFzYW5neW91XCA7CivpgKPpgqblm73lrrYgPiByZW5wb3Vrb2trYVwgOwor56uL5oay5Li7576pID4gcmlra2Vuc2h1Z2lcIDsKK+WFq+aWuee+juS6uiA+IGhhcHBvdWJpamluXCA7CivkuJbnlYzmg4Xli6IgPiBzZWthaWpvdXNlaVwgOwor5LiN5b+r5oyH5pWwID4gZnVrYWlzaGlzdXVcIDsKK+mBoOa0i+iIqui3ryA+IGVuJyd5b3Vrb3Vyb1wgOwor5Zu95a6257WM5riIID4ga29ra2FrZWl6YWlcIDsKK+iHqOaZguWil+WIiiA+IHJpbmppem91a2FuXCA7CivlhazmrablkIjkvZMgPiBrb3VidWdhdHRhaVwgOwor5LqI6K6a5pys57eaID4geW9zYW5ob25zZW5cIDsKK+agueacrOS4u+e+qSA+IGtvbnBvbnNodWdpXCA7CivpnZ7luLjorabmiJIgPiBoaWpvdWtlaWthaVwgOwor5Lit5aSu5pS/5bqcID4gY2h1dW91c2VpZnVcIDsKK+WIuueKtueqgei1tyA+IHNoaWpvdXRva2tpXCA7CivlhaznmoTmibbliqkgPiBrb3V0ZWtpZnVqb1wgOwor5ZCI5oiQ5qi56ISCID4gZ291c2VpanVzaGlcIDsKK+WJsuizpuizvOiytyA+IGthcHB1a291YmFpXCA7CivmnKrmnaXmjIflkJEgPiBtaXJhaXNoaWtvdVwgOwor6Ieq55Sx5pS+5Lu7ID4gaml5dXVob3VuaW5cIDsKK+iHqui7ouWRqOacnyA+IGppdGVuc2h1dWtpXCA7Civoh6rlt7HkuLvlvLUgPiBqaWtvc2h1Y2hvdVwgOwor5Y2D6KiA5LiH6KqeID4gc2VuZ2VuYmFuZ29cIDsKK+W+kuatqeertui1sCA+IHRvaG9reW91c291XCA7CivopqrlloToqablkIggPiBzaGluemVuamlhaVwgOwor56qS57Sg5Zu65a6aID4gY2hpc3Nva290ZWlcIDsKK+a1t+S4iuS/nemZuiA+IGthaWpvdWhva2VuXCA7Civpo5vooYznlLLmnb8gPiBoaWtvdWtvdWJhblwgOwor5oyH5bCO5Li75LqLID4gc2hpZG91c2h1amlcIDsKK+ebuOS6kumKgOihjCA+IHNvdWdvZ2lua291XCA7Civou43lj7jku6Tpg6ggPiBndW5zaGlyZWlidVwgOwor6Ku45LqL5LiH56uvID4gc2hvamliYW50YW5cIDsKK+WKtOeBveS/nemZuiA+IHJvdXNhaWhva2VuXCA7CivmmYLovKrph5HliZsgPiBqaXJpbmtvbmdvdVwgOwor5oSP5rCX6Yq35rKIID4gaWtpc2hvdWNoaW5cIDsKK+mWoueojuWbnumBvyA+IGthbnplaWthaWhpXCA7CivmhI/msJfmtojmsoggPiBpa2lzaG91Y2hpblwgOwor5YmN5Lq65pyq5YiwID4gemVuamlubWl0b3VcIDsKK+WFseWSjOS4u+e+qSA+IGt5b3V3YXNodWdpXCA7CivkuojpmLLmiKbkuokgPiB5b2JvdXNlbnNvdVwgOwor6YW45oCn5Zyf5aOMID4gc2Fuc2VpZG9qb3VcIDsKK+S6uui6q+S/neittyA+IGppbnNoaW5ob2dvXCA7CivlubTph5Hkv53pmbogPiBuZW5raW5ob2tlblwgOwor5oyH5ZCR6KiA6KqeID4gc2hpa291Z2VuZ29cIDsKK+W3oeafu+mDqOmVtyA+IGp1bnNhYnVjaG91XCA7Civkv53oqLzmnJ/plpMgPiBob3Nob3VraWthblwgOwor5LiN5rOV55uj56aBID4gZnVob3VrYW5raW5cIDsKK+W+oeiLpuWKtOanmCA+IGdva3Vyb3VzYW1hXCA7CivooYzkvY/luqfoh6UgPiBneW91anV1emFnYVwgOwor6Ieq5rK75aSn6IejID4gamljaGlkYWlqaW5cIDsKK+eri+S9k+S6pOW3riA+IHJpdHRhaWtvdXNhXCA7Civnq5zpoK3om4flsL4gPiByeXV1dG91ZGFiaVwgOwor5YWF6Zu75pyf6ZaTID4ganV1ZGVua2lrYW5cIDsKK+iomOaGtuWqkuS9kyA+IGtpb2t1YmFpdGFpXCA7CivppIrorbfmlZnoq60gPiB5b3Vnb2t5b3V5dVwgOwor5Lq65pys5Li7576pID4gamlucG9uc2h1Z2lcIDsKK+a1t+a0i+aKleajhCA+IGthaXlvdXRvdWtpXCA7CivlkozmrYzlsbHnnIwgPiB3YWtheWFtYWtlblwgOwor5aSq6Zm96Zu75rOiID4gdGFpeW91ZGVucGFcIDsKK+eQhuenkeWkp+WtpiA+IHJpa2FkYWlnYWt1XCA7Civov5HooZvluKvlm6MgPiBrb25vZXNoaWRhblwgOwor5LiA6KGj5biv5rC0ID4gaWNoaWl0YWlzdWlcIDsKK+izh+acrOS4u+e+qSA+IHNoaWhvbnNodWdpXCA7Civoh6rnlLHntZDlqZogPiBqaXl1dWtla2tvblwgOwor5b+F6aCI56eR55uuID4gaGlzc3VrYW1va3VcIDsKK+i/keS7o+S4u+e+qSA+IGtpbmRhaXNodWdpXCA7CivlrojorbflpKnkvb8gPiBzaHVnb3RlbnNoaVwgOwor5L2c5qWt6YOo5LyaID4gc2FneW91YnVrYWlcIDsKK+mDveW4guWGjeeUnyA+IHRvc2hpc2Fpc2VpXCA7CivlubznlJ/lmajlrpggPiB5b3VzZWlraWthblwgOwor5b6h55So57WE5ZCIID4gZ295b3VrdW1pYWlcIDsKK+i7jeS6i+a8lOe/kiA+IGd1bmppZW5zaHV1XCA7CivkurrpgZPkuLvnvqkgPiBqaW5kb3VzaHVnaVwgOwor5YmN5Y+y5pmC5LujID4gemVuc2hpamlkYWlcIDsKK+a1t+S4iuWwgemOliA+IGthaWpvdWZ1dXNhXCA7CivmhI/lkbPmt7HplbcgPiBpbWlzaGluY2hvdVwgOwor5Lqk6YCa6YGV5Y+NID4ga291dHN1dWloYW5cIDsKK+Wbm+WNgeWFq+aJiyA+IHlvbmp1dWhhdHRlXCA7CivmiYvlt7vlr7/lj7ggPiB0ZW1ha2l6dXNoaVwgOwor5YWs6ZaL6Kyb5bqnID4ga291a2Fpa291emFcIDsKK+eJh+iogOmau+WPpSA+IGhlbmdlbnNla2t1XCA7Civpq5jplqLnqI7ljJYgPiBrb3VrYW56ZWlrYVwgOwor6YGL6YCB5Lya56S+ID4gdW5zb3VnYWlzaGFcIDsKK+adseWuruW+oeaJgCA+IHRvdWd1dWdvc2hvXCA7Civlu7bmu57liKnmga8gPiBlbnRhaXJpc29rdVwgOwor54Gr54G96K2m5aCxID4ga2FzYWlrZWlob3VcIDsKK+e3j+aMh+aPruWumCA+IHNvdXNoaWtpa2FuXCA7CivmlL7pgIHmmYLplpMgPiBob3Vzb3VqaWthblwgOwor5pyJ5a6z54Sh55uKID4geXV1Z2FpbXVla2lcIDsKK+WppuS6uuWVj+mhjCA+IGZ1amlubW9uZGFpXCA7CivmmbTogJXpm6joqq0gPiBzZWlrb3V1ZG9rdVwgOwor5bCK55qH5pSY5aS3ID4gc29uJydub3Vqb3VpXCA7CivkuI3mlofmhrLms5UgPiBmdWJ1bmtlbnBvdVwgOwor5LiA5a+45rOV5birID4gaXNzdW5ib3VzaGlcIDsKK+WPr+iDveWLleipniA+IGthbm91ZG91c2hpXCA7Civlj6TkuovmnaXmrbQgPiBrb2ppcmFpcmVraVwgOwor5a6M5YWo6ZuH55SoID4ga2FuemVua295b3VcIDsKK+WJr+m8u+iFlOeCjiA+IGZ1a3ViaWt1dWVuXCA7CivlpJrlhYPmlL7pgIEgPiB0YWdlbmhvdXNvdVwgOwor5rCX5oGv5aWE5aWEID4ga2lzb2t1ZW4nJ2VuXCA7Civph4jov6blpoLmnaUgPiBzaGFrYW55b3JhaVwgOwor5LqI57SE5ZCN57C/ID4geW95YWt1bWVpYm9cIDsKK+S4jeiyt+WQjOebnyA+IGZ1YmFpZG91bWVpXCA7CivpnZ7osrflkIznm58gPiBoaWJhaWRvdW1laVwgOwor55u45a++5pWs6KqeID4gc291dGFpa2VpZ29cIDsKK+e1jOa4iOeJueWMuiA+IGtlaXphaXRva2t1XCA7Civku7vmhI/lm6PkvZMgPiBuaW4nJ2lkYW50YWlcIDsKK+aOpeaVteenu+WLlSA+IHNldHRla2lpZG91XCA7CivpsKXlr6HlraTni6wgPiBrYW5rYWtvZG9rdVwgOwor55u45a++5aOy6LK3ID4gYWl0YWliYWliYWlcIDsKK+eEoeS6uuW3peWgtCA+IG11amlua291am91XCA7CivkuI3mj5vntJnluaMgPiBmdWthbnNoaWhlaVwgOwor55u45LmX5L2c55SoID4gc291am91c2F5b3VcIDsKK+S6iOeul+S4jei2syA+IHlvc2FuZnVzb2t1XCA7CivolqznkIbkvZznlKggPiB5YWt1cmlzYXlvdVwgOwor54K65pu/566h55CGID4ga2F3YXNla2FucmlcIDsKK+S6i+WJjeWNlOitsCA+IGppc2Vua3lvdWdpXCA7CivljprpoZTnhKHmgaUgPiBrb3VnYW5tdWNoaVwgOwor5a6J5YWo6KOF572uID4gYW56ZW5zb3VjaGlcIDsKK+epuuawl+aEn+afkyA+IGt1dWtpa2Fuc2VuXCA7CivmsLTpgZPlt6XkuosgPiBzdWlkb3Vrb3VqaVwgOwor5LiA57SZ5Y2K6YqtID4gaXNzaGloYW5zZW5cIDsKK+WPjeWwhOmBi+WLlSA+IGhhbnNoYXVuZG91XCA7CivloanpoZ7murbmtrIgPiBlbnJ1aXlvdWVraVwgOwor5aSW5Lq66YOo6ZqKID4gZ2FpamluYnV0YWlcIDsKK+aLnemHkeS4u+e+qSA+IGhhaWtpbnNodWdpXCA7CivnlbDkvZPlkIzlv4MgPiBpdGFpZG91c2hpblwgOwor5LmX5pWw5Yq55p6cID4gam91c3V1a291a2FcIDsKK+WFqOebm+aZguS7oyA+IHplbnNlaWppZGFpXCA7CivpnaLlkJHkuI3og4wgPiBtZW5rb3VmdWhhaVwgOwor56m655CG56m66KuWID4ga3V1cmlrdXVyb25cIDsKK+mdnuW4uOmajuautSA+IGhpam91a2FpZGFuXCA7Civlgrfnl43ou43kurogPiBzaG91aWd1bmppblwgOwor5pyI6LOm6LKp5aOyID4gZ2VwcHVoYW5iYWlcIDsKK+S4h+S4luS4gOezuyA+IGJhbnNlaWlra2VpXCA7CivnrKzkuozpg6jplbcgPiBkYWluaWJ1Y2hvdVwgOwor6KGM5YSA5L2c5rOVID4gZ3lvdWdpc2Fob3VcIDsKK+mHjeWKoOeul+eojiA+IGp1dWthc2FuemVpXCA7CivkuIDlv4PkuI3kubEgPiBpc3NoaW5mdXJhblwgOwor6LuN5LqL6KOB5YikID4gZ3VuamlzYWliYW5cIDsKK+eFp+aYjuWZqOWFtyA+IHNob3VtZWlraWd1XCA7CivlsY3pmYDmnpfnjosgPiBzaGlkYXJpbicnb3VcIDsKK+mBjuWOu+WujOS6hiA+IGtha29rYW5yeW91XCA7CivmiKblvozmrKflt54gPiBzZW5nb291c2h1dVwgOwor6aaW6ISz5Lya6K2wID4gc2h1bm91a2FpZ2lcIDsKK+WutuW6reaWmeeQhiA+IGthdGVpcnlvdXJpXCA7Civml6XmnKzpioDooYwgPiBuaWhvbmdpbmtvdVwgOwor6YGg5Lqk6L+R5pS7ID4gZW5rb3VraW5rb3VcIDsKK+aXi+WbnumBi+WLlSA+IHNlbmthaXVuZG91XCA7CivluLDlm73lrZDlpbMgPiBraWtva3VzaGlqb1wgOwor6ZuM6ZuE5reY5rGwID4gc2hpeXV1dG91dGFcIDsKK+mKgOacrOS9jeWItiA+IGdpbmhvbicnaXNlaVwgOwor6Ieq5qWt6Ieq5b6XID4gamlnb3VqaXRva3VcIDsKK+S4u+agvOijnOiqniA+IHNodWtha3Vob2dvXCA7CivlgpjlvaLlmajlrpggPiBzYW5rZWlraWthblwgOwor6Zu75YyW6KO95ZOBID4gZGVua2FzZWloaW5cIDsKK+izh+eUo+S+oeWApCA+IHNoaXNhbmthY2hpXCA7CivkuK3lpK7nq7bppqwgPiBjaHV1b3VrZWliYVwgOwor6LWk5a2X6LKh5pS/ID4gYWthaml6YWlzZWlcIDsKK+aUv+ayu+S6oeWRvSA+IHNlaWppYm91bWVpXCA7CivkupTljYHlubTnpa0gPiBnb2p1dW5lbnNhaVwgOwor6YG65peP5bm06YeRID4gaXpva3VuZW5raW5cIDsKK+S6uuW3peaghOmkiiA+IGppbmtvdWVpeW91XCA7Civmk6zlj6TlhbjnmoQgPiBnaWtvdGVudGVraVwgOwor6Zu75rCX5Lya56S+ID4gZGVua2lnYWlzaGFcIDsKK+awl+maj+awl+WEmCA+IGtpenVpa2ltYW1hXCA7CivnhKHlj43li5XpioMgPiBtdWhhbmRvdWp1dVwgOwor6YGg5b+D5YiG6ZuiID4gZW5zaGluYnVucmlcIDsKK+WgtOWklummrOWIuCA+IGpvdWdhaWJha2VuXCA7CivpnZLlubTmmYLku6MgPiBzZWluZW5qaWRhaVwgOwor6Ieq55Sx5ZWP6aGMID4gaml5dXVtb25kYWlcIDsKK+a8q+eUu+mbkeiqjCA+IG1hbmdhemFzc2hpXCA7CivkupzpiZvkuK3mr5IgPiBhZW5jaHV1ZG9rdVwgOwor56WW5YWI5Lyd5p2lID4gc29zZW5kZW5yYWlcIDsKK+S4gOWFmuaUr+mFjSA+IGl0dG91c2hpaGFpXCA7CivkuLvoprPkuLvnvqkgPiBzaHVrYW5zaHVnaVwgOwor5ZG85ZC45Zmo57O7ID4ga29reXV1a2lrZWlcIDsKK+eCuuabv+aKleapnyA+IGthd2FzZXRvdWtpXCA7CivkuIDnn6XljYrop6MgPiBpdGNoaWhhbmthaVwgOwor5LiN5a6a5Yag6KmeID4gZnV0ZWlrYW5zaGlcIDsKK+S7o+itsOaUv+S9kyA+IGRhaWdpc2VpdGFpXCA7CivlubPlkozmlLvli6IgPiBoZWl3YWtvdXNlaVwgOwor5L2O5L6h5qC85YyWID4gdGVpa2FrYWt1a2FcIDsKK+iCmOaOm+akheWtkCA+IGhpamlrYWtlaXN1XCA7Civlhazli5nngb3lrrMgPiBrb3VtdXNhaWdhaVwgOwor5pmv5rCX5b6q55KwID4ga2Vpa2lqdW5rYW5cIDsKK+mWouS/guazleimjyA+IGthbmtlaWhvdWtpXCA7Civos4DoqZ7kuqTmj5sgPiBnYXNoaWtvdWthblwgOwor6ICV5Zyw5pW055CGID4ga291Y2hpc2VpcmlcIDsKK+ihqOijj+S4gOS9kyA+IGh5b3VyaWl0dGFpXCA7CivlpbTpmrfop6PmlL4gPiBkb3JlaWthaWhvdVwgOwor6Zi/5aSa56aP6LGGID4gb3RhZnVrdW1hbWVcIDsKK+S8gealreaVtOWCmSA+IGtpZ3lvdXNlaWJpXCA7Civou43kuovooYzli5UgPiBndW5qaWtvdWRvdVwgOwor5Zyw5pa56Ieq5rK7ID4gY2hpaG91amljaGlcIDsKK+S4luS/l+S4u+e+qSA+IHNlem9rdXNodWdpXCA7Civpq5jngq3ntKDpi7wgPiBrb3V0YW5zb2tvdVwgOwor5pyJ5qmf6IKl5paZID4geXV1a2loaXJ5b3VcIDsKK+avlOS+i+mFjeWIhiA+IGhpcmVpaGFpYnVuXCA7Civlj43lr77pgYvli5UgPiBoYW50YWl1bmRvdVwgOwor5re75LuY5pu46aGeID4gdGVucHVzaG9ydWlcIDsKK+aBi+aEm+mBiuaIryA+IHJlbicnYWl5dXVnaVwgOwor5oqV5bCE5Y6f55CGID4gdG91c2hhZ2VucmlcIDsKK+Wkp+iogOWjruiqniA+IHRhaWdlbnNvdWdvXCA7Civph5HmnKzkvY3liLYgPiBraW5ob24nJ2lzZWlcIDsKK+mAoOiqnuaIkOWIhiA+IHpvdWdvc2VpYnVuXCA7Civnmb7np5Hovp7lhbggPiBoeWFra2FqaXRlblwgOwor5LiH5Luj5LiN5piTID4gYmFuZGFpZnVla2lcIDsKK+WNsemZuuinkuW6piA+IGtpa2Vua2FrdWRvXCA7CivljJblrablhbXlmaggPiBrYWdha3VoZWlraVwgOwor5ryi5a2X5Yi26ZmQID4ga2FuamlzZWlnZW5cIDsKK+W5tOWKn+WItuW6piA+IG5lbmtvdXNlaWRvXCA7CivmtbflupXngavlsbEgPiBrYWl0ZWlrYXphblwgOwor6ZqU6Z205o6755eSID4ga2Fra2Fzb3V5b3VcIDsKK+mdnuaIpuirluiAhSA+IGhpc2Vucm9uc2hhXCA7CivkuIfkuJbkuI3mmJMgPiBiYW5zZWlmdWVraVwgOwor5YaN55Sf57mK57atID4gc2Fpc2Vpc2VuJydpXCA7CivpgYvou6Lns7vntbEgPiB1bnRlbmtlaXRvdVwgOwor5Lu75oSP5ZCM6KGMID4gbmluJydpZG91a291XCA7Civoh6jmmYLlm73kvJogPiByaW5qaWtva2thaVwgOwor6Kmm6aiT5pyf6ZaTID4gc2hpa2Vua2lrYW5cIDsKK+W5tOWKn+WKoOS/uCA+IG5lbmtvdWthaG91XCA7Civlv5zmj7Tlm6PplbcgPiBvdWVuZGFuY2hvdVwgOwor6LuN5Yy757eP55ujID4gZ3VuJydpc291a2FuXCA7CivmhYjlloTlm6PkvZMgPiBqaXplbmRhbnRhaVwgOwor6Ieq57+S5pmC6ZaTID4gamlzaHV1amlrYW5cIDsKK+WbveWutuijnOWEnyA+IGtva2thaG9zaG91XCA7Civnm5vogIXlv4XoobAgPiBzZWlqYWhpc3N1aVwgOwor5Lq65paH5Li7576pID4gamluYnVuc2h1Z2lcIDsKK+mbu+ipseeVquWPtyA+IGRlbndhYmFuZ291XCA7CivnkIboq5bkvZPns7sgPiByaXJvbnRhaWtlaVwgOwor5pel5pys5rW35rqdID4gbmlob25rYWlrb3VcIDsKK+e1jOW4uOWIqeebiiA+IGtlaWpvdXJpZWtpXCA7CivlvJXosqzovp7ku7sgPiBpbnNla2lqaW5pblwgOwor5Yem5aWz6Iiq5rW3ID4gc2hvam9rb3VrYWlcIDsKK+S4gOi7kuS4gOi7kiA+IGlra2VuJydpa2tlblwgOwor5ZWP562U54Sh55SoID4gbW9uZG91bXV5b3VcIDsKK+mBi+WRveirluiAhSA+IHVubWVpcm9uc2hhXCA7Civoj5znqK7mooXpm6ggPiBuYXRhbmVkenV5dVwgOwor6Kqy5aSW5o6I5qWtID4ga2FnYWlqdWd5b3VcIDsKK+mbo+awkeW4sOmChCA+IG5hbm1pbmtpa2FuXCA7Civlgbblg4/noLTlo4ogPiBndXV6b3VoYWthaVwgOwor5oyH56S66KOF572uID4gc2hpamlzb3VjaGlcIDsKK+WuieWFqOWcsOW4ryA+IGFuemVuY2hpdGFpXCA7Civoh6rlt7HopIfoo70gPiBqaWtvZnVrdXNlaVwgOwor5LuW5Lq66KGM5YSAID4gdGFuaW5neW91Z2lcIDsKK+WIpOWumOi0lOWxkyA+IGhvdWdhbmJpaWtpXCA7CivlnKfmkL7nqbrmsJcgPiBhc3Nha3VrdXVraVwgOwor5YGl5bq3566h55CGID4ga2Vua291a2FucmlcIDsKK+ippumok+mjm+ihjCA+IHNoaWtlbmhpa291XCA7CivnlJ/nlKPpgY7libAgPiBzZWlzYW5rYWpvdVwgOwor55Sf55CG5LyR5pqHID4gc2VpcmlreXV1a2FcIDsKK+S6pOmam+WgtOijjyA+IGtvdXNhaWpvdXJpXCA7CivosYrogqXmnKznt5ogPiBob3VoaWhvbnNlblwgOwor5Yik5pat6KaP5rqWID4gaGFuZGFua2lqdW5cIDsKK+awl+aBr+WlhOOAhSA+IGtpc29rdWVuJydlblwgOwor5Yik5pat5Z+65rqWID4gaGFuZGFua2lqdW5cIDsKK+Wkqeizh+iLsemCgSA+IHRlbnNoaWVpbWFpXCA7CivmirXmipfpgYvli5UgPiB0ZWlrb3V1bmRvdVwgOwor6YO15L6/5YiH5omLID4geXV1Ymlua2l0dGVcIDsKK+eUsOWckumDveW4giA+IGRlbicnZW50b3NoaVwgOwor6KGj5paZ5ZOB5bqXID4gaXJ5b3VoaW50ZW5cIDsKK+S6jOmDqOWQiOWUsSA+IG5pYnVnYXNzaG91XCA7Civpm7vlrZDpoK3ohLMgPiBkZW5zaGl6dW5vdVwgOwor5Ymy6LOm6LKp5aOyID4ga2FwcHVoYW5iYWlcIDsKK+mqqOiRo+i2o+WRsyA+IGtvdHRvdXNodW1pXCA7Civou43lgpnliLbpmZAgPiBndW5iaXNlaWdlblwgOwor6YGL5YuV5LiN6LazID4gdW5kb3VidXNva3VcIDsKK+WItumZkOa8ouWtlyA+IHNlaWdlbmthbmppXCA7CivnhKHlj43li5XnoLIgPiBtdWhhbmRvdWhvdVwgOwor5Y6f5Zug5LiN5piOID4gZ2VuJydpbmZ1bWVpXCA7Civou73oh6rli5Xou4ogPiBrZWlqaWRvdXNoYVwgOwor5Y6f5a2Q5pmC5LujID4gZ2Vuc2hpamlkYWlcIDsKK+eLkOeWkemAoeW3oSA+IGtvZ2lzaHVuanVuXCA7CivnqIvluqbllY/poYwgPiB0ZWlkb21vbmRhaVwgOwor6KaP5a6a5omT5bitID4ga2l0ZWlkYXNla2lcIDsKK+miqOe0gOe0iuS5sSA+IGZ1dWtpYmlucmFuXCA7CivluILlj4LkuovkvJogPiBzaGlzYW5qaWthaVwgOwor6KiY5oa26KOF572uID4ga2lva3Vzb3VjaGlcIDsKK+mbu+awl+S8neWwjiA+IGRlbmtpZGVuZG91XCA7CivmtbflpJbmtL7lhbUgPiBrYWlnYWloYWhlaVwgOwor5aSp6LOm5Lq65qipID4gdGVucHVqaW5rZW5cIDsKK+aHuOWegumBi+WLlSA+IGtlbnN1aXVuZG91XCA7CivnpZ7np5jkuLvnvqkgPiBzaGlucGlzaHVnaVwgOwor6YGg5oWu5Lya6YeIID4gZW5yeW9lc2hha3VcIDsKK+aal+WPt+aJi+azlSA+IGFuZ291c2h1aG91XCA7CivpgYvovLjlpKfoh6MgPiB1bicneXVkYWlqaW5cIDsKK+mdnuirlueQhueahCA+IGhpcm9ucml0ZWtpXCA7Civlj7Pnv7zlm6PkvZMgPiB1eW9rdWRhbnRhaVwgOwor5L+d5YGl6KGb55SfID4gaG9rZW4nJ2Vpc2VpXCA7Civnm5flk4HmlYXosrcgPiB0b3VoaW5rb2JhaVwgOwor6Z2Z5q2i6LuM6YGTID4gc2Vpc2hpa2lkb3VcIDsKK+aFtuaHiee+qeWhviA+IGtlaW91Z2lqdWt1XCA7Civlv6vliIDkubHpursgPiBrYWl0b3VyYW5tYVwgOwor6Iez6L+R6Led6ZuiID4gc2hpa2lua3lvcmlcIDsKK+aQjeWus+S/nemZuiA+IHNvbmdhaWhva2VuXCA7Civmp4vmiJDopoHntKAgPiBrb3VzZWl5b3Vzb1wgOwor5Y2U6K2w5LqL6aCFID4ga3lvdWdpamlrb3VcIDsKK+iInuWPsOS/s+WEqiA+IGJ1dGFpaGFpeXV1XCA7CivljbHmqZ/kuIDpq6ogPiBraWtpaXBwYXRzdVwgOwor5Yy75a2m6ZuR6KqMID4gaWdha3V6YXNzaGlcIDsKK+eJqeS+oeawtOa6liA+IGJ1a2thc3VpanVuXCA7CivotaTljYHlrZfpmYQgPiBzZWtpanV1amlmdVwgOwor5om26aSK5a625pePID4gZnV5b3VrYXpva3VcIDsKK+eri+aGsuaUv+ayuyA+IHJpa2tlbnNlaWppXCA7Civkurrlt6Xoh5PlmaggPiBqaW5rb3V6b3VraVwgOwor56Wt5pS/5LiA6Ie0ID4gc2Fpc2VpaXRjaGlcIDsKK+S4jeiogOWun+ihjCA+IGZ1Z2Vuamlra291XCA7Civku5Xkuovpg6jlsYsgPiBzaGlnb3RvYmV5YVwgOwor5oiQ5Lq65pig55S7ID4gc2VpamluJydlaWdhXCA7Civoh6rnlLHllrbmpa0gPiBqaXl1dWVpZ3lvdVwgOwor5qiZ5rqW6Kqk5beuID4gaHlvdWp1bmdvc2FcIDsKK+S5s+WFkOiEmuawlyA+IG55dXVqaWtha2tlXCA7Civou43pnIDlt6XloLQgPiBndW5qdWtvdWpvdVwgOwor55u45Yqg5bmz5Z2HID4gc291a2FoZWlraW5cIDsKK+eyl+ijveS5semAoCA+IHNvc2VpcmFuem91XCA7CivlvqHlkI3lvqHnkr0gPiBneW9tZWlneW9qaVwgOwor5paH5rK75Li7576pID4gYnVuY2hpc2h1Z2lcIDsKK+iHqueEtua3mOaxsCA+IHNoaXplbnRvdXRhXCA7CivlrrblroXmjZzmn7sgPiBrYXRha3Vzb3VzYVwgOwor5pei5oiQ5qaC5b+1ID4ga2lzZWlnYWluZW5cIDsKK+aVtOWCmeW3peWgtCA+IHNlaWJpa291am91XCA7Civlr77nqbrnoLLngasgPiB0YWlrdXVob3VrYVwgOwor5rue56m65pmC6ZaTID4gdGFpa3V1amlrYW5cIDsKK+iyv+aYk+i1pOWtlyA+IGJvdWVraWFrYWppXCA7CivkuIDoqIDlsYXlo6sgPiBpY2hpZ2Vua29qaVwgOwor5bGL5LiK5bqt5ZySID4gb2t1am91dGVpZW5cIDsKK+mfs+WjsOihqOiomCA+IG9uc2VpaHlvdWtpXCA7Civlr6nnvo7kuLvnvqkgPiBzaGluYmlzaHVnaVwgOwor5b+c55So5ZWP6aGMID4gb3V5b3Vtb25kYWlcIDsKK+S6kuaBtemWoueojiA+IGdva2Vpa2FuemVpXCA7Civou5/mgKfkuIvnlrMgPiBuYW5zZWlnZWthblwgOwor5Zu96Kqe6L6e5YW4ID4ga29rdWdvaml0ZW5cIDsKK+WFrOiqjeWAmeijnCA+IGtvdW5pbmtvdWhvXCA7CivnlJ/lubTmnIjml6UgPiBzZWluZW5nYXBwaVwgOwor5aWH562W57im5qiqID4ga2lzYWt1anV1b3VcIDsKK+WFieWtpuaWh+WtlyA+IGtvdWdha3Vtb2ppXCA7CivlgZzou4rmmYLplpMgPiB0ZWlzaGFqaWthblwgOwor5YWx5ZKM5pS/5rK7ID4ga3lvdXdhc2VpamlcIDsKK+WbveW6q+WCteaoqSA+IGtva2tvc2Fpa2VuXCA7Civlo7DluK/mqKHlhpkgPiBzZWl0YWltb3NoYVwgOwor5pyA5aSn6ZmQ5bqmID4gc2FpZGFpZ2VuZG9cIDsKK+WFq+WIhumfs+espiA+IGhhY2hpYnVvbnB1XCA7Civku67mg7PnqbrplpMgPiBrYXNvdWt1dWthblwgOwor5bmz5oiQ5pmC5LujID4gaGVpc2VpamlkYWlcIDsKK+WIqeebiuekvuS8miA+IHJpZWtpc2hha2FpXCA7Civlrrbluq3oqKrllY8gPiBrYXRlaWhvdW1vblwgOwor6JaE5Yip5aSa5aOyID4gaGFrdXJpdGFiYWlcIDsKK+awkeS4u+S4u+e+qSA+IG1pbnNodXNodWdpXCA7CivlpbPmgKflkI3oqZ4gPiBqb3NlaW1laXNoaVwgOwor5oSb5oaO5L215a2YID4gYWl6b3VoZWlzb25cIDsKK+WPjeWwhOS9nOeUqCA+IGhhbnNoYXNheW91XCA7CivmnInkuovnq4vms5UgPiB5dXVqaXJpcHBvdVwgOwor55m65aOw5Zmo5a6YID4gaGFzc2Vpa2lrYW5cIDsKK+WpmuekvOiho+ijhSA+IGtvbnJlaWlzaG91XCA7CivkuK3lpK7nqoHnoLQgPiBjaHV1b3V0b3BwYVwgOwor5LiJ6aCt5pS/5rK7ID4gc2FudG91c2VpamlcIDsKK+WNsemZuuWcsOW4ryA+IGtpa2VuY2hpdGFpXCA7CivljJblrabkvZznlKggPiBrYWdha3VzYXlvdVwgOwor54Sh6ZaT5Zyw542EID4gbXVnZW5qaWdva3VcIDsKK+W+gOW+qeWIh+espiA+IG91ZnVrdWtpcHB1XCA7CivlrZjlnKjnkIbnlLEgPiBzb256YWlyaXl1dVwgOwor6Z2e56S+5Lqk55qEID4gaGlqYWtvdXRla2lcIDsKK+WwgeW7uuWItuW6piA+IGhvdWtlbnNlaWRvXCA7CivkurrouqvkuovmlYUgPiBqaW5zaGluamlrb1wgOwor5YWs6ZaL5o2c5p+7ID4ga291a2Fpc291c2FcIDsKK+aIkeeUsOW8leawtCA+IGdhZGVuJydpbnN1aVwgOwor5YuV5L2c6KiY6YyyID4gZG91c2FraXJva3VcIDsKK+aIkOWxpOeBq+WxsSA+IHNlaXNvdWthemFuXCA7CivliKnnm4rphY3lvZMgPiByaWVraWhhaXRvdVwgOwor5LiA5omA5oe45ZG9ID4gaXNzaG9rZW5tZWlcIDsKK+a6kOazieiqsueojiA+IGdlbnNlbmthemVpXCA7CivmlL/msrvntZDnpL4gPiBzZWlqaWtlc3NoYVwgOwor6aiO6aas5rCR5pePID4ga2liYW1pbnpva3VcIDsKK+malOS4lumBuuS8nSA+IGtha3VzZWlpZGVuXCA7Civlj6TpgZPlhbflsYsgPiBmdXJ1ZG91Z3V5YVwgOwor5ZC55aWP5qW95ZmoID4gc3Vpc291Z2Fra2lcIDsKK+apn+mKg+aOg+WwhCA+IGtpanV1c291c2hhXCA7CivmrablrrblsYvmlbcgPiBidWtleWFzaGlraVwgOwor552h55yg5pmC6ZaTID4gc3VpbWluamlrYW5cIDsKK+eEoeiomOWQjeagqiA+IG11a2ltZWlrYWJ1XCA7Civkuovli5nnt4/plbcgPiBqaW11c291Y2hvdVwgOwor5Li75rK75Yq56IO9ID4gc2h1amlrb3Vub3VcIDsKK+Wkqea0peW+oeelliA+IGFtYXRzdW1pb3lhXCA7CivmsJfosaHooZvmmJ8gPiBraXNob3VlaXNlaVwgOwor5pyJ5Yq55pyf6ZmQID4geXV1a291a2lnZW5cIDsKK+i+suWltOino+aUviA+IG5vdWRva2FpaG91XCA7Civlv4Poh5Ppurvnl7ogPiBzaGluem91bWFoaVwgOwor6YWU55Sf5aSi5q27ID4gc3Vpc2VpbXVzaGlcIDsKK+acieWKueacn+mWkyA+IHl1dWtvdWtpZ2VuXCA7CivnhKHms5XlnLDluK8gPiBtdWhvdWNoaXRhaVwgOwor6KGX6aCt5Yuf6YeRID4gZ2FpdG91Ym9raW5cIDsKK+iNkuWUkOeEoeeovSA+IGtvdXRvdW11a2VpXCA7CivmoITppIrkuI3otrMgPiBlaXlvdWZ1c29rdVwgOwor5ZCN6KqJ5biC5rCRID4gbWVpeW9zaGltaW5cIDsKK+i7jeS6i+WQjOebnyA+IGd1bmppZG91bWVpXCA7CivmnInlirnkvZznlKggPiB5dXVrb3VzYXlvdVwgOwor5YWI6YGj6YOo6ZqKID4gc2Vua2VuYnV0YWlcIDsKK+WYieiogOWWhOihjCA+IGthZ2VuemVua291XCA7CivlkIjlkIzkvJrorbAgPiBnb3Vkb3VrYWlnaVwgOwor6LW35q275Zue55SfID4ga2lzaGlrYWlzZWlcIDsKK+mAj+imlueUu+azlSA+IHRvdXNoaWdhaG91XCA7CivnhKHpiq3ml4XooYwgPiBtdXNlbnJ5b2tvdVwgOwor5L+d5a6J6Kit5YKZID4gaG9hbnNldHN1YmlcIDsKK+WGhemDqOmXmOS6iSA+IG5haWJ1dG91c291XCA7CivkuI3mraPono3os4cgPiBmdXNlaXl1dXNoaVwgOwor5ryi6Iux6L6e5YW4ID4ga2FuJydlaWppdGVuXCA7CivpoJjlnJ/kv53lhaggPiByeW91ZG9ob3plblwgOwor54Sh5LqL5oGv54G9ID4gYnVqaXNva3VzYWlcIDsKK+aMh+WQjeaJi+mFjSA+IHNoaW1laXRlaGFpXCA7CivpgYropqfpo5vooYwgPiB5dXVyYW5oaWtvdVwgOwor5Y+X6aiT5Zyw542EID4ganVrZW5qaWdva3VcIDsKK+itpuWCmeW8t+WMliA+IGtlaWJpa3lvdWthXCA7Civlv4PnkIbkuLvnvqkgPiBzaGlucmlzaHVnaVwgOwor6Zui5ama6Ki06KifID4gcmlrb25zb3Nob3VcIDsKK+mfs+iok+e0ouW8lSA+IG9ua3Vuc2FrdWluXCA7CivljbHpmbrlm6DlrZAgPiBraWtlbicnaW5zaGlcIDsKK+i2hemBjuWLpOWLmSA+IGNob3VrYWtpbm11XCA7CivpgLLmrankuLvnvqkgPiBzaGlucG9zaHVnaVwgOwor5L+d5YWo5Lya56S+ID4gaG96ZW5rYWlzaGFcIDsKK+iHquW3see0ueS7iyA+IGppa29zaG91a2FpXCA7CivkurrpgZPmlK/mj7QgPiBqaW5kb3VzaGllblwgOwor5biM5bCR5L6h5YCkID4ga2lzaG91a2FjaGlcIDsKK+WppuS6uuenkeWtpiA+IGZ1amlua2FnYWt1XCA7CivmlK/mj7Tlm6PkvZMgPiBzaGllbmRhbnRhaVwgOwor5a6H5a6Z56m66ZaTID4gdWNodXVrdXVrYW5cIDsKK+WMlueyp+eFieeTpiA+IGtlc2hvdXJlbmdhXCA7Civml6nmnJ/nmbroposgPiBzb3VraWhha2tlblwgOwor6Ieq54S25rK755mSID4gc2hpemVuY2hpeXVcIDsKK+S4jeWPr+efpeeahCA+IGZ1a2FjaGl0ZWtpXCA7CivoqLToqJ/osrvnlKggPiBzb3Nob3VoaXlvdVwgOwor54G95a6z5L+d6Zm6ID4gc2FpZ2FpaG9rZW5cIDsKK+Wkp+WZqOaZqeaIkCA+IHRhaWtpYmFuc2VpXCA7CivmlbDnj6DkuIDpgKMgPiBqdXp1aWNoaXJlblwgOwor5paH5piO6ZaL5YyWID4gYnVubWVpa2Fpa2FcIDsKK+WPjeWLleS4u+e+qSA+IGhhbmRvdXNodWdpXCA7CivmlL/lupzpq5jlrpggPiBzZWlmdWtvdWthblwgOwor5Lqs6YO95bqc6K2mID4ga3lvdXRvZnVrZWlcIDsKK+WLpOeOi+aUmOWktyA+IGtpbicnbm91am91aVwgOwor56m65oy66YOo6ZqKID4ga3V1dGVpYnV0YWlcIDsKK+WkmuWjq+a4iOa4iCA+IHRhc2hpc2Vpc2VpXCA7CivkuI3lmajnlKjogIUgPiBidWtpeW91bW9ub1wgOwor5YW156uZ5Z+65ZywID4gaGVpdGFua2ljaGlcIDsKK+acieeQhumWouaVsCA+IHl1dXJpa2Fuc3V1XCA7CivkvY7lvorotqPlkbMgPiB0ZWlrYWlzaHVtaVwgOwor5Lq65bel6aCt6ISzID4gamlua291enVub3VcIDsKK+WNgeWFremfs+espiA+IGp1dXJva3VvbnB1XCA7CivlpYfmg7PlpKnlpJYgPiBraXNvdXRlbmdhaVwgOwor5YaF5a656KaL5pysID4gbmFpeW91bWlob25cIDsKK+aWmeeQhumBk+WFtyA+IHJ5b3VyaWRvdWd1XCA7CivlpKflnI/oiKrot68gPiB0YWlrZW5rb3Vyb1wgOwor5rqW5YKZ566h5Yi2ID4ganVuYmlrYW5zZWlcIDsKK+S4u+iEs+S8muitsCA+IHNodW5vdWthaWdpXCA7CivpmaPpoK3mjIfmj64gPiBqaW50b3VzaGlraVwgOwor6IeT5Zmo56e75qSNID4gem91a2lpc2hva3VcIDsKK+WfuuacrOamguW/tSA+IGtpaG9uZ2FpbmVuXCA7CivkvJrorbDml6XnqIsgPiBrYWlnaW5pdHRlaVwgOwor5YWs5a6a5Zyw5L6hID4ga291dGVpY2hpa2FcIDsKK+WfuuekjueglOeptiA+IGtpc29rZW5reXV1XCA7CivnkrDlooPmsZrmn5MgPiBrYW5reW91b3NlblwgOwor55aR5b+D5pqX6ay8ID4gZ2lzaGluJydhbmtpXCA7Civnt4/nkIblpKfoh6MgPiBzb3VyaWRhaWppblwgOwor6Ieq5bex5rqA6LazID4gamlrb21hbnpva3VcIDsKK+e1tuWvvuS4u+e+qSA+IHpldHRhaXNodWdpXCA7CivmraPlkbPlgKTmrrUgPiBzaG91bWluZWRhblwgOwor5YCL5Lq65pWZ5o6IID4ga29qaW5reW91anVcIDsKK+WwkeWjruawl+mLrSA+IHNob3Vzb3VraWVpXCA7CivmnbHkupzoq7jlm70gPiB0b3Vhc2hva29rdVwgOwor5ZaH5Y+t5rC05LuZID4gcmFwcGF6dWlzZW5cIDsKK+Wun+ihjOWPr+iDvSA+IGppa2tvdWthbm91XCA7CivkuovliY3pgYvli5UgPiBqaXplbicndW5kb3VcIDsKK+WkluadpeaCo+iAhSA+IGdhaXJhaWthbmphXCA7Civpgb/pm6PoqJPnt7QgPiBoaW5hbmt1bnJlblwgOwor6LKp5aOy6YOo6ZaAID4gaGFuYmFpYnVtb25cIDsKK+WKtOWDjemBi+WLlSA+IHJvdWRvdXVuZG91XCA7CivmupblgpnpioDooYwgPiBqdW5iaWdpbmtvdVwgOwor5bm557ea6YGT6LevID4ga2Fuc2VuZG91cm9cIDsKK+S4jemAj+aYjuaApyA+IGZ1dG91bWVpc2VpXCA7CivliqDlnKfmsLTngokgPiBrYWF0c3VzdWlyb1wgOwor5bm05pyf5aWJ5YWsID4gbmVua2lib3Vrb3VcIDsKK+ihqOmfs+aWh+WtlyA+IGh5b3Vvbm1vbmppXCA7CivmjIflkI3miZPogIUgPiBzaGltZWlkYXNoYVwgOwor57eP5Y+45Luk6YOoID4gc291c2hpcmVpYnVcIDsKK+S8nee1seS4u+e+qSA+IGRlbnRvdXNodWdpXCA7CivkuLvopoHpg73luIIgPiBzaHV5b3V0b3NoaVwgOwor5L2O5rip5q666I+MID4gdGVpb25zYWtraW5cIDsKK+Wkq+WppumWouS/giA+IGZ1dWZ1a2Fua2VpXCA7CivkvZzmpa3mmYLplpMgPiBzYWd5b3VqaWthblwgOwor6Z2e5bi45omL5q61ID4gaGlqb3VzaHVkYW5cIDsKK+WwguWItuaUv+ayuyA+IHNlbnNlaXNlaWppXCA7CivmmKDnlLvnm6PnnaMgPiBlaWdha2FudG9rdVwgOwor5r+D5reh55S75YOPID4gbm91dGFuZ2F6b3VcIDsKK+eBr+eBq+euoeWItiA+IHRvdWtha2Fuc2VpXCA7Civph43opoHkuovpoIUgPiBqdXV5b3VqaWtvdVwgOwor6Z2e5bi45ZG86ZuGID4gaGlqb3Vrb3NodXVcIDsKK+eri+WAmeijnOiAhSA+IHJpa2tvdWhvc2hhXCA7CivmtYTljJboo4Xnva4gPiBqb3VrYXNvdWNoaVwgOwor5b6h55Sf5oaO5qeYID4gb2FpbmlrdXNhbWFcIDsKK+S6uuWToea3mOaxsCA+IGppbicnaW50b3V0YVwgOwor5Lqk6YCa5LqL5pWFID4ga291dHN1dWppa29cIDsKK+Wbm+i8qumnhuWLlSA+IHlvbnJpbmt1ZG91XCA7Civku6PnkIblhazkvb8gPiBkYWlyaWtvdXNoaVwgOwor5aSW5YuZ5aSn6IejID4gZ2FpbXVkYWlqaW5cIDsKK+mHjuaIpuegsuWFtSA+IHlhc2VuaG91aGVpXCA7CivlnLDlkI3ovp7lhbggPiBjaGltZWlqaXRlblwgOwor5LiN5YuV55Sj5bGLID4gZnVkb3VzYW4nJ3lhXCA7CivkvZPmhJ/muKnluqYgPiB0YWlrYW4nJ29uZG9cIDsKK+ims+WFiemDveW4giA+IGthbmtvdXRvc2hpXCA7CivlkIzmgKfmhJvogIUgPiBkb3VzZWlhaXNoYVwgOwor6YOo6ZqK5pKk6YCAID4gYnV0YWl0ZXR0YWlcIDsKK+WNlOitsOS8muWToSA+IGt5b3VnaWthaWluXCA7CivllZPokpnpgYvli5UgPiBrZWltb3V1bmRvdVwgOwor5LqA55Sy5qih5qeYID4ga2lra291bW95b3VcIDsKK+ihm+eUn+eKtuaFiyA+IGVpc2Vpam91dGFpXCA7Civpjpblm73kuLvnvqkgPiBzYWtva3VzaHVnaVwgOwor5Zmo55So6LKn5LmPID4ga2l5b3ViaW5ib3VcIDsKK+ecvOeyvueWsuWKtCA+IGdhbnNlaWhpcm91XCA7CivlrqPkvJ3mqZ/plqIgPiBzZW5kZW5raWthblwgOwor5L2V5pmC5L2V5pmCID4gaXRzdW5hbmRva2lcIDsKK+awkeaoqeS4u+e+qSA+IG1pbmtlbnNodWdpXCA7CivlubTmrKHnt4/kvJogPiBuZW5qaXNvdWthaVwgOwor5rip5Y+k55+l5pawID4gb25rb2NoaXNoaW5cIDsKK+eEoeWEn+S6pOS7mCA+IG11c2hvdWtvdWZ1XCA7Civnn63mnJ/miYvlvaIgPiB0YW5raXRlZ2F0YVwgOwor5YaF5YuZ5aSn6IejID4gbmFpbXVkYWlqaW5cIDsKK+S4gOS4luS4gOS7oyA+IGlzc2VpY2hpZGFpXCA7CivkuovpoIXntKLlvJUgPiBqaWtvdXNha3VpblwgOwor5pS+5bCE57ea56eRID4gaG91c2hhc2Vua2FcIDsKK+eah+WkquWtkOWmgyA+IGtvdXRhaXNoaWhpXCA7CivlppbmgKrlpInljJYgPiB5b3VrYWloZW5nZVwgOwor5aSJ5b2i6YOo6ZaAID4gaGVua2VpYnVtb25cIDsKK+mHjuaIpueXhemZoiA+IHlhc2VuYnlvdWluXCA7CivmiKbngb3lnLDljLogPiBzZW5zYWljaGlrdVwgOwor54m55YuZ5qmf6ZaiID4gdG9rdW11a2lrYW5cIDsKK+egguezluWkp+aguSA+IHNhdG91ZGFpa29uXCA7CivljYrliqDlt6Xlk4EgPiBoYW5rYWtvdWhpblwgOwor5LqM562J5YiG57eaID4gbml0b3VidW5zZW5cIDsKK+aOiOalreaZgumWkyA+IGp1Z3lvdWppa2FuXCA7CivlpKnnpZ7lnLDnpYcgPiB0ZW5qaW5jaGlnaVwgOwor6L+95Yqg5LqI566XID4gdHN1aWtheW9zYW5cIDsKK+mdnuWQiOeQhueahCA+IGhpZ291cml0ZWtpXCA7CivlirTovrLmlL/lupwgPiByb3Vub3VzZWlmdVwgOwor5LiL5oSP5LiK6YGUID4ga2Fpam91dGF0c3VcIDsKK+S5l+i7iuaLkuWQpiA+IGpvdXNoYWt5b2hpXCA7CivmsLTmtJfkvr/miYAgPiBzdWlzZW5iZW5qb1wgOwor5Y+O57SN5a625YW3ID4gc2h1dW5vdWthZ3VcIDsKK+acqumWi+WivuWcsCA+IG1pa2Fpa29uY2hpXCA7CivmraPlvZPpmLLooZsgPiBzZWl0b3Vib3VlaVwgOwor5a2m56eR6Kmm6aiTID4gZ2Fra2FzaGlrZW5cIDsKK+a9nOawtOavjeiJpiA+IHNlbnN1aWJva2FuXCA7Civkvb/nlKjkvqHlgKQgPiBzaGl5b3VrYWNoaVwgOwor5a6Y5bCK5rCR5Y2RID4ga2Fuc29ubWlucGlcIDsKK+aZrumBjeaWh+azlSA+IGZ1aGVuYnVucG91XCA7CivpgY7libDkurrlj6MgPiBrYWpvdWppbmtvdVwgOwor5Ye65YWI5qmf6ZaiID4gZGVzYWtpa2lrYW5cIDsKK+Wuo+S8neWKueaenCA+IHNlbmRlbmtvdWthXCA7CivmmYLjgIXliLvjgIUgPiBqaWppa29ra29rdVwgOwor6L+R5Ly86KiI566XID4ga2luamlrZWlzYW5cIDsKK+itt+aGsumBi+WLlSA+IGdva2VuJyd1bmRvdVwgOwor5Y6f5Zug57WQ5p6cID4gZ2VuJydpbmtla2thXCA7Civlj4vou43pg6jpmoogPiB5dXVndW5idXRhaVwgOwor54Sh5bC95Lya56S+ID4gbXVqaW5nYWlzaGFcIDsKK+WPpOS7iuadseilvyA+IGtva29udG91emFpXCA7CivnnIvorbflqabplbcgPiBrYW5nb2Z1Y2hvdVwgOwor5oKy5oak5oW35oWoID4gaGlmdW5rb3VnYWlcIDsKK+WPpOS7o+aWh+aYjiA+IGtvZGFpYnVubWVpXCA7CivnhKHnlKPmlL/lhZogPiBtdXNhbnNlaXRvdVwgOwor6YG45oyZ5rqW5YKZID4gc2Vua3lvanVuYmlcIDsKK+aEj+itmOS4jeaYjiA+IGlzaGlraWZ1bWVpXCA7CivntYTlkIjkuLvnvqkgPiBrdW1pYWlzaHVnaVwgOwor5YCL5L2T55m655SfID4ga290YWloYXNzZWlcIDsKK+Wbm+WIhumfs+espiA+IHNoaWJ1bicnb25wdVwgOwor5L2/5b6S5pu457ChID4gc2hpdG9zaG9rYW5cIDsKK+WEquaflOS4jeaWrSA+IHl1dWp1dWZ1ZGFuXCA7CivnhY7ppIXokrLlm6MgPiBzZW5iZWlidXRvblwgOwor5LqI5a6a6Kq/5ZKMID4geW90ZWljaG91d2FcIDsKK+WFiOelluS8neadpSA+IHNlbnpvZGVucmFpXCA7Civkuovmpa3pg6jliLYgPiBqaWd5b3VidXNlaVwgOwor6Ieo5pmC5YiX6LuKID4gcmluamlyZXNzaGFcIDsKK+Wumuacn+ippumokyA+IHRlaWtpc2hpa2VuXCA7Civnt4/lkIjoqrLnqI4gPiBzb3Vnb3VrYXplaVwgOwor6YGg6ZqU6Kyb576pID4gZW5rYWt1a291Z2lcIDsKK+a1t+W6leayueeUsCA+IGthaXRlaXl1ZGVuXCA7CivnnJ/kuIDmloflrZcgPiBtYWljaGltb25qaVwgOwor6Zu76Kmx6Kq/5p+7ID4gZGVud2FjaG91c2FcIDsKK+aKgOihk+aPtOWKqSA+IGdpanV0c3VlbmpvXCA7CivlgY/lkJHlm57ot68gPiBoZW5rb3VrYWlyb1wgOwor5LqI5a6a57SN56iOID4geW90ZWlub3V6ZWlcIDsKK+eah+WQjumZm+S4iyA+IGtvdWdvdWhlaWthXCA7CivpgKPpgqbliLbluqYgPiByZW5wb3VzZWlkb1wgOwor6Zu75rCX6Zu75a2QID4gZGVua2lkZW5zaGlcIDsKK+S7o+ihjOapn+mWoiA+IGRhaWtvdWtpa2FuXCA7CivnlrLlirTlm7DmhoogPiBoaXJvdWtvbnBhaVwgOwor55uX6Zuj5L+d6Zm6ID4gdG91bmFuaG9rZW5cIDsKK+e0lOecn+eEoeWeoiA+IGp1bnNoaW5tdWt1XCA7Civms5Xli5nlpKfoh6MgPiBob3VtdWRhaWppblwgOwor5YiR5LqL5Yem5YiGID4ga2VpamlzaG9idW5cIDsKK+mnkOi7iumBleWPjSA+IGNodXVzaGFpaGFuXCA7CivmmYLmqZ/lsJrml6kgPiBqaWtpc2hvdXNvdVwgOwor5bm06YeR5Z+66YeRID4gbmVua2lua2lraW5cIDsKK+mBqeazleihjOeCuiA+IHRla2lob3Vrb3VpXCA7CivnianopovpgYrlsbEgPiBtb25vbWl5dXNhblwgOwor5b6X5oSP5rqA6Z2iID4gdG9rdWltYW5tZW5cIDsKK+aZguW3ruWHuuWLpCA+IGppc2FzaHVra2luXCA7CivmlL/msrvllY/poYwgPiBzZWlqaW1vbmRhaVwgOwor57W25a++5pWs6KqeID4gemV0dGFpa2VpZ29cIDsKK+mNteebpOalveWZqCA+IGtlbmJhbmdha2tpXCA7CivoqLToqJ/kuovku7YgPiBzb3Nob3VqaWtlblwgOwor5oSP5ZGz5b255YmyID4gaW1peWFrdXdhcmlcIDsKK+S+oeagvOWuieWumiA+IGtha2FrdWFudGVpXCA7Civku4rkuIrpmZvkuIsgPiBraW5qb3VoZWlrYVwgOwor6Zu75rCX57O757WxID4gZGVua2lrZWl0b3VcIDsKK+WFjOaPm+mKgOihjCA+IGRha2FuZ2lua291XCA7Civnmb7np5HkuovlhbggPiBoeWFra2FqaXRlblwgOwor5YWo5Lya5LiA6Ie0ID4gemVua2FpaXRjaGlcIDsKK+m6u+iWrOaCo+iAhSA+IG1heWFrdWthbmphXCA7Civlv4PmqZ/kuIDou6IgPiBzaGlua2lpdHRlblwgOwor54Sh5ZCN5oim5aOrID4gbXVtZWlzZW5zaGlcIDsKK+WUr+S4gOeEoeS6jCA+IHl1aWl0c3VtdW5pXCA7CivosqHmlL/lronlrpogPiB6YWlzZWlhbnRlaVwgOwor55yL6K235a2m5qChID4ga2FuZ29nYWtrb3VcIDsKK+WIhumhnuWfuua6liA+IGJ1bnJ1aWtpanVuXCA7Civmlofmm7jlgb3pgKAgPiBidW5zaG9naXpvdVwgOwor5a2k6LuN5aWu6ZeYID4ga29ndW5mdW50b3VcIDsKK+aVsOasoeaXheWIuCA+IHN1dWppcnlva2VuXCA7CivlkIjmiJDnuYrntq0gPiBnb3VzZWlzZW4nJ2lcIDsKK+iytOaXj+aUv+ayuyA+IGtpem9rdXNlaWppXCA7CivljZrmhJvkuLvnvqkgPiBoYWt1YWlzaHVnaVwgOwor5LiA5paJ5qSc5oyZID4gaXNzZWlrZW5reW9cIDsKK+S9jua4qei8uOmAgSA+IHRlaW9uJyd5dXNvdVwgOwor6aKo5YWJ5piO5aqaID4gZnV1a291bWVpYmlcIDsKK+W+jOmDqOW6p+W4rSA+IGtvdWJ1emFzZWtpXCA7CivlgIvkurrmipXos4cgPiBrb2ppbnRvdXNoaVwgOwor5L+d6Zm65Lya56S+ID4gaG9rZW5nYWlzaGFcIDsKK+ehq+WMluawtOe0oCA+IHJ5dXVrYXN1aXNvXCA7Civml6XmnKzliJfls7YgPiBuaWhvbnJldHRvdVwgOwor5oim5pmC5YWs5YK1ID4gc2Vuamlrb3VzYWlcIDsKK+a1t+WToee1hOWQiCA+IGthaWlua3VtaWFpXCA7Civkv67ovp7nlpHllY8gPiBzaHV1amlnaW1vblwgOwor5rOV5a6a6LKo5bmjID4gaG91dGVpa2FoZWlcIDsKK+S9k+WGheWPl+eyviA+IHRhaW5haWp1c2VpXCA7Civmpb3oprPkuLvnvqkgPiByYWtrYW5zaHVnaVwgOwor5YWl6Zmi5oKj6ICFID4gbnl1dWlua2FuamFcIDsKK+mWoumAo+S6i+mghSA+IGthbnJlbmppa291XCA7Civljp/kvqHoqIjnrpcgPiBnZW5rYWtlaXNhblwgOwor6Zu75a2Q5Zue6LevID4gZGVuc2hpa2Fpcm9cIDsKK+mHjeeCueS4u+e+qSA+IGp1dXRlbnNodWdpXCA7CivkvqHpm7vlrZDluK8gPiBrYWRlbnNoaXRhaVwgOwor5pyJ5Yq56ZyA6KaBID4geXV1a291anV5b3VcIDsKK+S6i+alreW5tOW6piA+IGppZ3lvdW5lbmRvXCA7Civnm7jlj43lrprnkIYgPiBzb3VoYW50ZWlyaVwgOwor5YWt5YiG5YSA5bqnID4gcm9rdWJ1bmdpemFcIDsKK+WuieWumueKtuaFiyA+IGFudGVpam91dGFpXCA7CivmsJHkuLvmlL/msrsgPiBtaW5zaHVzZWlqaVwgOwor5YyW5a2m57mK57atID4ga2FnYWt1c2VuJydpXCA7Civntbblr77pn7PmhJ8gPiB6ZXR0YWlvbmthblwgOwor6Ieq54S256C05aOKID4gc2hpemVuaGFrYWlcIDsKK+WgsemBk+apn+mWoiA+IGhvdWRvdWtpa2FuXCA7CivmjZXomZzkuqTmj5sgPiBob3J5b2tvdWthblwgOwor5L6h5YCk5Yik5patID4ga2FjaGloYW5kYW5cIDsKK+aJi+e3tOaJi+euoSA+IHRlcmVudGVrdWRhXCA7CivlmajmorDkvZPmk40gPiBraWthaXRhaXNvdVwgOwor6aSK6ICB5L+d6Zm6ID4geW91cm91aG9rZW5cIDsKK+S4jeW9k+ihqOekuiA+IGZ1dG91aHlvdWppXCA7CivlronlhajpgYvou6IgPiBhbnplbicndW50ZW5cIDsKK+S6pOmam+evhOWbsiA+IGtvdXNhaWhhbicnaVwgOwor5b+c55So56eR5a2mID4gb3V5b3VrYWdha3VcIDsKK+S4jeaVtOWQiOS6uiA+IGZ1c2VpZ291amluXCA7CivljZjlhYPliLbluqYgPiB0YW5nZW5zZWlkb1wgOwor5LiA5q2p5YmN6YCyID4gaXBwb3plbnNoaW5cIDsKK+WbveeOi+mZm+S4iyA+IGtva3VvdWhlaWthXCA7CivmlL7pgIHooZvmmJ8gPiBob3Vzb3VlaXNlaVwgOwor5a+C5YWJ5rWE5ZyfID4gamFra291am91ZG9cIDsKK+W+jOeUn+Wkp+S6iyA+IGdvc2hvdWRhaWppXCA7CivkuInmsJHkuLvnvqkgPiBzYW5taW5zaHVnaVwgOwor5rCX566h5YiH6ZaLID4ga2lrYW5zZWtrYWlcIDsKK+WCsuWyuOS4jemBnCA+IGdvdWdhbmZ1c29uXCA7CivlrrbniLbplbfliLYgPiBrYWZ1Y2hvdXNlaVwgOwor5pqX6buS5pif6ZuyID4gYW5rb2t1c2VpdW5cIDsKK+i/keS7o+WbveWutiA+IGtpbmRhaWtva2thXCA7CivliY3pgJTmnInmnJsgPiB6ZW50b3l1dWJvdVwgOwor6Z+z5qW955CG6KuWID4gb25nYWt1cmlyb25cIDsKK+WnlOiol+iyqeWjsiA+IGl0YWt1aGFuYmFpXCA7CivkuInlr5Llm5vmuKkgPiBzYW5rYW5zaGlvblwgOwor6LKn5LmP5omA5bivID4gYmluYm91am90YWlcIDsKK+W+oeS8veiNieWtkCA+IG90b2dpem91c2hpXCA7CivnpZ7lpYjlt53nnIwgPiBrYW5hZ2F3YWtlblwgOwor6Ly/6KuW6Kq/5p+7ID4geW9yb25jaG91c2FcIDsKK+mbu+awl+ijhee9riA+IGRlbmtpc291Y2hpXCA7CivlnLDmlrnorbDkvJogPiBjaGlob3VnaWthaVwgOwor6KOF55Sy6YOo6ZqKID4gc291a291YnV0YWlcIDsKK+S4jeWPr+WFpeaApyA+IGZ1a2FueXV1c2VpXCA7CivljZfkuqzmnKjntr8gPiBuYW5raW5tb21lblwgOwor5Y2w6LGh5Li7576pID4gaW5zaG91c2h1Z2lcIDsKK+WkmuWjq+a4iOOAhSA+IHRhc2hpc2Vpc2VpXCA7CivkuIDlvLXkuIDlvJsgPiBpdGNob3Vpc3NoaVwgOwor5Yy66ZaT5YiX6LuKID4ga3VrYW5yZXNzaGFcIDsKK+ebuOaAneebuOaEmyA+IHNvdXNoaXNvdWFpXCA7CivoiKrnqbrln7rlnLAgPiBrb3VrdXVraWNoaVwgOwor55uj5p+76KiY6YyyID4ga2Fuc2FraXJva3VcIDsKK+aKgOihk+enu+i7oiA+IGdpanV0c3VpdGVuXCA7CivnlKPlhZDliLbpmZAgPiBzYW5qaXNlaWdlblwgOwor6aO95ZKM54q25oWLID4gaG91d2Fqb3V0YWlcIDsKK+efpeiDveaknOafuyA+IGNoaW5vdWtlbnNhXCA7CivlraTlvbHmgoTnhLYgPiBrb2Vpc2hvdXplblwgOwor5LqU56iu56u25oqAID4gZ29zaHVreW91Z2lcIDsKK+Wbo+S9k+S/nemZuiA+IGRhbnRhaWhva2VuXCA7Civlp4nlprnpg73luIIgPiBzaGltYWl0b3NoaVwgOwor5LiN6YCa566H5omAID4gZnV0c3V1a2FzaG9cIDsKK+egtOmCqumhleatoyA+IGhhamFrZW5zaG91XCA7CivmlL/msrvlm6PkvZMgPiBzZWlqaWRhbnRhaVwgOwor5LiA5Zac5LiA5oaCID4gaWtraWljaGl5dXVcIDsKK+a6luWCmeWRveS7pCA+IGp1bmJpbWVpcmVpXCA7Civlj5fpqJPnp5Hnm64gPiBqdWtlbmthbW9rdVwgOwor5pyo566h5qW95ZmoID4gbW9ra2FuZ2Fra2lcIDsKK+S4remrmOmfs+mDqCA+IGNodXVrb3VvbmJ1XCA7Civlj4vmhJvntZDlqZogPiB5dXVhaWtla2tvblwgOwor5rW36LuN5Z+65ZywID4ga2FpZ3Vua2ljaGlcIDsKK+mbu+WtkOe0oOWtkCA+IGRlbnNoaXNvc2hpXCA7CivmhJvlm73pgYvli5UgPiBhaWtva3V1bmRvdVwgOwor5Lq65paH5Zyw55CGID4gamlubW9uY2hpcmlcIDsKK+WKtOWDjeS6ieitsCA+IHJvdWRvdXNvdWdpXCA7Civmg4XloLHlh6bnkIYgPiBqb3Vob3VzaG9yaVwgOwor5Y+v5aSJ6LOH5pysID4ga2FoZW5zaGlob25cIDsKK+eCuuabv+W3ruebiiA+IGthd2FzZXNhZWtpXCA7Civoqpjmi5Dkuovku7YgPiB5dXVrYWlqaWtlblwgOwor5LiJ5aSn6YO95biCID4gc2FuZGFpdG9zaGlcIDsKK+aJgOimgeaZgumWkyA+IHNob3lvdWppa2FuXCA7CivlpbPmqKnpgYvli5UgPiBqb2tlbicndW5kb3VcIDsKK+WIhuaVo+WHpueQhiA+IGJ1bnNhbnNob3JpXCA7CivotbDooYzlj6/og70gPiBzb3Vrb3VrYW5vdVwgOwor5rWB6KiA6aOb6KqeID4gcnl1dWdlbmhpZ29cIDsKK+S4gOaWsOe0gOWFgyA+IGlzc2hpbmtpZ2VuXCA7CivlvpLmiYvkvZPmk40gPiB0b3NodXRhaXNvdVwgOwor5bCB5bu65Li7576pID4gaG91a2Vuc2h1Z2lcIDsKK+WPl+mok+aIpuS6iSA+IGp1a2Vuc2Vuc291XCA7Civlh7rpm7LlpKfnpL4gPiBpenVtb3RhaXNoYVwgOwor5qip6ZaA5Yui5a62ID4ga2VubW9uc2Vpa2FcIDsKK+eEoee3muaTjee4piA+IG11c2Vuc291anV1XCA7CivlgJ/lrrbkuonorbAgPiBzaGFra2Fzb3VnaVwgOwor5a6H5a6Z56eR5a2mID4gdWNodXVrYWdha3VcIDsKK+WPpOWFuOiKuOiDvSA+IGtvdGVuZ2Vpbm91XCA7Civosaroj6/ntaLniJsgPiBnb3VrYWtlbnJhblwgOwor5ryi6Iux5a2X5YW4ID4ga2FuJydlaWppdGVuXCA7CivlqabkurrpgYvli5UgPiBmdWppbicndW5kb3VcIDsKK+S4jeWLleaYjueOiyA+IGZ1ZG91bXlvdW91XCA7CivkvZPlpJblj5fnsr4gPiB0YWlnYWlqdXNlaVwgOwor5Yuk5YuZ5bm06ZmQID4ga2lubXVuZW5nZW5cIDsKK+a6gOWgtOS4gOiHtCA+IG1hbmpvdWl0Y2hpXCA7CivliY3kuJbnlJ/lrZggPiB6ZW5zZXNlaXpvblwgOwor5Lya6KiI5bm05bqmID4ga2Fpa2VpbmVuZG9cIDsKK+S4h+iRieS7ruWQjSA+IG1hbicneW91Z2FuYVwgOwor5YKN6IG06ZqP5oSPID4gYm91Y2hvdXp1aWlcIDsKK+e1tuWvvuWkmuaVsCA+IHpldHRhaXRhc3V1XCA7CivntIXnmb3oqablkIggPiBrb3VoYWt1amlhaVwgOwor5Lya6KiI55uj5p+7ID4ga2Fpa2Vpa2Fuc2FcIDsKK+WFq+e0mOS4gOWuhyA+IGhha2tvdWljaGl1XCA7CivoiJ7lj7Doo4Xnva4gPiBidXRhaXNvdWNoaVwgOwor5LqL5YuZ6ZW35a6YID4gamltdWNob3VrYW5cIDsKK+S4gOiIrOekvuS8miA+IGlwcGFuc2hha2FpXCA7Civml6XluJ3mmYLku6MgPiBuaXR0ZWlqaWRhaVwgOwor55m75Z2C6LuK57eaID4gdG9oYW5zaGFzZW5cIDsKK+S4lueVjOacgOWkpyA+IHNla2Fpc2FpZGFpXCA7CivmjIflsI7ljp/nkIYgPiBzaGlkb3VnZW5yaVwgOwor6YCg5qyh6aGb5rKbID4gem91aml0ZW5wYWlcIDsKK+iIquepuueuoeeQhiA+IGtvdWt1dWthbnJpXCA7CivmhJ/mn5PntYzot68gPiBrYW5zZW5rZWlyb1wgOwor5LqM562J6LuN5pu5ID4gbml0b3VndW5zb3VcIDsKK+mYsueBq+Whl+aWmSA+IGJvdWthdG9yeW91XCA7Civoh6rnuIToh6rnuJsgPiBqaWpvdWppYmFrdVwgOwor6YCU5Lit5LiL6LuKID4gdG9jaHV1Z2VzaGFcIDsKK+eFjumkheW4g+WboyA+IHNlbmJlaWJ1dG9uXCA7CivnkrDlooPkv53orbcgPiBrYW5reW91aG9nb1wgOwor5ZiY55m66KaL5ZmoID4gdXNvaGFra2Vua2lcIDsKK+mdouS8muaZgumWkyA+IG1lbmthaWppa2FuXCA7Civph43mqZ/plqLpioMgPiBqdXVraWthbmp1dVwgOwor5rOV5qGI5a+p6K2wID4gaG91YW5zaGluZ2lcIDsKK+iHquWLleWItuW+oSA+IGppZG91c2VpZ3lvXCA7CivlgIvkurrmjIflsI4gPiBrb2ppbnNoaWRvdVwgOwor6Ieq54S255m654GrID4gc2hpemVuaGFra2FcIDsKK+S4u+WLmeWkp+iHoyA+IHNodW11ZGFpamluXCA7Civnn63mnJ/msbrmiKYgPiB0YW5raWtlc3NlblwgOwor6KiA6Kqe6YGL55SoID4gZ2VuZ291bicneW91XCA7Civnspfoo73mv6vpgKAgPiBzb3NlaXJhbnpvdVwgOwor5Y2x6Zm65oCd5oOzID4ga2lrZW5zaGlzb3VcIDsKK+epuuWfn+euoeeQhiA+IGt1dWlraWthbnJpXCA7CivlvqHmrr/lpbPkuK0gPiBnb3RlbmpvY2h1dVwgOwor6Zqj5L+d5LqL5qWtID4gcmlucG9qaWd5b3VcIDsKK+WQiOaEj+W/g+S4rSA+IGdvdWlzaGluanV1XCA7CivkuJbnlYzoqJjpjLIgPiBzZWthaWtpcm9rdVwgOwor5Z+65pys5p2h5Lu2ID4ga2lob25qb3VrZW5cIDsKK+i+suawkeS4gOaPhiA+IG5vdW1pbicnaWtraVwgOwor5YmN5Luj5pyq6IGeID4gemVuZGFpbWltb25cIDsKK+ikh+WQiOaxmuafkyA+IGZ1a3Vnb3Vvc2VuXCA7Civntbblr77pm7bluqYgPiB6ZXR0YWlyZWlkb1wgOwor5qeL5oiQ5Y+v6IO9ID4ga291c2Vpa2Fub3VcIDsKK+S4gOS6uuiInuWPsCA+IGhpdG9yaWJ1dGFpXCA7Civnmq7kuIvntYTnuZQgPiBoaWthc29zaGlraVwgOwor5Zyw5LiL6LOH5rqQID4gY2hpa2FzaGlnZW5cIDsKK+eZveWMluWAi+S9kyA+IGhha3VrYWtvdGFpXCA7Civpm7voqbHlm57nt5ogPiBkZW53YWthaXNlblwgOwor5LiN5q2j5ZKs5ZCIID4gZnVzZWlrb3Vnb3VcIDsKK+e+juWuueS9k+aTjSA+IGJpeW91dGFpc291XCA7CivljZTorbDpm6LlqZogPiBreW91Z2lyaWtvblwgOwor5rip5pqW5YmN57eaID4gb25kYW56ZW5zZW5cIDsKK+aWsOimj+S/neeuoSA+IHNoaW5raWhva2FuXCA7CivkuIDosqvnlarlj7cgPiBpa2thbmJhbmdvdVwgOwor54++6KGM5rOV6KaPID4gZ2Vua291aG91a2lcIDsKK+elluWbveW+qeW4sCA+IHNva29rdWZ1a2tpXCA7CivlkKvmsLTngq3ntKAgPiBnYW5zdWl0YW5zb1wgOwor5Yq05YON5pmC6ZaTID4gcm91ZG91amlrYW5cIDsKK+eCuuabv+ebuOWgtCA+IGthd2FzZXNvdWJhXCA7CivkuJbnlYzkuIDlkaggPiBzZWthaWlzc2h1dVwgOwor5Yy755mC5rOV5Lq6ID4gaXJ5b3Vob3VqaW5cIDsKK+m8k+iInua/gOWKsSA+IGtvYnVnZWtpcmVpXCA7CivmmYLmnJ/lsJrml6kgPiBqaWtpc2hvdXNvdVwgOwor57KS5bqm5YiG5biDID4gcnl1dWRvYnVucHVcIDsKK+aKleS4i+izh+acrCA+IHRvdWthc2hpaG9uXCA7CivnlKjmhI/lkajliLAgPiB5b3Vpc2h1dXRvdVwgOwor5YaF54eD5qmf6ZaiID4gbmFpbmVua2lrYW5cIDsKK+mYsuawtOWKoOW3pSA+IGJvdXN1aWtha291XCA7CivlgIvkurrmtojosrsgPiBrb2ppbnNob3VoaVwgOwor5Luu5oCn6L+R6KaWID4ga2FzZWlraW5zaGlcIDsKK+WwiueOi+aUmOWktyA+IHNvbicnbm91am91aVwgOwor56m65rCX5Lyd5p+TID4ga3V1a2lkZW5zZW5cIDsKK+W5vOW5tOaZguS7oyA+IHlvdW5lbmppZGFpXCA7CivnpL7kvJrlvqnluLAgPiBzaGFrYWlmdWtraVwgOwor6Zu75rCX6KO95ZOBID4gZGVua2lzZWloaW5cIDsKK+aZguaZguWIu+WIuyA+IGppamlrb2trb2t1XCA7CivkuIDosqvkvZzmpa0gPiBpa2thbnNhZ3lvdVwgOwor5rue5Zyo5pyf6ZaTID4gdGFpemFpa2lrYW5cIDsKK+eEoeW9ouiyoeeUoyA+IG11a2VpemFpc2FuXCA7CivnhKHmlq3ou6LovIkgPiBtdWRhbnRlbnNhaVwgOwor5Z2H6KGh5LqI566XID4ga2lua291eW9zYW5cIDsKK+S7mOW4r+adoeS7tiA+IGZ1dGFpam91a2VuXCA7Civou43kuovlt6XloLQgPiBndW5qaWtvdWpvdVwgOwor5pyJ5Yq55pWw5a2XID4geXV1a291c3V1amlcIDsKK+iHjeS4i+S4ueeUsCA+IHNlaWthdGFuZGVuXCA7CivoqabnlKjmnJ/plpMgPiBzaGl5b3VraWthblwgOwor5YyW5a2m5aSJ5YyWID4ga2FnYWt1aGVua2FcIDsKK+iHquWLlei7iueojiA+IGppZG91c2hhemVpXCA7CivoqIDoqp7pgZPmlq0gPiBnb25nb2RvdWRhblwgOwor5ouF5L+d54mp5qipID4gdGFucG9idWtrZW5cIDsKK+WWtualreaZgumWkyA+IGVpZ3lvdWppa2FuXCA7CivmhJvlprvlvIHlvZMgPiBhaXNhaWJlbnRvdVwgOwor576O55qE5auM5oKqID4gYml0ZWtpa2VuJydvXCA7CivkuInljYPkuJbnlYwgPiBzYW56ZW5zZWthaVwgOwor5aSa6YeN5pS+6YCBID4gdGFqdXVob3Vzb3VcIDsKK+S6jOmHjeWkluS6pCA+IG5panV1Z2Fpa291XCA7Civkuojlgpnlt6XkvZwgPiB5b2Jpa291c2FrdVwgOwor6IKx5o6b5qSF5a2QID4gaGlqaWtha2Vpc3VcIDsKK+efreazouaUvumAgSA+IHRhbnBhaG91c291XCA7CivpoqjlhYnntbbkvbMgPiBmdXVrb3V6ZWtrYVwgOwor5Li75oOF5Li7576pID4gc2h1am91c2h1Z2lcIDsKK+ihjOWLleS4u+e+qSA+IGtvdWRvdXNodWdpXCA7Civoh6rliIboh6rouqsgPiBqaWJ1bmppc2hpblwgOwor5aSc5YWJ5aGX5paZID4geWFrb3V0b3J5b3VcIDsKK+W4sOeEoeS7ruiqrCA+IGtpbXVrYXNldHN1XCA7CivluILloLTljp/nkIYgPiBzaGlqb3VnZW5yaVwgOwor5Lqs5ruL5Zyw5pa5ID4ga2VpamljaGlob3VcIDsKK+Wkp+e+qeWQjeWIhiA+IHRhaWdpbWVpYnVuXCA7CivlkbzlkLjpgYvli5UgPiBrb2t5dXV1bmRvdVwgOwor6J665peL6ZqO5q61ID4gcmFzZW5rYWlkYW5cIDsKK+iLseiqnuaVmeiCsiA+IGVpZ29reW91aWt1XCA7CivosaHniZnmtbflsrggPiB6b3VnZWthaWdhblwgOwor5pel5pys6ISz54KOID4gbmlob24nJ25vdWVuXCA7CivlkozprYLmvKLmiY0gPiB3YWtvbmthbnNhaVwgOwor57WM5Za25YaN5bu6ID4ga2VpZWlzYWlrZW5cIDsKK+iEs+S4i+WeguS9kyA+IG5vdWthc3VpdGFpXCA7Civli5/ph5HpgYvli5UgPiBib2tpbicndW5kb3VcIDsKK+WIu+iLpuWLieWKsSA+IGtva2t1YmVucmVpXCA7Civml6LlqZrnlLfmgKcgPiBraWtvbmRhbnNlaVwgOwor5rK75rC05bel5LqLID4gY2hpc3Vpa291amlcIDsKK+aXpeacrOS6uuirliA+IG5paG9uamlucm9uXCA7Civou43kuovlhazlgrUgPiBndW5qaWtvdXNhaVwgOwor5Y2B5Lq65Y2B6ImyID4ganV1bmludG9pcm9cIDsKK+eEoemFjeS8muekviA+IG11aGFpZ2Fpc2hhXCA7Civlrrbml4/miYvlvZMgPiBrYXpva3V0ZWF0ZVwgOwor576F6Yed55uk5bqnID4gcmFzaGluYmFuemFcIDsKK+emj+elieapn+WZqCA+IGZ1a3VzaGlraWtpXCA7CivmmqvlrprkuojnrpcgPiB6YW50ZWl5b3NhblwgOwor6Ieq6LK75Ye654mIID4gamloaXNodXBwYW5cIDsKK+W4uOeUqOa8ouWtlyA+IGpvdXlvdWthbmppXCA7Civnjovkvq/osrTml48gPiBvdWtvdWtpem9rdVwgOwor5Lq65L2T5qih5Z6LID4gamludGFpbW9rZWlcIDsKK+aXpeilv+i+nuWFuCA+IG5pc3NlaWppdGVuXCA7CivmhJ/mg4Xnp7vlhaUgPiBrYW5qb3Vpbnl1dVwgOwor5Zyw5pa556u26aasID4gY2hpaG91a2VpYmFcIDsKK+e1jOa4iOWKueaenCA+IGtlaXphaWtvdWthXCA7CivmsJHkuovoqLToqJ8gPiBtaW5qaXNvc2hvdVwgOwor5YyW5a2m6KiY5Y+3ID4ga2FnYWt1a2lnb3VcIDsKK+WPguWKoOaEj+itmCA+IHNhbmthaXNoaWtpXCA7CivmiKbmmYLkvZPliLYgPiBzZW5qaXRhaXNlaVwgOwor6Ieq55Sx5biC5aC0ID4gaml5dXVzaGlqb3VcIDsKK+WGt+aIv+WujOWCmSA+IHJlaWJvdWthbmJpXCA7Civoh6rlt7Hlj4zlr74gPiBqaWtvc291dHN1aVwgOwor54Gr54e15o6b5biDID4ga290YXRzdWdha2VcIDsKK+W4jOacm+S+oeagvCA+IGtpYm91a2FrYWt1XCA7Civpgbjlr77mnKzpg6ggPiBzZW50YWlob25idVwgOwor5YWI6aCt5omT6ICFID4gc2VudG91ZGFzaGFcIDsKK+WQjeWJjeepuumWkyA+IG5hbWFla3V1a2FuXCA7CivmtYXojYnmtbfoi5QgPiBhc2FrdXNhbm9yaVwgOwor5LqL5qWt5pys6YOoID4gamlneW91aG9uYnVcIDsKK+eQhuirlumXmOS6iSA+IHJpcm9udG91c291XCA7Civkurrlj6PlopfliqAgPiBqaW5rb3V6b3VrYVwgOwor5aSW5Lqk6L6e5LukID4gZ2Fpa291amlyZWlcIDsKK+awj+Wnk+WItuW6piA+IHNoaXNlaXNlaWRvXCA7CivnuITmlofmmYLku6MgPiBqb3Vtb25qaWRhaVwgOwor5LiW55WM5aSn5oimID4gc2VrYWl0YWlzZW5cIDsKK+apn+WLlea8lOe/kiA+IGtpZG91ZW5zaHV1XCA7Civoh6rorablm6Plk6EgPiBqaWtlaWRhbicnaW5cIDsKK+mbu+awl+aKteaKlyA+IGRlbmtpdGVpa291XCA7CivpmLLpn7Poo4Xnva4gPiBib3VvbnNvdWNoaVwgOwor6LKg5YK15ZCI6KiIID4gZnVzYWlnb3VrZWlcIDsKK+mBiui7jeiomOiAhSA+IHl1dWd1bmtpc2hhXCA7CivkvqHlgKTkvZPns7sgPiBrYWNoaXRhaWtlaVwgOwor5LqM6YeN57WQ5amaID4gbmlqdXVrZWtrb25cIDsKK+S4gOmVt+S4gOefrSA+IGl0Y2hvdWl0dGFuXCA7CivorbfpgIHoiLnlm6MgPiBnb3NvdXNlbmRhblwgOwor54qv6KGM54++5aC0ID4gaGFua291Z2VuYmFcIDsKK+aEj+imi+W6g+WRiiA+IGlrZW5rb3Vrb2t1XCA7CivlloTlm6DlloTmnpwgPiB6ZW4nJ2luemVua2FcIDsKK+eEoeS6uuWcsOW4ryA+IG11amluY2hpdGFpXCA7CivntYzllrbou6Lmj5sgPiBrZWllaXRlbmthblwgOwor6LKp5aOy5qmf5LyaID4gaGFuYmFpa2lrYWlcIDsKK+mBoOmalOaTjeS9nCA+IGVua2FrdXNvdXNhXCA7CivmhaPnlKjoqp7lj6UgPiBrYW4nJ3lvdWdva3VcIDsKK+a2suS9k+epuuawlyA+IGVraXRhaWt1dWtpXCA7Civlh7rliIPljIXkuIEgPiBkZWJhYm91Y2hvdVwgOwor5Zyf6K6a5pys57eaID4gZG9zYW5ob25zZW5cIDsKK+iyoeaUv+aUr+aPtCA+IHphaXNlaXNoaWVuXCA7Civlrq7lu7fnlLvlrrYgPiBreXV1dGVpZ2FrYVwgOwor5pyA5b6M5YiX6LuKID4gc2FpZ29yZXNzaGFcIDsKK+eQhuW3peWtpumDqCA+IHJpa291Z2FrdWJ1XCA7Civkv53nrqHkvJrnpL4gPiBob2thbmdhaXNoYVwgOwor6YWN5ZCI56aB5b+MID4gaGFpZ291a2lua2lcIDsKK+mBjuWJsOaKleizhyA+IGtham91dG91c2hpXCA7CivlrrbplbfliLbluqYgPiBrYWNob3VzZWlkb1wgOwor5Y+v6IG06Led6ZuiID4ga2FjaG91a3lvcmlcIDsKK+imqumhnue4geiAhSA+IHNoaW5ydWllbmphXCA7CivlroflrpnljJblraYgPiB1Y2h1dWthZ2FrdVwgOwor54Sh55CG5b+D5LitID4gbXVyaXNoaW5qdXVcIDsKK+W5tOizgOiRieabuCA+IG5lbmdhaGFnYWtpXCA7CivpgKPpgqbkuojnrpcgPiByZW5wb3V5b3NhblwgOwor5Ym15L6h5a2m5LyaID4gc291a2FnYWtrYWlcIDsKK+WIqeWtkOijnOe1piA+IHJpc2hpaG9reXV1XCA7CivmoLnmnKzljp/nkIYgPiBrb25wb25nZW5yaVwgOwor5a6J5YWo5L+d6ZqcID4gYW56ZW5ob3Nob3VcIDsKK+WBpeW6t+S/nemZuiA+IGtlbmtvdWhva2VuXCA7Civmmpfpu5LmmYLku6MgPiBhbmtva3VqaWRhaVwgOwor5LiW5Luj5Lqk5LujID4gc2VkYWlrb3V0YWlcIDsKK+i7oumAgembu+ipsSA+IHRlbnNvdWRlbndhXCA7CivmmK3lkozmmYLku6MgPiBzaG91d2FqaWRhaVwgOwor5L2/55So6Kix5Y+vID4gc2hpeW91a3lva2FcIDsKK+mfs+alveaYoOeUuyA+IG9uZ2FrdWVpZ2FcIDsKK+Wuh+WumemBiuazsyA+IHVjaHV1eXV1ZWlcIDsKK+S/neWBpeWItuW6piA+IGhva2Vuc2VpZG9cIDsKK+a6luWCmemBi+WLlSA+IGp1bmJpdW5kb3VcIDsKK+S7o+itsOWItuW6piA+IGRhaWdpc2VpZG9cIDsKK+aooeWei+WcsOWbsyA+IG1va2VpY2hpenVcIDsKK+eEoeiMtuiLpuiMtiA+IG11Y2hha3VjaGFcIDsKK+WPpOW+gOS7iuadpSA+IGtvb3Vrb25yYWlcIDsKK+aRqeWIqeaUr+WkqSA+IG1hcmlzaGl0ZW5cIDsKK+S6uueCuua3mOaxsCA+IGppbicnaXRvdXRhXCA7CivnqLzlg43mmYLplpMgPiBrYWRvdWppa2FuXCA7CivljLvnmYLliLbluqYgPiBpcnlvdXNlaWRvXCA7CivpnaLnvbXnvbXlgJIgPiBtZW5iYWJhdG91XCA7CivpgbjmjJnpgZXlj40gPiBzZW5reW9paGFuXCA7Civml6XmnKzmmYLplpMgPiBuaWhvbmppa2FuXCA7CivlpbTpmrfliLbluqYgPiBkb3JlaXNlaWRvXCA7Civmp4vpgKDkv53mjIEgPiBrb3V6b3Vob2ppXCA7Civoh6rli5Xou4rljJYgPiBqaWRvdXNoYWthXCA7Civml6XmnKzmm7jntIAgPiBuaWhvbnNob2tpXCA7CivkuI3nqbrmiJDlsLEgPiBmdWt1dWpvdWp1XCA7CivlubPlkozpgYvli5UgPiBoZWl3YXVuZG91XCA7CivlhazlrprmranlkIggPiBrb3V0ZWlidWFpXCA7CivlpKnooaPnhKHnuKsgPiB0ZW4nJ2ltdWhvdVwgOwor55CG6Lev5pW054S2ID4gcmlyb3NlaXplblwgOwor5Y2X5Lqs57m75a2QID4gbmFua2luanVzdVwgOwor6Jma54Sh5Li7576pID4ga3lvbXVzaHVnaVwgOwor5qip5aiB5Li7576pID4ga2VuJydpc2h1Z2lcIDsKK+awl+eCjuS4h+S4iCA+IGtpZW5iYW5qb3VcIDsKK+S4ieS4ieS5neW6piA+IHNhbnNhbmt1ZG9cIDsKK+ioiOeul+apn+mWkyA+IGtlaXNhbmtpbWFcIDsKK+ekvOWEgOS9nOazlSA+IHJlaWdpc2Fob3VcIDsKK+a7heiMtuiLpuiMtiA+IG1lY2hha3VjaGFcIDsKK+iAs+S4i+iFuueCjiA+IGppa2FzZW4nJ2VuXCA7Civnn7PmsrnljbHmqZ8gPiBzZWtpeXVraWtpXCA7CivliJHkuovkuovku7YgPiBrZWlqaWppa2VuXCA7CivliKnnlKjkvqHlgKQgPiByaXlvdWthY2hpXCA7Civlm57nt5rosqDojbcgPiBrYWlzZW5mdWthXCA7CivpppblsL7kuIDosqsgPiBzaHViaWlra2FuXCA7CivljLvnmYLkv53pmbogPiBpcnlvdWhva2VuXCA7Civmraboo4Xop6PpmaQgPiBidXNvdWthaWpvXCA7CivooajmhI/mloflrZcgPiBoeW91aW1vbmppXCA7Civpg73luILlm73lrrYgPiB0b3NoaWtva2thXCA7CivnhKHngrrlvpLpo58gPiBtdWl0b3Nob2t1XCA7CivmmKDnlLvpn7Pmpb0gPiBlaWdhb25nYWt1XCA7CivliY3lvozlt6blj7MgPiB6ZW5nb3NheXV1XCA7Civph47miKbnibnnp5EgPiB5YXNlbnRva2thXCA7CivkuI3nvojlpZTmlL4gPiBmdWtpaG9ucG91XCA7CivkuIDmiYvosqnlo7IgPiBpdHRlaGFuYmFpXCA7CivlvZPluqfpoJDph5EgPiB0b3V6YXlva2luXCA7CivmoZzoirHniJvmvKsgPiBvdWthcmFubWFuXCA7Civoh6rnlLHoh6rlnKggPiBqaXl1dWppemFpXCA7Civkub7nh6XnhKHlkbMgPiBrYW5zb3VtdW1pXCA7CivkuozpoIXlrprnkIYgPiBuaWtvdXRlaXJpXCA7CivmtLvmgKfmsZrms6UgPiBrYXNzZWlvZGVpXCA7CivkuInkuInkupTkupQgPiBzYW5zYW5nb2dvXCA7CivlnKjluqvnrqHnkIYgPiB6YWlrb2thbnJpXCA7Civngavngb3kv53pmbogPiBrYXNhaWhva2VuXCA7CivnvbXoqYjpm5HoqIAgPiBiYXJpem91Z29uXCA7CivpgZPot6/lsIHpjpYgPiBkb3Vyb2Z1dXNhXCA7CivlsI/lp5Tlk6HkvJogPiBzaG91aWlua2FpXCA7CivkuqTmuInlp5Tlk6EgPiBrb3VzaG91aWluXCA7CivlkIjlkIzooYzngrogPiBnb3Vkb3Vrb3VpXCA7Civngonovrroq4foqbEgPiByb2hlbmRhbndhXCA7CivpgY7ljrvliIboqZ4gPiBrYWtvYnVuc2hpXCA7CivllrbliKnkvJrnpL4gPiBlaXJpZ2Fpc2hhXCA7CivkurrkuovkuI3nnIEgPiBqaW5qaWZ1c2VpXCA7CivnlbDmgKfplqLkv4IgPiBpc2Vpa2Fua2VpXCA7CivkuovmlYXljp/lm6AgPiBqaWtvZ2VuJydpblwgOwor5a625Ye65bCR5aWzID4gaWVkZXNob3Vqb1wgOwor5Y+k5YW45Li7576pID4ga290ZW5zaHVnaVwgOwor5LiN5rOV5oqV5qOEID4gZnVob3V0b3VraVwgOwor5LqM6YeN6J665peLID4gbmlqdXVyYXNlblwgOwor5L2N55u46YCf5bqmID4gaXNvdXNva3Vkb1wgOwor6Z+z6Z+76YOo6ZaAID4gb24nJ2luYnVtb25cIDsKK+apn+iDveS4u+e+qSA+IGtpbm91c2h1Z2lcIDsKK+apn+aisOitpuWCmSA+IGtpa2Fpa2VpYmlcIDsKK+WfuuekjuippumokyA+IGtpc29zaGlrZW5cIDsKK+WutuW6reiPnOWckiA+IGthdGVpc2FpZW5cIDsKK+mBk+i3r+W3peS6iyA+IGRvdXJva291amlcIDsKK+S6nOeIvueEtuS4gSA+IGFydXplbmNoaW5cIDsKK+Wbm+iLpuWFq+iLpiA+IHNoaWt1aGFra3VcIDsKK+WnlOe0sOmdouirhyA+IGlzYWltZW5kYW5cIDsKK+WvvuagoeippuWQiCA+IHRhaWtvdWppYWlcIDsKK+S6uuawl+S9nOWutiA+IG5pbmtpc2Fra2FcIDsKK+aaluWGrOeVsOWkiSA+IGRhbnRvdWloZW5cIDsKK+Wls+aAp+S4gOiIrCA+IGpvc2VpaXBwYW5cIDsKK+aAqueNo+aYoOeUuyA+IGthaWp1dWVpZ2FcIDsKK+WkmueoruWkmuanmCA+IHRhc2h1dGF5b3VcIDsKK+S6jOmDqOaVmeaOiCA+IG5pYnVreW91anVcIDsKK+mAn+W6pumBleWPjSA+IHNva3Vkb2loYW5cIDsKK+aoquaWreatqemBkyA+IG91ZGFuaG9kb3VcIDsKK+iIl+ijhemBk+i3ryA+IGhvc291ZG91cm9cIDsKK+eEoee3muaKgOW4qyA+IG11c2VuZ2lzaGlcIDsKK+mjm+mzpeaZguS7oyA+IGFzdWthamlkYWlcIDsKK+Wbnui3r+WfuuadvyA+IGthaXJva2liYW5cIDsKK+W9ouaIkOWkluenkSA+IGtlaXNlaWdla2FcIDsKK+Wuh+WumeWFteWZqCA+IHVjaHV1aGVpa2lcIDsKK+eVsOW4uOawl+ixoSA+IGlqb3VraXNob3VcIDsKK+eEoeapn+WMluWtpiA+IG11a2lrYWdha3VcIDsKK+iHqueUseS4u+e+qSA+IGppeXV1c2h1Z2lcIDsKK+S9jeiomOi/vei0iCA+IGlraXRzdWlzb3VcIDsKK+Wun+WGmeaYoOeUuyA+IGppc3NoYWVpZ2FcIDsKK+iHqueUseaZgumWkyA+IGppeXV1amlrYW5cIDsKK+W+oeekvOWlieWFrCA+IG9yZWlib3Vrb3VcIDsKK+WckuiKuOeUqOWFtyA+IGVuZ2VpeW91Z3VcIDsKK+egtOiMtuebruiMtiA+IGhhY2hhbWVjaGFcIDsKK+S4jeepj+aWh+abuCA+IGZ1b25idW5zaG9cIDsKK+a8ouWtl+aWh+WMliA+IGthbmppYnVua2FcIDsKK+S6iOWCmeippumokyA+IHlvYmlzaGlrZW5cIDsKK+WKtOWLmeeuoeeQhiA+IHJvdW11a2FucmlcIDsKK+W5s+WSjOS8muitsCA+IGhlaXdha2FpZ2lcIDsKK+S7u+WLmemDqOmaiiA+IG5pbm11YnV0YWlcIDsKK+Wwj+mWk+eJqeWxiyA+IGtvbWFtb25veWFcIDsKK+e4puaoqueEoeWwvSA+IGp1dW91bXVqaW5cIDsKK+WbveWutuS4u+e+qSA+IGtva2thc2h1Z2lcIDsKK+mBjuWJsOaKleS4jiA+IGtham91dG91eW9cIDsKK+irlueQhuWbnui3ryA+IHJvbnJpa2Fpcm9cIDsKK+iHquWjiuS9nOeUqCA+IGppa2Fpc2F5b3VcIDsKK+a6luWCmeacn+mWkyA+IGp1bmJpa2lrYW5cIDsKK+WkqeS4i+eEoeWPjCA+IHRlbmthbXVzb3VcIDsKK+S4gOeAieWNg+mHjCA+IGlzc2hhc2VucmlcIDsKK+aoquihjOmXiuatqSA+IG91a291a2FwcG9cIDsKK+WJsOS9meS+oeWApCA+IGpvdXlva2FjaGlcIDsKK+aWh+WMluWbveWutiA+IGJ1bmtha29ra2FcIDsKK+iInuWPsOeoveWPpCA+IGJ1dGFpZ2Vpa29cIDsKK+S8iuWLouWkp+W7nyA+IGlzZXRhaWJ5b3VcIDsKK+ebuOS6kuaUr+aPtCA+IHNvdWdvc2hpZW5cIDsKK+aZrumBjeWOn+eQhiA+IGZ1aGVuZ2VucmlcIDsKK+S4jeWNs+S4jemboiA+IGZ1c29rdWZ1cmlcIDsKK+aCquWboOaCquaenCA+IGFrdWluJydha2thXCA7CivkuInjgIXkuZ3luqYgPiBzYW5zYW5rdWRvXCA7CivpmYTlkozpm7flkIwgPiBmdXdhcmFpZG91XCA7CivljJbnsqfpg6jlsYsgPiBrZXNob3ViZXlhXCA7Civno6joo73nn7PlmaggPiBtYXNlaXNla2tpXCA7CivniLblrZDlrrbluq0gPiBmdXNoaWthdGVpXCA7CivkvZnpn7vlq4vlq4sgPiB5b2luam91am91XCA7CivnuITmloflnJ/lmaggPiBqb3Vtb25kb2tpXCA7CivosqHli5nnrqHnkIYgPiB6YWltdWthbnJpXCA7CivnqYLnirboirHluo8gPiBzdWlqb3VrYWpvXCA7Civovp7mm7jpg6jploAgPiBqaXNob2J1bW9uXCA7CivmqZ/li5Xpg6jpmoogPiBraWRvdWJ1dGFpXCA7Civkv53lronlh6bliIYgPiBob2Fuc2hvYnVuXCA7CivmhI/mgJ3ooajnpLogPiBpc2hpaHlvdWppXCA7CivllrbliKnkuovmpa0gPiBlaXJpamlneW91XCA7Civnmq7ohprnp7vmpI0gPiBoaWZ1aXNob2t1XCA7CivorbDkuovlpqjlrrMgPiBnaWppYm91Z2FpXCA7Civku5jlkozpm7flkIwgPiBmdXdhcmFpZG91XCA7CivkuIDpqI7lvZPljYMgPiBpa2tpdG91c2VuXCA7CivpmL/pvLvlj6vllpogPiBhYmlreW91a2FuXCA7Civntbblr77muKnluqYgPiB6ZXR0YWlvbmRvXCA7Civpu4Tph5HkuJbnlYwgPiBvdWdvbnNla2FpXCA7Civmo5LmuKnluqboqIggPiBib3VvbmRva2VpXCA7Civlj43lr77mhI/oposgPiBoYW50YWlpa2VuXCA7CivmrKPmsYLmtYTlnJ8gPiBnb25ndWpvdWRvXCA7Civph5HosqjmupblgpkgPiBraW5rYWp1bmJpXCA7Civoq5bnkIbntKDlrZAgPiByb25yaXNvc2hpXCA7CivpnLLlnLDmoL3ln7kgPiByb2ppc2FpYmFpXCA7Civlj6TlorPmmYLku6MgPiBrb2Z1bmppZGFpXCA7CivnhKHnhZnngavolqwgPiBtdWVua2F5YWt1XCA7CivmlL/msrvmqZ/mp4sgPiBzZWlqaWtpa291XCA7CivmhI/lv5fmsbrlrpogPiBpc2hpa2V0dGVpXCA7CivosqDojbfliIbmlaMgPiBmdWthYnVuc2FuXCA7CivkuI3lgY/kuI3lhZogPiBmdWhlbmZ1dG91XCA7CivlkIzluornlbDlpKIgPiBkb3VzaG91aW11XCA7CivnhKHpmZDou4zpgZMgPiBtdWdlbmtpZG91XCA7Civou43kuovpoafllY8gPiBndW5qaWtvbW9uXCA7CivogL3nvo7kuLvnvqkgPiB0YW5iaXNodWdpXCA7CivllpzliofmmKDnlLsgPiBraWdla2llaWdhXCA7Civmm7znj6Dmspnoj68gPiBtYW5qdXNoYWdlXCA7CivmqKHmk6zoqabpqJMgPiBtb2dpc2hpa2VuXCA7Civopo/liYfpgZXlj40gPiBraXNva3VpaGFuXCA7CivlpI/ngonlhqzmiYcgPiBrYXJvdG91c2VuXCA7Civpm6jlpKnmsbrooYwgPiB1dGVua2Vra291XCA7CivmhI/opovkuqTmj5sgPiBpa2Vua291a2FuXCA7CivkuI3kub7mgKfmsrkgPiBmdWthbnNlaXl1XCA7Civms4zlsL/lmajnp5EgPiBoaW55b3VraWthXCA7CivluLfluYTkuIrlpY8gPiBpYWt1am91c291XCA7CivlhajmqKnlp5Tlk6EgPiB6ZW5rZW4nJ2lpblwgOwor5ryU566X5qmf5qeLID4gZW56YW5raWtvdVwgOwor54Sh6JOL6LKo6LuKID4gbXVnYWlrYXNoYVwgOwor5LqM5Y2B5LiW57SAID4gbmlqaXNzZWlraVwgOwor5L+d6K235Yem5YiGID4gaG9nb3Nob2J1blwgOwor55qu6Iaa56eR5a2mID4gaGlmdWthZ2FrdVwgOwor6KGG5oSa5pS/5rK7ID4gc2h1Z3VzZWlqaVwgOwor5L6N5b6T5q2m5a6YID4gamlqdXVidWthblwgOwor5o6n6Ki05pyf6ZaTID4ga291c29raWthblwgOwor5LiK5L2N5qeL6YCgID4gam91aWtvdXpvdVwgOwor5bi45Lu75aeU5ZOhID4gam91bmluJydpaW5cIDsKK+iKneWxheWwj+WxiyA+IHNoaWJhaWdveWFcIDsKK+WFrOenn+WFrOiqsiA+IGtvdXNva291a2FcIDsKK+aYk+aEn+afk+aApyA+IGlrYW5zZW5zZWlcIDsKK+e0gOS8iuWci+WxiyA+IGtpbm9rdW5peWFcIDsKK+WknOm3ueiVjum6piA+IHlvdGFrYXNvYmFcIDsKK+WLpOWLmeaZgumWkyA+IGtpbm11amlrYW5cIDsKK+WOreS4luS4u+e+qSA+IGVuc2Vpc2h1Z2lcIDsKK+WNmOS9jeiomOWPtyA+IHRhbicnaWtpZ291XCA7CivmjpLku5bkuLvnvqkgPiBoYWl0YXNodWdpXCA7Civlroflrpnpo5vooYwgPiB1Y2h1dWhpa291XCA7Civku67lkI3ojYnntJkgPiBrYW5hem91c2hpXCA7CivlnZHlhoXkuovmlYUgPiBrb3VuYWlqaWtvXCA7Civoq5bnkIbmvJTnrpcgPiByb25yaWVuemFuXCA7Civpm7vmsJfmr5vluIMgPiBkZW5raW1vdWZ1XCA7Civpm7LprKLoirHpoZQgPiB1bmJpbmthZ2FuXCA7CivlvqHliY3kvJrorbAgPiBnb3plbmthaWdpXCA7Civkuojlgpnoqr/mn7sgPiB5b2JpY2hvdXNhXCA7CivlubPlkozkuLvnvqkgPiBoZWl3YXNodWdpXCA7CivnqLLojbflr7/lj7ggPiBpbmFyaXp1c2hpXCA7Civms6jmhI/kuovpoIUgPiBjaHV1aWppa291XCA7Civog7jpg6jlpJbnp5EgPiBreW91YnVnZWthXCA7CivpnZ7lj6/mj5vnvqQgPiBoaWtha2FuZ3VuXCA7CivpgbrkvJ3mg4XloLEgPiBpZGVuam91aG91XCA7Civlr4TnlJ/ngavlsbEgPiBraXNlaWthemFuXCA7Civkuozpg6jmjojmpa0gPiBuaWJ1anVneW91XCA7CivpnZ7llrbliKnnmoQgPiBoaWVpcml0ZWtpXCA7CivmsrPlt53lt6XkuosgPiBrYXNlbmtvdWppXCA7Civnm7jmiYvmrKHnrKwgPiBhaXRlc2hpZGFpXCA7Civkvr/lrpzkuLvnvqkgPiBiZW5naXNodWdpXCA7Civnmq7ohprlkbzlkLggPiBoaWZ1a29reXV1XCA7CivkupzmiJDlsaTlnI8gPiBhc2Vpc291a2VuXCA7Civnqbrou43lpKflsIkgPiBrdXVndW50YWlpXCA7CivkuInjgIXkupTjgIUgPiBzYW5zYW5nb2dvXCA7CivmorXlkozovp7lhbggPiBib253YWppdGVuXCA7CivmjqfoqLTnkIbnlLEgPiBrb3Vzb3JpeXV1XCA7Civpg6jpmorljLrliIYgPiBidXRhaWt1YnVuXCA7CivmgqrprZTkuLvnvqkgPiBha3VtYXNodWdpXCA7Civorbflsrjlt6XkuosgPiBnb2dhbmtvdWppXCA7CivkvZnpn7vlq4vjgIUgPiB5b2luam91am91XCA7CivnlLDlpKvph47kurogPiBkZW5wdXlhamluXCA7CivlpYflpYfmgKrmgKogPiBraWtpa2Fpa2FpXCA7CivnpZ7ku6PmloflrZcgPiBqaW5kYWltb2ppXCA7Civlj6TlhbjmmYLku6MgPiBrb3RlbmppZGFpXCA7CivluILkvJrorbDlk6EgPiBzaGlrYWlnaWluXCA7CivljbHpmbrosqDmi4UgPiBraWtlbmZ1dGFuXCA7CivlgaXlurfkuI3lrokgPiBrZW5rb3VmdWFuXCA7Civlv5zmgKXmuKHmsrMgPiBvdWt5dXV0b2thXCA7Civkuozph43lkKblrpogPiBuaWp1dWhpdGVpXCA7CivmhI/msJfooZ3lpKkgPiBpa2lzaG91dGVuXCA7CivljLvlrabnlKjoqp4gPiBpZ2FrdXlvdWdvXCA7CivoiJ7lj7DlirnmnpwgPiBidXRhaWtvdWthXCA7Civpm7vkvY3lt67oqIggPiBkZW4nJ2lzYWtlaVwgOwor5bqm5pWw5YiG5biDID4gZG9zdXVidW5wdVwgOwor6YGL6YCB5L+d6Zm6ID4gdW5zb3Vob2tlblwgOwor6auY5omL5bCP5omLID4gdGFrYXRla290ZVwgOwor54Sh5ZGz5Lm+54elID4gbXVtaWthbnNvdVwgOwor5LiL6Zmi6K2w6ZW3ID4ga2FpbmdpY2hvdVwgOwor6LuN5YKZ566h55CGID4gZ3VuYmlrYW5yaVwgOwor5qi56ISC5Yqg5belID4ganVzaGlrYWtvdVwgOwor5Yip5rC05bel5LqLID4gcmlzdWlrb3VqaVwgOwor6Z2e5bi45LqL5oWLID4gaGlqb3VqaXRhaVwgOwor5q2m6KOF6JyC6LW3ID4gYnVzb3Vob3VraVwgOwor5pyJ5aOw6Z+z5YyWID4geXV1c2Vpb25rYVwgOwor5L6h5YCk5Z+65rqWID4ga2FjaGlraWp1blwgOwor6Kq/55CG5Zmo5YW3ID4gY2hvdXJpa2lndVwgOwor56Cy54WZ5by+6ZuoID4gaG91ZW5kYW4nJ3VcIDsKK+mmrOiAs+adsemiqCA+IGJhaml0b3VmdXVcIDsKK+W5s+ihjOenu+WLlSA+IGhlaWtvdWlkb3VcIDsKK+ijnOWKqeWLleipniA+IGhvam9kb3VzaGlcIDsKK+WQpuWumuW/nOetlCA+IGhpdGVpb3V0b3VcIDsKK+iHquW3seizh+acrCA+IGppa29zaGlob25cIDsKK+m7hOmHkeaZguS7oyA+IG91Z29uamlkYWlcIDsKK+WRveS7pOS4gOS4iyA+IG1laXJlaWlra2FcIDsKK+e0jeS7mOacn+mZkCA+IG5vdWZ1a2lnZW5cIDsKK+aRuOaTrOippumokyA+IG1vZ2lzaGlrZW5cIDsKK+Wwj+WFkOm6u+eXuiA+IHNob3VuaW1haGlcIDsKK+Wuo+S8neiomOS6iyA+IHNlbmRlbmtpamlcIDsKK+Wkj+Wto+S8keaahyA+IGtha2lreXV1a2FcIDsKK+iHqOaZguaUv+W6nCA+IHJpbmppc2VpZnVcIDsKK+S4ieaXpeS4ieaZqSA+IG1pa2thbWliYW5cIDsKK+eEoeeQhumbo+mhjCA+IG11cmluYW5kYWlcIDsKK+S6iOWCmeijhee9riA+IHlvYmlzb3VjaGlcIDsKK+aenOaoueagveWfuSA+IGthanVzYWliYWlcIDsKK+eyl+iho+eyl+mjnyA+IHNvaXNvc2hva3VcIDsKK+S6uuawkeWnlOWToSA+IGppbm1pbicnaWluXCA7Civpo73lkozokrjmsJcgPiBob3V3YWpvdWtpXCA7CivljLnlpKvljLnlqaYgPiBoaXBwdWhpcHB1XCA7CivkuozliIbpn7PnrKYgPiBuaWJ1bicnb25wdVwgOwor5Y2D5rOi5LiH5rOiID4gc2VucGFiYW5wYVwgOwor55Ww5bi455m655SfID4gaWpvdWhhc3NlaVwgOwor5rK75a6J6YOo6ZqKID4gY2hpYW5idXRhaVwgOwor5YiD5YK35rKZ5rGwID4gbmluam91emF0YVwgOwor5LiN5rS75oCn5YyWID4gZnVrYXNzZWlrYVwgOwor5bel5LqL54++5aC0ID4ga291amlnZW5iYVwgOwor6Ieq5bex5a6j5LydID4gamlrb3NlbmRlblwgOwor5rCX566h5pSv54KOID4ga2lrYW5zaGllblwgOwor5omL5YmN5Yud5omLID4gdGVtYWVnYXR0ZVwgOwor5L+d5a6I5Li7576pID4gaG9zaHVzaHVnaVwgOwor5pyo56uv5b6u5aG1ID4ga29wcGFtaWppblwgOwor5q275Lqh6KiY5LqLID4gc2hpYm91a2lqaVwgOwor6YGO5Ymw5Yip55uKID4ga2Fqb3VyaWVraVwgOwor5aWz5bCK55S35Y2RID4gam9zb25kYW5waVwgOwor5Y2B5LqM5Y2Y6KGjID4ganV1bmloaXRvZVwgOwor5YiG6Zui6Kqy56iOID4gYnVucmlrYXplaVwgOwor5Lu75oSP5o2c5p+7ID4gbmluJydpc291c2FcIDsKK+S4iuS9jeamguW/tSA+IGpvdWlnYWluZW5cIDsKK+iInuWPsOmBk+WFtyA+IGJ1dGFpZG91Z3VcIDsKK+S4iuaYoOaZgumWkyA+IGpvdWVpamlrYW5cIDsKK+ioiOWZqOmjm+ihjCA+IGtlaWtpaGlrb3VcIDsKK+aIpueBveWtpOWFkCA+IHNlbnNhaWtvamlcIDsKK+WfuuacrOWOn+eQhiA+IGtpaG9uZ2VucmlcIDsKK+aDheaEj+aKleWQiCA+IGpvdWl0b3Vnb3VcIDsKK+euoeeQhuapn+iDvSA+IGthbnJpa2lub3VcIDsKK+iHqOaZguiomOWPtyA+IHJpbmppa2lnb3VcIDsKK+WFteW9ueW/jOmBvyA+IGhlaWVraWtpaGlcIDsKK+aIpuS6ieaYoOeUuyA+IHNlbnNvdWVpZ2FcIDsKK+iyoeaUv+WNseapnyA+IHphaXNlaWtpa2lcIDsKK+aciemZkOiKseW6jyA+IHl1dWdlbmtham9cIDsKK+i7jeS6i+WfuuWcsCA+IGd1bmppa2ljaGlcIDsKK+S4jeato+S6i+S7tiA+IGZ1c2VpamlrZW5cIDsKK+WHuuadpeasoeesrCA+IGRla2lzaGlkYWlcIDsKK+WkieS9k+S7ruWQjSA+IGhlbnRhaWdhbmFcIDsKK+iLsembhOS4u+e+qSA+IGVpeXV1c2h1Z2lcIDsKK+eXtOipseWWp+WYqSA+IGNoaXdhZ2Vua2FcIDsKK+eDj+acieWFiOeUnyA+IHV5dXVzZW5zZWlcIDsKK+aGsuazlemBleWPjSA+IGtlbnBvdWloYW5cIDsKK+Wbnui7ouakheWtkCA+IGthaXRlbicnaXN1XCA7Civog73nmbvljYrls7YgPiBub3RvaGFudG91XCA7CivliqPmgKfpgbrkvJ0gPiByZXNzZWlpZGVuXCA7Civoq4vosqDliLbluqYgPiB1a2VvaXNlaWRvXCA7CivmsLTou4rlsI/lsYsgPiBzdWlzaGFnb3lhXCA7CivopJDmr5vlkoznqK4gPiBha2FnZXdhc2h1XCA7Civlm7rlrprosqDlgrUgPiBrb3RlaWZ1c2FpXCA7Civkvp3poZjlhY3lrpggPiBpZ2FubWVua2FuXCA7CivmlL/lupzmqZ/plqIgPiBzZWlmdWtpa2FuXCA7Civkuovku7boqJjogIUgPiBqaWtlbmtpc2hhXCA7CivlubPlronlvozmnJ8gPiBoZWlhbmtvdWtpXCA7Civpm4fnlKjkv53pmbogPiBrb3lvdWhva2VuXCA7Civkv53orbfosr/mmJMgPiBob2dvYm91ZWtpXCA7CivkuJbnlYzliLbopocgPiBzZWthaXNlaWhhXCA7CivnhKHmqZ/ogqXmlpkgPiBtdWtpaGlyeW91XCA7Civpq5jph47osYbohZAgPiBrb3V5YWRvdWZ1XCA7Civku6PorbDmlL/msrsgPiBkYWlnaXNlaWppXCA7CivmhI/ppqzlv4PnjL8gPiBpYmFzaGluJydlblwgOwor5Lqk6YCa6YG65YWQID4ga291dHN1dWlqaVwgOwor6YG65qOE6LKo54mpID4gaWtpa2Ftb3RzdVwgOwor54Kt5YyW5rC057SgID4gdGFua2FzdWlzb1wgOwor5Zuy56KB5LiJ57SaID4gaWdvc2Fua3l1dVwgOwor55Sj5amm5Lq656eRID4gc2FuZnVqaW5rYVwgOwor55CG5oOz5Li7576pID4gcmlzb3VzaHVnaVwgOwor5Y2B5a2X56Cy54GrID4ganV1amlob3VrYVwgOwor6YO96YGT5bqc55yMID4gdG9kb3VmdWtlblwgOwor6bqd6aaZ6LGM6LGGID4gamFrb3VlbmRvdVwgOwor55uy5ZSW5a2m5qChID4gbW91YWdha2tvdVwgOwor5L+d5a6J5p2h5L6LID4gaG9hbmpvdXJlaVwgOwor55+z5Zmo5pmC5LujID4gc2Vra2lqaWRhaVwgOwor5Ly86Z2e55CG5bGIID4gZXNlcmlrdXRzdVwgOwor6KiY5b+15YiH5omLID4ga2luZW5raXR0ZVwgOwor5YCL5Lq65YCL5Lq6ID4ga29qaW5rb2ppblwgOwor5bu25rue5Yip5a2QID4gZW50YWlyaXNoaVwgOwor5YiG5rS+5Li7576pID4gYnVucGFzaHVnaVwgOwor5q+A6KqJ6KSS6LK2ID4ga2l5b2hvdWhlblwgOwor5ZSv576O5Li7576pID4geXVpYmlzaHVnaVwgOwor6LuN5LqL6KGb5pifID4gZ3VuamllaXNlaVwgOwor54Sh5oiR5aSi5LitID4gbXVnYW11Y2h1dVwgOwor5LqI5a6a5pyf6ZmQID4geW90ZWlraWdlblwgOwor56uL5L2T5pig55S7ID4gcml0dGFpZWlnYVwgOwor5aSp5rCX5qih5qeYID4gdGVua2ltb3lvdVwgOwor54Gr5Y+j5Y6f5rmWID4ga2Frb3VnZW5rb1wgOwor6KGo6Z+z5a2X5q+NID4gaHlvdW9uamlib1wgOwor6Z+z5aOw6KiA6KqeID4gb25zZWlnZW5nb1wgOwor5LiA5pio5pio5pelID4gc2FraW90b3RvaVwgOwor6ISx5rOV6KGM54K6ID4gZGFwcG91a291aVwgOwor5YCL5Lq65Li7576pID4ga29qaW5zaHVnaVwgOwor5LiN5q2j6KaP6LuNID4gZnVzZWlraWd1blwgOwor5YeG55yL6K235ammID4ganVua2FuZ29mdVwgOwor5q+N5a2Q5a625bqtID4gYm9zaGlrYXRlaVwgOwor5ZCM5ZCN55Ww5Lq6ID4gZG91bWVpaWppblwgOwor6IKy5YWQ5pmC6ZaTID4gaWt1amlqaWthblwgOwor5pmC5L6h55m66KGMID4gamlrYWhha2tvdVwgOwor5Lya6K2w5LqL6aCFID4ga2FpZ2lqaWtvdVwgOwor5Luu5oOz6KiY5oa2ID4ga2Fzb3VraW9rdVwgOwor6YOo5YiG6bq76YWUID4gYnVidW5tYXN1aVwgOwor5qSc5LqL5o6n6Ki0ID4ga2Vuamlrb3Vzb1wgOwor57WM5Za2566h55CGID4ga2VpZWlrYW5yaVwgOwor6aOb6KGM5pmC6ZaTID4gaGlrb3VqaWthblwgOwor5Zub5a2X54af6KqeID4geW9qaWp1a3Vnb1wgOwor6Ieo5qmf5b+c5aSJID4gcmlua2lvdWhlblwgOwor5a6a5pyf5L+d6Zm6ID4gdGVpa2lob2tlblwgOwor6YCg6KiA6aOb6KqeID4gem91Z2VuaGlnb1wgOwor5LqL5YuZ55So5ZOBID4gamltdXlvdWhpblwgOwor6KiA6Kqe5Zyw55CGID4gZ2VuZ29jaGlyaVwgOwor54qv572q6KGM54K6ID4gaGFuemFpa291aVwgOwor6Ly46YCB5qmf6ZaiID4geXVzb3VraWthblwgOwor6KOc5Yqp6Imm6ImHID4gaG9qb2thbnRlaVwgOwor5LqU6YeM6Zyn5LitID4gZ29yaW11Y2h1dVwgOwor5LiJ5pel5aSp5LiLID4gbWlra2F0ZW5rYVwgOwor5Z+65pys5Y2Y5L2NID4ga2lob250YW4nJ2lcIDsKK+eMtuS6iOacn+mWkyA+IHl1dXlva2lrYW5cIDsKK+iri+iyoOW3peS6iyA+IHVrZW9pa291amlcIDsKK+aEj+aAneaxuuWumiA+IGlzaGlrZXR0ZWlcIDsKK+W+jOmAgOaWh+WtlyA+IGtvdXRhaW1vamlcIDsKK+eUt+WwiuWls+WNkSA+IGRhbnNvbmpvaGlcIDsKK+Wkp+aFiOWkp+aCsiA+IGRhaWppZGFpaGlcIDsKK+WmguS9leanmOW4qyA+IGlrYXNhbWFzaGlcIDsKK+iHqOeVjOS6i+aVhSA+IHJpbmthaWppa29cIDsKK+WboOaenOmWouS/giA+IGluZ2FrYW5rZWlcIDsKK+eVsOeoruS6pOmFjSA+IGlzaHVrb3VoYWlcIDsKK+WknOmWk+WLpOWLmSA+IHlha2Fua2lubXVcIDsKK+W+oeWbveiHquaFoiA+IG9rdW5pamltYW5cIDsKK+elnue1jOenkeWMuyA+IHNoaW5rZWlrYWlcIDsKK+WujOWFqOippuWQiCA+IGthbnplbmppYWlcIDsKK+WFrOekuuWcsOS+oSA+IGtvdWppY2hpa2FcIDsKK+S4gOWtl+S4gOWPpSA+IGljaGlqaWlra3VcIDsKK+WOn+eQhuS4u+e+qSA+IGdlbnJpc2h1Z2lcIDsKK+erpeipseS9nOWutiA+IGRvdXdhc2Fra2FcIDsKK+WmqOWus+ihjOeCuiA+IGJvdWdhaWtvdWlcIDsKK+mBi+WWtue1jOiyuyA+IHVuJydlaWtlaWhpXCA7Civkuozpg6jlkIjlpY8gPiBuaWJ1Z2Fzc291XCA7CivlkI3oqonmr4DmkI0gPiBtZWl5b2tpc29uXCA7CivoqJjpjLLmmKDnlLsgPiBraXJva3VlaWdhXCA7CivpgYvmkKznrqHnkIYgPiB1bnBhbmthbnJpXCA7CivljLvnp5HlpKflraYgPiBpa2FkYWlnYWt1XCA7CivliqDmuJvkuZfpmaQgPiBrYWdlbmpvdWpvXCA7CivpmL/niYfmiKbkuokgPiBhaGVuc2Vuc291XCA7CivllK/llK/oq77oq74gPiBpaWRha3VkYWt1XCA7Civnm7jlr77oqqTlt64gPiBzb3V0YWlnb3NhXCA7Civpo7LphZLpgYvou6IgPiBpbnNodXVudGVuXCA7CivmjIflkI3oqablkIggPiBzaGltZWlqaWFpXCA7CivlvpLlvJ/liLbluqYgPiB0b3RlaXNlaWRvXCA7CivntIvnvr3kuozph40gPiBtb25oYWJ1dGFlXCA7CivosqjluaPliLbluqYgPiBrYWhlaXNlaWRvXCA7Civml6XlkozkuIvpp4QgPiBoaXlvcmlnZXRhXCA7CivkuJbnlYzlubPlkowgPiBzZWthaWhlaXdhXCA7CivnhKHnkIbplqLmlbAgPiBtdXJpa2Fuc3V1XCA7Civpn7PlkJDmnJfmnJcgPiBvbnRvcm91cm91XCA7CivmooXpm6jliY3nt5ogPiBiYWl1emVuc2VuXCA7Civpm7vmsJfmmYLoqIggPiBkZW5raWRva2VpXCA7CivkuozljYHlm5vml6UgPiBuaWp1dXlva2thXCA7CivmgrLmrYzmhbfmhaggPiBoaWtha291Z2FpXCA7CivkuojpmLLljLvlraYgPiB5b2JvdWlnYWt1XCA7CivlvZPmnJ/liKnnm4ogPiB0b3VraXJpZWtpXCA7Civnmq7kuIvohILogqogPiBoaWthc2hpYm91XCA7Civpmbbno4HlmajlupcgPiB0b3VqaWtpdGVuXCA7CivliIfnrKblo7LloLQgPiBraXBwdXVyaWJhXCA7Civoo7jkvZPkuLvnvqkgPiByYXRhaXNodWdpXCA7Civpn7PmqJnmloflrZcgPiBvbnB5b3Vtb2ppXCA7CivkuI3mraPopo/miKYgPiBmdXNlaWtpc2VuXCA7Civntbblr77kvY3nva4gPiB6ZXR0YWlpY2hpXCA7CivnsKHmmJPkv53pmbogPiBrYW4nJ2lob2tlblwgOwor5a+h6aCt5pS/5rK7ID4ga2F0b3VzZWlqaVwgOwor5LiL5rC05Yem55CGID4gZ2VzdWlzaG9yaVwgOwor6KiY5oa257Sg5a2QID4ga2lva3Vzb3NoaVwgOwor6Z+z5aOw6KiY5Y+3ID4gb25zZWlraWdvdVwgOwor5ZKM5bmz5Lya6K2wID4gd2FoZWlrYWlnaVwgOwor56C05aOK5Li7576pID4gaGFrYWlzaHVnaVwgOwor5a6H5a6Z5Z+65ZywID4gdWNodXVraWNoaVwgOwor5LiN5Y+v55+l6KuWID4gZnVrYWNoaXJvblwgOwor6Ieq6KGb5omL5q61ID4gamllaXNodWRhblwgOwor5bCP5aOy5YCk5q61ID4ga291cmluZWRhblwgOwor5biC5aC06KaP5qihID4gc2hpam91a2lib1wgOwor6K2w5ZOh56uL5rOVID4gZ2lpbnJpcHBvdVwgOwor5a2m57Sa5aeU5ZOhID4gZ2Fra3l1dWlpblwgOwor6K2w5Lya5Li7576pID4gZ2lrYWlzaHVnaVwgOwor5Z+656SO56eR5a2mID4ga2lzb2thZ2FrdVwgOwor5o2c5p+75pys6YOoID4gc291c2Fob25idVwgOwor5a6H5a6Z5o6i5p+7ID4gdWNodXV0YW5zYVwgOwor5Lqc6bq757mU54mpID4gYW1hb3JpbW9ub1wgOwor6aCG5bqP5LiN5ZCMID4ganVuam9mdWRvdVwgOwor57WM5riI5o+05YqpID4ga2VpemFpZW5qb1wgOwor57Sv566X5rip5bqmID4gcnVpc2Fub25kb1wgOwor5rWq5ryr5Li7576pID4gcm9tYW5zaHVnaVwgOwor5q2m6KOF6YO95biCID4gYnVzb3V0b3NoaVwgOwor5bmz5ZKM5Zu95a62ID4gaGVpd2Frb2trYVwgOwor6YGT6Lev5Zyw5ZuzID4gZG91cm9jaGl6dVwgOwor5b6h5pyx5Y2w6Ii5ID4gZ29zaHVpbnNlblwgOwor5aSc6YOO6Ieq5aSnID4geWFyb3VqaWRhaVwgOwor6YOo5YiG5ZCm5a6aID4gYnVidW5oaXRlaVwgOwor6Kyb5ZKM5Lya6K2wID4ga291d2FrYWlnaVwgOwor57eo57WE5qmf5qKwID4gaGVuc29raWthaVwgOwor5Yy755mC5Zmo5qKwID4gaXJ5b3VraWthaVwgOwor5q2j6KaP5YiG5biDID4gc2Vpa2lidW5wdVwgOwor5Lya5ZOh5ZCN57C/ID4ga2FpaW5tZWlib1wgOwor5aSp5aSJ5Zyw55WwID4gdGVucGVuY2hpaVwgOwor5pyJ5Y+y5Lul5p2lID4geXV1c2hpaXJhaVwgOwor5L+d6K236Zai56iOID4gaG9nb2thbnplaVwgOwor5pyq5biw6YKE6ICFID4gbWlraWthbnNoYVwgOwor5LiJ5pel5Z2K5Li7ID4gbWlra2Fib3V6dVwgOwor56K65Zu65LiN5YuVID4ga2Fra29mdWRvdVwgOwor5LiN5YG05LiN6ZuiID4gZnVzb2t1ZnVyaVwgOwor5paH5oi/5YW35bGLID4gYnVuYm91Z3V5YVwgOwor5bq354WV5a2X5YW4ID4ga291a2lqaXRlblwgOwor5pyq5p2l5rC45YqrID4gbWlyYWllaWdvdVwgOwor54Sh55CG566X5q61ID4gbXVyaXNhbmRhblwgOwor6Jme576O5Lq66I2JID4gZ3ViaWppbnNvdVwgOwor6LGh54mZ57Sw5belID4gem91Z2V6YWlrdVwgOwor5ruF6Iy25ruF6Iy2ID4gbWVjaGFtZWNoYVwgOwor6aKo6LuK5bCP5bGLID4gZnV1c2hhZ295YVwgOwor5a2Q5L6b6YOo5bGLID4ga29kb21vYmV5YVwgOwor5rGC5oSb6KqH56S6ID4ga3l1dWFpa29qaVwgOwor546L5pS/5b6p5Y+kID4gb3VzZWlmdWtrb1wgOwor5LiA5Lq66YOo5bGLID4gaGl0b3JpYmV5YVwgOwor5LiN6LK36YGL5YuVID4gZnViYWl1bmRvdVwgOwor5ZCd5ZeH5ZCd5ZeHID4ga2VjaGlrZWNoaVwgOwor5a6a5pyf6aCQ6YeRID4gdGVpa2l5b2tpblwgOwor5LiA5a6a5pyf6ZaTID4gaXR0ZWlraWthblwgOwor5Zyw5LiL6YGL5YuVID4gY2hpa2F1bmRvdVwgOwor5oeQ55aR5Li7576pID4ga2FpZ2lzaHVnaVwgOwor6J6N6YCa54Sh56KNID4geXV1enV1bXVnZVwgOwor5L+d5a6J6KaB5ZOhID4gaG9hbicneW91aW5cIDsKK+S4u+aIkeS4u+e+qSA+IHNodWdhc2h1Z2lcIDsKK+S4jeS9nOeCuueKryA+IGZ1c2FrdWloYW5cIDsKK+iIl+ijheeFieeTpiA+IGhvc291cmVuZ2FcIDsKK+aKleW9seWbs+azlSA+IHRvdWVpenVob3VcIDsKK+e3j+eKtuiKseW6jyA+IHNvdWpvdWtham9cIDsKK+a4hea1hOeEoeWeoiA+IHNlaWpvdW11a3VcIDsKK+S4iemdouiomOS6iyA+IHNhbm1lbmtpamlcIDsKK+aJjeawl+e4puaoqiA+IHNhaWtpanV1b3VcIDsKK+acrOS9jeiyqOW5oyA+IGhvbicnaWthaGVpXCA7Civppqzpub/kuIHlr6cgPiBiYWthdGVpbmVpXCA7Civml6XokaHovp7mm7ggPiBuaXBwb2ppc2hvXCA7CivkvY3nm7jnqbrplpMgPiBpc291a3V1a2FuXCA7CivmtbfkuovooZvmmJ8gPiBrYWlqaWVpc2VpXCA7CivnqbrmsJfmqZ/morAgPiBrdXVraWtpa2FpXCA7CivlhbHlkIzkupXmiLggPiBreW91ZG91aWRvXCA7CivlkIjnkIbkuLvnvqkgPiBnb3VyaXNodWdpXCA7CivlpKnmtKXlvqHlp4kgPiBhbWF0c3VtaWtvXCA7CivlpKnmiYvlj6ToiJ4gPiB0ZW50ZWtvbWFpXCA7CivlpJzlhYnmmYLoqIggPiB5YWtvdWRva2VpXCA7Civoh6rou6Lou4rlsYsgPiBqaXRlbnNoYXlhXCA7Civoh6rlrrbnlKjou4ogPiBqaWtheW91c2hhXCA7CivljZjkvY3liLbluqYgPiB0YW4nJ2lzZWlkb1wgOwor5paH5a2X5oOF5aCxID4gbW9qaWpvdWhvdVwgOwor6KaP5Yi26Kej6ZmkID4ga2lzZWlrYWlqb1wgOwor5rCX54SU5LiH5LiIID4ga2llbmJhbmpvdVwgOwor5LiL5rC05bel5LqLID4gZ2VzdWlrb3VqaVwgOwor5ZCI5oSP5oOF5q27ID4gZ291aWpvdXNoaVwgOwor5q2m6KOF5bmz5ZKMID4gYnVzb3VoZWl3YVwgOwor5LuY5biv5LqL6aCFID4gZnV0YWlqaWtvdVwgOwor6KGM5pa55LiN5piOID4geXVrdWVmdW1laVwgOwor5aSp5rCX5LqI5aCxID4gdGVua2l5b2hvdVwgOwor5LiN5bmz5LiN5rqAID4gZnVoZWlmdW1hblwgOwor6KKr5L+d6Zm66ICFID4gaGlob2tlbnNoYVwgOwor6Kaq5a2Q6Zu76KmxID4gb3lha29kZW53YVwgOwor5aSa5oOF5aSa5oGoID4gdGFqb3V0YWtvblwgOwor57WM5Za256C057a7ID4ga2VpZWloYXRhblwgOwor6LOb5Yqp5Lya5ZOhID4gc2Fuam9rYWlpblwgOwor5LiL6YOo5qeL6YCgID4ga2FidWtvdXpvdVwgOwor5q+O5Zyf5puc5pelID4gbWFpZG95b3ViaVwgOwor5LqI566X5o6q572uID4geW9zYW5zb2NoaVwgOwor5LiN56mP5YiG5a2QID4gZnVvbmJ1bnNoaVwgOwor5Zac5oCS5ZOA5qW9ID4ga2lkb2FpcmFrdVwgOwor5ryi5ZKM6L6e5YW4ID4ga2Fud2FqaXRlblwgOwor5Y+L6Kq85Zu95a62ID4geXV1Z2lrb2trYVwgOwor55u45LqS5L+d6Zm6ID4gc291Z29ob2tlblwgOwor5LqL5aSn5Li7576pID4gamlkYWlzaHVnaVwgOwor5LqU6Lyq5Lya6K2wID4gZ29yaW5rYWlnaVwgOwor6Kqe5b2i5aSJ5YyWID4gZ29rZWloZW5rYVwgOwor6Z2e5oim6ZeY5ZOhID4gaGlzZW50b3VpblwgOwor54Sh5b+154Sh5oOzID4gbXVuZW5tdXNvdVwgOwor5ryU566X5omL6aCGID4gZW56YW50ZWp1blwgOwor5q2m5pat5Li7576pID4gYnVkYW5zaHVnaVwgOwor5LiW6Kmx5Lq66ZaTID4gc2V3YW5pbmdlblwgOwor5bm+5L2V5bmz5Z2HID4ga2lrYWhlaWtpblwgOwor5Lq65bel6ZmN6ZuoID4gamlua291a291dVwgOwor6Ieq5ZWP6Ieq562UID4gamltb25qaXRvdVwgOwor55qH57SA5bm05bqmID4ga291a2luZW5kb1wgOwor5Y+j6IWU5aSW56eRID4ga291a291Z2VrYVwgOwor6ISz5oCn6bq755e6ID4gbm91c2VpbWFoaVwgOwor5LqU5Y2B6Z+z6aCGID4gZ29qdXVvbmp1blwgOwor5ryU566X57K+5bqmID4gZW56YW5zZWlkb1wgOwor5Y2B5a2X5p6254q2ID4ganV1amlrYWpvdVwgOwor5LiN6ICB5LiN5q27ID4gZnVyb3VmdXNoaVwgOwor5LiW55WM5Li7576pID4gc2VrYWlzaHVnaVwgOwor6J666Yi/57Sw5belID4gcmFkZW56YWlrdVwgOwor6KiY6LyJ5LqL6aCFID4ga2lzYWlqaWtvdVwgOwor54Kt57Sg57mK57atID4gdGFuc29zZW4nJ2lcIDsKK+eEoee3mumbu+ipsSA+IG11c2VuZGVud2FcIDsKK+a4qeaDheS4u+e+qSA+IG9uam91c2h1Z2lcIDsKK+WAi+S6uue1jOWWtiA+IGtvamlua2VpZWlcIDsKK+WllOaUvuS4jee+iCA+IGhvbnBvdWZ1a2lcIDsKK+mJhOWZqOaZguS7oyA+IHRla2tpamlkYWlcIDsKK+eJqeS+oemosOiytCA+IGJ1a2thdG91a2lcIDsKK+aXpeacrOiInui4iiA+IG5paG9uYnV5b3VcIDsKK+iBvuWUluWtpuagoSA+IHJvdWFnYWtrb3VcIDsKK+ePvuS7o+iLseiqniA+IGdlbmRhaWVpZ29cIDsKK+WNgeS6jOS9v+W+kiA+IGp1dW5pc2hpdG9cIDsKK+aXpeacrOW6reWckiA+IG5paG9udGVpZW5cIDsKK+mBuuS8neaal+WPtyA+IGlkZW4nJ2FuZ291XCA7Civou43kuovovLjpgIEgPiBndW5qaXl1c291XCA7CivkvLTmgKfpgbrkvJ0gPiBoYW5zZWlpZGVuXCA7CivntYzllrblj4LliqAgPiBrZWllaXNhbmthXCA7CivkuojlgpnpgbjmjJkgPiB5b2Jpc2Vua3lvXCA7CivkuojlgpnoiabpmoogPiB5b2Jpa2FudGFpXCA7CivkuojlgpnpgbjmiYsgPiB5b2Jpc2Vuc2h1XCA7CivkuI3lgLbmiLTlpKkgPiBmdWd1dGFpdGVuXCA7CivlubPlkozpg6jpmoogPiBoZWl3YWJ1dGFpXCA7CivllK/jgIXoq77jgIUgPiBpaWRha3VkYWt1XCA7Civoo4HliKTmspnmsbAgPiBzYWliYW56YXRhXCA7CivllrbliKnms5XkurogPiBlaXJpaG91amluXCA7CivorbDkvJrmlL/msrsgPiBnaWthaXNlaWppXCA7Civpm6jlpKnpoIblu7YgPiB1dGVuanVuJydlblwgOwor5LuY5biv6LK755SoID4gZnV0YWloaXlvdVwgOwor5Luj6K2w5ZOh5ZujID4gZGFpZ2lpbmRhblwgOwor5LqM6YeN6Kqy56iOID4gbmlqdXVrYXplaVwgOwor5om26aSK5o6n6ZmkID4gZnV5b3Vrb3Vqb1wgOwor6KGb5pif6YO95biCID4gZWlzZWl0b3NoaVwgOwor6Zu75rCX5Zue6LevID4gZGVua2lrYWlyb1wgOwor5Zyw5LiL5LqM6ZqOID4gY2hpa2FuaWthaVwgOwor6aCQ6YeR5Y+j5bqnID4geW9raW5rb3V6YVwgOwor6Imy5oGL5rKZ5rGwID4gaXJva29pemF0YVwgOwor6LKo5bmj5L6h5YCkID4ga2FoZWlrYWNoaVwgOwor5q6L5YuZ5pW055CGID4gemFubXVzZWlyaVwgOwor5YWs5Za25L+d6Zm6ID4ga291ZWlob2tlblwgOwor6K2y5rih5ouF5L+dID4gam91dG90YW5wb1wgOwor5LiA5a625Zuj5qySID4gaWtrYWRhbnJhblwgOwor5Luj6K2w5ZOh5LyaID4gZGFpZ2lpbmthaVwgOwor6KOc5q2j5LqI566XID4gaG9zZWl5b3NhblwgOwor6YGO5Ymw6Ziy6KGbID4ga2Fqb3Vib3VlaVwgOwor5LqI5YKZ5bqn5bitID4geW9iaXphc2VraVwgOwor6KGb55Sf5Z+65rqWID4gZWlzZWlraWp1blwgOwor5L+d6K235Zuj5L2TID4gaG9nb2RhbnRhaVwgOwor5YSA6KOF6aas6LuKID4gZ2lzb3ViYXNoYVwgOwor5pmC5LqL5ZWP6aGMID4gamlqaW1vbmRhaVwgOwor5aSr5amm5Zan5ZipID4gZnV1ZnVnZW5rYVwgOwor5pat5Zu65oqX6K2wID4gZGFua29rb3VnaVwgOwor5LqU6Lyq6IGW54GrID4gZ29yaW5zZWlrYVwgOwor6Ieq5YiG5Yud5omLID4gamlidW5rYXR0ZVwgOwor6LuN6ZyA5pmv5rCXID4gZ3VuanVrZWlraVwgOwor5Z+65bqV6YOo6ZaAID4ga2l0ZWlidW1vblwgOwor5Li45aSq5bCP5bGLID4gbWFydXRhZ295YVwgOwor5LqI5oOz5Yip55uKID4geW9zb3VyaWVraVwgOwor5LqU6Z+z6Z+z6ZqOID4gZ29vbicnb25rYWlcIDsKK+eBq+awl+WOs+emgSA+IGtha2lnZW5raW5cIDsKK+WNgeWtl+aetuWDjyA+IGp1dWppa2F6b3VcIDsKK+WHpueQhumBjueoiyA+IHNob3Jpa2F0ZWlcIDsKK+S4gOWumuS4jeWkiSA+IGl0dGVpZnVoZW5cIDsKK+aciOS4i+e+juS6uiA+IGdla2thYmlqaW5cIDsKK+eArOaIuOWGhea1tyA+IHNldG9uYWlrYWlcIDsKK+iAgeaUv+ayu+WutiA+IHJvdXNlaWppa2FcIDsKK+WKn+WIqeS4u+e+qSA+IGtvdXJpc2h1Z2lcIDsKK+imj+WItue3qeWSjCA+IGtpc2Vpa2Fud2FcIDsKK+WmguaYr+aIkeiBniA+IG55b3plZ2Ftb25cIDsKK+aYjuayu+aZguS7oyA+IG1laWppamlkYWlcIDsKK+WQjOWMluS9nOeUqCA+IGRvdWthc2F5b3VcIDsKK+WIpemAlOmgkOmHkSA+IGJldHRveW9raW5cIDsKK+S4i+eoruagueaApyA+IGdlc3Vrb25qb3VcIDsKK+aPtOWKqeS6pOmamyA+IGVuam9rb3VzYWlcIDsKK+WbveS8muitsOWToSA+IGtva2thaWdpaW5cIDsKK+Wcn+WcsOWIqeeUqCA+IHRvY2hpcml5b3VcIDsKK+aghOaer+ebm+ihsCA+IGVpa29zZWlzdWlcIDsKK+ebuOS6kuS9nOeUqCA+IHNvdWdvc2F5b3VcIDsKK+iInuWPsOiho+ijhSA+IGJ1dGFpaXNob3VcIDsKK+WQiOitsOWItuW6piA+IGdvdWdpc2VpZG9cIDsKK+mbjOmbhOeVsOagqiA+IHNoaXl1dWlzaHVcIDsKK+WPjeWwhOiqpOW3riA+IGhhbnNoYWdvc2FcIDsKK+Whqee0oOmFuOWhqSA+IGVuc29zYW4nJ2VuXCA7Civntbblr77oqqTlt64gPiB6ZXR0YWlnb3NhXCA7CivnianmkI3kuovmlYUgPiBidXNzb25qaWtvXCA7Civlhajpg6jkv53pmbogPiB6ZW5idWhva2VuXCA7Civmgqrlt6vlsbHmiK8gPiB3YXJ1ZnV6YWtlXCA7CivmlbTlvaLlpJbnp5EgPiBzZWlrZWlnZWthXCA7CivmrablrrbmlL/mqKkgPiBidWtlc2Vpa2VuXCA7CivkuozpoIXliIbluIMgPiBuaWtvdWJ1bnB1XCA7CivmmKDnlLvkvJrnpL4gPiBlaWdhZ2Fpc2hhXCA7CivpiYTnoLLnmb7lkIggPiB0ZXBwb3V5dXJpXCA7CivlkI3oqonkvJrlk6EgPiBtZWl5b2thaWluXCA7Civlv5zli5/nlKjntJkgPiBvdWJveW91c2hpXCA7Civoh6rmtYTkvZznlKggPiBqaWpvdXNheW91XCA7CivlpJbosqjpoJDph5EgPiBnYWlrYXlva2luXCA7CivmgZDmgJbmmKDnlLsgPiBreW91ZnVlaWdhXCA7CivoqrLnqI7mjqfpmaQgPiBrYXplaWtvdWpvXCA7CivoqLHlrrnoqqTlt64gPiBreW95b3Vnb3NhXCA7CivkuI3lrprmnJ/liJEgPiBmdXRlaWtpa2VpXCA7CivmmI7msrvntq3mlrAgPiBtZWlqaWlzaGluXCA7CivoqIDoqp7mqZ/og70gPiBnZW5nb2tpbm91XCA7Civkv53nqI7lgInluqsgPiBob3plaXNvdWtvXCA7CivljLvnmYLmqZ/plqIgPiBpcnlvdWtpa2FuXCA7Civnn7PkupXogbDkupIgPiBpc2hpaXNvdWdvXCA7Civou43kuovlsIHpjpYgPiBndW5qaWZ1dXNhXCA7CivkvY3pmo7li7LnrYkgPiBpa2Fpa3VudG91XCA7CivogJDngavnhYnnk6YgPiB0YWlrYXJlbmdhXCA7Civlj6Tku4rnhKHpoZ4gPiBrb2tvbm11cnVpXCA7Civpm7vms6LnrqHnkIYgPiBkZW5wYWthbnJpXCA7CivmsJHkuovkuovku7YgPiBtaW5qaWppa2VuXCA7Civoh6rnhLbkv53orbcgPiBzaGl6ZW5ob2dvXCA7CivnlLvlg4/lh6bnkIYgPiBnYXpvdXNob3JpXCA7CivnqK7nqK7pm5HlpJogPiBzaHVqdXphdHRhXCA7CivmmKDnlLvkv7PlhKogPiBlaWdhaGFpeXV1XCA7Civnm67ojLbnm67ojLYgPiBtZWNoYW1lY2hhXCA7Civno4HmsJfpjLLpn7MgPiBqaWtpcm9rdW9uXCA7CivkuI3ljZTlkozpn7MgPiBmdWt5b3V3YW9uXCA7CivmnKzkvY3oqJjlj7cgPiBob24nJ2lraWdvdVwgOwor6KGb55Sf566h55CGID4gZWlzZWlrYW5yaVwgOwor55u45LqS5Li7576pID4gc291Z29zaHVnaVwgOwor5b+c5Yuf6LOH6YeRID4gb3Vib3NoaWtpblwgOwor5b6p5Y+k5Li7576pID4gZnVra29zaHVnaVwgOwor5qyh5Lqc56Gr6YW4ID4gamlhcnl1dXNhblwgOwor5bmz5a6J5pmC5LujID4gaGVpYW5qaWRhaVwgOwor5oOF5aCx5qmf5ZmoID4gam91aG91a2lraVwgOwor5LiJ5L2N5LiA5L2TID4gc2FubWlpdHRhaVwgOwor5pS/5YuZ5qyh5a6YID4gc2VpbXVqaWthblwgOwor6ZuM6ZuE55Ww5L2TID4gc2hpeXV1aXRhaVwgOwor5q2m5pat5pS/5rK7ID4gYnVkYW5zZWlqaVwgOwor6YW45YyW54Kt57SgID4gc2Fua2F0YW5zb1wgOwor5rC05b2p55S75a62ID4gc3Vpc2FpZ2FrYVwgOwor5Z+656SO5Luj6KydID4ga2lzb3RhaXNoYVwgOwor5LiA5p2v5qmf5auMID4gaXBwYWlraWdlblwgOwor6YGT6Lev6Ly46YCBID4gZG91cm95dXNvdVwgOwor5Lqc54ax5biv5p6XID4gYW5ldHRhaXJpblwgOwor6Z2S5oGv5ZCQ5oGvID4gYW9pa2l0b2lraVwgOwor5oWH5oeD54Sh56S8ID4gaW5naW5idXJlaVwgOwor57Oe55yf6Z2i55uuID4ga3Vzb21hamltZVwgOwor6Ieq5Li76KaP5Yi2ID4gamlzaHVraXNlaVwgOwor5byl55Sf5pmC5LujID4geWF5b2lqaWRhaVwgOwor55uu6Iy26Ium6Iy2ID4gbWVjaGFrdWNoYVwgOwor5LqI5YKZ5Lya6KuHID4geW9iaWthaWRhblwgOwor562J5L2N5qeL6YCgID4gdG91aWtvdXpvdVwgOwor5LuW5rWB6Kmm5ZCIID4gdGFyeXV1amlhaVwgOwor5a6J5a6a5pON5L2cID4gYW50ZWlzb3VzYVwgOwor54Sh5YSf6KGM54K6ID4gbXVzaG91a291aVwgOwor5aSP5pyf5LyR5pqHID4ga2FraWt5dXVrYVwgOwor5aSP5pyf5a2m5qChID4ga2FraWdha2tvdVwgOwor5a6H5a6Z5Yy75a2mID4gdWNodXVpZ2FrdVwgOwor5ZCN6KqJ6Zmk6ZqKID4gbWVpeW9qb3RhaVwgOwor5LqU6IeT5YWt6IWRID4gZ296b3Vyb3BwdVwgOwor5Z+36KGM5aeU5ZOhID4gc2hpa2tvdWlpblwgOwor5Zub6Z2i5qWa5q2MID4gc2hpbWVuc29rYVwgOwor5aiB6aKo5aCC5aCCID4gaWZ1dWRvdWRvdVwgOwor6LuN5LqL5Lya6K2wID4gZ3VuamlrYWlnaVwgOwor6Leb6KGM5pmv5rCXID4gaGFrb3VrZWlraVwgOwor6aWC6aOp57KJ55eFID4gdWRvbmtvYnlvdVwgOwor5aSp5LiL5LiA5ZOBID4gdGVua2FpcHBpblwgOwor5Z+65Zyw6ZaJ6Y6WID4ga2ljaGloZWlzYVwgOwor562G6KiY55So5YW3ID4gaGlra2l5b3VndVwgOwor6JK45rCX5qmf6ZaiID4gam91a2lraWthblwgOwor56OB5rCX5oq15oqXID4gamlraXRlaWtvdVwgOwor5LiB5a2X5a6a6KaPID4gdGVpamlqb3VnaVwgOwor5Zu65a6a6YeR5YipID4ga290ZWlraW5yaVwgOwor6LW35YuV5pmC6ZaTID4ga2lkb3VqaWthblwgOwor6Ieq5bex5qy6556eID4gamlrb2dpbWFuXCA7CivmhbDlronml4XooYwgPiBpYW5yeW9rb3VcIDsKK+mbu+awl+WZqOWFtyA+IGRlbmtpa2lndVwgOwor5Y2x5qmf5omT6ICFID4ga2lraWRhc2hhXCA7CivloanljJbmsLTntKAgPiBlbmthc3Vpc29cIDsKK+S6uuS6i+eVsOWLlSA+IGppbmppaWRvdVwgOwor5Lqc6Ymb6YmE5p2/ID4gYWVudGVwcGFuXCA7Civpga7kuoznhKHkuowgPiBzaGFuaW11bmlcIDsKK+mBuuS8neWcsOWbsyA+IGlkZW5jaGl6dVwgOwor5LiN5rOV6KGM54K6ID4gZnVob3Vrb3VpXCA7CivmrbvkvZPpgbrmo4QgPiBzaGl0YWlpa2lcIDsKK+WGhemHjuWuieaJkyA+IG5haXlhYW5kYVwgOwor5bmz56mP54Sh5LqLID4gaGVpb25idWppXCA7CivmmI7mmI7lvozml6UgPiBzaGlhc2F0dGVcIDsKK+S4gOawl+WRteaIkCA+IGlra2lrYXNlaVwgOwor5q2m5Zmo6LK45LiOID4gYnVraXRhaXlvXCA7CivkuIDlpKvlpJrlprsgPiBpcHB1dGFzYWlcIDsKK+WNseapn+eqgeegtCA+IGtpa2l0b3BwYVwgOwor5Yy755mC5qmf5ZmoID4gaXJ5b3VraWtpXCA7CivlpKnkuIvnhKHmr5QgPiB0ZW5rYW11aGlcIDsKK+aOqeitt+mDqOmaiiA+IGVuZ29idXRhaVwgOwor6aas6bm/6YeO6YOOID4gYmFrYXlhcm91XCA7Civlj6Poqp7oi7Hoqp4gPiBrb3Vnb2VpZ29cIDsKK+mJhOeBq+WRs+WZjCA+IHRla2thbWlzb1wgOwor6Zi/5byl6ZmA57WMID4gYW1pZGFreW91XCA7CivpmL/lvKXpmYDnsaQgPiBhbWlkYWt1amlcIDsKK+WtmOWcqOaEj+e+qSA+IHNvbnphaWlnaVwgOwor5Y+I5b6T5YWE5byfID4gbWF0YWl0b2tvXCA7Civnvr3mr5vluIPlm6MgPiB1bW91ZnV0b25cIDsKK+WIqeW3seS4u+e+qSA+IHJpa29zaHVnaVwgOwor5Za25Yip5Li7576pID4gZWlyaXNodWdpXCA7CivnhKHlo7DmmKDnlLsgPiBtdXNlaWVpZ2FcIDsKK+ijnOWKqea8ouWtlyA+IGhvam9rYW5qaVwgOwor5ZKM6Iux6L6e5pu4ID4gd2FlaWppc2hvXCA7CivlkIzkvY3lhYPntKAgPiBkb3VpZ2Vuc29cIDsKK+WGjeW+k+WFhOW8nyA+IGZ1dGFpdG9rb1wgOwor5Lqc6Ymb5Ye454mIID4gYWVudG9wcGFuXCA7Civno4HmsJfmta7kuIogPiBqaWtpZnVqb3VcIDsKK+S4jeazleenu+awkSA+IGZ1aG91aW1pblwgOwor6LaK5qip6KGM54K6ID4gZWtrZW5rb3VpXCA7CivkuLvmhI/kuLvnvqkgPiBzaHVpc2h1Z2lcIDsKK+iHquW3seaknOafuyA+IGppa29rZW5zYVwgOwor5aSa5LqL5aSa6ZujID4gdGFqaXRhbmFuXCA7CivvvKHvvKLvvKPpoIYgPiDEk2LEq3NoxKtqdW5cIDsKK+aEj+awl+aPmuaPmiA+IGlraXlvdXlvdVwgOwor5ZKM6Iux6L6e5YW4ID4gd2FlaWppdGVuXCA7CivkuI3mhI/oqabpqJMgPiBmdWlzaGlrZW5cIDsKK+aooeevhOippuWQiCA+IG1vaGFuamlhaVwgOwor5LqM6YeN5q+N6Z+zID4gbmlqdXVib2luXCA7CivmoITogIDmoIToj68gPiBlaXlvdWVpZ2FcIDsKK+avjeiqnuipseiAhSA+IGJvZ293YXNoYVwgOwor5pyo5oi45b6h5YWNID4ga2lkb2dvbWVuXCA7Civoh6rlt7Hnlo7lpJYgPiBqaWtvc29nYWlcIDsKK+WfuuekjuaOp+mZpCA+IGtpc29rb3Vqb1wgOwor5LiA5a6a5rip5bqmID4gaXR0ZWlvbmRvXCA7CivmiYvliY3lkbPlmYwgPiB0ZW1hZW1pc29cIDsKK+WFgeaWh+WFgeatpiA+IGluYnVuaW5idVwgOwor6Ieq5pq06Ieq5qOEID4gamlib3VqaWtpXCA7Civnm7jmkrLpg6jlsYsgPiBzdW1vdWJleWFcIDsKK+iHquW3seS/neWtmCA+IGppa29ob3pvblwgOwor5aSa5LqL5aSa56uvID4gdGFqaXRhdGFuXCA7CivmmI7jgIXlvozml6UgPiBzaGlhc2F0dGVcIDsKK+abluaYp+aooeeziiA+IGFpbWFpbW9rb1wgOwor5LqL5YuZ5qyh5a6YID4gamltdWppa2FuXCA7CivmsJflrofluoPlpKcgPiBraXVrb3VkYWlcIDsKK+WkmuaVsOaEj+imiyA+IHRhc3V1aWtlblwgOwor5q2v56eR5Yy75birID4gc2hpa2Fpc2hpXCA7Civnvo7ljJbpgYvli5UgPiBiaWthdW5kb3VcIDsKK+iHquW3seS4u+e+qSA+IGppa29zaHVnaVwgOwor5a6f6KGM5aeU5ZOhID4gamlra291aWluXCA7CivlkIjmsJfpgZPlrrYgPiBhaWtpZG91a2FcIDsKK+mBuuaXj+aJtuWKqSA+IGl6b2t1ZnVqb1wgOwor5aiR576F5Y+M5qi5ID4gc2FyYXNvdWp1XCA7CivmhI/msJfmj5rjgIUgPiBpa2l5b3V5b3VcIDsKK+iHquW3semhleekuiA+IGppa29rZW5qaVwgOwor6Ieq5bex6LKg5ouFID4gamlrb2Z1dGFuXCA7CivpnLLlpKnpoqjlkYIgPiByb3RlbmJ1cm9cIDsKK+aEj+awl+aKleWQiCA+IGlraXRvdWdvdVwgOwor6YGL5ZCm5aSp6LOmID4gdW5wdXRlbnB1XCA7Civlr4zmoITppIrljJYgPiBmdWVpeW91a2FcIDsKK+WNsOW6puaUr+mCoyA+IGluZG9zaGluYVwgOwor5qyn5YyW5Li7576pID4gb3VrYXNodWdpXCA7CivnhKHkuoznhKHkuIkgPiBtdW5pbXV6YW5cIDsKK+S4ieaXpeS4ieWknCA+IG1pa2thbWl5b1wgOwor54mh5Li55rW36ICBID4gYm90YW4nJ2ViaVwgOwor6Zu75rCX5qmf5ZmoID4gZGVua2lraWtpXCA7Civoh6rlt7Hlq4zmgqogPiBqaWtva2VuJydvXCA7Civln7rmnKzlkIjmhI8gPiBraWhvbmdvdWlcIDsKK+Wwj+WFkOenkeWMuyA+IHNob3VuaWthaVwgOwor5oiR5q2m6ICF576FID4gZ2FtdXNoYXJhXCA7Civoh6rlt7HniqDnibIgPiBqaWtvZ2lzZWlcIDsKK+ebuOS6kuaJtuWKqSA+IHNvdWdvZnVqb1wgOwor5ZCM6Z+z55Ww576pID4gZG91b24nJ2lnaVwgOwor6Ieq5bex5pys5L2NID4gamlrb2hvbicnaVwgOwor55Ww5bi46auY5ripID4gaWpvdWtvdW9uXCA7Civou43kuovmj7TliqkgPiBndW5qaWVuam9cIDsKK+W8iuiho+egtOW4vSA+IGhlaWloYWJvdVwgOwor5LiD5LqU5LiJ57iEID4gc2hpbWVuYXdhXCA7CivmlofljJbpgbrnlKMgPiBidW5rYWlzYW5cIDsKK+WPiOW+k+WnieWmuSA+IG1hdGFpdG9rb1wgOwor6Ieq5a625Y+X57K+ID4gamlrYWp1c2VpXCA7Civoh6rlrrblj5fnsokgPiBqaWthanVmdW5cIDsKK+awkeeUn+WnlOWToSA+IG1pbnNlaWlpblwgOwor5oSb5LuW5Li7576pID4gYWl0YXNodWdpXCA7CivkuIDlhZrkuIDmtL4gPiBpdHRvdWlwcGFcIDsKK+aAquWlh+aYoOeUuyA+IGthaWtpZWlnYVwgOwor6YeI6L+m54mf5bC8ID4gc2hha2FtdW5pXCA7CivnpL7kvJrntYzmuIggPiBzaGFrYWlrZWlcIDsKK+e1kOi3j+i2uuW6pyA+IGtla2thZnV6YVwgOwor6JOW6bq75a2Q5rK5ID4gaGltYXNoaXl1XCA7CivlpKnmsJflhbflkIggPiB0ZW5raWd1YWlcIDsKK+S4gOWPo+WQjOmfsyA+IGlra3Vkb3VvblwgOwor5LiN5Y+v5oCd6K2wID4gZnVrYXNoaWdpXCA7CivljLvkuovkvJ3pgZMgPiBpamlkZW5kb3VcIDsKK+mfs+mDqOiomOWPtyA+IG9uYnVraWdvdVwgOwor5aWI6Imv5pmC5LujID4gbmFyYWppZGFpXCA7CivogLPpvLvlkr3llokgPiBqaWJpaW5rb3VcIDsKK+epuuawl+axmuafkyA+IGt1dWtpb3NlblwgOwor54OP5bi95a2Q6LKdID4gZWJvc2hpZ2FpXCA7CivmnInosaHnhKHosaEgPiB1em91bXV6b3VcIDsKK+i1t+iotOeMtuS6iCA+IGtpc295dXV5b1wgOwor5LyK5Yui56We5a6uID4gaXNlamluZ3V1XCA7CivlsLjkvY3ntKDppJAgPiBzaGlpc29zYW5cIDsKK+mHjuWkqemiqOWRgiA+IG5vdGVuYnVyb1wgOwor54Sh55CG54Sh5L2TID4gbXVyaW11dGFpXCA7CivmhI/msJfou5Lpq5ggPiBpa2lrZW5rb3VcIDsKK+iqnuWwvuWkieWMliA+IGdvYmloZW5rYVwgOwor5Lmd5YiG5Lmd5Y6YID4ga3VidWt1cmluXCA7Civoh6rlt7Hopo/liLYgPiBqaWtva2lzZWlcIDsKK+WQjOWnlOWToeS8miA+IGRvdWlpbmthaVwgOwor5rKZ576F5Y+M5qi5ID4gc2FyYXNvdWp1XCA7CivkuIDlprvlpJrlpKsgPiBpc3NhaXRhZnVcIDsKK+S4jeato+ihjOeCuiA+IGZ1c2Vpa291aVwgOwor54++54q257at5oyBID4gZ2Vuam91aWppXCA7Civnvo7ovp7pupflj6UgPiBiaWppcmVpa3VcIDsKK+S4jeiogOS4jeiqniA+IGZ1Z2VuZnVnb1wgOwor5LiL6YOo5qmf6ZaiID4ga2FidWtpa2FuXCA7CivlgIvkurroqqTlt64gPiBrb2ppbmdvc2FcIDsKK+iHqueUseaEj+W/lyA+IGppeXV1aXNoaVwgOwor5LqM5qyh6KiY5oa2ID4gbmlqaWtpb2t1XCA7CivljLrkvJrorbDlk6EgPiBrdWthaWdpaW5cIDsKK+WPpOS6i+iomOS8nSA+IGtvamlraWRlblwgOwor54Sh54K654Sh562WID4gbXVpbXVzYWt1XCA7CivlsI/nlJ/mhI/msJcgPiBrb25hbWFpa2lcIDsKK+axmuafk+mZpOWOuyA+IG9zZW5qb2t5b1wgOwor5om26aSK576p5YuZID4gZnV5b3VnaW11XCA7Civmk6zlj6TkuLvnvqkgPiBnaWtvc2h1Z2lcIDsKK+S5neWvuOS6lOWIhiA+IGt1c3VuZ29idVwgOwor5oSP5rCX6LuS5piCID4gaWtpa2Vua291XCA7CivlpbPpg47onJjom5sgPiBqb3JvdWd1bW9cIDsKK+S4jemaj+aEj+etiyA+IGZ1enVpaWtpblwgOwor56e76KGM5pyf6ZaTID4gaWtvdWtpa2FuXCA7Civku5jliqDkvqHlgKQgPiBmdWtha2FjaGlcIDsKK+Wcn+WjjOaxmuafkyA+IGRvam91b3NlblwgOwor5LiK6Zmi6K2w5ZOhID4gam91aW5naWluXCA7CivlvqHlrrbpqJLli5UgPiBvaWVzb3Vkb3VcIDsKK+S6jOW6puS4ieW6piA+IG5pZG9zYW5kb1wgOwor6auY56WW6aCt5be+ID4ga29zb3p1a2luXCA7Civkuojlgpnpg6jlk4EgPiB5b2JpYnVoaW5cIDsKK+iHquW3seaJueWIpCA+IGppa29oaWhhblwgOwor6Ieq55S76Ieq6LObID4gamlnYWppc2FuXCA7Civoh6rnlLvoh6rorpogPiBqaWdhamlzYW5cIDsKK+mmluS9jeaJk+iAhSA+IHNodWlkYXNoYVwgOwor5Zug5p6c5b+c5aCxID4gaW5nYW91aG91XCA7CivkuIvlpbPkuIvnlLcgPiBnZWpvZ2VuYW5cIDsKK+WuiealveakheWtkCA+IGFucmFrdWlzdVwgOwor5aeU5ZOh5LuY6KiXID4gaWluZnV0YWt1XCA7CivkuojlgpnpgYvli5UgPiB5b2JpdW5kb3VcIDsKK+mBuueUo+euoeeQhiA+IGlzYW5rYW5yaVwgOwor5LqJ6K2w6KGM54K6ID4gc291Z2lrb3VpXCA7CivpurvlqYbosYbohZAgPiBtxIFib2RvdWZ1XCA7CivmlofljJbmmKDnlLsgPiBidW5rYWVpZ2FcIDsKK+aEj+WRs+WGheWuuSA+IGltaW5haXlvdVwgOwor5LqI5YKZ5Yik5LqLID4geW9iaWhhbmppXCA7CivmrablrrbmmYLku6MgPiBidWtlamlkYWlcIDsKK+WMu+eZgumBjuiqpCA+IGlyeW91a2Fnb1wgOwor5q2m5a625pS/5rK7ID4gYnVrZXNlaWppXCA7CivlpbPnjovpmZvkuIsgPiBqb291aGVpa2FcIDsKK+Wkp+awl+axmuafkyA+IHRhaWtpb3NlblwgOwor5Z+656SO5bel5LqLID4ga2lzb2tvdWppXCA7CivnhKHnkIblvoDnlJ8gPiBtdXJpb3Vqb3VcIDsKK+S9leaZguaZguWIhiA+IGl0c3VqaWJ1blwgOwor55u45LqS5L6d5a2YID4gc291Z29pem9uXCA7Civoqp7lvZnopo/liYcgPiBnb2lraXNva3VcIDsKK+iHquW3seW8geittyA+IGppa29iZW5nb1wgOwor5LqU5Y2B6Z+z5ZuzID4gZ29qdXVvbnp1XCA7CivliKnku5bkuLvnvqkgPiByaXRhc2h1Z2lcIDsKK+WKoOaMgeeliOeltyA+IGthamlraXRvdVwgOwor6Iqx5Y2J5ZyS6Iq4ID4ga2FraWVuZ2VpXCA7Civlkozoo73oi7Hoqp4gPiB3YXNlaWVpZ29cIDsKK+S7ruWQjeaJi+acrCA+IGthbmFkZWhvblwgOwor6Iux5ZKM6L6e5YW4ID4gZWl3YWppdGVuXCA7CivkuojlgpnkvJrorbAgPiB5b2Jpa2FpZ2lcIDsKK+S6jOmZouWItuW6piA+IG5paW5zZWlkb1wgOwor5aSP5pyf5pmC6ZaTID4ga2FraWppa2FuXCA7CivkupXmiLjlsYvlvaIgPiBpZG95YWthdGFcIDsKK+iHquW3seefm+ebviA+IGppa29tdWp1blwgOwor5Y2x5qmf566h55CGID4ga2lraWthbnJpXCA7Civln7rnpI7kvZPmuKkgPiBraXNvdGFpb25cIDsKK+ebguiYreebhuS8miA+IHVyYWJvbicnZVwgOwor5Yy756eR5q2v56eRID4gaWthc2hpa2FcIDsKK+S6jOW6puaJi+mWkyA+IG5pZG9kZW1hXCA7Civkuo7omK3nm4bkvJogPiB1cmFib24nJ2VcIDsKK+aBteavlOWvv+mhlCA+IGViaXN1Z2FvXCA7CivmhJrlm7PmhJrlm7MgPiBndXp1Z3V6dVwgOwor5ZKM5rCX6Je56Je5ID4gd2FraWFpYWlcIDsKK+S4jeecn+mdouebriA+IGZ1bWFqaW1lXCA7CivlvpfmiYvli53miYsgPiBldGVrYXR0ZVwgOwor5a+E5LuY6KGM54K6ID4ga2lmdWtvdWlcIDsKK+S5juWPpOatoueCuSA+IG9rb3RvdGVuXCA7Civlr4zlo6vkupTmuZYgPiBmdWppZ29rb1wgOwor5piv5piv6Z2e6Z2eID4gemV6ZWhpaGlcIDsKK+aIkeWIqeaIkeWIqSA+IGdhcmlnYXJpXCA7CivmsZ/miLjmmYLku6MgPiBlZG9qaWRhaVwgOwor5q2v56eR5Yy76ZmiID4gc2hpa2FpaW5cIDsKK+aEj+awl+mYu+WWqiA+IGlraXNvc291XCA7CivpgZXniq/ooYzngrogPiBpaGFua291aVwgOwor5oG15q+U6aCI6KybID4gZWJpc3Vrb3VcIDsKK+S4gOatqeS4gOatqSA+IGlwcG9pcHBvXCA7CivlkozmsJfol7njgIUgPiB3YWtpYWlhaVwgOwor54Sh5pyf5bu25pyfID4gbXVraWVua2lcIDsKK+i1pOmzpei1pOiFuSA+IGFrYWtva2tvXCA7CivlpKnniL7kuY7ms6IgPiB0ZW5pd29oYVwgOwor5L6d5oCZ6LSU5bGTID4gZWtvaGlpa2lcIDsKK+S6i+WLmeapn+WZqCA+IGppbXVraWtpXCA7Civoh6rlt7HmmpfnpLogPiBqaWtvYW5qaVwgOwor5Lyv5YmM6KW/54i+ID4gYnVyYWppcnVcIDsKK+S4i+mZouitsOWToSA+IGthaW5naWluXCA7Civpm7vmsJfmpIXlrZAgPiBkZW5raWlzdVwgOwor5bmz5ZKM57at5oyBID4gaGVpd2FpamlcIDsKK+acieeCuui7ouWkiSA+IHVpdGVucGVuXCA7Civoi7HlsI/mloflrZcgPiBlaWtvbW9qaVwgOwor5L2V5Yem5YW25YemID4gZG9rb3Nva29cIDsKK+W8lueIvuS5juazoiA+IHRlbml3b2hhXCA7Civlh7rmnaXlhbflkIggPiBkZWtpZ3VhaVwgOwor5oSP5ZGz6YOo6ZaAID4gaW1pYnVtb25cIDsKK+Wcn+W3puihm+mWgCA+IGRvemFlbW9uXCA7CivmhI/lkbPljp/nkIYgPiBpbWlnZW5yaVwgOwor5L6d5Lyw6LSU5bGTID4gZWtvaGlpa2lcIDsKK+WppuS6uuenkeWMuyA+IGZ1amlua2FpXCA7Civng4/luL3lrZDlkI0gPiBlYm9zaGluYVwgOwor6aKo6YKq5rCX5ZGzID4ga2F6ZWdpbWlcIDsKK+W3pumhp+WPs+echCA+IHNha291YmVuXCA7Civku67lkI3mloflrZcgPiBrYW5hbW9qaVwgOwor5Zyw5LiL6Laz6KKLID4gamlrYXRhYmlcIDsKK+Wkp+ecn+mdouebriA+IG9vbWFqaW1lXCA7CivmpJzpnZ7pgZXkvb8gPiBrZWJpaXNoaVwgOwor5b6h54Sh5rKZ5rGwID4gZ29idXNhdGFcIDsKK+WPs+mhp+W3puechCA+IHVrb3NhYmVuXCA7CivpgZXms5XooYzngrogPiBpaG91a291aVwgOwor5Lya5oSP5paH5a2XID4ga2FpaW1vamlcIDsKK+WQiOe4geWlh+e4gSA+IGFpZW5raWVuXCA7Civnm6Pmn7vlp5Tlk6EgPiBrYW5zYWlpblwgOwor55Ww5Y+j5ZCM6Z+zID4gaWt1ZG91b25cIDsKK+W8leeBq+a4qeW6piA+IGlua2FvbmRvXCA7CivpmL/lj6TlsYvosp0gPiBha295YWdhaVwgOwor55Sf55yf6Z2i55uuID4ga2ltYWppbWVcIDsKK+aYr+OAhemdnuOAhSA+IHplemVoaWhpXCA7CivnhKHnkIbnn6LnkIYgPiBtdXJpeWFyaVwgOwor56S65aiB6YGL5YuVID4gamlpdW5kb3VcIDsKK+S4gOWkq+S4gOWppiA+IGlwcHVpcHB1XCA7CivkupTliIbkupTliIYgPiBnb2J1Z29idVwgOwor5aSp54i+6YGg5rOiID4gdGVuaXdvaGFcIDsKK+W+jOmzpee+vemZoiA+IGdvdG9iYWluXCA7CivmnInogLbnhKHogLYgPiB1eWFtdXlhXCA7CivkupznsbPliKnliqAgPiBhbWVyaWthXCA7CivojY/og6HpurvmsrkgPiBlZ29tYXl1XCA7Civnmq7ohprnp5HljLsgPiBoaWZ1a2FpXCA7Civlj7PlvoDlt6blvoAgPiB1b3VzYW91XCA7Civkupzpurvku4HmsrkgPiBhbWFuaXl1XCA7Civpmpzms6Xng4/os4ogPiBhb3JpaWthXCA7CivlvqHmiqvpnLLnm64gPiBvaGlyb21lXCA7CivotaTllYTmnKjps6UgPiBha2FnZXJhXCA7Civkv53orbflp5Tlk6EgPiBob2dvaWluXCA7CivpmL/lvJfliKnliqAgPiBhZnVyaWthXCA7Civku4rml6XmmI7ml6UgPiBreW91YXN1XCA7Civkupzmi4nmr5jkupwgPiBhcmFiaWFcIDsKK+S8iuWLoua1t+iAgSA+IGlzZWViaVwgOwor5Lqc5YmM5q+U5LqcID4gYXJhYmlhXCA7Civnt5HllYTmnKjps6UgPiBhb2dlcmFcIDsKK+W+oeebruimi+W+lyA+IG9tZW1pZVwgOwor5a+/5pWZ5a6kID4ga290b2J1a2lreW91c2hpdHN1XCA7Civnp4HlsI/oqqwgPiB3YXRha3VzaGlzaG91c2V0c3VcIDsKK+S4g+S4g+aXpSA+IHNoaWNoaXNoaWNoaW5pY2hpXCA7CivntKvpnLLojYkgPiBtdXJhc2FraXRzdXl1a3VzYVwgOwor5LiD44CF5pelID4gc2hpY2hpc2hpY2hpbmljaGlcIDsKK+i7veWPo+ipsSA+IGthcnVrdWNoaWJhbmFzaGlcIDsKK+akjeeJqeizqiA+IHNob2t1YnV0c3VzaGl0c3VcIDsKK+Wuv+ebtOWupCA+IHNodWt1Y2hva3VzaGl0c3VcIDsKK+S4gOWPo+ipsSA+IGhpdG9rdWNoaWJhbmFzaGlcIDsKK+etjeeUn+a0uyA+IHRha2Vub2tvc2Vpa2F0c3VcIDsKK+itsua4oeS6uiA+IHl1enVyaXdhdGFzaGluaW5cIDsKK+WGheW5leipsSA+IHVjaGltYWt1YmFuYXNoaVwgOwor6ZuG5pyt5L+CID4gc2h1dXNhdHN1Z2FrYXJpXCA7Civph5Hmp4zpoK0gPiBrYW5hZHp1Y2hpYXRhbWFcIDsKK+WHuuacreaOmyA+IHNodXNzYXRzdWdha2FyaVwgOwor5LiJ5oyH6bSOID4gbWl0c3V5dWJpa2Ftb21lXCA7Civlh7rmnK3kv4IgPiBzaHVzc2F0c3VnYWthcmlcIDsKK+iFsOi1pOeHlSA+IGtvc2hpYWthdHN1YmFtZVwgOwor6Ki65a+f5a6kID4gc2hpbnNhdHN1c2hpdHN1XCA7CivorZjliKXlipsgPiBzaGlraWJldHN1cnlva3VcIDsKK+engeiHqui6qyA+IHdhdGFrdXNoaWppc2hpblwgOwor5bmz5riF55ubID4gdGFpcmFub2tpeW9tb3JpXCA7CivlhaXlh7rlipsgPiBueXV1c2h1dHN1cnlva3VcIDsKK+e0m+WkseWxiiA+IGZ1bnNoaXRzdXRvZG9rZVwgOwor5rGC6IG35L+CID4ga3l1dXNob2t1Z2FrYXJpXCA7Civph5Hlo7rnnLwgPiBrYW5hdHN1Ym9tYW5ha29cIDsKK+mZs+WIl+WupCA+IGNoaW5yZXRzdXNoaXRzdVwgOwor54m55Yil5a6kID4gdG9rdWJldHN1c2hpdHN1XCA7CivntKvmsLTmmbYgPiBtdXJhc2FraXp1aXNob3VcIDsKK+WPlue3oOW9uSA+IHRvcmlzaGltYXJpeWFrdVwgOwor54mH5Y+j6bCvID4ga2F0YWt1Y2hpaXdhc2hpXCA7CivkuI3lgJLnv4EgPiBva2lhZ2FyaWtvYm9zaGlcIDsKK+S4jeiCluengSA+IGZ1c2hvdXdhdGFrdXNoaVwgOwor5aSx5qWt546HID4gc2hpdHN1Z3lvdXJpdHN1XCA7Civmir3lh7rniakgPiBjaHV1c2h1dHN1YnV0c3VcIDsKK+Wls+WPi+mBlCA+IG9uJyduYXRvbW9kYWNoaVwgOwor55m+5pel5ZKzID4gaHlha3VuaWNoaXpla2lcIDsKK+ihjOWIl+W8jyA+IGd5b3VyZXRzdXNoaWtpXCA7Civlj5bmibHkurogPiB0b3JpYXRzdWthaW5pblwgOwor5Ye65YWl5Zu9ID4gc2h1dHN1bnl1dWtva3VcIDsKK+aJjeanjOmgrSA+IHNhaWR6dWNoaWF0YW1hXCA7CivpgIboqqznmoQgPiBneWFrdXNldHN1dGVraVwgOwor5Ymv6aOf54mpID4gZnVrdXNob2t1YnV0c3VcIDsKK+eToueuqumvsCA+IGh5b3V0YW4nJ25hbWF6dVwgOwor5p2x5Y2K55CDID4gaGlnYXNoaWhhbmt5dXVcIDsKK+WLleeJqeizqiA+IGRvdWJ1dHN1c2hpdHN1XCA7CivotorkuK3opIwgPiBldGNodXVmdW5kb3NoaVwgOwor5Y2w5Y2K57qPID4gc2hpcnVzaGliYW50ZW5cIDsKK+S7leaWueipsSA+IHNoaWthdGFiYW5hc2hpXCA7CivmlLnmnK3kv4IgPiBrYWlzYXRzdWdha2FyaVwgOwor5YmD5YiA6KemID4ga2FtaXNvcmlrYWJ1cmVcIDsKK+Wjsua4oeiovCA+IHVyaXdhdGFzaGlzaG91XCA7CivlkYrliKXlvI8gPiBrb2t1YmV0c3VzaGlraVwgOwor5aS+6ZuR54mpID4ga3lvdXphdHN1YnV0c3VcIDsKK+e3keeZveiJsiA+IHJ5b2t1aGFrdXNob2t1XCA7Civohp3plqLnr4AgPiBzaGl0c3VrYW5zZXRzdVwgOwor5o6l57aa5Y+jID4gc2V0c3V6b2t1Z3VjaGlcIDsKK+WHneedgOWKmyA+IGd5b3VjaGFrdXJ5b2t1XCA7Civmh5Dli5jlrpogPiBmdXRva29yb2thbmpvdVwgOwor5o+Q5Ye654mpID4gdGVpc2h1dHN1YnV0c3VcIDsKK+WHuuacreWPoyA+IHNodXNzYXRzdWd1Y2hpXCA7CivlpKnml6Xnk6YgPiB0ZW5qaXRzdWdhd2FyYVwgOwor5aSi54mp6KqeID4geXVtZW1vbm9nYXRhcmlcIDsKK+S4gOaYlOWJjSA+IGhpdG9tdWthc2hpbWFlXCA7Civnmb7ljZLplbcgPiBoeWFrdXNvdHN1Y2hvdVwgOwor6YCG6KGM5YiXID4gZ3lha3VneW91cmV0c3VcIDsKK+aXreaXpeeroCA+IGt5b2t1aml0c3VzaG91XCA7Civlubzlj4vpgZQgPiBvc2FuYXRvbW9kYWNoaVwgOwor5bC76Lu95aWzID4gc2hpcmlnYXJ1b24nJ25hXCA7Civnmb3piaLlt7sgPiBzaGlyb2hhY2hpbWFraVwgOwor6JaE57Sr6ImyID4gdXN1bXVyYXNha2lpcm9cIDsKK+WHuuWhgeeOhyA+IHNodXRzdXJ1aXJpdHN1XCA7Civpm7vkv6Hmn7EgPiBkZW5zaGluYmFzaGlyYVwgOwor5YaF6Ki86KmxID4gbmFpc2hvdWJhbmFzaGlcIDsKK+e3keeOieefsyA+IHJ5b2t1Z3lva3VzZWtpXCA7Civohp3ok4vpqqggPiBzaGl0c3VnYWlrb3RzdVwgOwor5Luu5Ye6542EID4ga2FyaXNodXRzdWdva3VcIDsKK+eJueWIpeiBtyA+IHRva3ViZXRzdXNob2t1XCA7Civlkb3ovpvovpsgPiBpbm9jaGlnYXJhZ2FyYVwgOwor6Lui5YWl5bGKID4gdGVuJydueXV1dG9kb2tlXCA7Civlj5fku5jkv4IgPiB1a2V0c3VrZWdha2FyaVwgOwor5bCx6IG3546HID4gc2h1dXNob2t1cml0c3VcIDsKK+e1puaWmeiiiyA+IGt5dXVyeW91YnVrdXJvXCA7CivmpI3nianlraYgPiBzaG9rdWJ1dHN1Z2FrdVwgOwor5aSn5ZKM6a2CID4geWFtYXRvZGFtYXNoaWlcIDsKK+S4i+WPsOaJgCA+IHNoaW1vZGFpZG9rb3JvXCA7CivlsLHogbflj6MgPiBzaHV1c2hva3VndWNoaVwgOwor562L6IKJ6LOqID4ga2luJyduaWt1c2hpdHN1XCA7Civlipvku5XkuosgPiBjaGlrYXJhc2hpZ290b1wgOwor5auh5Ye65a2QID4gY2hha3VzaHV0c3VzaGlcIDsKK+eJh+iiluacuiA+IGthdGFzb2RlZHp1a3VlXCA7CivljZLmpa3lvI8gPiBzb3RzdWd5b3VzaGlraVwgOwor5YWJ6YCa5L+hID4gaGlrYXJpdHN1dXNoaW5cIDsKK+WPlue3oOazlSA+IHRvcmlzaGltYXJpaG91XCA7CivmiYvooZPlrqQgPiBzaHVqdXRzdXNoaXRzdVwgOwor6Kmm552A5a6kID4gc2hpY2hha3VzaGl0c3VcIDsKK+eIhueZuueJqSA+IGJha3VoYXRzdWJ1dHN1XCA7CivnjKrmrabogIUgPiBpbm9zaGlzaGltdXNoYVwgOwor5aSn6buS5p+xID4gZGFpa29rdWJhc2hpcmFcIDsKK+mOluW4t+WtkCA+IGt1c2FyaWthdGFiaXJhXCA7CivkuI3our7ogIUgPiBidXNoaXRzdWtlbW9ub1wgOwor5LiJ6Imy6I+rID4gc2Fuc2hva3VzdW1pcmVcIDsKK+WRvei+m+OAhSA+IGlub2NoaWdhcmFnYXJhXCA7Civlh7rlipvnt5ogPiBzaHV0c3VyeW9rdXNlblwgOwor54iG55m65YqbID4gYmFrdWhhdHN1cnlva3VcIDsKK+edgOS/oeWxgCA+IGNoYWt1c2hpbmt5b2t1XCA7CivmjpLlh7rniakgPiBoYWlzaHV0c3VidXRzdVwgOwor6Ymx54mp6LOqID4ga291YnV0c3VzaGl0c3VcIDsKK+aMr+WHuuWxgCA+IGZ1cmlkYXNoaWt5b2t1XCA7Civln7fli5nlrqQgPiBzaGl0c3VtdXNoaXRzdVwgOwor55m654ax6YePID4gaGF0c3VuZXRzdXJ5b3VcIDsKK+Wkp+WFq+i7iiA+IGRhaWhhY2hpZ3VydW1hXCA7Civnm7TmjqXnmoQgPiBjaG9rdXNldHN1dGVraVwgOworzrjnkIboq5YgPiBzaGlcIMyEdGFcIMyEcmlyb25cIDsKK+aUueacremLjyA+IGthaXNhdHN1aGFzYW1pXCA7CivkuI3mnZ/ogIUgPiBmdXRzdXRzdWthbW9ub1wgOwor54eV5Y2D6bOlID4gdHN1YmFtZWNoaWRvcmlcIDsKK+S8keaGqeWupCA+IGt5dXVrZWlzaGl0c3VcIDsKK+aXpeayoeWJjSA+IG5pY2hpYm90c3V6ZW5cIDsKK+eLkOagvOWtkCA+IGtpdHN1bmVnb3VzaGlcIDsKK+mWsuimp+WupCA+IGV0c3VyYW5zaGl0c3VcIDsKK+W7uuevieeJqSA+IGtlbmNoaWt1YnV0c3VcIDsKK+Wun+izqueahCA+IGppc3NoaXRzdXRla2lcIDsKK+e/jOOAheaXpSA+IHlva3V5b2t1aml0c3VcIDsKK+ippuiBtOWupCA+IHNoaWNob3VzaGl0c3VcIDsKK+WPpOW8t+iAhSA+IGZ1cnV0c3V3YW1vbm9cIDsKK+eLuOWbg+WtkCA+IHRhbnVraWJheWFzaGlcIDsKK+akjeavm+ihkyA+IHNob2t1bW91anV0c3VcIDsKK+aXp+ato+aciCA+IGt5dXVzaG91Z2F0c3VcIDsKK+S4uOm8u+icgiA+IG1hcnVoYW5hYmFjaGlcIDsKK+iEmuiJsuiAhSA+IGt5YWt1c2hva3VzaGFcIDsKK+adsea1t+WyuCA+IGhpZ2FzaGlrYWlnYW5cIDsKK+ebtOeri+iMjiA+IGNob2t1cml0c3VrZWlcIDsKK+eZvembquWnqyA+IHNoaXJheXVraWhpbWVcIDsKK+aWreeGseeahCA+IGRhbicnbmV0c3V0ZWtpXCA7Civms6XnuITlvI8gPiBkb3JvbmF3YXNoaWtpXCA7CivoprPplrLlvI8gPiBrYW4nJ2V0c3VzaGlraVwgOwor5ZC45rm/5oCnID4ga3l1dXNoaXRzdXNlaVwgOwor5raI5qW155qEID4gc2hvdWt5b2t1dGVraVwgOwor5ryC5rWB54mpID4gaHlvdXJ5dXVidXRzdVwgOwor5LiL5LqM5qGBID4gc2hpbW9mdXRha2V0YVwgOwor5oaC6ayx6LOqID4geXV1dXRzdXNoaXRzdVwgOwor5L+E5oiQ6YeRID4gbml3YWthbmFyaWtpblwgOwor5Y+O56mr54mpID4gc2h1dWtha3VidXRzdVwgOwor6LK45LuY6YeRID4ga2FzaGl0c3VrZWtpblwgOwor5YuV54mp6YGUID4gZG91YnV0c3V0YWNoaVwgOwor6aOf57On5bqBID4gc2hva3VyeW91Y2hvdVwgOwor6IW655eF6LOqID4gc2VuYnlvdXNoaXRzdVwgOwor5rCR57SE6KqsID4gbWluJyd5YWt1c2V0c3VcIDsKK+WQuOa5v+WJpCA+IGt5dXVzaGl0c3V6YWlcIDsKK+S6jOeti+mBkyA+IGZ1dGFzdWppbWljaGlcIDsKK+WNiumVt+mdtCA+IGhhbicnbmFnYWd1dHN1XCA7CivmoKHplbflrqQgPiBrb3VjaG91c2hpdHN1XCA7Civmsbrmlq3lipsgPiBrZXRzdWRhbnJ5b2t1XCA7Civlt67lh7rkurogPiBzYXNoaWRhc2hpbmluXCA7CivkuIPmm5zooaggPiBzaGljaGl5b3VoeW91XCA7CivngbDnt5HoibIgPiBrYWlyeW9rdXNob2t1XCA7CivmnKzos6rnmoQgPiBob25zaGl0c3V0ZWtpXCA7CivmsYLlv4PlipsgPiBreXV1c2hpbnJ5b2t1XCA7CivntZDlm6PlvI8gPiBrZXRzdWRhbnNoaWtpXCA7CivmlLnmnK3lj6MgPiBrYWlzYXRzdWd1Y2hpXCA7CivnuYHmrpblipsgPiBoYW5zaG9rdXJ5b2t1XCA7Civlm4PlrZDoqZ4gPiBoYXlhc2hpa290b2JhXCA7Civkurrlt67mjIcgPiBoaXRvc2FzaGl5dWJpXCA7CivkuIPpnaLps6UgPiBzaGljaGltZW5jaG91XCA7CivnmbroqIDlipsgPiBoYXRzdWdlbnJ5b2t1XCA7Civlh7rkuJbpoK0gPiBzaHVzc2VnYXNoaXJhXCA7Civpm4bkuK3lipsgPiBzaHV1Y2h1dXJ5b2t1XCA7CivlsYjovrHnmoQgPiBrdXRzdWpva3V0ZWtpXCA7CivllYblo7LmlbUgPiBzaG91YmFpZ2F0YWtpXCA7Civlh7rnlJ/lsYogPiBzaHVzc2VpdG9kb2tlXCA7CivohLHnjYTlm5ogPiBkYXRzdWdva3VzaHV1XCA7Civlj6Tmrablo6sgPiBmdXJ1dHN1d2Ftb25vXCA7CivlnJ/nlKPoqbEgPiBtaXlhZ2ViYW5hc2hpXCA7Civnmb3oo4XmnZ8gPiBzaGlyb3Nob3V6b2t1XCA7CivohbDlt77nnYAgPiBrb3NoaWdpbmNoYWt1XCA7CivljYrnhp/ljbUgPiBoYW5qdWt1dGFtYWdvXCA7CivmsqHluLjorZggPiBib3RzdWpvdXNoaWtpXCA7Civpm4blobXooosgPiBzaHV1amluYnVrdXJvXCA7CivkuInkuIvlpbQgPiBzYW5zaGl0YXlha2tvXCA7CivlnLDos6rlraYgPiBjaGlzaGl0c3VnYWt1XCA7Civmpb3lsYvoqbEgPiBnYWt1eWFiYW5hc2hpXCA7CivlvLflparniakgPiBnb3VkYXRzdWJ1dHN1XCA7CivplpHml6XmnIggPiBrYW5qaXRzdWdldHN1XCA7CivmjJHnmbrnmoQgPiBjaG91aGF0c3V0ZWtpXCA7CivnpZ3npa3ml6UgPiBzaHVrdXNhaWppdHN1XCA7CivlvavliLvooZMgPiBjaG91a29rdWp1dHN1XCA7CivkuK3nq4vlm70gPiBjaHV1cml0c3Vrb2t1XCA7CivllqvnhZnlrqQgPiBraXRzdWVuc2hpdHN1XCA7CivkuIDkuKHml6UgPiBpY2hpcnlvdWppdHN1XCA7CivmqYvohJroiJ8gPiBreW91a3lha3VzaHV1XCA7CivmvKzniannn7MgPiB0c3VrZW1vbm9pc2hpXCA7CivlpJblh7rkuK0gPiBnYWlzaHV0c3VjaHV1XCA7CivpiYTmn5PoibIgPiB0ZXRzdXNlbnNob2t1XCA7Civni6znq4vlv4MgPiBkb2t1cml0c3VzaGluXCA7Civku4rmnIjmnKsgPiBrb25nZXRzdW1hdHN1XCA7Civlrp/nianlpKcgPiBqaXRzdWJ1dHN1ZGFpXCA7Civmi77lvpfniakgPiBzaHV1dG9rdWJ1dHN1XCA7CivlgInmlbfmlpkgPiBrdXJhc2hpa2lyeW91XCA7Civos4fmlpnlrqQgPiBzaGlyeW91c2hpdHN1XCA7CivosrfnianooosgPiBrYWltb25vYnVrdXJvXCA7CivlkLjlj47lipsgPiBreXV1c2h1dXJ5b2t1XCA7Civni6znq4vlm70gPiBkb2t1cml0c3Vrb2t1XCA7CivooYDlsL/nl4cgPiBrZXRzdW55b3VzaG91XCA7CivlvavliLvniakgPiBjaG91a29rdWJ1dHN1XCA7CivloKrlv43ooosgPiBrYW4nJ25pbmJ1a3Vyb1wgOwor56S+6ZW35a6kID4gc2hhY2hvdXNoaXRzdVwgOwor5Li85YuY5a6aID4gZG9uYnVyaWthbmpvdVwgOwor546J5a2Q5Li8ID4gdGFtYWdvZG9uYnVyaVwgOwor57iu5Yi354mIID4gc2h1a3VzYXRzdWJhblwgOwor5LuK5pel55qEID4ga29uJyduaWNoaXRla2lcIDsKK+a0nuWvn+WKmyA+IGRvdXNhdHN1cnlva3VcIDsKK+advumjn+iZqyA+IG1hdHN1a3VpbXVzaGlcIDsKK+iKi+iUk+W8jyA+IGltb2R6dXJ1c2hpa2lcIDsKK+izqumHj+aVsCA+IHNoaXRzdXJ5b3VzdXVcIDsKK+WIpemFjemBlCA+IGJldHN1aGFpdGF0c3VcIDsKK+S7iuaXpeanmCA+IGtvbicnbmljaGlzYW1hXCA7CivlhqDlpKfkvJogPiBrYW5tdXJpdGFpa2FpXCA7Civov73opIfmm7IgPiB0c3VpZnVrdWt5b2t1XCA7CivntYTlkIjpoK0gPiBrdW1pYWlnYXNoaXJhXCA7CivmlaPmranml4EgPiBzYW5wb2thdGFnYXRhXCA7CivkvpvoqJfniakgPiBreW91dGFrdWJ1dHN1XCA7Civlh7rpoZjkurogPiBzaHV0c3VnYW4nJ25pblwgOwor57KY552A5YqbID4gbmVuY2hha3VyeW9rdVwgOwor5a6/5rOK5paZID4gc2h1a3VoYWt1cnlvdVwgOwor5p6d5Z6C5qGcID4gc2hpZGFyZXpha3VyYVwgOwor5Y+k5Luj57SrID4ga29kYWltdXJhc2FraVwgOwor5p6d5Z6C5p+zID4gc2hpZGFyZXlhbmFnaVwgOwor5rex57eR6ImyID4gZnVrYW1pZG9yaWlyb1wgOwor56mN6Zuq6YePID4gc2VraXNldHN1cnlvdVwgOwor56CU56m25a6kID4ga2Vua3l1dXNoaXRzdVwgOwor5bel5L2c5a6kID4ga291c2FrdXNoaXRzdVwgOwor5L2c5YqH6KGTID4gc2FrdWdla2lqdXRzdVwgOwor55+t5pel5pyIID4gdGFuaml0c3VnZXRzdVwgOwor6LuK5o6M5a6kID4gc2hhc2hvdXNoaXRzdVwgOwor6Ki65a+f5paZID4gc2hpbnNhdHN1cnlvdVwgOwor5L+457Wm6KKLID4gaG91a3l1dWJ1a3Vyb1wgOwor5raI5aSx54K5ID4gc2hvdXNoaXRzdXRlblwgOwor6Kqt5pu45a6kID4gZG9rdXNob3NoaXRzdVwgOwor5a6/5rOK5YWIID4gc2h1a3VoYWt1c2FraVwgOwor6K2Y5Yil5a2QID4gc2hpa2liZXRzdXNoaVwgOwor5Y2X5Y2K55CDID4gbWluYW1paGFua3l1dVwgOwor6IG35ZOh5a6kID4gc2hva3VpbnNoaXRzdVwgOwor5L+h546E6KKLID4gc2hpbmdlbmJ1a3Vyb1wgOwor5oGL54mp6KqeID4ga29pbW9ub2dhdGFyaVwgOwor5LiA57KS56iuID4gaGl0b3RzdWJ1ZGFuZVwgOwor57eR5p+x55+zID4gcnlva3VjaHV1c2VraVwgOwor5piU5rCX6LOqID4gbXVrYXNoaWthdGFnaVwgOwor5L+E5YuJ5by3ID4gbml3YWthYmVua3lvdVwgOwor6YCy5a2m546HID4gc2hpbmdha3VyaXRzdVwgOwor5q6/5qeY6JuZID4gdG9ub3NhbWFnYWVydVwgOwor6Z2Z6ISI6KGAID4gam91bXlha3VrZXRzdVwgOwor5LiA562L6YGTID4gaGl0b3N1amltaWNoaVwgOwor5bCx5qWt546HID4gc2h1dWd5b3VyaXRzdVwgOwor5YaF57eS6KmxID4gbmFpc2hvYmFuYXNoaVwgOwor6LqB6ayx6LOqID4gc291dXRzdXNoaXRzdVwgOwor54ax5Yq5546HID4gbmV0c3Vrb3VyaXRzdVwgOwor55uu55qE54mpID4gbW9rdXRla2lidXRzdVwgOwor5Y+N55m65YqbID4gaGFucGF0c3VyeW9rdVwgOwor5qSN54mp6KqMID4gc2hva3VidXRzdXNoaVwgOwor6K2m5a+f5YqbID4ga2Vpc2F0c3VyeW9rdVwgOwor6LKo54mp5a6kID4ga2Ftb3RzdXNoaXRzdVwgOwor5oeQ5Lit6Y+hID4ga2FpY2h1dWthZ2FtaVwgOwor5reh57eR6ImyID4gdGFucnlva3VzaG9rdVwgOwor5aSp56u66bygID4gdGVuamlrdW5lenVtaVwgOwor57Wx546H5YqbID4gdG91cml0c3VyeW9rdVwgOwor5a6f6Yyy54mpID4gaml0c3Vyb2t1bW9ub1wgOwor5a+G5YWl5Zu9ID4gbWl0c3VueXV1Z29rdVwgOwor55u06Ly45Ye6ID4gY2hva3V5dXNodXRzdVwgOwor5oOa5rCX6KmxID4gbm9yb2tlYmFuYXNoaVwgOwor5LyR6aSK5a6kID4ga3l1dXlvdXNoaXRzdVwgOwor6Zmz5YiX56qTID4gY2hpbnJldHN1bWFkb1wgOwor55m+5YiG546HID4gaHlha3VidW5yaXRzdVwgOwor5Ye66KGA55eHID4gc2h1a2tldHN1c2hvdVwgOwor5a+G6Ly45Ye6ID4gbWl0c3V5dXNodXRzdVwgOwor5Yik5Yil5byPID4gaGFuYmV0c3VzaGlraVwgOwor5qSN54mp55WMID4gc2hva3VidXRzdWthaVwgOwor54ax5Yqb5a2mID4gbmV0c3VyaWtpZ2FrdVwgOwor5paw5q2j5pyIID4gc2hpbnNob3VnYXRzdVwgOwor5Li76aOf54mpID4gc2h1c2hva3VidXRzdVwgOwor6Zmz5YiX5qOaID4gY2hpbnJldHN1ZGFuYVwgOwor6ZuR5Y+O5YWlID4gemF0c3VzaHV1bnl1dVwgOwor57+M57+M5pelID4geW9rdXlva3VqaXRzdVwgOwor6Kmx5Y2K5YiGID4gaGFuYXNoaWhhbmJ1blwgOwor5Yqb5LiN6LazID4gY2hpa2FyYWJ1c29rdVwgOwor5bCx5a2m546HID4gc2h1dWdha3VyaXRzdVwgOwor5rC05LiK55S6ID4gbWluYWthbWltYWNoaVwgOwor6Kaq5YiH5b+DID4gc2hpbnNldHN1c2hpblwgOwor5Yi25L2c5a6kID4gc2Vpc2FrdXNoaXRzdVwgOwor5Y2z54mp55qEID4gc29rdWJ1dHN1dGVraVwgOwor5rGy5Y+W5Y+jID4ga3VtaXRvcmlndWNoaVwgOwor5bu/5pel6bygID4gaGF0c3VrYW5lenVtaVwgOwor57eP6aCY5aiYID4gc291cnlvdW11c3VtZVwgOwor5LiD56aP56WeID4gc2hpY2hpZnVrdWppblwgOwor54m55Yil5bitID4gdG9rdWJldHN1c2VraVwgOwor5aSa6KGA6LOqID4gdGFrZXRzdXNoaXRzdVwgOwor5qC454iG55m6ID4ga2FrdWJha3VoYXRzdVwgOwor5b6X56Wo546HID4gdG9rdWh5b3VyaXRzdVwgOwor6KGo5b2w5byPID4gaHlvdXNob3VzaGlraVwgOwor5YWl5a2m5byPID4gbnl1dWdha3VzaGlraVwgOwor54Gw55m96LOqID4ga2FpaGFrdXNoaXRzdVwgOwor6aOf55So5rK5ID4gc2hva3V5b3VhYnVyYVwgOwor6IG35qWt55qEID4gc2hva3VneW91dGVraVwgOwor6aOf55Sf5rS7ID4gc2hva3VzZWlrYXRzdVwgOwor5Li45LiA5pyIID4gbWFydWhpdG90c3VraVwgOwor6IG35qWt55eFID4gc2hva3VneW91YnlvdVwgOwor5Li45LiA5pelID4gbWFydWljaGluaWNoaVwgOwor5q+S54mp5a2mID4gZG9rdWJ1dHN1Z2FrdVwgOwor5bCx6IG35YWIID4gc2h1dXNob2t1c2FraVwgOwor5Y+j57SE5p2fID4ga3VjaGl5YWt1c29rdVwgOwor5a6f5Yqb6ICFID4gaml0c3VyeW9rdXNoYVwgOwor5rmn5Ye66YePID4geXV1c2h1dHN1cnlvdVwgOwor562S5LqV562SID4gdHN1dHN1aWR6dXRzdVwgOwor5Lya5aCC5Y+4ID4ga2FpZG91ZHp1a2FzYVwgOwor6ZaT5q2H54axID4ga2Fua2V0c3VuZXRzdVwgOwor5ZOy5a2m55qEID4gdGV0c3VnYWt1dGVraVwgOwor6Kqt5ZSH6KGTID4gZG9rdXNoaW5qdXRzdVwgOwor6ZaT5qyg54axID4ga2Fua2V0c3VuZXRzdVwgOwor6KO46Zu755CDID4gaGFkYWthZGVua3l1dVwgOwor6JuL55m96LOqID4gdGFucGFrdXNoaXRzdVwgOwor5o6S5rOE54mpID4gaGFpc2V0c3VidXRzdVwgOwor6aOf6IKJ55uuID4gc2hva3VuaWt1bW9rdVwgOwor5rS75YuV5YqbID4ga2F0c3Vkb3VyeW9rdVwgOwor5L6155Wl55qEID4gc2hpbnJ5YWt1dGVraVwgOwor5Yed6ZuG5YqbID4gZ3lvdXNodXVyeW9rdVwgOwor5L+E54uC6KiAID4gbml3YWtha3lvdWdlblwgOwor542F5a2Q6aCtID4gc2hpc2hpZ2FzaGlyYVwgOwor6Kaz5a+f5YqbID4ga2Fuc2F0c3VyeW9rdVwgOwor6ISx5Yqb5oSfID4gZGF0c3VyeW9rdWthblwgOwor5pSv5Ye66aGNID4gc2hpc2h1dHN1Z2FrdVwgOwor5aSn6JmQ5q66ID4gZGFpZ3lha3VzYXRzdVwgOwor5YmN5rih6YeRID4gbWFld2F0YXNoaWtpblwgOwor5Lmz55m96ImyID4gbnl1dWhha3VzaG9rdVwgOwor57WC5qWt5byPID4gc2h1dWd5b3VzaGlraVwgOwor54iG55m655qEID4gYmFrdWhhdHN1dGVraVwgOwor5riF5YWD56+AID4ga2l5b21vdG9idXNoaVwgOwor6Zu36Kaq54i2ID4ga2FtaW5hcmlveWFqaVwgOwor56We57WM6LOqID4gc2hpbmtlaXNoaXRzdVwgOwor5o6l552A5YqbID4gc2V0Y2hha3VyeW9rdVwgOwor5LqU5pyI5bmfID4gc2F0c3VraW5vYm9yaVwgOwor6YCG6Ly45Ye6ID4gZ3lha3V5dXNodXRzdVwgOwor55qE5Lit546HID4gdGVraWNodXVyaXRzdVwgOwor5bu66Kit6LK7ID4ga2Vuc2V0c3VoaXlvdVwgOwor5bGI5oqY546HID4ga3Vzc2V0c3VyaXRzdVwgOwor6Ii56ZW35a6kID4gc2VuY2hvdXNoaXRzdVwgOwor5Li75pWZ5a6kID4gc2h1a3lvdXNoaXRzdVwgOwor5a6k5YaF5qW9ID4gc2hpdHN1bmFpZ2FrdVwgOwor5Lq65oOF6KmxID4gbmluam91YmFuYXNoaVwgOwor5r+D57eR6ImyID4gbm91cnlva3VzaG9rdVwgOwor5b+c5o6l5a6kID4gb3VzZXRzdXNoaXRzdVwgOwor5L6155Wl5Zu9ID4gc2hpbnJ5YWt1a29rdVwgOwor5L6N5rCX6LOqID4gc2FtdXJhaWthdGFnaVwgOwor55Sz6L685pu4ID4gbW91c2hpa29taXNob1wgOwor55u06Kqs5rOVID4gY2hva3VzZXRzdWhvdVwgOwor5LiL55S66aKoID4gc2hpdGFtYWNoaWZ1dVwgOwor6aOf5Lit5q+SID4gc2hva3VjaHV1ZG9rdVwgOwor55Sj5Ye66auYID4gc2Fuc2h1dHN1ZGFrYVwgOwor5L6b5Ye657GzID4ga3lvdXNodXRzdW1haVwgOwor5aKX6Kit546HID4gem91c2V0c3VyaXRzdVwgOwor5Zyn5Yqb6Y2LID4gYXRzdXJ5b2t1bmFiZVwgOwor5Zuj5qCX55y8ID4gZG9uZ3VyaW1hbmFrb1wgOwor5Zyn5Yqb6YecID4gYXRzdXJ5b2t1Z2FtYVwgOwor5rCX5a+G5a6kID4ga2ltaXRzdXNoaXRzdVwgOwor5b+c5o6l5L+CID4gb3VzZXRzdWdha2FyaVwgOwor5aWz5oi/6KmeID4gbnlvdWJvdWtvdG9iYVwgOwor5YiG5YiX5byPID4gYnVucmV0c3VzaGlraVwgOwor6Kaq5Lu75byPID4gc2hpbicnbmluc2hpa2lcIDsKK+eUn+a0u+WKmyA+IHNlaWthdHN1cnlva3VcIDsKK+iqreW/g+ihkyA+IGRva3VzaGluanV0c3VcIDsKK+mnhemVt+WupCA+IGVraWNob3VzaGl0c3VcIDsKK+WutuS7mOWomCA+IGlldHN1a2ltdXN1bWVcIDsKK+eZvuaXpeiNiSA+IGh5YWt1bmljaGlzb3VcIDsKK+S4oeS4ieaXpSA+IHJ5b3VzYW4nJ25pY2hpXCA7Civml5fooYzliJcgPiBoYXRhZ3lvdXJldHN1XCA7CivnnInllL7niakgPiBtYXl1dHN1YmFtb25vXCA7CivpgLLooYzkv4IgPiBzaGlua291Z2FrYXJpXCA7Civli5XmpI3niakgPiBkb3VzaG9rdWJ1dHN1XCA7Civlv4XopoHniakgPiBoaXRzdXlvdWJ1dHN1XCA7CivkuInou7jlrqQgPiBzYW5qaWt1c2hpdHN1XCA7CivlvoXlkIjlrqQgPiBtYWNoaWFpc2hpdHN1XCA7CivljZrnianlraYgPiBoYWt1YnV0c3VnYWt1XCA7CivntZDntK7ooZMgPiBrZXNzYXRzdWp1dHN1XCA7Civmt7flhaXniakgPiBrb24nJ255dXVidXRzdVwgOwor5Lq65oOF5Zm6ID4gbmluam91YmFuYXNoaVwgOwor5Ye65bit546HID4gc2h1c3Nla2lyaXRzdVwgOwor55u05o6l56iOID4gY2hva3VzZXRzdXplaVwgOwor5aSx5qWt6ICFID4gc2hpdHN1Z3lvdXNoYVwgOwor54mn55Wc5qWtID4gYm9rdWNoaWt1Z3lvdVwgOwor5qeL56+J54mpID4ga291Y2hpa3VidXRzdVwgOwor6Kit56uL6ICFID4gc2V0c3VyaXRzdXNoYVwgOwor6Laz6ZW36JyCID4gYXNoaW5hZ2FiYWNoaVwgOwor57KY5ray6LOqID4gbmVuJydla2lzaGl0c3VcIDsKK+ebtOaOpeazlSA+IGNob2t1c2V0c3Vob3VcIDsKK+W5vemciuipsSA+IHl1dXJlaWJhbmFzaGlcIDsKK+WQjOizqueahCA+IGRvdXNoaXRzdXRla2lcIDsKK+Wft+edgOW/gyA+IHNodXVjaGFrdXNoaW5cIDsKK+WKm+mWouS/giA+IGNoaWthcmFrYW5rZWlcIDsKK+eJqeizqueahCA+IGJ1c3NoaXRzdXRla2lcIDsKK+iSuOeZuueGsSA+IGpvdWhhdHN1bmV0c3VcIDsKK+iWqeaRqemWpSA+IHNhdHN1bWFiYXRzdVwgOwor6KaW6IG0546HID4gc2hpY2hvdXJpdHN1XCA7CivnlbPmsLTnt7QgPiB0YXRhbWlzdWlyZW5cIDsKK+W5leWDmumVtyA+IGJha3VyeW91Y2hvdVwgOwor54++5a6f55qEID4gZ2Vuaml0c3V0ZWtpXCA7CivnlLvkuIDnmoQgPiBrYWt1aXRzdXRla2lcIDsKK+WNuOmFkuiyqSA+IG9yb3NoaXNodWhhblwgOwor6Kaq5pel5a62ID4gc2hpbicnbmljaGlrYVwgOwor5YaF5Ye66KGAID4gbmFpc2h1a2tldHN1XCA7CivmvaTnrYbmlpkgPiBqdW5waXRzdXJ5b3VcIDsKK+eUsOiIjuS+jSA+IGluYWthemFtdXJhaVwgOwor6YeR6YeY5rWBID4ga2FuYWt1Z2lyeXV1XCA7CivlibXkvZzlipsgPiBzb3VzYWt1cnlva3VcIDsKK+WNs+aIpuWKmyA+IHNva3VzZW5yeW9rdVwgOwor5ous57SE562LID4ga2F0c3V5YWt1a2luXCA7CivoqqzlvpflipsgPiBzZXR0b2t1cnlva3VcIDsKK+mQmOaSnuWggiA+IGthbmV0c3VraWRvdVwgOwor5pen5b2i5byPID4ga3l1dWtlaXNoaWtpXCA7Civpu4Tnjonnn7MgPiBrb3VneW9rdXNla2lcIDsKK+Wun+mok+WupCA+IGppa2tlbnNoaXRzdVwgOwor5a+G5ryB6ICFID4gbWl0c3VyeW91c2hhXCA7Civmva7msZDooaggPiBjaG91c2VraWh5b3VcIDsKK+eZveeGseaIpiA+IGhha3VuZXRzdXNlblwgOwor5b6T5bGe56+AID4ganV1em9rdXNldHN1XCA7CivmirzliIfluLMgPiBvc2hpa2lyaWNob3VcIDsKK+mJseeJqeWtpiA+IGtvdWJ1dHN1Z2FrdVwgOwor5bem5b+D5a6kID4gc2FzaGluc2hpdHN1XCA7CivmpbXlvanoibIgPiBnb2t1c2Fpc2hpa2lcIDsKK+iCneW/g+imgSA+IGthbmppbmthbmFtZVwgOwor5bu656+J5qWtID4ga2VuY2hpa3VneW91XCA7Civmi5Lpo5/nl4cgPiBreW9zaG9rdXNob3VcIDsKK+eGsembu+WvviA+IG5ldHN1ZGVudHN1aVwgOwor6Y6W5Lyd5YuVID4ga3VzYXJpZGVuZG91XCA7Civmi6HlpKfnjocgPiBrYWt1ZGFpcml0c3VcIDsKK+eLguS/oeeahCA+IGt5b3VzaGludGVraVwgOwor6KGo54++5YqbID4gaHlvdWdlbnJ5b2t1XCA7CivkuK3nq4vpnaIgPiBjaHV1cml0c3VtZW5cIDsKK+iyneauu+iZqyA+IGthaWdhcmFtdXNoaVwgOwor5LiA55Wq5pifID4gaWNoaWJhbmJvc2hpXCA7Civos4PlgJ/kurogPiBjaGluc2hha3VuaW5cIDsKK+ijhemjvueahCA+IHNvdXNob2t1dGVraVwgOwor5r6x57KJ6LOqID4gZGVucHVuc2hpdHN1XCA7CivljYPml6XojYkgPiBzZW4nJ25pY2hpc291XCA7CivkuIPkupToqr8gPiBzaGljaGlnb2Nob3VcIDsKK+S4reWbveacjSA+IGNodXVnb2t1ZnVrdVwgOwor6auY5aSp5Y6fID4gdGFrYW1hZ2FoYXJhXCA7Civli5jlrprkv4IgPiBrYW5qb3VnYWthcmlcIDsKK+aLmOadn+WKmyA+IGtvdXNva3VyeW9rdVwgOwor5rKI5r6x54mpID4gY2hpbmRlbmJ1dHN1XCA7Civlmajos6rnmoQgPiBraXNoaXRzdXRla2lcIDsKK+WNg+aXpee0hSA+IHNlbicnbmljaGlrb3VcIDsKK+W7uuevieWtpiA+IGtlbmNoaWt1Z2FrdVwgOwor5pWX6KGA55eHID4gaGFpa2V0c3VzaG91XCA7CivljYHkuIDmnIggPiBqdXVpY2hpZ2F0c3VcIDsKK+iii+aIuOajmiA+IGZ1a3Vyb3RvZGFuYVwgOwor5oud54mp5pWZID4gaGFpYnV0c3VreW91XCA7CivlvqnorpDlv4MgPiBmdWt1c2h1dXNoaW5cIDsKK+aXp+W5tOacqyA+IGt5dXVuZW5tYXRzdVwgOwor5aSx6IG36ICFID4gc2hpc3Nob2t1c2hhXCA7CivlhoXlibLlvJUgPiB1Y2hpd2FyaWJpa2lcIDsKK+WHuueUo+eOhyA+IHNodXNzYW5yaXRzdVwgOwor5YaZ5a6f55qEID4gc2hhaml0c3V0ZWtpXCA7CivmjqXntprpp4UgPiBzZXRzdXpva3Vla2lcIDsKK+ijvemJhOalrSA+IHNlaXRldHN1Z3lvdVwgOwor5Ye655Sf546HID4gc2h1c3NlaXJpdHN1XCA7CivnnYDnianlp78gPiBraW1vbm9zdWdhdGFcIDsKK+epjealteetliA+IHNla2t5b2t1c2FrdVwgOwor5bCP5paH56+AID4gc2hvdWJ1bnNldHN1XCA7CivntYTnuZTlipsgPiBzb3NoaWtpcnlva3VcIDsKK+aWreeGseadkCA+IGRhbicnbmV0c3V6YWlcIDsKK+iRl+S9nOeJqSA+IGNob3Nha3VidXRzdVwgOwor55uy5ruF5rOVID4gbWVrdXJhbWVwcG91XCA7CivpmYTnnYDlipsgPiBmdWNoYWt1cnlva3VcIDsKK+a8gua1geacqCA+IGh5b3VyeXV1Ym9rdVwgOwor57Sz5aOr6Z20ID4gc2hpbnNoaWd1dHN1XCA7CivmtZrmuKvoiLkgPiBzaHVuc2V0c3VzZW5cIDsKK+a3seWxseeDjyA+IG1peWFtYWdhcmFzdVwgOwor55Sf6Iet54mpID4gbmFtYWd1c2Ftb25vXCA7Civlr6nliKTlvbkgPiBzaGlucGFuJyd5YWt1XCA7CivnqY3mpbXnmoQgPiBzZWtreW9rdXRla2lcIDsKK+eZuuWjsuWFgyA+IGhhdHN1YmFpbW90b1wgOwor5LuP6aCC6Z2iID4gYnV0Y2hvdWR6dXJhXCA7Civlj5blvJXpq5ggPiB0b3JpaGlraWRha2FcIDsKK+mXluWFpeiAhSA+IGNoaW4nJ255dXVzaGFcIDsKK+avrOagl+mgrSA+IGlnYWd1cmlhdGFtYVwgOwor5bu656+J5LitID4ga2VuY2hpa3VjaHV1XCA7CivlvLHlsI/lm70gPiBqYWt1c2hvdWtva3VcIDsKK+eZuuWjsuS4rSA+IGhhdHN1YmFpY2h1dVwgOwor5b6p6K6Q5YqHID4gZnVrdXNodXVnZWtpXCA7CivkuIvku5XkuosgPiBzaGl0YXNoaWdvdG9cIDsKK+a2iOalteaApyA+IHNob3VreW9rdXNlaVwgOwor6YeR5qyg55eFID4ga2lua2V0c3VieW91XCA7CivogbToppbnjocgPiBjaG91c2hpcml0c3VcIDsKK+a3seWxseahnCA+IG1peWFtYXpha3VyYVwgOwor6LOq5ZWP6ICFID4gc2hpdHN1bW9uc2hhXCA7CivnqbrntITmnZ8gPiBrYXJheWFrdXNva3VcIDsKK+aOpee2muipniA+IHNldHN1em9rdXNoaVwgOwor5oq56aaZ6a+oID4gbWFra291a3VqaXJhXCA7CivoirHnm5fkurogPiBoYW5hbnVzdWJpdG9cIDsKK+S5vueHpeWupCA+IGthbnNvdXNoaXRzdVwgOwor5bC/5q+S55eHID4gbnlvdWRva3VzaG91XCA7CivnmYfnmarnjokgPiBrYW5zaGFrdWRhbWFcIDsKK+S4gOS6uueJqSA+IGljaGlqaW5idXRzdVwgOwor5Y2U57SE5Zu9ID4ga3lvdXlha3Vrb2t1XCA7CivmnKvku6PniakgPiBtYXRzdWRhaW1vbm9cIDsKK+WJg+WIgOiyoCA+IGthbWlzb3JpbWFrZVwgOwor5LiA6Laz5YWIID4gaGl0b2FzaGlzYWtpXCA7CivmnpzniannsaAgPiBrdWRhbW9ub2thZ29cIDsKK+S4lumWk+ipsSA+IHNla2VuYmFuYXNoaVwgOwor6KGM5qW95a6iID4ga291cmFrdWt5YWt1XCA7CivntIvnmb3onbYgPiBtb25zaGlyb2Nob3VcIDsKK+WFpea5r+WuoiA+IG55dXV0b3VreWFrdVwgOwor6ZeH5Y+W5byVID4geWFtaXRvcmloaWtpXCA7CivpgLLmsLTlvI8gPiBzaGluc3Vpc2hpa2lcIDsKK+S7ruaJlemHkSA+IGthcmliYXJhaWtpblwgOwor57SZ5bGR57GgID4ga2FtaWt1enVrYWdvXCA7Civkub7nh6XljbUgPiBrYW5zb3V0YW1hZ29cIDsKK+e3keWGhemanCA+IHJ5b2t1bmFpc2hvdVwgOwor5qW15qW96bOlID4gZ29rdXJha3VjaG91XCA7Civos4PosrjlgJ8gPiBjaGludGFpc2hha3VcIDsKK+WRiueZuuiAhSA+IGtva3VoYXRzdXNoYVwgOwor55m96KGA55eFID4gaGFra2V0c3VieW91XCA7CivnnJ/nj6Dos6ogPiBzaGluanVzaGl0c3VcIDsKK+eJh+WxsemHjCA+IGthdGF5YW1hemF0b1wgOwor54us56uL56WtID4gZG9rdXJpdHN1c2FpXCA7CivkuojntITkv4IgPiB5b3lha3VnYWthcmlcIDsKK+m7hOe3keiJsiA+IG91cnlva3VzaG9rdVwgOwor5YmN6YCy5YqbID4gemVuc2hpbnJ5b2t1XCA7Civnorrnjofoq5YgPiBrYWt1cml0c3Vyb25cIDsKK+eLrOeri+ePrSA+IGRva3VyaXRzdWhhblwgOwor562J5Zyn5byPID4gdG91YXRzdXNoaWtpXCA7CivntKDkurrnrYsgPiBzaGlyb3V0b3N1amlcIDsKK+e+juS6uuWxgCA+IHRzdXRzdW1vdGFzZVwgOwor5YCf5Zyw5paZID4gc2hha3VjaGlyeW91XCA7Civpu4TnhrHnl4UgPiBrb3VuZXRzdWJ5b3VcIDsKK+aKleelqOeOhyA+IHRvdWh5b3VyaXRzdVwgOwor6ISF6L+r55qEID4ga3lvdWhha3V0ZWtpXCA7Civlm6PntZDlv4MgPiBkYW5rZXRzdXNoaW5cIDsKK+izquWVj+abuCA+IHNoaXRzdW1vbnNob1wgOwor5Lit56uL5oCnID4gY2h1dXJpdHN1c2VpXCA7CivlkYrnmbrnirYgPiBrb2t1aGF0c3Vqb3VcIDsKK+WPjeW+qeiqrCA+IGhhbnB1a3VzZXRzdVwgOwor5Y2w5Yi36KGTID4gaW5zYXRzdWp1dHN1XCA7Civog73lipvntaYgPiBub3VyeW9rdWt5dXVcIDsKK+e3tOe/kuabsiA+IHJlbnNodXVreW9rdVwgOwor6LaF6IO95YqbID4gY2hvdW5vdXJ5b2t1XCA7CivmoLjliIboo4IgPiBrYWt1YnVucmV0c3VcIDsKK+eLrOeri+aoqSA+IGRva3VyaXRzdWtlblwgOwor5b6F5a616I2JID4gbWF0c3V5b2lndXNhXCA7CivkuIDkurrlqJggPiBoaXRvcmltdXN1bWVcIDsKK+WbveeojuWxgCA+IGtva3V6ZWlreW9rdVwgOwor5LiA6Z2i6K2YID4gaWNoaW1lbnNoaWtpXCA7Civlh7rpoZjogIUgPiBzaHV0c3VnYW5zaGFcIDsKK+WLv+W/mOiNiSA+IHdhc3VyZW5hZ3VzYVwgOwor5by357a/6JasID4ga3lvdW1lbicneWFrdVwgOwor5qK25pyo6a6qID4ga2FqaWtpbWFndXJvXCA7CivlpLHmmI7ogIUgPiBzaGl0c3VtZWlzaGFcIDsKK+Wls+mBk+alvSA+IG9uJyduYWRvdXJha3VcIDsKK+aIkOmVt+eOhyA+IHNlaWNob3VyaXRzdVwgOwor56K65a6f5oCnID4ga2FrdWppdHN1c2VpXCA7Civpu5Loo4XmnZ8gPiBrdXJvc2hvdXpva3VcIDsKK+eGseaLoeaVoyA+IG5ldHN1a2FrdXNhblwgOwor5b+g6Iej6JS1ID4gY2h1dXNoaW5ndXJhXCA7Civli5XnianlraYgPiBkb3VidXRzdWdha3VcIDsKK+S4gOaemuS4iyA+IGljaGltYWlzaGl0YVwgOwor6Iez5p2x5LqsID4gaXRhcnV0b3VreW91XCA7Civni6znq4vmgKcgPiBkb2t1cml0c3VzZWlcIDsKK+mbqOW+jOmbqiA+IGFtZW5vY2hpeXVraVwgOwor5YWr55uu6bC7ID4geWF0c3VtZXVuYWdpXCA7CivlpKnni5foqbEgPiB0ZW5ndWJhbmFzaGlcIDsKK+ahiOWGheS/giA+IGFuJyduYWlnYWthcmlcIDsKK+a1geihjOiJsiA+IHJ5dXVrb3VzaG9rdVwgOwor6Y2+5Lmz55+zID4gc2hvdW55dXVzZWtpXCA7CivmjqXntprmgKcgPiBzZXRzdXpva3VzZWlcIDsKK+ecn+Wun+aApyA+IHNoaW5qaXRzdXNlaVwgOwor6aqo6IKJ6IWrID4ga290c3VuaWt1c2h1XCA7CivniqznlZznlJ8gPiBpbnVjaGlrdXNob3VcIDsKK+mgmOWPjuiovCA+IHJ5b3VzaHV1c2hvdVwgOwor5pi85YWJ6ImyID4gY2h1dWtvdXNob2t1XCA7CivljJfmpbXnhoogPiBob2treW9rdWd1bWFcIDsKK+WPuOS7pOWupCA+IHNoaXJlaXNoaXRzdVwgOwor5Y2w5Yi354mpID4gaW5zYXRzdWJ1dHN1XCA7Civmir3osaHnmoQgPiBjaHV1c2hvdXRla2lcIDsKK+eZveaLjeWtkCA+IHNoaXJhYnlvdXNoaVwgOwor5o+Q5Ye66ICFID4gdGVpc2h1dHN1c2hhXCA7CivogJDlnKflipsgPiB0YWlhdHN1cnlva3VcIDsKK+WHuOmdoumPoSA+IHRvdHN1bWVua3lvdVwgOwor6auY6KGA5ZynID4ga291a2V0c3VhdHN1XCA7Civmn7HmmYLoqIggPiBoYXNoaXJhZG9rZWlcIDsKK+WCmOatr+i7iiA+IGthc2FoYWd1cnVtYVwgOwor6LuN5Zu96ImyID4gZ3Vua29rdXNob2t1XCA7Civlhavpg47mvZ8gPiBoYWNoaXJvdWdhdGFcIDsKK+Wuv+WRveeahCA+IHNodWt1bWVpdGVraVwgOwor5Lit5b+D6KeSID4gY2h1dXNoaW5rYWt1XCA7CivplbfpoIjpr6ggPiBuYWdhc3VrdWppcmFcIDsKK+S/ruS6huiovCA+IHNodXVyeW91c2hvdVwgOwor5q6144CF55WgID4gZGFuZGFuYmF0YWtlXCA7CivmrrXjgIXnlZEgPiBkYW5kYW5iYXRha2VcIDsKK+WkmuiCieizqiA+IHRhbmlrdXNoaXRzdVwgOwor6YCy5YWl54GvID4gc2hpbicnbnl1dXRvdVwgOwor6ZuG57SE55qEID4gc2h1dXlha3V0ZWtpXCA7CivlhbXlha3njokgPiBoeW91cm9rdWRhbWFcIDsKK+aRqeaTpueGsSA+IG1hc2F0c3VuZXRzdVwgOwor5oqA6KGT5YqbID4gZ2lqdXRzdXJ5b2t1XCA7Civku67murbmjqUgPiBrYXJpeW91c2V0c3VcIDsKK+mrmOWTgeizqiA+IGtvdWhpbnNoaXRzdVwgOwor5pmS5pyo57a/ID4gc2FyYXNoaW1vbWVuXCA7CivkvLjnuK7ms5UgPiBzaGluc2h1a3Vob3VcIDsKK+WFremAo+eZuiA+IHJva3VyZW5wYXRzdVwgOwor5L2155m655eHID4gaGVpaGF0c3VzaG91XCA7CivmrKDkuY/nl4cgPiBrZXRzdWJvdXNob3VcIDsKK+mWouevgOaKgCA+IGthbnNldHN1d2F6YVwgOwor5rKI5rKh6Ii5ID4gY2hpbmJvdHN1c2VuXCA7CivlrrnnqY3njocgPiB5b3VzZWtpcml0c3VcIDsKK+S4u+WKm+agqiA+IHNodXJ5b2t1a2FidVwgOwor5Lm+5rm/6KiIID4ga2Fuc2hpdHN1a2VpXCA7CivkuZ3mmJ/ooZMgPiBreXV1c2VpanV0c3VcIDsKK+WPo+WFq+S4gSA+IGt1Y2hpaGF0Y2hvdVwgOwor5qSc5a+f5bqBID4ga2Vuc2F0c3VjaG91XCA7CivooajooajntJkgPiBvbW90ZWJ5b3VzaGlcIDsKK+ebtOWPluW8lSA+IGppa2l0b3JpaGlraVwgOwor5aSn5a2m5Y2SID4gZGFpZ2FrdXNvdHN1XCA7CivlpLHoqp7nl4cgPiBzaGl0c3Vnb3Nob3VcIDsKK+mZjembqumHjyA+IGtvdXNldHN1cnlvdVwgOwor5ryB5bir55S6ID4gcnlvdXNoaW1hY2hpXCA7Civnianopovmq5MgPiBtb25vbWl5YWd1cmFcIDsKK+WPluasoeW6lyA+IHRvcml0c3VnaXRlblwgOwor5pyn5pyI5aScID4gb2Jvcm9kenVraXlvXCA7Civkuqvmpb3nmoQgPiBreW91cmFrdXRla2lcIDsKK+awtOWKm+WtpiA+IHN1aXJ5b2t1Z2FrdVwgOwor5Y+W5byV5YWIID4gdG9yaWhpa2lzYWtpXCA7CivlhaXlipvnt5ogPiBueXV1cnlva3VzZW5cIDsKK+S9juihgOWcpyA+IHRlaWtldHN1YXRzdVwgOwor5Ly457iu5oCnID4gc2hpbnNodWt1c2VpXCA7Civlvovku6TliLYgPiByaXRzdXJ5b3VzZWlcIDsKK+W9ouW8j+eahCA+IGtlaXNoaWtpdGVraVwgOwor5Luy56uL5Lq6ID4gbmFrYWRhY2hpbmluXCA7CivmmIfpmY3lj6MgPiBzaG91a291Z3VjaGlcIDsKK+iomOmMsuS/giA+IGtpcm9rdWdha2FyaVwgOwor5bel5L2c54mpID4ga291c2FrdWJ1dHN1XCA7CivmraPnm7TogIUgPiBzaG91amlraW1vbm9cIDsKK+S4reW/g+eahCA+IGNodXVzaGludGVraVwgOwor6Ieq57+S5a6kID4gamlzaHV1c2hpdHN1XCA7Civku4rmmI7ml6UgPiBrb25teW91bmljaGlcIDsKK+mWk+aOpeeahCA+IGthbnNldHN1dGVraVwgOwor5Ye654mI54mpID4gc2h1cHBhbmJ1dHN1XCA7CivmoLjou43nuK4gPiBrYWt1Z3Vuc2h1a3VcIDsKK+S4gOimi+itmCA+IGljaGlrZW5zaGlraVwgOwor5pS75pKD5YqbID4ga291Z2VraXJ5b2t1XCA7CivmlbTpq6rmlpkgPiBzZWloYXRzdXJ5b3VcIDsKK+S4g+mdouWAkiA+IHNoaWNoaW1lbmRvdVwgOwor6ICQ5rm/5oCnID4gdGFpc2hpdHN1c2VpXCA7Civku4/mloflraYgPiBmdXRzdWJ1bmdha3VcIDsKK+eVkeawtOe3tCA+IGhhdGFrZXN1aXJlblwgOwor5YuF5pKw6ZuGID4gY2hva3VzZW5zaHV1XCA7CivkuIPpnaLkvZMgPiBzaGljaGltZW50YWlcIDsKK+WKueeOh+eahCA+IGtvdXJpdHN1dGVraVwgOwor54ax6YeP6KiIID4gbmV0c3VyeW91a2VpXCA7Civms6jph4jogIUgPiBjaHV1c2hha3VzaGFcIDsKK+eLreW/g+eXhyA+IGt5b3VzaGluc2hvdVwgOwor5byl54yb5b+DID4geWF0YWtlZ29rb3JvXCA7Civnt4/oirHlvI8gPiBzb3ViYW5hc2hpa2lcIDsKK+WNlOWVhuWbvSA+IGt5b3VzaG91a29rdVwgOwor5LiD57WD55C0ID4gc2hpY2hpZ2Vua2luXCA7CivniIboo4LlvL4gPiBiYWt1cmV0c3VkYW5cIDsKK+Wul+aVmeW/gyA+IHNodXVreW91c2hpblwgOwor5YWs5YWx54mpID4ga291a3lvdWJ1dHN1XCA7CivmlZHmgKXnrrEgPiBreXV1a3l1dWJha29cIDsKK+eLguipqeabsiA+IGt5b3VzaGlreW9rdVwgOwor5L+E5YiG6ZmQID4gbml3YWthYnVuZ2VuXCA7CivlrpfmlZnlraYgPiBzaHV1a3lvdWdha3VcIDsKK+S4gOaXpeS4rSA+IGljaGluaWNoaWp1dVwgOwor5rGC6IG36ICFID4ga3l1dXNob2t1c2hhXCA7CivnlZzmrrrloLQgPiBjaGlrdXNhdHN1YmFcIDsKK+WtpuW5tOacqyA+IGdha3VuZW5tYXRzdVwgOwor56mA6LGh6JmrID4ga29rdXpvdW11c2hpXCA7CivnhKHpn7/lrqQgPiBtdWt5b3VzaGl0c3VcIDsKK+etjeWMu+iAhSA+IHRha2Vub2tvaXNoYVwgOwor5r2b5b+D5YqbID4gc2Vuc2hpbnJ5b2t1XCA7CivoiIjooYzkuLsgPiBrb3VneW91bnVzaGlcIDsKK+S/rumjvuWtkCA+IHNodXVzaG9rdXNoaVwgOwor5Y+O55uK546HID4gc2h1dWVraXJpdHN1XCA7CivnpZ3lhIDooosgPiBzaHV1Z2lidWt1cm9cIDsKK+WpmuWnu+WxiiA+IGtvbicnaW50b2Rva2VcIDsKK+manOWus+eJqSA+IHNob3VnYWlidXRzdVwgOwor6buS6Yq555eFID4ga3Vyb3NhYmlieW91XCA7CivkurrnianoqZUgPiBqaW5idXRzdWh5b3VcIDsKK+mbkeaJgOW+lyA+IHphdHN1c2hvdG9rdVwgOwor5Yml6KO96KGTID4gaGFrdXNlaWp1dHN1XCA7Civni6zljaDmrLIgPiBkb2t1c2VuJyd5b2t1XCA7CivntbbmnJvnmoQgPiB6ZXRzdWJvdXRla2lcIDsKK+WkqeeEtuiJsiA+IHRlbicnbmVuc2hva3VcIDsKK+iEguiCquizqiA+IHNoaWJvdXNoaXRzdVwgOwor5a6X5pWZ5YqHID4gc2h1dWt5b3VnZWtpXCA7Civlh7rloLTogIUgPiBzaHV0c3Vqb3VzaGFcIDsKK+S5vua8huWDjyA+IGthbnNoaXRzdXpvdVwgOwor5YaF572w55qEID4gbmFpYmF0c3V0ZWtpXCA7CivkuIPop5LlvaIgPiBzaGljaGlrYWtrZWlcIDsKK+WNs+iIiOabsiA+IHNva2t5b3VreW9rdVwgOwor5pWj55m655qEID4gc2FucGF0c3V0ZWtpXCA7CivluoPlj6Pnk7YgPiBoaXJva3VjaGliaW5cIDsKK+Wcp+e4rueOhyA+IGFzc2h1a3VyaXRzdVwgOwor5a6/5rOK5Lq6ID4gc2h1a3VoYWt1bmluXCA7CivnjKnntIXnhrEgPiBzaG91a291bmV0c3VcIDsKK+WNlOWKm+mLvCA+IGt5b3VyeW9rdWtvdVwgOwor5omA55Wq5ZywID4gdG9rb3JvYmFuY2hpXCA7Civms6jph4jmm7ggPiBjaHV1c2hha3VzaG9cIDsKK+eJueW+tOmHjyA+IHRva3VjaG91cnlvdVwgOwor5oeQ5bel5ZCIID4gZnV0b2tvcm9ndWFpXCA7Civmj4/lhpnlipsgPiBieW91c2hhcnlva3VcIDsKK+eUn+eJqeWtpiA+IHNlaWJ1dHN1Z2FrdVwgOwor5oeQ5YW35ZCIID4gZnV0b2tvcm9ndWFpXCA7Civoqq3mm7jlipsgPiBkb2t1c2hvcnlva3VcIDsKK+efpeitmOassiA+IGNoaXNoaWtpeW9rdVwgOwor5YWo6YCf5YqbID4gemVuc29rdXJ5b2t1XCA7CivooajjgIXntJkgPiBvbW90ZWJ5b3VzaGlcIDsKK+a3see0heiJsiA+IHNoaW5rb3VzaG9rdVwgOwor6Luf552A6Zm4ID4gbmFuY2hha3VyaWt1XCA7CivoibLmg4Xni4IgPiBzaGlraWpvdWt5b3VcIDsKK+mDteS+v+iiiyA+IHl1dWJpbmJ1a3Vyb1wgOwor6Ki65a+f5Y+wID4gc2hpbnNhdHN1ZGFpXCA7Civms6HmsqvnmoQgPiBob3VtYXRzdXRla2lcIDsKK+S7rumHiOaUviA+IGthcmlzaGFrdWhvdVwgOwor5oCl6YCy55qEID4ga3l1dXNoaW50ZWtpXCA7CivoqLrlr5/liLggPiBzaGluc2F0c3VrZW5cIDsKK+alteWwj+WApCA+IGt5b2t1c2hvdWNoaVwgOwor5L6b6KGA6ICFID4ga3lvdWtldHN1c2hhXCA7Civlj47lhaXlvbkgPiBzaHV1bnl1dXlha3VcIDsKK+auteauteeVoCA+IGRhbmRhbmJhdGFrZVwgOwor5q615q6155WRID4gZGFuZGFuYmF0YWtlXCA7Civnr4DnlKjpm4YgPiBzZXRzdXlvdXNodXVcIDsKK+mFjemBlOaWmSA+IGhhaXRhdHN1cnlvdVwgOwor5paw5Y2S6ICFID4gc2hpbnNvdHN1c2hhXCA7Civlj47nm6PlipsgPiBzaHV1a2Fucnlva3VcIDsKK+eZvuiRieeusSA+IGh5YWt1eW91YmFrb1wgOwor5Y2U5Yqb6ICFID4ga3lvdXJ5b2t1c2hhXCA7CivpgJ/pgZTkvr8gPiBzb2t1dGF0c3ViaW5cIDsKK+mKgOeZveiJsiA+IGdpbmhha3VzaG9rdVwgOwor5aS+56u55qGDID4ga3lvdWNoaWt1dG91XCA7CivnlZznlJ/pgZMgPiBjaGlrdXNob3Vkb3VcIDsKK+mbqui+seaIpiA+IHNldHN1am9rdXNlblwgOwor5p2x5Lqs552AID4gdG91a3lvdWNoYWt1XCA7Civpm7vkv6HlsYAgPiBkZW5zaGlua3lva3VcIDsKK+mdkuiJsueXhyA+IHNlaXNob2t1c2hvdVwgOwor5bqD5ZGK5Li7ID4ga291a29rdW51c2hpXCA7CivmnbHkuqznmbogPiB0b3VreW91aGF0c3VcIDsKK+WFqOi6q+a1tCA+IHplbnNoaW4nJ3lva3VcIDsKK+WkieizquiAhSA+IGhlbnNoaXRzdXNoYVwgOwor5aSP5pyo56uLID4gbmF0c3Vrb2RhY2hpXCA7Civorablr5/luoEgPiBrZWlzYXRzdWNob3VcIDsKK+alreeVjOWInSA+IGd5b3VrYWloYXRzdVwgOwor5aSp6ZW356+AID4gdGVuY2hvdXNldHN1XCA7CivnlKPopKXnhrEgPiBzYW5qb2t1bmV0c3VcIDsKK+WNmOWLneW8jyA+IHRhbnNob3VzaGlraVwgOwor6aCt6aCC6aqoID4gdG91Y2hvdWtvdHN1XCA7Civlo4rooYDnl4UgPiBrYWlrZXRzdWJ5b3VcIDsKK+eci+adv+WomCA+IGthbmJhbm11c3VtZVwgOwor57eo6ZuG5bGAID4gaGVuc2h1dWt5b2t1XCA7CivmmbTlvozpm6ggPiBoYXJlbm9jaGlhbWVcIDsKK+a1geWLlemjnyA+IHJ5dXVkb3VzaG9rdVwgOwor6aOf6YGT5qW9ID4gc2hva3Vkb3VyYWt1XCA7Civmr5vnuZTpjKYgPiBrZW9yaW5pc2hpa2lcIDsKK+axguS6uuWPoyA+IGt5dXVqaW5ndWNoaVwgOwor57WC552A6aeFID4gc2h1dWNoYWt1ZWtpXCA7Civpu5LmsLTnhrEgPiBrb2t1c3VpbmV0c3VcIDsKK+S7rumAsue0miA+IGthcmlzaGlua3l1dVwgOwor6YWN6YGU5YWIID4gaGFpdGF0c3VzYWtpXCA7Civlr53nianoqp4gPiBuZW1vbm9nYXRhcmlcIDsKK+iLpeauv+WOnyA+IHdha2F0b25vYmFyYVwgOwor5Ya36JS15a6kID4gcmVpem91c2hpdHN1XCA7CivmsqHkuqTmuIkgPiBib3RzdWtvdXNob3VcIDsKK+mdmeiEiOeYpCA+IGpvdW15YWt1cnl1dVwgOwor6aqo57WE57mUID4ga290c3Vzb3NoaWtpXCA7CivljYPljZLplbcgPiBzZW5zb3RzdWNob3VcIDsKK+ebtOi9hOWcsCA+IGNob2trYXRzdWNoaVwgOwor5LiA562L57mpID4gaGl0b3N1amluYXdhXCA7CivkuIDnrYvnuIQgPiBoaXRvc3VqaW5hd2FcIDsKK+WwseiBt+mboyA+IHNodXVzaG9rdW5hblwgOwor6Kqs57WM56+AID4gc2Vra3lvdWJ1c2hpXCA7Civlv4Pouqvnl4cgPiBzaGluc2hpbnNob3VcIDsKK+mdouS8muWupCA+IG1lbmthaXNoaXRzdVwgOwor54us5Ym15YqbID4gZG9rdXNvdXJ5b2t1XCA7Civlp4vmpa3lvI8gPiBzaGlneW91c2hpa2lcIDsKK+adpeWuouetiyA+IHJhaWt5YWt1c3VqaVwgOwor6YCy5a2m5aG+ID4gc2hpbmdha3VqdWt1XCA7Civnm67nmoTmoLwgPiBtb2t1dGVraWtha3VcIDsKK+agoeato+S/giA+IGtvdXNlaWdha2FyaVwgOwor5Yqb6Ieq5oWiID4gY2hpa2FyYWppbWFuXCA7CivlsYvmlbfnlLogPiB5YXNoaWtpbWFjaGlcIDsKK+acjemjvuWTgSA+IGZ1a3VzaG9rdWhpblwgOwor6Iao5by1546HID4gYm91Y2hvdXJpdHN1XCA7Civoia/lv4PnmoQgPiByeW91c2hpbnRla2lcIDsKK+epuuW/teS7jyA+IHNvcmFuZW5idXRzdVwgOwor55qG55qG5qeYID4gbWluYW1pbmFzYW1hXCA7Civog73njofntaYgPiBub3VyaXRzdWt5dXVcIDsKK+WghuepjeeJqSA+IHRhaXNla2lidXRzdVwgOwor5Ye657SN5L+CID4gc3VpdG91Z2FrYXJpXCA7Civok4TnqY3nrqEgPiBjaGlrdXNla2lrYW5cIDsKK+eLrOi6q+iAhSA+IGRva3VzaGlubW9ub1wgOwor55+z56u56ImyID4gc2VraWNoaWt1aXJvXCA7Civnm7TohbjnmYwgPiBjaG9rdWNob3VnYW5cIDsKK+eqgeeZuueahCA+IHRvcHBhdHN1dGVraVwgOwor6Iq46KGT55qEID4gZ2VpanV0c3V0ZWtpXCA7CivpnZ7mmbbos6ogPiBoaXNob3VzaGl0c3VcIDsKK+eOieicgOm7jSA+IHRvdW1vcm9rb3NoaVwgOwor5bCP5b+D6ICFID4gc2hvdXNoaW5tb25vXCA7Civpu5LmsLTlvJUgPiBrdXJvbWl6dWhpa2lcIDsKK+aEn+eGseWJpCA+IGthbicnbmV0c3V6YWlcIDsKK+Wor+alveWupCA+IGdvcmFrdXNoaXRzdVwgOwor6Y6u55eb6JasID4gY2hpbnRzdXV5YWt1XCA7Civog73njofnmoQgPiBub3VyaXRzdXRla2lcIDsKK+WQiOWUseabsiA+IGdhc3Nob3VreW9rdVwgOwor5Li56aCC6ba0ID4gdGFuY2hvdWR6dXJ1XCA7CivpnanmlrDnmoQgPiBrYWt1c2hpbnRla2lcIDsKK+WuouWVhuWjsiA+IGt5YWt1c2hvdWJhaVwgOwor5LiA5ous5byPID4gaWtrYXRzdXNoaWtpXCA7CivnlZznlKPmpa0gPiBjaGlrdXNhbmd5b3VcIDsKK+WHuuihgOatuyA+IHNodWtrZXRzdXNoaVwgOwor55m96auq6aCtID4gc2hpcmFnYWF0YW1hXCA7CivmlrDlvaLlvI8gPiBzaGlua2Vpc2hpa2lcIDsKK+WFseacieeJqSA+IGt5b3V5dXVidXRzdVwgOwor55Sz5ZGK566xID4gc2hpbmtva3ViYWtvXCA7Civmm7jnlZnmlpkgPiBrYWtpdG9tZXJ5b3VcIDsKK+W4jOmHiOeGsSA+IGtpc2hha3VuZXRzdVwgOwor5bGx5Y+j55yMID4geWFtYWd1Y2hpa2VuXCA7Civln7fnrYbogIUgPiBzaGlwcGl0c3VzaGFcIDsKK+WVhuWPluW8lSA+IHNob3V0b3JpaGlraVwgOwor5qSN54mp5rK5ID4gc2hva3VidXRzdXl1XCA7Civlh7rooYDmlpEgPiBzaHVra2V0c3VoYW5cIDsKK+S8geeUu+WupCA+IGtpa2FrdXNoaXRzdVwgOwor5L615YWl6LuNID4gc2hpbicnbnl1dWd1blwgOwor5ryB542y54mpID4gZ3lva2FrdWJ1dHN1XCA7CivlipvlrabnmoQgPiByaWtpZ2FrdXRla2lcIDsKK+eWs+eZqueOiSA+IGthbnNoYWt1ZGFtYVwgOwor57SE5p2f5LqLID4geWFrdXNva3Vnb3RvXCA7CivntYzluLflrZAgPiBreW91a2F0YWJpcmFcIDsKK+eBq+a2iOWjtyA+IGhpa2VzaGl0c3Vib1wgOwor5Yip5LyR6bygID4gcmlreXV1bmV6dW1pXCA7CivpoIblv5zlipsgPiBqdW4nJ25vdXJ5b2t1XCA7CivkuIvljYrouqsgPiBzaGltb2hhbnNoaW5cIDsKK+ihqOaxuuaoqSA+IGh5b3VrZXRzdWtlblwgOwor5oqe5LiA55qEID4gdGFrdWl0c3V0ZWtpXCA7CivmtYHli5XniakgPiByeXV1ZG91YnV0c3VcIDsKK+mZs+i/sOabuCA+IGNoaW5qdXRzdXNob1wgOwor6L+95oK85byPID4gdHN1aXRvdXNoaWtpXCA7Civpo7Lpo5/niakgPiBpbnNob2t1YnV0c3VcIDsKK+aYvOmjn+S8miA+IGNodXVzaG9rdWthaVwgOwor55Wc55Sj5a2mID4gY2hpa3VzYW5nYWt1XCA7CivorZjlrZfnjocgPiBzaGlraWppcml0c3VcIDsKK+m8u+mrmOmrmCA+IGhhbmF0YWthZGFrYVwgOwor54m55Yil5rOVID4gdG9rdWJldHN1aG91XCA7Civlh7rmvIHmqKkgPiBzaHV0c3VneW9rZW5cIDsKK+mztuiBt+S6uiA+IHRvYmlzaG9rdW5pblwgOwor6Y6u6a2C5puyID4gY2hpbmtvbmt5b2t1XCA7Civlh7rmvJTmlpkgPiBzaHV0c3VlbnJ5b3VcIDsKK+mAmuS/l+eahCA+IHRzdXV6b2t1dGVraVwgOwor5L615YWl6ICFID4gc2hpbicnbnl1dXNoYVwgOwor56m65Ye65by1ID4ga2FyYXNodXRjaG91XCA7CivooYDlnKfoqIggPiBrZXRzdWF0c3VrZWlcIDsKK+iDhuaxgeizqiA+IHRhbmp1dXNoaXRzdVwgOwor6buE56Kn546JID4ga291aGVraWd5b2t1XCA7CivpmpTmnIjliIogPiBrYWt1Z2V0c3VrYW5cIDsKK+W+qeWOn+WKmyA+IGZ1a3VnZW5yeW9rdVwgOwor56uj5bel5byPID4gc2h1bmtvdXNoaWtpXCA7Civnq7bkuonnjocgPiBreW91c291cml0c3VcIDsKK+epjeeri+mHkSA+IHRzdW1pdGF0ZWtpblwgOwor5qSN54mp5ZySID4gc2hva3VidXRzdWVuXCA7Civni6zouqvlr64gPiBkb2t1c2hpbnJ5b3VcIDsKK+WFpeacreiAhSA+IG55dXVzYXRzdXNoYVwgOwor5paw5YWl55SfID4gc2hpbicnbnl1dXNlaVwgOwor56We6Kyh6ZuGID4gc2hpbicneW91c2h1dVwgOwor5Lih5qW156uvID4gcnlvdWt5b2t1dGFuXCA7CivluLPpnaLpnaIgPiBjaG91bWVuZHp1cmFcIDsKK+imi+epjeabuCA+IG1pdHN1bW9yaXNob1wgOwor56CU5YmK5LujID4ga2Vuc2FrdXNoaXJvXCA7CivmtLvli5XnmoQgPiBrYXRzdWRvdXRla2lcIDsKK+WFqOiDveWKmyA+IHplbicnbm91cnlva3VcIDsKK+mjn+iCiemhniA+IHNob2t1bmlrdXJ1aVwgOwor6IK65rS76YePID4gaGFpa2F0c3VyeW91XCA7CivplovnpajnjocgPiBrYWloeW91cml0c3VcIDsKK+W4uOitmOeahCA+IGpvdXNoaWtpdGVraVwgOwor5Y+O5a655YqbID4gc2h1dXlvdXJ5b2t1XCA7CivosaHlvrTnmoQgPiBzaG91Y2hvdXRla2lcIDsKK+iHquaFouipsSA+IGppbWFuYmFuYXNoaVwgOwor5oub5b6F5a6iID4gc2hvdXRhaWt5YWt1XCA7CivkuqTpn7/mm7IgPiBrb3VreW91a3lva3VcIDsKK+mbu+ino+izqiA+IGRlbmthaXNoaXRzdVwgOwor5bmz5bqV6Ii5ID4gaGlyYXNva29idW5lXCA7CivlsLHku7vlvI8gPiBzaHV1bmluc2hpa2lcIDsKK+WGt+WHjeWupCA+IHJlaXRvdXNoaXRzdVwgOwor6YWN6Iaz5a6kID4gaGFpemVuc2hpdHN1XCA7CivluoPls7bnnIwgPiBoaXJvc2hpbWFrZW5cIDsKK+aapuaUueatoyA+IGtveW9taWthaXNlaVwgOwor5b6z5bed5pa5ID4gdG9rdWdhd2FnYXRhXCA7Civku67lhaXlraYgPiBrYXJpbnl1dWdha3VcIDsKK+WOn+W9ouizqiA+IGdlbmtlaXNoaXRzdVwgOwor6buS6Imy6IWrID4ga29rdXNob2t1c2h1XCA7CivljZLmpa3nlJ8gPiBzb3RzdWd5b3VzZWlcIDsKK+WbnuW+qeWKmyA+IGthaWZ1a3VyeW9rdVwgOwor5YWl5Lya5byPID4gbnl1dWthaXNoaWtpXCA7CivlkJHlv4PlipsgPiBrb3VzaGlucnlva3VcIDsKK+eOieiZq+iJsiA+IHRhbWFtdXNoaWlyb1wgOwor54m55Yil5Y+3ID4gdG9rdWJldHN1Z291XCA7CivohLHmr5vnl4cgPiBkYXRzdW1vdXNob3VcIDsKK+Wni+eQg+W8jyA+IHNoaWt5dXVzaGlraVwgOwor5L2V6Imy5pCoID4gbmFuc2hva3V6dXJpXCA7Civkv6HoqJfmpa0gPiBzaGludGFrdWd5b3VcIDsKK+WDu+agueaApyA+IGhpZ2FtaWtvbmpvdVwgOwor5aWq5LiJ5oyvID4gZGF0c3VzYW5zaGluXCA7CivpiYTngavkuLwgPiB0ZWtrYWRvbmJ1cmlcIDsKK+Wkp+emj+mkhSA+IGRhaWZ1a3Vtb2NoaVwgOwor5L6155Wl6LuNID4gc2hpbnJ5YWt1Z3VuXCA7Civlj43nianos6ogPiBoYW5idXNzaGl0c3VcIDsKK+WItueQg+WKmyA+IHNlaWt5dXVyeW9rdVwgOwor6Zm455Sj54mpID4gcmlrdXNhbmJ1dHN1XCA7CivovrLkvZzniakgPiBub3VzYWt1YnV0c3VcIDsKK+ernOiIjOiYrSA+IHJ5dXV6ZXRzdXJhblwgOwor5Za25qWt55WRID4gZWlneW91YmF0YWtlXCA7Civogonpo5/njaMgPiBuaWt1c2hva3VqdXVcIDsKK+azleW+i+WtpiA+IGhvdXJpdHN1Z2FrdVwgOwor5paw55m65piOID4gc2hpbmhhdHN1bWVpXCA7CivpgJfnlZnlrqIgPiB0b3VyeXV1a3lha3VcIDsKK+W+s+WztuecjCA+IHRva3VzaGltYWtlblwgOwor5riF5rC05a+6ID4ga2l5b21penVkZXJhXCA7CivnhrHlrrnph48gPiBuZXRzdXlvdXJ5b3VcIDsKK+aWh+ethualrSA+IGJ1bnBpdHN1Z3lvdVwgOwor6ISz5Ye66KGAID4gbm91c2h1a2tldHN1XCA7CivpnLLlh7rnl4cgPiByb3NodXRzdXNob3VcIDsKK+mrmOi2s+ifuSA+IHRha2Fhc2hpZ2FuaVwgOwor56eB5ai856qfID4gc2hpc2hvdWt1dHN1XCA7Civpu5LoibLnmYwgPiBrb2t1c2hva3VnYW5cIDsKK+iyp+ihgOeXhyA+IGhpbmtldHN1c2hvdVwgOwor6KqN6K2Y56WoID4gbmluc2hpa2loeW91XCA7Civnlqvnl4XnpZ4gPiB5YWt1YnlvdWdhbWlcIDsKK+mcsuWHuueLgiA+IHJvc2h1dHN1a3lvdVwgOwor5a+G54yf6ICFID4gbWl0c3VyeW91c2hhXCA7CivlhavkuIjls7YgPiBoYWNoaWpvdWppbWFcIDsKK+mZjeelnuihkyA+IGtvdXNoaW5qdXRzdVwgOwor5ZOy5a2m6ICFID4gdGV0c3VnYWt1c2hhXCA7CivlipvkuIDmna8gPiBjaGlrYXJhaXBwYWlcIDsKK+WHuuWTgeeJqSA+IHNodXBwaW5idXRzdVwgOwor54Gw55m96ImyID4ga2FpaGFrdXNob2t1XCA7Civni6zlsYXlrqQgPiBkb2treW9zaGl0c3VcIDsKK+aOpeW+heS/giA+IHNldHRhaWdha2FyaVwgOwor5LiH5bm06ZuqID4gbWFuJyduZW4nJ3l1a2lcIDsKK+eLguaDs+absiA+IGt5b3Vzb3VreW9rdVwgOwor5L6155Wl6ICFID4gc2hpbnJ5YWt1c2hhXCA7CivnlLrlvbnkurogPiBtYWNoaXlha3VuaW5cIDsKK+iasOickueciSA+IGdlamlnZWppbWF5dVwgOwor5a2m57+S5aG+ID4gZ2FrdXNodXVqdWt1XCA7CivmlrDnmbrlo7IgPiBzaGluaGF0c3ViYWlcIDsKK+ertuS6ieWKmyA+IGt5b3Vzb3VyeW9rdVwgOwor5aSx5ZCN5rCPID4gc2hpdHN1bWVpc2hpXCA7CivooajluqfmlbcgPiBvbW90ZXphc2hpa2lcIDsKK+W+tOeZuuS7pCA+IGNob3VoYXRzdXJlaVwgOwor5Ymv5Y+O5YWlID4gZnVrdXNodXVueXV1XCA7CivmgZDllp3nvaogPiBreW91a2F0c3V6YWlcIDsKK+WxiOaKmOi7uCA+IGt1c3NldHN1amlrdVwgOwor5ZCI5YiH6KKLID4gZ2Fzc2FpYnVrdXJvXCA7Civmtojmga/pgJogPiBzaG91c29rdXRzdXVcIDsKK+agquS4u+aoqSA+IGthYnVudXNoaWtlblwgOwor5Y2g5pyJ546HID4gc2VuJyd5dXVyaXRzdVwgOwor5Y2X5Lqs6KKLID4gbmFua2luYnVrdXJvXCA7Civpq5jpq5jmjIcgPiB0YWthdGFrYXl1YmlcIDsKK+eZveiJsuWFiSA+IGhha3VzaG9rdWtvdVwgOwor6ZCY5Lmz55+zID4gc2hvdW55dXVzZWtpXCA7Civml6XnsbPljZQgPiBuaWNoaWJlaWt5b3VcIDsKK+WxiOaKmOinkiA+IGt1c3NldHN1a2FrdVwgOwor5q665Lq655qEID4gc2F0c3VqaW50ZWtpXCA7Civlt6blm6PmiYcgPiBoaWRhcml1Y2hpd2FcIDsKK+mYsuWhteWupCA+IGJvdWppbnNoaXRzdVwgOwor5ZCr5pyJ546HID4gZ2FuJyd5dXVyaXRzdVwgOwor6ISI5pCP5pWwID4gbXlha3VoYWt1c3V1XCA7CivmjqjpgLLlipsgPiBzdWlzaGlucnlva3VcIDsKK+iBvuahn+aVtyA+IHRzdW5ib3NhamlraVwgOwor57iu57es55q6ID4gY2hpcmltZW5qaXdhXCA7Civmrrrkurrni4IgPiBzYXRzdWppbmt5b3VcIDsKK+i8uOWHuuWFpSA+IHl1c2h1dHN1bnl1dVwgOwor6Kaz5a6i5bitID4ga2Fua3lha3VzZWtpXCA7Civlkb3lhqXliqAgPiBpbm9jaGlteW91Z2FcIDsKK+ihqOWFreeOiSA+IGh5b3Vyb2t1ZGFtYVwgOwor5qOu5p6X5rW0ID4gc2hpbnJpbicneW9rdVwgOwor6ICV5L2c54mpID4ga291c2FrdWJ1dHN1XCA7CivniIbnmbrnrqEgPiBiYWt1aGF0c3VrYW5cIDsKK+m7kuWFq+S4iCA+IGt1cm9oYWNoaWpvdVwgOwor5Y2K6Lqr5rW0ID4gaGFuc2hpbicneW9rdVwgOwor5pqX57eR6ImyID4gYW5yeW9rdXNob2t1XCA7CivnrYvogonnl5sgPiBraW4nJ25pa3V0c3V1XCA7Civogbfog73ntaYgPiBzaG9rdW5vdWt5dXVcIDsKK+aWsOeUn+eJqSA+IHNoaW5zZWlidXRzdVwgOwor5YeM6ZyE6IqxID4gbm91emVua2F6dXJhXCA7Civpu5LoibLlsIkgPiBrb2t1c2hpa2lqb3VcIDsKK+WBtueZuueahCA+IGd1dWhhdHN1dGVraVwgOwor54m555Sj54mpID4gdG9rdXNhbmJ1dHN1XCA7CivljJbnsqflrqQgPiBrZXNob3VzaGl0c3VcIDsKK+e3j+aUr+WHuiA+IHNvdXNoaXNodXRzdVwgOwor5ZOy5a2m5pu4ID4gdGV0c3VnYWt1c2hvXCA7CivljZrnianppKggPiBoYWt1YnV0c3VrYW5cIDsKK+S7suS7i+eJqSA+IGNodXVrYWlidXRzdVwgOwor55m96aCt6beyID4gaGFrdXRvdXdhc2hpXCA7CivmnIDmlrDlvI8gPiBzYWlzaGluc2hpa2lcIDsKK+Wxsei6kei6hSA+IHlhbWF0c3V0c3VqaVwgOwor55yB6Zu75YqbID4gc2hvdWRlbnJ5b2t1XCA7CivkuIDljLnni7wgPiBpcHBpa2lvb2thbWlcIDsKK+a2iOaBr+etiyA+IHNob3Vzb2t1c3VqaVwgOwor5LiH5bm0562GID4gbWFuJyduZW5oaXRzdVwgOwor5LuH5ZCM5rCPID4ga2F0YWtpZG91c2hpXCA7CivlsYDlnLDnmoQgPiBreW9rdWNoaXRla2lcIDsKK+mdqeaJi+iiiyA+IGthd2F0ZWJ1a3Vyb1wgOwor5LiD5YiG6KKWID4gc2hpY2hpYnVzb2RlXCA7Civlv4PpnIrooZMgPiBzaGlucmVpanV0c3VcIDsKK+advuerueaihSA+IHNob3VjaGlrdWJhaVwgOwor5qC46ZaL55m6ID4ga2FrdWthaWhhdHN1XCA7Civlm73pmpvoibIgPiBrb2t1c2Fpc2hva3VcIDsKK+WtkOS+m+W/gyA+IGtvZG9tb2dva29yb1wgOwor5YuF6YG46ZuGID4gY2hva3VzZW5zaHV1XCA7Civnsr7npZ7lipsgPiBzZWlzaGlucnlva3VcIDsKK+WGjeeqgeWFpSA+IHNhaXRvdHN1bnl1dVwgOwor55m65L+h5bGAID4gaGFzc2hpbmt5b2t1XCA7CivlpKflkozlv4MgPiB5YW1hdG9nb2tvcm9cIDsKK+iqv+W+i+W4qyA+IGNob3VyaXRzdXNoaVwgOwor6L6e6IG36aGYID4gamlzaG9rdW5lZ2FpXCA7Civopqrlr4bmhJ8gPiBzaGlubWl0c3VrYW5cIDsKK+eqk+mam+aXjyA+IG1hZG9naXdhem9rdVwgOwor5YaZ55yf6KGTID4gc2hhc2hpbmp1dHN1XCA7CivlvqnlhYPlipsgPiBmdWt1Z2Vucnlva3VcIDsKK+i8u+WwhOeGsSA+IGZ1a3VzaGFuZXRzdVwgOwor5L6b6L+w6ICFID4ga3lvdWp1dHN1c2hhXCA7CivnpZ7ntYznr4AgPiBzaGlua2Vpc2V0c3VcIDsKK+eIhueZuuaApyA+IGJha3VoYXRzdXNlaVwgOwor5YWo5pel5Yi2ID4gemVuJyduaWNoaXNlaVwgOwor5raI5q+S6JasID4gc2hvdWRva3V5YWt1XCA7CivpgZPlvrPlvosgPiBkb3V0b2t1cml0c3VcIDsKK+WbvemYsuiJsiA+IGtva3Vib3VzaG9rdVwgOwor57WC5pyr6KuWID4gc2h1dW1hdHN1cm9uXCA7CivlsIbou43ogbcgPiBzaG91Z3Vuc2hva3VcIDsKK+iNieaciOa1gSA+IHNvdWdldHN1cnl1dVwgOwor5piO6LWk6ImyID4gbWVpc2VraXNob2t1XCA7Civku5jnnYDlipsgPiBmdWNoYWt1cnlva3VcIDsKK+ino+axuuetliA+IGthaWtldHN1c2FrdVwgOwor5Y+j5ZSH6KOCID4ga291c2hpbnJldHN1XCA7CivkuIPojYnnsqUgPiBuYW5ha3VzYWdheXVcIDsKK+WVhualreWtpiA+IHNob3VneW91Z2FrdVwgOwor5bu66Kit55yBID4ga2Vuc2V0c3VzaG91XCA7CivliIbliKXlv4MgPiBmdW5iZXRzdXNoaW5cIDsKK+W7uuioreeahCA+IGtlbnNldHN1dGVraVwgOwor5LqM57+75b25ID4gcnlhbmZhbicneWFrdVwgOwor5Y+j5ouN5a2QID4ga3VjaGlieW91c2hpXCA7Civoqo3oqLzlvI8gPiBuaW5zaG91c2hpa2lcIDsKK+e3j+aLrOeahCA+IHNvdWthdHN1dGVraVwgOwor5omY6Ymi5YOnID4gdGFrdWhhdHN1em91XCA7CivllYbmpa3lm70gPiBzaG91Z3lvdWtva3VcIDsKK+S7suS6uuWPoyA+IG5ha291ZG9ndWNoaVwgOwor5qGc5YmN57eaID4gc2FrdXJhemVuc2VuXCA7Civpvo3oiIzomK0gPiByeXV1emV0c3VyYW5cIDsKK+W8t+WItuWKmyA+IGt5b3VzZWlyeW9rdVwgOwor5b+F6Kqt5pu4ID4gaGl0c3Vkb2t1c2hvXCA7CivlnKflipvoqIggPiBhdHN1cnlva3VrZWlcIDsKK+maj+ethumbhiA+IHp1aWhpdHN1c2h1dVwgOwor54yr55uu55+zID4gbmVrb21va3VzZWtpXCA7Civli4nlvLfmnLogPiBiZW5reW91enVrdWVcIDsKK+eZveeOiealvCA+IGhha3VneW9rdXJvdVwgOwor6ZaL6YCa5byPID4ga2FpdHN1dXNoaWtpXCA7Civopb/ljYrnkIMgPiBuaXNoaWhhbmt5dXVcIDsKK+WVhOacqOmzpSA+IHRha3Vib2t1Y2hvdVwgOwor5Y2Y5LiA5b2iID4gdGFuJydpY2hpZ2F0YVwgOwor5b+F54S255qEID4gaGl0c3V6ZW50ZWtpXCA7CivmsLTon7fonoIgPiBtaXp1a2FtYWtpcmlcIDsKK+aYn+aciOWknCA+IGhvc2hpZHp1a3V5b1wgOwor57ie57mU54mpID4gc2hpbWFvcmltb25vXCA7Civlu7roqK3mpa0gPiBrZW5zZXRzdWd5b3VcIDsKK+m8u+mrmOOAhSA+IGhhbmF0YWthZGFrYVwgOwor5ZWG5Lq66KGXID4gc2hvdW5pbm1hY2hpXCA7CivkuIDluZXniakgPiBoaXRvbWFrdW1vbm9cIDsKK+eZvuS6uuWKmyA+IGh5YWt1bmlucmlraVwgOwor5L6b6L+w5pu4ID4ga3lvdWp1dHN1c2hvXCA7Civlrp/mpa3nlYwgPiBqaXRzdWd5b3VrYWlcIDsKK+ihjOW5s+mNiyA+IHl1a2loaXJhbmFiZVwgOwor6JC95oiQ5byPID4gcmFrdXNlaXNoaWtpXCA7Civmn7Plt53pjYsgPiB5YW5hZ2F3YW5hYmVcIDsKK+iIque2muWKmyA+IGtvdXpva3VyeW9rdVwgOwor55u05o6l6LK7ID4gY2hva3VzZXRzdWhpXCA7CivlsbHmoqjnnIwgPiB5YW1hbmFzaGlrZW5cIDsKK+ajl+aksOWtkCA+IG5hdHN1bWV5YXNoaVwgOwor5Yi65r+A54mpID4gc2hpZ2VraWJ1dHN1XCA7CivmvKvpgYrlrqIgPiBtYW4nJ3l1dWt5YWt1XCA7Civpo5/nianmsrkgPiBzaG9rdWJ1dHN1eXVcIDsKK+eTpueFjumkhSA+IGthd2FyYXNlbmJlaVwgOwor6Kaq5a2Q5Li8ID4gb3lha29kb25idXJpXCA7CivokZfov7Dmpa0gPiBjaG9qdXRzdWd5b3VcIDsKK+iSvOeZveiJsiA+IHNvdWhha3VzaG9rdVwgOwor5LiD6L665b2iID4gc2hpY2hpaGVua2VpXCA7CivlubTmnKvov4QgPiBuZW5tYXRzdW1hZGVcIDsKK+WjsuaYpeWuvyA+IGJhaXNodW4nJ3lhZG9cIDsKK+izqueCueezuyA+IHNoaXRzdXRlbmtlaVwgOwor5b6h5Ly96KmxID4gb3RvZ2liYW5hc2hpXCA7Civmk43mpa3njocgPiBzb3VneW91cml0c3VcIDsKK+aeleWxj+miqCA+IG1ha3VyYWJ5b3VidVwgOwor6KGA5ray5a2mID4ga2V0c3Vla2lnYWt1XCA7Civln7rnnaPmlZkgPiBraXJpc3V0b2t5b3VcIDsKK+m8oOiKseeBqyA+IG5lenVtaWhhbmFiaVwgOwor5o2V54mp5bizID4gdG9yaW1vbm9jaG91XCA7CivmjZXnianluJYgPiB0b3JpbW9ub2Nob3VcIDsKK+iyr+iUteWupCA+IGNob3pvdXNoaXRzdVwgOwor5byU5ZWP5a6iID4gY2hvdW1vbmt5YWt1XCA7CivpgbrlpLHniakgPiBpc2hpdHN1YnV0c3VcIDsKK+WLleiEiOihgCA+IGRvdW15YWtrZXRzdVwgOwor5YWl5aC05byPID4gbnl1dWpvdXNoaWtpXCA7CivntLDog57os6ogPiBzYWlib3VzaGl0c3VcIDsKK+ihgOa2suWeiyA+IGtldHN1ZWtpZ2F0YVwgOwor5qiZ6K2Y54GvID4gaHlvdXNoaWtpdG91XCA7CivljIXmi6znmoQgPiBob3VrYXRzdXRla2lcIDsKK+WKh+S4reWKhyA+IGdla2ljaHV1Z2VraVwgOwor5a6f55So55qEID4gaml0c3V5b3V0ZWtpXCA7Civkvo3lhavpqI4gPiBzYW11cmFpaGFra2lcIDsKK+S4remWk+iJsiA+IGNodXVrYW5zaG9rdVwgOwor6ZaL6IW56KGTID4ga2FpZnVrdWp1dHN1XCA7Civnm7TmkoPlvL4gPiBjaG9rdWdla2lkYW5cIDsKK+WJr+eUo+eJqSA+IGZ1a3VzYW5idXRzdVwgOwor5ZG95Lit546HID4gbWVpY2h1dXJpdHN1XCA7CivooYDlj4vnl4UgPiBrZXRzdXl1dWJ5b3VcIDsKK+eyvueZveeOhyA+IHNlaWhha3VyaXRzdVwgOwor5Z2H6LOq5oCnID4ga2luc2hpdHN1c2VpXCA7CivmiLjnsY3kv4IgPiBrb3Nla2lnYWthcmlcIDsKK+aOpeWuoualrSA+IHNla2t5YWt1Z3lvdVwgOwor6JOE6Ia/55eHID4gY2hpa3Vub3VzaG91XCA7CivoirHlvaLmoKogPiBoYW5hZ2F0YWthYnVcIDsKK+aMr+WHuuS6uiA+IGZ1cmlkYXNoaW5pblwgOwor6Ki76YeI6ICFID4gY2h1dXNoYWt1c2hhXCA7CivnpoHmrLLnmoQgPiBraW4nJ3lva3V0ZWtpXCA7CivkuIDliIbliKUgPiBoaXRvZnVuYmV0c3VcIDsKK+WNiueLrOeriyA+IGhhbmRva3VyaXRzdVwgOwor5Z+35YuZ5LitID4gc2hpdHN1bXVjaHV1XCA7Civopqrml6XmtL4gPiBzaGluJyduaWNoaWhhXCA7Civnpo/ls7bnnIwgPiBmdWt1c2hpbWFrZW5cIDsKK+iqv+iJsuadvyA+IGNob3VzaG9rdWJhblwgOwor5Ymq5a6a6YuPID4gc2VudGVpYmFzYW1pXCA7Civnt5Hpu4ToibIgPiByeW9rdW91c2hva3VcIDsKK+S4i+Wxi+aVtyA+IHNoaW1veWFzaGlraVwgOwor6LuK55So5ZOBID4ga3VydW1heW91aGluXCA7CivogJDkuYXlipsgPiB0YWlreXV1cnlva3VcIDsKK+WvneWPsOiZqyA+IHNoaW5kYWltdXNoaVwgOwor5Zec6JmQ55qEID4gc2hpZ3lha3V0ZWtpXCA7CivkuK3ntpnlsYAgPiBjaHV1a2Vpa3lva3VcIDsKK+mVt+W6g+iIjCA+IGNob3Vrb3V6ZXRzdVwgOwor5pel5rKh5b6MID4gbmljaGlib3RzdWdvXCA7Civli5XohIjnmKQgPiBkb3VteWFrdXJ5dXVcIDsKK+S4gOi8quaMvyA+IGljaGlyaW56YXNoaVwgOwor6JK455m655q/ID4gam91aGF0c3V6YXJhXCA7Civos4PlgJ/mqKkgPiBjaGluc2hha3VrZW5cIDsKK+WNuOWVj+WxiyA+IG9yb3NoaWRvbicneWFcIDsKK+mYsua5v+WJpCA+IGJvdXNoaXRzdXphaVwgOwor5Y+O56mr6auYID4gc2h1dWtha3VkYWthXCA7Civlho3lh7rnmbogPiBzYWlzaHVwcGF0c3VcIDsKK+WNlOWlj+absiA+IGt5b3Vzb3VreW9rdVwgOwor5ZGo5qW15pifID4gc2h1dWt5b2t1c2VpXCA7Civpm7booYzliJcgPiByZWlneW91cmV0c3VcIDsKK+WHuueZuueCuSA+IHNodXBwYXRzdXRlblwgOwor5ZCI5qC8546HID4gZ291a2FrdXJpdHN1XCA7CivooYzpgLLmm7IgPiBrb3VzaGlua3lva3VcIDsKK+eZveeGseeBryA+IGhha3VuZXRzdXRvdVwgOwor6aOf5paZ5ZOBID4gc2hva3VyeW91aGluXCA7Civmk43ou4rkv4IgPiBzb3VzaGFnYWthcmlcIDsKK+WIuuaIn+eJqSA+IHNoaWdla2lidXRzdVwgOwor5rm/6Zu75rGgID4gc2hpdHN1ZGVuY2hpXCA7CivoprPmjozooZMgPiBrYW5zaG91anV0c3VcIDsKK+ecn+mqqOmggiA+IHNoaW5rb3RjaG91XCA7Civlv4XopoHlk4EgPiBoaXRzdXlvdWhpblwgOwor55S75LiW55qEID4ga2FrdXNlaXRla2lcIDsKK+eGqOaWl+iiiyA+IG5vc2hpYnVrdXJvXCA7CivmuKzlnLDlraYgPiBzb2t1Y2hpZ2FrdVwgOwor6ZuB5pyo6ZGiID4gZ2FuZ2l5YXN1cmlcIDsKK+WGjeWJsuW8lSA+IHNhaXdhcmliaWtpXCA7CivlpYnnjK7lvI8gPiBob3VrZW5zaGlraVwgOwor5Yid6KqV55SfID4gaGF0c3V0YW5qb3VcIDsKK+S4ieacrOi2syA+IHNhbmJvbicnYXNoaVwgOwor5Yik5pat5YqbID4gaGFuZGFucnlva3VcIDsKK+WNlOiqv+aApyA+IGt5b3VjaG91c2VpXCA7CivlpKnpgZPkub4gPiB0ZW50b3Vib3NoaVwgOwor55m95pel5aSiID4gaGFrdWppdHN1bXVcIDsKK+WIhuaekOihqCA+IGJ1bnNla2loeW91XCA7Civmib/oq77mm7ggPiBzaG91ZGFrdXNob1wgOwor5bCR6aOf5a62ID4gc2hvdXNob2t1a2FcIDsKK+S7ruWft+ihjCA+IGthcmlzaGlra291XCA7Civmj6HlipvoqIggPiBha3VyeW9rdWtlaVwgOwor5LiN6Laz5YudID4gZnVzb2t1Z2FjaGlcIDsKK+W+jOmAsuWbvSA+IGtvdXNoaW5rb2t1XCA7CivmtJfnnLzolqwgPiBzZW5nYW4nJ3lha3VcIDsKK+W+qee/kuaWhyA+IGZ1a3VzaHV1YnVuXCA7CivmraLooYDluK8gPiBzaGlrZXRzdXRhaVwgOwor5LiL5a6/5paZID4gZ2VzaHVrdXJ5b3VcIDsKK+mHjemHj+e0miA+IGp1dXJ5b3VreXV1XCA7CivliY3pgLLou7ggPiB6ZW5zaGluamlrdVwgOwor6YmE55+z5b+DID4gdGVzc2VraXNoaW5cIDsKK+eUmOiMtuiUkyA+IGFtYWNoYWR6dXJ1XCA7CivnvbLlkI3lvI8gPiBzaG9tZWlzaGlraVwgOwor5Lq65b+D5ZywID4gaGl0b2dva29jaGlcIDsKK+WbmuS6uuacjSA+IHNodXVqaW5mdWt1XCA7CivlvovlhIDogIUgPiByaWNoaWdpbW9ub1wgOwor6ZuB5pyo6LuKID4gZ2FuZ2lndXJ1bWFcIDsKK+aGguasneeXhyA+IHl1dXV0c3VzaG91XCA7Civlrp/pqJPlvI8gPiBqaWtrZW5zaGlraVwgOwor54uC5L+h6ICFID4ga3lvdXNoaW5zaGFcIDsKK+awkeaXj+eahCA+IG1pbnpva3V0ZWtpXCA7CivnmbroqIDogIUgPiBoYXRzdWdlbnNoYVwgOwor5Y2Y57im5YiXID4gdGFuanV1cmV0c3VcIDsKK+S4ieS6uue1hCA+IHNhbicnbmluZ3VtaVwgOwor6buS5paR55eFID4ga29rdWhhbmJ5b3VcIDsKK+aCquaCquaIryA+IHdhcnVpdGF6dXJhXCA7Civlrp/nlKjlk4EgPiBqaXRzdXlvdWhpblwgOwor5aSn6IW/6aqoID4gZGFpdGFpa290c3VcIDsKK+awtOicnOahgyA+IHN1aW1pdHN1dG91XCA7CivmvILmtYHoiLkgPiBoeW91cnl1dXNlblwgOwor6aC45YuV6ISIID4ga2VpZG91bXlha3VcIDsKK+eUn+WFteazlSA+IG5hbWFieW91aG91XCA7Civng4/nvr3oibIgPiBrYXJhc3ViYWlyb1wgOwor5byf5byf5a2QID4gb3RvdXRvZGVzaGlcIDsKK+WKh+aWh+WtpiA+IGdla2lidW5nYWt1XCA7CivliqDolqzpo68gPiBrYXlha3VtZXNoaVwgOwor5YyX5Y2K55CDID4ga2l0YWhhbmt5dXVcIDsKK+mbhuS4ree3miA+IHNodXVjaHV1c2VuXCA7Civlvpfmpa3lo6sgPiB0b2t1Z3lvdXNoaVwgOwor5YmN6YCy6KeSID4gemVuc2hpbmtha3VcIDsKK+mkiuauluaxoCA+IHlvdXNob2t1Y2hpXCA7Civll5zomZDmgKcgPiBzaGlneWFrdXNlaVwgOwor5LiJ5Lq656ewID4gc2FuJyduaW5zaG91XCA7CivkuK3ntJrlk4EgPiBjaHV1a3l1dWhpblwgOwor5ryC5rWB6ICFID4gaHlvdXJ5dXVzaGFcIDsKK+iqmOaDkeeJqSA+IHl1dXdha3Vtb25vXCA7CivpoK3ok4vpqqggPiB0b3VnYWlrb3RzdVwgOwor55m65piO5ZOBID4gaGF0c3VtZWloaW5cIDsKK+WkseagvOiAhSA+IHNoaWtrYWt1c2hhXCA7CivmiJDnuL7ooaggPiBzZWlzZWtpaHlvdVwgOwor5rOo5paH5YWIID4gY2h1dW1vbnNha2lcIDsKK+aXouaxuuWbmiA+IGtpa2V0c3VzaHV1XCA7CivmkYLli5Xoq5YgPiBzZXRzdWRvdXJvblwgOwor5LyP5rWB5rC0ID4gZnVrdXJ5dXVzdWlcIDsKK+eLrOijgeeahCA+IGRva3VzYWl0ZWtpXCA7Civpq5joqr/lrZAgPiB0YWthY2hvdXNoaVwgOwor56uL6ISa5ZywID4gcmlra3lha3VjaGlcIDsKK+WGjeani+eviSA+IHNhaWtvdWNoaWt1XCA7Civmq5PlpKrpvJMgPiB5YWd1cmFkYWlrb1wgOwor5q2i6KGA5YmkID4gc2hpa2V0c3V6YWlcIDsKK+S4oeaWueWFsSA+IHJ5b3Vob3V0b21vXCA7Civmnb7okYnmnZYgPiBtYXRzdWJhZHp1ZVwgOwor5rKW56mN57WxID4gY2h1dXNla2l0b3VcIDsKK+S7leS6i+eusSA+IHNoaWdvdG9iYWtvXCA7CivmsLfphovphbggPiBoeW91c2FrdXNhblwgOwor5pu457GN5ZWGID4gc2hvc2VraXNob3VcIDsKK+S7rue2tOacrCA+IGthcml0b2ppaG9uXCA7Civnmbrpm7vmiYAgPiBoYXRzdWRlbnNob1wgOwor5a6Y6IO955qEID4ga2FuJydub3V0ZWtpXCA7CivmnKvmoqLnmoQgPiBtYXNzaG91dGVraVwgOwor5Lit6ZaT5Zu9ID4gY2h1dWthbmtva3VcIDsKK+aAnee0oueahCA+IHNoaXNha3V0ZWtpXCA7Civlh7rouqvmoKEgPiBzaHVzc2hpbmtvdVwgOwor54Gw6Z2S6ImyID4gaGFpc2Vpc2hva3VcIDsKK+iIqua1t+ihkyA+IGtvdWthaWp1dHN1XCA7CivlsI/mnbHkuqwgPiBzaG91dG91a3lvdVwgOwor5Y2D5Lq65YqbID4gc2VuJyduaW5yaWtpXCA7Civkurrlt6Xoip0gPiBqaW5rb3VzaGliYVwgOwor6Lu96YeP57SaID4ga2VpcnlvdWt5dXVcIDsKK+aLmOadn+WcpyA+IGtvdXNva3VhdHN1XCA7CivmiKbpl5jlipsgPiBzZW50b3VyeW9rdVwgOwor55CD6Z2i6Y+hID4ga3l1dW1lbmt5b3VcIDsKK+S6uuW9ouWKhyA+IG5pbmd5b3VnZWtpXCA7CivnhKHpqqjogIUgPiBidWtvdHN1bW9ub1wgOwor55S65aWJ6KGMID4gbWFjaGlidWd5b3VcIDsKK+epuuiovOaWhyA+IGthcmFzaG91bW9uXCA7CivmsLfphaLphbggPiBoeW91c2FrdXNhblwgOwor5pS+54mp57eaID4gaG91YnV0c3VzZW5cIDsKK+iqv+WtkOiAhSA+IGNob3VzaGltb25vXCA7Civnj77lrp/mhJ8gPiBnZW5qaXRzdWthblwgOwor56mN5YiG5a2mID4gc2VraWJ1bmdha3VcIDsKK+ePvuWun+aApyA+IGdlbmppdHN1c2VpXCA7Civpq5jpm7vlnKcgPiBrb3VkZW4nJ2F0c3VcIDsKK+WtpuWVj+eahCA+IGdha3Vtb250ZWtpXCA7CivlrabnqbbnmoQgPiBnYWtreXV1dGVraVwgOwor5Y+O56mr56WtID4gc2h1dWtha3VzYWlcIDsKK+eJqeeQhuWtpiA+IGJ1dHN1cmlnYWt1XCA7CivlnoLnm7Tnt5ogPiBzdWljaG9rdXNlblwgOwor5q205Y+y5a2mID4gcmVraXNoaWdha3VcIDsKK+a9pOa7keWJpCA+IGp1bmthdHN1emFpXCA7CivntYTnuZTlraYgPiBzb3NoaWtpZ2FrdVwgOwor55m66Zu75a2QID4gaGF0c3VkZW5zaGlcIDsKK+S4ieWwiuS7jyA+IHNhbnpvbmJ1dHN1XCA7CivlvJXlj5bkurogPiBoaWtpdG9yaW5pblwgOwor5ryC5rOK6ICFID4gaHlvdWhha3VzaGFcIDsKK+ecn+eUsOiZqyA+IHNhbmFkYW11c2hpXCA7Civpl4fllYbkurogPiB5YW1pc2hvdW5pblwgOwor5YWl5ryB5paZID4gbnl1dWd5b3J5b3VcIDsKK+S4g+WuneeEvCA+IHNoaXBwb3V5YWtpXCA7Civpi7zpiYTmnb8gPiBrb3V0ZXRzdWJhblwgOwor5YSq6Imv5qCqID4geXV1cnlvdWthYnVcIDsKK+acrOagvOeahCA+IGhvbmtha3V0ZWtpXCA7CivlvqnorpDmiKYgPiBmdWt1c2h1dXNlblwgOwor5pq05Yqb5ZujID4gYm91cnlva3VkYW5cIDsKK+WIneiouuaWmSA+IHNob3NoaW5yeW91XCA7Civlj6PpgZTogIUgPiBrdWNoaWRhc3NoYVwgOwor6ICQ54ax5oCnID4gdGFpbmV0c3VzZWlcIDsKK+Wil+ihgOWJpCA+IHpvdWtldHN1emFpXCA7CivljJfljJfmnbEgPiBob2t1aG9rdXRvdVwgOwor55m66KiA5qipID4gaGF0c3VnZW5rZW5cIDsKK+aApeaIkOmVtyA+IGt5dXVzZWljaG91XCA7Civlh7ros4fpoY0gPiBzaHVzc2hpZ2FrdVwgOwor5YaF5YiG5rOMID4gbmFpYnVucGl0c3VcIDsKK+Wbm+aXrOevgCA+IHNoaWp1bnNldHN1XCA7CivkuZ3lrpjps6UgPiBreXV1a2FuY2hvdVwgOwor6ICB5Lq65YqbID4gcm91amlucnlva3VcIDsKK+W7uuevieWjqyA+IGtlbmNoaWt1c2hpXCA7CivlpKrmpbXmi7MgPiB0YWlreW9rdWtlblwgOwor55Sf55Wq57WEID4gbmFtYWJhbmd1bWlcIDsKK+mkiuauluWgtCA+IHlvdXNob2t1am91XCA7CivomZrohLHmhJ8gPiBreW9kYXRzdWthblwgOwor6LGh54mZ6LOqID4gem91Z2VzaGl0c3VcIDsKK+mahum8u+ihkyA+IHJ5dXViaWp1dHN1XCA7CivooajpnaLnqY0gPiBoeW91bWVuc2VraVwgOwor5Yqq5Yqb6LOeID4gZG9yeW9rdXNob3VcIDsKK+WNgeS6uuS4piA+IGp1dW5pbicnbmFtaVwgOwor6Jas6ZG16aCtID4geWFrYW4nJ2F0YW1hXCA7CivllYblo7LnrYsgPiBzaG91YmFpc3VqaVwgOwor5riv5rm+5bGAID4ga291d2Fua3lva3VcIDsKK+awtOWVhuWjsiA+IG1penVzaG91YmFpXCA7CivpiYTpgZPkvr8gPiB0ZXRzdWRvdWJpblwgOwor5rCR5peP5a2mID4gbWluem9rdWdha3VcIDsKK+attOWPsuWKhyA+IHJla2lzaGlnZWtpXCA7Civmup3lvaLpi7wgPiBtaXpvZ2F0YWtvdVwgOwor5piO5pmw5aSiID4gbWVpc2VraXl1bWVcIDsKK+mAoOihgOWJpCA+IHpvdWtldHN1emFpXCA7Civmlq3ntprnmoQgPiBkYW56b2t1dGVraVwgOwor5byP6YOo55yBID4gc2hpa2lidXNob3VcIDsKK+altemBk+iAhSA+IGdva3Vkb3Vtb25vXCA7CivplovmoKHlvI8gPiBrYWlrb3VzaGlraVwgOwor5rCR57SE6KuWID4gbWluJyd5YWt1cm9uXCA7CivpmLLlvqHnjocgPiBib3VneW9yaXRzdVwgOwor6KGo6Z2i55qEID4gaHlvdW1lbnRla2lcIDsKK+ioiOaZguS/giA+IGtlaWppZ2FrYXJpXCA7Civlvoznmbrlk4EgPiBrb3VoYXRzdWhpblwgOwor6Jap5pGp54S8ID4gc2F0c3VtYXlha2lcIDsKK+WHuui6q+WcsCA+IHNodXNzaGluY2hpXCA7CivorbfouqvooZMgPiBnb3NoaW5qdXRzdVwgOwor5LiO5aSq6KmxID4geW90YWJhbmFzaGlcIDsKK+WGjeWFpeWtpiA+IHNhaW55dXVnYWt1XCA7CivljZTntITmm7ggPiBreW91eWFrdXNob1wgOwor6Kq/5a2Q54mpID4gY2hvdXNoaW1vbm9cIDsKK+S4iee+veeDjyA+IHNhbmJhZ2FyYXN1XCA7CivoqKrllY/lrqIgPiBob3Vtb25reWFrdVwgOwor5rK76aiT6JasID4gY2hpa2VuJyd5YWt1XCA7CivmgKflloToqqwgPiBzZWl6ZW5zZXRzdVwgOwor5LuV5LqL5p+EID4gc2hpZ290b2dhcmFcIDsKK+Wkp+aguei2syA+IGRhaWtvbicnYXNoaVwgOwor5YWJ54Cs6b6NID4gbWl0c3VzZXJ5dXVcIDsKK+eLvOiXieiAhSA+IHJvdXpla2ltb25vXCA7Civlv4Pmi43mlbAgPiBzaGlucGFrdXN1dVwgOwor5YuV54mp6KqMID4gZG91YnV0c3VzaGlcIDsKK+i/lOWNtOWApCA+IGhlbmt5YWt1Y2hpXCA7CivnhKHpp4ToqbEgPiBtdWRhYmFuYXNoaVwgOwor5YiG5a2Q5byPID4gYnVuc2hpc2hpa2lcIDsKK+mZjei7iuWPoyA+IGtvdXNoYWd1Y2hpXCA7CivmpJzlh7rlmaggPiBrZW5zaHV0c3VraVwgOwor6JC96JGJ5p2+ID4gcmFrdXlvdXNob3VcIDsKK+alteWJjee3miA+IGt5b2t1emVuc2VuXCA7CivotoXotorngrkgPiBjaG91ZXRzdXRlblwgOwor6buS54yp44CFID4ga3Vyb3Nob3Vqb3VcIDsKK+WbveaFtuevgCA+IGtva2tlaXNldHN1XCA7CivlpKnnlKPniakgPiB0ZW5zYW5idXRzdVwgOwor57Sz5aOr6YyyID4gc2hpbnNoaXJva3VcIDsKK+WGjeWFpeWbvSA+IHNhaW55dXVrb2t1XCA7CivnsKHmvZTmgKcgPiBrYW5rZXRzdXNlaVwgOwor5YiH5pat6Z2iID4gc2V0c3VkYW5tZW5cIDsKK+W8lei+vOe3miA+IGhpa2lrb21pc2VuXCA7Civnspflv73ogIUgPiBzb2tvdHN1bW9ub1wgOwor6ZaL5Lya5byPID4ga2Fpa2Fpc2hpa2lcIDsKK+aEn+WCt+eahCA+IGthbnNob3V0ZWtpXCA7CivluILmnInniakgPiBzaGl5dXVidXRzdVwgOwor6IGW6IG36ICFID4gc2Vpc2hva3VzaGFcIDsKK+S4reiho+WaoiA+IG5ha2FnYWt1c2hpXCA7Civni6znq4voqp4gPiBkb2t1cml0c3Vnb1wgOwor6IKy5YWQ5a6kID4gaWt1amlzaGl0c3VcIDsKK+e5geauluWcsCA+IGhhbnNob2t1Y2hpXCA7CivkuIDkurrnp7AgPiBpY2hpbmluc2hvdVwgOwor6ZW35bSO55yMID4gbmFnYXNha2lrZW5cIDsKK+mbu+WKm+ioiCA+IGRlbnJ5b2t1a2VpXCA7Civoo73msLfnmr8gPiBzZWloeW91emFyYVwgOwor5Li756iO5bGAID4gc2h1emVpa3lva3VcIDsKK+aOpee2muiqniA+IHNldHN1em9rdWdvXCA7Civnibnpm4blj7cgPiB0b2t1c2h1dWdvdVwgOwor6buS6KSQ6ImyID4ga29ra2Fzc2hva3VcIDsKK+S4reWbveS6uiA+IGNodXVnb2t1amluXCA7CivlvpPlsZ7lm70gPiBqdXV6b2t1a29rdVwgOwor5Y+j6L+U562UID4ga3VjaGloZW50b3VcIDsKK+a4m+ihsOeOhyA+IGdlbnN1aXJpdHN1XCA7CivlsI7pm7vnjocgPiBkb3VkZW5yaXRzdVwgOwor5LiA5LqG57ChID4gaWNoaXJ5b3VrYW5cIDsKK+WGjei8uOWHuiA+IHNhaXl1c2h1dHN1XCA7CivpnZLpioXoibIgPiBzZWlkb3VzaG9rdVwgOwor6ZqK5ZWG5a6/ID4gdGFpc2hvdXlhZG9cIDsKK+W8j+asoeesrCA+IHNoaWtpc2hpZGFpXCA7CivnlJ/nlKPniakgPiBzZWlzYW5idXRzdVwgOwor5bm76Kaa55eHID4gZ2Vua2FrdXNob3VcIDsKK+aKleaJi+WKmyA+IHRvdXNodXJ5b2t1XCA7CivplonkvJrlvI8gPiBoZWlrYWlzaGlraVwgOwor5rKW56mN5bGkID4gY2h1dXNla2lzb3VcIDsKK+WCrOecoOihkyA+IHNhaW1pbmp1dHN1XCA7CivonZnonaDlgpggPiBrb3Vtb3JpZ2FzYVwgOwor5ZCR5pel5oCnID4ga291bmljaGlzZWlcIDsKK+WQuOWPlue0mSA+IHN1aXRvcmlnYW1pXCA7CivmhoLprLHnl4cgPiB5dXV1dHN1c2hvdVwgOwor6auY5Zyn55qEID4ga291YXRzdXRla2lcIDsKK+acieWKm+iAhSA+IHl1dXJ5b2t1c2hhXCA7CivliKXllY/poYwgPiBiZXRzdW1vbmRhaVwgOwor5Luj5pWw5byPID4gZGFpc3V1c2hpa2lcIDsKK+WFpea4r+aWmSA+IG55dXVrb3VyeW91XCA7CivnhKHlrr/ogIUgPiBtdXNodWt1bW9ub1wgOwor5Y6f5a2Q5YqbID4gZ2Vuc2hpcnlva3VcIDsKK+aIkOaWh+W+iyA+IHNlaWJ1bnJpdHN1XCA7CivnlLfkuIDljLkgPiBvdG9rb2lwcGlraVwgOwor5aGe5qCT55eHID4gc29rdXNlbnNob3VcIDsKK+WVhuWjsuafhCA+IHNob3ViYWlnYXJhXCA7CivohbnotrPpoZ4gPiBmdWt1c29rdXJ1aVwgOwor5p2x5Y2w5bqmID4gaGlnYXNoaWluZG9cIDsKK+izh+acrOWKmyA+IHNoaWhvbnJ5b2t1XCA7CivnpYflnJLnpa0gPiBnaW9ubWF0c3VyaVwgOwor5LiK5Lqs5LitID4gam91a3lvdWNodXVcIDsKK+WCrOecoOiWrCA+IHNhaW1pbicneWFrdVwgOwor54++6LGh5a2mID4gZ2Vuc2hvdWdha3VcIDsKK+eni+a0peWztiA+IGFraXRzdXNoaW1hXCA7CivnvorlsI/lsYsgPiBoaXRzdWppZ295YVwgOwor6KOF6aO+5ZOBID4gc291c2hva3VoaW5cIDsKK+WNg+aXpeaJiyA+IHNlbicnbmljaGl0ZVwgOwor5qSN5rCR5ZywID4gc2hva3VtaW5jaGlcIDsKK+WkluWIhuazjCA+IGdhaWJ1bnBpdHN1XCA7CivpmqPov5HmiYAgPiB0b25hcmlraW5qb1wgOwor5a++6aCC6KeSID4gdGFpY2hvdWtha3VcIDsKK+iCqeeUsumqqCA+IGtlbmtvdWtvdHN1XCA7CivohbDlvIHlvZMgPiBrb3NoaWJlbnRvdVwgOwor5Y+j5ben6ICFID4ga3VjaGlnb3VzaGFcIDsKK+S4jeS4luWHuiA+IGZ1c2Vpc2h1dHN1XCA7CivlhYjml6Xku5ggPiBzYWtpaGlkenVrZVwgOwor6YCP6KaW5YqbID4gdG91c2hpcnlva3VcIDsKK+WJteioreiAhSA+IHNvdXNldHN1c2hhXCA7Civph5HprZrpiaIgPiBraW5neW9iYWNoaVwgOwor6KGS5a2m55qEID4gZ2VuZ2FrdXRla2lcIDsKK+mHkeefs+WtpiA+IGtpbnNla2lnYWt1XCA7Civph47oj5znlZEgPiB5YXNhaWJhdGFrZVwgOwor55u05oSf55qEID4gY2hva2thbnRla2lcIDsKK+WLleeJqeebuCA+IGRvdWJ1dHN1c291XCA7Civos4Pku5XkuosgPiBjaGluc2hpZ290b1wgOwor54m56Kix5Li7ID4gdG9ra3lvbnVzaGlcIDsKK+Wliee0jeeJqSA+IGhvdW5vdWJ1dHN1XCA7Civkv53ph4jkuK0gPiBob3NoYWt1Y2h1dVwgOwor6Z2S6JeN6ImyID4gc2VpcmFuc2hva3VcIDsKK+iEhei/q+iAhSA+IGt5b3VoYWt1c2hhXCA7Civli5XniannlYwgPiBkb3VidXRzdWthaVwgOwor6YCa6KGM5LiKID4gdHN1dWtvdWRvbWVcIDsKK+W8t+WlquiAhSA+IGdvdWRhdHN1c2hhXCA7CivohIXov6vnvaogPiBreW91aGFrdXphaVwgOwor5Zuj57WQ5qipID4gZGFua2V0c3VrZW5cIDsKK+e0hOWNiuW5tCA+IHlha3VoYW4nJ25lblwgOwor5oqV56Wo566xID4gdG91aHlvdWJha29cIDsKK+e0oOS6uuiKuCA+IHNoaXJvdXRvZ2VpXCA7CivnqY3mpbXmgKcgPiBzZWtreW9rdXNlaVwgOwor5qW15bqn5qiZID4ga3lva3V6YWh5b3VcIDsKK+Wvneato+aciCA+IG5lc2hvdWdhdHN1XCA7CivmtZrmuKvmqZ8gPiBzaHVuc2V0c3VraVwgOwor57+86Z2i56mNID4geW9rdW1lbnNla2lcIDsKK+e3j+ebrumMsiA+IHNvdW1va3Vyb2t1XCA7CivmoLjlj43lv5wgPiBrYWt1aGFuJydub3VcIDsKK+WItumFuOiWrCA+IHNlaXNhbicneWFrdVwgOwor6LaF5Lq655qEID4gY2hvdWppbnRla2lcIDsKK+esrOS4gOa1gSA+IGRhaWljaGlyeXV1XCA7CivotrPmi43lrZAgPiBhc2hpYnlvdXNoaVwgOwor5byx5p2Q5paZID4geW93YXphaXJ5b3VcIDsKK+aOpeinpue3miA+IHNlc3Nob2t1c2VuXCA7Civlvbnlipvlo6sgPiB5YWt1cmlraXNoaVwgOwor57Wx6L2E6ICFID4gdG91a2F0c3VzaGFcIDsKK+S7leS6i+S4rSA+IHNoaWdvdG9jaHV1XCA7CivlnJ/nmb7lp5MgPiBkb2J5YWt1c2hvdVwgOwor5paH5a2m6LOeID4gYnVuZ2FrdXNob3VcIDsKK+aLm+iri+WbvSA+IHNob3VzZWlrb2t1XCA7Civnt4/lj47lhaUgPiBzb3VzaHV1bnl1dVwgOwor5ris6YeP6Ii5ID4gc29rdXJ5b3VzZW5cIDsKK+WAn+WcsOaoqSA+IHNoYWt1Y2hpa2VuXCA7CivmspbnqY3kuJYgPiBjaHV1c2VraXNlaVwgOwor5Y+j6L+w5pu4ID4ga291anV0c3VzaG9cIDsKK+auieiBt+iAhSA+IGp1bnNob2t1c2hhXCA7Civnl4XomavlrrMgPiBieW91Y2h1dWdhaVwgOwor5oqA6KGT55qEID4gZ2lqdXRzdXRla2lcIDsKK+Wwj+iqrOWutiA+IHNob3VzZXRzdWthXCA7CivnibnntITlupcgPiB0b2t1eWFrdXRlblwgOwor5Lqk6YCa6YePID4ga291dHN1dXJ5b3VcIDsKK+mBk+ahiOWGhSA+IG1pY2hpYW4nJ25haVwgOwor6YGT5pmu6KuLID4gbWljaGlidXNoaW5cIDsKK+WlveiJsuiAhSA+IGtvdXNob2t1c2hhXCA7Civmtojoh63liaQgPiBzaG91c2h1dXphaVwgOwor54us5ZaE55qEID4gZG9rdXplbnRla2lcIDsKK+ino+WDj+WKmyA+IGthaXpvdXJ5b2t1XCA7CivmtbjpgI/lnKcgPiBzaGludG91YXRzdVwgOwor54ax6KGA5ryiID4gbmVra2V0c3VrYW5cIDsKK+Wyqeefs+WtpiA+IGdhbnNla2lnYWt1XCA7CivonJzmn5HnlZEgPiBtaWthbmJhdGFrZVwgOwor54OP5aSp54uXID4ga2FyYXN1dGVuZ3VcIDsKK+e0s+Wjq+eahCA+IHNoaW5zaGl0ZWtpXCA7CivnqpLmga/mrbsgPiBjaGlzc29rdXNoaVwgOwor5LiJ5aSn56+AID4gc2FuZGFpc2V0c3VcIDsKK+a0u+aWreWxpCA+IGthdHN1ZGFuc291XCA7Civnm67pvLvnq4sgPiBtZWhhbmFkYWNoaVwgOwor5ZGo5pyf5b6LID4gc2h1dWtpcml0c3VcIDsKK+mAgOe0heiJsiA+IHRhaWtvdXNob2t1XCA7Civmkq7lg4/nrqEgPiBzYXRzdXpvdWthblwgOwor6IW55YWr5YiGID4gaGFyYWhhY2hpYnVcIDsKK+mAsuWFpei3ryA+IHNoaW4nJ255dXVyb1wgOwor6IOM5pel5oCnID4gaGFpaml0c3VzZWlcIDsKK+mWk+Wlj+absiA+IGthbnNvdWt5b2t1XCA7CivmjIfljZflvbkgPiBzaGluYW4nJ3lha3VcIDsKK+iEhei/q+eKtiA+IGt5b3VoYWt1am91XCA7Civlip/lkI3lv4MgPiBrb3VteW91c2hpblwgOwor5Zue5pWZ5Zu9ID4ga2Fpa3lvdWtva3VcIDsKK+mqqOiGnOeCjiA+IGtvdHN1bWFrdWVuXCA7CivmsqLlurXmvKwgPiB0YWt1YW5kenVrZVwgOwor5qC55YiH6JmrID4gbmVraXJpbXVzaGlcIDsKK+mAgeaWmeWFsSA+IHNvdXJ5b3V0b21vXCA7CivlvLXmnKzkurogPiBjaG91aG9uJyduaW5cIDsKK+S5l+i7iuWPoyA+IGpvdXNoYWd1Y2hpXCA7CivkuIDml6Xot68gPiBpY2hpbmljaGlqaVwgOwor5Zyw6LOq5ZuzID4gY2hpc2hpdHN1enVcIDsKK+eri+aYjuaIpiA+IHJpdHN1bWVpc2VuXCA7Civmir3osaHoq5YgPiBjaHV1c2hvdXJvblwgOwor5LuV6Kiz6KGoID4gc2hpd2FrZWh5b3VcIDsKK+WbveeojuW6gSA+IGtva3V6ZWljaG91XCA7CivmgKfmgqroqqwgPiBzZWlha3VzZXRzdVwgOwor5oeQ6YO355eFID4ga2Fpa3lvdWJ5b3VcIDsKK+afkeapmOmhniA+IGthbmtpdHN1cnVpXCA7CivkuIDpn7Pnr4AgPiBpY2hpb25zZXRzdVwgOwor6IKp6IOb6aqoID4ga2Vua291a290c3VcIDsKK+iEseeCremFuCA+IGRhdHN1dGFuc2FuXCA7CivmlrDmioDooZMgPiBzaGluZ2lqdXRzdVwgOwor6YCG5o6i55+lID4gZ3lha3V0YW5jaGlcIDsKK+aLvuW+l+iAhSA+IHNodXV0b2t1c2hhXCA7Civlrp3nianmrr8gPiBob3Vtb3RzdWRlblwgOwor5Zar54WZ5bitID4ga2l0c3VlbnNla2lcIDsKK+WGt+ihgOa8oiA+IHJlaWtldHN1a2FuXCA7CivkuLvlipvoiaYgPiBzaHVyeW9rdWthblwgOwor6LuK5aSn5belID4ga3VydW1hZGFpa3VcIDsKK+mBjumjn+eXhyA+IGthc2hva3VzaG91XCA7Civlrr/lkb3oq5YgPiBzaHVrdW1laXJvblwgOwor5YWl6YeR56WoID4gbnl1dWtpbmh5b3VcIDsKK+iKseWxi+aVtyA+IGhhbmF5YXNoaWtpXCA7CivlhbHnmb3pq6ogPiB0b21vc2hpcmFnYVwgOwor5Y+j5bqn5L+CID4ga291emFrYWthcmlcIDsKK+eUn+WtmOeOhyA+IHNlaXpvbnJpdHN1XCA7CivnhormnKznnIwgPiBrdW1hbW90b2tlblwgOwor55u06Yqt5b2iID4gY2hva3VzZW5rZWlcIDsKK+WLleeJqeaApyA+IGRvdWJ1dHN1c2VpXCA7Civljp/niIbnl4cgPiBnZW5iYWt1c2hvdVwgOwor6Zu75YuV5byPID4gZGVuZG91c2hpa2lcIDsKK+eUn+eUo+WKmyA+IHNlaXNhbnJ5b2t1XCA7Civlia/niafluKsgPiBmdWt1Ym9rdXNoaVwgOwor6IGW6aSQ5byPID4gc2Vpc2Fuc2hpa2lcIDsKK+mAhumWouaVsCA+IGd5YWt1a2Fuc3V1XCA7CivkuIPkupTkuIkgPiBzaGljaGlnb3NhblwgOwor6aeQ55WZ6LuNID4gY2h1dXJ5dXVndW5cIDsKK+WUr+eJqeirliA+IHl1aWJ1dHN1cm9uXCA7Civml4XllYbkurogPiB0YWJpc2hvdW5pblwgOwor5oqA6KGT5paZID4gZ2lqdXRzdXJ5b3VcIDsKK+e3tOe/kuW4syA+IHJlbnNodXVjaG91XCA7CivpgKDnn7Ppq5ggPiB6b3Vrb2t1ZGFrYVwgOwor6LuN6ZqK5byPID4gZ3VudGFpc2hpa2lcIDsKK+e/u+ios+iAhSA+IGhvbicneWFrdXNoYVwgOwor5r2k55uu6bCvID4gdXJ1bWVpd2FzaGlcIDsKK+iMtuikkOiJsiA+IGNoYWthc3Nob2t1XCA7Civnorrlrp/luqYgPiBrYWt1aml0c3Vkb1wgOwor57eP5Yqb5oimID4gc291cnlva3VzZW5cIDsKK+WlveiJsua8oiA+IGtvdXNob2t1a2FuXCA7CivliJ3mipXnqL8gPiBoYXRzdXRvdWtvdVwgOwor5LiH5LiH5LiAID4gbWFubWFuJydpY2hpXCA7CivntLPlo6vmnI0gPiBzaGluc2hpZnVrdVwgOwor5LiA5LuV5LqLID4gaGl0b3NoaWdvdG9cIDsKK+WXheelnue1jCA+IGt5dXVzaGlua2VpXCA7CivntpnntprnmoQgPiBrZWl6b2t1dGVraVwgOwor5paH5a2m55qEID4gYnVuZ2FrdXRla2lcIDsKK+WFremHjeWUsSA+IHJva3VqdXVzaG91XCA7CivnjoTkurrnrYsgPiBrdXJvdXRvc3VqaVwgOwor5ZuD5a2Q5pa5ID4gaGF5YXNoaWthdGFcIDsKK+Wkp+S6uueJqSA+IGRhaWppbmJ1dHN1XCA7CivlkIzns7voibIgPiBkb3VrZWlzaG9rdVwgOwor57SF55m957KJID4gYmVuaW9zaGlyb2lcIDsKK+Wuo+iqk+W8jyA+IHNlbnNlaXNoaWtpXCA7CivkuK3lkoznhrEgPiBjaHV1d2FuZXRzdVwgOwor5raI6ICX55qEID4gc2hvdWtvdXRla2lcIDsKK+aUu+aSg+eahCA+IGtvdWdla2l0ZWtpXCA7Civln4volLXniakgPiBtYWl6b3VidXRzdVwgOwor5Ymv6Kqt5pysID4gZnVrdWRva3Vob25cIDsKK+m6nemmmem8oCA+IGpha291bmV6dW1pXCA7CivmnKjos4Plrr8gPiBraWNoaW4nJ3lhZG9cIDsKK+Wbm+inkuafsSA+IHNoaWtha3VjaHV1XCA7CivkuK3nqbrlo4EgPiBjaHV1a3V1a2FiZVwgOwor6ICD6Ki85a2mID4ga291c2hvdWdha3VcIDsKK+Wun+iovOeahCA+IGppc3Nob3V0ZWtpXCA7CivmlZHmuIjnrZYgPiBreXV1c2Fpc2FrdVwgOwor6LuN5Zu96Kq/ID4gZ3Vua29rdWNob3VcIDsKK+eZveidi+eXhSA+IGhha3Vyb3VieW91XCA7Civni4Lniqznl4UgPiBreW91a2VuYnlvdVwgOwor5rCR6KGG55qEID4gbWluc2h1dXRla2lcIDsKK+S4gOS4oeW5tCA+IGljaGlyeW91bmVuXCA7CivlpKfku4/mrr8gPiBkYWlidXRzdWRlblwgOwor5Yi56YKj55qEID4gc2V0c3VuYXRla2lcIDsKK+WLheS7u+WumCA+IGNob2t1bmlua2FuXCA7Civlj4zljYHnr4AgPiBzb3VqdXVzZXRzdVwgOwor5aW96Imy5pysID4ga291c2hva3Vib25cIDsKK+eqkuWMlueJqSA+IGNoaWtrYWJ1dHN1XCA7CivkuInop5Lnv7wgPiBzYW5rYWt1eW9rdVwgOwor5oiQ6ZW35qCqID4gc2VpY2hvdWthYnVcIDsKK+efs+adkOWVhiA+IHNla2l6YWlzaG91XCA7CivkvpvoqJfph5EgPiBreW91dGFrdWtpblwgOwor54yr6aGN5aSnID4gYnlvdWdha3VkYWlcIDsKK+WcsOaWueiJsiA+IGNoaWhvdXNob2t1XCA7CivnlJ/kuK3ntpkgPiBuYW1hY2h1dWtlaVwgOwor5ZC45Y+O5YmkID4ga3l1dXNodXV6YWlcIDsKK+W7uuiUveeOhyA+IGtlbnBlaXJpdHN1XCA7CivlrqLoprPnmoQgPiBreWFra2FudGVraVwgOwor5b6L576p6ICFID4gcmljaGlnaW1vbm9cIDsKK+S4i+e0muiBtyA+IGtha3l1dXNob2t1XCA7Civkv67po77oqp4gPiBzaHV1c2hva3Vnb1wgOwor5aSn6aOf5ryiID4gdGFpc2hva3VrYW5cIDsKK+WGt+eskeeahCA+IHJlaXNob3V0ZWtpXCA7CivmlK/ntabpoY0gPiBzaGlreXV1Z2FrdVwgOwor5LiN5Z2H6LOqID4gZnVraW5zaGl0c3VcIDsKK+S7o+ihqOeahCA+IGRhaWh5b3V0ZWtpXCA7CivlhaXpgZPpm7IgPiBueXV1ZG91Z3Vtb1wgOwor5YWx6YCa54K5ID4ga3lvdXRzdXV0ZW5cIDsKK+WFrOW+s+W/gyA+IGtvdXRva3VzaGluXCA7CivlvaLlvI/oq5YgPiBrZWlzaGlraXJvblwgOwor6YeR55Kw6aOfID4ga2lua2Fuc2hva3VcIDsKK+WHuuacreaJgCA+IHNodXNzYXRzdWpvXCA7CivljJfmpbXmtbcgPiBob2treW9rdWthaVwgOwor6KGM5a6Y5bqBID4gZ3lvdWthbmNob3VcIDsKK+S/nei6q+ihkyA+IGhvc2hpbmp1dHN1XCA7CivpkZHorZjnnLwgPiBrYW5zaGlraWdhblwgOwor5YyX5qW15rSLID4gaG9ra3lva3V5b3VcIDsKK+W9q+WIu+eVjCA+IGNob3Vrb2t1a2FpXCA7Civppqzpub/oqbEgPiBiYWthYmFuYXNoaVwgOwor54mp57SN56iOID4gYnV0c3Vub3V6ZWlcIDsKK+S4i+Wls+S4rSA+IHNoaW1vam9jaHV1XCA7CivlnLDkuIvlrqQgPiBjaGlrYXNoaXRzdVwgOwor6LK45pys5bGLID4ga2FzaGlob24nJ3lhXCA7Civpjb7kubPmtJ4gPiBzaG91bnl1dWRvdVwgOwor6IG35ZOh6YyyID4gc2hva3VpbnJva3VcIDsKK+air+WtkOmFkiA+IGhhc2hpZ296YWtlXCA7Civmu57lnKjlrqIgPiB0YWl6YWlreWFrdVwgOwor6JOE6Zu75rGgID4gY2hpa3VkZW5jaGlcIDsKK+ippuaOmOiAhSA+IHNoaWt1dHN1c2hhXCA7CivlpKflrablr64gPiBkYWlnYWt1cnlvdVwgOwor5aer5bCP5p2+ID4gaGltZWtvbWF0c3VcIDsKK+ecn+Wun+WRsyA+IHNoaW5qaXRzdW1pXCA7Civml4XlvbnogIUgPiB0YWJpeWFrdXNoYVwgOwor5Zu95rCR55qEID4ga29rdW1pbnRla2lcIDsKK+aIpuayoeiAhSA+IHNlbmJvdHN1c2hhXCA7CivmtYHooYznl4UgPiByeXV1a291YnlvdVwgOwor5b2r5Yi754mIID4gY2hvdWtva3ViYW5cIDsKK+WRqOaXi+alrSA+IHNodXVzZW5neW91XCA7Civlm6PmiYfomasgPiB1Y2hpd2FtdXNoaVwgOwor5Y+j5bCP6KiAID4ga3VjaGlrb2dvdG9cIDsKK+S7u+WRveW8jyA+IG5pbm1laXNoaWtpXCA7Civpm7vlipvlgrUgPiBkZW5yeW9rdXNhaVwgOwor5Yqb5YuV55qEID4gcmlraWRvdXRla2lcIDsKK+Wkj+W4veWtkCA+IG5hdHN1Ym91c2hpXCA7CivnnaHnnKDolqwgPiBzdWltaW4nJ3lha3VcIDsKK+WNuOebuOWgtCA+IG9yb3NoaXNvdWJhXCA7CivljbDliLfmpa0gPiBpbnNhdHN1Z3lvdVwgOwor5Lyd5bCO546HID4gZGVuZG91cml0c3VcIDsKK+ibuOWFpemBkyA+IHRha29ueXV1ZG91XCA7Civoq4foqbHlrqQgPiBkYW53YXNoaXRzdVwgOwor5a6J5pyI57WmID4geWFzdWdla2t5dXVcIDsKK+WMl+alteaYnyA+IGhva2t5b2t1c2VpXCA7CivlvqHpnIrku6MgPiBtaXRhbWFzaGlyb1wgOwor5ris6YeP5aOrID4gc29rdXJ5b3VzaGlcIDsKK+WHuumhmOaZgiA+IHNodXRzdWdhbmppXCA7CivkuInop5LnkLQgPiBzYW5rYWt1Z290b1wgOwor6YmE5p2h57ayID4gdGV0c3Vqb3Vtb3VcIDsKK+e/u+ios+aoqSA+IGhvbicneWFrdWtlblwgOwor546J5p2T5a2QID4gdGFtYWpha3VzaGlcIDsKK+W3pealreWbvSA+IGtvdWd5b3Vrb2t1XCA7Civlkajml4vmlpkgPiBzaHV1c2VucnlvdVwgOwor6L+95pKD5oimID4gdHN1aWdla2lzZW5cIDsKK+WCt+eXheWFtSA+IHNob3VieW91aGVpXCA7CivlvbzlsrjmoZwgPiBoaWdhbnpha3VyYVwgOwor5LiA5pmC5omVID4gaWNoaWppYmFyYWlcIDsKK+WGheWuueeJqSA+IG5haXlvdWJ1dHN1XCA7CivnhKHkuIDniakgPiBtdWljaGltb3RzdVwgOwor5Yq05YON5YqbID4gcm91ZG91cnlva3VcIDsKK+iLpeerueS6rSA+IHdha2F0YWtldGVpXCA7Civnv7voqLPmm7ggPiBob24nJ3lha3VzaG9cIDsKK+WIsOedgOmnhSA+IHRvdWNoYWt1ZWtpXCA7CivlsJHlm73msJEgPiBzaG91a29rdW1pblwgOwor55Sf5a2m5ZWPID4gbmFtYWdha3Vtb25cIDsKK+S7iuaciOWIhiA+IGtvbmdldHN1YnVuXCA7CivliIbmlbDlvI8gPiBidW5zdXVzaGlraVwgOwor5o6I6LOe5byPID4ganVzaG91c2hpa2lcIDsKK+aOjOS4reacrCA+IHNob3VjaHV1Ym9uXCA7CivnnIHlipvljJYgPiBzaG91cnlva3VrYVwgOwor5Luj6KGo5qC8ID4gZGFpaHlvdWtha3VcIDsKK+aYvOiIiOihjCA+IGhpcnVrb3VneW91XCA7Civpu5nnpLrpjLIgPiBtb2t1c2hpcm9rdVwgOwor5qSc5a+f5a6YID4ga2Vuc2F0c3VrYW5cIDsKK+S+m+iol+iAhSA+IGt5b3V0YWt1c2hhXCA7CivmtbfnlKPniakgPiBrYWlzYW5idXRzdVwgOwor6KSq57SF6ImyID4gdGFpa291c2hva3VcIDsKK+i/lOS/oeeUqCA+IGhlbnNoaW4nJ3lvdVwgOwor6YGB6LWw5puyID4gdG9uc291a3lva3VcIDsKK+i+u+W8t+eblyA+IHRzdWppZ291dG91XCA7CivlhazlvI/miKYgPiBrb3VzaGlraXNlblwgOwor6YeR55Kw6J2VID4ga2lua2Fuc2hva3VcIDsKK+mdtOS4gOi2syA+IGt1dHN1aXNzb2t1XCA7CivmtaroirHnr4AgPiBuYW5pd2FidXNoaVwgOwor5ZCE5aSn5a2mID4ga2FrdWRhaWdha3VcIDsKK+e3j+mAgOWNtCA+IHNvdXRhaWt5YWt1XCA7Civlm73msJHmnI0gPiBrb2t1bWluZnVrdVwgOwor5a6f5Zyo6KuWID4gaml0c3V6YWlyb25cIDsKK+aVkeaApei7iiA+IGt5dXVreXV1c2hhXCA7CivplpPmjqXnqI4gPiBrYW5zZXRzdXplaVwgOwor5Lmx6ZaL55m6ID4gcmFua2FpaGF0c3VcIDsKK+aJgOW4r+S4uyA+IHNob3RhaW51c2hpXCA7CivpmLLlr5LpnbQgPiBib3VrYW5ndXRzdVwgOwor5LiJ6KeS5p+xID4gc2Fua2FrdWNodXVcIDsKK+S7leios+W4syA+IHNoaXdha2VjaG91XCA7CivnspjnnYDmgKcgPiBuZW5jaGFrdXNlaVwgOwor5a+G6YCg6YWSID4gbWl0c3V6b3VzaHVcIDsKK+S4gOWknOa8rCA+IGljaGl5YWR6dWtlXCA7Civmlpzop5Lmn7EgPiBzaGFrYWt1Y2h1dVwgOwor5a++54Wn55qEID4gdGFpc2hvdXRla2lcIDsKK+W9ueS6uumiqCA+IHlha3VuaW5rYXplXCA7CivoiLnoiLbmpa0gPiBzZW5wYWt1Z3lvdVwgOwor5rC06YGT5bGAID4gc3VpZG91a3lva3VcIDsKK+Wni+eZuumnhSA+IHNoaWhhdHN1ZWtpXCA7CivljJfmpbXlnI8gPiBob2treW9rdWtlblwgOwor5pel55So5ZOBID4gbmljaGl5b3VoaW5cIDsKK+WPjemAhuiAhSA+IGhhbmd5YWt1c2hhXCA7CivnmbvpjLLmuIggPiB0b3Vyb2t1enVtaVwgOwor5bCC5aOy5bGAID4gc2VuYmFpa3lva3VcIDsKK+aoqeWKm+iAhSA+IGtlbnJ5b2t1c2hhXCA7CivmgZLkuYXnmoQgPiBrb3VreXV1dGVraVwgOwor5Y+N6YCG572qID4gaGFuZ3lha3V6YWlcIDsKK+eJueetieW4rSA+IHRva3V0b3VzZWtpXCA7CivlhoXmnI3olqwgPiBuYWlmdWt1eWFrdVwgOwor6IeG55eF6aKoID4gb2t1YnlvdWthemVcIDsKK+S+m+e1puiAhSA+IGt5b3VreXV1c2hhXCA7CivlvavliLvluKsgPiBjaG91a29rdXNoaVwgOwor5rGC5Lq66ZujID4ga3l1dWppbicnbmFuXCA7CivpoJrli5XohIggPiBrZWlkb3VteWFrdVwgOwor6Kmm5o6Y5qipID4gc2hpa3V0c3VrZW5cIDsKK+WcqOS6rOS4rSA+IHphaWt5b3VjaHV1XCA7CivmlrnnqIvlvI8gPiBob3V0ZWlzaGlraVwgOwor6Z2Z5Yqb5a2mID4gc2VpcmlraWdha3VcIDsKK+S4gOimp+ihqCA+IGljaGlyYW5oeW91XCA7CivljJfmnJ3prq4gPiBraXRhY2hvdXNlblwgOwor55m+5Y2D6bOlID4gbW9tb2NoaWRvcmlcIDsKK+mKg+WJo+ihkyA+IGp1dWtlbmp1dHN1XCA7CivntI3pqqjloIIgPiBub3Vrb3RzdWRvdVwgOwor6ICz5bCP6aqoID4gamlzaG91a290c3VcIDsKK+Wkp+mdmeiEiCA+IGRhaWpvdW15YWt1XCA7CivntYzmuIjlipsgPiBrZWl6YWlyeW9rdVwgOwor5a2m5Y2U5LyaID4gZ2FrdWt5b3VrYWlcIDsKK+S4reW/g+eCuSA+IGNodXVzaGludGVuXCA7CivljJfmpbXlhYkgPiBob2treW9rdWtvdVwgOwor6aOf5ZOB5bqXID4gc2hva3VoaW50ZW5cIDsKK+mgmOWPjuabuCA+IHJ5b3VzaHV1c2hvXCA7CivpgJrnn6XooaggPiB0c3V1Y2hpaHlvdVwgOwor6YCj55m66YqDID4gcmVucGF0c3VqdXVcIDsKK+aUu+aSg+WBtCA+IGtvdWdla2lnYXdhXCA7CivlpKfkuK3lsI8gPiBkYWljaHV1c2hvdVwgOwor5bmz5Z2H5b6LID4gaGVpa2lucml0c3VcIDsKK+i1pOajn+ibhyA+IHlhbWFrYWdhc2hpXCA7CivoprPlv7XnmoQgPiBrYW4nJ25lbnRla2lcIDsKK+WwgumWgOiBtyA+IHNlbm1vbnNob2t1XCA7CivlhbHpgLLkvJogPiBreW91c2hpbmthaVwgOwor5L+h55So54q2ID4gc2hpbicneW91am91XCA7CivnuZTnianmpa0gPiBvcmltb25vZ3lvdVwgOwor6LaF54m55oClID4gY2hvdXRva2t5dXVcIDsKK+i/lOS/oeaWmSA+IGhlbnNoaW5yeW91XCA7Civlo4HmlrDogZ4gPiBrYWJlc2hpbmJ1blwgOwor6J6N6Kej54axID4geXV1a2FpbmV0c3VcIDsKK+evgOWNmuWjqyA+IGZ1c2hpaGFrYXNlXCA7CivopovniankurogPiBrZW5idXRzdW5pblwgOwor55m76Yyy5paZID4gdG91cm9rdXJ5b3VcIDsKK+WRqOaXi+S6uiA+IHNodXVzZW4nJ25pblwgOwor6auY6bqX6IqdID4ga291cmFpc2hpYmFcIDsKK+S4jeimquWIhyA+IGZ1c2hpbnNldHN1XCA7CivopqrlkYrnvaogPiBzaGlua29rdXphaVwgOwor6JSm57SF6JGJID4gdHN1dGFtb21pamlcIDsKK+S6lOebrumuqCA+IGdvbW9rdXp1c2hpXCA7Civnt6jpm4bplbcgPiBoZW5zaHV1Y2hvdVwgOwor5Ye654mI5qWtID4gc2h1cHBhbmd5b3VcIDsKK+iqv+aVmeW4qyA+IGNob3VreW91c2hpXCA7CivpgLLpp5Dou40gPiBzaGluY2h1dWd1blwgOwor5Yil5YuV6ZqKID4gYmV0c3Vkb3V0YWlcIDsKK+mAhuWZtOWwhCA+IGd5YWt1ZnVuc2hhXCA7Civkuozlj6Pnm64gPiBmdXRha3VjaGltZVwgOwor6YCG5ZG96aGMID4gZ3lha3VtZWlkYWlcIDsKK+eymOedgOWJpCA+IG5lbmNoYWt1emFpXCA7CivnlJ/niannlYwgPiBzZWlidXRzdWthaVwgOwor5LqU55uu6aOvID4gZ29tb2t1bWVzaGlcIDsKK+aOoeaOmOaoqSA+IHNhaWt1dHN1a2VuXCA7CivlhajluYXnmoQgPiB6ZW5wdWt1dGVraVwgOwor5b2r5Yi75YiAID4gY2hvdWtva3V0b3VcIDsKK+eglOeptuW/gyA+IGtlbmt5dXVzaGluXCA7Civni6zljaDnmoQgPiBkb2t1c2VudGVraVwgOwor6YW45Lit5q+SID4gc2FuY2h1dWRva3VcIDsKK+i2heaWsOaYnyA+IGNob3VzaGluc2VpXCA7CivpoILmiLTniakgPiBjaG91ZGFpbW9ub1wgOwor5a6/5rOK5omAID4gc2h1a3VoYWt1am9cIDsKK+WjsuWNtOebiiA+IGJhaWt5YWt1ZWtpXCA7Civmp4vpgKDlvI8gPiBrb3V6b3VzaGlraVwgOwor5Luj6KGo5L2cID4gZGFpaHlvdXNha3VcIDsKK+mBjuWkseeKryA+IGthc2hpdHN1aGFuXCA7CivntJnkuIDmnpogPiBrYW1paWNoaW1haVwgOwor5YaN6KqN6K2YID4gc2Fpbmluc2hpa2lcIDsKK+miqOeJqeipqSA+IGZ1dWJ1dHN1c2hpXCA7Civlrp/plqLmlbAgPiBqaXRzdWthbnN1dVwgOwor5aSn5aW954mpID4gZGFpa291YnV0c3VcIDsKK+S5s+a/gea2siA+IG55dXVkYWt1ZWtpXCA7CivmsLTlhrflvI8gPiBzdWlyZWlzaGlraVwgOwor5b+D6YWN5oCnID4gc2hpbnBhaXNob3VcIDsKK+W+jOWni+acqyA+IGF0b3NoaW1hdHN1XCA7Civlhajli6LlipsgPiB6ZW5zZWlyeW9rdVwgOwor6Zui5b+D546HID4gcmlzaGlucml0c3VcIDsKK+S+m+e1pua6kCA+IGt5b3VreXV1Z2VuXCA7CivlpKfmlofnr4AgPiBkYWlidW5zZXRzdVwgOwor5LiA5aSc5aa7ID4gaGl0b3lvZHp1bWFcIDsKK+e1kOWQiOWtkCA+IGtldHN1Z291c2hpXCA7CivmrbvkuqHnjocgPiBzaGlib3VyaXRzdVwgOwor5pmC5bGA5p+EID4gamlreW9rdWdhcmFcIDsKK+mFjeW9k+eOhyA+IGhhaXRvdXJpdHN1XCA7CivmlbTpqqjluKsgPiBzZWlrb3RzdXNoaVwgOwor6Zai56iO546HID4ga2FuemVpcml0c3VcIDsKK+S4reavkuatuyA+IGNodXVkb2t1c2hpXCA7CivmnIDliY3liJcgPiBzYWl6ZW5yZXRzdVwgOwor5b6h5omA6LuKID4gZ29zaG9ndXJ1bWFcIDsKK+WGheabsueQgyA+IG5haWt5b2treXV1XCA7Civop6PmlaPoqqwgPiBrYWlzYW5zZXRzdVwgOwor5bu66YCg54mpID4ga2Vuem91YnV0c3VcIDsKK+eMruihgOi7iiA+IGtlbmtldHN1c2hhXCA7CivlsI/lk4Hpm4YgPiBzaG91aGluc2h1dVwgOwor6ZyK5a6J5a6kID4gcmVpYW5zaGl0c3VcIDsKK+mbouedgOmZuCA+IHJpY2hha3VyaWt1XCA7Civpq5jph47ogZYgPiBrb3V5YWhpamlyaVwgOwor5pW06auq5YmkID4gc2VpaGF0c3V6YWlcIDsKK+WHpuS4luihkyA+IHNob3NlaWp1dHN1XCA7CivlhavluaHlrq4gPiBoYWNoaW1hbmd1dVwgOwor5q2M5ZSx5YqbID4ga2FzaG91cnlva3VcIDsKK+WbnuaKmOaQjSA+IGthaXNldHN1c29uXCA7Civpqqjku5XkuosgPiBob25lc2hpZ290b1wgOwor6IeG55eF6ICFID4gb2t1YnlvdW1vbm9cIDsKK+acnemjr+WJjSA+IGFzYW1lc2hpbWFlXCA7CivliIrooYzniakgPiBrYW5rb3VidXRzdVwgOwor55y86Y+h5qmLID4gbWVnYW5lYmFzaGlcIDsKK+izvOWFpeWFiCA+IGtvdW55dXVzYWtpXCA7CivlvJjku4HmoLwgPiBrb3VuaW5reWFrdVwgOwor5pen5aSn6Zm4ID4ga3l1dXRhaXJpa3VcIDsKK+iouuWvn+aXpSA+IHNoaW5zYXRzdWJpXCA7CivmnbHlrq7ogbcgPiB0b3VndXVzaG9rdVwgOwor6K2m5a+f572yID4ga2Vpc2F0c3VzaG9cIDsKK+WGl+irh+WPoyA+IGpvdWRhbmd1Y2hpXCA7CivnuZTnianllYYgPiBvcmltb25vc2hvdVwgOwor5YWr6L665b2iID4gaGFjaGloZW5rZWlcIDsKK+mHneS7leS6iyA+IGhhcmlzaGlnb3RvXCA7Civlpb3kurrniakgPiBrb3VqaW5idXRzdVwgOwor5b6B5pyN5qyyID4gc2VpZnVrdXlva3VcIDsKK+ino+iqrOiAhSA+IGthaXNldHN1c2hhXCA7CivluoPlkYrmpa0gPiBrb3Vrb2t1Z3lvdVwgOwor5Ym156uL6ICFID4gc291cml0c3VzaGFcIDsKK+ino+eGseiWrCA+IGdlbmV0c3V5YWt1XCA7Civml6Xmm5zniYggPiBuaWNoaXlvdWJhblwgOwor5paw5b+r6YCfID4gc2hpbmthaXNva3VcIDsKK+S4reW5tOiAhSA+IGNodXVuZW5tb25vXCA7CivmiLTlhqDlvI8gPiB0YWlrYW5zaGlraVwgOwor6Lu95qWt5birID4ga2FydXdhemFzaGlcIDsKK+S4reW/g+WcsCA+IGNodXVzaGluY2hpXCA7CivllYbmhaPnv5IgPiBzaG91a2Fuc2h1dVwgOwor55Sf54mp5oimID4gc2VpYnV0c3VzZW5cIDsKK+aVkeaApeazlSA+IGt5dXVreXV1aG91XCA7Civpo5/liY3phZIgPiBzaG9rdXplbnNodVwgOwor5rex5aSc5pePID4gc2hpbicneWF6b2t1XCA7Civov6vmkoPnoLIgPiBoYWt1Z2VraWhvdVwgOwor6YCy6LuN5LitID4gc2hpbmd1bmNodXVcIDsKK+WqkumFjOS6uiA+IGJhaXNoYWt1bmluXCA7CivkuKHmgKfnmoQgPiByeW91c2VpdGVraVwgOwor5r2c5Yui5YqbID4gc2Vuc2Vpcnlva3VcIDsKK+atpumqqOiAhSA+IGJ1a290c3Vtb25vXCA7Civkv53lgaXlrqQgPiBob2tlbnNoaXRzdVwgOwor5bqD5ZGK5paZID4ga291a29rdXJ5b3VcIDsKK+mAn+WKm+W6piA+IHNva3VyeW9rdWRvXCA7Civnm4bmj5Dnga8gPiBib25kam91Y2hpblwgOwor6IG056We57WMID4gY2hvdXNoaW5rZWlcIDsKK+i2heWkp+WbvSA+IGNob3V0YWlrb2t1XCA7Civlh7rniYjlhYMgPiBzaHVwcGFubW90b1wgOwor6aas6bm/5YqbID4gYmFrYWRqaWthcmFcIDsKK+mZuOWNiueQgyA+IHJpa3VoYW5reXV1XCA7CivntbHnjofogIUgPiB0b3Vzb3RzdXNoYVwgOwor5YWs5YWx5b+DID4ga291a3lvdXNoaW5cIDsKK+S4reWFsei7jSA+IGNodXVreW91Z3VuXCA7CivmvILnmb3liaQgPiBoeW91aGFrdXphaVwgOwor5Y+O5YWl5rqQID4gc2h1dW55dXVnZW5cIDsKK+auv+anmOmiqCA+IHRvbm9zYW1hZnV1XCA7Civlv4PphY3kuosgPiBzaGlucGFpZ290b1wgOwor5aSq6Zm954axID4gdGFpeW91bmV0c3VcIDsKK+WIpOaxuuaWhyA+IGhhbmtldHN1YnVuXCA7Civkv6Hku7DnmoQgPiBzaGlua291dGVraVwgOwor6Iad5ouN5a2QID4gaGl6YWJ5b3VzaGlcIDsKK+i3oeWni+acqyA+IGF0b3NoaW1hdHN1XCA7Civnm7Lnm67nmoQgPiBtb3Vtb2t1dGVraVwgOwor56We6YCa5YqbID4gamludHN1dXJpa2lcIDsKK+aBkOWmu+eXhSA+IGt5b3VzYWlieW91XCA7Civlv6Dlrp/luqYgPiBjaHV1aml0c3Vkb1wgOwor5L+h5Lu754q2ID4gc2hpbicnbmluam91XCA7CivmlrDlj4LogIUgPiBzaGluemFubW9ub1wgOwor55yf54qv5Lq6ID4gc2hpbmhhbicnbmluXCA7Civorablr5/niqwgPiBrZWlzYXRzdWtlblwgOwor5Y+i5pmC6ZuoID4gbXVyYXNoaWd1cmVcIDsKK+a1t+mjn+a0niA+IGthaXNob2t1ZG91XCA7Civlj4LliJfogIUgPiBzYW5yZXRzdXNoYVwgOwor55Sf54mp5ZyPID4gc2VpYnV0c3VrZW5cIDsKK+S+m+e1puWcsCA+IGt5b3VreXV1Y2hpXCA7CivlubLmuInnuJ4gPiBrYW5zaG91amltYVwgOwor54us5Ym155qEID4gZG9rdXNvdXRla2lcIDsKK+afk+iJsuS9kyA+IHNlbnNob2t1dGFpXCA7CivluqfpoK3pr6ggPiB6YXRvdWt1amlyYVwgOwor55uu55qE6KuWID4gbW9rdXRla2lyb25cIDsKK+ecgeeVpeaZgiA+IHNob3VyeWFrdWppXCA7Civnn7Pngq3mrrsgPiBzZWtpdGFuZ2FyYVwgOwor5YiG6KOC5oCnID4gYnVucmV0c3VzZWlcIDsKK+efree4ruW9oiA+IHRhbnNodWt1a2VpXCA7CivmnInogbfogIUgPiB5dXVzaG9rdXNoYVwgOwor6Kaq5ZKM5YqbID4gc2hpbndhcnlva3VcIDsKK+WFiOOAheaciCA+IHNlbnNlbmdldHN1XCA7CivmnInkvZPniakgPiB5dXV0YWlidXRzdVwgOwor55+t57Wh55qEID4gdGFucmFrdXRla2lcIDsKK+mtheWKm+eahCA+IG1pcnlva3V0ZWtpXCA7CivljJblrablvI8gPiBrYWdha3VzaGlraVwgOwor5aSq6Zm95pelID4gdGFpeW91aml0c3VcIDsKK+mHjueQg+eGsSA+IHlha3l1dW5ldHN1XCA7Civorablr5/mqKkgPiBrZWlzYXRzdWtlblwgOwor54ax5rCX55CDID4gbmV0c3VraWt5dXVcIDsKK+epuuaDs+WKmyA+IGt1dXNvdXJ5b2t1XCA7CivpnZnlsqHnnIwgPiBzaGl6dW9rYWtlblwgOwor5Y+N6YCG5Lq6ID4gaGFuZ3lha3VuaW5cIDsKK+afk+mrquWJpCA+IHNlbnBhdHN1emFpXCA7Civlhajouqvnl4UgPiB6ZW5zaGluYnlvdVwgOwor6IW56Kmx6KGTID4gZnVrdXdhanV0c3VcIDsKK+a1gemHj+ioiCA+IHJ5dXVyeW91a2VpXCA7Civnt5rnuZTpnaIgPiBzZW5zaGlraW1lblwgOwor5a6M57WQ57eoID4ga2Fua2V0c3VoZW5cIDsKK+WtpueUn+iovCA+IGdha3VzZWlzaG91XCA7CivpgKDluaPlsYAgPiB6b3VoZWlreW9rdVwgOwor6Kqs5piO5pu4ID4gc2V0c3VtZWlzaG9cIDsKK+iHque1pueOhyA+IGppa3l1dXJpdHN1XCA7CivmiZPnianluKsgPiB1Y2hpbW9ub3NoaVwgOwor5oOo5q666ICFID4gemFuc2F0c3VzaGFcIDsKK+ejr+W3vuedgCA+IGlzb2dpbmNoYWt1XCA7CivoqLzkurrluK0gPiBzaG91bmluc2VraVwgOwor6Iul55m96auqID4gd2FrYXNoaXJhZ2FcIDsKK+aVsOWtpueahCA+IHN1dWdha3V0ZWtpXCA7Civnm7Tlhobmn7EgPiBjaG9rdWVuY2h1dVwgOwor6Kqs5piO5paHID4gc2V0c3VtZWlidW5cIDsKK+awtOeUo+eJqSA+IHN1aXNhbmJ1dHN1XCA7CivmlZnliYfmnKwgPiBreW91c29rdWJvblwgOwor5LmZ5aWz5b+DID4gb3RvbWVnb2tvcm9cIDsKK+aIpuWLneWbvSA+IHNlbnNob3Vrb2t1XCA7CivljZfljJfmnJ0gPiBuYW5ib2t1Y2hvdVwgOwor5bm75oOz5puyID4gZ2Vuc291a3lva3VcIDsKK+aXheiIiOihjCA+IHRhYmlrb3VneW91XCA7CivosYbpm7vnkIMgPiBtYW1lZGVua3l1dVwgOwor6Kej6Kqs5pu4ID4ga2Fpc2V0c3VzaG9cIDsKK+e/vOaJi+ebriA+IHlva3VzaHVtb2t1XCA7CivlqZrntITogIUgPiBrb24nJ3lha3VzaGFcIDsKK+mDoeW9ueaJgCA+IGd1bicneWFrdXNob1wgOwor55+l6K2Y5bGkID4gY2hpc2hpa2lzb3VcIDsKK+aSnuacqOmuqyA+IHNodW1va3V6YW1lXCA7CivnobzphbjmnKsgPiBob3VzYW5tYXRzdVwgOwor5aaW6KGT6ICFID4geW91anV0c3VzaGFcIDsKK+S9meeZvemggSA+IHlvaGFrdXBlZWppXCA7CivntbHkuIDnmoQgPiB0b3VpdHN1dGVraVwgOwor6Lqr6Zqc6ICFID4gc2hpbnNob3VzaGFcIDsKK+mjn+WNk+WhqSA+IHNob2t1dGFrdWVuXCA7CivlhavlrZfpq60gPiBoYWNoaWppaGlnZVwgOwor5b6p5rS756WtID4gZnVra2F0c3VzYWlcIDsKK+S4u+eUo+eJqSA+IHNodXNhbmJ1dHN1XCA7Civnvo7ooZPnmoQgPiBiaWp1dHN1dGVraVwgOwor54+N54++6LGhID4gY2hpbmdlbnNob3VcIDsKK+S4ieeonOmPoSA+IHNhbnJ5b3VreW91XCA7CivlpKfpmbjmo5ogPiB0YWlyaWt1ZGFuYVwgOwor5q6/5qeY6Iq4ID4gdG9ub3NhbWFnZWlcIDsKK+a1t+mjn+W0liA+IGthaXNob2t1Z2FpXCA7CivlhYPnpoToopYgPiBnZW5yb2t1c29kZVwgOwor5paH5pWZ5pePID4gYnVua3lvdXpva3VcIDsKK+a5v+W6puioiCA+IHNoaXRzdWRva2VpXCA7Civlj6zpm4bogIUgPiBzaG91c2h1dXNoYVwgOwor5YWr5qW15ouzID4gaGFra3lva3VrZW5cIDsKK+S/oeS7sOW/gyA+IHNoaW5rb3VzaGluXCA7CivkurrkuIDlgI0gPiBoaXRvaWNoaWJhaVwgOwor5ZCI6KGG5Zu9ID4gZ2Fzc2h1dWtva3VcIDsKK+apn+mWouWupCA+IGtpa2Fuc2hpdHN1XCA7CivlhrfljbTmtrIgPiByZWlreWFrdWVraVwgOwor5ryB542y6auYID4gZ3lva2FrdWRha2FcIDsKK+WFrOeUqOeJqSA+IGtvdXlvdWJ1dHN1XCA7CivljZjnmbrpioMgPiB0YW5wYXRzdWp1dVwgOwor5Ya35Y205rC0ID4gcmVpa3lha3VzdWlcIDsKK+eMrueri+ihqCA+IGtvbmRhdGVoeW91XCA7Civoi6XojYnoibIgPiB3YWtha3VzYWlyb1wgOwor5LiJ5Zu95LiAID4gc2FuZ29rdWljaGlcIDsKK+edo+S/g+eKtiA+IHRva3Vzb2t1am91XCA7Civku67lj5flj5YgPiBrYXJpdWtldG9yaVwgOwor6KKL5bCP6LevID4gZnVrdXJva291amlcIDsKK+itpuWvn+WumCA+IGtlaXNhdHN1a2FuXCA7Civoh6rnhLblvosgPiBzaGl6ZW5yaXRzdVwgOwor6IG35YuZ57WmID4gc2hva3VtdWt5dXVcIDsKK+eZgumkiuS4rSA+IHJ5b3V5b3VjaHV1XCA7CivlkIjmiJDniakgPiBnb3VzZWlidXRzdVwgOwor5LiJ6KGM5Y2KID4gbWlrdWRhcmloYW5cIDsKK+ihjOaUv+WtpiA+IGd5b3VzZWlnYWt1XCA7Civlrp/ooYzlipsgPiBqaWtrb3VyeW9rdVwgOwor6ZW354Gr6YmiID4gbmFnYWhpYmFjaGlcIDsKK+a1t+mjn+WPsCA+IGthaXNob2t1ZGFpXCA7Civpg7Xkvr/niakgPiB5dXViaW5idXRzdVwgOwor56m65rCX5p6VID4ga3V1a2ltYWt1cmFcIDsKK+WlqOWtpumHkSA+IHNob3VnYWt1a2luXCA7CivlhaznlJ/mtLsgPiBrb3VzZWlrYXRzdVwgOwor6YGu6JS954mpID4gc2hhaGVpYnV0c3VcIDsKK+e1uee5lOeJqSA+IGtpbnVvcmltb25vXCA7CivoirjooZPoq5YgPiBnZWlqdXRzdXJvblwgOwor6Jas5Yq554mpID4geWFra291YnV0c3VcIDsKK+W6reS7leS6iyA+IG5pd2FzaGlnb3RvXCA7Civmgqros6rljJYgPiBha3VzaGl0c3VrYVwgOwor55+l6K2Y5Lq6ID4gY2hpc2hpa2lqaW5cIDsKK+eZveWGhemanCA+IGhha3VuYWlzaG91XCA7Civmpb3lpKnnmoQgPiByYWt1dGVudGVraVwgOwor5Yil5YuY5a6aID4gYmV0c3VrYW5qb3VcIDsKK+mHkeadk+WtkCA+IGthbmFqYWt1c2hpXCA7CivplbflpKfmga8gPiBjaG91dGFpc29rdVwgOwor6IG05Y+W5paZID4gY2hvdXNodXJ5b3VcIDsKK+mguOmdmeiEiCA+IGtlaWpvdW15YWt1XCA7CivmvIHnjbLph48gPiBneW9rYWt1cnlvdVwgOwor6Kqe5a2m5YqbID4gZ29nYWt1cnlva3VcIDsKK+a6luWCmeWupCA+IGp1bmJpc2hpdHN1XCA7CivkuK3lubTlopcgPiBjaHV1ZG9zaGltYVwgOwor6IOM562L5YqbID4gaGFpa2lucnlva3VcIDsKK+aJgOacieeJqSA+IHNob3l1dWJ1dHN1XCA7CivnlKPlnJ/npZ4gPiB1YnVzdW5hZ2FtaVwgOwor5pqX6LWk6ImyID4gYW5zZWtpc2hva3VcIDsKK+S7leeri+eJqSA+IHNoaXRhdGVtb25vXCA7CivkuIPlm57lv4wgPiBzaGljaGlrYWlraVwgOwor5rq26Kej54axID4geW91a2FpbmV0c3VcIDsKK+exs+WNgeeykiA+IGtvbWVqdXVyeXV1XCA7Civnibnms6jlk4EgPiB0b2t1Y2h1dWhpblwgOwor5Yil5YON6ZqKID4gYmV0c3Vkb3V0YWlcIDsKK+WPpOaWsOiBniA+IGZ1cnVzaGluYnVuXCA7CivphY3pgZTkurogPiBoYWl0YXRzdW5pblwgOwor5Lqs5Lq65b2iID4ga3lvdW5pbmd5b3VcIDsKK+WujOe1kOaWhyA+IGthbmtldHN1YnVuXCA7Civlj43lr77oibIgPiBoYW50YWlzaG9rdVwgOwor5ZWG5ZOB5a2mID4gc2hvdWhpbmdha3VcIDsKK+WFpeWwhOinkiA+IG55dXVzaGFrYWt1XCA7CivmtojpmLLluoEgPiBzaG91Ym91Y2hvdVwgOwor5aWH6bqX5omAID4ga2lyZWlkb2tvcm9cIDsKK+WxseWQueiJsiA+IHlhbWFidWtpaXJvXCA7CivmiZPmkoPnjocgPiBkYWdla2lyaXRzdVwgOwor6KuL5rGC6aGNID4gc2Vpa3l1dWdha3VcIDsKK+eZvuW5tOelrSA+IGh5YWt1bmVuc2FpXCA7CivmipHnlZnogIUgPiB5b2t1cnl1dXNoYVwgOwor6aOf6YCj5pifID4gc2hva3VyZW5zZWlcIDsKK+iQveacreWApCA+IHJha3VzYXRzdW5lXCA7Civoh6rnhLblipsgPiBzaGl6ZW5yeW9rdVwgOwor56eY5pu45a6kID4gaGlzaG9zaGl0c3VcIDsKK+WNg+eni+alvSA+IHNlbnNodXVyYWt1XCA7CivmjqLnqbblv4MgPiB0YW5reXV1c2hpblwgOwor5Ymv56S+6ZW3ID4gZnVrdXNoYWNob3VcIDsKK+aciOS+i+S8miA+IGdldHN1cmVpa2FpXCA7CivmlbDml6XplpMgPiBzdXVqaXRzdWthblwgOwor5ZG95ZCN5byPID4gbWVpbWVpc2hpa2lcIDsKK+aMh+WwjuWKmyA+IHNoaWRvdXJ5b2t1XCA7CivmhJ/opprnmoQgPiBrYW5rYWt1dGVraVwgOwor5YaN6ZaL55m6ID4gc2Fpa2FpaGF0c3VcIDsKK+WFpeWtpumboyA+IG55dXVnYWt1bmFuXCA7CivliIbmipjlraYgPiBidW5zZWtpZ2FrdVwgOwor6Iul6Lyp6ICFID4gamFrdWhhaW1vbm9cIDsKK+W5heWkieiqvyA+IGhhYmFoZW5jaG91XCA7CivlsI/mg5HmmJ8gPiBzaG91d2FrdXNlaVwgOwor5Lq654mp5YOPID4gamluYnV0c3V6b3VcIDsKK+i6gemsseeXhSA+IHNvdXV0c3VieW91XCA7Civnm7TovLjlhaUgPiBjaG9rdXl1bnl1dVwgOwor5L+D6YCy5YmkID4gc29rdXNoaW56YWlcIDsKK+m8u+WHuuihgCA+IGJpc2h1a2tldHN1XCA7CivmgKXpgLLlhZogPiBreXV1c2hpbnRvdVwgOwor6YeR5ama5byPID4ga2lua29uc2hpa2lcIDsKK+a6gOiJpumjviA+IG1hbmthbnNob2t1XCA7Civlgo3ov7fmg5EgPiBoYXRhbWVpd2FrdVwgOwor5pi86aOf5pmCID4gY2h1dXNob2t1amlcIDsKK+iKuOihk+elrSA+IGdlaWp1dHN1c2FpXCA7CivlrabnlJ/mnI0gPiBnYWt1c2VpZnVrdVwgOwor5bCx5qWt5ZywID4gc2h1dWd5b3VjaGlcIDsKK+ihqOekuueJqSA+IGh5b3VqaWJ1dHN1XCA7Civou6LlhaXnlJ8gPiB0ZW4nJ255dXVzZWlcIDsKK+WFpeWtpumHkSA+IG55dXVnYWt1a2luXCA7CivpnanmlrDns7sgPiBrYWt1c2hpbmtlaVwgOwor6Zm95qW157eaID4geW91a3lva3VzZW5cIDsKK+WHuua8lOiAhSA+IHNodXRzdWVuc2hhXCA7CivkvJrorbDlrqQgPiBrYWlnaXNoaXRzdVwgOwor6Zm46YGL5bGAID4gcmlrdXVua3lva3VcIDsKK+i/veW+tOmHkSA+IHRzdWljaG91a2luXCA7Civmrrroj4zlipsgPiBzYWtraW5yeW9rdVwgOwor5oqV5a6/6ICFID4gdG91c2h1a3VzaGFcIDsKK+aWsOW6geiIjiA+IHNoaW5jaG91c2hhXCA7CivlhrfljbTliaQgPiByZWlreWFrdXphaVwgOwor6YGK6Kan5a6iID4geXV1cmFua3lha3VcIDsKK+m7hOmHkeiZqyA+IGtvZ2FuZW11c2hpXCA7Civpu5Lmrbvnl4UgPiBrb2t1c2hpYnlvdVwgOwor6YO15L6/5bGAID4geXV1Ymlua3lva3VcIDsKK+WPjeWwhOeOhyA+IGhhbnNoYXJpdHN1XCA7CivmlZnnmofluoEgPiBreW91a291Y2hvdVwgOwor6Iul6bOl5Li8ID4gd2FrYWRvcmlkb25cIDsKK+e+juihk+WVhiA+IGJpanV0c3VzaG91XCA7Civmu7Tlrprph48gPiB0ZWtpdGVpcnlvdVwgOwor56We5a2m6ICFID4gc2hpbmdha3VzaGFcIDsKK+Wvhui8uOWFpSA+IG1pdHN1eXVueXV1XCA7CivouI/liIfnlaogPiBmdW1pa2lyaWJhblwgOwor5YmN5aWP5puyID4gemVuc291a3lva3VcIDsKK+ijuOS4gOiyqyA+IGhhZGFrYWlra2FuXCA7CivlpY/ps7Tmm7IgPiBzb3VtZWlreW9rdVwgOwor56eB55Sf5rS7ID4gc2hpc2Vpa2F0c3VcIDsKK+eUsumJhOiJpiA+IGtvdXRldHN1a2FuXCA7Civlv4Poh5Pnl4UgPiBzaGluem91YnlvdVwgOwor6Yys6YeR6KGTID4gcmVua2luanV0c3VcIDsKK+m7kuWGhemanCA+IGtva3VuYWlzaG91XCA7CivmnInorZjogIUgPiB5dXVzaGlraXNoYVwgOwor5bGx5rSl5rOiID4geWFtYXRzdW5hbWlcIDsKK+iiluePjeacrCA+IHNodXVjaGluYm9uXCA7CivlhYjnnYDpoIYgPiBzZW5jaGFrdWp1blwgOwor5a6f5ZCN6KmeID4gaml0c3VtZWlzaGlcIDsKK+mYsumjn+WJpCA+IGJvdXNob2t1emFpXCA7Civlr77np7Dou7ggPiB0YWlzaG91amlrdVwgOwor6L+R5pel54K5ID4ga2luaml0c3V0ZW5cIDsKK+iXjeaZtuefsyA+IHJhbnNob3VzZWtpXCA7CivlpbPlrZDkvpsgPiBvbicnbmFrb2RvbW9cIDsKK+ayoemjn+WtkCA+IG1vc3Nob2t1c2hpXCA7Civkv67nuZXkuK0gPiBzaHV1emVuY2h1dVwgOwor6ICz5a2m5ZWPID4gbWltaWdha3Vtb25cIDsKK+mVt+eykuexsyA+IGNob3VyeXV1bWFpXCA7CivnpZ7kv6Hlv4MgPiBrYW1pc2hpbmppblwgOwor5aWo5a2m55SfID4gc2hvdWdha3VzZWlcIDsKK+ims+WFteW8jyA+IGthbnBlaXNoaWtpXCA7Civoi6XlubTlnosgPiBqYWt1bmVuZ2F0YVwgOwor6byg5rW36LGaID4gbmV6dW1paXJ1a2FcIDsKK+mbhuepjeWgtCA+IHNodXVzZWtpam91XCA7CivmjIfkurrlvaIgPiB5dWJpbmluZ3lvdVwgOwor5puy6Iq45birID4ga3lva3VnZWlzaGlcIDsKK+m6pueykuiFqyA+IGJha3VyeXV1c2h1XCA7Civnm67nmoTlnLAgPiBtb2t1dGVraWNoaVwgOwor5a2m55Sf5a+uID4gZ2FrdXNlaXJ5b3VcIDsKK+WQiOaIkOWKmyA+IGdvdXNlaXJ5b2t1XCA7Civmj5DkvpvlgbQgPiB0ZWlreW91Z2F3YVwgOwor5LmX6ZmN5a6iID4gam91a291a3lha3VcIDsKK+WGheimqueOiyA+IG5haXNoaW4nJ25vdVwgOwor57Oe5YuJ5by3ID4ga3Vzb2Jlbmt5b3VcIDsKK+efoue2meaXqSA+IHlhdHN1Z2liYXlhXCA7CivlpInmm7LngrkgPiBoZW5reW9rdXRlblwgOwor6ZW35Zub6KeSID4gbmFnYXNoaWtha3VcIDsKK+imquWIh+awlyA+IHNoaW5zZXRzdWdpXCA7Civlia/npZ7ntYwgPiBmdWt1c2hpbmtlaVwgOwor6JGJ57eR5L2TID4geW91cnlva3V0YWlcIDsKK+iPiuS6uuW9oiA+IGtpa3VuaW5neW91XCA7CivnjqnlvITniakgPiBnYW5yb3VidXRzdVwgOwor5Y+j6KiA6JGJID4ga3VjaGlrb3RvYmFcIDsKK+mbhuWQiOeahCA+IHNodXVnb3V0ZWtpXCA7CivlibLlvZPpoY0gPiB3YXJpYXRlZ2FrdVwgOwor5bi457+S55qEID4gam91c2h1dXRla2lcIDsKK+aEn+Wcp+e0mSA+IGthbicnYXRzdXNoaVwgOwor57SF54y/5a2QID4gYmVuaW1hc2hpa29cIDsKK+W8vuaAp+eOhyA+IGRhbnNlaXJpdHN1XCA7Civmt6HntIXoibIgPiB0YW5rb3VzaG9rdVwgOwor5p+z6KGM5p2OID4geWFuYWdpZ291cmlcIDsKK+a1geWLleeahCA+IHJ5dXVkb3V0ZWtpXCA7CivnkrDlooPluoEgPiBrYW5reW91Y2hvdVwgOwor5piG6Jmr5a2mID4ga29uY2h1dWdha3VcIDsKK+W4uOaXpemggyA+IHRzdW5laGlnb3JvXCA7Civmr5Tnv7zloZogPiBoaXlva3VkenVrYVwgOwor5re35oiQ54mpID4ga29uc2VpYnV0c3VcIDsKK+a6tuino+WKmyA+IHlvdWthaXJ5b2t1XCA7CivmlZnogrLplbcgPiBreW91aWt1Y2hvdVwgOwor54S85Y2054KJID4gc2hvdWt5YWt1cm9cIDsKK+eZveaqgOayuSA+IGJ5YWt1ZGFuJyd5dVwgOwor54m95byV5YqbID4ga2VuJydpbnJ5b2t1XCA7CivoprPlhYnlsYAgPiBrYW5rb3VreW9rdVwgOwor5YWl5a2m6ICFID4gbnl1dWdha3VzaGFcIDsKK+WbveWtpuiAhSA+IGtva3VnYWt1c2hhXCA7CivmtLvli5XoqowgPiBrYXRzdWRvdXNoaVwgOwor5Ye65Zyf5ZOBID4gc2h1dHN1ZG9oaW5cIDsKK+e0meihqOe0mSA+IGthbWlieW91c2hpXCA7CivoprPlhYnlrqIgPiBrYW5rb3VreWFrdVwgOwor5YWx5a2m5Yi2ID4ga3lvdWdha3VzZWlcIDsKK+e+nuaBpeW/gyA+IHNodXVjaGlzaGluXCA7CivomavnnLzpj6EgPiBtdXNoaW1lZ2FuZVwgOwor6KiA6JGJ6LOqID4ga290b2JhamljaGlcIDsKK+WtpuiAheiGmiA+IGdha3VzaGFoYWRhXCA7CivpgJrkv6HntrIgPiB0c3V1c2hpbm1vdVwgOwor5pmu5Y+K546HID4gZnVreXV1cml0c3VcIDsKK+WNg+mzpei2syA+IGNoaWRvcmlhc2hpXCA7Civou6LovY3miYsgPiB0ZW50ZXRzdXNodVwgOwor6LO86LK35YqbID4ga291YmFpcnlva3VcIDsKK+WtpuiAheiCjCA+IGdha3VzaGFoYWRhXCA7CivlhaXos57ogIUgPiBueXV1c2hvdXNoYVwgOwor6Zm46LuN55yBID4gcmlrdWd1bnNob3VcIDsKK+S7ruWHuuaJgCA+IGthcmlzaHVzc2hvXCA7Civlj6TnianllYYgPiBrb2J1dHN1c2hvdVwgOwor6LGh5b606KmpID4gc2hvdWNob3VzaGlcIDsKK+S4i+WNlOitsCA+IHNoaXRha3lvdWdpXCA7Civlj6zpm4bku6QgPiBzaG91c2h1dXJlaVwgOwor54Wn5Lya5YWIID4gc2hvdWthaXNha2lcIDsKK+WghuepjeWtpiA+IHRhaXNla2lnYWt1XCA7Civoqq3op6PlipsgPiBkb2trYWlyeW9rdVwgOwor6IW457WQ5qC4ID4gY2hvdWtla2tha3VcIDsKK+W5tOaBsOWlvSA+IHRvc2hpa2Fra291XCA7CivpgJrnlKPnnIEgPiB0c3V1c2Fuc2hvdVwgOwor6YCa55Sj55u4ID4gdHN1dXNhbnNob3VcIDsKK+edo+WtpuWumCA+IHRva3VnYWt1a2FuXCA7Civmh5DkuK3niakgPiBrYWljaHV1bW9ub1wgOwor6YCa5L+h56S+ID4gdHN1dXNoaW5zaGFcIDsKK+WNg+efs+iIuSA+IHNlbmdva3VidW5lXCA7Civph5HniZvlrq4gPiBraW5neXV1a3l1dVwgOwor5o6l5ZCI5a2QID4gc2V0c3Vnb3VzaGlcIDsKK+eah+WupOiyuyA+IGtvdXNoaXRzdWhpXCA7Civov73lvrTnqI4gPiB0c3VpY2hvdXplaVwgOwor5bGA5aSW6ICFID4ga3lva3VnYWlzaGFcIDsKK+e/jOe/jOW5tCA+IHlva3V5b2t1bmVuXCA7CivnibnliKXmqZ8gPiB0b2t1YmV0c3VraVwgOwor5reh6KSQ6ImyID4gdGFua2Fzc2hva3VcIDsKK+WBj+Wft+eXhSA+IGhlbnNodXVieW91XCA7Civlrabnv5LogIUgPiBnYWt1c2h1dXNoYVwgOwor6Ziy6Z+z5a6kID4gYm91b25zaGl0c3VcIDsKK+iCieS9k+eahCA+IG5pa3V0YWl0ZWtpXCA7Civmlpnph5HooaggPiByeW91a2luaHlvdVwgOwor5YaF6Zm45Zu9ID4gbmFpcmlrdWtva3VcIDsKK+WMheWuueWKmyA+IGhvdXlvdXJ5b2t1XCA7Civlh7rmvIHmnJ8gPiBzaHV0c3VneW9raVwgOwor5Li75Lq65b25ID4gc2h1amluJyd5YWt1XCA7CivmiJDlip/njocgPiBzZWlrb3VyaXRzdVwgOwor5YWs5pyJ54mpID4ga291eXV1YnV0c3VcIDsKK+ims+iJpuW8jyA+IGthbmthbnNoaWtpXCA7CivmnIjlpJzojLggPiB0c3VraXlvdGFrZVwgOwor5YWl5a2m55SfID4gbnl1dWdha3VzZWlcIDsKK+aYjuW+jOaXpSA+IG15b3Vnb25pY2hpXCA7CivmtLvli5XogIUgPiBrYXRzdWRvdXNoYVwgOwor5LiJ5Y6f6ImyID4gc2FuZ2Vuc2hva3VcIDsKK+WBj+Wft+eLgiA+IGhlbnNodXVreW91XCA7Civokovku4vnn7MgPiBzaG91a2Fpc2VraVwgOwor55Sz5ZGK5pu4ID4gc2hpbmtva3VzaG9cIDsKK+e3qOesoOiMuCA+IGFtaWdhc2F0YWtlXCA7CivlsI/ljYrml6UgPiBrb2hhbicnbmljaGlcIDsKK+ihqOW9sOeKtiA+IGh5b3VzaG91am91XCA7CivlhoXoqLzkuosgPiBuYWlzaG91Z290b1wgOwor6Ki65pat5a2mID4gc2hpbmRhbmdha3VcIDsKK+WNl+alteeCuSA+IG5hbmt5b2t1dGVuXCA7Civmm7LlsITnoLIgPiBreW9rdXNoYWhvdVwgOwor5a++56ew55qEID4gdGFpc2hvdXRla2lcIDsKK+eUsumJhOadvyA+IGtvdXRldHN1YmFuXCA7CivlhYjnmbrpmoogPiBzZW5wYXRzdXRhaVwgOwor5oCn55Sf5rS7ID4gc2Vpc2Vpa2F0c3VcIDsKK+aknOmWsuWumCA+IGtlbicnZXRzdWthblwgOwor5rWB6YCa56iOID4gcnl1dXRzdXV6ZWlcIDsKK+a0l+a/r+eziiA+IHNlbnRha3Vub3JpXCA7CivljYrnm7Tnt5ogPiBoYW5jaG9rdXNlblwgOwor5rSX5r+v57GgID4gc2VudGFrdWthZ29cIDsKK+aOpeWQiOWJpCA+IHNldHN1Z291emFpXCA7CivovrLnlKPniakgPiBub3VzYW5idXRzdVwgOwor5o6l5Y+X5Zu9ID4gc2V0c3VqdWtva3VcIDsKK+WNl+altea1tyA+IG5hbmt5b2t1a2FpXCA7CivntZDohpzngo4gPiBrZXRzdW1ha3VlblwgOwor6Kaq552m5LyaID4gc2hpbmJva3VrYWlcIDsKK+ehq+WMlueJqSA+IHJ5dXVrYWJ1dHN1XCA7Civmg7Plg4/lipsgPiBzb3V6b3VyeW9rdVwgOwor6Iq46KGT5ZOBID4gZ2VpanV0c3VoaW5cIDsKK+WNl+altea0iyA+IG5hbmt5b2t1eW91XCA7Civlho3muKzph48gPiBzYWlzb2t1cnlvdVwgOwor6Zyy5Ye66KiIID4gcm9zaHV0c3VrZWlcIDsKK+eVmeWtpueUnyA+IHJ5dXVnYWt1c2VpXCA7CivmsLTku5XkuosgPiBtaXp1c2hpZ290b1wgOwor5a2m57+S55SoID4gZ2FrdXNodXV5b3VcIDsKK+azqOWwhOmHnSA+IGNodXVzaGFiYXJpXCA7CivoprPlr5/ogIUgPiBrYW5zYXRzdXNoYVwgOwor6YCa5L+h5qyEID4gdHN1dXNoaW5yYW5cIDsKK+S6lOaciOmXhyA+IHNhdHN1a2l5YW1pXCA7CivnmbrnnYDloLQgPiBoYXRjaGFrdWpvdVwgOwor6Ly45Ye656iOID4geXVzaHV0c3V6ZWlcIDsKK+WwseiBt+aZgiA+IHNodXVzaG9rdWppXCA7CivnnYDnnLzngrkgPiBjaGFrdWdhbnRlblwgOwor56m65Ya35byPID4ga3V1cmVpc2hpa2lcIDsKK+a6tuaOpeW3pSA+IHlvdXNldHN1a291XCA7CivkuLjmnKjmqYsgPiBtYXJ1a2liYXNoaVwgOwor5bGx5b2i55yMID4geWFtYWdhdGFrZW5cIDsKK+S6pOmciuihkyA+IGtvdXJlaWp1dHN1XCA7CivlibXpgKDoqqwgPiBzb3V6b3VzZXRzdVwgOwor5oub5b6F5bitID4gc2hvdXRhaXNla2lcIDsKK+mbquS4iui7iiA+IHNldHN1am91c2hhXCA7CivkuqTpn7/mpb0gPiBrb3VreW91Z2FrdVwgOwor6L6y5qWt5Zu9ID4gbm91Z3lvdWtva3VcIDsKK+WNk+i2iumiqCA+IHRha3VldHN1ZnV1XCA7Civpjq7nl5vmgKcgPiBjaGludHN1dXNlaVwgOwor6KqN6K2Y6KuWID4gbmluc2hpa2lyb25cIDsKK+WwseWvneWJjSA+IHNodXVzaGluemVuXCA7Civlj4zmm7Lnt5ogPiBzb3VreW9rdXNlblwgOwor5aSP5pmC5Yi7ID4gbmF0c3VqaWtva3VcIDsKK+Wkj+Wkp+aguSA+IG5hdHN1ZGFpa29uXCA7CivmnZHlhavliIYgPiBtdXJhaGFjaGlidVwgOwor5YKY5LyQ5p6XID4gc2FuYmF0c3VyaW5cIDsKK+W4uOioremkqCA+IGpvdXNldHN1a2FuXCA7CivljZfmpbXmmJ8gPiBuYW5reW9rdXNlaVwgOwor56We5a2m5aOrID4gc2hpbmdha3VzaGlcIDsKK+S4iuWRiuWvqSA+IGpvdWtva3VzaGluXCA7CivlhYjlhaXoprMgPiBzZW4nJ255dXVrYW5cIDsKK+WFiOWFpeimiyA+IHNlbicnbnl1dWtlblwgOwor5rSX5r+v54mpID4gc2VudGFrdW1vbm9cIDsKK+S4h+iRiembhiA+IG1hbicneW91c2h1dVwgOwor5rqA5bee5Zu9ID4gbWFuc2h1dWtva3VcIDsKK+ihqOW/oOWhlCA+IGh5b3VjaHV1dG91XCA7CivkuInph43mrrogPiBzYW5qdXVzYXRzdVwgOwor5YiG5rOM5rayID4gYnVucGl0c3Vla2lcIDsKK+mao+aOpeecjCA+IHJpbnNldHN1a2VuXCA7CivlmJjlhavnmb4gPiB1c29oYXBweWFrdVwgOwor6Iie6LiP5a6kID4gYnV0b3VzaGl0c3VcIDsKK+W9k+WxgOiAhSA+IHRvdWt5b2t1c2hhXCA7Civnt6nooZ3lm70gPiBrYW5zaG91a29rdVwgOwor6JeB5Lq65b2iID4gd2FyYW5pbmd5b3VcIDsKK+W9semfv+WKmyA+IGVpa3lvdXJ5b2t1XCA7Civmlofnr4DmlbAgPiBidW5zZXRzdXN1dVwgOwor5oKq5o6o6YePID4gd2FydXp1aXJ5b3VcIDsKK+WQq+aciemHjyA+IGdhbicneXV1cnlvdVwgOwor6KqY6Zu7546HID4geXV1ZGVucml0c3VcIDsKK+ims+Wvn+ecvCA+IGthbnNhdHN1Z2FuXCA7Civmipvniannt5ogPiBob3VidXRzdXNlblwgOwor6KOP5YiH6ICFID4gdXJhZ2lyaW1vbm9cIDsKK+mYsumbquaelyA+IGJvdXNldHN1cmluXCA7CivlpKnnpZ7pq60gPiB0ZW5zaGluaGlnZVwgOwor5q665a6z6ICFID4gc2F0c3VnYWlzaGFcIDsKK+aVmeiCsuecgSA+IGt5b3Vpa3VzaG91XCA7Civpm6LkubPpo58gPiByaW55dXVzaG9rdVwgOwor5pWZ6IKy55qEID4ga3lvdWlrdXRla2lcIDsKK+eJueWIpeWMuiA+IHRva3ViZXRzdWt1XCA7CivosqHmlL/lipsgPiB6YWlzZWlyeW9rdVwgOwor5by356Gs562WID4ga3lvdWtvdXNha3VcIDsKK+aWsOW5tOWPtyA+IHNoaW4nJ25lbmdvdVwgOwor56Ov6aa05p2+ID4gc29uYXJlbWF0c3VcIDsKK+WFpemkqOaWmSA+IG55dXVrYW5yeW91XCA7Civniannm7jpo68gPiBtb3Nzb3VtZXNoaVwgOwor6KO96Z2p5qWtID4gc2Vpa2FrdWd5b3VcIDsKK+S4reWtpueUnyA+IGNodXVnYWt1c2VpXCA7CivovLjlh7rmuK8gPiB5dXNodXRzdWtvdVwgOwor5Y2X5qW15bivID4gbmFua3lva3V0YWlcIDsKK+a6tuaOpeWJpCA+IHlvdXNldHN1emFpXCA7CivmgKXnl4XkurogPiBreXV1YnlvdW5pblwgOwor5a+E5a6/5paZID4ga2lzaHVrdXJ5b3VcIDsKK+mrmOWztueUsCA+IHRha2FzaGltYWRhXCA7CivlsI/mraPmnIggPiBrb3Nob3VnYXRzdVwgOwor5YuV5Yqb6KiIID4gZG91cnlva3VrZWlcIDsKK+alteWkp+WApCA+IGt5b2t1ZGFpY2hpXCA7Civlh7rph5HpoY0gPiBzaHVra2luZ2FrdVwgOwor55Sz5ZGK5Yi2ID4gc2hpbmtva3VzZWlcIDsKK+WtkOS+m+mBlCA+IGtvZG9tb3RhY2hpXCA7CivlqpLku4vniakgPiBiYWlrYWlidXRzdVwgOwor6buE6YGT6ImyID4ga291ZG91c2hva3VcIDsKK+S4ieiRieiZqyA+IHNhbicneW91Y2h1dVwgOwor5YWo6LOq5YyWID4gemVuc2hpdHN1a2FcIDsKK+eUn+a0u+mboyA+IHNlaWthdHN1bmFuXCA7CivntLDli5XohIggPiBzYWlkb3VteWFrdVwgOwor56eB5pyJ54mpID4gc2hpeXV1YnV0c3VcIDsKK+ikh+mbkeWMliA+IGZ1a3V6YXRzdWthXCA7Civli6LlipvlnI8gPiBzZWlyeW9rdWtlblwgOwor6KSH6KSH57eaID4gZnVrdWZ1a3VzZW5cIDsKK+aWsOW5tOS8miA+IHNoaW4nJ25lbmthaVwgOwor5LiN56K65a6fID4gZnVrYWt1aml0c3VcIDsKK+mOrueXm+WJpCA+IGNoaW50c3V1emFpXCA7CivmgKrkurrniakgPiBrYWlqaW5idXRzdVwgOwor6YCa5a2m55SfID4gdHN1dWdha3VzZWlcIDsKK+eIhuW/g+WcsCA+IGJha3VzaGluY2hpXCA7Civlp4vmnKvmm7ggPiBzaGltYXRzdXNob1wgOwor56u25LqJ5b+DID4ga3lvdXNvdXNoaW5cIDsKK+WJvei7veiAhSA+IGh5b3VraW5tb25vXCA7CivohbjplonloZ4gPiBjaG91aGVpc29rdVwgOwor6LuN5b2T5bGAID4gZ3VudG91a3lva3VcIDsKK+eZveWtkOmzqSA+IHNoaXJha29iYXRvXCA7CivnlLrlvbnloLQgPiBtYWNoaXlha3ViYVwgOwor5LiN5b+g5a6fID4gZnVjaHV1aml0c3VcIDsKK+WNmuWtpuiAhSA+IGhha3VnYWt1c2hhXCA7CivmiKbnlaXkuIogPiBzZW5yeWFrdWpvdVwgOwor5Y2X5qW15ZyPID4gbmFua3lva3VrZW5cIDsKK+S4oeiEmuimjyA+IHJ5b3VreWFrdWtpXCA7CivlhbHoqLPogIUgPiBreW91eWFrdXNoYVwgOwor5b+N6ICQ5YqbID4gbmludGFpcnlva3VcIDsKK+mbhumHkeS6uiA+IHNodXVraW4nJ25pblwgOwor5Y2B5YWr6YeRID4ganV1aGFjaGlraW5cIDsKK+WAn+eUqOiAhSA+IHNoYWt1eW91c2hhXCA7CivmjIHkuYXlipsgPiBqaWt5dXVyeW9rdVwgOwor5bGA5Zyw6aKoID4ga3lva3VjaGlmdXVcIDsKK+eZuueZjOaApyA+IGhhdHN1Z2Fuc2VpXCA7Civmj5rpmbjmlpkgPiB5b3VyaWt1cnlvdVwgOwor5a+G6LK/5piTID4gbWl0c3Vib3Vla2lcIDsKK+mAmuS/oeWToSA+IHRzdXVzaGluJydpblwgOwor5Yag5YuV6ISIID4ga2FuZG91bXlha3VcIDsKK+WkieWlj+absiA+IGhlbnNvdWt5b2t1XCA7CivooajlvbDlj7AgPiBoeW91c2hvdWRhaVwgOwor6JGs6YCB5puyID4gc291c291a3lva3VcIDsKK+WNg+WIhueOhyA+IHNlbmJ1bnJpdHN1XCA7CivkuLjkuIDlubQgPiBtYXJ1aWNoaW5lblwgOwor6ICB5buD54mpID4gcm91aGFpYnV0c3VcIDsKK+WNl+alteWFiSA+IG5hbmt5b2t1a291XCA7Civnmq7nrpfnlKggPiBrYXdhemFuJyd5b3VcIDsKK+i/veWIhuevgCA+IG9pd2FrZWJ1c2hpXCA7CivlvrPlt53li6IgPiB0b2t1Z2F3YXplaVwgOwor5Ym16YCg54mpID4gc291em91YnV0c3VcIDsKK+WIneiIqua1tyA+IGhhdHN1a291a2FpXCA7Civos7zoqq3mlpkgPiBrb3Vkb2t1cnlvdVwgOwor5b6X56Wo5pWwID4gdG9rdWh5b3VzdXVcIDsKK+mbquaZr+iJsiA+IHl1a2lnZXNoaWtpXCA7Civnsr7npZ7nmoQgPiBzZWlzaGludGVraVwgOwor5b6z5bed5YWsID4gdG9rdWdhd2Frb3VcIDsKK+a0u+WLleWutiA+IGthdHN1ZG91c2hhXCA7Civoh6rnq4vlv4MgPiBqaXJpdHN1c2hpblwgOwor5ry46YCy55qEID4gemVuc2hpbnRla2lcIDsKK+aVmeS8muaapiA+IGt5b3VrYWlyZWtpXCA7CivmrrrkurrogIUgPiBzYXRzdWppbnNoYVwgOwor57K+56We55eFID4gc2Vpc2hpbmJ5b3VcIDsKK+auuuS6uue9qiA+IHNhdHN1amluemFpXCA7CivmiJDlubTlvI8gPiBzZWluZW5zaGlraVwgOwor6ISx55+z5rK5ID4gZGF0c3VzZWtpeXVcIDsKK+WFiOmAsuWbvSA+IHNlbnNoaW5rb2t1XCA7CivlnJ/lm6PlrZAgPiB0c3VjaGlkYW5nb1wgOwor5re35ZCI54mpID4ga29uZ291YnV0c3VcIDsKK+i7jealvemVtyA+IGd1bmdha3VjaG91XCA7Civms5XlvovkuIogPiBob3VyaXRzdWpvdVwgOwor55Wc54qs56iOID4gY2hpa3VrZW56ZWlcIDsKK+aigeWxseaziiA+IHJ5b3V6YW5wYWt1XCA7CivlvavloZHooZMgPiBjaG91c29qdXRzdVwgOwor5Luj55So6aOfID4gZGFpeW91c2hva3VcIDsKK+S4puacqOmBkyA+IG5hbWlraW1pY2hpXCA7CivluLPmnKzkurogPiBjaG91aG9uJyduaW5cIDsKK+Wuneefs+eusSA+IGhvdXNla2liYWtvXCA7CivljZLmpa3lvowgPiBzb3RzdWd5b3Vnb1wgOwor5Y+j6KeS5YqbID4ga3VjaGlkenVtb3VcIDsKK+S6i+alreS4uyA+IGppZ3lvdW51c2hpXCA7Civoh6romZDnmoQgPiBqaWd5YWt1dGVraVwgOwor5LiL55u46KuHID4gc2hpdGFzb3VkYW5cIDsKK+emv+mgreeXhSA+IHRva3V0b3VieW91XCA7CivlvL7nnYDngrkgPiBkYW5jaGFrdXRlblwgOwor5LqU5pyI55eFID4gZ29nYXRzdWJ5b3VcIDsKK+W8vuWKm+aApyA+IGRhbnJ5b2t1c2VpXCA7CivmoLjniIblvL4gPiBrYWt1YmFrdWRhblwgOwor5Lim5pyo6LevID4gbmFtaWtpbWljaGlcIDsKK+WVhualreihlyA+IHNob3VneW91Z2FpXCA7CivpoK3mloflrZcgPiBrYXNoaXJhbW9qaVwgOwor57iu57es57SZID4gY2hpcmltZW5zaGlcIDsKK+aIquaWremdoiA+IHNldHN1ZGFubWVuXCA7CivljZfkuqzomasgPiBuYW5raW5tdXNoaVwgOwor6KOB5rG65pu4ID4gc2Fpa2V0c3VzaG9cIDsKK+aguOeHg+aWmSA+IGtha3VuZW5yeW91XCA7CivpgJDlrZfoqLMgPiBjaGlrdWppeWFrdVwgOwor5LiA5b656ICFID4gaXR0ZXRzdW1vbm9cIDsKK+W+oeWNlOWKmyA+IGdva3lvdXJ5b2t1XCA7Civkv4LlsZ7kuK0gPiBrZWl6b2t1Y2h1dVwgOwor55eF5Lit5ZCfID4gYnlvdWNodXVnaW5cIDsKK+altemZkOWApCA+IGt5b2t1Z2VuY2hpXCA7CivmlZnogrLlraYgPiBreW91aWt1Z2FrdVwgOwor6Zu76Kmx5a6kID4gZGVud2FzaGl0c3VcIDsKK+mBoOW/g+WKmyA+IGVuc2hpbnJ5b2t1XCA7Civlrq7ltI7nnIwgPiBtaXlhemFraWtlblwgOwor5ZWG5bel5qWtID4gc2hvdWtvdWd5b3VcIDsKK+ihneWLleeahCA+IHNob3Vkb3V0ZWtpXCA7Civog4bnn7Pnl4cgPiB0YW5zZWtpc2hvdVwgOwor6Ly45Ye65ZOBID4geXVzaHV0c3VoaW5cIDsKK+S4ieecoOialSA+IHNhbm1pbmthaWtvXCA7CivplpPmrKDms4kgPiBrYW5rZXRzdXNlblwgOwor5aSp6b6N5bedID4gdGVucnl1dWthd2FcIDsKK+aVmee/kueUnyA+IGt5b3VzaHV1c2VpXCA7CivpmqPmjqXlnLAgPiByaW5zZXRzdWNoaVwgOwor55m655Sf546HID4gaGFzc2Vpcml0c3VcIDsKK+iRoeiQhOeVkSA+IGJ1ZG91YmF0YWtlXCA7CivlooPnlYzmqJkgPiBreW91a2FpaHlvdVwgOwor56m66LuN5YqbID4ga3V1Z3Vucnlva3VcIDsKK+S6pOWjsOabsiA+IGtvdXNlaWt5b2t1XCA7Civnj77lhoXplqMgPiBnZW4nJ25haWtha3VcIDsKK+WNoOaYn+ihkyA+IHNlbnNlaWp1dHN1XCA7CivpppnovpvmlpkgPiBrb3VzaGlucnlvdVwgOwor55S66YGT5aC0ID4gbWFjaGlkb3Vqb3VcIDsKK+WLleWKm+a6kCA+IGRvdXJ5b2t1Z2VuXCA7CivmgZLnrYnlvI8gPiBrb3V0b3VzaGlraVwgOwor6KiO5LyQ6LuNID4gdG91YmF0c3VndW5cIDsKK+ihqOeci+advyA+IG9tb3Rla2FuYmFuXCA7Civmv4PpnZLoibIgPiBub3VzZWlzaG9rdVwgOwor5q665Lq654qvID4gc2F0c3VqaW5oYW5cIDsKK+aui+W/teizniA+IHphbicnbmVuc2hvdVwgOwor6ISz5YWF6KGAID4gbm91anV1a2V0c3VcIDsKK+mjn+S6uueoriA+IHNob2t1amluc2h1XCA7CivotaTopJDoibIgPiBzZWtrYXNzaG9rdVwgOwor6IiI5L+h6YyyID4ga291c2hpbnJva3VcIDsKK+mbu+eGseWZqCA+IGRlbicnbmV0c3VraVwgOwor5L2c5puy6ICFID4gc2Fra3lva3VzaGFcIDsKK+WVhuaomeaoqSA+IHNob3VoeW91a2VuXCA7CivluLjorZjkurogPiBqb3VzaGlraWppblwgOwor6Kaz5a6i5bGkID4ga2Fua3lha3Vzb3VcIDsKK+S4gOmHjeahnCA+IGhpdG9lemFrdXJhXCA7CivlhYjlhYjmnIggPiBzZW5zZW5nZXRzdVwgOwor5Zyw5YuV6KqsID4gY2hpZG91c2V0c3VcIDsKK+eZveS6nOizqiA+IGhha3Vhc2hpdHN1XCA7CivohqDnnYDliaQgPiBrb3VjaGFrdXphaVwgOwor5LiA5q616JC9ID4gaWNoaWRhbnJha3VcIDsKK+i7jeeUqOmzqSA+IGd1bicneW91YmF0b1wgOwor5L+X5paH5a2mID4gem9rdWJ1bmdha3VcIDsKK+mbu+Wcp+ioiCA+IGRlbicnYXRzdWtlaVwgOwor6Jas5bGA5pa5ID4geWFra3lva3Vob3VcIDsKK+azleWItuWxgCA+IGhvdXNlaWt5b2t1XCA7CivolqzlrabogIUgPiB5YWt1Z2FrdXNoYVwgOwor5L+C5LqJ54mpID4ga2Vpc291YnV0c3VcIDsKK+mQmOS5s+a0niA+IHNob3VueXV1ZG91XCA7CivohLHmr5vliaQgPiBkYXRzdW1vdXphaVwgOwor566h6L2E5qipID4ga2Fua2F0c3VrZW5cIDsKK+WAn+eUqOabuCA+IHNoYWt1eW91c2hvXCA7CivlpYnlhazlj6MgPiBob3Vrb3VndWNoaVwgOwor5pS+6YCB5bGAID4gaG91c291a3lva3VcIDsKK+m7hOeZveiJsiA+IGtvaGFrdXNob2t1XCA7Civnvr3nuZToorQgPiBoYW9yaWhha2FtYVwgOwor6Zmk5bmV5byPID4gam9tYWt1c2hpa2lcIDsKK+W8t+WItueahCA+IGt5b3VzZWl0ZWtpXCA7CivlvLflv4PliaQgPiBreW91c2hpbnphaVwgOwor55Sf5rS755KwID4gc2Vpa2F0c3VrYW5cIDsKK+aYpeS4gOeVqiA+IGhhcnVpY2hpYmFuXCA7CivljYHlhavnlaogPiBqdXVoYWNoaWJhblwgOwor57WC6Lqr5a6YID4gc2h1dXNoaW5rYW5cIDsKK+aciOmVt+efsyA+IGdldGNob3VzZWtpXCA7CivmlZnogbflk6EgPiBreW91c2hva3VpblwgOwor6YCB5Yil5LyaID4gc291YmV0c3VrYWlcIDsKK+WHuuWTgeWbvSA+IHNodXBwaW5rb2t1XCA7CivljZfkuqznlLogPiBuYW5raW5tYWNoaVwgOwor6YGT5b6z55qEID4gZG91dG9rdXRla2lcIDsKK+WVhualreeVjCA+IHNob3VneW91a2FpXCA7Civlj47ntI3poY0gPiBzaHV1bm91Z2FrdVwgOwor6byO56uL5oimID4gdGVpcml0c3VzZW5cIDsKK+WOn+WJh+eahCA+IGdlbnNva3V0ZWtpXCA7Civlgo3ogbTmlpkgPiBib3VjaG91cnlvdVwgOwor5Y2D5YaG5pytID4gc2VuJydlbnNhdHN1XCA7Civlrprlj47lhaUgPiB0ZWlzaHV1bnl1dVwgOwor5YWt5aSn5beeID4gcm9rdWRhaXNodXVcIDsKK+WJsuW8leWIuCA+IHdhcmliaWtpa2VuXCA7CivkvY/nlJ/mtLsgPiBqdXVzZWlrYXRzdVwgOwor5YmN56uL6IW6ID4gemVucml0c3VzZW5cIDsKK+WGmeecn+mbhiA+IHNoYXNoaW5zaHV1XCA7Civnmb7kuIfpgY0gPiBoeWFrdW1hbmJlblwgOwor6J2J5pmC6ZuoID4gc2VtaXNoaWd1cmVcIDsKK+WJsuW8leWCtSA+IHdhcmliaWtpc2FpXCA7CivmjqXnnYDliaQgPiBzZXRjaGFrdXphaVwgOwor5omL6KGT5Y+wID4gc2h1anV0c3VkYWlcIDsKK+mYsueBq+aJiSA+IGJvdWthdG9iaXJhXCA7CivkubHlhaXogIUgPiByYW4nJ255dXVzaGFcIDsKK+ioiOeUu+eahCA+IGtlaWtha3V0ZWtpXCA7Civoqr/ljbDlvI8gPiBjaG91aW5zaGlraVwgOwor6YCG6Lui5bGkID4gZ3lha3V0ZW5zb3VcIDsKK+m7hOiJsuiZqyA+IGtvZ2FuZW11c2hpXCA7CivnlJ/mtLvms5UgPiBzZWlrYXRzdWhvdVwgOwor57KY5Zyf6LOqID4gbmVuZG9zaGl0c3VcIDsKK+mAhui8uOWFpSA+IGd5YWt1eXVueXV1XCA7CivmlrDoiIjlm70gPiBzaGlua291a29rdVwgOwor5Ym16YCg5YqbID4gc291em91cnlva3VcIDsKK+WQiOebrueahCA+IGdvdW1va3V0ZWtpXCA7CivmlrDkurros54gPiBzaGluamluc2hvdVwgOwor6aCa6Z2Z6ISIID4ga2Vpam91bXlha3VcIDsKK+mbu+WgseWxgCA+IGRlbnBvdWt5b2t1XCA7CivkuInluZXniakgPiBzYW5tYWt1bW9ub1wgOwor55m95pyo6JOuID4gaGFrdW1va3VyZW5cIDsKK+WVhualrea4ryA+IHNob3VneW91a291XCA7CivolqznvZDpoK0gPiB5YWthbicnYXRhbWFcIDsKK+S4gOmHjOWhmiA+IGljaGlyaWR6dWthXCA7CivntYLouqvliJEgPiBzaHV1c2hpbmtlaVwgOwor5YuV5Yqb5a2mID4gZG91cmlraWdha3VcIDsKK+evgOaWmeeQhiA+IHNlY2hpcnlvdXJpXCA7Civlh7rlk4HkurogPiBzaHVwcGluJyduaW5cIDsKK+WCjeiBtOW4rSA+IGJvdWNob3VzZWtpXCA7CivkuI3pganliIcgPiBmdXRla2lzZXRzdVwgOwor5a2m6Zqb55qEID4gZ2FrdXNhaXRla2lcIDsKK+ernOmqqOW6pyA+IHJ5dXVrb3RzdXphXCA7Civku67mnaHntIQgPiBrYXJpam91eWFrdVwgOwor6ZqO57Sa56ugID4ga2Fpa3l1dXNob3VcIDsKK+aKteaKl+WKmyA+IHRlaWtvdXJ5b2t1XCA7Civmo67mnpflraYgPiBzaGlucmluZ2FrdVwgOwor55m+5LiH6KiAID4gaHlha3VtYW5nZW5cIDsKK+WMlueyp+S4iyA+IGtlc2hvdXNoaXRhXCA7CivotaTmj5Dnga8gPiBha2FjaG91Y2hpblwgOwor5Ym16YCg5Li7ID4gc291em91bnVzaGlcIDsKK+WAmeWtneizoiA+IGhvdXNoYXVzaGVuXCA7CivolqznvLbpoK0gPiB5YWthbicnYXRhbWFcIDsKK+WGrOWwhui7jSA+IGZ1eXVzaG91Z3VuXCA7Civni6znv5Lmm7ggPiBkb2t1c2h1dXNob1wgOwor5YWs6Ki85paZID4ga291c2hvdXJ5b3VcIDsKK+e2v+e5lOeJqSA+IG1lbicnb3JpbW9ub1wgOwor5YWI5YWl5Li7ID4gc2VuJydueXV1c2h1XCA7CivmnIDntYLnmoQgPiBzYWlzaHV1dGVraVwgOwor5pys5bu656+JID4gaG9ua2VuY2hpa3VcIDsKK+eLl+WwvuiNiSA+IGVub2tvcm9ndXNhXCA7CivooYzllYbkurogPiBneW91c2hvdW5pblwgOwor5YiH5YiG5rOVID4gc2V0c3VidW5ob3VcIDsKK+Wwj+eZvuWnkyA+IGtvYnlha3VzaG91XCA7Civlv4PkuIjlpKsgPiBrb2tvcm9qb3VidVwgOwor6bOl6aGe5a2mID4gY2hvdXJ1aWdha3VcIDsKK+W8seW5tOiAhSA+IGpha3VuZW5tb25vXCA7CivkuK3pmorplbcgPiBjaHV1dGFpY2hvdVwgOwor55u46KuH5b25ID4gc291ZGFuJyd5YWt1XCA7Civpo5/kuovmmYIgPiBzaG9rdWppZG9raVwgOwor5YWr6Z2i5L2TID4gaGFjaGltZW50YWlcIDsKK+WOn+WIpOaxuiA+IGdlbmhhbmtldHN1XCA7CivmpbXlnLDlnI8gPiBreW9rdWNoaWtlblwgOwor55uj5a+f5a6YID4ga2Fuc2F0c3VrYW5cIDsKK+eZveeOieeyiSA+IHNoaXJhdGFtYWtvXCA7CivllYbmpa3mlocgPiBzaG91Z3lvdWJ1blwgOwor5aSp5YuV6KqsID4gdGVuZG91c2V0c3VcIDsKK+i+u+iqrOazlSA+IHRzdWppc2VwcG91XCA7CivnhYnkuLnooZMgPiByZW50YW5qdXRzdVwgOwor6KW/5rW35bK4ID4gbmlzaGlrYWlnYW5cIDsKK+aApeS4iuaYhyA+IGt5dXVqb3VzaG91XCA7Civlrp3nn7PllYYgPiBob3VzZWtpc2hvdVwgOwor5o+b566X546HID4ga2Fuc2Fucml0c3VcIDsKK+W7uuioreiAhSA+IGtlbnNldHN1c2hhXCA7CivljJfjgIXopb8gPiBob2t1aG9rdXNlaVwgOwor6YqA5ama5byPID4gZ2lua29uc2hpa2lcIDsKK+S4oeiEmuWZqCA+IHJ5b3VreWFrdWtpXCA7Civljp/li5XlipsgPiBnZW5kb3VyeW9rdVwgOwor5L+E5pmv5rCXID4gbml3YWthZ2Vpa2lcIDsKK+aCquaIr+iAhSA+IGl0YXp1cmFtb25vXCA7CivlpKfnpo/luLMgPiBkYWlmdWt1Y2hvdVwgOwor5pmC56+A5p+EID4gamlzZXRzdWdhcmFcIDsKK+WQuOihgOmsvCA+IGt5dXVrZXRzdWtpXCA7Civns5blsL/nl4UgPiB0b3VueW91YnlvdVwgOwor6Lui5Lu75YWIID4gdGVuJyduaW5zYWtpXCA7CivmlK/phY3lipsgPiBzaGloYWlyeW9rdVwgOwor5Y2Y6Z+z56+AID4gdGFuJydvbnNldHN1XCA7CivmlrDogZ7nqK4gPiBzaGluYnVuZGFuZVwgOwor5byf44CF5a2QID4gb3RvdXRvZGVzaGlcIDsKK+S9juS4mOmZtSA+IHRlaWt5dXVyeW91XCA7Civlm73pmpvnmoQgPiBrb2t1c2FpdGVraVwgOwor6YO35Zyf6ImyID4ga3lvdWRvc2hva3VcIDsKK+ernOeUsOWnqyA+IHRhdHN1dGFoaW1lXCA7CivlsI/lrabppKggPiBzaG91Z2FrdWthblwgOwor5L2/56+A5ZujID4gc2hpc2V0c3VkYW5cIDsKK+a2iOaBr+aWhyA+IHNob3Vzb2t1YnVuXCA7Civnt4vooaPojYkgPiBoaWdvcm9tb3NvdVwgOwor5Li76KiI5bGAID4gc2h1a2Vpa3lva3VcIDsKK+mBk+W+s+W/gyA+IGRvdXRva3VzaGluXCA7CivmnKrmsbrlm5ogPiBtaWtldHN1c2h1dVwgOwor5oSb5ZSx5puyID4gYWlzaG91a3lva3VcIDsKK+Wxseajn+ibhyA+IHlhbWFrYWdhc2hpXCA7CivlgbXlr5/pmoogPiB0ZWlzYXRzdXRhaVwgOwor55m65L+h5YG0ID4gaGFzc2hpbmdhd2FcIDsKK+mBoOWxsemHjCA+IHRvb3lhbWF6YXRvXCA7CivnpZ7ntYznl5sgPiBzaGlua2VpdHN1dVwgOwor56We57WM55eHID4gc2hpbmtlaXNob3VcIDsKK+elnue1jOeXhSA+IHNoaW5rZWlieW91XCA7CivlrprnnYDmtrIgPiB0ZWljaGFrdWVraVwgOwor5byB6Ki85a2mID4gYmVuc2hvdWdha3VcIDsKK+eZuuS/oeS6uiA+IGhhc3NoaW4nJ25pblwgOwor57eR5Zyw5bivID4gcnlva3VjaGl0YWlcIDsKK+eUn+a0u+WcjyA+IHNlaWthdHN1a2VuXCA7CivnhrHkvJ3lsI4gPiBuZXRzdWRlbmRvdVwgOwor6YGT5b6z5a2mID4gZG91dG9rdWdha3VcIDsKK+mBqeagvOiAhSA+IHRla2lrYWt1c2hhXCA7Civlm7Pmm7jlrqQgPiB0b3Nob3NoaXRzdVwgOwor6Kaz6Z+z5qeYID4ga2FuJydub25zYW1hXCA7CivntZDlqZrlvI8gPiBrZWtrb25zaGlraVwgOwor6KW/5rSL5byPID4gc2VpeW91c2hpa2lcIDsKK+eUt+WGpeWIqSA+IG90b2tvbXlvdXJpXCA7CivkuIrohZXpqqggPiBqb3V3YW5rb3RzdVwgOwor55Sf5ZG95YqbID4gc2VpbWVpcnlva3VcIDsKK+ehrOmqqOa8oiA+IGtvdWtvdHN1a2FuXCA7CivllYbmpa3lnLAgPiBzaG91Z3lvdWNoaVwgOwor5LiH5bm05bqKID4gbWFuJyduZW5kb2tvXCA7CivorJvph4jluKsgPiBrb3VzaGFrdXNoaVwgOwor5reh6buE6ImyID4gdGFua291c2hva3VcIDsKK+S4ieW5heWvviA+IHNhbnB1a3V0c3VpXCA7Civom4vnmb3lsL8gPiB0YW5wYWt1bnlvdVwgOwor5Yi65r+A6IetID4gc2hpZ2VraXNodXVcIDsKK+iNiemei+iZqyA+IHdhcmFqaW11c2hpXCA7Civph5Hono3mpa0gPiBraW4nJ3l1dWd5b3VcIDsKK+iPnOeoruayuSA+IG5hdGFuZWFidXJhXCA7Civpm5vkurrlvaIgPiBoaW5hbmluZ3lvdVwgOwor54Sh552A6Zm4ID4gbXVjaGFrdXJpa3VcIDsKK+S4iuWIhuWIpSA+IGpvdWZ1bmJldHN1XCA7CivlpKfli5XohIggPiBkYWlkb3VteWFrdVwgOwor56We54Sh5pyIID4ga2FuJyduYWR6dWtpXCA7CivlubzpprTmn5MgPiBvc2FuYW5hamltaVwgOwor5YaG5ZGo546HID4gZW5zaHV1cml0c3VcIDsKK+WVhualreWPsiA+IHNob3VneW91c2hpXCA7CivlsbHlsrPnl4UgPiBzYW5nYWt1YnlvdVwgOwor6Kaq5Lu75a6YID4gc2hpbicnbmlua2FuXCA7Civov73ot6HogIUgPiB0c3Vpc2VraXNoYVwgOwor55m65Lya5byPID4gaGFra2Fpc2hpa2lcIDsKK+WkqemBk+iZqyA+IHRlbnRvdW11c2hpXCA7CivluorpnaLnqY0gPiB5dWthbWVuc2VraVwgOwor54u46Kaq54i2ID4gdGFudWtpb3lhamlcIDsKK+acqOefs+a8oiA+IGJva3VzZWtpa2FuXCA7Civlm73pmLLnnIEgPiBrb2t1Ym91c2hvdVwgOwor5Zu95paH5a2mID4ga29rdWJ1bmdha3VcIDsKK+awkeS/l+WtpiA+IG1pbnpva3VnYWt1XCA7CivnlJ/mrpbohbogPiBzZWlzaG9rdXNlblwgOwor6Ieq5q6655qEID4gamlzYXRzdXRla2lcIDsKK+mAoOeJqeS4uyA+IHpvdWJ1dHN1c2h1XCA7CivnlKjlhbXooZMgPiB5b3VoZWlqdXRzdVwgOwor6YCA6IG36YeRID4gdGFpc2hva3VraW5cIDsKK+W9juaciOeKtiA+IHdhbmdldHN1am91XCA7CivnlJ/msqHlubQgPiBzZWlib3RzdW5lblwgOwor5Y2Y5LiA5oCnID4gdGFuJydpdHN1c2VpXCA7CivmjIHntprlipsgPiBqaXpva3VyeW9rdVwgOwor5paw6IGe5qWtID4gc2hpbmJ1bmd5b3VcIDsKK+elnue1jOaguCA+IHNoaW5rZWlrYWt1XCA7CivmnqLou7jlm70gPiBzdXVqaWt1a29rdVwgOwor5LiJ6Imy54mIID4gc2Fuc2hva3ViYW5cIDsKK+ebtOims+eahCA+IGNob2trYW50ZWtpXCA7CivkuK3plpPpp4UgPiBjaHV1a2FuJydla2lcIDsKK+iDveijheadnyA+IG5vdXNob3V6b2t1XCA7CivntZDmmbblraYgPiBrZXNzaG91Z2FrdVwgOwor6Kej5rG65rOVID4ga2Fpa2V0c3Vob3VcIDsKK+itpuaIkuiJsiA+IGtlaWthaXNob2t1XCA7CivkuIDmr5vkvZwgPiBpY2hpbW91c2FrdVwgOwor5rip54ax5oCnID4gb24nJ25ldHN1c2VpXCA7CivlhoXlj43ohJogPiBuYWloYW5reWFrdVwgOwor5bu257iE5ryBID4gaGFlbmF3YXJ5b3VcIDsKK+ebtOaWueS9kyA+IGNob2t1aG91dGFpXCA7Civlrrbml4/pgZQgPiBrYXpva3V0YWNoaVwgOwor5Yi65r+A55qEID4gc2hpZ2VraXRla2lcIDsKK+S6pOaPm+WxgCA+IGtvdWthbmt5b2t1XCA7CivkuIPlubTlv4wgPiBzaGljaGluZW5raVwgOwor5oKq5oiv5pu4ID4gaXRhenVyYWdha2lcIDsKK+WNg+S6uumHnSA+IHNlbicnbmluYmFyaVwgOwor5raI5q+S5rayID4gc2hvdWRva3Vla2lcIDsKK+ayueegpeefsyA+IGFidXJhdG9pc2hpXCA7Civni5DppYLpo6kgPiBraXRzdW5ldWRvblwgOwor5ZCI5bee5Zu9ID4gZ2Fzc2h1dWtva3VcIDsKK+a/g+ikkOiJsiA+IG5vdWthc3Nob2t1XCA7CivmnZDmnKjllYYgPiB6YWltb2t1c2hvdVwgOwor5Y6f6Imy54mIID4gZ2Vuc2hva3ViYW5cIDsKK+WNmOmgheW8jyA+IHRhbmtvdXNoaWtpXCA7CivlnJ/msJfoibIgPiB0c3VjaGlrZWlyb1wgOwor5LuY5bGe56+AID4gZnV6b2t1c2V0c3VcIDsKK+S4gOeVqum2jyA+IGljaGliYW5kb3JpXCA7CivntIvnq6DlraYgPiBtb25zaG91Z2FrdVwgOwor55yf5Y+q5LitID4gbWF0dGFkYW5ha2FcIDsKK+WHuuW4reiAhSA+IHNodXNzZWtpc2hhXCA7CivploDliY3nlLogPiBtb256ZW5tYWNoaVwgOwor5pWZ6KiT55qEID4ga3lvdWt1bnRla2lcIDsKK+iyr+mHkeWxgCA+IGNob2tpbmt5b2t1XCA7Civlrpjlg5roh60gPiBrYW5yeW91c2h1dVwgOwor6LmE6YmE5belID4gdGVpdGV0c3Vrb3VcIDsKK+elnue1jOWtpiA+IHNoaW5rZWlnYWt1XCA7CivooajnjoTplqIgPiBvbW90ZWdlbmthblwgOwor5Ye65by15bqXID4gc2h1dGNob3V0ZW5cIDsKK+aXheihjOmehCA+IHJ5b2tvdWthYmFuXCA7CivljJfjgIXmnbEgPiBob2t1aG9rdXRvdVwgOwor5rib5aGp6aOfID4gZ2VuJydlbnNob2t1XCA7Civlm6PkvZPlrqIgPiBkYW50YWlreWFrdVwgOwor5b+D6ZyK5a2mID4gc2hpbnJlaWdha3VcIDsKK+Wkp+ato+eQtCA+IHRhaXNob3Vnb3RvXCA7CivmrKDli6TnjocgPiBrZWtraW5yaXRzdVwgOwor5a6a552A5YmkID4gdGVpY2hha3V6YWlcIDsKK+WFpeWgtOaWmSA+IG55dXVqb3VyeW91XCA7CivpgJDoqp7oqLMgPiBjaGlrdWdveWFrdVwgOwor5oCd6ICD5YqbID4gc2hpa291cnlva3VcIDsKK+S5s+eUqOeJmyA+IG55dXV5b3VneXV1XCA7CivmraPopprlnYogPiBzaG91Z2FrdWJvdVwgOwor57eR6Je76aGeID4gcnlva3Vzb3VydWlcIDsKK+ebruaSg+iAhSA+IG1va3VnZWtpc2hhXCA7Civpu5Lmm5znn7MgPiBrb2t1eW91c2VraVwgOwor5rqA5LiA5bm0ID4gbWFuJydpY2hpbmVuXCA7CivmsqHmiJHnmoQgPiBib3RzdWdhdGVraVwgOwor5ZCr5aG1546HID4gZ2Fuamlucml0c3VcIDsKK+mAgOiBt+iAhSA+IHRhaXNob2t1c2hhXCA7CivolLXlsYvmlbcgPiBrdXJheWFzaGlraVwgOwor5YaN5bu656+JID4gc2Fpa2VuY2hpa3VcIDsKK+eMrui6q+eahCA+IGtlbnNoaW50ZWtpXCA7CivlpqjlrrPniakgPiBib3VnYWlidXRzdVwgOwor54K555y86JasID4gdGVuZ2FuJyd5YWt1XCA7CivlhYPpppbnm7ggPiBtb3Rvc2h1c2hvdVwgOwor5oGQ5rC055eFID4ga3lvdXN1aWJ5b3VcIDsKK+WvhuWjsuWTgSA+IG1pdHN1YmFpaGluXCA7Civnn7Plt53nnIwgPiBpc2hpa2F3YWtlblwgOwor5Ymv5Lya6ZW3ID4gZnVrdWthaWNob3VcIDsKK+eZuuaYjuiAhSA+IGhhdHN1bWVpc2hhXCA7CivlibXkvZznmoQgPiBzb3VzYWt1dGVraVwgOwor5aSn6YCG572qID4gdGFpZ3lha3V6YWlcIDsKK+S4gOWFg+eahCA+IGljaGlnZW50ZWtpXCA7Civnmb7pnaLnm7ggPiBoeWFrdW1lbnNvdVwgOwor5LiN5L6155WlID4gZnVzaGlucnlha3VcIDsKK+Wwj+WtpueUnyA+IHNob3VnYWt1c2VpXCA7Civku5jlsZ7niakgPiBmdXpva3VidXRzdVwgOwor5YuJ5by35LitID4gYmVua3lvdWNodXVcIDsKK+WGmeecn+W4syA+IHNoYXNoaW5jaG91XCA7CivkuIDnm67mlaMgPiBpY2hpbW9rdXNhblwgOwor6aKo5Yqb6KiIID4gZnV1cnlva3VrZWlcIDsKK+a0u+eUqOW9oiA+IGthdHN1eW91a2VpXCA7Civoh6rli5XmiYkgPiBqaWRvdXRvYmlyYVwgOwor5Lya56S+56uLID4ga2Fpc2hhcml0c3VcIDsKK+imi+ebruW9oiA+IG1pbWVrYXRhY2hpXCA7CivpkZHliKXmiYAgPiBrYW5iZXRzdXNob1wgOwor5Luu5aWR57SEID4ga2FyaWtlaXlha3VcIDsKK+aguOaLoeaVoyA+IGtha3VrYWt1c2FuXCA7Civlkajovrrlm70gPiBzaHV1aGVua29rdVwgOwor5b+F54S25oCnID4gaGl0c3V6ZW5zZWlcIDsKK+m7kueMqeeMqSA+IGt1cm9zaG91am91XCA7CivkuKHmm7/llYYgPiByeW91Z2Flc2hvdVwgOwor6ISx6Imy5YmkID4gZGFzc2hva3V6YWlcIDsKK+WPs+W/g+WupCA+IHVzaGluc2hpdHN1XCA7CivkuK3lpK7lj6MgPiBjaHV1b3VndWNoaVwgOwor55yf6I+M55eHID4gc2hpbmtpbnNob3VcIDsKK+Wcp+WKm+azoiA+IGF0c3VyeW9rdWhhXCA7Civlhajlm73nmoQgPiB6ZW5rb2t1dGVraVwgOwor57iE5qKv5a2QID4gbmF3YWJhc2hpZ29cIDsKK+aIkeeJqemhlCA+IHdhZ2Ftb25vZ2FvXCA7Civpo5/loILou4ogPiBzaG9rdWRvdXNoYVwgOwor5ZaE55+l6K2YID4gemVuY2hpc2hpa2lcIDsKK+S4gOWGhuacrSA+IGljaGllbnNhdHN1XCA7CivoppbogbToppogPiBzaGljaG91a2FrdVwgOwor6ICQ54ax6Yu8ID4gdGFpbmV0c3Vrb3VcIDsKK+mdqeWRveeahCA+IGtha3VtZWl0ZWtpXCA7CivlsI/kvJHmraIgPiBzaG91a3l1dXNoaVwgOwor5aW95Y+W57WEID4ga291dG9yaWt1bWlcIDsKK+WNmuWlleWuvyA+IGJha3VjaGl5YWRvXCA7CivohLPosqfooYAgPiBub3VoaW5rZXRzdVwgOwor5oKq44CF5oivID4gd2FydWl0YXp1cmFcIDsKK+a0l+ekvOW8jyA+IHNlbnJlaXNoaWtpXCA7CivnlLLpqqjmlocgPiBrb3Vrb3RzdWJ1blwgOwor5pel6YqA5Yi4ID4gbmljaGlnaW5rZW5cIDsKK+iyp+awkeeqnyA+IGhpbm1pbmt1dHN1XCA7CivlpYnnjK7niakgPiBob3VrZW5idXRzdVwgOwor5a6f5qWt5a62ID4gaml0c3VneW91a2FcIDsKK+iDuOeul+eUqCA+IG11bmV6YW4nJ3lvdVwgOwor5Yas5pyo56uLID4gZnV5dWtvZGFjaGlcIDsKK+e1kOe0ruezuCA+IGtlc3NhdHN1c2hpXCA7CivpgIblrqPkvJ0gPiBneWFrdXNlbmRlblwgOwor6a6u57SF6ImyID4gc2Vua291c2hva3VcIDsKK+WFpeWbveeojiA+IG55dXVrb2t1emVpXCA7Civmi6HlpKfpj6EgPiBrYWt1ZGFpa3lvdVwgOwor6YGT5qW96ICFID4gZG91cmFrdW1vbm9cIDsKK+Wls+aIv+W9uSA+IG55b3Vib3V5YWt1XCA7CivmnaHntITlm70gPiBqb3V5YWt1a29rdVwgOwor5Luj5pu/54mpID4gZGFpdGFpYnV0c3VcIDsKK+a3t+WHneWcnyA+IGtvbmt1cml6ZXRvXCA7Civmtojmr5LliaQgPiBzaG91ZG9rdXphaVwgOwor5LiH6IO96JasID4gbWFuJydub3V5YWt1XCA7Civkv6HmhpHmgKcgPiBzaGlucHlvdXNlaVwgOwor5YiX5Lyd5L2TID4gcmV0c3VkZW50YWlcIDsKK+WPo+WPr+eskSA+IGt1Y2hpb2thc2hpXCA7Civlrp/nlJ/mtLsgPiBqaXNzZWlrYXRzdVwgOwor55m+5aeT5a62ID4gaHlha3VzaG91eWFcIDsKK+S4gOWxgOmDqCA+IGljaGlreW9rdWJ1XCA7CivplpPkuIDpq6ogPiBrYW4nJ2lwcGF0c3VcIDsKK+W5tOagvOWlvSA+IHRvc2hpa2Fra291XCA7CivpjqfkuIDlhbcgPiB5b3JvaWljaGlndVwgOwor55S65Lq654mpID4gY2hvdW5pbm1vbm9cIDsKK+mAmuios+WumCA+IHRzdXV5YWt1a2FuXCA7Civlv4XopoHmgqogPiBoaXRzdXlvdWFrdVwgOwor6YmE6YGT57ayID4gdGV0c3Vkb3Vtb3VcIDsKK+WOn+eUo+eJqSA+IGdlbnNhbmJ1dHN1XCA7Civlmajmpb3mm7IgPiBraWdha3VreW9rdVwgOwor5b+F6KaB5oCnID4gaGl0c3V5b3VzZWlcIDsKK+WNiumdouitmCA+IGhhbm1lbnNoaWtpXCA7CivlpKLlv4PlnLAgPiB5dW1lZ29rb2NoaVwgOwor5LuK6YCx5LitID4ga29uc2h1dWNodXVcIDsKK+ipseS4i+aJiyA+IGhhbmFzaGliZXRhXCA7CivpmLLonZXliaQgPiBib3VzaG9rdXphaVwgOwor5bCP5LmX55qEID4gc2hvdWpvdXRla2lcIDsKK+eri+iEmueCuSA+IHJpa2t5YWt1dGVuXCA7CivkuI3kv6Hlrp8gPiBmdXNoaW5qaXRzdVwgOwor5LqJ5aWq5oimID4gc291ZGF0c3VzZW5cIDsKK+WVhuWtpuWjqyA+IHNob3VnYWt1c2hpXCA7CivkuIrlsYvmlbcgPiBrYW1peWFzaGlraVwgOwor6Iul5aSn5bCGID4gd2FrYWRhaXNob3VcIDsKK+aTjeiIteWupCA+IHNvdWRhc2hpdHN1XCA7CivmiJDkurrlvI8gPiBzZWlqaW5zaGlraVwgOwor5paw6Z2i55uuID4gc2hpbm1lbm1va3VcIDsKK+azqOaWh+acjSA+IGNodXVtb25mdWt1XCA7CivkuIrmo5/lvI8gPiBqb3V0b3VzaGlraVwgOwor6LWk6YqF6ImyID4gc2hha3Vkb3Vpcm9cIDsKK+WQkeWtpuW/gyA+IGtvdWdha3VzaGluXCA7CivmuIfmnJvogIUgPiBrYXRzdWJvdXNoYVwgOwor5rG957y25a6kID4ga2lrYW5zaGl0c3VcIDsKK+Wft+mBlOWQjyA+IHNoaXR0YXRzdXJpXCA7CivkuZflv4PlnLAgPiBub3JpZ29rb2NoaVwgOwor5byU56Wt5paZID4gY2hvdXNhaXJ5b3VcIDsKK+WIuuaIn+eahCA+IHNoaWdla2l0ZWtpXCA7CivkuIvmpJzliIYgPiBzaGl0YWtlbmJ1blwgOwor6ZaL5YKs5byPID4ga2Fpc2Fpc2hpa2lcIDsKK+eUsOiIjuWomCA+IGluYWthbXVzdW1lXCA7CivnrrHngavpiaIgPiBoYWtvaGliYWNoaVwgOwor5Ymv6aaW55u4ID4gZnVrdXNodXNob3VcIDsKK+aVteaEvuW/gyA+IHRla2lnYWlzaGluXCA7Civph4jnqbrmtbcgPiBzaGFrdWt1dWthaVwgOwor5YyX5YyX6KW/ID4gaG9rdWhva3VzZWlcIDsKK+e1hOe5lOelqCA+IHNvc2hpa2loeW91XCA7Civlh7rouqvogIUgPiBzaHVzc2hpbnNoYVwgOwor5LuV5LqL6YePID4gc2hpZ290b3J5b3VcIDsKK+WNiuaciOW9oiA+IGhhbmdldHN1a2VpXCA7CivliIblrZDoqqwgPiBidW5zaGlzZXRzdVwgOwor5Y2K5pyI5byBID4gaGFuZ2V0c3ViZW5cIDsKK+ato+etlOeOhyA+IHNlaXRvdXJpdHN1XCA7CivlraPnr4DnmoQgPiBraXNldHN1dGVraVwgOwor5Y6f5a2Q6KqsID4gZ2Vuc2hpc2V0c3VcIDsKK+elnuWYl+elrSA+IGthbicnbmFtZXNhaVwgOwor5qGn6Iie5Y+wID4gaGlub2tpYnV0YWlcIDsKK+WvvuWxgOiAhSA+IHRhaWt5b2t1c2hhXCA7Civosp3mrrvpqqggPiBrYWlnYXJhYm9uZVwgOwor5Y2D5Lih566xID4gc2VucnlvdWJha29cIDsKK+e0lOWPjuWFpSA+IGp1bnNodXVueXV1XCA7CivniannkIbnmoQgPiBidXRzdXJpdGVraVwgOwor5p6X55Sj54mpID4gcmluc2FuYnV0c3VcIDsKK+eqgeeEtuatuyA+IHRvdHN1emVuc2hpXCA7CivoqLzlj5bms5UgPiBzaG91dG9yaWhvdVwgOwor5q205Y+y55qEID4gcmVraXNoaXRla2lcIDsKK+e1hOe5lOeahCA+IHNvc2hpa2l0ZWtpXCA7CivotIjlkYjlvI8gPiB6b3V0ZWlzaGlraVwgOwor56mN6LyJ6YePID4gc2VraXNhaXJ5b3VcIDsKK+iHqueZuueahCA+IGppaGF0c3V0ZWtpXCA7CivlnJ/nn7PmtYEgPiBkb3Nla2lyeXV1XCA7CivluILnlLrmnZEgPiBzaGljaG91c29uXCA7Civpo5/loanmsLQgPiBzaG9rdWVuc3VpXCA7CivmvaTmu5HmsrkgPiBqdW5rYXRzdXl1XCA7CivmtYHmmJ/nvqQgPiByeXV1c2VpZ3VuXCA7CivlpZHntITph5EgPiBrZWl5YWt1a2luXCA7CivmsbrorbDmlocgPiBrZXRzdWdpYnVuXCA7CivokrjnlZnphZIgPiBqb3VyeXV1c2h1XCA7Civph53okYnmqLkgPiBzaGluJyd5b3VqdVwgOwor54yb5YuJ5by3ID4gbW91YmVua3lvdVwgOwor5rex5Yi75YyWID4gc2hpbmtva3VrYVwgOwor5omA5b6X6aGUID4gdG9rb3JvZWdhb1wgOwor5b6h5a6i5qeYID4gb2t5YWt1c2FtYVwgOwor6JS15pu456WoID4gem91c2hvaHlvdVwgOwor5Lq65bel6ZuqID4gamlua291eXVraVwgOwor5ZCM6IW55LuUID4gZG91ZnVrdXNoaVwgOwor5bCE5YCW5b+DID4gc2hha291c2hpblwgOwor5Y2a5aOr5Y+3ID4gaGFrdXNoaWdvdVwgOwor5YWl5ryB6ICFID4gbnl1dWd5b3NoYVwgOwor5Yil6Zmk5qipID4gYmV0c3Vqb2tlblwgOwor5oim6ZeY5pyNID4gc2VudG91ZnVrdVwgOwor6aSK6baP5qWtID4geW91a2VpZ3lvdVwgOwor6K2w5rG65qipID4gZ2lrZXRzdWtlblwgOwor5YWl5ZyS5paZID4gbnl1dWVucnlvdVwgOwor5YSq5YWI55qEID4geXV1c2VudGVraVwgOwor5ZCM5LiA6KaWID4gZG91aXRzdXNoaVwgOwor6Zuj6KGM6YGTID4gbmFuZ3lvdWRvdVwgOwor6YG65aSx5ZOBID4gaXNoaXRzdWhpblwgOwor6aOf5paH5YyWID4gc2hva3VidW5rYVwgOwor5rCR5Li75Zu9ID4gbWluc2h1a29rdVwgOwor5YaN5biw54axID4gc2Fpa2luZXRzdVwgOwor54Kt5YyW54mpID4gdGFua2FidXRzdVwgOwor5pat54mH55qEID4gZGFucGVudGVraVwgOwor5rq65q275L2TID4gZGVraXNoaXRhaVwgOwor5rW35rSL5a2mID4ga2FpeW91Z2FrdVwgOwor5q2v56We57WMID4gc2hpc2hpbmtlaVwgOwor5Y+N5oqX55qEID4gaGFua291dGVraVwgOwor6ZaL5YKs5Zu9ID4ga2Fpc2Fpa29rdVwgOwor5b6h5Lih6KaqID4gZ29yeW91c2hpblwgOwor5L+u5q2j5rayID4gc2h1dXNlaWVraVwgOwor5Y6a55Sf55yBID4ga291c2Vpc2hvdVwgOwor6auY57Sa6LuKID4ga291a3l1dXNoYVwgOwor6Luf5paH5a2mID4gbmFuYnVuZ2FrdVwgOwor6Kmm5L2c5ZOBID4gc2hpc2FrdWhpblwgOwor6Kaz6Kan5paZID4ga2FucmFucnlvdVwgOwor5LiN5L+h5Lu7ID4gZnVzaGluJyduaW5cIDsKK+S4ieiEmuaetiA+IHNhbmt5YWt1a2FcIDsKK+WkieaFi+eahCA+IGhlbnRhaXRla2lcIDsKK+S5numrmOiplSA+IGtvdWtvdWh5b3VcIDsKK+avm+awiOiLlCA+IG1vdXNlbmdva2VcIDsKK+S4ieWwuuW4ryA+IHNhbmpha3VvYmlcIDsKK+W/nOaApeetliA+IG91a3l1dXNha3VcIDsKK+S6uumBk+eahCA+IGppbmRvdXRla2lcIDsKK+a1t+mFuOa8vyA+IHVtaWhvb3p1a2lcIDsKK+aJv+iqjeeKtiA+IHNob3VuaW5qb3VcIDsKK+maj+ethuWutiA+IHp1aWhpdHN1a2FcIDsKK+aguOiejeWQiCA+IGtha3V5dXVnb3VcIDsKK+aKvemBuOWIuCA+IGNodXVzZW5rZW5cIDsKK+WFjeioseiovCA+IG1lbmt5b3Nob3VcIDsKK+e+juWuueihkyA+IGJpeW91anV0c3VcIDsKK+ijj+iyuOWxiyA+IHVyYWdhc2hpeWFcIDsKK+mYsuavkumdoiA+IGJvdWRva3VtZW5cIDsKK+W8geaFtuifuSA+IGJlbmtlaWdhbmlcIDsKK+S6jOe3muW8jyA+IG5pc2Vuc2hpa2lcIDsKK+W/heimgeS6iyA+IGhpdHN1eW91amlcIDsKK+eZuuaYjuWutiA+IGhhdHN1bWVpa2FcIDsKK+eLrOijgeiAhSA+IGRva3VzYWlzaGFcIDsKK+ecuuacm+aoqSA+IGNob3Vib3VrZW5cIDsKK+WGhemAmuiAhSA+IG5haXRzdXVzaGFcIDsKK+S4remVt+acnyA+IGNodXVjaG91a2lcIDsKK+ePvuixoeirliA+IGdlbnNob3Vyb25cIDsKK+mtlOihk+W4qyA+IG1hanV0c3VzaGlcIDsKK+WbveWcn+W6gSA+IGtva3Vkb2Nob3VcIDsKK+epjeWIhuazlSA+IHNla2lidW5ob3VcIDsKK+S/oeWPt+eBryA+IHNoaW5nb3V0b3VcIDsKK+WNiumZsOmZvSA+IGhhbicnaW4nJ3lvdVwgOwor5bmz6Z2i6Y+hID4gaGVpbWVua3lvdVwgOwor5a6F6YWN5L6/ID4gdGFrdWhhaWJpblwgOwor6JCO57iu55eHID4gaXNodWt1c2hvdVwgOwor5aSp55uu5bGxID4gdGVubW9rdXphblwgOwor5YGP5bmz6LazID4gaGVucGVpc29rdVwgOwor5rOV5a2m5aOrID4gaG91Z2FrdXNoaVwgOwor55m654WZ562SID4gaGF0c3VlbnRvdVwgOwor5YG06aCt6JGJID4gc29rdXRvdXlvdVwgOwor5aSp55qH5p2vID4gdGVuJydub3VoYWlcIDsKK+e0sOiDnuaguCA+IHNhaWJvdWtha3VcIDsKK+eLrOaTheWgtCA+IGRva3VzZW5qb3VcIDsKK+ijvemLvOalrSA+IHNlaWtvdWd5b3VcIDsKK+WFieeGseiyuyA+IGtvdW5ldHN1aGlcIDsKK+aEm+mDt+W/gyA+IGFpa3lvdXNoaW5cIDsKK+eUn+eUo+mrmCA+IHNlaXNhbmRha2FcIDsKK+a1t+awtOa1tCA+IGthaXN1aXlva3VcIDsKK+S7rue5g+W4ryA+IGthcmlob3V0YWlcIDsKK+WPiuesrOiAhSA+IGt5dXVkYWlzaGFcIDsKK+exs+mZuOi7jSA+IGJlaXJpa3VndW5cIDsKK+azqOaWh+WTgSA+IGNodXVtb25oaW5cIDsKK+aBkuW4uOeahCA+IGtvdWpvdXRla2lcIDsKK+S6uuW9ouW4qyA+IG5pbmd5b3VzaGlcIDsKK+amtOaVo+W8viA+IHJ5dXVzYW5kYW5cIDsKK+eZuumbu+apnyA+IGhhdHN1ZGVua2lcIDsKK+aXp+W4guihlyA+IGt5dXVzaGlnYWlcIDsKK+ims+imp+W4rSA+IGthbnJhbnNla2lcIDsKK+Wun+eUqOWMliA+IGppdHN1eW91a2FcIDsKK+iAg+ePvuWtpiA+IGtvdWdlbmdha3VcIDsKK+mWi+WCrOS4rSA+IGthaXNhaWNodXVcIDsKK+eUo+alreeVjCA+IHNhbmd5b3VrYWlcIDsKK+W6tuawkeWKhyA+IHNob21pbmdla2lcIDsKK+S4jeS7leacqyA+IGZ1c2hpbWF0c3VcIDsKK+WRhuawl+iAhSA+IHV0c3VrZW1vbm9cIDsKK+ino+WJluWtpiA+IGthaWJvdWdha3VcIDsKK+S7ruWfi+iRrCA+IGthcmltYWlzb3VcIDsKK+mHo+mBk+WFtyA+IHRzdXJpZG91Z3VcIDsKK+eUn+eUo+mhjSA+IHNlaXNhbmdha3VcIDsKK+aCsuWKh+eahCA+IGhpZ2VraXRla2lcIDsKK+WMl+awt+a0iyA+IGhvcHB5b3V5b3VcIDsKK+WNgeS6jOaciCA+IGp1dW5pZ2F0c3VcIDsKK+WQjOWtpuW5tCA+IGRvdWdha3VuZW5cIDsKK+ePvuS7o+eahCA+IGdlbmRhaXRla2lcIDsKK+WkouWIpOaWrSA+IHl1bWVoYW5kYW5cIDsKK+Wys+WPi+S8miA+IGdha3V5dXVrYWlcIDsKK+WLmOWumuWwuyA+IGthbmpvdWppcmlcIDsKK+WQiOWuv+aJgCA+IGdhc3NodWt1am9cIDsKK+igseaDkeeahCA+IGtvd2FrdXRla2lcIDsKK+epuumWk+i7uCA+IGt1dWthbmppa3VcIDsKK+S4remWk+WxpCA+IGNodXVrYW5zb3VcIDsKK+eJuee0mumFkiA+IHRva2t5dXVzaHVcIDsKK+e9suWQjeWbvSA+IHNob21laWtva3VcIDsKK+a8lOWKh+eahCA+IGVuZ2VraXRla2lcIDsKK+S6pOaIpuWbvSA+IGtvdXNlbmtva3VcIDsKK+WkluW9oueahCA+IGdhaWtlaXRla2lcIDsKK+S4remWk+WtkCA+IGNodXVrYW5zaGlcIDsKK+aVtOa1geWtkCA+IHNlaXJ5dXVzaGlcIDsKK+WEquWFiOagqiA+IHl1dXNlbmthYnVcIDsKK+efreWFteaApSA+IHRhbnBlaWt5dXVcIDsKK+W8geaFtue4niA+IGJlbmtlaWppbWFcIDsKK+eJoeS4uembqiA+IGJvdGFuJyd5dWtpXCA7CivmlpzmoLzmgKcgPiBzaGFrYWt1c2VpXCA7Civpq5jop5LnoLIgPiBrb3VrYWt1aG91XCA7CivmrbTlubTpvaIgPiByZWtpbmVucmVpXCA7CivnhKHliIbliKUgPiBtdWZ1bmJldHN1XCA7CivliLrmiJ/mgKcgPiBzaGlnZWtpc2VpXCA7CivpgJrooYznqI4gPiB0c3V1a291emVpXCA7CivotoXoh6rnhLYgPiBjaG91c2hpemVuXCA7CivliYrmsLfmqZ8gPiBzYWt1aHlvdWtpXCA7CivlpZHntITogIUgPiBrZWl5YWt1c2hhXCA7CivlpJznm5fomasgPiB5b3RvdW11c2hpXCA7CivlronlhajnjocgPiBhbnplbnJpdHN1XCA7Civljp/lrZDnl4cgPiBnZW5zaGlzaG91XCA7Civljp/lrZDnl4UgPiBnZW5zaGlieW91XCA7CivlraPnr4DmhJ8gPiBraXNldHN1a2FuXCA7Civml6fli5jlrpogPiBreXV1a2Fuam91XCA7Civku67oqr/ljbAgPiBrYXJpY2hvdWluXCA7CivkuZfou4ros4MgPiBqb3VzaGFjaGluXCA7CivpmLLomavliaQgPiBib3VjaHV1emFpXCA7CivmoLjmiKbkuokgPiBrYWt1c2Vuc291XCA7Civnmbrlo7Lml6UgPiBoYXRzdWJhaWJpXCA7CivlrprotrPmlbAgPiB0ZWlzb2t1c3V1XCA7Civph4znpZ7mpb0gPiBzYXRva2FndXJhXCA7CivolqnmkanoiosgPiBzYXRzdW1haW1vXCA7Civlp6bpgJrnvaogPiBrYW50c3V1emFpXCA7CivlsbHmnpflraYgPiBzYW5yaW5nYWt1XCA7Civlia/orbDplbcgPiBmdWt1Z2ljaG91XCA7CivoiKrnqbrnl4UgPiBrb3VrdXVieW91XCA7CivmvKLotorpn7MgPiBrYW4nJ2V0c3VvblwgOwor5Ye65YWl5Y+jID4gZGVpcmlndWNoaVwgOwor5Luu57SN56iOID4ga2FyaW5vdXplaVwgOwor57eP5ZCI55qEID4gc291Z291dGVraVwgOwor5Luy6KOB6ICFID4gY2h1dXNhaXNoYVwgOwor5Ye65bGV6ICFID4gc2h1dHRlbnNoYVwgOwor5rS75a2X5L2TID4ga2F0c3VqaXRhaVwgOwor6IKY6YmE56CyID4gaGlqaWRlcHBvdVwgOwor5a++6Lmg5ZywID4gdGFpc2VraWNoaVwgOwor5bu75ryV5qWtID4ga2Fpc291Z3lvdVwgOwor5L2O6Zqc56KNID4gdGVpc2hvdWdhaVwgOwor5q6L5L2Z6aGNID4gemFuJyd5b2dha3VcIDsKK+ayu+eZguazlSA+IGNoaXJ5b3Vob3VcIDsKK+apn+aisOayuSA+IGtpa2FpYWJ1cmFcIDsKK+iHqueZuuaApyA+IGppaGF0c3VzZWlcIDsKK+S/oeWPt+aJiyA+IHNoaW5nb3VzaHVcIDsKK+agg+acqOecjCA+IHRvY2hpZ2lrZW5cIDsKK+iqv+afu+elqCA+IGNob3VzYWh5b3VcIDsKK+e3qOW5tOWPsiA+IGhlbicnbmVuc2hpXCA7CivlnJ/nnYDmsJEgPiBkb2NoYWt1bWluXCA7CivpgLLlkYjmnKwgPiBzaGludGVpYm9uXCA7CivnkZ7lrp3nq6AgPiB6dWlob3VzaG91XCA7CivokL3pgbjogIUgPiByYWt1c2Vuc2hhXCA7CivlhoXli5jlrpogPiB1Y2hpa2Fuam91XCA7CivlpYnntI3poY0gPiBob3Vub3VnYWt1XCA7CivntLDog57lraYgPiBzYWlib3VnYWt1XCA7Civmnpzlrp/lupcgPiBrYWppdHN1dGVuXCA7Civlrp/mmYLplpMgPiBqaXRzdWppa2FuXCA7CivlhaXmvIHmqKkgPiBueXV1Z3lva2VuXCA7CivokZfkvZzogIUgPiBjaG9zYWt1c2hhXCA7CivohLHohILkubMgPiBkYXNzaGlueXV1XCA7Civnpa3npYDmlpkgPiBzYWlzaGlyeW91XCA7CivlhoXlvIHmhbYgPiB1Y2hpYmVua2VpXCA7CivlkJHkuIrlv4MgPiBrb3Vqb3VzaGluXCA7CivniafnvorogIUgPiBib2t1eW91c2hhXCA7Civlj4LoprPkurogPiBzYW5rYW4nJ25pblwgOwor5Z2H5LiA5YyWID4ga2luJydpdHN1a2FcIDsKK+WFseWQjOiAhSA+IGt5b3Vkb3VzaGFcIDsKK+aYjuacneS9kyA+IG1pbmNob3V0YWlcIDsKK+WhqeiDoeakkiA+IHNoaW9rb3Nob3VcIDsKK+iAkOmch+aApyA+IHRhaXNoaW5zZWlcIDsKK+aWsOilv+iYrSA+IG55xatqxKtyYW5kb1wgOwor5LiA5p6a6LKdID4gaWNoaW1haWdhaVwgOwor5Lmx5pq06ICFID4gcmFuYm91bW9ub1wgOwor5ZCE5LiA6YOoID4ga2FrdWljaGlidVwgOwor6Zmw5pel5ZCRID4ga2FnZWhpbmF0YVwgOwor57Sr5a645q6/ID4gc2hpc2hpbmRlblwgOwor5bm96ZyK5qCqID4geXV1cmVpa2FidVwgOwor5omA5b6X6ICFID4gc2hvdG9rdXNoYVwgOwor6LuN5LqL5YqbID4gZ3VuamlyeW9rdVwgOwor5Yud6LKg5LqLID4gc2hvdWJ1Z290b1wgOwor57Wm5rC06LuKID4ga3l1dXN1aXNoYVwgOwor57Sw6IOe5aOBID4gc2FpYm91aGVraVwgOwor5Y+v6YCG5oCnID4ga2FneWFrdXNlaVwgOwor5oe46LOe6YeRID4ga2Vuc2hvdWtpblwgOwor5pqm5bm06b2iID4gcmVraW5lbnJlaVwgOwor5ZCr5Ze96JasID4gZ2Fuc291eWFrdVwgOwor6KaL5a2m6ICFID4ga2VuZ2FrdXNoYVwgOwor5YSq5YWI5bitID4geXV1c2Vuc2VraVwgOwor5bCR5pWw6ICFID4gc2hvdXN1dXNoYVwgOwor5YWx5ZCM57eaID4ga3lvdWRvdXNlblwgOwor5Y+K56ys54K5ID4ga3l1dWRhaXRlblwgOwor5YiG6aGe6KGoID4gYnVucnVpaHlvdVwgOwor6L+R55y86Y+hID4ga2luZ2Fua3lvdVwgOwor6Zai5pWw5pePID4ga2Fuc3V1em9rdVwgOwor55S65p2R5Yi2ID4gY2hvdXNvbnNlaVwgOwor5qW15oKq5Lq6ID4gZ29rdWFrdW5pblwgOwor5byV5Y+X5Lq6ID4gaGlraXVrZW5pblwgOwor57eo5bm05L2TID4gaGVuJyduZW50YWlcIDsKK+S7o+mhmOS6uiA+IGRhaWdhbicnbmluXCA7CivmnInlipvppqwgPiB5dXVyeW9rdWJhXCA7CivpmaTpm6rou4ogPiBqb3NldHN1c2hhXCA7CivlpKflr6npmaIgPiBkYWlzaGluJydpblwgOwor56iO6Zai6ZW3ID4gemVpa2FuY2hvdVwgOwor5Lit6ZaT5L2TID4gY2h1dWthbnRhaVwgOwor5ruL6aSK54mpID4gaml5b3VidXRzdVwgOwor5Lmd5bel5aSnID4ga3l1dWtvdWRhaVwgOwor5Yqg5rm/5ZmoID4ga2FzaGl0c3VraVwgOwor5paw6KiC54mIID4gc2hpbnRlaWJhblwgOwor5Y2B5Lq65YqbID4ganV1bmlucmlraVwgOwor5LiL5a6/5Lq6ID4gZ2VzaHVrdW5pblwgOwor5aSn5qWt54mpID4gb293YXphbW9ub1wgOwor5YG06Z2i6KazID4gc29rdW1lbmthblwgOwor54++6LGh55WMID4gZ2Vuc2hvdWthaVwgOwor6L+96Kmm6aiTID4gdHN1aXNoaWtlblwgOwor5YWI5aSp55qEID4gc2VudGVudGVraVwgOwor5bu656+J5a62ID4ga2VuY2hpa3VrYVwgOwor5rC06YeP6KiIID4gc3VpcnlvdWtlaVwgOwor6Kaq6KGb6ZqKID4gc2hpbicnZWl0YWlcIDsKK+WFiOWkqeeXhSA+IHNlbnRlbmJ5b3VcIDsKK+e5geauluacnyA+IGhhbnNob2t1a2lcIDsKK+iIueW5vemciiA+IGZ1bmF5dXVyZWlcIDsKK+awkeaXj+aApyA+IG1pbnpva3VzZWlcIDsKK+W+oeS6huaJvyA+IGdvcnlvdXNob3VcIDsKK+awtOibh+W6pyA+IG1penVoZWJpemFcIDsKK+aLneWklueahCA+IGhhaWdhaXRla2lcIDsKK+WIuuaIn+WJpCA+IHNoaWdla2l6YWlcIDsKK+aJgOW+l+eojiA+IHNob3Rva3V6ZWlcIDsKK+ajieWun+ayuSA+IG1lbmppdHN1eXVcIDsKK+WLpOe2muiAhSA+IGtpbnpva3VzaGFcIDsKK+Wkqeeah+WItiA+IHRlbicnbm91c2VpXCA7CivllqvnhZnou4ogPiBraXRzdWVuc2hhXCA7Civlrp/nv5LnlJ8gPiBqaXNzaHV1c2VpXCA7CivkvZPns7vnmoQgPiB0YWlrZWl0ZWtpXCA7CivpgYroiIjnqI4gPiB5dXVreW91emVpXCA7Civkv67pgZPlo6sgPiBzaHV1ZG91c2hpXCA7CivmlrDmlZnlvpIgPiBzaGlua3lvdXRvXCA7CivljZropqfkvJogPiBoYWt1cmFua2FpXCA7CivliY3nmbvpjLIgPiB6ZW50b3Vyb2t1XCA7CivmnbHmtIvlraYgPiB0b3V5b3VnYWt1XCA7CivlpKflsIbou40gPiBkYWlzaG91Z3VuXCA7Civkv6Hlj7floZQgPiBzaGluZ291dG91XCA7Civljp/lrZDmoLggPiBnZW5zaGlrYWt1XCA7CivlpKflhazlm70gPiB0YWlrb3Vrb2t1XCA7CivkvJHmga/miYAgPiBreXV1c29rdWpvXCA7Civpq5jpmpzlrrMgPiBrb3VzaG91Z2FpXCA7CivmsYLpgZPogIUgPiBreXV1ZG91c2hhXCA7CivlpKnlrojplqMgPiB0ZW5zaHVrYWt1XCA7Civkub7nianlsYsgPiBrYW5idXRzdXlhXCA7CivmsLTpiYTnoLIgPiBtaXp1ZGVwcG91XCA7CivljYPkuInlsYsgPiBzZW5taXRzdXlhXCA7CivlhaXmuK/nqI4gPiBueXV1a291emVpXCA7CivpioDooYzmpa0gPiBnaW5rb3VneW91XCA7CivkvJHms4rmiYAgPiBreXV1aGFrdWpvXCA7Civkurrlt6XnmoQgPiBqaW5rb3V0ZWtpXCA7CivogbToppbogIUgPiBjaG91c2hpc2hhXCA7CivkuKHlm73oqp4gPiByeW91a29rdWdvXCA7Civpq5jngKzoiJ8gPiB0YWthc2VidW5lXCA7CivntYTnuZTlkI0gPiBzb3NoaWtpbWVpXCA7CivlkIzmnJ/lvI8gPiBkb3VraXNoaWtpXCA7CivlpKfohbjoj4wgPiBkYWljaG91a2luXCA7CivljYrni4LkubEgPiBoYW5reW91cmFuXCA7CivotIXmsqLlk4EgPiB6ZWl0YWt1aGluXCA7CivkuIDmnKzpgZMgPiBpcHBvbm1pY2hpXCA7CivliKnmvaTnjocgPiByaWp1bnJpdHN1XCA7Civov6vlrrPogIUgPiBoYWt1Z2Fpc2hhXCA7CivlpKfmpbXmrr8gPiBkYWlnb2t1ZGVuXCA7Civph43ph4/mhJ8gPiBqdXVyeW91a2FuXCA7Civnvo7lrabnmoQgPiBiaWdha3V0ZWtpXCA7CivlhpnnlJ/luLMgPiBzaGFzZWljaG91XCA7Civlu4Pmo4TniakgPiBoYWlraWJ1dHN1XCA7Civpm7vno4Hnn7MgPiBkZW5qaXNoYWt1XCA7CivlhpnnlJ/luJYgPiBzaGFzZWljaG91XCA7CivpgKDllrbniakgPiB6b3VlaWJ1dHN1XCA7CivmioDooZPpnaIgPiBnaWp1dHN1bWVuXCA7Civku5Xnva7ogIUgPiBzaGlva2ltb25vXCA7CivmmYLliLvooaggPiBqaWtva3VoeW91XCA7Civmr5Lnp5HlraYgPiBkb2t1a2FnYWt1XCA7Civnm7TooYzkvr8gPiBjaG9ra291YmluXCA7CivmiYvlhoXogbcgPiB0ZW5haXNob2t1XCA7Civml4XooYzlhYggPiByeW9rb3VzYWtpXCA7CivmoLjlvL7poK0gPiBrYWt1ZGFudG91XCA7Civnqbrpm4blkIggPiBrdXVzaHV1Z291XCA7CivnibnoqLHmlpkgPiB0b2treW9yeW91XCA7CivkuLvmg4XnmoQgPiBzaHVqb3V0ZWtpXCA7Civmm7TooaPlrqQgPiBrb3Vpc2hpdHN1XCA7CivkvJrluK3ohrMgPiBrYWlzZWtpemVuXCA7CivljYPkuIDlpJwgPiBzZW4nJ2ljaGl5YVwgOwor55yf55Sw57SQID4gc2FuYWRhaGltb1wgOwor6YGT5a2m6ICFID4gZG91Z2FrdXNoYVwgOwor5o+u55m65oCnID4ga2loYXRzdXNlaVwgOwor5Ye66LOH6YeRID4gc2h1c3NoaWtpblwgOwor54mn576K54qsID4gYm9rdXlvdWtlblwgOwor6JK455WZ5rC0ID4gam91cnl1dXN1aVwgOwor562J5Zyn57eaID4gdG91YXRzdXNlblwgOwor5q+S5ZGz5b25ID4gZG9rdW1peWFrdVwgOwor5YSq6Imv5bqXID4geXV1cnlvdXRlblwgOwor5YaF6Iq46ICFID4gdWNoaWdlaXNoYVwgOwor5oKq6YGU6ICFID4gd2FydWRhc3NoYVwgOwor5LiJ6Z2i6Y+hID4gc2FubWVua3lvdVwgOwor54u46JWO6bqmID4gdGFudWtpc29iYVwgOwor6KOP5pu45Lq6ID4gdXJhZ2FraW5pblwgOwor54m55aSn5Y+3ID4gdG9rdWRhaWdvdVwgOwor57WE57mU5L2TID4gc29zaGlraXRhaVwgOwor54++5a6f5YyWID4gZ2Vuaml0c3VrYVwgOwor5aSa55uu55qEID4gdGFtb2t1dGVraVwgOwor5bCG5p2l5oCnID4gc2hvdXJhaXNlaVwgOwor5LiA5Lq66IW5ID4gaGl0b3JpYmFyYVwgOwor55S75LiA5YyWID4ga2FrdWl0c3VrYVwgOwor6YeN6YeR5bGeID4ganV1a2luem9rdVwgOwor56uL5Lya5Lq6ID4gdGFjaGlhaW5pblwgOwor5q205Y+y5LiKID4gcmVraXNoaWpvdVwgOwor6KO96YmE5omAID4gc2VpdGV0c3Vqb1wgOwor5LiA5Lq66ICFID4gaGl0b3JpbW9ub1wgOwor6YGu5pat5aOBID4gc2hhZGFucGVraVwgOwor54m55aOy5aC0ID4gdG9rdWJhaWpvdVwgOwor5ZGK55+l5p2/ID4ga29rdWNoaWJhblwgOwor5rKW56mN5pyfID4gY2h1dXNla2lraVwgOwor5Luu6KiY5YWlID4ga2FyaWtpbnl1dVwgOwor5L+u6YGT5LyaID4gc2h1dWRvdWthaVwgOwor5qGf5qKv5a2QID4gc2FuYmFzaGlnb1wgOwor55Wq5Y+35pytID4gYmFuZ291ZnVkYVwgOwor5bCR5pWw54K5ID4gc2hvdXN1dXRlblwgOwor5bGx54yr5bqnID4geWFtYW5la296YVwgOwor5a+d5Y+w5Yi4ID4gc2hpbmRhaWtlblwgOwor5rC06YqA5p+xID4gc3VpZ2luY2h1dVwgOwor6LWk5rW35LqAID4gYWthdW1pZ2FtZVwgOwor6aqo55u45a2mID4ga29zc291Z2FrdVwgOwor5aSn6Ie85q2vID4gZGFpa3l1dXNoaVwgOwor5rCR5peP5Y+yID4gbWluem9rdXNoaVwgOwor5LqU56ic6YOtID4gZ29yeW91a2FrdVwgOwor5omB5bmz6LazID4gaGVucGVpc29rdVwgOwor5aWR57SE5pu4ID4ga2VpeWFrdXNob1wgOwor5b2x5rOV5birID4ga2FnZWJvdXNoaVwgOwor6YeR5Ymb55+zID4ga29uZ291c2VraVwgOwor54m56Kix5bqBID4gdG9ra3lvY2hvdVwgOwor54m55aOy5ZOBID4gdG9rdWJhaWhpblwgOwor5LiL6KuL6LKgID4gc2hpdGF1a2VvaVwgOwor5Y+O56mr5pyfID4gc2h1dWtha3VraVwgOwor6Zm45oim6ZqKID4gcmlrdXNlbnRhaVwgOwor57Wm5rC0566hID4ga3l1dXN1aWthblwgOwor56We56eY55qEID4gc2hpbnBpdGVraVwgOwor6YeN6YeP5Zm4ID4ganV1cnlvdXRvblwgOwor5Y+O56mr5pmCID4gc2h1dWtha3VqaVwgOwor6auY5Zyn57iuID4ga291YXNzaHVrdVwgOwor6JGX5L2c5qipID4gY2hvc2FrdWtlblwgOwor5Luj5Z+36KGMID4gZGFpc2hpa2tvdVwgOwor6ZmQ5a6a55qEID4gZ2VudGVpdGVraVwgOwor6auY5Zyn57eaID4ga291YXRzdXNlblwgOwor5Luu5o6h55SoID4ga2FyaXNhaXlvdVwgOwor5pS56Z2p6ICFID4ga2Fpa2FrdXNoYVwgOwor5Zyw5LiL6YmEID4gY2hpa2F0ZXRzdVwgOwor5bCK546L5YWaID4gc29uJydub3V0b3VcIDsKK+WWq+eFmeiAhSA+IGtpdHN1ZW5zaGFcIDsKK+Wcn+S/temamyA+IGRvaHlvdWdpd2FcIDsKK+Wkp+WxseeMqyA+IG9veWFtYW5la29cIDsKK+iIquepuuWtpiA+IGtvdWt1dWdha3VcIDsKK+WOn+adkOaWmSA+IGdlbnphaXJ5b3VcIDsKK+WHuueUo+aVsCA+IHNodXNzYW5zdXVcIDsKK+ashOWPgueFpyA+IHJhbnNhbnNob3VcIDsKK+WHuueUn+aVsCA+IHNodXNzZWlzdXVcIDsKK+WuiOWCmeeOhyA+IHNodWJpcml0c3VcIDsKK+aWh+iKuOWtpiA+IGJ1bmdlaWdha3VcIDsKK+e0heWGoOmzpSA+IGtvdWthbmNob3VcIDsKK+WIneWgtOaJgCA+IGhhdHN1YmFzaG9cIDsKK+S5s+eKtua2siA+IG55dXVqb3Vla2lcIDsKK+WNmOWdkOW8jyA+IHRhbnphc2hpa2lcIDsKK+WcqOeVmeawkSA+IHphaXJ5dXVtaW5cIDsKK+e+jumhlOihkyA+IGJpZ2FuanV0c3VcIDsKK+eFruayuOWZqCA+IHNoYWZ1dHN1a2lcIDsKK+WEquiJr+WTgSA+IHl1dXJ5b3VoaW5cIDsKK+aIpuihk+WutiA+IHNlbmp1dHN1a2FcIDsKK+S7leS6i+W4qyA+IHNoaWdvdG9zaGlcIDsKK+eEoeeUn+eJqSA+IG11c2VpYnV0c3VcIDsKK+mbkeaWh+WutiA+IHphdHN1YnVua2FcIDsKK+WQjOiqv+iAhSA+IGRvdWNob3VzaGFcIDsKK+S6iOe0hOW4rSA+IHlveWFrdXNla2lcIDsKK+mHkeefs+aWhyA+IGtpbnNla2lidW5cIDsKK+e3tOe/kuiIuSA+IHJlbnNodXVzZW5cIDsKK+a4rOa3seapnyA+IHNva3VzaGlua2lcIDsKK+eZuuimi+aWmSA+IGhha2tlbnJ5b3VcIDsKK+ihkuWtpuiAhSA+IGdlbmdha3VzaGFcIDsKK+Wwj+aVsOeCuSA+IHNob3VzdXV0ZW5cIDsKK+W8leWHuueJqSA+IGhpa2lkZW1vbm9cIDsKK+mWi+aetuW8jyA+IGthaWthc2hpa2lcIDsKK+WMheWQq+eahCA+IGhvdWdhbnRla2lcIDsKK+WQiOWlj+iqvyA+IGdhc3NvdWNob3VcIDsKK+WFseWSjOWbvSA+IGt5b3V3YWtva3VcIDsKK+WvqeWIpOWToSA+IHNoaW5wYW4nJ2luXCA7CivmuIXmnJ3kvZMgPiBzZWljaG91dGFpXCA7Civooajml6XmnKwgPiBvbW90ZW5paG9uXCA7Civnj77ku6PliocgPiBnZW5kYWlnZWtpXCA7CivljbPlirnolqwgPiBzb2trb3V5YWt1XCA7Civml6XpgYvli5UgPiBuaWNoaXVuZG91XCA7Civogbfpmo7liLYgPiBzaG9ra2Fpc2VpXCA7CivliY3ou4rou7ggPiB6ZW5zaGFqaWt1XCA7CivkuIrmmIfnt5ogPiBqb3VzaG91c2VuXCA7CivmqZ/lr4bmgKcgPiBraW1pdHN1c2VpXCA7CivmmI7ntLDooaggPiBtZWlzYWloeW91XCA7Civkv67ovp7lraYgPiBzaHV1amlnYWt1XCA7CivlkI3oqonogbcgPiBtZWl5b3Nob2t1XCA7Civlm5vlpKnnjosgPiBzaGl0ZW4nJ25vdVwgOwor5Lq655u45a2mID4gbmluc291Z2FrdVwgOwor5o6I5qWt5paZID4ganVneW91cnlvdVwgOwor6Ymb5Lit5q+SID4gZW5jaHV1ZG9rdVwgOwor5rK755mC5LujID4gY2hpcnlvdWRhaVwgOwor5biv6buE6ImyID4gdGFpb3VzaG9rdVwgOwor6LW35bel5byPID4ga2lrb3VzaGlraVwgOwor5Y+W5b6X6ICFID4gc2h1dG9rdXNoYVwgOwor5oKq5bmz562JID4gYWt1YnlvdWRvdVwgOwor5pyx5a2Q5a2mID4gc2h1c2hpZ2FrdVwgOwor6Lu96YeR5bGeID4ga2Vpa2luem9rdVwgOwor5YGl6ISa5a62ID4ga2Vua3lha3VrYVwgOwor5YWI6Kaa6ICFID4gc2Vua2FrdXNoYVwgOwor5LiN5pW06ISIID4gZnVzZWlteWFrdVwgOwor5Luy6ZaT5YaFID4gbmFrYW1hdWNoaVwgOwor5bCG5p2l5YOPID4gc2hvdXJhaXpvdVwgOwor5L2O5pWZ5LyaID4gdGVpa3lvdWthaVwgOwor5oCn6KGd5YuVID4gc2Vpc2hvdWRvdVwgOwor57SZ6Iqd5bGFID4ga2FtaXNoaWJhaVwgOwor5L2c5oiQ6ICFID4gc2FrdXNlaXNoYVwgOwor5Zue5pil5YmkID4ga2Fpc2h1bnphaVwgOwor5raI6LK76YePID4gc2hvdWhpcnlvdVwgOwor5Lim6KO95ZOBID4gbmFtaXNlaWhpblwgOwor5bCC5pyJ5qipID4gc2VuJyd5dXVrZW5cIDsKK+S5l+mmrOmdtCA+IGpvdWJhZ3V0c3VcIDsKK+WHuuizh+iAhSA+IHNodXNzaGlzaGFcIDsKK+WMluefs+WtpiA+IGthc2VraWdha3VcIDsKK+iBtOiouuWZqCA+IGNob3VzaGlua2lcIDsKK+eMqeeMqeighSA+IHNob3Vqb3ViYWVcIDsKK+S5seaVsOihqCA+IHJhbnN1dWh5b3VcIDsKK+Wfi+eri+WcsCA+IHVtZXRhdGVjaGlcIDsKK+WFseWQjOaApyA+IGt5b3Vkb3VzZWlcIDsKK+eGn+e3tOiAhSA+IGp1a3VyZW5zaGFcIDsKK+adseWMl+adsSA+IHRvdWhva3V0b3VcIDsKK+eUn+S9k+iGnCA+IHNlaXRhaW1ha3VcIDsKK+awkeihhumnhSA+IG1pbnNodXVla2lcIDsKK+Wuh+WumemjnyA+IHVjaHV1c2hva3VcIDsKK+aXpeWFiea1tCA+IG5pa2tvdXlva3VcIDsKK+S7o+aVsOWtpiA+IGRhaXN1dWdha3VcIDsKK+iDveW9ueiAhSA+IG5vdXlha3VzaGFcIDsKK+ayluepjeWcnyA+IGNodXVzZWtpZG9cIDsKK+W8leWKm+WcjyA+IGlucnlva3VrZW5cIDsKK+S4reaKmOW4vSA+IG5ha2FvcmVib3VcIDsKK+mdnua0u+WLlSA+IGhpa2F0c3Vkb3VcIDsKK+S4jeWni+acqyA+IGZ1c2hpbWF0c3VcIDsKK+acieWKn+eroCA+IHl1dWtvdXNob3VcIDsKK+aKleelqOiAhSA+IHRvdWh5b3VzaGFcIDsKK+aUu+aSg+maiiA+IGtvdWdla2l0YWlcIDsKK+WgseWRiuiAhSA+IGhvdWtva3VzaGFcIDsKK+eZuuihqOiAhSA+IGhhcHB5b3VzaGFcIDsKK+aDo+euoemgmCA+IHNvdWthbnJ5b3VcIDsKK+mBuOaKnuiCoiA+IHNlbnRha3VzaGlcIDsKK+aKgOihk+iAhSA+IGdpanV0c3VzaGFcIDsKK+mAsuatqeeahCA+IHNoaW5wb3Rla2lcIDsKK+Wfi+iUtemHjyA+IG1haXpvdXJ5b3VcIDsKK+S7leS6i+WPsCA+IHNoaWdvdG9kYWlcIDsKK+aAp+aIkOeGnyA+IHNlaXNlaWp1a3VcIDsKK+awuOW5tOmWkyA+IG5hZ2FuZW5rYW5cIDsKK+iDjOaVmeiAhSA+IGhhaWt5b3VzaGFcIDsKK+aJi+W3pealrSA+IHNodWtvdWd5b3VcIDsKK+eUs+iri+iAhSA+IHNoaW5zZWlzaGFcIDsKK+a8lOWHuuWutiA+IGVuc2h1dHN1a2FcIDsKK+S4gOWuieW/gyA+IGhpdG9hbnNoaW5cIDsKK+ihjOalveWcsCA+IGtvdXJha3VjaGlcIDsKK+mjn+euoeazlSA+IHNob2trYW5ob3VcIDsKK+ims+a4rOiIuSA+IGthbnNva3VzZW5cIDsKK+ertuWQiOiAhSA+IGt5b3Vnb3VzaGFcIDsKK+WBpeiEs+WJpCA+IGtlbicnbm91emFpXCA7Civph5HliZvmnZYgPiBrb25nb3VkenVlXCA7CivorJ3ogonnpa0gPiBzaGFuaWt1c2FpXCA7CivopIflhpnntJkgPiBmdWt1c2hhc2hpXCA7CivpgLHliIroqowgPiBzaHV1a2Fuc2hpXCA7Civlj47nqI7miYAgPiBzaHV1emVpc2hvXCA7CivpgJrooYzkurogPiB0c3V1a291bmluXCA7CivpkZHlrprmlpkgPiBrYW50ZWlyeW91XCA7CivlkIzkuIDkurogPiBkb3VpdHN1bmluXCA7Civpq5jmva7nt5ogPiBrb3VjaG91c2VuXCA7CivmtbjpgI/mgKcgPiBzaGludG91c2VpXCA7CivooYDoibLntKAgPiBrZXNzaGlraXNvXCA7CivohLPpnIfnm6ogPiBub3VzaGludG91XCA7Civos4PosrjkurogPiBjaGludGFpbmluXCA7Civlh7rnlJ/lnLAgPiBzaHVzc2VpY2hpXCA7Civnt7Tnv5LnlJ8gPiByZW5zaHV1c2VpXCA7CivluqfluK3ooaggPiB6YXNla2loeW91XCA7CivoprPmuKzogIUgPiBrYW5zb2t1c2hhXCA7CivlnLDnjYTogLMgPiBqaWdva3VtaW1pXCA7Civpq5jntJrlk4EgPiBrb3VreXV1aGluXCA7CivpgaDml6XngrkgPiBlbmppdHN1dGVuXCA7CivmvKLlrabogIUgPiBrYW5nYWt1c2hhXCA7CivniafloLTps6UgPiBtYWtpYmF0b3JpXCA7CivmrbvliJHlm5ogPiBzaGlrZWlzaHV1XCA7CivmsLfnoILns5YgPiBrb29yaXphdG91XCA7CivlhbHokZfogIUgPiBreW91Y2hvc2hhXCA7Civpqqjpq4Tngo4gPiBrb3RzdXp1aWVuXCA7CivmlL7niaflnLAgPiBob3Vib2t1Y2hpXCA7Civnmb3ooYDnkIMgPiBoYWtrZWtreXV1XCA7CivmurblsqnmtYEgPiB5b3VnYW5yeXV1XCA7CivmrbvlgrfogIUgPiBzaGlzaG91c2hhXCA7CivlvI/pg6jlrpggPiBzaGlraWJ1a2FuXCA7CivohIblvLHmgKcgPiB6ZWlqYWt1c2VpXCA7CivntabmsLTmoJMgPiBreXV1c3Vpc2VuXCA7CivoprPmuKzntrIgPiBrYW5zb2t1bW91XCA7CivmgKXooYzliLggPiBreXV1a291a2VuXCA7CivlvqHpnq3mkrsgPiBnb2JlbnRhdHN1XCA7Civnt5HljYHlrZcgPiByeW9rdWp1dWppXCA7CivmtYHnt5rlvaIgPiByeXV1c2Vua2VpXCA7Civljp/lp4vnmoQgPiBnZW5zaGl0ZWtpXCA7CivniafnvorlnLAgPiBib2t1eW91Y2hpXCA7Civln7znjonnnIwgPiBzYWl0YW1ha2VuXCA7CivmlLvmkoPou40gPiBrb3VnZWtpZ3VuXCA7CivmlbXoiabpmoogPiB0ZWtpa2FudGFpXCA7Civpo5/lmajmo5ogPiBzaG9ra2lkYW5hXCA7CivkvJ3pgIHlhYggPiBkZW5zb3VzYWtpXCA7CivnqLLojbfprqggPiBpbmFyaXp1c2hpXCA7Civlvqnoqr/lmaggPiBmdWt1Y2hvdWtpXCA7CivlpKfnl4XkurogPiBkYWlieW91bmluXCA7CivlhbHlirTogIUgPiBreW91cm91c2hhXCA7Civnl4Xljp/oj4wgPiBieW91Z2Vua2luXCA7CivmnJ3prq7kurogPiBjaG91c2VuamluXCA7CivlhKrotormqKkgPiB5dXVldHN1a2VuXCA7CivkuIDkurrml4UgPiBoaXRvcml0YWJpXCA7Civmloflraboq5YgPiBidW5nYWt1cm9uXCA7CivogonmhJ/nmoQgPiBuaWtrYW50ZWtpXCA7CivmgKXooYzkvr8gPiBreXV1a291YmluXCA7CivnlLLkuZnkuJkgPiBrb3VvdHN1aGVpXCA7CivkuK3ms6LplbcgPiBjaHV1aGFjaG91XCA7CivnhKHogbfogIUgPiBtdXNob2t1c2hhXCA7Civlj47nqI7lrpggPiBzaHV1emVpa2FuXCA7Civlrabpg6jplbcgPiBnYWt1YnVjaG91XCA7CivotoXmoLzlrZAgPiBjaG91a291c2hpXCA7Civpl4rokYnmqLkgPiBrYXRzdXlvdWp1XCA7CivlhbHps7TogIUgPiBreW91bWVpc2hhXCA7CivnhKHkvZPniakgPiBtdXRhaWJ1dHN1XCA7Civmta7msJflpbMgPiB1d2FraW9uJyduYVwgOwor55m756uc6ZaAID4gdG91cnl1dW1vblwgOwor5LiA576p55qEID4gaWNoaWdpdGVraVwgOwor56ys5LiA5p2hID4gZGFpaWNoaWpvdVwgOwor5YaF55So6JasID4gbmFpeW91eWFrdVwgOwor5bqn5qiZ6Lu4ID4gemFoeW91amlrdVwgOwor562W5rqQ5ZywID4gc2FrdWdlbmNoaVwgOwor5YSq55Sf5a2mID4geXV1c2VpZ2FrdVwgOwor5YiG6ZqK6ZW3ID4gYnVudGFpY2hvdVwgOwor5YmN5YCf6YeRID4gemVuc2hha2tpblwgOwor5Luy6KOB5Lq6ID4gY2h1dXNhaW5pblwgOwor6LWk6YGT56WtID4gc2VraWRvdXNhaVwgOwor5p2x5YyX5aSnID4gdG91aG9rdWRhaVwgOwor5a6f6Ki86KuWID4gamlzc2hvdXJvblwgOwor5LiN54eD54mpID4gZnVuZW5idXRzdVwgOwor5YWo5by36aKoID4gemVua3lvdWZ1dVwgOwor5bCP5aSp5ZywID4gc2hvdXRlbmNoaVwgOwor6YWi6YW45aGpID4gc2FrdXNhbicnZW5cIDsKK+i2hemfs+mAnyA+IGNob3VvbnNva3VcIDsKK+WvhuWRiuiAhSA+IG1pa2tva3VzaGFcIDsKK+WIhumhnuWtpiA+IGJ1bnJ1aWdha3VcIDsKK+W9q+mHkeW4qyA+IGNob3VraW5zaGlcIDsKK+WFsemAmuiqniA+IGt5b3V0c3V1Z29cIDsKK+elnuenmOWtpiA+IHNoaW5oaWdha3VcIDsKK+S4gOacrOapiyA+IGlwcG9uYmFzaGlcIDsKK+esrOS6lOWIlyA+IGRhaWdvcmV0c3VcIDsKK+e0s+Wjq+eUqCA+IHNoaW5zaGl5b3VcIDsKK+S4gOaemuWyqSA+IGljaGltYWlpd2FcIDsKK+a1gee3muWeiyA+IHJ5dXVzZW5rZWlcIDsKK+S4gOacrOanjSA+IGlwcG9uJyd5YXJpXCA7Civlm7Dnqq7ogIUgPiBrb25reXV1c2hhXCA7CivlhqzmlK/luqYgPiBmdXl1aml0YWt1XCA7CivlhbHlkIzkvZMgPiBreW91ZG91dGFpXCA7CivlsJHmlbDlhZogPiBzaG91c3V1dG91XCA7CivlhajmsJHooYYgPiB6ZW5taW5zaHV1XCA7Civnm7jlj43nmoQgPiBzb3VoYW50ZWtpXCA7Civmta7pgYrniakgPiBmdXl1dWJ1dHN1XCA7CivlirTlg43nnIEgPiByb3Vkb3VzaG91XCA7Civlravmga/lrZAgPiBtYWdvbXVzdWtvXCA7CivlirTlg43nm7ggPiByb3Vkb3VzaG91XCA7CivkvpvppIrloZogPiBrdXlvdWR6dWthXCA7Civpp4bpgJDoiaYgPiBrdWNoaWt1a2FuXCA7CivntKDkurrnm64gPiBzaGlyb3V0b21lXCA7CivpgLHliIrntJkgPiBzaHV1a2Fuc2hpXCA7Civnsr7ogonlupcgPiBzZWluaWt1dGVuXCA7Civlj4zmrrvpoZ4gPiBzb3VrYWt1cnVpXCA7CivlpajlirHph5EgPiBzaG91cmVpa2luXCA7CivkuI3nsr7pq60gPiBidXNob3VoaWdlXCA7Civog73li5XnmoQgPiBub3Vkb3V0ZWtpXCA7CivntITljYrliIYgPiB5YWt1aGFuYnVuXCA7CivntrLmvIHmpa0gPiBhbWlneW9neW91XCA7Civmjojmpa3kuK0gPiBqdWd5b3VjaHV1XCA7Civlsqnnn7PlnI8gPiBnYW5zZWtpa2VuXCA7Civlvbnnm67mn4QgPiB5YWt1bWVnYXJhXCA7CivkuIDmnKzmnb4gPiBpcHBvbm1hdHN1XCA7CivloannhY7ppIUgPiBzaGlvc2VuYmVpXCA7CivkuI3lpoLluLAgPiBob3RvdG9naXN1XCA7CivljZfjgIXopb8gPiBuYW4nJ25hbnNlaVwgOwor5Zyo5a2m55SfID4gemFpZ2FrdXNlaVwgOwor5YmD5YiA56ClID4ga2FtaXNvcmlkb1wgOwor5aSa55m65oCnID4gdGFoYXRzdXNlaVwgOwor5YSq6LaK5oSfID4geXV1ZXRzdWthblwgOwor54m557Sa5ZOBID4gdG9ra3l1dWhpblwgOwor5LiJ6KeS6YyQID4gc2Fua2FrdXN1aVwgOwor5b+F5rK76JasID4gaGl0Y2hpeWFrdVwgOwor5Y2Y5oyv5YuVID4gdGFuc2hpbmRvdVwgOwor5Li75by16ICFID4gc2h1Y2hvdXNoYVwgOwor5o6S5LuW5b6LID4gaGFpdGFyaXRzdVwgOwor5YSq6LaK5oCnID4geXV1ZXRzdXNlaVwgOwor5b2i5oWL5a2mID4ga2VpdGFpZ2FrdVwgOwor5bel5qWt55WMID4ga291Z3lvdWthaVwgOwor5bel5qWt55SoID4ga291Z3lvdXlvdVwgOwor56mN5Lmx6ZuyID4gc2VraXJhbicndW5cIDsKK+aLneims+aWmSA+IGhhaWthbnJ5b3VcIDsKK+mgmOa1t+e3miA+IHJ5b3VrYWlzZW5cIDsKK+inkuWIhuaVoyA+IGtha3VidW5zYW5cIDsKK+S4jeimi+itmCA+IGZ1a2Vuc2hpa2lcIDsKK+Wkp+WtpueUnyA+IGRhaWdha3VzZWlcIDsKK+acgOWMl+erryA+IHNhaWhva3V0YW5cIDsKK+ihqOmdouS4iiA+IGh5b3VtZW5qb3VcIDsKK+a/g+ehq+mFuCA+IG5vdXJ5dXVzYW5cIDsKK+awtOWMlueJqSA+IHN1aWthYnV0c3VcIDsKK+i2heS8neWwjiA+IGNob3VkZW5kb3VcIDsKK+aWh+WtpuiAhSA+IGJ1bmdha3VzaGFcIDsKK+eyl+ebrumbqiA+IHphcmFtZXl1a2lcIDsKK+WPsuWtpuiAhSA+IHNoaWdha3VzaGFcIDsKK+Wbveawkei7jSA+IGtva3VtaW5ndW5cIDsKK+WSgOWavOetiyA+IHNvc2hha3VraW5cIDsKK+S9j+aJgOmMsiA+IGp1dXNob3Jva3VcIDsKK+mnkOWBnOi7iiA+IGNodXV0ZWlzaGFcIDsKK+akjeaoueelrSA+IHNob2t1anVzYWlcIDsKK+inkumAn+W6piA+IGtha3Vzb2t1ZG9cIDsKK+Wkp+i1pOaWkSA+IGRhaXNla2loYW5cIDsKK+WcsOS4rea1tyA+IGNoaWNodXVrYWlcIDsKK+WVhuWjsuS6uiA+IHNob3ViYWluaW5cIDsKK+WPl+WPluS6uiA+IHVrZXRvcmluaW5cIDsKK+imi+acrOW4giA+IG1paG9uJydpY2hpXCA7CivmipXnpajmqKkgPiB0b3VoeW91a2VuXCA7CivmjqLnhafnga8gPiB0YW5zaG91dG91XCA7Civlhajli53ou40gPiB6ZW5zaG91Z3VuXCA7CivntabmsLTloZQgPiBreXV1c3VpdG91XCA7Civmva7lubLni6kgPiBzaGlvaGlnYXJpXCA7CivniaHnvorluqcgPiBvaGl0c3VqaXphXCA7Civlj47nqI7kurogPiBzaHV1emVpbmluXCA7Civpgbjmip7mqKkgPiBzZW50YWt1a2VuXCA7CivmjqHngrnooaggPiBzYWl0ZW5oeW91XCA7Civlt6Xlt6Xlm5sgPiBrdW5rdW5zaGlpXCA7CivoqJjpjLLnmoQgPiBraXJva3V0ZWtpXCA7CivosYbmnb/pioAgPiBtYW1laXRhZ2luXCA7Civntbblr77ph48gPiB6ZXR0YWlyeW91XCA7CivmnbHljJfkurogPiB0b3Vob2t1amluXCA7Civmtbfou43nnIEgPiBrYWlndW5zaG91XCA7Civph5HliZvlipsgPiBrb25nb3VyaWtpXCA7CivnnJ/mmpfpl4cgPiBtYWt1cmF5YW1pXCA7CivmpJznlqvlrpggPiBrZW4nJ2VraWthblwgOwor5a++6LGh5aSWID4gdGFpc2hvdWdhaVwgOwor5paw5r2f55yMID4gbmlpZ2F0YWtlblwgOwor6ZeH5YaN6LKpID4geWFtaXNhaWhhblwgOwor5YuV54mp5oSbID4gZG91YnV0c3VhaVwgOwor5L2/55So6YePID4gc2hpeW91cnlvdVwgOwor6JeB5Y2K57SZID4gd2FyYWJhbnNoaVwgOwor5paw6ZaL5ZywID4gc2hpbmthaWNoaVwgOwor6Z2e5bi46K2YID4gaGlqb3VzaGlraVwgOwor5LiA6Z2i6KazID4gaWNoaW1lbmthblwgOwor566h57WD5qW9ID4ga2FuZ2VuZ2FrdVwgOwor5pyA5oG15Zu9ID4gc2Fpa2Vpa29rdVwgOwor5oWi5oCn55qEID4gbWFuc2VpdGVraVwgOwor5o6o6KiI5a2mID4gc3Vpa2VpZ2FrdVwgOwor5Ymv6aCY5LqLID4gZnVrdXJ5b3VqaVwgOwor5Y2w5Yi36ICFID4gaW5zYXRzdXNoYVwgOwor6ICQ54Gr5YqbID4gdGFpa2FyeW9rdVwgOwor5Y+L56aF5p+TID4geXV1emVuem9tZVwgOwor5aCx5ZGK5pu4ID4gaG91a29rdXNob1wgOwor6aqo5qC8562LID4ga29ra2FrdWtpblwgOwor6Je75aGp6I2JID4gbW9zaGlvZ3VzYVwgOwor6ZuG5aSn5oiQID4gc2h1dXRhaXNlaVwgOwor5oWi5oCn55eFID4gbWFuc2VpYnlvdVwgOwor5a6j6KiA55qEID4gc2VuZ2VudGVraVwgOwor5YWt6YeN5aWPID4gcm9rdWp1dXNvdVwgOwor6Z+z6Z+/5a2mID4gb25reW91Z2FrdVwgOwor5bel5qWt5rivID4ga291Z3lvdWtvdVwgOwor57eP6L6e6IG3ID4gc291amlzaG9rdVwgOwor6LuN5Zuj6ZW3ID4gZ3VuZGFuY2hvdVwgOwor5bm06ZW36ICFID4gbmVuY2hvdXNoYVwgOwor57eP5YuZ5bGAID4gc291bXVreW9rdVwgOwor6Z2i55u4562GID4gbWVuc291ZnVkZVwgOwor5pWj5q2p6YGTID4gc2FucG9taWNoaVwgOwor56S65Zyn6KiIID4gc2hpYXRzdWtlaVwgOwor5LiW57SA5pyrID4gc2Vpa2ltYXRzdVwgOwor56ys5LiJ5Zu9ID4gZGFpc2FuZ29rdVwgOwor5oqV56Wo5pWwID4gdG91aHlvdXN1dVwgOwor5L2V566H5pyIID4gbmFua2FnZXRzdVwgOwor55Sz6KuL5pu4ID4gc2hpbnNlaXNob1wgOwor6IW56Iac54KOID4gZnVrdW1ha3VlblwgOwor5rip5rOJ55S6ID4gb25zZW5tYWNoaVwgOwor5Li75YuV55qEID4gc2h1ZG91dGVraVwgOwor5LiN5paH5b6LID4gZnVidW5yaXRzdVwgOwor5byB5b2T566xID4gYmVudG91YmFrb1wgOwor5aSp5L2T5a2mID4gdGVudGFpZ2FrdVwgOwor5Y2w5Yi357SZID4gaW5zYXRzdXNoaVwgOwor5L2O5oiQ6ZW3ID4gdGVpc2VpY2hvdVwgOwor5L+v5Luw6KeSID4gZnVneW91a2FrdVwgOwor5pS+54ax5ZmoID4gaG91bmV0c3VraVwgOwor57SU6Imv5ZOBID4ganVucnlvdWhpblwgOwor5YKZ5b6M6KGoID4gYmluZ29vbW90ZVwgOwor5pqX5q666ICFID4gYW5zYXRzdXNoYVwgOwor5bmz5pWZ5ZOhID4gaGlyYWt5b3VpblwgOwor5LiN6Kaa6ICFID4gZnVrYWt1bW9ub1wgOwor5oiQ6ZW354K5ID4gc2VpY2hvdXRlblwgOwor5p2x5qiq57eaID4gdG91eW9rb3NlblwgOwor5pWR5riI6ICFID4ga3l1dXNhaXNoYVwgOwor55+l6IO955qEID4gY2hpbm91dGVraVwgOwor5bm76Kaa5YmkID4gZ2Vua2FrdXphaVwgOwor5p6c54mp5bGLID4ga3VkYW1vbm95YVwgOwor5Lq65qC86ICFID4gamlua2FrdXNoYVwgOwor6YeR5bGe6ZaTID4ga2luem9rdWthblwgOwor6Iqx5p+z55eFID4ga2FyeXV1YnlvdVwgOwor6ICB5aSn5Zu9ID4gcm91dGFpa29rdVwgOwor5Luj6KiA5Lq6ID4gZGFpZ2VuJyduaW5cIDsKK+W/g+W+l+mhlCA+IGtva29yb2VnYW9cIDsKK+S7o+ihqOiAhSA+IGRhaWh5b3VzaGFcIDsKK+S4u+efpeeahCA+IHNodWNoaXRla2lcIDsKK+aWh+WtpueVjCA+IGJ1bmdha3VrYWlcIDsKK+WIh+aWreapnyA+IHNldHN1ZGFua2lcIDsKK+S4gOaZgueahCA+IGljaGlqaXRla2lcIDsKK+S6pOmAmue2siA+IGtvdXRzdXVtb3VcIDsKK+WcsOeQg+S6uiA+IGNoaWt5dXVqaW5cIDsKK+WcsOeQg+S4iiA+IGNoaWt5dXVqb3VcIDsKK+mAhuaPkOahiCA+IGd5YWt1dGVpYW5cIDsKK+WvvuaVsOihqCA+IHRhaXN1dWh5b3VcIDsKK+aVl+aIpuWbvSA+IGhhaXNlbmtva3VcIDsKK+WNsOWIt+ekviA+IGluc2F0c3VzaGFcIDsKK+aWsOijveWTgSA+IHNoaW5zZWloaW5cIDsKK+altei3nemboiA+IGt5b2t1a3lvcmlcIDsKK+eGn+e3tOW3pSA+IGp1a3VyZW5rb3VcIDsKK+iJsue0oOS9kyA+IHNoaWtpc290YWlcIDsKK+S4uOegpeefsyA+IG1hcnV0b2lzaGlcIDsKK+WQjOaXj+S8miA+IGRvdXpva3VrYWlcIDsKK+e1jOa4iOeahCA+IGtlaXphaXRla2lcIDsKK+eJm+S5s+WxiyA+IGd5dXVueXV1eWFcIDsKK+e3tOe/kuWgtCA+IHJlbnNodXVqb3VcIDsKK+eJueijveWTgSA+IHRva3VzZWloaW5cIDsKK+S4jeiqoOWunyA+IGZ1c2Vpaml0c3VcIDsKK+W+k+adpeWeiyA+IGp1dXJhaWdhdGFcIDsKK+WvvuixoeS9kyA+IHRhaXNob3V0YWlcIDsKK+eyieefs+m5uCA+IGtvbmFzZWtrZW5cIDsKK+WknOWwv+eXhyA+IHlhbnlvdXNob3VcIDsKK+i2heaWh+mdoiA+IGNob3VidW5tZW5cIDsKK+WLleeJqeWckiA+IGRvdWJ1dHN1ZW5cIDsKK+e3j+ebo+edoyA+IHNvdWthbnRva3VcIDsKK+Wun+mam+eahCA+IGppc3NhaXRla2lcIDsKK+mgvOS/oee0mSA+IHJhaXNoaW5zaGlcIDsKK+Wuo+aVmeW4qyA+IHNlbmt5b3VzaGlcIDsKK+iyrOS7u+iAhSA+IHNla2luaW5zaGFcIDsKK+mWouevgOeCjiA+IGthbnNldHN1ZW5cIDsKK+WFsemztOadvyA+IGt5b3VtZWliYW5cIDsKK+Wul+S4u+WbvSA+IHNvdXNodWtva3VcIDsKK+aXp+i7jeS6uiA+IGt5dXVndW5qaW5cIDsKK+WNiua/geeCuSA+IGhhbmRha3V0ZW5cIDsKK+WNiumVt+W9oiA+IGhhbmNob3VrZWlcIDsKK+S4reawtOmBkyA+IGNodXVzdWlkb3VcIDsKK+mBuOaJi+adkSA+IHNlbnNodW11cmFcIDsKK+WNsOWIt+eUqCA+IGluc2F0c3V5b3VcIDsKK+mciuafqei7iiA+IHJlaWt5dXVzaGFcIDsKK+a1t+WyuOerryA+IGthaWdhbmJhdGFcIDsKK+WklueUqOiWrCA+IGdhaXlvdXlha3VcIDsKK+e0q+aWkeeXhSA+IHNoaWhhbmJ5b3VcIDsKK+ibuOmFjeW9kyA+IHRha29oYWl0b3VcIDsKK+mrmOaJgOeXhSA+IGtvdXNob2J5b3VcIDsKK+Wkp+Wwj+S+vyA+IGRhaXNob3ViZW5cIDsKK+exs+WbveawkSA+IGJlaWtva3VtaW5cIDsKK+WQuOawtOaApyA+IGt5dXVzdWlzZWlcIDsKK+W/teS6lOaXpSA+IG5lbmdvbmljaGlcIDsKK+WHuuadpeW/gyA+IGRla2lnb2tvcm9cIDsKK+S4reW/g+mDqCA+IGNodXVzaGluYnVcIDsKK+eUn+S9k+WtpiA+IHNlaXRhaWdha3VcIDsKK+iCr+WumueahCA+IGtvdXRlaXRla2lcIDsKK+mBuOaKnuWtkCA+IHNlbnRha3VzaGlcIDsKK+WLleeJqeWMliA+IGRvdWJ1dHN1a2FcIDsKK+awtOW5s+e/vCA+IHN1aWhlaXlva3VcIDsKK+iyv+aYk+alrSA+IGJvdWVraWd5b3VcIDsKK+iFsOW4g+WboyA+IGtvc2hpYnV0b25cIDsKK+eIhuaSg+apnyA+IGJha3VnZWtpa2lcIDsKK+iogOihjOmMsiA+IGdlbmtvdXJva3VcIDsKK+Wbo+WcsOaXjyA+IGRhbmNoaXpva3VcIDsKK+S5seiqv+WtkCA+IHJhbmNob3VzaGlcIDsKK+WCmeiThOexsyA+IGJpY2hpa3VtYWlcIDsKK+Wkp+S5l+eahCA+IGRhaWpvdXRla2lcIDsKK+eEoeiDveWKmyA+IG11bm91cnlva3VcIDsKK+mFqui+suWgtCA+IHJha3Vub3Vqb3VcIDsKK+iyqOWuouiIuSA+IGtha3lha3VzZW5cIDsKK+aEn+afk+eXhyA+IGthbnNlbnNob3VcIDsKK+ecn+eQhuaVmSA+IHNoaW5yaWt5b3VcIDsKK+aFiOWWhOmNiyA+IGppemVuJyduYWJlXCA7CivmioDooZPlo6sgPiBnaWp1dHN1c2hpXCA7Civlk6jmiJLoiYcgPiBzaG91a2FpdGVpXCA7CivphZLnn7PphbggPiBzaHVzZWtpc2FuXCA7CivmlbfluIPlm6MgPiBzaGlraWJ1dG9uXCA7Civlj43liYfph5EgPiBoYW5zb2t1a2luXCA7CivmnInmqZ/niakgPiB5dXVraWJ1dHN1XCA7Civmir3osaHnlLsgPiBjaHV1c2hvdWdhXCA7Civnp5/lgJ/mqKkgPiBzb3NoYWt1a2VuXCA7CivlhoXnlLPmm7ggPiBuYWlzaGluc2hvXCA7CivlkIzntJrnlJ8gPiBkb3VreXV1c2VpXCA7CivlkJHnsbPnmoQgPiBrb3ViZWl0ZWtpXCA7CivopqrooZvlhbUgPiBzaGluJydlaWhlaVwgOwor5LuP5paH56eRID4gZnV0c3VidW5rYVwgOwor5Y+W5byV5omAID4gdG9yaWhpa2lqb1wgOwor6Zu76LuK6LODID4gZGVuc2hhY2hpblwgOwor6ZuG5pWj5ZywID4gc2h1dXNhbmNoaVwgOwor57a65oOz5puyID4ga2lzb3VreW9rdVwgOwor5LiK6Kq/5a2QID4gdXdhY2hvdXNoaVwgOwor5YaF6IeT5byTID4gbmFpem91a3l1dVwgOwor5Y2K6ZaL5Zu9ID4gaGFua2Fpa29rdVwgOwor6KO96YCg5qWtID4gc2Vpem91Z3lvdVwgOwor6L+95pKD5qmfID4gdHN1aWdla2lraVwgOwor5LiJ6KeS562LID4gc2Fua2FrdWtpblwgOwor562J5rex57eaID4gdG91c2hpbnNlblwgOwor6aeG5YuV5YqbID4ga3Vkb3VyeW9rdVwgOwor6YeN5bel5qWtID4ganV1a291Z3lvdVwgOwor6bq757mU54mpID4gYXNhb3JpbW9ub1wgOwor5pel5bCE55eFID4gbmlzc2hhYnlvdVwgOwor54ax6KGA5YWQID4gbmVra2V0c3VqaVwgOwor6YeR5bGe6KO9ID4ga2luem9rdXNlaVwgOwor5pys5aWR57SEID4gaG9ua2VpeWFrdVwgOwor6buE6KSQ6ImyID4gb3VrYXNzaG9rdVwgOwor6LO85YWl6ICFID4ga291bnl1dXNoYVwgOwor5LiN57K+6ICFID4gYnVzaG91bW9ub1wgOwor5Li75b+c5YqbID4gc2h1b3VyeW9rdVwgOwor5Z+8546J5YuiID4gc2FpdGFtYXplaVwgOwor6YeN5YK36ICFID4ganV1c2hvdXNoYVwgOwor5YK35a6z572qID4gc2hvdWdhaXphaVwgOwor5L2c5oim5LiKID4gc2FrdXNlbmpvdVwgOwor5r2c5rC055eFID4gc2Vuc3VpYnlvdVwgOwor5Lit5oCn57SZID4gY2h1dXNlaXNoaVwgOwor6Ki655mC5omAID4gc2hpbnJ5b3Vqb1wgOwor5pel5pys6aOfID4gbmlob25zaG9rdVwgOwor56i85YON546HID4ga2Fkb3VyaXRzdVwgOwor6YCj5ZCI5Zu9ID4gcmVuZ291a29rdVwgOwor5YWs5rCR5a2mID4ga291bWluZ2FrdVwgOwor56CU56m26ICFID4ga2Vua3l1dXNoYVwgOwor6Z2Z5rC05ZynID4gc2Vpc3VpYXRzdVwgOwor55m76Yyy6ICFID4gdG91cm9rdXNoYVwgOwor6IiI6KGM55WMID4ga291Z3lvdWthaVwgOwor5rqW5rG65YudID4ganVua2Vzc2hvdVwgOwor5aSp546L5pifID4gdGVuJydub3VzZWlcIDsKK+air+WtkOi7iiA+IGhhc2hpZ29zaGFcIDsKK+S4ieimquetiSA+IHNhbnNoaW50b3VcIDsKK+S4jee0lOeJqSA+IGZ1anVuYnV0c3VcIDsKK+S4iuWls+S4rSA+IGthbWlqb2NodXVcIDsKK+mzpeWPluecjCA+IHRvdHRvcmlrZW5cIDsKK+mHjeeXh+iAhSA+IGp1dXNob3VzaGFcIDsKK+iyp+S5j+msriA+IGJpbmJvdWt1amlcIDsKK+WUr+S4gOW6piA+IHRhZGFpY2hpZG9cIDsKK+WlveiJsuWutiA+IGtvdXNob2t1a2FcIDsKK+avm+earuWVhiA+IGtlZ2F3YXNob3VcIDsKK+avlOi8g+e0miA+IGhpa2FrdWt5dXVcIDsKK+ePvuWcqOmrmCA+IGdlbnphaWRha2FcIDsKK+mZuOa1t+epuiA+IHJpa3VrYWlrdXVcIDsKK+WPjOecvOmPoSA+IHNvdWdhbmt5b3VcIDsKK+mnkOi8quWgtCA+IGNodXVyaW5qb3VcIDsKK+eZvemJhOmJsSA+IGhha3V0ZWtrb3VcIDsKK+Wkp+WuruS6uiA+IG9vbWl5YWJpdG9cIDsKK+mbquWQiOaIpiA+IHl1a2lnYXNzZW5cIDsKK+eJh+agl+eyiSA+IGthdGFrdXJpa29cIDsKK+eZuuihqOS8miA+IGhhcHB5b3VrYWlcIDsKK+WQkOeAieeJqSA+IHRvc2hhYnV0c3VcIDsKK+ijj+ihqOe0mSA+IHVyYWJ5b3VzaGlcIDsKK+WIh+aWreWbsyA+IHNldHN1ZGFuenVcIDsKK+aAneaDkeiytyA+IG9tb3dha3VnYWlcIDsKK+ims+W/teirliA+IGthbicnbmVucm9uXCA7Civnjonpn7Pnm6QgPiBneW9rdW9uYmFuXCA7Civlj43li5XnmoQgPiBoYW5kb3V0ZWtpXCA7CivmlZHlkb3oiYcgPiBreXV1bWVpdGVpXCA7Civntbblr77nmoQgPiB6ZXR0YWl0ZWtpXCA7CivmuKzph4/lm7MgPiBzb2t1cnlvdXp1XCA7CivkuInlpKflm70gPiBzYW5kYWlrb2t1XCA7CivlnLDmlrnnl4UgPiBjaGlob3VieW91XCA7Civlh7rniYjogIUgPiBzaHVwcGFuc2hhXCA7Civkvpvntabot68gPiBreW91a3l1dXJvXCA7Civnq5zmto7pppkgPiByeXV1emVua291XCA7CivlsITniIbloLQgPiBzaGFiYWt1am91XCA7CivmuKzph4/lmaggPiBzb2t1cnlvdWtpXCA7CivlnJ/kv5flraYgPiBkb3pva3VnYWt1XCA7Civnvo7lpbPmoZwgPiBiaWpvemFrdXJhXCA7CivljZfjgIXmnbEgPiBuYW4nJ25hbnRvdVwgOwor5Lq65qC85qipID4gamlua2FrdWtlblwgOwor5YiG6Kej55qEID4gYnVua2FpdGVraVwgOwor5LuW6Kaa55qEID4gdGFrYWt1dGVraVwgOwor5aSp5Li75pWZID4gdGVuc2h1a3lvdVwgOwor6Zuq5YyW57KnID4geXVraWdlc2hvdVwgOwor5b2i5byP576OID4ga2Vpc2hpa2liaVwgOwor6Zu76YCa5aSnID4gZGVudHN1dWRhaVwgOwor56CU56m256S+ID4ga2Vua3l1dXNoYVwgOwor5LiJ6KeS54K5ID4gc2Fua2FrdXRlblwgOwor5Lyd5pu46bOpID4gZGVuc2hvYmF0b1wgOwor5LuW6Kaa55eHID4gdGFrYWt1c2hvdVwgOwor5raI6ICX5oimID4gc2hvdW1vdXNlblwgOwor5LuV6Kiz5pu4ID4gc2hpd2FrZXNob1wgOwor6YGK5LyR5ZywID4geXV1a3l1dWNoaVwgOwor5Y+N5b+c5oCnID4gaGFuJydub3VzZWlcIDsKK+aatOi1sOaXjyA+IGJvdXNvdXpva3VcIDsKK+e0gOWFg+evgCA+IGtpZ2Vuc2V0c3VcIDsKK+a4qeazieWuvyA+IG9uc2VuJyd5YWRvXCA7CivllJDovpvlrZAgPiB0b3VnYXJhc2hpXCA7Civml6XkuK3pn5MgPiBuaXRjaHV1a2FuXCA7CivnkIbop6PlipsgPiByaWthaXJ5b2t1XCA7CivlhazlhbHosqEgPiBrb3VreW91emFpXCA7CivmpJzlrprmlpkgPiBrZW50ZWlyeW91XCA7CivluILplbfpgbggPiBzaGljaG91c2VuXCA7Civlronmma7oq4sgPiB5YXN1YnVzaGluXCA7CivmsLTpgZPmlpkgPiBzdWlkb3VyeW91XCA7CivkuKHmiJDmlZcgPiByeW91c2VpYmFpXCA7CivliJ3nr4Dlj6UgPiBoYXRzdXpla2t1XCA7Civmr5TovIPnmoQgPiBoaWtha3V0ZWtpXCA7Civlm73pgKPou40gPiBrb2t1cmVuZ3VuXCA7CivkuIrntJrnlJ8gPiBqb3VreXV1c2VpXCA7CivnhKHpoJPnnYAgPiBtdXRvbmNoYWt1XCA7Civlrablj4vkvJogPiBnYWt1eXV1a2FpXCA7Civlho3mnaXmnIggPiBzYXJhaWdldHN1XCA7Civlvozml6Xoq4cgPiBnb2ppdHN1ZGFuXCA7CivlgpnojZLpo58gPiBiaWtvdXNob2t1XCA7CivkuI3ooYzot6EgPiBmdWd5b3VzZWtpXCA7Civmlpzpmb3ml48gPiBzaGF5b3V6b2t1XCA7CivpnZLljJbniakgPiBzZWlrYWJ1dHN1XCA7CivlpKnnjovlsbEgPiB0ZW4nJ25vdXphblwgOwor5Y6E5LuL6ICFID4geWFra2FpbW9ub1wgOwor5YuH54yb5b+DID4geXV1bW91c2hpblwgOwor5q2m5Yqb5oimID4gYnVyeW9rdXNlblwgOwor5LiJ6KeS5rOVID4gc2Fua2FrdWhvdVwgOwor5a6X5pWZ55S7ID4gc2h1dWt5b3VnYVwgOwor56CU56m255SfID4ga2Vua3l1dXNlaVwgOwor5Ye65aWU6ICFID4gc2h1cHBvbnNoYVwgOwor5Y+O55uK6YeRID4gc2h1dWVraWtpblwgOwor5rC36I+T5a2QID4ga29vcmlnYXNoaVwgOwor6Lu95bel5qWtID4ga2Vpa291Z3lvdVwgOwor6KiY5oa25YqbID4ga2lva3VyeW9rdVwgOwor5Y2z6IiI6KmpID4gc29ra3lvdXNoaVwgOwor5Y+k55Sf54mpID4ga29zZWlidXRzdVwgOwor54ax5oSb6ICFID4gbmV0c3VhaXNoYVwgOwor5aSp6aCC54K5ID4gdGVuY2hvdXRlblwgOwor54Sh6LOH5YqbID4gbXVzaGlyeW9rdVwgOwor6IiI6KGM5qipID4ga291Z3lvdWtlblwgOwor5p2+5qC55rK5ID4gc2hvdWtvbicneXVcIDsKK+eZvua4iOalvSA+IGt1ZGFyYWdha3VcIDsKK+WcqOS7u+S4rSA+IHphaW5pbmNodXVcIDsKK+a7nuWcqOS4rSA+IHRhaXphaWNodXVcIDsKK+WHuueJiOekviA+IHNodXBwYW5zaGFcIDsKK+ijveiMtualrSA+IHNlaWNoYWd5b3VcIDsKK+iyv+aYk+WVhiA+IGJvdWVraXNob3VcIDsKK+WbveWLmeecgSA+IGtva3VtdXNob3VcIDsKK+S4reWNl+exsyA+IGNodXVuYW5iZWlcIDsKK+ahkOS4gOiRiSA+IGtpcmloaXRvaGFcIDsKK+WIneevgOS+myA+IGhhdHN1emVra3VcIDsKK+WFpemBuOiAhSA+IG55dXVzZW5zaGFcIDsKK+e4puekvuS8miA+IHRhdGVzaGFrYWlcIDsKK+aTjee4puW4rSA+IHNvdWp1dXNla2lcIDsKK+WRqOaXi+WxiyA+IHNodXVzZW4nJ3lhXCA7Civmloflrablo6sgPiBidW5nYWt1c2hpXCA7Civlt6XlrabogIUgPiBrb3VnYWt1c2hhXCA7Civlj6TkvJ3oqqwgPiBrb2RlbnNldHN1XCA7CivljbDliLflt6UgPiBpbnNhdHN1a291XCA7CivmvZzmsLTmnI0gPiBzZW5zdWlmdWt1XCA7CivlpKfkuLvmlZkgPiBkYWlzaHVreW91XCA7CivkuIrloLTmoKogPiBqb3Vqb3VrYWJ1XCA7CivpoZ7lnovnmoQgPiBydWlrZWl0ZWtpXCA7CivlkLnlh7rniakgPiBmdWtpZGVtb25vXCA7CivmipfnnJ/oj4wgPiBrb3VzaGlua2luXCA7Civpm6Pms6LmvZ8gPiBuYW5pd2FnYXRhXCA7Civnp5/lgJ/lnLAgPiBzb3NoYWt1Y2hpXCA7CivliqDovrLnoLIgPiBrYW4nJ25vbmhvdVwgOwor6YCg55+z56iOID4gem91a29rdXplaVwgOwor6aeQ6LuK5aC0ID4gY2h1dXNoYWpvdVwgOwor6Kmm566X6KGoID4gc2hpc2FuaHlvdVwgOwor57WM5riI5a2mID4ga2VpemFpZ2FrdVwgOwor5oCl5Yu+6YWNID4ga3l1dWtvdWJhaVwgOwor5YSA5byP55SoID4gZ2lzaGlraXlvdVwgOwor6KGA5qCT55eHID4ga2Vzc2Vuc2hvdVwgOwor5LyK6YGU5ae/ID4gZGF0ZXN1Z2F0YVwgOwor55eF5Y6f5L2TID4gYnlvdWdlbnRhaVwgOwor5YWr5YiG55uuID4gaGFjaGlidW5tZVwgOwor6Kej5p6Q5oCnID4ga2Fpc2VraXNlaVwgOwor5a6i6Kaz5oCnID4ga3lha2thbnNlaVwgOwor6LaF5aqS5L2TID4gY2hvdWJhaXRhaVwgOwor5rC06Iqt6JWJID4gbWl6dWJhc2hvdVwgOwor6ZW35pyf55qEID4gY2hvdWtpdGVraVwgOwor55y86Y+h6JuHID4gbWVnYW5laGViaVwgOwor5Ye654mI55WMID4gc2h1cHBhbmthaVwgOwor5byB5YSf6YeRID4gYmVuc2hvdWtpblwgOwor5o6S5aSW55qEID4gaGFpZ2FpdGVraVwgOwor5pyq54af6ICFID4gbWlqdWt1bW9ub1wgOwor5YiG5pWj5Z6LID4gYnVuc2FuZ2F0YVwgOwor55+t57eo6ZuGID4gdGFucGVuc2h1dVwgOwor5reh6Lev5bO2ID4gYXdhamlzaGltYVwgOwor5aKX5q6W54KJID4gem91c2hva3Vyb1wgOwor5LiL6KaL5p2/ID4gc2hpdGFtaWl0YVwgOwor5YiG5pWZ5aC0ID4gYnVua3lvdWpvdVwgOwor5Y+y5paZ6aSoID4gc2hpcnlvdWthblwgOwor6KGA5bCP5p2/ID4ga2Vzc2hvdWJhblwgOwor6YeR6Imy5aCCID4ga29uamlraWRvdVwgOwor5ryi5pa56JasID4ga2FucG91eWFrdVwgOwor57+76Kiz5a62ID4gaG9uJyd5YWt1a2FcIDsKK+W5s+etieimsyA+IGJ5b3Vkb3VrYW5cIDsKK+aknOafu+WumCA+IGtlbnNob3VrYW5cIDsKK+aWh+WtpuWPsiA+IGJ1bmdha3VzaGlcIDsKK+WkieWIhuWtpiA+IGhlbmJ1bmdha3VcIDsKK+WJjeagveeJqSA+IHNlbnphaW1vbm9cIDsKK+W8t+WjruWJpCA+IGt5b3Vzb3V6YWlcIDsKK+a1t+eUo+alrSA+IGthaXNhbmd5b3VcIDsKK+eMrue0jeiAhSA+IGtlbicnbm91c2hhXCA7Civlha3pgKPmmJ8gPiByb2t1cmVuc2VpXCA7Civli4XpoZjlr7ogPiBjaG9rdWdhbmppXCA7CivkvJ3mn5Pnl4UgPiBkZW5zZW5ieW91XCA7CivkuK3oj6/pjYsgPiBjaHV1a2FuYWJlXCA7CivlpKnkuIrlt50gPiB0ZW5qb3VnYXdhXCA7CivmtIvoiqXlrZAgPiB5b3VnYXJhc2hpXCA7Civnmobli6Tos54gPiBrYWlraW5zaG91XCA7Civph5HlsZ7niYcgPiBraW56b2t1aGVuXCA7CivlpYfooZPluKsgPiBraWp1dHN1c2hpXCA7CivlopfliqDnjocgPiB6b3VrYXJpdHN1XCA7CivmqJnmupblnosgPiBoeW91anVua2VpXCA7Civph5HotaToibIgPiBraW4nJ2FrYWlyb1wgOwor6LKs5Lu75oSfID4gc2VraW5pbmthblwgOwor5reL5be056+AID4gcmlucGFzZXRzdVwgOwor5L6b54mp5Y+wID4ga3Vtb3RzdWRhaVwgOwor57Gz5Zu95Lq6ID4gYmVpa29rdWppblwgOwor562J5rip5byPID4gdG91b25zaGlraVwgOwor5YmN5Lu76ICFID4gemVuJyduaW5zaGFcIDsKK+ijvemAoOWFgyA+IHNlaXpvdW1vdG9cIDsKK+aDheWgsemHjyA+IGpvdWhvdXJ5b3VcIDsKK+a2iOiAl+WTgSA+IHNob3Vtb3VoaW5cIDsKK+S4oeaJi+WIqSA+IHJ5b3V0ZWtpa2lcIDsKK+iThOmbu+WZqCA+IGNoaWt1ZGVua2lcIDsKK+Wvvuinkue3miA+IHRhaWtha3VzZW5cIDsKK+S4gOaZqeS4rSA+IGhpdG9iYW5qdXVcIDsKK+aal+WJo+auuiA+IGFua2Vuc2F0c3VcIDsKK+mgrei2s+mhniA+IHRvdXNva3VydWlcIDsKK+WcqOadseS6rCA+IHphaXRvdWt5b3VcIDsKK+ajhOiogOiRiSA+IHN1dGVrb3RvYmFcIDsKK+WFjeeojuihqCA+IG1lbnplaWh5b3VcIDsKK+WbveawkeaApyA+IGtva3VtaW5zZWlcIDsKK+W9q+WIu+WutiA+IGNob3Vrb2t1a2FcIDsKK+iqreabuOeVjCA+IGRva3VzaG9rYWlcIDsKK+S9v+eUqOaWmSA+IHNoaXlvdXJ5b3VcIDsKK+WxheeVmeawkSA+IGt5b3J5dXVtaW5cIDsKK+aXi+WFieinkiA+IHNlbmtvdWtha3VcIDsKK+Wwj+mWk+S9vyA+IGtvbWFkenVrYWlcIDsKK+inkuiGnOeCjiA+IGtha3VtYWt1ZW5cIDsKK+mwreiEmumhniA+IGtpa3lha3VydWlcIDsKK+mRkeitmOWutiA+IGthbnNoaWtpa2FcIDsKK+iIiOihjOW4qyA+IGtvdWd5b3VzaGlcIDsKK+WstuWkqeS4iyA+IGtha2FhZGVua2FcIDsKK+WbuuW9oueJqSA+IGtva2VpYnV0c3VcIDsKK+e0oee4vuezuCA+IGJvdXNla2lpdG9cIDsKK+WQneWXh+WutiA+IHJpbnNob2t1a2FcIDsKK+eCuuabv+WwuyA+IGthd2FzZWppcmlcIDsKK+iqreiAheashCA+IGRva3VzaGFyYW5cIDsKK+WOhOS7i+eJqSA+IHlha2thaW1vbm9cIDsKK+WHuuS4luS9nCA+IHNodXNzZXNha3VcIDsKK+WLleaRqeaTpiA+IGRvdW1hc2F0c3VcIDsKK+mDqOWIhumjnyA+IGJ1YnVuc2hva3VcIDsKK+WHuueJiOazlSA+IHNodXBwYW5ob3VcIDsKK+iqsumhjOabsiA+IGthZGFpa3lva3VcIDsKK+auuuiZq+WJpCA+IHNhdGNodXV6YWlcIDsKK+iWhOmbquiNiSA+IHVzdXl1a2lzb3VcIDsKK+S6uuS9k+WtpiA+IGppbnRhaWdha3VcIDsKK+W5s+WfjuS6rCA+IGhlaWpvdWt5b3VcIDsKK+S4ieinkuW4vSA+IHNhbmtha3Vib3VcIDsKK+ihneaSg+azoiA+IHNob3VnZWtpaGFcIDsKK+S4ieinkuW3viA+IHNhbmtha3VraW5cIDsKK+mDtemAgeaWmSA+IHl1dXNvdXJ5b3VcIDsKK+efs+eCremFuCA+IHNla2l0YW5zYW5cIDsKK+W+geacjeiAhSA+IHNlaWZ1a3VzaGFcIDsKK+W8t+ihjOi7jSA+IGt5b3Vrb3VndW5cIDsKK+S7o+ihqOWboyA+IGRhaWh5b3VkYW5cIDsKK+iEmuacrOWutiA+IGt5YWt1aG9ua2FcIDsKK+iPk+WtkOmJoiA+IGthc2hpYmFjaGlcIDsKK+ebtOWGhumMkCA+IGNob2t1ZW5zdWlcIDsKK+WHuueJiOaoqSA+IHNodXBwYW5rZW5cIDsKK+WGjeacjeW9uSA+IHNhaWZ1a3Vla2lcIDsKK+eUn+aUvumAgSA+IG5hbWFob3Vzb3VcIDsKK+ioiOeul+WwuiA+IGtlaXNhbmpha3VcIDsKK+mAmuWLpOiAhSA+IHRzdXVraW5zaGFcIDsKK+S4gOWhgee3miA+IGljaGlydWlzZW5cIDsKK+a2sumHj+ioiCA+IGVraXJ5b3VrZWlcIDsKK+WIh+aUr+S4uSA+IGtpcmlzaGl0YW5cIDsKK+mXh+W4guWgtCA+IHlhbWlzaGlqb3VcIDsKK+manOWus+iAhSA+IHNob3VnYWlzaGFcIDsKK+iytOaXj+eahCA+IGtpem9rdXRla2lcIDsKK+WNsOWIt+S6uiA+IGluc2F0c3VuaW5cIDsKK+a1t+iziuiIuSA+IGthaXpva3VzZW5cIDsKK+WNl+WNl+ilvyA+IG5hbicnbmFuc2VpXCA7CivohLPmjK/nm6ogPiBub3VzaGludG91XCA7Civmir3osaHljJYgPiBjaHV1c2hvdWthXCA7CivorJvnv5LkvJogPiBrb3VzaHV1a2FpXCA7CivmhJvnjqnniakgPiBhaWdhbmJ1dHN1XCA7Civpurvpm4DlsYsgPiBtYXplamFuJyd5YVwgOwor5Lyd5p+T5q+SID4gZGVuc2VuZG9rdVwgOwor5LuW5Zu96ICFID4gdGFrb2t1bW9ub1wgOwor6YeN5bGk55qEID4ganV1c291dGVraVwgOwor5LqU6YeN5aGUID4gZ29qdXVub3RvdVwgOwor5LiL57Sa5a+pID4ga2FreXV1c2hpblwgOwor5L2O5omA5b6XID4gdGVpc2hvdG9rdVwgOwor5bCC6ZaA56ugID4gc2VubW9uc2hvdVwgOwor6Yuz6YCg5omAID4gY2h1dXpvdXNob1wgOwor55+t5pmC5pelID4gdGFuamlqaXRzdVwgOwor5LyR5qWt5pelID4ga3l1dWd5b3ViaVwgOwor5YWI56uv55qEID4gc2VudGFudGVraVwgOwor5Zan5Zip6IWwID4ga2Vua2Fnb3NoaVwgOwor6I2J5Y+M57SZID4ga3VzYXpvdXNoaVwgOwor56m65oOz55qEID4ga3V1c291dGVraVwgOwor6Zuq6YGU56OoID4geXVraWRhcnVtYVwgOwor5YaF5Lqk5riJID4gbmFpa291c2hvdVwgOwor5bqD5ZGK56S+ID4ga291a29rdXNoYVwgOwor6LKo54mp6aeFID4ga2Ftb3RzdWVraVwgOwor6LKn5LmP57GkID4gYmluYm91Z3VqaVwgOwor5a++6Kmx5byPID4gdGFpd2FzaGlraVwgOwor5YWx55Sj6LuNID4ga3lvdXNhbmd1blwgOwor5LiN5om/6Ku+ID4gZnVzaG91ZGFrdVwgOwor5rGC5Lq66KqMID4ga3l1dWppbnNoaVwgOwor6Z6t5q+b6JmrID4gYmVubW91Y2h1dVwgOwor57Ch5Y2Y5pyNID4ga2FudGFuZnVrdVwgOwor5Lit5oCn5a2QID4gY2h1dXNlaXNoaVwgOwor6buS56mC55eFID4ga3Vyb2hvYnlvdVwgOwor5YiG5ouF6aGNID4gYnVudGFuZ2FrdVwgOwor5aSq6Zm96JmrID4gdGFpeW91Y2h1dVwgOwor5pqr5a6a55qEID4gemFudGVpdGVraVwgOwor5Luj6KGo5L6LID4gZGFpaHlvdXJlaVwgOwor5ZCM5Zu95rCRID4gZG91a29rdW1pblwgOwor6KiY5b+154mpID4ga2luZW5idXRzdVwgOwor5pen5L2T5Yi2ID4ga3l1dXRhaXNlaVwgOwor5Y2X5rSL5p2QID4gbmFuJyd5b3V6YWlcIDsKK+mdnuW4uOWPoyA+IGhpam91Z3VjaGlcIDsKK+S4iuihqOe0mSA+IHV3YWJ5b3VzaGlcIDsKK+mdoueZveWRsyA+IG9tb3NoaXJvbWlcIDsKK+S/neWtmOmjnyA+IGhvem9uc2hva3VcIDsKK+WNiuaEj+itmCA+IGhhbicnaXNoaWtpXCA7CivmnKzoqr/lrZAgPiBob25jaG91c2hpXCA7CivnuZTlpbPmmJ8gPiBzaG9rdWpvc2VpXCA7CivlsILploDnmoQgPiBzZW5tb250ZWtpXCA7CivloLHlhJ/ph5EgPiBob3VzaG91a2luXCA7Civmk7LlvL7nrZIgPiB0ZWtpZGFudG91XCA7CivosqfkuY/npZ4gPiBiaW5ib3VnYW1pXCA7Civlm57mvJXmpa0gPiBrYWlzb3VneW91XCA7CivlpKfntbHpoJggPiBkYWl0b3VyeW91XCA7Civph4/lrZDoq5YgPiByeW91c2hpcm9uXCA7CivkuK3lipvnsokgPiBjaHV1cmlraWtvXCA7CivnnLzpj6HnjL8gPiBtZWdhbmV6YXJ1XCA7Civmpa3nlYzntJkgPiBneW91a2Fpc2hpXCA7CivpnZ7lhazlvI8gPiBoaWtvdXNoaWtpXCA7CivmsLTlhbXmnI0gPiBzdWloZWlmdWt1XCA7Civosq/mnKjloLQgPiBjaG9ib2t1am91XCA7Civmoq/lrZDmrrUgPiBoYXNoaWdvZGFuXCA7CivlvZPmrbPpp5IgPiB0b3VzYWlnb21hXCA7CivlrpfmlZnlrrYgPiBzaHV1a3lvdWthXCA7CivnoJTnqbblrpggPiBrZW5reXV1a2FuXCA7CivmronmlZnogIUgPiBqdW5reW91c2hhXCA7Civmronpm6PogIUgPiBqdW4nJ25hbnNoYVwgOwor5aOB6Ki06KifID4ga2FiZXpvc2hvdVwgOwor546J5pW055CGID4gZ3lva3VzZWlyaVwgOwor6Iyo5Z+O55yMID4gaWJhcmFraWtlblwgOwor5bGI5puy6YOoID4ga3Vra3lva3VidVwgOwor6KSS5aWo6YeRID4gaG91c2hvdWtpblwgOwor5raI6Ziy6ZqKID4gc2hvdWJvdXRhaVwgOwor5pyn5piG5biDID4gb2Jvcm9rb25idVwgOwor55yL55eF5Lq6ID4ga2FuYnlvdW5pblwgOwor6Iqx6Zu76LuKID4gaGFuYWRlbnNoYVwgOwor5Zyw5paH5a2mID4gY2hpbW9uZ2FrdVwgOwor5Y+j5L6b5pu4ID4ga291a3lvdXNob1wgOwor6YeR5bGe5oCnID4ga2luem9rdXNlaVwgOwor6I2J6YeO55CDID4ga3VzYXlha3l1dVwgOwor5qSc5LqL5bGAID4ga2VuamlreW9rdVwgOwor5YWt6L665b2iID4gcm9rdWhlbmtlaVwgOwor6Kqt6ICF5bGkID4gZG9rdXNoYXNvdVwgOwor5YKs5L+D54q2ID4gc2Fpc29rdWpvdVwgOwor5YK+5pac6KeSID4ga2Vpc2hha2FrdVwgOwor5Y+O55uj54q2ID4gc2h1dWthbmpvdVwgOwor5Zyw6ZyH5a2mID4gamlzaGluZ2FrdVwgOwor5Zyo5LiW5LitID4gemFpc2VpY2h1dVwgOwor5aWl5bqn5pW3ID4gb2t1emFzaGlraVwgOwor576O6KGT6aSoID4gYmlqdXRzdWthblwgOwor6Kix5a656YePID4ga3lveW91cnlvdVwgOwor5bCE5pKD5aC0ID4gc2hhZ2VraWpvdVwgOwor5b6M5aSp55qEID4ga291dGVudGVraVwgOwor6aeQ5bGv5ZywID4gY2h1dXRvbmNoaVwgOwor6ISz5rqi6KGAID4gbm91aWtrZXRzdVwgOwor5a2Y5ZG95LitID4gem9ubWVpY2h1dVwgOwor57O75YiX5YyWID4ga2VpcmV0c3VrYVwgOwor5Ye654mI5bGLID4gc2h1cHBhbicneWFcIDsKK+Wvqee+jueahCA+IHNoaW5iaXRla2lcIDsKK+aBkuS5heaApyA+IGtvdWt5dXVzZWlcIDsKK+eJh+iyv+aYkyA+IGthdGFib3Vla2lcIDsKK+aWh+eMruWtpiA+IGJ1bmtlbmdha3VcIDsKK+aZguS7o+iJsiA+IGppZGFpc2hva3VcIDsKK+Wkp+Wkp+eahCA+IGRhaWRhaXRla2lcIDsKK+S6jOmHjeapiyA+IG5panV1YmFzaGlcIDsKK+WcsOiqjOWtpiA+IGNoaXNoaWdha3VcIDsKK+WMluWtpueahCA+IGthZ2FrdXRla2lcIDsKK+iCieW8vuaIpiA+IG5pa3VkYW5zZW5cIDsKK+S4gOe1g+eQtCA+IGljaGlnZW5raW5cIDsKK+mBiueJp+awkSA+IHl1dWJva3VtaW5cIDsKK+aguOWun+mokyA+IGtha3VqaWtrZW5cIDsKK+iyqOeJqei7iiA+IGthbW90c3VzaGFcIDsKK+axguS6uuiAhSA+IGt5dXVqaW5zaGFcIDsKK+WcsOmch+WbvSA+IGppc2hpbmtva3VcIDsKK+WxheeVmeWcsCA+IGt5b3J5dXVjaGlcIDsKK+manOWtkOe0mSA+IHNob3VqaWdhbWlcIDsKK+a9nOWHveeXhSA+IHNlbmthbmJ5b3VcIDsKK+W8leeOh+iAhSA+IGluc290c3VzaGFcIDsKK+a1t+iziueJiCA+IGthaXpva3ViYW5cIDsKK+S/oeS7sOiAhSA+IHNoaW5rb3VzaGFcIDsKK+a2iOmYsui7iiA+IHNob3Vib3VzaGFcIDsKK+S4ieetieizniA+IHNhbnRvdXNob3VcIDsKK+eEoeitpuWvnyA+IG11a2Vpc2F0c3VcIDsKK+W9qeiJsueUuyA+IHNhaXNob2t1Z2FcIDsKK+WLp+WRiuiAhSA+IGthbmtva3VzaGFcIDsKK+W6g+WRiuashCA+IGtvdWtva3VyYW5cIDsKK+iznumHkeeOiyA+IHNob3VraW4nJ291XCA7CivpgJrnn6XnirYgPiB0c3V1Y2hpam91XCA7Civlt6XkvZzlk4EgPiBrb3VzYWt1aGluXCA7CivlnLDmlL/lraYgPiBjaGlzZWlnYWt1XCA7CivlpKrpmb3npZ4gPiB0YWl5b3VzaGluXCA7Civntpnmib/ogIUgPiBrZWlzaG91c2hhXCA7CivkubPoo73lk4EgPiBueXV1c2VpaGluXCA7CivpgYrmkoPpmoogPiB5dXVnZWtpdGFpXCA7CivljZHmgK/ogIUgPiBoaWt5b3Vtb25vXCA7Civlho3mlZnogrIgPiBzYWlreW91aWt1XCA7Civlm73lhoXnt5ogPiBrb2t1bmFpc2VuXCA7CivlmZvnhZnojYkgPiBrYW1pdGFiYWtvXCA7CivmhYjlloTluIIgPiBqaXplbicnaWNoaVwgOwor5Zue5oOz6YyyID4ga2Fpc291cm9rdVwgOwor5aSW5Lqk55qEID4gZ2Fpa291dGVraVwgOwor5L+u55CG5LitID4gc2h1dXJpY2h1dVwgOwor5LiJ562J6KaqID4gc2FudG91c2hpblwgOwor5Zyw6KGo6Z2iID4gY2hpaHlvdW1lblwgOwor5bmy5riJ6KiIID4ga2Fuc2hvdWtlaVwgOwor56CU56m25LyaID4ga2Vua3l1dWthaVwgOwor6IKW5YOP5qipID4gc2hvdXpvdWtlblwgOwor5b255LiN6LazID4geWFrdWJ1c29rdVwgOwor5rOo5oSP5YqbID4gY2h1dWlyeW9rdVwgOwor6IW55LiK5q27ID4gZnVrdWpvdXNoaVwgOwor57eo6ZuG6ICFID4gaGVuc2h1dXNoYVwgOwor5bqD5ZGK5p2/ID4ga291a29rdWJhblwgOwor5riJ56a96aGeID4gc2hvdWtpbnJ1aVwgOwor5YCS6Yyv6ICFID4gdG91c2FrdXNoYVwgOwor5rC055ax55ihID4gbWl6dWJvdXNvdVwgOwor5bmz562J5qipID4gYnlvdWRvdWtlblwgOwor5aSn6ZyH54G9ID4gZGFpc2hpbnNhaVwgOwor6YeN55eH5L6LID4ganV1c2hvdXJlaVwgOwor5Zyw5Z+f55qEID4gY2hpaWtpdGVraVwgOwor5YWx55Sj57O7ID4ga3lvdXNhbmtlaVwgOwor6ZaL6ZaJ5qmLID4ga2FpaGVpa3lvdVwgOwor6LaF6Zu75bCOID4gY2hvdWRlbmRvdVwgOwor6Zmz5oOF5pu4ID4gY2hpbmpvdXNob1wgOwor5oqV5qmf54axID4gdG91a2luZXRzdVwgOwor5YaX6KuH5LqLID4gam91ZGFua290b1wgOwor5pyA6auY57SaID4gc2Fpa291a3l1dVwgOwor5oCd5oOR5birID4gb21vd2FrdXNoaVwgOwor6KW/5pel5pysID4gbmlzaGluaWhvblwgOwor6L+R5Luj55qEID4ga2luZGFpdGVraVwgOwor6LaF5aSn5Z6LID4gY2hvdW9vZ2F0YVwgOwor56CV5rC36Ii5ID4gc2FpaHlvdXNlblwgOwor5ryB5qWt5rOVID4gZ3lvZ3lvdWhvdVwgOwor5pyq6Kej5rG6ID4gbWlrYWlrZXRzdVwgOwor5beo5Lq65Zu9ID4ga3lvamlua29rdVwgOwor5pyA5bCP6ZmQID4gc2Fpc2hvdWdlblwgOwor5YWs5YWx5oCnID4ga291a3lvdXNlaVwgOwor54Sh57K+6autID4gYnVzaG91aGlnZVwgOwor5bel5a2m5aOrID4ga291Z2FrdXNoaVwgOwor6YWS6YCg5qWtID4gc2h1em91Z3lvdVwgOwor6Imy6Ymb562GID4gaXJvZW5waXRzdVwgOwor54Gr5omT55+zID4gaGl1Y2hpaXNoaVwgOwor6Ya46YCg5qWtID4gam91em91Z3lvdVwgOwor5Y2Y55y86Y+hID4gdGFuZ2Fua3lvdVwgOwor5ryB5qWt5qipID4gZ3lvZ3lvdWtlblwgOwor55+z54Gv57GgID4gaXNoaWRvdXJvdVwgOwor5Y2X5rC35rSLID4gbmFucHlvdXlvdVwgOwor6bGI5aC06J+5ID4gdGFyYWJhZ2FuaVwgOwor5bKh5bGx55yMID4gb2theWFtYWtlblwgOwor57Sh57i+5belID4gYm91c2VraWtvdVwgOwor6LW354iG6JasID4ga2liYWt1eWFrdVwgOwor56K66KqN5pu4ID4ga2FrdW5pbnNob1wgOwor6KqV55Sf55+zID4gdGFuam91c2VraVwgOwor6Ziy6Iet5YmkID4gYm91c2h1dXphaVwgOwor6Yyr6KO95ZOBID4gc3V6dXNlaWhpblwgOwor6LKo54mp6Ii5ID4ga2Ftb3RzdXNlblwgOwor5LiA5aGB5omLID4gaWNoaXJ1aXNodVwgOwor6ISa57ea576OID4ga3lha3VzZW5iaVwgOwor5pyJ5L6h54mpID4geXV1a2FidXRzdVwgOwor5qSN55Sf5ZuzID4gc2hva3VzZWl6dVwgOwor55m65oOF5pyfID4gaGF0c3Vqb3VraVwgOwor55m95rC056S+ID4gaGFrdXN1aXNoYVwgOwor5o6h566X5qCqID4gc2Fpc2Fua2FidVwgOwor6ZW35LiB5aC0ID4gbmFnYWNob3ViYVwgOwor5pyJ5a2U6JmrID4geXV1a291Y2h1dVwgOwor5aSp54S255eYID4gdGVuJyduZW50b3VcIDsKK+Wbm+aLjeWtkCA+IHlvbmJ5b3VzaGlcIDsKK+WGl+mVt+ezuyA+IGpvdWNob3VrZWlcIDsKK+aXpeacrOW8jyA+IG5paG9uc2hpa2lcIDsKK+a6gOW5tOm9oiA+IG1hbicnbmVucmVpXCA7CivmtojpmLLoiYcgPiBzaG91Ym91dGVpXCA7CivlsI/mtrLog54gPiBzaG91ZWtpaG91XCA7CivpppbllLHogIUgPiBzaHVzaG91c2hhXCA7Civml6XmnKzlubMgPiBuaWhvbmRhaXJhXCA7CivpiYTpnaLnmq4gPiB0ZXRzdW1lbnBpXCA7CivkuLvmqKnlm70gPiBzaHVrZW5rb2t1XCA7Civosrfmjpvph5EgPiBrYWlrYWtla2luXCA7Civnn7PngbDnn7MgPiBzZWtrYWlzZWtpXCA7CivnsbPllY/lsYsgPiBrb21lZG9uJyd5YVwgOwor5oCd5oOz5YqHID4gc2hpc291Z2VraVwgOwor5LiH5Zu95rCRID4gYmFua29rdW1pblwgOwor5Yun5ZGK54q2ID4ga2Fua29rdWpvdVwgOwor5pWX5YyX5oSfID4gaGFpYm9rdWthblwgOwor5a+G6Ly46Ii5ID4gbWl0c3V5dXNlblwgOwor5Y+v5aSJ57+8ID4ga2FoZW4nJ3lva3VcIDsKK+WBj+mgreeXmyA+IGhlbnRvdXRzdXVcIDsKK+W5tOm9oue1piA+IG5lbnJlaWt5dXVcIDsKK+mAj+ejgeeOhyA+IHRvdWppcml0c3VcIDsKK+WOhOS7i+S6iyA+IHlha2thaWdvdG9cIDsKK+S8j+WwhOa/oCA+IGZ1a3VzaGFnb3VcIDsKK+aHuOWjheWegiA+IGtlbicneW91c3VpXCA7CivnlYzno4HmpbUgPiBrYWlqaWt5b2t1XCA7Civlv5znlKjlipsgPiBvdXlvdXJ5b2t1XCA7Civml6Xmm5zml6UgPiBuaWNoaXlvdWJpXCA7CivmtojpmLLnvbIgPiBzaG91Ym91c2hvXCA7CivosqfkuY/mgKcgPiBiaW5ib3VzaG91XCA7CivmoLjltKnlo4ogPiBrYWt1aG91a2FpXCA7Civoqq3mm7jkvJogPiBkb2t1c2hva2FpXCA7CivkuI3mvZTmhJ8gPiBmdWtldHN1a2FuXCA7CivmlbDlrabogIUgPiBzdXVnYWt1c2hhXCA7CivogbTlj5bogIUgPiBjaG91c2h1c2hhXCA7Civoqq3mm7jkurogPiBkb2t1c2hvamluXCA7CivliY3ku7vlnLAgPiB6ZW4nJ25pbmNoaVwgOwor5ryB6Imy5a62ID4gZ3lvc2hva3VrYVwgOwor6KO95L2c6ICFID4gc2Vpc2FrdXNoYVwgOwor5rKh5YCL5oCnID4gYm90c3Vrb3NlaVwgOwor5YWo5bqX5LitID4gemVudGVuY2h1dVwgOwor5a6Y57Wm5ZOBID4ga2Fua3l1dWhpblwgOwor55m96YeR5pePID4gaGFra2luem9rdVwgOwor5aSp5paH5a2mID4gdGVubW9uZ2FrdVwgOwor5YW15a2m6ICFID4gaGVpZ2FrdXNoYVwgOwor5ZCI5ZSx6ZqKID4gZ2Fzc2hvdXRhaVwgOwor5LiN5oiQ56uLID4gZnVzZWlyaXRzdVwgOwor54yu57SN5ZOBID4ga2VuJydub3VoaW5cIDsKK+e0sOeykuWIhiA+IHNhaXJ5dXVidW5cIDsKK+eMm+e3tOe/kiA+IG1vdXJlbnNodXVcIDsKK+S+i+WklueahCA+IHJlaWdhaXRla2lcIDsKK+WKueeOh+WMliA+IGtvdXJpdHN1a2FcIDsKK+mZpOiZq+iPiiA+IGpvY2h1dWdpa3VcIDsKK+e0heeUn+WnnCA+IGJlbmlzaG91Z2FcIDsKK+W5suaLk+WcsCA+IGthbnRha3VjaGlcIDsKK+WHjeWCt+iAhSA+IHRvdXNob3VzaGFcIDsKK+WNl+WNl+adsSA+IG5hbicnbmFudG91XCA7CivlkIzlm73kurogPiBkb3Vrb2t1amluXCA7Civnm67nmoToqp4gPiBtb2t1dGVraWdvXCA7CivkuInlm73lv5cgPiBzYW5nb2t1c2hpXCA7CivkurrniannlLsgPiBqaW5idXRzdWdhXCA7CivlkLjlhaXlmaggPiBreXV1bnl1dWtpXCA7CivpmLLlr5LmnI0gPiBib3VrYW5mdWt1XCA7Civkv67pmaLplbcgPiBzaHV1aW5jaG91XCA7Civlm73lhoXms5UgPiBrb2t1bmFpaG91XCA7CivmjqLnqbbogIUgPiB0YW5reXV1c2hhXCA7CivliJ3lv4PogIUgPiBzaG9zaGluc2hhXCA7CivmnKrplovnmbogPiBtaWthaWhhdHN1XCA7CivluoPlkYrloZQgPiBrb3Vrb2t1dG91XCA7Civplovmi5PogIUgPiBrYWl0YWt1c2hhXCA7CivkurrpoZ7lraYgPiBqaW5ydWlnYWt1XCA7Civnn6Xml6XmtL4gPiBjaGluaWNoaWhhXCA7CivmnIDpq5jmva4gPiBzYWlrb3VjaG91XCA7CivlpKnnhLbmuK8gPiB0ZW4nJ25lbmtvdVwgOwor5Y+N6YCG5YWQID4gaGFuZ3lha3VqaVwgOwor5LiA5Zu96ICFID4gaWtrb2t1bW9ub1wgOwor5aW95p2Q5paZID4ga291emFpcnlvdVwgOwor5aSq6Zm95pqmID4gdGFpeW91cmVraVwgOwor5bi455So55mWID4gam91eW91aGVraVwgOwor5pep5pWZ6IKyID4gc291a3lvdWlrdVwgOwor5qC85a2Q57ieID4ga291c2hpamltYVwgOwor5Y+N6LuN55qEID4gaGFuZ3VudGVraVwgOwor6Jas5YyF57SZID4geWFrdWhvdXNoaVwgOwor5YW15pu56ZW3ID4gaGVpc291Y2hvdVwgOwor5ryi5paH5a2mID4ga2FuYnVuZ2FrdVwgOwor5oCl5YWI6YuSID4ga3l1dXNlbnBvdVwgOwor5Y+j5aWH6bqXID4ga3VjaGlnaXJlaVwgOwor6KGM5pS/5rOVID4gZ3lvdXNlaWhvdVwgOwor6Iqx6KiA6JGJID4gaGFuYWtvdG9iYVwgOwor6YCB6YeR6aGNID4gc291a2luZ2FrdVwgOwor5rGC5ama6ICFID4ga3l1dWtvbnNoYVwgOwor5YaN6Kq/5pW0ID4gc2FpY2hvdXNlaVwgOwor6aKo6KaL6baPID4ga2F6YW1pZG9yaVwgOwor5Z+35pS/5a6YID4gc2hpc3NlaWthblwgOwor6IO95qW95aCCID4gbm91Z2FrdWRvdVwgOwor5aW95LiL54mpID4ga291a2FidXRzdVwgOwor5Y+M55m65qmfID4gc291aGF0c3VraVwgOwor5YWs5YWx5YK1ID4ga291a3lvdXNhaVwgOwor5pio5bm05p2lID4gc2FrdW5lbnJhaVwgOwor5o+Q5L6b6ICFID4gdGVpa3lvdXNoYVwgOwor6Ya46YCg5a2mID4gam91em91Z2FrdVwgOwor5b6X54K55ZyPID4gdG9rdXRlbmtlblwgOwor5a+p576O5a2mID4gc2hpbmJpZ2FrdVwgOwor5aWz5L6/5omAID4gb24nJ25hYmVuam9cIDsKK+WRieacjeeJqSA+IGdvZnVrdW1vbm9cIDsKK+eXh+WAmee+pCA+IHNob3Vrb3VndW5cIDsKK+agvOWtkOeqkyA+IGtvdXNoaW1hZG9cIDsKK+aWh+aYjuWbvSA+IGJ1bm1laWtva3VcIDsKK+ihjOaUv+aoqSA+IGd5b3VzZWlrZW5cIDsKK+mHkeacqOeKgCA+IGtpbm1va3VzZWlcIDsKK+enkeWtpueahCA+IGthZ2FrdXRla2lcIDsKK+aJi+acreWeiyA+IHRlZnVkYWdhdGFcIDsKK+WFqOiIrOeahCA+IHplbnBhbnRla2lcIDsKK+eJueauiumLvCA+IHRva3VzaHVrb3VcIDsKK+Wcp+e4ruaApyA+IGFzc2h1a3VzZWlcIDsKK+WumOaIv+mVtyA+IGthbmJvdWNob3VcIDsKK+eZveegguezliA+IHNoaXJvemF0b3VcIDsKK+aYpeWIhueCuSA+IHNodW5idW50ZW5cIDsKK+aXp+S4u+S6uiA+IGt5dXVzaHVqaW5cIDsKK+iRiee3kee0oCA+IHlvdXJ5b2t1c29cIDsKK+WGhemdoueahCA+IG5haW1lbnRla2lcIDsKK+iCuue1kOaguCA+IGhhaWtla2tha3VcIDsKK+WbnuWPjumHkSA+IGthaXNodXVraW5cIDsKK+e2v+W4veWtkCA+IHdhdGFib3VzaGlcIDsKK+aApemAsua0viA+IGt5dXVzaGluaGFcIDsKK+iKuOihk+mZoiA+IGdlaWp1dHN1aW5cIDsKK+amtOW8vuegsiA+IHJ5dXVkYW5wb3VcIDsKK+WGkumZuuW/gyA+IGJvdWtlbnNoaW5cIDsKK+WPr+eHg+eJqSA+IGthbmVuYnV0c3VcIDsKK+aXpeacrOS4gCA+IG5paG9uJydpY2hpXCA7Civkv67nt7TogIUgPiBzaHV1cmVuc2hhXCA7Civlj43lsITpj6EgPiBoYW5zaGFreW91XCA7Civkuoznm7Top5IgPiBuaWNob2trYWt1XCA7CivlnovlpInmj5sgPiBrYXRhaGVua2FuXCA7Civljrvli6LniZsgPiBreW9zZWl1c2hpXCA7Civniq/nvarlraYgPiBoYW56YWlnYWt1XCA7Civljp/nsY3lnLAgPiBnZW5zZWtpY2hpXCA7CivmgKfpgZPlvrMgPiBzZWlkb3V0b2t1XCA7CivlubPmu5HljJYgPiBoZWlrYXRzdWthXCA7Civpg7Xkvr/nrrEgPiB5dXViaW5iYWtvXCA7Civlj5fkv6HmlpkgPiBqdXNoaW5yeW91XCA7Civlho3ntYTnuZQgPiBzYWlzb3NoaWtpXCA7Civnvo7ooZPnlYwgPiBiaWp1dHN1a2FpXCA7CivkuI3nrYnlvI8gPiBmdWRvdXNoaWtpXCA7CivntITlrprmm7ggPiB5YWt1am91c2hvXCA7CivkuInnrofml6UgPiBzYW5nYW5pY2hpXCA7CivnmbrnpaXlnLAgPiBoYXNzaG91Y2hpXCA7Civli53miYvlj6MgPiBrYXR0ZWd1Y2hpXCA7CivlpJXpo5/lvowgPiB5dXVzaG9rdWdvXCA7CivmkKzlhaXml6UgPiBoYW4nJ255dXViaVwgOwor6LGq5ZWG5bGkID4gZ291c2hvdXNvdVwgOwor5aW06LGG6IWQID4geWFra29kb3VmdVwgOwor5oSf6Kaa6KuWID4ga2Fua2FrdXJvblwgOwor5Zu955Sj6LuKID4ga29rdXNhbnNoYVwgOwor5LiN5rWB6YCaID4gZnVyeXV1dHN1dVwgOwor5qmL6aCt5aChID4ga3lvdXRvdWhvdVwgOwor5aSP5pmC6ZaTID4gbmF0c3VqaWthblwgOwor55+z54Kt5bGkID4gc2VraXRhbnNvdVwgOwor57W55LiA5Yy5ID4ga2ludWlwcGlraVwgOwor5bu655m95pu4ID4ga2VucGFrdXNob1wgOwor5raI6Ziy5rOVID4gc2hvdWJvdWhvdVwgOwor5Lit6L+R5p2xID4gY2h1dWtpbnRvdVwgOwor6Ki85Lq65Y+wID4gc2hvdW5pbmRhaVwgOwor5rC055Sj5qWtID4gc3Vpc2FuZ3lvdVwgOwor5aWH5oOz5puyID4ga2lzb3VreW9rdVwgOwor5q+U5L6L5byPID4gaGlyZWlzaGlraVwgOwor55S35omA5bivID4gb3Rva29qb3RhaVwgOwor5L+u5pW054mIID4gc2h1dXNlaWhhblwgOwor5Ya35rC05rW0ID4gcmVpc3VpeW9rdVwgOwor5aSP576957mUID4gbmF0c3ViYW9yaVwgOwor6KSS6KiA6JGJID4gaG9tZWtvdG9iYVwgOwor5LqL5YuZ5py6ID4gamltdWR6dWt1ZVwgOwor5Li75YKs5Zu9ID4gc2h1c2Fpa29rdVwgOwor5aSn5aSW5YiIID4gb29zb3RvZ2FyaVwgOwor5riF566X5Lq6ID4gc2Vpc2FuJyduaW5cIDsKK+S9j+awkeelqCA+IGp1dW1pbmh5b3VcIDsKK+eEoee3muWxgCA+IG11c2Vua3lva3VcIDsKK+aCquadkOaWmSA+IGFrdXphaXJ5b3VcIDsKK+aXpeeFp+ioiCA+IG5pc3Nob3VrZWlcIDsKK+aUr+aMgeeOhyA+IHNoaWppcml0c3VcIDsKK+S6jOmAo+eZuiA+IG5pcmVucGF0c3VcIDsKK+WFt+ixoeeahCA+IGd1c2hvdXRla2lcIDsKK+WJr+aKteW9kyA+IGZ1a3V0ZWl0b3VcIDsKK+iDuOiGnOeCjiA+IGt5b3VtYWt1ZW5cIDsKK+mZpOa5v+WZqCA+IGpvc2hpdHN1a2lcIDsKK+S5l+aPm+mnhSA+IG5vcmlrYWVla2lcIDsKK+WPpOacrOWxiyA+IGZ1cnVob24nJ3lhXCA7Civlt6jlpKfnl4cgPiBreW9kYWlzaG91XCA7Civnn6Xml6XlrrYgPiBjaGluaWNoaWthXCA7Civnmb3nnLzoppYgPiBoYWt1Z2Fuc2hpXCA7CivnhaflsITms5UgPiBzaG91c2hhaG91XCA7CivotaTkv6Hlj7cgPiBha2FzaGluZ291XCA7CivplbfmlrnlvaIgPiBjaG91aG91a2VpXCA7CivkuIflm73lj7IgPiBiYW5rb2t1c2hpXCA7CivpgKDlhbXlu6AgPiB6b3VoZWlzaG91XCA7CivmnbHkuqzmub4gPiB0b3VreW91d2FuXCA7Civni6zlibXmgKcgPiBkb2t1c291c2VpXCA7CivmlL7mtarnmZYgPiBob3Vyb3VoZWtpXCA7CivooYzmlL/lrpggPiBneW91c2Vpa2FuXCA7CivmsqHotqPlkbMgPiBib3RzdXNodW1pXCA7CivpmbbphZTlooMgPiB0b3VzdWlreW91XCA7Civlj43lsITop5IgPiBoYW5zaGFrYWt1XCA7CivlhaznlJ/mtq8gPiBrb3VzaG91Z2FpXCA7CivnibnlirnolqwgPiB0b2trb3V5YWt1XCA7CivlpJrpoIXlvI8gPiB0YWtvdXNoaWtpXCA7Civooajmg4XnrYsgPiBoeW91am91a2luXCA7CivliKnnm4rnjocgPiByaWVraXJpdHN1XCA7CivkuInmi43lrZAgPiBzYW5ieW91c2hpXCA7Civph4/osqnlupcgPiByeW91aGFudGVuXCA7Civnt6jpm4blrZAgPiBoZW5zaHV1c2hpXCA7CivlhpfplbfmgKcgPiBqb3VjaG91c2VpXCA7CivpvLvnnLzpj6EgPiBoYW5hbWVnYW5lXCA7CivlhoXoppbpj6EgPiBuYWlzaGlreW91XCA7CivotaTnv6Hnv6AgPiBha2FzaG91YmluXCA7CivnhrHmqZ/plqIgPiBuZXRzdWtpa2FuXCA7CivmkYLorbfohbogPiBzZXRzdWdvc2VuXCA7Civlr77mipfnrZYgPiB0YWlrb3VzYWt1XCA7Civov5Hku6PliocgPiBraW5kYWlnZWtpXCA7CivlvrnlupXnmoQgPiB0ZXR0ZWl0ZWtpXCA7CivmrbTku6Plj7IgPiByZWtpZGFpc2hpXCA7Civml6nopovooaggPiBoYXlhbWloeW91XCA7CivmipXlsITop5IgPiB0b3VzaGFrYWt1XCA7Civnm6PnnaPogIUgPiBrYW50b2t1c2hhXCA7CivlhbHnlKPlnI8gPiBreW91c2Fua2VuXCA7Civlrp/ooYzkuK0gPiBqaWtrb3VjaHV1XCA7CivnjJvmlLvmkoMgPiBtb3Vrb3VnZWtpXCA7Civpm7vlrZDmrrsgPiBkZW5zaGlrYWt1XCA7CivmnZHlvbnloLQgPiBtdXJheWFrdWJhXCA7Civpmbjou5/poqggPiByaWt1bmFucHV1XCA7CivmlL/msrvoibIgPiBzZWlqaXNob2t1XCA7Civmr43lrZDojYkgPiBoYWhha29ndXNhXCA7CivnibnlvoXnlJ8gPiB0b2t1dGFpc2VpXCA7CivkuK3nm6TmiKYgPiBjaHV1YmFuc2VuXCA7CivoiJ7ouI/pnbQgPiBidXRvdWd1dHN1XCA7CivlpKfpmarlr6kgPiBkYWliYWlzaGluXCA7CivnhKHnuIHku48gPiBtdWVuYm90b2tlXCA7Civoqo3lrproqLwgPiBuaW50ZWlzaG91XCA7Civnvo7ooZPmm7ggPiBiaWp1dHN1c2hvXCA7CivoqIjph4/ms5UgPiBrZWlyeW91aG91XCA7Civljp/mjK/li5UgPiBnZW5zaGluZG91XCA7CivlraboirjkvJogPiBnYWt1Z2Vpa2FpXCA7CivohILogqrlv4MgPiBzaGlib3VzaGluXCA7Civni7jppYLpo6kgPiB0YW51a2l1ZG9uXCA7CivmsLTnlKPluoEgPiBzdWlzYW5jaG91XCA7CivlkIjmhrLnmoQgPiBnb3VrZW50ZWtpXCA7CivkuLvkvZPnmoQgPiBzaHV0YWl0ZWtpXCA7CivnqoPnm5fni4IgPiBzZXR0b3VreW91XCA7CivlpbPkuIDoiKwgPiBvbicnbmFpcHBhblwgOwor5rG65Yud57eaID4ga2Vzc2hvdXNlblwgOwor5Y+j5LiK5omLID4ga3VjaGlqb3V6dVwgOwor5bel5aC06ZW3ID4ga291am91Y2hvdVwgOwor5peX5LqM5rWBID4gaGF0YW5pcnl1dVwgOwor5Y2z5L2N5byPID4gc29rdWlzaGlraVwgOwor5oeQ5p+U562WID4ga2FpanV1c2FrdVwgOwor5bm75oOz5YqHID4gZ2Vuc291Z2VraVwgOwor5LqL5YuZ5a6kID4gamltdXNoaXRzdVwgOwor6LaF6KaP5YmHID4gY2hvdWtpc29rdVwgOwor5qC45a625pePID4ga2FrdWthem9rdVwgOwor5aSV5pyI5aScID4geXV1ZHp1a2V5b1wgOwor5aSn6KGG6LuKID4gZGFpc2h1dXNoYVwgOwor54Sh57GN6ICFID4gbXVzZWtpbW9ub1wgOwor5pel54us5LyKID4gbmljaGlkb2t1aVwgOwor5oKq57+S5oWjID4gYWt1c2h1dWthblwgOwor56Gr6YW46YqFID4gcnl1dXNhbmRvdVwgOwor5rC055Sj5a2mID4gc3Vpc2FuZ2FrdVwgOwor5bm456aP5oSfID4ga291ZnVrdWthblwgOwor6LOg5YSf6YeRID4gYmFpc2hvdWtpblwgOwor5YWx55Sj5YWaID4ga3lvdXNhbnRvdVwgOwor6Ii55p2/5aGAID4gZnVuYWl0YWJlaVwgOwor5YWo5a2m6YCjID4gemVuZ2FrdXJlblwgOwor55u06LWw6LevID4gY2hva3Vzb3Vyb1wgOwor5rC36LGG6IWQID4ga29vcmlkb3VmdVwgOwor5YWl5bGF6ICFID4gbnl1dWt5b3NoYVwgOwor5pel6Zmw6ICFID4gaGlrYWdlbW9ub1wgOwor57W257iB57eaID4gemV0c3VlbnNlblwgOwor5ZOB6KmV5LyaID4gaGlucHlvdWthaVwgOwor5rC055O25bqnID4gbWl6dWdhbWV6YVwgOwor5ZCE5Zuj5L2TID4ga2FrdWRhbnRhaVwgOwor5p2l5p2l6YCxID4gcmFpcmFpc2h1dVwgOwor5Zub5Y2B6ZuAID4gc2hpanV1a2FyYVwgOwor6YCa55So6ZaAID4gdHN1dXlvdW1vblwgOwor54iq5qWK5p6dID4gdHN1bWF5b3VqaVwgOwor5pWj6auq5bGLID4gc2FucGF0c3V5YVwgOwor5qCh5q2j5Yi3ID4ga291c2VpenVyaVwgOwor6buS55y86Y+hID4ga3Vyb21lZ2FuZVwgOwor6YCg6Ii55qWtID4gem91c2VuZ3lvdVwgOwor6Kaz5YqH5LyaID4ga2FuZ2VraWthaVwgOwor5YWs5a6z55eFID4ga291Z2FpYnlvdVwgOwor5Y+X5L+h5YG0ID4ganVzaGluZ2F3YVwgOwor5LyB5qWt5b+DID4ga2lneW91c2hpblwgOwor5L+u57mV5belID4gc2h1dXplbmtvdVwgOwor5Y2Y6Lqr6YqDID4gdGFuc2hpbmp1dVwgOwor55m+5bm055uuID4gaHlha3VuZW5tZVwgOwor5rKh55CG5oOzID4gYm90c3VyaXNvdVwgOwor6Z2Z6ISI54KOID4gam91bXlha3VlblwgOwor5YWo6IO96ICFID4gemVuJydub3VzaGFcIDsKK+WRieacjeWVhiA+IGdvZnVrdXNob3VcIDsKK+ecgeizh+a6kCA+IHNob3VzaGlnZW5cIDsKK+mbhuWQiOirliA+IHNodXVnb3Vyb25cIDsKK+emgeeFmeW4rSA+IGtpbicnZW5zZWtpXCA7CivplbfmlrnkvZMgPiBjaG91aG91dGFpXCA7Civlj5fkv6HkurogPiBqdXNoaW4nJ25pblwgOwor5peX5LqM5peSID4gaGF0YW5pcnl1dVwgOwor5oCl5YGc6LuKID4ga3l1dXRlaXNoYVwgOwor57Oe5bqm6IO4ID4ga3Vzb2Rva3lvdVwgOwor5raI6Ziy5aOrID4gc2hvdWJvdXNoaVwgOwor5pyJ55CG5byPID4geXV1cmlzaGlraVwgOwor57WC5YiX6LuKID4gc2h1dXJlc3NoYVwgOwor5omA5pyJ5qC8ID4gc2hveXV1a2FrdVwgOwor55+l6Kaa55+lID4gY2hpa2FrdWNoaVwgOwor6YGK5pKD5omLID4geXV1Z2VraXNodVwgOwor6Kej54ax5YmkID4gZ2VuZXRzdXphaVwgOwor5bqX5bGL54mpID4gdGVuJyd5YW1vbm9cIDsKK+mBiuaSg+aIpiA+IHl1dWdla2lzZW5cIDsKK+WxseawtOmWoyA+IHNhbnN1aWtha3VcIDsKK+iqrOaVmeW4qyA+IHNla2t5b3VzaGlcIDsKK+WztuW4neWbvSA+IHRvdXRlaWtva3VcIDsKK+WNkeWKo+a8oiA+IGhpcmV0c3VrYW5cIDsKK+WFqOeUn+a2ryA+IHplbnNob3VnYWlcIDsKK+WFqOS8muihhiA+IHplbmthaXNodXVcIDsKK+WPjuWuueiAhSA+IHNodXV5b3VzaGFcIDsKK+ino+mbhuWQiCA+IGthaXNodXVnb3VcIDsKK+ebuOWvvueahCA+IHNvdXRhaXRla2lcIDsKK+efs+eBsOS5syA+IHNla2thaW55dXVcIDsKK+WFseacieiAhSA+IGt5b3V5dXVzaGFcIDsKK+aMh+WumuW4rSA+IHNoaXRlaXNla2lcIDsKK+WVhuWTgeWQjSA+IHNob3VoaW5tZWlcIDsKK+agueacrOeahCA+IGtvbnBvbnRla2lcIDsKK+e+juihk+WxlSA+IGJpanV0c3V0ZW5cIDsKK+e4nuaooeanmCA+IHNoaW1hbW95b3VcIDsKK+a2iOmYsuWboyA+IHNob3Vib3VkYW5cIDsKK+S5vuiRoeiQhCA+IGhvc2hpYnVkb3VcIDsKK+e+veaguei7iiA+IGhhbmVndXJ1bWFcIDsKK+eZuuWLleapnyA+IGhhdHN1ZG91a2lcIDsKK+mXmOeJm+WjqyA+IHRvdWd5dXVzaGlcIDsKK+WQjOaDheelqCA+IGRvdWpvdWh5b3VcIDsKK+WFpeS8mumHkSA+IG55dXVrYWlraW5cIDsKK+eGseehrOWMliA+IG5ldHN1a291a2FcIDsKK+mXmOeJm+WgtCA+IHRvdWd5dXVqb3VcIDsKK+WPjeWvvuelqCA+IGhhbnRhaWh5b3VcIDsKK+WGt+WNtOWZqCA+IHJlaWt5YWt1a2lcIDsKK+WAn+WFpemHkSA+IGthcmlpcmVraW5cIDsKK+WVhuWTgeWIuCA+IHNob3VoaW5rZW5cIDsKK+atk+alveihlyA+IGthbnJha3VnYWlcIDsKK+eglOWJiuebpCA+IGtlbnNha3ViYW5cIDsKK+acrOexjeWcsCA+IGhvbnNla2ljaGlcIDsKK+awl+asneeXhyA+IGtpdXRzdXNob3VcIDsKK+aBi+Wls+aIvyA+IGtvaW55b3Vib3VcIDsKK+iEs+elnue1jCA+IG5vdXNoaW5rZWlcIDsKK+iGoOWOn+eXhSA+IGtvdWdlbmJ5b3VcIDsKK+eJveWItueQgyA+IGtlbnNlaWt5dXVcIDsKK+aWsOmAoOiIuSA+IHNoaW56b3VzZW5cIDsKK+aEn+immueCuSA+IGthbmtha3V0ZW5cIDsKK+WBveWQm+WtkCA+IG5pc2VrdW5zaGlcIDsKK+axuuWLneeCuSA+IGtlc3Nob3V0ZW5cIDsKK+WkmuaVsOaxuiA+IHRhc3V1a2V0c3VcIDsKK+aEj+itmOeahCA+IGlzaGlraXRla2lcIDsKK+WPjeWwhOeahCA+IGhhbnNoYXRla2lcIDsKK+S4jea0u+eZuiA+IGZ1a2FwcGF0c3VcIDsKK+WPl+mgmOiovCA+IGp1cnlvdXNob3VcIDsKK+e0lOaWh+WtpiA+IGp1bmJ1bmdha3VcIDsKK+eJueaApeWIuCA+IHRva2t5dXVrZW5cIDsKK+m7hOmHkeihkyA+IG91Z29uanV0c3VcIDsKK+S7ruWLmOWumiA+IGthcmlrYW5qb3VcIDsKK+mciumVt+mhniA+IHJlaWNob3VydWlcIDsKK+WFqOi6q+WDjyA+IHplbnNoaW56b3VcIDsKK+Wvhui8uOWTgSA+IG1pdHN1eXVoaW5cIDsKK+aXouioree3miA+IGtpc2V0c3VzZW5cIDsKK+S6jOmAo+W8jyA+IG5pcmVuc2hpa2lcIDsKK+a4m+mAn+adkCA+IGdlbnNva3V6YWlcIDsKK+WFieejgeawlyA+IGhpa2FyaWppa2lcIDsKK+iovOaYjuabuCA+IHNob3VtZWlzaG9cIDsKK+mWi+aLk+WcsCA+IGthaXRha3VjaGlcIDsKK+iomOi/sOWtkCA+IGtpanV0c3VzaGlcIDsKK+S7ruWFjeiosSA+IGthcmltZW5reW9cIDsKK+WNsOixoeeahCA+IGluc2hvdXRla2lcIDsKK+aXp+aVmeW+kiA+IGt5dXVreW91dG9cIDsKK+iyqOeJqeS+vyA+IGthbW90c3ViaW5cIDsKK+acieacm+agqiA+IHl1dWJvdWthYnVcIDsKK+aFo+S+i+eahCA+IGthbnJlaXRla2lcIDsKK+ims+ebuOWtpiA+IGthbnNvdWdha3VcIDsKK+iCieeUqOeoriA+IG5pa3V5b3VzaHVcIDsKK+WfuuWcsOWxgCA+IGtpY2hpa3lva3VcIDsKK+imluelnue1jCA+IHNoaXNoaW5rZWlcIDsKK+mBqeW/nOeXhyA+IHRla2lvdXNob3VcIDsKK+S4remrmOeUnyA+IGNodXVrb3VzZWlcIDsKK+S4i+a6luWCmSA+IHNoaXRhanVuYmlcIDsKK+S/oemgvOaEnyA+IHNoaW5yYWlrYW5cIDsKK+eZuumFteS5syA+IGhha2tvdW55dXVcIDsKK+aXheiKuOS6uiA+IHRhYmlnZWluaW5cIDsKK+S6uumbquW0qSA+IGhpdG9uYWRhcmVcIDsKK+S4u+S/oeWPtyA+IHNodXNoaW5nb3VcIDsKK+S/oeWlieiAhSA+IHNoaW5wb3VzaGFcIDsKK+Wwuuiyq+azlSA+IHNoYWtrYW5ob3VcIDsKK+e+juihk+WTgSA+IGJpanV0c3VoaW5cIDsKK+mAmuS/oeiyuyA+IHRzdXVzaGluaGlcIDsKK+S/oemgvOaApyA+IHNoaW5yYWlzZWlcIDsKK+aEn+immuavmyA+IGthbmtha3Vtb3VcIDsKK+mghuW/nOaApyA+IGp1bicnbm91c2VpXCA7CivluLjnv5LogIUgPiBqb3VzaHV1c2hhXCA7Civnvo7ooZPlj7IgPiBiaWp1dHN1c2hpXCA7CivmqoDpgqPlr7ogPiBkYW4nJ25hZGVyYVwgOwor5Y2D5q2z6aO0ID4gY2hpdG9zZWFtZVwgOwor6KO95p2Q5qWtID4gc2VpemFpZ3lvdVwgOwor5paw5qmf6Lu4ID4gc2hpbmtpamlrdVwgOwor6IKJ6aWF6aCtID4gbmlrdW1hbmp1dVwgOwor5rC06LOH5rqQID4gbWl6dXNoaWdlblwgOwor55m96bOl5bqnID4gaGFrdWNob3V6YVwgOwor55m+5YiG5q+UID4gaHlha3VidW5oaVwgOwor6Kmm6YeR55+zID4gc2hpa2luc2VraVwgOwor5YSq562J6LOeID4geXV1dG91c2hvdVwgOwor5aSn6KGG57SZID4gdGFpc2h1dXNoaVwgOwor6Iqx6KaL5pmCID4gaGFuYW1pZG9raVwgOwor5aGX5pOm5YmkID4gdG9zYXRzdXphaVwgOwor5pyo6KO95ZOBID4gbW9rdXNlaWhpblwgOwor5YaF6KeS55CDID4gbmFpa2Fra3l1dVwgOwor6aWS6IiM5a62ID4gam91emV0c3VrYVwgOwor54ax5Yem55CGID4gbmV0c3VzaG9yaVwgOwor5paw5bm557eaID4gc2hpbmthbnNlblwgOwor5YuV5ZCR6KGoID4gZG91a291aHlvdVwgOwor5Lqk6Z+/6KmpID4ga291a3lvdXNoaVwgOwor5oyo5ou254q2ID4gYWlzYXRzdWpvdVwgOwor6Zml5rKh5rmWID4ga2FuYm90c3Vrb1wgOwor5LiN5rS75rqMID4gZnVrYXBwYXRzdVwgOwor5L+h5aSp57+BID4gc2hpbnRlbicnb3VcIDsKK+i1t+mbu+WKmyA+IGtpZGVucnlva3VcIDsKK+mOrumtguelrSA+IGNoaW5rb25zYWlcIDsKK+iItuadpeWTgSA+IGhha3VyYWloaW5cIDsKK+aJi+WhqeeavyA+IHRlc2hpb3phcmFcIDsKK+m7kuW6lee/syA+IGt1cm9zb2tvaGlcIDsKK+WtpueUn+W4vSA+IGdha3VzZWlib3VcIDsKK+awtOagveWfuSA+IG1penVzYWliYWlcIDsKK+WWtumAoOeJqSA+IGVpem91YnV0c3VcIDsKK+aXpeeFp+aoqSA+IG5pc3Nob3VrZW5cIDsKK+WFiemHj+WtkCA+IGtvdXJ5b3VzaGlcIDsKK+S4h+aEmuevgCA+IGJhbmd1c2V0c3VcIDsKK+iDveeLguiogCA+IG5vdWt5b3VnZW5cIDsKK+aUr+aMgeWKmyA+IHNoaWppcnlva3VcIDsKK+e1seioiOihqCA+IHRvdWtlaWh5b3VcIDsKK+WFiOWPsuWtpiA+IHNlbnNoaWdha3VcIDsKK+ehq+mFuOe0mSA+IHJ5dXVzYW5zaGlcIDsKK+aAp+W3ruWIpSA+IHNlaXNhYmV0c3VcIDsKK+acrOWbveS6uiA+IGhvbmdva3VqaW5cIDsKK+W3qOimlueahCA+IGt5b3NoaXRla2lcIDsKK+i7oui9jeapnyA+IHRlbnRldHN1a2lcIDsKK+ihqOW/oOeikSA+IGh5b3VjaHV1aGlcIDsKK+WPjuizhOe9qiA+IHNodXV3YWl6YWlcIDsKK+iWrOWJpOW4qyA+IHlha3V6YWlzaGlcIDsKK+W+jOimi+S6uiA+IGtvdWtlbicnbmluXCA7CivpgKPnlKjlvaIgPiByZW4nJ3lvdWtlaVwgOwor5L2Z55m95rOoID4geW9oYWt1Y2h1dVwgOwor5Lyd57Wx55qEID4gZGVudG91dGVraVwgOwor6Kaq5qip6ICFID4gc2hpbmtlbnNoYVwgOwor5YaG5aSp5LqVID4gbWFydXRlbmpvdVwgOwor5bCR5bm06ZmiID4gc2hvdW5lbicnaW5cIDsKK+attOmdkueCrSA+IHJla2lzZWl0YW5cIDsKK+igj+W3peiIuSA+IGthbmlrb3VzZW5cIDsKK+ebruWFq+WIhiA+IG1laGFjaGlidW5cIDsKK+Wbm+WNgeiCqSA+IHNoaWp1dWthdGFcIDsKK+alveims+eahCA+IHJha2thbnRla2lcIDsKK+W/g+WBnOatoiA+IHNoaW50ZWlzaGlcIDsKK+mAn+WwhOegsiA+IHNva3VzaGFob3VcIDsKK+WkmuinkueahCA+IHRha2FrdXRla2lcIDsKK+aWsOW7uuadkCA+IHNoaW5rZW56YWlcIDsKK+axuuWLneaIpiA+IGtlc3Nob3VzZW5cIDsKK+S4jeW/heimgSA+IGZ1aGl0c3V5b3VcIDsKK+aJgemdkuefsyA+IGhlbnNlaXNla2lcIDsKK+WPjOeQg+iPjCA+IHNvdWt5dXVraW5cIDsKK+awtOe+iue+riA+IG1penV5b3VrYW5cIDsKK+aKnOacrOeahCA+IGJhcHBvbnRla2lcIDsKK+WNmOeZuuapnyA+IHRhbnBhdHN1a2lcIDsKK+i7oumAgeWFiCA+IHRlbnNvdXNha2lcIDsKK+WFpeS8muiAhSA+IG55dXVrYWlzaGFcIDsKK+S4uOacqOiIuSA+IG1hcnVraWJ1bmVcIDsKK+S4uOacqOiInyA+IG1hcnVraWJ1bmVcIDsKK+W4jOmHiOa2siA+IGtpc2hha3Vla2lcIDsKK+aciOabnOaXpSA+IGdldHN1eW91YmlcIDsKK+acgOizg+azlSA+IHNhaWNoaW5ob3VcIDsKK+mdqeaWsOa0viA+IGtha3VzaGluaGFcIDsKK+aOouaxguiAhSA+IHRhbmt5dXVzaGFcIDsKK+aIpueXheatuyA+IHNlbmJ5b3VzaGlcIDsKK+eUt+aAp+eahCA+IGRhbnNlaXRla2lcIDsKK+S5s+mFuOiPjCA+IG55dXVzYW5raW5cIDsKK+WJjeeFp+eBryA+IHplbnNob3V0b3VcIDsKK+iFuOaNu+i7oiA+IGNob3VuZW50ZW5cIDsKK+imquWIhuagqiA+IG95YWJ1bmthYnVcIDsKK+WtpueUqOWTgSA+IGdha3V5b3VoaW5cIDsKK+eJueauiuaApyA+IHRva3VzaHVzZWlcIDsKK+WNmOiJsueUuyA+IHRhbnNob2t1Z2FcIDsKK+S7leeri+WIuCA+IHNoaXRhdGVrZW5cIDsKK+mZsOW8geaFtiA+IGthZ2ViZW5rZWlcIDsKK+a3t+ihgOWFkCA+IGtvbmtldHN1amlcIDsKK+iyqeWjsuWFgyA+IGhhbmJhaW1vdG9cIDsKK+W4uOe/kueKryA+IGpvdXNodXVoYW5cIDsKK+a4hea2vOWJpCA+IHNlaXJ5b3V6YWlcIDsKK+acgOWwj+WApCA+IHNhaXNob3VjaGlcIDsKK+awtOaXj+mkqCA+IHN1aXpva3VrYW5cIDsKK+WFseeKr+iAhSA+IGt5b3VoYW5zaGFcIDsKK+Wvv+WPuOmjryA+IHN1c2hpbWVzaGlcIDsKK+aApei7ouaPmyA+IGt5dXV0ZW5rYW5cIDsKK+aLm+W+heeKtiA+IHNob3V0YWlqb3VcIDsKK+aJk+aSsuWCtyA+IGRhYm9rdXNob3VcIDsKK+eJueW+heWIuCA+IHRva3V0YWlrZW5cIDsKK+avkuS6uuWPgiA+IGRva3VuaW5qaW5cIDsKK+WkqeeruuiRtSA+IHRlbmppa3Vhb2lcIDsKK+Wls+S4luW4ryA+IG9uJyduYWpvdGFpXCA7CivkurrplpPnmoQgPiBuaW5nZW50ZWtpXCA7CivoqLrmlq3mm7ggPiBzaGluZGFuc2hvXCA7CivomJroi5TlraYgPiBzZW50YWlnYWt1XCA7Civljp/nqL/mlpkgPiBnZW5rb3VyeW91XCA7Civnm6PnnaPlrpggPiBrYW50b2t1a2FuXCA7CivllYbli5nnnIEgPiBzaG91bXVzaG91XCA7CivlrqPlkYrmm7ggPiBzZW5rb2t1c2hvXCA7CivlpJzlpJzkuK0gPiB5b3J1eW9uYWthXCA7CivpgJrkv6HnsL8gPiB0c3V1c2hpbmJvXCA7CivloIbnqY3lsqkgPiB0YWlzZWtpZ2FuXCA7CivmipHnlZnmiYAgPiB5b2t1cnl1dWpvXCA7Civmkp7mnKjmnZYgPiBzaHVtb2t1enVlXCA7Civpu4Tph5HnjocgPiBvdWdvbnJpdHN1XCA7CivloIbnqY3lsaQgPiB0YWlzZWtpc291XCA7CivlkIjllLHlm6MgPiBnYXNzaG91ZGFuXCA7Civlpb3mlbXmiYsgPiBrb3V0ZWtpc2h1XCA7Civmlofnq6DpoYwgPiBidW5zaG91ZGFpXCA7Civph5HnianlsYsgPiBrYW5hbW9ub3lhXCA7Civlm6Poj4rnpa0gPiBkYW5naWt1c2FpXCA7Civnt6nooZ3mtrIgPiBrYW5zaG91ZWtpXCA7Civlr4Tlrr/oiI4gPiBraXNodWt1c2hhXCA7CivmvZzmnJvpj6EgPiBzZW5ib3VreW91XCA7CivmlrDlt6bnv7wgPiBzaGluc2F5b2t1XCA7CivpgaHlj4rnmoQgPiBzb2t5dXV0ZWtpXCA7CivlkIzmg4Xlv4MgPiBkb3Vqb3VzaGluXCA7CivkuIvnqL3lj6QgPiBzaGl0YWdlaWtvXCA7Civnq7bkuonogIUgPiBreW91c291c2hhXCA7CivllYblupfooZcgPiBzaG91dGVuZ2FpXCA7CivnjonmiYvnrrEgPiB0YW1hdGViYWtvXCA7CivkuIrljYrouqsgPiBqb3VoYW5zaGluXCA7CivmuKzlrprms5UgPiBzb2t1dGVpaG91XCA7CivpmY3lnKfliaQgPiBrb3VhdHN1emFpXCA7CivmgKXlgr7mlpwgPiBreXV1a2Vpc2hhXCA7CivkuKHmo7LpoZ4gPiByeW91c2VpcnVpXCA7CivmnIDkuIrntJogPiBzYWlqb3VreXV1XCA7CivlgYPmnIjliIAgPiBlbmdldHN1dG91XCA7CivnnIvorbfljZIgPiBrYW5nb3NvdHN1XCA7Civnvavnt5rooaggPiBrZWlzZW5oeW91XCA7Civph53lnJ/nq5wgPiBoYXJpbW9ndXJhXCA7Civnga/lj7DlroggPiB0b3VkYWltb3JpXCA7Civku67lhY3nirYgPiBrYXJpbWVuam91XCA7CivlvL7olqzluqsgPiBkYW4nJ3lha3Vrb1wgOwor5ZCI5rOV55qEID4gZ291aG91dGVraVwgOwor5oyr5oqY5oSfID4gemFzZXRzdWthblwgOwor5bmy6JGh6JCEID4gaG9zaGlidWRvdVwgOwor6LWk5paw6IGeID4gYWthc2hpbmJ1blwgOwor6Iag552A6KqeID4ga291Y2hha3Vnb1wgOwor57WC5q2i5b2iID4gc2h1dXNoaWtlaVwgOwor5Ye65riv6Ii5ID4gc2h1a2tvdXNlblwgOwor6Ly45YWl6aGNID4geXVueXV1Z2FrdVwgOwor55Sy5q676aGeID4ga291a2FrdXJ1aVwgOwor6Zqc5aOB55S7ID4gc2hvdWhla2lnYVwgOwor5rq25o6l5qmfID4geW91c2V0c3VraVwgOwor5LmX57WE5ZOhID4gbm9yaWt1bWlpblwgOwor6IWO6IeT55eFID4gamluem91YnlvdVwgOwor5Y+v5pCs5byPID4ga2FoYW5zaGlraVwgOwor5YGl562G5a62ID4ga2VucGl0c3VrYVwgOwor5q2j5Lit57eaID4gc2VpY2h1dXNlblwgOwor5Y2D5bm06ZaTID4gc2VuJyduZW5rYW5cIDsKK+ajkuejgeefsyA+IGJvdWppc2hha3VcIDsKK+ims+iznumtmiA+IGthbnNob3VneW9cIDsKK+elnuWtpuagoSA+IHNoaW5nYWtrb3VcIDsKK+S9nOalreacjSA+IHNhZ3lvdWZ1a3VcIDsKK+eZuuedgOaJgCA+IGhhdGNoYWt1am9cIDsKK+imqui/keaEnyA+IHNoaW5raW5rYW5cIDsKK+S5seazpea1gSA+IHJhbmRlaXJ5dXVcIDsKK+W9k+ebtOWToSA+IHRvdWNob2t1aW5cIDsKK+e1seioiOeahCA+IHRvdWtlaXRla2lcIDsKK+iKuOihk+WutiA+IGdlaWp1dHN1a2FcIDsKK+eOhOmWouWFiCA+IGdlbmthbnNha2lcIDsKK+a3sea1t+mtmiA+IHNoaW5rYWlneW9cIDsKK+WQjOW/l+eahCA+IGRvdXNoaXRla2lcIDsKK+S+oeWNg+mHkSA+IGF0YWlzZW5raW5cIDsKK+S5neWbnuaIpiA+IGt5dXVrYWlzZW5cIDsKK+WNiuawuOS5hSA+IGhhbicnZWlreXV1XCA7Civpm5HlvbnlqaYgPiB6YXRzdWVraWZ1XCA7Civlhrflh43mpa0gPiByZWl0b3VneW91XCA7CivkuKHnlJ/poZ4gPiByeW91c2VpcnVpXCA7CivlhJLmlZnnmoQgPiBqdWt5b3V0ZWtpXCA7Civmj5rpmbjoiaYgPiB5b3VyaWt1a2FuXCA7Civph43orLnmhY4gPiBqdXVraW5zaGluXCA7Civlh43osYbohZAgPiBzaGltaWRvdWZ1XCA7CivmsLjosLflnJIgPiBuYWdhdGFuaWVuXCA7Civkuozmp73lvI8gPiBuaXNvdXNoaWtpXCA7Civnm7jkuZfnqY0gPiBzb3Vqb3VzZWtpXCA7Civoj4zpoZ7lraYgPiBraW5ydWlnYWt1XCA7Civpm5HlvbnlpKsgPiB6YXRzdWVraWZ1XCA7CivmlrDliIrmm7ggPiBzaGlua2Fuc2hvXCA7CivpnZLlsJHlubQgPiBzZWlzaG91bmVuXCA7CivmjqjpgLLogIUgPiBzdWlzaGluc2hhXCA7CivliJfluK3ogIUgPiByZXNzZWtpc2hhXCA7Civlm73nlKPlk4EgPiBrb2t1c2FuaGluXCA7Civmh5Dml6foq4cgPiBrYWlreXV1ZGFuXCA7Civmnq/ojYnnhrEgPiBrb3NvdW5ldHN1XCA7CivkuK3nlLLmnb8gPiBjaHV1a2FucGFuXCA7Civntr/lrp/msrkgPiBtZW5qaXRzdXl1XCA7Civln4vkvI/mra8gPiBtYWlmdWt1c2hpXCA7CivlhoXnt5LkuosgPiBuYWlzaG9nb3RvXCA7CivkuIDnrYnljZIgPiBpdHRvdXNvdHN1XCA7CivnpZ7ku6PmnYkgPiBqaW5kYWlzdWdpXCA7CivlgKTltanmoKogPiBuZWdhc2FrYWJ1XCA7CivmlL/msrvlipsgPiBzZWlqaXJ5b2t1XCA7CivnrZTnlLPmm7ggPiB0b3VzaGluc2hvXCA7CivkubHlv4PogIUgPiByYW5zaGluc2hhXCA7CivkurrplpPmpa0gPiBuaW5nZW53YXphXCA7CivlhbHorIDogIUgPiBreW91Ym91c2hhXCA7CivmnaXos5PluK0gPiByYWloaW5zZWtpXCA7CivoiJ7ouI/mm7IgPiBidXRvdWt5b2t1XCA7Civkv67ooYzogIUgPiBzaHVneW91c2hhXCA7Civls7bmoLnnnIwgPiBzaGltYW5la2VuXCA7CivlvLfnoazoq5YgPiBreW91a291cm9uXCA7Civms5Xmsrvlm70gPiBob3VjaGlrb2t1XCA7CivkuI3lvpfnrZYgPiBmdXRva3VzYWt1XCA7CivlnKjnsbPkuK0gPiB6YWliZWljaHV1XCA7CivljL/lkI3mgKcgPiB0b2t1bWVpc2VpXCA7CivnmbvlsbHpnbQgPiB0b3phbmd1dHN1XCA7CivluqfmlbfniaIgPiB6YXNoaWtpcm91XCA7CivnpZ7moLzljJYgPiBzaGlua2FrdWthXCA7CivotaTlpJbnt5ogPiBzZWtpZ2Fpc2VuXCA7CivolqznlKjphZIgPiB5YWt1eW91c2h1XCA7CivntZDmoLjoj4wgPiBrZWtrYWt1a2luXCA7CivojYnlsaXomasgPiB6b3VyaW11c2hpXCA7CivlpKfooYbmgKcgPiB0YWlzaHV1c2VpXCA7Civlr4Tlrr/nlJ8gPiBraXNodWt1c2VpXCA7CivmmIfmsZ7msLQgPiBzaG91a291c3VpXCA7CivmrabogIXmhYQgPiBtdXNoYWJ1cnVpXCA7Civmlofnq6Doq5YgPiBidW5zaG91cm9uXCA7Civnibnpgbjlk4EgPiB0b2t1c2VuaGluXCA7Civov5HopqrogIUgPiBraW5zaGluc2hhXCA7CivopIfmlbDlvaIgPiBmdWt1c3V1a2VpXCA7Civlub3pgoPlooMgPiB5dXVzdWlreW91XCA7Civlho3mipXnpaggPiBzYWl0b3VoeW91XCA7CivkuI3mtLvli5UgPiBmdWthdHN1ZG91XCA7Civlhajlr67liLYgPiB6ZW5yeW91c2VpXCA7Civov73mgrzkvJogPiB0c3VpdG91a2FpXCA7Civnmb3lhbXmiKYgPiBoYWt1aGVpc2VuXCA7Civoq4vmsYLmqKkgPiBzZWlreXV1a2VuXCA7Civlv6DpnIrloZQgPiBjaHV1cmVpdG91XCA7CivpmpnplpPpoqggPiBzdWtpbWFrYXplXCA7CivlhbHmnInlnLAgPiBreW91eXV1Y2hpXCA7CivniYfngrrmm78gPiBrYXRhZ2F3YXNlXCA7Civnt6nooZ3lvIEgPiBrYW5zaG91YmVuXCA7Civlrr/moLnojYkgPiBzaHVra29uc291XCA7CivlpKfnq4vogIUgPiBvb2RhdGVtb25vXCA7Civms7DlsbHmnKggPiB0YWlzYW5ib2t1XCA7Civmir3nsaTliLggPiBjaHV1c2Vua2VuXCA7Civns7jnirbomasgPiBzaGlqb3VjaHV1XCA7CivntbbnuIHkvZMgPiB6ZXRzdWVudGFpXCA7CivpnZLmnpzniakgPiBzZWlrYWJ1dHN1XCA7Civph4zoqIDokYkgPiBzYXRva290b2JhXCA7Civos7zoqq3ogIUgPiBrb3Vkb2t1c2hhXCA7Civlo7Losrfpq5ggPiBiYWliYWlkYWthXCA7CivmjLrpgLLpmoogPiB0ZWlzaGludGFpXCA7CivohLHmsLTnl4cgPiBkYXNzdWlzaG91XCA7Civli6fpgLLluLMgPiBrYW5qaW5jaG91XCA7Civmi6HlvLXljJYgPiBrYWt1Y2hvdWthXCA7CivmrrrkurrprLwgPiBzYXRzdWppbmtpXCA7CivmtYHli5XmgKcgPiByeXV1ZG91c2VpXCA7Civlm5vph43llLEgPiBzaGlqdXVzaG91XCA7CivmlZnogrLogIUgPiBreW91aWt1c2hhXCA7Civlj43lr77lgbQgPiBoYW50YWlnYXdhXCA7CivnkLTkuIDlvLUgPiBrb3RvaXRjaG91XCA7CivlhoXlnKjnmoQgPiBuYWl6YWl0ZWtpXCA7CivkuInmrrXot7MgPiBzYW5kYW50b2JpXCA7Civpo5vouo3nmoQgPiBoaXlha3V0ZWtpXCA7CivmiYvplbfnjL8gPiB0ZW5hZ2F6YXJ1XCA7CivogIHnnLzpj6EgPiByb3VnYW5reW91XCA7Civku67lh6bliIYgPiBrYXJpc2hvYnVuXCA7CivlhajkurrmoLwgPiB6ZW5qaW5rYWt1XCA7CivliIbms4zniakgPiBidW5waWJ1dHN1XCA7Civoq4vmsYLmm7ggPiBzZWlreXV1c2hvXCA7CivkuI3msbrmlq0gPiBmdWtldHN1ZGFuXCA7CivlhYjlhYjpgLEgPiBzZW5zZW5zaHV1XCA7Civoh7Tlkb3nmoQgPiBjaGltZWl0ZWtpXCA7CivkubPnn7Poi7EgPiBueXV1c2VraWVpXCA7CivosqHmlL/lraYgPiB6YWlzZWlnYWt1XCA7CivnrqHlvKbmpb0gPiBrYW5nZW5nYWt1XCA7Civpo7Lpo5/lupcgPiBpbnNob2t1dGVuXCA7CivntJnoo73lk4EgPiBrYW1pc2VpaGluXCA7Civpu4Tph5HlvosgPiBvdWdvbnJpdHN1XCA7Civms5XlvovmoYggPiBob3VyaXRzdWFuXCA7CivljYrnm7Lnl4cgPiBoYW5tb3VzaG91XCA7CivnoZ3phbjpioAgPiBzaG91c2FuZ2luXCA7CivpmLLnt4/nnIEgPiBib3Vzb3VzaG91XCA7CivpgIbmr5TkvosgPiBneWFrdWhpcmVpXCA7CivmipXmm7jnrrEgPiB0b3VzaG9iYWtvXCA7Civln47kuIvnlLogPiBqb3VrYW1hY2hpXCA7CivnibnliKXlp5QgPiB0b2t1YmV0c3VpXCA7CivmnZHoip3lsYUgPiBtdXJhc2hpYmFpXCA7Civntpnmga/lrZAgPiBtYW1hbXVzdWtvXCA7Civnmbrkv6Hpn7MgPiBoYXNzaGluJydvblwgOwor5Zub5q2755CDID4gc2hpc2hpa3l1dVwgOwor54yu6YeR566xID4ga2Vua2luYmFrb1wgOwor5oim55Wl5a62ID4gc2Vucnlha3VrYVwgOwor5YWs6IG05LyaID4ga291Y2hvdWthaVwgOwor5rCX6ayx55eHID4ga2l1dHN1c2hvdVwgOwor6KSH5pWw5ZueID4gZnVrdXN1dWthaVwgOwor5Lya6KiI5a2mID4ga2Fpa2VpZ2FrdVwgOwor57Ch55Wl5YyWID4ga2Fucnlha3VrYVwgOwor57Wm6Zu757eaID4ga3l1dWRlbnNlblwgOwor5ZCJ56Wl5aSpID4ga2lzc2hvdXRlblwgOwor5b6h5b2x55+zID4gbWlrYWdlaXNoaVwgOwor5YaF5Zu955SjID4gbmFpa29rdXNhblwgOwor6Zuq5pyI6IqxID4gc2V0c3VnZWtrYVwgOwor56eB5pu4566xID4gc2hpc2hvYmFrb1wgOwor55u05pig6aSoID4gY2hva3VlaWthblwgOwor55eF55CG5a2mID4gYnlvdXJpZ2FrdVwgOwor5b6p5Yi754mIID4gZnVra29rdWJhblwgOwor6YCA5buD55qEID4gdGFpaGFpdGVraVwgOwor5Lq66ZaT5a2mID4gbmluZ2VuZ2FrdVwgOwor5LiL552A6aGeID4gc2hpdGFnaXJ1aVwgOwor5ZSQ5aSJ5pyoID4gdG91aGVuYm9rdVwgOwor57ea5pKu5b2xID4gc2Vuc2F0c3VlaVwgOwor5paw55Sf6Z2iID4gc2hpbnNlaW1lblwgOwor5pWw5pel5b6MID4gc3V1aml0c3Vnb1wgOwor6LaF5ZCI6YeRID4gY2hvdWdvdWtpblwgOwor5aSa5Zu957GNID4gdGFrb2t1c2VraVwgOwor56mN566X5rOVID4gc2VraXNhbmhvdVwgOwor5aSW54K65rOVID4gZ2FpdGFtZWhvdVwgOwor5Ye65ZOB6ICFID4gc2h1cHBpbnNoYVwgOwor6Kaa6YaS5YmkID4ga2FrdXNlaXphaVwgOwor6auY5bGx6J22ID4ga291emFuY2hvdVwgOwor6L+R57iB5bGeID4ga2luJydlbnpva3VcIDsKK+S4iumBlOmDqCA+IGthbmRhY2hpbWVcIDsKK+WPr+mNm+mJhCA+IGthdGFudGV0c3VcIDsKK+W/g+eQhueahCA+IHNoaW5yaXRla2lcIDsKK+S5l+aPm+WIuCA+IG5vcmlrYWVrZW5cIDsKK+aVmeiCsueVjCA+IGt5b3Vpa3VrYWlcIDsKK+mZsOaltee3miA+IGlua3lva3VzZW5cIDsKK+WNiuiJh+i6qyA+IGhhbnRlaXNoaW5cIDsKK+imquWFhOW8nyA+IG95YWt5b3VkYWlcIDsKK+aXhemkqOalrSA+IHJ5b2thbmd5b3VcIDsKK+Wtpuacn+acqyA+IGdha2tpbWF0c3VcIDsKK+WIsOadpeeJqSA+IHRvdXJhaW1vbm9cIDsKK+ayluS7suS7lSA+IG9raW5ha2FzaGlcIDsKK+WkluWbveijvSA+IGdhaWtva3VzZWlcIDsKK+e1guebpOaIpiA+IHNodXViYW5zZW5cIDsKK+mAhuWFiee3miA+IGd5YWtrb3VzZW5cIDsKK+ixoeW+tOa0viA+IHNob3VjaG91aGFcIDsKK+WLp+mAsuWFgyA+IGthbmppbm1vdG9cIDsKK+mtmumhnuWtpiA+IGd5b3J1aWdha3VcIDsKK+e4nueRqueRmSA+IHNoaW1hbWVub3VcIDsKK+ecn+epuueuoSA+IHNoaW5rdXVrYW5cIDsKK+iIjuWIqeWIpSA+IHNoYXJpYmV0c3VcIDsKK+S6rOmYquelniA+IGtlaWhhbnNoaW5cIDsKK+aFo+e/kuazlSA+IGthbnNodXVob3VcIDsKK+mgremZgOiiiyA+IHp1ZGFidWt1cm9cIDsKK+mZsOalteeuoSA+IGlua3lva3VrYW5cIDsKK+a3t+WSjOeJqSA+IGtvbndhYnV0c3VcIDsKK+WIgOmNm+WGtiA+IGthdGFuYWthamlcIDsKK+a9nOS8j+aApyA+IHNlbnB1a3VzZWlcIDsKK+aLm+W+heWIuCA+IHNob3V0YWlrZW5cIDsKK+WPl+mbo+evgCA+IGp1bmFuc2V0c3VcIDsKK+a4rOWumuWApCA+IHNva3V0ZWljaGlcIDsKK+WMlueyp+e0mSA+IGtlc2hvdWdhbWlcIDsKK+Wkp+aGsueroCA+IGRhaWtlbnNob3VcIDsKK+WNmOiJsuWFiSA+IHRhbnNob2trb3VcIDsKK+eUsuauu+e2sSA+IGtvdWtha3Vrb3VcIDsKK+mbhuWQiOS9kyA+IHNodXVnb3V0YWlcIDsKK+eri+W+gOeUnyA+IHRhY2hpb3Vqb3VcIDsKK+WtkOWurumguCA+IHNoaWt5dXVrZWlcIDsKK+e1jOmok+eahCA+IGtlaWtlbnRla2lcIDsKK+WMlueyp+eusSA+IGtlc2hvdWJha29cIDsKK+S6jOeVquaYnyA+IG5pYmFuYm9zaGlcIDsKK+azleW+i+WutiA+IGhvdXJpdHN1a2FcIDsKK+a0l+a/r+advyA+IHNlbnRha3VpdGFcIDsKK+a7keayouWJpCA+IGthdHRha3V6YWlcIDsKK+WvvuensOaApyA+IHRhaXNob3VzZWlcIDsKK+WwkeW5tOazlSA+IHNob3VuZW5ob3VcIDsKK+W+s+W3neWutiA+IHRva3VnYXdha2VcIDsKK+a1geWLleS9kyA+IHJ5dXVkb3V0YWlcIDsKK+e1guWIiuWPtyA+IHNodXVrYW5nb3VcIDsKK+ebo+S/ruiAhSA+IGthbnNodXVzaGFcIDsKK+WFsee3qOiAhSA+IGt5b3VoZW5zaGFcIDsKK+e1seioiOWtpiA+IHRvdWtlaWdha3VcIDsKK+i8qumDree3miA+IHJpbmtha3VzZW5cIDsKK+i7jeiJpumzpSA+IGd1bmthbmRvcmlcIDsKK+WVhuiIuemaiiA+IHNob3VzZW50YWlcIDsKK+i2hea6gOWToSA+IGNob3VtYW4nJ2luXCA7CivniYfmiYvpjYsgPiBrYXRhdGVuYWJlXCA7CivogqHplqLnr4AgPiBrb2thbnNldHN1XCA7Civoqr/lkbPmlpkgPiBjaG91bWlyeW91XCA7Civlj4jlsI/kvZwgPiBtYXRha29zYWt1XCA7CivkuI3mraPnm7QgPiBmdXNob3VqaWtpXCA7CivmtKrnqY3lsaQgPiBrb3VzZWtpc291XCA7CivmpJzlnKflmaggPiBrZW4nJ2F0c3VraVwgOwor5p+T54mp5bGLID4gc29tZW1vbm95YVwgOwor6YWN6Iaz5Lq6ID4gaGFpemVuJyduaW5cIDsKK+Wig+eVjOe3miA+IGt5b3VrYWlzZW5cIDsKK+mdmeeJqeeUuyA+IHNlaWJ1dHN1Z2FcIDsKK+aVmeiCsuazlSA+IGt5b3Vpa3Vob3VcIDsKK+WPjumbhumtlCA+IHNodXVzaHV1bWFcIDsKK+mbouiBt+iAhSA+IHJpc2hva3VzaGFcIDsKK+WgseWlqOmHkSA+IGhvdXNob3VraW5cIDsKK+iCoemWk+evgCA+IGtva2Fuc2V0c3VcIDsKK+eJp+W4q+mkqCA+IGJva3VzaGlrYW5cIDsKK+WNoOmgmOi7jSA+IHNlbnJ5b3VndW5cIDsKK+S4reeUn+S7oyA+IGNodXVzZWlkYWlcIDsKK+S4i+WNiuacnyA+IHNoaW1vaGFua2lcIDsKK+aVmeS8muazlSA+IGt5b3VrYWlob3VcIDsKK+WOn+awtOeIhiA+IGdlbnN1aWJha3VcIDsKK+WIuue5jeezuCA+IHNoaXNodXVpdG9cIDsKK+aQreS5l+apiyA+IHRvdWpvdWt5b3VcIDsKK+efs+m5uOeusSA+IHNla2tlbmJha29cIDsKK+Wbnui7oui7uCA+IGthaXRlbmppa3VcIDsKK+WIu+S4gOWIuyA+IGtva3Vpa2tva3VcIDsKK+WJtemAoOeahCA+IHNvdXpvdXRla2lcIDsKK+eXtOWRhueXhyA+IGNoaWhvdXNob3VcIDsKK+aOkuawtOmHjyA+IGhhaXN1aXJ5b3VcIDsKK+WQhOaDheWgsSA+IGtha3Vqb3Vob3VcIDsKK+aguOaWh+azlSA+IGtha3VidW5wb3VcIDsKK+Wkp+OAheeahCA+IGRhaWRhaXRla2lcIDsKK+WjsuS4iumrmCA+IHVyaWFnZWRha2FcIDsKK+a3seaIkOWyqSA+IHNoaW5zZWlnYW5cIDsKK+iDuOS4ieWvuCA+IG11bmVzYW56dW5cIDsKK+W+l+aEj+WuoiA+IHRva3Vpa3lha3VcIDsKK+W+tOWFteWItiA+IGNob3VoZWlzZWlcIDsKK+aAp+acrOiDvSA+IHNlaWhvbicnbm91XCA7CivkvJHoqLrml6UgPiBreXV1c2hpbmJpXCA7Civln7fph5Hpi7wgPiBzaGlra29uZ291XCA7Civnq5znmq7lt7sgPiByeXV1aGltYWtpXCA7Civlm57luLDnhrEgPiBrYWlraW5ldHN1XCA7CivnpZ3os4DkvJogPiBzaHVrdWdha2FpXCA7CivnlJ/mtLvosrsgPiBzZWlrYXRzdWhpXCA7Civms5Xli5nlsYAgPiBob3VtdWt5b2t1XCA7CivkuK3lrabmoKEgPiBjaHV1Z2Fra291XCA7CivmnIjopovojYkgPiB0c3VraW1pc291XCA7CivpgJrkv5fljJYgPiB0c3V1em9rdWthXCA7Civnm7TkuqTmgKcgPiBjaG9ra291c2VpXCA7CivnqLLnhrHnl4UgPiBpbW9jaGlieW91XCA7Civpq5jouI/nmoQgPiBrb3V0b3V0ZWtpXCA7Civntabmlpnml6UgPiBreXV1cnlvdWJpXCA7CivkuIflubTpnZIgPiBtYW4nJ25lbnNlaVwgOwor5bCP5YmN5o+QID4gc2hvdXplbnRlaVwgOwor5YWt5LiJ5Yi2ID4gcm9rdXNhbnNlaVwgOwor6YCg5p6X5a2mID4gem91cmluZ2FrdVwgOwor5YWo6LKs5Lu7ID4gemVuc2VraW5pblwgOwor54Wn5piO5by+ID4gc2hvdW1laWRhblwgOwor5oSb5Zu95b+DID4gYWlrb2t1c2hpblwgOwor55+z6bm455q/ID4gc2Vra2VuemFyYVwgOwor5LqI5a6a6KqsID4geW90ZWlzZXRzdVwgOwor6ISz56Gs5aGeID4gbm91a291c29rdVwgOwor57eP5aSn5bCGID4gc291ZGFpc2hvdVwgOwor5aeL5pyr5bGLID4gc2hpbWF0c3V5YVwgOwor5Zu95pyJ5p6XID4ga29rdXl1dXJpblwgOwor6Jas5a2m6YOoID4geWFrdWdha3VidVwgOwor5om55Yik5YqbID4gaGloYW5yeW9rdVwgOwor562J6Lqr5aSnID4gdG91c2hpbmRhaVwgOwor57eP5pS75pKDID4gc291a291Z2VraVwgOwor6auY5bGx55eFID4ga291emFuYnlvdVwgOwor5LqU5pyI56WtID4gZ29nYXRzdXNhaVwgOwor6LuN5qW96ZqKID4gZ3VuZ2FrdXRhaVwgOwor5LiJ6YeN5ZSxID4gc2FuanV1c2hvdVwgOwor5Y2X5Lqs6LGGID4gbmFua2lubWFtZVwgOwor5puy6aas5birID4ga3lva3ViYXNoaVwgOwor5Ymv5Y+45LukID4gZnVrdXNoaXJlaVwgOwor5pi85pel5LitID4gaGlydWhpbmFrYVwgOwor5bi46K2Y5a62ID4gam91c2hpa2lrYVwgOwor6KiA6JGJ5bC7ID4ga290b2JhamlyaVwgOwor6IK65rW45r2kID4gaGFpc2hpbmp1blwgOwor6ICV5L2c6ICFID4ga291c2FrdXNoYVwgOwor5ZCM5b+D5YaGID4gZG91c2hpbicnZW5cIDsKK+iHtOatu+mHjyA+IGNoaXNoaXJ5b3VcIDsKK+W8geiovOirliA+IGJlbnNob3Vyb25cIDsKK+aWsOeZu+WgtCA+IHNoaW50b3Vqb3VcIDsKK+W8t+WKm+eyiSA+IGt5b3VyaWtpa29cIDsKK+S6iOWCmeWupCA+IHlvYmlzaGl0c3VcIDsKK+W6l+mgreagqiA+IHRlbnRvdWthYnVcIDsKK+eZuuWwhOiWrCA+IGhhc3NoYXlha3VcIDsKK+WMlueyp+awtCA+IGtlc2hvdW1penVcIDsKK+WNgemAsuazlSA+IGppc3NoaW5ob3VcIDsKK+aWh+ethuWutiA+IGJ1bnBpdHN1a2FcIDsKK+W+k+mHj+eojiA+IGp1dXJ5b3V6ZWlcIDsKK+eTpuWxi+aguSA+IGthd2FyYXlhbmVcIDsKK+mWouS/guiqvyA+IGthbmtlaWNob3VcIDsKK+WUr+W/g+irliA+IHl1aXNoaW5yb25cIDsKK+WKseaMr+euoSA+IHJlaXNoaW5rYW5cIDsKK+WFqOaXpeepuiA+IHplbicnbmlra3V1XCA7CivkuozmnprohbAgPiBuaW1haWdvc2hpXCA7CivmtYHliJHlnLAgPiByeXV1a2VpY2hpXCA7CivmtKrnqY3kuJYgPiBrb3VzZWtpc2VpXCA7CivpnIfngb3lnLAgPiBzaGluc2FpY2hpXCA7CivnnLzou5/oho8gPiBnYW4nJ25hbmtvdVwgOwor5rC05pm25L2TID4gc3Vpc2hvdXRhaVwgOwor54K55ruF5ZmoID4gdGVubWV0c3VraVwgOwor5YWE5byf5YiGID4ga3lvdWRhaWJ1blwgOwor6YeR6ZaA5qmLID4ga2lubW9ua3lvdVwgOwor5pmv5Yud5ZywID4ga2Vpc2hvdWNoaVwgOwor5YaF5o6l5YaGID4gbmFpc2V0c3VlblwgOwor55Sf5rS76IumID4gc2Vpa2F0c3VrdVwgOwor5p2x54Wn5a6uID4gdG91c2hvdWd1dVwgOwor5Y+X6Zuj5puyID4ganVuYW5reW9rdVwgOwor5a++5rWB5ZyPID4gdGFpcnl1dWtlblwgOwor5Y2x6Zm654mpID4ga2lrZW5idXRzdVwgOwor56CU5L+u55SfID4ga2Vuc2h1dXNlaVwgOwor6L+R6Kaq5amaID4ga2luc2hpbmtvblwgOwor5Lqk6Kqt5paHID4ga291ZG9rdWJ1blwgOwor6ISz5Y2S5LitID4gbm91c290Y2h1dVwgOwor54S85q275L2TID4gc2hvdXNoaXRhaVwgOwor5LiA56We5pWZID4gaXNzaGlua3lvdVwgOwor5rS+5Ye65omAID4gaGFzaHV0c3Vqb1wgOwor5oyv5YuV6KiIID4gc2hpbmRvdWtlaVwgOwor5bGI5oqY6KqeID4ga3Vzc2V0c3Vnb1wgOwor5puy6aas5ZujID4ga3lva3ViYWRhblwgOwor5rOo5bCE5rayID4gY2h1dXNoYWVraVwgOwor56aP56aE5a+/ID4gZnVrdXJva3VqdVwgOwor57SZ5ZC56ZuqID4ga2FtaWZ1YnVraVwgOwor5Luy5LuL6ICFID4gY2h1dWthaXNoYVwgOwor6ZuG6YWN5Lq6ID4gc2h1dWhhaW5pblwgOwor5a6a56SO5byPID4gdGVpc29zaGlraVwgOwor6KOB5Yik6ZW3ID4gc2FpYmFuY2hvdVwgOwor6Zu76Kmx5bGAID4gZGVud2FreW9rdVwgOwor5L+456W/57GzID4gaG91cm9rdW1haVwgOwor6Iqx5ZC56ZuqID4gaGFuYWZ1YnVraVwgOwor5YW157On57GzID4gaHlvdXJvdW1haVwgOwor6KeS57Sw5belID4gdHN1bm96YWlrdVwgOwor6Ly46YCB5YqbID4geXVzb3VyeW9rdVwgOwor5p6X6YeO5bqBID4gcmluJyd5YWNob3VcIDsKK+aUr+mFjeeahCA+IHNoaWhhaXRla2lcIDsKK+Wkqum8k+apiyA+IHRhaWtvYmFzaGlcIDsKK+eulOWKm+eyiSA+IGhha3VyaWtpa29cIDsKK+eNheWtkOm8uyA+IHNoaXNoaWJhbmFcIDsKK+mAo+maiumVtyA+IHJlbnRhaWNob3VcIDsKK+err+acq+apnyA+IHRhbm1hdHN1a2lcIDsKK+WQueWlj+alvSA+IHN1aXNvdWdha3VcIDsKK+eGseWwhOeXhSA+IG5lc3NoYWJ5b3VcIDsKK+W+s+eUqOeTtiA+IHRva3V5b3ViaW5cIDsKK+Wkqea0peelniA+IGFtYXRzdWthbWlcIDsKK+mZjeawtOmHjyA+IGtvdXN1aXJ5b3VcIDsKK+WHuumHkeiAhSA+IHNodWtraW5zaGFcIDsKK+WFuOWei+eahCA+IHRlbmtlaXRla2lcIDsKK+S4reaeouaApyA+IGNodXVzdXVzZWlcIDsKK+i/t+W9qeacjSA+IG1laXNhaWZ1a3VcIDsKK+S9j+WuhemboyA+IGp1dXRha3VuYW5cIDsKK+WMlueyp+aWmSA+IGtlc2hvdXJ5b3VcIDsKK+W/g+eQhuWtpiA+IHNoaW5yaWdha3VcIDsKK+iKs+WQjemMsiA+IGhvdW1laXJva3VcIDsKK+WLleWKm+eCiSA+IGRvdXJ5b2t1cm9cIDsKK+Wwj+WFkOeXhSA+IHNob3VuaWJ5b3VcIDsKK+WwkeW5tOWboyA+IHNob3VuZW5kYW5cIDsKK+WFqOmdoueahCA+IHplbm1lbnRla2lcIDsKK+Wwj+W4guawkSA+IHNob3VzaGltaW5cIDsKK+WJr+asoeeahCA+IGZ1a3VqaXRla2lcIDsKK+akjumWk+advyA+IHRzdWlrYW5iYW5cIDsKK+iqsueojueOhyA+IGthemVpcml0c3VcIDsKK+mDteaUv+ecgSA+IHl1dXNlaXNob3VcIDsKK+Wkj+WgtOaJgCA+IG5hdHN1YmFzaG9cIDsKK+WOmuWMlueypyA+IGF0c3VnZXNob3VcIDsKK+S6jOS6uue1hCA+IGZ1dGFyaWd1bWlcIDsKK+iHtOWRveWCtyA+IGNoaW1laXNob3VcIDsKK+WJr+mDveW/gyA+IGZ1a3V0b3NoaW5cIDsKK+eZuuahiOiAhSA+IGhhdHN1YW5zaGFcIDsKK+W8t+WKm+eKryA+IGdvdXJpa2loYW5cIDsKK+a0l+a/r+S7oyA+IHNlbnRha3VkYWlcIDsKK+mBiuazs+ihkyA+IHl1dWVpanV0c3VcIDsKK+ijvemZtualrSA+IHNlaXRvdWd5b3VcIDsKK+eQg+W6p+aomSA+IGt5dXV6YWh5b3VcIDsKK+WNoOacieaoqSA+IHNlbicneXV1a2VuXCA7CivmsojkuIHoirEgPiBjaGluY2hvdWdlXCA7CivokaHokITniZkgPiBwb3J1dG9nYXJ1XCA7CivmlZnkvJrloIIgPiBreW91a2FpZG91XCA7CivmlK/lupfplbcgPiBzaGl0ZW5jaG91XCA7CivlvqHlubTnjokgPiBvdG9zaGlkYW1hXCA7Civopb/mtIvokbEgPiBzZWl5b3VuZWdpXCA7Civnk5zlrp/poZQgPiB1cml6YW5lZ2FvXCA7CivnnJ/nqbrluK8gPiBzaGlua3V1dGFpXCA7Civov73pgIHmpJwgPiB0c3Vpc291a2VuXCA7CivmnKrmsbrnm6MgPiBtaWtldHN1a2FuXCA7Civmma7pgJrmoKogPiBmdXRzdXVrYWJ1XCA7CivllYblupfkuLsgPiBzaG91dGVuc2h1XCA7CivmjqHnn7PloLQgPiBzYWlzZWtpam91XCA7CivniaLlkI3kuLsgPiByb3VuYW51c2hpXCA7CivntK/pgLLnqI4gPiBydWlzaGluemVpXCA7CivlpKfnq7bkuokgPiBkYWlreW91c291XCA7Civmo67mnpfms5UgPiBzaGlucmluaG91XCA7CivlkIzpg7fkurogPiBkb3VreW91amluXCA7CivmtL7lh7rlqaYgPiBoYXNodXRzdWZ1XCA7CivlhoXlm73lgrUgPiBuYWlrb2t1c2FpXCA7CivmlK/luqbph5EgPiBzaGl0YWt1a2luXCA7Civlho3mtbjnpLwgPiBzYWlzaGlucmVpXCA7Civlm73mnInlnLAgPiBrb2t1eXV1Y2hpXCA7CivopqrlsZXmm7ggPiBzaGludGVuc2hvXCA7Civlu4nmgaXlv4MgPiByZW5jaGlzaGluXCA7Civnmobml6Lpo58gPiBrYWlraXNob2t1XCA7Civou6LlsYXlhYggPiB0ZW5reW9zYWtpXCA7CivpgKPntaHpp4UgPiByZW5yYWt1ZWtpXCA7Civpm7voqbHlj6MgPiBkZW53YWd1Y2hpXCA7Civnsr7li6Tos54gPiBzZWlraW5zaG91XCA7CivlgaXlv5jnl4cgPiBrZW5ib3VzaG91XCA7CivmlZnkvJrlj7IgPiBreW91a2Fpc2hpXCA7CivlsJHlubTkvJogPiBzaG91bmVua2FpXCA7CivotIvmiYvntJkgPiBuaXNldGVnYW1pXCA7Civlh7rlvoHou40gPiBzaHVzc2VpZ3VuXCA7CivoqIjnlLvogIUgPiBrZWlrYWt1c2hhXCA7CivmlaPmlofnmoQgPiBzYW5idW50ZWtpXCA7CivmjLrouqvpmoogPiB0ZWlzaGludGFpXCA7Civlj4vlpb3nmoQgPiB5dXVrb3V0ZWtpXCA7Civlj6zllprnirYgPiBzaG91a2Fuam91XCA7Civoqo3oqLzogIUgPiBuaW5zaG91c2hhXCA7CivlubTnlKPpoY0gPiBuZW5zYW5nYWt1XCA7Civmj5vnrpfooaggPiBrYW56YW5oeW91XCA7CivmspbnuITnnIwgPiBva2luYXdha2VuXCA7CivmlZHkuJbou40gPiBreXV1c2VpZ3VuXCA7CivmuoDotrPmhJ8gPiBtYW56b2t1a2FuXCA7CivlpYnlhazlhYggPiBob3Vrb3VzYWtpXCA7Civpm7vloLHmlpkgPiBkZW5wb3VyeW91XCA7CivojZLkuovluKsgPiBhcmFnb3Rvc2hpXCA7CivmoYPmupDpg7cgPiB0b3VnZW5reW91XCA7Civok67mnIjlsLwgPiByZW5nZXRzdW5pXCA7Civnvr3mlpHomoogPiBoYW1hZGFyYWthXCA7Civnp4Hmm7jlh70gPiBzaGlzaG9iYWtvXCA7CivmnLTlv7Xku4EgPiBib2t1bmVuamluXCA7CivlrZDlrq7nmYwgPiBzaGlreXV1Z2FuXCA7Civno4HlipvoqIggPiBqaXJ5b2t1a2VpXCA7CivmoLnnspLoj4wgPiBrb25yeXV1a2luXCA7CivnuKbml4vnm6QgPiB0YXRlc2VuYmFuXCA7CivluILlvbnmiYAgPiBzaGl5YWt1c2hvXCA7CivmpJzmtYHoqIggPiBrZW5yeXV1a2VpXCA7CivljbPlo7LkvJogPiBzb2t1YmFpa2FpXCA7Civlu7bkurrlk6EgPiBub2JlamluJydpblwgOwor6Kq/5ZCI5YmkID4gY2hvdWdvdXphaVwgOwor6KaB56K66KqNID4geW91a2FrdW5pblwgOwor5bi457eR5qi5ID4gam91cnlva3VqdVwgOwor6YG455CD55y8ID4gc2Vua3l1dWdhblwgOwor55+z5ZCI5oimID4gaXNoaWdhc3NlblwgOwor5bCB5bu655qEID4gaG91a2VudGVraVwgOwor6aeQ5Zyo5omAID4gY2h1dXphaXNob1wgOwor5LiW5biv5Li7ID4gc2V0YWludXNoaVwgOwor5bmz5bi45b+DID4gaGVpam91c2hpblwgOwor6LGG5Y+w6aKoID4gbWFtZXRhaWZ1dVwgOwor6Ymx5bGx5qWtID4ga291emFuZ3lvdVwgOwor5qeL5paH5pyoID4ga291YnVubW9rdVwgOwor5Y+C6KyA6ZW3ID4gc2FuYm91Y2hvdVwgOwor5YaZ55yf6aSoID4gc2hhc2hpbmthblwgOwor5oim5pmC6ImyID4gc2VuamlzaG9rdVwgOwor5L2P5a6F6KGXID4ganV1dGFrdWdhaVwgOwor6aCT54+N5ryiID4gdG9uY2hpbmthblwgOwor5byx6YW45oCnID4gamFrdXNhbnNlaVwgOwor5Lit5LuV5YiHID4gbmFrYWppa2lyaVwgOwor5Yid6Iie5Y+wID4gaGF0c3VidXRhaVwgOwor5YaZ55yf6aGUID4gc2hhc2hpbmdhb1wgOwor5Y2X5Lqs546JID4gbmFua2luZGFtYVwgOwor6Ii557GN5rivID4gc2Vuc2VraWtvdVwgOwor54eQ54Gw55+zID4gcmlua2Fpc2VraVwgOwor5LiA5bm06ZaTID4gaWNoaW5lbmthblwgOwor6Z2e5o6l6KemID4gaGlzZXNzaG9rdVwgOwor5oyB57aa55qEID4gaml6b2t1dGVraVwgOwor5Za25qWt5LitID4gZWlneW91Y2h1dVwgOwor6LaF6YGO6aGNID4gY2hvdWthZ2FrdVwgOwor6aCQ6LK4546HID4geW90YWlyaXRzdVwgOwor5Luj55So6IKJID4gZGFpeW91bmlrdVwgOwor5pmC57O75YiXID4gamlrZWlyZXRzdVwgOwor5a2Q5L6b5pyNID4ga29kb21vZnVrdVwgOwor6K2m6KaW5bqBID4ga2Vpc2hpY2hvdVwgOwor5YWN55ar5oCnID4gbWVuJydla2lzZWlcIDsKK+ezu+e1seeahCA+IGtlaXRvdXRla2lcIDsKK+i7jeeUqOmHkSA+IGd1bicneW91a2luXCA7CivojZLku5XkuosgPiBhcmFzaGlnb3RvXCA7CivnmbvlsbHlrqIgPiB0b3phbmt5YWt1XCA7CivkvY7os4Pph5EgPiB0ZWljaGluZ2luXCA7CivkvrXlrrPogIUgPiBzaGluZ2Fpc2hhXCA7Civlo7LkuIrnpaggPiB1cmlhZ2VweW91XCA7CivmlL7pgIHliocgPiBob3Vzb3VnZWtpXCA7Civml6XnqIvooaggPiBuaXR0ZWloeW91XCA7Civlia/okazlk4EgPiBmdWt1c291aGluXCA7CivmjL/lhaXmlocgPiBzb3VueXV1YnVuXCA7CivliJ3lrabogIUgPiBzaG9nYWt1c2hhXCA7CivmlZnnv5LmiYAgPiBreW91c2h1dWpvXCA7CivlhaXloLTploAgPiBueXV1am91bW9uXCA7CivlrpjluoHooZcgPiBrYW5jaG91Z2FpXCA7Civopo/liYfnmoQgPiBraXNva3V0ZWtpXCA7CivlsI/lhorlrZAgPiBzaG91c2Fzc2hpXCA7CivovLvlsITnt5ogPiBmdWt1c2hhc2VuXCA7CivljYHpgLLliLYgPiBqaXNzaGluc2VpXCA7CivopIfoo73lk4EgPiBmdWt1c2VpaGluXCA7Civon7nlt6XoiLkgPiBrYW5pa291c2VuXCA7Civmo67mnpfluK8gPiBzaGlucmludGFpXCA7CivntZDmmbbns7sgPiBrZXNzaG91a2VpXCA7CivnhKHnp6nluo8gPiBtdWNoaXRzdWpvXCA7CivkuLvoprPnmoQgPiBzaHVrYW50ZWtpXCA7CivnoLTlo4rlipsgPiBoYWthaXJ5b2t1XCA7CivkuInmr5vkvZwgPiBzYW5tb3VzYWt1XCA7Civmoafnmq7okbogPiBoaXdhZGFidWtpXCA7CivlipvnuZTmqZ8gPiByaWtpc2hva2tpXCA7Civlha3pnaLkvZMgPiByb2t1bWVudGFpXCA7Civnmb3kurrnqK4gPiBoYWt1amluc2h1XCA7CivmsY7npZ7oq5YgPiBoYW5zaGlucm9uXCA7Civku67lrprmrL4gPiBrYXJpdGVpa2FuXCA7CivntI3nqI7poY0gPiBub3V6ZWlnYWt1XCA7Civoq7jlpJblm70gPiBzaG9nYWlrb2t1XCA7CivlpJbmjqXlhoYgPiBnYWlzZXRzdWVuXCA7Civoo73ntJnmpa0gPiBzZWlzaGlneW91XCA7CivpiZvnm7Tnt5ogPiBlbmNob2t1c2VuXCA7Civlv4Ppm7voqIggPiBzaGluZGVua2VpXCA7Civnpo/liKnooaggPiBmdWt1cmloeW91XCA7Civlvq7nlJ/niakgPiBiaXNlaWJ1dHN1XCA7Civlrp3nn7PlupcgPiBob3VzZWtpdGVuXCA7CivlibXmpa3ogIUgPiBzb3VneW91c2hhXCA7Civpnanoo73lk4EgPiBrYXdhc2VpaGluXCA7CivlubPlubTkvZwgPiBoZWluZW5zYWt1XCA7CivnlJ/mhYvlraYgPiBzZWl0YWlnYWt1XCA7CivnjL/oip3lsYUgPiBzYXJ1c2hpYmFpXCA7CivloLTlpJbmoKogPiBqb3VnYWlrYWJ1XCA7CivlvIHoqLzms5UgPiBiZW5zaG91aG91XCA7CivljZTlrprmm7ggPiBreW91dGVpc2hvXCA7CivkupTml6znr4AgPiBnb2p1bnNldHN1XCA7CivliJ3ku7vntaYgPiBzaG9uaW5reXV1XCA7Civpmbjmm7nnrYkgPiByaWt1c291dG91XCA7Civlpb3miJDnuL4gPiBrb3VzZWlzZWtpXCA7CivpgJrmnInmgKcgPiB0c3V1eXV1c2VpXCA7CivogbTlsI7niqwgPiBjaG91ZG91a2VuXCA7Civno4Hlipvnt5ogPiBqaXJ5b2t1c2VuXCA7Civpm6LlqZrnjocgPiByaWtvbnJpdHN1XCA7CivnoZ3phbjloakgPiBzaG91c2FuJydlblwgOwor5YaN56K66KqNID4gc2Fpa2FrdW5pblwgOwor55m65qGI5qipID4gaGF0c3VhbmtlblwgOwor55qG5pei6J2VID4ga2Fpa2lzaG9rdVwgOwor6YWq6KO95ZOBID4gcmFrdXNlaWhpblwgOwor5Zyf5oCn6aqoID4gZG9zaG91Ym9uZVwgOwor6YG/5aaK6JasID4gaGluaW4nJ3lha3VcIDsKK+eZuueUn+WtpiA+IGhhc3NlaWdha3VcIDsKK+S6uueorueahCA+IGppbnNodXRla2lcIDsKK+ejgeefs+ebpCA+IGppc2hha3ViYW5cIDsKK+Wkp+iUtee1jCA+IGRhaXpvdWt5b3VcIDsKK+ays+WOn+m2uCA+IGthd2FyYWhpd2FcIDsKK+eVmee9ruWgtCA+IHJ5dXVjaGlqb3VcIDsKK+mAmumiqOWtlCA+IHRzdXVmdXVrb3VcIDsKK+imgeaxguiAhSA+IHlvdWt5dXVzaGFcIDsKK+ijveezuOalrSA+IHNlaXNoaWd5b3VcIDsKK+efpeaBteiiiyA+IGNoaWVidWt1cm9cIDsKK+e0memJhOegsiA+IGthbWlkZXBwb3VcIDsKK+WInemjm+ihjCA+IGhhdHN1aGlrb3VcIDsKK+eZu+WxseWPoyA+IHRvemFuZ3VjaGlcIDsKK+iyr+awtOmHjyA+IGNob3N1aXJ5b3VcIDsKK+ekvuS8mumNiyA+IHNoYWthaW5hYmVcIDsKK+auiuWLsuizniA+IHNodWt1bnNob3VcIDsKK+mBi+WLlemdtCA+IHVuZG91Z3V0c3VcIDsKK+S6pOmam+WbvSA+IGtvdXNhaWtva3VcIDsKK+WFq+aWh+WtlyA+IGhhY2hpbW9uamlcIDsKK+mWi+eZuumDqCA+IGthaWhhdHN1YnVcIDsKK+iqv+WNsOWbvSA+IGNob3Vpbmtva3VcIDsKK+ebuOe2mueojiA+IHNvdXpva3V6ZWlcIDsKK+idi+S6uuW9oiA+IHJvdW5pbmd5b3VcIDsKK+S6uuWQjemMsiA+IGppbm1laXJva3VcIDsKK+iQveesrOeUnyA+IHJha3VkYWlzZWlcIDsKK+WHneeBsOWyqSA+IGd5b3VrYWlnYW5cIDsKK+WIqeS7mOWCtSA+IHJpdHN1a2lzYWlcIDsKK+S9k+iFlOWjgSA+IHRhaWtvdWhla2lcIDsKK+aMh+aOjOe0iyA+IHNoaXNob3Vtb25cIDsKK+Wlh+i3oeeahCA+IGtpc2VraXRla2lcIDsKK+ibi+eZvea6kCA+IHRhbnBha3VnZW5cIDsKK+aWreacq+mtlCA+IGRhbm1hdHN1bWFcIDsKK+ips+S8neekviA+IHNob3VkZW5zaGFcIDsKK+iRrOWEgOW8jyA+IHNvdWdpc2hpa2lcIDsKK+aQjeWus+mhjSA+IHNvbmdhaWdha3VcIDsKK+mJhOmLvOalrSA+IHRla2tvdWd5b3VcIDsKK+S4gOW8pueQtCA+IGljaGlnZW5raW5cIDsKK+aal+e0q+iJsiA+IGFuc2hpc2hva3VcIDsKK+WFiOS7u+mghiA+IHNlbicnbmluanVuXCA7Civlpb3miKbnmoQgPiBrb3VzZW50ZWtpXCA7CivpmLLplbflrpggPiBib3VjaG91a2FuXCA7CivmsLTlnKfoqIggPiBzdWlhdHN1a2VpXCA7CivlpJblm73li6IgPiBnYWlrb2t1emVpXCA7Civpn5Plm73kurogPiBrYW5rb2t1amluXCA7CivmlaLpl5jos54gPiBrYW50b3VzaG91XCA7Civmr5LopovlvbkgPiBkb2t1bWl5YWt1XCA7CivmqZ/lhoXpo58gPiBraW5haXNob2t1XCA7Civoo4/nlarntYQgPiB1cmFiYW5ndW1pXCA7Civlm73pmLLoq5YgPiBrb2t1Ym91cm9uXCA7CivlrpjmsYLlk4EgPiBrYW5reXV1aGluXCA7Civlm73pmpvnt5ogPiBrb2t1c2Fpc2VuXCA7Civosrjph5HluqsgPiBrYXNoaWtpbmtvXCA7CivpgJ/oqJjooZMgPiBzb2traWp1dHN1XCA7Civlm73oqIDokYkgPiBrdW5pa290b2JhXCA7CivljJDooYznlrkgPiBmdWtrb3VzaGluXCA7CivnlLrlt6XloLQgPiBtYWNoaWtvdWJhXCA7Civoh7PmgKXkvr8gPiBzaGlreXV1YmluXCA7Civlrp3lhqDnq6AgPiBob3VrYW5zaG91XCA7Civoo73ns5bmpa0gPiBzZWl0b3VneW91XCA7Civoi6Xml6bpgqMgPiB3YWthZGFuJyduYVwgOwor5oyR5oim6ICFID4gY2hvdXNlbnNoYVwgOwor6YmE6Ymx55+zID4gdGVra291c2VraVwgOwor5qiq6ZqU6IacID4gb3VrYWt1bWFrdVwgOwor5ZCM5qWt6ICFID4gZG91Z3lvdXNoYVwgOwor5rS755So6KqeID4ga2F0c3V5b3Vnb1wgOwor5rex5ZG85ZC4ID4gc2hpbmtva3l1dVwgOwor5LiJ55Wq6baPID4gc2FuYmFuZG9yaVwgOwor5Yik5Lu75a6YID4gaGFuJyduaW5rYW5cIDsKK+WHuuWLpOiAhSA+IHNodWtraW5zaGFcIDsKK+WkluWbveWCtSA+IGdhaWtva3VzYWlcIDsKK+mAo+e1oeiIuSA+IHJlbnJha3VzZW5cIDsKK+iQveesrOeCuSA+IHJha3VkYWl0ZW5cIDsKK+mAsuihjOebuCA+IHNoaW5rb3Vzb3VcIDsKK+S4ieeVqumzpSA+IHNhbmJhbmRvcmlcIDsKK+axuuWumueahCA+IGtldHRlaXRla2lcIDsKK+iCieaWmeeQhiA+IG5pa3VyeW91cmlcIDsKK+aWh+azleeahCA+IGJ1bnBvdXRla2lcIDsKK+WbveaWh+azlSA+IGtva3VidW5wb3VcIDsKK+i2heW8qee0miA+IGNob3Vkb2t5dXVcIDsKK+Wkp+iUteecgSA+IG9va3VyYXNob3VcIDsKK+aEn+aDheeahCA+IGthbmpvdXRla2lcIDsKK+S5l+WQiOiIuSA+IG5vcmlhaWJ1bmVcIDsKK+W+s+eUqOWTgSA+IHRva3V5b3VoaW5cIDsKK+eHg+aWmeajkiA+IG5lbnJ5b3Vib3VcIDsKK+S6jOaXpemFlCA+IGZ1dHN1a2F5b2lcIDsKK+elnue1jOezuyA+IHNoaW5rZWlrZWlcIDsKK+S7ruitsOmVtyA+IGthcmlnaWNob3VcIDsKK+eLrOaWreirliA+IGRva3VkYW5yb25cIDsKK+WkluWbveS6uiA+IGdhaWtva3VqaW5cIDsKK+ePjeeznua8oiA+IGNoaW5wdW5rYW5cIDsKK+aMr+WLleadvyA+IHNoaW5kb3ViYW5cIDsKK+S4u+aVmeWGoCA+IHNodWt5b3VrYW5cIDsKK+ato+aVmeW4qyA+IHNlaWt5b3VzaGlcIDsKK+e0sOiPjOWtpiA+IHNhaWtpbmdha3VcIDsKK+iAleS9nOWcsCA+IGtvdXNha3VjaGlcIDsKK+aUuemAsuWFmiA+IGthaXNoaW50b3VcIDsKK+S4ieWIhuaQlyA+IHNhbmJ1dHN1a2lcIDsKK+S8kemWkeWcsCA+IGt5dXVrYW5jaGlcIDsKK+i7jeeUqOiJpiA+IGd1bicneW91a2FuXCA7CivmlrDogZ7ntJkgPiBzaGluYnVuc2hpXCA7CivovLvlsITngrkgPiBmdWt1c2hhdGVuXCA7CivkuJbkv5fnmoQgPiBzZXpva3V0ZWtpXCA7Civph43lnKfmhJ8gPiBqdXVhdHN1a2FuXCA7CivosYbpiYTnoLIgPiBtYW1lZGVwcG91XCA7CivlhKrnp4Dlk4EgPiB5dXVzaHV1aGluXCA7Civph5Hono3nlYwgPiBraW4nJ3l1dWthaVwgOwor5YKN6IG05Yi4ID4gYm91Y2hvdWtlblwgOwor6LKv6YeR566xID4gY2hva2luYmFrb1wgOwor5Zu95aKD57eaID4ga29ra3lvdXNlblwgOwor6JqV57O45qWtID4gc2Fuc2hpZ3lvdVwgOwor5LiA5bm06I2JID4gaWNoaW5lbnNvdVwgOwor6auY5a+G5bqmID4ga291bWl0c3Vkb1wgOwor5YWN55ar5L2TID4gbWVuJydla2l0YWlcIDsKK+ejgeawl+W1kCA+IGppa2lhcmFzaGlcIDsKK+aMr+WLleaVsCA+IHNoaW5kb3VzdXVcIDsKK+Wkp+ekvOacjSA+IHRhaXJlaWZ1a3VcIDsKK+aUueiJr+eoriA+IGthaXJ5b3VzaHVcIDsKK+WMl+WbveS6uiA+IGhva2tva3VqaW5cIDsKK+mAo+e1oee3miA+IHJlbnJha3VzZW5cIDsKK+eJouW9ueS6uiA+IHJvdXlha3VuaW5cIDsKK+WGheelneiogCA+IG5haXNodXVnZW5cIDsKK+WNiui6q+WDjyA+IGhhbnNoaW56b3VcIDsKK+Wkp+m7kuWkqSA+IGRhaWtva3V0ZW5cIDsKK+S4jeWIhuWJsiA+IGZ1YnVua2F0c3VcIDsKK+ilv+WMl+ilvyA+IHNlaWhva3VzZWlcIDsKK+S4reS4luWPsiA+IGNodXVzZWlzaGlcIDsKK+aAkumrquWkqSA+IGRvaGF0c3V0ZW5cIDsKK+WPjemdqeWRvSA+IGhhbmtha3VtZWlcIDsKK+aWsOiBnuekviA+IHNoaW5idW5zaGFcIDsKK+S4gOapn+i7uCA+IGljaGlraWppa3VcIDsKK+mbhumtmueBryA+IHNodXVneW90b3VcIDsKK+mbquimi+mFkiA+IHl1a2ltaXpha2VcIDsKK+WdiuS4u+mgrSA+IGJvdXp1YXRhbWFcIDsKK+WFiOmok+eahCA+IHNlbmtlbnRla2lcIDsKK+mXh+e1puS4jiA+IHlhbWlreXV1eW9cIDsKK+WCjeiBtOS6uiA+IGJvdWNob3VuaW5cIDsKK+S6i+Wun+S4iiA+IGppaml0c3Vqb3VcIDsKK+e+qeS+oOW/gyA+IGdpa3lvdXNoaW5cIDsKK+eUqOawtOWggCA+IHlvdXN1aWJvcmlcIDsKK+S7ruaZruiriyA+IGthcmlidXNoaW5cIDsKK+WNoOmgmOWcsCA+IHNlbnJ5b3VjaGlcIDsKK+WvneijheWTgSA+IHNoaW5zb3VoaW5cIDsKK+eUuuWGheS8miA+IGNob3VuYWlrYWlcIDsKK+WQjOebn+WbvSA+IGRvdW1laWtva3VcIDsKK+eZuuiCsuacnyA+IGhhdHN1aWt1a2lcIDsKK+iqk+e0hOabuCA+IHNlaXlha3VzaG9cIDsKK+eZuuWxleS4rSA+IGhhdHRlbmNodXVcIDsKK+iMtueVqueahCA+IGNoYWJhbnRla2lcIDsKK+eJueeUo+WTgSA+IHRva3VzYW5oaW5cIDsKK+ijveeyiealrSA+IHNlaWZ1bmd5b3VcIDsKK+a2iOWOu+azlSA+IHNob3VreW9ob3VcIDsKK+iCm+mWgOWtpiA+IGtvdW1vbmdha3VcIDsKK+Wkp+WPuOaVmSA+IGRhaXNoaWt5b3VcIDsKK+WmhOaDs+eXhyA+IG1vdXNvdXNob3VcIDsKK+W+oeeUqOmBlCA+IGdveW91ZGF0c3VcIDsKK+WxleekuueJqSA+IHRlbmppYnV0c3VcIDsKK+iHquauuuiAhSA+IGppc2F0c3VzaGFcIDsKK+WwhOW5uOW/gyA+IHNoYWtvdXNoaW5cIDsKK+S9nOabsuWutiA+IHNha2t5b2t1a2FcIDsKK+WFrOaVmeS8miA+IGtvdWt5b3VrYWlcIDsKK+ioiOeUu+aApyA+IGtlaWtha3VzZWlcIDsKK+WIh+i/q+aEnyA+IHNlcHBha3VrYW5cIDsKK+S4uOWkqeS6lSA+IG1hcnV0ZW5qb3VcIDsKK+aeouWvhumZoiA+IHN1dW1pdHN1aW5cIDsKK+Wbm+WFreWIpCA+IHNoaXJva3ViYW5cIDsKK+i/veS9k+mokyA+IHRzdWl0YWlrZW5cIDsKK+WFpeWgtOiAhSA+IG55dXVqb3VzaGFcIDsKK+WNiueXheS6uiA+IGhhbmJ5b3VuaW5cIDsKK+aNnOe0oumaiiA+IHNvdXNha3V0YWlcIDsKK+WPi+WlveWbvSA+IHl1dWtvdWtva3VcIDsKK+auv+S4iuS6uiA+IHRlbmpvdWJpdG9cIDsKK+aIquaWreapnyA+IHNldHN1ZGFua2lcIDsKK+eEoeawtOeJqSA+IG11c3VpYnV0c3VcIDsKK+WBpeW6t+eahCA+IGtlbmtvdXRla2lcIDsKK+aWsOS9k+aTjSA+IHNoaW50YWlzb3VcIDsKK+epuuS4ree3miA+IGt1dWNodXVzZW5cIDsKK+eUsOiIjumBkyA+IGluYWthbWljaGlcIDsKK+azouS5g+iKsSA+IG5hbWlub2hhbmFcIDsKK+WBtuWDj+aVmSA+IGd1dXpvdWt5b3VcIDsKK+elnuipseWtpiA+IHNoaW53YWdha3VcIDsKK+ebuOe2muaoqSA+IHNvdXpva3VrZW5cIDsKK+aAp+aVmeiCsiA+IHNlaWt5b3Vpa3VcIDsKK+WJjeWTqOe3miA+IHplbnNob3VzZW5cIDsKK+eLrOWlj+iAhSA+IGRva3Vzb3VzaGFcIDsKK+i1pOihgOeQgyA+IHNla2tla2t5dXVcIDsKK+WkqeWPsOWulyA+IHRlbmRhaXNodXVcIDsKK+i7jealveaJiyA+IGd1bmdha3VzaHVcIDsKK+i7jeiJpuW3uyA+IGd1bmthbm1ha2lcIDsKK+aal+ikkOiJsiA+IGFua2Fzc2hva3VcIDsKK+mAhuS9nOeUqCA+IGd5YWt1c2F5b3VcIDsKK+aMkeaIpueKtiA+IGNob3VzZW5qb3VcIDsKK+aknOmHj+e3miA+IGtlbnJ5b3VzZW5cIDsKK+e2suadk+WtkCA+IGFtaWpha3VzaGlcIDsKK+WGjeazqOaWhyA+IHNhaWNodXVtb25cIDsKK+WGheWPjei2syA+IG5haWhhbnNva3VcIDsKK+ekvueUqOaXjyA+IHNoYXlvdXpva3VcIDsKK+W5tOWwkeiAhSA+IG5lbnNob3VzaGFcIDsKK+aWsOeUn+S7oyA+IHNoaW5zZWlkYWlcIDsKK+S/neeuoeeJqSA+IGhva2FuYnV0c3VcIDsKK+WEquWLneiAhSA+IHl1dXNob3VzaGFcIDsKK+aUueiJr+eCuSA+IGthaXJ5b3V0ZW5cIDsKK+e1puaOkuawtCA+IGt5dXVoYWlzdWlcIDsKK+WkqeecvOmPoSA+IHRlbmdhbmt5b3VcIDsKK+S4iemAo+WLnSA+IHNhbnJlbnNob3VcIDsKK+S4jeeZuuW8viA+IGZ1aGF0c3VkYW5cIDsKK+WNiuWumOeahCA+IGhhbmthbnRla2lcIDsKK+aMr+WLleWtkCA+IHNoaW5kb3VzaGlcIDsKK+a0u+eZuuWMliA+IGthcHBhdHN1a2FcIDsKK+WPjumbhuWutiA+IHNodXVzaHV1a2FcIDsKK+mFuOWMlumJhCA+IHNhbmthdGV0c3VcIDsKK+aWsOS6uueOiyA+IHNoaW5qaW4nJ291XCA7Civlu7bml6XmlbAgPiBub2Jlbmlzc3V1XCA7CivlpYnnjK7poIwgPiBob3VrZW5zaG91XCA7CivosrjlupfoiJcgPiBrYXNoaXRlbnBvXCA7CivkuozkurrlhbEgPiBmdXRhcml0b21vXCA7Civlj47mloLliaQgPiBzaHV1cmVuemFpXCA7Civlm73pmpvms5UgPiBrb2t1c2FpaG91XCA7Civpq5jlrablubQgPiBrb3VnYWt1bmVuXCA7CivmoLjngb3lrrMgPiBrYWt1c2FpZ2FpXCA7CivkvL3ojYnlrZAgPiB0b2dpem91c2hpXCA7Civnhb3mg4XnmoQgPiBzZW5qb3V0ZWtpXCA7Civoqo3oqLzlrpggPiBuaW5zaG91a2FuXCA7CivppIrompXmpa0gPiB5b3VzYW5neW91XCA7CivngavlsbHohIggPiBrYXphbm15YWt1XCA7Civoj5znqK7mrrsgPiBuYXRhbmVnYXJhXCA7Civpgb/mmpHlrqIgPiBoaXNob2t5YWt1XCA7CivmsY7lv4Poq5YgPiBoYW5zaGlucm9uXCA7Civmm7joqZXmrIQgPiBzaG9oeW91cmFuXCA7CivlhaXloLTnqI4gPiBueXV1am91emVpXCA7CivoqabkvZzou4ogPiBzaGlzYWt1c2hhXCA7CivnjYTkuK3oqJggPiBnb2t1Y2h1dWtpXCA7CivkubPlhYTlvJ8gPiBjaGlreW91ZGFpXCA7CivkuozkuIPml6UgPiBmdXRhbmFub2thXCA7CivmraPmlZnkvJogPiBzZWlreW91a2FpXCA7CivlhYjnlJ/mlrkgPiBzZW5zZWlnYXRhXCA7CivojYnpm7Lpm4AgPiBrdXNhaGliYXJpXCA7Civkvo3lvpPogbcgPiBqaWp1dXNob2t1XCA7CivlnLDlvaLlraYgPiBjaGlrZWlnYWt1XCA7CivkuIDnm7Tnt5ogPiBpdGNob2t1c2VuXCA7CivlpKnnnLzpgJogPiB0ZW5nYW50c3V1XCA7Civku7LosrfkurogPiBuYWthZ2FpbmluXCA7CivolqznkIblraYgPiB5YWt1cmlnYWt1XCA7Civlm73mloflsIIgPiBrb2t1YnVuc2VuXCA7CivkuIDlubTnlJ8gPiBpY2hpbmVuc2VpXCA7CivlrprlvI/ljJYgPiB0ZWlzaGlraWthXCA7CivllYbmpa3ljJYgPiBzaG91Z3lvdWthXCA7CivkuIDovKrou4ogPiBpY2hpcmluc2hhXCA7Civmu7Lngq3pi7wgPiBzaGludGFua291XCA7Civou43nlKjniqwgPiBndW4nJ3lvdWtlblwgOwor5YWt6KeS5aCCID4gcm9ra2FrdWRvdVwgOwor5bqK5pqW5oi/ID4geXVrYWRhbmJvdVwgOwor562G5LiN57K+ID4gZnVkZWJ1c2hvdVwgOwor5YWs6Ki85Lq6ID4ga291c2hvdW5pblwgOwor6JaE5Yqb57KJID4gaGFrdXJpa2lrb1wgOwor54mn6I2J5ZywID4gYm9rdXNvdWNoaVwgOwor5bGe5oCn5YCkID4gem9rdXNlaWNoaVwgOwor6Kej5q+S6JasID4gZ2Vkb2t1eWFrdVwgOwor5rqA5pyf5pelID4gbWFua2lqaXRzdVwgOwor5ZCN5L2c6YG4ID4gbWVpc2FrdXNlblwgOwor5ZWG55So5paHID4gc2hvdXlvdWJ1blwgOwor5Zu96Kqe5a2mID4ga29rdWdvZ2FrdVwgOwor5Y+v5Y+K55qEID4ga2FreXV1dGVraVwgOwor5YaZ55yf54+tID4gc2hhc2hpbmhhblwgOwor5LiA5YWD6KuWID4gaWNoaWdlbnJvblwgOwor6Kq/5Ymk5birID4gY2hvdXphaXNoaVwgOwor5Y2Y5LiJ5b2iID4gdGFuc2FuZ2F0YVwgOwor55Sy5YaR5birID4ga2F0Y2h1dXNoaVwgOwor5YWI5Lu76ICFID4gc2VuJyduaW5zaGFcIDsKK+absue3mue+jiA+IGt5b2t1c2VuYmlcIDsKK+WFrOe0hOaVsCA+IGtvdXlha3VzdXVcIDsKK+eGseeLguiAhSA+IG5la2t5b3VzaGFcIDsKK+awtOe0i+WtpiA+IHN1aW1vbmdha3VcIDsKK+S6uueoruWtpiA+IGppbnNodWdha3VcIDsKK+aui+W/jeaApyA+IHphbicnbmluc2VpXCA7Civnm7jplqLnmoQgPiBzb3VrYW50ZWtpXCA7CivlhpnnnJ/niYggPiBzaGFzaGluYmFuXCA7CivnlJ/mga/lnLAgPiBzZWlzb2t1Y2hpXCA7Civnn6XmgKfnmoQgPiBjaGlzZWl0ZWtpXCA7CivmnKrnmbrpgZQgPiBtaWhhdHRhdHN1XCA7CivplovluZXmiKYgPiBrYWltYWt1c2VuXCA7CivlvozphY3moKogPiBrb3VoYWlrYWJ1XCA7CivlgZzms4rlnLAgPiB0ZWloYWt1Y2hpXCA7CivnvbnmgqPnjocgPiByaWthbnJpdHN1XCA7CivpgLLooYzlvaIgPiBzaGlua291a2VpXCA7CivpgZPlvrPkuIogPiBkb3V0b2t1am91XCA7CivnpL7kvJrnmoQgPiBzaGFrYWl0ZWtpXCA7CivpnIfmupDlnLAgPiBzaGluZ2VuY2hpXCA7CivmmJ/pm7LoqqwgPiBzZWl1bnNldHN1XCA7CivmsrPljp/ogIUgPiBrYXdhcmFtb25vXCA7CivmurrmrbvogIUgPiBkZWtpc2hpc2hhXCA7CivmtbfllYbms5UgPiBrYWlzaG91aG91XCA7CivnkIbpq6rlupcgPiByaWhhdHN1dGVuXCA7Civpnanlkb3ou40gPiBrYWt1bWVpZ3VuXCA7Civmm7joqozlraYgPiBzaG9zaGlnYWt1XCA7CivnkIbpq6rluKsgPiByaWhhdHN1c2hpXCA7CivkuJbkv5flv4MgPiBzZXpva3VzaGluXCA7Civpganku7vogIUgPiB0ZWtpbmluc2hhXCA7CivlpInlnKfmiYAgPiBoZW4nJ2F0c3Vqb1wgOwor5ryi5rCR5pePID4ga2FubWluem9rdVwgOwor6YGp55So5oCnID4gdGVraXlvdXNlaVwgOwor55u06KuH5YikID4gamlrYWRhbnBhblwgOwor6IOM5L+h6ICFID4gaGFpc2hpbnNoYVwgOwor562G6ICV5paZID4gaGlra291cnlvdVwgOwor5Lyd5rOV6IKMID4gZGVuYm91aGFkYVwgOwor57mK5q+b6JmrID4gc2VubW91Y2h1dVwgOwor56u25aOy5Lq6ID4ga3lvdWJhaW5pblwgOwor5L2c6Kme6ICFID4gc2FrdXNoaXNoYVwgOwor5a6J5q276KGTID4gYW5zaGlqdXRzdVwgOwor5qmf5YuV5YqbID4ga2lkb3VyeW9rdVwgOwor5pyA57WC5ZueID4gc2Fpc2h1dWthaVwgOwor5Li76KaB5Zu9ID4gc2h1eW91a29rdVwgOwor5Y+N6Zm95a2QID4gaGFuJyd5b3VzaGlcIDsKK+WGheWQkeeahCA+IG5haWtvdXRla2lcIDsKK+mYsua9ruWgpCA+IGJvdWNob3V0ZWlcIDsKK+a2suaZtuebpCA+IGVraXNob3ViYW5cIDsKK+elnue1jOaIpiA+IHNoaW5rZWlzZW5cIDsKK+m7hOWFq+S4iCA+IGtpaGFjaGlqb3VcIDsKK+ihqOS6jOmajiA+IG9tb3RlbmlrYWlcIDsKK+ippumok+eahCA+IHNoaWtlbnRla2lcIDsKK+WxoOauuuWgtCA+IHRvc2F0c3Vqb3VcIDsKK+aXheaUr+W6piA+IHRhYmlqaXRha3VcIDsKK+abuOewoembhiA+IHNob2thbnNodXVcIDsKK+WlveaIpuWbvSA+IGtvdXNlbmtva3VcIDsKK+WWtuael+WxgCA+IGVpcmlua3lva3VcIDsKK+eEoemHjeWKmyA+IG11anV1cnlva3VcIDsKK+mBuuWkseiAhSA+IGlzaGl0c3VzaGFcIDsKK+eUn+W+l+aoqSA+IHNlaXRva3VrZW5cIDsKK+exs+mokuWLlSA+IGtvbWVzb3Vkb3VcIDsKK+aWsOS9k+WItiA+IHNoaW50YWlzZWlcIDsKK+ihgOa4heWtpiA+IGtlc3NlaWdha3VcIDsKK+mDqOmVt+mWsiA+IGJ1Y2hvdWV0c3VcIDsKK+WknOaDs+absiA+IHlhc291a3lva3VcIDsKK+amguW/teeahCA+IGdhaW5lbnRla2lcIDsKK+epuuS4reaoqSA+IGt1dWNodXVrZW5cIDsKK+WRqOmBiuWIuCA+IHNodXV5dXVrZW5cIDsKK+WJteS9nOiAhSA+IHNvdXNha3VzaGFcIDsKK+WQq+ezlumHjyA+IGdhbnRvdXJ5b3VcIDsKK+WAuee0hOWutiA+IGtlbicneWFrdWthXCA7Civlh7rlvLXmiYAgPiBzaHV0Y2hvdWpvXCA7CivnrqHnkIbogbcgPiBrYW5yaXNob2t1XCA7CivmgZDmgJbnl4cgPiBreW91ZnVzaG91XCA7CivmlL/nlaXlrrYgPiBzZWlyeWFrdWthXCA7CivlhazooYbntrIgPiBrb3VzaHV1bW91XCA7CivlhaXloLTmqKkgPiBueXV1am91a2VuXCA7CivnnaPmiKbpmoogPiB0b2t1c2VudGFpXCA7CivljYPnvr3ptrQgPiBzZW5iYWR6dXJ1XCA7CivkvY/lroXlnLAgPiBqdXV0YWt1Y2hpXCA7CivlhoXmg5HmmJ8gPiBuYWl3YWt1c2VpXCA7CivnnJ/mraPnm7QgPiBtYXNob3VqaWtpXCA7CivlraPnr4DpoqggPiBraXNldHN1ZnV1XCA7CivkvY7lrablubQgPiB0ZWlnYWt1bmVuXCA7CivlrabnsY3nsL8gPiBnYWt1c2VraWJvXCA7Civnq4vkvZPpj6EgPiByaXR0YWlreW91XCA7CivkuozpoIXlvI8gPiBuaWtvdXNoaWtpXCA7Civnmb7ml6XntIUgPiBzYXJ1c3ViZXJpXCA7Civou43nlaXlrrYgPiBndW5yeWFrdWthXCA7CivmsJHorZrpm4YgPiBtaW5kYW5zaHV1XCA7CivmhbDllY/ooosgPiBpbW9uYnVrdXJvXCA7Civmtojnn7PngbAgPiBzaG91c2Vra2FpXCA7CivljZjkuIDljJYgPiB0YW4nJ2l0c3VrYVwgOwor5bCC55So6LuKID4gc2VuJyd5b3VzaGFcIDsKK+S7leiInueJqSA+IHNoaW1haW1vbm9cIDsKK+Wkp+eZvemzpSA+IG9vaGFrdWNob3VcIDsKK+e3qeW+kOabsiA+IGthbmpva3lva3VcIDsKK+WIgOWJo+WVhiA+IHRvdWtlbnNob3VcIDsKK+S8veiKneWxhSA+IHRvZ2lzaGliYWlcIDsKK+WknOOAheS4rSA+IHlvcnV5b25ha2FcIDsKK+awl+ixoeW6gSA+IGtpc2hvdWNob3VcIDsKK+eAnemdkueCrSA+IHJla2lzZWl0YW5cIDsKK+S4gOWGhueOiSA+IGljaGllbmRhbWFcIDsKK+eNheWtkOWuriA+IHNoaXNoaWt5dXVcIDsKK+W3oea0i+iJpiA+IGp1bicneW91a2FuXCA7Civlv4XpnIDlk4EgPiBoaXRzdWp1aGluXCA7CivkuI3kv6HnlKggPiBmdXNoaW4nJ3lvdVwgOwor5ris5Zyw57eaID4gc29rdWNoaXNlblwgOwor6auY5pyo5bGkID4ga291Ym9rdXNvdVwgOwor5qGD5rqQ5aKDID4gdG91Z2Vua3lvdVwgOwor6KGo5bGk5oCnID4gaHlvdXNvdXNlaVwgOwor5Ye65bit57C/ID4gc2h1c3Nla2lib1wgOwor6Kaq546L5aaDID4gc2hpbicnbm91aGlcIDsKK+mFjee1puezuyA+IGhhaWt5dXVrZWlcIDsKK+WkieWcp+WZqCA+IGhlbicnYXRzdWtpXCA7Civlrp/kvZPpj6EgPiBqaXR0YWlreW91XCA7CivlhKrli53mna8gPiB5dXVzaG91aGFpXCA7CivpgankuI3pgakgPiB0ZWtpZnV0ZWtpXCA7CivnpL7kuqTnmoQgPiBzaGFrb3V0ZWtpXCA7CivphY3ntabnsbMgPiBoYWlreXV1bWFpXCA7Civmm7joqJjlsYAgPiBzaG9raWt5b2t1XCA7CivotIjlj47os4QgPiB6b3VzaHV1d2FpXCA7Civlh7jlh7nntJkgPiB0b3RzdW91c2hpXCA7Civoo4HliKTkurogPiBzYWliYW4nJ25pblwgOwor5LuK6YGT5b+DID4gaW1hZG91c2hpblwgOwor57S55LuL6ICFID4gc2hvdWthaXNoYVwgOwor56m65Lit5oimID4ga3V1Y2h1dXNlblwgOwor5rCX6LGh5a2mID4ga2lzaG91Z2FrdVwgOwor55u457aa5Lq6ID4gc291em9rdW5pblwgOwor6KKr5ZGK5bitID4gaGlrb2t1c2VraVwgOwor5Lmz6ISC6IKqID4gbnl1dXNoaWJvdVwgOwor6L6y54mn5ZywID4gbm91Ym9rdWNoaVwgOwor5oKq5oiv5a2QID4gaXRhenVyYWtrb1wgOwor5bCE55qE5aC0ID4gc2hhdGVraWpvdVwgOwor5YmN5ZOo5oimID4gemVuc2hvdXNlblwgOwor5rOV5a2m6ICFID4gaG91Z2FrdXNoYVwgOwor5YWo5Zu957SZID4gemVua29rdXNoaVwgOwor5pWR6Zuj6Ii5ID4ga3l1dW5hbnNlblwgOwor6YeR6J6N5YK1ID4ga2luJyd5dXVzYWlcIDsKK+S4iui8ieWcpyA+IGpvdXNhaWF0c3VcIDsKK+WPo+WWp+WYqSA+IGt1Y2hpZ2Vua2FcIDsKK+aIkOS6uueXhSA+IHNlaWppbmJ5b3VcIDsKK+iKseawtOacqCA+IGhhbmFtaXp1a2lcIDsKK+mAoOWckuihkyA+IHpvdWVuanV0c3VcIDsKK+S5s+iFuueCjiA+IG55dXVzZW4nJ2VuXCA7CivmtbfmtYHnk7YgPiBrYWlyeXV1YmluXCA7CivliIblhYnlraYgPiBidW5rb3VnYWt1XCA7CivmsJHkuLvnmoQgPiBtaW5zaHV0ZWtpXCA7Civnsr7nmb3ns5YgPiBzZWloYWt1dG91XCA7CivnhKHmqZ/os6ogPiBtdWtpc2hpdHN1XCA7CivpgJroqbHmlpkgPiB0c3V1d2FyeW91XCA7CivmlLnoia/lk4EgPiBrYWlyeW91aGluXCA7Civnsr7nmb3nsbMgPiBzZWloYWt1bWFpXCA7Civlv6vliYrpi7wgPiBrYWlzYWt1a291XCA7Civml6XlkJHmsLQgPiBoaW5hdGFtaXp1XCA7CivmiYfmg4XnmoQgPiBzZW5qb3V0ZWtpXCA7Civpmarlr6nlk6EgPiBiYWlzaGluJydpblwgOwor5bir5Zuj6ZW3ID4gc2hpZGFuY2hvdVwgOwor57WE6IG35L2TID4gc29zaG9rdXRhaVwgOwor5p6c5a6f6YWSID4ga2FqaXRzdXNodVwgOwor5am/6aSK5a2QID4gbXVrb3lvdXNoaVwgOwor5YaZ55yf5birID4gc2hhc2hpbnNoaVwgOwor5LiL5qSc5p+7ID4gc2hpdGFrZW5zYVwgOwor6aKo6YKq6JasID4ga2F6ZWd1c3VyaVwgOwor5YSq5Yud5oimID4geXV1c2hvdXNlblwgOwor6YCj57aa5L2TID4gcmVuem9rdXRhaVwgOwor5aSp5YiR55eFID4gdGVua2VpYnlvdVwgOwor5Y2K57+F55uuID4gaGFuc2hpbW9rdVwgOwor6Iy255Wq5YqHID4gY2hhYmFuZ2VraVwgOwor5YaZ55yf5bGLID4gc2hhc2hpbicneWFcIDsKK+iJr+WwjuS9kyA+IHJ5b3Vkb3V0YWlcIDsKK+aVkeS4luS4uyA+IGt5dXVzZWlzaHVcIDsKK+ayk+aJi+mzpSA+IGhvdG90b2dpc3VcIDsKK+acquedgOaJiyA+IG1pY2hha3VzaHVcIDsKK+S9nOipqeazlSA+IHNha3VzaGlob3VcIDsKK+ecn+mtmumwuSA+IG1hbmFnYXRzdW9cIDsKK+WHuuW8teWToSA+IHNodXRjaG91aW5cIDsKK+S6uuWKm+i7iiA+IGppbnJpa2lzaGFcIDsKK+Wbvemam+S6uiA+IGtva3VzYWlqaW5cIDsKK+a4rOmVt+apnyA+IHNva3VjaG91a2lcIDsKK+Wwj+S4u+imsyA+IHNob3VzaHVrYW5cIDsKK+Wun+i3teeahCA+IGppc3NlbnRla2lcIDsKK+mAo+e1kOWZqCA+IHJlbmtldHN1a2lcIDsKK+iAkOS5heaApyA+IHRhaWt5dXVzZWlcIDsKK+adieS4puacqCA+IHN1Z2luYW1pa2lcIDsKK+e1guS6huW+jCA+IHNodXVyeW91Z29cIDsKK+WkqemBk+anmCA+IHRlbnRvdXNhbWFcIDsKK+aSruW9semaiiA+IHNhdHN1ZWl0YWlcIDsKK+iKseiPluiSsiA+IGhhbmFzaG91YnVcIDsKK+aknOecvOmPoSA+IGtlbmdhbmt5b3VcIDsKK+mFuOWMlueJqSA+IHNhbmthYnV0c3VcIDsKK+Wwj+S9nOaWmSA+IGtvc2FrdXJ5b3VcIDsKK+W6tuawkeeahCA+IHNob21pbnRla2lcIDsKK+i8quiInuabsiA+IHJpbmJ1a3lva3VcIDsKK+WHjee1kOWZqCA+IHRvdWtldHN1a2lcIDsKK+Wkj+icnOafkSA+IG5hdHN1bWlrYW5cIDsKK+etieaWueeahCA+IHRvdWhvdXRla2lcIDsKK+Wyqea4heawtCA+IGl3YXNoaW1penVcIDsKK+eri+ahiOiAhSA+IHJpdHN1YW5zaGFcIDsKK+iRl+i/sOWutiA+IGNob2p1dHN1a2FcIDsKK+iEs+aiheavkiA+IG5vdWJhaWRva3VcIDsKK+i7jeeUqOWTgSA+IGd1bicneW91aGluXCA7Civlg5Xku7LplpMgPiBib2t1bmFrYW1hXCA7Civpm6PoppbogbQgPiBuYW5zaGljaG91XCA7CivlvrPnvqnlv4MgPiB0b2t1Z2lzaGluXCA7CivliLrmv4DmgKcgPiBzaGlnZWtpc2VpXCA7CivpgKPntaHlhYggPiByZW5yYWt1c2VuXCA7Civov5HmtbfniakgPiBraW5rYWltb25vXCA7CivmnbHmtIvpgJogPiB0b3V5b3V0c3V1XCA7CivpiYTnoLLnjokgPiB0ZXBwb3VkYW1hXCA7CivkvqHmoLzooaggPiBrYWtha3VoeW91XCA7Civoqr/lgZzogIUgPiBjaG91dGVpc2hhXCA7CivmrbTlj7LoprMgPiByZWtpc2hpa2FuXCA7Civlu7rnr4nosrsgPiBrZW5jaGlrdWhpXCA7Civkurrmg4XliocgPiBuaW5qb3VnZWtpXCA7CivlpJrnpZ7mlZkgPiB0YXNoaW5reW91XCA7CivliY3lk6jlnLAgPiB6ZW5zaG91Y2hpXCA7CivkuIDluqbkuIggPiBpY2hpZG9kYWtlXCA7CivpgKPntaHkvJogPiByZW5yYWt1a2FpXCA7CivkuIDoiKzogbcgPiBpcHBhbnNob2t1XCA7CivnpL7kvJrlraYgPiBzaGFrYWlnYWt1XCA7CivlgbXlr5/mqZ8gPiB0ZWlzYXRzdWtpXCA7Civlr53lj7Dou4ogPiBzaGluZGFpc2hhXCA7CivlubTku6PniakgPiBuZW5kYWltb25vXCA7CivkuKHmm7/kurogPiByeW91Z2FlbmluXCA7CivlkIjmoLzogIUgPiBnb3VrYWt1c2hhXCA7CivlsILnlKjnt5ogPiBzZW4nJ3lvdXNlblwgOwor5biv5Z+f5bmFID4gdGFpaWtpaGFiYVwgOwor5Yid5LiA5b+1ID4gc2hvaWNoaW5lblwgOwor57S55LuL54q2ID4gc2hvdWthaWpvdVwgOwor5raI5q+S5ZmoID4gc2hvdWRva3VraVwgOwor5pem6YKj6KGGID4gZGFuJyduYXNodXVcIDsKK+WgheS/oeekvCA+IGtlbnNoaW5yZWlcIDsKK+WumOWFrOW6gSA+IGthbmtvdWNob3VcIDsKK+iBtOiBnuWDpyA+IGNob3Vtb25zb3VcIDsKK+WkquW5s+alvSA+IHRhaWhlaXJha3VcIDsKK+S4oeWkqeenpCA+IHJ5b3V0ZW5iaW5cIDsKK+WtlOmbgOefsyA+IGt1amFrdXNla2lcIDsKK+WJteS9nOaoqSA+IHNvdXNha3VrZW5cIDsKK+iJsuS6i+W4qyA+IGlyb2dvdG9zaGlcIDsKK+mZjemtlOihkyA+IGtvdW1hanV0c3VcIDsKK+Wwkeizh+acrCA+IHNob3VzaGlob25cIDsKK+izh+eUo+agqiA+IHNoaXNhbmthYnVcIDsKK+aBkOaAluW/gyA+IGt5b3VmdXNoaW5cIDsKK+Wun+mok+eahCA+IGppa2tlbnRla2lcIDsKK+S9v+W+kumBlCA+IHNoaXRvdGFjaGlcIDsKK+WuiemFkuWgtCA+IHlhc3VzYWthYmFcIDsKK+iBtOiBnuS8miA+IGNob3Vtb25rYWlcIDsKK+iCsuWFkOmjnyA+IGlrdWppc2hva3VcIDsKK+eUt+S+v+aJgCA+IG90b2tvYmVuam9cIDsKK+mmluWun+aknCA+IGt1YmlqaWtrZW5cIDsKK+e0sOiDnuiGnCA+IHNhaWJvdW1ha3VcIDsKK+WQjeS6uuiCjCA+IG1laWppbmhhZGFcIDsKK+Wwj+WtpuagoSA+IHNob3VnYWtrb3VcIDsKK+aXp+iXqeS4uyA+IGt5dXVoYW5zaHVcIDsKK+awkeacieaelyA+IG1pbicneXV1cmluXCA7CivotaTpiYTpibEgPiBzZWtpdGVra291XCA7CivmnKzojYnlraYgPiBob256b3VnYWt1XCA7Civkv67mraPogIUgPiBzaHV1c2Vpc2hhXCA7CivpoqjpgJ/oqIggPiBmdXVzb2t1a2VpXCA7CivmvZzlnKjnmoQgPiBzZW56YWl0ZWtpXCA7CivlpInmi43lrZAgPiBoZW5ieW91c2hpXCA7Civml6fmgJ3mg7MgPiBreXV1c2hpc291XCA7Civpm5HmnKjmnpcgPiB6b3Vib2t1cmluXCA7CivlhaXloLTliLggPiBueXV1am91a2VuXCA7CivmiKbpl5jnmoQgPiBzZW50b3V0ZWtpXCA7CivntYLpm7vou4ogPiBzaHV1ZGVuc2hhXCA7Civog4znvo7pr6ggPiBzZW1pa3VqaXJhXCA7CivnqbTmnZPlrZAgPiBhbmFqYWt1c2hpXCA7CivkuIDlubTkuK0gPiBpY2hpbmVuanV1XCA7CivpiYTnoLLmsLQgPiB0ZXBwb3VtaXp1XCA7Civlhajlm73msJEgPiB6ZW5rb2t1bWluXCA7Civkurrlj6PlraYgPiBqaW5rb3VnYWt1XCA7Civnm7Tmu5HpmY0gPiBjaG9ra2Fra291XCA7CivkuIrnlLPmm7ggPiBqb3VzaGluc2hvXCA7Civph53ljYPmnKwgPiBoYXJpc2VuYm9uXCA7CivkuInmpa3lnLAgPiBzYW5neW91Y2hpXCA7CivkuKblpKfmirUgPiBuYW1pdGFpdGVpXCA7Civnmb3pm7Lnn7MgPiBoYWt1dW5zZWtpXCA7CivmrKDluK3ogIUgPiBrZXNzZWtpc2hhXCA7CivlvJXlvZPph5EgPiBoaWtpYXRla2luXCA7Civoo4Xpo77pn7MgPiBzb3VzaG9rdW9uXCA7CivoppbogbTogIUgPiBzaGljaG91c2hhXCA7CivkubPoh63lhZAgPiBueXV1c2h1dWppXCA7CivmiYvmsqLmnKwgPiBzaHV0YWt1Ym9uXCA7CivorabmiJLlv4MgPiBrZWlrYWlzaGluXCA7CivkuK3lm73oqp4gPiBjaHV1Z29rdWdvXCA7CivlhaXmiYvpm6MgPiBueXV1c2h1bmFuXCA7Civpm7vmtYHoqIggPiBkZW5yeXV1a2VpXCA7CivlsbHmopTlrZAgPiBrdWNoaW5hc2hpXCA7CivlkJvkuLvlm70gPiBrdW5zaHVrb2t1XCA7Civpn7Pmpb3lraYgPiBvbmdha3VnYWt1XCA7CivpjK/lrZfnl4cgPiBzYWt1amlzaG91XCA7CivlpKfnm6Tnn7MgPiBkYWliYW5qYWt1XCA7CivliIblrZDph48gPiBidW5zaGlyeW91XCA7CivkuIDnlarojLYgPiBpY2hpYmFuY2hhXCA7CivpgYXliLvogIUgPiBjaGlrb2t1c2hhXCA7Civlho3nmbrotrMgPiBzYWlob3Nzb2t1XCA7Civlr77ouaDnmoQgPiB0YWlzaG90ZWtpXCA7Civmp43ooZPlrrYgPiBzb3VqdXRzdWthXCA7CivmrYzorKHmm7IgPiBrYXlvdWt5b2t1XCA7CivmtLvkurrnlLsgPiBrYXRzdWppbmdhXCA7CivkuozoqIDnm64gPiBmdXRha290b21lXCA7Civljp/lrZDph48gPiBnZW5zaGlyeW91XCA7CivlpKfluYXniakgPiBvb2hhYmFtb25vXCA7Civni6zlpY/kvJogPiBkb2t1c291a2FpXCA7CivohLHoh63liaQgPiBkYXNzaHV1emFpXCA7Civlv6vpgJ/oiLkgPiBrYWlzb2t1c2VuXCA7CivnlJ/mrpblmaggPiBzZWlzaG9rdWtpXCA7Civou4rkuK3oq4cgPiBzaGFjaHV1ZGFuXCA7Civpjq7pnZnliaQgPiBjaGluc2VpemFpXCA7CivlkIjkvbXnl4cgPiBnYXBwZWlzaG91XCA7Civmh4fopqrkvJogPiBrb25zaGlua2FpXCA7Civnib3niZvmmJ8gPiBrZW5neXV1c2VpXCA7CivliLrmv4DliaQgPiBzaGlnZWtpemFpXCA7CivojLbmn4TmnZMgPiBjaGFiaXNoYWt1XCA7CivmnInnpZ7oq5YgPiB5dXVzaGlucm9uXCA7Civlkb3kuK3mlbAgPiBtZWljaHV1c3V1XCA7Civmlrnop6Pnn7MgPiBob3VrYWlzZWtpXCA7Civlo7Lmjpvph5EgPiB1cmlrYWtla2luXCA7CivotoXlt6jmmJ8gPiBjaG91a3lvc2VpXCA7Civnq4vkvZPnmoQgPiByaXR0YWl0ZWtpXCA7Civnmb3mmLzlpKIgPiBoYWt1Y2h1dW11XCA7CivmlrDoqJjpjLIgPiBzaGlua2lyb2t1XCA7Civms6jop6PogIUgPiBjaHV1a2Fpc2hhXCA7Civkv53ph4jph5EgPiBob3NoYWt1a2luXCA7Civlj43nspLlrZAgPiBoYW5yeXV1c2hpXCA7CivkuIvotrPmlpkgPiBnZXNva3VyeW91XCA7Civms6jmlofmm7ggPiBjaHV1bW9uc2hvXCA7CivljJblkIjniakgPiBrYWdvdWJ1dHN1XCA7CivlsYvlvaLoiLkgPiB5YWthdGFidW5lXCA7CivpgYvli5XlipsgPiB1bmRvdXJ5b2t1XCA7Civpipjpipjnmr8gPiBtZWltZWl6YXJhXCA7Civpu5Lmm5zlsqkgPiBrb2t1eW91Z2FuXCA7Civljp/kvZzogIUgPiBnZW5zYWt1c2hhXCA7CivlhbXnq5nlraYgPiBoZWl0YW5nYWt1XCA7CivntLDlr4bnlLsgPiBzYWltaXRzdWdhXCA7CivkuIDnlarnt5ogPiBpY2hpYmFuc2VuXCA7CivljYrkurrliY0gPiBoYW4nJ25pbm1hZVwgOwor6ISz5qKX5aGeID4gbm91a291c29rdVwgOwor5YqH5aC06KGXID4gZ2VraWpvdWdhaVwgOwor5p2l44CF6YCxID4gcmFpcmFpc2h1dVwgOwor5rG66K2w5qipID4ga2V0c3VnaWtlblwgOwor5YqD5LiA5YyWID4ga2FrdWl0c3VrYVwgOwor5LiA5qe95byPID4gaXNzb3VzaGlraVwgOwor5a6F5oCl5L6/ID4gdGFra3l1dWJpblwgOwor6ICB5Lq655eFID4gcm91amluYnlvdVwgOwor5ZCI5qC854K5ID4gZ291a2FrdXRlblwgOwor6Kmm5L6b5ZOBID4gc2hpa3lvdWhpblwgOwor5Lit5aCF5omLID4gY2h1dWtlbnNodVwgOwor6JGb6aWF6aCtID4ga3V6dW1hbmp1dVwgOwor5o6l5a6i5ammID4gc2Vra3lha3VmdVwgOwor5rS75a2X5pysID4ga2F0c3VqaWhvblwgOwor6ZyN5YWs6bOlID4gaG90b3RvZ2lzdVwgOwor5ZWP6aGM5YqHID4gbW9uZGFpZ2VraVwgOwor6IG06Kyb55SfID4gY2hvdWtvdXNlaVwgOwor6LO96Yqt566xID4gc2Fpc2VuYmFrb1wgOwor5o+Q5ZSx6ICFID4gdGVpc2hvdXNoYVwgOwor5Zm06aOv54mpID4gZnVucGFubW9ub1wgOwor5YiG5qW15YyWID4gYnVua3lva3VrYVwgOwor566h55CG5bGAID4ga2FucmlreW9rdVwgOwor6KeS6YyQ5Y+wID4ga2FrdXN1aWRhaVwgOwor56aP5bKh55yMID4gZnVrdW9rYWtlblwgOwor54us5aOH5aC0ID4gZG9rdWRhbmpvdVwgOwor5Luy6ZaT6KSSID4gbmFrYW1hYm9tZVwgOwor6ZqP5oOz6YyyID4genVpc291cm9rdVwgOwor5pKu5b2x6ICFID4gc2F0c3VlaXNoYVwgOwor5aaC6I+p6JapID4gbnlvYm9zYXRzdVwgOwor5ZG95Lit5by+ID4gbWVpY2h1dWRhblwgOwor55yf5YiG5pWwID4gc2hpbmJ1bnN1dVwgOwor6ZuH55So5Li7ID4ga295b3VudXNoaVwgOwor6YmE56Cy5by+ID4gdGVwcG91ZGFtYVwgOwor5bGv55Sw5YW1ID4gdG9uZGVuaGVpXCA7CivmlbXpg6jpmoogPiB0ZWtpYnV0YWlcIDsKK+aKteW9k+aoqSA+IHRlaXRvdWtlblwgOwor5p2R5aSr5a2QID4gc29ucHV1c2hpXCA7Civmj5rmsLTou4ogPiB5b3VzdWlzaGFcIDsKK+aVkeaPtOi7jSA+IGt5dXVlbmd1blwgOwor6IKy5q+b5YmkID4gaWt1bW91emFpXCA7Civpu5LpoK3lt74gPiBrdXJvenVraW5cIDsKK+ino+avkuWJpCA+IGdlZG9rdXphaVwgOwor6auY5ae/5YuiID4ga291c2hpc2VpXCA7CivlsYvlj7DlupcgPiB5YXRhaW1pc2VcIDsKK+i1t+ejgeWKmyA+IGtpamlyeW9rdVwgOwor5Y6f55Sf5p6XID4gZ2Vuc2VpcmluXCA7CivmrbTlj7LnlLsgPiByZWtpc2hpZ2FcIDsKK+WJjeWNiueUnyA+IHplbmhhbnNlaVwgOwor5a2Y5Zyo6KuWID4gc29uemFpcm9uXCA7CivluIzmnJvnmoQgPiBraWJvdXRla2lcIDsKK+S6uuW3pembtyA+IGppbmtvdXJhaVwgOwor5bCC55So5qmfID4gc2VuJyd5b3VraVwgOwor5bqm6YeP6KGhID4gZG9yeW91a291XCA7CivlhZrlpKfkvJogPiB0b3V0YWlrYWlcIDsKK+WQjOS5l+iAhSA+IGRvdWpvdXNoYVwgOwor5Yq05YuV6ICFID4gcm91ZG91c2hhXCA7CivljZjmlbDlnosgPiB0YW5zdXVrZWlcIDsKK+W+k+WFhOW8nyA+IGp1dWtlaXRlaVwgOwor6b2n5q2v6aGeID4gZ2Vzc2hpcnVpXCA7CivlhqDmnKjploAgPiBrYWJ1a2ltb25cIDsKK+S7mOWxnuWTgSA+IGZ1em9rdWhpblwgOwor6Kiq5ZWP6ICFID4gaG91bW9uc2hhXCA7CivnmbrpoK3kurogPiBob3R0b3VuaW5cIDsKK+aWh+mBuOW3pSA+IGJ1bnNlbmtvdVwgOwor5ZCM5bGF5Lq6ID4gZG91a3lvbmluXCA7Civlj4LoqaPkurogPiBzYW5rZWluaW5cIDsKK+W9ueWToeS8miA+IHlha3VpbmthaVwgOwor5a2k56uL6KqeID4ga29yaXRzdWdvXCA7CivnlJ/oj5PlrZAgPiBuYW1hZ2FzaGlcIDsKK+WLmOWumuabuCA+IGthbmpvdXNob1wgOwor6ZaL5YKs5ZywID4ga2Fpc2FpY2hpXCA7CivokL3lvozogIUgPiByYWt1Z29zaGFcIDsKK+eUt+WtkOagoSA+IGRhbnNoaWtvdVwgOwor5LiA6Ium5Yq0ID4gaGl0b2t1cm91XCA7CivlgqzmtpnlvL4gPiBzYWlydWlkYW5cIDsKK+e1seayu+aoqSA+IHRvdWNoaWtlblwgOwor56aB6Lui6LyJID4ga2ludGVuc2FpXCA7CivmuK/mub7nqI4gPiBrb3V3YW56ZWlcIDsKK+S4jeWvm+WuuSA+IGZ1a2FuJyd5b3VcIDsKK+S4jeS/oeS7sCA+IGZ1c2hpbmtvdVwgOwor5aSq5YWs5pybID4gdGFpa291Ym91XCA7CivkuLjmi6zlvKcgPiBtYXJ1Z2Fra29cIDsKK+WkluWQkeaApyA+IGdhaWtvdXNlaVwgOwor5LiN6Laz5YmNID4gdGFyYXp1bWFlXCA7Civkuozlm73plpMgPiBuaWtva3VrYW5cIDsKK+S8muiRrOiAhSA+IGthaXNvdXNoYVwgOwor56aP5a+/6I2JID4gZnVrdWp1c291XCA7Civms5Xmm7nnlYwgPiBob3Vzb3VrYWlcIDsKK+mBi+i8uOecgSA+IHVuJyd5dXNob3VcIDsKK+mBi+i8uOebuCA+IHVuJyd5dXNob3VcIDsKK+S5l+i7iumnhSA+IGpvdXNoYWVraVwgOwor5pyd6a6u6KqeID4gY2hvdXNlbmdvXCA7Civpnanlkb3lrrYgPiBrYWt1bWVpa2FcIDsKK+apn+WvhuiyuyA+IGtpbWl0c3VoaVwgOwor5Lq66YCg57GzID4gamluem91bWFpXCA7CivmtIvlk4HlupcgPiB5b3VoaW50ZW5cIDsKK+WAi+S6uueahCA+IGtvamludGVraVwgOwor5LiA5YWD5YyWID4gaWNoaWdlbmthXCA7CivkvJ3pgZPoiLkgPiBkZW5kb3VzZW5cIDsKK+Wcp+i/q+aEnyA+IGFwcGFrdWthblwgOwor5LqI6Ziy562WID4geW9ib3VzYWt1XCA7Civoi6XpmqDlsYUgPiB3YWthaW5reW9cIDsKK+WumuS9j+iAhSA+IHRlaWp1dXNoYVwgOwor5rC05rq25oCnID4gc3VpeW91c2VpXCA7CivpgbroqIDmm7ggPiB5dWlnb25zaG9cIDsKK+S7o+eHg+i7iiA+IGRhaW5lbnNoYVwgOwor5aSJ5oiQ5bKpID4gaGVuc2VpZ2FuXCA7CivkuIDlrprph48gPiBpdHRlaXJ5b3VcIDsKK+iLpueBsOefsyA+IGt1a2Fpc2VraVwgOwor5bem5b+D5oi/ID4gc2FzaGluYm91XCA7CivovKrnlarliLYgPiByaW5iYW5zZWlcIDsKK+iri+mhmOiAhSA+IHNlaWdhbnNoYVwgOwor5Zyn6L+r5oCnID4gYXBwYWt1c2VpXCA7CivnvoXnlJ/ploAgPiByYXNob3Vtb25cIDsKK+WAi+S6uueUqCA+IGtvamluJyd5b3VcIDsKK+S6q+WPl+iAhSA+IGt5b3VqdXNoYVwgOwor5b6h6Laz5Yq0ID4gZ29zb2t1cm91XCA7CivniKzomavpoZ4gPiBoYWNodXVydWlcIDsKK+i/t+S/oeWutiA+IG1laXNoaW5rYVwgOwor5pu457Ch5paHID4gc2hva2FuYnVuXCA7CivoqLHlj6/oqLwgPiBreW9rYXNob3VcIDsKK+awkeS4u+WFmiA+IG1pbnNodXRvdVwgOwor5aSq5YiA5YWIID4gdGFjaGlzYWtpXCA7CivkvJ3pgZPogIUgPiBkZW5kb3VzaGFcIDsKK+ebo+imluiIuSA+IGthbnNoaXNlblwgOwor57iE5pqW57C+ID4gbmF3YW5vcmVuXCA7Civntr/oo73lk4EgPiBtZW5zZWloaW5cIDsKK+WHuui1sOmmrCA+IHNodXNzb3ViYVwgOwor5LqM6ZqO5bu6ID4gbmlrYWlkYXRlXCA7Civkv67mraPmoYggPiBzaHV1c2VpYW5cIDsKK+Wuo+S8neaIpiA+IHNlbmRlbnNlblwgOwor6KuL6LKg5qWtID4gdWtlb2lneW91XCA7CivpoZ7kurrnjL8gPiBydWlqaW4nJ2VuXCA7CivlkIjnkIbnmoQgPiBnb3VyaXRla2lcIDsKK+WLneiyoOW4qyA+IHNob3VidXNoaVwgOwor57O46Jqv6JqTID4gaXRvbWltaXp1XCA7Civlu7bplbfmiKYgPiBlbmNob3VzZW5cIDsKK+Wcn+W7uualrSA+IGRva2VuZ3lvdVwgOwor6LSI5ZGI5ZOBID4gem91dGVpaGluXCA7Civph5HpibHlnLAgPiBraW5rb3VjaGlcIDsKK+aYvOW+oemjryA+IGhpcnVnb2hhblwgOwor6JKZ5Y+k6KWeID4gbW91a29oaWRhXCA7CivljYrmnIjliIogPiBoYW5nZWtrYW5cIDsKK+ecjOawkeeojiA+IGtlbm1pbnplaVwgOwor5omH5YuV6ICFID4gc2VuZG91c2hhXCA7Civpm4bkvJrmiYAgPiBzaHV1a2Fpam9cIDsKK+acqOW3peWgtCA+IG1va2tvdWpvdVwgOwor5rSS6JC96ICFID4gc2hhcmVtb25vXCA7CivmiKbpl5jluL0gPiBzZW50b3Vib3VcIDsKK+WkleWMlueypyA+IHl1dWdlc2hvdVwgOwor5Y+v5YuV5aCwID4ga2Fkb3V6ZWtpXCA7CivlpKflubTlopcgPiBvb3Rvc2hpbWFcIDsKK+azleeQhuWtpiA+IGhvdXJpZ2FrdVwgOwor6buE6aC36JuHID4gYW9kYWlzaG91XCA7CivpgI/mmI7kvZMgPiB0b3VtZWl0YWlcIDsKK+aVhemanOi7iiA+IGtvc2hvdXNoYVwgOwor55uj6KaW6ICFID4ga2Fuc2hpc2hhXCA7CivlvIHmhbbojYkgPiBiZW5rZWlzb3VcIDsKK+WtmOWcqOiAhSA+IHNvbnphaXNoYVwgOwor5YWo5Zu95Yy6ID4gemVua29rdWt1XCA7CivlpKnnmofml5cgPiB0ZW4nJ25vdWtpXCA7Civlrpjlg5rljJYgPiBrYW5yeW91a2FcIDsKK+aXouW+l+aoqSA+IGtpdG9rdWtlblwgOwor5YWJ57ea6YqDID4ga291c2VuanV1XCA7Civku67pnaLliocgPiBrYW1lbmdla2lcIDsKK+apn+aisOeahCA+IGtpa2FpdGVraVwgOwor54ao5paX57SZID4gbm9zaGlnYW1pXCA7CivlhpnmpI3mqZ8gPiBzaGFzaG9ra2lcIDsKK+acrOS9k+irliA+IGhvbnRhaXJvblwgOwor55m65aOw5rOVID4gaGFzc2VpaG91XCA7Civntabmua/lmaggPiBreXV1dG91a2lcIDsKK+mBiuiIiOiyuyA+IHl1dWt5b3VoaVwgOwor5bmz5a6J5LqsID4gaGVpYW5reW91XCA7CivnlJ/mrKDkvLggPiBuYW1hYWt1YmlcIDsKK+mAgeS7mOWFiCA+IHNvdWZ1c2FraVwgOwor5aSW6YeO5bitID4gZ2FpeWFzZWtpXCA7Civnq4vkvZPmiKYgPiByaXR0YWlzZW5cIDsKK+ebo+imlue2siA+IGthbnNoaW1vdVwgOwor5pyI5rC06YeRID4gZ2Vzc3Vpa2luXCA7CivmraPmipXmiYsgPiBzZWl0b3VzaHVcIDsKK+mBoOi1pOWkliA+IGVuc2VraWdhaVwgOwor5oyH56S66JasID4gc2hpaml5YWt1XCA7Civkv6Hlj7fmqZ8gPiBzaGluZ291a2lcIDsKK+S6leaIuOi7iiA+IGlkb2d1cnVtYVwgOwor5pyJ5ZCN56iOID4geXV1bWVpemVpXCA7Civnq4vkvZPmhJ8gPiByaXR0YWlrYW5cIDsKK+WEquWFiOaoqSA+IHl1dXNlbmtlblwgOwor5a6f6aiT5aC0ID4gamlra2Vuam91XCA7CivniaHkuLnppIUgPiBib3RhbW9jaGlcIDsKK+e1jOWbo+mAoyA+IGtlaWRhbnJlblwgOwor5pat6aCt5Y+wID4gZGFudG91ZGFpXCA7CivkuojntITogIUgPiB5b3lha3VzaGFcIDsKK+e1guWknOeBryA+IHNodXV5YXRvdVwgOwor5pqX6buS6Z2iID4gYW5rb2t1bWVuXCA7CivlrqPkvJ3lsYsgPiBzZW5kZW4nJ3lhXCA7Civku6Pmm7/lk4EgPiBkYWl0YWloaW5cIDsKK+eCremFuOWhqSA+IHRhbnNhbicnZW5cIDsKK+S4i+Wuv+WxiyA+IGdlc2h1a3V5YVwgOwor6KOc57Wm57eaID4gaG9reXV1c2VuXCA7CivlkI3kurrmiKYgPiBtZWlqaW5zZW5cIDsKK+S4gOiIrOW4rSA+IGlwcGFuc2VraVwgOwor6YGt6Zuj6ICFID4gc291bmFuc2hhXCA7Civljp/lrZDnoLIgPiBnZW5zaGlob3VcIDsKK+WAkue9ruazlSA+IHRvdWNoaWhvdVwgOwor54Wn5rqW5ZmoID4gc2hvdWp1bmtpXCA7Civljp/kvY/msJEgPiBnZW5qdXVtaW5cIDsKK+iBluWFrOS8miA+IHNlaWtvdWthaVwgOwor5Y6f55Sj5ZywID4gZ2Vuc2FuY2hpXCA7Civpnanlkb3lhZAgPiBrYWt1bWVpamlcIDsKK+WEqumnv+mmrCA+IHl1dXNodW5iYVwgOwor5Li75oOF6KuWID4gc2h1am91cm9uXCA7CivpqqjokaPlk4EgPiBrb3R0b3VoaW5cIDsKK+euoeiyoeS6uiA+IGthbnphaW5pblwgOwor5ryU5YqH55WMID4gZW5nZWtpa2FpXCA7CivpioDplqPlr7ogPiBnaW5rYWt1amlcIDsKK+miqOmzpeW6pyA+IGZ1dWNob3V6YVwgOwor5oyf55685ZmoID4ga3lvdWtlbmtpXCA7CivmlZnmjojms5UgPiBreW91anVob3VcIDsKK+mbu+awl+mHnCA+IGRlbmtpZ2FtYVwgOwor6Zu75rCX6YePID4gZGVua2lyeW91XCA7CivngrnlhYnmupAgPiB0ZW5rb3VnZW5cIDsKK+aXpeWIiue0mSA+IG5pa2thbnNoaVwgOwor6ZaT54uC6KiAID4gYWlreW91Z2VuXCA7CivogIHkurrmgKcgPiByb3VqaW5zZWlcIDsKK+ioiOaVsOeuoSA+IGtlaXN1dWthblwgOwor6YeR5Yip6Z6YID4ga2lucmlzaG91XCA7Civku67mlL/lupwgPiBrYXJpc2VpZnVcIDsKK+ePvuS7o+eJiCA+IGdlbmRhaWJhblwgOwor5L2O5ae/5YuiID4gdGVpc2hpc2VpXCA7CivmgKXpmY3kuIsgPiBreXV1a291a2FcIDsKK+S/oeWPt+aXlyA+IHNoaW5nb3VraVwgOwor56ul6Kmx5YqHID4gZG91d2FnZWtpXCA7Civlrp/pqJPlj7AgPiBqaWtrZW5kYWlcIDsKK+awtOaIkOWyqSA+IHN1aXNlaWdhblwgOwor5b6h5a+u5Lq6ID4gZ29yeW91bmluXCA7Civoh6rouqvnlaogPiBqaXNoaW5iYW5cIDsKK+egguaZguioiCA+IHN1bmFkb2tlaVwgOwor6KGA6YGU56OoID4gY2hpZGFydW1hXCA7CivppIrpto/loLQgPiB5b3VrZWlqb3VcIDsKK+iEsei1sOWFtSA+IGRhc3NvdWhlaVwgOwor6I2Y5ZyS5Yi2ID4gc2hvdWVuc2VpXCA7CivliY3ljYrmiKYgPiB6ZW5wYW5zZW5cIDsKK+iok+ipgeWtpiA+IGt1bmtvZ2FrdVwgOwor6LuK5LqV5oi4ID4ga3VydW1haWRvXCA7CivlpJbli5nnnIEgPiBnYWltdXNob3VcIDsKK+aWsOaZguS7oyA+IHNoaW5qaWRhaVwgOwor5riJ5aSW6YOoID4gc2hvdWdhaWJ1XCA7CivmhJ/lhYnntJkgPiBrYW5rb3VzaGlcIDsKK+aSruW9seapnyA+IHNhdHN1ZWlraVwgOwor5LiA55Sf5ravID4gaXNzaG91Z2FpXCA7CivmsLTmupDlnLAgPiBzdWlnZW5jaGlcIDsKK+aVtOa1geWZqCA+IHNlaXJ5dXVraVwgOwor6YqA6KGM55WMID4gZ2lua291a2FpXCA7Civnj77kvY/miYAgPiBnZW5qdXVzaG9cIDsKK+WJjeWPo+S4iiA+IG1hZWtvdWpvdVwgOwor5Zyw5a++56m6ID4gY2hpdGFpa3V1XCA7CivnrKzkuIDpm4YgPiBkYWlpc3NodXVcIDsKK+Wkqeeah+WutiA+IHRlbicnbm91a2VcIDsKK+e1puayueiIuSA+IGt5dXV5dXNlblwgOwor5Luj5pu45Lq6ID4gZGFpc2hvbmluXCA7CivlibXlp4vogIUgPiBzb3VzaGlzaGFcIDsKK+S+oeagvOW4ryA+IGtha2FrdXRhaVwgOwor5aC05omA5p+EID4gYmFzaG9nYXJhXCA7Civkv6Hlj7fmiYAgPiBzaGluZ291am9cIDsKK+aCquW+queSsCA+IGFrdWp1bmthblwgOwor5a6f6aiT5YCkID4gamlra2VuY2hpXCA7CivkuI3poqjmtYEgPiBidWZ1dXJ5dXVcIDsKK+Wuo+S8neWToSA+IHNlbmRlbicnaW5cIDsKK+mZpOmbu+mHnSA+IGpvZGVuYmFyaVwgOwor6KGb55Sf5a2mID4gZWlzZWlnYWt1XCA7CivnmbropovogIUgPiBoYWtrZW5zaGFcIDsKK+azleeOi+W6gSA+IGhvdW91Y2hvdVwgOwor5LiA55Wq5omLID4gaWNoaWJhbnRlXCA7CivpmZDnlYzngrkgPiBnZW5rYWl0ZW5cIDsKK+adv+ebrue0mSA+IGl0YW1lZ2FtaVwgOwor5oSB5ZiG5aC0ID4gc2h1dXRhbmJhXCA7CivoirHnm7jmkrIgPiBoYW5henVtb3VcIDsKK+atr+enkeWtpiA+IHNoaWthZ2FrdVwgOwor5LuV5LqL552AID4gc2hpZ290b2dpXCA7CivlhYnmlofnpL4gPiBrb3VidW5zaGFcIDsKK+mrmOeHpeWcsCA+IGtvdXNvdWNoaVwgOwor6L6y5Zyw5rOVID4gbm91Y2hpaG91XCA7CivokZvmoLnmua8gPiBrYWtrb250b3VcIDsKK+WFiembu+euoSA+IGtvdWRlbmthblwgOwor6Lqr5YiG5p+EID4gbWlidW5nYXJhXCA7CivoprPopqfliLggPiBrYW5yYW5rZW5cIDsKK+emgeWItuWTgSA+IGtpbnNlaWhpblwgOwor5b2T57Gk6ICFID4gdG91c2Vuc2hhXCA7CivpgLLljJboq5YgPiBzaGlua2Fyb25cIDsKK+WGjeaknOiojiA+IHNhaWtlbnRvdVwgOwor5Y2K5aSP55SfID4gaGFuZ2VzaG91XCA7CivlvqHpo6/mmYIgPiBnb2hhbmRva2lcIDsKK+aEm+W8n+WtkCA+IG1hbmFkZXNoaVwgOwor5omL5byV5pu4ID4gdGViaWtpc2hvXCA7Civmj67nmbrmsrkgPiBraWhhdHN1eXVcIDsKK+e/sOael+mZoiA+IGthbnJpbicnaW5cIDsKK+aVtOWQiOaApyA+IHNlaWdvdXNlaVwgOwor5paZ55CG55WqID4gcnlvdXJpYmFuXCA7CivljYHkuozlrq4gPiBqdXVuaWt5dXVcIDsKK+eUn+eUo+iyoSA+IHNlaXNhbnphaVwgOwor5LiA5Luj6KiYID4gaWNoaWRhaWtpXCA7CivlhYPlp4vnpa0gPiBnZW5zaGlzYWlcIDsKK+S6oeWRveiAhSA+IGJvdW1laXNoYVwgOwor5pyJ56iO5ZOBID4geXV1emVpaGluXCA7CivlpKfkvb/ppKggPiB0YWlzaGlrYW5cIDsKK+mZkOWumuipniA+IGdlbnRlaXNoaVwgOwor54Sh6aeE6aOvID4gbXVkYW1lc2hpXCA7Civnt4/msbrnrpcgPiBzb3VrZXNzYW5cIDsKK+attOWPsuWutiA+IHJla2lzaGlrYVwgOwor5rW35rC05bi9ID4ga2Fpc3VpYm91XCA7CivmjqfpmaTpoY0gPiBrb3Vqb2dha3VcIDsKK+WutuaUv+WtpiA+IGthc2VpZ2FrdVwgOwor5YaF5byf5a2QID4gdWNoaWRlc2hpXCA7CivlpJrlv5nkuK0gPiB0YWJvdWNodXVcIDsKK+WOn+WvuOWkpyA+IGdlbnN1bmRhaVwgOwor5qmf6IO955qEID4ga2lub3V0ZWtpXCA7CivlpbPmgKfnmoQgPiBqb3NlaXRla2lcIDsKK+a7kee/lOapnyA+IGthc3Nob3VraVwgOwor5bm05aeL54q2ID4gbmVuc2hpam91XCA7CivlrZDnhanmgqkgPiBrb2Jvbicnbm91XCA7CivmjIfljZfou4ogPiBzaGluYW5zaGFcIDsKK+WGmeeUn+aWhyA+IHNoYXNlaWJ1blwgOwor5YaF6YGK5pifID4gbmFpeXV1c2VpXCA7Civoi6booYzogIUgPiBrdWd5b3VzaGFcIDsKK+e9quaCquaEnyA+IHphaWFrdWthblwgOwor54Sh55eH54q2ID4gbXVzaG91am91XCA7Civop5LnoILns5YgPiBrYWt1emF0b3VcIDsKK+eUn+i/lOS6iyA+IG5hbWFoZW5qaVwgOwor5Y2Y57SU5oCnID4gdGFuanVuc2VpXCA7CivlpKflg6fmraMgPiBkYWlzb3Vqb3VcIDsKK+S4gOi6q+S4iiA+IGlzc2hpbmpvdVwgOwor5L+u6YGT5bC8ID4gc2h1dWRvdW5pXCA7Civou43mlL7pgIEgPiBndW5ob3Vzb3VcIDsKK+eZu+iomOaWmSA+IHRvdWtpcnlvdVwgOwor6Iux5Zu95Lq6ID4gZWlrb2t1amluXCA7Civlgb3oqLzogIUgPiBnaXNob3VzaGFcIDsKK+mBk+i3r+apiyA+IGRvdXJva3lvdVwgOwor5pKu5b2x5omAID4gc2F0c3VlaWpvXCA7CivlvaLmhYvoq5YgPiBrZWl0YWlyb25cIDsKK+WBveiovOe9qiA+IGdpc2hvdXphaVwgOwor6aaW6KyA6ICFID4gc2h1Ym91c2hhXCA7CivopIflj7fljJYgPiBmdWt1Z291a2FcIDsKK+esrOS4gOi8ryA+IGRhaWlzc2h1dVwgOwor5aeL56WW6bOlID4gc2hpc29jaG91XCA7CivnibnoqLHms5UgPiB0b2treW9ob3VcIDsKK+mkiuavm+WJpCA+IHlvdW1vdXphaVwgOwor5rWu5rCX6ICFID4gdXdha2ltb25vXCA7Civmmpfpu5LooZcgPiBhbmtva3VnYWlcIDsKK+Wkp+WFg+W4pSA+IGRhaWdlbnN1aVwgOwor5YWN6Kix54q2ID4gbWVua3lvam91XCA7CivlpJzlhYnomasgPiB5YWtvdWNodXVcIDsKK+Wlh+WkqeeDiCA+IGtpdGVyZXRzdVwgOwor5YyZ5Yqg5ribID4gc2FqaWthZ2VuXCA7CivmipXmiYvmnb8gPiB0b3VzaHViYW5cIDsKK+W+k+alreWToSA+IGp1dWd5b3VpblwgOwor5om56KmV55y8ID4gaGloeW91Z2FuXCA7Civkv67pgZPlpbMgPiBzaHV1ZG91am9cIDsKK+Wcp+eXm+eCuSA+IGF0dHN1dXRlblwgOwor5rW35YW16ZqKID4ga2FpaGVpdGFpXCA7CivogIPoqrLooaggPiBrb3VrYWh5b3VcIDsKK+m6puiKveezliA+IGJha3VnYXRvdVwgOwor5paH6Iq45qyEID4gYnVuZ2VpcmFuXCA7CivlpJznm7Lnl4cgPiB5YW1vdXNob3VcIDsKK+aKleeov+iAhSA+IHRvdWtvdXNoYVwgOwor54Sh5beu5YilID4gbXVzYWJldHN1XCA7CivnqbrmjLrpmoogPiBrdXV0ZWl0YWlcIDsKK+W+ruiqv+aVtCA+IGJpY2hvdXNlaVwgOwor5Y+j5b+g5a6fID4ga3VjaGltYW1lXCA7CivoirHmqKHmp5ggPiBoYW5hbW95b3VcIDsKK+acieWQjeagoSA+IHl1dW1laWtvdVwgOwor54m56Kix5qipID4gdG9ra3lva2VuXCA7Civmp4vmiJDlrZAgPiBrb3VzZWlzaGlcIDsKK+iri+mhmOabuCA+IHNlaWdhbnNob1wgOwor5ouh5aOw5qmfID4ga2FrdXNlaWtpXCA7CivoqI7oq5bkvJogPiB0b3Vyb25rYWlcIDsKK+aLmOe9ruaJgCA+IGtvdWNoaXNob1wgOwor5Lqk5riJ5ZOhID4ga291c2hvdWluXCA7CivlirTlvbnloLQgPiByb3Vla2lqb3VcIDsKK+mVt+Wwvum2jyA+IG5hZ2FvZG9yaVwgOwor5rC06YqA54GvID4gc3VpZ2ludG91XCA7CivkuLvmiJDliIYgPiBzaHVzZWlidW5cIDsKK+S/rui+nuazlSA+IHNodXVqaWhvdVwgOwor5Y2T6Kmx5LyaID4gdGFrdXdha2FpXCA7CivmiYvlt6XoirggPiBzaHVrb3VnZWlcIDsKK+aWmeeQhuazlSA+IHJ5b3VyaWhvdVwgOwor5om/6KqN5ZuzID4gc2hvdW5pbnp1XCA7CivmnKzls7bkurogPiBob250b3VqaW5cIDsKK+aBkuW4uOaApyA+IGtvdWpvdXNlaVwgOwor6ZW35bC+6bOlID4gbmFnYW9kb3JpXCA7CivntYTnuZTljJYgPiBzb3NoaWtpa2FcIDsKK+W+oeaWsOmAoCA+IGdvc2hpbnpvdVwgOwor5Lm+6Zu75rGgID4ga2FuZGVuY2hpXCA7Civoh6rkvZzovrIgPiBqaXNha3Vub3VcIDsKK+WItuepuuaoqSA+IHNlaWt1dWtlblwgOwor6Iqx5qSw6I+cID4gaGFuYXlhc2FpXCA7Civnq7bmioDloLQgPiBreW91Z2lqb3VcIDsKK+aXp+WItuW6piA+IGt5dXVzZWlkb1wgOwor5YWx5ZKM5pS/ID4ga3lvdXdhc2VpXCA7CivlsIrnjovlrrYgPiBzb24nJ25vdWthXCA7CivpgYXpgLLlhZAgPiBjaGlzaGluamlcIDsKK+aghOmkiuWtpiA+IGVpeW91Z2FrdVwgOwor5LiN5LuL5YWlID4gZnVrYWlueXV1XCA7CivmipXmiYvmiKYgPiB0b3VzaHVzZW5cIDsKK+eKrOW8teWtkCA+IGludWhhcmlrb1wgOwor6YCB6Zu757eaID4gc291ZGVuc2VuXCA7CivljbXpu4TlmqIgPiByYW4nJ291bm91XCA7CivmsJflnKfoqIggPiBraWF0c3VrZWlcIDsKK+mnhuiZq+WJpCA+IGt1Y2h1dXphaVwgOwor54qs6L+954mpID4gaW51b3Vtb25vXCA7CivkuInmlpHptokgPiBtaWZ1dXp1cmFcIDsKK+aLjeWtkOacqCA+IGh5b3VzaGlnaVwgOwor5aSa5q+b5L2cID4gdGFtb3VzYWt1XCA7CivmiYvojbfniakgPiB0ZW5pbW90c3VcIDsKK+WHoOW4s+mdoiA+IGtpY2hvdW1lblwgOwor5qih56+E55qEID4gbW9oYW50ZWtpXCA7CivnrYboqJjluLMgPiBoaWtraWNob3VcIDsKK+mVt+i3nemboiA+IGNob3VreW9yaVwgOwor576O5bCR5bm0ID4gYmlzaG91bmVuXCA7Civkub7nh6XmnZAgPiBrYW5zb3V6YWlcIDsKK+eUn+eUo+iAhSA+IHNlaXNhbnNoYVwgOwor5LiN5pyN5b6TID4gZnVmdWt1anV1XCA7CivmnKzmoLzmtL4gPiBob25rYWt1aGFcIDsKK+WOn+WtkOaIpiA+IGdlbnNoaXNlblwgOwor5LiN5aSJ6YePID4gZnVoZW5yeW91XCA7CivpoZTpprTmn5MgPiBrYW9uYWppbWlcIDsKK+iQveiRieaouSA+IHJha3V5b3VqdVwgOwor5LiJ6aCt562LID4gc2FudG91a2luXCA7Civku6PoqIDogIUgPiBkYWlnZW5zaGFcIDsKK+aPrueZuuW6piA+IGtpaGF0c3Vkb1wgOwor5aSn6Ieq54S2ID4gZGFpc2hpemVuXCA7CivkuI3mmYLnnYAgPiBmdWppY2hha3VcIDsKK+e1seWItue3miA+IHRvdXNlaXNlblwgOwor5YWJ6Zu75rGgID4ga291ZGVuY2hpXCA7CivoirHkvpvppIogPiBoYW5ha3V5b3VcIDsKK+mbo+WVj+mhjCA+IG5hbm1vbmRhaVwgOwor57aZ6Zu76Y21ID4ga2VpZGVua2VuXCA7CivmqZ/morDlraYgPiBraWthaWdha3VcIDsKK+WppuS6uueXhSA+IGZ1amluYnlvdVwgOwor5ZCM5aW96ICFID4gZG91a291c2hhXCA7Civlgb3lporlqKAgPiBnaW5pbnNoaW5cIDsKK+eBq+e4hOmKgyA+IGhpbmF3YWp1dVwgOwor5YmN5YuY5a6aID4gbWFla2Fuam91XCA7Civml6LnmbrooaggPiBraWhhcHB5b3VcIDsKK+eUsueKtuiFuiA+IGtvdWpvdXNlblwgOwor56i95Y+k5LqLID4ga2Vpa29nb3RvXCA7CivmiJDmlofms5UgPiBzZWlidW5ob3VcIDsKK+imj+agvOWTgSA+IGtpa2FrdWhpblwgOwor5LuV5LqL5pelID4gc2hpZ290b2JpXCA7CivliIbkuI7nqI4gPiBidW4nJ3lvemVpXCA7Civnmb3nhKHlnqIgPiBzaGlyb211a3VcIDsKK+S6jOetieizniA+IG5pdG91c2hvdVwgOwor5a6a5LyR5pelID4gdGVpa3l1dWJpXCA7Civnmb3nga/msrkgPiBoYWt1dG91eXVcIDsKK+mBi+i7ouW4rSA+IHVudGVuc2VraVwgOwor5YWs5rCR6aSoID4ga291bWlua2FuXCA7Civnr6TovrLlrrYgPiB0b2t1bm91a2FcIDsKK+iMieiOieiKsSA+IG1hdHN1cmlrYVwgOwor5Lq65bel5rivID4gamlua291a291XCA7Civpq5jpmbXlnJ8gPiBrb3VyeW91ZG9cIDsKK+aEn+WFieadvyA+IGthbmtvdWJhblwgOwor5LiJ5LmX5qC5ID4gc2Fuam91a29uXCA7CivnlLfpoqjlkYIgPiBvdG9rb2J1cm9cIDsKK+Wls+mDjuiKsSA+IG9taW5hZXNoaVwgOwor5rue57SN6ICFID4gdGFpbm91c2hhXCA7CivkvJ3pgZPluKsgPiBkZW5kb3VzaGlcIDsKK+W/nOWPrOWFtSA+IG91c2hvdWhlaVwgOwor6KSH5Y2B5a2XID4gZnVrdWp1dWppXCA7Civlho3mp4vmiJAgPiBzYWlrb3VzZWlcIDsKK+acieauteiAhSA+IHl1dWRhbnNoYVwgOwor5Y2Y6KGj54mpID4gaGl0b2Vtb25vXCA7Civopo/moLzliKQgPiBraWtha3ViYW5cIDsKK+esrOS4ieiAhSA+IGRhaXNhbnNoYVwgOwor5L2T5pON5aC0ID4gdGFpc291am91XCA7CivkuLvmtYHmtL4gPiBzaHVyeXV1aGFcIDsKK+W6g+WgseWumCA+IGtvdWhvdWthblwgOwor5Lq65bel5rGgID4gamlua291aWtlXCA7Civlj6Pok4vlnoIgPiBrb3VnYWlzdWlcIDsKK+mHkeWJm+eggiA+IGtvbmdvdXNoYVwgOwor5Y2B5LiJ5aScID4ganV1c2FuJyd5YVwgOwor5aSn5a2m6ZmiID4gZGFpZ2FrdWluXCA7CivkuZfnlKjou4ogPiBqb3V5b3VzaGFcIDsKK+S4jeaYjueiuiA+IGZ1bWVpa2FrdVwgOwor6JyD5rCX5qW8ID4gc2hpbmtpcm91XCA7CivopIfokYnmqZ8gPiBmdWt1eW91a2lcIDsKK+S6jOetieimqiA+IG5pdG91c2hpblwgOwor6I2J56u26aasID4ga3VzYWtlaWJhXCA7CivpmqDlhYPosYYgPiBpbmdlbm1hbWVcIDsKK+e0r+S5l+aguSA+IHJ1aWpvdWtvblwgOwor5p2x5rSL5Lq6ID4gdG91eW91amluXCA7Civnq7bmioDkvJogPiBreW91Z2lrYWlcIDsKK+WLp+iqmOWToSA+IGthbicneXV1aW5cIDsKK+iAgeWphuW/gyA+IHJvdWJhc2hpblwgOwor5YK15qip6ICFID4gc2Fpa2Vuc2hhXCA7CivnrKzkuIDnvqkgPiBkYWlpY2hpZ2lcIDsKK+Wcp+WAkueahCA+IGF0dG91dGVraVwgOwor5LiN5piO556tID4gZnVtZWlyeW91XCA7CivmlL7pm7vnrqEgPiBob3VkZW5rYW5cIDsKK+WJjei6q+mggyA+IG1hZW1pZ29yb1wgOwor5bCR5pWw5rS+ID4gc2hvdXN1dWhhXCA7CivnibnmjZzpg6ggPiB0b2t1c291YnVcIDsKK+iqv+mmrOW4qyA+IGNob3ViYXNoaVwgOwor55CG6KuW55qEID4gcmlyb250ZWtpXCA7Civpo7LmsLTph48gPiBpbnN1aXJ5b3VcIDsKK+iqv+eQhuazlSA+IGNob3VyaWhvdVwgOwor57Sv54qv6ICFID4gcnVpaGFuc2hhXCA7Civlpb3pg73lkIggPiBrb3V0c3Vnb3VcIDsKK+WuieWFqOWfnyA+IGFuemVuJydpa2lcIDsKK+iZmuaghOW/gyA+IGt5b2Vpc2hpblwgOwor5a6a5pyf55qEID4gdGVpa2l0ZWtpXCA7Civoqo3lj6/oqLwgPiBuaW5rYXNob3VcIDsKK+S/oeW/g+WutiA+IHNoaW5qaW5rYVwgOwor5by35aem572qID4gZ291a2FuemFpXCA7CivmlZnmjojkvJogPiBreW91anVrYWlcIDsKK+mAo+WQiOi7jSA+IHJlbmdvdWd1blwgOwor6YeN5ZCI5L2TID4ganV1Z291dGFpXCA7CivliqDomZDmhJsgPiBrYWd5YWt1YWlcIDsKK+ays+W3neaVtyA+IGthc2VuamlraVwgOwor6LuN6ZqK6JGsID4gZ3VudGFpc291XCA7CivmlbDlubTplpMgPiBzdXVuZW5rYW5cIDsKK+i7veawl+eQgyA+IGtlaWtpa3l1dVwgOwor6Z2S5rWu6I2JID4gYW91a2lrdXNhXCA7Civlronmpb3mrbsgPiBhbnJha3VzaGlcIDsKK+mHkeW5s+ezliA+IGtvbnBlaXRvdVwgOwor5a6a5L2P5ZywID4gdGVpanV1Y2hpXCA7Civph5HovKrpmpsgPiBrb25yaW56YWlcIDsKK+aWmeeQhuW6lyA+IHJ5b3VyaXRlblwgOwor6LK/5piT6aKoID4gYm91ZWtpZnV1XCA7Civkurrlt6XmnpcgPiBqaW5rb3VyaW5cIDsKK+a1t+mBi+alrSA+IGthaXVuZ3lvdVwgOwor6KGj6aOf5L2PID4gaXNob2t1anV1XCA7Civlr53lhbfpoZ4gPiBzaGluZ3VydWlcIDsKK+adseWNl+adsSA+IHRvdW5hbnRvdVwgOwor55Sy5p2/5ZOhID4ga291aGFuJydpblwgOwor54++5Luj5Y+yID4gZ2VuZGFpc2hpXCA7CivmoLnoj5zpoZ4gPiBrb25zYWlydWlcIDsKK+WumuS+i+S8miA+IHRlaXJlaWthaVwgOwor5rG66ZeY54q2ID4ga2V0dG91am91XCA7CivompXljbXntJkgPiBzYW5yYW5zaGlcIDsKK+WkluiSmeWPpCA+IHNvdG9tb3Vrb1wgOwor6LuK5Lih5YyWID4gc2hhcnlvdWthXCA7CivmhJ/lhYnmgKcgPiBrYW5rb3VzZWlcIDsKK+esrOS4gOeroCA+IGRhaWlzc2hvdVwgOwor6Ieo55WM54K5ID4gcmlua2FpdGVuXCA7CivllYblo7LmsJcgPiBzaG91YmFpZ2lcIDsKK+WbveaGsuazlSA+IGtva2tlbnBvdVwgOwor5Lih6Zmb5LiLID4gcnlvdWhlaWthXCA7CivpmZDlrprniYggPiBnZW50ZWliYW5cIDsKK+WJjei7iui8qiA+IHplbnNoYXJpblwgOwor6ZuE54mb57OeID4gb3VzaGlrdXNvXCA7CivkuI3lpornl4cgPiBmdW5pbnNob3VcIDsKK+Wkiea1geWZqCA+IGhlbnJ5dXVraVwgOwor6Yed5L6b6aSKID4gaGFyaWt1eW91XCA7Civlvq7oppbnmoQgPiBiaXNoaXRla2lcIDsKK+ebo+imluWhlCA+IGthbnNoaXRvdVwgOwor5Y2g5oug5ZywID4gc2Vua3lvY2hpXCA7CivmjIflkJHmgKcgPiBzaGlrb3VzZWlcIDsKK+S4gOS6uueUqCA+IGhpdG9yaXlvdVwgOwor6Kq/6aas5aC0ID4gY2hvdWJham91XCA7Civlho3ovLjlhaUgPiBzYWl5dW55dXVcIDsKK+e2v+a0peimiyA+IHdhdGF0c3VtaVwgOwor5YSq6Imv5YWQID4geXV1cnlvdWppXCA7Civmta7li5XnpaggPiBmdWRvdWh5b3VcIDsKK+WFiOWkqeaApyA+IHNlbnRlbnNlaVwgOwor5b2i5oiQ5bGkID4ga2Vpc2Vpc291XCA7CivluKvnr4Tku6MgPiBzaGloYW5kYWlcIDsKK+S8keatouespiA+IGt5dXVzaGlmdVwgOwor5LiN6Z2i55uuID4gZnVtZW5tb2t1XCA7CivlsI/ns6Dpm6ggPiBrb251a2FhbWVcIDsKK+acrOS6iOeulyA+IGhvbicneW9zYW5cIDsKK+aMh+WNl+eVqiA+IHNoaW5hbmJhblwgOwor5ouh5aOw5ZmoID4ga2FrdXNlaWtpXCA7Civoh6rnlLHmpa0gPiBqaXl1dWd5b3VcIDsKK+emgei8uOWTgSA+IGtpbicneXVoaW5cIDsKK+WPuOS8muiAhSA+IHNoaWthaXNoYVwgOwor5oqV56i/5qyEID4gdG91a291cmFuXCA7CivmjL/oqbHnmoQgPiBzb3V3YXRla2lcIDsKK+mBk+S4reiomCA+IGRvdWNodXVraVwgOwor5Y2K5aGp5rC0ID4gaGFuJydlbnN1aVwgOwor5o6S5LuW55qEID4gaGFpdGF0ZWtpXCA7CivlpKfohbjngo4gPiBkYWljaG91ZW5cIDsKK+WwvOazleW4qyA+IGFtYWhvdXNoaVwgOwor5a6a572u57ayID4gdGVpY2hpYW1pXCA7Civoirjog73nlYwgPiBnZWlub3VrYWlcIDsKK+WNiua/gemfsyA+IGhhbmRha3VvblwgOwor6YWN566h5belID4gaGFpa2Fua291XCA7Civnj77ku6PkurogPiBnZW5kYWlqaW5cIDsKK+i+sua8geawkSA+IG5vdWd5b21pblwgOwor5aWz5oCn5a2mID4gam9zZWlnYWt1XCA7Civkub7nh6XlnLAgPiBrYW5zb3VjaGlcIDsKK+WIhumhnuazlSA+IGJ1bnJ1aWhvdVwgOwor55+z6IaP5YOPID4gc2Vra291em91XCA7CivlvbHmrabogIUgPiBrYWdlbXVzaGFcIDsKK+a0u+eJiOacrCA+IGthcHBhbmJvblwgOwor5LuV5LqL5aC0ID4gc2hpZ290b2JhXCA7CivlqabkurrmnI0gPiBmdWppbmZ1a3VcIDsKK+WvneW/g+WcsCA+IG5lZ29rb2NoaVwgOwor57W15be754mpID4gZW1ha2ltb25vXCA7CivkuI3mlpnnsKEgPiBmdXJ5b3VrZW5cIDsKK+WMluefs+WxpCA+IGthc2VraXNvdVwgOwor5pmp6aSQ5LyaID4gYmFuc2Fua2FpXCA7Civku5XmlL7poYwgPiBzaGlob3VkYWlcIDsKK+WFseWSjOWItiA+IGt5b3V3YXNlaVwgOwor5qGI5YaF54q2ID4gYW4nJ25haWpvdVwgOwor5aSa5YWD55qEID4gdGFnZW50ZWtpXCA7CivliLbmtbfmqKkgPiBzZWlrYWlrZW5cIDsKK+S6pOmFjeeoriA+IGtvdWhhaXNodVwgOwor5Zyo5L2P6ICFID4gemFpanV1c2hhXCA7CivmiJDnhp/mnJ8gPiBzZWlqdWt1a2lcIDsKK+WFseWSjOWFmiA+IGt5b3V3YXRvdVwgOwor5bmz5pa55qC5ID4gaGVpaG91a29uXCA7Civoq5zloLHlk6EgPiBjaG91aG91aW5cIDsKK+iIiOWlruWJpCA+IGtvdWZ1bnphaVwgOwor5YWI6KaL6ICFID4gc2Vua2Vuc2hhXCA7CivoiKrnqbrliLggPiBrb3VrdXVrZW5cIDsKK+WFiembu+WtkCA+IGtvdWRlbnNoaVwgOwor5aOy5Zu95aW0ID4gYmFpa29rdWRvXCA7CivnuYHliIbmlbAgPiBoYW5idW5zdXVcIDsKK+aAp+ihjOWLlSA+IHNlaWtvdWRvdVwgOwor6YqA6KGM5Yi4ID4gZ2lua291a2VuXCA7CivkuIfkuIfmrbMgPiBiYW5iYW56YWlcIDsKK+WBnOiIueWgtCA+IHRlaXNlbmpvdVwgOwor5ZiG6aGY5pu4ID4gdGFuZ2Fuc2hvXCA7Civlho3nlJ/nlKMgPiBzYWlzZWlzYW5cIDsKK+WcsOWvvuWcsCA+IGNoaXRhaWNoaVwgOwor5paH5L2T6KuWID4gYnVudGFpcm9uXCA7Civoqr/mn7vlm6MgPiBjaG91c2FkYW5cIDsKK+WNmOihjOacrCA+IHRhbmtvdWJvblwgOwor5bCP5aSc5puyID4gc2F5b2t5b2t1XCA7Civlh7rkuJbplpMgPiBzaHVzc2VrZW5cIDsKK+WNmOihjOabuCA+IHRhbmtvdXNob1wgOwor5LiA5pmC6ZaTID4gaWNoaWppa2FuXCA7CivmuKnms4npg7cgPiBvbnNlbmt5b3VcIDsKK+acieWQjeS6uiA+IHl1dW1laWppblwgOwor5b6M55Sy5p2/ID4ga291a2FucGFuXCA7CivlvLHkvZPljJYgPiBqYWt1dGFpa2FcIDsKK+e1jOa4iOmdoiA+IGtlaXphaW1lblwgOwor5L+u6aiT6YGTID4gc2h1Z2VuZG91XCA7CivlvoDnlJ/pmpsgPiBvdWpvdWdpd2FcIDsKK+aui+WtmOiAhSA+IHphbnpvbnNoYVwgOwor6Iiq56m65L6/ID4ga291a3V1YmluXCA7CivmoLjmraboo4UgPiBrYWt1YnVzb3VcIDsKK+Wfi+iUtemHkSA+IG1haXpvdWtpblwgOwor5a2k56uL5YyWID4ga29yaXRzdWthXCA7CivogZblrrbml48gPiBzZWlrYXpva3VcIDsKK+S5vueHpeWJpCA+IGthbnNvdXphaVwgOwor5rOl54Kt5ZywID4gZGVpdGFuY2hpXCA7CivlpJbovKroiLkgPiBnYWlyaW5zZW5cIDsKK+ikh+WIqeazlSA+IGZ1a3VyaWhvdVwgOwor6JK455WZ5ZmoID4gam91cnl1dWtpXCA7CivpkZHlrprmm7ggPiBrYW50ZWlzaG9cIDsKK+ijveawt+apnyA+IHNlaWh5b3VraVwgOwor5be75a+/5Y+4ID4gbWFraXp1c2hpXCA7CivmtojosrvosqEgPiBzaG91aGl6YWlcIDsKK+iRl+S9nOWutiA+IGNob3Nha3VrYVwgOwor5biC6LKp5ZOBID4gc2hpaGFuaGluXCA7Civlt7vpoK3oqIAgPiBrYW50b3VnZW5cIDsKK+iqv+eQhuW4qyA+IGNob3VyaXNoaVwgOwor55yf5qGR55OcID4gbWFrdXdhdXJpXCA7Civpmo/lvpPogIUgPiB6dWlqdXVzaGFcIDsKK+S4gOWvuOWFiCA+IGlzc3Vuc2FraVwgOwor5paH5a2m6YOoID4gYnVuZ2FrdWJ1XCA7CivkuojntITliLYgPiB5b3lha3VzZWlcIDsKK+e3mumAn+W6piA+IHNlbnNva3Vkb1wgOwor5bmz6Z2i5b2iID4gaGVpbWVua2VpXCA7CivopIfmr5TkvosgPiBmdWt1aGlyZWlcIDsKK+aVo+awtOi7iiA+IHNhbnN1aXNoYVwgOwor5LiA5pmC6YeRID4gaWNoaWppa2luXCA7CivliY3lubTluqYgPiB6ZW4nJ25lbmRvXCA7CivnmbrooYzogIUgPiBoYWtrb3VzaGFcIDsKK+WBnOeVmeaJgCA+IHRlaXJ5dXVqb1wgOwor5a6u5Z+O55yMID4gbWl5YWdpa2VuXCA7CivliY3liY3lm54gPiB6ZW56ZW5rYWlcIDsKK+eHl+W+s+WIqSA+IGthbmRva3VyaVwgOwor5q275YiR5aC0ID4gc2hpa2Vpam91XCA7Civlt7vlrZDmnKwgPiBrYW5zaGlob25cIDsKK+eUuuitsOS8miA+IGNob3VnaWthaVwgOwor5Lq655Sf6KazID4gamluc2Vpa2FuXCA7CivnnJ/nj6Dosp0gPiBzaGluanVnYWlcIDsKK+S6rOmDveW4giA+IGt5b3V0b3NoaVwgOwor6Zuo5Y+w6aKoID4gYW1ldGFpZnV1XCA7Civoh6rnlLHlvaIgPiBqaXl1dWdhdGFcIDsKK+WFjeioseWItiA+IG1lbmt5b3NlaVwgOwor6ZuR5aCx5qyEID4gemFwcG91cmFuXCA7CivmhJvlhZrlv4MgPiBhaXRvdXNoaW5cIDsKK+mYsuatouazlSA+IGJvdXNoaWhvdVwgOwor6YG45oyZ5rOVID4gc2Vua3lvaG91XCA7CivlpKnkupXoo48gPiB0ZW5qb3V1cmFcIDsKK+WNiumZsOW9sSA+IGhhbicnaW4nJ2VpXCA7CivmnIDph43ngrkgPiBzYWlqdXV0ZW5cIDsKK+S4gOWvvuS4gCA+IGl0dGFpaWNoaVwgOwor6YG45oyZ5rCRID4gc2Vua3lvbWluXCA7CivmlZnllIbogIUgPiBreW91c2FzaGFcIDsKK+aWmeeQhuS6uiA+IHJ5b3VyaW5pblwgOwor6Ieq55Sx5bitID4gaml5dXVzZWtpXCA7CivmnIjliIroqowgPiBnZWtrYW5zaGlcIDsKK+S4jeeGn+e3tCA+IGZ1anVrdXJlblwgOwor5Y+k5YW455qEID4ga290ZW50ZWtpXCA7CivlpInmrbvogIUgPiBoZW5zaGlzaGFcIDsKK+acrOagvOWMliA+IGhvbmtha3VrYVwgOwor5LuV5LiK5belID4gc2hpYWdla291XCA7CivniaHkuLnmnY8gPiBib3Rhbmt5b3VcIDsKK+W5s+aWueW9oiA+IGhlaWhvdWtlaVwgOwor5Yq05YON6ICFID4gcm91ZG91c2hhXCA7CivlpInljJbnkIMgPiBoZW5rYWt5dXVcIDsKK+mBoOmalOimliA+IGVua2FrdXNoaVwgOwor6ZuR6KiY5bizID4gemFra2ljaG91XCA7CivlnKjmoKHnlJ8gPiB6YWlrb3VzZWlcIDsKK+aRqeaTpumfsyA+IG1hc2F0c3VvblwgOwor6JuN54OP6LOKID4gaG90YXJ1aWthXCA7Civlho3nlJ/ms5UgPiBzYWlzZWlob3VcIDsKK+WkmueZuuapnyA+IHRhaGF0c3VraVwgOwor5rS754mI5bGLID4ga2FwcGFuJyd5YVwgOwor6YeR5Ymb5omLID4ga29uZ291c2h1XCA7CivooqvlrrPpoY0gPiBoaWdhaWdha3VcIDsKK+mBuOaMmeaoqSA+IHNlbmt5b2tlblwgOwor5Z+65pys57WmID4ga2lob25reXV1XCA7CivpnZ7ph5HlsZ4gPiBoaWtpbnpva3VcIDsKK+eMqeeMqee3iyA+IHNob3Vqb3VoaVwgOwor5Zue5pWZ5b6SID4ga2Fpa3lvdXRvXCA7CivmjIfnpLrlhYggPiBzaGlqaXNha2lcIDsKK+WCmeW/mOmMsiA+IGJpYm91cm9rdVwgOwor56CC57OW6buNID4gc2F0b3VraWJpXCA7CivmoYjlhoXmm7ggPiBhbicnbmFpc2hvXCA7Civlip/lirTph5EgPiBrb3Vyb3VraW5cIDsKK+iiq+W3ruWIpSA+IGhpc2FiZXRzdVwgOwor55eY55eV6Z2iID4gYWJhdGF6dXJhXCA7CivmnLHmlofph5EgPiBzaHVidW5raW5cIDsKK+S4jeisueaFjiA+IGZ1a2luc2hpblwgOwor6IKd56Gs5aSJID4ga2Fua291aGVuXCA7CivmnKvmnJ/nmoQgPiBtYWtraXRla2lcIDsKK+ekvOWlieWFrCA+IHJlaWJvdWtvdVwgOwor5Y2U5oqA6ICFID4ga3lvdWdpc2hhXCA7CivlpJrotrPpoZ4gPiB0YXNva3VydWlcIDsKK+elnuenmOaApyA+IHNoaW5waXNlaVwgOwor5rK46aiw54K5ID4gZnV0dG91dGVuXCA7CivppIrprZrmsaAgPiB5b3VneW9jaGlcIDsKK+mtlOazleeahCA+IG1haG91dGVraVwgOwor6KO95rC35omAID4gc2VpaHlvdWpvXCA7CivplqLopb/lvIEgPiBrYW5zYWliZW5cIDsKK+WFq+WNg+iNiSA+IHlhY2hpZ3VzYVwgOwor6YGT5Lqk5rOVID4gZG91a291aG91XCA7Civph47oj5zmsYEgPiB5YXNhaWppcnVcIDsKK+aWoeaXi+aWmSA+IGFzc2VucnlvdVwgOwor6Iiq5rW35aOrID4ga291a2Fpc2hpXCA7Civmta7li5XmoKogPiBmdWRvdWthYnVcIDsKK+a3t+S6pOaelyA+IGtvbmtvdXJpblwgOwor5qih56+E5ZuaID4gbW9oYW5zaHV1XCA7CivorJvnvqnpjLIgPiBrb3VnaXJva3VcIDsKK+eUn+WtmOiAhSA+IHNlaXpvbnNoYVwgOwor5LiN6Kys5oCnID4gZnVieXV1c2VpXCA7CivlsI7pm7vmgKcgPiBkb3VkZW5zZWlcIDsKK+aUuemdqeahiCA+IGthaWtha3VhblwgOwor5rOV5pS55q2jID4gaG91a2Fpc2VpXCA7CivnlJ/nlKPmgKcgPiBzZWlzYW5zZWlcIDsKK+S4iuS4reS4iyA+IGpvdWNodXVnZVwgOwor57Wm5rC05omAID4ga3l1dXN1aWpvXCA7CivnjJznlpHlv4MgPiBzYWlnaXNoaW5cIDsKK+S4jeiqv+azlSA+IGJ1Y2hvdWhvdVwgOwor5Y+X5YuV55qEID4ganVkb3V0ZWtpXCA7Civoh6rnlLHlnosgPiBqaXl1dWdhdGFcIDsKK+iqv+eQhuWPsCA+IGNob3VyaWRhaVwgOwor56m66ZaR5ZywID4ga3V1a2FuY2hpXCA7CivlirTlg43npa0gPiByb3Vkb3VzYWlcIDsKK+WGjeadpemAsSA+IHNhcmFpc2h1dVwgOwor5Luj6KGo6YOoID4gZGFpaHlvdWJ1XCA7Civlg4XlsJHlt64gPiBraW5zaG91c2FcIDsKK+WRqOacn+aApyA+IHNodXVraXNlaVwgOwor6aOb6KGM5pyNID4gaGlrb3VmdWt1XCA7CivkuI3nibnlrpogPiBmdXRva3V0ZWlcIDsKK+ihqOmdouWMliA+IGh5b3VtZW5rYVwgOwor5biC5pyJ5ZywID4gc2hpeXV1Y2hpXCA7CivmqJnmupboqp4gPiBoeW91anVuZ29cIDsKK+awtOW5s+mdoiA+IHN1aWhlaW1lblwgOwor5Lqk6YCa6LevID4ga291dHN1dXJvXCA7CivmtojosrvogIUgPiBzaG91aGlzaGFcIDsKK+WPpOmBk+WFtyA+IGZ1cnVkb3VndVwgOwor5Z+65pys55qEID4ga2lob250ZWtpXCA7CivojYnlm6PlrZAgPiBrdXNhZGFuZ29cIDsKK+ecn+ePoOiJsiA+IHNoaW5qdWlyb1wgOwor57Wx5bil5qipID4gdG91c3Vpa2VuXCA7Civnt7Tnv5LmqZ8gPiByZW5zaHV1a2lcIDsKK+aYh+mZjeiItSA+IHNob3Vrb3VkYVwgOwor5YW15bqr55yMID4gaHlvdWdva2VuXCA7CivlhazmtbfkuIogPiBrb3VrYWlqb3VcIDsKK+a/gOaIpuWMuiA+IGdla2lzZW5rdVwgOwor5YSA56S855qEID4gZ2lyZWl0ZWtpXCA7CivmnInlubPns5YgPiBhcnVoZWl0b3VcIDsKK+S6pOmAmuiyuyA+IGtvdXRzdXVoaVwgOwor6YeR6a2a6I2JID4ga2luZ3lvc291XCA7CivnnYDngavngrkgPiBjaGFra2F0ZW5cIDsKK+mBuOaMmeaIpiA+IHNlbmt5b3NlblwgOwor5a6X5Li75qipID4gc291c2h1a2VuXCA7CivmsLTphbjmoLkgPiBzdWlzYW5rb25cIDsKK+i1pOWNgeWtlyA+IHNla2lqdXVqaVwgOwor6JOE6Z+z5qmfID4gY2hpa3VvbmtpXCA7Civoh6rlsIrlv4MgPiBqaXNvbnNoaW5cIDsKK+ihqOiomOazlSA+IGh5b3VraWhvdVwgOwor6Zyy5aSp5ZWGID4gcm90ZW5zaG91XCA7CivkvJHlu7fml6UgPiBreXV1dGVpYmlcIDsKK+mjsumFkueZliA+IGluc2h1aGVraVwgOwor5LiA5paJ6auYID4gaXNzZWlkYWthXCA7Civlh6bliJHlj7AgPiBzaG9rZWlkYWlcIDsKK+WGt+aIv+i7iiA+IHJlaWJvdXNoYVwgOwor5qSc55ar5omAID4ga2VuJydla2lqb1wgOwor54Wn5bqm6KiIID4gc2hvdWRva2VpXCA7Civlj47nqI7lkI8gPiBzaHV1emVpcmlcIDsKK+WWieiHquaFoiA+IG5vZG9qaW1hblwgOwor6YeR55yL5p2/ID4ga2lua2FuYmFuXCA7CivmlaPlvL7pioMgPiBzYW5kYW5qdXVcIDsKK+Wfuemkiua2siA+IGJhaXlvdWVraVwgOwor5aSp54uX6aKoID4gdGVuZ3VrYXplXCA7CivkuIDmnKzmnYkgPiBpcHBvbnN1Z2lcIDsKK+a4rOW+ruioiCA+IHNva3ViaWtlaVwgOwor6aKo6Ie05p6XID4gZnV1Y2hpcmluXCA7CivlnLDnkIblraYgPiBjaGlyaWdha3VcIDsKK+e+jumjn+WutiA+IGJpc2hva3VrYVwgOwor5bC/6YGT54KOID4gbnlvdWRvdWVuXCA7CivonrPonoLmi7MgPiB0b3Vyb3VrZW5cIDsKK+iqv+eQhuS6uiA+IGNob3VyaW5pblwgOwor5Zar54WZ5omAID4ga2l0c3VlbmpvXCA7CivmmYLliIbmmYIgPiBqaWJ1bmRva2lcIDsKK+WFq+mHjeahnCA+IHlhZXpha3VyYVwgOwor5Y2X6Juu6Ii5ID4gbmFuYmFuc2VuXCA7CivosYzosYbosYYgPiBlbmRvdW1hbWVcIDsKK+WbnuaVsOWIuCA+IGthaXN1dWtlblwgOwor6KO96YCg6ICFID4gc2Vpem91c2hhXCA7Civph43lvbnkvJogPiBqdXV5YWtrYWlcIDsKK+WMl+asp+S6uiA+IGhva3VvdWppblwgOwor5LiA5Lq65a2QID4gaGl0b3Jpa2tvXCA7CivmrbvnlJ/oprMgPiBzaGlzZWlrYW5cIDsKK+eCreeWveeXhSA+IHRhbnNvYnlvdVwgOwor55m95Zyw5ZuzID4gaGFrdWNoaXp1XCA7CivpvIjnlLLoibIgPiBiZWtrb3Vpcm9cIDsKK+S5l+i7iuWIuCA+IGpvdXNoYWtlblwgOwor5ris56iL5ZmoID4gc29rdXRlaWtpXCA7CivmoYjlhoXlrKIgPiBhbicnbmFpam91XCA7CivlhoboiJ7mm7IgPiBlbmJ1a3lva3VcIDsKK+a2iOiyu+eojiA+IHNob3VoaXplaVwgOwor5aOB5LiA6YeNID4ga2FiZWhpdG9lXCA7Civlm5vpnaLkvZMgPiBzaGltZW50YWlcIDsKK+WcqOadpee3miA+IHphaXJhaXNlblwgOwor5aSn55CG55+zID4gZGFpcmlzZWtpXCA7CivnlJ/nlKPlnLAgPiBzZWlzYW5jaGlcIDsKK+eJh+eUsOiIjiA+IGthdGFpbmFrYVwgOwor6KSH5YaZ5qmfID4gZnVrdXNoYWtpXCA7Civpoqjkv5fnlLsgPiBmdXV6b2t1Z2FcIDsKK+WBtOmdouWbsyA+IHNva3VtZW56dVwgOwor6KiA6Kqe5a2mID4gZ2VuZ29nYWt1XCA7Civlt6HoiKroiLkgPiBqdW5rb3VzZW5cIDsKK+WOn+Wni+aelyA+IGdlbnNoaXJpblwgOwor6Iez5LiK5qipID4gc2hpam91a2VuXCA7CivlsI/lo7LllYYgPiBrb3VyaXNob3VcIDsKK+e1seWItuWTgSA+IHRvdXNlaWhpblwgOwor56ys5LiA5a+pID4gZGFpaXNzaGluXCA7CivntIXmr5vkurogPiBrb3Vtb3VqaW5cIDsKK+ishOWGmeeJiCA+IHRvdXNoYWJhblwgOwor5o6n6Ki05a+pID4ga291c29zaGluXCA7CivkuK3lj6Tou4ogPiBjaHV1a29zaGFcIDsKK+aWsOe0gOWFgyA+IHNoaW5raWdlblwgOwor57e057+S5omAID4gcmVuc2h1dWpvXCA7Civnq4vmlrnmoLkgPiByaXBwb3Vrb25cIDsKK+efremfs+majiA+IHRhbicnb25rYWlcIDsKK+Wuo+iqk+abuCA+IHNlbnNlaXNob1wgOwor5LqM5ouN5a2QID4gbmlieW91c2hpXCA7CivlirTovrLlhZogPiByb3Vub3V0b3VcIDsKK+W9vOWyuOiKsSA+IGhpZ2FuYmFuYVwgOwor5b+g6a2C56KRID4gY2h1dWtvbmhpXCA7CivmnInlirnmgKcgPiB5dXVrb3VzZWlcIDsKK+S4ieaXpeaciCA+IG1pa2FkenVraVwgOwor55m65oyv5qmfID4gaGFzc2hpbmtpXCA7Civnt4/li5nluoEgPiBzb3VtdWNob3VcIDsKK+a1geihjOiqniA+IHJ5dXVrb3Vnb1wgOwor5YaF6a6u5Lq6ID4gbmFpc2VuamluXCA7CivnlJ/nkIbnmoQgPiBzZWlyaXRla2lcIDsKK+WQjeiqieaFviA+IG1laXlveW9rdVwgOwor5Yqq5Yqb5a62ID4gZG9yeW9rdWthXCA7CivlnKjmnaXnqK4gPiB6YWlyYWlzaHVcIDsKK+WKoOehq+azlSA+IGthcnl1dWhvdVwgOwor5aSn5a625pePID4gZGFpa2F6b2t1XCA7Civmma/mlZnlvpIgPiBrZWlreW91dG9cIDsKK+mrmOepjembsiA+IGtvdXNla2l1blwgOwor5LmX6Ii55Yi4ID4gam91c2Vua2VuXCA7Civlho3lr6nmn7sgPiBzYWlzaGluc2FcIDsKK+eUqOiqnumbhiA+IHlvdWdvc2h1dVwgOwor6LKg5YK36ICFID4gZnVzaG91c2hhXCA7CivlirTlg43ms5UgPiByb3Vkb3Vob3VcIDsKK+axjueUqOapnyA+IGhhbicneW91a2lcIDsKK+WQjeiqieW/gyA+IG1laXlvc2hpblwgOwor6ZGR5a6a5Lq6ID4ga2FudGVpbmluXCA7CivmipXnpajml6UgPiB0b3VoeW91YmlcIDsKK+WFiOihjOipniA+IHNlbmtvdXNoaVwgOwor54us5ryU5LyaID4gZG9rdWVua2FpXCA7Civpn7Ppn7vlraYgPiBvbicnaW5nYWt1XCA7Civlip/lirTogIUgPiBrb3Vyb3VzaGFcIDsKK+iEs+e0sOiDniA+IG5vdXNhaWJvdVwgOwor576O5paH6Kq/ID4gYmlidW5jaG91XCA7CivmmI7ntLDmm7ggPiBtZWlzYWlzaG9cIDsKK+eUt+aWh+WtlyA+IG90b2tvbW9qaVwgOwor57eP5YuY5a6aID4gc291a2Fuam91XCA7Civlm57opqfmnb8gPiBrYWlyYW5iYW5cIDsKK+S7u+WRveeKtiA+IG5pbm1laWpvdVwgOwor5LiK57SN6YeRID4gam91bm91a2luXCA7Civmi7fllY/lj7AgPiBnb3Vtb25kYWlcIDsKK+S4iuWlj+aWhyA+IGpvdXNvdWJ1blwgOwor6Ieq6LKs54K5ID4gamlzZWtpdGVuXCA7Civliqnnm6PnnaMgPiBqb2thbnRva3VcIDsKK+WHpueUn+iokyA+IHNob3NlaWt1blwgOwor5pys6Kmm6aiTID4gaG9uc2hpa2VuXCA7CivlpJbkv6Hpg6ggPiBnYWlzaGluYnVcIDsKK+S4gOS6uuWJjSA+IGhpdG9yaW1hZVwgOwor5Yq05YON5qipID4gcm91ZG91a2VuXCA7CivlnLDnkIPlhIAgPiBjaGlreXV1Z2lcIDsKK+WcsOS4iuaoqSA+IGNoaWpvdWtlblwgOwor6YeR5bGP6aKoID4ga2luYnlvdWJ1XCA7CivlsI7pm7vkvZMgPiBkb3VkZW50YWlcIDsKK+WFseebiuiyuyA+IGt5b3Vla2loaVwgOwor5LiN6KqN5om/ID4gZnVuaW5zaG91XCA7Civppqzpub/pnaIgPiBiYWthZHp1cmFcIDsKK+Wcn+eUqOazoiA+IGRveW91bmFtaVwgOwor57eP6YG45oyZID4gc291c2Vua3lvXCA7CivliLblvqHnm6QgPiBzZWlneW9iYW5cIDsKK+W/g+aEj+awlyA+IGtva29yb2lraVwgOwor6YeN5Yq05YONID4ganV1cm91ZG91XCA7CivmiYvmprTlvL4gPiB0ZXJ5dXVkYW5cIDsKK+S4gOaemuS4iiA+IGljaGltYWl1ZVwgOwor5aSp5LqV54GvID4gdGVuam91dG91XCA7CivppIrprZrloLQgPiB5b3VneW9qb3VcIDsKK+aKleelqOaJgCA+IHRvdWh5b3Vqb1wgOwor5bqn5qiZ57O7ID4gemFoeW91a2VpXCA7CivlhoblgJ/mrL4gPiBlbnNoYWtrYW5cIDsKK+e1tuWvvuirliA+IHpldHRhaXJvblwgOwor5o2V6Jmr57ayID4gaG9jaHV1YW1pXCA7Civlh7rmnaXmmJ8gPiBkZWtpYm9zaGlcIDsKK+iKseafs+eVjCA+IGthcnl1dWthaVwgOwor5YWs5rCR5qipID4ga291bWlua2VuXCA7CivlpoLkvZXoqLEgPiBpa2FiYWthcmlcIDsKK+a4heaVmeW+kiA+IHNlaWt5b3V0b1wgOwor57Sr5aSW57eaID4gc2hpZ2Fpc2VuXCA7CivlkIzlpb3kvJogPiBkb3Vrb3VrYWlcIDsKK+a0l+i7iuWgtCA+IHNlbnNoYWpvdVwgOwor5bGV5pyb6LuKID4gdGVuYm91c2hhXCA7Civmmpflj7fluLMgPiBhbmdvdWNob3VcIDsKK+W5jOmmrOi7iiA+IGhvcm9iYXNoYVwgOwor5aSn5LyB5qWtID4gZGFpa2lneW91XCA7Civlo7LnrJHlqaYgPiBiYWlzaG91ZnVcIDsKK+aOoeeCueiAhSA+IHNhaXRlbnNoYVwgOwor6ZaT6ZqZ5q+UID4ga2FuZ2VraWhpXCA7Civlo67ooYzkvJogPiBzb3Vrb3VrYWlcIDsKK+WGjeeUn+WTgSA+IHNhaXNlaWhpblwgOwor5YWs56S+5YK1ID4ga291c2hhc2FpXCA7CivmnKrmnaXlraYgPiBtaXJhaWdha3VcIDsKK+acq+Wni+e1giA+IHN1ZXNoaWp1dVwgOwor5r2c5rC06ImmID4gc2Vuc3Vpa2FuXCA7CivmsLTpgZPnrqEgPiBzdWlkb3VrYW5cIDsKK+WkqeeQhuaVmSA+IHRlbnJpa3lvdVwgOwor5LqI5oOz6auYID4geW9zb3VkYWthXCA7CivmiYvmn4TpoZQgPiB0ZWdhcmFnYW9cIDsKK+aJi+iKuOWTgSA+IHNodWdlaWhpblwgOwor5bmz6KGh6YyYID4gaGVpa291c3VpXCA7Civmipfmr5LntKAgPiBrb3Vkb2t1c29cIDsKK+Wkp+ixhueylSA+IGRhaXp1a2FzdVwgOwor56CU56m26LK7ID4ga2Vua3l1dWhpXCA7Civnn6Xog73niq8gPiBjaGlub3VoYW5cIDsKK+mBuOaJi+aoqSA+IHNlbnNodWtlblwgOwor6bqd6aaZ6bm/ID4gamFrb3VqaWthXCA7Civmtbflsrjnt5ogPiBrYWlnYW5zZW5cIDsKK+iyv+aYk+a4ryA+IGJvdWVraWtvdVwgOwor5pqm5bm05bqmID4gcmVraW5lbmRvXCA7CivlpKnlrq7lm7MgPiB0ZW5reXV1enVcIDsKK+acieaoqeiAhSA+IHl1dWtlbnNoYVwgOwor5L2T6KOB5LiKID4gdGVpc2Fpam91XCA7CivkvIrpgZTnlLcgPiBkYXRlb3Rva29cIDsKK+S8keWIiuaXpSA+IGt5dXVrYW5iaVwgOwor5Y+k5YW45a2mID4ga290ZW5nYWt1XCA7CivmlLnoqILniYggPiBrYWl0ZWliYW5cIDsKK+eUn+WtmOaoqSA+IHNlaXpvbmtlblwgOwor6Kmy5ZWP6aGMID4gZ2FpbW9uZGFpXCA7Civmmpflj7flraYgPiBhbmdvdWdha3VcIDsKK+S7o+ihjOiAhSA+IGRhaWtvdXNoYVwgOwor5YWr5Y2D5q2zID4geWFjaGl0b3NlXCA7Civlj6PnnJ/kvLwgPiBrdWNoaW1hbmVcIDsKK+WHuueJiOmDqCA+IHNodXBwYW5idVwgOwor6Kaz5ris5omAID4ga2Fuc29rdWpvXCA7CivntYzmuIjnlYwgPiBrZWl6YWlrYWlcIDsKK+S4jeeGseW/gyA+IGZ1bmVzc2hpblwgOwor5YWs5rOV5Lq6ID4ga291aG91amluXCA7CivkvJHnnKDmnJ8gPiBreXV1bWlua2lcIDsKK+WJr+e3j+eQhiA+IGZ1a3Vzb3VyaVwgOwor5Ly05aWP6ICFID4gYmFuc291c2hhXCA7Civlr77oq4fogIUgPiB0YWlkYW5zaGFcIDsKK+iyv+aYk+azlSA+IGJvdWVraWhvdVwgOwor5ZyS6YGK5LyaID4gZW4nJ3l1dWthaVwgOwor6LOb5oiQ6ICFID4gc2Fuc2Vpc2hhXCA7Civoirjog73kurogPiBnZWlub3VqaW5cIDsKK+WIhuitsuWcsCA+IGJ1bmpvdWNoaVwgOwor5bGI5YWJ5oCnID4ga3Vra291c2VpXCA7CivnnJ/nj6Dmub4gPiBzaGluanV3YW5cIDsKK+S6pOmAmuemjSA+IGtvdXRzdXVrYVwgOwor5oud54Gr5pWZID4gaGFpa2FreW91XCA7CivnrofmnaHmm7ggPiBrYWpvdWdha2lcIDsKK+mBuOaMmeS6uiA+IHNlbmt5b25pblwgOwor6YWq6L6y5a62ID4gcmFrdW5vdWthXCA7Civlt6Xoirjlk4EgPiBrb3VnZWloaW5cIDsKK+acquadpeWeiyA+IG1pcmFpZ2F0YVwgOwor5byB6bCT6aGeID4gYmVuc2FpcnVpXCA7CivnhKHos4fmoLwgPiBtdXNoaWtha3VcIDsKK+S7u+WRveaoqSA+IG5pbm1laWtlblwgOwor6Jmr5Z6C54KOID4gY2h1dXN1aWVuXCA7CivnoLTokL3miLggPiBnb3JvdHN1a2lcIDsKK+iThOmfs+WZqCA+IGNoaWt1b25raVwgOwor57ep5LiL6JasID4ga2FuZ2V5YWt1XCA7CivmnInmqZ/nmoQgPiB5dXVraXRla2lcIDsKK+ato+WPjeWvviA+IHNlaWhhbnRhaVwgOwor6Z2S5rW35Y6fID4gYW91bmFiYXJhXCA7Civlh7npnaLpj6EgPiBvdW1lbmt5b3VcIDsKK+WgsemBk+mZoyA+IGhvdWRvdWppblwgOwor5Yqj5Yui5oSfID4gcmVzc2Vpa2FuXCA7CivlvqHmlpnlnLAgPiBnb3J5b3VjaGlcIDsKK+ioiOeul+iAhSA+IGtlaXNhbnNoYVwgOwor54Sh6aeE5Y+jID4gbXVkYWd1Y2hpXCA7CivmnY7mib/mmakgPiByaXNob3ViYW5cIDsKK+emj+mfs+abuCA+IGZ1a3VpbnNob1wgOwor5YWr5Y2m5o6MID4gaGFra2VzaG91XCA7Civoh6rkuLvnmoQgPiBqaXNodXRla2lcIDsKK+mAsuatqeWFmiA+IHNoaW5wb3RvdVwgOwor55u45Y+N5oCnID4gc291aGFuc2VpXCA7Civog73li5XmhYsgPiBub3Vkb3V0YWlcIDsKK+WPuOS7pOWumCA+IHNoaXJlaWthblwgOwor5Zyw6ZyH6KiIID4gamlzaGlua2VpXCA7CivntJnkuIDph40gPiBrYW1paGl0b2VcIDsKK+awtOWKoOa4myA+IG1penVrYWdlblwgOwor5Ye654mI6LK7ID4gc2h1cHBhbmhpXCA7CivmnpzloLHogIUgPiBrYWhvdW1vbm9cIDsKK+aIkOmVt+acnyA+IHNlaWNob3VraVwgOwor5rWE5Zyf5pWZID4gam91ZG9reW91XCA7CivlpKnkupXmnb8gPiB0ZW5qb3VpdGFcIDsKK+mbhuWhteapnyA+IHNodXVqaW5raVwgOwor5YeM5rOi5oCnID4gcnlvdWhhc2VpXCA7Civlv6vnlLflrZAgPiBrYWlkYW5zaGlcIDsKK+WkqeeLl+iMuCA+IHRlbmd1dGFrZVwgOwor54uZ5pKD5YW1ID4gc29nZWtpaGVpXCA7CivlpJbovKrlsbEgPiBnYWlyaW56YW5cIDsKK+aYh+mZjeapnyA+IHNob3Vrb3VraVwgOwor5pS+54Gr54uCID4gaG91a2FreW91XCA7CivpoqjppqzniZsgPiBmdXViYWd5dXVcIDsKK+mZtuWZqOWVhiA+IHRvdWtpc2hvdVwgOwor5LiJ5aGB57eaID4gc2FucnVpc2VuXCA7CivpgZPnvqnlv4MgPiBkb3VnaXNoaW5cIDsKK+i2heaZguepuiA+IGNob3VqaWt1dVwgOwor5b6u57KS5a2QID4gYmlyeXV1c2hpXCA7CivmsLTlubPnt5ogPiBzdWloZWlzZW5cIDsKK+WGjeWwi+WVjyA+IHNhaWppbm1vblwgOwor5riF5o6D6LuKID4gc2Vpc291c2hhXCA7CivmnIDliY3nt5ogPiBzYWl6ZW5zZW5cIDsKK+e1tuWvvuiAhSA+IHpldHRhaXNoYVwgOwor5q2j56K65bqmID4gc2Vpa2FrdWRvXCA7CivmsLfliYrmqZ8gPiBoeW91c2Fra2lcIDsKK+WIhuino+iDvSA+IGJ1bmthaW5vdVwgOwor5Zub6KeS5b2iID4gc2hpa2Fra2VpXCA7CivlrqPoqIDmm7ggPiBzZW5nZW5zaG9cIDsKK+WPuOS7pOWhlCA+IHNoaXJlaXRvdVwgOwor56uL5aSq5a2QID4gcml0dGFpc2hpXCA7CivmnInouYTpoZ4gPiB5dXV0ZWlydWlcIDsKK+S9v+eUqOiAhSA+IHNoaXlvdXNoYVwgOwor5aSp5LiK55WMID4gdGVuam91a2FpXCA7CivpnZLmtbfkuoAgPiBhb3VtaWdhbWVcIDsKK+adpemBiuiAhSA+IHJhaXl1dXNoYVwgOwor5beo5Lq66LuNID4ga3lvamluZ3VuXCA7Civlrabpg6jnlJ8gPiBnYWt1YnVzZWlcIDsKK+W3peWtpumDqCA+IGtvdWdha3VidVwgOwor5pWZ56eR5pu4ID4ga3lvdWthc2hvXCA7CivntYzmuIjms5UgPiBrZWl6YWlob3VcIDsKK+egtOWCt+miqCA+IGhhc2hvdWZ1dVwgOwor5oyB5Y+C5Lq6ID4gamlzYW4nJ25pblwgOwor57eP552j5bqcID4gc291dG9rdWZ1XCA7Civml6XmnKzpq6ogPiBuaWhvbmdhbWlcIDsKK+WItuW+oeajkiA+IHNlaWd5b2JvdVwgOwor5qSc5qGI5pu4ID4ga2VuJydhbnNob1wgOwor5q2p6YGT5qmLID4gaG9kb3VreW91XCA7CivlnLDmlrnntJkgPiBjaGlob3VzaGlcIDsKK+aXpeWCreWPliA+IGhpeW91dG9yaVwgOwor5Zyw542E5aSJID4gamlnb2t1aGVuXCA7CivlkIjlpY/lm6MgPiBnYXNzb3VkYW5cIDsKK+eZuuaMr+WZqCA+IGhhc3NoaW5raVwgOwor5aSp5LqV5omHID4gdGVuam91c2VuXCA7Civlhajlj43lsIQgPiB6ZW5oYW5zaGFcIDsKK+WkiemAn+apnyA+IGhlbnNva3VraVwgOwor54Sh55CG5byPID4gbXVyaXNoaWtpXCA7Civou73lirTlg40gPiBrZWlyb3Vkb3VcIDsKK+ato+WPjeWQiCA+IHNlaWhhbmdvdVwgOwor57WM5riI5qyEID4ga2VpemFpcmFuXCA7CivnlJ/lrZflvJUgPiBpa2lqaWJpa2lcIDsKK+aKleelqOWMuiA+IHRvdWh5b3VrdVwgOwor5pyo5puc5pelID4gbW9rdXlvdWJpXCA7Civlh7rmnKjlubQgPiBkZWtpZG9zaGlcIDsKK+eik+awt+WzoCA+IHVzdWl0b3VnZVwgOwor5Yqg5YWl6YeRID4ga2FueXV1a2luXCA7CivmsJHplpPkurogPiBtaW5rYW5qaW5cIDsKK+WFrOWLn+agqiA+IGtvdWJva2FidVwgOwor5LmX6aas5pyNID4gam91YmFmdWt1XCA7Civml6XmnKzpoJggPiBuaWhvbnJ5b3VcIDsKK+iRl+abuOWQjSA+IGNob3Nob21laVwgOwor57WM5Za25a2mID4ga2VpZWlnYWt1XCA7Civnmb3piZvpibEgPiBoYWt1ZW5rb3VcIDsKK+eyl+ebruezliA+IHphcmFtZXRvdVwgOwor5YaF546E6ZaiID4gbmFpZ2Vua2FuXCA7CivlnLDmlrnnqI4gPiBjaGlob3V6ZWlcIDsKK+W3oeafu+mVtyA+IGp1bnNhY2hvdVwgOwor5Y2w5Yi35qmfID4gaW5zYXRzdWtpXCA7Civlh43mrbvogIUgPiB0b3VzaGlzaGFcIDsKK+eZvemKheiyqCA+IGhha3Vkb3VrYVwgOwor5aSp55CD5ZuzID4gdGVua3l1dXp1XCA7CivlhavljYPlubQgPiB5YWNoaXRvc2VcIDsKK+WOn+Wni+S6uiA+IGdlbnNoaWppblwgOwor5Yqg5bel6LODID4ga2Frb3VjaGluXCA7Civnq7novKrpuqkgPiBjaGlrdXdhZnVcIDsKK+S4gOaWueeahCA+IGlwcG91dGVraVwgOwor5Ye65LuV5LqLID4gZGVzaGlnb3RvXCA7CivmraPlv7XloLQgPiBzaG91bmVuYmFcIDsKK+aflOmBk+WgtCA+IGp1dWRvdWpvdVwgOwor6ISK6auE54KOID4gc2VraXp1aWVuXCA7Civkuozph43ph5wgPiBuaWp1dWdhbWFcIDsKK+eri+aWueS9kyA+IHJpcHBvdXRhaVwgOwor6YGg6ZqU5oCnID4gZW5rYWt1c2VpXCA7Civou73mrYzliocgPiBrZWlrYWdla2lcIDsKK+WItuWLleeBryA+IHNlaWRvdXRvdVwgOwor5YKs55yg5YmkID4gc2FpbWluemFpXCA7Civku4rkuIDluqYgPiBpbWFpY2hpZG9cIDsKK+aUu+mYsuaIpiA+IGtvdWJvdXNlblwgOwor5rWE5Zyf5a6XID4gam91ZG9zaHV1XCA7Civmk43nuKbmob8gPiBzb3VqdXVrYW5cIDsKK+aWh+aYjumkqCA+IGJ1bm1laWthblwgOwor5bCO6Zai5pWwID4gZG91a2Fuc3V1XCA7Civmu57lnKjlnLAgPiB0YWl6YWljaGlcIDsKK+S4iue0jeexsyA+IGpvdW5vdW1haVwgOwor5a6H5a6Z5pyNID4gdWNodXVmdWt1XCA7CivliKnlj6PogIUgPiByaWtvdW1vbm9cIDsKK+aWueazleirliA+IGhvdWhvdXJvblwgOwor6JOL54S25oCnID4gZ2FpemVuc2VpXCA7CivljYroo73lk4EgPiBoYW5zZWloaW5cIDsKK+S4gOWgtOmdoiA+IGljaGliYW1lblwgOwor55+z54mI55S7ID4gc2VraWJhbmdhXCA7CivnmbvpjLLnsL8gPiB0b3Vyb2t1Ym9cIDsKK+S4gOaYqOaZqSA+IGlzc2FrdWJhblwgOwor5aSa5qW15YyWID4gdGFreW9rdWthXCA7CivlpKfkuIDnlaogPiBvb2ljaGliYW5cIDsKK+ihm+aYn+WbvSA+IGVpc2Vpa29rdVwgOwor5LiL57Sa55SfID4ga2FreXV1c2VpXCA7CivmqJnmupbmmYIgPiBoeW91anVuamlcIDsKK+mrmOm9ouiAhSA+IGtvdXJlaXNoYVwgOwor5LiA5LiB5YmNID4gaXRjaG91bWFlXCA7CivmqKrmgYvmhZUgPiB5b2tvcmVuYm9cIDsKK+iyoeeUo+eojiA+IHphaXNhbnplaVwgOwor5LqM6YeN6LqrID4gbmlqdXVzaGluXCA7CivnlJ/nkIblraYgPiBzZWlyaWdha3VcIDsKK+eGseWZqOWFtyA+IG5ldHN1a2lndVwgOwor5a+S5Ya357SXID4ga2FucmVpc2hhXCA7CivmsLTpgZPmoJMgPiBzdWlkb3VzZW5cIDsKK+aOoue0ouacqCA+IHRhbnNha3VnaVwgOwor56CU56m256eRID4ga2Vua3l1dWthXCA7Civlrp/mlr3kvosgPiBqaXNzaGlyZWlcIDsKK+mVt+mfs+majiA+IGNob3VvbmthaVwgOwor5LiN6KmV5YikID4gZnVoeW91YmFuXCA7CivpgbjmiYvlm6MgPiBzZW5zaHVkYW5cIDsKK+WKn+WIqeeahCA+IGtvdXJpdGVraVwgOwor5aSp55CD5YSAID4gdGVua3l1dWdpXCA7CivnnJ/nj6DlsaQgPiBzaGluanVzb3VcIDsKK+W5s+Wdh+eCuSA+IGhlaWtpbnRlblwgOwor6YCj5ZCI5LyaID4gcmVuZ291a2FpXCA7Civlt6Xmpa3ljJYgPiBrb3VneW91a2FcIDsKK+i1pOmBk+WEgCA+IHNla2lkb3VnaVwgOwor5paH5a2m5bqnID4gYnVuZ2FrdXphXCA7CivlirTlg43lhZogPiByb3Vkb3V0b3VcIDsKK+e1jOa4iOaIpiA+IGtlaXphaXNlblwgOwor57Gz56m66LuNID4gYmVpa3V1Z3VuXCA7CivmlbflsYXnva4gPiBzaGlraWljaGlcIDsKK+mFjeW9k+mHkSA+IGhhaXRvdWtpblwgOwor6aOb6JqK55eHID4gaGlidW5zaG91XCA7CivotaTnl6Loj4wgPiBzZWtpcmlraW5cIDsKK+S6lOWNgeiCqSA+IGdvanV1a2F0YVwgOwor6auY562J5a6YID4ga291dG91a2FuXCA7CivlnLDmlrnniYggPiBjaGlob3ViYW5cIDsKK+eJh+iEs+ayuSA+IGhlbicnbm91eXVcIDsKK+WlieihjOaJgCA+IGJ1Z3lvdXNob1wgOwor6IKv5a6a5paHID4ga291dGVpYnVuXCA7CivoirPpppnliaQgPiBob3Vrb3V6YWlcIDsKK+eBq+eBvea1gSA+IGthc2Fpcnl1dVwgOwor5Y2w5Yi35omAID4gaW5zYXRzdWpvXCA7CivlpKfogZbloIIgPiBkYWlzZWlkb3VcIDsKK+e1jOa4iOaApyA+IGtlaXphaXNlaVwgOwor6JuH57SL55+zID4gamFtb25zZWtpXCA7CivmtYHooYzmrYwgPiByeXV1a291a2FcIDsKK+S4ieinkua0siA+IHNhbmtha3VzdVwgOwor5LiJ5paH5YikID4gc2FubW9uYmFuXCA7CivkuInop5Lms6IgPiBzYW5rYWt1aGFcIDsKK+Wun+mam+aApyA+IGppc3NhaXNlaVwgOwor56u555+i5p2lID4gdGFrZXlhcmFpXCA7CivlubPooYznt5ogPiBoZWlrb3VzZW5cIDsKK+iRseWdiuS4uyA+IG5lZ2lib3V6dVwgOwor5a2r5byf5a2QID4gbWFnb2Rlc2hpXCA7CivlrrnnqY3mr5QgPiB5b3VzZWtpaGlcIDsKK+WItumFuOWJpCA+IHNlaXNhbnphaVwgOwor5Y2g5Y+W5qipID4gc2Vuc2h1a2VuXCA7CivkuLvnnLzngrkgPiBzaHVnYW50ZW5cIDsKK+mBoOmalOWcsCA+IGVua2FrdWNoaVwgOwor5LiJ6KeS5q+UID4gc2Fua2FrdWhpXCA7CivplbfmmYLplpMgPiBjaG91amlrYW5cIDsKK+WNiuerr+iAhSA+IGhhbnBhbW9ub1wgOwor54us56aB5rOVID4gZG9ra2luaG91XCA7CivluoPlkYrosrsgPiBrb3Vrb2t1aGlcIDsKK+acgOWEqumBhyA+IHNhaXl1dWd1dVwgOwor5Y+w6aKo55y8ID4gdGFpZnV1Z2FuXCA7CivmnKrmlZnogrIgPiBtaWt5b3Vpa3VcIDsKK+ijgeaWreW4qyA+IHNhaWRhbnNoaVwgOwor5YWo5Y2Y5bCEID4gemVudGFuc2hhXCA7CivlirnmnpznmoQgPiBrb3VrYXRla2lcIDsKK+epuuaJi+W9oiA+IGt1dXRlZ2F0YVwgOwor5Y2w5Yi75birID4gaW5rb2t1c2hpXCA7CivpnZLlubTovKkgPiBzZWluZW5oYWlcIDsKK+WJsueDueW6lyA+IGthcHBvdXRlblwgOwor6LK/5piT5ZOBID4gYm91ZWtpaGluXCA7CivliYrlsqnmqZ8gPiBzYWt1Z2Fua2lcIDsKK+WujOS6huW+jCA+IGthbnJ5b3Vnb1wgOwor5aSn5LiK5q61ID4gZGFpam91ZGFuXCA7CivlnJLoirjlraYgPiBlbmdlaWdha3VcIDsKK+aMh+ebuOaSsiA+IHl1Yml6dW1vdVwgOwor6IKp55Sy5bivID4ga2Vua291dGFpXCA7CivmraPlvZPmgKcgPiBzZWl0b3VzZWlcIDsKK+egguezluawtCA+IHNhdG91bWl6dVwgOwor5pa56YyQ5b2iID4gaG91c3Vpa2VpXCA7Civnm7jlvZPmlbAgPiBzb3V0b3VzdXVcIDsKK+mGuOmAoOmFkiA+IGpvdXpvdXNodVwgOwor5bem5Lit6ZaTID4gc2FjaHV1a2FuXCA7CivkvJ3ku6TogIUgPiBkZW5yZWlzaGFcIDsKK+acqOe2v+mHnSA+IG1vbWVuYmFyaVwgOwor5pyo54mI55S7ID4gbW9rdWhhbmdhXCA7CivmpJzmn7vlvbkgPiBrZW5zYXlha3VcIDsKK+W/mOW5tOS8miA+IGJvdW5lbmthaVwgOwor5a6H5a6Z5a2mID4gdWNodXVnYWt1XCA7CivnnJ/nkIblgKQgPiBzaGlucmljaGlcIDsKK+mFjeawtOeuoSA+IGhhaXN1aWthblwgOwor5aSq6Zm96aKoID4gdGFpeW91ZnV1XCA7Civkvb/nlKjms5UgPiBzaGl5b3Vob3VcIDsKK+WNsOWIt+WxiyA+IGluc2F0c3V5YVwgOwor6Z+z5aOw5a2mID4gb25zZWlnYWt1XCA7CivkvIrpgZTlpbMgPiBkYXRlb24nJ25hXCA7Civlia/oqZ7lj6UgPiBmdWt1c2hpa3VcIDsKK+Wun+aVsOS9kyA+IGppc3N1dXRhaVwgOwor6KOP6ZW35bGLID4gdXJhbmFnYXlhXCA7CivmnbHlt6XlpKcgPiB0b3Vrb3VkYWlcIDsKK+iKseaZguioiCA+IGhhbmFkb2tlaVwgOwor6KO96YCg5ZOBID4gc2Vpem91aGluXCA7CivoqIjnrpfmm7ggPiBrZWlzYW5zaG9cIDsKK+WItuWLleaJiyA+IHNlaWRvdXNodVwgOwor5LiN6KaP5b6LID4gZnVraXJpdHN1XCA7Civlj6PohZTnmYwgPiBrb3Vrb3VnYW5cIDsKK+WbnuetlOiAhSA+IGthaXRvdXNoYVwgOwor5Y2Y5b6T6ZmjID4gdGFuanV1amluXCA7Civlj43oi7Hpm4QgPiBoYW4nJ2VpeXV1XCA7CivkuLvmqKnogIUgPiBzaHVrZW5zaGFcIDsKK+Wkp+acrOWxsSA+IGRhaWhvbnphblwgOwor5Lit5ZKM5YmkID4gY2h1dXdhemFpXCA7CivmhYjlloTnrrEgPiBqaXplbmJha29cIDsKK+acgOW3pue/vCA+IHNhaXNheW9rdVwgOwor5LiJ6KeS5peXID4gc2Fua2FrdWtpXCA7CivliqDlhaXogIUgPiBrYW55dXVzaGFcIDsKK+ijvuaooeanmCA+IHN1c29tb3lvdVwgOwor5LiA6Zq755y8ID4gaXNzZWtpZ2FuXCA7Civkvb/nlKjmqKkgPiBzaGl5b3VrZW5cIDsKK+i/keS9k+ipqSA+IGtpbnRhaXNoaVwgOwor5aSp54u85pifID4gdGVucm91c2VpXCA7Civlho3niq/ogIUgPiBzYWloYW5zaGFcIDsKK+WTqOaIkuapnyA+IHNob3VrYWlraVwgOwor6YCa6YGO6aeFID4gdHN1dWthZWtpXCA7CivlpKfkurrlhbEgPiBvdG9uYWRvbW9cIDsKK+eCuuaUvumhjCA+IHNoaWhvdWRhaVwgOwor6Ium5b+D6KuHID4ga3VzaGluZGFuXCA7Civmk43nuKblo6sgPiBzb3VqdXVzaGlcIDsKK+ecn+ePoOWFiSA+IHNoaW5qdWtvdVwgOwor6YCf5bqm6KiIID4gc29rdWRva2VpXCA7CivnhKHosqzku7sgPiBtdXNla2luaW5cIDsKK+aSreS9hue3miA+IGJhbnRhbnNlblwgOwor6IGW6KqV56WtID4gc2VpdGFuc2FpXCA7CivnhKHkuIDmlocgPiBtdWljaGltb25cIDsKK+W4uOWIhuaVsCA+IGpvdWJ1bnN1dVwgOwor5YaN6ICD5oWuID4gc2Fpa291cnlvXCA7CivlhIDlhbjplbcgPiBnaXRlbmNob3VcIDsKK+W3peWtpuenkSA+IGtvdWdha3VrYVwgOwor5Lqk5q2T5LyaID4ga291a2Fua2FpXCA7CivlpKnosaHlhIAgPiB0ZW5zaG91Z2lcIDsKK+W8leeUqOaWhyA+IGluJyd5b3VidW5cIDsKK+iNkuazleW4qyA+IGFyYWhvdXNoaVwgOwor55mC6aSK6LK7ID4gcnlvdXlvdWhpXCA7CivmqZ/plqLplbcgPiBraWthbmNob3VcIDsKK+WQkeWcsOaApyA+IGtvdWNoaXNlaVwgOwor5Yex5peL6ZaAID4gZ2Fpc2VubW9uXCA7CivoqK3lgpnosrsgPiBzZXRzdWJpaGlcIDsKK+ijgee4q+W4qyA+IHNhaWhvdXNoaVwgOwor6LKh55Sj5qipID4gemFpc2Fua2VuXCA7CivlkIzooYzogIUgPiBkb3Vrb3VzaGFcIDsKK+aKleefs+apnyA+IHRvdXNla2lraVwgOwor5oSb5qCh5b+DID4gYWlrb3VzaGluXCA7CivkvI/prZTmrr8gPiBmdWt1bWFkZW5cIDsKK+iMtuWZqOe1hCA+IGNoYWtpZ3VtaVwgOwor5LiJ5aGB5omLID4gc2FucnVpc2h1XCA7CivomZrnhKHnmoQgPiBreW9tdXRla2lcIDsKK+S8neWwjuaApyA+IGRlbmRvdXNlaVwgOwor5paH5a2X5YiXID4gbW9qaXJldHN1XCA7Civlj43oirvpoZ4gPiBoYW5zdXVydWlcIDsKK+WumuWei+ipqSA+IHRlaWtlaXNoaVwgOwor5rC06I+T5a2QID4gbWl6dWdhc2hpXCA7Civkvb/nlKjmlrkgPiBzaGl5b3Vob3VcIDsKK+m7jeWbo+WtkCA+IGtpYmlkYW5nb1wgOwor6Luf5Y+j6JOLID4gbmFua291Z2FpXCA7Civpl4fnm7jloLQgPiB5YW1pc291YmFcIDsKK+Wuh+WumeWNmiA+IHVjaHV1aGFrdVwgOwor5pyA5YmN5oimID4gc2FpemVuc2VuXCA7CivoiqXlrZDoj5wgPiBrYXJhc2hpbmFcIDsKK+ePjemBk+WFtyA+IGNoaW5kb3VndVwgOwor6buE6KGo57SZID4ga2lieW91c2hpXCA7CivlvpPlp4nlprkgPiBqdXVzaGltYWlcIDsKK+WtkOemj+iAhSA+IGtvYnVrdXNoYVwgOwor5oCd5oOz55WMID4gc2hpc291a2FpXCA7CivmsJHooYbljJYgPiBtaW5zaHV1a2FcIDsKK+mIjem7hOiJsiA+IG5pYnVraWlyb1wgOwor5LiJ6KeS5b2iID4gc2Fua2Fra2VpXCA7CivlpKfmnKzllrYgPiBkYWlob24nJ2VpXCA7CivnjJvnibnoqJMgPiBtb3V0b2trdW5cIDsKK+S6iOWRiue3qCA+IHlva29rdWhlblwgOwor5Ya35rm/5biDID4gcmVpc2hpcHB1XCA7CivmqJnmupbljJYgPiBoeW91anVua2FcIDsKK+WNl+ibruS6uiA+IG5hbmJhbmppblwgOwor55Sw5ZyS6KmpID4gZGVuJydlbnNoaVwgOwor5LiJ6KeS5bqnID4gc2Fua2FrdXphXCA7Civlho3oqabpqJMgPiBzYWlzaGlrZW5cIDsKK+WvkuW4r+aelyA+IGthbnRhaXJpblwgOwor5YK+5pac6Z2iID4ga2Vpc2hhbWVuXCA7CivmrbvkuqHogIUgPiBzaGlib3VzaGFcIDsKK+S4ieinkuW4hiA+IHNhbmtha3Vob1wgOwor5Y2K56uv54mpID4gaGFucGFtb25vXCA7CivlqZrlp7vms5UgPiBrb24nJ2luaG91XCA7CivkuInop5Llt54gPiBzYW5rYWt1c3VcIDsKK+S6jOmHjeeqkyA+IG5panV1bWFkb1wgOwor6Ieq54S26aGeID4gc2hpemVucnVpXCA7CivlsILlo7Llk4EgPiBzZW5iYWloaW5cIDsKK+S4jee1seS4gCA+IGZ1dG91aXRzdVwgOwor5aSc5Lya5pyNID4geWFrYWlmdWt1XCA7CivkuojlkYrnr4cgPiB5b2tva3VoZW5cIDsKK+WFmua0vuW/gyA+IHRvdWhhc2hpblwgOwor5oCd5oOz54qvID4gc2hpc291aGFuXCA7CivlvIHlvZPku6MgPiBiZW50b3VkYWlcIDsKK+iCneiHk+eZjCA+IGthbnpvdWdhblwgOwor57WM5riI5Lq6ID4ga2VpemFpamluXCA7Civku4/mlZnlvpIgPiBidWtreW91dG9cIDsKK+exs+a1t+i7jSA+IGJlaWthaWd1blwgOwor5ZCr5rK55bGkID4gZ2FuJyd5dXNvdVwgOwor5oOF5aCx6KqMID4gam91aG91c2hpXCA7Civlh7Hml4vou40gPiBnYWlzZW5ndW5cIDsKK+iQveS8jeiAhSA+IHJha3Vnb3NoYVwgOwor6J6N6Kej54K5ID4geXV1a2FpdGVuXCA7Civmt4vlt7TnkIMgPiByaW5wYWt5dXVcIDsKK+WrjOeFmeaoqSA+IGtlbicnZW5rZW5cIDsKK+Wkq+WppuS7siA+IGZ1dWZ1bmFrYVwgOwor5oSf5p+T5Y6fID4ga2Fuc2VuZ2VuXCA7Civov47os5PppKggPiBnZWloaW5rYW5cIDsKK+ipleitsOS8miA+IGh5b3VnaWthaVwgOwor5aW955S35a2QID4ga291ZGFuc2hpXCA7Civml6nmmKXos6YgPiBzb3VzaHVuZnVcIDsKK+WWiemgreeZjCA+IGtvdXRvdWdhblwgOwor5a+d5qWt5birID4gbmV3YXphc2hpXCA7CivkurrmoLzljJYgPiBqaW5rYWt1a2FcIDsKK+e2uum6l+S6iyA+IGtpcmVpZ290b1wgOwor6KiY5ZCN5qCqID4ga2ltZWlrYWJ1XCA7CivmkLrluK/lk4EgPiBrZWl0YWloaW5cIDsKK+mnkOWxr+aJgCA+IGNodXV0b25qb1wgOwor56CU56m25omAID4ga2Vua3l1dWpvXCA7CivmnIDlhYjnq68gPiBzYWlzZW50YW5cIDsKK+WxheS9j+iAhSA+IGt5b2p1dXNoYVwgOwor6KqH5by15rOVID4ga29jaG91aG91XCA7CivoppbopprljJYgPiBzaGlrYWt1a2FcIDsKK+S4reiPr+ihlyA+IGNodXVrYWdhaVwgOwor6YCj5Yik54q2ID4gcmVuYmFuam91XCA7Civpup3pppnnjKsgPiBqYWtvdW5la29cIDsKK+WkieWFieaYnyA+IGhlbmtvdXNlaVwgOwor5a+p5p+75a6YID4gc2hpbnNha2FuXCA7CivlpJrnlKjkuK0gPiB0YXlvdWNodXVcIDsKK+aXqeadseaIpiA+IHNvdXRvdXNlblwgOwor6buZ56eY5qipID4gbW9rdWhpa2VuXCA7CivlhpLpmbroq4cgPiBib3VrZW5kYW5cIDsKK+W4uOWCmeiWrCA+IGpvdWJpeWFrdVwgOwor5aaK5amm5pyNID4gbmlucHVmdWt1XCA7CivkvZPph43oqIggPiB0YWlqdXVrZWlcIDsKK+itpuWumOmaiiA+IGtlaWthbnRhaVwgOwor6Kyb6KuH56S+ID4ga291ZGFuc2hhXCA7Civov5Hku6PoqakgPiBraW5kYWlzaGlcIDsKK+eFmeiNiemKrSA+IHRhYmFrb3NlblwgOwor6ZaT5oqV6KmeID4ga2FudG91c2hpXCA7CivnrZTlvIHogIUgPiB0b3ViZW5zaGFcIDsKK+W5s+ihjOajkiA+IGhlaWtvdWJvdVwgOwor6J+75Zyw542EID4gYXJpamlnb2t1XCA7CivmiYHmoYPohbogPiBoZW50b3VzZW5cIDsKK+WFrOWIpOW7tyA+IGtvdWhhbnRlaVwgOwor5pWw5YSE5bm0ID4gc3V1b2t1bmVuXCA7Civnm4bnga/nsaAgPiBib25kb3Vyb3VcIDsKK+e1guaIpuW+jCA+IHNodXVzZW5nb1wgOwor57eo6ZuG6YOoID4gaGVuc2h1dWJ1XCA7Civlkajlm7LplbcgPiBzaHV1aWNob3VcIDsKK+WFrOmBuOWItiA+IGtvdXNlbnNlaVwgOwor5L+u55CG5belID4gc2h1dXJpa291XCA7CivmnIDpganljJYgPiBzYWl0ZWtpa2FcIDsKK+WMluWtpuiAhSA+IGthZ2FrdXNoYVwgOwor6LSI6LOE572qID4gem91d2FpemFpXCA7CivkuI3mib/oqo0gPiBmdXNob3VuaW5cIDsKK+S6lOmHjeWUsSA+IGdvanV1c2hvdVwgOwor5bm06b2i6aCGID4gbmVucmVpanVuXCA7Civos63ljZrloLQgPiB0b2Jha3Vqb3VcIDsKK+eci+WuiOiAhSA+IGthbnNodXNoYVwgOwor5byx6Zu75ZmoID4gamFrdWRlbmtpXCA7Civml6XmnKznmoQgPiBuaWhvbnRla2lcIDsKK+mWi+WivuWcsCA+IGthaWtvbmNoaVwgOwor56aB54yf5pyfID4ga2lucnlvdWtpXCA7CivliY3poY3pg6ggPiB6ZW5nYWt1YnVcIDsKK+ipleirluWutiA+IGh5b3Vyb25rYVwgOwor5LiA5paJ5a6JID4gaXNzZWl5YXN1XCA7CivkuIDopqrnrYkgPiBpc3NoaW50b3VcIDsKK+WGjeaUvumAgSA+IHNhaWhvdXNvdVwgOwor6IiI6KGM5YyWID4ga291Z3lvdWthXCA7CivljJblrabnt5ogPiBrYWdha3VzZW5cIDsKK+aIpuatu+iAhSA+IHNlbnNoaXNoYVwgOwor5LiA5paH5a2XID4gaWNoaW1vbmppXCA7Civmloflo6vpgKMgPiBidW5zaGlyZW5cIDsKK+acqOe2v+ezuCA+IG1vbWVuJydpdG9cIDsKK+eEpumbu+awlyA+IHNob3VkZW5raVwgOwor5o6I5LiO5byPID4ganV5b3NoaWtpXCA7Civnm67liIbph48gPiBtZWJ1bnJ5b3VcIDsKK+WkqeS4i+S4gCA+IHRlbmthaWNoaVwgOwor5Lit5Y+k5ZOBID4gY2h1dWtvaGluXCA7CivluILloLTmgKcgPiBzaGlqb3VzZWlcIDsKK+S4reaAp+WhqSA+IGNodXVzZWllblwgOwor5paH6Kqe6Kq/ID4gYnVuZ29jaG91XCA7CivmlaPlhbXnt5ogPiBzYW5wZWlzZW5cIDsKK+a1geihjOWFkCA+IHJ5dXVrb3VqaVwgOwor5Y+I5b6T5byfID4gbWF0YWl0b2tvXCA7CivohbnmmYLoqIggPiBoYXJhZG9rZWlcIDsKK+W4g+iii+iFuSA+IGhvdGVpYmFyYVwgOwor54Sh5pWZ6IKyID4gbXVreW91aWt1XCA7CivnoJTnqbblrrYgPiBrZW5reXV1a2FcIDsKK+aVmeWMuuawkSA+IGt5b3VrdW1pblwgOwor5Zyw6ZyH5bivID4gamlzaGludGFpXCA7CivplbfmnJ/miKYgPiBjaG91a2lzZW5cIDsKK+mAmuefpeewvyA+IHRzdXVjaGlib1wgOwor5Yqg5bel5qWtID4ga2Frb3VneW91XCA7CivkuI3ooYznirYgPiBmdWd5b3Vqb3VcIDsKK+iDoem6u+ayuSA+IGdvbWFhYnVyYVwgOwor5pel5pys54y/ID4gbmlob256YXJ1XCA7Civml6fkuJbnlYwgPiBreXV1c2VrYWlcIDsKK+awtOW5s+WLlSA+IHN1aWhlaWRvdVwgOwor55+t5aSn55SfID4gdGFuZGFpc2VpXCA7Civogpblg4/nlLsgPiBzaG91em91Z2FcIDsKK+S4gOinkueNoyA+IGlra2FrdWp1dVwgOwor5Y+v5aSJ6ZW3ID4ga2FoZW5jaG91XCA7CivkuIDopoHntKAgPiBpY2hpeW91c29cIDsKK+WFkOerpeWKhyA+IGppZG91Z2VraVwgOwor5Z+L6JGs5ZywID4gbWFpc291Y2hpXCA7CivkuIroo73mnKwgPiBqb3VzZWlib25cIDsKK+S4oeaAp+iKsSA+IHJ5b3VzZWlrYVwgOwor5a6f6KGM6ICFID4gamlra291c2hhXCA7Civlgr7mlpzoqIggPiBrZWlzaGFrZWlcIDsKK+eKr+e9quiAhSA+IGhhbnphaXNoYVwgOwor57W25Lqk54q2ID4gemVra291am91XCA7CivlpJbmnaXogIUgPiBnYWlyYWlzaGFcIDsKK+S8neWwjuS9kyA+IGRlbmRvdXRhaVwgOwor5pac5ruR6ZmNID4gc2hha2Fra291XCA7CivluLjlubPlgIkgPiBqb3VoZWlzb3VcIDsKK+S4u+WCrOiAhSA+IHNodXNhaXNoYVwgOwor5p+U6Luf5oCnID4ganV1bmFuc2VpXCA7CivliIbmi4Xph5EgPiBidW50YW5raW5cIDsKK+WGt+iUtei7iiA+IHJlaXpvdXNoYVwgOwor5pyA6auY6KOBID4gc2Fpa291c2FpXCA7CivliqDlhaXmqKkgPiBrYW55dXVrZW5cIDsKK+WJjeS9j+aJgCA+IHplbmp1dXNob1wgOwor5bGV5pyb5aGUID4gdGVuYm91dG91XCA7CivpgY7mlY/nl4cgPiBrYWJpbnNob3VcIDsKK+S6uumgreeojiA+IG5pbnRvdXplaVwgOwor6Iie5Y+w5YqHID4gYnV0YWlnZWtpXCA7CivlubPlnYflgKQgPiBoZWlraW5jaGlcIDsKK+agvOWtkOmdoiA+IGtvdXNoaW1lblwgOwor5rC06Iy25bGLID4gbWl6dWNoYXlhXCA7Civmg4XloLHntrIgPiBqb3Vob3Vtb3VcIDsKK+W3tOaXpuadjyA+IGhhdGFua3lvdVwgOwor5a+p576O55y8ID4gc2hpbmJpZ2FuXCA7Civlh6bkuJboqJMgPiBzaG9zZWlrdW5cIDsKK+iHqueEtuimsyA+IHNoaXplbmthblwgOwor6ISC6IKq6YW4ID4gc2hpYm91c2FuXCA7CivploDlpJbmvKIgPiBtb25nYWlrYW5cIDsKK+aKl+iPjOaApyA+IGtvdWtpbnNlaVwgOwor5Lyd5p+T5oCnID4gZGVuc2Vuc2VpXCA7CivmnKrntYTnuZQgPiBtaXNvc2hpa2lcIDsKK+awtOanmOa2siA+IHN1aXlvdWVraVwgOwor5pWR5Yqp6ZqKID4ga3l1dWpvdGFpXCA7Civkv53lrZjph48gPiBob3pvbnJ5b3VcIDsKK+aguOWFteWZqCA+IGtha3VoZWlraVwgOwor5LiN5rqA6LazID4gZnVtYW56b2t1XCA7Civplbfoq4forbAgPiBuYWdhZGFuZ2lcIDsKK+WGkumZuuiAhSA+IGJvdWtlbnNoYVwgOwor57696JKy5ZujID4gaGFuZWJ1dG9uXCA7CivlnLDmlrnlgrUgPiBjaGlob3VzYWlcIDsKK+acrOWgtOeJqSA+IGhvbmJhbW9ub1wgOwor6Kqe5a2m6ICFID4gZ29nYWt1c2hhXCA7Civlho3oqabooYwgPiBzYWlzaGlrb3VcIDsKK+WxheS4iOmrmCA+IGl0YWtlZGFrYVwgOwor5aSq6Zm957O7ID4gdGFpeW91a2VpXCA7CivnoJTnqbblk6EgPiBrZW5reXV1aW5cIDsKK+W8pee4q+etliA+IGJpaG91c2FrdVwgOwor54Sh5aCx6YWsID4gbXVob3VzaHV1XCA7CivomIbmup3mqYsgPiByb2tvdWt5b3VcIDsKK+e1tuWvvuWApCA+IHpldHRhaWNoaVwgOwor5aSp6aCC5YSAID4gdGVuY2hvdWdpXCA7Civmtbfos4rnjosgPiBrYWl6b2t1b3VcIDsKK+iyoeeVjOS6uiA+IHphaWthaWppblwgOwor6aKo5p2l5Z2KID4gZnV1cmFpYm91XCA7Civlr5LlhrflnLAgPiBrYW5yZWljaGlcIDsKK+WJjee9ruipniA+IHplbmNoaXNoaVwgOwor5Yqg5Yik5Lq6ID4ga2FoYW4nJ25pblwgOwor5YuV5ruR6LuKID4gZG91a2Fzc2hhXCA7CivntZDmsLfmnJ8gPiBrZXBweW91a2lcIDsKK+Wxleacm+WPsCA+IHRlbmJvdWRhaVwgOwor56S85oud5aCCID4gcmVpaGFpZG91XCA7Civpq5jmgKfog70gPiBrb3VzZWlub3VcIDsKK+S5vua1t+iLlCA+IGhvc2hpbm9yaVwgOwor5L2/55So5L6LID4gc2hpeW91cmVpXCA7CivmnInnlLDnhLwgPiBhcml0YXlha2lcIDsKK+mrmOWRqOazoiA+IGtvdXNodXVoYVwgOwor5bC/5qSc5p+7ID4gbnlvdWtlbnNhXCA7CivnkrDnirbnt5ogPiBrYW5qb3VzZW5cIDsKK+eZuuaDs+azlSA+IGhhc3NvdWhvdVwgOwor5YWN56iO54K5ID4gbWVuemVpdGVuXCA7CivlgKTmrrXooaggPiBuZWRhbmh5b3VcIDsKK+ebtOW8n+WtkCA+IGppa2lkZXNoaVwgOwor6YCj6YKm5Yi2ID4gcmVucG91c2VpXCA7Civkvb/nlKjkurogPiBzaGl5b3VuaW5cIDsKK+akjeacqOmJoiA+IHVla2liYWNoaVwgOwor54Wn5bCE6YeOID4gc2hvdXNoYXlhXCA7CivmhYjlloTlv4MgPiBqaXplbnNoaW5cIDsKK+acqOeFieeTpiA+IG1va3VyZW5nYVwgOwor5pyo57a/54mpID4gbW9tZW5tb25vXCA7Civlha3liIblhIAgPiByb2t1YnVuZ2lcIDsKK+imluWcsOW5syA+IHNoaWNoaWhlaVwgOwor5bel5L2c5ZOhID4ga291c2FrdWluXCA7Civlm57mvJXlupcgPiBrYWlzb3V0ZW5cIDsKK+efs+eCree0gCA+IHNla2l0YW5raVwgOwor5oqV5qmf55qEID4gdG91a2l0ZWtpXCA7CivnjJ/niqzluqcgPiByeW91a2VuemFcIDsKK+earuiyoeW4gyA+IGthd2F6YWlmdVwgOwor6ISz6KGA5qCTID4gbm91a2Vzc2VuXCA7CivmraPliYfljJYgPiBzZWlzb2t1a2FcIDsKK+Wkp+WlpeanmCA+IG9vb2t1c2FtYVwgOwor5qyg6Zml6LuKID4ga2Vra2Fuc2hhXCA7CivkuIDlpKfkuosgPiBpY2hpZGFpamlcIDsKK+mAo+WIhuaVsCA+IHJlbmJ1bnN1dVwgOwor5L+u55CG5LujID4gc2h1dXJpZGFpXCA7CivolYHpurvnlrkgPiBqaW5tYXNoaW5cIDsKK+WFt+eUs+abuCA+IGd1c2hpbnNob1wgOwor6Kqt5pu45a62ID4gZG9rdXNob2thXCA7Civnvo7ooZPpg6ggPiBiaWp1dHN1YnVcIDsKK+aEn+isneelrSA+IGthbnNoYXNhaVwgOwor6LK05pa55pa5ID4gYW5hdGFnYXRhXCA7CivmnbHkuqzpg70gPiB0b3VreW91dG9cIDsKK+aXp+Wtl+S9kyA+IGt5dXVqaXRhaVwgOwor54Sh6Kq/5rOVID4gYnVjaG91aG91XCA7Civoo73kvZzosrsgPiBzZWlzYWt1aGlcIDsKK+S6jOmAsemWkyA+IG5pc2h1dWthblwgOwor6YOo6JC95rCRID4gYnVyYWt1bWluXCA7CivliqDnm5/lm70gPiBrYW1laWtva3VcIDsKK+S4gOWknOS4rSA+IGhpdG95YWp1dVwgOwor5qeL6YCg5L2TID4ga291em91dGFpXCA7CivkuK3ljLvlraYgPiBjaHV1aWdha3VcIDsKK+WPl+S/oeiAhSA+IGp1c2hpbnNoYVwgOwor5Lya6K2w6YyyID4ga2FpZ2lyb2t1XCA7CivnpoHnhZnou4ogPiBraW4nJ2Vuc2hhXCA7Civpm7vlrZDpioMgPiBkZW5zaGlqdXVcIDsKK+WFt+S9k+etliA+IGd1dGFpc2FrdVwgOwor6LuK5o6M5Yy6ID4gc2hhc2hvdWt1XCA7Civku5blm73msJEgPiB0YWtva3VtaW5cIDsKK+WEkuWtpuiAhSA+IGp1Z2FrdXNoYVwgOwor5ZCN5o6i5YG1ID4gbWVpdGFudGVpXCA7Civlm73pgKPml5cgPiBrb2t1cmVua2lcIDsKK+WPiOW+k+WFhCA+IG1hdGFpdG9rb1wgOwor6a+j54OP6LOKID4gc3VydW1laWthXCA7CivlhajluILmsJEgPiB6ZW5zaGltaW5cIDsKK+WgsemBk+WumCA+IGhvdWRvdWthblwgOwor5pel5pys5pm0ID4gbmlob25iYXJlXCA7CivluIPlm6Pnmq4gPiBmdXRvbmdhd2FcIDsKK+S/rue5leiyuyA+IHNodXV6ZW5oaVwgOwor5bCC6ZaA5pu4ID4gc2VubW9uc2hvXCA7CivlhaznlKjou4ogPiBrb3V5b3VzaGFcIDsKK+iAkOaAp+iPjCA+IHRhaXNlaWtpblwgOwor5ZCM56iu6aGeID4gZG91c2h1cnVpXCA7Civpn7Pln5/lpJYgPiBvbicnaWtpZ2FpXCA7CivopqrlkozmgKcgPiBzaGlud2FzZWlcIDsKK+WJjemgreiRiSA+IHplbnRvdXlvdVwgOwor54+g5pqW57C+ID4gdGFtYW5vcmVuXCA7CivkuZ3mmJ/lrrYgPiBreXV1c2Vpa2FcIDsKK+mAmuawl+WtlCA+IHRzdXVraWtvdVwgOwor6Zqj5Lq65oSbID4gcmluamluJydhaVwgOwor5LiN5om/55+lID4gZnVzaG91Y2hpXCA7CivmrbvkuqHmlbAgPiBzaGlib3VzdXVcIDsKK+WxheS9j+aoqSA+IGt5b2p1dWtlblwgOwor6Ymk5ous5bynID4ga2FnaWtha2tvXCA7CivlgKbmgKDmhJ8gPiBrZW50YWlrYW5cIDsKK+WGt+iUteiIuSA+IHJlaXpvdXNlblwgOwor5ZCI5oiQ6YWSID4gZ291c2Vpc2h1XCA7CivlkbPlmYzmsYEgPiBtaXNvc2hpcnVcIDsKK+aMh+WwjuiAhSA+IHNoaWRvdXNoYVwgOwor5Y2K5Y+v6YCaID4gaGFua2F0c3V1XCA7CivnhKHorablkYogPiBtdWtlaWtva3VcIDsKK+Wkp+ilv+mDtyA+IGRhaXNhaWdvdVwgOwor552h55yg5YmkID4gc3VpbWluemFpXCA7Civml4vnm6Tlt6UgPiBzZW5iYW5rb3VcIDsKK+W4r+WIhuaVsCA+IHRhaWJ1bnN1dVwgOwor5b6M57aZ6ICFID4ga291a2Vpc2hhXCA7Civplbfoq4fnvqkgPiBuYWdhZGFuZ2lcIDsKK+WkqeaXpeWhqSA+IHRlbnBpc2hpb1wgOwor5aiB5Zyn55qEID4gaWF0c3V0ZWtpXCA7Civkuozph43lupUgPiBuaWp1dXpva29cIDsKK+WPiOW8n+WtkCA+IG1hdGFkZXNoaVwgOwor5pWR5ZG95YW3ID4ga3l1dW1laWd1XCA7CivnpoHnjJ/ljLogPiBraW5yeW91a3VcIDsKK+W8qee0muiJpiA+IGRva3l1dWthblwgOwor5oGS5LmF5YyWID4ga291a3l1dWthXCA7CivlhbfkvZPnmoQgPiBndXRhaXRla2lcIDsKK+iFueS4gOadryA+IGhhcmFpcHBhaVwgOwor5qC855CG6KuWID4ga2FrdXJpcm9uXCA7CivmhJ/orJ3nirYgPiBrYW5zaGFqb3VcIDsKK+ePvuihjOeKryA+IGdlbmtvdWhhblwgOwor5pel5LuY5Y2wID4gaGlkenVrZWluXCA7CivlpKrpmb3nga8gPiB0YWl5b3V0b3VcIDsKK+W4uOeUqOiAhSA+IGpvdXlvdXNoYVwgOwor5oOF5aCx5rqQID4gam91aG91Z2VuXCA7Civlhazkvb/ppKggPiBrb3VzaGlrYW5cIDsKK+W4hueri+iynSA+IGhvdGF0ZWdhaVwgOwor6Iul5q2m6ICFID4gd2FrYW11c2hhXCA7CivmuIXnrpfmm7ggPiBzZWlzYW5zaG9cIDsKK+acrOihl+mBkyA+IGhvbmthaWRvdVwgOwor6YO15L6/6LuKID4geXV1Ymluc2hhXCA7CivkuIDngrnmqZ8gPiBpY2hpdGVua2lcIDsKK+Wkj+miqOmCqiA+IG5hdHN1a2F6ZVwgOwor5Lit6YGT5rS+ID4gY2h1dWRvdWhhXCA7CivmmrTpoqjln58gPiBib3VmdXVpa2lcIDsKK+eZuuemgeacrCA+IGhha2tpbmJvblwgOwor5Zyn6Zu75rCXID4gYXRzdWRlbmtpXCA7Civlt6jkurrlhZogPiBreW9qaW50b3VcIDsKK+aZguS7o+eJqSA+IGppZGFpbW9ub1wgOwor5bGP6aKo5bKpID4gYnlvdWJ1aXdhXCA7Civlv6voqJjpjLIgPiBrYWlraXJva3VcIDsKK+aatOmiqOWcjyA+IGJvdWZ1dWtlblwgOwor6Kyb6KuH5birID4ga291ZGFuc2hpXCA7CivkuI3miJDnuL4gPiBmdXNlaXNla2lcIDsKK+Wkmumfs+evgCA+IHRhb25zZXRzdVwgOwor6YCj5biv5oSfID4gcmVudGFpa2FuXCA7Civpg6jliIbnmoQgPiBidWJ1bnRla2lcIDsKK+WwgumWgOW6lyA+IHNlbm1vbnRlblwgOwor5oWj55So6Z+zID4ga2FuJyd5b3VvblwgOwor5aSc5LuV5LqLID4geW9zaGlnb3RvXCA7CivmvJTnv5LmnpcgPiBlbnNodXVyaW5cIDsKK+afkOmrmOagoSA+IGJvdWtvdWtvdVwgOwor57a/6I+T5a2QID4gd2F0YWdhc2hpXCA7Civot6jnt5rmqYsgPiBrb3Nlbmt5b3VcIDsKK+eFmeiNieebhiA+IHRhYmFrb2JvblwgOwor5Y+X6aiT56WoID4ganVrZW5oeW91XCA7CivlhoXmlpzoppYgPiBuYWlzaGFzaGlcIDsKK+mbu+S/oeapnyA+IGRlbnNoaW5raVwgOwor5Zyn57iu5qmfID4gYXNzaHVrdWtpXCA7Civlrp/ooYzmqKkgPiBqaWtrb3VrZW5cIDsKK+enkeWtpuiAhSA+IGthZ2FrdXNoYVwgOwor54++6KGM5rOVID4gZ2Vua291aG91XCA7Civoh6rnhLbnlYwgPiBzaGl6ZW5rYWlcIDsKK+aHuOWegue3miA+IGtlbnN1aXNlblwgOwor5LiK5omL6ICFID4gam91enVtb25vXCA7Civml6XmnKzlraYgPiBuaWhvbmdha3VcIDsKK+aOkumanOWZqCA+IGhhaXNob3VraVwgOwor55yf5aSP5pelID4gbWFuYXRzdWJpXCA7CivmhJ/nhKHph48gPiBrYW5tdXJ5b3VcIDsKK+e1puS7mOmHkSA+IGt5dXVmdWtpblwgOwor5Luj5ZCN6KmeID4gZGFpbWVpc2hpXCA7CivmlZHliqnoiLkgPiBreXV1am9zZW5cIDsKK+eJveW8lei7iiA+IGtlbicnaW5zaGFcIDsKK+WxheS9j+aApyA+IGt5b2p1dXNlaVwgOwor5oqX5Yed5Zu6ID4ga291Z3lvdWtvXCA7CivnnIvorbfplbcgPiBrYW5nb2Nob3VcIDsKK+S9juaAp+iDvSA+IHRlaXNlaW5vdVwgOwor54Sh6KiI55S7ID4gbXVrZWlrYWt1XCA7CivlpJrpnaLop5IgPiB0YW1lbmtha3VcIDsKK+S9juWRqOazoiA+IHRlaXNodXVoYVwgOwor55CG5oOz6YO3ID4gcmlzb3VreW91XCA7CivooqvniIbogIUgPiBoaWJha3VzaGFcIDsKK+eyvuijveezliA+IHNlaXNlaXRvdVwgOwor5YyW5a2m5oimID4ga2FnYWt1c2VuXCA7CivmnInnlKjmgKcgPiB5dXV5b3VzZWlcIDsKK+Wor+alveihlyA+IGdvcmFrdWdhaVwgOwor5b6M5aSp5oCnID4ga291dGVuc2VpXCA7CivmoKHlj4vkvJogPiBrb3V5dXVrYWlcIDsKK+WNmOWIqeihqCA+IHRhbnJpaHlvdVwgOwor55mC6aSK5omAID4gcnlvdXlvdWpvXCA7Civkv53lrojnmoQgPiBob3NodXRla2lcIDsKK+eah+awkeWFmiA+IGtvdW1pbnRvdVwgOwor5LqM6YeN5ZSxID4gbmlqdXVzaG91XCA7CivlhY3nqI7lupcgPiBtZW56ZWl0ZW5cIDsKK+WNteiDjueUnyA+IHJhbnRhaXNlaVwgOwor57ea6aaZ5LujID4gc2Vua291ZGFpXCA7Civlr77op5LljJYgPiB0YWlrYWt1a2FcIDsKK+acgOmrmOeCuSA+IHNhaWtvdXRlblwgOwor5pyA5L2O6ZmQID4gc2FpdGVpZ2VuXCA7CivmrYzlkIjmiKYgPiB1dGFnYXNzZW5cIDsKK+W5s+WSjOizniA+IGhlaXdhc2hvdVwgOwor5pWw5L+C5pWwID4gc3V1a2Vpc3V1XCA7CivmnKjngq3nlLsgPiBtb2t1dGFuZ2FcIDsKK+WGjemZjeiHqCA+IHNhaWtvdXJpblwgOwor5YaN6Kq/5p+7ID4gc2FpY2hvdXNhXCA7Civpq5jph47mp5kgPiBrb3V5YW1ha2lcIDsKK+Wumua7kei7iiA+IHRlaWthc3NoYVwgOwor5Ly85oiR6JyCID4gamlnYWJhY2hpXCA7Civml4vlhYnmgKcgPiBzZW5rb3VzZWlcIDsKK+WQjeaKleaJiyA+IG1laXRvdXNodVwgOwor5o6h566X5oCnID4gc2Fpc2Fuc2VpXCA7CivkvIHmpa3ogIUgPiBraWd5b3VzaGFcIDsKK+mKgOegguWtkCA+IGdpbnN1bmFnb1wgOwor5Zu95YiG5a+6ID4ga29rdWJ1bmppXCA7CivppIrosZrloLQgPiB5b3V0b25qb3VcIDsKK+mdnuWvvuensCA+IGhpdGFpc2hvdVwgOwor5LiN6Yq56Yu8ID4gZnVzaHV1a291XCA7CivkuIDpmaLliLYgPiBpY2hpaW5zZWlcIDsKK+aJi+S7leS6iyA+IHRlc2hpZ290b1wgOwor6IOG5Zqi54KOID4gdGFuJydub3VlblwgOwor5by35omT6ICFID4ga3lvdWRhc2hhXCA7Civopo/nr4TnmoQgPiBraWhhbnRla2lcIDsKK+e+hee0l+e0mSA+IHJhc2hhZ2FtaVwgOwor6ISx6KGj5aC0ID4gZGF0c3Vpam91XCA7CivmlZHliqnntrIgPiBreXV1am9tb3VcIDsKK+W9k+mBuOiAhSA+IHRvdXNlbnNoYVwgOwor5aSq6Zmw5pqmID4gdGFpaW5yZWtpXCA7Civmj5rnvr3onbYgPiBhZ2VoYWNob3VcIDsKK+Wjq+WQm+WtkCA+IHNoaWt1bnNoaVwgOwor6IWw576955uuID4ga29zaGliYW1lXCA7CivniYfkuIDmlrkgPiBrYXRhaXBwb3VcIDsKK+mYv+eJh+eqnyA+IGFoZW5rdXRzdVwgOwor5ZC+5pyo6aaZID4gd2FyZW1va291XCA7CivlpKflnovou4ogPiBvb2dhdGFzaGFcIDsKK+Wkj+Wto+eGsSA+IGtha2luZXRzdVwgOwor5YaF6Zm46ZynID4gbmFpcmlrdW11XCA7CivmpI3lrZfmqZ8gPiBzaG9rdWppa2lcIDsKK+mBiuimp+iIuSA+IHl1dXJhbnNlblwgOwor5Lmz5oi/54KOID4gbnl1dWJvdWVuXCA7CivohLPmjKvlgrcgPiBub3V6YXNob3VcIDsKK+WtpueUn+iqsiA+IGdha3VzZWlrYVwgOwor6JeB5biD5ZujID4gd2FyYWJ1dG9uXCA7CivmipXmqZ/lv4MgPiB0b3VraXNoaW5cIDsKK+mDteS+v+iIuSA+IHl1dWJpbnNlblwgOwor6Z2S5bm05ZujID4gc2VpbmVuZGFuXCA7Civli6flkYrmoYggPiBrYW5rb2t1YW5cIDsKK+WkqeaWh+WPsCA+IHRlbm1vbmRhaVwgOwor6Ieq54S25rOVID4gc2hpemVuaG91XCA7Civnn7PngbDmtJ4gPiBzZWtrYWlkb3VcIDsKK+Wil+WIiuWPtyA+IHpvdWthbmdvdVwgOwor5YaF5aSn6IejID4gbmFpZGFpamluXCA7Civnj77lnKjlnLAgPiBnZW56YWljaGlcIDsKK+aIpui7iumaiiA+IHNlbnNoYXRhaVwgOwor5LqM6YeN5Li4ID4gbmlqdXVtYXJ1XCA7CivphZLpgKDloLQgPiBzaHV6b3Vqb3VcIDsKK+aEm+iqreiAhSA+IGFpZG9rdXNoYVwgOwor55+z54Gw5rC0ID4gc2Vra2Fpc3VpXCA7CivlpKflnLDpnIcgPiBkYWlqaXNoaW5cIDsKK+S4jeaLoeWkpyA+IGZ1a2FrdWRhaVwgOwor5Li75bCO6ICFID4gc2h1ZG91c2hhXCA7Civpq5jokpTntbUgPiB0YWthbWFraWVcIDsKK+iHqueEtuatuyA+IHNoaXplbnNoaVwgOwor5bGF5L2P5ZywID4ga3lvanV1Y2hpXCA7CivmsbrmrbvpmoogPiBrZXNzaGl0YWlcIDsKK+S4u+iEs+iAhSA+IHNodW5vdXNoYVwgOwor6Iie5qW96Z2iID4gYnVnYWt1bWVuXCA7CivprZrku4vpoZ4gPiBneW9rYWlydWlcIDsKK+acgOmrmOaknCA+IHNhaWtvdWtlblwgOwor54ax5rGa5p+TID4gbmV0c3Vvc2VuXCA7CivmgZLmmJ/lubQgPiBrb3VzZWluZW5cIDsKK+iHquWcqOmJpCA+IGppemFpa2FnaVwgOwor56u26LWw6aasID4ga3lvdXNvdWJhXCA7CivlvqHmiYvmtJcgPiBtaXRhcmFzaGlcIDsKK+Wil+W5heWZqCA+IHpvdWZ1a3VraVwgOwor5pel5pys5YG0ID4gbmlob25nYXdhXCA7CivkurrpoZ7lj7IgPiBqaW5ydWlzaGlcIDsKK+iLpuWKtOanmCA+IGt1cm91c2FtYVwgOwor56aA6KuL5pu4ID4gcmluc2Vpc2hvXCA7Civkv7Poq6fluKsgPiBoYWlrYWlzaGlcIDsKK+aFo+eUqOiqniA+IGthbicneW91Z29cIDsKK+Wls+WtpueUnyA+IGpvZ2FrdXNlaVwgOwor6Zu75a2Q566hID4gZGVuc2hpa2FuXCA7CivmorXlpKnnjosgPiBib250ZW4nJ291XCA7CivlkIjmiJDntJkgPiBnb3VzZWlzaGlcIDsKK+m7hOmKhemJsSA+IGtvdWRvdWtvdVwgOwor5Y+45pWZ5Yy6ID4gc2hpa3lvdWt1XCA7Civop6PmlaPmqKkgPiBrYWlzYW5rZW5cIDsKK+mBqem9ouacnyA+IHRla2lyZWlraVwgOwor5aiB5ZqH55qEID4gaWtha3V0ZWtpXCA7CivpioPpgKPlsIQgPiBqdXVyZW5zaGFcIDsKK+WFjeeojuWTgSA+IG1lbnplaWhpblwgOwor6auY5rC05rqWID4ga291c3VpanVuXCA7CivlpKrpmb3lubQgPiB0YWl5b3VuZW5cIDsKK+efs+e0sOW3pSA+IGlzaGl6YWlrdVwgOwor5a+d5bCP5L6/ID4gbmVzaG91YmVuXCA7CivlhrfolLXms5UgPiByZWl6b3Vob3VcIDsKK+mFjeWIhuazlSA+IGhhaWJ1bmhvdVwgOwor6IC9576O55qEID4gdGFuYml0ZWtpXCA7CivmvZzoiKroiYcgPiBzZW5rb3V0ZWlcIDsKK+WQjOeqk+eUnyA+IGRvdXNvdXNlaVwgOwor5pS+5rWq6ICFID4gaG91cm91c2hhXCA7CivnqK7mpoLlv7UgPiBzaHVnYWluZW5cIDsKK+aXqeaYjuaIpiA+IHNvdW1laXNlblwgOwor5b6u56mN5YiGID4gYmlzZWtpYnVuXCA7Civps6XnnrDlm7MgPiBjaG91a2FuenVcIDsKK+Wls+eOi+icgiA+IGpvb3ViYWNoaVwgOwor5aSW5Lqk5a6YID4gZ2Fpa291a2FuXCA7Civmra/ogonngo4gPiBzaGluaWt1ZW5cIDsKK+iHqueEtuaelyA+IHNoaXplbnJpblwgOwor5ryU57+S5aC0ID4gZW5zaHV1am91XCA7CivlsI/puqboibIgPiBrb211Z2lpcm9cIDsKK+mtmuiynemhniA+IGd5b2thaXJ1aVwgOwor5b6p5Y+k6Kq/ID4gZnVra29jaG91XCA7Civlj43nnIHkvJogPiBoYW5zZWlrYWlcIDsKK+eGseW4r+mtmiA+IG5ldHRhaWd5b1wgOwor5Y2Y6JGJ5qmfID4gdGFuJyd5b3VraVwgOwor5omA5pyJ6ICFID4gc2hveXV1c2hhXCA7Civosqnlo7LogIUgPiBoYW5iYWlzaGFcIDsKK+S4u+S6uumhlCA+IHNodWppbmdhb1wgOwor5ruR56i96ICFID4gb2Rva2Vtb25vXCA7CivmsLTpo6LppYkgPiBtaXp1a2lraW5cIDsKK+a1t+S4iuazlSA+IGthaWpvdWhvdVwgOwor54ax5Y+v5aGRID4gbmV0c3VrYXNvXCA7CivljJblrablk4EgPiBrYWdha3VoaW5cIDsKK+WtkOayouWxsSA+IGtvZGFrdXNhblwgOwor5L2Z5rC05ZCQID4geW9zdWloYWtpXCA7CivmmKjlubTluqYgPiBzYWt1bmVuZG9cIDsKK+iHqueEtuaVsCA+IHNoaXplbnN1dVwgOwor5YaN6KiC54mIID4gc2FpdGVpYmFuXCA7CivpnZLlubTkvJogPiBzZWluZW5rYWlcIDsKK+ePvuWcsOS6uiA+IGdlbmNoaWppblwgOwor5biC6KGX5oimID4gc2hpZ2Fpc2VuXCA7Civmh5DnlpHlv4MgPiBrYWlnaXNoaW5cIDsKK+acneaXpeW9sSA+IGFzYWhpa2FnZVwgOwor6KqY5bCO5by+ID4geXV1ZG91ZGFuXCA7Civosqnlo7LntrIgPiBoYW5iYWltb3VcIDsKK+WFq+eZvuS4hyA+IHlhb3lvcm96dVwgOwor6LKn5LmP5Lq6ID4gYmluYm91bmluXCA7Civlt6XkuovkuK0gPiBrb3VqaWNodXVcIDsKK+eqg+ebl+e9qiA+IHNldHRvdXphaVwgOwor5Y6f6KOB5YikID4gZ2Vuc2FpYmFuXCA7CivngrnngavolqwgPiB0ZW5rYXlha3VcIDsKK+a1t+S4iuaoqSA+IGthaWpvdWtlblwgOwor5YyW5a2m5YmkID4ga2FnYWt1emFpXCA7Civnsr7oo73ms5UgPiBzZWlzZWlob3VcIDsKK+aWueecvOe0mSA+IGhvdWdhbnNoaVwgOwor5Y+X6LOe6ICFID4ganVzaG91c2hhXCA7CivmjqjolqbogIUgPiBzdWlzZW5zaGFcIDsKK+mbquaooeanmCA+IHl1a2ltb3lvdVwgOwor5LiA57Sa5ZOBID4gaWtreXV1aGluXCA7CivmoLzlrZDngrkgPiBrb3VzaGl0ZW5cIDsKK+izvOiyt+iAhSA+IGtvdWJhaXNoYVwgOwor5LiA562J6LOeID4gaXR0b3VzaG91XCA7Civku5blm73kurogPiB0YWtva3VqaW5cIDsKK+epuuawl+a1tCA+IGt1dWtpeW9rdVwgOwor5aSW5Lqk5ZujID4gZ2Fpa291ZGFuXCA7Civln7fooYzpg6ggPiBzaGlra291YnVcIDsKK+eQhuelnuirliA+IHJpc2hpbnJvblwgOwor5Y+X6aiT5paZID4ganVrZW5yeW91XCA7Civli53miYvlhYMgPiBrYXR0ZW1vdG9cIDsKK+ebuOWvvuirliA+IHNvdXRhaXJvblwgOwor5YiK6KGM5LyaID4ga2Fua291a2FpXCA7CivljZHph5HlsZ4gPiBoaWtpbnpva3VcIDsKK+S/neiCsuaWmSA+IGhvaWt1cnlvdVwgOwor57eP6LOH55SjID4gc291c2hpc2FuXCA7CivkvY/msJHnqI4gPiBqdXVtaW56ZWlcIDsKK+Wcp+e4ruWZqCA+IGFzc2h1a3VraVwgOwor5L+457Wm5pelID4gaG91a3l1dWJpXCA7CivooYzmlL/lupwgPiBneW91c2VpZnVcIDsKK+WHpuWls+iGnCA+IHNob2pvbWFrdVwgOwor6ZqP5Ly06ICFID4genVpaGFuc2hhXCA7Civou4rmtbfogIEgPiBrdXJ1bWFlYmlcIDsKK+aCquWuo+S8nSA+IGFrdXNlbmRlblwgOwor5aSa6Z2i55qEID4gdGFtZW50ZWtpXCA7Civlr77miKbou4ogPiB0YWlzZW5zaGFcIDsKK+iLpuWKtOaApyA+IGt1cm91c2hvdVwgOwor5oGQ5aa75a62ID4ga3lvdXNhaWthXCA7CivkuLvlrrDogIUgPiBzaHVzYWlzaGFcIDsKK+WNium5ueawtCA+IGhhbmthbnN1aVwgOwor5a+G6Iiq6ICFID4gbWlra291c2hhXCA7CivkuIDnrYnopqogPiBpdHRvdXNoaW5cIDsKK+azqOmAo+e4hCA+IHNoaW1lbmF3YVwgOwor6KOc5by3562LID4gaG9reW91a2luXCA7CivnnIvmnb/lsYsgPiBrYW5iYW4nJ3lhXCA7CivnpL7lk6Hlr64gPiBzaGFpbnJ5b3VcIDsKK+WRvOWQuOazlSA+IGtva3l1dWhvdVwgOwor5L2T6YeP5ZmoID4gdGFpcnlvdWtpXCA7CivljJblrabkuIogPiBrYWdha3Vqb3VcIDsKK+S8veiXjemzpSA+IGdhcmFuY2hvdVwgOwor5b+D6IeT6YOoID4gc2hpbnpvdWJ1XCA7CivmnIDpq5jls7AgPiBzYWlrb3Vob3VcIDsKK+ertui8quWgtCA+IGtlaXJpbmpvdVwgOwor6YeN5ama6ICFID4ganV1a29uc2hhXCA7CivopoHmkoPmqZ8gPiB5b3VnZWtpa2lcIDsKK+awl+WMlueGsSA+IGtpa2FuZXRzdVwgOwor5pel5pWZ57WEID4gbmlra3lvdXNvXCA7CivkuInnrYnmmJ8gPiBzYW50b3VzZWlcIDsKK+WRveWQjeazlSA+IG1laW1laWhvdVwgOwor5Y+C5Yqg5Zu9ID4gc2Fua2Frb2t1XCA7CivmnKrplovmi5MgPiBtaWthaXRha3VcIDsKK+WGjee3qOaIkCA+IHNhaWhlbnNlaVwgOwor6YCP5rC05oCnID4gdG91c3Vpc2VpXCA7Civlj43lr77oq5YgPiBoYW50YWlyb25cIDsKK+WtpuiKuOWToSA+IGdha3VnZWlpblwgOwor5Ya35YeN6a2aID4gcmVpdG91Z3lvXCA7CivmlZfmrovlhbUgPiBoYWl6YW5oZWlcIDsKK+abuOeUn+irliA+IHNob3NlaXJvblwgOwor5b+X5pyb6ICFID4gc2hpYm91c2hhXCA7CivosqHmlL/pm6MgPiB6YWlzZWluYW5cIDsKK+WItueZjOWJpCA+IHNlaWdhbnphaVwgOwor55m65rOh5YmkID4gaGFwcG91emFpXCA7CivkvJ3lpYfnmoQgPiBkZW5raXRla2lcIDsKK+e1huWJteiGjyA+IGJhbnNvdWtvdVwgOwor5L+d5a2Y5paZID4gaG96b25yeW91XCA7Civnn7PngbDlsqkgPiBzZWtrYWlnYW5cIDsKK+WFteWtpuagoSA+IGhlaWdha2tvdVwgOwor5a+M5bGx55yMID4gdG95YW1ha2VuXCA7Civov5Hku6Plj7IgPiBraW5kYWlzaGlcIDsKK+ipsuW9k+iAhSA+IGdhaXRvdXNoYVwgOwor54K55pWw5Yi2ID4gdGVuc3V1c2VpXCA7Civpq5jnn6XnnIwgPiBrb3VjaGlrZW5cIDsKK+WPo+S4iuabuCA+IGtvdWpvdXNob1wgOwor6Kej5pS+5oSfID4ga2FpaG91a2FuXCA7CivlubPlkoznmoQgPiBoZWl3YXRla2lcIDsKK+iHqumWieeXhyA+IGppaGVpc2hvdVwgOwor6aOy55So5rC0ID4gaW4nJ3lvdXN1aVwgOwor5aSq6Zm95YWJID4gdGFpeW91a291XCA7CivmqYvpoK3kv50gPiBreW91dG91aG9cIDsKK+WPpOabuOW4giA+IGtvc2hvaWNoaVwgOwor5aSp54S25aGpID4gdGVuJyduZW5lblwgOwor5YWs5a6z572qID4ga291Z2FpemFpXCA7Civmt6vlo7Llrr8gPiBpbmJhaXlhZG9cIDsKK+i1t+iri+aWhyA+IGtpc2hvdW1vblwgOwor56KB55uk57ieID4gZ29iYW5qaW1hXCA7Civkv5fkuJbplpMgPiB6b2t1c2VrZW5cIDsKK+eUmOe0jeixhiA+IGFtYW5hdHRvdVwgOwor5Lm+6YWq57SgID4ga2FucmFrdXNvXCA7Civlhrbph5HlraYgPiB5YWtpbmdha3VcIDsKK+WGl+mVt+W6piA+IGpvdWNob3Vkb1wgOwor56eB5a626ZuGID4gc2hpa2FzaHV1XCA7CivluILooZflnLAgPiBzaGlnYWljaGlcIDsKK+WPr+iqreaApyA+IGthZG9rdXNlaVwgOwor5piO56S655qEID4gbWVpaml0ZWtpXCA7CivlpKflm57ou6IgPiBkYWlrYWl0ZW5cIDsKK+WRieacjeW6lyA+IGdvZnVrdXRlblwgOwor5Lit6I+v5Li8ID4gY2h1dWthZG9uXCA7CivlpKfopb/mtIsgPiB0YWlzZWl5b3VcIDsKK+eQhuaDs+eahCA+IHJpc291dGVraVwgOwor5aa75biv6ICFID4gc2FpdGFpc2hhXCA7Civlhavlrp3oj5wgPiBoYXBwb3VzYWlcIDsKK+WPjOi5hOeNuCA+IHNvdXRlaWp1dVwgOwor5Zu95YWo5ZyfID4ga29rdXplbmRvXCA7CivkuozpgLLms5UgPiBuaXNoaW5ob3VcIDsKK+e+veW4g+WboyA+IGhhbmVidXRvblwgOwor6Ieq54S25aKXID4gc2hpemVuem91XCA7CivmmYLku6PliocgPiBqaWRhaWdla2lcIDsKK+a3t+aIkOmFkiA+IGtvbnNlaXNodVwgOwor5YWs5YCN5pWwID4ga291YmFpc3V1XCA7Civlh6bmlrnnrosgPiBzaG9ob3VzZW5cIDsKK+eZjOe0sOiDniA+IGdhbnNhaWJvdVwgOwor57Sv5rib56iOID4gcnVpZ2VuemVpXCA7CivmiYDkvZzkuosgPiBzaG9zYWdvdG9cIDsKK+eEoemZkOWwjyA+IG11Z2Vuc2hvdVwgOwor56qD55uX54qvID4gc2V0dG91aGFuXCA7Civku5XmiYvmoKogPiBzaGl0ZWthYnVcIDsKK+WPo+S4i+aJiyA+IGt1Y2hpYmV0YVwgOwor6YeR5puc5pelID4ga2luJyd5b3ViaVwgOwor5L2O5rC05rqWID4gdGVpc3VpanVuXCA7Civoo73kvZzmiYAgPiBzZWlzYWt1am9cIDsKK+S8neWjsOeuoSA+IGRlbnNlaWthblwgOwor6Zmw5q2m6ICFID4ga2FnZW11c2hhXCA7Civph4/lrZDljJYgPiByeW91c2hpa2FcIDsKK+WlveS4gOWvviA+IGtvdWl0dHN1aVwgOwor5LqL5YuZ5bGAID4gamltdWt5b2t1XCA7Civlia/pvLvohZQgPiBmdWt1YmlrdXVcIDsKK+a1quiyu+eZliA+IHJvdWhpaGVraVwgOwor57Wm6LK755SfID4ga3l1dWhpc2VpXCA7CivnnIzkurrkvJogPiBrZW5qaW5rYWlcIDsKK+S4u+S7u+iAhSA+IHNodW5pbnNoYVwgOwor5YWs55So5paHID4ga291eW91YnVuXCA7CivooYzmlL/ljLogPiBneW91c2Vpa3VcIDsKK+aOqOiWpueKtiA+IHN1aXNlbmpvdVwgOwor5Lit6Led6ZuiID4gY2h1dWt5b3JpXCA7CivlhbHnlKPljJYgPiBreW91c2Fua2FcIDsKK+S8muacn+S4rSA+IGthaWtpY2h1dVwgOwor6YeO55CD5aC0ID4geWFreXV1am91XCA7CivplpHlj6Tps6UgPiBrYW5rb2RvcmlcIDsKK+eUo+ikpeacnyA+IHNhbmpva3VraVwgOwor5Li75bCO5qipID4gc2h1ZG91a2VuXCA7Civli5/ph5HnrrEgPiBib2tpbmJha29cIDsKK+ehrOWPo+iTiyA+IGtvdWtvdWdhaVwgOwor5Y+y6KiY5oqEID4gc2hpa2lzaG91XCA7CivlubTpvaLlsaQgPiBuZW5yZWlzb3VcIDsKK+mgremggumDqCA+IHRvdWNob3VidVwgOwor5pep5aC057GzID4gaGF5YWJhbWFpXCA7Civlj6Poqp7oqLMgPiBrb3Vnb3lha3VcIDsKK+ayueWcp+ioiCA+IHl1YXRzdWtlaVwgOwor5LqM5q+b5L2cID4gbmltb3VzYWt1XCA7CivmpJzns5boqIggPiBrZW50b3VrZWlcIDsKK+iqmOWwjuS9kyA+IHl1dWRvdXRhaVwgOwor55yf5Zub6KeSID4gbWFzaGlrYWt1XCA7CivnlLPlkb3oqJggPiBzaGlubWVpa2lcIDsKK+iEguiCquWxpCA+IHNoaWJvdXNvdVwgOwor54mp5ZOB56iOID4gYnVwcGluemVpXCA7Civps7Pnv4XpkJggPiBob3VzaGl0b3VcIDsKK+WxpOepjembsiA+IHNvdXNla2l1blwgOwor56eS5pmC6KiIID4gYnlvdWRva2VpXCA7Civnj4rnkZrnpIEgPiBzYW5nb3Nob3VcIDsKK+mAo+S9k+ipniA+IHJlbnRhaXNoaVwgOwor5bGB55CG5bGIID4gaGVyaWt1dHN1XCA7CivlkIzmg4XogIUgPiBkb3Vqb3VzaGFcIDsKK+W/l+mhmOiAhSA+IHNoaWdhbnNoYVwgOwor5rWq5Lq655SfID4gcm91bmluc2VpXCA7CivkuI3lj6/pgIYgPiBmdWthZ3lha3VcIDsKK+Wkp+mYquW4giA+IG9vc2FrYXNoaVwgOwor5oSb6Kqt5pu4ID4gYWlkb2t1c2hvXCA7Civlj6/loZHniakgPiBrYXNvYnV0c3VcIDsKK+aWsOmAoOiqniA+IHNoaW56b3Vnb1wgOwor5Y+N5a++6ICFID4gaGFudGFpc2hhXCA7Civpu5LnoILns5YgPiBrdXJvemF0b3VcIDsKK+eOhOexs+iMtiA+IGdlbm1haWNoYVwgOwor5ryU57m55rOVID4gZW4nJ2VraWhvdVwgOwor6Ieo5aC05oSfID4gcmluam91a2FuXCA7CivlgY/opb/poqggPiBoZW5zZWlmdXVcIDsKK+mmmeWRs+aWmSA+IGtvdW1pcnlvdVwgOwor5q2j55Sy5p2/ID4gc2Vpa2FucGFuXCA7Civlr6norbDkvJogPiBzaGluZ2lrYWlcIDsKK+mdkuajruecjCA+IGFvbW9yaWtlblwgOwor5LiN5oSf55eHID4gZnVrYW5zaG91XCA7CivnpoHooZvpmoogPiBraW4nJ2VpdGFpXCA7CivmlL7msLTou4ogPiBob3VzdWlzaGFcIDsKK+iAkOawtOaApyA+IHRhaXN1aXNlaVwgOwor546E6Zai55WqID4gZ2Vua2FuYmFuXCA7CivliY3lpJznpa0gPiB6ZW4nJ3lhc2FpXCA7CivmnIjmoYLlhqAgPiBnZWtrZWlrYW5cIDsKK+S6jOWIgOa1gSA+IG5pdG91cnl1dVwgOwor5omA5pyJ5qipID4gc2hveXV1a2VuXCA7Civlhrflh43ou4ogPiByZWl0b3VzaGFcIDsKK+adpeS8muiAhSA+IHJhaWthaXNoYVwgOwor5LiK562J5ZOBID4gam91dG91aGluXCA7CivojZLnmYLmsrsgPiBhcmFyeW91amlcIDsKK+alveims+irliA+IHJha2thbnJvblwgOwor5YC26IiO5a6XID4ga3VzaGFzaHV1XCA7CivnhKHoqIDliocgPiBtdWdvbmdla2lcIDsKK+WFpeiLkeWIuCA+IG55dXVlbmtlblwgOwor6IWx6Z6Y54KOID4ga2Vuc2hvdWVuXCA7Civpq5jlubTogIUgPiBrb3VuZW5zaGFcIDsKK+aOoua1t+eBryA+IHRhbmthaXRvdVwgOwor54Sh6KaP5b6LID4gbXVraXJpdHN1XCA7CivlvaLlrrnoqZ4gPiBrZWl5b3VzaGlcIDsKK+WyqembsumbgCA+IGl3YWhpYmFyaVwgOwor5b6S56u26LWwID4gdG9reW91c291XCA7CivkuI3miKbli50gPiBmdXNlbnNob3VcIDsKK+iHqueEtuS6uiA+IHNoaXplbmppblwgOwor5a625bqt55qEID4ga2F0ZWl0ZWtpXCA7Civpq5jmsJflnKcgPiBrb3VraWF0c3VcIDsKK+a7keeoveacrCA+IGtva2tlaWJvblwgOwor5aWz5a2Q5a+uID4gam9zaGlyeW91XCA7CivmlL/msrvnmoQgPiBzZWlqaXRla2lcIDsKK+S4iuetieWFtSA+IGpvdXRvdWhlaVwgOwor5Y6f56i/57SZID4gZ2Vua291c2hpXCA7CivoibLnnLzpj6EgPiBpcm9tZWdhbmVcIDsKK+alveitnOWPsCA+IGdha3VmdWRhaVwgOwor5Ya35rC05aGKID4gcmVpc3Vpa2FpXCA7Civkv53orbfoibIgPiBob2dvc2hva3VcIDsKK+iJsuWPjuW3riA+IGlyb3NodXVzYVwgOwor576O6KGT5a62ID4gYmlqdXRzdWthXCA7Civlho3oqZXkvqEgPiBzYWloeW91a2FcIDsKK+ertuS6iemmrCA+IGt5b3Vzb3ViYVwgOwor5rqW5YKZ5LitID4ganVuYmljaHV1XCA7CivlhYnlkIjmiJAgPiBrb3Vnb3VzZWlcIDsKK+aCquadoeS7tiA+IGFrdWpvdWtlblwgOwor5LiJ5oKq6LajID4gc2FuYWt1c2h1XCA7CivkuLvnlKPlnLAgPiBzaHVzYW5jaGlcIDsKK+iytOaWueOAhSA+IGFuYXRhZ2F0YVwgOwor5be756mN6ZuyID4ga2Vuc2VraXVuXCA7CivluIznoavphbggPiBraXJ5dXVzYW5cIDsKK+iEseepgOapnyA+IGRha2tva3VraVwgOwor6byO6KuH5LyaID4gdGVpZGFua2FpXCA7CivopIfmnKzkvY0gPiBmdWt1aG9uJydpXCA7Civkv5fotqPlkbMgPiB6b2t1c2h1bWlcIDsKK+e1guatouespiA+IHNodXVzaGlmdVwgOwor57K+6KO95ZOBID4gc2Vpc2VpaGluXCA7CivmhrLlhbXpmoogPiBrZW5wZWl0YWlcIDsKK+mFjeWBtuiAhSA+IGhhaWd1dXNoYVwgOwor5YWF5b2T6YeRID4ganV1dG91a2luXCA7CivmtojngavmoJMgPiBzaG91a2FzZW5cIDsKK+WvhOeVmeiAhSA+IGtpcnl1dXNoYVwgOwor54Gw56We5qW9ID4gaGFpa2FndXJhXCA7CivkuI3ph4/oposgPiBmdXJ5b3VrZW5cIDsKK+mHkeS4gOWwgSA+IGtpbicnaXBwdXVcIDsKK+W6iumBi+WLlSA+IHl1a2F1bmRvdVwgOwor5a+E55Sf6JmrID4ga2lzZWljaHV1XCA7CivkuInnrYnliIYgPiBzYW50b3VidW5cIDsKK+WWq+awtOe3miA+IGtpc3N1aXNlblwgOwor5oKq546J5YyWID4gYWt1ZGFtYWthXCA7CivotoXnsKHmmJMgPiBjaG91a2FuJydpXCA7CivmiK/kvZzogIUgPiBnZXNha3VzaGFcIDsKK+mdkueToueuqiA+IGFvYnlvdXRhblwgOwor5oKj6ICF5qeYID4ga2FuamFzYW1hXCA7CivkupTlr7jph5ggPiBnb3N1bmt1Z2lcIDsKK+S7rueZu+iomCA+IGthcml0b3VraVwgOwor5ZCI5ZCM6LuNID4gZ291ZG91Z3VuXCA7CivpnZ7nj77mpa0gPiBoaWdlbmd5b3VcIDsKK+WLpOWKtOiAhSA+IGtpbnJvdXNoYVwgOwor5Zu65a6a6ZW3ID4ga290ZWljaG91XCA7Civmrrroj4zliaQgPiBzYWtraW56YWlcIDsKK+a0i+acjeWxiyA+IHlvdWZ1a3V5YVwgOwor6LW354iG5YmkID4ga2liYWt1emFpXCA7CivooajnpLrnga8gPiBoeW91aml0b3VcIDsKK+S+v+WIqeW4syA+IGJlbnJpY2hvdVwgOwor5Y+W5p2Q54+tID4gc2h1emFpaGFuXCA7CivohILogqrkvZMgPiBzaGlib3V0YWlcIDsKK+mDteS+v+WxiyA+IHl1dWJpbicneWFcIDsKK+S4rei+nuWFuCA+IGNodXVqaXRlblwgOwor5rSX6Z2i5Y+wID4gc2VubWVuZGFpXCA7CivlhoXoo4/pm5sgPiBkYWlyaWJpbmFcIDsKK+WFqOS6jOmHjSA+IHplbicnbmlqdXVcIDsKK+a6tuino+aApyA+IHlvdWthaXNlaVwgOwor5pW05pWw6KuWID4gc2Vpc3V1cm9uXCA7CivmsJHnpL7lhZogPiBtaW5zaGF0b3VcIDsKK+S8geeUu+abuCA+IGtpa2FrdXNob1wgOwor55Sf5Zyw542EID4gaWtpamlnb2t1XCA7CivntJTnsbPphZIgPiBqdW5tYWlzaHVcIDsKK+WbnumBiumtmiA+IGthaXl1dWd5b1wgOwor54Sh6Zai5b+DID4gbXVrYW5zaGluXCA7Civlj4vkurrplpMgPiB5dXVqaW5rYW5cIDsKK+acieaWkOmWoyA+IHl1dWhpa2FrdVwgOwor6LKp5aOy5bqXID4gaGFuYmFpdGVuXCA7Civlv5fmnJvmoKEgPiBzaGlib3Vrb3VcIDsKK+Wliei/jumWgCA+IGhvdWdlaW1vblwgOwor6Z2i5Lya5Lq6ID4gbWVua2FpbmluXCA7CivkuIDnrofmnIggPiBpa2thZ2V0c3VcIDsKK+mAgeawtOeuoSA+IHNvdXN1aWthblwgOwor5Ya35YeN6Ii5ID4gcmVpdG91c2VuXCA7CivlubTphY3ogIUgPiBuZW5wYWlzaGFcIDsKK+aJi+aVsOaWmSA+IHRlc3V1cnlvdVwgOwor6Zui6a2C55eFID4gcmlrb25ieW91XCA7CivmsLTkuK3oirEgPiBzdWljaHV1a2FcIDsKK+WLleWQjeipniA+IGRvdW1laXNoaVwgOwor6buE6YeR6ImyID4ga29nYW5laXJvXCA7CivkuozlhYPnmoQgPiBuaWdlbnRla2lcIDsKK+e4nuagl+m8oCA+IHNoaW1hcmlzdVwgOwor5aiv5qW95aC0ID4gZ29yYWt1am91XCA7CivpgYropqflnLAgPiB5dXVyYW5jaGlcIDsKK+acrOWboOWdiiA+IGhvbicnaW5ib3VcIDsKK+WFseaghOWcjyA+IGt5b3VlaWtlblwgOwor55u45a++5q27ID4gYWl0YWlqaW5pXCA7Civlm73oh6rmhaIgPiBrdW5pamltYW5cIDsKK+mHjeWkp+imliA+IGp1dWRhaXNoaVwgOwor5LyB5qWt5YaFID4ga2lneW91bmFpXCA7CivlkIznqpPkvJogPiBkb3Vzb3VrYWlcIDsKK+azleiTruiNiSA+IGhvdXJlbnNvdVwgOwor5rW35aSW54mIID4ga2FpZ2FpYmFuXCA7CivmiYfnirblnLAgPiBzZW5qb3VjaGlcIDsKK+aJk+aSg+aIpiA+IGRhZ2VraXNlblwgOwor6YCP5YaZ57SZID4gdG91c2hhc2hpXCA7Civkurrmloflj7IgPiBqaW5idW5zaGlcIDsKK+aMh+WumuWIuCA+IHNoaXRlaWtlblwgOwor6aaZ5rC055O2ID4ga291c3VpYmluXCA7CivnhrHluK/nl4UgPiBuZXRhaWJ5b3VcIDsKK+S8neiomOeJqSA+IGRlbmtpbW9ub1wgOwor6KiI6YeP5ZmoID4ga2VpcnlvdWtpXCA7Civoo5zlhJ/ph5EgPiBob3Nob3VraW5cIDsKK+i7veeKr+e9qiA+IGtlaWhhbnphaVwgOwor6Zyw5by+6YqDID4gc2FuZGFuanV1XCA7CivlkIjmhrLmgKcgPiBnb3VrZW5zZWlcIDsKK+WcsOmOruelrSA+IGppY2hpbnNhaVwgOwor5Li75L2T5oCnID4gc2h1dGFpc2VpXCA7CivntKDnspLlrZAgPiBzb3J5dXVzaGlcIDsKK+Wlh+m6l+S6iyA+IGtpcmVpZ290b1wgOwor6J2/5Zyw542EID4gaGFlamlnb2t1XCA7CivlpKfngb3lrrMgPiBkYWlzYWlnYWlcIDsKK+alveWkqeWutiA+IHJha3V0ZW5rYVwgOwor55CG5oCn55qEID4gcmlzZWl0ZWtpXCA7CivpvJPnrJvpmoogPiBrb3Rla2l0YWlcIDsKK+WvkuaaluioiCA+IGthbmRhbmtlaVwgOwor6Iqx57KJ55eHID4ga2FmdW5zaG91XCA7CivkurrngrrnmoQgPiBqaW4nJ2l0ZWtpXCA7Civlj5fpoJjogIUgPiBqdXJ5b3VzaGFcIDsKK+S8geeUu+aApyA+IGtpa2FrdXNlaVwgOwor5YaF6ZyA5Z6LID4gbmFpanVnYXRhXCA7Civljp/miJDlsqkgPiBnZW5zZWlnYW5cIDsKK+ihqOekuuadvyA+IGh5b3VqaWJhblwgOwor5rC45LmF5q2vID4gZWlreXV1c2hpXCA7CivljYPnpL7mnK0gPiBzZW5qYWZ1ZGFcIDsKK+iPqeaPkOW/gyA+IGJvZGFpc2hpblwgOwor6KGo56S65pu4ID4gaHlvdWppc2hvXCA7Civnsr7nrpfmm7ggPiBzZWlzYW5zaG9cIDsKK+aUvuawtOeuoSA+IGhvdXN1aWthblwgOwor5Y+M5a2Q6JGJID4gc291c2hpeW91XCA7CivmgKfou6Lmj5sgPiBzZWl0ZW5rYW5cIDsKK+i8uOmAgemHjyA+IHl1c291cnlvdVwgOwor5omA5pyJ5ZywID4gc2hveXV1Y2hpXCA7CivpvJPmiYvplbcgPiBrb3NodWNob3VcIDsKK+e3j+acrOW6lyA+IHNvdWhvbnRlblwgOwor5YWD5rCX6ICFID4gZ2Vua2ltb25vXCA7Civku6PlvIHogIUgPiBkYWliZW5zaGFcIDsKK+eUuuWMu+iAhSA+IG1hY2hpaXNoYVwgOwor6KO95p2Q5omAID4gc2VpemFpc2hvXCA7Civlj43kubHou40gPiBoYW5yYW5ndW5cIDsKK+e3j+S6uuWPoyA+IHNvdWppbmtvdVwgOwor5bqX5LuV6IieID4gbWlzZWppbWFpXCA7CivkuK3kv53ogIUgPiBjaHV1aG9zaGFcIDsKK+eri+azleiAhSA+IHJpcHBvdXNoYVwgOwor6I2J55u45pKyID4ga3VzYXp1bW91XCA7CivkuojlgpnpjKggPiB5b2JpaWthcmlcIDsKK+atk+mAgeS8miA+IGthbnNvdWthaVwgOwor5Y+M57+F6aGeID4gc291c2hpcnVpXCA7CivntJnntLDlt6UgPiBrYW1pemFpa3VcIDsKK+WxseawtOiNmCA+IHNhbnN1aXNvdVwgOwor6KGo5rKZ5rGwID4gb21vdGV6YXRhXCA7CivllJDnjYXlrZAgPiBrYXJhamlzaGlcIDsKK+W5s+WSjOWbvSA+IGhlaXdha29rdVwgOwor5L2O5rCX5ZynID4gdGVpa2lhdHN1XCA7CivkvZzmpa3nlKggPiBzYWd5b3V5b3VcIDsKK+awtOWus+WcsCA+IHN1aWdhaWNoaVwgOwor57eP5pys5bGxID4gc291aG9uemFuXCA7CivmvJToqqzlrrYgPiBlbnpldHN1a2FcIDsKK+ebsuiFuOeCjiA+IG1vdWNob3VlblwgOwor56iA56Gr6YW4ID4ga2lyeXV1c2FuXCA7CivpgaPllJDkvb8gPiBrZW50b3VzaGlcIDsKK+S9nOalreePrSA+IHNhZ3lvdWhhblwgOwor5rS75oCn54KtID4ga2Fzc2VpdGFuXCA7CivmnIDlsI/ljJYgPiBzYWlzaG91a2FcIDsKK+S5l+mZjeWgtCA+IGpvdWtvdWpvdVwgOwor5L+X5LiW55WMID4gem9rdXNla2FpXCA7Civmr5vnuZTniakgPiBrZW9yaW1vbm9cIDsKK+W/l+mhmOabuCA+IHNoaWdhbnNob1wgOwor5LiN5q276bOlID4gZnVzaGljaG91XCA7CivmgrLoprPnmoQgPiBoaWthbnRla2lcIDsKK+aIkOWKn+iAhSA+IHNlaWtvdXNoYVwgOwor55yL6K235a2mID4ga2FuZ29nYWt1XCA7CivkuIrlkJHnt5ogPiBqb3Vrb3VzZW5cIDsKK+a2iOeCjuWJpCA+IHNob3VlbnphaVwgOwor5YWs5LyR5pelID4ga291a3l1dWJpXCA7Civnt4/nvbfmpa0gPiBzb3VoaWd5b3VcIDsKK+WGjeaKleizhyA+IHNhaXRvdXNoaVwgOwor5q2M5YqH5aC0ID4ga2FnZWtpam91XCA7CivmtYTmsLTloLQgPiBqb3VzdWlqb3VcIDsKK+awtOiAleazlSA+IHN1aWtvdWhvdVwgOwor5aSn5ryU57+SID4gZGFpZW5zaHV1XCA7Civlrp/muKzlm7MgPiBqaXNzb2t1enVcIDsKK+iGqOW8teW6piA+IGJvdWNob3Vkb1wgOwor5pig5YaZ5bmVID4gZWlzaGFtYWt1XCA7CivkuIrmsLTpgZMgPiBqb3VzdWlkb3VcIDsKK+WFqOS9j+awkSA+IHplbmp1dW1pblwgOwor5rWE5rC05ZywID4gam91c3VpY2hpXCA7CivnlLfmgKfnlKggPiBkYW5zZWl5b3VcIDsKK+WlveWlh+W/gyA+IGtvdWtpc2hpblwgOwor6IKJ5L2T576OID4gbmlrdXRhaWJpXCA7Civlm73lrrbnmoQgPiBrb2trYXRla2lcIDsKK+eKoOeJsueahCA+IGdpc2VpdGVraVwgOwor6YCj5a2Q56qTID4gcmVuamltYWRvXCA7Civnm7jlr77mgKcgPiBzb3V0YWlzZWlcIDsKK+mWouW/g+S6iyA+IGthbnNoaW5qaVwgOwor6JKy5Zuj55quID4gZnV0b25nYXdhXCA7CivljJfmlpfmmJ8gPiBob2t1dG9zZWlcIDsKK+acrOaLoOWcsCA+IGhvbmt5b2NoaVwgOwor6Iie6LiP55eFID4gYnV0b3VieW91XCA7CivlhoXlpJbkurogPiBuYWlnYWlqaW5cIDsKK+S4i+eoruWlsyA+IGdlc3VvbicnbmFcIDsKK+i1pOmbu+i7iiA+IGFrYWRlbnNoYVwgOwor57KY5p2/5bKpID4gbmVuYmFuZ2FuXCA7Civkuovmpa3ogIUgPiBqaWd5b3VzaGFcIDsKK+atk+i/juS8miA+IGthbmdlaWthaVwgOwor6KiX5YWQ5omAID4gdGFrdWppc2hvXCA7Civkv53oqLzph5EgPiBob3Nob3VraW5cIDsKK+eMqeOAhee3iyA+IHNob3Vqb3VoaVwgOwor5rC05pmC6KiIID4gbWl6dWRva2VpXCA7Civnm7LlsI7niqwgPiBtb3Vkb3VrZW5cIDsKK+iyqeWjsuS6uiA+IGhhbmJhaW5pblwgOwor5Lq65Zu96KiYID4gamlua29rdWtpXCA7Civmma7lj4rniYggPiBmdWt5dXViYW5cIDsKK+WNiumDqOaXjyA+IGhhbmJ1em9rdVwgOwor6aOb6YGT5YW3ID4gdG9iaWRvdWd1XCA7CivkurrplpPnlYwgPiBuaW5nZW5rYWlcIDsKK+S5s+avjei7iiA+IHViYWd1cnVtYVwgOwor5oOo5q275L2TID4gemFuc2hpdGFpXCA7CivpgYvmkKzkurogPiB1bnBhbicnbmluXCA7CivmipfnlJ/liaQgPiBrb3VzZWl6YWlcIDsKK+S4lui/t+iogCA+IHlvbWFpZ290b1wgOwor5Lyd6KiA5p2/ID4gZGVuZ29uYmFuXCA7Civoh6rnq4voqp4gPiBqaXJpdHN1Z29cIDsKK+eGseW4r+aelyA+IG5ldHRhaXJpblwgOwor5rC45LmF5oCnID4gZWlreXV1c2VpXCA7Civoo73mnKzlsYsgPiBzZWlob24nJ3lhXCA7Civmsb3ou4ros4MgPiBraXNoYWNoaW5cIDsKK+emgeijj+anmCA+IGtpbnJpc2FtYVwgOwor5oWj55So5Y+lID4ga2FuJyd5b3VrdVwgOwor6Kaz5YWJ5ZywID4ga2Fua291Y2hpXCA7CivkvJropovogIUgPiBrYWlrZW5zaGFcIDsKK+adseWkqee0hSA+IHRvdXRlbmtvdVwgOwor6Kaz5YWJ5ZujID4ga2Fua291ZGFuXCA7CivmioDlt6fnmoQgPiBnaWtvdXRla2lcIDsKK+alvemaoOWxhSA+IHJha3Vpbmt5b1wgOwor6auY6YCf5bqmID4ga291c29rdWRvXCA7Civnp4HnlJ/lrZAgPiBzaGlzZWlzaGlcIDsKK+aXpeiomOW4syA+IG5pa2tpY2hvdVwgOwor5pS/5rK75a2mID4gc2VpamlnYWt1XCA7CivmsLTnkIblraYgPiBzdWlyaWdha3VcIDsKK+avjeWtkOWvriA+IGJvc2hpcnlvdVwgOwor552A5b+D5ZywID4ga2lnb2tvY2hpXCA7CivmiJLljrPku6QgPiBrYWlnZW5yZWlcIDsKK+aKleS4jumHjyA+IHRvdXlvcnlvdVwgOwor5ZO65Lmz6aGeID4gaG9ueXV1cnVpXCA7CivlpKfonZnonaAgPiBvb2tvdW1vcmlcIDsKK+eEoeaKleelqCA+IG11dG91aHlvdVwgOwor5oyH5LqG5ZuzID4gc2hpcnlvdXp1XCA7Civpganlv5zmgKcgPiB0ZWtpb3VzZWlcIDsKK+WbnumAgei7iiA+IGthaXNvdXNoYVwgOwor5ryr5omN5birID4gbWFuemFpc2hpXCA7CivoirHngavluKsgPiBoYW5hYmlzaGlcIDsKK+S6i+alreeojiA+IGppZ3lvdXplaVwgOwor5Y+O5a655omAID4gc2h1dXlvdWpvXCA7Civlm73nkr3mm7ggPiBrb2t1amlzaG9cIDsKK+aEn+immuWZqCA+IGthbmtha3VraVwgOwor5pWZ6IKy6LK7ID4ga3lvdWlrdWhpXCA7Civlm7rlrprntaYgPiBrb3RlaWt5dXVcIDsKK+Wxleimp+S8miA+IHRlbnJhbmthaVwgOwor5Lqk5Luj5Yi2ID4ga291dGFpc2VpXCA7Civlt6HoppboiYcgPiBqdW5zaGl0ZWlcIDsKK+W3oeimluiIuSA+IGp1bnNoaXNlblwgOwor5rGO6Zai5pWwID4gaGFua2Fuc3V1XCA7CivlhajkurrnlJ8gPiB6ZW5qaW5zZWlcIDsKK+aWreW8t+W6piA+IGRhbmt5b3Vkb1wgOwor5Yem5aWz5L2cID4gc2hvam9zYWt1XCA7CivlgIvmgKfnmoQgPiBrb3NlaXRla2lcIDsKK+WFqOmfs+majiA+IHplbicnb25rYWlcIDsKK+WPjeS5seiAhSA+IGhhbnJhbnNoYVwgOwor6Lu96Z+z5qW9ID4ga2Vpb25nYWt1XCA7Civpkb/lsqnmqZ8gPiBzYWt1Z2Fua2lcIDsKK+WbnuW+qeacnyA+IGthaWZ1a3VraVwgOwor5LiN5ZCI5qC8ID4gZnVnb3VrYWt1XCA7Civlkajms6LoqIggPiBzaHV1aGFrZWlcIDsKK+S4jeWPr+asoCA+IGZ1a2FrZXRzdVwgOwor56Gs5YyW55eHID4ga291a2FzaG91XCA7CivpgIblirnmnpwgPiBneWFra291a2FcIDsKK+S4gOetieWbvSA+IGl0dG91a29rdVwgOwor5YWo5bCB5ZywID4gemVuaG91Y2hpXCA7CivliIbphY3ph5EgPiBidW5wYWlraW5cIDsKK+WbnumBiuiIuSA+IGthaXl1dXNlblwgOwor5YWs5Lya5aCCID4ga291a2FpZG91XCA7CivnhKHooajmg4UgPiBtdWh5b3Vqb3VcIDsKK+awtOmkg+WtkCA+IHN1aWd5b3V6YVwgOwor6aKo5Zyf55eFID4gZnV1ZG9ieW91XCA7CivpgIPpgb/nmoQgPiB0b3VoaXRla2lcIDsKK+WPpOaWh+WtpiA+IGtvYnVuZ2FrdVwgOwor5YSq562J55SfID4geXV1dG91c2VpXCA7Civlm7rlrprnpaggPiBrb3RlaWh5b3VcIDsKK+WvvuWQkei7iiA+IHRhaWtvdXNoYVwgOwor5LqL5qWt55WMID4gamlneW91a2FpXCA7CivmibnliKTnmoQgPiBoaWhhbnRla2lcIDsKK+WkqeWcsOS6uiA+IHRlbmNoaWppblwgOwor6KGA57Wx5pu4ID4ga2V0dG91c2hvXCA7CivkuK3kuozpmo4gPiBjaHV1bmlrYWlcIDsKK+WxseiRoeiQhCA+IHlhbWFidWRvdVwgOwor6buE6YGT6Z2iID4ga291ZG91bWVuXCA7Civlj5fpm6PpgLEgPiBqdW5hbnNodXVcIDsKK+WwiuWOs+atuyA+IHNvbmdlbnNoaVwgOwor6ICD5Y+k5a2mID4ga291a29nYWt1XCA7Civkv53pmbroqLwgPiBob2tlbnNob3VcIDsKK+mrmOWIhuWtkCA+IGtvdWJ1bnNoaVwgOwor5Yal5Yqg6YeRID4gbXlvdWdha2luXCA7CivlhoXlnLDnsbMgPiBuYWljaGltYWlcIDsKK+aer+iRieWJpCA+IGthcmVoYXphaVwgOwor5oub5b6F5pelID4gc2hvdXRhaWJpXCA7CivoqpPpoZjmqKkgPiBzZWlnYW5rZW5cIDsKK+aEm+WbveiAhSA+IGFpa29rdXNoYVwgOwor6Ki06aGY5Lq6ID4gc29nYW4nJ25pblwgOwor6aCY5LqL6aSoID4gcnlvdWppa2FuXCA7CivkuLvniq/ogIUgPiBzaHVoYW5zaGFcIDsKK+mYsuitt+WjgSA+IGJvdWdvaGVraVwgOwor6LOH6YeR5rqQID4gc2hpa2luZ2VuXCA7CivpvKDlkqznl4cgPiBzb2tvdXNob3VcIDsKK+S4iemHjeeblyA+IHNhbmp1dXRvdVwgOwor6YCj5L2T5b2iID4gcmVudGFpa2VpXCA7Civnj77mrrXpmo4gPiBnZW5kYW5rYWlcIDsKK+aIkOW5tOiAhSA+IHNlaW5lbnNoYVwgOwor6YeR6Kej56aBID4ga2lua2Fpa2luXCA7Civnvr3lrZDnqoEgPiBoYW5ldHN1a2lcIDsKK+a0l+a/r+eyiSA+IHNlbnRha3Vrb1wgOwor5YWJ5YyW5a2mID4ga291a2FnYWt1XCA7CivovrLlrabpg6ggPiBub3VnYWt1YnVcIDsKK+S4u+S7u+WItiA+IHNodW5pbnNlaVwgOwor6Iie6LiP5pyNID4gYnV0b3VmdWt1XCA7CivntYzpqJPoq5YgPiBrZWlrZW5yb25cIDsKK+e1jOmok+irhyA+IGtlaWtlbmRhblwgOwor5pOm6YGO5YK3ID4gc2Fra2FzaG91XCA7Civlho3oo73lk4EgPiBzYWlzZWloaW5cIDsKK+Wbm+mHjeWljyA+IHNoaWp1dXNvdVwgOwor55u45a++5YCkID4gc291dGFpY2hpXCA7Civmr43lrZDlhbEgPiBib3NoaXRvbW9cIDsKK+mJhOeBq+W3uyA+IHRla2thbWFraVwgOwor6Iux5L2c5paHID4gZWlzYWt1YnVuXCA7CivmiKbou4rlhbUgPiBzZW5zaGFoZWlcIDsKK+WGjeaKleeovyA+IHNhaXRvdWtvdVwgOwor5pWZ6aSK6YOoID4ga3lvdXlvdWJ1XCA7Civnq4vms5XmqKkgPiByaXBwb3VrZW5cIDsKK+WmpeWNlOeCuSA+IGRha3lvdXRlblwgOwor6Zuy5LuZ5bKzID4gdW56ZW5kYWtlXCA7Civlj5fpoJjmm7ggPiBqdXJ5b3VzaG9cIDsKK+S4jea0u+WMliA+IGZ1a2F0c3VrYVwgOwor5paH56ug6KqeID4gYnVuc2hvdWdvXCA7CivpnZLkv6Hlj7cgPiBhb3NoaW5nb3VcIDsKK+aZguioiOeavyA+IHRva2VpemFyYVwgOwor5bm95Yal55WMID4geXV1bWVpa2FpXCA7Civln7fooYzlkI8gPiBzaGlra291cmlcIDsKK+etiemrmOe3miA+IHRvdWtvdXNlblwgOwor57We6aaW5Y+wID4ga291c2h1ZGFpXCA7CivnoLTmk6bpn7MgPiBoYXNhdHN1b25cIDsKK+mAgeWPl+S/oSA+IHNvdWp1c2hpblwgOwor5LiA56We6KuWID4gaXNzaGlucm9uXCA7CivnnYDpgZPmpb0gPiBraWRvdXJha3VcIDsKK+aYjuW+jOW5tCA+IG15b3Vnb25lblwgOwor5rOV5YuZ55yBID4gaG91bXVzaG91XCA7CivphbXntKDlraYgPiBrb3Vzb2dha3VcIDsKK+a3t+WQiOmFkiA+IGtvbmdvdXNodVwgOwor5Zuz5YOP5a2mID4genV6b3VnYWt1XCA7CivlpYnliqDluLMgPiBob3VnYWNob3VcIDsKK+aEn+WYhuipniA+IGthbnRhbnNoaVwgOwor5YmN5aOy5Yi4ID4gbWFldXJpa2VuXCA7Civlv5fpoZjlhbUgPiBzaGlnYW5oZWlcIDsKK+WPjeWwhOWFiSA+IGhhbnNoYWtvdVwgOwor55qu57Sw5belID4ga2F3YXphaWt1XCA7CivlvqnmsLTlmaggPiBmdWt1c3Vpa2lcIDsKK+mWoumAo+aApyA+IGthbnJlbnNlaVwgOwor57Wx6Kqe5a2mID4gdG91Z29nYWt1XCA7CivmmbTnnLzogIUgPiBzZWlnYW5zaGFcIDsKK+ism+a8lOaWmSA+IGtvdWVucnlvdVwgOwor5pWs6ICB5LyaID4ga2Vpcm91a2FpXCA7CivmmYLplpPou7ggPiBqaWthbmppa3VcIDsKK+WPjeWvvuWFmiA+IGhhbnRhaXRvdVwgOwor5pCt5LmX6ICFID4gdG91am91c2hhXCA7CivnpL7msJHlhZogPiBzaGFtaW50b3VcIDsKK+e1nummluWIkSA+IGtvdXNodWtlaVwgOwor5Ym15bu66ICFID4gc291a2Vuc2hhXCA7CivmnIDlpKfpmZAgPiBzYWlkYWlnZW5cIDsKK+alk+WtkOmmmSA+IGZ1dXNoaWtvdVwgOwor5re35oiQ5bKpID4ga29uc2VpZ2FuXCA7CivntJnnspjlnJ8gPiBrYW1pbmVuZG9cIDsKK+adoeS7tuaWhyA+IGpvdWtlbmJ1blwgOwor5oSP6K2Y5L2TID4gaXNoaWtpdGFpXCA7Civnp4HkvIHmpa0gPiBzaGlraWd5b3VcIDsKK+epuuaooeanmCA+IHNvcmFtb3lvdVwgOwor5YWs5pyJ5p6XID4ga291eXV1cmluXCA7CivlsbHmsLTmpbwgPiBzYW5zdWlyb3VcIDsKK+WvhOeVmeWcsCA+IGtpcnl1dWNoaVwgOwor5pat5Ymb5oCnID4gZGFuZ291c2VpXCA7CivnqbrlhYPmsJcgPiBrYXJhZ2Vua2lcIDsKK+aJk+eul+eahCA+IGRhc2FudGVraVwgOwor6YCA6JS15ZOBID4gdGFpem91aGluXCA7CivlvbHpn7/lnI8gPiBlaWt5b3VrZW5cIDsKK+ecn+WWhOe+jiA+IHNoaW56ZW5iaVwgOwor5Luy5L+d6ICFID4gY2h1dWhvc2hhXCA7CivmiYvooZPooaMgPiBzaHVqdXRzdWlcIDsKK+S6uumWk+aEmyA+IG5pbmdlbicnYWlcIDsKK+eQhuefpeeahCA+IHJpY2hpdGVraVwgOwor55Cl54+A6ImyID4ga29oYWt1aXJvXCA7CivlvqHolK3mp5ggPiBva2FnZXNhbWFcIDsKK+avm+e0sOeuoSA+IG1vdXNhaWthblwgOwor55m96IOh6bq7ID4gc2hpcm9nb21hXCA7CivkuLvkurrlhawgPiBzaHVqaW5rb3VcIDsKK+S6uumWk+aApyA+IG5pbmdlbnNlaVwgOwor5Y2Y5a2U6aGeID4gdGFua291cnVpXCA7CivlkIzlirTogIUgPiBkb3Vyb3VzaGFcIDsKK+WNs+aZguaApyA+IHNva3VqaXNlaVwgOwor5Lmz5ZGR5YWQID4gY2hpbm9taWdvXCA7CivkuI3lvrPmvKIgPiBmdXRva3VrYW5cIDsKK+mBremBh+aIpiA+IHNvdWd1dXNlblwgOwor5Y+I5a625p2lID4gbWF0YWdlcmFpXCA7CivmraPmm7jms5UgPiBzZWlzaG9ob3VcIDsKK+eLrOiHquaApyA+IGRva3VqaXNlaVwgOwor5byB6LKh5aSpID4gYmVuemFpdGVuXCA7Civli6Tli5nlhYggPiBraW5tdXNha2lcIDsKK+aMgeS5heaIpiA+IGppa3l1dXNlblwgOwor6YeN6KaB6KaWID4ganV1eW91c2hpXCA7CivnqbrmooXpm6ggPiBrYXJhdHN1eXVcIDsKK+a3t+aIkOWboyA+IGtvbnNlaWRhblwgOwor54Gr5Y+j5aOBID4ga2Frb3VoZWtpXCA7CivmmYLplpPooaggPiBqaWthbmh5b3VcIDsKK+egguWIqemBkyA+IGphcmltaWNoaVwgOwor5Lya6KiI5a6YID4ga2Fpa2Vpa2FuXCA7Civos6Tmpa3lqaYgPiBzZW5neW91ZnVcIDsKK+e1jOmok+iAhSA+IGtlaWtlbnNoYVwgOwor6Z+T5Zu96KqeID4gaGFua29rdWdvXCA7CivmlZnmnZDosrsgPiBreW91emFpaGlcIDsKK+WLneWIqeiAhSA+IHNob3VyaXNoYVwgOwor5r2c5LyP5pyfID4gc2VucHVrdWtpXCA7CivlpKflm6PlhoYgPiBkYWlkYW4nJ2VuXCA7CivljYjliY3mp5ggPiBnb3plbnNhbWFcIDsKK+a1t+a9rumfsyA+IGthaWNob3VvblwgOwor5q2j54qv6ICFID4gc2VpaGFuc2hhXCA7Civlj6/lnKfmgKcgPiBrYWF0c3VzZWlcIDsKK+iIueWkp+W3pSA+IGZ1bmFkYWlrdVwgOwor5Zyf5Zyw5p+EID4gdG9jaGlnYXJhXCA7CivnmbvoiLfnpLwgPiB0b3VnZW5yZWlcIDsKK+aUv+W6nOetiyA+IHNlaWZ1c3VqaVwgOwor5rS75oCn5YmkID4ga2Fzc2VpemFpXCA7Civlj43kvZPliLYgPiBoYW50YWlzZWlcIDsKK+iXu+iPjOmhniA+IHNvdWtpbnJ1aVwgOwor5ruR55+z57KJID4ga2Fzc2VraWtvXCA7Civnt6nooZ3lmaggPiBrYW5zaG91a2lcIDsKK+mzqee+veiJsiA+IGhhdG9iYWlyb1wgOwor6aGV5b6u6Y+hID4ga2VuYmlreW91XCA7CivmuKzlrprlmaggPiBzb2t1dGVpa2lcIDsKK+WQjeW6l+ihlyA+IG1laXRlbmdhaVwgOwor5Yip5LyR6ImyID4gcmlreXV1aXJvXCA7Civlm73kuovniq8gPiBrb2t1amloYW5cIDsKK+a3t+aIkOWTgSA+IGtvbnNlaWhpblwgOwor5YiG6YWN6ICFID4gYnVucGFpc2hhXCA7CivljYrpgI/mmI4gPiBoYW50b3VtZWlcIDsKK+WIhuawtOe3miA+IGJ1bnN1aXNlblwgOwor6YGK5oiv55qEID4geXV1Z2l0ZWtpXCA7Civov5HoppbnnLwgPiBraW5zaGlnYW5cIDsKK+S4u+isgOiAhSA+IHNodWJvdXNoYVwgOwor5Lya6KiI5aOrID4ga2Fpa2Vpc2hpXCA7CivliJ3lubTlhbUgPiBzaG9uZW5oZWlcIDsKK+WQjOW5tOi8qSA+IGRvdW5lbnBhaVwgOwor54+N54Sh6aGeID4gY2hpbm11cnVpXCA7Civnrp3lj6Pku6QgPiBrYW5rb3VyZWlcIDsKK+WQiOazleaApyA+IGdvdWhvdXNlaVwgOwor57eP6aCY5LqLID4gc291cnlvdWppXCA7Civlt57mlL/lupwgPiBzaHV1c2VpZnVcIDsKK+WVhuWLmeWumCA+IHNob3VtdWthblwgOwor5b+c5o6l6ZaTID4gb3VzZXRzdW1hXCA7Civlj4LkvJrogIUgPiBzYW5rYWlzaGFcIDsKK+S6lOS6uue1hCA+IGdvbmluZ3VtaVwgOwor6buE5rC05pm2ID4ga2l6dWlzaG91XCA7CivlhoXoo4/mp5ggPiBkYWlyaXNhbWFcIDsKK+Wkp+ihhuWMliA+IHRhaXNodXVrYVwgOwor6YeN5aSn5oCnID4ganV1ZGFpc2VpXCA7CivlpJblm73oqp4gPiBnYWlrb2t1Z29cIDsKK+WLouWKm+WutiA+IHNlaXJ5b2trYVwgOwor5aOw5qW95a62ID4gc2VpZ2FrdWthXCA7Civoo73pnbTmpa0gPiBzZWlrYWd5b3VcIDsKK+eusemmrOi7iiA+IGhha29iYXNoYVwgOwor5a6u5YaF55yBID4ga3VuYWlzaG91XCA7Civkuovmpa3miYAgPiBqaWd5b3VzaG9cIDsKK+epv+WxseeUsiA+IHNlbnphbmtvdVwgOwor6Ieo5riv57eaID4gcmlua291c2VuXCA7CivllK/lkI3oq5YgPiB5dWltZWlyb25cIDsKK+aUuemAoOi7iiA+IGthaXpvdXNoYVwgOwor6buE6YeR5Zu9ID4gb3Vnb25rb2t1XCA7CivoiovnvornvrkgPiBpbW95b3VrYW5cIDsKK+abtOeUn+WTgSA+IGtvdXNlaWhpblwgOwor6IqL576K576uID4gaW1veW91a2FuXCA7CivluoPlsI/ot68gPiBoaXJva291amlcIDsKK+epuui/lOS6iyA+IHNvcmFoZW5qaVwgOwor6IWQ5qSN5ZyfID4gZnVzaG9rdWRvXCA7CivmrKHlloTnrZYgPiBqaXplbnNha3VcIDsKK+mBoOecvOmPoSA+IHRvb21lZ2FuZVwgOwor5Ym16YCg6ICFID4gc291em91c2hhXCA7CivkvJHpm7vml6UgPiBreXV1ZGVuYmlcIDsKK+adv+mWgOW6lyA+IGhhbm1vbnRlblwgOwor5bCO5YWl6YOoID4gZG91bnl1dWJ1XCA7CivnpoXllY/nrZQgPiB6ZW5tb25kb3VcIDsKK+ikh+aVsOWAiyA+IGZ1a3VzdXVrb1wgOwor55uy5a2m5qChID4gbW91Z2Fra291XCA7CivoqZ7oj6/pm4YgPiBzaGlrYXNodXVcIDsKK+eglOS/ruiqsiA+IGtlbnNodXVrYVwgOwor5by+5oCn5L2TID4gZGFuc2VpdGFpXCA7CivnjK7lkYjmnKwgPiBrZW50ZWlib25cIDsKK+WwvumVt+m2jyA+IG9uYWdhZG9yaVwgOwor5pS+6YCB57ayID4gaG91c291bW91XCA7CivpurvphZTolqwgPiBtYXN1aXlha3VcIDsKK+WNg+W5tOe0gCA+IHNlbicnbmVua2lcIDsKK+WDp+W4veW8gSA+IHNvdWJvdWJlblwgOwor5aSq6byT6IW5ID4gdGFpa29iYXJhXCA7CivliY3oo4XnoLIgPiB6ZW5zb3Vob3VcIDsKK+WIhumBo+maiiA+IGJ1bmtlbnRhaVwgOwor5ZC55aWP6ICFID4gc3Vpc291c2hhXCA7Civlpb3op5LlrrYgPiBrb3VrYWt1a2FcIDsKK+aCquWkqeWAmSA+IGFrdXRlbmtvdVwgOwor5o6o6YCy5qmfID4gc3Vpc2hpbmtpXCA7CivpiaTljYHlrZcgPiBrYWdpanV1amlcIDsKK+S5seawl+a1gSA+IHJhbmtpcnl1dVwgOwor5Ya35YeN5YmkID4gcmVpdG91emFpXCA7CivliJ3lr77pnaIgPiBzaG90YWltZW5cIDsKK+acquWPjui8iSA+IG1pc2h1dXNhaVwgOwor5Zec5aW95ZOBID4gc2hpa291aGluXCA7CivngavnoJXmtYEgPiBrYXNhaXJ5dXVcIDsKK+aCquWkqeS9vyA+IGFrdXRlbnNoaVwgOwor5by35YyW57GzID4ga3lvdWthbWFpXCA7CivmsLTpm7foiYcgPiBzdWlyYWl0ZWlcIDsKK+ims+alk+S8miA+IGthbnB1dWthaVwgOwor5L2T6aiT6KuHID4gdGFpa2VuZGFuXCA7CivnhKHmhJ/oppogPiBtdWthbmtha3VcIDsKK+e+pOmAn+W6piA+IGd1bnNva3Vkb1wgOwor6Zu757eP56CUID4gZGVuc291a2VuXCA7CivkuI3norrlrpogPiBmdWtha3V0ZWlcIDsKK+eZveeZvuWQiCA+IHNoaXJheXVyaVwgOwor6Iie6LiK5YqHID4gYnV5b3VnZWtpXCA7Civngavlj6PkuJggPiBrYWtvdWt5dXVcIDsKK+S4jeato+eiuiA+IGZ1c2Vpa2FrdVwgOwor6Zm95a2Q57eaID4geW91c2hpc2VuXCA7CivmmYLplpPntaYgPiBqaWthbmt5dXVcIDsKK+WIhuawtOeVjCA+IGJ1bnN1aWthaVwgOwor5Lmx5Y+N5bCEID4gcmFuaGFuc2hhXCA7Civop6PnrZTmrIQgPiBrYWl0b3VyYW5cIDsKK+mtmumbt+iJhyA+IGd5b3JhaXRlaVwgOwor5YWs5pyJ5ZywID4ga291eXV1Y2hpXCA7CivmrLrnnp7nmoQgPiBnaW1hbnRla2lcIDsKK+aYjueereW6piA+IG1laXJ5b3Vkb1wgOwor5Lya6KiI5L+CID4ga2Fpa2Vpa2VpXCA7CivovLjlhaXnqI4gPiB5dW55dXV6ZWlcIDsKK+S4jeW/g+W+lyA+IGZ1a29rb3JvZVwgOwor5LqM5qWt5ZywID4gbmlneW91Y2hpXCA7CivljZjlrZDoq5YgPiB0YW5zaGlyb25cIDsKK+iovOaLoOmHkSA+IHNob3Vrb2tpblwgOwor55Sf5ryU5aWPID4gbmFtYWVuc291XCA7Civlvq7liIblraYgPiBiaWJ1bmdha3VcIDsKK+WwguW+k+iAhSA+IHNlbmp1dXNoYVwgOwor5LuZ5Y+w5L6vID4gc2VuZGFpa291XCA7CivlhYTlvJ/mhJsgPiBreW91ZGFpYWlcIDsKK+S4h+iPr+mPoSA+IG1hbmdla3lvdVwgOwor56aB5ryB5pyfID4ga2lucnlvdWtpXCA7CivkurrplpPlg48gPiBuaW5nZW56b3VcIDsKK+WbnuW4sOeahCA+IGthaWtpdGVraVwgOwor5biC5rCR56iOID4gc2hpbWluemVpXCA7Civlr4zlo6vpoY0gPiBmdWppYml0YWlcIDsKK+WFiemAn+W6piA+IGtvdXNva3Vkb1wgOwor6ZaL56Wo5omAID4ga2FpaHlvdWpvXCA7CivkvZPogrLppKggPiB0YWlpa3VrYW5cIDsKK+Wkieiqv+azoiA+IGhlbmNob3VoYVwgOwor5ZCM55uf6LuNID4gZG91bWVpZ3VuXCA7CivlkYroqLTkurogPiBrb2t1c29uaW5cIDsKK+WtpuWjq+mZoiA+IGdha3VzaGlpblwgOwor5YCr55CG55qEID4gcmlucml0ZWtpXCA7CivngrnpvLvolqwgPiB0ZW5iaXlha3VcIDsKK+aKleabuOashCA+IHRvdXNob3JhblwgOwor6Ki06Kif5rOVID4gc29zaG91aG91XCA7Civlm5vljYrliIYgPiBzaGloYW5idW5cIDsKK+WQuOmfs+adkCA+IGt5dXVvbnphaVwgOwor5Yid5L2T6aiTID4gc2hvdGFpa2VuXCA7CivovLjlhaXnm6QgPiB5dW55dXViYW5cIDsKK+S4jeefpeeBqyA+IHNoaXJhbnVoaVwgOwor5Y2157Sw6IOeID4gcmFuc2FpYm91XCA7CivkuozmpbXljJYgPiBuaWt5b2t1a2FcIDsKK+WNl+S6rOmMoCA+IG5hbmtpbmpvdVwgOwor6bOp5pmC6KiIID4gaGF0b2Rva2VpXCA7Civlk7rkubPnk7YgPiBob255dXViaW5cIDsKK+ilv+a0i+miqCA+IHNlaXlvdWZ1dVwgOwor5pei6KO95pyNID4ga2lzZWlmdWt1XCA7Civph47lpJbliocgPiB5YWdhaWdla2lcIDsKK+aZrumBjeeahCA+IGZ1aGVudGVraVwgOwor5LqL5qWt5ZujID4gamlneW91ZGFuXCA7CivlsI/lvbnkurogPiBrb3lha3VuaW5cIDsKK+mzpeWqkuiKsSA+IGNob3ViYWlrYVwgOwor6Ieq5rK76aCYID4gamljaGlyeW91XCA7CivnoLTlo4rnmoQgPiBoYWthaXRla2lcIDsKK+eqruaOquWkpyA+IGt5dXVzb2RhaVwgOwor6YGU56Oo6Ii5ID4gZGFydW1hc2VuXCA7CivlhoXlnKjmgKcgPiBuYWl6YWlzZWlcIDsKK+Wwj+iNt+eJqSA+IGtvbmltb3RzdVwgOwor5pel57O75Lq6ID4gbmlra2VpamluXCA7Civnsr7npZ7np5EgPiBzZWlzaGlua2FcIDsKK+S4gOWQiOebriA+IGljaGlnb3VtZVwgOwor5L2P5bGF6LehID4ganV1a3lvYXRvXCA7Civlho3mipflvIEgPiBzYWlrb3ViZW5cIDsKK+i+suS9nOalrSA+IG5vdXNhZ3lvdVwgOwor6J6i5YWJ54eIID4ga2Vpa291dG91XCA7Civku5jlubTooaggPiBmdW5lbnB5b3VcIDsKK+ato+iqpOihqCA+IHNlaWdvaHlvdVwgOwor5Zub6Lyq6LuKID4geW9ucmluc2hhXCA7Civph5HnsbPns5YgPiBrb25wZWl0b3VcIDsKK+S4iemHjeWljyA+IHNhbmp1dXNvdVwgOwor5L+d6Ki85pu4ID4gaG9zaG91c2hvXCA7CivlkKblrprnmoQgPiBoaXRlaXRla2lcIDsKK+S4jemAo+e2miA+IGZ1cmVuem9rdVwgOwor5q2m5pat55qEID4gYnVkYW50ZWtpXCA7Civlh7rnqYLmnJ8gPiBzaHVzc3Vpa2lcIDsKK+S4iuWNiuacnyA+IGthbWloYW5raVwgOwor5Y2Y5a2Q6JGJID4gdGFuc2hpeW91XCA7Civlvq7liIbllYYgPiBiaWJ1bnNob3VcIDsKK+e+qeWFhOW8nyA+IGdpa3lvdWRhaVwgOwor6KSH57Sg5pWwID4gZnVrdXNvc3V1XCA7Civou6LmoKHnlJ8gPiB0ZW5rb3VzZWlcIDsKK+aYvOWknOW4ryA+IGNodXV5YW9iaVwgOwor5LqL5Lu26KGoID4gamlrZW5oeW91XCA7CivonqLlhYnnga8gPiBrZWlrb3V0b3VcIDsKK+W8t+ehrOa0viA+IGt5b3Vrb3VoYVwgOwor5o6S5rCX6YePID4gaGFpa2lyeW91XCA7CivlpbPmloflrZcgPiBvbicnbmFtb2ppXCA7CivnhKHmiYDlsZ4gPiBtdXNob3pva3VcIDsKK+WRqOazouaVsCA+IHNodXVoYXN1dVwgOwor54yb56a96aGeID4gbW91a2lucnVpXCA7CivnlJ/mhYvns7sgPiBzZWl0YWlrZWlcIDsKK+aVo+aWh+ipqSA+IHNhbmJ1bnNoaVwgOwor5qC95Z+556iuID4gc2FpYmFpc2h1XCA7Civljp/okZfogIUgPiBnZW5jaG9zaGFcIDsKK+mbu+ipseaWmSA+IGRlbndhcnlvdVwgOwor5oqA6IO96LOeID4gZ2lub3VzaG91XCA7Civmlpnph5HmiYAgPiByeW91a2luam9cIDsKK+aUr+mFjeiAhSA+IHNoaWhhaXNoYVwgOwor5rSX5r+v5bGLID4gc2VudGFrdXlhXCA7CivlgbTov5HogIUgPiBzb2traW5zaGFcIDsKK+Wun+ekvuS8miA+IGppc3NoYWthaVwgOwor5b6h6YCj57WhID4gZ29yZW5yYWt1XCA7Civpppnlt53nnIwgPiBrYWdhd2FrZW5cIDsKK+eCuea7tOWZqCA+IHRlbnRla2lraVwgOwor5LqI5a6a6KGoID4geW90ZWloeW91XCA7CivlvIHorbfmlpkgPiBiZW5nb3J5b3VcIDsKK+S4u+imgemnhSA+IHNodXlvdWVraVwgOwor5a++5b+c562WID4gdGFpb3VzYWt1XCA7CivovLjlhaXmuK8gPiB5dW55dXVrb3VcIDsKK+WQjOW/l+S8miA+IGRvdXNoaWthaVwgOwor6L+O5pKD5qmfID4gZ2VpZ2VraWtpXCA7CivkurrlnLDlkI0gPiBqaW5jaGltZWlcIDsKK+S/nemZuuaWmSA+IGhva2VucnlvdVwgOwor5aSn5ZKM6IqLID4geWFtYXRvaW1vXCA7Civpq5jlhKrlhYggPiBrb3V5dXVzZW5cIDsKK+aUvumAgeazlSA+IGhvdXNvdWhvdVwgOwor56S65Yqb5ZuzID4gamlyeW9rdXp1XCA7Civpm6rlpbPpg44gPiB5dWtpam9yb3VcIDsKK+mbtue0sOi+siA+IHJlaXNhaW5vdVwgOwor55yf5riF5rC0ID4gbWFzaGltaXp1XCA7CivliqnlpKrliIAgPiBzdWtlZGFjaGlcIDsKK+WFi+W3seW/gyA+IGtva2tpc2hpblwgOwor6Kit6KiI6ICFID4gc2Vra2Vpc2hhXCA7CivnhKHnpZ7oq5YgPiBtdXNoaW5yb25cIDsKK+acieiii+mhniA+IHl1dXRhaXJ1aVwgOwor5LiA5q666YKjID4gaXNzZXRzdW5hXCA7Civlv4PnkIbmiKYgPiBzaGlucmlzZW5cIDsKK+W+oeattOattCA+IG9yZWtpcmVraVwgOwor5LiN5bmz562JID4gZnVieW91ZG91XCA7CivliKnlsL/liaQgPiByaW55b3V6YWlcIDsKK+e1ueepjembsiA+IGtlbnNla2l1blwgOwor54mn5q2M55qEID4gYm9ra2F0ZWtpXCA7CivmvLjov5Hnt5ogPiB6ZW5raW5zZW5cIDsKK+WtkOWuieiynSA+IGtveWFzdWthaVwgOwor5peF5pel6KiYID4gdGFiaW5pa2tpXCA7Civlo7LkuIrph5EgPiB1cmlhZ2VraW5cIDsKK+WPl+e1puiAhSA+IGp1a3l1dXNoYVwgOwor5piO5bm05bqmID4gbXlvdW5lbmRvXCA7CivkuozmnproiIwgPiBuaW1haWppdGFcIDsKK+S4iemHjeWGoCA+IHNhbmp1dWthblwgOwor6KqY6Zu75a2QID4geXV1ZGVuc2hpXCA7CivplqLkv4LoqZ4gPiBrYW5rZWlzaGlcIDsKK+e0oemMmOW9oiA+IGJvdXN1aWtlaVwgOwor5aWJ5bmj5L2/ID4gaG91aGVpc2hpXCA7CivpnanntLDlt6UgPiBrYXdhemFpa3VcIDsKK+W4guawkeazlSA+IHNoaW1pbmhvdVwgOwor5pyA5pWs56S8ID4gc2Fpa2VpcmVpXCA7Civoi6blrabnlJ8gPiBrdWdha3VzZWlcIDsKK+W+l+aEj+WFiCA+IHRva3Vpc2FraVwgOwor6Zuo5LuV5bqmID4gYW1haml0YWt1XCA7Civlkajms6LluK8gPiBzaHV1aGF0YWlcIDsKK+euoeWItuWumCA+IGthbnNlaWthblwgOwor54eD5paZ6LK7ID4gbmVucnlvdWhpXCA7CivlubTovKnogIUgPiBuZW5wYWlzaGFcIDsKK+mHj+iomOWPtyA+IHJ5b3VraWdvdVwgOwor55m65YWJ5L2TID4gaGFra291dGFpXCA7CivljYrlhoblvaIgPiBoYW4nJ2Vua2VpXCA7CivlhobomavpoZ4gPiBlbmNodXVydWlcIDsKK+aHuOaDs+aWhyA+IGtlc291YnVtaVwgOwor5qSc5r2u5ZmoID4ga2VuY2hvdWtpXCA7Civlp4nlprnnt6ggPiBzaGltYWloZW5cIDsKK+ihgOezluWApCA+IGtldHRvdWNoaVwgOwor54Sh6YeN6YePID4gbXVqdXVyeW91XCA7Civpm7voqbHluLMgPiBkZW53YWNob3VcIDsKK+WNiOWJjeS4rSA+IGdvemVuY2h1dVwgOwor5Za25qWt5omAID4gZWlneW91c2hvXCA7CivnsbPluILloLQgPiBiZWlpY2hpYmFcIDsKK+S4jeWLleW/gyA+IGZ1ZG91c2hpblwgOwor5o6o6YCy5ZmoID4gc3Vpc2hpbmtpXCA7CivlsI/liKTlvaIgPiBrb2JhbmdhdGFcIDsKK+WbnumAgeW6lyA+IGthaXNvdXRlblwgOwor54Wn5piO5ZmoID4gc2hvdW1laWtpXCA7CivlvrnnlLLlvL4gPiB0ZWtrb3VkYW5cIDsKK+WuruWGheW6gSA+IGt1bmFpY2hvdVwgOwor5biC5rCR5qipID4gc2hpbWlua2VuXCA7CivljYPlubTmnJ8gPiBzZW4nJ25lbmtpXCA7CivljYroiLfnoLIgPiBoYW5nZW5ob3VcIDsKK+aoqeWogeetiyA+IGtlbicnaXN1amlcIDsKK+Wkiembu+aJgCA+IGhlbmRlbnNob1wgOwor6Zu76Kej5rayID4gZGVua2FpZWtpXCA7Civpm7LkuIrkurogPiB1bmpvdWJpdG9cIDsKK+S4gOWRqOW5tCA+IGlzc2h1dW5lblwgOwor566h5Yi25aGUID4ga2Fuc2VpdG91XCA7Civoj6/ljrPntYwgPiBrZWdvbmt5b3VcIDsKK+WvvuaDheWgsSA+IHRhaWpvdWhvdVwgOwor5qC85aSJ5YyWID4ga2FrdWhlbmthXCA7CivmlZnogrLlrrYgPiBreW91aWt1a2FcIDsKK+WuieaBr+mmmSA+IGFuc29rdWtvdVwgOwor55+z6bm45rC0ID4gc2Vra2Vuc3VpXCA7CivkuI3li4nlvLcgPiBmdWJlbmt5b3VcIDsKK+WhqeWMlueJqSA+IGVua2FidXRzdVwgOwor5Lih55So5qmfID4gcnlvdXlvdWtpXCA7CivlvZPkuJbpoqggPiB0b3VzZWlmdXVcIDsKK+agvOWkqeS6lSA+IGdvdXRlbmpvdVwgOwor5Lit6ICV5qmfID4gY2h1dWtvdWtpXCA7CivkuI3pganmoLwgPiBmdXRla2tha3VcIDsKK+mBoOW/g+WIhiA+IGVuc2hpbmJ1blwgOwor5pmu6YCa5rOVID4gZnV0c3V1aG91XCA7CivlqpLmn5PliaQgPiBiYWlzZW56YWlcIDsKK+egtOijgumfsyA+IGhhcmV0c3VvblwgOwor5Li76Kaz6KuWID4gc2h1a2Fucm9uXCA7CivkuoznlarkvZwgPiBuaWJhbnNha3VcIDsKK+eUn+WRvee3miA+IHNlaW1laXNlblwgOwor56m65a++56m6ID4ga3V1dGFpa3V1XCA7CivnjJvlkLnpm6ogPiBtb3VmdWJ1a2lcIDsKK+mrmOWwhOegsiA+IGtvdXNoYWhvdVwgOwor5LiA5q2p6YqAID4gaWNoaWJ1Z2luXCA7CivnpoHmvIHljLogPiBraW5yeW91a3VcIDsKK+WliOiJr+a8rCA+IG5hcmFkenVrZVwgOwor5b2i6LGh5YyWID4ga2Vpc2hvdWthXCA7CivlhoXlnLDkurogPiBuYWljaGlqaW5cIDsKK+efs+WNl+iKsSA+IHNoYWt1bmFnZVwgOwor5YKA5YSh5birID4ga2FpcmFpc2hpXCA7CivkuIDmranph5EgPiBpY2hpYnVraW5cIDsKK+eXqeaIkeaFoiA+IHlhc2VnYW1hblwgOwor5oKq5Zug57iBID4gYWt1aW4nJ25lblwgOwor5LiN55yg55eHID4gZnVtaW5zaG91XCA7Civpm7vop6Pmp70gPiBkZW5rYWlzb3VcIDsKK+azleiPr+WulyA+IGhva2tlc2h1dVwgOwor5LiA556s6ZaTID4gaXNzaHVua2FuXCA7CivmraPkuInkvY0gPiBzaG91c2FubWlcIDsKK+W8vumBk+W8viA+IGRhbmRvdWRhblwgOwor5re35ZCI5p6XID4ga29uZ291cmluXCA7CivmsLTloqjnlLsgPiBzdWlib2t1Z2FcIDsKK+S6pOaYk+S8miA+IGtvdWVraWthaVwgOwor6auY5qWK5a2QID4gdGFrYXlvdWppXCA7CivmqKnlqIHnmoQgPiBrZW4nJ2l0ZWtpXCA7CivnpL7nlKjou4ogPiBzaGF5b3VzaGFcIDsKK+WIhuawtOW2uiA+IGJ1bnN1aXJlaVwgOwor5a2Q5L6b55SoID4ga29kb21veW91XCA7CivopqrlrZ3ooYwgPiBveWFrb3Vrb3VcIDsKK+eZuuWwhOetkiA+IGhhc3NoYXRvdVwgOwor5ou+5LiH5YaGID4ganV1bWFuJydlblwgOwor5Yuk55qH5a62ID4ga2luJydub3VrYVwgOwor5Lmz5YyW5YmkID4gbnl1dWthemFpXCA7Civov5HlnLDngrkgPiBraW5jaGl0ZW5cIDsKK+eEoeertuS6iSA+IG11a3lvdXNvdVwgOwor5Lqk6Zqb5rOVID4ga291c2FpaG91XCA7Civnp4HmnInlnLAgPiBzaGl5dXVjaGlcIDsKK+WPguS4juiAhSA+IHNhbicneW9zaGFcIDsKK+mjsuaWmeawtCA+IGlucnlvdXN1aVwgOwor56eL5pel5ZKMID4gYWtpYml5b3JpXCA7CivljLrlvbnmiYAgPiBrdXlha3VzaG9cIDsKK+eri+W/l+S8nSA+IHJpc3NoaWRlblwgOwor5aSp56ek5qOSID4gdGVuYmluYm91XCA7CivlpInoqr/lmaggPiBoZW5jaG91a2lcIDsKK+Wwj+WIpOWeiyA+IGtvYmFuZ2F0YVwgOwor6Zai5L+C6ICFID4ga2Fua2Vpc2hhXCA7CivlpKfmiJDlip8gPiBkYWlzZWlrb3VcIDsKK+S6jOS6uuensCA+IG5pbmluc2hvdVwgOwor5YG25YOP6KaWID4gZ3V1em91c2hpXCA7CivlgbbouYTpoZ4gPiBndXV0ZWlydWlcIDsKK+adpeioquiAhSA+IHJhaWhvdXNoYVwgOwor6aiS5Lmx572qID4gc291cmFuemFpXCA7CivlrozmiJDlk4EgPiBrYW5zZWloaW5cIDsKK+WJtemAoOaApyA+IHNvdXpvdXNlaVwgOwor5o6S5rC0566hID4gaGFpc3Vpa2FuXCA7Civlj4joq4vosqAgPiBtYXRhdWtlb2lcIDsKK+mHkemWo+WvuiA+IGtpbmtha3VqaVwgOwor6KqY6Zu75L2TID4geXV1ZGVudGFpXCA7CivljZfkuqznsbMgPiBuYW5raW5tYWlcIDsKK+eEoeelnue1jCA+IG11c2hpbmtlaVwgOwor6YqA5Lqk5o+bID4gZ2lua291a2FuXCA7CivkuI3lubLmuIkgPiBmdWthbnNob3VcIDsKK+ijveWhqealrSA+IHNlaWVuZ3lvdVwgOwor5pWZ5Lya5ZOhID4ga3lvdWthaWluXCA7CivmkK3kuZfliLggPiB0b3Vqb3VrZW5cIDsKK+mBjuehq+mFuCA+IGthcnl1dXNhblwgOwor6YGL5ZG955qEID4gdW5tZWl0ZWtpXCA7CivoprPmoZzkvJogPiBrYW4nJ291a2FpXCA7CivnhKHnpLzogIUgPiBidXJlaW1vbm9cIDsKK+ani+aWh+azlSA+IGtvdWJ1bnBvdVwgOwor5o6l6L+R5oimID4gc2Vra2luc2VuXCA7CivnhKHms5XogIUgPiBtdWhvdW1vbm9cIDsKK+S4jemBqeW9kyA+IGZ1dGVraXRvdVwgOwor54Sh5rC06Y2LID4gbXVzdWluYWJlXCA7CivmnIjntabml6UgPiBnZWtreXV1YmlcIDsKK+aWpeWAmemaiiA+IHNla2tvdXRhaVwgOwor5Ym15qWt6LK7ID4gc291Z3lvdWhpXCA7Civph43opoHmgKcgPiBqdXV5b3VzZWlcIDsKK+e3j+WjsuS4iiA+IHNvdXVyaWFnZVwgOwor5Y2B5YaG546JID4ganV1ZW5kYW1hXCA7CivlgKvnkIblraYgPiByaW5yaWdha3VcIDsKK+S4gOmAsemWkyA+IGlzc2h1dWthblwgOwor56S+5YaF5aCxID4gc2hhbmFpaG91XCA7CivkvY/lroXosrsgPiBqdXV0YWt1aGlcIDsKK+WxiOWcsOaApyA+IGt1dGNoaXNlaVwgOwor5Zu95pyJ5YyWID4ga29rdXl1dWthXCA7CivpgJrpoqjmqZ8gPiB0c3V1ZnV1a2lcIDsKK+WutuWxi+aVtyA+IGlleWFzaGlraVwgOwor5bGx5qSS6a2aID4gc2Fuc2hvdXVvXCA7Civlhazmlofmm7ggPiBrb3VidW5zaG9cIDsKK+axuuWumuirliA+IGtldHRlaXJvblwgOwor5L+d6Ki85Lq6ID4gaG9zaG91bmluXCA7Civmsr/mtbflt54gPiBlbmthaXNodXVcIDsKK+S4jemBk+W+syA+IGZ1ZG91dG9rdVwgOwor5L6/5LmX6ICFID4gYmluam91c2hhXCA7CivkuIDljYfnk7YgPiBpc3Nob3ViaW5cIDsKK+epuuiFueaZgiA+IGt1dWZ1a3VqaVwgOwor5YmN6KGb5oimID4gemVuJydlaXNlblwgOwor5oSf5oOF6KuWID4ga2Fuam91cm9uXCA7CivmlK/phY3mqKkgPiBzaGloYWlrZW5cIDsKK+Wbo+WtkOm8uyA+IGRhbmdvYmFuYVwgOwor5YWo6KuW54K5ID4gemVucm9udGVuXCA7CivpgZPljJbogIUgPiBkb3VrZW1vbm9cIDsKK+ilv+a0i+e0mSA+IHNlaXlvdXNoaVwgOwor5pu46KiY6ZW3ID4gc2hva2ljaG91XCA7Civlv4zoqIDokYkgPiBpbWlrb3RvYmFcIDsKK+mbo+S6i+alrSA+IG5hbmppZ3lvdVwgOwor5LuY5biv55qEID4gZnV0YWl0ZWtpXCA7Civpq5jpo5vou4ogPiB0YWthYmlzaGFcIDsKK+mbu+ipseS4rSA+IGRlbndhY2h1dVwgOwor6buE6YGT5bivID4ga291ZG91dGFpXCA7Civpq5jmoKHnlJ8gPiBrb3Vrb3VzZWlcIDsKK+iCuuawtOiFqyA+IGhhaXN1aXNodVwgOwor5ZWG55So6KqeID4gc2hvdXlvdWdvXCA7CivnlaXoqJjms5UgPiByeWFra2lob3VcIDsKK+iRoeiQhOajmiA+IGJ1ZG91ZGFuYVwgOwor5aWJ5YWs5Lq6ID4gaG91a291bmluXCA7Civku4/ms5Xlg6cgPiBidXBwb3Vzb3VcIDsKK+S9k+iCsuelrSA+IHRhaWlrdXNhaVwgOwor5pmu6YCa5by+ID4gZnV0c3V1ZGFuXCA7CivmiKbkuK3mtL4gPiBzZW5jaHV1aGFcIDsKK+mrmOWxseW4ryA+IGtvdXphbnRhaVwgOwor5oCn54qv572qID4gc2VpaGFuemFpXCA7CivmsJHoirjlk4EgPiBtaW5nZWloaW5cIDsKK+imquS8muekviA+IG95YWdhaXNoYVwgOwor5Y+C6LOA5bizID4gc2FuZ2FjaG91XCA7CivkuInovKrou4ogPiBzYW5yaW5zaGFcIDsKK+eUo+enkeWtpiA+IHNhbmthZ2FrdVwgOwor6LuK5YaF54GvID4gc2hhbmFpdG91XCA7CivljLvli5nlrqQgPiBpbXVzaGl0c3VcIDsKK+awuOe2muaApyA+IGVpem9rdXNlaVwgOwor5o6i5qSc6ZqKID4gdGFua2VudGFpXCA7Civlrp/li5nlrrYgPiBqaXRzdW11a2FcIDsKK+W/hemgiOagvCA+IGhpc3N1a2FrdVwgOwor5aSn5ZKM5q2MID4geWFtYXRvdXRhXCA7CivkuLjlpKrmnZAgPiBtYXJ1dGF6YWlcIDsKK+eglOS/ruaJgCA+IGtlbnNodXVqb1wgOwor5LiA5Yi56YKjID4gaXNzZXRzdW5hXCA7CivlhazmmI7lhZogPiBrb3VtZWl0b3VcIDsKK+e1teepuuiogCA+IGVzb3JhZ290b1wgOwor576F6Yed55ukID4gcmFzaGluYmFuXCA7Civlmajph4/kurogPiBraXJ5b3VqaW5cIDsKK+Wbvemam+iqniA+IGtva3VzYWlnb1wgOwor5Zub6L665b2iID4gc2hpaGVua2VpXCA7CivnmbrkvZznmoQgPiBob3NzYXRla2lcIDsKK+iBvuWtpuagoSA+IHJvdWdha2tvdVwgOwor5o6D5rW36ImHID4gc291a2FpdGVpXCA7Civlj4LogIPmm7ggPiBzYW5rb3VzaG9cIDsKK+WMlueyp+WTgSA+IGtlc2hvdWhpblwgOwor5Zyw5bmz6Z2iID4gY2hpaGVpbWVuXCA7CivkvY7og73ogIUgPiB0ZWlub3VzaGFcIDsKK+WFiOmok+irliA+IHNlbmtlbnJvblwgOwor6ZuG6Iux56S+ID4gc2h1dWVpc2hhXCA7CivnlKjmsLTmsaAgPiB5b3VzdWljaGlcIDsKK+WPl+mbo+WKhyA+IGp1bmFuZ2VraVwgOwor5YCJ5bqr5qWtID4gc291a29neW91XCA7CivljYPlha3mnKwgPiBzZW5yb3Bwb25cIDsKK+i8uOWFpeWTgSA+IHl1bnl1dWhpblwgOwor5YyW57Kn5Y+wID4ga2VzaG91ZGFpXCA7CivloanliqDmuJsgPiBzaGlva2FnZW5cIDsKK+ibjeWFieeHiCA+IGtlaWtvdXRvdVwgOwor5aiY5a2Q6LuNID4gam91c2hpZ3VuXCA7Civoh6rmsrvnnIEgPiBqaWNoaXNob3VcIDsKK+WwvumVt+eMvyA+IG9uYWdhemFydVwgOwor6K2m6Ziy5ZujID4ga2VpYm91ZGFuXCA7CivmraPop6PogIUgPiBzZWlrYWlzaGFcIDsKK+mZkOW6pumhjSA+IGdlbmRvZ2FrdVwgOwor5YaN5rSX56S8ID4gc2Fpc2VucmVpXCA7Civlp4nlprnmoKEgPiBzaGltYWlrb3VcIDsKK+agvOmXmOaKgCA+IGtha3V0b3VnaVwgOwor6Z2S5pil5pyfID4gc2Vpc2h1bmtpXCA7CivpgJ/oqJjpjLIgPiBzb2traXJva3VcIDsKK+WEquWLnemmrCA+IHl1dXNob3ViYVwgOwor5rCX5YCZ5a2mID4ga2lrb3VnYWt1XCA7Civnl4XpmaLoiLkgPiBieW91aW5zZW5cIDsKK+WbveaWh+enkSA+IGtva3VidW5rYVwgOwor5ouF5b2T6ICFID4gdGFudG91c2hhXCA7CivmnaXloLTogIUgPiByYWlqb3VzaGFcIDsKK+ibjeWFieeBryA+IGtlaWtvdXRvdVwgOwor5o6S5rC05rqdID4gaGFpc3Vpa291XCA7Civls7vkuIvliaQgPiBzaHVuZ2V6YWlcIDsKK+WkluWVhumDqCA+IGdhaXNob3VidVwgOwor5q2j5pa55b2iID4gc2VpaG91a2VpXCA7CivmnIjntYzluK8gPiBnZWtrZWl0YWlcIDsKK+inkuihjOeBryA+IGtha3VhbmRvblwgOwor6Kqy5b606YeRID4ga2FjaG91a2luXCA7CivkuqTmj5voiLkgPiBrb3VrYW5zZW5cIDsKK+S/neeuoeiovCA+IGhva2Fuc2hvdVwgOwor5re75Yqg54mpID4gdGVua2Ftb25vXCA7CivkuIDliIbpioAgPiBpY2hpYnVnaW5cIDsKK+adpeims+iAhSA+IHJhaWthbnNoYVwgOwor57a6576F5pifID4ga2lyYWJvc2hpXCA7CivlsbHlsrPpg6ggPiBzYW5nYWt1YnVcIDsKK+eZuuWxleaApyA+IGhhdHRlbnNlaVwgOwor5LiA5YiG6YeRID4gaWNoaWJ1a2luXCA7CivljZTlrprmoYggPiBreW91dGVpYW5cIDsKK+azqOWwhOWZqCA+IGNodXVzaGFraVwgOwor5Y+45rOV5qipID4gc2hpaG91a2VuXCA7CivmraPmlLvms5UgPiBzZWlrb3Vob3VcIDsKK+aJi+aLjeWtkCA+IHRlYnlvdXNoaVwgOwor56S+5Lya6Z2iID4gc2hha2FpbWVuXCA7CivosaHnmq7nl4UgPiB6b3VoaWJ5b3VcIDsKK+emgeWPjeiogCA+IGtpbmhhbmdlblwgOwor54Sh5Y+M56qTID4gbXVzb3VtYWRvXCA7CivmmYLplpPlibIgPiBqaWthbndhcmlcIDsKK+eUqOW/g+ajkiA+IHlvdWppbmJvdVwgOwor5YaN5oSf5p+TID4gc2Fpa2Fuc2VuXCA7Civmr5voo73lk4EgPiBtb3VzZWloaW5cIDsKK+WMlueyp+S7oyA+IGtlc2hvdWRhaVwgOwor5qC857SN5bqrID4ga2FrdW5vdWtvXCA7Civnt4/ntKLlvJUgPiBzb3VzYWt1aW5cIDsKK+S6iOWvqeW7tyA+IHlvc2hpbnRlaVwgOwor6Iy25bGL6YWSID4gY2hheWF6YWtlXCA7Civlm5vliIblhoYgPiBzaGlidW4nJ2VuXCA7CivkvZfkvY/lsYUgPiB3YWJpenVtYWlcIDsKK+eJh+aJi+ahtiA+IGthdGF0ZW9rZVwgOwor5Ym15YiK5Y+3ID4gc291a2FuZ291XCA7Civlm5vliIblha0gPiBzaGlidXJva3VcIDsKK+mYsua9nOe2siA+IGJvdXNlbm1vdVwgOwor5ZCN5Yi65YikID4gbWVpc2hpYmFuXCA7CivmsrPnq6Xlt7sgPiBrYXBwYW1ha2lcIDsKK+WQkeWFieaApyA+IGtvdWtvdXNlaVwgOwor5Yuy5LiA562JID4ga3VuJydpdHRvdVwgOwor5Y+N54mp5bGLID4gdGFubW9ub3lhXCA7CivkupLorbLnmoQgPiBnb2pvdXRla2lcIDsKK+S4lueVjOeahCA+IHNla2FpdGVraVwgOwor5b6h6L+35oORID4gZ29tZWl3YWt1XCA7CivkuInpg6jkvZwgPiBzYW5idXNha3VcIDsKK+ato+mdouWbsyA+IHNob3VtZW56dVwgOwor6KGo5YW35birID4gaHlvdWd1c2hpXCA7CivkuI3pganku7sgPiBmdXRla2luaW5cIDsKK+e1jOS8geW6gSA+IGtlaWtpY2hvdVwgOwor6YGL5YuV6aCYID4gdW5kb3VyeW91XCA7CivlhYjoiKzmnaUgPiBzZW5wYW5yYWlcIDsKK+WumuWGoOipniA+IHRlaWthbnNoaVwgOwor6buE6YGT5YWJID4ga291ZG91a291XCA7CivmjqXlsL7ovp4gPiBzZXRzdWJpamlcIDsKK+awtOeEoeaciCA+IG1pbmFkenVraVwgOwor6aeQ5Zyo5ZOhID4gY2h1dXphaWluXCA7CivovLjlsL/nrqEgPiB5dW55b3VrYW5cIDsKK+WbvemYsuiyuyA+IGtva3Vib3VoaVwgOwor5L6N5b6T6ZW3ID4gamlqdXVjaG91XCA7Civmrrrpoqjmma8gPiBzYXBwdXVrZWlcIDsKK+S4reaUr+mCoyA+IG5ha2FzaGluYVwgOwor6Kqk5oy/5YWlID4gZ29zb3VueXV1XCA7CivmraPmlZnmjoggPiBzZWlreW91anVcIDsKK+S8keeBq+WxsSA+IGt5dXVrYXphblwgOwor5a2Q5a6I5q2MID4ga29tb3JpdXRhXCA7CivmsbrlrprnqL8gPiBrZXR0ZWlrb3VcIDsKK+mYsueBq+WjgSA+IGJvdWthaGVraVwgOwor5Y+w5rm+5Lq6ID4gdGFpd2FuamluXCA7Civml6Xnq6Dml5cgPiBuaXNzaG91a2lcIDsKK+mDqOmaiumVtyA+IGJ1dGFpY2hvdVwgOwor5b6h55yf5b2xID4gZ29zaGluJydlaVwgOwor5Yed5Zu654K5ID4gZ3lvdWtvdGVuXCA7CivmlK/lupfntrIgPiBzaGl0ZW5tb3VcIDsKK+aVsOihqOekuiA+IHN1dWh5b3VqaVwgOwor6aKo5ZCR6KiIID4gZnV1a291a2VpXCA7Civom43lhYnmnb8gPiBrZWlrb3ViYW5cIDsKK+aWsOiBnuiIlyA+IHNoaW5idW5ob1wgOwor6KW/5Y2X6KW/ID4gc2VpbmFuc2VpXCA7Civpgb/pm7fph50gPiBoaXJhaXNoaW5cIDsKK+eNheWtkOiIniA+IHNoaXNoaW1haVwgOwor5Lu75pyf5LitID4gbmlua2ljaHV1XCA7CivmlrnpnaLpmoogPiBob3VtZW50YWlcIDsKK+miqOmItOiNiSA+IGZ1dXJpbnNvdVwgOwor6Iqx6YeO6I+cID4gaGFuYXlhc2FpXCA7Civmm7Lni6zmpb0gPiBreW9rdWdvbWFcIDsKK+ecn+WQkeazlSA+IG1ha2tvdWhvdVwgOwor5ZWG6Ii55peXID4gc2hvdXNlbmtpXCA7CivnoJTkv67lk6EgPiBrZW5zaHV1aW5cIDsKK+ipleWIpOiomCA+IGh5b3ViYW5raVwgOwor5pmu6YCa5L6/ID4gZnV0c3V1YmluXCA7Civlia/nn6XkuosgPiBmdWt1Y2hpamlcIDsKK+avjembhuWboyA+IGJvc2h1dWRhblwgOwor5LiJ5Yag546LID4gc2Fua2FuJydvdVwgOwor5oGL5oSb6KazID4gcmVuJydhaWthblwgOwor5L216KGM57eaID4gaGVpa291c2VuXCA7CivlnLDlvbnmqKkgPiBjaGlla2lrZW5cIDsKK+aZrumAmuS6uiA+IGZ1dHN1dWppblwgOwor5YWI5bCO6ICFID4gc2VuZG91c2hhXCA7Civlho3ljZTorbAgPiBzYWlreW91a2lcIDsKK+aKlemZjeiAhSA+IHRvdWtvdXNoYVwgOwor5Luj6LWt6ImyID4gdGFpc2hhaXJvXCA7CivmjqXlsL7oqp4gPiBzZXRzdWJpZ29cIDsKK+WKh+S9nOWutiA+IGdla2lzYWtrYVwgOwor6YeN5oim6LuKID4ganV1c2Vuc2hhXCA7Civpn7Pmpb3pmoogPiBvbmdha3V0YWlcIDsKK+WGjeemgeatoiA+IHNhaWtpbnNoaVwgOwor54e76JK45YmkID4ga3Vuam91emFpXCA7CivmtIvoo4HluKsgPiB5b3VzYWlzaGlcIDsKK+ecn+ato+mdoiA+IG1hc2hvdW1lblwgOwor5pyI57WM5YmNID4gZ2Vra2VpbWFlXCA7CivpgYvli5Xph48gPiB1bmRvdXJ5b3VcIDsKK+S9juWxseW4ryA+IHRlaXphbnRhaVwgOwor5Yqx5oyv5ZmoID4gcmVpc2hpbmtpXCA7Civoi7Hpm4TnmoQgPiBlaXl1dXRla2lcIDsKK+iomOiAheW4rSA+IGtpc2hhc2VraVwgOwor5YGl5bq36ICFID4ga2Vua291c2hhXCA7CivogqXmuoDnl4cgPiBoaW1hbnNob3VcIDsKK+acgOWkp+WApCA+IHNhaWRhaWNoaVwgOwor6KiI55S75qGIID4ga2Vpa2FrdWFuXCA7Civoj6/ljrPlrpcgPiBrZWdvbnNodXVcIDsKK+S4u+imgeeCuSA+IHNodXlvdXRlblwgOwor5Luu5L2P5bGFID4ga2FyaXp1bWFpXCA7CivkvJrlk6HoqLwgPiBrYWlpbnNob3VcIDsKK+eyvuiWhOWFkCA+IHNlaWhha3VqaVwgOwor5oy/5YWl5ZuzID4gc291bnl1dXp1XCA7CivkuIHlubTogIUgPiB0ZWluZW5zaGFcIDsKK+ebo+afu+W9uSA+IGthbnNheWFrdVwgOwor6JaE5YyW57KnID4gdXN1Z2VzaG91XCA7Civlh7rli6TnsL8gPiBzaHVra2luYm9cIDsKK+S4reWkrue3miA+IGNodXVvdXNlblwgOwor5bGl5q205pu4ID4gcmlyZWtpc2hvXCA7CivppIrll6PlrZAgPiB5b3VzaGlzaGlcIDsKK+Wkp+a1t+WOnyA+IG9vdW5hYmFyYVwgOwor5L2O5L6h5qC8ID4gdGVpa2FrYWt1XCA7CivkuqTpmpvkuIogPiBrb3VzYWlqb3VcIDsKK+WPguiAg+WTgSA+IHNhbmtvdWhpblwgOwor56We57WM56eRID4gc2hpbmtlaWthXCA7CivlsI/kvZzovrIgPiBrb3Nha3Vub3VcIDsKK+engeaWh+abuCA+IHNoaWJ1bnNob1wgOwor5rG65a6a54mIID4ga2V0dGVpYmFuXCA7Civlv4PkuI3lhaggPiBzaGluZnV6ZW5cIDsKK+S5s+W5vOWFkCA+IG55dXV5b3VqaVwgOwor6KaP5YmH5pu4ID4ga2lzb2t1c2hvXCA7CivliqDpmaTlvI8gPiBrYWpvc2hpa2lcIDsKK+WPuOazleWumCA+IHNoaWhvdWthblwgOwor56m65a++5ZywID4ga3V1dGFpY2hpXCA7CivmraPoppbnnLwgPiBzZWlzaGlnYW5cIDsKK+aXqeaFtuaIpiA+IHNvdWtlaXNlblwgOwor5o6Y5YmK5qmfID4ga3Vzc2FrdWtpXCA7CivmnKrnorrlrpogPiBtaWtha3V0ZWlcIDsKK+mrmOaetuapiyA+IGtvdWtha3lvdVwgOwor5YCL5Yil5YyWID4ga29iZXRzdWthXCA7CivmjL/lhaXlj6UgPiBzb3VueXV1a3VcIDsKK+aUv+aoqeWFmiA+IHNlaWtlbnRvdVwgOwor5bCE5Yip5b+DID4gc2hhcmlzaGluXCA7Civnm6Plr5/ljLsgPiBrYW5zYXRzdWlcIDsKK+mBk+WMluaWuSA+IGRvdWtlZ2F0YVwgOwor5Y2K5LqM6YeNID4gaGFuJyduaWp1dVwgOwor56aB5rK755SjID4ga2luY2hpc2FuXCA7CivljZjoqp7pm4YgPiB0YW5nb3NodXVcIDsKK+eUqOawtOWcsCA+IHlvdXN1aWlrZVwgOwor6LuK6auY55+tID4gc2hha291dGFuXCA7CivmtojljJbohbogPiBzaG91a2FzZW5cIDsKK+i/kea1t+mtmiA+IGtpbmthaWd5b1wgOwor5o6S5rC05a2UID4gaGFpc3Vpa291XCA7CivmnKjph5HlnJ8gPiBtb2t1a2luZG9cIDsKK+aMgee2muaApyA+IGppem9rdXNlaVwgOwor5ZCN5bel5aSnID4gbWVpa291ZGFpXCA7CivmlK/phY3kurogPiBzaGloYWluaW5cIDsKK+W5ueS6i+mVtyA+IGthbmppY2hvdVwgOwor6ZW35rC06LevID4gY2hvdXN1aXJvXCA7CivlubPlhZrlk6EgPiBoaXJhdG91aW5cIDsKK+W+queSsOe3miA+IGp1bmthbnNlblwgOwor5LiL5YmL5LiKID4gZ2Vrb2t1am91XCA7CivkuIrlsaTpoqggPiBqb3Vzb3VmdXVcIDsKK+Wcp+W7tumLvCA+IGF0c3VlbmtvdVwgOwor6I+g6JaQ6I2JID4gaG91cmVuc291XCA7CivmupbmlZnlk6EgPiBqdW5reW91aW5cIDsKK+WHueecvOmPoSA+IG91Z2Fua3lvdVwgOwor54mp5L6h6auYID4gYnVra2FkYWthXCA7Civoqpjmi5DnvaogPiB5dXVrYWl6YWlcIDsKK+W+queSsOezuyA+IGp1bmthbmtlaVwgOwor5rS+55Sf55qEID4gaGFzZWl0ZWtpXCA7CivntKDlj43lv5wgPiBzb2hhbicnbm91XCA7CivlnKjpg7fogIUgPiB6YWlnb3VzaGFcIDsKK+WMl+a1t+mBkyA+IGhva2thaWRvdVwgOwor5p6X5qqO55eFID4gcmluZ29ieW91XCA7Civolqzkuovms5UgPiB5YWt1amlob3VcIDsKK+efreavm+eoriA+IHRhbm1vdXNodVwgOwor5qaC5b+16KuWID4gZ2FpbmVucm9uXCA7CivpgZPlvrPlrrYgPiBkb3V0b2t1a2FcIDsKK+WPguS4juWumCA+IHNhbicneW9rYW5cIDsKK+acgOe1guahiCA+IHNhaXNodXVhblwgOwor5LiW55WM5pawID4gc2VrYWlzaGluXCA7Civlj4LogIPkurogPiBzYW5rb3VuaW5cIDsKK+Wxi+WPsOmqqCA+IHlhdGFpYm9uZVwgOwor5aSn5q2T6L+OID4gZGFpa2FuZ2VpXCA7CivkuIrlsaTpmo4gPiBqb3Vzb3VrYWlcIDsKK+S4gOWIh+e1jCA+IGlzc2Fpa3lvdVwgOwor5YaN6YWN572uID4gc2FpaGFpY2hpXCA7CivogozopabooqIgPiBoYWRhanViYW5cIDsKK+WFreinkuW9oiA+IHJva2tha2tlaVwgOwor5paw55Sf5YWQID4gc2hpbnNlaWppXCA7CivlhYjkvY/ogIUgPiBzZW5qdXVzaGFcIDsKK+mGnOalreWppiA+IHNodWd5b3VmdVwgOwor6KOB5Yik5qipID4gc2FpYmFua2VuXCA7CivlpKfnpZ7lrq4gPiBkYWlqaW5ndXVcIDsKK+ato+aVmeWToSA+IHNlaWt5b3VpblwgOwor5oKq5oiv552AID4gaXRhenVyYWdpXCA7CivmmLzooYznga8gPiBoaXJ1YW5kb25cIDsKK+WcsOW5s+e3miA+IGNoaWhlaXNlblwgOwor6YWN6Zu757eaID4gaGFpZGVuc2VuXCA7Civnmb3poK3nv4EgPiBoYWt1dG91b3VcIDsKK+eZuuWwhOWPsCA+IGhhc3NoYWRhaVwgOwor5Li76Zmj5ZywID4gc2h1amluY2hpXCA7CivmhJ/mg7PmlocgPiBrYW5zb3VidW5cIDsKK+a2iOWMluezuyA+IHNob3VrYWtlaVwgOwor5Li76Kaz5oCnID4gc2h1a2Fuc2VpXCA7CivlpKfms5Xlu7cgPiBkYWlob3V0ZWlcIDsKK+acgOe1guaXpSA+IHNhaXNodXViaVwgOwor5rG65a6a5qipID4ga2V0dGVpa2VuXCA7CivlhY7lsI/lsYsgPiB1c2FnaWdveWFcIDsKK+WkmuelnuirliA+IHRhc2hpbnJvblwgOwor5b6M5Y2K55SfID4ga291aGFuc2VpXCA7CivlopfoqILniYggPiB6b3V0ZWliYW5cIDsKK+aJgOWcqOWcsCA+IHNob3phaWNoaVwgOwor54G95a6z5ZywID4gc2FpZ2FpY2hpXCA7CivmtojljJbnrqEgPiBzaG91a2FrYW5cIDsKK+W5tOS7o+mghiA+IG5lbmRhaWp1blwgOwor56We57WM54KOID4gc2hpbmtlaWVuXCA7CivlpYnku5XogIUgPiBob3VzaGlzaGFcIDsKK+WGjeWPl+a1uCA+IHNhaWp1c2hpblwgOwor5pON5qWt6LK7ID4gc291Z3lvdWhpXCA7CivkuozkurrliY0gPiBmdXRhcmltYWVcIDsKK+WvjOWjq+WjuiA+IGZ1aml0c3Vib1wgOwor55m+6LKo5bqXID4gaHlha2thdGVuXCA7CivmqKrmlq3luZUgPiBvdWRhbm1ha3VcIDsKK+S6jOS6uuWIhiA+IGZ1dGFyaWJ1blwgOwor57SN56iO6ICFID4gbm91emVpc2hhXCA7CivphbjmgKfntJkgPiBzYW5zZWlzaGlcIDsKK+W3puWPs+i7uCA+IHNheXV1amlrdVwgOwor5aSp5rC05qG2ID4gdGVuc3Vpb2tlXCA7CivlhazplovnirYgPiBrb3VrYWlqb3VcIDsKK+iytOmHkeWxniA+IGtpa2luem9rdVwgOwor5rOi576F6JycID4gaGFyYW1pdHN1XCA7Civni6nnjJ/mnJ8gPiBzaHVyeW91a2lcIDsKK+aWh+azleabuCA+IGJ1bnBvdXNob1wgOwor5Y2g6aCY5LiLID4gc2VucnlvdWthXCA7Civnh4PnhLzngokgPiBuZW5zaG91cm9cIDsKK+WPpOethuWutiA+IGtvaGl0c3VrYVwgOwor6Ziy6KGb5bqBID4gYm91ZWljaG91XCA7CivlpKfnpa3lj7ggPiBkYWlzYWlzaGlcIDsKK+mbm+e9jOeynyA+IGhpbmFnZXNoaVwgOwor5YWo5aSp5YCZID4gemVudGVua291XCA7CivotoXnn63ms6IgPiBjaG91dGFucGFcIDsKK+aUvuWwhOiDvSA+IGhvdXNoYW5vdVwgOwor5YmN56eR6ICFID4gemVua2Ftb25vXCA7Civplbfph47nnIwgPiBuYWdhbm9rZW5cIDsKK+mdkuWkp+WwhiA+IGFvZGFpc2hvdVwgOwor55+l5oG154axID4gY2hpZW5ldHN1XCA7CivljIXoo4XntJkgPiBob3Vzb3VzaGlcIDsKK+S8muWToeeroCA+IGthaWluc2hvdVwgOwor57Gz55Sj5ZywID4gYmVpc2FuY2hpXCA7Civlhavop5LlvaIgPiBoYWtrYWtrZWlcIDsKK+S6lOWkp+a0siA+IGdvZGFpc2h1dVwgOwor5paw5a2m5pyfID4gc2hpbmdha2tpXCA7CivphY3pm7vnm6QgPiBoYWlkZW5iYW5cIDsKK+iLseaWh+WtpiA+IGVpYnVuZ2FrdVwgOwor5a2Q5a6I5ZSEID4ga29tb3JpdXRhXCA7CivlvqHlhYTlvJ8gPiBnb2t5b3VkYWlcIDsKK+ijgeWIpOaJgCA+IHNhaWJhbnNob1wgOwor5Y+C6Zmi6YG4ID4gc2FuJydpbnNlblwgOwor6LuN5Lq66aKoID4gZ3VuamluZnV1XCA7CivnhKHlvpfngrkgPiBtdXRva3V0ZW5cIDsKK+irlueQhueahCA+IHJvbnJpdGVraVwgOwor5YqD5pyf55qEID4ga2Fra2l0ZWtpXCA7CivkuInnnIHloIIgPiBzYW5zZWlkb3VcIDsKK+iZmuW8seWFkCA+IGt5b2pha3VqaVwgOwor5b2T5LqL5Zu9ID4gdG91amlrb2t1XCA7Civoq5bkuonogIUgPiByb25zb3VzaGFcIDsKK+aUvuWwhOe3miA+IGhvdXNoYXNlblwgOwor5bSH5oud6ICFID4gc3V1aGFpc2hhXCA7CivlgaXlurfms5UgPiBrZW5rb3Vob3VcIDsKK+aAquaWh+abuCA+IGthaWJ1bnNob1wgOwor6YCu5o2V5q20ID4gdGFpaG9yZWtpXCA7CivnrYbpoK3ogIUgPiBoaXR0b3VzaGFcIDsKK+S5vueUn+WnnCA+IGthbnNob3VnYVwgOwor55Sf5q6L6ICFID4gc2VpemFuc2hhXCA7Civmt6HmsLTprZogPiB0YW5zdWlneW9cIDsKK+i0iOetlOWTgSA+IHpvdXRvdWhpblwgOwor5Lqk5o+b5omLID4ga291a2Fuc2h1XCA7Civom43lhYnkvZMgPiBrZWlrb3V0YWlcIDsKK+awt+eCueS4iyA+IGh5b3V0ZW5rYVwgOwor6KqY5ouQ54qvID4geXV1a2FpaGFuXCA7CivnhY7njonlrZAgPiBpcml0YW1hZ29cIDsKK+iIiOS/oeaJgCA+IGtvdXNoaW5qb1wgOwor55SY5ZGz5paZID4ga2FubWlyeW91XCA7CivoqabpqJPntJkgPiBzaGlrZW5zaGlcIDsKK+eGj+iSuOWJpCA+IGt1bmpvdXphaVwgOwor6IKJ6KWm6KKiID4gbmlrdWp1YmFuXCA7Civnm6PlrojkurogPiBrYW5zaHVuaW5cIDsKK+Wil+Wkp+WPtyA+IHpvdWRhaWdvdVwgOwor5ruR6LWw6LyqID4ga2Fzc291cmluXCA7Civlho3libXpgKAgPiBzYWlzb3V6b3VcIDsKK+ilv+a0i+WPsiA+IHNlaXlvdXNoaVwgOwor5oi457GN5rOVID4ga29zZWtpaG91XCA7CivojZLnianlsYsgPiBhcmFtb25veWFcIDsKK+S4reilv+mDqCA+IGNodXVzZWlidVwgOwor6Ieq5YuV55qEID4gamlkb3V0ZWtpXCA7CivlgJ/lrrbkurogPiBzaGFra2FuaW5cIDsKK+azleWtpumDqCA+IGhvdWdha3VidVwgOwor6LuN6LOH6YeRID4gZ3Vuc2hpa2luXCA7Civmlofms5XmgKcgPiBidW5wb3VzZWlcIDsKK+i+suWkq+eXhyA+IG5vdWZ1c2hvdVwgOwor5p2Q5paZ6LK7ID4gemFpcnlvdWhpXCA7CivlgqzmtpnpioMgPiBzYWlydWlqdXVcIDsKK+WkieaPm+WtkCA+IGhlbmthbnNoaVwgOwor5p2Q5pyo5bGLID4gemFpbW9rdXlhXCA7Civosqfnqq7ljJYgPiBoaW5reXV1a2FcIDsKK+aXqeWQiOeCuSA+IGhheWFnYXRlblwgOwor6IKl5rqA5oCnID4gaGltYW5zaG91XCA7Civou4rppqzos4MgPiBzaGFiYWNoaW5cIDsKK+ernOmojuWFtSA+IHJ5dXVraWhlaVwgOwor5Zyf5Y+w55+zID4gZG9kYWlpc2hpXCA7CivluLDntI3nmoQgPiBraW5vdXRla2lcIDsKK+ippumok+euoSA+IHNoaWtlbmthblwgOwor55S35a2Q6auYID4gZGFuc2hpa291XCA7CivlpKflj43lr74gPiBkYWloYW50YWlcIDsKK+mdnuWbveawkSA+IGhpa29rdW1pblwgOwor5bCP6LGG6bGSID4gYXp1a2ltYXN1XCA7CivojqLosYzosYYgPiBzYXlhZW5kb3VcIDsKK+S4oeabv+apnyA+IHJ5b3VnYWVraVwgOwor57a/54Gr6JasID4gbWVua2F5YWt1XCA7CivkurrmsJHou40gPiBqaW5taW5ndW5cIDsKK+asoOWLpOiAhSA+IGtla2tpbnNoYVwgOwor5bCP5L2c57GzID4ga29zYWt1bWFpXCA7Civms6Xmnb/lsqkgPiBkZWliYW5nYW5cIDsKK+aTrOmdqee0mSA+IGdpa2FrdXNoaVwgOwor6LK06YeN5ZOBID4ga2ljaG91aGluXCA7CivngavlsbHnpKsgPiBrYXphbnJla2lcIDsKK+mhlOWGmeecnyA+IGthb2phc2hpblwgOwor5YWx5ryU6ICFID4ga3lvdWVuc2hhXCA7CivmlZHorbfnj60gPiBreXV1Z29oYW5cIDsKK+WGjeW+queSsCA+IHNhaWp1bmthblwgOwor6I275rGf56+AID4gb2dpZWJ1c2hpXCA7Civpm4blhYnlmaggPiBzaHV1a291a2lcIDsKK+S4gOmDqOWIhiA+IGljaGlidWJ1blwgOwor6KOF55Sy6LuKID4gc291a291c2hhXCA7CivmlrDkuJbntIAgPiBzaGluc2Vpa2lcIDsKK+ijgeWIpOWumCA+IHNhaWJhbmthblwgOwor5Ye65Yuk5pelID4gc2h1a2tpbmJpXCA7CivpgIHkv6HmqZ8gPiBzb3VzaGlua2lcIDsKK+mbkeWxheWcsCA+IHpha2t5b2NoaVwgOwor6Iux5pWw5Zu9ID4gZWlzdXVrb2t1XCA7Civkv53nrqHmlpkgPiBob2thbnJ5b3VcIDsKK+WNiuiytOefsyA+IGhhbmtpc2VraVwgOwor6LuN55So5qmfID4gZ3VuJyd5b3VraVwgOwor6JmO6JC956ybID4gbW9nYXJpYnVlXCA7CivnlJ/pgoTogIUgPiBzZWlrYW5zaGFcIDsKK+aHh+irh+S8miA+IGtvbmRhbmthaVwgOwor5pyq5YWs6KGoID4gbWlrb3VoeW91XCA7Civopb/mtIvkurogPiBzZWl5b3VqaW5cIDsKK+eUsOiIjuiAhSA+IGluYWthbW9ub1wgOwor5raI5YyW5rayID4gc2hvdWthZWtpXCA7CivlgaXlurfmlrkgPiBrZW5rb3Vob3VcIDsKK+eptOWxheS6uiA+IGtla2t5b2ppblwgOwor5aao5qWt5ZOhID4gYm91Z3lvdWluXCA7CivpoqjlkYLmlbcgPiBmdXJvc2hpa2lcIDsKK+S9leabnOaXpSA+IG5hbicneW91YmlcIDsKK+itpuaIkue3miA+IGtlaWthaXNlblwgOwor5Lqk5o+b5ayiID4ga291a2Fuam91XCA7CivlpKfpgZPoirggPiBkYWlkb3VnZWlcIDsKK+WBnOatoue3miA+IHRlaXNoaXNlblwgOwor5YuJ5by35a62ID4gYmVua3lvdWthXCA7CivmtarmvKvnmoQgPiByb21hbnRla2lcIDsKK+WLp+S4lue4kiA+IGthbnpleW9yaVwgOwor56u557Sw5belID4gdGFrZXphaWt1XCA7CivnlKPljbXlj6MgPiBzYW5yYW5rb3VcIDsKK+aEn+WLleipniA+IGthbmRvdXNoaVwgOwor5rC05Zyn5qmfID4gc3VpYXRzdWtpXCA7Civpn7Pmpb3npa0gPiBvbmdha3VzYWlcIDsKK+S6uuaDheacrCA+IG5pbmpvdWJvblwgOwor55qH6ZyK5q6/ID4ga291cmVpZGVuXCA7Civkvb/lkb3ogIUgPiBzaGltZWlzaGFcIDsKK+S7o+eUqOWTgSA+IGRhaXlvdWhpblwgOwor6JGJ6I+c6aGeID4geW91c2FpcnVpXCA7CivlhpnnnJ/mqZ8gPiBzaGFzaGlua2lcIDsKK+eUt+S8iumBlCA+IG90b2tvZGF0ZVwgOwor5YW156uZ57eaID4gaGVpdGFuc2VuXCA7CivluK/pm7vkvZMgPiB0YWlkZW50YWlcIDsKK+aWh+WMlueahCA+IGJ1bmthdGVraVwgOwor5pyq55m66KGoID4gbWloYXBweW91XCA7CivlhYjkvY/msJEgPiBzZW5qdXVtaW5cIDsKK+mAlOS4iuWbvSA+IHRvam91a29rdVwgOwor5Y2K6Z+z6ZqOID4gaGFuJydvbmthaVwgOwor55m95pyo5bGLID4gc2hpcm9raXlhXCA7Civku5Xmp5jmm7ggPiBzaGl5b3VzaG9cIDsKK+awkeS6i+eahCA+IG1pbmppdGVraVwgOwor5oiQ5bGk5ZyPID4gc2Vpc291a2VuXCA7CivokrjmsJflnKcgPiBqb3VraWF0c3VcIDsKK+S4oeabv+aJgCA+IHJ5b3VnYWVqb1wgOwor5b6M5Y2K5oimID4ga291aGFuc2VuXCA7Civlub3lr4LlkbMgPiB5dXVqYWt1bWlcIDsKK+W4neeOi+WtpiA+IHRlaW91Z2FrdVwgOwor6LKv5rC05rGgID4gY2hvc3VpY2hpXCA7CivmlrDkuJbnlYwgPiBzaGluc2VrYWlcIDsKK+WRveS7pOazlSA+IG1laXJlaWhvdVwgOwor54++5YOP5rayID4gZ2Vuem91ZWtpXCA7CivoprPopqfou4ogPiBrYW5yYW5zaGFcIDsKK+S8muekvuiRrCA+IGthaXNoYXNvdVwgOwor56aB6YWS5rOVID4ga2luc2h1aG91XCA7CivohLPohpzngo4gPiBub3VtYWt1ZW5cIDsKK+S6lOWkp+W3niA+IGdvZGFpc2h1dVwgOwor5paH6YOo55yBID4gbW9uYnVzaG91XCA7Civou43kuovpgJogPiBndW5qaXRzdXVcIDsKK+iEs+iFq+eYjSA+IG5vdXNodXlvdVwgOwor5LiW55WM5LiAID4gc2VrYWlpY2hpXCA7Civlho3liIbphY0gPiBzYWlidW5wYWlcIDsKK+aOm+W4g+WboyA+IGtha2VidXRvblwgOwor5aSW5rSL6Ii5ID4gZ2FpeW91c2VuXCA7CivntYTogbflm7MgPiBzb3Nob2t1enVcIDsKK+S6pOaPm+WTgSA+IGtvdWthbmhpblwgOwor54Gr6aOf6bOlID4gaGlrdWlkb3JpXCA7Civosq/msLTmp70gPiBjaG9zdWlzb3VcIDsKK+a1t+awtOmtmiA+IGthaXN1aWd5b1wgOwor57K+6YCy5pelID4gc2hvdWppbmJpXCA7CivkuInoibLml5cgPiBzYW5zaG9ra2lcIDsKK+mAg+S6oeiAhSA+IHRvdWJvdXNoYVwgOwor6YGT5YW3566xID4gZG91Z3ViYWtvXCA7Civlh7rlu7fml6UgPiBzaHV0dGVpYmlcIDsKK+eUu+Wtpue0mSA+IGdhZ2FrdXNoaVwgOwor6LKv6JS15omAID4gY2hvem91c2hvXCA7CivmnbHmtbfpgZMgPiB0b3VrYWlkb3VcIDsKK+S6pOaPm+WPsCA+IGtvdWthbmRhaVwgOwor5oim5pmC5LitID4gc2VuamljaHV1XCA7Civmt7fliIbmlbAgPiBrb25idW5zdXVcIDsKK+eUn+efs+eBsCA+IHNlaXNla2thaVwgOwor5LiN5qSc5p2fID4gZnVrZW5zb2t1XCA7CivlsI/mnb7oj5wgPiBrb21hdHN1bmFcIDsKK+iIn+Wkp+W3pSA+IGZ1bmFkYWlrdVwgOwor6LSI5ZGI6ICFID4gem91dGVpc2hhXCA7CivpoZ7mpoLlv7UgPiBydWlnYWluZW5cIDsKK+S7u+WkqeWggiA+IG5pbnRlbmRvdVwgOwor5Y2X5pa555SjID4gbmFucG91c2FuXCA7CivntZDntI3ph5EgPiB5dWlub3VraW5cIDsKK+WkquWIgOetiyA+IHRhY2hpc3VqaVwgOwor54af5a2X6KiTID4ganVrdWppa3VuXCA7Civlo7DmmI7mm7ggPiBzZWltZWlzaG9cIDsKK+WVj+mhjOeCuSA+IG1vbmRhaXRlblwgOwor5YiG5bel5aC0ID4gYnVua291am91XCA7CivlrprlubTliLYgPiB0ZWluZW5zZWlcIDsKK+WcsOWFg+e0mSA+IGppbW90b3NoaVwgOwor6aCQ6KiX6YeRID4geW90YWt1a2luXCA7CivpmLLnqbrnoLIgPiBib3VrdXVob3VcIDsKK+mdmeWcp+avlCA+IHNlaWF0c3VoaVwgOwor5Zue6aGn6YyyID4ga2Fpa29yb2t1XCA7CivkuKHmm7/lsYsgPiByeW91Z2FleWFcIDsKK+S6uuawl+iAhSA+IG5pbmtpbW9ub1wgOwor5LiN6Imv5ZOBID4gZnVyeW91aGluXCA7CivlsI/kvr/miYAgPiBzaG91YmVuam9cIDsKK+W+queSsOaApyA+IGp1bmthbnNlaVwgOwor5ZWG55So5YyWID4gc2hvdXlvdWthXCA7CivkuqTmj5vlhoYgPiBrb3VrYW4nJ2VuXCA7CivoqabpqJPms5UgPiBzaGlrZW5ob3VcIDsKK+WtpuWckuelrSA+IGdha3VlbnNhaVwgOwor5oSf5q2O6KmeID4ga2FudGFuc2hpXCA7CivnrKzlha3mhJ8gPiBkYWlyb2trYW5cIDsKK+iyp+awkeihlyA+IGhpbm1pbmdhaVwgOwor5ZG95Luk5pu4ID4gbWVpcmVpc2hvXCA7CivljYrlsI7kvZMgPiBoYW5kb3V0YWlcIDsKK+WFteWZqOW7oCA+IGhlaWtpc2hvdVwgOwor6KOB5Yik5LiKID4gc2FpYmFuam91XCA7Civlo7LmmKXlqaYgPiBiYWlzaHVucHVcIDsKK+S4i+WFi+S4iiA+IGdla29rdWpvdVwgOwor6YWN6Zu75omAID4gaGFpZGVuc2hvXCA7CivnpL7kuqTnlYwgPiBzaGFrb3VrYWlcIDsKK+WEquWLneaXlyA+IHl1dXNob3VraVwgOwor5omL5ZOB5birID4gdGVqaW5hc2hpXCA7Civpq4Tohpzngo4gPiB6dWltYWt1ZW5cIDsKK+mbqOaUr+W6piA+IGFtYWppdGFrdVwgOwor5L+u6YGT6ZmiID4gc2h1dWRvdWluXCA7Civmtbfom4fluqcgPiB1bWloZWJpemFcIDsKK+WRveS7pOaWhyA+IG1laXJlaWJ1blwgOwor5p2x5rSL6aKoID4gdG91eW91ZnV1XCA7CivlvJ/mga/lrZAgPiBvdG9tdXN1a29cIDsKK+S6lOWkp+WbvSA+IGdvZGFpa29rdVwgOwor5o6l6aqo5Yy7ID4gc2Vra290c3VpXCA7CivmnJvpgaDpj6EgPiBib3Vlbmt5b3VcIDsKK+aihembqOepuiA+IHRzdXl1em9yYVwgOwor5bel5ZOh5a+uID4ga291aW5yeW91XCA7CivnhKHpgYrnl4UgPiBtdXl1dWJ5b3VcIDsKK+Wbvemam+WMliA+IGtva3VzYWlrYVwgOwor6ama55Ww55qEID4ga3lvdWl0ZWtpXCA7CivplqLmnbHlvIEgPiBrYW50b3ViZW5cIDsKK+ikh+WQiOiqniA+IGZ1a3Vnb3Vnb1wgOwor5byY5riI5LyaID4ga291c2Fpa2FpXCA7Civoh7Pov5HlvL4gPiBzaGlraW5kYW5cIDsKK+acrOW5tOW6piA+IGhvbicnbmVuZG9cIDsKK+aVkeitt+aJgCA+IGt5dXVnb3Nob1wgOwor5ZGR5rCX6ICFID4gbm9ua2ltb25vXCA7CivlsI/kvZzmqKkgPiBrb3Nha3VrZW5cIDsKK+S7o+eQhuavjSA+IGRhaXJpaGFoYVwgOwor5YiG55WM57eaID4gYnVua2Fpc2VuXCA7Civnq6/looPmnJ8gPiBoYXpha2Fpa2lcIDsKK+WJjeOAheWbniA+IHplbnplbmthaVwgOwor6Kqe5rqQ5a2mID4gZ29nZW5nYWt1XCA7Civlv4Ppm7vlm7MgPiBzaGluZGVuenVcIDsKK+WBpeW6t+WcsCA+IGtlbmtvdWNoaVwgOwor5rCP5a2Q5pytID4gdWppa29mdWRhXCA7Civoq7jllY/poYwgPiBzaG9tb25kYWlcIDsKK+WPo+WUh+acnyA+IGtvdXNoaW5raVwgOwor5bCG5qOL55ukID4gc2hvdWdpYmFuXCA7CivnjYXlrZDllJAgPiBzaGlzaGl0b3VcIDsKK+W5s+S/oeW+kiA+IGhlaXNoaW50b1wgOwor5aSn5rCX5ZynID4gdGFpa2lhdHN1XCA7CivlsIbou43lrrYgPiBzaG91Z3Vua2VcIDsKK+WNg+S7o+e0mSA+IGNoaXlvZ2FtaVwgOwor5Li75oim6KuWID4gc2h1c2Vucm9uXCA7CivliqPnrYnnlJ8gPiByZXR0b3VzZWlcIDsKK+aWsOWtl+S9kyA+IHNoaW5qaXRhaVwgOwor57SN5ZOB5pu4ID4gbm91aGluc2hvXCA7CivnmoflpKrlrZAgPiBrb3V0YWlzaGlcIDsKK+mokuaTvue9qiA+IHNvdWpvdXphaVwgOwor5Y2K5a6Y5aCxID4gaGFua2FucG91XCA7CivlkIzkvLTogIUgPiBkb3VoYW5zaGFcIDsKK+a1t+m8oOadvyA+IG5hbWFrb2JhblwgOwor5YeG5aOr5a6YID4ganVuc2hpa2FuXCA7Civlrp/pqJPogIUgPiBqaWtrZW5zaGFcIDsKK+S7o+eQhualrSA+IGRhaXJpZ3lvdVwgOwor5LiA5qyh5YWDID4gaWNoaWppZ2VuXCA7CivnlKjnm4rmqKkgPiB5b3Vla2lrZW5cIDsKK+S4iuiFleetiyA+IGpvdXdhbmtpblwgOwor5Y+C5pS/5qipID4gc2Fuc2Vpa2VuXCA7Civlt6HnpLzogIUgPiBqdW5yZWlzaGFcIDsKK+Wun+mok+e+pCA+IGppa2tlbmd1blwgOwor56m65pmv5rCXID4ga2FyYWdlaWtpXCA7CivlhpnnnJ/lrrYgPiBzaGFzaGlua2FcIDsKK+i7iuakheWtkCA+IGt1cnVtYWlzdVwgOwor5o+u5q+r5paZID4ga2lnb3VyeW91XCA7CivorablkYrpn7MgPiBrZWlrb2t1b25cIDsKK+aVmeaOiOmZoyA+IGt5b3VqdWppblwgOwor5Yid5LiD5pelID4gc2hvbmFub2thXCA7Civlronlv4PmhJ8gPiBhbnNoaW5rYW5cIDsKK+Wkp+WFpemBkyA+IG9vbnl1dWRvdVwgOwor56S+5Lya5oKqID4gc2hha2FpYWt1XCA7CivkuLvoo73lk4EgPiBzaHVzZWloaW5cIDsKK+eEoeawl+WKmyA+IG11a2lyeW9rdVwgOwor56S+5Lya5oCnID4gc2hha2Fpc2VpXCA7CivohLHohILntr8gPiBkYXNzaGltZW5cIDsKK+awl+ixoeWPsCA+IGtpc2hvdWRhaVwgOwor5ZG95Luk5b2iID4gbWVpcmVpa2VpXCA7Civoq5bnkIblraYgPiByb25yaWdha3VcIDsKK+Wun+S9k+irliA+IGppdHRhaXJvblwgOwor5bCP5Lya5rS+ID4gc2hvdWthaWhhXCA7CivlkIzlgKTmgKcgPiBkb3VjaGlzZWlcIDsKK+mFuOaAp+WyqSA+IHNhbnNlaWdhblwgOwor5LiL6Laz55WqID4gZ2Vzb2t1YmFuXCA7CivmlqXlgJnlhbUgPiBzZWtrb3VoZWlcIDsKK+WlveW9semfvyA+IGtvdWVpa3lvdVwgOwor6YKv6YSy5birID4ga2FudGFuc2hpXCA7CivnlJ/ljJblraYgPiBzZWlrYWdha3VcIDsKK+ippuS5l+i7iiA+IHNoaWpvdXNoYVwgOwor6Kaz6Kan6ICFID4ga2FucmFuc2hhXCA7CivlpYnos4DluLMgPiBob3VnYWNob3VcIDsKK+Wcp+WItueahCA+IGFzc2VpdGVraVwgOwor54Kt6YW457SZID4gdGFuc2Fuc2hpXCA7Civlho3lvpPlvJ8gPiBzYWlqdXV0ZWlcIDsKK+S9meioiOiAhSA+IHlva2VpbW9ub1wgOwor5LiN5a+d55WqID4gZnVzaGluYmFuXCA7CivnkIblsYjlsYsgPiByaWt1dHN1eWFcIDsKK+S/neeuoeS6uiA+IGhva2FuJyduaW5cIDsKK+WEquiJr+mmrCA+IHl1dXJ5b3ViYVwgOwor6YGL6Ly46YePID4gdW4nJ3l1cnlvdVwgOwor5aSq5bmz5rSLID4gdGFpaGVpeW91XCA7Civosq/olLXlk4EgPiBjaG96b3VoaW5cIDsKK+WNmOezlumhniA+IHRhbnRvdXJ1aVwgOwor6IGa5qW956ysID4ganVyYWt1ZGFpXCA7CivnlJ/ljYrlj68gPiBuYW1haGFua2FcIDsKK+WNlOitsOaJgCA+IGt5b3VnaXNob1wgOwor5LuK5bm05bqmID4ga29uJyduZW5kb1wgOwor5YeG5pWZ5ZOhID4ganVua3lvdWluXCA7CivnpL7kvJrlsaQgPiBzaGFrYWlzb3VcIDsKK+WBpeW6t+S9kyA+IGtlbmtvdXRhaVwgOwor5oCd5pil5pyfID4gc2hpc2h1bmtpXCA7CivmlL7lsITmgKcgPiBob3VzaGFzZWlcIDsKK+iZq+WqkuiKsSA+IGNodXViYWlrYVwgOwor5YaZ55yf5ZmoID4gc2hhc2hpbmtpXCA7CivlhoXlkJHmgKcgPiBuYWlrb3VzZWlcIDsKK+aUueWul+iAhSA+IGthaXNvdXNoYVwgOwor5YSq5b6F5Yi4ID4geXV1dGFpa2VuXCA7Civlm5vkurrntYQgPiB5b25pbmd1bWlcIDsKK+mAgOWssOeahCA+IHRhaWVpdGVraVwgOwor5ZaE5b6M562WID4gemVuZ29zYWt1XCA7CivliqnmiYvluK0gPiBqb3NodXNla2lcIDsKK+eBq+acqOmHkSA+IGthbW9rdWtpblwgOwor5rCP5a2Q5bizID4gdWppa29jaG91XCA7CivnmoflpKrlkI4gPiBrb3V0YWlnb3VcIDsKK+eJueaUu+maiiA+IHRva2tvdXRhaVwgOwor6YG66KiA6ICFID4geXVpZ29uc2hhXCA7Civpg7flnJ/lj7IgPiBreW91ZG9zaGlcIDsKK+S7mOWxnuagoSA+IGZ1em9rdWtvdVwgOwor57Wx5rK76ICFID4gdG91Y2hpc2hhXCA7CivlkI3kurroirggPiBtZWlqaW5nZWlcIDsKK+WHhOaWh+WPpSA+IHN1Z29tb25rdVwgOwor5oim54G96ICFID4gc2Vuc2Fpc2hhXCA7CivoqabkvZzmqZ8gPiBzaGlzYWt1a2lcIDsKK+m7hOaer+iMtiA+IGtpZ2FyYWNoYVwgOwor6IOD6IW46JasID4gaWNob3V5YWt1XCA7Civpmb3pm7vlrZAgPiB5b3VkZW5zaGlcIDsKK+aWh+auiuanmCA+IG1vbmp1c2FtYVwgOwor5LuY5bGe5pu4ID4gZnV6b2t1c2hvXCA7CivoqI7oq5bogIUgPiB0b3Vyb25zaGFcIDsKK+Wkmuaxl+eXhyA+IHRha2Fuc2hvdVwgOwor5oqV5omL6ZmjID4gdG91c2h1amluXCA7CivkuK3ntpnmiYAgPiBjaHV1a2Vpam9cIDsKK+agueaLoOWcsCA+IGtvbmt5b2NoaVwgOwor5rOV5Lq656iOID4gaG91amluemVpXCA7CivlnLDlhYPmsJEgPiBqaW1vdG9taW5cIDsKK+W5tOacn+iAhSA+IG5lbmtpbW9ub1wgOwor6Z+z5qW95oCnID4gb25nYWt1c2VpXCA7CivooqvlkYrkurogPiBoaWtva3VuaW5cIDsKK+aWh+WMluW6gSA+IGJ1bmthY2hvdVwgOwor5YGP5ZCR5p2/ID4gaGVua291YmFuXCA7Civog4zku7vnvaogPiBoYWluaW56YWlcIDsKK+WCjeims+iAhSA+IGJvdWthbnNoYVwgOwor5pif54q25L2TID4gc2Vpam91dGFpXCA7CivmtojljJbliaQgPiBzaG91a2F6YWlcIDsKK+asp+W3nueJiCA+IG91c2h1dWJhblwgOwor5bCP6LGG57KlID4gYXp1a2lnYXl1XCA7Civns7vlm7PlraYgPiBrZWl6dWdha3VcIDsKK+ippumok+WumCA+IHNoaWtlbmthblwgOwor55+z5qWg6IqxID4gc2hha3VuYWdlXCA7Civmm7jnsKHnrosgPiBzaG9rYW5zZW5cIDsKK+WGjemFjeWIhiA+IHNhaWhhaWJ1blwgOwor5Y2U6K2w5a6YID4ga3lvdWdpa2FuXCA7CivlkIzpoZ7poIUgPiBkb3VydWlrb3VcIDsKK+iHqui7oui7uCA+IGppdGVuamlrdVwgOwor5LiK55Sy5p2/ID4gam91a2FucGFuXCA7CivlhajlnLDmlrkgPiB6ZW5jaGlob3VcIDsKK+S8muekvuazlSA+IGthaXNoYWhvdVwgOwor5aWJ5LuV5ZOBID4gaG91c2hpaGluXCA7CivmiKrmi7PpgZMgPiBzZWtrZW5kb3VcIDsKK+S7leiInuWxiyA+IHNoaW1vdGF5YVwgOwor5oqY6KG35qGIID4gc2V0Y2h1dWFuXCA7CivoiKrnqbrpmoogPiBrb3VrdXV0YWlcIDsKK+idpuifh+WPoyA+IGdhbWFndWNoaVwgOwor56aB5q2i5rOVID4ga2luc2hpaG91XCA7CivpgZPlhbfmlrkgPiBkb3VndWthdGFcIDsKK+aXpumCo+iKuCA+IGRhbicnbmFnZWlcIDsKK+aJtumkiuaWmSA+IGZ1eW91cnlvdVwgOwor5LiN5L+h5b+DID4gZnVzaGluamluXCA7CivlubPlronmnJ0gPiBoZWlhbmNob3VcIDsKK+WGhemHjuW4rSA+IG5haXlhc2VraVwgOwor5Zug5p6c5b6LID4gaW5nYXJpdHN1XCA7Civou73mvJTliocgPiBrZWllbmdla2lcIDsKK+adv+mHkeW3pSA+IGJhbmtpbmtvdVwgOwor5a6a5L6h6KGoID4gdGVpa2FoeW91XCA7Civnr6Tlv5flrrYgPiB0b2t1c2hpa2FcIDsKK+ippumok+WgtCA+IHNoaWtlbmpvdVwgOwor5peF6KGM6ICFID4gcnlva291c2hhXCA7Civmra/pvabngo4gPiBzaGlnaW4nJ2VuXCA7Civom7jlnYrkuLsgPiB0YWtvYm91enVcIDsKK+WPguaUv+WumCA+IHNhbnNlaWthblwgOwor6LuN5LqL55qEID4gZ3Vuaml0ZWtpXCA7Civlj6Tpiq3lraYgPiBrb3Nlbmdha3VcIDsKK+i7jeWumOaGsiA+IGd1bmthbmtlblwgOwor6Zai5pWw6KuWID4ga2Fuc3V1cm9uXCA7CivmsrvnmYLosrsgPiBjaGlyeW91aGlcIDsKK+adv+mHkeWxiyA+IGJhbmtpbicneWFcIDsKK+aTjei7iuWgtCA+IHNvdXNoYWpvdVwgOwor5oqV6J6N6LOHID4gdG91eXV1c2hpXCA7Civpnanlkb3mrYwgPiBrYWt1bWVpa2FcIDsKK+ekvuS6pOaApyA+IHNoYWtvdXNlaVwgOwor5pOs54iG5by+ID4gZ2liYWt1ZGFuXCA7Civnq7nonLvom4kgPiB0YWtldG9uYm9cIDsKK+i2heWFmua0viA+IGNob3V0b3VoYVwgOwor5ZWP6aGM5aSWID4gbW9uZGFpZ2FpXCA7CivkuIDoiKznmoQgPiBpcHBhbnRla2lcIDsKK+izh+acrOmHkSA+IHNoaWhvbmtpblwgOwor55S35a2Q55SoID4gZGFuc2hpeW91XCA7Civlr77nlJ/okYkgPiB0YWlzZWl5b3VcIDsKK+ekvuS8muWFmiA+IHNoYWthaXRvdVwgOwor5Y6t5LiW55qEID4gZW5zZWl0ZWtpXCA7CivoqJPnt7TnlJ8gPiBrdW5yZW5zZWlcIDsKK+i0iOWRiOacrCA+IHpvdXRlaWJvblwgOwor5aSi6YGK55eFID4gbXV5dXVieW91XCA7Civlrrbml4/ms5UgPiBrYXpva3Vob3VcIDsKK+S6uuawl+agqiA+IG5pbmtpa2FidVwgOwor6Kqt5b6M5oSfID4gZG9rdWdva2FuXCA7CivljZjntLDog54gPiB0YW5zYWlib3VcIDsKK+mztOemvemhniA+IG1laWtpbnJ1aVwgOwor5YaF6YOo55qEID4gbmFpYnV0ZWtpXCA7Civnt7TlhbXloLQgPiByZW5wZWlqb3VcIDsKK+Wkp+WJjeaPkCA+IGRhaXplbnRlaVwgOwor5YaN5b6T5YWEID4gc2FpanV1a2VpXCA7Civlj6/li5XmqYsgPiBrYWRvdWt5b3VcIDsKK+eUu+acn+eahCA+IGtha2tpdGVraVwgOwor6Z+z5qW95aCCID4gb25nYWt1ZG91XCA7CivojZLpmqDlhYMgPiBzYXlhaW5nZW5cIDsKK+a0l+ekvOWQjSA+IHNlbnJlaW1laVwgOwor54++5qWt5ZOhID4gZ2VuZ3lvdWluXCA7CivkuIDlt6XlpKsgPiBoaXRva3VmdXVcIDsKK+iGneWwj+WDpyA+IGhpemFrb3pvdVwgOwor5L2c6Kme5a62ID4gc2FrdXNoaWthXCA7CivkvZzngrrnmoQgPiBzYWt1aXRla2lcIDsKK+Wwj+Wuh+WumSA+IHNob3V1Y2h1dVwgOwor6aKo5rC05a6zID4gZnV1c3VpZ2FpXCA7CivljZjmlbDlvaIgPiB0YW5zdXVrZWlcIDsKK+awtOa6tua2siA+IHN1aXlvdWVraVwgOwor5aSn6LuK6LyqID4gZGFpc2hhcmluXCA7CivmlLnlrprniYggPiBrYWl0ZWloYW5cIDsKK+ekvuS8muS6uiA+IHNoYWthaWppblwgOwor5oKq5b2x6Z+/ID4gYWt1ZWlreW91XCA7Civopb/pg6jliocgPiBzZWlidWdla2lcIDsKK+mbkeiyqOWVhiA+IHpha2thc2hvdVwgOwor5Yqj562J5oSfID4gcmV0dG91a2FuXCA7CivpgI/mmI7mgKcgPiB0b3VtZWlzZWlcIDsKK+iLpeWkq+WppiA+IHdha2FmdXVmdVwgOwor54++5Luj6KmpID4gZ2VuZGFpc2hpXCA7CivpmbDpmb3pgZMgPiBvbm15b3Vkb3VcIDsKK+S8keaGqeaJgCA+IGt5dXVrZWlqb1wgOwor6YWN57Wm5omAID4gaGFpa3l1dWpvXCA7Civoo4XouqvlhbcgPiBzb3VzaGluZ3VcIDsKK+eEoeasoOW4rSA+IG11a2Vzc2VraVwgOwor6Ieq5Yi25b+DID4gamlzZWlzaGluXCA7Civlia/kvZznlKggPiBmdWt1c2F5b3VcIDsKK+WGjemBuOaMmSA+IHNhaXNlbmt5b1wgOwor6Zqg5Yy/6ICFID4gaW50b2t1c2hhXCA7CivlkIzkurrnqK4gPiBkb3VqaW5zaHVcIDsKK+mBi+mAgealrSA+IHVuc291Z3lvdVwgOwor5YaF5YuZ55yBID4gbmFpbXVzaG91XCA7Civngq3phbjmsLQgPiB0YW5zYW5zdWlcIDsKK+WLpOeOi+WutiA+IGtpbicnbm91a2FcIDsKK+ihm+eUn+eahCA+IGVpc2VpdGVraVwgOwor56u25oqA6ICFID4ga3lvdWdpc2hhXCA7Civlho3nmbrooYwgPiBzYWloYWtrb3VcIDsKK+mBuuiogOeKtiA+IHl1aWdvbmpvdVwgOwor54K555y85rC0ID4gdGVuZ2Fuc3VpXCA7Civou73lkIjph5EgPiBrZWlnb3VraW5cIDsKK+S4gOeZuuWxiyA+IGlwcGF0c3V5YVwgOwor5YWo6KO95ZOBID4gemVuc2VpaGluXCA7Civlv5zlj6zogIUgPiBvdXNob3VzaGFcIDsKK+WPpOWNsOe0mSA+IGZ1cnVpbnNoaVwgOwor6LOH5pys6LKhID4gc2hpaG9uemFpXCA7Civlm57poafnmoQgPiBrYWlrb3Rla2lcIDsKK+S6jOimquetiSA+IG5pc2hpbnRvdVwgOwor5Lqk5oim5qipID4ga291c2Vua2VuXCA7CivluoPloLHoqowgPiBrb3Vob3VzaGlcIDsKK+S+i+W5tOelrSA+IHJlaW5lbnNhaVwgOwor5LqI6Ziy6JasID4geW9ib3V5YWt1XCA7Civlkozlo7DlraYgPiB3YXNlaWdha3VcIDsKK+mfs+alveWPsiA+IG9uZ2FrdXNoaVwgOwor6JCO57iu6IWOID4gaXNodWt1amluXCA7Civnm5fogbTlmaggPiB0b3VjaG91a2lcIDsKK+S6iOe0hOmHkSA+IHlveWFrdWtpblwgOwor5pil5aC05omAID4gaGFydWJhc2hvXCA7Civnp5/lurjoqr8gPiBzb3lvdWNob3VcIDsKK+WOn+WtkOirliA+IGdlbnNoaXJvblwgOwor54Sh5qmf54mpID4gbXVraWJ1dHN1XCA7CivmsbrorbDmoYggPiBrZXRzdWdpYW5cIDsKK+WJteS9nOWutiA+IHNvdXNha3VrYVwgOwor54ib54af5pyfID4gcmFuanVrdWtpXCA7CivkuK3plpPmtL4gPiBjaHV1a2FuaGFcIDsKK+mHjOeoi+aomSA+IHJpdGVpaHlvdVwgOwor6LOH5pys6KuWID4gc2hpaG9ucm9uXCA7Civku4rmp5jmrYwgPiBpbWF5b3V1dGFcIDsKK+S8mua0peWhlyA+IGFpZHp1bnVyaVwgOwor5Li45Z2K5Li7ID4gbWFydWJvdXp1XCA7Civnp7vmpI3mgKcgPiBpc2hva3VzZWlcIDsKK+WJjeW+jOetliA+IHplbmdvc2FrdVwgOwor5Yil5aSp5ZywID4gYmV0dGVuY2hpXCA7CivljZTorbDkvJogPiBreW91Z2lrYWlcIDsKK+mYsuepuuWjlSA+IGJvdWt1dWdvdVwgOwor6YGL6YCB5paZID4gdW5zb3VyeW91XCA7Civlub3pnIroiLkgPiB5dXVyZWlzZW5cIDsKK+S8r+WCmee3miA+IGhha3ViaXNlblwgOwor6IOD6IW455eFID4gaWNob3VieW91XCA7CivlkYrnpLrmnb8gPiBrb2t1amliYW5cIDsKK+Wwj+S9nOS6uiA+IGtvc2FrdW5pblwgOwor6Zui6ZaT562WID4gcmlrYW5zYWt1XCA7CivmsJHmlbDoqJggPiBtaW5zdXVraVwgOwor6YmE56Cy5bqnID4gdGVwcG91emFcIDsKK+aWh+WMluS6uiA+IGJ1bmthamluXCA7CivmnKjlt6XmiYAgPiBtb2trb3Vqb1wgOwor5LiA6Iis5rOVID4gaXBwYW5ob3VcIDsKK+WKtOWLmeiAhSA+IHJvdW11c2hhXCA7CivmlofluqvmnKwgPiBidW5rb2JvblwgOwor5Luj55CG5Lq6ID4gZGFpcmluaW5cIDsKK+a1t+awtOedgCA+IGthaXN1aWdpXCA7Civoh6rlt7HmtYEgPiBqaWtvcnl1dVwgOwor5LiB5a+n6KqeID4gdGVpbmVpZ29cIDsKK+mfs+alveS8miA+IG9uZ2Fra2FpXCA7CivlkIzog57mhJsgPiBkb3Vob3VhaVwgOwor5q+b5ZSQ5Lq6ID4ga2V0b3VqaW5cIDsKK+awkeS6i+S4iiA+IG1pbmppam91XCA7Civmt6HlvannlLsgPiB0YW5zYWlnYVwgOwor5pyf5b6F5YCkID4ga2l0YWljaGlcIDsKK+WFqOijuOS9kyA+IHplbnJhdGFpXCA7Civnq4vkvZPmtL4gPiByaXR0YWloYVwgOwor6K236YCB6Ii5ID4gZ29zb3VzZW5cIDsKK+mHjuibruS6uiA+IHlhYmFuamluXCA7CivlpbPmgKfou40gPiBqb3NlaWd1blwgOwor5ZCM6Laj5ZGzID4gZG91c2h1bWlcIDsKK+WPr+WLleaApyA+IGthZG91c2VpXCA7CivkuI3ppIrnlJ8gPiBmdXlvdWpvdVwgOwor6aO95ZKM54K5ID4gaG91d2F0ZW5cIDsKK+aXouW+gOeXhyA+IGtpb3VzaG91XCA7CivkuIDoh7TngrkgPiBpdGNoaXRlblwgOwor562G6KiY6ICFID4gaGlra2lzaGFcIDsKK+mAgemiqOapnyA+IHNvdWZ1dWtpXCA7Civlp6vlvqHlrZAgPiBoaW1lbWlrb1wgOwor5omL6YWN5pu4ID4gdGVoYWlzaG9cIDsKK+iEs+ePiueRmiA+IG5vdXNhbmdvXCA7CivkuIrlsaTlnJ8gPiBqb3Vzb3Vkb1wgOwor5LqI57SE6KqeID4geW95YWt1Z29cIDsKK+ayueanveiIuSA+IHl1c291c2VuXCA7CivkuIDlr7joposgPiBjaG90dG9taVwgOwor5LqI6Ziy57eaID4geW9ib3VzZW5cIDsKK+WLmOWumuaXpSA+IGthbmpvdWJpXCA7CivlhoXluJHph5EgPiBuYWlkb2tpblwgOwor5Lyd6YCB6LevID4gZGVuc291cm9cIDsKK+mKgOe0sOW3pSA+IGdpbnphaWt1XCA7Civkurrnm7joposgPiBuaW5zb3VtaVwgOwor6aKo5Yi655S7ID4gZnV1c2hpZ2FcIDsKK+WNiOmkkOS8miA+IGdvc2Fua2FpXCA7CivnhKHmrKDli6QgPiBtdWtla2tpblwgOwor5q+U6YeN6KiIID4gaGlqdXVrZWlcIDsKK+mBi+mAgeW6lyA+IHVuc291dGVuXCA7Civmk43kvZznm6QgPiBzb3VzYWJhblwgOwor5Zyo5bqr5ZOBID4gemFpa29oaW5cIDsKK+awkeS4u+WMliA+IG1pbnNodWthXCA7Civlu7bmu57ph5EgPiBlbnRhaWtpblwgOwor5ZSQ56C06aKoID4ga2FyYWhhZnVcIDsKK+iHquWFrOawkSA+IGppa291bWluXCA7Civos6LlpKvkurogPiBrZW5wdWppblwgOwor6YGL6Lui6ICFID4gdW50ZW5zaGFcIDsKK+S4jeagvOWlvSA+IGJ1a2Fra291XCA7Civlgqzmt6vliaQgPiBzYWlpbnphaVwgOwor5qCE6aSK55+tID4gZWl5b3V0YW5cIDsKK+WMu+WtpueVjCA+IGlnYWt1a2FpXCA7CivnhKHluLjmhJ8gPiBtdWpvdWthblwgOwor6IOM5qC85aW9ID4gc2VrYWtrb3VcIDsKK+Wxseafu+WtkCA+IHNhbnphc2hpXCA7CivljLvlrabnlJ8gPiBpZ2FrdXNlaVwgOwor6ZaL5qWt5Yy7ID4ga2FpZ3lvdWlcIDsKK+S+v+iho+maiiA+IGJlbicnaXRhaVwgOwor5bm55LqL5LyaID4ga2FuamlrYWlcIDsKK+WkmuWOn+WtkCA+IHRhZ2Vuc2hpXCA7CivljYHlrZflvaIgPiBqdXVqaWtlaVwgOwor5aSW6YeO5omLID4gZ2FpeWFzaHVcIDsKK+WBpeiDg+mMoCA+IGtlbicnaWpvdVwgOwor6Zai6KW/6aasID4ga2Fuc2FpYmFcIDsKK+aMh+ekuuipniA+IHNoaWppc2hpXCA7CivmmI7ml6XokYkgPiBhc2hpdGFiYVwgOwor55+t6Led6ZuiID4gdGFua3lvcmlcIDsKK+S4gOi7kuWxiyA+IGlra2VuJyd5YVwgOwor6Iq45YKZ57eaID4gZ2VpYmlzZW5cIDsKK+mZo+Wkqum8kyA+IGppbmRhaWtvXCA7CivnnJ/lhqzml6UgPiBtYWZ1eXViaVwgOwor5Zub5a2j5aCxID4gc2hpa2lob3VcIDsKK+S4gOi7kuWutiA+IGlra2VuJyd5YVwgOwor57mB6I+v6KGXID4gaGFua2FnYWlcIDsKK+iok+e3tOaJgCA+IGt1bnJlbmpvXCA7CivmtbfmsLTmuKkgPiBrYWlzdWlvblwgOwor562L6Zu75ZuzID4ga2luZGVuenVcIDsKK+azjOWwv+W5viA+IGhpbnlvdWtpXCA7CivkuI3lronlv4MgPiBmdWFuc2hpblwgOwor6Kiq5ZWP552AID4gaG91bW9uZ2lcIDsKK+S8muekvuWToSA+IGthaXNoYWluXCA7Civms5XnjovmqKkgPiBob3VvdWtlblwgOwor5LiN5bCO5L2TID4gZnVkb3V0YWlcIDsKK+WNmOippuWQiCA+IHRhbnNoaWFpXCA7CivlhpnnlJ/nlLsgPiBzaGFzZWlnYVwgOwor566h55CG5Lq6ID4ga2FucmluaW5cIDsKK+S4gOWutuiogCA+IGlra2Fnb3RvXCA7CivlkIzmnJ/nlJ8gPiBkb3VraXNlaVwgOwor5LiB5a6a6KaPID4gdGVpam91Z2lcIDsKK+WuiOWCmemaiiA+IHNodWJpdGFpXCA7CivkvbXlkIjnvaogPiBoZWlnb3phaVwgOwor5rCX54Sh57K+ID4ga2lidXNob3VcIDsKK+S4ieaemuebriA+IHNhbm1haW1lXCA7CivmiYvphY3luKsgPiB0ZWhhaXNoaVwgOwor54Sh6Ieq6KaaID4gbXVqaWtha3VcIDsKK+eBq+S6i+azpSA+IGthamlkb3JvXCA7Civkurrlt6Xoqp4gPiBqaW5rb3Vnb1wgOwor5pei5b6A5q20ID4ga2lvdXJla2lcIDsKK+S4gOiIrOaApyA+IGlwcGFuc2VpXCA7CivlubTmnIjml6UgPiBuZW5nYXBwaVwgOwor5aSJ5oiQ5ZmoID4gaGVuc2Vpa2lcIDsKK+acquS/oeiAhSA+IG1pc2hpbmphXCA7CivkuI3moYjlhoUgPiBmdWFuJyduYWlcIDsKK+iHquajhOmFkiA+IHlha2V6YWtlXCA7CivloZHlvL7mgKcgPiBzb2RhbnNlaVwgOwor5q2m5Zmo5YCJID4gYnVraWd1cmFcIDsKK+iBtOmfs+WZqCA+IGNob3VvbmtpXCA7CivlubPku67lkI0gPiBoaXJhZ2FuYVwgOwor5oSf55+l5ZmoID4ga2FuY2hpa2lcIDsKK+WJjeWNiuacnyA+IHplbnBhbmtpXCA7Civnqbroq5blrrYgPiBrdXVyb25rYVwgOwor6L6y6ZaR5pyfID4gbm91a2Fua2lcIDsKK+S4jeizm+aIkCA+IGZ1c2Fuc2VpXCA7CivppIrpto/lrrYgPiB5b3VrZWlrYVwgOwor5Y2B5LqM5pSvID4ganV1bmlzaGlcIDsKK+ani+aIkOavlCA+IGtvdXNlaWhpXCA7CivlkJHml6XokbUgPiBoaW1hd2FyaVwgOwor5qmf5qWt5a62ID4ga2lneW91a2FcIDsKK+awtOa7uOS8nSA+IHN1aWtvZGVuXCA7CivlvqHlrKLmp5ggPiBvam91c2FtYVwgOwor6Ieo5bqK5Yy7ID4gcmluc2hvdWlcIDsKK+aghOmkiua6kCA+IGVpeW91Z2VuXCA7CivlpJrlubTojYkgPiB0YW5lbnNvdVwgOwor6I235Y6E5LuLID4gbml5YWtrYWlcIDsKK+WKseejgeaQjSA+IHJlaWppc29uXCA7Civlronlhajnk6MgPiBhbnplbmJlblwgOwor6YeN6YW457SgID4ganV1c2Fuc29cIDsKK+S6jOWhgeaJiyA+IG5pcnVpc2h1XCA7CivmnKjlt6XlhbcgPiBtb2trb3VndVwgOwor54K555y85ZmoID4gdGVuZ2Fua2lcIDsKK+iOq+Wkp+WwjyA+IG1lcml5YXN1XCA7Civoo73pi7zmiYAgPiBzZWlrb3Vqb1wgOwor6Zqg6JS95a2QID4gaW5wZWlzaGlcIDsKK+WLmOWumuWgtCA+IGthbmpvdWJhXCA7Civnvr3lm6PmiYcgPiBoYXVjaGl3YVwgOwor56C05oiS5YOnID4gaGFrYWlzb3VcIDsKK+eArOaIuOeJqSA+IHNldG9tb25vXCA7CivlpKfoi7Hmlq0gPiBkYWllaWRhblwgOwor5rOM5bC/5ZmoID4gaGlueW91a2lcIDsKK+WFiOitsOaoqSA+IHNlbmdpa2VuXCA7Civlj43mipfmnJ8gPiBoYW5rb3VraVwgOwor5pys5Lya6K2wID4gaG9ua2FpZ2lcIDsKK+iLseexs+S6uiA+IGVpYmVpamluXCA7CivkvY7poIbkvY0gPiB0ZWlqdW4nJ2lcIDsKK+S4jeiAgeaziSA+IGZ1cm91c2VuXCA7CivlkI3lrpvkurogPiBuYWF0ZW5pblwgOwor6Ieq55Sx6KmpID4gaml5dXVzaGlcIDsKK+aEj+W/l+eahCA+IGlzaGl0ZWtpXCA7CivmiKbpl5jlk6EgPiBzZW50b3VpblwgOwor5Y6f55S75YOPID4gZ2VuZ2F6b3VcIDsKK+Wkp+iFv+mDqCA+IGRhaXRhaWJ1XCA7Civmu4vos4DnnIwgPiBzaGlnYWtlblwgOwor6YeN5rC057SgID4ganV1c3Vpc29cIDsKK+S6uumAoOa5liA+IGppbnpvdWtvXCA7Civoq4vosqDluKsgPiB1a2VvaXNoaVwgOwor5rC05rqW5ZmoID4gc3VpanVua2lcIDsKK+a8q+eUu+acrCA+IG1hbmdhaG9uXCA7CivkupLmj5vmgKcgPiBnb2thbnNlaVwgOwor56iu56iu55u4ID4gc2h1anVzb3VcIDsKK+S6iOmYsuazlSA+IHlvYm91aG91XCA7Civlronlhajnga8gPiBhbnplbnRvdVwgOwor6YGL6YCB5Lq6ID4gdW5zb3VuaW5cIDsKK+S4iummluWwviA+IGpvdXNodWJpXCA7Civku4/oiI7liKkgPiBidXNzaGFyaVwgOwor6IiH5aSq6ICFID4geW90YW1vbm9cIDsKK+a6gOWkqeS4iyA+IG1hbnRlbmthXCA7CivkvqHmoLzlt64gPiBrYWtha3VzYVwgOwor54Sh6Iqx5p6cID4gaWNoaWppa3VcIDsKK+S4jeS6uuaDhSA+IGZ1bmluam91XCA7CivlnJ/lu7rlsYsgPiBkb2tlbicneWFcIDsKK+mBruaWreapnyA+IHNoYWRhbmtpXCA7CivkubHmna3mra8gPiByYW5ndWliYVwgOwor6J2L57Sw5belID4gcm91emFpa3VcIDsKK+eznOeIm+aApyA+IGJpcmFuc2VpXCA7CivosrTlhazlrZAgPiBraWtvdXNoaVwgOwor5buJ5L6h54mIID4gcmVua2FiYW5cIDsKK+WOn+WtkOeCiSA+IGdlbnNoaXJvXCA7Civou6Lmj5vngokgPiB0ZW5rYW5yb1wgOwor6buO5piO5pyfID4gcmVpbWVpa2lcIDsKK+iPluiSsua5ryA+IHNob3VidXl1XCA7CivnhKHpp4TpqqggPiBtdWRhYm9uZVwgOwor6aGe5Ly85ZOBID4gcnVpamloaW5cIDsKK+mjm+ihjOmaiiA+IGhpa291dGFpXCA7Civph5Hps7PoirEgPiBraW5wb3VnZVwgOwor6buS6Zuy5q+NID4ga3Vyb3VubW9cIDsKK+ebuOaJi+aWuSA+IGFpdGVnYXRhXCA7CivkuI3lrozlhaggPiBmdWthbnplblwgOwor56WW5Zu95oSbID4gc29rb2t1YWlcIDsKK+WLn+mbhuiyuyA+IGJvc2h1dWhpXCA7CivnlJ/nlKPosrsgPiBzZWlzYW5oaVwgOwor57Wx5ZCI5YyWID4gdG91Z291a2FcIDsKK+aXheihjOWutiA+IHJ5b2tvdWthXCA7CivnpL7lpJbnp5ggPiBzaGFnYWloaVwgOwor5b6T5L6h56iOID4ganV1a2F6ZWlcIDsKK+S9v+W+kuabuCA+IHNoaXRvc2hvXCA7Civlr53ljJbnsqcgPiBuZWdlc2hvdVwgOwor5Ym15LiW5pyfID4gc291c2Vpa2lcIDsKK+mHkeebrumvmyA+IGtpbm1lZGFpXCA7CivkuIrkuIvnt5ogPiBqb3VnZXNlblwgOwor55CG5LqL5Zu9ID4gcmlqaWtva3VcIDsKK+awtOa6luWEgCA+IHN1aWp1bmdpXCA7Civlho3kv53pmbogPiBzYWlob2tlblwgOwor5LiL6aas5YWIID4gZ2ViYXNha2lcIDsKK+azieiyqOe0mSA+IHNlbmthc2hpXCA7CivlvqHku6TlrKIgPiBnb3JlaWpvdVwgOwor6Zu75rCX6KGXID4gZGVua2lnYWlcIDsKK+i7jeaUv+mDqCA+IGd1bnNlaWJ1XCA7CivlvqHpoYznm64gPiBvZGFpbW9rdVwgOwor54Sh5L+d6Ki8ID4gbXVob3Nob3VcIDsKK+WPr+WIhuaApyA+IGthYnVuc2VpXCA7CivkupzpiZvpiYQgPiBhZW50ZXRzdVwgOwor5YuV5a6J5a6aID4gZG91YW50ZWlcIDsKK+WIkeS6i+S4iiA+IGtlaWppam91XCA7CivlpbPmgKfnlKggPiBqb3NlaXlvdVwgOwor5Lm+54el54KJID4ga2Fuc291cm9cIDsKK+iCsuWFkOazlSA+IGlrdWppaG91XCA7CivmhJvps6XlrrYgPiBhaWNob3VrYVwgOwor5pys6Iie5Y+wID4gaG9uYnV0YWlcIDsKK+WAi+S6uuaApyA+IGtvamluc2VpXCA7Civkvp3lrZjnl4cgPiBpem9uc2hvdVwgOwor5oKq5oCn5bqmID4gYWt1c2VpZG9cIDsKK+e+jueUt+WtkCA+IGJpbmFuc2hpXCA7Civpm7vms6Lms5UgPiBkZW5wYWhvdVwgOwor6LuN5LqL5LiKID4gZ3Vuamlqb3VcIDsKK+eDj+eKgOinkiA+IHVzYWlrYWt1XCA7CivlgY/lvq7liIYgPiBoZW5iaWJ1blwgOwor57Sg5a+S6LKnID4gc3VrYW5waW5cIDsKK+ixmuWwj+WxiyA+IGJ1dGFnb3lhXCA7Civlu7bmu57nqI4gPiBlbnRhaXplaVwgOwor5Yal546L5pifID4gbWVpb3VzZWlcIDsKK+WGhuebpOeKtiA+IGVuYmFuam91XCA7CivolLXmm7jlrrYgPiB6b3VzaG9rYVwgOwor6Yyy6Z+z5qmfID4gcm9rdW9ua2lcIDsKK+mBjuiIrOadpSA+IGthaGFucmFpXCA7CivpkZrlrZTmqZ8gPiBzYW5rb3VraVwgOwor5LiA6Iis5Lq6ID4gaXBwYW5qaW5cIDsKK+ebuOaJi+W9uSA+IGFpdGV5YWt1XCA7CivmranlkIjntaYgPiBidWFpa3l1dVwgOwor5LqV5oi457axID4gaWRvZHp1bmFcIDsKK+aXouefpeaVsCA+IGtpY2hpc3V1XCA7Civlt6Xli5nlupcgPiBrb3VtdXRlblwgOwor5LiA5pyx6YqAID4gaXNzaHVnaW5cIDsKK+iIquepuuapnyA+IGtvdWt1dWtpXCA7Civpu5LnubvlrZAgPiBrdXJvanVzdVwgOwor55m76KiY5omAID4gdG91a2lzaG9cIDsKK+mBqeaZguaJkyA+IHRla2lqaWRhXCA7CivlkIjnkIbmgKcgPiBnb3VyaXNlaVwgOwor6Zmw6Zu75a2QID4gaW5kZW5zaGlcIDsKK+WKqeWLleipniA+IGpvZG91c2hpXCA7CivmhbDol4nmlpkgPiBpc2hhcnlvdVwgOwor6KGb55Sf5YW1ID4gZWlzZWloZWlcIDsKK+S9jueJqeS+oSA+IHRlaWJ1a2thXCA7CivlgIvkurrlsZUgPiBrb2ppbnRlblwgOwor5a6f5L2T5YyWID4gaml0dGFpa2FcIDsKK+mCqumtlOiAhSA+IGphbWFtb25vXCA7CivnsbPorbDkvJogPiBiZWlnaWthaVwgOwor54Sh5bC96JS1ID4gbXVqaW56b3VcIDsKK+i7ouaPm+acnyA+IHRlbmthbmtpXCA7Civku6PorbDlo6sgPiBkYWlnaXNoaVwgOwor6by75r+B6Z+zID4gYmlkYWt1b25cIDsKK+mrmOmbu+S9jSA+IGtvdWRlbicnaVwgOwor5oyB5Y+C6YeRID4gamlzYW5raW5cIDsKK+WUr+eQhuirliA+IHl1aXJpcm9uXCA7CivlkI3mnJvlrrYgPiBtZWlib3VrYVwgOwor5aSa5YWD6KuWID4gdGFnZW5yb25cIDsKK+iHquajhOezniA+IHlha2VrdXNvXCA7CivmraPnrKblj7cgPiBzZWlmdWdvdVwgOwor54Sh55Sj6ICFID4gbXVzYW5zaGFcIDsKK+iCsuWFkOabuCA+IGlrdWppc2hvXCA7CivlrprmnJ/oiLkgPiB0ZWlraXNlblwgOwor5omL5byB5b2TID4gdGViZW50b3VcIDsKK+S5vueHpeapnyA+IGthbnNvdWtpXCA7CivkuInml6XplpMgPiBtaWtrYWthblwgOwor5Y2B5LqM5YiGID4ganV1bmlidW5cIDsKK+eoveWPpOWPsCA+IGtlaWtvZGFpXCA7CivlhYjpoK3kvI0gPiBzZW50b3Vnb1wgOwor5Ye65p2l6auYID4gZGVraWRha2FcIDsKK+S4ieS4luebuCA+IHNhbnplc291XCA7CivpgYvmoLnpiI0gPiB1bmtvbmRvblwgOwor6KGb55Sf5LiKID4gZWlzZWlqb3VcIDsKK+WMu+WtpuWjqyA+IGlnYWt1c2hpXCA7Civoq4vosqDkurogPiB1a2VvaW5pblwgOwor5pat6Z2i5ZuzID4gZGFubWVuenVcIDsKK+iZmuS7rueMvyA+IGtva2V6YXJ1XCA7CivmnKrkvb/nlKggPiBtaXNoaXlvdVwgOwor6Zu75rOi5pifID4gZGVucGFzZWlcIDsKK+mfs+mfu+irliA+IG9uJydpbnJvblwgOwor5qmf5qKw5belID4ga2lrYWlrb3VcIDsKK+WGjeWwgemOliA+IHNhaWZ1dXNhXCA7CivpmLLms6LloKQgPiBib3VoYXRlaVwgOwor6YGL6Lui5omLID4gdW50ZW5zaHVcIDsKK+S6ieimh+aIpiA+IHNvdWhhc2VuXCA7Civpu5LmloflrZcgPiBrdXJvbW9qaVwgOwor54Sh6aeE6LazID4gbXVkYWFzaGlcIDsKK+edgOeJqeWcsCA+IGtpbW9ub2ppXCA7CivlpJbmsJflnI8gPiBnYWlraWtlblwgOwor6ZaL5Lya5pelID4ga2Fpa2FpYmlcIDsKK+eUseadpeabuCA+IHl1cmFpc2hvXCA7CivptZ3lj6PnmKEgPiBnYWtvdXNvdVwgOwor5Lm+54el5p6cID4ga2Fuc291a2FcIDsKK+WuieWFqOaApyA+IGFuemVuc2VpXCA7Civkub7nh6XmnJ8gPiBrYW5zb3VraVwgOwor5qCE6aSK5aOrID4gZWl5b3VzaGlcIDsKK+WPsOW4g+W3viA+IGRhaWJ1a2luXCA7Civmp4vmiJDlk6EgPiBrb3VzZWlpblwgOwor5qih56+E55SfID4gbW9oYW5zZWlcIDsKK+WuieWFqOW8gSA+IGFuemVuYmVuXCA7Civpp4bli5XovKogPiBrdWRvdXJpblwgOwor5p2x5rSL5Y+yID4gdG95b2Z1bWlcIDsKK+WNmOeyvuW6piA+IHRhbnNlaWRvXCA7CivngavmnKjlnJ8gPiBrYW1va3Vkb1wgOwor5Luj6K2w5Yi2ID4gZGFpZ2lzZWlcIDsKK+acquWumueovyA+IG1pdGVpa291XCA7CivkuJboqbHniakgPiBzZXdhbW9ub1wgOwor6Kaz5oim6KiYID4ga2Fuc2Vua2lcIDsKK+WkqeeTnOeyiSA+IHRlbmthZnVuXCA7CivlvaLmiJDmnJ8gPiBrZWlzZWlraVwgOwor5pS+5pig5qipID4gaG91ZWlrZW5cIDsKK+ebo+imluaJgCA+IGthbnNoaWpvXCA7CivlvqHmnKzlsIogPiBnb2hvbnpvblwgOwor5Y2Y57SU5YyWID4gdGFuanVua2FcIDsKK+WAi+S6uuWQjSA+IGtvamlubWVpXCA7CivmpJznnLzljLsgPiBrZW5nYW4nJ2lcIDsKK+WMu+WtpuWPsiA+IGlnYWt1c2hpXCA7CivmnKrouI/ls7AgPiBtaXRvdWhvdVwgOwor5pat5pat5Zu6ID4gZGFuZGFua29cIDsKK+aaluaIv+WZqCA+IGRhbmJvdWtpXCA7CivmlqHml4vogIUgPiBhc3NlbnNoYVwgOwor5LuP55Sf5LyaID4gYnVzc2hvdWVcIDsKK+imj+agvOWMliA+IGtpa2FrdWthXCA7Civlj7jku6Tpg6ggPiBzaGlyZWlidVwgOwor5oSP5Yyg5qipID4gaXNob3VrZW5cIDsKK+WwiuaVrOiqniA+IHNvbmtlaWdvXCA7CivlvaLmhYvntKAgPiBrZWl0YWlzb1wgOwor576O5bCR5aWzID4gYmlzaG91am9cIDsKK+WGhumBi+WLlSA+IGVuJyd1bmRvdVwgOwor6LGh54mZ6ImyID4gem91Z2Vpcm9cIDsKK+mBruaWreWZqCA+IHNoYWRhbmtpXCA7CivoqLHlj6/mm7ggPiBreW9rYXNob1wgOwor5ZWG6K2w5ZOhID4gc2hvdWdpaW5cIDsKK+W+oeS4gOaWsCA+IGdvaXNzaGluXCA7CivmhInlv6vniq8gPiB5dWthaWhhblwgOwor5oyH56S65p2/ID4gc2hpamliYW5cIDsKK+mJhOW3peaJgCA+IHRla2tvdWpvXCA7CivntYzllrbpm6MgPiBrZWllaW5hblwgOwor6Zmw6Zm95birID4gb24nJ3lvdWppXCA7Civmj5vmsJfmiYcgPiBrYW5raXNlblwgOwor6Z2e5ZCI5rOVID4gaGlnb3Vob3VcIDsKK+mjm+ihjOiJhyA+IGhpa291dGVpXCA7Civpo5vooYzoiLkgPiBoaWtvdXNlblwgOwor57WM5Za26ZmjID4ga2VpZWlqaW5cIDsKK+W+oeadpeWFiSA+IGdvcmFpa291XCA7CivkuI3mlq3ojYkgPiBmdWRhbnNvdVwgOwor5qCE6aSK5YmkID4gZWl5b3V6YWlcIDsKK+mAo+mOluW6lyA+IHJlbnNhdGVuXCA7CivlhbXms5XlrrYgPiBoZWlob3VrYVwgOwor6aC75bqm5pWwID4gaGluZG9zdXVcIDsKK+izh+acrOWutiA+IHNoaWhvbmthXCA7CivmnIDlj7Pnv7wgPiBzYWl1eW9rdVwgOwor5qCE6aSK5YiGID4gZWl5b3VidW5cIDsKK+WPr+WHpuWIhiA+IGthc2hvYnVuXCA7Civokpnlj6TmlpEgPiBtb3Vrb2hhblwgOwor5a+S56i95Y+kID4ga2FuZ2Vpa29cIDsKK+esrOS4iee0gCA+IGRhaXNhbmtpXCA7CivnoILpoqjlkYIgPiBzdW5hYnVyb1wgOwor6YGL6Lui5aOrID4gdW50ZW5zaGlcIDsKK+esrOS4gOe3miA+IGRhaWlzc2VuXCA7CivpgqrprZTniakgPiBqYW1hbW9ub1wgOwor6YqA6KGM5a62ID4gZ2lua291a2FcIDsKK+S4ieS7meWPiSA+IHNhbnNlbnNhXCA7Civlho3lt6XkuosgPiBzYWlrb3VqaVwgOwor6KOP5pel5pysID4gdXJhbmlob25cIDsKK+iiq+WCreiAhSA+IGhpeW91c2hhXCA7Civou73msLTngokgPiBrZWlzdWlyb1wgOwor6Ieq55Sx5rivID4gaml5dXVrb3VcIDsKK+W+oeabueWtkCA+IG9uem91c2hpXCA7CivpmLLmsLTmiYkgPiBib3VzdWloaVwgOwor5bGF5b+D5ZywID4gaWdva29jaGlcIDsKK+WcsOS4i+mBkyA+IGNoaWthZG91XCA7CivnhKHpp4ToirEgPiBtdWRhYmFuYVwgOwor5LiO5aSq6ICFID4geW90YW1vbm9cIDsKK+eEoeWumuimiyA+IG11dGVpa2VuXCA7Civnvo7lrrnluKsgPiBiaXlvdXNoaVwgOwor55m654Gr54K5ID4gaGFra2F0ZW5cIDsKK+ePvuS7o+WMliA+IGdlbmRhaWthXCA7Civnpo/kupXnnIwgPiBmdWt1aWtlblwgOwor5LiN5pWs6JmUID4gZnVrZWlrZW5cIDsKK+S4geWtkOayuSA+IGNob3VqaXl1XCA7Civkub7nh6XlraMgPiBrYW5zb3VraVwgOwor5pat5pat5LmOID4gZGFuZGFua29cIDsKK+iyoeWLmeWumCA+IHphaW11a2FuXCA7CivmlpnnkIblsYsgPiByeW91cml5YVwgOwor5YGc6LuK5aC0ID4gdGVpc2hhYmFcIDsKK+aEn+WFieW6piA+IGthbmtvdWRvXCA7CivnhKHog73ogIUgPiBtdW5vdXNoYVwgOwor5Lqk5Y+J54K5ID4ga291c2F0ZW5cIDsKK+awt+ays+acnyA+IGh5b3VnYWtpXCA7CivkvY7pm7vkvY0gPiB0ZWlkZW4nJ2lcIDsKK+WHuuS4lumtmiA+IHNodXNzZXVvXCA7CivpgYvou6Llj7AgPiB1bnRlbmRhaVwgOwor6YeO5b+D5a62ID4geWFzaGlua2FcIDsKK+iHqueUseaoqSA+IGppeXV1a2VuXCA7CivpmLLmsLTluIMgPiBib3VzdWlmdVwgOwor5YaN6Ieo5rS+ID4gc2FpcmluaGFcIDsKK+WQjeWgtOmdoiA+IG1laWJhbWVuXCA7CivnrYboqJjkvZMgPiBoaWtraXRhaVwgOwor5bym5qW95ZmoID4gZ2VuZ2Fra2lcIDsKK+a7nuWcqOiyuyA+IHRhaXphaWhpXCA7Civopo/lrprlgKQgPiBraXRlaWNoaVwgOwor5LiA5L2T5oSfID4gaXR0YWlrYW5cIDsKK+i1pOegguezliA+IGFrYXphdG91XCA7CivniZvlsI/lsYsgPiB1c2hpZ295YVwgOwor5buJ5L6h5ZOBID4gcmVua2FoaW5cIDsKK+awkemcgOWTgSA+IG1pbmp1aGluXCA7CivnnJ/kurrplpMgPiBtYW5pbmdlblwgOwor6YeR55ue6IqxID4ga2luc2Vua2FcIDsKK+WPluaymeaxsCA+IHRvcml6YXRhXCA7CivpioDooYzlk6EgPiBnaW5rb3VpblwgOwor5bGk5L2N5a2mID4gc291aWdha3VcIDsKK+mAj+imluWbsyA+IHRvdXNoaXp1XCA7CivlkI3nvqnkurogPiBtZWlnaW5pblwgOwor57Wm5rK55omAID4ga3l1dXl1am9cIDsKK+iHqui1sOegsiA+IGppc291aG91XCA7Civlr4TnqL/ogIUgPiBraWtvdXNoYVwgOwor5oqS5oOF6KmpID4gam9qb3VzaGlcIDsKK+WGhuWIg+WIgCA+IGVuamludG91XCA7Civkub7nh6XlmaggPiBrYW5zb3VraVwgOwor5LiJ5LiD5pelID4gbWluYW5va2FcIDsKK+WvuuWwj+WxiyA+IHRlcmFrb3lhXCA7CivlvqHmm7nlj7ggPiBvbnpvdXNoaVwgOwor55Sw6Zuy6ZuAID4gdGFoaWJhcmlcIDsKK+a4qea5v+W4gyA+IG9uc2hpcHB1XCA7CivlvqHpnaLnm7ggPiBnb21lbnNvdVwgOwor5LiK5pmv5rCXID4gam91a2Vpa2lcIDsKK+iCsuiLseS8miA+IGlrdWVpa2FpXCA7CivkuZfppqzpmoogPiBqb3ViYXRhaVwgOwor5Zyw5LiL6KGXID4gY2hpa2FnYWlcIDsKK+mdkuaHuOW3oyA+IGFva2FrZXN1XCA7CivkuI3mlaznvaogPiBmdWtlaXphaVwgOwor5Y6f5a2Q5L6hID4gZ2Vuc2hpa2FcIDsKK+e3j+atpue3miA+IHNvdWJ1c2VuXCA7CivkuI3nuLnnt7sgPiBidWtpcnlvdVwgOwor6Kej5YOP5bqmID4ga2Fpem91ZG9cIDsKK+aOp+iotOeKtiA+IGtvdXNvam91XCA7Civlho3mpJzmn7sgPiBzYWlrZW5zYVwgOwor6KSH5bqn5qmfID4gZnVrdXpha2lcIDsKK+aJueipleWutiA+IGhpaHlvdWthXCA7CivlvqHkuK3lhYMgPiBvY2h1dWdlblwgOwor5Lq655yf5Ly8ID4gaGl0b21hbmVcIDsKK+eahOWcsOS9jSA+IHRla2ljaGlpXCA7Civmj5vmsJflj6MgPiBrYW5raWtvdVwgOwor6Kq/5p+75ZOhID4gY2hvdXNhaW5cIDsKK+S4luipseW9uSA+IHNld2F5YWt1XCA7Civmgqrnn6XmgbUgPiB3YXJ1ZGppZVwgOwor55+t5pyf6ZaTID4gdGFua2lrYW5cIDsKK+W+oeS4u+S6uiA+IGdvc2h1amluXCA7CivlkIzmmYLmgKcgPiBkb3VqaXNlaVwgOwor6buE5aSJ57GzID4gb3VoZW5tYWlcIDsKK+S9meaJgOiAhSA+IHlvc29tb25vXCA7Civmu4vppIrliIYgPiBqaXlvdWJ1blwgOwor5qOa54mh5Li5ID4gdGFuYWJvdGFcIDsKK+mKmOmFkuWxiyA+IG1laXNodXlhXCA7CivloanpoZ7ms4kgPiBlbnJ1aXNlblwgOwor5L+d6I+M6ICFID4gaG9raW5zaGFcIDsKK+mYsuegguaelyA+IGJvdXNhcmluXCA7CivplonkuJbnlYwgPiBoZWlzZWthaVwgOwor5Zyw5LiL6IyOID4gY2hpa2FrZWlcIDsKK+Wkmui+uuW9oiA+IHRhaGVua2VpXCA7CivkuI3mmI7mnJcgPiBmdW1laXJvdVwgOwor5rOl54Gr5bGxID4gZGVpa2F6YW5cIDsKK+S6rOmDveW6nCA+IGt5b3V0b2Z1XCA7Civku6TlpKvkurogPiByZWlmdWppblwgOwor57235YWN5qipID4gaGltZW5rZW5cIDsKK+S4geWtl+W9oiA+IHRlaWppa2VpXCA7CivlgJnoo5zogIUgPiBrb3Vob3NoYVwgOwor57W155S76aSoID4ga2FpZ2FrYW5cIDsKK+WbveWWtuWMliA+IGtva3VlaWthXCA7CivnianmlYXogIUgPiBidWtrb3NoYVwgOwor5YmN55u45pKyID4gbWFlenVtb3VcIDsKK+eglOexs+apnyA+IGtlbm1haWtpXCA7Civmmpfpu5LmnJ8gPiBhbmtva3VraVwgOwor54++5pmC54K5ID4gZ2Vuaml0ZW5cIDsKK+mao+S/nemkqCA+IHJpbnBva2FuXCA7CivnhLzlpLflvL4gPiBzaG91aWRhblwgOwor5LiB5a2X5bivID4gdGVpaml0YWlcIDsKK+WKoOmFjeexsyA+IGthaGFpbWFpXCA7Civpq5jnsr7luqYgPiBrb3VzZWlkb1wgOwor6Zmw6Zai5pWwID4gaW5rYW5zdXVcIDsKK+awtOazs+W4vSA+IHN1aWVpYm91XCA7CivosrjosrvnlJ8gPiB0YWloaXNlaVwgOwor5aKX56iO5qGIID4gem91emVpYW5cIDsKK+mkk+msvOWFsSA+IGdha2lkb21vXCA7CivoqLHlj6/liLYgPiBreW9rYXNlaVwgOwor5aWz5oCn5YOPID4gam9zZWl6b3VcIDsKK+eBq+aYn+W5tCA+IGthc2VpbmVuXCA7CivkupznoavphbggPiBhcnl1dXNhblwgOwor5YaN6LuN5YKZID4gc2FpZ3VuYmlcIDsKK+adv+Wxi+iynSA+IGl0YXlhZ2FpXCA7CivmlqHml4vmoYggPiBhc3NlbicnYW5cIDsKK+iKseW0l+WyqSA+IGtha291Z2FuXCA7CivmnKrlrozmiJAgPiBtaWthbnNlaVwgOwor54Sh55So5b+DID4gYnV5b3VqaW5cIDsKK+aIkOaWh+WMliA+IHNlaWJ1bmthXCA7Civnspfmgqrlk4EgPiBzb2FrdWhpblwgOwor5o6n6Ki05qipID4ga291c29rZW5cIDsKK+iqv+eQhuWgtCA+IGNob3VyaWJhXCA7CivlnLDkuIvnt5ogPiBjaGlrYXNlblwgOwor5Lqc56Gd6YW4ID4gYXNob3VzYW5cIDsKK+Wumuacn+aIpiA+IHRlaWtpc2VuXCA7CivkvZPns7vljJYgPiB0YWlrZWlrYVwgOwor57WM5Za26ICFID4ga2VpZWlzaGFcIDsKK+iiq+WGmeS9kyA+IGhpc2hhdGFpXCA7CivliIblqKnmnJ8gPiBidW5iZW5raVwgOwor5b6M5LuV6IieID4gYXRvamltYWlcIDsKK+ijj+mdouWPsiA+IHJpbWVuc2hpXCA7CivopovkuJbniakgPiBtaXNlbW9ub1wgOwor6KKr55So6ICFID4gaGl5b3VzaGFcIDsKK+iqnuW9meWKmyA+IGdvaXJ5b2t1XCA7CivprZTms5Xnk7YgPiBtYWhvdWJpblwgOwor5YiG5aip5pmCID4gYnVuYmVuamlcIDsKK+S4iuS4i+WLlSA+IGpvdWdlZG91XCA7CivlubPpnaLlm7MgPiBoZWltZW56dVwgOwor6ICQ54Gr5oCnID4gdGFpa2FzZWlcIDsKK+WGjeWumue+qSA+IHNhaXRlaWdpXCA7Civpm7vmsJflt6UgPiBkZW5raWtvdVwgOwor5Y+N5Y+k57GgID4gaG9ndWthZ29cIDsKK+W+oemZjeiqlSA+IGdva291dGFuXCA7CivmmI7mlofljJYgPiBtZWlidW5rYVwgOwor6IW55YW35ZCIID4gaGFyYWd1YWlcIDsKK+mBuOaMmeaXpSA+IHNlbmt5b2JpXCA7CivovLjnsr7nrqEgPiB5dXNlaWthblwgOwor5bCP5aOy5bqXID4ga291cml0ZW5cIDsKK+Wuh+WumeirliA+IHVjaHV1cm9uXCA7CivpkZHlrprlrrYgPiBrYW50ZWlrYVwgOwor5Zu65rq25L2TID4ga295b3V0YWlcIDsKK+ahiOWGheaJgCA+IGFuJyduYWlqb1wgOwor6Ieq5L+h5a62ID4gamlzaGlua2FcIDsKK+S6nOmJm+acqyA+IGFlbm1hdHN1XCA7CivlsI7pm7vluqYgPiBkb3VkZW5kb1wgOwor55yM55+l5LqLID4ga2VuY2hpamlcIDsKK+Wuh+WumeimsyA+IHVjaHV1a2FuXCA7Civpm7vli5XmqZ8gPiBkZW5kb3VraVwgOwor5LiA5LiB55uuID4gaXRjaG91bWVcIDsKK+S8iumBlOihhiA+IGRhdGVzaHV1XCA7CivohYvnqqnohbogPiBla2lrYXNlblwgOwor5LiN5paH5rOVID4gZnVidW5wb3VcIDsKK+S4gOiyq+aApyA+IGlra2Fuc2VpXCA7Civlj6PlhoXngo4gPiBrb3VuYWllblwgOwor6YGO5LiN6LazID4ga2FmdXNva3VcIDsKK+aEm+eUqOiAhSA+IGFpeW91c2hhXCA7CivlhazmsJHnp5EgPiBrb3VtaW5rYVwgOwor5Ye65qC85a2QID4gZGVnb3VzaGlcIDsKK+S7iuS4lue0gCA+IGtvbnNlaWtpXCA7CivmnKrlqZrogIUgPiBtaWtvbnNoYVwgOwor5YCZ6KOc55SfID4ga291aG9zZWlcIDsKK+adseWNl+S6nCA+IHRvdW5hbicnYVwgOwor5L6b6aSK5aGUID4ga3V5b3V0b3VcIDsKK+WBpeiDg+WJpCA+IGtlbicnaXphaVwgOwor5L+u6aiT6ICFID4gc2h1Z2VuamFcIDsKK+aflOmBk+edgCA+IGp1dWRvdWdpXCA7Civlvq7ns7vmlbAgPiBiaWtlaXN1dVwgOwor5LuV572u5aC0ID4gc2hpb2tpYmFcIDsKK+W5s+aWueWSjCA+IGhlaWhvdXdhXCA7CivkvLTlpY/pg6ggPiBiYW5zb3VidVwgOwor5Y+k5YaZ5pysID4ga29zaGFob25cIDsKK+WHuuadpeeJqSA+IGRla2ltb25vXCA7CivlnJ/ppYXpoK0gPiBkb21hbmp1dVwgOwor5LiW6Kmx5Lq6ID4gc2V3YWJpdG9cIDsKK+e+jumhlOawtCA+IGJpZ2Fuc3VpXCA7Civoh6rnlLHliJEgPiBqaXl1dWtlaVwgOwor5aGp6aKo5ZGCID4gc2hpb2J1cm9cIDsKK+WFhembu+WZqCA+IGp1dWRlbmtpXCA7CivooqvpqJPogIUgPiBoaWtlbnNoYVwgOwor5bCP54aK5bqnID4ga29ndW1hemFcIDsKK+aJi+S/oeiqniA+IHRlc2hpbmdvXCA7CivotaTmr5vluIMgPiBha2FnZXR0b1wgOwor5rC05b2p55S7ID4gc3Vpc2FpZ2FcIDsKK+S4gOS6uuWvnSA+IGhpdG9yaW5lXCA7CivpnZLlkbPms6UgPiBhb21pZG9yb1wgOwor6Ieq55Sx5YWaID4gaml5dXV0b3VcIDsKK+iKmeiTieWzsCA+IGZ1eW91aG91XCA7CivokL3oirHnlJ8gPiByYWtrYXNlaVwgOwor5bGx6ZaT6YOoID4gc2Fua2FuYnVcIDsKK+WQjOaZguS7oyA+IGRvdWppZGFpXCA7CivnhKHlrpfmtL4gPiBtdXNodXVoYVwgOwor6LuN5pS/5bqcID4gZ3Vuc2VpZnVcIDsKK+WppuS6uuS8miA+IGZ1amlua2FpXCA7Civlr7rlrZDlsYsgPiB0ZXJha295YVwgOwor5Y6f57mK57atID4gZ2Vuc2VuJydpXCA7Civntpnpm7vmsJcgPiBrZWlkZW5raVwgOwor5Y+z5Lit6ZaTID4gdWNodXVrYW5cIDsKK+S4jeaWh+aYjiA+IGZ1YnVubWVpXCA7CivlubPlnJ/plpMgPiBoaXJhZG9tYVwgOwor5qyh55S35Z2KID4gamluYW5ib3VcIDsKK+iGgOiDseeCjiA+IGJvdWtvdWVuXCA7CivmnInlirnmiZMgPiB5dXVrb3VkYVwgOwor6Zuo6YeP6KiIID4gdXJ5b3VrZWlcIDsKK+Wuh+WumeiIuSA+IHVjaHV1c2VuXCA7CivmuJvoobDlmaggPiBnZW5zdWlraVwgOwor57mw57O45qmfID4gc291c2hpa2lcIDsKK+WkmuiKuOaApyA+IHRhZ2Vpc2VpXCA7CivotaTliIfnrKYgPiBha2FnaXBwdVwgOwor54Gr5pif5Lq6ID4ga2FzZWlqaW5cIDsKK+aXpeiIquapnyA+IG5pa2tvdWtpXCA7Civku4rkuJbnlYwgPiBrb25zZWthaVwgOwor6LuN6ZyA5ZOBID4gZ3VuanVoaW5cIDsKK+awtOiSuOawlyA+IHN1aWpvdWtpXCA7CivljZjmvKLlrZcgPiB0YW5rYW5qaVwgOwor5Y2B5paH5a2XID4ganV1bW9uamlcIDsKK+WuiOWCmeWFtSA+IHNodWJpaGVpXCA7Civmmpflj7fmlocgPiBhbmdvdWJ1blwgOwor6auY562J56eRID4ga291dG91a2FcIDsKK+a3u+S5l+WToSA+IHRlbmpvdWluXCA7CivmoYjlhoXlm7MgPiBhbicnbmFpenVcIDsKK+WQiOiogOiRiSA+IGFpa290b2JhXCA7CivlrprmnJ/liLggPiB0ZWlraWtlblwgOwor5LqI566X5qGIID4geW9zYW4nJ2FuXCA7CivlpJrmp5jmgKcgPiB0YXlvdXNlaVwgOwor5ZCN5paH5a62ID4gbWVpYnVua2FcIDsKK+iHquizoOazlSA+IGppYmFpaG91XCA7Civlh7rkuI3nsr4gPiBkZWJ1c2hvdVwgOwor5a6J5bGx5bKpID4gYW56YW5nYW5cIDsKK+iAgeWkp+WutiA+IHJvdXRhaWthXCA7CivmsI/ntKDmgKcgPiB1amlzdWpvdVwgOwor5LiK5aSp5rCXID4gam91dGVua2lcIDsKK+esrOS4gOWjsCA+IGRhaWlzc2VpXCA7CivlsI7ngavnt5ogPiBkb3VrYXNlblwgOwor5L6d6aC85b+DID4gaXJhaXNoaW5cIDsKK+Wuh+Wumee3miA+IHVjaHV1c2VuXCA7CivosqDlgrXogIUgPiBmdXNhaXNoYVwgOwor5b6M6aCt6YOoID4ga291dG91YnVcIDsKK+earuiGmueXhSA+IGhpZnVieW91XCA7CivogIHlpKvlqaYgPiByb3VmdXVmdVwgOwor5Zyw5LiL5rC0ID4gY2hpa2FzdWlcIDsKK+mbu+awl+S7oyA+IGRlbmtpZGFpXCA7Civlrprnvqnln58gPiB0ZWlnaWlraVwgOwor5pS+54Gr572qID4gaG91a2F6YWlcIDsKK+mbqOWQiOe+vSA+IGFtYWdhcHBhXCA7Civlj5fliJHogIUgPiBqdWtlaXNoYVwgOwor6Z2e5YWs6ZaLID4gaGlrb3VrYWlcIDsKK+aZruiri+WgtCA+IGZ1c2hpbmJhXCA7CivlpJrls7bmtbcgPiB0YXRvdWthaVwgOwor5Yq05YON5q2MID4gcm91ZG91a2FcIDsKK+WvhOa4r+WcsCA+IGtpa291Y2hpXCA7CivlrprmnJ/kvr8gPiB0ZWlraWJpblwgOwor5pyq5p2l5b2iID4gbWlyYWlrZWlcIDsKK+mjm+ihjOWjqyA+IGhpa291c2hpXCA7CivlpornlKPlqaYgPiBuaW5zYW5wdVwgOwor55+t5pmC6ZaTID4gdGFuamlrYW5cIDsKK+WBj+W3ruWApCA+IGhlbnNhY2hpXCA7CivkuIvpmY3nt5ogPiBrYWtvdXNlblwgOwor5rSL6I+T5a2QID4geW91Z2FzaGlcIDsKK+aWreijgeapnyA+IGRhbnNhaWtpXCA7Civpo5vooYzloLQgPiBoaWtvdWpvdVwgOwor5bel5YW35YWlID4ga291Z3VpcmVcIDsKK+S9k+a4qeioiCA+IHRhaW9ua2VpXCA7CivnmbrooYzml6UgPiBoYWtrb3ViaVwgOwor5ou35ZWP5YW3ID4gZ291bW9uZ3VcIDsKK+mZpOWkluS+iyA+IGpvZ2FpcmVpXCA7Civlr7/ogIHkurogPiBqdXJvdWppblwgOwor5YWs5Y+W5aeUID4ga291dG9yaWlcIDsKK+mZouWkluWboyA+IGluZ2FpZGFuXCA7CivkuI3lpInmgKcgPiBmdWhlbnNlaVwgOwor5aSa55Sj57O7ID4gdGFzYW5rZWlcIDsKK+Wwj+imj+aooSA+IHNob3VraWJvXCA7CivlkIjorbDliLYgPiBnb3VnaXNlaVwgOwor57at566h5p2fID4gaWthbnNva3VcIDsKK+mrmOa4qeioiCA+IGtvdW9ua2VpXCA7CivliJ3nrYnnp5EgPiBzaG90b3VrYVwgOwor6KiY5oa25rOVID4ga2lva3Vob3VcIDsKK+S7iuacneaWuSA+IGtlc2FnYXRhXCA7CivpgbjmjJnljLogPiBzZW5reW9rdVwgOwor56C056CV5oCnID4gaGFzYWlzZWlcIDsKK+m5v+mHjuiLkSA+IHJva3V5YW9uXCA7CivoiJ7lj7Doo48gPiBidXRhaXVyYVwgOwor57WM5Za25qipID4ga2VpZWlrZW5cIDsKK+S4jeeHg+aApyA+IGZ1bmVuc2VpXCA7CivnpZ7npYflrpggPiBqaW5naWthblwgOwor5rCP57Sg5aeTID4gdWppc3Vqb3VcIDsKK+iiq+Wus+iAhSA+IGhpZ2Fpc2hhXCA7CivmsLTphbjln7ogPiBzdWlzYW5raVwgOwor5aSp5L2T5ZuzID4gdGVudGFpenVcIDsKK+i/kei3nemboiA+IGtpbmt5b3JpXCA7CivmupbnpL7lk6EgPiBqdW5zaGFpblwgOwor5Lq65Lu26LK7ID4gamlua2VuaGlcIDsKK+W4uOW+l+aEjyA+IGpvdXRva3VpXCA7Civnmq7ohILohbogPiBoaXNoaXNlblwgOwor54Sh5a6a5b2iID4gbXV0ZWlrZWlcIDsKK+WPr+eUqOaApyA+IGtheW91c2VpXCA7CivkurrnlJ/mtL4gPiBqaW5zZWloYVwgOwor55m66KGM5omAID4gaGFra291am9cIDsKK+aRqeWkqealvCA+IG1hdGVucm91XCA7CivlsI/plpPniakgPiBrb21hbW9ub1wgOwor5b6h5aSn5bGkID4gZ290YWlzb3VcIDsKK+itpuWCmemaiiA+IGtlaWJpdGFpXCA7CivlibLng7nnnYAgPiBrYXBwb3VnaVwgOwor5Y2U5ZKM6Z+zID4ga3lvdXdhb25cIDsKK+WPl+WLleaFiyA+IGp1ZG91dGFpXCA7Civnt4/li5Xlk6EgPiBzb3Vkb3VpblwgOwor6Iqx5p6X57OWID4ga2FyaW50b3VcIDsKK+ato+ekvuWToSA+IHNlaXNoYWluXCA7CivnrYnmuKnnt5ogPiB0b3VvbnNlblwgOwor5b6h6ZyK5bGLID4gbWl0YW1heWFcIDsKK+S4gOWkleipsSA+IGlzc2VraXdhXCA7CivlsI/ngrrmm78gPiBrb2dhd2FzZVwgOwor56ys5LiA5L2NID4gZGFpaWNoaWlcIDsKK+eojumWouWQjyA+IHplaWthbnJpXCA7CivppIrogrLosrsgPiB5b3Vpa3VoaVwgOwor5rWB6Y+R6aasID4geWFidXNhbWVcIDsKK+aOp+iotOS6uiA+IGtvdXNvbmluXCA7CivojLboqbHkvJogPiBjaGF3YWthaVwgOwor5Zar57eK5LqLID4ga2lra2luamlcIDsKK+WQuOmHkeWJmyA+IGtva29uZ291XCA7CivogIHnt7TlrrYgPiByb3VyZW5rYVwgOwor5LiN6Kq/5ZKMID4gZnVjaG91d2FcIDsKK+awl+euoeaUryA+IGtpa2Fuc2hpXCA7CivmsLTphbjljJYgPiBzdWlzYW5rYVwgOwor5aSn5Lq65rCXID4gZGFpbmlua2lcIDsKK+mdkumKheWZqCA+IHNlaWRvdWtpXCA7Civpo5vooYzkvr8gPiBoaWtvdWJpblwgOwor5Y+v6IO95rOVID4ga2Fub3Vob3VcIDsKK+ecn+ePoOavjSA+IHNoaW5qdWJvXCA7CivlsILmlLvnp5EgPiBzZW5rb3VrYVwgOwor5YyW6Ia/6I+MID4ga2Fub3VraW5cIDsKK+mdnuW4uOe3miA+IGhpam91c2VuXCA7Civnsr7kuIDmna8gPiBzZWlpcHBhaVwgOwor6YGH5LiN6YGHID4gZ3V1ZnVndXVcIDsKK+acquiAleWcsCA+IG1pa291Y2hpXCA7CivploDkuIvnlJ8gPiBtb25rYXNlaVwgOwor5LiA6aKo5ZGCID4gaGl0b2Z1cm9cIDsKK+WfuemkiuWfuiA+IGJhaXlvdWtpXCA7Civou43pmorljJYgPiBndW50YWlrYVwgOwor5ryU6Iq45LyaID4gZW5nZWlrYWlcIDsKK+aWh+S6uueUuyA+IGJ1bmppbmdhXCA7Civnj77mmYLku6MgPiBnZW5qaWRhaVwgOwor5bqD56+E5ZuyID4ga291aGFuJydpXCA7CivlhoblsYvmoLkgPiBtYXJ1eWFuZVwgOwor5Z+56aSK5ZyfID4gYmFpeW91ZG9cIDsKK+Wvkuawl+WboyA+IGthbmtpZGFuXCA7CivnspfliKnnm4ogPiBhcmFyaWVraVwgOwor5LqI566X5aSWID4geW9zYW5nYWlcIDsKK+mdnuawkeS4uyA+IGhpbWluc2h1XCA7Civlj5fnm4rogIUgPiBqdWVraXNoYVwgOwor5a6J5a6a5p2/ID4gYW50ZWliYW5cIDsKK+iomOW/temkqCA+IGtpbmVua2FuXCA7CivlpKflroflrpkgPiBkYWl1Y2h1dVwgOwor5Lqc5oCl5oCnID4gYWt5dXVzZWlcIDsKK+ioiOeul+ewvyA+IGtlaXNhbmJvXCA7CivpnZnmraLnlLsgPiBzZWlzaGlnYVwgOwor5LiN5pW05ZCIID4gZnVzZWlnb3VcIDsKK+S6jOmHjemhjiA+IG5panV1YWdvXCA7CivliLblvqHmqZ8gPiBzZWlneW9raVwgOwor5LqM562J5YiGID4gbml0b3VidW5cIDsKK+W5s+eCieazlSA+IGhlaXJvaG91XCA7CivkupTnqJzloKEgPiBnb3J5b3Vob1wgOwor5pyq5p2l5YOPID4gbWlyYWl6b3VcIDsKK+i2s+a4qeWZqCA+IHNva3VvbmtpXCA7CivkuoznrYnlhbUgPiBuaXRvdWhlaVwgOwor6LK05peP6ZmiID4ga2l6b2t1aW5cIDsKK+e2membu+WZqCA+IGtlaWRlbmtpXCA7CivoqJjlj7foq5YgPiBraWdvdXJvblwgOwor5ZCN6Kme5Y+lID4gbWVpc2hpa3VcIDsKK+S8nemmrOiIuSA+IHRlbm1hc2VuXCA7CivpioDmsrPns7sgPiBnaW5nYWtlaVwgOwor5aSn5a6u5Y+4ID4gZGFpZ3V1amlcIDsKK+a1geihjOebriA+IGhheWFyaW1lXCA7CivpgaDoppbnnLwgPiBlbnNoaWdhblwgOwor5Y215bej54KOID4gcmFuc291ZW5cIDsKK+acquS6oeS6uiA+IG1pYm91amluXCA7CivkuI3ntYzmuIggPiBmdWtlaXphaVwgOwor5byV55So56ymID4gaW4nJ3lvdWZ1XCA7Civmn5TpgZPlrrYgPiBqdXVkb3VrYVwgOwor5LiN5Z2H6KGhID4gZnVraW5rb3VcIDsKK+WvvuipseiAhSA+IHRhaXdhc2hhXCA7CivoqJ/li5npg6ggPiBzaG91bXVidVwgOwor5b6h6ZyK5YmNID4gZ29yZWl6ZW5cIDsKK+WFjOaPm+WIuCA+IGRha2Fua2VuXCA7CivkuI3mkYLnlJ8gPiBmdXNlc3NlaVwgOwor5pel5pys6aKoID4gbmlob25mdXVcIDsKK+WAmeijnOWcsCA+IGtvdWhvY2hpXCA7CivnoILpmLLmnpcgPiBzYWJvdXJpblwgOwor5LiL5aOr5a6YID4ga2FzaGlrYW5cIDsKK+W4guitsOS8miA+IHNoaWdpa2FpXCA7CivkuIDmmYLmnJ8gPiBpY2hpamlraVwgOwor6Ieq6LKg5b+DID4gamlmdXNoaW5cIDsKK+ebuOWQiOWCmCA+IGFpYWlnYXNhXCA7CivorJnorbLoqp4gPiBrZW5qb3Vnb1wgOwor5om25oyB57GzID4gZnVjaGltYWlcIDsKK+WGjei1t+WLlSA+IHNhaWtpZG91XCA7CivnjaPljLvlraYgPiBqdXVpZ2FrdVwgOwor6Z2e5bi455SoID4gaGlqb3V5b3VcIDsKK+egtOW7ieaBpSA+IGhhcmVuY2hpXCA7Civlh7rmlL7poYwgPiBkZWhvdWRhaVwgOwor5a6J5a6a5oSfID4gYW50ZWlrYW5cIDsKK+mkiuiAgemZoiA+IHlvdXJvdWluXCA7Civph47oia/njKsgPiBub3JhbmVrb1wgOwor5pyq5LiB5bm0ID4gbWl0ZWluZW5cIDsKK+WuieWumuaApyA+IGFudGVpc2VpXCA7CivmsbrnrpfmnJ8gPiBrZXNzYW5raVwgOwor6Ieq5LmX5qC5ID4gamlqb3Vrb25cIDsKK+WFqOiNt+mHjSA+IHplbmthanV1XCA7CivlpaXlvqHmrr8gPiBva3Vnb3RlblwgOwor6KO96YCg5omAID4gc2Vpem91am9cIDsKK+W/q+eUt+WFkCA+IGthaWRhbmppXCA7Civml7rmlofnpL4gPiBvdWJ1bnNoYVwgOwor6LaF6Z+z5rOiID4gY2hvdW9ucGFcIDsKK+WuiOitt+mciiA+IHNodWdvcmVpXCA7CivmnKjmm77lt50gPiBraXNvZ2F3YVwgOwor5byx6Z+z5ZmoID4gamFrdW9ua2lcIDsKK+axuueul+aXpSA+IGtlc3NhbmJpXCA7Civoh6rkuLvmqKkgPiBqaXNodWtlblwgOwor6IO95byB5a62ID4gbm91YmVua2FcIDsKK+WPr+iDveaApyA+IGthbm91c2VpXCA7CivlpKfml6bpgqMgPiBvb2RhbicnbmFcIDsKK+WNsOW6puaVmSA+IGluZG9reW91XCA7CivnhKHkurrls7YgPiBtdWppbnRvdVwgOwor55yf5Ly85LqLID4gbWFuZWdvdG9cIDsKK+ishOWGmeWZqCA+IHRvdXNoYWtpXCA7CivluLDpgoTogIUgPiBraWthbnNoYVwgOwor5Yqp55Sj6ZmiID4gam9zYW4nJ2luXCA7CivlpbPlupflk6EgPiBqb3RlbicnaW5cIDsKK+ibuOmDqOWxiyA+IHRha29iZXlhXCA7CivkuojnrpfkuIogPiB5b3NhbmpvdVwgOwor5a6a5pmC5Yi2ID4gdGVpamlzZWlcIDsKK+ato+W8puazoiA+IHNlaWdlbmhhXCA7CivkvZnmiYDkuosgPiB5b3NvZ290b1wgOwor6aas6bm/6ICFID4gYmFrYW1vbm9cIDsKK+WEgOekvOWFtSA+IGdpcmVpaGVpXCA7Civml6XmnKzphZIgPiBuaWhvbnNodVwgOwor5pep55Sj5YWQID4gc291emFuamlcIDsKK+aOoee2v+WZqCA+IHNhaW1lbmtpXCA7Civoi7HpgKPpgqYgPiBlaXJlbnBvdVwgOwor5pep55Sf5YWQID4gc291c2VpamlcIDsKK+WKoOebn+iAhSA+IGthbWVpc2hhXCA7CivpmY3pm6jph48gPiBrb3V1cnlvdVwgOwor6K2m5YKZ6ImHID4ga2VpYml0ZWlcIDsKK+WHuuadpeS6iyA+IGRla2lnb3RvXCA7CivkvqHpm7vlrZAgPiBrYWRlbnNoaVwgOwor5Y+k55Sf55WMID4ga29zZWlrYWlcIDsKK+WItuWLleapnyA+IHNlaWRvdWtpXCA7Civph5HprZrlsYsgPiBraW5neW95YVwgOwor5pyo5aSp6JO8ID4gbWF0YXRhYmlcIDsKK+WNiuijuOS9kyA+IGhhbnJhdGFpXCA7Civml6XmnKzou40gPiBuaWhvbmd1blwgOwor5pel5pys6LuKID4gbmlob25zaGFcIDsKK+S/rue+hemBkyA+IHNodXJhZG91XCA7CivllYbooYzngrogPiBzaG91a291aVwgOwor5p2h6YeM5Yi2ID4gam91cmlzZWlcIDsKK+aKleW9seazlSA+IHRvdWVpaG91XCA7CivmnInlsL7poZ4gPiB5dXViaXJ1aVwgOwor5qyn576F5be0ID4geW91cm9wcGFcIDsKK+S4lumWk+S9kyA+IHNla2VudGVpXCA7CivkvIrpgZTlt7sgPiBkYXRlbWFraVwgOwor5rC05Yip5qipID4gc3VpcmlrZW5cIDsKK+WPsuWtpuWutiA+IHNoaWdha2thXCA7CivntI3ku5jph5EgPiBub3VmdWtpblwgOwor6JWO6bqm5q67ID4gc29iYWdhcmFcIDsKK+aWueWQkeiItSA+IGhvdWtvdWRhXCA7CivlpI/oh7Pnt5ogPiBnZXNoaXNlblwgOwor5LiN5Z2H562JID4gZnVraW50b3VcIDsKK+Wuh+WumeW4vSA+IHVjaHV1Ym91XCA7CivnhKHpoLzmvKIgPiBidXJhaWthblwgOwor5r+D5bqm6KiIID4gbm91ZG9rZWlcIDsKK+S4gOaYqOW5tCA+IG90b3Rvc2hpXCA7CivmnKrntYzpqJMgPiBtaWtlaWtlblwgOwor5pyd5a+d5Z2KID4gYXNhbmVib3VcIDsKK+mBjuWkp+imliA+IGthZGFpc2hpXCA7Civnv6Hnv6DoibIgPiBoaXN1aWlyb1wgOwor5Zyf5qC55oCnID4gZG9rb25qb3VcIDsKK+e3j+aooeanmCA+IHNvdW1veW91XCA7CivoqIjnrpfmqZ8gPiBrZWlzYW5raVwgOwor5byB5b2T5bGLID4gYmVudG91eWFcIDsKK+S7o+aJk+iAhSA+IGRhaWRhc2hhXCA7CivpoqjlqpLoirEgPiBmdXViYWlrYVwgOwor54Sh6Kmm6aiTID4gbXVzaGlrZW5cIDsKK+mGuOmAoOmFoiA+IGpvdXpvdXN1XCA7Civlj43li5XmtL4gPiBoYW5kb3VoYVwgOwor57WM5riI5a62ID4ga2VpemFpa2FcIDsKK+a3i+W3tOiFuiA+IHJpbnBhc2VuXCA7Civoh6rkuLvmgKcgPiBqaXNodXNlaVwgOwor6LaK5aSp5qW9ID4gZXRlbnJha3VcIDsKK+aoqeWIqemHkSA+IGtlbnJpa2luXCA7CivmhaLmgKfljJYgPiBtYW5zZWlrYVwgOwor5o6I5Lmz5pyfID4ganVueXV1a2lcIDsKK+WwgumWgOiqniA+IHNlbm1vbmdvXCA7CivliY3oiJ7lj7AgPiBtYWVidXRhaVwgOwor6YG456eR55SfID4gc2Vua2FzZWlcIDsKK+Wto+WIiuiqjCA+IGtpa2Fuc2hpXCA7Civlrp/pmpvlrrYgPiBqaXNzYWlrYVwgOwor5LiA5pi85aScID4gaXRjaHV1eWFcIDsKK+ihhuitsOmZoiA+IHNodXVnaWluXCA7Civml6XmnKzoo70gPiBuaWhvbnNlaVwgOwor5Y2w5Yik5birID4gaW5iYW5zaGlcIDsKK+Wwj+eBq+WZqCA+IHNob3VrYWtpXCA7CivnhKHpoqjluK8gPiBtdWZ1dXRhaVwgOwor5Yi25b6h5ZmoID4gc2VpZ3lva2lcIDsKK+i1sOafu+e3miA+IHNvdXNhc2VuXCA7CivnqbrmiYvlrrYgPiBrYXJhdGVrYVwgOwor5LiN5Zmo6YePID4gYnVraXJ5b3VcIDsKK+WkqeS6leWApCA+IHRlbmpvdW5lXCA7CivoqIjnrpfmnKggPiBrZWlzYW5naVwgOwor5o6h54Kt5omAID4gc2FpdGFuam9cIDsKK+W8geWLmeWumCA+IGJlbm11a2FuXCA7Civlj5fnm4rmqKkgPiBqdWVraWtlblwgOwor5Yqg5bel57SZID4ga2Frb3VzaGlcIDsKK+aVmeWLmeiqsiA+IGt5b3VtdWthXCA7CivpgKPli5XmqZ8gPiByZW5kb3VraVwgOwor5Lqk5beu54K5ID4ga291c2F0ZW5cIDsKK+itsOS6i+mMsiA+IGdpamlyb2t1XCA7Civlho3mnaXlubQgPiBzYXJhaW5lblwgOwor5LiA5pio5aScID4gaXNzYWt1eWFcIDsKK+Wuh+WumeWhtSA+IHVjaHV1amluXCA7CivmsLTpgZPlsYsgPiBzdWlkb3V5YVwgOwor6YeN6LuM5p2hID4ganV1a2lqb3VcIDsKK+mBlee0hOmHkSA+IGl5YWt1a2luXCA7CivpuJrptaHnl4UgPiBvdW11YnlvdVwgOwor5Y2Y5oCn6IqxID4gdGFuc2Vpa2FcIDsKK+azqOaEj+eCuSA+IGNodXVpdGVuXCA7CivluLjlgpnph5EgPiBqb3ViaWtpblwgOwor6Lui56e75oCnID4gdGVuJydpc2VpXCA7CivmtLvngavlsbEgPiBrYWtrYXphblwgOwor5Yqg5bel56iOID4ga2Frb3V6ZWlcIDsKK+e+jueyp+mZoiA+IGJpc2hvdWluXCA7CivojLbnrqrnrKUgPiBjaGFkYW5zdVwgOwor5Zm054Gr5bGxID4gZnVua2F6YW5cIDsKK+WcsOaWueaZgiA+IGNoaWhvdWppXCA7CivmgqrppJPprLwgPiB3YXJ1Z2FraVwgOwor5Y2a5oSb5a62ID4gaGFrdWFpa2FcIDsKK+aDheWgsemDqCA+IGpvdWhvdWJ1XCA7Civml6XmnKzojLYgPiBuaWhvbmNoYVwgOwor5YWJ6KGM5beuID4ga291a291c2FcIDsKK+WkluiAs+mBkyA+IGdhaWppZG91XCA7CivlnLDpnIfms6IgPiBqaXNoaW5oYVwgOwor5LiJ5aGB5omTID4gc2FucnVpZGFcIDsKK+WLvuW8leeKtiA+IGtvdWluam91XCA7CivlnLDpm7fmupAgPiBqaXJhaWdlblwgOwor6Zu75qmf5a2QID4gZGVua2lzaGlcIDsKK+W4uOWCmei7jSA+IGpvdWJpZ3VuXCA7CivlsI/lnovljJYgPiBrb2dhdGFrYVwgOwor5Yi35q+b5YWIID4gaGFrZXNha2lcIDsKK+mdkuWGhemanCA+IGFvc29rb2hpXCA7CivoqZXorbDlk6EgPiBoeW91Z2lpblwgOwor5YWs5YiG5q+NID4ga291YnVuYm9cIDsKK+WPr+iBtOW6piA+IGthY2hvdWRvXCA7CivnhKHmnaHku7YgPiBtdWpvdWtlblwgOwor55+i6aOb55m9ID4geWFnYXN1cmlcIDsKK+aJi+iFleWutiA+IHNodXdhbmthXCA7CivmpJzkuovmraMgPiBrZW5qaXNlaVwgOwor5YG95ZaE6ICFID4gZ2l6ZW5zaGFcIDsKK+S8neWwjuW6piA+IGRlbmRvdWRvXCA7Civlhazli5/lgrUgPiBrb3Vib3NhaVwgOwor5qmf6Zai6YqDID4ga2lrYW5qdXVcIDsKK+atpuWLh+S8nSA+IGJ1eXV1ZGVuXCA7CivliLblvqHkuIsgPiBzZWlneW9rYVwgOwor6JOu6I+v6I2JID4gcmVuZ2Vzb3VcIDsKK+WgseefpeapnyA+IGhvdWNoaWtpXCA7CivlpI/oh7PngrkgPiBnZXNoaXRlblwgOwor5q2m6Iq46ICFID4gYnVnZWlzaGFcIDsKK+i1sOmmrOeBryA+IHNvdW1hdG91XCA7Civmra/ou4zmnaEgPiBzaGlraWpvdVwgOwor5LqM6YeN56iOID4gbmlqdXV6ZWlcIDsKK+ato+avlOS+iyA+IHNlaWhpcmVpXCA7CivpoJDph5HogIUgPiB5b2tpbnNoYVwgOwor5Yqg6YCf5bqmID4ga2Fzb2t1ZG9cIDsKK+ato+W9k+WMliA+IHNlaXRvdWthXCA7CivmiYvkuI3otrMgPiB0ZWJ1c29rdVwgOwor5YG054Gr5bGxID4gc29ra2F6YW5cIDsKK+mBjuS4jeWPiiA+IGthZnVreXV1XCA7CivmrrrpvKDliaQgPiBzYXNzb3phaVwgOwor6KiY5b+156WtID4ga2luZW5zYWlcIDsKK+S4jeaJi+mamyA+IGZ1dGVnaXdhXCA7CivkuI3nrYnovrogPiBmdXRvdWhlblwgOwor6KKr5a6z5ZywID4gaGlnYWljaGlcIDsKK+apn+mWoui7iiA+IGtpa2Fuc2hhXCA7Civml6XmnKzntJkgPiBuaWhvbnNoaVwgOwor5a6H5a6Z5Lq6ID4gdWNodXVqaW5cIDsKK+a9nOawtOWkqyA+IHNlbnN1aWZ1XCA7CivlvqHpmYDku48gPiBvZGFidXRzdVwgOwor5aSc5a2m5qChID4geWFnYWtrb3VcIDsKK+WGjeS4iuaYoCA+IHNhaWpvdWVpXCA7CivlpJbmnaXoqp4gPiBnYWlyYWlnb1wgOwor6Zuj56C06Ii5ID4gbmFucGFzZW5cIDsKK+mnkuS4i+mnhCA+IGtvbWFnZXRhXCA7Civms6jmhI/mm7ggPiBjaHV1aXNob1wgOwor5LqU6YeN5aWPID4gZ29qdXVzb3VcIDsKK+a8q+irh+WutiA+IG1hbmRhbmthXCA7CivlgI3nsr7luqYgPiBiYWlzZWlkb1wgOwor57SN5LuY6ICFID4gbm91ZnVzaGFcIDsKK+WZtOeBq+WPoyA+IGZ1bmtha291XCA7Civku4vorbfkurogPiBrYWlnb25pblwgOwor6YGT6K2w5LyaID4gZG91Z2lrYWlcIDsKK+acieapn+S9kyA+IHl1dWtpdGFpXCA7CivmrbvnlKPlhZAgPiBzaGl6YW5qaVwgOwor5LiN6KaP5YmHID4gZnVraXNva3VcIDsKK+a9nOawtOWZqCA+IHNlbnN1aWtpXCA7CivmlbTlgpnlt6UgPiBzZWliaWtvdVwgOwor6I2S5q2m6ICFID4gYXJhbXVzaGFcIDsKK+mBoOWcsOeCuSA+IGVuY2hpdGVuXCA7CivlpJblrZfntJkgPiBnYWlqaXNoaVwgOwor5LuK5pmC5YiGID4gaW1hamlidW5cIDsKK+WPjeWLleWutiA+IGhhbmRvdWthXCA7CivmqZ/plqLoqowgPiBraWthbnNoaVwgOwor5aSn5pmm5pelID4gb29taXNva2FcIDsKK+S4jeeyvuW3pyA+IGZ1c2Vpa291XCA7CivlpKfkuIjlpKsgPiBkYWlqb3VidVwgOwor5L+d5YWo5LyaID4gaG96ZW5rYWlcIDsKK+WQjOe0oOS9kyA+IGRvdXNvdGFpXCA7Civlho3kuqTku5ggPiBzYWlrb3VmdVwgOwor5aSp5pel5rOVID4gdGVucGlob3VcIDsKK+WuiOitt+elniA+IHNodWdvamluXCA7CivntYTlkIjosrsgPiBrdW1pYWloaVwgOwor6I2S6JWq5ZywID4ga291YnVjaGlcIDsKK+aEm+Wqm+ecjCA+IGVoaW1la2VuXCA7CivoqIjnrpflmaggPiBrZWlzYW5raVwgOwor5pyq6Z2S5bm0ID4gbWlzZWluZW5cIDsKK+S6uuS6i+ashCA+IGppbmppcmFuXCA7Civplbfpn7PnrKYgPiBjaG91b25wdVwgOwor5LiN5Z2H5paJID4gZnVraW5zZWlcIDsKK+a6luWCmemHkSA+IGp1bmJpa2luXCA7Civmt4vlt7TmtrIgPiByaW5wYWVraVwgOwor5LqL5YuZ6ZW3ID4gamltdWNob3VcIDsKK+S/rueQhuWxiyA+IHNodXVyaXlhXCA7Civmh5DnlpHoq5YgPiBrYWlnaXJvblwgOwor5ZaJ6aCt54KOID4ga291dG91ZW5cIDsKK+eWjuWkluaEnyA+IHNvZ2Fpa2FuXCA7CivliqDpgJ/lmaggPiBrYXNva3VraVwgOwor5Yqg5bel5q2vID4ga2Frb3VzaGlcIDsKK+W6reS4i+mnhCA+IG5pd2FnZXRhXCA7CivpnZ7luLjli6QgPiBoaWpvdWtpblwgOwor6YeO55CD6YOoID4geWFreXV1YnVcIDsKK+WJjemnhuaIpiA+IHplbmt1c2VuXCA7CivmjIflsI7pg6ggPiBzaGlkb3VidVwgOwor6LKh55Sj5a62ID4gemFpc2Fua2FcIDsKK+WxheWCrOS/gyA+IGl6YWlzb2t1XCA7CivlvZPmrbPppqwgPiB0b3VzYWliYVwgOwor5LuB546L5YqbID4gbmlvdXJpa2lcIDsKK+WkmuiCieaenCA+IHRhbmlrdWthXCA7CivmnIDnm5vmnJ8gPiBzYWlzZWlraVwgOwor5Y+N5q+U5L6LID4gaGFucGlyZWlcIDsKK+Wls+WtkOmrmCA+IGpvc2hpa291XCA7Civplovlm57ot68gPiBrYWlrYWlyb1wgOwor5a+p5p+75ZOhID4gc2hpbnNhaW5cIDsKK+m6nemmmeawtCA+IGpha291c3VpXCA7Civml6XmnKzniqwgPiBuaWhvbmtlblwgOwor5LqL5YuZ6YePID4gamltdXJ5b3VcIDsKK+W8leeUqOWPpSA+IGluJyd5b3VrdVwgOwor56eR5a2m6ZmiID4ga2FnYWt1aW5cIDsKK+WJjemgremDqCA+IHplbnRvdWJ1XCA7CivljYHlm5vml6UgPiBqdXV5b2trYVwgOwor6YCj5q2M5birID4gcmVuZ2FzaGlcIDsKK+aUr+aPtOiAhSA+IHNoaWVuc2hhXCA7CivmorbmnKjluqcgPiBrYWppa2l6YVwgOwor5Zyw5pa55Yy6ID4gY2hpaG91a3VcIDsKK+WxseeBq+S6iyA+IHlhbWFrYWppXCA7CivmiY3mnKrmuoAgPiBzYWltaW1hblwgOwor5Lq66aGe54y/ID4gamlucnVpZW5cIDsKK+itsOWumuabuCA+IGdpdGVpc2hvXCA7CivojLblnYrkuLsgPiBjaGFib3V6dVwgOwor5Yqg55uf5bqXID4ga2FtZWl0ZW5cIDsKK+e3qeS4i+WJpCA+IGthbmdlemFpXCA7CivokIzpu4ToibIgPiBtb2VnaWlyb1wgOwor56m65rCX6YqDID4ga3V1a2lqdXVcIDsKK+m5ueawtOa5liA+IGthbnN1aWtvXCA7CivmtbfogIHohbAgPiBlYmlnb3NoaVwgOwor55Sf6KiI6LK7ID4gc2Vpa2VpaGlcIDsKK+WPguWKoOiAhSA+IHNhbmthc2hhXCA7Civml6XmnKzmtbcgPiBuaWhvbmthaVwgOwor6KKr5LmX5pWwID4gaGlqb3VzdXVcIDsKK+aJi+miqOeQtCA+IHRlZnV1a2luXCA7Civms6jmhI/loLEgPiBjaHV1aWhvdVwgOwor6aKo5pmv55S7ID4gZnV1a2VpZ2FcIDsKK+mbu+WtkOmfsyA+IGRlbnNoaW9uXCA7Civou6LljJbns5YgPiB0ZW5rYXRvdVwgOwor6ZaJ57WM5pyfID4gaGVpa2Vpa2lcIDsKK+WHuueEoeeyviA+IGRlYnVzaG91XCA7CivkupLliqnnmoQgPiBnb2pvdGVraVwgOwor5Lm+5omA5bivID4ga2Fuam90YWlcIDsKK+Wkp+mfs+WjsCA+IGRhaW9uam91XCA7CivnoLTnlKPogIUgPiBoYXNhbnNoYVwgOwor6ZaJ5Zue6LevID4gaGVpa2Fpcm9cIDsKK+apn+mWoue0mSA+IGtpa2Fuc2hpXCA7Civog6Hpurvmk4IgPiBnb21hc3VyaVwgOwor5qmf6Zu35Y6fID4ga2lyYWlnZW5cIDsKK+WkmuWtlOaApyA+IHRha291c2VpXCA7CivlkIjmiJDpn7MgPiBnb3VzZWlvblwgOwor56C06a2U5byTID4gaGFtYXl1bWlcIDsKK+mAoOW9seWJpCA+IHpvdWVpemFpXCA7CivlgKbmgKDmnJ8gPiBrZW50YWlraVwgOwor5pyq57SN6ICFID4gbWlub3VzaGFcIDsKK+S6jOmHjeaYnyA+IG5panV1c2VpXCA7CivnuYHkvZPlrZcgPiBoYW50YWlqaVwgOwor5raI6Z+z5ZmoID4gc2hvdW9ua2lcIDsKK+WkmuS6uuaVsCA+IHRhbmluenV1XCA7CivotbTku7vlnLAgPiBmdW5pbmNoaVwgOwor5Y+k55Sf5LujID4ga29zZWlkYWlcIDsKK+iKneWxheawlyA+IHNoaWJhaWdlXCA7CivmqKrluqfmqJkgPiBvdXphaHlvdVwgOwor6Ieq6K2m5ZujID4gamlrZWlkYW5cIDsKK+aaq+WumuahiCA+IHphbnRlaWFuXCA7CivprZrluILloLQgPiB1b2ljaGliYVwgOwor6aeF6aas6LuKID4gZWtpYmFzaGFcIDsKK+WvvuipseS9kyA+IHRhaXdhdGFpXCA7CivmuIXmjoPlpKsgPiBzZWlzb3VmdVwgOwor6auY5oSf5bqmID4ga291a2FuZG9cIDsKK+e0gOWFg+WJjSA+IGtpZ2VuemVuXCA7Civno6jnoJTntJkgPiBtYWtlbnNoaVwgOwor54Gr6Jyl6Jy0ID4gaGl0b2thZ2VcIDsKK+aXouWpmuiAhSA+IGtpa29uc2hhXCA7CivmkKzpgIHms6IgPiBoYW5zb3VoYVwgOwor55aO6ZaL6ICFID4gc29rYWlzaGFcIDsKK+aAneaDs+WutiA+IHNoaXNvdWthXCA7CivlsqnnlLDluK8gPiBpd2F0YW9iaVwgOwor6ZaL6ZaJ5qmfID4ga2FpaGVpa2lcIDsKK+W6j+egtOaApSA+IGpvaGFreXV1XCA7CivotrPlv6Dlrp8gPiBhc2hpbWFtZVwgOwor5Y2K5rib5pyfID4gaGFuZ2Vua2lcIDsKK+iHqueEtue+jiA+IHNoaXplbmJpXCA7CivliY3kuJbntIAgPiB6ZW5zZWlraVwgOwor56CU56Oo57SZID4ga2VubWFzaGlcIDsKK+mdkuWGmeecnyA+IGFvamFzaGluXCA7CivnpYjnpbfmm7ggPiBraXRvdXNob1wgOwor5biw6YKE5YW1ID4ga2lrYW5oZWlcIDsKK+mWiee1jOW+jCA+IGhlaWtlaWdvXCA7CivlpJrmlrnpnaIgPiB0YWhvdW1lblwgOwor54eV5bC+5pyNID4gZW5iaWZ1a3VcIDsKK+emgOitsOabuCA+IHJpbmdpc2hvXCA7CivniLblhYTkvJogPiBmdWtlaWthaVwgOwor6auY6bqX5qW9ID4ga29tYWdha3VcIDsKK+WFqOebm+acnyA+IHplbnNlaWtpXCA7Civkuojmg7PlpJYgPiB5b3NvdWdhaVwgOwor5omB5qGD5rK5ID4gaGVudG91eXVcIDsKK+mdkuW5tOacnyA+IHNlaW5lbmtpXCA7CivlnYfnrYnljJYgPiBraW50b3VrYVwgOwor5Y+X6aiT6ICFID4ganVrZW5zaGFcIDsKK+aZguS7o+ebuCA+IGppZGFpc291XCA7CivlopfliqDliIYgPiB6b3VrYWJ1blwgOwor5LqM6YCj6YqDID4gbmlyZW5qdXVcIDsKK+S4gOWbnui7oiA+IGlra2FpdGVuXCA7CivkuLvohLPpg6ggPiBzaHVub3VidVwgOwor57SN5LuY5pu4ID4gbm91ZnVzaG9cIDsKK+WNmOW8geiKsSA+IHRhbmJlbmthXCA7CivmtYHmtarogIUgPiBydXJvdXNoYVwgOwor6I2S5Yip55uKID4gYXJhcmlla2lcIDsKK+iPk+WtkOebhiA+IGthc2hpYm9uXCA7CivlhaznlKjoqp4gPiBrb3V5b3Vnb1wgOwor5aSq6Zm954KJID4gdGFpeW91cm9cIDsKK+WPl+i6q+W9oiA+IHVrZW1pa2VpXCA7CivmsJHllrbljJYgPiBtaW4nJ2Vpa2FcIDsKK+S6uuacm+WutiA+IGppbmJvdWthXCA7Civnt4/kuozpmo4gPiBzb3VuaWthaVwgOwor6Kej6ZuH6ICFID4ga2Fpa29zaGFcIDsKK+a8ouaZguS7oyA+IGthbmppZGFpXCA7CivlhoXlpJbph44gPiBuYWlnYWl5YVwgOwor54mH5Luu5ZCNID4ga2F0YWthbmFcIDsKK+iEseiho+aJgCA+IGRhdHN1aWpvXCA7CivkuI3pjIbpi7wgPiBmdXNlaWtvdVwgOwor6LSI5LiO6ICFID4gem91eW9zaGFcIDsKK+S/neWuiOezuyA+IGhvc2h1a2VpXCA7Civmtbfppqzlm54gPiBrYWliYWthaVwgOwor6Ieq5aCV6JC9ID4gamlkYXJha3VcIDsKK+acrOWhgeaJkyA+IGhvbnJ1aWRhXCA7CivmhJvppJDkvJogPiBhaXNhbmthaVwgOwor5a++5oqX6aasID4gdGFpa291YmFcIDsKK+S7ruWQjeaWhyA+IGthbmFidW1pXCA7Civog6HpurvloakgPiBnb21hc2hpb1wgOwor5Yqg5bel5ZOBID4ga2Frb3VoaW5cIDsKK+aoqeWIqeabuCA+IGtlbnJpc2hvXCA7Civlu4PopoHntKAgPiBoYWl5b3Vzb1wgOwor56m65oOz5a62ID4ga3V1c291a2FcIDsKK+aXouWumuWApCA+IGtpdGVpY2hpXCA7Civosqnlo7Lpg6ggPiBoYW5iYWlidVwgOwor55y86Y+h5bGLID4gbWVnYW5leWFcIDsKK+WJjeS4lueVjCA+IHplbnNla2FpXCA7CivmnKzloLTmiYAgPiBob25iYXNob1wgOwor6Jma54Sh5YWaID4ga3lvbXV0b3VcIDsKK+S6uumhnuaEmyA+IGppbnJ1aWFpXCA7Civkuozph43lpY8gPiBuaWp1dXNvdVwgOwor5oSb5aW96ICFID4gYWlrb3VzaGFcIDsKK+WQiOaIkOiqniA+IGdvdXNlaWdvXCA7Civnn7Pngavnn6IgPiBpc2hpYml5YVwgOwor5Ye657SN57C/ID4gc3VpdG91Ym9cIDsKK+i7jeeuoeWMuiA+IGd1bmthbmt1XCA7Civnp4vnlLDnnIwgPiBha2l0YWtlblwgOwor5YSS5a2m55WMID4ganVnYWtrYWlcIDsKK+S4i+aJi+ezniA+IGhldGFrdXNvXCA7CivmnKrlor7lnLAgPiBtaWtvbmNoaVwgOwor5aSn5aSa5pWwID4gZGFpdGFzdXVcIDsKK+WtkOWNiOe3miA+IHNoaWdvc2VuXCA7CivmraPluLjljJYgPiBzZWlqb3VrYVwgOwor55m66YW157SgID4gaGFra291c29cIDsKK+i3nembouioiCA+IGt5b3Jpa2VpXCA7CivoiLnlsI/lsYsgPiBmdW5hZ295YVwgOwor6Ya46YCg5omAID4gam91em91am9cIDsKK+Wkp+e0jeiogCA+IGRhaW5hZ29uXCA7CivlpKnmloflrrYgPiB0ZW5tb25rYVwgOwor5qih6YCg6ICFID4gbW96b3VzaGFcIDsKK+WvneS4jei2syA+IG5lYnVzb2t1XCA7CivlsILploDlrrYgPiBzZW5tb25rYVwgOwor5pyq54S25b2iID4gbWl6ZW5rZWlcIDsKK+WJquijgeapnyA+IHNlbnNhaWtpXCA7Civos7zosrfpg6ggPiBrb3ViYWlidVwgOwor5oWI5ZaE5LyaID4gaml6ZW5rYWlcIDsKK+aCqui2o+WRsyA+IGFrdXNodW1pXCA7CivotIjkuI7nqI4gPiB6b3V5b3plaVwgOwor5L+d5a2Y57O7ID4gaG96b25rZWlcIDsKK+awl+WLlei7iiA+IGtpZG91c2hhXCA7CivmsLjkvY/ogIUgPiBlaWp1dXNoYVwgOwor5pyq54af5YWQID4gbWlqdWt1amlcIDsKK+iomOW/teWTgSA+IGtpbmVuaGluXCA7CivnoLTnk5znl4UgPiBoYWthYnlvdVwgOwor56C055Sj5rOVID4gaGFzYW5ob3VcIDsKK+WBnOmbu+aXpSA+IHRlaWRlbmJpXCA7Civlj5fpqJPnlJ8gPiBqdWtlbnNlaVwgOwor6Zm46JK45rCXID4gb2tham91a2lcIDsKK+Wun+ihjOaZgiA+IGppa2tvdWppXCA7CivmqKHpgKDntJkgPiBtb3pvdXNoaVwgOwor5LqM5Y6f5a2QID4gbmlnZW5zaGlcIDsKK+S7luaJgOiAhSA+IHlvc29tb25vXCA7Civnp4vnlLDniqwgPiBha2l0YWtlblwgOwor5LiH5Zu95peXID4gYmFua29ra2lcIDsKK+S6i+WLmeeahCA+IGppbXV0ZWtpXCA7Civmjqjnp7vnmoQgPiBzdWlpdGVraVwgOwor56m65rCX56m0ID4ga3V1a2lhbmFcIDsKK+WPl+WuueiAhSA+IGp1eW91c2hhXCA7Civns6DlkbPlmYwgPiBudWthbWlzb1wgOwor5pa55b2i5rOiID4gaG91a2VpaGFcIDsKK+aIpuWJjea0viA+IHNlbnplbmhhXCA7Civlh6bnkIbloLQgPiBzaG9yaWpvdVwgOwor5LqM5bym55C0ID4gbmlnZW5raW5cIDsKK+mFkumAoOWutiA+IHNodXpvdWthXCA7CivmjrLnpLrmnb8gPiBrZWlqaWJhblwgOwor5YaF6aKo5ZGCID4gdWNoaWJ1cm9cIDsKK+S4reWKtOWnlCA+IGNodXVyb3VpXCA7CivmhJvnjKvlrrYgPiBhaWJ5b3VrYVwgOwor5LiJ5Zue5b+MID4gc2Fua2Fpa2lcIDsKK+e3j+S7leiIniA+IHNvdWppbWFpXCA7CivphrjpgKDlrrYgPiBqb3V6b3VrYVwgOwor5Lqk5LuY6YeRID4ga291ZnVraW5cIDsKK+aJh+miqOapnyA+IHNlbnB1dWtpXCA7CivlhajlgJnoo5wgPiB6ZW5rb3Vob1wgOwor55CG5oOz6KuWID4gcmlzb3Vyb25cIDsKK+aXpeacrOWPsiA+IG5paG9uc2hpXCA7CivmvKLmlbDlrZcgPiBrYW5zdXVqaVwgOwor6Lyd54WM5bidID4ga2lrb3V0ZWlcIDsKK+aUr+aMgeiAhSA+IHNoaWppc2hhXCA7CivlpKfmloflrZcgPiBkYWltb25qaVwgOwor5a2Q5Y2I55KwID4gc2hpZ29rYW5cIDsKK+iJtuemj+WutiA+IGVucHVrdWthXCA7CivplovplonlmaggPiBrYWloZWlraVwgOwor5bCC6ZaA5Yy7ID4gc2VubW9uJydpXCA7Civmm7TlubTmnJ8gPiBrb3VuZW5raVwgOwor5bCC6ZaA5YyWID4gc2VubW9ua2FcIDsKK+aXpeacrOWIgCA+IG5paG9udG91XCA7CivkuI3ooYzlhIAgPiBmdWd5b3VnaVwgOwor5biw5bej5oCnID4ga2lzb3VzZWlcIDsKK+S4i+aJi+eJqSA+IGdldGVtb25vXCA7Civmj5DmoYjogIUgPiB0ZWlhbnNoYVwgOwor5Y+X5L+h5qmfID4ganVzaGlua2lcIDsKK+aPmuWtkOaxnyA+IHlvdXN1a291XCA7CivntYzluLjosrsgPiBrZWlqb3VoaVwgOwor5rW3546L5pifID4ga2Fpb3VzZWlcIDsKK+W5vOeomuWckiA+IHlvdWNoaWVuXCA7CivkvIHnlLvoqrIgPiBraWtha3VrYVwgOwor5pyI5qGC5qi5ID4gZ2Vra2VpanVcIDsKK+acquiomOWFpSA+IG1pa2lueXV1XCA7CivnoJTno6jmnZAgPiBrZW5tYXphaVwgOwor5LqM5bm06I2JID4gbmluZW5zb3VcIDsKK+e+qeWLh+i7jSA+IGdpeXV1Z3VuXCA7Civmlofoqp7mlocgPiBidW5nb2J1blwgOwor6KqV55Sf5pelID4gdGFuam91YmlcIDsKK+mHkeaZguioiCA+IGtpbmRva2VpXCA7CivnqbrmtJ7ljJYgPiBrdXVkb3VrYVwgOwor57Oe5ZGz5ZmMID4ga3Vzb21pc29cIDsKK+aXpeacrOS6uiA+IG5paG9uamluXCA7CivmgKfpgYrmiK8gPiBzZWl5dXVnaVwgOwor5qyh54K56ICFID4gaml0ZW5zaGFcIDsKK+mYsuiFkOWJpCA+IGJvdWZ1emFpXCA7Civml6XmnKzkuK0gPiBuaWhvbmp1dVwgOwor6IWV55u45pKyID4gdWRlenVtb3VcIDsKK+S4jeevgOWItiA+IGZ1c2Vzc2VpXCA7CivlnLDln5/lt64gPiBjaGlpa2lzYVwgOwor5L+d6K236bOlID4gaG9nb2Nob3VcIDsKK+Wwj+aJi+WFiCA+IGtvdGVzYWtpXCA7CivnhKHpmY3msLQgPiBtdWtvdXN1aVwgOwor6by75ZG85ZC4ID4gYmlrb2t5dXVcIDsKK+mHjemojuWFtSA+IGp1dWtpaGVpXCA7Civlj6Tku6Plj7IgPiBrb2RhaXNoaVwgOwor6IO96Iie5Y+wID4gbm91YnV0YWlcIDsKK+ertummrOmmrCA+IGtlaWJhdW1hXCA7CivlhY3np5/lnLAgPiBtZW5zb2NoaVwgOwor5LqM5qyh55qEID4gbmlqaXRla2lcIDsKK+a8lOWlj+iAhSA+IGVuc291c2hhXCA7CivlhbfkvZPmgKcgPiBndXRhaXNlaVwgOwor5LiA562J6LuKID4gaXR0b3VzaGFcIDsKK+S4jeWTgeihjCA+IGZ1aGlua291XCA7Civnibnnp5HlhbUgPiB0b2trYWhlaVwgOwor6ISC6IKq5rK5ID4gc2hpYm91eXVcIDsKK+W3puWkp+iHoyA+IHNhZGFpamluXCA7Civph5HlrZfloZQgPiBraW5qaXRvdVwgOwor6auY6YeO5bGxID4ga291eWFzYW5cIDsKK+Wkp+eGiuW6pyA+IG9vZ3VtYXphXCA7CivlhpLpmbrlrrYgPiBib3VrZW5rYVwgOwor5aGp5r+D5bqmID4gZW4nJ25vdWRvXCA7Civml6XkuYPkuLggPiBoaW5vbWFydVwgOwor5L2V5Yem6L+EID4gZG9rb21hZGVcIDsKK+i/keS8vOWApCA+IGtpbmppY2hpXCA7CivpgI/no4HmgKcgPiB0b3VqaXNlaVwgOwor5L+d6K236aCYID4gaG9nb3J5b3VcIDsKK+eJuea0vuWToSA+IHRva3VoYWluXCA7CivllL7mtrLohbogPiBkYWVraXNlblwgOwor5bqt5pyo5oi4ID4gbml3YWtpZG9cIDsKK+W+jOaPtOiAhSA+IGtvdWVuc2hhXCA7Civpu4TpiYTpibEgPiBvdXRla2tvdVwgOwor5Y+k5Luj5Lq6ID4ga29kYWlqaW5cIDsKK+S6i+WLmeacjSA+IGppbXVmdWt1XCA7CivlsI/puqbnsokgPiBrb211Z2lrb1wgOwor5LiN5rq25oCnID4gZnV5b3VzZWlcIDsKK+mhp+WVj+WboyA+IGtvbW9uZGFuXCA7Civkv53mnInogIUgPiBob3l1dXNoYVwgOwor6YG/55eF6ZmiID4gaGlieW91aW5cIDsKK+WJjeaZr+awlyA+IG1hZWdlaWtpXCA7CivmqZ/plqLlo6sgPiBraWthbnNoaVwgOwor5aSW5Lqk5ZOhID4gZ2Fpa291aW5cIDsKK+mKheebuOWgtCA+IGRvdXNvdWJhXCA7Civlgr7mlpzluqYgPiBrZWlzaGFkb1wgOwor6auY5bqm6KiIID4ga291ZG9rZWlcIDsKK+i/keacquadpSA+IGtpbm1pcmFpXCA7CivmjZXpr6joiLkgPiBob2dlaXNlblwgOwor5Yqg5a6z6ICFID4ga2FnYWlzaGFcIDsKK+aVsOePoOeOiSA+IGp1enVkYW1hXCA7CivmiYvnvr3lhYggPiB0ZWJhc2FraVwgOwor6KOc5Yqp57+8ID4gaG9qb3lva3VcIDsKK+aFiOaCsuW/gyA+IGppaGlzaGluXCA7CivlpJbosqjlgrUgPiBnYWlrYXNhaVwgOwor5oOF5aCx5YyWID4gam91aG91a2FcIDsKK+e3j+S6iOeulyA+IHNvdXlvc2FuXCA7CivnnJ/lpJzkuK0gPiBtYXlvbmFrYVwgOwor5LiL5oSP6K2YID4ga2Fpc2hpa2lcIDsKK+S7o+eoveWPpCA+IGRhaWdlaWtvXCA7CivmsLjkvY/mqKkgPiBlaWp1dWtlblwgOwor5L+d5pyJ57GzID4gaG95dXVtYWlcIDsKK+iHquWbveiqniA+IGppa29rdWdvXCA7Civlj43lr77oqp4gPiBoYW50YWlnb1wgOwor5aSJ55Ww5L2TID4gaGVuJydpdGFpXCA7CivliKnlt7HnmoQgPiByaWtvdGVraVwgOwor5bu65YW35bGLID4gdGF0ZWd1eWFcIDsKK+mYsuWvkuWFtyA+IGJvdWthbmd1XCA7CivlpbPlrabmoKEgPiBqb2dha2tvdVwgOwor5L+d5a6I5oCnID4gaG9zaHVzZWlcIDsKK+WlveaZr+awlyA+IGtvdWtlaWtpXCA7CivkuqTku5jogIUgPiBrb3VmdXNoYVwgOwor5Y+v5aSJ5pWwID4ga2FoZW5zdXVcIDsKK+iKseaWh+WtlyA+IGhhbmFtb2ppXCA7CivpnaLkvJrml6UgPiBtZW5rYWliaVwgOwor54WZ6I2J5bGLID4gdGFiYWtveWFcIDsKK+mbqOaooeanmCA+IGFtZW1veW91XCA7Civmj7rnsYPmnJ8gPiB5b3VyYW5raVwgOwor56qB56C05Y+jID4gdG9wcGFrb3VcIDsKK+i/keS7o+WMliA+IGtpbmRhaWthXCA7Civngrnngavns7sgPiB0ZW5rYWtlaVwgOwor5LqM5bm055SfID4gbmluZW5zZWlcIDsKK+aYn+awl+S9kyA+IHNlaWtpdGFpXCA7CivkuI3nrYnlj7cgPiBmdWRvdWdvdVwgOwor5LqU6L665b2iID4gZ29oZW5rZWlcIDsKK+S6jOi8qui7iiA+IG5pcmluc2hhXCA7CivnlKjnrqrnrKUgPiB5b3VkYW5zdVwgOwor5Ya36JS15bqrID4gcmVpem91a29cIDsKK+S4jeaJgOWtmCA+IGZ1c2hvem9uXCA7CivmipXlhYnlmaggPiB0b3Vrb3VraVwgOwor5aWz5a2Q5qChID4gam9zaGlrb3VcIDsKK+a1nOiMhOWtkCA+IGhhbWFuYXN1XCA7Civlj6Tmm7jlsZUgPiBrb3Nob3RlblwgOwor5LqM5Y2B5LujID4gbmlqdXVkYWlcIDsKK+W4guihl+WbsyA+IHNoaWdhaXp1XCA7CivmqLnmnp3nirYgPiBqdXNoaWpvdVwgOwor5bqP55uk5oimID4gam9iYW5zZW5cIDsKK+eBq+aIkOWyqSA+IGthc2VpZ2FuXCA7CivntYTlkIjlk6EgPiBrdW1pYWlpblwgOwor5Lqc6ISx6Ie8ID4gYWRha2t5dXVcIDsKK+mssemHkeiJsiA+IHVrb24nJ2lyb1wgOwor6ay85q2m6ICFID4gb25pbXVzaGFcIDsKK+aWnOaKleW9sSA+IHNoYXRvdWVpXCA7Civmu5HnqbrmqZ8gPiBrYWtrdXVraVwgOwor6Lu96aiO5YW1ID4ga2Vpa2loZWlcIDsKK+S6jOWFg+irliA+IG5pZ2Vucm9uXCA7CivmiYvmlpnnkIYgPiB0ZXJ5b3VyaVwgOwor5Y2Y5Yip5rOVID4gdGFucmlob3VcIDsKK+W+oeelnui8vyA+IG9taWtvc2hpXCA7CivlhYjpi63ljJYgPiBzZW4nJ2Vpa2FcIDsKK+aSkuW4g+WJpCA+IHNhcHB1emFpXCA7CivlkYnmnI3lsYsgPiBnb2Z1a3V5YVwgOwor5Y+X5L+h5ZmoID4ganVzaGlua2lcIDsKK+a6tuino+eCiSA+IHlvdWthaXJvXCA7Civlj6/lpInmgKcgPiBrYWhlbnNlaVwgOwor5bm06b2i5beuID4gbmVucmVpc2FcIDsKK+WIgOWcreWutiA+IHRvdWtlaWthXCA7Civps7Pku5noirEgPiBob3VzZW5rYVwgOwor5bCO5rOi566hID4gZG91aGFrYW5cIDsKK+WNmOavlOS+iyA+IHRhbnBpcmVpXCA7CivmjZXpr6jnoLIgPiBob2dlaWhvdVwgOwor55u06Laz6KKLID4gamlrYXRhYmlcIDsKK+aCquWkqumDjiA+IGFrdXRhcm91XCA7CivmnInnkIbmlbAgPiB5dXVyaXN1dVwgOwor6YOo5YiG5ZOBID4gYnVidW5oaW5cIDsKK+WPr+eHg+aApyA+IGthbmVuc2VpXCA7CivkuI3lloTmhJ8gPiBmdXplbmthblwgOwor5rSX6Z2i5omAID4gc2VubWVuam9cIDsKK+mAgeayueeuoSA+IHNvdXl1a2FuXCA7CivmoLzlrZDmiLggPiBrb3VzaGlkb1wgOwor5YW35L2T5L6LID4gZ3V0YWlyZWlcIDsKK+aUr+aMgeadrSA+IHNoaWppa291XCA7CivnhKHpmZDlpKcgPiBtdWdlbmRhaVwgOwor57K+57Gz5omAID4gc2VpbWFpam9cIDsKK+e1seiqnuirliA+IHRvdWdvcm9uXCA7CivmnKrplovlor4gPiBtaWthaWtvblwgOwor5L2c5qWt6LK7ID4gc2FneW91aGlcIDsKK+Wkp+mYquW6nCA+IG9vc2FrYWZ1XCA7CivnjIrnvo7muJMgPiBnZWliaWtlaVwgOwor5omT5pKD546LID4gZGFnZWtpb3VcIDsKK+W6g+iRieaouSA+IGtvdXlvdWp1XCA7CivojYnlibXmnJ8gPiBzb3Vzb3VraVwgOwor5L6N6KGb6ZW3ID4gamllaWNob3VcIDsKK+S6jOmAsuacqCA+IG5pc2hpbmdpXCA7CivpoZXlnKjljJYgPiBrZW56YWlrYVwgOwor5YaN6Kmm5ZCIID4gc2Fpc2hpYWlcIDsKK+S8nemfs+WZqCA+IGRlbicnb25raVwgOwor576p5YuZ55qEID4gZ2ltdXRla2lcIDsKK+i8uOWNteeuoSA+IHl1cmFua2FuXCA7CivkvY7liKnph5EgPiB0ZWlyaWtpblwgOwor5oim5Yip5ZOBID4gc2VucmloaW5cIDsKK+aWh+iqnuS9kyA+IGJ1bmdvdGFpXCA7Civkub7mgKfmsrkgPiBrYW5zZWl5dVwgOwor5pOC57KJ5pyoID4gc3VyaWtvZ2lcIDsKK+aMh+WwjuWToSA+IHNoaWRvdWluXCA7CivmnKrplovlnLAgPiBtaWthaWNoaVwgOwor56eY5pu45a6YID4gaGlzaG9rYW5cIDsKK+atpuWutueJqSA+IGJ1a2Vtb25vXCA7CivmlbTnkIbliLggPiBzZWlyaWtlblwgOwor6IKy6Zub5ZmoID4gaWt1c3V1a2lcIDsKK+Wcp+aQvuapnyA+IGFzc2FrdWtpXCA7CivkuozliIbms5UgPiBuaWJ1bmhvdVwgOwor5re35oiQ6KqeID4ga29uc2VpZ29cIDsKK+ePiOeQsuiLkSA+IGtvdWhpaWVuXCA7Civkuozpg6jkvZwgPiBuaWJ1c2FrdVwgOwor57eP5Lya5bGLID4gc291a2FpeWFcIDsKK+S7leaJi+aIpiA+IHNoaXRlc2VuXCA7Civlpb3lpb3niLogPiBrb3Vrb3V5YVwgOwor56iO5YuZ572yID4gemVpbXVzaG9cIDsKK+iyqeWjsuapnyA+IGhhbmJhaWtpXCA7CivnqbrmsJflrZQgPiBrdXVraWtvdVwgOwor55ay5Yq05oSfID4gaGlyb3VrYW5cIDsKK+aUvuawtOi3ryA+IGhvdXN1aXJvXCA7CivkvJrorbDmiYAgPiBrYWlnaXNob1wgOwor5b2i5a656KqeID4ga2VpeW91Z29cIDsKK+S4gOWbnuaIpiA+IGlra2Fpc2VuXCA7CivnlpHllY/oqZ4gPiBnaW1vbnNoaVwgOwor6Ium5Yq05Lq6ID4ga3Vyb3VuaW5cIDsKK+iBlueBq+WPsCA+IHNlaWthZGFpXCA7CivmsLTkvY3mqJkgPiBzdWlpaHlvdVwgOwor5oKy6Kaz6KuWID4gaGlrYW5yb25cIDsKK+WmhOiqnuaIkiA+IG1vdWdva2FpXCA7CivmsLjlsI/kvZwgPiBlaWtvc2FrdVwgOwor54Kt57Sg6Yu8ID4gdGFuc29rb3VcIDsKK+e5iue2readnyA+IHNlbmlzb2t1XCA7Civop6PmlL7ljLogPiBrYWlob3VrdVwgOwor5L+d5a6I5YWaID4gaG9zaHV0b3VcIDsKK+e0heS4gOeCuSA+IGtvdWl0dGVuXCA7CivkvIHmpa3lrrYgPiBraWd5b3VrYVwgOwor5a625bqt55SoID4ga2F0ZWl5b3VcIDsKK+iZmuepuuiUtSA+IGtva3V1em91XCA7CivkvJroqIjoqrIgPiBrYWlrZWlrYVwgOwor5Yuk5YuZ6ICFID4ga2lubXVzaGFcIDsKK+i3nembouaEnyA+IGt5b3Jpa2FuXCA7CivkuI3miJDlip8gPiBmdXNlaWtvdVwgOwor56WI5bm056WtID4ga2luZW5zYWlcIDsKK+eci+itt+azlSA+IGthbmdvaG91XCA7CivlgqzkuovloLQgPiBzYWlqaWpvdVwgOwor6ay85YW16ZqKID4ga2loZWl0YWlcIDsKK+Wls+WtkOWkpyA+IGpvc2hpZGFpXCA7CivllK/miJHoq5YgPiB5dWlnYXJvblwgOwor5pyq6KO95ZOBID4gbWlzZWloaW5cIDsKK+eEoee1seWItiA+IG11dG91c2VpXCA7CivpgKDoiLnmiYAgPiB6b3VzZW5qb1wgOwor6Lqr5pSv5bqmID4gbWlqaXRha3VcIDsKK+mHkeacrOS9jSA+IGtpbmhvbicnaVwgOwor5aSa6Z2i5oCnID4gdGFtZW5zZWlcIDsKK+Wkp+Wei+apnyA+IG9vZ2F0YWtpXCA7CivmnKrplovkurogPiBtaWthaWppblwgOwor6JeB5bGL5qC5ID4gd2FyYXlhbmVcIDsKK+aciOS4lueVjCA+IGdlc3Nla2FpXCA7CivlvpfmhI/poZQgPiB0b2t1aWdhb1wgOwor5omL6ZaT6ZqZID4gdGVtYWhpbWFcIDsKK+epuuawl+WPoyA+IGt1dWtpa291XCA7CivmlL/msrvniq8gPiBzZWlqaWhhblwgOwor5rSX6Z2i5ZmoID4gc2VubWVua2lcIDsKK+S6uuaWh+WtlyA+IGhpdG9tb2ppXCA7CivmqKHpgKDlk4EgPiBtb3pvdWhpblwgOwor5ZG85ZC45ZmoID4ga29reXV1a2lcIDsKK+Wcn+WcsOmRkSA+IHRvY2hpa2FuXCA7CivmsJfpgIHnrqEgPiBraXNvdWthblwgOwor5L2O6YeR5YipID4gdGVpa2lucmlcIDsKK+W4veWtkOWxiyA+IGJvdXNoaXlhXCA7CivlvqHmiJDlip8gPiBnb3NlaWtvdVwgOwor54+K55Ga5rW3ID4gc2FuZ29rYWlcIDsKK+abs+WFieW8viA+IGVpa291ZGFuXCA7CivljYPph4znnLwgPiBzZW5yaWdhblwgOwor6JC95LiL5YKYID4gcmFra2FzYW5cIDsKK+a4oeiIquiAhSA+IHRva291c2hhXCA7CivkuIvmiYvkurogPiBnZXNodW5pblwgOwor5Yem5aWz5p6XID4gc2hvam9yaW5cIDsKK+S6i+alremDqCA+IGppZ3lvdWJ1XCA7Civlr4zlsbHmiL8gPiBmdXphbmJvdVwgOwor5o6l5b6F6LK7ID4gc2V0dGFpaGlcIDsKK+e5iue2reaApyA+IHNlbicnaXNlaVwgOwor5omL6Kmx5rOVID4gc2h1d2Fob3VcIDsKK+S/nemkiuWcsCA+IGhveW91Y2hpXCA7CivliKnlt7Hlv4MgPiByaWtvc2hpblwgOwor54K554Gr5qCTID4gdGVua2FzZW5cIDsKK+mOlOmJseeCiSA+IHlvdWtvdXJvXCA7Civlj6/mj5vnvqQgPiBrYWthbmd1blwgOwor5Lya6K2w5aC0ID4ga2FpZ2lqb3VcIDsKK+S6uumdnuS6uiA+IG5pbnBpbmluXCA7CivoirHnsonnrqEgPiBrYWZ1bmthblwgOwor6YGO5r+A5rS+ID4ga2FnZWtpaGFcIDsKK+a6tuino+W6piA+IHlvdWthaWRvXCA7Civlj6Xoqq3ngrkgPiBrdXRvdXRlblwgOwor5o2c5p+76ZmjID4gc291c2FqaW5cIDsKK+S8gealreWMliA+IGtpZ3lvdWthXCA7CivllrbliKnnmoQgPiBlaXJpdGVraVwgOwor6KKr54G96ICFID4gaGlzYWlzaGFcIDsKK+S4jeW+k+mghiA+IGZ1anV1anVuXCA7Civlj43lsITngokgPiBoYW5zaGFyb1wgOwor5L2d5YOC55eFID4ga3VydWJ5b3VcIDsKK+mDveS8muS6uiA+IHRva2FpamluXCA7CivlkarnpoHpgZMgPiBqdWtvbmRvdVwgOwor5Y+k54mI5pysID4ga29oYW5ib25cIDsKK+a4rOWAmeaJgCA+IHNva2tvdWpvXCA7CivmtL7pgaPpmoogPiBoYWtlbnRhaVwgOwor5q2T6L+O5a60ID4ga2FuZ2VpZW5cIDsKK+aIkOWKn+ijoSA+IHNlaWtvdXJpXCA7Civlrrbluq3mrIQgPiBrYXRlaXJhblwgOwor5aSa5aSJ5pWwID4gdGFoZW5zdXVcIDsKK+eUt+aAp+e+jiA+IGRhbnNlaWJpXCA7Civpq5jmqZ/og70gPiBrb3VraW5vdVwgOwor5Lq66ZaT6IumID4gbmluZ2Vua3VcIDsKK+S4ieWRs+e3miA+IHNoYW1pc2VuXCA7Civlr7/llpznhLwgPiBzdWtpeWFraVwgOwor5ZCM56iL5bqmID4gZG91dGVpZG9cIDsKK+WlveWhqeiPjCA+IGtvdWVua2luXCA7CivpgIHmsJfnrqEgPiBzb3VraWthblwgOwor54qg54my6ICFID4gZ2lzZWlzaGFcIDsKK+iKsee0i+advyA+IGthbW9uYmFuXCA7Civpm7vlrZDljJYgPiBkZW5zaGlrYVwgOwor5bC95pyq5p2lID4gamlubWlyYWlcIDsKK+WPpeiqreazlSA+IGt1dG91aG91XCA7Civlpb3lpKnmsJcgPiBrb3V0ZW5raVwgOwor5rWE5YyW5qe9ID4gam91a2Fzb3VcIDsKK+acieWjsOmfsyA+IHl1dXNlaW9uXCA7Civlj43kvZznlKggPiBoYW5zYXlvdVwgOwor5YWo6Ieq5YuVID4gemVuamlkb3VcIDsKK+WPjeWvvua0viA+IGhhbnRhaWhhXCA7Civlh6blpbPmgKcgPiBzaG9qb3NlaVwgOwor5omL6ZaT6LODID4gdGVtYWNoaW5cIDsKK+S4gOWbnuWIhiA+IGlra2FpYnVuXCA7Civnvbnngb3ogIUgPiByaXNhaXNoYVwgOwor6LKv54Kt5omAID4gY2hvdGFuam9cIDsKK+acieS6uuWMliA+IHl1dWppbmthXCA7CivljbDosaHmtL4gPiBpbnNob3VoYVwgOwor6Kyb5ryU6ICFID4ga291ZW5zaGFcIDsKK+anjemojuWFtSA+IHNvdWtpaGVpXCA7CivpgIPpgb/ooYwgPiB0b3VoaWtvdVwgOwor5YaF54Gr6ImHID4gbmFpa2F0ZWlcIDsKK+Wcp+aQvuWZqCA+IGFzc2FrdWtpXCA7CivliKnmqKnlsYsgPiByaWtlbicneWFcIDsKK+WFieW6puioiCA+IGtvdWRva2VpXCA7CivplrLlhbXlj7AgPiBlcHBlaWRhaVwgOwor5re356iu6KqeID4ga29uc2h1Z29cIDsKK+mAj+mBjuaApyA+IHRvdWthc2VpXCA7CivkvJropovoqJggPiBrYWlrZW5raVwgOwor55u45Ly854K5ID4gc291aml0ZW5cIDsKK+ieuuWtkOmHmCA+IG5lamlrdWdpXCA7Civlh6blpbPls7AgPiBzaG9qb2hvdVwgOwor55yL6K235birID4ga2FuZ29zaGlcIDsKK+aciemggueCuSA+IHVjaG91dGVuXCA7CivkuIDnrYnmmJ8gPiBpdHRvdXNlaVwgOwor5LiL5rC06YGTID4gZ2VzdWlkb3VcIDsKK+mdnuS6uuaDhSA+IGhpbmluam91XCA7CivkuLvnvqnogIUgPiBzaHVnaXNoYVwgOwor5rS+6YGj6LuNID4gaGFrZW5ndW5cIDsKK+WGjeaPkOahiCA+IHNhaXRlaWFuXCA7Civnvo7mhI/orZggPiBiaWlzaGlraVwgOwor57eP5pys5a62ID4gc291aG9ua2VcIDsKK+W6puWkluimliA+IGRvZ2Fpc2hpXCA7CivpgaDlvoHpmoogPiBlbnNlaXRhaVwgOwor55CG5oOz5Z6LID4gcmlzb3VrZWlcIDsKK+S7ruWIhuaVsCA+IGthYnVuc3V1XCA7CivliqnmlbDoqZ4gPiBqb3N1dXNoaVwgOwor57K+566X5omAID4gc2Vpc2Fuam9cIDsKK+a2iOeBq+WZqCA+IHNob3VrYWtpXCA7CivlpJrpnaLkvZMgPiB0YW1lbnRhaVwgOwor5b2i6aq45YyWID4ga2VpZ2Fpa2FcIDsKK+asp+exs+S6uiA+IG91YmVpamluXCA7CivntYzluKvlsYsgPiBreW91aml5YVwgOwor6Kqk5aSJ5o+bID4gZ29oZW5rYW5cIDsKK+mChOS7mOmHkSA+IGthbnB1a2luXCA7CivmmanlvqHpo68gPiBiYW5nb2hhblwgOwor6IWV6Ieq5oWiID4gdWRlamltYW5cIDsKK+a1hOawtOWZqCA+IGpvdXN1aWtpXCA7CivliqnmlZnoq60gPiBqb2t5b3V5dVwgOwor55yL6K235aOrID4ga2FuZ29zaGlcIDsKK+awuOWtkOS9nCA+IGVpa29zYWt1XCA7Civlh6blpbPlnLAgPiBzaG9qb2NoaVwgOwor5Yip55So6ICFID4gcml5b3VzaGFcIDsKK+eEoeeyvuWNtSA+IG11c2VpcmFuXCA7CivnhKHplqLkv4IgPiBtdWthbmtlaVwgOwor5q2j5a2X5rOVID4gc2Vpamlob3VcIDsKK+i7jeWMu+eboyA+IGd1bicnaWthblwgOwor6K2m5LiW5a62ID4ga2Vpc2Vpa2FcIDsKK+adpeWtpuacnyA+IHJhaWdha2tpXCA7CivmmKDnlLvoqZUgPiBlaWdhaHlvdVwgOwor5om55Yik6ICFID4gaGloYW5zaGFcIDsKK+W5s+WPmeaWhyA+IGhlaWpvYnVuXCA7CivkuInph43oi6YgPiBzYW5qdXVrdVwgOwor5qih5YCj6ICFID4gbW9ob3VzaGFcIDsKK+S6iOmBuOS8miA+IHlvc2Vua2FpXCA7CivmvJTlpY/kvJogPiBlbnNvdWthaVwgOwor5LiN5rS75oCnID4gZnVrYXNzZWlcIDsKK+mWi+WPo+mDqCA+IGthaWtvdWJ1XCA7Civlj4zog7TmqZ8gPiBzb3Vkb3VraVwgOwor6aCI5byl5bGxID4gc2h1bWlzZW5cIDsKK+WBvemAoOe9qiA+IGdpem91emFpXCA7Civnp4DnlLvlrrYgPiBzaHV1Z2FrYVwgOwor5Lqk5Luj5ZOhID4ga291dGFpaW5cIDsKK+i1pOmbu+ipsSA+IGFrYWRlbndhXCA7CivmnInmnJ/liJEgPiB5dXVraWtlaVwgOwor5Y+j6Kmx5rOVID4ga291d2Fob3VcIDsKK+aIuOS4u+aoqSA+IGtvc2h1a2VuXCA7CivlhazlronlrpggPiBrb3VhbmthblwgOwor5q2v54mZ54q2ID4gc2hpZ2Fqb3VcIDsKK+S8neWjsOWZqCA+IGRlbnNlaWtpXCA7Civkv53pmbrph5EgPiBob2tlbmtpblwgOwor5oyH5pWw6YOoID4gc2hpc3V1YnVcIDsKK+ixquiPr+iIuSA+IGdvdWthc2VuXCA7CivkuLjmmpfoqJggPiBtYXJ1YW5raVwgOwor5Z+65rqW54K5ID4ga2lqdW50ZW5cIDsKK+W+jOaPtOS8miA+IGtvdWVua2FpXCA7CivnnIzorbDkvJogPiBrZW5naWthaVwgOwor6KGM5Zyo5omAID4gYW56YWlzaG9cIDsKK+WPo+iqnuaWhyA+IGtvdWdvYnVuXCA7Civlr53nhZnojYkgPiBuZXRhYmFrb1wgOwor5pat56C05aOKID4gZGFuaGFrYWlcIDsKK+ejgemJhOmJsSA+IGppdGVra291XCA7Civlhobngrrmm78gPiBlbmdhd2FzZVwgOwor55yL6K235YW1ID4ga2FuZ29oZWlcIDsKK+WWtualremDqCA+IGVpZ3lvdWJ1XCA7CivkuI3mtojljJYgPiBmdXNob3VrYVwgOwor5LiN5b6z576pID4gZnV0b2t1Z2lcIDsKK+WcsOWQuembqiA+IGppZnVidWtpXCA7CivpoIjlvKXlo4cgPiBzaHVtaWRhblwgOwor5L2Q5bmV5rS+ID4gc2FiYWt1aGFcIDsKK+mgk+eXtOawlyA+IHRvbmNoaWtpXCA7CivlpJrmlbDlhZogPiB0YXN1dXRvdVwgOwor6Ly46YCB6Ii5ID4geXVzb3VzZW5cIDsKK+aOoeayueaoqSA+IHNhaXl1a2VuXCA7CivmnaXkuJbntIAgPiByYWlzZWlraVwgOwor5bGx5rC055S7ID4gc2Fuc3VpZ2FcIDsKK+aOg+mZpOS6uiA+IHNvdWppbmluXCA7CivkuIDnrYnlnLAgPiBpdHRvdWNoaVwgOwor56iO5YuZ5a6YID4gemVpbXVrYW5cIDsKK+eci+itt+S6uiA+IGthbmdvbmluXCA7CivljYrliIfnrKYgPiBoYW5raXBwdVwgOwor5Zyn54CY5ZmoID4gYXRzdXJva2lcIDsKK+Wfuua6luazlSA+IGtpanVuaG91XCA7Civlj5forJvogIUgPiBqdWtvdXNoYVwgOwor5ris6Led5YSAID4gc29ra3lvZ2lcIDsKK+WGt+WHjeapnyA+IHJlaXRvdWtpXCA7CivnrYnot53pm6IgPiB0b3VreW9yaVwgOwor5LiN5ZCN5pWwID4gZnVtZWlzdXVcIDsKK+ippumBi+i7oiA+IHNoaXVudGVuXCA7Civnvqnli4flhbUgPiBnaXl1dWhlaVwgOwor6Kaq55S76Z2iID4gb3lhZ2FtZW5cIDsKK+aLkuWQpuaoqSA+IGt5b2hpa2VuXCA7Civkuoznlarnt5ogPiBuaWJhbnNlblwgOwor5Za25qWt6LK7ID4gZWlneW91aGlcIDsKK+ebuOS8vOW9oiA+IHNvdWppa2VpXCA7Civlj4znlJ/lhZAgPiBzb3VzZWlqaVwgOwor572554G95rCRID4gcmlzYWltaW5cIDsKK+WvhOeUn+acqCA+IHlhZG9yaWdpXCA7CivngavolqzluqsgPiBrYXlha3Vrb1wgOwor6LWk6aCt5be+ID4gYWthenVraW5cIDsKK+icpeictOW6pyA+IHRva2FnZXphXCA7CivorabloLHpn7MgPiBrZWlob3VvblwgOwor5aSn6Jyl6Jy0ID4gb290b2thZ2VcIDsKK+abtOeUn+acnyA+IGtvdXNlaWtpXCA7CivnlpHllY/mlocgPiBnaW1vbmJ1blwgOwor6I2354K65pu/ID4gbmlnYXdhc2VcIDsKK+Wcp+a/vuWZqCA+IGF0c3Vyb2tpXCA7CivohY7oh5Pngo4gPiBqaW56b3VlblwgOwor57ea57at5p2fID4gc2VuaXNva3VcIDsKK+WvhOi0iOiAhSA+IGtpem91c2hhXCA7Civlrrbluq3lhoUgPiBrYXRlaW5haVwgOwor6JC96Kqe5a62ID4gcmFrdWdva2FcIDsKK+eEoeevgOaTjSA+IG11c2Vzc291XCA7CivlrrnnlpHogIUgPiB5b3VnaXNoYVwgOwor5bGV6ZaL5ZuzID4gdGVua2FpenVcIDsKK+engeeUn+WFkCA+IHNoaXNlaWppXCA7CivlpKfmiYvnrYsgPiBvb3Rlc3VqaVwgOwor5YWs5a6a5L6hID4ga291dGVpa2FcIDsKK+awl+WIhuWxiyA+IGtpYnVuJyd5YVwgOwor5LiA562J5YW1ID4gaXR0b3VoZWlcIDsKK+S4i+awtOeuoSA+IGdlc3Vpa2FuXCA7CivmlbTmlbDmr5QgPiBzZWlzdXVoaVwgOwor56S+5YuZ5omAID4gc2hhbXVzaG9cIDsKK+mrmOWxpOmbsiA+IGtvdXNvdXVuXCA7CivluLjlpZfoqp4gPiBqb3V0b3Vnb1wgOwor6Ii55aSW5qmfID4gc2VuZ2Fpa2lcIDsKK+WPjOaal+i7iiA+IHNvdWFuc2hhXCA7Civml4XlrqLmqZ8gPiByeW9rYWtraVwgOwor6YGL5Za26ICFID4gdW4nJ2Vpc2hhXCA7CivmgaPmhI/nmoQgPiBzaGlpdGVraVwgOwor56C05aSp6I2SID4gaGF0ZW5rb3VcIDsKK+eGseW4r+WknCA+IG5ldHRhaXlhXCA7CivpgZTmiJDluqYgPiB0YXNzZWlkb1wgOwor5aSa6KeS5b2iID4gdGFrYWtrZWlcIDsKK+WFpeS8muaoqSA+IGlyaWFpa2VuXCA7CivljYPokYnnnIwgPiBjaGliYWtlblwgOwor5LqU5pyI6ZuoID4gc2FtaWRhcmVcIDsKK+aciemgguWkqSA+IHVjaG91dGVuXCA7CivmupbkvJrlk6EgPiBqdW5rYWlpblwgOwor5rC05puc5pelID4gc3VpeW91YmlcIDsKK+a4h+awtOacnyA+IGthc3N1aWtpXCA7Civnq7bppqzloLQgPiBrZWliYWpvdVwgOwor6bOp5bCP5bGLID4gaGF0b2dveWFcIDsKK+S4jeato+imliA+IGZ1c2Vpc2hpXCA7Civlm5vljYrmnJ8gPiBzaGloYW5raVwgOwor54aU6Ymx54KJID4geW91a291cm9cIDsKK+S9nOeUqOeCuSA+IHNheW91dGVuXCA7CivpgYrlnJLlnLAgPiB5dXVlbmNoaVwgOwor6LuM6YGT6Ii5ID4ga2lkb3VzZW5cIDsKK+W8geeQhuWjqyA+IGJlbnJpc2hpXCA7CivpurvphZTpioMgPiBtYXN1aWp1dVwgOwor5pyo6J665a2QID4gbW9rdW5lamlcIDsKK+atqeaVsOioiCA+IGhvc3V1a2VpXCA7CivkuLvpoYzmrYwgPiBzaHVkYWlrYVwgOwor5q2j5Lya5ZOhID4gc2Vpa2FpaW5cIDsKK+W+ruWIhuazlSA+IGJpYnVuaG91XCA7Civli5Xlk6Hku6QgPiBkb3VpbnJlaVwgOwor6Z2S55Om5Y+wID4gc2VpZ2FkYWlcIDsKK+a4oeiIueWgtCA+IHRvc2Vuam91XCA7CivmhI/orZjkuIsgPiBpc2hpa2lrYVwgOwor5L+d6K235Zu9ID4gaG9nb2tva3VcIDsKK+WQjOaAp+aEmyA+IGRvdXNlaWFpXCA7CivmsrnlnKflmaggPiB5dWF0c3VraVwgOwor54eV6Z2S5ouzID4gZW5zZWlrZW5cIDsKK+W5vOW5tOacnyA+IHlvdW5lbmtpXCA7Civosaroj6/niYggPiBnb3VrYWJhblwgOwor5Yy75Y6f55eFID4gaWdlbmJ5b3VcIDsKK+mbu+ipsee3miA+IGRlbndhc2VuXCA7Civlhrflh43luqsgPiByZWl0b3Vrb1wgOwor6YKE5LuY56iOID4ga2FucHV6ZWlcIDsKK+W8geitt+iAhSA+IGJlbmdvc2hhXCA7Civpm7voqbHntrIgPiBkZW53YW1vdVwgOwor55m75bGx6YGTID4gdG96YW5kb3VcIDsKK+mHjembu+apnyA+IGp1dWRlbmtpXCA7CivkuI3mgbDlpb0gPiBidWtha2tvdVwgOwor6Zi/5oi/6bOlID4gYWhvdWRvcmlcIDsKK+S6iOWCmeeahCA+IHlvYml0ZWtpXCA7CivmibbliqnmlpkgPiBmdWpvcnlvdVwgOwor54y/55+l5oG1ID4gc2FydWRqaWVcIDsKK+WcsOiUtemhlCA+IGppem91Z2FvXCA7CivkvZzmpa3loLQgPiBzYWd5b3ViYVwgOwor56m655u45aC0ID4ga3V1c291YmFcIDsKK+a3t+WQiOiqniA+IGtvbmdvdWdvXCA7CivlpqXljZTmoYggPiBkYWt5b3VhblwgOwor5oWw6Kyd5paZID4gaXNoYXJ5b3VcIDsKK+eEoeaKteaKlyA+IG11dGVpa291XCA7CivokYnnr4DngrkgPiBoYXNldHRlblwgOwor5LuW5YuV6KmeID4gdGFkb3VzaGlcIDsKK+acquaIkOW5tCA+IG1pc2VpbmVuXCA7Civmi5jlvJXnirYgPiBrb3VpbmpvdVwgOwor5pig55S754uCID4gZWlnYWt5b3VcIDsKK+azleiPr+e1jCA+IGhva2VreW91XCA7CivphaLmlpnnkIYgPiBzdXJ5b3VyaVwgOwor5pS/5bqc57GzID4gc2VpZnVtYWlcIDsKK+Wlvee1kOaenCA+IGtvdWtla2thXCA7CivmtLvmgKfljJYgPiBrYXNzZWlrYVwgOwor5Yqp6KiA6ICFID4gam9nb25zaGFcIDsKK+ijj+WNg+WutiA+IHVyYXNlbmtlXCA7CivoiI7liKnloZQgPiBzaGFyaXRvdVwgOwor5LiN56Wd5YSAID4gYnVzaHV1Z2lcIDsKK+mBjua4oeeahCA+IGthdG90ZWtpXCA7CivpmbboirjlrrYgPiB0b3VnZWlrYVwgOwor5L2c5qWt5ZOhID4gc2FneW91aW5cIDsKK+WFqOS4lueVjCA+IHplbnNla2FpXCA7CivlpJrmkanlt50gPiB0YW1hZ2F3YVwgOwor5b6u6Ium56yRID4gYmlrdXNob3VcIDsKK+asuueenuiAhSA+IGdpbWFuc2hhXCA7Civnq4vms5XlupwgPiByaXBwb3VmdVwgOwor6KKr54G95ZywID4gaGlzYWljaGlcIDsKK+eMm+aJk+iAhSA+IG1vdWRhc2hhXCA7CivkuI3npaXkuosgPiBmdXNob3VqaVwgOwor57WQ5p6c6KuWID4ga2Vra2Fyb25cIDsKK+S4i+awtOa6nSA+IGdlc3Vpa291XCA7CivmsLTpoqjlkYIgPiBtaXp1YnVyb1wgOwor5pa55L2N6KeSID4gaG91aWtha3VcIDsKK+mYsuWhteedgCA+IGJvdWppbmdpXCA7Civml6Loppbmg7MgPiBraXNoaWthblwgOwor5Y+j6Kqe5L2TID4ga291Z290YWlcIDsKK+W5uemDqOS8miA+IGthbmJ1a2FpXCA7CivkuqTpmpvosrsgPiBrb3VzYWloaVwgOwor5omL6ZaT5pqHID4gdGVtYWhpbWFcIDsKK+atpuWjq+mBkyA+IGJ1c2hpZG91XCA7CivprZTmlrnpmaMgPiBtYWhvdWppblwgOwor6JGh6JCE6YWSID4gYnVkb3VzaHVcIDsKK+WGt+WHjeWZqCA+IHJlaXRvdWtpXCA7Civlj4zlrZDluqcgPiBmdXRhZ296YVwgOwor6ISx5rC05qmfID4gZGFzc3Vpa2lcIDsKK+eBq+WPo+WOnyA+IGtha291Z2VuXCA7CivkvY7mrKHlhYMgPiB0ZWlqaWdlblwgOwor5Y6z5Yas5pyfID4gZ2VudG91a2lcIDsKK+S4uOirs+iomCA+IG1hcnVhbmtpXCA7CivkuI3pgIDou6IgPiBmdXRhaXRlblwgOwor5omL5Zyf55SjID4gdGVtaXlhZ2VcIDsKK+WNsemZuuimliA+IGtpa2Vuc2hpXCA7CivoiJ7ouIrlm6MgPiBidXRvdWRhblwgOwor5LiN5rG65a6aID4gZnVrZXR0ZWlcIDsKK+WbnuW4sOe3miA+IGthaWtpc2VuXCA7CivljLrmsJHnqI4gPiBrdW1pbnplaVwgOwor5L2V55Wq55uuID4gbmFuYmFubWVcIDsKK+iEseawl+awtCA+IGRha2tpc3VpXCA7CivliJHli5nmiYAgPiBrZWltdXNob1wgOwor5YGl5ZWW5a62ID4ga2VudGFua2FcIDsKK+egtOWjiuiAhSA+IGhha2Fpc2hhXCA7Civoh6rmhI/orZggPiBqaWlzaGlraVwgOwor5LiD5Y2B6LevID4gbmFuYXNvamlcIDsKK+ims+iHquWcqCA+IGthbmppemFpXCA7CivpgaDlv4PmqZ8gPiBlbnNoaW5raVwgOwor5pyx5Y2w6Ii5ID4gc2h1aW5zZW5cIDsKK+a0l+a/r+apnyA+IHNlbnRha2tpXCA7CivkuI3li5XnlKMgPiBmdWRvdXNhblwgOwor5Zm05rCX5a2UID4gZnVua2lrb3VcIDsKK+idpuWkt+adviA+IGV6b21hdHN1XCA7CivprLzliJHkuosgPiBvbmlrZWlqaVwgOwor5oSf5ZiG56ymID4ga2FudGFuZnVcIDsKK+azleWMu+WtpiA+IGhvdWlnYWt1XCA7Civps6XlsI/lsYsgPiB0b3JpZ295YVwgOwor6Ieq5Za25qWtID4gamllaWd5b3VcIDsKK+eyvumMrOaJgCA+IHNlaXJlbmpvXCA7Civpu4Toj5bokrIgPiBraXNob3VidVwgOwor5Lqc5aSn6Zm4ID4gYXRhaXJpa3VcIDsKK+WCmeiAg+ashCA+IGJpa291cmFuXCA7CivmnKrmiJDlk4EgPiBtaXNlaWhpblwgOwor54mH5omL6ZaTID4ga2F0YXRlbWFcIDsKK+S6uumWk+WRsyA+IG5pbmdlbm1pXCA7CivnhKHmhI/orZggPiBtdWlzaGlraVwgOwor5oqV6LOH5a62ID4gdG91c2hpa2FcIDsKK+S4i+awtOadvyA+IGdlc3VpaXRhXCA7CivppqzouYTlvaIgPiBiYXRlaWtlaVwgOwor5YWo6Z+z56ymID4gemVuJydvbnB1XCA7Civpq5jovJ3luqYgPiBrb3VraWRvdVwgOwor5LiN5Y+v5L61ID4gZnVrYXNoaW5cIDsKK+m7hOWPo+WFkCA+IGtvdWtvdWppXCA7CivliIbnp5HkvJogPiBidW5rYWthaVwgOwor6JyY6Jub6IacID4ga3Vtb21ha3VcIDsKK+S6i+alreWutiA+IGppZ3lvdWthXCA7CivlhaXkvJrlnLAgPiBpcmlhaWNoaVwgOwor5Zuz5pu46aSoID4gdG9zaG9rYW5cIDsKK+ijveeJiOaJgCA+IHNlaWhhbmpvXCA7CivmnbHlpKflr7ogPiB0b3VkYWlqaVwgOwor5Lit5L2N5pWwID4gY2h1dWlzdXVcIDsKK+WPguizgOiAhSA+IHNhbmdhc2hhXCA7Civmibnlh4bmm7ggPiBoaWp1bnNob1wgOwor6Iie6LiP5LyaID4gYnV0b3VrYWlcIDsKK+eQhuWMluWtpiA+IHJpa2FnYWt1XCA7CivnmbvlsbHogIUgPiB0b3phbnNoYVwgOwor5Yqp5pWZ5o6IID4gam9reW91anVcIDsKK+WIkeWLmeWumCA+IGtlaW11a2FuXCA7CivmlL/li5nlrpggPiBzZWltdWthblwgOwor5q2j576p5oSfID4gc2VpZ2lrYW5cIDsKK+WMu+iWrOWTgSA+IGl5YWt1aGluXCA7CivljJbnsqfnnYAgPiBrZXNob3VnaVwgOwor54Gr6YGU56OoID4gaGlkYXJ1bWFcIDsKK+S4jeW+ueW6lSA+IGZ1dGV0dGVpXCA7CivnlZnlrojlroUgPiBydXN1dGFrdVwgOwor5Yeh6Kmm5ZCIID4gYm9uc2hpYWlcIDsKK+S4h+atqeioiCA+IG1hbnBva2VpXCA7Civkuozmnprosp0gPiBuaW1haWdhaVwgOwor55So5rC06LevID4geW91c3Vpcm9cIDsKK+aZguioiOW6lyA+IHRva2VpdGVuXCA7Civlm7rlrprlrZAgPiBrb3RlaXNoaVwgOwor5pyJ54WZ54KtID4geXV1ZW50YW5cIDsKK+ism+a8lOS8miA+IGtvdWVua2FpXCA7Civoo4/prLzploAgPiB1cmFraW1vblwgOwor5b6h5q+N5qeYID4gb2thYXNhbWFcIDsKK+mBk+elluelniA+IGRvdXNvamluXCA7CivlkIjms5XljJYgPiBnb3Vob3VrYVwgOwor6aaW6YO95ZyPID4gc2h1dG9rZW5cIDsKK+S4ieavm+eMqyA+IG1pa2VuZWtvXCA7CivmjqLnn6XmqZ8gPiB0YW5jaGlraVwgOwor5q2754Gr5bGxID4gc2hpa2F6YW5cIDsKK+iJsuaooeanmCA+IGlyb21veW91XCA7Civns7jpm7voqbEgPiBpdG9kZW53YVwgOwor6YeN5aSn5YyWID4ganV1ZGFpa2FcIDsKK+S4ieauteebriA+IHNhbmRhbm1lXCA7Civnpa3lo4fluqcgPiBzYWlkYW56YVwgOwor5YWE5byf5a2QID4gYW5pZGVzaGlcIDsKK+mBi+WRveirliA+IHVubWVpcm9uXCA7Civmma7pgJrnp5EgPiBmdXRzdXVrYVwgOwor5LiK5Y+k5Y+yID4gam91a29zaGlcIDsKK+mgkOiyr+mHkSA+IHlvY2hva2luXCA7CivlpqXlvZPmgKcgPiBkYXRvdXNlaVwgOwor6JGh6JCE6ImyID4gYnVkb3Vpcm9cIDsKK+aOkuawtOi3ryA+IGhhaXN1aXJvXCA7CivmqKrmlq3pnaIgPiBvdWRhbm1lblwgOwor5pW057WM5qmfID4gc2Vpa2Vpa2lcIDsKK+S6i+alreWMliA+IGppZ3lvdWthXCA7CivnsKHkvZPlrZcgPiBrYW50YWlqaVwgOwor5Y+v5rq254mHID4ga2F5b3VoZW5cIDsKK+WEgOS7l+WFtSA+IGdpam91aGVpXCA7CivpmbjlsYvmoLkgPiByb2t1eWFuZVwgOwor5bqn6KuH5LyaID4gemFkYW5rYWlcIDsKK+W4huWJjeiIuSA+IGhvbWFlc2VuXCA7CivmjIfoqbHms5UgPiBzaGl3YWhvdVwgOwor5YG96YCg5ZOBID4gZ2l6b3VoaW5cIDsKK+S4luW4r+aVsCA+IHNldGFpc3V1XCA7CivkuIDlkajmnJ8gPiBpc3NodXVraVwgOwor5Lit6ICz54KOID4gY2h1dWppZW5cIDsKK+WvjOWjq+mAmiA+IGZ1aml0c3V1XCA7CivlrrblsYvnqI4gPiBrYW9rdXplaVwgOwor5qmf5YuV6ZqKID4ga2lkb3V0YWlcIDsKK+mYsueBq+e3miA+IGJvdWthc2VuXCA7CivmlZnorbfpmaIgPiBreW91Z29pblwgOwor6J665a2Q5bGxID4gbmVqaXlhbWFcIDsKK+S5s+WFkOmZoiA+IG55dXVqaWluXCA7CivohZXmmYLoqIggPiB1ZGVkb2tlaVwgOwor5pyx5Y2w54q2ID4gc2h1aW5qb3VcIDsKK+ecn+aEj+e+qSA+IHNoaW4nJ2lnaVwgOwor6YGK5oqA5aC0ID4geXV1Z2lqb3VcIDsKK+WLp+W3peWgtCA+IGthbmtvdWJhXCA7CivkuInlhqDppqwgPiBzYW5rYW5iYVwgOwor5aSp5omN5YWQID4gdGVuc2FpamlcIDsKK+mAhuiMguacqCA+IHNha2Ftb2dpXCA7Civoo5zlhYXlhbUgPiBob2p1dWhlaVwgOwor5bu66K2w6ICFID4ga2VuZ2lzaGFcIDsKK+W4uOWknOeBryA+IGpvdXlhdG91XCA7CivojYnlsYvmoLkgPiBrdXNheWFuZVwgOwor5qip5aiB6ICFID4ga2VuJydpc2hhXCA7CivnoJXlsqnmqZ8gPiBzYWlnYW5raVwgOwor6JGh6JCE57OWID4gYnVkb3V0b3VcIDsKK+eZveS6nOmkqCA+IGhha3Vha2FuXCA7Civmt7flkozmgKcgPiBrb253YXNlaVwgOwor5YyW57Kn5q6/ID4ga2V3YWlkZW5cIDsKK+WNg+WIhuavlCA+IHNlbmJ1bmhpXCA7CivmmYLoqIjlj7AgPiB0b2tlaWRhaVwgOwor5ZCM5q+N5aeJID4gZG91Ym9zaGlcIDsKK+S4iuW+l+aEjyA+IGpvdXRva3VpXCA7Civpu4TmsLTku5kgPiBraXN1aXNlblwgOwor5byx5ZGz5ZmMID4geW93YW1pc29cIDsKK+eVmeWuiOS4rSA+IHJ1c3VjaHV1XCA7CivlpInlo7DmnJ8gPiBoZW5zZWlraVwgOwor5bCP5YWQ56eRID4gc2hvdW5pa2FcIDsKK+S4ieWNgeaIuCA+IHNhbmppa2tvXCA7Civpm7vpm6LlsaQgPiBkZW5yaXNvdVwgOwor6auY6LiP5rS+ID4ga291dG91aGFcIDsKK+eQhuW3peezuyA+IHJpa291a2VpXCA7CivnhKHnpLzorJsgPiBidXJlaWtvdVwgOwor5LiA5ZGo5b+MID4gaXNzaHV1a2lcIDsKK+S4jeWNgeWIhiA+IGZ1anV1YnVuXCA7Civlk7rkubPmnJ8gPiBob255dXVraVwgOwor55+z5rK5546LID4gc2VraXl1b3VcIDsKK+WPr+mOlOeJhyA+IGtheW91aGVuXCA7CivlvqHliKnnm4ogPiBnb3JpeWFrdVwgOwor5oqV5pu45a62ID4gdG91c2hva2FcIDsKK+mBuueVmeWTgSA+IGlyeXV1aGluXCA7CivpgbrkvJ3nl4UgPiBpZGVuYnlvdVwgOwor5o+a54Kt5qmfID4geW91dGFua2lcIDsKK+mdnuWkieaPmyA+IGhpaGVua2FuXCA7CivmlLnmraPmoYggPiBrYWlzZWlhblwgOwor6auY6auY5bqmID4ga291a291ZG9cIDsKK+e1jOeUo+WppiA+IGtlaXNhbnB1XCA7CivotaToo7joo7ggPiBzZWtpcmFyYVwgOwor5re35ZCI5qmfID4ga29uZ291a2lcIDsKK+WvhOi0iOWTgSA+IGtpem91aGluXCA7CivlpJzooYzmgKcgPiB5YWtvdXNlaVwgOwor6ZG95a2U5qmfID4gc2Fua291a2lcIDsKK+WJjeihm+a0viA+IHplbicnZWloYVwgOwor5pyq5rG6566XID4gbWlrZXNzYW5cIDsKK+S4u+imgemDqCA+IHNodXlvdWJ1XCA7Civpgb/lr5LlnLAgPiBoaWthbmNoaVwgOwor5rC05Z6i6ZuiID4gbWl6dWdvcmlcIDsKK+WnlOiol+eUnyA+IGl0YWt1c2VpXCA7CivorabloLHmqZ8gPiBrZWlob3VraVwgOwor5rip572o5rOVID4gb24nJ2FucG91XCA7Civlr77lv5zniYggPiB0YWlvdWJhblwgOwor5ZaH5Zib5pWZID4gcmFtYWt5b3VcIDsKK+mBuueVmeWIhiA+IGlyeXV1YnVuXCA7CivmmIbluIPojLYgPiBrb25idWNoYVwgOwor5LmX566X5ZmoID4gam91emFua2lcIDsKK+iRrOWEgOekviA+IHNvdWdpc2hhXCA7CivliKTmpJzkuosgPiBoYW5rZW5qaVwgOwor54m555Ww54K5ID4gdG9rdWl0ZW5cIDsKK+S/nemZuuWxiyA+IGhva2VuJyd5YVwgOwor5LiN6YO95ZCIID4gZnV0c3Vnb3VcIDsKK+aJgOaMgemHkSA+IHNob2ppa2luXCA7CivomY7msrPosZogPiB0b3JhZnVndVwgOwor5oqA6IO96ICFID4gZ2lub3VzaGFcIDsKK+aKl+itsOaWhyA+IGtvdWdpYnVuXCA7Civml6Loo73lk4EgPiBraXNlaWhpblwgOwor5Z+656SO55qEID4ga2lzb3Rla2lcIDsKK+iynee0sOW3pSA+IGthaXphaWt1XCA7Civpu5Lnmb7lkIggPiBrdXJveXVyaVwgOwor6Iy26I+T5a2QID4gY2hhZ2FzaGlcIDsKK+WQpuWumuaWhyA+IGhpdGVpYnVuXCA7CivlvIHorbflo6sgPiBiZW5nb3NoaVwgOwor5omL6KOP5YmjID4gc2h1cmlrZW5cIDsKK+mKgOaZguioiCA+IGdpbmRva2VpXCA7CivkuInpgKPnrKYgPiBzYW5yZW5wdVwgOwor5bCP5YiH5a2QID4ga29raXJpa29cIDsKK+W9ouiAjOS4iiA+IGtlaWppam91XCA7CivmkK3kuZflk6EgPiB0b3Vqb3VpblwgOwor5LiW55WM6KazID4gc2VrYWlrYW5cIDsKK+aOouefpeWZqCA+IHRhbmNoaWtpXCA7CivlgInluqvnlaogPiBzb3Vrb2JhblwgOwor5paH56eR57O7ID4gYnVua2FrZWlcIDsKK+iDveaWh+WutiA+IG5vdWJ1bmthXCA7CivlvIHorbflm6MgPiBiZW5nb2RhblwgOwor6YqA5LiW55WMID4gZ2luc2VrYWlcIDsKK+aZrumBjeaApyA+IGZ1aGVuc2VpXCA7Civlj6/murbmgKcgPiBrYXlvdXNlaVwgOwor5YyI54mZ5YipID4gaGFuZ2FyaWlcIDsKK+eMv+ecn+S8vCA+IHNhcnVtYW5lXCA7CivnjKrlj6PmiY0gPiBjaG9rb3phaVwgOwor6Yuz54mp5birID4gaW1vbm9zaGlcIDsKK+eEoemJhOegsiA+IG11dGVwcG91XCA7CivlkIzliIbmr40gPiBkb3VidW5ib1wgOwor5pyq5raI5YyWID4gbWlzaG91a2FcIDsKK+W6g+adseiqniA+IGthbnRvbmdvXCA7CivkuIDnp4HkurogPiBpc3NoaWppblwgOwor5ryi6JS16KqeID4ga2Fuem91Z29cIDsKK+S6jOS6uuebriA+IGZ1dGFyaW1lXCA7Civlr4zlo6vntbkgPiBmdWppZ2ludVwgOwor6IKb6ZaA56eRID4ga291bW9ua2FcIDsKK+mdmembu+awlyA+IHNlaWRlbmtpXCA7Civljp/li5XmqZ8gPiBnZW5kb3VraVwgOwor5Lm+6Ii55rigID4ga2FuZG9ra3VcIDsKK+m8k+WQueiAhSA+IGtvc3Vpc2hhXCA7CivlpKflkoznha4gPiB5YW1hdG9uaVwgOwor6Iy26YGT5YW3ID4gY2hhZG91Z3VcIDsKK+aOkuawl+euoSA+IGhhaWtpa2FuXCA7CivlvZPkuovogIUgPiB0b3VqaXNoYVwgOwor5aKT6KqM6YqYID4gYm9zaGltZWlcIDsKK+efreawtOi3ryA+IHRhbnN1aXJvXCA7CivllqvojLblupcgPiBraXNzYXRlblwgOwor5pmC6ZaT5bivID4gamlrYW50YWlcIDsKK+eEoeawtOmFuCA+IG11c3Vpc2FuXCA7CivnoLTpmLLms5UgPiBoYWJvdWhvdVwgOwor5ZCI5q2T5pyoID4gbmVtdW5va2lcIDsKK+iBluatjOmaiiA+IHNlaWthdGFpXCA7CivljbDntJnnqI4gPiBpbnNoaXplaVwgOwor5oyH5o+u6ICFID4gc2hpa2lzaGFcIDsKK+aWh+aIv+WFtyA+IGJ1bmJvdWd1XCA7Civkv53nrqHph5EgPiBob2thbmtpblwgOwor5pyA5aSa5pWwID4gc2FpdGFzdXVcIDsKK+S4jemAj+aYjiA+IGZ1dG91bWVpXCA7CivmoL3ln7nmiYAgPiBzYWliYWlqb1wgOwor5p6X5qqO6YWSID4gcmluZ29zaHVcIDsKK+avjee0sOiDniA+IGJvc2FpYm91XCA7Civlpb3miZPogIUgPiBrb3VkYXNoYVwgOwor5YaG562S5b2iID4gZW50b3VrZWlcIDsKK+aRgumWouWutiA+IHNla2thbmtlXCA7CivmraPopo/ou40gPiBzZWlraWd1blwgOwor5bi45aWX5Y+lID4gam91dG91a3VcIDsKK+acquaxuua4iCA+IG1pa2Vzc2FpXCA7CivntYPmpb3lmaggPiBnZW5nYWtraVwgOwor57SN5oi46ImyID4gbmFuZG9pcm9cIDsKK+mdnue3muW9oiA+IGhpc2Vua2VpXCA7CivpoqjlkYLph5wgPiBmdXJvZ2FtYVwgOwor5byB6K235Lq6ID4gYmVuZ29uaW5cIDsKK+mOruWuiOW6nCA+IGNoaW5qdWZ1XCA7CivkuIDlvLXnvoUgPiBpdGNob3VyYVwgOwor5a2Q5Lya56S+ID4ga29nYWlzaGFcIDsKK+S4jeWHjea4ryA+IGZ1dG91a291XCA7CivljbXloZTloLQgPiByYW50b3ViYVwgOwor5Lit5aSu6YOoID4gY2h1dW91YnVcIDsKK+S4jeWHjea2siA+IGZ1dG91ZWtpXCA7CivlpKnnp6TluqcgPiB0ZW5iaW56YVwgOwor5Y2x6Zm65oCnID4ga2lrZW5zZWlcIDsKK+S4jeWHjea1tyA+IGZ1dG91a2FpXCA7CivnmbvlsbHluL0gPiB0b3phbmJvdVwgOwor54WO6LGG6IWQID4gaXJpZG91ZnVcIDsKK+WIuOWjsuapnyA+IGtlbmJhaWtpXCA7CivmmYLplpPlpJYgPiBqaWthbmdhaVwgOwor5rCX5YCZ5bivID4ga2lrb3V0YWlcIDsKK+alveWZqOW6lyA+IGdha2tpdGVuXCA7CivkuI3liIbmmI4gPiBmdWJ1bm1laVwgOwor5q2j6Zu75rCXID4gc2VpZGVua2lcIDsKK+acrOmHkeW6qyA+IGhvbmtpbmtvXCA7Civlj6/pjpTmgKcgPiBrYXlvdXNlaVwgOwor6ZuE5byB5a62ID4geXV1YmVua2FcIDsKK+S7mOW4r+eKryA+IGZ1dGFpaGFuXCA7Civopb/mtIvnooEgPiBzZWl5b3Vnb1wgOwor5oim5LqJ5b6MID4gc2Vuc291Z29cIDsKK+aVj+iFleWutiA+IGJpbndhbmthXCA7CivkuK3ku6XkuIogPiBjaHV1aWpvdVwgOwor6auY5LiL6aeEID4gdGFrYWdldGFcIDsKK+mdnuWjsuWTgSA+IGhpYmFpaGluXCA7CivkvZXku6Pnm64gPiBuYW5kYWltZVwgOwor6auY5p6257eaID4ga291a2FzZW5cIDsKK+awtOmdouS4iyA+IHN1aW1lbmthXCA7Civnsr7msrnmiYAgPiBzZWl5dXNob1wgOwor5p2x6KW/5bGLID4gdG91emFpeWFcIDsKK+mKheeJiOeUuyA+IGRvdWhhbmdhXCA7Civngorpo6/lmaggPiBzdWloYW5raVwgOwor5YWD5bil5bqcID4gZ2Vuc3VpZnVcIDsKK+mzpeS5i+W3oyA+IHRvcmlub3N1XCA7CivljLvnmYLou4ogPiBpcnlvdXNoYVwgOwor54m555Ww5oCnID4gdG9rdWlzZWlcIDsKK+WGrOiHs+e3miA+IHRvdWppc2VuXCA7Civnqb/lrZTmqZ8gPiBzZW5rb3VraVwgOwor54Sh6JOL6LuKID4gbXVnYWlzaGFcIDsKK+aKteaKl+WZqCA+IHRlaWtvdWtpXCA7CivokrjmsJfoiLkgPiBqb3VraXNlblwgOwor6Z2e6Kix5a65ID4gaGlreW95b3VcIDsKK+mBoOi/keazlSA+IGVua2luaG91XCA7Civku67lrprms5UgPiBrYXRlaWhvdVwgOwor5re35ZCI5ZmoID4ga29uZ291a2lcIDsKK+ilv+a0i+eUuyA+IHNlaXlvdWdhXCA7CivpgZTno6jlv4wgPiBkYXJ1bWFraVwgOwor55Wz5oiQ6KqeID4gam91c2VpZ29cIDsKK+aAquS6i+S7tiA+IGthaWppa2VuXCA7CivmiYDmjIHogIUgPiBzaG9qaXNoYVwgOwor5pOs5Lq65rOVID4gZ2lqaW5ob3VcIDsKK+a6luWkp+aJiyA+IGp1bicnb290ZVwgOwor5Zue6Lui5qmfID4ga2FpdGVua2lcIDsKK+WPr+WTgOebuCA+IGthd2Fpc291XCA7CivkuqTpmpvlrrYgPiBrb3VzYWlrYVwgOwor6Zui5Lmz5pyfID4gcmlueXV1a2lcIDsKK+ejgeaAp+WxpCA+IGppc2Vpc291XCA7CivotorlhqzpmoogPiBldHRvdXRhaVwgOwor6K2c6Z2i5Y+wID4gZnVtZW5kYWlcIDsKK+S7ruWwj+WxiyA+IGthcmlnb3lhXCA7Civnm67oq5boposgPiBtb2t1cm9taVwgOwor5LuZ6Iqx57SZID4gc2Vua2FzaGlcIDsKK+a8lOeul+WtkCA+IGVuemFuc2hpXCA7CivmnInpmZDlgIsgPiB5dXVnZW5rb1wgOwor5oi46Zqc5a2QID4gdG9zaG91amlcIDsKK+WPr+mNm+aApyA+IGthdGFuc2VpXCA7CivlpKrpvJPliKQgPiB0YWlrb2JhblwgOwor5rW35Z2K5Li7ID4gdW1pYm91enVcIDsKK+m7jemtmuWtkCA+IGtpYmluYWdvXCA7CivllrbmnpfnvbIgPiBlaXJpbnNob1wgOwor5pmu6L665oCnID4gZnVoZW5zZWlcIDsKK+WbuuacieWApCA+IGtveXV1Y2hpXCA7CivpgbrkvJ3lraYgPiBpZGVuZ2FrdVwgOwor6IKy56iu5omAID4gaWt1c2h1am9cIDsKK+mHkemNjemHkSA+IGtpbm1la2tpXCA7CivpvLvpoqjpgqogPiBoYW5ha2F6ZVwgOwor5Y+C5LqL5a6YID4gc2FuamlrYW5cIDsKK+ebuOirh+aJgCA+IHNvdWRhbmpvXCA7CivnhKHnqI7lk4EgPiBtdXplaWhpblwgOwor5b+c562U6IO9ID4gb3V0b3Vub3VcIDsKK+aknOWVj+aJgCA+IGtlbm1vbmpvXCA7CivlsqHloLTmiYAgPiBva2FiYXNob1wgOwor5Zyw6JS15bCKID4gaml6b3Vzb25cIDsKK+epuuS4lui+niA+IGthcmFzZWppXCA7CivooajlhbflsYsgPiBoeW91Z3V5YVwgOwor5byU5oWw6YeRID4gY2hvdWlraW5cIDsKK+WIneeUo+WppiA+IHNob3NhbnB1XCA7CivmmpfoqJjniakgPiBhbmtpbW9ub1wgOwor6bq76YWU5YmkID4gbWFzdWl6YWlcIDsKK+iXquWMu+iAhSA+IHlhYnVpc2hhXCA7CivkvZXmmYLpoIMgPiBpdHN1Z29yb1wgOwor5LqM576p55qEID4gbmlnaXRla2lcIDsKK+mbgeearue0mSA+IGdhbnBpc2hpXCA7Civml6XlkozoposgPiBoaXlvcmltaVwgOwor56S+5Lya6YOoID4gc2hha2FpYnVcIDsKK+WIpeS4lueVjCA+IGJlc3Nla2FpXCA7CivnhKHlkI3msI8gPiBtdW1laXNoaVwgOwor6ZuH5YKt6ICFID4ga295b3VzaGFcIDsKK+e1oue3nuWtkCA+IGF5YWRvbnN1XCA7CivmuKbnirbmlocgPiBrYWpvdW1vblwgOwor6Ieq5YuV6LuKID4gamlkb3VzaGFcIDsKK+mZpOiNieWJpCA+IGpvc291emFpXCA7CivkuI3lhazmraMgPiBmdWtvdXNlaVwgOwor6ZeY5oqA5aC0ID4gdG91Z2lqb3VcIDsKK+S4u+iomOaGtiA+IHNodWtpb2t1XCA7CivpvLvkuIvplbcgPiBiaWthY2hvdVwgOwor5pyA5aSn5YyWID4gc2FpZGFpa2FcIDsKK+mYsueCjuWJpCA+IGJvdWVuemFpXCA7CivmurbpibHngokgPiB5b3Vrb3Vyb1wgOwor5L2V5pmC6ZaTID4gbmFuamlrYW5cIDsKK+ezu+e1seaouSA+IGtlaXRvdWp1XCA7CivlvqHoh6rouqsgPiBnb2ppc2hpblwgOwor5LiK6I+T5a2QID4gam91Z2FzaGlcIDsKK+iiq+a4m+aVsCA+IGhpZ2Vuc3V1XCA7CivmmJ/mnaHml5cgPiBzZWlqb3VraVwgOwor55aO5rC05oCnID4gc29zdWlzZWlcIDsKK+iHquayu+aoqSA+IGppY2hpa2VuXCA7CivpgK7mjZXogIUgPiB0YWlob3NoYVwgOwor5LqM6aCt562LID4gbml0b3VraW5cIDsKK+e0oOa1quS6uiA+IHN1cm91bmluXCA7Civnp4vloLTmiYAgPiBha2liYXNob1wgOwor6Ii554Gr5LqLID4gZnVuYWthamlcIDsKK+iCsueoruWutiA+IGlrdXNodWthXCA7CivmraPoqrLlpJYgPiBzZWlrYWdhaVwgOwor54WJ55Om5aGAID4gcmVuZ2FiZWlcIDsKK+iLseaWh+azlSA+IGVpYnVucG91XCA7CivmnKrmsbrlrpogPiBtaWtldHRlaVwgOwor6aaW6ISz6YOoID4gc2h1bm91YnVcIDsKK+WBpeW6t+e+jiA+IGtlbmtvdWJpXCA7CivkuKHorbDpmaIgPiByeW91Z2lpblwgOwor5oSb5ZSx5q2MID4gYWlzaG91a2FcIDsKK+S6jOacrOajkiA+IG5paG9uYm91XCA7CivpnZLnianlsYsgPiBhb21vbm95YVwgOwor5Luu5a6a5b2iID4ga2F0ZWlrZWlcIDsKK+iHquWLleipniA+IGppZG91c2hpXCA7Civkvr/lrpzkuIogPiBiZW5naWpvdVwgOwor55Sw6IiO6aKoID4gaW5ha2FmdXVcIDsKK+acneW+oemjryA+IGFzYWdvaGFuXCA7CivmjIfmj67mqKkgPiBzaGlraWtlblwgOwor6Kit6KiI5ZuzID4gc2Vra2VpenVcIDsKK+mDqOWkluiAhSA+IGJ1Z2Fpc2hhXCA7CivokazlhIDloLQgPiBzb3VnaWpvdVwgOwor56OB5oCn5L2TID4gamlzZWl0YWlcIDsKK+mKgOacrOS9jSA+IGdpbmhvbicnaVwgOwor5pS/5YWa5ZOhID4gc2VpdG91aW5cIDsKK+WvvuW/nOWApCA+IHRhaW91Y2hpXCA7Civou43oiabml5cgPiBndW5rYW5raVwgOwor5LqM5LmX5qC5ID4gbmlqb3Vrb25cIDsKK+aMh+aPruajkiA+IHNoaWtpYm91XCA7Civmr43lm73oqp4gPiBib2tva3Vnb1wgOwor55S755So57SZID4gZ2F5b3VzaGlcIDsKK+aknOa4qeWZqCA+IGtlbicnb25raVwgOwor6aeG5r2c6ImHID4ga3VzZW50ZWlcIDsKK+WgleiDjue9qiA+IGRhdGFpemFpXCA7Civno4HmsJflraYgPiBqaWtpZ2FrdVwgOwor5oeQ54KJ54GwID4ga2Fpcm9iYWlcIDsKK+imgeazqOaEjyA+IHlvdWNodXVpXCA7CivliJ3nlJ/lhZAgPiBzaG9zZWlqaVwgOwor5LiN6a6u5piOID4gZnVzZW5tZWlcIDsKK+Wkqem1nue1qCA+IGJpcm91ZG91XCA7Civoo73ns5bmiYAgPiBzZWl0b3Vqb1wgOwor5YWI6aeG6ICFID4gc2Vua3VzaGFcIDsKK+WKqeaIkOmHkSA+IGpvc2Vpa2luXCA7CivmuKHmnaXkurogPiB0b3JhaWppblwgOwor6YCf6KiY6ICFID4gc29ra2lzaGFcIDsKK+iJpui8ieapnyA+IGthbnNhaWtpXCA7CivnhKHlkI3mjIcgPiBtdW1laXNoaVwgOwor6KO957KJ5qmfID4gc2VpZnVua2lcIDsKK+S5seWxpOmbsiA+IHJhbnNvdXVuXCA7Civlj4LkuovkvJogPiBzYW5qaWthaVwgOwor5o6S5rCX5byBID4gaGFpa2liZW5cIDsKK+ato+e1sea0viA+IHNlaXRvdWhhXCA7Civoo5zkvZDlvbkgPiBob3NheWFrdVwgOwor5pyq6YWN5b2TID4gbWloYWl0b3VcIDsKK+aYr+mdnuWFsSA+IHplaGl0b21vXCA7CivmnKrliIrooYwgPiBtaWthbmtvdVwgOwor5p6i5qmf5Y2/ID4gc3V1a2lrZWlcIDsKK+acqumBgue9qiA+IG1pc3VpemFpXCA7CivmlofljJbosqEgPiBidW5rYXphaVwgOwor5q2m6KOF6Ii5ID4gYnVzb3VzZW5cIDsKK+iomOiAheWboyA+IGtpc2hhZGFuXCA7CivlvqHnlKjpgrggPiBnb3lvdXRlaVwgOwor5b6h5YWI5qOSID4gb3Nha2lib3VcIDsKK+WumuavlOS+iyA+IHRlaWhpcmVpXCA7Civlr4zlo6vlt50gPiBmdWppa2F3YVwgOwor55Sj5Y215pyfID4gc2FucmFua2lcIDsKK+WIhuebuOapnyA+IGJ1bnNvdWtpXCA7CivkuIrlsaTpm7IgPiBqb3Vzb3V1blwgOwor5LiJ5qyh5YWDID4gc2FuamlnZW5cIDsKK+e+pOmmrOecjCA+IGd1bm1ha2VuXCA7CivlhbXnq5npg6ggPiBoZWl0YW5idVwgOwor5LiN5YWs5bmzID4gZnVrb3VoZWlcIDsKK+WJjem8u+e3kiA+IG1hZWhhbmFvXCA7CivkuI3lh43liaQgPiBmdXRvdXphaVwgOwor54mp55yf5Ly8ID4gbW9ub21hbmVcIDsKK+mBiuatqemBkyA+IHl1dWhvZG91XCA7Civlj6/lk4Dmg7MgPiBrYXdhaXNvdVwgOwor56if6K2w5pu4ID4gcmluZ2lzaG9cIDsKK+eEoeWItumZkCA+IG11c2VpZ2VuXCA7CivkvZPogrLlrrYgPiB0YWlpa3VrYVwgOwor5YiG5bKQ6aeFID4gYnVua2lla2lcIDsKK+WMu+eZgueUqCA+IGlyeW91eW91XCA7CivpgK7mjZXnirYgPiB0YWlob2pvdVwgOwor6YGO5Y675bizID4ga2Frb2Nob3VcIDsKK+apn+WLleaApyA+IGtpZG91c2VpXCA7CivnhrHpoqjngokgPiBuZXBwdXVyb1wgOwor5q2p6KGM6ICFID4gaG9rb3VzaGFcIDsKK+WGhumMkOW9oiA+IGVuc3Vpa2VpXCA7Civlrojpiq3lpbQgPiBzaHVzZW5kb1wgOwor6YGT5YyW5birID4gZG91a2VzaGlcIDsKK+S4i+iFuemDqCA+IGthZnVrdWJ1XCA7Civlj43mlL/lupwgPiBoYW5zZWlmdVwgOwor5Zue6Lui5YSAID4ga2FpdGVuZ2lcIDsKK+S4iuiNieWxpSA+IHV3YXpvdXJpXCA7CivnsbPkuIrpmaIgPiBiZWlqb3VpblwgOwor5LiA5biz576FID4gaXRjaG91cmFcIDsKK+acneeoveWPpCA+IGFzYWdlaWtvXCA7Civoo73nsonmiYAgPiBzZWlmdW5qb1wgOwor6KKr5rK76ICFID4gaGljaGlzaGFcIDsKK+WurueUsOWutiA+IG1peWF0YWtlXCA7Civov5HooZvlhbUgPiBrb25vZWhlaVwgOwor5bKp5omL55yMID4gaXdhdGVrZW5cIDsKK+mAo+maiuaXlyA+IHJlbnRhaWtpXCA7CivnrqHmpb3lmaggPiBrYW5nYWtraVwgOwor6Kyd5oGp5LyaID4gc2hhb25rYWlcIDsKK+mkiuicguWutiA+IHlvdWhvdWthXCA7CivkupTnt5rntJkgPiBnb3NlbnNoaVwgOwor5bmz55Sf552AID4gaGVpemVpZ2lcIDsKK+apn+W4huiIuSA+IGtpaGFuc2VuXCA7CivpnZ7mjpLmsLQgPiBoaWhhaXN1aVwgOwor552A55Wq5Y+3ID4ga2liYW5nb3VcIDsKK+S4jeWAq+e9qiA+IGZ1cmluemFpXCA7Civpo7TntLDlt6UgPiBhbWV6YWlrdVwgOwor5YG95Ly855eHID4gZ2lqaXNob3VcIDsKK+Wkp+W6g+mWkyA+IG9vaGlyb21hXCA7Civpgb/pm6PogIUgPiBoaW5hbnNoYVwgOwor5a6a5bi45rOiID4gdGVpam91aGFcIDsKK+aMh+aPruWumCA+IHNoaWtpa2FuXCA7Civku5jlsZ7oqp4gPiBmdXpva3Vnb1wgOwor5bm05Lya6LK7ID4gbmVua2FpaGlcIDsKK+aVheiyt+iAhSA+IGtvYmFpc2hhXCA7CivkupTlpKfmtIsgPiBnb2RhaXlvdVwgOwor54+q6Je75ZyfID4ga2Vpc291ZG9cIDsKK+S6uuWQjeewvyA+IGppbm1laWJvXCA7CivmjpLmsJflj6MgPiBoYWlraWtvdVwgOwor6YG/5aaK5rOVID4gaGluaW5ob3VcIDsKK+iQjOacqOiJsiA+IG1vZWdpaXJvXCA7CivnibnkvqHlk4EgPiB0b2trYWhpblwgOwor5o+a5oqX5q+UID4geW91a291aGlcIDsKK+mbh+eUqOiAhSA+IGtveW91c2hhXCA7Civovp7mm7jpoZ4gPiBqaXNob3J1aVwgOwor5aSn5b6A55SfID4gZGFpb3Vqb3VcIDsKK+i/vei1t+iotCA+IHRzdWlraXNvXCA7CivpgY7ljYrmlbAgPiBrYWhhbnN1dVwgOwor5a6J5oGv5pelID4gYW5zb2t1YmlcIDsKK+WGjea1ruS4iiA+IHNhaWZ1am91XCA7Civlm7Pmm7jliLggPiB0b3Nob2tlblwgOwor55m66LW35Lq6ID4gaG9ra2luaW5cIDsKK+mBk+WFt+irliA+IGRvdWd1cm9uXCA7CivliIbnm7jlv5wgPiBidW5zb3VvdVwgOwor56uL5YCZ6KOcID4gcmlra291aG9cIDsKK+mBv+aakeWcsCA+IGhpc2hvY2hpXCA7CivmjqXpqqjmnKggPiBuaXdhdG9rb1wgOwor56S+5Lya56eRID4gc2hha2Fpa2FcIDsKK+S4iuapn+WrjCA+IGpvdWtpZ2VuXCA7CivkuqTmj5vmiYAgPiBrb3VrYW5qb1wgOwor5Zac5q2M5YqHID4ga2lrYWdla2lcIDsKK+a3u+WKoOWJpCA+IHRlbmthemFpXCA7CivmnKrlvqnlk6EgPiBtaWZ1a3VpblwgOwor6KyZ6YGc6KqeID4ga2Vuc29uZ29cIDsKK+acquWHpue9riA+IG1pc2hvY2hpXCA7CivlnLDlvaLlm7MgPiBjaGlrZWl6dVwgOwor5pyq55+l5pWwID4gbWljaGlzdXVcIDsKK+WFq+a9rui3ryA+IHlhc2hpb2ppXCA7Civku6PnkIbogIUgPiBkYWlyaXNoYVwgOwor6LuN5Luk6YOoID4gZ3VucmVpYnVcIDsKK+aoquaWh+WtlyA+IHlva29tb2ppXCA7CivlpKrlj6Tku6MgPiB0YWlrb2RhaVwgOwor5bm+5L2V5a2mID4ga2lrYWdha3VcIDsKK+ilv+a0i+WMliA+IHNlaXlvdWthXCA7CivliJHkvZnogIUgPiBrZWl5b3NoYVwgOwor5rih5LiW5Lq6ID4gdG9zZWluaW5cIDsKK+e+hemHneWEgCA+IHJhc2hpbmdpXCA7CivlrZDpn7PnvqQgPiBzaGlpbmd1blwgOwor5pqX6Ki85YyWID4gYW5zaG91a2FcIDsKK+a7kei1sOi3ryA+IGthc3NvdXJvXCA7Civoo73lm7Pmnb8gPiBzZWl6dWJhblwgOwor55qH57Wx6K2cID4ga291dG91ZnVcIDsKK+eQhuWtpumDqCA+IHJpZ2FrdWJ1XCA7Civoi7Hoqp7lob4gPiBlaWdvanVrdVwgOwor5oKy5Zac5YqHID4gaGlraWdla2lcIDsKK+S/neeuoeaelyA+IGhva2FucmluXCA7Civlho3mraboo4UgPiBzYWlidXNvdVwgOwor6LWk6Jy76JuJID4gYWthdG9uYm9cIDsKK+S6iOmljOS8miA+IHlvc2Vua2FpXCA7CivnhKHovrrpmpsgPiBtdWhlbnphaVwgOwor5LiN6Ieq54S2ID4gZnVzaGl6ZW5cIDsKK+iFjuS4jeWFqCA+IGppbmZ1emVuXCA7CivlrrTkvJrloLQgPiBlbmthaWpvdVwgOwor57WM5LiW5a62ID4ga2Vpc2Vpa2FcIDsKK+S4jeS/oeiAhSA+IGZ1c2hpbmphXCA7CivljZjmnKzkvY0gPiB0YW5ob24nJ2lcIDsKK+WGhumMkOWPsCA+IGVuc3VpZGFpXCA7Civlm6DmnpzogIUgPiBpbmdhbW9ub1wgOwor5LiN5L+h576pID4gZnVzaGluZ2lcIDsKK+i7jeS6i+mdoiA+IGd1bmppbWVuXCA7CivmgZLmsrPmspkgPiBnb3VnYXNoYVwgOwor5Ym15qGI6ICFID4gc291YW5zaGFcIDsKK+iHquayu+S9kyA+IGppY2hpdGFpXCA7CivnnYDlsLrlnLAgPiBraWpha3VqaVwgOwor5b6M5Y2K5pyfID4ga291aGFua2lcIDsKK+iHquayu+S8miA+IGppY2hpa2FpXCA7CivkvqHlgKToprMgPiBrYWNoaWthblwgOwor6KW/6YGK6KiYID4gc2VpeXV1a2lcIDsKK+W5tOS7o+iomCA+IG5lbmRhaWtpXCA7CivmhJ/mg4XlrrYgPiBrYW5qb3VrYVwgOwor5paH5YyW56WtID4gYnVua2FzYWlcIDsKK+WkieaPm+WZqCA+IGhlbmthbmtpXCA7CivkuJbnlYzlj7IgPiBzZWthaXNoaVwgOwor5Y+X57K+5Y21ID4ganVzZWlyYW5cIDsKK+e3j+aMh+aPriA+IHNvdXNoaWtpXCA7CivlubTnlLLmlpAgPiB0b3NoaWdhaVwgOwor5LiN5YWF5YiGID4gZnVqdXVidW5cIDsKK+azpeS7leWQiCA+IGRvcm9qaWFpXCA7CivmuIXlrZDpn7MgPiBzZWlzaGlpblwgOwor5LqM5pyf5L2cID4gbmlraXNha3VcIDsKK+aoque0i+etiyA+IG91bW9ua2luXCA7CivpgYvli5XnlYwgPiB1bmRvdWthaVwgOwor5pyq55m66KaLID4gbWloYWtrZW5cIDsKK+WBtuWDj+WMliA+IGd1dXpvdWthXCA7Civoo5zogbTlmaggPiBob2Nob3VraVwgOwor6Iux6Kqe5YqHID4gZWlnb2dla2lcIDsKK+mbu+eul+apnyA+IGRlbnNhbmtpXCA7Civlho3lkJ/lkbMgPiBzYWlnaW5taVwgOwor5YaG6YyQ5L2TID4gZW5zdWl0YWlcIDsKK+S6iOmknuS8miA+IHlvc2Vua2FpXCA7CivpnZLlpKnkupUgPiBhb3RlbmpvdVwgOwor6Z2e5oim6KuWID4gaGlzZW5yb25cIDsKK+acqueZuuihjCA+IG1paGFra291XCA7Civnm7jloLTluKsgPiBzb3ViYXNoaVwgOwor5Y+k5oim5aC0ID4ga29zZW5qb3VcIDsKK+S4ieeVs+e0gCA+IHNhbmpvdWtpXCA7Civlpb3mhI/nmoQgPiBrb3VpdGVraVwgOwor5b6h6aaz6LWwID4gZ29jaGlzb3VcIDsKK+aJtumkiuiAhSA+IGZ1eW91c2hhXCA7CivljYHlrZfou40gPiBqdXVqaWd1blwgOwor5oyJ5omL56S8ID4gYW5zaHVyZWlcIDsKK+WQjOS9jeinkiA+IGRvdWlrYWt1XCA7CivovKrou6LmqZ8gPiByaW50ZW5raVwgOwor5Y6t5Lq66ICFID4gZW5qaW5zaGFcIDsKK+eEoemFjeW9kyA+IG11aGFpdG91XCA7Civlr4zoo5XnqI4gPiBmdXl1dXplaVwgOwor6YGO5Yq05q27ID4ga2Fyb3VzaGlcIDsKK+e0heihm+WFtSA+IGtvdWVpaGVpXCA7CivnrqHnkIbogIUgPiBrYW5yaXNoYVwgOwor5aSc5ZWG5Lq6ID4geW9ha2luZG9cIDsKK+iIjOS4i+iFuiA+IHpla2thc2VuXCA7CivmiYDmjIHlk4EgPiBzaG9qaWhpblwgOwor57SA6KGM5paHID4ga2lrb3VidW5cIDsKK+eBq+WxseeBsCA+IGthemFuYmFpXCA7CivpqI7lo6vpgZMgPiBraXNoaWRvdVwgOwor5Ymw5L2Z6YeRID4gam91eW9raW5cIDsKK+ixiuawtOacnyA+IGhvdXN1aWtpXCA7CivkvY7og73lhZAgPiB0ZWlub3VqaVwgOwor5biw57SN5rOVID4ga2lub3Vob3VcIDsKK+eNheWtkOW6pyA+IHNoaXNoaXphXCA7CivkuqTmj5vlmaggPiBrb3VrYW5raVwgOwor5LiW55WM5Lq6ID4gc2VrYWlqaW5cIDsKK+ihm+eUn+maiiA+IGVpc2VpdGFpXCA7CivnkIbkuovplbcgPiByaWppY2hvdVwgOwor5bmz5bGL5qC5ID4gaGlyYXlhbmVcIDsKK+WFg+iAgemZoiA+IGdlbnJvdWluXCA7Civmo4TmqKnogIUgPiBraWtlbnNoYVwgOwor5LiW55WM5LitID4gc2VrYWlqdXVcIDsKK+ays+WPo+a4ryA+IGtha291a291XCA7CivkuI3kvZPoo4EgPiBmdXRlaXNhaVwgOwor5q+S6JyY6JubID4gZG9rdWd1bW9cIDsKK+WNmOiqnuevhyA+IHRhbmdvaGVuXCA7CivnlJ/lvpLmlbAgPiBzZWl0b3N1dVwgOwor576K55qu57SZID4geW91aGlzaGlcIDsKK+avjeezu+WItiA+IGJva2Vpc2VpXCA7CivlsZXnpLrloLQgPiB0ZW5qaWpvdVwgOwor5b6M6YG655eHID4ga291aXNob3VcIDsKK+S4jeWumuipniA+IGZ1dGVpc2hpXCA7CivliqDmi4XogIUgPiBrYXRhbnNoYVwgOwor6Zm96Zu75rCXID4geW91ZGVua2lcIDsKK+Wuo+S8neiyuyA+IHNlbmRlbmhpXCA7CivliofmmKDnlLsgPiBnZWtpZWlnYVwgOwor54Sh5bi46KazID4gbXVqb3VrYW5cIDsKK+mBiuiVqeWFkCA+IHl1dXRvdWppXCA7Civph5HmuoDlrrYgPiBraW5tYW5rYVwgOwor6Yyg5YmN5bGLID4gam91bWFleWFcIDsKK+efpeWQjeW6piA+IGNoaW1laWRvXCA7Civlh7rpsYjnm64gPiBkZXRhcmFtZVwgOwor5oeH6Kmx5LyaID4ga29ud2FrYWlcIDsKK+mBv+mbo+awkSA+IGhpbmFubWluXCA7CivljYHlrZfooZcgPiBqdXVqaWdhaVwgOwor5Li75ryU6ICFID4gc2h1ZW5zaGFcIDsKK+S4luS/l+WMliA+IHNlem9rdWthXCA7Civnspfoo73lk4EgPiBzb3NlaWhpblwgOwor5Y+z5b+D5oi/ID4gdXNoaW5ib3VcIDsKK+Wcp+WItuiAhSA+IGFzc2Vpc2hhXCA7CivlsZXnpLrlk4EgPiB0ZW5qaWhpblwgOwor5pu46KiY5a6YID4gc2hva2lrYW5cIDsKK+mDt+Wcn+aEmyA+IGt5b3Vkb2FpXCA7Civosq/olLXluqsgPiBjaG96b3Vrb1wgOwor5LiL6aas6KmVID4gZ2ViYWh5b3VcIDsKK+S4jeiDveiAhSA+IGZ1bm91c2hhXCA7CivkuI3oia/ljJYgPiBmdXJ5b3VrYVwgOwor6JaE6I2357OWID4gaGFra2F0b3VcIDsKK+iWhOiNt+eyviA+IGhha2thc2VpXCA7Civmr5TllqnnmoQgPiBoaXl1dGVraVwgOwor5LqJ6K2w5qipID4gc291Z2lrZW5cIDsKK+mHjeemgemMriA+IGp1dWtpbmtvXCA7CivpgYvli5XmrIQgPiB1bmRvdXJhblwgOwor5pmu5YGP5oCnID4gZnVoZW5zZWlcIDsKK+i+sue5geacnyA+IG5vdWhhbmtpXCA7CivmhJ/lj5fmgKcgPiBrYW5qdXNlaVwgOwor5YW15Zmo5belID4gaGVpa2lrb3VcIDsKK+WAqumbsuaelyA+IGdlaXVucmluXCA7CivpgYvpgIHoiLkgPiB1bnNvdXNlblwgOwor6YGK5Ya26YOOID4geXV1eWFyb3VcIDsKK+eUu+S7mee0mSA+IGdhc2Vuc2hpXCA7CivlpJrmrrXpmo4gPiB0YWRhbmthaVwgOwor6Kmm6aiT5qmfID4gc2hpa2Vua2lcIDsKK+S4gOiIrOirliA+IGlwcGFucm9uXCA7CivliqDnrpfnqI4gPiBrYXNhbnplaVwgOwor5YiG5bKQ57eaID4gYnVua2lzZW5cIDsKK+WWh+WPreaJiyA+IHJhcHBhc2h1XCA7CivlhY3nvarnrKYgPiBtZW56YWlmdVwgOwor54qs6buE5qWKID4gaW51dHN1Z2VcIDsKK+WOreS4luimsyA+IGVuc2Vpa2FuXCA7CivljYrkuJbntIAgPiBoYW5zZWlraVwgOwor6YW15q+N6I+MID4ga291Ym9raW5cIDsKK+WGt+e9qOazlSA+IHJlaWFucG91XCA7CivmhJvolLXniYggPiBhaXpvdWJhblwgOwor5b6h5YGJ5pa5ID4gb2VyYWdhdGFcIDsKK+iomOaVsOazlSA+IGtpc3V1aG91XCA7CivnqbrkuIvmiYsgPiBrYXJhaGV0YVwgOwor5LiN5YGl5bq3ID4gZnVrZW5rb3VcIDsKK+aOouaknOWutiA+IHRhbmtlbmthXCA7CivlpKfmsJflnI8gPiB0YWlraWtlblwgOwor542F5a2Q5ZC8ID4gc2hpc2hpa3VcIDsKK+S7o+eQhuaoqSA+IGRhaXJpa2VuXCA7Civnianku7bosrsgPiBidWtrZW5oaVwgOwor5q2j6KaP5YW1ID4gc2Vpa2loZWlcIDsKK+WGjemFjeW4gyA+IHNhaWhhaWZ1XCA7Civlm5vnlbPljYogPiB5b2pvdWhhblwgOwor5bGV56S65LyaID4gdGVuamlrYWlcIDsKK+Wkp+mDveW4giA+IGRhaXRvc2hpXCA7CivlhYjlrabmnJ8gPiBzZW5nYWtraVwgOwor5oKq5rSS6JC9ID4gd2FydWphcmVcIDsKK+iHquawkeWFmiA+IGppbWludG91XCA7CivljLvnmYLlk4EgPiBpcnlvdWhpblwgOwor5YaF5rKZ5rGwID4gdWNoaXphdGFcIDsKK+WIhuWFieWZqCA+IGJ1bmtvdWtpXCA7CivopqrkuI3lrZ0gPiBveWFmdWtvdVwgOwor57iB6LW354mpID4gZW5naW1vbm9cIDsKK+a1geaYn+mbqCA+IHJ5dXVzZWl1XCA7CivlubTosqLnsbMgPiBuZW5ndW1haVwgOwor5rSX5rWE5ZmoID4gc2Vuam91a2lcIDsKK+ayuemAgeiIuSA+IHl1c291c2VuXCA7CivlvqrnkrDlmaggPiBqdW5rYW5raVwgOwor5YGl5bq35YWQID4ga2Vua291amlcIDsKK+eojueQhuWjqyA+IHplaXJpc2hpXCA7Civkurrmg4XlkbMgPiBuaW5qb3VtaVwgOwor5auM55aR6ICFID4ga2VuZ2lzaGFcIDsKK+etieiqnue3miA+IHRvdWdvc2VuXCA7CivljYHlrZfnt5ogPiBqdXVqaXNlblwgOwor5LiN5L2/55SoID4gZnVzaGl5b3VcIDsKK+S4gOeUn+mdoiA+IGlzc2VpbWVuXCA7Civml4XooYzoqJggPiByeW9rb3VraVwgOwor5YCL5L2T576kID4ga290YWlndW5cIDsKK+WPo+iTi+mfsyA+IGtvdWdhaW9uXCA7CivlnKflu7bmqZ8gPiBhdHN1ZW5raVwgOwor5ZKM5aOw5rOVID4gd2FzZWlob3VcIDsKK+mrmOmgu+W6piA+IGtvdWhpbmRvXCA7CivlsI/osYboibIgPiBhenVraWlyb1wgOwor5Y6z576O5riTID4gZ2VuYmlrZWlcIDsKK+eBq+WxseW8viA+IGthemFuZGFuXCA7CivljYroq6fpn7MgPiBoYW5rYWlvblwgOwor5raI5YyW5ZmoID4gc2hvdWtha2lcIDsKK+axguazleiAhSA+IGd1aG91c2hhXCA7CivngavlsbHluK8gPiBrYXphbnRhaVwgOwor5LiL6aeE566xID4gZ2V0YWJha29cIDsKK+iKnea1t+iAgSA+IHNoaWJhZWJpXCA7CivlpKfliIbnnIwgPiBvb2l0YWtlblwgOwor5bGx576K6autID4geWFnaWhpZ2VcIDsKK+eArOaIuOmamyA+IHNldG9naXdhXCA7CivngavlsbHls7YgPiBrYXphbnRvdVwgOwor5LiN5a+p54GrID4gZnVzaGluYmlcIDsKK+WlieS7leWlsyA+IGhvdXNoaW1lXCA7CivngavlsbHlsqkgPiBrYXphbmdhblwgOwor546J56CC5YipID4gdGFtYWphcmlcIDsKK+S4gOWIhuWNiiA+IGlwcHVuaGFuXCA7CivoirHps6XnlLsgPiBrYWNob3VnYVwgOwor54Sh6I+M5rOVID4gbXVraW5ob3VcIDsKK+eEoeWFjeiosSA+IG11bWVua3lvXCA7CivlvoXpgb/nt5ogPiB0YWloaXNlblwgOwor562J5pmC5oCnID4gdG91amlzZWlcIDsKK+W5tOizgOeKtiA+IG5lbmdham91XCA7Civlj6Tlj4LogIUgPiBrb3NhbnNoYVwgOwor5oSf5q2O56ymID4ga2FudGFuZnVcIDsKK+WIhuWykOeCuSA+IGJ1bmtpdGVuXCA7Civkvo3lvpPlrpggPiBqaWp1dWthblwgOwor5YaF6YeO5omLID4gbmFpeWFzaHVcIDsKK+ayuemAgeeuoSA+IHl1c291a2FuXCA7CivkuI3nlKjlv4MgPiBidXlvdWppblwgOwor6KqY6Ju+54GvID4geXV1Z2F0b3VcIDsKK+ioiOeQhuWjqyA+IGtlaXJpc2hpXCA7Civpm5HosqjlupcgPiB6YWtrYXRlblwgOwor5bqn5Y+z6YqYID4gemF5dXVtZWlcIDsKK+WtkOmfs+aApyA+IHNoaWluc2VpXCA7CivmnJ/lvoXmhJ8gPiBraXRhaWthblwgOwor6YGL5YuV5a62ID4gdW5kb3VzaGFcIDsKK+aEmumAo+maiiA+IGd1cmVudGFpXCA7Civljp/lrZDpm7IgPiBnZW5zaGl1blwgOwor5Luj55CG5bqXID4gZGFpcml0ZW5cIDsKK+iruOWZqOaisCA+IHNob2tpa2FpXCA7Civmk43oiLXmiYsgPiBzb3VkYXNodVwgOwor5Ye65q2v5LqAID4gZGViYWthbWVcIDsKK+S4jeWBpeWFqCA+IGZ1a2VuemVuXCA7Civnm7joo5zmgKcgPiBzb3Vob3NlaVwgOwor6Ieq6Lui6LuKID4gaml0ZW5zaGFcIDsKK+WIneacn+WApCA+IHNob2tpY2hpXCA7CivmjqXpoK3ovp4gPiBzZXR0b3VqaVwgOwor55Sf5b6S5LyaID4gc2VpdG9rYWlcIDsKK+i1pOijuOOAhSA+IHNla2lyYXJhXCA7CivpoJDoqIDogIUgPiB5b2dlbnNoYVwgOwor6ZaL5YKs5pelID4ga2Fpc2FpYmlcIDsKK+iDtOmWk+WjsCA+IGRvdW1hZ29lXCA7Civog4znlarlj7cgPiBzZWJhbmdvdVwgOwor5rWu5rWq6ICFID4gZnVyb3VzaGFcIDsKK+S8muWToeWIuCA+IGthaWlua2VuXCA7CivkvJrlk6HliLYgPiBrYWlpbnNlaVwgOwor6Iux57Gz5rOVID4gZWliZWlob3VcIDsKK+WQiOeQhuirliA+IGdvdXJpcm9uXCA7CivlpKfpg6jliIYgPiBkYWlidWJ1blwgOwor5LqU6KeS5b2iID4gZ29rYWtrZWlcIDsKK+ekvuS8muWMliA+IHNoYWthaWthXCA7CivkuK3opo/mqKEgPiBjaHV1a2lib1wgOwor5aSn6YO95LyaID4gZGFpdG9rYWlcIDsKK+itt+mAgei7iiA+IGdvc291c2hhXCA7Civph43miYvku6MgPiBvbW90ZWRhaVwgOwor5bqD5aCx6YOoID4ga291aG91YnVcIDsKK+WJteS4luiomCA+IHNvdXNlaWtpXCA7CivkuInmna/phaIgPiBzYW5iYWl6dVwgOwor56+A54Kt5ZmoID4gc2V0dGFua2lcIDsKK+W4jOacm+iAhSA+IGtpYm91c2hhXCA7CivlpJbnp5HlraYgPiBnZWthZ2FrdVwgOwor5YiR5LqL54qvID4ga2VpamloYW5cIDsKK+mFjee3muWbsyA+IGhhaXNlbnp1XCA7CivmqZ/morDoq5YgPiBraWthaXJvblwgOwor5bed56eL5rKZID4ga2F3YWFpc2FcIDsKK+aWh+WMluWcjyA+IGJ1bmtha2VuXCA7CivmjqXpoK3oqp4gPiBzZXR0b3Vnb1wgOwor5LqL5pWF5q20ID4gamlrb3Jla2lcIDsKK+WxseWwj+WxiyA+IHlhbWFnb3lhXCA7Civns7jonLvom4kgPiBpdG90b25ib1wgOwor56e76Lui5YWIID4gaXRlbnNha2lcIDsKK+Wkp+WLsuS9jSA+IGRhaWt1bicnaVwgOwor5aSn55uu546JID4gb29tZWRhbWFcIDsKK+WumOWFrOWQjyA+IGthbmtvdXJpXCA7CivljZTorbDlk6EgPiBreW91Z2lpblwgOwor6LuN5LqL54qvID4gZ3VuamloYW5cIDsKK+maj+ihjOWToSA+IHp1aWtvdWluXCA7CivkuIDovrrlgJIgPiBpcHBlbnRvdVwgOwor54++5Luj6KqeID4gZ2VuZGFpZ29cIDsKK+iBtOmfs+apnyA+IGNob3VvbmtpXCA7CivkuI3lsI7mgKcgPiBmdWRvdXNlaVwgOwor55CG5a655birID4gcml5b3VzaGlcIDsKK+S5semrmOS4iyA+IHJhbmtvdWdlXCA7Civlj5nmg4XoqakgPiBqb2pvdXNoaVwgOwor56S+5Lqk5a62ID4gc2hha291a2FcIDsKK+aWh+WMluWPsiA+IGJ1bmthc2hpXCA7CivkuI3nlKjlk4EgPiBmdXlvdWhpblwgOwor6YCP5piO5bqmID4gdG91bWVpZG9cIDsKK+S4jeWumuazlSA+IGZ1dGVpaG91XCA7CivmuKnmjpLmsLQgPiBvbmhhaXN1aVwgOwor5aSp6Iqx57KJID4gdGVua2FmdW5cIDsKK+iIquepuui3ryA+IGtvdWt1dXJvXCA7Civos4fnlKPlrrYgPiBzaGlzYW5rYVwgOwor6aGe5Ly854K5ID4gcnVpaml0ZW5cIDsKK+a3oeawtOa5liA+IHRhbnN1aWtvXCA7CivkuojoqIDogIUgPiB5b2dlbnNoYVwgOwor5bqD5aCx6KqyID4ga291aG91a2FcIDsKK+Wwj+S6uuaVsCA+IGtvbmluenV1XCA7CivmhJvnn6XnnIwgPiBhaWNoaWtlblwgOwor5Lq66YCg6JeNID4gamluem91YWlcIDsKK+WMu+WtpuiAhSA+IGlnYWt1c2hhXCA7CivmgqrmhJ/mg4UgPiBha2thbmpvdVwgOwor5Luu57SN6YeRID4ga2Fub3VraW5cIDsKK+acquWHpuWIhiA+IG1pc2hvYnVuXCA7Civlt67phY3kurogPiBzYWhhaW5pblwgOwor5L2O6aC75bqmID4gdGVpaGluZG9cIDsKK+S9nOeCuueKryA+IHNha3VpaGFuXCA7Civmra/np5HnlKggPiBzaGlrYXlvdVwgOwor5YaN5Yem55CGID4gc2Fpc2hvcmlcIDsKK+mBi+WLleS8miA+IHVuZG91a2FpXCA7CivoirHojKPok5kgPiBoYW5hZ296YVwgOwor546E5q2m5bKpID4gZ2VuYnVnYW5cIDsKK+a2sueKtuWMliA+IGVraWpvdWthXCA7CivnhKHliKnmga8gPiBtdXJpc29rdVwgOwor6Zmj576957mUID4gamluYmFvcmlcIDsKK+aIpumXmOapnyA+IHNlbnRvdWtpXCA7CivmnInmhI/nmoQgPiB5dXVpdGVraVwgOwor5ZWP6aGM5YWQID4gbW9uZGFpamlcIDsKK+WCteWLmeiAhSA+IHNhaW11c2hhXCA7CivkuIDpqI7oqI4gPiBpa2tpdWNoaVwgOwor6KOc57Wm6LevID4gaG9reXV1cm9cIDsKK+S4i+WxpOWcnyA+IGthc291ZG9cIDsKK+i1t+WLleapnyA+IGtpZG91a2lcIDsKK+WNgeWtl+aetiA+IGp1dWppa2FcIDsKK+S6uuW3pembqCA+IGppbmtvdXVcIDsKK+mkk+msvOmBkyA+IGdha2lkb3VcIDsKK+S4jeWumuacnyA+IGZ1dGVpa2lcIDsKK+aooeaTrOW6lyA+IG1vZ2l0ZW5cIDsKK+WPpOatpumBkyA+IGtvYnVkb3VcIDsKK+aghOmkiue0oCA+IGVpeW91c29cIDsKK+i6q+WLneaJiyA+IG1pZ2F0dGVcIDsKK+eEoeWIqeWtkCA+IG11cmlzaGlcIDsKK+eRoOeSg+iJsiA+IHJ1cmlpcm9cIDsKK+iDg+iFuOeCjiA+IGljaG91ZW5cIDsKK+i1t+WLleaZgiA+IGtpZG91amlcIDsKK+auuumZo+W4qyA+IHRhdGVzaGlcIDsKK+mhnue+qeiqniA+IHJ1aWdpZ29cIDsKK+WutuioiOewvyA+IGtha2VpYm9cIDsKK+eZu+iomOewvyA+IHRvdWtpYm9cIDsKK+mHjeavjemfsyA+IGp1dWJvaW5cIDsKK+mBheefpeaBtSA+IG9zb2RqaWVcIDsKK+Wkp+mBjuWOuyA+IGRhaWtha29cIDsKK+WKoOeul+WZqCA+IGthc2Fua2lcIDsKK+Wkp+ebuOaSsiA+IG9venVtb3VcIDsKK+apn+iDveiqniA+IGtpbm91Z29cIDsKK+acieawl+mfsyA+IHl1dWtpb25cIDsKK+S4jeadoeeQhiA+IGZ1am91cmlcIDsKK+Wkp+mBk+WFtyA+IG9vZG91Z3VcIDsKK+WumuS9jee9riA+IHRlaWljaGlcIDsKK+mBi+mAgeWxiyA+IHVuc291eWFcIDsKK+mAoOWWtuiyuyA+IHpvdWVpaGlcIDsKK+iSmeWPpOiqniA+IG1vdWtvZ29cIDsKK+apn+aisOenkSA+IGtpa2Fpa2FcIDsKK+asoeW5tOW6piA+IGppbmVuZG9cIDsKK+WkmumHjeWMliA+IHRhanV1a2FcIDsKK+WNg+S7o+WlsyA+IGNoaXlvam9cIDsKK+WPpOekvuWvuiA+IGtvc2hhamlcIDsKK+S4gOWxpOebriA+IGlzc291bWVcIDsKK+WokeWphuawlyA+IHNoYWJha2VcIDsKK+WKseejgeapnyA+IHJlaWppa2lcIDsKK+S4jemmluWwviA+IGZ1c2h1YmlcIDsKK+aCquaEn+WMliA+IGFra2Fua2FcIDsKK+W+hemBv+aJgCA+IHRhaWhpam9cIDsKK+Wbm+iCoeWQjSA+IHNoaWtvbmFcIDsKK+S4jeS6uuawlyA+IGZ1bmlua2lcIDsKK+ilv+asp+WMliA+IHNlaW91a2FcIDsKK+S6jOmajuWxiyA+IG5pa2FpeWFcIDsKK+ajkuaal+iomCA+IGJvdWFua2lcIDsKK+S4jeS4gOiHtCA+IGZ1aXRjaGlcIDsKK+ihgOWPjeWQkCA+IGNoaWhlZG9cIDsKK+abs+eBq+W8viA+IGVpa2FkYW5cIDsKK+S6jOmajuWutiA+IG5pa2FpeWFcIDsKK+ewoee0oOWMliA+IGthbnNva2FcIDsKK+WAi+S9k+W3riA+IGtvdGFpc2FcIDsKK+WQjOmfs+iqniA+IGRvdW9uZ29cIDsKK+S5l+WLmeWToSA+IGpvdW11aW5cIDsKK+ijj+acqOaIuCA+IHVyYWtpZG9cIDsKK+mHkeavmOe+hSA+IGtvbnBpcmFcIDsKK+eEoemAoOS9nCA+IG11em91c2FcIDsKK+WNgeS6jOaZgiA+IGp1dW5pamlcIDsKK+aEj+aDs+WkliA+IGlzb3VnYWlcIDsKK+S4jeWuieWumiA+IGZ1YW50ZWlcIDsKK+mZsOmbu+awlyA+IGluZGVua2lcIDsKK+iWhOmmrOm5vyA+IHVzdWJha2FcIDsKK+S4geWtl+i3ryA+IHRlaWppcm9cIDsKK+aPkOekuumDqCA+IHRlaWppYnVcIDsKK+aFsOWVj+WTgSA+IGltb25oaW5cIDsKK+imquaWh+WtlyA+IG95YW1vamlcIDsKK+eQhuiyoeWutiA+IHJpemFpa2FcIDsKK+eoveWPpOaXpSA+IGtlaWtvYmlcIDsKK+S6jOWhgeaJkyA+IG5pcnVpZGFcIDsKK+aJi+ebuOimiyA+IHRlc291bWlcIDsKK+WknOebl+ibviA+IHlvdG91Z2FcIDsKK+Wls+aAp+e+jiA+IGpvc2VpYmlcIDsKK+miqOmCquWjsCA+IGthemVnb2VcIDsKK+WOreS4luWutiA+IGVuc2Vpa2FcIDsKK+eGqOaWl+ebriA+IG5vc2hpbWVcIDsKK+mZsOisgOWutiA+IGluYm91a2FcIDsKK+maj+aEj+etiyA+IHp1aWlraW5cIDsKK+aJi+WKoOa4myA+IHRla2FnZW5cIDsKK+iumue+juatjCA+IHNhbmJpa2FcIDsKK+WQjOS9jeS9kyA+IGRvdWl0YWlcIDsKK+mhnumfs+iqniA+IHJ1aW9uZ29cIDsKK+WPieaJi+e2siA+IHNhZGVhbWlcIDsKK+Wwj+e2rOm2jyA+IGtvanVrZWlcIDsKK+aZtOmbqOioiCA+IHNlaXVrZWlcIDsKK+aWh+W6q+WMliA+IGJ1bmtva2FcIDsKK+mHjuasoemmrCA+IHlhaml1bWFcIDsKK+ihl+i3r+aouSA+IGdhaXJvanVcIDsKK+aOp+iotOmZoiA+IGtvdXNvaW5cIDsKK+S7meS6uuaOjCA+IHNhYm90ZW5cIDsKK+e+qeaPtOmHkSA+IGdpZW5raW5cIDsKK+S/r+eesOWbsyA+IGZ1a2FuenVcIDsKK+W+oeaWsOmmmSA+IG9zaGlua29cIDsKK+W+oeWutuS6uiA+IGdva2VuaW5cIDsKK+Wkp+WvuumZoiA+IGRhaWppaW5cIDsKK+eDj+e+veeOiSA+IHViYXRhbWFcIDsKK+aAp+ihjOeCuiA+IHNlaWtvdWlcIDsKK+S4gOiIrOWMliA+IGlwcGFua2FcIDsKK+WNgeS6lOWknCA+IGp1dWdveWFcIDsKK+S6jOmZouWItiA+IG5paW5zZWlcIDsKK+WutuaUv+WppiA+IGthc2VpZnVcIDsKK+esrOS6jOe+qSA+IGRhaW5pZ2lcIDsKK+ecn+mtmuadvyA+IG1hbmFpdGFcIDsKK+WGhui7jOmBkyA+IGVua2lkb3VcIDsKK+mHjuiRoeiQhCA+IG5vYnVkb3VcIDsKK+W/nOWLn+iAhSA+IG91Ym9zaGFcIDsKK+m6u+Wun+ayuSA+IGFzYW1peXVcIDsKK+iMtumjr+S6iyA+IHNhaGFuamlcIDsKK+WFq+mHjembsiA+IHlhZWd1bWFcIDsKK+acqui4j+afuyA+IG1pdG91c2FcIDsKK+e1teiRieabuCA+IGVoYWdha2lcIDsKK+eoveWPpOWgtCA+IGtlaWtvYmFcIDsKK+WuieWFqOacnyA+IGFuemVua2lcIDsKK+WPjeaEj+iqniA+IGhhbicnaWdvXCA7CivlgIvkurrlt64gPiBrb2ppbnNhXCA7Civnt4/li5npg6ggPiBzb3VtdWJ1XCA7Civorabpg6joo5wgPiBrZWlidWhvXCA7CivkuI7lpKrpg44gPiB5b3Rhcm91XCA7CivkvY3niYzloIIgPiBpaGFpZG91XCA7CivnvqnlpKrlpKsgPiBnaWRheXV1XCA7CivkuInpnq3phZIgPiBzaGFucGVuXCA7CivlpoPmrr/kuIsgPiBoaWRlbmthXCA7CivmvKvnlLvlrrYgPiBtYW5nYWthXCA7CivkuI3mnKzmhI8gPiBmdWhvbicnaVwgOwor5q2p5ZCI566XID4gYnVhaXphblwgOwor6Kqe5b2Z55qEID4gZ29pdGVraVwgOwor56ys5LiA6KqyID4gZGFpaWtrYVwgOwor5LqV5oi456uvID4gaWRvYmF0YVwgOwor55CG5LqL5LyaID4gcmlqaWthaVwgOwor54Gr5puc5pelID4ga2F5b3ViaVwgOwor5b6h5LiN5rWEID4gZ29mdWpvdVwgOwor5pyq5a6a576pID4gbWl0ZWlnaVwgOwor5a++5L2N5rOVID4gdGFpaWhvdVwgOwor5rWu5rWq5YWQID4gZnVyb3VqaVwgOwor5amm5Lq656eRID4gZnVqaW5rYVwgOwor5LuW5LiW55WMID4gdGFzZWthaVwgOwor5oWw5Yq06YeRID4gaXJvdWtpblwgOwor55CG5LiN5bC9ID4gcmlmdWppblwgOwor5Y2Y5Z2Q5qmfID4gdGFuemFraVwgOwor5LiN6aO95ZKMID4gZnVob3V3YVwgOwor5Luj6K2w5ZOhID4gZGFpZ2lpblwgOwor6Z2e5ZCI55CGID4gaGlnb3VyaVwgOwor57eP5YuZ6KqyID4gc291bXVrYVwgOwor5qSw5a2Q5rK5ID4geWFzaGl5dVwgOwor5rC05rOz552AID4gc3VpZWlnaVwgOwor57W16I2J57SZID4gZXpvdXNoaVwgOwor5bCP54qs5bqnID4ga29pbnV6YVwgOwor6LWk5ZGz5ZmMID4gYWthbWlzb1wgOwor5a++576p6KqeID4gdGFpZ2lnb1wgOwor5rGa5p+T6I+MID4gb3NlbmtpblwgOwor5LiJ5pel6LevID4gbWlra2FqaVwgOwor5bGF6YWS5bGLID4gaXpha2F5YVwgOwor6Ieq5a626KO9ID4gamlrYXNlaVwgOwor5aGX5biD5YmkID4gdG9mdXphaVwgOwor5Y+k5YW46KqeID4ga290ZW5nb1wgOwor576p5o2Q6YeRID4gZ2llbmtpblwgOwor5LiN5pmv5rCXID4gZnVrZWlraVwgOwor5ZCI55CG5YyWID4gZ291cmlrYVwgOwor5ouJ5LiB6KqeID4gcmF0ZW5nb1wgOwor6Zu756OB5rOiID4gZGVuamloYVwgOwor6Zu756OB5rCXID4gZGVuamlraVwgOwor5a6J5YWo5ZmoID4gYW56ZW5raVwgOwor5qmf5qKw5YyWID4ga2lrYWlrYVwgOwor5qCE6aSK5L6hID4gZWl5b3VrYVwgOwor56ys5LqM5qyhID4gZGFpbmlqaVwgOwor5LqV5oi45rC0ID4gaWRvbWl6dVwgOwor5LiA5YCL5Lq6ID4gaWtrb2ppblwgOwor5Lqh56WW54i2ID4gYm91c29mdVwgOwor5b6h5pyx5Y2wID4gZ29zaHVpblwgOwor55Ww5oCn5L2TID4gaXNlaXRhaVwgOwor6Z2e5ZCM5pyfID4gaGlkb3VraVwgOwor5Y2B6Zyy55ukID4gc29yb2JhblwgOwor562G6KiY5YW3ID4gaGlra2lndVwgOwor56mP5YGl5rS+ID4gb25rZW5oYVwgOwor6IKy5YWQ5ZySID4gaWt1amllblwgOwor6Zu75rCX54KJID4gZGVua2lyb1wgOwor5L6d5a2Y5oCnID4gaXpvbnNlaVwgOwor5q+U5Y+h5bGxID4gaGllaXphblwgOwor5L6d6aC86ICFID4gaXJhaXNoYVwgOwor6KO95rK55omAID4gc2VpeXVqb1wgOwor5Z+65pys6KqeID4ga2lob25nb1wgOwor5b6h5LiJ5a62ID4gZ29zYW5rZVwgOwor5LqU56+A5Y+lID4gZ29zZWtrdVwgOwor6Kqk5YuV5L2cID4gZ29kb3VzYVwgOwor5b2x5Y2w5pysID4gZWlpbmhvblwgOwor57WM5Za26LK7ID4ga2VpZWloaVwgOwor5YaG55u45aC0ID4gZW5zb3ViYVwgOwor6KKr55aR6ICFID4gaGlnaXNoYVwgOwor5pS+54Gr6a2UID4gaG91a2FtYVwgOwor5LiN5pat552AID4gZnVkYW5naVwgOwor6IGW6Lev5YqgID4gc2Vpcm9rYVwgOwor5LiL57ea6YOoID4ga2FzZW5idVwgOwor5aSa5qyh5YWDID4gdGFqaWdlblwgOwor5Ly86Z2e6ICFID4gZXNlbW9ub1wgOwor6ISz5aSW56eRID4gbm91Z2VrYVwgOwor5b6h5LiL5ZWPID4gZ29rYW1vblwgOwor6IaD6IKt6IeNID4gb3R0b3NlaVwgOwor5aWz5oCn5ZmoID4gam9zZWlraVwgOwor5a215Y215ZmoID4gZnVyYW5raVwgOwor54Sh55CG6KejID4gbXVyaWthaVwgOwor54i25oCn5oSbID4gZnVzZWlhaVwgOwor6Z2e5q2m6KOFID4gaGlidXNvdVwgOwor5ZCM54i25q+NID4gZG91ZnVib1wgOwor5aWz5oCn5YyWID4gam9zZWlrYVwgOwor54Sh5pyf6ZmQID4gbXVraWdlblwgOwor6Ieq5a6255SoID4gamlrYXlvdVwgOwor5a6257O75ZuzID4ga2FrZWl6dVwgOwor5LiA5LiW57SAID4gaXNzZWlraVwgOwor6Ieq55Sx5bqmID4gaml5dXVkb1wgOwor5rGa5p+T5rqQID4gb3NlbmdlblwgOwor5L6d6aC854q2ID4gaXJhaWpvdVwgOwor56ys5LiA5q2pID4gZGFpaXBwb1wgOwor5b6u5aG15a2QID4gbWlqaW5rb1wgOwor6LSU5bGT55uuID4gaGlpa2ltZVwgOwor6Zu756OB5aC0ID4gZGVuamliYVwgOwor5LiA5L2T5YyWID4gaXR0YWlrYVwgOwor5b6h5pel5qeYID4gb2hpc2FtYVwgOwor6Z+z57695bGLID4gb3Rvd2F5YVwgOwor5Yy76Zmi6ZW3ID4gaWluY2hvdVwgOwor5Y2w5qyn6KqeID4gaW4nJ291Z29cIDsKK+WHuuadpeeniyA+IGRla2lha2lcIDsKK+mjm+ihjOapnyA+IGhpa291a2lcIDsKK+eEoeS9nOeCuiA+IG11c2FrdWlcIDsKK+mDveW4gumDqCA+IHRvc2hpYnVcIDsKK+W6p+iSsuWboyA+IHphYnV0b25cIDsKK+aUvuiqsuW+jCA+IGhvdWthZ29cIDsKK+S4gOacrOawlyA+IGlwcG9uZ2lcIDsKK+mbu+awl+WxiyA+IGRlbmtpeWFcIDsKK+acquadpea0viA+IG1pcmFpaGFcIDsKK+aghOiqieekvCA+IGVpeW9yZWlcIDsKK+ezluiho+mMoCA+IHRvdWlqb3VcIDsKK+eQhuirluWutiA+IHJpcm9ua2FcIDsKK+aJk+alveWZqCA+IGRhZ2Fra2lcIDsKK+eEoeS9nOazlSA+IGJ1c2Fob3VcIDsKK+S7geeOi+mWgCA+IG5pb3Vtb25cIDsKK+WPpOWFuOa0viA+IGtvdGVuaGFcIDsKK+e0oOWwgeWutiA+IHNvaG91a2FcIDsKK+atqeWQiOWItiA+IGJ1YWlzZWlcIDsKK+mtmuays+WyuCA+IHVvZ2FzaGlcIDsKK+iHqueUseWMliA+IGppeXV1a2FcIDsKK+aOiOeUo+aJgCA+IGp1c2Fuam9cIDsKK+mnhuWLleapnyA+IGt1ZG91a2lcIDsKK+S6jOeuh+aJgCA+IG5pa2FzaG9cIDsKK+mBleeKr+iAhSA+IGloYW5zaGFcIDsKK+iHqueUu+WDjyA+IGppZ2F6b3VcIDsKK+W9ouaEj+aLsyA+IGtlaWlrZW5cIDsKK+avjeaAp+aEmyA+IGJvc2VpYWlcIDsKK+S6leaIuOWBtCA+IGlkb2dhd2FcIDsKK+egtOegleapnyA+IGhhc2Fpa2lcIDsKK+mBleitpue9qiA+IGlrZWl6YWlcIDsKK+W4jOWcn+mhniA+IGtpZG9ydWlcIDsKK+S6nOmJm+W8lSA+IGFlbmJpa2lcIDsKK+WkquWusOW6nCA+IGRhemFpZnVcIDsKK+S8iumBlOiAhSA+IGRhdGVzaGFcIDsKK+mAgeipseWZqCA+IHNvdXdha2lcIDsKK+S8tOWkqemAoyA+IGJhdGVyZW5cIDsKK+S6nOm6u+W4gyA+IGFtYW51bm9cIDsKK+Wls+mDjuWxiyA+IGpvcm91eWFcIDsKK+WZtOmcp+WZqCA+IGZ1bm11a2lcIDsKK+iLseWNmOiqniA+IGVpdGFuZ29cIDsKK+iNt+mmrOi7iiA+IG5pYmFzaGFcIDsKK+aTrOaFi+iqniA+IGdpdGFpZ29cIDsKK+eVsOmCpuS6uiA+IGlob3VqaW5cIDsKK+aAquaIkeS6uiA+IGtlZ2FuaW5cIDsKK+WKueaenOmfsyA+IGtvdWthb25cIDsKK+Wik+eikemKmCA+IGJvaGltZWlcIDsKK+mjm+ihjOWutiA+IGhpa291a2FcIDsKK+eBq+eGqOaWlyA+IGhpbm9zaGlcIDsKK+WEquS9jeaApyA+IHl1dWlzZWlcIDsKK+eEoei2o+WRsyA+IG11c2h1bWlcIDsKK+mBjuePvuacqiA+IGthZ2VubWlcIDsKK+mVt+akheWtkCA+IG5hZ2Fpc3VcIDsKK+iBvuWUluiAhSA+IHJvdWFzaGFcIDsKK+aWh+Wtl+ebpCA+IG1vamliYW5cIDsKK+S6lOWNgemfsyA+IGdvanV1b25cIDsKK+WkqeWppue+hSA+IHRlbnB1cmFcIDsKK+WvnemBk+WFtyA+IG5lZG91Z3VcIDsKK+eVsOWIhuWtkCA+IGlidW5zaGlcIDsKK+iHquiyqeapnyA+IGppaGFua2lcIDsKK+WFq+mHjeWeoyA+IHlhZWdha2lcIDsKK+eEoeS+oeWApCA+IG11a2FjaGlcIDsKK+S6uuS6i+mZoiA+IGppbmppaW5cIDsKK+S4jeWknOWfjiA+IGZ1eWFqb3VcIDsKK+e+juS4iOWkqyA+IGJpam91ZnVcIDsKK+aYk+aQjeWTgSA+IGlzb25oaW5cIDsKK+WwvOWDp+mZoiA+IG5pc291aW5cIDsKK+eEoeeQhuaVsCA+IG11cmlzdXVcIDsKK+eEoemfu+ipqSA+IG11aW5zaGlcIDsKK+WkmuanmOWMliA+IHRheW91a2FcIDsKK+eUsuaWkOaApyA+IGthaXNob3VcIDsKK+Wxi+agueijjyA+IHlhbmV1cmFcIDsKK+aatOmiqOmbqCA+IGJvdWZ1dXVcIDsKK+eUn+eQhuaXpSA+IHNlaXJpYmlcIDsKK+WIhumZkOiAhSA+IGJ1Z2VuamFcIDsKK+S6uuS6i+mDqCA+IGppbmppYnVcIDsKK+m4mum1oeiynSA+IG91bXVnYWlcIDsKK+S4gOS4geWtlyA+IGl0dGVpamlcIDsKK+WIhumboua0viA+IGJ1bnJpaGFcIDsKK+Wwj+e0sOW3pSA+IGtvemFpa3VcIDsKK+aal+WPt+WMliA+IGFuZ291a2FcIDsKK+WNsOW6pua0iyA+IGluZG95b3VcIDsKK+Whqee0oOmFuCA+IGVuc29zYW5cIDsKK+S+nemgvOS6uiA+IGlyYWluaW5cIDsKK+eItuavjeS8miA+IGZ1Ym9rYWlcIDsKK+mjsumFkuWutiA+IGluc2h1a2FcIDsKK+S4jeiqjeWPryA+IGZ1bmlua2FcIDsKK+aFsOWKtOS8miA+IGlyb3VrYWlcIDsKK+ixhuiFkOWxiyA+IHRvdWZ1eWFcIDsKK+WIhumbouapnyA+IGJ1bnJpa2lcIDsKK+eBq+eCjueTtiA+IGthZW5iaW5cIDsKK+W+oeWkmuWIhiA+IGdvdGFidW5cIDsKK+iHqOaZguiyuyA+IHJpbmppaGlcIDsKK+Wkp+Wkqum8kyA+IG9vZGFpa29cIDsKK+WmguS9leeoiyA+IGlrYWhvZG9cIDsKK+eJoeeJm+W6pyA+IG91c2hpemFcIDsKK+WKoOW3peiyuyA+IGtha291aGlcIDsKK+S6uuS6i+iqsiA+IGppbmppa2FcIDsKK+mHjuiJr+eKrCA+IG5vcmFpbnVcIDsKK+iug+e+juatjCA+IHNhbmJpa2FcIDsKK+aXpeacrOmWkyA+IG5paG9ubWFcIDsKK+Wkp+ixhuayuSA+IGRhaXp1eXVcIDsKK+WFkOerpeeUuyA+IGppZG91Z2FcIDsKK+a8lOiInuWgtCA+IGVuYnVqb3VcIDsKK+S8vOmdnuS6iyA+IGVzZWdvdG9cIDsKK+S4jee1kOaenCA+IGZ1a2Vra2FcIDsKK+WcsOS4i+WMliA+IGNoaWtha2FcIDsKK+WFq+eZvumVtyA+IHlhb2Nob3VcIDsKK+mBjumjveWSjCA+IGthaG91d2FcIDsKK+aXqeWwkeWlsyA+IHNhb3RvbWVcIDsKK+WmguS9leeJqSA+IGlrYW1vbm9cIDsKK+eJiOeUu+WutiA+IGhhbmdha2FcIDsKK+aEm+mjsuiAhSA+IGFpaW5zaGFcIDsKK+WuieWumuWZqCA+IGFudGVpa2lcIDsKK+mnhOiPk+WtkCA+IGRhZ2FzaGlcIDsKK+WUkOiDoem6uyA+IHRvdWdvbWFcIDsKK+WBnOmfs+espiA+IHRlaW9ucHVcIDsKK+WckuiKuOWutiA+IGVuZ2Vpa2FcIDsKK+aKleW9seapnyA+IHRvdWVpa2lcIDsKK+iLseWQieWIqSA+IGlnaXJpc3VcIDsKK+W6p+W4g+WboyA+IHphYnV0b25cIDsKK+eEoeWjsOmfsyA+IG11c2Vpb25cIDsKK+WUkOiMhOWtkCA+IHRvdW5hc3VcIDsKK+aXpeacrOiqniA+IG5paG9uZ29cIDsKK+W+k+S4ieS9jSA+IGp1c2FubWlcIDsKK+WppuWls+WtkCA+IGZ1am9zaGlcIDsKK+W3peS6i+iyuyA+IGtvdWppaGlcIDsKK+a4qeW6puioiCA+IG9uZG9rZWlcIDsKK+WuieWumuWMliA+IGFudGVpa2FcIDsKK+azleieuuiynSA+IGhvcmFnYWlcIDsKK+mdnuW4uOaZgiA+IGhpam91amlcIDsKK+WFq+WNg+S7oyA+IHlhY2hpeW9cIDsKK+S4jee0sOW3pSA+IGJ1c2Fpa3VcIDsKK+S9meawtOi3ryA+IHlvc3Vpcm9cIDsKK+ebuOmBleeCuSA+IHNvdWl0ZW5cIDsKK+abvOiNvOe+hSA+IG1hbmRhcmFcIDsKK+WcsOmbt+eBqyA+IGppcmFpa2FcIDsKK+WFrOWLmeWToSA+IGtvdW11aW5cIDsKK+ahiOWxseWtkCA+IGtha2FzaGlcIDsKK+WPpOS7o+iqniA+IGtvZGFpZ29cIDsKK+eUn+S4gOacrCA+IGtpaXBwb25cIDsKK+i6q+i0lOWxkyA+IG1pYmlpa2lcIDsKK+acquaVtOeQhiA+IG1pc2VpcmlcIDsKK+S6iOenkeeUnyA+IHlva2FzZWlcIDsKK+acque1jOmBjiA+IG1pa2Vpa2FcIDsKK+a1t+advuiynSA+IG1pcnVnYWlcIDsKK+WFteWFkOW4ryA+IGhla29vYmlcIDsKK+i6q+Wlh+m6lyA+IG1pZ2lyZWlcIDsKK+aknOafu+WToSA+IGtlbnNhaW5cIDsKK+WNseapn+aEnyA+IGtpa2lrYW5cIDsKK+i1pOiMhOWtkCA+IGFrYW5hc3VcIDsKK+err+atpuiAhSA+IGhhbXVzaGFcIDsKK+WNsOW6puS6uiA+IGluZG9qaW5cIDsKK+WGheWuieaJkyA+IG5haWFuZGFcIDsKK+Wxi+agueadvyA+IHlhbmVpdGFcIDsKK+eEoeacn+WIkSA+IG11a2lrZWlcIDsKK+iomOW/teeikSA+IGtpbmVuaGlcIDsKK+mDveW4guWMliA+IHRvc2hpa2FcIDsKK+W6nOefpeS6iyA+IGZ1Y2hpamlcIDsKK+WGheiAs+eCjiA+IG5haWppZW5cIDsKK+WMl+S6rOiqniA+IHBla2luZ29cIDsKK+eKrOWwj+WxiyA+IGludWdveWFcIDsKK+W9vOWyuOS8miA+IGhpZ2FuJydlXCA7Civnm7jlvJ/lrZAgPiBhaWRlc2hpXCA7Civps7Plh7DluqcgPiBob3VvdXphXCA7Civlkr3poK3ngo4gPiBpbnRvdWVuXCA7CivmipXlvbHlm7MgPiB0b3VlaXp1XCA7CivkuI3ooZvnlJ8gPiBmdWVpc2VpXCA7CivmlbTnkIbpg6ggPiBzZWlyaWJ1XCA7CivlhaXmr43lsYsgPiBpcmltb3lhXCA7CivlpJrotqPlkbMgPiB0YXNodW1pXCA7Civpn7PoqJjlj7cgPiBvbmtpZ291XCA7CivlsI/lnYrkuLsgPiBrb2JvdXp1XCA7Civml6XmnKznlLsgPiBuaWhvbmdhXCA7CivntIDlhYPlvowgPiBraWdlbmdvXCA7CivkvZPmuKnlmaggPiB0YWlvbmtpXCA7Civlvq7muKnmua8gPiBiaW9udG91XCA7CivosrTlqabkurogPiBraWZ1amluXCA7Civlj7PlpKfoh6MgPiB1ZGFpamluXCA7CivluLDljJbkurogPiBraWthamluXCA7CivmiKblvozmtL4gPiBzZW5nb2hhXCA7Civlj5flg4/mqZ8gPiBqdXpvdWtpXCA7CivoqJjlv7XmqLkgPiBraW5lbmp1XCA7Civnsonlvq7lobUgPiBrb21pamluXCA7CivngrrmlL/ogIUgPiBpc2Vpc2hhXCA7CivlpKfniqzluqcgPiBvb2ludXphXCA7Civml6XmmYLoqIggPiBoaWRva2VpXCA7CivmmYLkuovoq5YgPiBqaWppcm9uXCA7Civkv53ppIrpmaIgPiBob3lvdWluXCA7Civoh6rnhLbolq8gPiBqaW5lbmpvXCA7Civkv53lgaXmiYAgPiBob2tlbmpvXCA7Civpm6LlvIHoirEgPiByaWJlbmthXCA7CivmrKHkuJbku6MgPiBqaXNlZGFpXCA7CivkuI3lmajnlKggPiBidWtpeW91XCA7CivmiYvlpYfpupcgPiB0ZWdpcmVpXCA7Civloanln7rmgKcgPiBlbmtpc2VpXCA7CivoqJjlv7Xml6UgPiBraW5lbmJpXCA7Civpq5jnpZbniLYgPiBrb3Vzb2Z1XCA7Civku4rml6XkuK0gPiBreW91anV1XCA7CivouqvntrrpupcgPiBtaWdpcmVpXCA7CivokI7pu4Tnl4UgPiBpb3VieW91XCA7Civmk6zlj6TmlocgPiBnaWtvYnVuXCA7CivlnLDooaPpoZ4gPiBjaGlpcnVpXCA7CivlqYbnvoXploAgPiBiYXJhbW9uXCA7Civnp5jmm7joqrIgPiBoaXNob2thXCA7CivljbDnlLvntJkgPiBpbmdhc2hpXCA7Civkuojmg7PlsYsgPiB5b3NvdXlhXCA7CivmhYjlloTlrrYgPiBqaXplbmthXCA7Civml6nkuZnlpbMgPiBzYW90b21lXCA7CivlnJ/mm5zml6UgPiBkb3lvdWJpXCA7CivpmY3pm6jmnpcgPiBrb3V1cmluXCA7CivmnJ3poqjlkYIgPiBhc2FidXJvXCA7Civlho3kuIvku5ggPiBzYWlrYWZ1XCA7CivmtIvnlLvlrrYgPiB5b3VnYWthXCA7Civlrpropo/luqcgPiBqb3VnaXphXCA7CivpnIDnlKjlrrYgPiBqdXlvdWthXCA7Civkv53lgaXlqaYgPiBob2tlbmZ1XCA7Civpq5jnpZbmr40gPiBrb3Vzb2JvXCA7CivlpJbogLPngo4gPiBnYWlqaWVuXCA7CivkuI3oo4Hlj68gPiBmdXNhaWthXCA7Civorablgpnlk6EgPiBrZWliaWluXCA7CivoqqTkvZzli5UgPiBnb3NhZG91XCA7Civku67lkI3mnKwgPiBrYW5haG9uXCA7CivliqnnlKPmiYAgPiBqb3NhbmpvXCA7CivlpKfmmYLku6MgPiBvb2ppZGFpXCA7Civmnrjmq57phbggPiBrdWVuc2FuXCA7CivomZrnhKHlg6cgPiBrb211c291XCA7CivlrLDoqJjlj7cgPiBlaWtpZ291XCA7Civkv53lgaXljLsgPiBob2tlbicnaVwgOwor5LqM5Y2B5q2zID4gaGF0YWNoaVwgOwor6aCt5a2X6KqeID4gdG91amlnb1wgOwor5pyo5aSq5YiAID4ga2lkYWNoaVwgOwor6JOu6I+v5bqnID4gcmVuZ2V6YVwgOwor5oSb5pu45a62ID4gYWlzaG9rYVwgOwor6aas5YiA6LKdID4gbWF0ZWdhaVwgOwor6Laj5oSP5pu4ID4gc2h1aXNob1wgOwor6YGL5pCs6LK7ID4gdW5wYW5oaVwgOwor5pSY5aS36KuWID4gam91aXJvblwgOwor5oeQ55aR5rS+ID4ga2FpZ2loYVwgOwor54Sh54WZ54KtID4gbXVlbnRhblwgOwor5a6J6Z2Z5pmCID4gYW5zZWlqaVwgOwor5aWz55Sf5b6SID4gam9zZWl0b1wgOwor6JmO54eV5ouzID4ga29lbmtlblwgOwor5q2j5bi45L2NID4gc2Vpam91aVwgOwor6KOc5Yqp6YeRID4gaG9qb2tpblwgOwor6Zi/5amG5pOmID4gYWJhenVyZVwgOwor5LqM5Y2B5pelID4gaGF0c3VrYVwgOwor55C155C26KGMID4gYml3YWtvdVwgOwor56eY5pu456eRID4gaGlzaG9rYVwgOwor5Yqp55Sj5ammID4gam9zYW5wdVwgOwor5L+u576F5aC0ID4gc2h1cmFiYVwgOwor5omL5LiA5p2vID4gdGVpcHBhaVwgOwor54Sh57ea5qmfID4gbXVzZW5raVwgOwor5LiH54Gv5LyaID4gbWFuZG91ZVwgOwor5omL57a66bqXID4gdGVnaXJlaVwgOwor5rC05L2N6KiIID4gc3VpaWtlaVwgOwor5ryi5pa55Yy7ID4ga2FucG91aVwgOwor576955uu5p2/ID4gaGFtZWl0YVwgOwor5YW35L2T5qGIID4gZ3V0YWlhblwgOwor5pel5pys5YyWID4gbmlob25rYVwgOwor56CU56Oo5qmfID4ga2VubWFraVwgOwor5aSn6ZuR5oqKID4gb296YXBwYVwgOwor5Y+k5LqV5oi4ID4gZnVydWlkb1wgOwor6IOD5r2w55iNID4gaWthaXlvdVwgOwor5aSa576p5oCnID4gdGFnaXNlaVwgOwor55SY6Zyy54WuID4ga2Fucm9uaVwgOwor5LmZ5aWz5bqnID4gb3RvbWV6YVwgOwor5L+d5a6I5rS+ID4gaG9zaHVoYVwgOwor5Y+Z5LqL6KmpID4gam9qaXNoaVwgOwor5aSn5o6D6ZmkID4gb29zb3VqaVwgOwor54OP6b6N6Iy2ID4gxatyb25jaGFcIDsKK+Wls+eOi+ifuyA+IGpvb3VhcmlcIDsKK+WNiuavjemfsyA+IGhhbmJvaW5cIDsKK+eEoeaUv+W6nCA+IG11c2VpZnVcIDsKK+e+qeWSjOWboyA+IGdpd2FkYW5cIDsKK+WlveS6i+WutiA+IGtvdXp1a2FcIDsKK+ihjOeCuuiAhSA+IGtvdWlzaGFcIDsKK+apn+mWouW6qyA+IGtpa2Fua29cIDsKK+apn+mWouW6pyA+IGtpa2FuemFcIDsKK+WQjOaEj+imiyA+IGRvdWlrZW5cIDsKK+itsOS6i+WggiA+IGdpamlkb3VcIDsKK+WkqeezuOeTnCA+IGhlY2hpbWFcIDsKK+S/neWuieaelyA+IGhvYW5yaW5cIDsKK+iFkOiRieWcnyA+IGZ1eW91ZG9cIDsKK+a1t+ixmuW6pyA+IGlydWthemFcIDsKK+iHquihm+maiiA+IGppZWl0YWlcIDsKK+e5iue2ree0oCA+IHNlbicnaXNvXCA7Civnp7vooYzmgKcgPiBpa291c2VpXCA7Civmua/mua/lqYYgPiB5dXRhbnBvXCA7CivkuqTlsL7mnJ8gPiBrb3ViaWtpXCA7Civpmbbno4HlmaggPiB0b3VqaWtpXCA7Civph43ppqzloLQgPiBvbW9iYWJhXCA7CivmrbPmmYLoqJggPiBzYWlqaWtpXCA7CivpmL/lpJrnpo8gPiBvdGFmdWt1XCA7CivlvqHnr4Dku4sgPiBvc2Vra2FpXCA7Civoj5PlrZDlsYsgPiBrYXNoaXlhXCA7CivnlarlsI/lsYsgPiBiYW5nb3lhXCA7CivmhJvniqzlrrYgPiBhaWtlbmthXCA7CivogL3nvo7mtL4gPiB0YW5iaWhhXCA7Civkv53ogrLmiYAgPiBob2lrdWpvXCA7CivpgYrpm6Lln7ogPiB5dXVyaWtpXCA7CivkupLliqnkvJogPiBnb2pva2FpXCA7Civoo5zliqnnt5ogPiBob2pvc2VuXCA7Civkuovli5nmiYAgPiBqaW11c2hvXCA7Civkv53orbfph5EgPiBob2dva2luXCA7Civoj5PlrZDlmaggPiBrYXNoaWtpXCA7CivmhJvlprvlrrYgPiBhaXNhaWthXCA7CivppIrniLbmr40gPiB5b3VmdWJvXCA7Civotbfpm7vmqZ8gPiBraWRlbmtpXCA7CivkuozmrbvlvowgPiBuaXNoaWdvXCA7CivokYnniaHkuLkgPiBoYWJvdGFuXCA7Civlt7LnhLblvaIgPiBpemVua2VpXCA7CivljZjluqfmqZ8gPiB0YW56YWtpXCA7CivlpKfopo/mqKEgPiBkYWlraWJvXCA7CivlhbfkvZPljJYgPiBndXRhaWthXCA7Civkv53lronlrpggPiBob2Fua2FuXCA7Civph47njaPmtL4gPiB5YWp1dWhhXCA7Civpm7vkvY3lt64gPiBkZW4nJ2lzYVwgOwor6Z2e5a++5b+cID4gaGl0YWlvdVwgOwor6JOW6bq75a2QID4gaGltYXNoaVwgOwor6KO45L2T55S7ID4gcmF0YWlnYVwgOwor5LqL5YuZ5a6YID4gamltdWthblwgOwor6LW36Ki054q2ID4ga2lzb2pvdVwgOwor6YeO5pqu55SoID4geWFib3lvdVwgOwor54Sh54Gv54GrID4gbXV0b3VrYVwgOwor54Sh6KiY5ZCNID4gbXVraW1laVwgOwor6YO96K2w6YG4ID4gdG9naXNlblwgOwor5L+d6IKy5ZySID4gaG9pa3VlblwgOwor5L+d6IKy5ZmoID4gaG9pa3VraVwgOwor5oSb5aW95a62ID4gYWlrb3VrYVwgOwor5aeU5Lu754q2ID4gaW5pbmpvdVwgOwor55So5Zmo55S7ID4geW91a2lnYVwgOwor5L+d6aSK5omAID4gaG95b3Vqb1wgOwor5a625bqt56eRID4ga2F0ZWlrYVwgOwor5LiN5ZCN6KqJID4gZnVtZWl5b1wgOwor5LqU6Lyq5peXID4gZ29yaW5raVwgOwor5L2c5qWt6KGjID4gc2FneW91aVwgOwor5pyo5oi46YqtID4ga2lkb3NlblwgOwor6ICz5LiL6IW6ID4gamlrYXNlblwgOwor5a625bqt552AID4ga2F0ZWlnaVwgOwor5aSW6Zmw6YOoID4gZ2FpaW5idVwgOwor5ZKM6I+T5a2QID4gd2FnYXNoaVwgOwor6Ieq5Zyo55S7ID4gaml6YWlnYVwgOwor6ICV6YGL5qmfID4ga291dW5raVwgOwor5LiA5Zue5b+MID4gaWtrYWlraVwgOwor5LiN5Y+v6KejID4gZnVrYWthaVwgOwor5LiN5Y+v6KaWID4gZnVrYXNoaVwgOwor57eP55CG5bqcID4gc291cmlmdVwgOwor5LqM5YiG5pyoID4gbmlidW5naVwgOwor5bqD6L6e6IuRID4ga291amllblwgOwor5aSa5pWw5rS+ID4gdGFzdXVoYVwgOwor5L+d6K236ICFID4gaG9nb3NoYVwgOwor5aSc6ZaT6YOoID4geWFrYW5idVwgOwor55WZ5a6I6Zu7ID4gcnVzdWRlblwgOwor5o6D6Zmk5qmfID4gc291amlraVwgOwor5LqL5YuZ5LyaID4gamltdWthaVwgOwor5LqL5YmN5b6MID4gaml6ZW5nb1wgOwor6I+p5o+Q5qi5ID4gYm9kYWlqdVwgOwor6LKd54us5qW9ID4gYmFpZ29tYVwgOwor54Sh6Ziy5YKZID4gbXVib3ViaVwgOwor5LiN5oCd6K2wID4gZnVzaGlnaVwgOwor5LiN56mP5b2TID4gZnVvbnRvdVwgOwor5Y+v5aGR5p2QID4ga2Fzb3phaVwgOwor5qKz57a/5qmfID4gc29tZW5raVwgOwor54Sh5omL6aCGID4gbXV0ZWp1blwgOwor5bC+54q26IqxID4gYmlqb3VrYVwgOwor5L6/5Yip5bGLID4gYmVucml5YVwgOwor5LqI55+l5aSiID4geW9jaGltdVwgOwor5b6h56We57GkID4gb21pa3VqaVwgOwor5pig5YaZ5qmfID4gZWlzaGFraVwgOwor5L+d6K2356iOID4gaG9nb3plaVwgOwor5Y+Z5LqL5paHID4gam9qaWJ1blwgOwor6Iux5Lya6KmxID4gZWlrYWl3YVwgOwor5LiN5Y+v6IO9ID4gZnVrYW5vdVwgOwor5pig55S76aSoID4gZWlnYWthblwgOwor6aKo6Zuy5YWQID4gZnV1dW5qaVwgOwor5qWV5YaG5b2iID4gZGFlbmtlaVwgOwor5ryU5aWP5a62ID4gZW5zb3VrYVwgOwor5Y+v5aGR5oCnID4ga2Fzb3NlaVwgOwor6KKr6Zmk5pWwID4gaGlqb3N1dVwgOwor5LqM5qyh5YWDID4gbmlqaWdlblwgOwor5omL5paH5bqrID4gdGVidW5rb1wgOwor5LiA566H5omAID4gaWtrYXNob1wgOwor5LqI5YKZ6ZqKID4geW9iaXRhaVwgOwor55aR5ZWP56ymID4gZ2ltb25mdVwgOwor5Zu65a6a6LK7ID4ga290ZWloaVwgOwor5piO5rK75bqnID4gbWVpaml6YVwgOwor55CG5oOz5a62ID4gcmlzb3VrYVwgOwor5Zyf5aOH5aC0ID4gZG90YW5iYVwgOwor5LqM5qyh5LyaID4gbmlqaWthaVwgOwor576p5YuZ5oSfID4gZ2ltdWthblwgOwor5LiJ5Y+J6LevID4gc2Fuc2Fyb1wgOwor5rOi5biD6Iy2ID4gaGFidWNoYVwgOwor5LiN5oSb5oOzID4gYnVhaXNvdVwgOwor5LiA566H5bm0ID4gaWtrYW5lblwgOwor5LqI5YKZ6YeRID4geW9iaWtpblwgOwor5LiN5Y+v55+lID4gZnVrYWNoaVwgOwor6I+p5o+Q5a+6ID4gYm9kYWlqaVwgOwor56Gr6buE5bGxID4gaW91eWFtYVwgOwor57Sg5Zug5pWwID4gc29pbnN1dVwgOwor5LuP6Jit6KW/ID4gZnVyYW5zdVwgOwor5LiN5ZCI55CGID4gZnVnb3VyaVwgOwor5o6D6Zmk5ammID4gc291amlmdVwgOwor6YeO5pqu5aSpID4geWFib3RlblwgOwor5a625YW3562JID4ga2FndXRvdVwgOwor6JaU6JaH6ImyID4gYmFyYWlyb1wgOwor5LiN5oSJ5b+rID4gZnV5dWthaVwgOwor6L6y5qmf5YW3ID4gbm91a2lndVwgOwor6Ly46YCB6LK7ID4geXVzb3VoaVwgOwor55yL6K235ammID4ga2FuZ29mdVwgOwor5b6h56We54GrID4gZ29qaW5rYVwgOwor5LqI5YKZ6LuNID4geW9iaWd1blwgOwor5Y+k5paH5pu4ID4ga29tb25qb1wgOwor6Ieq6KGb5qipID4gamllaWtlblwgOwor5o6D6Zmk5ZmoID4gc291amlraVwgOwor55CG5oOz5YyWID4gcmlzb3VrYVwgOwor5ZCI5rCj6YGTID4gYWlraWRvdVwgOwor54K554Gr5ZmoID4gdGVua2FraVwgOwor57695LqM6YeNID4gaGFidXRhZVwgOwor6KaP5rqW5YyWID4ga2lqdW5rYVwgOwor6auY5bqm5beuID4ga291ZG9zYVwgOwor5ZCI5rCX6YGTID4gYWlraWRvdVwgOwor54Sh5Zmo55SoID4gYnVraXlvdVwgOwor5a+E5LuY6YeRID4ga2lmdWtpblwgOwor54Gr5Y+j5rmWID4ga2Frb3Vrb1wgOwor5pS/5rK75bGLID4gc2Vpaml5YVwgOwor5YCL44CF5Lq6ID4ga29rb2ppblwgOwor5Y+v5aGR5YmkID4ga2Fzb3phaVwgOwor5pS/5rK75a62ID4gc2VpamlrYVwgOwor6YGL5Za26LK7ID4gdW4nJ2VpaGlcIDsKK+idpuWkt+iPiiA+IGV6b2dpa3VcIDsKK+S/neitt+aelyA+IGhvZ29yaW5cIDsKK+acqOaIuOeVqiA+IGtpZG9iYW5cIDsKK+a1heefpeaBtSA+IGFzYWRqaWVcIDsKK+mdkuixjOixhiA+IGFvZW5kb3VcIDsKK+Wls+S4iOWkqyA+IGpvam91YnVcIDsKK+WGhuiomOWPtyA+IGVua2lnb3VcIDsKK+S6nOWvkuW4ryA+IGFrYW50YWlcIDsKK+axn+aIuOW3nSA+IGVkb2dhd2FcIDsKK+avlOmbu+iNtyA+IGhpZGVua2FcIDsKK+W5vOWFkOiqniA+IHlvdWppZ29cIDsKK+aal+aal+ijoSA+IGFuJydhbnJpXCA7CivkuI3mtYTloLQgPiBmdWpvdWJhXCA7Civmmpfmmpfoo48gPiBhbicnYW5yaVwgOwor5rmv5rK75aC0ID4gdG91amliYVwgOwor6ISz5ZGz5ZmMID4gbm91bWlzb1wgOwor5a2Q55S76Z2iID4ga29nYW1lblwgOwor5Y+v6KaW5YyWID4ga2FzaGlrYVwgOwor5LiN5rOo5oSPID4gZnVjaHV1aVwgOwor6K236KGb6ImmID4gZ29laWthblwgOwor5qyh5omT6ICFID4gamlkYXNoYVwgOwor5oqr6Zyy5a60ID4gaGlyb3VlblwgOwor6Ieq6KGb5a6YID4gamllaWthblwgOwor55WZ5a6I55WqID4gcnVzdWJhblwgOwor5Lqc6Z+z6YCfID4gYW9uc29rdVwgOwor5b6h5rOo5oSPID4gZ29jaHV1aVwgOwor5Yy756eR5a2mID4gaWthZ2FrdVwgOwor55Ww5pa55oCnID4gaWhvdXNlaVwgOwor54Sh6ZGR5p+7ID4gbXVrYW5zYVwgOwor5LqM55Wq55uuID4gbmliYW5tZVwgOwor56Gs5YyW5rK5ID4ga291a2F5dVwgOwor5pig55S756WtID4gZWlnYXNhaVwgOwor5pig55S756S+ID4gZWlnYXNoYVwgOwor5LiN5q2j6KaPID4gZnVzZWlraVwgOwor6I2K5qOY57eaID4gYmFyYXNlblwgOwor5oWw6ZyK56WtID4gaXJlaXNhaVwgOwor5a2m5qCh5Yy7ID4gZ2Fra291aVwgOwor6YeR5paH5a2XID4ga2lubW9qaVwgOwor5b6h5rOV5bqmID4gZ29oYXR0b1wgOwor5rCX5L+d6aSKID4ga2lob3lvdVwgOwor6YmE54Gr5aC0ID4gdGVra2FiYVwgOwor5Yuk5YuZ5ZOhID4ga2lubXVpblwgOwor55Ww5pif5Lq6ID4gaXNlaWppblwgOwor5pig55S755WMID4gZWlnYWthaVwgOwor5LqU55W/5YaFID4gZ29raW5haVwgOwor5b6h56C0566XID4gZ29oYXNhblwgOwor5pmu5q61552AID4gZnVkYW5naVwgOwor5ZCm5a6a6KqeID4gaGl0ZWlnb1wgOwor6YGV5oay5oCnID4gaWtlbnNlaVwgOwor5aGp5YyW6YqAID4gZW5rYWdpblwgOwor5L+d6K235Y+4ID4gaG9nb3NoaVwgOwor5b6X5oSP5rCXID4gdG9rdWlnZVwgOwor5omL57Sw5belID4gdGV6YWlrdVwgOwor6IiO5Yip5aGpID4gc2hhcmllblwgOwor6Kaq6aas6bm/ID4gb3lhYmFrYVwgOwor6Iie6LiK5a62ID4gYnV0b3VrYVwgOwor5aWH5b2i5YWQID4ga2lrZWlqaVwgOwor5Y2I5b6M5LitID4gZ29nb2p1dVwgOwor6Kmt5byB5a62ID4ga2liZW5rYVwgOwor6IOD5rSX5rWEID4gaXNlbmpvdVwgOwor5LiN5ZCM5YyWID4gZnVkb3VrYVwgOwor55Ww5pWZ5b6SID4gaWt5b3V0b1wgOwor5rmv5Yqg5ribID4geXVrYWdlblwgOwor6Z2e6Kqy56iOID4gaGlrYXplaVwgOwor5ZKM5qW95ZmoID4gd2FnYWtraVwgOwor6YGV5rOV6ICFID4gaWhvdXNoYVwgOwor6Ly46YCB5qmfID4geXVzb3VraVwgOwor5LiO6YeO5YWaID4geW95YXRvdVwgOwor5byV54Gr54K5ID4gaW5rYXRlblwgOwor57695a2Q5p2/ID4gaGFnb2l0YVwgOwor6Z+z5rKZ5rGwID4gb3Rvc2F0YVwgOwor56a+5pys56eRID4ga2Fob25rYVwgOwor5LiN5Y+v5YiGID4gZnVrYWJ1blwgOwor6byg5b6E6YOoID4gc29rZWlidVwgOwor5Lm+6I+T5a2QID4gaGlnYXNoaVwgOwor54Sh5oqA5benID4gbXVnaWtvdVwgOwor6YO96K2w5LyaID4gdG9naWthaVwgOwor5LqI5YKZ5qChID4geW9iaWtvdVwgOwor6Kaz5LiW6Z+zID4ga2FuemVvblwgOwor5Y2K6YGO5Y67ID4gaGFua2Frb1wgOwor5LiN5Y+C5YqgID4gZnVzYW5rYVwgOwor6YGV5Y+N6ICFID4gaWhhbnNoYVwgOwor5oGj5oSP5oCnID4gc2hpaXNlaVwgOwor5LuY5Yqg56iOID4gZnVrYXplaVwgOwor5pmC6KiI5bqnID4gdG9rZWl6YVwgOwor6YOo5bGL5LujID4gaGV5YWRhaVwgOwor5q+N6Z+z5oCnID4gYm9pbnNlaVwgOwor5LiN5b6X5oSPID4gZnV0b2t1aVwgOwor6Zu76Kmx5qmfID4gZGVud2FraVwgOwor54Sh5ouF5L+dID4gbXV0YW5wb1wgOwor5o6q6L6e5rOVID4gc29qaWhvdVwgOwor5YWr5Lmd5YiGID4gaGFra3VidVwgOwor5qC55aSq5p2/ID4gbmVkYWl0YVwgOwor54Gr5Yqg5ribID4gaGlrYWdlblwgOwor5Lqc54eQ6YW4ID4gYXJpbnNhblwgOwor5pmC6KiI5bGLID4gdG9rZWl5YVwgOwor6Z2S5LqM5omNID4gYW9uaXNhaVwgOwor6YeO5pS+5ZuzID4gbm9ob3V6dVwgOwor5bm85YWQ5pyfID4geW91amlraVwgOwor5oyJ5pGp6IaPID4gYW5tYWtvdVwgOwor5rCX6Ium5Yq0ID4ga2lndXJvdVwgOwor5pS/5bqc5qGIID4gc2VpZnVhblwgOwor5LqM546L6ZaAID4gbmlvdW1vblwgOwor5LqI5YKZ5b25ID4geW9iaWVraVwgOwor5LiN6YGT55CGID4gZnVkb3VyaVwgOwor6YeR54Sh5Z6iID4ga2lubXVrdVwgOwor5YG96YCg5Y2wID4gZ2l6b3VpblwgOwor54Sh5om55YikID4gbXVoaWhhblwgOwor5Zuz5pu46LK7ID4gdG9zaG9oaVwgOwor5bm46YGL5YWQID4ga291dW5qaVwgOwor5aGp5rC05rmWID4gZW5zdWlrb1wgOwor5rWB5biD5pysID4gcnVmdWJvblwgOwor5bGx6Iy26IqxID4gc2F6YW5rYVwgOwor56e75rCR5rOVID4gaW1pbmhvdVwgOwor6ay855m+5ZCIID4gb25peXVyaVwgOwor5aWI6Imv55yMID4gbmFyYWtlblwgOwor5LiN5Yud5omLID4gZnVrYXR0ZVwgOwor5aSp6bqp576FID4gdGVucHVyYVwgOwor5LiN5Yip55uKID4gZnVyaWVraVwgOwor5biC5ZCP5ZOhID4gc2hpcmlpblwgOwor5oSP6KaL5pu4ID4gaWtlbnNob1wgOwor5oWw6ZyK5aGUID4gaXJlaXRvdVwgOwor5oiR5Yip5YuJID4gZ2FyaWJlblwgOwor5pOs5a6d54+gID4gZ2lib3NoaVwgOwor5aSn5ZKM57W1ID4geWFtYXRvZVwgOwor5bCP5YiH5omLID4ga29naXR0ZVwgOwor6Lui6Lev5ZmoID4gdGVucm9raVwgOwor5Yik5LqL6KOcID4gaGFuamlob1wgOwor5bGg6JiH5pWjID4gdG9zb3NhblwgOwor5b6h5bqD55uuID4gb2hpcm9tZVwgOwor5Y+C6K2w6ZmiID4gc2FuZ2lpblwgOwor5LqI5YKZ5ZOBID4geW9iaWhpblwgOwor55CG5bel56eRID4gcmlrb3VrYVwgOwor54Gr6JGs5aC0ID4ga2Fzb3ViYVwgOwor5a+S5Z6i6ZuiID4ga2FuZ29yaVwgOwor6Ziy6KGb6LK7ID4gYm91ZWloaVwgOwor6aas5bCP5bGLID4gdW1hZ295YVwgOwor5LqI5YKZ5YW1ID4geW9iaWhlaVwgOwor5bCP6YGT5YW3ID4ga29kb3VndVwgOwor5biM5YWD57SgID4ga2lnZW5zb1wgOwor5LiW55WM6KqeID4gc2VrYWlnb1wgOwor6K236KGb5YW1ID4gZ29laWhlaVwgOwor5b2i6ICM5LiLID4ga2VpamlrYVwgOwor6Z2S6Zu76KmxID4gYW9kZW53YVwgOwor5LqM5p6a55uuID4gbmltYWltZVwgOwor5LiJ5beu6LevID4gc2Fuc2Fyb1wgOwor5LuW5bqc55yMID4gdGFmdWtlblwgOwor5L+d57ea5Yy6ID4gaG9zZW5rdVwgOwor5Ye656i95Y+kID4gZGVnZWlrb1wgOwor5LiN5YW36ICFID4gZnVndXNoYVwgOwor5ryU566X5qmfID4gZW56YW5raVwgOwor5bmy6I+T5a2QID4gaGlnYXNoaVwgOwor6YG65Lyd5rOVID4gaWRlbmhvdVwgOwor5Yy75YyW5a2mID4gaWthZ2FrdVwgOwor6YG65a625pePID4gaWthem9rdVwgOwor5bCP5Yip5Y+jID4ga29yaWtvdVwgOwor5aSp5rCX6YGLID4gdGVua2l1blwgOwor5bqc6K2w5LyaID4gZnVnaWthaVwgOwor5L+d6Zm65Yy7ID4gaG9rZW4nJ2lcIDsKK+atoumfs+WZqCA+IHNoaW9ua2lcIDsKK+WQiOawl+S8miA+IGFpa2lrYWlcIDsKK+mGjemGkOWRsyA+IGRhaWdvbWlcIDsKK+aEj+Wbs+eahCA+IGl0b3Rla2lcIDsKK+WcsOejgeawlyA+IGNoaWppa2lcIDsKK+eUn+aEj+awlyA+IG5hbWFpa2lcIDsKK+Wbm+asoeWFgyA+IHlvamlnZW5cIDsKK+W+oeebrueOiSA+IG9tZWRhbWFcIDsKK+WFrOaWh+aJgCA+IGt1bW9uam9cIDsKK+W+oeW6p+aJgCA+IGdvemFzaG9cIDsKK+Wkp+mLuOWxkSA+IG9nYWt1enVcIDsKK+eUmOa1t+iLlCA+IGFtYW5vcmlcIDsKK+W7uuitsOahiCA+IGtlbmdpYW5cIDsKK+eigeS8muaJgCA+IGdva2Fpam9cIDsKK+mYsueBq+aIuCA+IGJvdWthZG9cIDsKK+eZu+WxseWutiA+IHRvemFua2FcIDsKK+eCiuS6i+WgtCA+IHN1aWppYmFcIDsKK+eEoeaEm+aDsyA+IGJ1YWlzb3VcIDsKK+iLseaWh+enkSA+IGVpYnVua2FcIDsKK+mFuOaAp+mbqCA+IHNhbnNlaXVcIDsKK+Wwiueah+eOiyA+IHNvbicnbm91XCA7CivmtL7nlJ/oqp4gPiBoYXNlaWdvXCA7CivpgbrkvJ3mgKcgPiBpZGVuc2VpXCA7CivljLvnmYLosrsgPiBpcnlvdWhpXCA7CivlpKfnpZbniLYgPiBkYWlzb2Z1XCA7Civou43ojbzliKkgPiBndW5kYXJpXCA7Civnmb3kupzntIAgPiBoYWt1YWtpXCA7CivpqI7ppqzmiKYgPiBraWJhc2VuXCA7Civnm67kuIDmna8gPiBtZWlwcGFpXCA7CivoqJjkuovmlocgPiBraWppYnVuXCA7CivlkozlpKrpvJMgPiB3YWRhaWtvXCA7CivkuojlrprmoYggPiB5b3RlaWFuXCA7CivnrKblj7flmaggPiBmdWdvdWtpXCA7Civmm7joqJjoo5wgPiBzaG9raWhvXCA7Civlv5zmj7Tlm6MgPiBvdWVuZGFuXCA7CivpgbrkvJ3lrZAgPiBpZGVuc2hpXCA7CivpmaTojYnlmaggPiBqb3NvdWtpXCA7Civkuojlrprml6UgPiB5b3RlaWJpXCA7Civkv53mjIHogIUgPiBob2ppc2hhXCA7Civmm7zpmYDnvoUgPiBtYW5kYXJhXCA7CivljZjkvY3lhYMgPiB0YW5pZ2VuXCA7CivmhI/lnLDmgqogPiBpaml3YXJ1XCA7Civnm4rojZLnlLcgPiBtYXN1cmFvXCA7CivkuIrlh7rmnaUgPiBqb3VkZWtpXCA7CivnrKblj7fljJYgPiBmdWdvdWthXCA7CivkuI3nm7jlv5wgPiBmdXNvdW91XCA7Civoi7Hoqp7niYggPiBlaWdvYmFuXCA7Civph43ngavlmaggPiBqdXVrYWtpXCA7CivmkanliKnmlK8gPiBtYXJpc2hpXCA7CivnlbDnq6/oppYgPiBpdGFuc2hpXCA7CivokazlhIDlsYsgPiBzb3VnaXlhXCA7CivpoIXkvY3nva4gPiBrb3VpY2hpXCA7CivljLvluKvms5UgPiBpc2hpaG91XCA7CivokaHokITlnJIgPiBidWRvdWVuXCA7CivkupTmlpfnsbMgPiBnb3RvYmVpXCA7Civlj6/mhJvmsJcgPiBrYXdhaWdlXCA7CivkupTnt5rorZwgPiBnb3NlbmZ1XCA7CivlvqHlupzlhoUgPiBnb2Z1bmFpXCA7CivlrZDppqzluqcgPiBrb3VtYXphXCA7CivlsI/oiqXlrZAgPiBrb2tlc2hpXCA7CivmgZLmuKnlmaggPiBrb3VvbmtpXCA7Civnn6XmgbXogIUgPiBjaGllc2hhXCA7CivpgbrotIjliIYgPiBpem91YnVuXCA7CivlpKrliIDprZogPiB0YWNoaXVvXCA7CivliqnmvJTogIUgPiBqb2Vuc2hhXCA7Civku6PnkIbpg6ggPiBkYWlyaWJ1XCA7Civnp7vli5XkvZMgPiBpZG91dGFpXCA7CivpgYvli5XosrsgPiB1bmRvdWhpXCA7CivlpKnptZ3ntaggPiBiaXJvdWRvXCA7CivkuIDphbjljJYgPiBpc3NhbmthXCA7CivpgaDot53pm6IgPiBlbmt5b3JpXCA7CivkvZDos4DnnIwgPiBzYWdha2VuXCA7Civpq5jpn7Ppg6ggPiBrb3VvbmJ1XCA7CivnlbDnq6/ogIUgPiBpdGFuc2hhXCA7CivlvKXmrKHppqwgPiB5YWppdW1hXCA7CivogJXogJjmqZ8gPiBrb3V1bmtpXCA7CivmhJ/ljJbpmaIgPiBrYW5rYWluXCA7CivkuI3mqZ/lq4wgPiBmdWtpZ2VuXCA7Civpg6jlpJbnp5ggPiBidWdhaWhpXCA7CivkupznhrHluK8gPiBhbmV0dGFpXCA7Civlr4zlo6vlsbEgPiBmdWppc2FuXCA7CivmjIfmj67miYAgPiBzaGlraWpvXCA7CivnlJ/phqTmsrkgPiBraWpvdXl1XCA7CivmtYTnkaDnkoMgPiBqb3VydXJpXCA7Civoo5zkvZDlrpggPiBob3Nha2FuXCA7CivpgY7ljrvlvaIgPiBrYWtva2VpXCA7CivojYnku67lkI0gPiBzb3VnYW5hXCA7CivlvqHmqZ/lq4wgPiBnb2tpZ2VuXCA7CivkuI3lsaXooYwgPiBmdXJpa291XCA7Civmk6zkurrljJYgPiBnaWppbmthXCA7CivliIbluqblmaggPiBidW5kb2tpXCA7Civlh7rnm67ph5EgPiBkZW1la2luXCA7CivlpJzmsb3ou4ogPiB5b2dpc2hhXCA7Civlt6bmtL7ns7sgPiBzYWhha2VpXCA7CivoqZDmrLrnvaogPiBzYWdpemFpXCA7CivppYLpo6nlsYsgPiB1ZG9uJyd5YVwgOwor5aSi5oOz5a62ID4gbXVzb3VrYVwgOwor6KiY6K2c5rOVID4ga2lmdWhvdVwgOwor5LiA5q275b6MID4gaXNzaGlnb1wgOwor6Z2e6KGb55SfID4gaGllaXNlaVwgOwor6Kqk5oqV5LiLID4gZ290b3VrYVwgOwor5LiN6Ieq55SxID4gZnVqaXl1dVwgOwor6Iux5pWw5a2XID4gZWlzdXVqaVwgOwor55+l5oOF5oSPID4gY2hpam91aVwgOwor6aKo5ZGC5qG2ID4gZnVyb29rZVwgOwor6Iux6Kqe5ZyPID4gZWlnb2tlblwgOwor5L2O6Z+z6YOoID4gdGVpb25idVwgOwor5LqM5pyf5Yi2ID4gbmlraXNlaVwgOwor5pOs5aOw6KqeID4gZ2lzZWlnb1wgOwor55So5YuZ5ZOhID4geW91bXVpblwgOwor5b6h6Ium5Yq0ID4gZ29rdXJvdVwgOwor5pyq55m76KiYID4gbWl0b3VraVwgOwor57Ch5piT5YyWID4ga2FuJydpa2FcIDsKK+S4gOmBjuaApyA+IGlra2FzZWlcIDsKK+mBi+mAgeiyuyA+IHVuc291aGlcIDsKK+WMu+W4q+S8miA+IGlzaGlrYWlcIDsKK+iHquWPmeS8nSA+IGppam9kZW5cIDsKK+Wkqeawl+WxiyA+IHRlbmtpeWFcIDsKK+mbo+aYk+W6piA+IG5hbicnaWRvXCA7Civku67mlbDpg6ggPiBrYXN1dWJ1XCA7CivljYHlrZfot68gPiBqdXVqaXJvXCA7CivpvKDouYrpg6ggPiBzb2tlaWJ1XCA7CivosqDnrKblj7cgPiBmdWZ1Z291XCA7CivlpKflvqHmiYAgPiBvb2dvc2hvXCA7CivliIbluIPlm7MgPiBidW5wdXp1XCA7Civoo73lm7PlrrYgPiBzZWl6dWthXCA7CivmiKbmmYLkuIsgPiBzZW5qaWthXCA7CivlpKnmsJflm7MgPiB0ZW5raXp1XCA7Civos5vnvo7mrYwgPiBzYW5iaWthXCA7Civou43kuovosrsgPiBndW5qaWhpXCA7Civngo7lpKnkuIsgPiBlbnRlbmthXCA7CivogqXmuoDlhZAgPiBoaW1hbmppXCA7CivmtarmvKvmtL4gPiByb21hbmhhXCA7Civotbfph43mqZ8gPiBraWp1dWtpXCA7CivlnKfnoJXmqZ8gPiBhc3NhaWtpXCA7Civlm57ot6/lm7MgPiBrYWlyb3p1XCA7CivlhbXlmajluqsgPiBoZWlraWtvXCA7CivlspDpmJznnIwgPiBnaWZ1a2VuXCA7Civlurbli5noqrIgPiBzaG9tdWthXCA7Civpm6LnuIHnirYgPiByaWVuam91XCA7CivmraPopo/ljJYgPiBzZWlraWthXCA7Civku4rlh7rmnaUgPiBpbWFkZWtpXCA7CivmpJzms6LlmaggPiBrZW5wYWtpXCA7CivntbXlj4zntJkgPiBlem91c2hpXCA7CivkuIvku5jph5EgPiBrYWZ1a2luXCA7Civpgb/pm6PmiYAgPiBoaW5hbmpvXCA7CivniYfmhI/lnLAgPiBrYXRhaWppXCA7CivljLvlrabpg6ggPiBpZ2FrdWJ1XCA7CivkuojloLHpn7MgPiB5b2hvdW9uXCA7CivpoqjlkYLku6MgPiBmdXJvZGFpXCA7Civlvoznn6XmgbUgPiBhdG9kamllXCA7Civlt67mqZ/plqIgPiBzYWtpa2FuXCA7Civlp5Tlk6HplbcgPiBpaW5jaG91XCA7CivoqZDmrLrluKsgPiBzYWdpc2hpXCA7CivlpJbnpZbniLYgPiBnYWlzb2Z1XCA7Civoq5bnkIblkowgPiByb25yaXdhXCA7Civph47llrblnLAgPiB5YWVpY2hpXCA7Civpm7Dlm7LmsJcgPiBmdW4nJ2lraVwgOwor5Zug576O57eaID4gaW5iaXNlblwgOwor5rCX5LiI5aSrID4ga2lqb3VidVwgOwor5Yid5pyf5YyWID4gc2hva2lrYVwgOwor5q2p6KGM5ZmoID4gaG9rb3VraVwgOwor5rmv6LGG6IWQID4geXVkb3VmdVwgOwor6KOP6IOM5oi4ID4gdXJhc2Vkb1wgOwor5Yqg566X5qmfID4ga2FzYW5raVwgOwor5pS+55Sf5LyaID4gaG91am91ZVwgOwor6IKy5YWQ6ZmiID4gaWt1amlpblwgOwor5LiN5L2c54K6ID4gZnVzYWt1aVwgOwor5q2m6KOF5YW3ID4gYnVzb3VndVwgOwor5LiL6aeE55WqID4gZ2V0YWJhblwgOwor6Ieq5YuV5YyWID4gamlkb3VrYVwgOwor54Sh6YGg5oWuID4gYnVlbnJ5b1wgOwor6YGL5YuV5aC0ID4gdW5kb3ViYVwgOwor5a626KiI6LK7ID4ga2FrZWloaVwgOwor6Z+z5qW95a62ID4gb25nYWtrYVwgOwor5aSW56WW5q+NID4gZ2Fpc29ib1wgOwor5Yq05YuZ6KqyID4gcm91bXVrYVwgOwor54Sh6LuM6YGTID4gbXVraWRvdVwgOwor5LiN5L2c5rOVID4gYnVzYWhvdVwgOwor5Y2B5a2X54GrID4ganV1amlrYVwgOwor6IOD55eZ5pSjID4gaWtlaXJlblwgOwor6YGL5YuV5ZOhID4gdW5kb3VpblwgOwor5qmf5qKw6KqeID4ga2lrYWlnb1wgOwor576O5a656ZmiID4gYml5b3VpblwgOwor5LiA6Lui5qmfID4gaXR0ZW5raVwgOwor5p2T5paH5a2XID4gc2hhbW9qaVwgOwor5o6i5p+75qmfID4gdGFuc2FraVwgOwor55Sw6IiO5a62ID4gaW5ha2F5YVwgOwor6YGL6Lui6LK7ID4gdW50ZW5oaVwgOwor5qmZ55qu5rK5ID4gdG91aGl5dVwgOwor6YGO5bm05bqmID4ga2FuZW5kb1wgOwor6YGL5YuV5YW3ID4gdW5kb3VndVwgOwor5b6h5a2Y55+lID4gZ296b25qaVwgOwor5a625pS/56eRID4ga2FzZWlrYVwgOwor5bCP5aWH6bqXID4ga29naXJlaVwgOwor56e75L2P6ICFID4gaWp1dXNoYVwgOwor6YGT5YW35bGLID4gZG91Z3V5YVwgOwor5ZCM576p6KqeID4gZG91Z2lnb1wgOwor5qih5pOs5oimID4gbW9naXNlblwgOwor6JKy5YWs6IuxID4gdGFucG9wb1wgOwor56i95Y+k552AID4ga2Vpa29naVwgOwor5LiL5LiW6KmxID4gZ2VzZXdhXCA7Civov6bmpbznvoUgPiBrYXJ1cmFcIDsKK+aJi+W/oOWunyA+IHRlbWFtZVwgOwor6aeE5rSS6JC9ID4gZGFqYXJlXCA7CivkuIvpp4TlsYsgPiBnZXRheWFcIDsKK+mnhOazleieuiA+IGRhYm9yYVwgOwor6YGO5L+d6K23ID4ga2Fob2dvXCA7CivpnZ7llrbliKkgPiBoaWVpcmlcIDsKK+e1jOe3r+WEgCA+IGtlaWlnaVwgOwor5ZGR5YW16KGbID4gbm9uYmVlXCA7CivkuI3nvqnnkIYgPiBmdWdpcmlcIDsKK+acieaEj+W3riA+IHl1dWlzYVwgOwor6auY57ev5bqmID4ga291aWRvXCA7CivkuI3osp7lr50gPiBmdXRlbmVcIDsKK+atr+WMu+iAhSA+IGhhaXNoYVwgOwor5Ly86aGU57W1ID4gbmlnYW9lXCA7Civmra/np5HljLsgPiBzaGlrYWlcIDsKK+eBq+S6i+WgtCA+IGthamliYVwgOwor6LGq6Zuo56aNID4gZ291dWthXCA7Civkupzpurvoo70gPiBhbWFzZWlcIDsKK+S8vOmhlOeUuyA+IG5pZ2FvZVwgOwor6aeE6YWS6JC9ID4gZGFqYXJlXCA7CivlsbHnvorluqcgPiB5YWdpemFcIDsKK+WNkuWhlOWphiA+IHNvdG9iYVwgOwor5Lqc6bq76ImyID4gYW1haXJvXCA7CivpnZLmtbfoi5QgPiBhb25vcmlcIDsKK+S8vOmdnuimqiA+IGVzZW95YVwgOwor5Lqc6bq757O4ID4gYW1haXRvXCA7Civlha3ljYHot68gPiBtdXNvamlcIDsKK+S6nOa4qeW4ryA+IGFvbnRhaVwgOwor5L2Z5omA6KaLID4geW9zb21pXCA7Civlp5Tlk6HkvJogPiBpaW5rYWlcIDsKK+S+neWtmOW6piA+IGl6b25kb1wgOwor6Zi/5YOn56WHID4gYXNvdWdpXCA7CivlhavljYHot68gPiB5YXNvamlcIDsKK+S8iuWLouidpiA+IGlzZWViaVwgOwor5LyK5Yui6JuvID4gaXNlZWJpXCA7Civmm77npZbniLYgPiBoaWppamlcIDsKK+imi+aghOWdiiA+IG1pZWJvdVwgOwor5Lqc6Ymb54mIID4gYWVuYmFuXCA7CivlvqHnjKrlj6MgPiBvY2hva29cIDsKK+mujuS4puWlsyA+IGFpbmFtZVwgOwor5bmz5piT5YyWID4gaGVpaWthXCA7Civlronkv53nkIYgPiBhbnBvcmlcIDsKK+abvuelluavjSA+IGhpYmFiYVwgOwor57GQ5qSF5a2QID4gdG91aXN1XCA7CivlsI/mloflrZcgPiBrb21vamlcIDsKK+S9meaJgOebriA+IHlvc29tZVwgOwor5LiL6Zmi6K2wID4ga2FpbmdpXCA7CivlrbXljJblmaggPiBmdWtha2lcIDsKK+S6nOmJm+advyA+IGFlbmJhblwgOwor5omL55yf5Ly8ID4gdGVtYW5lXCA7CivkuI3lpoLmhI8gPiBmdW55b2lcIDsKK+a5r+aWh+WtlyA+IHl1bW9qaVwgOwor55Ww5qmf56iuID4gaWtpc2h1XCA7CivkupznoJLphbggPiBhaGlzYW5cIDsKK+mYv+S/rue+hSA+IGFzaHVyYVwgOwor5b6h6ZuR54WuID4gb3pvdW5pXCA7Civnmq7ohprnp5EgPiBoaWZ1a2FcIDsKK+W8n+Wwj+eItiA+IG90b29qaVwgOwor5Li75rK75Yy7ID4gc2h1amlpXCA7CivkuI3oqqDmhI8gPiBmdXNlaWlcIDsKK+W+oeipoOatjCA+IGdvZWlrYVwgOwor6IOD5LiL5Z6CID4gaWthc3VpXCA7CivliLfmr5vnm64gPiBoYWtlbWVcIDsKK+eUsueDj+iziiA+IGtvdWlrYVwgOwor5LyK6YGU552AID4gZGF0ZWdpXCA7CivlvqHopovoiJ4gPiBvbWltYWlcIDsKK+iDjOaWh+WtlyA+IHNlbW9qaVwgOwor5YSq5puH6I+vID4gdWRvbmdlXCA7CivlvqHopYHopJMgPiBvbXV0c3VcIDsKK+ilv+ePreeJmSA+IHN1cGVpblwgOwor5LiN6KaL55uuID4gbWlqaW1lXCA7CivolY7puqbnsokgPiBzb2Jha29cIDsKK+aireWtkOmtmiA+IGthbWFzdVwgOwor5LiN6ZqP5oSPID4gZnV6dWlpXCA7CivntKvpmb3oirEgPiBhamlzYWlcIDsKK+mHjuiJr+edgCA+IG5vcmFnaVwgOwor5LqO6Jit55uGID4gdXJhYm9uXCA7Civoi6blkbPntKAgPiBrdW1pc29cIDsKK+eEoeS6i+aVhSA+IG11amlrb1wgOwor5LiA5pio5pelID4gb3RvdG9pXCA7Civlh7rmnaXlgKQgPiBkZWtpbmVcIDsKK+S8iuWLouS4uSA+IGlzZXRhblwgOwor6aOy5YW16KGbID4gbm9uYmVlXCA7CivmraTlh6bnrYkgPiBrb2tvcmFcIDsKK+mcsuilv+S6nCA+IHJvc2hpYVwgOwor55uu5Yy76ICFID4gbWVpc2hhXCA7CivlpoLkvZXmp5ggPiBpa2F5b3VcIDsKK+egtOmtlOefoiA+IGhhbWF5YVwgOwor55u46YOo5bGLID4gYWliZXlhXCA7CivlraTlhZDpmaIgPiBrb2ppaW5cIDsKK+S7iuaXpeaXpSA+IGt5b3ViaVwgOwor6I285p6z5bC8ID4gZGFraW5pXCA7CivmtbfogIHpjKAgPiBlYmlqb3VcIDsKK+iVjum6puWxiyA+IHNvYmF5YVwgOwor6ZuM5o275a2QID4gbWVuZWppXCA7Civlj6TkuovoqJggPiBrb2ppa2lcIDsKK+ecn+mdouebriA+IG1hamltZVwgOwor6YKj55Sx5LuWID4gbmF5dXRhXCA7CivlgLbmpb3pg6ggPiBrdXJhYnVcIDsKK+Wxi+agueWxiyA+IHlhbmV5YVwgOwor5rW36ICB6Iy2ID4gZWJpY2hhXCA7CivpmL/lqr3muK8gPiBhbWFrb3VcIDsKK+ejgeaWueS9jSA+IGppaG91aVwgOwor6Y2b5Ya25bGLID4ga2FqaXlhXCA7Civloanln7rluqYgPiBlbmtpZG9cIDsKK+efoue+veaguSA+IHlhYmFuZVwgOwor55m+5ZCI5qC5ID4geXVyaW5lXCA7CivpmL/nvoXmvKIgPiBhcmFrYW5cIDsKK+mHjui3r+WtkCA+IG5vamlrb1wgOwor6ZuM6J665a2QID4gbWVuZWppXCA7CivlnJ/kuIvluqcgPiBkb2dlemFcIDsKK+aFsOWuieiAhSA+IGlhbnNoYVwgOwor57W15pel6KiYID4gZW5pa2tpXCA7CivpmYDnvoXlsLwgPiBkYXJhbmlcIDsKK+e+heaWueS9jSA+IHJhaG91aVwgOwor55Ww5L2T5a2XID4gaXRhaWppXCA7CivlkIzmhI/oqp4gPiBkb3VpZ29cIDsKK+mfi+mnhOWkqSA+IGlkYXRlblwgOwor54K65pS/5a62ID4gaXNlaWthXCA7Civkuozluqbnm64gPiBuaWRvbWVcIDsKK+aVsOWvhOWxiyA+IHN1a2l5YVwgOwor5ZCM5oSP576pID4gZG91aWdpXCA7CivlpKfooojoo58gPiBvb2dlc2FcIDsKK+S6i+WLmeWxiyA+IGppbXV5YVwgOwor5rWu5LiW57W1ID4gdWtpeW9lXCA7CivnkLXnkLbmuZYgPiBiaXdha29cIDsKK+S6i+WLmeWutiA+IGppbXVrYVwgOwor5Yqg55WZ5aSaID4ga2FydXRhXCA7CivkuI3lj6/pgb8gPiBmdWthaGlcIDsKK+S6i+WLmeWZqCA+IGppbXVraVwgOwor5b6h5rSS6JC9ID4gb3NoYXJlXCA7Civkuovli5nlk6EgPiBqaW11aW5cIDsKK+akjeacqOWxiyA+IHVla2l5YVwgOwor5LiN5Y+v6KqkID4gZnVrYWdvXCA7CivlvqHph4jov6YgPiBvc2hha2FcIDsKK+WNsOWtl+apnyA+IGluamlraVwgOwor56Gr6buE5rOJID4gaW91c2VuXCA7CivljZLpg73lqYYgPiBzb3RvYmFcIDsKK+WBieS4iOWkqyA+IGlqb3VmdVwgOwor5biD5rW36IuUID4gZnVub3JpXCA7CivnnLzljLvogIUgPiBtZWlzaGFcIDsKK+ecvOenkeWMuyA+IGdhbmthaVwgOwor5oWw5a6J5LyaID4gaWFua2FpXCA7CivmiqvpnLLnm64gPiBoaXJvbWVcIDsKK+S6iOWCmemmrCA+IHlvYmliYVwgOwor5rCX5YyW5ZmoID4ga2lrYWtpXCA7CivmrabogIXntbUgPiBtdXNoYWVcIDsKK+miqOWcn+iomCA+IGZ1ZG9raVwgOwor5b6h5rKz56ulID4gb2thcHBhXCA7CivmhJvnhZnlrrYgPiBhaWVua2FcIDsKK+mDqOWxi+edgCA+IGhleWFnaVwgOwor5LqI5YKZ6LK7ID4geW9iaWhpXCA7CivngJjpgY7lmaggPiByb2tha2lcIDsKK+ijnOWKqeWToSA+IGhvam9pblwgOwor5q+U5LiY5bC8ID4gYmlrdW5pXCA7Civms6LmraLloLQgPiBoYXRvYmFcIDsKK+aYk+WLleW6piA+IGlkb3Vkb1wgOwor57W15Zuz6Z2iID4gZXp1bWVuXCA7Civoo7jlqabnlLsgPiByYWZ1Z2FcIDsKK+atqeS4gOatqSA+IGhvaXBwb1wgOwor5LiJ5Y2B6LevID4gbWlzb2ppXCA7CivkuI3mspnmsbAgPiBidXNhdGFcIDsKK+S4jeatu+i6qyA+IGZ1amltaVwgOwor5ZGK5aSp5a2QID4gaGliYXJpXCA7CivliqDlpYjpmYAgPiBrYW5hZGFcIDsKK+S7pemBoOaoqSA+IGllbmtlblwgOwor5pa96aST6ay8ID4gc2VnYWtpXCA7CivkuInph43nnIwgPiBtaWVrZW5cIDsKK+W+oeaymeaxsCA+IGdvc2F0YVwgOwor5q+b57m75a2QID4ga2VqdXN1XCA7CivkuI3lkIzmhI8gPiBmdWRvdWlcIDsKK+S6iOWCmeenkSA+IHlvYmlrYVwgOwor5rGf5oi45YmNID4gZWRvbWFlXCA7Civnm4LomK3nm4YgPiB1cmFib25cIDsKK+S/neitt+WMuiA+IGhvZ29rdVwgOwor5rWF6IyF55SfID4gYXNhaml1XCA7CivlrrblhbflsYsgPiBrYWd1eWFcIDsKK+Wwj+awl+WRsyA+IGtva2ltaVwgOwor5aSp6JqV57O4ID4gdGVndXN1XCA7CivnlbDmlofljJYgPiBpYnVua2FcIDsKK+WknOimi+S4liA+IHlvbWlzZVwgOwor5L2N55u45beuID4gaXNvdXNhXCA7CivmlbDlpYflsYsgPiBzdWtpeWFcIDsKK+iWlOiWh+WckiA+IGJhcmFlblwgOwor6YGO5rih5pyfID4ga2F0b2tpXCA7CivlsYXloLTmiYAgPiBpYmFzaG9cIDsKK+mBleWSjOaEnyA+IGl3YWthblwgOwor55Sf6JWO6bqmID4ga2lzb2JhXCA7Civlr53plpPnnYAgPiBuZW1ha2lcIDsKK+S4ieWNgeaXpSA+IG1pc29rYVwgOwor5LiN5rCX5ZGzID4gYnVraW1pXCA7CivmnIDkuIvkvY0gPiBzYWlrYWlcIDsKK+W+oeats+aariA+IG9zZWlib1wgOwor5LqI5YKZ5ZOhID4geW9iaWluXCA7CivmmKDnlLvljJYgPiBlaWdha2FcIDsKK+asp+WNsOiqniA+IG91aW5nb1wgOwor5Zuz5qGI5a62ID4genVhbmthXCA7Civlv5zmj7TmrYwgPiBvdWVua2FcIDsKK+mfi+mZgOWkqSA+IGlkYXRlblwgOwor5q2M6Iie5LyOID4ga2FidWtpXCA7CivpmL/omK3pmYAgPiBvcmFuZGFcIDsKK+atjOeVmeWkmiA+IGthcnV0YVwgOwor54Sh5oWI5oKyID4gbXVqaWhpXCA7Civlj5foqbHlmaggPiBqdXdha2lcIDsKK+e/u+i7iumtmiA+IG1hbmJvdVwgOwor5LiN5Ye65p2lID4gZnVkZWtpXCA7Civpm5HprZrlr50gPiB6YWtvbmVcIDsKK+S8iuWkquWIqSA+IGl0YXJpaVwgOwor6aWC6aOp57KJID4gdWRvbmtvXCA7CivnlJjmtbfogIEgPiBhbWFlYmlcIDsKK+Wwj+mmrOm5vyA+IGtvYmFrYVwgOwor5b6h6I+T5a2QID4gb2thc2hpXCA7CivnlKPnp5HljLsgPiBzYW5rYWlcIDsKK+S4ieefpeWcnyA+IHRhdGFraVwgOwor6LOT5L2N6KqeID4gaGluaWdvXCA7CivmkanojqvmnrMgPiBtYW1ha2lcIDsKK+Wwj+eZvuWQiCA+IHNheXVyaVwgOwor54Sh5rKZ5rGwID4gYnVzYXRhXCA7Civng4/luL3lrZAgPiBlYm9zaGlcIDsKK+ellueItuavjSA+IHNvZnVib1wgOwor5Y2B5YWt5aScID4gaXpheW9pXCA7Civov4Llm57ot68gPiB1a2Fpcm9cIDsKK+ilpOikuOWutiA+IGJvcm95YVwgOwor6Z2S57Sr6JiHID4gYW9qaXNvXCA7Civmv77pgY7lmaggPiByb2tha2lcIDsKK+S4jeWFt+WQiCA+IGZ1Z3VhaVwgOwor55+l5oG15q2vID4gY2hpZWJhXCA7CivkuI3otbfoqLQgPiBmdWtpc29cIDsKK+eEoeWMu+adkSA+IG11aXNvblwgOwor5p6c5qi55ZySID4ga2FqdWVuXCA7CivlvqHou6LlqYYgPiBvdGVuYmFcIDsKK+miqOWRguWxiyA+IGZ1cm95YVwgOwor5oSP5ZGz6KuWID4gaW1pcm9uXCA7CivnhKHpgqrmsJcgPiBtdWpha2lcIDsKK+miqOWRguWgtCA+IGZ1cm9iYVwgOwor6Zi/6JiH5bGxID4gYXNvc2FuXCA7Civpro7prZrlpbMgPiBhaW5hbWVcIDsKK+W+oeWutuiKuCA+IG9pZWdlaVwgOwor54Sh5rCX5ZGzID4gYnVraW1pXCA7CivlhoXnp5HljLsgPiBuYWlrYWlcIDsKK+Wkp+mDqOWxiyA+IG9vYmV5YVwgOwor5aCV6IOO5Yy7ID4gZGF0YWlpXCA7CivkuI3nlKjmhI8gPiBmdXlvdWlcIDsKK+S5heaFiOebriA+IGt1amltZVwgOwor5aSn5b6h5LujID4gb29taXlvXCA7CivmnInmhI/nvqkgPiB5dXVpZ2lcIDsKK+mHjuiWlOiWhyA+IG5vYmFyYVwgOwor5qKF6Zuo5pyfID4gYmFpdWtpXCA7CivogLPpvLvnp5EgPiBqaWJpa2FcIDsKK+eUu+aetuW6pyA+IGdha2F6YVwgOwor5LiN5a6J5rCXID4gZnVhbmdlXCA7CivlpKflh7rmnaUgPiBvb2Rla2lcIDsKK+miqOmCquawlyA+IGthemVrZVwgOwor5q2m5Zmo5bqrID4gYnVraWtvXCA7CivkvIrlkYLms6IgPiBpcm9oYVwgOwor5Lqc6Ymb6I+vID4gYWVua2FcIDsKK+e2reaMgeiyuyA+IGlqaWhpXCA7Civkvp3kvLDlnLAgPiBla29qaVwgOwor5oSP5rCX5ZywID4gaWt1amlcIDsKK+eni+WIgOmtmiA+IHNhbm1hXCA7Civlhavph43mra8gPiB5YWViYVwgOwor5aSn5Lyv54i2ID4gb29vamlcIDsKK+Wkp+S8r+avjSA+IG9vb2JhXCA7CivntKvpm7Loi7EgPiBnZW5nZVwgOwor5pyq5pu+5pyJID4gbWl6b3VcIDsKK+S8r+eItuiytCA+IG9qaWtpXCA7Civkupzpurvku4EgPiBhbWFuaVwgOwor5LqU5Y2B6LevID4gaXNvamlcIDsKK+acqOS5g+S8iiA+IG1paXJhXCA7CivkuozljYHph40gPiBoYXRhZVwgOwor5L2c5YuZ6KGjID4gc2FtdWVcIDsKK+WxheeVmeWuiCA+IGlydXN1XCA7Civlr53mpIXlrZAgPiBuZWlzdVwgOwor5bqn5qSF5a2QID4gemFpc3VcIDsKK+mbquiKseiPnCA+IG9rYXJhXCA7Civlhavnmb7lsYsgPiB5YW95YVwgOwor56Gr6buE6I+vID4gaW91a2FcIDsKK+Wwj+aEj+awlyA+IGtvaWtpXCA7CivlvqHnpZ7phZIgPiBvbWlraVwgOwor5LyK5L2Q5pyoID4gaXNha2lcIDsKK+aFsOWuieWppiA+IGlhbmZ1XCA7CivlpKfopovlvpcgPiBvb21pZVwgOwor5bCE5omL5bqnID4gaXRlemFcIDsKK+S4jeaEj+awlyA+IGJ1aWtpXCA7CivojY/og6HpursgPiBlZ29tYVwgOwor57W15paH5a2XID4gZW1vamlcIDsKK+S6lOWAjeWtkCA+IGZ1c2hpXCA7CivmgbXmr5Tlr78gPiBlYmlzdVwgOwor55WZ5a6I5bGFID4gcnVzdWlcIDsKK+S4jeW+l+aJiyA+IGZ1ZXRlXCA7CivnhKHmhI/nvqkgPiBtdWlnaVwgOwor5L6d5oCZ5ZywID4gZWtvamlcIDsKK+mmmeWFt+W4qyA+IHlhc2hpXCA7CivlpKflj5TniLYgPiBvb29qaVwgOwor54Sh5oSP5ZGzID4gbXVpbWlcIDsKK+Wkp+WPlOavjSA+IG9vb2JhXCA7CivmhI/lm7rlnLAgPiBpa29qaVwgOwor5b6h6L6e5YSAID4gb2ppZ2lcIDsKK+mYv+W8pemZgCA+IGFtaWRhXCA7CivlsYXlkIjpgZMgPiBpYWRvdVwgOwor5pyq6YCa5aWzID4gb2Jva29cIDsKK+WbsueCieijjyA+IGlyb3JpXCA7CivlvqHkuJbovp4gPiBvc2VqaVwgOwor5aSW56eR5Yy7ID4gZ2VrYWlcIDsKK+efs+aWkemtmiA+IHVndWlcIDsKK+WmgumbqOmcsiA+IGpvcm9cIDsKK+eZvuiIjOmzpSA+IG1venVcIDsKK+a1ruWhteWtkCA+IHVua2FcIDsKK+S6nOe0sOS6nCA+IGFqaWFcIDsKK+S8vOiAjOmdniA+IGVzZVwgOwor5piU6KmxID4gbXVrYXNoaWJhbmFzaGlcIDsKK+S6peW5tCA+IGlub3NoaXNoaWRvc2hpXCA7CivoqbHoqbEgPiBoYW5hc2hpYmFuYXNoaVwgOwor5LiL5ZSHID4gc2hpdGFrdWNoaWJpcnVcIDsKK+aYlOaYlCA+IG11a2FzaGltdWthc2hpXCA7CivmmJTjgIUgPiBtdWthc2hpbXVrYXNoaVwgOwor6Kmx44CFID4gaGFuYXNoaWJhbmFzaGlcIDsKK+engeeriyA+IHdhdGFrdXNoaXJpdHN1XCA7Civmh5DliIAgPiBmdXRva29yb2dhdGFuYVwgOwor5b+d5raZID4ga2F0YWppa2VuYW1pZGFcIDsKK+WNl+adsSA+IG1pbmFtaWhpZ2FzaGlcIDsKK+WPpOWFtSA+IGZ1cnV0c3V3YW1vbm9cIDsKK+WGhei4nSA+IHVjaGlrdXJ1YnVzaGlcIDsKK+iIjOm8kyA+IHNoaXRhdHN1ZHp1bWlcIDsKK+WBpeiAhSA+IHNoaXRhdGFrYW1vbm9cIDsKK+ahnOelrSA+IHNha3VyYW1hdHN1cmlcIDsKK+S5s+eqhCA+IGNoaWNoaXNoaWJvcmlcIDsKK+izouaJgCA+IGthc2hpa29kb2tvcm9cIDsKK+mdoumtgiA+IHRzdXJhZGFtYXNoaWlcIDsKK+S7j+S9nCA+IGhvdG9rZWR6dWt1cnVcIDsKK+adseWNlyA+IGhpZ2FzaGltaW5hbWlcIDsKK+WkqeeJmyA+IGthbWlraXJpbXVzaGlcIDsKK+WkouW5uyA+IHl1bWVtYWJvcm9zaGlcIDsKK+aBmeiZqyA+IHRzdXRzdWdhbXVzaGlcIDsKK+engeWFsSA+IHdhdGFrdXNoaWRvbW9cIDsKK+engeS6iyA+IHdhdGFrdXNoaWdvdG9cIDsKK+mDveW/mCA+IG1peWFrb3dhc3VyZVwgOwor6YGT5qiZID4gbWljaGlzaGlydWJlXCA7CivovrvnpL4gPiB0c3VqaXlhc2hpcm9cIDsKK+iLpee0qyA+IHdha2FtdXJhc2FraVwgOwor55Wz6bCvID4gdGF0YW1paXdhc2hpXCA7Civnm7LmmqYgPiBtZWt1cmFnb3lvbWlcIDsKK+iFuem8kyA+IGhhcmF0c3VkenVtaVwgOwor5YaF5oeQID4gdWNoaWJ1dG9rb3JvXCA7CivpsLvkuLwgPiB1bmFnaWRvbmJ1cmlcIDsKK+i6vuaWuSA+IHNoaXRzdWtla2F0YVwgOwor5YO75b+DID4gaGlnYW1pZ29rb3JvXCA7CivmpL/msrkgPiB0c3ViYWtpYWJ1cmFcIDsKK+afj+mkhSA+IGthc2hpd2Ftb2NoaVwgOwor5p+E6aCtID4gdHN1a2FnYXNoaXJhXCA7Civkv4Tnm7IgPiBuaXdha2FtZWt1cmFcIDsKK+aeleipniA+IG1ha3VyYWtvdG9iYVwgOwor5YCZ5omAID4gc291cm91dG9rb3JvXCA7CivmoYLnlLcgPiBrYXRzdXJhb3Rva29cIDsKK+WxseaHkCA+IHlhbWFmdXRva29yb1wgOwor5Li86aOvID4gZG9uYnVyaW1lc2hpXCA7CivkuLzpiaIgPiBkb25idXJpYmFjaGlcIDsKK+WAkuS6iyA+IHNha2FzYW1hZ290b1wgOwor5pqB6ZeHID4gYWthdHN1a2l5YW1pXCA7Civmnb7mr6wgPiBtYXRzdXBva2t1cmlcIDsKK+mgreiZsSA+IGF0YW1hc2hpcmFtaVwgOwor5p2+5p6XID4gbWF0c3ViYXlhc2hpXCA7CivmnZ/mn7EgPiB0c3VrYWJhc2hpcmFcIDsKK+S7j+W/gyA+IGhvdG9rZWdva29yb1wgOwor5pyq5bm0ID4gaGl0c3VqaWRvc2hpXCA7CivosLfmh5AgPiB0YW5pYnV0b2tvcm9cIDsKK+mbgemqqCA+IGthcmlnYW5lYm9uZVwgOwor5p2x5Y+jID4gaGlnYXNoaWd1Y2hpXCA7Civmna/kuosgPiBzYWthenVraWdvdG9cIDsKK+eLrOaelSA+IGhpdG9yaW1ha3VyYVwgOwor5LiA5aGKID4gaGl0b2thdGFtYXJpXCA7CivlqJjlv4MgPiBtdXN1bWVnb2tvcm9cIDsKK+Wkj+elrSA+IG5hdHN1bWF0c3VyaVwgOwor5piU5byPID4gbXVrYXNoaXNoaWtpXCA7CivlprnlqJggPiBpbW91dG9tdXN1bWVcIDsKK+mcnOafsSA+IHNoaW1vYmFzaGlyYVwgOwor5pif5Y2wID4gaG9zaGlqaXJ1c2hpXCA7CivooovpvKAgPiBmdWt1cm9uZXp1bWlcIDsKK+e2muafhCA+IHRzdWR6dWtpZ2FyYVwgOwor5Zyf6JuNID4gdHN1Y2hpYm90YXJ1XCA7CivlnJ/nhZkgPiB0c3VjaGlrZW11cmlcIDsKK+aHkOmKrSA+IGZ1dG9rb3JvemVuaVwgOwor6Yu46a6rID4gbm9rb2dpcml6YW1lXCA7CivlnJ/ln4MgPiB0c3VjaGlib2tvcmlcIDsKK+ibjeiiiyA+IGhvdGFydWJ1a3Vyb1wgOwor5oeQ57SZID4gZnV0b2tvcm9nYW1pXCA7Civnp4HpgZQgPiB3YXRhc2hpdGFjaGlcIDsKK+aJgOaJgCA+IHRva29yb2Rva29yb1wgOwor6YeR6Yu4ID4ga2FuZW5va29naXJpXCA7CivmiK/kuosgPiB0YXdhbXVyZWdvdG9cIDsKK+WTgeW9oiA+IHNoaW5ha2F0YWNoaVwgOwor5Yui6LuKID4gaGF6dW1pZ3VydW1hXCA7Civlk4Dlk4kgPiBrYW5hc2hpaWthbmFcIDsKK+aJgOOAhSA+IHRva29yb2Rva29yb1wgOwor5rC055uDID4gbWl6dXNha2F6dWtpXCA7CivljIXntJkgPiB0c3V0c3VtaWdhbWlcIDsKK+awtOadryA+IG1penVzYWthenVraVwgOwor5biv6Yu4ID4gb2Jpbm9rb2dpcmlcIDsKK+WPrOS9vyA+IG1lc2hpdHN1a2FpXCA7Civlipvnn7MgPiBjaGlrYXJhaXNoaVwgOwor55m96bygID4gc2hpcm9uZXp1bWlcIDsKK+WKm+eYpCA+IGNoaWthcmFrb2J1XCA7CivlipvmsLQgPiBjaGlrYXJhbWl6dVwgOwor5Y2X5Y+jID4gbWluYW1pZ3VjaGlcIDsKK+WKm+alrSA+IGNoaWthcmF3YXphXCA7CivpgIbnnasgPiBzYWthbWF0c3VnZVwgOwor6bC556+AID4ga2F0c3VvYnVzaGlcIDsKK+WFnOiZqyA+IGthYnV0b211c2hpXCA7CivlvaLkvZMgPiBuYXJpa2F0YWNoaVwgOwor5bqK5p+xID4gdG9rb2Jhc2hpcmFcIDsKK+WHuuayoSA+IHNodXRzdWJvdHN1XCA7Civlt6bnq68gPiBoaWRhcmloYXNoaVwgOwor5be055OmID4gdG9tb2VnYXdhcmFcIDsKK+WIh+aXpSA+IHNoaW1la2lyaWJpXCA7Civlubzlv4MgPiBvc2FuYWdva29yb1wgOwor6Iqx5621ID4gaGFuYW11c2hpcm9cIDsKK+eUt+mwpSA+IG90b2tveWFtb21lXCA7CivoirHnpa0gPiBoYW5hbWF0c3VyaVwgOwor5Yid5ae/ID4gaGF0c3VzdWdhdGFcIDsKK+mrmOipsSA+IHRha2FiYW5hc2hpXCA7Civohp3poK0gPiBoaXphZ2FzaGlyYVwgOwor5be75p+xID4gbWFraWJhc2hpcmFcIDsKK+W6leWKmyA+IHNva29kamlrYXJhXCA7CivnlbPooaggPiB0YXRhbWlvbW90ZVwgOwor5Ye65YqbID4gc2h1dHN1cnlva3VcIDsKK+ahnOmkhSA+IHNha3VyYW1vY2hpXCA7CivmoZzpo68gPiBzYWt1cmFtZXNoaVwgOwor55u05Ye6ID4gY2hva3VzaHV0c3VcIDsKK+eVs+iBtyA+IHRhdGFtaXNob2t1XCA7CivojYnlhqAgPiBrdXNha2FubXVyaVwgOwor55Oi6JmrID4gdGVudG91bXVzaGlcIDsKK+W3puS4iyA+IGhpZGFyaXNoaXRhXCA7Civnmb7lh7ogPiBoeWFrdXNodXRzdVwgOwor6Iul5L6NID4gd2FrYXphbXVyYWlcIDsKK+WAmeeUsSA+IHNvdXJvdXlvc2hpXCA7CivkvL3oqbEgPiB0b2dpYmFuYXNoaVwgOwor5p2+6aO+ID4gbWF0c3VrYXphcmlcIDsKK+adsemiqCA+IGhpZ2FzaGlrYXplXCA7CivotaTntKsgPiBha2FtdXJhc2FraVwgOwor5p+z6IWwID4geWFuYWdpZ29zaGlcIDsKK+eUt+W/gyA+IG90b2tvZ29rb3JvXCA7CivkurrombEgPiBoaXRvc2hpcmFtaVwgOwor542j6YGTID4ga2Vtb25vbWljaGlcIDsKK+S4gOmbqyA+IGhpdG9zaGl6dWt1XCA7Civnvorpm7IgPiBoaXRzdWppZ3Vtb1wgOwor54y/6L2hID4gc2FydWd1dHN1d2FcIDsKK+iEiOaJgCA+IG15YWt1ZG9rb3JvXCA7CivkvYbmm7ggPiB0YWRhc2hpZ2FraVwgOwor6IWw5YiAID4ga29zaGlnYXRhbmFcIDsKK+iyoueJqSA+IG1pdHN1Z2ltb25vXCA7CivlrqLlrqQgPiBreWFrdXNoaXRzdVwgOwor5Lq65p+xID4gaGl0b2Jhc2hpcmFcIDsKK+aXl+mgrSA+IGhhdGFnYXNoaXJhXCA7CivlrZDlubQgPiBuZXp1bWlkb3NoaVwgOwor5peL6aKoID4gdHN1bXVqaWthemVcIDsKK+izquWunyA+IHNoaXRzdWppdHN1XCA7CivkuLzniakgPiBkb25idXJpbW9ub1wgOwor5p2W5p+xID4gdHN1ZWhhc2hpcmFcIDsKK+S4i+eevCA+IHNoaXRhbWFidXRhXCA7CivmnYnmnpcgPiBzdWdpYmF5YXNoaVwgOwor5pmS6ICFID4gc2FyYXNoaW1vbm9cIDsKK+S4gOa7tCA+IGhpdG9zaGl6dWt1XCA7CivkuK3mn7EgPiBuYWthYmFzaGlyYVwgOwor54u454i6ID4gdGFudWtpamlqaWlcIDsKK+WroeWupCA+IGNoYWt1c2hpdHN1XCA7Civni5DnjL8gPiBraXRzdW5lemFydVwgOwor5p2x5YyXID4gaGlnYXNoaWtpdGFcIDsKK+S4g+aciCA+IHNoaWNoaWdhdHN1XCA7CivkuIDmmJQgPiBoaXRvbXVrYXNoaVwgOwor5p2x5YG0ID4gaGlnYXNoaWdhd2FcIDsKK+S4gOaSriA+IGhpdG90c3VtYW1pXCA7Civpo77ku5ggPiBrYXphcml0c3VrZVwgOwor5auh5Ye6ID4gY2hha3VzaHV0c3VcIDsKK+S4i+W/gyA+IHNoaXRhZ29rb3JvXCA7CivlpI/ooaMgPiBuYXRzdWdvcm9tb1wgOwor5LiN5ZecID4gYnV0YXNoaW5hbWlcIDsKK+mbgOicgiA+IHN1enVtZWJhY2hpXCA7CivntYTpoK0gPiBrdW1pZ2FzaGlyYVwgOwor57eR6JmrID4gbWlkb3JpbXVzaGlcIDsKK+mbquekqyA+IHl1a2l0c3VidXRlXCA7Civml5fmqJkgPiBoYXRhamlydXNoaVwgOwor5aSi54++ID4geXVtZXV0c3V0c3VcIDsKK+mbm+elrSA+IGhpbmFtYXRzdXJpXCA7CivlpbPml7EgPiBvbicnbmFoaWRlcmlcIDsKK+Wls+W/gyA+IG9uJyduYWdva29yb1wgOwor5o+h6a6oID4gbmlnaXJpenVzaGlcIDsKK+mdmeW/gyA+IHNoaXp1Z29rb3JvXCA7CivpmqPnlLogPiB0b25hcmltYWNoaVwgOwor5aSn5pmmID4gb290c3Vnb21vcmlcIDsKK+aPoemjryA+IG5pZ2lyaW1lc2hpXCA7CivntKvoibIgPiBtdXJhc2FraWlyb1wgOwor5peX5Y2wID4gaGF0YWppcnVzaGlcIDsKK+mbquW6hyA+IHl1a2liaXNhc2hpXCA7CivplbfoqbEgPiBuYWdhYmFuYXNoaVwgOwor57SZ56SrID4ga2FtaXRzdWJ1dGVcIDsKK+ijuOiZqyA+IGhhZGFrYW11c2hpXCA7CivoqbHkuK0gPiBoYW5hc2hpY2h1dVwgOwor5aG15Z+DID4gY2hpcmlob2tvcmlcIDsKK+mPoemkhSA+IGthZ2FtaW1vY2hpXCA7Civng4/lj6MgPiBrYXJhc3VndWNoaVwgOwor56uv6YeRID4gaGFzaGl0YWdhbmVcIDsKK+aOp+WupCA+IGhpa2Flc2hpdHN1XCA7CivnsbPljbAgPiBrb21lamlydXNoaVwgOwor5ZSQ6YymID4ga2FyYW5pc2hpa2lcIDsKK+iduOeJmyA+IGRlbmRlbm11c2hpXCA7Civpu5LptqsgPiBrdXJvdHN1Z3VtaVwgOwor6Yym6JuHID4gbmlzaGlraWhlYmlcIDsKK+WbveS+jSA+IGt1bml6YW11cmFpXCA7CivmuK/nlLogPiBtaW5hdG9tYWNoaVwgOwor6Jmr6JasID4gbXVzaGlndXN1cmlcIDsKK+WUkOe0hSA+IGthcmFrdXJlbmFpXCA7Civno6/pta8gPiBpc29oaXlvZG9yaVwgOwor5ZG957axID4gaW5vY2hpZHp1bmFcIDsKK+mHkei9oSA+IGthbmFndXRzdXdhXCA7Civlj6Pou4ogPiBrdWNoaWd1cnVtYVwgOwor5Y+W6Kq/ID4gdG9yaXNoaXJhYmVcIDsKK+m8u+afsSA+IGhhbmFiYXNoaXJhXCA7Civnqq/ljbAgPiBrYW1hamlydXNoaVwgOwor6JSm6Ji/ID4gdHN1dGFrYXp1cmFcIDsKK+WPlue3oCA+IHRvcmlzaGltYXJpXCA7CivolKbolJMgPiB0c3V0YWthenVyYVwgOwor5rC36KKLID4ga29vcmlidWt1cm9cIDsKK+WNl+ilvyA+IG1pbmFtaW5pc2hpXCA7CivljIXph5EgPiB0c3V0c3VtaWtpblwgOwor5Y+k54uQID4gZnVydWdpdHN1bmVcIDsKK+WKm+mdqSA+IGNoaWthcmFnYXdhXCA7Civnp4HlhIAgPiB3YXRha3VzaGlnaVwgOwor5Yqb6LazID4gY2hpa2FyYWFzaGlcIDsKK+engeS+myA+IHdhdGFzaGlkb21vXCA7CivlipvosqAgPiBjaGlrYXJhbWFrZVwgOwor5rC05r6EID4gbWl6dXN1bWFzaGlcIDsKK+WPluaJsSA+IHRvcmlhdHN1a2FpXCA7CivpiYTlhZwgPiB0ZXRzdWthYnV0b1wgOwor5rC35p6VID4ga29vcmltYWt1cmFcIDsKK+awtOafsSA+IG1penViYXNoaXJhXCA7CivliIfpgJogPiBraXJpZG9vc2hpXCA7Civpr7Dpq60gPiBuYW1henVoaWdlXCA7Civlj6Plj6MgPiBrdWNoaWd1Y2hpXCA7CivliJ3oqaMgPiBoYXRzdW1vdWRlXCA7Civnn7PnlbMgPiBpc2hpZGF0YW1pXCA7CivpgIboqqwgPiBneWFrdXNldHN1XCA7CivojLjpm7IgPiBraW5va29ndW1vXCA7Civov5HpgZMgPiBjaGlrYW1pY2hpXCA7Civov5Hov5EgPiBjaGlrYWRqaWthXCA7CivmsLTlv4MgPiBtaXp1Z29rb3JvXCA7CivnoILnhZkgPiBzdW5ha2VtdXJpXCA7Civlt53prZogPiBrYXdhemFrYW5hXCA7Civlja/lubQgPiB1c2FnaWRvc2hpXCA7Civov5Hot68gPiBjaGlrYW1pY2hpXCA7CivovrvovrsgPiB0c3VqaXRzdWppXCA7CivljJfmnpUgPiBraXRhbWFrdXJhXCA7Civnorrln7cgPiBrYWt1c2hpdHN1XCA7CivmsLflrqQgPiBoeW91c2hpdHN1XCA7CivmsbrliKUgPiBrZXRzdWJldHN1XCA7CivlvozmioAgPiB1c2hpcm93YXphXCA7CivljY3lt7QgPiBtYW5qaWRvbW9lXCA7Civlv4PlrqQgPiBzaGluc2hpdHN1XCA7CivnnYDoibIgPiBjaGFrdXNob2t1XCA7Civlhobpj6EgPiBtYXJ1a2FnYW1pXCA7CivpgaPnm7QgPiB5YXJpbmFvc2hpXCA7CivnnYDohLEgPiBjaGFrdWRhdHN1XCA7CivlvZfmmJ8gPiBob3VraWJvc2hpXCA7CivlhobpiYsgPiBtYXJ1Z2FuJyduYVwgOwor5b6M5b6MID4gbm9jaGlub2NoaVwgOwor5Y245ZWGID4gb3Jvc2hpc2hvdVwgOwor6L676KSEID4gdHN1aml0c3VtYVwgOwor6Iqx6bC5ID4gaGFuYWdhdHN1b1wgOwor6ba05Zi0ID4gdHN1cnVoYXNoaVwgOwor5YWI6ZqjID4gc2FraWRvbmFyaVwgOwor5bem6LazID4gaGlkYXJpYXNoaVwgOwor5b6X5aSxID4gdG9rdXNoaXRzdVwgOwor5ZKE44CFID4gdG90c3V0b3RzdVwgOwor6YWS5YemID4gc2FrZWRva29yb1wgOwor5q2z5pyIID4gdG9zaGl0c3VraVwgOwor5qiq6LuKID4geW9rb2d1cnVtYVwgOwor5Y2T5Ye6ID4gdGFrdXNodXRzdVwgOwor5byP5pelID4gc2hpa2lqaXRzdVwgOwor5YWl6LOqID4gbnl1dXNoaWNoaVwgOwor552A552AID4gY2hha3VjaGFrdVwgOwor5Y2X5YG0ID4gbWluYW1pZ2F3YVwgOwor55qu6KGjID4ga2F3YWdvcm9tb1wgOwor5Yy65Yy6ID4gbWFjaGltYWNoaVwgOwor552A55m6ID4gY2hha3VoYXRzdVwgOwor6Iqx6YuPID4gaGFuYWJhc2FtaVwgOwor5bqt5ryGID4gbml3YXVydXNoaVwgOwor56CC5bWQID4gc3VuYWFyYXNoaVwgOwor5bm055S3ID4gdG9zaGlvdG9rb1wgOwor5qyh5qyhID4gdHN1Z2l0c3VnaVwgOwor5YiA55a1ID4ga2F0YW5ha2l6dVwgOwor6YGV5qOaID4gY2hpZ2FpZGFuYVwgOwor55u0562GID4gY2hva3VoaXRzdVwgOwor5byQ5b+DID4gZnV0YWdva29yb1wgOwor55u056uLID4gY2hva3VyaXRzdVwgOwor5YWc6J+5ID4ga2FidXRvZ2FuaVwgOwor55uy56qTID4gbWVrdXJhbWFkb1wgOwor5Ye6542EID4gc2h1dHN1Z29rdVwgOwor5Ye654yfID4gc2h1dHN1cnlvdVwgOwor56CC5Z+DID4gc3VuYWJva29yaVwgOwor5bem6ICzID4gaGlkYXJpbWltaVwgOwor5Yqb5bivID4gY2hpa2FyYW9iaVwgOwor56CC5ZqiID4gc3VuYWJ1a3Vyb1wgOwor5YWJ6JiaID4gaGlrYXJpZ29rZVwgOwor6Iqx6KmeID4gaGFuYWtvdG9iYVwgOwor5Yid5rC3ID4gaGF0c3Vnb29yaVwgOwor6Ium6Im+ID4gbmlnYXlvbW9naVwgOwor5Ye65ryBID4gc2h1dHN1cnlvdVwgOwor55q/56ekID4gc2FyYWJha2FyaVwgOwor5q665LyQID4gc2F0c3ViYXRzdVwgOwor5rK444CFID4gZnV0c3VmdXRzdVwgOwor5YWO6ISjID4gbWl0c3VrdWNoaVwgOwor5bqn5oqAID4gc3V3YXJpd2F6YVwgOwor5Y+j44CFID4ga3VjaGlndWNoaVwgOwor6Imv6LOqID4gcnlvdXNoaXRzdVwgOwor5qeN6KG+ID4geWFyaWJ1c3VtYVwgOwor6YCQ5pelID4gY2hpa3VqaXRzdVwgOwor6Iul57eRID4gd2FrYW1pZG9yaVwgOwor6LuK6LODID4ga3VydW1hY2hpblwgOwor6YCG5o6lID4gZ3lha3VzZXRzdVwgOwor55WR6bygID4gaGF0YW5lenVtaVwgOwor552A5omVID4gY2hha3ViYXJhaVwgOwor5Ye65pKDID4gc2h1dHN1Z2VraVwgOwor5bOg6YGTID4gdG91Z2VtaWNoaVwgOwor5bm05by3ID4gdG9zaGlkenV5b1wgOwor6Im26Im2ID4gdHN1eWF0c3V5YVwgOwor55Sw6bWRID4gaG90b3RvZ2lzdVwgOwor5bGx6a+oID4geWFtYWt1amlyYVwgOwor6I2J5p6VID4ga3VzYW1ha3VyYVwgOwor552A5a6fID4gY2hha3VqaXRzdVwgOwor5YK36JasID4ga2l6dWd1c3VyaVwgOwor6Iy25p+xID4gY2hhYmFzaGlyYVwgOwor5bia5pifID4gaG91a2lib3NoaVwgOwor55u05o6lID4gY2hva3VzZXRzdVwgOwor5bqV5ZyfID4gc29rb3RzdWNoaVwgOwor55Wz6YedID4gdGF0YW1paGFyaVwgOwor55m654axID4gaGF0c3VuZXRzdVwgOwor5YiH5a6fID4gc2V0c3VqaXRzdVwgOwor5bGx6aKqID4geWFtYW9yb3NoaVwgOwor5YWJ54mpID4gaGlrYXJpbW9ub1wgOwor5YmU5Ye6ID4gdGVraXNodXRzdVwgOwor55Sf6a2aID4gbmFtYXpha2FuYVwgOwor55u05oiqID4gY2hva3VzZXRzdVwgOwor5YGP6L66ID4ga2F0YWhvcm9yaVwgOwor6Iqx55WRID4gaGFuYWJhdGFrZVwgOwor5YCZ6ZaTID4gc291cm91YWlkYVwgOwor6YCy5Ye6ID4gc2hpbnNodXRzdVwgOwor5bqX5Y24ID4gdGFuYW9yb3NoaVwgOwor55Wl6L+wID4gcnlha3VqdXRzdVwgOwor5bi45bi4ID4gdHN1bmVkenVuZVwgOwor55a16JasID4ga2l6dWd1c3VyaVwgOwor5Yil5Y+jID4gYmV0c3VrdWNoaVwgOwor5YWr5qmLID4geWF0c3VoYXNoaVwgOwor6L6w5bm0ID4gdGF0c3Vkb3NoaVwgOwor5Yil5YilID4gYmV0c3ViZXRzdVwgOwor5bC76aSgID4gc2hpcmltb2NoaVwgOwor5Ye65Zu9ID4gc2h1dHN1Z29rdVwgOwor5bC76aSFID4gc2hpcmltb2NoaVwgOwor5Yy644CFID4gbWFjaGltYWNoaVwgOwor55m95qi6ID4gc2hpcmFrYW5iYVwgOwor5YWr5pyIID4gaGFjaGlnYXRzdVwgOwor6LiP6LuKID4gZnVtaWd1cnVtYVwgOwor5b6M44CFID4gbm9jaGlub2NoaVwgOwor55Wl6KqsID4gcnlha3VzZXRzdVwgOwor55Sz6L68ID4gbW91c2hpa29taVwgOwor5YiH5YiHID4gc2V0c3VzZXRzdVwgOwor55uy5aOBID4gbWVrdXJha2FiZVwgOwor6a+o5bmVID4ga3VqaXJhbWFrdVwgOwor55m95pifID4gc2hpcm9ib3NoaVwgOwor55m+5pelID4gaHlha3VuaWNoaVwgOwor6Iac6LOqID4gbWFrdXNoaXRzdVwgOwor5Ye65YWlID4gc2h1dHN1bnl1dVwgOwor5bm05LiLID4gdG9zaGlzaGl0YVwgOwor5L+C6ZW3ID4ga2FrYXJpY2hvdVwgOwor5YCZ6Kq/ID4gc291cm91Y2hvdVwgOwor6a+o5bC6ID4ga3VqaXJhamFrdVwgOwor55ub5ZyfID4gbW9yaXRzdWNoaVwgOwor6Iqx5pqmID4gaGFuYWdveW9taVwgOwor55u05YiXID4gY2hva3VyZXRzdVwgOwor55Sy6J+5ID4ga2FidXRvZ2FuaVwgOwor5Ya95Ya9ID4gcmV0c3VyZXRzdVwgOwor5YWl5a6kID4gbnl1dXNoaXRzdVwgOwor5bGx6I2SID4geWFtYWFyYXNoaVwgOwor5YKR54mpID4ga2V0c3VidXRzdVwgOwor55Wl562GID4gcnlha3VoaXRzdVwgOwor5bem5YipID4gaGlkYXJpa2lraVwgOwor5Ly46aSFID4gbm9zaGltb2NoaVwgOwor5YaF5YaRID4gdWNoaWthYnV0b1wgOwor5YaF5YWcID4gdWNoaWthYnV0b1wgOwor5bem5YG0ID4gaGlkYXJpZ2F3YVwgOwor5YWl5Y+jID4gaGFpcmlndWNoaVwgOwor5a6k6ZW3ID4gc2hpdHN1Y2hvdVwgOwor5YSq5ae/ID4geWFzYXN1Z2F0YVwgOwor5YWO5Y+jID4gbWl0c3VrdWNoaVwgOwor55Sz56uLID4gbW91c2hpdGF0ZVwgOwor5qC46LOqID4ga2FrdXNoaXRzdVwgOwor5qSN54mpID4gc2hva3VidXRzdVwgOwor5bKp54eVID4gaXdhdHN1YmFtZVwgOwor5qyh44CFID4gdHN1Z2l0c3VnaVwgOwor5YSy5Y+jID4gbW91a2VndWNoaVwgOwor5qOf55OmID4gbXVuYWdhd2FyYVwgOwor6auY5p6VID4gdGFrYW1ha3VyYVwgOwor6IS56ISbID4gZnVrdXJhaGFnaVwgOwor6auY5puHID4gdGFrYWd1bW9yaVwgOwor5qGc6IqxID4gc2FrdXJhYmFuYVwgOwor5qGR6Iu6ID4ga3V3YWljaGlnb1wgOwor6ISa6ImyID4ga3lha3VzaG9rdVwgOwor5qGc6IKJID4gc2FrdXJhbmlrdVwgOwor6IKp6LuKID4ga2F0YWd1cnVtYVwgOwor5Yil44CFID4gYmV0c3ViZXRzdVwgOwor6LOq6YePID4gc2hpdHN1cnlvdVwgOwor55Wc5q66ID4gY2hpa3VzYXRzdVwgOwor5p2c6bWRID4gaG90b3RvZ2lzdVwgOwor6ISI6ISIID4gbXlha3VteWFrdVwgOwor552A44CFID4gY2hha3VjaGFrdVwgOwor5qWU5b2iID4ga3VzYWJpZ2F0YVwgOwor5qGc57SZID4gc2FrdXJhZ2FtaVwgOwor5YiH44CFID4gc2V0c3VzZXRzdVwgOwor55eF5a6kID4gYnlvdXNoaXRzdVwgOwor6IqL5L6NID4gaW1vemFtdXJhaVwgOwor6IKJ6LOqID4gbmlrdXNoaXRzdVwgOwor6L+R44CFID4gY2hpa2FkamlrYVwgOwor5a6d6Ii5ID4gdGFrYXJhYnVuZVwgOwor5bGx5qGcID4geWFtYXpha3VyYVwgOwor5YG05a6kID4gc29rdXNoaXRzdVwgOwor6Iad5p6VID4gaGl6YW1ha3VyYVwgOwor5Lmz6aaWID4gY2hpY2hpa3ViaVwgOwor5bi444CFID4gdHN1bmVkenVuZVwgOwor5a2Q6KaPID4gaG90b3RvZ2lzdVwgOwor5qW15YqbID4ga3lva3VyeW9rdVwgOwor6L6744CFID4gdHN1aml0c3VqaVwgOwor5qGR55WRID4ga3V3YWJhdGFrZVwgOwor55Wl5byPID4gcnlha3VzaGlraVwgOwor5Ya944CFID4gcmV0c3VyZXRzdVwgOwor5p6V6KixID4gbWFrdXJhbW90b1wgOwor5a6d57GkID4gdGFrYXJha3VqaVwgOwor5a6d566xID4gdGFrYXJhYmFrb1wgOwor6LOq6I2JID4gc2hpY2hpZ3VzYVwgOwor6aqo5aO3ID4ga290c3V0c3Vib1wgOwor5a6/55u0ID4gc2h1a3VjaG9rdVwgOwor5YKZ5LuYID4gc29uYWV0c3VrZVwgOwor55Wl5aWqID4gcnlha3VkYXRzdVwgOwor5bGx5bWQID4geWFtYWFyYXNoaVwgOwor5p2+6JmrID4gbWF0c3VtdXNoaVwgOwor5Lmz6LOqID4gbnl1dXNoaXRzdVwgOwor5Lih6ZqjID4gcnlvdWRvbmFyaVwgOwor5bGh5bGhID4gc2hpYmFzaGliYVwgOwor576k6ZuAID4gbXVyYXN1enVtZVwgOwor5pyo6LOqID4gbW9rdXNoaXRzdVwgOwor5a6f54mpID4gaml0c3VidXRzdVwgOwor6LOq56iuID4gc2hpY2hpZ3VzYVwgOwor5LiL6ZyyID4gc2hpdGF0c3V5dVwgOwor55Wc5YqbID4gY2hpa3VyeW9rdVwgOwor5a+S5qS/ID4ga2FudHN1YmFraVwgOwor6LOq55qEID4gc2hpdHN1dGVraVwgOwor5qOa5Y24ID4gdGFuYW9yb3NoaVwgOwor5qKU5a2QID4ga3VjaGluYXNoaVwgOwor6amA5ZywID4gbWFzc2hpZ3VyYVwgOwor5bGx5YiAID4geWFtYWdhdGFuYVwgOwor5LiL6YGTID4gc2hpdGFtaWNoaVwgOwor5LiN6Lq+ID4gYnVzaGl0c3VrZVwgOwor55Sf5Y21ID4gbmFtYXRhbWFnb1wgOwor6aKo6JasID4ga2F6ZWd1c3VyaVwgOwor5puy6KqsID4ga3lva3VzZXRzdVwgOwor5Li46KO4ID4gbWFydWhhZGFrYVwgOwor6aOv57KSID4gbWVzaGl0c3VidVwgOwor54yr6LuKID4gbmVrb2d1cnVtYVwgOwor5LiJ6LaKID4gbWl0c3Vrb3NoaVwgOwor5a6i5pyIID4ga3lha3VnZXRzdVwgOwor5pmC6bOlID4gaG90b3RvZ2lzdVwgOwor6aGU6LKMID4ga2Fva2F0YWNoaVwgOwor5a6k5paZID4gc2hpdHN1cnlvdVwgOwor5bC65YWrID4gc2hha3VoYWNoaVwgOwor6Im244CFID4gdHN1eWF0c3V5YVwgOwor5p2x55S3ID4gYXp1bWFvdG9rb1wgOwor5a+d5a6kID4gc2hpbnNoaXRzdVwgOwor6LOq5qi4ID4gc2hpdHN1Ym9rdVwgOwor6IKY5p6VID4gaGlqaW1ha3VyYVwgOwor5LuP5ruFID4gYnV0c3VtZXRzdVwgOwor5bCP5YyFID4ga29kenV0c3VtaVwgOwor5a+G5a+GID4gbWl0c3VtaXRzdVwgOwor5bCx5LitID4gbmFrYW5kenVrdVwgOwor5LiK6JOGID4gdXdhbXVzaGlyb1wgOwor6LOq5py0ID4gc2hpdHN1Ym9rdVwgOwor6ISx5YqbID4gZGF0c3VyeW9rdVwgOwor6LOq5pytID4gc2hpY2hpZnVkYVwgOwor5LiJ6I+xID4gbWl0c3ViaXNoaVwgOwor5Luu5p6VID4ga2FyaW1ha3VyYVwgOwor5L6b5Ye6ID4ga3lvdXNodXRzdVwgOwor5a6u5a6kID4ga3l1dXNoaXRzdVwgOwor5pil6ZyeID4gaGFydWdhc3VtaVwgOwor6aOf54mpID4gc2hva3Vtb3RzdVwgOwor5piU6aKoID4gbXVrYXNoaWZ1dVwgOwor5a6d5bO2ID4gdGFrYXJhamltYVwgOwor5LuP5qeYID4gaG90b2tlc2FtYVwgOwor6ISa5YqbID4ga3lha3VyeW9rdVwgOwor5LiL6IG3ID4gc2hpdGFzaG9rdVwgOwor5puy56+AID4ga3lva3VzZXRzdVwgOwor5puy562GID4ga3lva3VoaXRzdVwgOwor5LiA57qPID4gaGl0b21hdG9tZVwgOwor6aOv5quDID4gbWVzaGliaXRzdVwgOwor6LKd5p+xID4ga2FpYmFzaGlyYVwgOwor5LiK5621ID4gdXdhbXVzaGlyb1wgOwor5puy55u0ID4ga3lva3VjaG9rdVwgOwor5Li455OmID4gbWFydWdhd2FyYVwgOwor5LiD56uIID4gbmFuYWthbWFkb1wgOwor5LiA56m0ID4gaGl0b3RzdWFuYVwgOwor5a2r5aiYID4gbWFnb211c3VtZVwgOwor5LuP5oCnID4gaG90b2tlc2hvdVwgOwor6Z2Z6Z2ZID4gc2hpenVzaGl6dVwgOwor5a6f5YqbID4gaml0c3VyeW9rdVwgOwor5puy546HID4ga3lva3VyaXRzdVwgOwor5aSn6byTID4gb290c3VkenVtaVwgOwor54uQ6ImyID4ga2l0c3VuZWlyb1wgOwor54m56LOqID4gdG9rdXNoaXRzdVwgOwor5LiA552hID4gaGl0b25lbXVyaVwgOwor5LiL55S6ID4gc2hpdGFtYWNoaVwgOwor5Lq65b+DID4gaGl0b2dva29yb1wgOwor5LiD55SfID4gc2hpY2hpc2hvdVwgOwor54eV6bqmID4ga2FyYXN1bXVnaVwgOwor5LiA55WqID4gaGl0b3RzdWdhaVwgOwor54mp6KqeID4gbW9ub2dhdGFyaVwgOwor5aWz6YGUID4gb24nJ25hdGFjaGlcIDsKK+acp+aciCA+IG9ib3JvZHp1a2lcIDsKK+eJh+i3myA+IGthdGFjaGluYmFcIDsKK+acq+aXpSA+IG1hdHN1aml0c3VcIDsKK+acm+aciCA+IG1vY2hpZHp1a2lcIDsKK+S6jOW/gyA+IGZ1dGFnb2tvcm9cIDsKK+mdqeizqiA+IGtha3VzaGl0c3VcIDsKK+Wkp+mavCA+IG9vaGF5YWJ1c2FcIDsKK+aciOaciCA+IHRzdWtpZHp1a2lcIDsKK+S4gOa4oSA+IGhpdG93YXRhcmlcIDsKK+WxoeOAhSA+IHNoaWJhc2hpYmFcIDsKK+adnOWuhyA+IGhvdG90b2dpc3VcIDsKK+WmvuiFuSA+IG1la2FrZWJhcmFcIDsKK+mbsumcniA+IGt1bW9rYXN1bWlcIDsKK+mdqeiiiyA+IGthd2FidWt1cm9cIDsKK+aekOWHuiA+IHNla2lzaHV0c3VcIDsKK+aeleWFgyA+IG1ha3VyYW1vdG9cIDsKK+S4jeadnyA+IGZ1dHN1dHN1a2FcIDsKK+eMq+afsyA+IG5la295YW5hZ2lcIDsKK+absuaKmCA+IGt5b2t1c2V0c3VcIDsKK+iyuOS7mCA+IGthc2hpdHN1a2VcIDsKK+eLuOaxgSA+IHRhbnVraWppcnVcIDsKK+S4jeaKsSA+IGtha2F3YXJhenVcIDsKK+S4gOaJgCA+IGhpdG90b2tvcm9cIDsKK+absuWwuiA+IGt5b2t1c2hha3VcIDsKK+mbquizqiA+IHl1a2lzaGl0c3VcIDsKK+mhlOW9oiA+IGthb2thdGFjaGlcIDsKK+eKh+eKhyA+IGhpc2hpaGlzaGlcIDsKK+mbm+ixhiA+IGhpeW9rb21hbWVcIDsKK+e2sumgrSA+IGFtaWdhc2hpcmFcIDsKK+WhqemtmiA+IHNoaW96YWthbmFcIDsKK+S4reWftyA+IGNodXVzaGl0c3VcIDsKK+Wkj+iZqyA+IG5hdHN1bXVzaGlcIDsKK+e2vumMpiA+IGF5YW5pc2hpa2lcIDsKK+aciOWIpSA+IHRzdWtpYmV0c3VcIDsKK+WlqueVpSA+IGRhdHN1cnlha3VcIDsKK+e5gee5gSA+IHNoaWdlc2hpZ2VcIDsKK+eDj+m6piA+IGthcmFzdW11Z2lcIDsKK+S4gOWRqCA+IGhpdG9tZWd1cmlcIDsKK+eDj+mzqSA+IGthcmFzdWJhdG9cIDsKK+iopeiopSA+IHRvdHN1dG90c3VcIDsKK+aXheeDjyA+IHRhYmlnYXJhc3VcIDsKK+S4g+WFiSA+IG5hbmFoaWthcmlcIDsKK+WomOWpvyA+IG11c3VtZW11a29cIDsKK+aXpeayoSA+IG5pY2hpYm90c3VcIDsKK+e0sOmbqiA+IHNhc2FtZXl1a2lcIDsKK+mgreWIhiA+IGthc2hpcmFidW5cIDsKK+aWkeeJmyA+IG1hZGFyYXVzaGlcIDsKK+e3keiJsiA+IHJ5b2t1c2hva3VcIDsKK+aXpeaciCA+IG5pY2hpZ2V0c3VcIDsKK+aXreaXpSA+IGt5b2t1aml0c3VcIDsKK+inkuizqiA+IGtha3VzaGl0c3VcIDsKK+mao+e1hCA+IHRvbmFyaWd1bWlcIDsKK+eDj+mHkSA+IGthcmFzdWdhbmVcIDsKK+mavOenkSA+IGhheWFidXNha2FcIDsKK+eJqeW/gyA+IG1vbm9nb2tvcm9cIDsKK+aXheaelSA+IHRhYmltYWt1cmFcIDsKK+e0hembgCA+IGJlbmlzdXp1bWVcIDsKK+eItuaWuSA+IGNoaWNoaWthdGFcIDsKK+WhteiKpSA+IGNoaXJpYWt1dGFcIDsKK+mbqOeHlSA+IGFtYXRzdWJhbWVcIDsKK+WmueWpvyA+IGltb3V0b211a29cIDsKK+mbqueFmSA+IHl1a2lrZW11cmlcIDsKK+WlquaOoCA+IGRhdHN1cnlha3VcIDsKK+inkuibmSA+IHRzdW5vZ2FlcnVcIDsKK+WksealrSA+IHNoaXRzdWd5b3VcIDsKK+ioreeriyA+IHNldHN1cml0c3VcIDsKK+mbkeeJqSA+IHphdHN1YnV0c3VcIDsKK+eGseeDiCA+IG5ldHN1cmV0c3VcIDsKK+maj+elniA+IGthbicnbmFnYXJhXCA7Civoo7jpuqYgPiBoYWRha2FtdWdpXCA7CivpnJzmnIggPiBzaGltb3RzdWtpXCA7CivlpKLmnpUgPiB5dW1lbWFrdXJhXCA7Civml4Xlv4MgPiB0YWJpZ29rb3JvXCA7Civniqzkvo0gPiBpbnV6YW11cmFpXCA7CivorZjliKUgPiBzaGlraWJldHN1XCA7Civlpr7lh7ogPiBzaG91c2h1dHN1XCA7Civnt5HnjokgPiByeW9rdWd5b2t1XCA7Civng4/om4cgPiBrYXJhc3VoZWJpXCA7Civnibnlh7ogPiB0b2t1c2h1dHN1XCA7CivntJnooosgPiBrYW1pYnVrdXJvXCA7Civpm6rmn7MgPiB5dWtpeWFuYWdpXCA7CivmmKXkvJEgPiBoYXJ1eWFzdW1pXCA7CivmnIjjgIUgPiB0c3VraWR6dWtpXCA7Civop6bnmbogPiBzaG9rdWhhdHN1XCA7CivntpnniLYgPiBtYW1hY2hpY2hpXCA7Civng4/ntJkgPiBrYXJhc3VnYW1pXCA7Civml6Xku48gPiBuaWNoaWZ1dHN1XCA7CivmjpvplbcgPiBrYWthcmljaG91XCA7CivpnbTkuIsgPiBrdXRzdXNoaXRhXCA7CivnuK7lsLogPiBzaHVrdXNoYWt1XCA7CivlpbPkuLsgPiBvbicnbmFhcnVqaVwgOwor5pW15aSxID4gdGVraXNoaXRzdVwgOwor5pWZ5a6kID4ga3lvdXNoaXRzdVwgOwor57W25ruFID4gemV0c3VtZXRzdVwgOwor6KaB55+zID4ga2FuYW1laXNoaVwgOwor6KOP6KmxID4gdXJhYmFuYXNoaVwgOwor57KJ6JasID4ga29uYWd1c3VyaVwgOwor57iu5Yi3ID4gc2h1a3VzYXRzdVwgOwor5Zyf6LGaID4gdHN1Y2hpYnV0YVwgOwor54OI54OIID4gcmV0c3VyZXRzdVwgOwor5pWR5Ye6ID4ga3l1dXNodXRzdVwgOwor5aOB5ZyfID4ga2FiZXRzdWNoaVwgOwor57WQ5pyrID4ga2V0c3VtYXRzdVwgOwor6Kaq5p+xID4gb3lhYmFzaGlyYVwgOwor57Kb57KbID4gc2h1a3VzaHVrdVwgOwor5Zu96KibID4ga3VuaW5hbWFyaVwgOwor57a/5Z+DID4gd2F0YWJva29yaVwgOwor6Kaq5pelID4gc2hpbicnbmljaGlcIDsKK+eBvOeGsSA+IHNoYWt1bmV0c3VcIDsKK+mbh+S4uyA+IHlhdG9pbnVzaGlcIDsKK+e2meWomCA+IG1hbWFtdXN1bWVcIDsKK+eEvOWksSA+IHNob3VzaGl0c3VcIDsKK+ios+WHuiA+IHlha3VzaHV0c3VcIDsKK+eDiOaXpSA+IHJldHN1aml0c3VcIDsKK+e3oOS7mCA+IHNoaW1ldHN1a2VcIDsKK+ioo+WIpSA+IGtldHN1YmV0c3VcIDsKK+etkumzpSA+IHRzdXRzdWRvcmlcIDsKK+iii+iAsyA+IGZ1a3Vyb21pbWlcIDsKK+e1kOWunyA+IGtldHN1aml0c3VcIDsKK+e2muWHuiA+IHpva3VzaHV0c3VcIDsKK+a/g+e0qyA+IGtvbXVyYXNha2lcIDsKK+a6nem8oCA+IGRvYnVuZXp1bWlcIDsKK+eym+auuiA+IHNodWt1c2F0c3VcIDsKK+ihgOiEiCA+IGtldHN1bXlha3VcIDsKK+mOjOm8rCA+IGthbWFpdGFjaGlcIDsKK+iii+eJqSA+IGZ1a3Vyb21vbm9cIDsKK+ilv+WPoyA+IG5pc2hpZ3VjaGlcIDsKK+aRmOWHuiA+IHRla2lzaHV0c3VcIDsKK+evgOevgCA+IGZ1c2hpYnVzaGlcIDsKK+etkuiiliA+IHRzdXRzdXNvZGVcIDsKK+ezuOWNsCA+IGl0b2ppcnVzaGlcIDsKK+eCuuS6uiA+IGhpdG90b25hcmlcIDsKK+eCreS/tSA+IHN1bWlkYXdhcmFcIDsKK+icgOmtgiA+IGhvdG90b2dpc3VcIDsKK+exs+aJgCA+IGtvbWVkb2tvcm9cIDsKK+err+i/kSA+IGhhc2hpZGppa2FcIDsKK+mOlumOjCA+IGt1c2FyaWdhbWFcIDsKK+a7heijgiA+IG1ldHN1cmV0c3VcIDsKK+a9rueFmSA+IHNoaW9rZW11cmlcIDsKK+ethuiIjCA+IGhpdHN1emV0c3VcIDsKK+mMpumviSA+IG5pc2hpa2lnb2lcIDsKK+a7keiEsSA+IGthdHN1ZGF0c3VcIDsKK+aOoOWlqiA+IHJ5YWt1ZGF0c3VcIDsKK+ethuetkiA+IGZ1ZGVkenV0c3VcIDsKK+aPj+WHuiA+IGJ5b3VzaHV0c3VcIDsKK+Wcn+WjgSA+IHRzdWNoaWthYmVcIDsKK+aJi+e2miA+IHRldHN1ZHp1a2lcIDsKK+ieouefsyA+IGhvdGFydWlzaGlcIDsKK+icnOicgiA+IG1pdHN1YmFjaGlcIDsKK+euseafsyA+IGhha295YW5hZ2lcIDsKK+euseaelSA+IGhha29tYWt1cmFcIDsKK+exs+S/tSA+IGtvbWVkYXdhcmFcIDsKK+icguicnCA+IGhhY2hpbWl0c3VcIDsKK+erueetkiA+IHRha2VkenV0c3VcIDsKK+err+erryA+IGhhc2hpYmFzaGlcIDsKK+eukuaYnyA+IGhvdWtpYm9zaGlcIDsKK+idtueVqiA+IGNob3V0c3VnYWlcIDsKK+aLoOaJgCA+IHlvcmlkb2tvcm9cIDsKK+m7kum8oCA+IGt1cm9uZXp1bWlcIDsKK+ihqOWPoyA+IG9tb3RlZ3VjaGlcIDsKK+eriOelniA+IGthbWFkb2dhbWlcIDsKK+m7kumuqiA+IGt1cm9tYWd1cm9cIDsKK+ewh+WHuiA+IHpva3VzaHV0c3VcIDsKK+ihqOWHuiA+IGh5b3VzaHV0c3VcIDsKK+WUkOihoyA+IGthcmFrb3JvbW9cIDsKK+ethuaXgSA+IGZ1ZGV6dWt1cmlcIDsKK+m9o+iQvSA+IGtvbWFvdG9zaGlcIDsKK+mMqOe2sSA+IGlrYXJpZHp1bmFcIDsKK+etkuW9oiA+IHRzdXRzdWdhdGFcIDsKK+a3see3kSA+IGZ1a2FtaWRvcmlcIDsKK+m8u+iWrCA+IGhhbmFndXN1cmlcIDsKK+aJgOafhCA+IHRva29yb2dhcmFcIDsKK+aMgeS4uyA+IG1vY2hpbnVzaGlcIDsKK+aLmeWKoyA+IHNldHN1cmV0c3VcIDsKK+ibjeefsyA+IGhvdGFydWlzaGlcIDsKK+a8guWksSA+IGh5b3VzaGl0c3VcIDsKK+mHnem8oCA+IGhhcmluZXp1bWlcIDsKK+a1geizqiA+IHJ5dXVzaGljaGlcIDsKK+aKveWHuiA+IGNodXVzaHV0c3VcIDsKK+icnOaciCA+IG1pdHN1Z2V0c3VcIDsKK+epuua2mSA+IHNvcmFuYW1pZGFcIDsKK+a4i+a4iyA+IHNoaWJ1c2hpYnVcIDsKK+a7suWHuiA+IHNoaW5zaHV0c3VcIDsKK+emj+iiiyA+IGZ1a3VidWt1cm9cIDsKK+etkuWFiCA+IHRzdXRzdXNha2lcIDsKK+ethuWKmyA+IGhpdHN1cnlva3VcIDsKK+aKhOWHuiA+IHNob3VzaHV0c3VcIDsKK+aIkeW/gyA+IHdhZ2Frb2tvcm9cIDsKK+m7kuiLuiA+IGt1cm9pY2hpZ29cIDsKK+enqeemhCA+IGNoaXRzdXJva3VcIDsKK+WPiOmaoyA+IG1hdGFkb25hcmlcIDsKK+mHkemLjyA+IGthbmFiYXNhbWlcIDsKK+aHkOaJiyA+IGZ1dG9rb3JvZGVcIDsKK+m7kue3kSA+IGt1cm9taWRvcmlcIDsKK+aFhOeDiCA+IHJpdHN1cmV0c3VcIDsKK+mLuOatryA+IG5va29naXJpYmFcIDsKK+a6jOWJjCA+IGhhdHN1cmF0c3VcIDsKK+aDn+elniA+IGthbicnbmFnYXJhXCA7Civmtbfnh5UgPiB1bWl0c3ViYW1lXCA7Civph5HooosgPiBrYW5hYnVrdXJvXCA7CivmsrnomasgPiBhYnVyYW11c2hpXCA7CivpioDni5AgPiBnaW5naXRzdW5lXCA7CivljZfpoqggPiBtaW5hbWlrYXplXCA7CivomZDmrrogPiBneWFrdXNhdHN1XCA7CivmsLTpj6EgPiBtaXp1a2FnYW1pXCA7CivmtLvniakgPiBrYXRzdWJ1dHN1XCA7CivljbXphZIgPiB0YW1hZ296YWtlXCA7Civnr4DjgIUgPiBmdXNoaWJ1c2hpXCA7Civpg73ps6UgPiBtaXlha29kb3JpXCA7Civmsbroo4IgPiBrZXRzdXJldHN1XCA7CivolqznrrEgPiBrdXN1cmliYWtvXCA7CivpuqbnlZEgPiBtdWdpYmF0YWtlXCA7Civpu5LmvIYgPiBrb2t1c2hpdHN1XCA7Civllonku48gPiBub2RvYm90b2tlXCA7Civph5Hogb4gPiBrYW5hdHN1bmJvXCA7CivlkLjmub8gPiBreXV1c2hpdHN1XCA7CivmsLTolqwgPiBtaXp1Z3VzdXJpXCA7Civms4nnhrEgPiBpenVtaW5ldHN1XCA7CivmtbTlrqQgPiB5b2t1c2hpdHN1XCA7CivmhJvlqJggPiBtYW5hbXVzdW1lXCA7Civlj6Tni7ggPiBmdXJ1ZGFudWtpXCA7CivmsrPng48gPiBrYXdhZ2FyYXN1XCA7Civnp4HlrpsgPiB3YXRhc2hpYXRlXCA7Civlv4XnvbAgPiBoaXRzdWJhdHN1XCA7CivnpZ3ml6UgPiBzaHVrdWppdHN1XCA7CivlkIrmqYsgPiB0c3VyaWJhc2hpXCA7CivlvaLoqLEgPiBrYXRhYmFrYXJpXCA7CivmsrjmsrggPiBmdXRzdWZ1dHN1XCA7Civms6LmnpUgPiBuYW1pbWFrdXJhXCA7CivnoofntrEgPiBpa2FyaWR6dW5hXCA7CivmsLTnp6QgPiBtaXp1YmFrYXJpXCA7CivmtYHlpLEgPiByeXV1c2hpdHN1XCA7Civmtbjlh7ogPiBzaGluc2h1dHN1XCA7CivpiYvlsZEgPiBrYW4nJ25ha3V6dVwgOwor6I+x6aSFID4gaGlzaGltb2NoaVwgOwor5ZCJ5pelID4ga2ljaGluaWNoaVwgOwor6Jas5oyHID4ga3VzdXJpeXViaVwgOwor5ZCE5pa5ID4gb25vb25vZ2F0YVwgOwor6YeR5qeMID4ga2FuYWR6dWNoaVwgOwor56CC6KKLID4gc3VuYWJ1a3Vyb1wgOwor5ZKE5ZKEID4gdG90c3V0b3RzdVwgOwor5YmN6aCtID4gbWFlZ2FzaGlyYVwgOwor5rWB5Ye6ID4gcnl1dXNodXRzdVwgOwor5rS75YqbID4ga2F0c3VyeW9rdVwgOwor5Y2154S8ID4gdGFtYWdveWFraVwgOwor5rC054WZID4gbWl6dWtlbXVyaVwgOwor6YGT6YGTID4gbWljaGltaWNoaVwgOwor5by36IWwID4gdHN1eW9nb3NoaVwgOwor5rS75LuPID4ga2F0c3VidXRzdVwgOwor5Yid6ZycID4gaGF0c3VzaGltb1wgOwor5Y+z5bemID4gbWlnaWhpZGFyaVwgOwor5ZCE5a6kID4ga2FrdXNoaXRzdVwgOwor552A6ZuqID4gY2hha3VzZXRzdVwgOwor5b+F5ruFID4gaGl0c3VtZXRzdVwgOwor6YeM5b+DID4gc2F0b2dva29yb1wgOwor6JG156WtID4gYW9pbWF0c3VyaVwgOwor5rK55aO3ID4gYWJ1cmF0c3Vib1wgOwor5riL44CFID4gc2hpYnVzaGlidVwgOwor5Yi76LazID4ga2l6YW1pYXNoaVwgOwor5rC05p6VID4gbWl6dW1ha3VyYVwgOwor5YuF562GID4gY2hva3VoaXRzdVwgOwor6bCv6ZuyID4gaXdhc2hpZ3Vtb1wgOwor5b+D5p+EID4ga29rb3JvZ2FyYVwgOwor552m6KiAID4gbXV0c3Vnb3RvXCA7Civlj47lpaogPiBzaHV1ZGF0c3VcIDsKK+aBkOWWnSA+IGt5b3VrYXRzdVwgOwor55uu6aCtID4gbWVnYXNoaXJhXCA7CivojYnppKAgPiBrdXNhbW9jaGlcIDsKK+WKh+iBtyA+IGdla2lzaG9rdVwgOwor6Jas5LujID4ga3VzdXJpZGFpXCA7CivlvLfnm7QgPiBreW91Y2hva3VcIDsKK+WQhOWGiiA+IGtha3VzYXRzdVwgOwor6YCa6KqsID4gdHN1dXNldHN1XCA7CivmsrPlj6MgPiBrYXdhZ3VjaGlcIDsKK+mAhuiziiA+IGd5YWt1em9rdVwgOwor6YGT6I2JID4gbWljaGlrdXNhXCA7CivmrbvnpZ4gPiBzaGluaWdhbWlcIDsKK+mBqeiBtyA+IHRla2lzaG9rdVwgOwor5qyg6JC9ID4ga2V0c3VyYWt1XCA7Civlt7vprqggPiBtYWtpenVzaGlcIDsKK+WLneeOhyA+IHNob3VyaXRzdVwgOwor5Ye66LuNID4gc2h1dHN1Z3VuXCA7CivljYrml6UgPiBoYW4nJ25pY2hpXCA7CivljoTlubQgPiB5YWt1ZG9zaGlcIDsKK+WJpeiEsSA+IGhha3VkYXRzdVwgOwor5b6S5qGcID4gYWRhemFrdXJhXCA7CivljYPml6UgPiBzZW4nJ25pY2hpXCA7CivliKXooYwgPiBiZXRzdWd5b3VcIDsKK+iQveedgCA+IHJha3VjaGFrdVwgOwor6YCG6KWyID4gZ3lha3VzaHV1XCA7Civmr5LmrrogPiBkb2t1c2F0c3VcIDsKK+eiuuWunyA+IGtha3VqaXRzdVwgOwor6YeN5Ye6ID4ganV1c2h1dHN1XCA7Civlj6PlhYggPiBrdWNoaXNha2lcIDsKK+WPo+WFgyA+IGt1Y2hpbW90b1wgOwor5byP55uuID4gc2hpa2ltb2t1XCA7CivljZPmipwgPiB0YWt1YmF0c3VcIDsKK+ayoeWFpSA+IGJvdHN1bnl1dVwgOwor5Y+z5LiLID4gbWlnaXNoaXRhXCA7CivlvLfng4ggPiBreW91cmV0c3VcIDsKK+mAuOiEsSA+IGl0c3VkYXRzdVwgOwor55m96buSID4gc2hpcm9rdXJvXCA7Civnm7TpgZQgPiBqaWtpdGF0c3VcIDsKK+aBi+S7hyA+IGtvaWdhdGFraVwgOwor55u06YCyID4gY2hva3VzaGluXCA7Civnm7TpgJogPiBjaG9rdXRzdXVcIDsKK+WJveeqgyA+IGh5b3VzZXRzdVwgOwor5Ymy5664ID4gd2FyaWJhc2hpXCA7CivlhY3pu5wgPiBtZW5jaHV0c3VcIDsKK+mHkeS7jyA+IGthbmFidXRzdVwgOwor55m96be6ID4gc2hpcmFzYWdpXCA7CivphrXlh7ogPiBreW9zaHV0c3VcIDsKK+ebtOi9hCA+IGNob2trYXRzdVwgOwor5Y2g5birID4gdXJhbmFpc2hpXCA7Civnmq7pnbQgPiBrYXdhZ3V0c3VcIDsKK+aApeWIhyA+IGt5dXVzZXRzdVwgOwor6YWJ5bm0ID4gdG9yaWRvc2hpXCA7CivnnJ/oo7ggPiBtYXBwYWRha2FcIDsKK+WHuuihgCA+IHNodWtrZXRzdVwgOwor55m96bGaID4gc2hpcm9naXN1XCA7CivpgZPnrYsgPiBtaWNoaXN1amlcIDsKK+mBk+erryA+IG1pY2hpYmF0YVwgOwor5Y245aOyID4gb3Jvc2hpdXJpXCA7Civlv5jlpLEgPiBib3VzaGl0c3VcIDsKK+iUreWPoyA+IGthZ2VndWNoaVwgOwor5Y215aSnID4gdGFtYWdvZGFpXCA7CivliJ3oirEgPiBoYXRzdWhhbmFcIDsKK+mBk+eoiyA+IG1pY2hpbm9yaVwgOwor55m96auqID4gaGFrdWhhdHN1XCA7Civno5TliJEgPiBoYXJpdHN1a2VcIDsKK+W9puaYnyA+IGhpa29ib3NoaVwgOwor6L6b6L6jID4gc2hpbnJhdHN1XCA7CivmraPniakgPiBzaG91YnV0c3VcIDsKK+WTgeOAhSA+IHNoaW5hamluYVwgOwor5Ye66JeNID4gc2h1dHN1cmFuXCA7CivlubToi6UgPiB0b3NoaXdha2FcIDsKK+mAhuiHoyA+IGd5YWt1c2hpblwgOwor5bmz6IqdID4gaGlyYXNoaWJhXCA7CivmqKrpnaIgPiB5b2tvdHN1cmFcIDsKK+ebtOiqrSA+IGNob2t1ZG9rdVwgOwor5Yed6KGAID4gZ3lvdWtldHN1XCA7CivpgIPohbAgPiBuaWdlZ29zaGlcIDsKK+W/g+WkqiA+IHRva29yb3RlblwgOwor5b+D5aSpID4gdG9rb3JvdGVuXCA7Civnm7ToqLMgPiBjaG9rdXlha3VcIDsKK+WIneiAsyA+IGhhdHN1bWltaVwgOwor55m96ZuqID4gaGFrdXNldHN1XCA7Civlh7roibIgPiBzaHVzc2hva3VcIDsKK+W7g+eWviA+IGhhaXNoaXRzdVwgOwor5YqH54OIID4gZ2VraXJldHN1XCA7CivpgJ/nrYYgPiBzb2t1aGl0c3VcIDsKK+awtOWPoyA+IG1penVndWNoaVwgOwor5q665oiuID4gc2F0c3VyaWt1XCA7CivlvozlrqQgPiBrb3VzaGl0c3VcIDsKK+iThOWmviA+IGNoaWt1c2hvdVwgOwor5Ye6576kID4gc2h1dHN1Z3VuXCA7CivpgLLnmbogPiBzaGlucGF0c3VcIDsKK+iMtuiiiyA+IGNoYWJ1a3Vyb1wgOwor5Yid56m6ID4gaGF0c3V6b3JhXCA7CivmqKrpgZMgPiB5b2tvbWljaGlcIDsKK+iQveacrSA+IHJha3VzYXRzdVwgOwor5Yiu55uuID4ga2F0c3Vtb2t1XCA7Civnmb3phZIgPiBzaGlyb3pha2VcIDsKK+WLmOaJgCA+IGthbmRva29yb1wgOwor6L+956qBID4gdHN1aXRvdHN1XCA7CivlvI/mnI0gPiBzaGlraWZ1a3VcIDsKK+WNlOWKmyA+IGt5b3VyeW9rdVwgOwor55+z5oyBID4gaXNoaW1vY2hpXCA7CivokL3ml6UgPiByYWt1aml0c3VcIDsKK+mAuOeJqSA+IGljaGltb3RzdVwgOwor55u06IW4ID4gY2hva3VjaG91XCA7CivmrbTml6UgPiByZWtpaml0c3VcIDsKK+mAsueJqSA+IHNoaW5tb3RzdVwgOwor5Ye656uLID4gc2h1dHRhdHN1XCA7CivnnJ/nrYYgPiBzaGlucGl0c3VcIDsKK+ato+aciCA+IHNob3VnYXRzdVwgOwor5Yed57iuID4gZ3lvdXNodWt1XCA7CivnnYDnm64gPiBjaGFrdW1va3VcIDsKK+WFreitmCA+IHJva3VzaGlraVwgOwor5Yed57WQID4gZ3lvdWtldHN1XCA7CivnnLznlr4gPiBnYW5zaGl0c3VcIDsKK+atjOaelSA+IHV0YW1ha3VyYVwgOwor77y457eaID4gZWtrdXN1c2VuXCA7Civnn6XmgokgPiBjaGlzaGl0c3VcIDsKK+WIpeeJqSA+IGJldHN1bW9ub1wgOwor55u057WQID4gY2hva2tldHN1XCA7Civlh53nq4sgPiBneW91cml0c3VcIDsKK+W4uOevgCA+IHRva29idXNoaVwgOwor5qiZ6K2YID4gaHlvdXNoaWtpXCA7Civlvozlh7ogPiBrb3VzaHV0c3VcIDsKK+WIneeJqSA+IGhhdHN1bW9ub1wgOwor6Iqx6YGTID4gaGFuYW1pY2hpXCA7Civlh7rnmbogPiBzaHVwcGF0c3VcIDsKK+WMl+WPoyA+IGtpdGFndWNoaVwgOwor5bm0546JID4gdG9zaGlkYW1hXCA7CivmqZnoibIgPiBkYWlkYWlpcm9cIDsKK+efqeW3riA+IGthbmV6YXNoaVwgOwor5Y2D5LiHID4gY2hpeW9yb3p1XCA7CivlvJPlvKYgPiB5dW1pZHp1cnVcIDsKK+ebsueptCA+IG1la3VyYWFuYVwgOwor6I2J566SID4ga3VzYWJvdWtpXCA7Civlh7rnj74gPiBzaHV0c3VnZW5cIDsKK+WHneedgCA+IGd5b3VjaGFrdVwgOwor5Yqj5byxID4gcmV0c3VqYWt1XCA7CivnnJ/njocgPiBzaGluc290c3VcIDsKK+iLpuiZqyA+IG5pZ2FtdXNoaVwgOwor5qmL6ISaID4ga3lvdWt5YWt1XCA7Civlt6bohZUgPiBoaWRhcml1ZGVcIDsKK+mrmOm8viA+IHRha2FpYmlraVwgOwor55yf54mpID4gc2hpbmJ1dHN1XCA7CivlvJTlrqIgPiBjaG91a3lha3VcIDsKK+eZvuiWrCA+IGh5YWt1eWFrdVwgOwor6Iy2562SID4gY2hhZHp1dHN1XCA7CivlvJ/lqJggPiBvdG9tdXN1bWVcIDsKK+ecgeeVpSA+IHNob3VyeWFrdVwgOwor6YCG5rWBID4gZ3lha3VyeXV1XCA7CivmrYzlv4MgPiB1dGFnb2tvcm9cIDsKK+mAseacqyA+IHNodXVtYXRzdVwgOwor552A5rC3ID4gY2hha3VoeW91XCA7Civnmb3oj4ogPiBzaGlyYWdpa3VcIDsKK+W5tOazoiA+IHRvc2hpbmFtaVwgOwor5q2j5a6kID4gc2Vpc2hpdHN1XCA7Civoj4rmnIggPiBraWt1ZHp1a2lcIDsKK+WIpealrSA+IGJldHN1Z3lvdVwgOwor5bm05q+OID4gdG9zaGlnb3RvXCA7CivpgLHml6UgPiBzaHV1aml0c3VcIDsKK+iKseihlyA+IGhhbmFtYWNoaVwgOwor5bed57iBID4ga2F3YWJ1Y2hpXCA7CivlvaLku6MgPiBrYXRhc2hpcm9cIDsKK+eZveiJsiA+IGhha3VzaG9rdVwgOwor5Yil5qOfID4gYmV0c3VtdW5lXCA7Civlhornq4sgPiBzYWt1cml0c3VcIDsKK+WztumiqCA+IHNoaW1ha2F6ZVwgOwor5byx5Y2SID4gamFrdXNvdHN1XCA7Civlg5XpgZQgPiBib2t1dGFjaGlcIDsKK+mrremdoiA+IGhpZ2VkenVyYVwgOwor5by15YqbID4gY2hvdXJ5b2t1XCA7Civou5/os6ogPiBuYW5zaGl0c3VcIDsKK+iPseW9oiA+IGhpc2hpZ2F0YVwgOwor6YCy5o2XID4gc2hpbmNob2t1XCA7Civlg7voqqwgPiBoZWtpc2V0c3VcIDsKK+iMtueVkSA+IGNoYWJhdGFrZVwgOwor5qiq57axID4geW9rb2R6dW5hXCA7CivlhY7ogLMgPiB1c2FnaW1pbWlcIDsKK+WHuuasoCA+IHNodWtrZXRzdVwgOwor5bO26ZmwID4gc2hpbWFrYWdlXCA7Civnn6LljbAgPiB5YWppcnVzaGlcIDsKK+edgOacjSA+IGNoYWt1ZnVrdVwgOwor5bu65Z2qID4gdGF0ZXRzdWJvXCA7Civlia/lsLogPiBmdWt1c2hha3VcIDsKK+WIneaYpSA+IGhhdHN1aGFydVwgOwor5YWx56uLID4ga3lvdXJpdHN1XCA7CivoirHoj7EgPiBoYW5hYmlzaGlcIDsKK+W7tuWdqiA+IG5vYmV0c3Vib1wgOwor5qW16YePID4ga3lva3VyeW91XCA7Civoia/orZggPiByeW91c2hpa2lcIDsKK+W8n+WIhiA+IG90b3V0b2J1blwgOwor6Imy6Kq/ID4gc2hpa2ljaG91XCA7Civps7blj6MgPiB0b2JpZ3VjaGlcIDsKK+WFq+emjyA+IGhhY2hpZnVrdVwgOwor6Imy6KaaID4gc2hpa2lrYWt1XCA7Civnn7Pku48gPiBzZWtpYnV0c3VcIDsKK+ats+WHuiA+IHNhaXNodXRzdVwgOwor55u05rWBID4gY2hva3VyeXV1XCA7Civoio3olqwgPiBzaGFrdXlha3VcIDsKK+WHuuacrSA+IHNodXNzYXRzdVwgOwor5Ymy5aKXID4gd2FyaW1hc2hpXCA7Civoip3ojYkgPiBzaGliYWt1c2FcIDsKK+ecn+adsSA+IG1haGlnYXNoaVwgOwor5qi455u0ID4gYm9rdWNob2t1XCA7CivliaXlpaogPiBoYWt1ZGF0c3VcIDsKK+W5leacqyA+IGJha3VtYXRzdVwgOwor5qSO6aqoID4gdHN1aWtvdHN1XCA7CivmraPlh7ogPiBzZWlzaHV0c3VcIDsKK+WHtuaXpSA+IGt5b3VqaXRzdVwgOwor6YGK5aSxID4geXV1c2hpdHN1XCA7Civou4ronaYgPiBrdXJ1bWFlYmlcIDsKK+WIneW9uSA+IGhhdHN1eWFrdVwgOwor6YG45Ye6ID4gc2Vuc2h1dHN1XCA7CivpgIblv4MgPiBneWFrdXNoaW5cIDsKK+i/q+aMgSA+IHNlcmltb2NoaVwgOwor552A5bqKID4gY2hha3VzaG91XCA7CivlubTlvLEgPiB0b3NoaXlvd2FcIDsKK+Wxsem2iSA+IHlhbWF1enVyYVwgOwor77y35p2vID4gZGFidXJ1aGFpXCA7CivnnYDluK0gPiBjaGFrdXNla2lcIDsKK+i+u+acrSA+IHRzdWppZnVkYVwgOwor6YGp5YiHID4gdGVraXNldHN1XCA7Civnmbrnl4UgPiBoYXRzdWJ5b3VcIDsKK+eXheitmCA+IGJ5b3VzaGlraVwgOwor5Ym15Ye6ID4gc291c2h1dHN1XCA7CivliKXlrqQgPiBiZXNzaGl0c3VcIDsKK+W5tOW1qSA+IHRvc2hpa2FzYVwgOwor5Yid5a2rID4gaGF0c3VtYWdvXCA7Civlh7rlvqEgPiBzaHV0c3VneW9cIDsKK+W5veWupCA+IHl1dXNoaXRzdVwgOwor55m9546JID4gc2hpcmF0YW1hXCA7Civnm7TmkoMgPiBjaG9rdWdla2lcIDsKK+W5tOWvhCA+IHRvc2hpeW9yaVwgOwor5qaO6Iy4ID4gZW5va2l0YWtlXCA7CivoiLnomasgPiBmdW5hbXVzaGlcIDsKK+eZveeGsSA+IGhha3VuZXRzdVwgOwor5qW16JaEID4ga3lva3VoYWt1XCA7Civnmb3nhoogPiBzaGlyb2t1bWFcIDsKK+W4huafsSA+IGhvYmFzaGlyYVwgOwor5Ymy5LuYID4gd2FyaXRzdWtlXCA7CivliJ3lpKIgPiBoYXRzdXl1bWVcIDsKK+WIhuWupCA+IGJ1bnNoaXRzdVwgOwor5bq25Ye6ID4gc2hvc2h1dHN1XCA7CivlhaXmu4UgPiBueXV1bWV0c3VcIDsKK+WJsuS4iyA+IHdhcmlzaGl0YVwgOwor5biC5p2+ID4gaWNoaW1hdHN1XCA7CivlhKrnlLcgPiB5YXNhb3Rva29cIDsKK+iKseeUuiA+IGhhbmFtYWNoaVwgOwor6L2i5q66ID4gcmVraXNhdHN1XCA7CivnmYjnlr4gPiBoYWlzaGl0c3VcIDsKK+ecn+WunyA+IHNoaW5qaXRzdVwgOwor55m95rudID4gc2hpcmF0YWtpXCA7CivpgJ/lj6MgPiBoYXlha3VjaGlcIDsKK+mAsuWFpSA+IHNoaW4nJ255dXVcIDsKK+WEsueJqSA+IG1vdWtlbW9ub1wgOwor6IWw6auYID4ga29zaGlkYWthXCA7CivmqYvmoYEgPiBoYXNoaWdldGFcIDsKK+mqqOizqiA+IGtvc3NoaXRzdVwgOwor6IWw6aqoID4ga29zaGlib25lXCA7Civkv67po74gPiBzaHV1c2hva3VcIDsKK+eZvea1qiA+IHNoaXJhbmFtaVwgOwor55m95rWcID4gc2hpcmFoYW1hXCA7CivoibbnqK4gPiB0c3V5YWRhbmVcIDsKK+mAn+WKmyA+IHNva3VyeW9rdVwgOwor6L675bqXID4gdHN1amltaXNlXCA7Civnmb3ms6IgPiBzaGlyYW5hbWlcIDsKK+iMtuaJgCA+IGNoYWRva29yb1wgOwor5bqD5Y+jID4gaGlyb2t1Y2hpXCA7CivlsLrpqqggPiBzaGFra290c3VcIDsKK+WHuuWhgSA+IHNodXRzdXJ1aVwgOwor55uu5bqHID4gbWFiaXNhc2hpXCA7Civnmb3msLQgPiBzaGlyb21penVcIDsKK+iJsuelniA+IHNoaWtpc2hpblwgOwor5YWl5qSNID4gbnl1dXNob2t1XCA7Civnm7TlsZ4gPiBjaG9rdXpva3VcIDsKK+WIneWHuiA+IHNob3NodXRzdVwgOwor5Yeh5aSxID4gYm9uc2hpdHN1XCA7Civlha3mnIggPiByb2t1Z2F0c3VcIDsKK+WFpeacrSA+IG55dXVzYXRzdVwgOwor6YCB5Ye6ID4gc291c2h1dHN1XCA7CivlsbHpgZMgPiB5YW1hbWljaGlcIDsKK+mAgOWHuiA+IHRhaXNodXRzdVwgOwor5qW956+AID4gZ2FrdXNldHN1XCA7CivluLjlpI8gPiB0b2tvbmF0c3VcIDsKK+eUs+mBlCA+IHNoaW50YXRzdVwgOwor6Iul5p2+ID4gd2FrYW1hdHN1XCA7CivlsYDplbcgPiBreW9rdWNob3VcIDsKK+msvOeTpiA+IG9uaWdhd2FyYVwgOwor5bid5a6kID4gdGVpc2hpdHN1XCA7CivluorkuIsgPiB5dWthc2hpdGFcIDsKK+edgOS/oSA+IGNoYWt1c2hpblwgOwor55m95pytID4gc2hpcm9mdWRhXCA7CivliIflhaUgPiBzZXRzdW55dXVcIDsKK+aomeacrSA+IGh5b3VzYXRzdVwgOwor5Ye65YuVID4gc2h1dHN1ZG91XCA7Civov6vlipsgPiBoYWt1cnlva3VcIDsKK+WxkemJhCA+IGt1enV0ZXRzdVwgOwor6auq57axID4ga2FtaWR6dW5hXCA7CivpgJDkuIAgPiBjaGlrdWljaGlcIDsKK+S+temjnyA+IHNoaW5zaG9rdVwgOwor6Iqx5rC3ID4gaGFuYWdvb3JpXCA7Civkv4Tpm6ggPiBuaXdha2FhbWVcIDsKK+iGoOizqiA+IGtvdXNoaXRzdVwgOwor6Iy25a6kID4gY2hhc2hpdHN1XCA7Civnmb3ml6UgPiBoYWt1aml0c3VcIDsKK+S+oOmqqCA+IGt5b3Vrb3RzdVwgOwor5bCR6aOfID4gc2hvdXNob2t1XCA7Civlt7PlubQgPiBoZWJpZG9zaGlcIDsKK+iJtueJqSA+IHRzdXlhbW9ub1wgOwor5bCP6aOfID4gc2hvdXNob2t1XCA7CivlhrflpbQgPiBoaXlheWFra29cIDsKK+Wwj+mgrSA+IGtvZ2FzaGlyYVwgOwor5bGI6L6xID4ga3V0c3Vqb2t1XCA7CivpqqjohpwgPiBrb3RzdW1ha3VcIDsKK+eUuuinkiA+IG1hY2hpa2Fkb1wgOwor6L675ZCbID4gdHN1amlnaW1pXCA7CivnnIHlipsgPiBzaG91cnlva3VcIDsKK+mvieW5nyA+IGtvaW5vYm9yaVwgOwor6LWk6bCvID4gYWthaXdhc2hpXCA7CivpqqjogokgPiBrb3RzdW5pa3VcIDsKK+WGheWupCA+IG5haXNoaXRzdVwgOwor5bed5bK4ID4ga2F3YWdpc2hpXCA7CivluZXkuIsgPiBtYWt1c2hpdGFcIDsKK+ebruWNsCA+IG1lamlydXNoaVwgOwor5bC76Lu9ID4gc2hpcmlnYXJ1XCA7CivnlLfooYYgPiBvdG9rb3NodXVcIDsKK+mwkOWPoyA+IHdhbmlndWNoaVwgOwor5L+h6LaKID4gc2hpbicnZXRzdVwgOwor5L+K6YC4ID4gc2h1bicnaXRzdVwgOwor5bGe6KiXID4gc2hva3V0YWt1XCA7Civnm7LliKQgPiBtZWt1cmFiYW5cIDsKK+iDuOmqqCA+IGt5b3Vrb3RzdVwgOwor5a+d6aOfID4gc2hpbnNob2t1XCA7CivoibLmsqIgPiBzaGlraXRha3VcIDsKK+WFreWwuiA+IHJva3VzaGFrdVwgOwor6L6b5Y+jID4ga2FyYWt1Y2hpXCA7CivoibLmrLIgPiBzaGlraXlva3VcIDsKK+alteeGsSA+IGdva3VuZXRzdVwgOwor6Lez6JmrID4gdG9iaW11c2hpXCA7Civnl5vng4ggPiB0c3V1cmV0c3VcIDsKK+iHo+evgCA+IHNoaW5zZXRzdVwgOwor6aqo566xID4ga290c3ViYWtvXCA7CivnmoflrqQgPiBrb3VzaGl0c3VcIDsKK+S/l+iqrCA+IHpva3VzZXRzdVwgOwor5YSy5b25ID4gbW91a2V5YWt1XCA7Civkvpvov7AgPiBreW91anV0c3VcIDsKK+Wzu+eDiCA+IHNodW5yZXRzdVwgOwor55S36IW5ID4gb3Rva29iYXJhXCA7CivmpbXmtYEgPiBreW9rdXJ5dXVcIDsKK+eVpeeroCA+IHJ5YWt1c2hvdVwgOwor5YaN5Ye6ID4gc2Fpc2h1dHN1XCA7Civlt53lj6MgPiBrYXdhZ3VjaGlcIDsKK+iJr+aXpSA+IHJ5b3VqaXRzdVwgOwor55Wl56ewID4gcnlha3VzaG91XCA7Civlt6bliY0gPiBoaWRhcmltYWVcIDsKK+WvvuizqiA+IHRhaXNoaXRzdVwgOwor5bCP6KqsID4gc2hvdXNldHN1XCA7Civlt6blhZogPiBoaWRhcml0b3VcIDsKK+iEh+mBkyA+IHdha2ltaWNoaVwgOwor5qO556ekID4gc2FvYmFrYXJpXCA7CivmoZzosp0gPiBzYWt1cmFnYWlcIDsKK+eXheayoSA+IGJ5b3Vib3RzdVwgOwor5YWx5YqbID4ga3lvdXJ5b2t1XCA7CivoiLnmqYsgPiBmdW5hYmFzaGlcIDsKK+mrquayuSA+IGthbWlhYnVyYVwgOwor55eF5q2/ID4gYnlvdWJvdHN1XCA7CivkvrXonZUgPiBzaGluc2hva3VcIDsKK+eXheasoCA+IGJ5b3VrZXRzdVwgOwor5YWr5YiHID4geWF0c3VnaXJpXCA7CivlhaXlipsgPiBueXV1cnlva3VcIDsKK+eUuuetiyA+IG1hY2hpc3VqaVwgOwor6Imy5oW+ID4gc2hpa2l5b2t1XCA7CivohILotrMgPiBhYnVyYWFzaGlcIDsKK+eUuueriyA+IGNob3VyaXRzdVwgOwor6ISa6Ki7ID4ga3lha3VjaHV1XCA7CivmpbXmnIggPiBnb2t1Z2V0c3VcIDsKK+iEguizqiA+IHNoaXNoaXRzdVwgOwor6Iif5qmLID4gZnVuYWhhc2hpXCA7CivkvpvooYAgPiBreW91a2V0c3VcIDsKK+W3neS4iyA+IGthd2FzaGltb1wgOwor5a6f6YyyID4gaml0c3Vyb2t1XCA7CivnlZznlJ8gPiBjaGlrdXNob3VcIDsKK+iJsuW8sSA+IHNoaWtpamFrdVwgOwor55m65Ye6ID4gaGFzc2h1dHN1XCA7CivohbDnuIQgPiBrb3NoaW5hd2FcIDsKK+eUn+evgCA+IG5hbWFidXNoaVwgOwor5bCx6IG3ID4gc2h1dXNob2t1XCA7CivotrPohbAgPiBhc2hpa29zaGlcIDsKK+WFpeS7jyA+IG55dXVidXRzdVwgOwor5YWl5LqkID4gaXJpbWFqaXJpXCA7CivohbDntJAgPiBrb3NoaWhpbW9cIDsKK+S/rueviSA+IHNodXVjaGlrdVwgOwor6IKJ6aOfID4gbmlrdXNob2t1XCA7Civkv6HntIQgPiBzaGluJyd5YWt1XCA7CivohLHokL0gPiBkYXRzdXJha3VcIDsKK+S9k+izqiA+IHRhaXNoaXRzdVwgOwor6Lyp5Ye6ID4gaGFpc2h1dHN1XCA7Civkv67npZMgPiBzaHV1ZnV0c3VcIDsKK+WtpumWpSA+IGdha3ViYXRzdVwgOwor5L2N6LKgID4ga3VyYWltYWtlXCA7Civoi5fku6MgPiBuYXdhc2hpcm9cIDsKK+WxseeUtyA+IHlhbWFvdG9rb1wgOwor5qGc6I2JID4gc2FrdXJhc291XCA7CivlrqLotrMgPiBreWFrdWFzaGlcIDsKK+WxnuebriA+IHNob2t1bW9rdVwgOwor5L+X562GID4gem9rdWhpdHN1XCA7CivlsI/ogbcgPiBzaG91c2hva3VcIDsKK+WEn+WNtCA+IHNob3VreWFrdVwgOwor5qW95b6LID4gZ2FrdXJpdHN1XCA7CivmoZzoibIgPiBzYWt1cmFpcm9cIDsKK+Wwj+e+iiA+IGtvaGl0c3VqaVwgOwor5a6f6LOqID4gamlzc2hpdHN1XCA7CivogpjpiYQgPiBoaWppdGV0c3VcIDsKK+izg+mkhSA+IGNoaW5tb2NoaVwgOwor5a6d6LKdID4gdGFrYXJhZ2FpXCA7Civou73lj6MgPiBrYXJ1a3VjaGlcIDsKK+i2heiEsSA+IGNob3VkYXRzdVwgOwor55S354mpID4gb3Rva29tb25vXCA7CivogbfplbcgPiBzaG9rdWNob3VcIDsKK+S7j+mhlCA+IGhvdG9rZWdhb1wgOwor5LuP6aCYID4gZnV0c3VyeW91XCA7CivnlaXmrbQgPiByeWFrdXJla2lcIDsKK+mqqOafhCA+IGtvdHN1Z2FyYVwgOwor6LWk6ImyID4gc2VraXNob2t1XCA7CivlsI/nr4AgPiBzaG91c2V0c3VcIDsKK+Wwu+eZliA+IHNoaXJpa3VzZVwgOwor6Iag5ryGID4ga291c2hpdHN1XCA7Civls7blvbEgPiBzaGltYWthZ2VcIDsKK+alteWwjyA+IGt5b2t1c2hvdVwgOwor5L+154mpID4gaHlvdW1vdHN1XCA7CivnlJ/niKogPiBuYW1hZHp1bWVcIDsKK+advumiqCA+IG1hdHN1a2F6ZVwgOwor6LaF57W2ID4gY2hvdXpldHN1XCA7CivoiLnlrqQgPiBzZW5zaGl0c3VcIDsKK+iFuueGsSA+IHNlbicnbmV0c3VcIDsKK+adn+mrqiA+IHNva3VoYXRzdVwgOwor6Lui5Ye6ID4gdGVuc2h1dHN1XCA7CivohKnnq7kgPiBzaHV1Y2hpa3VcIDsKK+WztuWztiA+IHNoaW1hamltYVwgOwor55Wl5pyNID4gcnlha3VmdWt1XCA7Civls7blsbEgPiBzaGltYXlhbWFcIDsKK+msseWLgyA+IHV0c3Vib3RzdVwgOwor5p2x6ZuyID4gc2hpbm9ub21lXCA7CivnlJ/mu4UgPiBzaG91bWV0c3VcIDsKK+S/l+eJqSA+IHpva3VidXRzdVwgOwor6ISx56GrID4gZGF0c3VyeXV1XCA7CivohIjntaEgPiBteWFrdXJha3VcIDsKK+WtpuitmCA+IGdha3VzaGlraVwgOwor5L6155WlID4gc2hpbnJ5YWt1XCA7CivlraboqqwgPiBnYWt1c2V0c3VcIDsKK+iBt+iyrCA+IHNob2t1c2VraVwgOwor6Im25LqLID4gdHN1eWFnb3RvXCA7CivnjonptKsgPiB0YW1hc2hpZ2lcIDsKK+eTpueJiCA+IGthd2FyYWJhblwgOwor5YK35Y+jID4ga2l6dWd1Y2hpXCA7Civlr4bntIQgPiBtaXRzdXlha3VcIDsKK+WtpuihkyA+IGdha3VqdXRzdVwgOwor6LuS5LiLID4gbm9raXNoaXRhXCA7Civou4rku6MgPiBrdXJ1bWFkYWlcIDsKK+WAn+aWmSA+IHNoYWt1cnlvdVwgOwor6LOH6LOqID4gc2hpc2hpdHN1XCA7CivkurrpgZQgPiBoaXRvdGFjaGlcIDsKK+WAmeaWhyA+IHNvdXJvdWJ1blwgOwor5a+655S3ID4gdGVyYW90b2tvXCA7CivmpbXljJcgPiBreW9rdWhva3VcIDsKK+iEseeNhCA+IGRhdHN1Z29rdVwgOwor55S65pa5ID4gbWFjaGlrYXRhXCA7Civnl5vliIcgPiB0c3V1c2V0c3VcIDsKK+mrmOWdjyA+IHRha2F0c3VraVwgOwor6LK46LODID4ga2FzaGljaGluXCA7CivlgInmlbcgPiBrdXJhc2hpa2lcIDsKK+S5numjnyA+IGtvdHN1amlraVwgOwor5Ly457iuID4gc2hpbnNodWt1XCA7Civkurros6ogPiBoaXRvamljaGlcIDsKK+acnemjnyA+IGNob3VzaG9rdVwgOwor55a15Y+jID4ga2l6dWd1Y2hpXCA7Civls7vliKUgPiBzaHVuYmV0c3VcIDsKK+WxiuabuCA+IHRvZG9rZXNob1wgOwor5a6i562LID4ga3lha3VzdWppXCA7CivmnI3po74gPiBmdWt1c2hva3VcIDsKK+WCkeWHuiA+IGtlc3NodXRzdVwgOwor5LyR6IG3ID4ga3l1dXNob2t1XCA7CivnlLLmiYAgPiBrYW5kb2tvcm9cIDsKK+S6jOmBkyA+IGZ1dGFtaWNoaVwgOwor6Ii55Li7ID4gZnVuYW51c2hpXCA7Civpo5/pgJogPiBzaG9rdXRzdXVcIDsKK+WuoueoriA+IGt5YWt1ZGFuZVwgOwor6LOK6JmQID4gem9rdWd5YWt1XCA7CivkubPpiaIgPiBueXV1YmFjaGlcIDsKK+aciOmhjSA+IGdldHN1Z2FrdVwgOwor5pyI6aCDID4gdHN1a2lnb3JvXCA7CivkvZznlLcgPiBzYWt1b3Rva29cIDsKK+eUt+W9uSA+IG90b2tveWFrdVwgOwor5LiK6bayID4gam91Yml0YWtpXCA7CivohZXmnpUgPiB1ZGVtYWt1cmFcIDsKK+i1pOeGsSA+IHNla2luZXRzdVwgOwor6IiM5YWIID4gc2hpdGFzYWtpXCA7CivohbnmjIEgPiBoYXJhbW9jaGlcIDsKK+ePjeiqrCA+IGNoaW5zZXRzdVwgOwor5LuY6JC9ID4gdHN1a2VvY2hpXCA7CivohbDmjpsgPiBrb3NoaWtha2VcIDsKK+S5hemXiiA+IGt5dXVrYXRzdVwgOwor5a+G54yfID4gbWl0c3VyeW91XCA7CivnlLPlubQgPiBzYXJ1ZG9zaGlcIDsKK+adkOizqiA+IHphaXNoaXRzdVwgOwor5p2+6J2JID4gbWF0c3V6ZW1pXCA7CivkuqzooaggPiBreW91b21vdGVcIDsKK+iEmuazqCA+IGt5YWt1Y2h1dVwgOwor5qKF5pqmID4gdW1lZ295b21pXCA7CivkvZzniakgPiBzYWt1bW90c3VcIDsKK+iznue9sCA+IHNob3ViYXRzdVwgOwor5a2Q576KID4ga29oaXRzdWppXCA7CivlrqTnlLogPiBtdXJvbWFjaGlcIDsKK+Wwj+absiA+IHNob3VreW9rdVwgOwor5qSc5Ye6ID4ga2Vuc2h1dHN1XCA7Civkv4rmipwgPiBzaHVuYmF0c3VcIDsKK+Wvhua8gSA+IG1pdHN1cnlvdVwgOwor6IKJ562GID4gbmlrdWhpdHN1XCA7CivohbDlvLEgPiBrb3NoaXlvd2FcIDsKK+iDhueOiSA+IGtpbW90dGFtYVwgOwor5p2+6Iy4ID4gbWF0c3V0YWtlXCA7CivmoZzmoYMgPiBzYWt1cmFuYm9cIDsKK+Wvgua7hSA+IGpha3VtZXRzdVwgOwor5pys6LOqID4gaG9uc2hpdHN1XCA7Civku5TnvoogPiBrb2hpdHN1amlcIDsKK+eUo+WupCA+IHNhbnNoaXRzdVwgOwor6IWw5biDID4ga29zaGludW5vXCA7CivohbDlt7sgPiBrb3NoaW1ha2lcIDsKK+S9g+eFriA+IHRzdWt1ZGFuaVwgOwor5L615o6gID4gc2hpbnJ5YWt1XCA7CivmoYHmqYsgPiBrZXRhYmFzaGlcIDsKK+actOiopSA+IGJva3V0b3RzdVwgOwor6aOf6JmrID4gc2hva3VjaHV1XCA7Civmnb7ohIIgPiBtYXRzdXlhbmlcIDsKK+S4g+mboyA+IHNoaWNoaW5hblwgOwor5L2O5rm/ID4gdGVpc2hpdHN1XCA7CivnlLflnYIgPiBvdG9rb3pha2FcIDsKK+Wuv+aziiA+IHNodWt1aGFrdVwgOwor5Lyv54i1ID4gaGFrdXNoYWt1XCA7CivmopPlvJMgPiBhenVzYXl1bWlcIDsKK+mkheiCjCA+IG1vY2hpaGFkYVwgOwor5bGF5a6kID4ga3lvc2hpdHN1XCA7CivmnKjoqKUgPiBib2t1dG90c3VcIDsKK+mhjemamyA+IGhpdGFpZ2l3YVwgOwor55WZ5YilID4gcnl1dWJldHN1XCA7Civkv6Hlrp8gPiBzaGluaml0c3VcIDsKK+i0iOeJqSA+IG9rdXJpbW9ub1wgOwor6aeQ5pelID4gY2h1dW5pY2hpXCA7Civmn7/muIsgPiBrYWtpc2hpYnVcIDsKK+S4i+mHkSA+IHNoaXRhZ2FuZVwgOwor5Lit6LaKID4gY2h1dWdvc2hpXCA7CivlqpLos6ogPiBiYWlzaGl0c3VcIDsKK+S5vuiNiSA+IGhvc2hpZ3VzYVwgOwor55C054iqID4ga290b2R6dW1lXCA7CivohbDlnqMgPiBrb3NoaWdha2lcIDsKK+S/guWumCA+IGtha2FyaWthblwgOwor6ISI5pCPID4gbXlha3VoYWt1XCA7CivnjonomasgPiB0YW1hbXVzaGlcIDsKK+eUn+WUviA+IG5hbWF0c3ViYVwgOwor6aOf6IKJID4gc2hva3VuaWt1XCA7Civmnb7nrKAgPiBtYXRzdWthc2FcIDsKK+iEiOaLjSA+IG15YWt1aGFrdVwgOwor5LiD6YGTID4gc2hpY2hpZG91XCA7CivnlLPlhaUgPiBtb3VzaGlpcmVcIDsKK+WuouanmCA+IGt5YWt1c2FtYVwgOwor5Lmz6ImyID4gbnl1dXNob2t1XCA7Civmm7Loqr8gPiBreW9rdWNob3VcIDsKK+WAn+S4uyA+IGthcmludXNoaVwgOwor5Lm+6IKJID4gaG9zaGluaWt1XCA7Civlrr/mlpkgPiBzaHVrdXJ5b3VcIDsKK+Wun+alrSA+IGppdHN1Z3lvdVwgOwor5a6/5pW1ID4gc2h1a3V0ZWtpXCA7CivkuIPovKogPiBzaGljaGlyaW5cIDsKK+eUo+WHuiA+IHNhbnNodXRzdVwgOwor5L2V5pelID4gbmFuJyduaWNoaVwgOwor6LOq54K5ID4gc2hpdHN1dGVuXCA7CivohLPlrqQgPiBub3VzaGl0c3VcIDsKK+WxseS8jyA+IHlhbWFidXNoaVwgOwor5a6f5qCqID4gaml0c3VrYWJ1XCA7CivkvrXlpaogPiBzaGluZGF0c3VcIDsKK+eUuuS4rSA+IG1hY2hpbmFrYVwgOwor55S65LimID4gbWFjaGluYW1pXCA7CivkuIros6ogPiBqb3VzaGl0c3VcIDsKK+S4i+iyvCA+IHNoaXRhYmFyaVwgOwor6aOf57SFID4gc2hva3ViZW5pXCA7CivkvqDlrqIgPiBreW91a3lha3VcIDsKK+abtOihoyA+IGtvcm9tb2dhZVwgOwor6aOf57OnID4gc2hva3VyeW91XCA7CivkuK3ooaggPiBuYWthb21vdGVcIDsKK+Wwj+WnkSA+IGtvanV1dG9tZVwgOwor5qCD5pyoID4gdG9jaGlub2tpXCA7CivohILmgKcgPiBhYnVyYXNob3VcIDsKK+WAieS4uyA+IGt1cmFudXNoaVwgOwor5LiD6LOiID4gc2hpY2hpa2VuXCA7CivlsLvlj5YgPiBzaGlyaXRvcmlcIDsKK+agvOW8jyA+IGtha3VzaGlraVwgOwor5pi86bO2ID4gaGlydXRvbmJpXCA7Civkuq7nm7QgPiByeW91Y2hva3VcIDsKK+aaoumBlCA+IGNob3V0YXRzdVwgOwor6IWw5YWDID4ga29zaGltb3RvXCA7CivohIflt64gPiB3YWtpemFzaGlcIDsKK+adieeuuCA+IHN1Z2liYXNoaVwgOwor5LuY54S8ID4gdHN1a2V5YWtpXCA7CivlrabmrpYgPiBnYWt1c2hva3VcIDsKK+agquW8jyA+IGthYnVzaGlraVwgOwor5p+P5qeZID4gYnlha3VzaGluXCA7Civni6zphYwgPiBkb2t1c2hha3VcIDsKK+WvheW5tCA+IHRvcmFkb3NoaVwgOwor6LOq5qipID4gc2hpY2hpa2VuXCA7CivlsI/lkoQgPiBrb2JhbmFzaGlcIDsKK+S4uOiFsCA+IG1hcnVnb3NoaVwgOwor5pi86aOvID4gaGlydW1lc2hpXCA7CivkvJDmnKggPiBiYXRzdWJva3VcIDsKK+S/iuWCkSA+IHNodW5rZXRzdVwgOwor6IG35q20ID4gc2hva3VyZWtpXCA7CivkuYvnuZ4gPiBzaGluJydueXV1XCA7CivmnrbmqYsgPiBrYWtlaGFzaGlcIDsKK+afj+acqCA+IGthc2hpd2FnaVwgOwor5Luu5qmLID4ga2FyaWJhc2hpXCA7CivosYbnspIgPiBtYW1ldHN1YnVcIDsKK+S8keaXpSA+IGt5dXVqaXRzdVwgOwor5Lit6IWwID4gY2h1dWdvc2hpXCA7CivkuIrolqwgPiB1d2FndXN1cmlcIDsKK+WvhuWupCA+IG1pc3NoaXRzdVwgOwor546J56ugID4gZ3lva3VzaG91XCA7CivkvrXlhaUgPiBzaGluJydueXV1XCA7Civlrr/lsIYgPiBzaHVrdXNob3VcIDsKK+WwhuWNkiA+IHNob3Vzb3RzdVwgOwor5Lih6IiMID4gcnlvdXpldHN1XCA7Civogbfmpa0gPiBzaG9rdWd5b3VcIDsKK+WwjuWHuiA+IGRvdXNodXRzdVwgOwor5a6/5a2mID4gc2h1a3VnYWt1XCA7CivlsI/lhoogPiBzaG91c2F0c3VcIDsKK+S4oeiEmiA+IHJ5b3VreWFrdVwgOwor6ISx5Ye6ID4gZGFzc2h1dHN1XCA7CivlrqLluK0gPiBreWFrdXNla2lcIDsKK+S4i+iNiSA+IHNoaXRha3VzYVwgOwor5bCE5Ye6ID4gc2hhc2h1dHN1XCA7CivmmqbooZMgPiByZWtpanV0c3VcIDsKK+actOebtCA+IGJva3VjaG9rdVwgOwor6LWk5ZyfID4gYWthdHN1Y2hpXCA7CivohIXllp0gPiBreW91a2F0c3VcIDsKK+S4ree1tiA+IGNodXV6ZXRzdVwgOwor5LiL6IW5ID4gc2hpdGFiYXJhXCA7CivohLHkv5cgPiBkYXRzdXpva3VcIDsKK+afj+aJiyA+IGthc2hpd2FkZVwgOwor5Lm+54mpID4gaG9zaGltb25vXCA7Civlrp/lraYgPiBqaXRzdWdha3VcIDsKK+ahn+S/tSA+IHNhbmRhd2FyYVwgOwor54yf6ImyID4gcnlvdXNob2t1XCA7CivkuIDohIggPiBpY2hpbXlha3VcIDsKK+i1pOWPoyA+IHNla2lndWNoaVwgOwor5Lit56uLID4gY2h1dXJpdHN1XCA7CivogbfmjowgPiBzaG9rdXNob3VcIDsKK+WupOWkliA+IHNoaXRzdWdhaVwgOwor5a+S5Y21ID4ga2FudGFtYWdvXCA7Civls7bjgIUgPiBzaGltYWppbWFcIDsKK+izquaEnyA+IHNoaXRzdWthblwgOwor5qC85YilID4ga2FrdWJldHN1XCA7CivmoLjlipsgPiBrYWt1cnlva3VcIDsKK+S4oeerryA+IHJ5b3VoYXNoaVwgOwor5Lih56uLID4gcnlvdXJpdHN1XCA7CivogJDmub8gPiB0YWlzaGl0c3VcIDsKK+S4i+e0kCA+IHNoaXRhaGltb1wgOwor5LuK5pelID4ga29uJyduaWNoaVwgOwor5pep6aOvID4gaGF5YW1lc2hpXCA7CivosrjmlrkgPiBrYXNoaWthdGFcIDsKK+S5vua5vyA+IGthbnNoaXRzdVwgOwor6aGN57iBID4gZ2FrdWJ1Y2hpXCA7CivkuIDnspIgPiBoaXRvdHN1YnVcIDsKK+Wroea1gSA+IGNoYWt1cnl1dVwgOwor5puy55uuID4ga3lva3Vtb2t1XCA7Civpo5/mrLIgPiBzaG9rdXlva3VcIDsKK+aftOWeoyA+IHNoaWJhZ2FraVwgOwor5Lqu5pyIID4gcnlvdWdldHN1XCA7CivkuIvnqb8gPiBzaGl0YWJha2lcIDsKK+S4gOevgCA+IGhpdG9mdXNoaVwgOwor6Z2p6Z20ID4ga2F3YWd1dHN1XCA7CivkuK3nlaUgPiBjaHV1cnlha3VcIDsKK+eKtuiiiyA+IGpvdWJ1a3Vyb1wgOwor54mp6YePID4gYnV0c3VyeW91XCA7CivmnKvmtYEgPiBtYXRzdXJ5dXVcIDsKK+agquS4uyA+IGthYnVudXNoaVwgOwor5LiL55+zID4gc2hpdGFpc2hpXCA7Civpo6/mmYIgPiBtZXNoaWRva2lcIDsKK+S9nOS7mCA+IHNha3VkenVrZVwgOwor5LiK5568ID4gdXdhbWFidXRhXCA7CivkvK/lj5QgPiBoYWt1c2h1a3VcIDsKK+eIqumdqSA+IHRzdW1ha2F3YVwgOwor5a6k5YaFID4gc2hpdHN1bmFpXCA7Civlrr/kuLsgPiB5YWRvbnVzaGlcIDsKK+S5hea/tiA+IGt5dXVrYXRzdVwgOwor5LqM5pyIID4gZnV0YXRzdWtpXCA7Civml6XpjLIgPiBuaWNoaXJva3VcIDsKK+S4gOeepSA+IGljaGliZXRzdVwgOwor5Luk5a6kID4gcmVpc2hpdHN1XCA7CivkvZPkuK0gPiBrYXJhZGFqdXVcIDsKK+S7suWlvSA+IG5ha2F5b3NoaVwgOwor6aOf5paZID4gc2hva3VyeW91XCA7Civoqr/pq6ogPiBjaG91aGF0c3VcIDsKK+eJqeizqiA+IGJ1c3NoaXRzdVwgOwor5pep6YGTID4gaGF5YW1pY2hpXCA7CivmlrDpm6ogPiBzaGluc2V0c3VcIDsKK+eJh+mBkyA+IGthdGFtaWNoaVwgOwor54m56KitID4gdG9rdXNldHN1XCA7Civku4/lraYgPiBidXRzdWdha3VcIDsKK+mcsumcnCA+IHRzdXl1amltb1wgOwor5pyt5p2fID4gc2F0c3V0YWJhXCA7CivlpI/ps6UgPiBuYXRzdWRvcmlcIDsKK+izquWVjyA+IHNoaXRzdW1vblwgOwor54us56uLID4gZG9rdXJpdHN1XCA7CivmnIjmrKEgPiB0c3VraW5hbWlcIDsKK+isrOiqrCA+IGJ5dXVzZXRzdVwgOwor5a2m5Y2SID4gZ2FrdXNvdHN1XCA7Civmm7LmtYEgPiBreW9rdXJ5dXVcIDsKK+mjn+aFviA+IHNob2t1eW9rdVwgOwor5LiA54mpID4gaWNoaW1vdHN1XCA7CivlpbTovKkgPiB5YXRzdWJhcmFcIDsKK+WtpuWKmyA+IGdha3VyeW9rdVwgOwor5Lqu5a+fID4gcnlvdXNhdHN1XCA7CivkuK3mrKEgPiBuYWthdHN1Z2lcIDsKK+izquWIuCA+IHNoaWNoaWtlblwgOwor5a2k5YWQID4gbWluYXNoaWdvXCA7Civml6forZggPiBreXV1c2hpa2lcIDsKK+S6uuWmuyA+IGhpdG9kenVtYVwgOwor5paw6YeIID4gc2hpbnNoYWt1XCA7Civml6Xoq74gPiBuaWNoaWRha3VcIDsKK+aXp+iqrCA+IGt5dXVzZXRzdVwgOwor6IKh5LiLID4gbWF0YXNoaXRhXCA7Civnj43lrqIgPiBjaGlua3lha3VcIDsKK+WklumdoiA+IHNvdG9kenVyYVwgOwor5pil6ImyID4gc2h1bnNob2t1XCA7Civnv4zmnIggPiB5b2t1Z2V0c3VcIDsKK+iBtOWKmyA+IGNob3VyeW9rdVwgOwor5Lqs5aWzID4ga3lvdW9uJyduYVwgOwor5Liy5p+/ID4ga3VzaGlnYWtpXCA7CivkuZ3mipggPiBreXV1c2V0c3VcIDsKK+e/jOaXpSA+IHlva3VqaXRzdVwgOwor5paf6YWMID4gc2hpbnNoYWt1XCA7CivkuKHmpbUgPiByeW91a3lva3VcIDsKK+S7j+WQjSA+IGJ1dHN1bXlvdVwgOwor54m56ImyID4gdG9rdXNob2t1XCA7CivkuqHlpLEgPiBib3VzaGl0c3VcIDsKK+mjn+WuoiA+IHNob2treWFrdVwgOwor54i26KaqID4gY2hpY2hpb3lhXCA7Civku67kvY8gPiBrYXJpenVtYWlcIDsKK+S6huWvnyA+IHJ5b3VzYXRzdVwgOwor6Zuq6Z20ID4geXVraWd1dHN1XCA7Civnj77lh7ogPiBnZW5zaHV0c3VcIDsKK+S7j+WKmyA+IGJ1dHN1cmlraVwgOwor6Kq/6YGUID4gY2hvdXRhdHN1XCA7CivkuIvmp5ggPiBzaGltb3phbWFcIDsKK+e5sOi2iiA+IGt1cmlrb3NoaVwgOwor54mp6IWwID4gbW9ub2dvc2hpXCA7CivkuInmpI8gPiBtaXRzdW1hdGFcIDsKK+S4oeaXpSA+IHJ5b3VqaXRzdVwgOwor5p2+5Y6fID4gbWF0c3ViYXJhXCA7Civos4PlgJ8gPiBjaGluc2hha3VcIDsKK+eGn+mjnyA+IGp1a3VzaG9rdVwgOwor5paw6KqsID4gc2hpbnNldHN1XCA7Civku5jkurogPiB0c3VrZWJpdG9cIDsKK+aWsOiosyA+IHNoaW4nJ3lha3VcIDsKK+aWsOiorSA+IHNoaW5zZXRzdVwgOwor546J5bCGID4gZ3lva3VzaG91XCA7CivmnIjlvbEgPiB0c3VraWthZ2VcIDsKK+aciOW9oiA+IHRzdWtpZ2F0YVwgOwor5LiD5pucID4gc2hpY2hpeW91XCA7CivkuIDmnIggPiBoaXRvdHN1a2lcIDsKK+WkqeizqiA+IHRlbnNoaXRzdVwgOwor5LiL5pW3ID4gc2hpdGFqaWtpXCA7CivkuIPmmJ8gPiBzaGljaGlzZWlcIDsKK+aYn+epuiA+IGhvc2hpem9yYVwgOwor54m5562GID4gdG9rdWhpdHN1XCA7CivkuIDml6UgPiB0c3VpdGFjaGlcIDsKK+S6uuS8nSA+IGhpdG9kenV0ZVwgOwor54uQ54GrID4ga2l0c3VuZWJpXCA7CivniIboo4IgPiBiYWt1cmV0c3VcIDsKK+eJueeriyA+IHRva3VyaXRzdVwgOwor5Lq65LuYID4gaGl0b2R6dWtpXCA7CivpnZLokI0gPiBhb3VraWt1c2FcIDsKK+WkseiogCA+IHNoaXRzdWdlblwgOwor6Zuq6YGTID4geXVraW1pY2hpXCA7Civpm5HpjLIgPiB6YXRzdXJva3VcIDsKK+Wls+iFuSA+IG9uJyduYWJhcmFcIDsKK+mjn+WNkyA+IHNob2t1dGFrdVwgOwor54ax6YePID4gbmV0c3VyeW91XCA7Civpm6rovrEgPiBzZXRzdWpva3VcIDsKK+aWsOiWrCA+IHNoaW4nJ3lha3VcIDsKK+mgreagqiA+IGF0YW1ha2FidVwgOwor5aSx6KGAID4gc2hpa2tldHN1XCA7CivmmqbmnIggPiByZWtpZ2V0c3VcIDsKK+WkieizqiA+IGhlbnNoaXRzdVwgOwor6aOf5Ye6ID4gaGFtaWRhc2hpXCA7CivlpJzoqbEgPiB5b2JhbmFzaGlcIDsKK+S4gOaKuSA+IGljaGltYXRzdVwgOwor5aSp6KKLID4gdGVuYnVrdXJvXCA7CivpnbTntJAgPiBrdXRzdWhpbW9cIDsKK+aapuaXpSA+IHJla2lqaXRzdVwgOwor6Kmz6L+wID4gc2hvdWp1dHN1XCA7Civpo5/lgrcgPiBzaG9rdXNob3VcIDsKK+eJueeZuiA+IHRva3VoYXRzdVwgOwor6Z2056+mID4ga3V0c3ViZXJhXCA7CivkuIvlvbkgPiBzaGl0YXlha3VcIDsKK+S4oeWyuCA+IHJ5b3VnaXNoaVwgOwor5puy5a2mID4ga3lva3VnYWt1XCA7Civnhp/pgZQgPiBqdWt1dGF0c3VcIDsKK+mdtOeuhiA+IGt1dHN1YmVyYVwgOwor5LiR5bm0ID4gdXNoaWRvc2hpXCA7CivpnLLojYkgPiB0c3V5dWt1c2FcIDsKK+iplemHiCA+IGh5b3VzaGFrdVwgOwor5LiA5b6LID4gaWNoaXJpdHN1XCA7CivniannmYIgPiBidXRzdXJ5b3VcIDsKK+miqOWPoyA+IGthemFndWNoaVwgOwor5aSP6J2JID4gbmF0c3V6ZW1pXCA7CivpnJ7ojYkgPiBrYXN1bWlzb3VcIDsKK+eJp+eVnCA+IGJva3VjaGlrdVwgOwor6Kq/6ImyID4gY2hvdXNob2t1XCA7CivnhLzppIUgPiB5YWtpbW9jaGlcIDsKK+acq+WDmiA+IGJhdHN1cnlvdVwgOwor6Ki76YeIID4gY2h1dXNoYWt1XCA7CivoqbPoqqwgPiBzaG91c2V0c3VcIDsKK+aWsOe3kSA+IHNoaW5yeW9rdVwgOwor5aSx6ISaID4gc2hpa2t5YWt1XCA7CivlpLHogbcgPiBzaGlzc2hva3VcIDsKK+aWsOe0hCA+IHNoaW4nJ3lha3VcIDsKK+Wkj+iPiiA+IG5hdHN1Z2lrdVwgOwor57ie6JuHID4gc2hpbWFoZWJpXCA7CivkuK3lk7IgPiBjaHV1dGV0c3VcIDsKK+ios+i/sCA+IHlha3VqdXRzdVwgOwor5paw56+JID4gc2hpbmNoaWt1XCA7CivlpI/ojYkgPiBuYXRzdWd1c2FcIDsKK+eOieS4siA+IHRhbWFndXNoaVwgOwor5Lit5Y+jID4gbmFrYWd1Y2hpXCA7CivlpbPnmZYgPiBvbicnbmFndXNlXCA7Civlp6XmoZwgPiB1YmF6YWt1cmFcIDsKK+S4reWNkiA+IGNodXVzb3RzdVwgOwor5LiL5Z2CID4gc2hpbW9zYWthXCA7CivpoqjkuIsgPiBrYXphc2hpbW9cIDsKK+mcnue2siA+IGthc3VtaWFtaVwgOwor5Lih5Y+jID4gcnlvdWd1Y2hpXCA7CivniKrnmq4gPiB0c3VtYWthd2FcIDsKK+eIhueruSA+IGJha3VjaGlrdVwgOwor5pel54usID4gbmljaGlkb2t1XCA7Civml6fniakgPiBreXV1YnV0c3VcIDsKK+eNo+WBjyA+IGtlbW9ub2hlblwgOwor6Zyy56iLID4gdHN1eXVob2RvXCA7Civoqr/nr4AgPiBjaG91c2V0c3VcIDsKK+mgreWtlyA+IGthc2hpcmFqaVwgOwor542E5Y2SID4gZ29rdXNvdHN1XCA7Civntabpo58gPiBreXV1c2hva3VcIDsKK+S4lOWPiCA+IGthdHN1bWF0YVwgOwor5pyI5LimID4gdHN1a2luYW1pXCA7CivnianmtYEgPiBidXRzdXJ5dXVcIDsKK+S4oeWHuCA+IHJ5b3V0b3RzdVwgOwor6Zmz6L+wID4gY2hpbmp1dHN1XCA7CivmlrDnnYAgPiBzaGluY2hha3VcIDsKK+Wls+eJqSA+IG9uJyduYW1vbm9cIDsKK+S4jeWNsCA+IGZ1amlydXNoaVwgOwor5pu45LuYID4ga2FraXRzdWtlXCA7CivoqbDojYkgPiB0c3VtZWt1c2FcIDsKK+S4reS9jSA+IGNodXVndXJhaVwgOwor54aK6JyCID4ga3VtYWJhY2hpXCA7CivmlZnogbcgPiBreW91c2hva3VcIDsKK+WkseekvCA+IHNoaXRzdXJlaVwgOwor5LiD5Y6YID4gc2hpY2hpcmluXCA7CivnianmrLIgPiBidXRzdXlva3VcIDsKK+S4gOWPoyA+IGhpdG9rdWNoaVwgOwor5pOC6YmiID4gc3VyaWJhY2hpXCA7CivniIbnmbogPiBiYWt1aGF0c3VcIDsKK+aYqOaXpSA+IHNha3VqaXRzdVwgOwor57iu57SEID4gc2h1a3V5YWt1XCA7CivlpLHnnYAgPiBzaGl0Y2hha3VcIDsKK+S4gOWIpSA+IGljaGliZXRzdVwgOwor5LiA5YiXID4gaWNoaXJldHN1XCA7CivkuIvlgbQgPiBzaGl0YWdhd2FcIDsKK+mbgOiJsiA+IHN1enVtZWlyb1wgOwor5LiA5YSyID4gaGl0b21vdWtlXCA7Civml4/mu4UgPiB6b2t1bWV0c3VcIDsKK+S4i+S9nCA+IHNoaXRhc2FrdVwgOwor6Kq/55WlID4gY2hvdXJ5YWt1XCA7CivmmJTml6UgPiBzZWtpaml0c3VcIDsKK+aWreeGsSA+IGRhbicnbmV0c3VcIDsKK+aYjuaXpSA+IG15b3VuaWNoaVwgOwor5LiL5LiLID4gc2hpbW9qaW1vXCA7Civmlbfnn7MgPiBzaGlraWlzaGlcIDsKK+eJueaSriA+IHRva3VzYXRzdVwgOwor6Kaq6ZayID4gc2hpbicnZXRzdVwgOwor6aGY5LqLID4gbmVnYWlnb3RvXCA7CivpoLvlh7ogPiBoaW5zaHV0c3VcIDsKK+e2suiiiyA+IGFtaWJ1a3Vyb1wgOwor5paZ546HID4gcnlvdXJpdHN1XCA7Civop5LpgJAgPiBrYWt1Y2hpa3VcIDsKK+S4g+S4iSA+IHNoaWNoaXNhblwgOwor57Sw6Z2iID4gaG9zb29tb3RlXCA7Civpm4bntZAgPiBzaHV1a2V0c3VcIDsKK+ilv+miqCA+IG5pc2hpa2F6ZVwgOwor5aSP55epID4gbmF0c3V5YXNlXCA7CivnianmjIcgPiBtb25vc2FzaGlcIDsKK+aYn+W9sSA+IGhvc2hpa2FnZVwgOwor54us5YqbID4gZG9rdXJ5b2t1XCA7Civop6boqLogPiBzaG9rdXNoaW5cIDsKK+WjuueavyA+IHRzdWJvemFyYVwgOwor572q5Lq6ID4gdHN1bWliaXRvXCA7Civnianmhb4gPiBidXRzdXlva3VcIDsKK+aVt+eJqSA+IHNoaWtpbW9ub1wgOwor6Zuq55S3ID4geXVraW90b2tvXCA7CivlpI/niakgPiBuYXRzdW1vbm9cIDsKK+e1seioiCA+IGJhcmF0c3VraVwgOwor5aWz5pa5ID4gb24nJ25hZ2F0YVwgOwor5paw5qmLID4gc2hpbmJhc2hpXCA7CivnhrHnl4UgPiBuZXRzdWJ5b3VcIDsKK+mbu+eGsSA+IGRlbicnbmV0c3VcIDsKK+aYn+WxkSA+IGhvc2hpa3V6dVwgOwor6ZqU57W2ID4ga2FrdXpldHN1XCA7Civni6zku48gPiBkb2t1ZnV0c3VcIDsKK+Wmu+WupCA+IHNhaXNoaXRzdVwgOwor54mp5bmyID4gbW9ub2hvc2hpXCA7CivntLDpgZMgPiBob3NvbWljaGlcIDsKK+ezp+mjnyA+IHJ5b3VzaG9rdVwgOwor54mp5beuID4gbW9ub3Nhc2hpXCA7CivnhrHnkIMgPiBuZXRzdWt5dXVcIDsKK+e4nueJqSA+IHNoaW1hbW9ub1wgOwor5paw5p6VID4gbmlpbWFrdXJhXCA7CivntabooYAgPiBreXV1a2V0c3VcIDsKK+aWsOacrSA+IHNoaW5zYXRzdVwgOwor5paw5pyIID4gc2hpbmdldHN1XCA7CivmlrDmm7IgPiBzaGlua3lva3VcIDsKK+aXp+W8jyA+IGt5dXVzaGlraVwgOwor6Kmw54mpID4gdHN1bWVtb25vXCA7Civng4/osp0gPiBrYXJhc3VnYWlcIDsKK+mdtOW6lSA+IGt1dHN1em9rb1wgOwor5pen5bm0ID4gZnVydXRvc2hpXCA7CivmmJ/lnosgPiBob3NoaWdhdGFcIDsKK+mVt+mrqiA+IGNob3VoYXRzdVwgOwor5aWz5b2iID4gb24nJ25hZ2F0YVwgOwor5aSx5pybID4gc2hpdHN1Ym91XCA7CivnhLzntZAgPiBzaG91a2V0c3VcIDsKK+Whtee0mSA+IGNoaXJpZ2FtaVwgOwor5aSx5piOID4gc2hpdHN1bWVpXCA7CivntJnos6ogPiBzaGlzaGl0c3VcIDsKK+mbquaykyA+IHl1a2lndXRzdVwgOwor5paH5pyIID4gZnVtaWR6dWtpXCA7Civngq3os6ogPiB0YW5zaGl0c3VcIDsKK+iqheauuiA+IGNodXVzYXRzdVwgOwor5aSn5piUID4gb29tdWthc2hpXCA7CivplbfpnbQgPiBuYWdhZ3V0c3VcIDsKK+ezuOi7iiA+IGl0b2d1cnVtYVwgOwor5aSc5pmSID4geW96YXJhc2hpXCA7CivlpI/mnI0gPiBuYXRzdWZ1a3VcIDsKK+mdtOWiqCA+IGt1dHN1enVtaVwgOwor6KO46aasID4gaGFkYWthdW1hXCA7CivlprnliIYgPiBpbW91dG9idW5cIDsKK+aXpeWiqCA+IG5pY2hpYm9rdVwgOwor5paw5byPID4gc2hpbnNoaWtpXCA7CivlpI/mmYIgPiBuYXRzdWRva2lcIDsKK+eCuOijgiA+IHNha3VyZXRzdVwgOwor54m55YilID4gdG9rdWJldHN1XCA7CivopIfpm5EgPiBmdWt1emF0c3VcIDsKK+mdtOWeiyA+IGt1dHN1Z2F0YVwgOwor57KS6aOfID4gcnl1dXNob2t1XCA7CivntZDohpwgPiBrZXRzdW1ha3VcIDsKK+e4nuafhCA+IHNoaW1hZ2FyYVwgOwor5aSx5oGLID4gc2hpdHN1cmVuXCA7CivlpLHlv7UgPiBzaGl0c3VuZW5cIDsKK+mbqOabhyA+IGFtYWd1bW9yaVwgOwor6KmV5rG6ID4gaHlvdWtldHN1XCA7Civoqr/lvosgPiBjaG91cml0c3VcIDsKK+Wls+WdgiA+IG9uJyduYXpha2FcIDsKK+e2mueZuiA+IHpva3VoYXRzdVwgOwor6ZuR5qCqID4gemF0c3VrYWJ1XCA7Civoq5Llr58gPiByeW91c2F0c3VcIDsKK+eJm+WIuiA+IGd5dXVzYXNoaVwgOwor5Z+36JGXID4gc2h1dWNoYWt1XCA7Civml6nlj6MgPiBoYXlha3VjaGlcIDsKK+ezluizqiA+IHRvdXNoaXRzdVwgOwor54mH5Y+jID4ga2F0YWt1Y2hpXCA7CivntLDohbAgPiBob3NvZ29zaGlcIDsKK+mbhuacrSA+IHNodXVzYXRzdVwgOwor5pel5Ye6ID4gbmlzc2h1dHN1XCA7CivntYLntZAgPiBzaHV1a2V0c3VcIDsKK+WdqumHjyA+IHRzdWJvcnlvdVwgOwor5aW05YenID4geWFra29kYWtvXCA7CivopqrnrYYgPiBzaGlucGl0c3VcIDsKK+e2v+ayuSA+IHdhdGFhYnVyYVwgOwor54S254S2ID4gc2hpa2FqaWthXCA7CivnhKbnhrEgPiBzaG91bmV0c3VcIDsKK+Wkj+WxsSA+IG5hdHN1eWFtYVwgOwor54iq5YiHID4gdHN1bWVraXJpXCA7CivmlL/miYAgPiBtYW5kb2tvcm9cIDsKK+aVmeW8jyA+IGt5b3VzaGlraVwgOwor54iq5YWIID4gdHN1bWFzYWtpXCA7CivloanmvKwgPiBzaGlvZHp1a2VcIDsKK+e4ruWwjyA+IHNodWt1c2hvdVwgOwor5LiL44CFID4gc2hpbW9qaW1vXCA7CivlpZTlh7ogPiBob25zaHV0c3VcIDsKK+malOaciCA+IGtha3VnZXRzdVwgOwor5pKD55m6ID4gZ2VraWhhdHN1XCA7Civln7fnrYYgPiBzaGlwcGl0c3VcIDsKK+malOaXpSA+IGtha3VqaXRzdVwgOwor5paw5YWlID4gc2hpbicnbnl1dVwgOwor5pal5YqbID4gc2VraXJ5b2t1XCA7CivntYLnmbogPiBzaHV1aGF0c3VcIDsKK+WkseWRvSA+IHNoaXRzdW1laVwgOwor5Z2C6YGTID4gc2FrYW1pY2hpXCA7CivlpLHlkI0gPiBzaGl0c3VtZWlcIDsKK+aSsua7hSA+IGJva3VtZXRzdVwgOwor6Kmz5a+fID4gc2hvdXNhdHN1XCA7Civpm6rlpbMgPiB5dWtpb24nJ25hXCA7CivoqbPlr4YgPiBzaG91bWl0c3VcIDsKK+mbkeWtpiA+IHphdHN1Z2FrdVwgOwor6Ziy5rm/ID4gYm91c2hpdHN1XCA7CivlnYfos6ogPiBraW5zaGl0c3VcIDsKK+Wft+edgCA+IHNodXVjaGFrdVwgOwor54OP55OcID4ga2FyYXN1dXJpXCA7CivmkrLmrrogPiBib2t1c2F0c3VcIDsKK+aRmOeZuiA+IHRla2loYXRzdVwgOwor5aSP5ZCRID4gbmF0c3VtdWtpXCA7CivmjajpiaIgPiBzdXRlYmFjaGlcIDsKK+WcsOizqiA+IGNoaXNoaXRzdVwgOwor5aCF54mpID4ga2F0YWJ1dHN1XCA7Civlm73piYQgPiBrb2t1dGV0c3VcIDsKK+inkuaovSA+IHRzdW5vZGFydVwgOwor5pKD5ruFID4gZ2VraW1ldHN1XCA7Civns6fnp6MgPiByeW91bWF0c3VcIDsKK+mao+WupCA+IHJpbnNoaXRzdVwgOwor6Ki65a+fID4gc2hpbnNhdHN1XCA7CivlpJbku5ggPiBzb3RvZHp1a2VcIDsKK+Wkj+S9nCA+IG5hdHN1c2FrdVwgOwor54Wn5bC6ID4gc2hvdXNoYWt1XCA7Civpm6rlhY4gPiB5dWtpdXNhZ2lcIDsKK+e1guaxuiA+IHNodXVrZXRzdVwgOwor6KWy54i1ID4gc2h1dXNoYWt1XCA7Civopobmu4UgPiBmdWt1bWV0c3VcIDsKK+WiqOWjtyA+IHN1bWl0c3Vib1wgOwor6KqF5LyQID4gY2h1dWJhdHN1XCA7CivmlL7lh7ogPiBob3VzaHV0c3VcIDsKK+e1gualtSA+IHNodXVreW9rdVwgOwor6KO457eaID4gaGFkYWthc2VuXCA7CivopobmsqEgPiBmdWt1Ym90c3VcIDsKK+eFqeWeiyA+IHVydXNhZ2F0YVwgOwor6KmU5YuFID4gc2hvdWNob2t1XCA7CivmlK/lh7ogPiBzaGlzaHV0c3VcIDsKK+e2ouWvhiA+IGNodXVtaXRzdVwgOwor57WE5puyID4ga3VtaWt5b2t1XCA7CivntYLmnKsgPiBzaHV1bWF0c3VcIDsKK+e1guabsiA+IHNodXVreW9rdVwgOwor57aZ5a6kID4ga2Vpc2hpdHN1XCA7Civlm73ooaggPiBrdW5pb21vdGVcIDsKK+e1guaXpSA+IHNodXVqaXRzdVwgOwor57eg5YiHID4gc2hpbWVraXJpXCA7CivlnJ/oibIgPiB0c3VjaGlpcm9cIDsKK+aOpee2miA+IHNldHN1em9rdVwgOwor57Gz57KSID4ga29tZXRzdWJ1XCA7Civns5/mvKwgPiBrYXN1ZHp1a2VcIDsKK+eym+eZvSA+IHNodWt1aGFrdVwgOwor6KGX6KeSID4gbWFjaGlrYWRvXCA7CivmkqvlrZAgPiBuYWRlc2hpa29cIDsKK+ezoOayuSA+IG51a2FhYnVyYVwgOwor6ZW354mpID4gY2hvdWJ1dHN1XCA7CivpmbDlj6MgPiBrYWdlZ3VjaGlcIDsKK+imquW/gyA+IG95YWdva29yb1wgOwor6KGG6KqsID4gc2h1dXNldHN1XCA7CivntbblppkgPiB6ZXRzdW15b3VcIDsKK+ezuOahnCA+IGl0b3pha3VyYVwgOwor6Zmz5YiXID4gY2hpbnJldHN1XCA7Civns7jmn7MgPiBpdG95YW5hZ2lcIDsKK+Wft+aLlyA+IHNoaXRzdXlvdVwgOwor54S85Y20ID4gc2hvdWt5YWt1XCA7Civmv4DogbcgPiBnZWtpc2hva3VcIDsKK+imquWvhiA+IHNoaW5taXRzdVwgOwor57WC5bGAID4gc2h1dWt5b2t1XCA7CivnrZLpn7MgPiB0c3V0c3VvdG9cIDsKK+e0i+aJgCA+IG1vbmRva29yb1wgOwor6KKL57ayID4gZnVrdXJvYW1pXCA7CivoqIDkvJ0gPiBrb3RvZHp1dGVcIDsKK+eBq+afsSA+IGhpYmFzaGlyYVwgOwor6Zal5pePID4gYmF0c3V6b2t1XCA7CivopLbmm7IgPiBzaHV1a3lva3VcIDsKK+inkuWPiSA+IHRzdW5vbWF0YVwgOwor5oqc6YyoID4gYmF0c3VieW91XCA7Civlm73nq4sgPiBrb2t1cml0c3VcIDsKK+a/gOeqgSA+IGdla2l0b3RzdVwgOwor6ZaA5p2+ID4ga2Fkb21hdHN1XCA7CivmipzpgZMgPiBudWtlbWljaGlcIDsKK+mVt+aciCA+IG5hZ2F0c3VraVwgOwor6KGA6IKJID4ga2V0c3VuaWt1XCA7CivntJvlpLEgPiBmdW5zaGl0c3VcIDsKK+aMr+eymyA+IHNoaW5zaHVrdVwgOwor5Zyf54miID4gdHN1Y2hpcm91XCA7Civmv4DnmbogPiBnZWtpaGF0c3VcIDsKK+exs+ayuSA+IGtvbWVhYnVyYVwgOwor562L6YGTID4gc3VqaW1pY2hpXCA7Civnr7Pnr6UgPiBoaWNoaXJpa2lcIDsKK+ihneeqgSA+IHNob3V0b3RzdVwgOwor6Kaq5YiHID4gc2hpbnNldHN1XCA7CivnsbPmq4MgPiBrb21lYml0c3VcIDsKK+ernOmqqCA+IHJ5dXVrb3RzdVwgOwor57WQ5LqGID4ga2V0c3VyeW91XCA7CivmiZjpiaIgPiB0YWt1aGF0c3VcIDsKK+mWj+W5tCA+IHVydXVkb3NoaVwgOwor562J6LOqID4gdG91c2hpdHN1XCA7CivlmLHoqJcgPiBzaG9rdXRha3VcIDsKK+evgOe0hCA+IHNldHN1eWFrdVwgOwor5r+A54OIID4gZ2VraXJldHN1XCA7Civon4fom5kgPiBoaWtpZ2FlcnVcIDsKK+icgOm7jSA+IG1vcm9rb3NoaVwgOwor6KGA55y8ID4gY2hpbWFuYWtvXCA7CivnrrjnrrEgPiBoYXNoaWJha29cIDsKK+ikh+W8jyA+IGZ1a3VzaGlraVwgOwor6KW/5YG0ID4gbmlzaGlnYXdhXCA7CivmkI3lpLEgPiBzb25zaGl0c3VcIDsKK+mXluWFpSA+IGNoaW4nJ255dXVcIDsKK+icgumzpSA+IGhhY2hpZG9yaVwgOwor54K65L2TID4gdGVpdGFyYWt1XCA7CivmjJHnmbogPiBjaG91aGF0c3VcIDsKK+a6tuizqiA+IHlvdXNoaXRzdVwgOwor54Gw5ZyfID4gaGFpdHN1Y2hpXCA7Civoo4/miYkgPiB1cmF0b2JpcmFcIDsKK+aQrOWHuiA+IGhhbnNodXRzdVwgOwor57Kb5a2mID4gc2h1a3VnYWt1XCA7Civplr7lgKQgPiBzaGlraWljaGlcIDsKK+ijj+aDhSA+IHVyYW5hc2FrZVwgOwor6J+H6IKhID4ga2FlcnVtYXRhXCA7CivooYDnhZkgPiBjaGlrZW11cmlcIDsKK+ihqOaxuiA+IGh5b3VrZXRzdVwgOwor5ruR6JC9ID4ga2F0c3VyYWt1XCA7CivmjIHniakgPiBtb2NoaW1vbm9cIDsKK+mWgOWPoyA+IGthZG9ndWNoaVwgOwor5r2c54axID4gc2VuJyduZXRzdVwgOwor5oyf5q66ID4ga3lvdXNhdHN1XCA7CivooajmnK0gPiBoeW91c2F0c3VcIDsKK+ihqOabuCA+IG9tb3RlZ2FraVwgOwor57OK5LujID4gbm9yaXNoaXJvXCA7CivnqbTpmpkgPiBrZXRzdWdla2lcIDsKK+mMr+mbkSA+IHNha3V6YXRzdVwgOwor5Zyn5a+GID4gYXRzdW1pdHN1XCA7CivlnKjlrqQgPiB6YWlzaGl0c3VcIDsKK+a8rOeJqSA+IHRzdWtlbW9ub1wgOwor6Jyc6LGGID4gbWl0c3VtYW1lXCA7CivmvILnnYAgPiBoeW91Y2hha3VcIDsKK+aPkOWHuiA+IHRlaXNodXRzdVwgOwor5rex6Z20ID4gZnVrYWd1dHN1XCA7Civnr4DmrLIgPiBzZXRzdXlva3VcIDsKK+iii+W4ryA+IGZ1a3Vyb29iaVwgOwor5Zix55uuID4gc2hva3Vtb2t1XCA7CivnqYDpo58gPiBrb2t1c2hva3VcIDsKK+epjembqiA+IHNla2lzZXRzdVwgOwor56+A5qaRID4gZnVzaGlrdXJlXCA7CivooYDml48gPiBrZXRzdXpva3VcIDsKK+etlueVpSA+IHNha3VyeWFrdVwgOwor6Y286KGTID4gc2hpbmp1dHN1XCA7CivmjJHmkqUgPiBjaG91aGF0c3VcIDsKK+aLk+auliA+IHRha3VzaG9rdVwgOwor6JuZ6LezID4ga2FlcnV0b2JpXCA7CivmjpLlh7ogPiBoYWlzaHV0c3VcIDsKK+Wcp+WKmyA+IGF0c3VyeW9rdVwgOwor56u5566SID4gdGFrZWJvdWtpXCA7CivpvLvpnaIgPiBoYW5hZHp1cmFcIDsKK+erv+enpCA+IHNhb2Jha2FyaVwgOwor6KKW5Y+jID4gc29kZWd1Y2hpXCA7Civmjbvlh7ogPiBuZW5zaHV0c3VcIDsKK+mLs+mJhCA+IGNodXV0ZXRzdVwgOwor56ug56+AID4gc2hvdXNldHN1XCA7CivllZPon4QgPiBrZWljaGl0c3VcIDsKK+a2membqCA+IG5hbWlkYWFtZVwgOwor56+k5a6fID4gdG9rdWppdHN1XCA7Civpjpbns7ggPiBrdXNhcmlpdG9cIDsKK+emv+m3siA+IGhhZ2V3YXNoaVwgOwor6KGA5bC/ID4ga2V0c3VueW91XCA7Civmh7LnvbAgPiBjaG91YmF0c3VcIDsKK+WbveWKmyA+IGtva3VyeW9rdVwgOwor5Zu95YilID4ga3VuaWJldHN1XCA7Civmir3mlpcgPiBoaWtpZGFzaGlcIDsKK+a1uOmjnyA+IHNoaW5zaG9rdVwgOwor56+J5bGxID4gdHN1a2l5YW1hXCA7Civoopbku5ggPiBzb2RldHN1a2VcIDsKK+aJvOauuiA+IHlha3VzYXRzdVwgOwor6KGA5aGXID4gY2hpbWlkb3JvXCA7Civpurnpu7QgPiBrb3VqaWthYmlcIDsKK+a2memHkSA+IG5hbWlkYWtpblwgOwor6KGA5ZynID4ga2V0c3VhdHN1XCA7Civmva7looMgPiBzaGlvemFrYWlcIDsKK+eon+izqiA+IGhpbnNoaXRzdVwgOwor5rm/55SwID4gc2hpdHN1ZGVuXCA7Civpu5Lpq6ogPiBrb2t1aGF0c3VcIDsKK+aJk+a2iCA+IHVjaGlrZXNoaVwgOwor6KGo5YG0ID4gb21vdGVnYXdhXCA7Civom5nogqEgPiBrYWVydW1hdGFcIDsKK+mQmOaSniA+IGthbmV0c3VraVwgOwor6KGM5YiXID4gZ3lvdXJldHN1XCA7CivnrJHmrrogPiBzaG91c2F0c3VcIDsKK+aJjeanjCA+IHNhaWR6dWNoaVwgOwor5rm/5r2kID4gc2hpdHN1anVuXCA7CivooZfkuKYgPiBtYWNoaW5hbWlcIDsKK+m8u+ihnSA+IGhhbmF0c3VraVwgOwor5riL57SZID4gc2hpYnVnYW1pXCA7Civlk4Hos6ogPiBoaW5zaGl0c3VcIDsKK+m8oOismyA+IG5lenVtaWtvdVwgOwor6Y+h5p2/ID4ga2FnYW1paXRhXCA7CivnqbrnqbQgPiBrYXJha2V0c3VcIDsKK+m6pumjryA+IG11Z2ltZXNoaVwgOwor6Yu86ImyID4gaGFnYW5laXJvXCA7CivmiZXmmoEgPiBmdXRzdWd5b3VcIDsKK+iZq+ieuyA+IG11c2hpa2VyYVwgOwor56ul5q2MID4gd2FyYWJldXRhXCA7CivmiZPmk7IgPiBjaG91Y2hha3VcIDsKK+a0u+mHjyA+IGthdHN1cnlvdVwgOwor5oug5Ye6ID4ga3lvc2h1dHN1XCA7CivlmbTlh7ogPiBmdW5zaHV0c3VcIDsKK+a4i+eariA+IHNoaWJ1a2F3YVwgOwor6JeB6Z20ID4gd2FyYWd1dHN1XCA7Civnrpflh7ogPiBzYW5zaHV0c3VcIDsKK+mOluaoiyA+IGt1c2FyaXRvaVwgOwor5rS76Lu4ID4ga2F0c3VqaWt1XCA7Civmub/mnb8gPiBzaGl0c3ViYW5cIDsKK+a1ruiiiyA+IHVraWJ1a3Vyb1wgOwor5rW46J2VID4gc2hpbnNob2t1XCA7CivllYbnlaUgPiBzaG91cnlha3VcIDsKK+a0u+i6jSA+IGthdHN1eWFrdVwgOwor6Ymx6LOqID4ga291c2hpdHN1XCA7CivomavohbkgPiBtdXNoaWJhcmFcIDsKK+m8oOiJsiA+IG5lenVtaWlyb1wgOwor5rOl6Z20ID4gZG9yb2d1dHN1XCA7CivmtpzogbcgPiB0b2t1c2hva3VcIDsKK+ethuWiqCA+IGhpdHN1Ym9rdVwgOwor6Yed6bC7ID4gaGFyaXVuYWdpXCA7CivpvLvntrEgPiBoYW5hZHp1bmFcIDsKK+ethuWhmiA+IGZ1ZGVkenVrYVwgOwor5rud5aO6ID4gdGFraXRzdWJvXCA7Civmu53lo7cgPiB0YWtpdHN1Ym9cIDsKK+WRiumBlCA+IGtva3V0YXRzdVwgOwor5ryP5Ye6ID4gcm91c2h1dHN1XCA7CivnrYblnKcgPiBoaXRzdWF0c3VcIDsKK+eqrualtSA+IGt5dXVreW9rdVwgOwor6YeR6a+xID4ga2luc2hhY2hpXCA7CivnpoDos6ogPiBoaW5zaGl0c3VcIDsKK+WPo+mrrSA+IGt1Y2hpaGlnZVwgOwor6Jmr57GgID4gbXVzaGlrYWdvXCA7CivmtYHooYAgPiByeXV1a2V0c3VcIDsKK+aGkeeJqSA+IHRzdWtpbW9ub1wgOwor56mN546HID4gc2VraXJpdHN1XCA7CivpvLvnqoEgPiBoYW5hdHN1a2lcIDsKK+mHnOmjryA+IGthbWFtZXNoaVwgOwor5rex54iqID4gZnVrYWR6dW1lXCA7Civnq7nluJsgPiBjaGlrdWhha3VcIDsKK+eni+iJsiA+IHNodXVzaG9rdVwgOwor5rOh6YqtID4gYWJ1a3V6ZW5pXCA7Civms6jph4ggPiBjaHV1c2hha3VcIDsKK+aEgeiJsiA+IHNodXVzaG9rdVwgOwor5oKq6LOqID4gYWt1c2hpdHN1XCA7Civmt4vnlr4gPiByaW5zaGl0c3VcIDsKK+m6l+izqiA+IHJlaXNoaXRzdVwgOwor6bq76KKLID4gYXNhYnVrdXJvXCA7Civmu53lj6MgPiB0YWtpZ3VjaGlcIDsKK+m8oOeulyA+IG5lenVtaXphblwgOwor5rm/5byPID4gc2hpc3NoaWtpXCA7CivnqYDniakgPiBrb2t1bW90c3VcIDsKK+azpemBkyA+IGRvcm9taWNoaVwgOwor5Y+k6Z20ID4gZnVydWd1dHN1XCA7CivmsojprLEgPiBjaGluJyd1dHN1XCA7CivlkJvpgZQgPiBraW1pdGFjaGlcIDsKK+m3sum8uyA+IHdhc2hpYmFuYVwgOwor5oqY5LyPID4gc2hha3VidWt1XCA7CivpvKDnqbQgPiBuZXp1bWlhbmFcIDsKK+a7keWPsCA+IHN1YmVyaWRhaVwgOwor56uc5be7ID4gdGF0c3VtYWtpXCA7Civph6PpkJggPiB0c3VyaWdhbmVcIDsKK+m7kuiJsiA+IGtva3VzaG9rdVwgOwor56m25qW1ID4ga3l1dWt5b2t1XCA7CivmuoDlrqQgPiBtYW5zaGl0c3VcIDsKK+m3pum3ryA+IG1pc29zYXphaVwgOwor56uv5aWzID4gaGFzaGl0YW1lXCA7Civph6Pph50gPiB0c3VyaWJhcmlcIDsKK+mHkemOliA+IGtpbmd1c2FyaVwgOwor6Jek6JSTID4gZnVqaWR6dXJ1XCA7CivpiZvoibIgPiBuYW1hcmlpcm9cIDsKK+a4i+afvyA+IHNoaWJ1Z2FraVwgOwor5ZC46KGAID4ga3l1dWtldHN1XCA7Civlj6TpiYQgPiBmdXJ1dGV0c3VcIDsKK+a1t+elniA+IHdhdGF0c3VtaVwgOwor6Yi06JmrID4gc3V6dW11c2hpXCA7CivlkIzos6ogPiBkb3VzaGl0c3VcIDsKK+WPo+mHkSA+IGt1Y2hpZ2FuZVwgOwor56qB5pKDID4gdG90c3VnZWtpXCA7Civpt5PptKMgPiB5YW1hdXp1cmFcIDsKK+m7kue4gSA+IGt1cm9idWNoaVwgOwor6Y6u5ZynID4gY2hpbicnYXRzdVwgOwor5Zaq5aSxID4gc291c2hpdHN1XCA7CivnqK7msrkgPiB0YW5lYWJ1cmFcIDsKK+WUkOargyA+IGthcmFiaXRzdVwgOwor5Y+j6Lu9ID4ga3VjaGlnYXJ1XCA7Civnqq7lsYggPiBreXV1a3V0c3VcIDsKK+m7kueruSA+IGt1cm9jaGlrdVwgOwor5Y+L6YGUID4gdG9tb2RhY2hpXCA7Civlk4HniakgPiBzaGluYW1vbm9cIDsKK+erueWFiSA+IHRha2VtaXRzdVwgOwor6JeB6IueID4gd2FyYWR6dXRvXCA7Civmub/ljp8gPiBzaGl0c3VnZW5cIDsKK+elnuiJsiA+IHNoaW5zaG9rdVwgOwor5ZSQ5p2+ID4ga2FyYW1hdHN1XCA7CivnpZ7ogbcgPiBzaGluc2hva3VcIDsKK+WPo+iosSA+IGt1Y2hpbW90b1wgOwor6JqK5p+xID4ga2FiYXNoaXJhXCA7Civnq7nkuLIgPiB0YWtlZ3VzaGlcIDsKK+a2iOa7hSA+IHNob3VtZXRzdVwgOwor6Yed6KGTID4gc2hpbmp1dHN1XCA7Civpu5Lnmb0gPiBrb2t1Ynlha3VcIDsKK+elnue9sCA+IHNoaW5iYXRzdVwgOwor5rK56J2JID4gYWJ1cmF6ZW1pXCA7CivmgKfos6ogPiBzZWlzaGl0c3VcIDsKK+WPluiqrCA+IHRvcmlzZXRzdVwgOwor5rC36ZuqID4gaHlvdXNldHN1XCA7Civom7jlo7wgPiB0YWtvdHN1Ym9cIDsKK+ibuOWjtyA+IHRha290c3Vib1wgOwor5rmn5Ye6ID4geW91c2h1dHN1XCA7CivnqbrlrqQgPiBrdXVzaGl0c3VcIDsKK+mMmOW9oiA+IHRzdW11Z2F0YVwgOwor5oap5a6kID4ga2Vpc2hpdHN1XCA7CivmgKXoqK0gPiBreXV1c2V0c3VcIDsKK+mHkeiUkyA+IGthbmVkenVydVwgOwor5raI5qW1ID4gc2hvdWt5b2t1XCA7Civph6PoiLkgPiB0c3VyaWJ1bmVcIDsKK+awt+mHiCA+IGh5b3VzaGFrdVwgOwor6Ymi54mpID4gaGFjaGltb25vXCA7CivmtZrmuKsgPiBzaHVuc2V0c3VcIDsKK+a3keW+syA+IHNodWt1dG9rdVwgOwor56Wd56aPID4gc2h1a3VmdWt1XCA7CivmsqHokL0gPiBib3RzdXJha3VcIDsKK+eqk+WPoyA+IG1hZG9ndWNoaVwgOwor5ZGK55m6ID4ga29rdWhhdHN1XCA7Civlk4Hmn4QgPiBzaGluYWdhcmFcIDsKK+aCqueWviA+IGFrdXNoaXRzdVwgOwor5ZC4552AID4ga3l1dWNoYWt1XCA7CivphYzph48gPiBzaGFrdXJ5b3VcIDsKK+WPo+iEhyA+IGt1Y2hpd2FraVwgOwor56K66KqsID4ga2FrdXNldHN1XCA7CivoloTnt5EgPiB1c3VtaWRvcmlcIDsKK+WTgeaVsCA+IHNoaW5ha2F6dVwgOwor6bm/55quID4gc2hpa2FnYXdhXCA7Civom5nlj4ggPiBrYWVydW1hdGFcIDsKK+m7meauuiA+IG1va3VzYXRzdVwgOwor5oGQ57iuID4ga3lvdXNodWt1XCA7CivompXlrqQgPiBzYW5zaGl0c3VcIDsKK+eqgeWHuiA+IHRvc3NodXRzdVwgOwor6YO96aKoID4gbWl5YWtvZnV1XCA7Civmsrnns58gPiBhYnVyYWthc3VcIDsKK+awtOizqiA+IHN1aXNoaXRzdVwgOwor56qB5YWlID4gdG90c3VueXV1XCA7CivmsrnnspUgPiBhYnVyYWthc3VcIDsKK+eooOWvhiA+IGNob3VtaXRzdVwgOwor6buS5qirID4ga3Vyb2dhc2hpXCA7CivmtLvmrbQgPiBrYXRzdXJla2lcIDsKK+WPo+e0hSA+IGt1Y2hpYmVuaVwgOwor56eL5pelID4gc2h1dWppdHN1XCA7Civlj7Pnq68gPiBtaWdpaGFzaGlcIDsKK+iWrOeTtiA+IGt1c3VyaWJpblwgOwor5ZOy5a2mID4gdGV0c3VnYWt1XCA7CivpiYTmuIsgPiBrYW5hc2hpYnVcIDsKK+WPjue4riA+IHNodXVzaHVrdVwgOwor5b+M6KmeID4gaW1pa290b2JhXCA7Civlj7Dnp6QgPiBkYWliYWthcmlcIDsKK+a1t+aJhyA+IGhvdGF0ZWdhaVwgOwor5b+F6KqtID4gaGl0c3Vkb2t1XCA7CivljZrorZggPiBoYWt1c2hpa2lcIDsKK+m7kuadviA+IGt1cm9tYXRzdVwgOwor44CG5YiHID4gc2hpbWVraXJpXCA7CivljZPorZggPiB0YWt1c2hpa2lcIDsKK+iWrOeJqSA+IHlha3VidXRzdVwgOwor5rex5YiHID4gc2hpbnNldHN1XCA7Civnoazos6ogPiBrb3VzaGl0c3VcIDsKK+awt+idlSA+IGh5b3VzaG9rdVwgOwor5Y2T6KqsID4gdGFrdXNldHN1XCA7Civpu5LmmJ8gPiBrdXJvYm9zaGlcIDsKK+engOaKnCA+IHNodXViYXRzdVwgOwor5b+D6KGAID4gc2hpbmtldHN1XCA7CivmsLTomasgPiBtaXp1bXVzaGlcIDsKK+iUk+iNiSA+IHRzdXJ1a3VzYVwgOwor5by36aOvID4ga293YW1lc2hpXCA7CivnpajmsbogPiBoeW91a2V0c3VcIDsKK+iRm+mkhSA+IGt1enVtb2NoaVwgOwor6baJ6LGGID4gdXp1cmFtYW1lXCA7Civph5Hnm6UgPiBrYW5hZGFyYWlcIDsKK+efr+mjviA+IGt5b3VzaG9rdVwgOwor5Y+j55mWID4ga3VjaGlndXNlXCA7Civnn7PpoK0gPiBpc2hpYXRhbWFcIDsKK+mzpem7kCA+IHRvcmltb2NoaVwgOwor5raZ5aOwID4gbmFtaWRhZ29lXCA7CivokL3pq6ogPiByYWt1aGF0c3VcIDsKK+WLhemhjSA+IGNob2t1Z2FrdVwgOwor5Y216ImyID4gdGFtYWdvaXJvXCA7CivnqLLlhYkgPiBpbmFiaWthcmlcIDsKK+WPjuedgCA+IHNodXVjaGFrdVwgOwor5raI5aSxID4gc291c2hpdHN1XCA7Civmrr/pgZQgPiB0b25vdGFjaGlcIDsKK+axguiBtyA+IGt5dXVzaG9rdVwgOwor6JC96aO+ID4gcmFrdXNob2t1XCA7CivmsojnnYAgPiBjaGluY2hha3VcIDsKK+iWrOauuiA+IHlha3VzYXRzdVwgOwor56Wl5pyIID4gc2hvdXRzdWtpXCA7Civnp4HlrqQgPiBzaGlzaGl0c3VcIDsKK+W9ouizqiA+IGtlaXNoaXRzdVwgOwor5Y+O546HID4gc2h1dXJpdHN1XCA7CivnpZ7mm7IgPiBzaGlua3lva3VcIDsKK+eiuueriyA+IGtha3VyaXRzdVwgOwor5Y2g6ICFID4gdXJhbmFpc2hhXCA7Civlk4Hlk4EgPiBzaGluYWppbmFcIDsKK+awt+e1kCA+IGh5b3VrZXRzdVwgOwor5b+g56+AID4gY2h1dXNldHN1XCA7CivpiaLlt7sgPiBoYWNoaW1ha2lcIDsKK+WShOWutiA+IGhhbmFzaGlrYVwgOwor6Yq35Y20ID4gc2hvdWt5YWt1XCA7CivmtojljbQgPiBzaG91a3lha3VcIDsKK+efjemRoCA+IGtha3VzaGFrdVwgOwor5b6p6IG3ID4gZnVrdXNob2t1XCA7Civmr5LomasgPiBkb2t1bXVzaGlcIDsKK+WNk+e1tiA+IHRha3V6ZXRzdVwgOwor5Y+W5raIID4gdG9yaWtlc2hpXCA7Civlkajlr4YgPiBzaHV1bWl0c3VcIDsKK+WJr+mjnyA+IGZ1a3VzaG9rdVwgOwor6JKf6JK7ID4ga29uJydueWFrdVwgOwor5ZCE5pyIID4ga2FrdXRzdWtpXCA7CivmrrXooosgPiBkYW5idWt1cm9cIDsKK+a1uOWFpSA+IHNoaW4nJ255dXVcIDsKK+WPjuayoSA+IHNodXVib3RzdVwgOwor6YmE5bGRID4gdGV0c3VrdXp1XCA7CivljZPnrYYgPiB0YWt1aGl0c3VcIDsKK+eiuueOhyA+IGtha3VyaXRzdVwgOwor5Y+W5qyhID4gdG9yaXRzdWdpXCA7CivljZPnq4sgPiB0YWt1cml0c3VcIDsKK+elnuW8jyA+IHNoaW5zaGlraVwgOwor5q2j6YGTID4gbWFzYW1pY2hpXCA7CivmsojmsqEgPiBjaGluYm90c3VcIDsKK+avkuiIjCA+IGRva3V6ZXRzdVwgOwor56Oo5rGBID4gdG9naXNoaXJ1XCA7CivlvbnogbcgPiB5YWt1c2hva3VcIDsKK+a0i+WupCA+IHlvdXNoaXRzdVwgOwor56Kn546JID4gaGVraWd5b2t1XCA7Civmra/os6ogPiBzaGlzaGl0c3VcIDsKK+mFt+eGsSA+IGtva3VuZXRzdVwgOwor6JS15rWaID4ga3VyYXphcmFlXCA7CivmgYvmlbUgPiBrb2lnYXRha2lcIDsKK+WPo+aXqSA+IGt1Y2hpYmF5YVwgOwor5rGB54mpID4gc2hpcnVtb25vXCA7Civphbfng4ggPiBrb2t1cmV0c3VcIDsKK+iThOepjSA+IGNoaWt1c2VraVwgOwor5byx6JmrID4geW93YW11c2hpXCA7CivlvrTnmbogPiBjaG91aGF0c3VcIDsKK+W/oOeDiCA+IGNodXVyZXRzdVwgOwor5oOc5YilID4gc2VraWJldHN1XCA7CivmtLvliocgPiBrYXRzdWdla2lcIDsKK+WPsOaJgCA+IGRhaWRva29yb1wgOwor5b6M56iLID4gbm9jaGlob2RvXCA7Civlj43ml6UgPiBoYW4nJ25pY2hpXCA7CivlvJPooZMgPiBreXV1anV0c3VcIDsKK+mBoOi/kSA+IG9jaGlrb2NoaVwgOwor5Yqb6KqsID4gcmlraXNldHN1XCA7CivptKzoibIgPiB1Z3Vpc3Vpcm9cIDsKK+WNmueJqSA+IGhha3VidXRzdVwgOwor5Y2Y54mpID4gaGl0b2Vtb25vXCA7Civmr5LnrYYgPiBkb2t1aGl0c3VcIDsKK+WRkeWPoyA+IG5vbWlndWNoaVwgOwor5ZG95LmeID4gaW5vY2hpZ29pXCA7CivlkIzlrqQgPiBkb3VzaGl0c3VcIDsKK+aBi+W/gyA+IGtvaWdva29yb1wgOwor5oKq5Y+jID4gd2FydWd1Y2hpXCA7CivliJ3pm6ogPiBoYXRzdXl1a2lcIDsKK+W8seiFsCA+IHlvd2Fnb3NoaVwgOwor6YCG6Z6YID4gZ3lha3V6YXlhXCA7CivlubTpoIMgPiB0b3NoaWdvcm9cIDsKK+edgOmZuCA+IGNoYWt1cmlrdVwgOwor5ZGK5YilID4ga29rdWJldHN1XCA7CivmsLTmsrkgPiBtaXp1YWJ1cmFcIDsKK+awt+awtCA+IGtvb3JpbWl6dVwgOwor5ZGI5Ye6ID4gdGVpc2h1dHN1XCA7CivliY3ovL8gPiBzYWtpZ29zaGlcIDsKK+WPt+WupCA+IGdvdXNoaXRzdVwgOwor5rKz5bK4ID4ga2F3YWdpc2hpXCA7CivlvLfnuK4gPiBreW91c2h1a3VcIDsKK+WHuumhmCA+IHNodXRzdWdhblwgOwor5Ye66aGMID4gc2h1dHN1ZGFpXCA7CivmgZDlr58gPiBreW91c2F0c3VcIDsKK+mxl+mbsiA+IHVyb2tvZ3Vtb1wgOwor6bSD6IiMID4gZ2VraXpldHN1XCA7CivnpZ7li4UgPiBzaGluY2hva3VcIDsKK+elneWLnSA+IHNodWt1c2hvdVwgOwor6YCa6YeIID4gdHN1dXNoYWt1XCA7CivnoILnspIgPiBzdW5hdHN1YnVcIDsKK+mAn+mBlCA+IHNva3V0YXRzdVwgOwor5Ye66ZmjID4gc2h1dHN1amluXCA7CivpgJrpgZQgPiB0c3V1dGF0c3VcIDsKK+WInemHnCA+IGhhdHN1Z2FtYVwgOwor5Ye66ZaAID4gc2h1dHN1bW9uXCA7Civph6PloIAgPiB0c3VyaWJvcmlcIDsKK+i/kemggyA+IGNoaWthZ29yb1wgOwor6bO26IG3ID4gdG9iaXNob2t1XCA7Civnn7PnrYYgPiBzZWtpaGl0c3VcIDsKK+efs+eruSA+IHNla2ljaGlrdVwgOwor5byV57axID4gaGlraWR6dW5hXCA7CivnpZ7ku48gPiBzaGluYnV0c3VcIDsKK+efreetkiA+IHRhbmR6dXRzdVwgOwor5q+S54mpID4gZG9rdWJ1dHN1XCA7CivljbPml6UgPiBzb2t1aml0c3VcIDsKK+mAg+mBkyA+IG5pZ2VtaWNoaVwgOwor56We5Li7ID4ga2FuJydudXNoaVwgOwor5ZCI5Y2wID4gYWlqaXJ1c2hpXCA7CivljZLmpa0gPiBzb3RzdWd5b3VcIDsKK+WLneedgCA+IHNob3VjaGFrdVwgOwor5ZCQ5Ye6ID4gdG9zaHV0c3VcIDsKK+mHkeWeiyA+IGthbmFnYXRhXCA7Civnn7PnpZ4gPiBzaGFrdWppblwgOwor5ZCN5Yi5ID4gbWVpc2F0c3VcIDsKK+W8vuedgCA+IGRhbmNoYWt1XCA7CivokL3nsY0gPiByYWt1c2VraVwgOwor55+i562SID4geWFkenV0c3VcIDsKK+W/g+acjSA+IHNoaW5wdWt1XCA7CivpgIbou6IgPiBneWFrdXRlblwgOwor5ZCI5YqbID4gZ291cnlva3VcIDsKK+iWmeWIgCA+IG5hZ2luYXRhXCA7CivlkIzliJcgPiBkb3VyZXRzdVwgOwor55u06Z2iID4gY2hva3VtZW5cIDsKK+W+qealrSA+IGZ1a3VneW91XCA7CivoloTlj6MgPiB1c3VrdWNoaVwgOwor6I2J6aOfID4gc291c2hva3VcIDsKK+W4uOmXhyA+IHRva295YW1pXCA7CivlkIjlhoogPiBnb3VzYXRzdVwgOwor5Yml6JC9ID4gaGFrdXJha3VcIDsKK+iMtumrqiA+IGNoYXBhdHN1XCA7CivpgJ/oqq0gPiBzb2t1ZG9rdVwgOwor5Y6z5a+GID4gZ2VubWl0c3VcIDsKK+WHuumDtyA+IHNodWtreW91XCA7CivljprlupUgPiBhdHN1em9rb1wgOwor5byV56qTID4gaGlraW1hZG9cIDsKK+WIhui9hCA+IGJ1bmthdHN1XCA7CivpgJroqq0gPiB0c3V1ZG9rdVwgOwor6YGc6ImyID4gc29uc2hva3VcIDsKK+i/vei3oSA+IHRzdWlzZWtpXCA7Civli7LniLUgPiBrdW5zaGFrdVwgOwor6YCa6KizID4gdHN1dXlha3VcIDsKK+WPquWPqiA+IHRhZGF0YWRhXCA7Civlj4vlnqMgPiB0b21vZ2FraVwgOwor5Y2K5pyIID4gaGFudHN1a2lcIDsKK+ecn+i/uSA+IHNoaW5zZWtpXCA7CivlkInkvosgPiBraXRzdXJlaVwgOwor6L+R6YmEID4ga2ludGV0c3VcIDsKK+iMtumjryA+IGNoYW1lc2hpXCA7CivliKXoqIAgPiBiZXRzdWdlblwgOwor5q6W55SjID4gc2hva3VzYW5cIDsKK+mHkeWPoyA+IGtpbmd1Y2hpXCA7CivpgKDooYAgPiB6b3VrZXRzdVwgOwor6bOl57GgID4gdG9yaWthZ29cIDsKK+WLg+eZuiA+IGJvcHBhdHN1XCA7Civlu7rnr4kgPiBrZW5jaGlrdVwgOwor5Ye66LqrID4gc2h1c3NoaW5cIDsKK+WNgeaciCA+IGp1dWdhdHN1XCA7Civlj6PljaAgPiBrdWNoaXVyYVwgOwor5q2j56uLID4gc2Vpcml0c3VcIDsKK+mvqOmqqCA+IGdlaWtvdHN1XCA7CivmsYLlv4MgPiBreXV1c2hpblwgOwor55u46Y6aID4gYWlkenVjaGlcIDsKK+ecvOitmCA+IGdhbnNoaWtpXCA7Civlv4Pmi40gPiBzaGlucGFrdVwgOwor5b285q2kID4ga2FyZWtvcmVcIDsKK+atr+ejqCA+IGhhbWlnYWtpXCA7CivokL3nn7MgPiByYWt1c2VraVwgOwor5bid6ZeVID4gdGVpa2V0c3VcIDsKK+WGhemwkCA+IHVjaGl3YW5pXCA7CivnnJ/ouZ8gPiBzaGluc2VraVwgOwor5Y+k5Ym1ID4gZnVydWtpenVcIDsKK+m0qOeMnyA+IGthbW9yeW91XCA7CivmsqHljbQgPiBib2treWFrdVwgOwor6YeR5YqbID4ga2lucnlva3VcIDsKK+WPs+WBtCA+IG1pZ2lnYXdhXCA7Civlh7rotoUgPiBzaHV0Y2hvdVwgOwor5Y+j5YmNID4ga3VjaGltYWVcIDsKK+WIu+iWhCA+IGtva3VoYWt1XCA7CivnnJ/ot6EgPiBzaGluc2VraVwgOwor5rC05oCnID4gbWl6dXNob3VcIDsKK+W6g+iiliA+IGhpcm9zb2RlXCA7Civph43lipsgPiBqdXVyeW9rdVwgOwor55u46YmEID4gc291dGV0c3VcIDsKK+iNt+i7iiA+IG5pZ3VydW1hXCA7Civli5XniakgPiBkb3VidXRzdVwgOwor55+l55WlID4gY2hpcnlha3VcIDsKK+ebrumMsiA+IG1va3Vyb2t1XCA7CivliIfoq5YgPiBzZXRzdXJvblwgOwor5Ye26LOKID4ga3lvdXpva3VcIDsKK+edgOijhSA+IGNoYWt1c291XCA7CivpgYXohIggPiBjaGlteWFrdVwgOwor5rC05byVID4gbWl6dWhpa2lcIDsKK+apiOmqqCA+IHRvdWtvdHN1XCA7CivmrrLmu4UgPiBzZW5tZXRzdVwgOwor5Y+k5YK3ID4gZnVydWtpenVcIDsKK+WGoOmbqiA+IGthbnNldHN1XCA7CivljJfmpbUgPiBob2treW9rdVwgOwor5bm76KGTID4gZ2VuanV0c3VcIDsKK+awt+W6iiA+IGh5b3VzaG91XCA7CivlioPnrZYgPiBrYWt1c2FrdVwgOwor5Y2z5bitID4gc29rdXNla2lcIDsKK+WPiOWPiCA+IG1hdGFtYXRhXCA7CivmsLTlupUgPiBtaW5hc29rb1wgOwor55u06YWNID4gY2hva3VoYWlcIDsKK+WIh+iogCA+IHNldHN1Z2VuXCA7CivmgKXlkYogPiBreXV1a29rdVwgOwor6YeI5YW4ID4gc2hha3V0ZW5cIDsKK+avq+acqyA+IGdvdW1hdHN1XCA7CivljYrmipggPiBoYW5zZXRzdVwgOwor5bmz6KKWID4gaGlyYXNvZGVcIDsKK+mvm+mjryA+IHRhaW1lc2hpXCA7CivliIfopoEgPiBzZXRzdXlvdVwgOwor5be76ZuyID4gbWFraWd1bW9cIDsKK+aui+eJqSA+IHphbmJ1dHN1XCA7CivmhYvjgIUgPiB3YXphd2F6YVwgOwor5Yqr55WlID4gZ291cnlha3VcIDsKK+WPjeWIpSA+IHRhbmJldHN1XCA7CivmraPnm7QgPiBzaG91amlraVwgOwor5Yq5546HID4ga291cml0c3VcIDsKK+WPquS6iyA+IHRhZGFnb3RvXCA7CivnoqnlraYgPiBzZWtpZ2FrdVwgOwor5rC05bWpID4gbWl6dWthc2FcIDsKK+ebtOmAgSA+IGNob2t1c291XCA7CivliIboo4IgPiBidW5yZXRzdVwgOwor5b255p+EID4geWFrdWdhcmFcIDsKK+WHjOi+sSA+IHJ5b3Vqb2t1XCA7CivlvovmlocgPiByaXRzdWJ1blwgOwor56iL44CFID4gaG9kb2hvZG9cIDsKK+WPjuWFpSA+IHNodXVueXV1XCA7Civoi6Xpto8gPiB3YWthZG9yaVwgOwor5rKI5YuHID4gY2hpbicneXV1XCA7Civlj4zlha0gPiBzdWdvcm9rdVwgOwor5buD57W2ID4gaGFpemV0c3VcIDsKK+mBk+ezuCA+IG1pY2hpaXRvXCA7CivlibXnq4sgPiBzb3VyaXRzdVwgOwor5Y2U5b+DID4ga3lvdXNoaW5cIDsKK+WMl+acnSA+IGhva3VjaG91XCA7Civli4fng4ggPiB5dXVyZXRzdVwgOwor5oCn5YilID4gc2VpYmV0c3VcIDsKK+WLg+eEtiA+IGJvdHN1emVuXCA7CivljZjlvI8gPiB0YW5zaGlraVwgOwor5Y+C5YiXID4gc2FucmV0c3VcIDsKK+awl+W/gyA+IGtpZ29rb3JvXCA7Civlt53poqggPiBrYXdha2F6ZVwgOwor5YiA6KGTID4gdG91anV0c3VcIDsKK+WMoeaVkSA+IGt5b3VreXV1XCA7CivmrbvniakgPiBzaGlidXRzdVwgOwor5Yiz6IifID4ga3VyaWJ1bmVcIDsKK+W9vOaYryA+IGthcmVrb3JlXCA7CivliIbonZUgPiBidW5zaG9rdVwgOwor55m96bOlID4gaGFrdWNob3VcIDsKK+WFtemjnyA+IGhlaXNob2t1XCA7Civmrr/mp5ggPiB0b25vc2FtYVwgOwor5Y+C5YWlID4gc2FuJydueXV1XCA7Civlj5fku5ggPiB1a2V0c3VrZVwgOwor5Y2Y5bivID4gaGl0b2VvYmlcIDsKK+efr+a/gCA+IGt5b3VnZWtpXCA7CivmgKrlgpEgPiBrYWlrZXRzdVwgOwor5Yi66IKhID4gc2FzdW1hdGFcIDsKK+axsuWPliA+IGt1bWl0b3JpXCA7CivnoILmtZwgPiBzdW5haGFtYVwgOwor6YGU562GID4gdGFwcGl0c3VcIDsKK+WJsuekvCA+IGthdHN1cmVpXCA7Civmr47mnIggPiBtYWl0c3VraVwgOwor5Y2H5b2iID4gbWFzdWdhdGFcIDsKK+W3nemcpyA+IGthd2FnaXJpXCA7CivliofnmoQgPiBnZWtpdGVraVwgOwor5YiG6JiWID4gYnVua2V0c3VcIDsKK+WPlOS4liA+IHNodWt1c2VpXCA7CivlhYDpt7kgPiBoYWdldGFrYVwgOwor5YuY5rG6ID4ga2Fua2V0c3VcIDsKK+WNs+WmmSA+IHNva3VteW91XCA7CivliaPnqoEgPiBrZW50c3VrdVwgOwor5b+F5a6aID4gaGl0c3Vqb3VcIDsKK+aApeS/oSA+IGt5dXVzaGluXCA7CivliY3ntIQgPiB6ZW4nJ3lha3VcIDsKK+WKh+eXmyA+IGdla2l0c3V1XCA7CivljYjlubQgPiB1bWFkb3NoaVwgOwor5bmz6JC9ID4gaGlyYW9jaGlcIDsKK+ehrOW8jyA+IGtvdXNoaWtpXCA7CivluLjorZggPiBqb3VzaGlraVwgOwor5b+D5a2mID4gc2hpbmdha3VcIDsKK+avjuaXpSA+IG1haW5pY2hpXCA7Civnmb3pqqggPiBoYWtrb3RzdVwgOwor5Y2H5bitID4gbWFzdXNla2lcIDsKK+aoqumiqCA+IHlva29rYXplXCA7CivmgKXkvLggPiBreXV1c2hpblwgOwor6bCQ6LazID4gd2FuaWFzaGlcIDsKK+mBheethiA+IGNoaWhpdHN1XCA7Civmr43mlrkgPiBoYWhha2F0YVwgOwor5rC35aOBID4gaHlvdWhla2lcIDsKK+eenuedgCA+IG1hbmNoYWt1XCA7CivovpvovpsgPiBrYXJhZ2FyYVwgOwor55u46K2YID4gc291c2hpa2lcIDsKK+iPnOeuuCA+IHNhaWJhc2hpXCA7CivpgLHntaYgPiBzaHV1a3l1dVwgOwor5YWr6Z2iID4gaGFjaGltZW5cIDsKK+WNmuWtpiA+IGhha3VnYWt1XCA7CivmrpbmsJEgPiBzaG9rdW1pblwgOwor6YCy57SaID4gc2hpbmt5dXVcIDsKK+WJjeevgCA+IHplbnNldHN1XCA7Civlvpflv4MgPiB0b2t1c2hpblwgOwor552A6Ii5ID4gY2hha3VzZW5cIDsKK+W8lea9riA+IGhpa2lzaGlvXCA7CivluLjoqK0gPiBqb3VzZXRzdVwgOwor5b6X5b6XID4gdG9rdXRva3VcIDsKK+iQvea9riA+IHJha3VjaG91XCA7CivlvLHmr5IgPiBqYWt1ZG9rdVwgOwor5Y6l5Ya3ID4ga2V0c3VyZWlcIDsKK+iUteWFgyA+IGt1cmFtb3RvXCA7Civlu7rniakgPiB0YXRlbW9ub1wgOwor5q275ruFID4gc2hpbWV0c3VcIDsKK+WLh+axuiA+IHl1dWtldHN1XCA7CivlhYjpq5ggPiBzYWtpZGFrYVwgOwor55m66aeFID4gaGF0c3Vla2lcIDsKK+mAgOiJsiA+IHRhaXNob2t1XCA7CivmsJflrqQgPiBraXNoaXRzdVwgOwor5YaG6YyQID4gbWFydWdpcmlcIDsKK+WLnealvSA+IHNob3VyYWt1XCA7CivlhY7ppqwgPiB1c2FnaXVtYVwgOwor5qyg56S8ID4ga2V0c3VyZWlcIDsKK+W9k+aciCA+IHRvdWdldHN1XCA7CivljYPls7YgPiBjaGlzaGltYVwgOwor5qiq6ZuyID4geW9rb2d1bW9cIDsKK+W+kOW+kCA+IHNvcm9zb3JvXCA7CivlhYPpq5ggPiBtb3RvZGFrYVwgOwor5bir6KqsID4gc2hpc2V0c3VcIDsKK+WMheaRgiA+IGhvdXNldHN1XCA7Civmrr/mlrkgPiB0b25vZ2F0YVwgOwor5rCR5a6/ID4gbWluc2h1a3VcIDsKK+mAo+e1kCA+IHJlbmtldHN1XCA7Civnm7ToqIAgPiBjaG9rdWdlblwgOwor5b2O5pyIID4gd2FuZ2V0c3VcIDsKK+W3oemMqyA+IGp1bnNoYWt1XCA7CivlvY7mm7IgPiB3YW5reW9rdVwgOwor55u06KeSID4gY2hva2tha3VcIDsKK+W7ieebtCA+IHJlbmNob2t1XCA7Civnm7ToppogPiBjaG9ra2FrdVwgOwor55u06KaWID4gY2hva3VzaGlcIDsKK+atu+a0uyA+IHNoaWthdHN1XCA7Civlv4PlooMgPiBzaGlua3lvdVwgOwor5bmz6ISIID4gaGVpbXlha3VcIDsKK+W9k+aXpSA+IHRvdWppdHN1XCA7CivlvqnlraYgPiBmdWt1Z2FrdVwgOwor5YWl6ZajID4gbnl1dWtha3VcIDsKK+aoqumVtyA+IHlva29uYWdhXCA7CivmrbvmsqEgPiBzaGlib3RzdVwgOwor5YyF5ousID4gaG91a2F0c3VcIDsKK+mAgOiBtyA+IHRhaXNob2t1XCA7Civlv6DlkYogPiBjaHV1a29rdVwgOwor5be76Lu4ID4gbWFraWppa3VcIDsKK+eZvumbtyA+IGh5YWt1cmFpXCA7Civnmb7pm6MgPiBoeWFrdW5hblwgOwor5Ye66Iq9ID4gc2h1dHN1Z2FcIDsKK+iPheesoCA+IHN1Z2VnYXNhXCA7CivliZvnm7QgPiBnb3VjaG9rdVwgOwor5Yqg5rm/ID4ga2FzaGl0c3VcIDsKK+eZuumbuyA+IGhhdHN1ZGVuXCA7CivliIbohIggPiBidW5teWFrdVwgOwor55uj6KizID4ga2FuJyd5YWt1XCA7CivlvI/ms5UgPiBzaGlraWhvdVwgOwor6YGF552AID4gY2hpY2hha3VcIDsKK+WFmumWpSA+IHRvdWJhdHN1XCA7CivliKXntI0gPiBiZXRzdW5vdVwgOwor5YiR572wID4ga2VpYmF0c3VcIDsKK+WGhemBlCA+IG5haXRhdHN1XCA7Civmrbvmrb8gPiBzaGlib3RzdVwgOwor5b+D5ZqiID4gc2hpbicnbm91XCA7CivlvbnlvpcgPiB5YWt1dG9rdVwgOwor6YCj56uLID4gcmVucml0c3VcIDsKK+mDt+aEgSA+IGt5b3VzaHV1XCA7Civlvbflvb8gPiBob3VmdXRzdVwgOwor5bqt55+zID4gbml3YWlzaGlcIDsKK+WIh+iAhSA+IGtpcmVtb25vXCA7CivpgYXnmbogPiBjaGloYXRzdVwgOwor5YWD6Z6YID4gbW90b3NheWFcIDsKK+W/mOWNtCA+IGJvdWt5YWt1XCA7CivmrbTmrbQgPiByZWtpcmVraVwgOwor56K65L+hID4ga2FrdXNoaW5cIDsKK+efs+afsSA+IHNla2ljaHV1XCA7CivmrKDnlaogPiBrZXRzdWJhblwgOwor5b2w5b6zID4gc2hvdXRva3VcIDsKK+mxiOiFuSA+IHRhcmFmdWt1XCA7CivlibLniakgPiB3YXJlbW9ub1wgOwor5bmV6IejID4gYmFrdXNoaW5cIDsKK+WFpemLjyA+IG55dXVreW91XCA7Civou73ptKggPiBrYXJ1Z2Ftb1wgOwor5byv5puyID4gd2Fua3lva3VcIDsKK+W/teS7jyA+IG5lbmJ1dHN1XCA7Civoj4rnn7MgPiBraWt1aXNoaVwgOwor5Ya36KGAID4gcmVpa2V0c3VcIDsKK+W5s+e1uSA+IGhpcmFnaW51XCA7CivphZLlkZEgPiBzYWtlbm9taVwgOwor6JGJ5qGcID4gaGF6YWt1cmFcIDsKK+edgOexsyA+IGNoYWt1YmVpXCA7CivlvLfmlbUgPiBreW91dGVraVwgOwor5rGC5YSfID4ga3l1dXNob3VcIDsKK+mAmuensCA+IHRzdXVzaG91XCA7Civlv6Dlg5UgPiBjaHV1Ym9rdVwgOwor5rC05YqbID4gc3Vpcnlva3VcIDsKK+aui+aciCA+IHphbmdldHN1XCA7Civli4Xmm7ggPiBjaG9rdXNob1wgOwor5YWx6YCaID4ga3lvdXRzdXVcIDsKK+WJjeeVpSA+IHplbnJ5YWt1XCA7Civmrormm7QgPiBrb3Rvc2FyYVwgOwor5bym5pyIID4gZ2VuZ2V0c3VcIDsKK+ebruiWrCA+IG1lZ3VzdXJpXCA7CivljZTllYYgPiBreW91c2hvdVwgOwor55m+6YysID4gaHlha3VyZW5cIDsKK+WFrOmBlCA+IGtvdXRhdHN1XCA7CivlvLHmlbUgPiBqYWt1dGVraVwgOwor6YCG566XID4gZ3lha3VzYW5cIDsKK+m7meOAhSA+IG1va3Vtb2t1XCA7CivlhavpgZQgPiBoYXR0YXRzdVwgOwor5YWr6YGTID4gaGFjaGlkb3VcIDsKK+WMl+WxsSA+IGtpdGF5YW1hXCA7Civlib/mu4UgPiBzb3VtZXRzdVwgOwor5buD54mpID4gaGFpYnV0c3VcIDsKK+WFrOi/sCA+IGtvdWp1dHN1XCA7Civlv6Dkv6EgPiBjaHV1c2hpblwgOwor55qu6LOqID4gaGlzaGl0c3VcIDsKK+efs+aWhyA+IGlzaGlidW1pXCA7CivlvaLlvI8gPiBrZWlzaGlraVwgOwor5YeL6JC9ID4gY2hvdXJha3VcIDsKK+WLheaXqCA+IGNob2t1c2hpXCA7CivljbjlgKQgPiBvcm9zaGluZVwgOwor55+t5pelID4gdGFuaml0c3VcIDsKK+awtOWFiCA+IG1penVzYWtpXCA7Civlt7foqqwgPiBrb3VzZXRzdVwgOwor5YWx6LubID4ga3lvdXlha3VcIDsKK+m7kuOAhSA+IGt1cm9ndXJvXCA7CivliaXnhLwgPiBzdWtpeWFraVwgOwor6YCi552AID4gaG91Y2hha3VcIDsKK+W7g+eGsSA+IGhhaW5ldHN1XCA7CivlvbnlroUgPiB5YWt1dGFrdVwgOwor5Yiw552AID4gdG91Y2hha3VcIDsKK+iMueibuCA+IHl1ZGVkYWtvXCA7CivlvLfmjK8gPiBreW91c2hpblwgOwor5YaN6KqsID4gc2Fpc2V0c3VcIDsKK+mAo+eZuiA+IHJlbnBhdHN1XCA7CivlvqnllLEgPiBmdWt1c2hvdVwgOwor55+l5pelID4gY2hpbmljaGlcIDsKK+W+tOWPjiA+IGNob3VzaHV1XCA7Civli4XmkrAgPiBjaG9rdXNlblwgOwor5YiG56+AID4gYnVuc2V0c3VcIDsKK+mFjeWIlyA+IGhhaXJldHN1XCA7Civlh6bnvbAgPiBzaG9iYXRzdVwgOwor5YaN6KitID4gc2Fpc2V0c3VcIDsKK+attOacnSA+IHJla2ljaG91XCA7Civliofmr5IgPiBnZWtpZG9rdVwgOwor6L+956m2ID4gdHN1aWt5dXVcIDsKK+ats+acqyA+IHNhaW1hdHN1XCA7CivmqKrou7ggPiB5b2tvamlrdVwgOwor5YiG562GID4gYnVucGl0c3VcIDsKK+i8r+mMsiA+IHNodXVyb2t1XCA7CivljYrlj6MgPiBoYW5rdWNoaVwgOwor5Y2B5ZOyID4ganV0dGV0c3VcIDsKK+eZvumBuCA+IGh5YWt1c2VuXCA7Civlu4nmvZQgPiByZW5rZXRzdVwgOwor5YWI6YeRID4gc2FraWdhbmVcIDsKK+i7vemjnyA+IGtlaXNob2t1XCA7CivliIbnq4sgPiBidW5yaXRzdVwgOwor5YaF6KizID4gdWNoaXdha2VcIDsKK+i/veemjyA+IHRzdWlmdWt1XCA7CivnmbrpgZQgPiBoYXR0YXRzdVwgOwor5qyy5rexID4geW9rdWJ1a2FcIDsKK+atquabsiA+IHdhaWt5b2t1XCA7CivlhaXotoUgPiBueXV1Y2hvdVwgOwor5Ymy5rOoID4gd2FyaWNodXVcIDsKK+awkeWKmyA+IG1pbnJ5b2t1XCA7CivljJflo4EgPiBob2t1aGVraVwgOwor5buD5ruFID4gaGFpbWV0c3VcIDsKK+awtOS4iiA+IG1pbmFrYW1pXCA7CivliJ3nm4YgPiBoYXRzdWJvblwgOwor5q2j5pytID4gc2hvdWZ1ZGFcIDsKK+iRrOW8jyA+IHNvdXNoaWtpXCA7CivlhaXos54gPiBueXV1c2hvdVwgOwor5YWI6YGUID4gc2VuZGF0c3VcIDsKK+atouacqCA+IHRvbWFyaWdpXCA7CivnnYDnnLwgPiBjaGFrdWdhblwgOwor5Y2K5YiHID4gaGFuc2V0c3VcIDsKK+WIneeZuiA+IHNob2hhdHN1XCA7Civou5/pqqggPiBuYW5rb3RzdVwgOwor5b2T5bGAID4gdG91a3lva3VcIDsKK+auuuWusyA+IHNhdHN1Z2FpXCA7CivokL3mjowgPiByYWt1c2hvdVwgOwor5YWx6KizID4ga3lvdXlha3VcIDsKK+W8t+W8sSA+IGt5b3VqYWt1XCA7Civlv4PkuK0gPiBzaGluY2h1dVwgOwor5bmz55q/ID4gaGlyYXphcmFcIDsKK+WIneeUoyA+IGhhdHN1emFuXCA7CivluLjnt5EgPiBqb3VyeW9rdVwgOwor5Y2X5LuPID4gbmFuZnV0c3VcIDsKK+WKq+aOoCA+IGdvdXJ5YWt1XCA7CivljYHlhasgPiBqdXVoYWNoaVwgOwor5YWs6KitID4ga291c2V0c3VcIDsKK+mBqealrSA+IHRla2lneW91XCA7CivprLHprLEgPiB1dHN1dXRzdVwgOwor6L+955m9ID4gdHN1aWhha3VcIDsKK+W+k+WNkiA+IGp1dXNvdHN1XCA7CivlvqHlhqAgPiBva2FubXVyaVwgOwor5b6L5ZGCID4gcml0c3VyeW9cIDsKK+i+o+iFlSA+IHJhdHN1d2FuXCA7CivnnYDnlKggPiBjaGFrdXlvdVwgOwor6YCG55SoID4gZ3lha3V5b3VcIDsKK+mAhueUoyA+IGd5YWt1emFuXCA7Civlha3opqogPiByb2t1c2hpblwgOwor5b6M5Y+jID4gYXRva3VjaGlcIDsKK+WFqOiosyA+IHplbicneWFrdVwgOwor5Y2Y5LiAID4gdGFuJydpdHN1XCA7CivluK/nt5EgPiB0YWlyeW9rdVwgOwor55+z5byTID4gaXNoaXl1bWlcIDsKK+mBuOabsiA+IHNlbmt5b2t1XCA7CivpgJrniZIgPiB0c3V1Y2hvdVwgOwor55u057eaID4gY2hva3VzZW5cIDsKK+ecjOeriyA+IGtlbnJpdHN1XCA7CivliKXnirYgPiBiZXRzdWpvdVwgOwor5YeN57WQID4gdG91a2V0c3VcIDsKK+W3neidiSA+IGthd2FzZW1pXCA7Civpg7flm70gPiBreW91a29rdVwgOwor5Ymv5qWtID4gZnVrdWd5b3VcIDsKK+i/veeUsyA+IHRzdWlzaGluXCA7CivnoILlsbEgPiBzdW5heWFtYVwgOwor5b6L5YuVID4gcml0c3Vkb3VcIDsKK+ato+aOpSA+IHNlaXNldHN1XCA7Civov6vnnJ8gPiBoYWt1c2hpblwgOwor55yB562GID4gc2VpaGl0c3VcIDsKK+W8n+W+oSA+IG90b3V0b2dvXCA7CivlhYfos4ogPiBreW91em9rdVwgOwor5YeE57W2ID4gc2VpemV0c3VcIDsKK+W+jOWIlyA+IGtvdXJldHN1XCA7CivlvLflsIYgPiBreW91c2hvdVwgOwor5bm0546HID4gbmVucml0c3VcIDsKK+WGl+iIjCA+IGpvdXpldHN1XCA7CivmqJnoqLsgPiBoeW91Y2h1dVwgOwor55yf55m9ID4gbWFzc2hpcm9cIDsKK+WFuOiWrCA+IHRlbicneWFrdVwgOwor5byx5bCRID4gamFrdXNob3VcIDsKK+W8seWwjyA+IGpha3VzaG91XCA7Civnm7TnrZQgPiBjaG9rdXRvdVwgOwor55+z5bGxID4gaXNoaXlhbWFcIDsKK+iMnOiJsiA+IGFrYW5laXJvXCA7CivnmbroqIAgPiBoYXRzdWdlblwgOwor5byT5b2iID4geXVtaW5hcmlcIDsKK+WJr+acqCA+IGZ1a3Vib2t1XCA7CivnnJ/nl4cgPiBzaGluc2hvdVwgOwor5Yqj5oOFID4gcmV0c3Vqb3VcIDsKK+WGpee9sCA+IG1laWJhdHN1XCA7CivnpZ7jgIUgPiBrYW1pZ2FtaVwgOwor5Yqj5oKqID4gcmV0c3Vha3VcIDsKK+muruihgCA+IHNlbmtldHN1XCA7CivlvbnlibIgPiB5YWt1d2FyaVwgOwor55+z5a6kID4gaXNoaW11cm9cIDsKK+iLpeihhiA+IHdha2FzaHV1XCA7Civmr43lkJsgPiBoYWhhZ2ltaVwgOwor5bmz54axID4gaGVpbmV0c3VcIDsKK+ebtOeojiA+IGNob2t1emVpXCA7Civov5HnnYAgPiBraW5jaGFrdVwgOwor6YGT5p2/ID4gbWljaGlpdGFcIDsKK+WLheWuoyA+IGNob2t1c2VuXCA7Civnn6nlsLogPiBrYW5lamFrdVwgOwor5YiH54mpID4ga2lyZW1vbm9cIDsKK+mBuOaKnCA+IHNlbmJhdHN1XCA7Civnmb3on7sgPiBzaGlyb2FyaVwgOwor5by35aWqID4gZ291ZGF0c3VcIDsKK+WIuuauuiA+IHNoaXNhdHN1XCA7Civlh6Hnmb4gPiBib25weWFrdVwgOwor5b6L5LukID4gcml0c3VyZWlcIDsKK+WGheiFvyA+IHVjaGltb21vXCA7Civou43plqUgPiBndW5iYXRzdVwgOwor5bmj54mpID4gaGVpbW90c3VcIDsKK+mAuOalvSA+IGl0c3VyYWt1XCA7CivpgJ/msbogPiBzb2trZXRzdVwgOwor5YyX5YG0ID4gaG9rdXNva3VcIDsKK+W9q+WIuyA+IGNob3Vrb2t1XCA7CivpgIbmva4gPiBzYWthc2hpb1wgOwor56Cy5YiXID4gaG91cmV0c3VcIDsKK+ato+W8jyA+IHNlaXNoaWtpXCA7CivlhqDntbYgPiBrYW56ZXRzdVwgOwor5q6/5Y6fID4gdG9ub2JhcmFcIDsKK+WHuOeKtiA+IHRvdHN1am91XCA7CivlhoXogqEgPiB1Y2hpbW9tb1wgOwor6YGU5paHID4gdGF0c3VidW5cIDsKK+W+geS8kCA+IHNlaWJhdHN1XCA7Civlubvmu4UgPiBnZW5tZXRzdVwgOwor5by+5ZynID4gZGFuJydhdHN1XCA7Civou73ou70gPiBrYXJ1Z2FydVwgOwor5YWF6KGAID4ganV1a2V0c3VcIDsKK+WGheiBtyA+IG5haXNob2t1XCA7Civou5/piYQgPiBuYW50ZXRzdVwgOwor5bmy5r2uID4gaGlraXNoaW9cIDsKK+efs+WiqCA+IHNla2lib2t1XCA7CivliKTmsbogPiBoYW5rZXRzdVwgOwor55+t5aScID4gbWlqaWtheW9cIDsKK+W8t+WcpyA+IGt5b3VhdHN1XCA7CivlubPmu5EgPiBoZWlrYXRzdVwgOwor5by35Zu9ID4ga3lvdWtva3VcIDsKK+msoumVtyA+IGJpbicnbmFnYVwgOwor5YaG572QID4gbWFydWdhbWFcIDsKK+ebtOebtCA+IGppa2lqaWtpXCA7Civlt7vntJkgPiBtYWtpZ2FtaVwgOwor5YW86IG3ID4ga2Vuc2hva3VcIDsKK+asoOaWhyA+IGtldHN1YnVuXCA7CivlhqznqbogPiBmdXl1em9yYVwgOwor6YGF5pelID4gY2hpaml0c3VcIDsKK+WIpeauvyA+IGJldHN1ZGVuXCA7CivliKXmrrUgPiBiZXRzdWRhblwgOwor6YCG5rWqID4gc2FrYW5hbWlcIDsKK+eZveiTriA+IGJ5YWt1cmVuXCA7Civnn7PlnqMgPiBpc2hpZ2FraVwgOwor6YO35L+XID4ga3lvdXpva3VcIDsKK+i7uOi2syA+IGppa3Vhc2hpXCA7CivpgIbms6IgPiBzYWthbmFtaVwgOwor55uu55qEID4gbW9rdXRla2lcIDsKK+iQqeWxniA+IGhhZ2l6b2t1XCA7CivpgJ/mpa0gPiBoYXlhd2F6YVwgOwor5q615YilID4gdGFuYmV0c3VcIDsKK+W4gueriyA+IHNoaXJpdHN1XCA7Civoi6XojYkgPiB3YWtha3VzYVwgOwor552A5rC0ID4gY2hha3VzdWlcIDsKK+i7oui9jSA+IHRlbnRldHN1XCA7CivpsJDnmq4gPiB3YW5pZ2F3YVwgOwor5q2i5a6/ID4gc2hpc2h1a3VcIDsKK+iKuOihkyA+IGdlaWp1dHN1XCA7CivmraPlrpcgPiBtYXNhbXVuZVwgOwor5qiq6IW5ID4geW9rb2JhcmFcIDsKK+WGl+ethiA+IGpvdWhpdHN1XCA7CivlhazogbcgPiBrb3VzaG9rdVwgOwor5ZCE44CFID4gc29yZXpvcmVcIDsKK+WIg+a4oSA+IGhhd2F0YXJpXCA7Civps6nlsL4gPiBtaXpvb2NoaVwgOwor6auj6au0ID4gaG91ZnV0c3VcIDsKK+WHuua8lCA+IHNodXRzdWVuXCA7CivpganlvbkgPiB0ZWtpeWFrdVwgOwor6Lqr6ZW3ID4gc2hpbmNob3VcIDsKK+WKm+WtpiA+IHJpa2lnYWt1XCA7CivoibLpgZMgPiBzaGlraWRvdVwgOwor55m+6Iq4ID4gaHlha3VnZWlcIDsKK+WLouWKmyA+IHNlaXJ5b2t1XCA7CivoiLnpnIogPiBmdW5hZGFtYVwgOwor6L+95rGCID4gdHN1aWt5dXVcIDsKK+egguWOnyA+IHN1bmFoYXJhXCA7CivlvY7lhaUgPiB3YW4nJ255dXVcIDsKK+WItuacrSA+IHNlaXNhdHN1XCA7Civmpb3plbcgPiBnYWt1Y2hvdVwgOwor55u055CDID4gY2hva2t5dXVcIDsKK+WIhuazjCA+IGJ1bnBpdHN1XCA7CivmpbXpmZAgPiBreW9rdWdlblwgOwor6a6r6IaaID4gc2FtZWhhZGFcIDsKK+eZuuiJsiA+IGhhc3Nob2t1XCA7CivokazliJcgPiBzb3VyZXRzdVwgOwor5YuF5ZWPID4gY2hva3Vtb25cIDsKK+W8vuWKmyA+IGRhbnJ5b2t1XCA7CivlvI/loLQgPiBzaGlraWpvdVwgOwor6auY6auYID4gdGFrYWRha2FcIDsKK+WJsuW8lSA+IHdhcmliaWtpXCA7CivmrLLlv4MgPiB5b2t1c2hpblwgOwor6YG45bGAID4gc2Vua3lva3VcIDsKK+WJlOaKiSA+IHRla2tldHN1XCA7CivmrLLlvpcgPiB5b2t1dG9rdVwgOwor6a6u6IKJID4gc2VuJyduaWt1XCA7CivpgIbmp5ggPiBzYWthc2FtYVwgOwor6YCy5pKDID4gc2hpbmdla2lcIDsKK+WLleWKmyA+IGRvdXJ5b2t1XCA7Civli4Xlkb0gPiBjaG9rdW1laVwgOwor5Yeb54OIID4gcmlucmV0c3VcIDsKK+atpuWjqyA+IG1vbm9ub2Z1XCA7CivprqvogowgPiBzYW1laGFkYVwgOwor5q665Lq6ID4gc2F0c3VqaW5cIDsKK+WDrei2iiA+IHNlbicnZXRzdVwgOwor6YCj5pelID4gcmVuaml0c3VcIDsKK+ato+WkoiA+IG1hc2F5dW1lXCA7CivliLfmlbAgPiBzYXRzdXN1dVwgOwor6LuL6L2iID4gYXRzdXJla2lcIDsKK+WIpeadoSA+IGJldHN1am91XCA7CivlhLLok4QgPiBjaG9jaGlrdVwgOwor5YaG56qTID4gbWFydW1hZG9cIDsKK+iLpeiAhSA+IHdha2Ftb25vXCA7Civou4rovYQgPiBzaGFrYXRzdVwgOwor5oGQ44CFID4ga293YWdvd2FcIDsKK+mAmuaagSA+IHRzdXVneW91XCA7CivliY3miZUgPiBtYWViYXJhaVwgOwor55m+6IGeID4gaHlha3VidW5cIDsKK+eZuuiCsiA+IGhhdHN1aWt1XCA7Civlj6rjgIUgPiB0YWRhdGFkYVwgOwor6YCQ5p2hID4gY2hpa3Vqb3VcIDsKK+ebiuebiiA+IG1hc3VtYXN1XCA7CivmqKrnuJ4gPiB5b2tvamltYVwgOwor6YGU5byBID4gdGF0c3ViZW5cIDsKK+W3o+eqnyA+IHNvdWt1dHN1XCA7Civlt53nrYsgPiBrYXdhc3VqaVwgOwor5YOj6LaKID4gc2VuJydldHN1XCA7Civlt77nnYAgPiBraW5jaGFrdVwgOwor5YWN6IG3ID4gbWVuc2hva3VcIDsKK+WLh+WKmyA+IHl1dXJ5b2t1XCA7Civlt53nq68gPiBrYXdhYmF0YVwgOwor5YuB5Y2SID4ga2Vpc290c3VcIDsKK+WGheelnSA+IHVjaGlpd2FpXCA7CivojYnniakgPiBrdXNhbW9ub1wgOwor5bKz6bqTID4gZ2FrdXJva3VcIDsKK+WIhualtSA+IGJ1bmt5b2t1XCA7Civmp43ooZMgPiBzb3VqdXRzdVwgOwor6YCj5o6lID4gcmVuc2V0c3VcIDsKK+WFpeexjSA+IG55dXVzZWtpXCA7Civlia/lsIYgPiBmdWt1c2hvdVwgOwor5Ymv5a+pID4gZnVrdXNoaW5cIDsKK+efpeWKmyA+IGNoaXJ5b2t1XCA7CivlibLlrokgPiB3YXJpeWFzdVwgOwor5Yem5rG6ID4gc2hva2V0c3VcIDsKK+W5tOacqyA+IG5lbm1hdHN1XCA7Civlub7ml6UgPiBpa3VuaWNoaVwgOwor5bm05pyIID4gbmVuZ2V0c3VcIDsKK+WIh+agqiA+IGtpcmlrYWJ1XCA7CivlirnlipsgPiBrb3VyeW9rdVwgOwor6aq46aqoID4gZ2Fpa290c3VcIDsKK+WFrOeriyA+IGtvdXJpdHN1XCA7CivlvI/lj7AgPiBzaGlraWRhaVwgOwor6aqo6bGXID4ga290c3VyaW5cIDsKK+WGjeeZuiA+IHNhaWhhdHN1XCA7CivmrbvlipsgPiBzaGlyeW9rdVwgOwor5Yq05YqbID4gcm91cnlva3VcIDsKK+aoquetiyA+IHlva29zdWppXCA7Civlt4znqp8gPiBnYW5rdXRzdVwgOwor5Yas54mpID4gZnV5dW1vbm9cIDsKK+mAhuaVsCA+IGd5YWt1c3V1XCA7CivlhY7ntrIgPiB1c2FnaWFtaVwgOwor55m957O4ID4gc2hpcmFpdG9cIDsKK+atu+WIpSA+IHNoaWJldHN1XCA7CivliIfmnK0gPiBraXJpZnVkYVwgOwor5YiH5pybID4gc2V0c3Vib3VcIDsKK+W5s+aXpSA+IGhlaWppdHN1XCA7Civlt6bnm64gPiBoaWRhcmltZVwgOwor6Lu96JSRID4ga2VpYmV0c3VcIDsKK+WJo+WuoiA+IGtlbmt5YWt1XCA7CivlhoXnmbogPiBuYWloYXRzdVwgOwor5YuF5L2/ID4gY2hva3VzaGlcIDsKK+iKi+iZqyA+IGltb211c2hpXCA7Civlj4jjgIUgPiBtYXRhbWF0YVwgOwor5qSL6bOlID4gbXVrdWRvcmlcIDsKK+W5s+aUvyA+IGhpcmFtYXNhXCA7Civpqqjpq4QgPiBrb3RzdXp1aVwgOwor55uu5risID4gbW9rdXNva3VcIDsKK+WFg+e3oCA+IG1vdG9qaW1lXCA7Civnn7PkuoAgPiBpc2hpZ2FtZVwgOwor5YWI57SwID4gc2FraWJvc29cIDsKK+WLheS7uyA+IGNob2t1bmluXCA7Civnn5vlhYggPiBob2tvc2FraVwgOwor5bqm5bqmID4gdGFiaXRhYmlcIDsKK+WLheS7pCA+IGNob2t1cmVpXCA7CivlhYjntIQgPiBzZW4nJ3lha3VcIDsKK+iQqeWOnyA+IGhhZ2l3YXJhXCA7CivlhaXnpZ4gPiBueXV1c2hpblwgOwor5q2v5YiXID4gc2hpcmV0c3VcIDsKK+WIh+aWrSA+IHNldHN1ZGFuXCA7Civlu4Plq6EgPiBoYWljaGFrdVwgOwor5q2q5YqbID4gd2Fpcnlva3VcIDsKK+W8j+WFuCA+IHNoaWtpdGVuXCA7Civov73mkoMgPiB0c3VpZ2VraVwgOwor6IqL6JSTID4gaW1vZHp1cnVcIDsKK+aomeeroCA+IGh5b3VzaG91XCA7Civlt7vniakgPiBtYWtpbW9ub1wgOwor55u45q66ID4gc291c2F0c3VcIDsKK+WGl+eJqSA+IGpvdWJ1dHN1XCA7CivliY3lsYggPiB6ZW5rdXRzdVwgOwor5Yiz5b2iID4ga3VyaWthdGFcIDsKK+ato+WJsiA+IHNlaWthdHN1XCA7Civouo3pgLIgPiB5YWt1c2hpblwgOwor5byB5YilID4gYmVuYmV0c3VcIDsKK+edgOaJiyA+IGNoYWt1c2h1XCA7CivmraPliIcgPiBzZWlzZXRzdVwgOwor6Iy25rysID4gY2hhZHp1a2VcIDsKK+aAluOAhSA+IGtvd2Fnb3dhXCA7CivnlZnps6UgPiByeXV1Y2hvdVwgOwor6YGO5aSxID4ga2FzaGl0c3VcIDsKK+iIuei2syA+IGZ1bmFhc2hpXCA7CivlhbXnlaUgPiBoZWlyeWFrdVwgOwor55m956WoID4gaGFrdWh5b3VcIDsKK+WBj+mjnyA+IGhlbnNob2t1XCA7Civlt6XnjocgPiBrb3VyaXRzdVwgOwor5q2M5ZCIID4gdXRhYXdhc2VcIDsKK+i6kei6hSA+IHRzdXRzdWppXCA7CivmrYzlj6MgPiB1dGFndWNoaVwgOwor6bC55pyoID4ga2F0c3VvZ2lcIDsKK+i/q+aSgyA+IGhha3VnZWtpXCA7Civnm7jmp4wgPiBhaWR6dWNoaVwgOwor5rGy44CFID4ga3l1dWt5dXVcIDsKK+WIneaBiyA+IGhhdHN1a29pXCA7CivlhYjnqIsgPiBzYWtpaG9kb1wgOwor552A5oOzID4gY2hha3Vzb3VcIDsKK+iIueizgyA+IGZ1bmFjaGluXCA7CivojLbmuIsgPiBjaGFzaGlidVwgOwor6YCP5b65ID4gdG91dGV0c3VcIDsKK+eXhei6qyA+IGJ5b3VzaGluXCA7CivpgLLlraYgPiBzaGluZ2FrdVwgOwor5qaC6KqsID4gZ2Fpc2V0c3VcIDsKK+iQveS4gSA+IHJha3VjaG91XCA7CivpgJrluLMgPiB0c3V1Y2hvdVwgOwor5bqK5bqXID4gdG9rb21pc2VcIDsKK+iJr+iWrCA+IHJ5b3V5YWt1XCA7CivmrKDloLQgPiBrZXRzdWpvdVwgOwor5YiH5oi7ID4gc2V0c3VyYWlcIDsKK+aomeefsyA+IGh5b3VzZWtpXCA7Civlgb3ph5EgPiBuaXNlZ2FuZVwgOwor55uu5qiZID4gbW9rdWh5b3VcIDsKK+alveiqvyA+IGdha3VjaG91XCA7CivlipvlgIYgPiByaWtpcnlvdVwgOwor6YG45YilID4gc2VuYmV0c3VcIDsKK+WIuuWuoiA+IHNoaWt5YWt1XCA7CivluJ3mrKAgPiB0ZWlrZXRzdVwgOwor5Ye65o2QID4gc2h1dHN1ZW5cIDsKK+edgOW/gyA+IGtpZ29rb3JvXCA7CivpgJDlubQgPiBjaGlrdW5lblwgOwor6a6r55quID4gc2FtZWdhd2FcIDsKK+W6g+W6gyA+IGhpcm9iaXJvXCA7CivmqKrnlLogPiB5b2tvY2hvdVwgOwor6L+R5pelID4ga2luaml0c3VcIDsKK+W6g+W5hSA+IGhpcm9oYWJhXCA7CivlipvkvZwgPiByaWtpc2FrdVwgOwor6bOp5L+hID4ga3l1dXNoaW5cIDsKK+aknOmWsiA+IGtlbicnZXRzdVwgOwor556s5Yi7ID4gc2h1bmtva3VcIDsKK+eZuuedgCA+IGhhdGNoYWt1XCA7CivmpbXoq5YgPiBreW9rdXJvblwgOwor552A5by+ID4gY2hha3VkYW5cIDsKK+WFuOeJqSA+IHRlbmJ1dHN1XCA7Civnmb3nmpkgPiBoYWt1c2VraVwgOwor55m955m9ID4gaGFrdWhha3VcIDsKK+WIh+aDhSA+IHNldHN1am91XCA7CivliJHlvosgPiBrZWlyaXRzdVwgOwor5qiZ55qEID4gaHlvdXRla2lcIDsKK+WHuuaJgCA+IGRlZG9rb3JvXCA7Civov73lvrQgPiB0c3VpY2hvdVwgOwor552A5bqVID4gY2hha3V0ZWlcIDsKK+WFmueVpSA+IHRvdXJ5YWt1XCA7CivmpbXoqIAgPiBreW9rdWdlblwgOwor5bqK5bGxID4gdG9rb3lhbWFcIDsKK+eXm+immiA+IHRzdXVrYWt1XCA7CivlubTlvI8gPiBuZW5zaGlraVwgOwor55m655mMID4gaGF0c3VnYW5cIDsKK+edgOW4vSA+IGNoYWt1Ym91XCA7CivlhoXmv6AgPiB1Y2hpYm9yaVwgOwor5YWI552AID4gc2VuY2hha3VcIDsKK+edgOW4ryA+IGNoYWt1dGFpXCA7CivluLjmmKUgPiB0b2tvaGFydVwgOwor6L+95byUID4gdHN1aWNob3VcIDsKK+iNt+aNjCA+IG5pc2FiYWtpXCA7CivlubPluq0gPiBoaXJhbml3YVwgOwor5bGx6bOpID4geWFtYWJhdG9cIDsKK+mAsuWigyA+IHNoaW5reW91XCA7CivlsbHps6UgPiB5YW1hZG9yaVwgOwor6YCa5a2mID4gdHN1dWdha3VcIDsKK+eVnOmhniA+IGNoaWt1cnVpXCA7CivlubPlupUgPiBoaXJhem9rb1wgOwor5YWl542EID4gbnl1dWdva3VcIDsKK+WFrOeItSA+IGtvdXNoYWt1XCA7CivoibLoibYgPiBpcm90c3V5YVwgOwor5bmz5bmVID4gaGlyYW1ha3VcIDsKK+WFiOeZuiA+IHNlbnBhdHN1XCA7CivlibTliIcgPiBnYWlzZXRzdVwgOwor55m955OcID4gc2hpcm91cmlcIDsKK+i/keaOpSA+IGtpbnNldHN1XCA7CivoubLouJ4gPiB0c3VrdWJhaVwgOwor6Lui6IG3ID4gdGVuc2hva3VcIDsKK+mAj+WvnyA+IHRvdXNhdHN1XCA7CivliofkvZwgPiBnZWtpc2FrdVwgOwor552A5bK4ID4gY2hha3VnYW5cIDsKK+i7uOe0oiA+IGppa3VzYWt1XCA7CivluK3mlpkgPiBzZWtpcnlvdVwgOwor5qyg5Y+3ID4ga2V0c3Vnb3VcIDsKK+eZuuePviA+IGhhdHN1Z2VuXCA7Civnmb7njaMgPiBoeWFrdWp1dVwgOwor5YOa6Ii5ID4gdG9tb2J1bmVcIDsKK+ecn+W/gyA+IG1hZ29rb3JvXCA7CivliofkuK0gPiBnZWtpY2h1dVwgOwor6LmE6YmEID4gdGVpdGV0c3VcIDsKK+WHuuW8tSA+IHNodXRjaG91XCA7Civlg6fogbcgPiBzb3VzaG9rdVwgOwor6YCA5bGIID4gdGFpa3V0c3VcIDsKK+WJjeWTsiA+IHplbnRldHN1XCA7Civlh7rlu6wgPiBzaHV0c3Vyb1wgOwor6YGp5L2cID4gdGVraXNha3VcIDsKK+WGheazlSA+IHVjaGlub3JpXCA7Civlh7rluqYgPiBzaHV0c3Vkb1wgOwor5YqD5LiAID4ga2FrdWl0c3VcIDsKK+i7uOeusSA+IGppa3ViYWtvXCA7Civls6HosLcgPiBreW91a29rdVwgOwor5Ye65bitID4gc2h1c3Nla2lcIDsKK+WIpeWjsiA+IGJldHN1YmFpXCA7CivluJ3ml6UgPiB0ZWlqaXRzdVwgOwor5qeL56+JID4ga291Y2hpa3VcIDsKK+ebruaSgyA+IG1va3VnZWtpXCA7Civou43ogbcgPiBndW5zaG9rdVwgOwor5YiG5bGAID4gYnVua3lva3VcIDsKK+WGrOacjSA+IGZ1eXVmdWt1XCA7CivojLbmnZMgPiBjaGFzaGFrdVwgOwor6a6u54OIID4gc2VucmV0c3VcIDsKK+mrmOiqrCA+IGtvdXNldHN1XCA7CivlhpnmpI0gPiBzaGFzaG9rdVwgOwor5Yil5aCCID4gYmV0c3Vkb3VcIDsKK+WIhuWuvyA+IGJ1bnNodWt1XCA7Civlhajmu4UgPiB6ZW5tZXRzdVwgOwor5bGx6aKoID4geWFtYWthemVcIDsKK+iNieaRuiA+IGt1c2F6dXJpXCA7CivlhYjniakgPiBzYWtpbW9ub1wgOwor55m+54K5ID4gaHlha3V0ZW5cIDsKK+mAhuWkoiA+IHNha2F5dW1lXCA7CivlhYnnhrEgPiBrb3VuZXRzdVwgOwor5YmN5YiXID4gemVucmV0c3VcIDsKK+mAhuWigyA+IGd5YWtreW91XCA7CivnmYfnmaogPiBrYW5zaGFrdVwgOwor6LuN57iuID4gZ3Vuc2h1a3VcIDsKK+murea8gSA+IHNha2VyeW91XCA7CivpgZTkurogPiB0YXRzdWppblwgOwor6Imy57SZID4gc2hpa2lzaGlcIDsKK+eZvea/gSA+IGhha3VkYWt1XCA7CivlhIHnp4AgPiBzaHVuc2h1dVwgOwor5bmF5bqDID4gaGFiYWhpcm9cIDsKK+W5s+WjsCA+IGh5b3VzaG91XCA7CivlsbHpnKcgPiB5YW1hZ2lyaVwgOwor6YC45Ye6ID4gaXNzaHV0c3VcIDsKK+ebl+aSriA+IHRvdXNhdHN1XCA7CivlhaXmtbQgPiBueXV1eW9rdVwgOwor5qyg5L6/ID4ga2V0c3ViaW5cIDsKK+i7veefsyA+IGthcnVpc2hpXCA7CivliIflprsgPiBraXJpenVtYVwgOwor5be75pyrID4ga2FubWF0c3VcIDsKK+mAmuWVhiA+IHRzdXVzaG91XCA7Civot53pqqggPiBreW9rb3RzdVwgOwor5YWl5rSlID4gbnl1dXNoaW5cIDsKK+eUn+mmliA+IG5hbWFrdWJpXCA7CivlhaXmtJsgPiBueXV1cmFrdVwgOwor55u05oOFID4gY2hva3Vqb3VcIDsKK+WHtuWuhSA+IGt5b3V0YWt1XCA7CivlsbHpmpsgPiB5YW1hZ2l3YVwgOwor5bqt5YWIID4gbml3YXNha2lcIDsKK+WxsemZsCA+IHlhbWFrYWdlXCA7CivliYPliIAgPiBrYW1pc29yaVwgOwor5qiq5rOiID4geW9rb25hbWlcIDsKK+edgOWcsCA+IGNoYWt1Y2hpXCA7Civnm5fmjpggPiB0b3VrdXRzdVwgOwor55yB5bqBID4gc2hvdWNob3VcIDsKK+eVmemHkSA+IHRvbWVnYW5lXCA7CivmqYvmooEgPiBreW91cnlvdVwgOwor55S66ZW3ID4gY2hvdWNob3VcIDsKK+WxnumgmCA+IHpva3VyeW91XCA7CivpgJrlkYogPiB0c3V1a29rdVwgOwor5YmN5YCfID4gemVuc2hha3VcIDsKK+asoOS5jyA+IGtldHN1Ym91XCA7CivmpbXoh7QgPiBreW9rdWNoaVwgOwor5Yil5ZG9ID4gYmV0c3VtZWlcIDsKK+iJr+etliA+IHJ5b3VzYWt1XCA7CivnlJjpo58gPiBhbWFzaG9rdVwgOwor5YaF5p6gID4gdWNoaXdha3VcIDsKK+WIpeWQjSA+IGJldHN1bWVpXCA7CivmqYvmna0gPiBoYXNoaWd1aVwgOwor5Yil5Y+3ID4gYmV0c3Vnb3VcIDsKK+api+admSA+IGhhc2hpZ3VpXCA7CivlgJ/piq0gPiBzaGFrdXNlblwgOwor55yJ5bC7ID4gbWF5dWppcmlcIDsKK+ecn+WmgiA+IHNoaW4nJ255b1wgOwor6Iul5rC0ID4gd2FrYW1penVcIDsKK+mAmuWKmyA+IHRzdXVyaWtpXCA7CivlupflhYggPiBtaXNlc2FraVwgOwor55WU6YGTID4gYXplbWljaGlcIDsKK+iLpeauvyA+IHdha2F0b25vXCA7CivpgJrliYcgPiB0c3V1c29rdVwgOwor5Yid5Y+jID4gc2hva3VjaGlcIDsKK+aoveafvyA+IHRhcnVnYWtpXCA7Civoh63oppogPiBzaHV1a2FrdVwgOwor6YCx5LyRID4gc2h1dWt5dXVcIDsKK+ecgeWvnyA+IHNlaXNhdHN1XCA7CivmqKrmp5ggPiB5b2tvemFtYVwgOwor5qiq5qeNID4geW9rb3lhcmlcIDsKK+WGt+W+uSA+IHJlaXRldHN1XCA7CivnnaPkv4MgPiB0b2t1c29rdVwgOwor5Yik5YilID4gaGFuYmV0c3VcIDsKK+iKs+eDiCA+IGhvdXJldHN1XCA7CivluLjlrqIgPiBqb3VreWFrdVwgOwor5biz5bC7ID4gY2hvdWppcmlcIDsKK+WHuuWcnyA+IHNodXRzdWRvXCA7Civoi5fmsLQgPiBuYXdhbWl6dVwgOwor5YWI5rG6ID4gc2Vua2V0c3VcIDsKK+i7veeOhyA+IGtlaXNvdHN1XCA7CivlsbHpib4gPiB5YW1hYm9rb1wgOwor6auE6JmrID4genVpbXVzaGlcIDsKK+eahuanmCA+IG1pbmFzYW1hXCA7CivliKXlhowgPiBiZXNzYXRzdVwgOwor5Yil5YaKID4gYmVzc2F0c3VcIDsKK+W4t+WtkCA+IGthdGFiaXJhXCA7CivojYnluIIgPiBrdXNhaWNoaVwgOwor55m95qqAID4gYnlha3VkYW5cIDsKK+iLpeanmCA+IHdha2FzYW1hXCA7Civnm7TlsIQgPiBjaG9rdXNoYVwgOwor5bGx6YeMID4geWFtYXphdG9cIDsKK+mAgOWNtCA+IHRhaWt5YWt1XCA7Civov73lj4ogPiB0c3Vpa3l1dVwgOwor5qeN546JID4geWFyaWRhbWFcIDsKK+eUsumJhCA+IGtvdXRldHN1XCA7CivlsYDpnaIgPiBreW9rdW1lblwgOwor6YCa5L+hID4gdHN1dXNoaW5cIDsKK+altee3miA+IGt5b2t1c2VuXCA7CivpgJrkv5cgPiB0c3V1em9rdVwgOwor6Ii557iBID4gZnVuYWJlcmlcIDsKK+eak+aciCA+IGtvdWdldHN1XCA7CivoibLnm7ggPiBzaGlraXNvdVwgOwor6Imy55uyID4gc2hpa2ltb3VcIDsKK+ecieWiqCA+IG1heXV6dW1pXCA7CivlhoXmjqUgPiBuYWlzZXRzdVwgOwor5be05oimID4gdG9tb2VzZW5cIDsKK+WFqOabsiA+IHplbmt5b2t1XCA7CivlvpDjgIUgPiBzb3Jvc29yb1wgOwor6Lu454mpID4gamlrdW1vbm9cIDsKK+alree4viA+IGd5b3VzZWtpXCA7CivlhaXmnKggPiBueXV1Ym9rdVwgOwor55m75qW1ID4gdG91a3lva3VcIDsKK+altee0sCA+IGdva3Vib3NvXCA7CivlhaXmnJ0gPiBueXV1Y2hvdVwgOwor6YCB5YilID4gc291YmV0c3VcIDsKK+i2s+mmliA+IGFzaGlrdWJpXCA7CivlhbzmkYIgPiBrZW5zZXRzdVwgOwor5Yil5L6/ID4gYmV0c3ViaW5cIDsKK+W5tOWIpSA+IG5lbmJldHN1XCA7CivlsYDpmZAgPiBreW9rdWdlblwgOwor55Sf6YyyID4gbmFtYXJva3VcIDsKK+W3p+aLmSA+IGtvdXNldHN1XCA7Civnmb3mooUgPiBzaGlyYXVtZVwgOwor6IeG6KqsID4gb2t1c2V0c3VcIDsKK+WFiOanmCA+IHNha2lzYW1hXCA7Civlhajml6UgPiB6ZW5qaXRzdVwgOwor5biD5byVID4gbnVub2Jpa2lcIDsKK+ebo+WvnyA+IGthbnNhdHN1XCA7CivliIblipsgPiBidW5yeW9rdVwgOwor5YKN6ICzID4ga2F0YW1pbWlcIDsKK+eVpeiogCA+IHJ5YWt1Z2VuXCA7CivliKXkurogPiBiZXRzdW5pblwgOwor5YiG5YmyID4gYnVua2F0c3VcIDsKK+Wwj+mtmiA+IGtvemFrYW5hXCA7Civlt6bmiYsgPiBoaWRhcml0ZVwgOwor6Imy55S6ID4gaXJvbWFjaGlcIDsKK+iJsueUtyA+IGlyb290b2tvXCA7Civmpb3nq6AgPiBnYWt1c2hvdVwgOwor5YiG5YilID4gYnVuYmV0c3VcIDsKK+WIhuWIlyA+IGJ1bnJldHN1XCA7CivprLHnl4UgPiB1dHN1YnlvdVwgOwor6YCG5L+uID4gZ3lha3VzaHVcIDsKK+ebtOWjsiA+IGNob2t1YmFpXCA7CivlgJ/osrggPiBzaGFrdXRhaVwgOwor5YCf6LKhID4gc2hha3V6YWlcIDsKK+WGrOWxsSA+IGZ1eXV5YW1hXCA7CivliIblhoogPiBidW5zYXRzdVwgOwor6LuN55WlID4gZ3Vucnlha3VcIDsKK+eUqOmBlCA+IHlvdXRhdHN1XCA7CivojZLlpLcgPiBhcmFlYmlzdVwgOwor5qW156uvID4ga3lva3V0YW5cIDsKK+ecn+WNlyA+IG1hbWluYW1pXCA7CivnlaXoo4UgPiByeWFrdXNvdVwgOwor5YiX5LydID4gcmV0c3VkZW5cIDsKK+WFseaMryA+IGt5b3VzaGluXCA7CivoiLnnq68gPiBmdW5hYmF0YVwgOwor6a+o5bqnID4ga3VqaXJhemFcIDsKK+edgOS7uyA+IGNoYWt1bmluXCA7CivovrvloIIgPiB0c3VqaWRvdVwgOwor5L+66YGUID4gb3JldGFjaGlcIDsKK+ecn+WLhyA+IHNoaW4nJ3l1dVwgOwor5YKY57SZID4ga2FzYWdhbWlcIDsKK+eZveaYvCA+IGhha3VjaHV1XCA7Civnl7znlr4gPiBrb3NoaXRzdVwgOwor5Ye65YemID4gZGVkb2tvcm9cIDsKK+WBveiAhSA+IG5pc2Vtb25vXCA7CivlhYvmnI0gPiBrb2t1ZnVrdVwgOwor55S76LOqID4gZ2FzaGl0c3VcIDsKK+i3s+i6jSA+IGNob3V5YWt1XCA7Civov73kvLggPiB0c3Vpc2hpblwgOwor55m65piOID4gaGF0c3VtZWlcIDsKK+mAhuS4iiA+IGd5YWt1am91XCA7CivlhYjmnIggPiBzZW5nZXRzdVwgOwor5bmz5LuEID4gaHlvdXNva3VcIDsKK+WGhuW9oiA+IG1hcnVnYXRhXCA7CivlsJHpoY0gPiBzaG91Z2FrdVwgOwor6L+U5Y20ID4gaGVua3lha3VcIDsKK+Wwj+mhjSA+IHNob3VnYWt1XCA7Civlh7blhYYgPiBreW91Y2hvdVwgOwor6amA6YCyID4gYmFrdXNoaW5cIDsKK+alk+ezliA+IGthZWRldG91XCA7CivluZXlhoUgPiBtYWt1dWNoaVwgOwor5be75bC6ID4gbWFraWpha3VcIDsKK+WFiOaXpSA+IHNlbmppdHN1XCA7CivlgJ/opqcgPiBzaGFrdXJhblwgOwor6aeS6bOlID4ga29tYWRvcmlcIDsKK+WBpeiEmiA+IGtlbmt5YWt1XCA7CivluZXlg5ogPiBiYWt1cnlvdVwgOwor5YaZ5a6fID4gc2hhaml0c3VcIDsKK+WFg+aXpSA+IGdhbmppdHN1XCA7Civnmb3mj48gPiBoYWt1YnlvdVwgOwor5bC76YeNID4gc2hpcmlvbW9cIDsKK+iEm+mqqCA+IGtlaWtvdHN1XCA7CivlhYPmlrkgPiBtb3Rva2F0YVwgOwor55m65o+aID4gaGF0c3V5b3VcIDsKK+iMtuWjuiA+IGNoYXRzdWJvXCA7Civkv67ouqsgPiBzaHV1c2hpblwgOwor55m65o6YID4gaGFra3V0c3VcIDsKK+W3neW6lSA+IGthd2F6b2tvXCA7Civlt53luoogPiBrYXdhZG9rb1wgOwor5Ye25L2cID4ga3lvdXNha3VcIDsKK+amgueVpSA+IGdhaXJ5YWt1XCA7Civlt53luYUgPiBrYXdhaGFiYVwgOwor5Ye65LqsID4gc2h1a2t5b3VcIDsKK+WCt+eXhSA+IHNob3VieW91XCA7CivmpI7ojLggPiBzaGlpdGFrZVwgOwor5bee5beeID4gc2h1dXNodXVcIDsKK+WBnOiBtyA+IHRlaXNob2t1XCA7CivkvpHpo58gPiB5dXVzaG9rdVwgOwor5YaF5bGAID4gbmFpa3lva3VcIDsKK+eUt+imqiA+IG90b2tvb3lhXCA7Civlh5vlhr0gPiByaW5yZXRzdVwgOwor6Iqx5p+EID4gaGFuYWdhcmFcIDsKK+WFrOW8jyA+IGtvdXNoaWtpXCA7CivlsbHopZ4gPiB5YW1haGlkYVwgOwor6L675Y2gID4gdHN1aml1cmFcIDsKK+anmOanmCA+IHNhbWF6YW1hXCA7CivnnJ/kuK0gPiBtYW4nJ25ha2FcIDsKK+WGheWvhiA+IG5haW1pdHN1XCA7CivoirHmnZ8gPiBoYW5hdGFiYVwgOwor5YaF5a6fID4gbmFpaml0c3VcIDsKK+WFseW4gyA+IHRvbW9udW5vXCA7CivlsbHoo74gPiB5YW1hc3Vzb1wgOwor6auY56m6ID4gdGFrYXpvcmFcIDsKK+iKseacrSA+IGhhbmFmdWRhXCA7Civnmb7mhYsgPiBoeWFrdXRhaVwgOwor55eU55a+ID4gamlzaGl0c3VcIDsKK+WFq+W5oSA+IGhhY2hpbWFuXCA7Civlt6Hlr58gPiBqdW5zYXRzdVwgOwor6Lu95qWtID4ga2FydXdhemFcIDsKK+W3neWwuyA+IGthd2FqaXJpXCA7Civnm7TliY0gPiBjaG9rdXplblwgOwor5qOS6KGTID4gYm91anV0c3VcIDsKK+iNieWPoiA+IGt1c2FtdXJhXCA7CivoirHmmYIgPiBoYW5hZG9raVwgOwor5YWl5bmVID4gbnl1dW1ha3VcIDsKK+ebtOWIgCA+IGNob2t1dG91XCA7Civnmbrmg4UgPiBoYXRzdWpvdVwgOwor5L+z6KyUID4gaGFpZ3lha3VcIDsKK+WyqeiEiCA+IGdhbm15YWt1XCA7CivluLPlhYMgPiBjaG91bW90b1wgOwor55eF55qEID4gYnlvdXRla2lcIDsKK+aoquW5hSA+IHlva29oYWJhXCA7Civnl4XnmZYgPiBieW91aGVraVwgOwor6IO46auYID4gbXVuYWRha2FcIDsKK+S/g+mAsiA+IHNva3VzaGluXCA7CivmqJnlvrQgPiBoeW91Y2hvdVwgOwor55eF55eHID4gYnlvdXNob3VcIDsKK+WGt+WNtCA+IHJlaWt5YWt1XCA7Civoho/ooYAgPiBrb3VrZXRzdVwgOwor5YK354mpID4ga2l6dW1vbm9cIDsKK+eZvuW8iiA+IGh5YWt1aGVpXCA7Civlh53kubMgPiBneW91bnl1dVwgOwor55Wc6IiOID4gY2hpa3VzaGFcIDsKK+WFseWtpiA+IGt5b3VnYWt1XCA7CivlhoXlo5UgPiB1Y2hpYm9yaVwgOwor5bCR6YePID4gc2hvdXJ5b3VcIDsKK+WFqOWxgCA+IHplbmt5b2t1XCA7CivlhYvlvqkgPiBrb2t1ZnVrdVwgOwor55m+5bm0ID4gaHlha3VuZW5cIDsKK+i2s+i7vSA+IGFzaGlnYXJ1XCA7CivlsI/ph48gPiBzaG91cnlvdVwgOwor5YGl562GID4ga2VucGl0c3VcIDsKK+WvkumkhSA+IGthbm1vY2hpXCA7Civlr67plbcgPiByeW91Y2hvdVwgOwor5YWI5b25ID4gc2VuJyd5YWt1XCA7Civkv4rotrMgPiBzaHVuc29rdVwgOwor5YaF5aCAID4gdWNoaWJvcmlcIDsKK+WFpeWvgiA+IG55dXVqYWt1XCA7Civoh6PnsY0gPiBzaGluc2VraVwgOwor5L+h6KqNID4gc2hpbicnbmluXCA7CivlhoblnosgPiBtYXJ1Z2F0YVwgOwor6L6b5YudID4gc2hpbnNob3VcIDsKK+WFpeWtpiA+IG55dXVnYWt1XCA7Civmpa3niakgPiB3YXphbW9ub1wgOwor6LWk6Z20ID4gYWthZ3V0c3VcIDsKK+i2s+i3oSA+IHNva3VzZWtpXCA7Civkv6HoqLwgPiBzaGluc2hvdVwgOwor5bee5aKDID4gc2h1dWt5b3VcIDsKK+S/oeiolyA+IHNoaW50YWt1XCA7Civlrr/pp4UgPiBzaHVrdWVraVwgOwor5qW154K5ID4ga3lva3V0ZW5cIDsKK+S/l+iqvyA+IHpva3VjaG91XCA7CivoiIznmYwgPiB6ZXRzdWdhblwgOwor55u05LitID4gdGFkYW5ha2FcIDsKK+iKseaIvyA+IGhhbmFmdXNhXCA7Civnm7TkuIogPiBjaG9rdWpvdVwgOwor55ar55eFID4geWFrdWJ5b3VcIDsKK+iLpeWuriA+IHdha2FtaXlhXCA7CivlhYPluLMgPiBtb3RvY2hvdVwgOwor5a+b6ZeKID4ga2Fua2F0c3VcIDsKK+WvuOmJhCA+IHN1bnRldHN1XCA7Civnmb7lrrMgPiBoeWFrdWdhaVwgOwor5YG255m6ID4gZ3V1aGF0c3VcIDsKK+Wwj+i6qyA+IHNob3VzaGluXCA7Civlrr/poZggPiBzaHVrdWdhblwgOwor55Sf6JasID4gc2hvdXlha3VcIDsKK+Wuv+mhjCA+IHNodWt1ZGFpXCA7Civnk7boqbAgPiBiaW5kenVtZVwgOwor5YGP56qfID4gaGVua3V0c3VcIDsKK+WFiOWxsSA+IHNha2l5YW1hXCA7CivnlLfoibIgPiBuYW5zaG9rdVwgOwor6ISx6LyqID4gZGF0c3VyaW5cIDsKK+i5tOeQgyA+IHNodXVreXV1XCA7CivlgLnntIQgPiBrZW4nJ3lha3VcIDsKK+iNieS4iCA+IGt1c2F0YWtlXCA7CivlhaXlob4gPiBueXV1anVrdVwgOwor6auY546HID4ga291cml0c3VcIDsKK+mnv+i2syA+IHNodW5zb2t1XCA7CivlhKrlvaIgPiB5YXNhZ2F0YVwgOwor5YWI5a6iID4gc2Vua3lha3VcIDsKK+eWteeJqSA+IGtpenVtb25vXCA7Civkv5fooYYgPiB6b2t1c2h1dVwgOwor5bGx6IaaID4geWFtYWhhZGFcIDsKK+amleaouSA+IGdhanVtYXJ1XCA7CivlhYjlrokgPiBzYWtpeWFzdVwgOwor6aas6Z2iID4gdW1hZHp1cmFcIDsKK+ebl+S8kCA+IHRvdWJhdHN1XCA7Civnmb7lp5MgPiBoeWFrdXNlaVwgOwor5bKp56qfID4gZ2Fua3V0c3VcIDsKK+attOOAhSA+IHJla2lyZWtpXCA7CivlhYXlrp8gPiBqdXVqaXRzdVwgOwor6Iqx5b2iID4gaGFuYWdhdGFcIDsKK+ebl+S6uiA+IG51c3ViaXRvXCA7Civnmb3lppkgPiBzaGlyb3RhZVwgOwor5bGx6ISIID4geWFtYW5hbWlcIDsKK+iKseW8gSA+IGhhbmFiaXJhXCA7CivlsbHogowgPiB5YW1haGFkYVwgOwor5YWl5Zu9ID4gbnl1dWtva3VcIDsKK+altea0iyA+IGt5b2t1eW91XCA7Civnmb3lo4EgPiBoYWt1aGVraVwgOwor6auY54axID4ga291bmV0c3VcIDsKK+eZveWiqCA+IGhha3Vib2t1XCA7Civnmbrlo7IgPiBoYXRzdWJhaVwgOwor5YaF5YqbID4gbmFpcnlva3VcIDsKK+i1pOmKhSA+IHNoYWt1ZG91XCA7Civlgb3niakgPiBuaXNlbW9ub1wgOwor55qu5YmlID4ga2F3YWhhZ2lcIDsKK+W3qOWIuSA+IGt5b3NhdHN1XCA7Civpqqjnm6QgPiBrb3RzdWJhblwgOwor6a+J5Y+jID4ga29pZ3VjaGlcIDsKK+eUn+iJsiA+IHNlaXNob2t1XCA7CivlhYjlpKogPiBzYWtpYnV0b1wgOwor6LaF6LaKID4gY2hvdWV0c3VcIDsKK+WumumjnyA+IHRlaXNob2t1XCA7CivlhbXljZIgPiBoZWlzb3RzdVwgOwor5qeY5byPID4geW91c2hpa2lcIDsKK+S8tOmjnyA+IGJhbnNob2t1XCA7CivlhbXlipsgPiBoZWlyeW9rdVwgOwor5qW95qW9ID4gcmFrdXJha3VcIDsKK+mrmOa9riA+IHRha2FzaGlvXCA7CivlhoXlgbQgPiB1Y2hpZ2F3YVwgOwor6ISF6L+rID4ga3lvdWhha3VcIDsKK+mrmOa9lCA+IGtvdWtldHN1XCA7CivohbnohpwgPiBmdWt1bWFrdVwgOwor5YaF5YCJID4gdWNoaWd1cmFcIDsKK+iKseWuiCA+IGhhbmFtb3JpXCA7Civog7jpg60gPiBreW91a2FrdVwgOwor5YW25YW2ID4gc29yZXpvcmVcIDsKK+eXheavkiA+IGJ5b3Vkb2t1XCA7CivmpbXmpb0gPiBnb2t1cmFrdVwgOwor5qW15qW1ID4gZ29rdWdva3VcIDsKK+eXheattCA+IGJ5b3VyZWtpXCA7CivoirHlq4EgPiBoYW5heW9tZVwgOwor5YWo5YqbID4gemVucnlva3VcIDsKK+WFseWFsSA+IHRvbW9kb21vXCA7CivoirHlqb8gPiBoYW5hbXVrb1wgOwor6LSL6aaWID4gbmlzZWt1YmlcIDsKK+S+m+iolyA+IGt5b3V0YWt1XCA7Civoi6XlkJsgPiB3YWthZ2ltaVwgOwor5bGA6IiOID4ga3lva3VzaGFcIDsKK+W3nuS/lyA+IHNodXV6b2t1XCA7Civkv6HohbkgPiBzaGlucHVrdVwgOwor5qSN55SfID4gc2hva3VzZWlcIDsKK+aoqeWKmyA+IGtlbnJ5b2t1XCA7CivlhKrlpbMgPiB5YXNhb24nJ2FcIDsKK+eUu+etliA+IGtha3VzYWt1XCA7Civmn5Ppq6ogPiBzZW5wYXRzdVwgOwor5a6/6YWUID4gc2h1a3VzdWlcIDsKK+i1q+i1qyA+IGtha3VrYWt1XCA7CivkvLjplbcgPiBzaGluY2hvdVwgOwor5a+G6YCgID4gbWl0c3V6b3VcIDsKK+alveabsiA+IGdha2t5b2t1XCA7Civpq5jms6IgPiB0YWthbmFtaVwgOwor5Lya6aOfID4ga2Fpc2hva3VcIDsKK+WAkueriyA+IHRvdXJpdHN1XCA7Civkv5foh60gPiB6b2t1c2h1dVwgOwor6Imy5oSfID4gc2hpa2lrYW5cIDsKK+W3puS4iiA+IGhpZGFyaXVlXCA7CivlhYjlk7IgPiBzZW50ZXRzdVwgOwor5qW15p2xID4ga3lva3V0b3VcIDsKK+iJsuaDhSA+IHNoaWtpam91XCA7CivprZrlsYsgPiBzYWthbmF5YVwgOwor6Lez566xID4gdG9iaWJha29cIDsKK+i7n+W8jyA+IG5hbnNoaWtpXCA7Civpq5jmrr8gPiB0YWthZG9ub1wgOwor5YGP54mHID4ga2F0YWhhcmFcIDsKK+W3neS4iiA+IGthd2FrYW1pXCA7CivlsbHnqIsgPiB5YW1haG9kb1wgOwor55m65YuVID4gaGF0c3Vkb3VcIDsKK+WFiOWPoyA+IHNlbmt1Y2hpXCA7CivogovpqqggPiByb2trb3RzdVwgOwor55Wc55SjID4gY2hpa3VzYW5cIDsKK+iJsuW9qSA+IHNoaWtpc2FpXCA7Civoia/lv4MgPiByeW91c2hpblwgOwor55Sf57GzID4gbmFtYWdvbWVcIDsKK+eUqOethiA+IHlvdWhpdHN1XCA7CivlhaXkv6EgPiBueXV1c2hpblwgOwor6IeT54mpID4gem91bW90c3VcIDsKK+S/l+e/kiA+IHpva3VzaHV1XCA7CivpgZnjgIUgPiBoYXJ1YmFydVwgOwor6aqo54GwID4ga290c3ViYWlcIDsKK+iIueaXhSA+IGZ1bmF0YWJpXCA7CivoiLnmlrkgPiBmdW5ha2F0YVwgOwor6Iqx5ZySID4gaGFuYXpvbm9cIDsKK+WFpeS8uCA+IG55dXVzaGluXCA7CivlhYnlipsgPiBrb3VyeW9rdVwgOwor6LuN5b6LID4gZ3Vucml0c3VcIDsKK+i7jeW9uSA+IGd1bicneWFrdVwgOwor55m+5YSEID4gaHlha3Vva3VcIDsKK+WxkeexoCA+IGt1enVrYWdvXCA7Civnl5vmkoMgPiB0c3V1Z2VraVwgOwor5YWo5LmzID4gemVuJydueXV1XCA7CivmoLzoqr8gPiBrYWt1Y2hvdVwgOwor5YWl5LqsID4gbnl1dWt5b3VcIDsKK+i8uOWHuiA+IHl1c2h1dHN1XCA7CivmpoLmi6wgPiBnYWlrYXRzdVwgOwor6Iag552AID4ga291Y2hha3VcIDsKK+S/oee1jCA+IHNoaW5reW91XCA7CivkvbXoqK0gPiBoZWlzZXRzdVwgOwor55m+5YCNID4gaHlha3ViYWlcIDsKK+i7iuW6pyA+IGt1cnVtYXphXCA7CivlhYjlhaUgPiBzZW4nJ255dXVcIDsKK+aoquS4gSA+IHlva29jaG91XCA7CivlgJ/nlKggPiBzaGFrdXlvdVwgOwor5a6/6LODID4geWFkb2NoaW5cIDsKK+eVnOeKrCA+IGNoaWt1a2VuXCA7Civlgo3mnZYgPiBzb2JhZHp1ZVwgOwor5YWD5YWDID4gbW90b21vdG9cIDsKK+WvneiiiyA+IG5lYnVrdXJvXCA7Civoip3lnLAgPiBzaGliYWNoaVwgOwor55qE5LitID4gdGVraWNodXVcIDsKK+Wwsee4myA+IHNodXViYWt1XCA7Civlr4borIAgPiBtaXRzdWJvdVwgOwor5a+G6KuHID4gbWl0c3VkYW5cIDsKK+eZuuS7pCA+IGhhdHN1cmVpXCA7Civoia/lsIYgPiByeW91c2hvdVwgOwor5a6i6LuKID4ga3lha3VzaGFcIDsKK+iEseiJsiA+IGRhc3Nob2t1XCA7Civnmb7kuJYgPiBoeWFrdXNlaVwgOwor6auY5pytID4ga291c2F0c3VcIDsKK+eZvuS4hyA+IGh5YWt1bWFuXCA7CivlsI/ohbggPiBzaG91Y2hvdVwgOwor5LuZ6aqoID4gc2Vua290c3VcIDsKK+WuiemFkiA+IHlhc3V6YWtlXCA7Civlg7vlooMgPiBoZWtpa3lvdVwgOwor5a2m6ZW3ID4gZ2FrdWNob3VcIDsKK+i7iuWxiyA+IGt1cnVtYXlhXCA7CivlhKrliqMgPiB5dXVyZXRzdVwgOwor6Lqr5b+DID4gc2hpbnNoaW5cIDsKK+eXm+aDnCA+IHRzdXVzZWtpXCA7Civlgb3mnK0gPiBuaXNlZnVkYVwgOwor6LSL6YeRID4gbmlzZWdhbmVcIDsKK+WAn+eJqSA+IGthcmltb25vXCA7CivluqbjgIUgPiB0YWJpdGFiaVwgOwor6LWk6JuZID4gYWthZ2FlcnVcIDsKK+WCt+W/gyA+IHNob3VzaGluXCA7Civku5jppqwgPiB0c3VrZXVtYVwgOwor6LWk6JmrID4gYWthbXVzaGlcIDsKK+S9l+iogCA+IHdhYmlnb3RvXCA7CivnlJ/nmq4gPiBuYW1ha2F3YVwgOwor5YG05p2WID4gc29iYWR6dWVcIDsKK+alteaApyA+IGt5b2t1c2VpXCA7Civnl5vlv4MgPiB0c3V1c2hpblwgOwor6Imy5aWzID4gaXJvb24nJ25hXCA7CivovKrkvJAgPiByaW5iYXRzdVwgOwor5YCN546HID4gYmFpcml0c3VcIDsKK+S/l+ensCA+IHpva3VzaG91XCA7CivlsbHnjL8gPiB5YW1hemFydVwgOwor5bGx54yrID4geWFtYW5la29cIDsKK+S8nemBlCA+IGRlbnRhdHN1XCA7CivmpI3msJEgPiBzaG9rdW1pblwgOwor5a+16IejID4gY2hvdXNoaW5cIDsKK+akjeavmyA+IHNob2t1bW91XCA7CivogonpjYsgPiBuaWt1bmFiZVwgOwor55S354i1ID4gZGFuc2hha3VcIDsKK+S6uumtgiA+IGhpdG9kYW1hXCA7Civohbnnl5sgPiBmdWt1dHN1dVwgOwor6Ii55bqVID4gZnVuYXpva29cIDsKK+iIueW6iiA+IGZ1bmFkb2tvXCA7Civpp4bokL0gPiBrYWtlb2NoaVwgOwor5qW15biMID4gZ29rdW1hcmVcIDsKK+S/iuengCA+IHNodW5zaHV1XCA7CivkurrpqqggPiBqaW5rb3RzdVwgOwor5bCP57WQID4ga29tdXN1YmlcIDsKK+Wun+iqrCA+IGppc3NldHN1XCA7CivlsaXniakgPiBoYWtpbW9ub1wgOwor55eF5b60ID4gYnlvdWNob3VcIDsKK+WumuiqrCA+IHRlaXNldHN1XCA7Civoh6jmnIggPiByaW5nZXRzdVwgOwor55eF5byxID4gYnlvdWpha3VcIDsKK+W6g+OAhSA+IGhpcm9iaXJvXCA7CivpqqjmnZAgPiBrb3RzdXphaVwgOwor55Sj54mpID4gc2FuYnV0c3VcIDsKK+WumOiorSA+IGthbnNldHN1XCA7CivmpJzmnK0gPiBrZW5zYXRzdVwgOwor6Iej5pyNID4gc2hpbnB1a3VcIDsKK+iyqumjnyA+IGRvbnNob2t1XCA7Civnl4XluoogPiBieW91c2hvdVwgOwor5L+h55SoID4gc2hpbicneW91XCA7CivohIfohbkgPiB3YWtpYmFyYVwgOwor55Sf54mpID4gbmFtYW1vbm9cIDsKK+S+m+e1piA+IGt5b3VreXV1XCA7CivlsYDnlaogPiBreW9rdWJhblwgOwor5bCP562WID4gc2hvdXNha3VcIDsKK+anjeWFiCA+IHlhcmlzYWtpXCA7Civnl7Dlo7ogPiB0YW50c3Vib1wgOwor6auq5bqKID4ga2FtaWRva29cIDsKK+WvkuiJsiA+IGthbnNob2t1XCA7CivmpI3moL0gPiBzaG9rdXNhaVwgOwor5LyR6LazID4ga3l1dXNva3VcIDsKK+iIueWuvyA+IGZ1bmF5YWRvXCA7Civku4/ploAgPiBidXRzdW1vblwgOwor6Ii55a6iID4gc2Vua3lha3VcIDsKK+WCjeW9uSA+IHdha2l5YWt1XCA7Civogonov6sgPiBuaWt1aGFrdVwgOwor5qC46IacID4ga2FrdW1ha3VcIDsKK+S6oemquCA+IG5ha2lnYXJhXCA7Civoh5jmnIggPiByb3VnZXRzdVwgOwor5qSN5p6XID4gc2hva3VyaW5cIDsKK+WujOiosyA+IGthbicneWFrdVwgOwor6IO46IacID4ga3lvdW1ha3VcIDsKK+mjvemjnyA+IGhvdXNob2t1XCA7Civkv67nhp8gPiBzaHV1anVrdVwgOwor5a6F6Ki6ID4gdGFrdXNoaW5cIDsKK+Wwj+emhCA+IHNob3Vyb2t1XCA7CivkvJ3oqqwgPiBkZW5zZXRzdVwgOwor6Laz55mWID4gYXNoaWt1c2VcIDsKK+iEseeojiA+IGRhdHN1emVpXCA7Civkuqzpn78gPiBreW91a3lvdVwgOwor6Lui5YWlID4gdGVuJydueXV1XCA7Civlr77nq4sgPiB0YWlyaXRzdVwgOwor6IWr54mpID4gc2h1bW90c3VcIDsKK+alteWkpyA+IGt5b2t1ZGFpXCA7CivnlaXmm7ggPiByeWFrdXNob1wgOwor5a6/6IiOID4gc2h1a3VzaGFcIDsKK+i7jeWNkiA+IGd1bnNvdHN1XCA7Civls7Dls7AgPiBtaW5lbWluZVwgOwor5a656ImyID4geW91c2hva3VcIDsKK+S7i+mMryA+IGthaXNoYWt1XCA7Civmo67mo64gPiBzaGluc2hpblwgOwor5bWM5YWlID4ga2FuJydueXV1XCA7Civou5LliKUgPiBrZW5iZXRzdVwgOwor5YG05b25ID4gc29iYXlha3VcIDsKK+i7ouWAnyA+IHRlbnNoYWt1XCA7CivohIrntKIgPiBzZWtpc2FrdVwgOwor5LyR6Ki6ID4ga3l1dXNoaW5cIDsKK+iyoemWpSA+IHphaWJhdHN1XCA7CivnkrDnr4AgPiBrYW5zZXRzdVwgOwor5pyo6bygID4ga2luZXp1bWlcIDsKK+mqqOaKmCA+IGtvc3NldHN1XCA7CivohJrnq4sgPiBreWF0YXRzdVwgOwor5YO75LqLID4gaGlnYWdvdG9cIDsKK+eVpeaWhyA+IHJ5YWt1YnVuXCA7Civou5LlhYggPiBub2tpc2FraVwgOwor5qC557W2ID4ga29uemV0c3VcIDsKK+alteWcsCA+IGt5b2t1Y2hpXCA7Civmnp3pgZMgPiBlZGFtaWNoaVwgOwor5a6/6ICBID4gc2h1a3Vyb3VcIDsKK+S9v+evgCA+IHNoaXNldHN1XCA7Civosrjph5EgPiBrYXNoaWtpblwgOwor6auY5a+fID4ga291c2F0c3VcIDsKK+WAkuanmCA+IHNha2FzYW1hXCA7CivnlJ/mtLsgPiBzZWlrYXRzdVwgOwor6auY5a+GID4ga291bWl0c3VcIDsKK+S7j+mBkyA+IGJ1dHN1ZG91XCA7CivkvZXogIUgPiBuYW5pbW9ub1wgOwor6Imv5L+XID4gcnlvdXpva3VcIDsKK+S9j+iBtyA+IGp1dXNob2t1XCA7Civmn5TooZMgPiBqdXVqdXRzdVwgOwor55Sf5rC0ID4gbmFtYW1penVcIDsKK+iDuOezniA+IG11bmVrdXNvXCA7CivlrqLoiLkgPiBreWFrdXNlblwgOwor6ICQ6aOfID4gdGFpc2hva3VcIDsKK+iAgemqqCA+IHJvdWtvdHN1XCA7CivmnpXovrogPiBtYWt1cmFiZVwgOwor5bCk54mpID4geXV1YnV0c3VcIDsKK+WuouiIjiA+IGt5YWt1c2hhXCA7CivkubHpq6ogPiByYW5wYXRzdVwgOwor5L2T572wID4gdGFpYmF0c3VcIDsKK+eXm+WTrSA+IHRzdXVrb2t1XCA7CivnlJ/mrpYgPiBzZWlzaG9rdVwgOwor5Lq66YeMID4gaGl0b3phdG9cIDsKK+WuouiGsyA+IGt5YWt1emVuXCA7CivogonopqogPiBuaWt1c2hpblwgOwor5a+M57GkID4gdG9taWt1amlcIDsKK+WBteWvnyA+IHRlaXNhdHN1XCA7Civog73nrYYgPiBub3VoaXRzdVwgOwor5Lm+6aKoID4ga2FyYWthemVcIDsKK+mrquWeiyA+IGthbWlnYXRhXCA7Civoia/kuYUgPiByeW91a3l1dVwgOwor5p2R6ZuoID4gbXVyYXNhbWVcIDsKK+i7kuS4piA+IG5va2luYW1pXCA7Civou5LkuIggPiBub2tpdGFrZVwgOwor5a+S56u5ID4ga2FuY2hpa3VcIDsKK+aciOm9oiA+IGdldHN1cmVpXCA7Civmpb3ljKAgPiBnYWt1c2hvdVwgOwor5qW95YudID4gcmFrdXNob3VcIDsKK+i3s+aigSA+IGNob3VyeW91XCA7Civlr5LnqbogPiBzYW11em9yYVwgOwor5Luw6KeSID4gZ3lvdWtha3VcIDsKK+alveWKhyA+IGdha3VnZWtpXCA7Civpo4Tpo4QgPiBoeW91aHlvdVwgOwor5pyo6aqoID4gbW9ra290c3VcIDsKK+S+r+eItSA+IGtvdXNoYWt1XCA7Civnjonpq4QgPiBneW9rdXp1aVwgOwor6IG06Ki6ID4gY2hvdXNoaW5cIDsKK+S/l+a1gSA+IHpva3VyeXV1XCA7CivlrprogbcgPiB0ZWlzaG9rdVwgOwor5a6Y6IG3ID4ga2Fuc2hva3VcIDsKK+WBpeWunyA+IGtlbmppdHN1XCA7Civosarpm6ogPiBnb3VzZXRzdVwgOwor6IG06KaaID4gY2hvdWtha3VcIDsKK+ePjemHjSA+IGNoaW5jaG91XCA7Civnm7TjgIUgPiBqaWtpamlraVwgOwor6Ieq5a6kID4gamlzaGl0c3VcIDsKK+WBtOWjgSA+IHNva3VoZWtpXCA7CivmpJzlsL8gPiBrZW4nJ255b3VcIDsKK+S5sembkSA+IHJhbnphdHN1XCA7CivlsZ7mnJsgPiBzaG9rdWJvdVwgOwor6IG06KGGID4gY2hvdXNodXVcIDsKK+S4rem7kiA+IG5ha2FndXJvXCA7CivmpJzlr58gPiBrZW5zYXRzdVwgOwor5Lq66LazID4gaGl0b2FzaGlcIDsKK+WvvueJqSA+IHRhaWJ1dHN1XCA7CivogonoloQgPiBuaWt1aGFrdVwgOwor546J6aGUID4gZ3lva3VnYW5cIDsKK+mir+miryA+IHNhc3NhdHN1XCA7CivlgY/lsYggPiBoZW5rdXRzdVwgOwor5LuP6KqsID4gYnVzc2V0c3VcIDsKK+WztuWPsCA+IHNoaW1hZGFpXCA7Civku4foro4gPiBreXV1c2h1dVwgOwor5L2155m6ID4gaGVpaGF0c3VcIDsKK+mnkOeVmSA+IGNodXVyeXV1XCA7CivnlaXluL0gPiByeWFrdWJvdVwgOwor5pyd6aOvID4gYXNhbWVzaGlcIDsKK+S9leeoiyA+IG5hbmlob2RvXCA7Civpoqjpo58gPiBmdXVzaG9rdVwgOwor55Wz5bGLID4gdGF0YW1peWFcIDsKK+WBtOWcpyA+IHNva3VhdHN1XCA7CivotJbnvaogPiBzaG9rdXphaVwgOwor6IKp6IKYID4ga2F0YWhpamlcIDsKK+afk+iJsiA+IHNlbnNob2t1XCA7CivouqvkuK0gPiBzaGluY2h1dVwgOwor5p2R6YeMID4gbXVyYXphdG9cIDsKK+S7meihkyA+IHNlbmp1dHN1XCA7Civoh6rlpLEgPiBqaXNoaXRzdVwgOwor5L+X5qW9ID4gem9rdWdha3VcIDsKK+mmluetiyA+IGt1YmlzdWppXCA7CivkvYfnq4sgPiBjaG9yaXRzdVwgOwor6LSL6ICFID4gbmlzZW1vbm9cIDsKK+WvhuedgCA+IG1pdGNoYWt1XCA7CivohbDmnb8gPiBrb3NoaWl0YVwgOwor6IKh6IKJID4gbW9tb25pa3VcIDsKK+iEsea8jyA+IGRhdHN1cm91XCA7Civog7jnl5sgPiBreW91dHN1dVwgOwor5Li46au3ID4gbWFydW1hZ2VcIDsKK+WxiOabsiA+IGt1a2t5b2t1XCA7CivoiLnkurogPiBmdW5hYml0b1wgOwor6aqo5aSqID4gaG9uZWJ1dG9cIDsKK+mrmOWNkiA+IGtvdXNvdHN1XCA7CivlsLHmpa0gPiBzaHV1Z3lvdVwgOwor6aOf6YGTID4gc2hva3Vkb3VcIDsKK+iwt+miqCA+IHRhbmlrYXplXCA7Civkv6HmnI0gPiBzaGlucHVrdVwgOwor5Luu6JG6ID4ga2FyaWJ1a2lcIDsKK+miqOmbqiA+IGZ1dXNldHN1XCA7CivlrozntZAgPiBrYW5rZXRzdVwgOwor5p+U6IKMID4geWF3YWhhZGFcIDsKK+mnkOeLrCA+IGNodXVkb2t1XCA7CivnjonploAgPiBneW9rdW1vblwgOwor6aWS6IiMID4gam91emV0c3VcIDsKK+aciOmjnyA+IGdlc3Nob2t1XCA7CivmoJfnn7MgPiBrdXJpaXNoaVwgOwor5bCP5rOiID4gc2F6YW5hbWlcIDsKK+ebiuOAhSA+IG1hc3VtYXN1XCA7Civlrprnq4sgPiB0ZWlyaXRzdVwgOwor5Li46aaWID4gbWFydWt1YmlcIDsKK+S4remrmCA+IG5ha2FkYWthXCA7Civlrpjnq4sgPiBrYW5yaXRzdVwgOwor6IO9546HID4gbm91cml0c3VcIDsKK+i2s+alrSA+IGFzaGl3YXphXCA7CivmnKjpkLggPiBib2t1dGFrdVwgOwor5Li76aOfID4gc2h1c2hva3VcIDsKK+mpmuaElSA+IGt5b3VnYWt1XCA7Civkv5fmm7IgPiB6b2treW9rdVwgOwor5LuZ6JasID4gc2VuJyd5YWt1XCA7CivkvZznl4UgPiBzYWt1YnlvdVwgOwor5L2V55m+ID4gbmFuYnlha3VcIDsKK+S7geihkyA+IGppbmp1dHN1XCA7Civkv6HmlZkgPiBzaGlua3lvdVwgOwor5qGc5rmvID4gc2FrdXJheXVcIDsKK+aknOWcpyA+IGtlbicnYXRzdVwgOwor5LiA6b2jID4gaGl0b2tvbWFcIDsKK+i2s+aisCA+IGFzaGlrYXNlXCA7CivmnIjpnaIgPiBnZXRzdW1lblwgOwor5Lmz6YWqID4gbnl1dXJha3VcIDsKK+WwveaXpSA+IGppbmppdHN1XCA7CivlsJHmrLIgPiBzaG91eW9rdVwgOwor55S75byVID4ga2FrdWJpa2lcIDsKK+eVmeWtpiA+IHJ5dXVnYWt1XCA7Civlrabnv5IgPiBnYWt1c2h1dVwgOwor6LeL5paHID4gYmF0c3VidW5cIDsKK+WxseW9piA+IHlhbWFiaWtvXCA7CivlsbHlvaIgPiB5YW1hZ2F0YVwgOwor55eF5LitID4gYnlvdWNodXVcIDsKK+Wwj+assiA+IHNob3V5b2t1XCA7CivlgbblipsgPiBndXVyeW9rdVwgOwor5p+T57mUID4gc2Vuc2hva3VcIDsKK+S7u+iBtyA+IG5pbnNob2t1XCA7CivohLHmr5sgPiBkYXRzdW1vdVwgOwor5bCC5rG6ID4gc2Vua2V0c3VcIDsKK+ain+aVtSA+IGt5b3V0ZWtpXCA7CivmnKjpi48gPiBraWJhc2FtaVwgOwor6Iif5Lq6ID4gZnVuYWJpdG9cIDsKK+iyp+ihgCA+IGhpbmtldHN1XCA7CivotrPmnrcgPiBhc2hpa2FzZVwgOwor6ICz6KixID4gbWltaW1vdG9cIDsKK+WCkeS6uiA+IGtldHN1amluXCA7Civlr77msbogPiB0YWlrZXRzdVwgOwor5bCE5q66ID4gc2hhc2F0c3VcIDsKK+S7pOiJsiA+IHJlaXNob2t1XCA7CivlsIHmrrogPiBmdXVzYXRzdVwgOwor5bCP5qeMID4ga29kenVjaGlcIDsKK+Wtpue4viA+IGdha3VzZWtpXCA7CivlsbHlt50gPiB5YW1hZ2F3YVwgOwor6auY5L2OID4gdGFrYWhpa3VcIDsKK+S4remggyA+IG5ha2Fnb3JvXCA7Civogbfog70gPiBzaG9rdW5vdVwgOwor5bGI5oqYID4ga3Vzc2V0c3VcIDsKK+Wun+ebtCA+IGppdGNob2t1XCA7CivohbDmipggPiBrb3NoaW9yZVwgOwor5a6f55uKID4gaml0c3Vla2lcIDsKK+WumuedgCA+IHRlaWNoYWt1XCA7CivmooHmnKggPiByeW91Ym9rdVwgOwor5YG25YG2ID4gdGFtYXRhbWFcIDsKK+absumdoiA+IGt5b2t1bWVuXCA7CivotrPml6kgPiBhc2hpYmF5YVwgOwor5Lit6ZyHID4gY2h1dXNoaW5cIDsKK+iIjOS7oyA+IHpldHN1ZGFpXCA7Civmn7Hnn7MgPiBjaHV1c2VraVwgOwor5bGx5bGxID4geWFtYXlhbWFcIDsKK+S4remalCA+IGNodXVrYWt1XCA7CivlsYDmiYAgPiBreW9rdXNob1wgOwor6LKv6JOEID4gY2hvY2hpa3VcIDsKK+S9jueOhyA+IHRlaXJpdHN1XCA7Civlt57jgIUgPiBzaHV1c2h1dVwgOwor5p+T562GID4gc2VucGl0c3VcIDsKK+S/oeaGkSA+IHNoaW5weW91XCA7CivmoZ/mqYsgPiBzYW5iYXNoaVwgOwor55S75a6kID4gZ2FzaGl0c3VcIDsKK+iCiee0sCA+IG5pa3Vib3NvXCA7CivlrqLnlKggPiBreWFrdXlvdVwgOwor5Lit6ZmQID4gbmFrYWdpcmlcIDsKK+S9leeJqSA+IG5hbmltb25vXCA7CivlsbHlr7ogPiB5YW1hZGVyYVwgOwor54yf6bOlID4gcnlvdWNob3VcIDsKK+WtpuexjSA+IGdha3VzZWtpXCA7CivkuIfpqqggPiBiYW5rb3RzdVwgOwor5L+u5b6pID4gc2h1dWZ1a3VcIDsKK+S7j+iJpiA+IGZ1dHN1a2FuXCA7Civohbnlv4MgPiBmdWt1c2hpblwgOwor5a6f55SoID4gaml0c3V5b3VcIDsKK+S/ruW+lyA+IHNodXV0b2t1XCA7Civog4bnlaUgPiB0YW5yeWFrdVwgOwor5YW244CFID4gc29yZXpvcmVcIDsKK+S4uOmRvyA+IG1hcnVub21pXCA7CivlsbHlroggPiB5YW1hbW9yaVwgOwor6Laz5pG6ID4gYXNoaXp1cmlcIDsKK+mjn+iogCA+IHNob2t1Z2VuXCA7CivlgIvlrqQgPiBrb3NoaXRzdVwgOwor5LqM6KiAID4gZnV0YWtvdG9cIDsKK+S9k+eGsSA+IHRhaW5ldHN1XCA7CivlhbHjgIUgPiB0b21vZG9tb1wgOwor5Luu57a0ID4ga2FyaXRvamlcIDsKK+S8keelpSA+IGt5dXVzaG91XCA7CivlsYjlvpMgPiBrdXRzdWp1dVwgOwor5a6f54++ID4gaml0c3VnZW5cIDsKK+ePvuiBtyA+IGdlbnNob2t1XCA7CivosYHpgZQgPiBrYXR0YXRzdVwgOwor5L+h5b+1ID4gc2hpbicnbmVuXCA7CivpoY7pqqggPiBnYWtrb3RzdVwgOwor5LiJ6aOfID4gc2Fuc2hva3VcIDsKK+S6huimmiA+IHJ5b3VrYWt1XCA7CivkuIDpp5IgPiBoaXRva29tYVwgOwor576k6ZuyID4gbXVyYWt1bW9cIDsKK+aciOmHkSA+IGdldHN1a2luXCA7CivotaTmsoggPiBzZWtpY2hpblwgOwor5LiL6aGOID4gc2hpdGFhZ29cIDsKK+WxseWnqyA+IHlhbWFoaW1lXCA7CivohILmsZcgPiBhYnVyYWFzZVwgOwor6IWw5byBID4ga29zaGliZW5cIDsKK+WuneeOiSA+IGhvdWd5b2t1XCA7CivlsJHmlbUgPiBzaG91dGVraVwgOwor5L615pKDID4gc2hpbmdla2lcIDsKK+mpjeWwhiA+IGd5b3VzaG91XCA7CivkuJjpmbUgPiBreXV1cnlvdVwgOwor55Wl5ZCNID4gcnlha3VtZWlcIDsKK+Wwj+aVtSA+IHNob3V0ZWtpXCA7CivnlaXlj7cgPiByeWFrdWdvdVwgOwor6Laz5oqAID4gYXNoaXdhemFcIDsKK+eVpeWPsiA+IHJ5YWt1c2hpXCA7CivlrprnjocgPiB0ZWlyaXRzdVwgOwor55Wq5Y2SID4gYmFuc290c3VcIDsKK+eVpeWPliA+IHJ5YWt1c2h1XCA7Civlrp/nirYgPiBqaXRzdWpvdVwgOwor5YCf5ZywID4gc2hha3VjaGlcIDsKK+S9teauuiA+IGhlaXNhdHN1XCA7CivogZbogbcgPiBzZWlzaG9rdVwgOwor6IWw5bivID4ga29zaGlvYmlcIDsKK+S4iumdtCA+IHV3YWd1dHN1XCA7Civohpzlo4EgPiBtYWt1aGVraVwgOwor6ISx5paHID4gZGF0c3VidW5cIDsKK+WtmOeriyA+IHNvbnJpdHN1XCA7Civlrp3niakgPiBob3Vtb3RzdVwgOwor5L+X5b2iID4gem9rdWd5b3VcIDsKK+S6uuiGmiA+IGhpdG9oYWRhXCA7CivpoqjotrMgPiBrYXphYXNoaVwgOwor5Lm+6KOCID4ga2FucmV0c3VcIDsKK+ahjuaijyA+IHNoaWtrb2t1XCA7CivkuIDpoIMgPiBoaXRva29yb1wgOwor57+M6YCxID4geW9rdXNodXVcIDsKK+WvvuaXpSA+IHRhaW5pY2hpXCA7CivmnqDntYQgPiB3YWt1Z3VtaVwgOwor5Lq66ISaID4gaGl0b2FzaGlcIDsKK+e/u+iosyA+IGhvbicneWFrdVwgOwor5Lq66ISIID4gamlubXlha3VcIDsKK+WxseWfjiA+IHlhbWFqaXJvXCA7CivpoLjpqqggPiBrZWlrb3RzdVwgOwor5L6b5paZID4ga3lvdXJ5b3VcIDsKK+iEmuacrCA+IGt5YWt1aG9uXCA7CivmnbHoip0gPiB0b3VzaGliYVwgOwor6LWk5qirID4gYWthZ2FzaGlcIDsKK+iAkOidlSA+IHRhaXNob2t1XCA7CivohIrmpI4gPiBzZWtpdHN1aVwgOwor5p+054qsID4gc2hpYmFpbnVcIDsKK+S/ruWtpiA+IHNodXVnYWt1XCA7Civkv4rlvrMgPiBzaHVudG9rdVwgOwor5pyI6LyqID4gZ2V0c3VyaW5cIDsKK+S7sueniyA+IGNodXVzaHV1XCA7CivkuLvov7AgPiBzaHVqdXRzdVwgOwor5Lq66IKMID4gaGl0b2hhZGFcIDsKK+S6uuiCiSA+IGppbicnbmlrdVwgOwor5aqS6YWMID4gYmFpc2hha3VcIDsKK+S+i+aciCA+IHJlaWdldHN1XCA7CivnlJ/lqJggPiBraW11c3VtZVwgOwor5Luj562GID4gZGFpaGl0c3VcIDsKK+iEiuaigSA+IHNla2lyeW91XCA7Civlr4bmrrogPiBtaXNzYXRzdVwgOwor5pq06aOfID4gYm91c2hva3VcIDsKK+WxseWbvSA+IHlhbWFndW5pXCA7CivogbfnqK4gPiBzaG9rdXNodVwgOwor5LiA6ZqbID4gaGl0b2tpd2FcIDsKK+S5vuidlSA+IGthbnNob2t1XCA7CivkuIDpmoUgPiBoaXRvc3VtaVwgOwor5bCx5bqKID4gc2h1dXNob3VcIDsKK+S4iOmVtyA+IHRha2VuYWdhXCA7CivpoK3pq6ogPiB0b3VoYXRzdVwgOwor54yl6ZuRID4gd2FpemF0c3VcIDsKK+iBr+eriyA+IHJlbnJpdHN1XCA7CivohIrmn7EgPiBzZWtpY2h1dVwgOwor6aCt6aqoID4gdG91a290c3VcIDsKK+i2s+W9oiA+IGFzaGlnYXRhXCA7CivlronniakgPiB5YXN1bW9ub1wgOwor5a+S5qW1ID4ga2Fua3lva3VcIDsKK+i2s+W8sSA+IGFzaGl5b3dhXCA7CivlgJnlk4kgPiBzb3Vyb3V5YVwgOwor5L6L5pelID4gcmVpaml0c3VcIDsKK+S4remAnyA+IGNodXVzb2t1XCA7CivnlJ/lo4EgPiBuYW1ha2FiZVwgOwor5pu06L+tID4ga291dGV0c3VcIDsKK+ain+WwhiA+IGt5b3VzaG91XCA7CivlhYPjgIUgPiBtb3RvbW90b1wgOwor6IKJ55qEID4gbmlrdXRla2lcIDsKK+iDuOakjiA+IGt5b3V0c3VpXCA7CivpoqjoqqwgPiBmdXVzZXRzdVwgOwor5qGC5pyIID4ga2VpZ2V0c3VcIDsKK+WupOa4qSA+IHNoaXRzdW9uXCA7Civku5nnqp8gPiBzZW5rdXRzdVwgOwor5a+n5pelID4gbmVpaml0c3VcIDsKK+i0i+eJqSA+IG5pc2Vtb25vXCA7Civnlarku5ggPiBiYW5kenVrZVwgOwor6LWk5p2+ID4gYWthbWF0c3VcIDsKK+eVpeS9kyA+IHJ5YWt1dGFpXCA7CivmooXlubIgPiB1bWVib3NoaVwgOwor5L+X5a2mID4gem9rdWdha3VcIDsKK+iFueWjgSA+IGZ1a3VoZWtpXCA7CivkuK3ou7ggPiBjaHV1amlrdVwgOwor55Wl5LydID4gcnlha3VkZW5cIDsKK+iFuOWjgSA+IGNob3VoZWtpXCA7CivosaHomasgPiB6b3VtdXNoaVwgOwor5p6X56uLID4gcmlucml0c3VcIDsKK+WsjOe+niA+IGt5b3VzaHV1XCA7Civos6rnlpEgPiBzaGl0c3VnaVwgOwor5bGx5ZC5ID4geWFtYWJ1a2lcIDsKK+i4j+WIhyA+IGZ1bWlraXJpXCA7CivlsLHlr50gPiBzaHV1c2hpblwgOwor5p2P6Iy4ID4gYW56dXRha2VcIDsKK+eUn+WbvSA+IHNob3Vrb2t1XCA7Civkv6HlpbMgPiBzaGluJydueW9cIDsKK+adn+iEqSA+IHNva3VzaHV1XCA7CivlsI/lv4MgPiBzaG91c2hpblwgOwor5a6/5qWtID4gc2h1a3Vnb3VcIDsKK+eUs+WRiiA+IHNoaW5rb2t1XCA7Civlr5LmnIggPiBrYW5nZXRzdVwgOwor5pyJ6K2YID4geXV1c2hpa2lcIDsKK+S9mualvSA+IGl0c3VyYWt1XCA7CivlsLHlraYgPiBzaHV1Z2FrdVwgOwor6aSF57ayID4gbW9jaGlhbWlcIDsKK+S9leanmCA+IG5hbmlzYW1hXCA7Civnv4Hosp0gPiBva2luYWdhaVwgOwor5a+M5pytID4gdG9taWZ1ZGFcIDsKK+WxgOWkliA+IGt5b2t1Z2FpXCA7Civpo5/ohrMgPiBzaG9rdXplblwgOwor5p2J6IuUID4gc3VnaWdva2VcIDsKK+WvhuaelyA+IG1pdHN1cmluXCA7CivlgInljZIgPiBzb3Vzb3RzdVwgOwor55Sy5Y2SID4ga291c290c3VcIDsKK+WuouauvyA+IGt5YWt1ZGVuXCA7CivkuKbotrMgPiBuYW1pYXNoaVwgOwor5Lqk57mUID4ga291c2hva3VcIDsKK+eVkeS9nCA+IGhhdGFzYWt1XCA7Civnk6blsYsgPiBrYXdhcmF5YVwgOwor5a6i5q27ID4ga3lha3VzaGlcIDsKK+eUt+WJjSA+IG90b2tvbWFlXCA7CivlsYDloLEgPiBreW9rdWhvdVwgOwor6aGw6LmZID4gaGluc2h1a3VcIDsKK+WuruanmCA+IG1peWFzYW1hXCA7CivkvZzmn4QgPiBzYWt1Z2FyYVwgOwor54yu6YWMID4ga2Vuc2hha3VcIDsKK+mjn+iCsiA+IHNob2t1aWt1XCA7CivpoqjonZUgPiBmdXVzaG9rdVwgOwor5Lih6LazID4gcnlvdXNva3VcIDsKK+S6jOiCoSA+IGZ1dGFtYXRhXCA7Civnk6blrrYgPiBrYXdhcmF5YVwgOwor5LiK6YGUID4gam91dGF0c3VcIDsKK+iGneWFgyA+IGhpemFtb3RvXCA7CivmnJvonIAgPiBib3VzaG9rdVwgOwor5a6/5pybID4gc2h1a3Vib3VcIDsKK+iEseW4vSA+IGRhdHN1Ym91XCA7CivnlLPlh7ogPiBtb3VzaGlkZVwgOwor5p+E54mpID4gZ2FyYW1vbm9cIDsKK+S4iui/sCA+IGpvdWp1dHN1XCA7CivkvZzmm7IgPiBzYWtreW9rdVwgOwor6ICz57OeID4gbWltaWt1c29cIDsKK+iAgeiLpSA+IHJvdW55YWt1XCA7CivogonniZsgPiBuaWt1Z3l1dVwgOwor5bGx5YWDID4geWFtYW1vdG9cIDsKK+WxgOWcsCA+IGt5b2t1Y2hpXCA7Civosp7nr4AgPiB0ZWlzZXRzdVwgOwor5p2f57ibID4gc29rdWJha3VcIDsKK+acq+iRiSA+IG1hdHN1eW91XCA7CivkvZXmnIggPiBuYW5nYXRzdVwgOwor5bC65ZywID4gc2hha3VjaGlcIDsKK+ixmuiNiSA+IGJ1dGFrdXNhXCA7Civmm7Loq5YgPiBreW9rdXJvblwgOwor5bGx5YG0ID4geWFtYWdhd2FcIDsKK+WwkeWwkSA+IHNob3VzaG91XCA7CivlsJHlsIYgPiBzaG91c2hvdVwgOwor5pqX6ZeHID4ga3VyYXlhbWlcIDsKK+S8kea8gSA+IGt5dXVyeW91XCA7CivnjonokbEgPiB0YW1hbmVnaVwgOwor5Lmz6IetID4gbnl1dXNodXVcIDsKK+eUmOWPoyA+IGFtYWt1Y2hpXCA7CivmnKjoj58gPiBtaW1penVrdVwgOwor5ayM56yRID4ga3lvdXNob3VcIDsKK+eUo+WIpSA+IHNhbmJldHN1XCA7CivmnIjonZUgPiBnZXNzaG9rdVwgOwor5bCP5a2mID4gc2hvdWdha3VcIDsKK+anmOOAhSA+IHNhbWF6YW1hXCA7Civkvr/lo7ogPiBiZW50c3Vib1wgOwor5LiA6LybID4gaWNoaXJ5b3VcIDsKK+iznOeJqSA+IHRhbWFtb25vXCA7CivnlJ/liKUgPiBzZWliZXRzdVwgOwor6aaW5p63ID4ga3ViaWthc2VcIDsKK+WtkOeItSA+IHNoaXNoYWt1XCA7CivkvovlvI8gPiByZWlzaGlraVwgOwor54++55SfID4gZ2VuJyduYW1hXCA7CivmnKjoi7ogPiBraWljaGlnb1wgOwor54qs6beyID4gaW51d2FzaGlcIDsKK+acrOiJsiA+IGhvbnNob2t1XCA7CivkubHohIggPiByYW5teWFrdVwgOwor5a6a5qSNID4gdGVpc2hva3VcIDsKK+i7veOAhSA+IGthcnVnYXJ1XCA7Civlr4bmjqUgPiBtaXNzZXRzdVwgOwor5LiA6LqNID4gaWNoaXlha3VcIDsKK+WxseS6uiA+IHlhbWFiaXRvXCA7CivohIfmga8gPiBreW91c29rdVwgOwor57696KGjID4gaGFnb3JvbW9cIDsKK+acjeiWrCA+IGZ1a3V5YWt1XCA7CivlsZ7lg5ogPiB6b2t1cnlvdVwgOwor6Laz5Z6LID4gYXNoaWdhdGFcIDsKK+eUu+S4gCA+IGtha3VpdHN1XCA7CivmorXliLkgPiBib25zZXRzdVwgOwor5LyP5rWBID4gZnVrdXJ5dXVcIDsKK+WvvuWxgCA+IHRhaWt5b2t1XCA7CivnjKvotrMgPiBuZWtvYXNoaVwgOwor5bCP5aiYID4ga29tdXN1bWVcIDsKK+S7o+eJqSA+IGRhaWJ1dHN1XCA7Civlp6vpsZIgPiBoaW1lbWFzdVwgOwor5pys6IWwID4gaG9uZ29zaGlcIDsKK+S4gOi2syA+IGhpdG9hc2hpXCA7CivohbnliIcgPiBoYXJha2lyaVwgOwor5Lih6KaqID4gcnlvdXNoaW5cIDsKK+aZqemjryA+IGJhbm1lc2hpXCA7Civnv7znv7wgPiB5b2t1eW9rdVwgOwor55Sf5YK3ID4gbmFtYWtpenVcIDsKK+ixmuiCiSA+IGJ1dGFuaWt1XCA7CivohIflvbkgPiB3YWtpeWFrdVwgOwor6aCt6YeRID4gYXRhbWFraW5cIDsKK+e+juizqiA+IGJpc2hpdHN1XCA7CivlsYrlh7ogPiB0b2Rva2VkZVwgOwor6LWk5b+DID4gc2VraXNoaW5cIDsKK+acrOiBtyA+IGhvbnNob2t1XCA7CivnirbpqqggPiBqb3Vrb3RzdVwgOwor57+g6ImyID4gc3Vpc2hva3VcIDsKK+S4oeiiliA+IHJ5b3Vzb2RlXCA7CivmoLjlv4MgPiBrYWt1c2hpblwgOwor5Li46JasID4gZ2FuJyd5YWt1XCA7CivkvLjmmqIgPiBzaGluY2hvdVwgOwor5pyd6IejID4gY2hvdXNoaW5cIDsKK+Wuv+aJgCA+IHNodWt1c2hvXCA7CivmnpzniakgPiBrdWRhbW9ub1wgOwor54++54mpID4gZ2VuYnV0c3VcIDsKK+S4i+iriyA+IHNoaXRhdWtlXCA7CivmnKjogLMgPiBraWt1cmFnZVwgOwor5bC95YqbID4gamlucnlva3VcIDsKK+S6uueVnCA+IGppbmNoaWt1XCA7Civku67mvIYgPiBrYXNoaXRzdVwgOwor5p2R56uLID4gc29ucml0c3VcIDsKK+miqOiEmiA+IGthemFhc2hpXCA7Civkv4Llk6EgPiBrYWthcmlpblwgOwor5LiA6Ku+ID4gaWNoaWRha3VcIDsKK+Wwj+WbvSA+IHNob3Vrb2t1XCA7CivlrabmrbQgPiBnYWt1cmVraVwgOwor5a6/5oKqID4gc2h1a3Vha3VcIDsKK+iDuOW6pyA+IG11bmFndXJhXCA7CivkuIDoqq0gPiBpY2hpZG9rdVwgOwor5a6X5pWZID4gc2h1dWt5b3VcIDsKK+WvpeWvpSA+IHJ5b3VyeW91XCA7CivmnInoibIgPiB5dXVzaG9rdVwgOwor54ut6YePID4ga3lvdXJ5b3VcIDsKK+adpeedgCA+IHJhaWNoYWt1XCA7CivkvJHmpa0gPiBreXV1Z3lvdVwgOwor5pyI6ImyID4gZ2Vzc2hva3VcIDsKK+S/ruS6hiA+IHNodXVyeW91XCA7Civog7jluYUgPiBtdW5laGFiYVwgOwor5LiA6KiAID4gaGl0b2tvdG9cIDsKK+Wuv+W/lyA+IHNodWt1c2hpXCA7CivogLPnlr4gPiBqaXNoaXRzdVwgOwor6IWV5YqbID4gd2Fucnlva3VcIDsKK+iFueS4rSA+IGZ1a3VjaHV1XCA7CivkuIDop5IgPiBoaXRva2Fkb1wgOwor6IKJ5qyyID4gbmlrdXlva3VcIDsKK+ePoOeOiSA+IHNodWd5b2t1XCA7Civku4DniakgPiBqdXVtb3RzdVwgOwor5Li76ImyID4gc2h1c2hva3VcIDsKK+i0i+acrSA+IG5pc2VmdWRhXCA7Civogqnmm7ggPiBrYXRhZ2FraVwgOwor5L+h5LyPID4gc2hpbnB1a3VcIDsKK+S/oeS7uyA+IHNoaW4nJ25pblwgOwor5a6/5byKID4gc2h1a3VoZWlcIDsKK+msseOAhSA+IHV0c3V1dHN1XCA7CivkubHnrYYgPiByYW5waXRzdVwgOwor5Lq654mpID4gamluYnV0c3VcIDsKK+S/l+S/oSA+IHpva3VzaGluXCA7CivnjK7ooYAgPiBrZW5rZXRzdVwgOwor5qC85a6JID4ga2FrdXlhc3VcIDsKK+S4oeiTiyA+IHJ5b3VidXRhXCA7Civlrabmpa0gPiBnYWt1Z3lvdVwgOwor5Lq654i1ID4gamluc2hha3VcIDsKK+eMpeikuyA+IHdhaXNldHN1XCA7CivosZrnrrEgPiBidXRhYmFrb1wgOwor5Luu5q6/ID4ga2FyaWRvbm9cIDsKK+mjm+efsyA+IHRvYmlpc2hpXCA7CivkubHnq4sgPiByYW5yaXRzdVwgOwor5a6/5bizID4geWFkb2Nob3VcIDsKK+WvkuWvkiA+IHNhbXV6YW11XCA7CivmnLHnrYYgPiBzaHVoaXRzdVwgOwor5Li76ISIID4gc2h1bXlha3VcIDsKK+S7mOa3uyA+IHRzdWtpc29pXCA7CivmnKznr4AgPiBob25idXNoaVwgOwor5puy6Iq4ID4ga3lva3VnZWlcIDsKK+acq+evgCA+IG1hc3NldHN1XCA7CivotrPlhYMgPiBhc2hpbW90b1wgOwor6LKh54mpID4gemFpYnV0c3VcIDsKK+Wwj+WQjSA+IHNob3VteW91XCA7CivkuZfntYQgPiBub3Jpa3VtaVwgOwor5a+d5ae/ID4gbmVzdWdhdGFcIDsKK+abs+iIuSA+IGhpa2lidW5lXCA7Civnv4znv4wgPiB5b2t1eW9rdVwgOwor5pyr562GID4gbWFwcGl0c3VcIDsKK+aYvOmggyA+IGhpcnVnb3JvXCA7CivogqHml4UgPiBtYXRhdGFiaVwgOwor54us6LqrID4gZG9rdXNoaW5cIDsKK+eQtOabsiA+IGtpbmt5b2t1XCA7CivkuqzniakgPiBreW91bW9ub1wgOwor5p+Q5pyIID4gYm91Z2V0c3VcIDsKK+ixhueylSA+IG1hbWVrYXN1XCA7Civlrp/mg4UgPiBqaXRzdWpvdVwgOwor5Lit6IW5ID4gY2h1dWZ1a3VcIDsKK+mghumAhiA+IGp1bmd5YWt1XCA7CivmnYnnmq4gPiBzdWdpa2F3YVwgOwor5bCG5Y+IID4gaGF0YW1hdGFcIDsKK+iEseWNtCA+IGRha2t5YWt1XCA7Civlr4Llr6UgPiBzZWtpcnlvdVwgOwor5a+C5a+eID4gc2VraWJha3VcIDsKK+mjn+eUqCA+IHNob2t1eW91XCA7Civmn5Dml6UgPiBib3VqaXRzdVwgOwor5pmp6YWMID4gYmFuc2hha3VcIDsKK+S4reiCiSA+IGNodXVuaWt1XCA7Civosp7ng4ggPiB0ZWlyZXRzdVwgOwor6aOy54mpID4gbm9taW1vbm9cIDsKK+S4oeiGmiA+IHJ5b3VoYWRhXCA7Civku7LmoLggPiBjaHV1a2FrdVwgOwor5Lmd56mAID4ga3l1dWtva3VcIDsKK+Wun+W8viA+IGppdHN1ZGFuXCA7CivkuIvokKAgPiBzaGl0YW1vZVwgOwor5puy6ICFID4ga3VzZW1vbm9cIDsKK+WumuW+iyA+IHRlaXJpdHN1XCA7CivmoYPlnJIgPiBtb21vem9ub1wgOwor6aaW5be7ID4ga3ViaW1ha2lcIDsKK+S7j+awlyA+IGhvdG9rZWdpXCA7CivmmKXpoqggPiBoYXJ1a2F6ZVwgOwor5Lim6IKJID4gbmFtaW5pa3VcIDsKK+WuouW5tCA+IGt5YWt1bmVuXCA7CivotorljZcgPiBiZXRvbmFtdVwgOwor5Lih6ISHID4gcnlvdXdha2lcIDsKK+S8uOW8tSA+IHNoaW5jaG91XCA7CivpoqjnqpMgPiBrYXphbWFkb1wgOwor6aKo56m0ID4gZnV1a2V0c3VcIDsKK+S7j+auvyA+IGJ1dHN1ZGVuXCA7Civog7jlo4EgPiBreW91aGVraVwgOwor5a6a5byPID4gdGVpc2hpa2lcIDsKK+aYn+mjnyA+IHNlaXNob2t1XCA7CivkuKHogpggPiByeW91aGlqaVwgOwor5Lih6IKMID4gcnlvdWhhZGFcIDsKK+iynua9lCA+IHRlaWtldHN1XCA7Civlq6HnlLcgPiBjaGFrdW5hblwgOwor5Lmz55m9ID4gbnl1dWhha3VcIDsKK+S9juWvhiA+IHRlaW1pdHN1XCA7CivkuKHogLMgPiByeW91bWltaVwgOwor5Lmx55m6ID4gcmFucGF0c3VcIDsKK+iEheWahyA+IGt5b3VrYWt1XCA7CivmmrTomZAgPiBib3VneWFrdVwgOwor6IKY5o6bID4gaGlqaWtha2VcIDsKK+S4oee/vCA+IHJ5b3V5b2t1XCA7Civlr4blo7IgPiBtaXRzdWJhaVwgOwor5pyo55+zID4gYm9rdXNla2lcIDsKK+eOieeglSA+IGd5b2t1c2FpXCA7CivkuIPojYkgPiBuYW5ha3VzYVwgOwor5a6u5a6IID4gbWl5YW1vcmlcIDsKK+aboOiBtyA+IGtvdXNob2t1XCA7Civnjonnn7MgPiB0YW1haXNoaVwgOwor5LiJ6ImyID4gc2Fuc2hva3VcIDsKK+S7suaYpSA+IGNodXVzaHVuXCA7CivmoZHljp8gPiBrdXdhYmFyYVwgOwor6K2Y6Za+ID4gc2hpa2lpa2lcIDsKK+S6uuazoiA+IGhpdG9uYW1pXCA7CivmmKXpm6ggPiBoYXJ1c2FtZVwgOwor57+z55uuID4ga2FzdW1pbWVcIDsKK+eMv+iCoSA+IHNhcnVtYXRhXCA7Civmm7Lnt5ogPiBreW9rdXNlblwgOwor5LyR5oiaID4ga3l1dXNla2lcIDsKK+WuouWxpCA+IGt5YWt1c291XCA7CivmmKXpmb0gPiBzaHVuJyd5b3VcIDsKK+iynua3kSA+IHRlaXNodWt1XCA7CivlrojlvbkgPiBtb3JpeWFrdVwgOwor5Li756+AID4gc2h1c2V0c3VcIDsKK+S4gOiKsSA+IGhpdG9oYW5hXCA7CivpoZToibIgPiBnYW5zaG9rdVwgOwor5Lit57SwID4gY2h1dWJvc29cIDsKK+S4ree0miA+IGNodXVreXV1XCA7CivotoXlhYsgPiBjaG91a29rdVwgOwor5Li7562GID4gc2h1aGl0c3VcIDsKK+eOh+ebtCA+IHNvdGNob2t1XCA7CivnjKvoiIwgPiBuZWtvaml0YVwgOwor5LiJ6ISaID4gc2Fua3lha3VcIDsKK+aZuuitmCA+IGNoaXNoaWtpXCA7CivkuIvogqUgPiBzaGltb2dvZVwgOwor5a6f5a6zID4gaml0c3VnYWlcIDsKK+mkiuauliA+IHlvdXNob2t1XCA7CivlsI/kuIAgPiBzaG91aWNoaVwgOwor6LKq5qyyID4gZG9uJyd5b2t1XCA7CivkurrmrLIgPiBqaW4nJ3lva3VcIDsKK+iAkOeGsSA+IHRhaW5ldHN1XCA7Civlrp/lrZggPiBqaXRzdXpvblwgOwor6aCY6KKWID4gcnlvdXNodXVcIDsKK+S8keaBryA+IGt5dXVzb2t1XCA7Civml7HprYMgPiBrYW5iYXRzdVwgOwor54m56ZuGID4gdG9rdXNodXVcIDsKK+acq+eUtyA+IGJhdHN1bmFuXCA7Civlrr/lnYogPiBzaHVrdWJvdVwgOwor6Z+z6LOqID4gb25zaGl0c3VcIDsKK+S4uOeqkyA+IG1hcnVtYWRvXCA7CivnjKvohJogPiBuZWtvYXNoaVwgOwor5a+45YCfID4gc3Vuc2hha3VcIDsKK+i2heS/lyA+IGNob3V6b2t1XCA7Civmm7LnrqEgPiBreW9rdWthblwgOwor5LyR5b+DID4ga3l1dXNoaW5cIDsKK+iEiOWLlSA+IG15YWt1ZG91XCA7CivpoZXogbcgPiBrZW5zaG9rdVwgOwor6IKp5bmFID4ga2F0YWhhYmFcIDsKK+ahiOWHuiA+IGFuc2h1dHN1XCA7CivogqHlvJUgPiBtb21vaGlraVwgOwor5Li456a/ID4gbWFydWhhZ2VcIDsKK+S+m+S6uiA+IHRvbW9iaXRvXCA7Civkurrmp5ggPiBoaXRvc2FtYVwgOwor5Lmz54mbID4gbnl1dWd5dXVcIDsKK+WwguS4gCA+IHNlbicnaXRzdVwgOwor5p6V5pyoID4gbWFrdXJhZ2lcIDsKK+iCoeW6pyA+IG1hdGFndXJhXCA7CivnibnplbcgPiB0b2t1Y2hvdVwgOwor6aCC6KeSID4gY2hvdWtha3VcIDsKK+eLuOiXuyA+IHRhbnVraW1vXCA7CivnvLboqbAgPiBrYW5kenVtZVwgOwor5LiA57+8ID4gaWNoaXlva3VcIDsKK+Wun+WmuSA+IGppdHN1bWFpXCA7CivkuK3nqbogPiBuYWthem9yYVwgOwor5p+U5byxID4gbnl1dWpha3VcIDsKK+mjsuawtCA+IG5vbWltaXp1XCA7CivkuK3nqIsgPiBuYWthaG9kb1wgOwor5LuK5pyIID4ga29uZ2V0c3VcIDsKK+iyuOacrCA+IGthc2hpaG9uXCA7CivkuKbnq4sgPiBoZWlyaXRzdVwgOwor5a6J5a6/ID4geWFzdXlhZG9cIDsKK+iDveWKmyA+IG5vdXJ5b2t1XCA7CivkuK3np4sgPiBjaHV1c2h1dVwgOwor54mp6ZmwID4gbW9ub2thZ2VcIDsKK+WuieWuiSA+IHlhc3V5YXN1XCA7CivlrablvrMgPiBnYWt1dG9rdVwgOwor57+S55mWID4gc2h1dWhla2lcIDsKK+S4uOefsyA+IG1hcnVpc2hpXCA7CivkuIfnt5EgPiBiYW5yeW9rdVwgOwor5a6/5ZG9ID4gc2h1a3VtZWlcIDsKK+S7j+aWhyA+IGZ1dHN1YnVuXCA7CivniZvpnakgPiBneXV1a2F3YVwgOwor6IGW5pelID4gc2Vpaml0c3VcIDsKK+S6uuafhCA+IGhpdG9nYXJhXCA7Civpq5jjgIUgPiB0YWthZGFrYVwgOwor5Lqr5qW9ID4ga3lvdXJha3VcIDsKK+advuafjyA+IHNob3VoYWt1XCA7CivnvqTnq7kgPiBtdXJhdGFrZVwgOwor6K2m6LmVID4ga2VpaGl0c3VcIDsKK+S5s+a/gSA+IG55dXVkYWt1XCA7Civnv6DnjokgPiBzdWlneW9rdVwgOwor5pel6aOfID4gbmlzc2hva3VcIDsKK+S7h+aVtSA+IGt5dXV0ZWtpXCA7CivpnbrpnqggPiBtYWtrYXRzdVwgOwor5ae/6KaLID4gc3VnYXRhbWlcIDsKK+Wun+WcqCA+IGppdHN1emFpXCA7CivmnIjnlaogPiB0c3VraWJhblwgOwor55Kw5LiDID4ga2FuJyduYW5hXCA7Civog7jlhYggPiBtdW5hc2FraVwgOwor6IO45YWDID4gbXVuYW1vdG9cIDsKK+S4gOe1hCA+IGhpdG9rdW1pXCA7CivnjKvns54gPiBuZWtvYmFiYVwgOwor5pen6aCYID4ga3l1dXJ5b3VcIDsKK+mdtOmfsyA+IGt1dHN1b3RvXCA7CivkuZfniakgPiBub3JpbW9ub1wgOwor6aKo54mpID4gZnV1YnV0c3VcIDsKK+S9nOWKhyA+IHNha3VnZWtpXCA7CivmmpboibIgPiBkYW5zaG9rdVwgOwor5L2V5Y2SID4gbmFuaXRvem9cIDsKK+eOh+eEtiA+IHNvdHN1emVuXCA7CivkvJHlraYgPiBreXV1Z2FrdVwgOwor5LiJ562GID4gc2FucGl0c3VcIDsKK+S9j+WPiyA+IHN1bWl0b21vXCA7Civmnb7mmI4gPiB0YWltYXRzdVwgOwor5YG244CFID4gdGFtYXRhbWFcIDsKK+S7ruW9uSA+IGthcml5YWt1XCA7CivkuK3nmr8gPiBjaHV1emFyYVwgOwor6IO45YCJID4gbXVuYWd1cmFcIDsKK+S6uuaVsCA+IGhpdG9rYXp1XCA7CivlqZrntIQgPiBrb24nJ3lha3VcIDsKK+S4i+eptCA+IHNoaXRhYW5hXCA7CivkvZPlipsgPiB0YWlyeW9rdVwgOwor5a6/5YWtID4geWFkb3Jva3VcIDsKK+iAs+actiA+IG1pbWl0YWJ1XCA7Civmm7jnlZkgPiBrYWtpdG9tZVwgOwor5LiA562LID4gaGl0b3N1amlcIDsKK+WtpuWvriA+IGdha3VyeW91XCA7CivkuIDnrYYgPiBoaXRvZnVkZVwgOwor54mH6ZqFID4ga2F0YXN1bWlcIDsKK+ixgeeEtiA+IGthdHN1emVuXCA7CivkvY7liqMgPiB0ZWlyZXRzdVwgOwor54mH6ZmwID4ga2F0YWthZ2VcIDsKK+S6peaciCA+IGdhaWdldHN1XCA7CivnibnpgLIgPiB0b2t1c2hpblwgOwor6LOq5bGLID4gc2hpY2hpeWFcIDsKK+eMqueqgSA+IGNob3RvdHN1XCA7CivkuqzmlrkgPiBreW91Z2F0YVwgOwor54mb6Y2LID4gZ3l1dW5hYmVcIDsKK+Wun+WQjSA+IGppdHN1bWVpXCA7CivmnaXmnIggPiByYWlnZXRzdVwgOwor6IO45LitID4ga3lvdWNodXVcIDsKK+S4gOeoriA+IGhpdG9rdXNhXCA7Civnv5Lnhp8gPiBzaHV1anVrdVwgOwor5piO6YGUID4gbWVpdGF0c3VcIDsKK+aeoeW9oiA+IG1hc3VnYXRhXCA7Civlrr/kvr8gPiBzaHVrdWJlblwgOwor5a+G5LukID4gbWl0c3VyZWlcIDsKK+eJuei8ryA+IHRva3VzaHV1XCA7CivkuIDnp5IgPiBpY2hpYnlvdVwgOwor5Li754mpID4gc2h1YnV0c3VcIDsKK+e+pOeZuiA+IGd1bnBhdHN1XCA7Civmm7LnkIMgPiBreW9ra3l1dVwgOwor5pep6ZCYID4gaGF5YWdhbmVcIDsKK+izouWvnyA+IGtlbnNhdHN1XCA7CivkuozmoYEgPiBmdXRha2V0YVwgOwor5p2l5pelID4gcmFpbmljaGlcIDsKK+aYh+mAsiA+IHNob3VzaGluXCA7CivniKrpn7MgPiB0c3VtYW90b1wgOwor5pat6auqID4gZGFucGF0c3VcIDsKK+absueOiSA+IG1hZ2F0YW1hXCA7CivlrqLliIYgPiBreWFrdWJ1blwgOwor5LiY55a5ID4ga3l1dXNoaW5cIDsKK+S9leS9lSA+IG5hbmluYW5pXCA7Civog4blipsgPiB0YW5yeW9rdVwgOwor5LqL5p+EID4ga290b2dhcmFcIDsKK+S7ruWuriA+IGthcmltaXlhXCA7Civmm7jniakgPiBzaG9tb3RzdVwgOwor54mb6YWqID4gZ3l1dXJha3VcIDsKK+eLrOe/kiA+IGRva3VzaHV1XCA7Civku67lroUgPiBrYXJpdGFrdVwgOwor5a2Q5a6dID4ga29kYWthcmFcIDsKK+mfruiRsSA+IG5pcmFuZWdpXCA7CivkvZfkurogPiB3YWJpYml0b1wgOwor5LuP5byPID4gYnVzc2hpa2lcIDsKK+mguOetiyA+IGt1YmlzdWppXCA7Civosqrmhb4gPiBkb24nJ3lva3VcIDsKK+ism+mHiCA+IGtvdXNoYWt1XCA7CivkuInnm7QgPiBzYW5jaG9rdVwgOwor5L2V5LqLID4gbmFuaWdvdG9cIDsKK+iCieWkqiA+IG5pa3VidXRvXCA7CivkuInnmb4gPiBzYW5ieWFrdVwgOwor5peP6ZW3ID4gem9rdWNob3VcIDsKK+eJueizniA+IHRva3VzaG91XCA7CivlrqLlg6cgPiBreWFrdXNvdVwgOwor5Lqk5o6lID4ga291c2V0c3VcIDsKK+mhlOedgCA+IGdhbmNoYWt1XCA7CivkubPmpa0gPiBueXV1Z3lvdVwgOwor5pel6YqAID4gbmljaGlnaW5cIDsKK+aeleW4rSA+IGNoaW5zZWtpXCA7Civos5PlrqIgPiBoaW5reWFrdVwgOwor5a6f5YOPID4gaml0c3V6b3VcIDsKK+Wun+WDjSA+IGppdHN1ZG91XCA7Civlrq7kurogPiBtaXlhYml0b1wgOwor5pen6YeMID4gZnVydXNhdG9cIDsKK+S4gOeavyA+IGhpdG9zYXJhXCA7CivkuIDnmq4gPiBoaXRva2F3YVwgOwor5LqM5pa5ID4gZnV0YWthdGFcIDsKK+S4iueVpSA+IGpvdXJ5YWt1XCA7Civos4rlsIYgPiB6b2t1c2hvdVwgOwor6LKr5b65ID4ga2FudGV0c3VcIDsKK+aeouWvhiA+IHN1dW1pdHN1XCA7CivkuIDnmZYgPiBoaXRva3VzZVwgOwor55CD5a+pID4ga3l1dXNoaW5cIDsKK+WuruS4rSA+IGt5dXVjaHV1XCA7CivosYbmrrsgPiBtYW1lZ2FyYVwgOwor54++5bC6ID4gZ2Vuc2hha3VcIDsKK+S6uuW9sSA+IGhpdG9rYWdlXCA7CivlrqLkvZMgPiBreWFrdXRhaVwgOwor5a6f5L6LID4gaml0c3VyZWlcIDsKK+acqOanjCA+IGtpZHp1Y2hpXCA7Civku6Tlp6ogPiByZWl0ZXRzdVwgOwor54++5a6fID4gZ2Vuaml0c3VcIDsKK+iCh+WbvSA+IGNob3Vrb2t1XCA7CivlrqLkurogPiBreWFrdWppblwgOwor6Zy56Z2CID4gaGVraXJla2lcIDsKK+itsuiRiSA+IHl1enVyaWhhXCA7CivosLfmsLQgPiB0YW5pbWl6dVwgOwor6LGq5pelID4gZ291bmljaGlcIDsKK+acjeavkiA+IGZ1a3Vkb2t1XCA7Civogbfln58gPiBzaG9rdWlraVwgOwor5pq055m6ID4gYm91aGF0c3VcIDsKK+S6rOW9oiA+IGt5b3VnYXRhXCA7Civpo5/mjIcgPiBzaG9rdXNoaVwgOwor54m06KemID4gdGVpc2hva3VcIDsKK+aXpei8qiA+IG5pY2hpcmluXCA7CivogqnlhYggPiBrYXRhc2FraVwgOwor5aSW6bCQID4gc290b3dhbmlcIDsKK+mgu+eZuiA+IGhpbnBhdHN1XCA7CivkvK/ku7IgPiBoYWt1Y2h1dVwgOwor5pys5pysID4gbW90b21vdG9cIDsKK+acrOacqyA+IGhvbm1hdHN1XCA7CivkuIfniakgPiBiYW5tb3RzdVwgOwor54ut56qEID4ga3lvdXNha3VcIDsKK+eOieadryA+IGd5b2t1aGFpXCA7CivnjK7niakgPiBrZW5tb3RzdVwgOwor5Lq65bGxID4gaGl0b3lhbWFcIDsKK+aXqei2syA+IGhheWFhc2hpXCA7Civkuobmib8gPiByeW91c2hvdVwgOwor5Lit5rWBID4gY2h1dXJ5dXVcIDsKK+mcp+mbqCA+IGtpcmlzYW1lXCA7CivlpKfpo58gPiB0YWlzaG9rdVwgOwor5paH6aO+ID4gYnVuc2hva3VcIDsKK+izouWTsiA+IGtlbnRldHN1XCA7CivniYfotrMgPiBrYXRhYXNoaVwgOwor5LiA54mHID4gaGl0b2hpcmFcIDsKK+acrOaXpSA+IGhvbmppdHN1XCA7Civkub7mi60gPiBrYXJhYnVraVwgOwor6aOf5oSfID4gc2hva3VrYW5cIDsKK+aVtOmrqiA+IHNlaWhhdHN1XCA7Civku4/lo4cgPiBidXRzdWRhblwgOwor5a2m5YmyID4gZ2FrdXdhcmlcIDsKK+aVtOmqqCA+IHNlaWtvdHN1XCA7CivotIvkvZwgPiBuaXNlc2FrdVwgOwor5a2m5YmHID4gZ2FrdXNva3VcIDsKK+absuawtCA+IGt5b2t1c3VpXCA7CivpoqjmnIggPiBmdXVnZXRzdVwgOwor6Zyc6ZuqID4gc291c2V0c3VcIDsKK+S5seaOmCA+IHJhbmt1dHN1XCA7CivkuK3mr5IgPiBjaHV1ZG9rdVwgOwor5Lmd5pelID4ga29rb25va2FcIDsKK+aXpeixqiA+IG5pY2hpZ291XCA7Civku4/loIIgPiBidXRzdWRvdVwgOwor5Lmd5pePID4ga3l1dXpva3VcIDsKK+mfv+esmyA+IGt5b3V0ZWtpXCA7Civoqq3pn78gPiB5b21pa3lvdVwgOwor6Kyb6KqsID4ga291c2V0c3VcIDsKK+eJm+inkiA+IGd5dXVrYWt1XCA7CivlpKfpm6ogPiB0YWlzZXRzdVwgOwor5aSW6aOfID4gZ2Fpc2hva3VcIDsKK+iAs+WxjiA+IG1pbWlrdXNvXCA7CivlpJXpo68gPiB5dXVtZXNoaVwgOwor6IG35ZCNID4gc2hva3VtZWlcIDsKK+aZqeevgCA+IGJhbnNldHN1XCA7CivkuozlvbkgPiBmdXRheWFrdVwgOwor5aSV6aOfID4geXV1c2hva3VcIDsKK+S6jOW9oiA+IGZ1dGFuYXJpXCA7CivmmKXoj4ogPiBzaHVuZ2lrdVwgOwor5a2m5YOVID4gZ2FrdWJva3VcIDsKK+ixhuaWmSA+IG1hbWVyeW91XCA7CivnjonmkacgPiBneW9rdXNhaVwgOwor5pyd5pW1ID4gY2hvdXRla2lcIDsKK+aVo+mrqiA+IHNhbnBhdHN1XCA7CivorI7orI4gPiBuYXpvbmF6b1wgOwor5bGx44CFID4geWFtYXlhbWFcIDsKK+WmhOiqrCA+IG1vdXNldHN1XCA7CivpoJPnnYAgPiB0b25jaGFrdVwgOwor5LuP5Zm4ID4gZnV0c3V0b25cIDsKK+WmluihkyA+IHlvdWp1dHN1XCA7Civpm5vps6UgPiBoaW5hZG9yaVwgOwor6Zu76aO+ID4gZGVuc2hva3VcIDsKK+WtpuS/riA+IGdha3VzaHV1XCA7Civml6foqLMgPiBreXV1eWFrdVwgOwor5pyI5pyrID4gdHN1a2l6dWVcIDsKK+eLrOeZvSA+IGRva3VoYWt1XCA7CivnjJvng4ggPiBtb3VyZXRzdVwgOwor54iq6LehID4gdHN1bWVhdG9cIDsKK+S7ruWInSA+IGthcmlzb21lXCA7CivmnaXlrqIgPiByYWlreWFrdVwgOwor5pyI5pucID4gZ2V0c3V5b3VcIDsKK+e/jOacnSA+IHlva3VjaG91XCA7CivnuYHpm5EgPiBoYW56YXRzdVwgOwor6IG35Yi2ID4gc2hva3VzZWlcIDsKK+aWsOmAsiA+IHNoaW5zaGluXCA7CivogbfliIYgPiBzaG9rdWJ1blwgOwor5Lm+5byPID4ga2Fuc2hpa2lcIDsKK+mdouitmCA+IG1lbnNoaWtpXCA7CivkurrlnqMgPiBoaXRvZ2FraVwgOwor5aSx6YyvID4gc2hpc3Nha3VcIDsKK+S5heaWuSA+IGhpc2FrYXRhXCA7CivmnIjmmI4gPiBnZXRzdW1laVwgOwor5aOw6auYID4ga293YWRha2FcIDsKK+irlui/sCA+IHJvbmp1dHN1XCA7Civnv4zmmKUgPiB5b2t1c2h1blwgOwor6Ku+6Ku+ID4gZGFrdWRha3VcIDsKK+itmOiAhSA+IHNoaWtpc2hhXCA7Civku5Xlj6MgPiBzaGlrdWNoaVwgOwor5Lit5qC4ID4gY2h1dWtha3VcIDsKK+ixoeW+tCA+IHNob3VjaG91XCA7Civnj43lppkgPiBjaGlubXlvdVwgOwor6LKd5aGaID4ga2FpZHp1a2FcIDsKK+iBluWTsiA+IHNlaXRldHN1XCA7CivpnaLoqbAgPiBtZW5raXRzdVwgOwor57ie6aasID4gc2hpbWF1bWFcIDsKK+mjn+WwvSA+IHNob2t1amluXCA7Civos63kuosgPiBrYWtlZ290b1wgOwor5LiA5rWBID4gaWNoaXJ5dXVcIDsKK+S4reafhCA+IGNodXVnYXJhXCA7Civmm7jmnK0gPiBzaG9zYXRzdVwgOwor5aaZ6JasID4gbXlvdXlha3VcIDsKK+S4u+aXpSA+IHNodWppdHN1XCA7Civoq7joq7ggPiBtb3JvbW9yb1wgOwor6Z2Z6KyQID4gc2VpaGl0c3VcIDsKK+iruOiqrCA+IHNob3NldHN1XCA7Civos4flipsgPiBzaGlyeW9rdVwgOwor5aWz6KaqID4gb24nJ25hb3lhXCA7Civmm7Tmm7QgPiBzYXJhc2FyYVwgOwor5p2T5a2QID4gc2hha3VzaGlcIDsKK+absuabsiA+IGt1bWFndW1hXCA7CivmmbrnlaUgPiBjaGlyeWFrdVwgOwor5piO6ImyID4gbWVpc2hva3VcIDsKK+aXpeidlSA+IG5pc3Nob2t1XCA7Civku5blh7ogPiB0YXNodXRzdVwgOwor6Zuo6Z20ID4gYW1hZ3V0c3VcIDsKK+acrOW8jyA+IGhvbnNoaWtpXCA7Civku4/liY0gPiBidXRzdXplblwgOwor6Kq/6YCyID4gY2hvdXNoaW5cIDsKK+mbqumbsiA+IHl1a2lndW1vXCA7Civpm6jpnLAgPiBhbWVhcmFyZVwgOwor5LuP5Yi5ID4gYnVzc2V0c3VcIDsKK+acqOW9qyA+IG1va3VjaG91XCA7CivmmpHnhrEgPiBzaG9uZXRzdVwgOwor54mp6ImyID4gYnVzc2hva3VcIDsKK+iBt+S6uiA+IHNob2t1bmluXCA7Civoq6forJQgPiBrYWlneWFrdVwgOwor54us54m5ID4gZG9rdXRva3VcIDsKK+WksemAnyA+IHNoaXNzb2t1XCA7CivmmKXnua0gPiBoYXJ1bWF5dVwgOwor6aSe5YilID4gc2VuYmV0c3VcIDsKK+eGsemhmCA+IG5ldHN1Z2FuXCA7CivmnKvlubQgPiBtYXRzdW5lblwgOwor5auh5a2rID4gY2hha3Vzb25cIDsKK+eJqeiHrSA+IG1vbm9ndXNhXCA7CivogZbliKUgPiBzZWliZXRzdVwgOwor5auh5a2QID4gY2hha3VzaGlcIDsKK+irpOirpCA+IGdha3VnYWt1XCA7Civni6HnjL4gPiBrb3VrYXRzdVwgOwor6ICD5a+fID4ga291c2F0c3VcIDsKK+mbkemjnyA+IHphc3Nob2t1XCA7CivkuLvmjIEgPiBzaHVtb2NoaVwgOwor5ayw5YWQID4gbWlkb3JpZ29cIDsKK+e4pumVtyA+IHRhdGVuYWdhXCA7Civmlr3oqK0gPiBzaGlzZXRzdVwgOwor54uC55qEID4ga3lvdXRla2lcIDsKK+S6ieWlqiA+IHNvdWRhdHN1XCA7Civpno/ohpwgPiBreW91bWFrdVwgOwor5LuP5YOPID4gYnV0c3V6b3VcIDsKK+iAgeWunyA+IHJvdWppdHN1XCA7CivlpKfpgIYgPiBkYWlneWFrdVwgOwor5pel6JOuID4gbmljaGlyZW5cIDsKK+eGsembtyA+IG5ldHN1cmFpXCA7Civoqabpo58gPiBzaGlzaG9rdVwgOwor5pW36YeRID4gc2hpa2lraW5cIDsKK+S6uuWKmyA+IGppbnJ5b2t1XCA7CivkuZ3lt54gPiBreXV1c2h1dVwgOwor5paw6Kq/ID4gc2hpbmNob3VcIDsKK+mjn+WggiA+IHNob2t1ZG91XCA7Civlq6HlprsgPiBjaGFrdXNhaVwgOwor5LiA5qOfID4gaGl0b211bmVcIDsKK+Wksei3oSA+IHNoaXNzZWtpXCA7CivkurrliLogPiBqaW5zYXNoaVwgOwor6Zu76YmEID4gZGVudGV0c3VcIDsKK+S6uuWIpSA+IG5pbmJldHN1XCA7Civoq5boqqwgPiByb25zZXRzdVwgOwor5pys5bGAID4gaG9ua3lva3VcIDsKK+S4reaMhyA+IG5ha2F5dWJpXCA7CivosrjlgJ8gPiB0YWlzaGFrdVwgOwor542y5b6XID4ga2FrdXRva3VcIDsKK+irluipsCA+IHJvbmtpdHN1XCA7CivkuIDmoYEgPiBoaXRva2V0YVwgOwor5pa96KGTID4gc2hpanV0c3VcIDsKK+mhm+acqyA+IHRlbm1hdHN1XCA7CivosqvlhaUgPiBrYW4nJ255dXVcIDsKK+iyoeWKmyA+IHphaXJ5b2t1XCA7Civoqp7pg6ggPiBrYXRhcmliZVwgOwor57+S5b6XID4gc2h1dXRva3VcIDsKK+S4ieabsiA+IHNhbmt5b2t1XCA7Civmma/niakgPiBrZWlidXRzdVwgOwor5pa56KGTID4gaG91anV0c3VcIDsKK+eJuee0hCA+IHRva3V5YWt1XCA7CivkuIDmnpogPiBoaXRvaGlyYVwgOwor57mw6KiAID4ga3VyaWdvdG9cIDsKK+eJm+iCiSA+IGd5dXVuaWt1XCA7CivmnYnlnqMgPiBzdWdpZ2FraVwgOwor546L5a6kID4gb3VzaGl0c3VcIDsKK+S4gOadnyA+IGhpdG90YWJhXCA7CivkuqzliocgPiBreW91Z2VraVwgOwor54mh576KID4gb2hpdHN1amlcIDsKK+iwt+W6lSA+IHRhbml6b2tvXCA7CivkuIDmnKggPiBpY2hpYm9rdVwgOwor5Lq65YKRID4gamlua2V0c3VcIDsKK+mfnOeVpSA+IHRvdXJ5YWt1XCA7Civml6foh6MgPiBreXV1c2hpblwgOwor5pio56eLID4gc2FrdXNodXVcIDsKK+WlveiJsiA+IGtvdXNob2t1XCA7CivosLflt50gPiB0YW5pZ2F3YVwgOwor5LuE5LuEID4gaG9ub2Jvbm9cIDsKK+iyt+S4uyA+IGthaW51c2hpXCA7CivkuIDmmYIgPiBoaXRvdG9raVwgOwor5piH57WmID4gc2hvdWt5dXVcIDsKK+eJh+iGnSA+IGthdGFoaXphXCA7CivkuZflrqIgPiBqb3VreWFrdVwgOwor5Li45b2iID4gbWFydWdhdGFcIDsKK+mjsuWKqSA+IG5vbWlzdWtlXCA7Civmm7LmgqogPiBreW9rdWFrdVwgOwor5piH57SaID4gc2hvdWt5dXVcIDsKK+S4gOaXlyA+IGhpdG9oYXRhXCA7CivkuIDml48gPiBpY2hpem9rdVwgOwor6aOf5ZOBID4gc2hva3VoaW5cIDsKK+eJqee0jSA+IGJ1dHN1bm91XCA7CivlpLHoqr8gPiBzaGl0Y2hvdVwgOwor54Wu6a2aID4gbml6YWthbmFcIDsKK+WkseiqniA+IHNoaXRzdWdvXCA7CivogLPlhYMgPiBtaW1pbW90b1wgOwor5pep6ICzID4gaGF5YW1pbWlcIDsKK+S4uOW6lSA+IG1hcnV6b2tvXCA7CivpnaLoibIgPiBtZW5zaG9rdVwgOwor5Lq65Lq6ID4gaGl0b2JpdG9cIDsKK+aVo+mAuCA+IHNhbicnaXRzdVwgOwor5Lit5b+DID4gY2h1dXNoaW5cIDsKK+eJh+iCjCA+IGthdGFoYWRhXCA7CivoqbPpjLIgPiBzaG91cm9rdVwgOwor5auh5ZejID4gY2hha3VzaGlcIDsKK+abuOW8jyA+IHNob3NoaWtpXCA7CivkurrkuosgPiBoaXRvZ290b1wgOwor57eP6auqID4gc291aGF0c3VcIDsKK+acjeWxniA+IGZ1a3V6b2t1XCA7CivnibnnqK4gPiB0b2t1ZGFuZVwgOwor5Lit5b2iID4gY2h1dWdhdGFcIDsKK+eJh+iAsyA+IGthdGFtaW1pXCA7Civml6fnv5IgPiBreXV1c2h1dVwgOwor5Lq65LitID4gaGl0b25ha2FcIDsKK+S6uuS4piA+IGhpdG9uYW1pXCA7Civnibnnp7AgPiB0b2t1c2hvdVwgOwor5LiA5pKDID4gaWNoaWdla2lcIDsKK+S4reW6rSA+IG5ha2FuaXdhXCA7CivlsJHjgIUgPiBzaG91c2hvdVwgOwor5aeL55m6ID4gc2hpaGF0c3VcIDsKK+isnee1tiA+IHNoYXpldHN1XCA7Civkub7lkrMgPiBrYXJhemVraVwgOwor5Lit5bmVID4gbmFrYW1ha3VcIDsKK+S4reW5hSA+IGNodXVoYWJhXCA7Civoq7johp0gPiBtb3JvaGl6YVwgOwor6Ku46IaaID4gbW9yb2hhZGFcIDsKK+S4reW4rSA+IG5ha2FzZWtpXCA7CivmnJ3lpJUgPiBjaG91c2VraVwgOwor54mn56ybID4gYm9rdXRla2lcIDsKK+S4oeW+lyA+IHJ5b3V0b2t1XCA7CivnuKbou7ggPiB0YXRlamlrdVwgOwor6Z2S6ImyID4gc2Vpc2hva3VcIDsKK+mjn+WJjSA+IHNob2t1emVuXCA7Civlp6bniakgPiBrYW5idXRzdVwgOwor6aOf5Yi7ID4gc2hva2tva3VcIDsKK+eOieWeoyA+IHRhbWFnYWtpXCA7Civpm4bpjLIgPiBzaHV1cm9rdVwgOwor6Zuy6LazID4ga3Vtb2FzaGlcIDsKK+e3kemiqCA+IHJ5b2t1ZnV1XCA7CivniannqK4gPiBtb25vZGFuZVwgOwor5Lim5bmFID4gbmFtaWhhYmFcIDsKK+WmmeetliA+IG15b3VzYWt1XCA7CivpnZnohIggPiBqb3VteWFrdVwgOwor54mp56iOID4gYnV0c3V6ZWlcIDsKK+S4u+WuoiA+IHNodWt5YWt1XCA7Civpo7zkuLsgPiBrYWludXNoaVwgOwor6Ku46IKMID4gbW9yb2hhZGFcIDsKK+S4puW3viA+IG5hbWloYWJhXCA7CivkuqTkuqQgPiBrb21vZ29tb1wgOwor54iG6JasID4gYmFrdXlha3VcIDsKK+S4reWztiA+IG5ha2FqaW1hXCA7CivmlYXpg7cgPiBmdXJ1c2F0b1wgOwor5LqL5YWxID4ga290b2RvbW9cIDsKK+S4jeaCiSA+IGZ1c2hpdHN1XCA7Civml6fntIQgPiBreXV1eWFrdVwgOwor54mn56WeID4gYm9rdXNoaW5cIDsKK+e3kemdkiA+IHJva3VzaG91XCA7CivmlrnoiJ8gPiBoYWtvYnVuZVwgOwor6aOv5LqLID4gbWFtYWdvdG9cIDsKK+S4reWwjyA+IGNodXVzaG91XCA7Civmm7LlsIQgPiBreW9rdXNoYVwgOwor6ZuB6YeRID4ga2FyaWdhbmVcIDsKK+aXpeexsyA+IG5pY2hpYmVpXCA7CivnhLzps6UgPiB5YWtpdG9yaVwgOwor6Ky555u0ID4ga2luY2hva3VcIDsKK+S4reWtpiA+IGNodXVnYWt1XCA7Civnt7TpiYQgPiByZW50ZXRzdVwgOwor6Kq/6JasID4gY2hvdXlha3VcIDsKK+WkieiqrCA+IGhlbnNldHN1XCA7CivmlbXopbIgPiB0ZWtpc2h1dVwgOwor5pS+6YCQID4gaG91Y2hpa3VcIDsKK+S4ieW9uSA+IHNhbicneWFrdVwgOwor54Wp6ZuRID4gaGFuemF0c3VcIDsKK+iqjeitmCA+IG5pbnNoaWtpXCA7Civml6fnq6AgPiBreXV1c2hvdVwgOwor57eR6ZaAID4gcnlva3Vtb25cIDsKK+adkeS6uiA+IG11cmFiaXRvXCA7CivkuIvluK8gPiBzaGl0YW9iaVwgOwor5LiA5b25ID4gaGl0b3lha3VcIDsKK+ixquWCkSA+IGdvdWtldHN1XCA7CivkuovkuosgPiBrb3RvZ290b1wgOwor57a/6ZuyID4gd2F0YWd1bW9cIDsKK+S5seWFpSA+IHJhbicnbnl1dVwgOwor57a/6ZuqID4gd2F0YXl1a2lcIDsKK+S6iOS6iCA+IGthbmVnYW5lXCA7Civml6fnp7AgPiBreXV1c2hvdVwgOwor5LiW5bGAID4gc2Vpa3lva3VcIDsKK+e3tOmBlCA+IHJlbnRhdHN1XCA7CivmmofmmocgPiBoaW1haGltYVwgOwor5LiA5buJID4gaGl0b2thZG9cIDsKK+mahumahiA+IHJ5dXVyeXV1XCA7CivkuIDluqYgPiBoaXRvdGFiaVwgOwor6ZqF6ZqFID4gc3VtaXp1bWlcIDsKK+S4gOW5tCA+IGhpdG90b3NlXCA7CivpnZnnspsgPiBzZWlzaHVrdVwgOwor5aGp6a6tID4gc2hpb3pha2VcIDsKK+aXj+exjSA+IHpva3VzZWtpXCA7CivlpKfokpwgPiBuaW4nJ25pa3VcIDsKK+S4gOW5lSA+IGhpdG9tYWt1XCA7CivkuLjlnosgPiBtYXJ1Z2F0YVwgOwor5aWJ6IG3ID4gaG91c2hva3VcIDsKK+i1q+OAhSA+IGtha3VrYWt1XCA7CivkuIDlt7sgPiBoaXRvbWFraVwgOwor6Zuj6KmwID4gbmFua2l0c3VcIDsKK+mbgOi6jSA+IGpha3V5YWt1XCA7CivkuK3loZcgPiBuYWthbnVyaVwgOwor6Zmq6aOfID4gYmFpc2hva3VcIDsKK+mgjOaYpSA+IHNob3VzaHVuXCA7CivkuIflsYsgPiB5b3JvenV5YVwgOwor5Lit5Z6jID4gbmFrYWdha2lcIDsKK+S4reWeiyA+IGNodXVnYXRhXCA7CivpoqjlipsgPiBmdXVyeW9rdVwgOwor5LiK5a6iID4gam91a3lha3VcIDsKK+S5seS8kCA+IHJhbmJhdHN1XCA7Civmmbrml6UgPiBjaGluaWNoaVwgOwor54yr5bGeID4gbmVrb3pva3VcIDsKK+WvkuOAhSA+IHNhbXV6YW11XCA7CivkuIDlsbEgPiBoaXRveWFtYVwgOwor5Lit5Zu9ID4gY2h1dWdva3VcIDsKK+WkqeiJsiA+IHRlbnNob2t1XCA7CivpoIPml6UgPiBrZWlqaXRzdVwgOwor6Kmz6Ki7ID4gc2hvdWNodXVcIDsKK+mbkeirhyA+IHphdHN1ZGFuXCA7Civml4/np7AgPiB6b2t1c2hvdVwgOwor5pel55u0ID4gbml0Y2hva3VcIDsKK+e3kemFkiA+IHJ5b2t1c2h1XCA7CivkuIDlrqQgPiBpc3NoaXRzdVwgOwor5aSq6IW/ID4gZnV0b21vbW9cIDsKK+mgmOaJvyA+IHJ5b3VzaG91XCA7Civmlq3ntbYgPiBkYW56ZXRzdVwgOwor5LiA5a2QID4gaGl0b3JpZ29cIDsKK+Wnq+anmCA+IGhpbWVzYW1hXCA7Civpm7vok4QgPiBkZW5jaGlrdVwgOwor5pyr5LujID4gbWF0c3VkYWlcIDsKK+WjnOipsCA+IGJpbmR6dW1lXCA7CivoqIDpnIogPiBrb3RvZGFtYVwgOwor5Lih5Zu9ID4gcnlvdWdva3VcIDsKK+S4u+WPliA+IHNodXVkb3JpXCA7Civpm6jom5kgPiBhbWFnYWVydVwgOwor54af6KqtID4ganVrdWRva3VcIDsKK+eOieS9kyA+IGd5b2t1dGFpXCA7CivniafniZsgPiBib2t1Z3l1dVwgOwor5aG+6ZW3ID4ganVrdWNob3VcIDsKK+WkquiCoSA+IGZ1dG9tb21vXCA7CivmnInlipsgPiB5dXVyeW9rdVwgOwor54ax6KGAID4gbmVra2V0c3VcIDsKK+aVo+iWrCA+IHNhbicneWFrdVwgOwor546J5LujID4gZ3lva3VkYWlcIDsKK+WkqeiBtyA+IHRlbnNob2t1XCA7CivmlofohIggPiBidW5teWFrdVwgOwor6ZuG6Ki7ID4gc2h1dWNodXVcIDsKK+malOmAsSA+IGtha3VzaHV1XCA7Civml6XnlKggPiBuaWNoaXlvdVwgOwor5pu45Y+WID4ga2FraXRvcmlcIDsKK+S4u+WKmyA+IHNodXJ5b2t1XCA7CivmnIjlhoUgPiBnZXRzdW5haVwgOwor5LiD5aScID4gc2hpY2hpeWFcIDsKK+S5nuS4kCA+IGtvdHN1Z2FpXCA7CivkuIPlpJUgPiB0YW5hYmF0YVwgOwor6Kyh54mpID4gdXRhaW1vbm9cIDsKK+mgu+WwvyA+IGhpbicnbnlvdVwgOwor5aSp572wID4gdGVuYmF0c3VcIDsKK+mdoueZvSA+IG9tb3NoaXJvXCA7Civmm7LlkI0gPiBreW9rdW1laVwgOwor57eP6L2EID4gc291a2F0c3VcIDsKK+S4reWPpCA+IGNodXVidXJ1XCA7CivkvZXjgIUgPiBuYW5pbmFuaVwgOwor5LiA5aSxID4gaXNzaGl0c3VcIDsKK+eLvOW6pyA+IG9va2FtaXphXCA7CivoqLzot6EgPiBzaG91c2VraVwgOwor5aWu55m6ID4gZnVucGF0c3VcIDsKK+aWsOepgCA+IHNoaW5rb2t1XCA7CivoqZXoqLsgPiBoeW91Y2h1dVwgOwor5aSJ6ImyID4gaGVuc2hva3VcIDsKK+aYjua7hSA+IG1laW1ldHN1XCA7Civpmbjph6MgPiBva2FkenVyaVwgOwor6KyA55WlID4gYm91cnlha3VcIDsKK+S4gOWhqSA+IGhpdG9zaGlvXCA7CivpoqjkuIogPiBrYXpha2FtaVwgOwor5aSW6IKhID4gc290b21hdGFcIDsKK+e/kuS/lyA+IHNodXV6b2t1XCA7CivpmY3pm6ogPiBrb3VzZXRzdVwgOwor54us5b6XID4gZG9rdXRva3VcIDsKK+e1tumjnyA+IHplc3Nob2t1XCA7Civmm7jliJ0gPiBrYWtpem9tZVwgOwor6KiT6YeIID4ga3Vuc2hha3VcIDsKK+iqpue/kiA+IHNob3VzaHV1XCA7CivniIbnrJEgPiBiYWt1c2hvdVwgOwor57+S5L2cID4gc2h1dXNha3VcIDsKK+abuOWGiiA+IHNob3NhdHN1XCA7Civnibnms6ggPiB0b2t1Y2h1dVwgOwor5pyI5L6LID4gZ2V0c3VyZWlcIDsKK+aapuWtpiA+IHJla2lnYWt1XCA7CivkuLjlgrcgPiB0YW1ha2l6dVwgOwor5aWJ56WdID4gaG91c2h1a3VcIDsKK+mgjOW+syA+IHNob3V0b2t1XCA7CivpmLLpo58gPiBib3VzaG9rdVwgOwor54iq55eVID4gdHN1bWVhdG9cIDsKK+S4reWFsSA+IGNodXVreW91XCA7CivkuKbliJcgPiBoZWlyZXRzdVwgOwor5LmF5LmFID4gaGlzYWJpc2FcIDsKK+e3keixhiA+IHJ5b2t1dG91XCA7Civlpb3niakgPiBrb3VidXRzdVwgOwor6Zuy6ISaID4ga3Vtb2FzaGlcIDsKK+mdkueVsyA+IGFvZGF0YW1pXCA7Civpm5voj4ogPiBoaW5hZ2lrdVwgOwor5aSx562WID4gc2hpc3Nha3VcIDsKK+aZguaZgiA+IHRva2lkb2tpXCA7CivkuK3lgrcgPiBjaHV1c2hvdVwgOwor5aSx56yRID4gc2hpc3Nob3VcIDsKK+aVl+iJsiA+IGhhaXNob2t1XCA7Civpm6rohpogPiB5dWtpaGFkYVwgOwor6Zuj6ImyID4gbmFuc2hva3VcIDsKK+aal+WupCA+IGFuc2hpdHN1XCA7CivpmbXovrEgPiByeW91am9rdVwgOwor5LiL5ZGzID4gc2hpdGFhamlcIDsKK+e1kOmrqiA+IGtlcHBhdHN1XCA7CivnhLzphY4gPiBzaG91Y2h1dVwgOwor5pi85pmCID4gaGlydWRva2lcIDsKK+WjsOiJsiA+IHNlaXNob2t1XCA7CivkuLjkuosgPiBtYXJ1Z290b1wgOwor5paH56+AID4gYnVuc2V0c3VcIDsKK+aWh+eusSA+IGZ1bWliYWtvXCA7CivlpKfnrZIgPiBvb2R6dXRzdVwgOwor5Li45Li4ID4gbWFydW1hcnVcIDsKK+mYsumbqiA+IGJvdXNldHN1XCA7Civpm6rogowgPiB5dWtpaGFkYVwgOwor6Kiz6KqtID4geWFrdWRva3VcIDsKK+S4g+WRsyA+IHNoaWNoaW1pXCA7CivmlrnnlaUgPiBob3VyeWFrdVwgOwor5Li45LiAID4gbWFydWljaGlcIDsKK+eLreWwjyA+IGt5b3VzaG91XCA7CivkuK3kvY4gPiBuYWthYmlrdVwgOwor57eP6KqsID4gc291c2V0c3VcIDsKK+Wni+acqyA+IHNoaW1hdHN1XCA7CivmlofnrYYgPiBidW5waXRzdVwgOwor5aSn56ulID4gb293YXJhd2FcIDsKK+mdkueOiSA+IHNlaWd5b2t1XCA7CivkuKHlgbQgPiByeW91c29rdVwgOwor5aSx56WeID4gc2hpc3NoaW5cIDsKK+mbhuiQvSA+IHNodXVyYWt1XCA7CivpnZnniakgPiBzZWlidXRzdVwgOwor5LiH5Y2SID4gYmFuc290c3VcIDsKK+S4reS6rCA+IGNodXVreW91XCA7CivkuIDlkJEgPiBoaXRhc3VyYVwgOwor54us5a2mID4gZG9rdWdha3VcIDsKK+aYqOacnSA+IHNha3VjaG91XCA7CivkuIDlj6IgPiBoaXRvbXVyYVwgOwor5puy5LqLID4ga3VzZWdvdG9cIDsKK+mbkeiJsiA+IHphc3Nob2t1XCA7CivkuK3kuK0gPiBuYWthbmFrYVwgOwor5a6J44CFID4geWFzdXlhc3VcIDsKK+aVmee/kiA+IGt5b3VzaHV1XCA7CivpmZ7pgLIgPiBzaG91c2hpblwgOwor6aGe5YilID4gcnVpYmV0c3VcIDsKK+e4rue3rCA+IGNoaXJpbWVuXCA7CivmmKjmmoEgPiBzYWt1Z3lvdVwgOwor57WQ6aGYID4ga2VjaGlnYW5cIDsKK+aYqOaYpSA+IHNha3VzaHVuXCA7CivkuIfliKUgPiBiYW5iZXRzdVwgOwor54S86LqrID4gc2hvdXNoaW5cIDsKK+mggeWyqSA+IGtldHN1Z2FuXCA7CivkuKbkuKYgPiBuYW1pbmFtaVwgOwor57im57ieID4gdGF0ZWppbWFcIDsKK+iml+mtlCA+IG5vem9raW1hXCA7CivlopfoqK0gPiB6b3VzZXRzdVwgOwor5LiA5YmyID4gaWNoaXdhcmlcIDsKK+WkleeriyA+IHl1dWRhY2hpXCA7CivloanovpsgPiBzaGlva2FyYVwgOwor6Kej6YeIID4ga2Fpc2hha3VcIDsKK+aXp+a1gSA+IGt5dXVyeXV1XCA7CivkuKHkuKEgPiByeW91cnlvdVwgOwor6K2m5oqcID4ga2VpYmF0c3VcIDsKK+WkieevgCA+IGhlbnNldHN1XCA7Civntbnph50gPiBraW51YmFyaVwgOwor542E5LitID4gZ29rdWNodXVcIDsKK+S4gOWFpSA+IGhpdG9zaGlvXCA7CivkuIDlhYggPiBoaXRvbWF6dVwgOwor5piH5qC8ID4gc2hvdWtha3VcIDsKK+e5reeOiSA+IG1heXVkYW1hXCA7CivmmI7mnIggPiBtZWlnZXRzdVwgOwor6Z6t5pK7ID4gYmVudGF0c3VcIDsKK+mbqOeykiA+IGFtZXRzdWJ1XCA7CivlopfooYAgPiB6b3VrZXRzdVwgOwor5pq05YqbID4gYm91cnlva3VcIDsKK+ims+mWsiA+IGthbicnZXRzdVwgOwor5piT5piTID4geWFzdXlhc3VcIDsKK+e3keiXuyA+IHJ5b2t1c291XCA7Civlo67ntbYgPiBzb3V6ZXRzdVwgOwor5pWZ57GNID4ga3lvdXNla2lcIDsKK+mgmOWbvSA+IHJ5b3Vnb2t1XCA7CivmmI7mmKUgPiBteW91c2h1blwgOwor5LiH5LujID4geW9yb3p1eW9cIDsKK+aUr+iEiCA+IHNoaW15YWt1XCA7Civni6zlm70gPiBkb2t1a29rdVwgOwor5pKw6L+wID4gc2VuanV0c3VcIDsKK+S4ieS4iyA+IHNhbnNoaXRhXCA7CivlpKfnlaUgPiB0YWlyeWFrdVwgOwor5aWz5rCXID4gb24nJ25ha2tlXCA7CivloanosYYgPiBzaGlvbWFtZVwgOwor5LiH5LiWID4geW9yb3p1eW9cIDsKK+S4h+S4gCA+IG1hbicnaWNoaVwgOwor6Zuq56m6ID4geXVraXpvcmFcIDsKK+isgOauuiA+IGJvdXNhdHN1XCA7CivntYTplbcgPiBrdW1pY2hvdVwgOwor6KiA6KqsID4gZ2Vuc2V0c3VcIDsKK+aXqealrSA+IGhheWF3YXphXCA7Civop5LpgJogPiBrYWt1dHN1dVwgOwor5LiA5LihID4gaWNoaXJ5b3VcIDsKK+S4gOS4gCA+IGl0c3VpdHN1XCA7CivntbHovYQgPiB0b3VrYXRzdVwgOwor6Kyh5puyID4geW91a3lva3VcIDsKK+e0hemxkiA+IGJlbmltYXN1XCA7Civni6zllLEgPiBkb2t1c2hvdVwgOwor5paw5r2uID4gc2hpbmNob3VcIDsKK+e3keiMtiA+IHJ5b2t1Y2hhXCA7CivmmLzluK0gPiBoaXJ1c2VraVwgOwor57SF6a6tID4gYmVuaXpha2VcIDsKK+e0jemqqCA+IG5vdWtvdHN1XCA7Civml6fmoKogPiBreXV1a2FidVwgOwor5aer5a6uID4gaGltZW1peWFcIDsKK+WinOiQvSA+IHRzdWlyYWt1XCA7CivmlbDnmb4gPiBzdXVoeWFrdVwgOwor6ZuG57SEID4gc2h1dXlha3VcIDsKK+iqmOeZuiA+IHl1dWhhdHN1XCA7CivpoJjlj44gPiByeW91c2h1dVwgOwor54mH5qCXID4ga2F0YWt1cmlcIDsKK+aXrOaciCA+IGp1bmdldHN1XCA7CivlpKnniLUgPiB0ZW5zaGFrdVwgOwor54WO6JasID4gc2VuJyd5YWt1XCA7Civpm7vnlaUgPiBkZW5yeWFrdVwgOwor5paH54mpID4gYnVuYnV0c3VcIDsKK+aUueeviSA+IGthaWNoaWt1XCA7CivoqabnrYsgPiB0YW1lc3VqaVwgOwor6Kmm562GID4gc2hpaGl0c3VcIDsKK+aXp+aapiA+IGt5dXVyZWtpXCA7Civml6Xmm5wgPiBuaWNoaXlvdVwgOwor6ZqU6IacID4ga2FrdW1ha3VcIDsKK+aXrOaXpSA+IGp1bmppdHN1XCA7CivmlaPnmbogPiBzYW5wYXRzdVwgOwor6ZuR56iOID4gemF0c3V6ZWlcIDsKK+iqreeJqSA+IHlvbWltb25vXCA7Civpm6rnm7IgPiBzZXRzdW1vdVwgOwor6K2m5a+fID4ga2Vpc2F0c3VcIDsKK+ino+iqrCA+IGthaXNldHN1XCA7Civnt6nnt6kgPiB5dXJ1eXVydVwgOwor5pep5pepID4gaGF5YWJheWFcIDsKK+inkuiynSA+IHRzdW5vZ2FpXCA7CivmkYLpo58gPiBzZXNzaG9rdVwgOwor6KW/6ZmjID4gbmlzaGlqaW5cIDsKK+inpuinkiA+IHNob2trYWt1XCA7Civlo4HntJkgPiBrYWJlZ2FtaVwgOwor6Kem6KaaID4gc2hva2tha3VcIDsKK+aXp+aVtSA+IGt5dXV0ZWtpXCA7CivnibnlvrQgPiB0b2t1Y2hvdVwgOwor57SQ6Z2pID4gaGltb2thd2FcIDsKK+aXp+aVmSA+IGt5dXVreW91XCA7Civpm4bnqY0gPiBzaHV1c2VraVwgOwor5Z+L6aqoID4gbWFpa290c3VcIDsKK+aXl+acrCA+IGhhdGFtb3RvXCA7CivlpJbniakgPiBnYWlidXRzdVwgOwor6Ked6KemID4gdGVpc2hva3VcIDsKK+e0mumVtyA+IGt5dXVjaG91XCA7CivmlqzmrrogPiB6YW5zYXRzdVwgOwor54mp5oOFID4gYnV0c3Vqb3VcIDsKK+e3oOe1kCA+IHRlaWtldHN1XCA7CivpnanmlrAgPiBrYWt1c2hpblwgOwor6ZuG56WoID4gc2h1dWh5b3VcIDsKK+aZuuWKmyA+IGNoaXJ5b2t1XCA7Civpm6jnlLcgPiBhbWVvdG9rb1wgOwor54iG5rKIID4gYmFrdWNoaW5cIDsKK+WknOeDjyA+IHlvZ2FyYXN1XCA7Civlp6vlnqMgPiBoaW1lZ2FraVwgOwor54aK56y5ID4ga3VtYXphc2FcIDsKK+eGseeZuiA+IG5lcHBhdHN1XCA7CivpoIbliJcgPiBqdW5yZXRzdVwgOwor5aKo57mpID4gc3VtaW5hd2FcIDsKK+ismeaKkSA+IGtlbicneW9rdVwgOwor5pKu6KaBID4gc2F0c3V5b3VcIDsKK+eLrOS/riA+IGRva3VzaHV1XCA7CivlpInniakgPiBoZW5idXRzdVwgOwor5aKo57iEID4gc3VtaW5hd2FcIDsKK+aYpeWutSA+IHNodW5zaG91XCA7CivnianlvbEgPiBtb25va2FnZVwgOwor6ZeH6ZuyID4geWFtaWt1bW9cIDsKK+e2muiQvSA+IHpva3VyYWt1XCA7Civpm6rnjokgPiB5dWtpZGFtYVwgOwor5pGY6YyyID4gdGVraXJva3VcIDsKK+S7hOOAhSA+IGhvbm9ib25vXCA7Civml6nmioAgPiBoYXlhd2F6YVwgOwor57WC6LqrID4gc2h1dXNoaW5cIDsKK+e3iue4riA+IGtpbnNodWt1XCA7CivoqabnnYAgPiBzaGljaGFrdVwgOwor5aSW5r+gID4gc290b2JvcmlcIDsKK+WmvuWuhSA+IHNob3V0YWt1XCA7CivmmJ/lrr8gPiBzZWlzaHVrdVwgOwor6KeS6KKWID4ga2FrdXNvZGVcIDsKK+mXh+mXhyA+IHlhbWl5YW1pXCA7CivlpJrmub8gPiB0YXNoaXRzdVwgOwor5Lq644CFID4gaGl0b2JpdG9cIDsKK+mdouaOpSA+IG1lbnNldHN1XCA7Civpm5HnlKggPiB6YXRzdXlvdVwgOwor5paw5qCqID4gc2hpbmthYnVcIDsKK+aRuui2syA+IHN1cmlhc2hpXCA7Civml4Hml4EgPiBrYXRhZ2F0YVwgOwor5paw5p+EID4gc2hpbmdhcmFcIDsKK+aUv+eVpSA+IHNlaXJ5YWt1XCA7CivopovpgJogPiBtaXRvb3NoaVwgOwor6Zuj54mpID4gbmFuYnV0c3VcIDsKK+imi+i/lCA+IG1pa2Flc2hpXCA7CivlopfntZAgPiB6b3VrZXRzdVwgOwor5piO5a+fID4gbWVpc2F0c3VcIDsKK+Wnq+WQmyA+IGhpbWVnaW1pXCA7CivmlLvnlaUgPiBrb3VyeWFrdVwgOwor57WQ6KuWID4ga2V0c3Vyb25cIDsKK+Wlj+absiA+IHNvdWt5b2t1XCA7CivpnL3mnIggPiBzZWlnZXRzdVwgOwor6Ziy6J2VID4gYm91c2hva3VcIDsKK+aWsOaapiA+IHNoaW5yZWtpXCA7CivnhLzogokgPiB5YWtpbmlrdVwgOwor54a+54OIID4gc2hpcmV0c3VcIDsKK+e1kOiogCA+IGtldHN1Z2VuXCA7CivoqLznpaggPiBzaG91aHlvdVwgOwor6ZqP562GID4genVpaGl0c3VcIDsKK+WkluazlSA+IHNvdG9ub3JpXCA7CivmlrDmmKUgPiBzaGluc2h1blwgOwor5paw5penID4gc2hpbmt5dXVcIDsKK+mZuOe2miA+IHJpa3V6b2t1XCA7CivnhrHnhrEgPiBhdHN1YXRzdVwgOwor5aKX56+JID4gem91Y2hpa3VcIDsKK+S6pOOAhSA+IGtvbW9nb21vXCA7CivplpPpo58gPiBrYW5zaG9rdVwgOwor57iu5ribID4gc2h1a3VnZW5cIDsKK+aWsOaVmSA+IHNoaW5reW91XCA7Civlo67ng4ggPiBzb3VyZXRzdVwgOwor57mB5q6WID4gaGFuc2hva3VcIDsKK+WkqealtSA+IHRlbmt5b2t1XCA7Civni4Lkv6EgPiBreW91c2hpblwgOwor5pen5bmVID4ga3l1dWJha3VcIDsKK+e1ueiOoiA+IGtpbnVzYXlhXCA7CivlpLHmoLwgPiBzaGlra2FrdVwgOwor6Zao6ZalID4ga2VpYmF0c3VcIDsKK+aXpeW4uCA+IG5pY2hpam91XCA7Civpm5HnhLYgPiB6YXRzdXplblwgOwor5pWX5ruFID4gaGFpbWV0c3VcIDsKK+aUvueGsSA+IGhvdW5ldHN1XCA7CivoqpjmrrogPiB5dXVzYXRzdVwgOwor6ZeK6YGUID4ga2F0dGF0c3VcIDsKK+mZjeiBtyA+IGtvdXNob2t1XCA7CivntKDos6ogPiBzb3NoaXRzdVwgOwor5Z6C6auqID4gdGFyZWdhbWlcIDsKK+mbgeeIqiA+IGdhbmR6dW1lXCA7CivnuKbms6IgPiB0YXRlbmFtaVwgOwor57Sw6KqsID4gc2Fpc2V0c3VcIDsKK+iouueZgiA+IHNoaW5yeW91XCA7CivntprntpogPiB6b2t1em9rdVwgOwor54iG5pKDID4gYmFrdWdla2lcIDsKK+imi+itmCA+IGtlbnNoaWtpXCA7CivoqrDmn5AgPiBkYXJlc29yZVwgOwor54S857OeID4geWFrZWt1c29cIDsKK+aXi+W+iyA+IHNlbnJpdHN1XCA7Civoq7jlvI8gPiBzaG9zaGlraVwgOwor54ax5rqQID4gbmV0c3VnZW5cIDsKK+ino+iBtyA+IGthaXNob2t1XCA7CivkuovjgIUgPiBrb3RvZ290b1wgOwor5aSc5qGcID4geW96YWt1cmFcIDsKK+aWh+acqyA+IGJ1bm1hdHN1XCA7Civml6flroUgPiBreXV1dGFrdVwgOwor6Kq/5pWZID4gY2hvdWt5b3VcIDsKK+S6iOOAhSA+IGthbmVnYW5lXCA7CivmmYLlgbYgPiB0b2tpdGFtYVwgOwor5aaC5a6fID4gbnlvaml0c3VcIDsKK+aWjuaXpSA+IHNhaWppdHN1XCA7Civop5LohpwgPiBrYWt1bWFrdVwgOwor54ax5raZID4gbmV0c3VydWlcIDsKK+irkuaJvyA+IHJ5b3VzaG91XCA7Civpm7vmpbUgPiBkZW5reW9rdVwgOwor5aG1566xID4gZ29taWJha29cIDsKK+aVj+a0uyA+IGJpbmthdHN1XCA7Civplovpl6IgPiBrYWlieWFrdVwgOwor54Wl55m6ID4ga2FucGF0c3VcIDsKK+Wkp+aXpSA+IGRhaW5pY2hpXCA7Civpn5PkurogPiBrYXJhYml0b1wgOwor5aSW5p6gID4gc290b3dha3VcIDsKK+aVt+advyA+IHNoaWtpaXRhXCA7CivoqqzmmI4gPiBzZXRzdW1laVwgOwor57im5qiqID4gdGF0ZXlva29cIDsKK+imgeiooyA+IHlvdWtldHN1XCA7CivlopfnmbogPiB6b3VoYXRzdVwgOwor5piO5ZOyID4gbWVpdGV0c3VcIDsKK+WknOaYvCA+IHlvcnVoaXJ1XCA7CivngrnoqLMgPiB0ZW4nJ3lha3VcIDsKK+WkleaciCA+IHl1dWR6dWtpXCA7CivmlrnlvI8gPiBob3VzaGlraVwgOwor6ZaA6ZalID4gbW9uYmF0c3VcIDsKK+mjhOOAhSA+IGh5b3VoeW91XCA7CivmmKXlhYggPiBoYXJ1c2FraVwgOwor5aeL5YCkID4gaGFqaW1lbmVcIDsKK+aWsOW9oiA+IHNoaW5nYXRhXCA7Civnv7zjgIUgPiB5b2t1eW9rdVwgOwor6Zm455u4ID4gcmlrdXNob3VcIDsKK+e1uee2vyA+IGtpbnV3YXRhXCA7CivniYblo4EgPiBzaG91aGVraVwgOwor5aOK5ruFID4ga2FpbWV0c3VcIDsKK+mam+eJqSA+IGtpd2Ftb25vXCA7CivlpK3mipggPiB5b3VzZXRzdVwgOwor5aWo5a2mID4gc2hvdWdha3VcIDsKK+mbhuazqCA+IHNodXVjaHV1XCA7CivmlbXmlrkgPiB0ZWtpZ2F0YVwgOwor6ZW36ZW3ID4gbmFnYW5hZ2FcIDsKK+aWsOW5tCA+IHNoaW4nJ25lblwgOwor54iG5b+DID4gYmFrdXNoaW5cIDsKK+e0hOirviA+IHlha3VkYWt1XCA7CivmlbDml6UgPiBzdXVqaXRzdVwgOwor5pys44CFID4gbW90b21vdG9cIDsKK+mYsue4riA+IGJvdXNodWt1XCA7Civmk4Hnq4sgPiB5b3VyaXRzdVwgOwor5pWw5pWwID4ga2F6dWthenVcIDsKK+Wkp+aJgCA+IG9vZG9rb3JvXCA7Civml6flm70gPiBreXV1a29rdVwgOwor5Zyw6bygID4gamluZXp1bWlcIDsKK+e0lOihgCA+IGp1bmtldHN1XCA7Civnsonpo74gPiBmdW5zaG9rdVwgOwor57im5pu4ID4gdGF0ZWdha2lcIDsKK+aTpueWtSA+IHN1cmlraXp1XCA7Civnsonpo58gPiBmdW5zaG9rdVwgOwor5aGa56m0ID4gdHN1a2FhbmFcIDsKK+WkluaOpSA+IGdhaXNldHN1XCA7CivoqZXms6ggPiBoeW91Y2h1dVwgOwor54Wn54S8ID4gdGVyaXlha2lcIDsKK+WkseW/gyA+IHNoaXNzaGluXCA7CivntbbnrYYgPiB6ZXBwaXRzdVwgOwor6Zuj5puyID4gbmFua3lva3VcIDsKK+ioiOeVpSA+IGtlaXJ5YWt1XCA7CivlpJnmiJAgPiBzaHVrdXNlaVwgOwor6KaL6JC9ID4gbWlvdG9zaGlcIDsKK+eCueiWrCA+IHRlbicneWFrdVwgOwor54K46JasID4gc2FrdXlha3VcIDsKK+aWsOWuhSA+IHNoaW50YWt1XCA7Civln4voqK0gPiBtYWlzZXRzdVwgOwor5o6l6aqoID4gc2Vra290c3VcIDsKK+mZveeJqSA+IHlvdWJ1dHN1XCA7Civoq5blrqIgPiByb25reWFrdVwgOwor6KeS56ybID4gdHN1bm9idWVcIDsKK+eGseacmyA+IG5ldHN1Ym91XCA7Civplbfph50gPiBjaG91c2hpblwgOwor6Zay6KqtID4gZXRzdWRva3VcIDsKK+iqsOW9vCA+IHRhcmVrYXJlXCA7CivnsbPpo58gPiBiZWlzaG9rdVwgOwor57Si6I6rID4gc2FrdWJha3VcIDsKK+e1kOe4hCA+IGtldHN1am91XCA7CivkuYXjgIUgPiBoaXNhYmlzYVwgOwor6ZuR5puyID4gemFra3lva3VcIDsKK+WkquW3uyA+IGZ1dG9tYWtpXCA7CivmlrDlprsgPiBuaWlkenVtYVwgOwor57WQ57SuID4ga2Vzc2F0c3VcIDsKK+WkmeW/lyA+IHNodWt1c2hpXCA7Civnv4zjgIUgPiB5b2t1eW9rdVwgOwor5pen5YqHID4ga3l1dWdla2lcIDsKK+aRmOiKryA+IHRla2lzaGluXCA7CivplqLoqqwgPiBrYW5zZXRzdVwgOwor54mp5LqLID4gbW9ub2dvdG9cIDsKK+ios+azqCA+IHlha3VjaHV1XCA7CivmlLnmnK0gPiBrYWlzYXRzdVwgOwor54Wu5rK4ID4gc2hhZnV0c3VcIDsKK+Wkp+W1kCA+IG9vYXJhc2hpXCA7Civoo73piYQgPiBzZWl0ZXRzdVwgOwor6KOF6aO+ID4gc291c2hva3VcIDsKK+mbkeaWhyA+IHphdHN1YnVuXCA7CivkuLjjgIUgPiBtYXJ1bWFydVwgOwor57SZ6IqxID4ga2FtaWJhbmFcIDsKK+eEvOeJqSA+IHlha2ltb25vXCA7CivmlbXlvbkgPiB0ZWtpeWFrdVwgOwor57WQ56+AID4ga2Vzc2V0c3VcIDsKK+mVt+i7uCA+IGNob3VqaWt1XCA7CivlpJbluq0gPiBzb3Rvbml3YVwgOwor57WE57SQID4ga3VtaWhpbW9cIDsKK+eykumKgCA+IHRzdWJ1Z2luXCA7CivpnIfluYUgPiBzaGlucHVrdVwgOwor5pW05byPID4gc2Vpc2hpa2lcIDsKK+mWi+ixgSA+IGthaWthdHN1XCA7CivplbfouqsgPiBjaG91c2hpblwgOwor57iB5pelID4gZW4nJ25pY2hpXCA7CivlpKflsYAgPiB0YWlreW9rdVwgOwor5paw5Z6LID4gc2hpbmdhdGFcIDsKK+WknOW1kCA+IHlvYXJhc2hpXCA7CivmlbDlvI8gPiBzdXVzaGlraVwgOwor5pu044CFID4gc2FyYXNhcmFcIDsKK+eJm+S5syA+IGd5dXVueXV1XCA7CivkuK3jgIUgPiBuYWthbmFrYVwgOwor5puy44CFID4ga3VtYWd1bWFcIDsKK+mVt+i2syA+IGNob3Vzb2t1XCA7CivloanniakgPiBzaGlvbW9ub1wgOwor6KaB6IG3ID4geW91c2hva3VcIDsKK+eJh+WBtCA+IGthdGFnYXdhXCA7CivopLbopZ4gPiBzaHV1aGVraVwgOwor6ZuA5paRID4gc29iYWthc3VcIDsKK+aXp+S/lyA+IGt5dXV6b2t1XCA7Civpm7LlvaIgPiBrdW1vZ2F0YVwgOwor57WM56m0ID4ga2Vpa2V0c3VcIDsKK+S4puOAhSA+IG5hbWluYW1pXCA7Civmkp7nnYAgPiBkb3VjaGFrdVwgOwor5pen5L2cID4ga3l1dXNha3VcIDsKK+e0heiKsSA+IGJlbmliYW5hXCA7CivpmbDmub8gPiBpbnNoaXRzdVwgOwor57eo5puyID4gaGVua3lva3VcIDsKK+e1hOeriyA+IGt1bWl0YXRlXCA7CivplovoqK0gPiBrYWlzZXRzdVwgOwor5Lih44CFID4gcnlvdXJ5b3VcIDsKK+e0sOe0sCA+IGhvc29ib3NvXCA7CivoqabmjpggPiBzaGlrdXRzdVwgOwor5aGp54S8ID4gc2hpb3lha2lcIDsKK+WkluWxgCA+IGdhaWt5b2t1XCA7CivlopfmrpYgPiB6b3VzaG9rdVwgOwor5pen5Lq6ID4gZnVydWJpdG9cIDsKK+ios+alrSA+IHlha3VneW91XCA7CivmjpLpm6ogPiBoYWlzZXRzdVwgOwor57Kb6LuNID4gc2h1a3VndW5cIDsKK+eGseaEnyA+IG5ldHN1a2FuXCA7CivlpLHlopwgPiBzaGl0dHN1aVwgOwor5Zu96bOlID4ga29rdWNob3VcIDsKK+iruOWFsSA+IG1vcm90b21vXCA7CivlpKvlpKsgPiBzb3Jlem9yZVwgOwor57Sh57mUID4gYm91c2hva3VcIDsKK+WkluWuoiA+IGdhaWt5YWt1XCA7CivnhrHmg4UgPiBuZXRzdWpvdVwgOwor5aSW5a2rID4gc290b21hZ29cIDsKK+ezluicnCA+IHRvdW1pdHN1XCA7CivoqqDlrp8gPiBzZWlqaXRzdVwgOwor6Zuj5b25ID4gbmFuJyd5YWt1XCA7CivmlZHmgKUgPiBreXV1a3l1dVwgOwor5aGX54mpID4gbnVyaW1vbm9cIDsKK+eJiOS4iyA+IGhhbnNoaXRhXCA7CivpmaTmub8gPiBqb3NoaXRzdVwgOwor54aU5o6lID4geW91c2V0c3VcIDsKK+e1seeOhyA+IHRvdXNvdHN1XCA7Civplbfoqr8gPiBjaG91Y2hvdVwgOwor5peF5YWIID4gdGFiaXNha2lcIDsKK+eCuee2tCA+IHRlbnRldHN1XCA7CivntLDnrYYgPiBzYWloaXRzdVwgOwor6Zuq5ba6ID4gc2V0c3VyZWlcIDsKK+e1ueeJqSA+IGtpbnVtb25vXCA7CivoqLPmn4QgPiB3YWtlZ2FyYVwgOwor6KWf6IWwID4gZXJpa29zaGlcIDsKK+e1kOedgCA+IGtldGNoYWt1XCA7Civnt5HmnpcgPiByeW9rdXJpblwgOwor57WQ55ufID4ga2V0c3VtZWlcIDsKK+eGseW8gSA+IG5ldHN1YmVuXCA7Civpm5Hlv7UgPiB6YXRzdW5lblwgOwor6KiO5q27ID4gdWNoaWppbmlcIDsKK+aUr+aJlSA+IHNoaWhhcmFpXCA7CivopqrnnaYgPiBzaGluYm9rdVwgOwor5aCA56uvID4gaG9yaWJhdGFcIDsKK+mZpeayoSA+IGthbmJvdHN1XCA7CivmlrDliocgPiBzaGluZ2VraVwgOwor6KeS54mbID4ga2FrdWd5dXVcIDsKK+mbkeW9uSA+IHphdHN1ZWtpXCA7Civpm6rlsbEgPiB5dWtpeWFtYVwgOwor6Ku45Lq6ID4gbW9yb2JpdG9cIDsKK+mZo+ayoSA+IGppbmJvdHN1XCA7Civpmb3mpbUgPiB5b3VreW9rdVwgOwor54i25LiKID4gY2hpY2hpdWVcIDsKK+mbquWusyA+IHNldHN1Z2FpXCA7CivplbfoopYgPiBuYWdhc29kZVwgOwor5LiA44CFID4gaXRzdWl0c3VcIDsKK+mYsueGsSA+IGJvdW5ldHN1XCA7Civpm6PlsYAgPiBuYW5reW9rdVwgOwor57iE5by1ID4gbmF3YWJhcmlcIDsKK+WkluWggCA+IHNvdG9ib3JpXCA7CivntYznlaUgPiBrZWlyeWFrdVwgOwor6KOP6YGTID4gdXJhbWljaGlcIDsKK+mao+aOpSA+IHJpbnNldHN1XCA7Civntpnmr40gPiBtYW1haGFoYVwgOwor5aSn5ZadID4gZGFpa2F0c3VcIDsKK+e0meethiA+IHNoaWhpdHN1XCA7CivmlZnlraYgPiBreW91Z2FrdVwgOwor6Zyy5Ye6ID4gcm9zaHV0c3VcIDsKK+ioquaXpSA+IGhvdW5pY2hpXCA7CivloanmsLQgPiBzaGlvbWl6dVwgOwor5pW35ZywID4gc2hpa2ljaGlcIDsKK+mahuaYjCA+IHJ5dXVzaG91XCA7CivmlrDkv64gPiBzaGluc2h1dVwgOwor5aSn5ZCJID4gZGFpa2ljaGlcIDsKK+aWsOS9nCA+IHNoaW5zYWt1XCA7CivplqLohIcgPiBzZWtpd2FrZVwgOwor54et5Y+wID4gc2hva3VkYWlcIDsKK+eCreeqryA+IHN1bWlnYW1hXCA7Civpm7vlnKcgPiBkZW4nJ2F0c3VcIDsKK+mbqOWlsyA+IGFtZW9uJyduYVwgOwor54iG5YK3ID4gYmFrdXNob3VcIDsKK+aWsOS7uyA+IHNoaW4nJ25pblwgOwor5r+A6ZyHID4gZ2VraXNoaW5cIDsKK+mWk+iJsiA+IGthbnNob2t1XCA7CivlpInlnKcgPiBoZW4nJ2F0c3VcIDsKK+imqueOiyA+IHNoaW4nJ25vdVwgOwor5aSn5Y2SID4gZGFpc290c3VcIDsKK+e3j+aLrCA+IHNvdWthdHN1XCA7Civop6PmsbogPiBrYWlrZXRzdVwgOwor5pS/5bGAID4gc2Vpa3lva3VcIDsKK+WjgeW9uSA+IGthYmV5YWt1XCA7Civmjpvou7ggPiBrYWtlamlrdVwgOwor57iE5bC7ID4gbmF3YWppcmlcIDsKK+ijsuiloCA+IHVjaGlrYWtlXCA7Civln7rnnaMgPiBraXJpc3V0b1wgOwor6KSq6ImyID4gdGFpc2hva3VcIDsKK+Wkp+WIpSA+IHRhaWJldHN1XCA7CivlpKfliIcgPiB0YWlzZXRzdVwgOwor5paJ5YiXID4gc2VpcmV0c3VcIDsKK+mbquWbvSA+IHl1a2lndW5pXCA7CivlpKflhoogPiB0YWlzYXRzdVwgOwor57e75a+GID4gY2hpbWl0c3VcIDsKK+mWkeiBtyA+IGthbnNob2t1XCA7CivlpInlk7IgPiBoZW50ZXRzdVwgOwor57O456u5ID4gc2hpY2hpa3VcIDsKK+mWi+iEmiA+IGthaWt5YWt1XCA7CivmlK/lsYAgPiBzaGlreW9rdVwgOwor5aSx5L+dID4gc2hpdHN1aG9cIDsKK+e1gueGhCA+IHNodXVzb2t1XCA7CivlpJblipsgPiBnYWlyeW9rdVwgOwor6Kq/5LyPID4gY2hvdWJ1a3VcIDsKK+mbm+WeiyA+IGhpbmFnYXRhXCA7CivopoHnlaUgPiB5b3VyeWFrdVwgOwor5pWR5Zu9ID4ga3l1dWtva3VcIDsKK+mWgOiEiCA+IG1vbm15YWt1XCA7CivopJDoibIgPiBrYXNzaG9rdVwgOwor5pW05YiXID4gc2VpcmV0c3VcIDsKK+mbu+WKmyA+IGRlbnJ5b2t1XCA7CivmjqXop6YgPiBzZXNzaG9rdVwgOwor5pWw5YiXID4gc3V1cmV0c3VcIDsKK+Wkp+S7jyA+IGRhaWJ1dHN1XCA7CivplqLnr4AgPiBrYW5zZXRzdVwgOwor5pS+5Z+SID4gaG91cmF0c3VcIDsKK+e1nuauuiA+IGtvdXNhdHN1XCA7CivlpJblgbQgPiBzb3RvZ2F3YVwgOwor6KGo6ZaAID4gb21vdGVtb25cIDsKK+aVsOWGiiA+IHN1dXNhdHN1XCA7Civpm7LliqkgPiBrdW1vc3VrZVwgOwor6Zuq5Y6fID4gc2V0c3VnZW5cIDsKK+mbkeWaoiA+IHphdHN1bm91XCA7Civmv4HphZIgPiBkb2J1cm9rdVwgOwor5Zyf6LOqID4gZG9zaGl0c3VcIDsKK+aVteWBtCA+IHRla2lnYXdhXCA7CivoqKXlvIEgPiB0b3RzdWJlblwgOwor6KOP6KGoID4gdXJhb21vdGVcIDsKK+iqreS6hiA+IGRva3VyeW91XCA7CivngbDnr6kgPiBoYWlmdXJ1aVwgOwor57Kl6IW5ID4ga2F5dWJhcmFcIDsKK+eAieihgCA+IHNoYWtldHN1XCA7CivloIXngq0gPiBrYXRhenVtaVwgOwor57a/5byTID4gd2F0YXl1bWlcIDsKK+e4ruWGmSA+IHNodWt1c2hhXCA7CivmlZnljZMgPiBreW91dGFrdVwgOwor5Z6C6ICzID4gdGFyZW1pbWlcIDsKK+ipsOWVjyA+IGtpdHN1bW9uXCA7Civlo7LljbQgPiBiYWlreWFrdVwgOwor5o6h6KGAID4gc2Fpa2V0c3VcIDsKK+e4puWIlyA+IGp1dXJldHN1XCA7CivooYzpnakgPiBneW91a2FrdVwgOwor57W25pybID4gemV0c3Vib3VcIDsKK+aSg+ayiCA+IGdla2ljaGluXCA7Civop5Lmn7EgPiBrYWt1Y2h1dVwgOwor5Zu96L6xID4ga29rdWpva3VcIDsKK+aVmeWJhyA+IGt5b3Vzb2t1XCA7CivloqjlrqIgPiBib2treWFrdVwgOwor5aOr5Y2SID4gc2hpc290c3VcIDsKK+WcsOiiiyA+IGppYnVrdXJvXCA7CivmlbXkuK0gPiB0ZWtpY2h1dVwgOwor5aOy5Ye6ID4gdXJpZGFzaGlcIDsKK+e3iuWvhiA+IGtpbm1pdHN1XCA7Civmj7rnr60gPiB5dXJpa2Fnb1wgOwor6Zuq5YOPID4gc2V0c3V6b3VcIDsKK+e0heeOiSA+IGtvdWd5b2t1XCA7CivnsbPolLUgPiBrb21lZ3VyYVwgOwor5r2u6aKoID4gc2hpb2themVcIDsKK+Wei+e0mSA+IGthdGFnYW1pXCA7CivoqKrlrqIgPiBob3VreWFrdVwgOwor6Kix5auBID4gaWluYXp1a2VcIDsKK+aNj+mAoCA+IG5ldHN1em91XCA7CivmlaPkvZogPiBzYW4nJ2l0c3VcIDsKK+ioseWpmiA+IGlpbmF6dWtlXCA7CivntKLmvKAgPiBzYWt1YmFrdVwgOwor6ZaP56eSID4gdXJ1dWJ5b3VcIDsKK+a9pOmjviA+IGp1bnNob2t1XCA7Civmi7PpqqggPiBnZW5rb3RzdVwgOwor57a/5a+GID4gbWVubWl0c3VcIDsKK+a/gOi2iiA+IGdla2lldHN1XCA7Civntr/lrp8gPiBtZW5qaXRzdVwgOwor57Sw5rOiID4gc2F6YW5hbWlcIDsKK+manOWjgSA+IHNob3VoZWtpXCA7Civlm73os4ogPiBrb2t1em9rdVwgOwor54K55ruFID4gdGVubWV0c3VcIDsKK+inpuaJiyA+IHNob2t1c2h1XCA7Civnr4Dpo58gPiBzZXNzaG9rdVwgOwor5r+A6LOeID4gZ2VraXNob3VcIDsKK+ijvee5lCA+IHNlaXNob2t1XCA7CivntabmlpkgPiBreXV1cnlvdVwgOwor57SU5r2UID4ganVua2V0c3VcIDsKK+malOWjgSA+IGtha3VoZWtpXCA7CivmlL7liJcgPiBob3VyZXRzdVwgOwor6Zm45bCGID4gcmlrdXNob3VcIDsKK+e1gualrSA+IHNodXVneW91XCA7Civpm6rkuIogPiBzZXRzdWpvdVwgOwor57Kf57KSID4gem9rdXJ5dXVcIDsKK+ims+aciCA+IGthbmdldHN1XCA7CivntbHmi6wgPiB0b3VrYXRzdVwgOwor5ou+6ZuGID4gc2h1dXNodXVcIDsKK+e3keWcsCA+IHJ5b2t1Y2hpXCA7CivnhKblv4MgPiBzaG91c2hpblwgOwor56+A6Zu7ID4gc2V0c3VkZW5cIDsKK+eymOeymCA+IG5lYmFuZWJhXCA7Civngo7nhrEgPiBlbicnbmV0c3VcIDsKK+WbveiosSA+IGt1bmltb3RvXCA7CivplovnmbogPiBrYWloYXRzdVwgOwor57KS57KSID4gcnl1dXJ5dXVcIDsKK+aZguOAhSA+IHRva2lkb2tpXCA7Civop6PlvI8gPiBrYWlzaGlraVwgOwor6Kaq5pePID4gc2hpbnpva3VcIDsKK+mVt+efsyA+IGNob3VzZWtpXCA7CivnsonnsokgPiBrb25hZ29uYVwgOwor5pCN546HID4gc29ucml0c3VcIDsKK+ihqOixoSA+IGh5b3VzaG91XCA7Civpm4fkurogPiB5YXRvaW5pblwgOwor6Kit5ZWPID4gc2V0c3Vtb25cIDsKK+immuabuCA+IG9ib2VnYWtpXCA7CivmvIbpu5IgPiBzaGlra29rdVwgOwor57eo5YWlID4gaGVuJydueXV1XCA7Civmi5Lpo58gPiBreW9zaG9rdVwgOwor6ZuG5LitID4gc2h1dWNodXVcIDsKK+e0r+aciCA+IHJ1aWdldHN1XCA7CivlnoLnm7QgPiBzdWljaG9rdVwgOwor57SF5q67ID4gYmVuaWdhcmFcIDsKK+aLm+mbhiA+IHNob3VzaHV1XCA7CivmkqXlvKYgPiBoYXRzdWdlblwgOwor6KGM6LehID4gZ3lvdXNla2lcIDsKK+inkuW6lyA+IGthZG9taXNlXCA7Civnt7TkubMgPiByZW4nJ255dXVcIDsKK+exs+ezoCA+IGtvbWVudWthXCA7Civnt4/lipsgPiBzb3VyeW9rdVwgOwor57Sv5pelID4gcnVpaml0c3VcIDsKK+WcqOiBtyA+IHphaXNob2t1XCA7Civnt4/liKUgPiBzb3ViZXRzdVwgOwor5Z+L5rKhID4gbWFpYm90c3VcIDsKK+imquaImiA+IHNoaW5zZWtpXCA7CivnspjnnYAgPiBuZW5jaGFrdVwgOwor57Oe5rqcID4ga3Vzb2RhbWVcIDsKK+e3iuWIhyA+IGtpbnNldHN1XCA7Civnr4npgKAgPiBjaGlrdXpvdVwgOwor6Kem5aqSID4gc2hva3ViYWlcIDsKK+maiuWIlyA+IHRhaXJldHN1XCA7CivntKLmlbUgPiBzYWt1dGVraVwgOwor5aKX5Yi3ID4gem91c2F0c3VcIDsKK+aYk+OAhSA+IHlhc3V5YXN1XCA7Civnt5Hkvr8gPiByeW9rdWJlblwgOwor5r2u6LazID4gc2hpb2FzaGlcIDsKK+mWsuattCA+IGV0c3VyZWtpXCA7CivntI3mnK0gPiBub3VzYXRzdVwgOwor57WC5oGvID4gc2h1dXNva3VcIDsKK+aMr+iiliA+IGZ1cmlzb2RlXCA7Civns5/msYEgPiBrYXN1amlydVwgOwor57SE5p2fID4geWFrdXNva3VcIDsKK+ihhuiplSA+IHNodXVoeW91XCA7CivmipHprLEgPiB5b2t1dXRzdVwgOwor5oyH6LKrID4geXViaW51a2lcIDsKK+e1tuWkpyA+IHpldHN1ZGFpXCA7Civmv4Doh60gPiBnZWtpc2h1dVwgOwor6KaL5omAID4gbWlkb2tvcm9cIDsKK+aPm+eJqSA+IGthbmJ1dHN1XCA7CivnspfnjocgPiBhcmFyaXRzdVwgOwor57WC5bmVID4gc2h1dW1ha3VcIDsKK+ilsuaSgyA+IHNodXVnZWtpXCA7CivntZDlsYAgPiBrZWtreW9rdVwgOwor562L6aqoID4gc3VqaWJvbmVcIDsKK+aTpuWCtyA+IHN1cmlraXp1XCA7CivoprPlr58gPiBrYW5zYXRzdVwgOwor6Kaz5a6iID4ga2Fua3lha3VcIDsKK+a/q+eriyA+IHJhbnJpdHN1XCA7CivmjqXnnYAgPiBzZXRjaGFrdVwgOwor6Zmj5YiXID4gamlucmV0c3VcIDsKK+mWk+athyA+IGthbmtldHN1XCA7CivlnJ/nrYYgPiB0c3VrdXNoaVwgOwor6KGw6ImyID4gc3Vpc2hva3VcIDsKK+eym+eEtiA+IHNodWt1emVuXCA7CivplpPmrKAgPiBrYW5rZXRzdVwgOwor57Sw5byVID4gaG9zb2Jpa2lcIDsKK+imquWxgCA+IG95YWt5b2t1XCA7CivnrqHovYQgPiBrYW5rYXRzdVwgOwor6Zml5YWlID4ga2FuJydueXV1XCA7CivooajoirggPiBvbW90ZWdlaVwgOwor5pep44CFID4gaGF5YWJheWFcIDsKK+ijheedgCA+IHNvdWNoYWt1XCA7CivntYLlr6kgPiBzaHV1c2hpblwgOwor5r+D57iuID4gbm91c2h1a3VcIDsKK+iojuS8kCA+IHRvdWJhdHN1XCA7CivorI7jgIUgPiBuYXpvbmF6b1wgOwor57WC5a61ID4gc2h1dXNob3VcIDsKK+Wft+W/gyA+IHNodXVzaGluXCA7Civmj5Dnga8gPiBjaG91Y2hpblwgOwor5pGY5b+DID4gdGVraXNoaW5cIDsKK+ijj+eUuiA+IHVyYW1hY2hpXCA7CivnhYnkubMgPiByZW4nJ255dXVcIDsKK+Wcn+elniA+IHVjaGlnYW1pXCA7CivloIDlt50gPiBob3Jpa2F3YVwgOwor57W25ZG9ID4gemV0c3VtZWlcIDsKK+mZi+WKoyA+IHJvdXJldHN1XCA7CivopoHlvI8gPiB5b3VzaGlraVwgOwor562G6aCGID4gaGl0c3VqdW5cIDsKK+iitOedgCA+IGhha2FtYWdpXCA7Civoppblr58gPiBzaGlzYXRzdVwgOwor57Ch57SEID4ga2FuJyd5YWt1XCA7Civlm73nsY0gPiBrb2t1c2VraVwgOwor5oy96IKJID4gaGlraW5pa3VcIDsKK+e2muS8uCA+IHpva3VzaGluXCA7CivnspvmuIUgPiBzaHVrdXNlaVwgOwor57Sw5a+GID4gc2FpbWl0c3VcIDsKK+mWk+afhCA+IGFpZGFnYXJhXCA7CivmkoPlopwgPiBnZWtpdHN1aVwgOwor5aCF5a6fID4ga2Vuaml0c3VcIDsKK+iruOOAhSA+IG1vcm9tb3JvXCA7Civlm73nrZYgPiBrb2t1c2FrdVwgOwor5r+r55m6ID4gcmFucGF0c3VcIDsKK+ethumZoyA+IGhpdHN1amluXCA7CivntZDlm6MgPiBrZXRzdWRhblwgOwor6J6i6ZuqID4ga2Vpc2V0c3VcIDsKK+mWj+aciCA+IGp1bmdldHN1XCA7Civopoblr6kgPiBmdWt1c2hpblwgOwor6ZaL5pytID4ga2Fpc2F0c3VcIDsKK+e0ouWvniA+IHNha3ViYWt1XCA7CivonbbprqsgPiBjaG91emFtZVwgOwor5pCm5omLID4ga2FyYW1ldGVcIDsKK+Wbo+e1kCA+IGRhbmtldHN1XCA7Civml4HjgIUgPiBrYXRhZ2F0YVwgOwor57SZ5bGRID4ga2FtaWt1enVcIDsKK+eyleaxgSA+IGthc3VqaXJ1XCA7CivooYDoibIgPiBrZXNzaG9rdVwgOwor57Kb5q2jID4gc2h1a3VzZWlcIDsKK+mWgOacrSA+IG1vbnNhdHN1XCA7Civoq6TjgIUgPiBnYWt1Z2FrdVwgOwor57W25YCrID4gemV0c3VyaW5cIDsKK+Wei+aeoCA+IGthdGF3YWt1XCA7Civmir3osaEgPiBjaHV1c2hvdVwgOwor5oqE6YyyID4gc2hvdXJva3VcIDsKK+mRkeitmCA+IGthbnNoaWtpXCA7Civpl4fluIIgPiB5YW1paWNoaVwgOwor6J6N6ZuqID4geXV1c2V0c3VcIDsKK+ewkueriyA+IHNhbnJpdHN1XCA7CivntZDlkIggPiBrZXRzdWdvdVwgOwor5Zyw54axID4gY2hpbmV0c3VcIDsKK+mWk+aOpSA+IGthbnNldHN1XCA7CivnrYvph5EgPiBzdWppZ2FuZVwgOwor6Kaq5ZGKID4gc2hpbmtva3VcIDsKK+eul+ihkyA+IHNhbmp1dHN1XCA7CivmvaToibIgPiBqdW5zaG9rdVwgOwor6KGo56ugID4gaHlvdXNob3VcIDsKK+imquWPiyA+IHNoaW4nJ3l1dVwgOwor5ryi6KizID4ga2FuJyd5YWt1XCA7Civplbfml4UgPiBuYWdhdGFiaVwgOwor6Ziy5Lq6ID4gc2FraW1vcmlcIDsKK+e0s+WVhiA+IHNoaW5zaG91XCA7Civon7vonIIgPiBhcmliYWNoaVwgOwor5r+A55ebID4gZ2VraXRzdXVcIDsKK+ims+WFpSA+IGthbicnbnl1dVwgOwor6KGd56uLID4gdHN1aXRhdGVcIDsKK+aKteinpiA+IHRlaXNob2t1XCA7CivnsKHnlaUgPiBrYW5yeWFrdVwgOwor5o6h5rG6ID4gc2Fpa2V0c3VcIDsKK+aNqOeMqyA+IHN1dGVuZWtvXCA7CivnrrHoiLkgPiBoYWtvYnVuZVwgOwor566x6IifID4gaGFrb2J1bmVcIDsKK+ifgOiwtyA+IGtvbWVrYW1pXCA7Civon6/omasgPiBneW91Y2h1dVwgOwor5aSr44CFID4gc29yZXpvcmVcIDsKK+ijgeaxuiA+IHNhaWtldHN1XCA7CivoppblipsgPiBzaGlyeW9rdVwgOwor57KJ5pyrID4gZnVubWF0c3VcIDsKK+aOg+a7hSA+IHNvdW1ldHN1XCA7Civln5LlpJYgPiByYWNoaWdhaVwgOwor5o6S5rOEID4gaGFpc2V0c3VcIDsKK+ilv+WTsiA+IHNlaXRldHN1XCA7CivlnarmlbAgPiB0c3Vib3N1dVwgOwor57Oe5bC/ID4gZnVuJydueW91XCA7Civooajnmb0gPiBoeW91aGFrdVwgOwor5Zub55m+ID4geW9uaHlha3VcIDsKK+e0sOWIpSA+IHNhaWJldHN1XCA7CivmiYvpj6EgPiB0ZWthZ2FtaVwgOwor6Kaq5Lu7ID4gc2hpbicnbmluXCA7CivooI/ogqEgPiBnYW5pbWF0YVwgOwor5aCA5YmyID4gaG9yaXdhcmlcIDsKK+mWouWuiCA+IHNla2ltb3JpXCA7CivooYDnqI4gPiBrZXRzdXplaVwgOwor5Z+35YuZID4gc2hpdHN1bXVcIDsKK+aNleeJqSA+IHRvcmltb25vXCA7CivmiJDpppkgPiBuYXJpa3lvdVwgOwor57WC5LqGID4gc2h1dXJ5b3VcIDsKK+exs+adviA+IGJlaW1hdHN1XCA7Civnr4Dns7ggPiBmdXNoaWl0b1wgOwor5Z6L5byPID4ga2Vpc2hpa2lcIDsKK+evgOexsyA+IHNldHN1bWFpXCA7CivmlbDjgIUgPiBrYXp1a2F6dVwgOwor5om/6Ku+ID4gc2hvdWRha3VcIDsKK+ethuirhyA+IGhpdHN1ZGFuXCA7CivmioToqLMgPiBzaG91eWFrdVwgOwor6ZaL5bGAID4ga2Fpa3lva3VcIDsKK+eqrumzpSA+IGt5dXVjaG91XCA7Civon7nogqEgPiBnYW5pbWF0YVwgOwor6Y6M6aaWID4ga2FtYWt1YmlcIDsKK+eri+mjnyA+IHJpc3Nob2t1XCA7CivooYbnm64gPiBzaHV1bW9rdVwgOwor562G6KemID4gaGlzc2hva3VcIDsKK+ewoea9lCA+IGthbmtldHN1XCA7CivlnoLluZUgPiB0YXJlbWFrdVwgOwor56uL6aGYID4gcml0c3VnYW5cIDsKK+aRguWLlSA+IHNldHN1ZG91XCA7Civnsr7lr4YgPiBzZWltaXRzdVwgOwor56+A56m0ID4gZnVzaGlhbmFcIDsKK+aOpeaWrSA+IHNldHN1ZGFuXCA7CivooYDnm58gPiBrZXRzdW1laVwgOwor56+A56iOID4gc2V0c3V6ZWlcIDsKK+ezuOWPoyA+IGl0b2d1Y2hpXCA7CivmiYvou4ogPiB0ZWd1cnVtYVwgOwor6ZW35bC7ID4gbmFnYWppcmlcIDsKK+a/gea1gSA+IGRha3VyeXV1XCA7CivntKDkurogPiBzaGlyb3V0b1wgOwor5r+A5rWBID4gZ2VraXJ5dXVcIDsKK+Wft+S6iyA+IHNoaXRzdWppXCA7CivmiYDovYQgPiBzaG9rYXRzdVwgOwor5ouS57W2ID4ga3lvemV0c3VcIDsKK+aOkuaXpSA+IGhhaW5pY2hpXCA7Civns7vliJcgPiBrZWlyZXRzdVwgOwor54ax44CFID4gYXRzdWF0c3VcIDsKK+ihsOa7hSA+IHN1aW1ldHN1XCA7CivmjqHmjpggPiBzYWlrdXRzdVwgOwor5Z+S5YaFID4gcmFjaGluYWlcIDsKK+WcqOaXpSA+IHphaW5pY2hpXCA7CivmvIHoibIgPiBneW9zaG9rdVwgOwor5ouZ562GID4gc2VwcGl0c3VcIDsKK+e0lOS4gCA+IGp1bicnaXRzdVwgOwor5pCs5YWlID4gaGFuJydueXV1XCA7CivplqLlj5YgPiBzZWtpdG9yaVwgOwor5pC+5LmzID4gc2FrdW55dXVcIDsKK+ibrumqqCA+IGJhbmtvdHN1XCA7CivmvKvnrYYgPiBtYW5waXRzdVwgOwor56+A55SoID4gc2V0c3V5b3VcIDsKK+aKnOe+pCA+IGJhdHN1Z3VuXCA7CivmiYDoqqwgPiBzaG9zZXRzdVwgOwor5Zu95p+EID4ga3VuaWdhcmFcIDsKK+a6tuihgCA+IHlvdWtldHN1XCA7CivplpHljbQgPiBrYW5reWFrdVwgOwor5omL6KKLID4gdGVidWt1cm9cIDsKK+mWo+WDmiA+IGtha3VyeW91XCA7CivmiYvooZMgPiBzaHVqdXRzdVwgOwor57ep44CFID4geXVydXl1cnVcIDsKK+expOW8lSA+IGt1amliaWtpXCA7CivnsKHmnK0gPiBrYW5zYXRzdVwgOwor6J226J22ID4gY2hvdWNob3VcIDsKK+eti+iCiSA+IGtpbicnbmlrdVwgOwor56qT6ZqbID4gbWFkb2dpd2FcIDsKK+mWk+WFqyA+IGthbnBhY2hpXCA7CivmuJvpo58gPiBnZW5zaG9rdVwgOwor56y56IifID4gc2FzYWJ1bmVcIDsKK+aOpeWyuCA+IHNldHN1Z2FuXCA7CivmiK/oqIAgPiB0YXdhZ290b1wgOwor57K+5YqbID4gc2Vpcnlva3VcIDsKK+ihgOa2siA+IGtldHN1ZWtpXCA7CivnqbrpoqggPiBrYXJha2F6ZVwgOwor6KCP546JID4ga2FuaXRhbWFcIDsKK+ihgOa2mSA+IGtldHN1cnVpXCA7CivmvbDmu4UgPiBrYWltZXRzdVwgOwor5oi46KKLID4gdG9idWt1cm9cIDsKK+aOqOWvnyA+IHN1aXNhdHN1XCA7CivmjqXlrqIgPiBzZWtreWFrdVwgOwor5ZeF6KaaID4ga3l1dWtha3VcIDsKK+aKmOevgCA+IG9yaWZ1c2hpXCA7CivmvaTmu5EgPiBqdW5rYXRzdVwgOwor6ZaT5LyQID4ga2FuYmF0c3VcIDsKK+mOjOi2syA+IGthbWFhc2hpXCA7Civmva7mtYEgPiBjaG91cnl1dVwgOwor5Zub5pyIID4gc2hpZ2F0c3VcIDsKK+mVt+WIgCA+IG5hZ2luYXRhXCA7CivlmLLnrJEgPiBjaG91c2hvdVwgOwor56qu6L+9ID4ga3l1dXRzdWlcIDsKK+eqrui/qyA+IGt5dXVoYWt1XCA7CivmiKbooZMgPiBzZW5qdXRzdVwgOwor5o+h5YqbID4gYWt1cnlva3VcIDsKK+ikh+WLnSA+IGZ1a3VzaG91XCA7Civon7nnjokgPiBrYW5pdGFtYVwgOwor5r2u5rGQID4gY2hvdXNla2lcIDsKK+ewoeaKnCA+IGthbmJhdHN1XCA7Civmva7msLQgPiBzaGlvbWl6dVwgOwor56+A5ribID4gc2V0c3VnZW5cIDsKK+mNm+mJhCA+IHRhbnRldHN1XCA7CivpmobjgIUgPiByeXV1cnl1dVwgOwor6ZqF44CFID4gc3VtaXp1bWlcIDsKK+aPmuWKmyA+IHlvdXJ5b2t1XCA7Civnq7nolq4gPiB0YWtleWFidVwgOwor5omN6ImyID4gc2Fpc2hva3VcIDsKK+ibjembqiA+IGtlaXNldHN1XCA7Civnq4voq5YgPiByaXRzdXJvblwgOwor57Gz5Z2qID4gYmVpdHN1Ym9cIDsKK+ethueusSA+IGZ1ZGViYWtvXCA7CivmuKzph48gPiBzb2t1cnlvdVwgOwor562J562JID4gbmFkb25hZG9cIDsKK+eri+iogCA+IHJpdHN1Z2VuXCA7CivnspvlhZogPiBzaHVrdXRvdVwgOwor6KO45Ye6ID4gcmFzaHV0c3VcIDsKK+mNi+mHnCA+IG5hYmVrYW1hXCA7CivooZ3mkoMgPiBzaG91Z2VraVwgOwor5ryC55m9ID4gaHlvdWhha3VcIDsKK+a3t+mbkSA+IGtvbnphdHN1XCA7CivplbfkuYUgPiBjaG91a3l1dVwgOwor5Zue5oqYID4ga2Fpc2V0c3VcIDsKK+WcsOWigyA+IGRqaXpha2FpXCA7CivmjL/mipwgPiBzb3ViYXRzdVwgOwor6J2m6IWwID4gZWJpZ29zaGlcIDsKK+iho+aJiyA+IGtvcm9tb2RlXCA7Civoobflv4MgPiBjaHV1c2hpblwgOwor6Ju46LazID4gdGFrb2FzaGlcIDsKK+e2muOAhSA+IHpva3V6b2t1XCA7Civmt7HplbcgPiBzaGluY2hvdVwgOwor5ZWG6YePID4gc2hvdXJ5b3VcIDsKK+aMn+aSgyA+IGt5b3VnZWtpXCA7CivmjqXlkIggPiBzZXRzdWdvdVwgOwor6KOP5Y+jID4gdXJhZ3VjaGlcIDsKK+ialemjnyA+IHNhbnNob2t1XCA7CivmipHnlZkgPiB5b2t1cnl1dVwgOwor6Yys6YmEID4gcmVudGV0c3VcIDsKK+a9ruaZgiA+IHNoaW9kb2tpXCA7Civmv4Plr4YgPiBub3VtaXRzdVwgOwor6KGo5b60ID4gaHlvdWNob3VcIDsKK+ihqOW9sCA+IGh5b3VzaG91XCA7Civlm73lraYgPiBrb2t1Z2FrdVwgOwor5ryg5rygID4gYmFrdWJha3VcIDsKK+aOqOWKmyA+IHN1aXJ5b2t1XCA7Civmj4nkuosgPiBtb21lZ290b1wgOwor56u257+UID4ga3lvdXNob3VcIDsKK+m8u+mrrSA+IGhhbmFoaWdlXCA7Civnq4vokbUgPiB0YWNoaWFvaVwgOwor57KJ5LmzID4gZnVuJydueXV1XCA7CivooZ3lv4MgPiBzaG91c2hpblwgOwor6by76auYID4gaGFuYXRha2FcIDsKK+WWgOihgCA+IGtha2tldHN1XCA7CivmiY3nrYYgPiBzYWloaXRzdVwgOwor5oqV54mpID4gbmFnZW1vbm9cIDsKK+WcsOWNtSA+IGppdGFtYWdvXCA7CivnsbPlgIkgPiBrb21lZ3VyYVwgOwor6KKW5Z6jID4gc29kZWdha2lcIDsKK+a3semFkiA+IGZ1a2F6YWtlXCA7CivlnLDlipsgPiBjaGlyeW9rdVwgOwor56m66LGGID4gc29yYW1hbWVcIDsKK+aMr+W5hSA+IHNoaW5wdWt1XCA7CivpvLvpoqggPiBoYW5ha2F6ZVwgOwor5o6S5YiXID4gaGFpcmV0c3VcIDsKK+exs+S7jyA+IGJlaWZ1dHN1XCA7CivmjZXlpLEgPiBob3NoaXRzdVwgOwor56uq57ieID4gdGF0ZWppbWFcIDsKK+aKhOeJqSA+IHNob3Vtb25vXCA7Civnq7nnsKEgPiBjaGlrdWthblwgOwor5ryC5ryCID4gaHlvdWh5b3VcIDsKK+aKueauuiA+IG1hc3NhdHN1XCA7Civoo4/ku5ggPiB1cmFkenVrZVwgOwor5ZSQ6YukID4ga2FyYXN1a2lcIDsKK+aGtuiqrCA+IG9rdXNldHN1XCA7CivlnKflh7ogPiBhc3NodXRzdVwgOwor56uL6ISaID4gcmlra3lha3VcIDsKK+erueeuhiA+IHRha2ViZXJhXCA7Civlm73lm70gPiBrdW5pZ3VuaVwgOwor57CS5aWqID4gc2FuZGF0c3VcIDsKK+Wdh+S4gCA+IGtpbicnaXRzdVwgOwor5ryP5rOEID4gcm91c2V0c3VcIDsKK+m8u+mdqSA+IGhhbmFnYXdhXCA7CivnqbroqqwgPiBrdXVzZXRzdVwgOwor5Zyn5YWlID4gYXRzdW55dXVcIDsKK+aMmeW8jyA+IGt5b3NoaWtpXCA7Civmv6vlhaUgPiByYW4nJ255dXVcIDsKK+mLvOmJhCA+IGtvdXRldHN1XCA7CivnqbroqIAgPiBzb3JhZ290b1wgOwor5ZSQ6YeRID4ga2FyYWthbmVcIDsKK+iZjumsmiA+IHRvcmFoaWdlXCA7CivmurbnmbogPiB5b3VoYXRzdVwgOwor5ru05ru0ID4gdGVraXRla2lcIDsKK+a8gua1gSA+IGh5b3VyeXV1XCA7CivomY7pq60gPiB0b3JhaGlnZVwgOwor6Y+R55+iID4ga2FidXJheWFcIDsKK+a8guaziiA+IGh5b3VoYWt1XCA7CivomZrpo74gPiBreW9zaG9rdVwgOwor5ouZ5paHID4gc2V0c3VidW5cIDsKK+euj+absiA+IHNvdWt5b2t1XCA7CivonqLngasgPiBob3RhcnViaVwgOwor6ZGR5pytID4ga2Fuc2F0c3VcIDsKK+aJjeeVpSA+IHNhaXJ5YWt1XCA7CivpioDpvKAgPiBnaW4nJ25lenVcIDsKK+a/q+S8kCA+IHJhbmJhdHN1XCA7Civmi77lvpcgPiBzaHV1dG9rdVwgOwor5Zu95Y6fID4ga3VuaWJhcmFcIDsKK+ibnuidkyA+IG5hbWVrdWppXCA7CivmjozkuK0gPiBzaG91Y2h1dVwgOwor56a/6be5ID4gaGFnZXRha2FcIDsKK+epuuidiSA+IHV0c3VzZW1pXCA7Civnr4nluq0gPiBjaGlrdXRlaVwgOwor56+k5a2mID4gdG9rdWdha3VcIDsKK+iejeeGsSA+IHl1dW5ldHN1XCA7Civpu5npu5kgPiBtb2t1bW9rdVwgOwor6Y2L6JOLID4gbmFiZWJ1dGFcIDsKK+aIkOeriyA+IHNlaXJpdHN1XCA7CivnrYbmtJcgPiBmdWRlYXJhaVwgOwor5Zuw5Y20ID4ga29ua3lha3VcIDsKK+aHuOe1tiA+IGtlbnpldHN1XCA7Civpu5Lpu7QgPiBrdXJva2FiaVwgOwor5rW36aOfID4ga2Fpc2hva3VcIDsKK+m7kum7kiA+IGt1cm9ndXJvXCA7CivmhY7ph40gPiBzaGluY2hvdVwgOwor6buS6bqmID4ga3Vyb211Z2lcIDsKK+aIkOeoiyA+IG5hcnVob2RvXCA7Civlm73lhYMgPiBrdW5pbW90b1wgOwor5omN54mpID4gc2FpYnV0c3VcIDsKK+m7kum3uiA+IGt1cm9zYWdpXCA7CivpiaTpvLsgPiBrYWdpYmFuYVwgOwor5re36KGAID4ga29ua2V0c3VcIDsKK+euseW6rSA+IGhha29uaXdhXCA7Civmi5nmgqogPiBzZXRzdWFrdVwgOwor5raI6ZW3ID4gc2hvdWNob3VcIDsKK+e0sOOAhSA+IGhvc29ib3NvXCA7Civpu5LptKggPiBrdXJvZ2Ftb1wgOwor5ouh5by1ID4ga2FrdWNob3VcIDsKK+mKgOmrqiA+IGdpbnBhdHN1XCA7Civom4bomasgPiB1amltdXNoaVwgOwor6J2V55SaID4gc2hva3VqaW5cIDsKK+ialeixhiA+IHNvcmFtYW1lXCA7CivooI3luqcgPiBzYXNvcml6YVwgOwor6KKW5LiIID4gc29kZXRha2VcIDsKK+aIpueVpSA+IHNlbnJ5YWt1XCA7Civlm57li4UgPiBrYWljaG9rdVwgOwor5Zu95Lq6ID4ga3VuaWJpdG9cIDsKK+a5v+eWuSA+IHNoaXNzaGluXCA7CivlmLHmnJsgPiBzaG9rdWJvdVwgOwor5rWc6aKoID4gaGFtYWthemVcIDsKK+erqueQtCA+IHRhdGVnb3RvXCA7CivmuIvojLYgPiBzaGlidWNoYVwgOwor6KGM5ZWGID4gZ3lvdXNob3VcIDsKK+eqruetliA+IGt5dXVzYWt1XCA7CivomrDonJIgPiBnZWppZ2VqaVwgOwor5oqX5pelID4ga291bmljaGlcIDsKK+a4i+iJsiA+IHNoaWJ1aXJvXCA7CivmtLvprZogPiBrYXRzdWd5b1wgOwor56+J5aCkID4gY2hpa3V0ZWlcIDsKK+epuuiAsyA+IHNvcmFtaW1pXCA7Civpiq3ph5EgPiB6ZW5pa2FuZVwgOwor5oud5a+fID4gaGFpc2F0c3VcIDsKK+aJv+acjSA+IHNob3VmdWt1XCA7CivmiKrnhLYgPiBzZXRzdXplblwgOwor6b6N6IifID4gcnl1dXNodXVcIDsKK+a3t+iJsiA+IGtvbnNob2t1XCA7CivmuqLmtYEgPiBpdHN1cnl1dVwgOwor5rue5pelID4gdGFpbmljaGlcIDsKK+aKleaKgCA+IG5hZ2V3YXphXCA7CivmiJvnhLYgPiBrYXRzdXplblwgOwor5oiR54mpID4gd2FnYW1vbm9cIDsKK+m8u+iosSA+IGhhbmFtb3RvXCA7Civnp5Lph50gPiBieW91c2hpblwgOwor5oyv5L2cID4gc2hpbnNha3VcIDsKK+a6neazpSA+IGRvYnVkb3JvXCA7CivpipHpiYQgPiBzZW50ZXRzdVwgOwor56aE6auYID4gcm9rdWRha2FcIDsKK+a6neawtCA+IGRvYnVtaXp1XCA7CivmhoLoibIgPiB5dXVzaG9rdVwgOwor56m657GkID4ga2FyYWt1amlcIDsKK+mJhOmqqCA+IHRla2tvdHN1XCA7Civmua/nhZkgPiB5dWtlbXVyaVwgOwor5rSX6auqID4gc2VucGF0c3VcIDsKK+a3oeiJsiA+IHRhbnNob2t1XCA7Civnp4HpiYQgPiBzaGl0ZXRzdVwgOwor56eS6YCfID4gYnlvdXNva3VcIDsKK+evpOS/oSA+IHRva3VzaGluXCA7CivnqbrnrrEgPiBrYXJhYmFrb1wgOwor56qB56uLID4gdG90dGF0c3VcIDsKK+WUkOiNiSA+IGthcmFrdXNhXCA7Civon7vloZogPiBhcmlkenVrYVwgOwor5r2u5YWIID4gc2hpb3Nha2lcIDsKK+iZmuiqrCA+IGt5b3NldHN1XCA7CivooYDkvr8gPiBrZXRzdWJlblwgOwor6KGM5LitID4gZ3lvdWNodXVcIDsKK+a0i+mrqiA+IHlvdWhhdHN1XCA7CivmiKbmsqEgPiBzZW5ib3RzdVwgOwor5oyH5YWIID4geXViaXNha2lcIDsKK+mMpue1tSA+IG5pc2hpa2llXCA7CivllYbnrZYgPiBzaG91c2FrdVwgOwor5omL5p6VID4gdGVtYWt1cmFcIDsKK+engOmAuCA+IHNodXVpdHN1XCA7Civnr4DliIYgPiBzZXRzdWJ1blwgOwor5oim5q2/ID4gc2VuYm90c3VcIDsKK+erueanjSA+IHRha2V5YXJpXCA7Civono3mjqUgPiB5dXVzZXRzdVwgOwor6buS6YmEID4ga3Vyb2dhbmVcIDsKK+a9nOWFpSA+IHNlbicnbnl1dVwgOwor6buS6YeRID4ga3Vyb2dhbmVcIDsKK+a0i+mjnyA+IHlvdXNob2t1XCA7CivnrYnlvI8gPiB0b3VzaGlraVwgOwor6Jep6ZalID4gaGFuYmF0c3VcIDsKK+a1gemHjyA+IHJ5dXVyeW91XCA7CivmhJ/op6YgPiBrYW5zaG9rdVwgOwor6Y2854G4ID4gc2hpbmt5dXVcIDsKK+eqgeeZuiA+IHRvcHBhdHN1XCA7CivpiaTph50gPiBrYWdpYmFyaVwgOwor5oqV5a6/ID4gdG91c2h1a3VcIDsKK+erueaelyA+IGNoaWt1cmluXCA7CivmurbmjqUgPiB5b3VzZXRzdVwgOwor5ZWT55m6ID4ga2VpaGF0c3VcIDsKK+erueadkCA+IGNoaWt1emFpXCA7CivnqbrnmbogPiBrdXVoYXRzdVwgOwor5omV5outID4gZnVzc2hva3VcIDsKK+elnumiqCA+IGthbWlrYXplXCA7CivnqoPnlKggPiBzZXRzdXlvdVwgOwor5rWB6YCfID4gcnl1dXNva3VcIDsKK+a1gemAmiA+IHJ5dXV0c3V1XCA7Civmu53lt50gPiB0YWtpZ2F3YVwgOwor56mA57KSID4ga29rdXJ5dXVcIDsKK+etkeWtkCA+IGtva2lyaWtvXCA7Civnq6/mnKsgPiB0YW5tYXRzdVwgOwor5ZSQ57SZID4ga2FyYWthbWlcIDsKK+iWpumqqCA+IHNlbmtvdHN1XCA7CivplbfjgIUgPiBuYWdhbmFnYVwgOwor6Ju454S8ID4gdGFrb3lha2lcIDsKK+elnembuyA+IHNodWt1ZGVuXCA7CivmgZDpvo0gPiBreW91cnl1dVwgOwor56eB6KqsID4gc2hpc2V0c3VcIDsKK+WTgeiWhCA+IHNoaW5hdXN1XCA7Civmi53lgJ8gPiBoYWlzaGFrdVwgOwor5oiq5patID4gc2V0c3VkYW5cIDsKK+a1t+idlSA+IGthaXNob2t1XCA7CivnrpflhaUgPiBzYW4nJ255dXVcIDsKK+eorue0mSA+IHRhbmVnYW1pXCA7CivmuKnnhrEgPiBvbicnbmV0c3VcIDsKK+mJhOmJoiA+IHRlcHBhY2hpXCA7Civnp4HoqK0gPiBzaGlzZXRzdVwgOwor5rqA5pyIID4gbWFuZ2V0c3VcIDsKK+mNi+eJqSA+IG5hYmVtb25vXCA7Civmub7mm7IgPiB3YW5reW9rdVwgOwor5rOi6aKoID4gbmFtaWthemVcIDsKK+mRkeWIpSA+IGthbmJldHN1XCA7Civpu5LosbkgPiBrdXJvaHlvdVwgOwor5oi/5oi/ID4gZnVzYWZ1c2FcIDsKK+m7kuixhiA+IGt1cm9tYW1lXCA7CivllJDnqoEgPiB0b3V0b3RzdVwgOwor6buZ6Ku+ID4gbW9rdWRha3VcIDsKK+mHjum8oCA+IG5vbmV6dW1pXCA7CivllqzmnKggPiBreW91Ym9rdVwgOwor6buZ6KqtID4gbW9rdWRva3VcIDsKK+aBpemqqCA+IGNoaWtvdHN1XCA7CivmiYvlv4MgPiB0ZWdva29yb1wgOwor56qB54S2ID4gdG90c3V6ZW5cIDsKK+aKvOWIhyA+IG9zaGlraXJpXCA7CivmipHlnKcgPiB5b2t1YXRzdVwgOwor5oW256WdID4ga2Vpc2h1a3VcIDsKK+ethuWkqiA+IGZ1ZGVidXRvXCA7CivpiYTpgZMgPiB0ZXRzdWRvdVwgOwor57KY44CFID4gbmViYW5lYmFcIDsKK+elnumPoSA+IHNoaW5reW91XCA7CivmuInnjJ8gPiBzaG91cnlvdVwgOwor6Jma6ISxID4ga3lvZGF0c3VcIDsKK+ays+mxkiA+IGthd2FtYXN1XCA7Civpiq3oi5QgPiB6ZW5pZ29rZVwgOwor56uL5pytID4gdGF0ZWZ1ZGFcIDsKK+WZm+WCtyA+IGthbWlraXp1XCA7Civph47ptrIgPiBub2JpdGFraVwgOwor5ryU5Ye6ID4gZW5zaHV0c3VcIDsKK+a4rOa3sSA+IHNva3VzaGluXCA7CivpvLvntJkgPiBoYW5hZ2FtaVwgOwor5rip5ripID4gbnVrdW51a3VcIDsKK+m8u+ezniA+IGhhbmFrdXNvXCA7CivnsonjgIUgPiBrb25hZ29uYVwgOwor5oKq6YCGID4gYWt1Z3lha3VcIDsKK+aCqui+oyA+IGFrdXJhdHN1XCA7CivmiKbmhYQgPiBzZW5yaXRzdVwgOwor6buS6KGoID4ga29rdWh5b3VcIDsKK+a2vOeniyA+IHJ5b3VzaHV1XCA7CivpvLvnrYsgPiBoYW5hc3VqaVwgOwor6bqp6LOqID4gZnVzaGl0c3VcIDsKK+ayiOm7mSA+IGNoaW5tb2t1XCA7Civom43ngasgPiBob3RhcnViaVwgOwor6YeR6auqID4ga2lucGF0c3VcIDsKK+mJiOixhiA+IG5hdGFtYW1lXCA7Civno6/pt7ggPiBpc29zaGlnaVwgOwor5rqd5bedID4gZG9idWdhd2FcIDsKK+mOlOaOpSA+IHlvdXNldHN1XCA7CivpjbXmnZ8gPiBrYWdpdGFiYVwgOwor56We6YCfID4gc2hpbnNva3VcIDsKK+m7kuibhyA+IGt1cm9oZWJpXCA7CivmuoDmgqYgPiBtYW4nJ2V0c3VcIDsKK+aIkeaIkSA+IHdhcmV3YXJlXCA7CivmuIXmvZQgPiBzZWlrZXRzdVwgOwor562G5ZCNID4gaGl0c3VtZWlcIDsKK+eoi+eoiyA+IGhvZG9ob2RvXCA7CivonY7luqcgPiBzYXNvcml6YVwgOwor56iu55WcID4gc2h1Y2hpa3VcIDsKK+eti+WKmyA+IGtpbnJ5b2t1XCA7CivpioXoibIgPiBkb3VzaG9rdVwgOwor5Y+N6aqoID4gaGFua290c3VcIDsKK+a6luWwuiA+IGp1bnNoYWt1XCA7Civlj6zpm4YgPiBzaG91c2h1dVwgOwor5rOo6YCyID4gY2h1dXNoaW5cIDsKK+WVhuazgSA+IHNob3VreW91XCA7Civpi7znjokgPiBrb3VneW9rdVwgOwor5rm/5bqmID4gc2hpdHN1ZG9cIDsKK+ifhOS8jyA+IGNoaXBwdWt1XCA7CivmtYXokbEgPiBhc2F0c3VraVwgOwor5oiS5b6LID4ga2Fpcml0c3VcIDsKK+eruuWtpiA+IGppa3VnYWt1XCA7CivlkLnosqsgPiBmdWtpbnVraVwgOwor56y55Y6fID4gc2FzYWhhcmFcIDsKK+eqk+aeoCA+IG1hZG93YWt1XCA7CivllJDniakgPiB0b3Vtb3RzdVwgOwor5Y+i6ZuyID4gbXVyYWt1bW9cIDsKK+WPoumbqCA+IG11cmFzYW1lXCA7CivmtpznpZ4gPiB0b2t1c2hpblwgOwor56uv5bGAID4gdGFua3lva3VcIDsKK+aKnuS4gCA+IHRha3VpdHN1XCA7CivmiKblsYAgPiBzZW5reW9rdVwgOwor562G5YWIID4gZnVkZXNha2lcIDsKK+mKreeusSA+IHplbmliYWtvXCA7CivpjKjms4ogPiBieW91aGFrdVwgOwor6YmE6KGAID4gdGVra2V0c3VcIDsKK+a3t+a1tCA+IGtvbicneW9rdVwgOwor5rex5rexID4gZnVrYWJ1a2FcIDsKK+iXquibhyA+IHlhYnVoZWJpXCA7CivnqK7niakgPiB0YW5lbW9ub1wgOwor56iu54mbID4gdGFuZXVzaGlcIDsKK+ibh+avkiA+IGhlYmlkb2t1XCA7CivmiIzlubQgPiBpbnVkb3NoaVwgOwor6by755a+ID4gYmlzaGl0c3VcIDsKK+a7keWJpCA+IGthdHN1emFpXCA7Civpu5LoiLkgPiBrdXJvZnVuZVwgOwor5ZWG5qiZID4gc2hvdWh5b3VcIDsKK+m8jueriyA+IHRlaXJpdHN1XCA7CivpioDnv7wgPiBnaW4nJ3lva3VcIDsKK+azpei2syA+IGRvcm9hc2hpXCA7CivpjozlvaIgPiBrYW1hZ2F0YVwgOwor5ruF5Y20ID4gbWVra3lha3VcIDsKK+mHo+mKrSA+IHRzdXJpc2VuXCA7CivllYbmpa0gPiBzaG91Z3lvdVwgOwor6Ymx6ISIID4ga291bXlha3VcIDsKK+WPjumbhiA+IHNodXVzaHV1XCA7Civomornh7sgPiBrYWlidXNoaVwgOwor5ZCE6YCxID4ga2FrdXNodXVcIDsKK+elnuiolyA+IHNoaW50YWt1XCA7Civmib/kvI8gPiBzaG91ZnVrdVwgOwor5ZCD6YCGID4gc2hha2t1cmlcIDsKK+m6ueiPjCA+IGtvdWppa2luXCA7Civpu4ToibIgPiBrb3VzaG9rdVwgOwor5ZG96ISIID4gbWVpbXlha3VcIDsKK+m7kuiCiSA+IGt1cm9uaWt1XCA7Civpuqbol4EgPiBtdWdpd2FyYVwgOwor56u55Z6jID4gdGFrZWdha2lcIDsKK+mNm+aOpSA+IHRhbnNldHN1XCA7Civph53ph5EgPiBoYXJpZ2FuZVwgOwor6YqA57iBID4gZ2luYnVjaGlcIDsKK+mHkemMhiA+IGthbmFzYWJpXCA7CivnqI7njocgPiB6ZWlyaXRzdVwgOwor56uL5bGxID4gdGF0ZXlhbWFcIDsKK+m6puiSlCA+IG11Z2ltYWtpXCA7Civph5HpiYQgPiBraW50ZXRzdVwgOwor5Y+k6YeRID4gZnVydWdhbmVcIDsKK+WPpOmHjCA+IGZ1cnVzYXRvXCA7CivllYTmnKggPiB0YWt1Ym9rdVwgOwor5Y+j6YeNID4ga3VjaGlvbW9cIDsKK+a4h+acmyA+IGthdHN1Ym91XCA7CivmiY3lipsgPiBzYWlyeW9rdVwgOwor5Y+k6YWSID4gZnVydXpha2VcIDsKK+a4heacnSA+IHNoaW5jaG91XCA7CivpvLvnhoogPiBoYW5hZ3VtYVwgOwor56yR5YqHID4gc2hvdWdla2lcIDsKK+mMq+adliA+IHNoYWt1am91XCA7Civnqbrmkq4gPiBrdXVzYXRzdVwgOwor6buZ57SEID4gbW9rdXlha3VcIDsKK+ekvuiqrCA+IHNoYXNldHN1XCA7CivmtYXnt5EgPiBzZW5yeW9rdVwgOwor5Y+O6YyyID4gc2h1dXJva3VcIDsKK+aJi+WIgCA+IHRlZ2F0YW5hXCA7CivnqY3mpbUgPiBzZWtreW9rdVwgOwor5omT5YK3ID4gdWNoaWtpenVcIDsKK+mJhOiJsiA+IHRldHN1aXJvXCA7Civlm73jgIUgPiBrdW5pZ3VuaVwgOwor56aP6ICzID4gZnVrdW1pbWlcIDsKK+a7heS6oSA+IG1ldHN1Ym91XCA7CivmhYTnhLYgPiByaXRzdXplblwgOwor5Y+j6L+wID4ga291anV0c3VcIDsKK+WQjOiqrCA+IGRvdXNldHN1XCA7CivnqpLmga8gPiBjaGlzc29rdVwgOwor5Y+z6LazID4gbWlnaWFzaGlcIDsKK+aylumHoyA+IG9raWR6dXJpXCA7Civnq7nlj6IgPiB0YWthbXVyYVwgOwor6buS57GzID4ga3Vyb2dvbWVcIDsKK+WPjumHjyA+IHNodXVyeW91XCA7CivpiYTohZUgPiB0ZXRzdXdhblwgOwor5Y+b6YCGID4gaGFuZ3lha3VcIDsKK+m7nueptCA+IHRlbmtldHN1XCA7CivmsLTps6UgPiBtaXp1ZG9yaVwgOwor5rqA5ZarID4gbWFua2l0c3VcIDsKK+WRiOiJsiA+IHRlaXNob2t1XCA7CivmiJHlm70gPiB3YWdha3VuaVwgOwor6Jau6JuHID4geWFidWhlYmlcIDsKK+WPseiyrCA+IHNoaXNzZWtpXCA7CivmgqroiIwgPiBha3V6ZXRzdVwgOwor6JmO54yrID4gdG9yYW5la29cIDsKK+a0kuiEsSA+IHNoYWRhdHN1XCA7CivpurvntrEgPiBhc2FkenVuYVwgOwor6buQ56u/ID4gbW9jaGl6YW9cIDsKK+WQq+iThCA+IGdhbmNoaWt1XCA7Civlj43pgIYgPiBoYW5neWFrdVwgOwor5Y+C6YWMID4gc2Fuc2hha3VcIDsKK+aIpuWKmyA+IHNlbnJ5b2t1XCA7Civlj47ovK8gPiBzaHV1c2h1dVwgOwor5ZCE6KGMID4ga2FrdWd5b3VcIDsKK+aIpuWIlyA+IHNlbnJldHN1XCA7CivpjYvlupUgPiBuYWJlem9rb1wgOwor5oCl6YCyID4ga3l1dXNoaW5cIDsKK+aCquiAhSA+IHdhcnVtb25vXCA7CivmgKXpgJ8gPiBreXV1c29rdVwgOwor5oCl6L+9ID4ga3l1dXRzdWlcIDsKK+aApei/qyA+IGt5dXVoYWt1XCA7CivpvLvmsLQgPiBoYW5hbWl6dVwgOwor5oK957W2ID4gc2VpemV0c3VcIDsKK+eqruWigyA+IGt5dXVreW91XCA7CivmgrbntbYgPiBtb256ZXRzdVwgOwor5ZGo56ugID4gc2h1dXNob3VcIDsKK+W/q+mXiiA+IGthaWthdHN1XCA7CivmsLTpo58gPiBzdWlzaG9rdVwgOwor56u25L2cID4ga3lvdXNha3VcIDsKK+eri+WRvSA+IHJpdHN1bWVpXCA7CivljrPpgZQgPiBnZW50YXRzdVwgOwor5Y6z6YC5ID4gZ2VudGF0c3VcIDsKK+a5vuWFpSA+IHdhbicnbnl1dVwgOwor5rip5a6kID4gb25zaGl0c3VcIDsKK+mHjeiqrCA+IGp1dXNldHN1XCA7CivpjYvlsLsgPiBuYWJlamlyaVwgOwor5rex5oaCID4gc2hpbicneXV1XCA7CivmsLfpnIcgPiBoeW91c2hpblwgOwor6YmE562GID4gdGVwcGl0c3VcIDsKK+a0u+ecvCA+IGthdHN1Z2FuXCA7Civlj6Poo48gPiBrdWNoaXVyYVwgOwor5rSe56qfID4gZG91a3V0c3VcIDsKK+aIkeWEmCA+IHdhZ2FtYW1hXCA7CivmsLTpmpsgPiBtaXp1Z2l3YVwgOwor6YeN6KSHID4gY2hvdWZ1a3VcIDsKK+engeeJqSA+IHNoaWJ1dHN1XCA7CivmtLvnmbogPiBrYXBwYXRzdVwgOwor6bqm56iIID4gbXVnaXdhcmFcIDsKK+eqkuWhniA+IGNoaXNzb2t1XCA7CivmtojmsoggPiBzaG91Y2hpblwgOwor5ZCM6ImyID4gZG91c2hva3VcIDsKK+aCquethiA+IGFrdWhpdHN1XCA7CivnoazpqqggPiBrb3Vrb3RzdVwgOwor5oiR5L6tID4gd2FnYW1hbWFcIDsKK+ayouigjyA+IHNhd2FnYW5pXCA7CivmsqLon7kgPiBzYXdhZ2FuaVwgOwor5oar5a+fID4gYmluc2F0c3VcIDsKK+m6l+ethiA+IHJlaWhpdHN1XCA7Civol4HntJkgPiB3YXJhZ2FtaVwgOwor56uL5YOPID4gcml0c3V6b3VcIDsKK+a0u+eUqCA+IGthdHN1eW91XCA7Civmtojmr5IgPiBzaG91ZG9rdVwgOwor5ZWG5a2mID4gc2hvdWdha3VcIDsKK+aIkeS6uiA+IHdhcmVoaXRvXCA7CivpjYvloqggPiBuYWJlenVtaVwgOwor5oiQ5LuPID4gam91YnV0c3VcIDsKK+m7kueMqyA+IGt1cm9uZWtvXCA7CivmiJHkuosgPiB3YWdha290b1wgOwor5ZCM6IOeID4gaGFyYWthcmFcIDsKK+mJseeJqSA+IGtvdWJ1dHN1XCA7CivmgKXopbIgPiBreXV1c2h1dVwgOwor5ZCM6IG3ID4gZG91c2hva3VcIDsKK+epuuWkoiA+IHNvcmF5dW1lXCA7Civms6XnuIQgPiBkb3JvbmF3YVwgOwor5b606ZuGID4gY2hvdXNodXVcIDsKK+mFi+mVtyA+IHNodXVjaG91XCA7CivljYrpnbQgPiBoYW5ndXRzdVwgOwor5oK2552AID4gbW9uY2hha3VcIDsKK+m7hOeOiSA+IGtvdWd5b2t1XCA7Civpu5LnhoogPiBrdXJvZ3VtYVwgOwor6JKy6a2aID4ga2FtYXRvdG9cIDsKK+aDqOeDiCA+IHNhbnJldHN1XCA7CivllonlhYMgPiBub2RvbW90b1wgOwor56m65aCAID4ga2FyYWJvcmlcIDsKK+iWhOiGnCA+IGhha3VtYWt1XCA7Civnqq/lhYMgPiBrYW1hbW90b1wgOwor5rib5ZynID4gZ2VuJydhdHN1XCA7Civnp4Hmt5EgPiBzaGlzaHVrdVwgOwor56ia5ouZID4gY2hpc2V0c3VcIDsKK+elkOethiA+IHl1dWhpdHN1XCA7Civlj6TojYkgPiBmdXJ1a3VzYVwgOwor5Y+j6I2SID4ga3VjaGlhcmFcIDsKK+elnuelniA+IGthbWlnYW1pXCA7CivnpZ3npbcgPiBzaHVrdXRvdVwgOwor56We56WQID4gc2hpbicneXV1XCA7CivnpZ3npa0gPiBzaHVrdXNhaVwgOwor5ZGK55m9ID4ga29rdWhha3VcIDsKK+m7hOeGsSA+IGtvdW5ldHN1XCA7CivljYrplbcgPiBoYW4nJ25hZ2FcIDsKK+mJhOeTtiA+IHRldHN1YmluXCA7CivmsLTpg6ggPiBtaXp1bm9idVwgOwor5oKq55mWID4gd2FydWd1c2VcIDsKK+m7kua9riA+IGt1cm9zaGlvXCA7Civok4Tpm7sgPiBjaGlrdWRlblwgOwor5q+N6bOlID4gaGFoYWRvcmlcIDsKK+WPo+iIjCA+IGtvdXpldHN1XCA7CivnpZ3noLIgPiBzaHVrdWhvdVwgOwor5q+b6auqID4gbW91aGF0c3VcIDsKK+ekvOevgCA+IHJlaXNldHN1XCA7Civlj4rokL0gPiBreXV1cmFrdVwgOwor6YqD5q66ID4ganV1c2F0c3VcIDsKK+a4heWbvSA+IHNoaW5rb2t1XCA7Civmg4XnhrEgPiBqb3VuZXRzdVwgOwor56m65ZKzID4ga2FyYXpla2lcIDsKK+ibruWKmyA+IGJhbnJ5b2t1XCA7CivmhYvmhYsgPiB3YXphd2F6YVwgOwor6YeR6ISIID4ga2lubXlha3VcIDsKK+WPquiAhSA+IHRhZGFtb25vXCA7Civmh4fliIcgPiBrb25zZXRzdVwgOwor56aB54mpID4ga2lubW90c3VcIDsKK+iZkOaUvyA+IGd5YWt1c2VpXCA7CivlkI3nrYYgPiBtZWloaXRzdVwgOwor56K66Ki8ID4ga2FrdXNob3VcIDsKK+ekvueotyA+IHNoYXNob2t1XCA7CivlkIznrYYgPiBkb3VoaXRzdVwgOwor5oCl6JC9ID4ga3l1dXJha3VcIDsKK+a0u+a6jCA+IGthcHBhdHN1XCA7CivphY3pgZQgPiBoYWl0YXRzdVwgOwor6Yu45bGRID4gbm9rb2t1enVcIDsKK+mHjeiBtyA+IGp1dXNob2t1XCA7CivmtYHmtYEgPiByeXV1cnl1dVwgOwor5reA5bedID4geW9kb2dhd2FcIDsKK+aDkea6uiA+IHdha3VkZWtpXCA7CivmtYXmspMgPiBhc2FndXRzdVwgOwor5ZCM56m0ID4gZG91a2V0c3VcIDsKK+aDqOauuiA+IHphbnNhdHN1XCA7CivphbfoqZUgPiBrb2t1aHlvdVwgOwor6Yej57O4ID4gdHN1cmlpdG9cIDsKK+a0l+eGiiA+IGFyYWlndW1hXCA7Civlv4PouqsgPiBzaGluc2hpblwgOwor6YeN572wID4ganV1YmF0c3VcIDsKK+a1geawtyA+IHJ5dXVoeW91XCA7Civms6jnm64gPiBjaHV1bW9rdVwgOwor5Y+M6ISaID4gc291a3lha3VcIDsKK+axl+ihgCA+IGthbmtldHN1XCA7Civmtarmm7IgPiByb3VreW9rdVwgOwor6YeR57iBID4ga2luYnVjaGlcIDsKK+WNiumBkyA+IGhhbm1pY2hpXCA7CivljJfpmbggPiBob2t1cmlrdVwgOwor5Y6f6JasID4gZ2VuJyd5YWt1XCA7CivljbPoq74gPiBzb2t1ZGFrdVwgOwor5rS75q66ID4ga2Fzc2F0c3VcIDsKK+WUr+WUryA+IHRhZGF0YWRhXCA7CivlkajmtYEgPiBzaHV1cnl1dVwgOwor56iy5aa7ID4gaW5hZHp1bWFcIDsKK+WPs+ethiA+IHl1dWhpdHN1XCA7CivllJDloqggPiBrYXJhc3VtaVwgOwor5Y+y562GID4gc2hpaGl0c3VcIDsKK+mHo+ervyA+IHRzdXJpemFvXCA7Civph53nrrEgPiBoYXJpYmFrb1wgOwor56eB5puyID4gc2hpa3lva3VcIDsKK+W/g+ixoSA+IHNoaW5zaG91XCA7CivllLHlkI0gPiBzaG91bXlvdVwgOwor5Y+q566hID4gaGl0YXN1cmFcIDsKK+WQjOedgCA+IGRvdWNoYWt1XCA7CivmtKXmtKUgPiBzaGluc2hpblwgOwor5Y2T6LaKID4gdGFrdWV0c3VcIDsKK+aBkOernCA+IGt5b3VyeXV1XCA7CivpvLvlsY4gPiBoYW5ha3Vzb1wgOwor5riF5Ya9ID4gc2VpcmV0c3VcIDsKK+iSkOmbhiA+IHNodXVzaHV1XCA7Civlj5bntYQgPiB0b3Jpa3VtaVwgOwor6JKy6Ym+ID4ga2FtYWJva29cIDsKK+a1t+aKnCA+IGthaWJhdHN1XCA7Civph5HnrrEgPiBrYW5lYmFrb1wgOwor6Jma5byPID4ga3lvc2hpa2lcIDsKK+a2iOaBryA+IHNob3Vzb2t1XCA7CivmsJfos6ogPiBraXNoaXRzdVwgOwor5q676aCCID4ga2FrdWNob3VcIDsKK+WPo+esmyA+IGt1Y2hpYnVlXCA7CivlkITnnIEgPiBrYWt1c2hvdVwgOwor5Y6f6Iy4ID4gaGFyYXRha2VcIDsKK+m0m+m0piA+IG9zaGlkb3JpXCA7CivolqznjokgPiBrdXN1ZGFtYVwgOwor6JmQ5b6FID4gZ3lha3V0YWlcIDsKK+m7kuaeoCA+IGt1cm93YWt1XCA7CivphbfoloQgPiBrb2t1aGFrdVwgOwor5b+D6Ki8ID4gc2hpbnNob3VcIDsKK+mHkeeptCA+IGtpbmtldHN1XCA7Civljp/oibIgPiBnZW5zaG9rdVwgOwor6buS5pyNID4ga3Vyb2Z1a3VcIDsKK+WLnemmrCA+IGthY2hpdW1hXCA7Civmt7HliLsgPiBzaGlua29rdVwgOwor56C06ZCYID4gd2FyZWdhbmVcIDsKK+W/heimgSA+IGhpdHN1eW91XCA7Civmt7flhaUgPiBrb24nJ255dXVcIDsKK+W/jeihkyA+IG5pbmp1dHN1XCA7CivljrPnvbAgPiBnZW5iYXRzdVwgOwor5rWB5pyoID4gcnl1dWJva3VcIDsKK+mIjeeJqSA+IGRvbmJ1dHN1XCA7Civlj7jnm7QgPiBzaGljaG9rdVwgOwor5Y2U6Kq/ID4ga3lvdWNob3VcIDsKK+W+jOi/sCA+IGtvdWp1dHN1XCA7CivnpoHmrLIgPiBraW4nJ3lva3VcIDsKK+a4h+S7sCA+IGthdHN1Z291XCA7Civnp6nluo8gPiBjaGl0c3Vqb1wgOwor5Y2S6KuWID4gc290c3Vyb25cIDsKK+awtOidlSA+IHN1aXNob2t1XCA7CivmtYHmmqIgPiByeXV1Y2hvdVwgOwor5rC06JycID4gc3VpbWl0c3VcIDsKK+efs+mrmCA+IGtva3VkYWthXCA7CivmvILjgIUgPiBoeW91aHlvdVwgOwor5b606Ki8ID4gY2hvdXNob3VcIDsKK+WRveaXpSA+IG1laW5pY2hpXCA7CivlvqnorpAgPiBmdWt1c2h1dVwgOwor5b6p6K6OID4gZnVrdXNodXVcIDsKK+WQjOeOhyA+IGRvdXJpdHN1XCA7Civmg5zmmKUgPiBzZWtpc2h1blwgOwor56S854mpID4gcmVpbW90c3VcIDsKK+efremrqiA+IHRhbnBhdHN1XCA7CivomZrlrp8gPiBreW9qaXRzdVwgOwor5rKW56mNID4gY2h1dXNla2lcIDsKK+iThOiyoSA+IGNoaWt1emFpXCA7Civlj47nqasgPiBzaHV1a2FrdVwgOwor5oGL552AID4gcmVuY2hha3VcIDsKK+W+qeiqvyA+IGZ1a3VjaG91XCA7CivmgqnmrrogPiBub3VzYXRzdVwgOwor5b6p6KqmID4gZnVrdXNob3VcIDsKK+ayu+eVpSA+IGNoaXJ5YWt1XCA7CivlkI3niakgPiBtZWlidXRzdVwgOwor5YyX6YCyID4gaG9rdXNoaW5cIDsKK+m7hOaYjyA+IHRhc29nYXJlXCA7Civlj7LnlaUgPiBzaGlyeWFrdVwgOwor5rOl5r+YID4gbnVrYXJ1bWlcIDsKK+iXpOajmiA+IGZ1amlkYW5hXCA7CivljJfovrAgPiBob2t1c2hpblwgOwor5Y6z57KbID4gZ2Vuc2h1a3VcIDsKK+mJhOajkiA+IHRldHN1Ym91XCA7CivpvJPlrqQgPiBrb3NoaXRzdVwgOwor6bOp6bqmID4gaGF0b211Z2lcIDsKK+ayiOepjSA+IGNoaW5zZWtpXCA7CivpiYTmooMgPiBrYW5hdGVrb1wgOwor5by36ZyHID4ga3lvdXNoaW5cIDsKK+iQvemthCA+IHJha3VoYWt1XCA7Civph4/nmoQgPiByeW91dGVraVwgOwor5b+g6ImvID4gY2h1dXJ5b3VcIDsKK+iXqeacrSA+IGhhbnNhdHN1XCA7Civlj6TnlrUgPiBmdXJ1a2l6dVwgOwor5YuF6aGYID4gY2hva3VnYW5cIDsKK+mFkuiUtSA+IHNha2FndXJhXCA7Civli4XpoYwgPiBjaG9rdWRhaVwgOwor5b+g6IejID4gY2h1dXNoaW5cIDsKK+W8semchyA+IGpha3VzaGluXCA7CivnrYnjgIUgPiBuYWRvbmFkb1wgOwor56aB5pytID4ga2luc2F0c3VcIDsKK+eoruWIpSA+IHNodWJldHN1XCA7Civpu5LmiL8gPiBrdXJvYnVzYVwgOwor5oKm5qW9ID4gZXRzdXJha3VcIDsKK+awtOiNiSA+IG1penVrdXNhXCA7CivmhJvlrZAgPiBpdG9zaGlnb1wgOwor6YmE5p2QID4gdGV0c3V6YWlcIDsKK+W8pumfsyA+IHRzdXJ1b3RvXCA7CivllJDlgpggPiBrYXJha2FzYVwgOwor6bqm5p2fID4gbXVnaXRhYmFcIDsKK+awtOiMjiA+IG1penVndWtpXCA7CivmhoLkuosgPiB1cmVpZ290b1wgOwor55+t6Z20ID4gdGFuZ3V0c3VcIDsKK+awtOiLlCA+IG1penVnb2tlXCA7CivmtIvmoqggPiB5b3VuYXNoaVwgOwor5q6L6ZuqID4gemFuc2V0c3VcIDsKK+WOmue0mSA+IGF0c3VnYW1pXCA7CivmtbTlrqIgPiB5b2treWFrdVwgOwor56We5qmLID4gc2hpbmt5b3VcIDsKK+awtOiIuSA+IG1penVidW5lXCA7Civms6XmsrwgPiBkb3JvbnVtYVwgOwor5Y+N55m6ID4gaGFucGF0c3VcIDsKK+elnuanmCA+IGthbWlzYW1hXCA7Civlj4znmbogPiBzb3VoYXRzdVwgOwor56Oo55+zID4gdG9naWlzaGlcIDsKK+W8gemrqiA+IGJlbnBhdHN1XCA7Civms6XmsLQgPiBkb3JvbWl6dVwgOwor5rOh5rKrID4gaG91bWF0c3VcIDsKK+elnualrSA+IGthbWl3YXphXCA7CivmsLTohbkgPiBtaXp1YmFyYVwgOwor5Y+C552AID4gc2FuY2hha3VcIDsKK+iWrOavkiA+IHlha3Vkb2t1XCA7CivnorrntIQgPiBrYWt1eWFrdVwgOwor6YWS6ImyID4gc2h1c2hva3VcIDsKK+awtOiEiCA+IHN1aW15YWt1XCA7CivnpZ7mo5ogPiBrYW1pZGFuYVwgOwor5Y+k54mpID4gZnVydW1vbm9cIDsKK+W/q+e1tiA+IGthaXpldHN1XCA7CivphY3oibIgPiBoYWlzaG9rdVwgOwor6YeR54mpID4ga2FuYW1vbm9cIDsKK+elnuagvCA+IHNoaW5rYWt1XCA7Civnpr/lsbEgPiBoYWdleWFtYVwgOwor5Y2B6JasID4gZG9rdWRhbWlcIDsKK+ayiOeXmyA+IGNoaW50c3V1XCA7CivmgKXnl4UgPiBreXV1YnlvdVwgOwor6Yed54G4ID4gc2hpbmt5dXVcIDsKK+efs+mPgyA+IHNla2l6b2t1XCA7Civnpa3ml6UgPiBzYWlqaXRzdVwgOwor5Y2Y6ImyID4gdGFuc2hva3VcIDsKK+W/g+iFuSA+IHNoaW5wdWt1XCA7CivmsbrnnYAgPiBrZXRjaGFrdVwgOwor56iO5YilID4gemVpYmV0c3VcIDsKK+m7kuW5lSA+IGt1cm9tYWt1XCA7CivnpZ3mna8gPiBzaHVrdWhhaVwgOwor56We5pyoID4gc2hpbmJva3VcIDsKK+aCquaTpiA+IHdhcnV6dXJlXCA7CivpvLvlhYggPiBoYW5hc2FraVwgOwor6by75YWDID4gaGFuYW1vdG9cIDsKK+elnuaciCA+IGtvdWR6dWtpXCA7Civlj47njbIgPiBzaHV1a2FrdVwgOwor5rCR6I2JID4gdGFtaWd1c2FcIDsKK+a0u+W8gSA+IGthdHN1YmVuXCA7CivnoZ3olqwgPiBzaG91eWFrdVwgOwor5ZKM5a6kID4gd2FzaGl0c3VcIDsKK+mHiOeEtiA+IHNoYWt1emVuXCA7Civnp7DlkI0gPiBzaG91bXlvdVwgOwor56aB5oW+ID4ga2luJyd5b2t1XCA7Civlk7LkurogPiB0ZXRzdWppblwgOwor56aP5b6zID4gZnVrdXRva3VcIDsKK+m7kuWxsSA+IGt1cm95YW1hXCA7Civli7/oq5YgPiBtb2NoaXJvblwgOwor5by36L+rID4ga3lvdWhha3VcIDsKK+W8lOmQmCA+IGNob3VzaG91XCA7CivmgKrniakgPiBrYWlidXRzdVwgOwor56aP5byVID4gZnVrdWJpa2lcIDsKK+ayvOayoiA+IHNob3V0YWt1XCA7CivonbbjgIUgPiBjaG91Y2hvdVwgOwor6JaE5rC3ID4gaGFrdWh5b3VcIDsKK+WNkuiAhSA+IHNvdHN1c2hhXCA7CivmsrnmsZcgPiBhYnVyYWFzZVwgOwor5Y6f55m6ID4gZ2VucGF0c3VcIDsKK+WJsumrmCA+IHdhcmlkYWthXCA7CivokZfov7AgPiBjaG9qdXRzdVwgOwor56Cy6KGTID4gaG91anV0c3VcIDsKK+WOmueariA+IGF0c3VrYXdhXCA7Civli4XpgbggPiBjaG9rdXNlblwgOwor5rGC56mNID4ga3l1dXNla2lcIDsKK+avm+iZsSA+IGtlamlyYW1pXCA7CivphZLns58gPiBzYWtla2FzdVwgOwor6YWS57KVID4gc2FrZWthc3VcIDsKK+WKh+mchyA+IGdla2lzaGluXCA7CivlvJXph5EgPiBoaWtpZ2FuZVwgOwor5Y+k5rKzID4gZnVydWthd2FcIDsKK+W+qee/kiA+IGZ1a3VzaHV1XCA7Civmr5Lom4cgPiBkb2t1aGViaVwgOwor6YmE5bqKID4ga2FuYXRva29cIDsKK+WQjeaciCA+IG1laWdldHN1XCA7CivlkI3mm7IgPiBtZWlreW9rdVwgOwor6YmE5bi9ID4gdGV0c3Vib3VcIDsKK+WQjOaciCA+IGRvdWdldHN1XCA7CivmgKXmv4AgPiBreXV1Z2VraVwgOwor5Y2g566XID4gdXJheWFzYW5cIDsKK+WNlOe0hCA+IGt5b3V5YWt1XCA7Civmr5LolqwgPiBkb2t1eWFrdVwgOwor5rG654S2ID4ga2V0c3V6ZW5cIDsKK+auluiyoSA+IHNob2t1emFpXCA7Civph43mrrogPiBqdXVzYXRzdVwgOwor5oOF5a6fID4gam91aml0c3VcIDsKK+eni+WPoyA+IGFraWd1Y2hpXCA7Civph5HmrKAgPiBraW5rZXRzdVwgOwor5Y2Y56+AID4gdGFuc2V0c3VcIDsKK+a0i+W8jyA+IHlvdXNoaWtpXCA7Civlj5bmsbogPiB0b3Jpa2ltZVwgOwor5ZCM5pelID4gZG91aml0c3VcIDsKK+elreW8jyA+IHNhaXNoaWtpXCA7CivomZDkvb8gPiBneWFrdXNoaVwgOwor5rKQ5rW0ID4gbW9rdXlva3VcIDsKK+W+kuiAhSA+IHRhZGFtb25vXCA7CivpiYTlsbEgPiB0ZXRzdXphblwgOwor5Y6f54mpID4gZ2VuYnV0c3VcIDsKK+WKm+mHjyA+IHJpa2lyeW91XCA7CivmtJ7lr58gPiBkb3VzYXRzdVwgOwor5by36Kq/ID4ga3lvdWNob3VcIDsKK+mBk+mghiA+IG1pY2hpanVuXCA7CivnpZ7lvrMgPiBzaGludG9rdVwgOwor5b+D56WeID4gc2hpbnNoaW5cIDsKK+mBiumjnyA+IHl1dXNob2t1XCA7CivlvqnnsY0gPiBmdWt1c2VraVwgOwor5qyg6aOfID4ga2Vzc2hva3VcIDsKK+aApea1gSA+IGt5dXVyeXV1XCA7Civmr5LojLggPiBkb2t1dGFrZVwgOwor5bu26YeRID4gbm9iZWdhbmVcIDsKK+eijOeijCA+IHJva3Vyb2t1XCA7Civpiq3kuoAgPiB6ZW5pZ2FtZVwgOwor5q2v6LuKID4gaGFndXJ1bWFcIDsKK+W8t+ilsiA+IGt5b3VzaHV1XCA7CivlvJXotoogPiBoaWtrb3NoaVwgOwor5YmD6auqID4gdGVpaGF0c3VcIDsKK+W/veeEtiA+IGtvdHN1emVuXCA7Civph5HmooMgPiBrYW5hdGVrb1wgOwor5Y+k5qCqID4gZnVydWthYnVcIDsKK+WLheirmiA+IGNob2t1am91XCA7Civoj5zpo58gPiBzYWlzaG9rdVwgOwor5oKE5oKEID4gc3Vnb3N1Z29cIDsKK+ehrOethiA+IGtvdWhpdHN1XCA7CivnpZ7lt54gPiBzaGluc2h1dVwgOwor5b2p6ImyID4gc2Fpc2hva3VcIDsKK+W/heedgCA+IGhpdGNoYWt1XCA7Civnn6XorZggPiBjaGlzaGlraVwgOwor5oiR44CFID4gd2FyZXdhcmVcIDsKK+mAsumnkCA+IHNoaW5jaHV1XCA7CivmhIHlgrcgPiBzaHV1c2hvdVwgOwor5Y+k5pyNID4gZnVydWZ1a3VcIDsKK+awtOeTtiA+IG1penVnYW1lXCA7Civlv4PnmoQgPiBzaGludGVraVwgOwor6buZ5YqHID4gbW9rdWdla2lcIDsKK+WQvuWtkCA+IHdhZ2ltb2tvXCA7CivmsJfnn60gPiBraW1pamlrYVwgOwor6JWD5q6WID4gaGFuc2hva3VcIDsKK+W+l+etliA+IHRva3VzYWt1XCA7Civli4Xoo4EgPiBjaG9rdXNhaVwgOwor5b6T56+AID4ganV1c2V0c3VcIDsKK+mBqemHjyA+IHRla2lyeW91XCA7Civlv4Pnl5sgPiBzaGludHN1dVwgOwor5YqH6YCaID4gZ2VraXRzdXVcIDsKK+mHkeaYnyA+IGtpbmJvc2hpXCA7CivmsbLmsbIgPiBreXV1a3l1dVwgOwor5by+6JasID4gZGFuJyd5YWt1XCA7CivljZjnmbogPiB0YW5wYXRzdVwgOwor5b+F55SoID4gaGl0c3V5b3VcIDsKK+WNkuebtCA+IHNvdGNob2t1XCA7CivmsLTnjokgPiBtaXp1dGFtYVwgOwor56We5a2mID4gc2hpbmdha3VcIDsKK+emgeWcpyA+IGtpbicnYXRzdVwgOwor56eA5L2cID4gc2h1dXNha3VcIDsKK+W+s+ebriA+IHRva3Vtb2t1XCA7Civph4zmlrkgPiBzYXRva2F0YVwgOwor5rOV5b6LID4gaG91cml0c3VcIDsKK+ekvOW8jyA+IHJlaXNoaWtpXCA7Civlj47mnZ8gPiBzaHV1c29rdVwgOwor6YeI5piOID4gc2hha3VtZWlcIDsKK+a0u+WLlSA+IGthdHN1ZG91XCA7Civpu5LlhoYgPiBrdXJvbWFydVwgOwor5rOV5byPID4gaG91c2hpa2lcIDsKK+awtOeJqSA+IG1penVtb25vXCA7CivlvpfnpaggPiB0b2t1aHlvdVwgOwor6YGl6YGlID4gaGFydWJhcnVcIDsKK+a0vuWHuiA+IGhhc2h1dHN1XCA7Civph4jmlL4gPiBzaGFrdWhvdVwgOwor5rWB5YWlID4gcnl1dW55dXVcIDsKK+aui+iZkCA+IHphbmd5YWt1XCA7CivolqzlsYsgPiBrdXN1cml5YVwgOwor6Jas5bGAID4geWFra3lva3VcIDsKK+ehrOebtCA+IGtvdWNob2t1XCA7CivlkIjlvI8gPiBnb3VzaGlraVwgOwor56We5aaZID4gc2hpbm15b3VcIDsKK+mBoOmBkyA+IHRvb21pY2hpXCA7CivlvZPogbcgPiB0b3VzaG9rdVwgOwor5bqV6Z2pID4gc29rb2dhd2FcIDsKK+mGnOalrSA+IHNodXVneW91XCA7CivolqzlraYgPiB5YWt1Z2FrdVwgOwor56Gd55+zID4gc2hvdXNla2lcIDsKK+mBmemBmSA+IGhhcnViYXJ1XCA7Civnpo/liqkgPiBmdWt1c3VrZVwgOwor5q+b562GID4gbW91aGl0c3VcIDsKK+W/q+a0uyA+IGthaWthdHN1XCA7CivljrvmnIggPiBreW9nZXRzdVwgOwor5q2j6KaaID4gc2hvdWdha3VcIDsKK+edgOmnhSA+IGNoYWt1ZWtpXCA7Civlj43mkqUgPiBoYW5wYXRzdVwgOwor5bu66KitID4ga2Vuc2V0c3VcIDsKK+aBkOaCpiA+IGt5b3VldHN1XCA7CivolK3mp5ggPiBrYWdlc2FtYVwgOwor56We5Z+fID4gc2hpbicnaWtpXCA7CivljYPnlJ8gPiBzZW4nJ25hcmlcIDsKK+iWhOW8sSA+IGhha3VqYWt1XCA7CivmgY3mg5ogPiBrb3Vrb3RzdVwgOwor5b+F54S2ID4gaGl0c3V6ZW5cIDsKK+aBkOaBkCA+IGtvd2Fnb3dhXCA7CivlkIzlsYAgPiBkb3VreW9rdVwgOwor6buS5Li4ID4ga3Vyb21hcnVcIDsKK+iSuOedgCA+IGpvdWNoYWt1XCA7CivljYrnjokgPiBoYW5neW9rdVwgOwor6YCG6aKoID4gZ3lha3VmdXVcIDsKK+WIhumqqCA+IGJ1bmtvdHN1XCA7CivnpZ7lm70gPiBzaGlua29rdVwgOwor5bm86aGUID4gb3NhbmFnYW9cIDsKK+W8t+iGnCA+IGt5b3VtYWt1XCA7CivlkIzlrr8gPiBkb3VzaHVrdVwgOwor5ZCN5a6fID4gbWVpaml0c3VcIDsKK+atouihgCA+IHNoaWtldHN1XCA7CivpgJDpm7sgPiBjaGlrdWRlblwgOwor5Y+O5ou+ID4gc2h1dXNodXVcIDsKK+WLleiEiCA+IGRvdW15YWt1XCA7CivnnYDpoIYgPiBjaGFrdWp1blwgOwor6JK455m6ID4gam91aGF0c3VcIDsKK+mAhumghiA+IGd5YWt1anVuXCA7CivlkIjlrr8gPiBnYXNzaHVrdVwgOwor5YqH6KmVID4gZ2VraWh5b3VcIDsKK+mFuOasoCA+IHNhbmtldHN1XCA7CivpiYTliaQgPiB0ZXRzdXphaVwgOwor56Gs546JID4ga291Z3lva3VcIDsKK+axuuaWrSA+IGtldHN1ZGFuXCA7CivlvoznmbogPiBrb3VoYXRzdVwgOwor5Ymv6LOeID4gZnVrdXNob3VcIDsKK+mJhOWIhiA+IHRldHN1YnVuXCA7CivmsrPlupUgPiBrYXdhem9rb1wgOwor5Y2S54S2ID4gc290c3V6ZW5cIDsKK+edgOmbuyA+IGNoYWt1ZGVuXCA7CivluoPpl4ogPiBrb3VrYXRzdVwgOwor5Y+L5oiQID4gdG9tb25hcmlcIDsKK+awtOa0nyA+IG1penViYW5hXCA7CivljbPmsbogPiBzb2trZXRzdVwgOwor5b6M55WlID4ga291cnlha3VcIDsKK+WJjei/sCA+IHplbmp1dHN1XCA7CivlibLorbIgPiBrYXRzdWpvdVwgOwor5Y6f5puyID4gZ2Vua3lva3VcIDsKK+WIh+mhmCA+IHNldHN1Z2FuXCA7Civlh7rpp5UgPiBzaHV0c3VnYVwgOwor5b6M55SjID4gbm9jaGl6YW5cIDsKK+iQveiOqyA+IHJha3ViYWt1XCA7CivpganoqZUgPiB0ZWtpaHlvdVwgOwor5b+Z5q66ID4gYm91c2F0c3VcIDsKK+iTi+eJqSA+IGZ1dGFtb25vXCA7CivmuKnjgIUgPiBudWt1bnVrdVwgOwor5Ye66aasID4gc2h1dHN1YmFcIDsKK+mBqeiosyA+IHRla2l5YWt1XCA7CivmsLTmsqEgPiBzdWlib3RzdVwgOwor5b6h54mpID4gZ3lvYnV0c3VcIDsKK+W9k+evgCA+IHRvdXNldHN1XCA7CivlkLjlj6MgPiBzdWlrdWNoaVwgOwor5oKL5ZeHID4gcmluc2hva3VcIDsKK+WQuOWPjiA+IGt5dXVzaHV1XCA7Civlj6Tlt50gPiBmdXJ1a2F3YVwgOwor5Ym16KitID4gc291c2V0c3VcIDsKK+mHneWxsSA+IGhhcml5YW1hXCA7CivmronogbcgPiBqdW5zaG9rdVwgOwor5Y+W5byVID4gdG9yaWhpa2lcIDsKK+ayoeW5tCA+IGJvdHN1bmVuXCA7Civlj7Llrp8gPiBzaGlqaXRzdVwgOwor6JGJ6ISIID4geW91bXlha3VcIDsKK+WPsOWvhiA+IHRhaW1pdHN1XCA7CivpgZTorZggPiB0YXNzaGlraVwgOwor5Y+O5b6XID4gc2h1dXRva3VcIDsKK+m6puS9nCA+IG11Z2lzYWt1XCA7CivmgKfmgqogPiBzaG91d2FydVwgOwor5Y2R5rm/ID4gaGlzaGl0c3VcIDsKK+WQneWXhyA+IHJpbnNob2t1XCA7CivlvpPniakgPiBqdXVidXRzdVwgOwor5b2555WcID4gZWtpY2hpa3VcIDsKK+mJhOS6uiA+IHRldHN1amluXCA7CivmrbvohIggPiBzaGlteWFrdVwgOwor5Yeh6aqoID4gYm9ua290c3VcIDsKK+mHkeWxkSA+IGthbmFrdXp1XCA7Civlv4XmrrogPiBoaXNzYXRzdVwgOwor5Y+k5a+6ID4gZnVydWRlcmFcIDsKK+a0m+S4rSA+IHJha3VjaHV1XCA7Civlh7jpnaIgPiB0b3RzdW1lblwgOwor5ZC45YWlID4ga3l1dW55dXVcIDsKK+WIsOmBlCA+IHRvdXRhdHN1XCA7Civlj6Plrp8gPiBrb3VqaXRzdVwgOwor5YqH6JasID4gZ2VraXlha3VcIDsKK+efree4riA+IHRhbnNodWt1XCA7CivlhrfpuqYgPiBoaXlhbXVnaVwgOwor56Wd5YW4ID4gc2h1a3V0ZW5cIDsKK+WHuumZsyA+IHNodXRjaGluXCA7CivmraPoibIgPiBzZWlzaG9rdVwgOwor6JGb57GgID4gdHN1ZHp1cmFcIDsKK+W+s+ayoiA+IHRva3V0YWt1XCA7Civph4jlsIogPiBzaGFrdXNvblwgOwor5bmz6Y2LID4gaGlyYW5hYmVcIDsKK+mFkuaovSA+IHNha2FkYXJ1XCA7CivlvIHoiIwgPiBiZW56ZXRzdVwgOwor6L+96YyyID4gdHN1aXJva3VcIDsKK+aBi+WmuyA+IGtvaWR6dW1hXCA7CivmgJbmgJYgPiBrb3dhZ293YVwgOwor5b6p5rS7ID4gZnVra2F0c3VcIDsKK+awt+afsSA+IGh5b3VjaHV1XCA7Civmgavllp0gPiBkb3VrYXRzdVwgOwor6YGp6JasID4gdGVraXlha3VcIDsKK+WJo+ihkyA+IGtlbmp1dHN1XCA7CivljrPlvosgPiBnZW5yaXRzdVwgOwor5Yqr572wID4gZ291YmF0c3VcIDsKK+W9q+eQoiA+IGNob3V0YWt1XCA7CivljJbniakgPiBiYWtlbW9ub1wgOwor6Jaq5YmyID4gbWFraXdhcmlcIDsKK+W9k+ebtCA+IHRvdWNob2t1XCA7CivliY3oqqwgPiB6ZW5zZXRzdVwgOwor5Ymv6Jm5ID4gZnVrdW5pamlcIDsKK+WMl+eIhiA+IGhva3ViYWt1XCA7Civnn6LntaMgPiB5YWdhc3VyaVwgOwor6I6r6YCGID4gYmFrdWdla2lcIDsKK+W4uOmjnyA+IGpvdXNob2t1XCA7CivpsJDprqsgPiB3YW5pemFtZVwgOwor5rOo5YWlID4gY2h1dW55dXVcIDsKK+aApeWzuyA+IGt5dXVzaHVuXCA7Civps6nog7ggPiBoYXRvbXVuZVwgOwor5YuF562UID4gY2hva3V0b3VcIDsKK+awt+aZtiA+IGh5b3VzaG91XCA7Civlupfos4MgPiB0YW5hY2hpblwgOwor6L6u6auqID4gYmVucGF0c3VcIDsKK+WNl+altSA+IG5hbmt5b2t1XCA7Civlv4PmoLkgPiBrb2tvcm9uZVwgOwor5Yas6bOlID4gZnV5dWRvcmlcIDsKK+egtOeJqSA+IHdhcmVtb25vXCA7CivllK/jgIUgPiB0YWRhdGFkYVwgOwor5Y2U5qWtID4ga3lvdWd5b3VcIDsKK+WHnembhiA+IGd5b3VzaHV1XCA7CivlkITlkIQgPiBzb3Jlem9yZVwgOwor6YCB6YGUID4gc291dGF0c3VcIDsKK+W9q+eJqSA+IGhvcmltb25vXCA7CivlupXosYYgPiBzb2tvbWFtZVwgOwor6bOl6IKMID4gdG9yaWhhZGFcIDsKK+WLvueOiSA+IG1hZ2F0YW1hXCA7Civps6XogokgPiB0b3JpbmlrdVwgOwor5YqH6IetID4gZ2VraXNodXVcIDsKK+avjeeJqSA+IGhhaGFtb25vXCA7CivmgZDlmocgPiBreW91a2FrdVwgOwor5rex44CFID4gZnVrYWJ1a2FcIDsKK+ecn+mNriA+IHNoaW5jaHV1XCA7CivmgKDlsYggPiB0YWlrdXRzdVwgOwor56S+5YWxID4gc2hha3lvdVwgOwor5b+D5p2QID4gc2hpbnphaVwgOwor6L+R6ZaTID4gY2hpa2FtYVwgOwor5Y675bCxID4ga3lvc2h1dVwgOwor5YmN6KGoID4gemVucHlvdVwgOwor5ZCb5YG0ID4ga3Vuc29rdVwgOwor6L+96YCBID4gdHN1aXNvdVwgOwor5Y2g5pyJID4gc2VuJyd5dXVcIDsKK+W/jOaXpSA+IGtpbmljaGlcIDsKK+WNoOabuCA+IHVyYWJ1bWlcIDsKK+W4s+mdoiA+IGNob3VtZW5cIDsKK+ebtOmfsyA+IGNob2t1b25cIDsKK+WKn+e4viA+IGtvdXNla2lcIDsKK+awkealrSA+IG1pbmd5b3VcIDsKK+iWhOWRvSA+IGhha3VtZWlcIDsKK+W4remghiA+IHNla2lqdW5cIDsKK+ebiumzpSA+IGVraWNob3VcIDsKK+ayluWkqSA+IGNodXV0ZW5cIDsKK+W/nOaOpSA+IG91c2V0c3VcIDsKK+eeoOiLpSA+IGRvdWpha3VcIDsKK+W+jOa1gSA+IGtvdXJ5dXVcIDsKK+WPrOWWmiA+IHNob3VrYW5cIDsKK+W8leeulyA+IGhpa2l6YW5cIDsKK+WNnOabuCA+IHVyYWJ1bWlcIDsKK+W4r+mdqSA+IG9iaWthd2FcIDsKK+WHuumHkSA+IHNodWtraW5cIDsKK+WPq+WWmiA+IGt5b3VrYW5cIDsKK+WQieWHtiA+IGtpa2t5b3VcIDsKK+mHjeWcpyA+IGp1dWF0c3VcIDsKK+i/sOmDqCA+IGp1dHN1YnVcIDsKK+m3suW6pyA+IHdhc2hpemFcIDsKK+W8k+eurSA+IGt5dXVzZW5cIDsKK+WIhumAsiA+IGJ1bnNoaW5cIDsKK+iPqeiWqSA+IGJvc2F0c3VcIDsKK+WIhumAnyA+IGZ1bnNva3VcIDsKK+awtOaSgyA+IHN1aWdla2lcIDsKK+ayouWcsCA+IHNhd2FjaGlcIDsKK+WIh+i/qyA+IHNlcHBha3VcIDsKK+WNl+acnSA+IG5hbmNob3VcIDsKK+W/teW/tSA+IG5lbicnbmVuXCA7CivvvK7pn78gPiBlbnVreW91XCA7CivmraPntpogPiBzZWl6b2t1XCA7CivokL3nrKwgPiByYWt1ZGFpXCA7Civph6PlkIggPiB0c3VyaWFpXCA7CivmraPntbkgPiBzaG91a2VuXCA7CivljrPlrrkgPiBnZW4nJ3lvdVwgOwor6YCy6KGMID4gc2hpbmtvdVwgOwor5ZCJ5YWGID4ga2l0Y2hvdVwgOwor5YuV55qEID4gZG91dGVraVwgOwor5ZCM5YOaID4gZG91cnlvdVwgOwor5q2j57WMID4gc2Vpa3lvdVwgOwor5YyX5rqAID4gaG9rdW1hblwgOwor5Y2K5qC8ID4gaGFua2FrdVwgOwor6YCa6KyAID4gdHN1dWJvdVwgOwor5Y+s5ZG9ID4gc2hvdW1laVwgOwor6YCa6KuWID4gdHN1dXJvblwgOwor5bqP6KqsID4gam9zZXRzdVwgOwor5rOl5LitID4gZGVpY2h1dVwgOwor5bqV6KeSID4gdGVpa2FrdVwgOwor5Ymy6IiIID4gd2FyaWtvdVwgOwor5b6z5pybID4gdG9rdWJvdVwgOwor5oCl5aSJID4ga3l1dWhlblwgOwor5Y+j5ZSHID4ga291c2hpblwgOwor6bOl57ayID4gdG9yaWFtaVwgOwor5oGt5YC5ID4ga3lvdWtlblwgOwor5Y+r5Y+3ID4ga3lvdWdvdVwgOwor5YiG6LqrID4gYnVuc2hpblwgOwor5Yi66KGdID4gc2hpc2hvdVwgOwor5bm96LC3ID4geXV1a29rdVwgOwor6YSZ5q2MID4gaGluYXV0YVwgOwor5q6154mpID4gZGFubW9ub1wgOwor5ZCM5L+hID4gZG91c2hpblwgOwor55+z55ukID4gc2VraWJhblwgOwor5q2756WoID4gc2hpaHlvdVwgOwor5Ymy6IW5ID4ga2FwcHVrdVwgOwor5buQ6IiOID4ga3l1dXNoYVwgOwor6YCa6KiIID4gdHN1dWtlaVwgOwor5ZCM5L62ID4gZG91cnlvdVwgOwor5Y+w5YyXID4gdGFpaG9rdVwgOwor5Yuk546LID4ga2luJydub3VcIDsKK+W7j+iIjiA+IGt5dXVzaGFcIDsKK+W/q+W+qSA+IGthaWZ1a3VcIDsKK+awkeaciSA+IG1pbicneXV1XCA7CivmrbTnqIsgPiByZWtpdGVpXCA7CivnoLTmu4UgPiBoYW1ldHN1XCA7CivmgKXlopcgPiBreXV1em91XCA7CivpgJrop6MgPiB0c3V1a2FpXCA7CivliKToqq0gPiBoYW5kb2t1XCA7Civph43llLEgPiBqdXVzaG91XCA7CivlkI3kvZwgPiBtZWlzYWt1XCA7CivpgJroprMgPiB0c3V1a2FuXCA7CivlvJTnpa0gPiBjaG91c2FpXCA7CivlkITlgZwgPiBrYWt1dGVpXCA7CivmganlgJ8gPiBvbnNoYWt1XCA7Civlj7LliocgPiBzaGlnZWtpXCA7CivljJfmtIsgPiBob2t1eW91XCA7CivpgJropqcgPiB0c3V1cmFuXCA7CivpganogIUgPiB0ZWtpc2hhXCA7Civlia/ohY4gPiBmdWt1amluXCA7CivnpL7kuK0gPiBzaGFjaHV1XCA7Civov73otIggPiB0c3Vpem91XCA7CivmgKXloLEgPiBreXV1aG91XCA7CivluKvplbcgPiBzaGljaG91XCA7CivliIDouqsgPiB0b3VzaGluXCA7CivliqDnrYYgPiBrYWhpdHN1XCA7Civljrvlo7AgPiBreW9zaG91XCA7CivlkI3ku6MgPiBteW91ZGFpXCA7CivljKHmraMgPiBreW91c2VpXCA7CivlkIjkvZwgPiBnYXNzYWt1XCA7CivlvpPmpa0gPiBqdXVneW91XCA7CivljYrmmYIgPiBoYW50b2tpXCA7CivokL3no5AgPiByYWt1YmFuXCA7Civljp/lr6kgPiBnZW5zaGluXCA7Civmr5LmtrIgPiBkb2t1ZWtpXCA7CivlvbzmsI8gPiBrYXJlc2hpXCA7CivluJ3pmbUgPiB0ZWlyeW91XCA7CivlvrPmlL8gPiB0b2t1c2VpXCA7CivmsJHml48gPiBtaW56b2t1XCA7CivpgaDogLMgPiB0b29taW1pXCA7CivlkI3kuLsgPiBuYW51c2hpXCA7CivmgKXlnYIgPiBreXV1aGFuXCA7CivliJ3oqLogPiBzaG9zaGluXCA7CivluoPop5IgPiBrb3VrYWt1XCA7CivlkInkuosgPiBraXRzdWppXCA7CivmsI/ml48gPiBzaGl6b2t1XCA7CivlvJTnoLIgPiBjaG91aG91XCA7Civlu7rnrZYgPiBrZW5zYWt1XCA7CivliY3okYkgPiB6ZW4nJ3lvdVwgOwor6YCa6KGMID4gdHN1dWtvdVwgOwor5ZCM5LiAID4gZG91aXRzdVwgOwor5bm+6KixID4gaWt1YmFrdVwgOwor6YeN5Y6aID4gY2hvdWtvdVwgOwor6I236YCBID4gbmlva3VyaVwgOwor5b6p5penID4gZnVra3l1dVwgOwor5rKh5Y+OID4gYm9zc2h1dVwgOwor5bu756ugID4ga2Fpc2hvdVwgOwor5Y2a5o2cID4gaGFrdXNvdVwgOwor55+l55qEID4gY2hpdGVraVwgOwor5ZCE5Lq6ID4ga2FrdWppblwgOwor5q6L55WZID4gemFucnl1dVwgOwor5bmV6LuNID4gYmFrdWd1blwgOwor5bu656uLID4ga29ucnl1dVwgOwor5rKD5ZywID4geW9rdWNoaVwgOwor6YGK6IiIID4geXV1a3lvdVwgOwor5b6p5paHID4gZnVrdWJ1blwgOwor5ZCI5LiAID4gZ291aXRzdVwgOwor5Yil6KGoID4gYmVwcHlvdVwgOwor5Ymv572yID4gZnVrdXNob1wgOwor5Y+X5Y+WID4gdWtldG9yaVwgOwor5b+D5oi/ID4gc2hpbmJvdVwgOwor5Y+k5Yi5ID4ga29zYXRzdVwgOwor5Yq055u4ID4gcm91c2hvdVwgOwor6YOt5riFID4ga2FrdXNlaVwgOwor5Ye66LWwID4gc2h1c3NvdVwgOwor5bm76KaaID4gZ2Vua2FrdVwgOwor5Ymb6IW5ID4gZ291ZnVrdVwgOwor5q2v55+zID4gc2hpc2VraVwgOwor5oGl5LiYID4gY2hpa3l1dVwgOwor6JC955ukID4gcmFrdWJhblwgOwor5YWo6bqmID4gemVuYmFrdVwgOwor5Y2a5omTID4gYmFrdWNoaVwgOwor6L+96KqNID4gdHN1aW5pblwgOwor6YeP5YiRID4gcnlvdWtlaVwgOwor56K65a6aID4ga2FrdXRlaVwgOwor6YeN5Yi7ID4ganV1a29rdVwgOwor56K65a6IID4ga2FrdXNodVwgOwor6L+96KmmID4gdHN1aXNoaVwgOwor5Ye66LOHID4gc2h1c3NoaVwgOwor55yf6LSLID4gc2hpbmdhblwgOwor5rCX5oyBID4ga2ltb2NoaVwgOwor5bmz6KeSID4gaGVpa2FrdVwgOwor5q2j56K6ID4gc2Vpa2FrdVwgOwor6L+96KiOID4gdHN1aXRvdVwgOwor5q+s5qCXID4gaWdhZ3VyaVwgOwor5q2755eFID4gc2hpYnlvdVwgOwor5YWx6bO0ID4ga3lvdW1laVwgOwor5Y+N5Y+OID4gdGFuc2h1dVwgOwor5b+W5bqmID4gc29udGFrdVwgOwor5biv6YeRID4gb2JpZ2FuZVwgOwor6I2Y6YeNID4gc291Y2hvdVwgOwor5b+D5oOFID4gc2hpbmpvdVwgOwor5Yy55pW1ID4gaGl0dGVraVwgOwor6YOo5rS7ID4gYnVrYXRzdVwgOwor6YeO5YWOID4gbm91c2FnaVwgOwor5rC45bm0ID4gbmFnYW5lblwgOwor6YCG6KGMID4gZ3lha2tvdVwgOwor6L+F6YCfID4gamluc29rdVwgOwor5b6M5pu4ID4gYXRvZ2FraVwgOwor5YmN6IaKID4gemVucGFrdVwgOwor6YeR5YG0ID4ga2luZ2F3YVwgOwor5b+D5oCnID4gc2hpbnNlaVwgOwor55+z54mIID4gc2VraWJhblwgOwor6L+w6KqeID4ganV0c3Vnb1wgOwor56Kn5bGxID4gaGVraXphblwgOwor5rKI5ZCfID4gY2hpbmdpblwgOwor6YeN5YK3ID4ganV1c2hvdVwgOwor5YmN6ISzID4gemVuJydub3VcIDsKK+W5tOihqCA+IG5lbnB5b3VcIDsKK+WJjeiEmiA+IG1hZWFzaGlcIDsKK+atjuensCA+IHRhbnNob3VcIDsKK+WHuuismyA+IHNodWtrb3VcIDsKK+WIuuiNiSA+IGlyYWt1c2FcIDsKK+WNg+aMryA+IHNlbmJ1cmlcIDsKK+mAsuiIqiA+IHNoaW5rb3VcIDsKK+W/g+W+lyA+IGtva29yb2VcIDsKK+aBkuS5hSA+IGtvdWt5dXVcIDsKK+WPquS7iiA+IHRhZGFpbWFcIDsKK+WPjeWJhyA+IGhhbnNva3VcIDsKK+WPo+S+myA+IGtvdWt5b3VcIDsKK+W8t+eBqyA+IHRzdXlvYmlcIDsKK+aBi+S7siA+IGtvaW5ha2FcIDsKK+WJjeiCoiA+IG1hZWFzaGlcIDsKK+atu+eQgyA+IHNoaWt5dXVcIDsKK+WKqeeVqiA+IHN1a2ViYW5cIDsKK+W+jOaXpSA+IGdvbmljaGlcIDsKK+mFjeW9uSA+IGhhaXlha3VcIDsKK+aBi+S6uiA+IGtvaWJpdG9cIDsKK+W4gumVtyA+IHNoaWNob3VcIDsKK+aAquWKmyA+IGthaXJpa2lcIDsKK+W+geacjSA+IHNlaWZ1a3VcIDsKK+avjeanmCA+IGthYXNhbWFcIDsKK+ecn+irpiA+IHNoaW50ZWlcIDsKK+W8seeCuSA+IGpha3V0ZW5cIDsKK+mAo+iNmCA+IHJlbmNoYW5cIDsKK+WGhumhlCA+IG1hcnVnYW9cIDsKK+ebsumAsiA+IG1vdXNoaW5cIDsKK+W/oOWtnSA+IGNodXVrb3VcIDsKK+mzpeeesCA+IGNob3VrYW5cIDsKK+W5vOiZqyA+IHlvdWNodXVcIDsKK+iQveeQgyA+IHJha2t5dXVcIDsKK+W3qOmhjSA+IGt5b2dha3VcIDsKK+WJsueulyA+IHdhcml6YW5cIDsKK+WPjeWFsSA+IGhhbmt5b3VcIDsKK+aui+eFpyA+IHphbnNob3VcIDsKK+WMl+adsSA+IGhva3V0b3VcIDsKK+W/g+W6lSA+IHNoaW50ZWlcIDsKK+mAuOiBniA+IGl0c3VidW5cIDsKK+mFkuW4rSA+IHNodXNla2lcIDsKK+efs+eCrSA+IHNla2l0YW5cIDsKK+awt+WxsSA+IGh5b3V6YW5cIDsKK+W8leeOhyA+IGluc290c3VcIDsKK+W7tuedgCA+IGVuY2hha3VcIDsKK+awt+WxiyA+IGtvb3JpeWFcIDsKK+WNseWxgCA+IGtpa3lva3VcIDsKK+WHuOinkiA+IHRva2tha3VcIDsKK+ebrumAgSA+IG1va3Vzb3VcIDsKK+W+s+aApyA+IHRva3VzZWlcIDsKK+ebtOi8uCA+IGNob2t1eXVcIDsKK+egleawtyA+IHNhaWh5b3VcIDsKK+ecn+iogCA+IHNoaW5nb25cIDsKK+W7uueZvSA+IGtlbnBha3VcIDsKK+atpueVpSA+IGJ1cnlha3VcIDsKK+aAp+WIhiA+IHNob3VidW5cIDsKK+WGl+mVtyA+IGpvdWNob3VcIDsKK+eiuuWgsSA+IGtha3Vob3VcIDsKK+W6p+iBtyA+IHphc2hva3VcIDsKK+WPo+S4rSA+IGtvdWNodXVcIDsKK+ecnuiogCA+IHNoaW5nb25cIDsKK+WGt+mFtyA+IHJlaWtva3VcIDsKK+autOauuiA+IG91c2F0c3VcIDsKK+WFpemtgiA+IG55dXVrb25cIDsKK+W/l+WtpiA+IHNoaWdha3VcIDsKK+W+gOaXpSA+IG91aml0c3VcIDsKK+axguWpmiA+IGt5dXVrb25cIDsKK+WPjeWBtCA+IGhhbnNva3VcIDsKK+W7tueZuiA+IGVucGF0c3VcIDsKK+ecn+ilvyA+IG1hbmlzaGlcIDsKK+W8k+eKtiA+IGt5dXVqb3VcIDsKK+mGnOWQjSA+IHNodXVtZWlcIDsKK+awkeW/gyA+IG1pbnNoaW5cIDsKK+aoqemrmCA+IGtlbmRha2FcIDsKK+awkeW+syA+IG1pbnRva3VcIDsKK+WPjeS/lyA+IGhhbnpva3VcIDsKK+axuuWLnSA+IGtlc3Nob3VcIDsKK+WGhemZuCA+IG5haXJpa3VcIDsKK+ebtOi3ryA+IGNob2t1cm9cIDsKK+mBqeeiuiA+IHRla2tha3VcIDsKK+iMtumHnCA+IGNoYWdhbWFcIDsKK+mAmuiIqiA+IHRzdXVrb3VcIDsKK+i+m+mFuCA+IHNoaW5zYW5cIDsKK+W4jOmHiCA+IGtpc2hha3VcIDsKK+WHtuihjCA+IGt5b3Vrb3VcIDsKK+avjuacnSA+IG1haWNob3VcIDsKK+eZvemvqCA+IGhha3VnZWlcIDsKK+WNiuW8kyA+IGhhbmt5dXVcIDsKK+WIneiNtyA+IGhhdHN1bmlcIDsKK+WMl+aUryA+IGhva3VzaGlcIDsKK+WGhemWsiA+IG5haWV0c3VcIDsKK+WGhemWoyA+IG5haWtha3VcIDsKK+mFjeWxniA+IGhhaXpva3VcIDsKK+iUteWMvyA+IHpvdXRva3VcIDsKK+W4q+i1sCA+IHNoaXdhc3VcIDsKK+ayiOWAqyA+IGNoaW5yaW5cIDsKK+W9sOaYjiA+IHNob3VtZWlcIDsKK+mFkuWuoiA+IHNodWtha3VcIDsKK+avlOaXpSA+IGhpbmljaGlcIDsKK+WOn+WRiiA+IGdlbmtva3VcIDsKK+eZvemtmiA+IHNoaXJhdW9cIDsKK+WNiuW5tCA+IGhhbicnbmVuXCA7CivliY3ntI0gPiB6ZW4nJ25vdVwgOwor6YGL562GID4gdW5waXRzdVwgOwor6be55YygID4gdGFrYWpvdVwgOwor5q2054S2ID4gcmVraXplblwgOwor5YWs6aCYID4ga291cnlvdVwgOwor6L+R6KaqID4ga2luc2hpblwgOwor5oCl5L2/ID4ga3l1dXNoaVwgOwor5Ym955uXID4gaHlvdXRvdVwgOwor5bm86IulID4geW91amFrdVwgOwor5YWo6aGNID4gemVuZ2FrdVwgOwor5qiZ6auYID4gaHlvdWtvdVwgOwor5Y2z5aOyID4gc29rdWJhaVwgOwor5Y2D5bqmID4gY2hpdGFiaVwgOwor5by35rCXID4gdHN1eW9raVwgOwor5bqB6IiOID4gY2hvdXNoYVwgOwor5YqH55WMID4gZ2VraWthaVwgOwor5Y2D5bm0ID4gY2hpdG9zZVwgOwor5YqH55SaID4gZ2VraWppblwgOwor5qiq6aGUID4geW9rb2dhb1wgOwor5Yun5qWtID4ga2FuZ3lvdVwgOwor5Yed6KaWID4gZ3lvdXNoaVwgOwor5Yi657mNID4gc2hpc2h1dVwgOwor556g55uuID4gZG91bW9rdVwgOwor5YaN6YyyID4gc2Fpcm9rdVwgOwor55yf6JmrID4gbWFtdXNoaVwgOwor6bOl542jID4gY2hvdWp1dVwgOwor5b655a61ID4gdGVzc2hvdVwgOwor5Y2R5bGIID4gaGlrdXRzdVwgOwor5Yqg54axID4ga2FuZXRzdVwgOwor5YaN6YuzID4gc2FpY2h1dVwgOwor5rC35aGKID4gaHlvdWthaVwgOwor5Y2S5a+/ID4gc290c3VqdVwgOwor5by35qyyID4gZ291eW9rdVwgOwor5Y2U5a6aID4ga3lvdXRlaVwgOwor5YW16ZW3ID4gaGVpY2hvdVwgOwor6YWM5ammID4gc2hha3VmdVwgOwor56Cy5pKDID4gaG91Z2VraVwgOwor5rCX5a+GID4ga2ltaXRzdVwgOwor6YG455CDID4gc2Vua3l1dVwgOwor5Y6f5YmHID4gZ2Vuc29rdVwgOwor5YWx6ZeYID4ga3lvdXRvdVwgOwor55u06KurID4gY2hva2thblwgOwor55m66aasID4gaGF0c3ViYVwgOwor5Yi657WhID4gc2hpcmFrdVwgOwor5YWo6ZuGID4gemVuc2h1dVwgOwor5Y2T5a2QID4gdGVpYnVydVwgOwor55u06KuMID4gY2hva2thblwgOwor55u06KuHID4gamlraWRhblwgOwor5YWl6Zu7ID4gbnl1dWRlblwgOwor5YmN56ugID4gemVuc2hvdVwgOwor55+z5q61ID4gaXNoaWRhblwgOwor5q2m54OIID4gYnVyZXRzdVwgOwor55u06KmxID4gY2hva3V3YVwgOwor56OB5YqbID4gamlyeW9rdVwgOwor5rC05Z6iID4gbWl6dWFrYVwgOwor5bmz6Ie8ID4gaGlyYXVzdVwgOwor5b255omAID4geWFrdXNob1wgOwor6YGp55SoID4gdGVraXlvdVwgOwor6YCj57aaID4gcmVuem9rdVwgOwor5by35qipID4ga3lvdWtlblwgOwor5Y215ZqiID4gcmFuJydub3VcIDsKK+awj+WvuiA+IHVqaWRlcmFcIDsKK+WFpemaiiA+IG55dXV0YWlcIDsKK+W/g+WkliA+IHNoaW5nYWlcIDsKK+WNiuWutSA+IGhhbnNob3VcIDsKK+mAo+e1oSA+IHJlbnJha3VcIDsKK+WItue0hCA+IHNlaXlha3VcIDsKK+eekeebriA+IG1laW1va3VcIDsKK+WKm+eCuSA+IHJpa2l0ZW5cIDsKK+awtOWcpyA+IHN1aWF0c3VcIDsKK+W5u+iBtCA+IGdlbmNob3VcIDsKK+efr+atoyA+IGt5b3VzZWlcIDsKK+aomemhjCA+IGh5b3VkYWlcIDsKK+awt+WaoiA+IGh5b3Vub3VcIDsKK+W/teWKmyA+IG5lbnJpa2lcIDsKK+ebtOimsyA+IGNob2trYW5cIDsKK+WNmuWllSA+IGJha3VjaGlcIDsKK+ebtOimpyA+IGppa2lyYW5cIDsKK+WNg+WwiyA+IGNoaWhpcm9cIDsKK+WFqOmVtyA+IHplbmNob3VcIDsKK+WNmuWkpyA+IGhha3VkYWlcIDsKK+iQvea2mSA+IHJha3VydWlcIDsKK+WGhemHkSA+IHVjaGlraW5cIDsKK+eZu+mggiA+IHRvdWNob3VcIDsKK+ebl+iziiA+IHRvdXpva3VcIDsKK+WNmuWjqyA+IGhha3VzaGlcIDsKK+eah+mZtSA+IGtvdXJ5b3VcIDsKK+eZuumfsyA+IGhhdHN1b25cIDsKK+WFpemWgCA+IG55dXVtb25cIDsKK+avkuaJiyA+IGRva3VzaHVcIDsKK+efs+apiyA+IHNla2t5b3VcIDsKK+ecn+iPjCA+IHNoaW5raW5cIDsKK+eZvemdoiA+IGhha3VtZW5cIDsKK+W+ueWknCA+IHRldHN1eWFcIDsKK+efs+anqCA+IHNla2tha3VcIDsKK+W/q+WLnSA+IGthaXNob3VcIDsKK+WIh+iFuSA+IHNlcHB1a3VcIDsKK+W/oOWQmyA+IGNodXVrdW5cIDsKK+iUteS6uiA+IGt1cm91ZG9cIDsKK+WHtuiNkiA+IGt5b3Vrb3VcIDsKK+W5tOiAgSA+IHRvc2hpb2lcIDsKK+iLlOmhniA+IGtva2VydWlcIDsKK+eZuumcsiA+IGhhdHN1cm9cIDsKK+WFh+mhniA+IGt5b3VydWlcIDsKK+mAlOe1tiA+IHRvemV0c3VcIDsKK+ebtOihjCA+IGNob2trb3VcIDsKK+WKm+a8lSA+IHJpa2lzb3VcIDsKK+WNoOWcsCA+IHNoaW1lamlcIDsKK+W/g+WcsCA+IGtva29jaGlcIDsKK+WFiOmggyA+IHNlbmtvcm9cIDsKK+atu+avkiA+IHNoaWRva3VcIDsKK+W6nOeriyA+IGZ1cml0c3VcIDsKK+W4q+ihqCA+IHNoaWh5b3VcIDsKK+WOn+S9nCA+IGdlbnNha3VcIDsKK+WNsOWTsiA+IGludGV0c3VcIDsKK+WGt+iplSA+IHJlaWh5b3VcIDsKK+W/g+WboCA+IHNoaW4nJ2luXCA7Civlh7roiKogPiBzaHVra291XCA7CivpgJ/nrpcgPiBzb2t1c2FuXCA7CivljoTliY0gPiB5YWt1bWFlXCA7Civmrovmpa0gPiB6YW5neW91XCA7CivojZLooYwgPiBhcmFneW91XCA7CivlhoXpgJogPiBuYWl0c3V1XCA7Civli53mma8gPiBzaG91a2VpXCA7Civnnq3nhLYgPiByeW91emVuXCA7CivlvpPlsZ4gPiBqdXV6b2t1XCA7CivlvKbmpb0gPiBnZW5nYWt1XCA7CivlioPnhLYgPiBrYWt1emVuXCA7CivljbPlkJ8gPiBzb2t1Z2luXCA7CivljYPlp6sgPiBzZW5oaW1lXCA7Civlv6Dli6QgPiBjaHV1a2luXCA7Civlv6Dli4cgPiBjaHV1eXV1XCA7CivlhrfoppogPiByZWlrYWt1XCA7CivpgJrnrpcgPiB0c3V1c2FuXCA7CivpgIbnuIEgPiBneWFrdWVuXCA7CivliJ3ntJogPiBzaG9reXV1XCA7Civmr5LmgKcgPiBkb2t1c2VpXCA7Civlt6HpgYogPiBqdW4nJ3l1dVwgOwor5b6T5a65ID4gc2hvdXlvdVwgOwor5Y2X5Zu9ID4gbmFuZ29rdVwgOwor5by35pq0ID4ga3lvdWJvdVwgOwor5bmV6IiOID4gYmFrdXNoYVwgOwor5rC35Y6fID4gaHlvdWdlblwgOwor5bmz57mUID4gaGlyYW9yaVwgOwor5b+c5YqbID4gb3VyeW9rdVwgOwor5Yud5pWXID4gc2hvdWhhaVwgOwor5rGC5YiRID4ga3l1dWtlaVwgOwor5be76LKdID4gbWFraWdhaVwgOwor5byP5qyhID4gc2hpa2lqaVwgOwor55+z5p2/ID4gc2VraWJhblwgOwor5YaZ6LGhID4gc2hhc2hvdVwgOwor5q6L5p+xID4gemFuY2h1dVwgOwor55+z5p2QID4gc2VraXphaVwgOwor5b6M5a6uID4ga291a3l1dVwgOwor6YKm5qW9ID4gaG91Z2FrdVwgOwor5Ymj546JID4ga2VuZGFtYVwgOwor5YyX5ba6ID4gaG9rdXJlaVwgOwor5bm057WmID4gbmVua3l1dVwgOwor5YWo6YePID4gemVucnlvdVwgOwor5b6M5a2mID4ga291Z2FrdVwgOwor6YKE5rWBID4ga2Fucnl1dVwgOwor5Y2z5Yi7ID4gc29ra29rdVwgOwor5Ye26IGeID4ga3lvdWJ1blwgOwor5rCR5Zu9ID4gbWlua29rdVwgOwor5YWl6YeRID4gbnl1dWtpblwgOwor5Ymb55CDID4gZ291a3l1dVwgOwor5Y2K5Zu9ID4gaGFuZ29rdVwgOwor5rC45YilID4gZWliZXRzdVwgOwor6YW35L2/ID4ga29rdXNoaVwgOwor5b+r5L2cID4ga2Fpc2FrdVwgOwor5Y2w5Yi3ID4gaW5zYXRzdVwgOwor6L+957SNID4gdHN1aW5vdVwgOwor5rC35YiDID4gaHlvdWppblwgOwor5YWt6YGTID4gcm9rdWRvdVwgOwor5YyX5bK4ID4gaG9rdWdhblwgOwor5YmN55SfID4gemVuc2hvdVwgOwor6YCB57GNID4gc291c2VraVwgOwor5Yil56ewID4gYmVzc2hvdVwgOwor5bqt55WqID4gbml3YWJhblwgOwor6L6y6JasID4gbm91eWFrdVwgOwor6L+R6IejID4ga2luc2hpblwgOwor6YGK54yfID4geXV1cnlvdVwgOwor55m76YyyID4gdG91cm9rdVwgOwor5Y2g5Y2cID4gc2VuYm9rdVwgOwor6JGJ5pyIID4gaGFkenVraVwgOwor5beo6LOKID4ga3lvem9rdVwgOwor6I+v54etID4ga2FzaG9rdVwgOwor5b2T5oORID4gdG91d2FrdVwgOwor5b2r5belID4gY2hvdWtvdVwgOwor5YiG57SNID4gYnVuJydub3VcIDsKK+WIneepgiA+IGhhdHN1aG9cIDsKK+W/heWLnSA+IGhpc3Nob3VcIDsKK+eZvemKkSA+IGhha3VzZW5cIDsKK+WFqOmAnyA+IHplbnNva3VcIDsKK+WFpemBuCA+IG55dXVzZW5cIDsKK+WFqOmAmiA+IHplbnRzdXVcIDsKK+eZvemKhSA+IGhha3Vkb3VcIDsKK+eZvemKgCA+IGhha3VnaW5cIDsKK+WFpemBkyA+IG55dXVkb3VcIDsKK+mCquabsiA+IGpha3lva3VcIDsKK+WNnOWNoCA+IGJva3VzZW5cIDsKK+W3peizgyA+IGtvdWNoaW5cIDsKK+awt+WDjyA+IGh5b3V6b3VcIDsKK+mBiueJpyA+IHl1dWJva3VcIDsKK+mAseeVqiA+IHNodXViYW5cIDsKK+W/g+WKtCA+IHNoaW5yb3VcIDsKK+WIneeniyA+IHNob3NodXVcIDsKK+W5vueoiyA+IGlrdWhvZG9cIDsKK+aui+aVtSA+IHphbnRla2lcIDsKK+mAmueglCA+IHRzdXVrZW5cIDsKK+WNlOWQjCA+IGt5b3Vkb3VcIDsKK+W5s+etiSA+IGJ5b3Vkb3VcIDsKK+mBjueGsSA+IGthbmV0c3VcIDsKK+WNs+WApCA+IHNva3VjaGlcIDsKK+mAmuefpSA+IHRzdXVjaGlcIDsKK+eZgumkiiA+IHJ5b3V5b3VcIDsKK+W5tOerryA+IHRvc2hpaGFcIDsKK+W6reeQgyA+IHRlaWt5dXVcIDsKK+auieaVmSA+IGp1bmt5b3VcIDsKK+atjOayoiA+IHV0YXphd2FcIDsKK+WLgeaVtSA+IGtlaXRla2lcIDsKK+WGjeiqvyA+IHNhaWNob3VcIDsKK+WHneiEgiA+IGd5b3VzaGlcIDsKK+WGjeiqrSA+IHNhaWRva3VcIDsKK+axguS6uiA+IGt5dXVqaW5cIDsKK+WKn+alrSA+IGtvdWd5b3VcIDsKK+iJsum7kiA+IGlyb2d1cm9cIDsKK+WNl+WMlyA+IG5hbmJva3VcIDsKK+WNmuWKtCA+IGJha3Vyb3VcIDsKK+egtOWxgCA+IGhha3lva3VcIDsKK+WNmOWLnSA+IHRhbnNob3VcIDsKK+ato+alrSA+IHNlaWd5b3VcIDsKK+W4r+iKryA+IG9iaXNoaW5cIDsKK+WNiuWRqCA+IGhhbnNodXVcIDsKK+mBoea6kCA+IHNha3VnZW5cIDsKK+WFqOi6qyA+IHplbnNoaW5cIDsKK+avkuWusyA+IGRva3VnYWlcIDsKK+WGheisgSA+IG5haWV0c3VcIDsKK+WGheirviA+IG5haWRha3VcIDsKK+W5uOemjyA+IGtvdWZ1a3VcIDsKK+WLpOaBqiA+IGtpbmtha3VcIDsKK+WHuueyviA+IHNodXNzZWlcIDsKK+W+qeWRvSA+IGZ1a3VtZWlcIDsKK+iLpemAoCA+IHdha2F6b3VcIDsKK+W6mueUsyA+IGtvdXNoaW5cIDsKK+ebtOiIqiA+IGNob2trb3VcIDsKK+W6l+eVqiA+IG1pc2ViYW5cIDsKK+mtjemtjiA+IG1vdXJ5b3VcIDsKK+WFiemHjyA+IGtvdXJ5b3VcIDsKK+W7k+a4hSA+IGtha3VzZWlcIDsKK+mBqeazlSA+IHRla2lob3VcIDsKK+WEqumVtyA+IHl1dWNob3VcIDsKK+W/meS4rSA+IGJvdWNodXVcIDsKK+WNkeWKoyA+IGhpcmV0c3VcIDsKK+WIqeeZuiA+IHJpaGF0c3VcIDsKK+W+qeWPtyA+IGZ1a3Vnb3VcIDsKK+W/g+WDjyA+IHNoaW56b3VcIDsKK+mAo+eUqCA+IHJlbicneW91XCA7CivmsJflipsgPiBraXJ5b2t1XCA7CivmsLfkurogPiBoeW91amluXCA7CivmrrXlubMgPiBkYW5iaXJhXCA7CivlhbHosqkgPiBreW91aGFuXCA7CivlhoXoqLwgPiBuYWlzaG91XCA7CivlhoXoqLogPiBuYWlzaGluXCA7CivliYrniYcgPiBzYWt1aGVuXCA7CivmraPmoLwgPiBzZWlrYWt1XCA7CivlvLfmhb4gPiBnb3V5b2t1XCA7Civlvqnljp8gPiBmdWt1Z2VuXCA7CivnmbrpgLIgPiBoYXNzaGluXCA7CivlvJTmlocgPiBjaG91YnVuXCA7CivljJflpKkgPiBob2t1dGVuXCA7CivljJflpKcgPiBob2t1ZGFpXCA7CivlhYPph5EgPiBtb3Rva2luXCA7CivlhoXop5IgPiBuYWlrYWt1XCA7Civoi6XovKkgPiBqYWt1aGFpXCA7Civnm4romasgPiBla2ljaHV1XCA7CivlvrPliKkgPiB0b2trdXJpXCA7Civli4HmjbcgPiBrZWlzaG91XCA7Civlv4Xkv64gPiBoaXNzaHV1XCA7Civnm7LohbggPiBtb3VjaG91XCA7CivlvrPliIYgPiB0b2t1YnVuXCA7CivokrjlmaggPiBtdXNoaWtpXCA7Civlvq7lipsgPiBiaXJ5b2t1XCA7CivljL/lkI0gPiB0b2t1bWVpXCA7CivlurXngrkgPiBpb3JpdGVuXCA7Civlu7bmo5IgPiBub2JlYm91XCA7CivluLjnv5IgPiBqb3VzaHV1XCA7CivliLbnkIMgPiBzZWlreXV1XCA7CivliIbnp5IgPiBmdW5ieW91XCA7CivmrZPmpb0gPiBrYW5yYWt1XCA7CivmsLTkuK0gPiBzdWljaHV1XCA7Civpg6jlsYAgPiBidWt5b2t1XCA7Civlh43ogokgPiB0b3VuaWt1XCA7CivpgJrnlKggPiB0c3V1eW91XCA7CivojYnoibIgPiBrdXNhaXJvXCA7CivljJflooMgPiBob2treW91XCA7CivprYLprYQgPiBrb25wYWt1XCA7CivlvrTlhbUgPiBjaG91aGVpXCA7CivphY3kv6EgPiBoYWlzaGluXCA7CivpgJfnlZkgPiB0b3VyeXV1XCA7CivpganmraMgPiB0ZWtpc2VpXCA7CivmraPmnJ0gPiBzZWljaG91XCA7CivmraPmnJQgPiBzZWlzYWt1XCA7CivlhajosbkgPiB6ZW5weW91XCA7Civlh4TohZUgPiBzdWdvdWRlXCA7CivmraPmnI0gPiBzZWlmdWt1XCA7CivljZTlg40gPiBreW91ZG91XCA7CivlhYnpgJ8gPiBrb3Vzb2t1XCA7Civli5jlv40gPiBrYW4nJ25pblwgOwor5YWI6YCyID4gc2Vuc2hpblwgOwor5YWI6YCxID4gc2Vuc2h1dVwgOwor5YWl6LKiID4gbnl1dWtvdVwgOwor6YWS5LujID4gc2FrYWRhaVwgOwor55m96LqrID4gc2hpcm9taVwgOwor5ber6KGTID4gZnVqdXRzdVwgOwor6YCf55CDID4gc29ra3l1dVwgOwor6L+U57SNID4gaGVuJydub3VcIDsKK+W+qeWIuyA+IGZ1a2tva3VcIDsKK+WFseisgCA+IGt5b3Vib3VcIDsKK+i7vemchyA+IGtlaXNoaW5cIDsKK+iNkuiCnSA+IGFyYWdpbW9cIDsKK+WHuuepgiA+IHNodXNzdWlcIDsKK+W8leaPmyA+IGhpa2lrYWVcIDsKK+i8u+i8syA+IGZ1a3Vzb3VcIDsKK+assuaxgiA+IHlva2t5dXVcIDsKK+W7tuadvyA+IG5vYmVpdGFcIDsKK+ecn+epuiA+IHNoaW5rdXVcIDsKK+ecvOebriA+IGdhbm1va3VcIDsKK+W8leaOpSA+IGluc2V0c3VcIDsKK+iJsumtlCA+IHNoaWtpbWFcIDsKK+W/heS4rSA+IGhpdGNodXVcIDsKK+i8qumDrSA+IHJpbmtha3VcIDsKK+WNmOS9nCA+IHRhbnNha3VcIDsKK+ecgee3miA+IHNob3VzZW5cIDsKK+W+tOWAmSA+IGNob3Vrb3VcIDsKK+W8vuW5lSA+IGRhbm1ha3VcIDsKK+W5tOebiiA+IG5lbicnZWtpXCA7CivlvqnlhZogPiBmdWt1dG91XCA7CivlhYnou7ggPiBrb3VqaWt1XCA7Civlu7/ml6UgPiBoYXRzdWthXCA7CivlvLHlv5cgPiBqYWt1c2hpXCA7CivljJflm70gPiBob2trb2t1XCA7CivlvLflvJMgPiBnb3VreXV1XCA7CivlvqnlhYMgPiBmdWt1Z2VuXCA7CivlvLflvIEgPiBreW91YmVuXCA7CivpgoTmmqYgPiBrYW5yZWtpXCA7CivlirHmjK8gPiByZWlzaGluXCA7Civovp7oibIgPiBqaXNob2t1XCA7Civlh7rnpL4gPiBzaHVzc2hhXCA7CivojYnogqUgPiBrdXNhZ29lXCA7CivliKnnjocgPiByaXJpdHN1XCA7CivnmbrotrMgPiBob3Nzb2t1XCA7CivlhazoqZUgPiBrb3VoeW91XCA7CivmraPmlZkgPiBzZWlreW91XCA7CivlhazoqLwgPiBrb3VzaG91XCA7CivljYHlha0gPiBqdXVyb2t1XCA7CivliKXnj40gPiBiZXRjaGluXCA7CivljZTkvJogPiBreW91a2FpXCA7CivlhYjoubQgPiBzZW5zaHV1XCA7CivljLrliKUgPiBrdWJldHN1XCA7CivljYPlhIQgPiBzZW4nJ29rdVwgOwor5rCX5L2NID4ga2lndXJhaVwgOwor5byx5byfID4gamFrdXRlaVwgOwor5YWx6KWfID4gdG9tb2VyaVwgOwor55y855eFID4gZ2FuYnlvdVwgOwor5YWt6KeSID4gcm9ra2FrdVwgOwor5Y2S5LyNID4gc290c3Vnb1wgOwor5rCR5L+XID4gbWluem9rdVwgOwor5q6v5a6uID4gaGlua3l1dVwgOwor56CU5a2mID4ga2VuZ2FrdVwgOwor5q6L5b+1ID4gemFuJyduZW5cIDsKK+iNt+epjSA+IG5pZHp1bWlcIDsKK+WNl+S4rSA+IG5hbmNodXVcIDsKK+WGt+iCiSA+IHJlaW5pa3VcIDsKK+iQveaJiyA+IHJha3VzaHVcIDsKK+ebuOe2miA+IHNvdXpva3VcIDsKK+aui+W/jSA+IHphbicnbmluXCA7CivmsJfku5ggPiBraWR6dWtlXCA7CivlhaXoqaYgPiBueXV1c2hpXCA7Civmrovlv4MgPiB6YW5zaGluXCA7CivlibXmpa0gPiBzb3VneW91XCA7Civlh6HnrZYgPiBib25zYWt1XCA7Civli4nlvLcgPiBiZW5reW91XCA7CivlhbHoo48gPiB0b21vdXJhXCA7CivlvozljoQgPiBhdG95YWt1XCA7CivokL3miJAgPiByYWt1c2VpXCA7Civlhajop5IgPiB6ZW5rYWt1XCA7CivlvLHlubQgPiBqYWt1bmVuXCA7Civli6flraYgPiBrYW5nYWt1XCA7CivljYrkvZwgPiBoYW5zYWt1XCA7CivlvpfliIYgPiB0b2t1YnVuXCA7CivovInpjLIgPiBzYWlyb2t1XCA7CivlurbmtYEgPiBzaG9yeXV1XCA7CivmrbTmiKYgPiByZWtpc2VuXCA7Civlt53onaYgPiBrYXdhZWJpXCA7CivmrYzmm7IgPiBrYWt5b2t1XCA7CivlvoXlkIggPiBtYWNoaWFpXCA7CivluLDntZAgPiBraWtldHN1XCA7Civnn7Pluq0gPiBzZWtpdGVpXCA7CivljZLkuK0gPiBzb3RjaHV1XCA7CivljZPkuIogPiB0YWt1am91XCA7CivliYrmuJsgPiBzYWt1Z2VuXCA7CivlhYXotrMgPiBqdXVzb2t1XCA7CivljYrkvJEgPiBoYW5reXV1XCA7CivojLbohbkgPiBjaGFiYXJhXCA7CivlhY3osqwgPiBtZW5zZWtpXCA7CivljLnlhJQgPiBoaXRjaHV1XCA7CivpganmoLwgPiB0ZWtrYWt1XCA7CivojZLnuIQgPiBhcmFuYXdhXCA7Civlg7vpmoUgPiBoZWtpZ3V1XCA7CivliofmmpEgPiBnZWtpc2hvXCA7Civnm7TntYwgPiBjaG9ra2VpXCA7Civnm67nuIEgPiBtYWJ1Y2hpXCA7Civlg7vpmawgPiBoZWtpc3V1XCA7CivpgY3mrbQgPiBoZW5yZWtpXCA7CivluK/ntJkgPiBvYmlnYW1pXCA7CivluoPni60gPiBrb3VreW91XCA7CivliLrmv4AgPiBzaGlnZWtpXCA7CivlubLnk6IgPiBrYW5weW91XCA7CivphJnliqMgPiBoaXJldHN1XCA7Civovp7ogbcgPiBqaXNob2t1XCA7CivlhJ/ph5EgPiBzaG91a2luXCA7CivmsI/kurogPiB1amloaXRvXCA7Civnm7Tns7sgPiBjaG9ra2VpXCA7Civnm5fogbQgPiB0b3VjaG91XCA7CivlhazooaggPiBrb3VoeW91XCA7Civnn6XlvrMgPiBjaGl0b2t1XCA7CivpgYrmrbQgPiB5dXVyZWtpXCA7CivlhazooYYgPiBrb3VzaHV1XCA7CivlhYjosqAgPiBzZW5tYWtlXCA7Civnn6XlvpcgPiBjaGl0b2t1XCA7CivnnLznkIMgPiBnYW5reXV1XCA7CivluL3nq6AgPiBib3VzaG91XCA7Civov5Hnp7AgPiBraW5zaG91XCA7Civlvqnku4cgPiBmdWtreXV1XCA7CivnmbrorbAgPiBoYXRzdWdpXCA7Civlh7rnm6MgPiBzaHVra2FuXCA7CivpgIHnkIMgPiBzb3VreXV1XCA7Civoia/poqggPiByeW91ZnV1XCA7CivliIbnlZkgPiBidW5yeXV1XCA7Civli5jlr6kgPiBrYW5zaGluXCA7CivpganmnZAgPiB0ZWtpemFpXCA7CivpgoDmkoMgPiB5b3VnZWtpXCA7CivpgKPmv4EgPiByZW5kYWt1XCA7Civmrb/lvowgPiBib3RzdWdvXCA7CivnnJ/nm7ggPiBzaGluc291XCA7CivnnJ/nm7QgPiBtYXNzdWd1XCA7CivlvbnlkI0gPiB5YWt1bWVpXCA7CivlvpPlg5UgPiBqdXVib2t1XCA7CivpgZPmpb0gPiBkb3VyYWt1XCA7Civnnqzmlq0gPiBzaHVuZGFuXCA7Civnmbroqp4gPiBoYXRzdWdvXCA7Civli6flpaggPiBrYW5zaG91XCA7CivlipvmipUgPiByaWtpdG91XCA7CivliJHnjYQgPiBrZWlnb2t1XCA7Civnmb7oqIggPiBoeWFra2VpXCA7CivlhJ/pgoQgPiBzaG91a2FuXCA7CivljYPkuKEgPiBzZW5yeW91XCA7CivlvozlhYggPiBhdG9zYWtpXCA7CivljYHkuZ0gPiBqdXVreXV1XCA7CivnmbroqbEgPiBoYXRzdXdhXCA7CivovIPph48gPiBrb3VyeW91XCA7CivljJfljYogPiBob2t1aGFuXCA7Civlu4Pmpa0gPiBoYWlneW91XCA7CivnmbroqLsgPiBoYXRjaHV1XCA7CivljYHkuKEgPiBqdXVyeW91XCA7CivlipvmiKYgPiByaWtpc2VuXCA7CivljYHkuIMgPiBqdXVuYW5hXCA7CivljYHkuIAgPiBqdXVpY2hpXCA7CivlvJXlvZMgPiBoaWtpYXRlXCA7CivpgLjmsJEgPiBpdHN1bWluXCA7CivlvovlhIAgPiByaWNoaWdpXCA7CivliY3mrbQgPiB6ZW5yZWtpXCA7Civlia/mnKwgPiBmdWt1aG9uXCA7CivoibHpm6MgPiBrYW4nJ25hblwgOwor5byP5b6uID4gc2hpa2liaVwgOwor6YGK5qW9ID4geXV1cmFrdVwgOwor6Lu96YePID4ga2VpcnlvdVwgOwor6Lu96YeNID4ga2VpY2hvdVwgOwor55uu566XID4gbW9rdXNhblwgOwor5Ymv5pu4ID4gZnVrdXNob1wgOwor5Ye655SjID4gc2h1c3NhblwgOwor5Ye655SfID4gc2h1c3NlaVwgOwor55m66KaaID4gaGFra2FrdVwgOwor6YCy5rC0ID4gc2hpbnN1aVwgOwor5qyy5pybID4geW9rdWJvdVwgOwor5YuH5bCGID4geXV1c2hvdVwgOwor55uf57SEID4gbWVpeWFrdVwgOwor55u456ewID4gc291c2hvdVwgOwor5b285YemID4ga2FzaGlrb1wgOwor55+u5bCPID4gd2Fpc2hvdVwgOwor552r5q+bID4gbWF0c3VnZVwgOwor6YK45a6FID4gdGVpdGFrdVwgOwor55+t5bCPID4gdGFuc2hvdVwgOwor55uu56uvID4gbWVoYXNoaVwgOwor5YuJ5a2mID4gYmVuZ2FrdVwgOwor6a+o6IKJID4gZ2VpbmlrdVwgOwor6IyJ6I6JID4gbWF0c3VyaVwgOwor5YSq6LaKID4geXV1ZXRzdVwgOwor55m+6KGMID4gaHlha2tvdVwgOwor6L+R55y8ID4gY2hpa2FtZVwgOwor6I+M5q+SID4ga2luZG9rdVwgOwor5q205bm0ID4gcmVraW5lblwgOwor5byT5birID4geXVtaXNoaVwgOwor5YWJ6KaaID4ga291a2FrdVwgOwor5YWI6KaaID4gc2Vua2FrdVwgOwor5b6M5L2cID4gYXRvc2FrdVwgOwor5beo6Ii2ID4ga3lvaGFrdVwgOwor5bqV5rWBID4gdGVpcnl1dVwgOwor6L+R55uuID4gY2hpa2FtZVwgOwor55m66KGoID4gaGFwcHlvdVwgOwor6YG45oqeID4gc2VudGFrdVwgOwor5qyg5qC8ID4ga2Vra2FrdVwgOwor5YWx6JGXID4ga3lvdWNob1wgOwor5bqD5rygID4ga291YmFrdVwgOwor6I2J56ybID4ga3VzYWJ1ZVwgOwor5Yud5aCxID4gc2hvdWhvdVwgOwor5Yid5r2uID4gc2hvY2hvdVwgOwor5Yqp5bmzID4gc3VrZWJlaVwgOwor5by35aSnID4ga3lvdWRhaVwgOwor6Lyq6KqtID4gcmluZG9rdVwgOwor55+l5bCGID4gY2hpc2hvdVwgOwor5YaF6IacID4gbmFpbWFrdVwgOwor5by35aOuID4ga3lvdXNvdVwgOwor5b255YOnID4geWFrdXNvdVwgOwor5YqH5oimID4gZ2VraXNlblwgOwor5q+S5YiDID4gZG9rdWppblwgOwor55m96J2LID4gaGFrdXJvdVwgOwor5biG57axID4gaG9kenVuYVwgOwor6LuN6ZW3ID4gZ3VuY2hvdVwgOwor5Yqb5b25ID4gcmlraWVraVwgOwor5Ya356yRID4gcmVpc2hvdVwgOwor6Iy257KlID4gY2hhZ2F5dVwgOwor5bu75b+DID4ga2Fpc2hpblwgOwor55yL55eFID4ga2FuYnlvdVwgOwor55uu56S8ID4gbW9rdXJlaVwgOwor6Ly46KGAID4geXVrZXRzdVwgOwor5Yud5ZywID4gc2hvdWNoaVwgOwor5Yid5rmvID4gaGF0c3V5dVwgOwor5YWH6KGMID4ga3lvdWtvdVwgOwor5Ye254ybID4ga3lvdW1vdVwgOwor6Imm6ZW3ID4ga2FuY2hvdVwgOwor5YeN55+zID4gdG91c2VraVwgOwor5Yi25qyyID4gc2VpeW9rdVwgOwor5b2i5YudID4ga2Vpc2hvdVwgOwor5Ye654mIID4gc2h1cHBhblwgOwor5byf5auBID4gb3RveW9tZVwgOwor5Ye254q2ID4ga3lvdWpvdVwgOwor5qi66ImyID4ga2FiYWlyb1wgOwor6YCA5r2uID4gdGFpY2hvdVwgOwor56CC5ZywID4gc3VuYWNoaVwgOwor6YGT5pWZID4gZG91a3lvdVwgOwor6YGO5pelID4ga2FqaXRzdVwgOwor6YO35YWaID4ga3lvdXRvdVwgOwor6Lui6YedID4gdGVuc2hpblwgOwor6Iy2566xID4gY2hhYmFrb1wgOwor5biw552AID4ga2ljaGFrdVwgOwor6YGp5omAID4gdGVraXNob1wgOwor5YO76YKRID4gaGVraXl1dVwgOwor5q2O5oGvID4gdGFuc29rdVwgOwor6Iub6JmQID4ga2FneWFrdVwgOwor5YaZ57WMID4gc2hha3lvdVwgOwor5q2T5b+DID4ga2Fuc2hpblwgOwor5b2r5YOPID4gY2hvdXpvdVwgOwor55+z5aGUID4gc2VraXRvdVwgOwor6L+U55CDID4gaGVua3l1dVwgOwor55+z5aGAID4gaXNoaWJlaVwgOwor5byf5aerID4gb3RvaGltZVwgOwor5Yip5q6WID4gcmlzaG9rdVwgOwor5b255Lq6ID4geWFrdW5pblwgOwor5biv55quID4gb2Jpa2F3YVwgOwor6L6x55+lID4gam9rdWNoaVwgOwor5Yun5ZGKID4ga2Fua29rdVwgOwor55uy55uuID4gbW91bW9rdVwgOwor55eb6aKoID4gdHN1dWZ1dVwgOwor6YC45p2QID4gaXRzdXphaVwgOwor5Ye654KtID4gc2h1dHRhblwgOwor5byx5Zu9ID4gamFra29rdVwgOwor5bm55rWBID4ga2Fucnl1dVwgOwor5q2v5a2mID4gc2hpZ2FrdVwgOwor5bmy5riJID4ga2Fuc2hvdVwgOwor6I2354mpID4gbmltb3RzdVwgOwor5YyX5LiKID4gaG9rdWpvdVwgOwor5Ymv5omLID4gZnVrdXNodVwgOwor5Ym95oKNID4gaHlvdWthblwgOwor6Imy6YeMID4gaXJvemF0b1wgOwor6Lui6YCyID4gdGVuc2hpblwgOwor55uk55+zID4gYmFuamFrdVwgOwor6L6y55u4ID4gbm91c2hvdVwgOwor6YGK5pKDID4geXV1Z2VraVwgOwor5YWl6Ii5ID4gbnl1dXNlblwgOwor5YiG5rqcID4gYnVucnl1dVwgOwor5YWl6IiOID4gbnl1dXNoYVwgOwor6YCQ5qyhID4gY2hpa3VqaVwgOwor6L6655aGID4gaGVua3lvdVwgOwor5YmN5pa5ID4gbWFla2F0YVwgOwor55m96I+cID4gaGFrdXNhaVwgOwor5Ymy5oSbID4ga2F0c3VhaVwgOwor6YGp5oCnID4gdGVraXNlaVwgOwor55uj552jID4ga2FudG9rdVwgOwor6LqB6ayxID4gc291dXRzdVwgOwor56CU5YmKID4ga2Vuc2FrdVwgOwor5qW96ZqKID4gZ2FrdXRhaVwgOwor5q2j5a6iID4gc2Vpa2FrdVwgOwor5q6J5Zu9ID4ganVua29rdVwgOwor5YWo6IO9ID4gemVuJydub3VcIDsKK+mAhuavlCA+IGd5YWt1aGlcIDsKK+WGpeemjyA+IG1laWZ1a3VcIDsKK+edpuaciCA+IG11dHN1a2lcIDsKK+mAuOaWhyA+IGl0c3VidW5cIDsKK+WIu+acrCA+IGtva3Vob25cIDsKK+ato+WtkCA+IHNob3VzaGlcIDsKK+W5veasnSA+IHl1dXV0c3VcIDsKK+auuuWCtyA+IHNhc3Nob3VcIDsKK+WGhee0hCA+IG5haXlha3VcIDsKK+W8t+WRsyA+IHRzdXlvbWlcIDsKK+WJo+aInyA+IGtlbmdla2lcIDsKK+i/lOeFpyA+IGhlbnNob3VcIDsKK+iJh+mVtyA+IHRlaWNob3VcIDsKK+mBqeW9kyA+IHRla2l0b3VcIDsKK+i7oui6qyA+IHRlbnNoaW5cIDsKK+WIhua1gSA+IGJ1bnJ5dXVcIDsKK+aoqeiDvSA+IGtlbicnbm91XCA7Civlh7bmvKIgPiBreW91a2FuXCA7CivmraPlq6EgPiBzZWl0ZWtpXCA7CivmrLLmg4UgPiB5b2t1am91XCA7CivluqfmlbcgPiB6YXNoaWtpXCA7CivmpbzplqMgPiByb3VrYWt1XCA7CivliIbms6ggPiBidW5jaHV1XCA7CivljIXkuIEgPiBob3VjaG91XCA7CivliLbmnI0gPiBzZWlmdWt1XCA7Civnmbroir0gPiBoYXRzdWdhXCA7CivpgLLmlbAgPiBzaGluc3V1XCA7Civlh7rmuK8gPiBzaHVra291XCA7Civnmb7oiKwgPiBoeWFwcGFuXCA7Civlh7rmuKAgPiBzaHVra3lvXCA7CivpgLLmlLsgPiBzaGlua291XCA7CivokL3ln44gPiByYWt1am91XCA7CivlibLlvZMgPiB3YXJpYXRlXCA7CivmrLLlv7UgPiB5b2t1bmVuXCA7CivmqJ/ohLMgPiBzaG91bm91XCA7Civov5HngasgPiBjaGlrYWJpXCA7CivliKXmoLwgPiBiZWtrYWt1XCA7Civnlr7poqggPiBzaGlwcHV1XCA7CivokL3lnLAgPiByYWt1Y2hpXCA7CivlhbHnt6ggPiBreW91aGVuXCA7CivmraTlpbQgPiBrb3lhdHN1XCA7CivlvLfli6IgPiBreW91c2VpXCA7Civnm5fnmZYgPiB0b3VoZWtpXCA7CivoiLnplbcgPiBzZW5jaG91XCA7CivnoJTkv64gPiBrZW5zaHV1XCA7CivliLfmlrAgPiBzYXNzaGluXCA7Civmrr/kuK0gPiBkZW5jaHV1XCA7CivlvLflipsgPiBnb3VyaWtpXCA7Civluo/mm7IgPiBqb2t5b2t1XCA7Civluormnb8gPiB5dWthaXRhXCA7CivpgJrmnIkgPiB0c3V1eXV1XCA7CivliZvmhI4gPiBnb3VmdWt1XCA7CivlhbXns6cgPiBoeW91cm91XCA7CivpgbflrqIgPiBzZW5rYWt1XCA7CivlvLfliZsgPiBreW91Z291XCA7Civnm4bnn7MgPiBib25zZWtpXCA7CivmrKPmgqYgPiBraW5ldHN1XCA7CivlvLfliLYgPiBreW91c2VpXCA7CivlhbXnsq4gPiBoeW91cm91XCA7CivpgZPlv4MgPiBkb3VzaGluXCA7CivlhbjnsY0gPiB0ZW5zZWtpXCA7CivpgZPlvrMgPiBkb3V0b2t1XCA7Civnl4Xpm6MgPiBieW91bmFuXCA7Civlipvlo6sgPiByaWtpc2hpXCA7Civou4rovJsgPiBzaGFyeW91XCA7Civou4rovIwgPiBzaGFyeW91XCA7CivlhbXnsY0gPiBoZWlzZWtpXCA7CivlioPlrpogPiBrYWt1dGVpXCA7CivpgJ/mlq0gPiBzb2t1ZGFuXCA7Civou4rou7ggPiBzaGFqaWt1XCA7CivlhoXnqY0gPiBuYWlzZWtpXCA7CivpgI/mnpAgPiB0b3VzZWtpXCA7CivlhqDnnIEgPiBrYW5zaG91XCA7CivliaPlvaIgPiBrZW5nYXRhXCA7CivojZLniakgPiBhcmFtb25vXCA7Civnm7LniIYgPiBtb3ViYWt1XCA7Civlg7voq5YgPiBoZWtpcm9uXCA7CivlvLflhbUgPiBreW91aGVpXCA7CivlhazntIQgPiBrb3V5YWt1XCA7CivmrrXkuJggPiBkYW5reXV1XCA7CivovrLniacgPiBub3Vib2t1XCA7CivlhaXntr8gPiBpcmV3YXRhXCA7CivmqKrnt5ogPiB5b2tvc2VuXCA7Civnmb3nvr0gPiBzaGlyYWhhXCA7Civls7vpmbogPiBzaHVua2VuXCA7Civlt6vnpZ0gPiBmdXNodWt1XCA7Civou7joo4UgPiBqaWt1c291XCA7Civnm6PnjYQgPiBrYW5nb2t1XCA7CivliKXmmYIgPiBiZXRzdWppXCA7CivlvJTllY8gPiBjaG91bW9uXCA7Civli4Xli5ggPiBjaG9ra2FuXCA7CivlhajntJogPiB6ZW5reXV1XCA7CivlhoXnpo8gPiBuYWlmdWt1XCA7CivlhpnnnJ8gPiBzaGFzaGluXCA7CivlhajntI0gPiB6ZW4nJ25vdVwgOwor5Yed5rueID4gZ3lvdXRhaVwgOwor6YGT5bqKID4gZG91c2hvdVwgOwor5q6K5YudID4gc2h1c2hvdVwgOwor6LuN6LazID4gZ3Vuc29rdVwgOwor6auY6aGNID4ga291Z2FrdVwgOwor5YO76KiAID4gaGVraWdlblwgOwor5Ymj5bmVID4ga2VubWFrdVwgOwor5Ye25q2zID4ga3lvdXNhaVwgOwor5Ymb5by3ID4gZ291a3lvdVwgOwor5YiG5qWtID4gYnVuZ3lvdVwgOwor55yf5q2jID4gc2hpbnNlaVwgOwor6Lui6Kq/ID4gdGVuY2hvdVwgOwor5q2M5aerID4gdXRhaGltZVwgOwor6YGg5bGxID4gdG9veWFtYVwgOwor5qiq57O4ID4geW9rb2l0b1wgOwor5qyh5byPID4gamlzaGlraVwgOwor5by35YGlID4ga3lvdWtlblwgOwor6YGK5byLID4geXV1eW9rdVwgOwor6YG65aSxID4gaXNoaXRzdVwgOwor6YG45aWoID4gc2Vuc2hvdVwgOwor5YO76KaLID4gaGVraWtlblwgOwor6Iqx6JG1ID4gaGFuYWFvaVwgOwor6JC95ZG9ID4gcmFrdW1laVwgOwor6YGK5buTID4geXV1a2FrdVwgOwor6Luf6Kq/ID4gbmFuY2hvdVwgOwor5qi556uLID4ganVyaXRzdVwgOwor6a2U6KGTID4gbWFqdXRzdVwgOwor5Yeh5rWBID4gYm9ucnl1dVwgOwor5biC55S6ID4gc2hpY2hvdVwgOwor6IiM6Z+zID4gemV0c3VvblwgOwor5Yid5pelID4gaGF0c3VoaVwgOwor5byV5Y+XID4gaGlraXVrZVwgOwor5YqH5aSJID4gZ2VraWhlblwgOwor5bu65Zu9ID4ga2Vua29rdVwgOwor55+t5YaKID4gdGFuemFrdVwgOwor55+z5YOPID4gc2VraXpvdVwgOwor552j5oimID4gdG9rdXNlblwgOwor5Yi65oifID4gc2hpZ2VraVwgOwor55y65pybID4gY2hvdWJvdVwgOwor5YqH5aOHID4gZ2VraWRhblwgOwor6L+R5rOBID4ga2lua3lvdVwgOwor5qyg5bitID4ga2Vzc2VraVwgOwor5beo55+zID4ga3lvc2VraVwgOwor5YmN5b60ID4gemVuY2hvdVwgOwor5q205Y+yID4gcmVraXNoaVwgOwor55m957eaID4gaGFrdXNlblwgOwor5bmz5pyNID4gaGVpZnVrdVwgOwor6Lui6KaGID4gdGVucHVrdVwgOwor5qmf55WlID4ga2lyeWFrdVwgOwor5YqH5aC0ID4gZ2VraWpvdVwgOwor6Lqr6L+RID4gbWlkamlrYVwgOwor5YSq6ImvID4geXV1cnlvdVwgOwor6YCG5peFID4gZ2VraXJ5b1wgOwor6Lqr6L66ID4gc2hpbnBlblwgOwor5YiG5p6QID4gYnVuc2VraVwgOwor5byx5L2TID4gamFrdXRhaVwgOwor5Ye65qO6ID4gc2h1a2thblwgOwor55m957SZID4gaGFrdXNoaVwgOwor5YWa57GNID4gdG91c2VraVwgOwor5qiq56ybID4geW9rb2J1ZVwgOwor55m657WmID4gaGFra3l1dVwgOwor6Lu96JaEID4ga2VpaGFrdVwgOwor5byV5YqbID4gaW5yeW9rdVwgOwor5YaF55u4ID4gbmFpc2hvdVwgOwor5YWs56ewID4ga291c2hvdVwgOwor5YaG55uGID4gbWFydWJvblwgOwor6JGX5L2cID4gY2hvc2FrdVwgOwor55ep6LqrID4gc291c2hpblwgOwor6Iqx6ImyID4gaGFuYWlyb1wgOwor6YCf5oiQID4gc29rdXNlaVwgOwor6auY6ZajID4ga291a2FrdVwgOwor5bem55u0ID4gc2FjaG9rdVwgOwor5YmN5bm0ID4gemVuJyduZW5cIDsKK+mAgeaWmSA+IHNvdXJ5b3VcIDsKK+mxl+acqCA+IHJpbmJva3VcIDsKK+eZveeyiSA+IG9zaGlyb2lcIDsKK+WGheeahCA+IG5haXRla2lcIDsKK+iLpuevgCA+IGt1c2V0c3VcIDsKK+eZveexsyA+IGhha3VtYWlcIDsKK+efreS/oSA+IHRhbnNoaW5cIDsKK+iPr+WunyA+IGthaml0c3VcIDsKK+aoqueptCA+IHlva29hbmFcIDsKK+iIiOmahiA+IGtvdXJ5dXVcIDsKK+altemBkyA+IGdva3Vkb3VcIDsKK+iJr+ioiCA+IHJ5b3VrZWlcIDsKK+ect+aXjyA+IGtlbnpva3VcIDsKK+mBk+WtpiA+IGRvdWdha3VcIDsKK+WBtOmdoiA+IHNva3VtZW5cIDsKK+WHuuagoSA+IHNodWtrb3VcIDsKK+W5o+adnyA+IGhlaXNva3VcIDsKK+WKqeWLoiA+IHN1a2V6ZWlcIDsKK+WKn+WQjSA+IGtvdW15b3VcIDsKK+iJh+i6qyA+IHRlaXNoaW5cIDsKK+mBjuWvhiA+IGthbWl0c3VcIDsKK+WKh+WboyA+IGdla2lkYW5cIDsKK+WKquWKmyA+IGRvcnlva3VcIDsKK+W6reW4qyA+IG5pd2FzaGlcIDsKK+efs+S6rSA+IHNla2l0ZWlcIDsKK+mqqOmqvCA+IGtva2tha3VcIDsKK+WKqeWKmyA+IGpvcnlva3VcIDsKK+W7n+WggiA+IGJ5b3Vkb3VcIDsKK+i/veaUviA+IHRzdWlob3VcIDsKK+WzoemWkyA+IGt5b3VrYW5cIDsKK+iNkua2vCA+IGtvdXJ5b3VcIDsKK+atu+WCtyA+IHNoaXNob3VcIDsKK+mBiuWuoiA+IHl1dWtha3VcIDsKK+WFpeekviA+IG55dXVzaGFcIDsKK+api+eVlCA+IGt5b3VoYW5cIDsKK+mBiuWtpiA+IHl1dWdha3VcIDsKK+ats+WFpSA+IHNhaW55dXVcIDsKK+WGheeUsyA+IG5haXNoaW5cIDsKK+mzqeWQiCA+IGt5dXVnb3VcIDsKK+asoOWtlyA+IGtldHN1amlcIDsKK+ato+WMlyA+IHNlaWhva3VcIDsKK+WCt+i3oSA+IGtpenVhdG9cIDsKK+atpuWKmyA+IGJ1cnlva3VcIDsKK+mBqeWcsCA+IHRla2ljaGlcIDsKK+WKn+WKmyA+IGtvdXJpa2lcIDsKK+iNkuazoiA+IGFyYW5hbWlcIDsKK+i/kealrSA+IGtpbmd5b3VcIDsKK+ecn+abuCA+IHNoaW5zaG9cIDsKK+iItui8iSA+IGhha3VzYWlcIDsKK+W6teWupCA+IGFuaml0c3VcIDsKK+WHtuaatCA+IGt5b3Vib3VcIDsKK+WFseebiiA+IGt5b3Vla2lcIDsKK+ato+WJryA+IHNlaWZ1a3VcIDsKK+mAmuaApyA+IHRzdXVzZWlcIDsKK+ato+WJhyA+IHNlaXNva3VcIDsKK+WJjeWvqSA+IHplbnNoaW5cIDsKK+msseihgCA+IHVra2V0c3VcIDsKK+WFvOeUqCA+IGtlbicneW91XCA7CivlirTkvZwgPiByb3VzYWt1XCA7CivpgJrlv7UgPiB0c3V1bmVuXCA7Civlh4vmrosgPiBjaG91emFuXCA7CivlhrfmtrwgPiByZWlyeW91XCA7Civou73oiJ8gPiBrZWlzaHV1XCA7CivokL3kvZMgPiByYWt1dGFpXCA7CivnmoTnorogPiB0ZWtrYWt1XCA7CivpgKPlubQgPiByZW4nJ25lblwgOwor5YiH5o+bID4ga2lyaWthZVwgOwor55eV6LehID4ga29uc2VraVwgOwor5bmy5ouTID4ga2FudGFrdVwgOwor5q275Lq6ID4gc2hpYml0b1wgOwor5YWs55qEID4ga291dGVraVwgOwor5bu65YmNID4gdGF0ZW1hZVwgOwor5YiH5o6bID4ga2lra2FrZVwgOwor6YCy5bGVID4gc2hpbnRlblwgOwor5qyg5aaCID4ga2V0c3Vqb1wgOwor6aqo6aCCID4ga290Y2hvdVwgOwor5qiq552AID4gb3VjaGFrdVwgOwor5YiG5o6MID4gYnVuc2hvdVwgOwor5byB5YSfID4gYmVuc2hvdVwgOwor5YiR5oiuID4ga2VpcmlrdVwgOwor6YCa5byKID4gdHN1dWhlaVwgOwor55m656WlID4gaGFzc2hvdVwgOwor6YCa5byBID4gdHN1dWJlblwgOwor5q205LydID4gcmVraWRlblwgOwor5bm95oSBID4geXV1c2h1dVwgOwor6JC95Lq6ID4gb2NodXVkb1wgOwor5YWl55ujID4gbnl1dWthblwgOwor5q275LitID4gc2hpY2h1dVwgOwor5q205Lu7ID4gcmVraW5pblwgOwor5Yil5b6MID4gYmV0c3Vnb1wgOwor5q205LujID4gcmVraWRhaVwgOwor5q205LuVID4gcmVraXNoaVwgOwor5YWx55SoID4ga3lvdXlvdVwgOwor5qW16LKnID4gZ29rdWhpblwgOwor5YWx55SjID4ga3lvdXNhblwgOwor5YWx55SfID4ga3lvdXNlaVwgOwor5qip55uKID4ga2VuJydla2lcIDsKK+W5u+aDkSA+IGdlbndha3VcIDsKK+i7ouiQvSA+IHRlbnJha3VcIDsKK+W5leaUvyA+IGJha3VzZWlcIDsKK+ecjOaciSA+IGtlbicneXV1XCA7Civov73mh5AgPiB0c3Vpa2FpXCA7CivprZrohbkgPiBneW9mdWt1XCA7CivpgJrluLggPiB0c3V1am91XCA7Civov73mhrYgPiB0c3Vpb2t1XCA7Civnm5vms4EgPiBzZWlreW91XCA7CivliJ3lv4MgPiBzaG9zaGluXCA7CivouorouocgPiBjaHV1Y2hvXCA7Civlt53njbogPiBrYXdhdXNvXCA7CivprLzok64gPiBvbmliYXN1XCA7CivnnJ/mka8gPiBzaGluc2hpXCA7Civnmobnm64gPiBrYWltb2t1XCA7Civnmb3noIIgPiBoYWt1c2hhXCA7CivpgJrlt7sgPiB0c3V1a2FuXCA7CivmrbTkuJYgPiByZWtpc2hpXCA7CivmpoLoqZUgPiBnYWloeW91XCA7CivlvIvkurogPiB5b2t1amluXCA7CivoiKrot6EgPiBrb3VzZWtpXCA7Civlh53mnJsgPiBneW91Ym91XCA7Civlgr7op5IgPiBrZWlrYWt1XCA7CivlhbjnjYQgPiB0ZW5nb2t1XCA7Civpr5vnhLwgPiB0YWl5YWtpXCA7CivpganlkIggPiB0ZWtpZ291XCA7CivliofliaQgPiBnZWtpemFpXCA7CivliKXluK0gPiBiZXNzZWtpXCA7CivlhYPnpoQgPiBnZW5yb2t1XCA7Civov73mg7MgPiB0c3Vpc291XCA7Civlgr7opoYgPiBrZWlmdWt1XCA7CivprZrogokgPiBneW9uaWt1XCA7Civov73mgrwgPiB0c3VpdG91XCA7CivlhaXnlKggPiBueXV1eW91XCA7Civnmb3nnLwgPiBoYWt1Z2FuXCA7Civpq5jpgLIgPiBrb3VzaGluXCA7CivojZLmpa0gPiBhcmF3YXphXCA7Civnl5voq5YgPiB0c3V1cm9uXCA7CivliLrlrZAgPiBzYXNoaWtvXCA7CivmraPkvZMgPiBzaG91dGFpXCA7CivpgIblvpIgPiBneWFrdXRvXCA7Civpq5jpgJ8gPiBrb3Vzb2t1XCA7CivlsbHpupMgPiBzYW5yb2t1XCA7CivlubzlvLEgPiB5b3VqYWt1XCA7Civov47mmKUgPiBnZWlzaHVuXCA7Civnmb3nm64gPiBzaGlyb21lXCA7CivliJflvLcgPiByZWtreW91XCA7CivovrLmpa0gPiBub3VneW91XCA7CivliIfmhJsgPiBzZXRzdWFpXCA7CivlgJnps6UgPiBrb3VjaG91XCA7CivpgoTkv5cgPiBnZW56b2t1XCA7CivpgJ/lsIQgPiBzb2t1c2hhXCA7Civov7fmg5EgPiBtZWl3YWt1XCA7CivluoPlt54gPiBrb3VzaHV1XCA7CivpgLzloZ4gPiBoaXNzb2t1XCA7CivlubPlvqkgPiBoZWlmdWt1XCA7Civnmb3nmawgPiBoYWt1c2VuXCA7Civnl5voqIAgPiB0c3V1Z2VuXCA7CivliJ3lt7MgPiBoYXRzdW1pXCA7Civnlr7otbAgPiBzaGlzc291XCA7CivliJfluqcgPiByZXRzdXphXCA7CivnnYDluqcgPiBjaGFrdXphXCA7CivlhbHniq8gPiBreW91aGFuXCA7CivojLbmrrsgPiBjaGFnYXJhXCA7Civov73lvpMgPiB0c3VpanV1XCA7CivmraPkuK0gPiBzZWljaHV1XCA7CivouqzooYwgPiBreXV1a291XCA7Civnmb3nl7QgPiBoYWt1Y2hpXCA7Civlh7bmiYsgPiBreW91c2h1XCA7CivluILms4EgPiBzaGlreW91XCA7CivliJfluK0gPiByZXNzZWtpXCA7CivluJ3mpa0gPiB0ZWlneW91XCA7CivliY3lnoIgPiBtYWVkYXJlXCA7CivnnKnmg5EgPiBnZW53YWt1XCA7Civlv7XjgIUgPiBuZW4nJ25lblwgOwor552A5belID4gY2hha2tvdVwgOwor5Ymy5YuYID4gd2FyaWthblwgOwor6YCA5bqBID4gdGFpY2hvdVwgOwor55m655a5ID4gaG9zc2hpblwgOwor5bm05bm0ID4gbmVuJyduZW5cIDsKK+mzpeS6uiA+IGNob3VqaW5cIDsKK+i/juaSgyA+IGdlaWdla2lcIDsKK+mAsuWhgSA+IHNoaW5ydWlcIDsKK+WJo+WRkSA+IGtlbicnbm9uXCA7CivlhpLmtpwgPiBib3V0b2t1XCA7CivmpJzpj6EgPiBrZW5reW91XCA7CivlhYjnmocgPiBzZW4nJ25vdVwgOwor6YCA5bitID4gdGFpc2VraVwgOwor5Yil5a60ID4gYmV0c3VlblwgOwor6YCx5aCxID4gc2h1dWhvdVwgOwor5Ymy5YmNID4gd2FyaW1hZVwgOwor5YaG5ruRID4gZW5rb3RzdVwgOwor5Yil5a6FID4gYmV0dGFrdVwgOwor5YWN55arID4gbWVuJydla2lcIDsKK+ebm+alrSA+IHNlaWd5b3VcIDsKK+WyoemZtSA+IGtvdXJ5b3VcIDsKK+WJsuWIpCA+IHdhcmloYW5cIDsKK+i7uOe3miA+IGppa3VzZW5cIDsKK+mrmOi2syA+IGtvdXNva3VcIDsKK+WEquengCA+IHl1dXNodXVcIDsKK+WBtOi+uiA+IHNva3VoZW5cIDsKK+asoOWToSA+IGtldHN1aW5cIDsKK+ajkumxiCA+IGJvdWRhcmFcIDsKK+WFpeeJqSA+IGlyZW1vbm9cIDsKK+WFpeeJoiA+IG55dXVyb3VcIDsKK+ecn+aDhSA+IHNoaW5qb3VcIDsKK+mBuOS7uyA+IHNlbicnbmluXCA7Civlh7bmgqogPiBreW91YWt1XCA7CivliJ3lr6kgPiBzaG9zaGluXCA7CivnlarplbcgPiBiYW5jaG91XCA7CivlubzlsJEgPiB5b3VzaG91XCA7CivojYnmnKggPiBzb3Vtb2t1XCA7Civlho3ms6ggPiBzYWljaHV1XCA7Civnm67mmJ8gPiBtZWJvc2hpXCA7CivnnJ/mgKcgPiBzaGluc2VpXCA7Civlub3lr4IgPiB5dXVqYWt1XCA7CivlibXlgrcgPiBzb3VzaG91XCA7CivlgbTou4ogPiBzb2t1c2hhXCA7CivlhajnhLwgPiB6ZW5zaG91XCA7CivliJ3lrZAgPiBoYXRzdWdvXCA7Civlg5roiaYgPiByeW91a2FuXCA7Civlh7rlvoEgPiBzaHVzc2VpXCA7Civlub3lrqIgPiB5dXVrYWt1XCA7CivliIblt7sgPiBidW5tYWtpXCA7CivpgJrlpb0gPiB0c3V1a291XCA7CivoiIjotqMgPiBreW91c2h1XCA7CivliaPliocgPiBrZW5nZWtpXCA7Civnmannl4UgPiByYWlieW91XCA7CivpgJrlpY8gPiB0c3V1c291XCA7CivnlqPotrMgPiBpYm9hc2hpXCA7Civoia/og70gPiByeW91bm91XCA7CivovInnqY0gPiBzYWlzZWtpXCA7CivojLbmo5ogPiBjaGFkYW5hXCA7CivlubzlrZAgPiBvc2FuYWdvXCA7CivpgankvosgPiB0ZWtpcmVpXCA7CivmpJzph50gPiBrZW5zaGluXCA7Civlh7rlu7cgPiBzaHV0dGVpXCA7CivliY3lk6ggPiB6ZW5zaG91XCA7CivltKnokL0gPiBob3VyYWt1XCA7CivnnJ/lvbEgPiBzaGluJydlaVwgOwor5bm05bCRID4gbmVuc2hvdVwgOwor5bmj5bibID4gaGVpaGFrdVwgOwor5Ye25by+ID4ga3lvdWRhblwgOwor6YCf5aCxID4gc29rdWhvdVwgOwor55Sy6auYID4ga291ZGFrYVwgOwor55m954q2ID4gaGFrdWpvdVwgOwor6YGp5Lu7ID4gdGVraW5pblwgOwor5Yi25ZynID4gc2VpYXRzdVwgOwor5Ymb5YqbID4gZ291cmlraVwgOwor55a+6KaWID4gc2hpc3NoaVwgOwor6Ium54axID4ga3VuZXRzdVwgOwor55m654uCID4gaGFra3lvdVwgOwor5Ym15L2cID4gc291c2FrdVwgOwor5qqE5paHID4gZ2VraWJ1blwgOwor5YaF5rGgID4gdWNoaWlrZVwgOwor55uu5pKlID4gbWViYWNoaVwgOwor5YGP6YedID4gaGVuc2hpblwgOwor6YCA5a2mID4gdGFpZ2FrdVwgOwor5YGP6YeNID4gaGVuY2hvdVwgOwor5bm05a2QID4gdG9zaGlnb1wgOwor6YCa5aCxID4gdHN1dWhvdVwgOwor5YKN6Ki8ID4gYm91c2hvdVwgOwor5YKN6Ki7ID4gYm91Y2h1dVwgOwor5Ye65biGID4gc2h1cHBhblwgOwor5Ymj5YWIID4ga2Vuc2FraVwgOwor5YWI546LID4gc2VuJydub3VcIDsKK+WHtuW5tCA+IGt5b3VuZW5cIDsKK+ecn+W5syA+IG1hcHBpcmFcIDsKK+eZkuedgCA+IHl1Y2hha3VcIDsKK+WJr+S9vyA+IGZ1a3VzaGlcIDsKK+mrmOiqvyA+IGtvdWNob3VcIDsKK+iOq+WkpyA+IGJha3VkYWlcIDsKK+WJjeWOhCA+IG1hZXlha3VcIDsKK+mtmuernCA+IGd5b3J5dXVcIDsKK+WFsea4iCA+IGt5b3VzYWlcIDsKK+WFh+eMmyA+IGt5b3Vtb3VcIDsKK+i/t+WuriA+IG1laWt5dXVcIDsKK+mBheWIuyA+IGNoaWtva3VcIDsKK+ebuOaJvyA+IHNvdXNob3VcIDsKK+mrmOiplSA+IGtvdWh5b3VcIDsKK+W5lOW5lSA+IG1hbm1ha3VcIDsKK+ajrumWkSA+IHNoaW5rYW5cIDsKK+mAsuWRiCA+IHNoaW50ZWlcIDsKK+i+n+aYkyA+IGhla2lla2lcIDsKK+WFh+eKtiA+IGt5b3Vqb3VcIDsKK+WFpea8gSA+IG55dXVneW9cIDsKK+ebtOaKqyA+IGNob2t1aGlcIDsKK+eZuueFmSA+IGhhdHN1ZW5cIDsKK+iIn+ihjCA+IHNodXVrb3VcIDsKK+WyuOi+uiA+IGtpc2hpYmVcIDsKK+mrmOinkiA+IGtvdWtha3VcIDsKK+mBk+S/lyA+IGRvdXpva3VcIDsKK+mAsuWPliA+IHNoaW5zaHVcIDsKK+iGqOmahiA+IGJvdXJ5dXVcIDsKK+WAjemhjSA+IGJhaWdha3VcIDsKK+ebruaMhyA+IG1va3VzaGlcIDsKK+mtlOeqnyA+IG1ha3V0c3VcIDsKK+WHneW/tSA+IGd5b3VuZW5cIDsKK+W3oeattCA+IGp1bnJla2lcIDsKK+WxsemggiA+IHNhbmNob3VcIDsKK+i7ouexjSA+IHRlbnNla2lcIDsKK+WFpea5ryA+IG55dXV0b3VcIDsKK+W5veWigyA+IHl1dWt5b3VcIDsKK+WHuuWxlSA+IHNodXR0ZW5cIDsKK+iNkuaKgCA+IGFyYXdhemFcIDsKK+WFpea4ryA+IG55dXVrb3VcIDsKK+WFpea4oCA+IG55dXVreW9cIDsKK+iLm+eDiCA+IGthcmV0c3VcIDsKK+WFieeFpyA+IGtvdXNob3VcIDsKK+i/q+WusyA+IGhha3VnYWlcIDsKK+WFq+a0siA+IHlhc2hpbWFcIDsKK+i9n+ayiCA+IGdvdWNoaW5cIDsKK+ecjOW6gSA+IGtlbmNob3VcIDsKK+WHoeW6uCA+IGJvbicneW91XCA7CivnmYfnmZYgPiBrYW5wZWtpXCA7CivoibLntKAgPiBzaGlraXNvXCA7Civov5HlubQgPiBraW4nJ25lblwgOwor55u05oSfID4gY2hva2thblwgOwor55uG5pquID4gYm9ua3VyZVwgOwor6LmJ6LeMID4gc2F0ZXRzdVwgOwor5bm05aKXID4gdG9zaGltYVwgOwor6YGK5L6gID4geXV1a3lvdVwgOwor5YmN5YWGID4gemVuY2hvdVwgOwor55mH55eHID4ga2Fuc2hvdVwgOwor6L2i5q27ID4gcmVraXNoaVwgOwor6YGT5Li7ID4gZG91c2h1dVwgOwor5YeL5oK0ID4gY2hvdXN1aVwgOwor5YOn57GNID4gc291c2VraVwgOwor6YGT5LitID4gZG91Y2h1dVwgOwor5bGx6Zm9ID4gc2FuJyd5b3VcIDsKK+W3pealrSA+IGtvdWd5b3VcIDsKK+WxsemZtSA+IHNhbnJ5b3VcIDsKK+asoOS8uCA+IGtlbnNoaW5cIDsKK+mBiuS8kSA+IHl1dWt5dXVcIDsKK+eXmOiLlyA+IHRvdWJ5b3VcIDsKK+W5veWbmiA+IHl1dXNodXVcIDsKK+mAseWIiiA+IHNodXVrYW5cIDsKK+W6luWOqCA+IGhvdWNodXVcIDsKK+WAkumWoyA+IHRvdWtha3VcIDsKK+WIl+WbvSA+IHJla2tva3VcIDsKK+edo+WKsSA+IHRva3VyZWlcIDsKK+W3oealrSA+IGp1bmd5b3VcIDsKK+aomea6liA+IGh5b3VqdW5cIDsKK+iPiuWIpCA+IGtpa3ViYW5cIDsKK+eUo+mhjSA+IHNhbmdha3VcIDsKK+mAseWGhSA+IHNodXVuYWlcIDsKK+WCvuiBtCA+IGtlaWNob3VcIDsKK+mwu+WxiyA+IHVuYWdpeWFcIDsKK+W4r+W/gyA+IG9iaXNoaW5cIDsKK+WFpeawtCA+IG55dXVzdWlcIDsKK+WItuWLnSA+IHNlaXNob3VcIDsKK+WIu+WIuyA+IGtva2tva3VcIDsKK+WCmeiThCA+IGJpY2hpa3VcIDsKK+iIiOihjCA+IGtvdWd5b3VcIDsKK+mAmuWQjSA+IHRvb3JpbmFcIDsKK+i7jeexjSA+IGd1bnNla2lcIDsKK+iIueiItiA+IHNlbnBha3VcIDsKK+mAo+WLnSA+IHJlbnNob3VcIDsKK+mAmuWPsiA+IHRzdXVzaGlcIDsKK+ebtOW+jCA+IGNob2t1Z29cIDsKK+ebtOW+hCA+IGNob2trZWlcIDsKK+ebtOW+gCA+IGNob2t1b3VcIDsKK+S/rumkiiA+IHNodXV5b3VcIDsKK+WFh+a8oiA+IGt5b3VrYW5cIDsKK+eXheiPjCA+IGJ5b3VraW5cIDsKK+WDreensCA+IHNlbnNob3VcIDsKK+WHuuWllCA+IHNodXBwb25cIDsKK+i+m+aKsSA+IHNoaW5ib3VcIDsKK+alveiBliA+IGdha3VzZWlcIDsKK+WBpeiouiA+IGtlbnNoaW5cIDsKK+i7veeXhyA+IGtlaXNob3VcIDsKK+iIueiFuSA+IHNlbnB1a3VcIDsKK+eZvea0siA+IHNoaXJhc3VcIDsKK+WHoeWwjyA+IGJvbnNob3VcIDsKK+WJjeS7uyA+IHplbicnbmluXCA7Civlt6jmnKggPiBreW9ib2t1XCA7CivoiKzoi6UgPiBoYW4nJ255YVwgOwor5YK36ICFID4gc2hvdXNoYVwgOwor5YaG5puyID4gZW5reW9rdVwgOwor5bC+6aqoID4gYmlrb3RzdVwgOwor5YaF5pyNID4gbmFpZnVrdVwgOwor5bqD5ZGKID4ga291a29rdVwgOwor6Iqd55SfID4gc2hpYmFmdVwgOwor6YCa5YukID4gdHN1dWtpblwgOwor6Ieq6KqsID4gamlzZXRzdVwgOwor5YWF5rqiID4ganV1aXRzdVwgOwor55yL5a6iID4ga2Fua2FrdVwgOwor6Iy25omYID4gY2hhdGFrdVwgOwor55yf5aSPID4gbWFuYXRzdVwgOwor5Ye25aSJID4ga3lvdWhlblwgOwor6L665bmFID4gaGVucHVrdVwgOwor5bqX5YaFID4gdGVuJyduYWlcIDsKK+WIuuWCtyA+IHNoaXNob3VcIDsKK+W3neafsyA+IHNlbnJ5dXVcIDsKK+eZuuazqCA+IGhhdGNodXVcIDsKK+alreiFuSA+IGdvdWhhcmFcIDsKK+iJr+eoriA+IHJ5b3VzaHVcIDsKK+WFseajsiA+IGt5b3VzZWlcIDsKK+WAn+mHkSA+IHNoYWtraW5cIDsKK+WJiuS6lSA+IHNha3VzZWlcIDsKK+eVsOizqiA+IGlzaGl0c3VcIDsKK+W6j+WIlyA+IGpvcmV0c3VcIDsKK+mAn+WGmSA+IHNva3VzaGFcIDsKK+WAkumMryA+IHRvdXNha3VcIDsKK+W4neW+syA+IHRlaXRva3VcIDsKK+mAmuWIhiA+IHRzdXVidW5cIDsKK+i/veWWhCA+IHRzdWl6ZW5cIDsKK+WFvOaciSA+IGtlbicneXV1XCA7Civlh7bloLEgPiBreW91aG91XCA7CivmpJzoqo0gPiBrZW4nJ25pblwgOwor6I2S5be7ID4gYXJhbWFraVwgOwor55eF6IiOID4gYnlvdXNoYVwgOwor6Iie6Iy4ID4gbWFpdGFrZVwgOwor5qKf6aaWID4ga3lvdXNodVwgOwor6YCx5LukID4gc2h1dXJlaVwgOwor5YeG5beeID4ganVuc2h1dVwgOwor5YWx5qCTID4gdG9tb3NlblwgOwor5qSc6Ki8ID4ga2Vuc2hvdVwgOwor5qSc6Ki6ID4ga2Vuc2hpblwgOwor5bi45a6/ID4gam91eWFkb1wgOwor5L+h6aC8ID4gc2hpbnJhaVwgOwor5YWJ5rKiID4ga291dGFrdVwgOwor5bid5bufID4gdGVpYnlvdVwgOwor5Ye55ZywID4ga3Vib2NoaVwgOwor5Ye45Z2KID4gZGVrb2JvdVwgOwor6IWx6Z6YID4ga2Vuc2hvdVwgOwor6LuN56WoID4gZ3VucHlvdVwgOwor55ub5b6zID4gc2VpdG9rdVwgOwor55Sf6ZW3ID4gc2VpY2hvdVwgOwor5qWt6ICFID4gZ3lvdXNoYVwgOwor6LuN56WeID4gZ3Vuc2hpblwgOwor5YWl5qO6ID4gbnl1dWthblwgOwor6LmI6KWyID4gdG91c2h1dVwgOwor6YCy5LiKID4gc2hpbmpvdVwgOwor6Iif6ImHID4gc2h1dXRlaVwgOwor5bm95YudID4geXV1c2hvdVwgOwor5beo5pOYID4ga3lvaGFrdVwgOwor6Iif6IiqID4gc2h1dWtvdVwgOwor5qiq5qOSID4geW9rb2JvdVwgOwor5Yi25L2cID4gc2Vpc2FrdVwgOwor5bm05Y+OID4gbmVuc2h1dVwgOwor5YeL5bC9ID4gY2hvdWppblwgOwor55uX5b+DID4gdG91c2hpblwgOwor5YWl5qKFID4gbnl1dWJhaVwgOwor6IWT6aqoID4gaGlrb3RzdVwgOwor5YWx5pyJID4ga3lvdXl1dVwgOwor6bCk5a2QID4gYnVyaWtrb1wgOwor55u45a6iID4gYWlreWFrdVwgOwor55yf5ZugID4gc2hpbicnaW5cIDsKK+i/veWPtyA+IHRzdWlnb3VcIDsKK+mAo+S9nCA+IHJlbnNha3VcIDsKK+WFjuasoCA+IHRva2V0c3VcIDsKK+WFhuawkSA+IGNob3VtaW5cIDsKK+WIpeWEgCA+IGJldHN1Z2lcIDsKK+WFpeagoSA+IG55dXVrb3VcIDsKK+iJr+efpSA+IHJ5b3VjaGlcIDsKK+mAo+S8kSA+IHJlbmt5dXVcIDsKK+WIh+WRsyA+IGtpcmVhamlcIDsKK+mAoOS9nCA+IHpvdXNha3VcIDsKK+WFreabuCA+IHJva3VzaG9cIDsKK+edgOWJoyA+IGNoYWtrZW5cIDsKK+WIhuWRqCA+IGJ1bnNodXVcIDsKK+WFreabnCA+IHJva3V5b3VcIDsKK+WFq+aclCA+IGhhc3Nha3VcIDsKK+WIquS/riA+IHNhbnNodXVcIDsKK+WHhuWwhiA+IGp1bnNob3VcIDsKK+ecjOWigyA+IGtlbmt5b3VcIDsKK+iFlemmliA+IHVkZWt1YmlcIDsKK+ecvOWKmyA+IGdhbnJpa2lcIDsKK+iNkuWvpSA+IGtvdXJ5b3VcIDsKK+mAmuS+iyA+IHRzdXVyZWlcIDsKK+WyrOinkiA+IGtvdWtha3VcIDsKK+aomeamnCA+IGh5b3Vib3VcIDsKK+WFpeadpSA+IG55dXVyYWlcIDsKK+eVpeitnCA+IHJ5YWt1ZnVcIDsKK+i9ouaWrSA+IHJla2lkYW5cIDsKK+i7oueUqCA+IHRlbicneW91XCA7CivnmpDmnIggPiBzYXRzdWtpXCA7CivpgKPkuK0gPiByZW5jaHV1XCA7CivlhYPmrYwgPiBtb3RvdXRhXCA7CivoibLnmb0gPiBpcm9qaXJvXCA7Civlsqnop5IgPiBpd2FrYWRvXCA7CivpgJPkv6EgPiB0ZWlzaGluXCA7CivlupbkuIEgPiBob3VjaG91XCA7CivojLblupcgPiBjaGFtaXNlXCA7Civlh53loYogPiBneW91a2FpXCA7CivpgIblhYkgPiBneWFra291XCA7Civmop/pm4QgPiBreW91eXV1XCA7Civlh7rlk4EgPiBzaHVwcGluXCA7CivmorXpkJggPiBib25zaG91XCA7CivoiLnntJogPiBzZW5reXV1XCA7CivovrLlraYgPiBub3VnYWt1XCA7CivpgJrkurogPiB0c3V1amluXCA7CivnlaXoqp4gPiByeWFrdWdvXCA7Civlg63nlKggPiBzZW4nJ3lvdVwgOwor6YCa5LqkID4gdHN1dWtvdVwgOwor6LiK6LqNID4geW91eWFrdVwgOwor6Iy25bitID4gY2hhc2VraVwgOwor6L+95YiKID4gdHN1aWthblwgOwor55So6YePID4geW91cnlvdVwgOwor6Ieq6JmQID4gamlneWFrdVwgOwor6ay855WcID4ga2ljaGlrdVwgOwor6IWQ6aOfID4gZnVzaG9rdVwgOwor5bm05YaFID4gbmVuJyduYWlcIDsKK+WFrOaVtSA+IGtvdXRla2lcIDsKK+WCjeiBtCA+IGJvdWNob3VcIDsKK+W3puaKmCA+IHNhc2V0c3VcIDsKK+WFrOaVmSA+IGtvdWt5b3VcIDsKK+eZveahgyA+IGhha3V0b3VcIDsKK+iLpeaenSA+IHdha2FlZGFcIDsKK+WHuuWQkSA+IHNodWtrb3VcIDsKK+i/keWbvSA+IGtpbmdva3VcIDsKK+iIueexjSA+IHNlbnNla2lcIDsKK+WFg+aomSA+IGdlbnB5b3VcIDsKK+WHuuWPoyA+IGRlZ3VjaGlcIDsKK+WIh+WJiiA+IHNlc3Nha3VcIDsKK+eVpeinoyA+IHJ5YWtrYWlcIDsKK+WIgOWMoCA+IHRvdXNob3VcIDsKK+eZuuahiCA+IGhhdHN1YW5cIDsKK+eUo+mHjyA+IHNhbnJ5b3VcIDsKK+i7n+eQgyA+IG5hbmt5dXVcIDsKK+WIpeS6iyA+IGJldHN1amlcIDsKK+S/rumMrCA+IHNodXVyZW5cIDsKK+ebtOWljyA+IGppa2lzb3VcIDsKK+W4guW6gSA+IHNoaWNob3VcIDsKK+iIque2miA+IGtvdXpva3VcIDsKK+iJr+eUsCA+IHJ5b3VkZW5cIDsKK+i2s+mfsyA+IGFzaGlvdG9cIDsKK+WFiOajkiA+IHNha2lib3VcIDsKK+WIiOWFpSA+IGthcmlpcmVcIDsKK+eZveacqCA+IHNoaXJha2lcIDsKK+aomeacrCA+IGh5b3Vob25cIDsKK+eah+aXjyA+IGtvdXpva3VcIDsKK+WHuuWLpCA+IHNodWtraW5cIDsKK+eZveabuCA+IGhha3VzaG9cIDsKK+i+uuWigyA+IGhlbmt5b3VcIDsKK+mAgeS/oSA+IHNvdXNoaW5cIDsKK+i7jeeUqCA+IGd1bicneW91XCA7CivliJ3kubMgPiBzaG9ueXV1XCA7CivlubPkv6EgPiBoZWlzaGluXCA7Civnmb7mma8gPiBoeWFra2VpXCA7CivojZLlo4EgPiBhcmFrYWJlXCA7CivlhavmjpsgPiBoYWtrYWtlXCA7CivovKrmpa0gPiByaW5neW91XCA7CivojLblr64gPiBjaGFyeW91XCA7CivlubPkvZwgPiBoZWlzYWt1XCA7Civnm7Lln7cgPiBtb3VzaHV1XCA7CivnlJjphZIgPiBhbWF6YWtlXCA7CivlhYnmnZ8gPiBrb3Vzb2t1XCA7CivlhYPmoJMgPiBtb3Rvc2VuXCA7CivlhavmjLogPiBoYXRjaG91XCA7CivnnJ/liaMgPiBzaGlua2VuXCA7Civlh7nlh7ggPiBvdXRvdHN1XCA7CivovpvlrZAgPiBrYXJhc2hpXCA7Civlh7jlh7kgPiB0b3RzdW91XCA7Civnmb7mlrkgPiBoeWFwcG91XCA7CivlubPkvI8gPiBoZWlmdWt1XCA7CivlhoXlv4MgPiBuYWlzaGluXCA7CivlgbTog4wgPiBzb2t1aGFpXCA7CivnmYLms5UgPiByeW91aG91XCA7CivlhaXmjpsgPiBpcmVrYWt1XCA7Civov7fkv6EgPiBtZWlzaGluXCA7Civlh7bliIMgPiBreW91amluXCA7Civlh7rlhbggPiBzaHV0dGVuXCA7Civlh7rlhbUgPiBzaHVwcGVpXCA7Civnmb3mlpEgPiBoYWt1aGFuXCA7CivliIDlgrcgPiB0b3VzaG91XCA7CivpgIDkuqwgPiB0YWlreW91XCA7Civnmb3mlocgPiBoYWt1YnVuXCA7Civlh7jlhoYgPiB0b3RzdWVuXCA7CivlsbHos4ogPiBzYW56b2t1XCA7CivnnLzkuK0gPiBnYW5jaHV1XCA7CivlgbTogZ4gPiBzb2t1YnVuXCA7Civmpa3nqK4gPiBneW91c2h1XCA7CivlhYfmmrQgPiBreW91Ym91XCA7CivlhavmiYsgPiB5YXRzdWRlXCA7CivoibLniakgPiBpcm9tb25vXCA7CivlhYPmnJ0gPiBnZW5jaG91XCA7Civnl7Pnl4UgPiByaW5ieW91XCA7CivlhYPmnI0gPiBnZW5wdWt1XCA7Civkv67pgZMgPiBzaHV1ZG91XCA7Civlh7blhZogPiBreW91dG91XCA7CivlhYvmmI4gPiBrb2t1bWVpXCA7CivlubTkuIogPiB0b3NoaXVlXCA7Civkv6Hph5EgPiBzaGlua2luXCA7CivlhYnmmI4gPiBrb3VteW91XCA7CivlhbHmhJ8gPiBreW91a2FuXCA7Civlt6Xlu6AgPiBrb3VzaG91XCA7Civpq5jntaYgPiBrb3VreXV1XCA7Civkv53ph4ggPiBob3NoYWt1XCA7CivlhaXmiYsgPiBueXV1c2h1XCA7CivlhaXmiYAgPiBueXV1c2hvXCA7Civov7DkvZwgPiBqdXNzYWt1XCA7CivlhoXluZUgPiBuYWltYWt1XCA7CivmqZ/lr4YgPiBraW1pdHN1XCA7CivouI/opbIgPiB0b3VzaHV1XCA7Civpq5jntJogPiBrb3VreXV1XCA7Civnm7TllrYgPiBjaG9rdWVpXCA7Civnm7TllqkgPiBjaG9rdXl1XCA7CivlsI/pnaIgPiBzaG91bWVuXCA7CivlsL/phbggPiBueW91c2FuXCA7CivovpvlpLcgPiBrb2J1c2hpXCA7Civlha3mg4UgPiByb2t1am91XCA7Civpq5jnsrEgPiBrb3VyeWFuXCA7CivlsI/pm6MgPiBzaG91bmFuXCA7CivlsYDpg6ggPiBreW9rdWJ1XCA7CivluJ3lm70gPiB0ZWlrb2t1XCA7Civlh7rkvJogPiBzaHVra2FpXCA7CivlsI/pmoogPiBzaG91dGFpXCA7CivprLHnhLYgPiB1dHN1emVuXCA7CivlhbHlvbkgPiBreW91ZWtpXCA7Civlh7rku5UgPiBzaHVzc2hpXCA7Civlgrfnl5UgPiBzaG91a29uXCA7Civlho3lr6kgPiBzYWlzaGluXCA7CivnnIzlhoUgPiBrZW4nJ25haVwgOwor55Sz6KuLID4gc2hpbnNlaVwgOwor55m65oyvID4gaGFzc2hpblwgOwor5bC/6YGTID4gbnlvdWRvdVwgOwor5YG057eaID4gc29rdXNlblwgOwor5YWs5b6zID4ga291dG9rdVwgOwor5bCR6ZaiID4gc2hvdWthblwgOwor5bi45YudID4gam91c2hvdVwgOwor5bCR6ZaRID4gc2hvdWthblwgOwor5Yal5aKDID4gbWVpa3lvdVwgOwor55yf5Lq6ID4gc2hpbmppblwgOwor55m95omHID4gaGFrdXNlblwgOwor5bCP6ZaRID4gc2hvdWthblwgOwor5Ya35ZiyID4gcmVpY2hvdVwgOwor5YWo5b+DID4gemVuc2hpblwgOwor55eb55eSID4gdHN1dXlvdVwgOwor6aa06bm/ID4gdG9uYWthaVwgOwor55u05Y+CID4gamlraXNhblwgOwor5YWl5b+1ID4gbnl1dW5lblwgOwor6ISK6auEID4gc2VraXp1aVwgOwor55yf5LiLID4gbWFzaGl0YVwgOwor5YaG5a6JID4gZW4nJ3lhc3VcIDsKK+WwiumVtyA+IHNvbmNob3VcIDsKK+WFrOW6gSA+IGtvdWNob3VcIDsKK+i/lOS/oSA+IGhlbnNoaW5cIDsKK+WBveethiA+IGdpaGl0c3VcIDsKK+ebuOWJiyA+IHNvdWtva3VcIDsKK+W4q+WMoCA+IHNoaXNob3VcIDsKK+iGneihjCA+IHNoaWtrb3VcIDsKK+i7ouazqCA+IHRlbmNodXVcIDsKK+WFpeW7tyA+IG55dXV0ZWlcIDsKK+S/l+i8qSA+IHpva3VoYWlcIDsKK+iEmumfuyA+IGt5YWt1aW5cIDsKK+W3peWtpiA+IGtvdWdha3VcIDsKK+WHoeS/lyA+IGJvbnpva3VcIDsKK+WvkumukiA+IGthbmJ1bmFcIDsKK+alreeXhSA+IGdvdWJ5b3VcIDsKK+i+suWNmiA+IG5vdWhha3VcIDsKK+i+suWNlCA+IG5vdWt5b3VcIDsKK+WFh+aJiyA+IGt5b3VzaHVcIDsKK+WFqOW5hSA+IHplbnB1a3VcIDsKK+WFq+W3niA+IHlhc2hpbWFcIDsKK+WFqOW4rSA+IHplbnNla2lcIDsKK+mrmOemhCA+IGtvdXJva3VcIDsKK+i/keS9nCA+IGtpbnNha3VcIDsKK+iNt+S4uyA+IG5pbnVzaGlcIDsKK+iJr+a4ryA+IHJ5b3Vrb3VcIDsKK+WvuOmamSA+IHN1bmdla2lcIDsKK+WHoeS9nCA+IGJvbnNha3VcIDsKK+alreeVjCA+IGd5b3VrYWlcIDsKK+ebuOWFiyA+IHNvdWtva3VcIDsKK+ebruWJjSA+IG1va3V6ZW5cIDsKK+WyqeiCjCA+IGl3YWhhZGFcIDsKK+WHoeS6uiA+IGJvbicnbmluXCA7Civkv6HosqkgPiBzaGlucGFuXCA7Civkv5fotqMgPiB6b2t1c2h1XCA7Civkv67oq5YgPiBzaHV1cm9uXCA7Civlt6flppkgPiBrb3VteW91XCA7CivlhbXlraYgPiBoZWlnYWt1XCA7CivnlLDonrogPiB0YW5pc2hpXCA7Civnmbrlv4MgPiBob3NzaGluXCA7Civlh43lgrcgPiB0b3VzaG91XCA7CivnlKPopKUgPiBzYW5qb2t1XCA7CivlsI/pioMgPiBzaG91anV1XCA7Civoia/ms5UgPiByeW91aG91XCA7CivlhYfmgqogPiBreW91YWt1XCA7Civkvr/pgJogPiBiZW50c3V1XCA7CivlsI/piaIgPiBrb2JhY2hpXCA7Civoi6XlubQgPiBqYWt1bmVuXCA7CivlhYfmgo0gPiBreW91a2FuXCA7CivotaTpo68gPiBzZWtpaGFuXCA7CivluJ3liocgPiB0ZWlnZWtpXCA7CivlhbHlrZggPiBreW91em9uXCA7CivnnIHku6QgPiBzaG91cmVpXCA7Civoh6rnspsgPiBqaXNodWt1XCA7Civnmb7luqYgPiBoeWFrdWRvXCA7CivlhoXlo4EgPiBuYWloZWtpXCA7Civkv67oqIIgPiBzaHV1dGVpXCA7CivlhY3lvbkgPiBtZW4nJ2VraVwgOwor55a+55eFID4gc2hpcHBlaVwgOwor5YWD5oKqID4gZ2VuJydha3VcIDsKK+eWvOeXmyA+IHRvdXRzdXVcIDsKK+Wus+mzpSA+IGdhaWNob3VcIDsKK+WCjeeZvSA+IGJvdWhha3VcIDsKK+aknOe0oiA+IGtlbnNha3VcIDsKK+iJr+awkSA+IHJ5b3VtaW5cIDsKK+WFqOWvriA+IHplbnJ5b3VcIDsKK+WFpeWxhSA+IG55dXVreW9cIDsKK+eUsuiZqyA+IGtvdWNodXVcIDsKK+i6geeXhSA+IHNvdWJ5b3VcIDsKK+eZu+W6gSA+IHRvdWNob3VcIDsKK+WFqOWuuSA+IHplbicneW91XCA7CivlhaXlsIQgPiBueXV1c2hhXCA7CivnlLDomasgPiB0YW11c2hpXCA7Civnm7Lkv6EgPiBtb3VzaGluXCA7Civnmb3luIYgPiBzaGlyYWhvXCA7Civpq5jnm7QgPiBrb3VqaWtpXCA7Civohr/og7ggPiBub3VreW91XCA7CivlsIrph40gPiBzb25jaG91XCA7CivnlJ/ooYAgPiBuYW1hY2hpXCA7CivlhaXlr4cgPiBueXV1a291XCA7CivlhajlraYgPiB6ZW5nYWt1XCA7CivlhYflvL4gPiBreW91ZGFuXCA7CivlhaXlrpogPiBueXV1am91XCA7Civou6Lmpa0gPiB0ZW5neW91XCA7CivlsYjoqJcgPiBrdXR0YWt1XCA7Civnm7TkvJ0gPiBqaWtpZGVuXCA7CivojLbljJkgPiBjaGFzYWppXCA7Civoh6rnrYYgPiBqaWhpdHN1XCA7Civoi5fluoogPiBuYWVkb2tvXCA7CivotaTpnaIgPiBzZWtpbWVuXCA7CivovpvlirQgPiBzaGlucm91XCA7CivlhYTlvJ8gPiBreW91ZGFpXCA7Civkv4ros6IgPiBzaHVua2VuXCA7CivlhazlqLwgPiBrb3VzaG91XCA7CivlhoXlnKcgPiBuYWlhdHN1XCA7Civnl5vngrkgPiB0c3V1dGVuXCA7Civnm7TkuqQgPiBjaG9ra291XCA7CivlhYjlubQgPiBzZW4nJ25lblwgOwor55ax55a5ID4gaG91c2hpblwgOwor5L+X6KyhID4gem9rdXlvdVwgOwor6a6u5bCRID4gc2Vuc2hvdVwgOwor5bCP6YGTID4ga29taWNoaVwgOwor6Ieq56uLID4gamlyaXRzdVwgOwor5L+u6KGMID4gc2h1Z3lvdVwgOwor5YaF5Zu9ID4gbmFpa29rdVwgOwor5L+X6Ku6ID4gem9rdWdlblwgOwor6IaP6JasID4ga291eWFrdVwgOwor6Iez56aPID4gc2hpZnVrdVwgOwor5a+66YqtID4gdGVyYXNlblwgOwor6L6y5L2cID4gbm91c2FrdVwgOwor5L+X6KumID4gem9rdXRhaVwgOwor5bCP6YCVID4gc2hvdWtlaVwgOwor5L+K6LGqID4gc2h1bmdvdVwgOwor5L+X6KuWID4gem9rdXJvblwgOwor55eH54q2ID4gc2hvdWpvdVwgOwor5L+X6KuHID4gem9rdWRhblwgOwor5bCO6YCaID4gZG91dHN1dVwgOwor6a2a5pePID4gZ3lvem9rdVwgOwor5YWl5am/ID4gaXJpbXVrb1wgOwor6Ie856CyID4ga3l1dWhvdVwgOwor5YO75p2RID4gaGVraXNvblwgOwor6a6o5bGLID4gc3VzaGl5YVwgOwor5YGl56WlID4ga2Vuc2hvdVwgOwor5a+E6aOfID4ga2lzaG9rdVwgOwor55m95bGxID4gaGFrdXNhblwgOwor55eF54q2ID4gYnlvdWpvdVwgOwor5YWD5bm0ID4gZ2FuJyduZW5cIDsKK+Wwj+i+siA+IHNob3Vub3VcIDsKK+W4reS4iiA+IHNla2lqb3VcIDsKK+iNkuS6iyA+IGFyYWdvdG9cIDsKK+ebo+S/riA+IGthbnNodXVcIDsKK+WBuOeblyA+IGNodXV0b3VcIDsKK+WDu+abuCA+IGhla2lzaG9cIDsKK+eVmee9riA+IHJ5dXVjaGlcIDsKK+i+m+WFmiA+IGthcmF0b3VcIDsKK+agvOmXmCA+IGtha3V0b3VcIDsKK+eVque1hCA+IGJhbmd1bWlcIDsKK+S/l+iogCA+IHpva3VnZW5cIDsKK+mtguafsSA+IGtvbmNodXVcIDsKK+i8quW7kyA+IHJpbmtha3VcIDsKK+eZvuWumCA+IGh5YWtrYW5cIDsKK+S9nOmiqCA+IHNha3VmdXVcIDsKK+mmrOmjnyA+IGJhc2hva3VcIDsKK+iJpuapiyA+IGthbmt5b3VcIDsKK+aomeWumiA+IGh5b3V0ZWlcIDsKK+iGqOiEuSA+IGJvdWNob3VcIDsKK+WAluiHoyA+IGtvdXNoaW5cIDsKK+aoquWlqiA+IG91ZGF0c3VcIDsKK+eZveWtkCA+IHNoaXJva29cIDsKK+W3qOWVhiA+IGt5b3Nob3VcIDsKK+WGjeWRiiA+IHNhaWtva3VcIDsKK+mnhemVtyA+IGVraWNob3VcIDsKK+i7jealvSA+IGd1bmdha3VcIDsKK+WxseiKiyA+IHlhbWFpbW9cIDsKK+W4neS6rCA+IHRlaWt5b3VcIDsKK+i8u+WwhCA+IGZ1a3VzaGFcIDsKK+WFpeWjsCA+IG5pc3Nob3VcIDsKK+i7veaNtyA+IGtlaXNob3VcIDsKK+WvhumbsiA+IG1pdHN1dW5cIDsKK+WCvuazqCA+IGtlaWNodXVcIDsKK+WFpeWiqCA+IGlyZXp1bWlcIDsKK+WvhumbhiA+IG1pc3NodXVcIDsKK+iDuOmWkyA+IGt5b3VrYW5cIDsKK+iJsuafhCA+IGlyb2dhcmFcIDsKK+iDjOmrmCA+IHNlaXRha2FcIDsKK+Wwhui7jSA+IHNob3VndW5cIDsKK+amguazgSA+IGdhaWt5b3VcIDsKK+WFqOWfnyA+IHplbicnaWtpXCA7CivoirPlv4MgPiBob3VzaGluXCA7CivlhaXloLQgPiBueXV1am91XCA7Civnm5fkvZwgPiB0b3VzYWt1XCA7CivlhYnlraYgPiBrb3VnYWt1XCA7CivlsbHohbkgPiBzYW5wdWt1XCA7CivlhYjlraYgPiBzZW5nYWt1XCA7CivohJrpg6ggPiBreWFrdWJ1XCA7Civlhazlm70gPiBrb3Vrb2t1XCA7CivlhaXln44gPiBueXV1am91XCA7Civog7TplbcgPiBkb3VuYWdhXCA7CivmqYvlj7AgPiBreW91ZGFpXCA7Civlg6fmnI0gPiBzb3VmdWt1XCA7CivpppjpppYgPiBrYWt1c2h1XCA7Civlho3li50gPiBzYWlzaG91XCA7CivohbnolLUgPiBmdWt1em91XCA7Civoia/mnZAgPiByeW91emFpXCA7CivnmYfmgKcgPiBrYW5zaG91XCA7CivkvY7poY0gPiB0ZWlnYWt1XCA7CivprZrmi5MgPiBneW90YWt1XCA7CivovJTlvLwgPiBob2hpdHN1XCA7Civlhajlm70gPiB6ZW5nb2t1XCA7CivlhaXlnZEgPiBueXV1a291XCA7CivovpvkuqUgPiBzaGluZ2FpXCA7Civoia/mm7ggPiByeW91c2hvXCA7CivlrrDpoJggPiBzYWlyeW91XCA7Civnmb3lpKogPiBzaGlyYXRhXCA7Civnmb3lpJwgPiBieWFrdXlhXCA7CivoubTniKogPiBrZWR6dW1lXCA7Civlt6jljKAgPiBreW9zaG91XCA7CivotaTpjIYgPiBha2FzYWJpXCA7CivlhaXlm6MgPiBueXV1ZGFuXCA7Civlt6XljZogPiBrb3VoYWt1XCA7CivlhYTlq4EgPiBhbml5b21lXCA7Civlt67liKUgPiBzYWJldHN1XCA7CivlhqrkuZcgPiBiZWtpam91XCA7Civou43mnI0gPiBndW5wdWt1XCA7Civlt6XljKAgPiBrb3VzaG91XCA7CivnlLLog4QgPiBrYXRjaHV1XCA7Civoh6rnmbogPiBqaWhhdHN1XCA7CivnlaLnq58gPiBoaWtreW91XCA7CivmoKHplrIgPiBrb3VldHN1XCA7Civnlo7nlaUgPiBzb3J5YWt1XCA7CivlsqnnpIEgPiBnYW5zaG91XCA7CivmoKHplbcgPiBrb3VjaG91XCA7CivlgrfmrY4gPiBzaG91dGFuXCA7CivoibLmlocgPiBpcm9idW1pXCA7Civnmoflm70gPiBrb3Vrb2t1XCA7CivpppbpoJggPiBzaHVyeW91XCA7CivotaTph5EgPiBha2FnYW5lXCA7CivpqZXogoYgPiBreW91c2hpXCA7CivlrabpvaIgPiBnYWt1cmVpXCA7CivlhbHlkIwgPiBreW91ZG91XCA7CivlrrXpl4cgPiB5b2l5YW1pXCA7CivlsI/oq5YgPiBzaG91cm9uXCA7CivlhYflpIkgPiBreW91aGVuXCA7CivkvZPplbcgPiB0YWljaG91XCA7CivlgZznlZkgPiB0ZWlyeXV1XCA7CivluILkuK0gPiBzaGljaHV1XCA7Civlsqnnn7MgPiBnYW5zZWtpXCA7CivohbnoirggPiBoYXJhZ2VpXCA7CivlhazlkYogPiBrb3Vrb2t1XCA7Civnmb3lnLAgPiBzaGlyb2ppXCA7CivmoLjphbggPiBrYWt1c2FuXCA7Civlha3lkIggPiByaWt1Z291XCA7CivoiLnmrYwgPiBmdW5hdXRhXCA7Civlr77osaEgPiB0YWlzaG91XCA7CivpqLDokL0gPiB0b3VyYWt1XCA7CivmpJznlqsgPiBrZW4nJ2VraVwgOwor6IWQ6J2VID4gZnVzaG9rdVwgOwor5a6a6aGNID4gdGVpZ2FrdVwgOwor5YGP55mWID4gaGVucGVraVwgOwor5bCP6KiIID4gc2hvdWtlaVwgOwor5YaF5YK3ID4gbmFpc2hvdVwgOwor5YW45YmHID4gdGVuc29rdVwgOwor5YWF5aGeID4ganV1c29rdVwgOwor5qOS57ieID4gYm91amltYVwgOwor5YWt5Y2BID4gcm9rdWp1dVwgOwor6LWk6YGTID4gc2VraWRvdVwgOwor5L216YCyID4gaGVpc2hpblwgOwor55Sf6IKJID4gc2VpbmlrdVwgOwor5qSN55quID4gc2hva3VoaVwgOwor5a6f6ZyAID4gaml0c3VqdVwgOwor5YWN5ZuaID4gbWVuc2h1dVwgOwor6aeG6YCQID4ga3VjaGlrdVwgOwor6aeQ6LuKID4gY2h1dXNoYVwgOwor5qCq6YeRID4ga2FidWtpblwgOwor6Ieq546JID4gamlneW9rdVwgOwor5a6/6YqtID4geWFkb3NlblwgOwor6aaW6ZW3ID4gc2h1Y2hvdVwgOwor6IW56IOMID4gZnVrdWhhaVwgOwor5YWo5YudID4gemVuc2hvdVwgOwor5p+x6aCtID4gY2h1dXRvdVwgOwor55eb5qOSID4gdHN1dWJvdVwgOwor55eF5q27ID4gYnlvdXNoaVwgOwor5YKN5rWBID4gYm91cnl1dVwgOwor5bCE6KeSID4gc2hha2FrdVwgOwor5a6i6ZaTID4ga3lha3VtYVwgOwor5bel5L2cID4ga291c2FrdVwgOwor5YSA5byPID4gZ2lzaGlraVwgOwor6LuK5o6MID4gc2hhc2hvdVwgOwor55Sw57SzID4gZGVuc2hpblwgOwor5YKN5rOoID4gYm91Y2h1dVwgOwor5a++6KizID4gdGFpeWFrdVwgOwor5YW85L+uID4ga2Vuc2h1dVwgOwor6LWk6LuNID4gc2VraWd1blwgOwor6ISC6LqrID4gYWJ1cmFtaVwgOwor5bOh5rm+ID4ga3lvdXdhblwgOwor6LuN5ouhID4gZ3Vua2FrdVwgOwor55m+5ZGzID4gaHlha3VtaVwgOwor5a++6KeSID4gdGFpa2FrdVwgOwor5p+x6Z2iID4gY2h1dW1lblwgOwor5beo5LmzID4ga3lvbnl1dVwgOwor5YWs5YWxID4ga291a3lvdVwgOwor5YWx5YONID4ga3lvdWRvdVwgOwor55S7562GID4gZ2FoaXRzdVwgOwor5L6b6KanID4ga3lvdXJhblwgOwor5a+46KmVID4gc3VucHlvdVwgOwor5YWx5YKsID4ga3lvdXNhaVwgOwor5YaF5LitID4gdWNoaWp1dVwgOwor5a656YePID4geW91cnlvdVwgOwor6IWr6IS5ID4gc2h1Y2hvdVwgOwor5a+G6YCaID4gbWl0dHN1dVwgOwor6Iif5q2MID4gZnVuYXV0YVwgOwor5YC255m6ID4gZ3VoYXRzdVwgOwor5YW85Lu7ID4ga2VuJyduaW5cIDsKK+WFrOWDlSA+IGtvdWJva3VcIDsKK+WFpeWGpiA+IG55dXVrb3VcIDsKK+S9k+mHjyA+IHRhaXJ5b3VcIDsKK+WFrOWCtyA+IGtvdXNob3VcIDsKK+Wul+mWgCA+IHNodXVtb25cIDsKK+iHhueXhSA+IG9rdWJ5b3VcIDsKK+WFqOWEqiA+IHplbicneXV1XCA7Civou73lsJEgPiBrZWlzaG91XCA7CivlhaXlhZogPiBueXV1dG91XCA7CivkvpHop7QgPiB5dXVzaG91XCA7CivlgY/ni60gPiBoZW5reW91XCA7CivnlaXnlLsgPiByeWFrdWdhXCA7Civkv7jntaYgPiBob3VreXV1XCA7Civlrr/pgYsgPiBzaHVrdXVuXCA7CivoiLnmnb8gPiBmdW5haXRhXCA7Civkv4roi7EgPiBzaHVuJydlaVwgOwor6Iqz5aKoID4gaG91Ym9rdVwgOwor5YGP54uCID4gaGVua3lvdVwgOwor55m+5YyBID4gaHlha3VtZVwgOwor55Sf57W5ID4gc3V6dXNoaVwgOwor6Luf5byxID4gbmFuamFrdVwgOwor5LyR6aSoID4ga3l1dWthblwgOwor5a+G6Ly4ID4gbWl0c3V5dVwgOwor5YWa5YmHID4gdG91c29rdVwgOwor5L+u57mVID4gc2h1dXplblwgOwor5bCx6IiqID4gc2h1dWtvdVwgOwor5LyR6aSKID4ga3l1dXlvdVwgOwor5L6L6Ki8ID4gcmVpc2hvdVwgOwor5qa05by+ID4gcnl1dWRhblwgOwor5bGx56mNID4gc2Fuc2VraVwgOwor6Ii25p2lID4gaGFrdXJhaVwgOwor5bGx56icID4gc2FucnlvdVwgOwor6LWk6LKnID4gc2VraWhpblwgOwor5L+u57e0ID4gc2h1dXJlblwgOwor6Iux5YKRID4gZWlrZXRzdVwgOwor5qW15pqRID4gZ29rdXNob1wgOwor55eF5qOfID4gYnlvdXRvdVwgOwor6IKM6aqoID4ga2lrb3RzdVwgOwor6Imv5oCnID4gcnlvdXNlaVwgOwor6Laz6Iq4ID4gYXNoaWdlaVwgOwor6IW457eaID4gY2hvdXNlblwgOwor5YOn5b2iID4gc291Z3lvdVwgOwor6Lyq5ZSxID4gcmluc2hvdVwgOwor5YGJ54mpID4gZXJhbW9ub1wgOwor55m95YiDID4gaGFrdWppblwgOwor5YWs5LyRID4ga291a3l1dVwgOwor5L6u6JSRID4gYnViZXRzdVwgOwor6Iul5YWaID4gd2FrYXRvdVwgOwor55eF5qC5ID4gYnlvdWtvblwgOwor5Lya6ZuGID4ga2Fpc2h1dVwgOwor5bGR57O4ID4ga3V6dWl0b1wgOwor5qKf572qID4ga3lvdXphaVwgOwor6Iul5YOnID4gd2FrYXpvdVwgOwor55m95YW1ID4gaGFrdWhlaVwgOwor5YWI5YudID4gc2Vuc2hvdVwgOwor5L2O6YCfID4gdGVpc29rdVwgOwor5YWl5LyaID4gbnl1dWthaVwgOwor5bGR57GzID4ga3V6dW1haVwgOwor6Lu95aaZID4ga2VpbXlvdVwgOwor6Ieq5ruFID4gamltZXRzdVwgOwor5LyR6Zu7ID4ga3l1dWRlblwgOwor5bO25qC5ID4gc2hpbWFuZVwgOwor5a2m6aKoID4gZ2FrdWZ1dVwgOwor5YO15bGNID4ga3lvbnNoaVwgOwor5YWr5LiBID4gaGF0Y2hvdVwgOwor5YWI5Yi7ID4gc2Vua29rdVwgOwor6IKJ6aWFID4gbmlrdW1hblwgOwor5L216KqtID4gaGVpZG9rdVwgOwor6aas6LezID4gdW1hdG9iaVwgOwor6Lui5bGeID4gdGVuem9rdVwgOwor6LWk6KqgID4gc2VraXNlaVwgOwor6Imv5birID4gcnlvdXNoaVwgOwor5Lya6ZW3ID4ga2FpY2hvdVwgOwor5YWH5YiDID4ga3lvdWppblwgOwor5a6a6YePID4gdGVpcnlvdVwgOwor6Imv5belID4gcnlvdWtvdVwgOwor5qC86KiAID4ga2FrdWdlblwgOwor6aeB6KuWID4gYmFrdXJvblwgOwor5YWD5Ye2ID4gZ2Vua3lvdVwgOwor6IKJ6aGeID4gbmlrdXJ1aVwgOwor6Ie85q2vID4ga3l1dXNoaVwgOwor55a85pyoID4gaGlpcmFnaVwgOwor6Lui5a6FID4gdGVudGFrdVwgOwor5qCE6YGUID4gZWl0YXRzdVwgOwor6Lui5a2mID4gdGVuZ2FrdVwgOwor55m65L+hID4gaGFzc2hpblwgOwor5LyR6ZaRID4ga3l1dWthblwgOwor6Iie5puyID4gYnVreW9rdVwgOwor6Ieq5rS7ID4gamlrYXRzdVwgOwor5L+456aEID4gaG91cm9rdVwgOwor5L+456W/ID4gaG91cm9rdVwgOwor6Iul5Lq6ID4gd2Frb3Vkb1wgOwor5qW95omNID4gZ2FrdXNhaVwgOwor5a+G6K2wID4gbWl0c3VnaVwgOwor6IiI5qWtID4ga291Z3lvdVwgOwor5YWD5YWHID4gZ2Vua3lvdVwgOwor6aaZ6LuKID4ga3lvdXNoYVwgOwor5L+X57SvID4gem9rdXJ1aVwgOwor5a2m6ZqbID4gZ2FrdXNhaVwgOwor5YGc5rOKID4gdGVpaGFrdVwgOwor5qWK5p+zID4geW91cnl1dVwgOwor55m95Lq6ID4gaGFrdWppblwgOwor5L+h566hID4gc2hpbmthblwgOwor5bCP6IiFID4ga29qdXV0b1wgOwor6Ieq5rG6ID4gamlrZXRzdVwgOwor55m+5LqLID4gaHlha3VqaVwgOwor5bKp5ry/ID4gZ2Fuc2hvdVwgOwor55CG6auqID4gcmloYXRzdVwgOwor5a+G6KqeID4gbWl0c3Vnb1wgOwor5YWG5YCZID4gY2hvdWtvdVwgOwor6IO46KWfID4ga3lvdWtpblwgOwor6auY5pyoID4ga291Ym9rdVwgOwor5bC/566hID4gbnlvdWthblwgOwor6ayx5bGIID4gdWtrdXRzdVwgOwor6LuN5bGeID4gZ3Vuem9rdVwgOwor55eb5oakID4gdHN1dWZ1blwgOwor5bGx55WqID4geWFtYWJhblwgOwor5qW95oOzID4gZ2FrdXNvdVwgOwor6Ieq5q66ID4gamlzYXRzdVwgOwor5bCP6ISzID4gc2hvdW5vdVwgOwor5YSq5YudID4geXV1c2hvdVwgOwor6ISx6Ie8ID4gZGFra3l1dVwgOwor6aaW6LazID4gc2h1c29rdVwgOwor6ISx6IetID4gZGFzc2h1dVwgOwor6LuN5bCGID4gZ3Vuc2hvdVwgOwor5YK35oK0ID4gc2hvdXN1aVwgOwor5YGP5rWBID4gaGVucnl1dVwgOwor6ISz6IacID4gbm91bWFrdVwgOwor5a+S6KGMID4ga2FuZ3lvdVwgOwor5YWI5Lu7ID4gc2VuJyduaW5cIDsKK+Wwj+iDniA+IHNob3Vob3VcIDsKK+eXm+aEnyA+IHRzdXVrYW5cIDsKK+ePvumrmCA+IGdlbmRha2FcIDsKK+Wwj+iDhiA+IHNob3V0YW5cIDsKK+iHo+awkSA+IHNoaW5taW5cIDsKK+i7jeWuuSA+IGd1bicneW91XCA7CivprLzlqYYgPiBvbmliYWJhXCA7CivkvZzoqakgPiBzYWt1c2hpXCA7CivkvZzoqZ4gPiBzYWt1c2hpXCA7CivohLHohbggPiBkYXRjaG91XCA7CivlroXphY0gPiB0YWt1aGFpXCA7Civou43lraYgPiBndW5nYWt1XCA7CivmoKHoqLsgPiBrb3VjaHV1XCA7CivkvJHpjJggPiBreXV1c3VpXCA7CivnlLDnlZEgPiBkZW5wYXRhXCA7Civlgrflv7AgPiBzaG91c3VpXCA7CivlsJHogIUgPiBzaG91c2hhXCA7Civnl5vmgaggPiB0c3V1a29uXCA7Civoh7PmpbUgPiBzaGlnb2t1XCA7CivmpbXmgqogPiBnb2t1YWt1XCA7CivlronpgLggPiBhbicnaXRzdVwgOwor5L2T6Kq/ID4gdGFpY2hvdVwgOwor5YO75ZywID4gaGVraWNoaVwgOwor5YO75ZyoID4gaGVraXphaVwgOwor5a6a6LehID4gam91c2VraVwgOwor6auY5pWZID4ga291a3lvdVwgOwor5qWt5oWLID4gZ3lvdXRhaVwgOwor6Lyq5L2cID4gcmluc2FrdVwgOwor55eb5b+rID4gdHN1dWthaVwgOwor5bKp5rOiID4gaXdhbmFtaVwgOwor5bO75ouSID4gc2h1bmt5b1wgOwor5L2O6Kq/ID4gdGVpY2hvdVwgOwor6Imv5aa7ID4gcnlvdXNhaVwgOwor5Yi744CFID4ga29ra29rdVwgOwor6IeG5risID4gb2t1c29rdVwgOwor5L2c6KO9ID4gc2FrdXNlaVwgOwor55Sj55ebID4gc2FudHN1dVwgOwor6IG36ZqOID4gc2hva2thaVwgOwor6Imv5aW9ID4gcnlvdWtvdVwgOwor55Wd5rqdID4gdW5lbWl6b1wgOwor5qW15b6uID4ga3lva3ViaVwgOwor5p6c6aOfID4ga2FzaG9rdVwgOwor5qGR6IuXID4gc291YnlvdVwgOwor6Iac54q2ID4gbWFrdWpvdVwgOwor55SY55quID4gYW1ha2F3YVwgOwor6LWk6JWqID4gYWtha2FidVwgOwor5bGx54qsID4geWFtYWludVwgOwor5L+K56ulID4gc2h1bmRvdVwgOwor5qW95birID4gZ2FrdXNoaVwgOwor5qGR6ImyID4ga3V3YWlyb1wgOwor6IWV56ugID4gd2Fuc2hvdVwgOwor6aas6KGTID4gYmFqdXRzdVwgOwor55eF5oWLID4gYnlvdXRhaVwgOwor6IWV56uLID4gdWRldGF0ZVwgOwor5p+p6LuKID4ga3l1dXNoYVwgOwor6IW555mSID4gaGFyYWlzZVwgOwor6Iie5omHID4gbWFpb3VnaVwgOwor5YOF5bCRID4ga2luc2hvdVwgOwor5a+u6IiOID4gcnlvdXNoYVwgOwor5qW15bqmID4ga3lva3Vkb1wgOwor5YGV5qW9ID4ga2FpcmFrdVwgOwor55CD6Z2iID4ga3l1dW1lblwgOwor5bCP57eoID4gc2hvdWhlblwgOwor6Iqz5L+hID4gaG91c2hpblwgOwor55eF5oKjID4gYnlvdWthblwgOwor55S754S2ID4ga2FrdXplblwgOwor55CD6Zu7ID4ga3l1dWRlblwgOwor5a6i6KqeID4ga3lha3Vnb1wgOwor5p6V6aCtID4gY2hpbnRvdVwgOwor6Ii55bmFID4gc2VucHVrdVwgOwor5qW15bemID4ga3lva3VzYVwgOwor55Oi566qID4gaHlvdXRhblwgOwor6Iq45LqLID4gZ2VpZ290b1wgOwor5qSN5qi5ID4gc2hva3VqdVwgOwor5a6f6KmxID4gaml0c3V3YVwgOwor55a+5oKjID4gc2hpa2thblwgOwor6aqo5qC8ID4ga29ra2FrdVwgOwor5qGD6ImyID4gbW9tb2lyb1wgOwor5qSc5qChID4ga2VuZ3lvdVwgOwor5a6f6Ki8ID4gamlzc2hvdVwgOwor5LuK6aCDID4gaW1hZ29yb1wgOwor6IWw55ebID4geW91dHN1dVwgOwor5bCP57KSID4ga290c3VidVwgOwor5qWt5birID4gd2F6YXNoaVwgOwor6Iqx5LujID4gaGFuYWRhaVwgOwor5a6i6KazID4ga3lha2thblwgOwor5L+X55y8ID4gem9rdWdhblwgOwor5L2/6IejID4gc2hpc2hpblwgOwor5a+S6I+KID4ga2FuZ2lrdVwgOwor5LyR6LyJID4ga3l1dXNhaVwgOwor5bC755uuID4gc2hpcmltZVwgOwor5a6a6KmVID4gdGVpaHlvdVwgOwor5LyR6LuiID4ga3l1dXRlblwgOwor55eF5byKID4gYnlvdWhlaVwgOwor5YK35a6zID4gc2hvdWdhaVwgOwor5a6a6KizID4gdGVpeWFrdVwgOwor6LuN5Zu9ID4gZ3Vua29rdVwgOwor6a2U5YqbID4gbWFyeW9rdVwgOwor5qSc5p2fID4ga2Vuc29rdVwgOwor5bGF55WZID4ga3lvcnl1dVwgOwor6Lu95YK3ID4ga2Vpc2hvdVwgOwor6aSo6ZW3ID4ga2FuY2hvdVwgOwor5bKp5qOaID4gaXdhZGFuYVwgOwor5LuP6ZmAID4gYnV0c3VkYVwgOwor5a6z6JmrID4gZ2FpY2h1dVwgOwor5bCx55ygID4gc2h1dW1pblwgOwor6ISH6IO9ID4gd2FraW5vdVwgOwor5YSE5YWGID4gb2t1Y2hvdVwgOwor55eF5bejID4gYnlvdXNvdVwgOwor6LWk6IaaID4gYWthaGFkYVwgOwor6LOe6YeRID4gc2hvdWtpblwgOwor5bCP56ulID4ga293YXBwYVwgOwor5LuP6ZajID4gYnVra2FrdVwgOwor5L+Q55m6ID4gcmloYXRzdVwgOwor5LuP6ZaTID4gYnV0c3VtYVwgOwor6LWk6IW5ID4gYWthaGFyYVwgOwor6Lu95L+hID4ga2Vpc2hpblwgOwor6IWO55+zID4gamluc2VraVwgOwor5bO25bqBID4gdG91Y2hvdVwgOwor6Imv5ZOBID4gcnlvdWhpblwgOwor5L+X55SoID4gem9rdXlvdVwgOwor6IOD6KKLID4gaWJ1a3Vyb1wgOwor6Lu95L27ID4ga2VpY2hvdVwgOwor5bO75ba6ID4gc2h1bnJlaVwgOwor5bO75bauID4gc2h1bmtlblwgOwor5bm044CFID4gbmVuJyduZW5cIDsKK+WEkuS7jyA+IGp1YnV0c3VcIDsKK+mtheWKmyA+IG1pcnlva3VcIDsKK+mrmOW+syA+IGtvdXRva3VcIDsKK+iyuOmWkyA+IGthc2hpbWFcIDsKK+iDuOiHhiA+IGt5b3Vva3VcIDsKK+mtmuS/oSA+IGd5b3NoaW5cIDsKK+iFleeZvSA+IHdhbnBha3VcIDsKK+i1pOiCjCA+IGFrYWhhZGFcIDsKK+iDuOiFuiA+IGt5b3VzZW5cIDsKK+S6rOmiqCA+IGt5b3VmdXVcIDsKK+iDuOiFlCA+IGt5b3Vrb3VcIDsKK+alveWkqSA+IHJha3V0ZW5cIDsKK+iJr+WPiyA+IHJ5b3V5dXVcIDsKK+iEseepgCA+IGRha2tva3VcIDsKK+ePremVtyA+IGhhbmNob3VcIDsKK+S8neiqpiA+IGRlbnNob3VcIDsKK+WwiuensCA+IHNvbnNob3VcIDsKK+WBg+aciCA+IGVuZ2V0c3VcIDsKK+S/rueFiSA+IHNodXVyZW5cIDsKK+WvvuetliA+IHRhaXNha3VcIDsKK+Wwj+ekviA+IHNob3VzaGFcIDsKK+alveWjqyA+IGdha3VzaGlcIDsKK+WAn+asviA+IHNoYWtrYW5cIDsKK+alveWjhyA+IGdha3VkYW5cIDsKK+S+v+ebiiA+IGJlbicnZWtpXCA7CivkvJroqq0gPiBrYWlkb2t1XCA7Civmo7rmobYgPiBrYW4nJ29rZVwgOwor6LW357WQID4ga2lrZXRzdVwgOwor6Iiq5a6ZID4ga291Y2h1dVwgOwor5L2O6JC9ID4gdGVpcmFrdVwgOwor55eF5a6zID4gYnlvdWdhaVwgOwor5YGJ5pa5ID4gZXJhZ2F0YVwgOwor5qKf54ybID4ga3lvdW1vdVwgOwor55WM5qiZID4ga2FpaHlvdVwgOwor6LOD6YqtID4gY2hpbnNlblwgOwor5L2e6IejID4gbmVpc2hpblwgOwor5L2Z6ImyID4geW9zaG9rdVwgOwor6aOy6aOfID4gaW5zaG9rdVwgOwor5YOa5Y+LID4gcnlvdXl1dVwgOwor5LyR6KybID4ga3l1dWtvdVwgOwor6LOD6YqAID4gY2hpbmdpblwgOwor5a2m6LOHID4gZ2FrdXNoaVwgOwor55S65rCRID4gY2hvdW1pblwgOwor5YK+5Zu9ID4ga2Vpa29rdVwgOwor5Lqk6Z+/ID4ga291a3lvdVwgOwor6Imv5YmkID4gcnlvdXphaVwgOwor5L+C55WZID4ga2Vpcnl1dVwgOwor55S35rCXID4gb3Rva29naVwgOwor5bCP55+lID4gc2hvdWNoaVwgOwor5a++56ewID4gdGFpc2hvdVwgOwor6LOD6YeRID4gY2hpbmdpblwgOwor5qWT5bGeID4gZnV1em9rdVwgOwor6IOD6JasID4gaWd1c3VyaVwgOwor5LuZ6YO3ID4gc2Vua3lvdVwgOwor5qCX6ImyID4ga3VyaWlyb1wgOwor6LO86KqtID4ga291ZG9rdVwgOwor6LuK5YqbID4gc2hhcmlraVwgOwor5qW95ZujID4gZ2FrdWRhblwgOwor6Iel5omAID4gZnVzaGlkb1wgOwor5L2T6IetID4gdGFpc2h1dVwgOwor6aas6ISaID4gYmFreWFrdVwgOwor5L6N56uLID4gamlyaXRzdVwgOwor5a+456eSID4gc3VuYnlvdVwgOwor55Sy5q67ID4ga291a2FrdVwgOwor6LW3562GID4ga2loaXRzdVwgOwor6aeQ57GzID4gY2h1dWJlaVwgOwor5Lm+6a2aID4gaG9zaGl1b1wgOwor6Iez5oClID4gc2hpa3l1dVwgOwor6IKd6KaBID4ga2FuJyd5b3VcIDsKK+eUn+a2ryA+IHNob3VnYWlcIDsKK+S8muihhiA+IGthaXNodXVcIDsKK+ajruaelyA+IHNoaW5yaW5cIDsKK+i1pOe1hCA+IGFrYWd1bWlcIDsKK+i7ouS7uyA+IHRlbicnbmluXCA7CivmoLzntI0gPiBrYWt1bm91XCA7Civpq5jlsJogPiBrb3VzaG91XCA7CivlsI/nmaogPiBrb3NoYWt1XCA7CivotaTntJkgPiBha2FnYW1pXCA7CivpqZrmrY4gPiBreW91dGFuXCA7Civotbfnq4sgPiBraXJpdHN1XCA7CivlgrflmIYgPiBzaG91dGFuXCA7CivkvZzogIUgPiBzYWt1c2hhXCA7Civpo5/ppIwgPiBzaG9rdWppXCA7CivohbjmuoAgPiBjaG91bWFuXCA7Civku7LosrcgPiBuYWthZ2FpXCA7Civnl4XlpIkgPiBieW91aGVuXCA7Civlg6XlgJYgPiBneW91a291XCA7Civos6DosqwgPiBiYWlzZWtpXCA7Civlg6fkv5cgPiBzb3V6b2t1XCA7Civos57os5sgPiBzaG91c2FuXCA7CivlsIrnmocgPiBzb24nJ25vdVwgOwor546E6bqmID4gZ2VuYmFrdVwgOwor6ISI566hID4gbXlha2thblwgOwor5p6i6Lu4ID4gc3V1amlrdVwgOwor6Iie5aerID4gbWFpaGltZVwgOwor55eb5ZiGID4gdHN1dXRhblwgOwor5bCo54qsID4gbXVrdWludVwgOwor5qOf5qKBID4gdG91cnlvdVwgOwor5a626IG3ID4ga2FzaG9rdVwgOwor5qC557KSID4ga29ucnl1dVwgOwor5bGg5q66ID4gdG9zYXRzdVwgOwor6LOK6LuNID4gem9rdWd1blwgOwor6IW45rayID4gY2hvdWVraVwgOwor6IiO5a6FID4gc2hhdGFrdVwgOwor5a6457+wID4gc2hpbmthblwgOwor6Lqr5ZG9ID4gc2hpbm1laVwgOwor55ar5a2mID4gZWtpZ2FrdVwgOwor5bCP55S6ID4ga29tYWNoaVwgOwor5bCP55S3ID4ga29vdG9rb1wgOwor6IWw5rmvID4ga29zaGl5dVwgOwor5bCE55qEID4gc2hhdGVraVwgOwor5bCP55SoID4gc2hvdXlvdVwgOwor6ISz55eHID4gbm91c2hvdVwgOwor6ISz55eFID4gbm91YnlvdVwgOwor5bCP55SfID4gc2hvdXNlaVwgOwor6Ieq5b6LID4gamlyaXRzdVwgOwor5bGx5qSSID4gc2Fuc2hvdVwgOwor5L2z56+AID4ga2FzZXRzdVwgOwor5L+u5rOVID4gc2h1dWhvdVwgOwor5LuK6YCxID4ga29uc2h1dVwgOwor6IGW6YCxID4gc2Vpc2h1dVwgOwor5L2O57+8ID4gdGVpeW9rdVwgOwor6Imy5LqLID4gaXJvZ290b1wgOwor5p+/6ImyID4ga2FraWlyb1wgOwor55Kw56SBID4ga2Fuc2hvdVwgOwor55Sw5qW9ID4gZGVuZ2FrdVwgOwor5LuK6L+EID4gaW1hbWFkZVwgOwor5Lm+6aOvID4gaG9zaGlpaVwgOwor6Imv5Lq6ID4gcnlvdWppblwgOwor5a6/57iBID4gc2h1a3VlblwgOwor6Iej5b6TID4gc2hpbmp1dVwgOwor5YG05bCEID4gc29rdXNoYVwgOwor6IW55rC0ID4gZnVrdXN1aVwgOwor6Ieo5bqKID4gcmluc2hvdVwgOwor6LeL5riJID4gYmFzc2hvdVwgOwor5L6154qvID4gc2hpbnBhblwgOwor5a++55eHID4gdGFpc2hvdVwgOwor5Lmz6aaZID4gbnl1dWtvdVwgOwor5Luu6KqsID4ga2FzZXRzdVwgOwor5bCC55SoID4gc2VuJyd5b3VcIDsKK+eUuuadkSA+IGNob3Vzb25cIDsKK+WAkuacqCA+IHRvdWJva3VcIDsKK+WBj+W/gyA+IGhlbnNoaW5cIDsKK+iHqOW4rSA+IHJpbnNla2lcIDsKK+iznuipniA+IHNob3VzaGlcIDsKK+aetuiorSA+IGthc2V0c3VcIDsKK+S/ruatoyA+IHNodXVzZWlcIDsKK+acqOmtmiA+IG1va3VneW9cIDsKK+iBtOismyA+IGNob3Vrb3VcIDsKK+WCrOWRiiA+IHNhaWtva3VcIDsKK+mrmOWjsCA+IHRha2Fnb2VcIDsKK+S9teensCA+IGhlaXNob3VcIDsKK+S6pOmMryA+IGtvdXNha3VcIDsKK+amguWJhyA+IGdhaXNva3VcIDsKK+S7ruiorSA+IGthc2V0c3VcIDsKK+iAkOmchyA+IHRhaXNoaW5cIDsKK+aghOiBtyA+IGVpc2hva3VcIDsKK+S7j+i3oSA+IGJ1c3Nla2lcIDsKK+S+m+eUqCA+IGt5b3V5b3VcIDsKK+iyq+mAmiA+IGthbnRzdXVcIDsKK+iBlui5nyA+IHNlaXNla2lcIDsKK+WztuWbvSA+IHRvdWdva3VcIDsKK+WwiueOiyA+IHNvbicnbm91XCA7CivnlKPmpa0gPiBzYW5neW91XCA7CivohbDmsJcgPiBrb3NoaWtlXCA7Civou4rkuK0gPiBzaGFjaHV1XCA7Civku7DoppYgPiBneW91c2hpXCA7CivlgrflibUgPiBzaG91c291XCA7Civou4rkuKEgPiBzaGFyeW91XCA7Civpo5/plpMgPiBzaG9ra2FuXCA7Civku67opqogPiBrYXJpb3lhXCA7CivogrLoi5cgPiBpa3VieW91XCA7Civlrpjog70gPiBrYW4nJ25vdVwgOwor6LOD6LK4ID4gY2hpbnRhaVwgOwor5bKh5oOaID4gb2thYm9yZVwgOwor6IGW6LehID4gc2Vpc2VraVwgOwor5p6d6LGGID4gZWRhbWFtZVwgOwor5p2R6ZW3ID4gc29uY2hvdVwgOwor6IG06KixID4gY2hvdWt5b1wgOwor5pyd6a6uID4gY2hvdXNlblwgOwor55Sf5qWtID4gbmFyaXdhaVwgOwor5Luj6KqtID4gZGFpZG9rdVwgOwor54++6LGhID4gZ2Vuc2hvdVwgOwor5Lmz6aCtID4gbnl1dXRvdVwgOwor5bCP54mHID4gc2hvdWhlblwgOwor5a6f57+SID4gamlzc2h1dVwgOwor5Luy6KOBID4gY2h1dXNhaVwgOwor5bCP54iqID4ga29kenVtZVwgOwor55aO5a+GID4gc29taXRzdVwgOwor6IG06KejID4gY2hvdWthaVwgOwor6LKn6L6yID4gaGluJydub3VcIDsKK+S7o+iouiA+IGRhaXNoaW5cIDsKK+iBtOimliA+IGNob3VzaGlcIDsKK+iFuuanmCA+IHNlbicneW91XCA7CivlsZ7moLwgPiB6b2trYWt1XCA7CivlgrflhbUgPiBzaG91aGVpXCA7Civmpb3lhbggPiBnYWt1dGVuXCA7CivnlLvmlbAgPiBrYWt1c3V1XCA7CivkvY7ntJogPiB0ZWlreXV1XCA7Civohrrmh7IgPiB5b3VjaG91XCA7CivlgI3ml6cgPiBiYWlreXV1XCA7Civpq5jlnKcgPiBrb3VhdHN1XCA7Civogp3okYkgPiBrYW4nJ3lvdVwgOwor55S65pS/ID4gY2hvdXNlaVwgOwor5L+u5qWtID4gc2h1Z3lvdVwgOwor5qW15YiRID4ga3lva2tlaVwgOwor5bKp5bqKID4gZ2Fuc2hvdVwgOwor5a+u55SfID4gcnlvdXNlaVwgOwor55eF5ZCNID4gYnlvdW1laVwgOwor5p2x6YCyID4gdG91c2hpblwgOwor5qCh56ugID4ga291c2hvdVwgOwor5qK25qOSID4ga2FqaWJvdVwgOwor5qW15YagID4ga3lva2thblwgOwor5qW15YaFID4gZ29rdW5haVwgOwor55eF5Y+LID4gYnlvdXl1dVwgOwor6aqw5a2QID4gc2Fpa29yb1wgOwor5bKh5byVID4gb2thaGlraVwgOwor5YK05YOCID4gc2VtdXNoaVwgOwor5YGc5a2mID4gdGVpZ2FrdVwgOwor5pyx6Z6YID4gc2h1emF5YVwgOwor5a6f57i+ID4gamlzc2VraVwgOwor55eF5Y6fID4gYnlvdWdlblwgOwor5qW15YWJID4ga3lva2tvdVwgOwor5Lqo6YCaID4ga291dHN1dVwgOwor5pys6aCYID4gaG9ucnlvdVwgOwor5Lq66LehID4gaGl0b2F0b1wgOwor5LuY6KitID4gZnVzZXRzdVwgOwor6aaW57SaID4gc2h1a3l1dVwgOwor5L6b54mpID4ga3Vtb3RzdVwgOwor5bO75Y6zID4gc2h1bmdlblwgOwor6LGh6ZmQID4gc2hvdWdlblwgOwor6Lqr5L2TID4gc2hpbnRhaVwgOwor6Iez5aaZID4gc2hpbXlvdVwgOwor55SY5qCXID4gYW1hZ3VyaVwgOwor5LuV6KizID4gc2hpd2FrZVwgOwor6IiI5Zu9ID4ga291a29rdVwgOwor5Lqk6YCaID4ga291dHN1dVwgOwor6LqN5YuVID4geWFrdWRvdVwgOwor5Luj6KGoID4gZGFpaHlvdVwgOwor5Lqi6YCyID4ga291c2hpblwgOwor55eF5YuiID4gYnlvdXNlaVwgOwor5qOy5oGvID4gc2Vpc29rdVwgOwor6IOM57SEID4gaGFpeWFrdVwgOwor5a6556mNID4geW91c2VraVwgOwor5LuP6KqeID4gYnV0c3Vnb1wgOwor6IWw5qSOID4geW91dHN1aVwgOwor6Lqr5LujID4gc2hpbmRhaVwgOwor546J6Z+zID4gZ3lva3VvblwgOwor5a+T55uuID4gZ3V1bW9rdVwgOwor5p2l6YCxID4gcmFpc2h1dVwgOwor6Ii55YG0ID4gc2Vuc29rdVwgOwor5pys6ZyHID4gaG9uc2hpblwgOwor5L2T56mNID4gdGFpc2VraVwgOwor5pyo6Z20ID4ga2lndXRzdVwgOwor6aaZ566xID4ga291YmFrb1wgOwor5LyR6IiqID4ga3l1dWtvdVwgOwor5pyd6aKoID4gYXNha2F6ZVwgOwor5a++54WnID4gdGFpc2hvdVwgOwor6Ii35YG0ID4gZ2Vuc29rdVwgOwor5qC555ikID4ga29ucnl1dVwgOwor5bKp5bGxID4gaXdheWFtYVwgOwor5qW95Lq6ID4gZ2FrdWppblwgOwor6LGG6aGeID4gbWFtZXJ1aVwgOwor5a6Y57WmID4ga2Fua3l1dVwgOwor546J6ZyyID4gZ3lva3Vyb1wgOwor6Lqr5LiKID4gc2hpbmpvdVwgOwor6Ii55L6/ID4gZnVuYWJpblwgOwor5YKs5L+DID4gc2Fpc29rdVwgOwor55Sf5pawID4gc2Vpc2hpblwgOwor6ISz5ry/ID4gbm91c2hvdVwgOwor6IS55rqAID4gY2hvdW1hblwgOwor6LaF54S2ID4gY2hvdXplblwgOwor5Lyd57+SID4gZGVuc2h1dVwgOwor55WZ5bm0ID4gcnl1dW5lblwgOwor6LSF6IKJID4gemVpbmlrdVwgOwor6auY5Y+wID4gdGFrYWRhaVwgOwor5bKp5a6kID4gaXdhbXVyb1wgOwor5L+15pWwID4gaHlvdXN1dVwgOwor5pyU6aKoID4gc2FrdWZ1dVwgOwor5a2m6Iq4ID4gZ2FrdWdlaVwgOwor6aaW56ugID4gc2h1c2hvdVwgOwor55S35omLID4gb3Rva29kZVwgOwor5qKF5q+SID4gYmFpZG9rdVwgOwor5qSN5a2XID4gc2hva3VqaVwgOwor5pyd6Z2EID4gYXNhbW95YVwgOwor5bGI5pyNID4ga3VwcHVrdVwgOwor5pyd6ZynID4gYXNhZ2lyaVwgOwor5L+h5p2hID4gc2hpbmpvdVwgOwor57+w6ZW3ID4ga2FuY2hvdVwgOwor6IKM6ImyID4gaGFkYWlyb1wgOwor5a2m6IiOID4gZ2FrdXNoYVwgOwor5L+h5pybID4gc2hpbmJvdVwgOwor5L+u5pW0ID4gc2h1dXNlaVwgOwor5L+h5pu4ID4gc2hpbnNob1wgOwor5qW15LiKID4gZ29rdWpvdVwgOwor55eH5YCZID4gc2hvdWtvdVwgOwor5LyR6ICVID4ga3l1dWtvdVwgOwor6Ii55LitID4gc2VuY2h1dVwgOwor5Ly4562LID4gc2hpbmtpblwgOwor6IKJ6ImyID4gbmlrdWlyb1wgOwor5L+u5pS5ID4gc2h1dWthaVwgOwor5bK45aOBID4gZ2FucGVraVwgOwor5a6M57SNID4ga2FuJydub3VcIDsKK+S6uuiovCA+IG5pbnNob3VcIDsKK+S5vumFqiA+IGthbnJha3VcIDsKK+eXh+S+iyA+IHNob3VyZWlcIDsKK+eVpeWtlyA+IHJ5YWt1amlcIDsKK+iGqOW8tSA+IGJvdWNob3VcIDsKK+Wxi+aVtyA+IHlhc2hpa2lcIDsKK+S/ruaSsCA+IHNodXVzZW5cIDsKK+S8j+e9qiA+IGZ1a3V6YWlcIDsKK+WvhueUuyA+IG1pdHN1Z2FcIDsKK+eXheS9kyA+IGJ5b3V0YWlcIDsKK+iAg+mHjyA+IGtvdXJ5b3VcIDsKK+mkoeicnCA+IGFubWl0c3VcIDsKK+WumOeqryA+IGthbicneW91XCA7Civku5TomasgPiBzaGljaHV1XCA7CivogL3oqq0gPiB0YW5kb2t1XCA7CivlsI/msLQgPiBzaG91c3VpXCA7CivogonohasgPiBuaWt1c2h1XCA7Civkv5fmm7ggPiB6b2t1c2hvXCA7CivogIHphpwgPiByb3VzaHV1XCA7CivpqZXmhaIgPiBreW91bWFuXCA7CivlgJTlvLcgPiBrdWtreW91XCA7Civnl4XkurogPiBieW91bmluXCA7CivlgY/ln7cgPiBoZW5zaHV1XCA7Civkv47mnb8gPiBtYW5haXRhXCA7CivkubPphbggPiBueXV1c2FuXCA7CivlrabogIUgPiBnYWt1c2hhXCA7CivlrrDnm7ggPiBzYWlzaG91XCA7CivkuLvpoJggPiBzaHVyeW91XCA7Civlsqnlo4EgPiBnYW5wZWtpXCA7Civkva/ni4IgPiB5b3VreW91XCA7CivkuLjpoZQgPiBtYXJ1Z2FvXCA7Civmm7PppqwgPiBoaWtpdW1hXCA7Civlr77mtYEgPiB0YWlyeXV1XCA7CivpoZTpu5IgPiBnYW5ndXJvXCA7CivkvI/nuKsgPiBmdXNlbnVpXCA7Civmm7LppqwgPiBreW9rdWJhXCA7CivotaTnh5AgPiBzZWtpcmluXCA7CivlgpHkvZwgPiBrZXNzYWt1XCA7CivnkZ7npaUgPiB6dWlzaG91XCA7CivpqZXmgaMgPiBreW91c2hpXCA7CivkvI/nt5ogPiBmdWt1c2VuXCA7CivlgoDlhKEgPiBrdWd1dHN1XCA7Civnj43oq4cgPiBjaGluZGFuXCA7Civkv5fmlocgPiB6b2t1YnVuXCA7CivkuqToqq0gPiBrb3Vkb2t1XCA7CivlgJLluZUgPiB0b3ViYWt1XCA7CivlrrbnlZwgPiBrYWNoaWt1XCA7CivkuK3po68gPiBjaHV1aGFuXCA7CivnkIPoj4wgPiBreXV1a2luXCA7Civpppbnm7ggPiBzaHVzaG91XCA7CivkuK3poqggPiBjaHV1YnV1XCA7Civpoqjpjq4gPiBmdXVjaGluXCA7CivlgJ/lsYsgPiBzaGFrdXlhXCA7Civls7bkuK0gPiB0b3VjaHV1XCA7Civlrp3nn7MgPiBob3VzZWtpXCA7Civog4bnn7MgPiB0YW5zZWtpXCA7CivlsbHluKsgPiB5YW1hc2hpXCA7Civpo5/osrsgPiBzaG9rdWhpXCA7CivkuqTop5IgPiBrb3VrYWt1XCA7CivmnKjph5EgPiBtb2t1a2luXCA7Civlrprnn7MgPiBqb3VzZWtpXCA7CivlsZ7mgKcgPiB6b2t1c2VpXCA7CivohLPmqYsgPiBub3VreW91XCA7CivkuK3poIUgPiBjaHV1a291XCA7CivmnaXoqLogPiByYWlzaGluXCA7CivnkIPojI4gPiBreXV1a2VpXCA7CivlsbHltr0gPiBzYW5nYWt1XCA7Civogqnnq6AgPiBrZW5zaG91XCA7CivnlJ/mga8gPiBzZWlzb2t1XCA7Civkvr/mnI0gPiBiZW5wdWt1XCA7CivkuqHopqogPiBib3VzaGluXCA7CivlgaXli50gPiBrZW5zaG91XCA7Civku5XojYkgPiBzaGlndXNhXCA7CivkuZ3ph40gPiBrb2tvbm9lXCA7Civkv4rmlY8gPiBzaHVuYmluXCA7CivmnaXopbIgPiByYWlzaHV1XCA7CivkuLvplbcgPiBzaHVjaG91XCA7CivouIrlrZcgPiBvZG9yaWppXCA7CivlsbHls6EgPiB5YW1ha2FpXCA7CivotaTmva4gPiBha2FzaGlvXCA7CivmnIDplbcgPiBzYWljaG91XCA7CivlrabntJogPiBnYWtreXV1XCA7CivogbTogZ4gPiBjaG91bW9uXCA7CivlsbHlsrMgPiBzYW5nYWt1XCA7CivnlJ/lvpcgPiBzZWl0b2t1XCA7CivnlaXlm7MgPiByeWFrdXp1XCA7CivkuKHpoK0gPiByeW91dG91XCA7CivlsJrmm7QgPiBuYW9zYXJhXCA7CivlsY/mga8gPiBoZWlzb2t1XCA7CivkuK3pmoogPiBjaHV1dGFpXCA7CivmnKjpgKAgPiBtb2t1em91XCA7CivkvJ3npaggPiBkZW5weW91XCA7CivmnJ3phZIgPiBhc2F6YWtlXCA7CivlrrnniakgPiBpcmVtb25vXCA7CivnlLvlrpogPiBrYWt1dGVpXCA7Civlr4LnhLYgPiBzZWtpemVuXCA7CivnlJjlv4MgPiBrYW5zaGluXCA7CivlsILmpa0gPiBzZW5neW91XCA7Civot6HlvaIgPiBhdG9rYXRhXCA7CivlgbbkvZwgPiBndXVzYWt1XCA7Civmm7nplbcgPiBzb3VjaG91XCA7CivlsI/mn4QgPiBrb2R6dWthXCA7CivlrZ3ntYwgPiBrb3VreW91XCA7CivogbTnvaogPiBjaG91emFpXCA7CivkvZnnhrEgPiB5b25ldHN1XCA7CivlsbHlrrkgPiBzYW4nJ3lvdVwgOwor5Lih6Z2iID4gcnlvdW1lblwgOwor5L+h5oSbID4gc2hpbicnYWlcIDsKK+S/l+aJjSA+IHpva3VzYWlcIDsKK+WtmOe2miA+IHNvbnpva3VcIDsKK+acm+mDtyA+IGJvdWt5b3VcIDsKK+eMm+mzpSA+IG1vdWNob3VcIDsKK+WuneeUnyA+IGhvdXNob3VcIDsKK+e+jumrqiA+IGJpaGF0c3VcIDsKK+WwmuaXqSA+IHNob3Vzb3VcIDsKK+S4remWkyA+IGNodXVrYW5cIDsKK+S4gOmrqiA+IGlwcGF0c3VcIDsKK+S7sue2mSA+IGNodXVrZWlcIDsKK+WwhuagoSA+IHNob3Vrb3VcIDsKK+WuieedgCA+IGFuY2hha3VcIDsKK+S4oembhCA+IHJ5b3V5dXVcIDsKK+Wto+evgCA+IGtpc2V0c3VcIDsKK+S6ieionyA+IHNvdXNob3VcIDsKK+S6jOimqiA+IGZ1dGFveWFcIDsKK+ixmui2syA+IHRvbnNva3VcIDsKK+WumOeUqCA+IGthbicneW91XCA7CivkvZnng4ggPiB5b3JldHN1XCA7Civmnb7okYkgPiBtYXRzdWJhXCA7Civlronnm7QgPiBhbmNob2t1XCA7CivpoqjpgJ8gPiBmdXVzb2t1XCA7CivpoY7pq60gPiBhZ29oaWdlXCA7Civnv7zos5sgPiB5b2t1c2FuXCA7CivlsZ7ls7YgPiB6b2t1dG91XCA7Civogrrnl4UgPiBoYWlieW91XCA7CivlsI/mmbogPiBzaG91Y2hpXCA7Civlrp/nkIYgPiBqaXRzdXJpXCA7CivlsI/mma8gPiBzaG91a2VpXCA7Civlrabnq6UgPiBnYWt1ZG91XCA7Civmo4vlrqIgPiBraWt5YWt1XCA7CivmnKvot68gPiBtYXRzdXJvXCA7CivkvrXmlLsgPiBzaGlua291XCA7CivlsIbmnaUgPiBzaG91cmFpXCA7Civkuobop6MgPiByeW91a2FpXCA7CivnlZHlnLAgPiBoYXRhY2hpXCA7Civkv6Hlv4MgPiBzaGluamluXCA7Civlr77moLwgPiB0YWlrYWt1XCA7CivlsYjlvLcgPiBrdWtreW91XCA7CivlrabnqpMgPiBnYWt1c291XCA7Civmop/mgqogPiBreW91YWt1XCA7CivnlLflqLwgPiBkYW5zaG91XCA7CivlraTnq4sgPiBrb3JpdHN1XCA7CivohbnluK8gPiBmdWt1dGFpXCA7CivlrabnqbYgPiBnYWtreXV1XCA7Civkv5fmg4UgPiB6b2t1am91XCA7CivkuoboposgPiByeW91a2VuXCA7CivkuLjpi7wgPiBtYXJ1a291XCA7Civkv4rmiY0gPiBzaHVuc2FpXCA7Civkv5fmgqogPiB6b2t1YWt1XCA7CivogbfntYQgPiBzaG9rdXNvXCA7Civlr5LmtYEgPiBrYW5yeXV1XCA7CivnvqTpm4YgPiBndW5zaHV1XCA7CivnvqTpm4QgPiBndW4nJ3l1dVwgOwor5bGx5aelID4geWFtYXViYVwgOwor5LiK6aGOID4gam91Z2FrdVwgOwor5a+d5q6/ID4gc2hpbmRlblwgOwor5bCR5pWwID4gc2hvdXN1dVwgOwor55S35aa+ID4gZGFuc2hvdVwgOwor5bCP5paOID4gc2hvdXNhaVwgOwor6ISC5rCXID4gYWJ1cmFrZVwgOwor5bCC5pyJID4gc2VuJyd5dXVcIDsKK+WwveW/oCA+IGppbmNodXVcIDsKK+Wwj+aVsCA+IHNob3VzdXVcIDsKK+adoeiZqyA+IGpvdWNodXVcIDsKK+eVpeWPmSA+IHJ5YWt1am9cIDsKK+e+jumjnyA+IGJpc2hva3VcIDsKK+WxseWlpSA+IHlhbWFva3VcIDsKK+ePjeiUtSA+IGNoaW56b3VcIDsKK+WwiuaXjyA+IHNvbnpva3VcIDsKK+S/l+W/tSA+IHpva3VuZW5cIDsKK+agvOautSA+IGtha3VkYW5cIDsKK+S4gOmjnyA+IGlzc2hva3VcIDsKK+WwhuaYnyA+IHNob3VzZWlcIDsKK+iBr+e1oSA+IHJlbnJha3VcIDsKK+WtpuelrSA+IGdha3VzYWlcIDsKK+eNhOmWgCA+IGdva3Vtb25cIDsKK+S/g+aIkCA+IHNva3VzZWlcIDsKK+iAg+iovCA+IGtvdXNob3VcIDsKK+WujOeSpyA+IGthbnBla2lcIDsKK+eUn+WusyA+IHNob3VnYWlcIDsKK+S5seiqvyA+IHJhbmNob3VcIDsKK+S6uuiHoyA+IGppbnNoaW5cIDsKK+S4gOmhniA+IGljaGlydWlcIDsKK+S5seiqrSA+IHJhbmRva3VcIDsKK+S6gOijgiA+IGtpcmV0c3VcIDsKK+iDuOawtCA+IGt5b3VzdWlcIDsKK+aeoOe3miA+IHdha3VzZW5cIDsKK+S8keecoCA+IGt5dXVtaW5cIDsKK+iHqOS8kSA+IHJpbmt5dXVcIDsKK+S7hOiBniA+IHNva3VidW5cIDsKK+S9jua9riA+IHRlaWNob3VcIDsKK+S8j+ebriA+IGZ1c2hpbWVcIDsKK+S4h+mboyA+IGJhbicnbmFuXCA7CivpqZXlpaIgPiBreW91c2hhXCA7CivlsY7lsL8gPiBzaGlueW91XCA7CivkuIrpmbggPiBqb3VyaWt1XCA7CivlsLrluqYgPiBzaGFrdWRvXCA7Civos6Tnp7AgPiBzZW5zaG91XCA7CivkuIfpmpwgPiBiYW5zaG91XCA7CivmnIDpgakgPiBzYWl0ZWtpXCA7CivlsLHlvbkgPiBzaHV1ZWtpXCA7CivkuIDpnaIgPiBpY2hpbWVuXCA7Civlr77mlbUgPiB0YWl0ZWtpXCA7CivmnJ3osqIgPiBjaG91a291XCA7Civku4/nuIEgPiBidXRzdWVuXCA7Civku5XntYQgPiBzaGlrdW1pXCA7CivmoZDmnZAgPiBraXJpemFpXCA7CivlsITmkoMgPiBzaGFnZWtpXCA7CivmoKHms6ggPiBrb3VjaHV1XCA7CivkuIDpm6ggPiBoaXRvYW1lXCA7Civmn7HnirYgPiBjaHV1am91XCA7CivkvZzms4EgPiBzYWtreW91XCA7CivkuIDpm6MgPiBpY2hpbmFuXCA7CivlsbHlnLAgPiB5YW1hY2hpXCA7Civkv4rlvaYgPiBzaHVuZ2VuXCA7Civog7TmrLIgPiBkb3V5b2t1XCA7CivpoY3pnaIgPiBnYWt1bWVuXCA7CivkuIrplbcgPiBqb3VjaG91XCA7Civnj43oirggPiBjaGluZ2VpXCA7Civmo67ljrMgPiBzaGluZ2VuXCA7CivnlLflm5ogPiBkYW5zaHV1XCA7Civmoq/lrZAgPiBoYXNoaWdvXCA7CivmnpXntbUgPiBtYWt1cmFlXCA7CivnlarlgpggPiBiYW5nYXNhXCA7CivkuIDpmaMgPiBpY2hpamluXCA7Civku4/ntYwgPiBidWtreW91XCA7CivpoKzpq60gPiBob29oaWdlXCA7CivmnKroqK0gPiBtaXNldHN1XCA7CivnlaXlhIAgPiByeWFrdWdpXCA7Civpp7/miY0gPiBzaHVuc2FpXCA7Civog73mpb0gPiBub3VnYWt1XCA7CivlsI/miY0gPiBzaG91c2FpXCA7CivkuLvou7ggPiBzaHVqaWt1XCA7CivpoKzpqqggPiBob29ib25lXCA7CivkubHooYwgPiByYW5neW91XCA7Civlq4noppYgPiBzaGlzc2hpXCA7CivlsI/miJAgPiBzaG91c2VpXCA7CivogonnnLwgPiBuaWt1Z2FuXCA7CivkuK3pgZMgPiBjaHV1ZG91XCA7CivlsJHmhqkgPiBzaG91a2VpXCA7CivlrqLmvJQgPiBreWFrdWVuXCA7Civlroznhp8gPiBrYW5qdWt1XCA7CivkuIDploAgPiBpY2hpbW9uXCA7CivmmpfprLEgPiBhbicndXRzdVwgOwor5bCP5oapID4gc2hvdWtlaVwgOwor5Lit6YCAID4gY2h1dXRhaVwgOwor5qSN5LuYID4gdWV0c3VrZVwgOwor55CG56qfID4gcmlrdXRzdVwgOwor5a6f5ryUID4gaml0c3VlblwgOwor5L+u5aW9ID4gc2h1dWtvdVwgOwor5bC85a+6ID4gYW1hZGVyYVwgOwor5Lit6L6yID4gY2h1dW5vdVwgOwor5p2R6JC9ID4gc29ucmFrdVwgOwor5pyr6KOUID4gbWF0c3VlaVwgOwor5bC65a+4ID4gc2VraXN1blwgOwor6ama5ZiGID4ga3lvdXRhblwgOwor5qKi5a2QID4gc2hvdXNoaVwgOwor5a+45o+PID4gc3VuYnlvdVwgOwor5pyo6KO9ID4gbW9rdXNlaVwgOwor5L2X5q2MID4gd2FiaXV0YVwgOwor5Lim6YCyID4gaGVpc2hpblwgOwor5L+u5aOrID4gc2h1dXNoaVwgOwor6aKo6KmVID4gZnV1aHlvdVwgOwor55Wq5Lq6ID4gYmFuJyduaW5cIDsKK+Wus+avkiA+IGdhaWRva3VcIDsKK+WtpueUnyA+IGdha3VzZWlcIDsKK+acl+iqrSA+IHJvdWRva3VcIDsKK+acl+iqpiA+IHJvdXNob3VcIDsKK+Wun+a4rCA+IGppc3Nva3VcIDsKK+eUn+WeoyA+IGlrZWdha2lcIDsKK+WxnuWbvSA+IHpva2tva3VcIDsKK+S6lOiJsiA+IGdvc2hva3VcIDsKK+i1pOacrSA+IGFrYWZ1ZGFcIDsKK+adv+e3oCA+IGl0YWppbWVcIDsKK+ePjeiBniA+IGNoaW5idW5cIDsKK+eUuuWQjSA+IGNob3VtZWlcIDsKK+acneimiyA+IGNob3VrZW5cIDsKK+aarumbqiA+IGJvc2V0c3VcIDsKK+S7leeoriA+IHNoaWd1c2FcIDsKK+S9s+aciCA+IGthZ2V0c3VcIDsKK+iCieeVjCA+IG5pa3VrYWlcIDsKK+WuruauvyA+IGt5dXVkZW5cIDsKK+adpeiBtCA+IHJhaWNob3VcIDsKK+mgremgmCA+IHRvdXJ5b3VcIDsKK+S7u+eUqCA+IG5pbicneW91XCA7Civog7jmnb8gPiBtdW5haXRhXCA7Civkv6HlpYkgPiBzaGlucG91XCA7CivmopPlrq4gPiBzaGlreXV1XCA7Civmnb/ntJkgPiBpdGFnYW1pXCA7CivpoK3poIIgPiB0b3VjaG91XCA7CivkuozoibIgPiBuaXNob2t1XCA7Civpp5DmlK8gPiBjaHV1c2hpXCA7CivlsI/lvoQgPiBzaG91a2VpXCA7Civmm7Lot68gPiBreW9rdXJvXCA7CivlsJHlvJ8gPiBzaG91dGVpXCA7CivkuKHovKogPiByeW91cmluXCA7CivmnKjonYsgPiBtb2t1cm91XCA7CivkuIDpjKAgPiBpY2hpam91XCA7Civlrp/ms4EgPiBqaWtreW91XCA7CivotaTml5cgPiBha2FoYXRhXCA7CivlsI/lvJ8gPiBzaG91dGVpXCA7Civkv5flp5MgPiB6b2t1c2VpXCA7Civkv4LlsZ4gPiBrZWl6b2t1XCA7CivkvbPml6UgPiBrYWppdHN1XCA7CivkuKHou40gPiByeW91Z3VuXCA7Civog47mr5IgPiB0YWlkb2t1XCA7CivnlZnku7sgPiByeXV1bmluXCA7CivmnL3okYkgPiBrdWNoaWJhXCA7Civmnb7nsZ8gPiBzaG91cmFpXCA7CivlsI/lurcgPiBzaG91a291XCA7CivlsbHli5ggPiB5YW1ha2FuXCA7CivlsJHlubQgPiBzaG91bmVuXCA7Civku4rnqIsgPiBpbWFob2RvXCA7Civpp5LmkI0gPiBrb21hc29uXCA7CivnvarpmpwgPiB6YWlzaG91XCA7CivlsI/lupcgPiBzaG91dGVuXCA7Civlrr/moLkgPiBzaHVra29uXCA7CivmnIjoqZUgPiBnZXBweW91XCA7CivnvbLplbcgPiBzaG9jaG91XCA7Civku4rnp4sgPiBrb25zaHV1XCA7CivnlLrliLYgPiBjaG91c2VpXCA7CivkuIvpg6ggPiBzaGltb2JlXCA7CivlsILlv7UgPiBzZW4nJ25lblwgOwor5p2f576kID4gc29rdWd1blwgOwor5a6f5q+NID4gaml0c3Vib1wgOwor5bCC5b+DID4gc2Vuc2hpblwgOwor54yu6YWsID4ga2Vuc2h1dVwgOwor5LiB6YeNID4gdGVpY2hvdVwgOwor5LiN6YGUID4gZnV0YXRzdVwgOwor5Li76Kq/ID4gc2h1Y2hvdVwgOwor5LiL6YGUID4ga2F0YXRzdVwgOwor6aOb6ISaID4gaGlreWFrdVwgOwor55S65YaFID4gY2hvdW5haVwgOwor5pyI6KaLID4gdHN1a2ltaVwgOwor5L+X5aG1ID4gem9rdWppblwgOwor5YCL5YilID4ga29iZXRzdVwgOwor5bGe5ZCNID4gem9rdW1laVwgOwor5YCh5L2vID4gc2hvdXlvdVwgOwor5LuY552AID4gZnVjaGFrdVwgOwor5LiK6YCyID4gam91c2hpblwgOwor5pyN6KOFID4gZnVrdXNvdVwgOwor5L2T5qC8ID4gdGFpa2FrdVwgOwor54yf6YqDID4gcnlvdWp1dVwgOwor5Lqk57WhID4ga291cmFrdVwgOwor5qOE5Y20ID4ga2lreWFrdVwgOwor5L2V5p+QID4gbmFuaWJvdVwgOwor5qCh5pyNID4ga291ZnVrdVwgOwor5LuV552AID4gc2hpa2lzZVwgOwor5pyo6JSmID4ga2lkenV0YVwgOwor6LKn56quID4gaGlua3l1dVwgOwor6IKJ54mHID4gbmlrdWhlblwgOwor5bCG5bilID4gc2hvdXN1aVwgOwor55S35YSqID4gZGFuJyd5dXVcIDsKK+acqOiTriA+IG1va3VyZW5cIDsKK+absuitnCA+IGt5b2t1ZnVcIDsKK+ail+WhniA+IGtvdXNva3VcIDsKK+eUsuWGkSA+IGthdGNodXVcIDsKK+S+teWusyA+IHNoaW5nYWlcIDsKK+iCpea6nCA+IGtvZWRhbWVcIDsKK+iznueOqSA+IHNob3VnYW5cIDsKK+WAn+S6uiA+IGthcmluaW5cIDsKK+S6uuensCA+IG5pbnNob3VcIDsKK+S/iuWjqyA+IHNodW5zaGlcIDsKK+acieihhiA+IHl1dXNodXVcIDsKK+abuOiplSA+IHNob2h5b3VcIDsKK+WvhuaVmSA+IG1pa2t5b3VcIDsKK+ixquiFuSA+IGdvdWZ1a3VcIDsKK+S4gOmBkyA+IGljaGlkb3VcIDsKK+S4gOmBhyA+IGljaGlndXVcIDsKK+abuOiovCA+IHNob3Nob3VcIDsKK+iyq+emhCA+IGthbnJva3VcIDsKK+i2iuW5tCA+IGV0c3VuZW5cIDsKK+S4gOmAoyA+IGljaGlyZW5cIDsKK+eUn+WNlCA+IHNlaWt5b3VcIDsKK+S4iei7uCA+IHNhbmppa3VcIDsKK+iAgeiHoyA+IHJvdXNoaW5cIDsKK+adoee0hCA+IGpvdXlha3VcIDsKK+S/ruWPsiA+IHNodXVzaGlcIDsKK+ixhuiUtSA+IG1hbWV6b3VcIDsKK+S9meaXpSA+IHlvaml0c3VcIDsKK+eQg+eVjCA+IGt5dXVrYWlcIDsKK+S9nOaWhyA+IHNha3VidW5cIDsKK+Wwj+WvkiA+IHNob3VrYW5cIDsKK+iznueKtiA+IHNob3Vqb3VcIDsKK+adnOe1tiA+IHRvemV0c3VcIDsKK+S9juacqCA+IHRlaWJva3VcIDsKK+WwiuWxniA+IHNvbnpva3VcIDsKK+mmrOaWuSA+IHVtYWthdGFcIDsKK+S5seiHoyA+IHJhbnNoaW5cIDsKK+S9leaZgiA+IG5hbmRva2lcIDsKK+i1pOaJiyA+IHNla2lzaHVcIDsKK+Wwj+WumCA+IHNob3VrYW5cIDsKK+S5s+iFuiA+IG55dXVzZW5cIDsKK+WwkeWtkCA+IHNob3VzaGlcIDsKK+eMrui6qyA+IGtlbnNoaW5cIDsKK+WAkuS8jyA+IHRvdWZ1a3VcIDsKK+iznueJjCA+IHNob3VoYWlcIDsKK+absuinoyA+IGt5b2trYWlcIDsKK+ePjeetlCA+IGNoaW50b3VcIDsKK+S4gOi8qiA+IGljaGlyaW5cIDsKK+WvteW5uCA+IGNob3Vrb3VcIDsKK+eUuuS8miA+IGNob3VrYWlcIDsKK+WumualrSA+IHRlaWd5b3VcIDsKK+mpleWCsiA+IGt5b3Vnb3VcIDsKK+mpmuWAkiA+IGt5b3V0b3VcIDsKK+WwiuWuuSA+IHNvbicneW91XCA7Civnj77nlKggPiBnZW4nJ3lvdVwgOwor5LiK6LazID4gam91c29rdVwgOwor5a6Y5qWtID4ga2FuZ3lvdVwgOwor5Lih6KuWID4gcnlvdXJvblwgOwor5LiA6LuNID4gaWNoaWd1blwgOwor55S65Lq6ID4gY2hvdW5pblwgOwor5LiK6LaKID4gam91ZXRzdVwgOwor5bCK5a6FID4gc29udGFrdVwgOwor6aCF6aCYID4ga291cnlvdVwgOwor6aaZ5pyoID4ga291Ym9rdVwgOwor5bGA5ZOhID4ga3lva3VpblwgOwor5bCC5bGeID4gc2Vuem9rdVwgOwor5L2V5pWFID4gbmFuaXl1ZVwgOwor5Lqi56ucID4ga291cnlvdVwgOwor54yb6YCyID4gbW91c2hpblwgOwor5LuL55eFID4ga2FpYnlvdVwgOwor5bCG5a6YID4gc2hvdWthblwgOwor5LuP55S7ID4gYnV0c3VnYVwgOwor6ISx5a2XID4gZGF0c3VqaVwgOwor54yb6L+9ID4gbW91dHN1aVwgOwor6LSF5rKiID4gemVpdGFrdVwgOwor5L+h5Y+3ID4gc2hpbmdvdVwgOwor55Sw5L2cID4gZGVuc2FrdVwgOwor5Lyv5qW9ID4gYmFrdXJvdVwgOwor5a6a5qC8ID4gdGVpa2FrdVwgOwor5bGx5LitID4gc2FuY2h1dVwgOwor6IO45oeQID4ga3lvdWthaVwgOwor5pys6IW5ID4gaG9ucHVrdVwgOwor5a++5a+pID4gdGFpc2hpblwgOwor5LqU56+AID4gZ29zZXRzdVwgOwor5Li76Jm5ID4gc2h1bmlqaVwgOwor5Lim6KO9ID4gbmFtaXNlaVwgOwor55Sa5YWtID4gamlucm9rdVwgOwor54uC6aiSID4ga3lvdXNvdVwgOwor6LWk5oGlID4gYWthaGFqaVwgOwor5pyx6IKJID4gc2h1bmlrdVwgOwor5L2Z5o6lID4geW9zZXRzdVwgOwor55Sy5LmZID4ga291b3RzdVwgOwor5LqV562SID4gaWR6dXRzdVwgOwor5pys6IO9ID4gaG9uJydub3VcIDsKK+S4h+ixoSA+IGJhbnNob3VcIDsKK+eRo+acqyA+IHNhbWF0c3VcIDsKK+mmmeaWmSA+IGtvdXJ5b3VcIDsKK+S/l+WQjSA+IHpva3VtZWlcIDsKK+eQg+eKtiA+IGt5dXVqb3VcIDsKK+iDtOaFviA+IGRvdXlva3VcIDsKK+S6uueahyA+IG5pbicnbm91XCA7CivkurrnmoQgPiBqaW50ZWtpXCA7CivkvI/msLQgPiBmdWt1c3VpXCA7CivlsJHlo64gPiBzaG91c291XCA7CivohIblvLEgPiB6ZWlqYWt1XCA7CivppZHmuIcgPiBraWthdHN1XCA7CivlsI/lpIkgPiBzaG91aGVuXCA7CivkuLvolqwgPiBzaHV5YWt1XCA7Civos7zmsYIgPiBrb3VreXV1XCA7CivlrpjmnIkgPiBrYW4nJ3l1dVwgOwor5LyR5q2iID4ga3l1dXNoaVwgOwor5LqG57ChID4gcnlvdWtlblwgOwor5LuW54mpID4gdGFidXRzdVwgOwor57696JmrID4gaGFtdXNoaVwgOwor55Sj5LyRID4gc2Fua3l1dVwgOwor6IOO5pWZID4gdGFpa3lvdVwgOwor5L2c5oimID4gc2FrdXNlblwgOwor5Lyv5p6XID4gYmVydXJpblwgOwor5L2c5oiQID4gc2FrdXNlaVwgOwor5a+S5b+DID4ga2Fuc2hpblwgOwor54uC6aKoID4ga3lvdWZ1dVwgOwor5a6j5pWZID4gc2Vua3lvdVwgOwor6IOM5pWZID4gaGFpa3lvdVwgOwor6LGK6IO4ID4gaG91a3lvdVwgOwor5p+z5p2hID4gcnl1dWpvdVwgOwor5bCG5aOrID4gc2hvdXNoaVwgOwor55Sf5LmzID4gc2Vpbnl1dVwgOwor5a6X5peoID4gc2h1dXNoaVwgOwor5L6v5Zu9ID4ga291a29rdVwgOwor576k6KGGID4gZ3Vuc2h1dVwgOwor5a6X5pePID4gc291em9rdVwgOwor6IKJ5rGgID4gbmlrdWNoaVwgOwor5qKT5YygID4gc2hpc2hvdVwgOwor5LiJ6KeSID4gc2Fua2FrdVwgOwor5LiL6KaLID4gc2hpdGFtaVwgOwor5LyP5qiLID4gZnVzZWRvaVwgOwor6IKJ5rGBID4gbmlrdWp1dVwgOwor5Lmz57OWID4gbnl1dXRvdVwgOwor546E57+BID4gZ2VuJydub3VcIDsKK+S4gOiqrCA+IGlzc2V0c3VcIDsKK+mnkOWxryA+IGNodXV0b25cIDsKK+WwseWKtCA+IHNodXVyb3VcIDsKK+iDuOW6lSA+IGt5b3V0ZWlcIDsKK+Wuo+aPmiA+IHNlbicneW91XCA7CivosrfniakgPiBrYWltb25vXCA7CivpoZvopoYgPiB0ZW5wdWt1XCA7Civkv67kuqQgPiBzaHV1a291XCA7CivlsYXlgJkgPiBpc291cm91XCA7CivmnI3ohrogPiBmdWt1eW91XCA7Civlrr/mgKggPiBzaHVrdWVuXCA7CivogIznq4sgPiBqaXJpdHN1XCA7Civmnq/muIcgPiBrb2thdHN1XCA7Civpoqjnv5IgPiBmdXVzaHV1XCA7CivkuZfnvoMgPiBqb3ViZWtpXCA7CivlsYjkvLggPiBrdXNzaGluXCA7Civkv5flg6cgPiB6b2t1c291XCA7CivpoZXopoEgPiBrZW4nJ3lvdVwgOwor6IKH5q2zID4gY2hvdXNhaVwgOwor5bGI5LyPID4ga3VwcHVrdVwgOwor5pys57WmID4gaG9ua3l1dVwgOwor5Lit6JGJID4gY2h1dXlvdVwgOwor572q6LehID4gemFpc2VraVwgOwor6aOb56SrID4gdHN1YnV0ZVwgOwor5p2h55uuID4gam91bW9rdVwgOwor5LiA6KanID4gaWNoaXJhblwgOwor5a+G5bqmID4gbWl0c3Vkb1wgOwor5LiK6KGoID4gam91aHlvdVwgOwor5LiL6KGAID4gZ2VrZXRzdVwgOwor5pyA6ImvID4gc2FpcnlvdVwgOwor6Laz5Yq0ID4gc29rdXJvdVwgOwor5a6I5penID4gc2h1a3l1dVwgOwor5bCP5ZaEID4gc2hvdXplblwgOwor5Luu5rG6ID4ga2FrZXRzdVwgOwor5a+b5a65ID4ga2FuJyd5b3VcIDsKK+S8keagoSA+IGt5dXVrb3VcIDsKK+S/oeS7sCA+IHNoaW5rb3VcIDsKK+agluaBryA+IHNlaXNva3VcIDsKK+S6leebriA+IHNlaW1va3VcIDsKK+WwmuWPiCA+IG5hb21hdGFcIDsKK+aal+i6jSA+IGFuJyd5YWt1XCA7CivogIPnqbYgPiBrb3VreXV1XCA7CivmmanpkJggPiBiYW5zaG91XCA7CivosqjniakgPiBrYW1vdHN1XCA7Civlrp/mioAgPiBqaXRzdWdpXCA7CivmnKznsaQgPiBob25rdWppXCA7CivohLHllrYgPiBkYXRzdWVpXCA7CivkvZPlvpcgPiB0YWl0b2t1XCA7CivmnKznsY0gPiBob25zZWtpXCA7CivmnKjnsr4gPiBtb2t1c2VpXCA7CivlsI/lk4EgPiBzaG91aGluXCA7CivmnInogbcgPiB5dXVzb2t1XCA7CivkvbPlrqIgPiBrYWt5YWt1XCA7Civnvo7ooZMgPiBiaWp1dHN1XCA7CivnvarosqwgPiB6YWlzZWtpXCA7CivotaTlrZAgPiBzZWtpc2hpXCA7CivlrrPlv4MgPiBnYWlzaGluXCA7Civkv5fkvZMgPiB6b2t1dGFpXCA7CivmmLzppJAgPiBjaHV1c2FuXCA7CivkuoznnYAgPiBuaWNoYWt1XCA7Civkv5fkvJ0gPiB6b2t1ZGVuXCA7Civkuobnn6UgPiByeW91Y2hpXCA7CivmoLjlrZAgPiBrYWt1c2hpXCA7CivmnKznrrEgPiBob25iYWtvXCA7CivmnI3nvaogPiBmdWt1emFpXCA7Civkuoznm7QgPiBuaWNob2t1XCA7CivppqzluIIgPiB1bWFpY2hpXCA7CivnkrDlooMgPiBrYW5reW91XCA7CivlsI/lj7IgPiBzaG91c2hpXCA7Civkv5fkurogPiB6b2t1amluXCA7CivkvZXlubQgPiBuYW4nJ25lblwgOwor54yb6KWyID4gbW91c2h1dVwgOwor5bCP5Y+jID4ga29ndWNoaVwgOwor5p2+54WkID4gc2hvdWJhaVwgOwor5pys562LID4gaG9uc3VqaVwgOwor5p2x54usID4gdG91ZG9rdVwgOwor542j6IKJID4ganV1bmlrdVwgOwor5Lit6IiIID4gY2h1dWtvdVwgOwor5LqM55m+ID4gbmloeWFrdVwgOwor5puy6IieID4ga3VzZW1haVwgOwor54+N542jID4gY2hpbmp1dVwgOwor5pys56ugID4gaG9uc2hvdVwgOwor5Li757+8ID4gc2h1eW9rdVwgOwor5L+X5LiWID4gem9rdXNlaVwgOwor576k6JC9ID4gZ3VucmFrdVwgOwor6aO0546JID4gYW1lZGFtYVwgOwor6ICE56KMID4gbW91cm9rdVwgOwor5a6u5bu3ID4ga3l1dXRlaVwgOwor5bCx5Lu7ID4gc2h1dW5pblwgOwor5aaZ6b2iID4gbXlvdXJlaVwgOwor5pmC6ZuoID4gc2hpZ3VyZVwgOwor5a6u5bqtID4ga3l1dXRlaVwgOwor5Lit6ISzID4gY2h1dW5vdVwgOwor5pyo56uLID4ga29kYWNoaVwgOwor546L56uLID4gb3VyaXRzdVwgOwor5bCP5YuHID4gc2hvdXl1dVwgOwor6IG35qipID4gc2hva2tlblwgOwor5L615YamID4gc2hpbmtvdVwgOwor54++5rOBID4gZ2Vua3lvdVwgOwor5a+E5a6/ID4ga2lzaHVrdVwgOwor6IOM5b6zID4gaGFpdG9rdVwgOwor57+S57e0ID4gc2h1dXJlblwgOwor5qC85aSWID4ga2FrdWdhaVwgOwor5LiK6JSfID4gam91em9rdVwgOwor5Lit6IOMID4gY2h1dXplaVwgOwor6LWk5aSWID4gc2VraWdhaVwgOwor5Lih6Ii3ID4gcnlvdWdlblwgOwor5a2j5pyrID4ga2ltYXRzdVwgOwor5p+T5paZID4gc2VucnlvdVwgOwor5p2+5r+kID4gc2hvdXRvdVwgOwor5p+E5p2TID4gaGlzaGFrdVwgOwor54us6LWwID4gZG9rdXNvdVwgOwor5Luu5qSNID4ga2FzaG9rdVwgOwor546J56i/ID4gZ3lva2tvdVwgOwor5bCP5YiAID4gc2hvdXRvdVwgOwor5L6/5L6rID4gYmVuJyduZWlcIDsKK+mgreiouyA+IHRvdWNodXVcIDsKK+S7luauuiA+IHRhc2F0c3VcIDsKK+S4i+iRiSA+IHNoaXRhYmFcIDsKK+i2s+S7oyA+IGFzaGlkYWlcIDsKK+aciee1piA+IHl1dWt5dXVcIDsKK+S+v+S9niA+IGJlbicnbmVpXCA7CivkuK3ogIEgPiBjaHV1cm91XCA7CivmnIjntaYgPiBnZWtreXV1XCA7Civpp5DlnKggPiBjaHV1emFpXCA7CivpppbluK0gPiBzaHVzZWtpXCA7CivmnInntYIgPiB5dXVzaHV1XCA7CivkuKHohZUgPiByeW91dWRlXCA7CivnjYToiI4gPiBnb2t1c2hhXCA7CivpoK3op5IgPiB0b3VrYWt1XCA7CivpoZvokL0gPiB0ZW5yYWt1XCA7CivlsI/lhZogPiBzaG91dG91XCA7CivkvqDli4cgPiBreW91eXV1XCA7CivlsI7lhaUgPiBkb3VueXV1XCA7CivkvJ3mib8gPiBkZW5zaG91XCA7Civog7jlo7AgPiBreW91c2VpXCA7CivkuZnnqK4gPiBvdHN1c2h1XCA7CivkuZfnqY0gPiBqb3VzZWtpXCA7CivniZ3pto8gPiBtZW5kb3JpXCA7CivnvqToh6MgPiBndW5zaGluXCA7CivlrZ/mmKUgPiBtb3VzaHVuXCA7Civkvpvli6IgPiB0b21vemVpXCA7Civkub7nlZkgPiBrYW5yeXV1XCA7Civlr6nllY8gPiBzaGlubW9uXCA7Civos47mpa0gPiBzZW5neW91XCA7Civos57mna8gPiBzaG91aGFpXCA7Civku4vmrrsgPiBrYWlrYWt1XCA7CivkuIDokYkgPiBpY2hpeW91XCA7CivmnIDntYIgPiBzYWlzaHV1XCA7CivkubPnmYwgPiBueXV1Z2FuXCA7CivlsIblhbUgPiBzaG91aGVpXCA7CivniZ3ps6UgPiBtZW5kb3JpXCA7Civku7DmnJsgPiBneW91Ym91XCA7Civlrpflu58gPiBzb3VieW91XCA7Civkub7nk6IgPiBrYW5weW91XCA7CivogL3murogPiB0YW5kZWtpXCA7CivkvY/lroUgPiBqdXV0YWt1XCA7CivkuKHogIUgPiByeW91c2hhXCA7CivotoXli6QgPiBjaG91a2luXCA7CivosqvmtYEgPiBrYW5yeXV1XCA7CivlrpjluoEgPiBrYW5jaG91XCA7CivogIHnl4UgPiByb3VieW91XCA7CivlrprluK0gPiBqb3VzZWtpXCA7Civos5PmoLwgPiBoaW5rYWt1XCA7CivmnJ3npLwgPiBjaG91cmVpXCA7CivlsI/kvr8gPiBzaG9uYmVuXCA7Civlr7jliocgPiBzdW5nZWtpXCA7CivlsIHlhaUgPiBmdXVueXV1XCA7CivorabpkJggPiBrZWlzaG91XCA7CivmmKXpm7cgPiBzaHVucmFpXCA7Civlr5Llm70gPiBrYW5rb2t1XCA7Civkvq/kvK8gPiBrb3VoYWt1XCA7CivkuK3nt6ggPiBjaHV1aGVuXCA7CivmnKrnnYAgPiBtaWNoYWt1XCA7CivmnKznnIEgPiBob25zaG91XCA7Civmm7jntYwgPiBzaG9reW91XCA7Civlr7jliLsgPiBzdW5rb2t1XCA7CivkuovniakgPiBqaWJ1dHN1XCA7Civku5Xmpa0gPiBzaGl3YXphXCA7CivpppblsIYgPiBzaHVzaG91XCA7CivkvJHmiKYgPiBreXV1c2VuXCA7Civnj77mpa0gPiBnZW5neW91XCA7Civmm7PntrIgPiBoaWtpYW1pXCA7CivlsIrkv6EgPiBzb25zaGluXCA7CivkuK3ntpkgPiBjaHV1a2VpXCA7CivotoXlh6EgPiBjaG91Ym9uXCA7Civku7Lmlq0gPiBjaHV1ZGFuXCA7CivlsI/kvJ0gPiBzaG91ZGVuXCA7Civpnqbpn4YgPiBidXJhbmtvXCA7CivosarnkIMgPiBnb3VreXV1XCA7CivkubHnlKggPiByYW4nJ3lvdVwgOwor6aCY6KejID4gcnlvdWthaVwgOwor5LiD6ImyID4gbmFuYWlyb1wgOwor5LiK6IaKID4gam91aGFrdVwgOwor5L2V5aW0ID4gZG95YXRzdVwgOwor5p6X5qWtID4gcmluZ3lvdVwgOwor5LiA6Iq4ID4gaWNoaWdlaVwgOwor5LyR5oapID4ga3l1dWtlaVwgOwor5p2x5riFID4gdG91c2hpblwgOwor54qs6YeYID4gaW51a3VnaVwgOwor55CD5qC5ID4ga3l1dWtvblwgOwor5pyq55m6ID4gbWloYXRzdVwgOwor5bCP5Lq6ID4gc2hvdW5pblwgOwor5L2X5aOwID4gd2FiaWdvZVwgOwor5LiA6ImyID4gaGl0b2lyb1wgOwor5Li7562LID4gc2h1c3VqaVwgOwor5LiL6ISaID4ga2FreWFrdVwgOwor5Lit57O4ID4gY2h1dWl0b1wgOwor576k576KID4gZ3VuJyd5b3VcIDsKK+izh+agvCA+IHNoaWtha3VcIDsKK+abuOexjSA+IHNob3Nla2lcIDsKK+Wuv+WgtCA+IHNodWt1YmFcIDsKK+aYpemXmCA+IHNodW50b3VcIDsKK+WwguS/riA+IHNlbnNodXVcIDsKK+Wwj+S5lyA+IHNob3Vqb3VcIDsKK+S8uOWxlSA+IHNoaW50ZW5cIDsKK+S+i+WIuyA+IHJlaWtva3VcIDsKK+aatOiQvSA+IGJvdXJha3VcIDsKK+eLgui6gSA+IGt5b3Vzb3VcIDsKK+iyqOauliA+IGthc2hva3VcIDsKK+S6rOa0myA+IGtlaXJha3VcIDsKK+S8muW/gyA+IGthaXNoaW5cIDsKK+S4reexsyA+IGNodXViZWlcIDsKK+S6pOa4iSA+IGtvdXNob3VcIDsKK+mgjOipniA+IHNob3VzaGlcIDsKK+S4h+iDvSA+IG1hbicnbm91XCA7CivkuInogrIgPiBzYW4nJ2lrdVwgOwor5LiJ6IKhID4gc2FubWF0YVwgOwor5LiA6IazID4gaWNoaXplblwgOwor5a2m5omNID4gZ2FrdXNhaVwgOwor54m56Zu7ID4gdG9rdWRlblwgOwor6aCG6Kq/ID4ganVuY2hvdVwgOwor5769566SID4gaGFib3VraVwgOwor6ISa5YWJID4ga3lha2tvdVwgOwor5a6a5a6/ID4gam91eWFkb1wgOwor5a+p5YikID4gc2hpbnBhblwgOwor54us6KOBID4gZG9rdXNhaVwgOwor576K6IacID4geW91bWFrdVwgOwor5pyr55SfID4gc3VlbmFyaVwgOwor5p+75a+fID4gc2FzYXRzdVwgOwor6LGq54mpID4gZXJhbW9ub1wgOwor5Lit56+HID4gY2h1dWhlblwgOwor5bCC5Lu7ID4gc2VuJyduaW5cIDsKK+e+iuiFuCA+IHlvdWNob3VcIDsKK+S4iue/vCA+IGpvdXlva3VcIDsKK+S8keaAoCA+IGt5dXV0YWlcIDsKK+S5seeNsiA+IHJhbmtha3VcIDsKK+S6pOa1gSA+IGtvdXJ5dXVcIDsKK+WnpumAmiA+IGthbnRzdXVcIDsKK+e+qee1tiA+IGdpemV0c3VcIDsKK+aYh+mghiA+IHNob3VqdW5cIDsKK+iyneavkiA+IGthaWRva3VcIDsKK+WumOWtpiA+IGthbmdha3VcIDsKK+ePvuaciSA+IGdlbicneXV1XCA7Civosp3mrrwgPiBrYWlnYXJhXCA7Civosp3mrrsgPiBrYWlnYXJhXCA7Civos57mj5ogPiBzaG91eW91XCA7CivkuK3nrYkgPiBjaHV1dG91XCA7Civnianpn7MgPiBtb25vb3RvXCA7CivkubPnirYgPiBueXV1am91XCA7CivkuLvnpZ4gPiBzaHVzaGluXCA7CivmnpfmnKggPiByaW5ib2t1XCA7Civnjonnkr0gPiBneW9rdWppXCA7CivkvJrluK0gPiBrYWlzZWtpXCA7Civni7zol4kgPiByb3V6ZWtpXCA7CivnvorogokgPiB5b3VuaWt1XCA7Civnv7znirYgPiB5b2t1am91XCA7CivpoJDooYAgPiB5b2tldHN1XCA7CivpoqjnlrkgPiBmdXVzaGluXCA7CivkvJHlu7cgPiBreXV1dGVpXCA7CivnjonnkZsgPiBneW9rdWVpXCA7Civlrq7ln44gPiBreXV1am91XCA7CivotoXkurogPiBjaG91amluXCA7Civlrr/llrYgPiBzaHVrdWVpXCA7Civmnp3ml48gPiBzaGl6b2t1XCA7Civku5bml6UgPiB0YWppdHN1XCA7CivogIHnhp8gPiByb3VqdWt1XCA7CivoroPos54gPiBzYW5zaG91XCA7Civos4fmlpkgPiBzaGlyeW91XCA7Civpp5DlhbUgPiBjaHV1aGVpXCA7CivkuIDnvqQgPiBpY2hpZ3VuXCA7CivkvY7lnKcgPiB0ZWlhdHN1XCA7Civmnb7mpZMgPiBzaG91ZnV1XCA7Civku4rmnJ0gPiBrb25jaG91XCA7CivkuLnnoqcgPiB0YW5wZWtpXCA7Civmmq7oibIgPiBib3Nob2t1XCA7Civku5XmlrkgPiBzaGlrYXRhXCA7Civpo6LmuIcgPiBraWthdHN1XCA7Civku4rmm7QgPiBpbWFzYXJhXCA7Civlr4blkYogPiBtaWtrb2t1XCA7CivmmIfpmY0gPiBzaG91a291XCA7Civniq/ot6EgPiBoYW5zZWtpXCA7CivosrTmnK0gPiBraXNhdHN1XCA7Civpo4TnhLYgPiBoeW91emVuXCA7Civku4rmmoEgPiBrb25neW91XCA7Civml6nppqwgPiBoYXlhdW1hXCA7CivkvZzlk4EgPiBzYWt1aGluXCA7CivosqDmpbUgPiBmdWt5b2t1XCA7CivkurrmoLwgPiBqaW5rYWt1XCA7CivmnKzniakgPiBob25tb25vXCA7Civku4rmmYIgPiBpbWFkb2tpXCA7CivmnaXmrbQgPiByYWlyZWtpXCA7Civpn7PoqLMgPiBvbicneWFrdVwgOwor5LuK5pilID4ga29uc2h1blwgOwor5LuK5piUID4ga29uc2VraVwgOwor6IGa5paCID4gc2h1dXJlblwgOwor5LuP5pWZID4gYnVra3lvdVwgOwor6LKv5pyoID4gY2hvYm9rdVwgOwor5pyo54qAID4gbW9rdXNlaVwgOwor6LK35pilID4gYmFpc2h1blwgOwor5a+M5YqbID4gZnVyeW9rdVwgOwor5LiK57SaID4gam91a3l1dVwgOwor5LiK57SZID4gdXdhZ2FtaVwgOwor6IGa5pWjID4gc2h1dXNhblwgOwor5LiK57SQID4gdXdhaGltb1wgOwor5LiJ57SaID4gc2Fua3l1dVwgOwor5LuK5pa5ID4gaW1hZ2F0YVwgOwor5Lih56iuID4gcnlvdXNodVwgOwor5pyo54mIID4gbW9rdWhhblwgOwor5pyo54mHID4gbW9rdWhlblwgOwor5a2d5b+DID4ga291c2hpblwgOwor54uC6KmpID4ga3lvdXNoaVwgOwor6IOM5ZynID4gaGFpYXRzdVwgOwor5Lm+5rqcID4ga2Fucnl1dVwgOwor6IKJ5by+ID4gbmlrdWRhblwgOwor542E56qTID4gZ29rdXNvdVwgOwor5a2m5bm0ID4gZ2FrdW5lblwgOwor6IGW5pWZID4gc2Vpa3lvdVwgOwor5a6i5ZyfID4ga3lha3Vkb1wgOwor6K206LKsID4ga2Vuc2VraVwgOwor5pyN55SoID4gZnVrdXlvdVwgOwor5L2O5ZSxID4gdGVpc2hvdVwgOwor5pen6aKoID4ga3l1dWZ1dVwgOwor54yu57SNID4ga2VuJydub3VcIDsKK+WtmOW/tSA+IHpvbicnbmVuXCA7CivnjofniL4gPiBzb3RzdWppXCA7CivlrabluL0gPiBnYWt1Ym91XCA7CivmmI7pj6EgPiBtZWlreW91XCA7CivmnKznhLYgPiBob24nJ25lblwgOwor54uC6KiAID4ga3lvdWdlblwgOwor5LuV5o6bID4gc2hpa2FrZVwgOwor5qCq5Yi4ID4ga2FidWtlblwgOwor6aOb5rKrID4gaGltYXRzdVwgOwor6aKo54uCID4gZnV1a3lvdVwgOwor5a2Q5oGvID4gc2hpc29rdVwgOwor6aas5Yy5ID4gYmFoaXRzdVwgOwor5pu455uuID4gc2hvbW9rdVwgOwor5LiK566xID4gdXdhYmFrb1wgOwor6IO45YOPID4ga3lvdXpvdVwgOwor5LyP5bCEID4gZnVrdXNoYVwgOwor6IO05YWDID4gZG91bW90b1wgOwor5a6a5ZynID4gdGVpYXRzdVwgOwor5pqX6ImyID4gYW5zaG9rdVwgOwor5a6M5aOBID4ga2FuYmVraVwgOwor6IOG5ZqiID4gdGFuJydub3VcIDsKK+ixiueGnyA+IGhvdWp1a3VcIDsKK+S4iuetliA+IGpvdXNha3VcIDsKK+mhjue0kCA+IGFnb2hpbW9cIDsKK+acqOeCrSA+IG1va3V0YW5cIDsKK+S9meWKmyA+IHlvcnlva3VcIDsKK+S9k+WNlCA+IHRhaWt5b3VcIDsKK+mmluWUsSA+IHNodXNob3VcIDsKK+S4reebpCA+IGNodXViYW5cIDsKK+agoeWJhyA+IGtvdXNva3VcIDsKK+iAs+agkyA+IG1pbWlzZW5cIDsKK+S9meWJsiA+IHlva2F0c3VcIDsKK+S4h+etliA+IGJhbnNha3VcIDsKK+S7pOaBryA+IHJlaXNva3VcIDsKK+eJh+mdoiA+IGthdGFtZW5cIDsKK+WvhuWEgCA+IG1pdHN1Z2lcIDsKK+eJuemFjSA+IHRva3VoYWlcIDsKK+S5s+a4hSA+IG55dXVzZWlcIDsKK+aXpemcsiA+IG5pY2hpcm9cIDsKK+eMruetliA+IGtlbnNha3VcIDsKK+S9meWIhyA+IHlvc2V0c3VcIDsKK+S6q+aciSA+IGt5b3V5dXVcIDsKK+iBtOW+kyA+IGNob3VqdXVcIDsKK+S5s+a2siA+IG55dXVla2lcIDsKK+aguOS7gSA+IGtha3VqaW5cIDsKK+WuouWToSA+IGt5YWt1aW5cIDsKK+aYn+i+sCA+IHNlaXNoaW5cIDsKK+eMrueriyA+IGtvbmRhdGVcIDsKK+S4oeecvCA+IHJ5b3VnYW5cIDsKK+S9leWHpiA+IGRva29pcmFcIDsKK+ixhueCrSA+IG1hbWV0YW5cIDsKK+Wun+WToSA+IGppdHN1aW5cIDsKK+eJuemBuCA+IHRva3VzZW5cIDsKK+Wuo+WRiiA+IHNlbmtva3VcIDsKK+S9neWDgiA+IHNlbXVzaGlcIDsKK+ePjeacrCA+IGNoaW5wb25cIDsKK+S7o+W9uSA+IGRhaXlha3VcIDsKK+S5sea1gSA+IHJhbnJ5dXVcIDsKK+S4gOerryA+IGlwcGFzaGlcIDsKK+S4ieeniyA+IHNhbnNodXVcIDsKK+WuueWFsSA+IHlvdWt5b3VcIDsKK+agoeWDlSA+IGtvdWJva3VcIDsKK+ePjeabuCA+IGNoaW5zaG9cIDsKK+S9leWFsSA+IG5hbnRvbW9cIDsKK+WvkuS4rSA+IGthbmNodXVcIDsKK+S4nuebuCA+IGpvdXNob3VcIDsKK+S4reeTtiA+IGNodXViaW5cIDsKK+S4h+emjyA+IG1hbnB1a3VcIDsKK+adpeacnSA+IHJhaWNob3VcIDsKK+iBt+W3pSA+IHNob2trb3VcIDsKK+WuheWcsCA+IHRha3VjaGlcIDsKK+S5s+axgSA+IG55dXVqdXVcIDsKK+WuruWIkSA+IGt5dXVrZWlcIDsKK+mjvOaWmSA+IHNoaXJ5b3VcIDsKK+S8j+WljyA+IGZ1a3Vzb3VcIDsKK+Wun+WPjiA+IGppc3NodXVcIDsKK+agoeWAiSA+IGF6ZWt1cmFcIDsKK+e/leeEtiA+IGt5dXV6ZW5cIDsKK+aWsOmuriA+IHNoaW5zZW5cIDsKK+ixiua8gSA+IGhvdXJ5b3VcIDsKK+itq+iogCA+IHV3YWdvdG9cIDsKK+acnea9riA+IGFzYXNoaW9cIDsKK+miqOa9riA+IGZ1dWNob3VcIDsKK+eQg+W9oiA+IGt5dXVrZWlcIDsKK+iDtOS4rSA+IGRvdW5ha2FcIDsKK+mgmuiCiSA+IGtlaW5pa3VcIDsKK+Wun+WNsCA+IGppdHN1aW5cIDsKK+S9nOS+iyA+IHNha3VyZWlcIDsKK+acrOa1gSA+IGhvbnJ5dXVcIDsKK+WvhuS6iyA+IG1pdHN1amlcIDsKK+S7sOWxsSA+IGd5b3VzYW5cIDsKK+S7j+aBqSA+IGJ1dHN1b25cIDsKK+S7luW+iyA+IHRhcml0c3VcIDsKK+adpeaYpSA+IHJhaWhhcnVcIDsKK+S5s+atryA+IG55dXVzaGlcIDsKK+S8keWgtCA+IGt5dXVqb3VcIDsKK+ePvuW9uSA+IGdlbicnZWtpXCA7CivkuIDnpLwgPiBpY2hpcmVpXCA7CivpoIboia8gPiBqdW5yeW91XCA7Civku5XlvaIgPiBzaGlrYXRhXCA7CivkuIrnn7MgPiB1d2Fpc2hpXCA7CivkuKHnlKggPiByeW91eW91XCA7CivkuKHnlJ8gPiByeW91c2VpXCA7Civlrp/li5kgPiBqaXRzdW11XCA7CivkupTmnIggPiBzYXRzdWtpXCA7CivlrZDlsYAgPiBrb2t5b2t1XCA7CivkuI3nnYAgPiBmdWNoYWt1XCA7CivkuIvnnYAgPiBzaGl0YWdpXCA7CivmnKrmsbogPiBtaWtldHN1XCA7CivlpKfpu5IgPiBkYWlrb2t1XCA7CivmoKHkuoYgPiBrb3VyeW91XCA7CivmmILpgLIgPiBrb3VzaGluXCA7Civku5XluqYgPiBzaGl0YWt1XCA7CivlrablpJYgPiBnYWt1Z2FpXCA7Civlrp/liKkgPiBqaXRzdXJpXCA7CivlrpfljKAgPiBzb3VzaG91XCA7CivpoKzntIUgPiBob29iZW5pXCA7CivlrZDlrq4gPiBzaGlreXV1XCA7CivpnaLplbcgPiBvbW9uYWdhXCA7CivorZjoqp4gPiBzaGlraWdvXCA7CivkvY7kv5cgPiB0ZWl6b2t1XCA7Civlrablo6sgPiBnYWt1c2hpXCA7CivkuIvnm64gPiBzaGl0YW1lXCA7CivlpYfpqqggPiBraWtvdHN1XCA7CivmnY/mnpcgPiBreW91cmluXCA7CivlrZHlrZEgPiBib3VmdXJpXCA7CivogZblvrMgPiBzZWl0b2t1XCA7Civmmpfnt5EgPiBhbnJ5b2t1XCA7CivppqzkuLsgPiBiYW51c2hpXCA7CivnibnotaYgPiB0b2t1c2hhXCA7CivkuI3nmbogPiBmdWhhdHN1XCA7CivkuZ3ms4kgPiBreXV1c2VuXCA7CivkvZXkurogPiBuYW5waXRvXCA7CivkvI/lnKggPiBmdWt1emFpXCA7CivogbflrokgPiBzaG9rdWFuXCA7CivlrprliYcgPiB0ZWlzb2t1XCA7CivmlrDpppkgPiBzaGlua291XCA7Civmma/oibIgPiBrZXNoaWtpXCA7CivlrprliLsgPiB0ZWlrb2t1XCA7CivmnZHmnIkgPiBzb24nJ3l1dVwgOwor5p2Q5pyoID4gemFpbW9rdVwgOwor5pyn5rCXID4gb2Jvcm9nZVwgOwor5LiH55uuID4gYmFubW9rdVwgOwor6LK35b6XID4ga2FpZG9rdVwgOwor6Zyy6aqoID4gcm9rb3RzdVwgOwor5LuP5bqnID4gYnV0c3V6YVwgOwor6aOb5pytID4gaGlzYXRzdVwgOwor5Lyd5ZSxID4gZGVuc2hvdVwgOwor5aSn6be6ID4gZGFpc2FnaVwgOwor5LiK55m9ID4gam91aGFrdVwgOwor6KuW6aeBID4gcm9uYmFrdVwgOwor6aKo5rWBID4gZnV1cnl1dVwgOwor5a2m5aCxID4gZ2FrdWhvdVwgOwor6IKJ5aOwID4gbmlrdXNlaVwgOwor5Luj5bCGID4gZGFpc2hvdVwgOwor6LGK5rKDID4gaG91eW9rdVwgOwor5paw6aSoID4gc2hpbmthblwgOwor5Lya5ZWGID4ga2Fpc2hvdVwgOwor6IGW5bufID4gc2VpYnlvdVwgOwor5a625Li7ID4geWFudXNoaVwgOwor5LiA552AID4gaXRjaGFrdVwgOwor5LiA55y8ID4gaWNoaWdhblwgOwor5LiA55y4ID4gaWNoaWJvdVwgOwor6K2Y6KaLID4gc2hpa2tlblwgOwor5p+Q5Zu9ID4gYm91a29rdVwgOwor5p2J5p2QID4gc3VnaXphaVwgOwor5LuB5b+DID4gamluc2hpblwgOwor5LiA55ygID4gaWNoaW1pblwgOwor5LuB5b6zID4gamludG9rdVwgOwor5a6b5YWIID4gYXRlc2FraVwgOwor55CG5bGIID4gcmlrdXRzdVwgOwor5paw6aKoID4gc2hpbnB1dVwgOwor5LiA55u0ID4gaXRjaG9rdVwgOwor5LuK5bm0ID4ga29uJyduZW5cIDsKK+iDmuS5syA+IGhhaW55dXVcIDsKK+S6jOaXpSA+IGZ1dHN1a2FcIDsKK+aWremjnyA+IGRhbmppa2lcIDsKK+WujOWLnSA+IGthbnNob3VcIDsKK+S5s+ajkiA+IG55dXVib3VcIDsKK+S5neatuyA+IGt5dXVzaGlcIDsKK+S4i+eVpSA+IGdlcnlha3VcIDsKK+eRnuWFhiA+IHp1aWNob3VcIDsKK+aWsOmhlCA+IHNoaW5nYW9cIDsKK+S4h+eXhSA+IG1hbmJ5b3VcIDsKK+iDjOS/oSA+IGhhaXNoaW5cIDsKK+iukuiHoyA+IHphbnNoaW5cIDsKK+S4u+a9riA+IHNodWNob3VcIDsKK+mfu+iEmiA+IGlua3lha3VcIDsKK+S4gOeZuiA+IGlwcGF0c3VcIDsKK+S4iueUsyA+IGpvdXNoaW5cIDsKK+e/vOajnyA+IHlva3V0b3VcIDsKK+S4ieeUtyA+IHNhbicnbmFuXCA7CivmnZDmlpkgPiB6YWlyeW91XCA7Civlrpjlg5ogPiBrYW5yeW91XCA7Civmlofps6UgPiBidW5jaG91XCA7CivkurrlvrMgPiBuaW50b2t1XCA7Civku7DlpKkgPiBneW91dGVuXCA7Civos4rlrrMgPiB6b2t1Z2FpXCA7CivkuK3ngrkgPiBjaHV1dGVuXCA7CivpoYznm64gPiBkYWltb2t1XCA7CivkurrlvaIgPiBuaW5neW91XCA7CivniZvou4ogPiBneXV1c2hhXCA7Civos4rlrZAgPiB6b2t1c2hpXCA7CivmnKzmpa0gPiBob25neW91XCA7CivogIHmnb4gPiByb3VzaG91XCA7Civml6fpgqYgPiBreXV1aG91XCA7Civmnpzlrp8gPiBrYWppdHN1XCA7CivkuIDnlbMgPiBpY2hpam91XCA7CivosqflvLEgPiBoaW5qYWt1XCA7CivniIbpoqggPiBiYWt1ZnV1XCA7CivogIHmnL0gPiByb3VreXV1XCA7Civml6npgJ8gPiBzYXNzb2t1XCA7Civml6fpgZMgPiBreXV1ZG91XCA7CivogIHmnKggPiByb3Vib2t1XCA7Civnibnoqo0gPiB0b2t1bmluXCA7CivkuIDnlLcgPiBpY2hpbmFuXCA7CivmnKzmo5ogPiBob25kYW5hXCA7CivlppnotqMgPiBteW91c2h1XCA7CivpnIrps6UgPiByZWljaG91XCA7CivnianosaEgPiBidXNzaG91XCA7Civku4/lr7ogPiBidXRzdWppXCA7CivmnKvmoqIgPiBtYXNzaG91XCA7Civoq5bpm6MgPiByb24nJ25hblwgOwor5LiK546JID4gam91ZGFtYVwgOwor5a6a5LyRID4gdGVpa3l1dVwgOwor6KuW6ZuGID4gcm9uc2h1dVwgOwor5p6X5a2mID4gcmluZ2FrdVwgOwor5a2m5ZWPID4gZ2FrdW1vblwgOwor6LGq5pePID4gZ291em9rdVwgOwor6IG35aC0ID4gc2hva3ViYVwgOwor5pys5qC8ID4gaG9ua2FrdVwgOwor5aW96YGpID4ga291dGVraVwgOwor5Lya5YmHID4ga2Fpc29rdVwgOwor5Li75rWBID4gc2h1cnl1dVwgOwor5pei6L+wID4ga2lqdXRzdVwgOwor576p54OIID4gZ2lyZXRzdVwgOwor54mp6K2wID4gYnV0c3VnaVwgOwor6LK45a62ID4ga2FzaGl5YVwgOwor5pyJ5q+SID4geXV1ZG9rdVwgOwor5paw6ZaLID4gc2hpbmthaVwgOwor5LiL54mpID4ga2FidXRzdVwgOwor5LuZ5aWzID4gc2VuJydueW9cIDsKK+eIhumbtyA+IGJha3VyYWlcIDsKK+S8j+WLoiA+IGZ1c2V6ZWlcIDsKK+eJueijvSA+IHRva3VzZWlcIDsKK+S4iueJqSA+IGpvdW1vbm9cIDsKK+eLguiAhSA+IGt5b3VzaGFcIDsKK+aeoOWkliA+IHdha3VnYWlcIDsKK+acrOacnSA+IGhvbmNob3VcIDsKK+eJueijhSA+IHRva3Vzb3VcIDsKK+mgmOepuiA+IHJ5b3VrdXVcIDsKK+WtpuWQjSA+IGdha3VtZWlcIDsKK+aXp+i5nyA+IGZ1cnVhdG9cIDsKK+acq+acnyA+IG1hdHN1Z29cIDsKK+acqOadryA+IG1va3VoYWlcIDsKK+isrOirliA+IGJ5dXVyb25cIDsKK+acqOadkCA+IG1va3V6YWlcIDsKK+S6q+W5tCA+IGt5b3VuZW5cIDsKK+WtpuWPiyA+IGdha3V5dXVcIDsKK+eMqeeMqSA+IHNob3Vqb3VcIDsKK+S8keWIiiA+IGt5dXVrYW5cIDsKK+acqOacrCA+IG1va3Vob25cIDsKK+S4i+eGsSA+IGdlbmV0c3VcIDsKK+eJqeiovCA+IGJ1c3Nob3VcIDsKK+WuieS9miA+IGFuJydpdHN1XCA7CivmnaXlvqkgPiByYWlmdWt1XCA7Civml6fot6EgPiBmdXJ1YXRvXCA7Civpm7fps6UgPiByYWljaG91XCA7Civku5nlooMgPiBzZW5reW91XCA7CivkuLnmr5IgPiB0YW5kb2t1XCA7Civml6fotr4gPiBreXV1c2hpXCA7CivmnKjmm5wgPiBtb2t1eW91XCA7Civmm7LmtaYgPiBreW9rdWhvXCA7CivpoZ7nhLwgPiBydWlzaG91XCA7CivpoqjmoLwgPiBmdXVrYWt1XCA7CivnkIPloLQgPiBreXV1am91XCA7Civmnb7lsYsgPiBtYXRzdXlhXCA7CivlrozkuoYgPiBrYW5yeW91XCA7CivpoK3nm64gPiB0b3Vtb2t1XCA7CivkuZ3mnIggPiBrdWdhdHN1XCA7CivkvI/lhbUgPiBmdWt1aGVpXCA7Civnibnono0gPiB0b2t1eXV1XCA7CivkubHmkoMgPiByYW5nZWtpXCA7CivnjaPmrLIgPiBqdXV5b2t1XCA7CivlpKnpoJggPiB0ZW5yeW91XCA7CivosqjlrqIgPiBrYWt5YWt1XCA7CivosYbmnb8gPiBtYW1laXRhXCA7CivlpKnpoIIgPiB0ZW5jaG91XCA7CivmnKjmmJ8gPiBtb2t1c2VpXCA7CivmnJ/mnKsgPiBraW1hdHN1XCA7Civos7zlhaUgPiBrb3VueXV1XCA7CivppIXlsYsgPiBtb2NoaXlhXCA7Civlq6HmiqsgPiBjaGFrdWhpXCA7CivmnJ3mnaUgPiBjaG91cmFpXCA7CivorKzoposgPiBieXV1a2VuXCA7CivpnIfpp60gPiBzaGluZ2FpXCA7CivkuIvngasgPiBzaGl0YWJpXCA7CivosYbmnKwgPiBtYW1laG9uXCA7Civos57lk4EgPiBzaG91aGluXCA7CivlrabliLYgPiBnYWt1c2VpXCA7CivlppnoqIggPiBteW91a2VpXCA7Civku4rlpJUgPiBrb24nJ3l1dVwgOwor54yf54qsID4gcnlvdWtlblwgOwor5Lmd5pifID4ga3l1dXNlaVwgOwor5ae/57W1ID4gc3VnYXRhZVwgOwor5aSx6ZmlID4gc2hpa2thblwgOwor6IG35ZOhID4gc2hva3VpblwgOwor5pa56YedID4gaG91c2hpblwgOwor5aSc6aOfID4geWFzaG9rdVwgOwor55CD5ZujID4ga3l1dWRhblwgOwor5paw6YutID4gc2hpbicnZWlcIDsKK+S4reautSA+IGNodXVkYW5cIDsKK+S4oea0iyA+IHJ5b3V5b3VcIDsKK+WkmumjnyA+IHRhc2hva3VcIDsKK+iCluWDjyA+IHNob3V6b3VcIDsKK+adseWxiyA+IGF6dW1heWFcIDsKK+ism+iqrSA+IGtvdWRva3VcIDsKK+WkqembsiA+IGFtYWd1bW9cIDsKK+S4jea9lCA+IGZ1a2V0c3VcIDsKK+WtpuWGhSA+IGdha3VuYWlcIDsKK+S4reatoyA+IGNodXVzZWlcIDsKK+S4reatoiA+IGNodXVzaGlcIDsKK+aWh+mdqSA+IGJ1bmtha3VcIDsKK+adn+W4ryA+IHNva3V0YWlcIDsKK+acn+aXpSA+IGtpaml0c3VcIDsKK+ism+iplSA+IGtvdWh5b3VcIDsKK+mjn+W+jCA+IHNob2t1Z29cIDsKK+S4jea7hSA+IGZ1bWV0c3VcIDsKK+eMm+eIhiA+IG1vdWJha3VcIDsKK+WtpuWDpyA+IGdha3Vzb3VcIDsKK+acneaWuSA+IGFzYWdhdGFcIDsKK+WklemiqCA+IHl1dWthemVcIDsKK+mfs+evgCA+IG9uc2V0c3VcIDsKK+Wkp+mZuCA+IHRhaXJpa3VcIDsKK+S5s+aIvyA+IG55dXVib3VcIDsKK+S8keS8miA+IGt5dXVrYWlcIDsKK+aWh+mbhiA+IGJ1bnNodXVcIDsKK+S4oeawjyA+IHJ5b3VzaGlcIDsKK+S7j+WbvSA+IGZ1a2tva3VcIDsKK+iBtOWPliA+IGNob3VzaHVcIDsKK+iBt+WNsCA+IHNob2t1aW5cIDsKK+eLrOecvCA+IGRva3VnYW5cIDsKK+acneaUvyA+IGNob3VzZWlcIDsKK+S4i+a5ryA+IHNoaW1veXVcIDsKK+miqOaVmSA+IGZ1dWt5b3VcIDsKK+aWsOmFkiA+IHNoaW5zaHVcIDsKK+WknOmcsiA+IHlvdHN1eXVcIDsKK+mdouiyrCA+IG1lbnNla2lcIDsKK+S6uuWjsCA+IGhpdG9nb2VcIDsKK+ePjeWunSA+IGNoaW5wb3VcIDsKK+e6kui2syA+IHRlbnNva3VcIDsKK+S4u+agvCA+IHNodWtha3VcIDsKK+adkeW6hCA+IHNvbnNob3VcIDsKK+WmhOiplSA+IG1vdWh5b3VcIDsKK+iBt+WLmSA+IHNob2t1bXVcIDsKK+mjr+WxiyA+IG1lc2hpeWFcIDsKK+aYhuiZqyA+IGtvbmNodXVcIDsKK+adv+WjgSA+IGl0YWthYmVcIDsKK+aWsOmDjiA+IHNoaW5yb3VcIDsKK+S6uuWigyA+IGppbmt5b3VcIDsKK+e6j+i2syA+IHRlbnNva3VcIDsKK+S7suWGrCA+IGNodXV0b3VcIDsKK+S5vuW+syA+IGtlbnRva3VcIDsKK+abuOajmiA+IHNob2RhbmFcIDsKK+WlveiqvyA+IGtvdWNob3VcIDsKK+WklemdhCA+IHl1dW1veWFcIDsKK+aWsOmBuCA+IHNoaW5zZW5cIDsKK+adpeWuhSA+IHJhaXRha3VcIDsKK+e9rueJqSA+IG9raW1vbm9cIDsKK+eNhOatuyA+IGdva3VzaGlcIDsKK+acq+aKgCA+IG1hdHN1Z2lcIDsKK+acreaJgCA+IGZ1ZGFzaG9cIDsKK+WklemcpyA+IHl1dWdpcmlcIDsKK+mgkueZvSA+IGhhbnBha3VcIDsKK+aXp+imsyA+IGt5dXVrYW5cIDsKK+S4iua1tyA+IHNoYW5oYWlcIDsKK+aWpOmHjyA+IGtpbnJ5b3VcIDsKK+aWsOmBkyA+IHNoaW5kb3VcIDsKK+S7suWFhCA+IGNodXVrZWlcIDsKK+aXouiorSA+IGtpc2V0c3VcIDsKK+iziuWQjSA+IHpva3VtZWlcIDsKK+aZqeeniyA+IGJhbnNodXVcIDsKK+WlveiplSA+IGtvdWh5b3VcIDsKK+S4iua1gSA+IGpvdXJ5dXVcIDsKK+WsjOWnvyA+IGt5b3VzaGlcIDsKK+aWsOmAoCA+IHNoaW56b3VcIDsKK+S5l+aPmyA+IG5vcmlrYWVcIDsKK+S4iea1gSA+IHNhbnJ5dXVcIDsKK+S4iua0myA+IGpvdXJha3VcIDsKK+mbjOm2jyA+IG1lbmRvcmlcIDsKK+acq+aIkCA+IHVyYW5hcmlcIDsKK+eJh+imqiA+IGthdGFveWFcIDsKK+izoOWEnyA+IGJhaXNob3VcIDsKK+S4iea0iyA+IHNhbicneW91XCA7Civnv4zmmakgPiB5b2t1YmFuXCA7CivkuZ3mi50gPiBreXV1aGFpXCA7Civku67lhY0gPiBrYXJpbWVuXCA7CivkuLjmnZAgPiBtYXJ1emFpXCA7Civku7vkvqAgPiBuaW5reW91XCA7CivkuqzlpKcgPiBreW91ZGFpXCA7Civml6foo70gPiBreXV1c2VpXCA7CivkuLjmnKwgPiBtYXJ1Ym9uXCA7CivogonkvZMgPiBuaWt1dGFpXCA7CivmnIjml6UgPiB0c3VraWhpXCA7CivkuKHmp5ggPiByeW91eW91XCA7CivpnIrplbcgPiByZWljaG91XCA7CivmnInmlpkgPiB5dXVyeW91XCA7Civpm4zps6UgPiBtZW5kb3JpXCA7CivmlbXpmaMgPiB0ZWtpamluXCA7CivpoIXnm64gPiBrb3Vtb2t1XCA7CivlpInpnakgPiBoZW5rYWt1XCA7CivkubHlv4MgPiByYW5zaGluXCA7CivkuIDmtaogPiBpY2hpcm91XCA7CivmlL7ps6UgPiBob3VjaG91XCA7CivlrIzlo7AgPiBreW91c2VpXCA7Civmlpnph5EgPiByeW91a2luXCA7CivogIHlvLEgPiByb3VqYWt1XCA7CivlpJXpl4cgPiB5dXV5YW1pXCA7CivmlbDpmrsgPiBzdXVzZWtpXCA7CivmnL3lu4MgPiBreXV1aGFpXCA7CivosaHlvaIgPiBzaG91a2VpXCA7CivmlrDou4ogPiBzaGluc2hhXCA7CivkuK3mnqIgPiBjaHV1c3V1XCA7CivkuovlsYAgPiBqaWt5b2t1XCA7Civmlofpjq4gPiBidW5jaGluXCA7CivkuKHmo7IgPiByeW91c2VpXCA7Civku67lgJ8gPiBrYXNoYWt1XCA7CivkuK3mnbEgPiBjaHV1dG91XCA7Civku6PlhaUgPiBkYWlueXV1XCA7CivkuIDms6EgPiBoaXRvYXdhXCA7CivmlZnppIogPiBreW91eW91XCA7Civpm6jpoqggPiBhbWVrYXplXCA7CivkuIvmra8gPiBzaGl0YWJhXCA7Civosarlt54gPiBnb3VzaHV1XCA7CivmnIDmlrAgPiBzYWlzaGluXCA7Civku6PlhJ8gPiBkYWlzaG91XCA7Civpnanoo4UgPiBrYXdhc291XCA7Civku4/ljbAgPiBmdXRzdWluXCA7CivkuLvmlZkgPiBzaHVreW91XCA7CivkuIDmsbogPiBpa2tldHN1XCA7Civkuovlrp8gPiBqaWppdHN1XCA7CivkuK3mm7QgPiBjaHV1a291XCA7Civkuojlr58gPiB5b3NhdHN1XCA7CivkuIDmsZcgPiBoaXRvYXNlXCA7Civoq7joqLMgPiBzaG93YWtlXCA7CivmnJ3mhrIgPiBjaG91a2VuXCA7Civlp6bnrZYgPiBrYW5zYWt1XCA7Civku7Lku5UgPiBuYWthc2hpXCA7CivmnKzlv4MgPiBob25zaGluXCA7Civku7Lku4sgPiBjaHV1a2FpXCA7Civku7LkurogPiBuYWtvdWRvXCA7CivkuqzlnLAgPiBreW91Y2hpXCA7CivmnKzlvqkgPiBob25wdWt1XCA7Civosrflj44gPiBiYWlzaHV1XCA7CivmlZnpoK0gPiBreW91dG91XCA7CivkuIDmr6sgPiBpY2hpZ291XCA7CivmnqDlhoUgPiB3YWt1bmFpXCA7CivkuK3mma8gPiBjaHV1a2VpXCA7CivkuIDmr5sgPiBpY2hpbW91XCA7CivogLPlnqIgPiBtaW1pYWthXCA7CivniafojYkgPiBib2t1c291XCA7CivmmYLnr4AgPiBqaXNldHN1XCA7CivpoZXmraMgPiBrZW5zaG91XCA7CivmnbHlm70gPiB0b3Vnb2t1XCA7CivlpKfph48gPiB0YWlyeW91XCA7CivmlZnpnq0gPiBreW91YmVuXCA7CivppKjlhoUgPiBrYW4nJ25haVwgOwor5Lit5pesID4gY2h1dWp1blwgOwor54up54yfID4gc2h1cnlvdVwgOwor5pu05pawID4ga291c2hpblwgOwor57im6ZqUID4ganV1a2FrdVwgOwor5Lit5patID4gY2h1dWRhblwgOwor6ZuR6aeBID4gemFwcGFrdVwgOwor6aCT54uCID4gdG9ua3lvdVwgOwor6Zuo6ZuyID4gYW1hZ3Vtb1wgOwor5aSx6YCPID4gc2hpdHRvdVwgOwor5Lih5pu/ID4gcnlvdWdhZVwgOwor6Zuq6ZqgID4gc2V0Y2hpblwgOwor5pen6JepID4ga3l1dWhhblwgOwor5Lit5pWwID4gY2h1dXN1dVwgOwor5pyr5bqnID4gbWF0c3V6YVwgOwor6aO05Z2KID4gYW1lbmJvdVwgOwor5Luj5L2cID4gZGFpc2FrdVwgOwor5pys5bqBID4gaG9uY2hvdVwgOwor5Li45pCNID4gbWFydXpvblwgOwor5p6X5YaFID4gcmluJyduYWlcIDsKK+acrOW5tCA+IGhvbicnbmVuXCA7Civoq6foqr8gPiBrYWljaG91XCA7CivmnKvluoMgPiBzdWVoaXJvXCA7CivkuK3mlK8gPiBjaHV1c2hpXCA7Civml4HoqLsgPiBib3VjaHV1XCA7Civku6PkvJEgPiBkYWlreXV1XCA7CivniafoiI4gPiBib2t1c2hhXCA7Civku4/lhbcgPiBidXRzdWd1XCA7CivkuqHlm70gPiBib3Vrb2t1XCA7CivorabnrJsgPiBrZWl0ZWtpXCA7CivmnKvluK0gPiBtYXNzZWtpXCA7CivorLnogbQgPiBraW5jaG91XCA7Civoq7jooYwgPiBzaG9neW91XCA7CivnjonluqcgPiBneW9rdXphXCA7CivogIHlsJEgPiByb3VzaG91XCA7CivmnKzlt54gPiBob25zaHV1XCA7Civml6folLUgPiBreXV1em91XCA7CivkuYXmh5AgPiBreXV1a2FpXCA7CivogIHlsIYgPiByb3VzaG91XCA7CivnjJvmr5IgPiBtb3Vkb2t1XCA7Civnt5jpu5kgPiBrYW5tb2t1XCA7Civku4vlhaUgPiBrYWlueXV1XCA7CivmmKjntJkgPiBzYWt1c2hpXCA7CivkuIDmp5ggPiBpY2hpeW91XCA7Civnv5LmhaMgPiBzaHV1a2FuXCA7Civmm53mm7ggPiBiYWt1c2hvXCA7CivkuKHmlrkgPiByeW91aG91XCA7CivosbnlpIkgPiBoeW91aGVuXCA7CivmlZHpm6MgPiBreXV1bmFuXCA7CivnkIPkvZMgPiBreXV1dGFpXCA7CivkuKHmlq0gPiByeW91ZGFuXCA7CivlpaXooYwgPiBva3V5dWtpXCA7CivmnJ3lu7cgPiBjaG91dGVpXCA7CivmlofpgJogPiBidW50c3V1XCA7Civpo5/loakgPiBzaG9rdWVuXCA7CivnhrHpm7IgPiBuZXRzdXVuXCA7Civpm7vpi7MgPiBkZW5jaHV1XCA7CivmlZnploAgPiBreW91bW9uXCA7Civpm5Hpn7MgPiB6YXRzdW9uXCA7Civmlrnop5IgPiBob3VnYWt1XCA7Civni5vniqwgPiBrb21haW51XCA7Civnj43llY8gPiBjaGlubW9uXCA7CivlpLHouKogPiBzaGlzc291XCA7CivniZvoiI4gPiBneXV1c2hhXCA7Civku5nkurogPiBzZW4nJ25pblwgOwor6ZuB6aaWID4gZ2Fua3ViaVwgOwor5pqm5rOVID4gcmVraWhvdVwgOwor5aSp6Lu4ID4gdGVuamlrdVwgOwor6Kqe6YeIID4gZ29zaGFrdVwgOwor5Lq65YmNID4gaGl0b21hZVwgOwor54++5Lu7ID4gZ2VuJyduaW5cIDsKK+WknOmBkyA+IHlvbWljaGlcIDsKK+irluiqvyA+IHJvbmNob3VcIDsKK+S5meW3oSA+IG90c3VqdW5cIDsKK+Wkj+mHjiA+IG5hdHN1bm9cIDsKK+e/kuaApyA+IHNodXVzZWlcIDsKK+WklumDrSA+IGdhaWtha3VcIDsKK+ePjeWTgSA+IGNoaW5waW5cIDsKK+acneW4giA+IGFzYWljaGlcIDsKK+WlieiqrSA+IGhvdWRva3VcIDsKK+WsjOWQjSA+IGt5b3VtZWlcIDsKK+aYvOekvCA+IGNodXVyZWlcIDsKK+eJp+iAhSA+IGJva3VzaGFcIDsKK+eNo+aFviA+IGp1dXlva3VcIDsKK+acq+WwviA+IG1hdHN1YmlcIDsKK+S4i+acnyA+IHNoaW1va2lcIDsKK+Wkp+i6qyA+IHRhaXNoaW5cIDsKK+mgreazqCA+IHRvdWNodXVcIDsKK+aVsOmHjyA+IHN1dXJ5b3VcIDsKK+eHl+mFkiA+IGthbnpha2VcIDsKK+S7leS6iyA+IHNoaWdvdG9cIDsKK+aWsOiogiA+IHNoaW50ZWlcIDsKK+irluiplSA+IHJvbnB5b3VcIDsKK+S4iuacjSA+IHV3YWZ1a3VcIDsKK+acqOWxpSA+IHBva2t1cmlcIDsKK+acq+WvuiA+IG1hdHN1amlcIDsKK+irluiovCA+IHJvbnNob3VcIDsKK+eJqee9riA+IG1vbm9va2lcIDsKK+acjeW+kyA+IGZ1a3VqdXVcIDsKK+S4ieaciCA+IG1pdHN1a2lcIDsKK+acjeW9uSA+IGZ1a3Vla2lcIDsKK+S4oeaQjSA+IHJ5b3V6b25cIDsKK+eJm+iEgiA+IGd5dXVzaGlcIDsKK+eJp+e+iiA+IGJva3V5b3VcIDsKK+aWh+i6qyA+IGJ1bnNoaW5cIDsKK+Wjq+mVtyA+IHNoaWNob3VcIDsKK+WkiemHjyA+IGhlbnJ5b3VcIDsKK+S4h+aciSA+IGJhbicneXV1XCA7CivmnKzlroUgPiBob250YWt1XCA7Civmm7LmioAgPiBreW9rdWdpXCA7CivpnZLom5kgPiBhb2dhZXJ1XCA7CivmnInlvrMgPiB5dXV0b2t1XCA7CivnibnntJogPiB0b2treXV1XCA7CivnjK7mnKggPiBrZW5ib2t1XCA7Civpo5vlnLAgPiB0b2JpY2hpXCA7CivnjKvmnb8gPiBuZWtvaXRhXCA7Civml6Xoi7EgPiBuaWNoaWVpXCA7Civku4/kuosgPiBidXRzdWppXCA7Civoq4vorIEgPiBzZWlldHN1XCA7CivmmJPntYwgPiBla2lreW91XCA7Civoqanpm4YgPiBzaGlzaHV1XCA7Civosp3libIgPiBrYWl3YXJpXCA7CivkuI3ml6UgPiBmdWppdHN1XCA7CivmmpbmtYEgPiBkYW5yeXV1XCA7CivkuIDmnaEgPiBpY2hpam91XCA7CivpnZLomasgPiBhb211c2hpXCA7Civoq5Lop6MgPiByeW91a2FpXCA7CivmlLnpnakgPiBrYWlrYWt1XCA7CivkuIrmmIcgPiBqb3VzaG91XCA7CivkuInmmKUgPiBzYW5zaHVuXCA7CivmnL3lo4ogPiBreXV1a2FpXCA7CivkuIDmnK0gPiBpc3NhdHN1XCA7CivogJDlnKcgPiB0YWlhdHN1XCA7CivkuIDmnJsgPiBpY2hpYm91XCA7CivmlrDoo4UgPiBzaGluc291XCA7CivnuKvph50gPiBudWliYXJpXCA7Civku4HkvqAgPiBqaW5reW91XCA7CivpoILngrkgPiBjaG91dGVuXCA7CivkuIDmm7IgPiBpa2t5b2t1XCA7CivkuLnlv7UgPiB0YW4nJ25lblwgOwor6Z+z54mpID4gaW5tb3RzdVwgOwor5pel6IieID4gbmljaGlidVwgOwor5pen6IeYID4ga3l1dXJvdVwgOwor542j5b+DID4ganV1c2hpblwgOwor6KuL6KiXID4gc2VpdGFrdVwgOwor5Li55b+DID4gdGFuc2hpblwgOwor6ICB5aKDID4gcm91a3lvdVwgOwor5Li75b25ID4gc2h1eWFrdVwgOwor5aSn6LOeID4gdGFpc2hvdVwgOwor5LuK5LiAID4gaW1haWNoaVwgOwor5LiH5pabID4gYmFua29rdVwgOwor5LiJ5pWZID4gc2Fua3lvdVwgOwor5LiA5pmpID4gaGl0b2JhblwgOwor6aCY5rW3ID4gcnlvdWthaVwgOwor5Li75by1ID4gc2h1Y2hvdVwgOwor5aSp6LGhID4gdGVuc2hvdVwgOwor5pmp54afID4gYmFuanVrdVwgOwor5aal57WQID4gZGFrZXRzdVwgOwor5pil56eLID4gaGFydWFraVwgOwor6LKp5L+DID4gaGFuc29rdVwgOwor54mb57y2ID4gZ3l1dWthblwgOwor5pyA5by3ID4gc2Fpa3lvdVwgOwor5aSJ6YCfID4gaGVuc29rdVwgOwor5aSJ6YCaID4gaGVudHN1dVwgOwor54uC54qsID4ga3lvdWtlblwgOwor57+M5bm0ID4geW9rdW5lblwgOwor5pmp54WnID4gYmFuc2hvdVwgOwor6Kyb57+SID4ga291c2h1dVwgOwor5paH6LKsID4gYnVuc2VraVwgOwor5pqX5q66ID4gYW5zYXRzdVwgOwor5pW16LuNID4gdGVraWd1blwgOwor54m5562JID4gdG9rdXRvdVwgOwor54mH6IWVID4ga2F0YXVkZVwgOwor5aWH6KGTID4ga2lqdXRzdVwgOwor5LiA5pesID4gaWNoaWp1blwgOwor5Lme5am/ID4ga29pbXVrb1wgOwor6aC45qSOID4ga2VpdHN1aVwgOwor6LKs5Lu7ID4gc2VraW5pblwgOwor6aGU5paZID4gZ2FucnlvdVwgOwor6KqV6L6wID4gdGFuc2hpblwgOwor5pac6KeSID4gc2hha2FrdVwgOwor5pyr5aWzID4gbWF0c3Vqb1wgOwor6aGV5pWZID4ga2Vua3lvdVwgOwor5Lit5oCnID4gY2h1dXNlaVwgOwor5pyx5aKoID4gc2h1Ym9rdVwgOwor5LiB5pWwID4gY2hvdXN1dVwgOwor5LiA5paHID4gaWNoaW1vblwgOwor5peX6ImyID4gaGF0YWlyb1wgOwor5pqX5qydID4gYW4nJ3V0c3VcIDsKK+Wls+iJsiA+IGpvc2hva3VcIDsKK+aXp+iBniA+IGt5dXVidW5cIDsKK+eJh+iCuiA+IGthdGFoYWlcIDsKK+S4u+W4rSA+IHNodXNla2lcIDsKK+aUr+manCA+IHNoaXNob3VcIDsKK+acseWhlyA+IHNodW51cmlcIDsKK+S7gOS4gCA+IGp1dWljaGlcIDsKK+mgmOawtCA+IHJ5b3VzdWlcIDsKK+mdouiItSA+IG9tb2thamlcIDsKK+mgmOawkSA+IHJ5b3VtaW5cIDsKK+S4uOW4ryA+IG1hcnVvYmlcIDsKK+e3j+mrmCA+IHNvdWRha2FcIDsKK+isgOiHoyA+IGJvdXNoaW5cIDsKK+WjsOmHjyA+IHNlaXJ5b3VcIDsKK+acp+WknCA+IG9ib3JveW9cIDsKK+Wkiei6qyA+IGhlbnNoaW5cIDsKK+WjgemdoiA+IGhla2ltZW5cIDsKK+e/sOWiqCA+IGthbmJva3VcIDsKK+S5meWnqyA+IG90b2hpbWVcIDsKK+eOhOWmmSA+IGdlbm15b3VcIDsKK+e+uOW8sSA+IHJ1aWpha3VcIDsKK+WkqeiqhSA+IHRlbmNodXVcIDsKK+S5neWkqSA+IGt5dXV0ZW5cIDsKK+S5neWkpyA+IGt5dXVkYWlcIDsKK+S4ieaMryA+IHNhbnNoaW5cIDsKK+S6jOWNgSA+IGhhdGFjaGlcIDsKK+S4jeaKnCA+IGZ1YmF0c3VcIDsKK+S4reW6uCA+IGNodXV5b3VcIDsKK+mhleaPmiA+IGtlbicneW91XCA7CivlpKfoqbAgPiBvb2R6dW1lXCA7CivkuKHmgKcgPiByeW91c2VpXCA7Civoqr/oo70gPiBjaG91c2VpXCA7CivosarllYYgPiBnb3VzaG91XCA7Civmlofoqr8gPiBidW5jaG91XCA7CivlpKfoqZQgPiB0YWlzaG91XCA7Civmm7LluqYgPiBreW9rdWRvXCA7CivkuK3lubQgPiBjaHV1bmVuXCA7Civnt6jpm4YgPiBoZW5zaHV1XCA7CivkuIDmj6EgPiBpY2hpYWt1XCA7Civmm7LluocgPiBreW9rdWhpXCA7CivlqYnmm7IgPiBlbmt5b2t1XCA7Civoqqzoq60gPiBzZXRzdXl1XCA7Civni4LngL4gPiBreW91cmFuXCA7CivkuqTkv6EgPiBrb3VzaGluXCA7CivkuK3luL0gPiBjaHV1Ym91XCA7CivmmKXnnKAgPiBzaHVubWluXCA7CivpoKzmoYEgPiBob29nZXRhXCA7CivkuK3lt7sgPiBjaHV1a2FuXCA7Civniafnq6UgPiBib2t1ZG91XCA7CivmnbHkuqwgPiB0b3VreW91XCA7CivmnKzlm70gPiBob25nb2t1XCA7CivoqqzoqbEgPiBzZXRzdXdhXCA7Civpo5/liLggPiBzaG9ra2VuXCA7CivkuLvlsIYgPiBzaHVzaG91XCA7CivmnaXkv6EgPiByYWlzaGluXCA7CivmnIDlsJEgPiBzYWlzaG91XCA7CivmnIDlsI8gPiBzYWlzaG91XCA7CivkuLvlr6kgPiBzaHVzaGluXCA7CivkuozliJcgPiBuaXJldHN1XCA7CivkuIDmi6wgPiBpa2thdHN1XCA7CivpnZ7ogbcgPiBoaXNob2t1XCA7CivmlLnpi7MgPiBrYWljaHV1XCA7CivnjJvmkoMgPiBtb3VnZWtpXCA7CivmlY/pgJ8gPiBiaW5zb2t1XCA7CivpoKzmnZYgPiBob29kenVlXCA7CivmlrDokZcgPiBzaGluY2hvXCA7Civnj43ku4AgPiBjaGluanV1XCA7Civnvp7mgaUgPiBzaHV1Y2hpXCA7CivkuZ3lnLAgPiBreXV1Y2hpXCA7CivmmI7norogPiBtZWlrYWt1XCA7Civnt4/poY0gPiBzb3VnYWt1XCA7CivkuozlhasgPiBuaWhhY2hpXCA7Civoq6voh6MgPiBrYW5zaGluXCA7CivpnZnogbQgPiBzZWljaG91XCA7Civmma/ms4EgPiBrZWlreW91XCA7Civnt4/poJggPiBzb3VyeW91XCA7Civml6XntaYgPiBuaWtreXV1XCA7CivlpKfooYYgPiB0YWlzaHV1XCA7CivmnLHllIcgPiBzaHVzaGluXCA7Civpm4bph5EgPiBzaHV1a2luXCA7Civpm6jotrMgPiBhbWVhc2hpXCA7CivmlbToqr8gPiBzZWljaG91XCA7CivmlbfoqK0gPiBmdXNldHN1XCA7CivmmqbmlbAgPiByZWtpc3V1XCA7CivmlrDojLYgPiBzaGluY2hhXCA7CivpoqjlnKcgPiBmdXVhdHN1XCA7Civnt4/pnakgPiBzb3VnYXdhXCA7CivkuK3lsIogPiBjaHV1em9uXCA7CivlpJbop5IgPiBnYWlrYWt1XCA7CivkuK3lsIYgPiBjaHV1am91XCA7CivmmI7nnq0gPiBtZWlyeW91XCA7CivnuLfoqqwgPiBydXNldHN1XCA7Civpm4bphY0gPiBzaHV1aGFpXCA7CivmnIjlpK4gPiBnZXRzdW91XCA7CivkuK3lrq4gPiBjaHV1Z3V1XCA7Civntr/po7QgPiB3YXRhYW1lXCA7CivmnIjlpJwgPiB0c3VraXlvXCA7CivniYjnsY0gPiBoYW5zZWtpXCA7CivlpInoqr8gPiBoZW5jaG91XCA7CivkuInlvrMgPiBzYW50b2t1XCA7CivpmbDprLEgPiBpbicndXRzdVwgOwor57eR6ZmwID4gcnlva3VpblwgOwor5pW16KaWID4gdGVraXNoaVwgOwor6Kyb56m2ID4ga291a3l1dVwgOwor5pS+6YC4ID4gaG91aXRzdVwgOwor5LiK5b25ID4gdXdheWFrdVwgOwor5aKX6aGNID4gem91Z2FrdVwgOwor5LiA5oGvID4gaGl0b2lraVwgOwor5paw6IiIID4gc2hpbmtvdVwgOwor5Lmz5YmkID4gbnl1dXphaVwgOwor5piO55m9ID4gbWVpaGFrdVwgOwor5pS56YCyID4ga2Fpc2hpblwgOwor5LiL5bqnID4gc2hpbW96YVwgOwor6KyZ56ewID4ga2Vuc2hvdVwgOwor6aCY5pyJID4gcnlvdXl1dVwgOwor5LiA5b+1ID4gaWNoaW5lblwgOwor5LiH5byVID4gbWFuYmlraVwgOwor6ICV5L2cID4ga291c2FrdVwgOwor54m555SjID4gdG9rdXNhblwgOwor6aGV5b2wID4ga2Vuc2hvdVwgOwor5pyo5Y+jID4ga2lndWNoaVwgOwor5LiA5b65ID4gaXR0ZXRzdVwgOwor6aGU5b25ID4ga2FveWFrdVwgOwor57+75Yi7ID4gaG9ua29rdVwgOwor6aOf5LqLID4gc2hva3VqaVwgOwor57eP6ZW3ID4gc291Y2hvdVwgOwor5LiJ5bm0ID4gc2FuJyduZW5cIDsKK+aXpeeriyA+IGhpdGFjaGlcIDsKK+aVkeiypyA+IGt5dXVoaW5cIDsKK+aWreiFuCA+IGRhbmNob3VcIDsKK+S4iuW4rSA+IGpvdXNla2lcIDsKK+iqjeiovCA+IG5pbnNob3VcIDsKK+adj+S7gSA+IGt5b3VuaW5cIDsKK+S4h+W5tCA+IG1hbicnbmVuXCA7CivniannmoQgPiBidXR0ZWtpXCA7Civml6fnqL8gPiBreXV1a291XCA7CivpmbjpoqggPiByaWt1ZnV1XCA7CivkuIDlvI8gPiBpc3NoaWtpXCA7CivmnJfllLEgPiByb3VzaG91XCA7Civni4LmrbsgPiBreW91c2hpXCA7CivogIHlg5UgPiByb3Vib2t1XCA7CivnvqTlsI8gPiBndW5zaG91XCA7Civnirbms4EgPiBqb3VreW91XCA7CivmlrDogZ4gPiBzaGluYnVuXCA7CivkuK3lpK0gPiBjaHV1eW91XCA7CivmnKzliYcgPiBob25zb2t1XCA7CivkuK3lpKkgPiBjaHV1dGVuXCA7CivntrHpoJggPiBrb3VyeW91XCA7CivkuK3lpJYgPiBjaHV1Z2FpXCA7CivmlZnoqqggPiBreW91a2FpXCA7CivlpbTnrYkgPiB5YXRzdXJhXCA7Civni6zmlq0gPiBkb2t1ZGFuXCA7CivoqbDosqwgPiBraXNzZWtpXCA7CivogJDkuYUgPiB0YWlreXV1XCA7CivpmorplbcgPiB0YWljaG91XCA7Civpm6Poqq0gPiBuYW5kb2t1XCA7CivpoaflrqIgPiBrb2t5YWt1XCA7Civni6zmlocgPiBkb2t1YnVuXCA7CivkuIDluJYgPiBpY2hpam91XCA7Civml5fnq78gPiBoYXRhemFvXCA7CivpnIrolqwgPiByZWl5YWt1XCA7CivkuIDlt6EgPiBpY2hpanVuXCA7CivnhLzpppkgPiBzaG91a291XCA7CivmlZnoqJMgPiBreW91a3VuXCA7CivkuI3lsYggPiBmdWt1dHN1XCA7CivmnKjliIAgPiBib2t1dG91XCA7CivntprpqLAgPiB6b2t1dG91XCA7CivmlrDnvoUgPiBzaGlyYWdpXCA7Civlo7Doqr8gPiBzZWljaG91XCA7CivlopfplbcgPiB6b3VjaG91XCA7CivmmoHmmJ8gPiBneW91c2VpXCA7Civpmbrpm6MgPiBrZW4nJ25hblwgOwor5LiK5bGlID4gdXdhYmFraVwgOwor5pys5YWDID4gaG9ubW90b1wgOwor5Lit5aCFID4gY2h1dWtlblwgOwor5Lit5aCCID4gY2h1dWRvdVwgOwor5aSP6JqVID4gbmF0c3Vnb1wgOwor5LiJ5bC6ID4gc2FuamFrdVwgOwor5aSp6I2JID4gdGVuZ3VzYVwgOwor5pyI5ZWGID4gZ2Vzc2hvdVwgOwor57ea6YePID4gc2VucnlvdVwgOwor5LiN5a6fID4gZnVqaXRzdVwgOwor6Z2i56mNID4gbWVuc2VraVwgOwor5LiL5a6/ID4gZ2VzaHVrdVwgOwor6K2w5rG6ID4gZ2lrZXRzdVwgOwor5Lmx5L2cID4gcmFuc2FrdVwgOwor5LiL5a62ID4gc2hpdGF5YVwgOwor5LiK5a6/ID4gam91eWFkb1wgOwor6LGK5Ye2ID4gaG91a3lvdVwgOwor54yf5birID4gcnlvdXNoaVwgOwor5pen55+lID4ga3l1dWNoaVwgOwor54mb55eYID4gZ3l1dXRvdVwgOwor6Kmz6KuWID4gc2hvdXJvblwgOwor54mp55CGID4gYnV0c3VyaVwgOwor5pu05ZywID4gc2FyYWNoaVwgOwor54mb55arID4gZ3l1dWVraVwgOwor5pyo5YOPID4gbW9rdXpvdVwgOwor5pyd5YiKID4gY2hvdWthblwgOwor5pyd5YeqID4gYXNhbmFnaVwgOwor5Li75ZSxID4gc2h1c2hvdVwgOwor57eo6LyvID4gaGVuc2h1dVwgOwor5LiA5bGAID4gaWtreW9rdVwgOwor5LiA5bC6ID4gaXNzaGFrdVwgOwor54us5o6iID4gZG9rdXRhblwgOwor57eR6YeOID4gcnlva3V5YVwgOwor5LiD5a6dID4gc2hpcHBvdVwgOwor6Kmz6KiAID4gc2hvdWdlblwgOwor57eP6YePID4gc291cnlvdVwgOwor5pen55ukID4ga3l1dWJhblwgOwor6Kmz6KejID4gc2hvdWthaVwgOwor5aWR57SEID4ga2VpeWFrdVwgOwor6Zuj6KGMID4gbmFuZ3lvdVwgOwor5pyI5Y+OID4gZ2Vzc2h1dVwgOwor6ZuR6KmxID4gemF0c3V3YVwgOwor5pen55uGID4ga3l1dWJvblwgOwor5LiA5a6/ID4gaXNzaHVrdVwgOwor5Lmx5LiBID4gcmFuY2hvdVwgOwor54Sh6aqoID4gYnVrb3RzdVwgOwor5aOy6KGMID4gdXJleXVraVwgOwor6aCB5pWwID4gcMSTamlzdXVcIDsKK+aWree2miA+IGRhbnpva3VcIDsKK+mfs+absiA+IG9uZ3lva3VcIDsKK+S4gOWtmCA+IGljaGl6b25cIDsKK+WkleiPhSA+IHl1dXN1Z2VcIDsKK+aWveetliA+IHNoaXNha3VcIDsKK+aXpeeZvSA+IG5pcHBha3VcIDsKK+Wkp+iFuCA+IGRhaWNob3VcIDsKK+eJoueNhCA+IHJvdWdva3VcIDsKK+eKrOaphyA+IGludXpvcmlcIDsKK+S4juWlqiA+IHlvZGF0c3VcIDsKK+acrOS6uiA+IGhvbicnbmluXCA7CivpmaTpm6ogPiBqb3NldHN1XCA7Civnhp/oq4cgPiBqdWt1ZGFuXCA7CivlpLHogIMgPiBzaGlra291XCA7CivniaHnjKsgPiBvc3VuZWtvXCA7CivmmanmmKUgPiBiYW5zaHVuXCA7CivlpJzoibIgPiB5YXNob2t1XCA7Civni6zmiL8gPiBkb2t1Ym91XCA7Civmma/mlZkgPiBrZWlreW91XCA7CivkuK3llZMgPiBjaHV1a2VpXCA7CivmlrDnsbMgPiBzaGlubWFpXCA7CivmlrnnrZYgPiBob3VzYWt1XCA7Civniqzmp5kgPiBpbnVtYWtpXCA7CivmnKjku48gPiBraWJ1dHN1XCA7Civml6nnlaogPiBoYXlhYmFuXCA7CivlpJroibIgPiB0YXNob2t1XCA7CivmmqblubQgPiByZWtpbmVuXCA7CivmnKzkuLggPiBob25tYXJ1XCA7CivmmanmlrkgPiBiYW5nYXRhXCA7CivlpKnogbQgPiB0ZW5jaG91XCA7Civnua3ntKwgPiBrZW5jaHV1XCA7CivnjJ/lrpggPiByeW91a2FuXCA7CivpnZLnpaggPiBzZWloeW91XCA7CivosYrkvZwgPiBob3VzYWt1XCA7CivnjJvlsIYgPiBtb3VzaG91XCA7Civpoqjkv5cgPiBmdXV6b2t1XCA7Civni4LmmrQgPiBreW91Ym91XCA7CivkuIrlo7AgPiBqb3VzaG91XCA7CivkuIjlpKsgPiBtYXN1cmFvXCA7CivmnIjliKkgPiBnZXRzdXJpXCA7CivmlLnoqLMgPiBrYWl5YWt1XCA7Civlopfph48gPiB6b3VyeW91XCA7Civpm7bokL0gPiByZWlyYWt1XCA7CivkuLjljYEgPiBtYXJ1anV1XCA7Civpm4boqIggPiBzaHV1a2VpXCA7CivoqbHooZMgPiB3YWp1dHN1XCA7CivniZ3niqwgPiBtZXN1aW51XCA7Civnhp/opqcgPiBqdWt1cmFuXCA7Civnhp/oppYgPiBqdWt1c2hpXCA7CivpnaLnm64gPiBtZW5tb2t1XCA7CivnhY7pjYsgPiBpcmluYWJlXCA7CivnjoTkurogPiBrdXJvdXRvXCA7Civmlq3nrrEgPiBkYW5iYWtvXCA7CivmnJ3kvJogPiBjaG91a2FpXCA7CivloavpmpkgPiB0ZW5nZWtpXCA7CivkuIrloZcgPiB1d2FudXJpXCA7CivkuIDlpoIgPiBpY2hpbnlvXCA7CivkuI3ln5IgPiBmdXJhY2hpXCA7Civnt4rov6sgPiBraW5wYWt1XCA7CivkuIflooMgPiBiYW5reW91XCA7Civoq5bnrZYgPiByb25zYWt1XCA7CivoqLPovIkgPiB5YWt1c2FpXCA7CivmnInlhJ8gPiB5dXVzaG91XCA7CivmmI7mvoQgPiBtZWljaG91XCA7CivkuIDlpKcgPiBpY2hpZGFpXCA7CivoqZXoq5YgPiBoeW91cm9uXCA7Civoqr/nt7QgPiBjaG91cmVuXCA7CivkuK3ljp8gPiBjaHV1Z2VuXCA7CivoqqTohLEgPiBnb2RhdHN1XCA7Civni4LmlocgPiBreW91YnVuXCA7Civoqq3ogIUgPiBkb2t1c2hhXCA7Civlo7LolqwgPiBiYWl5YWt1XCA7CivosYbkubMgPiB0b3VueXV1XCA7CivkuIDlo7AgPiBoaXRva29lXCA7CivpnIrogokgPiByZWluaWt1XCA7CivkuK3ljYogPiBjaHV1aGFuXCA7CivmlpnntJkgPiByeW91c2hpXCA7CivmlbTohbggPiBzZWljaG91XCA7CivkuIvlnLAgPiBzaGl0YWppXCA7CivmlrDnqK4gPiBzaGluc2h1XCA7CivlopfpgLIgPiB6b3VzaGluXCA7CivpnaLnlpQgPiBtZW5jaG91XCA7CivpoILmiLQgPiBjaG91ZGFpXCA7Civoq5bnqbYgPiByb25reXV1XCA7CivmlrDnqI4gPiBzaGluemVpXCA7CivpmY3pm7kgPiBrb3VoeW91XCA7CivpnZnnmoQgPiBzZWl0ZWtpXCA7CivoqZXoqIAgPiBoeW91Z2VuXCA7CivkuIvlm7MgPiBzaGl0YXp1XCA7CivkuIDloYEgPiBpY2hpcnVpXCA7CivmlLnooYwgPiBrYWlneW91XCA7CivkuIDloLQgPiBpY2hpam91XCA7CivkuLjlhawgPiBtYXJ1a291XCA7Civoqp7ohIggPiBnb215YWt1XCA7Civlpb3nkIMgPiBrb3VreXV1XCA7CivkuInlm70gPiBzYW5nb2t1XCA7CivkuKHlkI0gPiByeW91bWVpXCA7Civpmo/ouqsgPiB6dWlzaGluXCA7CivkuIDloIIgPiBpY2hpZG91XCA7CivkuIflm70gPiBiYW5rb2t1XCA7CivnhKHpm5EgPiBtdXphdHN1XCA7CivkuK3liY0gPiBjaHV1emVuXCA7CivopqrpuJ4gPiBzaGlucmFuXCA7CivmlpnnsKEgPiByeW91a2VuXCA7Civpm7vohLMgPiBkZW4nJ25vdVwgOwor5Lit5YikID4gY2h1dWJhblwgOwor5Lit5YiGID4gY2h1dWJ1blwgOwor57W26aCCID4gemV0Y2hvdVwgOwor6aCR5by3ID4gZ2Fua3lvdVwgOwor5pen54mIID4ga3l1dWJhblwgOwor57mL57ibID4ga2VpYmFrdVwgOwor5peP55SfID4gem9rdXNlaVwgOwor6KuH56yRID4gZGFuc2hvdVwgOwor5aSq57O4ID4gZnV0b2l0b1wgOwor5aeL5qWtID4gc2hpZ3lvdVwgOwor5LiA5ZujID4gaWNoaWRhblwgOwor6KiY6L+wID4ga2lqdXRzdVwgOwor5pep54afID4gc291anVrdVwgOwor6KqH6ImyID4ga29zaG9rdVwgOwor6KiX6YCBID4gdGFrdXNvdVwgOwor6KiI6YePID4ga2VpcnlvdVwgOwor57Wx6aCYID4gdG91cnlvdVwgOwor6ZuM6JiCID4gbWVzaGliZVwgOwor5Lit5YWDID4gY2h1dWdlblwgOwor6aCG5b+cID4ganVuJydub3VcIDsKK+mZuOmAgSA+IHJpa3Vzb3VcIDsKK+aciOS6iyA+IGdldHN1amlcIDsKK+imqumzpSA+IG95YWRvcmlcIDsKK+e1pumkiiA+IGt5dXV5b3VcIDsKK+eJueautSA+IHRva3VkYW5cIDsKK+S4oeWJjSA+IHJ5b3VtYWVcIDsKK+Wkp+eykiA+IG9vdHN1YnVcIDsKK+S4ieWUsSA+IHNhbnNob3VcIDsKK+S4iuWUhyA+IGpvdXNoaW5cIDsKK+iok+i/qiA+IGt1bnRla2lcIDsKK+eJueauiiA+IHRva3VzaHVcIDsKK+iqrOe1jCA+IHNla2t5b3VcIDsKK+Wig+mBhyA+IGt5b3VndXVcIDsKK+aXpeeFpyA+IG5pc3Nob3VcIDsKK+aVkeiNkiA+IGt5dXVrb3VcIDsKK+ippuiWrCA+IHNoaXlha3VcIDsKK+ipkOihkyA+IHNhanV0c3VcIDsKK+S4oeWIhiA+IHJ5b3VidW5cIDsKK+mbjOiViiA+IG1lc2hpYmVcIDsKK+S4oeWIgCA+IHJ5b3V0b3VcIDsKK+aSpemfsyA+IGhhdHN1b25cIDsKK+abuOS/oSA+IHNob3NoaW5cIDsKK+aZguaXpSA+IGppaml0c3VcIDsKK+S4gOWWnSA+IGlra2F0c3VcIDsKK+S4jeWQiSA+IGZ1a2l0c3VcIDsKK+e3qeihnSA+IGthbnNob3VcIDsKK+S4iuWRiiA+IGpvdWtva3VcIDsKK+S4oeWFqCA+IHJ5b3V6ZW5cIDsKK+mZuOi7jSA+IHJpa3VndW5cIDsKK+S4oeWFmiA+IHJ5b3V0b3VcIDsKK+S4gOWVjyA+IGljaGltb25cIDsKK+iovOiogCA+IHNob3VnZW5cIDsKK+aYh+axniA+IHNob3Vrb3VcIDsKK+mbqOiEmiA+IGFtZWFzaGlcIDsKK+aWsOebpCA+IHNoaW5iYW5cIDsKK+iou+inoyA+IGNodXVrYWlcIDsKK+mfu+W+iyA+IGlucml0c3VcIDsKK+aatOWcpyA+IGJvdWF0c3VcIDsKK+WkqeeruiA+IHRlbmppa3VcIDsKK+ioseirviA+IGt5b2Rha3VcIDsKK+eIhueglSA+IGJha3VzYWlcIDsKK+S4oeWDjyA+IHJ5b3V6b3VcIDsKK+eLguaFiyA+IGt5b3V0YWlcIDsKK+Wkp+eskSA+IHRhaXNob3VcIDsKK+Wpv+WFpSA+IG11a29pcmlcIDsKK+ios+ipqSA+IHlha3VzaGlcIDsKK+aYh+auvyA+IHNob3VkZW5cIDsKK+mbouiEsSA+IHJpZGF0c3VcIDsKK+ios+ipniA+IHlha3VzaGlcIDsKK+aYh+autSA+IHNob3VkYW5cIDsKK+eJp+awkSA+IGJva3VtaW5cIDsKK+WkqeeqkyA+IHRlbm1hZG9cIDsKK+S4gOWRvSA+IGljaGltZWlcIDsKK+aVmeiCsiA+IGt5b3Vpa3VcIDsKK+S4gOWRsyA+IGhpdG9hamlcIDsKK+WkseemgSA+IHNoaWtraW5cIDsKK+e3j+iplSA+IHNvdWh5b3VcIDsKK+WmmeazlSA+IG15b3Vob3VcIDsKK+e1pumbuyA+IGt5dXVkZW5cIDsKK+S4reS7lSA+IG5ha2FzaGlcIDsKK+imqumqqCA+IG95YWJvbmVcIDsKK+aWh+eroCA+IGJ1bnNob3VcIDsKK+abuOS4rSA+IHNob2NodXVcIDsKK+S4h+WNmiA+IGJhbnBha3VcIDsKK+S4gOWQjSA+IGljaGltZWlcIDsKK+S4gOWQjCA+IGljaGlkb3VcIDsKK+mfs+W+iyA+IG9ucml0c3VcIDsKK+S4i+WKoyA+IGdlcmV0c3VcIDsKK+mbo+iBtCA+IG5hbmNob3VcIDsKK+S4gOWPtyA+IGljaGlnb3VcIDsKK+S4gOWPsCA+IGljaGlkYWlcIDsKK+mbouiBtyA+IHJpc2hva3VcIDsKK+S4ieWKqSA+IHNhbnN1a2VcIDsKK+S4oeS+vyA+IHJ5b3ViZW5cIDsKK+aYpeacrCA+IHNodW5wb25cIDsKK+S4g+WNgSA+IG5hbmFqdXVcIDsKK+S4reS4liA+IGNodXVzZWlcIDsKK+imv+mdoiA+IHRla2ltZW5cIDsKK+WkqeemjyA+IHRlbnB1a3VcIDsKK+aWsOeUsCA+IHNoaW5kZW5cIDsKK+S4h+WKmyA+IG1hbnJpa2lcIDsKK+aWsOeUnyA+IHNoaW5zZWlcIDsKK+S4iuWIuyA+IGpvdWtva3VcIDsKK+S4geWNiiA+IGNob3VoYW5cIDsKK+Wkp+emjyA+IGRhaWZ1a3VcIDsKK+mhmOWKmyA+IGdhbnJpa2lcIDsKK+WkqeelkCA+IHRlbicneXV1XCA7CivmmKjmmakgPiBzYWt1YmFuXCA7CivmmanlubQgPiBiYW4nJ25lblwgOwor54Wn6KanID4gc2hvdXJhblwgOwor5pil5pqWID4gc2h1bmRhblwgOwor57eK6KaBID4ga2luJyd5b3VcIDsKK+S4gOWLuiA+IGlzc2hha3VcIDsKK+iqk+e0hCA+IHNlaXlha3VcIDsKK+aZuuWwhiA+IGNoaXNob3VcIDsKK+WmqOalrSA+IGJvdWd5b3VcIDsKK+ipqeiIiCA+IHNoaWt5b3VcIDsKK+S4oeS6uiA+IHJ5b3VuaW5cIDsKK+ims+mfsyA+IGthbicnbm9uXCA7CivmmYLmipggPiB0b2tpb3JpXCA7Civnib3mnZ8gPiBrZW5zb2t1XCA7CivmkrDpjLIgPiBzZW5yb2t1XCA7CivmlLnoia8gPiBrYWlyeW91XCA7Civmlr3niakgPiBzZW1vdHN1XCA7Civlpa7mv4AgPiBmdW5nZWtpXCA7CivkuKHkuIkgPiByeW91c2FuXCA7Civpm7vnrpcgPiBkZW5zb3JvXCA7CivopqrpoZ4gPiBzaGlucnVpXCA7Civni6zlpY8gPiBkb2t1c291XCA7CivntZDpnLIgPiBrZXRzdXJvXCA7Civml6fms5UgPiBreXV1aG91XCA7CivmlZnnt7QgPiBreW91cmVuXCA7CivnibnmnIkgPiB0b2t1eXV1XCA7CivkuIrlgbQgPiB1d2FnYXdhXCA7CivmmbblrZAgPiBzaG91c2hpXCA7CivnuKbns7ggPiB0YXRlaXRvXCA7CivkuIDlhoogPiBpc3NhdHN1XCA7Civlp6bmgqogPiBrYW4nJ2FrdVwgOwor6KeS6YyQID4ga2FrdXN1aVwgOwor57WQ6ZuGID4ga2Vzc2h1dVwgOwor5LiL5YCkID4gc2hpdGFuZVwgOwor5aWz5rmvID4gb24nJ25heXVcIDsKK+S4gOWFgyA+IGljaGlnZW5cIDsKK+e+heWIlyA+IHJhcmV0c3VcIDsKK+aaluWbvSA+IGRhbmtva3VcIDsKK+eIvea2vCA+IHNvdXJ5b3VcIDsKK+WkqeecnyA+IHRlbnNoaW5cIDsKK+mZs+isnSA+IGNoaW5zaGFcIDsKK+aWkeeZvSA+IGhhbnBha3VcIDsKK+S4gOWEhCA+IGljaGlva3VcIDsKK+iok+iqrSA+IGt1bmRva3VcIDsKK+S4mOS4iiA+IGt5dXVqb3VcIDsKK+eIm+eGnyA+IHJhbmp1a3VcIDsKK+WlveazgSA+IGtvdWt5b3VcIDsKK+aXouaxuiA+IGtpa2V0c3VcIDsKK+ippuiBtCA+IHNoaWNob3VcIDsKK+aYjuacnSA+IG1pbmNob3VcIDsKK+iol+iogCA+IHRha3VnZW5cIDsKK+mgmOWfnyA+IHJ5b3Vpa2lcIDsKK+aageWkqSA+IGd5b3V0ZW5cIDsKK+iogOiyrCA+IGdlbnNla2lcIDsKK+aWsOeJiCA+IHNoaW5wYW5cIDsKK+imqumbuyA+IHNoaW5kZW5cIDsKK+WkqueZvSA+IHRhaWhha3VcIDsKK+eJueaXqCA+IHRva3VzaGlcIDsKK+S4iuS9nCA+IGpvdXNha3VcIDsKK+WkqeeahyA+IHRlbicnbm91XCA7CivkuIrkvLggPiBqb3VzaGluXCA7CivmlbDnp5IgPiBzdXVieW91XCA7CivmlaPnrZYgPiBzYW5zYWt1XCA7Civmlofnm7ggPiBidW5zaG91XCA7Civlo7LntIQgPiBiYWl5YWt1XCA7CivkuInkvLggPiBzYW5zaGluXCA7Civml6fmrZMgPiBreXV1a2FuXCA7CivlpKfnmb0gPiB0YWloYWt1XCA7CivkuIfkvZwgPiBtYW5zYWt1XCA7CivmmI7mmbAgPiBtZWlzZWtpXCA7CivmmanlraYgPiBiYW5nYWt1XCA7CivpoJjlnLAgPiByeW91Y2hpXCA7CivnhKbouoEgPiBzaG91c291XCA7CivmmI7mmakgPiBteW91YmFuXCA7CivkuIDlgI0gPiBpY2hpYmFpXCA7Civmlaznp7AgPiBrZWlzaG91XCA7CivntYLpm7sgPiBzaHV1ZGVuXCA7CivkuIrkurogPiBzaG91bmluXCA7Civml6XmrKcgPiBuaWNoaW91XCA7CivkuIrkuqwgPiBqb3VreW91XCA7CivmmI7mmJ8gPiBteW91am91XCA7CivkuInkurogPiBzYW4nJ25pblwgOwor57im56ybID4gdGF0ZWJ1ZVwgOwor6ZuG576kID4gc2h1dWd1blwgOwor5LiH5Lq6ID4gbWFuJyduaW5cIDsKK+aVmeevhCA+IGt5b3VoYW5cIDsKK+S4gOS+iyA+IGljaGlyZWlcIDsKK+Wkp+eXhSA+IHRhaWJ5b3VcIDsKK+aVrOelniA+IGtlaXNoaW5cIDsKK+eJueaSsCA+IHRva3VzZW5cIDsKK+iqv+eQtCA+IGNob3VraW5cIDsKK+mgreWPliA+IHRvdWRvcmlcIDsKK+mghuWigyA+IGp1bmt5b3VcIDsKK+mbqOesoCA+IGFtYWdhc2FcIDsKK+e1pumHkSA+IGt5dXVraW5cIDsKK+ips+e0sCA+IHNob3VzYWlcIDsKK+e4pueptCA+IHRhdGVhbmFcIDsKK+S4gOS7uyA+IGljaGluaW5cIDsKK+Wkp+eUtyA+IG9vb3Rva29cIDsKK+S4gOS7oyA+IGljaGlkYWlcIDsKK+e9sOWJhyA+IGJhc3Nva3VcIDsKK+mch+ebqiA+IHNoaW50b3VcIDsKK+mciueahCA+IHJlaXRla2lcIDsKK+mdmeazqCA+IGpvdWNodXVcIDsKK+WkluebuCA+IGdhaXNob3VcIDsKK+WkmueZuiA+IHRhaGF0c3VcIDsKK+mbqOepuiA+IGFtYXpvcmFcIDsKK+eEtuirviA+IHplbmRha3VcIDsKK+iprue0oiA+IHNlbnNha3VcIDsKK+e5i+eVmSA+IGtlaXJ5dXVcIDsKK+aVo+elqCA+IHNhbnB5b3VcIDsKK+e3tOe/kiA+IHJlbnNodXVcIDsKK+ipleiAhSA+IGh5b3VzaGFcIDsKK+eGn+e3tCA+IGp1a3VyZW5cIDsKK+S4gOS4uCA+IGljaGlnYW5cIDsKK+WklueahCA+IGdhaXRla2lcIDsKK+eLrOWWhCA+IGRva3V6ZW5cIDsKK+Wkj+edgCA+IG5hdHN1Z2lcIDsKK+ipqee1jCA+IHNoaWt5b3VcIDsKK+eJueaNnCA+IHRva3Vzb3VcIDsKK+WkqeeQgyA+IHRlbmt5dXVcIDsKK+aXp+ajsiA+IGt5dXVzZWlcIDsKK+Wmu+aIuCA+IHRzdW1hZG9cIDsKK+aVmeeoiyA+IGt5b3V0ZWlcIDsKK+aWkeeMqyA+IGhhbm15b3VcIDsKK+aZi+WxsSA+IHNoaW56YW5cIDsKK+eMn+S6uiA+IHJ5b3VqaW5cIDsKK+aXi+avmyA+IHRzdW11amlcIDsKK+WgsemFrCA+IGhvdXNodXVcIDsKK+eDiOmchyA+IHJlc3NoaW5cIDsKK+aYpeaDhSA+IHNodW5qb3VcIDsKK+e3rOe+iiA+IG1lbicneW91XCA7Civml6fmoJYgPiBreXV1c2VpXCA7CivnuJ/npLwgPiBqb2t1cmVpXCA7CivlpKfnjYQgPiB0YWlnb2t1XCA7CivlpKfnjJ8gPiB0YWlyeW91XCA7Civni4LlpZQgPiBreW91aG9uXCA7CivloqjoibIgPiBzdW1paXJvXCA7Civnt4/oirEgPiBzb3ViYW5hXCA7CivmlabnnaYgPiB0b25ib2t1XCA7CivopoHpoJggPiB5b3VyeW91XCA7Civni6zlkJ8gPiBkb2t1Z2luXCA7CivopobpnaIgPiBmdWt1bWVuXCA7CivnuZTniakgPiBvcmltb25vXCA7Civmlaznmb0gPiBrZWloYWt1XCA7CivlpZTmtYEgPiBob25yeXV1XCA7Civml6fmnaUgPiBreXV1cmFpXCA7Civml6nmnJ0gPiBzb3VjaG91XCA7Civml6fmnZEgPiBreXV1c29uXCA7CivmmYLlsYAgPiBqaWt5b2t1XCA7CivmlK/ntaYgPiBzaGlreXV1XCA7CivmlL/nrZYgPiBzZWlzYWt1XCA7Civni6zljaAgPiBkb2t1c2VuXCA7CivlpInnl4cgPiBoZW5zaG91XCA7Civml6XmnJ0gPiBuaXRjaG91XCA7CivmlK/ntKIgPiBzaGlzYWt1XCA7CivlpoLmnIggPiBuaWdhdHN1XCA7Civml6nmmoEgPiBzb3VneW91XCA7CivlpLHngrkgPiBzaGl0dGVuXCA7Civpm5HnqYAgPiB6YWtrb2t1XCA7CivopZ/pq6ogPiBlcmlnYW1pXCA7Civopqrph4wgPiBveWF6YXRvXCA7Civnhafoh6ggPiBzaG91cmluXCA7Civml6nmmKUgPiBzb3VzaHVuXCA7CivmmKjlubQgPiBzYWt1bmVuXCA7CivorLnmhY4gPiBraW5zaGluXCA7Civop6Poqq0gPiBrYWlkb2t1XCA7CivlpKnnhLYgPiB0ZW4nJ25lblwgOwor5paw5rOVID4gc2hpbnBvdVwgOwor5aWl5qeYID4gb2t1c2FtYVwgOwor54us5Ym1ID4gZG9rdXNvdVwgOwor5pel5pmCID4gbmljaGlqaVwgOwor57eR6IKlID4gcnlva3VoaVwgOwor6aCY5YiGID4gcnlvdWJ1blwgOwor57ev57O4ID4geW9rb2l0b1wgOwor6Zuq55m9ID4gc2VwcGFrdVwgOwor54m55oCnID4gdG9rdXNlaVwgOwor54m55oClID4gdG9ra3l1dVwgOwor5pS756m2ID4ga291a3l1dVwgOwor6aCY5YaFID4gcnlvdW5haVwgOwor6ZmE6KitID4gZnVzZXRzdVwgOwor6Zu755CDID4gZGVua3l1dVwgOwor54m95by3ID4ga2Vua3lvdVwgOwor54mH5pa5ID4ga2F0YWhvdVwgOwor5pWZ55qHID4ga3lvdWtvdVwgOwor6Kme56ugID4gc2hpc2hvdVwgOwor6Kiz6ICFID4geWFrdXNoYVwgOwor54m55b6FID4gdG9rdXRhaVwgOwor6KWf6aaWID4gZXJpa3ViaVwgOwor5aWq5qC8ID4gZGFra2FrdVwgOwor5pW154q2ID4gdGVraWpvdVwgOwor5pKD6YCAID4gZ2VraXRhaVwgOwor6Zuj55mWID4gbmFua3VzZVwgOwor5pS556ewID4ga2Fpc2hvdVwgOwor5aaZ5omLID4gbXlvdXNodVwgOwor5pil5bWQID4gc2h1bnJhblwgOwor6KWy6Zu3ID4gc2h1dXJhaVwgOwor5aaZ5omAID4gbXlvdXNob1wgOwor6Kaq6L+RID4gc2hpbmtpblwgOwor5piO5b60ID4gbWVpY2hvdVwgOwor5piO5b6zID4gbWVpdG9rdVwgOwor6Zuj55eHID4gbmFuc2hvdVwgOwor6Zuj55eFID4gbmFuYnlvdVwgOwor54Sh6KGAID4gbXVrZXRzdVwgOwor6Kaa6YaSID4ga2FrdXNlaVwgOwor57eg57SEID4gdGVpeWFrdVwgOwor6K2Y5a2XID4gc2hpa2lqaVwgOwor6Ziy6KucID4gYm91Y2hvdVwgOwor5pqB5YWJID4gZ3lvdWtvdVwgOwor5pWZ55SfID4ga3lvdXNlaVwgOwor5piU5bm0ID4gc2VraW5lblwgOwor6KuL5rGCID4gc2Vpa3l1dVwgOwor5aSn5ryBID4gdGFpcnlvdVwgOwor54KS6aOvID4gY2hhYWhhblwgOwor6aCD5Yi7ID4ga2Vpa29rdVwgOwor6Zml6JC9ID4ga2FucmFrdVwgOwor6KqY54iGID4geXV1YmFrdVwgOwor6Z2S5p2+ID4gc2Vpc2hvdVwgOwor5aSW54K6ID4gZ2FpdGFtZVwgOwor6Ki857SZID4gc2hvdXNoaVwgOwor6ZyH54G9ID4gc2hpbnNhaVwgOwor5pmv5YudID4ga2Vpc2hvdVwgOwor5pil5a+SID4gc2h1bmthblwgOwor57Wx6KaaID4gdG91a2FrdVwgOwor54iG5q27ID4gYmFrdXNoaVwgOwor57ay6IacID4gbW91bWFrdVwgOwor54af55+lID4ganVrdWNoaVwgOwor5piO5bm0ID4gbXlvdW5lblwgOwor5aSp5risID4gdGVuc29rdVwgOwor5aSp5ribID4gdGVuYmlraVwgOwor5aWP5qW9ID4gc291Z2FrdVwgOwor6aCY5LyaID4gcnlvdWthaVwgOwor6Kq/5rOVID4gY2hvdWhvdVwgOwor5piM5bmzID4gc2hvdWhlaVwgOwor5aeJ5am/ID4gYW5lbXVrb1wgOwor57WC6LuKID4gc2h1dXNoYVwgOwor5pqR5LitID4gc2hvY2h1dVwgOwor57a/576KID4gbWVuJyd5b3VcIDsKK+eyvum6piA+IHNlaWJha3VcIDsKK+eGn+edoSA+IGp1a3VzdWlcIDsKK+e4q+eJqSA+IG51aW1vbm9cIDsKK+aWr+alrSA+IHNoaWd5b3VcIDsKK+aZtuWFiSA+IHNob3Vrb3VcIDsKK+e3iue4myA+IGtpbmJha3VcIDsKK+ims+izniA+IGthbnNob3VcIDsKK+mfk+WbvSA+IGthbmtva3VcIDsKK+mbo+eQgyA+IG5hbmt5dXVcIDsKK+eGn+ecoCA+IGp1a3VtaW5cIDsKK+WiqOezuCA+IHN1bWlpdG9cIDsKK+mZsOiGsyA+IGthZ2V6ZW5cIDsKK+ipqeeahCA+IHNoaXRla2lcIDsKK+mgmOS4uyA+IHJ5b3VzaHVcIDsKK+aYn+WtpiA+IHNlaWdha3VcIDsKK+Wkqea0pSA+IHRlbnNoaW5cIDsKK+mdkuaYpSA+IHNlaXNodW5cIDsKK+aah+S6uiA+IGhpbWFqaW5cIDsKK+ims+ixoSA+IGthbnNob3VcIDsKK+mfs+WKmyA+IG9ucnlva3VcIDsKK+eCuumKgCA+IHRhbWVnaW5cIDsKK+iok+iCsiA+IGt1bicnaWt1XCA7CivlpaXmlrkgPiBva3VnYXRhXCA7Civni6nkurogPiBrYXJ5dWRvXCA7CivntK/pgLIgPiBydWlzaGluXCA7CivlpKnms6MgPiB0ZW5reXV1XCA7Civlpa7mkoMgPiBmdW5nZWtpXCA7CivnhLzoiosgPiB5YWtpaW1vXCA7Civml6fmh5AgPiBreXV1a2FpXCA7Civpmaroh6MgPiBiYWlzaGluXCA7CivniafluKsgPiBib2t1c2hpXCA7CivmlrDmoYggPiBzaGluJydhblwgOwor6ZyH5rqQID4gc2hpbmdlblwgOwor5pen5oWjID4ga3l1dWthblwgOwor6ZqO57SaID4ga2Fpa3l1dVwgOwor5pen5oWLID4ga3l1dXRhaVwgOwor54m55a6aID4gdG9rdXRlaVwgOwor5pio5aSVID4gc2FrdXl1dVwgOwor6Zq755y8ID4gc2VraWdhblwgOwor54eD54S8ID4gbmVuc2hvdVwgOwor5paw5p2lID4gc2hpbnJhaVwgOwor5piT5a2mID4gZWtpZ2FrdVwgOwor5aKX57WmID4gem91a3l1dVwgOwor5pen5oKqID4ga3l1dWFrdVwgOwor5pWw5ru0ID4gc3V1dGVraVwgOwor57a+57W5ID4gYXlhZ2ludVwgOwor57Si6YGTID4gc2FrdWRvdVwgOwor5aa75aa+ID4gc2Fpc2hvdVwgOwor5pen5oGoID4ga3l1dWtvblwgOwor5pep5oClID4gc291a3l1dVwgOwor57WQ6KqeID4ga2V0c3Vnb1wgOwor5paw5pu4ID4gc2hpbnNob1wgOwor57SU6YePID4ganVucnlvdVwgOwor5aWz5omLID4gb24nJ25hZGVcIDsKK+eGseeLgiA+IG5la2t5b3VcIDsKK+Wls+aIvyA+IG55b3Vib3VcIDsKK+Wklua1tyA+IHNvdG91bWlcIDsKK+Wkp+atoyA+IHRhaXNob3VcIDsKK+WkseaoqSA+IHNoaWtrZW5cIDsKK+Wkp+assiA+IHRhaXlva3VcIDsKK+e1kOiolyA+IGtldHRha3VcIDsKK+WkluazqCA+IGdhaWNodXVcIDsKK+mYsuiZqyA+IGJvdWNodXVcIDsKK+WkluaziiA+IGdhaWhha3VcIDsKK+aWsOaYnyA+IHNoaW5zZWlcIDsKK+imhui8qiA+IGZ1a3VyaW5cIDsKK+aVtOa1gSA+IHNlaXJ5dXVcIDsKK+mgguS4iiA+IGNob3Vqb3VcIDsKK+eGseeHlyA+IGF0c3VrYW5cIDsKK+aXpeW9kyA+IGhpYXRhcmlcIDsKK+ezoOmbqCA+IG51a2FhbWVcIDsKK+e3j+ensCA+IHNvdXNob3VcIDsKK+aXp+W8iiA+IGt5dXVoZWlcIDsKK+eBq+mjnyA+IGthc2hva3VcIDsKK+eJueWkpyA+IHRva3VkYWlcIDsKK+imquiosSA+IG95YW1vdG9cIDsKK+aYpeWdiiA+IGhhcnVib3VcIDsKK+ipq+eKtiA+IHdhYmlqb3VcIDsKK+mbu+a1gSA+IGRlbnJ5dXVcIDsKK+itpuWRiiA+IGtlaWtva3VcIDsKK+eJueWjsiA+IHRva3ViYWlcIDsKK+aWsOaUvyA+IHNoaW5zZWlcIDsKK+aWrOaWsCA+IHphbnNoaW5cIDsKK+eKr+WJhyA+IGhhbnNva3VcIDsKK+manOeijSA+IHNob3VnYWlcIDsKK+eEoeiJsiA+IG11c2hva3VcIDsKK+WkluauuyA+IGdhaWtha3VcIDsKK+mbjOeKrCA+IG1lc3VpbnVcIDsKK+WkqealrSA+IHRlbmd5b3VcIDsKK+irluaVtSA+IHJvbnRla2lcIDsKK+mbgOeQgyA+IGphbmt5dXVcIDsKK+aWh+anmCA+IG1vbicneW91XCA7CivlpKfmpa0gPiB0YWlneW91XCA7Civml6fluKsgPiBreXV1c2hpXCA7Civml4XmiYAgPiB0YWJpc2hvXCA7Civns7jpi7ggPiBpdG9ub2tvXCA7CivmlrDmkrAgPiBzaGluc2VuXCA7CivoprPooYYgPiBrYW5zaHV1XCA7CivmlL7niacgPiBob3Vib2t1XCA7CivnibnloLEgPiB0b2t1aG91XCA7Civmlofmpb0gPiBidW5yYWt1XCA7CivnhKHohbAgPiBtdWdvc2hpXCA7Civopqroo4EgPiBzaGluc2FpXCA7CivpnaLlvbEgPiBvbW9rYWdlXCA7CivnhZnnqoEgPiBlbnRvdHN1XCA7CivlopPnqbQgPiBib2tldHN1XCA7Civni4LkurogPiBreW91amluXCA7Civoqr/mm7ggPiBjaG91c2hvXCA7CivmmIflpKkgPiBzaG91dGVuXCA7CivopqrooZsgPiBzaGluJydlaVwgOwor54uC5LmxID4ga3lvdXJhblwgOwor6Z2p5bivID4ga2F3YW9iaVwgOwor5aSp5p+xID4gdGVuY2h1dVwgOwor5peF5oSBID4gcnlvc2h1dVwgOwor6Kej6ISxID4gZ2VkYXRzdVwgOwor5pi85YmNID4gaGlydW1hZVwgOwor57aa57eoID4gem9rdWhlblwgOwor54ax5ryUID4gbmV0c3VlblwgOwor6Zuq5rSeID4gYm9uYm9yaVwgOwor54Sh6IG3ID4gbXVzaG9rdVwgOwor57eP552jID4gc291dG9rdVwgOwor6ZaT6ZqZID4ga2FuZ2VraVwgOwor6KaW6Ki6ID4gc2hpc2hpblwgOwor6ZaT6ZqUID4ga2Fua2FrdVwgOwor6Z205bGLID4ga3V0c3V5YVwgOwor5aCF6Kq/ID4ga2VuY2hvdVwgOwor5paO5pyNID4gc2FpZnVrdVwgOwor5pen5bGFID4ga3l1dWt5b1wgOwor57ep55CDID4ga2Fua3l1dVwgOwor57aZ57aaID4ga2Vpem9rdVwgOwor5aSp5pydID4gdGVuY2hvdVwgOwor6KaW6KeSID4gc2hpa2FrdVwgOwor5pen5bCBID4ga3l1dWhvdVwgOwor6Kqk5qSNID4gZ29zaG9rdVwgOwor6ZmL57+SID4gcm91c2h1dVwgOwor5aSn5pyoID4gdGFpYm9rdVwgOwor5Z+O6YOtID4gam91a2FrdVwgOwor5pWR5riIID4ga3l1dXNhaVwgOwor6KaW6KaaID4gc2hpa2FrdVwgOwor57eP55quID4gc291Z2F3YVwgOwor6Zm456iyID4gcmlrdXRvdVwgOwor5pWZ5rOVID4ga3lvdWhvdVwgOwor6Kq/5pW0ID4gY2hvdXNlaVwgOwor5pen5a6YID4ga3l1dWthblwgOwor5aSx5pWsID4gc2hpa2tlaVwgOwor6ZaL6ZmzID4ga2FpY2hpblwgOwor5aSx5pWXID4gc2hpcHBhaVwgOwor5aW95bCaID4ga291c2hvdVwgOwor5aWH5oqcID4ga2liYXRzdVwgOwor5aSx5pS/ID4gc2hpc3NlaVwgOwor6KiO56m2ID4gdG91a3l1dVwgOwor6ZyK5p+pID4gcmVpa3l1dVwgOwor6Kqt5pysID4gZG9rdWhvblwgOwor6Ziy6IetID4gYm91c2h1dVwgOwor6Kqt5pu4ID4gZG9rdXNob1wgOwor54qv5Lq6ID4gaGFuJyduaW5cIDsKK+WlpeW6rSA+IG9rdW5pd2FcIDsKK+iqrOacjSA+IHNlcHB1a3VcIDsKK+WmiuWooCA+IG5pbnNoaW5cIDsKK+WlpeW6lSA+IG9rdXpva29cIDsKK+eJp+WcsCA+IGJva3VjaGlcIDsKK+aVpuaouCA+IHRvbmJva3VcIDsKK+WlveWtpiA+IGtvdWdha3VcIDsKK+e3qOeJqSA+IGFtaW1vbm9cIDsKK+e2muevhyA+IHpva3VoZW5cIDsKK+WkqeaVtSA+IHRlbnRla2lcIDsKK+e1jOiUtSA+IGt5b3V6b3VcIDsKK+mciuacqCA+IHJlaWJva3VcIDsKK+WknOabsiA+IHlha3lva3VcIDsKK+e3j+eUuyA+IHNvdWtha3VcIDsKK+Wkp+aVtSA+IHRhaXRla2lcIDsKK+eJueWRvSA+IHRva3VtZWlcIDsKK+mZo+esoCA+IGppbmdhc2FcIDsKK+mahuebmyA+IHJ5dXVzZWlcIDsKK+ipleeCuSA+IGh5b3V0ZW5cIDsKK+aWsOaCoyA+IHNoaW5rYW5cIDsKK+aVkeawkSA+IGt5dXVtaW5cIDsKK+imgeiosyA+IHlvdXlha3VcIDsKK+aXp+WnkyA+IGt5dXVzZWlcIDsKK+mZjee1piA+IGtvdWt5dXVcIDsKK+aXp+WmuyA+IGt5dXVzYWlcIDsKK+aWh+aVmSA+IGJ1bmt5b3VcIDsKK+mdouWuuSA+IG1lbicneW91XCA7CivlpInmooMgPiBoZW50ZWtvXCA7CivnsbPpuqYgPiBiZWliYWt1XCA7CivntLDonrogPiBraXNoYWdvXCA7CivnhrHmsJcgPiBuZXRzdWtlXCA7CivmmKjlhqwgPiBzYWt1dG91XCA7CivmmKXliIYgPiBzaHVuYnVuXCA7CivoprPoj4ogPiBrYW5naWt1XCA7Civml6flpb0gPiBreXV1a291XCA7Civpm7vmn7EgPiBkZW5jaHV1XCA7Civplovpkb8gPiBrYWlzYWt1XCA7Civplbfpm6ggPiBuYWdhYW1lXCA7CivlpInmoLwgPiBoZW5rYWt1XCA7Civml6flpZcgPiBreXV1dG91XCA7Civoqp7mnKsgPiBnb21hdHN1XCA7Civns6fpgZMgPiByeW91ZG91XCA7CivopZ/otrMgPiBlcmlhc2hpXCA7CivorLnlkYogPiBraW5rb2t1XCA7CivoqqzmlZkgPiBzZWtreW91XCA7CivmkZjopoEgPiB0ZWtpeW91XCA7CivorYnliLggPiBzaG91a2VuXCA7CivmlZnmqKkgPiBreW91a2VuXCA7Civml6blpJUgPiB0YW5zZWtpXCA7Civmlq3lv7UgPiBkYW4nJ25lblwgOwor5pel5aScID4gbmljaGl5YVwgOwor5Z+O6LehID4gam91c2VraVwgOwor5pel5aSVID4gbmlzc2VraVwgOwor5pil5YWJID4gc2h1bmtvdVwgOwor5pS+5rWBID4gaG91cnl1dVwgOwor6ZyH5pemID4gc2hpbnRhblwgOwor5aWl5bGxID4gb2t1eWFtYVwgOwor5pen5aKfID4ga3l1dWt5b1wgOwor6Z2Z5a+CID4gc2VpamFrdVwgOwor6Kej57SEID4ga2FpeWFrdVwgOwor5aSx5oqVID4gc2hpdHRvdVwgOwor57ax55uuID4ga291bW9rdVwgOwor54Gr6YmiID4gaGliYWNoaVwgOwor57W257iBID4gemV0c3VlblwgOwor5aSV5pa5ID4geXV1Z2F0YVwgOwor5Z+36KGMID4gc2hpa2tvdVwgOwor57KX6aOfID4gc29zaG9rdVwgOwor5pWs5pyNID4ga2VpZnVrdVwgOwor5aSW5pW1ID4gZ2FpdGVraVwgOwor5pWF5q66ID4ga29zYXRzdVwgOwor6KaB6KGdID4geW91c2hvdVwgOwor5aaE5Z+3ID4gbW91c2h1dVwgOwor5aKD55uuID4gc2FrYWltZVwgOwor5aSP5pelID4ga2FqaXRzdVwgOwor6ZyH5pK8ID4gc2hpbmthblwgOwor5pWm5py0ID4gdG9uYm9rdVwgOwor5aOw5qW9ID4gc2VpZ2FrdVwgOwor5pen5Z6LID4ga3l1dWtlaVwgOwor5peF5a6iID4gcnlva2FrdVwgOwor6Z2i5aaWID4gbWVuJyd5b3VcIDsKK+aYreS7oyA+IHNob3VkYWlcIDsKK+eEoeethiA+IG11aGl0c3VcIDsKK+eJueWGmSA+IHRva3VzaGFcIDsKK+WkseaFiyA+IHNoaXR0YWlcIDsKK+aXp+WdgCA+IGt5dXVzaGlcIDsKK+e1kOiFuCA+IGtldGNob3VcIDsKK+aXp+WcsCA+IGt5dXVjaGlcIDsKK+eJueWFuCA+IHRva3V0ZW5cIDsKK+WgquiDvSA+IHRhbicnbm91XCA7Civoo73pnakgPiBzZWlrYWt1XCA7CivlpLHmhI8gPiBzaGl0c3VpXCA7CivniIblvL4gPiBiYWt1ZGFuXCA7CivnibnlhY0gPiB0b2t1bWVuXCA7CivmlK/mtYEgPiBzaGlyeXV1XCA7Civmj5rpmbggPiB5b3VyaWt1XCA7CivopqroiLkgPiBveWFidW5lXCA7CivpmbjnlKMgPiByaWt1c2FuXCA7CivpmbjnlJ8gPiByaWt1c2VpXCA7CivpnaLlo4EgPiBtZW5wZWtpXCA7CivmjqLps6UgPiB0YW5jaG91XCA7Civopqroh6ggPiBzaGlucmluXCA7CivntIToqIAgPiB5YWt1Z2VuXCA7CivlooPnlYwgPiBreW91a2FpXCA7CivmlZnmnaEgPiBreW91am91XCA7Civnspfpm5EgPiBzb3phdHN1XCA7CivmlZnmnZAgPiBreW91emFpXCA7CivmlZnmnKwgPiBreW91aG9uXCA7Civpm7vmkoMgPiBkZW5nZWtpXCA7CivmlZnmm7ggPiBreW91c2hvXCA7CivpmY3npZ4gPiBrb3VzaGluXCA7CivplpPov5EgPiBtYWRqaWthXCA7CivmlrDlsYUgPiBzaGlua3lvXCA7CivntLroibIgPiBrb24nJ2lyb1wgOwor57aZ55uuID4gdHN1Z2ltZVwgOwor6Zu35pKDID4gcmFpZ2VraVwgOwor5aG+55SfID4ganVrdXNlaVwgOwor6Kq/5bymID4gY2hvdWdlblwgOwor5aSx5b2TID4gc2hpdHRvdVwgOwor54eD5paZID4gbmVucnlvdVwgOwor6KiI55S7ID4ga2Vpa2FrdVwgOwor54m55L6LID4gdG9rdXJlaVwgOwor6Zqg5ruFID4gaW5tZXRzdVwgOwor54m55L2/ID4gdG9rdXNoaVwgOwor5aSn5oGvID4gdGFpc29rdVwgOwor6ZuG5qipID4gc2h1dWtlblwgOwor6ZaL6YCaID4ga2FpdHN1dVwgOwor6Zmj55ebID4gamludHN1dVwgOwor5aSW5oiaID4gZ2Fpc2VraVwgOwor5aSp5b+DID4gdGVuc2hpblwgOwor57WE6IG3ID4gc29zaG9rdVwgOwor57ay54yfID4gYW1pcnlvdVwgOwor5pav5a2mID4gc2hpZ2FrdVwgOwor5pW15omLID4gdGVraXNodVwgOwor5aOy5pilID4gYmFpc2h1blwgOwor5aSn5b6zID4gZGFpdG9rdVwgOwor6Zui5pelID4gcmluaWNoaVwgOwor57K+6YCyID4gc2hvdWppblwgOwor5aSn5b25ID4gdGFpeWFrdVwgOwor57K+6YCaID4gc2VpdHN1dVwgOwor54WJ542EID4gcmVuZ29rdVwgOwor6Kaq572yID4gc2hpbnNob1wgOwor6Ku45Zu9ID4gc2hva29rdVwgOwor5pen5ZCNID4ga3l1dW1laVwgOwor54mb5YiAID4gZ3l1dXRvdVwgOwor6Zuj5pW1ID4gbmFudGVraVwgOwor5pen5Y+3ID4ga3l1dWdvdVwgOwor54Cd6Z2SID4gcmVraXNlaVwgOwor5aSn5byTID4gZGFpa3l1dVwgOwor5pen5Y+LID4ga3l1dXl1dVwgOwor57WQ57iBID4ga2VjaGllblwgOwor6KKe6b6NID4ga29ucnlvdVwgOwor5paw5amaID4gc2hpbmtvblwgOwor5paH5byxID4gYnVuamFrdVwgOwor5pel5Y+OID4gbmlzc2h1dVwgOwor6ZuR5pyoID4gem91Ym9rdVwgOwor6Kqs5b6XID4gc2V0dG9rdVwgOwor6Z2W5Zu9ID4gc2Vpa29rdVwgOwor5piO5LquID4gbWVpcnlvdVwgOwor5aSp5bmVID4gdGVubWFrdVwgOwor5aOr5pePID4gc2hpem9rdVwgOwor54af5p+/ID4ganVrdXNoaVwgOwor6Zay6KanID4gZXRzdXJhblwgOwor6Z2p5ZG9ID4ga2FrdW1laVwgOwor57mU5biDID4gc2hva3VmdVwgOwor5pel5Y2wID4gbmljaGlpblwgOwor57mK5byxID4gc2VuamFrdVwgOwor57Sw6IWVID4gaG9zb3VkZVwgOwor57mU5belID4gc2hva2tvdVwgOwor54Wn5rqWID4gc2hvdWp1blwgOwor6Zu25oimID4gemVyb3NlblwgOwor5pW15oOFID4gdGVraWpvdVwgOwor5piH5Lu7ID4gc2hvdW5pblwgOwor6Kaa6ICFID4ga2FrdXNoYVwgOwor6KaW6IG0ID4gc2hpY2hvdVwgOwor57WE57mUID4gc29zaGlraVwgOwor6ZW36YCdID4gY2hvdXNlaVwgOwor6ZmE552AID4gZnVjaGFrdVwgOwor6Kys5LydID4gYnl1dWRlblwgOwor5aSW5b+DID4gZ2Fpc2hpblwgOwor5pW15oCnID4gdGVraXNlaVwgOwor6Kqg5b+gID4gc2VpY2h1dVwgOwor6KqY5oORID4geXV1d2FrdVwgOwor54mn5Lq6ID4gYm9rdWppblwgOwor5pen5Yi2ID4ga3l1dXNlaVwgOwor57WM57O4ID4gdGF0ZWl0b1wgOwor6ZW36L66ID4gY2hvdWhlblwgOwor6Kqg5b+DID4gc2Vpc2hpblwgOwor6ZyK5bufID4gcmVpYnlvdVwgOwor6Kmu5pa5ID4gc2Vua2F0YVwgOwor5pen5YiKID4ga3l1dWthblwgOwor5pet5YWJID4ga3lva2tvdVwgOwor5aSx5a++ID4gc2hpdHRhaVwgOwor54mH5YmNID4ga2F0YW1hZVwgOwor6Kuc5aCxID4gY2hvdWhvdVwgOwor5aKo5rGgID4gYm9rdWNoaVwgOwor5Z6C6L+5ID4gc3VpamFrdVwgOwor5pW05b6pID4gc2VpZnVrdVwgOwor5pen5YasID4ga3l1dXRvdVwgOwor5pSv5p+xID4gc2hpY2h1dVwgOwor5aKo5rGBID4gYm9rdWp1dVwgOwor5pS55pqmID4ga2FpcmVraVwgOwor5paw5aCxID4gc2hpbnBvdVwgOwor5aSW5buTID4gZ2Fpa2FrdVwgOwor6Ziq56WeID4gaGFuc2hpblwgOwor6Kq/5a2QID4gY2hvdXNoaVwgOwor5pen5YW4ID4ga3l1dXRlblwgOwor5pW15by+ID4gdGVraWRhblwgOwor6ZaA6LehID4gbW9uemVraVwgOwor57KX6YeRID4gYXJhZ2FuZVwgOwor5pS/5pW1ID4gc2VpdGVraVwgOwor6Kaq57GzID4gc2hpbmJlaVwgOwor5pWP5o23ID4gYmluc2hvdVwgOwor54mI5YWDID4gaGFubW90b1wgOwor5pS/5pWZID4gc2Vpa3lvdVwgOwor6Kmm5paZID4gc2hpcnlvdVwgOwor6KWB6KSTID4gbXV0c3VraVwgOwor57SU6ImvID4ganVucnlvdVwgOwor5aSJ5b+DID4gaGVuc2hpblwgOwor5pWZ5oiSID4ga3lvdWthaVwgOwor5aSn5bCPID4gZGFpc2hvdVwgOwor5aSn5bCGID4gZGFpc2hvdVwgOwor5pen5YK1ID4ga3l1dXNhaVwgOwor6ZaT6KucID4ga2FuY2hvdVwgOwor6KaL57+SID4gbWluYXJhaVwgOwor5pS55pawID4ga2Fpc2hpblwgOwor5paw5ZywID4gc2hpbmNoaVwgOwor57mL5bGeID4ga2Vpem9rdVwgOwor5pS+5pOyID4gaG91dGVraVwgOwor5pW35biDID4gc2hpa2lmdVwgOwor6ZuG5pWjID4gc2h1dXNhblwgOwor5o6h6ZuGID4gc2Fpc2h1dVwgOwor54mb5Li8ID4gZ3l1dWRvblwgOwor6KeS55uGID4ga2FrdWJvblwgOwor54i95YeJID4gc291cnlvdVwgOwor6KmU5pu4ID4gc2hvdXNob1wgOwor5aSn5a2mID4gZGFpZ2FrdVwgOwor6Kaq562JID4gc2hpbnRvdVwgOwor5aOB5p2/ID4ga2FiZWl0YVwgOwor5aaE5L+hID4gbW91c2hpblwgOwor5paH5a2mID4gYnVuZ2FrdVwgOwor5pS75pKDID4ga291Z2VraVwgOwor57eR5qi5ID4gcnlva3VqdVwgOwor54iq5Y2wID4gdHN1bWVpblwgOwor5pen5L6LID4ga3l1dXJlaVwgOwor5pSv5pePID4gc2hpem9rdVwgOwor57Oe6J2/ID4ga3Vzb2JhZVwgOwor5aKc5q27ID4gdHN1aXNoaVwgOwor5aWo5YqxID4gc2hvdXJlaVwgOwor57mU5aerID4gb3JpaGltZVwgOwor6Kq/5aOwID4gY2hvdXNlaVwgOwor6KSS6LOeID4gaG91c2hvdVwgOwor57SF6ImyID4gYmVuaWlyb1wgOwor6Zm45rW3ID4gcmlrdWthaVwgOwor57WC56uvID4gc2h1dXRhblwgOwor5pel5LyvID4gbmlwcGFrdVwgOwor5peL5YmKID4gc2Vuc2FrdVwgOwor6KeS55WqID4ga2Fkb2JhblwgOwor57K+6KqtID4gc2VpZG9rdVwgOwor57mU5aWzID4gc2hva3Vqb1wgOwor5pen5LqkID4ga3l1dWtvdVwgOwor5pel5LuYID4gaGlkenVrZVwgOwor54ax5oSbID4gbmV0c3VhaVwgOwor5aKD5ravID4ga3lvdWdhaVwgOwor6Zyc5aScID4gc2hpbW95b1wgOwor54Sm54elID4gc2hvdXNvdVwgOwor5aWz5YKRID4gam9rZXRzdVwgOwor5aSp5aWzID4gdGVuJydueW9cIDsKK+inkueTtiA+IGtha3ViaW5cIDsKK+e0oee4viA+IGJvdXNla2lcIDsKK+ipqeaKhCA+IHNoaXNob3VcIDsKK+aXp+S4uyA+IGt5dXVzaHVcIDsKK+Wkp+WlsyA+IG9vb24nJ25hXCA7CivmlbXlr74gPiB0ZWtpdGFpXCA7CivoqIjmuKwgPiBrZWlzb2t1XCA7CivmlrDlk4EgPiBzaGlucGluXCA7CivlpYnllLEgPiBob3VzaG91XCA7Civopqrnpa0gPiBzaGluc2FpXCA7CivmlpnlnLAgPiByeW91Y2hpXCA7CivnhKHnhrEgPiBtdW5ldHN1XCA7CivntZDnn7MgPiBrZXNzZWtpXCA7CivplbforJsgPiBjaG91a291XCA7Civnt4/moZAgPiBzb3VnaXJpXCA7CivnhKbngrkgPiBzaG91dGVuXCA7Civnhp/miJAgPiBqdWt1c2VpXCA7CivoqLzmm7ggPiBzaG91c2hvXCA7Civoq5blkYogPiByb25rb2t1XCA7CivnhrHlv4MgPiBuZXNzaGluXCA7Civop6PnhrEgPiBnZW5ldHN1XCA7CivlpYnlkYogPiBob3Vrb2t1XCA7CivlpLHlnLAgPiBzaGl0Y2hpXCA7CivmlrDlj4IgPiBzaGluemFuXCA7Civpm4bmiJAgPiBzaHV1c2VpXCA7CivmlbDlraYgPiBzdXVnYWt1XCA7CivmlZnluKsgPiBreW91c2hpXCA7CivmkoPnoJUgPiBnZWtpc2FpXCA7Civoqq3lo7IgPiB5b21pdXJpXCA7Civmjpjpkb8gPiBrdXNzYWt1XCA7Civpm7nlrrMgPiBoeW91Z2FpXCA7Civnt4/mn4QgPiBzb3VnYXJhXCA7CivpnIrlppkgPiByZWlteW91XCA7CivlpInlrrkgPiBoZW4nJ3lvdVwgOwor5peF5YOnID4gdGFiaXNvdVwgOwor6KO46LazID4gaGFkYXNoaVwgOwor6KuW5Y+KID4gcm9ua3l1dVwgOwor5o6h6YyyID4gc2Fpcm9rdVwgOwor54af5oWuID4ganVrdXJ5b1wgOwor6KaB57SEID4geW91eWFrdVwgOwor54KO6ImyID4gZW5zaG9rdVwgOwor54ax5bu2ID4gbmV0c3VlblwgOwor6Kiz5pysID4geWFrdWhvblwgOwor6Ki85piOID4gc2hvdW1laVwgOwor5aKo5pu4ID4gYm9rdXNob1wgOwor57Sb57O+ID4gZnVua3l1dVwgOwor6Kiz5pu4ID4geWFrdXNob1wgOwor5o6o6YePID4gc3VpcnlvdVwgOwor5pKe55CDID4gZG91a3l1dVwgOwor5aSZ5aScID4gc2h1a3V5YVwgOwor54ax5bqmID4gbmV0c3Vkb1wgOwor6ZyH5aSuID4gc2hpbicnb3VcIDsKK+WghuepjSA+IHRhaXNla2lcIDsKK+e0r+epjSA+IHJ1aXNla2lcIDsKK+mau+aJiyA+IHNla2lzaHVcIDsKK+WkqeWbvSA+IHRlbmdva3VcIDsKK+ijj+mHmCA+IHVyYWt1Z2lcIDsKK+ijj+mHkSA+IHVyYWdhbmVcIDsKK+aUquaLjCA+IGtha3VoYW5cIDsKK+eEmeeDmSA+IGhvdXJva3VcIDsKK+mZuOapiyA+IHJpa2t5b3VcIDsKK+iqjeWuuSA+IG5pbicneW91XCA7CivoqLzmlocgPiBzaG91bW9uXCA7CivoqLrmlq0gPiBzaGluZGFuXCA7CivlpKflm70gPiB0YWlrb2t1XCA7CivpmbDmrJ0gPiBpbicndXRzdVwgOwor6Ki75paHID4gY2h1dW1vblwgOwor57S656KnID4ga29ucGVraVwgOwor5paw5Yi2ID4gc2hpbnNlaVwgOwor5pS55oKbID4ga2Fpc2h1blwgOwor6Kmp5b+DID4gc2hpc2hpblwgOwor57W254ShID4gemV0c3VtdVwgOwor5aSW5aOBID4gZ2FpaGVraVwgOwor54af5oCdID4ganVrdXNoaVwgOwor5paw5YiKID4gc2hpbmthblwgOwor5paw5YiAID4gc2hpbnRvdVwgOwor6ZyE5aOMID4gc2hvdWpvdVwgOwor5pS+5b+DID4gaG91c2hpblwgOwor54yp44CFID4gc2hvdWpvdVwgOwor5aGe5rqQID4gc29rdWdlblwgOwor5aSn5Zi0ID4gb29oYXNoaVwgOwor57WC55ukID4gc2h1dWJhblwgOwor57SN57WMID4gbm91a3lvdVwgOwor5pWZ5bCOID4ga3lvdWRvdVwgOwor5paw5YW1ID4gc2hpbnBlaVwgOwor54S85q27ID4gc2hvdXNoaVwgOwor6Kiz5paHID4geWFrdWJ1blwgOwor5paw5YWaID4gc2hpbnRvdVwgOwor5pS55b+DID4ga2Fpc2hpblwgOwor54Wn5pifID4gc2hvdXNlaVwgOwor5o6b6YeRID4ga2FrZWtpblwgOwor5pWX5bCGID4gaGFpc2hvdVwgOwor5o6o6YCyID4gc3Vpc2hpblwgOwor54Wn5piOID4gc2hvdW1laVwgOwor6ZuE5b+DID4geXV1c2hpblwgOwor6Zm45qOyID4gcmlrdXNlaVwgOwor6KSH6KaWID4gZnVrdXNoaVwgOwor57K+6JmrID4gc2VpY2h1dVwgOwor5pW15aGBID4gdGVraXJ1aVwgOwor57ay5qOaID4gYW1pZGFuYVwgOwor6Zm45qOaID4gcmlrdWhvdVwgOwor5pWZ5a6YID4ga3lvdWthblwgOwor5Zu96aKoID4ga29rdWZ1dVwgOwor6ZqG5pu/ID4gcnl1dXRhaVwgOwor57ea5o+PID4gc2VuYnlvdVwgOwor6KaL56WeID4ga2Vuc2hpblwgOwor6KOB6YePID4gc2FpcnlvdVwgOwor6Kq/5ZCIID4gY2hvdWdvdVwgOwor5pS/5bqBID4gc2VpY2hvdVwgOwor6Kq/5Y+3ID4gY2hvdWdvdVwgOwor6Zmw5qW1ID4gaW5reW9rdVwgOwor5aSP5aC0ID4gbmF0c3ViYVwgOwor57SF57WEID4gYWthZ3VtaVwgOwor6KeS54GvID4ga2FrdXRvdVwgOwor6KSH6KO9ID4gZnVrdXNlaVwgOwor5aSW5ZynID4gZ2FpYXRzdVwgOwor5paJ5ZSxID4gc2Vpc2hvdVwgOwor54af5bm0ID4ganVrdW5lblwgOwor57WQ55CDID4ga2Vra3l1dVwgOwor5aCG55+zID4gdGFpc2VraVwgOwor5aSW5Zu9ID4gZ2Fpa29rdVwgOwor5o6l6L6eID4gc2V0c3VqaVwgOwor57K+6JaEID4gc2VpaGFrdVwgOwor5pW15ZywID4gdGVraWNoaVwgOwor5o2V6aOfID4gaG9zaG9rdVwgOwor5pW15Zu9ID4gdGVra29rdVwgOwor57WC55SfID4gc2h1dXNlaVwgOwor6Kej5raIID4ga2Fpc2hvdVwgOwor5aSJ5Z+fID4gaGVuJydpa2lcIDsKK+mZveaapiA+IHlvdXJla2lcIDsKK+Wkp+WQjSA+IGRhaW15b3VcIDsKK+WkseWKuSA+IHNoaWtrb3VcIDsKK+aWsOS9kyA+IHNoaW50YWlcIDsKK+WbvembuyA+IGtva3VkZW5cIDsKK+Wkp+WPoyA+IG9vZ3VjaGlcIDsKK+aOmOmAsiA+IGt1c3NoaW5cIDsKK+iqv+WJpCA+IGNob3V6YWlcIDsKK+mZuOabuSA+IHJpa3Vzb3VcIDsKK+WbvemboyA+IGtva3VuYW5cIDsKK+e3qeaApSA+IGthbmt5dXVcIDsKK+aUr+W6piA+IHNoaXRha3VcIDsKK+mZveaYpSA+IHlvdXNodW5cIDsKK+WbvemamyA+IGtva3VzYWlcIDsKK+Wkp+WOhCA+IHRhaXlha3VcIDsKK+e0i+eroCA+IG1vbnNob3VcIDsKK+aUr+W6gSA+IHNoaWNob3VcIDsKK+WcsOmBkyA+IGppbWljaGlcIDsKK+imqueOiSA+IG95YWRhbWFcIDsKK+aWsOS6uiA+IHNoaW5qaW5cIDsKK+aVheWunyA+IGtvaml0c3VcIDsKK+WkluWVhiA+IGdhaXNob3VcIDsKK+WbvemYsiA+IGtva3Vib3VcIDsKK+aUvuWwvyA+IGhvdW55b3VcIDsKK+ino+awtyA+IGthaWh5b3VcIDsKK+aWh+WNmiA+IGJ1bmhha3VcIDsKK+aTr+aWpSA+IGhpbnNla2lcIDsKK+Wkp+WLnSA+IHRhaXNob3VcIDsKK+aVmeWjhyA+IGt5b3VkYW5cIDsKK+e4ruWbsyA+IHNodWt1enVcIDsKK+mWk+iGnCA+IGthbm1ha3VcIDsKK+Wkp+WKmyA+IGRhaXJpa2lcIDsKK+aTjealrSA+IHNvdWd5b3VcIDsKK+WkqeWJhyA+IHRlbnNva3VcIDsKK+aOqOizniA+IHN1aXNob3VcIDsKK+eEoeasoCA+IG11a2V0c3VcIDsKK+ipqeWtpiA+IHNoaWdha3VcIDsKK+a/gOmXmCA+IGdla2l0b3VcIDsKK+ims+eFpyA+IGthbnNob3VcIDsKK+WkluWRqCA+IGdhaXNodXVcIDsKK+mWk+iEsyA+IGthbicnbm91XCA7CivmlZnloLQgPiBreW91am91XCA7Civlm7Dpm6MgPiBrb24nJ25hblwgOwor57im5Z2RID4gdGF0ZWtvdVwgOwor57Wm5rqQID4ga3l1dWdlblwgOwor6Zyy5LuPID4gcm9mdXRzdVwgOwor6Kqh5ZGKID4ga2Fpa29rdVwgOwor57Wm5rmvID4ga3l1dXRvdVwgOwor5Zyw6Lu4ID4gY2hpamlrdVwgOwor54K6552AID4gc2hpa2lzZVwgOwor5aSn5Ye2ID4gZGFpa3lvdVwgOwor6KaB55uuID4geW91bW9rdVwgOwor5pS75a2mID4ga291Z2FrdVwgOwor57WE54mIID4ga3VtaWhhblwgOwor6Kq/5YGcID4gY2hvdXRlaVwgOwor5pS55a6XID4ga2Fpc2h1dVwgOwor57mU5YWDID4gb3JpbW90b1wgOwor6KWf56ugID4gZXJpc2hvdVwgOwor6ZaL6IW5ID4ga2FpZnVrdVwgOwor6Zub5aOHID4gaGluYWRhblwgOwor5aSn5YW1ID4gZGFpaHlvdVwgOwor54et5YWJID4gc2hva2tvdVwgOwor6KGo6aGMID4gaHlvdWRhaVwgOwor6ZyH5YuVID4gc2hpbmRvdVwgOwor5pWZ5ZujID4ga3lvdWRhblwgOwor57SU55yfID4ganVuc2hpblwgOwor6Zq35bGeID4gcmVpem9rdVwgOwor5pac5LqkID4gaGFzdWthaVwgOwor57mB5YqHID4gaGFuZ2VraVwgOwor54Wp5oKpID4gYm9uJydub3VcIDsKK+ijveiWrCA+IHNlaXlha3VcIDsKK+WjsuWbvSA+IGJhaWtva3VcIDsKK+WkseS9kyA+IHNoaXR0YWlcIDsKK+e0lOebiiA+IGp1bicnZWtpXCA7Civmlpnkuq0gPiByeW91dGVpXCA7CivopqrngpkgPiBzaGluc2hhXCA7CivopIfokYkgPiBmdWt1eW91XCA7CivoqbPloLEgPiBzaG91aG91XCA7Civnt57luLMgPiBkb25jaG91XCA7CivmlbXli6IgPiB0ZWtpemVpXCA7CivooajpnaIgPiBoeW91bWVuXCA7CivplbfoiosgPiBuYWdhaW1vXCA7CivpmqPluK0gPiByaW5zZWtpXCA7CivntJTnmb0gPiBqdW5wYWt1XCA7CivoqZXlrpogPiBoeW91dGVpXCA7CivpmLLmr5IgPiBib3Vkb2t1XCA7CivmlbDljLkgPiBzdXVoaWtpXCA7CivlpJXliLsgPiB5dXVrb2t1XCA7Civpm7vljZMgPiBkZW50YWt1XCA7CivntYLngrkgPiBzaHV1dGVuXCA7Civnt4rmgKUgPiBraW5reXV1XCA7CivpmY3moLwgPiBrb3VrYWt1XCA7CivntabmsLQgPiBreXV1c3VpXCA7Civnsr7ogokgPiBzZWluaWt1XCA7CivmlbXliY0gPiB0ZWtpemVuXCA7CivlpJXlh6ogPiB5dXVuYWdpXCA7CivloZ7moJMgPiBzb2t1c2VuXCA7CivnuZrkubEgPiByeW91cmFuXCA7CivlpKnkvZEgPiB0ZW4nJ3l1dVwgOwor6Kmp5aKDID4gc2hpa3lvdVwgOwor57iE5aKoID4gam91Ym9rdVwgOwor5aSn5L2cID4gdGFpc2FrdVwgOwor6Kaq5r2uID4gb3lhc2hpb1wgOwor5Zuj6ZW3ID4gZGFuY2hvdVwgOwor6ZeY55eFID4gdG91YnlvdVwgOwor6KOc6KGAID4gaG9rZXRzdVwgOwor6Kaz5risID4ga2Fuc29rdVwgOwor54Wu5bmyID4gbmlib3NoaVwgOwor5Zub6Zi/ID4gYXp1bWF5YVwgOwor57ax5omLID4gdHN1bmFkZVwgOwor6Zm45oimID4gcmlrdXNlblwgOwor5aSp5Lq6ID4gdGVuJyduaW5cIDsKK+eBjOiFuCA+IGthbmNob3VcIDsKK+e3iuW8tSA+IGtpbmNob3VcIDsKK+mbhuWhtSA+IHNodXVqaW5cIDsKK+malOW5tCA+IGtha3VuZW5cIDsKK+mZjeacjSA+IGtvdWZ1a3VcIDsKK+WkluWCtyA+IGdhaXNob3VcIDsKK+WkieWJhyA+IGhlbnNva3VcIDsKK+mbhuWhiiA+IHNodXVrYWlcIDsKK+eEoeacrSA+IG11c2F0c3VcIDsKK+e0heeZvSA+IGtvdWhha3VcIDsKK+ino+aekCA+IGthaXNla2lcIDsKK+eEoeaciCA+IG11Z2V0c3VcIDsKK+Wil+W+tCA+IHpvdWNob3VcIDsKK+ilsueUqCA+IHNodXV5b3VcIDsKK+iqrOS8jyA+IHNlcHB1a3VcIDsKK+eGseWUsSA+IG5lc3Nob3VcIDsKK+aWieS4gCA+IHNlaWl0c3VcIDsKK+WkluS/oSA+IGdhaXNoaW5cIDsKK+aWh+S4rSA+IGJ1bmNodXVcIDsKK+Wil+W8tyA+IHpvdWt5b3VcIDsKK+mZuuaCqiA+IGtlbicnYWt1XCA7CivplbfogIMgPiBjaG91a291XCA7CivplbfogIEgPiBjaG91cm91XCA7CivooYzpoK0gPiBneW91dG91XCA7Civnt5rlr6kgPiBzZW5zaGluXCA7Civopb/ni6wgPiBzZWlkb2t1XCA7CivmlZHlkb0gPiBreXV1bWVpXCA7CivpmqDlr4YgPiBvbm1pdHN1XCA7Civplqjnp4AgPiBrZWlzaHV1XCA7CivpnI3kubEgPiBrYWt1cmFuXCA7Civlm73pgZMgPiBrb2t1ZG91XCA7CivntZDmsLcgPiBrZXBweW91XCA7Civpm4blm6MgPiBzaHV1ZGFuXCA7Civlm73pgKMgPiBrb2t1cmVuXCA7CivpmbPmg4UgPiBjaGluam91XCA7CivngavnrrggPiBoaWJhc2hpXCA7Civlo7LljZwgPiBiYWlib2t1XCA7CivmlZfljJcgPiBoYWlib2t1XCA7CivpmpzlrrMgPiBzaG91Z2FpXCA7CivlopfluYUgPiB6b3VmdWt1XCA7Civmk7LlvL4gPiB0ZWtpZGFuXCA7Civmva7pqJIgPiBzaGlvc2FpXCA7CivntKLnhLYgPiBzYWt1emVuXCA7CivnhLzmiJAgPiBzaG91c2VpXCA7Civpm7vkv6EgPiBkZW5zaGluXCA7CivntprmipUgPiB6b2t1dG91XCA7Civmv6voqq0gPiByYW5kb2t1XCA7Civntpnmib8gPiBrZWlzaG91XCA7Civntr7luIMgPiBheWFudW5vXCA7CivnspjohpwgPiBuZW5tYWt1XCA7CivmkYLnkIYgPiBzZXRzdXJpXCA7Civpm6rlhqQgPiBzZXRzdWVuXCA7CivmlL/llYYgPiBzZWlzaG91XCA7CivloqjlroggPiBib2t1c2h1XCA7CivnsonojLYgPiBrb25hY2hhXCA7Civop5LmnZAgPiBrYWt1emFpXCA7CivntYzmrbQgPiBrZWlyZWtpXCA7Civpm6LliKUgPiByaWJldHN1XCA7Civpl5jniZsgPiB0b3VneXV1XCA7CivnhaflsIQgPiBzaG91c2hhXCA7Civmkanmu4UgPiBtYW1ldHN1XCA7Civlm73ou40gPiBrb2t1Z3VuXCA7CivloZfmk6YgPiB0b3NhdHN1XCA7Civmv6vop7QgPiByYW5zaG91XCA7Civplbfnt6ggPiBjaG91aGVuXCA7CivmlZnlhbggPiBreW91dGVuXCA7CivlnLDooaggPiBjaGloeW91XCA7CivoqbLljZogPiBnYWloYWt1XCA7CivmjqjolqwgPiBzdWl5YWt1XCA7CivpmbPlvIEgPiBjaGluYmVuXCA7Civns7jnk5wgPiBoZWNoaW1hXCA7Civngqznh7UgPiBrb3RhdHN1XCA7CivooYzplpMgPiBneW91a2FuXCA7Civpm6jlgpggPiBhbWFnYXNhXCA7Civplovnq4sgPiBrYWlyeXV1XCA7CivntYLmraIgPiBzaHV1c2hpXCA7Civmkp7mnKggPiBzaHVtb2t1XCA7Civpm5Hli5kgPiB6YXRzdW11XCA7CivntLDmtYEgPiBzYWlyeXV1XCA7CivoqI7luZUgPiB0b3ViYWt1XCA7Civpm4blkIggPiBzaHV1Z291XCA7CivmjajosaEgPiBzaGFzaG91XCA7Civngq7ng5kgPiBob3Vyb2t1XCA7CivlnLDonIIgPiBqaWJhY2hpXCA7Civpmbrls7sgPiBrZW5zaHVuXCA7CivopqrmqKkgPiBzaGlua2VuXCA7CivooZfpjLIgPiBnYWlyb2t1XCA7CivopIfnt5ogPiBmdWt1c2VuXCA7Civpm5HliYcgPiB6YXNzb2t1XCA7Civoo4XolqwgPiBzb3V5YWt1XCA7Civlm73os5MgPiBrb2t1aGluXCA7Civngrnmu7QgPiB0ZW50ZWtpXCA7CivpmbjlsrggPiByaWt1Z2FuXCA7CivloZfmirkgPiB0b21hdHN1XCA7CivoqanliocgPiBzaGlnZWtpXCA7CivplovnpaggPiBrYWloeW91XCA7Civmkrnmi4wgPiBrYWt1aGFuXCA7Civpmb3lsIQgPiBoaXphc2hpXCA7CivnhrHlgrcgPiBuZXNzaG91XCA7CivplqLnmb0gPiBrYW5wYWt1XCA7Civoo5zoibIgPiBob3Nob2t1XCA7CivnhKbmha4gPiBzaG91cnlvXCA7CivpmarluK0gPiBiYWlzZWtpXCA7CivntZDmoLggPiBrZWtrYWt1XCA7CivmjK/piLQgPiBzaGlucmVpXCA7CivmlZnkvJogPiBreW91a2FpXCA7Civpm5HlhbUgPiB6b3VoeW91XCA7CivpmqPlm70gPiByaW5nb2t1XCA7CivntYPmpb0gPiBnZW5nYWt1XCA7Civpm4DljZMgPiBqYW50YWt1XCA7CivpmbjlsIEgPiByaWt1ZnV1XCA7Civpm6rkuK0gPiBzZXRjaHV1XCA7CivloqjloKQgPiBib2t1dGVpXCA7CivoqJflrqMgPiB0YWt1c2VuXCA7Civnsr7npZ4gPiBzZWlzaGluXCA7CivmkI3nm4ogPiBzb24nJ2VraVwgOwor6Zmj5bmVID4gamlubWFrdVwgOwor54Gw55q/ID4gaGFpemFyYVwgOwor57KX57iEID4gYXJhbmF3YVwgOwor5oyM6ZeYID4ga2FrdXRvdVwgOwor5oy66YCyID4gdGVpc2hpblwgOwor57O454iqID4gaGVjaGltYVwgOwor6KSS56ugID4gaG91c2hvdVwgOwor57WQ5p2fID4ga2Vzc29rdVwgOwor54Gw55m9ID4ga2FpaGFrdVwgOwor5pWZ5Li7ID4ga3lvdXNodVwgOwor6Kem5oSfID4gc2hva2thblwgOwor5oub6a2CID4gc2hvdWtvblwgOwor6Kaq5qCqID4gb3lha2FidVwgOwor57K+56K6ID4gc2Vpa2FrdVwgOwor5Zu96KuWID4ga29rdXJvblwgOwor57eR5ZyfID4gcnlva3Vkb1wgOwor6ZuG5YWJID4gc2h1dWtvdVwgOwor57WQ5pm2ID4ga2Vzc2hvdVwgOwor6KOc6IG3ID4gaG9zaG9rdVwgOwor5r+A6KuWID4gZ2VraXJvblwgOwor6Kmz5LydID4gc2hvdWRlblwgOwor57SF5r2uID4ga291Y2hvdVwgOwor5pWR5LiWID4ga3l1dXNlaVwgOwor6KaB5rGCID4geW91a3l1dVwgOwor6Zmq5a+pID4gYmFpc2hpblwgOwor5oy66LqrID4gdGVpc2hpblwgOwor54ax5LitID4gbmV0Y2h1dVwgOwor6Kaq5pu4ID4gc2hpbnNob1wgOwor6KOP6IW5ID4gdXJhaGFyYVwgOwor6KmV5YikID4gaHlvdWJhblwgOwor57SN5ra8ID4gbm91cnlvdVwgOwor5Zuz6KqsID4genVzZXRzdVwgOwor6Kmp5L2cID4gc2hpc2FrdVwgOwor6ZaT55S3ID4gbWFvdG9rb1wgOwor5pG65pysID4gc2hvdWhvblwgOwor6ZuR5LqLID4gemF0c3VqaVwgOwor5pS55L+uID4ga2Fpc2h1dVwgOwor6ZuM5LyPID4gc2hpZnVrdVwgOwor57WM5paHID4ga3lvdW1vblwgOwor57W25oGvID4gemVzc29rdVwgOwor6Zmj5a65ID4gamluJyd5b3VcIDsKK+ippuS9nCA+IHNoaXNha3VcIDsKK+mZuOWkpyA+IHJpa3VkYWlcIDsKK+ikpeeYoSA+IGpva3Vzb3VcIDsKK+eyl+etiyA+IGFyYXN1amlcIDsKK+eyvueZvSA+IHNlaWhha3VcIDsKK+ihjOmAsiA+IGtvdXNoaW5cIDsKK+mVt+efrSA+IGNob3V0YW5cIDsKK+aOo+iCmCA+IHNlaWNodXVcIDsKK+imquaWuSA+IG95YWthdGFcIDsKK+aUueS9nCA+IGthaXNha3VcIDsKK+ioreWWtiA+IHNldHN1ZWlcIDsKK+mbhuS8miA+IHNodXVrYWlcIDsKK+Wft+aoqSA+IHNoaWtrZW5cIDsKK+e1teW/gyA+IGVnb2tvcm9cIDsKK+aLnemgmCA+IGhhaXJ5b3VcIDsKK+e1tuW+jCA+IHpldHN1Z29cIDsKK+imquaUvyA+IHNoaW5zZWlcIDsKK+euoemgmCA+IGthbnJ5b3VcIDsKK+eymOeooCA+IG5lbmNodXVcIDsKK+aSruW9sSA+IHNhdHN1ZWlcIDsKK+WhqeWusyA+IHNoaW9nYWlcIDsKK+ijnOe2tCA+IGhvdGV0c3VcIDsKK+evpOi+siA+IHRva3Vub3VcIDsKK+aPrueZuiA+IGtpaGF0c3VcIDsKK+ios+WQjSA+IHlha3VtZWlcIDsKK+eDj+acqCA+IGtva3V0YW5cIDsKK+maiuWVhiA+IHRhaXNob3VcIDsKK+WghuacsSA+IHRzdWlzaHVcIDsKK+mZuOWcsCA+IHJpa3VjaGlcIDsKK+Wig+WfnyA+IGt5b3Vpa2lcIDsKK+aMh+mHnSA+IHNoaXNoaW5cIDsKK+WbnuiqrSA+IGthaWRva3VcIDsKK+eFp+WQiCA+IHNob3Vnb3VcIDsKK+iovOWIuCA+IHNob3VrZW5cIDsKK+ipleS8nSA+IGh5b3VkZW5cIDsKK+eBuOeCuSA+IGt5dXV0ZW5cIDsKK+Wei+eVqiA+IGthdGFiYW5cIDsKK+eEvOWjsiA+IHNodXVtYWlcIDsKK+WbnuiouiA+IGthaXNoaW5cIDsKK+ikh+ecvCA+IGZ1a3VnYW5cIDsKK+iplOS7pCA+IHNob3VyZWlcIDsKK+Wig+WcsCA+IGt5b3VjaGlcIDsKK+e3qOS/riA+IGhlbnNodXVcIDsKK+e1seW5lSA+IHRvdWJha3VcIDsKK+eBq+eHtSA+IGtvdGF0c3VcIDsKK+aSreW3niA+IGJhbnNodXVcIDsKK+eEoeWuvyA+IG11c2h1a3VcIDsKK+inkuW4vSA+IGtha3Vib3VcIDsKK+eBq+eGsSA+IGthbmV0c3VcIDsKK+mVt+eUtyA+IGNob3VuYW5cIDsKK+imquaMhyA+IG95YXl1YmlcIDsKK+inkuW4ryA+IGtha3VvYmlcIDsKK+eEoeWunyA+IG11aml0c3VcIDsKK+mVt+eUnyA+IGNob3VzZWlcIDsKK+e0ouadoSA+IHNha3Vqb3VcIDsKK+ihqOinoyA+IGh5b3VrYWlcIDsKK+e3j+WJhyA+IHNvdXNva3VcIDsKK+Wbm+inkiA+IHNoaWtha3VcIDsKK+e0i+anmCA+IG1vbicneW91XCA7Civlopflj44gPiB6b3VzaHV1XCA7CivooYzos54gPiBrb3VzaG91XCA7CivnrqHplbcgPiBrYW5jaG91XCA7Civntr7lj5YgPiBheWF0b3JpXCA7CivntprloLEgPiB6b2t1aG91XCA7CivmjqLntKIgPiB0YW5zYWt1XCA7CivooYDot68gPiBrZXRzdXJvXCA7CivloLHlvrMgPiBob3V0b2t1XCA7Civmkanmk6YgPiBtYXNhdHN1XCA7CivloLHlvqkgPiBob3VmdWt1XCA7Civmj5DnnaMgPiB0ZWl0b2t1XCA7CivopovmlpkgPiBrZW5yeW91XCA7Civooajoo4UgPiBoeW91c291XCA7CivntYLmiKYgPiBzaHV1c2VuXCA7Civlm73okawgPiBrb2t1c291XCA7Civopb/mmqYgPiBzZWlyZWtpXCA7CivnsaDntaEgPiByb3VyYWt1XCA7Civnspfnmq4gPiBhcmFrYXdhXCA7Civngq3mn7EgPiB0YW5jaHV1XCA7CivloKrlv40gPiBrYW4nJ25pblwgOwor6Kaq5oSbID4gc2hpbicnYWlcIDsKK+ihk+iqniA+IGp1dHN1Z29cIDsKK+ims+W/tSA+IGthbicnbmVuXCA7CivntJTmnLQgPiBqdW5ib2t1XCA7CivoqJPlkYogPiBrdW5rb2t1XCA7Civopb/ml6UgPiBuaXNoaWJpXCA7CivopbLmnaUgPiBzaHV1cmFpXCA7CivnsbPnqYAgPiBiZWlrb2t1XCA7Civnr4Dov6sgPiBzZXBwYWt1XCA7Civln7fmlL8gPiBzaGlzc2VpXCA7Civmk4Hlo4EgPiB5b3VoZWtpXCA7CivoqK3lgpkgPiBzZXRzdWJpXCA7CivooYDosYYgPiBjaGltYW1lXCA7CivoqLzkurogPiBzaG91bmluXCA7CivlnKfnuK4gPiBhc3NodWt1XCA7Civmjoznt6ggPiBzaG91aGVuXCA7Civnt5LkvZwgPiBzaG9zYWt1XCA7CivloYHlr6kgPiBydWlzaGluXCA7CivlorPkuJggPiBmdW5reXV1XCA7CivnspfnlaUgPiBzb3J5YWt1XCA7CivntJrmlbAgPiBreXV1c3V1XCA7CivntIvmnI0gPiBtb25wdWt1XCA7Civoo5Xnpo8gPiB5dXVmdWt1XCA7CivmjpvnrpcgPiBrYWtlemFuXCA7CivooYboq5YgPiBzaHV1cm9uXCA7Civlm57omasgPiBrYWljaHV1XCA7Civmjqjnp7AgPiBzdWlzaG91XCA7CivntbXlp78gPiBlc3VnYXRhXCA7CivopoHmkoMgPiB5b3VnZWtpXCA7CivlnLDnsY0gPiBjaGlzZWtpXCA7CivmjqLnqbYgPiB0YW5reXV1XCA7CivmjozntIsgPiBzaG91bW9uXCA7CivnspLnlYwgPiByeXV1a2FpXCA7CivmjafohbkgPiBob3VmdWt1XCA7CivmkI3mtYEgPiBzb25yeXV1XCA7CivmvIbpo58gPiBzaGlra3VpXCA7CivnhafkvJogPiBzaG91a2FpXCA7CivmjJnoqLwgPiBreW9zaG91XCA7Civngrnmj48gPiB0ZW5ieW91XCA7CivlnKjnsY0gPiB6YWlzZWtpXCA7Civmi5PpioAgPiB0YWt1Z2luXCA7Civntbblo4EgPiB6ZXBwZWtpXCA7CivpmpTkuJYgPiBrYWt1c2VpXCA7CivpmbjlhbUgPiByaWt1aGVpXCA7CivntrHlhbcgPiB0c3VuYWd1XCA7CivnspfnjokgPiBhcmF0YW1hXCA7CivntrLlhYMgPiBhbWltb3RvXCA7CivoqIDlj4ogPiBnZW5reXV1XCA7Civns7jmnqAgPiBpdG93YWt1XCA7CivpmaTljbQgPiBqb2t5YWt1XCA7CivmvKvpjLIgPiBtYW5yb2t1XCA7Civpmo/kuIAgPiB6dWlpY2hpXCA7Civns7jmnYkgPiBpdG9zdWdpXCA7CivngbDmrrsgPiBoYWlnYXJhXCA7CivoqKrkuK0gPiBob3VjaHV1XCA7CivmkYLmlL8gPiBzZXNzaG91XCA7CivloanlkbMgPiBzaGlvYWppXCA7CivlnLDnqY0gPiBjaGlzZWtpXCA7CivntZDlsL4gPiBrZXRzdWJpXCA7CivntITmlbAgPiB5YWt1c3V1XCA7CivpmLLlo4EgPiBib3VoZWtpXCA7Civns77mmI4gPiBreXV1bWVpXCA7CivloYHlo4EgPiBydWloZWtpXCA7CivntZDlr6kgPiBrZXNzaGluXCA7CivntLDlv4MgPiBzYWlzaGluXCA7CivmjqHnn7MgPiBzYWlzZWtpXCA7CivloIXlv40gPiBrZW4nJ25pblwgOwor57KS54q2ID4gcnl1dWpvdVwgOwor5ouZ6YCfID4gc2Vzc29rdVwgOwor5r2u6KejID4gY2hvdWthaVwgOwor5pKu5ZyfID4gc2F0c3Vkb1wgOwor5ry46YCyID4gemVuc2hpblwgOwor6Kaq5bGVID4gc2hpbnRlblwgOwor6KaP5b6LID4ga2lyaXRzdVwgOwor5oyB6KqsID4gamlzZXRzdVwgOwor6KaW5bqKID4gc2hpc2hvdVwgOwor6KeS5ZywID4ga2Fkb2NoaVwgOwor57WM5a2mID4ga2VpZ2FrdVwgOwor57KL54uCID4gc3Vpa3lvdVwgOwor6KOP55m9ID4gdXJhamlyb1wgOwor5aG15YWlID4gZ29taWlyZVwgOwor5aCx5aWoID4gaG91c2hvdVwgOwor57Sw5bivID4gaG9zb29iaVwgOwor6Kaq5a2QID4gc2hpbnNoaVwgOwor54Sh5Y+jID4gbXVrdWNoaVwgOwor5Z+35b+1ID4gc2h1dW5lblwgOwor6Zm45LiKID4gcmlrdWpvdVwgOwor5ryr6YGKID4gbWFuJyd5dXVcIDsKK+e1tuWUsSA+IHplc3Nob3VcIDsKK+WbnuiFuCA+IGthaWNob3VcIDsKK+mVt+axnyA+IGNob3Vrb3VcIDsKK+WcsOebriA+IGNoaW1va3VcIDsKK+aLjei7iiA+IGhha3VzaGFcIDsKK+eEoeWKmyA+IG11cnlva3VcIDsKK+aKvemBuCA+IGNodXVzZW5cIDsKK+aNnOe0oiA+IHNvdXNha3VcIDsKK+mWi+alrSA+IGthaWd5b3VcIDsKK+e1tuWPqyA+IHpla2t5b3VcIDsKK+WbveeyiyA+IGtva3VzdWlcIDsKK+aOm+eVmSA+IGtlaXJ5dXVcIDsKK+imquWlvSA+IHNoaW5rb3VcIDsKK+mWiealrSA+IGhlaWd5b3VcIDsKK+WgseWbvSA+IGhvdWtva3VcIDsKK+exs+eLrCA+IGJlaWRva3VcIDsKK+aMr+iIniA+IGZ1cnVtYWlcIDsKK+eutOiogCA+IHNoaW5nZW5cIDsKK+e1guWniyA+IHNodXVzaGlcIDsKK+mVt+atjiA+IGNob3V0YW5cIDsKK+mVt+atjCA+IG5hZ2F1dGFcIDsKK+aMr+iIiCA+IHNoaW5rb3VcIDsKK+imluWtpiA+IHNoaWdha3VcIDsKK+mZnuS7uyA+IHNob3VuaW5cIDsKK+e0meW5hSA+IHNoaWZ1a3VcIDsKK+e0meW4syA+IHNoaWNob3VcIDsKK+e1jOWggiA+IGt5b3Vkb3VcIDsKK+mZo+S4rSA+IGppbmNodXVcIDsKK+e0jeW+lyA+IG5hdHRva3VcIDsKK+e1tuWLnSA+IHplc3Nob3VcIDsKK+eymOa2siA+IG5lbicnZWtpXCA7CivlnJ/nnYAgPiBkb2NoYWt1XCA7Civlm73nrYkgPiBrb2t1dG91XCA7CivloILlroggPiBkb3Vtb3JpXCA7Civmi53orIEgPiBoYWlldHN1XCA7CivmkqTlj44gPiB0ZXNzaHV1XCA7CivnsaDnkIMgPiByb3VreXV1XCA7Civnga/mmI4gPiB0b3VteW91XCA7Civmi53oqq0gPiBoYWlkb2t1XCA7Civon7bosp0gPiBtYXRlZ2FpXCA7CivnrYnplpEgPiBuYW96YXJpXCA7Civmi5voq4sgPiBzaG91c2VpXCA7Civpj6TpqqggPiBydWtvdHN1XCA7CivopovlraYgPiBrZW5nYWt1XCA7CivmipXpjKggPiB0b3VieW91XCA7CivntYzlm70gPiBrZWlrb2t1XCA7CivlnKjnlZkgPiB6YWlyeXV1XCA7CivmkI3mlpkgPiBzb25yeW91XCA7CivntJDluK8gPiBjaHV1dGFpXCA7Civpj6Hpq5ggPiBreW91a291XCA7CivlnK3nkqcgPiBrZWloZWtpXCA7Civmj4/ms5UgPiBieW91aG91XCA7Civoo73msLcgPiBzZWloeW91XCA7CivlnLDnkIMgPiBjaGlreXV1XCA7CivpkZHos54gPiBrYW5zaG91XCA7Civlm73nqI4gPiBrb2t1emVpXCA7Civmv6vnlKggPiByYW4nJ3lvdVwgOwor57SA5b6LID4ga2lyaXRzdVwgOwor6ZaA5p+xID4gbW9uY2h1dVwgOwor6ZmN5LyPID4ga291ZnVrdVwgOwor5aCx5ZGKID4gaG91a29rdVwgOwor57Sz5aOrID4gc2hpbnNoaVwgOwor57O+5by+ID4ga3l1dWRhblwgOwor6KGS6ICAID4gZ2VuJyd5b3VcIDsKK+WbsOeqriA+IGtvbmt5dXVcIDsKK+ihqOe0mSA+IGh5b3VzaGlcIDsKK+eDiOWlsyA+IHJldHN1am9cIDsKK+mYsuWFsSA+IGJvdWt5b3VcIDsKK+aSsOS/riA+IHNlbnNodXVcIDsKK+mXmOWwhiA+IHRvdXNob3VcIDsKK+imquWWhCA+IHNoaW56ZW5cIDsKK+a/q+eNsiA+IHJhbmtha3VcIDsKK+a8q+iqrSA+IG1hbmRva3VcIDsKK+mWouaJgCA+IHNla2lzaG9cIDsKK+eAn+a0kiA+IHNob3VzaGFcIDsKK+WfjuW7kyA+IGpvdWtha3VcIDsKK+ezuOW6lSA+IGl0b3pva29cIDsKK+a8q+iplSA+IG1hbnB5b3VcIDsKK+eBjOacqCA+IGthbmJva3VcIDsKK+imi+WigyA+IG1pc2FrYWlcIDsKK+e1jOWPsiA+IGt5b3VzaGlcIDsKK+aKmOi+vCA+IG9yaWtvbWlcIDsKK+WbnueroCA+IGthaXNob3VcIDsKK+aOiOeItSA+IGp1c2hha3VcIDsKK+etiemHjyA+IHRvdXJ5b3VcIDsKK+mPoemdoiA+IGt5b3VtZW5cIDsKK+e1jOWNlCA+IGtlaWt5b3VcIDsKK+WbuuedgCA+IGtvY2hha3VcIDsKK+aOqOa4rCA+IHN1aXNva3VcIDsKK+WbveebiiA+IGtva3Vla2lcIDsKK+a7sumAjyA+IHNoaW50b3VcIDsKK+ims+WKhyA+IGthbmdla2lcIDsKK+e0hOWumiA+IHlha3Vqb3VcIDsKK+WgseWEnyA+IGhvdXNob3VcIDsKK+ikh+acrCA+IGZ1a3Vob25cIDsKK+mVt+aWhyA+IGNob3VidW5cIDsKK+aSqeS5sSA+IHJ5b3VyYW5cIDsKK+aOoua4rCA+IHRhbnNva3VcIDsKK+aKlei6qyA+IHRvdXNoaW5cIDsKK+e1seS4gCA+IHRvdWl0c3VcIDsKK+mWi+aLkyA+IGthaXRha3VcIDsKK+mWouW/gyA+IGthbnNoaW5cIDsKK+ijnOauuiA+IGhvc2F0c3VcIDsKK+ezuOWxkSA+IGl0b2t1enVcIDsKK+aSg+WJoyA+IGdla2lrZW5cIDsKK+aJgemhjSA+IGhlbmdha3VcIDsKK+a8lOiqrCA+IGVuemV0c3VcIDsKK+WeguaVmSA+IHN1aWt5b3VcIDsKK+ikh+aYnyA+IGZ1a3VzZWlcIDsKK+etiemAnyA+IHRvdXNva3VcIDsKK+aJgOmgmCA+IHNob3J5b3VcIDsKK+eruemmrCA+IGNoaWt1YmFcIDsKK+ijnOasoCA+IGhva2V0c3VcIDsKK+WbveeUoyA+IGtva3VzYW5cIDsKK+ihgOe4gSA+IGtldHN1ZW5cIDsKK+ikh+aWuSA+IGZ1a3Vob3VcIDsKK+eyl+acqyA+IHNvbWF0c3VcIDsKK+ihk+etliA+IGp1c3Nha3VcIDsKK+ikh+aWhyA+IGZ1a3VidW5cIDsKK+a/gOeUmiA+IGdla2lqaW5cIDsKK+mOrumtgiA+IGNoaW5nb25cIDsKK+ikh+aVsCA+IGZ1a3VzdXVcIDsKK+eBr+W/gyA+IHRvdXNoaW5cIDsKK+aQjeW+lyA+IHNvbnRva3VcIDsKK+WgleWKmyA+IGRhcnlva3VcIDsKK+e1guWIiiA+IHNodXVrYW5cIDsKK+aOouaxgiA+IHRhbmt5dXVcIDsKK+imquWFgyA+IG95YW1vdG9cIDsKK+aIkOmzpSA+IHNlaWNob3VcIDsKK+mPoemRkSA+IGt5b3VrYW5cIDsKK+ihgOeziiA+IGNoaW5vcmlcIDsKK+etiei6qyA+IHRvdXNoaW5cIDsKK+a8uOiQvSA+IHplbnJha3VcIDsKK+eyl+aWuSA+IGFyYWthdGFcIDsKK+ezuOWnqyA+IGl0b2hpbWVcIDsKK+evgOe+qSA+IHNldHN1Z2lcIDsKK+ethui5nyA+IGhpc3Nla2lcIDsKK+mVt+aJgCA+IGNob3VzaG9cIDsKK+ethui3oSA+IGhpc3Nla2lcIDsKK+a9rue0hSA+IGNob3Vrb3VcIDsKK+aJgOmVtyA+IHNob2Nob3VcIDsKK+e1guWApCA+IG93YXJpbmVcIDsKK+e0sOWJhyA+IHNhaXNva3VcIDsKK+ihgOetiyA+IGNoaXN1amlcIDsKK+a9heiFuCA+IGthbmNob3VcIDsKK+WfjuWjgSA+IGpvdWhla2lcIDsKK+WcsOauuyA+IGNoaWtha3VcIDsKK+aRmOWPliA+IHRla2lzaHVcIDsKK+aLm+iHtCA+IHNob3VjaGlcIDsKK+etluisgCA+IHNha3Vib3VcIDsKK+imquS6pCA+IHNoaW5rb3VcIDsKK+eyvuW8tyA+IHNlaWt5b3VcIDsKK+aKmOinkiA+IHNla2tha3VcIDsKK+iejemAmiA+IHl1dWR6dXVcIDsKK+mWi+W5lSA+IGthaW1ha3VcIDsKK+WWq+mpmiA+IGJpa2t1cmlcIDsKK+mWi+W4syA+IGthaWNob3VcIDsKK+ewh+eUnyA+IHpva3VzZWlcIDsKK+WdkeacqCA+IGtvdWJva3VcIDsKK+e0muWPiyA+IGt5dXV5dXVcIDsKK+mWieW5lSA+IGhlaW1ha3VcIDsKK+mOlumqqCA+IHNha290c3VcIDsKK+a6gOmhjSA+IG1hbmdha3VcIDsKK+ihl+edgCA+IG1hY2hpZ2lcIDsKK+aMr+ebqiA+IHNoaW50b3VcIDsKK+ilv+WMlyA+IHNlaWhva3VcIDsKK+imhuWIuyA+IGZ1a2tva3VcIDsKK+Wcp+auuiA+IGFzc2F0c3VcIDsKK+mOrumdmSA+IGNoaW5zZWlcIDsKK+ifi+ifgCA+IGtvb3JvZ2lcIDsKK+a/oOa0siA+IGdvdXNodXVcIDsKK+aLneiBtCA+IGhhaWNob3VcIDsKK+aJjemHjyA+IHNhaXJ5b3VcIDsKK+a/geeCuSA+IGRha3V0ZW5cIDsKK+e1guS4liA+IHNodXVzZWlcIDsKK+igj+e8tiA+IGthbmlrYW5cIDsKK+ernOmhlCA+IHJ5b3VnYW5cIDsKK+mVt+W+hCA+IGNob3VrZWlcIDsKK+mVt+W+gSA+IGNob3VzZWlcIDsKK+Wft+WIgCA+IHNoaXR0b3VcIDsKK+aKmOihtyA+IHNldGNodXVcIDsKK+ilsuWQjSA+IHNodXVtZWlcIDsKK+aLm+iBmCA+IHNob3VoZWlcIDsKK+aKmOihnSA+IHNlc3Nob3VcIDsKK+e0ueS7iyA+IHNob3VrYWlcIDsKK+e0heWUhyA+IGtvdXNoaW5cIDsKK+ihqOePviA+IGh5b3VnZW5cIDsKK+Wbm+eQgyA+IHNoaWt5dXVcIDsKK+WeguW/gyA+IHN1aXNoaW5cIDsKK+aOqOacjSA+IHN1aWZ1a3VcIDsKK+ihhuefpSA+IHNodXVjaGlcIDsKK+mWkeWvgiA+IGthbmpha3VcIDsKK+ezvuWVjyA+IGt5dXVtb25cIDsKK+ijj+abuCA+IHVyYWdha2lcIDsKK+ethuiqhSA+IGhpdGNodXVcIDsKK+aJv+iqjSA+IHNob3VuaW5cIDsKK+mVt+W5vCA+IGNob3V5b3VcIDsKK+mVt+W5tCA+IG5hZ2FuZW5cIDsKK+mWo+WkliA+IGtha3VnYWlcIDsKK+imgeWEnyA+IHlvdXNob3VcIDsKK+etieinkiA+IHRvdWtha3VcIDsKK+WYhuizniA+IHRhbnNob3VcIDsKK+etieimqiA+IHRvdXNoaW5cIDsKK+aQvuWPliA+IHNha3VzaHVcIDsKK+WgheS6uiA+IGthdGFqaW5cIDsKK+ijheadnyA+IHNvdXpva3VcIDsKK+Wcn+apiyA+IGRvYmFzaGlcIDsKK+WcsOaguCA+IGNoaWtha3VcIDsKK+aJi+i/kSA+IHRlZGppa2FcIDsKK+ijj+aWuSA+IHVyYWthdGFcIDsKK+ezvuWQiCA+IGt5dXVnb3VcIDsKK+ifuee8tiA+IGthbmlrYW5cIDsKK+a/gOa4myA+IGdla2lnZW5cIDsKK+eyl+W/vSA+IHNva290c3VcIDsKK+e0jeWFpSA+IG5vdW55dXVcIDsKK+aKgOihkyA+IGdpanV0c3VcIDsKK+aKleiWrCA+IHRvdXlha3VcIDsKK+a/gOa1qiA+IGdla2lyb3VcIDsKK+e0hOWIhiA+IHlha3VidW5cIDsKK+WbveazlSA+IGtva3Vob3VcIDsKK+aJi+i5nyA+IHNodXNla2lcIDsKK+aIkOmVtyA+IHNlaWNob3VcIDsKK+eykuW+hCA+IHJ5dXVrZWlcIDsKK+mVt+WumCA+IGNob3VrYW5cIDsKK+aJi+i3oSA+IHNodXNla2lcIDsKK+mVt+WtkCA+IGNob3VzaGlcIDsKK+WbveawkSA+IGtva3VtaW5cIDsKK+eyvuWmmSA+IHNlaW15b3VcIDsKK+a/geawtCA+IGRha3VzdWlcIDsKK+ibn+m+jSA+IGtvdXJ5b3VcIDsKK+aOkuaWpSA+IGhhaXNla2lcIDsKK+mWieWhniA+IGhlaXNva3VcIDsKK+ihjOeKtiA+IGd5b3Vqb3VcIDsKK+idtuiynSA+IGNob3VnYWlcIDsKK+iln+WFgyA+IGVyaW1vdG9cIDsKK+ihgOeQgyA+IGtla2t5dXVcIDsKK+aLmeetliA+IHNlc3Nha3VcIDsKK+aHuOmalCA+IGtlbmtha3VcIDsKK+ijj+aKgCA+IHVyYXdhemFcIDsKK+WcqOaWuSA+IHphaWthdGFcIDsKK+eruei8qiA+IGNoaWt1d2FcIDsKK+aOkuaSgyA+IGhhaWdla2lcIDsKK+evgOebriA+IGZ1c2hpbWVcIDsKK+aOoeaKniA+IHNhaXRha3VcIDsKK+aNleauuiA+IGhvc2F0c3VcIDsKK+mWi+WbvSA+IGthaWtva3VcIDsKK+ien+iZqyA+IG1laWNodXVcIDsKK+eBveWOhCA+IHNhaXlha3VcIDsKK+Wcn+aXpSA+IGRvbmljaGlcIDsKK+ikkuWlqCA+IGhvdXNob3VcIDsKK+mVt+WkpyA+IGNob3VkYWlcIDsKK+aIkOmKgCA+IG5hcmlnaW5cIDsKK+evhOeWhyA+IGhhbmNodXVcIDsKK+Wbnua1gSA+IGthaXJ5dXVcIDsKK+eyl+WvhiA+IHNvbWl0c3VcIDsKK+aOjOaPoSA+IHNob3Vha3VcIDsKK+aIkOmHkSA+IG5hcmlraW5cIDsKK+a9lOeZvSA+IGtlcHBha3VcIDsKK+a9lOeZliA+IGtlcHBla2lcIDsKK+a8ouexjSA+IGthbnNla2lcIDsKK+Wcp+aOpSA+IGFzc2V0c3VcIDsKK+aKveexpCA+IGNodXVzZW5cIDsKK+ertui1sCA+IGt5b3Vzb3VcIDsKK+eykuWtkCA+IHJ5dXVzaGlcIDsKK+aJjeimmiA+IHNhaWtha3VcIDsKK+eBq+WPoyA+IGhpZ3VjaGlcIDsKK+aJgOisgiA+IGl3YXl1cnVcIDsKK+eskeimpyA+IHNob3VyYW5cIDsKK+mWk+WPoyA+IG1hZ3VjaGlcIDsKK+aQj+WLlSA+IGhha3Vkb3VcIDsKK+aIpui3oSA+IHNlbnNla2lcIDsKK+mWo+WGhSA+IGtha3VuYWlcIDsKK+a6gOi6qyA+IG1hbnNoaW5cIDsKK+WbveacrCA+IGtva3Vob25cIDsKK+ijj+W6rSA+IHVyYW5pd2FcIDsKK+ijj+W6lyA+IHVyYWRhbmFcIDsKK+WbveaciSA+IGtva3V5dXVcIDsKK+WbveabuCA+IGtva3VzaG9cIDsKK+eBq+WKmyA+IGthcnlva3VcIDsKK+mVt+WYhiA+IGNob3V0YW5cIDsKK+ernOi7iiA+IHJ5dXVzaGFcIDsKK+aIkei8qSA+IHdhZ2FoYWlcIDsKK+a6gOi2syA+IG1hbnpva3VcIDsKK+ihgOa9riA+IGNoaXNoaW9cIDsKK+a8hue1tSA+IHVydXNoaWVcIDsKK+eyl+WjgSA+IGFyYWthYmVcIDsKK+ihgOa8vyA+IGtlc3Nob3VcIDsKK+m9t+m9qiA+IGFrdXNla3VcIDsKK+a/gOaakSA+IGdla2lzaG9cIDsKK+WVhumtgiA+IHNob3Vrb25cIDsKK+WcsOW/gyA+IGNoaXNoaW5cIDsKK+epuummrCA+IGthcmF1bWFcIDsKK+mVt+WUhCA+IG5hZ2F1dGFcIDsKK+aQjeWCtyA+IHNvbnNob3VcIDsKK+eul+ebpCA+IHNvcm9iYW5cIDsKK+WbveaWhyA+IGtva3VidW5cIDsKK+mWi+WJiiA+IGthaXNha3VcIDsKK+aJgOihjCA+IHNob2d5b3VcIDsKK+WbveaVmSA+IGtva2t5b3VcIDsKK+mVt+WRvSA+IGNob3VtZWlcIDsKK+WbveaUvyA+IGtva3VzZWlcIDsKK+a6ouihgCA+IGlra2V0c3VcIDsKK+exs+WvqSA+IGJlaXNoaW5cIDsKK+WdqeWgnSA+IHJ1dHN1Ym9cIDsKK+evgOeFmSA+IHNldHN1ZW5cIDsKK+Wbo+aglyA+IGRvbmd1cmlcIDsKK+a4m+mhjSA+IGdlbmdha3VcIDsKK+Wbs+aYnyA+IHp1Ym9zaGlcIDsKK+ijj+WxsSA+IHVyYXlhbWFcIDsKK+aKmOe0mSA+IG9yaWdhbWlcIDsKK+aLmOeVmSA+IGtvdXJ5dXVcIDsKK+ihjOawtCA+IGd5b3V6dWlcIDsKK+eyieWjgSA+IGZ1bnBla2lcIDsKK+eri+i6qyA+IHJpc3NoaW5cIDsKK+aOpeWwviA+IHNldHN1YmlcIDsKK+erueijvSA+IHRha2VzZWlcIDsKK+WVhumkqCA+IHNob3VrYW5cIDsKK+eul+eUqCA+IHNhbicneW91XCA7CivooYDmsoggPiBrZXRjaGluXCA7CivplpPkvZwgPiBrYW5zYWt1XCA7CivmiYvolJMgPiB0ZWR6dXJ1XCA7CivopIflkIggPiBmdWt1Z291XCA7CivplbfliaMgPiBjaG91a2VuXCA7Civngavku5ggPiBoaXRzdWtlXCA7CivllJDpu40gPiB0b3VraWJpXCA7CivlnLDls6EgPiBjaGlreW91XCA7Civnr4nmuK8gPiBjaGlra291XCA7Civmj5DllLEgPiB0ZWlzaG91XCA7CivnqbrpmpkgPiBrdXVnZWtpXCA7CivmipznqbQgPiBudWtlYW5hXCA7CivplpHkurogPiBoaW1hamluXCA7CivnqbrpmbggPiBrdXVyaWt1XCA7CivonZnonaAgPiBoZW5wdWt1XCA7CivmioTntJkgPiBzaG91c2hpXCA7Civlm57mmKUgPiBrYWlzaHVuXCA7CivplpPkuK0gPiBhaWRhanV1XCA7Civmib/ntpkgPiBzaG91a2VpXCA7CivnrYnntJogPiB0b3VreXV1XCA7CivmjpLlsL8gPiBoYWlueW91XCA7CivmjbflvoQgPiBzaG91a2VpXCA7Civlm73miYsgPiBrb2t1c2h1XCA7CivmjqjlpaggPiBzdWlzaG91XCA7CivooYzmpb0gPiBrb3VyYWt1XCA7CivplbflhYQgPiBjaG91a2VpXCA7CivooajmmI4gPiBoeW91bWVpXCA7Civmv4DmiKYgPiBnZWtpc2VuXCA7Civlm57mlZkgPiBrYWlreW91XCA7CivlnLDlraYgPiBjaGlnYWt1XCA7CivmvIHnpIEgPiBneW9zaG91XCA7CivooajmlawgPiBoeW91a2VpXCA7CivmhoLprLEgPiB5dXV1dHN1XCA7Civmh7jos54gPiBrZW5zaG91XCA7Civmv4DmhqQgPiBnZWtpZnVuXCA7Civnqb/pkb8gPiBzZW5zYWt1XCA7CivmvaTmsqIgPiBqdW50YWt1XCA7CivmjK/mm78gPiBmdXJpa2FlXCA7Civnr6bmo5IgPiBiZXJhYm91XCA7CivopIflhpkgPiBmdWt1c2hhXCA7CivmipXnpaggPiB0b3VoeW91XCA7Civlm73mg4UgPiBrb2t1am91XCA7CivlnKjlroUgPiB6YWl0YWt1XCA7CivlnKjlraYgPiB6YWlnYWt1XCA7Civmh5Dpg7cgPiBrYWlreW91XCA7Civmv4Dmg4UgPiBnZWtpam91XCA7Civnsr7kuIAgPiBzZWlpdHN1XCA7CivlmajniakgPiBraWJ1dHN1XCA7CivnsbPlm70gPiBiZWlrb2t1XCA7Civnq4voqLwgPiByaXNzaG91XCA7Civmjpvlo7AgPiBrYWtlZ29lXCA7CivooYzmnKsgPiB5dWt1c3VlXCA7CivooYzmm7ggPiBneW91c2hvXCA7CivmuL7ouqsgPiBrb25zaGluXCA7CivmiYHoiJ8gPiBoZW5zaHV1XCA7CivmipXnn7MgPiB0b3VzZWtpXCA7CivmjIfmqJkgPiBzaGloeW91XCA7Civlm7Dmg5EgPiBrb253YWt1XCA7CivmjJ/mm7ggPiBreW91c2hvXCA7Civmj4/lhpkgPiBieW91c2hhXCA7CivooYbmnJsgPiBzaHV1Ym91XCA7CivplbfkuIogPiBjaG91am91XCA7Civoobfmg4UgPiBjaHV1am91XCA7CivmuJvph48gPiBnZW5yeW91XCA7CivmvoTmmI4gPiBjaG91bWVpXCA7CivooYbmmbogPiBzaHV1Y2hpXCA7CivlmInnr4AgPiBrYXNldHN1XCA7CivooYzmlbAgPiBneW91c3V1XCA7Civlm7PlvI8gPiB6dXNoaWtpXCA7CivooYzmlL8gPiBneW91c2VpXCA7CivmiJDomasgPiBzZWljaHV1XCA7CivmvL/mtrIgPiBzaG91ZWtpXCA7CivlnLDlnaogPiBqaXRzdWJvXCA7CivnqYDpoZ4gPiBrb2t1cnVpXCA7CivmvKDnhLYgPiBiYWt1emVuXCA7Civnq7boiYcgPiBreW91dGVpXCA7Civoo73kvZwgPiBzZWlzYWt1XCA7CivnqoHpgLIgPiB0b3NzaGluXCA7Civmj5DkvpsgPiB0ZWlreW91XCA7Civmt7HplpEgPiBzaGlua2FuXCA7CivnsbPlj44gPiBiZWlzaHV1XCA7Civnqb/pgJogPiBzZW50c3V1XCA7CivmuJvpgJ8gPiBnZW5zb2t1XCA7Civooajmg4UgPiBoeW91am91XCA7CivnrKbnr4AgPiBmdXNldHN1XCA7CivlmbTmtYEgPiBmdW5yeXV1XCA7Civmib/nn6UgPiBzaG91Y2hpXCA7CivnqK7ppqwgPiB0YW5ldW1hXCA7Civmt6Hpm6ogPiBhd2F5dWtpXCA7CivllZPov6ogPiBrZWl0ZWtpXCA7CivmjqXlj5cgPiBzZXRzdWp1XCA7CivmjKjmi7YgPiBhaXNhdHN1XCA7CivmjKvmipggPiB6YXNldHN1XCA7CivmjqXlj44gPiBzZXNzaHV1XCA7CivmiYvntrEgPiB0YWR6dW5hXCA7CivoobDlvLEgPiBzdWlqYWt1XCA7Civlm57lv4MgPiBrYWlzaGluXCA7Civlm73lr74gPiBrb2t1dGFpXCA7CivmvIHnjbIgPiBneW9rYWt1XCA7Civlm57lvqkgPiBrYWlmdWt1XCA7CivnrZTnlLMgPiB0b3VzaGluXCA7CivmiYnntbUgPiB0b2JpcmFlXCA7Civlm73lrp0gPiBrb2t1aG91XCA7CivmvIHnjJ8gPiBneW9yeW91XCA7Civlm73lrpogPiBrb2t1dGVpXCA7Civlm73lroggPiBrb2t1c2h1XCA7CivnrJHntI0gPiBzaG91bm91XCA7CivmipXnkIMgPiB0b3VreXV1XCA7Civlm5rlvbkgPiBzaHV1ZWtpXCA7CivllIfpn7MgPiBzaGluJydvblwgOwor5o235aCxID4gc2hvdWhvdVwgOwor5o6i5YudID4gdGFuc2hvdVwgOwor5oqV542EID4gdG91Z29rdVwgOwor6KGM5oiQID4gaWtpbmFyaVwgOwor5ruR55+zID4ga2Fzc2VraVwgOwor5riF6YGpID4gc2VpdGVraVwgOwor5rqA6IW5ID4gbWFucHVrdVwgOwor6by76aqoID4gYmlrb3RzdVwgOwor5Zyw5Y+jID4gamlndWNoaVwgOwor5omL566SID4gdGVib3VraVwgOwor5ryC54S2ID4gaHlvdXplblwgOwor5ZSQ6ZaAID4ga2FyYW1vblwgOwor5ra86aKoID4gcnlvdWZ1dVwgOwor5rue55WZID4gdGFpcnl1dVwgOwor5oyH5pGYID4gc2hpdGVraVwgOwor5ra16aSKID4ga2FuJyd5b3VcIDsKK+aKuea2iCA+IG1hc3Nob3VcIDsKK+ernOiEsyA+IHJ5dXVub3VcIDsKK+WbveWkpyA+IGtva3VkYWlcIDsKK+exs+S/lyA+IGJlaXpva3VcIDsKK+WbveWkliA+IGtva3VnYWlcIDsKK+aOmOWJiiA+IGt1c3Nha3VcIDsKK+ihk+W+jCA+IGp1dHN1Z29cIDsKK+WbveWjqyA+IGtva3VzaGlcIDsKK+ijj+WBtCA+IHVyYWdhd2FcIDsKK+a/geWjsCA+IGRhbWlnb2VcIDsKK+exs+S9nCA+IGJlaXNha3VcIDsKK+a/gOWkiSA+IGdla2loZW5cIDsKK+WUsemBkyA+IHNob3Vkb3VcIDsKK+WVj+iyrCA+IG1vbnNla2lcIDsKK+aMkeaIpiA+IGNob3VzZW5cIDsKK+WbveWigyA+IGtva2t5b3VcIDsKK+ihqOWxpCA+IGh5b3Vzb3VcIDsKK+epuuiwtyA+IGt1dWtva3VcIDsKK+aIpue4viA+IHNlbnNla2lcIDsKK+a/gOWilyA+IGdla2l6b3VcIDsKK+aHh+imqiA+IGtvbnNoaW5cIDsKK+err+e2sSA+IGhhZHp1bmFcIDsKK+a3semBoCA+IHNoaW4nJ2VuXCA7CivmuJPosLcgPiBrZWlrb2t1XCA7Civnr6Tlv5cgPiB0b2t1c2hpXCA7Civoo4/kvZwgPiB1cmFzYWt1XCA7CivllpzoibIgPiBraXNob2t1XCA7Civoo4LlgrcgPiByZXNzaG91XCA7Civom67opZ8gPiBiYW5rYXJhXCA7CivnsbPkuK0gPiBiZWljaHV1XCA7Civnq4vohbkgPiByaXBwdWt1XCA7CivnqI7poY0gPiB6ZWlnYWt1XCA7Civmi5vmnaUgPiBzaG91cmFpXCA7Civnq7/nq7kgPiBzYW9kYWtlXCA7CivmvKvmpb0gPiBtYW5nYWt1XCA7Civmt6vpgLggPiBpbicnaXRzdVwgOwor5ouY5p2fID4ga291c29rdVwgOwor56m66Kq/ID4ga3V1Y2hvdVwgOwor56qB6KeSID4gdG9ra2FrdVwgOwor6Jmr6aGeID4gY2h1dXJ1aVwgOwor5o265Y2wID4gbmF0c3VpblwgOwor6KGG5bq2ID4gc2h1dXNob1wgOwor56u556u/ID4gdGFrZXphb1wgOwor5ZWP6Ki6ID4gbW9uc2hpblwgOwor5ouT5pysID4gdGFrdWhvblwgOwor5ryC5rWqID4gaHlvdXJvdVwgOwor5ouh5pWjID4ga2FrdXNhblwgOwor6Ju56JmrID4geW91Y2h1dVwgOwor6Yuz6Yu8ID4gY2h1dWtvdVwgOwor56mN6LyJID4gc2VraXNhaVwgOwor5rW36bOlID4ga2FpY2hvdVwgOwor5Zu95ZaqID4ga29rdXNvdVwgOwor5ZWG6KuHID4gc2hvdWRhblwgOwor56m66KWyID4ga3V1c2h1dVwgOwor5oiQ57i+ID4gc2Vpc2VraVwgOwor566G5qOSID4gYmVyYWJvdVwgOwor5Zyo5L+XID4gemFpem9rdVwgOwor5oux5omLID4ga3lvdXNodVwgOwor5ZaE6ImvID4gemVucnlvdVwgOwor6KGS5a2mID4gZ2VuZ2FrdVwgOwor6Yuz6YeRID4gY2h1dWtpblwgOwor56m66KGMID4ga3V1Z3lvdVwgOwor5Zyw5Li7ID4gamludXNoaVwgOwor5Zyw5LitID4gY2hpY2h1dVwgOwor5oiQ57SEID4gc2VpeWFrdVwgOwor5ZuD5a2QID4gaGF5YXNoaVwgOwor56eA6bqXID4gc2h1dXJlaVwgOwor5r+r5L2cID4gcmFuc2FrdVwgOwor6KGX5ai8ID4gZ2Fpc2hvdVwgOwor5Zu95ZCNID4ga29rdW1laVwgOwor5Zu95Y+4ID4ga29rdXNoaVwgOwor5Zu95Y+3ID4ga29rdWdvdVwgOwor5Zu95Y+yID4ga29rdXNoaVwgOwor6Yyv6KeSID4gc2Fra2FrdVwgOwor5Zyo5LqsID4gemFpa3lvdVwgOwor6KGd5aSpID4gc2hvdXRlblwgOwor566H5pyIID4ga2FnZXRzdVwgOwor5ZyP5YaFID4ga2VuJyduYWlcIDsKK+mMr+immiA+IHNha2tha3VcIDsKK+aLjeaVsCA+IGhha3VzdXVcIDsKK+a8ouacnSA+IGthbmNob3VcIDsKK+euoeaOjCA+IGthbnNob3VcIDsKK+WcqOS4rSA+IHphaWNodXVcIDsKK+a9nOW/gyA+IHNlbnNoaW5cIDsKK+WbnuWbvSA+IGthaWtva3VcIDsKK+a9m+W/gyA+IHNlbnNoaW5cIDsKK+ihqOWcqCA+IGh5b3V6YWlcIDsKK+a7tOawtCA+IHRla2lzdWlcIDsKK+aJk+eOhyA+IGRhcml0c3VcIDsKK+mLs+mAoCA+IGNodXV6b3VcIDsKK+WbveWLoiA+IGtva3VzZWlcIDsKK+Wbm+WbvSA+IHNoaWtva3VcIDsKK+WbveWKtCA+IGtva3Vyb3VcIDsKK+a3seisnSA+IHNoaW5zaGFcIDsKK+aLneaJvyA+IGhhaXNob3VcIDsKK+a3seisgCA+IHNoaW5ib3VcIDsKK+WaruWwjiA+IGt5b3Vkb3VcIDsKK+a/gOWLlSA+IGdla2lkb3VcIDsKK+eri+exsyA+IHJ5dXViZWlcIDsKK+eti+azqCA+IGtpbmNodXVcIDsKK+a/gOWKsSA+IGdla2lyZWlcIDsKK+aKkeatoiA+IHlva3VzaGlcIDsKK+a8ouaXjyA+IGthbnpva3VcIDsKK+a6gOelqCA+IG1hbnB5b3VcIDsKK+evgOW6piA+IHNldHN1ZG9cIDsKK+emvemzpSA+IGtpbmNob3VcIDsKK+aItOeZvSA+IHRhaWhha3VcIDsKK+aLmeaKgCA+IHNldHN1Z2lcIDsKK+a8gealrSA+IGd5b2d5b3VcIDsKK+a8lOabsiA+IGVua3lva3VcIDsKK+a2sumHjyA+IGVraXJ5b3VcIDsKK+ibh+igjSA+IGRha2F0c3VcIDsKK+WbveWGhSA+IGtva3VuYWlcIDsKK+m8jumdqSA+IHRlaWtha3VcIDsKK+iblOiZqyA+IGthaWNodXVcIDsKK+WbveWFuCA+IGtva3V0ZW5cIDsKK+idi+efsyA+IHJvdXNla2lcIDsKK+ernOelniA+IHJ5dXVqaW5cIDsKK+a2iOmYsiA+IHNob3Vib3VcIDsKK+a1gem6lyA+IHJ5dXVyZWlcIDsKK+err+eahCA+IHRhbnRla2lcIDsKK+a4qeiJsiA+IG9uc2hva3VcIDsKK+ibh+idjiA+IGRha2F0c3VcIDsKK+WbveWCtSA+IGtva3VzYWlcIDsKK+a6lueUqCA+IGp1bicneW91XCA7CivnqbTolLUgPiBhbmFndXJhXCA7Civmi43miYsgPiBoYWt1c2h1XCA7CivmtojplpEgPiBzaG91a2FuXCA7CivmiYvnh60gPiB0ZXNob2t1XCA7CivllqrnpZ4gPiBzb3VzaGluXCA7Civlm5vlkaggPiBzaGlzaHV1XCA7Civlm57lj44gPiBrYWlzaHV1XCA7CivnrrHluKsgPiBoYWtvc2hpXCA7Civooajlj7cgPiBoeW91Z291XCA7Civpu4TpursgPiB0c3VuYXNvXCA7CivomavphbggPiBtdXNoaXp1XCA7CivmuoDnm64gPiBtYW5tb2t1XCA7Civmi53lvqkgPiBoYWlmdWt1XCA7CivpkJjmpbwgPiBzaG91cm91XCA7Civnq4vnp4sgPiByaXNzaHV1XCA7Civnp4vpoqggPiBzaHV1ZnV1XCA7CivmirzmjbogPiBvdW5hdHN1XCA7Civlm73kvb8gPiBrb2t1c2hpXCA7Civmi5vlvoUgPiBzaG91dGFpXCA7CivmtabpoqggPiB1cmFrYXplXCA7CivnqbrojLYgPiBrYXJhY2hhXCA7Civlm73kvZMgPiBrb2t1dGFpXCA7Civnq5znnLwgPiByeXV1Z2FuXCA7CivmtbfpmbggPiBrYWlyaWt1XCA7CivnqIDph4ggPiBraXNoYWt1XCA7CivnqI7ovrwgPiB6ZWlrb21pXCA7Civpu5Lpr5sgPiBrdXJvZGFpXCA7CivnqbroibIgPiBzb3JhaXJvXCA7CivmjJnlm70gPiBreW9rb2t1XCA7Civlm73kuLsgPiBrb2t1c2h1XCA7CivoobDlhYYgPiBzdWljaG91XCA7Civlm73kuK0gPiBrdW5panV1XCA7Civnp4vpnJwgPiBzaHV1c291XCA7CivllonnrJsgPiBub2RvYnVlXCA7Civnp4vpnJYgPiBzaHV1cmluXCA7Civom67nv5IgPiBiYW5zaHV1XCA7Civpu4Tps6UgPiBrb3VjaG91XCA7CivooYzllZMgPiBneW91a2VpXCA7Civnp4vpm6ggPiBha2lzYW1lXCA7CivnqbrohbkgPiBrdXVmdWt1XCA7Civmu4vmrpYgPiBqaXNob2t1XCA7CivooZ3li5UgPiBzaG91ZG91XCA7CivmjL/lhaUgPiBzb3VueXV1XCA7Civlkozpo58gPiB3YXNob2t1XCA7Civmipzmk6IgPiBiYXR0ZWtpXCA7Civmuq/mupAgPiBzYWt1Z2VuXCA7Civmipvmk7IgPiBob3V0ZWtpXCA7CivllYboiLkgPiBzaG91c2VuXCA7CivpjbXnqbQgPiBrYWdpYW5hXCA7CivmjK/li5UgPiBzaGluZG91XCA7Civon7vlt7sgPiBhcmltYWtpXCA7CivmibbmpI0gPiBmdXNob2t1XCA7CivmioTmnKwgPiBzaG91aG9uXCA7CivmjIflnKcgPiBzaGlhdHN1XCA7CivmipXmk7IgPiB0b3V0ZWtpXCA7CivmjIflm7MgPiBzYXNoaXp1XCA7CivmurrmsLQgPiBkZWtpc3VpXCA7Civnr4nlnLAgPiB0c3VraWppXCA7Civpu5LpoqggPiBrb2t1ZnV1XCA7CivonYvnh60gPiByb3Vzb2t1XCA7CivmurrmrbsgPiBkZWtpc2hpXCA7Civmi5nlroUgPiBzZXR0YWt1XCA7CivmiYvmsqIgPiBzaHV0YWt1XCA7Civmg6PpoJggPiBzb3VyeW91XCA7CivnpoHps6UgPiBraW5jaG91XCA7CivmipHmj5ogPiB5b2t1eW91XCA7Civlm5rkurogPiBzaHV1amluXCA7CivmuIXogbQgPiBzZWljaG91XCA7CivnrIrms5UgPiB6YXJ1aG91XCA7Civmh4fnr6QgPiBrb250b2t1XCA7Civnq7bmvJUgPiBreW91c291XCA7Civmt7Poia8gPiBqdW5yeW91XCA7CivmuJvntaYgPiBnZW5reXV1XCA7Civpj5bmrrogPiBvdXNhdHN1XCA7CivllJDolq8gPiBrYXJhaW1vXCA7CivnqI7oqr8gPiB6ZWljaG91XCA7CivnrJHmraIgPiBzaG91c2hpXCA7CivomK3pi7MgPiByYW5jaHV1XCA7Civmi6HlpKcgPiBrYWt1ZGFpXCA7CivpioXpkLggPiBkb3V0YWt1XCA7Civmi43lrZAgPiBoeW91c2hpXCA7CivpioXpj6EgPiBkb3VreW91XCA7CivmtbjpgI8gPiBzaGludG91XCA7CivnrZbmiKYgPiBzYWt1c2VuXCA7CivmiJDnhp8gPiBzZWlqdWt1XCA7CivmupzmsaAgPiB0YW1laWtlXCA7Civmtabph4wgPiB1cmF6YXRvXCA7Civmua/nhqggPiB5dW5vc2hpXCA7CivllqvnhZkgPiBraXRzdWVuXCA7CivlmInml6UgPiBrYWppdHN1XCA7CivmuoDmva4gPiBtYW5jaG91XCA7Civnp7Dos5sgPiBzaG91c2FuXCA7CivlmoflmocgPiBrYWtrYWt1XCA7CivllYbntYwgPiBzaG91a2VpXCA7Civmi5PlpKcgPiB0YWt1ZGFpXCA7CivmupDmtYEgPiBnZW5yeXV1XCA7CivnqY7ohLEgPiBlaWRhdHN1XCA7CivnqoHnq68gPiB0b3BwYW5hXCA7CivooYzkvZMgPiBneW91dGFpXCA7CivmvKLlraYgPiBrYW5nYWt1XCA7Civpu4Tpm4AgPiBrb3VqYWt1XCA7CivlloDnl7AgPiBrYWt1dGFuXCA7CivpvLvooYAgPiBoYW5hZGppXCA7CivpjK/ntpwgPiBzYWt1c291XCA7Civmt7HogJUgPiBzaGlua291XCA7CivooZPkuK0gPiBqdXRjaHV1XCA7CivmtL7plqUgPiBoYWJhdHN1XCA7CivlloTnlKggPiB6ZW4nJ3lvdVwgOwor6Juf56ucID4ga291cnlvdVwgOwor5ryG5belID4gc2hpa2tvdVwgOwor5oay56ugID4ga2Vuc2hvdVwgOwor6bq76ZuAID4gbWF6ZWphblwgOwor5oim5rOBID4gc2Vua3lvdVwgOwor5ryB5birID4gcnlvdXNoaVwgOwor56+G5Yi7ID4gdGVua29rdVwgOwor6KGG5Lq6ID4gc2h1dWppblwgOwor5omA5qWtID4gc2hvZ3lvdVwgOwor56m256ufID4ga3Vra3lvdVwgOwor5Ziy5byEID4gY2hvdXJvdVwgOwor5oiv5q2MID4gemFyZXV0YVwgOwor6KCi5YuVID4gc2h1bmRvdVwgOwor5ZSQ6Ie8ID4ga2FyYXVzdVwgOwor5rqA5rSyID4gbWFuc2h1dVwgOwor5rm+5rWBID4gd2Fucnl1dVwgOwor5ZaE546JID4gemVuZGFtYVwgOwor56eB6YCaID4gc2hpdHN1dVwgOwor56iu6IuXID4gc2h1YnlvdVwgOwor5rW36LOKID4ga2Fpem9rdVwgOwor56iu6IqLID4gdGFuZWltb1wgOwor5rmu5ruFID4gaW5tZXRzdVwgOwor5oim5q20ID4gc2VucmVraVwgOwor5oyH5YCkID4gc2FzaGluZVwgOwor5rW36LG5ID4ga2FpaHlvdVwgOwor5rW36LGhID4gc2VpdWNoaVwgOwor56qu54q2ID4ga3l1dWpvdVwgOwor5oq85aOyID4gb3NoaXVyaVwgOwor5ZOB6KmVID4gaGlucHlvdVwgOwor5oOo6YW3ID4gemFua29rdVwgOwor5oKq6aOfID4gYWt1amlraVwgOwor6Juu55qEID4gYmFudGVraVwgOwor5rex57SFID4gc2hpbmtvdVwgOwor56We6auEID4gc2hpbnp1aVwgOwor6JiH6YmEID4gc290ZXRzdVwgOwor562J5by1ID4gdG91Y2hvdVwgOwor6J+E5bGFID4gY2hpa2t5b1wgOwor5oSa6KqsID4gZ3VzZXRzdVwgOwor5oe45r+BID4ga2VuZGFrdVwgOwor5ZWG56S+ID4gc2hvdXNoYVwgOwor6YqD6LqrID4ganV1c2hpblwgOwor5rqd5p2/ID4gZG9idWl0YVwgOwor5riF56eLID4gc2Vpc2h1dVwgOwor5oSf6KaaID4ga2Fua2FrdVwgOwor5riF56aPID4gc2VpZnVrdVwgOwor5rib55uKID4gZ2VuJydla2lcIDsKK+a4heelpSA+IHNlaXNob3VcIDsKK+WaouS4rSA+IG5vdWNodXVcIDsKK+elnumljCA+IHNoaW5zZW5cIDsKK+m+jeelniA+IHJ5dXVqaW5cIDsKK+enmOiooyA+IGhpa2V0c3VcIDsKK+epuueZvSA+IGt1dWhha3VcIDsKK+a9nOS8jyA+IHNlbnB1a3VcIDsKK+WYhuaBryA+IHRhbnNva3VcIDsKK+iZueiJsiA+IG5pamlpcm9cIDsKK+etluWumiA+IHNha3V0ZWlcIDsKK+a1gemAoyA+IHJ5dXVyZW5cIDsKK+a1ruiqrCA+IGZ1c2V0c3VcIDsKK+epjeeulyA+IHNla2lzYW5cIDsKK+aCqumYuyA+IHRzdXdhcmlcIDsKK+aGtueXhSA+IG9rdWJ5b3VcIDsKK+aFo+e/kiA+IGthbnNodXVcIDsKK+a3seeqkyA+IHNoaW5zb3VcIDsKK+aIr+absiA+IGdpa3lva3VcIDsKK+aJi+aOjCA+IHNodXNob3VcIDsKK+aCo+mboyA+IGthbicnbmFuXCA7Civmi6HlhYUgPiBrYWt1anV1XCA7CivnpZ7pn7sgPiBzaGluJydpblwgOwor56mA57KJID4ga29rdWZ1blwgOwor5ZOo6IiOID4gc2hvdXNoYVwgOwor566h5YaFID4ga2FuJyduYWlcIDsKK+mRv+S6lSA+IHNha3VzZWlcIDsKK+WUkOezuCA+IGthcmFpdG9cIDsKK+mJhOmOmiA+IHRldHRzdWlcIDsKK+epuueTtiA+IGthcmFiaW5cIDsKK+a6gOagqiA+IG1hbmthYnVcIDsKK+mLvOe0oiA+IGtvdXNha3VcIDsKK+aLjeWLlSA+IGhha3Vkb3VcIDsKK+aJi+aKhCA+IHNodXNob3VcIDsKK+enmOihkyA+IGhpanV0c3VcIDsKK+a7keW4rSA+IGthc3Nla2lcIDsKK+elnumciiA+IHNoaW5yZWlcIDsKK+aIkOalrSA+IHNlaWd5b3VcIDsKK+ibi+eZvSA+IHRhbnBha3VcIDsKK+WRqOmBiiA+IHNodXV5dXVcIDsKK+aCoOmVtyA+IHl1dWNob3VcIDsKK+WVhueUqCA+IHNob3V5b3VcIDsKK+a7heW6piA+IG1ldHN1ZG9cIDsKK+a6gOabtCA+IG1hbnphcmFcIDsKK+etluWjqyA+IHNha3VzaGlcIDsKK+WRqOi+uiA+IHNodXVoZW5cIDsKK+aIkOahgiA+IG5hcmlrZWlcIDsKK+a1t+ibhyA+IHVtaWhlYmlcIDsKK+a0u+i3ryA+IGthdHN1cm9cIDsKK+m7kuiygiA+IGt1cm90ZW5cIDsKK+mQmOWjsCA+IHNob3VzZWlcIDsKK+aLmeS9nCA+IHNlc3Nha3VcIDsKK+mKreiRtSA+IHplbmlhb2lcIDsKK+a8huWWsCA+IHNoaWtrdWlcIDsKK+azoumfsyA+IG5hbWlvdG9cIDsKK+eonOe3miA+IHJ5b3VzZW5cIDsKK+eqruawkSA+IGt5dXVtaW5cIDsKK+aJjeW+syA+IHNhaXRva3VcIDsKK+eri+ahiCA+IHJpdHN1YW5cIDsKK+m7meiqjSA+IG1va3VuaW5cIDsKK+aFtuemjyA+IGtlaWZ1a3VcIDsKK+WRteiyrCA+IGthc2hha3VcIDsKK+epuueIhiA+IGt1dWJha3VcIDsKK+WQg+mpmiA+IGJpa2t1cmlcIDsKK+idv+W4syA+IGhhaWNob3VcIDsKK+eqruatuyA+IGt5dXVzaGlcIDsKK+WQhOmnhSA+IGtha3Vla2lcIDsKK+WVhueKtiA+IHNob3Vqb3VcIDsKK+eni+ialSA+IHNodXVzYW5cIDsKK+aKvOWFpSA+IG9zaGlpcmVcIDsKK+a3t+eUqCA+IGtvbicneW91XCA7CivmuKbmva4gPiB1enVzaGlvXCA7Civpu5noppYgPiBtb2t1c2hpXCA7CivomK3omasgPiByYW5jaHV1XCA7Civph6PprZogPiBjaG91Z3lvXCA7CivmiJHmlrkgPiB3YWdhaG91XCA7CivlkIzpoY0gPiBkb3VnYWt1XCA7CivnqbTnhoogPiBhbmFndW1hXCA7CivmtYHoqqwgPiBydXNldHN1XCA7CivmiYDlvpcgPiBzaG90b2t1XCA7Civmupzmga8gPiB0YW1laWtpXCA7Civmt7HnlJogPiBzaGluamluXCA7Civmga3poIYgPiBreW91anVuXCA7CivmvI/liLsgPiByb3Vrb2t1XCA7CivolqnplbcgPiBzYXRjaG91XCA7CivmtYHoqIAgPiByeXV1Z2VuXCA7Civmi4Xku7sgPiB0YW4nJ25pblwgOwor5oSf6IiIID4ga2Fua3lvdVwgOwor5reh55m9ID4gdGFucGFrdVwgOwor56uL5pilID4gcmlzc2h1blwgOwor56qv5qWtID4geW91Z3lvdVwgOwor5oqc5Y67ID4gYmFra3lvdVwgOwor5oqX5ZGKID4ga291a29rdVwgOwor5rip5rW0ID4gb24nJ3lva3VcIDsKK+emgei2syA+IGtpbnNva3VcIDsKK+a6luaApSA+IGp1bmt5dXVcIDsKK+WQg+mfsyA+IGtpdHN1b25cIDsKK+mJhOi3ryA+IHRldHN1cm9cIDsKK+ekvumVtyA+IHNoYWNob3VcIDsKK+epuua8oCA+IGt1dWJha3VcIDsKK+WQhOmdoiA+IGtha3VtZW5cIDsKK+m7kuihgCA+IGt1cm9jaGlcIDsKK+a2iOiAlyA+IHNob3Vtb3VcIDsKK+ero+aIkCA+IHNodW5zZWlcIDsKK+a0l+i2syA+IHNlbnNva3VcIDsKK+m7kuifuyA+IGt1cm9hcmlcIDsKK+aGtua4rCA+IG9rdXNva3VcIDsKK+a1geihjCA+IHJ5dXVrb3VcIDsKK+eqkuatuyA+IGNoaXNzaGlcIDsKK+mHkemrmCA+IGtpbmRha2FcIDsKK+etuuS9kyA+IGt5b3V0YWlcIDsKK+WQhOmajiA+IGtha3VrYWlcIDsKK+WQq+mHjyA+IGdhbnJ5b3VcIDsKK+eni+iNiSA+IGFraWt1c2FcIDsKK+aJjeWtpiA+IHNhaWdha3VcIDsKK+elnumBkyA+IHNoaW50b3VcIDsKK+WQvui8qSA+IHdhZ2FoYWlcIDsKK+aGpOa/gCA+IGZ1bmdla2lcIDsKK+aDheiqvyA+IGpvdWNob3VcIDsKK+aEieiJsiA+IHl1c2hva3VcIDsKK+eoruebriA+IHNodW1va3VcIDsKK+a4hea/gSA+IHNlaWRha3VcIDsKK+etluWLlSA+IHNha3Vkb3VcIDsKK+WRqOimpyA+IHNodXVyYW5cIDsKK+a4hea+hCA+IHNlaWNob3VcIDsKK+aJgOWxniA+IHNob3pva3VcIDsKK+etluWKsSA+IHNha3VyZWlcIDsKK+aIpuW9uSA+IHNlbicnZWtpXCA7CivoloTpm7IgPiB1c3VndW1vXCA7CivoloTpm6ogPiB1c3V5dWtpXCA7CivnpZ3ovp4gPiBzaHVrdWppXCA7CivmipHliLYgPiB5b2t1c2VpXCA7CivmgYvpoqggPiBrb2lrYXplXCA7CivllYbmuK8gPiBzaG91a291XCA7CivnpZ7ovL8gPiBtaWtvc2hpXCA7CivolYHpursgPiBpcmFrdXNhXCA7CivmuJPmtYEgPiBrZWlyeXV1XCA7Civmub/mgKcgPiBzaGlzc2VpXCA7Civnq6Xlv4MgPiBkb3VzaGluXCA7CivmiJLmhY4gPiBrYWlzaGluXCA7CivmipXlhaUgPiB0b3VueXV1XCA7Civpub/ov70gPiBzaGlrYW9pXCA7CivnpZbov7AgPiBzb2p1dHN1XCA7Civmt4vnl4UgPiByaW5ieW91XCA7CivmiIrmiIwgPiBib2p1dHN1XCA7CivolqzphZIgPiB5YWt1c2h1XCA7CivlkarooZMgPiBqdWp1dHN1XCA7Civlj6TpoZQgPiBmdXJ1Z2FvXCA7CivmtYXoloQgPiBzZW5wYWt1XCA7CivmiYvlprsgPiB0ZWR6dW1hXCA7Civmt7fmv4EgPiBrb25kYWt1XCA7Civph5HpoY0gPiBraW5nYWt1XCA7CivpiaTomasgPiBrb3VjaHV1XCA7CivmtaPohbggPiBrYW5jaG91XCA7CivmuIXmtrwgPiBzZWlyeW91XCA7Civmg6jokL0gPiBzYW5yYWt1XCA7CivllYbms5UgPiBzaG91aG91XCA7CivmhaPnlKggPiBrYW4nJ3lvdVwgOwor6YqF6IetID4gZG91c2h1dVwgOwor56yR5aOwID4gc2hvdXNlaVwgOwor6JiK6JOEID4gdW5jaGlrdVwgOwor6YqA6ImyID4gZ2luJydpcm9cIDsKK+m6puinkiA+IGJha2tha3VcIDsKK+aIkuW/gyA+IGthaXNoaW5cIDsKK+aKleS/oSA+IHRvdXNoaW5cIDsKK+a4hea1gSA+IHNlaXJ5dXVcIDsKK+engeiFuSA+IHNoaWZ1a3VcIDsKK+a6gOW5hSA+IG1hbnB1a3VcIDsKK+WPsOmWoyA+IGRhaWtha3VcIDsKK+a6gOW4rSA+IG1hbnNla2lcIDsKK+aJv+WJjSA+IHNob3V6ZW5cIDsKK+WWrOW/lyA+IGt5b3VzaGlcIDsKK+a3sea9rSA+IHNoaW50YW5cIDsKK+WPjemngSA+IGhhbnBha3VcIDsKK+ero+W3pSA+IHNodW5rb3VcIDsKK+a6gOW3niA+IG1hbnNodXVcIDsKK+WWquW/gyA+IHNvdXNoaW5cIDsKK+WQjOmHjyA+IGRvdXJ5b3VcIDsKK+elneizgCA+IHNodWt1Z2FcIDsKK+aCquiplSA+IGFrdWh5b3VcIDsKK+WThOeskSA+IGtvdXNob3VcIDsKK+aCquiosyA+IGFrdXlha3VcIDsKK+aApemosCA+IGt5dXV0b3VcIDsKK+iVqumbkSA+IGJ1emF0c3VcIDsKK+m7kuiMtiA+IGt1cm9jaGFcIDsKK+eojuebriA+IHplaW1va3VcIDsKK+aKmOS4rSA+IHNldGNodXVcIDsKK+enmOe1kCA+IGhpa2V0c3VcIDsKK+WQjOmDtyA+IGRvdWt5b3VcIDsKK+aHsuaIkiA+IGNob3VrYWlcIDsKK+ekuumBlCA+IGppdGF0c3VcIDsKK+mHjemZvSA+IGNob3V5b3VcIDsKK+a3sea3tSA+IHNoaW4nJ2VuXCA7Civmh5Dml6cgPiBrYWlreXV1XCA7CivnrZDkvZMgPiBreW91dGFpXCA7CivomY7nqbQgPiBrb2tldHN1XCA7Civllpjmga8gPiB6ZW5zb2t1XCA7Civlj43pn78gPiBoYW5reW91XCA7Civpjq7lrpogPiBjaGludGVpXCA7Civmt7HmtbcgPiBzaGlua2FpXCA7CivllYbmqKkgPiBzaG91a2VuXCA7CivnrZLkupUgPiB0c3V0c3VpXCA7Civmt7HmtYUgPiBzaGluc2VuXCA7Civlk7LnkIYgPiB0ZXRzdXJpXCA7CivpiI3otrMgPiBkb25zb2t1XCA7CivnqbrmobYgPiBrYXJhb2tlXCA7CivoloTpiI0gPiB1c3Vub3JvXCA7Civmh7LmgqogPiBjaG91YWt1XCA7CivnqbrmoKogPiBrdXVrYWJ1XCA7Civom67ml48gPiBiYW56b2t1XCA7CivolYnpoqggPiBzaG91ZnV1XCA7CivnrJvlkLkgPiBmdWVmdWtpXCA7Civms5XouqsgPiBob3NzaGluXCA7Civnq5zlrq4gPiByeXV1Z3V1XCA7CivnpZ3oqIAgPiBzaHV1Z2VuXCA7Civpj6Hlj7AgPiBreW91ZGFpXCA7CivmgaXovrEgPiBjaGlqb2t1XCA7CivmsojpnZkgPiBjaGluc2VpXCA7Civmh7LlvbkgPiBjaG91ZWtpXCA7CivlloTmgqogPiB6ZW4nJ2FrdVwgOwor5rue5LqsID4gdGFpa3lvdVwgOwor6YeN6Y6uID4ganV1Y2hpblwgOwor5ZCN6LehID4gbWVpc2VraVwgOwor5oCl6ZujID4ga3l1dW5hblwgOwor6JaE6YGHID4gaGFrdWd1dVwgOwor5Y+C6ZuGID4gc2Fuc2h1dVwgOwor5reh5rOKID4gdGFucGFrdVwgOwor5omL5Y+jID4gdGVndWNoaVwgOwor5rKI6ZmNID4gY2hpbmtvdVwgOwor5rW456S8ID4gc2hpbnJlaVwgOwor5ZGo6IiqID4gc2h1dWtvdVwgOwor5ZaE5b+DID4gemVuc2hpblwgOwor5ZaE5b6zID4gemVudG9rdVwgOwor5omT5YqbID4gZGFyeW9rdVwgOwor5rer5qyyID4gaW4nJ3lva3VcIDsKK+mKgOe0mSA+IGdpbmdhbWlcIDsKK+mItOiYrSA+IHN1enVyYW5cIDsKK+aIpuWfnyA+IHNlbicnaWtpXCA7CivlkJ/oqqYgPiBnaW5zaG91XCA7CivnqbbmmI4gPiBreXV1bWVpXCA7Civlk4Hnm64gPiBoaW5tb2t1XCA7CivphpzpoZ4gPiBzaHV1cnVpXCA7CivpvbLmra8gPiBtdXNoaWJhXCA7Civlj6zpgoQgPiBzaG91a2FuXCA7Civms6jop6MgPiBjaHV1a2FpXCA7Civlj6/pgIYgPiBrYWd5YWt1XCA7CivmhoLmrJ0gPiB5dXV1dHN1XCA7CivpioXnrpQgPiBkb3VoYWt1XCA7Civms6joppYgPiBjaHV1c2hpXCA7Civph43ph48gPiBqdXVyeW91XCA7CivmiKblm70gPiBzZW5nb2t1XCA7CivmiYDlj44gPiBzaG9zaHV1XCA7CivmhJvnnYAgPiBhaWNoYWt1XCA7CivpiI3op5IgPiBkb25rYWt1XCA7CivpuqbojLYgPiBtdWdpY2hhXCA7Civpu5Lnt5ogPiBrb2t1c2VuXCA7CivmhJrnm7QgPiBndWNob2t1XCA7CivpioDnrpQgPiBnaW5wYWt1XCA7Civpj6Hlg48gPiBreW91em91XCA7Civol6ToibIgPiBmdWppaXJvXCA7Civlj7LouZ8gPiBzaGlzZWtpXCA7CivmiLjlj6MgPiB0b2d1Y2hpXCA7Civnqbrmj5ogPiBrYXJhYWdlXCA7CivpioDnrJsgPiBnaW50ZWtpXCA7Civmub/lnLAgPiBzaGl0Y2hpXCA7Civmtbfnm7ggPiBrYWlzaG91XCA7CivnrKzkuIAgPiBkYWlpY2hpXCA7CivmuIXmlrAgPiBzZWlzaGluXCA7Civmga3orJkgPiBreW91a2VuXCA7Civph47pgZMgPiBub21pY2hpXCA7CivllJDmrYwgPiBrYXJhdXRhXCA7CivlkIzoqr8gPiBkb3VjaG91XCA7Civlj7Lot6EgPiBzaGlzZWtpXCA7Civpt7npmrwgPiB5b3VzaHVuXCA7Civnq7blkIggPiBreW91Z291XCA7CivlkI3oqLMgPiBtZWl5YWt1XCA7Civlj47ph5EgPiBzaHV1a2luXCA7CivlkIjoqr8gPiBnb3VjaG91XCA7Civlj6PovKogPiBrdWNoaXdhXCA7Civmt7PmnLQgPiBqdW5ib2t1XCA7Civpu4Tnt5EgPiBvdXJ5b2t1XCA7Civlv6DprYIgPiBjaHV1a29uXCA7CivlkIToq5YgPiBrYWt1cm9uXCA7CivmtrjmuIcgPiBrb2thdHN1XCA7CivlkIjoqZUgPiBnYXBweW91XCA7Civlj5nov7AgPiBqb2p1dHN1XCA7Civmt7Hmm7QgPiBzaGlua291XCA7CivmtJfohLMgPiBzZW4nJ25vdVwgOwor5oi45YilID4ga29iZXRzdVwgOwor56We6JGsID4gc2hpbnNvdVwgOwor56uL5aC0ID4gdGFjaGliYVwgOwor5ZSQ5qeYID4ga2FyYXlvdVwgOwor6bq757iEID4gYXNhbmF3YVwgOwor6ba66bSSID4gc2VraXJlaVwgOwor5oKq6IetID4gYWt1c2h1dVwgOwor56mN5pyoID4gdHN1bWlraVwgOwor5Y+k6LehID4gZnVydWF0b1wgOwor5rqW5YmHID4ganVuc29rdVwgOwor5oim5Y+LID4gc2VuJyd5dXVcIDsKK+a1tOeUqCA+IHlva3V5b3VcIDsKK+WQkOihgCA+IHRva2V0c3VcIDsKK+mIjuiZqyA+IGtvdWNodXVcIDsKK+iWhOisnSA+IGhha3VzaGFcIDsKK+mOruWPsCA+IGNoaW5kYWlcIDsKK+ayiOmFlCA+IGNoaW5zdWlcIDsKK+WVhuaJjSA+IHNob3VzYWlcIDsKK+m7meeltyA+IG1va3V0b3VcIDsKK+mHkei1pCA+IGtpbicnYWthXCA7CivmiYDkv6EgPiBzaG9zaGluXCA7CivllYbmiKYgPiBzaG91c2VuXCA7Civnq4vlm70gPiByaWtrb2t1XCA7Civpu5nnpLwgPiBtb2t1cmVpXCA7Civpu5nnpLogPiBtb2t1c2hpXCA7CivompXmpa0gPiBzYW5neW91XCA7CivmiKbli50gPiBzZW5zaG91XCA7Civlj5vot6EgPiBoYW5zZWtpXCA7CivmgJ3ph48gPiBzaGlyeW91XCA7CivmiYvkuK0gPiBzaHVjaHV1XCA7Civmtojnh4ggPiBzaG91dG91XCA7CivnpZ7oi5EgPiBzaGluJydlblwgOwor5omL5LiLID4gdGVzaGl0YVwgOwor5Y+O6LyJID4gc2h1dXNhaVwgOwor5oCl6YG9ID4ga3l1dWt5b1wgOwor56eB55qEID4gc2hpdGVraVwgOwor5rqA5Y2TID4gbWFudGFrdVwgOwor5oCl6YCgID4ga3l1dXpvdVwgOwor5oCl6YCdID4ga3l1dXNlaVwgOwor5rim5be7ID4gdXp1bWFraVwgOwor5rW354yrID4gdW1pbmVrb1wgOwor5oSa54mpID4gZ3VidXRzdVwgOwor6YeN6LKsID4ganV1c2VraVwgOwor6by75rGXID4gaGFuYWFzZVwgOwor5Y+N6LqrID4gaGFuc2hpblwgOwor5oCl6YCBID4ga3l1dXNvdVwgOwor5oiS5ZGKID4ga2Fpa29rdVwgOwor5ZaE5aWzID4gemVuJydueW9cIDsKK+elnuiIiCA+IG1pa29zaGlcIDsKK+aCque/kiA+IGFrdXNodXVcIDsKK+WPrOiriyA+IHNob3VzZWlcIDsKK+mJm+ethiA+IGVucGl0c3VcIDsKK+WPm+iziiA+IGhhbnpva3VcIDsKK+aIkuWQjSA+IGthaW15b3VcIDsKK+WOs+mFtyA+IGdlbmtva3VcIDsKK+ero+WKnyA+IHNodW5rb3VcIDsKK+WUkOacnSA+IHRvdWNob3VcIDsKK+a2iOeBryA+IHNob3V0b3VcIDsKK+W/g+mtgiA+IHNoaW5rb25cIDsKK+WOhOmboyA+IHlha3VuYW5cIDsKK+aIv+S4rSA+IGJvdWNodXVcIDsKK+WPjei3syA+IGhhbmNob3VcIDsKK+a1t+eJmyA+IGthaWd5dXVcIDsKK+mJseefsyA+IGtvdXNla2lcIDsKK+iWrOiOoiA+IHlha2t5b3VcIDsKK+m8u+atjCA+IGhhbmF1dGFcIDsKK+aGkeaLoCA+IGh5b3VreW9cIDsKK+mJhOe0oiA+IHRlc3Nha3VcIDsKK+W/g+mrhCA+IHNoaW56dWlcIDsKK+aApei7oiA+IGt5dXV0ZW5cIDsKK+WPjei2iiA+IGhhbmV0c3VcIDsKK+WQueiBtCA+IGZ1aWNob3VcIDsKK+a5r+WPoyA+IHl1Z3VjaGlcIDsKK+aIpuWCtyA+IHNlbnNob3VcIDsKK+WPpOiqrCA+IGtvc2V0c3VcIDsKK+awtOmjtCA+IG1penVhbWVcIDsKK+WQjeiWrCA+IG1laXlha3VcIDsKK+eov+aWmSA+IGtvdXJ5b3VcIDsKK+WNs+mhjCA+IHNva3VkYWlcIDsKK+W/oOmciiA+IGNodXVyZWlcIDsKK+WPo+iqrCA+IGt1emV0c3VcIDsKK+WPo+iqpiA+IGtvdXNob3VcIDsKK+iWrOiNiSA+IHlha3Vzb3VcIDsKK+eoruadvyA+IHRhbmVpdGFcIDsKK+iZq+awlyA+IG11c2hpa2VcIDsKK+epuuW4rSA+IGt1dXNla2lcIDsKK+a4rOWumiA+IHNva3V0ZWlcIDsKK+a1geeggiA+IHJ5dXVzaGFcIDsKK+a5vuWGhSA+IHdhbicnbmFpXCA7CivmhJXnhLYgPiBnYWt1emVuXCA7CivnqK7mnKwgPiB0YW5laG9uXCA7CivnpZ7ogZYgPiBzaGluc2VpXCA7Civlj47os4QgPiBzaHV1d2FpXCA7Civlj43os4ogPiBoYW56b2t1XCA7CivmhJ/mv4AgPiBrYW5nZWtpXCA7CivptrTpppYgPiBrYWt1c2h1XCA7Civomavmra8gPiBtdXNoaWJhXCA7CivlkITol6kgPiBrYWt1aGFuXCA7CivmtKrnqY0gPiBrb3VzZWtpXCA7Civnq7bkuokgPiBreW91c291XCA7Civlj6Pop5IgPiBrb3VrYWt1XCA7Civnqq7lnLAgPiBreXV1Y2hpXCA7CivllYblupcgPiBzaG91dGVuXCA7CivmsLfpnaIgPiBoeW91bWVuXCA7Civph43oqLMgPiBqdXV5YWt1XCA7CivpiI3oibIgPiBuaWJpaXJvXCA7CivljYPps6UgPiBjaGlkb3JpXCA7Civlj5noqqwgPiBqb3NldHN1XCA7Civlv5fpm4YgPiBzaGlzaHV1XCA7CivnqqrlnLAgPiBrdWJvY2hpXCA7CivmhpTmgrQgPiBzaG91c3VpXCA7Civmt7Hmha4gPiBzaGlucnlvXCA7Civnpo/npYkgPiBmdWt1c2hpXCA7Civnpo7npaUgPiB0ZWlzaG91XCA7CivmsJfpqqggPiBraWtvdHN1XCA7CivnqK7ml48gPiBzaHV6b2t1XCA7Civph4zopqogPiBzYXRvb3lhXCA7CivllYblt6UgPiBzaG91a291XCA7CivmuJvlsJEgPiBnZW5zaG91XCA7Civpu5Lnl6MgPiBrdXJvYXphXCA7CivphovphbggPiBzYWt1c2FuXCA7CivpuqbnrJsgPiBtdWdpYnVlXCA7CivlkJvoh6MgPiBrdW5zaGluXCA7CivmtJ7nqbQgPiBob3JhYW5hXCA7Civmh7jlkIogPiBrZW5jaG91XCA7CivpioPnjJ8gPiBqdXVyeW91XCA7Civlv4PpoZggPiBzaGluZ2FuXCA7Civmt6vmhb4gPiBpbicneW9rdVwgOwor5rW45r2kID4gc2hpbmp1blwgOwor5rqA5L2cID4gbWFuc2FrdVwgOwor5Y+k6KGAID4gZnVydWNoaVwgOwor5oaC5oiaID4geXV1c2VraVwgOwor5ZCr576eID4gZ2Fuc2h1dVwgOwor56m65bCGID4ga3V1c2hvdVwgOwor5b+D6aCtID4gc2hpbnRvdVwgOwor5ZSQ5o+aID4ga2FyYWFnZVwgOwor5oim5LitID4gc2VuY2h1dVwgOwor5rC06Zm4ID4gc3VpcmlrdVwgOwor5Y2g6aCYID4gc2VucnlvdVwgOwor5rW45rysID4gc2hpbnNoaVwgOwor5b+D6Z+zID4gc2hpbicnb25cIDsKK+WRqOefpSA+IHNodXVjaGlcIDsKK+WVk+WtpiA+IGtlaWdha3VcIDsKK+iWq+iCsiA+IGt1bicnaWt1XCA7CivmhIHnhLYgPiBzaHV1emVuXCA7Civpu4Tnmb0gPiBrb3VoYWt1XCA7Civlj43oqLwgPiBoYW5zaG91XCA7CivmtYHnlKggPiByeXV1eW91XCA7CivmuoDkuoYgPiBtYW5yeW91XCA7CivmtYHnlKMgPiByeXV1emFuXCA7CivnqY3mgqogPiBzZWtpYWt1XCA7CivpiZvnm7QgPiBlbmNob2t1XCA7CivmgqrnrZYgPiBha3VzYWt1XCA7Civpuqbnp4sgPiBtdWdpYWtpXCA7Civph5Hono0gPiBraW4nJ3l1dVwgOwor5b+F6ZyAID4gaGl0c3VqdVwgOwor5oaC5oSBID4geXV1c2h1dVwgOwor56We57WMID4gc2hpbmtlaVwgOwor5b+D6ZyKID4gc2hpbnJlaVwgOwor5oSf5rOjID4ga2Fua3l1dVwgOwor5Y+O6KanID4gc2h1dXJhblwgOwor5ZCM6IifID4gZG91c2h1dVwgOwor5oOH552mID4gdG9uYm9rdVwgOwor5rW35rexID4ga2Fpc2hpblwgOwor6Juu5aKDID4gYmFua3lvdVwgOwor5Y+N6KaGID4gaGFucHVrdVwgOwor56aP55u4ID4gZnVrdXNvdVwgOwor56qB5aaCID4gdG90c3Vqb1wgOwor5ray5pm2ID4gZWtpc2hvdVwgOwor5ZCM6IW5ID4gZG91ZnVrdVwgOwor5rW35rWBID4ga2Fpcnl1dVwgOwor5ZCE6IisID4ga2FrdWhhblwgOwor5ris5ZywID4gc29rdWNoaVwgOwor5oaC5b+DID4geXV1c2hpblwgOwor56mN5byKID4gc2VraWhlaVwgOwor6Jma5qWtID4ga3lvZ3lvdVwgOwor5rK56I+cID4gYWJ1cmFuYVwgOwor5Y2K6aGNID4gaGFuZ2FrdVwgOwor5rG66K2wID4ga2V0c3VnaVwgOwor6YmE55+zID4gdGVzc2VraVwgOwor5b+r6YGpID4ga2FpdGVraVwgOwor56mN5bm0ID4gc2VraW5lblwgOwor5rW45rC0ID4gc2hpbnN1aVwgOwor6YW36YGHID4ga29rdWd1dVwgOwor56eY5rG6ID4gaGlrZXRzdVwgOwor5b+r6YCfID4ga2Fpc29rdVwgOwor6buZ54S2ID4gbW9rdW5lblwgOwor6YWq6YW4ID4gcmFrdXNhblwgOwor56We56ulID4gc2hpbmRvdVwgOwor6YeJ6JasID4geXV1eWFrdVwgOwor5ZSx5bCOID4gc2hvdWRvdVwgOwor5ZGK55+lID4ga29rdWNoaVwgOwor5oCl6KGMID4ga3l1dWtvdVwgOwor5ZWG5aSnID4gc2hvdWRhaVwgOwor5rex5bGkID4gc2hpbnNvdVwgOwor5ZWG5aOyID4gc2hvdWJhaVwgOwor5oGL6I2JID4ga29pZ3VzYVwgOwor5oW25byUID4ga2VpY2hvdVwgOwor6YWi6YW4ID4gc2FrdXNhblwgOwor5rGC6YGTID4ga3l1dWRvdVwgOwor5rWm5rOiID4gdXJhbmFtaVwgOwor6Jas57GgID4geWFrdXJvdVwgOwor5riJ5aSWID4gc2hvdWdhaVwgOwor6buS54K5ID4ga29rdXRlblwgOwor6buS54KtID4ga29rdXRhblwgOwor5rC06YePID4gc3VpcnlvdVwgOwor56m65ZynID4ga3V1YXRzdVwgOwor56eL5rC0ID4gc2h1dXN1aVwgOwor5Y+z6IWVID4gbWlnaXVkZVwgOwor5Y+j6Iy2ID4ga3VjaGlqYVwgOwor5ZOB5qC8ID4gaGlua2FrdVwgOwor5b6S6aOfID4gdG9zaG9rdVwgOwor6YWq6L6yID4gcmFrdW5vdVwgOwor6JaE6IKJID4gdXN1bmlrdVwgOwor5Y+s6Ie0ID4gc2hvdWNoaVwgOwor5YyX6a6uID4gaG9rdXNlblwgOwor6bu05q+SID4gYmFpZG9rdVwgOwor6buE54afID4ga291anVrdVwgOwor5ZGq54mpID4ganVidXRzdVwgOwor5b+r6LazID4ga2Fpc29rdVwgOwor5Y+O6JS1ID4gc2h1dXpvdVwgOwor5Y+k6ImyID4ga29zaG9rdVwgOwor5rW05qe9ID4geW9rdXNvdVwgOwor5ra85oSfID4gcnlvdWthblwgOwor6YeR6ImyID4ga29uamlraVwgOwor6YWS6YePID4gc2h1cnlvdVwgOwor5oWi5b+DID4gbWFuc2hpblwgOwor5ZCM57SaID4gZG91a3l1dVwgOwor5Y6f6Ki7ID4gZ2VuY2h1dVwgOwor5oSB5q2OID4gc2h1dXRhblwgOwor5Y+j6IetID4ga291c2h1dVwgOwor5ZqH44CFID4ga2Fra2FrdVwgOwor5oKq55eHID4gYWt1c2hvdVwgOwor5oKq55eFID4gYWt1YnlvdVwgOwor5YyW6aqoID4ga2Frb3RzdVwgOwor6YeM6IqLID4gc2F0b2ltb1wgOwor6Yac6KGMID4gc2h1dWtvdVwgOwor5ZOo5oiSID4gc2hvdWthaVwgOwor5Y+N6JC9ID4gaGFucmFrdVwgOwor5Y2K6ZCYID4gaGFuc2hvdVwgOwor6Jas56iuID4geWFrdXNodVwgOwor5Y+j6IW5ID4ga291ZnVrdVwgOwor5b+D6YWUID4gc2hpbnN1aVwgOwor5b+D6YWNID4gc2hpbnBhaVwgOwor56aB542EID4ga2luZ29rdVwgOwor5rC36LyqID4gaHlvdXJpblwgOwor5oSf5pyNID4ga2FucHVrdVwgOwor5q+S6a2aID4gZG9rdWd5b1wgOwor56aB54yfID4ga2lucnlvdVwgOwor6YeN6IejID4ganV1c2hpblwgOwor5ZaE5Lq6ID4gemVuJyduaW5cIDsKK+WQuOebpCA+IGt5dXViYW5cIDsKK+ibruWLhyA+IGJhbicneXV1XCA7Civmt7HlpaUgPiBzaGluJydvdVwgOwor5ZCE57SZID4ga2FrdXNoaVwgOwor56eB5qyyID4gc2hpeW9rdVwgOwor6bm/56CmID4gcm9rdXNhaVwgOwor56WJ56aPID4gc2hpZnVrdVwgOwor5Y+b6IejID4gaGFuc2hpblwgOwor56S+56ugID4gc2hhc2hvdVwgOwor56qu5LmPID4ga3l1dWJvdVwgOwor5rW45p+TID4gc2hpbnNlblwgOwor6Yuz5belID4gY2h1dWtvdVwgOwor5rex5aScID4gc2hpbicneWFcIDsKK+eiuuiqjSA+IGtha3VuaW5cIDsKK+a4m+WPjiA+IGdlbnNodXVcIDsKK+iWrOekvCA+IHlha3VyZWlcIDsKK+mMqOWcsCA+IGJ5b3VjaGlcIDsKK+iWhOe4gSA+IHVzdWJlcmlcIDsKK+ayu+e4viA+IGNoaXNla2lcIDsKK+a2iOaVoyA+IHNob3VzYW5cIDsKK+elqOeUsCA+IGh5b3VkZW5cIDsKK+eiuuiogCA+IGtha3VnZW5cIDsKK+iWhOe1uSA+IHVzdWdpbnVcIDsKK+W/q+irviA+IGthaWRha3VcIDsKK+WMl+miqCA+IGhva3VmdXVcIDsKK+iWhOe1piA+IGhha2t5dXVcIDsKK+mHjeiBtCA+IGp1dWNob3VcIDsKK+WVhuWTgSA+IHNob3VoaW5cIDsKK+W/q+iqvyA+IGthaWNob3VcIDsKK+mKmOafhCA+IG1laWdhcmFcIDsKK+aCqueOiSA+IGFrdWRhbWFcIDsKK+enmOabsiA+IGhpa3lva3VcIDsKK+iWhOe0mSA+IHVzdWdhbWlcIDsKK+iWhOe0hSA+IHVzdWJlbmlcIDsKK+ensOaPmiA+IHNob3V5b3VcIDsKK+iTmumFuCA+IHNodXVzYW5cIDsKK+a4i+WRsyA+IHNoaWJ1bWlcIDsKK+WNl+mAsiA+IG5hbnNoaW5cIDsKK+m7meatoiA+IG1va3VzaGlcIDsKK+mKmOacqCA+IG1laWJva3VcIDsKK+mJseavkiA+IGtvdWRva3VcIDsKK+WQjeensCA+IG1laXNob3VcIDsKK+WVhuWPtyA+IHNob3Vnb3VcIDsKK+aAqOiJsiA+IGVuc2hva3VcIDsKK+a1geaxlyA+IHJ5dXVrYW5cIDsKK+WMl+mdoiA+IGhva3VtZW5cIDsKK+aCieeahiA+IHNoaWtrYWlcIDsKK+a1geawtCA+IHJ5dXVzdWlcIDsKK+eqgeWFiCA+IHRvc3Nha2lcIDsKK+a0u+azgSA+IGtha2t5b3VcIDsKK+mHiOe+qSA+IHNoYWt1Z2lcIDsKK+W+qemFjSA+IGZ1a3VoYWlcIDsKK+W/oOiqoCA+IGNodXVzZWlcIDsKK+WOn+iZqyA+IGdlbmNodXVcIDsKK+WQhOeoriA+IGtha3VzaHVcIDsKK+WPsuexjSA+IHNoaXNla2lcIDsKK+WQieelpSA+IGtpc3Nob3VcIDsKK+ehq+mFuCA+IHJ5dXVzYW5cIDsKK+aHkOS4rSA+IGthaWNodXVcIDsKK+WNmOi6qyA+IHRhbnNoaW5cIDsKK+W8sem9oiA+IGpha3VyZWlcIDsKK+mEremHjSA+IHRlaWNob3VcIDsKK+W/oOiogCA+IGNodXVnZW5cIDsKK+azoeebmyA+IGF3YW1vcmlcIDsKK+WMl+mZkCA+IGhva3VnZW5cIDsKK+WNh+mBtyA+IHNob3VzZW5cIDsKK+eni+aZtCA+IGFraWJhcmVcIDsKK+eptOWHuSA+IGFuYWJva29cIDsKK+mHkee2siA+IGthbmFhbWlcIDsKK+WPt+esmyA+IGdvdXRla2lcIDsKK+ibh+WPoyA+IGphZ3VjaGlcIDsKK+m7kuaqgCA+IGtva3V0YW5cIDsKK+a3keWlsyA+IHNodWt1am9cIDsKK+aGguWbvSA+IHl1dWtva3VcIDsKK+a0l+a/ryA+IHNlbnRha3VcIDsKK+WQhOekviA+IGtha3VzaGFcIDsKK+WPjOe/vCA+IHNvdXlva3VcIDsKK+WNiui+siA+IGhhbicnbm91XCA7CivnpoHmvIEgPiBraW5yeW91XCA7Civlj6PntIQgPiBrb3V5YWt1XCA7CivmuIXli50gPiBzZWlzaG91XCA7CivpiI3nl5sgPiBkb250c3V1XCA7Civnp4HmnI0gPiBzaGlmdWt1XCA7Civlj6Pns6cgPiBrb3VyeW91XCA7Civph5HntI0gPiBraW4nJ25vdVwgOwor5YyX6ZaAID4ga2l0YW1vblwgOwor5ZC454mpID4gc3VpbW9ub1wgOwor5Y6a6JaEID4ga291aGFrdVwgOwor6Ymx5qWtID4ga291Z3lvdVwgOwor5Y2B6YCyID4gamlzc2hpblwgOwor6Jas55SoID4geWFrdXlvdVwgOwor5rC46KijID4gZWlrZXRzdVwgOwor56mN5ZaEID4gc2VraXplblwgOwor6YqA5p2PID4gZ2luJyduYW5cIDsKK+a4oeS7jyA+IHRvZnV0c3VcIDsKK+ehnemFuCA+IHNob3VzYW5cIDsKK+ejiuiQvSA+IHJhaXJha3VcIDsKK+iZmuW/gyA+IGt5b3NoaW5cIDsKK+a4m+S9nCA+IGdlbnNha3VcIDsKK+WNiui6qyA+IGhhbnNoaW5cIDsKK+aDheazgSA+IGpvdWt5b3VcIDsKK+a0l+a7jCA+IHNlbmRla2lcIDsKK+awt+inoyA+IGh5b3VrYWlcIDsKK+WQjeebriA+IG1laW1va3VcIDsKK+WPpeevgCA+IGt1c2V0c3VcIDsKK+WQjOecgSA+IGRvdXNob3VcIDsKK+a0peazoiA+IHRzdW5hbWlcIDsKK+WPjue5rSA+IHNodXVrZW5cIDsKK+azleeahCA+IGhvdXRla2lcIDsKK+azieefsyA+IHNlbnNla2lcIDsKK+aylue4hCA+IG9raW5hd2FcIDsKK+awkei4iiA+IG1pbicneW91XCA7CivomZrlvLEgPiBreW9qYWt1XCA7CivljZTos5sgPiBreW91c2FuXCA7CivljbPoo70gPiBzb2t1c2VpXCA7Civph5HnrpQgPiBraW5wYWt1XCA7Civlj6TnrYYgPiBrb2hpdHN1XCA7Civlvozph5wgPiBhdG9nYW1hXCA7Civmt7HljpogPiBzaGlua291XCA7CivlvqHovL8gPiBtaWtvc2hpXCA7Civph43nr6QgPiBqdXV0b2t1XCA7Civmt7vliYogPiB0ZW5zYWt1XCA7Civph5HnrZYgPiBraW5zYWt1XCA7CivpibHmn7EgPiBrb3VjaHV1XCA7Civph5HnrYsgPiBraW5zdWppXCA7CivlvpfpgZMgPiB0b2t1ZG91XCA7CivnpKbnn7MgPiBrb3VzZWtpXCA7Civpg7fplqIgPiBreW91a2FuXCA7Civph43nrrEgPiBqdXViYWtvXCA7CivlkITnnIwgPiBrYWt1a2VuXCA7CivljqnoiI4gPiBreXV1c2hhXCA7Civlj6/npZ0gPiBrYXNoaWt1XCA7CivlkIznl4UgPiBkb3VieW91XCA7Civmg4XmrLIgPiBqb3V5b2t1XCA7Civlj47ntI0gPiBzaHV1bm91XCA7CivnqbrkuK0gPiBrdXVjaHV1XCA7Civpu5Lmnb8gPiBrb2t1YmFuXCA7CivnpZ7nga8gPiBzaGludG91XCA7Civol4HngbAgPiB3YXJhYmFpXCA7CivlkIznlLogPiBkb3VjaG91XCA7CivomavlrrMgPiBjaHV1Z2FpXCA7CivmhJ/lv5wgPiBrYW4nJ25vdVwgOwor5ZWG5LyaID4gc2hvdWthaVwgOwor5oSf5b+DID4ga2Fuc2hpblwgOwor5Y2Y6Kq/ID4gdGFuY2hvdVwgOwor6YqD5pKDID4ganV1Z2VraVwgOwor6buE5qKiID4ga291c2hvdVwgOwor5oSf5b6XID4ga2FudG9rdVwgOwor5oOH5qi4ID4gdG9uYm9rdVwgOwor55+z6a+bID4gaXNoaWRhaVwgOwor6Yac6IGeID4gc2h1dWJ1blwgOwor5ZWG5Lq6ID4gc2hvdW5pblwgOwor5b6M6YC4ID4ga291aXRzdVwgOwor5b6M6YCyID4ga291c2hpblwgOwor6YeN56mNID4ganV1c2VraVwgOwor5Y+w55+zID4gZGFpaXNoaVwgOwor5Y2T6KuWID4gdGFrdXJvblwgOwor5q6/6ZajID4gZGVua2FrdVwgOwor6JaE55quID4gdXN1a2F3YVwgOwor5Y6a6Ie8ID4gYXRzdXVzdVwgOwor5Y2a6KanID4gaGFrdXJhblwgOwor5Y2Y6KeSID4gdGFua2FrdVwgOwor6JmO5be7ID4gdG9yYWthblwgOwor5b2T6ZmQID4gdG91Z2lyaVwgOwor56mN5YiGID4gc2VraWJ1blwgOwor5oKE54S2ID4gc2hvdXplblwgOwor5rCR6KyhID4gbWluJyd5b3VcIDsKK+mMr+S5sSA+IHNha3VyYW5cIDsKK+m7kuaWkSA+IGtva3VoYW5cIDsKK+a1geaYnyA+IHJ5dXVzZWlcIDsKK+ayu+eZgiA+IGNoaXJ5b3VcIDsKK+WPsueahCA+IHNoaXRla2lcIDsKK+a3t+S/oSA+IGtvbnNoaW5cIDsKK+mDoemVtyA+IGd1bmNob3VcIDsKK+WNmOikhyA+IHRhbnB1a3VcIDsKK+aui+mrmCA+IHphbmRha2FcIDsKK+aAnee0oiA+IHNoaXNha3VcIDsKK+WPiuesrCA+IGt5dXVkYWlcIDsKK+engOaJjSA+IHNodXVzYWlcIDsKK+mJhOapiyA+IHRla2t5b3VcIDsKK+W8t+miqCA+IGt5b3VmdXVcIDsKK+iWqueCrSA+IHNoaW50YW5cIDsKK+a3t+S9nCA+IGtvbnNha3VcIDsKK+mHkeefsyA+IGtpbnNla2lcIDsKK+mJhOanjCA+IHRldHRzdWlcIDsKK+WPjueojiA+IHNodXV6ZWlcIDsKK+aDnOaVlyA+IHNla2loYWlcIDsKK+eosuWPoiA+IGluYW11cmFcIDsKK+engeaFviA+IHNoaXlva3VcIDsKK+ehrOiqvyA+IGtvdWNob3VcIDsKK+WNiuinkiA+IGhhbmtha3VcIDsKK+W9q+mHkSA+IGNob3VraW5cIDsKK+avkumFkiA+IGRva3VzaHVcIDsKK+a1ruW9qyA+IHVraWJvcmlcIDsKK+eni+aAnSA+IHNodXVzaGlcIDsKK+W+jOi2syA+IGF0b2FzaGlcIDsKK+WMl+i+uiA+IGhva3VoZW5cIDsKK+WUr+S7iiA+IHRhZGFpbWFcIDsKK+mHo+eTtiA+IHRzdXJ1YmVcIDsKK+aFn+WTrSA+IGRvdWtva3VcIDsKK+aDkeaYnyA+IHdha3VzZWlcIDsKK+WNiuilnyA+IGhhbicnZXJpXCA7Civmg4fmnLQgPiB0b25ib2t1XCA7CivmrbvprYQgPiBzaGloYWt1XCA7CivlvLfpna0gPiBreW91amluXCA7CivlkLjmsLQgPiBreXV1c3VpXCA7CivnorrogZ4gPiBrYWt1YnVuXCA7CivmgYvnl4UgPiBrb2l5YW1pXCA7Civph5HnmoQgPiBraW50ZWtpXCA7Civmt7HkuqQgPiBzaGlua291XCA7CivlkajmmJMgPiBzaHV1ZWtpXCA7Civnn6/poqggPiBreW91ZnV1XCA7CivmhbblhYYgPiBrZWljaG91XCA7CivljYroopYgPiBoYW5zb2RlXCA7CivlkLjmrrsgPiBzdWlnYXJhXCA7Civpg7fpgpEgPiBreW91eXV1XCA7CivomavlnoIgPiBjaHV1c3VpXCA7Civlkajml4sgPiBzaHV1c2VuXCA7CivmraPptaAgPiBzZWlrb2t1XCA7CivmsJHooYYgPiBtaW5zaHV1XCA7Civmtbfls6EgPiBrYWlreW91XCA7CivpiYTmn7UgPiB0ZXNzYWt1XCA7CivpiYTmn7EgPiB0ZXRjaHV1XCA7Civmr47pgLEgPiBtYWlzaHV1XCA7Civnp4Hlv4MgPiBzaGlzaGluXCA7CivnpZ7mrr8gPiBzaGluZGVuXCA7CivmrovpoY0gPiB6YW5nYWt1XCA7Civmga/ngb0gPiBzb2t1c2FpXCA7CivlvLHpm7sgPiBqYWt1ZGVuXCA7CivolLXnsbMgPiBrdXJhbWFpXCA7CivmtbflsbEgPiB1bWl5YW1hXCA7Civmrovpn78gPiB6YW5reW91XCA7CivmtIvmpb0gPiB5b3VnYWt1XCA7CivnqYDlgIkgPiBrb2t1c291XCA7Civph43nl4cgPiBqdXVzaG91XCA7Civph43nl4UgPiBqdXVieW91XCA7CivolqzmtrIgPiB5YWt1ZWtpXCA7CivmtbflsIYgPiBrYWlzaG91XCA7CivoloTniakgPiB1c3Vtb25vXCA7Civljp/ntJogPiBnZW5reXV1XCA7Civph43nlbMgPiBjaG91am91XCA7CivoloTniYcgPiBoYWt1aGVuXCA7Civpu5nmg7MgPiBtb2t1c291XCA7Civph4/nlKMgPiByeW91c2FuXCA7Civms6XmtbcgPiBkb3JvdW1pXCA7CivpvLvllIQgPiBoYW5hdXRhXCA7CivlkKbmsbogPiBoaWtldHN1XCA7CivlvqHooosgPiBvZnVrdXJvXCA7CivmgKrnn7MgPiBrYWlzZWtpXCA7CivmsLToirggPiBtaXp1Z2VpXCA7Civph43nlKggPiBjaG91eW91XCA7CivokL3pppYgPiByYWt1c2h1XCA7CivljbPoiIggPiBzb2treW91XCA7Civnp5jlr4YgPiBoaW1pdHN1XCA7CivlkqvlsLogPiBzaGlzZWtpXCA7CivlvZPph48gPiB0b3VyeW91XCA7Civlj47nm6MgPiBzaHV1a2FuXCA7CivljbXohpwgPiByYW5tYWt1XCA7Civlj43nm64gPiBoYW5tb2t1XCA7CivmsLToibIgPiBtaXp1aXJvXCA7CivnoLLouqsgPiBob3VzaGluXCA7Civlj47nm4ogPiBzaHV1ZWtpXCA7CivnpZ7mqKkgPiBzaGlua2VuXCA7Civljp/nsY0gPiBnZW5zZWtpXCA7CivmgrLmm7IgPiBoaWt5b2t1XCA7CivolYPnpZ4gPiBiYW5zaGluXCA7Civph53nirYgPiBoYXJpam91XCA7Civmronpm6MgPiBqdW4nJ25hblwgOwor5b6L6KqeID4gcml0c3Vnb1wgOwor6YqD5bqKID4ganV1c2hvdVwgOwor6buZ5oCdID4gbW9rdXNoaVwgOwor5rOo5rC0ID4gY2h1dXN1aVwgOwor5Y+s54q2ID4gc2hvdWpvdVwgOwor6buZ5b+1ID4gbW9rdW5lblwgOwor5oGL54yrID4ga29pbmVrb1wgOwor6YGp6b2iID4gdGVraXJlaVwgOwor5q2m6aqoID4gYnVrb3RzdVwgOwor5ZKM5byPID4gd2FzaGlraVwgOwor6Jmc5ZuaID4gcnlvc2h1dVwgOwor5rWB5oSfID4gcnl1dWthblwgOwor6Yqa5a2QID4gY2hvdXNoaVwgOwor56aB5pWZID4ga2lua3lvdVwgOwor5Y2Y6JGJID4gdGFuJyd5b3VcIDsKK+m7meW+kyA+IG1va3VqdXVcIDsKK+mHkeeOiSA+IGtpbnRhbWFcIDsKK+mKgOW5lSA+IGdpbm1ha3VcIDsKK+iWquawtCA+IHNoaW5zdWlcIDsKK+efoumdoiA+IHlhb21vdGVcIDsKK+eojuWPjiA+IHplaXNodXVcIDsKK+eosuS9nCA+IGluYXNha3VcIDsKK+a0i+acjSA+IHlvdWZ1a3VcIDsKK+elreacjSA+IHNhaWZ1a3VcIDsKK+aAp+eahCA+IHNlaXRla2lcIDsKK+WPjueUqCA+IHNodXV5b3VcIDsKK+WNsOiCiSA+IGluJyduaWt1XCA7CivmgKfnmZYgPiBzZWloZWtpXCA7CivphZLoiIggPiBzaHVreW91XCA7CivlvIHpp4EgPiBiZW5wYWt1XCA7CivomK3lraYgPiByYW5nYWt1XCA7CivlkI3mtYEgPiBtZWlyeXV1XCA7CivmgbXmsqIgPiBrZWl0YWt1XCA7CivlvaLot6EgPiBrZWlzZWtpXCA7CivlkIzmtYEgPiBkb3VyeXV1XCA7Civph43niq8gPiBjaG91aGFuXCA7CivnoILpiYQgPiBzYXRldHN1XCA7CivmgKfnl4UgPiBzZWlieW91XCA7CivlkYrmlocgPiBrb2t1YnVuXCA7Civlv4Poh5MgPiBzaGluem91XCA7CivlvJTpm7sgPiBjaG91ZGVuXCA7CivokL3pm7cgPiByYWt1cmFpXCA7Civlj4znkqcgPiBzb3VoZWtpXCA7CivmgqrmlrkgPiBha3VnYXRhXCA7CivpibHluoogPiBrb3VzaG91XCA7CivlkIjmtYEgPiBnb3VyeXV1XCA7CivokL3pm4EgPiByYWt1Z2FuXCA7CivmtYHlvL4gPiByeXV1ZGFuXCA7CivnpL7mrbQgPiBzaGFyZWtpXCA7Civnp4HlroUgPiBzaGl0YWt1XCA7CivokL3pmb0gPiByYWt1eW91XCA7Civph43niIYgPiBqdXViYWt1XCA7CivnorrnrZQgPiBrYWt1dG91XCA7Civps6npppYgPiBreXV1c2h1XCA7Civnp4HlraYgPiBzaGlnYWt1XCA7Civlj4LnlLsgPiBzYW5rYWt1XCA7Civli6fovrIgPiBrYW4nJ25vdVwgOwor5Y6f56WoID4gZ2VucHlvdVwgOwor5q2j6aKoID4gc2hvdWZ1dVwgOwor5oCl55SoID4ga3l1dXlvdVwgOwor6buS5bivID4ga3Vyb29iaVwgOwor5YuV6YePID4gZG91cnlvdVwgOwor5ZOo5YW1ID4gc2hvdWhlaVwgOwor6YqA5bCGID4gZ2luc2hvdVwgOwor5Y+Z54i1ID4gam9zaGFrdVwgOwor5b+D6IOGID4gc2hpbnRhblwgOwor5oOF5oW+ID4gam91eW9rdVwgOwor5YyX6KW/ID4gaG9rdXNlaVwgOwor5rW05aC0ID4geW9rdWpvdVwgOwor5b2i6LGhID4ga2Vpc2hvdVwgOwor5rCX6ImyID4ga2lzaG9rdVwgOwor5b+D6IKdID4gc2hpbmthblwgOwor5b+g57SUID4gY2h1dWp1blwgOwor56OQ55+zID4gYmFuamFrdVwgOwor56Wo5pWwID4gaHlvdXN1dVwgOwor5Y+j54GrID4ga3VjaGliaVwgOwor5Y+U54i2ID4gc2h1a3VmdVwgOwor5Y+N54usID4gaGFuZG9rdVwgOwor56eB5ai8ID4gc2hpc2hvdVwgOwor5rOl5qOSID4gZG9yb2JvdVwgOwor56eL5aOwID4gc2h1dXNlaVwgOwor56We5piOID4gc2hpbm1laVwgOwor5rGB57KJID4gc2hpcnVrb1wgOwor5byx6YW4ID4gamFrdXNhblwgOwor5rW35Zu9ID4ga2Fpa29rdVwgOwor6JS155u4ID4gem91c2hvdVwgOwor5Y2D6I2JID4gY2hpZ3VzYVwgOwor5YuY6YCyID4ga2Fuc2hpblwgOwor5Y2a6IGeID4gaGFrdWJ1blwgOwor5ZCr5pyJID4gZ2FuJyd5dXVcIDsKK+WPjeeJqSA+IHRhbm1vbm9cIDsKK+WOn+efsyA+IGdlbnNla2lcIDsKK+WNnOiAhSA+IGJva3VzaGFcIDsKK+mzpemhniA+IGNob3VydWlcIDsKK+ensOWPtyA+IHNob3Vnb3VcIDsKK+W8gemboyA+IGJlbicnbmFuXCA7CivljbPntI0gPiBzb2t1bm91XCA7CivnpL7mpa0gPiBzaGFneW91XCA7CivmsJfohIggPiBraW15YWt1XCA7Civlj7fms6MgPiBnb3VreXV1XCA7CivnpLzmpb0gPiByZWlnYWt1XCA7CivnpZ7mlL8gPiBzaGluc2VpXCA7Civnn63ph50gPiB0YW5zaGluXCA7Civmr43opqogPiBoYWhhb3lhXCA7CivphbfnqI4gPiBrb2t1emVpXCA7Civnp7vlh7ogPiBpc2h1dHN1XCA7CivlvrPogrIgPiB0b2t1aWt1XCA7Civno4Hnn7MgPiBqaXNoYWt1XCA7CivmrovphbcgPiB6YW5rb2t1XCA7Civms5Xmpb0gPiBob3VyYWt1XCA7Civlj43nhacgPiBoYW5zaG91XCA7CivmtojljrsgPiBzaG91a3lvXCA7CivphpznlLcgPiBidW90b2tvXCA7CivnoLToo4IgPiBoYXJldHN1XCA7CivmsLTnsr4gPiBzdWlzaG91XCA7CivlkajlubQgPiBzaHV1bmVuXCA7CivolJHnp7AgPiBiZXNzaG91XCA7CivmtojljbAgPiBrZXNoaWluXCA7CivlkIzmpa0gPiBkb3VneW91XCA7Civnp4Hlob4gPiBzaGlqdWt1XCA7Civli6fos54gPiBrYW5zaG91XCA7CivmgqrmiK8gPiBpdGF6dXJhXCA7Civli5Xou7ggPiBkb3VqaWt1XCA7CivmtYXlraYgPiBzZW5nYWt1XCA7CivnoqfnqbogPiBoZWtpa3V1XCA7CivliojpoK0gPiBoZWtpdG91XCA7Civljprnm7ggPiBrb3VzaG91XCA7Civlipvpl5ggPiByaWtpdG91XCA7Civnn7PpgKAgPiBzZWtpem91XCA7CivmsrnmsJcgPiBhYnVyYWtlXCA7CivomK3lm70gPiByYW5rb2t1XCA7Civlv4Pnt5IgPiBzaGluY2hvXCA7Civlj6/msbogPiBrYWtldHN1XCA7Civli4fpgLIgPiB5dXVzaGluXCA7CivljbPnrZQgPiBzb2t1dG91XCA7CivlvLHovKkgPiBqYWt1aGFpXCA7CivpiYTlv4MgPiB0ZXNzaGluXCA7Civmr5vomasgPiBrZW11c2hpXCA7CivlvJTpioMgPiBjaG91anV1XCA7Civlj4LnhacgPiBzYW5zaG91XCA7CivmgYvmsrMgPiBrb2lrYXdhXCA7CivphY3ntaYgPiBoYWlreXV1XCA7CivlkIzmoLwgPiBkb3VrYWt1XCA7Civms6jmlocgPiBjaHV1bW9uXCA7Civlj7HmraMgPiBzaGlzc2VpXCA7CivolqzmlrkgPiB5YWt1aG91XCA7CivmtLvlrZcgPiBrYXRzdWppXCA7Civljp/nlLEgPiBnZW4nJ3l1dVwgOwor5ZOA5YilID4gYWliZXRzdVwgOwor5b6S6IqxID4gYWRhYmFuYVwgOwor6YCx6b2hID4gc2h1dXJlaVwgOwor56S85pyNID4gcmVpZnVrdVwgOwor6YG46ZuGID4gc2Vuc2h1dVwgOwor5oGL5rC0ID4ga29pbWl6dVwgOwor5ZOA5YiHID4gYWlzZXRzdVwgOwor5ZCI5qC8ID4gZ291a2FrdVwgOwor5oSB5ZiGID4gc2h1dXRhblwgOwor56Sm5qWtID4ga291Z3lvdVwgOwor5rW35Y6fID4gdW5hYmFyYVwgOwor6bq75bGRID4gYXNha3V6dVwgOwor5Y+k5rGgID4gZnVydWlrZVwgOwor6baP6IKJID4ga2VpbmlrdVwgOwor5rOV5pyNID4gaG91ZnVrdVwgOwor5YuY6LKsID4ga2Fuc2VraVwgOwor5oSa5YqjID4gZ3VyZXRzdVwgOwor5raI5YWJID4gc2hvdWtvdVwgOwor5Y2Y57SaID4gdGFua3l1dVwgOwor5ZCN5pyoID4gbWVpYm9rdVwgOwor55+t6Lu4ID4gdGFuamlrdVwgOwor5YuH6LqNID4geXV1eWFrdVwgOwor6Yac54q2ID4gc2h1dWpvdVwgOwor5ZCE5qChID4ga2FrdWtvdVwgOwor5Y+i5rC3ID4gc291aHlvdVwgOwor5oGL5q27ID4ga29pamluaVwgOwor5Yun6KqYID4ga2FuJyd5dXVcIDsKK+aCquW+syA+IGFrdXRva3VcIDsKK+awl+e1tiA+IGtpemV0c3VcIDsKK+m7kuWjhyA+IGtva3V0YW5cIDsKK+W/g+eulyA+IHNoaW56YW5cIDsKK+ayiOa+sSA+IGNoaW5kZW5cIDsKK+W8t+ixqiA+IGt5b3Vnb3VcIDsKK+aCquW9uSA+IGFrdXlha3VcIDsKK+WKiOmWiyA+IGhla2lrYWlcIDsKK+aCquW9oiA+IGFrdWdhdGFcIDsKK+W/g+etiyA+IHNoaW5raW5cIDsKK+WPpOatjCA+IGZ1cnV1dGFcIDsKK+iQvemBuCA+IHJha3VzZW5cIDsKK+ayiOa9nCA+IGNoaW5zZW5cIDsKK+elnuaFriA+IHNoaW5yeW9cIDsKK+WJr+mhjCA+IGZ1a3VkYWlcIDsKK+W8j+mDqCA+IHNoaWtpYnVcIDsKK+W8k+mBkyA+IGt5dXVkb3VcIDsKK+ato+mKmCA+IHNob3VtZWlcIDsKK+WNnOetriA+IGJva3V6ZWlcIDsKK+WRguW+iyA+IHJvcmV0c3VcIDsKK+iRiei6qyA+IHlvdXNoaW5cIDsKK+W+kOiEiCA+IGpvbXlha3VcIDsKK+aEn+WCtyA+IGthbnNob3VcIDsKK+eip+ecvCA+IGhla2lnYW5cIDsKK+W+jOiFuSA+IGF0b2JhcmFcIDsKK+a0i+W8kyA+IHlvdWt5dXVcIDsKK+eerOmWkyA+IHNodW5rYW5cIDsKK+efrei2syA+IHRhbnNva3VcIDsKK+ekuuaVmSA+IHNoaWt5b3VcIDsKK+WNv+ebuCA+IGtlaXNob3VcIDsKK+attOmBiiA+IHJla2l5dXVcIDsKK+ayiOa7niA+IGNoaW50YWlcIDsKK+WQjOaXjyA+IGRvdXpva3VcIDsKK+WJs+mdkiA+IGlyZXp1bWlcIDsKK+W9rOiUmiA+IGhpbnV0c3VcIDsKK+emheWvuiA+IHplbmRlcmFcIDsKK+W+jOiEmiA+IGF0b2FzaGlcIDsKK+aAnea9riA+IHNoaWNob3VcIDsKK+a1ruWKmyA+IGZ1cnlva3VcIDsKK+ejqOa7hSA+IG1hbWV0c3VcIDsKK+atu+i7uCA+IHNoaWppa3VcIDsKK+ato+mHkSA+IHNob3VraW5cIDsKK+a1geWfnyA+IHJ5dXVpa2lcIDsKK+emheWulyA+IHplbnNodXVcIDsKK+m2tOenkSA+IHRzdXJ1a2FcIDsKK+iXqeWtpiA+IGhhbmdha3VcIDsKK+aBreaVrCA+IGt5b3VrZWlcIDsKK+axjueUqCA+IGhhbicneW91XCA7CivmgKXmuJsgPiBreXV1Z2VuXCA7CivnpZ7mgKcgPiBzaGluc2VpXCA7CivmgpTmgpsgPiBrYWlzaHVuXCA7CivnpoXlraYgPiB6ZW5nYWt1XCA7Civlj5Tmr40gPiBzaHVrdWJvXCA7CivlvI/ovp4gPiBzaGlraWppXCA7Civnp4DlkJ8gPiBzaHV1Z2luXCA7CivpgY7po58gPiBrYXNob2t1XCA7Civljp/niIYgPiBnZW5iYWt1XCA7Civps6XpioMgPiBjaG91anV1XCA7CivliY3pq6ogPiBtYWVnYW1pXCA7CivlkoDlmrwgPiBzb3NoYWt1XCA7Civnp5/lgJ8gPiBzb3NoYWt1XCA7CivmrrromasgPiBzYXRjaHV1XCA7Civli6TooYwgPiBnb25neW91XCA7CivmgpblvrMgPiBoYWl0b2t1XCA7Civmr5LojYkgPiBkb2t1c291XCA7CivljbXnmb0gPiByYW5wYWt1XCA7Civnp4vliIYgPiBzaHV1YnVuXCA7Civlj4LmtJsgPiBzYW5yYWt1XCA7CivlkqzlgrcgPiBrb3VzaG91XCA7CivlvovnvqkgPiByaWNoaWdpXCA7Civnp4vlhrcgPiBzaHV1cmVpXCA7CivlvLfopoEgPiBreW91eW91XCA7Civph5Hmo5IgPiBrYW5hYm91XCA7CivoloTmmI4gPiBoYWt1bWVpXCA7CivluqfpqqggPiB6YWtvdHN1XCA7CivliaPpm6MgPiBrZW4nJ25hblwgOwor5b6056iOID4gY2hvdXplaVwgOwor5b6p562UID4gZnVrdXRvdVwgOwor5YuF6KutID4gY2hva3V5dVwgOwor5Yq06LODID4gcm91Y2hpblwgOwor5byx6KaWID4gamFrdXNoaVwgOwor5ZCI5o6MID4gZ2Fzc2hvdVwgOwor5YuF6KqeID4gY2hva3Vnb1wgOwor55+t6Kq/ID4gdGFuY2hvdVwgOwor5Y+45pWZID4gc2hpa3lvdVwgOwor5rKI5q6/ID4gY2hpbmRlblwgOwor6bWs57+8ID4gaG91eW9rdVwgOwor5YuF6KixID4gY2hva2t5b1wgOwor55+t6KmVID4gdGFucHlvdVwgOwor56eY5LuPID4gaGlidXRzdVwgOwor5oCl5q27ID4ga3l1dXNoaVwgOwor5by36KGMID4ga3lvdWtvdVwgOwor5oCn5qyyID4gc2VpeW9rdVwgOwor5rW35LqAID4gdW1pZ2FtZVwgOwor5q+S6IW6ID4gZG9rdXNlblwgOwor5Y+y5paZID4gc2hpcnlvdVwgOwor5rC355SwID4gaHlvdWRlblwgOwor5b+D55y8ID4gc2hpbmdhblwgOwor6YKB6YCyID4gbWFpc2hpblwgOwor5Y+k5pysID4gZnVydWJvblwgOwor56K654S2ID4ga2FrdXplblwgOwor5rSL5a2mID4geW91Z2FrdVwgOwor5b256ICFID4geWFrdXNoYVwgOwor5oOw5YqbID4gZGFyeW9rdVwgOwor5Y+N5qeYID4ga2Fpc2FtYVwgOwor5rCR56aPID4gbWlucHVrdVwgOwor5YmN6aGNID4gemVuZ2FrdVwgOwor5rW35LitID4ga2FpY2h1dVwgOwor5b6M57aaID4ga291em9rdVwgOwor5Y+k5puyID4ga29reW9rdVwgOwor6YGF6ZycID4gb3Nvamltb1wgOwor5ZGo5ZueID4gc2h1dWthaVwgOwor5rSb5aSWID4gcmFrdWdhaVwgOwor5Y2K56WeID4gaGFuc2hpblwgOwor5b2T6JC9ID4gdG91cmFrdVwgOwor6YWS55mWID4gc2h1aGVraVwgOwor6YKq6KqsID4gamFzZXRzdVwgOwor5qyg6ZmkID4ga2V0c3Vqb1wgOwor5rCP56WeID4gdWppZ2FtaVwgOwor6YeR5pucID4ga2luJyd5b3VcIDsKK+auteiQvSA+IGRhbnJha3VcIDsKK+W6p+mjnyA+IHphc2hva3VcIDsKK+WRu+WQnyA+IHNoaW5naW5cIDsKK+mJhOWjgSA+IHRlcHBla2lcIDsKK+eni+S9nCA+IGFraXNha3VcIDsKK+WNg+eniyA+IHNlbnNodXVcIDsKK+WMuueriyA+IGt1cml0c3VcIDsKK+W/oOeKrCA+IGNodXVrZW5cIDsKK+WQhOaJgCA+IGtha3VzaG9cIDsKK+WKh+mBkyA+IGdla2lkb3VcIDsKK+aDqOWKhyA+IHNhbmdla2lcIDsKK+aBi+aWhyA+IGtvaWJ1bWlcIDsKK+mKg+WCtyA+IGp1dXNob3VcIDsKK+azleaCpiA+IGhvdWV0c3VcIDsKK+efpeimmiA+IGNoaWtha3VcIDsKK+mCpuiosyA+IGhvdXlha3VcIDsKK+awtOeQgyA+IHN1aWt5dXVcIDsKK+engeS/oSA+IHNoaXNoaW5cIDsKK+WKm+i1sCA+IHJpa2lzb3VcIDsKK+a1puS6uiA+IHVyYWJpdG9cIDsKK+WPjeaguCA+IGhhbmtha3VcIDsKK+W5vemzpSA+IHl1dWNob3VcIDsKK+iWrOW4qyA+IHlha3VzaGlcIDsKK+elnuWunSA+IHNoaW5wb3VcIDsKK+elnuWumCA+IHNoaW5rYW5cIDsKK+elneWutCA+IHNodWt1ZW5cIDsKK+mKgOWBtCA+IGdpbmdhd2FcIDsKK+WPluabvyA+IHRvcmlrYWVcIDsKK+W8lOipniA+IGNob3VzaGlcIDsKK+WNoOeUqCA+IHNlbicneW91XCA7CivliY3pmbMgPiB6ZW5jaGluXCA7Civnn7PonYsgPiBzZWtpcm91XCA7Civmrbvop5IgPiBzaGlrYWt1XCA7Civok6znlJ8gPiB5b21vZ2l1XCA7CivmtYHli5UgPiByeXV1ZG91XCA7CivljoTngb0gPiB5YWt1c2FpXCA7Civlj6vmj5sgPiBreW91a2FuXCA7CivmgKDmpa0gPiB0YWlneW91XCA7CivmrbToqKogPiByZWtpaG91XCA7CivlkIzlv4MgPiBkb3VzaGluXCA7Civljp/ms6ggPiBnZW5jaHV1XCA7CivpgIbpsZcgPiBnZWtpcmluXCA7Civnn6XooYwgPiBjaGlneW91XCA7CivmgKfmoLwgPiBzZWlrYWt1XCA7CivlkIzlvbkgPiBkb3V5YWt1XCA7CivphbjmvL8gPiBob296dWtpXCA7CivlkInlvrQgPiBraXRjaG91XCA7CivmrbTopqcgPiByZWtpcmFuXCA7CivmsLTniaIgPiBtaXp1cm91XCA7CivmsLTniZsgPiBzdWlneXV1XCA7CivlkIjlvpMgPiBnYXNzaG91XCA7CivljYrnmb0gPiBoYW5wYWt1XCA7Civps6Xosp0gPiB0b3JpZ2FpXCA7CivmsaDmsrwgPiBjaGlzaG91XCA7CivphY3nkIMgPiBoYWlreXV1XCA7Civlub3prLEgPiB5dXV1dHN1XCA7CivmsLTniIYgPiBzdWliYWt1XCA7CivljJfnsbMgPiBob2t1YmVpXCA7CivljZPnlKggPiB0YWt1eW91XCA7CivolYPmpJIgPiBiYW5zaG91XCA7Civlib3ou70gPiBoeW91a2luXCA7Civms6jlsIQgPiBjaHV1c2hhXCA7CivlvrTnlKggPiBjaG91eW91XCA7CivphZTni4IgPiBzdWlreW91XCA7Civlko7kurogPiB0b2dhbmluXCA7CivokYnonIIgPiBoYWJhY2hpXCA7Civlv4PnjL8gPiBzaGluJydlblwgOwor5b6z55SoID4gdG9rdXlvdVwgOwor5oGw5bmFID4ga2FwcHVrdVwgOwor6L+36bOlID4gbWVpY2hvdVwgOwor6YCa6aKoID4gdHN1dWZ1dVwgOwor5Y2B55uuID4ganV1bW9rdVwgOwor6JaE5oOFID4gaGFrdWpvdVwgOwor5q2j6Kq/ID4gc2VpY2hvdVwgOwor5ZCM5bitID4gZG91c2VraVwgOwor5Y+C5pydID4gc2FuY2hvdVwgOwor55yf6buSID4gbWFra3Vyb1wgOwor5Yqj6KeSID4gcmVra2FrdVwgOwor6Jas5a6zID4geWFrdWdhaVwgOwor5oGi5b6pID4ga2FpZnVrdVwgOwor6YCx6ZaTID4gc2h1dWthblwgOwor56aE5ZG9ID4gcm9rdW1laVwgOwor5Y+k5ouZID4ga29zZXRzdVwgOwor5Yi76ZmQID4ga29rdWdlblwgOwor5Y+O5paCID4gc2h1dXJlblwgOwor56We5aSJID4gc2hpbnBlblwgOwor5rC354K5ID4gaHlvdXRlblwgOwor5byB6Ki8ID4gYmVuc2hvdVwgOwor5rC354KtID4gaHlvdXRhblwgOwor5q2O6LOeID4gdGFuc2hvdVwgOwor5ZC45aG1ID4ga3l1dWppblwgOwor5ZCb5a+1ID4ga3VuY2hvdVwgOwor5bmy6a2aID4gaG9zaGl1b1wgOwor5Y+O5pSvID4gc2h1dXNoaVwgOwor5Y+O5pSsID4gc2h1dXJhblwgOwor5ZCE5bqXID4ga2FrdXRlblwgOwor5Y2T55CDID4gdGFra3l1dVwgOwor5oGQ5oWMID4ga3lvdWtvdVwgOwor5Y+j5om/ID4ga291c2hvdVwgOwor5Y6z5qC8ID4gZ2Vua2FrdVwgOwor6JaE5b+XID4gaGFrdXNoaVwgOwor56aA5ZGKID4gcmlua29rdVwgOwor5ZGo5YiwID4gc2h1dXRvdVwgOwor5rGX5rC0ID4gYXNlbWl6dVwgOwor5YyX56uvID4gaG9rdXRhblwgOwor5Y2Y54usID4gdGFuZG9rdVwgOwor5ZCE5biCID4ga2FrdXNoaVwgOwor5Y+N5pKDID4gaGFuZ2VraVwgOwor5rWB5L2TID4gcnl1dXRhaVwgOwor6buS5Lq6ID4ga29rdWppblwgOwor5b2856iLID4gYXJlaG9kb1wgOwor56S+5a6FID4gc2hhdGFrdVwgOwor5rWB5LyaID4gcnl1dWthaVwgOwor5Y2K55CDID4gaGFua3l1dVwgOwor6YGK6YOtID4geXV1a2FrdVwgOwor6YGT6L66ID4gbWljaGliZVwgOwor5bqX6ZW3ID4gdGVuY2hvdVwgOwor5oGS5b+DID4ga291c2hpblwgOwor5q2m6KGTID4gYnVqdXRzdVwgOwor5q6L6I+KID4gemFuZ2lrdVwgOwor5ZCN5bCGID4gbWVpc2hvdVwgOwor5rKh5oiRID4gYm90c3VnYVwgOwor5ZCM5bCPID4gZG91c2hvdVwgOwor5rWB5LqhID4gcnl1dWJvdVwgOwor5Yid6Z+zID4gaGF0c3VuZVwgOwor6YO956uLID4gdG9yaXRzdVwgOwor5ZCO5a6uID4ga291a3l1dVwgOwor5Yil6ZuiID4gYmV0c3VyaVwgOwor5b6T55qEID4ganV1dGVraVwgOwor5ZG95LitID4gbWVpY2h1dVwgOwor56C056u5ID4gaGFjaGlrdVwgOwor6JK855m9ID4gc291aGFrdVwgOwor5rC05ru0ID4gc3VpdGVraVwgOwor6YeP5oSfID4gcnlvdWthblwgOwor5rOV5a2mID4gaG91Z2FrdVwgOwor5YqH6KuWID4gZ2VraXJvblwgOwor5Y2S54i+ID4gc290c3VqaVwgOwor5YqH6KuHID4gZ2VraWRhblwgOwor5oCd5paZID4gc2hpcnlvdVwgOwor56Gs55CDID4ga291a3l1dVwgOwor5Yqb6KGMID4gcnlva2tvdVwgOwor5ZCM5a6XID4gZG91c2h1dVwgOwor6JWD5pePID4gYmFuem9rdVwgOwor56aB5YmHID4ga2luc29rdVwgOwor6YG46KmVID4gc2VucHlvdVwgOwor56Sr5bKpID4gcmVraWdhblwgOwor5ZCE5bGkID4ga2FrdXNvdVwgOwor5Yil6ZmiID4gYmV0c3VpblwgOwor5ZCM5a2mID4gZG91Z2FrdVwgOwor56OB5qW1ID4gamlreW9rdVwgOwor6YCa6ZaiID4gdHN1dWthblwgOwor5Yud6ICFID4gc2hvdXNoYVwgOwor5YqH6KmpID4gZ2VraXNoaVwgOwor5bmy6aOvID4gaG9zaGlpaVwgOwor6YmE5YmHID4gdGVzc29rdVwgOwor6YGF6YCfID4gY2hpc29rdVwgOwor56Kn5rC0ID4gaGVraXN1aVwgOwor55+z6Ie8ID4gaXNoaXVzdVwgOwor5bm06aGNID4gbmVuZ2FrdVwgOwor5by36IKpID4ga3lvdWtlblwgOwor5Y+w5bizID4gZGFpY2hvdVwgOwor5rC05rexID4gc3Vpc2hpblwgOwor5rC35rW3ID4gaHlvdWthaVwgOwor5rOw5Zu9ID4gdGFpa29rdVwgOwor5Yil6ZaTID4gYmV0c3VtYVwgOwor5rGB5rCXID4gc2hpcnVrZVwgOwor5rSb5YaFID4gcmFrdW5haVwgOwor5q+O56eSID4gbWFpYnlvdVwgOwor5b6u54axID4gYmluZXRzdVwgOwor5rC05rW0ID4gc3VpeW9rdVwgOwor5oOR5LmxID4gd2FrdXJhblwgOwor6JC96JGJID4gcmFrdXlvdVwgOwor5Yqg6JmQID4ga2FneWFrdVwgOwor5by36ICFID4ga3lvdXNoYVwgOwor5Y+k5byPID4ga29zaGlraVwgOwor6JK455WZID4gam91cnl1dVwgOwor6YeN5b+DID4ganV1c2hpblwgOwor5Y2K54afID4gaGFuanVrdVwgOwor5rC05rWBID4gc3Vpcnl1dVwgOwor55yf6auEID4gc2hpbnp1aVwgOwor5YmN6YCyID4gemVuc2hpblwgOwor5YmN6YCxID4gemVuc2h1dVwgOwor5Y6f5pyoID4gZ2VuYm9rdVwgOwor6YeN5b25ID4ganV1eWFrdVwgOwor5Y+b5b+DID4gaGFuc2hpblwgOwor5Yuk57aaID4ga2luem9rdVwgOwor6YC86L+rID4gaGlwcGFrdVwgOwor5Y2K54S8ID4gaGFuc2hvdVwgOwor56We5ZOBID4gc2hpbnBpblwgOwor5Y6a5p2/ID4gYXRzdWl0YVwgOwor5rKh5b6MID4gYm90c3Vnb1wgOwor5rOl5Z2KID4gZG9yb2JvdVwgOwor5byx6ICFID4gamFrdXNoYVwgOwor5Y215q67ID4gcmFua2FrdVwgOwor6YeR5bmzID4ga2lucGlyYVwgOwor5Y2x5rCXID4gYWJ1bmFnZVwgOwor5oCl5omAID4ga3l1dXNob1wgOwor5q6756u/ID4ga2FyYXNhb1wgOwor6YaH5py0ID4ganVuYm9rdVwgOwor5Y+W5b6XID4gc2h1dG9rdVwgOwor5Y2z5q27ID4gc29rdXNoaVwgOwor6bSH6ImyID4gdG9raWlyb1wgOwor5Y+w5bC7ID4gZGFpamlyaVwgOwor5ZCb5Zu9ID4ga3Vua29rdVwgOwor5oCn5oW+ID4gc2VpeW9rdVwgOwor6L+96ZqPID4gdHN1aXp1aVwgOwor5Yuy56ugID4ga3Vuc2hvdVwgOwor6YCy6YCAID4gc2hpbnRhaVwgOwor6YCj6YePID4gcmVucnlvdVwgOwor5YmN6LqrID4gemVuc2hpblwgOwor5Y6f5paZID4gZ2VucnlvdVwgOwor5q276IetID4gc2hpc2h1dVwgOwor6YKR6JC9ID4geXV1cmFrdVwgOwor5Ymv6KmeID4gZnVrdXNoaVwgOwor5ZCI5aOBID4gZ2FwcGVraVwgOwor5YmN6LmkID4gemVuc2hvdVwgOwor5Y+y5a2mID4gc2hpZ2FrdVwgOwor5Y+N5b+cID4gaGFuJydub3VcIDsKK+WHuumhjSA+IGRlYml0YWlcIDsKK+WIuemCoyA+IHNldHN1bmFcIDsKK+W5tOmVtyA+IG5lbmNob3VcIDsKK+WPjeW+qSA+IGhhbnB1a3VcIDsKK+WHuumgrSA+IHNodXR0b3VcIDsKK+WIh+mZpCA+IHNldHN1am9cIDsKK+iRreewgCA+IHlvc2hpenVcIDsKK+WHtumhniA+IGt5b3VydWlcIDsKK+eih+aziiA+IHRlaWhha3VcIDsKK+aApeaCoyA+IGt5dXVrYW5cIDsKK+WJjei2syA+IG1hZWFzaGlcIDsKK+WQn+WUsSA+IGdpbnNob3VcIDsKK+a0i+WCmCA+IHlvdWdhc2FcIDsKK+eglOeptiA+IGtlbmt5dXVcIDsKK+mAsui7jSA+IHNoaW5ndW5cIDsKK+aAp+aApSA+IHNlaWt5dXVcIDsKK+emgeS4rSA+IGtpbmNodXVcIDsKK+elnuWJoyA+IHNoaW5rZW5cIDsKK+mFkuavkiA+IHNodWRva3VcIDsKK+elnuWJjSA+IHNoaW56ZW5cIDsKK+mHkeWxniA+IGtpbnpva3VcIDsKK+aApeaApyA+IGt5dXVzZWlcIDsKK+iRpuewviA+IHlvc2hpenVcIDsKK+iWrOWTgSA+IHlha3VoaW5cIDsKK+ayiOaAnSA+IGNoaW5zaGlcIDsKK+WNl+a0iyA+IG5hbicneW91XCA7CivlkIzlm70gPiBkb3Vrb2t1XCA7CivmrbvogokgPiBzaGluaWt1XCA7CivmgKflvrQgPiBzZWljaG91XCA7CivlubPpkb8gPiBoZWlzYWt1XCA7CivokabnsIAgPiB5b3NoaXp1XCA7Civli53nrpcgPiBzaG91c2FuXCA7Civph5HlsIYgPiBraW5zaG91XCA7CivmgJ3mg5EgPiBvbW93YWt1XCA7Civps7boibIgPiB0b2JpaXJvXCA7Civnn7Pntr8gPiBzZWtpbWVuXCA7CivokL3og4YgPiByYWt1dGFuXCA7Civps6XokawgPiBjaG91c291XCA7CivljbHmpbUgPiBraWt5b2t1XCA7CivmsqLlsbEgPiB0YWt1c2FuXCA7CivlvpfngrkgPiB0b2t1dGVuXCA7Civlj4nluqsgPiBhemVrdXJhXCA7CivphbfmmpEgPiBrb2t1c2hvXCA7Civlj4zluYUgPiBzb3VmdWt1XCA7CivlvZPnorogPiB0b3VrYWt1XCA7CivliLrouqsgPiBzYXNoaW1pXCA7CivluoPph48gPiBrb3VyeW91XCA7CivlkITlnLAgPiBrYWt1Y2hpXCA7CivoloTloqggPiB1c3V6dW1pXCA7Civms4rlnLAgPiBoYWt1Y2hpXCA7CivljqjmiL8gPiBjaHV1Ym91XCA7Civlj5vlsIYgPiBoYW5zaG91XCA7CivlkITlm70gPiBrYWtrb2t1XCA7CivokabnrJsgPiBhc2hpYnVlXCA7Civph43lrp0gPiBjaG91aG91XCA7Civph4/lrZAgPiByeW91c2hpXCA7CivluZXpm7sgPiBtYWt1ZGVuXCA7CivliaXoo70gPiBoYWt1c2VpXCA7CivphpzmhYsgPiBzaHV1dGFpXCA7Civlip/oh6MgPiBrb3VzaGluXCA7Civnn63ntaEgPiB0YW5yYWt1XCA7CivolqzljIUgPiB5YWt1aG91XCA7CivmsJHms4ogPiBtaW5wYWt1XCA7CivnpL7lkYogPiBzaGFrb2t1XCA7CivlvIHohpwgPiBiZW5tYWt1XCA7CivpgLLosqIgPiBzaGlua291XCA7CivluLjpp5AgPiBqb3VjaHV1XCA7CivphpzmgqogPiBzaHV1YWt1XCA7Civmsbrlv4MgPiBrZXNzaGluXCA7CivnoJXnn7MgPiBzYWlzZWtpXCA7CivmraPohbkgPiBzZWlmdWt1XCA7Civps6noiI4gPiBreXV1c2hhXCA7CivolqzliaQgPiB5YWt1emFpXCA7Civmr5TnjocgPiBoaXJpdHN1XCA7CivlkIjllLEgPiBnYXNzaG91XCA7Civli77nlZkgPiBrb3VyeXV1XCA7CivliKXovp4gPiBiZXRzdWppXCA7CivlvIrnv5IgPiBoZWlzaHV1XCA7CivlvbnniZsgPiBla2lneXV1XCA7CivpgI3pgaUgPiBzaG91eW91XCA7CivmsrzlnLAgPiBudW1hY2hpXCA7CivpgI3pgZkgPiBzaG91eW91XCA7CivojqvpgKMgPiBiYWt1cmVuXCA7Civms5XlkI0gPiBob3VteW91XCA7Civlu7foh6MgPiB0ZWlzaGluXCA7Civnn7PnrY0gPiBzZWtpanVuXCA7CivnpZ7kvZMgPiBzaGludGFpXCA7Civlj47lrrkgPiBzaHV1eW91XCA7CivmgqDkuYUgPiB5dXVreXV1XCA7Civmsrvlm70gPiBjaGlrb2t1XCA7CivliJ3pgJ8gPiBzaG9zb2t1XCA7CivlkI3lj7cgPiBteW91Z291XCA7Civlv4Pmo5IgPiBzaGluYm91XCA7CivnpZ7ku5kgPiBzaGluc2VuXCA7CivpgLLorJsgPiBzaGlua291XCA7Civms5XljZogPiBob3VoYWt1XCA7CivnpZ7kurogPiBzaGluamluXCA7CivpgIbpgYsgPiBneWFrdXVuXCA7CivnnInpm6ogPiBiaXNldHN1XCA7Civpgbjoia8gPiBzZW5yeW91XCA7Civlh7jpj6EgPiB0b2treW91XCA7CivokrjmupwgPiBqb3VyeXV1XCA7CivlkIjlj6MgPiBhaWt1Y2hpXCA7CivnpL7liYcgPiBzaGFzb2t1XCA7CivmrJ3ooYAgPiB1a2tldHN1XCA7CivmsLTmmbYgPiBzdWlzaG91XCA7CivojZLpp5IgPiBhcmFnb21hXCA7CivlkI3ljKAgPiBtZWlzaG91XCA7CivmsLjml6UgPiBlaWppdHN1XCA7CivmrrrnlJ8gPiBzZXNzaG91XCA7CivljbPmlq0gPiBzb2t1ZGFuXCA7CivliIbph50gPiBmdW5zaGluXCA7CivljYPmrbMgPiBjaGl0b3NlXCA7CivliIbph48gPiBidW5yeW91XCA7CivlkI3li50gPiBtZWlzaG91XCA7CivliKXot68gPiBiZXRzdXJvXCA7Civms5XlipsgPiBob3VyaWtpXCA7Civmr5TnhrEgPiBoaW5ldHN1XCA7Civli6TnmocgPiBraW4nJ25vdVwgOwor5by356GsID4ga3lvdWtvdVwgOwor5rOV5YmHID4gaG91c29rdVwgOwor6YCy6KiAID4gc2hpbmdlblwgOwor5buD6JmaID4gaGFpa3lvXCA7Civlv7/mgJIgPiBmdW4nJ251XCA7CivpgIHov44gPiBzb3VnZWlcIDsKK+i/hembtyA+IGppbnJhaVwgOwor5b+X5pONID4gc2hpc291XCA7CivpgJrosqggPiB0c3V1a2FcIDsKK+WQjeWIuiA+IG1laXNoaVwgOwor5ZCM5YmNID4gZG91emVuXCA7CivnpLzlhbggPiByZWl0ZW5cIDsKK+WJjeihmyA+IHplbicnZWlcIDsKK+efouetiCA+IHlhaGF6dVwgOwor6YeR5Z2RID4ga2lua291XCA7Civljp/lvaIgPiBnZW5rZWlcIDsKK+W+qeaoqSA+IGZ1a2tlblwgOwor5YmN6KGMID4gemVua291XCA7CivlkI3liIYgPiBtZWlidW5cIDsKK+W9oueKtiA+IGtlaWpvdVwgOwor5YiX6LuKID4gcmVzc2hhXCA7CivlkI3liIAgPiBtZWl0b3VcIDsKK+W7g+iXqSA+IGhhaWhhblwgOwor6YWN5pysID4gaGFpaG9uXCA7Civljprlv5cgPiBrb3VzaGlcIDsKK+iWhOWRsyA+IGhha3VtaVwgOwor56S+5YOnID4gc2hhc291XCA7CivlkIjliaQgPiBnb3V6YWlcIDsKK+WQjOWHpiA+IGRvdXNob1wgOwor5rOV5YW4ID4gaG91dGVuXCA7CivnpL7lgrUgPiBzaGFzYWlcIDsKK+W5tOi8qiA+IG5lbnJpblwgOwor5bm06LypID4gbmVucGFpXCA7Civno4Hlv4MgPiBqaXNoaW5cIDsKK+WIhumBoyA+IGJ1bmtlblwgOwor5Y+L5aW9ID4geXV1a291XCA7Civli6TnlaogPiBraW5iYW5cIDsKK+efs+eikSA+IHNla2loaVwgOwor5ZCI5YiHID4gZ2Fzc2FpXCA7CivpgIDou6IgPiB0YWl0ZW5cIDsKK+ato+e3qCA+IHNlaWhlblwgOwor5Y+N5aSJID4gaGFucGVuXCA7Civlj7HlkqQgPiBzaGl0dGFcIDsKK+WQjOWFmiA+IGRvdXRvdVwgOwor5bm96LajID4geXV1c2h1XCA7CivliqDntaYgPiBrYWt5dXVcIDsKK+WQjeWEqiA+IG1laXl1dVwgOwor5Y6z5bCBID4gZ2VucHV1XCA7CivluK/pm7sgPiB0YWlkZW5cIDsKK+W+i+azlSA+IHJpcHBvdVwgOwor5YeM6ZuyID4gcnlvdXVuXCA7Civlv6vmhJ8gPiBrYWlrYW5cIDsKK+mBuOiAgyA+IHNlbmtvdVwgOwor55+i56iuID4geWFkYW5lXCA7CivmsY7mhJsgPiBoYW4nJ2FpXCA7CivlvLfnm5cgPiBnb3V0b3VcIDsKK+WOs+WvkiA+IGdlbmthblwgOwor6YeP5ZmoID4gcnlvdWtpXCA7CivlkI3lg6cgPiBtZWlzb3VcIDsKK+ato+e1sSA+IHNlaXRvdVwgOwor6YGK6JWpID4geXV1dG91XCA7CivmsbrlrpogPiBrZXR0ZWlcIDsKK+iSuOawkSA+IGpvdW1pblwgOwor5by+55eVID4gZGFua29uXCA7Civph43lmbggPiBqdXV0b25cIDsKK+i/gumXiiA+IHVrYXRzdVwgOwor6YCg6KmjID4gem91a2VpXCA7Civmt6HjgIUgPiB0YW50YW5cIDsKK+WOs+WuiCA+IGdlbnNodVwgOwor5Y+w5ZCNID4gdGFpbWVpXCA7CivljrPlrZggPiBnZW5zb25cIDsKK+ato+ezuyA+IHNlaWtlaVwgOwor6YKq56WeID4gamFzaGluXCA7CivovrrpmawgPiBoZW5zdXVcIDsKK+mAoOiogCA+IHpvdWdlblwgOwor6YCD6LWwID4gdG91c291XCA7CivpgJroqp4gPiB0c3V1Z29cIDsKK+WIhui8iSA+IGJ1bnNhaVwgOwor6YW45oCnID4gc2Fuc2VpXCA7Civnm7jplqIgPiBzb3VrYW5cIDsKK+W+jOautSA+IGtvdWRhblwgOwor56S+5LyaID4gc2hha2FpXCA7CivpgJroqbEgPiB0c3V1d2FcIDsKK+W+qeagoSA+IGZ1a2tvdVwgOwor5ZCM5YCkID4gZG91Y2hpXCA7CivliIfouqsgPiBraXJpbWlcIDsKK+WQm+S4uyA+IGt1bnNodVwgOwor6I2J6Z6LID4gd2FyYWppXCA7Civms5XkvosgPiBob3VyZWlcIDsKK+ays+WOnyA+IGthd2FyYVwgOwor5Yi26KOBID4gc2Vpc2FpXCA7CivljZfmlrkgPiBuYW5wb3VcIDsKK+WMl+a1tyA+IGhva2thaVwgOwor5b+g5oSbID4gY2h1dWFpXCA7Civph5Hlk6EgPiBraW4nJ2luXCA7CivljZjmlocgPiB0YW5idW5cIDsKK+eiuuW6piA+IGtha3Vkb1wgOwor5rCR5pybID4gbWluYm91XCA7CivoloTliKkgPiBoYWt1cmlcIDsKK+ekvuS6pCA+IHNoYWtvdVwgOwor5b6u5pyNID4gYmlmdWt1XCA7CivmsYLmhJsgPiBreXV1YWlcIDsKK+WNmOaVsCA+IHRhbnN1dVwgOwor5b+F5pC6ID4gaGlra2VpXCA7Civph5Hlk4EgPiBraW5waW5cIDsKK+WKo+etiSA+IHJldHRvdVwgOwor55uk6Z2iID4gYmFubWVuXCA7CivljKDmsJcgPiBzaG91a2lcIDsKK+WLleeUoyA+IGRvdXNhblwgOwor5bu257SNID4gZW4nJ25vdVwgOwor56CV54mHID4gc2FpaGVuXCA7CivnnJ/pgIYgPiBtYXNha2FcIDsKK+WQjOS9kyA+IGRvdXRhaVwgOwor5rKz5YyXID4ga2Fob2t1XCA7CivnpL7kuLsgPiBzaGFzaHVcIDsKK+WNl+aUryA+IG5hbnNoaVwgOwor5Y+j5ZC7ID4ga291ZnVuXCA7CivlvL7nkLQgPiBkYW5raW5cIDsKK+W4q+mWgCA+IHNoaW1vblwgOwor5rCX5pepID4ga2liYXlhXCA7Civms5Xku6QgPiBob3VyZWlcIDsKK+aApeWgtCA+IGt5dXViYVwgOwor5ZCM5Ly0ID4gZG91aGFuXCA7CivpgKPooaEgPiByZW5rb3VcIDsKK+WPo+WQnyA+IGtvdWdpblwgOwor6YCj6KGMID4gcmVua291XCA7Civms5XkurogPiBob3VqaW5cIDsKK+WGt+mdmSA+IHJlaXNlaVwgOwor6L+U6YeRID4gaGVua2luXCA7Civlj4LloIIgPiBzYW5kb3VcIDsKK+W/q+W8gSA+IGthaWJlblwgOwor5b+g5oGVID4gY2h1dWpvXCA7Civlj6zli58gPiBzaG91Ym9cIDsKK+WQiOS9tSA+IGdvdWhlaVwgOwor5ZCQ5LmzID4gdG9ueXV1XCA7Civov7fotbAgPiBtZWlzb3VcIDsKK+ato+etlCA+IHNlaXRvdVwgOwor5ZCN5Lq6ID4gbWVpamluXCA7CivlkIjkvZMgPiBnYXR0YWlcIDsKK+iWhOWFiSA+IGhha2tvdVwgOwor6JST5bu2ID4gbWFuJydlblwgOwor5b2T54S2ID4gdG91emVuXCA7Civlj43lmawgPiBoYW56ZWlcIDsKK+WOn+WvuCA+IGdlbnN1blwgOwor5ZCM5LuBID4gZG91amluXCA7CivlkIzkurogPiBkb3VuaW5cIDsKK+WFuOm6lyA+IHRlbnJlaVwgOwor5ZCR5LiKID4ga291am91XCA7Civlt6Ppto8gPiBzdWRvcmlcIDsKK+WNgeacrCA+IGp1cHBvblwgOwor5buD6ImmID4gaGFpa2FuXCA7CivmsZ/lsbEgPiBrb3V6YW5cIDsKK+W6p+iWrCA+IHpheWFrdVwgOwor6JCO57iuID4gaXNodWt1XCA7Civph43lkIggPiBqdXVnb3VcIDsKK+W6g+iogCA+IGtvdWdlblwgOwor5buD6Ii5ID4gaGFpc2VuXCA7Civlu5DogqUgPiBreXV1aGlcIDsKK+WQjOS5lyA+IGRvdWpvdVwgOwor5b+c5oClID4gb3VreXV1XCA7Civph5HljbAgPiBraW4nJ2luXCA7CivpgYroirggPiB5dXVnZWlcIDsKK+aui+eXlSA+IHphbmtvblwgOwor5YmN6JGXID4gemVuY2hvXCA7Civoj5bokrIgPiBzaG91YnVcIDsKK+mHjuWOnyA+IG5vaGFyYVwgOwor5rG65aOKID4ga2Vra2FpXCA7Civljp/lrZAgPiBnZW5zaGlcIDsKK+avm+awiCA+IG1vdXNlblwgOwor5Y2g5ougID4gc2Vua3lvXCA7CivlkIzkuIogPiBkb3Vqb3VcIDsKK+WIpeijvSA+IGJlc3NlaVwgOwor5byK56S+ID4gaGVpc2hhXCA7Civmr5Tms4EgPiBoaWt5b3VcIDsKK+mAj+imliA+IHRvdXNoaVwgOwor5Y2K5pWwID4gaGFuc3V1XCA7CivphpzlpbMgPiBzaHV1am9cIDsKK+WKueebriA+IGtpa2ltZVwgOwor5rCR5pS/ID4gbWluc2VpXCA7Civps7Tnpr0gPiBtZWlraW5cIDsKK+awkeaUviA+IG1pbnBvdVwgOwor6L+R6YO3ID4ga2luZ291XCA7CivphZLmiYsgPiBzYWthdGVcIDsKK+i/lOmChCA+IGhlbmthblwgOwor5byT55+iID4geXVtaXlhXCA7CivliY3oj5wgPiB6ZW5zYWlcIDsKK+WPjeWVjyA+IGhhbm1vblwgOwor5Yem6YGHID4gc2hvZ3V1XCA7Civlv4PmioAgPiBzaGluZ2lcIDsKK+i/kemDiiA+IGtpbmtvdVwgOwor6JaE5YCWID4gaGFra291XCA7CivliJ3oposgPiBzaG9rZW5cIDsKK+asoOiIqiA+IGtla2tvdVwgOwor55uX6Zu7ID4gdG91ZGVuXCA7Civlt6jpr6ggPiBreW9nZWlcIDsKK+ayg+WcnyA+IHlva3Vkb1wgOwor5be76aaWID4ga2Fuc2h1XCA7Civlh7rotrMgPiBkZWFzaGlcIDsKK+aui+eUnyA+IHphbnNlaVwgOwor5YyX5qynID4gaG9rdW91XCA7Civnm5fpm6MgPiB0b3VuYW5cIDsKK+WKoOemhCA+IGthcm9rdVwgOwor5Y+35L+4ID4gZ291aG91XCA7Civmrbvnm7ggPiBzaGlzb3VcIDsKK+WNseaApSA+IGtpa3l1dVwgOwor5Ymb6IeGID4gZ291b2t1XCA7CivlvL7niYcgPiBkYW5wZW5cIDsKK+ecjOmBkyA+IGtlbmRvdVwgOwor5Y2z5b+cID4gc29rdW91XCA7CivmrabnpZ4gPiBidXNoaW5cIDsKK+i/lOmAgSA+IGhlbnNvdVwgOwor5b6p5pS5ID4gZnVra2FpXCA7Civph5HliZsgPiBrb25nb3VcIDsKK+W5o+iyoiA+IGhlaWtvdVwgOwor6YWN5omAID4gaGFpc2hvXCA7CivljbXlvaIgPiByYW5rZWlcIDsKK+mHkeWIuCA+IGtpbmtlblwgOwor6YWU5oWLID4gc3VpdGFpXCA7CivlubvoppYgPiBnZW5zaGlcIDsKK+W3qOmtgSA+IGt5b2thaVwgOwor6JWD5ZywID4gYmFuY2hpXCA7CivljYHmlbAgPiBqdXVzdXVcIDsKK+axveWcpyA+IGtpYXRzdVwgOwor5Yeh6YCAID4gYm9udGFpXCA7CivpgZTogIUgPiB0YXNzaGFcIDsKK+W+k+adpSA+IGp1dXJhaVwgOwor6YG4566hID4gc2Vua2FuXCA7CivliIborbIgPiBidW5qb3VcIDsKK+WPuOS8miA+IHNoaWthaVwgOwor5b6h5paZID4gZ29yeW91XCA7Civlhobpq5ggPiBlbmRha2FcIDsKK+i/kei+uiA+IGtpbnBlblwgOwor5Y6f5aeLID4gZ2Vuc2hpXCA7Civlj6PlhoUgPiBrb3VuYWlcIDsKK+WHuuiyuyA+IHNodXBwaVwgOwor6YeR5YagID4ga2lua2FuXCA7CivljbDlvaIgPiBpbmd5b3VcIDsKK+WPuOS7pCA+IHNoaXJlaVwgOwor6YeN5YiRID4ganV1a2VpXCA7Civov73oqLQgPiB0c3Vpc29cIDsKK+WPt+S7pCA+IGdvdXJlaVwgOwor5Yqg56GrID4ga2FyeXV1XCA7CivliZvog4YgPiBnb3V0YW5cIDsKK+mHkeWFtyA+IGthbmFndVwgOwor5Y+O5Y+XID4gc2h1dWp1XCA7CivphY3mha4gPiBoYWlyeW9cIDsKK+i/t+irliA+IG1laXJvblwgOwor5q+O5q+OID4gbWFpbWFpXCA7Civov73oqJggPiB0c3Vpa2lcIDsKK+edoeiTriA+IHN1aXJlblwgOwor5b+D5oSPID4gc2hpbicnaVwgOwor5Ymy57eaID4ga2Fzc2VuXCA7CivliIfoq4wgPiBzZWtrYW5cIDsKK+W/mOW5tCA+IGJvdW5lblwgOwor5Y2z5bqnID4gc29rdXphXCA7Civlt7vpoK0gPiBrYW50b3VcIDsKK+WKueeUqCA+IGtvdXlvdVwgOwor5Yqr55uXID4gZ291dG91XCA7CivokrLmn7MgPiBob3J5dXVcIDsKK+aBkuS+iyA+IGtvdXJlaVwgOwor5Y+y5LydID4gc2hpZGVuXCA7Civlv43lvpMgPiBuaW5qdXVcIDsKK+mFt+WvkiA+IGtva2thblwgOwor5biC6Zu7ID4gc2hpZGVuXCA7Civli4fnjJsgPiB5dXVtb3VcIDsKK+avrOaenCA+IGt5dXVrYVwgOwor6I236LazID4gbmlhc2hpXCA7CivluLjpgZMgPiBqb3Vkb3VcIDsKK+WIhuipniA+IGJ1bnNoaVwgOwor5rK75LmxID4gY2hpcmFuXCA7CivljbXlt6MgPiByYW5zb3VcIDsKK+atu+eUoyA+IHNoaXphblwgOwor5q2755SfID4gc2hpc2VpXCA7CivljZrmhJsgPiBoYWt1YWlcIDsKK+W4uOmAoyA+IGpvdXJlblwgOwor5YaS6aCtID4gYm91dG91XCA7CivmgKflkJEgPiBzZWlrb3VcIDsKK+W4sOmDtyA+IGtpa3lvdVwgOwor5rC05bmzID4gc3VpaGVpXCA7CivmsrvkuJYgPiBjaGlzZWlcIDsKK+W8leeUqCA+IGluJyd5b3VcIDsKK+murum6lyA+IHNlbnJlaVwgOwor55uu6YeYID4gbWVrdWdpXCA7Civlj43li5UgPiBoYW5kb3VcIDsKK+WJjeiFlSA+IG1hZXVkZVwgOwor5Y+y5LmXID4gc2hpam91XCA7CivliIbop6MgPiBidW5rYWlcIDsKK+WPguWQkSA+IHNhbmtvdVwgOwor5Y+z5LiKID4gbWlnaXVlXCA7CivpgaPnsbMgPiBrZW5iZWlcIDsKK+WPpOS/lyA+IGtvem9rdVwgOwor5b6M5pmvID4ga291a2VpXCA7Civlj7LkuIogPiBzaGlqb3VcIDsKK+WOluWkpyA+IGJvdWRhaVwgOwor6YCA6KGMID4gdGFpa291XCA7Civlj6/kuZ8gPiBrYW5hcmlcIDsKK+W5s+ihoSA+IGhlaWtvdVwgOwor5bqn6IiIID4gemFreW91XCA7CivmraPnnLwgPiBzZWlnYW5cIDsKK+W5s+ihjCA+IGhlaWtvdVwgOwor5b6F5pybID4gdGFpYm91XCA7Civno4Hlo4EgPiBqaWhla2lcIDsKK+W3rumhjSA+IHNhZ2FrdVwgOwor5q6L54mHID4gemFucGVuXCA7Civlj6XkvZwgPiBrdXNha3VcIDsKK+W+jOaYhiA+IGtvdWtvblwgOwor5q2j55uuID4gbWFzYW1lXCA7Civnn6LnjokgPiB5YWRhbWFcIDsKK+WNgeaMhyA+IGp1c3NoaVwgOwor5Y2Y5oCnID4gdGFuc2VpXCA7Civljp/lnosgPiBnZW5rZWlcIDsKK+avm+aguSA+IG1vdWtvblwgOwor5biC6ZaAID4gc2hpbW9uXCA7CivokrjmlaMgPiBqb3VzYW5cIDsKK+W+jOaWuSA+IGtvdWhvdVwgOwor6YWN5b2TID4gaGFpdG91XCA7CivliqDnmYIgPiBrYXJ5b3VcIDsKK+W+i+aXiyA+IHJpc3NlblwgOwor5Y+j5LydID4ga291ZGVuXCA7CivphZLlupcgPiBzaHV0ZW5cIDsKK+W4q+mBkyA+IHNoaWRvdVwgOwor5bqV6I23ID4gc29rb25pXCA7CivliIrooYwgPiBrYW5rb3VcIDsKK+WHuuiotCA+IHNodXNzb1wgOwor5Y2a5b6SID4gYmFrdXRvXCA7Civlu4Pnt5ogPiBoYWlzZW5cIDsKK+eggua8oCA+IHNhYmFrdVwgOwor5oCl5YufID4ga3l1dWJvXCA7CivlvLHngasgPiB5b3dhYmlcIDsKK+WJjeiAhSA+IHplbnNoYVwgOwor5oCl5YuZID4ga3l1dW11XCA7Civlt6jpoK0gPiBreW90b3VcIDsKK+iRieeJqSA+IGhhbW9ub1wgOwor5YiG6KKCID4gYnVuYmVpXCA7CivlhobpoIIgPiBlbmNob3VcIDsKK+awl+aBryA+IGtpc29rdVwgOwor5b6M5pS7ID4ga291a291XCA7Civps6nnm64gPiBoYXRvbWVcIDsKK+mHjeS9kyA+IGp1dXRhaVwgOwor5Y6z5ZG9ID4gZ2VubWVpXCA7CivlhpLpmbogPiBib3VrZW5cIDsKK+WOn+WboCA+IGdlbicnaW5cIDsKK+WGhemghSA+IG5haWtvdVwgOwor5YmN57+FID4gemVuc2hpXCA7Civluqbog7ggPiBkb2t5b3VcIDsKK+eci+iyqyA+IGthbmthblwgOwor5Y2R5oCvID4gaGlreW91XCA7CivljZrlvJUgPiBoYWt1aW5cIDsKK+apn+mVtyA+IGtpY2hvdVwgOwor5Ymy56ymID4gd2FyaWZ1XCA7CivmsJfmgKcgPiBraXNob3VcIDsKK+WNgeaIkiA+IGppa2thaVwgOwor5Y+L5YWaID4geXV1dG91XCA7Civlj5fkv6EgPiBqdXNoaW5cIDsKK+ebrumAlCA+IG1va3V0b1wgOwor6L6y6YGTID4gbm91ZG91XCA7Civnn7PngbAgPiBzZWtrYWlcIDsKK+awkeaDhSA+IG1pbmpvdVwgOwor5Y6a5ZywID4gYXRzdWppXCA7Civph43ku7sgPiBqdXVuaW5cIDsKK+i/juizkyA+IGdlaWhpblwgOwor5Y6z5ZCbID4gZ2Vua3VuXCA7CivliY3nva4gPiB6ZW5jaGlcIDsKK+mHjeS7oyA+IGp1dWRhaVwgOwor5YiX6JepID4gcmVwcGFuXCA7Civps6Xnm64gPiB0b3JpbWVcIDsKK+WNmOW8gSA+IHRhbmJlblwgOwor5q615q61ID4gZGFuZGFuXCA7CivmsLTlsYsgPiBtaXp1eWFcIDsKK+W+gOaYlCA+IG91c2VraVwgOwor6YeR5Li7ID4ga2luc2h1XCA7CivnoLTmoLwgPiBoYWtha3VcIDsKK+WNg+aFriA+IHNlbnJ5b1wgOwor5Y675YuiID4ga3lvc2VpXCA7Civlj6PkuIogPiBrb3Vqb3VcIDsKK+W9k+atsyA+IHRvdXNhaVwgOwor55qu6Z2pID4gaGlrYWt1XCA7CivlhoXpnaIgPiBuYWltZW5cIDsKK+W3t+mWkyA+IGtvdWthblwgOwor5Ya36YWSID4gcmVpc2h1XCA7CivljbXlrZAgPiByYW5zaGlcIDsKK+aAquWFiSA+IGthaWtvdVwgOwor5YW86aGMID4ga2VuZGFpXCA7CivmqoDpgqMgPiBkYW4nJ25hXCA7Civph47kuK0gPiBub25ha2FcIDsKK+mAoOiIuSA+IHpvdXNlblwgOwor5Y+C5YaFID4gc2FuZGFpXCA7CivmsLTlrrMgPiBzdWlnYWlcIDsKK+W+ueW6lSA+IHRldHRlaVwgOwor5rCX5byxID4ga2l5b3dhXCA7Civlj5vkubEgPiBoYW5yYW5cIDsKK+W+oeaFtiA+IGd5b2tlaVwgOwor55yM6K2mID4ga2Vua2VpXCA7CivluJ3pgZMgPiB0ZWlkb3VcIDsKK+WIpeiNmCA+IGJlc3NvdVwgOwor56KB5bitID4gZ29zZWtpXCA7CivliJ3okYkgPiBzaG95b3VcIDsKK+W9vOaWuSA+IGthbmF0YVwgOwor55uf6YKmID4gbWVpaG91XCA7Civlv6vloLEgPiBrYWlob3VcIDsKK+WOreWOrSA+IGl5YWl5YVwgOwor5rC05a2QID4gbWl6dWdvXCA7Civlho3plosgPiBzYWlrYWlcIDsKK+mBoOensCA+IGVuc2hvdVwgOwor5YyX5pa5ID4gaG9wcG91XCA7CivlhoXpmaMgPiBuYWlqaW5cIDsKK+WNiuW+hCA+IGhhbmtlaVwgOwor6JGb5rmvID4ga3V6dXl1XCA7Civprq7prZogPiBzZW5neW9cIDsKK+WGt+mBhyA+IHJlaWd1dVwgOwor5Y2K5b2xID4gaGFuJydlaVwgOwor5Y+N5L6LID4gaGFucmVpXCA7Civlt6Ppm5sgPiBzdWhpbmFcIDsKK+W+ruW8sSA+IGJpamFrdVwgOwor6YO35p2RID4gZ291c29uXCA7CivnoazmgKcgPiBrb3VzZWlcIDsKK+mFkuWxiyA+IHNha2F5YVwgOwor5YWs6aSoID4ga291a2FuXCA7CivliY3nt6ggPiB6ZW5wZW5cIDsKK+mAgOiUtSA+IHRhaXpvdVwgOwor5Yed6K2wID4gZ3lvdWdpXCA7CivliY3nt5ogPiB6ZW5zZW5cIDsKK+atr+eKtiA+IHNoaWpvdVwgOwor5bed6Z2iID4ga2F3YW1vXCA7Civljp/lk4EgPiBnZW5waW5cIDsKK+W8leeFpyA+IGluc2hvdVwgOwor5Y2g5bGFID4gc2Vua3lvXCA7CivlhajppKggPiB6ZW5rYW5cIDsKK+WOs+WIkSA+IGdlbmtlaVwgOwor6L+R6KmgID4ga2luJydlaVwgOwor6JKZ5pinID4gbW91bWFpXCA7Civmrovmu5MgPiB6YW5zaGlcIDsKK+aymeS4mCA+IHNha3l1dVwgOwor5q2754K5ID4gc2hpdGVuXCA7Civnm7josowgPiBzb3Vib3VcIDsKK+mAgeiRrCA+IHNvdXNvdVwgOwor55m96a2UID4gaGFrdW1hXCA7CivljZzlsYUgPiBib2treW9cIDsKK+eijeWtkCA+IGdhaXNoaVwgOwor5q+O5pmpID4gbWFpYmFuXCA7CivljrPlhqwgPiBnZW50b3VcIDsKK+atu+eBsCA+IHNoaWthaVwgOwor5Y+L5Lq6ID4geXV1amluXCA7Civnm4rph5EgPiBla2lraW5cIDsKK+WKtOeBvSA+IHJvdXNhaVwgOwor5Y+N5LmxID4gaGFucmFuXCA7CivljZflsrggPiBuYW5nYW5cIDsKK+edgOiNtyA+IGNoYWtrYVwgOwor5Y+L5LqkID4geXV1a291XCA7Civokabmr5sgPiBhc2hpZ2VcIDsKK+asoeesrCA+IHNoaWRhaVwgOwor5Y6a5ZGzID4gYXRzdW1pXCA7CivlhbXpm6MgPiBoZWluYW5cIDsKK+WNs+WknCA+IHNva3V5YVwgOwor5b2i5pyoID4ga2F0YWdpXCA7CivluKvos4cgPiBzaGlzaGlcIDsKK+WNl+WxsSA+IG5hbnphblwgOwor5b+X5aOrID4gc2hpc2hpXCA7CivnnIvoppYgPiBrYW5zaGlcIDsKK+i/keimliA+IGtpbnNoaVwgOwor5beM6aCtID4gZ2FudG91XCA7CivojLbpgZMgPiBjaGFkb3VcIDsKK+asoeeroCA+IGppc2hvdVwgOwor5YW36ZmzID4gZ3VjaGluXCA7CivmgKrkurogPiBrYWlqaW5cIDsKK+eZu+mrmCA+IHRvdWtvdVwgOwor55uk6LieID4gYmFua3lvXCA7CivlhbXpmoogPiBoZWl0YWlcIDsKK+mAo+e9siA+IHJlbnNob1wgOwor5q2j54qvID4gc2VpaGFuXCA7CivljZjlsIQgPiB0YW5zaGFcIDsKK+WPguS8miA+IHNhbmthaVwgOwor5YqH55S7ID4gZ2VraWdhXCA7Civlhajpn7MgPiB6ZW4nJ29uXCA7CivljbXloZQgPiByYW50b3VcIDsKK+WFmummliA+IHRvdXNodVwgOwor6YGO56ewID4ga2FzaG91XCA7CivmgKfkuqQgPiBzZWlrb3VcIDsKK+WNgeW5siA+IGppa2thblwgOwor6Iux6aCYID4gZWlyeW91XCA7CivljZHlsawgPiBoaXpva3VcIDsKK+W3qOmQmCA+IG9vZ2FuZVwgOwor5qiq6aCYID4gb3VyeW91XCA7CivljZHlsZ4gPiBoaXpva3VcIDsKK+efs+ayuSA+IHNla2l5dVwgOwor5bu754q2ID4ga2Fpam91XCA7CivliY3nr4cgPiB6ZW5wZW5cIDsKK+mBlOejqCA+IGRhcnVtYVwgOwor5Y6f5YuVID4gZ2VuZG91XCA7CivljZflrosgPiBuYW5zb3VcIDsKK+WFrOmbuyA+IGtvdWRlblwgOwor5byx5rCXID4geW93YWtpXCA7CivlhajpnaIgPiB6ZW5tZW5cIDsKK+W+oeW5uCA+IG1peXVraVwgOwor5b6Y5b6KID4gaGFpa2FpXCA7Civpg7XmlL8gPiB5dXVzZWlcIDsKK+WNiuWztiA+IGhhbnRvdVwgOwor5Y2R5bCPID4gaGlzaG91XCA7Civnmb3ppqwgPiBoYWt1YmFcIDsKK+ebuOirhyA+IHNvdWRhblwgOwor5qyd56mNID4gdXNzZWtpXCA7CivlvoHmiKYgPiBzZWlzZW5cIDsKK+WJsuebriA+IHdhcmVtZVwgOwor6I+M57O4ID4ga2luc2hpXCA7CivlhajpnIogPiB6ZW5yZWlcIDsKK+W+jOaCoyA+IGtvdWthblwgOwor5biC6YGTID4gc2hpZG91XCA7CivpgKPnuYsgPiByZW5rZWlcIDsKK+W9k+advyA+IGF0ZWl0YVwgOwor5Y+C5LiOID4gc2FuJyd5b1wgOwor5b6M5oKUID4ga291a2FpXCA7Civlj4LkuIogPiBzYW5qb3VcIDsKK+ayiOS4iyA+IGNoaW5rYVwgOwor55yf6JavID4gc2hpbmpvXCA7Civlh73ok4sgPiBrYW5nYWlcIDsKK+WOn+WInSA+IGdlbnNob1wgOwor5YmN56uvID4gemVudGFuXCA7Civlv6vlk4kgPiBrYWlzYWlcIDsKK+awl+WtpiA+IGtpZ2FrdVwgOwor5rC05Z+fID4gc3VpaWtpXCA7Civlvq7lsJEgPiBiaXNob3VcIDsKK+W+ruWwjyA+IGJpc2hvdVwgOwor5YWo6ZqKID4gemVudGFpXCA7CivpgIHoh7QgPiBzb3VjaGlcIDsKK+mAo+e2vyA+IHJlbm1lblwgOwor5Ym155eVID4gc291a29uXCA7CivmrLLnm64gPiB5b2t1bWVcIDsKK+W+l+W6piA+IHRva3Vkb1wgOwor5b6T5byfID4ganV1dGVpXCA7Civpg6jml48gPiBidXpva3VcIDsKK+iVg+S6uiA+IGJhbmppblwgOwor6I+c56iuID4gbmF0YW5lXCA7Civnm7ToqLQgPiBqaWtpc29cIDsKK+WOn+WFuCA+IGdlbnRlblwgOwor5YWs6ZaLID4ga291a2FpXCA7CivpsZfojI4gPiByaW5rZWlcIDsKK+WFpemZoiA+IG55dXVpblwgOwor55+t5q+bID4gdGFubW91XCA7CivlubvogqIgPiBnZW5zaGlcIDsKK+iNkuiqlSA+IGtvdXRhblwgOwor5Yid6ICBID4gc2hvcm91XCA7CivphbflkI8gPiBrb2t1cmlcIDsKK+mAo+e0ryA+IHJlbnJ1aVwgOwor5q275rW3ID4gc2hpa2FpXCA7CivolYPkuLsgPiBiYW5zaHVcIDsKK+W4q+iokyA+IHNoaWt1blwgOwor5qip6ZmQID4ga2VuZ2VuXCA7Civli5jmpJwgPiBrYW5rZW5cIDsKK+mBuueJqSA+IGlidXRzdVwgOwor5YeG6KixID4ganVua3lvXCA7CivphZLloLQgPiBzYWthYmFcIDsKK+WFqOmWiyA+IHplbmthaVwgOwor5q6J5q27ID4ganVuc2hpXCA7Civljp/lg48gPiBnZW56b3VcIDsKK+W7tueEvCA+IGVuc2hvdVwgOwor55uu6KixID4gbWVtb3RvXCA7CivmsLTlmqIgPiBzdWlub3VcIDsKK+W9k+aWuSA+IHRvdWhvdVwgOwor5Ye66I23ID4gc2h1a2thXCA7CivnnJ/oj7AgPiBtYWtvbW9cIDsKK+WFg+mmliA+IGdlbnNodVwgOwor5Y2X5aSpID4gbmFudGVuXCA7Civnm67op5IgPiBtZWthZG9cIDsKK+WGjemBuCA+IHNhaXNlblwgOwor5buD55ukID4gaGFpYmFuXCA7CivnoavlrokgPiByeXV1YW5cIDsKK+apn+i7uCA+IGtpamlrdVwgOwor5Yui5pybID4gc2VpYm91XCA7CivmqKnploAgPiBrZW5tb25cIDsKK+mKmOOAhSA+IG1laW1laVwgOwor5YuY5qGIID4ga2FuJydhblwgOwor5b6M5bm0ID4ga291bmVuXCA7CivljLvlsYAgPiBpa3lva3VcIDsKK+WGjemBiiA+IHNhaXl1dVwgOwor56Cy5omLID4gaG91c2h1XCA7Civnmb3pnLIgPiBoYWt1cm9cIDsKK+iKsemzpSA+IGthY2hvdVwgOwor6L+96IKlID4gdHN1aWhpXCA7Civli5jmoKEgPiBrYW5rb3VcIDsKK+W/teWGmSA+IG5lbnNoYVwgOwor55+l5q2vID4gY2hpc2hpXCA7CivluIbotbAgPiBoYW5zb3VcIDsKK+W+gOW+qSA+IG91ZnVrdVwgOwor55+z5qa0ID4gemFrdXJvXCA7Civnmb3pm7IgPiBoYWt1dW5cIDsKK+WGjemAgSA+IHNhaXNvdVwgOwor5YWJ6aCtID4ga291dG91XCA7CivlvovluKsgPiByaXNzaGlcIDsKK+aEiOOAhSA+IGl5b2l5b1wgOwor5YW16YuSID4gaGVpaG91XCA7Civlh7roirEgPiBkZWJhbmFcIDsKK+atqea4rCA+IGhvc29rdVwgOwor5YWI6aCtID4gc2VudG91XCA7CivluoPnuIEgPiBoaXJvZW5cIDsKK+a1quOAhSA+IHJvdXJvdVwgOwor5Yqb5ryUID4gcmlraWVuXCA7CivpgqrmrLIgPiBqYXlva3VcIDsKK+W/g+WcnyA+IHNoaW5kb1wgOwor5b6u5aaZID4gYmlteW91XCA7CivlvoTluq0gPiBrZWl0ZWlcIDsKK+WIpee0mSA+IGJlc3NoaVwgOwor5b+c5Y+sID4gb3VzaG91XCA7Civlh7roiLkgPiBkZWZ1bmVcIDsKK+mFt+WIkSA+IGtva2tlaVwgOwor5b+r5YiAID4ga2FpdG91XCA7Civnn7Pmo7ogPiBzZWtrYW5cIDsKK+WFiOmerSA+IHNlbmJlblwgOwor5ben6YGFID4ga291Y2hpXCA7CivluqfnpIEgPiB6YXNob3VcIDsKK+mBuOeCrSA+IHNlbnRhblwgOwor5byB5riIID4gYmVuc2FpXCA7CivljYrlpKkgPiBoYW50ZW5cIDsKK+W/l+WQkSA+IHNoaWtvdVwgOwor55uj6KaWID4ga2Fuc2hpXCA7Civlh7roh40gPiBkZWJlc29cIDsKK+W9t+W+qCA+IGhvdWtvdVwgOwor5Y2K5aScID4gaGFuJyd5YVwgOwor5Yi256m6ID4gc2Vpa3V1XCA7Civljp/kurogPiBnZW5qaW5cIDsKK+WGjei7oiA+IHNhaXRlblwgOwor5b2i5oiQID4ga2Vpc2VpXCA7CivluILosqkgPiBzaGloYW5cIDsKK+W3numDvSA+IHNodXV0b1wgOwor5YWJ6Zu7ID4ga291ZGVuXCA7CivnoZ3lrokgPiBzaG91YW5cIDsKK+WInee1jCA+IHNob2tlaVwgOwor5Y2K5aOKID4gaGFua2FpXCA7CivlvJTmrYwgPiBjaG91a2FcIDsKK+i/keiRlyA+IGtpbmNob1wgOwor6JC95qy+ID4gcmFra2FuXCA7CivliIfnvr0gPiBraXJpaGFcIDsKK+ehneWtkCA+IGdhcmFzdVwgOwor5bm557eaID4ga2Fuc2VuXCA7Civpg73lv4MgPiB0b3NoaW5cIDsKK+eiuuS/nSA+IGtha3Vob1wgOwor5q2z5q2zID4gc2Fpc2FpXCA7CivlhYXpm7sgPiBqdXVkZW5cIDsKK+axoOS6rSA+IGNoaXRlaVwgOwor5YaF6LyqID4gdWNoaXdhXCA7CivpgYvnlKggPiB1bicneW91XCA7Civnm5voprMgPiBzZWlrYW5cIDsKK+WNg+WknCA+IHNlbicneWFcIDsKK+W6j+eroCA+IGpvc2hvdVwgOwor5Yi256amID4gc2VpZ3lvXCA7CivliIbnvbIgPiBidW5zaG9cIDsKK+W9ouaFiyA+IGtlaXRhaVwgOwor56Gs5aSJID4ga291aGVuXCA7CivlhYjpmaMgPiBzZW5qaW5cIDsKK+awl+WcpyA+IGtpYXRzdVwgOwor5YWs6YeRID4ga291a2luXCA7Civps6XmuKEgPiBjaG90dG9cIDsKK+mBheeVqiA+IG9zb2JhblwgOwor5Yqb5rOzID4gcmlraWVpXCA7CivmraPmsrkgPiBzaG91eXVcIDsKK+WNsOWMoyA+IGluYmFrb1wgOwor5Y2z5Yq5ID4gc29ra291XCA7CivojbfoiLkgPiBuaWJ1bmVcIDsKK+W6g+evhCA+IGtvdWhhblwgOwor55+z5pyoID4gaXNoaWtpXCA7CivmsZ/kuIogPiBrb3Vqb3VcIDsKK+WNs+WKnyA+IHNva2tvdVwgOwor56Kp5YSSID4gc2VraWp1XCA7CivokZfmm7ggPiBjaG9zaG9cIDsKK+W3nei+uiA+IGthd2FiZVwgOwor6bOp5rS+ID4gaGF0b2hhXCA7Civmr43lvqEgPiBoYWhhZ29cIDsKK+mEreWjsCA+IHRlaXNlaVwgOwor56Cy5by+ID4gaG91ZGFuXCA7CivlvZPmiYAgPiB0b3VzaG9cIDsKK+ebm+ijhSA+IHNlaXNvdVwgOwor6Iqz6aaZID4gaG91a291XCA7Civlv6vkvr8gPiBrYWliZW5cIDsKK+awtOWLoiA+IHN1aXNlaVwgOwor6YO95bqBID4gdG9jaG91XCA7Civlha3pg6ggPiByb2t1YnVcIDsKK+atouawtCA+IHNoaXN1aVwgOwor6a6u6YutID4gc2VuJydlaVwgOwor6YWS5ZCNID4gc2h1bWVpXCA7Civnm5voobAgPiBzZWlzdWlcIDsKK+awkeWboyA+IG1pbmRhblwgOwor6Iq46aKoID4gZ2VpZnV1XCA7CivlvKbmnZAgPiBnZW56YWlcIDsKK+WIneetiSA+IHNob3RvdVwgOwor5YWs6YK4ID4ga291dGVpXCA7CivljbDliLsgPiBpbmtva3VcIDsKK+WJsueDuSA+IGthcHBvdVwgOwor6JOu5Y+wID4gcmVuZGFpXCA7CivmraPmrr8gPiBzZWlkZW5cIDsKK+WGoOipniA+IGthbnNoaVwgOwor5YaN6LKpID4gc2FpaGFuXCA7CivliIfnt5ogPiBzZXNzZW5cIDsKK+WJo+eKtiA+IGtlbmpvdVwgOwor5Y215YaGID4gcmFuJydlblwgOwor6YW35Ly8ID4ga29rdWppXCA7CivliKXnqK4gPiBiZXNzaHVcIDsKK+edpeedqCA+IGhlaWdlaVwgOwor6JGJ5p+EID4geW91aGVpXCA7CivokZfmmI4gPiBjaG9tZWlcIDsKK+W+k+WniSA+IGp1dXNoaVwgOwor5q665oSPID4gc2F0c3VpXCA7Civovp7ooaggPiBqaWh5b3VcIDsKK+WFrOmBuCA+IGtvdXNlblwgOwor5b6T5aa5ID4ganV1bWFpXCA7CivliKnnpo8gPiByaWZ1a3VcIDsKK+WNoOWPliA+IHNlbnNodVwgOwor5q2v5qe9ID4gc2hpc291XCA7CivnnJ/nvqkgPiBzaGluZ2lcIDsKK+avjuW5tCA+IG1haW5lblwgOwor5q6L5pqRID4gemFuc2hvXCA7CivlhazpgZMgPiBrb3Vkb3VcIDsKK+ato+atoyA+IHNlaXNlaVwgOwor5bmz57GzID4gaGVpYmVpXCA7CivphY3lkIggPiBoYWlnb3VcIDsKK+awtOWIhiA+IHN1aWJ1blwgOwor55yf576OID4gc2hpbmJpXCA7CivluYToiI4gPiBha3VzaGFcIDsKK+mtmumxlyA+IGd5b3JpblwgOwor55+i5p+EID4geWFnYXJhXCA7CivlhaXpg6ggPiBueXV1YnVcIDsKK+efs+aWpyA+IHNla2lmdVwgOwor5YaX6KuHID4gam91ZGFuXCA7CivmsLTlhrcgPiBzdWlyZWlcIDsKK+WFtei7iiA+IGhlaXNoYVwgOwor55+u5pifID4gd2Fpc2VpXCA7CivokrzlpKkgPiBzb3V0ZW5cIDsKK+WFqOmBkyA+IHplbmRvdVwgOwor5bm856ulID4geW91ZG91XCA7CivovZ/ovZ8gPiBnb3Vnb3VcIDsKK+edoeecoCA+IHN1aW1pblwgOwor5beo6LOHID4ga3lvc2hpXCA7CivokYnmm7ggPiBoYWdha2lcIDsKK+WFrOi+uiA+IGtvdWhlblwgOwor5YyF5bivID4gaG91dGFpXCA7CivljoTku4sgPiB5YWtrYWlcIDsKK+awkeWWtiA+IG1pbicnZWlcIDsKK+WLh+aWrSA+IHl1dWRhblwgOwor5YuV5o+6ID4gZG91eW91XCA7Civmrr/lvqEgPiB0b25vZ29cIDsKK+awtOWFtSA+IHN1aWhlaVwgOwor5Y2B5ZueID4ganVra2FpXCA7CivljYHlm5sgPiBqdXV5b25cIDsKK+W3qOiyoSA+IGt5b3phaVwgOwor5Y2U5ZKMID4ga3lvdXdhXCA7Civlub3nqpMgPiB5dXVzb3VcIDsKK+W3nei3ryA+IGthd2FqaVwgOwor5be36KuHID4ga291ZGFuXCA7Civnm67ok4sgPiBtYWJ1dGFcIDsKK+WLh+aVoiA+IHl1dWthblwgOwor5beo6LGhID4ga3lvem91XCA7CivmqKnpgZMgPiBrZW5kb3VcIDsKK+WGl+iogCA+IGpvdWdlblwgOwor55+t5paHID4gdGFuYnVuXCA7CivmrKDniYcgPiBrYWtlcmFcIDsKK+mAo+ebnyA+IHJlbm1laVwgOwor5bm856iaID4geW91Y2hpXCA7CivlvozlpKkgPiBrb3V0ZW5cIDsKK+WFt+i2syA+IGd1c29rdVwgOwor6bGX57KJID4gcmlucHVuXCA7CivljJblraYgPiBrYWdha3VcIDsKK+mBteazlSA+IGp1bnBvdVwgOwor55m96YeRID4gaGFra2luXCA7Civlhazou6IgPiBrb3V0ZW5cIDsKK+mBqea4qSA+IHRla2lvblwgOwor5Y2X5Y2KID4gbmFuaGFuXCA7CivpgLjnkIMgPiBpa2t5dXVcIDsKK+mFjeWJpCA+IGhhaXphaVwgOwor55qH6YGTID4ga291ZG91XCA7Civmra/moLkgPiBzaGlrb25cIDsKK+WNkuWOuyA+IHNva2t5b1wgOwor5YaN6KqVID4gc2FpdGFuXCA7CivlhYjpi60gPiBzZW4nJ2VpXCA7CivpgbjmsJEgPiBzZW5taW5cIDsKK+W4guihlyA+IHNoaWdhaVwgOwor5bWp6auYID4gc3V1a291XCA7CivlhYjpi5IgPiBzZW5wb3VcIDsKK+ecn+e2vyA+IG1hd2F0YVwgOwor5qyj54S2ID4ga2luemVuXCA7CivlvozlobUgPiBrb3VqaW5cIDsKK+WFqOi7jSA+IHplbmd1blwgOwor6YCB56i/ID4gc291a291XCA7CivlhrfolLUgPiByZWl6b3VcIDsKK+mFjeWIhiA+IGhhaWJ1blwgOwor5b6p5ZOhID4gZnVrdWluXCA7Civlh7rntI0gPiBzdWl0b3VcIDsKK+WHpue9riA+IHNob2NoaVwgOwor5b6Y5ZueID4gaGFpa2FpXCA7Civov7fnrZQgPiBtZWl0b3VcIDsKK+eZuumFtSA+IGhha2tvdVwgOwor5YaN6KiqID4gc2FpaG91XCA7CivlvozloLEgPiBrb3Vob3VcIDsKK+iNieiRiSA+IGt1c2FiYVwgOwor5b2p5bGkID4gc2Fpc291XCA7CivlubTnqI4gPiBuZW56ZWlcIDsKK+WGjeiogiA+IHNhaXRlaVwgOwor6Iub6YW3ID4ga2Frb2t1XCA7CivlvLfmiZMgPiBreW91ZGFcIDsKK+mCquaVmSA+IGpha3lvdVwgOwor55+i5paHID4geWFidW1pXCA7CivlhoXoq4cgPiBuYWlkYW5cIDsKK+awj+WQjSA+IHNoaW1laVwgOwor5YW36LGhID4gZ3VzaG91XCA7CivnnJ/ntIUgPiBzaGlua3VcIDsKK+WNk+WKuSA+IHRha2tvdVwgOwor6Imm6b2iID4ga2FucmVpXCA7Civli6TmgKAgPiBraW50YWlcIDsKK+WNs+S7iiA+IHNva2tvblwgOwor6YCj55WqID4gcmVuYmFuXCA7CivlvrTli58gPiBjaG91Ym9cIDsKK+mCpuaWhyA+IGhvdWJ1blwgOwor5b2T5bqXID4gdG91dGVuXCA7CivmrKDngrkgPiBrZXR0ZW5cIDsKK+W8iuadkSA+IGhlaXNvblwgOwor5b2T5bm0ID4gdG91bmVuXCA7CivlubTnpa0gPiBuZW5zYWlcIDsKK+W9vOWlsyA+IGthbm9qb1wgOwor5q275paRID4gc2hpaGFuXCA7CivojbfnuIQgPiBuaW5hd2FcIDsKK+atu+aWhyA+IHNoaWJ1blwgOwor6I2P6IuSID4gamluemVuXCA7CivmrbPmmakgPiBzYWliYW5cIDsKK+WMheWuuSA+IGhvdXlvdVwgOwor6L6y6Iq4ID4gbm91Z2VpXCA7CivlubTnpLwgPiBuZW5yZWlcIDsKK+W8lOaXlyA+IGNob3VraVwgOwor6YCA56S+ID4gdGFpc2hhXCA7CivljYrljYogPiBoYW5oYW5cIDsKK+WIpeebgyA+IGJlcHBhaVwgOwor6YGO5r+AID4ga2FnZWtpXCA7CivlhoXoqJMgPiBuYWlrdW5cIDsKK+eah+i7jSA+IGtvdWd1blwgOwor5YaF6KiMID4gbmFpa291XCA7CivmsLTku5kgPiBzdWlzZW5cIDsKK+iNieiNiSA+IHNvdXNvdVwgOwor5Y205LiLID4ga3lha2thXCA7Civli5XmhYsgPiBkb3V0YWlcIDsKK+WGjeijvSA+IHNhaXNlaVwgOwor5q2z5pifID4gc2Fpc2VpXCA7CivlvLfmhaIgPiBnb3VtYW5cIDsKK+W3p+iogCA+IGtvdWdlblwgOwor5biM6JaEID4ga2loYWt1XCA7CivljZjlhYMgPiB0YW5nZW5cIDsKK+mBoOa1hSA+IHRvb2FzYVwgOwor6L2G6L2kID4gcm9rdXJvXCA7Civmr5LlqaYgPiBkb2t1ZnVcIDsKK+ats+aXpiA+IHNhaXRhblwgOwor5Y2X5YWJID4gbmFua291XCA7CivljYHlj7AgPiBqdXVkYWlcIDsKK+mFjeWBtiA+IGhhaWd1dVwgOwor5YaF6KazID4gbmFpa2FuXCA7CivnmbrpgIEgPiBoYXNzb3VcIDsKK+W+oeWRiiA+IG90c3VnZVwgOwor5YaF6KanID4gbmFpcmFuXCA7CivpgaDmtIsgPiBlbicneW91XCA7CivlvL7mgKcgPiBkYW5zZWlcIDsKK+WGheimiyA+IG5haWtlblwgOwor5b2i5a65ID4ga2VpeW91XCA7Civpg6jlsZ4gPiBidXpva3VcIDsKK+ato+adsSA+IHNlaXRvdVwgOwor5by35oOFID4gZ291am91XCA7CivljYPljYMgPiBjaGlkamlcIDsKK+i/kee4gSA+IGtpbicnZW5cIDsKK+ecn+euhyA+IHNoaW5rb1wgOwor6a2a6aGeID4gZ3lvcnVpXCA7Civli4fmiKYgPiB5dXVzZW5cIDsKK+m2j+WPoyA+IGtlaWtvdVwgOwor5bi4572uID4gam91Y2hpXCA7CivljZLlhYggPiBzb3NzZW5cIDsKK+WHuuerryA+IGRlYmFuYVwgOwor6YGg5rKIID4gZW5jaGluXCA7CivmraPmnKwgPiBzZWlob25cIDsKK+ato+acqCA+IG1hc2FraVwgOwor5YWo6LKMID4gemVuYm91XCA7Civpg6jlsIYgPiBidXNob3VcIDsKK+WFiOmBoyA+IHNlbmtlblwgOwor56Gr5YyWID4gcnl1dWthXCA7CivpgaHmsYIgPiBzb2t5dXVcIDsKK+ecvOeevCA+IGdhbmtlblwgOwor5Y2K5YiGID4gaGFucHVuXCA7CivliIbnpL4gPiBidW5zaGFcIDsKK+ato+abuCA+IHNlaXNob1wgOwor5YWl6LK7ID4gbnl1dWhpXCA7Civnn63miYAgPiB0YW5zaG9cIDsKK+WNiOWIuyA+IGdva29rdVwgOwor55m76LyJID4gdG91c2FpXCA7CivlvIrmlrkgPiBoZWlob3VcIDsKK+WNoOS9jyA+IHNlbmp1dVwgOwor5beh6KanID4ganVucmFuXCA7CivmsJflhJggPiBraW1hbWFcIDsKK+W/jOS4rSA+IGtpY2h1dVwgOwor5YaF6KOFID4gbmFpc291XCA7Civli6flt6UgPiBrYW5rb3VcIDsKK+W9ueWgtCA+IHlha3ViYVwgOwor6a2U6aKoID4gbWFrYXplXCA7Civlh7rnqpMgPiBkZW1hZG9cIDsKK+W+jOWXoyA+IGtvdXNoaVwgOwor55uu6ISCID4gbWV5YW5pXCA7Civlt6HoppYgPiBqdW5zaGlcIDsKK+WKqeaVmSA+IGpva3lvdVwgOwor6YWS5LuZID4gc2h1c2VuXCA7Civpto/ljbUgPiBrZWlyYW5cIDsKK+ecn+eruSA+IG1hZGFrZVwgOwor55yL57WMID4ga2Fua2luXCA7Civlu7rmnZAgPiBrZW56YWlcIDsKK+eZuui7iiA+IGhhc3NoYVwgOwor5rCR5YW1ID4gbWlucGVpXCA7CivlvqnliIogPiBmdWtrYW5cIDsKK+WNiuWGhiA+IGhhbicnZW5cIDsKK+WLmOW9kyA+IGthbmRvdVwgOwor5byK5pS/ID4gaGVpc2VpXCA7CivljIjlpbQgPiBreW91ZG9cIDsKK+mFkuS5sSA+IHNodXJhblwgOwor55uy6ICFID4gbW91c2hhXCA7Civlu4PmtrIgPiBoYWlla2lcIDsKK+efh+aYpyA+IG1vdW1haVwgOwor5bem6KGoID4gc2FoeW91XCA7CivpgYXmu54gPiBjaGl0YWlcIDsKK+WIgOekvCA+IHRvdXJlaVwgOwor5byB5piOID4gYmVubWVpXCA7Civlv4PkuosgPiBzaGluamlcIDsKK+WLmOW8gSA+IGthbmJlblwgOwor5qyy5rCXID4geW9rdWtlXCA7Civnn63mha4gPiB0YW5yeW9cIDsKK+WNg+WIhiA+IHNlbmJ1blwgOwor5Yqj5pWXID4gcmVwcGFpXCA7Civmr47lpJUgPiBtYWl5dXVcIDsKK+egsuWjsCA+IGhvdXNlaVwgOwor5YWJ6LyqID4ga291cmluXCA7CivljZLlgJIgPiBzb3R0b3VcIDsKK+WNmOS9kyA+IHRhbnRhaVwgOwor55m+6LazID4gbXVrYWRlXCA7CivmrKfmtLIgPiBvdXNodXVcIDsKK+WLheaEjyA+IGNob2t1aVwgOwor5YWs6KuWID4ga291cm9uXCA7CivljYHliIYgPiBqdXBwdW5cIDsKK+mtmumbtyA+IGd5b3JhaVwgOwor5YWI6LypID4gc2VucGFpXCA7CivlubPnm64gPiBoaXJhbWVcIDsKK+mDt+WjqyA+IGdvdXNoaVwgOwor5q2k5pa5ID4ga29uYXRhXCA7CivliaPms5UgPiBrZW5wb3VcIDsKK+W+ruWCtyA+IGJpc2hvdVwgOwor6Iy26Iy2ID4gY2hhY2hhXCA7CivmraPmlrkgPiBzZWlob3VcIDsKK+atpuaVmSA+IGJ1a3lvdVwgOwor5Ymq5q+bID4gc2VubW91XCA7Civovpvoi6YgPiBzaGlua3VcIDsKK+mFjeS5lyA+IGhhaWpvdVwgOwor5biC6JGsID4gc2hpc291XCA7Civnn5zmjIEgPiBreW91amlcIDsKK+i+suiAlSA+IG5vdWtvdVwgOwor5Y2R5L+XID4gaGl6b2t1XCA7CivljYPlhoYgPiBzZW4nJ2VuXCA7CivliJ3nlJ8gPiBzaG9zZWlcIDsKK+WFrOiqjSA+IGtvdW5pblwgOwor5beh6KGMID4ganVua291XCA7CivljLrlioMgPiBrdWtha3VcIDsKK+ato+aWhyA+IHNlaWJ1blwgOwor5YWs6KmmID4ga291c2hpXCA7CivmsJfkvq0gPiBraW1hbWFcIDsKK+atjOagvCA+IGtha2FrdVwgOwor5bm955WMID4geXV1a2FpXCA7CivmraPmlbAgPiBzZWlzdXVcIDsKK+W+jOWRsyA+IGF0b2FqaVwgOwor56Cy5aGUID4gaG91dG91XCA7CivnoZ3ljJYgPiBzaG91a2FcIDsKK+WFvOihjCA+IGtlbmtvdVwgOwor5by35bqmID4ga3lvdWRvXCA7CivlvavloZEgPiBjaG91c29cIDsKK+WNgeWFqCA+IGp1dXplblwgOwor5YWs6KixID4ga291a3lvXCA7CivnmbrotbAgPiBoYXNzb3VcIDsKK+WNl+S6rCA+IG5hbmtpblwgOwor55+l5oWuID4gY2hpcnlvXCA7CivmrbvmiYAgPiBzaGlzaG9cIDsKK+W5vOeUnyA+IHlvdXNlaVwgOwor6YGT5rCRID4gZG91bWluXCA7CivljYrlgKQgPiBoYW4nJ25lXCA7CivlhazoqIAgPiBrb3VnZW5cIDsKK+aCtuOAhSA+IG1vbm1vblwgOwor6L+U562UID4gaGVudG91XCA7CivojLboibIgPiBjaGFpcm9cIDsKK+aoqeisgCA+IGtlbmJvdVwgOwor6baP5YagID4gdG9zYWthXCA7Civnmb7osqggPiBoeWFra2FcIDsKK+W7u+aWhyA+IGthaWJ1blwgOwor5YuB5oKNID4ga2Vpa2FuXCA7CivlhYPou40gPiBnZW5ndW5cIDsKK+WNgeWEhCA+IGp1dW9rdVwgOwor5byV5omLID4gaGlraXRlXCA7CivlvaLlo7AgPiBrZWlzZWlcIDsKK+mtlOmanCA+IG1hc2hvdVwgOwor5YiH55uuID4ga2lyZW1lXCA7CivlvJXmiLggPiBoaWtpZG9cIDsKK+i7n+miqCA+IG5hbnB1dVwgOwor5bm455SaID4ga291amluXCA7CivlvoXlkb0gPiB0YWltZWlcIDsKK+ecvOeVjCA+IGdhbmthaVwgOwor6Iy26Ie8ID4gY2hhdXN1XCA7Civpgbjmm7ggPiBzZW5zaG9cIDsKK+iLseiosyA+IGVpeWFrdVwgOwor6Lui6Z+zID4gdGVuJydvblwgOwor5q6L5b2xID4gemFuJydlaVwgOwor5b6M5Y2KID4ga291aGFuXCA7CivoirPphocgPiBob3VqdW5cIDsKK+W5tOeUoyA+IG5lbnNhblwgOwor5bm055SfID4gbmVuc2VpXCA7CivljYPlgI0gPiBzZW5iYWlcIDsKK+W7g+auiyA+IGhhaXphblwgOwor6Imv6aasID4gcnlvdWJhXCA7CivlvpPliY0gPiBqdXV6ZW5cIDsKK+W5s+eUnyA+IGhlaXplaVwgOwor6YO35ZyfID4ga3lvdWRvXCA7CivpgYrmsJEgPiB5dXVtaW5cIDsKK+iRm+W4gyA+IGt1enVmdVwgOwor5buD5q2iID4gaGFpc2hpXCA7CivovKrou6IgPiByaW50ZW5cIDsKK+W4huiIuSA+IGhvYnVuZVwgOwor5Y2B5YCNID4ganV1YmFpXCA7Civnn6XmgKcgPiBjaGlzZWlcIDsKK+WJm+avmyA+IGdvdW1vdVwgOwor5q+O5ZueID4gbWFpa2FpXCA7Civmr43lm70gPiBib2tva3VcIDsKK+awkeS6uiA+IG1pbmppblwgOwor55yf56CCID4gbWFzYWdvXCA7CivliqnmiYsgPiBzdWtldGVcIDsKK+atouaPmiA+IHNoaXlvdVwgOwor5bm9546EID4geXV1Z2VuXCA7CivoirjpgZMgPiBnZWlkb3VcIDsKK+WFiOizoiA+IHNlbmtlblwgOwor5Yqg5oyvID4ga2FzaGluXCA7Civnm5vogIUgPiBqb3VzaGFcIDsKK+W9ueWToSA+IHlha3VpblwgOwor5b6u5LmzID4gYmlueXV1XCA7CivnnIznqI4gPiBrZW56ZWlcIDsKK+W4s+ewvyA+IGNob3Vib1wgOwor6YKq5b+DID4gamFzaGluXCA7CivlhKrpgYcgPiB5dXVndXVcIDsKK+efs+W3pSA+IHNla2tvdVwgOwor5YaF6JS1ID4gbmFpem91XCA7CivoiLnpvaIgPiBzZW5yZWlcIDsKK+awkeS4uyA+IG1pbnNodVwgOwor5Yid54qvID4gc2hvaGFuXCA7CivlvozliLsgPiBnb2tva3VcIDsKK+auv+WggiA+IGRlbmRvdVwgOwor5b6p5LqkID4gZnVra291XCA7CivlurbmsJEgPiBzaG9taW5cIDsKK+eerOaZgiA+IHNodW5qaVwgOwor5YSq6YCAID4geXV1dGFpXCA7Civlh7nnm64gPiBrdWJvbWVcIDsKK+W+k+WFhCA+IGp1dWtlaVwgOwor5Yqj5omNID4gcmVzc2FpXCA7CivljYPku60gPiBzZW5qaW5cIDsKK+WIhueVjCA+IGJ1bmthaVwgOwor5Y2D5LueID4gc2VuamluXCA7CivovKrot50gPiByaW5reW9cIDsKK+iJpummliA+IGthbnNodVwgOwor6L+U56S8ID4gaGVucmVpXCA7CivliIDnl5UgPiB0b3Vrb25cIDsKK+WIneeJiCA+IHNob2hhblwgOwor6bO05oi4ID4gbmFydXRvXCA7CivljYHku6MgPiBqdXVkYWlcIDsKK+WLmOWumiA+IGthbmpvdVwgOwor5YaF6JKZID4gbmFpbW91XCA7Civnm67ns54gPiBtZWt1c29cIDsKK+W6p+a1tCA+IHpheW9rdVwgOwor5qiZ6KqeID4gaHlvdWdvXCA7Civnmb3oqbEgPiBoYWt1d2FcIDsKK+WIpOeEtiA+IGhhbnplblwgOwor56CC5a2QID4gc3VuYWdvXCA7CivlvIHmiY0gPiBiZW5zYWlcIDsKK+aCoOOAhSA+IHl1dXl1dVwgOwor5qip6KGhID4ga2Vua291XCA7CivlirTlvbkgPiByb3Vla2lcIDsKK+iMl+iNtyA+IG15b3VnYVwgOwor55uu57GgID4gbWVrYWdvXCA7CivnnYDniakgPiBraW1vbm9cIDsKK+i7iumiqCA+IHNoYWZ1dVwgOwor5qiZ6KiYID4gaHlvdWtpXCA7CivprJrpq68gPiBzaHV6ZW5cIDsKK+WJjeautSA+IHplbmRhblwgOwor6YGu5patID4gc2hhZGFuXCA7CivojI7okYkgPiBrZWl5b3VcIDsKK+mBqeaZgiA+IHRla2lqaVwgOwor5bir56+EID4gc2hpaGFuXCA7CivojYnntJkgPiBzb3VzaGlcIDsKK+iQveW+jCA+IHJha3Vnb1wgOwor55uy566hID4gbW91a2FuXCA7CivljYHkuIkgPiBqdXVzYW5cIDsKK+WNgeS4hyA+IGp1dW1hblwgOwor5q+S5ZGzID4gZG9rdW1pXCA7CivokYnlt7sgPiBoYW1ha2lcIDsKK+W4guiChiA+IHNoaXNoaVwgOwor5by15a2QID4gaGFyaWtvXCA7Civnn7PlsYsgPiBpc2hpeWFcIDsKK+W+oeS4uyA+IG9udXNoaVwgOwor6YO95ZCIID4gdHN1Z291XCA7Civlubvnh4ggPiBnZW50b3VcIDsKK+W+oeS4rSA+IG9uY2h1dVwgOwor6Iqx6LyqID4gaGFuYXdhXCA7CivlvIHmhbYgPiBiZW5rZWlcIDsKK+WFjeiosSA+IG1lbmt5b1wgOwor5bmy54qvID4ga2FucGFuXCA7Civliarmnp0gPiBzZW5zaGlcIDsKK+iKsei7uCA+IGthamlrdVwgOwor5bm954S2ID4geXV1emVuXCA7Civlh7nnlLAgPiBrdWJvdGFcIDsKK+iLpuihtyA+IGt1Y2h1dVwgOwor55m66KaLID4gaGFra2VuXCA7CivlhY7op5IgPiB0b2tha3VcIDsKK+W9k+WcsCA+IHRvdWNoaVwgOwor5bmy54mpID4gaGltb25vXCA7CivlubPniYggPiBoZWloYW5cIDsKK+iLpuihjCA+IGt1Z3lvdVwgOwor6a+o6ISCID4gZ2Vpc2hpXCA7Civlho3oiIggPiBzYWlrb3VcIDsKK+iQveW6piA+IG9jaGlkb1wgOwor56Cy5Y+wID4gaG91ZGFpXCA7Civlho3oh6ggPiBzYWlyaW5cIDsKK+egsuWPoyA+IGhvdWtvdVwgOwor55yf55SwID4gc2FuYWRhXCA7CivliqnlvbkgPiBqb3lha3VcIDsKK+avjuWPtyA+IG1haWdvdVwgOwor5Yqj5oCnID4gcmVzc2VpXCA7Civnm67nrIogPiBtZXphcnVcIDsKK+atr+W9oiA+IGhhZ2F0YVwgOwor5by+5aWPID4gZGFuc291XCA7CivljIXlkKsgPiBob3VnYW5cIDsKK+W7g+agoSA+IGhhaWtvdVwgOwor5b6M5L6/ID4ga291YmluXCA7CivpgbjmjJkgPiBzZW5reW9cIDsKK+WMjeWMkCA+IGhvZnVrdVwgOwor6YOK5aSWID4ga291Z2FpXCA7CivlvLflp6YgPiBnb3VrYW5cIDsKK+eZveihoyA+IGJ5YWt1ZVwgOwor5YmW5qScID4gYm91a2VuXCA7Civlt6joiaYgPiBreW9rYW5cIDsKK+mAsuatqSA+IHNoaW5wb1wgOwor5Yeh55y8ID4gYm9uZ2FuXCA7Civlg6fploAgPiBzb3Vtb25cIDsKK+i/lOebgyA+IGhlbnBhaVwgOwor5bel6Iq4ID4ga291Z2VpXCA7Civou43pmoogPiBndW50YWlcIDsKK+i/keecjCA+IGtpbmtlblwgOwor6JC95beuID4gcmFrdXNhXCA7Civlubvnga8gPiBnZW50b3VcIDsKK+W3qOiIuSA+IGt5b3NlblwgOwor6bGX54q2ID4gcmluam91XCA7CivlhoXoiKogPiBuYWlrb3VcIDsKK+WFiOimiyA+IHNlbmtlblwgOwor6LuN6ZmjID4gZ3VuamluXCA7CivovKrorJsgPiByaW5rb3VcIDsKK+aui+WtmCA+IHphbnpvblwgOwor552A54GrID4gY2hha2thXCA7CivlubPnhLYgPiBoZWl6ZW5cIDsKK+WIh+eJhyA+IHNlcHBlblwgOwor55m66KGMID4gaGFra291XCA7CivljJflhYkgPiBob2trb3VcIDsKK+atpuW+syA+IGJ1dG9rdVwgOwor55yJ55uuID4gYmltb2t1XCA7CivnnIjnnIggPiB0YW50YW5cIDsKK+ecvOeCuSA+IGdhbnRlblwgOwor5YuV5aSpID4gZG91dGVuXCA7Civlip/lvrMgPiBrdWRva3VcIDsKK+W+jOS7uyA+IGtvdW5pblwgOwor5buD5p2QID4gaGFpemFpXCA7CivlhoXoh5MgPiBuYWl6b3VcIDsKK+W+jOS7tiA+IGtvdWtlblwgOwor6Imm6ZqKID4ga2FudGFpXCA7Civoi5foo5QgPiBieW91ZWlcIDsKK+WKoOW9uSA+IGtheWFrdVwgOwor6YG45omLID4gc2Vuc2h1XCA7Civlvozku6MgPiBrb3VkYWlcIDsKK+mxl+eJhyA+IHJpbnBlblwgOwor5byK5bqXID4gaGVpdGVuXCA7CivnnJ/nkIYgPiBzaGlucmlcIDsKK+WIg+eJqSA+IGhhbW9ub1wgOwor5YSV6LypID4gc2FpaGFpXCA7Civnmq7ohpwgPiBoaW1ha3VcIDsKK+W+jOS6uiA+IGtvdWppblwgOwor5b255YSAID4geWFrdWdpXCA7CivnnJ/nj6AgPiBzaGluanVcIDsKK+WQpuOAhSA+IGl5YWl5YVwgOwor5Ymq5patID4gc2VuZGFuXCA7CivlhazokawgPiBrb3Vzb3VcIDsKK+egguWgtCA+IHN1bmFiYVwgOwor5byB5b2TID4gYmVudG91XCA7CivlhoXohZQgPiBuYWlrb3VcIDsKK+mAk+a4myA+IHRlaWdlblwgOwor5beh6IiqID4ganVua291XCA7CivlvoDkv6EgPiBvdXNoaW5cIDsKK+i7jemWgCA+IGd1bm1vblwgOwor5bqn5qiZID4gemFoeW91XCA7CivmraPlvZMgPiBzZWl0b3VcIDsKK+iNkuelniA+IGtvdWppblwgOwor6a2a6YGTID4gZ3lvZG91XCA7CivmrbvlsY0gPiBzaGlzaGlcIDsKK+iJh+mmliA+IHRlaXNodVwgOwor6YKq5a6XID4gamFzaHV1XCA7CivmraPlvKYgPiBzZWlnZW5cIDsKK+iNieeovyA+IHNvdWtvdVwgOwor5YuH5ae/ID4geXV1c2hpXCA7Civlho3ogIMgPiBzYWlrb3VcIDsKK+WIhueFmSA+IGJ1bicnZW5cIDsKK+asoOacrCA+IGtlcHBvblwgOwor5b6M5LiWID4ga291c2VpXCA7CivlhYjooYwgPiBzZW5rb3VcIDsKK+i7n+mLvCA+IG5hbmtvdVwgOwor5q+O5YiGID4gbWFpZnVuXCA7CivliLbmraIgPiBzZWlzaGlcIDsKK+mDteWIuCA+IHl1dWtlblwgOwor6I2S56OvID4gYXJhaXNvXCA7Civou73ovKkgPiBrZWloYWlcIDsKK+iPr+aXjyA+IGthem9rdVwgOwor5b2i5YuiID4ga2Vpc2VpXCA7Civmp4vpgKAgPiBrb3V6b3VcIDsKK+iRl+WkpyA+IGNob2RhaVwgOwor5Ye654mpID4gZGVtb25vXCA7CivojIXoiI4gPiBib3VzaGFcIDsKK+W6p+alrSA+IHphZ3lvdVwgOwor5Yud5ZugID4gc2hvdWluXCA7Civnmb3ombkgPiBoYWtrb3VcIDsKK+earuiCiSA+IGhpbmlrdVwgOwor5YmN5qC9ID4gc2VuemFpXCA7Civpq5jpvaIgPiBrb3VyZWlcIDsKK+egsuWFtSA+IGhvdWhlaVwgOwor5YaF6IGeID4gbmFpYnVuXCA7CivliIbngrkgPiBidW50ZW5cIDsKK+atu+WuiCA+IHNoaXNodVwgOwor5bqV5q2iID4gdGVpc2hpXCA7CivlhbXoiLkgPiBoZWlzZW5cIDsKK+WIpeazlSA+IGJlcHBvdVwgOwor5Ye454mIID4gdG9wcGFuXCA7CivlhavojZIgPiBoYWtrb3VcIDsKK+mAmuawlyA+IHRzdXVraVwgOwor5Yqg5beeID4ga2FzaHV1XCA7CivmraPluL0gPiBzZWlib3VcIDsKK+WFteiIjiA+IGhlaXNoYVwgOwor5q2j5bi4ID4gc2Vpam91XCA7Civlu7vlu4ogPiBrYWlyb3VcIDsKK+mAn+atqSA+IHNva3Vob1wgOwor5bmy5r2fID4gaGlnYXRhXCA7Civou73ouoEgPiBrZWlzb3VcIDsKK+mBpeaLnSA+IHlvdWhhaVwgOwor6YGK5pifID4geXV1c2VpXCA7Civoirjoq4cgPiBnZWlkYW5cIDsKK+mBjuaWmSA+IGthcnlvdVwgOwor5YuH5aOuID4geXV1c291XCA7Civli4flo6sgPiB5dXVzaGlcIDsKK+ebo+emgSA+IGthbmtpblwgOwor5ben6ICFID4ga291c2hhXCA7CivlhKroq5ogPiB5dXVqb3VcIDsKK+mzqeW6pyA+IGhhdG96YVwgOwor55+t5aSnID4gdGFuZGFpXCA7Civlt6bnv7wgPiBzYXlva3VcIDsKK+iMtuethSA+IGNoYXNlblwgOwor5YmN5p2/ID4gbWFlaXRhXCA7Civlg7vpgaAgPiBoZWtpZW5cIDsKK+mrmOm6lyA+IGtvdXJhaVwgOwor6Lqr6aCDID4gbWlnb3JvXCA7Civnn7PloYogPiBzZWtrYWlcIDsKK+WJjeadoSA+IHplbmpvdVwgOwor5YWl6I23ID4gbnl1dWthXCA7CivltIfpq5ggPiBzdXVrb3VcIDsKK+WJsuaLoCA+IGtha2t5b1wgOwor5by35Zu6ID4ga3lvdWtvXCA7CivmrZPlvoUgPiBrYW50YWlcIDsKK+W5s+a6liA+IGhlaWp1blwgOwor6Ii56aaWID4gc2Vuc2h1XCA7CivlvJ/lprkgPiB0ZWltYWlcIDsKK+eXm+mjsiA+IHRzdXVpblwgOwor5Yq+5aWPID4gZ2Fpc291XCA7CivlubLmuoAgPiBrYW5tYW5cIDsKK+WJjeabuCA+IHplbnNob1wgOwor5bu25bm0ID4gZW4nJ25lblwgOwor55eF6a2UID4gYnlvdW1hXCA7CivluoPmsY4gPiBrb3VoYW5cIDsKK+WIqeassiA+IHJpeW9rdVwgOwor6YOt5YWsID4ga2Fra291XCA7CivlhazoiI4gPiBrb3VzaGFcIDsKK+W6reacqCA+IG5pd2FraVwgOwor5qW96Z+zID4gZ2FrdW9uXCA7CivmrovloYEgPiB6YW5ydWlcIDsKK+WFpeiLkSA+IG55dXVlblwgOwor6Iul6JGJID4gd2FrYWJhXCA7Civlh4bnnIsgPiBqdW5rYW5cIDsKK+WGjee3qCA+IHNhaWhlblwgOwor5YeN55ihID4gdG91c291XCA7CivluLjnlKggPiBqb3V5b3VcIDsKK+WLsuWKnyA+IGt1bmtvdVwgOwor5byK5a6zID4gaGVpZ2FpXCA7CivmraTlsrggPiBzaGlnYW5cIDsKK+WFqOiIuSA+IHplbnNlblwgOwor5bmz5rehID4gaGVpdGFuXCA7CivlhajoiKwgPiB6ZW5wYW5cIDsKK+WJjeaZryA+IHplbmtlaVwgOwor6YGg5oiaID4gZW5zZWtpXCA7CivmrrrliLAgPiBzYXR0b3VcIDsKK+WHuueBqyA+IHNodWtrYVwgOwor55uu55ubID4gbWVtb3JpXCA7Civoi6Xoj5wgPiB3YWthbmFcIDsKK+W4hueriyA+IGhvdGF0ZVwgOwor6YOh5Yi2ID4gZ3Vuc2VpXCA7Civpg7Xkvr8gPiB5dXViaW5cIDsKK+i7oumAgSA+IHRlbnNvdVwgOwor6YG35bu2ID4gc2VuJydlblwgOwor5q2m5bCGID4gYnVzaG91XCA7Civnm67nmb0gPiBtZWppcm9cIDsKK+W6tuaUvyA+IHNob3NlaVwgOwor55uq55uqID4gdG91dG91XCA7CivliJ3mrrUgPiBzaG9kYW5cIDsKK+W9k+WInSA+IHRvdXNob1wgOwor6Ii56aCtID4gc2VuZG91XCA7CivlvZPliIYgPiB0b3VidW5cIDsKK+mAseacnyA+IHNodXVraVwgOwor6YOO5ZCbID4gcm91a3VuXCA7CivlvJjlpKcgPiBrb3VkYWlcIDsKK+i/keeKtiA+IGtpbmpvdVwgOwor5beo57eoID4ga3lvaGVuXCA7CivmrovlnKggPiB6YW56b25cIDsKK+iKseimiyA+IGhhbmFtaVwgOwor5q+A5YK3ID4ga2lzaG91XCA7CivlhoXnt5ogPiBuYWlzZW5cIDsKK+W3p+e3uyA+IGtvdWNoaVwgOwor5qyg5pCNID4ga2Vzc29uXCA7CivlhoXnt5IgPiBuYWlzaG9cIDsKK+mBt+W5uCA+IHNlbmtvdVwgOwor5YiR5rOVID4ga2VpaG91XCA7Civps7TlrZAgPiBuYXJ1a29cIDsKK+WJjeaWhyA+IHplbmJ1blwgOwor6Ii36aCtID4gZ2VudG91XCA7CivmrablraYgPiBidWdha3VcIDsKK+mBo+aCtiA+IGtlbm1vblwgOwor5Ye65r2uID4gZGVzaGlvXCA7CivluK3nlLsgPiBzZWtpZ2FcIDsKK+mAhuavmyA+IHNha2FnZVwgOwor6YGp5b+cID4gdGVraW91XCA7CivprZrosp0gPiBneW9iYWlcIDsKK+iLpeiKvSA+IHdha2FtZVwgOwor6Lui6LyJID4gdGVuc2FpXCA7CivlhrfnnLwgPiByZWlnYW5cIDsKK+WLpOWLiSA+IGtpbmJlblwgOwor5Yqx5aOwID4gcmVpc2VpXCA7Civmq5vmr5QgPiBzaGlwcGlcIDsKK+mAgeawtCA+IHNvdXN1aVwgOwor5Yuk5Yq0ID4ga2lucm91XCA7CivluILnqI4gPiBzaGl6ZWlcIDsKK+egsuS4uCA+IGhvdWdhblwgOwor5q+N5LmzID4gYm9ueXV1XCA7Civou6Lou6IgPiB0ZW50ZW5cIDsKK+mBlOaIkCA+IHRhc3NlaVwgOwor5YaF57SbID4gbmFpZnVuXCA7Civli7/kvZMgPiBtb3R0YWlcIDsKK+WLmOWQiCA+IGthbmdvdVwgOwor6Iy256KXID4gY2hhd2FuXCA7Civou43phY0gPiBndW5iYWlcIDsKK+W5s+awtCA+IGhlaXN1aVwgOwor5byY5aCxID4ga291aG91XCA7Civps6XlsYsgPiB0b3JpeWFcIDsKK+asvuW+hSA+IGthbnRhaVwgOwor5bmz5rCRID4gaGVpbWluXCA7CivlubPmsI8gPiBoZWlzaGlcIDsKK+eZvuiKsSA+IGh5YWtrYVwgOwor6YCj5p6dID4gcmVuc2hpXCA7Civmr43kuIogPiBoYWhhdWVcIDsKK+WLleWQkSA+IGRvdWtvdVwgOwor55a+6aeGID4gc2hpa2t1XCA7Civlh73muKAgPiBrYW5reW9cIDsKK+i+sueUoyA+IG5vdXNhblwgOwor5YiR5q27ID4ga2Vpc2hpXCA7CivmpbzploAgPiByb3Vtb25cIDsKK+WFrOe9siA+IGtvdXNob1wgOwor556R5oOzID4gbWVpc291XCA7CivlubTmra8gPiBuZW5zaGlcIDsKK+mAoOaelyA+IHpvdXJpblwgOwor6Ii56ZqKID4gc2VudGFpXCA7CivpgaDlv4MgPiBlbnNoaW5cIDsKK+iLm+iLmyA+IGlyYWlyYVwgOwor5byx5ZGzID4geW93YW1pXCA7CivpganluqYgPiB0ZWtpZG9cIDsKK+WJiuaRqSA+IHNha3VtYVwgOwor6Lyq6JS1ID4gcmluem91XCA7CivlvL7lir4gPiBkYW5nYWlcIDsKK+mBlOaEjyA+IHRhdHN1aVwgOwor5bqV5pysID4gdGVpaG9uXCA7CivliLDmnaUgPiB0b3VyYWlcIDsKK+eZuuiJpiA+IGhha2thblwgOwor5YiO5q27ID4gZnVuc2hpXCA7Civou43pgZMgPiBndW5kb3VcIDsKK+WJteW7uiA+IHNvdWtlblwgOwor5YmN5o+QID4gemVudGVpXCA7CivmrbvlnLAgPiBzaGljaGlcIDsKK+WGrOedgCA+IGZ1eXVnaVwgOwor6YCg5pysID4gem91aG9uXCA7CivnnIvngrkgPiBrYW50ZW5cIDsKK+aso+aHkCA+IGtpbmthaVwgOwor6JaE44CFID4gdXN1dXN1XCA7CivliY3mjrIgPiB6ZW5rZWlcIDsKK+WGrOecoCA+IHRvdW1pblwgOwor55m66IiqID4gaGFra291XCA7Civli53liKkgPiBzaG91cmlcIDsKK+W3qOevhyA+IGt5b2hlblwgOwor55m76IeoID4gdG91cmluXCA7Civou4rpgZMgPiBzaGFkb3VcIDsKK+W8t+WMliA+IGt5b3VrYVwgOwor5q2j5aa7ID4gc2Vpc2FpXCA7Civovpvnm64gPiBrYXJhbWVcIDsKK+WLleWLoiA+IGRvdXNlaVwgOwor55e06YiNID4gY2hpZG9uXCA7CivokZflkI0gPiBjaG9tZWlcIDsKK+aui+WTgSA+IHphbnBpblwgOwor5bq45omNID4geW91c2FpXCA7Civli5XlirQgPiBkb3Vyb3VcIDsKK+i7kui8iiA+IGtlbmNoaVwgOwor5YWJ6IqSID4ga291Ym91XCA7CivluK/nirYgPiBvYmlqb3VcIDsKK+iLpuiCiSA+IGt1bmlrdVwgOwor6bOz5aOwID4gaG91c2VpXCA7CivpgKPmmJ8gPiByZW5zZWlcIDsKK+eah+iAgyA+IGtvdWtvdVwgOwor55uu546JID4gbWVkYW1hXCA7Civpq5jpqLAgPiBrb3V0b3VcIDsKK+iMtuebhiA+IGNoYWJvblwgOwor6YOO5YWaID4gcm91ZG91XCA7CivluIPnn7MgPiBmdXNla2lcIDsKK+iHpem+jSA+IGdhcnlvdVwgOwor5byB5aSpID4gYmVudGVuXCA7CivliIfmra8gPiBzZXNzaGlcIDsKK+i7veimliA+IGtlaXNoaVwgOwor55+t5ZG9ID4gdGFubWVpXCA7Civlt6PnrrEgPiBzdWJha29cIDsKK+auv+S4iiA+IHRlbmpvdVwgOwor6Ii36ZaAID4gZ2VubW9uXCA7CivpgbjlrpogPiBzZW50ZWlcIDsKK+WLh+WQjSA+IHl1dW1laVwgOwor5q2j5aSnID4gc2VpZGFpXCA7Civpq5Hpq48gPiBkb2t1cm9cIDsKK+WIqeacrSA+IHJpZnVkYVwgOwor6YG35a6uID4gc2VuZ3V1XCA7Civou6LosrggPiB0ZW50YWlcIDsKK+W5veajsiA+IHl1dXNlaVwgOwor5q2v5Z6iID4gc2hpa291XCA7CivlvIHlo6sgPiBiZW5zaGlcIDsKK+mBk+W/tSA+IGRvdW5lblwgOwor556z5a2UID4gZG91a291XCA7CivnnrPlrZAgPiBkb3VzaGlcIDsKK+atr+WeiyA+IGhhZ2F0YVwgOwor5b2T5LujID4gdG91ZGFpXCA7CivluormnLogPiBzaG91Z2lcIDsKK+WIpeadryA+IGJlcHBhaVwgOwor5YWI6IisID4gc2VucGFuXCA7CivlvZPku4ogPiB0b3Vrb25cIDsKK+WLpOWAuSA+IGtpbmtlblwgOwor5Ymb5oOFID4gZ291am91XCA7CivlvZPkurogPiB0b3VuaW5cIDsKK+mBteWuiCA+IGp1bnNodVwgOwor6LuK6LyqID4gc2hhcmluXCA7CivliJ3moKEgPiBzaG9rb3VcIDsKK+i7jei7iiA+IGd1bnNoYVwgOwor5q2M5a2mID4ga2FnYWt1XCA7CivpgKPmlZcgPiByZW5wYWlcIDsKK+WFqOe3qCA+IHplbnBlblwgOwor5bqV5pWwID4gdGVpc3V1XCA7Civlh7rmsLQgPiBkZW1penVcIDsKK+WFqOe3miA+IHplbnNlblwgOwor6Lu96KOFID4ga2Vpc291XCA7Civouqvpiq0gPiBtaXplbmlcIDsKK+iJpui8iSA+IGthbnNhaVwgOwor5YKN6aGMID4gYm91ZGFpXCA7CivpgZXlvI8gPiBpc2hpa2lcIDsKK+W6g+adsSA+IGthbnRvblwgOwor5biD55uuID4gbnVub21lXCA7Civlhbjnr4QgPiB0ZW5wYW5cIDsKK+W9k+S4uyA+IHRvdXNodVwgOwor55eF6ZmiID4gYnlvdWluXCA7CivpgIHmpJwgPiBzb3VrZW5cIDsKK+WzsOmgrSA+IGhvdXRvdVwgOwor55+l5ZG9ID4gY2hpbWVpXCA7Civlub3moJYgPiB5dXVzZWlcIDsKK+ebl+eUqCA+IHRvdXlvdVwgOwor5Ymb5oCnID4gZ291c2VpXCA7CivmrKPlv6sgPiBraW5rYWlcIDsKK+W9k+S4liA+IHRvdXNlaVwgOwor5YWr57SYID4gaGFra291XCA7Civli4nlirEgPiBiZW5yZWlcIDsKK+mAn+aUuyA+IHNva2tvdVwgOwor5Ye65q67ID4gZGVnYXJhXCA7CivlhY7ogokgPiB0b25pa3VcIDsKK+ecoOawlyA+IG5lbXVrZVwgOwor6Iy255WqID4gY2hhYmFuXCA7CivnnJ/msLQgPiBtYW1penVcIDsKK+W3pueoiyA+IHNhaG9kb1wgOwor5YiG5qipID4gYnVua2VuXCA7Civpq5jpoqggPiBrb3VmdXVcIDsKK+efpeWQjSA+IGNoaW1laVwgOwor5bel56iLID4ga291dGVpXCA7Civlub3mnpcgPiB5dXVyaW5cIDsKK+i/lOa4iCA+IGhlbnNhaVwgOwor5YWo57SZID4gemVuc2hpXCA7Civlhqznk5wgPiB0b3VnYW5cIDsKK+auiuWLsiA+IHNodWt1blwgOwor5YWJ6IOMID4ga291aGFpXCA7Civou4zot6EgPiBraXNla2lcIDsKK+W8seWGoCA+IGpha2thblwgOwor5by+5YCJID4gZGFuc291XCA7Civnn6Xlj4sgPiBjaGl5dXVcIDsKK+WKoOWcpyA+IGthYXRzdVwgOwor6Iy255O2ID4gY2hhYmluXCA7CivpgKPmkLogPiByZW5rZWlcIDsKK+WIneabtCA+IHNob2tvdVwgOwor5Yip5pW1ID4gcml0ZWtpXCA7CivliKTmmI4gPiBoYW5tZWlcIDsKK+atu+WRvSA+IHNoaW1laVwgOwor6YGp5a6cID4gdGVraWdpXCA7Civmrorlip8gPiBzaHVrb3VcIDsKK+W8peWLkiA+IG1pcm9rdVwgOwor5Yal55WMID4gbWVpa2FpXCA7Civoiq3olYkgPiBiYXNob3VcIDsKK+mBi+W8kyA+IHVua3l1dVwgOwor5Ymj5bivID4ga2VudGFpXCA7CivpgIDmoKEgPiB0YWlrb3VcIDsKK+mrmOmfsyA+IHRha2FuZVwgOwor6Imv6LKoID4gcnlvdWthXCA7CivlhbXnq68gPiBoZWl0YW5cIDsKK+efreWJoyA+IHRhbmtlblwgOwor5YWI6IGWID4gc2Vuc2VpXCA7CivlhajnsbMgPiB6ZW5iZWlcIDsKK+ebsueCuSA+IG1vdXRlblwgOwor5Yik5patID4gaGFuZGFuXCA7CivlhbXnq5kgPiBoZWl0YW5cIDsKK+atk+WjsCA+IGthbnNlaVwgOwor5qy95a6aID4ga2ludGVpXCA7CivpgI/mmI4gPiB0b3VtZWlcIDsKK+mHjeOAhSA+IGp1dWp1dVwgOwor6Luf6KuWID4gbmFucm9uXCA7CivpgrjlhoUgPiB0ZWluYWlcIDsKK+eah+e1sSA+IGtvdXRvdVwgOwor6L+R5rW3ID4ga2lua2FpXCA7CivlhY3nvaogPiBtZW56YWlcIDsKK+W7g+W4nSA+IGhhaXRlaVwgOwor5YWI6ICDID4gc2Vua291XCA7Civnn63liIAgPiB0YW50b3VcIDsKK+WLmOS+iyA+IGthbnJlaVwgOwor5YWs566XID4ga291c2FuXCA7CivoiIzpoK0gPiB6ZXR0b3VcIDsKK+mBuOWkliA+IHNlbmdhaVwgOwor5q275Y67ID4gc2hpa3lvXCA7Civou43os4cgPiBndW5zaGlcIDsKK+asp+W3niA+IG91c2h1dVwgOwor5byV5ZCIID4gaGlraWFpXCA7Civlub3mma8gPiB5dXVrZWlcIDsKK+mBiuW6lSA+IHl1dXRlaVwgOwor55+l5YuHID4gY2hpeXV1XCA7Civnn6nliYcgPiBrdXNva3VcIDsKK+W3oeekvCA+IGp1bnJlaVwgOwor6YG15aWJID4ganVucG91XCA7CivlubTmnaUgPiBuZW5yYWlcIDsKK+WIneaXrCA+IHNob2p1blwgOwor5bmz5p2/ID4gaGVpYmFuXCA7CivlhIDooaggPiBnaWh5b3VcIDsKK+atjuWjsCA+IHRhbnNlaVwgOwor5YWo56+HID4gemVucGVuXCA7CivlhbXnqK4gPiBoZWlzaHVcIDsKK+W3qOegsiA+IGt5b2hvdVwgOwor55qG57SNID4ga2Fpbm91XCA7Civoh7Ppq5ggPiBzaGlrb3VcIDsKK+W5veaYjiA+IHl1dW1laVwgOwor5q6L5YWaID4gemFudG91XCA7CivmrKHluK0gPiBqaXNla2lcIDsKK+atjOWjsCA+IHV0YWdvZVwgOwor5qih57SiID4gbW9zYWt1XCA7CivmrovlhYkgPiB6YW5rb3VcIDsKK+WLleS9kyA+IGRvdXRhaVwgOwor5YWD6ICBID4gZ2Vucm91XCA7Civprq7ntIUgPiBzZW5rb3VcIDsKK+WJr+WumCA+IGZ1a2thblwgOwor6Iqz6I2JID4gaG91c291XCA7CivnnJ/mqKogPiBtYXlva29cIDsKK+WFq+erryA+IGhhdHRhblwgOwor5ben55+lID4ga291Y2hpXCA7CivliIbmoKEgPiBidW5rb3VcIDsKK+mAo+aKlSA+IHJlbnRvdVwgOwor5YW456S8ID4gdGVucmVpXCA7Civnm5fniq8gPiB0b3VoYW5cIDsKK+W8vuS4uCA+IGRhbmdhblwgOwor5q2M5aKDID4ga2FreW91XCA7CivlhpnnlJ8gPiBzaGFzZWlcIDsKK+aui+WDjyA+IHphbnpvdVwgOwor5Yq05YuVID4gcm91ZG91XCA7Civmranlk6ggPiBob3Nob3VcIDsKK+ecjOawkSA+IGtlbm1pblwgOwor5YuH5YGlID4geXV1a2VuXCA7CivlhpfnlKggPiBqb3V5b3VcIDsKK+WJquWumiA+IHNlbnRlaVwgOwor5Ymj5bGxID4ga2VuemFuXCA7CivlirTlip8gPiByb3Vrb3VcIDsKK+mAo+aIpiA+IHJlbnNlblwgOwor5Ya354S2ID4gcmVpemVuXCA7CivnoILkuJggPiBzYWt5dXVcIDsKK+WLleS5sSA+IGRvdXJhblwgOwor5Yi25oayID4gc2Vpa2VuXCA7CivlvJPli6IgPiB5dW56ZWlcIDsKK+WGheecgSA+IG5haXNlaVwgOwor5buD5bGxID4gaGFpemFuXCA7CivliY3luq0gPiB6ZW50ZWlcIDsKK+W5s+aYjiA+IGhlaW1laVwgOwor5q275YiRID4gc2hpa2VpXCA7CivlibXlp4sgPiBzb3VzaGlcIDsKK+ecieavmyA+IG1heXVnZVwgOwor6YCg5oiQID4gem91c2VpXCA7Civlt6jnm5cgPiBreW90b3VcIDsKK+W7g+WxiyA+IGhhaW9rdVwgOwor5YiH5pu/ID4gc2V0dGFpXCA7Civlhaznp4EgPiBrb3VzaGlcIDsKK+atu+WHpiA+IHNoaXNob1wgOwor6YCD5pWjID4gdG91c2FuXCA7Civouqvou70gPiBtaWdhcnVcIDsKK+WFiee3miA+IGtvdXNlblwgOwor5buj5aCxID4ga291aG91XCA7Civnn6LlhYggPiB5YXNha2lcIDsKK+W5s+aWuSA+IGhlaWhvdVwgOwor6LuN6KuHID4gZ3VuZGFuXCA7Civoj6/lrqIgPiBrYWtha3VcIDsKK+mBjuWwkSA+IGthc2hvdVwgOwor6YGO5bCPID4ga2FzaG91XCA7CivlubTmlbAgPiBuZW5zdXVcIDsKK+ato+WRsyA+IHNob3VtaVwgOwor6YCA5pWjID4gdGFpc2FuXCA7CivlhaznpL4gPiBrb3VzaGFcIDsKK+iKuOiDvSA+IGdlaW5vdVwgOwor6YCj5oOzID4gcmVuc291XCA7Civlho3nlJ8gPiBzYWlzZWlcIDsKK+aui+S9mSA+IHphbicneW9cIDsKK+mBjuWuoiA+IGtha2FrdVwgOwor6YGj5aSWID4ga2VuZ2FpXCA7CivlhqDnirYgPiBrYW5qb3VcIDsKK+asoeWwhiA+IGppc2hvdVwgOwor5byB5Y+jID4gYmVua291XCA7CivlubLmlK8gPiBrYW5zaGlcIDsKK+eak+ekrCA+IGtvdWJhblwgOwor5q2j5Y+3ID4gc2VpZ291XCA7CivmraPlj7IgPiBzZWlzaGlcIDsKK+iLpueskSA+IGt1c2hvdVwgOwor5YWo56S+ID4gemVuc2hhXCA7CivliIbmmI4gPiBidW5tZWlcIDsKK+W8k+WFtyA+IGt5dXVndVwgOwor6YCy5bqmID4gc2hpbmRvXCA7CivnmYzohasgPiBnYW5zaHVcIDsKK+WKo+WLoiA+IHJlc3NlaVwgOwor5Yq05YONID4gcm91ZG91XCA7Civnn67kurogPiB3YWlqaW5cIDsKK+W7u+WQkSA+IGthaWtvdVwgOwor6I2S5rW3ID4gYXJhdW1pXCA7Civps7Tli5UgPiBtZWlkb3VcIDsKK+WGheeVjCA+IG5haWthaVwgOwor5bqn5bitID4gemFzZWtpXCA7CivmraPljZcgPiBzZWluYW5cIDsKK+iKuOiAhSA+IGdlaXNoYVwgOwor6YGK5a2QID4geXV1c2hpXCA7CivmraPljYggPiBzaG91Z29cIDsKK+WGheeUqCA+IG5haXlvdVwgOwor5Yil5oeHID4gYmVra29uXCA7CivliLblvqEgPiBzZWlneW9cIDsKK+WIhuaVsCA+IGJ1bnN1dVwgOwor5YiG5pWjID4gYnVuc2FuXCA7CivlhKrogIUgPiB5dXVzaGFcIDsKK+eZu+esrCA+IHRvdWRhaVwgOwor5q2v5YagID4gc2hpa2FuXCA7Civlho3nj74gPiBzYWlnZW5cIDsKK+W6t+WvpyA+IGtvdW5laVwgOwor5YWs55+lID4ga291Y2hpXCA7Civlip/lirQgPiBrb3Vyb3VcIDsKK+ashOW5siA+IHJhbmthblwgOwor5YiX5oyZID4gcmVra3lvXCA7CivliY3lsbEgPiB6ZW56YW5cIDsKK+W8peS5hSA+IGJpa3l1dVwgOwor55m656uvID4gaG90dGFuXCA7CivliJ3miKYgPiBzaG9zZW5cIDsKK+i7jeijhSA+IGd1bnNvdVwgOwor5Yil5oSPID4gYmV0c3VpXCA7Civlh7rmmYIgPiBkZWRva2lcIDsKK+mAo+W8viA+IHJlbmRhblwgOwor5YWo55+lID4gemVuY2hpXCA7Civnn6XkurogPiBjaGlqaW5cIDsKK+iMq+eEtiA+IGJvdXplblwgOwor6LyU57+8ID4gaG95b2t1XCA7CivovrLms5UgPiBub3Vob3VcIDsKK+atjOWUsSA+IGthc2hvdVwgOwor5Yip5oGvID4gcmlzb2t1XCA7CivlupzluoEgPiBmdWNob3VcIDsKK+ecn+aalyA+IG1ha3VyYVwgOwor5bq25a2QID4gc2hvc2hpXCA7Civoj6/lpaIgPiBreWFzaGFcIDsKK+iHs+mboyA+IHNoaW5hblwgOwor5YeN5q27ID4gdG91c2hpXCA7CivlirTkvb8gPiByb3VzaGlcIDsKK+W7ieWjsiA+IHJlbmJhaVwgOwor6YCg5b2iID4gem91a2VpXCA7CivmrbvkvZMgPiBzaGl0YWlcIDsKK+mAouW8lSA+IGFpYmlraVwgOwor5YGc6aCTID4gdGVpdG9uXCA7Civnmb7np5EgPiBoeWFra2FcIDsKK+mBuuWRiiA+IHl1aWdvdVwgOwor5Ye95pWwID4ga2Fuc3V1XCA7Civlhrfmt6EgPiByZWl0YW5cIDsKK+mAhuaJiyA+IHNha2F0ZVwgOwor55yf5pi8ID4gbWFoaXJ1XCA7Civlh7rmlrkgPiBkZWthdGFcIDsKK+mBk+WjqyA+IGRvdXNoaVwgOwor5YmN5a6YID4gemVua2FuXCA7CivliaPlo6sgPiBrZW5zaGlcIDsKK+WFrOebiiA+IGtvdWVraVwgOwor6Ii56LevID4gZnVuYWppXCA7CivpgqbkurogPiBob3VqaW5cIDsKK+eWjumalCA+IHNva2FrdVwgOwor5Yi25bi9ID4gc2VpYm91XCA7CivliqDlhaUgPiBrYW55dXVcIDsKK+WGjeeKryA+IHNhaWhhblwgOwor5YWI56uvID4gc2VudGFuXCA7CivovrLmsJEgPiBub3VtaW5cIDsKK+mBoOWbvSA+IG9uZ29rdVwgOwor5YW355SzID4gZ3VzaGluXCA7CivojbfmnK0gPiBuaWZ1ZGFcIDsKK+W4reasoSA+IHNla2lqaVwgOwor5Yip5b6XID4gcml0b2t1XCA7Civlhajnm7IgPiB6ZW5tb3VcIDsKK+atu+S6oSA+IHNoaWJvdVwgOwor5beo542jID4ga3lvanV1XCA7CivlsrjpoK0gPiBnYW50b3VcIDsKK+iQveS8jSA+IHJha3Vnb1wgOwor5q2j5YW1ID4gc2VpaGVpXCA7Civlhajnm5sgPiB6ZW5zZWlcIDsKK+i5iOmetCA+IHRhdGFyYVwgOwor6YCj5bivID4gcmVudGFpXCA7CivpgJ/luqYgPiBzb2t1ZG9cIDsKK+WIsOW6lSA+IHRvdXRlaVwgOwor5YWN56iOID4gbWVuemVpXCA7Civlho3niYggPiBzYWloYW5cIDsKK+WJr+WboCA+IGZ1a3VpblwgOwor55m656aBID4gaGFra2luXCA7CivoiIzpi5IgPiB6ZXBwb3VcIDsKK+mAoOW5oyA+IHpvdWhlaVwgOwor6YGT5aC0ID4gZG91am91XCA7CivmqJnnpLogPiBoeW91amlcIDsKK+W7g+WinyA+IGhhaWt5b1wgOwor5bmz5omLID4gaGlyYXRlXCA7Civov5Tmna8gPiBoZW5wYWlcIDsKK+WBnOmbuyA+IHRlaWRlblwgOwor5YGl6ZeYID4ga2VudG91XCA7CivoiJ/pgYsgPiBzaHV1dW5cIDsKK+aoquebriA+IHlva29tZVwgOwor5bmz5oiQID4gaGVpc2VpXCA7Civlh7Hml4sgPiBnYWlzZW5cIDsKK+WOreOAhSA+IGl5YWl5YVwgOwor55uu5qyhID4gbW9rdWppXCA7Civlhrfms4kgPiByZWlzZW5cIDsKK+WFqOeZkiA+IHplbicneXVcIDsKK+eZveejgSA+IGhha3VqaVwgOwor6L+U5pysID4gaGVucG9uXCA7CivliKXlvaIgPiBiZWtrZWlcIDsKK+W5u+aDsyA+IGdlbnNvdVwgOwor55yL5p2/ID4ga2FuYmFuXCA7Civlho3nh4MgPiBzYWluZW5cIDsKK+edgOaEjyA+IGNoYWt1aVwgOwor5YaF54q2ID4gbmFpam91XCA7CivliKXlvZMgPiBiZXR0b3VcIDsKK+i/keadsSA+IGtpbnRvdVwgOwor5bu65YW3ID4gdGF0ZWd1XCA7Civov5HmnaUgPiBraW5yYWlcIDsKK+i/lOabuCA+IGhlbnNob1wgOwor5bqP5bmVID4gam9tYWt1XCA7CivlgbTpjpYgPiBzb2t1c2FcIDsKK+amguirliA+IGdhaXJvblwgOwor55eF6LqvID4gYnlvdWt1XCA7Civmpb3orZwgPiBnYWt1ZnVcIDsKK+WGt+axlyA+IHJlaWthblwgOwor5YiG5ouFID4gYnVudGFuXCA7CivovqPmsrkgPiByYXpleXVcIDsKK+mrmOmFjSA+IGtvdWhhaVwgOwor5bu35YaFID4gdGVpbmFpXCA7CivliofljJYgPiBnZWtpa2FcIDsKK+WGt+awtCA+IHJlaXN1aVwgOwor5Yid5b+XID4gc2hvc2hpXCA7CivlhaznlLAgPiBrb3VkZW5cIDsKK+mChOWFgyA+IGthbmdlblwgOwor6YCV5bqtID4ga2VpdGVpXCA7CivliKnluYUgPiByaWhhYmFcIDsKK+WFrOeUqCA+IGtvdXlvdVwgOwor5Yeh5pu4ID4gYm9uc2hvXCA7CivpgKPls7AgPiByZW5wb3VcIDsKK+WKh+WLmSA+IGdla2ltdVwgOwor5beh54upID4ganVuc2h1XCA7CivliIfmiYsgPiBraXJldGVcIDsKK+W5u+aAqiA+IGdlbmthaVwgOwor6L+95oWVID4gdHN1aWJvXCA7CivmrabkvqAgPiBidWt5b3VcIDsKK+eZuuegsiA+IGhhcHBvdVwgOwor5buD5Z2RID4gaGFpa291XCA7CivouqvoqLEgPiBtaW1vdG9cIDsKK+mBqeWQpiA+IHRla2loaVwgOwor5Ye65o6bID4gZGVnYWtlXCA7Civlhobnhp8gPiBlbmp1a3VcIDsKK+WFqOeUsiA+IHplbmtvdVwgOwor6L+R5pmvID4ga2lua2VpXCA7CivmrYzliocgPiBrYWdla2lcIDsKK+mAo+WxsSA+IHJlbnphblwgOwor6auY6YKBID4ga291bWFpXCA7CivliY3lpY8gPiB6ZW5zb3VcIDsKK+W6l+WxiyA+IG1pc2V5YVwgOwor5Yem5pa5ID4gc2hvaG91XCA7CivoiKrotbAgPiBrb3Vzb3VcIDsKK+WHpuaWrSA+IHNob2RhblwgOwor6YGN5ZyoID4gaGVuemFpXCA7CivmraPkvb8gPiBzZWlzaGlcIDsKK+WIu+WtlyA+IGtva3VqaVwgOwor5Yil5be7ID4gYmVra2FuXCA7CivlhpfmvKsgPiBqb3VtYW5cIDsKK+amguimsyA+IGdhaWthblwgOwor5YmN5aScID4gemVuJyd5YVwgOwor5bu65YCkID4gdGF0ZW5lXCA7CivlubvlvbEgPiBnZW4nJ2VpXCA7CivpgKPlsIQgPiByZW5zaGFcIDsKK+WJjeWjsiA+IG1hZXVyaVwgOwor5qaC6KaBID4gZ2FpeW91XCA7Civlgo3ovKkgPiBob3ViYWlcIDsKK+eZveeciSA+IGhha3ViaVwgOwor5bOh6YOoID4ga3lvdWJ1XCA7CivliLblrpogPiBzZWl0ZWlcIDsKK+ato+S8nSA+IHNlaWRlblwgOwor6Lu9572qID4ga2VpemFpXCA7CivnlarpoK0gPiBiYW50b3VcIDsKK+WIneW5tCA+IHNob25lblwgOwor6L+w5oeQID4ganVra2FpXCA7CivovpvmsJcgPiBzaGlua2lcIDsKK+alveimsyA+IHJha2thblwgOwor5Ymy5ZCIID4gd2FyaWFpXCA7CivmpbzoprMgPiByb3VrYW5cIDsKK+iLpueXmyA+IGt1dHN1dVwgOwor5biM5rGCID4ga2lreXV1XCA7Civlub7lubQgPiBpa3VuZW5cIDsKK+WGrOavmyA+IGZ1eXVnZVwgOwor5YWI55+lID4gc2VuY2hpXCA7CivlupflrZAgPiB0YW5ha29cIDsKK+mtmue+pCA+IGd5b2d1blwgOwor6YGh5Y+KID4gc29reXV1XCA7CivpgIDlvbkgPiB0YWlla2lcIDsKK+W5vOW5tCA+IHlvdW5lblwgOwor6L+C5puyID4gdWt5b2t1XCA7CivlhKrnrYkgPiB5dXV0b3VcIDsKK+i7jeiRrCA+IGd1bnNvdVwgOwor5Ymy5Y2wID4gd2FyaWluXCA7Civoj6/llYYgPiBrYXNob3VcIDsKK+WIqeWwvyA+IHJpbnlvdVwgOwor5YW154e5ID4gaGVpc2VuXCA7Civlu7bkvLggPiBlbnNoaW5cIDsKK+W6iuWxiyA+IHRva295YVwgOwor6YCA5bu3ID4gdGFpdGVpXCA7CivmqKnnj74gPiBnb25nZW5cIDsKK+WBtOmDqCA+IHNva3VidVwgOwor5biw5pydID4ga2ljaG91XCA7CivluLDmnI0gPiBraWZ1a3VcIDsKK+ecvOW6lSA+IGdhbnRlaVwgOwor6YCA5buDID4gdGFpaGFpXCA7CivliKXlsYUgPiBiZWtreW9cIDsKK+eVmemjsiA+IHJ5dXVpblwgOwor5Yiq5a6aID4gc2FudGVpXCA7Civpga7lhYkgPiBzaGFrb3VcIDsKK+WJjeWdiiA+IHplbmJvdVwgOwor6Luf6IaPID4gbmFua291XCA7CivmrITlpJYgPiByYW5nYWlcIDsKK+WGoOawtCA+IGthbnN1aVwgOwor5Yil5bCBID4gYmVwcHV1XCA7CivnnLzluK8gPiBnYW50YWlcIDsKK+W5s+W5tCA+IGhlaW5lblwgOwor5bmz5bmzID4gaGVpaGVpXCA7Civoh4bpnaIgPiBva3VtZW5cIDsKK+W7g+WTgSA+IGhhaWhpblwgOwor6L+35b2pID4gbWVpc2FpXCA7CivluILmsJEgPiBzaGltaW5cIDsKK+W6hOWxiyA+IHNob3V5YVwgOwor6Imy6ImyID4gaXJvaXJvXCA7Civpq5jouI8gPiBrb3V0b3VcIDsKK+WGoOavmyA+IGthbm1vdVwgOwor5beo5ryiID4ga3lva2FuXCA7CivluLjmlbAgPiBqb3VzdXVcIDsKK+WJteWIiiA+IHNvdWthblwgOwor5YWI55m7ID4gc2VudG91XCA7CivliY3lm54gPiB6ZW5rYWlcIDsKK+i+suaelyA+IG5vdXJpblwgOwor5bmz5bi4ID4gaGVpam91XCA7Civoi5TnmawgPiB0YWlzZW5cIDsKK+eZsueZhyA+IHRlbmthblwgOwor6I2J5qC5ID4gc291a29uXCA7CivnmbvnlKggPiB0b3V5b3VcIDsKK+mrmOi3nSA+IGtvdWt5b1wgOwor5Yik5a6aID4gaGFudGVpXCA7CivliKTlrpggPiBoYW5nYW5cIDsKK+W3neeArCA+IGthd2FzZVwgOwor5bu35LiBID4gdGVpdGVpXCA7CivnmbrnlJ8gPiBoYXNzZWlcIDsKK+i+suadkSA+IG5vdXNvblwgOwor5YG06L+RID4gc29ra2luXCA7Civnm6TmoLkgPiBiYW5rb25cIDsKK+iOmuW4rSA+IGVuc2VraVwgOwor55yf5oSPID4gc2hpbicnaVwgOwor6a2C6IOGID4ga29udGFuXCA7CivliJfls7YgPiByZXR0b3VcIDsKK+i9n+eEtiA+IGdvdXplblwgOwor5buD5ZCIID4gaGFpZ291XCA7CivliKXlrKogPiBiZXBwaW5cIDsKK+asoOWTgSA+IGtlcHBpblwgOwor6a2a57ayID4gZ3lvbW91XCA7CivpgKPlpY8gPiByZW5zb3VcIDsKK+WGhea5ryA+IHVjaGl5dVwgOwor55Sf6bqpID4gbmFtYWZ1XCA7Civlub3lsYUgPiB5dXVreW9cIDsKK+mAo+WknCA+IHJlbicneWFcIDsKK+W3oea8lCA+IGp1bicnZW5cIDsKK+WIhuW6lyA+IGJ1bnRlblwgOwor5q2M5LyaID4gdXRha2FpXCA7CivlhoXmuK8gPiBuYWlrb3VcIDsKK+WFrOeEtiA+IGtvdXplblwgOwor5be75q+bID4gbWFraWdlXCA7Civou43oiaYgPiBndW5rYW5cIDsKK+mAo+WjsCA+IHJlbmpvdVwgOwor6Ieq6YeNID4gamljaG91XCA7CivlhoXmuIggPiBuYWlzYWlcIDsKK+WFiOeVqiA+IHNlbmJhblwgOwor6YGK5ZCfID4geXV1Z2luXCA7CivpgYrlkJsgPiB5dXVrdW5cIDsKK+i7jeiIuSA+IGd1bnNlblwgOwor6I+v5YyXID4ga2Fob2t1XCA7CivojYnmnKwgPiBzb3Vob25cIDsKK+ebsuaWrSA+IG1vdWRhblwgOwor552A5bC6ID4ga2lqYWt1XCA7CivoiajoiZ8gPiBtb3Vkb3VcIDsKK+i/lOaIuyA+IGhlbnJlaVwgOwor5YWI55SfID4gc2Vuc2VpXCA7CivliarliIAgPiBzZW50b3VcIDsKK+WBvei2syA+IGdpc29rdVwgOwor6I2J5pu4ID4gc291c2hvXCA7CivlhajnhLYgPiB6ZW56ZW5cIDsKK+WIl+WvpyA+IHJlZW5pblwgOwor6a2a57K+ID4gZ3lvc2VpXCA7CivoiaboiYcgPiBrYW50ZWlcIDsKK+iJpuiIuSA+IGthbnNlblwgOwor5YaF5rW3ID4gbmFpa2FpXCA7Civnm67mlrkgPiBtZWthdGFcIDsKK+WHoeaJjSA+IGJvbnNhaVwgOwor5Yeh5omLID4gYm9uc2h1XCA7CivlhYnnkrAgPiBrb3VrYW5cIDsKK+WFheeUqCA+IGp1dXlvdVwgOwor6Lyd55+zID4ga2lzZWtpXCA7CivprZrnsokgPiBneW9mdW5cIDsKK+WHoeaIpiA+IGJvbnNlblwgOwor5bq45ZCbID4geW91a3VuXCA7CivlgKTpoIMgPiBuZWdvcm9cIDsKK+WHtuW+kiA+IGt5b3V0b1wgOwor55aO6YCaID4gc290c3V1XCA7Civoh7Pov5EgPiBzaGlraW5cIDsKK+W5ouW5oSA+IGRvdWJhblwgOwor5bmz5bGLID4gaGlyYXlhXCA7CivpgYXlj4IgPiBjaGlzYW5cIDsKK+mAhuWtkCA+IHNha2Fnb1wgOwor55m954uQID4gYnlha2tvXCA7CivlgKTpnpggPiBuZXpheWFcIDsKK+WHuuW6qyA+IHNodWtrb1wgOwor6L+95bC+ID4gdHN1aWJpXCA7CivliIDlt6UgPiB0b3Vrb3VcIDsKK+WHuuW6nCA+IHNodXBwdVwgOwor5Yid5amaID4gc2hva29uXCA7Civlh7rlupcgPiBkZW1pc2VcIDsKK+WGheayuyA+IG5haWNoaVwgOwor6L6y5pS/ID4gbm91c2VpXCA7CivliZvli4cgPiBnb3V5dXVcIDsKK+asoOWLpCA+IGtla2tpblwgOwor5YWx5ryUID4ga3lvdWVuXCA7Civoh6rpgakgPiBqaXRla2lcIDsKK+WHoeaFriA+IGJvbnJ5b1wgOwor5buD5YiKID4gaGFpa2FuXCA7CivpgIDlrpggPiB0YWlrYW5cIDsKK+ecvOWtlCA+IGdhbmtvdVwgOwor55WM6Z2iID4ga2FpbWVuXCA7Civlt6Xms5UgPiBrb3Vob3VcIDsKK+mBr+S4liA+IHRvbnNlaVwgOwor5bmz5a6aID4gaGVpdGVpXCA7Civoj6/lhpEgPiBrYWNodXVcIDsKK+i8queVqiA+IHJpbmJhblwgOwor5bmy5a6zID4ga2FuZ2FpXCA7Civlh7rluKsgPiBzdWlzaGlcIDsKK+mAoOWeiyA+IHpvdWtlaVwgOwor6Iiq6KGMID4ga291a291XCA7CivliY3lkI0gPiB6ZW5tZWlcIDsKK+WHveW2uiA+IGthbnJlaVwgOwor6YGT5YWDID4gZG91Z2VuXCA7CivnmYznoJQgPiBnYW5rZW5cIDsKK+WJjeWPtyA+IHplbmdvdVwgOwor5Yik5aOrID4gaGFuc2hpXCA7CivliY3lj7IgPiB6ZW5zaGlcIDsKK+i8queUnyA+IHJpbnNlaVwgOwor5YaF5rCXID4gdWNoaWtpXCA7Civlgo3oqJMgPiBib3VrdW5cIDsKK+ecuOWtkCA+IGJvdXNoaVwgOwor6YGF5Yq5ID4gY2hpa291XCA7Civnm5vmmpEgPiBzZWlzaG9cIDsKK+i/keaDhSA+IGtpbmpvdVwgOwor5buD5YW1ID4gaGFpaGVpXCA7CivlhY3nirYgPiBtZW5qb3VcIDsKK+WFqOa9sCA+IHplbmthaVwgOwor5bqD5aSnID4ga291ZGFpXCA7Civpq5joq5YgPiBrb3Vyb25cIDsKK+W4huahgSA+IGhvZ2V0YVwgOwor6auY6KuHID4ga291ZGFuXCA7CivmqZ/mpa0gPiBraWd5b3VcIDsKK+mAk+WilyA+IHRlaXpvdVwgOwor5bmV5bqcID4gYmFrdWZ1XCA7CivluK3mjbIgPiBzZWtrZW5cIDsKK+iNt+W9uSA+IG5peWFrdVwgOwor5bm75ae/ID4gZ2Vuc2hpXCA7CivlhoXmrr8gPiBuYWlkZW5cIDsKK+W6g+WjriA+IGtvdXNvdVwgOwor5YKN6KazID4gYm91a2FuXCA7Civoj6/lg5EgPiBrYWt5b3VcIDsKK+W4neaUvyA+IHRlaXNlaVwgOwor55WM6ZqIID4ga2Fpd2FpXCA7CivliIblsIEgPiBidW5wb3VcIDsKK+WIpeWgsSA+IGJlcHBvdVwgOwor5YWs5rqWID4ga291anVuXCA7Civlgo3oppYgPiB3YWtpbWlcIDsKK+WJjeWNiiA+IHplbnBhblwgOwor55m954WZID4gaGFrdWVuXCA7Civlub3lpZEgPiB5dXVrZWlcIDsKK+eUn+muriA+IHNlaXNlblwgOwor6IuU54q2ID4gdGFpam91XCA7CivprZTnrJsgPiBtYXRla2lcIDsKK+WJteS4liA+IHNvdXNlaVwgOwor55uG5qC9ID4gYm9uc2FpXCA7Civpq5joqIAgPiBrb3VnZW5cIDsKK+i3s+mmrCA+IGNob3ViYVwgOwor5bi45oWLID4gam91dGFpXCA7CivluoPloLQgPiBoaXJvYmFcIDsKK+W6g+WgsSA+IGtvdWhvdVwgOwor5bGx6aGbID4gc2FudGVuXCA7CivliIblrZAgPiBidW5zaGlcIDsKK+iHqui6qyA+IGppc2hpblwgOwor5YW15rOVID4gaGVpaG91XCA7CivlgZzou4ogPiB0ZWlzaGFcIDsKK+W5tOWniyA+IG5lbnNoaVwgOwor6auY6KanID4ga291cmFuXCA7CivnlJjpr5sgPiBhbWFkYWlcIDsKK+i/keW9sSA+IGtpbicnZWlcIDsKK+W6g+WfnyA+IGtvdWlraVwgOwor5qiq5rqiID4gb3VpdHN1XCA7Civlhqzml6UgPiBmdXl1YmlcIDsKK+mrmOimiyA+IHRha2FtaVwgOwor5YOn57axID4gc291Z291XCA7CivliY3liY0gPiBtYWVtYWVcIDsKK+W6p+WNkyA+IHphdGFrdVwgOwor5YWs5rW3ID4ga291a2FpXCA7CivlhqDmnKggPiBrYWJ1a2lcIDsKK+iJr+e4gSA+IHJ5b3VlblwgOwor5Ymb5YGlID4gZ291a2VuXCA7Civlgb3oqLwgPiBnaXNob3VcIDsKK+mBjuS/oSA+IGthc2hpblwgOwor5biC5pyJID4gc2hpeXV1XCA7Civluq3liY0gPiB0ZWl6ZW5cIDsKK+WEqueUnyA+IHl1dXNlaVwgOwor5qSc6LuKID4ga2Vuc2hhXCA7Civlupflk6EgPiB0ZW4nJ2luXCA7CivpgLLljJYgPiBzaGlua2FcIDsKK+aoueawtyA+IGp1aHlvdVwgOwor5bqE5ZySID4gc2hvdWVuXCA7Civoh6rotrMgPiBqaXNva3VcIDsKK+mqqOi6qyA+IGhvbmVtaVwgOwor5YWt5rOVID4gcm9wcG91XCA7Civlh7rlrrYgPiBzaHVra2VcIDsKK+W5suWkqSA+IGthbnRlblwgOwor5Yeh5bq2ID4gYm9uc2hvXCA7Civpq5joo4EgPiBrb3VzYWlcIDsKK+eUu+mbhiA+IGdhc2h1dVwgOwor5YWs5rOVID4ga291aG91XCA7CivliIblqKkgPiBidW5iZW5cIDsKK+i8queKtiA+IHJpbmpvdVwgOwor6Imy57O4ID4gaXJvaXRvXCA7CivnlLvpmpwgPiBnYXNob3VcIDsKK+W5s+WjjCA+IGhlaWpvdVwgOwor5bGx6ZyKID4gc2FucmVpXCA7CivlhpnmnKwgPiBzaGFob25cIDsKK+WFpea1tyA+IGlyaXVtaVwgOwor6LmC6LqqID4ganV1cmluXCA7CivouYLoupkgPiBqdXVyaW5cIDsKK+W5leWxiyA+IG1ha3V5YVwgOwor6ay857GNID4ga2lzZWtpXCA7CivliLvljbAgPiBrb2t1aW5cIDsKK+WFieeCuSA+IGtvdXRlblwgOwor5Yeh5bi4ID4gYm9uam91XCA7Civov7flpoQgPiBtZWltb3VcIDsKK+eXm+iLpiA+IHRzdXVrdVwgOwor55uG5pmvID4gYm9ua2VpXCA7CivoiLnojbcgPiBmdW5hbmlcIDsKK+mAo+WQnyA+IHJlbmdpblwgOwor5Yid5ZueID4gc2hva2FpXCA7Civlu4PkurogPiBoYWlqaW5cIDsKK+WJm+S9kyA+IGdvdXRhaVwgOwor6LuK57eaID4gc2hhc2VuXCA7Civlh6DluLMgPiBraWNob3VcIDsKK+WFqOayuyA+IHplbmNoaVwgOwor6YCj5ZCNID4gcmVubWVpXCA7CivpgKPlkIggPiByZW5nb3VcIDsKK+eahua4iCA+IGthaXNhaVwgOwor55uy5oOzID4gbW91c291XCA7CivliJHloLQgPiBrZWlqb3VcIDsKK+W5tOWgsSA+IG5lbnBvdVwgOwor6YCA5aC0ID4gdGFpam91XCA7CivlhoXmpJwgPiBuYWlrZW5cIDsKK+WGjeagoSA+IHNhaWtvdVwgOwor55u45oCnID4gYWlzaG91XCA7Civoi6Xmua8gPiB3YWtheXVcIDsKK+mBi+S8kSA+IHVua3l1dVwgOwor55u45oCdID4gc291c2hpXCA7CivlhazmsJEgPiBrb3VtaW5cIDsKK+W4guaXpSA+IGljaGliaVwgOwor6Iqx55KwID4gaGFuYXdhXCA7Civmp5jnm7ggPiB5b3Vzb3VcIDsKK+iPr+S4rSA+IGthY2h1dVwgOwor5YG46KaWID4gdG91c2hpXCA7CivliY3lgr4gPiB6ZW5rZWlcIDsKK+mxiOWtkCA+IHRhcmFrb1wgOwor5bGN6aq4ID4gc2hpZ2FpXCA7Civoh6rosqwgPiBqaXNla2lcIDsKK+WIhuWkliA+IGJ1bmdhaVwgOwor55uj5oi/ID4ga2FuYm91XCA7CivluIPmlZkgPiBmdWt5b3VcIDsKK+mAoOWPjSA+IHpvdWhhblwgOwor5YiG5aOyID4gYnVuYmFpXCA7Civlh4Tmg6ggPiBzZWlzYW5cIDsKK+ebm+aMmSA+IHNlaWt5b1wgOwor5bmy5Z+OID4ga2Fuam91XCA7Civou73nm64gPiBrYXJ1bWVcIDsKK+W4sOW/gyA+IGtpc2hpblwgOwor6IyY5p6dID4gcmVpc2hpXCA7Civnm7jlvbkgPiBhaXlha3VcIDsKK+W4guaUvyA+IHNoaXNlaVwgOwor5bqn5YWDID4gemFtb3RvXCA7Civlho3mnaUgPiBzYWlyYWlcIDsKK+WFrOatoyA+IGtvdXNlaVwgOwor5YW85qWtID4ga2VuZ291XCA7Civnm77luqcgPiB0YXRlemFcIDsKK+WGt+aIvyA+IHJlaWJvdVwgOwor5Yi25YuVID4gc2VpZG91XCA7CivoibbnrJEgPiBlbnNob3VcIDsKK+ebuOW9kyA+IHNvdXRvdVwgOwor5beh5qScID4ganVua2VuXCA7CivlubPlnaYgPiBoZWl0YW5cIDsKK+WFteaoqSA+IGhlaWtlblwgOwor5Ya35oimID4gcmVpc2VuXCA7Civnmb7muIggPiBrdWRhcmFcIDsKK+WFqOautSA+IHplbmRhblwgOwor6Iez6KuWID4gc2hpcm9uXCA7CivoiLnoiZkgPiBzZW5zb3VcIDsKK+mAneWOuyA+IHNlaWt5b1wgOwor5bGx6ZaTID4geWFtYWFpXCA7CivliLrliLogPiBpcmFpcmFcIDsKK+eak+atryA+IGtvdXNoaVwgOwor5Yil5ZOBID4gYmVwcGluXCA7CivlubPlnYcgPiBoZWlraW5cIDsKK+WxsemWgCA+IHNhbm1vblwgOwor5YKt6Ii5ID4geW91c2VuXCA7Civlhobmn7EgPiBlbmNodXVcIDsKK+eUn+mhniA+IHNlaXJ1aVwgOwor5bmz5ZywID4gaGVpY2hpXCA7CivpgKPli5UgPiByZW5kb3VcIDsKK+WJjeS+vyA+IHplbmJpblwgOwor6Iez6KqgID4gc2hpc2VpXCA7CivlurjkurogPiB5b3VqaW5cIDsKK+W5tOWbniA+IG5lbmthaVwgOwor6YCA5ZujID4gdGFpZGFuXCA7Civnm7LlvpMgPiBtb3VqdXVcIDsKK+WJjeS+iyA+IHplbnJlaVwgOwor5YaX5paHID4gam91YnVuXCA7CivmqYvmnrYgPiBreW91a2FcIDsKK+WFqOaspyA+IHplbicnb3VcIDsKK+i7n+emgSA+IG5hbmtpblwgOwor6YCf5Yq5ID4gc29ra291XCA7Civnnb7kuLggPiBrb3VnYW5cIDsKK+iHs+iogCA+IHNoaWdlblwgOwor5beo5p2QID4ga3lvemFpXCA7CivlhYnmupAgPiBrb3VnZW5cIDsKK+mAo+WIpCA+IHJlbnBhblwgOwor6LuS56uvID4gbm9raWJhXCA7CivluKvlvJ8gPiBzaGl0ZWlcIDsKK+WJjeS7tiA+IHplbmtlblwgOwor5YWs5qipID4ga291a2VuXCA7CivlsY/poqggPiBieW91YnVcIDsKK+ebuOW4rSA+IGFpc2VraVwgOwor5YmN5LujID4gemVuZGFpXCA7CivnlJ/pnaIgPiBzZWltZW5cIDsKK+iLpuaxgSA+IG5pZ2FyaVwgOwor5YmN5Lq6ID4gemVuamluXCA7CivliIflnLAgPiBraXJlamlcIDsKK+WNiuOAhSA+IGhhbmhhblwgOwor6YGB5LiWID4gdG9uc2VpXCA7Civoh7PopoEgPiBzaGl5b3VcIDsKK+WHtuWkoiA+IGt5b3VtdVwgOwor5YiG5ZywID4gYnVuY2hpXCA7CivnnIvlroggPiBrYW5zaHVcIDsKK+iJtuemjyA+IGVucHVrdVwgOwor5YWF5rqAID4ganV1bWFuXCA7Civoi6XmsJcgPiB3YWthZ2VcIDsKK+eXheiLpiA+IGJ5b3VrdVwgOwor5YWo5qipID4gemVua2VuXCA7CivojZLlu4MgPiBrb3VoYWlcIDsKK+eZuuazoSA+IGhhcHBvdVwgOwor55Sj6ZmiID4gc2FuJydpblwgOwor5YiG5ZujID4gYnVuZGFuXCA7Civoh6roqLsgPiBqaWNodXVcIDsKK+W6g+WOnyA+IGtvdWdlblwgOwor5Yid5Y+3ID4gc2hvZ291XCA7CivluK3lt7sgPiBzZWtrZW5cIDsKK+WGjeaVlyA+IHNhaWhhaVwgOwor5YmN5LiWID4gemVuc2VpXCA7CivpgKDlhbUgPiB6b3VoZWlcIDsKK+mAuOS6iyA+IGl0c3VqaVwgOwor5YO755uuID4gaGlnYW1lXCA7Civlgq3ogZggPiB5b3VoZWlcIDsKK+msseepjSA+IHVzc2VraVwgOwor5beo5pifID4ga3lvc2VpXCA7CivliIDlnK0gPiB0b3VrZWlcIDsKK+WGiuaVsCA+IHNhc3N1dVwgOwor5bm85ZCbID4geW91a3VuXCA7CivnmbrmsZcgPiBoYWtrYW5cIDsKK+eUu+mLsiA+IGdhYnlvdVwgOwor5Ye65Z+OID4gZGVqaXJvXCA7CivlubzlkI0gPiB5b3VtZWlcIDsKK+i7iueqkyA+IHNoYXNvdVwgOwor5bCP6by7ID4ga29iYW5hXCA7CivlhoXml6ggPiBuYWlzaGlcIDsKK+eXm+e9tSA+IHRzdXViYVwgOwor6Ieq6KaaID4gamlrYWt1XCA7Civnlr7oi6YgPiBzaGlra3VcIDsKK+WGheaWuSA+IG5haWhvdVwgOwor5YG96JasID4gZ2l5YWt1XCA7Civnl4Xoh6UgPiBieW91Z2FcIDsKK+W4veWtkCA+IGJvdXNoaVwgOwor5YWx5qCEID4ga3lvdWVpXCA7Civou4rnqK4gPiBzaGFzaHVcIDsKK+WApOmBhyA+IGNoaWd1dVwgOwor5bm25ZGRID4gaGVpZG9uXCA7Civluorlh6AgPiBzaG91Z2lcIDsKK+W5vuWNgyA+IGlrdXNlblwgOwor6auY6JGXID4ga291Y2hvXCA7CivovrLlt6UgPiBub3Vrb3VcIDsKK+Wwj+m6piA+IGtvbXVnaVwgOwor5qSc6KiOID4ga2VudG91XCA7CivliIbllrYgPiBidW4nJ2VpXCA7Civmo5Lpi7wgPiBib3Vrb3VcIDsKK+mAgeWRiCA+IHNvdXRlaVwgOwor5bqn5LitID4gemFjaHV1XCA7CivlhoXmlL8gPiBuYWlzZWlcIDsKK+WGheaUuyA+IG5haWtvdVwgOwor5bm25ZCIID4gaGVpZ291XCA7CivlhazmoL0gPiBrb3VzYWlcIDsKK+S/rumZoiA+IHNodXVpblwgOwor5bqV5YCkID4gc29rb25lXCA7CivluLDlsZ4gPiBraXpva3VcIDsKK+W3peaVsCA+IGtvdXN1dVwgOwor5YW15pu5ID4gaGVpc291XCA7CivlhbXmm7ggPiBoZWlzaG9cIDsKK+WIkeWQjSA+IGtlaW1laVwgOwor6LuN56S8ID4gZ3VucmVpXCA7CivmqLnmnKggPiBqdW1va3VcIDsKK+mrmOiPnCA+IHRha2FuYVwgOwor55u45a++ID4gc291dGFpXCA7CivpgKPkv4IgPiByZW5rZWlcIDsKK+W5tOWPtyA+IG5lbmdvdVwgOwor5qSc6KaWID4ga2Vuc2hpXCA7CivlhqXmg7MgPiBtZWlzb3VcIDsKK+iKseeBqyA+IGhhbmFiaVwgOwor5bGV6ZaLID4gdGVua2FpXCA7Civnm7jlrr8gPiBhaXlhZG9cIDsKK+iInuiIniA+IG1haW1haVwgOwor6YCA5Y67ID4gdGFpa3lvXCA7CivlhajmoKEgPiB6ZW5rb3VcIDsKK+W4r+WwgSA+IG9iaWZ1dVwgOwor5YeN5a+SID4gdG91a2FuXCA7CivlubPljp8gPiBoZWlnZW5cIDsKK+ecjOWkliA+IGtlbmdhaVwgOwor5YeN5a6zID4gdG91Z2FpXCA7CivlsbHph44gPiBzYW4nJ3lhXCA7CivpgI/lhpkgPiB0b3VzaGFcIDsKK+WItuS7pCA+IHNlaXJlaVwgOwor5YWt5pysID4gcm9wcG9uXCA7Civoi6bmpb0gPiBrdXJha3VcIDsKK+W4sOWuhSA+IGtpdGFrdVwgOwor55uy5bCEID4gbW91c2hhXCA7Civnlr3ohasgPiBzb3Nob3VcIDsKK+aoquaguSA+IHlva29uZVwgOwor5bm+5YiGID4gaWt1YnVuXCA7CivnlbDoqqwgPiBpc2V0c3VcIDsKK+mtlOeQgyA+IG1ha3l1dVwgOwor5Ye25ZmoID4ga3lvdWtpXCA7CivliJ3lhqwgPiBzaG90b3VcIDsKK+S/nemdqSA+IGhva2FrdVwgOwor5YaN5oyZID4gc2Fpa3lvXCA7Civnm67lsY4gPiBtZWt1c29cIDsKK+S/iummrCA+IHNodW5tZVwgOwor55Sy6YiRID4ga291YmFuXCA7CivlhavmnKwgPiBoYXBwb25cIDsKK+WFrOaciSA+IGtvdXl1dVwgOwor5YGP6KaLID4gaGVua2VuXCA7CivlupzkuK0gPiBmdWNodXVcIDsKK+ebruWwuyA+IG1lamlyaVwgOwor5YW25pa5ID4gc29uYXRhXCA7Civnm5vlubQgPiBzZWluZW5cIDsKK+Wwj+m0qCA+IGtvZ2Ftb1wgOwor5YaN5oudID4gc2FpaGFpXCA7CivpgIDli6IgPiB0YWlzZWlcIDsKK+i/lOWgsSA+IGhlbnBvdVwgOwor6YCj5LqYID4gcmVua291XCA7Civlub3lhqUgPiB5dXVtZWlcIDsKK+i8ieeCrSA+IHNhaXRhblwgOwor5YaF5o6iID4gbmFpdGFuXCA7CivmqKnmn4QgPiBrZW5wZWlcIDsKK+Wwj+mzpSA+IGtvdG9yaVwgOwor5bm05YqfID4gbmVua291XCA7CivnlLDph44gPiBkZW4nJ3lhXCA7CivlhbXmlbAgPiBoZWlzdXVcIDsKK+ebquWwvSA+IHRvdWppblwgOwor55y85YmNID4gZ2FuemVuXCA7Civlhajmm7ggPiB6ZW5zaG9cIDsKK+iJpuegsiA+IGthbnBvdVwgOwor5bqX5Li7ID4gdGVuc2h1XCA7Civou6LnlJ8gPiB0ZW5zZWlcIDsKK+i2s+mnhCA+IGFzaGlkYVwgOwor5YWr5pmvID4gaGFra2VpXCA7CivnmbvmpbwgPiB0b3Vyb3VcIDsKK+S/nemanCA+IGhvc2hvdVwgOwor55uu5a6JID4gbWV5YXN1XCA7CivlhoXmjL8gPiBuYWlzb3VcIDsKK+amgueulyA+IGdhaXNhblwgOwor5YiG5Y6YID4gYnVucmluXCA7Civov73liqAgPiB0c3Vpa2FcIDsKK+aoquacqCA+IHlva29naVwgOwor5YSq5rilID4geXV1YWt1XCA7Civlho3miKYgPiBzYWlzZW5cIDsKK+W4huW9sSA+IGhva2FnZVwgOwor5bm05YidID4gbmVuc2hvXCA7CivohbDplpMgPiB5b3VrYW5cIDsKK+iNieWxiyA+IHNvdW9rdVwgOwor5YWs5piOID4ga291bWVpXCA7CivlubTliIogPiBuZW5rYW5cIDsKK+W5tOWIhiA+IG5lbmJ1blwgOwor5YWo5pm6ID4gemVuY2hpXCA7CivpgIblhZAgPiBzYWthZ29cIDsKK+WFqOaZryA+IHplbmtlaVwgOwor5bmV5Za2ID4gYmFrdWVpXCA7CivlsI/psK0gPiBrb2hhZGFcIDsKK+WIpeS9vyA+IGJlc3NoaVwgOwor5bmz5YiGID4gaGVpYnVuXCA7Civnm7jlp6YgPiBzb3VrYW5cIDsKK+WFreaWuSA+IHJvcHBvdVwgOwor5Yik5L6LID4gaGFucmVpXCA7CivlubPlh6EgPiBoZWlib25cIDsKK+eYi+eZsiA+IGZ1dXRlblwgOwor5bm75YOPID4gZ2Vuem91XCA7CivlhavmlrkgPiBoYXBwb3VcIDsKK+i/veWIhiA+IG9pd2FrZVwgOwor6bCl5aSrID4geWFtb21lXCA7CivnlKjph5EgPiB5b3VraW5cIDsKK+mtlOeJqSA+IG1hbW9ub1wgOwor5YWs5paHID4ga291YnVuXCA7CivnnLzlhYkgPiBnYW5rb3VcIDsKK+iMtuW3viA+IGNoYWtpblwgOwor55u45aW9ID4gc291Z291XCA7CivliJHlhbggPiBrZWl0ZW5cIDsKK+i/keWcqCA+IGtpbnphaVwgOwor5Yil5Lu2ID4gYmVra2VuXCA7CivpgJPkvJ0gPiB0ZWlkZW5cIDsKK+Wxsei+uiA+IHlhbWFiZVwgOwor5YaF5omAID4gbmFpc2hvXCA7CivnlaXoqJggPiByeWFra2lcIDsKK+W3p+aJiyA+IGtvdXNodVwgOwor5YaF5oimID4gbmFpc2VuXCA7CivnnJ/lkbMgPiBzaGlubWlcIDsKK+i6q+epuiA+IG1pc29yYVwgOwor6L+R5ZugID4ga2luJydpblwgOwor6I2J5a2QID4gc291c2hpXCA7CivoiovniYggPiBpbW9iYW5cIDsKK+WFqOaWhyA+IHplbmJ1blwgOwor5beh5oudID4ganVucGFpXCA7CivnlKPph5EgPiBzYW5raW5cIDsKK+eZu+agoSA+IHRvdWtvdVwgOwor5YWo5pWwID4gemVuc3V1XCA7Civnm6PlroggPiBrYW5zaHVcIDsKK+W3peaJiyA+IGtvdXNodVwgOwor5bel5oi/ID4ga291Ym91XCA7CivlhajmlZcgPiB6ZW5wYWlcIDsKK+ecn+WQpiA+IHNoaW5waVwgOwor6Iul5pyoID4gd2FrYWdpXCA7CivliJflgJkgPiByZWtrb3VcIDsKK+i/veWEuiA+IHRzdWluYVwgOwor5Ya35a6zID4gcmVpZ2FpXCA7CivluorkuIogPiB5dWthdWVcIDsKK+WBveiGnCA+IGdpbWFrdVwgOwor5biG5biDID4gaG9udW5vXCA7Civlh53lm7ogPiBneW91a29cIDsKK+mAlOS4rSA+IHRvY2h1dVwgOwor5YaF5oaCID4gbmFpeXV1XCA7Civkv5fplpMgPiB6b2trYW5cIDsKK+S/g+mfsyA+IHNva3VvblwgOwor5bCP6aqoID4ga29ib25lXCA7Civlub3kvZMgPiB5dXV0YWlcIDsKK+WFuOaLoCA+IHRlbmt5b1wgOwor55m75p2/ID4gdG91YmFuXCA7CivliJ3ku6MgPiBzaG9kYWlcIDsKK+WIgOWJoyA+IHRvdWtlblwgOwor5biz5aC0ID4gY2hvdWJhXCA7CivluZXlkI8gPiBiYWt1cmlcIDsKK+mtmueBryA+IGd5b3RvdVwgOwor6Iaa6LqrID4gaGFkYW1pXCA7CivnmZbmr5sgPiBrdXNlZ2VcIDsKK+W5uOS+vyA+IGtvdWJpblwgOwor5YOt546LID4gc2VuJydvdVwgOwor5bmj5Yi2ID4gaGVpc2VpXCA7Civlho3mgJ0gPiBzYWlzaGlcIDsKK+ecjOWWtiA+IGtlbicnZWlcIDsKK+muruaYjiA+IHNlbm1laVwgOwor6I2S5aSpID4ga291dGVuXCA7CivnlJ/phZIgPiBraXpha2VcIDsKK+WIhuWFmiA+IGJ1bnRvdVwgOwor5bm05L+4ID4gbmVucG91XCA7CivliIblhYkgPiBidW5rb3VcIDsKK+WIgOWIgyA+IHRvdWppblwgOwor5bm+5Lq6ID4gaWt1bmluXCA7CivohLPpq4QgPiBub3V6dWlcIDsKK+mppei2syA+IGtpc29rdVwgOwor5YaF5oOFID4gbmFpam91XCA7CivnnJ/ljJcgPiBtYWtpdGFcIDsKK+W3qOaCqiA+IGt5b2FrdVwgOwor5YaF5oKjID4gbmFpa2FuXCA7CivojYrlprsgPiBrZWlzYWlcIDsKK+WFqOaQjSA+IHplbnNvblwgOwor5YiD5YWIID4gaGFzYWtpXCA7CivlsbHot68gPiB5YW1hamlcIDsKK+WGjeW+gSA+IHNhaXNlaVwgOwor6ae/6aasID4gc2h1bm1lXCA7CivnlKPpgZMgPiBzYW5kb3VcIDsKK+W4r+WfnyA+IHRhaWlraVwgOwor5biM5bCRID4ga2lzaG91XCA7CivoiLnnqpMgPiBzZW5zb3VcIDsKK+i/lOWTgSA+IGhlbnBpblwgOwor5bCP6aaWID4ga29rdWJpXCA7CivlubTkvZkgPiBuZW4nJ3lvXCA7CivnlJjphbggPiBrYW5zYW5cIDsKK+eUn+mChCA+IHNlaWthblwgOwor6Ii356qTID4gZ2Vuc291XCA7CivpqJLpnIogPiBzb3VyZWlcIDsKK+W5heWToSA+IGZ1a3VpblwgOwor5YWJ5p2lID4ga291cmFpXCA7Civoh7PoirggPiBzaGlnZWlcIDsKK+W5tOS8miA+IG5lbmthaVwgOwor6YCA5LyaID4gdGFpa2FpXCA7Civlr6Hpu5kgPiBrYW1va3VcIDsKK+WIg+WCtyA+IG5pbmpvdVwgOwor5YaN5bu6ID4gc2Fpa29uXCA7CivmpbXnp5ggPiBnb2t1aGlcIDsKK+mAg+S6oSA+IHRvdWJvdVwgOwor6YCA5Lu7ID4gdGFpbmluXCA7Civlhoblv4MgPiBlbnNoaW5cIDsKK+W5tOS7pCA+IG5lbnJlaVwgOwor5bm05LujID4gbmVuZGFpXCA7Civlgo3nt5ogPiBib3VzZW5cIDsKK+aomeaXlyA+IGh5b3VraVwgOwor55yB5Za2ID4gc2hvdWVpXCA7CivluLDlm70gPiBraWtva3VcIDsKK+edgOS4iCA+IGtpdGFrZVwgOwor6L6y5aC0ID4gbm91am91XCA7Civou73muJsgPiBrZWlnZW5cIDsKK+mqqOiRoyA+IGtvdHRvdVwgOwor6I2S5Z+OID4ga291am91XCA7Civot7XouI8gPiBzZW50b3VcIDsKK+iNmOWckiA+IHNob3VlblwgOwor55mC5rK7ID4gcnlvdWppXCA7CivovrrlnLAgPiBoZW5jaGlcIDsKK+mnnemzpSA+IGRhY2hvdVwgOwor5YaF5b6EID4gbmFpa2VpXCA7Civohbnpg6ggPiBmdWt1YnVcIDsKK+WHuuWFiCA+IGRlc2FraVwgOwor5YWD5p2lID4gZ2FucmFpXCA7CivnnJ/lhqwgPiBtYWZ1eXVcIDsKK+i8quagvSA+IHJpbnNhaVwgOwor5beo5by+ID4ga3lvZGFuXCA7CivlhYPmnKwgPiBnZW5wb25cIDsKK+WFieaZryA+IGtvdWtlaVwgOwor5Ye25YW3ID4ga3lvdWd1XCA7Civoh6roi6UgPiBqaWpha3VcIDsKK+W5tOS4rSA+IG5lbmp1dVwgOwor55yL5Y+WID4ga2Fuc2h1XCA7CivnmbrmlaMgPiBoYXNzYW5cIDsKK+W4q+WboyA+IHNoaWRhblwgOwor6aex6aedID4gcmFrdWRhXCA7CivlhoXlu7cgPiBuYWl0ZWlcIDsKK+WCjeezuyA+IGJvdWtlaVwgOwor5YiG5L2TID4gYnVudGFpXCA7Civov47lkIggPiBnZWlnb3VcIDsKK+avjuOAhSA+IG1haW1haVwgOwor5L+u6YCgID4gc2h1em91XCA7CivnmbvmlIAgPiB0b3VoYW5cIDsKK+iNieWggiA+IHNvdWRvdVwgOwor5bmy5LiOID4ga2FuJyd5b1wgOwor5YiG5LyaID4gYnVua2FpXCA7Civpq4DogokgPiBoaW5pa3VcIDsKK+apn+WxiyA+IGhhdGF5YVwgOwor5YaF5bqtID4gbmFpdGVpXCA7CivovrLlnLAgPiBub3VjaGlcIDsKK+WFrOaGpCA+IGtvdWZ1blwgOwor55ub5aSnID4gc2VpZGFpXCA7CivoiKrnqbogPiBrb3VrdXVcIDsKK+W4guWtkCA+IGljaGlrb1wgOwor5bCK6aGUID4gc29uZ2FuXCA7Civou43niqwgPiBnZW5rZW5cIDsKK+WFiOaWuSA+IHNlbnBvdVwgOwor5L+u6L6eID4gc2h1dWppXCA7CivnlJ/ouqsgPiBuYW1hbWlcIDsKK+aoquaJiyA+IHlva290ZVwgOwor5YGc6Ii5ID4gdGVpc2VuXCA7CivnnIzli6IgPiBrZW5zZWlcIDsKK+WFreaEnyA+IHJva2thblwgOwor55yf5YG9ID4gc2hpbmdpXCA7CivoiKrnqIsgPiBrb3V0ZWlcIDsKK+WIhuS5lyA+IGJ1bmpvdVwgOwor6I2J5ZywID4gc291Y2hpXCA7CivlhYPml6YgPiBnYW50YW5cIDsKK+WFiOaUuyA+IHNlbmtvdVwgOwor5Yem5YiRID4gc2hva2VpXCA7CivnlLvoqr8gPiBnYWNob3VcIDsKK+WGl+WumCA+IGpvdWthblwgOwor5Yem5YiGID4gc2hvYnVuXCA7Civou73msLQgPiBrZWlzdWlcIDsKK+iHquiFuSA+IGppYmFyYVwgOwor55yf5YCLID4gc2hpbmtvXCA7CivkvqHpoY0gPiBrYWdha3VcIDsKK+WIhuS4jiA+IGJ1bicneW9cIDsKK+i8g+atoyA+IGtvdXNlaVwgOwor5Yem5YemID4gc2hvc2hvXCA7CivoipLmtIsgPiBib3V5b3VcIDsKK+Wwj+mbqiA+IGtveXVraVwgOwor5bCP6ZuoID4ga29zYW1lXCA7Civlt6HlubggPiBqdW5rb3VcIDsKK+WwjumbuyA+IGRvdWRlblwgOwor5YW15b25ID4gaGVpZWtpXCA7CivlsI/pm4AgPiBrb2dhcmFcIDsKK+ecn+S+oSA+IHNoaW5rYVwgOwor6L+R5YiKID4ga2lua2FuXCA7Civlh73kurogPiBrYW5qaW5cIDsKK+ebl+WhgSA+IHRvdXJ1aVwgOwor5YW85bivID4ga2VudGFpXCA7Civoi6bmiYsgPiBuaWdhdGVcIDsKK+WvvumhlCA+IHRhaWdhblwgOwor6Iul5omLID4gd2FrYXRlXCA7Civlt6jls7AgPiBreW9ob3VcIDsKK+WGrOWgtCA+IGZ1eXViYVwgOwor5YKs55ygID4gc2FpbWluXCA7CivlhKrmn5QgPiB5dXVqdXVcIDsKK+iKuOaelyA+IGdlaXJpblwgOwor6LuS54GvID4ga2VudG91XCA7Civnm7jlj40gPiBzb3VoYW5cIDsKK+W3qOWyqSA+IGt5b2dhblwgOwor5biv5ZCMID4gdGFpZG91XCA7CivluLjli6QgPiBqb3VraW5cIDsKK+iNmOWPuCA+IHNob3VqaVwgOwor5YWs5b25ID4ga291ZWtpXCA7Civlhajlv6sgPiB6ZW5rYWlcIDsKK+WGheWxpCA+IG5haXNvdVwgOwor6auY562JID4ga291dG91XCA7Civlh43ljp8gPiB0b3VnZW5cIDsKK+alveeVjCA+IGdha2thaVwgOwor6Iqx5p+zID4ga2FyeXV1XCA7CivoirHmn7EgPiBrYWNodXVcIDsKK+iNmOWOsyA+IHNvdWdvblwgOwor5Ye65LiWID4gc2h1c3NlXCA7Civlh7bkuosgPiBreW91amlcIDsKK+W4guWkliA+IHNoaWdhaVwgOwor55eY55ihID4gdG91c291XCA7Civlh4TlkbMgPiBzdWdvbWlcIDsKK+iHque/kiA+IGppc2h1dVwgOwor5Yeh5YOnID4gYm9uc291XCA7Civlr77pnaIgPiB0YWltZW5cIDsKK+eVquiMtiA+IGJhbmNoYVwgOwor5YaK5a2QID4gc291c2hpXCA7CivnlbDoibIgPiBpc2hva3VcIDsKK+W4q+WPiyA+IHNoaXl1dVwgOwor55eY55eVID4gdG91a29uXCA7Civlhoblr4IgPiBlbmpha3VcIDsKK+WFqOW9oiA+IHplbmtlaVwgOwor5q6144CFID4gZGFuZGFuXCA7Civlt57ltI4gPiBzdXNha2lcIDsKK+i/keWCjSA+IGtpbmJvdVwgOwor5YWl5b6hID4gbnl1dWdvXCA7CivlhoXlrrkgPiBuYWl5b3VcIDsKK+WGheWuriA+IG5haWd1dVwgOwor5YWs5bqtID4ga291dGVpXCA7CivlhoXlrpogPiBuYWl0ZWlcIDsKK+W4guWhtSA+IHNoaWppblwgOwor6Le16KiAID4gc2VuZ2VuXCA7CivoirPmm7ggPiBob3VzaG9cIDsKK+eUqOirhyA+IHlvdWRhblwgOwor6Iqx5pyoID4ga2Fib2t1XCA7CivojZLljp8gPiBrb3VnZW5cIDsKK+WFrOW5syA+IGtvdWhlaVwgOwor5YaF5a2rID4gbmFpc29uXCA7CivluILloLQgPiBzaGlqb3VcIDsKK+eUt+ijhSA+IGRhbnNvdVwgOwor5L+d6LqrID4gaG9zaGluXCA7CivnmbrmhqQgPiBoYXBwdW5cIDsKK+WGjeWpmiA+IHNhaWtvblwgOwor6IiM56uvID4gemV0dGFuXCA7Civlhajlu4MgPiB6ZW5wYWlcIDsKK+WFiOaKlSA+IHNlbnRvdVwgOwor5YGV6ICBID4ga2Fpcm91XCA7CivlhajlupcgPiB6ZW50ZW5cIDsKK+ebsuWLlSA+IG1vdWRvdVwgOwor5a++6ZmjID4gdGFpamluXCA7CivkvovpoYwgPiByZWlkYWlcIDsKK+W4r+WJoyA+IHRhaWtlblwgOwor5bid5ZG9ID4gdGVpbWVpXCA7Civou5/ms6UgPiBuYW5kZWlcIDsKK+iMheWxiyA+IGJvdW9rdVwgOwor5YWl5bqrID4gbnl1dWtvXCA7CivnlKjoqIAgPiB5b3VnZW5cIDsKK+eZuuaEjyA+IGhhdHN1aVwgOwor5YWl5bqcID4gbnl1dWZ1XCA7CivoirjmlocgPiBnZWlidW5cIDsKK+WHoeS+iyA+IGhhbnJlaVwgOwor5bCC6ZaAID4gc2VubW9uXCA7Civnmbrmg7MgPiBoYXNzb3VcIDsKK+W4r+WIgCA+IHRhaXRvdVwgOwor6L+R5L2TID4ga2ludGFpXCA7Civoi6blv4MgPiBrdXNoaW5cIDsKK+aqgOWQmyA+IGRhbmt1blwgOwor5YW85a6YID4ga2Vua2FuXCA7CivlhajluIIgPiB6ZW5zaGlcIDsKK+WwlumLrSA+IHNlbicnZWlcIDsKK+WFqOW3uyA+IHplbmthblwgOwor5bC/6LevID4gbnlvdXJvXCA7CivnnIzkvJogPiBrZW5rYWlcIDsKK+ebpOWPsCA+IGJhbmRhaVwgOwor5biD5ZywID4gbnVub2ppXCA7Civoh7PntJQgPiBzaGlqdW5cIDsKK+iNieWOnyA+IHNvdWdlblwgOwor6Ieq57ibID4gamliYWt1XCA7CivmooXphZIgPiB1bWVzaHVcIDsKK+WFg+aJiyA+IG1vdG9kZVwgOwor55yM5LukID4ga2VucmVpXCA7Civlr53pppYgPiBuZWt1YmlcIDsKK+eUn+iqlSA+IHNlaXRhblwgOwor5L+z6KunID4gaGFpa2FpXCA7Civou5/msLQgPiBuYW5zdWlcIDsKK+i/keS7oyA+IGtpbmRhaVwgOwor55yM5Lq6ID4ga2VuamluXCA7Civnm4blnLAgPiBib25jaGlcIDsKK+WGjeWkiSA+IHNhaWhlblwgOwor5YG956ewID4gZ2lzaG91XCA7Civou43muK8gPiBndW5rb3VcIDsKK+WFmuW8iiA+IHRvdWhlaVwgOwor5Yem5LiWID4gc2hvc2VpXCA7CivlhrfljrMgPiByZWlnZW5cIDsKK+iHree0oCA+IHNodXVzb1wgOwor5YaF5aa7ID4gbmFpc2FpXCA7CivojITlrZAgPiBuYXN1YmlcIDsKK+ebn+WPiyA+IG1laXl1dVwgOwor55uX5ZOBID4gdG91aGluXCA7CivnlJ/oqIggPiBzZWlrZWlcIDsKK+iIl+efsyA+IGhvc2VraVwgOwor6Ieq57WmID4gamlreXV1XCA7Civov5TkuIogPiBoZW5qb3VcIDsKK+mtmuairyA+IGd5b3RlaVwgOwor55ub5ZCNID4gc2VpbWVpXCA7Civlhajls7YgPiB6ZW50b3VcIDsKK+i1remhlCA+IHNoYWdhblwgOwor5YWx5a+dID4gdG9tb25lXCA7CivlsI/piq0gPiBrb3plbmlcIDsKK+eah+W4nSA+IGtvdXRlaVwgOwor5YaF5aWPID4gbmFpc291XCA7Civov5HkuJYgPiBraW5zZWlcIDsKK+iHqOe1giA+IHJpbmp1dVwgOwor5bi45L6LID4gam91cmVpXCA7CivojYnlibUgPiBzb3Vzb3VcIDsKK+WFqOWyuCA+IHplbmdhblwgOwor5beo5aSnID4ga3lvZGFpXCA7CivovpvlkbMgPiBrYXJhbWlcIDsKK+WGheWkliA+IG5haWdhaVwgOwor6Iul5bmyID4gamFra2FuXCA7CivlsY3oq4wgPiBzaGlrYW5cIDsKK+ebruWFiCA+IG1lc2FraVwgOwor5bir5YOnID4gc2hpc291XCA7CivluLjkvZMgPiBqb3V0YWlcIDsKK+ebruWFgyA+IG1lbW90b1wgOwor5bi45L2PID4gam91anV1XCA7CivlhajlsbEgPiB6ZW56YW5cIDsKK+i+suWFtSA+IG5vdWhlaVwgOwor5YKN55uuID4gaGF0YW1lXCA7CivlsZXoprMgPiB0ZW5rYW5cIDsKK+WxleimpyA+IHRlbnJhblwgOwor55SY6KiAID4ga2FuZ2VuXCA7CivluLjkvJogPiBqb3VrYWlcIDsKK+W3peWkpyA+IGtvdWRhaVwgOwor5YWs5a6zID4ga291Z2FpXCA7CivluKXlhYggPiBzb3NzZW5cIDsKK+W4uOS7uyA+IGpvdW5pblwgOwor5L+v6KeSID4gZnVrYWt1XCA7Civoi6XluIMgPiB3YWthbWVcIDsKK+W4neWItiA+IHRlaXNlaVwgOwor55e05ryiID4gY2hpa2FuXCA7CivlhazlrpogPiBrb3V0ZWlcIDsKK+i7jeazlSA+IGd1bnBvdVwgOwor5bCP6YeRID4ga29nYW5lXCA7CivnmbvlurggPiB0b3V5b3VcIDsKK+WFqOWwhCA+IHplbnNoYVwgOwor6I2K5YagID4ga2Vpa2FuXCA7CivlhrfliZsgPiByZWlnb3VcIDsKK+W4uOS6uiA+IGpvdWppblwgOwor6a2a5p2/ID4gZ3lvYmFuXCA7CivltKnmvbAgPiBob3VrYWlcIDsKK+WFrOWtkCA+IGtvdXNoaVwgOwor5YOn5q2jID4gc291am91XCA7CivmoZHploAgPiBzb3Vtb25cIDsKK+WGheWgsSA+IG5haWhvdVwgOwor5YWB5oGtID4gaW5reW91XCA7CivlhYnlvakgPiBrb3VzYWlcIDsKK+i7uOacqCA+IGppa3VnaVwgOwor5YWH5b6SID4ga3lvdXRvXCA7Civnm7jkvJ0gPiBzb3VkZW5cIDsKK+i2s+i5tCA+IGFzaGlnZVwgOwor5bid5YagID4gdGVpa2FuXCA7CivkvbXpn7MgPiBwaW4nJ2luXCA7Civpq5jnm64gPiB0YWthbWVcIDsKK+WGhuWfnyA+IGVuJydpa2lcIDsKK+WvkumiqCA+IGthbnB1dVwgOwor6aeF6aCtID4gZWtpdG91XCA7Civlgr7ngIkgPiBrZWlzaGFcIDsKK+WGt+WHjSA+IHJlaXRvdVwgOwor6LuN5rCRID4gZ3VubWluXCA7CivpqqjnsokgPiBrb3BwdW5cIDsKK+eXheeQhiA+IGJ5b3VyaVwgOwor5biw5LyRID4ga2lreXV1XCA7CivluLDkvI8gPiBraWZ1a3VcIDsKK+W4uOS4liA+IHRva295b1wgOwor5YKy54S2ID4gZ291emVuXCA7CivohrXoh5MgPiBzdWl6b3VcIDsKK+WFtuWltCA+IHNvaXRzdVwgOwor5YWF5b2TID4ganV1dG91XCA7Civkv67oo5wgPiBzaHV1aG9cIDsKK+W4g+WRiiA+IGZ1a29rdVwgOwor55qH5bGFID4ga291a3lvXCA7CivoiI7nm6MgPiBzaGFrYW5cIDsKK+eWseeYoSA+IGhvdXNvdVwgOwor5qip5a6YID4ga2Vua2FuXCA7CivlhJLmlZkgPiBqdWt5b3VcIDsKK+W4sOS6rCA+IGtpa3lvdVwgOwor5L+X6K2wID4gem9rdWdpXCA7CivlhrflhYkgPiByZWlrb3VcIDsKK+ebuOS5lyA+IHNvdWpvdVwgOwor5a+d6ZqbID4gbmVnaXdhXCA7CivluKvkvJ0gPiBzaGlkZW5cIDsKK+WGheWcsCA+IG5haWNoaVwgOwor5YWJ5bm0ID4ga291bmVuXCA7CivnmoTlsYsgPiB0ZWtpeWFcIDsKK+ebiuWPiyA+IGVraXl1dVwgOwor5YaF5ZyoID4gbmFpemFpXCA7CivlhbXlpIkgPiBoZWloZW5cIDsKK+WxseiRtSA+IHdhc2FiaVwgOwor5bCP6YGOID4gc2hvdWthXCA7CivlhbXlo6sgPiBoZWlzaGlcIDsKK+WBteefpSA+IHRlaWNoaVwgOwor55ar55mYID4gZWtpcmVpXCA7Civnm7LkurogPiBtb3VqaW5cIDsKK+eah+WuriA+IGtvdWd1dVwgOwor6IO96Z2iID4gbm91bWVuXCA7Civnm5vlhbggPiBzZWl0ZW5cIDsKK+S/neiovCA+IGhvc2hvdVwgOwor5qSc566XID4ga2VuemFuXCA7CivnmoflrpcgPiBrb3Vzb3VcIDsKK+WFiOW4qyA+IHNlbnNoaVwgOwor5YWI5bidID4gc2VudGVpXCA7CivmoLnpm6ogPiBuZXl1a2lcIDsKK+iMheWgtCA+IGtheWFiYVwgOwor5biw5LiAID4ga2lpdHN1XCA7CivnmoflrasgPiBrb3Vzb25cIDsKK+S+rui+sSA+IGJ1am9rdVwgOwor55Wq57eaID4gYmFuc2VuXCA7CivovrLkvJogPiBub3VrYWlcIDsKK+S/l+iqniA+IHpva3Vnb1wgOwor55uu5LuKID4gbW9ra29uXCA7CivlhqXliqAgPiBteW91Z2FcIDsKK+iHpeernCA+IGdhcnlvdVwgOwor55u05LiLID4gY2hva2thXCA7CivlsLjoq4wgPiBzaGlrYW5cIDsKK+WxseiPnCA+IHNhbnNhaVwgOwor6Lui5qChID4gdGVua291XCA7CivovKrlvaIgPiByaW5rZWlcIDsKK+S/l+ipsSA+IHpva3V3YVwgOwor55al55msID4ga2Fpc2VuXCA7CivoiLnnga8gPiBzZW50b3VcIDsKK+iHquensCA+IGppc2hvdVwgOwor6Ium5a2mID4ga3VnYWt1XCA7CivlhYPluKUgPiBnZW5zdWlcIDsKK+iNieS9kyA+IHNvdXRhaVwgOwor55m95a+/ID4gaGFrdWp1XCA7CivlhqXliKkgPiBteW91cmlcIDsKK+W4guWLoiA+IHNoaXNlaVwgOwor5L2T6aiTID4gdGFpa2VuXCA7CivnmbrlsZUgPiBoYXR0ZW5cIDsKK+W3oeWbniA+IGp1bmthaVwgOwor5qeL5paHID4ga291YnVuXCA7CivoiLfnga8gPiBnZW50b3VcIDsKK+i8quW7uyA+IHJpbicnbmVcIDsKK+WFuOWeiyA+IHRlbmtlaVwgOwor5bGx6I2YID4gc2Fuc291XCA7Civlhazlo7IgPiBrb3ViYWlcIDsKK+mmqOmmmSA+IGtlaWtvdVwgOwor6ISx6YCAID4gZGF0dGFpXCA7Civkv5fop6MgPiB6b2trYWlcIDsKK+iDjOmwrSA+IHNlYmlyZVwgOwor55m65bCEID4gaGFzc2hhXCA7Civlg5rmqZ8gPiByeW91a2lcIDsKK+WFqOWkqSA+IHplbnRlblwgOwor5qCh6aKoID4ga291ZnV1XCA7CivotaTploAgPiBha2Ftb25cIDsKK+WGpeWGpSA+IG1laW1laVwgOwor5bGN6J2LID4gc2hpcm91XCA7CivnlZ3nuZQgPiB1bmVvcmlcIDsKK+S/l+imiyA+IHpva2tlblwgOwor5YCJ6I23ID4ga3VyYW5pXCA7CivoirPmg4UgPiBob3Vqb3VcIDsKK+W4guWItiA+IHNoaXNlaVwgOwor6aaW6a2BID4gc2h1a2FpXCA7CivlhaXlpKsgPiBueXV1ZnVcIDsKK+WFqOWjiiA+IHplbmthaVwgOwor55Sf6JaRID4gc2hvdWdhXCA7CivlhazloLEgPiBrb3Vob3VcIDsKK+WEquaApyA+IHl1dXNlaVwgOwor5YW15ZujID4gaGVpZGFuXCA7Civlr77pgYcgPiB0YWlndXVcIDsKK+eUn+iVgyA+IHNlaWJhblwgOwor5L6b6YCyID4gZ3VzaGluXCA7CivlhY3lrpggPiBtZW5rYW5cIDsKK+ahn+mBkyA+IHNhbmRvdVwgOwor5YWI5bCOID4gc2VuZG91XCA7CivluILlhoUgPiBzaGluYWlcIDsKK+Wwj+i3ryA+IHNob3VqaVwgOwor6Lu95oyZID4ga2Vpa3lvXCA7Civoia/moYggPiByeW91YW5cIDsKK+WuuemhlCA+IHlvdWdhblwgOwor5YW85Za2ID4ga2VuJydlaVwgOwor5YaG5ZGzID4gbWFydW1pXCA7Civnm5vkvJogPiBzZWlrYWlcIDsKK+WGhuWRqCA+IGVuc2h1dVwgOwor6Iq45b2TID4gZ2VpdG91XCA7CivlhKrlvoUgPiB5dXV0YWlcIDsKK+eUmOiWryA+IGthbnNob1wgOwor5YaF5ZG9ID4gbmFpbWVpXCA7Civou4rmpJwgPiBzaGFrZW5cIDsKK+iKs+W/lyA+IGhvdXNoaVwgOwor5bCP6LazID4ga29hc2hpXCA7CivnmoflpKkgPiBrb3V0ZW5cIDsKK+Wvvui+uiA+IHRhaWhlblwgOwor6LaF6YGOID4gY2hvdWthXCA7Civnm5vku6MgPiBzZWlkYWlcIDsKK+iLl+WtlyA+IG15b3VqaVwgOwor6IOM6aqoID4gc2Vib25lXCA7CivlhoXlkKsgPiBuYWlnYW5cIDsKK+mmrOmdqSA+IGJha2FrdVwgOwor55uf5Li7ID4gbWVpc2h1XCA7CivlhoXlkJEgPiBuYWlrb3VcIDsKK+WFieWtkCA+IGtvdXNoaVwgOwor6aaZ6aaZID4ga291a291XCA7CivlhoXlkIggPiBuYWlnb3VcIDsKK+iIuea4oCA+IHNlbmt5b1wgOwor55SY6JSXID4ga2Fuc2hvXCA7Civlt6jlj6MgPiBreW9rb3VcIDsKK+WFrOWboyA+IGtvdWRhblwgOwor5YaN5YukID4gc2Fpa2luXCA7CivluILlgrUgPiBzaGlzYWlcIDsKK+WyqeeptCA+IGl3YWFuYVwgOwor5YWD5a+HID4gZ2Vua291XCA7CivkvZnpnIcgPiB5b3NoaW5cIDsKK+WFqOWcsCA+IHplbmNoaVwgOwor55WP57iuID4gaXNodWt1XCA7CivlhpXlhqAgPiBiZW5rYW5cIDsKK+iMtuS8miA+IGNoYWthaVwgOwor55G26aGUID4geW91Z2FuXCA7CivkvY7poK0gPiB0ZWl0b3VcIDsKK+WGhuWNkyA+IGVudGFrdVwgOwor5a+G6ZaJID4gbWlwcGVpXCA7CivlsbHog4wgPiB5YW1hc2VcIDsKK+anmOaFiyA+IHlvdXRhaVwgOwor6Iy25LujID4gY2hhZGFpXCA7CivkvZPpnaIgPiB0YWltZW5cIDsKK+WCrOa2mSA+IHNhaXJ1aVwgOwor6IOM6aazID4gaGFpY2hpXCA7CivlhbHllrYgPiBreW91ZWlcIDsKK+iEsei1sCA+IGRhc3NvdVwgOwor55m+5aScID4gbW9tb3lvXCA7Civoi6blooMgPiBrdWt5b3VcIDsKK+WGmeWDjyA+IHNoYXpvdVwgOwor5a6f6aiTID4gamlra2VuXCA7CivlhaXlnJIgPiBueXV1ZW5cIDsKK+iMtuS6uiA+IGNoYWppblwgOwor6Ium5aGpID4gbmlnYXJpXCA7Civnmbrlpa4gPiBoYXBwdW5cIDsKK+iLseWbvSA+IGVpa29rdVwgOwor5YaF5YyFID4gbmFpaG91XCA7Civlho3liIogPiBzYWlrYW5cIDsKK+eUqOiIuSA+IHlvdXNlblwgOwor6auY54elID4ga291c291XCA7CivlhoXli6QgPiBuYWlraW5cIDsKK+iKseW6iiA+IGthc2hvdVwgOwor6IK66a2aID4gaGFpZ3lvXCA7Civoh6rnmb0gPiBqaWhha3VcIDsKK+WutumbhiA+IGthc2h1dVwgOwor6LuN5pu5ID4gZ3Vuc291XCA7Civou43mm7ggPiBndW5zaG9cIDsKK+WCjeeCuSA+IGJvdXRlblwgOwor5L6/6KanID4gYmVucmFuXCA7Civnmbrlo7AgPiBoYXNzZWlcIDsKK+eZu+WjhyA+IHRvdWRhblwgOwor5qeL5oiQID4ga291c2VpXCA7CivmpJznnLwgPiBrZW5nYW5cIDsKK+WGjeWGjSA+IHNhaXNhaVwgOwor5YCS572uID4gdG91Y2hpXCA7CivmoKHploAgPiBrb3Vtb25cIDsKK+mmlumhjCA+IHNodWRhaVwgOwor5YaF5YmbID4gbmFpZ291XCA7Civou5LmmIIgPiBrZW5rb3VcIDsKK+WFiOWmuyA+IHNlbnNhaVwgOwor5bed5Y6fID4ga2F3YXJhXCA7CivluILkvJogPiBzaGlrYWlcIDsKK+mqqOebuCA+IGtvc3NvdVwgOwor6Lui5o+bID4gdGVua2FuXCA7CivlhbHlkowgPiBreW91d2FcIDsKK+eUmOiNiSA+IGthbnpvdVwgOwor5YaF5YiGID4gbmFpYnVuXCA7CivnlJjojLYgPiBhbWFjaGFcIDsKK+eZu+WgtCA+IHRvdWpvdVwgOwor5a+d6YWSID4gbmV6YWtlXCA7CivlhYTlp4kgPiBrZWlzaGlcIDsKK+ato+OAhSA+IHNlaXNlaVwgOwor5biC5Lq6ID4gc2hpamluXCA7CivlhYTlprkgPiBrZWltYWlcIDsKK+WFpeWWtiA+IG55dXVlaVwgOwor5YW85YukID4ga2Vua2luXCA7CivlhYPlp4sgPiBnZW5zaGlcIDsKK+iGj+iCkyA+IGtvdWtvdVwgOwor6auY54K5ID4ga291dGVuXCA7Civou5LmlbAgPiBrZW5zdXVcIDsKK+WFiOWkqSA+IHNlbnRlblwgOwor5YWI5aScID4gc2VuJyd5YVwgOwor5biC5LqVID4gc2hpc2VpXCA7CivlhoblhoUgPiBlbicnbmFpXCA7CivlhoXlhoUgPiBuYWluYWlcIDsKK+i7jeaXhSA+IGd1bnJ5b1wgOwor5YaF5YW4ID4gbmFpdGVuXCA7Civou73lv6sgPiBrZWlrYWlcIDsKK+iIqua1tyA+IGtvdWthaVwgOwor5qeL5oOzID4ga291c291XCA7CivlrrbplbcgPiBrYWNob3VcIDsKK+WFqOWToSA+IHplbicnaW5cIDsKK+iHqOeVjCA+IHJpbmthaVwgOwor6auY54CsID4gdGFrYXNlXCA7Civlhajlk4EgPiB6ZW5waW5cIDsKK+aknOeXsCA+IGtlbnRhblwgOwor5YWl5ZSQID4gbml0dG91XCA7CivluILkuIogPiBzaGlqb3VcIDsKK+Wwj+ipsSA+IHNob3V3YVwgOwor55qH5ZejID4ga291c2hpXCA7Civlt6XlhbUgPiBrb3VoZWlcIDsKK+iDjOmdqSA+IHNlZ2F3YVwgOwor5beo5YSEID4ga3lvb2t1XCA7Civog4zpnaIgPiBoYWltZW5cIDsKK+i7jeaUvyA+IGd1bnNlaVwgOwor5YK15qipID4gc2Fpa2VuXCA7CivlhYjloZQgPiBzZW50b3VcIDsKK+WFrOWPuCA+IGtvdXNoaVwgOwor6Lyq5aemID4gcmlua2FuXCA7CivoiKrms5UgPiBrb3Vob3VcIDsKK+W3qOWDjyA+IGt5b3pvdVwgOwor55aR542EID4gZ2lnb2t1XCA7CivlsI/oqIAgPiBrb2dvdG9cIDsKK+WGheWCtSA+IG5haXNhaVwgOwor5qSc55WqID4ga2VuYmFuXCA7CivlhYXloasgPiBqdXV0ZW5cIDsKK+WxpOe+pCA+IHNvdWd1blwgOwor6Iqx5bGLID4gaGFuYXlhXCA7Civou5/mipUgPiBuYW50b3VcIDsKK+WGheWBtSA+IG5haXRlaVwgOwor5YWo5Y+yID4gemVuc2hpXCA7Civou6LmiKYgPiB0ZW5zZW5cIDsKK+WBtueEtiA+IGd1dXplblwgOwor55Sf6IKyID4gc2VpaWt1XCA7CivohoDog7EgPiBib3Vrb3VcIDsKK+i7ouaIkCA+IHRlbnNlaVwgOwor5YW15Yi2ID4gaGVpc2VpXCA7Civlsqnnm6QgPiBnYW5iYW5cIDsKK+mtlOaApyA+IG1hc2hvdVwgOwor5YWx5YqpID4ga3lvdWpvXCA7CivovIPlt64gPiBrYWt1c2FcIDsKK+ajkue3miA+IGJvdXNlblwgOwor5YWr5Y2BID4geWFzb2ppXCA7CivlhbXliIMgPiBoZWlqaW5cIDsKK+WGjeS8miA+IHNhaWthaVwgOwor6Iqx5a6iID4ga2FrYWt1XCA7CivoirHlrp8gPiBoYW5hbWlcIDsKK+iLl+WcgyA+IGJ5b3Vob1wgOwor5YaN5Lu7ID4gc2FpbmluXCA7CivkvZnpjLIgPiB5b3Jva3VcIDsKK+eXheawlyA+IGJ5b3VraVwgOwor6IO46YOoID4ga3lvdWJ1XCA7Civpp4XpgJMgPiBla2l0ZWlcIDsKK+WFiOWcqCA+IHNlbnphaVwgOwor5a6f6ZqbID4gamlzc2FpXCA7CivnlJ/ogIUgPiBzaG91amFcIDsKK+eUsee3kiA+IHl1aXNob1wgOwor5L+z6IGWID4gaGFpc2VpXCA7CivlsbHns7sgPiBzYW5rZWlcIDsKK+eUt+ezuyA+IGRhbmtlaVwgOwor5L2z6L6wID4ga2FzaGluXCA7Civlr77oq5YgPiB0YWlyb25cIDsKK+aoqeWOnyA+IGtlbmdlblwgOwor5a+u6LK7ID4gcnlvdWhpXCA7Civlr77oq4cgPiB0YWlkYW5cIDsKK+i6q+afhCA+IG1pZ2FyYVwgOwor5YCr56S+ID4gcmluc2hhXCA7Civlt6jkvZMgPiBreW90YWlcIDsKK+WGheS9jyA+IG5haWp1dVwgOwor55qH5ZCOID4ga291Z291XCA7CivlsI/oopYgPiBrb3NvZGVcIDsKK+WvvuiqniA+IHRzdWlnb1wgOwor6IO96L6vID4gbm91YmVuXCA7Civoi6blkbMgPiBuaWdhbWlcIDsKK+WDp+aIvyA+IHNvdWJvdVwgOwor5YWs5YikID4ga291aGFuXCA7CivprYXmg5EgPiBtaXdha3VcIDsKK+WFrOWIiiA+IGtvdWthblwgOwor5YaN5LiJID4gc2Fpc2FuXCA7CivlhYflmaggPiBreW91a2lcIDsKK+WztuawkSA+IHRvdW1pblwgOwor5qip5YuiID4ga2Vuc2VpXCA7Civlt6jkurogPiBreW9qaW5cIDsKK+WGheS6iSA+IG5haXNvdVwgOwor5bCG6KOcID4gc2hvdWhvXCA7CivlhoXkubEgPiBuYWlyYW5cIDsKK+WFjuWUhyA+IHRvc2hpblwgOwor5YW85L21ID4ga2VucGVpXCA7Civlt6XkurogPiBrb3VqaW5cIDsKK+iKuOWkpyA+IGdlaWRhaVwgOwor5YWs5YWaID4ga291dG91XCA7Civoh6rniIYgPiBqaWJha3VcIDsKK+iIt+airyA+IGdlbnRlaVwgOwor6ISx6KGjID4gZGF0c3VpXCA7CivlhobkuJggPiBlbmt5dXVcIDsKK+S8mumkqCA+IGthaWthblwgOwor6Iqd5bGFID4gc2hpYmFpXCA7Civou5/mgKcgPiBuYW5zZWlcIDsKK+eahuWLpCA+IGthaWtpblwgOwor5beo5LiHID4ga3lvbWFuXCA7Civou43miYcgPiBndW5zZW5cIDsKK+afu+mWsiA+IHNhZXRzdVwgOwor5a+46KiAID4gc3VuZ2VuXCA7Civlr4bpgIEgPiBtaXNzb3VcIDsKK+i8quWbniA+IHJpbicnbmVcIDsKK+eUqOe0mSA+IHlvdXNoaVwgOwor5a+E6YCyID4ga2lzaGluXCA7Civnl5TmoLggPiBqaWtha3VcIDsKK+WFqOWFjSA+IHplbm1lblwgOwor55m65ZCRID4gaGFra291XCA7CivkvZPph40gPiB0YWlqdXVcIDsKK+WFrOWCtSA+IGtvdXNhaVwgOwor5YWa5YuiID4gdG91c2VpXCA7Civmo4TntIQgPiBraXlha3VcIDsKK+S+jeiqrSA+IGppZG9rdVwgOwor6aqo54mMID4ga2FydXRhXCA7CivlgbTmup0gPiBzb2trb3VcIDsKK+WvqeitsCA+IHNoaW5naVwgOwor6aqo54mHID4ga29wcGVuXCA7Civlgr7mlpwgPiBrZWlzaGFcIDsKK+WEkuWtpiA+IGp1Z2FrdVwgOwor6Ieq54S2ID4gc2hpemVuXCA7CivlsILooYwgPiBzZW5rb3VcIDsKK+i1pOi1pCA+IGFrYWFrYVwgOwor6Imy5oKqID4gaXJvYWt1XCA7Civoi6blipsgPiBrdXVyaWlcIDsKK+i6q+aWuSA+IG1pa2F0YVwgOwor5qW35pu4ID4ga2Fpc2hvXCA7Civlrp3pkZEgPiBob3VrYW5cIDsKK+S8mumgrSA+IGthaXRvdVwgOwor5L+h6ICFID4gc2hpbmphXCA7Civotbfoq4sgPiBraXNob3VcIDsKK+iGv+eYjSA+IG5vdXlvdVwgOwor5qaC5pWwID4gZ2Fpc3V1XCA7Civoirjln58gPiBnZWlpa2lcIDsKK+Wwj+iZjiA+IGtvZG9yYVwgOwor6Imy5oGLID4gaXJva29pXCA7CivogrrploAgPiBoYWltb25cIDsKK+WFteS7lyA+IGhlaWpvdVwgOwor5a626YO3ID4ga2FreW91XCA7CivnlaLnlJ8gPiBoaXNzZWlcIDsKK+S/oee+qSA+IHNoaW5naVwgOwor5bKz54i2ID4gZ2FrdWZ1XCA7Civpq5jmrrUgPiBrb3VkYW5cIDsKK+eUn+e0mSA+IGtpZ2FtaVwgOwor6Ia/55axID4gbm91aG91XCA7CivkvovoqIAgPiByZWlnZW5cIDsKK+eah+WFuCA+IGtvdXRlblwgOwor5YWI5ZCbID4gc2Vua3VuXCA7CivkvbPos54gPiBrYXNob3VcIDsKK+WFrOS+ryA+IGtvdWtvdVwgOwor6LWk6LKdID4gYWthZ2FpXCA7Civkvovop6MgPiByZWlrYWlcIDsKK+eahuWFtSA+IGthaWhlaVwgOwor6LuN5oOFID4gZ3Vuam91XCA7Civpq5jmra8gPiB0YWthYmFcIDsKK+WFteS5sSA+IGhlaXJhblwgOwor5L2V6YGNID4gbmFuYmVuXCA7Civlhazkvb8gPiBrb3VzaGlcIDsKK+WFiOWPliA+IHNlbnNodVwgOwor55m65YuBID4gaGFra2VpXCA7Civpp4Tos4MgPiBkYWNoaW5cIDsKK+eZuuWKuSA+IGhha2tvdVwgOwor5bC+57+8ID4gYml5b2t1XCA7Civpq4TmtrIgPiB6dWlla2lcIDsKK+WwgeidiyA+IGZ1dXJvdVwgOwor5YWa5YaFID4gdG91bmFpXCA7CivnlKjnrosgPiB5b3VzZW5cIDsKK+WFrOS9jyA+IGtvdWp1dVwgOwor5YWo5L6/ID4gemVuYmluXCA7CivnlJ/nsosgPiBraXNzdWlcIDsKK+eUsueoriA+IGtvdXNodVwgOwor5L+X6ICzID4gem9rdWppXCA7Civpq5jmrIQgPiBrb3VyYW5cIDsKK+ahv+iPjCA+IGthbmtpblwgOwor5YWs5LyaID4ga291a2FpXCA7CivoiJ7mpb0gPiBidWdha3VcIDsKK+WutOmBiiA+IGVuJyd5dXVcIDsKK+WFg+WPtyA+IGdlbmdvdVwgOwor6aqo54KtID4ga290dGFuXCA7CivnmbrliLggPiBoYWtrZW5cIDsKK+WBtOazsyA+IHNvYmFlaVwgOwor6Iux5L+KID4gZWlzaHVuXCA7CivnlbDniakgPiBpYnV0c3VcIDsKK+WFqOS9kyA+IHplbnRhaVwgOwor55Kw6KaWID4ga2Fuc2hpXCA7CivohLHol6kgPiBkYXBwYW5cIDsKK+eZuuWIiiA+IGhha2thblwgOwor5YWs5Lq6ID4ga291amluXCA7CivlhIDlrrggPiBnaXNoaW5cIDsKK+S/guiIuSA+IGtlaXNlblwgOwor5p+U6aCGID4ganV1anVuXCA7CivlhajkvJogPiB6ZW5rYWlcIDsKK+eVqueKrCA+IGJhbmtlblwgOwor6aas6LqrID4gYmFzaGluXCA7Civnmb3lhYkgPiBoYWtrb3VcIDsKK+eXmeaUoyA+IGtlaXJlblwgOwor5L2O6L+3ID4gdGVpbWVpXCA7Civoiq/lnLAgPiBzaGluamlcIDsKK+S+v+iIuSA+IGJpbnNlblwgOwor5YWo5Lq6ID4gemVuamluXCA7CivohY7oh5MgPiBqaW56b3VcIDsKK+mms+i1sCA+IGNoaXNvdVwgOwor55m65YWJID4gaGFra291XCA7CivlhYPli7IgPiBnZW5rdW5cIDsKK+iFi+iHrSA+IHdha2lnYVwgOwor5YGc5rueID4gdGVpdGFpXCA7CivlhYjliLYgPiBzZW5zZWlcIDsKK+mmmemBkyA+IGtvdWRvdVwgOwor6Iux5LqsID4gZWlreW91XCA7Civnl7TmhYsgPiBjaGl0YWlcIDsKK+WxseegpiA+IHNhbnNhaVwgOwor5a+d6KiAID4gbmVnb3RvXCA7CivkvbPoqr8gPiBrYWNob3VcIDsKK+mrmOalvCA+IGtvdXJvdVwgOwor6Lui5bGFID4gdGVua3lvXCA7CivlgYnng4ggPiBpcmV0c3VcIDsKK+WFieWGoCA+IGtvdWthblwgOwor6a2v5Zu9ID4gcm9rb2t1XCA7CivohIfoposgPiB3YWtpbWlcIDsKK+WFheWIhiA+IGp1dWJ1blwgOwor5qih5L2cID4gbW9zYWt1XCA7CivnmobkvJ0gPiBrYWlkZW5cIDsKK+eXtOaDhSA+IGNoaWpvdVwgOwor5a2d6aSKID4ga291eW91XCA7Civoh6jmuK8gPiByaW5rb3VcIDsKK+W0h+aVrCA+IHN1dWtlaVwgOwor6Lui5a+dID4gZ29yb25lXCA7CivohZDogokgPiBmdW5pa3VcIDsKK+WumOmHkSA+IGthbmtpblwgOwor6Ly45YWlID4geXVueXV1XCA7CivlhYjlhbUgPiBzZW5wZWlcIDsKK+i7jeW4vSA+IGd1bmJvdVwgOwor5YWH5YW3ID4ga3lvdWd1XCA7Civkv5fnuIEgPiB6b2t1ZW5cIDsKK+i7jeW4qyA+IGd1bnNoaVwgOwor6IW5562LID4gZnVra2luXCA7Civoh6rmtpwgPiBqaXRva3VcIDsKK+iGmuedgCA+IGhhZGFnaVwgOwor6LWw6KGMID4gc291a291XCA7CivlrrnotaYgPiB5b3VzaGFcIDsKK+Wwv+e0oCA+IG55b3Vzb1wgOwor5qCE6YCyID4gZWlzaGluXCA7Civmp4vlpJYgPiBrb3VnYWlcIDsKK+alk+aelyA+IGZ1dXJpblwgOwor5YWa5Lq6ID4gdG91amluXCA7Civoh6jmtbcgPiByaW5rYWlcIDsKK+S9meiziiA+IHlvem9rdVwgOwor5qSc5ripID4ga2VuJydvblwgOwor5a+T6KiAID4gZ3V1Z2VuXCA7CivlhZrkuokgPiB0b3Vzb3VcIDsKK+mBheOAhSA+IGNoaWNoaVwgOwor6aaW6LyqID4ga3ViaXdhXCA7CivoirjlkI0gPiBnZWltZWlcIDsKK+WBpeawlyA+IGtlbmFnZVwgOwor6auY5qChID4ga291a291XCA7CivlrZ3poIYgPiBrb3VqdW5cIDsKK+iCm+mWgCA+IGtvdW1vblwgOwor6Ieq5rOoID4gamljaHV1XCA7CivmoITovrEgPiBlaWpva3VcIDsKK+WumOmCuCA+IGthbnRlaVwgOwor6LWk6KO4ID4gc2VraXJhXCA7Civoh7TmrbsgPiBjaGlzaGlcIDsKK+Wwj+iIuSA+IGtvYnVuZVwgOwor5LyN6ZW3ID4gZ29jaG91XCA7CivoibblrrkgPiBlbicneW91XCA7CivlsYjnrYsgPiBrdWtraW5cIDsKK+WuueiyjCA+IHlvdWJvdVwgOwor5bCP6IifID4ga29idW5lXCA7CivnmbrkvJogPiBoYWtrYWlcIDsKK+iHquayiCA+IGppY2hpblwgOwor5a6Y6YG4ID4ga2Fuc2VuXCA7Civnl5vmiZMgPiB0c3V1ZGFcIDsKK+iHreawlyA+IHNodXVraVwgOwor5a626LODID4geWFjaGluXCA7Civnmbvku5kgPiB0b3VzZW5cIDsKK+iKs+WQjSA+IGhvdW1laVwgOwor5a2m6ZmiID4gZ2FrdWluXCA7CivprZTlooMgPiBtYWt5b3VcIDsKK+iIjOaguSA+IHpla2tvblwgOwor5YCJ55qHID4gc291a291XCA7CivltKnlvqEgPiBob3VneW9cIDsKK+S9k+iyjCA+IHRhaWJvdVwgOwor6aWF6aCtID4gbWFuanV1XCA7CivkvZzorZwgPiBzYWt1ZnVcIDsKK+S9teihjCA+IGhlaWtvdVwgOwor5YWI5L6/ID4gc2VuYmluXCA7CivlsI/ohp0gPiBrb2hpemFcIDsKK+WJjeOAhSA+IG1hZW1hZVwgOwor5bKs5rm+ID4ga291d2FuXCA7CivlgJLnlKMgPiB0b3VzYW5cIDsKK+Wwj+iFuSA+IGtvYmFyYVwgOwor5YWI5L6LID4gc2VucmVpXCA7CivlhYPlgKQgPiBtb3RvbmVcIDsKK+S9juizhyA+IHRlaXNoaVwgOwor6aqo5rOVID4ga29wcG91XCA7CivnlJ/noawgPiBzZWlrb3VcIDsKK+iJr+WutiA+IHJ5b3VrZVwgOwor5YWJ5L2TID4ga291dGFpXCA7CivlrpjovrogPiBrYW5wZW5cIDsKK+iLn+S4lCA+IGtvdXNob1wgOwor5bGk55u4ID4gc291c291XCA7Civlrp/ou4ogPiBqaXNzaGFcIDsKK+WFiOS9jyA+IHNlbmp1dVwgOwor5a+G6KiIID4gbWlra2VpXCA7CivlhKrli6IgPiB5dXVzZWlcIDsKK+WCsuaFoiA+IGdvdW1hblwgOwor5LuL6bGXID4ga2FpcmluXCA7Civog7joo48gPiBreW91cmlcIDsKK+Wwj+iEhyA+IGtvd2FraVwgOwor5a+E6KiXID4ga2l0YWt1XCA7CivltIfmi50gPiBzdXVoYWlcIDsKK+amguW/tSA+IGdhaW5lblwgOwor55So55uKID4geW91ZWtpXCA7Civlsa/nlLAgPiB0b25kZW5cIDsKK+iGvueCmSA+IGthaXNoYVwgOwor55m45LiRID4ga2ljaHV1XCA7CivlhYjku6MgPiBzZW5kYWlcIDsKK+mnmOiVqSA+IHRhaXRvdVwgOwor5YGc5q2iID4gdGVpc2hpXCA7CivlsI/ogqEgPiBrb21hdGFcIDsKK+WFiOS6uiA+IHNlbmppblwgOwor6Lui5aSJID4gdGVucGVuXCA7Civou6Llo7IgPiB0ZW5iYWlcIDsKK+WBtOaguSA+IHNva2tvblwgOwor5a6M6YGCID4ga2Fuc3VpXCA7Civlrp/ot7UgPiBqaXNzZW5cIDsKK+WumOi7jSA+IGthbmd1blwgOwor6IOM6LWwID4gaGFpc291XCA7CivouqvlvaIgPiBtaW5hcmlcIDsKK+agoeiokyA+IGtvdWt1blwgOwor5bCP6ICzID4ga29taW1pXCA7CivogbTpn7MgPiBjaG91b25cIDsKK+agoeiogiA+IGtvdXRlaVwgOwor6IiI5pu/ID4ga291dGFpXCA7Civlrrnoqo0gPiB5b3VuaW5cIDsKK+iEseiEgiA+IGRhc3NoaVwgOwor5YWI5Li7ID4gc2Vuc2h1XCA7CivkvJrph4ggPiBlc2hha3VcIDsKK+WtlOmbgCA+IGt1amFrdVwgOwor5qSc5q27ID4ga2Vuc2hpXCA7CivlsI/ogIUgPiBrb21vbm9cIDsKK+S7o+mhmCA+IGRhaWdhblwgOwor6aSK6baPID4geW91a2VpXCA7Civkv4LntK8gPiBrZWlydWlcIDsKK+iCnemKmCA+IGthbm1laVwgOwor5L2T6KqNID4gdGFpbmluXCA7CivkvZnop5IgPiB5b2tha3VcIDsKK+iEseiCmyA+IGRha2tvdVwgOwor5a+d6JeBID4gbmV3YXJhXCA7CivlhKrlhYggPiB5dXVzZW5cIDsKK+izvemKrSA+IHNhaXNlblwgOwor5YG25pyJID4gZ3V1eXV1XCA7Civlr4booYwgPiBtaWtrb3VcIDsKK+WFg+S4iSA+IGdhbnphblwgOwor6Iag54q2ID4ga291am91XCA7CivkvZPoqIAgPiB0YWlnZW5cIDsKK+WBpeajkiA+IGtlbmJvdVwgOwor5Yi644CFID4gaXJhaXJhXCA7CivouqvluYUgPiBtaWhhYmFcIDsKK+S7sumWkyA+IG5ha2FtYVwgOwor5Lyd6YGTID4gZGVuZG91XCA7CivkvLTotbAgPiBiYW5zb3VcIDsKK+i6q+W3viA+IG1paGFiYVwgOwor5a2U6ZaAID4ga291bW9uXCA7Civou6LlnLAgPiB0ZW5jaGlcIDsKK+iJr+WknCA+IHJ5b3V5YVwgOwor5L2T6KaBID4gdGFpeW91XCA7CivkvJ3pgIEgPiBkZW5zb3VcIDsKK+i0i+mAoCA+IGdhbnpvdVwgOwor6a6O5LimID4gYWluYW1lXCA7CivoiLnlvbEgPiBzZW4nJ2VpXCA7CivoiIjmlZcgPiBrb3VoYWlcIDsKK+i7ouWbniA+IHRlbmthaVwgOwor6Ieo5qScID4gcmlua2VuXCA7Civlr77oga8gPiB0YWlyZW5cIDsKK+eZiOWFtSA+IGhhaWhlaVwgOwor6aaW6KyAID4gc2h1Ym91XCA7Civlg5XlqaIgPiBib2t1aGlcIDsKK+ajkueKtiA+IGJvdWpvdVwgOwor6auY5o+aID4ga291eW91XCA7Civku5bpoJggPiB0YXJ5b3VcIDsKK+iBr+maiiA+IHJlbnRhaVwgOwor5a+46IO0ID4genVuZG91XCA7Civlg6floIIgPiBzb3Vkb3VcIDsKK+S+jeiHoyA+IGppc2hpblwgOwor6aiT566XID4ga2VuemFuXCA7CivnlJ/nlKMgPiBzZWlzYW5cIDsKK+eUn+eUnyA+IHNlaXNlaVwgOwor5Lq66a2aID4gbmluZ3lvXCA7CivkvZPoo4EgPiB0ZWlzYWlcIDsKK+i7jeWjqyA+IGd1bnNoaVwgOwor5L6/566hID4gYmVua2FuXCA7CivlgbbmlbAgPiBndXVzdXVcIDsKK+S+v+euiyA+IGJpbnNlblwgOwor6aSK6a2aID4geW91Z3lvXCA7CivlsI7nt5ogPiBkb3VzZW5cIDsKK+iBlumkkCA+IHNlaXNhblwgOwor5a6M6LWwID4ga2Fuc291XCA7CivkvInphY0gPiBrb3VoYWlcIDsKK+mmrOidvyA+IHVtYWJhZVwgOwor6Iqx5L+hID4ga2FzaGluXCA7CivlrqPoqpMgPiBzZW5zZWlcIDsKK+S7pOmWqCA+IHJlaWtlaVwgOwor5YOn5Z2KID4gc291Ym91XCA7Civlr77nva4gPiB0YWljaGlcIDsKK+mnkOiLsSA+IGNodXVlaVwgOwor6IKp6LqrID4ga2F0YW1pXCA7Civku4rpoqggPiBpbWFmdXVcIDsKK+mAmeOAhSA+IGhvdWhvdVwgOwor6Iq45Lq6ID4gZ2VpbmluXCA7Civmn5TpgZMgPiBqdXVkb3VcIDsKK+WxpOeKtiA+IHNvdWpvdVwgOwor6ISx57eaID4gZGFzc2VuXCA7CivmoLnoj5wgPiBrb25zYWlcIDsKK+Wuo+iogCA+IHNlbmdlblwgOwor6IOh6J22ID4ga29jaG91XCA7CivlsI/ns6AgPiBrb251a2FcIDsKK+aknOahiCA+IGtlbicnYW5cIDsKK+aenemaiiA+IHNoaXRhaVwgOwor5a6a6KuWID4gdGVpcm9uXCA7Civmpb3lsYsgPiBnYWt1eWFcIDsKK+mrmOaJgCA+IGtvdXNob1wgOwor55eF5b6MID4gYnlvdWdvXCA7Civohr/msYEgPiBub3VqdXVcIDsKK+WCsuWyuCA+IGdvdWdhblwgOwor5bCP57GzID4ga29nb21lXCA7Civlrabpg6ggPiBnYWt1YnVcIDsKK+iHqOabuCA+IHJpbnNob1wgOwor5p+76KqtID4gc2Fkb2t1XCA7CivohavnmI0gPiBzaHV5b3VcIDsKK+alveWvnSA+IHJha3VuZVwgOwor5bCB57eYID4gZnV1a2FuXCA7CivmoLnojI4gPiBrb25rZWlcIDsKK+iGqOa6gCA+IGJvdW1hblwgOwor5L+u55CGID4gc2h1dXJpXCA7CivohLHns54gPiBkYXBwdW5cIDsKK+S/oeeWkSA+IHNoaW5naVwgOwor5a6f6KaLID4gamlra2VuXCA7Civou43lm6MgPiBndW5kYW5cIDsKK+iHmOaihSA+IHJvdWJhaVwgOwor5a6a6KiAID4gdGVpZ2VuXCA7Civmn7voqLwgPiBzYXNob3VcIDsKK+WAkua9sCA+IHRvdWthaVwgOwor6IiM5oimID4gemVzc2VuXCA7CivlsJbnq68gPiBzZW50YW5cIDsKK+WumOiosSA+IGthbmt5b1wgOwor6auY5oWiID4ga291bWFuXCA7Civmn5Tou58gPiBqdXVuYW5cIDsKK+Wwj+eusSA+IGtvYmFrb1wgOwor6IGW6ZyKID4gc2VpcmVpXCA7CivnmYjkurogPiBoYWlqaW5cIDsKK+i7ouWQkSA+IHRlbmtvdVwgOwor5a+G6JGsID4gbWlzc291XCA7CivlsL3nmIEgPiBqaW5zdWlcIDsKK+S9s+iJryA+IGthcnlvdVwgOwor5bCK57ChID4gc29ua2FuXCA7CivlsI7nrqEgPiBkb3VrZW5cIDsKK+WwhOeyviA+IHNoYXNlaVwgOwor5a6a6KaLID4gdGVpa2VuXCA7Civkv53nlZkgPiBob3J5dXVcIDsKK+ani+WGhSA+IGtvdW5haVwgOwor55Om56SrID4gZ2FyZWtpXCA7Civlrp/oo4UgPiBqaXNzb3VcIDsKK+alteWvkiA+IGdva2thblwgOwor6aeF6IiOID4gZWtpc2hhXCA7CivmnaXprq4gPiByYWlzZW5cIDsKK+S6uumhniA+IGppbnJ1aVwgOwor5p6X6ZaTID4gcmlua2FuXCA7Civlrpfopo8gPiBzaHV1a2lcIDsKK+Wvqee+jiA+IHNoaW5iaVwgOwor5bSp5aOKID4gaG91a2FpXCA7CivkuqHprYIgPiBib3Vrb25cIDsKK+i0iOizhCA+IHpvdXdhaVwgOwor5L2/6IGYID4gc2hpaGVpXCA7CivkurrpoK0gPiBqaW50b3VcIDsKK+i1sOiAhSA+IHNvdXNoYVwgOwor5a2d6YGTID4ga291ZG91XCA7Civlrp/ooYwgPiBqaWtrb3VcIDsKK+i7jeWWtiA+IGd1bicnZWlcIDsKK+WDreWPliA+IHNlbnNodVwgOwor5qeY5L2TID4geW91dGFpXCA7Civos5zph5EgPiBzaGlraW5cIDsKK+agoeiRrCA+IGtvdXNvdVwgOwor6Lu95L6/ID4ga2VpYmVuXCA7Civkvb/ogIUgPiBzaGlzaGFcIDsKK+WumOijvSA+IGthbnNlaVwgOwor5YG25oiQID4gZ3V1c2VpXCA7Civkv5fnlYwgPiB6b2trYWlcIDsKK+i7ouWLpCA+IHRlbmtpblwgOwor5Lqk6ampID4ga291a2FuXCA7Civkv5fnlLsgPiB6b2t1Z2FcIDsKK+advumfuyA+IHNob3VpblwgOwor5a++57GzID4gdGFpYmVpXCA7CivlrovoqZ4gPiBzb3VzaGlcIDsKK+W5s+OAhSA+IGhlaWhlaVwgOwor6Led54iqID4ga3lvc291XCA7Civlg6flj7cgPiBzb3Vnb3VcIDsKK+iEguiCqiA+IHNoaWJvdVwgOwor5Lq66Z2iID4gamlubWVuXCA7CivlsILnrqEgPiBzZW5rYW5cIDsKK+iCjOi6qyA+IGhhZGFtaVwgOwor6Imv5ZCmID4gcnlvdWhpXCA7Civpo7zppIogPiBzaGl5b3VcIDsKK+WztuW2vCA+IHRvdXNob1wgOwor6ICB6b2iID4gcm91cmVpXCA7Civoia/lkI8gPiByeW91cmlcIDsKK+advumcsiA+IHNob3Vyb1wgOwor5bCB562SID4gZnV1dG91XCA7Civpo5vps6UgPiBoaWNob3VcIDsKK+iEmue1hiA+IGt5YWhhblwgOwor5YG25oSfID4gZ3V1a2FuXCA7Civosp3poZ4gPiBrYWlydWlcIDsKK+S7mOmMsiA+IGZ1cm9rdVwgOwor5YGP5peBID4gaGVuYm91XCA7Civku6Pph5EgPiBkYWlraW5cIDsKK+mrmOW8nyA+IGtvdXRlaVwgOwor6LO86LK3ID4ga291YmFpXCA7CivohLHnqL8gPiBkYWtrb3VcIDsKK+WBj+aWnCA+IGhlbnNoYVwgOwor5bGx5rW3ID4gc2Fua2FpXCA7Civlr4boiKogPiBtaWtrb3VcIDsKK+WvkuiCpSA+IGthbmdvZVwgOwor5a++562JID4gdGFpdG91XCA7Civou6LlhpkgPiB0ZW5zaGFcIDsKK+S8muirhyA+IGthaWRhblwgOwor6IiO5byfID4gc2hhdGVpXCA7Civlgr7ln44gPiBrZWlzZWlcIDsKK+WBpeaKlSA+IGtlbnRvdVwgOwor6aa06Ie0ID4ganVuY2hpXCA7CivprZrku4sgPiBneW9rYWlcIDsKK+WCmOWxiyA+IGthc2F5YVwgOwor6auY5bm0ID4ga291bmVuXCA7CivkvbXnva4gPiBoZWljaGlcIDsKK+WwhOeoiyA+IHNoYXRlaVwgOwor5Lyd6KiAID4gZGVuZ29uXCA7Civou4rlj7AgPiBzaGFkYWlcIDsKK+eVs+aVsCA+IGpvdXN1dVwgOwor5a++56m6ID4gdGFpa3V1XCA7CivkvJroqIggPiBrYWlrZWlcIDsKK+S9nOiIiCA+IHNha2tvdVwgOwor6IGv6YKmID4gcmVucG91XCA7Civohbjngo4gPiBjaG91ZW5cIDsKK+S6uumWkyA+IG5pbmdlblwgOwor5a2m6LK7ID4gZ2FrdWhpXCA7CivmnbHpnaIgPiB0b3VtZW5cIDsKK+mrmOW3pSA+IGtvdWtvdVwgOwor5qCh6IiOID4ga291c2hhXCA7CivlsI/noLQgPiBzaG91aGFcIDsKK+izh+mHkSA+IHNoaWtpblwgOwor6auY5ba6ID4gdGFrYW5lXCA7Civpo5vprZogPiB0b2JpdW9cIDsKK+WxseawtCA+IHNhbnN1aVwgOwor5L2Z6IiIID4geW9reW91XCA7CivlsbHmsJcgPiB5YW1ha2VcIDsKK+Wwj+efsyA+IGtvaXNoaVwgOwor6IiI5buDID4ga291aGFpXCA7Civou43li6IgPiBndW56ZWlcIDsKK+S9meiHrSA+IHlvc2h1dVwgOwor5Lya6KaLID4ga2Fpa2VuXCA7CivlgJLmrbsgPiB0b3VzaGlcIDsKK+WwgeemhSA+IGhvdXplblwgOwor6LSF6KiAID4gemVpZ2VuXCA7Civnj77ph5EgPiBnZW5raW5cIDsKK+WxheeEtiA+IGt5b3plblwgOwor5YSE5LiHID4gb2t1bWFuXCA7CivmpJzmjJkgPiBrZW5reW9cIDsKK+i7jeWKnyA+IGd1bmtvdVwgOwor6Lui5YCSID4gdGVudG91XCA7CivnlLrmrakgPiBjaG91YnVcIDsKK+WDp+WFtSA+IHNvdWhlaVwgOwor55aR5oORID4gZ2l3YWt1XCA7Civls7blroggPiB0b3VzaHVcIDsKK+S7o+i/lCA+IGRhaWhlblwgOwor5YGc5oimID4gdGVpc2VuXCA7Civmpb3lnJ8gPiByYWt1ZG9cIDsKK+iHqOaIpiA+IHJpbnNlblwgOwor5a6d6JS1ID4gaG91em91XCA7Civmpb3lnJIgPiByYWt1ZW5cIDsKK+iHs+aDhSA+IHNoaWpvdVwgOwor6auY5bOwID4ga291aG91XCA7Civmnpfph44gPiByaW4nJ3lhXCA7Civou43liLYgPiBndW5zZWlcIDsKK+S6rOmYqiA+IGtlaWhhblwgOwor6LWk57eaID4gYWthc2VuXCA7Civlrrboh6MgPiBrYXNoaW5cIDsKK+S6pOmciiA+IGtvdXJlaVwgOwor5LuW6YO3ID4gdGFreW91XCA7Civou43liIAgPiBndW50b3VcIDsKK+mmmeiNiSA+IGtvdXNvdVwgOwor55e05ZGGID4gY2hpaG91XCA7CivmnaHpoIUgPiBqb3Vrb3VcIDsKK+i7n+S+vyA+IG5hbmJlblwgOwor5bCP55uuID4ga29tb2t1XCA7Civmn5DoqowgPiBib3VzaGlcIDsKK+aghOiQvSA+IGVpcmFrdVwgOwor6LuK5Yi4ID4gc2hha2VuXCA7Civou6LkvY8gPiB0ZW5qdXVcIDsKK+eUqOazlSA+IHlvdWhvdVwgOwor6ImZ5Y+jID4gc291a291XCA7Civoh4bmlq0gPiBva3VkYW5cIDsKK+mrmOWxsSA+IGtvdXphblwgOwor6LqN5aaCID4geWFrdWpvXCA7Civpq5jlsaQgPiBrb3Vzb3VcIDsKK+Wwj+eavyA+IGtvemFyYVwgOwor5bCP55q6ID4ga29qaXdhXCA7CivkuqHpnIogPiBib3VyZWlcIDsKK+S6pOmamyA+IGtvdXNhaVwgOwor6Ii55Z6LID4gc2Vua2VpXCA7CivotaTntYwgPiBzZWtrZWlcIDsKK+S9nuiAhSA+IG5laXNoYVwgOwor5qWt5aCxID4gZ291aG91XCA7CivppqzogokgPiBiYW5pa3VcIDsKK+S9k+iFlCA+IHRhaWtvdVwgOwor5YGV5oiQID4ga2Fpc2VpXCA7CivnlpHlv4MgPiBnaXNoaW5cIDsKK+i7jeWFtSA+IGd1bnBlaVwgOwor5p2l6Zu7ID4gcmFpZGVuXCA7CivmnbHploAgPiB0b3Vtb25cIDsKK+mrmOWwgiA+IGtvdXNlblwgOwor5YGl5b+YID4ga2VuYm91XCA7CivnlKjmsLQgPiB5b3VzdWlcIDsKK+i7iuWGhSA+IHNoYW5haVwgOwor6aat6ICFID4gZ3lvc2hhXCA7CivprYXkuoYgPiBtaXJ5b3VcIDsKK+S6jOmjnyA+IG5pamlraVwgOwor6Ii55ZujID4gc2VuZGFuXCA7CivohILnsokgPiBzaGlmdW5cIDsKK+ePvumAgSA+IGdlbnNvdVwgOwor6auY5a6YID4ga291a2FuXCA7Civoh7PlvZMgPiBzaGl0b3VcIDsKK+eOhOm7hCA+IGdlbmtvdVwgOwor5L2T6IKyID4gdGFpaWt1XCA7Civou43lg6cgPiBndW5zb3VcIDsKK+WxpeattCA+IHJpcmVraVwgOwor5YOn5L62ID4gc291cnlvXCA7CivmnpfpgZMgPiByaW5kb3VcIDsKK+iytOmHjSA+IGtpY2hvdVwgOwor5L2Z57+SID4geW9zaHV1XCA7CivosYrpupcgPiBob3VyZWlcIDsKK+WApOacrSA+IG5lZnVkYVwgOwor5L2O6IO9ID4gdGVpbm91XCA7CivmnaXpmKogPiByYWloYW5cIDsKK+WDp+S9kyA+IHNvdXRhaVwgOwor5L6L56WtID4gcmVpc2FpXCA7CivosrTphawgPiBraXNodXVcIDsKK+iDmuiDjiA+IGhhaXRhaVwgOwor5YOn5Ly9ID4gc291Z3lhXCA7Civmoafnmq4gPiBoaXdhZGFcIDsKK+WCvuWQkSA+IGtlaWtvdVwgOwor5a2Q6LGaID4ga29idXRhXCA7Civosq/ph5EgPiBjaG9raW5cIDsKK+alveWToSA+IGdha3VpblwgOwor5YGl5bq3ID4ga2Vua291XCA7Civoh6rlvpcgPiBqaXRva3VcIDsKK+WDreS4uyA+IHNlbnNodVwgOwor5Luj6LWwID4gZGFpc291XCA7Civku6Pota0gPiB0YWlzaGFcIDsKK+iCuuiRiSA+IGhhaXlvdVwgOwor5YOt5LiKID4gc2Vuam91XCA7Civoh6jlvqEgPiByaW5neW9cIDsKK+iyp+mJsSA+IGhpbmtvdVwgOwor5YGP5oSbID4gaGVuJydhaVwgOwor5YG95a2mID4gZ2lnYWt1XCA7CivlgpHlo6sgPiBrZXNzaGlcIDsKK+mmluiEsyA+IHNodW5vdVwgOwor6LuN5L2/ID4gZ3Vuc2hpXCA7CivnlJ/mrosgPiBzZWl6YW5cIDsKK+eUn+atuyA+IHNlaXNoaVwgOwor5p2/6YeRID4gYmFua2luXCA7Civmo5/mnKggPiBtdW5hZ2lcIDsKK+eVquaJgCA+IGJhbnNob1wgOwor6Lev5qiZID4gcm9oeW91XCA7CivnnIjjgIUgPiB0YW50YW5cIDsKK+eUt+aguSA+IGRhbmtvblwgOwor5L2O572uID4gdGVpY2hpXCA7Civpppbogq8gPiBzaHVrb3VcIDsKK+i7iuS9kyA+IHNoYXRhaVwgOwor6Ii55ZOhID4gc2VuJydpblwgOwor55eF5ZugID4gYnlvdWluXCA7CivlrZfoqLMgPiBqaXlha3VcIDsKK+i7jeS7pCA+IGd1bnJlaVwgOwor5YGP5oCnID4gaGVuc2VpXCA7Civmo43mo5IgPiBrb25ib3VcIDsKK+WxpOalvCA+IHNvdXJvdVwgOwor5YGc5bm0ID4gdGVpbmVuXCA7CivlgpjlnLAgPiBrYXNhamlcIDsKK+iHqOW5uCA+IHJpbmtvdVwgOwor6LuN5Lq6ID4gZ3VuamluXCA7Civoh6rluK0gPiBqaXNla2lcIDsKK+S6iOmchyA+IHlvc2hpblwgOwor5a6Y6IiOID4ga2Fuc2hhXCA7CivpqJLnhLYgPiBzb3V6ZW5cIDsKK+mrmOWkpyA+IGtvdWRhaVwgOwor6Iel5bqKID4gZ2FzaG91XCA7CivlsbHmnpcgPiBzYW5yaW5cIDsKK+alteWPsyA+IGt5b2t1dVwgOwor5pyo6a2CID4ga29kYW1hXCA7Civpq5jlo6sgPiBrb3VzaGlcIDsKK+iFjueCjiA+IGppbicnZW5cIDsKK+WxseadkSA+IHNhbnNvblwgOwor5Lq66YG4ID4gamluc2VuXCA7CivlsI/njKsgPiBrb25la29cIDsKK+S7ruiolyA+IGthdGFrdVwgOwor5a++55SfID4gdGFpc2VpXCA7Civmo5Lmna0gPiBib3VndWlcIDsKK+iIueWPsCA+IHNlbmRhaVwgOwor5Lq66YGTID4gamluZG91XCA7CivpqqjlubkgPiBrb2trYW5cIDsKK+ajkuadmSA+IGJvdWd1aVwgOwor6aas57OnID4gYmFyeW91XCA7Civos4fosqEgPiBzaGl6YWlcIDsKK+mmrOezniA+IG1hZ3Vzb1wgOwor5Lq66YCgID4gamluem91XCA7Civlg4Xlg4UgPiBraW5raW5cIDsKK+alteWNsCA+IGdva3VpblwgOwor5Luj6KydID4gdGFpc2hhXCA7Civku6PorJsgPiBkYWlrb3VcIDsKK+S8muiRrCA+IGthaXNvdVwgOwor5a2d6KGMID4ga291a291XCA7CivnlLLmnb8gPiBrb3VoYW5cIDsKK+i7iuS4iiA+IHNoYWpvdVwgOwor6Iez5bCKID4gc2hpc29uXCA7CivoiIXlp5EgPiBreXV1a29cIDsKK+S6iemXmCA+IHNvdXRvdVwgOwor6IiI5aWuID4ga291ZnVuXCA7CivoiabkuIogPiBrYW5qb3VcIDsKK+iCuuiHkyA+IGhhaXpvdVwgOwor6Lqr5YaFID4gbWl1Y2hpXCA7CivlsI/niakgPiBrb21vbm9cIDsKK+mrmOWggiA+IGtvdWRvdVwgOwor5bCP54mbID4ga291c2hpXCA7CivouqvlhbEgPiBtaWRvbW9cIDsKK+eRtue3mCA+IHlvdWthblwgOwor5YK15Yi4ID4gc2Fpa2VuXCA7Civoh7Plrp0gPiBzaGlob3VcIDsKK+S9k+ezuyA+IHRhaWtlaVwgOwor5YGP5bmzID4gaGVucGVpXCA7CivouqvlhYMgPiBtaW1vdG9cIDsKK+Wvn+efpSA+IHNhdGNoaVwgOwor55Sf5qScID4gc2Vpa2VuXCA7Civkuqzpg70gPiBreW91dG9cIDsKK+acq+mmmSA+IG1ha2tvdVwgOwor6Iez5a2dID4gc2hpa291XCA7CivmnKjppqwgPiBtb2t1YmFcIDsKK+WBtOWlsyA+IHNvYmFtZVwgOwor5pys6aSoID4gaG9ua2FuXCA7Civku6PoqIAgPiBkYWlnZW5cIDsKK+adsemDiiA+IHRvdWtvdVwgOwor6IK66IOeID4gaGFpaG91XCA7Civpq5jlnLAgPiBrb3VjaGlcIDsKK+adsemCpiA+IHRvdWhvdVwgOwor6IGW6LOiID4gc2Vpa2VuXCA7Civkurrou4ogPiBqaW5zaGFcIDsKK+eXtOS6uiA+IGNoaWppblwgOwor5pyx6aGUID4gc2h1Z2FuXCA7CivkurrouqsgPiBoaXRvbWlcIDsKK+eUqOadkCA+IHlvdXphaVwgOwor5Lqk6YWNID4ga291aGFpXCA7CivmnbHpgbcgPiB0b3VzZW5cIDsKK+iCuuiCnSA+IGhhaWthblwgOwor6Laz5rmvID4gYXNoaXl1XCA7Civlrprnva4gPiB0ZWljaGlcIDsKK+WCvuWAkiA+IGtlaXRvdVwgOwor5qWt5YuZID4gZ3lvdW11XCA7CivlgI3mlbAgPiBiYWlzdXVcIDsKK+ahkeeUsCA+IHNvdWRlblwgOwor6ICB6ZuEID4gcm91eXV1XCA7CivoiLnlh7ogPiBmdW5hZGVcIDsKK+iHquWuhSA+IGppdGFrdVwgOwor6ISH55uuID4gd2FraW1lXCA7CivmpJzlsY0gPiBrZW5zaGlcIDsKK+acrOmhmCA+IGhvbmdhblwgOwor5pys6aGMID4gaG9uZGFpXCA7CivkubHpm7IgPiByYW4nJ3VuXCA7Civnlr7lkbwgPiBzaGlra29cIDsKK+WCreWFtSA+IHlvdWhlaVwgOwor6Ii55YW3ID4gZnVuYWd1XCA7CivlrrbnrYsgPiBpZXN1amlcIDsKK+ixiumlkiA+IGhvdWpvdVwgOwor5pys6Z+zID4gaG9uJyduZVwgOwor5LuY6KiXID4gZnV0YWt1XCA7CivkvJroiJggPiBrYWlrYW5cIDsKK+acq+mghSA+IG1ha2tvdVwgOwor55Sf5p2lID4gc2VpcmFpXCA7CivkuqTpgYogPiBrb3V5dXVcIDsKK+WApuaGiiA+IGtlbnBhaVwgOwor5p6i6KaBID4gc3V1eW91XCA7CivporHpoqggPiB0YWlmdXVcIDsKK+Wun+e3miA+IGppc3NlblwgOwor5a+d55mWID4gbmVndXNlXCA7Civoh43luK8gPiBzZWl0YWlcIDsKK+aknOWumiA+IGtlbnRlaVwgOwor5p2l6YK4ID4gcmFpdGVpXCA7CivohbnmoYggPiBmdWt1YW5cIDsKK+eUn+acqCA+IG5hbWFraVwgOwor6I2J44CFID4gc291c291XCA7CivkvZnnqIsgPiB5b2hvZG9cIDsKK+S7o+ihjCA+IGRhaWtvdVwgOwor5bO25Y+4ID4gdG91c2hpXCA7CivlgrLlgKggPiBnb3VreW9cIDsKK+mqqOWtkCA+IGtvc3NoaVwgOwor6Iez5aSnID4gc2hpZGFpXCA7Civkvb/nlKggPiBzaGl5b3VcIDsKK+S5semXmCA+IHJhbnRvdVwgOwor5p2l6YGKID4gcmFpeXV1XCA7CivmnbHou40gPiB0b3VndW5cIDsKK+WxleacmyA+IHRlbmJvdVwgOwor6ICz6LyqID4gbWltaXdhXCA7CivkvZnnpoQgPiB5b3Jva3VcIDsKK+Wwj+a9riA+IGtvc2hpb1wgOwor5a+p55CGID4gc2hpbnJpXCA7CivmorbmnKggPiBrYWppa2lcIDsKK+iyp+izpCA+IGhpbnNlblwgOwor6LKn6LOOID4gaGluc2VuXCA7CivmnaXov44gPiByYWlnb3VcIDsKK+aciemrqiA+IHVoYXRzdVwgOwor6LWk55eiID4gc2VraXJpXCA7Civkvr/ms5UgPiBiZW5wb3VcIDsKK+iIueWAiSA+IHNlbnNvdVwgOwor5L2O56m6ID4gdGVpa3V1XCA7CivmnKjpnIogPiBrb2RhbWFcIDsKK+S8neiBniA+IGRlbmJ1blwgOwor5pys6ZqKID4gaG9udGFpXCA7CivlsqnlsaQgPiBnYW5zb3VcIDsKK+iCneiHkyA+IGthbnpvdVwgOwor5pyd6aGUID4gYXNhZ2FvXCA7CivouqvkuIggPiBtaXRha2VcIDsKK+WApuaAoCA+IGtlbnRhaVwgOwor5pys6ZmjID4gaG9uamluXCA7CivmnKzpmaIgPiBob24nJ2luXCA7CivlsKjmr5sgPiBtdWt1Z2VcIDsKK+Wumue0iyA+IGpvdW1vblwgOwor6aSK6LGaID4geW91dG9uXCA7Civku5jooaggPiBmdWh5b3VcIDsKK+WutuemhCA+IGthcm9rdVwgOwor5pyx6ZaAID4gc2h1bW9uXCA7Civogp3ohY4gPiBrYW5qaW5cIDsKK+S9teeUqCA+IGhlaXlvdVwgOwor6auY5ZCfID4ga291Z2luXCA7CivmnKjpmbAgPiBrb2thZ2VcIDsKK+iIueS9kyA+IHNlbnRhaVwgOwor6auY5ZCNID4ga291bWVpXCA7CivlgJLmh7ggPiB0b3VrZW5cIDsKK+WCteS4uyA+IHNhaXNodVwgOwor54++6KGMID4gZ2Vua291XCA7CivnkrDnirYgPiBrYW5qb3VcIDsKK+adpei7iiA+IHJhaXNoYVwgOwor6IOM562LID4gaGFpa2luXCA7CivlsbHmiYsgPiB5YW1hdGVcIDsKK+iFi+avmyA+IHdha2lnZVwgOwor5L+z5paHID4gaGFpYnVuXCA7Civkvr/mrr8gPiBiZW5kZW5cIDsKK+acgOmrmCA+IHNhaWtvdVwgOwor5qKX5qaCID4ga291Z2FpXCA7Civogp3og4YgPiBrYW50YW5cIDsKK+mrmOWOnyA+IGtvdWdlblwgOwor5pyd6ZyyID4gY2hvdXJvXCA7Civlsa/miYAgPiB0b25zaG9cIDsKK+WCreS6uiA+IHlvdW5pblwgOwor6LOA6KGoID4gZ2FoeW91XCA7CivmnJ3pnJ4gPiBjaG91a2FcIDsKK+WuneeulyA+IGhvdXNhblwgOwor6Iy244CFID4gY2hhY2hhXCA7CivpoqjpnJwgPiBmdXVzb3VcIDsKK+i1t+eIhiA+IGtpYmFrdVwgOwor6IiI5ZGzID4ga3lvdW1pXCA7CivogJDphbggPiB0YWlzYW5cIDsKK+WBpeWcqCA+IGtlbnphaVwgOwor6IKJ6Iq9ID4gbmlrdWdhXCA7Civoh6jloLQgPiByaW5qb3VcIDsKK+WztuWGhSA+IHRvdW5haVwgOwor55So5o2oID4geW91c2hhXCA7CivlraToiJ8gPiBrb3NodXVcIDsKK+S6jOmAsiA+IG5pc2hpblwgOwor5p2R6YGTID4gc29uZG91XCA7CivlgY/lpb0gPiBoZW5rb3VcIDsKK+S6jOmAmiA+IG5pdHN1dVwgOwor5Yal44CFID4gbWVpbWVpXCA7CivlrZDokYkgPiBzaGl5b3VcIDsKK+iCr+e2riA+IGtvdWtlaVwgOwor5L2p55SoID4gaGFpeW91XCA7CivkuZfpmY0gPiBqb3Vrb3VcIDsKK+S6i+i/uSA+IGppc2VraVwgOwor5a6Y562JID4ga2FudG91XCA7CivlgKTluYUgPiBuZWhhYmFcIDsKK+eOhOmWoiA+IGdlbmthblwgOwor6aKo6ZiyID4gZnV1Ym91XCA7CivlsJrmraYgPiBzaG91YnVcIDsKK+aer+iRiSA+IGthcmVoYVwgOwor5a62552jID4ga2F0b2t1XCA7CivlgbblkJ8gPiBndXVraW5cIDsKK+S8nee3miA+IGRlbnNlblwgOwor5YCk5be+ID4gbmVoYWJhXCA7Civoh6rlm70gPiBqaWtva3VcIDsKK+iHqOWcqCA+IHJpbnphaVwgOwor5L2Z55m9ID4geW9oYWt1XCA7Civlrr/nl74gPiBzaHVrdWFcIDsKK+WvhueUnyA+IG1pc3NlaVwgOwor5a+E55WZID4ga2lyeXV1XCA7CivmnaXos5MgPiByYWloaW5cIDsKK+iHs+WWhCA+IHNoaXplblwgOwor5Lyd57WxID4gZGVudG91XCA7CivnlLvlv4MgPiBnYXNoaW5cIDsKK+WwjuawtCA+IGRvdXN1aVwgOwor5p2l6LKiID4gcmFpa291XCA7CivnlLfmgKcgPiBkYW5zZWlcIDsKK+WxheaVtyA+IGlzaGlraVwgOwor6ISx5rOVID4gZGFwcG91XCA7CivlgKTltakgPiBuZWdhc2FcIDsKK+aknOWcsCA+IGtlbmNoaVwgOwor6LGq6YK4ID4gZ291dGVpXCA7CivlgaXllZYgPiBrZW50YW5cIDsKK+S9meeXhSA+IHlvYnlvdVwgOwor6Ieq5ZiyID4gamljaG91XCA7CivosqDoqJcgPiBmdXRha3VcIDsKK+iAgemFkiA+IHJvdXNodVwgOwor5Li76aGMID4gc2h1ZGFpXCA7CivkvY7nm64gPiBoaWt1bWVcIDsKK+S9nOeUuyA+IHNha3VnYVwgOwor542j6aGeID4ganV1cnVpXCA7CivosarpgoEgPiBnb3VtYWlcIDsKK+WwhOazlSA+IHNoYWhvdVwgOwor5Lqk6K2yID4ga291am91XCA7CivkuovouZ8gPiBqaXNla2lcIDsKK+WxseW+hCA+IHNhbmtlaVwgOwor55Kw5r+gID4ga2FuZ291XCA7Civpp4TniakgPiBkYW1vbm9cIDsKK+iEseawtCA+IGRhc3N1aVwgOwor6LGq6YGKID4gZ291eXV1XCA7Civpo5vouo0gPiBoaXlha3VcIDsKK+mrmOWDpyA+IGtvdXNvdVwgOwor6Ie05ZG9ID4gY2hpbWVpXCA7CivkubHphZQgPiByYW5zdWlcIDsKK+S5semFkiA+IHJhbnNodVwgOwor6IiO5YWEID4gc2hha2VpXCA7Civku7Doh6UgPiBneW91Z2FcIDsKK+eVquWkliA+IGJhbmdhaVwgOwor5bKp5aGpID4gZ2FuJydlblwgOwor55Sf5oiQID4gc2Vpc2VpXCA7CivlgY/lnKggPiBoZW56YWlcIDsKK+S6i+i3oSA+IGppc2VraVwgOwor5L2V55WqID4gbmFuYmFuXCA7Civmm7jpoqggPiBzaG9mdXVcIDsKK+iEs+atuyA+IG5vdXNoaVwgOwor5LqM6LazID4gbmlzb2t1XCA7CivlrpfnpZYgPiBzaHV1c29cIDsKK+e+vemiqCA+IGhha2F6ZVwgOwor6LGq6L6yID4gZ291bm91XCA7Civls7bkurogPiB0b3VqaW5cIDsKK+S+oOawlyA+IGt5b3VraVwgOwor55S75bmFID4gZ2FmdWt1XCA7CivmnInpmZAgPiB5dXVnZW5cIDsKK+abuOmhniA+IHNob3J1aVwgOwor6aaZ55uSID4ga291Z291XCA7CivnlLvluLMgPiBnYWNob3VcIDsKK+eUn+aGjiA+IGFpbmlrdVwgOwor6auY5YCkID4gdGFrYW5lXCA7CivkuK3po5sgPiBjaHV1aGlcIDsKK+aeneiRiSA+IHNoaXlvdVwgOwor6LC36ZaTID4gdGFuaW1hXCA7CivkuqToqaIgPiBrb3VqdW5cIDsKK+S4uemdkiA+IHRhbnNlaVwgOwor5p2x6KW/ID4gdG91emFpXCA7Civoh63lkbMgPiBzaHV1bWlcIDsKK+eQtOe3miA+IGtpbnNlblwgOwor6IOh55OcID4ga3l1dXJpXCA7Civlho3jgIUgPiBzYWlzYWlcIDsKK+mjm+i2iiA+IGhpZXRzdVwgOwor55Sf5oWLID4gc2VpdGFpXCA7Civls7bkuLsgPiB0b3VzaHVcIDsKK+adpeirhyA+IHJhaWRhblwgOwor5YCJ5bupID4gc291cmluXCA7CivohZDmnL0gPiBmdWt5dXVcIDsKK+WuieepjyA+IGFuJydub25cIDsKK+WApOWuiSA+IG5leWFzdVwgOwor5Luj6ImmID4gZGFpa2FuXCA7Civlr7jms5UgPiBzdW5wb3VcIDsKK+iDjuebpCA+IHRhaWJhblwgOwor6ICB6L6yID4gcm91bm91XCA7CivkubHpgKAgPiByYW56b3VcIDsKK+WCjeS6uiA+IGJvdWppblwgOwor5bGI5oyHID4ga3Vzc2hpXCA7CivogrLnqK4gPiBpa3VzaHVcIDsKK+aknOWVjyA+IGtlbm1vblwgOwor5qKF5p6XID4gYmFpcmluXCA7CivmnKjph5ggPiBraWt1Z2lcIDsKK+aciemWkSA+IHl1dWthblwgOwor55So5b+DID4geW91amluXCA7CivnlLflt6UgPiBkYW5rb3VcIDsKK+ixvOiyhSA+IGhpa3l1dVwgOwor5pyI6ZaTID4gZ2Vra2FuXCA7CivlsbHlt5MgPiBzYW50ZW5cIDsKK+S7j+iRrCA+IGJ1c3NvdVwgOwor5YCf5a62ID4gc2hha2thXCA7Civmm7jpnaIgPiBzaG9tZW5cIDsKK+WxseW2uiA+IHNhbnJlaVwgOwor5p2l6KiqID4gcmFpaG91XCA7CivkuK3pn7MgPiBjaHV1b25cIDsKK+eUqOW9uSA+IHlvdWVraVwgOwor54+q6Je7ID4ga2Vpc291XCA7CivotIjnrZQgPiB6b3V0b3VcIDsKK+iAgei8qSA+IHJvdWhhaVwgOwor6IG+6ICFID4gcm91c2hhXCA7CivmoZHmtbcgPiBzb3VrYWlcIDsKK+Wwj+alryA+IGtvZGF0ZVwgOwor5p+x56SOID4gY2h1dXNvXCA7CivppIronIIgPiB5b3Vob3VcIDsKK+Wun+ebuCA+IGppc3NvdVwgOwor5LqL6LGhID4gamlzaG91XCA7Civlr5LngrkgPiBrYW50ZW5cIDsKK+iBmuiQvSA+IGp1cmFrdVwgOwor5qSc5ZOBID4ga2VucGluXCA7CivlhoXjgIUgPiBuYWluYWlcIDsKK+WBtuWDjyA+IGd1dXpvdVwgOwor5a2Y572uID4gc29uY2hpXCA7CivmnKzpgrggPiBob250ZWlcIDsKK+S9k+ePviA+IHRhaWdlblwgOwor55Wq5ZywID4gYmFuY2hpXCA7CivmnbHooYwgPiB0b3Vrb3VcIDsKK+acrOmCpiA+IGhvbnBvdVwgOwor55Sy5behID4ga291anVuXCA7CivmnaXoprMgPiByYWlrYW5cIDsKK+mkiuialSA+IHlvdXNhblwgOwor5pys6YG4ID4gaG9uc2VuXCA7CivpoL3pvaIgPiB0YWlyZWlcIDsKK+eSsOa1tyA+IGthbmthaVwgOwor5pyo6YOoID4gbW9rdWJ1XCA7CivmoYPmupAgPiB0b3VnZW5cIDsKK+acrOmBkyA+IGhvbmRvdVwgOwor5bGF5omAID4ga3lvc2hvXCA7CivpoqjpiLQgPiBmdXVyaW5cIDsKK+i3r+W6iiA+IHJvc2hvdVwgOwor5YG95L2cID4gZ2lzYWt1XCA7CivkubHou40gPiByYW5ndW5cIDsKK+iznue+jiA+IHNob3ViaVwgOwor5bGV5oCnID4gdGVuc2VpXCA7Civosq/olLUgPiBjaG96b3VcIDsKK+WwguaoqiA+IHNlbicnb3VcIDsKK+WwguaoqSA+IHNlbmtlblwgOwor5YCh5ammID4gc2hvdWZ1XCA7CivmnJ3ph44gPiBjaG91eWFcIDsKK+iDmuePoCA+IGhhaXNodVwgOwor5pyq6YCyID4gbWlzaGluXCA7CivkvJHnrKYgPiBreXV1ZnVcIDsKK+eUn+W9qSA+IHNlaXNhaVwgOwor6aKo6YeHID4gZnV1c2FpXCA7Civog47nlJ8gPiB0YWlzZWlcIDsKK+eUo+W7gyA+IHNhbnBhaVwgOwor5Luk6IGeID4gcmVpYnVuXCA7Civkv7PlvoogPiBoYWlrYWlcIDsKK+iHquWKmyA+IGppcmlraVwgOwor5L+C5pWwID4ga2Vpc3V1XCA7CivkuK3pmbAgPiBjaHV1aW5cIDsKK+aknOWNsCA+IGtlbicnaW5cIDsKK+eUuuWutiA+IGNob3VrYVwgOwor5bCR5p6XID4gc2hvcmluXCA7CivlgaXlhaggPiBrZW56ZW5cIDsKK+WBj+WQkSA+IGhlbmtvdVwgOwor5a+u5q+NID4gcnlvdWJvXCA7CivoiIjkuqEgPiBrb3Vib3VcIDsKK+eUu+WtpiA+IGdhZ2FrdVwgOwor5bCG5qOLID4gc2hvdWdpXCA7CivkupLop5IgPiBnb2tha3VcIDsKK+izque0oCA+IHNoaXNzb1wgOwor5qC55rqQID4ga29uZ2VuXCA7Civmn7PnnIkgPiByeXV1YmlcIDsKK+S6ieirliA+IHNvdXJvblwgOwor6LWw5rOVID4gc291aG91XCA7CivkuIrpqLAgPiBqb3V0b3VcIDsKK+WxseWutiA+IHlhbWFnYVwgOwor5Lya56S+ID4ga2Fpc2hhXCA7Civlrp/nlJ8gPiBtaXNob3VcIDsKK+acq+i8qSA+IG1hcHBhaVwgOwor5bGe5beuID4gem9rdXNhXCA7CivkuI3pprQgPiBmdW5hcmVcIDsKK+eUn+W5tCA+IHNlaW5lblwgOwor6aiS5pO+ID4gc291am91XCA7CivmpL/kuosgPiBjaGluamlcIDsKK+WvruatjCA+IHJ5b3VrYVwgOwor6aaW54+tID4gc2h1aGFuXCA7CivlrprnlaogPiB0ZWliYW5cIDsKK+WBtuS6uiA+IGd1dWppblwgOwor55S35a2QID4gZGFuc2hpXCA7Civku6PnvbIgPiBkYWlzaG9cIDsKK+S7o+e9riA+IGRhaWNoaVwgOwor6IK655mMID4gaGFpZ2FuXCA7CivkvqHmoLwgPiBrYWtha3VcIDsKK+iHqOWGmSA+IHJpbnNoYVwgOwor5a6Y55WMID4ga2Fua2FpXCA7CivppYznsbMgPiBzZW5tYWlcIDsKK+i2o+aXqCA+IHNodXNoaVwgOwor5LuK6IisID4ga29ucGFuXCA7CivlsIrmnaUgPiBzb25yYWlcIDsKK+air+W9oiA+IHRlaWtlaVwgOwor6L2f44CFID4gZ291Z291XCA7CivohqjlpKcgPiBib3VkYWlcIDsKK+S6jOimiyA+IGZ1dGFtaVwgOwor6Ieq5YSYID4gamltYW1hXCA7CivmnpzogokgPiBrYW5pa3VcIDsKK+aknOWIhiA+IGtlbmJ1blwgOwor5Lih6ZmiID4gcnlvdWluXCA7CivnlLLlrZAgPiBrYXNzaGlcIDsKK+S4gOmpmiA+IGlra3lvdVwgOwor5bCR5pmCID4gc2hvdWppXCA7CivkupTooYwgPiBnb2d5b3VcIDsKK+e+pOmdkiA+IGd1bmpvdVwgOwor6Iez5L6/ID4gc2hpYmVuXCA7CivlsIrmm7ggPiBzb25zaG9cIDsKK+S6iOimmiA+IHlva2FrdVwgOwor5bCP5pi8ID4ga29oaXJ1XCA7CivkvZXngrkgPiBuYW50ZW5cIDsKK+abnemcsiA+IGJha3Vyb1wgOwor5bCP5pilID4ga29oYXJ1XCA7CivkvZnngJ0gPiB5b3Jla2lcIDsKK+WuneePoCA+IGhvdXNodVwgOwor5a++5qChID4gdGFpa291XCA7CivlrZDntLAgPiBzaGlzYWlcIDsKK+eMrumljCA+IGtlbnNlblwgOwor5L+h5b6SID4gc2hpbnRvXCA7Civnlarlj7cgPiBiYW5nb3VcIDsKK+eVquWPsCA+IGJhbmRhaVwgOwor5LiA6aeEID4gaWNoaWRhXCA7CivohIfmr5sgPiB3YWtpZ2VcIDsKK+mhnumhjCA+IHJ1aWRhaVwgOwor5puc6ZyKID4geW91cmVpXCA7CivmoLnmsrsgPiBrb25jaGlcIDsKK+WvuuagvCA+IGppa2FrdVwgOwor5YGJ5YqbID4gaXJ5b2t1XCA7Civlr6HmrLIgPiBrYXlva3VcIDsKK+aciemFjSA+IHl1dWhhaVwgOwor6Ie05LuVID4gY2hpc2hpXCA7CivkuZfou4ogPiBqb3VzaGFcIDsKK+iHquS/riA+IGppc2h1dVwgOwor6Ieq5L+hID4gamlzaGluXCA7Civku5Xnva4gPiBzaGlva2lcIDsKK+miqOi7iiA+IGZ1dXNoYVwgOwor5pqX6buZID4gYW5tb2t1XCA7CivlsbHlpbMgPiB5YW1hbWVcIDsKK+S6rOiRiSA+IGtlaXlvdVwgOwor5pqX6buSID4gYW5rb2t1XCA7CivlsIHmm7ggPiBmdXVzaG9cIDsKK+S7j+iAhSA+IGJ1c3NoYVwgOwor5qOE5a2QID4gc3V0ZWdvXCA7CivlgLnlkJ0gPiBrZW5yaW5cIDsKK+iDuOazsyA+IGt5b3VlaVwgOwor5bGe5a6YID4gem9ra2FuXCA7CivlgJLlo4ogPiB0b3VrYWlcIDsKK+iHquS+myA+IGppa3lvdVwgOwor5LiJ6Z+TID4gc2Fua2FuXCA7CivkuojooaggPiB5b2h5b3VcIDsKK+S4h+mggyA+IGJhbmtlaVwgOwor5LiA6aObID4gaWNoaWhpXCA7Civotbfmpa0gPiBraWd5b3VcIDsKK+WBj+WFiSA+IGhlbmtvdVwgOwor5qGU5qKXID4ga2lreW91XCA7CivmoLnmr5sgPiBrb25tb3VcIDsKK+S9mea7tCA+IHlvdGVraVwgOwor5YCN5aSnID4gYmFpZGFpXCA7Civoh6rkvZwgPiBqaXNha3VcIDsKK+iCsueUnyA+IGlrdXNlaVwgOwor55S75aKDID4gZ2FreW91XCA7CivmnKjos4ogPiB0b2t1c2FcIDsKK+WwiuaVrCA+IHNvbmtlaVwgOwor55S35aOwID4gZGFuc2VpXCA7CivkuIrpnaIgPiBqb3VtZW5cIDsKK+WxheW4uCA+IGt5b2pvdVwgOwor5Luj57SNID4gZGFpbm91XCA7Civlr5LmsJcgPiBzYW11a2VcIDsKK+iHs+S4iiA+IHNoaWpvdVwgOwor5LiJ6Z2iID4gc2FubWVuXCA7CivlsIrmlJggPiBzb25qb3VcIDsKK+WBnOS8miA+IHRlaWthaVwgOwor5YCN5aKXID4gYmFpem91XCA7CivmpJzkvr8gPiBrZW5iZW5cIDsKK+eUn+WtmCA+IHNlaXpvblwgOwor5bGR5bGLID4ga3V6dXlhXCA7CivpoZjpnaIgPiBnYW5tZW5cIDsKK+WxseWhniA+IHNhbnNhaVwgOwor6aKo6LajID4gZnV1c2h1XCA7CivnlLLlo7AgPiBrYW5nb2VcIDsKK+aatOmosCA+IGJvdXRvdVwgOwor5bGx5aGKID4gc2Fua2FpXCA7CivlsILmlq0gPiBzZW5kYW5cIDsKK+iDuOavmyA+IG11bmFnZVwgOwor5bGx5aC0ID4geWFtYWJhXCA7CivlsY/lsYUgPiBoZWlreW9cIDsKK+S4h+mbtyA+IGJhbnJhaVwgOwor5qSc5L2TID4ga2VudGFpXCA7CivlrpjniYggPiBrYW5wYW5cIDsKK+S4iemajiA+IHNhbmdhaVwgOwor5a+d5qeYID4gbmV6YW1hXCA7CivpoZTpnaIgPiBnYW5tZW5cIDsKK+S4iumZkCA+IGpvdWdlblwgOwor5pyL6LypID4gaG91YmFpXCA7CivlsILmlLsgPiBzZW5rb3VcIDsKK+S7geiAhSA+IGppbnNoYVwgOwor55Wq5YW1ID4gYmFucGVpXCA7CivkubHoppYgPiByYW5zaGlcIDsKK+acneizgCA+IGNob3VnYVwgOwor5a++5pWwID4gdGFpc3V1XCA7Civlr6nmn7sgPiBzaGluc2FcIDsKK+WvnealrSA+IG5ld2F6YVwgOwor5pys6KuWID4gaG9ucm9uXCA7CivlgJ/llY8gPiBzaGFtb25cIDsKK+abvumBiiA+IHNvdXl1dVwgOwor6Iej5LqLID4gc2hpbmppXCA7CivnkKLno6ggPiB0YWt1bWFcIDsKK+iFueWtkCA+IGhhcmFrb1wgOwor5qGf5pW3ID4gc2FqaWtpXCA7Civlr77mlK8gPiB0YWlzaGlcIDsKK+mkiuiCsiA+IHlvdWlrdVwgOwor6aKo6LKMID4gZnV1Ym91XCA7CivkvK/niLYgPiBoYWt1ZnVcIDsKK+acrOiqjCA+IGhvbnNoaVwgOwor5a2Q56iuID4ga29kYW5lXCA7Civku5TntLAgPiBzaGlzYWlcIDsKK+adseiIqiA+IHRvdWtvdVwgOwor5bCP5oyHID4ga295dWJpXCA7CivmnIDov5EgPiBzYWlraW5cIDsKK+acquiqrSA+IG1pZG9rdVwgOwor5Luu56ewID4ga2FzaG91XCA7CivkvZPmtrIgPiB0YWlla2lcIDsKK+S4gOmauyA+IGlzc2VraVwgOwor5a+45patID4gc3VuZGFuXCA7CivnlJ/lp5wgPiBzaG91Z2FcIDsKK+S4iemWgCA+IHNhbm1vblwgOwor6ICB6KGwID4gcm91c3VpXCA7Civoi5vjgIUgPiBpcmFpcmFcIDsKK+S9jua4myA+IHRlaWdlblwgOwor6Iej5LiLID4gc2hpbmthXCA7CivlgKHlkowgPiBzaG91d2FcIDsKK+acquipsyA+IG1pc2hvdVwgOwor6IWQ5b+DID4gZnVzaGluXCA7CivmmrTpoqggPiBib3VmdXVcIDsKK+S9meayoiA+IHlvdGFrdVwgOwor5a6a54K5ID4gdGVpdGVuXCA7Civmm7jpgZMgPiBzaG9kb3VcIDsKK+S4remDqCA+IGNodXVidVwgOwor5YGP5Lq6ID4gaGVuamluXCA7CivlgKbljq0gPiBrZW4nJ2VuXCA7Civlrabnm6MgPiBnYWtrYW5cIDsKK+mkiuiAgSA+IHlvdXJvdVwgOwor6IKM552AID4gaGFkYWdpXCA7CivnlKPlo7AgPiB1YnVnb2VcIDsKK+mjtOiJsiA+IGFtZWlyb1wgOwor55Sw5ZywID4gZGVuY2hpXCA7CivmnJ3orbAgPiBjaG91Z2lcIDsKK+eUsOWckiA+IGRlbicnZW5cIDsKK+Wwj+aIkSA+IHNob3VnYVwgOwor5amm6ZW3ID4gZnVjaG91XCA7CivpppnmuK8gPiBob25rb25cIDsKK+aiteWmuyA+IGJvbnNhaVwgOwor5qGC5p6XID4ga2VpcmluXCA7CivkuIDplpMgPiBoaXRvbWFcIDsKK+WtmOefpSA+IHpvbmNoaVwgOwor5Lit6YCUID4gY2h1dXRvXCA7CivnkLrnka8gPiBob3Vyb3VcIDsKK+eUu+WVhiA+IGdhc2hvdVwgOwor5p2l6IiqID4gcmFpa291XCA7CivpoLvpoLsgPiBoaW5waW5cIDsKK+Wwu+WwviA+IHNoaXBwb1wgOwor5qCh5q2jID4ga291c2VpXCA7CivkvovmlocgPiByZWlidW5cIDsKK+eUmuWkpyA+IGppbmRhaVwgOwor5L6L5pWwID4gcmVpc3V1XCA7CivkuozokYkgPiBmdXRhYmFcIDsKK+mjvOiCsiA+IHNoaWlrdVwgOwor5L+z5aOHID4gaGFpZGFuXCA7Civlsa/llrYgPiB0b24nJ2VpXCA7CivmnaXoh6ggPiByYWlyaW5cIDsKK+aiteWkqSA+IGJvbnRlblwgOwor55So5ZywID4geW91Y2hpXCA7CivosrTntLMgPiBraXNoaW5cIDsKK+aatOmcsiA+IGJha3Vyb1wgOwor5a+S5qKFID4ga2FuYmFpXCA7CivmoLnmn6IgPiBrb250ZWlcIDsKK+WwhOaJiyA+IHNoYXNodVwgOwor5L2V5q2zID4gbmFuc2FpXCA7CivnkbbmsaAgPiB5b3VjaGlcIDsKK+WtpueVjCA+IGdha2thaVwgOwor5qCX5q+bID4ga3VyaWdlXCA7CivlsIrmha4gPiBzb25yeW9cIDsKK+S9j+awkSA+IGp1dW1pblwgOwor6ama5ZacID4ga3lvdWtpXCA7CivlsJHmgakgPiBzaG91b25cIDsKK+eUo+WcsCA+IHNhbmNoaVwgOwor5L+X5a2XID4gem9rdWppXCA7Civlr77mipcgPiB0YWlrb3VcIDsKK+S8geeUuyA+IGtpa2FrdVwgOwor55SY5aGpID4gYW1hamlvXCA7CivotaTmnKwgPiBha2Fob25cIDsKK+miqOinoyA+IGZ1dWthaVwgOwor5L215pyJID4gaGVpeXV1XCA7CivlsYvlpJYgPiBva3VnYWlcIDsKK+mmrOaphyA+IGJhc29yaVwgOwor5Lit6LqrID4gbmFrYW1pXCA7CivnkIbnpZ4gPiByaXNoaW5cIDsKK+S9s+acqCA+IGthYm9rdVwgOwor5qC55pysID4gbmVtb3RvXCA7CivogZbnrpcgPiBzZWlzYW5cIDsKK+S6uue1uSA+IGppbmtlblwgOwor5Li76LOTID4gc2h1aGluXCA7CivnlJ/lnLAgPiBzZWljaGlcIDsKK+miqOimiyA+IGthemFtaVwgOwor5a++5oimID4gdGFpc2VuXCA7Civku5bnp7AgPiB0YXNob3VcIDsKK+acm+imiyA+IGJvdWtlblwgOwor6aaZ5rC0ID4ga291c3VpXCA7Civlr5LmnZEgPiBrYW5zb25cIDsKK+adieiPnCA+IHN1Z2luYVwgOwor55WZ5L+dID4gcnl1dWhvXCA7Civog73mm7ggPiBub3VzaG9cIDsKK+S9nOalrSA+IHNhZ3lvdVwgOwor5LuY56WoID4gZnVoeW91XCA7CivlgKjlgrIgPiBreW9nb3VcIDsKK+agueaalyA+IG5la3VyYVwgOwor6Leh5ZywID4gYXRvY2hpXCA7Civkurrns54gPiBqaW5wdW5cIDsKK+WtpueQhiA+IGdha3VyaVwgOwor6ISz5oCnID4gbm91c2VpXCA7CivnlLvljKAgPiBnYXNob3VcIDsKK+S9mealrSA+IHlvZ3lvdVwgOwor5bCP5b2iID4ga29nYXRhXCA7Civkv6Hlo6sgPiBzaGluamlcIDsKK+iFq+WkpyA+IHNodWRhaVwgOwor5Lm+6I+cID4ga2Fuc2FpXCA7CivmnIjorJ0gPiBnZXNzaGFcIDsKK+WvhuagkyA+IG1pc3NlblwgOwor5a+S5pqWID4ga2FuZGFuXCA7Civlr5LmmpEgPiBrYW5zaG9cIDsKK+WtkOeZhyA+IHNoaWthblwgOwor6aKo6KKLID4gZnV1dGFpXCA7CivlgKXlgawgPiBrb3Vzb3VcIDsKK+Wwj+W8lSA+IHNob3VpblwgOwor5L2T5qeYID4gdGFpeW91XCA7CivkurrnsZ8gPiBqaW5yYWlcIDsKK+S4iemHjSA+IHNhbmp1dVwgOwor6LKh57WMID4gemFpa2VpXCA7CivlrZjnlJ8gPiB6b25qb3VcIDsKK+Wtl+eUuyA+IGppa2FrdVwgOwor5LiH6YeRID4gbWFua2luXCA7CivlsIrlvbEgPiBzb24nJ2VpXCA7CivmoLnmlrkgPiBuZWthdGFcIDsKK+eUqOWTgSA+IHlvdWhpblwgOwor5Luu55eFID4ga2VieW91XCA7CivkuIrphZIgPiBqb3VzaHVcIDsKK+Wul+a0viA+IHNodXVoYVwgOwor5a6a5rOVID4gam91aG91XCA7Civlrrbmpa0gPiBrYWd5b3VcIDsKK+eMrumHkSA+IGtlbmtpblwgOwor55Kw5oyHID4ga2Fuc2hpXCA7CivnlKjlkb0gPiB5b3VtZWlcIDsKK+iDoeakkiA+IGtvc2hvdVwgOwor6IGv55ufID4gcmVubWVpXCA7Civog4bmsYEgPiB0YW5qdXVcIDsKK+eQpeePgCA+IGtvaGFrdVwgOwor6IO95paHID4gbm91YnVuXCA7CivlsYXln44gPiBreW9qb3VcIDsKK+S4u+isgCA+IHNodWJvdVwgOwor5a6X5rOVID4gc291aG91XCA7CivlsI/luYUgPiBrb2hhYmFcIDsKK+WtpOeLrCA+IGtvZG9rdVwgOwor55Sj5ZOBID4gc2FucGluXCA7CivpoZjphZIgPiBnYW5zaHVcIDsKK+adsee1jCA+IHRvdWtlaVwgOwor5Lm+6Iq7ID4ga2Fuc3V1XCA7CivlrozmuIggPiBrYW5zYWlcIDsKK+S4jemBqSA+IGZ1dGVraVwgOwor5a+G5pu4ID4gbWlzc2hvXCA7CivogqHngasgPiBtYXRhYmlcIDsKK+mgiOmrryA+IHNodXplblwgOwor5bCO5birID4gZG91c2hpXCA7Civnvo7phpwgPiBiaXNodXVcIDsKK+WwguW+kyA+IHNlbmp1dVwgOwor5LiA6YeMID4gaWNoaXJpXCA7Civlr7XmhJsgPiBjaG91YWlcIDsKK+WuneauvyA+IGhvdWRlblwgOwor5Lmz6I+TID4gbnl1dWthXCA7CivlsI/lt64gPiBzaG91c2FcIDsKK+ePoOeulyA+IHNodXphblwgOwor5LiN6YCaID4gZnV0c3V1XCA7CivohLPlubkgPiBub3VrYW5cIDsKK+S+m+W/nCA+IGt5b3VvdVwgOwor546J6Je7ID4gdGFtYW1vXCA7Civogp3ngo4gPiBrYW4nJ2VuXCA7CivkuInpgbggPiBzYW5zZW5cIDsKK+Wwi+W4uCA+IGppbmpvdVwgOwor5L+u5Za2ID4gc2h1dWVpXCA7CivkuLnoqqAgPiB0YW5zZWlcIDsKK+iDoeahgyA+IGt1cnVtaVwgOwor5LiH6YKmID4gYmFucG91XCA7CivogIHojZggPiByb3Vzb3VcIDsKK+WumOawkSA+IGthbm1pblwgOwor5Lm+6Ii3ID4ga2FuZ2VuXCA7CivlsZ7lkI8gPiB6b2t1cmlcIDsKK+aeoeebriA+IG1hc3VtZVwgOwor5LiB6YWJID4gdGVpeXV1XCA7CivogZ7nn6UgPiBidW5jaGlcIDsKK+WutuagvCA+IGtha2FrdVwgOwor6LaK5b6MID4gZWNoaWdvXCA7CivnlJ/lkb0gPiBzZWltZWlcIDsKK+WwmuWwmiA+IG5hb25hb1wgOwor5LiJ6YCjID4gc2FucmVuXCA7CivnvqnotrMgPiBnaXNva3VcIDsKK+S4u+ioiCA+IHNodWtlaVwgOwor5qCh5pysID4ga291aG9uXCA7Civmmq7pkJggPiBib3Nob3VcIDsKK+WwgeW7uiA+IGhvdWtlblwgOwor5a++5b2TID4gdGFpdG91XCA7CivmnKjolK0gPiBrb2thZ2VcIDsKK+WAkuWDjyA+IHRvdXpvdVwgOwor576F6YedID4gcmFzaGluXCA7CivlsITlubggPiBzaGFrb3VcIDsKK+aiteWUhCA+IGJvbmJhaVwgOwor5LiK6L66ID4gam91aGVuXCA7CivkuIDpg60gPiBpa2tha3VcIDsKK+S4gOmDqCA+IGljaGlidVwgOwor5a6a5qy+ID4gdGVpa2FuXCA7CivkvZXmnpogPiBuYW5tYWlcIDsKK+WvuOW/lyA+IHN1bnNoaVwgOwor5L2e5pm6ID4gbmVpY2hpXCA7CivkuLvoprMgPiBzaHVrYW5cIDsKK+WutuafhCA+IGllZ2FyYVwgOwor5bCP5bO2ID4ga29qaW1hXCA7CivmnKzokawgPiBob25zb3VcIDsKK+eUo+WNtSA+IHNhbnJhblwgOwor5Lq656iuID4gamluc2h1XCA7CivlrozmsrsgPiBrYW5jaGlcIDsKK+S9leadoSA+IG5hbmpvdVwgOwor5Li76KaBID4gc2h1eW91XCA7Civku6PnlKggPiBkYWl5b3VcIDsKK+abuOiqjCA+IHNob3NoaVwgOwor55Sy5YW1ID4ga291aGVpXCA7CivkvK/mr40gPiBoYWt1Ym9cIDsKK+S/s+WQjSA+IGhhaW1laVwgOwor5a6f5qipID4gamlra2VuXCA7Civkv7Plj7cgPiBoYWlnb3VcIDsKK+i2iuW6piA+IG9jaGlkb1wgOwor6aOb57+UID4gaGlzaG91XCA7Civkuojnv5IgPiB5b3NodXVcIDsKK+e+qeiziiA+IGdpem9rdVwgOwor5a+d5oqAID4gbmV3YXphXCA7CivlsI/lsbEgPiBrb3lhbWFcIDsKK+S4iei8qiA+IHNhbnJpblwgOwor5bCK5bSHID4gc29uc3V1XCA7Civkv7Plj4sgPiBoYWl5dXVcIDsKK+S4gOmAsSA+IGlzc2h1dVwgOwor5LyR5ryUID4ga3l1dWVuXCA7CivkuIDpgJogPiBpdHRzdXVcIDsKK+iEh+aIuCA+IHdha2lkb1wgOwor5LiJ6Lu9ID4gc2Fua2VpXCA7CivlsL/lmaggPiBueW91a2lcIDsKK+WvneaJgCA+IHNoaW5qb1wgOwor5bCo5aSnID4gYm91ZGFpXCA7CivkuInou40gPiBzYW5ndW5cIDsKK+eLremcpyA+IHNhZ2lyaVwgOwor5a2Q54yrID4ga29uZWtvXCA7CivmoLnmi6AgPiBrb25reW9cIDsKK+WvoeaFviA+IGtheW9rdVwgOwor5LqV57axID4gaWR6dW5hXCA7CivkuIfou40gPiBiYW5ndW5cIDsKK+mpleWFkCA+IGt5b3VqaVwgOwor6LGq6IOGID4gZ291dGFuXCA7CivmnbHnq68gPiB0b3V0YW5cIDsKK+acrOiNiSA+IGhvbnpvdVwgOwor55Sf5YuVID4gc2VpZG91XCA7Civosrvnm64gPiBoaW1va3VcIDsKK+abuOimiyA+IHNob2tlblwgOwor5LuZ55WMID4gc2Vua2FpXCA7CivlrpjmqKkgPiBrYW5rZW5cIDsKK+abtOiogiA+IGtvdXRlaVwgOwor55Sj5YmNID4gc2FuemVuXCA7CivlsI/lrrQgPiBzaG91ZW5cIDsKK+eOieiPnCA+IHRhbWFuYVwgOwor55Sj5Yi2ID4gc2Fuc2VpXCA7CivlrZTniYggPiBrb3VoYW5cIDsKK+acq+iMtiA+IG1hdGNoYVwgOwor6aOv57GzID4gaGFubWFpXCA7CivpoIbpoqggPiBqdW5wdXVcIDsKK+acseiJsiA+IHNodWlyb1wgOwor5a6f5qScID4gamlra2VuXCA7CivkvJ3ms5UgPiBkZW5wb3VcIDsKK+eUu+S8ryA+IGdhaGFrdVwgOwor55So5YW1ID4geW91aGVpXCA7Civni63pmpggPiBreW91YWlcIDsKK+eNo+ihjCA+IGp1dWtvdVwgOwor5LiN6LazID4gZnVzb2t1XCA7Civos4fnlKMgPiBzaGlzYW5cIDsKK+WrgeiPnCA+IHlvbWVuYVwgOwor5LqU57WMID4gZ29reW91XCA7Civpp4XmiYsgPiBla2lzaHVcIDsKK+WsieeskSA+IGtpc2hvdVwgOwor5LqL57i+ID4gamlzZWtpXCA7CivnlJ/liY0gPiBzZWl6ZW5cIDsKK+ajhOWFkCA+IHN1dGVnb1wgOwor5a2Q54mbID4ga291c2hpXCA7Civku5bnlJ8gPiB0YXNob3VcIDsKK+S4i+i2syA+IGdlc29rdVwgOwor5L2V5pa5ID4gZG9uYXRhXCA7CivosZroiI4gPiB0b25zaGFcIDsKK+i2s+WgtCA+IGFzaGliYVwgOwor5a625pePID4ga2F6b2t1XCA7CivpoIbpoIYgPiBqdW5qdW5cIDsKK+S4gOi6qyA+IGlzc2hpblwgOwor5pys6Ii5ID4gaG9uc2VuXCA7CivogqXmsoMgPiBoaXlva3VcIDsKK+WvvuWyuCA+IHRhaWdhblwgOwor5qKx5YyFID4ga29ucG91XCA7CivkuIDoubQgPiBpc3NodXVcIDsKK+ael+eUoyA+IHJpbnNhblwgOwor5Lq655+lID4gamluY2hpXCA7CivnvbDph5EgPiBiYWtraW5cIDsKK+WutuaVmSA+IGtha3lvdVwgOwor5Luk54q2ID4gcmVpam91XCA7CivkvovlubQgPiByZWluZW5cIDsKK+eLremWkyA+IGhhemFtYVwgOwor6ISb5be+ID4gaGFiYWtpXCA7CivotqPlpb0gPiBzaHVrb3VcIDsKK+WxpeS/riA+IHJpc2h1dVwgOwor5L+h5Y+XID4gc2hpbmp1XCA7Civohp3kuIsgPiBzaGlra2FcIDsKK+S6jOe0miA+IG5pa3l1dVwgOwor6LWr5oCSID4ga2FrdWRvXCA7CivmnKzohrMgPiBob256ZW5cIDsKK+i1t+W6iiA+IGtpc2hvdVwgOwor5LiA6LevID4gaWNoaXJvXCA7CivohIbmgKcgPiB6ZWlzZWlcIDsKK+S9k+aTjSA+IHRhaXNvdVwgOwor5L2/5b25ID4gc2hpZWtpXCA7CivkuK3ooZsgPiBjaHV1ZWlcIDsKK+aZqemkkCA+IGJhbnNhblwgOwor5LuL55SyID4ga2Fpa291XCA7Civogp3msrkgPiBrYW4nJ3l1XCA7CivlsbHkuIogPiBzYW5qb3VcIDsKK+e+pOirliA+IGd1bnJvblwgOwor5bCP5aeTID4ga29zaG91XCA7CivnlKjkvr8gPiB5b3ViZW5cIDsKK+S/s+WEqiA+IGhhaXl1dVwgOwor5LuK55SfID4ga29uam91XCA7CivlsJHlpbMgPiBzaG91am9cIDsKK+S6uuebuCA+IG5pbnNvdVwgOwor5LqI57SEID4geW95YWt1XCA7CivkvpvlrrQgPiBreW91ZW5cIDsKK+S6uuebriA+IGhpdG9tZVwgOwor55So5L6LID4geW91cmVpXCA7CivnlJjlhZogPiBhbWF0b3VcIDsKK+iyp+ebuCA+IGhpbnNvdVwgOwor6IOM5pmvID4gaGFpa2VpXCA7Civpp5LluqcgPiBrb21hemFcIDsKK+S/l+WQjyA+IHpva3VyaVwgOwor5a6J5qW9ID4gYW5yYWt1XCA7CivmoLnmgKcgPiBrb25qb3VcIDsKK+WwluWhlCA+IHNlbnRvdVwgOwor5LiW6KmVID4gc2VoeW91XCA7CivkuZfoiaYgPiBqb3VrYW5cIDsKK+S4puihjCA+IGhlaWtvdVwgOwor54+t55SwID4gaGFuZGVuXCA7CivmnInok4sgPiB5dXVnYWlcIDsKK+S7lOeMqyA+IGtvbmVrb1wgOwor5a6a5pysID4gdGVpaG9uXCA7CivnlKjku7YgPiB5b3VrZW5cIDsKK+S5l+iIuSA+IGpvdXNlblwgOwor6aiw5YuiID4gdG91c2VpXCA7Civlrp/mma8gPiBqaWtrZWlcIDsKK+Wxi+WGhSA+IG9rdW5haVwgOwor5a2m5rS+ID4gZ2FrdWhhXCA7CivpoqjoiLkgPiBmdXVzZW5cIDsKK+eUqOS6uiA+IHlvdW5pblwgOwor5p+U5q+bID4ganV1bW91XCA7CivmnaXnpL4gPiByYWlzaGFcIDsKK+ePvueKtiA+IGdlbmpvdVwgOwor6Z+z6Z+/ID4gb25reW91XCA7CivmnKjogowgPiBraWhhZGFcIDsKK+WwiuWkpyA+IHNvbmRhaVwgOwor6ISz5aSpID4gbm91dGVuXCA7CivlqprolqwgPiBiaXlha3VcIDsKK+miqOiHtCA+IGZ1dWNoaVwgOwor5LiN6Kq/ID4gZnVjaG91XCA7Civlr53luoogPiBuZWRva29cIDsKK+afkOawjyA+IGJvdXNoaVwgOwor5LqU56mAID4gZ29rb2t1XCA7CivkuJbopbIgPiBzZXNodXVcIDsKK+iAgee3tCA+IHJvdXJlblwgOwor55Sf5L2TID4gc2VpdGFpXCA7Civku5TniZsgPiBrb3VzaGlcIDsKK+S4jeipsyA+IGZ1c2hvdVwgOwor5a6f5pa9ID4gamlzc2hpXCA7CivpoLjovKogPiBrdWJpd2FcIDsKK+S4h+isnSA+IGJhbnNoYVwgOwor5LiJ6KuWID4gc2Fucm9uXCA7CivkuI3oqZUgPiBmdWh5b3VcIDsKK+S/l+WLmSA+IHpva3VtdVwgOwor6aeF5byBID4gZWtpYmVuXCA7CivmmanpnJwgPiBiYW5zb3VcIDsKK+S+oOWlsyA+IGt5b3Vqb1wgOwor5pys572yID4gaG9uc2hvXCA7Civlr53lt7sgPiBuZW1ha2lcIDsKK+adkeerpSA+IHNvbmRvdVwgOwor5a6f5pWwID4gamlzc3V1XCA7Civog73lvIEgPiBub3ViZW5cIDsKK+S6uueUnyA+IGppbnNlaVwgOwor5a6I5qCqID4gc2h1c2h1XCA7CivkvZXmiY0gPiBuYW5zYWlcIDsKK+S6ieerryA+IHNvdXRhblwgOwor5qC55bqVID4ga29udGVpXCA7CivkuK3omIcgPiBjaHV1c29cIDsKK+S4gOitsCA+IGljaGlnaVwgOwor5Ly05pifID4gYmFuc2VpXCA7Civpo5vnq5wgPiBoaXJ5dXVcIDsKK+agueW5uSA+IGtvbmthblwgOwor6LWk5bi9ID4gYWthYm91XCA7CivlsI/lnosgPiBrb2dhdGFcIDsKK+mkiueUnyA+IHlvdWpvdVwgOwor5p2v55ukID4gaGFpYmFuXCA7CivmmrTotbAgPiBib3Vzb3VcIDsKK+S4iuioiCA+IGpvdWtlaVwgOwor5bCK5aCCID4gc29uZG91XCA7CivmoLzlt64gPiBrYWt1c2FcIDsKK+WwguWjsiA+IHNlbmJhaVwgOwor5a6/5oSPID4gc2h1a3VpXCA7CivkuI3oppogPiBmdWtha3VcIDsKK+S/s+S6uiA+IGhhaWppblwgOwor5a6M5pysID4ga2FucG9uXCA7CivogLPnm64gPiBqaW1va3VcIDsKK+WumuaVsCA+IHRlaXN1dVwgOwor5L2e5oKqID4gbmVpYWt1XCA7Civkv6/kvI8gPiBmdWZ1a3VcIDsKK+eMruipoCA+IGtlbicnZWlcIDsKK+WvjOW8tyA+IGZ1a3lvdVwgOwor6aiZ5Y+WID4gaGVuc2h1XCA7Civkv6/ku7AgPiBmdWd5b3VcIDsKK+S4iuimpyA+IGpvdXJhblwgOwor5LiH6KiAID4gbWFuZ2VuXCA7Civlr77lpJYgPiB0YWlnYWlcIDsKK+S9j+aJgCA+IGp1dXNob1wgOwor6LKh55WMID4gemFpa2FpXCA7CivogJXnqK4gPiBrb3VzaHVcIDsKK+miqOiBniA+IGZ1dWJ1blwgOwor5LiK6KaGID4gdXdhb29pXCA7CivlrrnmhYsgPiB5b3VkYWlcIDsKK+WwhOWgtCA+IHNoYWpvdVwgOwor5bGN5L2TID4gc2hpdGFpXCA7CivosqHnlKMgPiB6YWlzYW5cIDsKK+S4gOiqniA+IGljaGlnb1wgOwor5a+S5bivID4ga2FudGFpXCA7Civlr7Xlp6sgPiBjaG91a2lcIDsKK+eMruiogCA+IGtlbmdlblwgOwor5Lyd5p+TID4gZGVuc2VuXCA7Civlr6HlsJEgPiBrYXNob3VcIDsKK+S4oeiZjiA+IHJ5b3Vrb1wgOwor54yl6KuHID4gd2FpZGFuXCA7CivotorlooMgPiBla2t5b3VcIDsKK+Wwj+WZqCA+IHNob3VraVwgOwor5LiK6KO9ID4gam91c2VpXCA7CivmnKznt5ogPiBob25zZW5cIDsKK+S8jualvSA+IGdpZ2FrdVwgOwor5L2T5oSfID4gdGFpa2FuXCA7Civkv5flhJIgPiB6b2t1anVcIDsKK+S5g+iHsyA+IG5haXNoaVwgOwor5LiK6KOBID4gam91c2FpXCA7CivkvJ3mnaUgPiBkZW5yYWlcIDsKK+iJsuOAhSA+IGlyb2lyb1wgOwor5a+d5bCPID4gbmVzaG91XCA7CivmnKzntbkgPiBob25rZW5cIDsKK+mjr+ebkiA+IGhhbmdvdVwgOwor5LiL6KGoID4ga2FoeW91XCA7Civos6TmsJEgPiBzZW5taW5cIDsKK+WxheS9jyA+IGt5b2p1dVwgOwor6IWV5YmNID4gdWRlbWFlXCA7Civku67ms4ogPiBrYWhha3VcIDsKK+S9meW+syA+IHlvdG9rdVwgOwor5pys57SZID4gaG9uc2hpXCA7CivotqjlkJEgPiBzdXVrb3VcIDsKK+S9nuW8gSA+IG5laWJlblwgOwor5Lit6I+vID4gY2h1dWthXCA7CivkvZnlvpcgPiB5b3Rva3VcIDsKK+Wus+aCqiA+IGdhaWFrdVwgOwor5bCB5ZywID4gaG91Y2hpXCA7CivlrozmlZcgPiBrYW5wYWlcIDsKK+S6pOeVqiA+IGtvdWJhblwgOwor5L+a5L+XID4gcml6b2t1XCA7CivpoYzoqIAgPiBkYWlnZW5cIDsKK+Wxi+S4iiA+IG9rdWpvdVwgOwor5pyo57WEID4ga2lndW1pXCA7CivmnInog70gPiB5dXVub3VcIDsKK+WwmuWPpCA+IHNob3Vrb1wgOwor6aiS5YuVID4gc291ZG91XCA7Civog4zmiLsgPiBoYWlyZWlcIDsKK+S+i+WkliA+IHJlaWdhaVwgOwor5a6j5oimID4gc2Vuc2VuXCA7CivogLPnkrAgPiBtaW1pd2FcIDsKK+S6lOebriA+IGdvbW9rdVwgOwor5a+T5bGFID4gZ3V1a3lvXCA7CivotqPlkJEgPiBzaHVrb3VcIDsKK+iyoueMriA+IGtvdWtlblwgOwor54us6YC4ID4gZG9pdHN1XCA7CivmoKHluq0gPiBrb3V0ZWlcIDsKK+izh+a6kCA+IHNoaWdlblwgOwor5a+h5ammID4geWFtb21lXCA7CivlsIvllY8gPiBqaW5tb25cIDsKK+aatOirliA+IGJvdXJvblwgOwor5p2h55eVID4gam91a29uXCA7CivmoLzlrZAgPiBrb3VzaGlcIDsKK+S8gealrSA+IGtpZ3lvdVwgOwor5L215a2YID4gaGVpem9uXCA7Civpo7LnlKggPiBpbicneW91XCA7CivkvZPlvaIgPiB0YWlrZWlcIDsKK+WvjOWysyA+IGZ1Z2FrdVwgOwor5a6f5oimID4gamlzc2VuXCA7CivkuLvohLMgPiBzaHVub3VcIDsKK+iDoeW8kyA+IGtva3l1dVwgOwor5pi86aSJID4gaGlydWdlXCA7CivnkLTmn7EgPiBrb3RvamlcIDsKK+i2qOWLoiA+IHN1dXNlaVwgOwor5L6d5ZixID4gaXNob2t1XCA7CivmmLzpo58gPiBoaXJ1Z2VcIDsKK+WvkuWusyA+IGthbmdhaVwgOwor6aCR6L+3ID4gZ2FubWVpXCA7CivlrpvmiYAgPiBhdGVzaG9cIDsKK+afkOafkCA+IGJvdWJvdVwgOwor542j6ISCID4ganV1c2hpXCA7CivkvY7lvoogPiB0ZWlrYWlcIDsKK+acrOeuoSA+IGhvbmthblwgOwor6LKv54KtID4gY2hvdGFuXCA7Civkuoznm64gPiBmdXRhbWVcIDsKK+Wwj+WQjyA+IHNob3VyaVwgOwor5Lq654WZID4gamluJydlblwgOwor5pq06KiAID4gYm91Z2VuXCA7Civkv4rlgYkgPiBzaHVuJydpXCA7CivlsIrlkb0gPiBzb25tZWlcIDsKK+WumOaIvyA+IGthbmJvdVwgOwor5p2+54WZID4gc2hvdWVuXCA7CivogqXmlpkgPiBoaXJ5b3VcIDsKK+S8keaahyA+IGt5dXVrYVwgOwor5L+X5LqLID4gem9rdWppXCA7Civlrp/mhYsgPiBqaXR0YWlcIDsKK+acqOeusSA+IGtpYmFrb1wgOwor5pyJ572qID4geXV1emFpXCA7Civni63ou4wgPiBreW91a2lcIDsKK+izvOabuCA+IGtvdXNob1wgOwor5a2m5qChID4gZ2Fra291XCA7CivmnKjnrqEgPiBtb2trYW5cIDsKK+eOhOexsyA+IGdlbm1haVwgOwor54+I55CyID4ga291aGlpXCA7CivpoqjntIsgPiBmdXVtb25cIDsKK+agquWxiyA+IGthYnV5YVwgOwor5a6f5oSfID4gamlra2FuXCA7CivlsIrlkJsgPiBzb25rdW5cIDsKK+Wun+aEjyA+IGppdHN1aVwgOwor5bCK5ZCNID4gc29ubWVpXCA7CivkvY7lu4kgPiB0ZWlyZW5cIDsKK+mjvOeKrCA+IGthaWludVwgOwor5bCK5Y+3ID4gc29uZ291XCA7Civku5bmtYEgPiB0YXJ5dXVcIDsKK+WwiuWPsCA+IHNvbmRhaVwgOwor5pyr56uvID4gbWF0dGFuXCA7CivlrpjmhrIgPiBrYW5rZW5cIDsKK+S7mOazqCA+IGZ1Y2h1dVwgOwor6aOb55m9ID4ga2FzdXJpXCA7Civos47msJEgPiBzZW5taW5cIDsKK+S9kOW5lSA+IHNhYmFrdVwgOwor5Lq654G9ID4gamluc2FpXCA7CivkuIvolqwgPiBnZXlha3VcIDsKK+WvhuWwgSA+IG1pcHB1dVwgOwor5a605bitID4gZW5zZWtpXCA7CivlsI/ljJkgPiBrb3NhamlcIDsKK+WwiuWOsyA+IHNvbmdlblwgOwor6IKJ5qGCID4gbmlra2VpXCA7CivotbDloYEgPiBzb3VydWlcIDsKK+agvOWlvSA+IGtha2tvdVwgOwor5Lyd5pCsID4gZGVucGFuXCA7Civlr5vlpKcgPiBrYW5kYWlcIDsKK+acrOeovyA+IGhvbmtvdVwgOwor5pu46IKGID4gc2hvc2hpXCA7CivlrozmipUgPiBrYW50b3VcIDsKK+WtkOanmCA+IGtvc2FtYVwgOwor5a6/5bGLID4geWFkb3lhXCA7Civmm7jogZYgPiBzaG9zZWlcIDsKK+Wvv+WRvSA+IGp1bXlvdVwgOwor5LiJ6JS1ID4gc2Fuem91XCA7Civpn7Pph48gPiBvbnJ5b3VcIDsKK+S6oeeKtiA+IGJvdWpvdVwgOwor6LK75raIID4gaGlzaG91XCA7CivlsJblhbUgPiBzZW5wZWlcIDsKK+S5l+eulyA+IGpvdXphblwgOwor5pq06KGMID4gYm91a291XCA7CivmoLnlpKogPiBuZWJ1dG9cIDsKK+itsOmVtyA+IGdpY2hvdVwgOwor5Lm+55uDID4ga2FucGFpXCA7CivlrozmiJAgPiBrYW5zZWlcIDsKK+Wwj+WIqSA+IHNob3VyaVwgOwor5pu457+wID4gc2hva2FuXCA7CivmnaXnirYgPiByYWlqb3VcIDsKK+aciee3miA+IHl1dXNlblwgOwor5LuP5rOVID4gYnVwcG91XCA7CivlronmiYsgPiB5YXN1ZGVcIDsKK+WDheOAhSA+IGtpbmtpblwgOwor5a++5ZCRID4gdGFpa291XCA7CivlrprmgKcgPiB0ZWlzZWlcIDsKK+ixquebmyA+IGdvdXNlaVwgOwor5Lm+55msID4ga2Fuc2VuXCA7Civlr77lj6UgPiB0c3Vpa3VcIDsKK+S4reiAsyA+IGNodXVqaVwgOwor6IKy5oiQID4gaWt1c2VpXCA7CivlrojmiKYgPiBzaHVzZW5cIDsKK+agoeWumiA+IGtvdXRlaVwgOwor5a+S5aSpID4ga2FudGVuXCA7CivmnKznpL4gPiBob25zaGFcIDsKK+S4i+iQvSA+IGdlcmFrdVwgOwor6K2m6ZiyID4ga2VpYm91XCA7Civlr5LlpJwgPiBrYW4nJ3lhXCA7CivlrojmiJAgPiBzaHVzZWlcIDsKK+eJuemrmCA+IHRva2tvdVwgOwor5pyr56S+ID4gbWFzc2hhXCA7Civog7jlpaUgPiBreW91b3VcIDsKK+S9s+WigyA+IGtha3lvdVwgOwor5pmu6YCaID4gZnV0c3V1XCA7CivkvZflr50gPiB3YWJpbmVcIDsKK+Wun+W8nyA+IGppdHRlaVwgOwor546y55OPID4gcmVpcm91XCA7CivogIHnnLwgPiByb3VnYW5cIDsKK+ixiuepoyA+IGhvdWpvdVwgOwor5qC95Z+5ID4gc2FpYmFpXCA7Civnvqnoh6MgPiBnaXNoaW5cIDsKK+eJoem2jyA+IG9uZG9yaVwgOwor5bCP5YW1ID4ga29oeW91XCA7CivmnIjntYwgPiBnZWtrZWlcIDsKK+iDjOW6gyA+IHNlYmlyb1wgOwor5a2j5pilID4ga2lzaHVuXCA7CivlsI/lhZAgPiBzaG91bmlcIDsKK+ixiueolCA+IGhvdW5lblwgOwor54md6beEID4gaGlua2VpXCA7CivlrprlvaIgPiB0ZWlrZWlcIDsKK+adoeeJhyA+IGpvdWhlblwgOwor5L+C5LqJID4ga2Vpc291XCA7CivosaHnnLwgPiB6b3VnYW5cIDsKK+eOs+eRgSA+IHRhaW1haVwgOwor5pqX6KqmID4gYW5zaG91XCA7CivpqJLkurogPiBzb3VqaW5cIDsKK+Wul+W+kiA+IHNodXV0b1wgOwor5a2Q5qCqID4ga29rYWJ1XCA7CivmmLzplpMgPiBoaXJ1bWFcIDsKK+S9juWxpCA+IHRlaXNvdVwgOwor5qC55Z+OID4gbmVqaXJvXCA7CivkuoDnlLIgPiBraWtrb3VcIDsKK+izgOatoyA+IGdhc2hvdVwgOwor6aGV6JGXID4ga2VuY2hvXCA7CivniaHps6UgPiBvbmRvcmlcIDsKK+mokuS5sSA+IHNvdXJhblwgOwor5bCK5YWsID4gc29ua291XCA7CivlrrXlrq4gPiB5b21peWFcIDsKK+S6pOeCuSA+IGtvdXRlblwgOwor5L2P5bCCID4ganV1c2VuXCA7Civpn7PpgJ8gPiBvbnNva3VcIDsKK+S8kOaOoSA+IGJhc3NhaVwgOwor5a625a6FID4ga2F0YWt1XCA7Civpo5vnkIMgPiBoaWt5dXVcIDsKK+aal+iovCA+IGFuc2hvdVwgOwor5bCK5YWEID4gc29ua2VpXCA7Civkvr/kuZcgPiBiaW5qb3VcIDsKK+WwguWItiA+IHNlbnNlaVwgOwor5Lm+55SwID4ga2FuZGVuXCA7CivlrrblraYgPiBrYWdha3VcIDsKK+S8uOW6piA+IHNoaW5kb1wgOwor5Lya5omAID4ga2Fpc2hvXCA7Civkvb/ll74gPiBzaGlzb3VcIDsKK+ixhuenkSA+IG1hbWVrYVwgOwor6ISx5YWaID4gZGF0dG91XCA7CivkvJrmiKYgPiBrYWlzZW5cIDsKK+S9nuWnpiA+IG5laWthblwgOwor5L2P5a62ID4gc3VtaWthXCA7CivnjrLnjrIgPiByZWlyZWlcIDsKK+S+tuS8tCA+IHJ5b2hhblwgOwor6IOe5a2QID4gaG91c2hpXCA7CivlrprlubQgPiB0ZWluZW5cIDsKK+aZgumQmCA+IGppc2hvdVwgOwor6LOc5p2vID4gc2hpaGFpXCA7CivosqHmupAgPiB6YWlnZW5cIDsKK+S4pue9riA+IGhlaWNoaVwgOwor5a6J5oGvID4gYW5zb2t1XCA7CivlsIrlg48gPiBzb256b3VcIDsKK+S4jeiJryA+IGZ1cnlvdVwgOwor5LuV5qijID4gc2hpeW91XCA7CivmnbHmvLggPiB0b3V6ZW5cIDsKK+WumuW4uCA+IHRlaWpvdVwgOwor5L2e5aW4ID4gbmVpa2FuXCA7CivnjK7ojLYgPiBrZW5jaGFcIDsKK+S4gOiPiiA+IGlra2lrdVwgOwor5a6u5a62ID4gbWl5YWtlXCA7CivpoqjnpZ4gPiBmdXVqaW5cIDsKK+iDmuWtkCA+IGhhaXNoaVwgOwor5a2d5pWsID4ga291a2VpXCA7Civlr77lh6YgPiB0YWlzaG9cIDsKK+S4oee+qSA+IHJ5b3VnaVwgOwor5Li557K+ID4gdGFuc2VpXCA7Civku5Xmp5ggPiBzaGl5b3VcIDsKK+WvkuWcsCA+IGthbmNoaVwgOwor5LiN6IiIID4gZnVreW91XCA7CivkuIfoirggPiBiYW5nZWlcIDsKK+S4jeiHoyA+IGZ1c2hpblwgOwor6ISa5Y2KID4ga3lhaGFuXCA7Civos6LmmI4gPiBrZW5tZWlcIDsKK+S4iuiIuSA+IGpvdXNlblwgOwor6LKv5rC0ID4gY2hvc3VpXCA7Civlrrnlp78gPiB5b3VzaGlcIDsKK+S4iuiIqiA+IGpvdWtvdVwgOwor5bCR5L2QID4gc2hvdXNhXCA7Civmnq/mnKggPiBrYXJla2lcIDsKK+S4gOiNmCA+IGlpY2hhblwgOwor5a+45YmNID4gc3VuemVuXCA7Civlro/lvIEgPiBrb3ViZW5cIDsKK+WvvuWGhSA+IHRhaW5haVwgOwor6ICB55SfID4gcm91c2VpXCA7Civku7bmlbAgPiBrZW5zdXVcIDsKK+S4i+iHoyA+IGthc2hpblwgOwor542656WtID4gZGFzc2FpXCA7Civni6zoqp4gPiBkb2t1Z29cIDsKK+S4iuiHvCA+IHV3YXVzdVwgOwor5bCP5L2cID4ga29zYWt1XCA7CivmnKznm5cgPiBob250b3VcIDsKK+mjvea6gCA+IGhvdW1hblwgOwor5qCh5aSWID4ga291Z2FpXCA7Civlr7jliIYgPiBzdW5idW5cIDsKK+eLrOipsSA+IGRva3V3YVwgOwor5bCO5L2TID4gZG91dGFpXCA7CivkuIfoiKwgPiBiYW5wYW5cIDsKK+S4iuiHiCA+IGpvdXJvdVwgOwor5pif6ZycID4gc2Vpc291XCA7Civkvb/lkb0gPiBzaGltZWlcIDsKK+eJqemokiA+IGJ1c3NvdVwgOwor5pyo55uuID4gbW9rdW1lXCA7CivkuLvnrqEgPiBzaHVrYW5cIDsKK+S7pOacmyA+IHJlaWJvdVwgOwor5LiK6IW/ID4gam91dGFpXCA7CivlrqblrpggPiBrYW5nYW5cIDsKK+WvjOWbvSA+IGZ1a29rdVwgOwor5pu057SXID4gc2FyYXNhXCA7CivkurrmsJcgPiBoaXRva2VcIDsKK+acqOeavyA+IGtpemFyYVwgOwor5Lq65rCRID4gamlubWluXCA7CivlsITlgJYgPiBzaGFrb3VcIDsKK+S4iuiFlSA+IGpvdXdhblwgOwor5bCK5L2TID4gc29udGFpXCA7CivmnKjnmq4gPiBtb2t1aGlcIDsKK+S7o+abvyA+IGRhaXRhaVwgOwor5Luj5pu4ID4gZGFpc2hvXCA7Civmn5DmiYAgPiBib3VzaG9cIDsKK+aYgumosCA+IGtvdXRvdVwgOwor5a2Q5pa5ID4ga29rYXRhXCA7CivlsI/kuosgPiBzaG91amlcIDsKK+S9nOWgtCA+IHNha3ViYVwgOwor6LKn5rCRID4gaGlubWluXCA7Civku4rmp5ggPiBpbWF5b3VcIDsKK+Wun+WwhCA+IGppc3NoYVwgOwor5a++5YG2ID4gdGFpZ3V1XCA7CivkuqzmtZwgPiBrZWloaW5cIDsKK+abuOewoSA+IHNob2thblwgOwor5LiN6IKWID4gZnVzaG91XCA7CivmnbHmtbcgPiB0b3VrYWlcIDsKK+acieeojiA+IHl1dXplaVwgOwor5L2T5aSWID4gdGFpZ2FpXCA7CivmnpzmoLggPiBrYWtha3VcIDsKK+mgkOiolyA+IHlvdGFrdVwgOwor6ISx5LyaID4gZGFra2FpXCA7CivkuIDoiIggPiBpa2t5b3VcIDsKK+S4iuiDjCA+IHV3YXplaVwgOwor5a+15YWQID4gY2hvdWppXCA7Civlrozlt6UgPiBrYW5rb3VcIDsKK+S4iuiCoiA+IGpvdXNoaVwgOwor5pm66KyAID4gY2hpYm91XCA7CivpoZ7ogZogPiBydWlqdXVcIDsKK+acrOeVqiA+IGhvbmJhblwgOwor5p2x5rSLID4gdG91eW91XCA7CivnibnpnIAgPiB0b2t1anVcIDsKK+iytOanmCA+IGtpc2FtYVwgOwor6IGw5piOID4gc291bWVpXCA7CivpoqjnnLwgPiBmdXVnYW5cIDsKK+S4iuiBniA+IGpvdWJ1blwgOwor5a6f5a2QID4gamlzc2hpXCA7CivogIHnjaogPiByb3VrYWlcIDsKK+adr+a0lyA+IGhhaXNlblwgOwor5a625aG+ID4ga2FqdWt1XCA7Civku6Tml6ggPiByZWlzaGlcIDsKK+S9teWRkSA+IGhlaWRvblwgOwor6LOH5p2QID4gc2hpemFpXCA7CivkvY7lo7AgPiB0ZWlzZWlcIDsKK+S6ieeCuSA+IHNvdXRlblwgOwor6LOH5pysID4gc2hpaG9uXCA7CivkvZzlnJ8gPiBzYWt1ZG9cIDsKK+WwiuS4iiA+IHNvbmpvdVwgOwor5a+b5Y6zID4ga2FuZ2VuXCA7CivkvJrlvI8gPiBlc2hpa2lcIDsKK+e+mue+iiA+IHJlaXlvdVwgOwor5L215ZCIID4gaGVpZ291XCA7Civkub7nh6UgPiBrYW5zb3VcIDsKK+S8tuWumCA+IHJlaWthblwgOwor5a+b5Y6aID4ga2Fua291XCA7CivkuInogIUgPiBzYW5zaGFcIDsKK+ixqueIvSA+IGdvdXNvdVwgOwor5L2c5ZuzID4gc2FrdXp1XCA7CivnjKvog4wgPiBuZWtvemVcIDsKK+mjm+eBqyA+IHRvYmloaVwgOwor54mH6bGXID4gaGVucmluXCA7CivorabphpIgPiBrZWlzZWlcIDsKK+mnheWQjSA+IGVraW1laVwgOwor5Luj5pWwID4gZGFpc3V1XCA7CivpppnlpaAgPiBrb3VkZW5cIDsKK+ixkOeUsCA+IHRveW90YVwgOwor57+U56C0ID4gc2hvdWhhXCA7Civni6zooYwgPiBkb2trb3VcIDsKK+agueWPtyA+IGtvbmdvdVwgOwor6IKd5b+DID4ga2FuamluXCA7CivniZvppqwgPiBneXV1YmFcIDsKK+S6uuaoqSA+IGppbmtlblwgOwor6IK65bCWID4gaGFpc2VuXCA7CivkuLjnp5ggPiBtYXJ1aGlcIDsKK+mjm+eAkSA+IGhpYmFrdVwgOwor5L2T5Z6LID4gdGFpa2VpXCA7CivpoJLooYwgPiBoYW5rb3VcIDsKK+adseavjiA+IHRvdW1haVwgOwor6aCI6KaBID4gc2h1eW91XCA7Civlr77kurogPiB0YWlqaW5cIDsKK+iDoeWbvSA+IGtva29rdVwgOwor5qGI5YaFID4gYW4nJ25haVwgOwor5L2V5ZueID4gbmFua2FpXCA7Civmma7oq4sgPiBmdXNoaW5cIDsKK+aZgumAnyA+IGppc29rdVwgOwor5a2k5oSBID4ga29zaHV1XCA7CivorbfouqsgPiBnb3NoaW5cIDsKK+acqOeQtCA+IG1va2tpblwgOwor5a6f5aeJID4gamlzc2hpXCA7Civku4/mm7ggPiBidXNzaG9cIDsKK+WujOWwgSA+IGthbnB1dVwgOwor6ICz5q67ID4gamlrYWt1XCA7CivpoZ7nuoIgPiBydWlzYW5cIDsKK+mdkum7tCA+IGFva2FiaVwgOwor5pyo55CGID4gbW9rdXJpXCA7CivkvpvkuI4gPiBreW91eW9cIDsKK+iBoeaYjiA+IHNvdW1laVwgOwor6K6S6KyXID4gemFuYm91XCA7Civlr53liIMgPiBuZXRhYmFcIDsKK+S4gOe+vSA+IGljaGl3YVwgOwor6IKJ5oSfID4gbmlra2FuXCA7Civos6LmiY0gPiBrZW5zYWlcIDsKK+S4gOe+qSA+IGljaGlnaVwgOwor5L2O5ZywID4gdGVpY2hpXCA7CivmoYLlhqAgPiBrZWlrYW5cIDsKK+WuieWvpyA+IGFuJyduZWlcIDsKK+iDveWLlSA+IG5vdWRvdVwgOwor576K5765ID4geW91a2FuXCA7CivppZflv5wgPiBreW91b3VcIDsKK+e+iue+riA+IHlvdWthblwgOwor6IGW5pu4ID4gc2Vpc2hvXCA7CivkuLvnoLIgPiBzaHVob3VcIDsKK+S9juWbniA+IHRlaWthaVwgOwor5a+d5YW3ID4gc2hpbmd1XCA7Civosr/mmJMgPiBib3Vla2lcIDsKK+ePvuaVsCA+IGdlbnN1dVwgOwor6Z+z6Kq/ID4gb25jaG91XCA7CivkuqTmrZMgPiBrb3VrYW5cIDsKK+mnheWJjSA+IGVraW1hZVwgOwor5a6I5a6uID4geWFtb3JpXCA7Civmma/oprMgPiBrZWlrYW5cIDsKK+mfs+iqrSA+IG9uZG9rdVwgOwor5Lqk5qy+ID4ga291a2FuXCA7CivmnprmlbAgPiBtYWlzdXVcIDsKK+iBoeaVjyA+IHNvdWJpblwgOwor6LKn5qOSID4gYmluYm91XCA7CivkuIrnt5ogPiBqb3VzZW5cIDsKK+mghuihjCA+IGp1bmtvdVwgOwor5pyI55u4ID4gZ2Vzc291XCA7CivlrZDmiL8gPiBzaGlib3VcIDsKK+S+i+S8miA+IHJlaWthaVwgOwor5pyA55+tID4gc2FpdGFuXCA7CivpnZLpt7ogPiBhb3NhZ2lcIDsKK+WtpuW+kiA+IGdha3V0b1wgOwor5Li556CCID4gdGFuc2hhXCA7CivmnInnm4ogPiB5dXVla2lcIDsKK+S7iuaZqSA+IGtvbmJhblwgOwor5LqV5rOJID4gc2Vpc2VuXCA7Civlr5LliaQgPiBrYW56YWlcIDsKK+izouaFriA+IGtlbnJ5b1wgOwor5a2d5oKMID4ga291dGVpXCA7Civogq/lrpogPiBrb3V0ZWlcIDsKK+S4i+e1tSA+IHNoaXRhZVwgOwor6K6S6KiAID4gemFuZ2VuXCA7CivotablhY0gPiBzaGFtZW5cIDsKK+S6iOa4rCA+IHlvc29rdVwgOwor57+754S2ID4gaG9uemVuXCA7CivkvLTlpY8gPiBiYW5zb3VcIDsKK+izm+aIkCA+IHNhbnNlaVwgOwor6aKo55C0ID4gZnV1a2luXCA7CivkvJ3lsI4gPiBkZW5kb3VcIDsKK+ael+aUvyA+IHJpbnNlaVwgOwor5qC55YagID4ga29ua2FuXCA7CivotbfkvI8gPiBraWZ1a3VcIDsKK+S4i+e0miA+IGtha3l1dVwgOwor5Li755y8ID4gc2h1Z2FuXCA7CivkuInntYQgPiBtaWt1bWlcIDsKK+S4iee1gyA+IHNhbmdlblwgOwor5a6d5aGUID4gaG91dG91XCA7CivogZbml6ggPiBzZWlzaGlcIDsKK+S4jeeyviA+IGJ1c2hvdVwgOwor5LiK57SNID4gam91bm91XCA7CivnjovniakgPiBvdW1vbm9cIDsKK+S4gOe4tyA+IGljaGlydVwgOwor5LqM5rWBID4gbmlyeXV1XCA7CivohJrkuIsgPiBreWFra2FcIDsKK+agueWFgyA+IG5lbW90b1wgOwor5a+S5Ya3ID4ga2FucmVpXCA7CivogZbmlq0gPiBzZWlkYW5cIDsKK+S9qeWJoyA+IGhhaWtlblwgOwor5auM54WZID4ga2VuJydlblwgOwor5qCh5ZCIID4ga291Z291XCA7CivmnaHmrL4gPiBqb3VrYW5cIDsKK+WtpuW6nCA+IGdha3VmdVwgOwor5LuB5pm6ID4gamluY2hpXCA7CivkurrmnZAgPiBqaW56YWlcIDsKK+agoeWPiyA+IGtvdXl1dVwgOwor5L2p5YiAID4gaGFpdG91XCA7CivmnKrnhp8gPiBtaWp1a3VcIDsKK+acseeCuSA+IHNodXRlblwgOwor5LiK57GzID4gam91bWFpXCA7CivkuK3noLQgPiBjaHV1aGFcIDsKK+S6uuacmyA+IGppbmJvdVwgOwor6LK05pePID4ga2l6b2t1XCA7Civlr6HkvZwgPiBrYXNha3VcIDsKK+WumOWgsSA+IGthbnBvdVwgOwor5Lit56ClID4gbmFrYXRvXCA7Civlro/lpKcgPiBrb3VkYWlcIDsKK+mir+eIvSA+IHNhc3NvdVwgOwor5a6f5ZywID4gaml0Y2hpXCA7CivlrZ3lvJ8gPiBrb3V0ZWlcIDsKK+adv+abuCA+IGJhbnNob1wgOwor6IOM5ZqiID4gaGFpbm91XCA7Civos6blvbkgPiBidXlha3VcIDsKK+acieeUqCA+IHl1dXlvdVwgOwor5a6P5aOuID4ga291c291XCA7CivmnInnlKMgPiB5dXVzYW5cIDsKK+S4meeoriA+IGhlaXNodVwgOwor5a6a5Z6LID4gdGVpa2VpXCA7CivmnIjnlKMgPiBnZXNzYW5cIDsKK+S8j+WxiyA+IGZ1c2V5YVwgOwor5LiA57SaID4gaWtreXV1XCA7CivkurrmmbogPiBqaW5jaGlcIDsKK+WujOWjsiA+IGthbmJhaVwgOwor5p2R5rCRID4gc29ubWluXCA7CivnkIPmioAgPiBreXV1Z2lcIDsKK+aemuaMmSA+IG1haWt5b1wgOwor5pel6aCDID4gaGlnb3JvXCA7CivkuIvnrZYgPiBnZXNha3VcIDsKK+mdkumuqyA+IGFvemFtZVwgOwor5a2X5byVID4gamliaWtpXCA7Civku4HmlL8gPiBqaW5zZWlcIDsKK+S9juWQnyA+IHRlaWdpblwgOwor5pel6Z+TID4gbmlra2FuXCA7CivnkIPmiK8gPiBreXV1Z2lcIDsKK+S9leWNgyA+IG5hbnplblwgOwor5L2V5Y2BID4gbmFuanV1XCA7Civos6LlvJ8gPiBrZW50ZWlcIDsKK+S4iuetiSA+IGpvdXRvdVwgOwor6aas5YqbID4gYmFyaWtpXCA7CivlrZjlu4MgPiB6b25wYWlcIDsKK+iBr+aDsyA+IHJlbnNvdVwgOwor5L2/5LiBID4gc2hpdGVpXCA7CivkuInnrYkgPiBzYW50b3VcIDsKK+S4u+eUqCA+IHNodXlvdVwgOwor5LiA57GMID4gaXRjaHV1XCA7CivkvbPkvZwgPiBrYXNha3VcIDsKK+Wvm+S7gSA+IGthbmppblwgOwor55G25Y+wID4geW91ZGFpXCA7CivlrZDlvbkgPiBrb3lha3VcIDsKK+S8j+WtlyA+IGZ1c2VqaVwgOwor6ICQ5rC0ID4gdGFpc3VpXCA7CivkuIrnq68gPiBqb3V0YW5cIDsKK+mnhOS9nCA+IGRhc2FrdVwgOwor5Li555SwID4gdGFuZGVuXCA7CivkuInnq78gPiBzYW5rYW5cIDsKK+S6uuaWhyA+IGppbm1vblwgOwor6aeF5LydID4gZWtpZGVuXCA7CivkvZPli6IgPiB0YWlzZWlcIDsKK+Wtl+W5lSA+IGppbWFrdVwgOwor5Lyd5aWPID4gZGVuc291XCA7CivlrZDlvJ8gPiBzaGl0ZWlcIDsKK+S4h+erryA+IGJhbnRhblwgOwor5LiK56m6ID4gam91a3V1XCA7CivnjbDnjJsgPiBuZWltb3VcIDsKK+mmmeWQiCA+IGtvdWdvdVwgOwor54mH6ZuyID4gaGVuJyd1blwgOwor54us6IuxID4gZG9rdWVpXCA7CivmoKHlhoUgPiBrb3VuYWlcIDsKK+aXpembgCA+IGhpZ2FyYVwgOwor6aGM57C9ID4gZGFpc2VuXCA7Civlr4blgbUgPiBtaXR0ZWlcIDsKK+mgu+e5gSA+IGhpbnBhblwgOwor5LiA562WID4gaXNzYWt1XCA7CivkvZXliIYgPiBuYW5wdW5cIDsKK+eJvemAoyA+IGtlbnJlblwgOwor5a2r5a2QID4gbWFnb2tvXCA7Civku4vmirEgPiBrYWlob3VcIDsKK+S4ieeoriA+IHNhbnNodVwgOwor5L2T5Yi2ID4gdGFpc2VpXCA7CivppZflrrQgPiBreW91ZW5cIDsKK+S4iueoiyA+IGpvdXRlaVwgOwor5pel6ZmwID4gaGlrYWdlXCA7Civmm7jnlJ8gPiBzaG9zZWlcIDsKK+aXrOmWkyA+IGp1bmthblwgOwor6aas5YWLID4gbWFydWt1XCA7CivlrpjllrYgPiBrYW4nJ2VpXCA7CivkvZPliJEgPiB0YWlrZWlcIDsKK+e+veeUsCA+IGhhbmVkYVwgOwor6aGG57KSID4ga2FyeXV1XCA7CivkuLvnj60gPiBzaHVoYW5cIDsKK+S4gOeskSA+IGlzc2hvdVwgOwor6Z2i6aCsID4gbWVucG9vXCA7Civml6XpmZAgPiBoaWdpcmlcIDsKK+S4jeelpSA+IGZ1c2hvdVwgOwor5Lih55uuID4gcnlvdW1lXCA7CivmnKzmupAgPiBob25nZW5cIDsKK+iCieWxiyA+IG5pa3V5YVwgOwor6IO05L2TID4gZG91dGFpXCA7Civlp6boqIggPiBrYW5rZWlcIDsKK+S6pOabvyA+IGtvdXRhaVwgOwor6Z2Z6aSKID4gc2VpeW91XCA7CivosqHmlL8gPiB6YWlzZWlcIDsKK+WtpOWuoiA+IGtva2FrdVwgOwor5Luk5byfID4gcmVpdGVpXCA7CivmoKrkvqEgPiBrYWJ1a2FcIDsKK+e+juepuiA+IG1pc29yYVwgOwor5pu055SfID4ga291c2VpXCA7Civlr4Tkv6EgPiBraXNoaW5cIDsKK+iBluaIpiA+IHNlaXNlblwgOwor5Lit55SfID4gbmFrYXRlXCA7CivkvZPlhoUgPiB0YWluYWlcIDsKK+iDjOWPjSA+IGhhaWhhblwgOwor54us6IeqID4gZG9rdWppXCA7Civku6PlvIEgPiBkYWliZW5cIDsKK+WvhuS9vyA+IG1pc3NoaVwgOwor5p2x5pa5ID4gdG91aG91XCA7CivorLnpgbggPiBraW5zZW5cIDsKK+ixiua9pCA+IGhvdWp1blwgOwor5Lya5aC0ID4ga2Fpam91XCA7CivkvJrloLEgPiBrYWlob3VcIDsKK+aZguiplSA+IGppaHlvdVwgOwor5a625YWDID4gaWVtb3RvXCA7Civniafph44gPiBib2t1eWFcIDsKK+mdoumdoiA+IG1lbm1lblwgOwor6LOH5oCnID4gc2hpc2VpXCA7Civkuovmpa0gPiBqaWd5b3VcIDsKK+S4geeomiA+IGRldGNoaVwgOwor5p2l5pu4ID4gcmFpc2hvXCA7Civml6XplbcgPiBoaW5hZ2FcIDsKK+S6lOahgSA+IGdva2V0YVwgOwor5Lya5aCCID4ga2FpZG91XCA7Civnvo7np7AgPiBiaXNob3VcIDsKK+WvhuS8miA+IG1pa2thaVwgOwor6LOK5b6SID4gem9rdXRvXCA7CivnjKvnp5EgPiBuZWtva2FcIDsKK+aXhemkqCA+IHJ5b2thblwgOwor6IO05LmxID4gZG91cmFuXCA7Civku7vlrpggPiBuaW5rYW5cIDsKK+iynuaTjSA+IHRlaXNvdVwgOwor5Lqk5piTID4ga291ZWtpXCA7Civlrpjlkb0gPiBrYW5tZWlcIDsKK+WutuWDlSA+IGthYm9rdVwgOwor5Li754qvID4gc2h1aGFuXCA7Civnvavnt5ogPiBrZWlzZW5cIDsKK+Wtn+WtkCA+IG1vdXNoaVwgOwor576k55uyID4gZ3VubW91XCA7Civog47li5UgPiB0YWlkb3VcIDsKK+aYj+i/tyA+IGtvbm1laVwgOwor5Lim55SoID4gaGVpeW91XCA7CivkubPmr40gPiBueXV1Ym9cIDsKK+e+pOeblyA+IGd1bnRvdVwgOwor5LuW5b+DID4gdGFzaGluXCA7CivogIHmrbsgPiByb3VzaGlcIDsKK+WtneWtkCA+IGtvdXNoaVwgOwor57qP6aCtID4gdGVudG91XCA7Civniq/ooYwgPiBoYW5rb3VcIDsKK+ixiua6gCA+IGhvdW1hblwgOwor5L2P5YOnID4ganV1c291XCA7CivlrpjlkI0gPiBrYW5tZWlcIDsKK+S4gOelqCA+IGlwcHlvdVwgOwor5aWU6aiwID4gaG9udG91XCA7Civmn7vlj44gPiBzYXNodXVcIDsKK+S6jOaguCA+IG5pa2FrdVwgOwor5a6f5YuiID4gamlzc2VpXCA7Civku67lsYsgPiBrYXJpeWFcIDsKK+S9nuS6uiA+IG5laWppblwgOwor5pyr5rOVID4gbWFwcG91XCA7CivpppnlhbggPiBrb3VkZW5cIDsKK+Wun+WKuSA+IGppa2tvdVwgOwor5p2l5pa5ID4ga2lrYXRhXCA7CivoraboppYgPiBrZWlzaGlcIDsKK+mjsuaWmSA+IGlucnlvdVwgOwor5a625L+hID4ga2FzaGluXCA7CivlrpjljbAgPiBrYW4nJ2luXCA7CivkurrmiY0gPiBqaW5zYWlcIDsKK+S6uuaJiyA+IGhpdG9kZVwgOwor5pu454q2ID4gc2hvam91XCA7CivlrrnkvZMgPiB5b3VkYWlcIDsKK+S7ruWvnSA+IGthcmluZVwgOwor5a2U5a2fID4ga291bW91XCA7Civku67lrrYgPiBrYXJpaWVcIDsKK+WtlOWtkCA+IGtvdXNoaVwgOwor6IOO5YaFID4gdGFpbmFpXCA7Civku4HmhJsgPiBqaW4nJ2FpXCA7CivmnaXmlLsgPiByYWlrb3VcIDsKK+WuneWJoyA+IGhvdWtlblwgOwor5a625L2cID4ga2FzYWt1XCA7CivlpKfpuqYgPiBvb211Z2lcIDsKK+eLree+qSA+IGt5b3VnaVwgOwor6Kyd6YeRID4gc2hha2luXCA7Civlrp/liJEgPiBqaWtrZWlcIDsKK+mkiuaIkCA+IHlvdXNlaVwgOwor5p2h5paHID4gam91YnVuXCA7CivmoKHkuLsgPiBrb3VzaHVcIDsKK+WtkOWuiCA+IGtvbW9yaVwgOwor5a6/5LiWID4gc3VrdXNlXCA7Civlpa7pl5ggPiBmdW50b3VcIDsKK+Wul+WLmSA+IHNodXVtdVwgOwor5ama56S8ID4ga29ucmVpXCA7CivlrZDlrasgPiBzaGlzb25cIDsKK+S4ieecgSA+IHNhbnNlaVwgOwor5pys5q6/ID4gaG9uZGVuXCA7CivkuInnm7ggPiBzYW5zb3VcIDsKK+eMm+emvSA+IG1vdWtpblwgOwor5a6d5YiAID4gaG91dG91XCA7CivnvqTnlJ8gPiBndW5zZWlcIDsKK+S4gOefsyA+IGlzc2VraVwgOwor5a6f5YaZID4gamlzc2hhXCA7Civku4HmgbUgPiBqaW5rZWlcIDsKK+S6lOaXpSA+IGl0c3VrYVwgOwor6aKo5rWqID4gZnV1cm91XCA7Civmmbrog70gPiBjaGlub3VcIDsKK+S4iueahyA+IGpvdWtvdVwgOwor5Lqk5o+bID4ga291a2FuXCA7CivkuqvmjIEgPiBreW91amlcIDsKK+S4gOeerCA+IGlzc2h1blwgOwor5a6d5YagID4gaG91a2FuXCA7CivlrpjliLYgPiBrYW5zZWlcIDsKK+Wun+WFhCA+IGppa2tlaVwgOwor5a6d5YW4ID4gaG91dGVuXCA7CivpoqjmtJ4gPiBmdXVkb3VcIDsKK+aWrOmmliA+IHphbnNodVwgOwor5pel6YqtID4gaGl6ZW5pXCA7CivkuZfms5UgPiBqb3Vob3VcIDsKK+acrOashCA+IGhvbnJhblwgOwor54yu55uDID4ga2VucGFpXCA7Civkurrmg4UgPiBuaW5qb3VcIDsKK+S9j+S6uiA+IGp1dW5pblwgOwor5LuP5birID4gYnVzc2hpXCA7CivlrrbkuK0gPiBrYWNodXVcIDsKK+WutuS4piA+IHlhbmFtaVwgOwor6LGK5rC0ID4gaG91c3VpXCA7Civos6LlprsgPiBrZW5zYWlcIDsKK+S7o+WumCA+IGRhaWthblwgOwor5LiB55uuID4gY2hvdW1lXCA7Civku6TlrasgPiByZWlzb25cIDsKK+S7j+W3pSA+IGJ1a2tvdVwgOwor5LiA55uuID4gaGl0b21lXCA7CivogonloYogPiBuaWtrYWlcIDsKK+S6rOaIkCA+IGtlaXNlaVwgOwor5pqu56eLID4gYm9zaHV1XCA7CivmmbrogIUgPiBjaGlzaGFcIDsKK+aWuemdoiA+IGhvdW1lblwgOwor5Lm+5p2/ID4ga2FucGFuXCA7CivlrZjlpJYgPiB6b25nYWlcIDsKK+S7pOWsoiA+IHJlaWpvdVwgOwor576O55qEID4gYml0ZWtpXCA7CivkvLblhKogPiByZWl5dXVcIDsKK+S5vuadryA+IGthbnBhaVwgOwor5Lq65oCnID4gamluc2VpXCA7CivkuZfmsJcgPiBub3Jpa2lcIDsKK+S4iueVqiA+IGpvdWJhblwgOwor54uX6IKJID4ga3VuaWt1XCA7CivpoqjmsLQgPiBmdXVzdWlcIDsKK+S5vuadkCA+IGthbnphaVwgOwor6K2c6KGoID4gZnVoeW91XCA7Civku5jlsZ4gPiBmdXpva3VcIDsKK+S4iueVjCA+IGpvdWthaVwgOwor5LiJ55WqID4gc2FuYmFuXCA7CivlrablnJIgPiBnYWt1ZW5cIDsKK+aXqOmFkiA+IHNoaXNodVwgOwor6KyZ6YGcID4ga2Vuc29uXCA7CivkuIrnlLAgPiBqb3VkZW5cIDsKK+S4ieeVjCA+IHNhbmdhaVwgOwor5aSc6be5ID4geW90YWthXCA7Civku7LlpI8gPiBjaHV1a2FcIDsKK+WuiOWLoiA+IHNodXNlaVwgOwor6LSI5ZGIID4gem91dGVpXCA7Civoq5bpoYwgPiByb25kYWlcIDsKK+S8tOWDpyA+IGJhbnNvdVwgOwor5Lya5ZCMID4ga2FpZG91XCA7CivkvJrlkIggPiBrYWlnb3VcIDsKK+eQhuWtpiA+IHJpZ2FrdVwgOwor5Ly65YCZID4gc2hpa291XCA7Civku6Tlqb8gPiByZWlzZWlcIDsKK+eQg+WutCA+IGt5dXVlblwgOwor5Lqk5oimID4ga291c2VuXCA7Civml6fpg70gPiBreXV1dG9cIDsKK+S8r+WFhCA+IGhha2tlaVwgOwor6LSI5Y+3ID4gem91Z291XCA7CivkuK3ngasgPiBjaHV1YmlcIDsKK+S8neWNmCA+IGRlbnRhblwgOwor5a6j5LydID4gc2VuZGVuXCA7CivmnKjmp78gPiBtdWt1Z2VcIDsKK+aWuemZoyA+IGhvdWppblwgOwor6LSL5Y2wID4gbmlzZWluXCA7Civku6TlqJggPiByZWlqb3VcIDsKK+iDjOS7uyA+IGhhaW5pblwgOwor57+75qGIID4gaG9uJydhblwgOwor546L5qeYID4gb3VzYW1hXCA7Civku7vlnLAgPiBuaW5jaGlcIDsKK+Wun+S9kyA+IGppdHRhaVwgOwor5LiA55aLID4gaXBwaWtpXCA7CivogIHmnaUgPiByb3VyYWlcIDsKK+eJqeizhyA+IGJ1c3NoaVwgOwor5LuW5a6XID4gdGFzaHV1XCA7Civml6bpgqMgPiBkYW4nJ25hXCA7Civlpb3phY0gPiBrb3VoYWlcIDsKK+iAgeadiSA+IHJvdXNhblwgOwor5Luk5aeJID4gcmVpc2hpXCA7Civku5XlrpggPiBzaGlrYW5cIDsKK+WujOWFqCA+IGthbnplblwgOwor5Lyd5YuVID4gZGVuZG91XCA7Civmlq3pnaIgPiBkYW5tZW5cIDsKK+S7pOWmuSA+IHJlaW1haVwgOwor5aSc6bOlID4geWFjaG91XCA7CivnjJvnnIEgPiBtb3VzZWlcIDsKK+S4gOeUuyA+IGlra2FrdVwgOwor5p+U5ZKMID4gbnl1dXdhXCA7Civml6npgIAgPiBzb3V0YWlcIDsKK+WumuS+iyA+IHRlaXJlaVwgOwor54++5a2YID4gZ2Vuem9uXCA7CivkubHmna0gPiByYW5ndWlcIDsKK+S8tOS+tiA+IGhhbnJ5b1wgOwor5Lqk5oSfID4ga291a2FuXCA7CivlrprkvY8gPiB0ZWlqdXVcIDsKK+iri+mhmCA+IHNlaWdhblwgOwor5a6I5YW1ID4gc2h1aGVpXCA7CivosqHlvaIgPiB6YWlrZWlcIDsKK+iDjOS4rSA+IHNlbmFrYVwgOwor54m56KixID4gdG9ra3lvXCA7Civoqr/ppqwgPiBjaG91YmFcIDsKK+WtmOWcqCA+IHNvbnphaVwgOwor6IOM5LiIID4gc2V0YWtlXCA7CivnibnoqJMgPiB0b2trdW5cIDsKK+S4jeeMnyA+IGZ1cnlvdVwgOwor54iG6Z+zID4gYmFrdW9uXCA7CivkuqTmg4UgPiBrb3Vqb3VcIDsKK+acrOahiCA+IGhvbicnYW5cIDsKK+S4i+eNhCA+IGdlZ29rdVwgOwor5LuK5bCaID4gaW1hbmFvXCA7CivmnKzmoKEgPiBob25rb3VcIDsKK+S6uuW3pSA+IGppbmtvdVwgOwor5Lmx5pq0ID4gcmFuYm91XCA7CivmnJvmqJMgPiBib3Vyb3VcIDsKK+S4ieeMvyA+IG1pemFydVwgOwor6KuW6ZmjID4gcm9uamluXCA7CivpoZXnj74gPiBrZW5nZW5cIDsKK+S8tuS6uiA+IHJlaWppblwgOwor5p2x5b6BID4gdG91c2VpXCA7CivmlpzpoLggPiBzaGFrZWlcIDsKK+ixquaUviA+IGdvdWhvdVwgOwor5LiA55CGID4gaWNoaXJpXCA7CivkuLvms5UgPiBzaHVob3VcIDsKK+isueiogCA+IGtpbmdlblwgOwor5pyx5pu4ID4gc2h1c2hvXCA7CivppKjlqIMgPiBrYW4nJ2FpXCA7CivniYfovKogPiBrYXRhd2FcIDsKK+acm+alvCA+IGJvdXJvdVwgOwor5a6J5YCkID4geWFzdW5lXCA7CivmnKzmnaUgPiBob25yYWlcIDsKK+aYjuiogCA+IG1laWdlblwgOwor57+w5p6XID4ga2FucmluXCA7Civku6TloIIgPiByZWlkb3VcIDsKK+aYjuinoyA+IG1laWthaVwgOwor5LiH54q2ID4gYmFuam91XCA7CivlrpfkuLsgPiBzb3VzaHVcIDsKK+mciumtgiA+IHJlaWtvblwgOwor5pys5pyoID4gbW90b2tpXCA7CivpnZLpioUgPiBzZWlkb3VcIDsKK+S4gOeNsiA+IGlra2FrdVwgOwor5pys5pybID4gaG9ubW91XCA7Civnvbnnl4UgPiByaWJ5b3VcIDsKK+mhmOeKtiA+IGdhbmpvdVwgOwor5pyr5pyrID4gc3VlenVlXCA7CivlrZDlmqIgPiBzaGlub3VcIDsKK+acrOabuCA+IGhvbnNob1wgOwor5pqX56SBID4gYW5zaG91XCA7CivmmI7oppYgPiBtZWlzaGlcIDsKK+aWnOmdoiA+IHNoYW1lblwgOwor54mH6LqrID4ga2F0YW1pXCA7CivkuozmiYsgPiBmdXRhdGVcIDsKK+irkumXhyA+IHJ5b3VhblwgOwor5Lmx5pWwID4gcmFuc3V1XCA7Civoqr/pn7MgPiBjaG91b25cIDsKK+aYpeialSA+IGhhcnVnb1wgOwor5aW96LuiID4ga291dGVuXCA7CivmnKjmnKsgPiBrb251cmVcIDsKK+iCjOWQiCA+IGhhZGFhaVwgOwor5Lqs5birID4ga2Vpc2hpXCA7CivnjovmnJ0gPiBvdWNob3VcIDsKK+mkqOWkliA+IGthbmdhaVwgOwor5LyB5Y+KID4ga2lreXV1XCA7CivorLnoo70gPiBraW5zZWlcIDsKK+eKrOiIjiA+IGtlbnNoYVwgOwor6Zu36bO0ID4gcmFpbWVpXCA7Civku7vlkb0gPiBuaW5tZWlcIDsKK+abuOazlSA+IHNob2hvdVwgOwor5LuA5a6dID4ganV1aG91XCA7CivkurrlsYsgPiBoaXRveWFcIDsKK+acpuacpyA+IG1vdXJvdVwgOwor5pym5pymID4gbW91bW91XCA7Civku6PlnLAgPiBkYWljaGlcIDsKK+S4rea0siA+IG5ha2FzdVwgOwor6LOb5ZiGID4gc2FudGFuXCA7Civml6XotrMgPiBoaWFzaGlcIDsKK+mdkumFuCA+IHNlaXNhblwgOwor5pac6Zm9ID4gc2hheW91XCA7CivlpKfpoqggPiBvb2themVcIDsKK+iruOmBkyA+IHNob2RvdVwgOwor5aWq6YKEID4gZGFra2FuXCA7CivkuK3ms6IgPiBjaHV1aGFcIDsKK+mfs+e3oCA+IG5lamltZVwgOwor6ZyK6aiTID4gcmVpZ2VuXCA7CivkuI3ngrogPiBmdXRhbWVcIDsKK+WkqemhlCA+IHRlbmdhblwgOwor54mp6KaLID4gbW9ub21pXCA7CivmnKzml6ggPiBob25zaGlcIDsKK+Wjrum9oiA+IHNvdXJlaVwgOwor5a2m5YuZID4gZ2FrdW11XCA7Civmm7/mrYwgPiBrYWV1dGFcIDsKK+WtmOWRvSA+IHpvbm1laVwgOwor5aWu6L+FID4gZnVuamluXCA7Civos63ljZogPiB0b2Jha3VcIDsKK+Wkp+mhmCA+IHRhaWdhblwgOwor5p2J5oi4ID4gc3VnaWRvXCA7Civosqflr5IgPiBoaW5rYW5cIDsKK+WqvuabsyA+IGFpYmlraVwgOwor5pyJ5qeYID4gYXJpeW91XCA7CivmnKzmlocgPiBob25tb25cIDsKK+S7tuWQjSA+IGtlbm1laVwgOwor5p2l5bqXID4gcmFpdGVuXCA7CivmnKzmlbAgPiBob25zdXVcIDsKK+aWp+mRvyA+IGZ1c2FrdVwgOwor5p2l5bm0ID4gcmFpbmVuXCA7CivnjJvnjaMgPiBtb3VqdXVcIDsKK+aWh+mhjCA+IGJ1bmRhaVwgOwor546L5pePID4gb3V6b2t1XCA7CivkvIHlioMgPiBraWtha3VcIDsKK+S6lOW+syA+IGdvdG9rdVwgOwor5LiJ54G9ID4gc2Fuc2FpXCA7Civlpb3otbAgPiBrb3Vzb3VcIDsKK+S4h+eCuSA+IG1hbnRlblwgOwor5LuK5aScID4ga29uJyd5YVwgOwor6aOv5bqXID4gaGFudGVuXCA7CivppIrlrZAgPiB5b3VzaGlcIDsKK+S4reawlyA+IGNodXVraVwgOwor6aGV54S2ID4ga2VuemVuXCA7Civku6Tll6MgPiByZWlzaGlcIDsKK+ismeitsiA+IGtlbmpvdVwgOwor5aOu6bqXID4gc291cmVpXCA7CivmnbHlsrggPiB0b3VnYW5cIDsKK+S8neS7pCA+IGRlbnJlaVwgOwor5LuP5aGUID4gYnV0dG91XCA7CivpnJzpm7AgPiBzb3VmdW5cIDsKK+iznuWRsyA+IHNob3VtaVwgOwor6aCt55ebID4genV0c3V1XCA7CivkuLvmqKkgPiBzaHVrZW5cIDsKK+mbt+mtmiA+IHJhaWd5b1wgOwor5LiH54GvID4gbWFuZG91XCA7CivogZblo4cgPiBzZWlkYW5cIDsKK+iyoeWunSA+IHphaWhvdVwgOwor6Kyb6KuHID4ga291ZGFuXCA7CivlpJzpoqggPiB5b2themVcIDsKK+iyquWpqiA+IGRvbnJhblwgOwor54yu54GvID4ga2VudG91XCA7CivkvJDlgJIgPiBiYXR0b3VcIDsKK+ePvuWcsCA+IGdlbmNoaVwgOwor6IKi5L2TID4gc2hpdGFpXCA7CivnjJvniqwgPiBtb3VrZW5cIDsKK+abtOatoyA+IGtvdXNlaVwgOwor5aSp6Zu3ID4gdGVucmFpXCA7CivmnJ3mmakgPiBhc2FiYW5cIDsKK+ePvuWcqCA+IGdlbnphaVwgOwor5LuW5Zu9ID4gdGFrb2t1XCA7CivmnJfmnJcgPiByb3Vyb3VcIDsKK+S7ruWQjSA+IGtlbXlvdVwgOwor6aKo5pmvID4gZnV1a2VpXCA7Civoq5bpi5IgPiByb25wb3VcIDsKK+aWh+mdoiA+IGJ1bm1lblwgOwor5LyO5YCGID4gZ2lyeW91XCA7CivppIPlrZAgPiBneW91emFcIDsKK+S6leW6lSA+IHNlaXRlaVwgOwor5a2m5YWEID4gZ2Fra2VpXCA7Civniq/nvaogPiBoYW56YWlcIDsKK+Wkp+mboyA+IHRhaW5hblwgOwor5Lit5qynID4gY2h1dW91XCA7CivkvJ3kuJYgPiBkZW5zZWlcIDsKK+izm+WQjCA+IHNhbmRvdVwgOwor5LiN5ryBID4gZnVyeW91XCA7CivlpKrpmb0gPiB0YWl5b3VcIDsKK+WkqemamyA+IHRlbnNhaVwgOwor5pq054q2ID4gYm91am91XCA7Civml4vou6IgPiBzZW50ZW5cIDsKK+WkmumhjSA+IHRhZ2FrdVwgOwor5aSp6Zm6ID4gdGVua2VuXCA7CivogZbloIIgPiBzZWlkb3VcIDsKK+iAgeaJiyA+IHJvdXNodVwgOwor5Lya5Li7ID4ga2Fpc2h1XCA7CivmnbHlrq4gPiB0b3VndXVcIDsKK+adseWunSA+IHRvdWhvdVwgOwor6IGW5Z+fID4gc2VpaWtpXCA7CivlpKfpmoogPiBkYWl0YWlcIDsKK+S7o+WTgSA+IGRhaWhpblwgOwor5pyI5qGCID4gZ2Vra2VpXCA7CivpoJPnn6UgPiB0b25jaGlcIDsKK+iAgeaIkCA+IHJvdXNlaVwgOwor6ICQ5oCnID4gdGFpc2VpXCA7CivmlbXpo5sgPiB0ZWtpaGlcIDsKK+mghuekvCA+IGp1bnJlaVwgOwor5LmX5pWwID4gam91c3V1XCA7CivlpJXpoZQgPiB5dXVnYW9cIDsKK+S5seaIpiA+IHJhbnNlblwgOwor5pmC57+SID4gamlzaHV1XCA7CivogIPmha4gPiBrb3VyeW9cIDsKK+aWremHkSA+IGRhbmtpblwgOwor5LiN5risID4gZnVzb2t1XCA7Civku4vlnKggPiBrYWl6YWlcIDsKK+WkqumWpCA+IHRhaWtvdVwgOwor5pen6Kq8ID4ga3l1dWdpXCA7CivmlbTpoqggPiBzZWlmdXVcIDsKK+S7u+WFjSA+IG5pbm1lblwgOwor5a2Y5YiGID4gem9uYnVuXCA7Civku6TlkI0gPiByZWltZWlcIDsKK+mjsuWxiyA+IG5vbWl5YVwgOwor6IGW5ZywID4gc2VpY2hpXCA7CivkurrlpJYgPiBuaW5nYWlcIDsKK+aWp+mJniA+IGZ1ZXRzdVwgOwor5aSc6ZynID4geW9naXJpXCA7CivnjJvnhLYgPiBtb3V6ZW5cIDsKK+iBr+WQiCA+IHJlbmdvdVwgOwor5Lq65aOrID4gamluc2hpXCA7CivpnaLosowgPiBtZW5ib3VcIDsKK+iyqeWjsiA+IGhhbmJhaVwgOwor5Lm+5oCnID4ga2Fuc2VpXCA7CivkuLvmoLkgPiBzaHVrb25cIDsKK+Wkp+mWoiA+IG9vemVraVwgOwor5pen6KmgID4ga3l1dWVpXCA7Civku4rlm54gPiBrb25rYWlcIDsKK+aXpeiqjCA+IG5pc3NoaVwgOwor5pep6KiIID4gc291a2VpXCA7Civku6Plj4IgPiBkYWlzYW5cIDsKK+Wkp+mWgCA+IGRhaW1vblwgOwor5pys5ougID4gaG9ua3lvXCA7CivmnInmnJsgPiB5dXVib3VcIDsKK+eLoeefpSA+IGtvdWNoaVwgOwor6aOu5bGLID4gbm9taXlhXCA7CivmlbTpoJMgPiBzZWl0b25cIDsKK+aXp+iomCA+IGt5dXVraVwgOwor6Kqy6ZW3ID4ga2FjaG91XCA7CivlpoToqIAgPiBtb3VnZW5cIDsKK+iruOizoiA+IHNob2tlblwgOwor5pmp56iyID4gYmFudG91XCA7CivkupvlsJEgPiBzYXNob3VcIDsKK+S6oeWtkCA+IGJvdXNoaVwgOwor6LK05Zu9ID4ga2lrb2t1XCA7Civml4Xot68gPiB0YWJpamlcIDsKK+ixquW/qyA+IGdvdWthaVwgOwor5pel6KiIID4gbmlra2VpXCA7Civml6noposgPiBoYXlhbWlcIDsKK+mbu+mhlSA+IGRlbmtlblwgOwor6aSo5ZOhID4ga2FuJydpblwgOwor6LOi5YWEID4ga2Vua2VpXCA7CivlpJbpm7sgPiBnYWlkZW5cIDsKK+ePvuWToSA+IGdlbicnaW5cIDsKK+adv+WhgCA+IGl0YWJlaVwgOwor54mH6KiAID4gaGVuZ2VuXCA7CivkuqTlqr4gPiBrb3Vrb3VcIDsKK+S4i+a1gSA+IGthcnl1dVwgOwor572q54q2ID4gemFpam91XCA7Civml6fopo8gPiBreXV1a2lcIDsKK+aWr+mBkyA+IHNoaWRvdVwgOwor54++5ZOBID4gZ2VucGluXCA7CivnjqnlvIQgPiBnYW5yb3VcIDsKK+aUvum3uSA+IGhvdXlvdVwgOwor5a2m5LyaID4gZ2Fra2FpXCA7CivlpYnpgoQgPiBob3VrYW5cIDsKK+S4jeazgSA+IGZ1a3lvdVwgOwor5aWJ6YG3ID4gaG91c2VuXCA7CivoqpPpoZggPiBzZWlnYW5cIDsKK+acrOaHkCA+IGhvbmthaVwgOwor5Li55pyxID4gdGFuc2h1XCA7CivlpKfpkZEgPiB0YWlrYW5cIDsKK+S4uOacqCA+IG1hcnVraVwgOwor5a2m5LqLID4gZ2FrdWppXCA7CivmnIjml6YgPiBnZXR0YW5cIDsKK+WknOmVtyA+IHlvbmFnYVwgOwor5p2x5aSpID4gdG91dGVuXCA7CivlpYnpgIEgPiBob3Vzb3VcIDsKK+adseWkpyA+IHRvdWRhaVwgOwor6Z2i6KuHID4gbWVuZGFuXCA7CivlpYnov44gPiBob3VnZWlcIDsKK+abuOaelyA+IHNob3JpblwgOwor5aW46KiIID4ga2Fua2VpXCA7Civnh5Xpm4AgPiBlbmpha3VcIDsKK+acieaVsCA+IHl1dXN1dVwgOwor54u854u9ID4gcm91YmFpXCA7CivlqpLmn5MgPiBiYWlzZW5cIDsKK+e5gemWkSA+IGhhbmthblwgOwor5Luy5YCkID4gbmFrYW5lXCA7CivkuIrmsLQgPiBqb3VzdWlcIDsKK+iqmOmbuyA+IHl1dWRlblwgOwor5pmC57WmID4gamlreXV1XCA7Civpm4Tpto8gPiBvbmRvcmlcIDsKK+aZtOedgCA+IGhhcmVnaVwgOwor572w54K5ID4gYmF0dGVuXCA7CivkuqHlp4kgPiBib3VzaGlcIDsKK+Wkp+mOjCA+IG9vZ2FtYVwgOwor5Lqh5aa7ID4gYm91c2FpXCA7CivpnZLosYYgPiBhb21hbWVcIDsKK+iyp+WbsCA+IGhpbmtvblwgOwor5Luy5L+dID4gY2h1dWhvXCA7Civnj43lpYcgPiBjaGlua2lcIDsKK+isgOioiCA+IGJvdWtlaVwgOwor5Li75peoID4gc2h1c2hpXCA7CivkuqLlpa4gPiBrb3VmdW5cIDsKK+eJiOihjCA+IGhhbmtvdVwgOwor5aSn6Y2LID4gb29uYWJlXCA7CivmmrTmvKIgPiBib3VrYW5cIDsKK+S4iuautSA+IGpvdWRhblwgOwor5pyA5pepID4gbW9oYXlhXCA7Civpm7fpm7sgPiByYWlkZW5cIDsKK+S4h+awkSA+IGJhbm1pblwgOwor6ICB5buDID4gcm91aGFpXCA7Civku6TlhYQgPiByZWlrZWlcIDsKK+WnlOe4riA+IGlzaHVrdVwgOwor5LmX5omLID4gbm9yaXRlXCA7Civku4/lj4IgPiBidXNzYW5cIDsKK+aYh+iPryA+IHNob3VrYVwgOwor5LiA5rOKID4gaXBwYWt1XCA7Civoq7foq4wgPiBmdXVrYW5cIDsKK+S4u+aWhyA+IHNodWJ1blwgOwor6ZuE6bOlID4gb25kb3JpXCA7Civnj77li6IgPiBnZW5zZWlcIDsKK+iAgeW5vCA+IHJvdXlvdVwgOwor6Kqe6ZW3ID4gZ29jaG91XCA7CivlpZTotbAgPiBob25zb3VcIDsKK+iAgeW5tCA+IHJvdW5lblwgOwor5Lit5pyfID4gY2h1dWtpXCA7CivkuInmrbsgPiBzYW5zaGlcIDsKK+S7luWKmyA+IHRhcmlraVwgOwor5pys5oCnID4gaG9uc2VpXCA7Civku5jliYcgPiBmdXNva3VcIDsKK+e/u+W8hCA+IGhvbnJvdVwgOwor6LKh5ZujID4gemFpZGFuXCA7CivorJnomZogPiBrZW5reW9cIDsKK+S7o+WDpyA+IGRhaXNvdVwgOwor5LqI5a+pID4geW9zaGluXCA7CivkuLvmlLsgPiBzaHVrb3VcIDsKK+iqjOmdoiA+IHNoaW1lblwgOwor5LiH5q27ID4gYmFuc2hpXCA7CivogIHluKsgPiByb3VzaGlcIDsKK+S4h+atsyA+IG1hbnphaVwgOwor5a2Q5L6bID4ga29kb21vXCA7CivlrZjkuqEgPiBzb25ib3VcIDsKK+S6jOWtkCA+IGZ1dGFnb1wgOwor5LiK5qyEID4gam91cmFuXCA7Civku67kvZwgPiBrYXNha3VcIDsKK+mghueVqiA+IGp1bmJhblwgOwor6LOi5Lq6ID4ga2VuamluXCA7Civpm7Lpm4YgPiB1bnNodXVcIDsKK+irs+iqpiA+IGFuc2hvdVwgOwor6Zuy6ZuAID4gaGliYXJpXCA7Civnj77liY0gPiBnZW56ZW5cIDsKK+iAgeW3pyA+IHJvdWtvdVwgOwor5LuL5Y21ID4ga2FpcmFuXCA7CivlpKfpiYggPiBvb25hdGFcIDsKK+ipqemtgiA+IHNoaWtvblwgOwor5aWH6LmfID4ga2lzZWtpXCA7CivnvormsLQgPiB5b3VzdWlcIDsKK+e+pOajsiA+IGd1bnNlaVwgOwor6Zuj6aGMID4gbmFuZGFpXCA7CivlpKnph5EgPiB0ZW5raW5cIDsKK+acrOW9sSA+IGhvbicnZWlcIDsKK+iAkOWvkiA+IHRhaWthblwgOwor5aSp6YeNID4gdGVuanV1XCA7CivkuKbmnKggPiBuYW1pa2lcIDsKK+acrOW9kyA+IGhvbnRvdVwgOwor5pac6L66ID4gc2hhaGVuXCA7Civos6LkuLsgPiBrZW5zaHVcIDsKK+abuOaWjiA+IHNob3NhaVwgOwor576K5q+bID4geW91bW91XCA7CivlpKfph5EgPiB0YWlraW5cIDsKK+mdmeimsyA+IHNlaWthblwgOwor5aWH6LehID4ga2lzZWtpXCA7Civku4HlkJsgPiBqaW5rdW5cIDsKK+S4jeanmCA+IGJ1emFtYVwgOwor5Lq65ZOhID4gamluJydpblwgOwor5Lit5pelID4gbmFrYWJpXCA7CivmnKvlvJ8gPiBtYXR0ZWlcIDsKK+S6uuWTgSA+IGppbnBpblwgOwor5LiJ5qipID4gc2Fua2VuXCA7Civoq67oqaIgPiBzaGlqdW5cIDsKK+e4pumaiiA+IGp1dXRhaVwgOwor5LiA5qyhID4gaWNoaWppXCA7CivnhrHpoqggPiBuZXBwdXVcIDsKK+ixoeW1jCA+IHpvdWdhblwgOwor5aSn6YWUID4gdGFpc3VpXCA7CivkuIrmp5ggPiB1ZXphbWFcIDsKK+Wkp+mFkiA+IG9vemFrZVwgOwor5Lq65ZG9ID4gamlubWVpXCA7CivnuKbpmaMgPiBqdXVqaW5cIDsKK+WrgeW+oSA+IHlvbWVnb1wgOwor6LOe5LiOID4gc2hvdXlvXCA7CivmnJ3mgakgPiBjaG91b25cIDsKK+acrOW6lyA+IGhvbnRlblwgOwor6Zuy6ZaTID4ga3Vtb21hXCA7Civlp4vntYIgPiBzaGlqdXVcIDsKK+irluizmyA+IHJvbnNhblwgOwor5pu05pS5ID4ga291a2FpXCA7CivmlaLpl5ggPiBrYW50b3VcIDsKK+S6uuWQmyA+IGppbmt1blwgOwor54++5YOPID4gZ2Vuem91XCA7CivkurrlkI0gPiBqaW5tZWlcIDsKK+WkremAnSA+IHlvdXNlaVwgOwor5pWj6ZaLID4gc2Fua2FpXCA7Civku4/lhbggPiBidXR0ZW5cIDsKK+S4iealrSA+IHNhbmdvdVwgOwor6Kur6KiAID4ga2FuZ2VuXCA7Civku6Pku7sgPiBkYWluaW5cIDsKK+e+qOacmyA+IHNlbmJvdVwgOwor6Kmm6aiTID4gc2hpa2VuXCA7CivkuJbmn4QgPiB5b2dhcmFcIDsKK+S6uuWPoyA+IGppbmtvdVwgOwor6Kqe6YyyID4gZ29yb2t1XCA7CivmmJPogIUgPiBla2lzaGFcIDsKK+WkqemBkyA+IHRlbmRvdVwgOwor5Lq65Y+CID4gbmluamluXCA7CivlpKnpgY0gPiB0ZW5wZW5cIDsKK+WkqemBiyA+IHRlbicndW5cIDsKK+S4gOaouSA+IGljaGlqdVwgOwor5Luj5Lq6ID4gZGFpbmluXCA7Civku4rlhqwgPiBrb250b3VcIDsKK+S4iuajnyA+IGpvdXRvdVwgOwor5aSn6YGTID4gZGFpZG91XCA7Civpm6LpmpQgPiByaWtha3VcIDsKK+S7j+WDpyA+IGJ1c3NvdVwgOwor5aSa6YePID4gdGFyeW91XCA7Civml6XolK0gPiBoaWthZ2VcIDsKK+iBluWFuCA+IHNlaXRlblwgOwor5pq05rCRID4gYm91bWluXCA7Civpm6LpmbggPiByaXJpa3VcIDsKK+iAgeWusyA+IHJvdWdhaVwgOwor5paH6YG4ID4gYnVuc2VuXCA7CivkuIrmopMgPiBqb3VzaGlcIDsKK+acqOW3pSA+IG1va2tvdVwgOwor5Lmx5bCEID4gcmFuc2hhXCA7CivlpKnovrogPiB0ZXBwZW5cIDsKK+iyrOWLmSA+IHNla2ltdVwgOwor5paH6YGLID4gYnVuJyd1blwgOwor5peF6KOFID4gcnlvc291XCA7Civoq6boprMgPiB0ZWlrYW5cIDsKK+iAgeWtkCA+IHJvdXNoaVwgOwor6LGK5bm0ID4gaG91bmVuXCA7CivlpKfovrIgPiBkYWlub3VcIDsKK+aWueiogCA+IGhvdWdlblwgOwor5aWP6KuLID4gc291c2VpXCA7CivkuInmoYEgPiBtaWtldGFcIDsKK+acrOWztiA+IGhvbnRvdVwgOwor5Li75oimID4gc2h1c2VuXCA7CivogIHlrKIgPiByb3Vqb3VcIDsKK+iBluWDjyA+IHNlaXpvdVwgOwor5LiJ5qChID4gc2Fua291XCA7Civml4XooYwgPiByeW9rb3VcIDsKK+mbo+mWoiA+IG5hbmthblwgOwor5paw6KqeID4gc2hpbmdvXCA7CivlpKfovKogPiB0YWlyaW5cIDsKK+S4jeacvSA+IGZ1a3l1dVwgOwor5pS+6aGMID4gaG91ZGFpXCA7CivmnKzlsbEgPiBob256YW5cIDsKK+Wkqei7jSA+IHRlbmd1blwgOwor5LiJ5p6aID4gc2FubWFpXCA7Civmnb/liY0gPiBpdGFtYWVcIDsKK+ePvuS7oyA+IGdlbmRhaVwgOwor6aC75q27ID4gaGluc2hpXCA7Civnh5DpibEgPiByaW5rb3VcIDsKK+S7geWFhCA+IGppbmtlaVwgOwor5pys5bGLID4gaG9uJyd5YVwgOwor5LiN5pyNID4gZnVmdWt1XCA7Civpm7vpiLQgPiBkZW5yZWlcIDsKK+S4ieadvyA+IHNhbnBhblwgOwor6aGe5pysID4gcnVpaG9uXCA7Civlo7DploAgPiBzZWltb25cIDsKK+abmuaYpyA+IG1vdW1haVwgOwor54++5LuKID4gZ2Vua29uXCA7CivpoqjluK8gPiBmdXV0YWlcIDsKK+S6q+WPlyA+IGt5b3VqdVwgOwor6aKo5birID4gZnV1c2hpXCA7Civku5nkuLkgPiBzZW50YW5cIDsKK+S6uuWHuiA+IGhpdG9kZVwgOwor6aGe5pu4ID4gcnVpc2hvXCA7CivmnKzlsIogPiBob256b25cIDsKK+S4iuacnyA+IGthbWlraVwgOwor54ax6ZeYID4gbmV0dG91XCA7Civnj43lkbMgPiBjaGlubWlcIDsKK+abuOaIvyA+IHNob2JvdVwgOwor5LiA5qGIID4gaWNoaWFuXCA7CivkuInmnKwgPiBzYW5ib25cIDsKK+mkiuWIhiA+IHlvdWJ1blwgOwor5pyJ5oCnID4geXV1c2VpXCA7CivkuIfmnaUgPiBiYW5yYWlcIDsKK+ixquWloiA+IGdvdXNoYVwgOwor5pS56aGMID4ga2FpZGFpXCA7CivkuIrmm7ggPiBqb3VzaG9cIDsKK+acqOWxkSA+IGtpa3V6dVwgOwor5LuP5LyaID4gYnV0c3VlXCA7CivppKjkuLsgPiBrYW5zaHVcIDsKK+S4ieabuSA+IHNhbnNvdVwgOwor5LiJ5pu0ID4gc2Fua291XCA7CivnjK7mna8gPiBrZW5wYWlcIDsKK+S6oeWRvSA+IGJvdW1laVwgOwor5p2x5Y2KID4gdG91aGFuXCA7CivmlYXpmpwgPiBrb3Nob3VcIDsKK+aWreiogCA+IGRhbmdlblwgOwor5aSW6YGKID4gZ2FpeXV1XCA7CivmnInlv5cgPiB5dXVzaGlcIDsKK+acrOWumCA+IGhvbmthblwgOwor546J5bGLID4gdGFtYXlhXCA7CivkuqTlkIggPiBrb3Vnb3VcIDsKK+aWsOimjyA+IHNoaW5raVwgOwor6ICB5aa7ID4gcm91c2FpXCA7CivnjovlsIYgPiBvdXNob3VcIDsKK+S7leS4iiA+IHNoaWFnZVwgOwor6LGq5aOuID4gZ291c291XCA7CivpoZjmnJsgPiBnYW5tb3VcIDsKK+eIrOiZqyA+IGhhY2h1dVwgOwor6IGW5L2TID4gc2VpdGFpXCA7CivnjK7mnKwgPiBrZW5wb25cIDsKK+iAleWcsCA+IGtvdWNoaVwgOwor5Lit5omLID4gbmFrYXRlXCA7CivkuIrmmbogPiBqb3VjaGlcIDsKK+acgOaCqiA+IHNhaWFrdVwgOwor54eQ6YW4ID4gcmluc2FuXCA7Civni6zmvJQgPiBkb2t1ZW5cIDsKK+WkseiyuyA+IHNoaXBwaVwgOwor5Lqk5Y+LID4ga291eXV1XCA7CivpoZjmm7ggPiBnYW5zaG9cIDsKK+acq+WtqyA+IG1hc3NvblwgOwor5Lqh5ZCbID4gYm91a3VuXCA7CivorabnoLIgPiBrZWlob3VcIDsKK+aal+a1gSA+IGFucnl1dVwgOwor6IGW5LydID4gc2VpZGVuXCA7CivmnKvlrZAgPiBtYXNzaGlcIDsKK+S4ieaZryA+IHNhbmtlaVwgOwor546L5a6uID4gb3VreXV1XCA7Civlq4zlq4wgPiBpeWFpeWFcIDsKK+aUvumbuyA+IGhvdWRlblwgOwor6ZuM6ZuEID4gc2hpeXV1XCA7CivmnInlvaIgPiB5dXVrZWlcIDsKK+e/oOW1kCA+IHN1aXJhblwgOwor6aOf5ZmoID4gc2hva2tpXCA7CivlpKfotrMgPiBvb2FzaGlcIDsKK+iBluS7oyA+IHNlaWRhaVwgOwor5Lqh5Y+LID4gYm91eXV1XCA7Civnvo7mnI0gPiBiaWZ1a3VcIDsKK+S7iuS7iiA+IGltYWltYVwgOwor5LiJ5pinID4gc2FubWFpXCA7CivkuIDmnLYgPiBpY2hpZGFcIDsKK+S7iuS6uiA+IGtvbmppblwgOwor6IGW5Lq6ID4gc2VpamluXCA7CivnjaPmgKcgPiBqdXVzZWlcIDsKK+mbsumHjyA+IHVucnlvdVwgOwor5LiK5pesID4gam91anVuXCA7CivlpKfotaYgPiB0YWlzaGFcIDsKK+S4iuaXqCA+IGpvdXNoaVwgOwor5LiA5pydID4gaXRjaG91XCA7CivlpKLot68gPiB5dW1lamlcIDsKK+S4gOacjSA+IGlwcHVrdVwgOwor5aWH6KWyID4ga2lzaHV1XCA7CivkuI3mlbUgPiBmdXRla2lcIDsKK+irh+irliA+IGRhbnJvblwgOwor5Lih5ouzID4gamFua2VuXCA7CivkuIrmlrkgPiBqb3Vob3VcIDsKK+eOieWtkCA+IHRhbWFnb1wgOwor6aOv5Y+wID4gaGFuZGFpXCA7Civml6XoiKogPiBuaWtrb3VcIDsKK+aYjue0sCA+IG1laXNhaVwgOwor576I5p2fID4ga2lzb2t1XCA7Civnvbfmpa0gPiBoaWd5b3VcIDsKK+S6uuWBjyA+IG5pbmJlblwgOwor5aSW6LyqID4gZ2FpcmluXCA7CivlpKnos5wgPiB0ZW5zaGlcIDsKK+S4ieaWuSA+IHNhbnBvdVwgOwor6Z2S6JeNID4gc2VpcmFuXCA7CivlpKnos4cgPiB0ZW5zaGlcIDsKK+mfsueJqSA+IGFlbW9ub1wgOwor5LiK5paHID4gam91YnVuXCA7CivkuLvlvpMgPiBzaHVqdXVcIDsKK+aWreijgSA+IGRhbnNhaVwgOwor5Lq65YCrID4gamlucmluXCA7Civoq4voqJMgPiBzZWlrdW5cIDsKK+eMpeacrCA+IHdhaWhvblwgOwor5Lm+5Z2kID4ga2Vua29uXCA7CivkubHlo7IgPiByYW5iYWlcIDsKK+S4ieaWhyA+IHNhbm1vblwgOwor5aSn6LOiID4gdGFpa2VuXCA7CivkuIfmlrkgPiBiYW5wb3VcIDsKK+WkiemBtyA+IGhlbnNlblwgOwor6aGM5p2QID4gZGFpemFpXCA7Civku4rkuIogPiBraW5qb3VcIDsKK+iBluS4iiA+IHNlaWpvdVwgOwor5aSW6LuKID4gZ2Fpc2hhXCA7Civpm7vpgIEgPiBkZW5zb3VcIDsKK+eOhOWtqyA+IGdlbnNvblwgOwor5pS76ZiyID4ga291Ym91XCA7CivkuKHmiYsgPiByeW91dGVcIDsKK+S4g+aXpSA+IG5hbm9rYVwgOwor5pat6KGMID4gZGFua291XCA7CivmnJ3lrrYgPiBjaG91a2FcIDsKK+WkiemAoCA+IGhlbnpvdVwgOwor6aGY5paHID4gZ2FubW9uXCA7CivmnKzlp5MgPiBob25zZWlcIDsKK+S4gOaYqCA+IGlzc2FrdVwgOwor5aWJ6KGMID4gYnVneW91XCA7CivosqDlgrcgPiBmdXNob3VcIDsKK+S7geS6uiA+IGppbmppblwgOwor5pys5aa7ID4gaG9uc2FpXCA7CivpoqjlrrMgPiBmdXVnYWlcIDsKK+WrieWmrCA+IHNoaXR0b1wgOwor6Kyd572qID4gc2hhemFpXCA7CivnjJ/mnJ8gPiByeW91a2lcIDsKK+S6uuS9kyA+IG5pbnRlaVwgOwor5pel6ISaID4gaGlhc2hpXCA7CivmlofosaogPiBidW5nb3VcIDsKK+S4gOaWsCA+IGlzc2hpblwgOwor5Li75bm5ID4gc2h1a2FuXCA7Civmlr3olqwgPiBzZXlha3VcIDsKK+eLrOazsyA+IGRva3VlaVwgOwor5pac6KaWID4gc2hhc2hpXCA7CivlpKnorbQgPiB0ZW5rZW5cIDsKK+aVsOi7kiA+IHN1dWtlblwgOwor5aSp6K2mID4gdGVua2VpXCA7Civoqrnoq6cgPiBoYWlrYWlcIDsKK+e9qualrSA+IHphaWdvdVwgOwor5pSv6ZqKID4gc2hpdGFpXCA7Civml6nogIEgPiBzb3Vyb3VcIDsKK+mbu+i7iiA+IGRlbnNoYVwgOwor542j5bivID4ganV1dGFpXCA7CivkuIDmlKsgPiBpa2tha3VcIDsKK+S4u+W4hiA+IHNodWhhblwgOwor6aGe5o6oID4gcnVpc3VpXCA7CivmmI7nrZQgPiBtZWl0b3VcIDsKK+S4iuaPkCA+IGpvdXRlaVwgOwor57ea6aaZID4gc2Vua291XCA7CivlpInou6IgPiBoZW50ZW5cIDsKK+S4gOaTsiA+IGl0dGVraVwgOwor5LiK5o6yID4gam91a2VpXCA7CivmnaXlhqYgPiByYWlrb3VcIDsKK+eMm+aakSA+IG1vdXNob1wgOwor6Ku46Iq4ID4gc2hvZ2VpXCA7CivkuqHlhYQgPiBib3VrZWlcIDsKK+S6iOWRiiA+IHlva29rdVwgOwor5LiN5oyvID4gZnVzaGluXCA7Civmm7jlupcgPiBzaG90ZW5cIDsKK+S6uuS4liA+IGppbnNlaVwgOwor5pys5aGBID4gaG9ucnVpXCA7CivosqfkuY8gPiBiaW5ib3VcIDsKK+adpeWFiSA+IHJhaWtvdVwgOwor5aSW6LOHID4gZ2Fpc2hpXCA7Civnh7voo70gPiBrdW5zZWlcIDsKK+miqOWnvyA+IGZ1dXNoaVwgOwor6Zui6YO3ID4gcmlreW91XCA7CivmnKzloIIgPiBob25kb3VcIDsKK+S5neWkjyA+IGt5dXVrYVwgOwor6Z2S6I2JID4gYW9rdXNhXCA7Civoq7joiKwgPiBzaG9oYW5cIDsKK+WkluiyjCA+IGdhaWJvdVwgOwor5pei57+SID4ga2lzaHV1XCA7CivkuK3luqcgPiBjaHV1emFcIDsKK+eKrOeMvyA+IGtlbicnZW5cIDsKK+S4u+WzsCA+IHNodWhvdVwgOwor5LiN5om/ID4gZnVzaG91XCA7CivnvbDmna8gPiBiYXBwYWlcIDsKK+mguOacqCA+IGt1YmlraVwgOwor5LiJ5oudID4gc2FucGFpXCA7Civlppbnsr4gPiB5b3VzZWlcIDsKK+S5meWknCA+IG90c3V5YVwgOwor6aCT5q27ID4gdG9uc2hpXCA7CivmnInlrrMgPiB5dXVnYWlcIDsKK+e/kuWtlyA+IHNodXVqaVwgOwor5aSn6KiIID4gdGFpa2VpXCA7CivmmKXnnYAgPiBoYXJ1Z2lcIDsKK+S4gOaOrCA+IGlra2lrdVwgOwor57eo6ZqKID4gaGVudGFpXCA7Civkuq3kuq0gPiB0ZWl0ZWlcIDsKK+WkqeimpyA+IHRlbnJhblwgOwor6Kqt6KqmID4gZG9rdWp1XCA7CivpoIbms5UgPiBqdW5wb3VcIDsKK+S6rOS6uiA+IGtlaWppblwgOwor5pWX6YCAID4gaGFpdGFpXCA7CivnjJvmlLsgPiBtb3Vrb3VcIDsKK+Wkp+imsyA+IHRhaWthblwgOwor5LqM5YmyID4gbml3YXJpXCA7CivmnKjlnosgPiBraWdhdGFcIDsKK+S4ieaJjSA+IHNhbnNhaVwgOwor5pyb5aSWID4gYm91Z2FpXCA7CivkuK3lt54gPiBuYWthc3VcIDsKK+e+qeW/gyA+IGdpc2hpblwgOwor5aSn6KaBID4gdGFpeW91XCA7CivkuIDmjLogPiBpdGNob3VcIDsKK+aaruaYpSA+IGJvc2h1blwgOwor5Li75bCOID4gc2h1ZG91XCA7CivlqK/mpb0gPiBnb3Jha3VcIDsKK+S6reS4uyA+IHRlaXNodVwgOwor5LiH5omNID4gbWFuemFpXCA7CivmmrTmlL8gPiBib3VzZWlcIDsKK+iqpOisrCA+IGdvYnl1dVwgOwor5pen57iBID4ga3l1dWVuXCA7CivkuoDljZwgPiBraWJva3VcIDsKK+iqreinoyA+IGRva2thaVwgOwor5Li75a6wID4gc2h1c2FpXCA7Civnjovlm70gPiBvdWtva3VcIDsKK+WkmuiqrSA+IHRhZG9rdVwgOwor6aKo5aG1ID4gZnV1amluXCA7Civlo6vpgZMgPiBzaGlkb3VcIDsKK+mgjOatjCA+IHNob3VrYVwgOwor5Lqk5LujID4ga291dGFpXCA7CivkuZfloLQgPiBub3JpYmFcIDsKK+adseS4iiA+IHRvdWpvdVwgOwor5aSi6KaLID4geXVtZW1pXCA7CivkuKHluqYgPiByeW91ZG9cIDsKK+WkieiyjCA+IGhlbmJvdVwgOwor6aC75pWwID4gaGluc3V1XCA7CivoqqToqq0gPiBnb2Rva3VcIDsKK+S4gOaKiiA+IGljaGl3YVwgOwor6aCt5pu4ID4gdG91c2hvXCA7CivmmabmuIsgPiBrYWlqdXVcIDsKK+S4jeaDkSA+IGZ1d2FrdVwgOwor54+N5LqLID4gY2hpbmppXCA7CivmlZfou40gPiBoYWlndW5cIDsKK+adpeS8miA+IHJhaWthaVwgOwor5LiA5omTID4gaWNoaWRhXCA7CivmnaHkvosgPiBqb3VyZWlcIDsKK+S4gOaJiyA+IGhpdG90ZVwgOwor5p2l5Lu7ID4gcmFpbmluXCA7Civmmbrmra8gPiBjaGlzaGlcIDsKK+abvuWtqyA+IGhpbWFnb1wgOwor6Kqk6Ki6ID4gZ29zaGluXCA7CivoqqToqLMgPiBnb3lha3VcIDsKK+abveWtqyA+IGhpbWFnb1wgOwor57im6LWwID4ganV1c291XCA7CivmnKzllrYgPiBob24nJ2VpXCA7Civml6XntYwgPiBuaWtrZWlcIDsKK+acl+WgsSA+IHJvdWhvdVwgOwor5aSa6KeSID4gdGFrYWt1XCA7CivkuIfmhJ8gPiBiYW5rYW5cIDsKK+WliOiQvSA+IG5hcmFrdVwgOwor5aao56KNID4gYm91Z2FpXCA7Civoqp7oqr8gPiBnb2Nob3VcIDsKK+WknOilsiA+IHlhc2h1dVwgOwor54qg54mbID4gZ2lneXV1XCA7Civosarli6IgPiBnb3VzZWlcIDsKK+S4jeaApSA+IGZ1a3l1dVwgOwor5pel57O7ID4gbmlra2VpXCA7CivmmKXnlLsgPiBzaHVuZ2FcIDsKK+adoeS7tiA+IGpvdWtlblwgOwor6ZuF6YePID4gZ2FyeW91XCA7CivmnaHku6QgPiBqb3VyZWlcIDsKK+ixquWLhyA+IGdvdXl1dVwgOwor5pWj6LKhID4gc2FuemFpXCA7CivnhpTpipEgPiB5b3VzZW5cIDsKK+S4jeW/oCA+IGZ1Y2h1dVwgOwor5pei57SEID4ga2l5YWt1XCA7CivlpJboprMgPiBnYWlrYW5cIDsKK+maj+mghiA+IHp1aWp1blwgOwor5p2l5LiWID4gcmFpc2VpXCA7CivnuKbosqsgPiBqdXVrYW5cIDsKK+S4jeW+syA+IGZ1dG9rdVwgOwor57eR6ZuoID4gcnlva3V1XCA7CivmnKzlk6EgPiBob24nJ2luXCA7Civpm7voq4sgPiBkZW5zZWlcIDsKK+WkluimiyA+IHNvdG9taVwgOwor5LiJ5oCdID4gc2Fuc2hpXCA7CivmmI/nnaEgPiBrb25zdWlcIDsKK+ipqemBuCA+IHNoaXNlblwgOwor6Z2i57mLID4gb21vZ2FpXCA7CivpmpvpmZAgPiBzYWlnZW5cIDsKK+aWsOiKvSA+IHNoaW5tZVwgOwor5pyJ5aOwID4geXV1c2VpXCA7CivkubPljJYgPiBueXV1a2FcIDsKK+aVl+i1sCA+IGhhaXNvdVwgOwor5pS/6YGTID4gc2VpZG91XCA7CivmlbDoqZ4gPiBzdXVzaGlcIDsKK+ioqumfkyA+IGhvdWthblwgOwor5piO55y4ID4gbWVpYm91XCA7CivpoK3mlbAgPiB0b3VzdXVcIDsKK+aatOaMmSA+IGJvdWt5b1wgOwor542j5aemID4ganV1a2FuXCA7CivpmpTpm6IgPiBrYWt1cmlcIDsKK+acrOWRvSA+IGhvbm1laVwgOwor6aGe5b2iID4gcnVpa2VpXCA7CivkuK3lrZAgPiBuYWthZ29cIDsKK+iAgeWKnyA+IHJvdWtvdVwgOwor5puz5a2QID4gaGlraWtvXCA7CivlpKnompUgPiB0ZW5zYW5cIDsKK+aUvumAgSA+IGhvdXNvdVwgOwor5aSq6JmaID4gdGFpa3lvXCA7CivlpJboo4UgPiBnYWlzb3VcIDsKK+acrOWQjSA+IGhvbm1laVwgOwor5pS56YG4ID4ga2Fpc2VuXCA7CivkuIrlvKYgPiBqb3VnZW5cIDsKK+Wls+e1piA+IGpva3l1dVwgOwor6Zu76KejID4gZGVua2FpXCA7CivkuInlvKYgPiBzYW5nZW5cIDsKK+e9ruaPmyA+IGNoaWthblwgOwor6KqT6KmeID4gc2Vpc2hpXCA7CivkuozkvLggPiBuaXNoaW5cIDsKK+aciOWgsSA+IGdlcHBvdVwgOwor5pyA5aSnID4gc2FpZGFpXCA7Civnh7vokrggPiBrdW5qb3VcIDsKK+S6keS6kSA+IHVuJydudW5cIDsKK+mamemWkyA+IHN1a2ltYVwgOwor5pyA5aSWID4gc2FpZ2FpXCA7CivlqablvrMgPiBmdXRva3VcIDsKK+aatOaIuyA+IGJvdXJlaVwgOwor5pS56YCgID4ga2Fpem91XCA7CivlpKfomY4gPiBvb2RvcmFcIDsKK+mZtemnlSA+IHJ5b3VnYVwgOwor5aOy6LK3ID4gYmFpYmFpXCA7CivmlK/phY0gPiBzaGloYWlcIDsKK+S4puWtmCA+IGhlaXpvblwgOwor5Li45aSqID4gbWFydXRhXCA7CivmnZHkvJogPiBzb25rYWlcIDsKK+e+juW+syA+IGJpdG9rdVwgOwor5pyq5Y+OID4gbWlzaHV1XCA7CivkuIDlv5wgPiBpY2hpb3VcIDsKK+ipoOmAsiA+IGVpc2hpblwgOwor576k5bO2ID4gZ3VudG91XCA7CivoqpPoqIAgPiBzZWlnZW5cIDsKK+e+pOWzsCA+IGd1bnBvdVwgOwor5pyN5ZywID4gZnVrdWppXCA7CivorJ3npLwgPiBzaGFyZWlcIDsKK+S4gOW/gyA+IGlzc2hpblwgOwor5pyo5Y+iID4ga29tdXJhXCA7CivkuKHlrrYgPiByeW91a2VcIDsKK+S4gOW+syA+IGl0dG9rdVwgOwor5LqM5Lq6ID4gZnV0YXJpXCA7CivogIHlhbUgPiByb3VoZWlcIDsKK+eLguawlyA+IGt5b3VraVwgOwor5LiA5b6XID4gaXR0b2t1XCA7Civnt4/ploAgPiBzb3Vtb25cIDsKK+iAgeWFrCA+IHJvdWtvdVwgOwor54mH56uvID4ga2F0YXdhXCA7CivnjYTlsYsgPiBnb2t1eWFcIDsKK+ism+ekviA+IGtvdXNoYVwgOwor5LiA5b6AID4gaWNoaW91XCA7CivpoIzmoIQgPiBzaG91ZWlcIDsKK+eFjumkhSA+IHNlbmJlaVwgOwor5LiK5bivID4gdXdhb2JpXCA7Civpm5HouI8gPiB6YXR0b3VcIDsKK+abtOWniyA+IGtvdXNoaVwgOwor5paH6Je7ID4gYnVuc291XCA7CivkuIrluJ0gPiBqb3V0ZWlcIDsKK+iAgeWEqiA+IHJvdXl1dVwgOwor54ax6LObID4gbmVzc2FuXCA7CivmlZnorbcgPiBreW91Z29cIDsKK+S5s+WFkCA+IG55dXVqaVwgOwor5LiA5by1ID4gaXRjaG91XCA7CivkuIrlt7sgPiBqb3VrYW5cIDsKK+aatOaFoiA+IGJvdW1hblwgOwor5LiK5bezID4gam91c2hpXCA7CivnvqTlsYUgPiBndW5reW9cIDsKK+e6j+e2vyA+IHRlbm1lblwgOwor5aq+5ZCIID4ga291Z291XCA7CivogIHlg6cgPiByb3Vzb3VcIDsKK+S6ieS5sSA+IHNvdXJhblwgOwor54yb5oKqID4gbW91YWt1XCA7CivlpY/ogZ4gPiBzb3Vtb25cIDsKK+Wkp+iUtSA+IG9va3VyYVwgOwor5aSJ6KOFID4gaGVuc291XCA7CivkuIflt7sgPiBtYW5nYW5cIDsKK+mgk+aZuiA+IHRvbmNoaVwgOwor54uC5q2MID4ga3lvdWthXCA7Civml6XnqIsgPiBuaXR0ZWlcIDsKK+Wnpua3qyA+IGthbicnaW5cIDsKK+S4geW6piA+IGNob3Vkb1wgOwor5aSp6JOLID4gdGVuZ2FpXCA7CivmlZnoq60gPiBreW91eXVcIDsKK+eNheWtkCA+IHNoaXNoaVwgOwor5LiA5bqnID4gaWNoaXphXCA7CivkuK3lpK4gPiBjaHV1b3VcIDsKK+Wlj+iAhSA+IHNvdXNoYVwgOwor5LiB5bm0ID4gdGVpbmVuXCA7CivkuZflkIggPiBub3JpYWlcIDsKK+mfs+aomSA+IG9ucHlvdVwgOwor5pWj6KaLID4gc2Fua2VuXCA7CivkuZflj7cgPiBqb3Vnb3VcIDsKK+aatOaCqiA+IGJvdWFrdVwgOwor5pys5YidID4gaG9uc2hvXCA7CivpoqjlkJEgPiBmdXVrb3VcIDsKK+ipqei2oyA+IHNoaXNodVwgOwor5pys5YiGID4gaG9uYnVuXCA7CivmlZHorbcgPiBreXV1Z29cIDsKK+e4puimpyA+IGp1dXJhblwgOwor5LiA5bmFID4gaXBwdWt1XCA7CivogJDkuY8gPiB0YWlib3VcIDsKK+acjeWWqiA+IGZ1a3Vtb1wgOwor5pyo5YmjID4gYm9ra2VuXCA7CivnuKvoo70gPiBob3VzZWlcIDsKK+S4gOW4rSA+IGlzc2VraVwgOwor5aSn6JGsID4gdGFpc291XCA7CivlpKfokZcgPiB0YWljaG9cIDsKK+aTrOmdqSA+IGdpa2FrdVwgOwor5LiW5a2QID4gc2Vpc2hpXCA7Civoq5bogIUgPiByb25zaGFcIDsKK+irluiAgyA+IHJvbmtvdVwgOwor6Z+z5qW9ID4gb25nYWt1XCA7CivmnJflkJ8gPiByb3VnaW5cIDsKK+mbquimiyA+IHl1a2ltaVwgOwor54mp55SjID4gYnVzc2FuXCA7CivkubHlgKsgPiByYW5yaW5cIDsKK+mbsuihqCA+IHVucHlvdVwgOwor54mb55quID4gZ3l1dWhpXCA7CivkuIrlsaQgPiBqb3Vzb3VcIDsKK+mbo+iokyA+IG5hbmt1blwgOwor5Lmz5L6hID4gbnl1dWthXCA7CivkuI3lr6kgPiBmdXNoaW5cIDsKK+e/u+WAkiA+IGhvbnRvdVwgOwor6ICB5L2TID4gcm91dGFpXCA7Civpmbjpm6IgPiByaWt1cmlcIDsKK+aToemgrSA+IHRhaXRvdVwgOwor5aWH57+SID4ga2lzaHV1XCA7Civpm6Pop6MgPiBuYW5rYWlcIDsKK+aWree9qiA+IGRhbnphaVwgOwor6KiT6Zu7ID4ga3VuZGVuXCA7CivniaLnlaogPiByb3ViYW5cIDsKK+aZgua1gSA+IGppcnl1dVwgOwor5pas572qID4gemFuemFpXCA7Civml4XnsaAgPiBoYXRhZ29cIDsKK+aVouihjCA+IGthbmtvdVwgOwor6LWk44CFID4gYWthYWthXCA7CivmmbTmnJcgPiBzZWlyb3VcIDsKK+S4ieWwgSA+IHNhbnB1dVwgOwor54ax6KqgID4gbmVzc2VpXCA7CivkuInlr7ggPiBzYW56dW5cIDsKK+S4jeWtpiA+IGZ1Z2FrdVwgOwor5LiH5bCLID4gYmFuamluXCA7CivogIHkurogPiByb3VqaW5cIDsKK+eMtuWtkCA+IHl1dXNoaVwgOwor5pm05puHID4gc2VpZG9uXCA7CivkuIrlrpggPiBqb3VrYW5cIDsKK+S4ieWunSA+IHNhbnBvdVwgOwor6aKo5YmNID4gZnV1emVuXCA7CivpmaPpoqggPiBqaW5wdXVcIDsKK+eOhOWGrCA+IGdlbnRvdVwgOwor6ZuG6LKoID4gc2h1dWthXCA7CivnjoflhYggPiBzb3NzZW5cIDsKK+miqOWIuiA+IGZ1dXNoaVwgOwor6Zqn6YGTID4gc3VpZG91XCA7Civlo67oprMgPiBzb3VrYW5cIDsKK+acgOWWhCA+IHNhaXplblwgOwor572q5oKqID4gemFpYWt1XCA7CivkuIflrp0gPiBiYW5wb3VcIDsKK+aaluaIvyA+IGRhbmJvdVwgOwor5pWs6JmUID4ga2Vpa2VuXCA7CivpmqPpgqYgPiByaW5wb3VcIDsKK+S5seS6pCA+IHJhbmtvdVwgOwor6ICB5LitID4gcm91anV1XCA7CivmnKzkv7ggPiBob25wb3VcIDsKK+Wls+elniA+IG1lZ2FtaVwgOwor54qs5q2vID4ga2Vuc2hpXCA7CivpnZLnrYsgPiBhb3N1amlcIDsKK+iruOeoriA+IHNob3NodVwgOwor6Zmj6aCtID4gamludG91XCA7CivpoL3lu4MgPiB0YWloYWlcIDsKK+acieWQjSA+IHl1dW1laVwgOwor5pyL5Y+LID4gaG91eXV1XCA7CivmlofoirggPiBidW5nZWlcIDsKK+mZsOmZvSA+IG9uJyd5b3VcIDsKK+acieWPuCA+IHl1dXNoaVwgOwor5pyJ5Y+yID4geXV1c2hpXCA7CivoqbPoqJggPiBzaG91a2lcIDsKK+S4geWvpyA+IHRlaW5laVwgOwor5LiA5bCGID4gaXNzaG91XCA7CivkuIDlr74gPiBpdHRzdWlcIDsKK+e+qeWhviA+IGdpanVrdVwgOwor5LiA5a+4ID4gY2hvdHRvXCA7CivlpKfoiLkgPiBvb2J1bmVcIDsKK+mdkueruSA+IGFvZGFrZVwgOwor5LiA5a+pID4gaXNzaGluXCA7CivpnannoKUgPiBrYXdhdG9cIDsKK+mbkeiqjCA+IHphc3NoaVwgOwor54mH55y8ID4ga2F0YW1lXCA7Civmlq3nt5ogPiBkYW5zZW5cIDsKK+S5seS4liA+IHJhbnNlaVwgOwor54af6K2wID4ganVrdWdpXCA7CivkuJblpIkgPiBzZWloZW5cIDsKK+acrOS9kyA+IGhvbnRhaVwgOwor6aKo5YWJID4gZnV1a291XCA7CivkuLvlkb0gPiBzaHVtZWlcIDsKK+maoOmAuCA+IGluaXRzdVwgOwor5aSn6IejID4gZGFpamluXCA7Civnvo7lraYgPiBiaWdha3VcIDsKK+S4gOWulyA+IGlzc2h1dVwgOwor6Kmp6KuWID4gc2hpcm9uXCA7CivniYfnm64gPiBrYXRhbWVcIDsKK+aUv+irliA+IHNlaXJvblwgOwor5LiB5a2QID4gY2hvdWppXCA7CivnjoflgJIgPiBzb3R0b3VcIDsKK+acjeWLmSA+IGZ1a3VtdVwgOwor6Z2S56m6ID4gYW96b3JhXCA7CivmlL/oq4cgPiBzZWlkYW5cIDsKK+acieWNiiA+IHl1dWhhblwgOwor5LiA5a2XID4gaWNoaWppXCA7Civpm5HoqIAgPiB6b3Vnb25cIDsKK+e5i+iIuSA+IGtlaXNlblwgOwor5pys5Lu2ID4gaG9ua2VuXCA7CivmlL7oq4cgPiBob3VkYW5cIDsKK+S4u+WQmyA+IHNodWt1blwgOwor5Li45ZGzID4gbWFydW1pXCA7CivmnKzku6MgPiBob25kYWlcIDsKK+Wkp+iFvyA+IGRhaXRhaVwgOwor6Kmm6KuWID4gc2hpcm9uXCA7Civmmanmma8gPiBiYW5rZWlcIDsKK+S4i+WnkyA+IGdlc2hvdVwgOwor5aOu6KGMID4gc291a291XCA7CivlppnnjosgPiBteW91b3VcIDsKK+Wkp+iEsyA+IGRhaW5vdVwgOwor5peF56iLID4gcnlvdGVpXCA7CivlpYnntI0gPiBob3Vub3VcIDsKK+eGn+iqniA+IGp1a3Vnb1wgOwor6ZyK6IqdID4gcmVpc2hpXCA7CivmnInlirkgPiB5dXVrb3VcIDsKK+eLmeaSgyA+IHNvZ2VraVwgOwor5pyJ5YqfID4geXV1a291XCA7CivnjLblpKogPiB5dWRheWFcIDsKK+WknOiIuSA+IHlvZnVuZVwgOwor5pyq5LqGID4gbWlyeW91XCA7Civlp5PmsI8gPiBzZWlzaGlcIDsKK+S4iuWljyA+IGpvdXNvdVwgOwor5pS+6KiAID4gaG91Z2VuXCA7CivlpKfog4YgPiBkYWl0YW5cIDsKK+S4iuWkqSA+IGpvdXRlblwgOwor5pep55SjID4gc291emFuXCA7CivlpKfogqEgPiBvb21hdGFcIDsKK+acgOWNlyA+IHNhaW5hblwgOwor5aSp6IGeID4gdGVuYnVuXCA7CivoqLTov70gPiBzb3RzdWlcIDsKK+eMm+WwhCA+IG1vdXNoYVwgOwor6Kmg6KqmID4gZWlzaG91XCA7Civmmabml6UgPiBtaXNva2FcIDsKK+e5reezuCA+IGtlbnNoaVwgOwor5pS/6KaLID4gc2Vpa2VuXCA7CivnjJ/lraMgPiByeW91a2lcIDsKK+WmhOeUqCA+IGJvdXlvdVwgOwor5pu55Y+4ID4gc291c2hpXCA7CivoqJjpjLIgPiBraXJva3VcIDsKK+abuOWQjSA+IHNob21laVwgOwor5aSn6IGWID4gdGFpc2VpXCA7CivmnIjliIogPiBnZWtrYW5cIDsKK+S4h+WkqSA+IGJhbnRlblwgOwor5LiJ5aOrID4gc2Fuc2hpXCA7CivkuK3lkowgPiBjaHV1d2FcIDsKK+S4u+WLlSA+IHNodWRvdVwgOwor5pS56KiCID4ga2FpdGVpXCA7CivkuK3lkbMgPiBuYWthbWlcIDsKK+aXpeeUoyA+IG5pc3NhblwgOwor6Z2i55u4ID4gbWVuc291XCA7Civnvo7lppkgPiBiaW15b3VcIDsKK+ipleitsCA+IGh5b3VnaVwgOwor5pac57eaID4gc2hhc2VuXCA7CivlpKfogIEgPiB0YWlyb3VcIDsKK+aci+WFmiA+IGhvdXRvdVwgOwor6aKo5L2TID4gZnV1dGVpXCA7CivniZ3niZsgPiBtZXVzaGlcIDsKK+Wil+mFjSA+IHpvdWhhaVwgOwor6Z2i55qwID4gbWVuYm91XCA7CivkuYPlhawgPiBuYWlrb3VcIDsKK+mZo+mWgCA+IGppbm1vblwgOwor5piC54S2ID4ga291emVuXCA7CivkuIDlpbMgPiBpY2hpam9cIDsKK+S4iuWgtCA+IGpvdWpvdVwgOwor6ZmN6aCGID4ga291anVuXCA7CivlpKfnvqQgPiB0YWlndW5cIDsKK+mZoumVtyA+IGluY2hvdVwgOwor5Lit5Y+lID4gY2h1dWt1XCA7CivkuInloYEgPiBzYW5ydWlcIDsKK+acgOWJjSA+IHNhaXplblwgOwor6Zq76KqeID4gc2VraWdvXCA7Civmm4flpKkgPiBkb250ZW5cIDsKK+aciOWFiSA+IGdla2tvdVwgOwor6Kyd54q2ID4gc2hham91XCA7CivpnIrog70gPiByZWlub3VcIDsKK+S4u+WIkSA+IHNodWtlaVwgOwor57aa6ZaLID4gem9ra2FpXCA7Civlp7vml48gPiBpbnpva3VcIDsKK+S4ueWJjSA+IHRhbnplblwgOwor5aWJ562UID4gaG91dG91XCA7CivkuLjliaQgPiBnYW56YWlcIDsKK+Wkp+e9qiA+IGRhaXphaVwgOwor5LiA5aSiID4gaWNoaW11XCA7CivmnIDliJ0gPiBzYWlzaG9cIDsKK+S4gOWknCA+IGhpdG95b1wgOwor5LiA5aSVID4gaXNzZWtpXCA7CivkuIfloLQgPiBtYW5qb3VcIDsKK+iruOebuCA+IHNob3NvdVwgOwor6aGe5Z6LID4gcnVpa2VpXCA7CivlpYfnrZYgPiBraXNha3VcIDsKK+ipleiqniA+IGh5b3Vnb1wgOwor5ama5ae7ID4ga29uJydpblwgOwor5LiO5ZynID4geW9hdHN1XCA7CivnhpTop6MgPiB5b3VrYWlcIDsKK+ino+mhjCA+IGthaWRhaVwgOwor5aSa6IKJID4gdGFuaWt1XCA7CivkuI7lm70gPiB5b2tva3VcIDsKK+aUueijhSA+IGthaXNvdVwgOwor6Kmm6KGMID4gc2hpa291XCA7CivmmpfluZUgPiBhbm1ha3VcIDsKK+mahumBiyA+IHJ5dXV1blwgOwor5peL55ukID4gc2VuYmFuXCA7CivpmY3pnJwgPiBrb3Vzb3VcIDsKK+iqmOiHtCA+IHl1dWNoaVwgOwor5pqW5bivID4gZGFudGFpXCA7CivkuIvlm70gPiBnZWtva3VcIDsKK+aaq+WumiA+IHphbnRlaVwgOwor5pm65oWuID4gY2hpcnlvXCA7Civorabmo5IgPiBrZWlib3VcIDsKK+aWreeoriA+IGRhbnNodVwgOwor54us5b6AID4gZG9rdW91XCA7Civpn5zmmaYgPiB0b3VrYWlcIDsKK+aZi+abuCA+IHNoaW5qb1wgOwor54yf5aWHID4gcnlvdWtpXCA7CivkuInlm7IgPiBtaXRzdWlcIDsKK+WkluiBniA+IGdhaWJ1blwgOwor5LiJ5ZueID4gc2Fua2FpXCA7CivmnIjkv7ggPiBnZXBwb3VcIDsKK+eJuea0viA+IHRva3VoYVwgOwor5Li75YKsID4gc2h1c2FpXCA7CivkuLvlgpggPiBzaHVzYW5cIDsKK+mbgeihjCA+IGdhbmtvdVwgOwor5aSp57ayID4gdGVubW91XCA7CivpmbbphZQgPiB0b3VzdWlcIDsKK+abuOWGmSA+IHNob3NoYVwgOwor5paR57SLID4gaGFubW9uXCA7CivpoZXlnKggPiBrZW56YWlcIDsKK+acieS9kyA+IHl1dXRhaVwgOwor5aSn57axID4gdGFpa291XCA7Civlp6bmmbogPiBrYW5jaGlcIDsKK+eGj+ijvSA+IGt1bnNlaVwgOwor542E5ZCPID4gZ29rdXJpXCA7Civni6zluqcgPiBkb2t1emFcIDsKK+e3qeinoyA+IGthbmthaVwgOwor5LiJ5ZiGID4gc2FudGFuXCA7CivlpYnnpYAgPiBob3VzaGlcIDsKK+S4gOWbvSA+IGlra29rdVwgOwor5ai85a62ID4gc2hvdWthXCA7CivmmYPmm5wgPiBrb3V5b3VcIDsKK+eMn+WgtCA+IHJ5b3ViYVwgOwor6aCY5biDID4gcnlvdWZ1XCA7CivniYfniYcgPiBoZW5wZW5cIDsKK+S4gOWboCA+IGljaGlpblwgOwor6Zyn56ybID4gbXV0ZWtpXCA7CivpmbjpgYsgPiByaWt1dW5cIDsKK+acieS6uiA+IHl1dWppblwgOwor54Sh6ZeHID4gbXV5YW1pXCA7CivmmanmiJAgPiBiYW5zZWlcIDsKK+mbhOicgiA+IG9iYWNoaVwgOwor6Ziy6aKoID4gYm91ZnV1XCA7Civoqanol7sgPiBzaGlzb3VcIDsKK+Wkp+ezuyA+IHRhaWtlaVwgOwor57W56ZuyID4ga2VuJyd1blwgOwor54Wu6LGGID4gbmltYW1lXCA7CivnhpTono0gPiB5b3V5dXVcIDsKK+S4u+S9kyA+IHNodXRhaVwgOwor6KiT6YCjID4ga3VucmVuXCA7CivkuIflloQgPiBtYW56ZW5cIDsKK+WkqeexnyA+IHRlbnJhaVwgOwor5paH57O7ID4gYnVua2VpXCA7CivmnIDkvY4gPiBzYWl0ZWlcIDsKK+e5i+e0ryA+IGtlaXJ1aVwgOwor6Kqt57WMID4gZG9reW91XCA7CivnuYrntLAgPiBzZW5zYWlcIDsKK+aWveeZgiA+IHNlcnlvdVwgOwor5Li75Lu7ID4gc2h1bmluXCA7CivmlazogIEgPiBrZWlyb3VcIDsKK+mghuW9kyA+IGp1bnRvdVwgOwor6Zm96LuiID4geW91dGVuXCA7CivkuKHliIMgPiByeW91YmFcIDsKK+e1nummliA+IGtvdXNodVwgOwor5pel54S8ID4gaGl5YWtlXCA7CivkuIrlk4EgPiBqb3Vib25cIDsKK+aUvuiVqSA+IGhvdXRvdVwgOwor5Li75Lq6ID4gc2h1amluXCA7Civpoavli5UgPiBzZW5kb3VcIDsKK+mbhOiYgiA+IHl1dXp1aVwgOwor6Zi76ZqUID4gc29rYWt1XCA7Civpm6PoiLkgPiBuYW5zZW5cIDsKK+mahui1tyA+IHJ5dXVraVwgOwor6aCG5bu2ID4ganVuJydlblwgOwor6Zuj6IiqID4gbmFua291XCA7CivlqLzlqaYgPiBzaG91ZnVcIDsKK+WnlOabsiA+IGlreW9rdVwgOwor5Lit5YCkID4gbmFrYW5lXCA7CivlpYfnn68gPiBraWt5b3VcIDsKK+e3qeihjCA+IGthbmtvdVwgOwor5aSW57eaID4gZ2Fpc2VuXCA7Civlp7vmiJogPiBpbnNla2lcIDsKK+aYreaghCA+IHNob3VlaVwgOwor6aGe5ZCMID4gcnVpZG91XCA7CivoqqbntYwgPiB6dWt5b3VcIDsKK+aXqeeArCA+IGhheWFzZVwgOwor6Kme6Je7ID4gc2hpc291XCA7Civmm7jkvZMgPiBzaG90YWlcIDsKK+S4reS/nSA+IGNodXVob1wgOwor57eS6KuWID4gY2hvcm9uXCA7CivkuIrlkJEgPiBqb3Vrb3VcIDsKK+iou+iomCA+IGNodXVraVwgOwor5Li75LiKID4gc2h1am91XCA7CivmnIDkuK0gPiBtb25ha2FcIDsKK+S4iuWPuCA+IGpvdXNoaVwgOwor5ae/5oWLID4gc2hpdGFpXCA7Civpm5Hoj4wgPiB6YWtraW5cIDsKK+aWh+evhCA+IGJ1bnBhblwgOwor5paw55uGID4gbmlpYm9uXCA7Civlopfos4cgPiB6b3VzaGlcIDsKK+mbhOiViiA+IHl1dXp1aVwgOwor5pyA5LiKID4gbW9nYW1pXCA7CivlpKfnrYsgPiBvb3N1amlcIDsKK+WqkuS9kyA+IGJhaXRhaVwgOwor54iG56C0ID4gYmFrdWhhXCA7Civnt4/oq5YgPiBzb3Vyb25cIDsKK+S4gOWToSA+IGljaGlpblwgOwor5aSp56ulID4gdGVuZG91XCA7CivnjK7lkYggPiBrZW50ZWlcIDsKK+eLrOWxhSA+IGRva2t5b1wgOwor5ai85aaTID4gc2hvdWdpXCA7CivnibnmqKkgPiB0b2trZW5cIDsKK+ios+iqniA+IHlha3Vnb1wgOwor5aSW57SZID4gZ2Fpc2hpXCA7CivkuK3kvZAgPiBjaHV1c2FcIDsKK+S4h+WPoyA+IGJhbmtvdVwgOwor6ZuR6I2JID4gemFzc291XCA7CivkuIrljYogPiBqb3VoYW5cIDsKK+mZuOi3ryA+IHJpa3Vyb1wgOwor5aqS5LuLID4gYmFpa2FpXCA7CivlpKnnqbogPiB0ZW5rdXVcIDsKK+e3kuiogCA+IGNob2dlblwgOwor5pu05LujID4ga291dGFpXCA7CivoqLToqJ8gPiBzb3Nob3VcIDsKK+mcgOe1piA+IGp1a3l1dVwgOwor6aCt5aOwID4gdG91c2VpXCA7CivkuInljYMgPiBzYW56ZW5cIDsKK+S4ieWNgSA+IHNhbmp1dVwgOwor5pS56JGsID4ga2Fpc291XCA7CivkuI7lipsgPiB5b3Jpa2lcIDsKK+e1jOmokyA+IGtlaWtlblwgOwor5pep5ryPID4gc291cm91XCA7Civpm7vnt5ogPiBkZW5zZW5cIDsKK+Wkp+epuiA+IG9vem9yYVwgOwor5aSW57GzID4gZ2FpbWFpXCA7Civnt4/oqIggPiBzb3VrZWlcIDsKK+S4h+WNgyA+IGJhbnNlblwgOwor5aSp56ifID4gdGVucGluXCA7CivoqLPop6MgPiB5YWtrYWlcIDsKK+e5geewoSA+IGhhbmthblwgOwor5Lit5LqMID4gY2h1dW5pXCA7CivlpYfnmZYgPiBraWhla2lcIDsKK+aVj+iFlSA+IGJpbndhblwgOwor5aSp56ekID4gdGVuYmluXCA7CivntKLpurogPiBzb3VtZW5cIDsKK+e3j+impyA+IHNvdXJhblwgOwor576k5YOPID4gZ3Vuem91XCA7Civnt4/oposgPiBzb3VrZW5cIDsKK+e0oOm6uiA+IHNvdW1lblwgOwor5puZ5YWJID4gc2hva291XCA7CivmlZfogIUgPiBoYWlzaGFcIDsKK+WlrueEtiA+IGZ1bnplblwgOwor5LiH5YqrID4gbWFuZ291XCA7CivkuIrliY0gPiB1d2FtYWVcIDsKK+ioreioiCA+IHNla2tlaVwgOwor5pav55WMID4gc2hpa2FpXCA7CivmlrDnlKsgPiBzaGlucG9cIDsKK+mbhuiNtyA+IHNodXVrYVwgOwor6ZmE6YyyID4gZnVyb2t1XCA7CivmlZnnvqkgPiBreW91Z2lcIDsKK+mbjOiKsSA+IG1lYmFuYVwgOwor5aWH55eFID4ga2lieW91XCA7CivmmbTltZAgPiBzZWlyYW5cIDsKK+mdkueJqSA+IGFvbW9ub1wgOwor54mi5q27ID4gcm91c2hpXCA7CivnirbmhYsgPiBqb3V0YWlcIDsKK+WkqeelniA+IHRlbmppblwgOwor54S26L+EID4gc2FtYWRlXCA7CivpoYzlkI0gPiBkYWltZWlcIDsKK+S4gOWNhyA+IGlzc2hvdVwgOwor5aW95ryiID4ga291a2FuXCA7CivkuIDljLkgPiBpcHBpa2lcIDsKK+mhjOWPtyA+IGRhaWdvdVwgOwor5aSn56WtID4gdGFpc2FpXCA7CivkuInliIYgPiBzYW5wdW5cIDsKK+e+qeS+oCA+IGdpa3lvdVwgOwor54aP6JK4ID4ga3Vuam91XCA7Civpm7bntLAgPiByZWlzYWlcIDsKK+Wkp+ekviA+IHRhaXNoYVwgOwor5aSn56S8ID4gdGFpcmVpXCA7CivoqpPntJkgPiBzZWlzaGlcIDsKK+e3j+ijjyA+IHNvdXVyYVwgOwor54mp5qipID4gYnVra2VuXCA7CivlpJznqbogPiB5b3pvcmFcIDsKK+S4gOWLnSA+IGlzc2hvdVwgOwor5aOu6ICFID4gc291c2hhXCA7Civnt4/oo4EgPiBzb3VzYWlcIDsKK+eEoemHjyA+IG11cnlvdVwgOwor5LiJ5YasID4gc2FudG91XCA7CivkuIDliqkgPiBpY2hpam9cIDsKK+mbgOiNmCA+IGphbnNvdVwgOwor57eK6KSMID4ga2lua29uXCA7CivkuJbkv5cgPiBzZXpva3VcIDsKK+mgveWUkCA+IHRhaXRvdVwgOwor57im57eaID4ganV1c2VuXCA7CivniZvmrakgPiBneXV1aG9cIDsKK+S4h+WGhiA+IG1hbicnZW5cIDsKK+Wil+iogiA+IHpvdXRlaVwgOwor6aCG5a6IID4ganVuc2h1XCA7CivkuIflhaggPiBtYW56ZW5cIDsKK+S4gOWIuyA+IGlra29rdVwgOwor5pen5rS+ID4ga3l1dWhhXCA7CivnvoXljJcgPiByYWhva3VcIDsKK+mbque3miA+IHNlc3NlblwgOwor576k5L2TID4gZ3VudGFpXCA7CivkuIvlg5ogPiBrYXJ5b3VcIDsKK+e0sOmtmiA+IHNheW9yaVwgOwor5LiL5YOVID4gZ2Vib2t1XCA7CivkuIDliKkgPiBpY2hpcmlcIDsKK+Wkp+egsiA+IHRhaWhvdVwgOwor5pq05ZCbID4gYm91a3VuXCA7Civml6fms6IgPiBreXV1aGFcIDsKK+aVsOetiSA+IHN1dXRvdVwgOwor5aWz5rudID4gbWVkYWtpXCA7CivkuJbkvJ0gPiBzZWlkZW5cIDsKK+itpuaJiyA+IGtlaXNodVwgOwor6ZqP6KGMID4genVpa291XCA7Civmk43ou4ogPiBzb3VzaGFcIDsKK+WmguazlSA+IG55b2hvdVwgOwor5LiO5L+hID4geW9zaGluXCA7CivoqJjoqqYgPiBraXNob3VcIDsKK+mbt+euoSA+IHJhaWthblwgOwor5aSa56WlID4gdGFzaG91XCA7CivkuIDlhoYgPiBpY2hpZW5cIDsKK+S4gOWFtyA+IGljaGlndVwgOwor5LiN5L+hID4gZnVzaGluXCA7Civnt6jokZcgPiBoZW5jaG9cIDsKK+itpuaIkiA+IGtlaWthaVwgOwor5aGK6YmxID4ga2Fpa291XCA7CivniJvniJsgPiByYW5yYW5cIDsKK+aaluWcsCA+IGRhbmNoaVwgOwor57a46KiAID4gcmluZ2VuXCA7CivmlL7og4YgPiBob3V0YW5cIDsKK+iok+irrSA+IGt1bicneXVcIDsKK+aboOS4liA+IGtvdXNlaVwgOwor5aSp55y8ID4gdGVuZ2FuXCA7Civoqq3noLQgPiBkb2t1aGFcIDsKK+S4ieWAjSA+IHNhbmJhaVwgOwor6aGb5YCSID4gdGVudG91XCA7Civml4HngrkgPiBib3V0ZW5cIDsKK+ipqeiBliA+IHNoaXNlaVwgOwor54yb5YuHID4gbW91eXV1XCA7CivmlL7ogoYgPiBob3VzaGlcIDsKK+WlieeMriA+IGhvdWtlblwgOwor5LiA5YSAID4gaWNoaWdpXCA7CivntpnotbAgPiBrZWlzb3VcIDsKK+aXpeawuCA+IGhpbmFnYVwgOwor6aGe5L6LID4gcnVpcmVpXCA7CivoqJPoqqEgPiBrdW5rYWlcIDsKK+S4jeS9nCA+IGZ1c2FrdVwgOwor6KiA6LOqID4gZ2VuY2hpXCA7CivorLnmm7ggPiBraW5zaG9cIDsKK+e9suWQjSA+IHNob21laVwgOwor5piO5pyXID4gbWVpcm91XCA7CivkuIrkvosgPiBqb3VyZWlcIDsKK+mXmOm2jyA+IHRvdWtlaVwgOwor5aSp55uDID4gdGVucGFpXCA7CivkuIrkvb8gPiBqb3VzaGlcIDsKK+aYlOaZgiA+IHNla2lqaVwgOwor5pq05YuVID4gYm91ZG91XCA7CivloKTpmLIgPiB0ZWlib3VcIDsKK+iojuirliA+IHRvdXJvblwgOwor5pel5q+OID4gaGlnb3RvXCA7CivkuIrkvZMgPiBqb3V0YWlcIDsKK+S4jeS7siA+IGZ1bmFrYVwgOwor6Kqy55uuID4ga2Ftb2t1XCA7CivlpKfnm4MgPiB0YWloYWlcIDsKK+Wkp+eavyA+IG9vemFyYVwgOwor5LiJ5L2TID4gc2FudGFpXCA7Civmlofnm7IgPiBtb25tb3VcIDsKK+eGsee3miA+IG5lc3NlblwgOwor6aC95YuiID4gdGFpc2VpXCA7Civnhp/ogIMgPiBqdWtrb3VcIDsKK+WkieeoriA+IGhlbnNodVwgOwor5pat54mHID4gZGFucGVuXCA7CivnjJ/lhbcgPiByeW91Z3VcIDsKK+afkOOAhSA+IGJvdWJvdVwgOwor5aKT6KGoID4gYm9oeW91XCA7CivoqJPop6MgPiBrdW5rYWlcIDsKK+aYteaHhyA+IGppa2tvblwgOwor5aWz5rWBID4gam9yeXV1XCA7Civpn7PlrrkgPiBvbicneW91XCA7CivpmY3ou4ogPiBrb3VzaGFcIDsKK+mciuefpSA+IHJlaWNoaVwgOwor5aOw57SLID4gc2VpbW9uXCA7CivkuIrku6MgPiBqb3VkYWlcIDsKK+Wlh+eJuSA+IGtpZG9rdVwgOwor6aCY5ZyfID4gcnlvdWRvXCA7Civnvo7kv5cgPiBiaXpva3VcIDsKK+mghuWliSA+IGp1bnBvdVwgOwor5piT5patID4gZWtpZGFuXCA7CivkuInku6MgPiBzYW5kYWlcIDsKK+S4gOS/tSA+IGlwcHlvdVwgOwor57ax6KaBID4ga291eW91XCA7CivmlL7nva4gPiBob3VjaGlcIDsKK+mXh+m7kiA+IGFua29rdVwgOwor5LiN5LmZID4gZnVpdHN1XCA7CivnjK7kvZMgPiBrZW50YWlcIDsKK+e9quWQjSA+IHphaW1laVwgOwor5piP5piPID4ga29ua29uXCA7Civpm5HnuoIgPiB6YXNzYW5cIDsKK+WmmeahiCA+IG15b3VhblwgOwor5aWz5rOiID4gbWVuYW1pXCA7CivmmI7mmI4gPiBha2Fha2FcIDsKK+S4h+S7niA+IGJhbmppblwgOwor6Zui57GNID4gcmlzZWtpXCA7CivkuI3kuIAgPiBmdWl0c3VcIDsKK+aWmeeQhiA+IHJ5b3VyaVwgOwor5LiK5LmXID4gam91am91XCA7CivmmpfllLEgPiBhbnNob3VcIDsKK+S4ieS5lyA+IHNhbmpvdVwgOwor5piO5patID4gbWVpZGFuXCA7CivntLrpnZIgPiBrb25qb3VcIDsKK+aVrOekvCA+IGtlaXJlaVwgOwor6Zu356WeID4gcmFpamluXCA7Civpmbboo70gPiB0b3VzZWlcIDsKK+S4iuS4liA+IGpvdXNlaVwgOwor5LiK5LiKID4gam91am91XCA7CivmmI7mlocgPiBtZWlidW5cIDsKK+aZtOWkqSA+IHNlaXRlblwgOwor5LiH5LmXID4gYmFuam91XCA7Civoqr/nkIYgPiBjaG91cmlcIDsKK+aWreeEtiA+IGRhbnplblwgOwor5aSp55SjID4gdGVuc2FuXCA7CivlpKnnlJ8gPiB0ZW5zZWlcIDsKK+aZqeWpmiA+IGJhbmtvblwgOwor5piO5pWPID4gbWVpYmluXCA7CivpoZjkuLsgPiBnYW5zaHVcIDsKK+eJiOaoqSA+IGhhbmtlblwgOwor54OI6aKoID4gcmVwcHV1XCA7CivntYTplqMgPiBzb2tha3VcIDsKK+S4h+S4iCA+IGJhbmpvdVwgOwor5LiH5LiHID4gbWFubWFuXCA7CivoqIDoq5YgPiBnZW5yb25cIDsKK+mZuOihjCA+IHJpa2tvdVwgOwor5aSn55SfID4gZGFpc2VpXCA7Civpm4DnvoUgPiBqYWt1cmFcIDsKK+S4geS6pSA+IHRlaWdhaVwgOwor6K2w5bitID4gZ2lzZWtpXCA7Civnvo7kuosgPiBtaWdvdG9cIDsKK+WnkeaBryA+IGtvc29rdVwgOwor57mB55ubID4gaGFuam91XCA7CivkuIDkurogPiBoaXRvcmlcIDsKK+aUvue4piA+IGhvdWp1dVwgOwor6KuW54K5ID4gcm9udGVuXCA7Civoqannt6ggPiBzaGloZW5cIDsKK+eMruS4iiA+IGtlbmpvdVwgOwor5pel5qeYID4gaGlzYW1hXCA7CivpmaroprMgPiBiYWlrYW5cIDsKK+S4gOS6jCA+IGljaGluaVwgOwor5LiA5LqLID4gaWNoaWppXCA7CivntKDpppYgPiBzb2t1YmlcIDsKK+eIm+a8qyA+IHJhbm1hblwgOwor6ZeY6a2CID4gdG91a29uXCA7CivnibnmjqogPiB0b2t1c29cIDsKK+aUv+e2sSA+IHNlaWtvdVwgOwor6Kmm57e0ID4gc2hpcmVuXCA7Civoqofnp7AgPiBrb3Nob3VcIDsKK+WlieeBryA+IGhvdXRvdVwgOwor6KiA6KizID4gaWl3YWtlXCA7Civln7nppIogPiBiYWl5b3VcIDsKK+aUr+e9siA+IHNoaXNob1wgOwor5LiB5LiBID4gdG91dG91XCA7Civoq7jmsI8gPiBzaG9zaGlcIDsKK+iogOiogCA+IGdlbmdlblwgOwor5LiA5LiBID4gaXRjaG91XCA7Civnt4/oj5wgPiBzb3V6YWlcIDsKK+aUv+e1jCA+IHNlaWtlaVwgOwor5aSa55eFID4gdGFieW91XCA7Civpm7bnoJUgPiByZWlzYWlcIDsKK+aSpOmAgCA+IHRldHRhaVwgOwor6KaL6aCDID4gbWlnb3JvXCA7CivmlLnnt6ggPiBrYWloZW5cIDsKK+eEoeizgyA+IG11Y2hpblwgOwor6KiI6KOFID4ga2Vpc291XCA7Civpm4Tnt6ggPiB5dXVoZW5cIDsKK+aVmeenkSA+IGt5b3VrYVwgOwor57ac6KanID4gc291cmFuXCA7CivpnIrnlYwgPiByZWlrYWlcIDsKK+aZuuWaoiA+IGNoaW5vdVwgOwor57iB57WEID4gZW5ndW1pXCA7CivlpJrnlJ8gPiB0YXNob3VcIDsKK+ism+abuCA+IGtvdXNob1wgOwor57Sr6Zu7ID4gc2hpZGVuXCA7CivpnZnmraIgPiBzZWlzaGlcIDsKK+eJueaKgCA+IHRva3VnaVwgOwor54us5ZKMID4gZG9rdXdhXCA7CivmlZnnpZYgPiBreW91c29cIDsKK+aVmeekuiA+IGt5b3VqaVwgOwor5aCF6ZmjID4ga2VuamluXCA7Civoqo3nn6UgPiBuaW5jaGlcIDsKK+eLguWlsyA+IGt5b3Vqb1wgOwor5aSW55SoID4gZ2FpeW91XCA7CivnianmkI0gPiBidXNzb25cIDsKK+imgemghSA+IHlvdWtvdVwgOwor6KaB6aCCID4geW91a291XCA7CivngrnpoK0gPiB0ZW50b3VcIDsKK+aUr+e3miA+IHNoaXNlblwgOwor572w5L+4ID4gYmFwcG91XCA7CivmlofnjK4gPiBidW5rZW5cIDsKK+ipqeevhyA+IHNoaWhlblwgOwor5pel5p+EID4gaGlnYXJhXCA7Civlp4nlvJ8gPiBzaGltYWlcIDsKK+e4geexjSA+IGVuc2VraVwgOwor6Zui56SBID4gcmlzaG91XCA7Civpn7Pln58gPiBvbicnaWtpXCA7CivoqIDooYwgPiBnZW5rb3VcIDsKK+inkui3nSA+IGtha2t5b1wgOwor5aCx6YGTID4gaG91ZG91XCA7Civmlrnms5UgPiBob3Vob3VcIDsKK+aXreaaiSA+IGt5b2traVwgOwor57W26LObID4gemVzc2FuXCA7CivlpoLmnaUgPiBueW9yYWlcIDsKK+Wkp+eJqSA+IG9vbW9ub1wgOwor5piC5o+aID4ga291eW91XCA7CivpnLLmu7QgPiByb3Rla2lcIDsKK+e2muihjCA+IHpva2tvdVwgOwor6Kmm566XID4gc2hpc2FuXCA7Civoq6vmrbsgPiBrYW5zaGlcIDsKK+mZjeiqlSA+IGtvdXRhblwgOwor54mI5pysID4gaGFucG9uXCA7Civoq6vmraIgPiBrYW5zaGlcIDsKK+aaluWGrCA+IGRhbnRvdVwgOwor6Zu755WqID4gZGVuYmFuXCA7Civpm7vnlYwgPiBkZW5rYWlcIDsKK+iumuWYhiA+IHNhbnRhblwgOwor5pep5pmpID4gc291YmFuXCA7CivpnIrnjaMgPiByZWlqdXVcIDsKK+e3qOe6giA+IGhlbnNhblwgOwor5pmC5a6XID4gamlzaHV1XCA7CivmlrDmtL4gPiBzaGlucGFcIDsKK+aXreaXlyA+IGt5b2traVwgOwor6ZuE56+HID4geXV1aGVuXCA7Civpm5HnqK4gPiB6YXNzaHVcIDsKK+e0memdoiA+IHNoaW1lblwgOwor5aWP5rOVID4gc291aG91XCA7CivlpLHngasgPiBzaGlra2FcIDsKK+aWkeeCuSA+IGhhbnRlblwgOwor6Zuq55uuID4geXVraW1lXCA7Civlpb3mnJsgPiBrb3Vib3VcIDsKK+aXp+aZgiA+IGt5dXVqaVwgOwor6KqV55SfID4gdGFuam91XCA7CivmmLzlr50gPiBoaXJ1bmVcIDsKK+aTjeihjCA+IHNvdWtvdVwgOwor54m55oG1ID4gdG9ra2VpXCA7CivmmLzlr5AgPiBoaXJ1bmVcIDsKK+eFmeiNiSA+IHRhYmFrb1wgOwor6Kmp56i/ID4gc2hpa291XCA7CivorablrpggPiBrZWlrYW5cIDsKK+e1tuiugyA+IHplc3NhblwgOwor5pa55q2jID4gaG91c2VpXCA7Civoq5bms5UgPiByb25wb3VcIDsKK+eIm+atuyA+IHJhbnNoaVwgOwor5pW1546LID4gdGVraW91XCA7CivpnoXmjowgPiBvdXNob3VcIDsKK+ishOacrCA+IHRvdWhvblwgOwor5pS556uEID4ga2FpemFuXCA7CivlpoTmlq0gPiBtb3VkYW5cIDsKK+eJueW/qyA+IHRva2thaVwgOwor5aSp54G9ID4gdGVuc2FpXCA7CivpnZLmpbwgPiBzZWlyb3VcIDsKK+mZhOiolyA+IGZ1dGFrdVwgOwor5pen5pWFID4ga3l1dWtvXCA7Civnib3lvJUgPiBrZW4nJ2luXCA7Civmma/lk4EgPiBrZWloaW5cIDsKK+aXpeaVsCA+IGhpa2F6dVwgOwor54mI5pWwID4gaGFuc3V1XCA7Civmlq3msLQgPiBkYW5zdWlcIDsKK+e1puiyuyA+IGt5dXVoaVwgOwor54em54S2ID4gc2FuemVuXCA7CivlppnmioAgPiBteW91Z2lcIDsKK+e0hemhlCA+IGtvdWdhblwgOwor5aa75bivID4gc2FpdGFpXCA7Civpm4Xnp7AgPiBnYXNob3VcIDsKK+WogeWWnSA+IGlrYXRzdVwgOwor6aCR5YalID4gZ2FubWVpXCA7Civoqq3ngrkgPiB0b3V0ZW5cIDsKK+eFjuiMtiA+IHNlbmNoYVwgOwor5piO5b+rID4gbWVpa2FpXCA7Civlpqzlv4MgPiB0b3NoaW5cIDsKK+aZuuWLhyA+IGNoaXl1dVwgOwor6K2r5aaEID4gc2VubW91XCA7CivmmbbljJYgPiBzaG91a2FcIDsKK+aVtOeJiCA+IHNlaWhhblwgOwor6Zu3542jID4gcmFpanV1XCA7CivpnZLmoZAgPiBhb2dpcmlcIDsKK+Wkp+a9riA+IG9vc2hpb1wgOwor5pmu5Y+KID4gZnVreXV1XCA7Civni4LllpwgPiBreW91a2lcIDsKK+Wkqea8oiA+IHRlbmthblwgOwor6Zm26Iq4ID4gdG91Z2VpXCA7Civml5fml6UgPiBoYXRhYmlcIDsKK+mdkuafsyA+IGFveWFnaVwgOwor6Kit572uID4gc2V0Y2hpXCA7CivnianmgKcgPiBidXNzZWlcIDsKK+mZhOihqCA+IGZ1aHlvdVwgOwor6Zuj55SjID4gbmFuemFuXCA7CivorpLlj6MgPiB6YW5rb3VcIDsKK+S7iuOAhSA+IGltYWltYVwgOwor6aCR5YGlID4gZ2Fua2VuXCA7CivmmpfkuK0gPiBhbmNodXVcIDsKK+itt+WbvSA+IGdva29rdVwgOwor5pi85aScID4gY2h1dXlhXCA7CivoqIDokYkgPiBrb3RvYmFcIDsKK+imqui6qyA+IHNoaW5taVwgOwor5pW054S2ID4gc2VpemVuXCA7CivntKHpjJggPiBib3VzdWlcIDsKK+irjOatoiA+IGthbnNoaVwgOwor5aSW54GvID4gZ2FpdG91XCA7CivlpoTmjJkgPiBib3VreW9cIDsKK+e4geefsyA+IGVuc2VraVwgOwor5Z+86YqAID4gc2FpZ2luXCA7CivplpPptKggPiBhaWdhbW9cIDsKK+mcp+awtyA+IG11aHlvdVwgOwor5pSv56S+ID4gc2hpc2hhXCA7CivpnZLmm7ggPiBzZWlzaG9cIDsKK+aYpeWtoyA+IHNodW5raVwgOwor5pWZ55CGID4ga3lvdXJpXCA7Civoq7jmlrkgPiBzaG9ob3VcIDsKK+Wil+e9riA+IHpvdWNoaVwgOwor5aSp5ravID4gdGVuZ2FpXCA7CivoqZDnp7AgPiBzYXNob3VcIDsKK+aRgumWoiA+IHNla2thblwgOwor6K2m5aCxID4ga2VpaG91XCA7Civntr7nvoUgPiByeW91cmFcIDsKK+e3j+e1sSA+IHNvdXRvdVwgOwor6aCY5LqLID4gcnlvdWppXCA7Civni4Llj6UgPiBreW91a3VcIDsKK+WmluaAqiA+IHlvdWthaVwgOwor5pWZ546LID4ga3lvdW91XCA7Civoq7jmlL8gPiBzaG9zZWlcIDsKK+aWveadoSA+IHNoaWpvdVwgOwor6Zmz6IWQID4gY2hpbnB1XCA7CivlpKfmtbcgPiB0YWlrYWlcIDsKK+WnieWmuSA+IHNoaW1haVwgOwor5aCx6KydID4gaG91c2hhXCA7CivlprvlrZAgPiBzYWlzaGlcIDsKK+eLrOS5mSA+IGRvaXRzdVwgOwor54Wp57SvID4gaGFucnVpXCA7CivniYfmiYsgPiBrYXRhdGVcIDsKK+mbu+eBryA+IGRlbnRvdVwgOwor54mH5oi4ID4ga2F0YWRvXCA7CivlpKfmtIsgPiB0YWl5b3VcIDsKK+Wnv+WLoiA+IHNoaXNlaVwgOwor6KeS6KGMID4ga2Fra291XCA7CivlqIHlipsgPiBpcnlva3VcIDsKK+WlveaKlSA+IGtvdXRvdVwgOwor5paR5rCXID4gbXVyYWtpXCA7CivmlabnhYwgPiB0b25rb3VcIDsKK+mbqueJhyA+IHNlcHBlblwgOwor5aSn5rOiID4gb29uYW1pXCA7CivlpInngb0gPiBoZW5zYWlcIDsKK+Wkp+azlSA+IHRhaWhvdVwgOwor6Zu254K5ID4gcmVpdGVuXCA7Civlpb3miYsgPiBrb3VzaHVcIDsKK+aZqeWGrCA+IGJhbnRvdVwgOwor5aW95oimID4ga291c2VuXCA7Civmlq3moYggPiBkYW4nJ2FuXCA7Civmlofms5UgPiBidW5wb3VcIDsKK+WkqeawtCA+IHRlbnN1aVwgOwor6aCR5LiIID4gZ2Fuam91XCA7CivlpJbmua8gPiBzb3RveXVcIDsKK+aWh+ayuyA+IGJ1bmNoaVwgOwor5pWi54S2ID4ga2FuemVuXCA7CivmmablhqUgPiBrYWltZWlcIDsKK+aVmeeItiA+IGt5b3VmdVwgOwor5aaE5oOzID4gbW91c291XCA7CivntJTpioAgPiBqdW5naW5cIDsKK+WkreatuyA+IHlvdXNoaVwgOwor5pS/55WMID4gc2Vpa2FpXCA7CivlpKfmsLQgPiBvb21penVcIDsKK+e2v+e2vyA+IG1lbm1lblwgOwor5aSW5rivID4gZ2Fpa291XCA7Civoqqzms5UgPiBzZXBwb3VcIDsKK+imi+i+vCA+IG1pa29taVwgOwor6Kiq57GzID4gaG91YmVpXCA7CivoqabnlKggPiBzaGl5b3VcIDsKK+e0sOi6qyA+IGhvc29taVwgOwor5Z+O6ZaAID4gam91bW9uXCA7CivmlofmsJEgPiBidW5taW5cIDsKK+eCremJsSA+IHRhbmtvdVwgOwor5pen5oGpID4ga3l1dW9uXCA7Civntr/ntKEgPiBtZW5ib3VcIDsKK+WlveaEnyA+IGtvdWthblwgOwor57SU6YeRID4ganVua2luXCA7Civopb/pg4ogPiBzZWlrb3VcIDsKK+WknOaziiA+IHlhaGFrdVwgOwor5pa95pS/ID4gc2hpc2VpXCA7Civml6fmgKggPiBreXV1ZW5cIDsKK+aWueaWuSA+IGhvdWJvdVwgOwor57a/57O4ID4gbWVuc2hpXCA7Civml6jlv7UgPiBzaGluZW5cIDsKK+aTjeiIuSA+IHNvdXNlblwgOwor5aao5a6zID4gYm91Z2FpXCA7CivpnIrms4kgPiByZWlzZW5cIDsKK+e2vuezuCA+IGF5YWl0b1wgOwor6Zu75rqQID4gZGVuZ2VuXCA7CivlpoTlv7UgPiBtb3VuZW5cIDsKK+eKtuWLoiA+IGpvdXNlaVwgOwor5aeU5ZixID4gaXNob2t1XCA7CivnuYrmr5sgPiBzZW5tb3VcIDsKK+mWoumgrSA+IGthbnRvdVwgOwor5aWJ5pu4ID4gaG91c2hvXCA7CivlpJbmtIsgPiBnYWl5b3VcIDsKK+ilv+mBiiA+IHNlaXl1dVwgOwor57mU5qmfID4gc2hva2tpXCA7Civlpa7miKYgPiBmdW5zZW5cIDsKK+ism+W4qyA+IGtvdXNoaVwgOwor6ZyK5rC0ID4gcmVpc3VpXCA7Civngq3phbggPiB0YW5zYW5cIDsKK+WllOaUviA+IGhvbnBvdVwgOwor57SN6YeRID4gbm91a2luXCA7Civmma/ku7AgPiBrZWlrb3VcIDsKK+e0jemHhyA+IG5vdXNhaVwgOwor5paD5q27ID4gaGVpc2hpXCA7CivoprPopqcgPiBrYW5yYW5cIDsKK+iruOaJiyA+IG1vcm90ZVwgOwor6Z+z5L+hID4gb25zaGluXCA7Civns5bpoZ4gPiB0b3VydWlcIDsKK+eyvumtgiA+IHNlaWtvblwgOwor6KiT57e0ID4ga3VucmVuXCA7Civln7rou7ggPiBraWppa3VcIDsKK+mbo+eCuSA+IG5hbnRlblwgOwor5aSc5q+OID4geW9nb3RvXCA7Civml6XlvbEgPiBoaWthZ2VcIDsKK+aVo+a8qyA+IHNhbm1hblwgOwor57ep55uuID4geXVydW1lXCA7CivniYflvbEgPiBoZW4nJ2VpXCA7Civngb3pm6MgPiBzYWluYW5cIDsKK+WmhOW8gSA+IGJvdWJlblwgOwor6ZyK5q6/ID4gcmVpZGVuXCA7Civml6LlvpcgPiBraXRva3VcIDsKK+Wkp+aoqSA+IHRhaWtlblwgOwor6KuW5peoID4gcm9uc2hpXCA7Civnsr7pq4QgPiBzZWl6dWlcIDsKK+aWr+aWhyA+IHNoaWJ1blwgOwor5Z+06LyqID4gaGFuaXdhXCA7Civoq5bmlq0gPiByb25kYW5cIDsKK+irluaWhyA+IHJvbmJ1blwgOwor54WZ566hID4ga2lzZXJ1XCA7CivniL3lv6sgPiBzb3VrYWlcIDsKK+mZjeiHqCA+IGtvdXJpblwgOwor5aSn5qaCID4gdGFpZ2FpXCA7Civoqr/mn7sgPiBjaG91c2FcIDsKK+mdmeaFiyA+IHNlaXRhaVwgOwor6ZuM54mbID4gbWV1c2hpXCA7Civnt6Dnm58gPiB0ZWltZWlcIDsKK+mWi+mkqCA+IGthaWthblwgOwor6Kqy5qWtID4ga2FneW91XCA7CivnhKHoh60gPiBtdXNodXVcIDsKK+WkieazlSA+IGhlbnBvdVwgOwor6Z2x5bivID4gamludGFpXCA7CivmmI7lpKcgPiBtZWlkYWlcIDsKK+eJn+WtkCA+IGJvdXNoaVwgOwor6Zu75rGgID4gZGVuY2hpXCA7CivplonppKggPiBoZWlrYW5cIDsKK+iruOaCqiA+IHNob2FrdVwgOwor5pif5ZujID4gc2VpZGFuXCA7Civlo4HnlLsgPiBoZWtpZ2FcIDsKK+Wnk+WQjSA+IHNlaW1laVwgOwor57Sg6LazID4gc3Vhc2hpXCA7CivmlbXmrakgPiB0ZWtpZnVcIDsKK+mbqua4kyA+IHNla2tlaVwgOwor6ZuE54qsID4gb3N1aW51XCA7Civpna3luK8gPiBqaW50YWlcIDsKK+Wil+eojiA+IHpvdXplaVwgOwor5pmC5Yi7ID4gamlrb2t1XCA7Civlor7nlLAgPiBrb25kZW5cIDsKK+aUueeJiCA+IGthaWhhblwgOwor54i25b6hID4gdGV0ZWdvXCA7CivplqLploAgPiBrYW5tb25cIDsKK+e0sOisuSA+IHNhaWtpblwgOwor5aGK6IyOID4ga2Fpa2VpXCA7CivpmpXnn7MgPiBpbnNla2lcIDsKK+aYreWSjCA+IHNob3V3YVwgOwor5aSn5qC5ID4gZGFpa29uXCA7CivmlpHmnaEgPiBoYW5qb3VcIDsKK+mWkemdmSA+IGthbnNlaVwgOwor6ZaR6Z2WID4ga2Fuc2VpXCA7CivpnZnmgJ0gPiBzZWlzaGlcIDsKK+aXseWusyA+IGthbmdhaVwgOwor6ZuR54KKID4gem91c3VpXCA7CivlpJzmpa0gPiB5YWd5b3VcIDsKK+iomOeroCA+IGtpc2hvdVwgOwor5piC5aWuID4ga291ZnVuXCA7CivntLDoq5YgPiBzYWlyb25cIDsKK+ippueFiSA+IHNoaXJlblwgOwor54mn5aSrID4gYm9rdWZ1XCA7CivmlofmoYggPiBidW4nJ2FuXCA7Civml4Xmg4UgPiByeW9qb3VcIDsKK+S6keOAhSA+IHVuJydudW5cIDsKK+WkieatuyA+IGhlbnNoaVwgOwor6Zuj5riLID4gbmFuanV1XCA7CivlpJbmp5ggPiB0b3phbWFcIDsKK+Wkp+afhCA+IG9vZ2FyYVwgOwor6Ku45b2mID4gc2hvZ2VuXCA7CivplpPpmpsgPiBtYWdpd2FcIDsKK+WkqeadryA+IHRlbnBhaVwgOwor5aSp5p2lID4gdGVucmFpXCA7CivlpKfmnpogPiB0YWltYWlcIDsKK+eEoeiBiiA+IGJ1cnlvdVwgOwor6ZW36aeGID4gY2hvdWt1XCA7Civlp4vljp8gPiBzaGlnZW5cIDsKK+aVo+awtCA+IHNhbnN1aVwgOwor5aSn5p2vID4gdGFpaGFpXCA7Civpm7Lmr40gPiBraXJhcmFcIDsKK+aXqeWvnSA+IGhheWFuZVwgOwor6KW/6LKiID4gc2FpZ29uXCA7CivmlZnmtL4gPiBreW91aGFcIDsKK+aTjee4piA+IHNvdWp1dVwgOwor57eP55ujID4gc291a2FuXCA7CivlpKfmnKwgPiB0YWlob25cIDsKK+eGsea5ryA+IG5ldHRvdVwgOwor5aSn5pybID4gdGFpbW91XCA7Civoq5bmi6AgPiByb25reW9cIDsKK+aXpeWwhCA+IG5pc3NoYVwgOwor57Sv6KiIID4gcnVpa2VpXCA7CivoqLvnlo8gPiBjaHV1c29cIDsKK+WlieaLnSA+IGhvdWhhaVwgOwor5aSn5pu4ID4gdGFpc2hvXCA7Civml6flrrYgPiBreXV1a2FcIDsKK+eJp+WgtCA+IG1ha2liYVwgOwor6KiI566XID4ga2Vpc2FuXCA7Civml4vlu7sgPiBzZW5rYWlcIDsKK+mZpOexjSA+IGpvc2VraVwgOwor5aeL5YuVID4gc2hpZG91XCA7CivntLDoposgPiBzYWlrZW5cIDsKK+e5iuadoSA+IHNlbmpvdVwgOwor57O46YGKID4gaXRveXV1XCA7Civml6flrZcgPiBreXV1amlcIDsKK+Wkp+aakSA+IHRhaXNob1wgOwor6Zuj5rK7ID4gbmFuY2hpXCA7Civloqjnl5UgPiBib2trb25cIDsKK+eFmeehnSA+IGVuc2hvdVwgOwor6Zai6Y21ID4ga2Fua2VuXCA7Civoq5bmiKYgPiByb25zZW5cIDsKK+eyvumciiA+IHNlaXJlaVwgOwor5pel5a2QID4gbmlzc2hpXCA7CivlpYnmiLQgPiBob3V0YWlcIDsKK+WkqeaYjiA+IHRlbm1laVwgOwor5Z+66Kq/ID4ga2ljaG91XCA7CivnuYHmoIQgPiBoYW4nJ2VpXCA7CivlopPnn7MgPiBib3Nla2lcIDsKK+imi+inoyA+IGtlbmthaVwgOwor5pS+5ryrID4gaG91bWFuXCA7Civlpb3lroggPiBrb3VzaHVcIDsKK+mbjOa7nSA+IG1lZGFraVwgOwor5aem5Lq6ID4ga2FuamluXCA7CivloqjnlLsgPiBib2t1Z2FcIDsKK+mbo+awkSA+IG5hbm1pblwgOwor5pep5amaID4gc291a29uXCA7CivntKDoqq0gPiBzb2Rva3VcIDsKK+imgeirpiA+IHlvdXRlaVwgOwor5aSp5paHID4gdGVubW9uXCA7CivlpKfmlrkgPiBvb2thdGFcIDsKK+imgeiriyA+IHlvdXNlaVwgOwor5pSv54K5ID4gc2hpdGVuXCA7CivopoHoq4cgPiB5b3VkYW5cIDsKK+aWh+aYjiA+IGJ1bm1laVwgOwor6Z2S5bm0ID4gc2VpbmVuXCA7CivplovplokgPiBrYWloZWlcIDsKK+iqnuagvCA+IGdva2FrdVwgOwor6ZW36Z+zID4gY2hvdW9uXCA7Civml6flqaYgPiBreXV1ZnVcIDsKK+mWi+mWgCA+IGthaW1vblwgOwor5pex5aSpID4ga2FudGVuXCA7CivmkKzpgIEgPiBoYW5zb3VcIDsKK+mej+WbuiA+IGt5b3Vrb1wgOwor5paH5pemID4gYnVudGFuXCA7CivorLnllZMgPiBraW5rZWlcIDsKK+e3tOeCrSA+IHJlbnRhblwgOwor5aSn5pWwID4gdGFpc3V1XCA7Civop6PnupwgPiBrYWlyYW5cIDsKK+mWiemWgCA+IGhlaW1vblwgOwor6K2w5LqGID4gZ2lyeW91XCA7CivlpaXlt54gPiBvdXNodXVcIDsKK+aVl+auiyA+IGhhaXphblwgOwor5aKX55uKID4gem91ZWtpXCA7CivlpKfmlZcgPiB0YWloYWlcIDsKK+ism+WjhyA+IGtvdWRhblwgOwor5aSW5p2lID4gZ2FpcmFpXCA7Civpl4fot68gPiB5YW1pamlcIDsKK+iruOWztiA+IHNob3RvdVwgOwor5aSW5p2QID4gZ2FpemFpXCA7CivlpKfmlL8gPiB0YWlzZWlcIDsKK+Wls+WwhiA+IGpvc2hvdVwgOwor6ZaA6ZmiID4gbW9uJydpblwgOwor57SN6LGGID4gbmF0dG91XCA7CivploDpmZAgPiBtb25nZW5cIDsKK+aWueW9oiA+IGhvdWtlaVwgOwor6Zml56m9ID4ga2Fuc2VpXCA7CivpnIrmmbogPiByZWljaGlcIDsKK+aWh+aUvyA+IGJ1bnNlaVwgOwor5aWz5a6YID4gbnlva2FuXCA7CivmkK3ovIkgPiB0b3VzYWlcIDsKK+eEoee1piA+IG11a3l1dVwgOwor5pep5aSpID4gc291dGVuXCA7Civml6nlpKcgPiBzb3VkYWlcIDsKK+ism+WggiA+IGtvdWRvdVwgOwor6KaB6KanID4geW91cmFuXCA7CivpnZLltZAgPiBzZWlyYW5cIDsKK+mbm+autSA+IHN1dWRhblwgOwor6Z2i5a2QID4gbWVudHN1XCA7CivorLnlkYggPiBraW50ZWlcIDsKK+aVsOaemiA+IHN1dW1haVwgOwor6Zuo5qiLID4gYW1hZG9pXCA7Civml6flpKsgPiBreXV1ZnVcIDsKK+aXp+WkoiA+IGt5dXVtdVwgOwor6ZuE5ri+ID4geXV1a29uXCA7CivnuYHmmIwgPiBoYW5qb3VcIDsKK+aUvua1qiA+IGhvdXJvdVwgOwor57aa56i/ID4gem9ra291XCA7Civpm5HmspMgPiB6YXR0b3VcIDsKK+ikh+mfsyA+IGZ1a3VvblwgOwor5piO5ZCbID4gbWVpa3VuXCA7Civml6zloLEgPiBqdW5wb3VcIDsKK+mZuuebuCA+IGtlbnNvdVwgOwor54Sh57K+ID4gYnVzaG91XCA7CivorabkuZcgPiBrZWlqb3VcIDsKK+isueWOsyA+IGtpbmdlblwgOwor54S256iLID4gc2Fob2RvXCA7Civnibnli5kgPiB0b2t1bXVcIDsKK+eJqeWTgSA+IGJ1cHBpblwgOwor6K2m5LiWID4ga2Vpc2VpXCA7CivlopfnlKMgPiB6b3VzYW5cIDsKK+aQjemHkSA+IHNvbmtpblwgOwor6Z2S5bGxID4gc2VpemFuXCA7CivnibnlirkgPiB0b2trb3VcIDsKK+iruOWtkCA+IHNob3NoaVwgOwor54m95Yi2ID4ga2Vuc2VpXCA7Civlpb3lpKkgPiBrb3V0ZW5cIDsKK+eJueWKnyA+IHRva2tvdVwgOwor5aSJ5pu0ID4gaGVua291XCA7CivplbfplpEgPiBub2Rva2FcIDsKK+iqnuaXjyA+IGdvem9rdVwgOwor6KuW5byBID4gcm9uYmVuXCA7Civml6XloLEgPiBuaXBwb3VcIDsKK+mWgOmRkSA+IG1vbmthblwgOwor5aSn5oyZID4gdGFpa3lvXCA7CivloJXokL0gPiBkYXJha3VcIDsKK+mWoumAoyA+IGthbnJlblwgOwor54Wu54mpID4gbmltb25vXCA7Civml4Xlr50gPiB0YWJpbmVcIDsKK+WrjOOAhSA+IGl5YWl5YVwgOwor5pS+5rC0ID4gaG91c3VpXCA7CivmmIflj5kgPiBzaG91am9cIDsKK+e1ueezuCA+IGtlbnNoaVwgOwor6ZmN562JID4ga291dG91XCA7CivpmbPnmq4gPiBjaGlucGlcIDsKK+aVtOaWiSA+IHNlaXNlaVwgOwor5pW05pWwID4gc2Vpc3V1XCA7CivlpKfmirUgPiB0YWl0ZWlcIDsKK+e0q+iYrSA+IHNoaXJhblwgOwor6ZaL6YqAID4ga2FpZ2luXCA7CivnhKHnrZYgPiBtdXNha3VcIDsKK+ispuWSsyA+IGtlaWdhaVwgOwor5aal5Y2UID4gZGFreW91XCA7Civmlo7miJIgPiBzYWlrYWlcIDsKK+WkqeaJjSA+IHRlbnNhaVwgOwor5pyr44CFID4gc3VlenVlXCA7CivlpYnluaMgPiBob3VoZWlcIDsKK+Wkp+aKgCA+IG9vd2F6YVwgOwor57K+6YysID4gc2VpcmVuXCA7Civml6flnJ8gPiBreXV1ZG9cIDsKK+mbu+aWrSA+IGRlbmRhblwgOwor6Zyw5by+ID4gc2FuZGFuXCA7CivmlZnmoYggPiBreW91YW5cIDsKK+WkqeaIkCA+IHRlbnNlaVwgOwor57mK5oyHID4gc2Vuc2hpXCA7CivlppnlkbMgPiBteW91bWlcIDsKK+mbu+aWhyA+IGRlbmJ1blwgOwor5aSn5oimID4gdGFpc2VuXCA7Civoq7jlp4kgPiBzaG9zaGlcIDsKK+ino+etlCA+IGthaXRvdVwgOwor5piO5YidID4gbWVpc2hvXCA7CivntZ7nvaogPiBrb3V6YWlcIDsKK+Wkp+aIkCA+IHRhaXNlaVwgOwor54Sh56quID4gbXVreXV1XCA7CivmlofmiY0gPiBidW5zYWlcIDsKK+aYqOS7iiA+IHNha2tvblwgOwor57K+6YqFID4gc2VpZG91XCA7CivlpInmlbAgPiBoZW5zdXVcIDsKK+e1qOe3niA+IGp1dXRhblwgOwor5pa55a+4ID4gaG91c3VuXCA7CivoqpPmlocgPiBzZWltb25cIDsKK+WkieaUuSA+IGhlbmthaVwgOwor5pS55q2jID4ga2Fpc2VpXCA7CivnuYrmiYsgPiBzZW5zaHVcIDsKK+Wkp+aFtiA+IHRhaWtlaVwgOwor6Zu25pWXID4gcmVpaGFpXCA7CivplpPpgZMgPiBrYW5kb3VcIDsKK+ijvemZtiA+IHNlaXRvdVwgOwor5pat5bSWID4gZGFuZ2FpXCA7Civopa/ooaMgPiBzaGluJydpXCA7CivlpaXlppkgPiBvdW15b3VcIDsKK+e3j+eCuSA+IHNvdXRlblwgOwor5pS/5qipID4gc2Vpa2VuXCA7Civpm6rmma8gPiBzZWtrZWlcIDsKK+aTjeefrSA+IHNvdXRhblwgOwor57Sw6I+MID4gc2Fpa2luXCA7CivmlaPmlocgPiBzYW5idW5cIDsKK+WkqeaBtSA+IHRlbmtlaVwgOwor5pWj5pWjID4gc2FuemFuXCA7CivlpKnmgakgPiB0ZW4nJ29uXCA7CivlpKfmgqMgPiB0YWlrYW5cIDsKK+aWreWxpCA+IGRhbnNvdVwgOwor5Zyf6b6NID4gbW9ndXJhXCA7CivnuKbmlq0gPiBqdXVkYW5cIDsKK+WjsOacmyA+IHNlaWJvdVwgOwor6Kya5Y+3ID4gc2hpZ291XCA7CivlpKnmgKcgPiB0ZW5zZWlcIDsKK+mdkuWkqSA+IHNlaXRlblwgOwor6Zu75o6iID4gZGVudGFuXCA7Civop6PnpoEgPiBrYWlraW5cIDsKK+WkieaPmyA+IGhlbmthblwgOwor5piP5YCSID4ga29udG91XCA7CivmnJfjgIUgPiByb3Vyb3VcIDsKK+iqv+W6piA+IGNob3Vkb1wgOwor5aWz5ZuaID4gam9zaHV1XCA7CivlpKvlvbkgPiBidXlha3VcIDsKK+mZhOelqCA+IGZ1aHlvdVwgOwor5paw5a2XID4gc2hpbmppXCA7Civmkprns7ggPiBuZW5zaGlcIDsKK+Wkp+W/lyA+IHRhaXNoaVwgOwor5pat5a6aID4gZGFudGVpXCA7Civoq5blrpogPiByb250ZWlcIDsKK+eyiembqiA+IGtveXVraVwgOwor57K+6YG4ID4gc2Vpc2VuXCA7CivlobXnlYwgPiBqaW5rYWlcIDsKK+mbhealvSA+IGdhZ2FrdVwgOwor6ZyK5oSfID4gcmVpa2FuXCA7CivmkLrooYwgPiBrZWlrb3VcIDsKK+irluWtnyA+IHJvbm1vdVwgOwor5pel5ZKMID4gaGl5b3JpXCA7CivntrLnirYgPiBtb3Vqb3VcIDsKK+iqmOaLkCA+IHl1dWthaVwgOwor5aOw5piOID4gc2VpbWVpXCA7CivlpKflvaIgPiBvb2d5b3VcIDsKK+mbo+aWhyA+IG5hbmJ1blwgOwor6Kun5aOwID4ga2Fpc2VpXCA7CivnsbPpo68gPiBiZWloYW5cIDsKK+e2sueJiCA+IGFtaWhhblwgOwor5aOy5paHID4gYmFpYnVuXCA7Civml6XlkJEgPiBoaW5hdGFcIDsKK+eyvui+siA+IHNlaW5vdVwgOwor5paw5ammID4gc2hpbnB1XCA7Civlparlm54gPiBkYWtrYWlcIDsKK+eBq+i2syA+IGhpYXNoaVwgOwor54Sm55yJID4gc2hvdWJpXCA7CivmlL7moKEgPiBob3Vrb3VcIDsKK+mYsuepuiA+IGJvdWt1dVwgOwor5aSp5bqVID4gdGVudGVpXCA7CivlpKrlubMgPiB0YWloZWlcIDsKK+iqreW+jCA+IGRva3Vnb1wgOwor5pel5Y+CID4gbmlzc2FuXCA7Civpmpvmtq8gPiBzYWlnYWlcIDsKK+aXi+WbniA+IHNlbmthaVwgOwor5aWl5ZywID4gb2t1Y2hpXCA7CivlpKnlubMgPiB0ZW5iaW5cIDsKK+mciuaApyA+IHJlaXNlaVwgOwor5aSn5bqXID4gb29kYW5hXCA7CivlpJbmgqMgPiBnYWlrYW5cIDsKK+mbkeabuCA+IHphc3Nob1wgOwor6Zaj6K2wID4ga2FrdWdpXCA7CivngbDosp0gPiBoYWlnYWlcIDsKK+WkieaIkCA+IGhlbnNlaVwgOwor5aSp5bidID4gdGVudGVpXCA7CivntYznt5ogPiBrZWlzZW5cIDsKK+eJqeS9kyA+IG1vdHRhaVwgOwor5aSn5bmFID4gb29oYWJhXCA7CivntYzntrggPiBrZWlyaW5cIDsKK+aYjuS4uyA+IG1laXNodVwgOwor5aSn5birID4gZGFpc2hpXCA7CivlpKnlt6UgPiB0ZW5rb3VcIDsKK+Wkp+W4nSA+IHRhaXRlaVwgOwor6KO96YysID4gc2VpcmVuXCA7CivlpoTli5UgPiBtb3Vkb3VcIDsKK+eElOehnSA+IGVuc2hvdVwgOwor57WQ57SNID4geXVpbm91XCA7Civml4Xlm6MgPiByeW9kYW5cIDsKK+e5geW/mSA+IGhhbmJvdVwgOwor5Zyw6auqID4gamlnYW1pXCA7CivpmLLnpqYgPiBib3VneW9cIDsKK+e0sOiDniA+IHNhaWJvdVwgOwor54mp5Lu2ID4gYnVra2VuXCA7CivlpKnltq4gPiB0ZW5rZW5cIDsKK+ijvemLvCA+IHNlaWtvdVwgOwor5pel5YukID4gbmlra2luXCA7CivlpKflt6cgPiB0YWlrb3VcIDsKK+eCueiMtiA+IHRlbmNoYVwgOwor5pes5YiKID4ganVua2FuXCA7CivntIXol7sgPiBrb3Vzb3VcIDsKK+aWsOWlhyA+IHNoaW5raVwgOwor6Zm254S2ID4gdG91emVuXCA7CivplbfpgJQgPiBjaG91dG9cIDsKK+aRmOiKvSA+IHRla2lnYVwgOwor5aSJ5oWLID4gaGVudGFpXCA7Civmj5vph5EgPiBrYW5raW5cIDsKK+aVmeaOiCA+IGt5b3VqdVwgOwor5pWF5penID4ga29reXV1XCA7Civpm4Tmnb4gPiBvbWF0c3VcIDsKK+aXqeWHuiA+IGhheWFkZVwgOwor5aWH5aaZID4ga2lteW91XCA7CivlpJblvoQgPiBnYWlrZWlcIDsKK+WkluW+gSA+IGdhaXNlaVwgOwor5o6l6aCtID4gc2V0dG91XCA7CivlpJblvaIgPiBnYWlrZWlcIDsKK+iok+eCuSA+IGt1bnRlblwgOwor6KuW5aSWID4gcm9uZ2FpXCA7CivpmZDnlYwgPiBnZW5rYWlcIDsKK+WknOW6lyA+IHlvbWlzZVwgOwor57WD57eaID4gZ2Vuc2VuXCA7Civoq77lkKYgPiBkYWt1aGlcIDsKK+aOoumhjCA+IHRhbmRhaVwgOwor57mK5benID4gc2Vua291XCA7CivnhKHnl5sgPiBtdXRzdXVcIDsKK+eEoeeXhSA+IG11YnlvdVwgOwor5pel5YiKID4gbmlra2FuXCA7CivmlZHmj7QgPiBreXV1ZW5cIDsKK+irluWjhyA+IHJvbmRhblwgOwor5aOf5patID4gcm91ZGFuXCA7CivniYfliIMgPiBrYXRhaGFcIDsKK+aVteW9sSA+IHRla2llaVwgOwor57W555uuID4ga2ludW1lXCA7Civnha7msYEgPiBuaWppcnVcIDsKK+ijvumHjiA+IHN1c29ub1wgOwor6Ki05rGCID4gc29reXV1XCA7CivnhYnngq0gPiByZW50YW5cIDsKK+mch+W6piA+IHNoaW5kb1wgOwor5pW05b2iID4gc2Vpa2VpXCA7CivlpJzluIIgPiB5b2ljaGlcIDsKK+Wil+a4myA+IHpvdWdlblwgOwor6ZuB5pu4ID4gZ2Fuc2hvXCA7CivnuYPluK8gPiBob3V0YWlcIDsKK+ipqeaWhyA+IHNoaWJ1blwgOwor5aSJ5oCnID4gaGVuc2VpXCA7CivopovogZ4gPiBrZW5tb25cIDsKK+Wkp+WxsSA+IHRhaXphblwgOwor6Ku45ZCbID4gc2hva3VuXCA7Civoq67llY8gPiBzaGltb25cIDsKK+mWouilvyA+IGthbnNhaVwgOwor6ZW36LqvID4gY2hvdWt1XCA7CivlpKflsaQgPiB0YWlzb3VcIDsKK+mcnOWusyA+IHNvdWdhaVwgOwor57iE5paHID4gam91bW9uXCA7Civml6XlhYkgPiBuaWtrb3VcIDsKK+aUueaYkyA+IGthaWVraVwgOwor5pen5YSAID4ga3l1dWdpXCA7CivlpKflsL0gPiBkYWlqaW5cIDsKK+WjruaMmSA+IHNvdWt5b1wgOwor57SF6JGJID4gbW9taWppXCA7CivmlL7mlaMgPiBob3VzYW5cIDsKK+aWjuWuriA+IHNhaWd1dVwgOwor6KaL6ICFID4ga2Vuc2hhXCA7Civpm6PmiYAgPiBuYW5zaG9cIDsKK+aVl+aIpiA+IGhhaXNlblwgOwor5aWq5Y+WID4gZGFzc2h1XCA7CivmkbjntKIgPiBtb3Nha3VcIDsKK+eJgOWHoCA+IHNob3VnaVwgOwor5aSq5a6IID4gdGFpc2h1XCA7CivmlonlsIQgPiBzZWlzaGFcIDsKK+e1seeboyA+IHRvdWthblwgOwor5aSn5a+SID4gZGFpa2FuXCA7CivlnYrplpMgPiBib3VrYW5cIDsKK+Wkq+WtkCA+IGZ1dXNoaVwgOwor5aSp5a6IID4gdGVuc2h1XCA7CivlpInlvaIgPiBoZW5rZWlcIDsKK+e0oOiCjCA+IHN1aGFkYVwgOwor6ZuE5patID4geXV1ZGFuXCA7CivlpKrlrZcgPiBmdXRvamlcIDsKK+WkquWtkCA+IHRhaXNoaVwgOwor5aSp5a2rID4gdGVuc29uXCA7Civpm5HmkI0gPiB6YXNzb25cIDsKK+mWkeirhyA+IGthbmRhblwgOwor5pel5YKYID4gaGlnYXNhXCA7CivlpKflrpcgPiB0YWlzb3VcIDsKK+WkqeWtkCA+IHRlbnNoaVwgOwor6Z2p5YW3ID4ga2F3YWd1XCA7CivpnaLliY0gPiBtZW56ZW5cIDsKK+mciuWzsCA+IHJlaWhvdVwgOwor6Zq35pu4ID4gcmVpc2hvXCA7Civop5Lnmq4gPiBrYWt1aGlcIDsKK+ishOWGmSA+IHRvdXNoYVwgOwor5o6i6Zm6ID4gdGFua2VuXCA7Civoppbnt5ogPiBzaGlzZW5cIDsKK+aVsOW5tCA+IHN1dW5lblwgOwor5aWu5YqxID4gZnVucmVpXCA7CivpnZ7lipsgPiBoaXJpa2lcIDsKK+irreWRiiA+IHl1a29rdVwgOwor6ZaL6KybID4ga2Fpa291XCA7CivmloflrpggPiBidW5rYW5cIDsKK+aXrOS9mSA+IGp1bicneW9cIDsKK+majuautSA+IGthaWRhblwgOwor6Z2S5Y+yID4gc2Vpc2hpXCA7CivntJnog4wgPiBzaGloYWlcIDsKK+e0heiMtiA+IGtvdWNoYVwgOwor57Sw57e7ID4gc2FpY2hpXCA7Civln4volLUgPiBtYWl6b3VcIDsKK+ijvemAoCA+IHNlaXpvdVwgOwor6ZyK5bGxID4gcmVpemFuXCA7CivnhrHmiKYgPiBuZXNzZW5cIDsKK+ijj+mWgCA+IHVyYW1vblwgOwor5aSJ5bm7ID4gaGVuZ2VuXCA7CivpnIrlsYsgPiB0YW1heWFcIDsKK+Wil+awtCA+IHpvdXN1aVwgOwor6Kyb5LitID4ga291anV1XCA7Civpm6LmhIEgPiByaXNodXVcIDsKK+mbu+W3pSA+IGRlbmtvdVwgOwor5pWj5by+ID4gc2FuZGFuXCA7CivmlpzloZQgPiBzaGF0b3VcIDsKK+WkmuWwkSA+IHRhc2hvdVwgOwor5aSc5a+SID4geW96YW11XCA7Civoq7fliLogPiBmdXVzaGlcIDsKK+WhqeeFriA+IHNoaW9uaVwgOwor5aSc5a6uID4geW9taXlhXCA7CivpnLLlm70gPiByb2tva3VcIDsKK+iruOWIgyA+IG1vcm9oYVwgOwor5aSW5bGkID4gZ2Fpc291XCA7Civln4vokawgPiBtYWlzb3VcIDsKK+e2v+avmyA+IHdhdGFnZVwgOwor57WQ56S+ID4ga2Vzc2hhXCA7CivopJLosrYgPiBob3VoZW5cIDsKK+e0r+e0ryA+IHJ1aXJ1aVwgOwor5Zyw6ZyKID4gY2hpcmVpXCA7CivpnIrlrp0gPiByZWlob3VcIDsKK+WcsOmchyA+IGppc2hpblwgOwor5aCx55+lID4gaG91Y2hpXCA7CivntLDns7ggPiBzYWlzaGlcIDsKK+WknOWtpiA+IHlhZ2FrdVwgOwor6Kqk5a+pID4gZ29zaGluXCA7Civml6XkvIogPiBuaWNoaWlcIDsKK+mYsueWqyA+IGJvdWVraVwgOwor6KeS55WMID4ga2Fra2FpXCA7CivmlY/mhJ8gPiBiaW5rYW5cIDsKK+aVt+WxhSA+IHNoaWtpaVwgOwor54Kt6IK6ID4gdGFuaGFpXCA7Civlpb3kvosgPiBrb3VyZWlcIDsKK+WllOWRvSA+IGhvbm1laVwgOwor54WZ5q+SID4gZW5kb2t1XCA7CivoqoflvLUgPiBrb2Nob3VcIDsKK+eGseaEjyA+IG5ldHN1aVwgOwor5pa55ZCRID4gaG91a291XCA7CivntKvntLogPiBzaGlrb25cIDsKK+WcsOmajiA+IGNoaWthaVwgOwor5pWZ5b6SID4ga3lvdXRvXCA7Civopo/ntIQgPiBraXlha3VcIDsKK+iruOWFhCA+IHNob2tlaVwgOwor6Ku45YWDID4gc2hvZ2VuXCA7Civml6nkuJYgPiBzb3VzZWlcIDsKK+mWi+ilnyA+IGthaWtpblwgOwor5pac5Z2RID4gc2hha291XCA7CivnuKvlt6UgPiBob3Vrb3VcIDsKK+aXheWIuCA+IHJ5b2tlblwgOwor6Zqj5p2RID4gcmluc29uXCA7CivlpKnlpJYgPiB0ZW5nYWlcIDsKK+ipqeaJjSA+IHNoaXNhaVwgOwor5aCh56SBID4gaG9zaG91XCA7CivlpKnlpIkgPiB0ZW5wZW5cIDsKK+mdouWAkiA+IG1lbmRvdVwgOwor5pel5LitID4gaGluYWthXCA7CivlpKnlo7AgPiB0ZW5zZWlcIDsKK+aXi+WFiSA+IHNlbmtvdVwgOwor5aWR5ZCIID4ga2VpZ291XCA7CivpnIrlqpIgPiByZWliYWlcIDsKK+e3muadoSA+IHNlbmpvdVwgOwor6Kej54mIID4ga2FpaGFuXCA7CivmlbTlrrkgPiBzZWl5b3VcIDsKK+aWsOWRsyA+IHNoaW5taVwgOwor5aSp5aOMID4gdGVuam91XCA7CivlpKflpIkgPiB0YWloZW5cIDsKK+e2mua8lCA+IHpva3VlblwgOwor5aOu5b+rID4gc291a2FpXCA7Civoo7jouqsgPiByYXNoaW5cIDsKK+exs+mKrSA+IGJlaXNlblwgOwor54ax5oCnID4gbmVzc2VpXCA7Civoqp7lraYgPiBnb2dha3VcIDsKK+iqmOWwjiA+IHl1dWRvdVwgOwor6ZuR5oSfID4gemFra2FuXCA7Civmlo7loLQgPiBzYWlqb3VcIDsKK+imgee2sSA+IHlvdWtvdVwgOwor57Sv566XID4gcnVpc2FuXCA7Civmloflo6sgPiBidW5zaGlcIDsKK+eCuee3miA+IHRlbnNlblwgOwor5aWz5L2TID4gbnlvdGFpXCA7CivnuIHmiJogPiBlbnNla2lcIDsKK+mdouS9kyA+IG1lbnRlaVwgOwor5paH5aOHID4gYnVuZGFuXCA7CivlpYnlkYggPiBob3V0ZWlcIDsKK+aSg+egtCA+IGdla2loYVwgOwor57K+6KO9ID4gc2Vpc2VpXCA7CivpnaLkvJogPiBtZW5rYWlcIDsKK+e0oeezuCA+IGJvdXNoaVwgOwor5aSp5aCCID4gdGVuZG91XCA7Civpm6LluoogPiByaXNob3VcIDsKK+Wik+aomSA+IGJvaHlvdVwgOwor6ZqO5qKvID4ga2FpdGVpXCA7Civlo7LlupcgPiBiYWl0ZW5cIDsKK+irluWPoiA+IHJvbnNvdVwgOwor6Ku45L6vID4gc2hva291XCA7Civpm7vlrZAgPiBkZW5zaGlcIDsKK+eIteS9jSA+IHNoYWt1aVwgOwor6KW/57WMID4gc2Vpa2VpXCA7Civoqanmg7MgPiBzaGlzb3VcIDsKK+WhiueKtiA+IGthaWpvdVwgOwor6Kaz55u4ID4ga2Fuc291XCA7CivlpbPkurogPiBueW9uaW5cIDsKK+aUueaGsiA+IGthaWtlblwgOwor5aSn5Z+fID4gdGFpaWtpXCA7CivntbbniYggPiB6ZXBwYW5cIDsKK+mbquW0qSA+IG5hZGFyZVwgOwor6Kmp5oOFID4gc2hpam91XCA7CivlpJblp5MgPiBnYWlzZWlcIDsKK+iogOa1tyA+IGdlbmthaVwgOwor54Wn5p+7ID4gc2hvdXNhXCA7CivmlL/mg4UgPiBzZWlqb3VcIDsKK+e0m+e0myA+IGZ1bnB1blwgOwor5aWP5Yq5ID4gc291a291XCA7Civlo67lubQgPiBzb3VuZW5cIDsKK+Wkp+WeiyA+IG9vZ2F0YVwgOwor5aOw5bivID4gc2VpdGFpXCA7CivkuIrjgIUgPiBqb3Vqb3VcIDsKK+Wlj+WKnyA+IHNvdWtvdVwgOwor57SU57a/ID4ganVubWVuXCA7CivlpKnlnLAgPiB0ZW5jaGlcIDsKK+Whqea5ryA+IHNoaW95dVwgOwor6Kmy5b2TID4gZ2FpdG91XCA7CivlnZHpgZMgPiBrb3Vkb3VcIDsKK+Wls+S4rSA+IGpvY2h1dVwgOwor5r+A6auYID4gZ2Vra291XCA7CivmjqLpibEgPiB0YW5rb3VcIDsKK+e3j+abuCA+IHNvdXNob1wgOwor5aSW5aWXID4gZ2FpdG91XCA7Civntr/mo5IgPiBtZW5ib3VcIDsKK+aUr+aJgCA+IHNoaXNob1wgOwor5o6h6YmxID4gc2Fpa291XCA7CivlpKflnLAgPiBkYWljaGlcIDsKK+e0lOe1uSA+IGp1bmtlblwgOwor5pS+5oGjID4gaG91c2hpXCA7CivmloflnosgPiBidW5rZWlcIDsKK+mWgOihmyA+IG1vbicnZWlcIDsKK+mbjOaApyA+IHNoaXNlaVwgOwor5LiH44CFID4gbWFubWFuXCA7CivlnoLoqJMgPiBzdWlrdW5cIDsKK+Wkp+WcjyA+IHRhaWtlblwgOwor6Ziy54qvID4gYm91aGFuXCA7Civoqo3lrpogPiBuaW50ZWlcIDsKK+eBq+iWrCA+IGtheWFrdVwgOwor54ax5bivID4gbmV0dGFpXCA7Civnt7TmiJAgPiByZW5zZWlcIDsKK+eEmueBqyA+IHRha2liaVwgOwor5pS55oKqID4ga2FpYWt1XCA7CivmlL7lv7UgPiBob3VuZW5cIDsKK+Wlh+WLnSA+IGtpc2hvdVwgOwor6ZyK5aC0ID4gcmVpam91XCA7CivntJTns7sgPiBqdW5rZWlcIDsKK+WlouS+iCA+IHNoYXNoaVwgOwor5aWl5LydID4gb2t1ZGVuXCA7CivloanmtbQgPiBlbnlva3VcIDsKK+irh+WQiCA+IGRhbmdvdVwgOwor5LiB44CFID4gdG91dG91XCA7CivoqanlvaIgPiBzaGlrZWlcIDsKK+mciuWfnyA+IHJlaWlraVwgOwor6KuW5YikID4gcm9ucGFuXCA7Civnha7mlrkgPiBuaWthdGFcIDsKK+eGiuaJiyA+IGt1bWFkZVwgOwor57SU57KLID4ganVuc3VpXCA7Civoqq3lm7MgPiBkb2t1enVcIDsKK+mbhOaApyA+IHl1dXNlaVwgOwor54Gr6JOLID4gaGlidXRhXCA7Civoo4Xph5ggPiBzb3V0ZWlcIDsKK+iqv+WSjCA+IGNob3V3YVwgOwor6KiC5q2jID4gdGVpc2VpXCA7CivnhafmmKAgPiBzaG91ZWlcIDsKK+mbhOW/lyA+IHl1dXNoaVwgOwor6Kq/5ZGzID4gY2hvdW1pXCA7CivmjrLovIkgPiBrZWlzYWlcIDsKK+aXheS6uiA+IHJ5b2ppblwgOwor5peF5LqtID4gcnlvdGVpXCA7Civmj5voqIAgPiBrYW5nZW5cIDsKK+e3j+aVsCA+IHNvdXN1dVwgOwor6ZyK5ZywID4gcmVpY2hpXCA7Civmj5roqIAgPiB5b3VnZW5cIDsKK+Wkp+WWqiA+IHRhaXNvdVwgOwor6ZuR5be+ID4gem91a2luXCA7CivlpKnllZMgPiB0ZW5rZWlcIDsKK+maheacqCA+IHN1bWlraVwgOwor5aWJ5YWsID4gaG91a291XCA7Civnt4/mlKwgPiBzb3VyYW5cIDsKK+e3qOaIkCA+IGhlbnNlaVwgOwor6Kaq55aOID4gc2hpbnNvXCA7Civmlrnkvr8gPiBob3ViZW5cIDsKK+mbouWuriA+IHJpa3l1dVwgOwor57Wi54ibID4ga2VucmFuXCA7CivlpJblnLAgPiBnYWljaGlcIDsKK+WkluWcqCA+IGdhaXphaVwgOwor5aGp5rCXID4gc2hpb2tlXCA7CivmjqXov5EgPiBzZWtraW5cIDsKK+mbhOW8gSA+IHl1dWJlblwgOwor57Gz6LuNID4gYmVpZ3VuXCA7Civoqanlt7sgPiBzaGlrYW5cIDsKK+aUueW7gyA+IGthaWhhaVwgOwor6ZqO5pWwID4ga2Fpc3V1XCA7CivlnJLplbcgPiBlbmNob3VcIDsKK+WcsOmHkSA+IGppZ2FuZVwgOwor57ep5oWiID4ga2FubWFuXCA7Civpm7vloLEgPiBkZW5wb3VcIDsKK+iqv+WNsCA+IGNob3VpblwgOwor6Ziy54G9ID4gYm91c2FpXCA7CivlpKnlkb0gPiB0ZW5tZWlcIDsKK+expOmBiyA+IGt1aml1blwgOwor6KOc6LazID4gaG9zb2t1XCA7Civmv4Hpn7MgPiBkYWt1b25cIDsKK+Wkp+WSjCA+IHlhbWF0b1wgOwor6KuH5YikID4gZGFucGFuXCA7CivmlbTlnLAgPiBzZWljaGlcIDsKK+Wkp+WRvSA+IHRhaW1laVwgOwor6ZW36JuHID4gY2hvdWRhXCA7Civmlrnku4ogPiBob3Vrb25cIDsKK+aPkOiogCA+IHRlaWdlblwgOwor6Ki85ougID4gc2hvdWtvXCA7CivntIXnsokgPiBiZW5pa29cIDsKK+WkquWQjiA+IHRhaWtvdVwgOwor5Zyw6YWSID4gaml6YWtlXCA7CivpmrvlvbEgPiBzZWtpZWlcIDsKK+Wjq+WumCA+IHNoaWthblwgOwor5Zyf6Y2LID4gZG9uYWJlXCA7CivlpKnlkI4gPiB0ZW5rb3VcIDsKK+eBsOiJsiA+IGhhaWlyb1wgOwor5aSp5Y+wID4gdGVuZGFpXCA7Civns7vntbEgPiBrZWl0b3VcIDsKK+Wkp+WQmyA+IHRhaWt1blwgOwor6Zmw5qC4ID4gaW5rYWt1XCA7CivlpKflkIwgPiBkYWlkb3VcIDsKK+mat+W+kyA+IHJlaWp1dVwgOwor57Sw55uuID4gaG9zb21lXCA7CivmlK/lvIEgPiBzaGliZW5cIDsKK+aPkOimgSA+IHRlaXlvdVwgOwor54Gr6IqxID4gaGliYW5hXCA7CivlpInlnosgPiBoZW5rZWlcIDsKK+e0lOeoriA+IGp1bnNodVwgOwor6ZuR5bGFID4gemFra3lvXCA7CivpmY3msLQgPiBrb3VzdWlcIDsKK+aWueS4iCA+IGhvdWpvdVwgOwor5Z+L57eaID4gbWFpc2VuXCA7CivmlbDlm54gPiBzdXVrYWlcIDsKK+aWh+WQjSA+IGJ1bm1laVwgOwor5aWV5LiWID4gZWtpc2VpXCA7Civnt6nmgKAgPiBrYW50YWlcIDsKK+ino+azlSA+IGthaWhvdVwgOwor5pSv5bqXID4gc2hpdGVuXCA7Civln7rnn7MgPiBraXNla2lcIDsKK+ijveiiiyA+IHNlaXRhaVwgOwor6aC744CFID4gaGlucGluXCA7CivmlpzlhYkgPiBzaGFrb3VcIDsKK+WlieS9kyA+IGhvdXRhaVwgOwor6ZmE5rOoID4gZnVjaHV1XCA7CivmlqXlgJkgPiBzZWtrb3VcIDsKK+mWouiBryA+IGthbnJlblwgOwor5aWJ5Ly6ID4gaG91c2hpXCA7CivlpKfljYogPiB0YWloYW5cIDsKK+ikkOiXuyA+IGthc3NvdVwgOwor54W95oOFID4gc2Vuam91XCA7CivmlbXllrYgPiB0ZWtpZWlcIDsKK+eEoeavkiA+IG11ZG9rdVwgOwor5aSn5YyZID4gb29zYWppXCA7CivlnKjpg7cgPiB6YWlnb3VcIDsKK+e1tua1tyA+IHpla2thaVwgOwor6ZuE5bOwID4geXV1aG91XCA7CivlpYnku5UgPiBob3VzaGlcIDsKK+e0jeeojiA+IG5vdXplaVwgOwor5Zyf6YecID4gZG9nYW1hXCA7CivlpKfli6IgPiB0YWl6ZWlcIDsKK+Wlj+S4iiA+IHNvdWpvdVwgOwor5pat5LqkID4gZGFua291XCA7Civnt5LmiKYgPiBjaG9zZW5cIDsKK+aUvuWwhCA+IGhvdXNoYVwgOwor5aSn5YuHID4gdGFpeXV1XCA7CivoppbnlYwgPiBzaGlrYWlcIDsKK+irluS6iSA+IHJvbnNvdVwgOwor6KOz6KO+ID4gbW9zdXNvXCA7CivoqablsIQgPiBzaGlzaGFcIDsKK+mZpOaguCA+IGpva2FrdVwgOwor5aSn5YqfID4gdGFpa291XCA7Civop6Pmr5IgPiBnZWRva3VcIDsKK+ipqeWulyA+IHNoaXNvdVwgOwor5paH5YuiID4gYnVuc2VpXCA7CivpmbDmmqYgPiBpbnJla2lcIDsKK+eEoeassiA+IG11eW9rdVwgOwor5aSq5YidID4gdGFpc2hvXCA7CivmlaPlnKggPiBzYW56YWlcIDsKK+eCreekpiA+IHRhbmtvdVwgOwor54Gr6ISaID4gaGlhc2hpXCA7CivoqqPlkYogPiBidWtva3VcIDsKK+WkqeWIkSA+IHRlbmtlaVwgOwor5aSp5YiGID4gdGVuYnVuXCA7Civlo67lpKcgPiBzb3VkYWlcIDsKK+ihsOmgvSA+IHN1aXRhaVwgOwor54K5552bID4gdGVuc2VpXCA7CivlpKfliIYgPiBkYWlidW5cIDsKK+WjruWjqyA+IHNvdXNoaVwgOwor5pWX5aCxID4gaGFpaG91XCA7CivlpJblkJEgPiBnYWlrb3VcIDsKK+Wkp+WIgCA+IGRhaXRvdVwgOwor5pS75a6IID4ga291c2h1XCA7Civpm5HlqZogPiB6YWtrb25cIDsKK+aQjeiAlyA+IHNvbm1vdVwgOwor54K555y8ID4gdGVuZ2FuXCA7CivlnKfov6sgPiBhcHBha3VcIDsKK+WkluWPsiA+IGdhaXNoaVwgOwor5aSn5YehID4gb295b3NvXCA7Civmv6vpgKAgPiByYW56b3VcIDsKK+eGlOWyqSA+IHlvdWdhblwgOwor6ZqP5omAID4genVpc2hvXCA7CivmlLnlrpogPiBrYWl0ZWlcIDsKK+mbheWuoiA+IGdha2FrdVwgOwor57Wx5rK7ID4gdG91Y2hpXCA7CivlpKnlhbUgPiB0ZW5wZWlcIDsKK+ims+eCuSA+IGthbnRlblwgOwor6Zqg5b+NID4gaW4nJ25pblwgOwor5aSn5YW4ID4gdGFpdGVuXCA7CivpmaTmnI0gPiBqb2Z1a3VcIDsKK+Wkp+WFrCA+IHRhaWtvdVwgOwor5aSn5YWoID4gdGFpemVuXCA7CivmlbTlkIggPiBzZWlnb3VcIDsKK+eyvuiIjiA+IHNob3VqYVwgOwor5aSn5YWEID4gdGFpa2VpXCA7CivoqZ7lrpcgPiBzaGlzb3VcIDsKK+WjsOWfnyA+IHNlaWlraVwgOwor6Zu75ZG9ID4gZGVubWVpXCA7Civoo5zoqLsgPiBob2NodXVcIDsKK+iho+mjnyA+IGlzaG9rdVwgOwor54Sh5qeYID4gYnV6YW1hXCA7CivmkbjniYwgPiBtb3VwYWlcIDsKK+aWh+WFuCA+IGJ1bnRlblwgOwor57ea5b2iID4gc2Vua2VpXCA7CivpnIrliaMgPiByZWlrZW5cIDsKK+aVsOWQjSA+IHN1dW1laVwgOwor6KGo6Z+zID4gaHlvdW9uXCA7CivlpJbli6QgPiBnYWlraW5cIDsKK+mciuWJjSA+IHJlaXplblwgOwor6KOc6KeSID4gaG9rYWt1XCA7Civpmo/mhJ8gPiB6dWlrYW5cIDsKK+eCr+ecvCA+IGtlaWdhblwgOwor54Wp5oK2ID4gaGFubW9uXCA7CivoqIjmlbAgPiBrZWlzdXVcIDsKK+WknOWHqiA+IHlvbmFnaVwgOwor6ZqP5oOzID4genVpc291XCA7CivpmLLmsLQgPiBib3VzdWlcIDsKK+aOqOirliA+IHN1aXJvblwgOwor5aSJ5ZCNID4gaGVubWVpXCA7CivntabmsrkgPiBreXV1eXVcIDsKK+iogOaYjiA+IGdlbm1laVwgOwor5aSp5YCZID4gdGVua291XCA7CivntYLnhIkgPiBzaHV1ZW5cIDsKK+eGseWeiyA+IG5la2tlaVwgOwor6Zu35ZCNID4gcmFpbWVpXCA7Civpm7flkIwgPiByYWlkb3VcIDsKK+mcp+S4rSA+IG11Y2h1dVwgOwor5Zub6Z2iID4gc2hpbWVuXCA7Civns5/ns6AgPiBzb3Vrb3VcIDsKK+aVsOWNgyA+IHN1dXNlblwgOwor5pWw5Y2BID4gc3V1anV1XCA7CivopoHnlKggPiB5b3V5b3VcIDsKK+e2muaYoCA+IHpva3VlaVwgOwor6Zmk5palID4gam9zZWtpXCA7Civpm4Tlp78gPiB5dXVzaGlcIDsKK+aUueWnkyA+IGthaXNlaVwgOwor5aSW5YiGID4gZ2FpYnVuXCA7CivnhZbmiL8gPiBkYW5ib3VcIDsKK+aUv+WkiSA+IHNlaWhlblwgOwor5Z+055SfID4gaGFueXV1XCA7CivlpJblh7ogPiBzb3RvZGVcIDsKK+mbsuWRkSA+IHdhbnRhblwgOwor5aSV5YiKID4geXV1a2FuXCA7Civnhanlv5kgPiBoYW5ib3VcIDsKK+e1kOa7niA+IGtldHRhaVwgOwor57Wo5q+vID4ganV1dGFuXCA7Civngonnq68gPiByb2JhdGFcIDsKK+mbkeWgsSA+IHphcHBvdVwgOwor6Kmp5aOHID4gc2hpZGFuXCA7CivlpKfkvr8gPiBkYWliZW5cIDsKK+e1qOavmyA+IGp1dW1vdVwgOwor5aSp5L2/ID4gdGVuc2hpXCA7CivpmLLmraIgPiBib3VzaGlcIDsKK+e0r+eKryA+IHJ1aWhhblwgOwor5o6o6KiIID4gc3Vpa2VpXCA7Civnhaflv5wgPiBzaG91b3VcIDsKK+WkqeS9kyA+IHRlbnRhaVwgOwor57ir5ZCIID4gaG91Z291XCA7Civpm7vli5UgPiBkZW5kb3VcIDsKK+eEtuaWryA+IHNvdWtvdVwgOwor5aSn5L2/ID4gdGFpc2hpXCA7CivoqLzlt6YgPiBzaG91c2FcIDsKK+Wbm+maoyA+IHNoaXJpblwgOwor6Zu75Yq5ID4gZGVua291XCA7CivlpJblhbggPiBnYWl0ZW5cIDsKK+e0sOeJhyA+IHNhaWhlblwgOwor6KaL54y/ID4gbWl6YXJ1XCA7CivlpKfkvZMgPiBkYWl0YWlcIDsKK+Wbm+mahSA+IHlvc3VtaVwgOwor5aCF54miID4ga2Vucm91XCA7CivngavnuIQgPiBoaW5hd2FcIDsKK+aVpuWOmiA+IHRvbmtvdVwgOwor5pS55aSJID4ga2FpaGVuXCA7CivlpInli5UgPiBoZW5kb3VcIDsKK+eFp+W9sSA+IHNob3VlaVwgOwor6ZqP5b6TID4genVpanV1XCA7Civpm4TlpKcgPiB5dXVkYWlcIDsKK+aWh+S+iyA+IGJ1bnJlaVwgOwor6ZmN5p2/ID4ga291YmFuXCA7CivlpKfkvJogPiB0YWlrYWlcIDsKK+mbo+WVjyA+IG5hbm1vblwgOwor5pWZ5ZSGID4ga3lvdXNhXCA7CivmjqLoqKogPiB0YW5ib3VcIDsKK+aNu+i7oiA+IG5lbnRlblwgOwor6KGX6aCtID4gZ2FpdG91XCA7CivlpKfku7sgPiB0YWluaW5cIDsKK+mbhOWjriA+IHl1dXNvdVwgOwor5paH5L2TID4gYnVudGFpXCA7CivlpKfku7AgPiBvb2d5b3VcIDsKK+aVmeWToSA+IGt5b3VpblwgOwor5Zuz6YyyID4genVyb2t1XCA7CivlpKfku6MgPiBkYWlkYWlcIDsKK+WkqeS6lSA+IHRlbmpvdVwgOwor5o6l6KaLID4gc2Vra2VuXCA7Civoo4/opZ8gPiB1cmFlcmlcIDsKK+Wcn+i2syA+IGRvc29rdVwgOwor5aSn5Lq6ID4gZGFpbmluXCA7Civmlo7kuLsgPiBzYWlzaHVcIDsKK+iok+aIkiA+IGt1bmthaVwgOwor5aSW5YK1ID4gZ2Fpc2FpXCA7CivmlYXlm70gPiBrb2tva3VcIDsKK+aOiOizniA+IGp1c2hvdVwgOwor6Kmp5Z6LID4gc2hpa2VpXCA7CivopovniakgPiBtaW1vbm9cIDsKK+e1jOa4iCA+IGtlaXphaVwgOwor57eP5bilID4gc291c3VpXCA7CivlpKnkuLwgPiB0ZW5kb25cIDsKK+WkqeS4uyA+IHRlbnNodVwgOwor5aSn5LmxID4gdGFpcmFuXCA7Civngq3nlLAgPiB0YW5kZW5cIDsKK+eFp+W6piA+IHNob3Vkb1wgOwor6ZqK5b2iID4gdGFpa2VpXCA7Civln47noKYgPiBqb3VzYWlcIDsKK+e1gua8lCA+IHNodXVlblwgOwor5paH5Lq6ID4gYnVuamluXCA7Civoqq3kvJogPiBkb2trYWlcIDsKK+Wkp+S5lyA+IGRhaWpvdVwgOwor5aOy5ZOBID4gYmFpaGluXCA7CivlpKnkuI4gPiB0ZW4nJ3lvXCA7CivlpKnkuIogPiB0ZW5qb3VcIDsKK+Wdh+ihoSA+IGtpbmtvdVwgOwor5pS75Z+OID4ga291am91XCA7CivlnLDorKEgPiBqaXV0YWlcIDsKK+imlueCuSA+IHNoaXRlblwgOwor5pKS5rC0ID4gc2Fuc3VpXCA7Civoo73ojLYgPiBzZWljaGFcIDsKK+eBr+exoCA+IHRvdXJvdVwgOwor6Kqk5L+hID4gZ29zaGluXCA7Civpm7vlhYkgPiBkZW5rb3VcIDsKK+WknOS8vSA+IHlvdG9naVwgOwor57mL5LqJID4ga2Vpc291XCA7CivnhKHmmpcgPiBtdXlhbWlcIDsKK+ijgeiosSA+IHNhaWt5b1wgOwor5pOF5patID4gc2VuZGFuXCA7CivlpJrkvZwgPiB0YXNha3VcIDsKK+eHkOWFiSA+IHJpbmtvdVwgOwor6ZW36ICFID4gY2hvdWphXCA7CivmlaPliaQgPiBzYW56YWlcIDsKK+WcsOiqjCA+IGNoaXNoaVwgOwor5aOy5ZCNID4gYmFpbWVpXCA7Civpmb3mgKcgPiB5b3VzZWlcIDsKK+WkouS4rSA+IG11Y2h1dVwgOwor6Zu35YWJID4gcmFpa291XCA7CivloYrmoLkgPiBrYWlrb25cIDsKK+eEmuabuCA+IGZ1bnNob1wgOwor6KSq57SFID4gdGFpa291XCA7CivmkYLnlJ8gPiBzZXNzZWlcIDsKK+mWouepuiA+IGthbmt1dVwgOwor54Sh5piOID4gbXVteW91XCA7CivmlZnljLogPiBreW91a3VcIDsKK+eyvue3uyA+IHNlaWNoaVwgOwor57K+57e0ID4gc2VpcmVuXCA7Civlm73pgYsgPiBrb2t1dW5cIDsKK+mWiee1jCA+IGhlaWtlaVwgOwor5pWZ5YyWID4ga3lvdWthXCA7CivntbnmnKwgPiBrZW5wb25cIDsKK+ihgOmkhSA+IGtlcHBlaVwgOwor5aSW5LydID4gZ2FpZGVuXCA7Civpm7vlgZwgPiBkZW50ZWlcIDsKK+mghuOAhSA+IGp1bmp1blwgOwor5pWw5YCkID4gc3V1Y2hpXCA7CivplqLnqI4gPiBrYW56ZWlcIDsKK+aVmeWLmSA+IGt5b3VtdVwgOwor5pWw5YCNID4gc3V1YmFpXCA7CivnhKHmlpkgPiBtdXJ5b3VcIDsKK+WknOS4rSA+IHlvbmFrYVwgOwor6Kej5piOID4ga2FpbWVpXCA7CivnhKHmlbUgPiBtdXRla2lcIDsKK+aVo+WFtSA+IHNhbnBlaVwgOwor57WM5rC0ID4ga2Vpc3VpXCA7CivlpJbkurogPiBnYWlqaW5cIDsKK+e0meeJhyA+IHNoaWhlblwgOwor5aSW5LqkID4gZ2Fpa291XCA7Civlo4floLQgPiBkYW5qb3VcIDsKK+aVo+WFiSA+IHNhbmtvdVwgOwor5o2o6LqrID4gc3V0ZW1pXCA7CivpmpzlrZAgPiBzaG91amlcIDsKK+eyvue0sCA+IHNlaXNhaVwgOwor5aGX5paZID4gdG9yeW91XCA7CivntKDnhLwgPiBzdXlha2lcIDsKK+e2meaKlSA+IGtlaXRvdVwgOwor54WZ5bmVID4gZW5tYWt1XCA7CivlpJbkubEgPiBnYWlyYW5cIDsKK+mbkeWTgSA+IHphcHBpblwgOwor6Kej5pWjID4ga2Fpc2FuXCA7Civnsr7ns5YgPiBzZWl0b3VcIDsKK+mXmOeKrCA+IHRvdWtlblwgOwor5pOx5bqnID4ga2FrdXphXCA7Civnsr7nsr4gPiBzZWl6ZWlcIDsKK+ino+aUviA+IGthaWhvdVwgOwor57W25pmvID4gemVra2VpXCA7CivoqabllY8gPiBzaGltb25cIDsKK+ioseWuuSA+IGt5b3lvdVwgOwor6ZqO5bGkID4ga2Fpc291XCA7CivlnLDoo4EgPiBjaGlzYWlcIDsKK+eyvueyiyA+IHNlaXN1aVwgOwor57K+57KJID4gc2VpZnVuXCA7Civmj7rnsYMgPiB5b3VyYW5cIDsKK+aNlemAuCA+IGhvaXRzdVwgOwor57Sb54S2ID4gZnVuemVuXCA7CivmlZHliqkgPiBreXV1am9cIDsKK+eyvuexsyA+IHNlaW1haVwgOwor5pS55ZaEID4ga2FpemVuXCA7CivlpInkvZMgPiBoZW50YWlcIDsKK+aVrOS9kyA+IGtlaXRhaVwgOwor6KaB54K5ID4geW91dGVuXCA7CivlnKfoppogPiBha2tha3VcIDsKK+aVsOS6uiA+IHN1dW5pblwgOwor6Zmw5b6zID4gaW50b2t1XCA7CivmlZnlhbcgPiBreW91Z3VcIDsKK+eBq+eoriA+IGhpZGFuZVwgOwor54K554K5ID4gdGVudGVuXCA7CivoqJjluLMgPiBraWNob3VcIDsKK+ioreWumiA+IHNldHRlaVwgOwor5o6o6JamID4gc3Vpc2VuXCA7Civngo7nl4cgPiBlbnNob3VcIDsKK+aOg+iojiA+IHNvdXRvdVwgOwor6KGG6ZmiID4gc2h1dWluXCA7CivoqanlkJ8gPiBzaGlnaW5cIDsKK+eCueeBryA+IHRlbnRvdVwgOwor54Od5rCRID4gam91bWluXCA7CivoqaDllLEgPiBlaXNob3VcIDsKK+WkieS6uiA+IGhlbmppblwgOwor57Sv5ribID4gcnVpZ2VuXCA7CivnsZDoo70gPiB0b3VzZWlcIDsKK+e2seW4uCA+IGtvdWpvdVwgOwor57K+566hID4gc2Vpa2FuXCA7CivntJTnhLYgPiBqdW56ZW5cIDsKK+mYsuaakSA+IGJvdXNob1wgOwor57K+566XID4gc2Vpc2FuXCA7CivmlbDkuIcgPiBzdXVtYW5cIDsKK+Wegue3miA+IHN1aXNlblwgOwor6ZaJ56uvID4gaGVpdGFuXCA7CivlpInkubEgPiBoZW5yYW5cIDsKK+mWouefpSA+IGthbmNoaVwgOwor6Kmp5Y+LID4gc2hpeXV1XCA7CivntZDmp4sgPiBrZWtrb3VcIDsKK+Wjq+WIhiA+IHNoaWJ1blwgOwor6Zmq5b6TID4gYmFpanV1XCA7CivooaPpiaIgPiBpaGF0c3VcIDsKK+Wbm+mHjSA+IHNoaWp1dVwgOwor5r2u6Z+zID4gY2hvdW9uXCA7CivooqvopoYgPiBoaWZ1a3VcIDsKK+WjsOWEqiA+IHNlaXl1dVwgOwor6Zm25belID4gdG91a291XCA7CivmlaPkvJogPiBzYW5rYWlcIDsKK+aMh+mgrSA+IHNoaXRvdVwgOwor5pS55ZCNID4ga2FpbWVpXCA7Civngq/ngq8gPiBrZWlrZWlcIDsKK+aUueWPtyA+IGthaWdvdVwgOwor6KO957y2ID4gc2Vpa2FuXCA7Civoqozku6MgPiBzaGlkYWlcIDsKK+ilv+a8uCA+IHNlaXplblwgOwor6KGw6YCAID4gc3VpdGFpXCA7CivmlaPkubEgPiBzYW5yYW5cIDsKK+mZo+W9oiA+IGppbmtlaVwgOwor54Kt54GrID4gc3VtaWJpXCA7Civlm73osrsgPiBrb2t1aGlcIDsKK+aUv+WKtCA+IHNlaXJvdVwgOwor5Zyw6JmrID4gbWltaXp1XCA7Civlo67lgaUgPiBzb3VrZW5cIDsKK+ims+aihSA+IGthbmJhaVwgOwor5Zue6YGKID4ga2FpeXV1XCA7CivoprPmoZwgPiBrYW4nJ291XCA7CivmlLvli6IgPiBrb3VzZWlcIDsKK+iqjOS4iiA+IHNoaWpvdVwgOwor57Sw5rCRID4gc2FpbWluXCA7Civlm57pgIEgPiBrYWlzb3VcIDsKK+imgea4ryA+IHlvdWtvdVwgOwor5aCF5rCXID4ga2F0YWdpXCA7Civpm4Tli4EgPiB5dXVrZWlcIDsKK+WeguevhCA+IHN1aWhhblwgOwor54Sh5oW+ID4gbXV5b2t1XCA7Civpmb3lrZAgPiB5b3VzaGlcIDsKK+mbo+S7tiA+IG5hbmtlblwgOwor6Zmk5bmVID4gam9tYWt1XCA7CivntaLmlocgPiBrZW5idW5cIDsKK+iok+WwjiA+IGt1bmRvdVwgOwor5Zub6L66ID4gc2hpaGVuXCA7CivmlZfkuqEgPiBoYWlib3VcIDsKK+mbouS6rCA+IHJpa3lvdVwgOwor57SF54GvID4ga291dG91XCA7Civlo7LkurogPiBiYWluaW5cIDsKK+aUv+WFmiA+IHNlaXRvdVwgOwor6Kmm5YaZID4gc2hpc2hhXCA7Civmva7plpMgPiBzaGlvbWFcIDsKK+mbouS5syA+IHJpbnl1dVwgOwor5pS+5YWNID4gaG91bWVuXCA7Civoo4/oirggPiB1cmFnZWlcIDsKK+aUvuWFiSA+IGhvdWtvdVwgOwor6Kaz5pybID4ga2FuYm91XCA7Civlm57ou6IgPiBrYWl0ZW5cIDsKK+iojuWwiyA+IHRvdWppblwgOwor6KO957SZID4gc2Vpc2hpXCA7CivloLTmlbAgPiBiYWthenVcIDsKK+eBq+eavyA+IGhpemFyYVwgOwor56+G6Zq3ID4gdGVucmVpXCA7Civoo73ns7ggPiBzZWlzaGlcIDsKK+ijveezliA+IHNlaXRvdVwgOwor5aKX5aSnID4gem91ZGFpXCA7Civopb/mtIsgPiBzZWl5b3VcIDsKK+e4geWFiCA+IGVuc2FraVwgOwor57WM5pyoID4ga3lvdWdpXCA7Civlo7LkuIogPiB1cmlhZ2VcIDsKK+mbkeS/syA+IHphcHBhaVwgOwor5Zu96KqeID4ga29rdWdvXCA7Civoo73nsokgPiBzZWlmdW5cIDsKK+e1jOabuCA+IGtlaXNob1wgOwor57e05YqfID4gcmVua291XCA7CivmlLnlhYMgPiBrYWlnZW5cIDsKK+aPm+eulyA+IGthbnphblwgOwor6ZaL55y8ID4ga2FpZ2VuXCA7CivooYzph5EgPiBrb3VraW5cIDsKK+eyl+eylyA+IGFyYWFyYVwgOwor54KK54ioID4gc3Vpc2FuXCA7Civmv4Doqp4gPiBnZWtpZ29cIDsKK+ihl+mBkyA+IGthaWRvdVwgOwor57Sh5q+bID4gYm91bW91XCA7Civlo67kuIEgPiBzb3V0ZWlcIDsKK+eEoeW/gyA+IG11c2hpblwgOwor57Sr5qqAID4gc2hpdGFuXCA7CivngrnmsLQgPiB0ZW5zdWlcIDsKK+e4geWBtCA+IGVuZ2F3YVwgOwor6KOc57+SID4gaG9zaHV1XCA7CivpmaPlsYsgPiBqaW4nJ3lhXCA7Civpm5Hku7YgPiB6YWtrZW5cIDsKK+aOg+iVqSA+IHNvdXRvdVwgOwor6Ziy5oimID4gYm91c2VuXCA7CivntYLmnJ8gPiBzaHV1a2lcIDsKK+mbkeS6uiA+IHpvdW5pblwgOwor57e05YW1ID4gcmVucGVpXCA7CivlopPloLQgPiBoYWthYmFcIDsKK+WeguekuiA+IHN1aXNoaVwgOwor5pS/5L2TID4gc2VpdGFpXCA7Civpm4Xkv5cgPiBnYXpva3VcIDsKK+e0lOawtCA+IGp1bnN1aVwgOwor6Kmp5LuZID4gc2hpc2VuXCA7CivmlL/ku6QgPiBzZWlyZWlcIDsKK+aUvuS7uyA+IGhvdW5pblwgOwor57KJ57OgID4ga29udWthXCA7CivoqankurogPiBzaGlqaW5cIDsKK+aOqOiAgyA+IHN1aWtvdVwgOwor6Zm95aCxID4geW91aG91XCA7Civnt6jliLYgPiBoZW5zZWlcIDsKK+e0lOavmyA+IGp1bm1vdVwgOwor5ouz6ZeYID4ga2VudG91XCA7CivntIXmtpkgPiBrb3VydWlcIDsKK+aUv+S6iSA+IHNlaXNvdVwgOwor57WC5pigID4gc2h1dWVpXCA7CivntKDmqLggPiBzb2Jva3VcIDsKK+aLnemhlCA+IGhhaWdhblwgOwor57SF5rW3ID4ga291a2FpXCA7CivpmYvlt7cgPiByb3Vrb3VcIDsKK+e3mOWPoyA+IGthbmtvdVwgOwor57KJ57GzID4ga29nb21lXCA7CivmjqLogZ4gPiB0YW5idW5cIDsKK+WZtOmjryA+IGZ1bnBhblwgOwor54W95YuVID4gc2VuZG91XCA7CivntpnlrZAgPiBtYW1ha29cIDsKK+e0lOatoyA+IGp1bnNlaVwgOwor6KaH5qWtID4gaGFneW91XCA7CivpmbXlopMgPiByeW91Ym9cIDsKK+ewoeijgSA+IGthbnNhaVwgOwor6Ki85Y2wID4gc2hvdWluXCA7CivoqabkuZcgPiBzaGlqb3VcIDsKK+maoOWMvyA+IGludG9rdVwgOwor6KaP5qC8ID4ga2lrYWt1XCA7CivngavnjokgPiBoaWRhbWFcIDsKK+ioquWVjyA+IGhvdW1vblwgOwor6ZW355uuID4gbmFnYW1lXCA7Civmk43lroggPiBzb3VzaHVcIDsKK+e1seW+oSA+IHRvdWd5b1wgOwor6J+76aOfID4gYXJpa3VpXCA7CivmkL7msrkgPiBzYWt1eXVcIDsKK+ihv+ijjyA+IGVyaXVyYVwgOwor5oyv6LW3ID4gc2hpbmtpXCA7Civnt4/lkIggPiBzb3Vnb3VcIDsKK+ijnOe1piA+IGhva3l1dVwgOwor5pGC5rCPID4gc2Vzc2hpXCA7CivooYzou40gPiBrb3VndW5cIDsKK+ipleS+oSA+IGh5b3VrYVwgOwor6ZaA55WqID4gbW9uYmFuXCA7CivloIXmnZAgPiBrZW56YWlcIDsKK+Wbs+ihqCA+IHp1aHlvdVwgOwor5aCF5pyoID4ga2F0YWdpXCA7Civmj7TnlKggPiBlbicneW91XCA7CivpmLLlvqEgPiBib3VneW9cIDsKK+exs+e2vyA+IGJlaW1lblwgOwor54Gw54e8ID4ga2FpamluXCA7CivngrnmpJwgPiB0ZW5rZW5cIDsKK+WhueWjlSA+IHphbmdvdVwgOwor57SF5q+bID4ga291bW91XCA7Civnt5rliIYgPiBzZW5idW5cIDsKK+e3keWMliA+IHJ5b2trYVwgOwor6ZmL5bGLID4gcm91b2t1XCA7CivlnLDogowgPiBqaWhhZGFcIDsKK+mYsuW8viA+IGJvdWRhblwgOwor6ZmQ5a6aID4gZ2VudGVpXCA7Civoo4Xnva4gPiBzb3VjaGlcIDsKK+majuWQjSA+IGthaW1laVwgOwor6KiA5aSWID4gZ2VuZ2FpXCA7Civop5LluqYgPiBrYWt1ZG9cIDsKK+Weo+eJhiA+IGVuc2hvdVwgOwor57eP5YuiID4gc291emVpXCA7Civlm57oqJMgPiBrYWlrdW5cIDsKK+WjiuS5sSA+IGthaXJhblwgOwor57Wx5bilID4gdG91c3VpXCA7CivoprPmiKYgPiBrYW5zZW5cIDsKK+aOpee3miA+IHNlc3NlblwgOwor57WQ5oiQID4ga2Vzc2VpXCA7CivntITmrL4gPiB5YWtrYW5cIDsKK+ihqOiomCA+IGh5b3VraVwgOwor5pKk5buDID4gdGVwcGFpXCA7CivpmYTlsZ4gPiBmdXpva3VcIDsKK+WboOilsiA+IGluc2h1dVwgOwor5Zue6KanID4ga2FpcmFuXCA7CivnsbPnsokgPiBiZWlmdW5cIDsKK+eFqeWKtCA+IGhhbnJvdVwgOwor5aKo5YiRID4gYm9ra2VpXCA7CivnhKHlraYgPiBtdWdha3VcIDsKK+iiq+iGnCA+IGhpbWFrdVwgOwor5Z+O5rGgID4gam91Y2hpXCA7Civmj4/noLQgPiBieW91aGFcIDsKK+aRmOaenCA+IHRla2lrYVwgOwor57W25bO2ID4gemV0dG91XCA7CivpmbDlmqIgPiBmdWd1cmlcIDsKK+Wjh+S4iiA+IGRhbmpvdVwgOwor6KOP57SLID4gdXJhbW9uXCA7CivntKDmnLQgPiBzb2Jva3VcIDsKK+mWk+eEtiA+IGthbnplblwgOwor5oq56aaZID4gbWFra291XCA7Civmi7PpioMgPiBrZW5qdXVcIDsKK+e0q+aWkSA+IHNoaWhhblwgOwor6KaB5pybID4geW91Ym91XCA7CivoprPmg7MgPiBrYW5zb3VcIDsKK+evgOmFkiA+IHNlc3NodVwgOwor6KaL5pa5ID4gbWlrYXRhXCA7CivntI3mo7ogPiBub3VrYW5cIDsKK+ijgee4qyA+IHNhaWhvdVwgOwor5Zm06ZaAID4gZnVubW9uXCA7Civngrrmm78gPiBrYXdhc2VcIDsKK+ihqOijjyA+IGh5b3VyaVwgOwor6ZqP5YiGID4genVpYnVuXCA7Civntbblr74gPiB6ZXR0YWlcIDsKK+maj+WHpiA+IHp1aXNob1wgOwor57KX55uuID4gemFyYW1lXCA7CivpmaPlnLAgPiBqaW5jaGlcIDsKK+a8oumfsyA+IGthbicnb25cIDsKK+aMh+i8qiA+IHl1Yml3YVwgOwor5o6o566XID4gc3Vpc2FuXCA7CivlnYfnrYkgPiBraW50b3VcIDsKK+eCueaZryA+IHRlbmtlaVwgOwor6ZmQ5aSWID4gZ2VuZ2FpXCA7CivnsonnoJUgPiBmdW5zYWlcIDsKK+WfuuaVmSA+IGtpa3lvdVwgOwor6Zmw5ZSHID4gaW5zaGluXCA7CivopoHml6ggPiB5b3VzaGlcIDsKK+ioiuWVjyA+IGppbm1vblwgOwor6Zqj5Lq6ID4gcmluamluXCA7CivnsbPnqoEgPiBtxJN0b3J1XCA7CivntKDmlbUgPiBzdXRla2lcIDsKK+Wil+WIiiA+IHpvdWthblwgOwor5aKX5YiGID4gem91YnVuXCA7Civnsr7nhYkgPiBzZWlyZW5cIDsKK+a9rui3ryA+IHNoaW9qaVwgOwor57SF5qKFID4ga291YmFpXCA7CivpmY3lo4cgPiBrb3VkYW5cIDsKK+ilv+aWuSA+IHNlaWhvdVwgOwor6KGT6KiIID4ganVra2VpXCA7CivmjqHnrpcgPiBzYWlzYW5cIDsKK+e0jeadryA+IG5vdWhhaVwgOwor5r2w6LWwID4ga2Fpc291XCA7CivooYborbAgPiBzaHV1Z2lcIDsKK+ikkueKtiA+IGhvdWpvdVwgOwor6Ziy5a+SID4gYm91a2FuXCA7CivpmpvkvJogPiBzYWlrYWlcIDsKK+eCueaVsCA+IHRlbnN1dVwgOwor57SN5pysID4gbm91aG9uXCA7Civmi7PpgZMgPiBrb25kb3VcIDsKK+Wil+WFtSA+IHpvdWhlaVwgOwor5piO44CFID4gYWthYWthXCA7CivpmaPllrYgPiBqaW4nJ2VpXCA7CivlnZDnpIEgPiB6YXNob3VcIDsKK+e0meaVsCA+IHNoaXN1dVwgOwor57aZ5ZejID4ga2Vpc2hpXCA7Civnt4/kvZMgPiBzb3V0YWlcIDsKK+aPj+eUuyA+IGJ5b3VnYVwgOwor57Sb5pO+ID4gZnVuam91XCA7CivngbjmsrsgPiBreXV1amlcIDsKK+e3j+S8miA+IHNvdWthaVwgOwor5o6l56iuID4gc2Vzc2h1XCA7Civnt4/ku6MgPiBzb3VkYWlcIDsKK+mWgOeBryA+IG1vbnRvdVwgOwor5oug6YeRID4ga3lva2luXCA7CivploDngasgPiBrYWRvYmlcIDsKK+eFjuWJpCA+IHNlbnphaVwgOwor57W25aW9ID4gemVra291XCA7CivnhKblnJ8gPiBzaG91ZG9cIDsKK+e0oOaPjyA+IHNvYnlvdVwgOwor57SG5puyID4gdWt5b2t1XCA7Civmi53ph5EgPiBoYWlraW5cIDsKK+iisee0lyA+IGZ1a3VzYVwgOwor6ZqP5Ly0ID4genVpaGFuXCA7Civpmb3lhYkgPiB5b3Vrb3VcIDsKK+e1jOW4uCA+IGtlaWpvdVwgOwor5o+Q55C0ID4gdGVpa2luXCA7CivntYzluKsgPiBreW91amlcIDsKK+iomOWFpSA+IGtpbnl1dVwgOwor5Zyo57GzID4gemFpYmVpXCA7Civopprmgp8gPiBrYWt1Z29cIDsKK+Wil+S/uCA+IHpvdWhvdVwgOwor6KKi57qPID4gaGFudGVuXCA7CivplovmuK8gPiBrYWlrb3VcIDsKK+Wil+S+vyA+IHpvdWJpblwgOwor57ac5ZCIID4gc291Z291XCA7CivpmbDliLsgPiBpbmtva3VcIDsKK+a8j+mbuyA+IHJvdWRlblwgOwor6KSQ54KtID4ga2F0dGFuXCA7Civpmo7kuZcgPiBrYWlqb3VcIDsKK+aOu+eXkiA+IHNvdXlvdVwgOwor54KJ5qOaID4gcm9kYW5hXCA7Civop6Plm6MgPiBrYWlkYW5cIDsKK+Wig+WGhSA+IGtlaWRhaVwgOwor6ZqO5LiKID4ga2Fpam91XCA7CivpmZ7lj5kgPiBzaG91am9cIDsKK+aOqOefpSA+IHN1aWNoaVwgOwor5pO+5LmxID4gam91cmFuXCA7CivngavmsLQgPiBoaW1penVcIDsKK+ijveeJiCA+IHNlaWhhblwgOwor56+k6KGMID4gdG9ra291XCA7CivopoHmiYAgPiB5b3VzaG9cIDsKK+WcsOeojiA+IGNoaXplaVwgOwor57W55ZywID4ga2ludWppXCA7CivoqIDli5UgPiBnZW5kb3VcIDsKK+eyvua2siA+IHNlaWVraVwgOwor6Ziy5aG1ID4gYm91amluXCA7CivmjqLnn6UgPiB0YW5jaGlcIDsKK+WgheW/lyA+IGtlbnNoaVwgOwor6Ziy5aGeID4gYm91c2FpXCA7Civlmajph48gPiBraXJ5b3VcIDsKK+aMmeihjCA+IGt5b2tvdVwgOwor54GM5ryRID4ga2FuZ2FpXCA7CivpmKrlpKcgPiBoYW5kYWlcIDsKK+ihgOihjCA+IGtla2tvdVwgOwor6ZW35rmvID4gbmFnYXl1XCA7CivntprliIogPiB6b2trYW5cIDsKK+Wcn+ernCA+IG1vZ3VyYVwgOwor5ry46L+RID4gemVua2luXCA7CivlnJ/nqq8gPiBkb2dhbWFcIDsKK+mZouWGhSA+IGluJyduYWlcIDsKK+WgtOWkliA+IGpvdWdhaVwgOwor6KO954KtID4gc2VpdGFuXCA7CivlnoLmupYgPiBzdWlqdW5cIDsKK+eyieeKtiA+IGZ1bmpvdVwgOwor54Sh5ZGKID4gbXVrb2t1XCA7CivoqJPku6QgPiBrdW5yZWlcIDsKK+imi+W9kyA+IGtlbnRvdVwgOwor57Sv5bm0ID4gcnVpbmVuXCA7Civlm57oiLkgPiBrYWlzZW5cIDsKK+mZjeWPgiA+IGtvdXNhblwgOwor5Zyn56WeID4gYXNzaGluXCA7CivnsbPnlKMgPiBiZWlzYW5cIDsKK+e1kOWpmiA+IGtla2tvblwgOwor5Zue6IiqID4ga2Fpa291XCA7CivplonmraIgPiBoZWlzaGlcIDsKK+e0jeaJgCA+IG5hc3Nob1wgOwor5pKk5ZueID4gdGVra2FpXCA7CivnsaDnm64gPiBrYWdvbWVcIDsKK+e0lOaEmyA+IGp1bicnYWlcIDsKK+aKlemZjSA+IHRvdWtvdVwgOwor57S65bGLID4ga29uJyd5YVwgOwor5omL6by7ID4gdGViYW5hXCA7Civplbfms6IgPiBjaG91aGFcIDsKK+aTjeWFuCA+IHNvdXRlblwgOwor5Z6C5raOID4genVpemVuXCA7CivntKLlvJUgPiBzYWt1aW5cIDsKK+e0lOaDhSA+IGp1bmpvdVwgOwor54K55b+DID4gdGVuamluXCA7CivplqLmnbEgPiBrYW50b3VcIDsKK+eFieS4uSA+IHJlbnRhblwgOwor57W25ZOBID4gemVwcGluXCA7CivmjqLnlaogPiB0YW5iYW5cIDsKK+iojOS6iSA+IGtvdXNvdVwgOwor6ZaA5q2vID4gbW9uc2hpXCA7Civmv4PntLogPiBub3Vrb25cIDsKK+e0hOaJiyA+IHlha3V0ZVwgOwor5Zyw55u4ID4gY2hpc291XCA7CivoobDogJcgPiBzdWltb3VcIDsKK+ethumgrSA+IGhpdHRvdVwgOwor5o6h55SoID4gc2FpeW91XCA7CivngYzmsLQgPiBrYW5zdWlcIDsKK+aNlee4myA+IGhvYmFrdVwgOwor6KOC55eUID4ga2lyZWppXCA7Civnsonngq0gPiBmdW50YW5cIDsKK+mZquS5lyA+IGJhaWpvdVwgOwor5Zub6IKiID4gc2hpc2hpXCA7CivnrqHosqEgPiBrYW56YWlcIDsKK+ijheeUsiA+IHNvdWtvdVwgOwor6KOF55SoID4gc291eW91XCA7CivoqIjkuIogPiBrZWlqb3VcIDsKK+mXmOW/lyA+IHRvdXNoaVwgOwor5Zyn552AID4gYXRzdWdpXCA7CivlnqPmoLkgPiBrYWtpbmVcIDsKK+WboOe/kiA+IGluc2h1dVwgOwor6Z2i44CFID4gbWVubWVuXCA7Civlm5vogZYgPiBzaGlzZWlcIDsKK+ino+WJliA+IGthaWJvdVwgOwor57Wx5ZCIID4gdG91Z291XCA7CivlnJ/nn7MgPiBkb3Nla2lcIDsKK+mWi+aisSA+IGthaWtvblwgOwor6ZmE5YmHID4gZnVzb2t1XCA7CivmvZzooYwgPiBzZW5rb3VcIDsKK+e0meW5oyA+IHNoaWhlaVwgOwor6KWf5oeQID4ga2lua2FpXCA7Civop6Plh40gPiBrYWl0b3VcIDsKK+WcsOeVqiA+IGNoaWJhblwgOwor54Sa5YiRID4gZnVua2VpXCA7CivlnoLmrbsgPiBzdWlzaGlcIDsKK+e0sOWtlyA+IGhvc29qaVwgOwor57Sw5a2UID4gc2Fpa291XCA7CivloIXlroggPiBrZW5zaHVcIDsKK+eEoeWEnyA+IG11c2hvdVwgOwor54Gr5pyoID4ga2Ftb2t1XCA7CivntYLlpJwgPiBzaHV1eWFcIDsKK+WcsOeVjCA+IGNoaWthaVwgOwor6Zai5pWwID4ga2Fuc3V1XCA7CivntYPlo7AgPiBnZW5zZWlcIDsKK+iogOS4iiA+IGdvbmpvdVwgOwor6ZaL5qChID4ga2Fpa291XCA7Civmi53orJ0gPiBoYWlzaGFcIDsKK+mWk+acjSA+IGFpZnVrdVwgOwor6Kej5YWaID4ga2FpdG91XCA7CivplonmoKEgPiBoZWlrb3VcIDsKK+eEoeWCtyA+IG11a2l6dVwgOwor5o+a5rC0ID4geW91c3VpXCA7CivmkqTljrsgPiB0ZWtreW9cIDsKK+ijveazlSA+IHNlaWhvdVwgOwor5rue6ZmjID4gdGFpamluXCA7Civnsr7moLkgPiBzZWlrb25cIDsKK+WboOe4gSA+IGluJyduZW5cIDsKK+ilv+WyuCA+IHNlaWdhblwgOwor5ZiG6aGYID4gdGFuZ2FuXCA7CivmvrHnsokgPiBkZW5wdW5cIDsKK+e1seWItiA+IHRvdXNlaVwgOwor5oyB6JasID4gaml5YWt1XCA7Civlm57nt5ogPiBrYWlzZW5cIDsKK+mWk+aWrSA+IGthbmRhblwgOwor5oud6KazID4gaGFpa2FuXCA7CivopoHlrrMgPiB5b3VnYWlcIDsKK+e0meWxiyA+IGthbWl5YVwgOwor6ZmN5Lu7ID4ga291bmluXCA7Civmi53oposgPiBoYWlrZW5cIDsKK+ifoOi4niA+IGJhbmt5b1wgOwor6ZaT5pWwID4gbWFrYXp1XCA7Civlm73npoEgPiBrb2traW5cIDsKK+aMv+e1tSA+IHNhc2hpZVwgOwor5Zyw542EID4gamlnb2t1XCA7CivnhKHkvJEgPiBtdWt5dXVcIDsKK+WegualiiA+IHN1aXlvdVwgOwor5o6M55CGID4gc2hvdXJpXCA7CivntLDlpKcgPiBzYWlkYWlcIDsKK+mWkeaVoyA+IGthbnNhblwgOwor6ZaL5piOID4ga2FpbWVpXCA7CivlnJ/nlKMgPiBtaXlhZ2VcIDsKK+ino+S9kyA+IGthaXRhaVwgOwor5o6l54K5ID4gc2V0dGVuXCA7Civlm73npI4gPiBrb2t1c29cIDsKK+a7kemZjSA+IGtha2tvdVwgOwor6Zao5oi/ID4ga2VpYm91XCA7CivplovmlrkgPiBrYWlob3VcIDsKK+err+m6lyA+IHRhbnJlaVwgOwor6KGA6Ia/ID4gY2hpdW1pXCA7Civop6Pku7sgPiBrYWluaW5cIDsKK+aWueOAhSA+IGhvdWJvdVwgOwor57W25YCSID4gemV0dG91XCA7CivntJnlrZAgPiBrYW1pa29cIDsKK+eCreWxpCA+IHRhbnNvdVwgOwor5pKk5YW1ID4gdGVwcGVpXCA7CivntKvlpJYgPiBzaGlnYWlcIDsKK+e0r+WilyA+IHJ1aXpvdVwgOwor6KGM6ICFID4gZ3lvdWphXCA7CivmjqHngrkgPiBzYWl0ZW5cIDsKK+aQuuW4ryA+IGtlaXRhaVwgOwor5o6h54KtID4gc2FpdGFuXCA7Civng4jlo6sgPiByZXNzaGlcIDsKK+mWi+aUviA+IGthaWhvdVwgOwor5ryr6KuHID4gbWFuZGFuXCA7CivmiYvpp5IgPiB0ZWdvbWFcIDsKK+WgheWhgSA+IGtlbnJ1aVwgOwor5omL6aaWID4gdGVrdWJpXCA7CivloILloZQgPiBkb3V0b3VcIDsKK+mVt+acnyA+IGNob3VraVwgOwor5aCF5Z+OID4ga2Vuam91XCA7Civngonlv4MgPiByb3NoaW5cIDsKK+ethumLkiA+IGhpcHBvdVwgOwor5aCC5aCCID4gZG91ZG91XCA7CivmvKvoqIAgPiBtYW5nZW5cIDsKK+WbnuetlCA+IGthaXRvdVwgOwor6Kaq5ZKMID4gc2hpbndhXCA7CivntYzlj6MgPiBrZWlrb3VcIDsKK+WfjuW4giA+IGpvdXNoaVwgOwor57W25LqkID4gemVra291XCA7CivlnoLmnKggPiB0YXJ1a2lcIDsKK+WgtOWGhSA+IGpvdW5haVwgOwor5oyJ6IW5ID4gYW5wdWt1XCA7Civoo5zms6ggPiBob2NodXVcIDsKK+WcsOeCuSA+IGNoaXRlblwgOwor5ryi6KmpID4ga2Fuc2hpXCA7Civpl4flsYsgPiB5YW1peWFcIDsKK+e1tuS4liA+IHplc3NlaVwgOwor5oqA6YePID4gZ2lyeW91XCA7CivmiYvpoLggPiB0ZWt1YmlcIDsKK+e1hOWQiCA+IGt1bWlhaVwgOwor54KJ5bqKID4gcm9zaG91XCA7CivmiYvpoIMgPiB0ZWdvcm9cIDsKK+imi+WcsCA+IGtlbmNoaVwgOwor6KaB5aGeID4geW91c2FpXCA7CivooqvniIYgPiBoaWJha3VcIDsKK+ift+iegiA+IHRvdXJvdVwgOwor6KaG5ZyfID4gZnVrdWRvXCA7Civln7nlnLAgPiBiYWljaGlcIDsKK+a9nOiIqiA+IHNlbmtvdVwgOwor6KW/5Z+fID4gc2VpaWtpXCA7Civntabku5ggPiBreXV1ZnVcIDsKK+e1puS7lSA+IGt5dXVqaVwgOwor5Zue56S8ID4ga2FpcmVpXCA7CivmiYDpoZggPiBzaG9nYW5cIDsKK+mXmOWjqyA+IHRvdXNoaVwgOwor57WQ5YWaID4ga2V0dG91XCA7CivngJXmrbsgPiBoaW5zaGlcIDsKK+e0lOWilyA+IGp1bnpvdVwgOwor6ZaL5oimID4ga2Fpc2VuXCA7CivoprPlhYkgPiBrYW5rb3VcIDsKK+ijveadkCA+IHNlaXphaVwgOwor5rqc6aOyID4gcnl1dWluXCA7CivooajnpLogPiBoeW91amlcIDsKK+imgeWcsCA+IHlvdWNoaVwgOwor6KO95pysID4gc2VpaG9uXCA7Civng5nljbAgPiByYWt1aW5cIDsKK+aJi+mamyA+IHRlZ2l3YVwgOwor5omL6ZqZID4gdGVzdWtpXCA7CivntYzlhbggPiBrZWl0ZW5cIDsKK+imquWIhiA+IG95YWJ1blwgOwor57SZ5Z6LID4gc2hpa2VpXCA7CivnrYnovrogPiB0b3VoZW5cIDsKK+eCueWcqCA+IHRlbnphaVwgOwor5Zyw5rqdID4gY2hpa291XCA7CivntabkuI4gPiBreXV1eW9cIDsKK+eCreWhtSA+IHRhbmppblwgOwor5Zu955K9ID4ga29rdWppXCA7CivnspfmnI0gPiBzb2Z1a3VcIDsKK+ihgOe1sSA+IGtldHRvdVwgOwor54Gr5oClID4ga2FreXV1XCA7Civln5/lpJYgPiBpa2lnYWlcIDsKK+erv+mgrSA+IGthbnRvdVwgOwor57Sw5ZCbID4gc2Fpa3VuXCA7Civnga/lvbEgPiBob2thZ2VcIDsKK+aKleizhyA+IHRvdXNoaVwgOwor5ouZ6JGXID4gc2V0Y2hvXCA7CivooYDns5YgPiBrZXR0b3VcIDsKK+aJi+mVtyA+IHRlbmFnYVwgOwor54Gr5b2xID4gaG9rYWdlXCA7CivmjpLmtrIgPiBoYWlla2lcIDsKK+eCreWdkSA+IHRhbmtvdVwgOwor6ZeH5aScID4geWFtaXlvXCA7Civlm73njosgPiBrb2t1b3VcIDsKK+e0heWhtSA+IGtvdWppblwgOwor6KaL5Y+wID4ga2VuZGFpXCA7CivnsonmnKwgPiBmdW5wb25cIDsKK+mVt+aJkyA+IGNob3VkYVwgOwor6KaL5Y+CID4ga2VuemFuXCA7Civnsr7mgo0gPiBzZWlrYW5cIDsKK+Wcj+eCuSA+IGtlbnRlblwgOwor54Gr5bqKID4gaGlkb2tvXCA7CivooYDnrqEgPiBrZWtrYW5cIDsKK+e1jOS8nSA+IGtlaWRlblwgOwor5o2V55CDID4gaG9reXV1XCA7CivmiJDprZogPiBzZWlneW9cIDsKK+ihqOeariA+IGh5b3VoaVwgOwor6KGM56iLID4ga291dGVpXCA7Civmj5rmj5ogPiB5b3V5b3VcIDsKK+WfjuWkliA+IGpvdWdhaVwgOwor5oyH57SLID4gc2hpbW9uXCA7CivmjpLmsLQgPiBoYWlzdWlcIDsKK+WbveeItiA+IGtva3VmdVwgOwor57Sw5YiGID4gc2FpYnVuXCA7Civngb3lrrMgPiBzYWlnYWlcIDsKK+mWi+W7tyA+IGthaXRlaVwgOwor5ZiJ6L6wID4ga2FzaGluXCA7CivmjZXnjbIgPiBob2tha3VcIDsKK+aMgee2miA+IGppem9rdVwgOwor5rq26YqRID4geW91c2VuXCA7Civopo/liYcgPiBraXNva3VcIDsKK+mWieW7tyA+IGhlaXRlaVwgOwor5o+h5omLID4gYWt1c2h1XCA7CivplovlupcgPiBrYWl0ZW5cIDsKK+eyvuW9qSA+IHNlaXNhaVwgOwor5o+Q5pC6ID4gdGVpa2VpXCA7CivmiYvpjYsgPiB0ZW5hYmVcIDsKK+aOg+a1tyA+IHNvdWthaVwgOwor56uc6aasID4gcnl1dW1lXCA7Civln47loZ4gPiBqb3VzYWlcIDsKK+e1jOS4liA+IGtlaXNlaVwgOwor6ZaL5bmzID4ga2FpaGVpXCA7CivmipfoqIAgPiBrb3VnZW5cIDsKK+eqrum8oCA+IGt5dXVzb1wgOwor6ZaJ5bqXID4gaGVpdGVuXCA7Civln47loYEgPiBqb3VydWlcIDsKK+a7kei7iiA+IGthc3NoYVwgOwor56ul6aGUID4gZG91Z2FuXCA7Civlm57nlJ8gPiBrYWlzZWlcIDsKK+a6gOmhmCA+IG1hbmdhblwgOwor6ZaL5be7ID4ga2Fpa2FuXCA7Civopb/ljZcgPiBzZWluYW5cIDsKK+aOouaknCA+IHRhbmtlblwgOwor6ZaA5byfID4gbW9udGVpXCA7CivmiKbpm7IgPiBzZW4nJ3VuXCA7CivmiYvpiaQgPiB0ZWthZ2lcIDsKK+a5vumgrSA+IHdhbnRvdVwgOwor57SN5ZOBID4gbm91aGluXCA7CivllqfpqJIgPiBrZW5zb3VcIDsKK+aQjeWusyA+IHNvbmdhaVwgOwor57Gz5p2QID4gYmVpemFpXCA7Civln47lnYAgPiBqb3VzaGlcIDsKK+aIpumaiiA+IHNlbnRhaVwgOwor5oud6IGeID4gaGFpYnVuXCA7CivonJrps6UgPiBoaWNob3VcIDsKK+aIpumZoyA+IHNlbmppblwgOwor57K+5benID4gc2Vpa291XCA7Civnsr7lt6MgPiBzZWlzb3VcIDsKK+a6gOmdoiA+IG1hbm1lblwgOwor6ZaR5bGFID4ga2Fua3lvXCA7Civnq5zpoK0gPiByeXV1enVcIDsKK+a7kei1sCA+IGthc3NvdVwgOwor5Zar6aOvID4ga2lwcGFuXCA7CivntKLlhbcgPiBzYWt1Z3VcIDsKK+ijj+advyA+IHVyYWl0YVwgOwor6J2m6YygID4gZWJpam91XCA7CivngavlroUgPiBrYXRha3VcIDsKK+aIpumXmCA+IHNlbnRvdVwgOwor5omL6YWMID4gdGVqYWt1XCA7Civmi5nogIUgPiBzZXNzaGFcIDsKK+mWi+WxsSA+IGthaXNhblwgOwor6ZW35bqnID4gY2hvdXphXCA7CivmvKLoi7EgPiBrYW4nJ2VpXCA7CivplonlsbEgPiBoZWl6YW5cIDsKK+WYieizniA+IGthc2hvdVwgOwor5Zyw5qScID4gY2hpa2VuXCA7CivplonlsYUgPiBoZWlreW9cIDsKK+mWi+WwgSA+IGthaWZ1dVwgOwor5pGC5Y+WID4gc2Vzc2h1XCA7CivplqLlpKcgPiBrYW5kYWlcIDsKK+Wbvea8oiA+IGtva2thblwgOwor54K55YWJID4gdGVua291XCA7Civngq3lirQgPiB0YW5yb3VcIDsKK+aKueiMtiA+IG1hdGNoYVwgOwor5Zue54q2ID4ga2Fpam91XCA7CivntK/ku6MgPiBydWlkYWlcIDsKK+aLmOe9riA+IGtvdWNoaVwgOwor57SU5YiGID4ganVuYnVuXCA7Civlnabmh5AgPiB0YW5rYWlcIDsKK+Wdh+aWiSA+IGtpbnNlaVwgOwor5rqA6ZaLID4gbWFua2FpXCA7CivlnYfmlbQgPiBraW5zZWlcIDsKK+e0r+S5lyA+IHJ1aWpvdVwgOwor5o6o5patID4gc3VpZGFuXCA7CivmlaPjgIUgPiBzYW56YW5cIDsKK+aJueiplSA+IGhpaHlvdVwgOwor5o6I5qWtID4ganVneW91XCA7Civono3os4cgPiB5dXVzaGlcIDsKK+aOqOaVsiA+IHN1aWtvdVwgOwor57Sv5LiWID4gcnVpc2VpXCA7CivooYDnm7ggPiBrZXNzb3VcIDsKK+eymOaApyA+IG5lbnNlaVwgOwor6KSH5bqnID4gZnVrdXphXCA7Civmv4Pmt6EgPiBub3V0YW5cIDsKK+aOsuaPmiA+IGtlaXlvdVwgOwor6KaL5LqLID4gbWlnb3RvXCA7Civnsr7lrZAgPiBzZWlzaGlcIDsKK+WgguS4iiA+IGRvdWpvdVwgOwor6J6z6J6CID4gdG91cm91XCA7CivmiYvou70gPiB0ZWdhcnVcIDsKK+eBsOWhtSA+IGhhaWppblwgOwor5Zyo5qChID4gemFpa291XCA7CivopKXlqaYgPiBqb2t1ZnVcIDsKK+a8leiJhyA+IHNvdXRlaVwgOwor6ZW35bGLID4gbmFnYXlhXCA7CivooYDnl7AgPiBrZXR0YW5cIDsKK+mWi+WniyA+IGthaXNoaVwgOwor6KGG55SfID4gc2h1am91XCA7CivopoHku7YgPiB5b3VrZW5cIDsKK+ihgOeXlSA+IGtla2tvblwgOwor5Z+f5YaFID4gaWtpbmFpXCA7Civplbflr78gPiBjaG91anVcIDsKK+imgeS6uiA+IHlvdWppblwgOwor5Zyo5p2lID4gemFpcmFpXCA7CivmjJnnlKggPiBreW95b3VcIDsKK+mVt+WutiA+IG5hZ2F5YVwgOwor6KOB5patID4gc2FpZGFuXCA7CivmipzokIMgPiBiYXNzdWlcIDsKK+e0m+S6iSA+IGZ1bnNvdVwgOwor5omA6LyJID4gc2hvc2FpXCA7CivmiYvotrMgPiB0ZWFzaGlcIDsKK+Wcp+acjSA+IGFwcHVrdVwgOwor57Sb5LmxID4gZnVucmFuXCA7CivmvbDnmI0gPiBrYWl5b3VcIDsKK+mWi+WiviA+IGthaWtvblwgOwor5Zyw5pa5ID4gY2hpaG91XCA7CivmjqjmjJkgPiBzdWlreW9cIDsKK+WbveavjSA+IGtva3Vib1wgOwor57KS5bqmID4gcnl1dWRvXCA7CivlnLDmlocgPiBjaGltb25cIDsKK+ihl+eHiCA+IGdhaXRvdVwgOwor5ri46a2aID4geXV1Z3lvXCA7Civmipfoj4wgPiBrb3VraW5cIDsKK+e0meS4iiA+IHNoaWpvdVwgOwor6ZaL5aC0ID4ga2Fpam91XCA7Civono3op6MgPiB5dXVrYWlcIDsKK+Wbnua8lSA+IGthaXNvdVwgOwor5Zyf5pyoID4gZG9ib2t1XCA7CivplonloLQgPiBoZWlqb3VcIDsKK+iiq+acjSA+IGhpZnVrdVwgOwor5ZaJ6aCtID4ga291dG91XCA7CivplpHlnLAgPiBrYW5jaGlcIDsKK+exs+aHhyA+IGJlaWtvblwgOwor6ZeY5LqJID4gdG91c291XCA7CivntI3kvJogPiBub3VrYWlcIDsKK+mWi+WfjiA+IGthaWpvdVwgOwor6Zaj5ZOhID4ga2FrdWluXCA7CivploDlpJYgPiBtb25nYWlcIDsKK+aNuuafkyA+IG5hc3NlblwgOwor6KKr5pudID4gaGliYWt1XCA7CivmjqjmiLQgPiBzdWl0YWlcIDsKK+WfjuWGhSA+IGpvdW5haVwgOwor566h56uvID4ga2FudGFuXCA7Civln47lhbUgPiBqb3VoZWlcIDsKK+a8geiIuSA+IGd5b3NlblwgOwor6ZeH5YCkID4geWFtaW5lXCA7CivmvJTnv5IgPiBlbnNodXVcIDsKK+aOpeaIpiA+IHNlc3NlblwgOwor5Zue5ri4ID4ga2FpeXV1XCA7CivooZfnga8gPiBnYWl0b3VcIDsKK+ertui8qiA+IGtlaXJpblwgOwor5oyB55eFID4gamlieW91XCA7CivplbflpbMgPiBjaG91am9cIDsKK+WbveaoqSA+IGtva2tlblwgOwor57SK5LmxID4gYnVucmFuXCA7CivplbflpJwgPiBjaG91eWFcIDsKK+aMh+eSsCA+IHl1Yml3YVwgOwor5ouZ56i/ID4gc2Vra291XCA7CivlnJ/mlrkgPiBkb2thdGFcIDsKK+aJk+iouiA+IGRhc2hpblwgOwor5ZaE6ZyKID4gemVucmVpXCA7Civmi53npLwgPiBoYWlyZWlcIDsKK+Wbm+a1tyA+IHNoaWthaVwgOwor5Zyn5pC+ID4gYXNzYWt1XCA7Civmurbop6MgPiB5b3VrYWlcIDsKK+a8lOe5uSA+IGVuJydla2lcIDsKK+ijnOW8tyA+IGhva3lvdVwgOwor6ZaA5ZywID4gbW9uY2hpXCA7Civmi5jnpoEgPiBrb3VraW5cIDsKK+eri+mMkCA+IHJpc3N1aVwgOwor57K+5ZqiID4gc2Vpbm91XCA7CivlloTpmqMgPiB6ZW5yaW5cIDsKK+eskeipsSA+IHNob3V3YVwgOwor6Y6U6YqRID4geW91c2VuXCA7CivmiKbou4ogPiBzZW5zaGFcIDsKK+WdkeW6lSA+IGtvdXRlaVwgOwor54Gv5Y+wID4gdG91ZGFpXCA7CivnrpfnqIsgPiBzYW50ZWlcIDsKK+aJi+iosSA+IHRlbW90b1wgOwor5rig6a2BID4ga3lva2FpXCA7CivoobDmrosgPiBzdWl6YW5cIDsKK+ihsOatuyA+IHN1aXNoaVwgOwor57KJ5bGLID4ga29uYXlhXCA7Civln47ku6MgPiBqb3VkYWlcIDsKK+aJgOirliA+IHNob3JvblwgOwor5Zub5rCRID4gc2hpbWluXCA7Civlm6PmrJIgPiBkYW5yYW5cIDsKK+a6gOi8iSA+IG1hbnNhaVwgOwor5o6l5b6FID4gc2V0dGFpXCA7CivmuoDou4ogPiBtYW5zaGFcIDsKK+aJgOipriA+IHNob3NlblwgOwor5Z+O5Li7ID4gam91c2h1XCA7CivlnKjmiYAgPiB6YWlzaG9cIDsKK+eAkeW4gyA+IGJha3VmdVwgOwor57Gz5bidID4gYmVpdGVpXCA7Civns5bliIYgPiB0b3VidW5cIDsKK+aQreS5lyA+IHRvdWpvdVwgOwor5Zad6YeHID4ga2Fzc2FpXCA7Civplovlj6MgPiBrYWlrb3VcIDsKK+a6tuiejSA+IHlvdXl1dVwgOwor54Gw5YiGID4ga2FpYnVuXCA7CivlmLLnvbUgPiBjaG91YmFcIDsKK+eti+iFqyA+IGtpbnNodVwgOwor6ZaJ5Y+jID4gaGVpa291XCA7Civom67poqggPiBiYW5wdXVcIDsKK+aHh+mhmCA+IGtvbmdhblwgOwor562G6Ie0ID4gaGl0Y2hpXCA7CivmiYDoposgPiBzaG9rZW5cIDsKK+aJgOimgSA+IHNob3lvdVwgOwor5Zuz5p+EID4genVnYXJhXCA7Civoo4XlvL4gPiBzb3VkYW5cIDsKK+aIiui+sCA+IGJvc2hpblwgOwor5ryB57ayID4gZ3lvbW91XCA7Civlm73mmK8gPiBrb2t1emVcIDsKK+eBr+WFiSA+IHRvdWtvdVwgOwor57Oe5L6/ID4gZnVuYmVuXCA7CivonbTonbYgPiBrb2Nob3VcIDsKK+a9rueArCA+IHNoaW9zZVwgOwor6Zai5L+CID4ga2Fua2VpXCA7Civnq6Xosp4gPiBkb3V0ZWlcIDsKK+eqgemiqCA+IHRvcHB1dVwgOwor5r+A5piCID4gZ2Vra291XCA7Civmipjnt5ogPiBzZXNzZW5cIDsKK+eBq+WFiCA+IGhvc2FraVwgOwor57Gz5bGLID4ga29tZXlhXCA7CivngavlhYMgPiBoaW1vdG9cIDsKK+WcsOW9oiA+IGNoaWtlaVwgOwor5rqA6LKrID4gbWFuZ2FuXCA7Civoo4XluYAgPiBzb3V0ZWlcIDsKK+aPuuWLlSA+IHlvdWRvdVwgOwor57Ch5piOID4ga2FubWVpXCA7CivmiK/oqZUgPiBnaWh5b3VcIDsKK+eyvuWLpCA+IHNlaWtpblwgOwor5oqc57O4ID4gYmFzc2hpXCA7CivooYDmuIUgPiBrZXNzZWlcIDsKK+eptOmmrCA+IGFuYXVtYVwgOwor57K+5YqxID4gc2VpcmVpXCA7CivngavlgrcgPiB5YWtlZG9cIDsKK+a7heiPjCA+IG1la2tpblwgOwor562G6ICVID4gaGlra291XCA7Civpjq7orbcgPiBjaGluZ29cIDsKK+ibrumatyA+IGJhbnJlaVwgOwor562G6ICFID4gaGlzc2hhXCA7CivmipznsosgPiBiYXNzdWlcIDsKK+WcsOW6lSA+IGNoaXRlaVwgOwor5Zyo5b25ID4gemFpZWtpXCA7CivmiY3ol7sgPiBzYWlzb3VcIDsKK+WcsOW5syA+IGNoaWhlaVwgOwor57K+5YiwID4gc2VpdG91XCA7Civmj5vllqkgPiBrYW4nJ3l1XCA7CivnsonlobUgPiBmdW5qaW5cIDsKK+WcsOW4ryA+IGNoaXRhaVwgOwor56+A54K5ID4gc2V0dGVuXCA7CivmjqjlrpogPiBzdWl0ZWlcIDsKK+erpeisoSA+IGRvdXlvdVwgOwor5ZWP6aGMID4gbW9uZGFpXCA7CivploDliY0gPiBtb256ZW5cIDsKK+Wbm+ahgSA+IHlva2V0YVwgOwor6KGM5q6KID4gZ3lvdWpvXCA7CivlnablnaYgPiB0YW50YW5cIDsKK+epuumfsyA+IHNvcmFuZVwgOwor6Zai5LiOID4ga2FuJyd5b1wgOwor5Zyn5bu2ID4gYXRzdWVuXCA7CivoobDmm78gPiBzdWl0YWlcIDsKK+mWi+WCrCA+IGthaXNhaVwgOwor6ZaA5Ye6ID4ga2Fkb2RlXCA7Civnsr7lhbUgPiBzZWloZWlcIDsKK+aOoeWvuCA+IHNhaXN1blwgOwor6ZaL5YKYID4ga2Fpc2FuXCA7Civmibbnv7wgPiBmdXlva3VcIDsKK+aQjeS6oSA+IHNvbmJvdVwgOwor6ZaD5YWJID4gc2Vua291XCA7CivnsaDlsYUgPiByb3VreW9cIDsKK+WdkeWkliA+IGtvdWdhaVwgOwor5oe46LuNID4ga2VuZ3VuXCA7Civpvo3ppqwgPiByeXV1bWVcIDsKK+epuumbuyA+IGt1dWRlblwgOwor5Zub5pu4ID4gc2hpc2hvXCA7CivmjJnmraIgPiBreW9zaGlcIDsKK+ijveWTgSA+IHNlaWhpblwgOwor56m66ZqbID4ga3V1c2FpXCA7CivlloTpgZMgPiB6ZW5kb3VcIDsKK+a4hemiqCA+IHNlaWZ1dVwgOwor566h54q2ID4ga2Fuam91XCA7CivpjZvpjKwgPiB0YW5yZW5cIDsKK+WcsOWxpCA+IGNoaXNvdVwgOwor54Gr5LitID4ga2FjaHV1XCA7Civlm73mioAgPiBrb2t1Z2lcIDsKK+mMsumfsyA+IHJva3VvblwgOwor6Y2b6Yu8ID4gdGFua291XCA7Civoo4HlrpogPiBzZWl0ZWlcIDsKK+aJgOiUtSA+IHNob3pvdVwgOwor6ZW35YaGID4gY2hvdWVuXCA7CivplovkvJogPiBrYWlrYWlcIDsKK+a4rOmOliA+IHNva3VzYVwgOwor5r2f5rmWID4gc2VraWtvXCA7CivllonovKogPiBub2Rvd2FcIDsKK+a4i+mdoiA+IGp1dW1lblwgOwor6ZaJ5LyaID4gaGVpa2FpXCA7Civlm57ml4sgPiBrYWlzZW5cIDsKK+ethue0mSA+IGhpc3NoaVwgOwor5o2V5o2JID4gaG9zb2t1XCA7CivnqbrplqggPiBrdXVrZWlcIDsKK+a9ruawlyA+IHNoaW9rZVwgOwor5Zue5paHID4ga2FpYnVuXCA7CivmvJTnm64gPiBlbm1va3VcIDsKK+epuumWkyA+IGt1dWthblwgOwor5Zu95oayID4ga29ra2VuXCA7Civlm57mlbAgPiBrYWlzdXVcIDsKK+aKleeovyA+IHRvdWtvdVwgOwor5Zu95oW2ID4ga29ra2VpXCA7CivmiY3oirggPiBzYWlnZWlcIDsKK+ikh+WIqSA+IGZ1a3VyaVwgOwor6KOP5aOwID4gdXJhZ29lXCA7Civmu57ntI0gPiB0YWlub3VcIDsKK+Wbm+aVoyA+IHNoaXNhblwgOwor5riT6ZaTID4ga2Vpa2FuXCA7Civmi6DngrkgPiBreW90ZW5cIDsKK+aJi+iKuCA+IHNodWdlaVwgOwor5ris6YmbID4gc29rdWVuXCA7CivlnKjlrpggPiB6YWlrYW5cIDsKK+WZtOeFmSA+IGZ1bicnZW5cIDsKK+a7nuexsyA+IHRhaWJlaVwgOwor5ryC56CCID4gaHlvdXNhXCA7CivploDkurogPiBtb25qaW5cIDsKK+ethueulyA+IGhpc3NhblwgOwor5Zu95oGpID4ga29rdW9uXCA7CivmjoPlsIQgPiBzb3VzaGFcIDsKK+mOlOinoyA+IHlvdWthaVwgOwor562G562UID4gaGl0dG91XCA7CivmiY3ohZUgPiBzYWl3YW5cIDsKK+WbsOaGiiA+IGtvbnBhaVwgOwor56+A5rC0ID4gc2Vzc3VpXCA7CivmvYXmvJEgPiBrYW5nYWlcIDsKK+ethuerryA+IGhpdHRhblwgOwor562U56S8ID4gdG91cmVpXCA7CivmiYvohZUgPiBzaHV3YW5cIDsKK+a9nOawtCA+IHNlbnN1aVwgOwor5r+A5oCSID4gZ2VraWRvXCA7CivmiY3og70gPiBzYWlub3VcIDsKK+ijheWhqyA+IHNvdXRlblwgOwor5ouz5rOVID4ga2VucG91XCA7CivmuIXplpEgPiBzZWlrYW5cIDsKK+aOpeWcsCA+IHNldGNoaVwgOwor6Y2b6YCgID4gdGFuem91XCA7Civnq5zonaYgPiBpc2VlYmlcIDsKK+WcsOWkiSA+IGNoaWhlblwgOwor6KGA5qCTID4ga2Vzc2VuXCA7CivmjpLlpJYgPiBoYWlnYWlcIDsKK+Wbo+aJhyA+IHVjaGl3YVwgOwor5omL6IG3ID4gdGVqb2t1XCA7CivnqpPovrogPiBtYWRvYmVcIDsKK+ihk+aVsCA+IGp1c3N1dVwgOwor57Gg5Z+OID4gcm91am91XCA7CivmvKvnhLYgPiBtYW56ZW5cIDsKK+a7nuepuiA+IHRhaWt1dVwgOwor5rex6ZuqID4gbWl5dWtpXCA7CivlnLDloYogPiBjaGlrYWlcIDsKK+WbnuaIpiA+IGthaXNlblwgOwor5r+B5bqmID4gZGFrdWRvXCA7CivmiYvnv7AgPiBzaHVrYW5cIDsKK+WcqOWkqSA+IHphaXRlblwgOwor6KGM5peFID4ga291cnlvXCA7CivnqL3pppYgPiBrZWlzaHVcIDsKK+ernOiZjiA+IHJ5b3Vrb1wgOwor5Zyo5aSWID4gemFpZ2FpXCA7CivoobDmhYsgPiBzdWl0YWlcIDsKK+ihjOaWhyA+IGtvdWJ1blwgOwor6KGA5pu4ID4ga2Vzc2hvXCA7Civoo4LlnLAgPiBraXJlamlcIDsKK+WdkeWPoyA+IGtvdWtvdVwgOwor5Zyw5Z+fID4gY2hpaWtpXCA7CivmuJvphY0gPiBnZW5wYWlcIDsKK+epjembsiA+IHNla2l1blwgOwor5rqA6JKZID4gbWFubW91XCA7CivmvLjmuJsgPiB6ZW5nZW5cIDsKK+WbnuaDsyA+IGthaXNvdVwgOwor5ruR56m6ID4ga2Fra3V1XCA7Civmt7HplpMgPiBmdWthbWFcIDsKK+a7keeovSA+IGtva2tlaVwgOwor5ryr5ryrID4gbWFubWFuXCA7CivpjKzpi7wgPiByZW5rb3VcIDsKK+ihgOaWkSA+IGtlcHBhblwgOwor56ia6bCkID4gd2FyYXNhXCA7CivmuJvpgIAgPiBnZW50YWlcIDsKK+err+iJhyA+IHRhbnRlaVwgOwor5o6l5ZC7ID4gc2VwcHVuXCA7Civmjqjlj4IgPiBzdWlzYW5cIDsKK+aLmOazpSA+IGtvdWRlaVwgOwor562L55uuID4gc3VqaW1lXCA7CivmiKboiaYgPiBzZW5rYW5cIDsKK+ijnOWJhyA+IGhvc29rdVwgOwor5o2o5a2QID4gc3V0ZWdvXCA7CivlmbTms4kgPiBmdW5zZW5cIDsKK+eomumujiA+IGNoaWF5dVwgOwor6Jyl6Jy0ID4gdG9rYWdlXCA7Civmi53mrr8gPiBoYWlkZW5cIDsKK+eomumtmiA+IGNoaWd5b1wgOwor5Z2H5YuiID4ga2luc2VpXCA7Civlm73lr4wgPiBrb2t1ZnVcIDsKK+aOoeWPliA+IHNhaXNodVwgOwor5Z2R5YaFID4ga291bmFpXCA7CivlmbTmsLQgPiBmdW5zdWlcIDsKK+aJi+e0mSA+IHRlZ2FtaVwgOwor566X5rOVID4gc2FucG91XCA7Civlm73lrZcgPiBrb2t1amlcIDsKK+WbmuW+kiA+IHNodXV0b1wgOwor6KGw5bmjID4gc3VpaGVpXCA7Civnr4bmm7ggPiB0ZW5zaG9cIDsKK+eorumhniA+IHNodXJ1aVwgOwor5riF6YWSID4gc2Vpc2h1XCA7CivnsonkvZMgPiBmdW50YWlcIDsKK+Wcj+WkliA+IGtlbmdhaVwgOwor6KOc5YSfID4gaG9zaG91XCA7CivllYbpgYsgPiBzaG91dW5cIDsKK+WbnuW7iiA+IGthaXJvdVwgOwor56m66LuiID4ga3V1dGVuXCA7CivlnYfliIYgPiBraW5idW5cIDsKK+a7heengSA+IG1lc3NoaVwgOwor56m66LuNID4ga3V1Z3VuXCA7Civnqbrou4ogPiBrdXVzaGFcIDsKK+eyi+S6uiA+IHN1aWppblwgOwor5omL57GgID4gdGVrYWdvXCA7CivnqbrouqsgPiBrYXJhbWlcIDsKK+aMh+aVsCA+IHNoaXN1dVwgOwor5ZaE6KGMID4gemVua291XCA7CivpjJrpjJogPiBzb3Vzb3VcIDsKK+aJi+ewoSA+IHNodWthblwgOwor566X5q61ID4gc2FuZGFuXCA7CivmuIXpgYogPiBzZWl5dXVcIDsKK+WcsOWQjSA+IGNoaW1laVwgOwor5rqA6IWUID4gbWFua291XCA7CivmiqvngJ0gPiBoaXJla2lcIDsKK+aLkuatoiA+IGt5b3NoaVwgOwor5omL566xID4gdGViYWtvXCA7CivmiYvnrqEgPiB0ZWt1ZGFcIDsKK+ethueUnyA+IGhpc3NlaVwgOwor6KOc5L+uID4gaG9zaHV1XCA7CivmjqXlhpkgPiBzZXNzaGFcIDsKK+Wbm+W3nSA+IHNoaXNlblwgOwor5omL562LID4gdGVzdWppXCA7CivmiYvnrYggPiB0ZWhhenVcIDsKK+aMmeaJiyA+IGt5b3NodVwgOwor56qB6LKrID4gdG9ra2FuXCA7CivooaHlubMgPiBrb3VoZWlcIDsKK+a6lue4hCA+IGp1bmpvdVwgOwor56u557iBID4gdGFrZWVuXCA7CivmjpLljbUgPiBoYWlyYW5cIDsKK+a5r+iKsSA+IHl1YmFuYVwgOwor5rib6LOHID4gZ2Vuc2hpXCA7CivooYDmiKYgPiBrZXNzZW5cIDsKK+aHh+iriyA+IGtvbnNlaVwgOwor5oeH6KuHID4ga29uZGFuXCA7CivmjajloLQgPiBzdXRlYmFcIDsKK+aOoeWFiSA+IHNhaWtvdVwgOwor5Zyw5YuiID4gY2hpc2VpXCA7Civmua/oiLkgPiB5dWJ1bmVcIDsKK+etkueKtiA+IHRvdWpvdVwgOwor6KGG5oSaID4gc2h1dWd1XCA7CivnqLLploAgPiB0b3Vtb25cIDsKK+ijgeWIpCA+IHNhaWJhblwgOwor56uc6IOGID4gcmluZG91XCA7CivmiYDnrqEgPiBzaG9rYW5cIDsKK+a3semDqCA+IHNoaW5idVwgOwor5oi457GNID4ga29zZWtpXCA7CivmjqLlgbUgPiB0YW50ZWlcIDsKK+evgOaTjSA+IHNlc3NvdVwgOwor6KKr5ZGKID4gaGlrb2t1XCA7Civmt7fov7cgPiBrb25tZWlcIDsKK+a7heebuCA+IG1lc3NvdVwgOwor56uv57eaID4gdGFuc2VuXCA7Civnq6/nt5IgPiB0YW5jaG9cIDsKK+WcqOWLpCA+IHphaWtpblwgOwor5r2U5paOID4ga2Vzc2FpXCA7CivmiJDogrIgPiBzZWlpa3VcIDsKK+iciOiaoyA+IG11a2FkZVwgOwor5Zyn5YudID4gYXNzaG91XCA7CivmtbfpvKAgPiBuYW1ha29cIDsKK+aIpue3miA+IHNlbnNlblwgOwor5ry/5p6cID4gc2hvdWthXCA7Civlm7rln7cgPiBrb3NodXVcIDsKK+aOpeS8tCA+IHNlcHBhblwgOwor56u557CAID4gdGFrZXN1XCA7Civlmajmpb0gPiBraWdha3VcIDsKK+WcsOWFgyA+IGppbW90b1wgOwor5re36LyJID4ga29uc2FpXCA7CivmtrLpnaIgPiBla2ltZW5cIDsKK+ibh+i2syA+IGRhc29rdVwgOwor5ru+5ru+ID4ga29ua29uXCA7Civlm73lnJ8gPiBrb2t1ZG9cIDsKK+iZuemckyA+IGtvdWdlaVwgOwor6KGM5bm4ID4gbWl5dWtpXCA7CivooYzlubQgPiBrb3VuZW5cIDsKK+epuuirliA+IGt1dXJvblwgOwor56m66KuHID4ga3V1ZGFuXCA7CivmvIHmuK8gPiBneW9rb3VcIDsKK+a4heiypyA+IHNlaWhpblwgOwor5omN55+lID4gc2FpY2hpXCA7CivonYvntJkgPiByb3VzaGlcIDsKK+aEm+mzpSA+IGFpY2hvdVwgOwor6Juu6KGMID4gYmFua291XCA7CivmvI/msLQgPiByb3VzdWlcIDsKK+WVhuitsCA+IHNob3VnaVwgOwor6KCx5oORID4ga293YWt1XCA7CivmiK/nrJEgPiBnaXNob3VcIDsKK+eti+eCjiA+IGtpbicnZW5cIDsKK+aOkuS+vyA+IGhhaWJlblwgOwor5Zu95Za2ID4ga29rdWVpXCA7Civlm5vlp5MgPiBzaGlzZWlcIDsKK+aLruaNriA+IGtpa2t5b1wgOwor5oqr5q20ID4gaGlyZWtpXCA7CivmjZXlm5ogPiBob3NodXVcIDsKK+WbnuWkqSA+IGthaXRlblwgOwor5oyv5a2QID4gZnVyaWtvXCA7CivlmbjmlbAgPiB0b25zdXVcIDsKK+a8geazlSA+IGd5b2hvdVwgOwor6KOF5LiBID4gc291dGVpXCA7Civlm6PloYogPiBkYW5rYWlcIDsKK+aNp+WRiCA+IGhvdXRlaVwgOwor5rib6KGwID4gZ2Vuc3VpXCA7CivlnLDku6MgPiBjaGlkYWlcIDsKK+aIpuerryA+IHNlbnRhblwgOwor5Zar57eKID4ga2lra2luXCA7Civlm5vlo7AgPiBzaGlzZWlcIDsKK+aJi+eZliA+IHRla3VzZVwgOwor5ouu5oqXID4ga2lra291XCA7CivpjK/oqqQgPiBzYWt1Z29cIDsKK+eojumWoiA+IHplaWthblwgOwor5ryB5rCRID4gZ3lvbWluXCA7CivlnKjkvY8gPiB6YWlqdXVcIDsKK+iaiumJpCA+IGthYmFyaVwgOwor5oyH5by+ID4gc2hpZGFuXCA7Civlm57loLEgPiBrYWlob3VcIDsKK+WcsOS4iiA+IGNoaWpvdVwgOwor5Zyo5Lu7ID4gemFpbmluXCA7CivlnKfkvI8gPiBhcHB1a3VcIDsKK+a9ruW5siA+IHNoaW9oaVwgOwor5rW36a2aID4ga2FpZ3lvXCA7Civll5znnKAgPiBzaGltaW5cIDsKK+eul+aVsCA+IHNhbnN1dVwgOwor5Zyf5L+1ID4gZG9oeW91XCA7CivlnJLlhoUgPiBlbicnbmFpXCA7Civlm6PlnLAgPiBkYW5jaGlcIDsKK+Wcn+S/lyA+IGRvem9rdVwgOwor6JqK6YedID4ga2FiYXJpXCA7CivooYblr6EgPiBzaHV1a2FcIDsKK+aKnOatryA+IGJhc3NoaVwgOwor5r2u5beuID4gY2hvdXNhXCA7Civmv4PljpogPiBub3Vrb3VcIDsKK+a8ouabuCA+IGthbnNob1wgOwor5omT55CDID4gZGFreXV1XCA7CivpvLvpj6EgPiBiaWt5b3VcIDsKK+espueJkiA+IGZ1Y2hvdVwgOwor5Zyo5LiWID4gemFpc2VpXCA7CivmjojkubMgPiBqdW55dXVcIDsKK+a1t+mpoiA+IGFzaGlrYVwgOwor5ryr5paHID4gbWFuYnVuXCA7CivooajlnJ8gPiBoeW91ZG9cIDsKK+aIkOeulyA+IHNlaXNhblwgOwor5Zu95YuZID4ga29rdW11XCA7Civmtojpn7MgPiBzaG91b25cIDsKK+ewoeWNmCA+IGthbnRhblwgOwor5oiR562JID4gd2FyZXJhXCA7CivmjL3lm54gPiBiYW5rYWlcIDsKK+aKmOaquyA+IHNla2thblwgOwor56m66JmaID4ga3V1a3lvXCA7Civmv4Dli5kgPiBnZWtpbXVcIDsKK+Wcn+S4rSA+IGRvY2h1dVwgOwor5omA55SoID4gc2hveW91XCA7CivmiYDnlKMgPiBzaG9zYW5cIDsKK+a8ouaWuSA+IGthbnBvdVwgOwor5re66KaLID4gc2Vua2VuXCA7Civono3ngrkgPiB5dXV0ZW5cIDsKK+WbveWIqSA+IGtva3VyaVwgOwor5ryi5paHID4ga2FuYnVuXCA7CivmiYvnjokgPiB0ZWRhbWFcIDsKK+a7lOa7lCA+IHRvdXRvdVwgOwor5Zaq56ugID4gbW9zaG91XCA7CivmiJDnqbogPiBzZWlrdXVcIDsKK+Wah+aAkiA+IGtha3Vkb1wgOwor5Zuj5ZOhID4gZGFuJydpblwgOwor562G5rOVID4gaGlwcG91XCA7CivmtbfpoqggPiBrYWlmdXVcIDsKK+aJi+eLrSA+IHRlemVtYVwgOwor5Zu95YWJID4ga29ra291XCA7CivmjIflsI4gPiBzaGlkb3VcIDsKK+m8vumFlCA+IGthbnN1aVwgOwor6YqA6bGXID4gZ2lucmluXCA7CivmhJ/pm7sgPiBrYW5kZW5cIDsKK+WVk+iSmSA+IGtlaW1vdVwgOwor6KGG5aSaID4gc2h1dXRhXCA7CivnqI7ph5EgPiB6ZWlraW5cIDsKK+aMh+WumiA+IHNoaXRlaVwgOwor5rip6ImvID4gb25yeW91XCA7Civllqrnpa0gPiBzb3VzYWlcIDsKK+aHkOiDjiA+IGthaXRhaVwgOwor5rW36Z2iID4ga2FpbWVuXCA7Civpu5LptZAgPiBrdXJvamlcIDsKK+e0r+OAhSA+IHJ1aXJ1aVwgOwor5ryr5omNID4gbWFuemFpXCA7CivooI/luqcgPiBrYW5pemFcIDsKK+ihsOWLoiA+IHN1aXNlaVwgOwor5ryB5p2RID4gZ3lvc29uXCA7Civmtbfpm6MgPiBrYWluYW5cIDsKK+WgguOAhSA+IGRvdWRvdVwgOwor5ZuC5ZuCID4gZ291Z291XCA7CivmvIHmnJ8gPiByeW91a2lcIDsKK+epuuiNtyA+IGthcmFuaVwgOwor5oqx5pOBID4gaG91eW91XCA7Civpi7PosqggPiBjaHV1a2FcIDsKK+ihgOWhiiA+IGtla2thaVwgOwor5Zub5Y2DID4geW9uc2VuXCA7Civlm5vljYEgPiB5b25qdXVcIDsKK+ewoeS+vyA+IGthbmJlblwgOwor5Zu95LyaID4ga29ra2FpXCA7CivnrqHlvKYgPiBrYW5nZW5cIDsKK+a1t+mYsiA+IGthaWJvdVwgOwor5ZSQ6KmpID4gdG91c2hpXCA7CivpvLvovKogPiBoYW5hd2FcIDsKK+WbveS6pCA+IGtva2tvdVwgOwor5Zu95LqLID4ga29rdWppXCA7CivmtbfplqIgPiBrYWlrYW5cIDsKK+aKleabuCA+IHRvdXNob1wgOwor5rW36ZaAID4ga2FpbW9uXCA7Civlm7PkvZMgPiB6dXV0YWlcIDsKK+euseWxiyA+IGhha295YVwgOwor5ruF5rOVID4gbWVwcG91XCA7Civlm5vliIYgPiBzaGlidW5cIDsKK+aKteaKlyA+IHRlaWtvdVwgOwor6ZG95a2UID4gc2Fua291XCA7Civmv4HkuJYgPiBkYWt1c2VcIDsKK+eCueOAhSA+IHRlbnRlblwgOwor6b2y6J2VID4gdXNob2t1XCA7CivmiYvmvIkgPiB0ZXN1a2lcIDsKK+ihqOWFtyA+IGh5b3VndVwgOwor6Y2b57e0ID4gdGFucmVuXCA7Civon7nluqcgPiBrYW5pemFcIDsKK+iar+iakyA+IG1pbWl6dVwgOwor5rq25rayID4geW91ZWtpXCA7CivmvIHmkoggPiBneW9yb3VcIDsKK+evgOWljyA+IHNlc3NvdVwgOwor5ZWG6IiXID4gc2hvdWhvXCA7Civpi7zoo70gPiBrb3VzZWlcIDsKK+aLkOW4ryA+IGthaXRhaVwgOwor5rib6ICXID4gZ2VubW91XCA7Civnq6/niakgPiBoYW1vbm9cIDsKK+aEn+mKmCA+IGthbm1laVwgOwor5oim54qvID4gc2VucGFuXCA7CivmirHmh5AgPiBob3VrYWlcIDsKK+ihjOWPuCA+IGd5b3VqaVwgOwor5ouF5b2TID4gdGFudG91XCA7Civnr4nln44gPiB0c3Vpa2lcIDsKK+eqkue0oCA+IGNoaXNzb1wgOwor5Zuj5L2TID4gZGFudGFpXCA7Civmi6DlroggPiBreW9zaHVcIDsKK+mLreinkiA+IGVpa2FrdVwgOwor56eY6YyyID4gaGlyb2t1XCA7Civmi5vlrrQgPiBzaG91ZW5cIDsKK+engemXmCA+IHNoaXRvdVwgOwor6KGw5LqhID4gc3VpYm91XCA7Civnq5znjosgPiByeXV1b3VcIDsKK+err+eEtiA+IHRhbnplblwgOwor5Zuj5LqkID4gZGFua291XCA7CivlmbTlsIQgPiBmdW5zaGFcIDsKK+ihjOWLlSA+IGtvdWRvdVwgOwor5ZWP572qID4gbW9uemFpXCA7CivmiYvms5UgPiBzaHVob3VcIDsKK+m7m+mdkiA+IHRhaXNlaVwgOwor5ouZ5a6IID4gc2Vzc2h1XCA7CivoobDkuJYgPiBzdWlzZWlcIDsKK+ibh+iFuSA+IGphYmFyYVwgOwor562J5pa5ID4gdG91aG91XCA7Civlkb3poYwgPiBtZWlkYWlcIDsKK+a9nOWcqCA+IHNlbnphaVwgOwor5oWj6KGMID4ga2Fua291XCA7CivmiYvmsLQgPiB0ZW1penVcIDsKK+aKteW9kyA+IHRlaXRvdVwgOwor5oSb6YO3ID4gYWlreW91XCA7CivnrJHmsJcgPiBzaG91a2lcIDsKK+a6nea4oCA+IGtvdWt5b1wgOwor5oqX5ouSID4ga291a3lvXCA7CivmiKbngb0gPiBzZW5zYWlcIDsKK+mKmOmKmCA+IG1laW1laVwgOwor5omL5q+sID4gdGVtYXJpXCA7CivmipjmipggPiBvcmlvcmlcIDsKK+a5r+eOiSA+IHl1ZGFtYVwgOwor5oyr5YK3ID4gemFzaG91XCA7CivnrpflrpogPiBzYW50ZWlcIDsKK+ertua8lCA+IGt5b3VlblwgOwor5oyZ5YuVID4ga3lvZG91XCA7CivmtYHpn7MgPiByeXV1b25cIDsKK+aJi+autSA+IHNodWRhblwgOwor5oiQ54qsID4gc2Vpa2VuXCA7Civpjq7ngasgPiBjaGlua2FcIDsKK+aKl+aIpiA+IGtvdXNlblwgOwor6buS6ZuyID4ga29rdXVuXCA7CivmipXmiYsgPiB0b3VzaHVcIDsKK+a6gOeCuSA+IG1hbnRlblwgOwor6KGM5YSAID4gZ3lvdWdpXCA7CivpjbXnm6QgPiBrZW5iYW5cIDsKK+a1gemcsiA+IHJ5dXVyb1wgOwor5oqK5o2JID4gaGFzb2t1XCA7CivmjIflkJEgPiBzaGlrb3VcIDsKK+ihgOWIpCA+IGtlcHBhblwgOwor5oyH5ZCNID4gc2hpbWVpXCA7Civol7vpoZ4gPiBzb3VydWlcIDsKK+a1gemboiA+IHJ5dXVyaVwgOwor6YqY6YWSID4gbWVpc2h1XCA7CivmtbfpgZMgPiBrYWlkb3VcIDsKK+m8oOiziiA+IHNvem9rdVwgOwor5oyZ5YW1ID4ga3lvaGVpXCA7CivmuKnnqoEgPiBvbmRvcnVcIDsKK+aJi+apnyA+IHRlYmF0YVwgOwor6ZGR5a6aID4ga2FudGVpXCA7CivmjJnlhZogPiBreW90b3VcIDsKK+aLt+WVjyA+IGdvdW1vblwgOwor5oyH5Y2XID4gc2hpbmFuXCA7Civono3mnJcgPiB5dXVyb3VcIDsKK+m6uumhniA+IG1lbnJ1aVwgOwor5rib566XID4gZ2VuemFuXCA7CivpioXpiq0gPiBkb3VzZW5cIDsKK+ertuazsyA+IGt5b3VlaVwgOwor6KGM5L2/ID4ga291c2hpXCA7CivmiLjmr44gPiBrb2dvdG9cIDsKK+mKhemJsSA+IGRvdWtvdVwgOwor5rib562JID4gZ2VudG91XCA7CivmiYvmpa0gPiB0ZXdhemFcIDsKK+a8uOWilyA+IHplbnpvdVwgOwor56aP6Z+zID4gZnVrdWluXCA7CivmupDms4kgPiBnZW5zZW5cIDsKK+a1t+i7jSA+IGthaWd1blwgOwor5raI6LK7ID4gc2hvdWhpXCA7CivmuoDmuoAgPiBtYW5tYW5cIDsKK+a1qumAnyA+IG5hbml3YVwgOwor6YqA6YmxID4gZ2lua291XCA7CivooYzkurogPiBrb3VqaW5cIDsKK+WVj+etlCA+IG1vbmRvdVwgOwor5ZC56bO0ID4gc3VpbWVpXCA7CivnrYbmiY0gPiBoaXNzYWlcIDsKK+ihjOS6iyA+IGd5b3VqaVwgOwor6YqA6Yi0ID4gZ2lucmVpXCA7CivmuIXntJQgPiBzZWlqdW5cIDsKK+ethuaIpiA+IGhpc3NlblwgOwor56e76KitID4gaXNldHN1XCA7CivomZroqpUgPiBreW90YW5cIDsKK+aIpuazlSA+IHNlbnBvdVwgOwor5reL6I+MID4gcmlua2luXCA7CivmurbmnZAgPiB5b3V6YWlcIDsKK+a4m+eojiA+IGdlbnplaVwgOwor5oqX5byBID4ga291YmVuXCA7CivnrZblv5wgPiBzYWt1b3VcIDsKK+epuuepuiA+IGt1dWt1dVwgOwor56u25q2pID4ga3lvdWhvXCA7CivmuIXnsosgPiBzZWlzdWlcIDsKK+engemCuCA+IHNoaXRlaVwgOwor6bqq6aGeID4gbWVucnVpXCA7CivmuKnnn7MgPiBvbmpha3VcIDsKK+iZmuiogCA+IGt5b2dlblwgOwor6buS6Y21ID4ga29ra2VuXCA7CivmiYvmn4QgPiB0ZWdhcmFcIDsKK+engemBuCA+IHNoaXNlblwgOwor5omL5p63ID4gdGVrYXNlXCA7Civmt7fnt5ogPiBrb25zZW5cIDsKK+engemBkyA+IHNoaWRvdVwgOwor562G5oSPID4gaGl0c3VpXCA7Civnr4DliLYgPiBzZXNzZWlcIDsKK+err+atoyA+IHRhbnNlaVwgOwor5omL5pytID4gdGVmdWRhXCA7CivmuIXnrpcgPiBzZWlzYW5cIDsKK+etlOW8gSA+IHRvdWJlblwgOwor5omB5qGDID4gaGVudG91XCA7CivmvZzlh70gPiBzZW5rYW5cIDsKK+a0l+mhlCA+IHNlbmdhblwgOwor5oud5ZWTID4gaGFpa2VpXCA7CivmiKbmrbsgPiBzZW5zaGlcIDsKK+aJi+abuCA+IHNodXNob1wgOwor5re357ShID4ga29uYm91XCA7Civlk4Doqr8gPiBhaWNob3VcIDsKK+a1nOi+uiA+IGhhbWFiZVwgOwor5oSf6KydID4ga2Fuc2hhXCA7Civpu5LpiZsgPiBrb2t1ZW5cIDsKK+aJjeaZuiA+IHNhaWNoaVwgOwor5ZOB6KmeID4gaGluc2hpXCA7CivmuoDmsLQgPiBtYW5zdWlcIDsKK+aIuOajmiA+IHRvZGFuYVwgOwor5rSL6aSoID4geW91a2FuXCA7CivpvI7oq4cgPiB0ZWlkYW5cIDsKK+a5v+awlyA+IHNoaWtrZVwgOwor6KCV5YuVID4gemVuZG91XCA7CivmiJHmtYEgPiBnYXJ5dXVcIDsKK+WVhuenkSA+IHNob3VrYVwgOwor5oud5ZG9ID4gaGFpbWVpXCA7CivmgqrpoqggPiBha3VmdXVcIDsKK+a0l+mdoiA+IHNlbm1lblwgOwor5oud5ZGIID4gaGFpdGVpXCA7CivmvbDkubEgPiBrYWlyYW5cIDsKK+a0i+miqCA+IHlvdWZ1dVwgOwor56m656CyID4ga3V1aG91XCA7CivmvZzlg48gPiBzZW56b3VcIDsKK+aEm+iqrSA+IGFpZG9rdVwgOwor5omL5peXID4gdGViYXRhXCA7CivmhJvoqqYgPiBhaXNob3VcIDsKK+aJgOacmyA+IHNob21vdVwgOwor5omA5pyJID4gc2hveXV1XCA7Civpu5LphZIgPiBrdXJva2lcIDsKK+aJk+aSsiA+IGRhYm9rdVwgOwor5oyH5LukID4gc2hpcmVpXCA7CivnqoPnm5cgPiBzZXR0b3VcIDsKK+mKgOi8qiA+IGdpbnJpblwgOwor56aF6ZaAID4gemVubW9uXCA7CivmiZPmkoMgPiBkYWdla2lcIDsKK+evgOWAuSA+IHNla2tlblwgOwor5om/5byVID4gc2hvdWluXCA7Civnr4TkvosgPiBoYW5yZWlcIDsKK+m7hOmKhSA+IGtvdWRvdVwgOwor5oSP6K2YID4gaXNoaWtpXCA7CivmtJ7ploAgPiBkb3Vtb25cIDsKK+elnummrCA+IHNoaW5tZVwgOwor5oqV5bCEID4gdG91c2hhXCA7Civnrp3lj6MgPiBrYW5rb3VcIDsKK+WWq+awtCA+IGtpc3N1aVwgOwor5ZC46aOyID4ga3l1dWluXCA7Civnqbrnm64gPiBzb3JhbWVcIDsKK+WTgeihjCA+IGhpbmtvdVwgOwor5rmv5rC0ID4geXVtaXp1XCA7CivmiYHml4EgPiBoZW5ib3VcIDsKK+aCqumciiA+IGFrdXJlaVwgOwor6buE6YeRID4ga29nYW5lXCA7CivmiYvmkbogPiB0ZXN1cmlcIDsKK+eogOiWhCA+IGtpaGFrdVwgOwor56uL5rOVID4gcmlwcG91XCA7CivmjIHkuYUgPiBqaWt5dXVcIDsKK+evgOS8miA+IHNlY2hpZVwgOwor5oiR5qyyID4gZ2F5b2t1XCA7Civmua/mrr8gPiB5dWRvbm9cIDsKK+err+agqiA+IGhha2FidVwgOwor56+A5LuLID4gc2Vra2FpXCA7Civnsr7jgIUgPiBzZWl6ZWlcIDsKK+aLkOWPliA+IGthaXNodVwgOwor56eB6LKhID4gc2hpemFpXCA7CivlkLjpn7MgPiBreXV1b25cIDsKK+euoeWItiA+IGthbnNlaVwgOwor5rmn5rC0ID4geXV1c3VpXCA7CivonYvmooUgPiByb3ViYWlcIDsKK+a4mueVlCA+IHNob2hhblwgOwor5Za25qWtID4gZWlneW91XCA7CivmuJvnlKMgPiBnZW5zYW5cIDsKK+mLvOe3miA+IGtvdXNlblwgOwor5rqW5pifID4ganVuc2VpXCA7CivlkIjptKggPiBhaWdhbW9cIDsKK+aJi+aMhyA+IHNodXNoaVwgOwor6buE6YGTID4ga291ZG91XCA7CivmiYvmi60gPiB0ZWZ1a2lcIDsKK+ertuaYoCA+IGt5b3VlaVwgOwor5ZC56ZuqID4gZnVidWtpXCA7CivmurrmhJsgPiBkZWtpYWlcIDsKK+a5r+anvSA+IHl1YnVuZVwgOwor562L5a2QID4gc3VqaWtvXCA7CivmhIHoqLQgPiBzaHV1c29cIDsKK+iWq+mmmSA+IGt1bmtvdVwgOwor6YmE6Yu8ID4gdGVra291XCA7Civnp4Hoq5YgPiBzaGlyb25cIDsKK+a8ouWQjSA+IGthbm1laVwgOwor5rmW5rK8ID4ga29zaG91XCA7CivompXntJkgPiBzYW5zaGlcIDsKK+ialeezuCA+IHNhbnNoaVwgOwor5oKM6aCGID4gdGVpanVuXCA7CivmtJfpjKwgPiBzZW5yZW5cIDsKK+a6gOadryA+IG1hbnBhaVwgOwor6Jas6aSMID4geWFrdWppXCA7CivpjbzmsrsgPiBzaGluamlcIDsKK+mJhOmJsSA+IHRla2tvdVwgOwor56aP6YGLID4gZnVrdXVuXCA7Civmirzlj44gPiBvdXNodXVcIDsKK+err+aVtCA+IHRhbnNlaVwgOwor6Jar6aKoID4ga3VucHV1XCA7CivnqbbnkIYgPiBreXV1cmlcIDsKK+mMsueUuyA+IHJva3VnYVwgOwor6YqT6KGhID4gc2Vua291XCA7CivmsrPpub8gPiBrYWppa2FcIDsKK+mLvOeuoSA+IGtvdWthblwgOwor6by757+8ID4gYml5b2t1XCA7CivmvIblmaggPiBzaGlra2lcIDsKK+emgemFkiA+IGtpbnNodVwgOwor6Jep6YK4ID4gaGFudGVpXCA7CivmiKbmlZcgPiBzZW5wYWlcIDsKK+engeimiyA+IHNoaWtlblwgOwor5rWE6LKhID4gam91emFpXCA7CivomY7okL0gPiBtb2dhcmlcIDsKK+a1t+iYvyA+IGZ1bm9yaVwgOwor5omA5oeQID4gc2hva2FpXCA7CivmuKnngbggPiBvbmt5dXVcIDsKK+a1t+iXuyA+IGthaXNvdVwgOwor5omH5oOFID4gc2Vuam91XCA7Civnp4Hoo70gPiBzaGlzZWlcIDsKK+aCqumKrSA+IGFrdXNlblwgOwor56S+6aKoID4gc2hhZnV1XCA7CivlkI3pppkgPiBtZWlrb3VcIDsKK+WSjOiosyA+IHdheWFrdVwgOwor6YqF6KO9ID4gZG91c2VpXCA7Civmupbmi6AgPiBqdW5reW9cIDsKK+a2meiFuiA+IHJ1aXNlblwgOwor562J5aSWID4gdG91Z2FpXCA7CivmirHljbUgPiBob3VyYW5cIDsKK+aJleW6lSA+IGZ1dHRlaVwgOwor5omA5oSfID4gc2hva2FuXCA7CivmtIvpioAgPiB5b3VnaW5cIDsKK+enmOiWrCA+IGhpeWFrdVwgOwor6Y6u5pKrID4gY2hpbmJ1XCA7CivnpL7poK0gPiBzaGF0b3VcIDsKK+engeihjCA+IHNoaWtvdVwgOwor5Zaq5pyNID4gbW9mdWt1XCA7CivnrpfkvZMgPiBzYW50YWlcIDsKK+WSjOimqiA+IHdhc2hpblwgOwor5omL5b25ID4gdGV5YWt1XCA7CivpioDoo70gPiBnaW5zZWlcIDsKK+m7meiosSA+IG1va2t5b1wgOwor5omL5b2iID4gdGVnYXRhXCA7Civnq7bmioAgPiBreW91Z2lcIDsKK+ialeeoriA+IHNhbnNodVwgOwor5omT5bitID4gZGFzZWtpXCA7CivmuK/mub4gPiBrb3V3YW5cIDsKK+iWq+mZtiA+IGt1bnRvdVwgOwor5omL5byVID4gdGViaWtpXCA7CivmuL7msowgPiBrb250b25cIDsKK+a4m+eCuSA+IGdlbnRlblwgOwor5omH5b2iID4gc2Vua2VpXCA7CivmvJTliocgPiBlbmdla2lcIDsKK+aCqumFkiA+IGFrdXNodVwgOwor5omA5oCdID4gc2hvc2hpXCA7CivnpoHovLggPiBraW4nJ3l1XCA7Civmta7oloQgPiBmdWhha3VcIDsKK+WQjOmhniA+IGRvdXJ1aVwgOwor6YqA6KGMID4gZ2lua291XCA7CivmiY3lubkgPiBzYWlrYW5cIDsKK+a0i+mFkiA+IHlvdXNodVwgOwor6b6N546LID4gcnl1dW91XCA7Civmg4XotqMgPiBqb3VzaHVcIDsKK+aIkOaWhyA+IHNlaWJ1blwgOwor5oe45qGIID4ga2VuJydhblwgOwor5omL5bizID4gdGVjaG91XCA7CivmiJDmlZcgPiBzZWliYWlcIDsKK+iZmuiBniA+IGt5b2J1blwgOwor5ouF5L2TID4gdGFudGFpXCA7CivmiYvluJYgPiB0ZWNob3VcIDsKK+mIjemWkyA+IG5vcm9tYVwgOwor6Yed6a2aID4gaGFyaXlvXCA7CivmiYvlt6UgPiBzaHVrb3VcIDsKK+azoumWkyA+IG5hbWltYVwgOwor6byT6IacID4ga29tYWt1XCA7CivmhqvnhLYgPiBiaW56ZW5cIDsKK+aCqumBkyA+IGFrdWRvdVwgOwor5rWF6KaLID4gc2Vua2VuXCA7Civph47ps6UgPiB5YWNob3VcIDsKK+azoumVtyA+IGhhY2hvdVwgOwor6byT6IW5ID4ga29mdWt1XCA7CivpvJPohbggPiBrb2Nob3VcIDsKK+ayu+mokyA+IGNoaWtlblwgOwor5rq25bKpID4geW91Z2FuXCA7CivmtbfojYkgPiBrYWlzb3VcIDsKK+azlemboyA+IGhvdW5hblwgOwor5ZGz6KqtID4gbWlkb2t1XCA7CivmtJfou4ogPiBzZW5zaGFcIDsKK+WRiui+niA+IGtva3VqaVwgOwor5ZCE6aCFID4ga2Fra291XCA7CivmsrjpqLAgPiBmdXR0b3VcIDsKK+a4qea1tyA+IGF0c3VtaVwgOwor5ZaE5qWtID4gemVuZ291XCA7CivmiYHlubMgPiBoZW5wZWlcIDsKK+eri+aWuSA+IHJpcHBvdVwgOwor56yg5a2QID4ga2FzYWdvXCA7CivmtLvoqIggPiBrYWtrZWlcIDsKK+aKleWQiCA+IHRvdWdvdVwgOwor5oak54S2ID4gZnVuemVuXCA7Civlj7fppKggPiBnb3VrYW5cIDsKK+a7nuWcqCA+IHRhaXphaVwgOwor5rih5riJID4gdG9zaG91XCA7CivmiYDluK8gPiBzaG90YWlcIDsKK+aKl+WOnyA+IGtvdWdlblwgOwor5rim5rWBID4ga2FyeXV1XCA7CivmvKLkurogPiBrYW5qaW5cIDsKK+a8geWKtCA+IGd5b3JvdVwgOwor5rWq6I+vID4gbmFuaXdhXCA7CivmipjljYogPiBzZXBwYW5cIDsKK+mHkemtmiA+IGtpbmd5b1wgOwor5ZiG5aOwID4gdGFuc2VpXCA7CivpipjojLYgPiBtZWljaGFcIDsKK+ensOe+jiA+IHNob3ViaVwgOwor56eB6JS1ID4gc2hpem91XCA7CivlkbPoppogPiBtaWtha3VcIDsKK+m+leeBryA+IGdhbmRvdVwgOwor6bu06I+MID4gYmFpa2luXCA7CivmipzliaMgPiBiYWtrZW5cIDsKK+WWhOaguSA+IHplbmtvblwgOwor5ZCN6ZaAID4gbWVpbW9uXCA7CivnqbrmuK8gPiBrdXVrb3VcIDsKK+WQjOmWgCA+IGRvdW1vblwgOwor6Juu5rCRID4gYmFubWluXCA7CivmipzliIAgPiBiYXR0b3VcIDsKK+WPsOmiqCA+IHRhaWZ1dVwgOwor5oWn55y8ID4ga2VpZ2FuXCA7CivmiY3lrZAgPiBzYWlzaGlcIDsKK+mMmOeKtiA+IHN1aWpvdVwgOwor5rq25aqSID4geW91YmFpXCA7CivnpoXorbIgPiB6ZW5qb3VcIDsKK+ayv+mdqSA+IGVua2FrdVwgOwor5rWq6IqxID4gbmFuaXdhXCA7Civnq6/lvbkgPiBoYXlha3VcIDsKK+WPsOmhlCA+IGRhaWdhblwgOwor5ZGJ6LaKID4gZ29ldHN1XCA7Civlj7DpoK0gPiB0YWl0b3VcIDsKK+a4i+a7niA+IGp1dXRhaVwgOwor5re354S2ID4ga29uemVuXCA7CivnrYvlkIggPiBzdWppYWlcIDsKK+a4m+azlSA+IGdlbnBvdVwgOwor5oqV5Ye9ID4gdG91a2FuXCA7CivlloTmm7ggPiB6ZW5zaG9cIDsKK+epuua0niA+IGt1dWRvdVwgOwor6YiR6YeRID4gYmFua2luXCA7CivmupDlubMgPiBnZW5wZWlcIDsKK+WQjemRkSA+IG1laWthblwgOwor562J5Y+3ID4gdG91Z291XCA7Civll6PlrZAgPiBzaGlzaGlcIDsKK+mHjumnkiA+IG5vZ29tYVwgOwor5rWu6IWrID4gbXVrdW1pXCA7CivmuJvmsLQgPiBnZW5zdWlcIDsKK+m6u+ijjyA+IGFzYXVyYVwgOwor56iu55eYID4gc2h1dG91XCA7CivpiI3ph40gPiBkb25qdXVcIDsKK+WPqemgrSA+IGtvdXRvdVwgOwor5oay5rOVID4ga2VucG91XCA7CivmiYDlrpogPiBzaG90ZWlcIDsKK+mHmOmgrSA+IHRlaXRvdVwgOwor56aA6KuLID4gcmluc2VpXCA7CivmtpnnrqEgPiBydWlrYW5cIDsKK+aJgOWtmCA+IHNob3pvblwgOwor5rOl6YWUID4gZGVpc3VpXCA7CivmuJvmrrogPiBnZW5zYWlcIDsKK+a4m+autSA+IGdlbnRhblwgOwor6Y6u5bqnID4gY2hpbnphXCA7CivnqYLnirYgPiBzdWlqb3VcIDsKK+WPo+mgrSA+IGtvdXRvdVwgOwor5riF5riFID4gc2Vpc2VpXCA7CivlkIjpjbUgPiBhaWthZ2lcIDsKK+ethuWLoiA+IGhpc3NlaVwgOwor56uL5oayID4gcmlra2VuXCA7CivlloTmlL8gPiB6ZW5zZWlcIDsKK+a0nuimiyA+IGRvdWtlblwgOwor56S86YeRID4gcmVpa2luXCA7Civmh5Dmn5QgPiBrYWlqdXVcIDsKK+WPjemosCA+IGhhbnRvdVwgOwor6Jia6IuUID4gc2VudGFpXCA7CivmuoDlubIgPiBtYW5rYW5cIDsKK+emveiIjiA+IGtpbnNoYVwgOwor5ZGK6KutID4ga29rdXl1XCA7CivmuIXmtYQgPiBzZWlqb3VcIDsKK+etieWIhiA+IHRvdWJ1blwgOwor56m65qyEID4ga3V1cmFuXCA7CivmsqHpoK0gPiBib3R0b3VcIDsKK+aKl+S9kyA+IGtvdXRhaVwgOwor5Y+l6ZuGID4ga3VzaHV1XCA7CivmiYvloakgPiB0ZXNoaW9cIDsKK+a5v+W4gyA+IHNoaXBwdVwgOwor56uv5bGxID4gaGF5YW1hXCA7Civmg6Poj5wgPiBzb3V6YWlcIDsKK+aIkOW9oiA+IHNlaWtlaVwgOwor56uc5bqnID4gcnl1dXphXCA7CivpiYToo70gPiB0ZXNzZWlcIDsKK+WRiuiotCA+IGtva3Vzb1wgOwor5rW357a/ID4ga2FpbWVuXCA7Civll5zlpb0gPiBzaGlrb3VcIDsKK+WPl+mgmCA+IGp1cnlvdVwgOwor562G5YaZID4gaGlzc2hhXCA7CivmuIfmsLQgPiBrYXNzdWlcIDsKK+a4iOawkSA+IHNhaW1pblwgOwor56aB6KGbID4ga2luJydlaVwgOwor5oqX5LqJID4ga291c291XCA7CivmuIXmsLQgPiBzZWlzdWlcIDsKK+WQiOmHkSA+IGdvdWtpblwgOwor5re35reGID4ga29ua291XCA7Civlk4HnrYkgPiBoaW50b3VcIDsKK+aJv+WFgSA+IHNob3VpblwgOwor5oKq6KiAID4gYWt1Z2VuXCA7CivnpLzpgYcgPiByZWlndXVcIDsKK+WWnOaCpiA+IGtpZXRzdVwgOwor56uL5b+XID4gcmlzc2hpXCA7CivpvJPnrJsgPiBrb3Rla2lcIDsKK+aIkOW5tCA+IHNlaW5lblwgOwor56eB6ICDID4gc2hpa291XCA7CivmhqTmrbsgPiBmdW5zaGlcIDsKK+m6u+iWrCA+IG1heWFrdVwgOwor5riH5q27ID4ga2Fzc2hpXCA7Civnq6/lrZAgPiB0YW5zaGlcIDsKK+aHh+acmyA+IGtvbm1vdVwgOwor6Jma56S8ID4ga3lvcmVpXCA7Civono3lkIggPiB5dXVnb3VcIDsKK+WQjOmCpiA+IGRvdWhvdVwgOwor5rKI6aaZID4gamlua291XCA7Civmh4fmm7ggPiBrb25zaG9cIDsKK+m7hOiRiSA+IGtvdXlvdVwgOwor562J5YCkID4gdG91Y2hpXCA7Civmub7lsrggPiB3YW5nYW5cIDsKK+a6gOWxsSA+IG1hbnphblwgOwor6J6i5YWJID4ga2Vpa291XCA7Civlj4zpoK0gPiBzb3V0b3VcIDsKK+WVhuapnyA+IHNob3VraVwgOwor5omN5Zm4ID4gc2FpdG9uXCA7CivlkIzpgZMgPiBkb3Vkb3VcIDsKK+eosueGsSA+IGltb2NoaVwgOwor6Y6u5a6IID4gY2hpbmp1XCA7Civmu7TkuIsgPiB0ZWtpa2FcIDsKK+WTgeeoriA+IGhpbnNodVwgOwor6buE6I+KID4ga2lnaWt1XCA7CivmioDlgIYgPiBnaXJ5b3VcIDsKK+aEmuetliA+IGd1c2FrdVwgOwor5re35rKMID4ga29udG9uXCA7CivlkITpg6ggPiBrYWt1YnVcIDsKK+azoui3ryA+IG5hbWlqaVwgOwor5Y+N6Z2iID4gaGFubWVuXCA7CivlloTmiKYgPiB6ZW5zZW5cIDsKK+a0i+ijhSA+IHlvdXNvdVwgOwor5rSL6KOBID4geW91c2FpXCA7CivmiYDlnKggPiBzaG96YWlcIDsKK+aCquihgCA+IG9rZXRzdVwgOwor56We6KmxID4gc2hpbndhXCA7CivmhajnhLYgPiBnYWl6ZW5cIDsKK+ertuWjsiA+IGtlaWJhaVwgOwor6Je76I2JID4gbW9ndXNhXCA7Civnp7vnnYAgPiBpY2hha3VcIDsKK+elneipniA+IG5vcml0b1wgOwor5rSL6KGMID4geW91a291XCA7CivlkIzovKkgPiBkb3VoYWlcIDsKK+aApemgiCA+IGt5dXVzdVwgOwor56eY562WID4gaGlzYWt1XCA7Civmtojno6ggPiBzaG91bWFcIDsKK+m7meiAgyA+IG1va2tvdVwgOwor5oaO5rCXID4gbmlrdWdlXCA7CivlkIzou4ogPiBkb3VzaGFcIDsKK+a2iOejgSA+IHNob3VqaVwgOwor5ZSx5q2MID4gc2hvdWthXCA7CivmhJvnp7AgPiBhaXNob3VcIDsKK+a5luW/gyA+IGtvc2hpblwgOwor5reh5rehID4gdGFudGFuXCA7CivlloTmhJ8gPiB6ZW5rYW5cIDsKK+aymemWgCA+IHNoYW1vblwgOwor56iu54GrID4gdGFuZWJpXCA7CivpioXnt5ogPiBkb3VzZW5cIDsKK+aAqOmciiA+IG9ucnlvdVwgOwor5omL5ZOBID4gdGVqaW5hXCA7CivmiJHlrrYgPiB3YWdheWFcIDsKK+epuuabuSA+IGt1dXNvdVwgOwor5oim5aOrID4gc2Vuc2hpXCA7Civlj43plpMgPiBoYW5rYW5cIDsKK+aJjeWQjSA+IHNhaW1laVwgOwor56S+6LOTID4gc2hhaGluXCA7CivmtrLnirYgPiBla2lqb3VcIDsKK+aBtei0iCA+IGtlaXpvdVwgOwor5Y+j6YqtID4ga291c2VuXCA7CivlloTmgKcgPiB6ZW5zZWlcIDsKK+ekvOizmyA+IHJhaXNhblwgOwor5oim5aG1ID4gc2VuamluXCA7Civph5Hpiq0gPiBraW5zZW5cIDsKK+aHuOW3oyA+IGtha2VzdVwgOwor56mC5rOiID4gaG9uYW1pXCA7Civmh5DmirEgPiBrYWlob3VcIDsKK+WPgumZoiA+IHNhbicnaW5cIDsKK+mPpOWIuyA+IHJ1a29rdVwgOwor6YeR6YqAID4ga2luZ2luXCA7CivpioDntYwgPiBnaW5rZWlcIDsKK+aIpuWgtCA+IHNlbmpvdVwgOwor6YeR6YmxID4ga2lua291XCA7Civmhrbmlq0gPiBva3VkYW5cIDsKK+a4m+aVsCA+IGdlbnN1dVwgOwor5rqA5aSpID4gbWFudGVuXCA7CivlkozntrQgPiB3YXRvamlcIDsKK+a1hOe9qiA+IGpvdXphaVwgOwor5oSf55+lID4ga2FuY2hpXCA7Civms7Dopb8gPiB0YWlzZWlcIDsKK+a0i+iYrSA+IHlvdXJhblwgOwor6YqA57O4ID4gZ2luc2hpXCA7Civmt6HmsLQgPiB0YW5zdWlcIDsKK+a6tuWJpCA+IHlvdXphaVwgOwor56m65paHID4ga3V1YnVuXCA7Civpu4TogowgPiBraWhhZGFcIDsKK+aIkOWpmiA+IHNlaWtvblwgOwor5rOo6KiYID4gY2h1dWtpXCA7CivlkJ/oqaAgPiBnaW4nJ2VpXCA7Civmh7jltJYgPiBrZW5nYWlcIDsKK+mNm+aIkCA+IHRhbnNlaVwgOwor6YqA57KJID4gZ2lucHVuXCA7Civmh6blvLEgPiBkYWpha3VcIDsKK+aBreizgCA+IGt5b3VnYVwgOwor5Y216buEID4gcmFuJydvdVwgOwor5omL5YuVID4gc2h1ZG91XCA7Civol43ol7sgPiByYW5zb3VcIDsKK+aGsuaUvyA+IGtlbnNlaVwgOwor5oim5ZywID4gc2VuY2hpXCA7CivnpLzoroMgPiByYWlzYW5cIDsKK+a6gOWhgSA+IG1hbnJ1aVwgOwor5ZCI6LOHID4gZ291c2hpXCA7CivmuoDloLQgPiBtYW5qb3VcIDsKK+WPt+i7iiA+IGdvdXNoYVwgOwor5rOj6Ki0ID4ga3l1dXNvXCA7Civph43ph40gPiBqdXVqdXVcIDsKK+aBqeizniA+IG9uc2hvdVwgOwor5riF5pu4ID4gc2Vpc2hvXCA7CivmuoDloIIgPiBtYW5kb3VcIDsKK+aJh+WLlSA+IHNlbmRvdVwgOwor5omN5YiGID4gc2FpYnVuXCA7CivmuJvmkI0gPiBnZW5zb25cIDsKK+awtOm7vSA+IGFtZW5ib1wgOwor56We6JuHID4gc2hpbmphXCA7Civlk4Dnl5sgPiBhaXRzdXVcIDsKK+aIkuWjhyA+IGthaWRhblwgOwor6bqm6Iq9ID4gYmFrdWdhXCA7Civlj7Dou4ogPiBkYWlzaGFcIDsKK+WTgeeVqiA+IGhpbmJhblwgOwor6Jar6KO9ID4ga3Vuc2VpXCA7CivmiYvlhpkgPiBzaHVzaGFcIDsKK+a4heaYjiA+IHNlaW1laVwgOwor5rOV6KuWID4gaG91cm9uXCA7Civmsbrpl5ggPiBrZXR0b3VcIDsKK+azleirhyA+IGhvdWRhblwgOwor5Y6f6aGMID4gZ2VuZGFpXCA7CivmiYvlhbUgPiBzaHVoZWlcIDsKK+aJgOWKtCA+IHNob3JvdVwgOwor5Y6f6aCtID4gZ2VudG91XCA7Civph4fphY0gPiBzYWloYWlcIDsKK+WQjeirliA+IG1laXJvblwgOwor5rWF57SFID4gc2Vua291XCA7CivnrKzkuIkgPiBkYWlzYW5cIDsKK+a3u+abuCA+IHRlbnNob1wgOwor5omL5YWIID4gdGVzYWtpXCA7CivmiYvlhYMgPiB0ZW1vdG9cIDsKK+aBqeiukCA+IG9uc2h1dVwgOwor5oGp6K6OID4gb25zaHV1XCA7Civlj6PovrogPiBrb3VoZW5cIDsKK+WOn+mfsyA+IGdlbicnb25cIDsKK+aIkeWftyA+IGdhc2h1dVwgOwor56m65oy6ID4ga3V1dGVpXCA7CivmtLvnt5ogPiBrYXNzZW5cIDsKK+WQjOiqjCA+IGRvdXNoaVwgOwor5Y6a6aGUID4ga291Z2FuXCA7CivlkI3oqZ4gPiBtZWlzaGlcIDsKK+mIjeihjCA+IGRvbmtvdVwgOwor5oeH5oOFID4ga29uam91XCA7Civmt7vmma8gPiB0ZW5rZWlcIDsKK+aJi+WCtyA+IHRla2l6dVwgOwor56m65ouzID4ga3V1a2VuXCA7Civph53ot68gPiBzaGlucm9cIDsKK+espuS4gSA+IGZ1Y2hvdVwgOwor5ZCN6KiAID4gbWVpZ2VuXCA7CivlkIzoqJMgPiBkb3VrdW5cIDsKK+mHkei8qiA+IGthbmF3YVwgOwor5oiQ5Z6LID4gc2Vpa2VpXCA7CivmsqLovrogPiBzYXdhYmVcIDsKK+azleimgSA+IGhvdXlvdVwgOwor56eR55uuID4ga2Ftb2t1XCA7CivpvIjnlLIgPiBiZWtrb3VcIDsKK+icguW3oyA+IGhvdXNvdVwgOwor56m65omLID4ga2FyYXRlXCA7CivnpLzoo4UgPiByZWlzb3VcIDsKK+WQjOimliA+IGRvdXNoaVwgOwor5ZaE5bCOID4gemVuZG91XCA7CivnqbrmiYAgPiBrdXVzaG9cIDsKK+W/temhmCA+IG5lbmdhblwgOwor5ZCI6KiIID4gZ291a2VpXCA7CivpurvnuZQgPiBhc2FvcmlcIDsKK+WPpOi5nyA+IGtvc2VraVwgOwor5ZGq57ibID4ganViYWt1XCA7CivnqbrmiKYgPiBrdXVzZW5cIDsKK+aFqOatjiA+IGdhaXRhblwgOwor5rGX6aGUID4ga2FuZ2FuXCA7Civlv7XpoK0gPiBuZW50b3VcIDsKK+enkeeZvSA+IHNlcmlmdVwgOwor5Y6f6ZqKID4gZ2VudGFpXCA7CivphrXph5EgPiBreW9raW5cIDsKK+eovOalrSA+IGthZ3lvdVwgOwor56uv5Y6zID4gdGFuZ2VuXCA7Civolq7omoogPiB5YWJ1a2FcIDsKK+WRqOe4gSA+IHNodXVlblwgOwor5Zaa5aOwID4ga2Fuc2VpXCA7CivmtbfnlKMgPiBrYWlzYW5cIDsKK+aIpuWPsiA+IHNlbnNoaVwgOwor5rqA5ZOhID4gbWFuJydpblwgOwor5Y+b6LuNID4gaGFuZ3VuXCA7Civpu4TnsokgPiBraW5ha29cIDsKK+eojua6kCA+IHplaWdlblwgOwor5Y+L6YKmID4geXV1aG91XCA7Civpjpblm70gPiBzYWtva3VcIDsKK+erueWIgCA+IHNoaW5haVwgOwor5oSB55yJID4gc2h1dWJpXCA7Civpu5nnp5ggPiBtb2t1aGlcIDsKK+a4heaOgyA+IHNlaXNvdVwgOwor6bq757WyID4gYXNhaXRvXCA7CivpioPnoLIgPiBqdXVob3VcIDsKK+aJjeS6uiA+IHNhaWppblwgOwor5ris5bqmID4gc29rdWRvXCA7CivlkIzoob4gPiBkb3VraW5cIDsKK+mNm+W3pSA+IHRhbmtvdVwgOwor6YW46aGeID4gc2FucnVpXCA7CivmtrzmsJcgPiByeW91a2lcIDsKK+eri+WcsCA+IHJpdGNoaVwgOwor5ZCM6KGMID4gZG91a291XCA7Civnqbrmg7MgPiBrdXVzb3VcIDsKK+aJi+S6pCA+IHNodWtvdVwgOwor6buS56mCID4ga3Vyb2JvXCA7Civmg4Xnt5IgPiBqb3VjaG9cIDsKK+ayg+mHjiA+IHlva3V5YVwgOwor6bq757O4ID4gYXNhaXRvXCA7CivllqflmaogPiBrZW5zb3VcIDsKK+a4qeW6iiA+IG9uc2hvdVwgOwor5oSf54q2ID4ga2Fuam91XCA7CivlkIjoob4gPiBnb3VraW5cIDsKK+aEm+eMqyA+IGFpYnlvdVwgOwor6Ya46YCgID4gam91em91XCA7CivmiKblip8gPiBzZW5rb3VcIDsKK+engeebiiA+IHNoaWVraVwgOwor5rm+5Y+jID4gd2Fua291XCA7Civlj7Loq5YgPiBzaGlyb25cIDsKK+mKg+ecvCA+IGp1dWdhblwgOwor5Y+y6KuHID4gc2hpZGFuXCA7Civnq6Dlj6UgPiBzaG91a3VcIDsKK+mKheebpCA+IGRvdWJhblwgOwor5oa25b+1ID4gb2t1bmVuXCA7Civlkbznp7AgPiBrb3Nob3VcIDsKK+aIpuWJjSA+IHNlbnplblwgOwor6bie6Ly/ID4gcmFuJyd5b1wgOwor5oan5oasID4gZG91a2VpXCA7Civlj4zovKogPiBzb3VyaW5cIDsKK+WPgumBkyA+IHNhbmRvdVwgOwor5ray5rGBID4gZWtpanV1XCA7CivnqL/mnKwgPiBrb3Vob25cIDsKK+a1t+eNoyA+IGthaWp1dVwgOwor5oak5oejID4gZnVubWFuXCA7Civlj7LoqakgPiBzaGlzaGlcIDsKK+WPjei7oiA+IGhhbnRlblwgOwor5Y+N6LuNID4gaGFuZ3VuXCA7Civlj6/oqq0gPiBrYWRva3VcIDsKK+aHuOWegiA+IGtlbnN1aVwgOwor56iO5rOVID4gemVpaG91XCA7CivljrPph40gPiBnZW5qdXVcIDsKK+iWq+iSuCA+IGt1bmpvdVwgOwor5Y+w6KmeID4gc2VyaWZ1XCA7CivpjKzmiJAgPiByZW5zZWlcIDsKK+mKgOebpCA+IGdpbmJhblwgOwor5Y+L6LuNID4geXV1Z3VuXCA7CivlkoznnaYgPiB3YWJva3VcIDsKK+mKgOebgyA+IGdpbnBhaVwgOwor5oak5oWoID4gZnVuZ2FpXCA7CivllJDmnKwgPiB0b3Vob25cIDsKK+mJhOe3miA+IHRlc3NlblwgOwor6Yu85p2/ID4ga291YmFuXCA7CivpvLvmr5sgPiBoYW5hZ2VcIDsKK+WPsuimsyA+IHNoaWthblwgOwor5Y+M6LmEID4gc291dGVpXCA7Civlj5fos54gPiBqdXNob3VcIDsKK+a2iOeBqyA+IHNob3VrYVwgOwor5oiS5Y6zID4ga2FpZ2VuXCA7Civpi7zmnZAgPiBrb3V6YWlcIDsKK+a0l+e3tCA+IHNlbnJlblwgOwor5Y+w6KanID4gdGFpcmFuXCA7Civnp4HnlKggPiBzaGl5b3VcIDsKK+W/l+mhmCA+IHNoaWdhblwgOwor5ZCM6JepID4gZG91aGFuXCA7Civlj6Poq5YgPiBrb3Vyb25cIDsKK+WPo+iqvyA+IGt1Y2hvdVwgOwor5Y+i6KuHID4gc291ZGFuXCA7CivljrPpgbggPiBnZW5zZW5cIDsKK+err+WAqiA+IHRhbmdlaVwgOwor6YeR6KuHID4ga2luZGFuXCA7Civmt7fmiKYgPiBrb25zZW5cIDsKK+aIr+S9nCA+IGdlc2FrdVwgOwor5re35oiQID4ga29uc2VpXCA7CivllprllY8gPiBrYW5tb25cIDsKK+ekvuiRrCA+IHNoYXNvdVwgOwor5oak5oCSID4gZnVuJydudVwgOwor5Y+k6Ki7ID4ga29jaHV1XCA7CivmtYHnn7MgPiBzYXN1Z2FcIDsKK+mJhOeyiSA+IHRlcHB1blwgOwor6YaX6YW1ID4gaGFra291XCA7Civljp/pibEgPiBnZW5rb3VcIDsKK+a4qeWuuSA+IG9uJyd5b3VcIDsKK+m6pueyiSA+IG11Z2lrb1wgOwor5oiQ5YqfID4gc2Vpa291XCA7Civmt7HmiYsgPiBmdWthZGVcIDsKK+m7kuebriA+IGt1cm9tZVwgOwor6YeR6KiAID4ga2luZ2VuXCA7CivmtJfnsbMgPiBzZW5tYWlcIDsKK+aGkOaGqyA+IHJlbmJpblwgOwor5Y6f6YeOID4gZ2VuJyd5YVwgOwor5rCX6a2EID4ga2loYWt1XCA7Civlj5foq74gPiBqdWRha3VcIDsKK+awl+mssSA+IGtpdXRzdVwgOwor5oiQ5YiGID4gc2VpYnVuXCA7CivolqzoiJcgPiB5YWt1aG9cIDsKK+WQjeiRlyA+IG1laWNob1wgOwor6YmE566hID4gdGVra2FuXCA7Civph43oqIAgPiBqdXVnb25cIDsKK+awt+mcpyA+IGh5b3VtdVwgOwor5oSN54S2ID4gYmluemVuXCA7Civph5HopbQgPiBraW5yYW5cIDsKK+aHkOWmiiA+IGthaW5pblwgOwor5rC06Z2iID4gbWlub21vXCA7Civnpo3npo8gPiBrYWZ1a3VcIDsKK+awt+mbqCA+IGhpc2FtZVwgOwor6YmE562LID4gdGVra2luXCA7Civmh7jlkb0gPiBrZW5tZWlcIDsKK+mFlOmhlCA+IHN1aWdhblwgOwor5oaQ5oSNID4gcmVuYmluXCA7CivmtIvntJkgPiB5b3VzaGlcIDsKK+mHjeimliA+IGp1dXNoaVwgOwor5oiQ5YW4ID4gc2VpdGVuXCA7Civpiq3mua8gPiBzZW50b3VcIDsKK+a4heW7iSA+IHNlaXJlblwgOwor5rSL57SFID4geW91a291XCA7Civph43opoEgPiBqdXV5b3VcIDsKK+mHkeijvSA+IGtpbnNlaVwgOwor6YWS6aGeID4gc2h1cnVpXCA7CivlkIjokZcgPiBnb3VjaG9cIDsKK+m2j+mztCA+IGtlaW1laVwgOwor56a9542jID4ga2luanV1XCA7CivmsLTpm7cgPiBzdWlyYWlcIDsKK+WPl+iouyA+IGp1Y2h1dVwgOwor5Y+X6Ki6ID4ganVzaGluXCA7Civlj6Poo4UgPiBrb3Vzb3VcIDsKK+a3seaEjyA+IHNoaW4nJ2lcIDsKK+ejgemHnSA+IGppc2hpblwgOwor5oaQ5oOFID4gcmVuam91XCA7CivmsLTpm6MgPiBzdWluYW5cIDsKK+WQm+iHqCA+IGt1bnJpblwgOwor5oim5LqJID4gc2Vuc291XCA7Civlj5foqJcgPiBqdXRha3VcIDsKK+aIpuS5sSA+IHNlbnJhblwgOwor5rWp54S2ID4ga291emVuXCA7CivnqpPlpJYgPiBzb3VnYWlcIDsKK+WVj+WxiyA+IHRvbicneWFcIDsKK+mJhOeqkyA+IHRlc3NvdVwgOwor5ZCN6Iy2ID4gbWVpY2hhXCA7CivmhafmlY8gPiBrZWliaW5cIDsKK+a4r+WkliA+IGtvdWdhaVwgOwor6JuH5bqnID4gaGViaXphXCA7Civnqb/lrZQgPiBzZW5rb3VcIDsKK+a5r+WFgyA+IHl1bW90b1wgOwor6by75qKBID4gYmlyeW91XCA7Civnp4HniYggPiBzaGloYW5cIDsKK+WPjeirliA+IGhhbnJvblwgOwor56m65a+dID4gc29yYW5lXCA7CivmtYTnlYwgPiBqb3VrYWlcIDsKK+iWhOiWhCA+IHVzdXVzdVwgOwor5rC06ZiyID4gc3VpYm91XCA7CivpioXniYwgPiBkb3VoYWlcIDsKK+WWnOWKhyA+IGtpZ2VraVwgOwor5oaC5oakID4geXV1ZnVuXCA7CivmhJ/mtpkgPiBrYW5ydWlcIDsKK+eptOWxhSA+IGtla2t5b1wgOwor56uL5YasID4gcml0dG91XCA7CivmhoLmha4gPiB5dXVyeW9cIDsKK+a1t+a6nSA+IGthaWtvdVwgOwor56uL5YWaID4gcml0dG91XCA7CivljprpgYcgPiBrb3VndXVcIDsKK+WSjOeLrCA+IHdhZG9rdVwgOwor5oCq6KuHID4ga2FpZGFuXCA7CivmtanngJogPiBrb3VrYW5cIDsKK+mHkeidvyA+IGtpbmJhZVwgOwor6YqA54mMID4gZ2lucGFpXCA7CivmsLTploAgPiBzdWltb25cIDsKK+ibruWjsCA+IGJhbnNlaVwgOwor5ZaE5ZOJID4gemVuemFpXCA7CivlkI/oh60gPiByaXNodXVcIDsKK+WQjOiIuSA+IGRvdXNlblwgOwor5Y2Y6aCFID4gdGFua291XCA7CivljZjpn7MgPiB0YW4nJ29uXCA7CivmtbfmuK8gPiBrYWlrb3VcIDsKK+mJm+eZvSA+IGVucGFrdVwgOwor5Y+C6KyAID4gc2FuYm91XCA7Civmgqrnq6UgPiBha3Vkb3VcIDsKK+aGguaCtiA+IHl1dW1vblwgOwor5oaC5oKjID4geXV1a2FuXCA7Civmta7mvIIgPiBmdWh5b3VcIDsKK+m8u+acqCA+IGhhbmFnaVwgOwor6YWN6Zu7ID4gaGFpZGVuXCA7CivlkozniZsgPiB3YWd5dXVcIDsKK+iWhOiRiSA+IHVzdXlvdVwgOwor5oiQ5L2TID4gc2VpdGFpXCA7CivllJDmiYsgPiBrYXJhdGVcIDsKK+a3q+W/gyA+IGluc2hpblwgOwor5ZWG5a62ID4gc2hvdWthXCA7CivllJDmiLggPiBrYXJhZG9cIDsKK+a0l+ekvCA+IHNlbnJlaVwgOwor5ZCI6Ie0ID4gZ2F0Y2hpXCA7CivljZfpnaIgPiBuYW5tZW5cIDsKK+WPguipoyA+IHNhbmtlaVwgOwor5oaC5oCdID4geXV1c2hpXCA7CivlkJHog4wgPiBrb3VoYWlcIDsKK+a3seW6piA+IHNoaW5kb1wgOwor5oW35oWoID4ga291Z2FpXCA7Civmg6jnirYgPiBzYW5qb3VcIDsKK+WQvuetiSA+IHdhcmVyYVwgOwor5rW35rWcID4ga2FpaGluXCA7CivmsJHpoqggPiBtaW5wdXVcIDsKK+iZmuaniyA+IGt5b2tvdVwgOwor5Y2a6ZuFID4gYmFrdWdhXCA7CivmiJDkurogPiBzZWlqaW5cIDsKK+aCqueojiA+IGFrdXplaVwgOwor6buE55OcID4ga3l1dXJpXCA7CivlkLnnrqEgPiBzdWlrYW5cIDsKK+a0i+eoriA+IHlvdXNodVwgOwor5rW35rSLID4ga2FpeW91XCA7Civnp7vmpI0gPiBpc2hva3VcIDsKK+mJhOegsiA+IHRlcHBvdVwgOwor5ZCE6IeqID4ga2FrdWppXCA7CivpurvnlrkgPiBtYXNoaW5cIDsKK+WWp+S8nSA+IGtlbmRlblwgOwor6JaE6Iy2ID4gdXN1Y2hhXCA7Civlj4LoprMgPiBzYW5rYW5cIDsKK+WRiuekuiA+IGtva3VqaVwgOwor5oSf5q2OID4ga2FudGFuXCA7CivljZfpmoUgPiBuYW5ndXVcIDsKK+WQq+ezliA+IGdhbnRvdVwgOwor6Juu5ZywID4gYmFuY2hpXCA7CivmgqrnpZ4gPiBha3VqaW5cIDsKK+WQjeiBniA+IG1laWJ1blwgOwor56uL5L2TID4gcml0dGFpXCA7CivljYrpn7MgPiBoYW4nJ29uXCA7CivljZfpmZAgPiBuYW5nZW5cIDsKK+aDheeXtCA+IGpvdWNoaVwgOwor56qB5aCkID4gdG90dGVpXCA7CivllqrkuK0gPiBtb2NodXVcIDsKK+a4m+WhqSA+IGdlbicnZW5cIDsKK+a4peWcsCA+IGFrdWNoaVwgOwor5reh5b2pID4gdGFuc2FpXCA7CivmtbfmsLQgPiBrYWlzdWlcIDsKK+a1rua1gSA+IGZ1cnl1dVwgOwor56Wt56WeID4gc2FpamluXCA7CivnpZ7nrKYgPiBzaGlucHVcIDsKK+mHkeiUtSA+IGtpbnpvdVwgOwor5oSb5qyyID4gYWl5b2t1XCA7Civnpa3npYAgPiBzYWlzaGlcIDsKK+WOs+irhyA+IGdlbmRhblwgOwor6JaE6ImyID4gdXN1aXJvXCA7Civnpa3npLwgPiBzYWlyZWlcIDsKK+awkemdkiA+IG1pbnNlaVwgOwor5Y2K6Z2iID4gaGFubWVuXCA7Civlj6Pok4sgPiBrb3VnYWlcIDsKK+a1qua1qiA+IHJvdXJvdVwgOwor5riT5aOwID4ga2Vpc2VpXCA7CivomZrmoLkgPiBreW9rb25cIDsKK+W+rumchyA+IGJpc2hpblwgOwor5b+c6YWsID4gb3VzaHV1XCA7CivljZfploAgPiBuYW5tb25cIDsKK+WOn+izhyA+IGdlbnNoaVwgOwor5rSX55y8ID4gc2VuZ2FuXCA7CivphanphYogPiBtZWl0ZWlcIDsKK+aAp+ihjCA+IHNlaWtvdVwgOwor5ZaE5YemID4gemVuc2hvXCA7CivlkIznvaogPiBkb3V6YWlcIDsKK+a1ruayiCA+IGZ1Y2hpblwgOwor5rC06YqAID4gc3VpZ2luXCA7Civpu5LnhZkgPiBrb2t1ZW5cIDsKK+W+oemhjCA+IGd5b2RhaVwgOwor5Y6z6KiTID4gZ2Vua3VuXCA7CivljbPph5EgPiBzb2traW5cIDsKK+WTgOalvSA+IGFpcmFrdVwgOwor56m65Z+fID4ga3V1aWtpXCA7CivpioDmvKIgPiBnaW5rYW5cIDsKK+a3seWxsSA+IG1peWFtYVwgOwor6YeO6JKcID4gbm9iaXJ1XCA7Civmta7msLcgPiBmdWh5b3VcIDsKK+m2j+mgrSA+IGtlaXRvdVwgOwor56eL5rOiID4gc2h1dWhhXCA7CivmtLvniYggPiBrYXBwYW5cIDsKK+ekvue3miA+IHNoYXNlblwgOwor5rCX6ZW3ID4ga2luYWdhXCA7CivnpZ7np5ggPiBzaGlucGlcIDsKK+epuuWcsCA+IGFraWNoaVwgOwor5Y+w6IeoID4gdGFpcmluXCA7Civmg6jmvrkgPiBzYW50YW5cIDsKK+aEm+alvSA+IGFpZ3lvdVwgOwor6YeO6I+KID4gbm9naWt1XCA7Civnp4vmsJcgPiBzaHV1a2lcIDsKK+azlee3miA+IGhvdXNlblwgOwor5rCR6ZaTID4gbWlua2FuXCA7Civmh4flkb0gPiBrb25tZWlcIDsKK+a4r+WPoyA+IGtvdWtvdVwgOwor5oKq55u4ID4gYWt1c291XCA7CivlvqHpnIogPiBtaXRhbWFcIDsKK+axuuijgSA+IGtlc3NhaVwgOwor5Y2K6ZaLID4gaGFua2FpXCA7Civms5XntrIgPiBob3Vtb3VcIDsKK+aCsueXmyA+IGhpdHN1dVwgOwor6bqm55SwID4gbXVnaXRhXCA7CivptZ7ps6UgPiBnYWNob3VcIDsKK+awtOmDtyA+IHN1aWdvdVwgOwor5ZCI57mKID4gZ291c2VuXCA7Civnp4Hms5UgPiBzaGlob3VcIDsKK+m1nemzpSA+IGdhY2hvdVwgOwor5oWj5oCnID4ga2Fuc2VpXCA7Civljp/oq5YgPiBnZW5yb25cIDsKK+axuuihjCA+IGtla2tvdVwgOwor5oWi5oCnID4gbWFuc2VpXCA7CivlvqHpmbUgPiBnb3J5b3VcIDsKK+W/q+i1sCA+IGthaXNvdVwgOwor5b6T6aCGID4ganV1anVuXCA7CivpvKDml48gPiBzb3pva3VcIDsKK+ayu+iAhSA+IGNoaXNoYVwgOwor5Y6f6KmpID4gZ2Vuc2hpXCA7CivmsLTpgZMgPiBzdWlkb3VcIDsKK+aEn+afkyA+IGthbnNlblwgOwor5oeQ5YmjID4ga2Fpa2VuXCA7Civmg4XnirYgPiBqb3Vqb3VcIDsKK+WQjOe0mSA+IGRvdXNoaVwgOwor6Ymx5ruTID4ga291c2hpXCA7CivlkJHnsbMgPiBrb3ViZWlcIDsKK+mJhOeQtCA+IHRla2tpblwgOwor5ZCM57O7ID4gZG91a2VpXCA7Civnqq7kvZkgPiBreXV1eW9cIDsKK+a1ruaomSA+IGZ1aHlvdVwgOwor6YqA5rOlID4gZ2luZGVpXCA7Civlj6/ogbQgPiBrYWNob3VcIDsKK+iZmuaVsCA+IGt5b3N1dVwgOwor5rW35qOgID4ga2FpZG91XCA7CivmgqrnlqsgPiBha3Vla2lcIDsKK+a4m+WToSA+IGdlbicnaW5cIDsKK+WQg+e3iiA+IGtpa2tpblwgOwor5oGp57WmID4gb25reXV1XCA7CivmsLTovrogPiBtaXp1YmVcIDsKK+W+oemWgCA+IG1pa2Fkb1wgOwor5Y+M6JGJID4gZnV0YWJhXCA7CivlvozpoIUgPiBrb3Vrb3VcIDsKK+eon+aApyA+IGhpbnNlaVwgOwor5re35aOwID4ga29uc2VpXCA7Civlj6PohZQgPiBrb3Vrb3VcIDsKK+mNm+WGtiA+IHRhbicneWFcIDsKK+aCqueUqCA+IGFrdXlvdVwgOwor56qD5Y+WID4gc2Vzc2h1XCA7CivmhInmpb0gPiB5dXJha3VcIDsKK+engOatjCA+IHNodXVrYVwgOwor5Yy66ZW3ID4ga3VjaG91XCA7CivmuJvlj7cgPiBnZW5nb3VcIDsKK+a4r+WGhSA+IGtvdW5haVwgOwor5rC06LuKID4gc3Vpc2hhXCA7CivmuJvlj40gPiBnZW50YW5cIDsKK+mFkumAoCA+IHNodXpvdVwgOwor6JmO5paRID4gdG9yYWZ1XCA7Civpu5LmtbcgPiBrb2trYWlcIDsKK+WQjeetlCA+IG1laXRvdVwgOwor5b6M6ZujID4ga291bmFuXCA7CivnqbrlkI0gPiBrdXVtZWlcIDsKK+a1hea1tyA+IHNlbmthaVwgOwor6Yym5ZywID4ga2luY2hpXCA7Civlj43oi7EgPiBoYW4nJ2VpXCA7CivlkIznrYkgPiBkb3V0b3VcIDsKK+a2suaApyA+IGVraXNlaVwgOwor6by75oGvID4gYmlzb2t1XCA7CivmgqrnkIMgPiBha2t5dXVcIDsKK+WQiOeulyA+IGdhc3NhblwgOwor5Y+N6Iq7ID4gaGFuc3V1XCA7CivmtIvnkLQgPiB5b3VraW5cIDsKK+engeaoqSA+IHNoaWtlblwgOwor6YmE54mHID4gdGVwcGVuXCA7CivnobzphbggPiBob3VzYW5cIDsKK+mJseaziSA+IGtvdXNlblwgOwor5rW35pyIID4ga3VyYWdlXCA7Civmtbfmm7kgPiBrYWlzb3VcIDsKK+mFjemAgSA+IGhhaXNvdVwgOwor5b6M6ZmjID4ga291amluXCA7CivljZfpg4ogPiBuYW5rb3VcIDsKK+axjuirliA+IGhhbnJvblwgOwor5ZSQ5a2QID4ga2FyYWtvXCA7CivmtYHmtL4gPiByeXV1aGFcIDsKK+iWhOe0lyA+IGhha3VzYVwgOwor6Jm55b2pID4ga291c2FpXCA7Civmt7flnKggPiBrb256YWlcIDsKK+WQjOeqkyA+IGRvdXNvdVwgOwor56aB54WZID4ga2luJydlblwgOwor6YqY5p2/ID4gbWVpYmFuXCA7CivpibHmsLQgPiBrb3VzdWlcIDsKK+W+rumHjyA+IGJpcnlvdVwgOwor5rK557W1ID4gYWJ1cmFlXCA7Civmtbfmma8gPiBrYWlrZWlcIDsKK+epuuWMhSA+IGt1dWhvdVwgOwor5Y2K6YeRID4gaGFua2luXCA7Civmr5vpoK0gPiBtb3V0b3VcIDsKK+aEm+aVrCA+IGFpa3lvdVwgOwor5ZCM56iuID4gZG91c2h1XCA7Civnqb/liLogPiBzZW5zaGlcIDsKK+W9oumquCA+IGtlaWdhaVwgOwor5oOo5q27ID4gemFuc2hpXCA7CivmtbfmmJ8gPiBoaXRvZGVcIDsKK+aFiOW/gyA+IGppc2hpblwgOwor5b6M6ZaAID4ga291bW9uXCA7CivmtYTmsLQgPiBqb3VzdWlcIDsKK+a4m+WIkSA+IGdlbmtlaVwgOwor6YeN572qID4ganV1emFpXCA7CivphaLosZogPiBzdWJ1dGFcIDsKK+WNg+mIniA+IHNlbmtpblwgOwor6buE5rW3ID4ga291a2FpXCA7Civlj7DntJkgPiBkYWlzaGlcIDsKK+mFjei7iiA+IGhhaXNoYVwgOwor56We55K9ID4gc2hpbmppXCA7CivnqbrliY0gPiBrdXV6ZW5cIDsKK+a0l+eFiSA+IHNlbnJlblwgOwor5rSL54qsID4geW91a2VuXCA7CivmtLjmtLggPiBrb3Vrb3VcIDsKK+WNsOixoSA+IGluc2hvdVwgOwor5Y2D6YeRID4gc2Vua2luXCA7CivnqK7lrZAgPiBzaHVzaGlcIDsKK+a0uOa0iyA+IGtvdXlvdVwgOwor56eL5pyfID4gc2h1dWtpXCA7CivmsJfov6sgPiBraWhha3VcIDsKK+WQjOekviA+IGRvdXNoYVwgOwor5b2x6Z+/ID4gZWlreW91XCA7CivolJHoppYgPiBiZXNzaGlcIDsKK+W/nOirviA+IG91ZGFrdVwgOwor5rib5YWNID4gZ2VubWVuXCA7CivmsJHpgbggPiBtaW5zZW5cIDsKK+epuuWGtyA+IGt1dXJlaVwgOwor5oOa5rCXID4gbm9yb2tlXCA7CivnpLznoLIgPiByZWlob3VcIDsKK+WNmOi7iiA+IHRhbnNoYVwgOwor5oW25aSnID4ga2VpZGFpXCA7Civlkozmpb0gPiB3YXJha3VcIDsKK+aAquiFlSA+IGthaXdhblwgOwor5ZCI56WtID4gZ291c2FpXCA7Civlj4zogqkgPiBzb3VrZW5cIDsKK+WVhuWLmSA+IHNob3VtdVwgOwor5oKq54axID4gYW5ldHN1XCA7CivlkIjnpYAgPiBnb3VzaGlcIDsKK+aAp+iFuiA+IHNlaXNlblwgOwor5oay5YW1ID4ga2VucGVpXCA7CivmuJvlgrUgPiBnZW5zYWlcIDsKK+m7hOawtCA+IGtpbWl6dVwgOwor6YqY5paHID4gbWVpYnVuXCA7Civlj6PntbUgPiBrdWNoaWVcIDsKK+enkeaWmSA+IGthcnlvdVwgOwor5b6h6YWMID4gb3NoYWt1XCA7CivmsJfou70gPiBraWdhcnVcIDsKK+aAp+iDvSA+IHNlaW5vdVwgOwor5ZGG54S2ID4gYm91emVuXCA7Civms6jnlo8gPiBjaHV1c29cIDsKK+azqOeWjiA+IGNodXVzb1wgOwor5ZWG5YipID4gc2hvdXJpXCA7CivpioXmnb8gPiBkb3ViYW5cIDsKK+mFkuiyqSA+IHNodWhhblwgOwor6Juu5Lq6ID4gYmFuamluXCA7CivllLHlkowgPiBzaG91d2FcIDsKK+WRqOazoiA+IHNodXVoYVwgOwor5rW35pCNID4ga2Fpc29uXCA7CivmgKrogZ4gPiBrYWlidW5cIDsKK+engeaciSA+IHNoaXl1dVwgOwor5oWu5aSWID4gcnlvZ2FpXCA7CivphZLosaogPiBzaHVnb3VcIDsKK+engeabuCA+IHNoaXNob1wgOwor6YeR57O4ID4ga2luc2hpXCA7CivmuJvkv7ggPiBnZW5wb3VcIDsKK+WNiui8qiA+IGhhbnJpblwgOwor5rOV55y8ID4gaG91Z2VuXCA7Civmt7flkIwgPiBrb25kb3VcIDsKK+mKgOadryA+IGdpbnBhaVwgOwor5re35ZCIID4ga29uZ291XCA7Civnn7PpubggPiBzZWtrZW5cIDsKK+mHkeeyiSA+IGtpbnB1blwgOwor6Ymb5q+SID4gZW5kb2t1XCA7CivlvZPpp4UgPiB0b3Vla2lcIDsKK+W+oemBiiA+IGd5b3l1dVwgOwor5rim5LitID4ga2FjaHV1XCA7Civms5Xnm7ggPiBob3Nzb3VcIDsKK+a3seWRsyA+IGZ1a2FtaVwgOwor56We54i2ID4gc2hpbnB1XCA7Civljp/okZcgPiBnZW5jaG9cIDsKK+aCoOeEtiA+IHl1dXplblwgOwor5oSf5oeQID4ga2Fua2FpXCA7Civpuqbmua8gPiBtdWdpeXVcIDsKK+aDs+acmyA+IHNvdWJvdVwgOwor5Y+C6ICDID4gc2Fua291XCA7CivlkIznnIwgPiBkb3VrZW5cIDsKK+WQjeebpCA+IG1laWJhblwgOwor5Y+456WtID4gc2hpc2FpXCA7Civlj5fntaYgPiBqdWt5dXVcIDsKK+WQjOebuCA+IGRvdXNvdVwgOwor5ZCM55ufID4gZG91bWVpXCA7CivmtKrmsLQgPiBrb3V6dWlcIDsKK+WTgOaEgSA+IGFpc2h1dVwgOwor5oSf5oWoID4ga2FuZ2FpXCA7CivljYPovIkgPiBzZW56YWlcIDsKK+ibjeWFiSA+IGtlaWtvdVwgOwor5ZOA5oOcID4gYWlzZWtpXCA7CivlkInnm7ggPiBraXNzb3VcIDsKK+epuuS8vCA+IHNvcmFuaVwgOwor5ZKM5pyNID4gd2FmdWt1XCA7Civnoazou58gPiBrb3VuYW5cIDsKK+mHkeeuoSA+IGtpbmthblwgOwor6Jas55CGID4geWFrdXJpXCA7CivmhJvmho4gPiBhaW5pa3VcIDsKK+WPo+etlCA+IGtvdXRvdVwgOwor5b6M6YeRID4gYXRva2luXCA7CivmhJvmhb4gPiBhaXlva3VcIDsKK+aEn+aDsyA+IGthbnNvdVwgOwor56S+55SoID4gc2hheW91XCA7CivpioDmmKAgPiBnaW4nJ2VpXCA7CivpubXnjbIgPiByb2tha3VcIDsKK+egsumWgCA+IGhvdW1vblwgOwor5rW35oimID4ga2Fpc2VuXCA7CivmhJ/mg4UgPiBrYW5qb3VcIDsKK+aAneiAgyA+IHNoaWtvdVwgOwor5ZOB5oCnID4gaGluc2VpXCA7Civlvqnot68gPiBmdWt1cm9cIDsKK+WRveaguSA+IG1laWtvblwgOwor5oOF5q27ID4gam91c2hpXCA7CivpjKDliaQgPiBqb3V6YWlcIDsKK+a3seWMliA+IHNoaW5rYVwgOwor5Y2z6KGMID4gc29ra291XCA7CivpjKDliY0gPiBqb3VtYWVcIDsKK+awl+ixoSA+IGtpc2hvdVwgOwor5oSb5oOcID4gYWlzZWtpXCA7Civlj7fnoLIgPiBnb3Vob3VcIDsKK+azleeVjCA+IGhva2thaVwgOwor5ZWT5LiKID4ga2Vpam91XCA7CivmtJfmtYQgPiBzZW5qb3VcIDsKK+aEn+aApyA+IGthbnNlaVwgOwor56We54GrID4gc2hpbmthXCA7Civlj4zntJkgPiBzb3VzaGlcIDsKK+WQjeeUoyA+IG1laXNhblwgOwor5oSb5oGvID4gYWlzb2t1XCA7Civol6TmsI8gPiB0b3VzaGlcIDsKK+WNlOitsCA+IGt5b3VnaVwgOwor6buS5pyoID4ga3Vyb2tpXCA7CivmhJrmga8gPiBndXNva3VcIDsKK+WPpOensCA+IGtvc2hvdVwgOwor6bSV6bOlID4gZGFjaG91XCA7Civms6XnirYgPiBkZWlqb3VcIDsKK+W9k+mdoiA+IHRvdW1lblwgOwor5b+F6KaLID4gaGlra2VuXCA7CivpvJPlvJMgPiBrb2t5dXVcIDsKK+WTgOW8lCA+IGFpY2hvdVwgOwor5oKy5rOBID4gaGlreW91XCA7Civms7DnhLYgPiB0YWl6ZW5cIDsKK+WPjeexsyA+IGhhbmJlaVwgOwor5rS75qCTID4ga2Fzc2VuXCA7CivmtYTmm7ggPiBqb3VzaG9cIDsKK+egtOmPoSA+IGhha3lvdVwgOwor56iA5bCRID4ga2lzaG91XCA7CivllYbkuosgPiBzaG91amlcIDsKK+emgeatoiA+IGtpbnNoaVwgOwor5b6M6YCBID4ga291c291XCA7CivlvozpgIAgPiBrb3V0YWlcIDsKK+WPl+eroCA+IGp1c2hvdVwgOwor6YeN56iOID4ganV1emVpXCA7CivphaLom7ggPiBzdWRha29cIDsKK+atr+m9piA+IHNoaWdpblwgOwor5ZCE55WMID4ga2Fra2FpXCA7Civlj6LnpaAgPiBob2tvcmFcIDsKK+aFqOWYhiA+IGdhaXRhblwgOwor5b6T6LuNID4ganV1Z3VuXCA7Civmr5vpiI4gPiBrZWJhcmlcIDsKK+mDqOmVtyA+IGJ1Y2hvdVwgOwor5Y+y55y8ID4gc2hpZ2FuXCA7CivmgrbmrbsgPiBtb25zaGlcIDsKK+autemajiA+IGRhbmthaVwgOwor6by+5aOwID4ga2Fuc2VpXCA7Civmg6jmlZcgPiB6YW5wYWlcIDsKK+aCquazlSA+IGFrdWhvdVwgOwor5b6F6YGHID4gdGFpZ3V1XCA7CivmtIvmtIsgPiB5b3V5b3VcIDsKK+m6uuajkiA+IG1lbmJvdVwgOwor5Y+z55uuID4gbWlnaW1lXCA7Civlv4XoobAgPiBoaXNzdWlcIDsKK+atr+m7kiA+IGhhZ3Vyb1wgOwor6YeN56WaID4gY2hvdXNvXCA7CivlvozovKogPiBrb3VyaW5cIDsKK+W+jOi8qSA+IGtvdWhhaVwgOwor6buO5piOID4gcmVpbWVpXCA7CivmhIjmhIggPiBpeW9peW9cIDsKK+ekvOeKtiA+IHJlaWpvdVwgOwor5rCR6KuWID4gbWlucm9uXCA7Civlj4LnsaAgPiBzYW5yb3VcIDsKK+aCquawtCA+IGFrdXN1aVwgOwor5ru+44CFID4ga29ua29uXCA7CivljKrouqwgPiBoaWt5dXVcIDsKK+W+jOi7jSA+IGtvdWd1blwgOwor5b6M6LuKID4ga291c2hhXCA7CivmhInmgqYgPiB5dWV0c3VcIDsKK+mHneebriA+IGhhcmltZVwgOwor5YyX6YOoID4gaG9rdWJ1XCA7CivlvL7poK0gPiBkYW50b3VcIDsKK+aCquawlyA+IHdhcnVnaVwgOwor55+i6bGIID4geWF0YXJhXCA7CivnpI7nn7MgPiBzb3Nla2lcIDsKK+a1tOW+jCA+IHlva3Vnb1wgOwor5Y2T6KaLID4gdGFra2VuXCA7Civlkb3mlbAgPiBtZWlzdXVcIDsKK+WMl+mDiiA+IGhva2tvdVwgOwor5q6L6aq4ID4gemFuZ2FpXCA7CivmipjjgIUgPiBvcmlvcmlcIDsKK+azpeeCrSA+IGRlaXRhblwgOwor6YeR56CCID4ga2luc2hhXCA7CivlkI3nirYgPiBtZWlqb3VcIDsKK+WLp+mZjSA+IGthbmtvdVwgOwor6JGb6aShID4ga3V6dWFuXCA7Civmta7lv4MgPiBmdXNoaW5cIDsKK+mHjeegsiA+IGp1dWhvdVwgOwor56eB5oakID4gc2hpZnVuXCA7CivmsZfohbogPiBrYW5zZW5cIDsKK+a1t+W6lSA+IGthaXRlaVwgOwor5oCq56ulID4ga2FpZG91XCA7CivmsrznlLAgPiBudW1hZGFcIDsKK+elreauvyA+IHNhaWRlblwgOwor5Y2Y6KGMID4gdGFua291XCA7CivnoLLph5EgPiBob3VraW5cIDsKK+WPpOedgCA+IGZ1cnVnaVwgOwor5Y2K6KejID4gaGFua2FpXCA7CivljZfooYwgPiBuYW5rb3VcIDsKK+mKgOaJhyA+IGdpbnNlblwgOwor6YeN55+zID4gb21vc2hpXCA7CivmsrvnlKMgPiBjaGlzYW5cIDsKK+WLn+mbhiA+IGJvc2h1dVwgOwor5re75LmXID4gdGVuam91XCA7Civpg7fph4wgPiBreW91cmlcIDsKK+WRqOacnyA+IHNodXVraVwgOwor5Y6f572qID4gZ2VuemFpXCA7CivpjKbkuIogPiBraW5qb3VcIDsKK+WRs+aWuSA+IG1pa2F0YVwgOwor56iu5ZCNID4gc2h1bWVpXCA7CivlvLfpn7MgPiBreW91b25cIDsKK+a3t+S6pCA+IGtvbmtvdVwgOwor6JqV5Y21ID4gc2FucmFuXCA7Civnp4HmhJ8gPiBzaGlrYW5cIDsKK+WNgeiqoSA+IGppa2thaVwgOwor5q6L6aaZID4gemFua291XCA7Civpuqrmo5IgPiBtZW5ib3VcIDsKK+axmuiBtyA+IG9zaG9rdVwgOwor6Jep5qChID4gaGFua291XCA7Civmt7fkubEgPiBrb25yYW5cIDsKK+epguWFiCA+IGhvc2FraVwgOwor6YeR55uuID4ga2FuZW1lXCA7Civnp4Hmg4UgPiBzaGlqb3VcIDsKK+a1t+W2uiA+IGthaXJlaVwgOwor5YuV6Z2ZID4gZG91c2VpXCA7CivmgZLnlKMgPiBrb3VzYW5cIDsKK+mHj+ebriA+IHJ5b3VtZVwgOwor5b6z6KGMID4gdG9ra291XCA7CivnoJTpkb0gPiBrZW5zYW5cIDsKK+W8semfsyA+IHlvd2FuZVwgOwor5Yyq6LOKID4gaGl6b2t1XCA7CivlkLjmsJcgPiBreXV1a2lcIDsKK+WLoumWgCA+IHNlaW1vblwgOwor5b+r6IWVID4ga2Fpd2FuXCA7Civnp4HmgaggPiBzaGlrb25cIDsKK+aui+mjryA+IHphbnBhblwgOwor5rC06JGsID4gc3Vpc291XCA7CivljYroo4EgPiBoYW5zYWlcIDsKK+emheaelyA+IHplbnJpblwgOwor5ZSv5LiAID4geXVpdHN1XCA7Civph43nm5cgPiBqdXV0b3VcIDsKK+WQjOeEtiA+IGRvdXplblwgOwor5q276aq4ID4gc2hpZ2FpXCA7CivlvqHoqJcgPiBnb3Rha3VcIDsKK+W+ruihtyA+IGJpY2h1dVwgOwor5b6h6KiAID4gbWlrb3RvXCA7CivmsLfoj5MgPiBoeW91a2FcIDsKK+elnuawlyA+IHNoaW5raVwgOwor5Yq56aiTID4ga291a2VuXCA7CivljZfom64gPiBuYW5iYW5cIDsKK+WNiuihvyA+IGhhbmVyaVwgOwor6Jma5aaEID4ga3lvbW91XCA7CivmsbrnrpcgPiBrZXNzYW5cIDsKK+aEn+WumCA+IGthbmthblwgOwor5YyW6LqrID4ga2VzaGluXCA7CivmgaznhLYgPiB0ZW56ZW5cIDsKK+aDheaZryA+IGpvdWtlaVwgOwor6Jas5rmvID4geWFrdXl1XCA7Civmsb3nrJsgPiBraXRla2lcIDsKK+azleeBryA+IGhvdXRvdVwgOwor5ra85ZGzID4gcnlvdW1pXCA7CivlkIzngrkgPiBkb3V0ZW5cIDsKK+awtOiPnCA+IG1penVuYVwgOwor5rW35bK4ID4ga2FpZ2FuXCA7Civli77phY0gPiBrb3ViYWlcIDsKK+aCqualrSA+IGFrdWdvdVwgOwor5Y+C56aFID4gc2FuemVuXCA7Civljp/ntr8gPiBnZW5tZW5cIDsKK+aDqOaGuiA+IHNhbnRhblwgOwor6Jek5pysID4gdG91aG9uXCA7CivpiYTmnb8gPiB0ZXBwYW5cIDsKK+mDtemAgSA+IHl1dXNvdVwgOwor5q+U6LyDID4gaGlrYWt1XCA7CivmtYXmiY0gPiBzZW5zYWlcIDsKK+efremfsyA+IHRhbicnb25cIDsKK+emgeabuCA+IGtpbnNob1wgOwor6JGJ6aKoID4gaGFrYXplXCA7Civlj6LnlJ8gPiBzb3VzZWlcIDsKK+W+oeijvSA+IGd5b3NlaVwgOwor6JO06I+cID4ganVuc2FpXCA7CivlkKvmsLQgPiBnYW5zdWlcIDsKK+aDs+W/tSA+IHNvdW5lblwgOwor5b2x6LqrID4ga2FnZW1pXCA7Civljp/ntJkgPiBnZW5zaGlcIDsKK+aEm+WsjCA+IGFpa3lvdVwgOwor6Yq35aSPID4gc2hvdWthXCA7Civmr5votrMgPiBrZWFzaGlcIDsKK+WOn+ezuCA+IGdlbnNoaVwgOwor5q2v6auEID4gc2hpenVpXCA7CivmtbflrrkgPiBrYWl5b3VcIDsKK+mKg+W8viA+IGp1dWRhblwgOwor6Jma5aCxID4ga3lvaG91XCA7Civljp/ns5YgPiBnZW50b3VcIDsKK+iQvemmrCA+IHJha3ViYVwgOwor6YeR55KwID4ga2lua2FuXCA7CivnoJXpibEgPiBzYWlrb3VcIDsKK+W8k+mmrCA+IGt5dXViYVwgOwor5Y+M55y8ID4gc291Z2FuXCA7Civlj4znnLggPiBzb3Vib3VcIDsKK+m5ueawtCA+IGthbnN1aVwgOwor56Cy6LuKID4gaG91c2hhXCA7CivmhoLkuJYgPiB5dXVzZWlcIDsKK+WPjeecgSA+IGhhbnNlaVwgOwor5rOo5rK5ID4gY2h1dXl1XCA7CivmtYXmha4gPiBzZW5yeW9cIDsKK+mDt+i7jSA+IGdvdWd1blwgOwor5oOF5pONID4gam91c291XCA7CivnpZ7mqLkgPiBzaGluanVcIDsKK+a2iOWkjyA+IHNob3VrYVwgOwor5rKI56CCID4gY2hpbnNhXCA7Civli6fpioAgPiBrYW5naW5cIDsKK+WMu+ihkyA+IGlqdXRzdVwgOwor6YKm6aGMID4gaG91ZGFpXCA7CivolYPnpL4gPiBiYW5zaGFcIDsKK+eov+S6uiA+IGtvdWppblwgOwor56aB5patID4ga2luZGFuXCA7CivokIzpu44gPiBob3VyZWlcIDsKK+aDsOW8sSA+IGRhamFrdVwgOwor5b6L6KmpID4gcmlzc2hpXCA7CivmhJ/lpa4gPiBrYW5wdW5cIDsKK+WOs+emgSA+IGdlbmtpblwgOwor5raZ5ZqiID4gcnVpbm91XCA7CivnqYLkuKYgPiBob25hbWlcIDsKK+WNteiDniA+IHJhbmhvdVwgOwor5ZCM5rqQID4gZG91Z2VuXCA7CivmhJvlpr4gPiBhaXNob3VcIDsKK+WQjea5ryA+IG1laXRvdVwgOwor6YeO55CDID4geWFreXV1XCA7CivmgKrnm5cgPiBrYWl0b3VcIDsKK+WRieacjSA+IGdvZnVrdVwgOwor56We5qW9ID4ga2FndXJhXCA7Civlv6DnvqkgPiBjaHV1Z2lcIDsKK+iRt+mFkiA+IGt1bnNodVwgOwor5rC06IWrID4gc3Vpc2h1XCA7Civnp5HlraYgPiBrYWdha3VcIDsKK+iXjeafkyA+IGFpem9tZVwgOwor5ZSQ5Lq6ID4gdG91amluXCA7CivmsrnnhLYgPiB5dXV6ZW5cIDsKK+aCquabuCA+IGFrdXNob1wgOwor5b2T6YG4ID4gdG91c2VuXCA7CivmtIvmnKwgPiB5b3Vob25cIDsKK+W+jOimiyA+IGtvdWtlblwgOwor5ZCb5rCRID4ga3VubWluXCA7CivmtIvmm7ggPiB5b3VzaG9cIDsKK+iRiemZsCA+IGhha2FnZVwgOwor6YqA5ba6ID4gZ2lucmVpXCA7CivnpLzms5UgPiByZWlob3VcIDsKK+ayuOeCuSA+IGZ1dHRlblwgOwor56eL5a2jID4gc2h1dWtpXCA7CivmhYvli6IgPiB0YWlzZWlcIDsKK+WSjOW4gyA+IHdha2FtZVwgOwor5oGs5rehID4gdGVudGFuXCA7Civpu5nluqcgPiBtb2t1emFcIDsKK+a2suWJpCA+IGVraXphaVwgOwor5q276ZyKID4gc2hpcmVpXCA7Civmrr/ou40gPiBkZW5ndW5cIDsKK+m7kuW9sSA+IGtva3VlaVwgOwor5byK6aKoID4gaGVpZnV1XCA7Civlj4znlJ8gPiBzb3VzZWlcIDsKK+W/heiHsyA+IGhpc3NoaVwgOwor5b6A6Ki6ID4gb3VzaGluXCA7CivlvoHoqI4gPiBzZWl0b3VcIDsKK+iUl+ezliA+IHNob3RvdVwgOwor6YeR54mMID4ga2lucGFpXCA7CivphY3oiLkgPiBoYWlzZW5cIDsKK+mKheWxsSA+IGRvdXphblwgOwor5oWj5L6LID4ga2FucmVpXCA7Civms5XmsrsgPiBob3VjaGlcIDsKK+a1t+WkliA+IGthaWdhaVwgOwor5Y6f56i/ID4gZ2Vua291XCA7Civljp/nqK4gPiBnZW5zaHVcIDsKK+awtOiAlSA+IHN1aWtvdVwgOwor6YO16LKvID4geXV1Y2hvXCA7Civph47niZsgPiB5YWd5dXVcIDsKK+a0u+aApyA+IGthc3NlaVwgOwor56S+5q6/ID4gc2hhZGVuXCA7CivmhJvln7cgPiBhaXNodXVcIDsKK+WLp+mAsiA+IGthbmppblwgOwor6YeN54mIID4ganV1aGFuXCA7CivmgqrmlocgPiBha3VidW5cIDsKK+eggumHkSA+IHNoYWtpblwgOwor5q2j6aSQID4gc2Vpc2FuXCA7CivphY3ohrMgPiBoYWl6ZW5cIDsKK+axgue4gSA+IGt5dXVlblwgOwor6YqA5bGxID4gZ2luemFuXCA7CivnqI7liLYgPiB6ZWlzZWlcIDsKK+W/jeiAkCA+IG5pbnRhaVwgOwor5oKq5pS/ID4gYWt1c2VpXCA7Civmra/pnaIgPiBzaGltZW5cIDsKK+WQiOazlSA+IGdvdWhvdVwgOwor5q276ZeYID4gc2hpdG91XCA7Civnpa3mlocgPiBzYWltb25cIDsKK+WQhOa0viA+IGtha3VoYVwgOwor6YG66auqID4gaWhhdHN1XCA7CivljZfoiKogPiBuYW5rb3VcIDsKK+aFqOS4liA+IGdhaXNlaVwgOwor56eY5aKDID4gaGlreW91XCA7CivphZLogrQgPiBzaHVrb3VcIDsKK+axgOe3miA+IHRlaXNlblwgOwor5Y6755ewID4ga3lvdGFuXCA7CivmtbfloKEgPiBrYWlob3VcIDsKK+WQjOawjyA+IGRvdXNoaVwgOwor56Wt5pS/ID4gc2Fpc2VpXCA7CivpgbrpqqggPiBpa290c3VcIDsKK+m7kuW3viA+IGt1cm9nb1wgOwor5oGp5rKiID4gb250YWt1XCA7Civmtbfln58gPiBrYWlpa2lcIDsKK+W+hOihjCA+IGtlaWtvdVwgOwor5oSb5Zu9ID4gYWlrb2t1XCA7CivpiYTmi7MgPiB0ZWtrZW5cIDsKK+WQjeauiyA+IG5hZ29yaVwgOwor5rK85rmWID4gc2hvdWtvXCA7CivokazpgIEgPiBzb3Vzb3VcIDsKK+egtOiqvyA+IGhhY2hvdVwgOwor5oOz5a6aID4gc291dGVpXCA7Civmg4XmhJ8gPiBqb3VrYW5cIDsKK+iZmuWQjSA+IGt5b21laVwgOwor5Y6a56S8ID4ga291cmVpXCA7CivnpoHmiYAgPiBraW5zaG9cIDsKK+W8vumBkyA+IGRhbmRvdVwgOwor5rCR6Iq4ID4gbWluZ2VpXCA7CivmhJ/lmIYgPiBrYW50YW5cIDsKK+WTuuS5syA+IGhvbnl1dVwgOwor6YeN54K5ID4ganV1dGVuXCA7CivlkIPmsLQgPiBraXNzdWlcIDsKK+ensOWRvCA+IHNob3Vrb1wgOwor5Y+w5rm+ID4gdGFpd2FuXCA7Civms4nmsLQgPiBzZW5zdWlcIDsKK+mJhOaJhyA+IHRlc3NlblwgOwor5oCq542jID4ga2FpanV1XCA7Civlkajlv4wgPiBzaHV1a2lcIDsKK+awuOe2miA+IGVpem9rdVwgOwor5q2j6Z2iID4gbWF0b21vXCA7Civph43ngbAgPiBqdXVrYWlcIDsKK+awtOe3tCA+IHN1aXJlblwgOwor55+t6YqDID4gdGFuanV1XCA7Civlk4Dlk60gPiBhaWtva3VcIDsKK+awtOe3miA+IHN1aXNlblwgOwor6Ymx5bGxID4ga291emFuXCA7CivljbHntbUgPiBhYnVuYWVcIDsKK+mJseWxpCA+IGtvdXNvdVwgOwor5oGl5q+bID4gY2hpbW91XCA7CivljJfooYwgPiBob2trb3VcIDsKK+aym+eEtiA+IGhhaXplblwgOwor5q636LORID4gaW5zaGluXCA7Civmr5LoposgPiBkb2t1bWlcIDsKK+WKqemVtyA+IGpvY2hvdVwgOwor5ray5L2TID4gZWtpdGFpXCA7Civlj7jms5UgPiBzaGlob3VcIDsKK+mIjeaguSA+IGRvbmtvblwgOwor5oOF5b+1ID4gam91bmVuXCA7Civmgr3mg6ggPiBzZWlzYW5cIDsKK+aDqOWusyA+IHNhbmdhaVwgOwor6Jma5YuiID4ga3lvc2VpXCA7Civnoofnva4gPiB0ZWljaGlcIDsKK+mFjee9riA+IGhhaWNoaVwgOwor5rCX6IO4ID4ga2lreW91XCA7CivlkrPll70gPiBnYWlzb3VcIDsKK+aui+mHkSA+IHphbmtpblwgOwor5b6p6IiqID4gZnVra291XCA7CivlkIzmqKkgPiBkb3VrZW5cIDsKK+avrOiXuyA+IG1hcmltb1wgOwor6Jar5p+TID4ga3Vuc2VuXCA7Civnp4HlpKcgPiBzaGlkYWlcIDsKK+avm+ifuSA+IGtlZ2FuaVwgOwor5b6p6IiIID4gZnVra291XCA7CivmhJvllLEgPiBhaXNob3VcIDsKK+aAp+eKtiA+IHNlaWpvdVwgOwor5ZOB5ZCNID4gaGlubWVpXCA7CivpibHlrrMgPiBrb3VnYWlcIDsKK+WQjOanmCA+IGRvdXlvdVwgOwor5Y2D6IisID4gc2VucGFuXCA7CivmsLTns7sgPiBzdWlrZWlcIDsKK+aCoOaPmiA+IHl1dXlvdVwgOwor5oKq5oqVID4gYWt1dG91XCA7Civljp/nm6QgPiBnZW5iYW5cIDsKK+mztOmWgCA+IG5hcnV0b1wgOwor5YuV6LyqID4gZG91cmluXCA7CivmsrPmtYEgPiBrYXJ5dXVcIDsKK+WOmuedgCA+IGF0c3VnaVwgOwor5oKq5omNID4gYWt1c2FpXCA7CivmgqrmiYsgPiBha3VzaHVcIDsKK+aEn+WQnyA+IGthbmdpblwgOwor5rK85rCXID4gc2hvdWtpXCA7CivmsrvmsLQgPiBjaGlzdWlcIDsKK+aCquaJgCA+IGFrdXNob1wgOwor6YqD5aOwID4ganV1c2VpXCA7CivljbXnrqEgPiByYW5rYW5cIDsKK+atjumhmCA+IHRhbmdhblwgOwor6buS5a2XID4ga3Vyb2ppXCA7Civpu5LlrZAgPiBob2t1cm9cIDsKK+aCtuaCtiA+IG1vbm1vblwgOwor5oKq5oimID4gYWt1c2VuXCA7Civli5Xou6IgPiBkb3V0ZW5cIDsKK+emgOaApyA+IHJpbnNlaVwgOwor5YuH6YKBID4geXV1bWFpXCA7CivljbHnr6QgPiBraXRva3VcIDsKK+engeWgsSA+IHNoaWhvdVwgOwor5oKy5oSBID4gaGlzaHV1XCA7CivmtojljJYgPiBzaG91a2FcIDsKK+ato+mWjyA+IHNlaWp1blwgOwor5q2j6ZaAID4gc2VpbW9uXCA7CivlvaLoposgPiBrYXRhbWlcIDsKK+WQjOajsiA+IGRvdXNlaVwgOwor6baP6IiOID4ga2Vpc2hhXCA7CivljIXoo4UgPiBob3Vzb3VcIDsKK+W+s+e+qSA+IHRva3VnaVwgOwor6JGJ6YW4ID4geW91c2FuXCA7CivlirTpioAgPiByb3VnaW5cIDsKK+WNsOeusSA+IGluYmFrb1wgOwor5b6M6JGJID4ga291eW91XCA7Civpg7XooosgPiB5dXV0YWlcIDsKK+mFjee3miA+IGhhaXNlblwgOwor5YuH6YCAID4geXV1dGFpXCA7CivlkLnmjJkgPiBzdWlreW9cIDsKK+auiumBhyA+IHNodWd1dVwgOwor6JK86IyrID4gc291Ym91XCA7CivmsLTnrqEgPiBzdWlrYW5cIDsKK+elnuaOiCA+IHNoaW5qdVwgOwor5oKq5oWLID4gYWt1dGFpXCA7Civlj6TmtYEgPiBrb3J5dXVcIDsKK+WNgeiDvSA+IGp1dW5vdVwgOwor6YqA5aGKID4gZ2lua2FpXCA7Civol7vlsZEgPiBtb2t1enVcIDsKK+iZmuWDjyA+IGt5b3pvdVwgOwor6YWS57K+ID4gc2h1c2VpXCA7CivlkIzmoLkgPiBkb3Vrb25cIDsKK+aymea8oCA+IHNhYmFrdVwgOwor5rC0562SID4gc3VpdG91XCA7Civpu5nlpZEgPiBtb2trZWlcIDsKK+aEn+WLlSA+IGthbmRvdVwgOwor5ZCM5qChID4gZG91a291XCA7Civph43mtrIgPiBqdXVla2lcIDsKK+WPpOazqCA+IGtvY2h1dVwgOwor5Y2Y57eaID4gdGFuc2VuXCA7CivlvZPoqbIgPiB0b3VnYWlcIDsKK+WNsOeroCA+IGluc2hvdVwgOwor5q+S6Ju+ID4gZG9rdWdhXCA7Civljp/nlKMgPiBnZW5zYW5cIDsKK+WLneiyoCA+IHNob3VidVwgOwor5Y6f55SfID4gZ2Vuc2VpXCA7Civlu7bplbcgPiBlbmNob3VcIDsKK+mHkeazpSA+IGtvbmRlaVwgOwor55+l6YGHID4gY2hpZ3V1XCA7CivmrYzpm4YgPiBrYXNodXVcIDsKK+axoOeVlCA+IGNoaWhhblwgOwor5Y2m566XID4ga2Vpc2FuXCA7Civpu5LlpbQgPiBrb2t1ZG9cIDsKK+aApeeBqyA+IGt5dXVrYVwgOwor56We5oqAID4gc2hpbmdpXCA7CivpioDlnZEgPiBnaW5rb3VcIDsKK+azleabuSA+IGhvdXNvdVwgOwor5ZCM5p2RID4gZG91c29uXCA7CivljprnlJ8gPiBrb3VzZWlcIDsKK+WQjeacrSA+IG5hZnVkYVwgOwor5oKq5oCnID4gYWt1c2VpXCA7CivljZjntJQgPiB0YW5qdW5cIDsKK+WQjeacmyA+IG1laWJvdVwgOwor5Yun6KqsID4ga2FuemVpXCA7CivlkJHmmpEgPiBrb3VzaG9cIDsKK+iYiuWlpSA+IHVuJydub3VcIDsKK+W/q+ecoCA+IGthaW1pblwgOwor5oKq5b+1ID4gYWt1bmVuXCA7CivljYrnuo8gPiBoYW50ZW5cIDsKK+W+oeiAhSA+IGd5b3NoYVwgOwor5rC056iyID4gc3VpdG91XCA7CivlkIzmnIsgPiBkb3Vib3VcIDsKK+WQiOadvyA+IGdvdWJhblwgOwor5ZCM5pu4ID4gZG91c2hvXCA7Civph5HmsJcgPiBrYW5ha2VcIDsKK+enmOWMvyA+IGhpdG9rdVwgOwor5oSf5YaSID4ga2FuYm91XCA7Civnpo/lr78gPiBmdWt1anVcIDsKK+aAqua8oiA+IGthaWthblwgOwor6YmE5belID4gdGVra291XCA7CivlkIjmnKwgPiBnYXBwb25cIDsKK+mBremboyA+IHNvdW5hblwgOwor6YeN5rC0ID4ganV1c3VpXCA7CivmsLTnpr0gPiBzdWlraW5cIDsKK+aEn+WFiSA+IGthbmtvdVwgOwor6Jma5LydID4ga3lvZGVuXCA7CivlkIjmnI0gPiBhaWZ1a3VcIDsKK+aCoOaCoCA+IHl1dXl1dVwgOwor5Y2X57GzID4gbmFuYmVpXCA7Civpto/nvqQgPiBrZWlndW5cIDsKK+mFjeeuoSA+IGhhaWthblwgOwor5ZOA5YK3ID4gYWlzaG91XCA7Civlj5fms6ggPiBqdWNodXVcIDsKK+WKtOmAoyA+IHJvdXJlblwgOwor5Yum6KiOID4gc291dG91XCA7CivljrPnhLYgPiBnZW56ZW5cIDsKK+mJl+WtkCA+IGthbnNoaVwgOwor5Y2Y57ChID4gdGFua2FuXCA7CivolLXniYggPiB6b3VoYW5cIDsKK+awtOelniA+IHN1aWppblwgOwor5oKq5byKID4gYWt1aGVpXCA7CivlibXpnaIgPiBzb3VtZW5cIDsKK+WKtOi+siA+IHJvdW5vdVwgOwor5b6p57iBID4gZnVrdWVuXCA7CivnpZ7mhI8gPiBzaGluJydpXCA7Civpu73li4kgPiBiaW5iZW5cIDsKK+aEj+WKmyA+IGlyeW9rdVwgOwor5b2T6KGMID4gdG91a291XCA7CivnpoXlsLwgPiB6ZW4nJ25pXCA7CivnpZ3mhI8gPiBzaHVrdWlcIDsKK+azleaWhyA+IGhvdWJ1blwgOwor5Yqg6YeNID4ga2FjaG91XCA7CivlkIzmlq0gPiBkb3VkYW5cIDsKK+WPluawtCA+IHNodXN1aVwgOwor5rWE5Z+fID4gam91aWtpXCA7CivlkI3mlocgPiBtZWlidW5cIDsKK+WNiue0mSA+IGhhbnNoaVwgOwor5byU6L6eID4gY2hvdWppXCA7CivpibHlnZEgPiBrb3Vrb3VcIDsKK+WQjeaVsCA+IG1laXN1dVwgOwor6YWS56iOID4gc2h1emVpXCA7CivlkIzmlocgPiBkb3VidW5cIDsKK+WLneiotCA+IHNob3Vzb1wgOwor5Y6f54q2ID4gZ2Vuam91XCA7CivmtbflhoUgPiBrYWlkYWlcIDsKK+WQjOaVsCA+IGRvdXN1dVwgOwor5rW35YW1ID4ga2FpaGVpXCA7CivlvpPogIUgPiBqdXVzaGFcIDsKK+WMheiUtSA+IGhvdXpvdVwgOwor5b6956ugID4ga2lzaG91XCA7Civmr5vojLggPiBtb3Vqb3VcIDsKK+emheWumiA+IHplbmpvdVwgOwor5ZCI5pa5ID4gYWlrYXRhXCA7Civpu5LlnLAgPiBrdXJvamlcIDsKK+ayiOa4oyA+IGNoaW5zYVwgOwor5b6M6IKiID4ga291c2hpXCA7Civpu5LlnJ8gPiBrb2t1ZG9cIDsKK+WOn+eJiCA+IGdlbnBhblwgOwor6JaE5p2/ID4gdXN1aXRhXCA7Civnn63os4cgPiB0YW5zaGlcIDsKK+mHkeaoqSA+IGtpbmtlblwgOwor5Y2X56uvID4gbmFudGFuXCA7CivlvLfoq4sgPiBnb3VzZWlcIDsKK+W8t+irhyA+IGdvdWRhblwgOwor6YqY5YiAID4gbWVpdG91XCA7CivmgpTmgaggPiBrYWlrb25cIDsKK+mBoOmalCA+IGVua2FrdVwgOwor5rG65r2wID4ga2Vra2FpXCA7CivolqbmjJkgPiBzZW5reW9cIDsKK+m7hOWhtSA+IGtvdWppblwgOwor5YuV6KmeID4gZG91c2hpXCA7Civnp4Dlj6UgPiBzaHV1a3VcIDsKK+mHo+aenCA+IGNob3VrYVwgOwor5Y+k5qW9ID4ga29nYWt1XCA7Civlj7jmm7ggPiBzaGlzaG9cIDsKK+W+jOiAhSA+IGtvdXNoYVwgOwor5YyX6IiqID4gaG9ra291XCA7CivpiI3miY0gPiBkb25zYWlcIDsKK+WQuOW8lSA+IGt5dXVpblwgOwor5buD6aC9ID4gaGFpdGFpXCA7Civol7vloakgPiBtb3NoaW9cIDsKK+mKg+WPoyA+IGp1dWtvdVwgOwor5by36KiYID4ga3lvdWtpXCA7CivmgKXmtL4gPiBreXV1aGFcIDsKK+WJtemWiyA+IHNvdWthaVwgOwor5Y+N5q+bID4gaGFubW91XCA7CivoloTmmq4gPiBoYWt1Ym9cIDsKK+efqeixoSA+IGt1c2hvdVwgOwor5rC0552AID4gbWl6dWdpXCA7CivmuoDjgIUgPiBtYW5tYW5cIDsKK+eikeefsyA+IGhpc2VraVwgOwor5oSa5L2cID4gZ3VzYWt1XCA7CivliqDpgJ8gPiBrYXNva3VcIDsKK+W+jOe9riA+IGtvdWNoaVwgOwor5rGa54mpID4gb2J1dHN1XCA7Civlj7Lmm7ggPiBzaGlzaG9cIDsKK+a0quWkpyA+IGtvdWRhaVwgOwor5Y+w5pysID4gZGFpaG9uXCA7Civpto/ns54gPiBrZWlmdW5cIDsKK+awtOebpCA+IHN1aWJhblwgOwor5YyF6I6WID4gaG91a2VpXCA7Civlkoblk64gPiBob3Vrb3VcIDsKK+ekvOaLnSA+IHJlaWhhaVwgOwor5b6u56yRID4gYmlzaG91XCA7CivliaXpm6IgPiBoYWt1cmlcIDsKK+mBuOmJsSA+IHNlbmtvdVwgOwor5Y6f54K5ID4gZ2VudGVuXCA7CivokpDojbcgPiBzaHV1a2FcIDsKK+WNg+evhyA+IHNlbnBlblwgOwor5Y+k5qC8ID4ga29rYWt1XCA7CivmsbrmuIggPiBrZXNzYWlcIDsKK+WNkeensCA+IGhpc2hvdVwgOwor6YiN5oSfID4gZG9ua2FuXCA7CivljIXojI4gPiBob3VrZWlcIDsKK+avm+iEmyA+IGtlenVuZVwgOwor5q+b6ISaID4ga2Vhc2hpXCA7Civps7PovKYgPiBob3VyZW5cIDsKK+WKtOizhyA+IHJvdXNoaVwgOwor5oCq5q27ID4ga2Fpc2hpXCA7CivnoLLoiaYgPiBob3VrYW5cIDsKK+engeWIkSA+IHNoaWtlaVwgOwor6YWU55y8ID4gc3VpZ2FuXCA7CivlubzpvaIgPiB5b3VyZWlcIDsKK+W7u+mAgSA+IGthaXNvdVwgOwor5bu66YCgID4ga2Vuem91XCA7CivliLrprZogPiB0b2dldW9cIDsKK+mDqOiQvSA+IGJ1cmFrdVwgOwor5Y+35pWwID4gZ291c3V1XCA7CivpioPlibUgPiBqdXVzb3VcIDsKK+elluW7nyA+IHNvYnlvdVwgOwor5Y2155SfID4gcmFuc2VpXCA7CivpioPliaMgPiBqdXVrZW5cIDsKK+WPguauvyA+IHNhbmRlblwgOwor5byV6LKsID4gaW5zZWtpXCA7Civol6nlo6sgPiBoYW5zaGlcIDsKK+awtOeXmCA+IHN1aXRvdVwgOwor6YeR5p+RID4ga2lua2FuXCA7Civnn63oqakgPiB0YW5zaGlcIDsKK+aBkuaYnyA+IGtvdXNlaVwgOwor5oOF5aCxID4gam91aG91XCA7CivpupflrrkgPiByZWl5b3VcIDsKK+mEreeuiyA+IHRlaXNlblwgOwor5rC055axID4gc3VpaG91XCA7Civlj6LmnpcgPiBzb3VyaW5cIDsKK+WPs+aWhyA+IHl1dWJ1blwgOwor6YqD5YiRID4ganV1a2VpXCA7Civpg7XoiLkgPiB5dXVzZW5cIDsKK+WQjeaJiyA+IG1laXNodVwgOwor5b6M57eoID4ga291aGVuXCA7Civnp4HlhbUgPiBzaGloZWlcIDsKK+WQjeaJgCA+IG1laXNob1wgOwor6YKC6YCFID4ga2Fpa291XCA7Civlj6TmnKggPiBrb2Jva3VcIDsKK+mHkeadryA+IGtpbnBhaVwgOwor55+l6KyAID4gY2hpYm91XCA7Civnp4HlhZogPiBzaGl0b3VcIDsKK+WQjOaJgCA+IGRvdXNob1wgOwor5ZCM5oi/ID4gZG91Ym91XCA7CivlkJvmgakgPiBrdW4nJ29uXCA7CivlkIjmirEgPiBnb3Vob3VcIDsKK+aDs+WIsCA+IHNvdXRvdVwgOwor5Y6f5r2cID4gZ2Vuc2VuXCA7CivphqTmsrkgPiBzaG91eXVcIDsKK+W+ruemhCA+IGJpcm9rdVwgOwor56KB55+zID4gZ29pc2hpXCA7CivlvozntpkgPiBrb3VrZWlcIDsKK+azsOW5syA+IHRhaWhlaVwgOwor5Y+w5pWwID4gZGFpc3V1XCA7CivmsLTnlLAgPiBzdWlkZW5cIDsKK+a1t+S4iiA+IGthaWpvdVwgOwor5rC055SjID4gc3Vpc2FuXCA7CivlubTpvaIgPiBuZW5yZWlcIDsKK+awtOeUnyA+IHN1aXNlaVwgOwor6YG86YGgID4gcnlvdWVuXCA7CivlupXprZogPiBzb2tvdW9cIDsKK+aBkuaVsCA+IGtvdXN1dVwgOwor56eY5LitID4gaGljaHV1XCA7CivliY3poIUgPiB6ZW5rb3VcIDsKK+WPouabuCA+IHNvdXNob1wgOwor5q666I+MID4gc2Fra2luXCA7Civlu7vou6IgPiBrYWl0ZW5cIDsKK+asoOmZpSA+IGtla2thblwgOwor6YqY5LuZID4gbWVpc2VuXCA7Civnn63oposgPiB0YW5rZW5cIDsKK+WRvOWQuCA+IGtva3l1dVwgOwor5byx6KGMID4gamFra291XCA7Civlkb3lkI0gPiBtZWltZWlcIDsKK+emheWggiA+IHplbmRvdVwgOwor5ZCI5oimID4ga2Fzc2VuXCA7CivlkbzlkI0gPiB5b2JpbmFcIDsKK+atk+mAgSA+IGthbnNvdVwgOwor5ZCI5oiQID4gZ291c2VpXCA7CivmsbrmsLQgPiBrZXNzdWlcIDsKK+WQjOaGgiA+IGRvdXl1dVwgOwor6YqF5YOPID4gZG91em91XCA7CivlkIzmhbYgPiBkb3VrZWlcIDsKK+WNmOecvCA+IHRhbmdhblwgOwor5q2T6L+OID4ga2FuZ2VpXCA7Civph43mm7kgPiBqdXVzb3VcIDsKK+WJjemdoiA+IHplbm1lblwgOwor5Y+k5piUID4ga29zZWtpXCA7CivokrjnsaAgPiBzZWlyb3VcIDsKK+avlOe/vCA+IGhpeW9rdVwgOwor5ZCI5oayID4gZ291a2VuXCA7CivljZjnm7ggPiB0YW5zb3VcIDsKK+mJhOWhlCA+IHRldHRvdVwgOwor5ZCM5oSfID4gZG91a2FuXCA7CivmtarkurogPiByb3VuaW5cIDsKK+WJlOmZpCA+IHRla2lqb1wgOwor5ZCI5oaOID4gYWluaWt1XCA7CivmsqHmm7ggPiBib3NzaG9cIDsKK+asoemVtyA+IGppY2hvdVwgOwor6be55rS+ID4gdGFrYWhhXCA7CivmgqrlprsgPiBha3VzYWlcIDsKK+m6l+WnvyA+IHJlaXNoaVwgOwor5YmN6Zu7ID4gemVuZGVuXCA7Civnn6XoposgPiBjaGlrZW5cIDsKK+axuuatuyA+IGtlc3NoaVwgOwor5oOz5YOPID4gc291em91XCA7Civlj5bmnZAgPiBzaHV6YWlcIDsKK+WQjOaDhSA+IGRvdWpvdVwgOwor5Yi26aatID4gc2VpZ3lvXCA7CivlkJHmgKcgPiBrb3VzZWlcIDsKK+iYreS6uiA+IHJhbmppblwgOwor5q6/6IiOID4gZGVuc2hhXCA7Civoj4zpoZ4gPiBraW5ydWlcIDsKK+elnuWuriA+IGppbmd1dVwgOwor5oKy5aKDID4gaGlreW91XCA7CivljrPmraMgPiBnZW5zZWlcIDsKK+iQveiqniA+IHJha3Vnb1wgOwor6buE5ZC7ID4ga291ZnVuXCA7Civph43mmJ8gPiBqdXVzZWlcIDsKK+WPo+aVsCA+IGtvdXN1dVwgOwor5Y2154q2ID4gcmFuam91XCA7CivmraPos5MgPiBzZWloaW5cIDsKK+W8leiovCA+IGluc2hvdVwgOwor5oKq5aSpID4gYWt1dGVuXCA7Civlvoznr4cgPiBrb3VoZW5cIDsKK+m7hOWPoyA+IGtvdWtvdVwgOwor5ZCM5oCnID4gZG91c2VpXCA7Civmgqrlo7AgPiBha3VzZWlcIDsKK+azsOWxsSA+IHRhaXphblwgOwor6YGt6YGHID4gc291Z3V1XCA7Civph43mlocgPiBqdXVidW5cIDsKK+WJiumZpCA+IHNha3Vqb1wgOwor5Y2K552hID4gaGFuc3VpXCA7CivlkIzlv5cgPiBkb3VzaGlcIDsKK+WQvuWmuSA+IHdhZ2ltb1wgOwor5Y2K55y8ID4gaGFuZ2FuXCA7CivlkIjmgKcgPiBhaXNob3VcIDsKK+engeS6uiA+IHNoaWppblwgOwor5Y+z5oqYID4gdXNldHN1XCA7Civnpa3lo4cgPiBzYWlkYW5cIDsKK+WOn+ayuSA+IGdlbicneXVcIDsKK+ats+ioiCA+IHNhaWtlaVwgOwor5oCn5qC5ID4gc2hvdW5lXCA7CivokZvol6QgPiBrYXR0b3VcIDsKK+WNiuebsiA+IGhhbm1vdVwgOwor5b6M56uvID4ga291dGFuXCA7CivmtYTlhpkgPiBqb3VzaGFcIDsKK+WQjOW9oiA+IGRvdWtlaVwgOwor5YmN6ZaAID4gemVubW9uXCA7CivmgqrloLQgPiB3YXJ1YmFcIDsKK+aCquWgsSA+IGFrdWhvdVwgOwor5rOV5bu3ID4gaG91dGVpXCA7Civlj7PmiYsgPiBtaWdpdGVcIDsKK+WPjOabuCA+IHNvdXNob1wgOwor5b+D55CGID4gc2hpbnJpXCA7Civlj4vmnIsgPiB5dXVob3VcIDsKK+W/q+a8oiA+IGthaWthblwgOwor5Y2H55uuID4gbWFzdW1lXCA7CivnpLzluL0gPiByZWlib3VcIDsKK+WHuum8uyA+IGRlYmFuYVwgOwor5Y+J5pyoID4gbWF0YWdpXCA7Civmranoqr8gPiBob2Nob3VcIDsKK+W6l+mgrSA+IHRlbnRvdVwgOwor56Wt5aC0ID4gc2Fpam91XCA7Civlub3prYIgPiB5dXVrb25cIDsKK+elnuWogSA+IHNoaW4nJ2lcIDsKK+WPiOacqCA+IG1hdGFnaVwgOwor5bm86a2aID4geW91Z3lvXCA7CivliLrpnZIgPiBzaGlzZWlcIDsKK+WOn+awkSA+IGdlbm1pblwgOwor5Ym16YCgID4gc291em91XCA7CivmgbDluqYgPiBjaG91ZG9cIDsKK+WQueWljyA+IHN1aXNvdVwgOwor5ZCN5bqXID4gbWVpdGVuXCA7CivliLjpnaIgPiBrZW5tZW5cIDsKK+WOn+avmyA+IGdlbm1vdVwgOwor6YqD5Li4ID4ganV1Z2FuXCA7CivlubLpsYggPiBoaWRhcmFcIDsKK+WQjOW6lyA+IGRvdXRlblwgOwor5Y+v5oiQID4ga2FuYXJpXCA7CivliLDpoK0gPiB0b3V0b3VcIDsKK+WQiOW8gSA+IGdvdWJlblwgOwor5rOV5birID4gaG91c2hpXCA7CivlvIHoq5YgPiBiZW5yb25cIDsKK+WPjeaYoCA+IGhhbicnZWlcIDsKK+WQjOW5tCA+IGRvdW5lblwgOwor5rOV5biWID4gaG91am91XCA7CivmtYHlhIAgPiByeXV1Z2lcIDsKK+ato+irliA+IHNlaXJvblwgOwor5oOF5Y+yID4gam91c2hpXCA7CivmtLvlhpkgPiBrYXNzaGFcIDsKK+awtOeFriA+IG1penVuaVwgOwor5Yqx6KGMID4gcmVpa291XCA7Civmg4fljpogPiB0b25rb3VcIDsKK+W6p+mVtyA+IHphY2hvdVwgOwor5oGQ5oe8ID4ga3lvdWt1XCA7CivliKXppKggPiBiZWtrYW5cIDsKK+avkue0oCA+IGRva3Vzb1wgOwor5ZCN5belID4gbWVpa291XCA7CivlkIzluIIgPiBkb3VzaGlcIDsKK+awvua/qyA+IGhhbnJhblwgOwor5bqV6Z2iID4gdGVpbWVuXCA7Civlj4zmlrkgPiBzb3Vob3VcIDsKK+WNiueVsyA+IGhhbmpvdVwgOwor56C057SEID4gaGF5YWt1XCA7CivlvbznrYkgPiBrYXJlcmFcIDsKK+mBjumHjyA+IGthcnlvdVwgOwor5Y6Y5q+bID4gcmlubW91XCA7Civlj43mlbAgPiBoYW5zdXVcIDsKK+awkeeUnyA+IG1pbnNlaVwgOwor5q+b566hID4gbW91a2FuXCA7CivljYrnlJ8gPiBoYW5zZWlcIDsKK+ato+iokyA+IHNlaWt1blwgOwor5Y+N5pS7ID4gaGFua291XCA7CivljrvmnaUgPiBreW9yYWlcIDsKK+W8geinoyA+IGJlbmthaVwgOwor6YGL6YedID4gdW5zaGluXCA7CivpgY7phbcgPiBrYWtva3VcIDsKK+WPpOaJiyA+IGZ1cnV0ZVwgOwor5q2j6KejID4gc2Vpa2FpXCA7CivliLbpmZAgPiBzZWlnZW5cIDsKK+avm+etiyA+IGtlc3VqaVwgOwor56S+5bGLID4gc2hhb2t1XCA7CivmsJfnkIMgPiBraWt5dXVcIDsKK+WPr+aDnCA+IGF0dGFyYVwgOwor6YCj6ZqKID4gcmVudGFpXCA7CivpgYrph5EgPiB5dXVraW5cIDsKK+WPo+aJjSA+IGtvdXNhaVwgOwor6YaH5q2jID4ganVuc2VpXCA7Civmg4Xli6IgPiBqb3VzZWlcIDsKK+W5vemmmSA+IHl1dWtvdVwgOwor6YeR5omHID4ga2luc2VuXCA7CivmraPoppYgPiBzZWlzaGlcIDsKK+WQm+WtkCA+IGt1bnNoaVwgOwor5q2i6KazID4gc2hpa2FuXCA7CivliKnpnpggPiByaXpheWFcIDsKK+WIpemghSA+IGJla2tvdVwgOwor5q2j6KW/ID4gc2Vpc2VpXCA7Civnpo/liKkgPiBmdWt1cmlcIDsKK+mBhemIjSA+IGNoaWRvblwgOwor5Y+W5o2oID4gc2h1c2hhXCA7CivliaPpgZMgPiBrZW5kb3VcIDsKK+aAqOaVtSA+IG9udGVraVwgOwor5b6q55KwID4ganVua2FuXCA7Civlu7roqIAgPiBrZW5nZW5cIDsKK+aBi+aEmyA+IHJlbicnYWlcIDsKK+asoOmFjSA+IGtlcHBhaVwgOwor6bWs56iLID4gaG91dGVpXCA7CivolYPmm7ggPiBiYW5zaG9cIDsKK+aBkuaApyA+IGtvdXNlaVwgOwor5bu76KanID4ga2FpcmFuXCA7Civlkb3ku6QgPiBtZWlyZWlcIDsKK+WQjeWxsSA+IG1laXphblwgOwor55yf6bSoID4gbWFnYW1vXCA7CivpgKPplqIgPiByZW5rYW5cIDsKK+WQkeWvkiA+IGtvdWthblwgOwor5rGA5riaID4gdGVpc2hvXCA7CivmgYvmg4UgPiByZW5qb3VcIDsKK+atk+irhyA+IGthbmRhblwgOwor5oGQ5oCWID4ga3lvdWZ1XCA7CivmraPoo4UgPiBzZWlzb3VcIDsKK+WPguaUvyA+IHNhbnNlaVwgOwor5ZCM5bGFID4gZG91a3lvXCA7CivliJ3poK0gPiBzaG90b3VcIDsKK+mBhemFjSA+IGNoaWhhaVwgOwor5buD6YCAID4gaGFpdGFpXCA7CivmsYHmtrIgPiBqdXVla2lcIDsKK+mAmumZoiA+IHRzdXVpblwgOwor5oG15a2YID4ga2Vpem9uXCA7CivoloTlubggPiBoYWtrb3VcIDsKK+WQjOWwgSA+IGRvdWZ1dVwgOwor5Y+w5b2iID4gZGFpa2VpXCA7Civms5XlrpogPiBob3V0ZWlcIDsKK+azleWumCA+IGhvdWthblwgOwor5oGL5oGLID4gcmVucmVuXCA7Civnn7Poi7EgPiBzZWtpZWlcIDsKK+W9qeeuoSA+IHNhaWthblwgOwor6YGg6LazID4gZW5zb2t1XCA7CivljLrnlLsgPiBrdWtha3VcIDsKK+WOs+aakSA+IGdlbnNob1wgOwor5qyh6YCxID4gamlzaHV1XCA7CivliY3ph5EgPiBtYWVraW5cIDsKK+mHjeaFiyA+IGp1dXRhaVwgOwor5q276JS1ID4gc2hpem91XCA7CivmsrvlubMgPiBjaGloZWlcIDsKK+a0i+WTgSA+IHlvdWhpblwgOwor5ZCM5a6aID4gZG91dGVpXCA7CivlkI3lrZcgPiBteW91amlcIDsKK+WJpei6qyA+IG11a2ltaVwgOwor5rC05rqWID4gc3VpanVuXCA7CivmsLTmupAgPiBzdWlnZW5cIDsKK+emgeWItiA+IGtpbnNlaVwgOwor6YCB6aKoID4gc291ZnV1XCA7CivpgbroqIAgPiB5dWlnb25cIDsKK+aBr+WtkCA+IG11c3Vrb1wgOwor5oGp5a+1ID4gb25jaG91XCA7CivpgYXpgYUgPiBjaGljaGlcIDsKK+aCquWQjSA+IGFrdW1laVwgOwor6JS15pysID4gem91aG9uXCA7CivljrPml6ggPiBnZW5zaGlcIDsKK+WOn+ahiCA+IGdlbicnYW5cIDsKK+mHjeaCoyA+IGp1dWthblwgOwor5Y+N5oqXID4gaGFua291XCA7CivnpZblm70gPiBzb2tva3VcIDsKK+W7g+i7iiA+IGhhaXNoYVwgOwor6JS15pu4ID4gem91c2hvXCA7Civmgqrlj4sgPiBha3V5dXVcIDsKK+mFlOa8oiA+IHN1aWthblwgOwor6YeN5oGpID4gY2hvdW9uXCA7CivlubTpoK0gPiBuZW50b3VcIDsKK+ays+W6iiA+IGthc2hvdVwgOwor5rSX5YmkID4gc2VuemFpXCA7Civlub3pnIogPiB5dXVyZWlcIDsKK+elreWPuCA+IHNhaXNoaVwgOwor5YuY6ICDID4ga2Fua291XCA7CivmgZLluLggPiBrb3Vqb3VcIDsKK+aCsuWKhyA+IGhpZ2VraVwgOwor5bqn6YeRID4gemFnYW5lXCA7CivnpoXlg6cgPiB6ZW5zb3VcIDsKK+WPo+W+hCA+IGtvdWtlaVwgOwor5Y+M5omLID4gbW9yb3RlXCA7Civnn7Poho8gPiBzZWtrb3VcIDsKK+efreiJhyA+IHRhbnRlaVwgOwor5rC05ravID4gc3VpZ2FpXCA7Civlj43miKYgPiBoYW5zZW5cIDsKK+WIjumguCA+IGZ1bmtlaVwgOwor5bqm6YePID4gZG9yeW91XCA7CivokrznlJ8gPiBzb3VzZWlcIDsKK+WIhumkqCA+IGJ1bmthblwgOwor5YiG6aSQID4gYnVuc2FuXCA7CivpgYrou40gPiB5dXVndW5cIDsKK+WOn+advyA+IGdlbnBhblwgOwor6YO156iOID4geXV1emVpXCA7Civph47lv4MgPiB5YXNoaW5cIDsKK+WLg+iIiCA+IGJva2tvdVwgOwor5YyW55+zID4ga2FzZWtpXCA7CivnpL7lpJYgPiBzaGFnYWlcIDsKK+aAr+aHpiA+IGt5b3VkYVwgOwor5Y+j5byBID4ga291YmVuXCA7Civlj6Tlu58gPiBrb2J5b3VcIDsKK+W9k+expCA+IHRvdXNlblwgOwor5bqD6ZaTID4gaGlyb21hXCA7Civljp/mnKwgPiBnZW5wb25cIDsKK+awtOa0lyA+IHN1aXNlblwgOwor5rC35rKzID4gaHlvdWdhXCA7CivphrjmiJAgPiBqb3VzZWlcIDsKK+WPguaLnSA+IHNhbnBhaVwgOwor5bmz6Z2iID4gaGVpbWVuXCA7CivlubPpnZkgPiBoZWlzZWlcIDsKK+WQjOWnkyA+IGRvdXNlaVwgOwor6JeJ5Y+jID4gc2hha291XCA7Civljp/mm7ggPiBnZW5zaG9cIDsKK+WQq+WXvSA+IGdhbnNvdVwgOwor5rC05rOhID4gc3VpaG91XCA7CivlkLvlkIggPiBmdW5nb3VcIDsKK+mDt+ekviA+IGdvdXNoYVwgOwor6YCB6Zu7ID4gc291ZGVuXCA7CivliIbpoZ4gPiBidW5ydWlcIDsKK+ayu+WxsSA+IGNoaXNhblwgOwor5b6M55SfID4gZ29zaG91XCA7CivmgbDlpb0gPiBrYWtrb3VcIDsKK+WKoOiWrCA+IGtheWFrdVwgOwor5b+r5qW9ID4ga2VyYWt1XCA7Civlj43mhJ8gPiBoYW5rYW5cIDsKK+WQjOWlvSA+IGRvdWtvdVwgOwor6Jas5ZySID4geWFrdWVuXCA7Civol6nkvq8gPiBoYW5rb3VcIDsKK+aBr+WlsyA+IHNva3Vqb1wgOwor5rOV5aSWID4gaG91Z2FpXCA7CivpiYTlgpggPiB0ZXNzYW5cIDsKK+axn+adkSA+IGtvdXNvblwgOwor5b+15qChID4gbmVua291XCA7CivljZjmvKIgPiB0YW5rYW5cIDsKK+ejgeadnyA+IGppc29rdVwgOwor5ZCN5aSnID4gbWVpZGFpXCA7Civlub3plpEgPiB5dXVrYW5cIDsKK+W5vemWiSA+IHl1dWhlaVwgOwor5b+N5rOVID4gbmlucG91XCA7Civlub3ploAgPiB5dXVtb25cIDsKK+WPguaIpiA+IHNhbnNlblwgOwor5ZCM5aSnID4gZG91ZGFpXCA7Civli7LnrYkgPiBrdW50b3VcIDsKK+W9ueebriA+IHlha3VtZVwgOwor5oOF5Lq6ID4gam91bmluXCA7CivokZfogIUgPiBjaG9zaGFcIDsKK+eepeimiyA+IGJla2tlblwgOwor5ZCN5aOwID4gbWVpc2VpXCA7Civmg4XkuqQgPiBqb3Vrb3VcIDsKK+WPpOW3oyA+IGZ1cnVzdVwgOwor5ZCN5aOrID4gbWVpc2hpXCA7CivpgbXooYwgPiBqdW5rb3VcIDsKK+mAgOmZoyA+IHRhaWppblwgOwor5Ymj6LGqID4ga2VuZ291XCA7CivmsLTmsJcgPiBtaXp1a2VcIDsKK+WQjOWjqyA+IGRvdXNoaVwgOwor5bm06ZmQID4gbmVuZ2VuXCA7Civlj4vmg4UgPiB5dXVqb3VcIDsKK+ayouW6tSA+IHRha3VhblwgOwor6YGO6LOeID4ga2FzaG91XCA7Civmr5Lnn6IgPiBkb2t1eWFcIDsKK+WOs+aOoiA+IGdlbnRhblwgOwor5ZCI5aWPID4gZ2Fzc291XCA7CivmgrLlgrcgPiBoaXNob3VcIDsKK+mHkeW3pSA+IGtpbmtvdVwgOwor5q+b55quID4ga2VnYXdhXCA7CivljZfmup8gPiBuYW5tZWlcIDsKK+iRieiFiyA+IHlvdWVraVwgOwor5YmN6LuNID4gemVuZ3VuXCA7Civli4fogIUgPiB5dXVzaGFcIDsKK+WJjei7iiA+IHplbnNoYVwgOwor5rC05q+NID4ga3VyYWdlXCA7Civnm67pvLsgPiBtZWhhbmFcIDsKK+mDveedoyA+IHRvdG9rdVwgOwor5Y2X5rqAID4gbmFubWFuXCA7CivmgqrlhZogPiBha3V0b3VcIDsKK+WPsuWumCA+IHNoaWthblwgOwor6YGL6LODID4gdW5jaGluXCA7CivmgKfmhJ8gPiBzZWlrYW5cIDsKK+awtOatuyA+IHN1aXNoaVwgOwor5Y6f5paHID4gZ2VuYnVuXCA7CivpgYros4cgPiB5dXVzaGlcIDsKK+m6puS+oSA+IGJha3VrYVwgOwor6YeN5belID4ganV1a291XCA7Civnn6Xog70gPiBjaGlub3VcIDsKK+WJteimiyA+IHNvdWtlblwgOwor56Wt5YW4ID4gc2FpdGVuXCA7Civli5Xnt5ogPiBkb3VzZW5cIDsKK+W/teabuCA+IG5lbnNob1wgOwor5bm06ZaTID4gbmVua2FuXCA7Civlv4XmsrsgPiBoaXRjaGlcIDsKK+emgeS7pCA+IGtpbnJlaVwgOwor5q2v6IyOID4gaGFndWtpXCA7CivmgKfmg4UgPiBzZWlqb3VcIDsKK+aCquWDpyA+IGFrdXNvdVwgOwor5b6T54qvID4ganV1aGFuXCA7CivnpZ7ljJYgPiBzaGlua2FcIDsKK+iXqeS4uyA+IGhhbnNodVwgOwor5Y2g5rOVID4gc2VucG91XCA7Civnn6XogrIgPiBjaGlpa3VcIDsKK+ekvuWboyA+IHNoYWRhblwgOwor5Yq56IO9ID4ga291bm91XCA7CivliIbpmpsgPiBidW56YWlcIDsKK+mBgei1sCA+IHRvbnNvdVwgOwor6JC16IujID4gY2hpc2hhXCA7CivlkInloLEgPiBraXBwb3VcIDsKK+WIhumaiiA+IGJ1bnRhaVwgOwor5Y+N5b2xID4gaGFuJydlaVwgOwor5oCg5oWiID4gdGFpbWFuXCA7CivnoLTnm64gPiB3YXJlbWVcIDsKK+mAoOmFkiA+IHpvdXNodVwgOwor5Ym16KO9ID4gc291c2VpXCA7CivliIbpmaIgPiBidW4nJ2luXCA7CivnpZ7liqkgPiBzaGluam9cIDsKK+WIhumZkCA+IGJ1bmdlblwgOwor5Y2X5rW3ID4gbmFua2FpXCA7CivlkIzlnosgPiBkb3VrZWlcIDsKK+aAneaFriA+IHNoaXJ5b1wgOwor5rG65oimID4ga2Vzc2VuXCA7CivpgKPpgqYgPiByZW5wb3VcIDsKK+WHsemiqCA+IGdhaWZ1dVwgOwor5oCo5b+1ID4gb24nJ25lblwgOwor5YyW55SfID4ga2VzaG91XCA7Civph5HlsbEgPiBraW56YW5cIDsKK+efpeiAhSA+IGNoaXNoYVwgOwor5ZCm5ZCmID4gaXlhaXlhXCA7CivljrPmiJIgPiBnZW5rYWlcIDsKK+WHtumfsyA+IGt5b3VpblwgOwor5b+D5rCXID4gc2hpbmtpXCA7Civmgp/lhaUgPiBnb255dXVcIDsKK+WQjOWcsCA+IGRvdWNoaVwgOwor56Gd54WZID4gc2hvdWVuXCA7CivphY3msLQgPiBoYWlzdWlcIDsKK+mAuOi2syA+IGlzc29rdVwgOwor5oCd5oOzID4gc2hpc291XCA7CivnoKXnn7MgPiB0b2lzaGlcIDsKK+WIh+mWiyA+IHNla2thaVwgOwor5bm06ZGRID4gbmVua2FuXCA7Civlv4XmrbsgPiBoaXNzaGlcIDsKK+WPpOWutiA+IGZ1cnVpZVwgOwor5b2T56S+ID4gdG91c2hhXCA7CivokL3og6QgPiByYWt1aW5cIDsKK+iWrOWRsyA+IHlha3VtaVwgOwor5rC05qe9ID4gc3Vpc291XCA7Civpg47nrYkgPiByb3Vkb3VcIDsKK+mHjeWxpCA+IGp1dXNvdVwgOwor5YmN6LOiID4gemVua2VuXCA7CivnnLzpj6EgPiBtZWdhbmVcIDsKK+ecn+mdoiA+IG1hdG9tb1wgOwor5oKq5L6LID4gYWt1cmVpXCA7Civlj6PlrqMgPiBrb3VzZW5cIDsKK+efoue+vSA+IHlhYmFuZVwgOwor55yf6Z2SID4gbWFzc2FvXCA7CivljYrmuJsgPiBoYW5nZW5cIDsKK+awl+a1gSA+IGtpcnl1dVwgOwor6YCy6LevID4gc2hpbnJvXCA7Civlj6TlraYgPiBrb2dha3VcIDsKK+WPt+WkliA+IGdvdWdhaVwgOwor6JK854S2ID4gc291emVuXCA7CivmrKDorJsgPiBrZWtrb3VcIDsKK+iVqeWwvSA+IHRvdWppblwgOwor5Y+N5bidID4gaGFudGVpXCA7CivmrbvogIUgPiBzaGlzaGFcIDsKK+W/q+aZtCA+IGthaXNlaVwgOwor6YGU6KazID4gdGFra2FuXCA7Civlh7rpmpsgPiBkZWdpd2FcIDsKK+WPjuW3riA+IHNodXVzYVwgOwor5b2i55u4ID4ga2Vpc291XCA7CivmsbrmhI8gPiBrZXRzdWlcIDsKK+W6lei+uiA+IHRlaWhlblwgOwor6YGT6KazID4gZG91a2FuXCA7CivlkJvlkb0gPiBrdW5tZWlcIDsKK+mBlOimiyA+IHRha2tlblwgOwor6YeO5a6/ID4gbm9qdWt1XCA7CivpgYroqqwgPiB5dXV6ZWlcIDsKK+efree3qCA+IHRhbnBlblwgOwor5Ymq6KOBID4gc2Vuc2FpXCA7CivokZvnsokgPiBrdXp1a29cIDsKK+aCquS7pCA+IGFrdXJlaVwgOwor6YCa6YGOID4gdHN1dWthXCA7CivmgJ3lv7UgPiBzaGluZW5cIDsKK+mAmumBiyA+IHRzdXV1blwgOwor6JaE5aGpID4gdXN1amlvXCA7CivnnJ/pmpsgPiBtYWdpd2FcIDsKK+WQhOWbniA+IGtha2thaVwgOwor5oKq5Lq6ID4gYWt1bmluXCA7CivmrbvnvaogPiBzaGl6YWlcIDsKK+mAo+i8iSA+IHJlbnNhaVwgOwor56Wd5YSAID4gc2h1dWdpXCA7CivmsLTmo7IgPiBzdWlzZWlcIDsKK+atpuiHoyA+IGJ1c2hpblwgOwor5Yil6YK4ID4gYmV0dGVpXCA7Civlv6vmlrkgPiBrYWlob3VcIDsKK+azouWPiiA+IGhha3l1dVwgOwor6YCZ6YCZID4gaG91aG91XCA7Civljp/mi6AgPiBnZW5reW9cIDsKK+iWqOWOuyA+IGtvdWt5b1wgOwor5byp57SaID4gZG9reXV1XCA7Civmr5vnjokgPiBrZWRhbWFcIDsKK+m6l+S6uiA+IHJlaWppblwgOwor6YeM5a2QID4gc2F0b2dvXCA7CivnpL7lkb0gPiBzaGFtZWlcIDsKK+W/g+apnyA+IHNoaW5raVwgOwor5q2v6IKJID4gaGFuaWt1XCA7Civojbfpno0gPiBuaWd1cmFcIDsKK+efs+eyiSA+IGlzaGlrb1wgOwor5oKp5LmxID4gbm91cmFuXCA7CivmsJHms5UgPiBtaW5wb3VcIDsKK+mFuOaVlyA+IHNhbnBhaVwgOwor5Y6E5pelID4geWFrdWJpXCA7CivlkYjkuIogPiB0ZWlqb3VcIDsKK+WNl+aspyA+IG5hbicnb3VcIDsKK+mHkeWpmiA+IGtpbmtvblwgOwor6YGK6KanID4geXV1cmFuXCA7CivmuIXjgIUgPiBzZWlzZWlcIDsKK+W7u+iIuSA+IGthaXNlblwgOwor5YyN55CDID4gaG9reXV1XCA7Civpga7olL0gPiBzaGFoZWlcIDsKK+ekvuWQjSA+IHNoYW1laVwgOwor6Jas5Yq5ID4geWFra291XCA7Civokaznpa0gPiBzb3VzYWlcIDsKK+aAneW8gSA+IHNoaWJlblwgOwor5Yil6YCBID4gYmVzc291XCA7CivnpL7lj7IgPiBzaGFzaGlcIDsKK+elreS4uyA+IHNhaXNodVwgOwor5rSL5LiKID4geW91am91XCA7CivmsLTmoJMgPiBzdWlzZW5cIDsKK+iPr+ihqCA+IGthaHlvdVwgOwor5ZCN5ZOBID4gbWVpaGluXCA7CivokaznpLwgPiBzb3VyZWlcIDsKK+mAk+mAgSA+IHRlaXNvdVwgOwor56S+5Y+LID4gc2hheXV1XCA7Civpg6HnnIwgPiBndW5rZW5cIDsKK+mHjeWpmiA+IGp1dWtvblwgOwor5byb57epID4gY2hpa2FuXCA7Civlv5fmnJsgPiBzaGlib3VcIDsKK+mAgemHkSA+IHNvdWtpblwgOwor5Y6a5omLID4gYXRzdWRlXCA7CivluZXplpMgPiBtYWt1YWlcIDsKK+W5tOmHkSA+IG5lbmtpblwgOwor5Y+N5bCEID4gaGFuc2hhXCA7Civlj43lr74gPiBoYW50YWlcIDsKK+awt+acnyA+IGh5b3VraVwgOwor5oKf5LqGID4gZ29yeW91XCA7Civlv7/mh6MgPiBmdW5tYW5cIDsKK+azleWPtyA+IGhvdWdvdVwgOwor5Yqj6ICFID4gcmVzc2hhXCA7Civmrbvnt5ogPiBzaGlzZW5cIDsKK+WPjOWwhCA+IHNvdXNoYVwgOwor5ZCN5ZCfID4gbWVpZ2luXCA7Civlj4zlr74gPiBzb3V0YWlcIDsKK+WQjeWQmyA+IG1laWt1blwgOwor55uu6auYID4gbWVkYWthXCA7Civov5Tpm7sgPiBoZW5kZW5cIDsKK+W5vemCgyA+IHl1dXN1aVwgOwor6YiN5YiAID4gZG9udG91XCA7CivnoLTnjYQgPiBoYWdva3VcIDsKK+WPo+WkliA+IGtvdWdhaVwgOwor5rK55ZynID4geXVhdHN1XCA7Civlh4zpp5UgPiByeW91Z2FcIDsKK+WQjOWQjSA+IGRvdW1laVwgOwor55+t56+HID4gdGFucGVuXCA7Civlja/mnIggPiB1ZHp1a2lcIDsKK+awtOacqCA+IG1penVraVwgOwor5Y2K5q27ID4gaGFuc2hpXCA7CivnoILnpKsgPiBzYXJla2lcIDsKK+asoeihqCA+IGppaHlvdVwgOwor5oCS5by1ID4gZG9jaG91XCA7CivlkITlk6EgPiBrYWt1aW5cIDsKK+W5tOmFjSA+IG5lbnBhaVwgOwor5YmN6KiAID4gemVuZ2VuXCA7CivnoazmsLQgPiBrb3VzdWlcIDsKK+elnuS7oyA+IGppbmRhaVwgOwor6YGK6KGMID4geXV1a291XCA7Civlj6TloqggPiBrb2Jva3VcIDsKK+WPsOWcsCA+IGRhaWNoaVwgOwor5YiG6YqFID4gZnVuZG91XCA7CivpgLjoqbEgPiBpdHN1d2FcIDsKK+iNiemtmiA+IHNvdWd5b1wgOwor5Y2z5pmCID4gc29rdWppXCA7CivmsLTmm5wgPiBzdWl5b3VcIDsKK+mHjeWljyA+IGp1dXNvdVwgOwor5byB6ICFID4gYmVuc2hhXCA7CivpgJrot68gPiB0c3V1cm9cIDsKK+iTruaguSA+IHJlbmtvblwgOwor5bqt6KiTID4gdGVpa2luXCA7Civlj4zlrZAgPiBmdXRhZ29cIDsKK+WQiOWQjCA+IGdvdWRvdVwgOwor6YeN5aSnID4ganV1ZGFpXCA7Civov5HpmqMgPiBraW5yaW5cIDsKK+elnuS6iyA+IHNoaW5qaVwgOwor5YeN6aSSID4gdG91ZGFpXCA7Civph43lpIkgPiBqdXVoZW5cIDsKK+avkueJmSA+IGRva3VnYVwgOwor5b+M5pyNID4ga2lmdWt1XCA7CivlvpLmuIkgPiB0b3Nob3VcIDsKK+WKn+e9qiA+IGtvdXphaVwgOwor6YCB6YKEID4gc291a2FuXCA7CivojZLppqwgPiBhcmF1bWFcIDsKK+mHkeWhiiA+IGtpbmthaVwgOwor5b+r5oyZID4ga2Fpa3lvXCA7CivliIbph44gPiBidW4nJ3lhXCA7CivlvZPnlaogPiB0b3ViYW5cIDsKK+awtOaYnyA+IHN1aXNlaVwgOwor5Y6a5oOFID4ga291am91XCA7CivphZLmna8gPiBzaHVoYWlcIDsKK+awtOaYjiA+IHN1aW1laVwgOwor5ZCM5YuiID4gZG91emVpXCA7Civph5HloIIgPiBrb25kb3VcIDsKK+WPruWagCA+IHRlaW5laVwgOwor6YGC6KGMID4gc3Vpa291XCA7CivmsJfmpb0gPiBraXJha3VcIDsKK+iSvOa1tyA+IHNvdWthaVwgOwor5rCR5qipID4gbWlua2VuXCA7CivliIPph50gPiBoYWJhcmlcIDsKK+W9k+eUqCA+IHRvdXlvdVwgOwor5bmH6ZaTID4gaG91a2FuXCA7CivlirHnsr4gPiByZWlzZWlcIDsKK+WPguWuriA+IHNhbmd1dVwgOwor5ZCM5Yq0ID4gZG91cm91XCA7Civph5Hln44gPiBraW5qb3VcIDsKK+WIpei2oyA+IGJlc3NodVwgOwor5YmN6KOFID4gemVuc291XCA7CivnpL7lhoUgPiBzaGFuYWlcIDsKK+WIhumFjSA+IGJ1bnBhaVwgOwor5rOV5Yi2ID4gaG91c2VpXCA7CivpgbrohLEgPiBpZGF0c3VcIDsKK+eeveiAhSA+IGtvc2hhXCA7CivlkI3liY0gPiBuYW1hZVwgOwor5Y+k5Z2AID4ga29zaGlcIDsKK+W4sOmghiA+IGtpanVuXCA7CivluqfoppYgPiB6YXNoaVwgOwor5b+r5omTID4ga2FpZGFcIDsKK+mAgei+niA+IHNvdWppXCA7CivlkI3liKkgPiBtZWlyaVwgOwor55yJ6ZaTID4gbWlrZW5cIDsKK+ejgeaApyA+IGppc2VpXCA7CivolqzkvqEgPiB5YWtrYVwgOwor56Cy54WZID4gaG91ZW5cIDsKK+ekvOWEgCA+IHJlaWdpXCA7Civms5XlhbcgPiBob3VndVwgOwor5ZCP5YWaID4gcml0b3VcIDsKK+ebrumhlCA+IG1lZ2FvXCA7CivnopHmlocgPiBoaWJ1blwgOwor6YCj6KqeID4gcmVuZ29cIDsKK+mHjeWbsiA+IGNob3VpXCA7Civmsq7llqogPiBzb3NvdVwgOwor6YG657+SID4gaXNodXVcIDsKK+mBuOiAhSA+IHNlbmphXCA7CivmrYzogZYgPiBrYXNlaVwgOwor6YCg6KqeID4gem91Z29cIDsKK+egsueBqyA+IGhvdWthXCA7CivokrjmsJcgPiBqb3VraVwgOwor5oCq5aWHID4ga2Fpa2lcIDsKK+mAo+iomCA+IHJlbmtpXCA7Civph43lmaggPiBqdXVraVwgOwor5Yqg57OWID4ga2F0b3VcIDsKK+aBqeWFuCA+IG9udGVuXCA7CivlvpLmrbsgPiB0b3NoaVwgOwor5bqP6KuWID4gam9yb25cIDsKK+avheeEtiA+IGtpemVuXCA7CivliLbopocgPiBzZWloYVwgOwor5q2O576OID4gdGFuYmlcIDsKK+mAgOi3ryA+IHRhaXJvXCA7Civlv5zmiYsgPiBvdXNodVwgOwor6YCf6KiYID4gc29ra2lcIDsKK+azouS5sSA+IGhhcmFuXCA7Civlv5zmiKYgPiBvdXNlblwgOwor6YCj6KaHID4gcmVucGFcIDsKK+aAqOWjsCA+IGVuc2VpXCA7CivmsrnljZggPiB5dXRhblwgOwor5bqP6KmeID4gam9zaGlcIDsKK+WMu+alrSA+IGlneW91XCA7Civluo/oqIAgPiBqb2dlblwgOwor5b+Y5oiRID4gYm91Z2FcIDsKK+iNt+mHjSA+IGthanV1XCA7CivljLrmpJwgPiBrdWtlblwgOwor5Y2X5paXID4gbmFudG9cIDsKK+ayveWIuCA+IGtva2VuXCA7CivljYrmnJ8gPiBoYW5raVwgOwor5ZCM5L6hID4gZG91a2FcIDsKK+WLleeUuyA+IGRvdWdhXCA7CivmsrPljZcgPiBrYW5hblwgOwor6JaE5YiDID4gdXN1YmFcIDsKK+WKoOeulyA+IGthc2FuXCA7CivlubTos6YgPiBuZW5wdVwgOwor5Y+j5ZGzID4ga291bWlcIDsKK+i/t+i3ryA+IG1laXJvXCA7CivmsrnliaQgPiB5dXphaVwgOwor5bm06LOAID4gbmVuZ2FcIDsKK+WPr+WLlSA+IGthZG91XCA7CivlubTosqIgPiBuZW5ndVwgOwor5b6h5qCqID4gb2thYnVcIDsKK+WOqOWtkCA+IHp1c2hpXCA7CivliKXoqJggPiBiZWtraVwgOwor5Y+k5Y+yID4ga29zaGlcIDsKK+WQj+S6uiA+IHJpamluXCA7CivlkITlgIsgPiBrYWtrb1wgOwor6YKq55+lID4gamFjaGlcIDsKK+WPpOWPgiA+IGtvc2FuXCA7Civms5XkuosgPiBob3VqaVwgOwor6JWD5aS3ID4gYmFuJydpXCA7Civph43lkbMgPiBvbW9taVwgOwor5qi56b2iID4ganVyZWlcIDsKK+WNg+acqCA+IGNoaWdpXCA7Civmra/np5EgPiBzaGlrYVwgOwor5oG15LiOID4ga2VpeW9cIDsKK+mFuOW6piA+IHNhbmRvXCA7CivlirHno4EgPiByZWlqaVwgOwor5Ymj6IieID4ga2VuYnVcIDsKK+azleS4uyA+IGhvc3N1XCA7Civmr43muK8gPiBib2tvdVwgOwor6YeO5ZCIID4geWFnb3VcIDsKK+WQjOS6iyA+IGRvdWppXCA7Civlj6/liIYgPiBrYWJ1blwgOwor6YeO5Y+yID4geWFzaGlcIDsKK+WKqeelrSA+IGpvc2FpXCA7CivljYrml5cgPiBoYW5raVwgOwor5ZCE5L2NID4ga2FrdWlcIDsKK+W+oeacrSA+IG9mdWRhXCA7CivpgY7oiKwgPiBrYWhhblwgOwor5YiG6LOmID4gYnVucHVcIDsKK+eoruOAhSA+IHNodWp1XCA7Civlv5jmgakgPiBib3VvblwgOwor5b6F5qmfID4gdGFpa2lcIDsKK+aBqeS6uiA+IG9uamluXCA7CivlubTorZwgPiBuZW5wdVwgOwor5b+M5oaaID4ga2l0YW5cIDsKK+mBi+iIqiA+IHVua291XCA7CivmsrPlhoUgPiBoYW5vaVwgOwor5oGo5LqLID4ga29uamlcIDsKK+aAp+WZqCA+IHNlaWtpXCA7CivmgJLlo7AgPiBkb3NlaVwgOwor5qmf6aaWID4ga2lzaHVcIDsKK+WIl+iomCA+IHJla2tpXCA7Civlj6TliLYgPiBrb3NlaVwgOwor5Y+N5ZO6ID4gaGFucG9cIDsKK+WNgeaXpSA+IHRvb2thXCA7CivlvqHmmLwgPiBvaGlydVwgOwor6YO95rCRID4gdG9taW5cIDsKK+eci+mBjiA+IGthbmthXCA7Civlj6TliIAgPiBrb3RvdVwgOwor5byl55SfID4geWF5b2lcIDsKK+mAgeipsSA+IHNvdXdhXCA7CivlubPoqp4gPiBoZWlnb1wgOwor5q+S5rCXID4gZG9ra2VcIDsKK+efm+ebviA+IG11anVuXCA7CivnoLTmsLQgPiBoYXN1aVwgOwor6YeR5YipID4ga2lucmlcIDsKK+azieS4iyA+IHNlbmthXCA7Civov5Tovp4gPiBoZW5qaVwgOwor6bWe5q+bID4gZ2Ftb3VcIDsKK+WPmeWLsiA+IGpva3VuXCA7CivmspblkIggPiBva2lhaVwgOwor6bWd5q+bID4gZ2Ftb3VcIDsKK+WPpOWFuCA+IGtvdGVuXCA7Civpr6jpo7IgPiBnZWlpblwgOwor6YeN5YipID4ganV1cmlcIDsKK+WNsOW9sSA+IGluJydlaVwgOwor5Y2Y5omTID4gdGFuZGFcIDsKK+W+oeaVsCA+IG9rYXp1XCA7Civlj5fli5UgPiBqdWRvdVwgOwor6YGT576pID4gZG91Z2lcIDsKK+W+jOaetiA+IGtvdWthXCA7CivpgaDnuIEgPiB0b29lblwgOwor5YiG6KqyID4gYnVua2FcIDsKK+mCpueUuyA+IGhvdWdhXCA7Civph47lhZogPiB5YXRvdVwgOwor552A6KGjID4geWFrdWlcIDsKK+WPl+WIkSA+IGp1a2VpXCA7Civmr47mrKEgPiBtYWlqaVwgOwor5b6M5pyfID4ga291a2lcIDsKK+iVqeWFkCA+IHRvdWppXCA7CivmsrnkupUgPiB5dXNlaVwgOwor5bu656KRID4ga2VucGlcIDsKK+WGpemXhyA+IG1laWFuXCA7CivluIPpmaMgPiBmdWppblwgOwor6I2S6YeOID4ga291eWFcIDsKK+ayu+S4iyA+IGNoaWthXCA7CivovrrphJkgPiBoZW5waVwgOwor6YWS5b6SID4gc2h1dG9cIDsKK+apn+mbtyA+IGtpcmFpXCA7CivmrYznqL8gPiBrYWtvdVwgOwor5byn54q2ID4ga29qb3VcIDsKK+mBt+enuyA+IHNlbicnaVwgOwor6YG456eRID4gc2Vua2FcIDsKK+W4sOmChCA+IGtpa2FuXCA7Civmra/nl5sgPiBoYWl0YVwgOwor5rCR5oi4ID4gbWlua29cIDsKK+WKoOebnyA+IGthbWVpXCA7Civoj4roirEgPiBraWtrYVwgOwor5Y+k5L6LID4ga29yZWlcIDsKK+WPsOS4iyA+IGRhaWthXCA7CivliLvoi6YgPiBrb2trdVwgOwor5q+N5qipID4gYm9rZW5cIDsKK+WPpOS9kyA+IGtvdGFpXCA7CivlvoDmnaUgPiBvdXJhaVwgOwor5Y+X5YOPID4ganV6b3VcIDsKK+WPpeS8miA+IGt1a2FpXCA7Civlj6TkvJ0gPiBrb2RlblwgOwor5b+c5a++ID4gb3V0YWlcIDsKK+WNseWzsCA+IGtpaG91XCA7CivmrrrmsJcgPiBzYWtraVwgOwor5Yqp55SjID4gam9zYW5cIDsKK+W4uOi7jCA+IGpvdWtpXCA7CivluLDovrIgPiBraW5vdVwgOwor5Y+k5LujID4ga29kYWlcIDsKK+WPpOS7iiA+IGtva29uXCA7Civlj6TkurogPiBrb2ppblwgOwor6YGV57SEID4gaXlha3VcIDsKK+WOn+WbsyA+IGdlbnp1XCA7CivljYHmiYsgPiBqaXR0ZVwgOwor5qmf6ZaiID4ga2lrYW5cIDsKK+awkeaEjyA+IG1pbicnaVwgOwor5Y+C5YqgID4gc2Fua2FcIDsKK+WGtumHkSA+IHlha2luXCA7Civnn7PngasgPiBzZWtrYVwgOwor5YW16aasID4gaGVpYmFcIDsKK+W+oeaJgCA+IGdvc2hvXCA7Civph47kurogPiB5YWppblwgOwor5byB55aPID4gYmVuc29cIDsKK+WOn+WZqCA+IGdlbmtpXCA7CivpgKDoirEgPiB6b3VrYVwgOwor5bid6YO9ID4gdGVpdG9cIDsKK+iLsemtgiA+IGVpa29uXCA7Civph4zkurogPiByaWppblwgOwor5Y6t5ZGzID4gaXlhbWlcIDsKK+WNseWusyA+IGtpZ2FpXCA7CivlupfoiJcgPiB0ZW5wb1wgOwor6YWN5biDID4gaGFpZnVcIDsKK+auteatqSA+IHRhbmJ1XCA7CivljZjluqcgPiB0YW56YVwgOwor5Y+Z5Lu7ID4gam9uaW5cIDsKK+asp+exsyA+IG91YmVpXCA7CivlvKfnga8gPiBrb3RvdVwgOwor5oCS5Y+3ID4gZG9nb3VcIDsKK+awuOWtmCA+IGVpem9uXCA7Civlt6XpnaIgPiBrdW1lblwgOwor5YaF6ZyAID4gbmFpanVcIDsKK+WPl+S7uyA+IGp1bmluXCA7Civmr43moKEgPiBib2tvdVwgOwor5b6M5o+0ID4ga291ZW5cIDsKK+ecjOitsCA+IGtlbmdpXCA7Civli6TmsYIgPiBnb25ndVwgOwor55yL6K23ID4ga2FuZ29cIDsKK+WGhumZoyA+IGVuamluXCA7Civphbjln7ogPiBzYW5raVwgOwor56K65Zu6ID4ga2Fra29cIDsKK+W4sOi2qCA+IGtpc3V1XCA7CivluLDotqMgPiBraXNodVwgOwor5b2T5qmfID4gdG91a2lcIDsKK+W8geeQhiA+IGJlbnJpXCA7Civmr43mnZAgPiBib3phaVwgOwor5b6S5omLID4gdG9zaHVcIDsKK+ebm+mBiyA+IHNlaXVuXCA7Civmra/niZkgPiBzaGlnYVwgOwor5rCR5bqmID4gbWluZG9cIDsKK+mBi+eulyA+IHVuemFuXCA7Civlv5zlpIkgPiBvdWhlblwgOwor6YWS5a62ID4gc2h1a2FcIDsKK+W8pea8qyA+IGJpbWFuXCA7CivphZLlrrQgPiBzaHVlblwgOwor6a6f6bGHID4gYW5rb3VcIDsKK+i9n+mfsyA+IGdvdW9uXCA7CivlvqHlv7UgPiBnb25lblwgOwor5b6X5oSPID4gdG9rdWlcIDsKK+apn+mLkiA+IGtpaG91XCA7Civlhbjpm4UgPiB0ZW5nYVwgOwor5Y+M5LqSID4gc291Z29cIDsKK+WLmOawlyA+IGthbmtpXCA7Civmr47mmYIgPiBtYWlqaVwgOwor6L6e6YCAID4gaml0YWlcIDsKK+WOn+WPpSA+IGdlbmt1XCA7CivpgbrnlZkgPiBpcnl1dVwgOwor5qmf6YqDID4ga2lqdXVcIDsKK+mDveaUvyA+IHRvc2VpXCA7Civli5XmsJcgPiBkb3VraVwgOwor5b+c5aCxID4gb3Vob3VcIDsKK+W5vOiKvSA+IHlvdWdhXCA7CivnoazluqYgPiBrb3Vkb1wgOwor5b6p5biwID4gZnVra2lcIDsKK+asuueeniA+IGdpbWFuXCA7CivpgaDnn6IgPiB0b295YVwgOwor6YGO56iLID4ga2F0ZWlcIDsKK+awtOWkqyA+IHN1aWZ1XCA7Civmr43mlpEgPiBib2hhblwgOwor5oCc5L+QID4gcmVpcmlcIDsKK+W4gumDqCA+IHNoaWJ1XCA7CivliqvngasgPiBnb3VrYVwgOwor5Yal6YCUID4gbWVpZG9cIDsKK+WPguS6iyA+IHNhbmppXCA7CivlvqHluaMgPiBnb2hlaVwgOwor5by+5qmfID4gZGFua2lcIDsKK+mBoOecvCA+IGVuZ2FuXCA7CivnoLTmkacgPiBoYXNhaVwgOwor6L+R6KGbID4ga29ub2VcIDsKK+efreazoiA+IHRhbnBhXCA7CivpgaDnm64gPiB0b29tZVwgOwor6YaH5YyWID4ganVua2FcIDsKK+WIpOiAhSA+IGhhbmphXCA7CivnoLTmkI0gPiBoYXNvblwgOwor6YGT56C0ID4gZG91aGFcIDsKK+iLsemciiA+IGVpcmVpXCA7Civli4fmsJcgPiB5dXVraVwgOwor5b2T5pyfID4gdG91a2lcIDsKK+WLleapnyA+IGRvdWtpXCA7CivmsJflrZQgPiBraWtvdVwgOwor5Yqg54K5ID4ga2F0ZW5cIDsKK+mFuOWRsyA+IHNhbm1pXCA7CivlhqDovp4gPiBrYW5qaVwgOwor6Iux6ZuEID4gZWl5dXVcIDsKK+W/q+WRsyA+IGthaW1pXCA7CivljbHlnLAgPiBraWNoaVwgOwor5bmz6IelID4gaGVpZ2FcIDsKK+WOmuWIqSA+IGtvdXJpXCA7CivlvpLlvJ8gPiB0b3RlaVwgOwor55+t5rCXID4gdGFua2lcIDsKK+awkeWutiA+IG1pbmthXCA7CivljJbmiJAgPiBrYXNlaVwgOwor5beu6YeRID4gc2FraW5cIDsKK+aoqumaiiA+IG91dGFpXCA7Civpg6jmlbAgPiBidXN1dVwgOwor5bqD576pID4ga291Z2lcIDsKK+WLh+atpiA+IHl1dWJ1XCA7CivlhYjpp4YgPiBzZW5rdVwgOwor6YKq5rOVID4gamFob3VcIDsKK+WNiuWtoyA+IGhhbmtpXCA7Civlv4zlnqMgPiBpZ2FraVwgOwor5b2T5pmCID4gdG91amlcIDsKK+WJjeenkSA+IHplbmthXCA7CivmsI/lrZAgPiB1amlrb1wgOwor5beu6YWNID4gc2FoYWlcIDsKK+efreatjCA+IHRhbmthXCA7Civnm6PorbcgPiBrYW5nb1wgOwor5YaF6YeOID4gbmFpeWFcIDsKK+ebuOijnCA+IHNvdWhvXCA7CivlvKbmrYwgPiBnZW5rYVwgOwor5Y2D5a62ID4gc2Vua2VcIDsKK+iLpumboyA+IGt1bmFuXCA7CivlvJjms5UgPiBndWhvdVwgOwor5Y6t5Lq6ID4gZW5qaW5cIDsKK+mFuOWMliA+IHNhbmthXCA7CivmqZ/ou6IgPiBraXRlblwgOwor56C05oiSID4gaGFrYWlcIDsKK+avgOaQjSA+IGtpc29uXCA7CivljYHlrZcgPiBqdXVqaVwgOwor5beu6YGjID4gc2FrZW5cIDsKK+W+oeWutCA+IGd5b2VuXCA7Civli5jmn7sgPiBrYW5zYVwgOwor55+u5qi5ID4gd2FpanVcIDsKK+eZvembqCA+IGhha3V1XCA7Civljq3kuJYgPiBlbnNlaVwgOwor5b6h5a6FID4gb3Rha3VcIDsKK+WGhemDqCA+IG5haWJ1XCA7Civljp/kvqEgPiBnZW5rYVwgOwor5Ya36KqeID4gcmVpZ29cIDsKK+W6p+emhSA+IHphemVuXCA7CivojbfokYkgPiBrYXlvdVwgOwor6Ium6ZeYID4ga3V0b3VcIDsKK+i+nuitsiA+IGppam91XCA7CivljLvlraYgPiBpZ2FrdVwgOwor5Yqg5ribID4ga2FnZW5cIDsKK+W6p+ekvCA+IHphcmVpXCA7CivphZLlmaggPiBzaHVraVwgOwor5bem6YG3ID4gc2FzZW5cIDsKK+eZu+mZoiA+IHRvdWluXCA7Civoj6/nlLIgPiBrYWtvdVwgOwor5YWI6Z2eID4gc2VucGlcIDsKK+mBi+eXtCA+IHVuY2hpXCA7CivluILosrsgPiBzaGloaVwgOwor5b6A5bm0ID4gb3VuZW5cIDsKK+W6nOeojiA+IGZ1emVpXCA7CivnoJTmkakgPiBrZW5tYVwgOwor5beh6YKPID4ganVucmFcIDsKK+WJo+eSvSA+IGtlbmppXCA7CivlhY3pmaQgPiBtZW5qb1wgOwor6Iqx6a2BID4gb2lyYW5cIDsKK+W7tua7niA+IGVudGFpXCA7Civlt6bovrogPiBzYWhlblwgOwor5b6u5aG1ID4gbWlqaW5cIDsKK+mDqOaJgCA+IGJ1c2hvXCA7CivljLnlqaYgPiBoaXBwdVwgOwor5YWJ6ZmwID4ga291aW5cIDsKK+asoeeUtyA+IGppbmFuXCA7CivliqDms5UgPiBrYWhvdVwgOwor5b6M5bC+ID4ga291YmlcIDsKK+WGhui7oiA+IGVudGVuXCA7CivpgZPnkIYgPiBkb3VyaVwgOwor5q2z5qyhID4gc2FpamlcIDsKK+WGl+iyuyA+IGpvdWhpXCA7CivliKXnrocgPiBiZWtrb1wgOwor6Iy26KmxID4gY2hhd2FcIDsKK+avjeaApyA+IGJvc2VpXCA7CivpgYXnlpEgPiBjaGlnaVwgOwor5rCX5ZyPID4ga2lrZW5cIDsKK+W3qOi6ryA+IGt5b2t1XCA7CivluILorbAgPiBzaGlnaVwgOwor5rCX5ZujID4ga2lkYW5cIDsKK+W/nOWIhiA+IG91YnVuXCA7CivlvqHlpKcgPiBvbnRhaVwgOwor5Yqg5rC0ID4ga2FzdWlcIDsKK+WMluW3pSA+IGtha291XCA7Civmr5vluIMgPiBtb3VmdVwgOwor5YaN6LW3ID4gc2Fpa2lcIDsKK+awuOWKqyA+IGVpZ291XCA7CivmsJflmqIgPiBraW5vdVwgOwor5rC05YyWID4gc3Vpa2FcIDsKK+mAlOerryA+IHRvdGFuXCA7Civpg73luqYgPiB0c3Vkb1wgOwor5q+N5b2iID4gYm9rZWlcIDsKK+ato+awlyA+IHNlaWtpXCA7CivljLnlpKsgPiBoaXBwdVwgOwor5bmz57SgID4gaGVpc29cIDsKK+iKsemmmSA+IGtha291XCA7Civli7/mgKogPiBtb2trZVwgOwor5YaZ6K2cID4gc2hhZnVcIDsKK+eiuuS5jiA+IGtha2tvXCA7Civnn63mnJ8gPiB0YW5raVwgOwor5q2j5q+UID4gc2VpaGlcIDsKK+W9vOWyuCA+IGhpZ2FuXCA7CivljbDliKQgPiBpbnBhblwgOwor6YO95biCID4gdG9zaGlcIDsKK+avjuW6piA+IG1haWRvXCA7Civlhajpg70gPiB6ZW50b1wgOwor5Y2w5YiAID4gaW50b3VcIDsKK+WFqOmDqCA+IHplbmJ1XCA7CivmsLTliKkgPiBzdWlyaVwgOwor6YCj56C0ID4gcmVucGFcIDsKK+W9qeW6piA+IHNhaWRvXCA7CivlvaLlvbEgPiBrZWllaVwgOwor5Yil56eRID4gYmVra2FcIDsKK+mBoOeBqyA+IHRvb2JpXCA7CivokYnmnKsgPiBoYXp1ZVwgOwor5Yq55p6cID4ga291a2FcIDsKK+W/q+S6iyA+IGthaWppXCA7CivlupznnIwgPiBmdWtlblwgOwor5YaX6KqeID4gam91Z29cIDsKK+WMuuWfnyA+IGt1aWtpXCA7Civli77lvJUgPiBrb3VpblwgOwor5beo6LK7ID4ga3lvaGlcIDsKK+W+oeWdiiA+IGdvYm91XCA7Civnn6LmnaUgPiB5YXJhaVwgOwor5YyW5bCOID4ga2Vkb3VcIDsKK+iLsemCgSA+IGVpbWFpXCA7CivlvozlprsgPiBnb3NhaVwgOwor5q+U5bO2ID4gaGl0b3VcIDsKK+WNmOWPpSA+IHRhbmt1XCA7CivmsJflk4EgPiBraWhpblwgOwor5YaN6K2wID4gc2FpZ2lcIDsKK+W3peiyuyA+IGtvdWhpXCA7Civli53miYsgPiBrYXR0ZVwgOwor5q275pyfID4gc2hpa2lcIDsKK+ecvOeqqSA+IGdhbmthXCA7CivluIPooosgPiBob3RlaVwgOwor6Im26bqXID4gZW5yZWlcIDsKK+WEqumbhSA+IHl1dWdhXCA7Civmr5vlrZQgPiBrZWFuYVwgOwor56C05bGLID4gaGFva3VcIDsKK+WLpOaDsCA+IGtpbmRhXCA7CivlhoXorbAgPiBuYWlnaVwgOwor6L2X6Lu7ID4ga2Fua2FcIDsKK+atlOastyA+IGt5b2tpXCA7CivovLjpioAgPiB5dWdpblwgOwor5YWo6LqvID4gemVua3VcIDsKK+W5s+epjyA+IGhlaW9uXCA7CivljbPkvY0gPiBzb2t1aVwgOwor5biw6ImmID4ga2lrYW5cIDsKK+W6j+ebpCA+IGpvYmFuXCA7Civov5Hnv5IgPiBraW5qdVwgOwor5qih6YCgID4gbW96b3VcIDsKK+avjeWxiyA+IG9tb3lhXCA7CivprZHprYUgPiBjaGltaVwgOwor5rC45L2PID4gZWlqdXVcIDsKK+ecvOenkSA+IGdhbmthXCA7Civnm67ojLYgPiBtZWNoYVwgOwor5YWs6LevID4ga291cm9cIDsKK+WIh+espiA+IGtpcHB1XCA7CivluLDoiKogPiBraWtvdVwgOwor5qiq6LuiID4gb3V0ZW5cIDsKK+W5tOennyA+IG5lbnNvXCA7Civou43pvJMgPiBndW5rb1wgOwor5Y2K5Y+vID4gaGFua2FcIDsKK+WNiuWPpSA+IGhhbmt1XCA7CivpgbjmrYwgPiBzZW5rYVwgOwor5Y2Y5YipID4gdGFucmlcIDsKK+W+s+WMliA+IHRva2thXCA7CivliKnnm4ogPiByaWVraVwgOwor5qyh54K5ID4gaml0ZW5cIDsKK+W9k+W6pyA+IHRvdXphXCA7CivlvpPlm6AgPiBqdXVpblwgOwor5rC45LujID4gZWl0YWlcIDsKK+awl+WLoiA+IGtpc2VpXCA7Civmra/mnLYgPiBzaGlkYVwgOwor5q2z5pquID4gc2VpYm9cIDsKK+avjeWutiA+IG9tb3lhXCA7CivlvbzlpbQgPiBhaXRzdVwgOwor5rCX5YqfID4ga2lrb3VcIDsKK+W+qeWPpCA+IGZ1a2tvXCA7Civnm67oibIgPiBtZWlyb1wgOwor5YeE6Im2ID4gc2VpZW5cIDsKK+avjeWtkCA+IGJvc2hpXCA7CivpgaDmtbcgPiBlbmthaVwgOwor5rCX5YmNID4ga2ltYWVcIDsKK+WNg+WPpCA+IHNlbmtvXCA7Civlhrfoj5MgPiByZWlrYVwgOwor5byV5pWwID4gaW5zdXVcIDsKK+WMquWboyA+IGhpZGFuXCA7CivphY3lgpkgPiBoYWliaVwgOwor5b6u5YuVID4gYmlkb3VcIDsKK+awuOS4liA+IGVpc2VpXCA7CivmrrXlt64gPiBkYW5zYVwgOwor5b255aSrID4gZWtpZnVcIDsKK+awl+WIhiA+IGtpYnVuXCA7CivphZLkv50gPiBzaHVob1wgOwor5YWs6LK7ID4ga291aGlcIDsKK+W8t+aEjyA+IGt5b3VpXCA7CivlhoXopo8gPiBuYWlraVwgOwor6YGg5rOzID4gZW4nJ2VpXCA7CivojYnoirEgPiBzb3VrYVwgOwor5YiG56eRID4gYnVua2FcIDsKK+mFlOS9mSA+IHN1aXlvXCA7Civli5XmgrggPiBkb3VraVwgOwor6JKy5ZujID4gZnV0b25cIDsKK+W+oeWPsCA+IG1pZGFpXCA7Civou43pto8gPiBzaGFtb1wgOwor6YCj55CGID4gcmVucmlcIDsKK+mCquaOqCA+IGphc3VpXCA7CivmsJHliKkgPiBtaW5yaVwgOwor6YG65qWtID4gaWd5b3VcIDsKK+mBi+a8lSA+IHVuc291XCA7CivnoazljJYgPiBrb3VrYVwgOwor6YCj54+gID4gcmVuanVcIDsKK+WIqeeUqCA+IHJpeW91XCA7Civlvq7liIYgPiBiaWJ1blwgOwor55+t5omTID4gdGFuZGFcIDsKK+WNiOWJjSA+IGdvemVuXCA7Civoi7Hos4cgPiBlaXNoaVwgOwor5YaF6KOPID4gZGFpcmlcIDsKK+i8uOmAgSA+IHl1c291XCA7CivlhYjpgJQgPiBzZW5kb1wgOwor5YW16KqeID4gaGVpZ29cIDsKK+WKqeaUuyA+IGpva291XCA7Civmrr/lrocgPiBkZW4nJ3VcIDsKK+iKn+mZpCA+IHNhbmpvXCA7CivliIfno4sgPiBzZXNzYVwgOwor5rCR5YW3ID4gbWluZ3VcIDsKK+WFrOitsCA+IGtvdWdpXCA7CivptYTlsL4gPiBzaGliaVwgOwor5Yy75Y2aID4gaWhha3VcIDsKK+iMtuiPkyA+IGNoYWthXCA7Civlvq7lhYkgPiBiaWtvdVwgOwor5Y2Y5L6hID4gdGFua2FcIDsKK+mFjeS7mCA+IGhhaWZ1XCA7CivmranmlbAgPiBob3N1dVwgOwor56C05aOKID4gaGFrYWlcIDsKK+avjuWknCA+IG1haXlvXCA7Civmrabmlq0gPiBidWRhblwgOwor5Y2Y5L2NID4gdGFuJydpXCA7CivlhYnovJ0gPiBrb3VraVwgOwor5rCX5YCZID4ga2lrb3VcIDsKK+WFvOijnCA+IGtlbnBvXCA7CivliqDmlbAgPiBrYXN1dVwgOwor5b6h5YmNID4gZ296ZW5cIDsKK+WFrOiqsiA+IGtvdWthXCA7CivlvZPlrrYgPiB0b3VrZVwgOwor5by35byVID4gZ291aW5cIDsKK+W+kuWQjSA+IGFkYW5hXCA7CivlvqHlh7ggPiBvZGVrb1wgOwor5b2T5a2XID4gYXRlamlcIDsKK+mFjeS4iyA+IGhhaWthXCA7CivlhazoqLQgPiBrb3Vzb1wgOwor5bmz55mSID4gaGVpeXVcIDsKK+eZuui1tyA+IGhva2tpXCA7CivpgbjmnpwgPiBzZW5rYVwgOwor5rCX5L2TID4ga2l0YWlcIDsKK+mCquaFsyA+IGpha2VuXCA7CivljLrliIYgPiBrdWJ1blwgOwor6I+v5rCPID4ga2FzaGlcIDsKK+mBv+aakSA+IGhpc2hvXCA7CivpgYrms7MgPiB5dXVlaVwgOwor5Yy65YemID4ga3VzaG9cIDsKK+avjeWggiA+IGJvZG91XCA7CivlvqHlhY0gPiBnb21lblwgOwor5b6h5YWIID4gb3Nha2lcIDsKK+WGrOiHsyA+IHRvdWppXCA7CivojLboiJcgPiBjaGFob1wgOwor6Iux6KmpID4gZWlzaGlcIDsKK+WLh+W+gCA+IHl1dW91XCA7CivlvJPmiYsgPiB5dW5kZVwgOwor5Y2K5L6hID4gaGFua2FcIDsKK+WNl+S4iyA+IG5hbmthXCA7CivljLrlhoUgPiBrdW5haVwgOwor6Imy6aaZID4gaXJva2FcIDsKK+W+kuWKtCA+IHRvcm91XCA7Civmr43lnosgPiBib2tlaVwgOwor6YGT5q2MID4gZG91a2FcIDsKK+WFmuitsCA+IHRvdWdpXCA7CivpgqrmgqogPiBqYWFrdVwgOwor5bm055SrID4gbmVucG9cIDsKK+mDqOWkliA+IGJ1Z2FpXCA7CivmrYzmm7ggPiBrYXNob1wgOwor5Ymb5rCXID4gZ291a2lcIDsKK+W8p+W9oiA+IGtva2VpXCA7Civli6LlrrYgPiBzZWlrYVwgOwor5YqD5pyfID4ga2Fra2lcIDsKK+egguWyqSA+IHNhZ2FuXCA7CivpgqrmgYsgPiBqYXJlblwgOwor5biw57SNID4ga2lub3VcIDsKK+W8lOaFsCA+IGNob3VpXCA7CivmsJfkuIggPiBraWpvdVwgOwor5Ymb5q+FID4gZ291a2lcIDsKK+W+qeS9jSA+IGZ1a3VpXCA7CivlvpLliJEgPiB0b2tlaVwgOwor55uu57eaID4gbWVzZW5cIDsKK+iQjOacqCA+IG1vZWdpXCA7CivlhrfnvbUgPiByZWliYVwgOwor5rCR5LqLID4gbWluamlcIDsKK+efqeW9oiA+IGt1a2VpXCA7Civpgbrml48gPiBpem9rdVwgOwor5q+b5ZSQID4ga2V0b3VcIDsKK+WFqOijuCA+IHplbnJhXCA7Civpgqrlv7UgPiBqYW5lblwgOwor5Yqp5oiQID4gam9zZWlcIDsKK+i7jemmrCA+IGd1bmJhXCA7CivlvJTmhI8gPiBjaG91aVwgOwor5Ym15qGIID4gc291YW5cIDsKK+aooeippiA+IG1vc2hpXCA7CivpgYrmrakgPiB5dXVob1wgOwor5Ye555y8ID4gb3VnYW5cIDsKK+W9k+WknCA+IHRvdXlhXCA7Civou4rppqwgPiBzaGFiYVwgOwor5Yqg5ouFID4ga2F0YW5cIDsKK+m0qOWxhSA+IGthbW9pXCA7CivlvqHkvpsgPiBvdG9tb1wgOwor5b6S5YWaID4gdG90b3VcIDsKK+WGhuiTiyA+IGVuZ2FpXCA7CivljYPku6MgPiBjaGl5b1wgOwor5YWE6LK0ID4gYW5pa2lcIDsKK+iLpuiogCA+IGt1Z2VuXCA7CivlvqHkvL0gPiBvdG9naVwgOwor5YyW5ZCIID4ga2Fnb3VcIDsKK+WIqeeCuSA+IHJpdGVuXCA7CivprLzpnaIgPiBraW1lblwgOwor6Ly/6KuWID4geW9yb25cIDsKK+WFmuimjyA+IHRvdWtpXCA7CivljYHkupQgPiBqdXVnb1wgOwor5q275b6MID4gc2hpZ29cIDsKK+WNgeS6jCA+IGp1dW5pXCA7CivmqKrooYwgPiBvdWtvdVwgOwor5Yy75LyvID4gaWhha3VcIDsKK+W+oeS7gSA+IGdvamluXCA7CivlvozlhYkgPiBnb2tvdVwgOwor5Y2D5LiWID4gY2hpeW9cIDsKK+WFiOitsCA+IHNlbmdpXCA7CivljLrkvJogPiBrdWthaVwgOwor6YGg5p2lID4gZW5yYWlcIDsKK+m0n+WwviA+IHNoaWJpXCA7CivnmbvoqJggPiB0b3VraVwgOwor5YmN5q2vID4gbWFlYmFcIDsKK+mBoOacmyA+IGVuYm91XCA7Civlh7rnlaogPiBkZWJhblwgOwor55+l5bexID4gY2hpa2lcIDsKK+WKseW8pyA+IHJlaWtvXCA7CivlvozlgpkgPiBrb3ViaVwgOwor55yL56C0ID4ga2FucGFcIDsKK+W+oeS4iiA+IG9rYW1pXCA7CivlhY3oqLQgPiBtZW5zb1wgOwor5b255YuZID4gZWtpbXVcIDsKK+apn+iDvSA+IGtpbm91XCA7Civokpnlj6QgPiBtb3Vrb1wgOwor5Yag6ICFID4ga2FuamFcIDsKK+W7g+ajhCA+IGhhaWtpXCA7CivliKnmvaQgPiByaWp1blwgOwor5YOn6ZmiID4gc291aW5cIDsKK+i7jemdtCA+IGd1bmthXCA7CivlhqTnvaogPiBlbnphaVwgOwor6YGg5pmvID4gZW5rZWlcIDsKK+WGheiLkSA+IG5haWVuXCA7Civlu4PmoYggPiBoYWlhblwgOwor5q+N5ZCOID4gYm9rb3VcIDsKK+i7jemcgCA+IGd1bmp1XCA7CivluIPnva4gPiBmdWNoaVwgOwor6ay86ZaAID4ga2ltb25cIDsKK+WEkumBkyA+IGp1ZG91XCA7CivpgaDmlrkgPiBlbnBvdVwgOwor5b6T5LqLID4ganV1amlcIDsKK+WCtemsvCA+IHNhaWtpXCA7Civlt6boiLcgPiBzYWdlblwgOwor5YWB6KixID4gaW5reW9cIDsKK+W4sOekviA+IGtpc2hhXCA7CivliqPlvKcgPiByZWtrb1wgOwor6YOo5ZOBID4gYnVoaW5cIDsKK+egguWhtSA+IHNhamluXCA7CivliZvmnpwgPiBnb3VrYVwgOwor5Yid5ryUID4gc2hvZW5cIDsKK+atqeW7iiA+IGhvcm91XCA7CivmrYzmiYsgPiBrYXNodVwgOwor5b6M5LqLID4ga291amlcIDsKK+WLh+WppiA+IHl1dWZ1XCA7CivmrarluqYgPiB3YWlkb1wgOwor5bmz54KJID4gaGVpcm9cIDsKK+i+suenkSA+IG5vdWthXCA7CivmrKHmnaEgPiBqaWpvdVwgOwor5q2m5byBID4gYnViZW5cIDsKK+i7jOmWkyA+IGtpa2FuXCA7Civpg73lhoUgPiB0b25haVwgOwor5byf5a2QID4gZGVzaGlcIDsKK+W3puiEsyA+IHNhbm91XCA7Civlu7bmgKcgPiBlbnNlaVwgOwor6YKm5a62ID4gaG91a2FcIDsKK+WKoOW5tCA+IGthbmVuXCA7Civov5Hnlb8gPiBraW5raVwgOwor5byB5bqnID4gYmVuemFcIDsKK+WIpea0viA+IGJlcHBhXCA7CivmraPluqcgPiBzZWl6YVwgOwor5byV5bCOID4gaW5kb3VcIDsKK+mAo+atjCA+IHJlbmdhXCA7CivprZTpgZMgPiBtYWRvdVwgOwor5b2x5YOPID4gZWl6b3VcIDsKK+W3q+iAhSA+IGZ1c2hhXCA7CivpgqblrZcgPiBob3VqaVwgOwor5Ye554mIID4gb3ViYW5cIDsKK+WGheiAsyA+IG5haWppXCA7CivliqDlt6UgPiBrYWtvdVwgOwor5YuH5aSrID4geXV1ZnVcIDsKK+asp+aWhyA+IG91YnVuXCA7CivlvZPlkKYgPiB0b3VoaVwgOwor5Yip5rC0ID4gcmlzdWlcIDsKK+mAoOasoSA+IHpvdWppXCA7Civlha3oirEgPiByaWtrYVwgOwor5Yem55CGID4gc2hvcmlcIDsKK+W7tuW8lSA+IGVuJydpblwgOwor552/5pm6ID4gZWljaGlcIDsKK+WFq+iLpiA+IGhha2t1XCA7Civmr5TlgKsgPiBoaXJpblwgOwor5biw55yBID4ga2lzZWlcIDsKK+mBjuaVjyA+IGthYmluXCA7Civluo/mra8gPiBqb3NoaVwgOwor5bu25bu2ID4gZW4nJ2VuXCA7Civli5Xlm6AgPiBkb3VpblwgOwor5byK5bGlID4gaGVpcmlcIDsKK+mBuuW+syA+IGl0b2t1XCA7CivnoLTlgKsgPiBoYXJpblwgOwor5YyX5LqsID4gcGVraW5cIDsKK+egguWYtCA+IHNhc2hpXCA7CivliY3mnJ8gPiB6ZW5raVwgOwor5qyh5pWwID4gamlzdXVcIDsKK+mAoOapnyA+IHpvdWtpXCA7Civmr5TkvosgPiBoaXJlaVwgOwor6YOo5YiGID4gYnVidW5cIDsKK+W5s+a4qSA+IGhlaW9uXCA7Civlho3nuIEgPiBzYWllblwgOwor55uu55ypID4gbWVtYWlcIDsKK+aoueiEgiA+IGp1c2hpXCA7Civmrovln7ogPiB6YW5raVwgOwor6YC45pu4ID4gaXNzaG9cIDsKK+mDveS8miA+IHRva2FpXCA7CivmrL3mhZUgPiBraW5ib1wgOwor6YOo5YaFID4gYnVuYWlcIDsKK+WFreiFkSA+IHJvcHB1XCA7CivpgJPmrKEgPiB0ZWlqaVwgOwor6YO95Lq6ID4gdG9qaW5cIDsKK+mBi+aQrCA+IHVucGFuXCA7CivliY3ml6UgPiBtYWViaVwgOwor5q+N5L2TID4gYm90YWlcIDsKK+WIqeaoqSA+IHJpa2VuXCA7CivlhoXnuIEgPiBuYWllblwgOwor6YG35bqnID4gc2VuemFcIDsKK+WKoOWusyA+IGthZ2FpXCA7CivpgaDmha4gPiBlbnJ5b1wgOwor5Yun5YyWID4ga2FuZ2VcIDsKK+WLh+WbsyA+IHl1dXRvXCA7Civoj6nmj5AgPiBib2RhaVwgOwor5YOn6YO9ID4gc291enVcIDsKK+atpuWumCA+IGJ1a2FuXCA7CivliJ3mrakgPiBzaG9ob1wgOwor55+z5ZmoID4gc2Vra2lcIDsKK+mAgOayuyA+IHRhaWppXCA7Civli5Xlk6EgPiBkb3VpblwgOwor6I+y5omNID4gaGlzYWlcIDsKK+WLpOWLmSA+IGtpbm11XCA7CivlvKXlm5sgPiB5YXNoaVwgOwor5q2j5a2XID4gc2VpamlcIDsKK+W3qOe0sCA+IGtvc2FpXCA7CivpgYvmjIcgPiB1bnNoaVwgOwor6bOl5bGFID4gdG9yaWlcIDsKK+W5s+awlyA+IGhlaWtpXCA7CivpgKPmnrYgPiByZW5rYVwgOwor5YiG5rS+ID4gYnVucGFcIDsKK+i7jemDqCA+IGd1bmJ1XCA7CivlhaznvqkgPiBrb3VnaVwgOwor5Ye65rmvID4gaWRleXVcIDsKK+apn+eoriA+IGtpc2h1XCA7CivluqbmlbAgPiBkb3N1dVwgOwor6YGK5oqAID4geXV1Z2lcIDsKK+mAgOatqSA+IHRhaWhvXCA7Civnmofog6QgPiBrb3VpblwgOwor6YKm5ZyfID4gaG91ZG9cIDsKK+mBv+WvkiA+IGhpa2FuXCA7Civpg6jkvJogPiBidWthaVwgOwor5Yip5qC5ID4gcmlrb25cIDsKK+W0jumZvSA+IGtpeW91XCA7CivlubTmrKEgPiBuZW5qaVwgOwor6YGK5oivID4geXV1Z2lcIDsKK+mBoOW+gSA+IGVuc2VpXCA7Civlt67nrYkgPiBzYXRvdVwgOwor6LuM6YGTID4ga2lkb3VcIDsKK+mBuuWwvyA+IGlueW91XCA7Civmrbvlm6AgPiBzaGlpblwgOwor5Yuy5L2NID4ga3VuJydpXCA7CivokazlhbcgPiBzb3VndVwgOwor5YaG562SID4gZW50b3VcIDsKK+WIhuavjSA+IGJ1bmJvXCA7CivojLbnm64gPiBjaGFtZVwgOwor5bqX5pivID4gdGVuemVcIDsKK+WLn+WFtSA+IGJvaGVpXCA7Civmrr/kuIsgPiBkZW5rYVwgOwor5qyd5oakID4gdXBwdW5cIDsKK+iRrOWEgCA+IHNvdWdpXCA7CivpgZXlv4MgPiBpc2hpblwgOwor5byx5YyWID4gamFra2FcIDsKK+WKoOWilyA+IGthem91XCA7CivpgYrmg7AgPiB5dXVkYVwgOwor5Yuf5YK1ID4gYm9zYWlcIDsKK+efreWPpSA+IHRhbmt1XCA7CivlvZPkuosgPiB0b3VqaVwgOwor6YGO5oCgID4ga2F0YWlcIDsKK+WHuuaxgSA+IGRhc2hpXCA7Civnn7PljJYgPiBzZWtrYVwgOwor55uj55CGID4ga2FucmlcIDsKK+WJjeaIryA+IHplbmdpXCA7CivluKvniLYgPiBzaGlmdVwgOwor5q2j5aGpID4gc2VpZW5cIDsKK+apn+efpSA+IGtpY2hpXCA7CivlurjmhJogPiB5b3VndVwgOwor5byV5ZapID4gaW4nJ3l1XCA7CivluJ3njosgPiB0ZWlvdVwgOwor6YG/5aaKID4gaGluaW5cIDsKK+WGheenkSA+IG5haWthXCA7CivpgK7mjZUgPiB0YWlob1wgOwor5bqP5paHID4gam9idW5cIDsKK+mBjuW9kyA+IGthdG91XCA7Civou43ot68gPiBndW5yb1wgOwor5bqP5pWwID4gam9zdXVcIDsKK+aui+WLmSA+IHphbm11XCA7CivliJ3mnJ8gPiBzaG9raVwgOwor6YGg5bO2ID4gZW50b3VcIDsKK+W3peenkSA+IGtvdWthXCA7Civouqvph40gPiBtaW9tb1wgOwor5bqn5omAID4gemFzaG9cIDsKK+WGheekuiA+IG5haWppXCA7CivmraPlnZAgPiBzZWl6YVwgOwor6Lyq6IieID4gcmluYnVcIDsKK+mAlOaWuSA+IHRvaG91XCA7CivlhIDoo4UgPiBnaXNvdVwgOwor5bm95pqXID4geXV1YW5cIDsKK+iLseexsyA+IGVpYmVpXCA7Civou43osrsgPiBndW5waVwgOwor6a2U6KGXID4gbWFnYWlcIDsKK+i7ouiomyA+IHRlbmthXCA7Civou6LoqJggPiB0ZW5raVwgOwor5Yex5q2MID4gZ2Fpa2FcIDsKK+asoeW5tCA+IGppbmVuXCA7CivpgbrloqggPiBpYm9rdVwgOwor55qH57SAID4ga291a2lcIDsKK+mBheW7tiA+IGNoaWVuXCA7CivlubzmmYIgPiB5b3VqaVwgOwor55uG55S7ID4gYm9uZ2FcIDsKK+WIkeacnyA+IGtlaWtpXCA7CivlubTmnJ8gPiBuZW5raVwgOwor5YuV5L2cID4gZG91c2FcIDsKK+WHuuanmCA+IGRleW91XCA7Civoirjoi5EgPiBnZWllblwgOwor5byn5YWJID4ga29rb3VcIDsKK+atjOWjhyA+IGthZGFuXCA7CivlhbXnp5EgPiBoZWlrYVwgOwor5Yqp5ZG9ID4gam9tZWlcIDsKK+mrmOmbhSA+IGtvdWdhXCA7CivluLjmuKkgPiBqb3VvblwgOwor5YWa57SAID4gdG91a2lcIDsKK+WJjeW+jCA+IHplbmdvXCA7CivlhbXnpo0gPiBoZWlrYVwgOwor5qmf55SyID4ga2lrb3VcIDsKK+atpuWVjyA+IGJ1bW9uXCA7CivlirTli5kgPiByb3VtdVwgOwor5beu55uKID4gc2Fla2lcIDsKK+mAo+aJkyA+IHJlbmRhXCA7CivlhKroibYgPiB5dXVlblwgOwor5bq25bm+ID4gc2hva2lcIDsKK+iKseiMjiA+IGtha2VpXCA7CivnoILkuIogPiBzYWpvdVwgOwor6LuN6K2wID4gZ3VuZ2lcIDsKK+i7ouijnCA+IHRlbnBvXCA7CivlubPmmYIgPiBoZWlqaVwgOwor5YaG55ukID4gZW5iYW5cIDsKK+WBvembuyA+IGdpZGVuXCA7Civnmq7nm7ggPiBoaXNvdVwgOwor5biw5rivID4ga2lrb3VcIDsKK+i/lOatjCA+IGhlbmthXCA7CivliY3luqcgPiB6ZW56YVwgOwor5YWs56efID4ga291c29cIDsKK+eXqei6ryA+IHNvdWt1XCA7CivliIbmnKggPiBidW5naVwgOwor5q2j5ZOhID4gc2VpaW5cIDsKK+WGheeariA+IG5haWhpXCA7CivpgZPlrrYgPiBkb3VrYVwgOwor5qih56+EID4gbW9oYW5cIDsKK+iKveiDniA+IGdhaG91XCA7CivliIDmnrYgPiB0b3VrYVwgOwor6LyJ6I23ID4gc2Fpa2FcIDsKK+earueZrCA+IGhpemVuXCA7CivpgYrlsbEgPiB5dXNhblwgOwor5q2m5ZCNID4gYnVtZWlcIDsKK+WFqOenkSA+IHplbmthXCA7CivliqDlj7cgPiBrYWdvdVwgOwor6IqZ6JOJID4gZnV5b3VcIDsKK+W7g+WutiA+IGhhaWthXCA7CivlhaznpLogPiBrb3VqaVwgOwor5q275YWQID4gc2hpamlcIDsKK+ato+WQpiA+IHNlaWhpXCA7CivlupXmhI8gPiBzb2tvaVwgOwor6Ieq6aaWID4gamlzaHVcIDsKK+i7jeiomCA+IGd1bmtpXCA7CivojZLmt6sgPiBrb3VpblwgOwor5Yqj5YyWID4gcmVra2FcIDsKK+mBoOWkpyA+IGVuZGFpXCA7CivliKXmiLggPiBiZWtrb1wgOwor5q2T5ZacID4ga2Fua2lcIDsKK+WFt+ecvCA+IGd1Z2FuXCA7CivmrKHlrpggPiBqaWthblwgOwor55yp5pqIID4gbWVtYWlcIDsKK+i7jeimjyA+IGd1bmtpXCA7CivmrKHlrZAgPiBqaXNoaVwgOwor5q2m5YuyID4gYnVrdW5cIDsKK+W7tuWRvSA+IGVubWVpXCA7CivliqDli6IgPiBrYXNlaVwgOwor5YWD57SgID4gZ2Vuc29cIDsKK+atpuWLhyA+IGJ1eXV1XCA7Civmrablip8gPiBidWtvdVwgOwor5bu35ZCPID4gdGVpcmlcIDsKK+WGhueSsCA+IGVua2FuXCA7CivlsqnprZogPiBpd2FuYVwgOwor5Yid5omLID4gc2hvdGVcIDsKK+eah+elliA+IGtvdXNvXCA7CivlhKrnvo4gPiB5dXViaVwgOwor5YSS6ImvID4ganVnb25cIDsKK+WEkuiJriA+IGp1Z29uXCA7CivlhZDnq6UgPiBqaWRvdVwgOwor5q2T5ZG8ID4ga2Fua29cIDsKK+WKoOWIpCA+IGthaGFuXCA7Civlip/liKkgPiBrb3VyaVwgOwor6bOz5YewID4gaG91b3VcIDsKK+efpeS6iyA+IGNoaWppXCA7CivpgZPlpK4gPiBkb3VvdVwgOwor6LuN6KGjID4gZ3VuJydpXCA7CivliLbluqYgPiBzZWlkb1wgOwor5q2p5YW1ID4gaG9oZWlcIDsKK+iLseefpSA+IGVpY2hpXCA7CivlgZzpn7MgPiB0ZWlvblwgOwor5byV5L6LID4gaW5yZWlcIDsKK+eXtOipsSA+IGNoaXdhXCA7CivliqDlhqAgPiBrYWthblwgOwor6YCj5bqnID4gcmVuemFcIDsKK+iJpOijhSA+IGdpc291XCA7CivpgaDlnLAgPiBlbmNoaVwgOwor6I+v5aOHID4ga2FkYW5cIDsKK+eZu+enkSA+IHRvdWthXCA7Civnmb3npo0gPiBoYWtrYVwgOwor6YGO5aSnID4ga2FkYWlcIDsKK+iLm+eojiA+IGthemVpXCA7CivpgaDlm6AgPiBlbicnaW5cIDsKK+mBiuWlsyA+IHl1dWpvXCA7CivovJ3nt5ogPiBraXNlblwgOwor5YWl55u4ID4gaXJpYWlcIDsKK+WFjeennyA+IG1lbnNvXCA7CivoiovojI4gPiB6dWlraVwgOwor6I+T5a2QID4ga2FzaGlcIDsKK+W5suaIiCA+IGthbmthXCA7Civnlo7plosgPiBzb2thaVwgOwor5YmN5ammID4gemVucHVcIDsKK+WBj+mglyA+IGhlbnBhXCA7CivpgbfljJYgPiBzZW5nZVwgOwor6JC95LiLID4gcmFra2FcIDsKK+WFt+ePviA+IGd1Z2VuXCA7CivliqDkv7ggPiBrYWhvdVwgOwor5Ya35rCXID4gcmVpa2lcIDsKK+WEkuiAhSA+IGp1c2hhXCA7CivoiJfpgZMgPiBob2RvdVwgOwor5YWI56WWID4gc2Vuem9cIDsKK+iIqui3ryA+IGtvdXJvXCA7CivnmbrnoLQgPiBoYXBwYVwgOwor55Wz6Z+7ID4gam91aW5cIDsKK+ebuOajkiA+IGFpYm91XCA7Civlub3lvq4gPiB5dXViaVwgOwor6Iqz57SAID4gaG91a2lcIDsKK+W7g+WckiA+IGhhaWVuXCA7CivmraPkvqEgPiBzZWlrYVwgOwor6L+R5pmCID4ga2luamlcIDsKK+mtmuiCpSA+IGd5b2hpXCA7Civouo3otbcgPiB5YWtraVwgOwor6auY6YGgID4ga291ZW5cIDsKK+WJjeWkqyA+IHplbnB1XCA7CivoirHntIsgPiBrYW1vblwgOwor5YWD56WWID4gZ2Fuc29cIDsKK+WJsOWToSA+IGpvdWluXCA7CivoirHns7ggPiBrYXNoaVwgOwor55uX5rGXID4gbmVhc2VcIDsKK+WFrOeQhiA+IGtvdXJpXCA7CivmrabkurogPiBidWppblwgOwor6Iqx57KJID4ga2FmdW5cIDsKK+W4sOagoSA+IGtpa291XCA7CivoiJ7ouYggPiBidXRvdVwgOwor5bm+5bqmID4gaWt1ZG9cIDsKK+asoeWbniA+IGppa2FpXCA7CivlubTlv4wgPiBuZW5raVwgOwor6Iie6LiPID4gYnV0b3VcIDsKK+msseiSvCA+IHVzc291XCA7CivoiJ7ouIogPiBidXlvdVwgOwor5YaF54KOID4gbmFpZW5cIDsKK+i8quemjSA+IHJpbmthXCA7CivliJHlvpIgPiBrZWl0b1wgOwor5bm05b6MID4gbmVuZ29cIDsKK+mAo+WtkCA+IHJlbmppXCA7Civnm7jmnb8gPiBhaWJhblwgOwor5YmN5aC0ID4gemVuYmFcIDsKK+eUsOm6qSA+IGRlbmJ1XCA7Civlh7nmiYAgPiBvdXNob1wgOwor5YG96YCgID4gZ2l6b3VcIDsKK+W4sOadpSA+IGtpcmFpXCA7Civoi6bnlYwgPiBrdWdhaVwgOwor5YaN5ryUID4gc2FpZW5cIDsKK+W4sOadkSA+IGtpc29uXCA7CivluLjmmYIgPiBqb3VqaVwgOwor5bu25LyaID4gZW5rYWlcIDsKK+aso+WWnCA+IGtpbmtpXCA7CivpgoTku5ggPiBrYW5wdVwgOwor6YGL5Za2ID4gdW4nJ2VpXCA7Civoj5zlnJIgPiBzYWllblwgOwor5bm05bqmID4gbmVuZG9cIDsKK+mAruWknCA+IHRhaXlhXCA7CivpgIDluqcgPiB0YWl6YVwgOwor5Yip5a6zID4gcmlnYWlcIDsKK+iJseiLpiA+IGthbmt1XCA7CivmrKHlloQgPiBqaXplblwgOwor5Yip5a2QID4gcmlzaGlcIDsKK+iNt+aLhSA+IGthdGFuXCA7CivliKXlrrYgPiBiZWtrZVwgOwor6YG65L2cID4gaXNha3VcIDsKK+iNieahiCA+IHNvdWFuXCA7CivojZLmnKggPiBhcmFraVwgOwor5bKp6ZaTID4gaXdhbWFcIDsKK+W6reWckiA+IHRlaWVuXCA7Civpr6jms6IgPiBnZWloYVwgOwor5bm05beuID4gbmVuc2FcIDsKK+mvqOayuSA+IGdlaXl1XCA7CivoubbotbcgPiBrZWtraVwgOwor5YaG5rqAID4gZW5tYW5cIDsKK+iKseepgiA+IGthc3VpXCA7CivovrLmnJ8gPiBub3VraVwgOwor5Yik5a2QID4gaGFua29cIDsKK+iPr+WOsyA+IGtlZ29uXCA7CivpgaDlh7ogPiB0b29kZVwgOwor6YGL5ZG9ID4gdW5tZWlcIDsKK+WFteeBqyA+IGhlaWthXCA7Civnm6Pmn7sgPiBrYW5zYVwgOwor6I+v5Y2XID4ga2FuYW5cIDsKK+mBk+WMliA+IGRvdWtlXCA7CivmrYzku5kgPiBrYXNlblwgOwor6Lui576pID4gdGVuZ2lcIDsKK+asoeWPtyA+IGppZ291XCA7CivmrYzkurogPiBrYWppblwgOwor6auY6LK0ID4ga291a2lcIDsKK+mBjuWNiiA+IGthaGFuXCA7CivliIbluIMgPiBidW5wdVwgOwor55u45pKyID4gc3Vtb3VcIDsKK+iJtuiBniA+IGVuYnVuXCA7Civluo/lpY8gPiBqb3NvdVwgOwor6L+R5omAID4ga2luam9cIDsKK+WHoeaJkyA+IGJvbmRhXCA7Civlh7nlvaIgPiBvdWtlaVwgOwor6IiI6LW3ID4ga291a2lcIDsKK+iIjuiyuyA+IHNoYWhpXCA7CivpgY7li6QgPiBrYWtpblwgOwor6YCa5aScID4gdHN1eWFcIDsKK+mBjuWKtCA+IGthcm91XCA7Civoh6rpgrggPiBqaXRlaVwgOwor6YGL5YuiID4gdW5zZWlcIDsKK+W3qOazoiA+IGt5b2hhXCA7CivpgYvli5UgPiB1bmRvdVwgOwor6L6e5p+EID4gamloZWlcIDsKK+mBjuWJsCA+IGtham91XCA7CivnlZ3plpMgPiB1bmVtYVwgOwor6Ieq6YG4ID4gamlzZW5cIDsKK+i+nuaelyA+IGppcmluXCA7Civnm5vmnJ8gPiBzZWlraVwgOwor5bmz5a62ID4gaGVpa2VcIDsKK+mAo+WdkCA+IHJlbnphXCA7CivpgLjlk4EgPiBpcHBpblwgOwor6YGT5YW3ID4gZG91Z3VcIDsKK+mBjuWIhiA+IGthYnVuXCA7CivlubPlrokgPiBoZWlhblwgOwor5bm05a2jID4gbmVua2lcIDsKK+eahueEoSA+IGthaW11XCA7Civlh6HmhJogPiBib25ndVwgOwor5qmf5qeLID4ga2lrb3VcIDsKK+WIhuWykCA+IGJ1bmtpXCA7CivliY3lj6QgPiB6ZW5rb1wgOwor55S76aSFID4gZ2FiZWlcIDsKK+WFrOa8lCA+IGtvdWVuXCA7Civovp7mm7ggPiBqaXNob1wgOwor6YCg5ZySID4gem91ZW5cIDsKK+WGrOacnyA+IHRvdWtpXCA7Civpq5joqrwgPiBrb3VnaVwgOwor5Ymw5L2ZID4gam91eW9cIDsKK+W6tuWLmSA+IHNob211XCA7CivnlLvpoqggPiBnYWZ1dVwgOwor55ub5pmCID4gc2VpamlcIDsKK+WEgOevhCA+IGdpaGFuXCA7CivoirPnnIkgPiBob3ViaVwgOwor5Yid5aScID4gc2hveWFcIDsKK+WCjeimiyA+IG9rYW1pXCA7CivmqLnmtrIgPiBqdWVraVwgOwor5Yid5aSPID4gc2hva2FcIDsKK+W4jOacmyA+IGtpYm91XCA7Civlt6jmrakgPiBreW9ob1wgOwor5bm85aWzID4geW91am9cIDsKK+eUu+mhjCA+IGdhZGFpXCA7CivliIblrrYgPiBidW5rZVwgOwor5biM5pu4ID4ga2lzaG9cIDsKK+W4sOaKlSA+IGtpdG91XCA7CivlhqTmnokgPiBlbicnb3VcIDsKK+aouea1tyA+IGp1a2FpXCA7Civlub7lpJwgPiBpa3V5b1wgOwor5bm+5aSaID4gaWt1dGFcIDsKK+asoeWFhCA+IGppa2VpXCA7CivmrKHlhYMgPiBqaWdlblwgOwor6L+35a2QID4gbWFpZ29cIDsKK+iHqui7oiA+IGppdGVuXCA7CivmqZ/morAgPiBraWthaVwgOwor5bqn5Y+zID4gemF5dXVcIDsKK+W5u+WkoiA+IGdlbm11XCA7Civlu4nkvqEgPiByZW5rYVwgOwor5YWI54i2ID4gc2VucHVcIDsKK+mBoeS4iiA+IHNvam91XCA7CivmqZ/moLkgPiBraWtvblwgOwor5YG96KqTID4gZ2lzZWlcIDsKK+iIh+irliA+IHlvcm9uXCA7CivpgKDllrYgPiB6b3VlaVwgOwor5Yal5pqXID4gbWVpYW5cIDsKK+iIl+ijhSA+IGhvc291XCA7CivnlbDpg7cgPiBpa3lvdVwgOwor55S76Z2iID4gZ2FtZW5cIDsKK+WAjemfsyA+IGJhaW9uXCA7Civmo4vpoqggPiBraWZ1dVwgOwor55m654GrID4gaGFra2FcIDsKK+WBveioiCA+IGdpa2VpXCA7Civnm7jmhJsgPiBzb3VhaVwgOwor5YG96KiAID4gZ2lnZW5cIDsKK+WFieeElCA+IGtvdWVuXCA7Civlgbboqp4gPiBndXVnb1wgOwor5qmf5p2QID4ga2l6YWlcIDsKK+asoeS+vyA+IGppYmluXCA7CivpgKPlkbwgPiByZW5rb1wgOwor5bem5qeYID4gc2F5b3VcIDsKK+WBtuipoCA+IGd1dWVpXCA7CivprZTnpZ4gPiBtYWppblwgOwor5buK5LiLID4gcm91a2FcIDsKK+mpn+mbqCA+IHNodXV1XCA7Civnm7LmhJsgPiBtb3VhaVwgOwor6Iqx55O2ID4ga2FiaW5cIDsKK+WFieeCjiA+IGtvdWVuXCA7Civlho3moYggPiBzYWlhblwgOwor5YSA56S8ID4gZ2lyZWlcIDsKK+iHquizmyA+IGppc2FuXCA7CivpgKPlj6UgPiByZW5rdVwgOwor6Lev6aCtID4gcm90b3VcIDsKK+asoeS8miA+IGppa2FpXCA7Civov7flpKIgPiBtZWltdVwgOwor6Iux5rOVID4gZWlob3VcIDsKK+iHquiyqSA+IGppaGFuXCA7CivmqZ/mmbogPiBraWNoaVwgOwor6Ium5riLID4ga3VqdXVcIDsKK+WBveijhSA+IGdpc291XCA7Civnm7jlv5wgPiBzb3VvdVwgOwor5qyh5LujID4gamlkYWlcIDsKK+i7jee0gCA+IGd1bmtpXCA7CivlsL7psK0gPiBvYmlyZVwgOwor5bir5oGpID4gc2hpb25cIDsKK+WFrOatpiA+IGtvdWJ1XCA7Civou6Lnp7sgPiB0ZW4nJ2lcIDsKK+i3r+mdoiA+IHJvbWVuXCA7CivlsqHovrogPiBva2FiZVwgOwor5YGJ6LmfID4gaXNla2lcIDsKK+i7ouenkSA+IHRlbmthXCA7Civoh4Dpg6ggPiBkZW5idVwgOwor5YWa5rS+ID4gdG91aGFcIDsKK+mBi+S4iiA+IHVuam91XCA7Civmpa3oi6YgPiBnb3VrdVwgOwor5bGk6ZuyID4gc291dW5cIDsKK+W6p+WDjyA+IHphem91XCA7CivluLfluZUgPiBpYmFrdVwgOwor6YCg5YyWID4gem91a2FcIDsKK+W4t+W4syA+IGljaG91XCA7Civoh6roroMgPiBqaXNhblwgOwor5Yip5Y+jID4gcmlrb3VcIDsKK+apn+aVjyA+IGtpYmluXCA7Civoh6roraYgPiBqaWtlaVwgOwor5YGJ6LehID4gaXNla2lcIDsKK+WFpeatryA+IGlyZWJhXCA7CivlurbkuosgPiBzaG9qaVwgOwor6a2U552hID4gbWFzdWlcIDsKK+aoquatuyA+IG91c2hpXCA7Civou4znr4QgPiBraWhhblwgOwor5YaG5pysID4gZW5wb25cIDsKK+WEkueUnyA+IGp1c2VpXCA7Civlt6Hmn7sgPiBqdW5zYVwgOwor5YaN5pigID4gc2FpZWlcIDsKK+W6teS4uyA+IGFuc2h1XCA7Civoh6roqo0gPiBqaW5pblwgOwor5YKZ6I2SID4gYmlrb3VcIDsKK+W4sOW4hiA+IGtpaGFuXCA7CivoirHniYcgPiBrYWhlblwgOwor6ay856WeID4ga2lqaW5cIDsKK+iGs+mDqCA+IHplbmJ1XCA7CivovLjmtrIgPiB5dWVraVwgOwor55SY6ZyyID4ga2Fucm9cIDsKK+aqgOW+kiA+IGRhbnRvXCA7CivliKnliIMgPiByaWppblwgOwor5Yip5YiAID4gcml0b3VcIDsKK+eVsOixoSA+IGlzaG91XCA7CivojILmnpcgPiBtb3JpblwgOwor5L+d6aSKID4gaG95b3VcIDsKK+WFieazoiA+IGtvdWhhXCA7Civot53pm6IgPiBreW9yaVwgOwor5bem5pa5ID4gc2Fob3VcIDsKK+W6p+S5lyA+IHpham91XCA7CivojYnlurUgPiBzb3VhblwgOwor5qi55p6XID4ganVyaW5cIDsKK+mtlOeVjCA+IG1ha2FpXCA7CivlubPlkowgPiBoZWl3YVwgOwor55yB5a2XID4gc2VpamlcIDsKK+WFt+aciSA+IGd1eXV1XCA7CivpsKXlr6EgPiBrYW5rYVwgOwor5YWs5qGIID4ga291YW5cIDsKK+iHquijvSA+IGppc2VpXCA7Civlh6blpbMgPiBzaG9qb1wgOwor5bid5bqnID4gdGVpemFcIDsKK+WIkeWQjyA+IGtlaXJpXCA7CivpgIHlj5cgPiBzb3VqdVwgOwor5beu5pCNID4gc2Fzb25cIDsKK+aooeanmCA+IG1veW91XCA7CivmqZ/miY0gPiBraXNhaVwgOwor55Wz6KqeID4gam91Z29cIDsKK+WHoeWkqyA+IGJvbnB1XCA7Civlr7/pvaIgPiBqdXJlaVwgOwor5YWD5rCXID4gZ2Vua2lcIDsKK+WIu+S4iyA+IGtva2thXCA7CivpgIDljJYgPiB0YWlrYVwgOwor5YeG5bCJID4ganVuJydpXCA7Civlhrblt6UgPiB5YWtvdVwgOwor5bir5a62ID4gc2hpa2FcIDsKK+aoquafhCA+IG91aGVpXCA7CivlhbjmlYUgPiB0ZW5rb1wgOwor6Imy55uuID4gaXJvbWVcIDsKK+WIqeS+vyA+IHJpYmVuXCA7CivlhazmmocgPiBrb3VrYVwgOwor5YKZ6ICDID4gYmlrb3VcIDsKK+WIpeWAiyA+IGJla2tvXCA7CivnlLvpgZMgPiBnYWRvdVwgOwor6Lev6YqAID4gcm9naW5cIDsKK+W5vOWFkCA+IHlvdWppXCA7CivovrLlrrYgPiBub3VrYVwgOwor6I2J5bGlID4gem91cmlcIDsKK+S/nemZuiA+IGhva2VuXCA7CivlubTliKkgPiBuZW5yaVwgOwor6Iux5pu4ID4gZWlzaG9cIDsKK+WFreaXpSA+IG11aWthXCA7CivliIbljLogPiBidW5rdVwgOwor5YWr5pelID4geW91a2FcIDsKK+WIhuWMliA+IGJ1bmthXCA7CivlhazmlrkgPiBrdWJvdVwgOwor5qiq5pq0ID4gb3Vib3VcIDsKK+WGpeW6nCA+IG1laWZ1XCA7CivliJHlhbcgPiBrZWlndVwgOwor5ben5oqAID4ga291Z2lcIDsKK+iLpuadryA+IGt1aGFpXCA7Civoi7HmmI4gPiBlaW1laVwgOwor5qqA5a62ID4gZGFua2FcIDsKK+aooeacrCA+IG1vaG9uXCA7CivlhaXml6UgPiBpcmloaVwgOwor6Ieq6JamID4gamlzZW5cIDsKK+WwvumVtyA+IG9uYWdhXCA7CivovrLlqaYgPiBub3VmdVwgOwor5bCP6ayiID4ga29iaW5cIDsKK+aji+mBkyA+IGtpZG91XCA7CivliKTkuosgPiBoYW5qaVwgOwor5YiG5YipID4gYnVucmlcIDsKK+iLseaWrSA+IGVpZGFuXCA7CivlgoXogrIgPiBmdWlrdVwgOwor5qiq5patID4gb3VkYW5cIDsKK+iLseaWhyA+IGVpYnVuXCA7Civlh6HlmaggPiBib25raVwgOwor6Iux5pWwID4gZWlzdXVcIDsKK+aoquaWhyA+IG91YnVuXCA7CivlhrTlr5IgPiBnb2thblwgOwor6YCU5LiKID4gdG9qb3VcIDsKK+Wxsei7iiA+IGRhc2hpXCA7CivluIPlt74gPiBmdWtpblwgOwor55u45aC0ID4gc291YmFcIDsKK+ebm+WutCA+IHNlaWVuXCA7CivpqJLpn7MgPiBzb3VvblwgOwor55qG5peiID4ga2Fpa2lcIDsKK+WFmuaYryA+IHRvdXplXCA7CivovrLlpbQgPiBub3Vkb1wgOwor55So6YCUID4geW91dG9cIDsKK+WFieaghCA+IGtvdWVpXCA7CivojLblsYsgPiBjaGF5YVwgOwor6Iqz5rCXID4gaG91a2lcIDsKK+i8v+acmyA+IHlvYm91XCA7CivovrLlpKsgPiBub3VmdVwgOwor6Ieq6JGXID4gamljaG9cIDsKK+WFkOabuSA+IGppc291XCA7Civlh7rliY0gPiBkZW1hZVwgOwor5bmz5L6hID4gaGVpa2FcIDsKK+Wwj+mmrCA+IGtvdW1hXCA7CivmqZ/lt6cgPiBraWtvdVwgOwor5YiR5L2ZID4ga2VpeW9cIDsKK+iNt+WPsCA+IG5pZGFpXCA7CivnlJjphaIgPiBhbWF6dVwgOwor5Yas5a2jID4gdG91a2lcIDsKK+iLl+acqCA+IG5hZWdpXCA7CivlhbXmiIggPiBoZWlrYVwgOwor5bm55LqLID4ga2FuamlcIDsKK+mnu+mmrCA+IGthbmJhXCA7CivnlLvos5sgPiBnYXNhblwgOwor55m95peXID4gaGFra2lcIDsKK+mAgeS7mCA+IHNvdWZ1XCA7CivlhoXlv5wgPiBuYWlvdVwgOwor5YeN5ZyfID4gdG91ZG9cIDsKK+W4r+WcsCA+IG9iaWppXCA7Civlho3luqYgPiBzYWlkb1wgOwor6L665ZyfID4gaGVuZG9cIDsKK+WwvumMoCA+IGJpam91XCA7CivliJHkuosgPiBrZWlqaVwgOwor5YaG5by+ID4gZW5kYW5cIDsKK+ebruWeoiA+IG1lYWthXCA7CivnnLzkuIsgPiBnYW5rYVwgOwor5YaN5biwID4gc2Fpa2lcIDsKK+WGt+WkjyA+IHJlaWthXCA7Civov5Hlj6QgPiBraW5rb1wgOwor5bex5bezID4ga2lzaGlcIDsKK+i7vea1riA+IGtlaWZ1XCA7CivojZLlnJ8gPiBrb3Vkb1wgOwor6Iub5paCID4ga2FyZW5cIDsKK+i7oueCiSA+IHRlbnJvXCA7CivlhajmiLggPiB6ZW5rb1wgOwor6Iub5pS/ID4ga2FzZWlcIDsKK+eUu+iumiA+IGdhc2FuXCA7CivnlLvoroMgPiBnYXNhblwgOwor6L6y5ZySID4gbm91ZW5cIDsKK+W3u+WwviA+IGthbmJpXCA7Civnm5vlpI8gPiBzZWlrYVwgOwor5L2z6bqXID4ga2FyZWlcIDsKK+iJtueEtiA+IGVuemVuXCA7Civoi7HmiY0gPiBlaXNhaVwgOwor6IWw6YOoID4geW91YnVcIDsKK+i7veayuSA+IGtlaXl1XCA7CivluYfliqkgPiBob3Vqb1wgOwor5YaF5biRID4gbmFpZG9cIDsKK+eUu+irhyA+IGdhZGFuXCA7CivlhpnlrZcgPiBzaGFqaVwgOwor5L6b6aSKID4ga3V5b3VcIDsKK+WAkuiqniA+IHRvdWdvXCA7Civnmbrmj64gPiBoYWtraVwgOwor6ay854GrID4gb25pYmlcIDsKK+mtmuayuSA+IGd5b3l1XCA7CivluJ3lnJ8gPiB0ZWlkb1wgOwor5qmf5auMID4ga2lnZW5cIDsKK+eUn+i1tyA+IHNlaWtpXCA7CivoirHmoqggPiBrYXJpblwgOwor5YWM5o+bID4gZGFrYW5cIDsKK+WIgOS4iyA+IHRvdWthXCA7CivprZTms5UgPiBtYWhvdVwgOwor6Ium5oimID4ga3VzZW5cIDsKK+WCt+eXjSA+IHNob3VpXCA7CivlgJnoo5wgPiBrb3Vob1wgOwor5bi45YuZID4gam91bXVcIDsKK+W4sOWPgiA+IGtpc2FuXCA7Civlt6blsrggPiBzYWdhblwgOwor5YaG5bGFID4gbWFkb2lcIDsKK+earuWxpCA+IGhpc291XCA7CivmqLnlubkgPiBqdWthblwgOwor6Ium5oWuID4ga3VyeW9cIDsKK+mmrOm9oiA+IGJhcmVpXCA7CivkvZnpvaIgPiB5b3JlaVwgOwor6Lu95qmfID4ga2Vpa2lcIDsKK+eXlOeYuyA+IGppcm91XCA7Civlt6jlr4wgPiBreW9mdVwgOwor5YaN5auBID4gc2Fpa2FcIDsKK+WGheWutCA+IG5haWVuXCA7Civoh6rnvbIgPiBqaXNob1wgOwor5YWs5bqrID4ga291a29cIDsKK+WCmeegsiA+IGJpaG91XCA7Civlhazluo8gPiBrb3Vqb1wgOwor6Ium5oOFID4ga3Vqb3VcIDsKK+iMtuWckiA+IGNoYWVuXCA7Civoi6bmgrYgPiBrdW1vblwgOwor6Ium5oKpID4ga3Vub3VcIDsKK+eVsOiHrSA+IGlzaHV1XCA7CivnlKjoqp4gPiB5b3Vnb1wgOwor5bem5a6YID4gc2FrYW5cIDsKK+ankOaouSA+IGthaWp1XCA7CivlhpflpJogPiBqb3V0YVwgOwor6Luf5rS+ID4gbmFucGFcIDsKK+WGpeWcnyA+IG1laWRvXCA7CivlhazluIMgPiBrb3VmdVwgOwor55Ww6IW5ID4gaWZ1a3VcIDsKK+WFiOaJiyA+IHNlbnRlXCA7Civlhazlt64gPiBrb3VzYVwgOwor6Iy25ZmoID4gY2hha2lcIDsKK+iHk+iFkSA+IHpvdWZ1XCA7Civov5Hkvo0gPiBraW5qaVwgOwor6ayx5rueID4gdXR0YWlcIDsKK+ahgummrCA+IGtlaW1hXCA7Civov5HkvLwgPiBraW5qaVwgOwor6L+U5LuYID4gaGVucHVcIDsKK+mrmOelliA+IGtvdXNvXCA7CivmooXphaIgPiB1bWV6dVwgOwor6L6y5YuZID4gbm91bXVcIDsKK+W4uOWCmSA+IGpvdWJpXCA7Civoi6blvbkgPiBrdWVraVwgOwor5biD5ZujID4gZnV0b25cIDsKK+i/lOS6iyA+IGhlbmppXCA7CivoiIznpo0gPiB6ZWtrYVwgOwor5YW15a62ID4gaGVpa2FcIDsKK+i/keS6iyA+IGtpbmppXCA7CivltZDmsJcgPiByYW5raVwgOwor6a6u5bqmID4gc2VuZG9cIDsKK+iLm+aApyA+IGthc2VpXCA7CivmorXoqp4gPiBib25nb1wgOwor6aiw6LK0ID4gdG91a2lcIDsKK+WxpeihjCA+IHJpa291XCA7CivnnIzkuIsgPiBrZW5rYVwgOwor5YaF5aWlID4gbmFpb3VcIDsKK+iFlei8qiA+IHVkZXdhXCA7Civotbfpm7sgPiBraWRlblwgOwor5bir5YSSID4gc2hpanVcIDsKK+Wutum0qCA+IGFoaXJ1XCA7Civlr53poZQgPiBuZWdhb1wgOwor6L6y5YW3ID4gbm91Z3VcIDsKK+W4guWWtiA+IHNoaWVpXCA7CivlhoblorMgPiBlbnB1blwgOwor6Imy5rCXID4gaXJva2VcIDsKK+W3peWkqyA+IGtvdWZ1XCA7Civovp7ljrsgPiBqaWt5b1wgOwor6Lui5qmfID4gdGVua2lcIDsKK+msvOatryA+IG9uaWJhXCA7CivlsIHpjpYgPiBmdXVzYVwgOwor6Iux5bGvID4gZWl0b25cIDsKK+WFrOWuiSA+IGtvdWFuXCA7CivlsJbpg6ggPiBzZW5idVwgOwor6L6t5YW4ID4gaml0ZW5cIDsKK+W4uOS6iyA+IGpvdWppXCA7CivlhajlrrYgPiB6ZW5rYVwgOwor55u45Ly8ID4gc291amlcIDsKK+WBiee4viA+IGlzZWtpXCA7Civlt6XloLQgPiBrb3ViYVwgOwor55m65biDID4gaGFwcHVcIDsKK+W4sOS7uyA+IGtpbmluXCA7CivlhYTlvowgPiBhbmlnb1wgOwor55u45LqSID4gc291Z29cIDsKK+WAtuiAhSA+IGt1c2hhXCA7Civkv5rorKEgPiByaXlvdVwgOwor5YWJ5bqmID4ga291ZG9cIDsKK+mms+mnhiA+IGNoaWt1XCA7Civkv5roq7ogPiByaWdlblwgOwor5YWI5bqmID4gc2VuZG9cIDsKK+S/juixhiA+IHNvdG91XCA7Civlhpflk6EgPiBqb3VpblwgOwor6LuN5q2MID4gZ3Vua2FcIDsKK+eUn+idiyA+IGtpcm91XCA7CivlhYvlt7EgPiBrb2traVwgOwor5YaF5ZugID4gbmFpaW5cIDsKK+i3m+ihjCA+IGhha291XCA7Civnm7LkuoAgPiBtb3VraVwgOwor5bir5LqLID4gc2hpamlcIDsKK+iLpuWvkiA+IGt1a2FuXCA7Civovp7lhbggPiBqaXRlblwgOwor55ar55eiID4gZWtpcmlcIDsKK+ebm+WEgCA+IHNlaWdpXCA7CivluILljLogPiBzaGlrdVwgOwor6aas6aaWID4gYmFzaHVcIDsKK+S/muiogCA+IHJpZ2VuXCA7CivkvZnpppkgPiB5b2tvdVwgOwor55m75bGxID4gdG96YW5cIDsKK+eWteeRlSA+IHNoaWthXCA7Civou43mqZ8gPiBndW5raVwgOwor6Iux5ae/ID4gZWlzaGlcIDsKK+WGl+WPpSA+IGpvdWt1XCA7CivovrLkuosgPiBub3VqaVwgOwor5qip5aiBID4ga2VuJydpXCA7Civnm67kuIsgPiBtb2trYVwgOwor5bau5bKoID4ga2Vuc29cIDsKK+alreeBqyA+IGdvdWthXCA7Civoh6rnpL4gPiBqaXNoYVwgOwor55aj55eUID4gaWJvamlcIDsKK+S9memiqCA+IHlvZnV1XCA7CivmqZ/li5UgPiBraWRvdVwgOwor5L2Z6aGeID4geW9ydWlcIDsKK+WFkOWtqyA+IGppc29uXCA7Civnm6PkuosgPiBrYW5qaVwgOwor6aas6aCtID4gYmF0b3VcIDsKK+WAuee0oCA+IGtlbnNvXCA7CivnlJjol7sgPiBhbWFtb1wgOwor55qH5aaDID4ga291aGlcIDsKK+WwvuihjCA+IGJpa291XCA7CivnmoflpbMgPiBrb3Vqb1wgOwor5a626aKoID4ga2FmdXVcIDsKK+W3peWToSA+IGtvdWluXCA7CivlhbXlmaggPiBoZWlraVwgOwor6Im25pu4ID4gZW5zaG9cIDsKK+WEquW8pyA+IHl1dWtvXCA7CivlhazlnJIgPiBrb3VlblwgOwor6L6e5Lu7ID4gamluaW5cIDsKK+ebm+S6iyA+IHNlaWppXCA7Civovp7ku6QgPiBqaXJlaVwgOwor5qOJ6IqxID4gbWVua2FcIDsKK+apn+WGhSA+IGtpbmFpXCA7Civlhazlm7MgPiBrb3V6dVwgOwor5YW15Za2ID4gaGVpZWlcIDsKK+eUsOiIjiA+IGluYWthXCA7Civlt6blj7MgPiBzYXl1dVwgOwor5qmf5YWIID4ga2lzZW5cIDsKK+WFqOWcnyA+IHplbmRvXCA7Civlhajlm7MgPiB6ZW56dVwgOwor6IOv6ZaTID4ga29rYW5cIDsKK+eVsOensCA+IGlzaG91XCA7CivnlLvogZYgPiBnYXNlaVwgOwor5YWs5ZmoID4ga291a2lcIDsKK+S9jumfsyA+IHRlaW9uXCA7Civoh6rnnIEgPiBqaXNlaVwgOwor5biM5LujID4ga2lkYWlcIDsKK+i+nuS4liA+IGppc2VpXCA7CivlhYjlqaYgPiBzZW5wdVwgOwor6LuM5p2hID4ga2lqb3VcIDsKK+Wwj+ixhiA+IGF6dWtpXCA7CivlhbXlk6EgPiBoZWlpblwgOwor5qGI6YWNID4gYW5iYWlcIDsKK+WutumbuyA+IGthZGVuXCA7CivlhoXli5kgPiBuYWltdVwgOwor5bCK6LK0ID4gc29ua2lcIDsKK+W4guS+oSA+IHNoaWthXCA7Civlt67liIYgPiBzYWJ1blwgOwor5YWs5Za2ID4ga291ZWlcIDsKK+WGheWKqSA+IG5haWpvXCA7Civnk6bop6MgPiBnYWthaVwgOwor5Yag5L2NID4ga2FuJydpXCA7Civoi7HlmbggPiBlaXRvblwgOwor5qKF6KaLID4gdW1lbWlcIDsKK+W3peWLmSA+IGtvdW11XCA7CivmqKHlnosgPiBtb2tlaVwgOwor5biM5LiWID4ga2lzZWlcIDsKK+aghOmkiiA+IGVpeW91XCA7Civkv5jomZwgPiBmdXJ5b1wgOwor6a2U5omLID4gbWFzaHVcIDsKK+eUn+iKsSA+IHNlaWthXCA7Civlgb3niYggPiBnaWhhblwgOwor5L2O6ZuyID4gdGVpdW5cIDsKK+WFiOWmoyA+IHNlbnBpXCA7CivluIPku6QgPiBmdXJlaVwgOwor5beo5YipID4ga3lvcmlcIDsKK+eZveWgiiA+IGhha3VhXCA7Civmo4vogZYgPiBraXNlaVwgOwor5YWI5aSrID4gemVucHVcIDsKK+WFvOWLmSA+IGtlbm11XCA7CivmqZ/kvZMgPiBraXRhaVwgOwor55SY6IumID4ga2Fua3VcIDsKK+mmmemcsiA+IGtvdXJvXCA7Civpq5jngokgPiBrb3Vyb1wgOwor55m75Z+OID4gdG9qb3VcIDsKK+i7jeaXlyA+IGd1bmtpXCA7CivkvbPphrggPiBrYWpvdVwgOwor6Lev6IKpID4gcm9rZW5cIDsKK+apn+S8miA+IGtpa2FpXCA7CivkvLzpoZQgPiBuaWdhb1wgOwor55Sy576FID4ga291cmFcIDsKK+WutumWgCA+IGthbW9uXCA7Civoh6rnlLEgPiBqaXl1dVwgOwor5qOE6IOMID4ga2loYWlcIDsKK+S+v+ihoyA+IGJlbicnaVwgOwor5YaG5YWJID4gZW5rb3VcIDsKK+iHqueUqCA+IGppeW91XCA7Civoh6rnlJ8gPiBqaXNlaVwgOwor5L2/6YCUID4gc2hpdG9cIDsKK+i7veW+riA+IGtlaWJpXCA7CivlhbXljKogPiBoZWloaVwgOwor5L2z6YWSID4ga2FzaHVcIDsKK+W3peWFtyA+IGtvdWd1XCA7CivnmbvlnYIgPiB0b2hhblwgOwor5a+M6YmxID4gZnVrb3VcIDsKK+WFrOWQjyA+IGtvdXJpXCA7CivlhoXlhIAgPiBuYWlnaVwgOwor5L6u6KiAID4gYnVnZW5cIDsKK+mojuihjCA+IGtpa291XCA7CivovL/lnLAgPiB5b2NoaVwgOwor5bu244CFID4gZW4nJ2VuXCA7Civmo4TogIEgPiBraXJvdVwgOwor6Iq45a2QID4gZ2Vpa29cIDsKK+iDjOmboiA+IGhhaXJpXCA7Civlt6blgr4gPiBzYWtlaVwgOwor5L+d6I+MID4gaG9raW5cIDsKK+apn+S4iiA+IGtpam91XCA7CivlhazljbAgPiBrb3VpblwgOwor6LyU5bCOID4gaG9kb3VcIDsKK+WFq+WNpiA+IGhha2tlXCA7Civou73luqYgPiBrZWlkb1wgOwor5be05Lq6ID4gaGFqaW5cIDsKK+eUu+e0mSA+IGdhc2hpXCA7Civoi7HlkI0gPiBlaW1laVwgOwor6IW56IWUID4gZnVra29cIDsKK+WFrOWLnyA+IGtvdWJvXCA7Civlhazli5kgPiBrb3VtdVwgOwor55Wq55uuID4gYmFubWVcIDsKK+WFmuWToSA+IHRvdWluXCA7CivlhoXkvo0gPiBuYWlqaVwgOwor5YW85YKZID4ga2VuYmlcIDsKK+msvOaJjSA+IGtpc2FpXCA7Civlr4Tph5EgPiBraWtpblwgOwor6LWw6LevID4gc291cm9cIDsKK+mtlOW8viA+IG1hZGFuXCA7CivlsqHnm64gPiBva2FtZVwgOwor5a6Y6ZyAID4ga2FuanVcIDsKK+WEgOW9oiA+IGdpa2VpXCA7CivlhKrlqYkgPiB5dXVlblwgOwor55Ge6ZuyID4genVpdW5cIDsKK+mrmOa4qSA+IGtvdW9uXCA7CivlsL7oirEgPiBvYmFuYVwgOwor5a++6KmxID4gdGFpd2FcIDsKK+S8nemmrCA+IHRlbm1hXCA7CivovY3lj4kgPiB0ZXNzYVwgOwor5L6d6KiXID4gaXRha3VcIDsKK+iEs+ijoSA+IG5vdXJpXCA7CivmqKnljJYgPiBnb25nZVwgOwor6ISz6KOPID4gbm91cmlcIDsKK+iLpuWQnyA+IGt1Z2luXCA7CivoirjlppMgPiBnZWlnaVwgOwor6Lev57eaID4gcm9zZW5cIDsKK+i1pOi6qyA+IGFrYW1pXCA7CivlhbXlgpkgPiBoZWliaVwgOwor5YaF5LqLID4gbmFpamlcIDsKK+eUmOe+jiA+IGthbmJpXCA7Civlr4zovrIgPiBmdW5vdVwgOwor5L+u576FID4gc2h1cmFcIDsKK+iKpeWtkCA+IGtlc2hpXCA7CivnlpHngrkgPiBnaXRlblwgOwor5bel5LqLID4ga291amlcIDsKK+aoveS/jiA+IHNvbnNvXCA7Civkvo3orJsgPiBqaWtvdVwgOwor6LuN5omLID4gZ3VudGVcIDsKK+aoqeWIqSA+IGtlbnJpXCA7CivkvJrpo7IgPiBrYWlpblwgOwor5YW45L6NID4gdGVuamlcIDsKK+WFrOWEgCA+IGtvdWdpXCA7CivlronpnZkgPiBhbnNlaVwgOwor6aeF6LevID4gZWtpcm9cIDsKK+WEkuWumCA+IGp1a2FuXCA7CivlhaXlhoUgPiBqdWRhaVwgOwor5YWa5YuZID4gdG91bXVcIDsKK+WFt+S9kyA+IGd1dGFpXCA7Civnmbrlj6UgPiBob2trdVwgOwor5L216LW3ID4gaGVpa2lcIDsKK+msseaGpCA+IHVwcHVuXCA7Civoi6blirQgPiBrdXJvdVwgOwor5L2z6LajID4ga2FzaHVcIDsKK+anmOWtkCA+IHlvdXN1XCA7Civkv53ogrIgPiBob2lrdVwgOwor55S756i/ID4gZ2Frb3VcIDsKK+WxseeqqSA+IHNhbmthXCA7CivkvovoqbEgPiByZWl3YVwgOwor5YWF5ZOhID4ganV1aW5cIDsKK+iKseWjhyA+IGthZGFuXCA7CivlhajlgpkgPiB6ZW5iaVwgOwor5YWa5YipID4gdG91cmlcIDsKK+i4j+egtCA+IHRvdWhhXCA7CivlraTpq5ggPiBrb2tvdVwgOwor6Ieq54KKID4gamlzdWlcIDsKK+alreaenCA+IGdvdWthXCA7CivkvbPos5MgPiBrYWhpblwgOwor55Sf57O4ID4ga2lpdG9cIDsKK+WFteS6iyA+IGhlaWppXCA7CivlhYjlj6QgPiBzZW5rb1wgOwor5qih5YaZID4gbW9zaGFcIDsKK+WDp+W+kiA+IHNvdXRvXCA7Civog4Ppj6EgPiBpa3lvdVwgOwor6auY5q2MID4ga291a2FcIDsKK+S+i+imjyA+IHJlaWtpXCA7Civpq5jmrKEgPiBrb3VqaVwgOwor55aO5ryPID4gc29yb3VcIDsKK+WuiemWkSA+IGFua2FuXCA7CivmqLnkuIogPiBqdWpvdVwgOwor5L2Z6LypID4geW9oYWlcIDsKK+aiheiKsSA+IGJhaWthXCA7CivlhIDlrrkgPiBnaXlvdVwgOwor55Sw56efID4gZGVuc29cIDsKK+WDp+W6tSA+IHNvdWFuXCA7Civppqzou4ogPiBiYXNoYVwgOwor5YWs5LqLID4ga291amlcIDsKK+WFiOWLmSA+IHNlbm11XCA7Civkv7rnrYkgPiBvcmVyYVwgOwor5a+M6LK0ID4gZnVra2lcIDsKK+WvoeiogCA+IGthZ2VuXCA7Civpppbpg70gPiBzaHV0b1wgOwor5qih5YCjID4gbW9ob3VcIDsKK+WvjOixqiA+IGZ1Z291XCA7CivppZHppYkgPiBraWtpblwgOwor6aas6LmEID4gYmF0ZWlcIDsKK+i3teelmiA+IHNlbnNvXCA7Civot6/nqIsgPiByb3RlaVwgOwor5a+E6LSIID4ga2l6b3VcIDsKK+S9k+i6ryA+IHRhaWt1XCA7Civnl7TmhJogPiBjaGlndVwgOwor6IOM6YOoID4gaGFpYnVcIDsKK+S/nee3miA+IGhvc2VuXCA7Civoi7HkuLsgPiBlaXNodVwgOwor5a2j6aGMID4ga2lkYWlcIDsKK+WFg+WIqSA+IGdlbnJpXCA7CivkvbXoqJggPiBoZWlraVwgOwor5YCr55CGID4gcmlucmlcIDsKK+i7iuW6qyA+IHNoYWtvXCA7CivogqHplpMgPiBrb2thblwgOwor55Sj56eRID4gc2Fua2FcIDsKK+Wvk+ipsSA+IGd1dXdhXCA7CivkvbPoqIAgPiBrYWdlblwgOwor6Ieq5rWEID4gamlqb3VcIDsKK+eWj+awtCA+IHNvc3VpXCA7Civnlo7msLQgPiBzb3N1aVwgOwor5L2Z6LKhID4geW96YWlcIDsKK+iEvuiHnyA+IGhpem91XCA7CivlrZDppqwgPiBrb3VtYVwgOwor6IS+6IeTID4gaGl6b3VcIDsKK+WDp+WwvCA+IHNvdW5pXCA7CivnmbrkvZwgPiBob3NzYVwgOwor6Lui5auBID4gdGVua2FcIDsKK+iHquayuyA+IGppY2hpXCA7CivnmZLlkIggPiB5dWdvdVwgOwor5YWF5YKZID4ganV1YmlcIDsKK+WDp+WvuiA+IHNvdWppXCA7CivohL7ohasgPiBoaXNodVwgOwor6auY5p62ID4ga291a2FcIDsKK+WwvuexoCA+IGJpcm91XCA7Civnl5vmiYsgPiBpdGFkZVwgOwor55m95LqcID4gaGFrdWFcIDsKK+WDp+WutiA+IHNvdWthXCA7CivlrrbosqEgPiBrYXphaVwgOwor6Lui5amGID4gdGVuYmFcIDsKK+WBpeatqSA+IGtlbnBvXCA7CivprLzlrZAgPiBvbmlnb1wgOwor5qWK5p6dID4geW91amlcIDsKK+WxleekuiA+IHRlbmppXCA7CivlrpjpgJQgPiBrYW50b1wgOwor6Ieq5rCRID4gamltaW5cIDsKK+S/neeuoSA+IGhva2FuXCA7CivmoITou6IgPiBlaXRlblwgOwor5qSc5rOiID4ga2VucGFcIDsKK+S7rumhjCA+IGthZGFpXCA7CivlrZfpnaIgPiBqaW1lblwgOwor6Lev55ukID4gcm9iYW5cIDsKK+WFg+S+oSA+IGdlbmthXCA7CivoiLXmiYsgPiBkYXNodVwgOwor5a6P6YGgID4ga291ZW5cIDsKK+WtkOmfsyA+IHNoaWluXCA7CivoiablsL4gPiBrYW5iaVwgOwor5L2Z6KuHID4geW9kYW5cIDsKK+WEgOWeiyA+IGdpa2VpXCA7Civlr4zoo5UgPiBmdXl1dVwgOwor5qeL5ZuzID4ga291enVcIDsKK+eUo+edgCA+IHVidWdpXCA7CivlgY/ms6IgPiBoZW5oYVwgOwor6ama55WwID4ga3lvdWlcIDsKK+WBveacrCA+IGdpaG9uXCA7Civoibblp78gPiBlbnNoaVwgOwor5YSq5YipID4geXV1cmlcIDsKK+alteaEjyA+IGdva3VpXCA7Civku67pnaIgPiBrYW1lblwgOwor5YG95pu4ID4gZ2lzaG9cIDsKK+Wyoea5ryA+IG9rYXl1XCA7Civmo4vnlYwgPiBraWthaVwgOwor5L+d56iOID4gaG96ZWlcIDsKK+S9meioiCA+IHlva2VpXCA7Civlg4Xlt64gPiBraW5zYVwgOwor5YWE5LqLID4ga2VpamlcIDsKK+i6r+W5uSA+IGt1a2FuXCA7Civlgr7luqYgPiBrZWlkb1wgOwor5L+v556wID4gZnVrYW5cIDsKK+agoeimjyA+IGtvdWtpXCA7Civoh6jmqZ8gPiByaW5raVwgOwor6IKp6YOoID4ga2VuYnVcIDsKK+iJh+W6qyA+IHRlaWtvXCA7CivlsIrogIUgPiBzb25qYVwgOwor6Leh55uuID4gYXRvbWVcIDsKK+i3r+eUqCA+IHJveW91XCA7CivlrrboqJMgPiBrYWt1blwgOwor5a2X6ZaTID4gamlrYW5cIDsKK+WutuioiCA+IGtha2VpXCA7CivoirHlhqAgPiBrYWthblwgOwor5L2O6KqeID4gdGVpZ29cIDsKK+Wun+iyuyA+IGppcHBpXCA7Civlgr7lt64gPiBrZWlzYVwgOwor55S354yrID4gb25la29cIDsKK+eUpueUnyA+IHNvc2VpXCA7CivotbfojYkgPiBraXNvdVwgOwor5p626ZaTID4ga2FrYW5cIDsKK+S9meijlSA+IHlveXV1XCA7CivltanlkbwgPiBzdXVrb1wgOwor5a6Y6LK7ID4ga2FucGlcIDsKK+mkiumviSA+IHlvdXJpXCA7Civou43lpKsgPiBndW5wdVwgOwor55aO5p6XID4gc29yaW5cIDsKK+WutuijgSA+IGthc2FpXCA7Civkv7PnlLsgPiBoYWlnYVwgOwor6LuK5aSrID4gc2hhZnVcIDsKK+S7lumdoiA+IHRhbWVuXCA7CivlsI/ntIsgPiBrb21vblwgOwor5qGD6IqxID4gdG91a2FcIDsKK+eUn+eQhiA+IHNlaXJpXCA7CivohYvnqqkgPiBla2lrYVwgOwor5LuY6ZqPID4gZnV6dWlcIDsKK+mrmOaJuSA+IGtvdWhpXCA7Civlrrbonb8gPiBpZWJhZVwgOwor5qSc5p+7ID4ga2Vuc2FcIDsKK+WCmeW/mCA+IGJpYm91XCA7CivlsI/nsosgPiBrb2lraVwgOwor5a6f6KiYID4gamlra2lcIDsKK+iHquabuCA+IGppc2hvXCA7CivosqvpppYgPiBrYW5qdVwgOwor5YGJ5qWtID4gaWd5b3VcIDsKK+S6uummrCA+IGppbmJhXCA7CivlhITliqsgPiBva2t1dVwgOwor6LK06aGVID4ga2lrZW5cIDsKK+S+jeiAhSA+IGppc2hhXCA7Civoh6rmmrQgPiBqaWJvdVwgOwor5L6/56eYID4gYmVucGlcIDsKK+WumOipsSA+IGthbndhXCA7CivltI7ltJYgPiBraWdhaVwgOwor55aO5pS+ID4gc29ob3VcIDsKK+S9meiWqyA+IHlva3VuXCA7Civoh6rmmI4gPiBqaW1laVwgOwor6Ieo5pmCID4gcmluamlcIDsKK+mkjOmjnyA+IGVqaWtpXCA7Civou43lmaggPiBndW5raVwgOwor5a6a6KaPID4gam91Z2lcIDsKK+iIueWwviA+IHNlbmJpXCA7CivlhIDliJEgPiBnaWtlaVwgOwor5LuK6ZqbID4gaW1hd2FcIDsKK+WEhOWGhiA+IG9rdWVuXCA7CivlhIDliIAgPiBnaXRvdVwgOwor5a6I6K23ID4gc2h1Z29cIDsKK+S8muiyuyA+IGthaWhpXCA7CivlsqnmoLkgPiBpd2FuZVwgOwor6aWL6YKEID4ga2lrYW5cIDsKK+WvoeiBniA+IGthYnVuXCA7Civpq5jmgakgPiBrb3VvblwgOwor55S35rudID4gb2Rha2lcIDsKK+i7ouWMliA+IHRlbmthXCA7CivlhIDlhbggPiBnaXRlblwgOwor55Oc56eRID4gdXJpa2FcIDsKK+i7veS+riA+IGtlaWJ1XCA7CivlrrbolLUgPiBrYXpvdVwgOwor5L6b57GzID4ga3VtYWlcIDsKK+aghOieuiA+IHNhemFlXCA7Civou5/ljJYgPiBuYW5rYVwgOwor5YCk5q61ID4gbmVkYW5cIDsKK+WtpOi7jSA+IGtvZ3VuXCA7Civlgb3mgqogPiBnaWFrdVwgOwor55Ww5pydID4gaWNob3VcIDsKK+S9s+iCtCA+IGtha291XCA7CivnlrLlvIogPiBoaWhlaVwgOwor5Lya6K2wID4ga2FpZ2lcIDsKK+eUmOeFriA+IGFtYW5pXCA7Civlgb3mgKcgPiBnaXNlaVwgOwor5p2l6aeVID4gcmFpZ2FcIDsKK+eUu+azlSA+IGdhaG91XCA7Civlr4ToiKogPiBraWtvdVwgOwor6auY5bqnID4ga291emFcIDsKK+mrmOW6piA+IGtvdWRvXCA7Civoia/ljLsgPiByeW91aVwgOwor5Lyd6KiYID4gZGVua2lcIDsKK+S8muipsSA+IGthaXdhXCA7CivkvZnoirMgPiB5b2hvdVwgOwor5Lmx6bq7ID4gcmFubWFcIDsKK+WCmOWvvyA+IHNhbmp1XCA7CivlsbHmsrMgPiBzYW5nYVwgOwor5bC+54q2ID4gYmlqb3VcIDsKK+iAs+mghiA+IGppanVuXCA7CivkvL3ol40gPiBnYXJhblwgOwor6LOb6L6eID4gc2FuamlcIDsKK+i7jeWMuyA+IGd1bicnaVwgOwor5bCC56eRID4gc2Vua2FcIDsKK+eVsOaVmSA+IGlreW91XCA7CivlhIDku5cgPiBnaWpvdVwgOwor5a6I6KGbID4gc2h1ZWlcIDsKK+WvjOiAhSA+IGZ1c2hhXCA7CivkvJropo8gPiBrYWlraVwgOwor6LuN5YuZID4gZ3VubXVcIDsKK+eUo+a5ryA+IHVidXl1XCA7Civpppnoj68gPiBrb3VnZVwgOwor6Ieq5oiSID4gamlrYWlcIDsKK+WwvueHiCA+IGJpdG91XCA7Civkvpvnpa0gPiBndXNhaVwgOwor6LOT6L6eID4gaGluamlcIDsKK+iDmuiKvSA+IGhhaWdhXCA7CivotbfnrpcgPiBraXNhblwgOwor6Iie5a2QID4gbWFpa29cIDsKK+S9s+e3qCA+IGthaGVuXCA7Civoh6rmhaIgPiBqaW1hblwgOwor6Lui5L2NID4gdGVuJydpXCA7Civpo6LppYkgPiBraWtpblwgOwor5qW95ZmoID4gZ2Fra2lcIDsKK+eWkeW/tSA+IGdpbmVuXCA7Civlr7rnpL4gPiBqaXNoYVwgOwor5L2Z6IGeID4geW9idW5cIDsKK+S6pOmZhCA+IGtvdWZ1XCA7CivlraboqrIgPiBnYWtrYVwgOwor5YOt5L2NID4gc2VuJydpXCA7Civku5jov5EgPiBmdWtpblwgOwor5bC+54GvID4gYml0b3VcIDsKK+mmrOiAlSA+IGJha291XCA7Civnk5znlLAgPiBrYWRlblwgOwor6LiP5p+7ID4gdG91c2FcIDsKK+mrmOWunCA+IGtvdWdpXCA7CivotbfnqL8gPiBraWtvdVwgOwor55S75qW8ID4gZ2Fyb3VcIDsKK+iEseeariA+IGRhcHBpXCA7CivnlY/mnI0gPiBpZnVrdVwgOwor5p2l6ZmiID4gcmFpaW5cIDsKK+S+jeelrSA+IGppc2FpXCA7Civou43lgpkgPiBndW5iaVwgOwor55Sj5rCXID4gc2Fua2VcIDsKK+aliuWtkCA+IHlvdWppXCA7CivlsI/nlbAgPiBzaG91aVwgOwor6Iie5aaTID4gbWFpa29cIDsKK+ajhOatuyA+IGtpc2hpXCA7CivkvZnnvaogPiB5b3phaVwgOwor55Sj5q+bID4gdWJ1Z2VcIDsKK+alreWboCA+IGdvdWluXCA7CivkvovnpLogPiByZWlqaVwgOwor5a626ICBID4ga2Fyb3VcIDsKK+eUn+awlyA+IHNlaWtpXCA7CivkuovpoIUgPiBqaWtvdVwgOwor6IWQ54ibID4gZnVyYW5cIDsKK+Wwj+eTtiA+IGtvYmluXCA7CivkvbPnr4cgPiBrYWhlblwgOwor6ISx55a9ID4gZGFzc29cIDsKK+WyqeaIuCA+IGl3YXRvXCA7Civlr7/nm4MgPiBqdWhhaVwgOwor55Sf5q+NID4gc2VpYm9cIDsKK+iHquW8gSA+IGppYmVuXCA7CivnlarmiYsgPiBiYW50ZVwgOwor5YG45a6JID4gdG91YW5cIDsKK+Wwj+eQtCA+IG9nb3RvXCA7Civkv4TnhLYgPiBnYXplblwgOwor5qOE5qipID4ga2lrZW5cIDsKK+ixqumjsiA+IGdvdWluXCA7CivkuoDpoK0gPiBraXRvdVwgOwor55S75p2/ID4gZ2FiYW5cIDsKK+Wtl+iokyA+IGppa3VuXCA7CivmorPmr5sgPiBzb21vdVwgOwor6aOb6Zu7ID4gaGlkZW5cIDsKK+S6jOmajiA+IG5pa2FpXCA7CivnlLvmnZAgPiBnYXphaVwgOwor5a2X6KejID4gamlrYWlcIDsKK+i7jeS6iyA+IGd1bmppXCA7CivnkIbosqEgPiByaXphaVwgOwor55S75pysID4gZ2Fob25cIDsKK+eUu+acnyA+IGtha2tpXCA7Civoh6rlt6UgPiBqaWtvdVwgOwor6IOD6IW4ID4gaWNob3VcIDsKK+agoee0gCA+IGtvdWtpXCA7CivnlbjlvaIgPiBraWtlaVwgOwor5Luj6K2wID4gZGFpZ2lcIDsKK+S7ruiogCA+IGthZ2VuXCA7CivotbDnoLQgPiBzb3VoYVwgOwor5YK15YuZID4gc2FpbXVcIDsKK+i6q+WIhiA+IG1pYnVuXCA7CivlgIvmnaEgPiBrYWpvdVwgOwor6LWk56aNID4gc2Vra2FcIDsKK+S6iOmYsiA+IHlvYm91XCA7CivlgYnlvrMgPiBpdG9rdVwgOwor6LOE6LOCID4gd2Fpcm9cIDsKK+iCsuiLsSA+IGlrdWVpXCA7CivlsI/niqwgPiBrb2ludVwgOwor5qCE6ICAID4gZWl5b3VcIDsKK+eUseadpSA+IHl1cmFpXCA7CivnlbDlv4MgPiBpc2hpblwgOwor6Ii55Yy7ID4gc2VuJydpXCA7CivmpLDlrZAgPiB5YXNoaVwgOwor5a6257SLID4ga2Ftb25cIDsKK+WutuezuyA+IGtha2VpXCA7CivnlbDlvaIgPiBpZ3lvdVwgOwor5Ly9576FID4ga3lhcmFcIDsKK+iCuuiFkSA+IGhhaWZ1XCA7Civku4/osqggPiBmdWtrYVwgOwor5p2x6YO9ID4gdG91dG9cIDsKK+adsemDqCA+IHRvdWJ1XCA7Civku67oo4UgPiBrYXNvdVwgOwor6Ieq5bC9ID4gamlqaW5cIDsKK+eQhuirliA+IHJpcm9uXCA7CivlgY/lt64gPiBoZW5zYVwgOwor5bCK54i2ID4gc29ucHVcIDsKK+iHquWwiiA+IGppc29uXCA7Civlgb3loLEgPiBnaWhvdVwgOwor5a6a576pID4gdGVpZ2lcIDsKK+WCmeWTgSA+IGJpaGluXCA7Civosqjou4ogPiBrYXNoYVwgOwor5L+X5rCXID4gem9ra2VcIDsKK+iHquWusyA+IGppZ2FpXCA7CivosrjosrsgPiB0YWloaVwgOwor5a+E56i/ID4ga2lrb3VcIDsKK+eVmeaEjyA+IHJ5dXVpXCA7CivkvZXnrocgPiBuYW5rb1wgOwor5YCL5pWwID4ga29zdXVcIDsKK+WvneebuCA+IG5lem91XCA7CivporbpoqggPiBndWZ1dVwgOwor6LK06LOkID4ga2lzZW5cIDsKK+iHquWtmCA+IGppc29uXCA7CivmoYLnmq4gPiBrZWloaVwgOwor6aOy6YWSID4gaW5zaHVcIDsKK+iytOizkyA+IGtpaGluXCA7CivkuqjpgYsgPiBrb3V1blwgOwor55CG6KejID4gcmlrYWlcIDsKK+iytOizjiA+IGtpc2VuXCA7CivotbfnlKggPiBraXlvdVwgOwor5L2V562JID4gbmFucmFcIDsKK+iyqei3ryA+IGhhbnJvXCA7CivmnJ/pppYgPiBraXNodVwgOwor5L+X5q2MID4gem9ra2FcIDsKK+S5l+mmrCA+IGpvdWJhXCA7Civku5joqIAgPiBmdWdlblwgOwor6LWk55uuID4gYWthbWVcIDsKK+S7i+ittyA+IGthaWdvXCA7Civku5boqIAgPiB0YWdvblwgOwor5LqA6ZGRID4ga2lrYW5cIDsKK+iEs+eCjiA+IG5vdWVuXCA7CivmpJzlrZcgPiBrZW5qaVwgOwor5LqU6YeNID4gZ29qdXVcIDsKK+izgOipniA+IGdhc2hpXCA7CivoiJ7lj7AgPiBidXRhaVwgOwor5pyd6aSJID4gYXNhZ2VcIDsKK+WvoeeUtyA+IHlhbW9vXCA7Civku5boposgPiB0YWtlblwgOwor6IiO5Za2ID4gc2hhZWlcIDsKK+S8juiKuCA+IGdpZ2VpXCA7Civnlo7lpJYgPiBzb2dhaVwgOwor5YG25ZugID4gZ3V1aW5cIDsKK+Wuiee9riA+IGFuY2hpXCA7CivosqjosqEgPiBrYXphaVwgOwor5YKN5Y+XID4gYm91anVcIDsKK+iDtOedgCA+IGRvdWdpXCA7Civlrrbnpr0gPiBrYWtpblwgOwor5bKp5bGLID4gaXdheWFcIDsKK+S6jOmHjSA+IGZ1dGFlXCA7CivogqXogrIgPiBoaWlrdVwgOwor5bCP5rudID4gb3Rha2lcIDsKK+S6iOmItCA+IHlvcmVpXCA7Civlgb3lloQgPiBnaXplblwgOwor5qKn5qGQID4gZ290b3VcIDsKK+iyouizpiA+IGtvdWZ1XCA7CivnlLvmiY0gPiBnYXNhaVwgOwor55S75omLID4gZ2FzaHVcIDsKK+WumOe0gCA+IGthbmtpXCA7CivosrToqowgPiBraXNoaVwgOwor6aKo6Z+7ID4gZnV1aW5cIDsKK+eVs+WtlyA+IGpvdWppXCA7Civku5booYwgPiB0YWtvdVwgOwor6IKh6IKxID4ga29rb3VcIDsKK+iyoeiyqCA+IHphaWthXCA7CivnlbDlrpcgPiBpc2h1dVwgOwor5LqS6YG4ID4gZ29zZW5cIDsKK+iHquWjiiA+IGppa2FpXCA7Civmo4TmkI0gPiBraXNvblwgOwor6aKo6Z2hID4gZnV1YmlcIDsKK+mkiuittyA+IHlvdWdvXCA7Civosp3osqggPiBiYWlrYVwgOwor5LyO6IO9ID4gZ2lub3VcIDsKK+acqumWiyA+IG1pa2FpXCA7CivlgIvmiYAgPiBrYXNob1wgOwor6LK06KanID4ga2lyYW5cIDsKK+i1sOeLlyA+IHNvdWt1XCA7Civpoqjpm7IgPiBmdXV1blwgOwor5LmW6ZuiID4ga2FpcmlcIDsKK+eWsuWKtCA+IGhpcm91XCA7Civku67okawgPiBrYXNvdVwgOwor5YG95ZCNID4gZ2ltZWlcIDsKK+S6uuiqniA+IGppbmdvXCA7Civpoqjpm4UgPiBmdXVnYVwgOwor5LqU6LyqID4gZ29yaW5cIDsKK+WBveWPsiA+IGdpc2hpXCA7CivmnJ/pmZAgPiBraWdlblwgOwor5LqI6YG4ID4geW9zZW5cIDsKK+S5l+mZpCA+IGpvdWpvXCA7CivlgY/lpYcgPiBoZW5raVwgOwor5Li76aasID4gc2h1bWVcIDsKK+S/neaciSA+IGhveXV1XCA7Civoh6rlnKggPiBqaXphaVwgOwor6auY5YipID4ga291cmlcIDsKK+acn+mWkyA+IGtpa2FuXCA7CivotbfngrkgPiBraXRlblwgOwor5LqM6LyqID4gbmlyaW5cIDsKK+acnemWkyA+IGFzYW1hXCA7CivohLPms6IgPiBub3VoYVwgOwor5a6f56eRID4gamlra2FcIDsKK+WutuebuCA+IGthc291XCA7CivmnaXos4AgPiByYWlnYVwgOwor5bGg5omAID4gdG9zaG9cIDsKK+eWkeWVjyA+IGdpbW9uXCA7CivoiI7liKkgPiBzaGFyaVwgOwor5a+E55SfID4ga2lzZWlcIDsKK+S6jOi7jSA+IG5pZ3VuXCA7CivlgJLlvbEgPiB0b3VlaVwgOwor5LuW6JamID4gdGF6ZW5cIDsKK+WAi+aApyA+IGtvc2VpXCA7Civpp4TniqwgPiBkYWtlblwgOwor6aOb6LuKID4gaGlzaGFcIDsKK+WxueW6piA+IGtpdHRvXCA7CivkvZznlKggPiBzYXlvdVwgOwor5YCt5a+HID4gd2Frb3VcIDsKK+Wwj+atjCA+IGtvdXRhXCA7CivkuLvpn7MgPiBzaHVvblwgOwor55Ww5aKDID4gaWt5b3VcIDsKK+WuueeWkSA+IHlvdWdpXCA7CivnlLvlu4ogPiBnYXJvdVwgOwor5L2Z55SfID4geW9zZWlcIDsKK+e+jum6lyA+IGJpcmVpXCA7CivlrprnpI4gPiB0ZWlzb1wgOwor5YGP5ZyfID4gaGVuZG9cIDsKK+WyqeWgtCA+IGl3YWJhXCA7Civoh6rllY8gPiBqaW1vblwgOwor5YG95YW1ID4gZ2loZWlcIDsKK+S6pOiqvCA+IGtvdWdpXCA7CivohZXmnKggPiB1ZGVnaVwgOwor5YKY5LiLID4gc2Fua2FcIDsKK+WBpeWQpiA+IGtlbnBpXCA7CivnlLvluKsgPiBnYXNoaVwgOwor55S75biWID4gZ2Fqb3VcIDsKK+WutueUoyA+IGthc2FuXCA7CivnlLvlt6UgPiBnYWtvdVwgOwor6LW35rqQID4ga2lnZW5cIDsKK+e+vemfsyA+IGhhb3RvXCA7Civpq5jkvqEgPiBrb3VrYVwgOwor5YCJ5bqrID4gc291a29cIDsKK+aenOiPnCA+IGthc2FpXCA7CivmnLrovrogPiBraWhlblwgOwor5a++5q+UID4gdGFpaGlcIDsKK+eVsOWbvSA+IGlrb2t1XCA7CivmnZHosrsgPiBzb25waVwgOwor6LOi6ICFID4ga2VuamFcIDsKK+acrOmDqCA+IGhvbmJ1XCA7CivkupLorbIgPiBnb2pvdVwgOwor6IeT5ZmoID4gem91a2lcIDsKK+WvvuaspyA+IHRhaW91XCA7CivogIHouq8gPiByb3VrdVwgOwor55Sj5b6MID4gc2FuZ29cIDsKK+eUqOW6piA+IHlvdWRvXCA7Civmm7jpmaIgPiBzaG9pblwgOwor5qGQ5rK5ID4gdG91eXVcIDsKK+acqumBgiA+IG1pc3VpXCA7CivnlJ/lvpIgPiBzZWl0b1wgOwor55Sf5b6MID4gc2VpZ29cIDsKK+adoeimjyA+IGpvdWtpXCA7CivohJrmsJcgPiBrYWtrZVwgOwor6auY5LiLID4ga291Z2VcIDsKK+iHquWLlSA+IGppZG91XCA7CivnjovpgZMgPiBvdWRvdVwgOwor6LOb576OID4gc2FuYmlcIDsKK+iFkOaVlyA+IGZ1aGFpXCA7CivouYTlj4kgPiB0ZWlzYVwgOwor5LqJ6K2wID4gc291Z2lcIDsKK+acqOmAmiA+IGFrZWJpXCA7Civku5XoiJ4gPiBqaW1haVwgOwor6LaK5qipID4gZWtrZW5cIDsKK+i3i+aJiCA+IGJha2tvXCA7CivkvZnnh7wgPiB5b2ppblwgOwor5YCL5bGVID4ga290ZW5cIDsKK+iHquWJjSA+IGppbWFlXCA7Civoh6rliLYgPiBqaXNlaVwgOwor5YGl5YWQID4ga2VuamlcIDsKK+iDg+eXmyA+IGl0c3V1XCA7CivkuojorIAgPiB5b2JvdVwgOwor6aqo5YyWID4ga29ra2FcIDsKK+Wwj+aenSA+IGtvZWRhXCA7Civog4Pnl4UgPiBpYnlvdVwgOwor6Ieq5YiGID4gamlidW5cIDsKK+iHquWIgyA+IGppamluXCA7Civotbfmr5sgPiBraW1vdVwgOwor55Gq55GZID4gbWVub3VcIDsKK+miqOmCqiA+IGZ1dWphXCA7CivotbfmrbsgPiBraXNoaVwgOwor5p6257eaID4ga2FzZW5cIDsKK+S4iummrCA+IGpvdWJhXCA7CivkvZzngrogPiBzYWt1aVwgOwor6IOM55CGID4gaGFpcmlcIDsKK+WuieecoCA+IGFubWluXCA7Civoh6rlhZogPiBqaXRvdVwgOwor5bC/5oSPID4gbnlvdWlcIDsKK+acm+mBoCA+IGJvdWVuXCA7CivnlLDlrrYgPiBkZW5rYVwgOwor5LqI6KiAID4geW9nZW5cIDsKK+S5nei8qiA+IGt1cmluXCA7CivkubHosrsgPiByYW5waVwgOwor5LuW6IGeID4gdGFidW5cIDsKK+acqui4jyA+IG1pdG91XCA7CivkuonopocgPiBzb3VoYVwgOwor5a+d5rGXID4gbmVhc2VcIDsKK+WBpeS/nSA+IGtlbnBvXCA7Civlr77moYggPiB0YWlhblwgOwor55GV55a1ID4ga2FzaGlcIDsKK+S6iOimiyA+IHlva2VuXCA7CivkuIvpoqggPiBrYWZ1dVwgOwor5LuW6ICFID4gdGFzaGFcIDsKK+eVv+WGhSA+IGtpbmFpXCA7Civku67ntI0gPiBrYW5vdVwgOwor54yq6aaWID4gaWt1YmlcIDsKK+WumueQhiA+IHRlaXJpXCA7CivkuI3poIYgPiBmdWp1blwgOwor5LiA6aaWID4gaXNzaHVcIDsKK+eUo+WxiyA+IHVidXlhXCA7Civku67nsqcgPiBrZXdhaVwgOwor6LGq6KqeID4gZ291Z29cIDsKK+mhnumfuyA+IHJ1aWluXCA7CivpoZ7pn7MgPiBydWlvblwgOwor5a+S5rOiID4ga2FucGFcIDsKK+eUqOWtlyA+IHlvdWppXCA7Civlrabnp5EgPiBnYWtrYVwgOwor6LKn6IumID4gaGlua3VcIDsKK+eUt+WlsyA+IGRhbmpvXCA7CivogIPoqrIgPiBrb3VrYVwgOwor5qC55rCXID4ga29ua2lcIDsKK+i1pOavmyA+IGFrYWdlXCA7CivkuIDpo68gPiBpcHBhblwgOwor55S75aOHID4gZ2FkYW5cIDsKK+WvhOa4ryA+IGtpa291XCA7CivpppnnhZkgPiBrb3VlblwgOwor576O6aKoID4gYmlmdXVcIDsKK+mjm+ihjCA+IGhpa291XCA7CivkuojooYwgPiB5b2tvdVwgOwor5Lqs6I+vID4ga2Vpa2FcIDsKK+WuieeUoyA+IGFuemFuXCA7Civoh6rkvZMgPiBqaXRhaVwgOwor5LiA6aKoID4gaXBwdXVcIDsKK+e+jumhlCA+IGJpZ2FuXCA7CivnlJ/lrrYgPiBzZWlrYVwgOwor5a6f54i2ID4gamlwcHVcIDsKK+iHquS8nSA+IGppZGVuXCA7CivogZbogIUgPiBzZWlqYVwgOwor5L6/5omAID4gYmVuam9cIDsKK+eUu+WgsSA+IGdhaG91XCA7Civoh6rku7sgPiBqaW5pblwgOwor5LiW6ZaTID4gc2VrZW5cIDsKK+S4gOmgrSA+IGl0dG91XCA7CivnlLLlpJwgPiBrb3V5YVwgOwor6Ieq5LuKID4gamlrb25cIDsKK+S4jemajyA+IGZ1enVpXCA7CivpppnngokgPiBrb3Vyb1wgOwor5Li76YOoID4gc2h1YnVcIDsKK+S4gOmghSA+IGlra291XCA7CivpqI7miYsgPiBraXNodVwgOwor55Sw5aSrID4gZGVucHVcIDsKK+izpueojiA+IGZ1emVpXCA7Civpo5vonZcgPiBiYXR0YVwgOwor55K95pu4ID4gamlzaG9cIDsKK+Wwu+W6pyA+IGtvdXphXCA7CivosrTnv7AgPiBraWthblwgOwor55CG57O7ID4gcmlrZWlcIDsKK+iHquS5lyA+IGppam91XCA7CivnlKPlqaYgPiBzYW5wdVwgOwor5LiL6ZmQID4ga2FnZW5cIDsKK+S4i+mZjSA+IGtha291XCA7CivkuIrpmaIgPiBqb3VpblwgOwor6Ieq5Li7ID4gamlzaHVcIDsKK+WvuOaahyA+IHN1bmthXCA7CivmnrbnqbogPiBrYWt1dVwgOwor55Sj5amGID4gc2FuYmFcIDsKK+aji+WjqyA+IGtpc2hpXCA7CivosYzosYYgPiBlbmRvdVwgOwor5LiL6ZiqID4gZ2VoYW5cIDsKK+WvuOaZgiA+IHN1bmppXCA7CivmorXlrZcgPiBib25qaVwgOwor55SY5a2QID4gYW1hZ29cIDsKK+S9k+a4qSA+IHRhaW9uXCA7Civkvr/mhI8gPiBiZW4nJ2lcIDsKK+S7gee+qSA+IGppbmdpXCA7CivlrpvnhLYgPiBlbnplblwgOwor5L2c5rOVID4gc2Fob3VcIDsKK+aknOS6iyA+IGtlbmppXCA7CivkuLvovp4gPiBzaHVqaVwgOwor5pq06aOyID4gYm91aW5cIDsKK+WvneajuiA+IG5la2FuXCA7Civmnpzns5YgPiBrYXRvdVwgOwor5L2O5ripID4gdGVpb25cIDsKK+i1sOafuyA+IHNvdXNhXCA7CivkuIDpmo4gPiBpa2thaVwgOwor5pys6Ki0ID4gaG9uc29cIDsKK+S4gOmaiiA+IGl0dGFpXCA7Civmm7npgZQgPiBzb3VkYVwgOwor55W45Lq6ID4ga2lqaW5cIDsKK+iyp+iAhSA+IGhpbmphXCA7Civkv5Dlt6cgPiByaWtvdVwgOwor5L6L5pmCID4gcmVpamlcIDsKK+WutuazlSA+IGthaG91XCA7CivnlLDlnIMgPiBkZW5wb1wgOwor5bGg5aC0ID4gdG9qb3VcIDsKK+S7mOeuiyA+IGZ1c2VuXCA7CivmnKroposgPiBtaWtlblwgOwor6ICz6IWUID4gamlrb3VcIDsKK+S4gOmWgyA+IGlzc2VuXCA7CivlsJHmhbAgPiBzaG91aVwgOwor5L6u5oWiID4gYnVtYW5cIDsKK+S9nOatjCA+IHNha2thXCA7CivmoYPmnY4gPiB0b3VyaVwgOwor5qCh5q2MID4ga291a2FcIDsKK+e+qemHkSA+IGdpa2luXCA7Civkv53lroggPiBob3NodVwgOwor6aKo6KutID4gZnV1eXVcIDsKK+S4lumKgCA+IHNlZ2luXCA7Civkv53lrZggPiBob3pvblwgOwor6IK654KOID4gaGFpZW5cIDsKK+eUmOWkoiA+IGthbm11XCA7CivlsKTluqYgPiB5dXVkb1wgOwor6IC9576OID4gdGFuYmlcIDsKK+aboOmHjiA+IGtvdXlhXCA7CivosrTntJkgPiBraXNoaVwgOwor5pyI6LOmID4gZ2VwcHVcIDsKK+WxleWikyA+IHRlbmJvXCA7Civkvr/luqcgPiBiZW56YVwgOwor5LqU6IqSID4gZ29ib3VcIDsKK+ePque0oCA+IGtlaXNvXCA7CivmoLjmnpwgPiBrYWtrYVwgOwor5bCK5oSPID4gc29uJydpXCA7CivpppnmsrkgPiBrb3V5dVwgOwor55So5ZmoID4geW91a2lcIDsKK+ahiOaWhyA+IGFubW9uXCA7Civku67nnaEgPiBrYXN1aVwgOwor5pyX6KmgID4gcm91ZWlcIDsKK+WAkuWPpSA+IHRvdWt1XCA7CivlgJLlj5kgPiB0b3Vqb1wgOwor5Luu55ygID4ga2FtaW5cIDsKK+iytOewoSA+IGtpa2FuXCA7Civoh43kuIsgPiBzZWlrYVwgOwor5a6a5ripID4gdGVpb25cIDsKK+S7ruebuCA+IGthc291XCA7CivkupToh5MgPiBnb3pvdVwgOwor6IOM5rOzID4gaGFpZWlcIDsKK+mmmeawlyA+IGtvdWtpXCA7CivkuqHogIUgPiBtb3VqYVwgOwor6Iag5YyWID4ga291a2FcIDsKK+mgremfuyA+IHRvdWluXCA7CivkvbPmma8gPiBrYWtlaVwgOwor5bCW5bqmID4gc2VuZG9cIDsKK+S7luekviA+IHRhc2hhXCA7Civosaroj68gPiBnb3VrYVwgOwor5a+M5pyJID4gZnV5dXVcIDsKK+S4lumAlCA+IHNlaXRvXCA7Civku67nl5ggPiBrYXRvdVwgOwor5LiH6YeMID4gYmFucmlcIDsKK+eQhuefpSA+IHJpY2hpXCA7CivkuJjovrogPiBva2FiZVwgOwor6IW55ZuyID4gZnVrdWlcIDsKK+S9kOanmCA+IHNheW91XCA7Civku4/npZYgPiBidXNzb1wgOwor6aeE5paHID4gZGFidW5cIDsKK+e+qei7jSA+IGdpZ3VuXCA7CivlgI3liqAgPiBiYWlrYVwgOwor5YCt5Lq6ID4gd2FqaW5cIDsKK+S4g+mHjSA+IG5hbmFlXCA7CivkuIvpg44gPiBnZXJvdVwgOwor5LiK6YOoID4gam91YnVcIDsKK+mgk+mmrCA+IHRvbm1hXCA7CivkuInpg6ggPiBzYW5idVwgOwor6LK056iuID4ga2lzaHVcIDsKK+S4jemBnCA+IGZ1c29uXCA7CivlsITlvbEgPiBzaGFlaVwgOwor5LiN6YGHID4gZnVndXVcIDsKK+S4gOmHjSA+IGhpdG9lXCA7CivkuLvoqp4gPiBzaHVnb1wgOwor5L6/5a6cID4gYmVuZ2lcIDsKK+mojuWwhCA+IGtpc2hhXCA7Civlr4Tmm7ggPiBraXNob1wgOwor5LiN6YCeID4gZnV0ZWlcIDsKK+Wwj+W3nSA+IG9nYXdhXCA7Civlr77lv5wgPiB0YWlvdVwgOwor5LiN6YCAID4gZnV0YWlcIDsKK+e+jumFkiA+IGJpc2h1XCA7CivnkZ7msJcgPiB6dWlraVwgOwor5Li76Ki0ID4gc2h1c29cIDsKK+aal+mbsiA+IGFuJyd1blwgOwor6LK056S+ID4ga2lzaGFcIDsKK+eUt+WFkCA+IGRhbmppXCA7CivkuozogIUgPiBuaXNoYVwgOwor55S75YOPID4gZ2F6b3VcIDsKK+S7luecjCA+IHRha2VuXCA7Civkv7PlkbMgPiBoYWltaVwgOwor5L2a5pu4ID4gaXNzaG9cIDsKK+WppumBuCA+IGZ1c2VuXCA7CivnlKjli5kgPiB5b3VtdVwgOwor5amm6YGTID4gZnVkb3VcIDsKK+adkee/gSA+IHNvbm91XCA7Civlronms7AgPiBhbnRhaVwgOwor6IKl5rqAID4gaGltYW5cIDsKK+S4i+i8qSA+IGdlaGFpXCA7CivlrrbmnaUgPiBrZXJhaVwgOwor5a++5bqnID4gdGFpemFcIDsKK+WApOS4iiA+IG5lYWdlXCA7CivnlJjlkbMgPiBrYW5taVwgOwor5L+z5Y+lID4gaGFpa3VcIDsKK+S4gOmBjSA+IGlwcGVuXCA7CivogIHoiJcgPiByb3Vob1wgOwor5pqX6ZeYID4gYW50b3VcIDsKK+abuOiomCA+IHNob2tpXCA7CivkuIvou4ogPiBnZXNoYVwgOwor5bCR5bCJID4gc2hvdWlcIDsKK+eUmuWPpSA+IGppbmt1XCA7Civlrrbmm7ggPiBrYXNob1wgOwor5Lqb57SwID4gc2FzYWlcIDsKK+eQhueUsSA+IHJpeXV1XCA7CivkurrnpZYgPiBqaW5zb1wgOwor5bCP5bCJID4gc2hvdWlcIDsKK+agoeaXlyA+IGtvdWtpXCA7CivkubHoiJ4gPiByYW5idVwgOwor5LqU57eaID4gZ29zZW5cIDsKK+eUmOWPlyA+IGthbmp1XCA7CivkuIDovrogPiBpcHBlblwgOwor5L6N5b6TID4gamlqdXVcIDsKK+WtpOeBryA+IGtvdG91XCA7Civku6PnkIYgPiBkYWlyaVwgOwor6LKi56efID4ga291c29cIDsKK+Wog+msnyA+IGFpa2FuXCA7CivkvJrmtL4gPiBrYWloYVwgOwor5a2Q54qsID4ga29pbnVcIDsKK+iBr+ePoCA+IHJlbmp1XCA7CivnlKjlhbcgPiB5b3VndVwgOwor55S75LyaID4gZ2FrYWlcIDsKK+S7lueVjCA+IHRha2FpXCA7CivkupTntYMgPiBnb2dlblwgOwor5bCP5a2XID4ga29hemFcIDsKK+Wxi+WPtyA+IHlhZ291XCA7CivlsYvlj7AgPiB5YXRhaVwgOwor5bCK5a62ID4gc29ua2FcIDsKK+S4gOi7oiA+IGl0dGVuXCA7CivnlLvkurogPiBnYWppblwgOwor6aGM6L6eID4gZGFpamlcIDsKK+S4gOi7kiA+IGlra2VuXCA7Civlrp/mooUgPiBtaXVtZVwgOwor5YCL5L2TID4ga290YWlcIDsKK+mojuWjqyA+IGtpc2hpXCA7Civlr77ls5kgPiB0YWlqaVwgOwor55Sj5YWQID4gc2FuamlcIDsKK+i3r+WCjSA+IHJvYm91XCA7CivmnKzoiJcgPiBob25wb1wgOwor576k6K2wID4gZ3VuZ2lcIDsKK+S4jeiytyA+IGZ1YmFpXCA7CivlrrbmlL8gPiBrYXNlaVwgOwor5LiL6LOkID4gZ2VzZW5cIDsKK+WvneaBryA+IG5laWtpXCA7CivkuI3osp4gPiBmdXRlaVwgOwor5LiL6LOcID4ga2FzaGlcIDsKK+S4i+izjiA+IGdlc2VuXCA7Civmnq/nh6UgPiBrb3NvdVwgOwor5YCL5Lq6ID4ga29qaW5cIDsKK+acqOiIniA+IGtvbWFpXCA7Civkvb/lvpIgPiBzaGl0b1wgOwor6ICB57+BID4gcm91b3VcIDsKK+e+veifuyA+IGhhYXJpXCA7Civlr5vmgZUgPiBrYW5qb1wgOwor6LK755SoID4gaGl5b3VcIDsKK+mguOmDqCA+IGtlaWJ1XCA7Civku6PniLYgPiBkYWlmdVwgOwor6LKr55uuID4ga2FubWVcIDsKK+Wwj+WnlCA+IHNob3VpXCA7CivnvqnoqJMgPiBnaWt1blwgOwor5LqI57SNID4geW9ub3VcIDsKK+S4h+iyqCA+IGJhbmthXCA7CivkuJboq5YgPiB5b3JvblwgOwor6LGK6Im2ID4gaG91ZW5cIDsKK+i1t+W3pSA+IGtpa291XCA7Civmnb/nm64gPiBpdGFtZVwgOwor6aCt6YeNID4genVvbW9cIDsKK+aiheWckiA+IGJhaWVuXCA7CivosrTnlLcgPiB0YWthb1wgOwor5a6a5pyoID4gam91Z2lcIDsKK+WumuacnyA+IHRlaWtpXCA7CivlsI/lo7IgPiBrb3VyaVwgOwor576O6LKMID4gYmlib3VcIDsKK+Wwj+WjsCA+IGtvZ29lXCA7CivmoYLlurUgPiBrZWlhblwgOwor5LiA6LKrID4gaWtrYW5cIDsKK+S4iuitsCA+IGpvdWdpXCA7CivnlJ/kv50gPiBzZWlob1wgOwor5L6/5ZmoID4gYmVua2lcIDsKK+S4juirliA+IHlvcm9uXCA7CivmnKrogZ4gPiBtaW1vblwgOwor6Z+z6Z+7ID4gb24nJ2luXCA7CivnlKjkuosgPiB5b3VqaVwgOwor5pmv6ZuyID4ga2VpdW5cIDsKK+mgremDqCA+IHRvdWJ1XCA7Civku5TniqwgPiBrb2ludVwgOwor5LqM562JID4gbml0b3VcIDsKK+e9qumBjiA+IHphaWthXCA7CivkuIroq60gPiBqb3V5dVwgOwor5L+X5YyWID4gem9ra2FcIDsKK+Wtl+a6kCA+IGppZ2VuXCA7CivkuojnrpcgPiB5b3NhblwgOwor6aGe6KqeID4gcnVpZ29cIDsKK+i3r+S4iiA+IHJvam91XCA7CivmnKznvqkgPiBob25naVwgOwor6LOA54q2ID4gZ2Fqb3VcIDsKK+WumuaZgiA+IHRlaWppXCA7Civmo4TkuJYgPiBraXNlaVwgOwor6LGG6IWQID4gdG91ZnVcIDsKK+mnhOW8gSA+IGRhYmVuXCA7CivlqaboraYgPiBmdWtlaVwgOwor6LW35bGFID4ga2lreW9cIDsKK+eNhOihoyA+IGdva3VpXCA7Civmnb/nlLsgPiBoYW5nYVwgOwor5LiN6KiAID4gZnVnZW5cIDsKK+S9j+aMgSA+IGp1dWppXCA7CivkvZPmioAgPiB0YWlnaVwgOwor5L+d5Ya3ID4gaG9yZWlcIDsKK+S9meaGpCA+IHlvZnVuXCA7CivkuIroqLQgPiBqb3Vzb1wgOwor5LiK6KiYID4gam91a2lcIDsKK+S9meaFtiA+IHlva2VpXCA7CivkvZzmhI8gPiBzYWt1aVwgOwor5L+d5YWoID4gaG96ZW5cIDsKK+S6jOeoriA+IG5pc2h1XCA7CivmnpznhLYgPiBrYXplblwgOwor5LiN6KaBID4gZnV5b3VcIDsKK+mfs+majiA+IG9ua2FpXCA7Civnvo7oq4cgPiBiaWRhblwgOwor5a625oayID4ga2FrZW5cIDsKK+S6iOeovyA+IHlva291XCA7CivlsI7lm6AgPiBkb3VpblwgOwor5Luj5ryUID4gZGFpZW5cIDsKK+S9meaDhSA+IHlvam91XCA7Civlr6HlsYUgPiBrYWt5b1wgOwor54qs6aasID4ga2VuYmFcIDsKK+mkk+eLvCA+IGdhcm91XCA7CivlsLzlg6cgPiBuaXNvdVwgOwor5L+d5YGlID4gaG9rZW5cIDsKK+e/oee/oCA+IGhpc3VpXCA7Civmnq/mt6EgPiBrb3RhblwgOwor6aCa6YOoID4ga2VpYnVcIDsKK+acque3tCA+IG1pcmVuXCA7CivkuIDoqIggPiBpa2tlaVwgOwor576O6KazID4gYmlrYW5cIDsKK+mgkOmHkSA+IHlva2luXCA7CivkvZnlv7UgPiB5b25lblwgOwor5LiL6KGMID4ga2Frb3VcIDsKK+mhjOipoCA+IGRhaWVpXCA7CivmnKjntr8gPiBtb21lblwgOwor5Li56IqxID4gdGFua2FcIDsKK+S4gOimiyA+IGlra2VuXCA7CivkuLnoibIgPiBuaWlyb1wgOwor546L57WxID4gb3V0b3VcIDsKK+S8muacnyA+IGthaWtpXCA7CivlsIHlnJ8gPiBob3Vkb1wgOwor6Laj5ZGzID4gc2h1bWlcIDsKK+izouavjSA+IGtlbmJvXCA7Civmmpfou6IgPiBhbnRlblwgOwor5pyq57SNID4gbWlub3VcIDsKK+WvvuWdkCA+IHRhaXphXCA7CivkvZnlvKYgPiB5b2dlblwgOwor6K2w6aGMID4gZ2lkYWlcIDsKK+iBlueBqyA+IHNlaWthXCA7CivlsI/llIQgPiBrb3V0YVwgOwor5L2Z5byKID4geW9oZWlcIDsKK+iFkOWIkSA+IGZ1a2VpXCA7CivkvbPlrrkgPiBrYXlvdVwgOwor5a625b6TID4ga2FqdXVcIDsKK+i1pOWtlyA+IGFrYWppXCA7CivppIrniLYgPiB5b3VmdVwgOwor5p2l55SxID4gcmFpeXVcIDsKK+S6iOefpSA+IHlvY2hpXCA7Civku67mrbsgPiBrYXNoaVwgOwor5LiA6KGMID4gaWtrb3VcIDsKK+S+v+WIqSA+IGJlbnJpXCA7Civku67mra8gPiBrYXNoaVwgOwor5qC55a2QID4gbmVra29cIDsKK+WvuOWcnyA+IHN1bmRvXCA7CivkvZXluqYgPiBuYW5kb1wgOwor5LqM55u4ID4gbmlzb3VcIDsKK+iDoeW6pyA+IGFndXJhXCA7Civos5vmrYwgPiBzYW5rYVwgOwor54+K55GaID4gc2FuZ29cIDsKK+ahiOWkliA+IGFuZ2FpXCA7Civkuovnm7ggPiBqaXNvdVwgOwor5a625bqtID4ga2F0ZWlcIDsKK+aer+atuyA+IGtvc2hpXCA7CivohIXlqIEgPiBreW91aVwgOwor5puz6IiqID4gZWlrb3VcIDsKK+eQhuazlSA+IHJpaG91XCA7CivpoqjntIAgPiBmdXVraVwgOwor5Luj5q+NID4gZGFpYm9cIDsKK+eTpuWFqCA+IGdhemVuXCA7CivlrrbluLggPiBrYWpvdVwgOwor5Lq654K6ID4gamluJydpXCA7CivkvJ3mkq0gPiBkZW5wYVwgOwor57216KiAID4gYmFnZW5cIDsKK+mojuWFtSA+IGtpaGVpXCA7CivkvY7luqYgPiB0ZWlkb1wgOwor5qGR5ZySID4gc291ZW5cIDsKK+S6kueUqCA+IGdveW91XCA7CivkuLvnvqkgPiBzaHVnaVwgOwor5p2h55CGID4gam91cmlcIDsKK+Wwj+WLoiA+IGtvemVpXCA7Civlr4Tlr5MgPiBraWd1dVwgOwor5bCK5Y2RID4gc29ucGlcIDsKK+WtpuacnyA+IGdha2tpXCA7CivkuoznlaogPiBuaWJhblwgOwor5pmC6ZmQID4gamlnZW5cIDsKK+iDjOW+jCA+IGhhaWdvXCA7CivniaHpub8gPiBvamlrYVwgOwor5LyB5pybID4ga2lib3VcIDsKK+acrOenkSA+IGhvbmthXCA7CivmnpzmsYEgPiBrYWp1dVwgOwor6aas5bGLID4gdW1heWFcIDsKK+mnheWkqyA+IGVraWZ1XCA7CivkvJ3mjoggPiBkZW5qdVwgOwor5LqL55SxID4gaml5dXVcIDsKK+S/juS4iiA+IHNvam91XCA7CivlsI/liKQgPiBrb2JhblwgOwor5Lm+55quID4ga2FucGlcIDsKK+e+vee/vCA+IHV5b2t1XCA7Civmnp3mr5sgPiBlZGFnZVwgOwor5a+/5Y+4ID4gc3VzaGlcIDsKK+S9nOWutiA+IHNha2thXCA7CivpppbluqcgPiBzaHV6YVwgOwor5pmu6YG4ID4gZnVzZW5cIDsKK+mmluW6nCA+IHNodWZ1XCA7CivkuqHniLYgPiBib3VmdVwgOwor5pmu6YGNID4gZnVoZW5cIDsKK+S9meWvkiA+IHlva2FuXCA7CivmmYLplpMgPiBqaWthblwgOwor5bCB5Y2wID4gZnV1aW5cIDsKK+itnOmdoiA+IGZ1bWVuXCA7Civku7vmnJ8gPiBuaW5raVwgOwor6LWt5ZyfID4gc2hhZG9cIDsKK+WutuWxiyA+IGthb2t1XCA7CivlrrblsYUgPiBrYWt5b1wgOwor6K6a6L6eID4gc2FuamlcIDsKK+iBluayuSA+IHNlaXl1XCA7CivohZDkubEgPiBmdXJhblwgOwor5bCC5YuZID4gc2VubXVcIDsKK+eMn+iZjiA+IHJha2tvXCA7Civmma7ovrogPiBmdWhlblwgOwor5a+d5Z2KID4gbmVib3VcIDsKK+mjtOeFriA+IGFtZW5pXCA7CivmnqLmqZ8gPiBzdXVraVwgOwor576k6IieID4gZ3VuYnVcIDsKK+agueWfuiA+IGtvbmtpXCA7CivkvY/lsYUgPiBzdW1haVwgOwor6IOD5byxID4gaWpha3VcIDsKK+S8neaJiyA+IHRzdXRlXCA7CivlrrXlr50gPiB5b2luZVwgOwor5a6j5biDID4gc2VucHVcIDsKK+i2s+S4iyA+IHNva2thXCA7CivlsI/lg6cgPiBrb3pvdVwgOwor5a6d5bqrID4gaG91a29cIDsKK+mghui3ryA+IGp1bnJvXCA7CivkuIrojbcgPiB1d2FuaVwgOwor5a625a6dID4ga2Fob3VcIDsKK+WwhOWIqSA+IHNoYXJpXCA7CivnjJvomY4gPiBtb3Vrb1wgOwor5a2X5pu4ID4gamlzaG9cIDsKK+S4gOiRpiA+IGljaGlpXCA7Civlrq7lsYUgPiBtaXlhaVwgOwor6LWk5ZywID4gYWthamlcIDsKK+S9kOWumCA+IHNha2FuXCA7CivohLHlhY4gPiBkYXR0b1wgOwor6IGW5q+NID4gc2VpYm9cIDsKK+e+vee5lCA+IGhhb3JpXCA7CivohYvkuIsgPiBla2lrYVwgOwor576p6IKiID4gZ2lzaGlcIDsKK+mojuS5lyA+IGtpam91XCA7Civkvo3lj7IgPiBqaXNoaVwgOwor5a6Y5bqcID4ga2FucHVcIDsKK+acquefpSA+IG1pY2hpXCA7CivmmpfoppYgPiBhbnNoaVwgOwor5p6X5qqOID4gcmluZ29cIDsKK+S7o+ahiCA+IGRhaWFuXCA7CivogZbmrYwgPiBzZWlrYVwgOwor5LuK5qyhID4ga29uamlcIDsKK+iytOauvyA+IGtpZGVuXCA7CivkuIvoiLkgPiBnZXNlblwgOwor5LqL54qvID4gamloYW5cIDsKK+mmluWwviA+IHNodWJpXCA7CivotorlhqwgPiBldHRvdVwgOwor5a6J5b+DID4gYW5qaW5cIDsKK+eMruiKsSA+IGtlbmthXCA7CivogLPmvI8gPiBqaXJvdVwgOwor6LOc5pqHID4gc2hpa2FcIDsKK+S4gOiMjiA+IGlra2VpXCA7Civotbfljp8gPiBraWdlblwgOwor6IO45ZuyID4ga3lvdWlcIDsKK+Wtl+aVsCA+IGppc3V1XCA7CivosqrmsZogPiB0YW4nJ29cIDsKK+ePreasoSA+IGhhbmppXCA7CivkuIvohb8gPiBrYXRhaVwgOwor6aST5q27ID4gZ2FzaGlcIDsKK+aYn+mbsiA+IHNlaXVuXCA7Civlr7/lg48gPiBqdXpvdVwgOwor5L6h5YCkID4ga2FjaGlcIDsKK+S4jeiDvSA+IGZ1bm91XCA7CivlppbprZQgPiB5b3VtYVwgOwor55Kw5YyWID4ga2Fua2FcIDsKK+S4gOiJmCA+IGlzc291XCA7CivmnaXmvJQgPiByYWllblwgOwor5auM55aRID4ga2VuZ2lcIDsKK+i1t+WLlSA+IGtpZG91XCA7Civku67mlbAgPiBrYXN1dVwgOwor5L2Z5aG1ID4geW9qaW5cIDsKK+aZruizoiA+IGZ1Z2VuXCA7CivkuIDoiKwgPiBpcHBhblwgOwor5LyR5oSPID4ga3l1dWlcIDsKK+mkiuavjSA+IHlvdWJvXCA7Civlrrblo7AgPiBrYXNlaVwgOwor5a6f5a62ID4gamlra2FcIDsKK+S4i+iCoiA+IGthc2hpXCA7CivpoJDoqIAgPiB5b2dlblwgOwor5LiA6Ie0ID4gaXRjaGlcIDsKK+mnheWToSA+IGVraWluXCA7CivkvJrlvpcgPiBldG9rdVwgOwor5a+d5Y+wID4gbmVkYWlcIDsKK+S4i+iBniA+IGthYnVuXCA7CivkvbPlk4EgPiBrYWhpblwgOwor5a+h5Y2gID4ga2FzZW5cIDsKK+S4jeiAgSA+IGZ1cm91XCA7CivotaTlkbMgPiBha2FtaVwgOwor6K236YCBID4gZ29zb3VcIDsKK+WvvuS+oSA+IHRhaWthXCA7Civkvo/lhJIgPiBzaHVqdVwgOwor5bCK5LiLID4gc29ua2FcIDsKK+S7luadkSA+IHRhc29uXCA7CivmnZzmvI8gPiB6dXJvdVwgOwor5a+h5YuiID4ga2F6ZWlcIDsKK+Wum+WtlyA+IGF0ZWppXCA7Civmn7vlrpogPiBzYXRlaVwgOwor5a6X5a62ID4gc291a2VcIDsKK+S+jeWDpyA+IGppc291XCA7CivkvZnlnLAgPiB5b2NoaVwgOwor54md6aasID4gaGluYmFcIDsKK+e+juiCsiA+IGJpaWt1XCA7CivmoYjliIYgPiBhbmJ1blwgOwor6IO95ZCPID4gbm91cmlcIDsKK+S7j+aenCA+IGJ1a2thXCA7CivogJDngasgPiB0YWlrYVwgOwor6ICB54i6ID4gcm91eWFcIDsKK+iAgeeItiA+IHJvdWZ1XCA7Civorabpg6ggPiBrZWlidVwgOwor6aCt6JOLID4genVnYWlcIDsKK+i1pOWMliA+IHNla2thXCA7CivnkIbmlbAgPiByaXN1dVwgOwor5Lqc5rWBID4gYXJ5dXVcIDsKK+i1t+WCtSA+IGtpc2FpXCA7CivosaHniZkgPiB6b3VnZVwgOwor5LiA6ICDID4gaWtrb3VcIDsKK+adseatjCA+IHRvdWthXCA7Civorabpgo8gPiBrZWlyYVwgOwor5a6J5bGFID4gYW5reW9cIDsKK+adseaspyA+IHRvdW91XCA7Civpp4bli5UgPiBrdWRvdVwgOwor5a655ZmoID4geW91a2lcIDsKK+i0lOWxkyA+IGhpaWtpXCA7Civlr6HlhbUgPiBrYWhlaVwgOwor5LiW57SAID4gc2Vpa2lcIDsKK+S7luaWuSA+IHRhaG91XCA7Civku4rmnJ8gPiBrb25raVwgOwor5p6c5patID4ga2FkYW5cIDsKK+S7u+aEjyA+IG5pbicnaVwgOwor6aGe57iBID4gcnVpZW5cIDsKK+S9meWWmCA+IHlvemVuXCA7CivorpLoqqMgPiB6YW5idVwgOwor5Lqh5q+NID4gYm91Ym9cIDsKK+aenOaVoiA+IGtha2FuXCA7CivlronlrpogPiBhbnRlaVwgOwor5LiL57eaID4ga2FzZW5cIDsKK+S4i+e3kiA+IHNhZ2VvXCA7CivlroflrpkgPiB1Y2h1dVwgOwor6K6S6Ki0ID4gemFuc29cIDsKK+WumOWlsyA+IGthbmpvXCA7Civpn7PoqakgPiBvbnNoaVwgOwor5LiN57SUID4gZnVqdW5cIDsKK+S4jee0jSA+IGZ1bm91XCA7CivkvI7lt6UgPiBnaWtvdVwgOwor6Z+z6KiTID4gb25rdW5cIDsKK+izouaEmiA+IGtlbmd1XCA7Civog4Plo4EgPiBpaGVraVwgOwor5L2Z5ZG9ID4geW9tZWlcIDsKK+S8neWutiA+IGRlbmthXCA7CivmnZzmsI8gPiB0b3VqaVwgOwor5LiN57KLID4gYnVzdWlcIDsKK+WmlumbsiA+IHlvdXVuXCA7CivotbTku7sgPiBmdW5pblwgOwor6LOm5oCnID4gZnVzZWlcIDsKK+mmtOWMliA+IGp1bmthXCA7CivkuIDnt5ogPiBpc3NlblwgOwor5LiA57eSID4gaXNzaG9cIDsKK+S7o+aJkyA+IGRhaWRhXCA7Civku67mg7MgPiBrYXNvdVwgOwor5qGI5Lu2ID4gYW5rZW5cIDsKK+eNo+eariA+IGp1dWhpXCA7CivkupTmrrUgPiBnb2RhblwgOwor6LOb5oSPID4gc2FuJydpXCA7Civmnb/mnKggPiBoYW5naVwgOwor6LK05pa5ID4ga2lob3VcIDsKK+mjouawkSA+IGtpbWluXCA7CivkuIDntbEgPiBpdHRvdVwgOwor6aOb5rOJID4gaGlzZW5cIDsKK+acqueEtiA+IG1pemVuXCA7Civpp5DkvIogPiBjaHV1aVwgOwor5aW96aSMID4ga291amlcIDsKK+aYoOmFjSA+IGVpaGFpXCA7CivlrrblkJsgPiBrYWt1blwgOwor5a2k5biGID4ga29oYW5cIDsKK+WutuWQjSA+IGthbWVpXCA7CivkuIDns7sgPiBpa2tlaVwgOwor5a+h5Lq6ID4ga2FqaW5cIDsKK+S7ruaApyA+IGthc2VpXCA7CivkvZzli5UgPiBzYWRvdVwgOwor5LiA57O4ID4gaXNzaGlcIDsKK+Wtl+W9oiA+IGppa2VpXCA7CivkuI3nrYkgPiBmdXRvdVwgOwor5qCh5YuZID4ga291bXVcIDsKK+S6uuaZgiA+IG5pbmppXCA7CivnvojntYYgPiBraWhhblwgOwor6aCt6ISzID4genVub3VcIDsKK+S9meWLoiA+IHlvc2VpXCA7CivkuIvnrYkgPiBrYXRvdVwgOwor6aeG5L2/ID4ga3VzaGlcIDsKK+S9s+S+iyA+IGthcmVpXCA7CivkuozmrbsgPiBuaXNoaVwgOwor5a6d5ZmoID4gaG91a2lcIDsKK+acqOeBsCA+IGtpYmFpXCA7CivkuIvnq68gPiBrYXRhblwgOwor5L2Z5YmwID4geW9qb3VcIDsKK+e+hee0lyA+IHJhc2hhXCA7CivlpYfpupcgPiBraXJlaVwgOwor5LuV5omLID4gc2hpdGVcIDsKK+WtpOWztiA+IGtvdG91XCA7CivppqzliLggPiBiYWtlblwgOwor5a6u5Y+4ID4gZ3V1amlcIDsKK+mmmeWRsyA+IGtvdW1pXCA7CivkvZnliIYgPiB5b2J1blwgOwor5Lyd5aWHID4gZGVua2lcIDsKK+eQhuaDsyA+IHJpc291XCA7CivkvbPku4AgPiBrYWp1dVwgOwor5L2z5Lq6ID4ga2FqaW5cIDsKK+S4gOeuoSA+IGlra2FuXCA7CivlrqXlkowgPiB5dXV3YVwgOwor5L2R5YqpID4geXV1am9cIDsKK+agoeWFtyA+IGtvdWd1XCA7CivorbDoq5YgPiBnaXJvblwgOwor5LiA562JID4gaXR0b3VcIDsKK+abuOeUuyA+IHNob2dhXCA7CivnjbLniakgPiBlbW9ub1wgOwor6IO95LqLID4gbm91amlcIDsKK+WlrumjmyA+IGZ1bnBpXCA7CivogqXlpKcgPiBoaWRhaVwgOwor5L2Z5YWaID4geW90b3VcIDsKK+S9meWFiSA+IHlva291XCA7CivosarmsJcgPiBnb3VraVwgOwor55CG5oCnID4gcmlzZWlcIDsKK+aZguirliA+IGppcm9uXCA7CivoraborbcgPiBrZWlnb1wgOwor6LKg5pWwID4gZnVzdXVcIDsKK+S6jOanmCA+IG5peW91XCA7CivnvqnnnLwgPiBnaWdhblwgOwor5p+75ZWPID4gc2Ftb25cIDsKK+eQhuW/tSA+IHJpbmVuXCA7CivpnZLppqwgPiBhb3VtYVwgOwor5L2O5YipID4gdGVpcmlcIDsKK+itq+iqniA+IHNlbmdvXCA7CivmnKrmuoAgPiBtaW1hblwgOwor5a625YaFID4ga2FuYWlcIDsKK+S4luefpSA+IHNlY2hpXCA7Civlrprlk6EgPiB0ZWlpblwgOwor6LK35omLID4ga2FpdGVcIDsKK+WuueWEgCA+IHlvdWdpXCA7Civlrp/lkKYgPiBqaXBwaVwgOwor5p2l5pyfID4gcmFpa2lcIDsKK+S5g+eItiA+IGRhaWZ1XCA7CivlrrblhYQgPiBrYWtlaVwgOwor5a2j5a2QID4ga2lzaGlcIDsKK+S6leahgSA+IGlnZXRhXCA7Civmmpfnv7MgPiBhbicnZWlcIDsKK+acqua4iCA+IG1pc2FpXCA7CivosrTmiYAgPiBraXNob1wgOwor5aeJ6LK0ID4gYW5la2lcIDsKK+aZguioiCA+IHRva2VpXCA7CivogIHmr40gPiByb3Vib1wgOwor5LuW5b+1ID4gdGFuZW5cIDsKK+Wum+WQjSA+IGF0ZW5hXCA7CivlpbPpm6MgPiBqb25hblwgOwor5aW06Zq3ID4gZG9yZWlcIDsKK+S4luebuCA+IHNlc291XCA7Civku7LlsYUgPiBuYWthaVwgOwor6aGV56S6ID4ga2VuamlcIDsKK+S4jeefpSA+IGZ1Y2hpXCA7CivlrpjlkI8gPiBrYW5yaVwgOwor5pyr5rS+ID4gbWFwcGFcIDsKK+S9leWAiyA+IG5hbmtvXCA7CivpnZ7pm6MgPiBoaW5hblwgOwor5LiL55+lID4gZ2VkamlcIDsKK+Wkqum8kyA+IHRhaWtvXCA7CivkuIvnnrAgPiBrYWthblwgOwor6aaZ5YW3ID4ga291Z3VcIDsKK+mgiOiHviA+IHNodXl1XCA7CivmnJ3mua8gPiBhc2F5dVwgOwor5LqU5pu4ID4gZ29zaG9cIDsKK+S6lOabtCA+IGdva291XCA7CivlpZTppqwgPiBob25iYVwgOwor6IGW5oGpID4gc2Vpb25cIDsKK+WrjOawlyA+IGtlbmtpXCA7Civlp5ToqJcgPiBpdGFrdVwgOwor5LiN55ygID4gZnVtaW5cIDsKK+S6nOaXjyA+IGF6b2t1XCA7Civnjovms5UgPiBvdWhvdVwgOwor5LuB5oWIID4gamluamlcIDsKK+S7ruWvkyA+IGthZ3V1XCA7Civku4/lvpIgPiBidXR0b1wgOwor55CG5belID4gcmlrb3VcIDsKK+adv+aIuCA+IGl0YWRvXCA7CivkurrmiJEgPiBqaW5nYVwgOwor5a625L6LID4ga2FyZWlcIDsKK+iyp+aJkyA+IGhpbmRhXCA7CivkvZnkurogPiB5b25pblwgOwor5LuW5bqXID4gdGF0ZW5cIDsKK+Wkp+m7hCA+IGRhaW91XCA7CivkuIrnnYAgPiB1d2FnaVwgOwor5aSn6bq7ID4gdGFpbWFcIDsKK+acrOawlyA+IGhvbmtpXCA7Civku67lrpogPiBrYXRlaVwgOwor5LuW5bm0ID4gdGFuZW5cIDsKK+iAgeaouSA+IHJvdWp1XCA7Civku5jluK8gPiBmdXRhaVwgOwor6IOO5YWQID4gdGFpamlcIDsKK+aYr+iqjSA+IHplbmluXCA7CivosqDmi4UgPiBmdXRhblwgOwor5a625LydID4ga2FkZW5cIDsKK+aal+e3miA+IGFuc2VuXCA7CivkuIrnm64gPiB1d2FtZVwgOwor5qCE5YagID4gZWlrYW5cIDsKK+S9juS+oSA+IHRlaWthXCA7CivnjovmsLQgPiBvdXN1aVwgOwor5LuK5b6MID4ga29uZ29cIDsKK+iBluW+kiA+IHNlaXRvXCA7CivkuJbnlYwgPiBzZWthaVwgOwor5qCE5YW4ID4gZWl0ZW5cIDsKK+Wtn+WlsyA+IG1vdWpvXCA7Civpo5vmnaUgPiBoaXJhaVwgOwor5a625LukID4ga2FyZWlcIDsKK+S6jOabuSA+IG5pc291XCA7Civkuozmm7QgPiBuaWtvdVwgOwor5a605LyaID4gZW5rYWlcIDsKK+mdkumbsiA+IHNlaXVuXCA7CivppqzkuIogPiBiYWpvdVwgOwor5LiK55quID4gam91aGlcIDsKK+S4gOefoiA+IGlzc2hpXCA7CivkvZnkuJYgPiB5b3NlaVwgOwor6aas5LiBID4gYmF0ZWlcIDsKK+WutuS7gCA+IGthanV1XCA7CivmoITlhYkgPiBlaWtvdVwgOwor5a625Lq6ID4ga2VuaW5cIDsKK+itpuihmyA+IGtlaWVpXCA7CivlrZ3lpbMgPiBrb3Vqb1wgOwor5LuB5oGVID4gamluam9cIDsKK+Wtn+WkjyA+IG1vdWthXCA7CivmlpHps6kgPiBpa2FydVwgOwor6aKo5rOiID4gZnV1aGFcIDsKK+adpeaPtCA+IHJhaWVuXCA7Civku4rluqYgPiBrb25kb1wgOwor5LiL55azID4gZ2VrYW5cIDsKK+S8muWToSA+IGthaWluXCA7Civkub7mnq8gPiBrYW5rb1wgOwor5a2k5Z+OID4ga29qb3VcIDsKK+mfs+iJsiA+IG5laXJvXCA7Civkub7mnpwgPiBrYW5rYVwgOwor6ICM5p2lID4gamlyYWlcIDsKK+adnOaSsCA+IHp1c2FuXCA7CivorY7oqZAgPiBraXNzYVwgOwor5LiK55aPID4gam91c29cIDsKK+S4i+eVqiA+IGthYmFuXCA7CivkuI3nlKggPiBmdXlvdVwgOwor6ICD5qGIID4ga291YW5cIDsKK+S4i+eVjCA+IGdla2FpXCA7CivkuIvnlLcgPiBnZW5hblwgOwor5LiL55SwID4gZ2VkZW5cIDsKK+S9juS4iyA+IHRlaWthXCA7CivnkIblrrkgPiByaXlvdVwgOwor5pqW57C+ID4gbm9yZW5cIDsKK+iytOW6lyA+IGtpdGVuXCA7Civkub7mnJ8gPiBrYW5raVwgOwor6ICD5p+7ID4ga291c2FcIDsKK+S7luWxsSA+IHRhemFuXCA7CivkvJ3lj5cgPiBkZW5qdVwgOwor5Li75ryUID4gc2h1ZW5cIDsKK+isnei+niA+IHNoYWppXCA7Civkuojmlq0gPiB5b2RhblwgOwor5a2Q5aWzID4gc2hpam9cIDsKK+S6uuW+jCA+IGppbmdvXCA7CivnjovmqKkgPiBvdWtlblwgOwor6aOb5pWjID4gaGlzYW5cIDsKK+aal+eulyA+IGFuemFuXCA7Civog47ku5QgPiB0YWlqaVwgOwor5Luu5aOwID4ga2FzZWlcIDsKK+WsjOaFiyA+IHNoaW5hXCA7Civnvarnp5EgPiB6YWlrYVwgOwor6IKl5Y6aID4gaGlrb3VcIDsKK+iyoOaApyA+IGZ1c2VpXCA7CivkupLmj5sgPiBnb2thblwgOwor576O55S3ID4gYmluYW5cIDsKK+mcsumhlSA+IHJva2VuXCA7Civnvo7nlLAgPiBiaWRlblwgOwor5Ly25L+QID4gcmVpcmlcIDsKK+WkqemtlCA+IHRlbm1hXCA7CivlrprkvqEgPiB0ZWlrYVwgOwor6Zyy6aCtID4gcm90b3VcIDsKK+iumue+jiA+IHNhbmJpXCA7CivkuIDnlJ8gPiBpc3NlaVwgOwor5a6J5YWoID4gYW56ZW5cIDsKK+S6lOaMhyA+IGdvc2hpXCA7CivogrLlhZAgPiBpa3VqaVwgOwor572M57KfID4ga2VzaGlcIDsKK+Wuo+S4iyA+IHNlbmdlXCA7Civku4/lrrYgPiBidWtrZVwgOwor54m56KiYID4gdG9ra2lcIDsKK+iyqOW5oyA+IGthaGVpXCA7CivlrpjkvY0gPiBrYW4nJ2lcIDsKK+S4gOeSsCA+IGlra2FuXCA7Civml6LpgYIgPiBraXN1aVwgOwor5a215Y21ID4gZnVyYW5cIDsKK+WujOWCmSA+IGthbmJpXCA7CivpoYznlLsgPiBkYWlnYVwgOwor5aW96YGLID4ga291dW5cIDsKK+iBluWvvyA+IHNlaWp1XCA7Civpo5vmj5ogPiBoaXlvdVwgOwor55CD5aiBID4ga3l1dWlcIDsKK+isueipsSA+IGtpbndhXCA7CivkuI3niq8gPiBmdWJvblwgOwor5LuK5a61ID4ga295b2lcIDsKK+WuiOWCmSA+IHNodWJpXCA7CivkupTmiJIgPiBnb2thaVwgOwor54yc55aRID4gc2FpZ2lcIDsKK+WumOS6iyA+IGthbmppXCA7CivmnZ7mhoIgPiBraXl1dVwgOwor5LuK5a2jID4ga29ua2lcIDsKK+eQhuWkliA+IHJpZ2FpXCA7CivpnaLpg6ggPiBtZW5idVwgOwor5piO6KiYID4gbWVpa2lcIDsKK+S7luWnkyA+IHRhc2VpXCA7CivlpbPpg44gPiBqb3JvdVwgOwor5aSp6aasID4gdGVuYmFcIDsKK+iyoeW4gyA+IHNhaWZ1XCA7CivmnKrmnaUgPiBtaXJhaVwgOwor5LiN54eDID4gZnVuZW5cIDsKK+S4gOeMriA+IGlra29uXCA7CivkupTmhJ8gPiBnb2thblwgOwor5pa96YygID4gc2Vqb3VcIDsKK+WuieS9jyA+IGFuanV1XCA7CivogLPlupUgPiBqaXRlaVwgOwor6Z2e6YGTID4gaGlkb3VcIDsKK+S6lOaDhSA+IGdvam91XCA7CivpnKfpm7AgPiBtdWZ1blwgOwor5p2/5bGLID4gaXRheWFcIDsKK+S4gOeKrCA+IGlra2VuXCA7CivkupTmgqogPiBnb2FrdVwgOwor5a2m5Yy6ID4gZ2Fra3VcIDsKK+S6uuWvvyA+IGppbmp1XCA7CivmnInmqZ8gPiB5dXVraVwgOwor6K6D576OID4gc2FuYmlcIDsKK+S4jueCuSA+IHlvdGVuXCA7CivkuIDniYggPiBpcHBhblwgOwor5Lq65a62ID4gamlua2FcIDsKK+mgreeariA+IHRvdWhpXCA7CivmnKrmmI4gPiBtaW1laVwgOwor5LqS5oG1ID4gZ29rZWlcIDsKK+S6i+aFiyA+IGppdGFpXCA7CivmnpzloLEgPiBrYWhvdVwgOwor6Z2i6LyqID4gb21vd2FcIDsKK+iyp+WvjCA+IGhpbnB1XCA7Civnj77loLQgPiBnZW5iYVwgOwor6LKn5a62ID4gaGlua2FcIDsKK+mkiuWutiA+IHlvdWthXCA7CivoqrLpoYwgPiBrYWRhaVwgOwor6aGe54GrID4gcnVpa2FcIDsKK+WtmOWQpiA+IHpvbnBpXCA7CivkuqTlt64gPiBrb3VzYVwgOwor5p2/5a2QID4gaXRhZ29cIDsKK+WloOmDvSA+IHRlbnRvXCA7Civkuovmg4UgPiBqaWpvdVwgOwor6LK05aeJID4ga2lzaGlcIDsKK+S6iOaEnyA+IHlva2FuXCA7CivogZblpJwgPiBzZWl5YVwgOwor5LuK5aSPID4ga29ua2FcIDsKK+Wtl+WPtyA+IGppZ291XCA7Civkuojmg7MgPiB5b3NvdVwgOwor5LqU5b2pID4gZ29zYWlcIDsKK+S7u+WLmSA+IG5pbm11XCA7Civmlrnph4wgPiBob3VyaVwgOwor546L5pS/ID4gb3VzZWlcIDsKK+Wto+WIiiA+IGtpa2FuXCA7Civmnrblj7AgPiBrYWRhaVwgOwor576O54K5ID4gYml0ZW5cIDsKK+S6jOW/tSA+IG5pbmVuXCA7CivorJvoqbEgPiBrb3V3YVwgOwor5LiA54K5ID4gaXR0ZW5cIDsKK+izm+WQpiA+IHNhbnBpXCA7CivlpKfpm6ggPiBvb2FtZVwgOwor5aSV6aSJID4geXV1Z2VcIDsKK+WkqumZsCA+IHRhaWluXCA7CivmnJ3ml6UgPiBhc2FoaVwgOwor5Luj5ZOhID4gZGFpaW5cIDsKK+S4iua8lCA+IGpvdWVuXCA7Civpm7Lpq5ggPiB1bmtvdVwgOwor5LqU5bi4ID4gZ29qb3VcIDsKK+aWh+mbhSA+IGJ1bmdhXCA7CivkuqTlsL4gPiBrb3ViaVwgOwor5LiN5rqAID4gZnVtYW5cIDsKK+i0iOS4jiA+IHpvdXlvXCA7CivkubHmiZMgPiByYW5kYVwgOwor5aSW6aGMID4gZ2VkYWlcIDsKK+eJoeigoyA+IGJvcmVpXCA7Civlpa7otbcgPiBmdW5raVwgOwor5Lq65aSrID4gbmlucHVcIDsKK+iAtuWsoiA+IHlham91XCA7CivkupLluIIgPiBnb3NoaVwgOwor6aSK5aWzID4geW91am9cIDsKK+WmhOiqniA+IG1vdWdvXCA7Civosp7lqaYgPiB0ZWlmdVwgOwor576p5rCRID4gZ2ltaW5cIDsKK+WkmumdoiA+IHRhbWVuXCA7CivogLPlrZQgPiBqaWtvdVwgOwor6Kqe6aGeID4gZ29ydWlcIDsKK+aWuemAlCA+IGhvdXRvXCA7Civku4/lmaggPiBidWtraVwgOwor5Lqk5a6cID4ga291Z2lcIDsKK+aXpeiqsiA+IG5pa2thXCA7Civoga/lj6UgPiByZW5rdVwgOwor6Kqe6aCtID4gZ290b3VcIDsKK+S6nOWxniA+IGF6b2t1XCA7CivmnInmnJ8gPiB5dXVraVwgOwor6LOb5YqpID4gc2Fuam9cIDsKK+iqnumghiA+IGdvanVuXCA7CivkuLvmn7sgPiBzaHVzYVwgOwor5a2j5YCZID4ga2lrb3VcIDsKK+WkmumboyA+IHRhbmFuXCA7CivlrZflhbggPiBqaXRlblwgOwor6LK05ZywID4ga2ljaGlcIDsKK+S7o+WNsCA+IGRhaWluXCA7Civnvqnmra8gPiBnaXNoaVwgOwor5aW96Kq8ID4ga291Z2lcIDsKK+S4jea1hCA+IGZ1am91XCA7Civml6XoqJggPiBuaWtraVwgOwor5Lul5YyXID4gaWhva3VcIDsKK+WtkOWIhiA+IGtvYnVuXCA7CivnjJvngasgPiBtb3VrYVwgOwor5aSW6ZyAID4gZ2FpanVcIDsKK+WtpuS9jSA+IGdha3VpXCA7CivmnKzmiYsgPiBob250ZVwgOwor5p2l5a2jID4gcmFpa2lcIDsKK+iynuWlsyA+IHRlaWpvXCA7Civpn7PnqIsgPiBvbnRlaVwgOwor57+75oSPID4gaG9uJydpXCA7CivorIDorbAgPiBib3VnaVwgOwor5LiN5rOVID4gZnVob3VcIDsKK+e+jua4ryA+IGJpa291XCA7Civku6Pli5kgPiBkYWltdVwgOwor5LiN5rK7ID4gZnVjaGlcIDsKK+e+hea8oiA+IHJha2FuXCA7CivppKzlj6MgPiBrb2tvdVwgOwor572554G9ID4gcmlzYWlcIDsKK+acquaIkCA+IG1pc2VpXCA7CivmnIDmnJ8gPiBzYWlnb1wgOwor6Zuq6aeEID4gc2V0dGFcIDsKK+WklemZvSA+IHl1dWhpXCA7CivlpJzplpMgPiB5YWthblwgOwor5Lqh5ammID4gYm91ZnVcIDsKK+Wlh+mBhyA+IGtpZ3V1XCA7Civmm7jmnrYgPiBzaG9rYVwgOwor6ICB5b6MID4gcm91Z29cIDsKK+S7gOWZqCA+IGp1dWtpXCA7Civml4XosrsgPiByeW9oaVwgOwor5LqV5a6IID4gaW1vcmlcIDsKK+mdkuiynSA+IGFvZ2FpXCA7CivkuIvmsLQgPiBnZXN1aVwgOwor5LqU5a6YID4gZ29rYW5cIDsKK+WliOi+uiA+IG5haGVuXCA7CivmlbTpmaQgPiBzZWlqb1wgOwor5LiN5q+bID4gZnVtb3VcIDsKK+S4i+awkSA+IGdlbWluXCA7CivmnKzmhI8gPiBob24nJ2lcIDsKK+WrjOaCqiA+IGtlbicnb1wgOwor5pen6KGjID4ga3l1dWlcIDsKK+iyp+WcnyA+IGhpbmRvXCA7Civml6Loo70gPiBraXNlaVwgOwor6Zu76ZuiID4gZGVucmlcIDsKK+S4iuawlyA+IGpvdWtpXCA7CivpoZ7mr5QgPiBydWloaVwgOwor6aOi5a+SID4ga2lrYW5cIDsKK+S4gOa0lyA+IGlzc2VuXCA7CivkuIvmrr8gPiBnZWRlblwgOwor5LiN5q27ID4gZnVzaGlcIDsKK+S4i+autSA+IGdlZGFuXCA7Civpm7bpnLIgPiByZWlyb1wgOwor5LiN5q2jID4gZnVzZWlcIDsKK+S6jOWwgSA+IG5pZnV1XCA7Civpm7fpm7IgPiByYWl1blwgOwor5a2X5L2TID4gaml0YWlcIDsKK+acn+aIkCA+IGtpc2VpXCA7Civku5bli5UgPiB0YWRvdVwgOwor6aGe5q2MID4gcnVpa2FcIDsKK+isgeimiyA+IGVra2VuXCA7CivkuqHlpKsgPiBib3VmdVwgOwor5LiK5q2vID4gdXdhYmFcIDsKK+S6jOWuriA+IG5pZ3V1XCA7CivmlpfphZIgPiB0b3NodVwgOwor5LuW5YqxID4gdGFyZWlcIDsKK+S4jeashCA+IGZ1cmFuXCA7Civnj63lk6EgPiBoYW5pblwgOwor6Ku36KqmID4gZnV1anVcIDsKK+WrjOW/jCA+IGtlbmdpXCA7Civku4rlj6QgPiBraW5rb1wgOwor6Kuu6K2wID4gc2hpZ2lcIDsKK+S4ieasoSA+IHNhbmppXCA7CivkuIDmsLQgPiBpc3N1aVwgOwor5LuH5ZCNID4gYWRhbmFcIDsKK+S6iOWumiA+IHlvdGVpXCA7CivosrTlkJsgPiBraWt1blwgOwor5pat6LevID4gZGFucm9cIDsKK+eLvOeFmSA+IHJvdWVuXCA7CivosrTlkI0gPiBraW1laVwgOwor6LK05Y+wID4ga2lkYWlcIDsKK+S7ruS7pCA+IHRhdG9lXCA7CivkuIDmrrUgPiBpdHRhblwgOwor5aWz6KOFID4gam9zb3VcIDsKK+eJm+iSoSA+IGdvYm91XCA7CivmmpfnhLYgPiBhbnplblwgOwor5LiA5q27ID4gaXNzaGlcIDsKK+S4gOatsyA+IGlzc2FpXCA7CivmnaXloLQgPiByYWliYVwgOwor6Kqy6YeRID4ga2FraW5cIDsKK+mfs+ebpCA+IG9uYmFuXCA7Civku4vliqkgPiBrYWlqb1wgOwor5LiH5qmfID4gYmFua2lcIDsKK+mjr+WgtCA+IGhhbmJhXCA7Civnvormra8gPiBzaGlkYVwgOwor6aKo5oOFID4gZnV6ZWlcIDsKK+S7o+S+oSA+IGRhaWthXCA7CivmnrbkuIogPiBrYWpvdVwgOwor5aOw6Z+zID4gc2Vpb25cIDsKK+aal+eCuSA+IGFudGVuXCA7Civni7zngasgPiByb3VrYVwgOwor5LuV5YSAID4gc2hpZ2lcIDsKK+aalueCiSA+IGRhbnJvXCA7CivpnZ7ooYwgPiBoaWtvdVwgOwor5Lm+5a2jID4ga2Fua2lcIDsKK+Wkp+mDqCA+IGRhaWJ1XCA7CivlpYnos4AgPiBob3VnYVwgOwor6LGq5a62ID4gZ291a2FcIDsKK+aZguepuiA+IGppa3V1XCA7Civpn7Pnl7QgPiBvbmNoaVwgOwor5pyf5b6FID4ga2l0YWlcIDsKK+aWh+mDqCA+IG1vbmJ1XCA7CivkupXloLAgPiBpc2VraVwgOwor5aSn6YGOID4gdGFpa2FcIDsKK+aal+a+uSA+IGFudGFuXCA7CivnjovluKsgPiBvdXNoaVwgOwor6Kmx6aGMID4gd2FkYWlcIDsKK+S6i+WkpyA+IGppZGFpXCA7CivlpJrph40gPiB0YWp1dVwgOwor6Kmx6aCtID4gd2F0b3VcIDsKK+S6jOWjqyA+IG5pc2hpXCA7CivkuovlpIkgPiBqaWhlblwgOwor5pmp55SfID4gb2t1dGVcIDsKK+mbqOmWkyA+IGFtYWFpXCA7CivlppboibYgPiB5b3VlblwgOwor5aSW6YeOID4gZ2FpeWFcIDsKK+S4i+agoSA+IGdla291XCA7Civnj77kvqEgPiBnZW5rYVwgOwor6KuW6K2wID4gcm9uZ2lcIDsKK+iyoOWPtyA+IGZ1Z291XCA7Civoqabpo7IgPiBzaGlpblwgOwor6Kqt6YGOID4gZG9ra2FcIDsKK+aYjue+jiA+IG1laWJpXCA7Civku5jkvJogPiBmdWthaVwgOwor6LK05YWsID4ga2lrb3VcIDsKK+iri+iyoCA+IHVrZW9pXCA7CivkuLvmiJEgPiBzaHVnYVwgOwor6aO95ZKMID4gaG91d2FcIDsKK+S6jOWhgSA+IG5pcnVpXCA7CivoqqTphY0gPiBnb2hhaVwgOwor6LK05YWEID4ga2lrZWlcIDsKK+Wlh+itpiA+IGtpa2VpXCA7Civpm6LplpMgPiByaWthblwgOwor57+75a2XID4gaG9uamlcIDsKK+mjm+WgsSA+IGhpaG91XCA7CivosrTlg6cgPiBraXNvdVwgOwor57mL6L6eID4ga2VpamlcIDsKK+aXpeiPryA+IG5pa2thXCA7CivkuojloLEgPiB5b2hvdVwgOwor5LuW5Lq6ID4gdGFuaW5cIDsKK+mbhOmjmyA+IHl1dWhpXCA7CivlpJbpg6ggPiBnYWlidVwgOwor6KuW6KqeID4gcm9uZ29cIDsKK+abnOaXpSA+IHlvdWJpXCA7CivogIHlqaYgPiByb3VmdVwgOwor5aSW6YOOID4gdWlyb3VcIDsKK+mdkuidvyA+IGFvYmFlXCA7Civnvajms5UgPiBhbnBvdVwgOwor5pqX5rigID4gYW5reW9cIDsKK+iAgeWphiA+IHJvdWJhXCA7CivlpYfoq4cgPiBraWRhblwgOwor6LKh5YuZID4gemFpbXVcIDsKK+S4i+abuCA+IGdlc2hvXCA7Civkuq3ljYggPiB0ZWlnb1wgOwor5pa96KGMID4gc2Vrb3VcIDsKK+S4gOagoSA+IGlra291XCA7CivmnIDmhJsgPiBzYWlhaVwgOwor5puW5pinID4gYWltYWlcIDsKK+aXqeiLlyA+IHNhbmFlXCA7CivkuIfmnLYgPiBiYW5kYVwgOwor5pys5a62ID4gaG9ua2VcIDsKK+WklumBkyA+IGdlZG91XCA7CivlqprmhYsgPiBiaXRhaVwgOwor5pmC55+tID4gaml0YW5cIDsKK+aal+a2mSA+IGFucnVpXCA7CivmnInlv4MgPiB1c2hpblwgOwor54++5LiWID4gZ2VuemVcIDsKK+S6jOWbniA+IG5pa2FpXCA7Civnj77kuIsgPiBnZW5rYVwgOwor5pqi5rCXID4gbm9ua2lcIDsKK+iAgeWmkyA+IHJvdWdpXCA7CivmnKrlrpogPiBtaXRlaVwgOwor6ICV5ZyfID4ga291ZG9cIDsKK+acrOWtlyA+IGhvbmppXCA7CivkuI3mmJMgPiBmdWVraVwgOwor5Lqk5Y+JID4ga291c2FcIDsKK+acquWujCA+IG1pa2FuXCA7CivlpYfoqIggPiBraWtlaVwgOwor5LiN5piOID4gZnVtZWlcIDsKK+iyvOS7mCA+IHRlbnB1XCA7CivmnKvlraMgPiBtYWtraVwgOwor6ICB5aWzID4gcm91am9cIDsKK+S4u+aBqSA+IHNodW9uXCA7CivkuIDmna8gPiBpcHBhaVwgOwor576O5pysID4gYmlob25cIDsKK+S4ieaZgiA+IHNhbmppXCA7CivkuIrmmKAgPiBqb3VlaVwgOwor5aWH6KazID4ga2lrYW5cIDsKK+eOi+WtqyA+IG91c29uXCA7CivkuIvml6wgPiBnZWp1blwgOwor5LiN5patID4gZnVkYW5cIDsKK+S4gOacrCA+IGlwcG9uXCA7CivkuI3mlokgPiBmdXNlaVwgOwor5LiN5paHID4gZnVidW5cIDsKK+adkOWZqCA+IHphaWtpXCA7CivkuIvmlrkgPiBrYWhvdVwgOwor5LiN5pW0ID4gZnVzZWlcIDsKK+S4jeaVrCA+IGZ1a2VpXCA7CivkuInml6UgPiBtaWtrYVwgOwor5LiA5pu5ID4gaXNzb3VcIDsKK+S4gOabuCA+IGlzc2hvXCA7CivmmYLnm7ggPiBqaXNvdVwgOwor5LiA5pu0ID4gaWtrb3VcIDsKK+Wni+elliA+IHNoaXNvXCA7CivkuI3mlZcgPiBmdWhhaVwgOwor5LiN5pWPID4gZnViaW5cIDsKK+WkqeizpiA+IHRlbnB1XCA7CivosY7lrZAgPiBqdXNoaVwgOwor6LGK5a+MID4gaG91ZnVcIDsKK+e+juaZryA+IGJpa2VpXCA7CivpnLLoposgPiByb2tlblwgOwor576p5oyZID4gZ2lreW9cIDsKK+S4i+aUviA+IGthaG91XCA7Civoq4foqbEgPiBkYW53YVwgOwor5pyA5b6MID4gc2FpZ29cIDsKK+iytOS6uiA+IGtpamluXCA7CivmlazpgaAgPiBrZWllblwgOwor5pyq5amaID4gbWlrb25cIDsKK+acneWvnSA+IGFzYW5lXCA7CivosrjkuI4gPiB0YWl5b1wgOwor5LqY5Y+kID4ga291a29cIDsKK+aaluawlyA+IG5vbmtpXCA7Civkub7lm7ogPiBrYW5rb1wgOwor5LiN5pKTID4gZnV0b3VcIDsKK+e2uum6lyA+IGtpcmVpXCA7CivosqDlgrUgPiBmdXNhaVwgOwor5LmZ5a2QID4gb3RvZ29cIDsKK+WpmuacnyA+IGtvbmtpXCA7CivlpKfosYYgPiBkYWl6dVwgOwor6Kyb576pID4ga291Z2lcIDsKK+mbqOmHjyA+IHVyeW91XCA7CivkuIDml6YgPiBpdHRhblwgOwor5aWH6KGMID4ga2lrb3VcIDsKK+S6uuS9jSA+IGppbicnaVwgOwor576p5omLID4gZ2lzaHVcIDsKK+e+juaWhyA+IGJpYnVuXCA7CivkuIDmlrkgPiBpcHBvdVwgOwor5pqR5rCXID4gc2hva2lcIDsKK+S4gOaWpCA+IGlra2luXCA7CivnvqnmiKYgPiBnaXNlblwgOwor5LiA5paRID4gaXBwYW5cIDsKK+S4gOaWiSA+IGlzc2VpXCA7CivoqrnorJcgPiBoaWJvdVwgOwor5peX6ImmID4ga2lrYW5cIDsKK+e3i+mviSA+IGhpZ29pXCA7CivkuIDmlZcgPiBpcHBhaVwgOwor576I5peFID4ga2lyeW9cIDsKK+S6lOWNgSA+IGdvanV1XCA7CivnvqnmhqQgPiBnaWZ1blwgOwor5LqM5ZCbID4gbmlrdW5cIDsKK+S4luaJjSA+IHNlc2FpXCA7CivosqvkuLsgPiBrYW5qdVwgOwor5LqM5Y+3ID4gbmlnb3VcIDsKK+acgOW3piA+IHNhaXNhXCA7CivmnKrlor4gPiBtaWtvblwgOwor5Lqh5YWQID4gYm91amlcIDsKK+abuOW6qyA+IHNob2tvXCA7CivmnKzloLQgPiBob25iYVwgOwor6Zu76LevID4gZGVucm9cIDsKK+WkluiyqCA+IGdhaWthXCA7CivkuZnlpbMgPiBvdG9tZVwgOwor5paH6KqeID4gYnVuZ29cIDsKK+S4luaFiyA+IHNldGFpXCA7CivnjqnlkbMgPiBnYW5taVwgOwor6aGn5oWuID4ga29yeW9cIDsKK+iqmOi1tyA+IHl1dWtpXCA7CivkuI3miY0gPiBmdXNhaVwgOwor5aSc6K2mID4geWFrZWlcIDsKK+maoOmhlSA+IGlua2VuXCA7CivkuI3miKYgPiBmdXNlblwgOwor546L5Z+OID4gb3Vqb3VcIDsKK+S4gOaOgyA+IGlzc291XCA7CivkuIrmiYsgPiBqb3V6dVwgOwor5pys5ZyfID4gaG9uZG9cIDsKK+S4luaDhSA+IHNlam91XCA7CivkuIrmiLggPiBqb3Vnb1wgOwor576O5oyZID4gYmlreW9cIDsKK+WkmuisnSA+IHRhc2hhXCA7CivkuI3mhqsgPiBmdWJpblwgOwor5LqL5YmNID4gaml6ZW5cIDsKK+S4gOaMmSA+IGlra3lvXCA7Civpm6LovrIgPiByaW5vdVwgOwor5LiH5oi4ID4gYmFua29cIDsKK+S4gOaMhyA+IGlzc2hpXCA7Civpn7PmupAgPiBvbmdlblwgOwor5LiN5oWuID4gZnVyeW9cIDsKK+iAs+S7iyA+IGppa2FpXCA7CivkuozliIYgPiBuaWJ1blwgOwor5pqr5pmCID4gemFuamlcIDsKK+aYjuekuiA+IG1laWppXCA7Civlo67pgJQgPiBzb3V0b1wgOwor5Li75a62ID4gc2h1a2FcIDsKK+maoOmdoiA+IGlubWVuXCA7CivkuqTku5ggPiBrb3VmdVwgOwor6Ki06aGYID4gc29nYW5cIDsKK+S4jeaEjSA+IGZ1YmluXCA7CivnvqnlvJ8gPiBnaXRlaVwgOwor54i26ICBID4gZnVyb3VcIDsKK+eOh+WcnyA+IHNvdHRvXCA7CivkuqTkupIgPiBrb3Vnb1wgOwor6Kqk6KqNID4gZ29uaW5cIDsKK+mbqui4jyA+IHNldHRhXCA7CivlpKnooaMgPiB0ZW4nJ2lcIDsKK+mdoue9tSA+IG1lbmJhXCA7CivkuIDmiY0gPiBpc3NhaVwgOwor5LqL5YW4ID4gaml0ZW5cIDsKK+WkluiqniA+IGdhaWdvXCA7CivlpJroqIAgPiB0YWdlblwgOwor5LiA5oimID4gaXNzZW5cIDsKK+S4i+aDhSA+IGtham91XCA7CivkupTlgKsgPiBnb3JpblwgOwor6ICV5YW3ID4ga291Z3VcIDsKK+S6lOWAjSA+IGdvYmFpXCA7CivpoIbmrKEgPiBqdW5qaVwgOwor54qg54myID4gZ2lzZWlcIDsKK+iqpOinoyA+IGdva2FpXCA7CivoqqPoqIAgPiBmdWdlblwgOwor5pu45a62ID4gc2hva2FcIDsKK+mhmOaEjyA+IGdhbicnaVwgOwor6Kqe6KqMID4gZ29zaGlcIDsKK+ipremBkyA+IGtpZG91XCA7CivkuLvlqaYgPiBzaHVmdVwgOwor5pmv5rCXID4ga2Vpa2lcIDsKK+S4jeW/qyA+IGZ1a2FpXCA7CivpoqjlnJ8gPiBmdXVkb1wgOwor5Lit5bCJID4gY2h1dWlcIDsKK+mbo+i3ryA+IG5hbnJvXCA7Civnh4PosrsgPiBuZW5waVwgOwor576O5oSfID4gYmlrYW5cIDsKK+acieWkqyA+IHl1dWZ1XCA7CivkupTkvZMgPiBnb3RhaVwgOwor6ICB5YyWID4gcm91a2FcIDsKK+acieWkjyA+IHl1dWthXCA7Civlq4zlkbMgPiBpeWFtaVwgOwor5LiA5oSPID4gaWNoaWlcIDsKK+aZruautSA+IGZ1ZGFuXCA7CivkuozlgI0gPiBuaWJhaVwgOwor6K6a5q2MID4gc2Fua2FcIDsKK+S4i+W+oSA+IGdlZ3lvXCA7CivnjqnlhbcgPiBnYW5ndVwgOwor6Kmt6L6vID4ga2liZW5cIDsKK+S4jeW9kyA+IGZ1dG91XCA7CivlpaXnvqkgPiBva3VnaVwgOwor6Zu76KmxID4gZGVud2FcIDsKK+S4luW4ryA+IHNldGFpXCA7CivmmYLngrkgPiBqaXRlblwgOwor5pWs6KqeID4ga2VpZ29cIDsKK+WknOihjCA+IHlha291XCA7CivnjJvmiZMgPiBtb3VkYVwgOwor6ZyA6KaBID4ganV5b3VcIDsKK+Wkp+ibhyA+IGRhaWphXCA7CivkuIvlvKYgPiBrYWdlblwgOwor5pyx5Y2wID4gc2h1aW5cIDsKK+S6i+S+iyA+IGppcmVpXCA7CivlpJbooqsgPiBnYWloaVwgOwor5LqL5L2TID4gaml0YWlcIDsKK+acgOWkmiA+IHNhaXRhXCA7CivnibnnlbAgPiB0b2t1aVwgOwor5LiN5bm4ID4gZnVrb3VcIDsKK+miqOWWqSA+IGZ1dXl1XCA7CivkuI3lubMgPiBmdWhlaVwgOwor6aGV5b6uID4ga2VuYmlcIDsKK+Wls+ezuyA+IGpva2VpXCA7CivosLflnLAgPiB5YWNoaVwgOwor5LiK5bqnID4gam91emFcIDsKK+e4gei+uiA+IGVucGVuXCA7Civpm4TpgJQgPiB5dXV0b1wgOwor5LqL5Lu2ID4gamlrZW5cIDsKK+S4ieW6piA+IHNhbmRvXCA7CivkuInlupwgPiBzYW5wdVwgOwor5pSv6YOoID4gc2hpYnVcIDsKK+e+juW9oiA+IGJpa2VpXCA7Civlqr7lkowgPiBrb3V3YVwgOwor54i257O7ID4gZnVrZWlcIDsKK+S5l+WToSA+IGpvdWluXCA7Civkuojku6QgPiB5b3JlaVwgOwor5pSv6YKjID4gc2hpbmFcIDsKK+S4i+W3uyA+IGdla2FuXCA7CivkuozkuZcgPiBuaWpvdVwgOwor5LiK5biDID4gam91ZnVcIDsKK+iAgeWEkiA+IHJvdWp1XCA7CivmnKzli5kgPiBob25tdVwgOwor5LqM5LiWID4gbmlzZWlcIDsKK+S6jOS4iSA+IG5pc2FuXCA7CivorbLmuKEgPiBqb3V0b1wgOwor6aKo5ZGzID4gZnV1bWlcIDsKK+e+qeWtkCA+IGdpc2hpXCA7CivkuZ3ljYEgPiBrdWp1dVwgOwor57255oKjID4gcmlrYW5cIDsKK+acquWIsCA+IG1pdG91XCA7Civorbfms5UgPiBnb2hvdVwgOwor6ICM5LuKID4gamlrb25cIDsKK+ixmuWFkCA+IHRvbmppXCA7CivkuIDluK8gPiBpdHRhaVwgOwor6K6D5q2MID4gc2Fua2FcIDsKK+aXuuebmyA+IG91c2VpXCA7CivmnKrliIogPiBtaWthblwgOwor6Zuj6KqeID4gbmFuZ29cIDsKK+aVheiytyA+IGtvYmFpXCA7Civpm5HosrsgPiB6YXBwaVwgOwor546L5Yi2ID4gb3VzZWlcIDsKK+S4u+WboCA+IHNodWluXCA7CivmnLHlhJIgPiBzaHVqdVwgOwor6ZuR6LKoID4gemFra2FcIDsKK+Wlh+iBniA+IGtpYnVuXCA7CivkuI3lsL0gPiBmdWppblwgOwor5LiL5bGxID4gZ2V6YW5cIDsKK+aVl+iotCA+IGhhaXNvXCA7CivkuIvlsaQgPiBrYXNvdVwgOwor5aOw6KqJID4gc2VpeW9cIDsKK+mbhei2oyA+IGdhc2h1XCA7CivkuIrlsYsgPiB1d2F5YVwgOwor546L5YagID4gb3VrYW5cIDsKK+miqOWMliA+IGZ1dWthXCA7Civlo67oqp4gPiBzb3Vnb1wgOwor5LmX5YuZID4gam91bXVcIDsKK+aatOW+kiA+IGJvdXRvXCA7CivnjovlhawgPiBvdWtvdVwgOwor576p5aeJID4gZ2lzaGlcIDsKK+S4jeWuoyA+IGZ1c2VuXCA7CivnvqnlprkgPiBnaW1haVwgOwor546L5YWaID4gb3V0b3VcIDsKK+S4jeWumiA+IGZ1dGVpXCA7CivkuInlsIkgPiBzYW4nJ2lcIDsKK+mZuumYuyA+IGtlbnNvXCA7CivkuI3lrZ0gPiBmdWtvdVwgOwor5LiH5a+/ID4gYmFuanVcIDsKK+ipruitsCA+IHNlbmdpXCA7CivpoZ7lrZcgPiBydWlqaVwgOwor6ZmN6a2UID4gZ291bWFcIDsKK+WkqeiKsSA+IHRlbmthXCA7Civpn7PmoJMgPiBvbnNlblwgOwor576p5aOrID4gZ2lzaGlcIDsKK+S4gOWxpCA+IGlzc291XCA7Civpn7vmm7ggPiBpbnNob1wgOwor5pa957GzID4gc2VtYWlcIDsKK+ipnuizpiA+IHNoaWZ1XCA7CivmnJ/lhoUgPiBraW5haVwgOwor5pei55+lID4ga2ljaGlcIDsKK+itsuatqSA+IGpvdWhvXCA7Civoqa3orIAgPiBraWJvdVwgOwor5paH6IuRID4gYnVuZW5cIDsKK+mdmeepjyA+IHNlaW9uXCA7CivmnLrkuIogPiBraWpvdVwgOwor6Zmw6Zm6ID4gaW5rZW5cIDsKK+S4gOWwiSA+IGljaGlpXCA7CivkuIDlsIEgPiBpcHB1dVwgOwor576O5a65ID4gYml5b3VcIDsKK+aZqeacnyA+IGJhbmtpXCA7CivnuYHoj68gPiBoYW5rYVwgOwor6aC75bqmID4gaGluZG9cIDsKK+irh+e+qSA+IGRhbmdpXCA7CivpmqDpgYEgPiBpbnRvblwgOwor6Z2e56S8ID4gaGlyZWlcIDsKK+acrOS9jSA+IGhvbicnaVwgOwor5LiA5a6aID4gaXR0ZWlcIDsKK+eOi+S+ryA+IG91a291XCA7CivpoJPmjKsgPiB0b256YVwgOwor5LiB5a2XID4gdGVpamlcIDsKK+mbkeiomCA+IHpha2tpXCA7CivkuI3lp5kgPiBmdW5pblwgOwor6Zqg6YCAID4gaW50YWlcIDsKK+mdseeariA+IGppbnBpXCA7CivpoqjlhIAgPiBmdXVnaVwgOwor6Kmp6KqeID4gc2hpZ29cIDsKK+ipreioiCA+IGtpa2VpXCA7CivpmaTpnJwgPiBqb3NvdVwgOwor5aiB5pyNID4gaWZ1a3VcIDsKK+mZpOmciiA+IGpvcmVpXCA7CivkuI3lpoogPiBmdW5pblwgOwor5aGp6aGeID4gZW5ydWlcIDsKK+mZsOmWgCA+IGlubW9uXCA7Civml6fnl74gPiBreXV1YVwgOwor6Z+75paHID4gaW5idW5cIDsKK+e4geirhyA+IGVuZGFuXCA7Civpna3nmq4gPiBqaW5waVwgOwor5pyA5Y+kID4gc2Fpa29cIDsKK+e5geiMgiA+IGhhbm1vXCA7CivlpJroirggPiB0YWdlaVwgOwor6Zmk6ZqKID4gam90YWlcIDsKK+WpmuWutiA+IGtvbmthXCA7CivkuI3lpIkgPiBmdWhlblwgOwor6aGM5a2XID4gZGFpamlcIDsKK+S4ieWlsyA+IHNhbmpvXCA7CivlpJboi5EgPiBnYWllblwgOwor5pyr5LiWID4gbWFzc2VcIDsKK+acieWIqSA+IHl1dXJpXCA7CivkuIvlo6sgPiBrYXNoaVwgOwor5LiJ5aSPID4gc2Fua2FcIDsKK+eJoeeJmyA+IG91c2hpXCA7CivkuIflpKsgPiBiYW5wdVwgOwor5Li75YuZID4gc2h1bXVcIDsKK+eJiOeUuyA+IGhhbmdhXCA7Civoq63npLogPiB5dXNoaVwgOwor6Zu76I23ID4gZGVua2FcIDsKK+mbheiogCA+IGdhZ2VuXCA7CivkuI3loKogPiBmdWthblwgOwor5pqX5b2xID4gYW4nJ2VpXCA7CivpnZLno4EgPiBzZWlqaVwgOwor54Sh6aKoID4gbXVmdXVcIDsKK+mdoueariA+IG1lbnBpXCA7CivpoK3lt74gPiB6dWtpblwgOwor5aSn576pID4gdGFpZ2lcIDsKK+eEoemhniA+IG11cnVpXCA7Civnvo7lpKcgPiBiaWRhaVwgOwor57ea6LevID4gc2Vucm9cIDsKK+eEoemhjCA+IG11ZGFpXCA7CivnhKHpoLwgPiBidXJhaVwgOwor6Kmm6KOcID4gc2hpaG9cIDsKK+mgkeaEmiA+IGdhbmd1XCA7CivkuIDlpKkgPiBpdHRlblwgOwor576O5aOwID4gYmlzZWlcIDsKK+WkmuiDvSA+IHRhbm91XCA7CivkuIvln44gPiBnZWpvdVwgOwor5piv5q2jID4gemVzZWlcIDsKK+S4gOWkiSA+IGlwcGVuXCA7CivnvbflrpggPiBoaWthblwgOwor5pWj6I+vID4gc2FuZ2VcIDsKK+S4gOWjqyA+IGlzc2hpXCA7CivkuIvlnoIgPiBrYXN1aVwgOwor5aSP6IezID4gZ2VzaGlcIDsKK+e3j+i6qyA+IHNvdW1pXCA7CivkuI3lnKggPiBmdXphaVwgOwor5Lit5Yy7ID4gY2h1dWlcIDsKK+iqpOiBniA+IGdvYnVuXCA7CivkuIDloLEgPiBpcHBvdVwgOwor5LiK5ZuzID4gam91enVcIDsKK+mdoueUuyA+IG1lbmdhXCA7CivnhZnpgZMgPiBlbmRvdVwgOwor5aWz55SfID4gam9zZWlcIDsKK+eEoembuyA+IG11ZGVuXCA7CivnhKHpm6MgPiBidW5hblwgOwor5aSW6ICzID4gZ2FpamlcIDsKK+mdnueVqiA+IGhpYmFuXCA7CivpoafllY8gPiBrb21vblwgOwor5pyJ5L6hID4geXV1a2FcIDsKK+acieS9mSA+IHl1dXlvXCA7Civop6Ppm6IgPiBrYWlyaVwgOwor54Sh6ZmQID4gbXVnZW5cIDsKK+ino+mbhyA+IGthaWtvXCA7CivkuI3lloQgPiBmdXplblwgOwor6Zuq6IqxID4gc2Vra2FcIDsKK+aboOWPpCA+IGtvdWtvXCA7Civop6PpmaQgPiBrYWlqb1wgOwor5LiN5ZWPID4gZnVtb25cIDsKK+S4gOWbniA+IGlra2FpXCA7CivpmYTpmo8gPiBmdXp1aVwgOwor57mK57atID4gc2VuJydpXCA7CivmnInkuosgPiB5dXVqaVwgOwor5LiL5ZWPID4ga2Ftb25cIDsKK+aYjuayuyA+IG1laWppXCA7CivkuJnljYggPiBoZWlnb1wgOwor576p5YuHID4gZ2l5dXVcIDsKK+mgkuW4gyA+IGhhbnB1XCA7Civoq5bnoLQgPiByb25wYVwgOwor57215aOwID4gYmFzZWlcIDsKK+S4i+WTgSA+IGdlaGluXCA7CivpmLLpn7MgPiBib3VvblwgOwor5pyI5LiLID4gZ2Vra2FcIDsKK+iomOi8iSA+IGtpc2FpXCA7CivoqJPovp4gPiBrdW5qaVwgOwor5aSi57K+ID4gbXVzZWlcIDsKK+S4i+WRvSA+IGthbWVpXCA7CivkuLvkuosgPiBzaHVqaVwgOwor5aSW57iBID4gZ2FpZW5cIDsKK+S4jeWQjCA+IGZ1ZG91XCA7Civpn7PmhJ8gPiBvbmthblwgOwor5pmC5paHID4gamlidW5cIDsKK+Wlh+efpSA+IGtpY2hpXCA7Civnt4/orZwgPiBzb3VmdVwgOwor5LiL5ZCRID4gZ2Vrb3VcIDsKK+S4i+WQjSA+IGthbWVpXCA7CivorJvmvJQgPiBrb3VlblwgOwor5LiN5Y+CID4gZnVzYW5cIDsKK+mghuW6jyA+IGp1bmpvXCA7CivpoZ7lj6UgPiBydWlrdVwgOwor5LiK5Y+lID4gam91a3VcIDsKK+S4iuWPpCA+IGpvdWtvXCA7CivmnIDkuIsgPiBzYWlrYVwgOwor6Zqg6KaLID4gaW5rZW5cIDsKK+e+qeWFtSA+IGdpaGVpXCA7CivkuInlj4kgPiBzYW5zYVwgOwor5LiA5ZOBID4gaXBwaW5cIDsKK+e+qeWFhCA+IGdpa2VpXCA7CivkuIflj6QgPiBiYW5rb1wgOwor6Zm66LevID4ga2Vucm9cIDsKK+Wni+acnyA+IHNoaWtpXCA7CivkuIvljYogPiBrYWhhblwgOwor6Ziy6ZmkID4gYm91am9cIDsKK+S4jeWLoiA+IGJ1emVpXCA7CivoqbHoirggPiB3YWdlaVwgOwor5LiN5YuVID4gZnVkb3VcIDsKK+S4jeWKtCA+IGZ1cm91XCA7Civnvo7lkI0gPiBiaW1laVwgOwor5aGp6YW4ID4gZW5zYW5cIDsKK+Wkp+eptCA+IG9vYW5hXCA7CivnjKrlj6MgPiBjaG9rb1wgOwor6Zyy55ukID4gcm9iYW5cIDsKK+S4h+WMliA+IGJhbmthXCA7CivlqIHlvrMgPiBpdG9rdVwgOwor5LiA5Y+NID4gaXR0YW5cIDsKK+S4gOWPjCA+IGlzc291XCA7CivmlqTnm64gPiBraW5tZVwgOwor54mn5q2MID4gYm9ra2FcIDsKK+S4i+WJpCA+IGdlemFpXCA7CivnhKHpiq0gPiBtdXNlblwgOwor5aC06Z2iID4gYmFtZW5cIDsKK+iogOi+niA+IGdlbmppXCA7CivoqrLnqI4gPiBrYXplaVwgOwor6Kqy56iLID4ga2F0ZWlcIDsKK+eEoemKmCA+IG11bWVpXCA7CivoqqTnrpcgPiBnb3NhblwgOwor5LiN5YehID4gZnVib25cIDsKK+eIqueJmSA+IHNvdWdhXCA7CivlpKrnpZYgPiB0YWlzb1wgOwor5pqX5aScID4gYW4nJ3lhXCA7CivkuI3lh40gPiBmdXRvdVwgOwor5aSp56WWID4gdGVuc29cIDsKK+S4gOWNiiA+IGlwcGFuXCA7CivkuIDljYMgPiBpc3NlblwgOwor5aaW5rCXID4geW91a2lcIDsKK+Wlvea8lCA+IGtvdWVuXCA7CivoqqTnrZQgPiBnb3RvdVwgOwor5paH56eRID4gYnVua2FcIDsKK+itt+aGsiA+IGdva2VuXCA7CivlpJrnq68gPiB0YXRhblwgOwor5LiO5YWaID4geW90b3VcIDsKK+S4jeWFqCA+IGZ1emVuXCA7CivoqaDojYkgPiBlaXNvdVwgOwor5LiN5YWaID4gZnV0b3VcIDsKK+mbhOiKsSA+IG9iYW5hXCA7Civml6LmuIggPiBraXNhaVwgOwor5aOu576OID4gc291YmlcIDsKK+Wik+iqjCA+IGJvc2hpXCA7CivlpJrnqK4gPiB0YXNodVwgOwor57a66KuHID4ga2lkYW5cIDsKK+eEoemFjSA+IG11aGFpXCA7Civniq/mhI8gPiBoYW4nJ2lcIDsKK+S4i+WDpyA+IGdlc291XCA7CivnvqnkurogPiBnaWppblwgOwor5LiA5YiHID4gaXNzYWlcIDsKK+S4gOWIhiA+IGlwcHVuXCA7CivkuIDliIAgPiBpdHRvdVwgOwor5aWH55GeID4ga2l6dWlcIDsKK+irlueQhiA+IHJvbnJpXCA7CivlpKfnoLQgPiB0YWloYVwgOwor5LiN5YGPID4gZnVoZW5cIDsKK+mbheiHtCA+IGdhY2hpXCA7CivkuI3lgKsgPiBmdXJpblwgOwor6Kmx6ICFID4gd2FzaGFcIDsKK+e9suWToSA+IHNob2luXCA7CivorJvmraYgPiBrb3VidVwgOwor5pel5rOiID4gbmlwcG9cIDsKK+S4luS7oyA+IHNlZGFpXCA7CivkuIDlho0gPiBpc3NhaVwgOwor5LiW5Lq6ID4gc2VqaW5cIDsKK+aVheiAgSA+IGtvcm91XCA7CivnjL/kurogPiBlbmppblwgOwor5pif5paXID4gc2VpdG9cIDsKK+S4iuWApCA+IHV3YW5lXCA7CivkuIDlhZogPiBpdHRvdVwgOwor54Sh6YGTID4gbXVkb3VcIDsKK+S4jeS+vyA+IGZ1YmVuXCA7CivoqI7orbAgPiB0b3VnaVwgOwor5aKX6KOcID4gem91aG9cIDsKK+S4jeS+iyA+IGZ1cmVpXCA7CivnuZTnm64gPiBvcmltZVwgOwor57aZ6LW3ID4ga2Vpa2lcIDsKK+iok+ipsSA+IGt1bndhXCA7CivnhKHovrogPiBtdWhlblwgOwor5LiW5LiKID4gc2Vqb3VcIDsKK+S4juS7tiA+IHlva2VuXCA7CivkuIvkvZMgPiBrYXRhaVwgOwor6aGe5Ly8ID4gcnVpamlcIDsKK+maoOiUvSA+IGlucGVpXCA7CivnvoXlhbggPiByYXRlblwgOwor6Zmw6KyAID4gaW5ib3VcIDsKK+iok+ipgSA+IGt1bmtvXCA7CivkuInkvZAgPiBzYW5zYVwgOwor5LiJ5L2NID4gc2FubWlcIDsKK+WokeWphiA+IHNoYWJhXCA7CivkuI3ku4EgPiBmdWppblwgOwor5LiI5L2ZID4gam91eW9cIDsKK+aYjuaalyA+IG1laWFuXCA7CivlppPmpbwgPiBnaXJvdVwgOwor5paH55uuID4gYXlhbWVcIDsKK+WlveawlyA+IGtvdWtpXCA7CivnjLbkuoggPiB5dXV5b1wgOwor5aSJ56e7ID4gaGVuJydpXCA7CivpmYTov5EgPiBmdWtpblwgOwor5LiL5Lq6ID4gZ2VuaW5cIDsKK+aatOWIqSA+IGJvdXJpXCA7CivmmpfllqkgPiBhbicneXVcIDsKK+WhkemAoCA+IHNvem91XCA7CivlqZrlhIAgPiBrb25naVwgOwor5LiL5LmXID4gZ2Vqb3VcIDsKK+aTrOijvSA+IGdpc2VpXCA7CivntJnprZogPiBzaGltaVwgOwor5LiH5LqLID4gYmFuamlcIDsKK+aTrOijhSA+IGdpc291XCA7CivkuIDkvZMgPiBpdHRhaVwgOwor5LiA5L2NID4gaWNoaWlcIDsKK+iruOa0viA+IHNob2hhXCA7CivkuIrkuIsgPiBqb3VnZVwgOwor5aSc55uXID4geWF0b3VcIDsKK+S4ieS4liA+IHNhbnplXCA7Civpm7vno4EgPiBkZW5qaVwgOwor5pm05aScID4gc2VpeWFcIDsKK+WppuS6uiA+IGZ1amluXCA7CivpoJHlm7ogPiBnYW5rb1wgOwor5pmC5byKID4gamloZWlcIDsKK+S4gOS7tiA+IGlra2VuXCA7Civnvo7kurogPiBiaWppblwgOwor5LiA5LuLID4gaWtrYWlcIDsKK+e9t+WFjSA+IGhpbWVuXCA7CivlpKfnk7YgPiBvb2JpblwgOwor6KiA6KqeID4gZ2VuZ29cIDsKK+WlveapnyA+IGtvdWtpXCA7CivmlYXntJkgPiBrb3NoaVwgOwor5aS354uEID4gaXRla2lcIDsKK+aal+WQmyA+IGFua3VuXCA7CivlpJbnmq4gPiBnYWloaVwgOwor5pqX5ZCIID4gYW5nb3VcIDsKK+aal+WPtyA+IGFuZ291XCA7CivorbflsrggPiBnb2dhblwgOwor5LiA5LiWID4gaXNzZWlcIDsKK+eJqeaVhSA+IGJ1a2tvXCA7CivlpKnnkIYgPiB0ZW5yaVwgOwor5aSP55ygID4ga2FtaW5cIDsKK+e0oOmkiiA+IHNveW91XCA7Civlp5DlvqEgPiBhbmVnb1wgOwor5aSc55WqID4geW9iYW5cIDsKK+mcsueCuSA+IHJvdGVuXCA7CivmmanlpI8gPiBiYW5rYVwgOwor6Z+z5aSnID4gb25kYWlcIDsKK+mfs+WjsCA+IG9uc2VpXCA7CivmlofnkIYgPiBidW5yaVwgOwor5aSa55SoID4gdGF5b3VcIDsKK+WkmueUoyA+IHRhc2FuXCA7CivlpKfnjosgPiBkYWlvdVwgOwor57215YCSID4gYmF0b3VcIDsKK+e0oOmhlCA+IHN1Z2FvXCA7CivmlLnntYQgPiBrYWlzb1wgOwor57Sr6ZuyID4gc2hpdW5cIDsKK+e3qOiAhSA+IGhlbmphXCA7CivlpbPmqKkgPiBqb2tlblwgOwor6Kqk55SoID4gZ295b3VcIDsKK+WnieW+oSA+IGFuZWdvXCA7CivlpJbnlYwgPiBnZWthaVwgOwor5pOB6K23ID4geW91Z29cIDsKK+WkqeeLlyA+IHRlbmd1XCA7CivniLbmqKkgPiBmdWtlblwgOwor5aWl5q2vID4gb2t1YmFcIDsKK+aXqeacnyA+IHNvdWtpXCA7CivntKDpnaIgPiBzdW1lblwgOwor6K2w5a6aID4gZ2l0ZWlcIDsKK+WkqeeItiA+IHRlbnB1XCA7CivpnIDnlKggPiBqdXlvdVwgOwor57ir55uuID4gbnVpbWVcIDsKK+eEoeisgCA+IG11Ym91XCA7Civml4XmrKEgPiByeW9qaVwgOwor5pel5pysID4gbmlob25cIDsKK+eJiOacqCA+IGhhbmdpXCA7CivpnYjmsKMgPiByZWlraVwgOwor54Sh6KuWID4gbXVyb25cIDsKK+mdnualrSA+IGhpZ291XCA7Civloavoo5wgPiB0ZW5wb1wgOwor6Zuj56C0ID4gbmFucGFcIDsKK+aXpuaariA+IHRhbmJvXCA7CivlpInnlbAgPiBoZW4nJ2lcIDsKK+aXouacmyA+IGtpYm91XCA7CivpmZvooZsgPiBoZWllaVwgOwor57O46a2aID4gaXRveW9cIDsKK+mbqOedgCA+IGFtYWdpXCA7CivlqIHlnKcgPiBpYXRzdVwgOwor5aW95pyfID4ga291a2lcIDsKK+WnpuWppiA+IGthbnB1XCA7Civop6Poqp4gPiBrYWlnb1wgOwor5pW055CGID4gc2VpcmlcIDsKK+eEoeiogCA+IG11Z29uXCA7CivlpoLmmK8gPiBueW96ZVwgOwor54i+5p2lID4gamlyYWlcIDsKK+eJh+aZgiA+IGhlbmppXCA7Civntr/oirEgPiBtZW5rYVwgOwor6Zmw6JS9ID4gaW5wZWlcIDsKK+WkqeeCuiA+IHRlbicnaVwgOwor5aiB5ZqHID4gaWtha3VcIDsKK+eEoeimliA+IG11c2hpXCA7CivmlbDnkIYgPiBzdXVyaVwgOwor57WM6YGOID4ga2Vpa2FcIDsKK+eGseeggiA+IG5lc3NhXCA7CivmmJ/luqcgPiBzZWl6YVwgOwor5aSp54GrID4gdGVucGlcIDsKK+WfoOmgrSA+IGZ1dG91XCA7CivnjIrkuIsgPiBnZWlrYVwgOwor6ZmE6KiAID4gZnVnZW5cIDsKK+Wkp+eBqyA+IHRhaWthXCA7Civlp6blpKsgPiBrYW5wdVwgOwor6aCG5YyWID4ganVua2FcIDsKK+mYsuittyA+IGJvdWdvXCA7CivpnZ7mnJsgPiBoaWJvdVwgOwor6aCt5LiKID4genVqb3VcIDsKK+itsOWjqyA+IGdpc2hpXCA7CivmmYLlpb0gPiBqaWtvdVwgOwor6Z2S5qKFID4gYW91bWVcIDsKK+Whl+ijhSA+IHRvc291XCA7CivoqannopEgPiBzaGloaVwgOwor5pWF55+lID4ga29jaGlcIDsKK+maoOe3miA+IGluc2VuXCA7CivlpZHmqZ8gPiBrZWlraVwgOwor6KaW6YeOID4gc2hpeWFcIDsKK+itsOWgtCA+IGdpam91XCA7CivmkbjpgKAgPiBtb3pvdVwgOwor6Zmw6IyOID4gaW5rZWlcIDsKK+aWp+atoyA+IGZ1c2VpXCA7CivpnZLmnpwgPiBzZWlrYVwgOwor54eg54GrID4gb2tpYmlcIDsKK+mfs+WQjSA+IG9ubWVpXCA7CivmmI7luqYgPiBtZWlkb1wgOwor5aal5b2TID4gZGF0b3VcIDsKK+aZguWgsSA+IGppaG91XCA7CivntYzot68gPiBrZWlyb1wgOwor5pav5qeYID4ga2F5b3VcIDsKK+WhqeiUtSA+IGVuem91XCA7CivmmKDlsIQgPiBlaXNoYVwgOwor6aCS5L6hID4gaGFua2FcIDsKK+iruuaWhyA+IG9ubW9uXCA7CivloqjntbUgPiBzdW1pZVwgOwor57Sw6YOoID4gc2FpYnVcIDsKK+e3tOejqCA+IHJlbm1hXCA7CivpmaTojYkgPiBqb3NvdVwgOwor6K2P5auMID4ga2lnZW5cIDsKK+WlpeaXqCA+IG91c2hpXCA7Civln7rph5EgPiBraWtpblwgOwor57WM6LK7ID4ga2VpaGlcIDsKK+iomOiAhSA+IGtpc2hhXCA7CivorJ3mgakgPiBzaGFvblwgOwor5piG5biDID4ga29uYnVcIDsKK+mbsueFmSA+IHVuJydlblwgOwor5aSp5rKzID4gdGVuZ2FcIDsKK+irreaXqCA+IHl1c2hpXCA7Civnh5DngasgPiByaW5rYVwgOwor5aW95omTID4ga291ZGFcIDsKK+aXouaIkCA+IGtpc2VpXCA7CivpmLLooZsgPiBib3VlaVwgOwor5aSn5rKzID4gdGFpZ2FcIDsKK+mbt+eBqyA+IHJhaWthXCA7Civnt4fntKAgPiBzaGlzb1wgOwor57ay576FID4gbW91cmFcIDsKK+WkqeawlyA+IHRlbmtpXCA7CivpoIbkvY0gPiBqdW4nJ2lcIDsKK+iok+e+qSA+IGt1bmdpXCA7CivmmKjlpJwgPiB5dXViZVwgOwor5aSn5rCXID4gdGFpa2lcIDsKK+eEoeiTiyA+IG11Z2FpXCA7Civoqp7mupAgPiBnb2dlblwgOwor6KaH6YGTID4gaGFkb3VcIDsKK+aZruWBjyA+IGZ1aGVuXCA7CivmlaLngrogPiBrYW4nJ2lcIDsKK+mZsOe/syA+IGluJydlaVwgOwor5peX5omLID4ga2lzaHVcIDsKK+ilv+mDqCA+IHNlaWJ1XCA7Civpm4fnlKggPiBrb3lvdVwgOwor6Z+z5YOPID4gb256b3VcIDsKK+Wmu+WlsyA+IHNhaWpvXCA7Civmk43oiLUgPiBzb3VkYVwgOwor5aSn5q2MID4gb291dGFcIDsKK+ism+W6pyA+IGtvdXphXCA7CivmlofmroogPiBtb25qdVwgOwor5pif5aScID4gc2VpeWFcIDsKK+eEoeiPjCA+IG11a2luXCA7CivmlofmraYgPiBidW5idVwgOwor6Z2e5omNID4gaGlzYWlcIDsKK+Wlh+abuCA+IGtpc2hvXCA7CivlpKvmqKkgPiBmdWtlblwgOwor5aSp5qmfID4gdGVua2lcIDsKK+mciuawlyA+IHJlaWtpXCA7CivmmI7lqpogPiBtZWliaVwgOwor54Sh6Iy2ID4gbXVjaGFcIDsKK+mfs+S+vyA+IG9uYmluXCA7CivniaLlsYsgPiByb3V5YVwgOwor5aWH5pm6ID4ga2ljaGlcIDsKK+WkmuavmyA+IHRhbW91XCA7CivlqIHkv6EgPiBpc2hpblwgOwor6Kqe5rOVID4gZ29ob3VcIDsKK+Wkp+aouSA+IHRhaWp1XCA7CivlpJbmsJcgPiBnYWlraVwgOwor54Sh6Iq4ID4gbXVnZWlcIDsKK+Wkp+anmCA+IG9veW91XCA7CivlpaXmiYsgPiBva3V0ZVwgOwor57ax57SAID4ga291a2lcIDsKK+ijvem6uyA+IHNlaW1hXCA7Civnt4/npL4gPiBzb3VqYVwgOwor6Zu75rOiID4gZGVucGFcIDsKK+aZguWNiiA+IGppaGFuXCA7Civorablj6UgPiBrZWlrdVwgOwor6Z2e5oOFID4gaGlqb3VcIDsKK+iri+aahyA+IHNlaWthXCA7CivmmYLljJYgPiBzaGlrZVwgOwor5aWz5oCnID4gam9zZWlcIDsKK+mbqOa7tCA+IHV0ZWtpXCA7CivlpYfmlbAgPiBraXN1dVwgOwor6ZuE54yrID4gb25la29cIDsKK+aZguWLoiA+IGppc2VpXCA7CivmlqfmlqQgPiBmdWtpblwgOwor6Zuy5rW3ID4gdW5rYWlcIDsKK+mbkeeFriA+IHpvdW5pXCA7CivmmYLlirkgPiBqaWtvdVwgOwor5pif5ZuzID4gc2VpenVcIDsKK+eItuaApyA+IGZ1c2VpXCA7CivopoHot68gPiB5b3Vyb1wgOwor5aWz5b6hID4gbnlvZ29cIDsKK+mbu+awlyA+IGRlbmtpXCA7CivmlqHml4sgPiBhc3NlblwgOwor6Zuy5rOlID4gdW5kZWlcIDsKK+itpuWLmSA+IGtlaW11XCA7CivmmYLliLYgPiBqaXNlaVwgOwor6ZuE54mbID4gb3VzaGlcIDsKK+aZguWIhiA+IGppYnVuXCA7CivnhKHog70gPiBtdW5vdVwgOwor5aSa5qeYID4gdGF5b3VcIDsKK+eKrOWEkiA+IGtlbmp1XCA7Civngavpm6MgPiBrYW5hblwgOwor5pWw5qyhID4gc3V1amlcIDsKK+WmluWppiA+IHlvdWZ1XCA7CivmlbXmqZ8gPiB0ZWtraVwgOwor6Zuy5rC0ID4gdW5zdWlcIDsKK+WmluWphiA+IHlvdWJhXCA7Civml5fluZ8gPiBraXNoaVwgOwor6Z2S5oGvID4gYW9pa2lcIDsKK+mWkembhSA+IGthbmdhXCA7CivlpKfmnp0gPiBvb2VkYVwgOwor5aOy5rerID4gYmFpaW5cIDsKK+mcp+aVoyA+IG11c2FuXCA7CivlpbPluJ0gPiBqb3RlaVwgOwor6Zuo5rOoID4gdWNodXVcIDsKK+aUvueBqyA+IGhvdWthXCA7CivlpYnmjIEgPiBob3VqaVwgOwor5aWz5belID4gam9rb3VcIDsKK+mbu+apnyA+IGRlbmtpXCA7Civnt5rnlLsgPiBzZW5nYVwgOwor6Z2e5bi4ID4gaGlqb3VcIDsKK+WmluWlsyA+IHlvdWpvXCA7CivmlrDmiYsgPiBhcmF0ZVwgOwor6Z2Z5bqnID4gc2VpemFcIDsKK+eEoee9qiA+IG11emFpXCA7CivmlaPmrakgPiBzYW5wb1wgOwor6Zuo5rC3ID4gdWh5b3VcIDsKK+aWh+abuCA+IG1vbmpvXCA7CivplovpmaIgPiBrYWlpblwgOwor5aaK5ammID4gbmlucHVcIDsKK+aZguWAmSA+IGppa291XCA7CivplonpmaIgPiBoZWlpblwgOwor5pei5a6aID4ga2l0ZWlcIDsKK+itpuWCmSA+IGtlaWJpXCA7CivlpYfmiY0gPiBraXNhaVwgOwor5aWH5omLID4ga2lzaHVcIDsKK+WkqeaXpSA+IHRlbnBpXCA7CivlpKfmmKAgPiBkYWllaVwgOwor5aSc5p2lID4geWFyYWlcIDsKK+WlveWunCA+IGtvdWdpXCA7CivntJvorbAgPiBmdW5naVwgOwor6Zmk566XID4gam96YW5cIDsKK+aXouWtmCA+IGtpc29uXCA7CivorbDkvJogPiBnaWthaVwgOwor6Zui5rC0ID4gcmlzdWlcIDsKK+iok+ekuiA+IGt1bmppXCA7CivoqabmvJQgPiBzaGllblwgOwor5pKr6IKyID4gYnVpa3VcIDsKK+mYsuiFkCA+IGJvdWZ1XCA7Civoqp7moLkgPiBnb2tvblwgOwor5pKw6ICFID4gc2VuamFcIDsKK+eGseazoiA+IG5lcHBhXCA7CivlpJrmnJsgPiB0YWJvdVwgOwor6Zm256OBID4gdG91amlcIDsKK+Wls+WwiiA+IGpvc29uXCA7CivlpYfmhYsgPiBraXRhaVwgOwor5pmC5LujID4gamlkYWlcIDsKK+itsuS4jiA+IGpvdXlvXCA7CivnhKHnt5ogPiBtdXNlblwgOwor54mi5Zu6ID4gcm91a29cIDsKK+WknOaZryA+IHlha2VpXCA7CivmkZjoqJggPiB0ZWtraVwgOwor5pei5amaID4ga2lrb25cIDsKK+aZguS6uiA+IGppamluXCA7Civpm4Tmu50gPiBvZGFraVwgOwor54mZ5Z+OID4gZ2Fqb3VcIDsKK+Wlh+aDsyA+IGtpc291XCA7Civlo6vmsJcgPiBzaGlraVwgOwor6Kmx5rOVID4gd2Fob3VcIDsKK+eCiei+uiA+IHJvaGVuXCA7CivlpbPlrZAgPiBqb3NoaVwgOwor54Wp55GjID4gaGFuc2FcIDsKK+e3j+eQhiA+IHNvdXJpXCA7CivmmYLkuJYgPiBqaXNlaVwgOwor54i25a2QID4gZnVzaGlcIDsKK+eEoeezliA+IG11dG91XCA7Civpmb3nmq4gPiB5b3VoaVwgOwor5pa95belID4gc2Vrb3VcIDsKK+Wkp+aQjSA+IG9vem9uXCA7Civop6PntYQgPiBrYWlzb1wgOwor5aWH5oCqID4ga2lrYWlcIDsKK+iruOWutiA+IHNob2thXCA7CivnibnljJYgPiB0b2trYVwgOwor6Zyy5oKqID4gcm9ha3VcIDsKK+eKgOWIqSA+IHNhaXJpXCA7CivlpJrmlbAgPiB0YXN1dVwgOwor5aSn5o+aID4gb295b3VcIDsKK+eEoeeyiyA+IGJ1c3VpXCA7CivntrLnm64gPiBhbWltZVwgOwor5aSp5o6IID4gdGVuanVcIDsKK+aYoOWGmSA+IGVpc2hhXCA7CivlpJXml6UgPiB5dXVoaVwgOwor5aWz5am/ID4gam9zZWlcIDsKK+WlveWlhyA+IGtvdWtpXCA7CivlpJbmlrkgPiBzb3Bwb1wgOwor5pS/5rK7ID4gc2VpamlcIDsKK+eyl+mkkCA+IHNvc2FuXCA7Civnspfpo68gPiBzb2hhblwgOwor6ZaJ6Y6WID4gaGVpc2FcIDsKK+e0oOihjCA+IHNva291XCA7CivntbnntbUgPiBraW51ZVwgOwor6K2c5LujID4gZnVkYWlcIDsKK+iotOeKtiA+IHNvam91XCA7CivlpYflvaIgPiBraWtlaVwgOwor5aGp56iOID4gZW56ZWlcIDsKK+aYoOWDjyA+IGVpem91XCA7CivntbXntbkgPiBlZ2ludVwgOwor6ZuR5q2MID4gem91a2FcIDsKK+maoOeEtiA+IGluemVuXCA7CivlpYflvIEgPiBraWJlblwgOwor6Kqe5pWwID4gZ29zdXVcIDsKK+aXouWgsSA+IGtpaG91XCA7Civpmb3nlLsgPiB5b3VnYVwgOwor54Gr6YWSID4ga2FzaHVcIDsKK+e0q+iYhyA+IHNoaXNvXCA7Civoo73pnbQgPiBzZWlrYVwgOwor6Zu25pmCID4gcmVpamlcIDsKK+aYoOWAqyA+IGVpcmluXCA7CivoqanmrYwgPiBzaGlrYVwgOwor57K+6YutID4gc2VpZWlcIDsKK+Wls+WjsCA+IGpvc2VpXCA7CivmlL7mrYwgPiBob3VrYVwgOwor6ZmE566LID4gZnVzZW5cIDsKK+ezu+itnCA+IGtlaWZ1XCA7Civpm7Lmma8gPiB1bmtlaVwgOwor6KqJ5pybID4geW9ib3VcIDsKK+eJiOWbsyA+IGhhbnRvXCA7CivpnLLlupcgPiByb3RlblwgOwor5aWH5beMID4ga2lnYW5cIDsKK+WnieS4iiA+IGFuZXVlXCA7CivmlpzlvbEgPiBzaGFlaVwgOwor54Sh56i9ID4gbXVrZWlcIDsKK+ilsuihoyA+IHNodXVpXCA7CivplpPpgaAgPiBtYWRvb1wgOwor6Zyy5bidID4gcm90ZWlcIDsKK+mbhOatpiA+IHl1dWJ1XCA7CivnhKHnqI4gPiBtdXplaVwgOwor5aSp5oSPID4gdGVuJydpXCA7CivoqaDmrY4gPiBlaXRhblwgOwor6Z2Z5aScID4gc2VpeWFcIDsKK+ism+WSjCA+IGtvdXdhXCA7CivlpKfmhJogPiB0YWlndVwgOwor54Sh56eBID4gbXVzaGlcIDsKK+eFieeTpiA+IHJlbmdhXCA7Civpm7LmlaMgPiB1bnNhblwgOwor6Zui5p2RID4gcmlzb25cIDsKK+WknOaIpiA+IHlhc2VuXCA7CivntIDopoEgPiBraXlvdVwgOwor54Wk54WZID4gYmFpZW5cIDsKK+e1teethiA+IGVmdWRlXCA7CivlpJrmiY0gPiB0YXNhaVwgOwor5paH5oSPID4gYnVuJydpXCA7CivopaTopLggPiByYW5ydVwgOwor5aSn5oKfID4gZGFpZ29cIDsKK+eJueS+oSA+IHRva2thXCA7CivlpYflsqkgPiBraWdhblwgOwor54Sh56S8ID4gYnVyZWlcIDsKK+e5u+WtkCA+IHNodXN1XCA7CivplovpgYsgPiBrYWl1blwgOwor5aSn5oGpID4gZGFpb25cIDsKK+ipsuahiCA+IGdhaWFuXCA7CivlpKLmg7MgPiBtdXNvdVwgOwor6KWm6KKiID4ganViYW5cIDsKK+mbo+aYkyA+IG5hbicnaVwgOwor5peo5ZGzID4gdW1hbWlcIDsKK+ipseafhCA+IHdhaGVpXCA7CivlpYnlrokgPiBob3VhblwgOwor5aCV6IOOID4gZGF0YWlcIDsKK+e0gOihjCA+IGtpa291XCA7CivmlL7mo4QgPiBob3VraVwgOwor5aSa5oSfID4gdGFrYW5cIDsKK+aSreeoriA+IGhhc2h1XCA7CivoqrLlvbkgPiBrYWVraVwgOwor6Zmi55SfID4gaW5zZWlcIDsKK+ijnOmhjCA+IGhvZGFpXCA7CivlpJrmg4UgPiB0YWpvdVwgOwor54Sh55+lID4gbXVjaGlcIDsKK+mbouaVoyA+IHJpc2FuXCA7CivoqabmoYggPiBzaGlhblwgOwor5aSp5bqcID4gdGVucHVcIDsKK+WkmuaBqCA+IHRha29uXCA7CivlpKfluqYgPiB0YWlkb1wgOwor54mp5L6hID4gYnVra2FcIDsKK+iqnuaEnyA+IGdva2FuXCA7CivmlbXmhI8gPiB0ZWtpaVwgOwor5aW95Y+kID4ga291a29cIDsKK+aWh+W6qyA+IGJ1bmtvXCA7CivlpJrlv5kgPiB0YWJvdVwgOwor6KaL6IieID4gbWltYWlcIDsKK+eFlueCiSA+IGRhbnJvXCA7CivloJXnvaogPiBkYXphaVwgOwor5aGp55SwID4gZW5kZW5cIDsKK+aVheaZuiA+IGtvY2hpXCA7CivnhKHnm4ogPiBtdWVraVwgOwor6Zm954KOID4geW91ZW5cIDsKK+Wkp+W3riA+IHRhaXNhXCA7CivnuYrluqYgPiBzZW5kb1wgOwor5aSn5belID4gZGFpa3VcIDsKK+irt+WWqSA+IGZ1dXl1XCA7CivlpJrlvakgPiB0YXNhaVwgOwor6ZaJ6LevID4gaGVpcm9cIDsKK+WkmuW9oiA+IHRha2VpXCA7CivmlazmhZUgPiBrZWlib1wgOwor5aCG6IKlID4gdGFpaGlcIDsKK+aXpeWKoCA+IG5pa2thXCA7Civmj7Tou40gPiBlbmd1blwgOwor57KX6Yu8ID4gc29rb3VcIDsKK+aVrOaEmyA+IGtlaWFpXCA7CivlpJrlvIEgPiB0YWJlblwgOwor5aOw5o+0ID4gc2VpZW5cIDsKK+eGqOaWlyA+IG5vc2hpXCA7CivpnZ7lkb0gPiBoaW1laVwgOwor6KyA5Y+bID4gbXVob25cIDsKK+Wls+WPsiA+IGpvc2hpXCA7CivorIDlj40gPiBtdWhvblwgOwor57KX6YqFID4gc29kb3VcIDsKK+ikkui+niA+IGhvdWppXCA7CivmkanogJcgPiBtYW1vdVwgOwor57KX6YmxID4gc29rb3VcIDsKK+eItuWQmyA+IGZ1a3VuXCA7CivmlL7mmKAgPiBob3VlaVwgOwor5aSW5bu2ID4gZ2FpZW5cIDsKK+WkmuW5uCA+IHRha291XCA7CivlpJrlubQgPiB0YW5lblwgOwor57SF6JOuID4gZ3VyZW5cIDsKK+mbgeacqCA+IGdhbmdpXCA7CivlpYflo7AgPiBraXNlaVwgOwor6Kqe5b2iID4gZ29rZWlcIDsKK+WlhOWlhCA+IGVuJydlblwgOwor6KOP6Z2iID4gcmltZW5cIDsKK+aXouWIiiA+IGtpa2FuXCA7Civmlrnlm7MgPiBob3V6dVwgOwor6Zuo5oi4ID4gYW1hZG9cIDsKK+mcsuWkqSA+IHJvdGVuXCA7Civoo5zplpMgPiBob2thblwgOwor6Kqe5byKID4gZ29oZWlcIDsKK+eJouS5jiA+IHJvdWtvXCA7CivnhKHnlKggPiBtdXlvdVwgOwor54Sh55SjID4gbXVzYW5cIDsKK+eJoeS4uSA+IGJvdGFuXCA7CivlpKflsL4gPiB0YWliaVwgOwor5aSp5a+/ID4gdGVuanVcIDsKK+iqnuW5uSA+IGdva2FuXCA7CivnspfphZIgPiBzb3NodVwgOwor5o6n6ZmkID4ga291am9cIDsKK+WjsuaJiyA+IHVyaXRlXCA7CivlopfmtL4gPiB6b3VoYVwgOwor6KqY5byVID4geXV1aW5cIDsKK+Wkp+WutiA+IHRhaWtlXCA7Civpm4XmlocgPiBnYWJ1blwgOwor6KaH6ICFID4gaGFzaGFcIDsKK+aWieWutiA+IHNlaWthXCA7CivpnLLloLQgPiByb2pvdVwgOwor5aSn5a6JID4gZGFpYW5cIDsKK+aVsOW6piA+IHN1dWRvXCA7CivlpKflrZcgPiBvb2F6YVwgOwor6ZaR6KmxID4ga2Fud2FcIDsKK+WcsOmgrSA+IGppdG91XCA7Civpmbjmua8gPiBva2F5dVwgOwor5pat5Zu6ID4gZGFua29cIDsKK+mbsuW9sSA+IHVuJydlaVwgOwor5paH5a2XID4gbW9uamlcIDsKK+eHleW3oyA+IGVuc291XCA7CivlpaXljbAgPiBva3VpblwgOwor5aSr5ammID4gbWVvdG9cIDsKK+WkmuWxpCA+IHRhc291XCA7CivoqLTmqKkgPiBzb2tlblwgOwor6Zu25bqmID4gcmVpZG9cIDsKK+eCueiAhSA+IHRlbmphXCA7CivntbXnlLsgPiBrYWlnYVwgOwor6Zqg5qOyID4gaW5zZWlcIDsKK+imgee+qSA+IHlvdWdpXCA7CivpnZ7lh6EgPiBoaWJvblwgOwor6Kiq5qynID4gaG91b3VcIDsKK+WcsOmdoiA+IGppbWVuXCA7Civlpb3lgIsgPiBrb3Vrb1wgOwor5aWz5YSqID4gam95dXVcIDsKK+WkqeWogSA+IHRlbicnaVwgOwor5aSr5aa7ID4gZnVzYWlcIDsKK+iqpOWwhCA+IGdvc2hhXCA7CivniLblhYQgPiBmdWtlaVwgOwor5Zyw6Zu3ID4gamlyYWlcIDsKK+iomOazlSA+IGtpaG91XCA7CivnhZbmsJcgPiBkYW5raVwgOwor6Zqg5qCWID4gaW5zZWlcIDsKK+WkmuWtlCA+IHRha291XCA7CivlpJblrq4gPiBnZWt1dVwgOwor54WZ5q27ID4gZW5zaGlcIDsKK+WkquWkqyA+IHRheXV1XCA7Civpmb3msJcgPiB5b3VraVwgOwor5Z+657eaID4ga2lzZW5cIDsKK+Wkp+WlpSA+IG9vb2t1XCA7CivmjpLpmaQgPiBoYWlqb1wgOwor5aSW5a2XID4gZ2FpamlcIDsKK+aVo+W4gyA+IHNhbnB1XCA7CivlpYfllY8gPiBraW1vblwgOwor5aaC5LiKID4gam9qb3VcIDsKK+WlveS6iyA+IGtvdXp1XCA7CivlpKflo7AgPiBvb2dvZVwgOwor6Kqy5aSWID4ga2FnYWlcIDsKK+Wkt+WbvSA+IGlrb2t1XCA7CivmlK/mj7QgPiBzaGllblwgOwor5pOs5q+bID4gZ2ltb3VcIDsKK+e0oOe1uSA+IHNva2VuXCA7CivlpZHljbAgPiBrZWlpblwgOwor6Zuj5bqmID4gbmFuZG9cIDsKK+imj+evhCA+IGtpaGFuXCA7Civmk6zmrbsgPiBnaXNoaVwgOwor5pWw5a2XID4gc3V1amlcIDsKK+WkmuWmuyA+IHRhc2FpXCA7Civmlo7lnqMgPiBpZ2FraVwgOwor6KaB57SgID4geW91c29cIDsKK+aXl+S6rSA+IGtpdGVpXCA7CivmlK/mjIEgPiBzaGlqaVwgOwor6ZuF5oeQID4gZ2FrYWlcIDsKK+aPkOi1tyA+IHRlaWtpXCA7Civpm7LlsYUgPiBrdW1vaVwgOwor6Zyy5ZG9ID4gcm9tZWlcIDsKK+eEoeeBryA+IG11dG91XCA7CivpmbDmr5sgPiBpbm1vdVwgOwor5aSJ5a2XID4gaGVuamlcIDsKK+ilv+e0gCA+IHNlaWtpXCA7CivnuZTlnLAgPiBvcmlqaVwgOwor6ZyK5aSiID4gcmVpbXVcIDsKK+mcsuWRiCA+IHJvdGVpXCA7CivlpJrlpKcgPiB0YWRhaVwgOwor5o6D6ZmkID4gc291amlcIDsKK+Whl+eCrSA+IHRvdGFuXCA7CivmjZXpr6ggPiBob2dlaVwgOwor6Z2e5Lq6ID4gaGluaW5cIDsKK+WkmuWjsiA+IHRhYmFpXCA7CivpnLLlj7AgPiByb2RhaVwgOwor57mB5aSaID4gaGFudGFcIDsKK+mZpOazlSA+IGpvaG91XCA7CivnhJzngokgPiBrb25yb1wgOwor5pa55YaGID4gaG91ZW5cIDsKK+iruOS6iyA+IHNob2ppXCA7CivmlLnmgp8gPiBrYWlnb1wgOwor57aZ5rOzID4ga2VpZWlcIDsKK+WlieWKoCA+IGhvdWdhXCA7Civopo/nqIsgPiBraXRlaVwgOwor6Zui5bO2ID4gcml0b3VcIDsKK+Wlh+WKuSA+IGtpa291XCA7Civoqa3lvIEgPiBraWJlblwgOwor6ZqV5pifID4gaW5zZWlcIDsKK+Wkp+WZqCA+IHRhaWtpXCA7Civpm6LlsrggPiByaWdhblwgOwor54Kt57SgID4gdGFuc29cIDsKK+iqpOWgsSA+IGdvaG91XCA7CivlpJbloLQgPiBnYWliYVwgOwor5pWw5aWHID4gc3V1a2lcIDsKK+mbouWxsSA+IHJpemFuXCA7CivlpKflmJggPiBvb3Vzb1wgOwor57OW6I+TID4gdG91a2FcIDsKK+aVsOWkmiA+IHN1dXRhXCA7Civmj5DorbAgPiB0ZWlnaVwgOwor6ZqP5pmCID4genVpamlcIDsKK+e1jOeUsSA+IGtlaXl1XCA7CivngavokawgPiBrYXNvdVwgOwor6ZyK5ZySID4gcmVpZW5cIDsKK+aUv+W6nCA+IHNlaWZ1XCA7CivlpYflhbUgPiBraWhlaVwgOwor6Zi/5ryVID4gYWtvZ2lcIDsKK+mYsueCjiA+IGJvdWVuXCA7CivmlpfljZcgPiB0b25hblwgOwor5aOy5a2QID4gdXJpa29cIDsKK+mbu+WgtCA+IGRlbmJhXCA7CivlpJblm6AgPiBnYWlpblwgOwor6Ziy54GrID4gYm91a2FcIDsKK+aPkOiotCA+IHRlaXNvXCA7CivpnLLlhYkgPiByb2tvdVwgOwor5aSr5ZCbID4gZnVrdW5cIDsKK+ikh+ihoyA+IGZ1a3VpXCA7CivntYznkIYgPiBrZWlyaVwgOwor5aSn5ZG8ID4gdGFpa29cIDsKK+Wkp+WRsyA+IG9vYWppXCA7Civmlr3kuLsgPiBzZXNodVwgOwor6Zuy5aOMID4gdW5qb3VcIDsKK+Wlh+WBtiA+IGtpZ3V1XCA7CivlpKrlj6QgPiB0YWlrb1wgOwor54Sh5rOVID4gbXVob3VcIDsKK+aVheWxsSA+IGtvemFuXCA7Civmv4PpnKcgPiBub3VtdVwgOwor6Zui5amaID4gcmlrb25cIDsKK+Wkp+WPsCA+IG9vZGFpXCA7CivlnKjph44gPiB6YWl5YVwgOwor54K556S6ID4gdGVuamlcIDsKK+aVmeWnlCA+IGt5b3VpXCA7CivoqoflpKcgPiBrb2RhaVwgOwor54Gr6ImyID4gaGlpcm9cIDsKK+eEtuanmCA+IHNheW91XCA7CivooaPprZogPiBzaGltaVwgOwor6KqY5ZugID4geXV1aW5cIDsKK+eyl+ijvSA+IHNvc2VpXCA7Civmloflj6UgPiBtb25rdVwgOwor54Sh5rC0ID4gbXVzdWlcIDsKK+eDveeBqyA+IGhvdWthXCA7Civnsr7oj68gPiBzZWlrYVwgOwor5aWH5L2TID4ga2l0YWlcIDsKK+eEoeavmyA+IG11bW91XCA7Civnua3kvqEgPiBrZW5rYVwgOwor6Zu75ZmoID4gZGVua2lcIDsKK+Wbs+mdoiA+IHp1bWVuXCA7Civnt6nlvpAgPiBrYW5qb1wgOwor5pS+5bGBID4gaG91aGlcIDsKK+WjsuWlsyA+IGJhaXRhXCA7CivlpKnliqkgPiB0ZW5qb1wgOwor57Gz6LKoID4gYmVpa2FcIDsKK+WbuumZiyA+IGtvcm91XCA7CivnhKHmrosgPiBtdXphblwgOwor6ZaL6IqxID4ga2Fpa2FcIDsKK+eEoeatuyA+IG11c2hpXCA7CivmlofljJYgPiBidW5rYVwgOwor5aWH5Lq6ID4ga2lqaW5cIDsKK+aWreS5jiA+IGRhbmtvXCA7Civlopfmj7QgPiB6b3VlblwgOwor5aSc5Y+JID4geWFzaGFcIDsKK+WfuuebpCA+IGtpYmFuXCA7CivlpKrliIAgPiB0YWNoaVwgOwor6Zmw5pm0ID4gaW5zZWlcIDsKK+Wjq+WlsyA+IHNoaWpvXCA7CivlpKfliKQgPiBvb2JhblwgOwor57Sg55u0ID4gc3VuYW9cIDsKK+imqueIuiA+IG95YWppXCA7CivopqrniLYgPiBveWFqaVwgOwor6Kqy5Yi2ID4ga2FzZWlcIDsKK+mcgOWTgSA+IGp1aGluXCA7Civoo5zorJsgPiBob2tvdVwgOwor6Zuj5aC0ID4gbmFuYmFcIDsKK+e2reaWsCA+IGlzaGluXCA7Civlo7LloLQgPiB1cmliYVwgOwor5aS35L+XID4gaXpva3VcIDsKK+WbnumhpyA+IGthaWtvXCA7CivlpJzli6QgPiB5YWtpblwgOwor5aSn5YaGID4gZGFpZW5cIDsKK+ioiOaZgiA+IGtlaWppXCA7CivloanmooUgPiBhbmJhaVwgOwor6Zmw5paHID4gaW5idW5cIDsKK+mZouacrCA+IGlucG9uXCA7CivlpJrli6IgPiB0YXplaVwgOwor6ZqU5oSPID4ga2FrdWlcIDsKK+Wbm+mhpyA+IHNoaWtvXCA7CivplpPogIUgPiBrYW5qYVwgOwor5aSn5YSSID4gZGFpanVcIDsKK+iqnuWOnyA+IGdvZ2VuXCA7CivlpKflhIAgPiB0YWlnaVwgOwor5aSc5YmNID4geWF6ZW5cIDsKK+ijnOiogiA+IGhvdGVpXCA7CivnsbPoqp4gPiBiZWlnb1wgOwor6Zi75q2iID4gc29zaGlcIDsKK+WkluWLmSA+IGdhaW11XCA7Civpm5HlpJogPiB6YXR0YVwgOwor5aSc5YiGID4geWFidW5cIDsKK+aVl+WboCA+IGhhaWluXCA7CivnsbPoqbEgPiBiZWl3YVwgOwor5Z2Q6KaWID4gemFzaGlcIDsKK+aWieWCmSA+IHNlaWJpXCA7CivlpJrliIYgPiB0YWJ1blwgOwor5aKT5omAID4gYm9zaG9cIDsKK+iqnuWLoiA+IGdvc2VpXCA7CivoqqTliKQgPiBnb2hhblwgOwor5o6h6K2cID4gc2FpZnVcIDsKK+Wjh+WutiA+IGRhbmthXCA7Civlo67lm7MgPiBzb3V0b1wgOwor5Zuz6ZGRID4genVrYW5cIDsKK+WknOWFiSA+IHlha291XCA7CivngrnnlLsgPiB0ZW5nYVwgOwor6Zmk5pWwID4gam9zdXVcIDsKK+mbu+WMliA+IGRlbmthXCA7CivoqqTlhpkgPiBnb3NoYVwgOwor5o6n6Ki0ID4ga291c29cIDsKK+WkmuWFgyA+IHRhZ2VuXCA7CivlpKnkvY0gPiB0ZW4nJ2lcIDsKK+mbsuWPsCA+IHVuZGFpXCA7Civopb/nk5wgPiBzdWlrYVwgOwor6KqN5ZCmID4gbmlucGlcIDsKK+eEoeaguSA+IG11a29uXCA7CivlpInljJYgPiBoZW5nZVwgOwor6Zmi5pS/ID4gaW5zZWlcIDsKK+Wkp+S9kCA+IHRhaXNhXCA7Civoqo3lj68gPiBuaW5rYVwgOwor5aSr5Lq6ID4gZnVqaW5cIDsKK+eBq+e3miA+IGthc2VuXCA7CivntrLmiLggPiBhbWlkb1wgOwor57K+576pID4gc2VpZ2lcIDsKK+iqsOS9lSA+IHN1aWthXCA7CivoqJjmhrYgPiBraW9rdVwgOwor6KO96I+TID4gc2Vpa2FcIDsKK+Wkp+S6iyA+IGRhaWppXCA7Civmv6vosrsgPiByYW5waVwgOwor5aSp5LiLID4gdGVua2FcIDsKK+aWh+S6iyA+IGJ1bmppXCA7Civmk6zmhYsgPiBnaXRhaVwgOwor6Zqg5bGFID4gaW5reW9cIDsKK+aVtOWCmSA+IHNlaWJpXCA7CivntKvnhZkgPiBzaGllblwgOwor5pWs5YW3ID4ga2VpZ3VcIDsKK+eyl+iMtiA+IHNvY2hhXCA7CivlpJzkvJogPiB5YWthaVwgOwor54Sh5pm6ID4gbXVjaGlcIDsKK+mao+WutiA+IHJpbmthXCA7CivntJTnkIYgPiBqdW5yaVwgOwor6Zui5ZCIID4gcmlnb3VcIDsKK+mbo+WPpSA+IG5hbmt1XCA7Civns4rnsr4gPiBrb3NlaVwgOwor57ee5a2QID4gZG9uc3VcIDsKK+mbouWPjSA+IHJpaGFuXCA7CivntKDniYcgPiBzb2hlblwgOwor54WZ5by+ID4gZW5kYW5cIDsKK+iqpOS8nSA+IGdvZGVuXCA7Civpm6rliqAgPiBzZWtrYVwgOwor57O455uuID4gaXRvbWVcIDsKK+e1teafhCA+IGVnYXJhXCA7CivoqJjlv7UgPiBraW5lblwgOwor6KSS576OID4gaG91YmlcIDsKK+mbhOWbsyA+IHl1dXRvXCA7Civngb3npo0gPiBzYWlrYVwgOwor54Sh5patID4gbXVkYW5cIDsKK+eDiOeBqyA+IHJla2thXCA7CivmlbDlgIsgPiBzdXVrb1wgOwor6Zmw5oOoID4gaW5zYW5cIDsKK+eEoeaVsCA+IG11c3V1XCA7CivntbXmnK0gPiBlZnVkYVwgOwor5aSW5LqLID4gZ2FpamlcIDsKK+aVsOS+oSA+IHN1dWthXCA7Civntr/luIMgPiBtZW5wdVwgOwor6KCn6a2aID4gc2hpbWlcIDsKK+WfuueCuSA+IGtpdGVuXCA7CivpmbDmgKcgPiBpbnNlaVwgOwor6Zu75L2NID4gZGVuJydpXCA7CivoqaDlmIYgPiBlaXRhblwgOwor57K+57KXID4gc2Vpc29cIDsKK+mbqOWFtyA+IGFtYWd1XCA7CivlpInkvY0gPiBoZW4nJ2lcIDsKK+mZsOW9sSA+IGluJydlaVwgOwor6KaP5rqWID4ga2lqdW5cIDsKK+e3j+WrgSA+IHNvdWthXCA7CivngrnngasgPiB0ZW5rYVwgOwor6Zui5YWaID4gcml0b3VcIDsKK+aOqeiUvSA+IGVucGVpXCA7CivlpInkuosgPiBoZW5qaVwgOwor6Kmp5Y+lID4gc2hpa3VcIDsKK+mbo+WEgCA+IG5hbmdpXCA7CivntYPmrYwgPiBnZW5rYVwgOwor6Kmm5ZCIID4gc2hpYWlcIDsKK+maoOWjqyA+IGluc2hpXCA7Civmjqnok4sgPiBlbmdhaVwgOwor5aKz5aKTID4gZnVuYm9cIDsKK+e4geWPsCA+IGVuZGFpXCA7Civpm7LkupUgPiBrdW1vaVwgOwor6KGw6YGLID4gc3VpdW5cIDsKK+Wfuua6liA+IGtpanVuXCA7Civpm7bkuIsgPiByZWlrYVwgOwor6ZuF5Y+3ID4gZ2Fnb3VcIDsKK+Wfuua6kCA+IGtpZ2VuXCA7CivoqaDlkJ8gPiBlaWdpblwgOwor5Zyf6KO9ID4gZG9zZWlcIDsKK+ipoOWPsiA+IGVpc2hpXCA7CivnhZnlrrMgPiBlbmdhaVwgOwor5pS/5YuZID4gc2VpbXVcIDsKK+WgtOacqyA+IGJhc3VlXCA7Civlm57pgb8gPiBrYWloaVwgOwor6Zuy5LiKID4gdW5qb3VcIDsKK+aUueWNsCA+IGthaWluXCA7Civntr7lrZAgPiByaW56dVwgOwor54Sh5omNID4gbXVzYWlcIDsKK+eCrOeBqyA+IGt5b2thXCA7CivplovnpZYgPiBrYWlzb1wgOwor54Gr56CyID4ga2Fob3VcIDsKK+mWi+ekuiA+IGthaWppXCA7Civlo7LkvqEgPiBiYWlrYVwgOwor57Gz6IuxID4gYmVpZWlcIDsKK+eFqeWkmiA+IGhhbnRhXCA7Civlo7DkvqEgPiBzZWlrYVwgOwor6Zqg5Z2KID4gb25ib3VcIDsKK+e2uOWtkCA+IHJpbnp1XCA7Civpmrvlj6UgPiBzZWtrdVwgOwor54Sh5oWuID4gbXVyeW9cIDsKK+mbquS4iyA+IHNla2thXCA7CivloIDmsZ8gPiBob3JpZVwgOwor6Zui5Lu7ID4gcmluaW5cIDsKK+e1kOaenCA+IGtla2thXCA7Civpm6jkuK0gPiB1Y2h1dVwgOwor6KGw6LqvID4gc3Vpa3VcIDsKK+e0heeCjiA+IGtvdWVuXCA7CivntrTlrZcgPiB0ZWlqaVwgOwor6Zuj5LqLID4gbmFuamlcIDsKK+WcsOiUtSA+IGppem91XCA7CivnhKHmg7MgPiBtdXNvdVwgOwor54Sh5oOoID4gbXV6YW5cIDsKK+e0r+asoSA+IHJ1aWppXCA7CivnhKHmg4UgPiBtdWpvdVwgOwor57ep5ZKMID4ga2Fud2FcIDsKK+imj+atoyA+IGtpc2VpXCA7CivoqZDlj5YgPiBzYXNodVwgOwor54Sh5oGlID4gbXVjaGlcIDsKK+ijheiNtyA+IHNvdWthXCA7CivnhKHmgKcgPiBtdXNlaVwgOwor6ZuF5YWEID4gZ2FrZWlcIDsKK+eyl+ezliA+IHNvdG91XCA7CivpmqDllqkgPiBpbicneXVcIDsKK+eEoeW/tSA+IG11bmVuXCA7Civlm57ot68gPiBrYWlyb1wgOwor6ZuH5YKtID4ga295b3VcIDsKK+imquacqCA+IG95YWdpXCA7Civpm5HkvZwgPiB6b3VzYVwgOwor54Sh5b2iID4gbXVrZWlcIDsKK+mZkOW6piA+IGdlbmRvXCA7CivnhZnlobUgPiBlbmppblwgOwor5aGB5omTID4gcnVpZGFcIDsKK+aVheS6uiA+IGtvamluXCA7CivlnJ/olLUgPiBkb3pvdVwgOwor6KW/5q2mID4gc2VpYnVcIDsKK+eCjueCjiA+IGVuJydlblwgOwor6KaL5qeYID4gbWl5b3VcIDsKK+aVheS4uyA+IGtvc2h1XCA7Civopb/mrKcgPiBzZWlvdVwgOwor6KaH5qipID4gaGFrZW5cIDsKK+mZouWuoyA+IGluemVuXCA7CivnspfnrKggPiBzb2hvblwgOwor57Sh5qmfID4gYm91a2lcIDsKK+Wbs+inoyA+IHp1a2FpXCA7CivlnKjojbcgPiB6YWlrYVwgOwor6ZeY5rCXID4gdG91a2lcIDsKK+WcsOiJsiA+IGppaXJvXCA7CivnhKHluL0gPiBtdWJvdVwgOwor54Sh5bi4ID4gbXVqb3VcIDsKK+Wcn+iRrCA+IGRvc291XCA7CivmlL/kuosgPiBzZWlqaVwgOwor5o6q572uID4gc29jaGlcIDsKK+Wik+WcsCA+IGJvY2hpXCA7Civnt4/lk6EgPiBzb3VpblwgOwor6ZqP5ZacID4genVpa2lcIDsKK+WcqOiLsSA+IHphaWVpXCA7Civns5zniJsgPiBiaXJhblwgOwor57eP5ZKMID4gc291d2FcIDsKK+mbheS6uiA+IGdhamluXCA7CivloLTmiYAgPiBiYXNob1wgOwor6KGX6LevID4gZ2Fpcm9cIDsKK+mZhOW4ryA+IGZ1dGFpXCA7CivloZflt6UgPiB0b2tvdVwgOwor5Zue6K2wID4ga2FpZ2lcIDsKK+maj+WToSA+IHp1aWluXCA7CivloIXmnpwgPiBrZW5rYVwgOwor6Kix5ZCmID4ga3lvaGlcIDsKK+aLl+mfsyA+IHlvdW9uXCA7CivoqLHlj68gPiBreW9rYVwgOwor6KaL5qCEID4gbWliYWVcIDsKK+e1ueW4gyA+IGtlbnB1XCA7Civpmorlk6EgPiB0YWlpblwgOwor6Zm25ZyfID4gdG91ZG9cIDsKK+aPkOekuiA+IHRlaWppXCA7CivmjInphY0gPiBhbmJhaVwgOwor54Sh5bC9ID4gbXVqaW5cIDsKK+mZpOWkliA+IGpvZ2FpXCA7Civlopflk6EgPiB6b3VpblwgOwor57W15be7ID4gZW1ha2lcIDsKK+ihjOi3ryA+IGtvdXJvXCA7CivmjL/oqbEgPiBzb3V3YVwgOwor6KaL5pysID4gbWlob25cIDsKK+mZouWkliA+IGluZ2FpXCA7Civnt4/li5kgPiBzb3VtdVwgOwor6ZeK5q2pID4ga2FwcG9cIDsKK+WZqumfsyA+IHNvdW9uXCA7Civln7rmnb8gPiBraWJhblwgOwor6Zm25ZmoID4gdG91a2lcIDsKK+e2meWkqyA+IGtlaWZ1XCA7CivnhKHlrrMgPiBtdWdhaVwgOwor6Zqg5YWDID4gaW5nZW5cIDsKK+eEoeWumCA+IG11a2FuXCA7CivoqIPloLEgPiBmdWhvdVwgOwor5Z+65pysID4ga2lob25cIDsKK+eyl+egpSA+IGFyYXRvXCA7CivloLHmgakgPiBob3VvblwgOwor6Zq35LiLID4gcmVpa2FcIDsKK+e0oOadkCA+IHNvemFpXCA7CivpmY3lq4EgPiBrb3VrYVwgOwor57eP5Ye6ID4gc291ZGVcIDsKK+imi+aYoCA+IG1pYmFlXCA7Civntr3lkI0gPiBhZGFuYVwgOwor5ZyS6Iq4ID4gZW5nZWlcIDsKK+eBr+eBqyA+IHRvdWthXCA7Civop6PlrZcgPiBrYWlqaVwgOwor5o2V6JmcID4gaG9yeW9cIDsKK+mao+S/nSA+IHJpbnBvXCA7CivlopPlj4IgPiBib3NhblwgOwor54Gr54G9ID4ga2FzYWlcIDsKK+ioiOWZqCA+IGtlaWtpXCA7CivntYTmiJAgPiBzb3NlaVwgOwor6KO455y8ID4gcmFnYW5cIDsKK+eyl+ebuCA+IHNvc291XCA7Civmi77pgbogPiBzaHV1aVwgOwor57W25a62ID4gemVra2VcIDsKK+iomOWQjSA+IGtpbWVpXCA7CivooaPoo7MgPiBpc2hvdVwgOwor5aKX5YqgID4gem91a2FcIDsKK+iomOWPtyA+IGtpZ291XCA7Civmv77ntJkgPiByb3NoaVwgOwor6Zi75a6zID4gc29nYWlcIDsKK+WcsOe4gSA+IGNoaWVuXCA7CivnhKHlp4sgPiBtdXNoaVwgOwor5Zua6KGjID4gc2h1dWlcIDsKK+iho+ijhSA+IGlzaG91XCA7CivmkanmkI0gPiBtYXNvblwgOwor5Z+65pWwID4ga2lzdXVcIDsKK+ihm+imliA+IGVpc2hpXCA7Civlm73oj68gPiBrb2trYVwgOwor5aGU5amGID4gdG91YmFcIDsKK+e0oOaVsCA+IHNvc3V1XCA7CivlnZDnpoUgPiB6YXplblwgOwor5aKT5YmNID4gYm96ZW5cIDsKK+maoOS6oSA+IG9uYm91XCA7CivnhKHlo7AgPiBtdXNlaVwgOwor5Zyw57SLID4gamltb25cIDsKK+aOsuekuiA+IGtlaWppXCA7CivmvJTpoYwgPiBlbmRhaVwgOwor57SN5pyfID4gbm91a2lcIDsKK+aSkuW4gyA+IHNhbnB1XCA7CivloIXmjIEgPiBrZW5qaVwgOwor5pOs5YuiID4gZ2lzZWlcIDsKK+WbveiKsSA+IGtva2thXCA7CivlnLDnsbMgPiBqaW1haVwgOwor6Kaq5b6hID4gb3lhZ29cIDsKK+eCueaSrSA+IHRlbnBhXCA7Civmv4PoibYgPiBub3VlblwgOwor6Ki05Lq6ID4gc29uaW5cIDsKK+ihl+ihoiA+IGdhaWt1XCA7CivplovmvJQgPiBrYWllblwgOwor6KiO5YyqID4gdG91aGlcIDsKK+e1jOW6piA+IGtlaWRvXCA7Civmk6zliLYgPiBnaXNlaVwgOwor57SL5pelID4gbW9uYmlcIDsKK+aOiOeyviA+IGp1c2VpXCA7CivpmaTlkI0gPiBqb21laVwgOwor54Gv5rK5ID4gdG91eXVcIDsKK+mZpOWPtyA+IGpvZ291XCA7CivpmbblhrYgPiB0b3V5YVwgOwor5Zuw6IumID4ga29ua3VcIDsKK+aKq+mcsiA+IGhpcm91XCA7CivpmaTljrsgPiBqb2t5b1wgOwor6Zmi5Y+3ID4gaW5nb3VcIDsKK+maiuS8jSA+IHRhaWdvXCA7CivntIXml5cgPiBrb3VraVwgOwor6ZqO5LiLID4ga2Fpa2FcIDsKK+aKlemjmyA+IHRvdWhpXCA7Civon7vphbggPiBnaXNhblwgOwor57Sg5oeQID4gc29rYWlcIDsKK+WcsOennyA+IGNoaXNvXCA7CivntLDlvq4gPiBzYWliaVwgOwor6Kib5LydID4ga2FkZW5cIDsKK+aLnei+niA+IGhhaWppXCA7CivlnJ/nrqEgPiBkb2thblwgOwor5Zyw56WHID4gY2hpZ2lcIDsKK+WhiuWcnyA+IGthaWRvXCA7Civoo4/nm64gPiB1cmFtZVwgOwor5oyB6KuWID4gamlyb25cIDsKK+imluW6piA+IHNoaWRvXCA7Civngo7mmpEgPiBlbnNob1wgOwor57K+5rK5ID4gc2VpeXVcIDsKK+eyl+eFriA+IGFyYW5pXCA7Civpl5jmioAgPiB0b3VnaVwgOwor5oy/6IqxID4gc291a2FcIDsKK+aTrOS6uiA+IGdpamluXCA7Civnsr7msJcgPiBzZWlraVwgOwor6KaW5beuID4gc2hpc2FcIDsKK+eEoeWQjSA+IG11bWVpXCA7CivntKDmgKcgPiBzdWpvdVwgOwor6Kaq5a2XID4gb3lhamlcIDsKK+mYu+WWqiA+IHNvc291XCA7CivntI3miLggPiBuYW5kb1wgOwor54Sh5Y+MID4gbXVzb3VcIDsKK+WhqeWIhiA+IGVuYnVuXCA7CivntKDlv5cgPiBzb3NoaVwgOwor57Sw5belID4gc2Fpa3VcIDsKK+mZquS+jSA+IGJhaWppXCA7CivloLDloKQgPiBlbnRlaVwgOwor54Sh5YuiID4gYnV6ZWlcIDsKK+WfuuW6lSA+IGtpdGVpXCA7CivmjrvniKwgPiBzb3VoYVwgOwor5Zyn56CVID4gYXNzYWlcIDsKK+WfuuW5uSA+IGtpa2FuXCA7Civmj67mr6sgPiBraWdvdVwgOwor54Sh5Yq5ID4gbXVrb3VcIDsKK+WcsOebpCA+IGppYmFuXCA7Civlm7LnuZ4gPiBpbnlvdVwgOwor5oud6LOAID4gaGFpZ2FcIDsKK+eBq+ahtiA+IGhpb2tlXCA7CivmjqjnkIYgPiBzdWlyaVwgOwor57KX5ryPID4gc29yb3VcIDsKK+aJtumkiiA+IGZ1eW91XCA7CivmjZXnuIQgPiBob2pvdVwgOwor57W25Y+lID4gemVra3VcIDsKK+Wbm+iCoSA+IHNoaWtvXCA7CivnsKHntKAgPiBrYW5zb1wgOwor5oq86YCBID4gb3Vzb3VcIDsKK+Wcn+eggiA+IGRvc2hhXCA7CivnhKHlhqAgPiBtdWthblwgOwor54K55beuID4gdGVuc2FcIDsKK+WgoeWhgSA+IGhvcnVpXCA7Civmk43kvZwgPiBzb3VzYVwgOwor57SU5bqmID4ganVuZG9cIDsKK+iogOS4iyA+IGdlbmthXCA7Civopo/lrpogPiBraXRlaVwgOwor54Gr5pucID4ga2F5b3VcIDsKK+a7i+mkiiA+IGppeW91XCA7Civmj5vmsJcgPiBrYW5raVwgOwor6ZaL5p62ID4ga2Fpa2FcIDsKK+Wcp+eXlSA+IGFra29uXCA7Civmibnpm6MgPiBoaW5hblwgOwor6KO95rK5ID4gc2VpeXVcIDsKK+WZqOiyoSA+IGtpemFpXCA7CivplpHmmocgPiBrYW5rYVwgOwor54Gr5pifID4ga2FzZWlcIDsKK+mZm+S4iyA+IGhlaWthXCA7Civop5LlipsgPiBzdW1vdVwgOwor57K+5p+7ID4gc2Vpc2FcIDsKK+WcsOeQhiA+IGNoaXJpXCA7CivloLTlkbMgPiBiYWFqaVwgOwor566X6K2cID4gc2FucHVcIDsKK+eDiOWppiA+IHJlcHB1XCA7CivloZHlg48gPiBzb3pvdVwgOwor5o6I55SjID4ganVzYW5cIDsKK+eEoeS9kyA+IG11dGFpXCA7CivooYzohJogPiBhbmd5YVwgOwor54Sh5L2PID4gbXVqdXVcIDsKK+aPuuabsyA+IHlvdWVpXCA7CivntKDlrZAgPiBzb3NoaVwgOwor57WM5Za2ID4ga2VpZWlcIDsKK+Wcn+eUqCA+IGRveW91XCA7CivnhKHku6MgPiBtdWRhaVwgOwor6KCR6J66ID4gc2F6YWVcIDsKK+ieuumIvyA+IHJhZGVuXCA7CivngrnlrZcgPiB0ZW5qaVwgOwor54Sh5Lq6ID4gbXVuaW5cIDsKK+Wcn+eTtiA+IGRvYmluXCA7CivloILlpaUgPiBkb3VvdVwgOwor6Ziy5YW3ID4gYm91Z3VcIDsKK+mZjeS4iyA+IGtvdWthXCA7CivntLrlnLAgPiBrb25qaVwgOwor6ZW35p+EID4gbmFnYWVcIDsKK+iln+W6piA+IGtpbmRvXCA7CivnhKHkuIogPiBtdWpvdVwgOwor6KGj57OnID4gaXJ5b3VcIDsKK+e1tuS9syA+IHpla2thXCA7CivntKDlp5MgPiBzdWpvdVwgOwor6Ziy5YKZID4gYm91YmlcIDsKK+Wbs+ekuiA+IHp1c2hpXCA7CivntZDlj6UgPiBrZWtrdVwgOwor5Z+O5bqcID4gam91ZnVcIDsKK+iejemZpCA+IHl1dWpvXCA7CivmiaPpmaQgPiBrb3Vqb1wgOwor6Zi/5LqAID4gb2thbWVcIDsKK+aJk+mghiA+IGRhanVuXCA7CivmirHosqAgPiBob3VmdVwgOwor5o6S54WZID4gaGFpZW5cIDsKK+a8ouiqniA+IGthbmdvXCA7CivmkYLlrrYgPiBzZWtrZVwgOwor5aCF5Zu6ID4ga2VuZ29cIDsKK+eBq+aJiyA+IGthc2h1XCA7CivmiYvpoIYgPiB0ZWp1blwgOwor5omT6Zu7ID4gZGFkZW5cIDsKK+etlOi+niA+IHRvdWppXCA7Civmj5DmoYggPiB0ZWlhblwgOwor5Z+65ZywID4ga2ljaGlcIDsKK+Wcp+eCuSA+IGF0dGVuXCA7CivplovmiYkgPiBrYWloaVwgOwor6KOc5q2jID4gaG9zZWlcIDsKK+aPoeaWpyA+IGFrdWZ1XCA7CivmiqvorJsgPiBoaWtvdVwgOwor5omT6ZaLID4gZGFrYWlcIDsKK+imgeWbsyA+IHlvdXp1XCA7Civopb/lnJ8gPiBzZWlkb1wgOwor6KaB5ZugID4geW91aW5cIDsKK+ertummrCA+IGtlaWJhXCA7CivnspfmnKggPiBhcmFraVwgOwor5ryP6KmxID4gcm91d2FcIDsKK+aOoeayuSA+IHNhaXl1XCA7Civooqvngb0gPiBoaXNhaVwgOwor5aC05LujID4gYmFkYWlcIDsKK+eyl+aatCA+IHNvYm91XCA7CivlnLDmuKkgPiBjaGlvblwgOwor5o6q5q2iID4gc29zaGlcIDsKK+ijj+avmyA+IHVyYWtlXCA7CivploDmiYkgPiBtb25waVwgOwor6ZaA5oi4ID4gbW9ua29cIDsKK+ezluW6piA+IHRvdWRvXCA7Civplovmgp8gPiBrYWlnb1wgOwor57SZ5ZmoID4gc2hpa2lcIDsKK+aKq+imiyA+IGhpa2VuXCA7CivmkbjlhpkgPiBtb3NoYVwgOwor6KGo552AID4gdXdhZ2lcIDsKK+eCreWboyA+IHRhZG9uXCA7Civlm57nm64gPiBrYWltZVwgOwor5oqX6K2wID4ga291Z2lcIDsKK+a7hemHkSA+IG1la2tpXCA7CivnspfmlL4gPiBzb2hvdVwgOwor6KaB5ZOhID4geW91aW5cIDsKK+aJk+mNtSA+IGRha2VuXCA7CivntK/liqAgPiBydWlrYVwgOwor6J2f6ZuGID4gaXNodXVcIDsKK+eCiuWppiA+IHN1aWZ1XCA7CivngrnlkbwgPiB0ZW5rb1wgOwor5o6S5rCXID4gaGFpa2lcIDsKK+aRuOWAoyA+IG1vaG91XCA7Civopo/liLYgPiBraXNlaVwgOwor54KO5aSpID4gZW50ZW5cIDsKK+WboOeUsSA+IGluJyd5dVwgOwor5Zyw5q2pID4gY2hpaG9cIDsKK+aJi+mMoCA+IHRlam91XCA7Civmv7bmrakgPiBrYXBwb1wgOwor5Zyw5q2MID4gaml1dGFcIDsKK+mWgOW+kiA+IG1vbnRvXCA7CivllrbppIogPiBlaXlvdVwgOwor54KK5aSrID4gc3VpZnVcIDsKK+aMv+eUuyA+IHNvdWdhXCA7Civlm7PniYggPiB6dWhhblwgOwor57K+5bqmID4gc2VpZG9cIDsKK+aPtOW8lSA+IGVuJydpblwgOwor5rue6LKoID4gdGFpa2FcIDsKK+imgeWLmSA+IHlvdW11XCA7CivngavlsbEgPiBrYXphblwgOwor57O75ZuzID4ga2VpenVcIDsKK+Wcp+atuyA+IGFzc2hpXCA7CivmiYvph5EgPiB0ZWtpblwgOwor5Zyf5rCRID4gZG9taW5cIDsKK+eCueWJjSA+IHRlbWFlXCA7CivmjqLmn7sgPiB0YW5zYVwgOwor57SU5YyWID4ganVua2FcIDsKK+e0jeWPlyA+IG5vdWp1XCA7CivmiYvphY0gPiB0ZWhhaVwgOwor5ouJ6Ie0ID4gcmFjaGlcIDsKK+ihm+eUnyA+IGVpc2VpXCA7Civoo5zmlbQgPiBob3NlaVwgOwor6KaB5YW3ID4geW91Z3VcIDsKK+ijnOaVsCA+IGhvc3V1XCA7Civngq3ljJYgPiB0YW5rYVwgOwor5o6I5qipID4ganVrZW5cIDsKK+e0lOWIqSA+IGp1bnJpXCA7CivnrYboqJggPiBoaWtraVwgOwor57Sw5LqLID4gc2FpamlcIDsKK+aMh+ekuiA+IHNoaWppXCA7CivnspfmgqogPiBzb2FrdVwgOwor57Sg5L2TID4gc290YWlcIDsKK+a8lOiKuCA+IGVuZ2VpXCA7Civns57lnJ8gPiBmdW5kb1wgOwor6ZW35bGFID4gbmFnYWlcIDsKK+a8q+e9tSA+IG1hbmJhXCA7CivntJnkvqEgPiBzaGlrYVwgOwor56uv6YqtID4gaGFzZW5cIDsKK+WYieiogCA+IGthZ2VuXCA7CivnspjluqYgPiBuZW5kb1wgOwor566q56ylID4gdGFuc3VcIDsKK+e0gOWFgyA+IGtpZ2VuXCA7Civlm7Pms5UgPiB6dWhvdVwgOwor5r2k55uuID4gdXJ1bWVcIDsKK+WbveatjCA+IGtva2thXCA7Civplovln7ogPiBrYWlraVwgOwor5rmW6Z2iID4ga29tZW5cIDsKK+aPmuWxiyA+IGFnZXlhXCA7CivlnJ/mm5wgPiBkb3lvdVwgOwor57SN5LuYID4gbm91ZnVcIDsKK+ijj+aJiyA+IHVyYXRlXCA7Civonp/om74gPiBtZWlnYVwgOwor5Zyn5pS/ID4gYXNzZWlcIDsKK+mWi+WckiA+IGthaWVuXCA7CivlnJ/mmJ8gPiBkb3NlaVwgOwor54KO5YWJID4gZW5rb3VcIDsKK+aKvOe1tSA+IG9zaGllXCA7Civmua/piq0gPiB5dXNlblwgOwor6Zay5YW1ID4gZXBwZWlcIDsKK+ijnOW8piA+IGhvZ2VuXCA7Civns7jkvqEgPiBzaGlrYVwgOwor6KGM54GvID4gYW5kb25cIDsKK+aJi+ipsSA+IHNodXdhXCA7CivlnKfmjpIgPiBhcHBhaVwgOwor5omL6KiYID4gc2h1a2lcIDsKK+WWtumAoCA+IGVpem91XCA7CivlnLDmiYAgPiBqaXNob1wgOwor57OW5YyWID4gdG91a2FcIDsKK+WWtui+siA+IGVpbm91XCA7Civoo5zlt7sgPiBob2thblwgOwor6KOV5bqmID4geXV1ZG9cIDsKK+eziuWPoyA+IGtva291XCA7CivmioDoirggPiBnaWdlaVwgOwor6Za55Lq6ID4gZW5qaW5cIDsKK+aNnOafuyA+IHNvdXNhXCA7CivmiYvoo70gPiB0ZXNlaVwgOwor5Z+O5LiLID4gam91a2FcIDsKK+eBq+WLoiA+IGthc2VpXCA7Civmi53nnIkgPiBoYWliaVwgOwor5oy95q2MID4gYmFua2FcIDsKK+aOiOaIkiA+IGp1a2FpXCA7CivnspflpKcgPiBzb2RhaVwgOwor5oim6LK7ID4gc2VucGlcIDsKK+WbuuaciSA+IGtveXV1XCA7CivmuKnpoZQgPiBvbmdhblwgOwor54KK5LqLID4gc3VpamlcIDsKK+eCjuS4iiA+IGVuam91XCA7CivmjbvmjKsgPiBuZW56YVwgOwor6KO95aGpID4gc2VpZW5cIDsKK+eBq+WIkSA+IGtha2VpXCA7CivmvJTnrpcgPiBlbnphblwgOwor5rip6aCGID4gb25qdW5cIDsKK+mWi+WMliA+IGthaWthXCA7Civoo5zlsI4gPiBob2RvdVwgOwor5Zug5qWtID4gaW5nb3VcIDsKK+aKgOiDvSA+IGdpbm91XCA7CivnqoHpo5sgPiB0b3BwaVwgOwor5Zu95peXID4ga29ra2lcIDsKK+Wbs+abuCA+IHRvc2hvXCA7CivngavlhYkgPiBrYWtvdVwgOwor6KOc5a6MID4gaG9rYW5cIDsKK+ewoeaYkyA+IGthbicnaVwgOwor6KGS5rCXID4gZ2Vua2lcIDsKK+exs+WvvyA+IGJlaWp1XCA7CivmipXntrIgPiB0b2FtaVwgOwor6KO95ZuzID4gc2VpenVcIDsKK+eymOWcnyA+IG5lbmRvXCA7CivmkI3kv50gPiBzb25wb1wgOwor6KOP5bGLID4gdXJheWFcIDsKK+aOquWumiA+IHNvdGVpXCA7CivmibbogrIgPiBmdWlrdVwgOwor6Zaj5LiLID4ga2Fra2FcIDsKK+aIpuiomCA+IHNlbmtpXCA7CivmiYvoloQgPiB0ZXVzdVwgOwor566h55CGID4ga2FucmlcIDsKK+WcqOW6qyA+IHphaWtvXCA7CivmjafmjIEgPiBob3VqaVwgOwor56ul6KmxID4gZG91d2FcIDsKK+idpuibhCA+IHNoYWtvXCA7Civmj7TlhbUgPiBlbnBlaVwgOwor5Z2R5aSrID4ga291ZnVcIDsKK+iiq+W8viA+IGhpZGFuXCA7CivooYDmsJcgPiBrZWtraVwgOwor5ZiJ6IK0ID4ga2Frb3VcIDsKK+WZqOeUqCA+IGtpeW91XCA7CivplpPku6MgPiBtYWRhaVwgOwor5Zyn5be7ID4gYWtrYW5cIDsKK+aIkuittyA+IGthaWdvXCA7Civnga/kuIsgPiB0b3VrYVwgOwor5ryr55S7ID4gbWFuZ2FcIDsKK+aPmuWPpSA+IGFnZWt1XCA7CivllprotbcgPiBrYW5raVwgOwor6KOc5aGrID4gaG90ZW5cIDsKK+iho+acjSA+IGlmdWt1XCA7Civnspflk4EgPiBzb2hpblwgOwor5Zyf5belID4gZG9rb3VcIDsKK+a4hemfsyA+IHNlaW9uXCA7Civlm6DmlbAgPiBpbnN1dVwgOwor5oiQ6KqeID4gc2VpZ29cIDsKK+Wbm+aXpSA+IHlva2thXCA7CivmiYvojZIgPiB0ZWFyYVwgOwor57Gz5aGpID4gYmVpZW5cIDsKK+aOqeWjlSA+IGVuZ291XCA7CivlmIbnvo4gPiB0YW5iaVwgOwor6J2X6JmrID4gYmF0dGFcIDsKK+iho+aWmSA+IGlyeW91XCA7CivmjZXmiYsgPiBob3NodVwgOwor5Zyo5a62ID4gemFpa2VcIDsKK+ijnOWbniA+IGhva2FpXCA7CivooZvmmJ8gPiBlaXNlaVwgOwor6ZaA5LiLID4gbW9ua2FcIDsKK+ihjOadjiA+IGtvdXJpXCA7CivlmbTngasgPiBmdW5rYVwgOwor57KX5YipID4gYXJhcmlcIDsKK+iiq+WusyA+IGhpZ2FpXCA7Civnr4DmsJcgPiBzZWtraVwgOwor6KOP5ZywID4gdXJhamlcIDsKK+mNjemHkSA+IG1la2tpXCA7CivlmInntI0gPiBrYW5vdVwgOwor5rer6aKoID4gaW5wdXVcIDsKK+aJk+iAhSA+IGRhc2hhXCA7CivlnLDlo7AgPiBqaWdvZVwgOwor6Jy/6JySID4gZW4nJ2VuXCA7Civmt7vpmYQgPiB0ZW5wdVwgOwor5Zu65b2iID4ga29rZWlcIDsKK+aKmOebriA+IG9yaW1lXCA7Civlm73luqsgPiBrb2trb1wgOwor5r+D5bqmID4gbm91ZG9cIDsKK+ethuemjSA+IGhpa2thXCA7CivonLvom4kgPiB0b25ib1wgOwor6KGM5pa5ID4geXVrdWVcIDsKK+ihjeaWhyA+IGVuYnVuXCA7Civoo7jlg48gPiByYXpvdVwgOwor5Zub5omLID4gc2hpZGVcIDsKK+Wbs+W9oiA+IHp1a2VpXCA7CivlnoLkuIsgPiBzdWlrYVwgOwor6JyC6LW3ID4gaG91a2lcIDsKK++8sO+8oyA+IHDEq3NoxKtcIDsKK+aJk+e3miA+IGRhc2VuXCA7CivlnLDlm7MgPiBjaGl6dVwgOwor6KGo5oSPID4gaHlvdWlcIDsKK+aKgOeglCA+IGdpa2VuXCA7CivlnJ/lo4wgPiBkb2pvdVwgOwor5omL57mUID4gdGVvcmlcIDsKK+ijuOS9kyA+IHJhdGFpXCA7Civlm7Plt6UgPiB6dWtvdVwgOwor6KGb5omAID4gZWlzaG9cIDsKK+ihsOW+riA+IHN1aWJpXCA7Civoo4/lkI0gPiB1cmFuYVwgOwor5Zyf5aGKID4gZG9rYWlcIDsKK+aJi+e3tCA+IHRlcmVuXCA7CivlnJ/loYEgPiBkb3J1aVwgOwor5Zyf5aGAID4gZG9iZWlcIDsKK+WUkOmfsyA+IHRvdW9uXCA7Civlm6DlvqogPiBpbmp1blwgOwor57C/5aSWID4gYm9nYWlcIDsKK+WbnuW/jCA+IGthaWtpXCA7CivmjqHlkKYgPiBzYWloaVwgOwor5oqA55ujID4gZ2lrYW5cIDsKK+WbveWutiA+IGtva2thXCA7CivmiI7okbUgPiBqdXVraVwgOwor5Zm05rCXID4gZnVua2lcIDsKK+epuui8uCA+IGt1dXl1XCA7CivlnJ/lnLAgPiB0b2NoaVwgOwor6KOc5YWFID4gaG9qdXVcIDsKK+WdkeWEkiA+IGtvdWp1XCA7Civlm7rlrpogPiBrb3RlaVwgOwor5Zyw5ZSEID4gaml1dGFcIDsKK+WbuuWuiCA+IGtvc2h1XCA7CivmjJnmjqogPiBreW9zb1wgOwor5omT566XID4gZGFzYW5cIDsKK+WdkOWDjyA+IHphem91XCA7CivlnJ/lmqIgPiBkb25vdVwgOwor6KOB5Y+vID4gc2Fpa2FcIDsKK+WcsOWRsyA+IGNoaW1pXCA7CivnqoHotbcgPiB0b2traVwgOwor5Za26IiOID4gZWlzaGFcIDsKK+WbnuW4sCA+IGthaWtpXCA7CivmvLjmrKEgPiB6ZW5qaVwgOwor5Zar6Iy2ID4ga2lzc2FcIDsKK+epuui3ryA+IGt1dXJvXCA7Civlm73lqIEgPiBrb2t1aVwgOwor5r2c5pmCID4gc2VuamlcIDsKK+WcsOWMuiA+IGNoaWt1XCA7CivmjIfmj64gPiBzaGlraVwgOwor5oyJ5o6SID4gYW5iYWlcIDsKK+ijnOS7uyA+IGhvbmluXCA7CivmvKvmrakgPiBtYW5wb1wgOwor57Gz5L6hID4gYmVpa2FcIDsKK+ihhuaEjyA+IHNodXVpXCA7CivmvIHngasgPiBneW9rYVwgOwor5oeH6KmxID4ga29ud2FcIDsKK+epuuiyuyA+IGt1dWhpXCA7CivonInonaMgPiBmdXl1dVwgOwor6Juu6KqeID4gYmFuZ29cIDsKK+ijheWFtyA+IHNvdWd1XCA7CivmiK/ntbUgPiB6YXJlZVwgOwor5Z2Q5LmXID4gemFqb3VcIDsKK+Wbo+WtkCA+IGRhbmdvXCA7CivlnJ/lj7AgPiBkb2RhaVwgOwor5ra86ZuoID4gcnlvdXVcIDsKK+ijheWCmSA+IHNvdWJpXCA7Civlm6DlrZAgPiBpbnNoaVwgOwor5oyJ5omLID4gYW5zaHVcIDsKK+WdiuS4uyA+IGJvdXp1XCA7CivooYblvpIgPiBzaHV0b1wgOwor5ryP5rSpID4gcm91ZWlcIDsKK+Wcp+WItiA+IGFzc2VpXCA7Civlm5vlraMgPiBzaGlraVwgOwor5Za257mVID4gZWl6ZW5cIDsKK+WZqOaisCA+IGtpa2FpXCA7Civnp7vpp5AgPiBpY2h1dVwgOwor5oyB5oiSID4gamlrYWlcIDsKK+iZjumtmiA+IG9rb3plXCA7CivnrpfmnKggPiBzYW5naVwgOwor5Zyw5L6hID4gY2hpa2FcIDsKK+aJi+ebuCA+IHRlc291XCA7CivlmajmnZAgPiBraXphaVwgOwor6ZGR5p+7ID4ga2Fuc2FcIDsKK+Wcp+WAkiA+IGF0dG91XCA7CivmtbfpsLsgPiBhbmFnb1wgOwor5ouF5p62ID4gdGFua2FcIDsKK+mLremLkiA+IGVpaG91XCA7CivmjpLku5YgPiBoYWl0YVwgOwor5oaC6LqrID4gdWtpbWlcIDsKK+aJueeCuSA+IGhpdGVuXCA7CivlnJ/lgbYgPiBkb2d1dVwgOwor6KGM5a6uID4gYW5ndXVcIDsKK+WcsOS4iyA+IGNoaWthXCA7CivnrofmnaEgPiBrYWpvdVwgOwor5Zyf5L6vID4gZG9rb3VcIDsKK+aIpuemjSA+IHNlbmthXCA7CivnrYnmuKkgPiB0b3VvblwgOwor5r+D5YyWID4gbm91a2FcIDsKK+WTgOmhmCA+IGFpZ2FuXCA7CivmjL/lm7MgPiBzb3V6dVwgOwor5Zyf5Lq6ID4gZG9qaW5cIDsKK+a/gOWMliA+IGdla2thXCA7CivmhJvppJAgPiBhaXNhblwgOwor5ZK96aCtID4gaW50b3VcIDsKK+euh+aVsCA+IGtvc3V1XCA7CivlloTnvo4gPiB6ZW5iaVwgOwor5oqV5qmfID4gdG91a2lcIDsKK+ibh+ihjCA+IGRha291XCA7CivmioDms5UgPiBnaWhvdVwgOwor6KGh5ZmoID4ga291a2lcIDsKK+a1hem7hCA+IGFzYWdpXCA7Civmhbbos4AgPiBrZWlnYVwgOwor5ous5bynID4ga2Fra29cIDsKK+etieavlCA+IHRvdWhpXCA7Civmipvmo4QgPiBob3VraVwgOwor6KGX5ZuzID4gZ2FpenVcIDsKK+WckuS4gSA+IGVudGVpXCA7Civmi4fmjIcgPiBib3NoaVwgOwor5oqV5qOEID4gdG91a2lcIDsKK+aJk+eCuSA+IGRhdGVuXCA7CivmtbfpnKcgPiBrYWltdVwgOwor5ryP5paXID4gcm91dG9cIDsKK+evhuWtlyA+IHRlbmppXCA7CivmuKHoiLkgPiB0b3NlblwgOwor5rih6IiqID4gdG9rb3VcIDsKK+a7nuaspyA+IHRhaW91XCA7Civmt6vooYwgPiBpbmtvdVwgOwor56+A5a2jID4gc2Vra2lcIDsKK+euh+aJgCA+IGthc2hvXCA7Civlm7rkvZMgPiBrb3RhaVwgOwor562U5qGIID4gdG91YW5cIDsKK+aLmOW8lSA+IGtvdWluXCA7Civnq6XnlLsgPiBkb3VnYVwgOwor5rip57+SID4gc2FyYWlcIDsKK+evgOWppiA+IHNlcHB1XCA7Civmi5DlvJUgPiBrYWlpblwgOwor5Zad56C0ID4ga2FwcGFcIDsKK+ihjOWToSA+IGtvdWluXCA7CivooZfljLogPiBnYWlrdVwgOwor6buE6a+bID4ga2lkYWlcIDsKK+WSjOmiqCA+IHdhZnV1XCA7Civonrrml4sgPiByYXNlblwgOwor56if6K2wID4gcmluZ2lcIDsKK+aGguiZniA+IHl1dWd1XCA7CivmiYvmt6sgPiBzaHVpblwgOwor6YuS6LW3ID4gaG91a2lcIDsKK+aJk+azlSA+IGRhaG91XCA7Civmt6volakgPiBpbnRvdVwgOwor56eY6Y21ID4gaGlrZW5cIDsKK+aJtuahkSA+IGZ1c291XCA7CivomZrovp4gPiBreW9qaVwgOwor6KGb5YW1ID4gZWloZWlcIDsKK+a4pue3miA+IGthc2VuXCA7Civnqrrnn6UgPiBraWNoaVwgOwor5oSa6YiNID4gZ3Vkb25cIDsKK+ihjOWLmSA+IGtvdW11XCA7CivpvKDovKkgPiBzb2hhaVwgOwor5oyZ5Y+lID4gYWdla3VcIDsKK+WbnuS7mCA+IGthaWZ1XCA7Civnr4Tlm7IgPiBoYW4nJ2lcIDsKK+a4pue0iyA+IGthbW9uXCA7CivmiY3msJcgPiBzYWlraVwgOwor5rW36YeMID4ga2FpcmlcIDsKK+m8oOi5iiA+IHNva2VpXCA7CivmiKbngasgPiBzZW5rYVwgOwor5oqK5o+hID4gaGFha3VcIDsKK+aCsumztCA+IGhpbWVpXCA7CivmuKHnsbMgPiB0b2JlaVwgOwor5ouz5Zu6ID4gZ2Vua29cIDsKK+aKleaJkyA+IHRvdWRhXCA7CivmjIflkbwgPiBzaGlrb1wgOwor6bqS6bqfID4ga2lyaW5cIDsKK+aLt+WZqCA+IGdvdWtpXCA7CivlmajlrpggPiBraWthblwgOwor6Y6W54q2ID4gc2Fqb3VcIDsKK+a6ouawtCA+IGlzc3VpXCA7CivmhYjoqJMgPiBqaWt1blwgOwor5rmW55WUID4ga29oYW5cIDsKK+a1t+mBiyA+IGthaXVuXCA7CivmhoLoi6YgPiB5dXVrdVwgOwor5Zef5q2OID4gc2F0YW5cIDsKK+a1t+i+uiA+IHVtaWJlXCA7CivmhJvou4ogPiBhaXNoYVwgOwor5oqK5omLID4gaGFzaHVcIDsKK+aMgeWPgiA+IGppc2FuXCA7CivmiZPmo5IgPiBkYWJvdVwgOwor5rmv54WOID4geXVzZW5cIDsKK+a1rumBiiA+IGZ1eXV1XCA7CivmvKLlrZcgPiBrYW5qaVwgOwor5oqS5oOFID4gam9qb3VcIDsKK+evgOWPpSA+IHNla2t1XCA7Civnp7voqr8gPiBpY2hvdVwgOwor5oyJ5YiGID4gYW5idW5cIDsKK+aCqumtlCA+IGFrdW1hXCA7CivmioDmiYsgPiBnaXNodVwgOwor5rmv54GMID4geXVrYW5cIDsKK+aJi+ahtiA+IHRlb2tlXCA7CivnqLLojbcgPiBpbmFyaVwgOwor5rqQ5rCPID4gZ2VuamlcIDsKK+aKleW9sSA+IHRvdWVpXCA7Civmtbfot68gPiBrYWlyb1wgOwor5om25oyBID4gZnVjaGlcIDsKK+a1pui+uiA+IHVyYWJlXCA7Civlkozph5EgPiB3YWtpblwgOwor6bqd6aaZID4gamFrb3VcIDsKK+mIjem6uyA+IGRvbm1hXCA7CivllZPnpLogPiBrZWlqaVwgOwor5oKq6aasID4gYWt1bWVcIDsKK+aJi+acrCA+IHRlaG9uXCA7CivmuJvno6ggPiBnZW5tYVwgOwor5oKy6aGYID4gaGlnYW5cIDsKK+eqgeegtCA+IHRvcHBhXCA7CivmtbfosZogPiBpcnVrYVwgOwor5oeQ55aRID4ga2FpZ2lcIDsKK+ibh+euoSA+IGpha2FuXCA7Civlk4DoqakgPiBhaXNoaVwgOwor5r2u5L2NID4gY2hvdWlcIDsKK+WTgOipniA+IGFpc2hpXCA7CivmiZPmlbAgPiBkYXN1dVwgOwor5oSa6KuWID4gZ3Vyb25cIDsKK+aIpuapnyA+IHNlbmtpXCA7CivmiYDmnJ8gPiBzaG9raVwgOwor5ryB5a62ID4gZ3lva2FcIDsKK+aJi+aWpyA+IHRlb25vXCA7CivmvJTlpY8gPiBlbnNvdVwgOwor6buZ6YGOID4gbW9ra2FcIDsKK+aLneWPlyA+IGhhaWp1XCA7CivmtarosrsgPiByb3VoaVwgOwor5omL5pWwID4gdGVzdXVcIDsKK+aIuOadvyA+IHRvaXRhXCA7CivmvKLlnJ8gPiBrYW5kb1wgOwor5ryU5aOHID4gZW5kYW5cIDsKK+aEmuioiCA+IGd1a2VpXCA7Civmua/msrsgPiB0b3VqaVwgOwor6Ymb6YyYID4gZW5zdWlcIDsKK+evgOS+myA+IHNla2t1XCA7Civnq4vmtL4gPiByaXBwYVwgOwor5rOl6bCMID4gZG9qb3VcIDsKK+etieW3riA+IHRvdXNhXCA7CivnrqHljLogPiBrYW5rdVwgOwor5oSa6KaLID4gZ3VrZW5cIDsKK+aKgOW4qyA+IGdpc2hpXCA7Civmg7notbcgPiBqYWtraVwgOwor5ouS5ZCmID4ga3lvaGlcIDsKK+mJm+mJsSA+IGVua291XCA7CivlkbPphoIgPiBtaXJpblwgOwor5ZG96YGLID4gbWVpdW5cIDsKK+aKgOW3pyA+IGdpa291XCA7CivmioDlt6UgPiBnaWtvdVwgOwor6by76Iy4ID4gYmlqb3VcIDsKK+mMrOejqCA+IHJlbm1hXCA7Civnp5joqIggPiBoaWtlaVwgOwor56eB6LK7ID4gc2hpaGlcIDsKK+aEj+iosyA+IGl5YWt1XCA7CivomIfpgKMgPiBzb3JlblwgOwor5ZO66IKyID4gaG9pa3VcIDsKK+a0vumBoyA+IGhha2VuXCA7Civmg7PotbcgPiBzb3VraVwgOwor6YqF6LKoID4gZG91a2FcIDsKK+aCjemmrCA+IGthbmJhXCA7CivmiK/mm7ggPiBnaXNob1wgOwor6YqY6KiYID4gbWVpa2lcIDsKK+aEmuihjCA+IGd1a291XCA7Civnqbrnlo4gPiBrdXVzb1wgOwor5rWu6KiAID4gZnVnZW5cIDsKK+a8geWkqyA+IGd5b2Z1XCA7Civmi53lhbcgPiBoYWlndVwgOwor5oi45pWwID4ga29zdXVcIDsKK+azoumrmCA+IGhha291XCA7CivmiKbmnpwgPiBzZW5rYVwgOwor6YqA6LKoID4gZ2lua2FcIDsKK+err+acrCA+IGhhaG9uXCA7CivpurvphZQgPiBtYXN1aVwgOwor5rSL6ZaTID4geW91bWFcIDsKK+mJhOmOliA+IHRlc3NhXCA7Civnp4HorbAgPiBzaGlnaVwgOwor56aB6YyuID4ga2lua29cIDsKK+a1gei7oiA+IHJ1dGVuXCA7CivmvKLlkowgPiBrYW53YVwgOwor5omL5oqAID4gc2h1Z2lcIDsKK+m8u+iFlCA+IGJpa291XCA7CivmtbTooaMgPiB5b2t1aVwgOwor5ryB5aC0ID4gZ3lvYmFcIDsKK+a4pueKtiA+IGtham91XCA7CivmhI/ooaggPiBpaHlvdVwgOwor5oiv5paHID4gZ2lidW5cIDsKK+a2suiCpSA+IGVraWhpXCA7CivmioDlrpggPiBnaWthblwgOwor56eB6KqeID4gc2hpZ29cIDsKK+aIpuaZgiA+IHNlbmppXCA7Civmt6vnpaAgPiBpbnNoaVwgOwor56m655CGID4ga3V1cmlcIDsKK+aJgOaMgSA+IHNob2ppXCA7Civmh5DngokgPiBrYWlyb1wgOwor5rqA5pyfID4gbWFua2lcIDsKK+WWtuaelyA+IGVpcmluXCA7CivmuZbmsLQgPiBrb3N1aVwgOwor5ZKM6K6aID4gd2FzYW5cIDsKK+engeiomCA+IHNoaWtpXCA7CivmiKbml5cgPiBzZW5raVwgOwor56uv5pWwID4gaGFzdXVcIDsKK+WYmOWtlyA+IHVzb2ppXCA7CivmiJDmoYggPiBzZWlhblwgOwor56WI6aGYID4ga2lnYW5cIDsKK+a4qeeCuSA+IG9udGVuXCA7Civms6LpoK0gPiBoYXRvdVwgOwor5oiQ5p6cID4gc2Vpa2FcIDsKK+aEm+iUtSA+IGFpem91XCA7CivpuqbphZIgPiBiaWlydVwgOwor5ZCN6aasID4gbWVpYmFcIDsKK+WSjOiokyA+IHdha3VuXCA7CivmiLjmiLggPiBrb2tvdVwgOwor5ZKM6KejID4gd2FrYWlcIDsKK+azoumdoiA+IGhhbWVuXCA7CivnrqHkuIsgPiBrYW5rYVwgOwor5omL5b2TID4gdGVhdGVcIDsKK+aCvOi+niA+IHRvdWppXCA7Civnp5jolLUgPiBoaXpvdVwgOwor56iy56mCID4gaW5haG9cIDsKK+m8u+e3kiA+IGhhbmFvXCA7Civlkozoo70gPiB3YXNlaVwgOwor6Yuk57C+ID4gam9yZW5cIDsKK+eorueoriA+IHNodWp1XCA7CivmuLjms7MgPiB5dXVlaVwgOwor5ZKM6KOFID4gd2Fzb3VcIDsKK+aLheS/nSA+IHRhbnBvXCA7Civlkozoo4EgPiB3YXNhaVwgOwor5oaC55uuID4gdWtpbWVcIDsKK+mHjum2jyA+IHlha2VpXCA7CivmuKnmua8gPiBvbnRvdVwgOwor5ZCM6Z+zID4gZG91b25cIDsKK+aGrueEtiA+IGJ1emVuXCA7CivmgqrpgYsgPiBha3V1blwgOwor5oe45p62ID4ga2VuZ2FcIDsKK+aCo+mDqCA+IGthbmJ1XCA7CivmvIHljLogPiBneW9rdVwgOwor5ouJ5LiBID4gcmF0ZW5cIDsKK+iWrOmRtSA+IHlha2FuXCA7Civpipjoj5MgPiBtZWlrYVwgOwor6Jyc5p+RID4gbWlrYW5cIDsKK+m7kuihoyA+IGtva3VlXCA7CivmuKnms4kgPiBvbnNlblwgOwor5oKg6YGgID4geXV1ZW5cIDsKK+aIpuaEjyA+IHNlbicnaVwgOwor5oKf6YGTID4gZ29kb3VcIDsKK+WRs+imiyA+IGFqaW1pXCA7CivmuKHmtbcgPiB0b2thaVwgOwor5Za25omAID4gZWlzaG9cIDsKK+a4qeawtCA+IG9uc3VpXCA7CivpvLvnq68gPiBiaXRhblwgOwor5rih5rSLID4gdG95b3VcIDsKK+aEm+iCsiA+IGFpaWt1XCA7Civmu4XlpJogPiBtZXR0YVwgOwor5Y+36Z+zID4gZ291b25cIDsKK+a3q+eMpSA+IGlud2FpXCA7CivlloTmnpwgPiB6ZW5rYVwgOwor5oOF6Kq8ID4gam91Z2lcIDsKK+a8geWFtyA+IGd5b2d1XCA7Civmgqrot68gPiBha3Vyb1wgOwor5rWF6JyKID4gYXNhcmlcIDsKK+aDheipsSA+IGpvdXdhXCA7CivnqK7nmq4gPiBzaHVoaVwgOwor5oSa6ICFID4gZ3VzaGFcIDsKK+aEmuiAgyA+IGd1a291XCA7CivmiKblvowgPiBzZW5nb1wgOwor6Ymb6KO9ID4gZW5zZWlcIDsKK+emgOitsCA+IHJpbmdpXCA7CivmiY3lqpsgPiBzYWllblwgOwor5omH5a2QID4gc2Vuc3VcIDsKK+aFsOeVmSA+IGlyeXV1XCA7Civnp7vnsY0gPiBpc2VraVwgOwor6YeO6aasID4gbm91bWFcIDsKK+err+W6pyA+IHRhbnphXCA7CivnpoXoqbEgPiB6ZW53YVwgOwor5oiR5oWiID4gZ2FtYW5cIDsKK+WWnOaNqCA+IGtpc2hhXCA7Civlj6TpoqggPiBrb2Z1dVwgOwor56iy55SwID4gaW5hZGFcIDsKK+WPl+mokyA+IGp1a2VuXCA7CivnqbrmsJcgPiBrdXVraVwgOwor5oiR5oOFID4gZ2Fqb3VcIDsKK+aJjeWlsyA+IHNhaWpvXCA7Civnqbrmr40gPiBrdXVib1wgOwor5ZS+5rayID4gZGFla2lcIDsKK+a6gOW6pyA+IG1hbnphXCA7Civllrbluq0gPiBlaXRlaVwgOwor56aB6KOhID4ga2lucmlcIDsKK+emgeijjyA+IGtpbnJpXCA7CivlkbPolb4gPiBtaXJhaVwgOwor6Jma56m6ID4ga29rdXVcIDsKK+aCsuimsyA+IGhpa2FuXCA7Civmt7XmupAgPiBlbmdlblwgOwor5ZKM6Ii5ID4gd2FzZW5cIDsKK+a0i+iqniA+IHlvdWdvXCA7CivmhYjnnLwgPiBqaWdlblwgOwor5Za25bejID4gZWlzb3VcIDsKK+ekvumBiyA+IHNoYXVuXCA7CivmibnliKQgPiBoaWhhblwgOwor5omL5Z6iID4gdGVha2FcIDsKK+iejeWSjCA+IHl1dXdhXCA7CivmgqroqIggPiBha2tlaVwgOwor5om55YeGID4gaGlqdW5cIDsKK+m8k+erpSA+IGtvZG91XCA7CivlkI/pgZMgPiByb2RvdVwgOwor5oqV5LiOID4gdG91eW9cIDsKK+aKleS4iyA+IHRvdWthXCA7Civmh7jmg7MgPiBrZXNvdVwgOwor5Y+X6ZujID4ganVuYW5cIDsKK+aIuOWkliA+IGtvZ2FpXCA7Civmh7rmgpQgPiB6YW5nZVwgOwor6Yuz54mpID4gaW1vbm9cIDsKK+aJjeWZqCA+IHNhaWtpXCA7Civnq6rlrZAgPiBqdXNoaVwgOwor56ym5ZCIID4gZnVnb3VcIDsKK+a3u+awtCA+IHNvdXp1XCA7CivnrKblj7cgPiBmdWdvdVwgOwor5oqA5YCSID4gZ2l0b3VcIDsKK+a4qeaaliA+IG9uZGFuXCA7CivnrYnkvqEgPiB0b3VrYVwgOwor5rih5p2lID4gdG9yYWlcIDsKK+WQjei+niA+IG1laWppXCA7CivmgaXpg6ggPiBjaGlidVwgOwor56ul5a2QID4gZG91amlcIDsKK+aHuOW/tSA+IGtlbmVuXCA7CivmgqrooYwgPiBha2tvdVwgOwor6YW46by7ID4gc2FuYmlcIDsKK+a3oea5liA+IHRhbmtvXCA7Civpu4ToirEgPiBrb3VrYVwgOwor5oiQ5bCxID4gam91anVcIDsKK+enn+eojiA+IHNvemVpXCA7CivlloTmhI8gPiB6ZW4nJ2lcIDsKK+WXn+WYhiA+IHNhdGFuXCA7CivmuIXmpZogPiBzZWlzb1wgOwor6byg55uXID4gc290b3VcIDsKK+azsOiqniA+IHRhaWdvXCA7CivmhJvnpL4gPiBhaXNoYVwgOwor5rK/6YGTID4gZW5kb3VcIDsKK+WWquWutiA+IHNvdWthXCA7Civlj6Tpiq0gPiBrb3NlblwgOwor56S+6LK7ID4gc2hhaGlcIDsKK+erpeWlsyA+IGRvdWpvXCA7CivlkKboqo0gPiBoaW5pblwgOwor5rq25YyWID4geW91a2FcIDsKK+a5luW6lSA+IGtvdGVpXCA7Civmt4vmvJMgPiByaW5yaVwgOwor5omA5ZOhID4gc2hvaW5cIDsKK+WYieS+iyA+IGthcmVpXCA7CivmuIXmoIQgPiBzZWllaVwgOwor6byg55arID4gc29la2lcIDsKK+WWhOW+jCA+IHplbmdvXCA7CivnpYjoq4sgPiBraXNlaVwgOwor5rOV6LKoID4gaG91a2FcIDsKK+eliOiqkyA+IGtpc2VpXCA7CivmtYHnvaogPiBydXphaVwgOwor56uv5Z2QID4gdGFuemFcIDsKK+WXmuWSvSA+IG9ldHN1XCA7CivmganotaYgPiBvbnNoYVwgOwor5ZKM57SZID4gd2FzaGlcIDsKK+aJi+WLoiA+IHRlemVpXCA7CivmuJvmkakgPiBnZW5tYVwgOwor5Y+w6L6eID4gZGFpamlcIDsKK+a3mOaxsCA+IHRvdXRhXCA7Civmganos5wgPiBvbnNoaVwgOwor5rSS6JC9ID4gc2hhcmVcIDsKK+a1t+eggiA+IGthaXNhXCA7CivmiYvliY0gPiB0ZW1hZVwgOwor5Y+w6LyqID4gZGFpd2FcIDsKK+a5luWyuCA+IGtvZ2FuXCA7CivmtLXnvo4gPiBqdW5iaVwgOwor5Y+k6YGTID4ga29kb3VcIDsKK+esrOS6lCA+IGRhaWdvXCA7CivnrKzkuowgPiBkYWluaVwgOwor56S66KuHID4gamlkYW5cIDsKK+mHjumDjiA+IHlhcm91XCA7Civph47pgbggPiB5YXNlblwgOwor5rOV6KqeID4gaG91Z29cIDsKK+WQiOitsCA+IGdvdWdpXCA7Civms5XoqbEgPiBob3V3YVwgOwor5rGX6aasID4ga2FuYmFcIDsKK+aHh+aEjyA+IGtvbicnaVwgOwor5oeK5oKpID4gb3Vub3VcIDsKK+aJk+WAkiA+IGRhdG91XCA7CivlkI3oqokgPiBtZWl5b1wgOwor5oSa55e0ID4gZ3VjaGlcIDsKK+WWtuWboyA+IGVpZGFuXCA7CivmsLTpto8gPiBrdWluYVwgOwor5Y+J6YqDID4gc2FqdXVcIDsKK+a4qeaDhSA+IG9uam91XCA7Civnp7vniZIgPiBpY2hvdVwgOwor56uL5aSPID4gcmlra2FcIDsKK+WUkOaqnCA+IHRvdWhpXCA7Civmg4XnvqkgPiBqb3VnaVwgOwor6Yym5peXID4ga2lua2lcIDsKK+aEm+eUqCA+IGFpeW91XCA7Civms5Xopo8gPiBob3VraVwgOwor5oeI5oCgID4gZ2V0YWlcIDsKK+enn+eVjCA+IHNva2FpXCA7CivmhJrnlJ8gPiBndXNlaVwgOwor6YeI6L+mID4gc2hha2FcIDsKK+a5r+WeoiA+IHl1YWthXCA7CivmgYvot68gPiBrb2lqaVwgOwor5rS+57GzID4gaGFiZWlcIDsKK+aIkOWboCA+IHNlaWluXCA7CivljqbploAgPiBrYW1vblwgOwor5rOV6KKrID4gaGFwcGlcIDsKK+a0i+iIniA+IHlvdWJ1XCA7CivomY7ni7wgPiBrb3JvdVwgOwor5Y+k6La+ID4ga29zaGlcIDsKK+iXjeiJsiA+IGFpaXJvXCA7Civnq6/ljYggPiB0YW5nb1wgOwor6Jma54ShID4ga3lvbXVcIDsKK+aJi+S7oyA+IHRlZGFpXCA7CivmhJvnjqkgPiBhaWdhblwgOwor5Y+X6LqrID4gdWtlbWlcIDsKK+aDqOemjSA+IHNhbmthXCA7CivmuKHlvqEgPiB0b2d5b1wgOwor5rC06a2UID4gc3VpbWFcIDsKK+mHjui2oyA+IHlhc2h1XCA7Civlj6Tos6IgPiBrb2tlblwgOwor5oim5YuZID4gc2VubXVcIDsKK+a1rueUnyA+IGZ1c2VpXCA7Civlv6vpn7MgPiBrYWlvblwgOwor5Zan5ZipID4ga2Vua2FcIDsKK+eomuawlyA+IGNoaWtpXCA7CivmuKnluK8gPiBvbnRhaVwgOwor5omA5L2cID4gc2hvc2FcIDsKK+WPpOixqiA+IGtvZ291XCA7Civph5HosqggPiBraW5rYVwgOwor5oSb54qsID4gYWlrZW5cIDsKK+a1t+eNuiA+IHJha2tvXCA7CivmiJDlk6EgPiBzZWlpblwgOwor5rqW5YKZID4ganVuYmlcIDsKK+aDo+ekviA+IHNvdWphXCA7Civno6/ovrogPiBpc29iZVwgOwor6Ymb566hID4gZW5rYW5cIDsKK+m8u+axgSA+IGJpanV1XCA7Civmtbfni7ggPiBrYWlyaVwgOwor5oOw55ygID4gZGFtaW5cIDsKK+aIv+S6iyA+IGJvdWppXCA7Civlj5nos5wgPiBqb3NoaVwgOwor5oiQ5ZCmID4gc2VpaGlcIDsKK+WPl+i0iCA+IGp1em91XCA7CivmgqrnvbUgPiBha3ViYVwgOwor5oiQ5Y+lID4gc2Vpa3VcIDsKK+aJgOS4jiA+IHNob3lvXCA7CivmgqPogIUgPiBrYW5qYVwgOwor5Y+k6Ku6ID4ga29nZW5cIDsKK+WPr+imliA+IGthc2hpXCA7Civlj6Xoqq0gPiBrdXRvdVwgOwor6buE56aNID4ga291a2FcIDsKK+eosuacqCA+IGluYWdpXCA7CivmiKblgpkgPiBzZW5iaVwgOwor5Y+j6KqeID4ga291Z29cIDsKK+WPpOipqSA+IGtvc2hpXCA7CivmiLjkuLsgPiBrb3NodVwgOwor6YeM6KyhID4gcml5b3VcIDsKK+WPpOiokyA+IGtva3VuXCA7Civnqbrlt6MgPiBha2lzdVwgOwor5Y+k6KiAID4ga29nZW5cIDsKK+aCque4gSA+IGFrdWVuXCA7CivmuKnlrZggPiBvbnpvblwgOwor5Y+X6KybID4ganVrb3VcIDsKK+WNsOmdoiA+IGlubWVuXCA7Civmsb3ou4ogPiBraXNoYVwgOwor5Y+h6KanID4gZWlyYW5cIDsKK+m7hOeggiA+IGtvdXNhXCA7CivnqY7miY0gPiBlaXNhaVwgOwor6YeM6KiAID4gcmlnZW5cIDsKK+WNmOmojiA+IHRhbmtpXCA7Civpho3phpAgPiBkYWlnb1wgOwor5riI5bqmID4gc2FpZG9cIDsKK+WNsemboyA+IGtpbmFuXCA7Civms7PogIUgPiBlaXNoYVwgOwor5ZCN6I+TID4gbWVpa2FcIDsKK+WPguizgCA+IHNhbmdhXCA7CivljbHpmbogPiBraWtlblwgOwor5Za25YCJID4gZWlzb3VcIDsKK+WWquWFtyA+IHNvdWd1XCA7Civlv4XpoIggPiBoaXNzdVwgOwor5oaC5oe8ID4geXV1a3VcIDsKK+WPjeiqniA+IGhhbmdvXCA7CivpvLvmoLkgPiBiaWtvblwgOwor5Y+L6Kq8ID4geXV1Z2lcIDsKK+WQjeiKsSA+IG1laWthXCA7CivmsbrotbcgPiBrZWtraVwgOwor6bq7552hID4gbWFzdWlcIDsKK+WPjeiotCA+IGhhbnNvXCA7Civpi63mlY8gPiBlaWJpblwgOwor6JiH55SfID4gc29zZWlcIDsKK+aEm+a2siA+IGFpZWtpXCA7Civlj4LorbAgPiBzYW5naVwgOwor5ZCN6IiXID4gbWVpaG9cIDsKK+a0vueUnyA+IGhhc2VpXCA7Civnp5jmua8gPiBoaXRvdVwgOwor6buE55a4ID4gb3VkYW5cIDsKK+awl+miqCA+IGtpZnV1XCA7Civmtbfmt7UgPiBrYWllblwgOwor56m05a2QID4gYW5hZ29cIDsKK+WWh+WPrSA+IHJhcHBhXCA7CivpjbzljLsgPiBoYXJpaVwgOwor5oCq6KidID4ga2VnZW5cIDsKK+iWrOe9kCA+IHlha2FuXCA7CivolqznvLYgPiB5YWthblwgOwor5oCd6K2wID4gc2hpZ2lcIDsKK+epj+W9kyA+IG9udG91XCA7Civph47om64gPiB5YWJhblwgOwor5Y2w6ZGRID4gaW5rYW5cIDsKK+aAqOiogCA+IGVuZ2VuXCA7CivljYjppJAgPiBnb3NhblwgOwor5b6u6aKoID4gYmlmdXVcIDsKK+a4r+WbsyA+IGtvdXp1XCA7CivmsZrovrEgPiBvam9rdVwgOwor5ZOA5q2TID4gYWlrYW5cIDsKK+a1rua4uCA+IGZ1eXV1XCA7CivoloTojbcgPiBoYWtrYVwgOwor6YqD54GrID4ganV1a2FcIDsKK+aEmuawkSA+IGd1bWluXCA7Civnp5jms5UgPiBoaWhvdVwgOwor5ZGI56S6ID4gdGVpamlcIDsKK+WWquS4uyA+IG1vc2h1XCA7CivljZfpmL8gPiBuYW4nJ2FcIDsKK+a1rua1qiA+IGZ1cm91XCA7Civpu4Tnj60gPiBvdWhhblwgOwor5ri+5ZCNID4gYWRhbmFcIDsKK+a1t+awlyA+IGthaWtpXCA7CivlvqHpo68gPiBnb2hhblwgOwor5rCX6ZqPID4ga2l6dWlcIDsKK+WQjee+qSA+IG1laWdpXCA7Civms6Lnt5ogPiBoYXNlblwgOwor5rKZ6JqVID4gZ29rYWlcIDsKK+WQjOe+qSA+IGRvdWdpXCA7CivljZHpmYsgPiBoaXJvdVwgOwor5rCR6ZyAID4gbWluanVcIDsKK+eogOabuCA+IGtpc2hvXCA7CivomZrmoIQgPiBreW9laVwgOwor5raF5qeDID4gbmVoYW5cIDsKK+a3u+WtlyA+IHNvZWppXCA7CivlkIjnvr0gPiBrYXBwYVwgOwor5ZOh5pWwID4gaW56dXVcIDsKK+a1ruawlyA+IHV3YWtpXCA7Civms6LntIsgPiBoYW1vblwgOwor56aF55S7ID4gemVuZ2FcIDsKK+eptOWgtCA+IGFuYWJhXCA7CivnopHpipggPiBoaW1laVwgOwor5ZKM5ryiID4gd2FrYW5cIDsKK+aHkOWPpCA+IGthaWtvXCA7CivmhI/mrLIgPiBpeW9rdVwgOwor5oOF55CGID4gam91cmlcIDsKK+mLreaEnyA+IGVpa2FuXCA7Civph47oj5wgPiB5YXNhaVwgOwor5Y+k6Iy2ID4ga29jaGFcIDsKK+elnuelhyA+IGppbmdpXCA7CivmtYTngasgPiBqb3VrYVwgOwor56We56S+ID4gamluamFcIDsKK+m7hOeHkCA+IG91cmluXCA7CivmtYXngKwgPiBhc2FzZVwgOwor5rK56ISCID4geXVzaGlcIDsKK+W+oemboyA+IGdvbmFuXCA7CivpiZvniYggPiBlbmJhblwgOwor6YeN6I23ID4ganV1a2FcIDsKK+ibueWMliA+IHlvdWthXCA7Civph47ojYkgPiB5YXNvdVwgOwor5b6h6ZmwID4gb2thZ2VcIDsKK+WPr+iDvSA+IGthbm91XCA7Civljp/oqp4gPiBnZW5nb1wgOwor6JqV5bqnID4gc2FuemFcIDsKK+awtOmBiyA+IHN1aXVuXCA7CivmuKnljpogPiBvbmtvdVwgOwor5rmW5LiKID4ga29qb3VcIDsKK+WPs+e/vCA+IHV5b2t1XCA7CivpioDms6IgPiBnaW5wYVwgOwor5Y6a6Kq8ID4ga291Z2lcIDsKK+W+jOmhpyA+IGtvdWtvXCA7CivpioDmsrMgPiBnaW5nYVwgOwor5oWV5oOFID4gYm9qb3VcIDsKK+WSjOa0iyA+IHdheW91XCA7CivllZblkbUgPiB0YW5rYVwgOwor5ZCN57C/ID4gbWVpYm9cIDsKK+WMu+mVtyA+IGljaG91XCA7CivljLrplpMgPiBrdWthblwgOwor5rSL55S7ID4geW91Z2FcIDsKK+a3i+W3tCA+IHJpbnBhXCA7CivlloTkuosgPiB6ZW5qaVwgOwor5rim5YuVID4ga2Fkb3VcIDsKK+iWrOemjSA+IHlha2thXCA7CivmhYfmh4MgPiBpbmdpblwgOwor5b+16KqmID4gbmVuanVcIDsKK+aEm+abuCA+IGFpc2hvXCA7CivnpYjnpbcgPiBraXRvdVwgOwor5YyV6aaWID4gaGlzaHVcIDsKK+ayv+e3miA+IGVuc2VuXCA7Civph5HogqUgPiBraW5waVwgOwor5Y+k6IGWID4ga29zZWlcIDsKK+aDheeElCA+IGpvdWVuXCA7Civljp/ooqsgPiBnZW5waVwgOwor6JWX6I2JID4gcm9zb3VcIDsKK+a3q+WllCA+IGlucG9uXCA7Civlj6PogLMgPiBrb3VqaVwgOwor5Y+k6ICBID4ga29yb3VcIDsKK+awl+mHjSA+IGtpb21vXCA7CivljZfpg70gPiBuYW50b1wgOwor5Y2X6YOoID4gbmFuYnVcIDsKK+mJseayuSA+IGtvdXl1XCA7Civmg4Xngo4gPiBqb3VlblwgOwor5rer5aOyID4gaW5iYWlcIDsKK+enmOacrCA+IGhpaG9uXCA7CivmhJrmmKcgPiBndW1haVwgOwor5rWB5rWqID4gcnVyb3VcIDsKK+aDheeBqyA+IGpvdWthXCA7CivmsLTot68gPiBzdWlyb1wgOwor5oWI5oG1ID4gamlrZWlcIDsKK+enmOabuCA+IGhpc2hvXCA7CivmsJfphY0gPiBrZWhhaVwgOwor6Jas56CUID4geWFnZW5cIDsKK+WPl+iDjiA+IGp1dGFpXCA7Civlvq7phrogPiBiaWt1blwgOwor5Y2K6YeMID4gaGFucmlcIDsKK+azleenkSA+IGhvdWthXCA7CivmsrnntJkgPiB5dXNoaVwgOwor56iy5a2QID4gaW5hZ29cIDsKK+awl+mBkyA+IGtpZG91XCA7Civmr5TpoZ4gPiBoaXJ1aVwgOwor5rWB5rCRID4gcnVtaW5cIDsKK+WNg+mHjCA+IHNlbnJpXCA7Civnp5jmlrkgPiBoaWhvdVwgOwor5ZCM56WWID4gZG91c29cIDsKK+aFi+W6piA+IHRhaWRvXCA7CivpiYTngasgPiB0ZWtrYVwgOwor5rKz57O7ID4ga2FrZWlcIDsKK+engeahiCA+IHNoaWFuXCA7Civnpo3mupAgPiBrYWdlblwgOwor56C06aGUID4gaGFnYW5cIDsKK+WNkei/kSA+IGhpa2luXCA7Civpu4TmsrMgPiBrb3VnYVwgOwor5b6h6YecID4gb2thbWFcIDsKK+W+oemHkSA+IG9rYW5lXCA7Civmtabmm7IgPiB1cmF3YVwgOwor5rS75rCXID4ga2Fra2lcIDsKK+WNiumAlCA+IGhhbnRvXCA7CivnqIvluqYgPiB0ZWlkb1wgOwor6YeN57iBID4ganV1ZW5cIDsKK+WPpOe0mSA+IGtvc2hpXCA7Civpg6jpppYgPiBidXNodVwgOwor6YO96Zu7ID4gdG9kZW5cIDsKK+m8k+aJiyA+IGtvc2h1XCA7CivpioPmnrYgPiBqdXVrYVwgOwor5re35ZKMID4ga29ud2FcIDsKK+axveiJhyA+IGtpdGVpXCA7Civmsb3oiLkgPiBraXNlblwgOwor5q+U6ZqjID4gaGlyaW5cIDsKK+aEmuaMmSA+IGd1a3lvXCA7Civlj4vnvqkgPiB5dXVnaVwgOwor5Y+k57GzID4ga29tYWlcIDsKK+WTgOaGqyA+IGFpYmluXCA7CivmuJvkvqEgPiBnZW5rYVwgOwor5ZOA5oaQID4gYWlyZW5cIDsKK+W9qembsiA+IHNhaXVuXCA7CivmsrPnq6UgPiBrYXBwYVwgOwor5re15Y+iID4gZW5zb3VcIDsKK+mDqOmhniA+IGJ1cnVpXCA7Civlk4DmhJ8gPiBhaWthblwgOwor5rOV55qHID4gaG91b3VcIDsKK+WTgOaEjSA+IGFpYmluXCA7CivolKzoj5wgPiBzb3NhaVwgOwor56Oo6ICXID4gbWFtb3VcIDsKK+a1ruaPmiA+IGZ1eW91XCA7CivlkozmnKwgPiB3YWhvblwgOwor5ray5a6JID4gZWtpYW5cIDsKK+epuuS9kCA+IGt1dXNhXCA7CivmuKHkuJYgPiB0b3NlaVwgOwor5Y+X57SNID4ganVub3VcIDsKK+WUkOWcnyA+IHRvdWRvXCA7Civmt7vliqAgPiB0ZW5rYVwgOwor5ZOA5oOFID4gYWlqb3VcIDsKK+WTgOaCvCA+IGFpdG91XCA7Civlkozmm7ggPiB3YXNob1wgOwor5oSb5oaQID4gYWlyZW5cIDsKK+egtOmWgCA+IGhhbW9uXCA7Civlj5fnsr4gPiBqdXNlaVwgOwor5oKq5ryiID4gYWtrYW5cIDsKK+WNkeizpCA+IGhpc2VuXCA7CivmhoLlk60gPiB1a2luZVwgOwor5Y2R6LOOID4gaGlzZW5cIDsKK+WPl+eyiSA+IGp1ZnVuXCA7Civpg6jpnaIgPiBidW1lblwgOwor6by75a2UID4gYmlrb3VcIDsKK+enkeaMmSA+IGtha3lvXCA7Civnn67pto8gPiBjaGFib1wgOwor5q+r6YeQID4gZ291cmlcIDsKK+aEm+aDsyA+IGFpc291XCA7Civmg4XmrYwgPiBqb3VrYVwgOwor6buE5qWKID4gdHN1Z2VcIDsKK+aEm+aDhSA+IGFpam91XCA7Civpi7PlnosgPiBpZ2F0YVwgOwor5b6u6LOkID4gYmlzZW5cIDsKK+W+ruizjiA+IGJpc2VuXCA7Civlvozpg6ggPiBrb3VidVwgOwor5Y2w6KGMID4gaW5rb3VcIDsKK+WQjeeUuyA+IG1laWdhXCA7CivpvKDlt6MgPiBzb3NvdVwgOwor6YOo6ZqKID4gYnV0YWlcIDsKK+WSjOaWhyA+IHdhYnVuXCA7Civmsb3nvZAgPiBraWthblwgOwor5rG957y2ID4ga2lrYW5cIDsKK+aEj+aFviA+IGl5b2t1XCA7CivljZjoqp4gPiB0YW5nb1wgOwor6JaE552AID4gdXN1Z2lcIDsKK+aDheapnyA+IGpvdWtpXCA7Civms6LnirYgPiBoYWpvdVwgOwor56S654++ID4gamlnZW5cIDsKK+m7hOahgyA+IG91dG91XCA7Civlj6TnpaAgPiBrb3NoaVwgOwor6JaE55uuID4gdXN1bWVcIDsKK+WRkeawlyA+IG5vbmtpXCA7CivlvpLovKkgPiB0b2hhaVwgOwor5rOV55CGID4gaG91cmlcIDsKK+mHjOeoiyA+IHJpdGVpXCA7CivljZjoqJggPiB0YW5raVwgOwor56Gs6LKoID4ga291a2FcIDsKK+mHjuemvSA+IHlha2luXCA7Civph43np5EgPiBqdXVrYVwgOwor6YOo6ZaAID4gYnVtb25cIDsKK+W+hemBvyA+IHRhaWhpXCA7CivmhYjlp5EgPiBrdXdhaVwgOwor6JuH5L2TID4gamF0YWlcIDsKK+aEn+W6piA+IGthbmRvXCA7CivpvI7luqcgPiB0ZWl6YVwgOwor5rOV546LID4gaG91b3VcIDsKK+eoveWPpCA+IGtlaWtvXCA7CivmhJrlvJ8gPiBndXRlaVwgOwor5oSa5byEID4gZ3Vyb3VcIDsKK+m8u+WjsCA+IGJpc2VpXCA7CivolqvnhZkgPiBrdW5lblwgOwor5Y+j56KRID4ga291aGlcIDsKK+W+gOmChCA+IG91a2FuXCA7CivmsoPntKAgPiB5b3Vzb1wgOwor5ZCI55CGID4gZ291cmlcIDsKK+ayu+eZkiA+IGNoaXl1XCA7CivmgrLmrY4gPiBoaXRhblwgOwor5rGa6IetID4gb3NodXVcIDsKK+WNkeiogCA+IGhpZ2VuXCA7CivliqDpvaIgPiBrYXJlaVwgOwor5b6B6YCUID4gc2VpdG9cIDsKK+m8oOWusyA+IHNvZ2FpXCA7CivlvKfpq5ggPiBrb2tvdVwgOwor6Ymb5p2/ID4gZW5iYW5cIDsKK+awkeipsSA+IG1pbndhXCA7Civmr5Tph40gPiBoaWp1dVwgOwor5Y2R6KaLID4gaGlrZW5cIDsKK+WToeWkliA+IGluZ2FpXCA7CivlvoDov5QgPiBvdWhlblwgOwor56aN5qC5ID4ga2Frb25cIDsKK+iZmuWtlyA+IGt5b2ppXCA7Civmt7vku5ggPiB0ZW5wdVwgOwor5oaR5L6dID4gaHlvdWlcIDsKK+mHjuegsiA+IHlhaG91XCA7Civlj6Hnn6UgPiBlaWNoaVwgOwor56i85YuVID4ga2Fkb3VcIDsKK+WNmOihoyA+IGhpdG9lXCA7CivmhInlv6sgPiB5dWthaVwgOwor56mP5YGlID4gb25rZW5cIDsKK+WOn+e+qSA+IGdlbmdpXCA7Civms6LngL4gPiBoYXJhblwgOwor5rK555SwID4geXVkZW5cIDsKK+W8vumbqCA+IGRhbicndVwgOwor56mP5L6/ID4gb25iaW5cIDsKK+azoua/pCA+IGhhdG91XCA7Civlj7DnlKsgPiB0YWlob1wgOwor6YO96YKRID4gdG95dXVcIDsKK+WSjOaIpiA+IHdhc2VuXCA7Civlj6/nlKggPiBrYXlvdVwgOwor6bm55rmWID4ga2Fua29cIDsKK+ays+eVlCA+IGthaGFuXCA7Civli4fpo5sgPiB5dXVoaVwgOwor5Y2K6KO4ID4gaGFucmFcIDsKK+W+hOi3ryA+IGtlaXJvXCA7CivlvqHoqaAgPiBneW9laVwgOwor6YeN55uuID4gb21vbWVcIDsKK+WNiuiiqyA+IGhhcHBpXCA7Civnp4HmgKggPiBzaGllblwgOwor56CC6ZiyID4gc2Fib3VcIDsKK+W+ruihjCA+IGJpa291XCA7CivlkarmlocgPiBqdW1vblwgOwor5rOz5rOVID4gZWlob3VcIDsKK+W+oeimpyA+IGdvcmFuXCA7CivnqLzlg40gPiBrYWRvdVwgOwor5ZCQ54CJID4gdG9zaGFcIDsKK+a3q+S5sSA+IGlucmFuXCA7Civlj5fnm4ogPiBqdWVraVwgOwor56We5q2mID4gamlubXVcIDsKK+WQiOeCuSA+IGdhdGVuXCA7CivmhJvlrasgPiBhaXNvblwgOwor5rWF5omLID4gYXNhZGVcIDsKK+aEm+WtgyA+IGFpam91XCA7CivompXlhbcgPiBzYW5ndVwgOwor6YqD5b6MID4ganV1Z29cIDsKK+aEm+WsoiA+IGFpam91XCA7Civljp/ntKAgPiBnZW5zb1wgOwor6JqV5YWQID4gc2FuamlcIDsKK+aFiOWWhCA+IGppemVuXCA7Civmg7DmgKcgPiBkYXNlaVwgOwor5rK554q2ID4geXVqb3VcIDsKK+mHjueUnyA+IHlhc2VpXCA7Civms6LmtaogPiBoYXJvdVwgOwor56eY5a6dID4gaGlob3VcIDsKK+iTruiPryA+IHJlbmdlXCA7CivmhJvlqb8gPiBhaXNlaVwgOwor5b+N6IumID4gbmlua3VcIDsKK+mKg+W6pyA+IGp1dXphXCA7CivljrPnp5ggPiBnZW5waVwgOwor5Y6f57C/ID4gZ2VuYm9cIDsKK+WOs+enkSA+IGdlbmthXCA7Civpi63lhbUgPiBlaWhlaVwgOwor6YqA5bqnID4gZ2luemFcIDsKK+mDoemDqCA+IGd1bmJ1XCA7CivpvLvlj6MgPiBiaWtvdVwgOwor5b6M6KiYID4ga291a2lcIDsKK+aEm+WmuyA+IGFpc2FpXCA7CivmhJrlprsgPiBndXNhaVwgOwor5oW25LqLID4ga2VpamlcIDsKK+eojuWQjyA+IHplaXJpXCA7CivmhJvlpb0gPiBhaWtvdVwgOwor5Yq06Z+zID4gcm91b25cIDsKK+WPr+eHgyA+IGthbmVuXCA7CivmtrLljJYgPiBla2lrYVwgOwor5ZCd5rCXID4gcmlua2lcIDsKK+mEmeimiyA+IGhpa2VuXCA7CivlkozlubMgPiB3YWhlaVwgOwor6YeO542jID4geWFqdXVcIDsKK+mzs+mnlSA+IGhvdWdhXCA7Civph47njKogPiB5YWNob1wgOwor6YKq6Zm6ID4gamFrZW5cIDsKK+W+kuihjCA+IHRva291XCA7CivmsLTogqUgPiBzdWloaVwgOwor5Y+k54mIID4ga29oYW5cIDsKK+WLn+mHkSA+IGJva2luXCA7Civlvozoo5QgPiBrb3VlaVwgOwor5b6Q6KGMID4gam9rb3VcIDsKK+WQjOa0viA+IGRvdWhhXCA7CivphbjntKAgPiBzYW5zb1wgOwor5b6A6KiqID4gb3Vob3VcIDsKK+mHjueKrCA+IHlha2VuXCA7Civlu7bpq4QgPiBlbnp1aVwgOwor56iO5YuZID4gemVpbXVcIDsKK+aCquaXpSA+IGFrdWJpXCA7CivnqJrlhZAgPiBjaGlnb1wgOwor5Yqg6aSQID4ga2FzYW5cIDsKK+WKoOmkiiA+IGtheW91XCA7Civmra/pn7MgPiBzaGlvblwgOwor5b6M6KGbID4ga291ZWlcIDsKK+mFtee0oCA+IGtvdXNvXCA7Civpg4rph44gPiBrb3V5YVwgOwor56eB5a62ID4gc2hpa2FcIDsKK+m8juWdkCA+IHRlaXphXCA7Civlv43ogIUgPiBuaW5qYVwgOwor5Yy76JasID4gaXlha3VcIDsKK+ekvuatjCA+IHNoYWthXCA7CivpvLvlhoUgPiBiaW5haVwgOwor5b6h6JStID4gb2thZ2VcIDsKK+WLoumBiyA+IHNlaXVuXCA7CivlkIzmsJcgPiBkb3VraVwgOwor5Y+l54K5ID4ga3V0ZW5cIDsKK+egtOirhyA+IGhhZGFuXCA7CivlkozlsJogPiBvc2hvdVwgOwor5Y+j54KOID4ga291ZW5cIDsKK+W9k+i3ryA+IHRvdXJvXCA7CivmhYjlhYQgPiBqaWtlaVwgOwor5oOF5oSbID4gam91YWlcIDsKK+ato+mfsyA+IHNlaW9uXCA7CivlkI3mrYwgPiBtZWlrYVwgOwor6YOo6LKhID4gYnV6YWlcIDsKK+WPr+a6tiA+IGtheW91XCA7Civmsr/mtbcgPiBlbmthaVwgOwor6I+v6bqXID4ga2FyZWlcIDsKK+mJhOaJiSA+IHRlcHBpXCA7Civlkr3llokgPiBpbmtvdVwgOwor5rW35ZuzID4ga2FpenVcIDsKK+W+oeiPnCA+IG9rYXp1XCA7CivljbDntr8gPiBpbm1lblwgOwor5rWu5Z+OID4gZnVqb3VcIDsKK+aBkua4qSA+IGtvdW9uXCA7Civlj6Tmva0gPiBrb3RhblwgOwor5rKz5rivID4ga2Frb3VcIDsKK+ays+a4hSA+IGthc2VpXCA7CivljbDntJkgPiBpbnNoaVwgOwor5rCX6IOeID4ga2lob3VcIDsKK+WPo+a8lCA+IGtvdWVuXCA7CivpvJPlkLkgPiBrb3N1aVwgOwor5oSa5ZWPID4gZ3Vtb25cIDsKK+awtOe0oCA+IHN1aXNvXCA7CivomY7lj6MgPiBrb2tvdVwgOwor5b6h6IuRID4gZ3lvZW5cIDsKK+iSsuiWpiA+IGhvc2VuXCA7Civlk4Dlj7cgPiBhaWdvdVwgOwor5oKy5oakID4gaGlmdW5cIDsKK+WTgOWPsiA+IGFpc2hpXCA7CivpurvlubkgPiBvZ2FyYVwgOwor5b+c562UID4gb3V0b3VcIDsKK+WNsOexoCA+IGlucm91XCA7CivmrYzpoqggPiBrYWZ1dVwgOwor5q2m6ZaAID4gYnVtb25cIDsKK+WSjOWnpiA+IHdha2FuXCA7Civnp7vlhaUgPiBpbnl1dVwgOwor5oKy5oS0ID4gaGlzb3VcIDsKK+aui+mDqCA+IHphbmJ1XCA7Civms7DmlpcgPiB0YWl0b1wgOwor5oSf5Y+XID4ga2FuanVcIDsKK+atjOmhjCA+IGthZGFpXCA7CivmgrLmg6ggPiBoaXNhblwgOwor56aB5b+MID4ga2lua2lcIDsKK+aEm+WQnyA+IGFpZ2luXCA7Civmtbflk6EgPiBrYWlpblwgOwor6YG/6ZujID4gaGluYW5cIDsKK+mHjea5ryA+IG9tb3l1XCA7Civmg6Plq4EgPiBzb3VrYVwgOwor6byT5YuVID4ga29kb3VcIDsKK+asuumomSA+IGdpaGVuXCA7Civms5XmoYggPiBob3VhblwgOwor5b6h6IW5ID4gb25ha2FcIDsKK+WSjOWjsCA+IHdhc2VpXCA7CivmsrPmsLQgPiBrYXN1aVwgOwor5ZCN5qGIID4gbWVpYW5cIDsKK+aCsuaBiyA+IGhpcmVuXCA7CivmhJ/ljJYgPiBrYW5rYVwgOwor5q2m6ZGRID4gYnVrYW5cIDsKK+mBuumbhiA+IGlzaHV1XCA7Civlj6Xms5UgPiBrdWhvdVwgOwor5oCq54GrID4ga2Fpa2FcIDsKK+W+rue9qiA+IGJpemFpXCA7Civljp/nlLsgPiBnZW5nYVwgOwor5Y2X57evID4gbmFuJydpXCA7Civlj6Tms5UgPiBrb2hvdVwgOwor6Jma5YG9ID4ga3lvZ2lcIDsKK+WLsuiomCA+IGt1bmtpXCA7CivliaPprLwgPiBrZW5raVwgOwor6YeR5rOiID4ga2lucGFcIDsKK+a1t+WPgiA+IGlyaWtvXCA7Civnp5jlj7IgPiBoaXNoaVwgOwor6YKq6YGTID4gamFkb3VcIDsKK+eogOS7oyA+IGtpZGFpXCA7CivljrPniLYgPiBnZW5wdVwgOwor6Ymx5aSrID4ga291ZnVcIDsKK+aIuOOAhSA+IGtva291XCA7CivpioDlnLAgPiBnaW5qaVwgOwor56S+5pivID4gc2hhemVcIDsKK+ejgeeVjCA+IGppa2FpXCA7CivmtbfljLogPiBrYWlrdVwgOwor5Y2w56iOID4gaW56ZWlcIDsKK+WPo+awlyA+IGtvdWtpXCA7CivlkIzmnJ8gPiBkb3VraVwgOwor6YeN5rK5ID4ganV1eXVcIDsKK+mKheWZqCA+IGRvdWtpXCA7Civnn67ouq8gPiB3YWlrdVwgOwor5rKu5q2iID4gc29zaGlcIDsKK+ayueanvSA+IHl1c291XCA7Civnn63ouq8gPiB0YW5rdVwgOwor5oGL5q2MID4gcmVua2FcIDsKK+enkeWQjSA+IGthbWVpXCA7Civmgqrlv4MgPiBvc2hpblwgOwor6YqD5ZmoID4ganV1a2lcIDsKK+W8mOmBoCA+IGtvdWVuXCA7Civljp/nkIYgPiBnZW5yaVwgOwor5rGX55a5ID4gYXNlbW9cIDsKK+axl+eWoyA+IGFzZW1vXCA7CivmgqrlvpIgPiBha3V0b1wgOwor56G857SgID4gaG91c29cIDsKK+WPl+a0lyA+IGp1c2VuXCA7CivnqIDkuJYgPiBraXNlaVwgOwor56eB5Za2ID4gc2hpZWlcIDsKK+aEj+WMoCA+IGlzaG91XCA7CivpioDlmaggPiBnaW5raVwgOwor5rC056aNID4gc3Vpa2FcIDsKK+emjeWusyA+IGthZ2FpXCA7Civlv6vnmZIgPiBrYWl5dVwgOwor6YeR5q2vID4ga2luYmFcIDsKK+WQjOaZgiA+IGRvdWppXCA7Civnn63ot68gPiB0YW5yb1wgOwor6YGg6Z+zID4gdG9vbmVcIDsKK+W8lemAgCA+IGludGFpXCA7CivpgqPovrogPiBuYWhlblwgOwor5oOF5a6cID4gam91Z2lcIDsKK+aEmuWFhCA+IGd1a2VpXCA7Civmgp/mgKcgPiBnb3NlaVwgOwor5b6u57SwID4gYmlzYWlcIDsKK+WLleitsCA+IGRvdWdpXCA7Civmta7li5UgPiBmdWRvdVwgOwor5YuD6LW3ID4gYm9ra2lcIDsKK+aEmuWDpyA+IGd1c291XCA7Civlvozog6QgPiBrb3VpblwgOwor56aF5a62ID4gemVua2VcIDsKK+m7hOWkiSA+IG91aGVuXCA7CivliqDphY0gPiBrYWhhaVwgOwor5ZOB5L2NID4gaGluJydpXCA7CivlvoDoiKogPiBvdWtvdVwgOwor6YGg6Zu3ID4gZW5yYWlcIDsKK+W/teePoCA+IG5lbmp1XCA7CivmgpTmgp8gPiBrYWlnb1wgOwor5rCX566hID4ga2lrYW5cIDsKK+asp+miqCA+IG91ZnV1XCA7CivmtYTlnJ8gPiBqb3Vkb1wgOwor5ZCr5oSPID4gZ2FuJydpXCA7Civmg4XlqaYgPiBqb3VmdVwgOwor6YeN5qmfID4ganV1a2lcIDsKK+aCp+W3pyA+IHJpa291XCA7CivmsJfnrZIgPiBraXRvdVwgOwor5oCS5r+kID4gZG90b3VcIDsKK+aDueWPpSA+IGpha2t1XCA7CivmranpgZMgPiBob2RvdVwgOwor56Oo5resID4gbWFzYWlcIDsKK+avm+iJsiA+IGtlaXJvXCA7CivmsLjnnKAgPiBlaW1pblwgOwor5by36Ki0ID4gZ291c29cIDsKK+WShOWXnyA+IHRvc3NhXCA7Civnp4HljbAgPiBzaGlpblwgOwor5q2m6YGTID4gYnVkb3VcIDsKK+ato+mCqiA+IHNlaWphXCA7Civlj43mr5QgPiBoYW5waVwgOwor5Yqf6YGOID4ga291a2FcIDsKK+WNsOebuCA+IGluem91XCA7CivljJbohr8gPiBrYW5vdVwgOwor5qyh6aGeID4gamlydWlcIDsKK+WPjeatryA+IHNvcHBhXCA7Civlj43mrakgPiB0YW5idVwgOwor5Ymq6ZmkID4gc2Vuam9cIDsKK+WPsOacqCA+IGRhaWdpXCA7Civms6jmhI8gPiBjaHV1aVwgOwor5Y+N5q2MID4gaGFua2FcIDsKK+mGuOavjSA+IGpvdWJvXCA7CivliY3pp4YgPiB6ZW5rdVwgOwor5q2m6L66ID4gYnVoZW5cIDsKK+W6p+mrmCA+IHpha291XCA7Civmg4XlpKsgPiBqb3VmdVwgOwor5ZKM5ZCNID4gd2FtZWlcIDsKK+aEm+S6uiA+IGFpamluXCA7CivlkozlkIggPiB3YWdvdVwgOwor5Yqx6LW3ID4gcmVpa2lcIDsKK+WNiuerryA+IGhhbnBhXCA7CivoloTml6UgPiB1c3ViaVwgOwor5oSa5Lq6ID4gZ3VqaW5cIDsKK+m7hOWcnyA+IGtvdWRvXCA7Civlv5znlKggPiBvdXlvdVwgOwor6YKm6LKoID4gaG91a2FcIDsKK+engeWIqSA+IHNoaXJpXCA7CivnoLToiLkgPiBoYXNlblwgOwor5ZCm5b+cID4gaXlhb3VcIDsKK+WMu+exjSA+IGlzZWtpXCA7CivljJbogrIgPiBrYWlrdVwgOwor56eY5LydID4gaGlkZW5cIDsKK+avjeiJpiA+IGJva2FuXCA7Civlj5fmpJwgPiBqdWtlblwgOwor5rK55patID4geXVkYW5cIDsKK+edoemtlCA+IHN1aW1hXCA7Civmr43oiLkgPiBib3NlblwgOwor56SO5p2QID4gc296YWlcIDsKK+W7g+mZpCA+IGhhaWpvXCA7Civlj6TmnaUgPiBrb3JhaVwgOwor5rW35LqLID4ga2FpamlcIDsKK+awuOeUnyA+IGVpc2VpXCA7CivliqnotbAgPiBqb3NvdVwgOwor6YGK6ZuiID4geXV1cmlcIDsKK+aAkua2myA+IGRvdG91XCA7CivnpYjlv7UgPiBraW5lblwgOwor5q2z6LK7ID4gc2FpaGlcIDsKK+elluW4qyA+IHNvc2hpXCA7Civlj6Tmm7ggPiBrb3Nob1wgOwor5ZGo5ZuyID4gc2h1dWlcIDsKK+axuuaysyA+IGtla2thXCA7Civpgbfpg70gPiBzZW50b1wgOwor5rG95rC0ID4ga2lzdWlcIDsKK+avlOiCqSA+IGhpa2VuXCA7CivljbDnkrAgPiBpbmthblwgOwor6YeO5pyrID4gbm96dWVcIDsKK+mHjuacmyA+IHlhYm91XCA7CivmhI/kuK0gPiBpY2h1dVwgOwor5oKq5ammID4gYWt1ZnVcIDsKK+WRvOWPtyA+IGtvZ291XCA7CivmraPot68gPiBzZWlyb1wgOwor6Ymx5Yy6ID4ga291a3VcIDsKK+aCquWphiA+IGFrdWJhXCA7CivpibHljJYgPiBrb3VrYVwgOwor5rOi5b2iID4gaGFrZWlcIDsKK+mCpuiqniA+IGhvdWdvXCA7Civlj6HmmbogPiBlaWNoaVwgOwor5ZCE5oi4ID4ga2Fra29cIDsKK+WJjemdniA+IHplbnBpXCA7CivmsZrmv4EgPiBvZGFrdVwgOwor5q+N6IOOID4gYm90YWlcIDsKK+atjOmBkyA+IGthZG91XCA7CivnooHnm6QgPiBnb2JhblwgOwor5q276KqeID4gc2hpZ29cIDsKK+WPr+aSkyA+IGthdG91XCA7CivmgrLlo64gPiBoaXNvdVwgOwor5byY6KqTID4gZ3V6ZWlcIDsKK+a1ruS4liA+IHVraXlvXCA7CivluqfpoK0gPiB6YXRvdVwgOwor5ZCQ5oGvID4gdG9pa2lcIDsKK+a1ruS4iiA+IGZ1am91XCA7Civlj6TmlrkgPiBrb2hvdVwgOwor5rWE5YyWID4gam91a2FcIDsKK+WPoeaXqCA+IGVpc2hpXCA7CivpgqroposgPiBqYWtlblwgOwor5Y+k5paHID4ga29tb25cIDsKK+aCquWlsyA+IGFrdWpvXCA7CivljJbnuYogPiBrYXNlblwgOwor5Y2I56CyID4gZ29ob3VcIDsKK+avm+e5lCA+IGtlb3JpXCA7CivmsZ/muZYgPiBnb3Vrb1wgOwor5oGp5oSbID4gb24nJ2FpXCA7CivmsJfnm7ggPiBraXNvdVwgOwor5oKy5aCxID4gaGlob3VcIDsKK+W+oeekviA+IG9uc2hhXCA7CivmgqrlpKIgPiBha3VtdVwgOwor5YyX57evID4gaG9rdWlcIDsKK+WPmeaZryA+IGpva2VpXCA7CivmraPosqggPiBzZWlrYVwgOwor5q2j6LKgID4gc2VpZnVcIDsKK+emgeWbuiA+IGtpbmtvXCA7CivlkJHlvowgPiBrb3Vnb1wgOwor56GF57SgID4ga2Vpc29cIDsKK+aBqeaDhSA+IG9uam91XCA7Civlj5vml5cgPiBoYW5raVwgOwor6JaE5omLID4gdXN1ZGVcIDsKK+aBqeaBtSA+IG9ua2VpXCA7CivmsLjniaIgPiBlaXJvdVwgOwor6YG66LmfID4gaXNla2lcIDsKK+mHjOaVsCA+IHJpc3V1XCA7CivljYjnnaEgPiBnb3N1aVwgOwor5byV6KaLID4gaW5rZW5cIDsKK+elluWulyA+IHNvc291XCA7CivmtYHliJEgPiBydWtlaVwgOwor5Yqp6KmeID4gam9zaGlcIDsKK+mKgOS9jSA+IGdpbicnaVwgOwor5Y+Z5paHID4gam9idW5cIDsKK+WNl+eUuyA+IG5hbmdhXCA7CivnpLrluqYgPiBzaGlkb1wgOwor6YG66LehID4gaXNla2lcIDsKK+mJhOWZqCA+IHRla2tpXCA7CivpgaXpgaAgPiB5b3VlblwgOwor5byB6K23ID4gYmVuZ29cIDsKK+WLpOiLpiA+IGtpbmt1XCA7Civmr5vns7ggPiBrZWl0b1wgOwor5Yqp6KiAID4gam9nb25cIDsKK+azleW6piA+IGhhdHRvXCA7CivljZfnk5wgPiBuYW5rYVwgOwor5bm96ay8ID4geXV1a2lcIDsKK+WMlueypyA+IGtld2FpXCA7Civmg4XlkbMgPiBqb3VtaVwgOwor5rGf5rKzID4ga291Z2FcIDsKK+WQpuWumiA+IGhpdGVpXCA7CivnoLTnt5ogPiBoYXNlblwgOwor5b2x57W1ID4ga2FnZWVcIDsKK+WQjOW6pyA+IGRvdXphXCA7CivnoLTntrsgPiBoYXRhblwgOwor5Y+j5o6IID4ga291anVcIDsKK+a0vuWFtSA+IGhhaGVpXCA7CivmgJ3moYggPiBzaGlhblwgOwor6JGh6JCEID4gYnVkb3VcIDsKK+W7uuitsCA+IGtlbmdpXCA7CivmraPoqrIgPiBzZWlrYVwgOwor5q+N57eaID4gYm9zZW5cIDsKK+WPjeaXlyA+IGhhbmtpXCA7CivmraPoqqQgPiBzZWlnb1wgOwor5oKy5ZiGID4gaGl0YW5cIDsKK+emheWRsyA+IHplbm1pXCA7Civpg6jnvbIgPiBidXNob1wgOwor5Y+v5oaQID4ga2FyZW5cIDsKK+aCquWboCA+IGFrdWluXCA7CivokpTntbUgPiBtYWtpZVwgOwor6YGO6YeNID4ga2FqdXVcIDsKK+WMleeuuCA+IGhpY2hvXCA7CivljYrnlLAgPiBoYW5kYVwgOwor5qyE6ZaTID4gcmFubWFcIDsKK+iRieiYrSA+IGhhcmFuXCA7CivmganluKsgPiBvbnNoaVwgOwor5q+N57O7ID4gYm9rZWlcIDsKK+mBiumHjCA+IHl1dXJpXCA7CivmsLTngasgPiBzdWlrYVwgOwor5oOo5LqLID4gc2FuamlcIDsKK+elreWZqCA+IHNhaWtpXCA7CivmgajluIMgPiBrb25idVwgOwor5rK55oCnID4geXVzZWlcIDsKK+ato+imjyA+IHNlaWtpXCA7CivnpoHlj6UgPiBraW5rdVwgOwor56S+5a+6ID4gc2hhamlcIDsKK+aBi+aFlSA+IHJlbmJvXCA7CivljLvnmYIgPiBpcnlvdVwgOwor6I+v6YGTID4ga2Fkb3VcIDsKK+mHjuaJiyA+IHlhc2h1XCA7CivnpL7lrrYgPiBzaGFrZVwgOwor6YeN5omLID4gb21vZGVcIDsKK+atpuijhSA+IGJ1c291XCA7Civph47miKYgPiB5YXNlblwgOwor5q2p6KGMID4gaG9rb3VcIDsKK+avm+eptCA+IGtlYW5hXCA7CivljZHnjKUgPiBoaXdhaVwgOwor56C0566XID4gaGFzYW5cIDsKK+WRkeWQkCA+IGRvbnRvXCA7CivmsrnlvakgPiB5dXNhaVwgOwor5Y+h5oWuID4gZWlyeW9cIDsKK+W+oeeUqCA+IGdveW91XCA7CivmtYHkurogPiBydW5pblwgOwor5Y+h5oSfID4gZWlrYW5cIDsKK+atjOisoSA+IGtheW91XCA7CivlkI3lrrYgPiBtZWlrYVwgOwor5b6h55K9ID4gZ3lvamlcIDsKK+WPluaJiyA+IHRvdHRlXCA7CivlkI3lrpsgPiBuYWF0ZVwgOwor5ZCM5a62ID4gZG91a2VcIDsKK+edgOmhniA+IGtpcnVpXCA7Civlj5fmiJIgPiBqdWthaVwgOwor6YGL6YCBID4gdW5zb3VcIDsKK+m7hOS9kyA+IG91dGFpXCA7CivmrYzoq5YgPiBrYXJvblwgOwor6YW15q+NID4ga291Ym9cIDsKK+elluWeiyA+IHNva2VpXCA7Civph43mhJsgPiBqdXVhaVwgOwor56We5ZmoID4gamluZ2lcIDsKK+WQjOWtlyA+IGRvdWppXCA7Civlj7DluqcgPiBkYWl6YVwgOwor5Ymy6LOmID4gd2FwcHVcIDsKK+ecn+mvmyA+IG1hZGFpXCA7Civlj5vmhI8gPiBoYW4nJ2lcIDsKK+atjOipniA+IGthc2hpXCA7CivnnJ/pr4kgPiBtYWdvaVwgOwor5q6L6IqxID4gemFua2FcIDsKK+m7hOS6uiA+IG91amluXCA7CivmsLTmuKkgPiBzdWlvblwgOwor6YGL6Ly4ID4gdW4nJ3l1XCA7Civol6nlhJIgPiBoYW5qdVwgOwor5Ymw6LK7ID4gam91aGlcIDsKK+WJjemDqCA+IHplbmJ1XCA7Civpupflj6UgPiByZWlrdVwgOwor56Oo5pCNID4gbWFzb25cIDsKK+mHjuaApyA+IHlhc2VpXCA7CivokYnojLYgPiBoYWRqYVwgOwor5Y+Z5oOFID4gam9qb3VcIDsKK+W+oeeOiSA+IG90YW1hXCA7CivpgZPot68gPiBkb3Vyb1wgOwor6YGL6LuiID4gdW50ZW5cIDsKK+W5vembhSA+IHl1dWdhXCA7CivliJ3pmaMgPiB1aWppblwgOwor5rK/5bK4ID4gZW5nYW5cIDsKK+mAo+mOliA+IHJlbnNhXCA7CivokYnoir0gPiB5b3VnYVwgOwor5rKz5bedID4ga2FzZW5cIDsKK+mBgei+niA+IHRvbmppXCA7CivliY3pgJQgPiB6ZW50b1wgOwor6YGN6LevID4gaGVucm9cIDsKK+mJm+S4uSA+IGVudGFuXCA7CivmsLTms7MgPiBzdWllaVwgOwor5ZCO5aaDID4ga291aGlcIDsKK+WQjeWmkyA+IG1laWdpXCA7Civlj6PluqcgPiBrb3V6YVwgOwor5b+X5rCXID4gc2hpa2lcIDsKK+WPm+W+kiA+IGhhbnRvXCA7Civph5HluqsgPiBraW5rb1wgOwor5Y2w5rGgID4gaW5jaGlcIDsKK+azpeWcnyA+IGRlaWRvXCA7CivmsrnlsaQgPiB5dXNvdVwgOwor5Yq06IumID4gcm91a3VcIDsKK+WPi+aEmyA+IHl1dWFpXCA7CivpgaDorIAgPiBlbmJvdVwgOwor5ZCM5aScID4gZG91eWFcIDsKK+mHjeW6piA+IGp1dWRvXCA7CivliY3ovKogPiBtYWV3YVwgOwor6YCA6ZmiID4gdGFpaW5cIDsKK+aDheS6iyA+IGpvdWppXCA7CivnoLTnoJUgPiBoYXNhaVwgOwor5Y2x5q6GID4ga2l0YWlcIDsKK+ayu+WuiSA+IGNoaWFuXCA7CivlibDoqp4gPiBqb3Vnb1wgOwor6YeO5birID4geWFzaGlcIDsKK+iQveiKsSA+IHJha2thXCA7Civlj7LlrrYgPiBzaGlrYVwgOwor6YiN5ZmoID4gZG9ua2lcIDsKK+aAp+aEmyA+IHNlaWFpXCA7CivlvJXoiKogPiBpbmtvdVwgOwor56CC57W1ID4gc3VuYWVcIDsKK+W+l+eJqSA+IGVtb25vXCA7CivmspnlvKUgPiBzaGFtaVwgOwor56Wt5YW3ID4gc2FpZ3VcIDsKK+WQq+WRsyA+IGdhbm1pXCA7CivlvoDnlJ8gPiBvdWpvdVwgOwor5YiG6ZuiID4gYnVucmlcIDsKK+mFjea1gSA+IGhhaXJ1XCA7CivlvJXoh7QgPiBpbmNoaVwgOwor5Y+N5b6SID4gaGFudG9cIDsKK+WIiOmZpCA+IGdhaWpvXCA7CivmgKjmgaggPiBlbmtvblwgOwor6YGg6KaWID4gZW5zaGlcIDsKK+elreWEgCA+IHNhaWdpXCA7CivphJnnjKUgPiBoaXdhaVwgOwor5q2v6Iq9ID4gc2hpZ2FcIDsKK+mBoOimiyA+IHRvb21pXCA7CivpubnlkbMgPiBrYW5taVwgOwor6I236aasID4gbml1bWFcIDsKK+ecn+mhlCA+IG1hZ2FvXCA7CivnoILns5YgPiBzYXRvdVwgOwor6YWS5rCXID4gc2h1a2lcIDsKK+m3ueaPmiA+IG91eW91XCA7CivliKnpiI0gPiByaWRvblwgOwor5oCd5oWVID4gc2hpYm9cIDsKK+aAoOaDsCA+IHRhaWRhXCA7CivliKnph5EgPiByaWtpblwgOwor5rKu5a6zID4gc29nYWlcIDsKK+WQjOWdkCA+IGRvdXphXCA7CivljLrngrkgPiBrdXRlblwgOwor5Y+L5byVID4geXV1aW5cIDsKK+mFlOatqSA+IHN1aWhvXCA7Civlh7npnaIgPiBvdW1lblwgOwor6YGT6KmxID4gZG91d2FcIDsKK+WMheeariA+IGhvdWhpXCA7CivpgLjotbAgPiBpc3NvdVwgOwor5buD6KqeID4gaGFpZ29cIDsKK+WQn+WRsyA+IGdpbm1pXCA7Civljq3miKYgPiBlbnNlblwgOwor5q2m6Iq4ID4gYnVnZWlcIDsKK+mBoeihjCA+IHNva291XCA7CivlkI3lmaggPiBtZWlraVwgOwor6I+v6KiAID4ga2FnZW5cIDsKK+W9seeUuyA+IGthZ2VlXCA7CivlvpLnhLYgPiB0b3plblwgOwor6YCj6L6eID4gcmVuamlcIDsKK+W6g+mHjiA+IGtvdXlhXCA7CivmsJfms6EgPiBraWhvdVwgOwor6YeR5a2XID4ga2luamlcIDsKK+W8pee4qyA+IGJpaG91XCA7Civph5HlrZAgPiBraW5zdVwgOwor5byn57eaID4ga29zZW5cIDsKK+asoOiqsiA+IGtla2thXCA7CivljZjmr5QgPiB0YW5waVwgOwor6YGO6KiAID4ga2Fnb25cIDsKK+egtOeUoyA+IGhhc2FuXCA7CivnpL7lk6EgPiBzaGFpblwgOwor5Y2w5qOJID4gaW5tZW5cIDsKK+eglOejqCA+IGtlbm1hXCA7CivmgqrkuosgPiBha3VqaVwgOwor56S65ZSGID4gc2hpc2FcIDsKK+WPr+WkiSA+IGthaGVuXCA7CivlvannlLsgPiBzYWlnYVwgOwor6Jar5YyWID4ga3Vua2FcIDsKK+WPl+WuuSA+IGp1eW91XCA7Civnpa3kuosgPiBzYWlqaVwgOwor56WW5YWIID4gc29zZW5cIDsKK+mIjeWMliA+IGRvbmthXCA7CivmgKflt64gPiBzZWlzYVwgOwor6JCg6Iq9ID4gaG91Z2FcIDsKK+WIpemAlCA+IGJldHRvXCA7CivpgY7opJIgPiBrYWhvdVwgOwor6I236Zu7ID4ga2FkZW5cIDsKK+ehrOa0viA+IGtvdWhhXCA7Civlj7DloLQgPiBkYWliYVwgOwor5ZC+5Lq6ID4gZ29qaW5cIDsKK+azouWLlSA+IGhhZG91XCA7CivoloTlnLAgPiB1c3VqaVwgOwor6YCP6YGOID4gdG91a2FcIDsKK+WNmOapnyA+IHRhbmtpXCA7Civmrrfnm5sgPiBpbnNlaVwgOwor56S+5Y2wID4gc2hhaW5cIDsKK+WNsOadkCA+IGluemFpXCA7CivlubPph44gPiBoZWl5YVwgOwor5Y2w5pysID4gaW5wb25cIDsKK+aBr+WQuSA+IGlidWtpXCA7Civlubnpg6ggPiBrYW5idVwgOwor5Y2w5pu4ID4gaW5zaG9cIDsKK+W5vemBoCA+IHl1dWVuXCA7CivlkI3lj6UgPiBtZWlrdVwgOwor5YmN6KiYID4gemVua2lcIDsKK+mBi+ihjCA+IHVua291XCA7CivmrabogIUgPiBtdXNoYVwgOwor56S+5YuZID4gc2hhbXVcIDsKK+WOn+aEjyA+IGdlbicnaVwgOwor5Y+k5aKzID4ga29mdW5cIDsKK+aBqeWRvSA+IG9ubWVpXCA7Civlj4vlrpwgPiB5dXVnaVwgOwor6YeO5aSpID4gbm90ZW5cIDsKK+WQiOWQpiA+IGdvdWhpXCA7CivlirTntYQgPiByb3Vzb1wgOwor6YeO5aSWID4geWFnYWlcIDsKK+W6p+irhyA+IHphZGFuXCA7CivlvJfntKAgPiBmdXNzb1wgOwor6YCD6YG/ID4gdG91aGlcIDsKK+W5uOmBiyA+IGtvdXVuXCA7CivnoLTniaIgPiBoYXJvdVwgOwor6YG66IejID4gaXNoaW5cIDsKK+W6g+i7jCA+IGtvdWtpXCA7CivmraPnvqkgPiBzZWlnaVwgOwor5rOV5YuZID4gaG91bXVcIDsKK+egtOeJhyA+IGhhaGVuXCA7CivlkIzljJYgPiBkb3VrYVwgOwor6YCA6YG/ID4gdGFpaGlcIDsKK+WPpOWfjiA+IGtvam91XCA7CivlkJDliaQgPiB0b3phaVwgOwor5rCX5qaCID4ga2lnYWlcIDsKK+W6nOitpiA+IGZ1a2VpXCA7CivlvqHmrr8gPiBnb3RlblwgOwor6JCM6Iq9ID4gaG91Z2FcIDsKK+WMuuawkSA+IGt1bWluXCA7CivljprmgakgPiBrb3VvblwgOwor5b+c5o+0ID4gb3VlblwgOwor5bqr6KOPID4ga3VyaVwgOwor5Y+k5ZmoID4ga29raVwgOwor5YeN6ZuoID4gdG91dVwgOwor5b6S5q2pID4gdG9ob1wgOwor5Y+v5ZCmID4ga2FoaVwgOwor5b6Q5q2pID4gam9ob1wgOwor5bqH6K23ID4gaGlnb1wgOwor6YeO5Za2ID4geWFlaVwgOwor5rOV5LyaID4gaG91ZVwgOwor5ZCM5L2NID4gZG91aVwgOwor5Y2x5oe8ID4ga2lndVwgOwor5Y+l5Y+lID4ga3VrdVwgOwor5Y+k5Y+lID4ga29rdVwgOwor5Y+j5Y+XID4ga3VqdVwgOwor5rK75YW3ID4gamlndVwgOwor5Ya36ZuoID4gcmVpdVwgOwor5b2T54K6ID4gdG91aVwgOwor5Y+z5YWaID4gdXRvdVwgOwor5Y2x5oOnID4ga2lndVwgOwor6YG657K+ID4gaXNlaVwgOwor6YeO5Y2RID4geWFoaVwgOwor5Y+z5YK+ID4gdWtlaVwgOwor5Yy75pu4ID4gaXNob1wgOwor6YGV6IOMID4gaWhhaVwgOwor5oCo5ZefID4gZW5zYVwgOwor6bia5ZOlID4gaW5rb1wgOwor56C05q+AID4gaGFraVwgOwor5Y+N5ZCQID4gaGVkb1wgOwor5Y+N5Y+kID4gaG9nb1wgOwor5Y+k5YSAID4ga29naVwgOwor6I+v576OID4ga2FiaVwgOwor5Y2w5bqmID4gaW5kb1wgOwor6YG656i/ID4gaWtvdVwgOwor55u46YGVID4gc291aVwgOwor5bqn6IelID4gemFnYVwgOwor5biw6YCUID4ga2l0b1wgOwor5b+g5a6fID4gbWFtZVwgOwor5YaG6aGxID4gZW5yb1wgOwor56OB5aC0ID4gamliYVwgOwor5Y+k5LqLID4ga29qaVwgOwor56C05qOEID4gaGFraVwgOwor5rC45a+/ID4gZWlqdVwgOwor5q2M56KRID4ga2FoaVwgOwor5b6A5pmCID4gb3VqaVwgOwor56OB5ZyfID4gamlkb1wgOwor6bSJ54mHID4gYWhlblwgOwor5Y2w5a2XID4gaW5qaVwgOwor6YGV566XID4gaXNhblwgOwor5Y+Z5LqLID4gam9qaVwgOwor56OB5ZmoID4gamlraVwgOwor5b6u5b6uID4gYmliaVwgOwor5biw6LevID4ga2lyb1wgOwor5b6h5oSPID4gZ3lvaVwgOwor56CC5rSyID4gc2FzdVwgOwor5Y2I5b6MID4gZ29nb1wgOwor5q+A5qOEID4ga2lraVwgOwor6YGg56WWID4gZW5zb1wgOwor5b6M5omLID4gZ290ZVwgOwor5bmy6JGJID4gaGliYVwgOwor5byV54GrID4gaW5rYVwgOwor5b6h5b2xID4gZ29laVwgOwor6YG655SjID4gaXNhblwgOwor5qi56ZmwID4ganVpblwgOwor6Iux6Z+zID4gZWlvblwgOwor5rGa5ZCNID4gb21laVwgOwor56OB5Yy6ID4gamlrdVwgOwor6YKq5rerID4gamFpblwgOwor6L+C6KiAID4gdWdlblwgOwor56OB5YyWID4gamlrYVwgOwor5Yy75birID4gaXNoaVwgOwor5b285oiRID4gaGlnYVwgOwor5Y2x5Z2QID4ga2l6YVwgOwor5Ym155eNID4gc291aVwgOwor5qmf6YGLID4ga2l1blwgOwor5Yyq5b6SID4gaGl0b1wgOwor5Yqp5ryUID4gam9lblwgOwor6YKq5rCXID4gamFraVwgOwor5byl5qyhID4geWFqaVwgOwor5b6h5a6HID4gZ3lvdVwgOwor5b6A5b6AID4gb3VvdVwgOwor5YiA6IeqID4gdG9qaVwgOwor5b6h5a2QID4gbWlrb1wgOwor5Yy75a6YID4gaWthblwgOwor5Yqg5ripID4ga2FvblwgOwor6YGO55aOID4ga2Fzb1wgOwor5YiA6IOMID4gbWluZVwgOwor5b+c5YufID4gb3Vib1wgOwor6YG65ryPID4gaXJvdVwgOwor5b6M5a62ID4gZ29rZVwgOwor5Yy75aSnID4gaWRhaVwgOwor5q605omTID4gb3VkYVwgOwor5q2p5q2mID4gaG9idVwgOwor6YGV54qvID4gaWhhblwgOwor5YaG6LKoID4gZW5rYVwgOwor5rCX5ZGzID4gZ2ltaVwgOwor5rCX5ZCIID4ga2lhaVwgOwor5biD6KGNID4gZnVlblwgOwor6a2U6a2FID4gbWFtaVwgOwor5b6M5aC0ID4gZ29iYVwgOwor56C05a62ID4gYmFrYVwgOwor5rCX5YyWID4ga2lrYVwgOwor5b6B5aS3ID4gc2VpaVwgOwor5Y2I5ZCOID4gZ29nb1wgOwor5rC05L2NID4gc3VpaVwgOwor5rC45LmFID4gdG93YVwgOwor5bem6KiYID4gc2FraVwgOwor5YaG6KaPID4gZW5raVwgOwor55uI6JmnID4gZWlraVwgOwor6YG65qeLID4gaWtvdVwgOwor5b6h5ZCNID4gbWluYVwgOwor6YOo5bGLID4gaGV5YVwgOwor6Iux6LKoID4gZWlrYVwgOwor6YGO5rihID4ga2F0b1wgOwor6YGV5rOVID4gaWhvdVwgOwor5q635a+MID4gaW5wdVwgOwor5bu25pyfID4gZW5raVwgOwor5qiq6K2wID4gb3VnaVwgOwor56CC5beeID4gc2FzdVwgOwor6Iyj6JOZID4gZ296YVwgOwor6Iux6KqeID4gZWlnb1wgOwor6YGL5rKzID4gdW5nYVwgOwor6YG65pu4ID4gaXNob1wgOwor55+l5oG1ID4gY2hpZVwgOwor6YGL5rCXID4gdW5raVwgOwor6Ly46LSPID4geXVlaVwgOwor5Y2R5LiLID4gaGlnZVwgOwor5Yui5a2QID4gc2Vrb1wgOwor5YyF5ZuyID4gaG91aVwgOwor5b6A5Y+kID4gb3Vrb1wgOwor5Yqg5oyBID4ga2FqaVwgOwor5byn5bqmID4ga29kb1wgOwor6YO95Za2ID4gdG9laVwgOwor5q+U5ZapID4gaGl5dVwgOwor6YG65paHID4gaWJ1blwgOwor6YCi54CsID4gb3VzZVwgOwor5Ye655uuID4gZGVtZVwgOwor5b2Z5aCxID4gaWhvdVwgOwor5q2m5oqAID4gYnVnaVwgOwor6Lyd6LydID4ga2lraVwgOwor5bqn5rSyID4gemFzdVwgOwor5b6h5LujID4gbWl5b1wgOwor5Yui5aiBID4gc2VpaVwgOwor5Yy75LyaID4gaWthaVwgOwor5b6X5L2TID4gZXRhaVwgOwor5b6h5LiWID4gbWl5b1wgOwor5b2x5Y2wID4gZWlpblwgOwor5q2j5oSPID4gc2VpaVwgOwor5YaG6IieID4gZW5idVwgOwor6bWc5YygID4gdWpvdVwgOwor5q+N5Y2wID4gYm9pblwgOwor6YC45qmfID4gaWtraVwgOwor6YOo5ZOhID4gYnVpblwgOwor6YG65oiSID4gaWthaVwgOwor55qu6IaaID4gaGlmdVwgOwor6YG65oa+ID4gaWthblwgOwor5Yi35q+bID4gaGFrZVwgOwor5q2p5bqmID4gaG9kb1wgOwor5qyh5pyfID4gamlraVwgOwor5q2m5bqrID4gYnVrb1wgOwor5qmf57iBID4ga2llblwgOwor56CC5ZyfID4gc2Fkb1wgOwor6YG65oGoID4gaWtvblwgOwor5b6A5LqLID4gb3VqaVwgOwor6Iqx6K2cID4ga2FmdVwgOwor6YG65b+XID4gaXNoaVwgOwor5bqP5qyhID4gam9qaVwgOwor5q+U5L6hID4gaGlrYVwgOwor6YCU5qyhID4gdG9qaVwgOwor5Ym15oSPID4gc291aVwgOwor5q2m5a62ID4gYnVrZVwgOwor5qiq6IelID4gb3VnYVwgOwor6ayx6YeRID4gdWtvblwgOwor5q+U5LiYID4gYmlrdVwgOwor6YO95LiLID4gdG9rYVwgOwor55+i5aC0ID4geWFiYVwgOwor6Iqx6KKrID4ga2FoaVwgOwor6YGV5oayID4gaWtlblwgOwor5bu25a+/ID4gZW5qdVwgOwor55m+6IiMID4gbW96dVwgOwor5q2m5aSrID4gYnVmdVwgOwor56CC5YipID4gamFyaVwgOwor6YOo5LiLID4gYnVrYVwgOwor6YG65a2QID4gaXNoaVwgOwor55695aWzID4gZ296ZVwgOwor5Y+l44CFID4ga3VrdVwgOwor5Ye65q2vID4gZGViYVwgOwor6YGO5bqmID4ga2Fkb1wgOwor5q2m5ZmoID4gYnVraVwgOwor6YGL5bqnID4gdW56YVwgOwor5qyh5bqPID4gamlqb1wgOwor5qih57OKID4gbW9rb1wgOwor6Iqx6Iq9ID4ga2FnYVwgOwor6YG65Z2AID4gaXNoaVwgOwor5bmz5piTID4gaGVpaVwgOwor5Yqg5ZGzID4ga2FtaVwgOwor5q2p5ZCIID4gYnVhaVwgOwor5qyn5a2XID4gb3VqaVwgOwor5Ye65p2lID4gZGVraVwgOwor5YOn6KGjID4gc291aVwgOwor55aO6Z+zID4gc29pblwgOwor5bqn5beeID4gemFzdVwgOwor5qi555quID4ganVoaVwgOwor5bqc5bqrID4gZnVrb1wgOwor6YG65ZOBID4gaWhpblwgOwor55aR6ZuyID4gZ2l1blwgOwor6YG65ZG9ID4gaW1laVwgOwor5q2k5YemID4ga29rb1wgOwor5q2m5YW3ID4gYnVndVwgOwor6YGO5aSaID4ga2F0YVwgOwor5qyh5aWzID4gamlqb1wgOwor5Yeg5qGIID4ga2lhblwgOwor5q2m5YKZID4gYnViaVwgOwor6L+95omLID4gb3R0ZVwgOwor6YG65YqfID4gaWtvdVwgOwor55Ww6aKoID4gaWZ1dVwgOwor6YG65Yi2ID4gaXNlaVwgOwor55Ww6aGeID4gaXJ1aVwgOwor5Yip5bexID4gcmlrb1wgOwor5q2j5L2NID4gc2VpaVwgOwor5Yi35a2QID4gaGFrZVwgOwor5q2m5LqLID4gYnVqaVwgOwor6I2K5qOYID4gYmFyYVwgOwor6a2U576FID4gbWFyYVwgOwor6YG65L2TID4gaXRhaVwgOwor6YGV5Y+NID4gaWhhblwgOwor6YG65LydID4gaWRlblwgOwor6YGO5Y67ID4ga2Frb1wgOwor5qyn5YyWID4gb3VrYVwgOwor55aO6YGgID4gc29lblwgOwor55aR6L6eID4gZ2lqaVwgOwor5bem5rS+ID4gc2FoYVwgOwor6Im2576OID4gZW5iaVwgOwor6ami6aasID4gcm9iYVwgOwor5bKQ6ZicID4gZ2lmdVwgOwor5bqn5ZOhID4gemFpblwgOwor5rC444CFID4gZWllaVwgOwor55yf5biGID4gbWFob1wgOwor55u45omLID4gYWl0ZVwgOwor5bqm5ZCIID4gZG9haVwgOwor6YGV5L6LID4gaXJlaVwgOwor5Yip5ZmoID4gcmlraVwgOwor6Imy57W1ID4gaXJvZVwgOwor55Ww6YKmID4gaWhvdVwgOwor6YGV5LukID4gaXJlaVwgOwor5buD5L2NID4gaGFpaVwgOwor5biD5pa9ID4gZnVzZVwgOwor6Ieq6LK7ID4gamloaVwgOwor6Ieq6LKgID4gamlmdVwgOwor5YWl5rGfID4gaXJpZVwgOwor6Iux5rCXID4gZWlraVwgOwor6ai+6aasID4gcmFiYVwgOwor6Iqx546LID4ga2FvdVwgOwor5qOL6ZmiID4ga2lpblwgOwor5bi35bmEID4gaWFrdVwgOwor6Iux5q2mID4gZWlidVwgOwor55Ww6LajID4gaXNodVwgOwor5YW35qGIID4gZ3VhblwgOwor5Ye65aC0ID4gZGViYVwgOwor6Ieq6KiYID4gamlraVwgOwor5bqn5Li7ID4gemFzdVwgOwor6Ieq6KGbID4gamllaVwgOwor55Ww6KuWID4gaXJvblwgOwor5bKQ6LevID4ga2lyb1wgOwor55u45a2QID4gYWlrb1wgOwor5bqc5LiLID4gZnVrYVwgOwor6a2U546LID4gbWFvdVwgOwor5YGJ6KazID4gaWthblwgOwor55Ww6KaLID4gaWtlblwgOwor5Yip5LuWID4gcml0YVwgOwor6aiO6aasID4ga2liYVwgOwor5qmf5b6uID4ga2liaVwgOwor5qmf5b2xID4ga2llaVwgOwor5bm+5L2VID4ga2lrYVwgOwor5b6A44CFID4gb3VvdVwgOwor55m65p2hID4gYmFuZVwgOwor5YaF5oSPID4gbmFpaVwgOwor5qmf5bqPID4ga2lqb1wgOwor55m45pyqID4ga2liaVwgOwor5bid5aiBID4gdGVpaVwgOwor6L+C5ZueID4gdWthaVwgOwor6YCA5L2NID4gdGFpaVwgOwor5Ye65YiDID4gZGViYVwgOwor5qKF6ZuoID4gYmFpdVwgOwor5qih5pOsID4gbW9naVwgOwor5YaG5bynID4gZW5rb1wgOwor55ey55e6ID4gbWFoaVwgOwor55uu5ZywID4gbWVqaVwgOwor5YaG5bqnID4gZW56YVwgOwor5qmf5bC+ID4ga2liaVwgOwor6Iqx5qi5ID4ga2FqdVwgOwor5biw5Za2ID4ga2llaVwgOwor55S76K2cID4gZ2FmdVwgOwor5qmf5a6cID4ga2lnaVwgOwor5bC+6YOoID4gYmlidVwgOwor55uy5ZSWID4gbW91YVwgOwor5L6d6aGYID4gaWdhblwgOwor5L6d6aC8ID4gaXJhaVwgOwor55aR576pID4gZ2lnaVwgOwor55yf5Ly8ID4gbWFuZVwgOwor5qOL6K2cID4ga2lmdVwgOwor5biw5YyWID4ga2lrYVwgOwor5YWQ5oivID4gamlnaVwgOwor55yf5LiKID4gbWF1ZVwgOwor5ber5a2QID4gbWlrb1wgOwor5biM5ZyfID4ga2lkb1wgOwor6Iqx5pyfID4ga2FraVwgOwor5biM5ZuzID4ga2l0b1wgOwor6aas6bm/ID4gYmFrYVwgOwor6IeZ6ISCID4gZW5qaVwgOwor5YGD6IelID4gZW5nYVwgOwor6IOh6bq7ID4gZ29tYVwgOwor5qCX6bygID4gcmlzdVwgOwor5a+66ZmiID4gamlpblwgOwor55Ww6IGeID4gaWJ1blwgOwor5ber5aWzID4gbWlrb1wgOwor55uu5YemID4gbWVkb1wgOwor6aeE6aasID4gZGFiYVwgOwor6ay85rCXID4ga2lraVwgOwor5Yeg5LiLID4ga2lrYVwgOwor5qmf5ZmoID4ga2lraVwgOwor5YWs5a62ID4ga3VnZVwgOwor6Im25q2MID4gZW5rYVwgOwor5L+d6K23ID4gaG9nb1wgOwor5YW15aiBID4gaGVpaVwgOwor6ayx5rCXID4gdWtraVwgOwor6Lu95piTID4ga2VpaVwgOwor6Iux5a2XID4gZWlqaVwgOwor6Iqx5oq8ID4ga2FvdVwgOwor5L+a6KqeID4gcmlnb1wgOwor55qH5a2QID4gb3VqaVwgOwor5bGg6JiHID4gdG9zb1wgOwor5YaA5ZuzID4ga2l0b1wgOwor6aeG6ZmkID4ga3Vqb1wgOwor5a+d6ZaTID4gbmVtYVwgOwor6L6e5YSAID4gamlnaVwgOwor55uu5LiKID4gbWV1ZVwgOwor5bid5L2NID4gdGVpaVwgOwor5qmf5YyWID4ga2lrYVwgOwor6Lyq5beuID4gd2FzYVwgOwor5L2Z6Z+7ID4geW9pblwgOwor55Ww56uvID4gaXRhblwgOwor6Lyd5bqmID4ga2lkb1wgOwor5a+E6ZmEID4ga2lmdVwgOwor5qmf5YW3ID4ga2lndVwgOwor5bel5ZCIID4gZ3VhaVwgOwor55Ww56iuID4gaXNodVwgOwor5YWQ5aWzID4gamlqb1wgOwor6Iqx5bqPID4ga2Fqb1wgOwor5YW35ZCIID4gZ3VhaVwgOwor6Laz6KKLID4gdGFiaVwgOwor5bGx576KID4geWFnaVwgOwor6Ium5ZyfID4ga3Vkb1wgOwor5L2N6ZqOID4gaWthaVwgOwor5a+/6LOAID4ganVnYVwgOwor6Ieq55S7ID4gamlnYVwgOwor6Iux5ZKMID4gZWl3YVwgOwor5YWs5Y2/ID4ga3VnZVwgOwor55S757SgID4gZ2Fzb1wgOwor5YW25YemID4gc29rb1wgOwor5qKo6IqxID4gcmlrYVwgOwor55Sx57iBID4geXVlblwgOwor5YaG5L6hID4gZW5rYVwgOwor6Iqx5a2jID4ga2FraVwgOwor6a2a5bqnID4gdW96YVwgOwor5YW35YKZID4gZ3ViaVwgOwor6LaK6Ki0ID4gZXNzb1wgOwor6IKl6aasID4gaGliYVwgOwor55m+5ZCIID4geXVyaVwgOwor55qu5LiLID4gaGlrYVwgOwor5YSS5a62ID4ganVrYVwgOwor6Ieq54GrID4gamlrYVwgOwor6LW36Ki0ID4ga2lzb1wgOwor5L+a6ICzID4gcmlqaVwgOwor5a626YGLID4ga2F1blwgOwor55Ww54q2ID4gaWpvdVwgOwor5qWa5qWaID4gc29zb1wgOwor5YWB5Y+vID4gaW5rYVwgOwor5L6N6KGbID4gamllaVwgOwor6aWR6aSTID4ga2lnYVwgOwor6Iqx5ZmoID4ga2FraVwgOwor55qH5L2NID4ga291aVwgOwor5L2z6KmxID4ga2F3YVwgOwor6IOD6YW4ID4gaXNhblwgOwor5YWI5YWIID4gbWFtYVwgOwor5a626LevID4gaWVqaVwgOwor5qGn6JGJID4gaGliYVwgOwor6a2U5aWzID4gbWFqb1wgOwor6aWC6aOpID4gdWRvblwgOwor5a2X6Z+zID4gamlvblwgOwor5a+E6KqeID4ga2lnb1wgOwor6Iqx5Y2JID4ga2FraVwgOwor5a626K2cID4ga2FmdVwgOwor6IO06KGjID4gZG91aVwgOwor6ay85aWzID4ga2lqb1wgOwor6ICz6by7ID4gamliaVwgOwor6aST6ay8ID4gZ2FraVwgOwor6IOk6KOUID4gaW5laVwgOwor5YSy5L2NID4gY2hvaVwgOwor6Ieq5qOEID4geWFrZVwgOwor55CG6Z2eID4gcmloaVwgOwor5Lul6ZmNID4gaWtvdVwgOwor5YSq5L2NID4geXV1aVwgOwor6LW36IelID4ga2lnYVwgOwor6IOe6KGjID4gaG91aVwgOwor5qCE6KqJID4gZWl5b1wgOwor5ayw6Z+zID4gZWlvblwgOwor6LyU5L2QID4gaG9zYVwgOwor5LyK6YGUID4gZGF0ZVwgOwor55Ww5qeYID4gaXlvdVwgOwor5L2Z6JiKID4geW91blwgOwor5a626JqKID4gaWVrYVwgOwor5bC855SrID4gamlob1wgOwor5YGJ5p2QID4gaXphaVwgOwor55Ww5pysID4gaWhvblwgOwor5qSN5pyoID4gdWVraVwgOwor6IO86IOdID4gdGFrb1wgOwor6Iiq5a6HID4ga291dVwgOwor55aR5oe8ID4gZ2lrdVwgOwor55Ww5paHID4gaWJ1blwgOwor55Ww5pWwID4gaXN1dVwgOwor55aR5oOnID4gZ2lndVwgOwor6Ieq5oiRID4gamlnYVwgOwor6aeV57GgID4ga2Fnb1wgOwor6a2B5YGJID4ga2FpaVwgOwor5L+d54ShID4gaG9tdVwgOwor6aeV56+tID4ga2Fnb1wgOwor6aOi6aSTID4ga2lnYVwgOwor6Ieq5oSbID4gamlhaVwgOwor5qCE6I+vID4gZWlnYVwgOwor5YGJ5oyZID4gaWt5b1wgOwor5a2j6KqeID4ga2lnb1wgOwor6IKa6KOPID4gdG9yaVwgOwor5YOn5L2NID4gc291aVwgOwor5YGJ5omNID4gaXNhaVwgOwor55Ww5omNID4gaXNhaVwgOwor6LK76YCUID4gaGl0b1wgOwor55CG6LevID4gcmlyb1wgOwor6LOm6KqyID4gZnVrYVwgOwor6LOm6KmgID4gZnVlaVwgOwor55WP5pWsID4gaWtlaVwgOwor5L+d5ripID4gaG9vblwgOwor6Ieq5bqPID4gamlqb1wgOwor55S75p62ID4gZ2FrYVwgOwor5L2N572uID4gaWNoaVwgOwor5LqM6ZmiID4gbmlpblwgOwor6Ieq5bexID4gamlrb1wgOwor55Ww5oCnID4gaXNlaVwgOwor55Ww5b2pID4gaXNhaVwgOwor55aR5a2XID4gZ2lqaVwgOwor6LGq6ZuoID4gZ291dVwgOwor5LuY6K2wID4gZnVnaVwgOwor5L+d5q+NID4gaG9ib1wgOwor5a6J6IelID4gYW5nYVwgOwor5Lul6KW/ID4gaXNlaVwgOwor5Lqc6Yi0ID4gYXJlaVwgOwor6Ieq5a62ID4gamlrYVwgOwor55Ww5bi4ID4gaWpvdVwgOwor5L6b54qgID4ga3VnaVwgOwor5LuY6KiYID4gZnVraVwgOwor5bCP54GrID4gYm95YVwgOwor6aeE55uuID4gZGFtZVwgOwor5bGL5qC5ID4geWFuZVwgOwor5L6d54S2ID4gaXplblwgOwor5LyK6ImmID4gaWthblwgOwor5YGJ5a65ID4gaXlvdVwgOwor5qKo5p6cID4gcmlrYVwgOwor55Ww5a2YID4gaXpvblwgOwor5LqM6YOoID4gbmlidVwgOwor6aKo6ZuoID4gZnV1dVwgOwor5qOE5o2QID4ga2llblwgOwor5qWV5YaGID4gZGFlblwgOwor5YG95Y2wID4gZ2lpblwgOwor6IKM6IaaID4ga2lmdVwgOwor55Ww5aeTID4gaXNlaVwgOwor5YGJ5aSnID4gaWRhaVwgOwor55Ww5aSJID4gaWhlblwgOwor55WZ5a6IID4gcnVzdVwgOwor5L2N55u4ID4gaXNvdVwgOwor5LiA6byTID4gaWtrb1wgOwor6Ieq5Za2ID4gamllaVwgOwor55So5oSPID4geW91aVwgOwor6ICz6KqeID4gamlnb1wgOwor55Ww5Z+fID4gaWlraVwgOwor55S75biDID4gZ2FmdVwgOwor6auY5L2NID4ga291aVwgOwor5a2X576pID4gamlnaVwgOwor6Ieq5Y+ZID4gamlqb1wgOwor5L+d5oyBID4gaG9qaVwgOwor6aml5bC+ID4ga2liaVwgOwor5YCa5a2QID4gaXNoaVwgOwor6Ieq5YqpID4gamlqb1wgOwor6IOD55mMID4gaWdhblwgOwor55S75a62ID4gZ2FrYVwgOwor6IiI5LqcID4ga291YVwgOwor55Om5pavID4gZ2FzdVwgOwor6Ieq5YipID4gamlyaVwgOwor5a6254i2ID4ga2FmdVwgOwor6aOb6KqeID4gaGlnb1wgOwor5L2Z54WZID4geW9lblwgOwor5LiL6aeEID4gZ2V0YVwgOwor5LiL6aasID4gZ2ViYVwgOwor5YGH5ZCNID4ga2FuYVwgOwor55Ww5ZCNID4gaW1laVwgOwor5L2N54mMID4gaWhhaVwgOwor55Ww5ZCMID4gaWRvdVwgOwor6IC26JiHID4geWFzb1wgOwor5L2Z54KOID4geW9lblwgOwor55Gg55KDID4gcnVyaVwgOwor5LiA6aiOID4gaWtraVwgOwor55aR5Ly8ID4gZ2lqaVwgOwor5YGJ5YuyID4gaWt1blwgOwor5YGJ5Yq5ID4gaWtvdVwgOwor5YGJ5YqfID4gaWtvdVwgOwor55Ww5YuVID4gaWRvdVwgOwor6LKg6I23ID4gZnVrYVwgOwor5LmF6YGgID4ga3VvblwgOwor6Ieq5L2ZID4gaml5b1wgOwor5LiN6ZuiID4gZnVyaVwgOwor5LiA6aGnID4gaWtrb1wgOwor6Ieq5LuWID4gaml0YVwgOwor576O6Z+zID4gYmlvblwgOwor5a2Q562JID4ga29yYVwgOwor5LiL6ZmiID4ga2FpblwgOwor6LW35qGIID4ga2lhblwgOwor5LiN6ZaTID4gYnVtYVwgOwor55S75ZugID4gZ2FpblwgOwor5L2Z5rOiID4geW9oYVwgOwor55WP5Y+LID4gaXl1dVwgOwor55Ww5L6LID4gaXJlaVwgOwor5bCP5omLID4ga290ZVwgOwor55Ww5L2TID4gaXRhaVwgOwor6Laj5oSPID4gc2h1aVwgOwor5YWI44CFID4gbWFtYVwgOwor5YGJ5Lq6ID4gaWppblwgOwor55Ww5Lq6ID4gaWppblwgOwor5L+d5a6JID4gaG9hblwgOwor5L2Z5q6DID4geW9vdVwgOwor6Lev5ZywID4gcm9qaVwgOwor5L6d5ougID4gaWt5b1wgOwor55C155C2ID4gYml3YVwgOwor55CG56eRID4gcmlrYVwgOwor5pqu6ZuyID4gYm91blwgOwor5L+d5aeGID4gaG9ib1wgOwor6IOD5rayID4gaWVraVwgOwor5bGF5aOrID4ga29qaVwgOwor5Lqc6IGWID4gYXNlaVwgOwor5p2O6IqxID4gcmlrYVwgOwor5LiL6YeOID4gZ2V5YVwgOwor5LiK6YeOID4gdWVub1wgOwor6IKM55CGID4ga2ltZVwgOwor6aa05p+TID4gbmFqaVwgOwor5Lqc576kID4gYWd1blwgOwor5LiW6L6eID4gc2VqaVwgOwor5LiN6YGLID4gZnV1blwgOwor5L2Z5qCEID4geW9laVwgOwor6IWw5ZuyID4geW91aVwgOwor5qKo5ZySID4gcmllblwgOwor5L6b5b6hID4gZ3Vnb1wgOwor5qKD5a2QID4gdGVrb1wgOwor6Lev5YqgID4gcnVrYVwgOwor5Lqc57axID4gYWtvdVwgOwor5p6c55quID4ga2FoaVwgOwor5LiN6LuMID4gZnVraVwgOwor5L2Z5pqHID4geW9rYVwgOwor5LiA6YGOID4gaWtrYVwgOwor5bCP5bGLID4ga295YVwgOwor5LiA6YCUID4gaXR0b1wgOwor576O6L6eID4gYmlqaVwgOwor5a6J5rCXID4gYW5raVwgOwor55CJ55KDID4gcnVyaVwgOwor5a655piTID4geW91aVwgOwor5YCL5YCLID4ga29rb1wgOwor5LiN6LW3ID4gZnVraVwgOwor5bCJ5a6YID4gaWthblwgOwor5qCE5p6vID4gZWlrb1wgOwor6LW35bqnID4ga2l6YVwgOwor5a+T5oSPID4gZ3V1aVwgOwor5L6d5a2YID4gaXpvblwgOwor5LiW6KmxID4gc2V3YVwgOwor5Lqc56iuID4gYXNodVwgOwor5pm06ZuoID4gc2VpdVwgOwor5bCP5aScID4gc2F5b1wgOwor5aiB6aKoID4gaWZ1dVwgOwor6aOb57C3ID4gaGllblwgOwor6Z+z6aCtID4gb25kb1wgOwor5L2Z5oqAID4geW9naVwgOwor5LiN6KqeID4gZnVnb1wgOwor5L2Z5omAID4geW9zb1wgOwor546L6ICFID4gb3VqYVwgOwor5a625om2ID4ga2FmdVwgOwor5LiL6KiYID4ga2FraVwgOwor5pqX6YOoID4gYW5idVwgOwor5L6b5aWJID4gZ3VidVwgOwor6IOD5pWjID4gaXNhblwgOwor5LuB546LID4gbmlvdVwgOwor5L6N5amiID4gamloaVwgOwor5LqI56eRID4geW9rYVwgOwor5a6z5oSPID4gZ2FpaVwgOwor5LqI56S6ID4geW9qaVwgOwor5a6J5piTID4gYW4nJ2lcIDsKK+S4i+ihhiA+IGdlc3VcIDsKK+S4iuihoyA+IGpvdWlcIDsKK+S+jeWlsyA+IGppam9cIDsKK+Wtl+avjSA+IGppYm9cIDsKK+iDjOaIuCA+IHNlZG9cIDsKK+WvhOW4rSA+IHlvc2VcIDsKK+S9s+WutCA+IGthZW5cIDsKK+eKoOmjmyA+IGdpaGlcIDsKK+S4jeiZniA+IGZ1Z3VcIDsKK+iFkOWEkiA+IGZ1anVcIDsKK+e9teipiCA+IGJhcmlcIDsKK+WvjOWutiA+IGZ1a2FcIDsKK+S7lua0viA+IHRhaGFcIDsKK+itsOmZoiA+IGdpaW5cIDsKK+i1t+WboCA+IGtpaW5cIDsKK+eOu+eSgyA+IGhhcmlcIDsKK+WuieaJkyA+IGFuZGFcIDsKK+aal+itnCA+IGFucHVcIDsKK+mmrOWtkCA+IG1hZ29cIDsKK+aYr+mdniA+IHplaGlcIDsKK+S6i+eQhiA+IGppcmlcIDsKK+WutuWutiA+IGllaWVcIDsKK+aeuOadniA+IGt1a29cIDsKK+S6jOeOiyA+IG5pb3VcIDsKK+eMv+iHgiA+IGVucGlcIDsKK+aal+iomCA+IGFua2lcIDsKK+aenOaouSA+IGthanVcIDsKK+S9jeWumCA+IGlrYW5cIDsKK+S6keeIviA+IHVuamlcIDsKK+S6nOeCrSA+IGF0YW5cIDsKK+S4gOiNtyA+IGlra2FcIDsKK+i1t+WPpSA+IGtpa3VcIDsKK+S8muaEjyA+IGthaWlcIDsKK+S7peadsSA+IGl0b3VcIDsKK+S7peadpSA+IGlyYWlcIDsKK+mjm+eHlSA+IGhpZW5cIDsKK+WuieW6pyA+IGFuemFcIDsKK+aXl+m8kyA+IGtpa29cIDsKK+mmrOWgtCA+IGJhYmFcIDsKK+mejemmrCA+IGFuYmFcIDsKK+S4gOiHgiA+IGlwcGlcIDsKK+S9s+WRsyA+IGthbWlcIDsKK+S4jee+qSA+IGZ1Z2lcIDsKK+S4jee+iCA+IGZ1a2lcIDsKK+S4jee+hyA+IGZ1a2lcIDsKK+S9s+WPpSA+IGtha3VcIDsKK+acqOeTnCA+IGJva2VcIDsKK+mnhOWPpSA+IGRha3VcIDsKK+iCqeW3viA+IGhpcmVcIDsKK+aZgumBiyA+IGppdW5cIDsKK+mfu+iqniA+IGluZ29cIDsKK+almuOAhSA+IHNvc29cIDsKK+mfs+itnCA+IG9ucHVcIDsKK+S4jee4gSA+IGZ1ZW5cIDsKK+S9jeWcsCA+IGljaGlcIDsKK+aeh+adtyA+IGJpd2FcIDsKK+S4iue1tSA+IHV3YWVcIDsKK+WtpOW9sSA+IGtvZWlcIDsKK+ahiOS+oSA+IGFua2FcIDsKK+eMm+iAhSA+IG1vc2FcIDsKK+agoeWMuyA+IGtvdWlcIDsKK+e+veebriA+IGhhbWVcIDsKK+ahiOS4iyA+IGFua2FcIDsKK+afmuWtkCA+IHl1enVcIDsKK+itt+isqCA+IGdvbXVcIDsKK+S7luaJgCA+IHlvc29cIDsKK+S6jOasoSA+IG5pamlcIDsKK+WmgumcsiA+IGpvcm9cIDsKK+S4jeepjyA+IGZ1b25cIDsKK+WuieWgtSA+IGFuZG9cIDsKK+S4gOeuhyA+IGlra29cIDsKK+S4i+eoriA+IGdlc3VcIDsKK+mmrOWFtyA+IGJhZ3VcIDsKK+S9jeWLsiA+IGlrdW5cIDsKK+S7luaEmyA+IHRhYWlcIDsKK+WutuWHuiA+IGllZGVcIDsKK+S9meWEgCA+IHlvZ2lcIDsKK+WuieWbuiA+IGFua29cIDsKK+WutuWFtyA+IGthZ3VcIDsKK+S4jeejqCA+IGZ1bWFcIDsKK+WutuWFjiA+IGthdG9cIDsKK+aXpemWkyA+IGhpYWlcIDsKK+S8juWlsyA+IGdpam9cIDsKK+WnlOitsiA+IGlqb3VcIDsKK+S9jeWGoCA+IGlrYW5cIDsKK+itt+ihmyA+IGdvZWlcIDsKK+S7i+aEjyA+IGthaWlcIDsKK+WvhOS7mCA+IGtpZnVcIDsKK+mejemDqCA+IGFuYnVcIDsKK+acieeCuiA+IHl1dWlcIDsKK+WvhOS4jiA+IGtpeW9cIDsKK+S9k+S9jSA+IHRhaWlcIDsKK+S9meS6iyA+IHlvamlcIDsKK+mdkumdkiA+IGFvYW9cIDsKK+S7ruWtlyA+IGthbmFcIDsKK+S6jOacnyA+IG5pa2lcIDsKK+S9juS9jSA+IHRlaWlcIDsKK+WuieWQpiA+IGFucGlcIDsKK+iDoeS5sSA+IHVyb25cIDsKK+S6iOacnyA+IHlva2lcIDsKK+WutuS6iyA+IGthamlcIDsKK+e+qeeQhiA+IGdpcmlcIDsKK+itj+iquSA+IGtpaGlcIDsKK+S4i+eXoiA+IGdlcmlcIDsKK+WuieWNsSA+IGFua2lcIDsKK+izreWgtCA+IHRvYmFcIDsKK+mmluS9jSA+IHNodWlcIDsKK+WsieaIryA+IGtpZ2lcIDsKK+S6i+aVhSA+IGppa29cIDsKK+S8geWbsyA+IGtpdG9cIDsKK+e+qeeItiA+IGdpZnVcIDsKK+S7luWutiA+IHRha2VcIDsKK+S4jeeQhiA+IGZ1cmlcIDsKK+izgOWutCA+IGdhZW5cIDsKK+WumuS9jSA+IHRlaWlcIDsKK+Wuh+WGhSA+IHVkYWlcIDsKK+S7peWkliA+IGlnYWlcIDsKK+eRo+S6iyA+IHNhamlcIDsKK+WkoumtlCA+IG11bWFcIDsKK+adpeaEjyA+IHJhaWlcIDsKK+WtteWMliA+IGZ1a2FcIDsKK+iytOWutiA+IGtpa2FcIDsKK+aal+ekuiA+IGFuamlcIDsKK+WuieS/nSA+IGFucG9cIDsKK+WuieS+oSA+IGFua2FcIDsKK+acqOacqCA+IGtpZ2lcIDsKK+mdnumBiyA+IGhpdW5cIDsKK+iBvuWUliA+IHJvdWFcIDsKK+i0j+S9mSA+IGVpeW9cIDsKK+e+veavmyA+IHVtb3VcIDsKK+mfs+e0oCA+IG9uc29cIDsKK+Wtl+WPpSA+IGppa3VcIDsKK+i0iOS9jSA+IHpvdWlcIDsKK+iytOWlsyA+IGtpam9cIDsKK+S7mOWbsyA+IGZ1enVcIDsKK+iCieWIuiA+IG1hbWVcIDsKK+S6i+W+jCA+IGppZ29cIDsKK+S6iOW+jCA+IHlvZ29cIDsKK+S6jOW6piA+IG5pZG9cIDsKK+mfs+espiA+IG9ucHVcIDsKK+e+qeawlyA+IGdpa2lcIDsKK+WAi+OAhSA+IGtva29cIDsKK+e+qeavjSA+IGdpYm9cIDsKK+iqnumfsyA+IGdvb25cIDsKK+S7peWNlyA+IGluYW5cIDsKK+iAjOW+jCA+IGppZ29cIDsKK+WknOmZsCA+IHlhaW5cIDsKK+S7mOWSjCA+IGZ1d2FcIDsKK+eJoeibjiA+IGtha2lcIDsKK+eOi+aJiyA+IG91dGVcIDsKK+e+veaguSA+IGhhbmVcIDsKK+acqOaIuCA+IGtpZG9cIDsKK+S7peWJjSA+IGl6ZW5cIDsKK+adseWktyA+IHRvdWlcIDsKK+mdnuitsCA+IGhpZ2lcIDsKK+mfi+e3qCA+IGloZW5cIDsKK+S7peWGhSA+IGluYWlcIDsKK+S4gOa0viA+IGlwcGFcIDsKK+S4ieavmyA+IG1pa2VcIDsKK+mbt+mbqCA+IHJhaXVcIDsKK+irs+itnCA+IGFucHVcIDsKK+S7mOWKoCA+IGZ1a2FcIDsKK+S4jeasoSA+IGZ1amlcIDsKK+mbkemtmiA+IGpha29cIDsKK+itt+espiA+IGdvZnVcIDsKK+mbsumcpyA+IHVubXVcIDsKK+S6i+WunCA+IGppZ2lcIDsKK+abs+absyA+IGVpZWlcIDsKK+S6jOWtlyA+IG5pamlcIDsKK+S4gOawlyA+IGlra2lcIDsKK+izpuS4jiA+IGZ1eW9cIDsKK+adj+WtkCA+IGFuenVcIDsKK+WnlOe0sCA+IGlzYWlcIDsKK+irs+iomCA+IGFua2lcIDsKK+Wkp+mHjiA+IG9vbm9cIDsKK+S4gOatqSA+IGlwcG9cIDsKK+aWjumDqCA+IGluYmVcIDsKK+S7o+S9jSA+IGRhaWlcIDsKK+eLkOeWkSA+IGtvZ2lcIDsKK+eOi+W6pyA+IG91emFcIDsKK+S7o+S7oyA+IHlveW9cIDsKK+Wlh+iyqCA+IGtpa2FcIDsKK+S7peS4iiA+IGlqb3VcIDsKK+e+qeaXlyA+IGdpa2lcIDsKK+eQhuS6iyA+IHJpamlcIDsKK+acieaEjyA+IHl1dWlcIDsKK+acieaDhSA+IHVqb3VcIDsKK+S4jeacnyA+IGZ1a2lcIDsKK+S7luS6iyA+IHRhamlcIDsKK+eLkueLkiA+IGhpaGlcIDsKK+S7mOS4jiA+IGZ1eW9cIDsKK+S4u+aEjyA+IHNodWlcIDsKK+eLkOeLuCA+IGtvcmlcIDsKK+S4luaVhSA+IHNla29cIDsKK+S4jeaZgiA+IGZ1amlcIDsKK+mcsuiqniA+IHJvZ29cIDsKK+Wkp+i3ryA+IG9vamlcIDsKK+eOi+WutiA+IG91a2VcIDsKK+e+qeaPtCA+IGdpZW5cIDsKK+eOi+WtkCA+IG91amlcIDsKK+S4gOacnyA+IGlra2lcIDsKK+e+qeaNkCA+IGdpZW5cIDsKK+iqueitsCA+IGhpZ2lcIDsKK+iytOS4iyA+IGtpa2FcIDsKK+S4gOaWlyA+IGl0dG9cIDsKK+eOi+WmgyA+IG91aGlcIDsKK+eOi+WlsyA+IG91am9cIDsKK+mdkuiRiSA+IGFvYmFcIDsKK+iqnui3ryA+IGdvcm9cIDsKK+mdkuiPnCA+IGFvbmFcIDsKK+S6kuWKqSA+IGdvam9cIDsKK+acqOWgtCA+IGtpYmFcIDsKK+S6lOWIhiA+IGdvYnVcIDsKK+S4gOaPhiA+IGlra2lcIDsKK+S6i+WLmSA+IGppbXVcIDsKK+S4i+aJiyA+IGhldGFcIDsKK+S4i+aIuCA+IGdla29cIDsKK+adseS6niA+IHRvdWFcIDsKK+adseS6nCA+IHRvdWFcIDsKK+acqOWcsCA+IGtpamlcIDsKK+eOi+WcnyA+IG91ZG9cIDsKK+e+juaKgCA+IGJpZ2lcIDsKK+S4iuaEjyA+IGpvdWlcIDsKK+S4gOaIuCA+IGlra29cIDsKK+eLrOalvSA+IGtvbWFcIDsKK+iqpOiomCA+IGdva2lcIDsKK+mfs+azoiA+IG9ucGFcIDsKK+S6m+S6iyA+IHNhamlcIDsKK+mfu+avjSA+IGluYm9cIDsKK+aYoOeUuyA+IGVpZ2FcIDsKK+S6iOWCmSA+IHlvYmlcIDsKK+S6jOS+oSA+IG5pa2FcIDsKK+aWveiCpSA+IHNlaGlcIDsKK+mhjOaEjyA+IGRhaWlcIDsKK+S6jOS9kCA+IG5pc2FcIDsKK+S6iOS+oSA+IHlva2FcIDsKK+WkluihoyA+IGdhaWlcIDsKK+S4jeW4sCA+IGZ1a2lcIDsKK+aVt+ihjSA+IGZ1ZW5cIDsKK+aXqeeosiA+IHdhc2VcIDsKK+iom+mfsyA+IGthb25cIDsKK+e+veWkqiA+IGhhdGFcIDsKK+eFmemcpyA+IGVubXVcIDsKK+eOi+WMliA+IG91a2FcIDsKK+eFmemcniA+IGVua2FcIDsKK+eFmembqCA+IGVuJyd1XCA7CivpoqjlkYIgPiBmdXJvXCA7Civkub7kvY0gPiBrZW5pXCA7Civmk6zpn7MgPiBnaW9uXCA7CivlqIHmqKkgPiBpa2VuXCA7CivkuIDlt7EgPiBpa2tvXCA7CivnuIHotbcgPiBlbmdpXCA7CivkuZ3liIYgPiBrdWJ1XCA7CivkuI3lrokgPiBmdWFuXCA7CivlppbnlbAgPiB5b3VpXCA7CivoqIPpn7MgPiBmdW9uXCA7CivmnLrkuIsgPiBraWthXCA7CivniLbnpZYgPiBmdXNvXCA7CivkuIvlqaIgPiBrYWhpXCA7CivkuIDlrrYgPiBpa2tlXCA7CivpmbDpmJwgPiBpbmZ1XCA7CivlpYfnuIEgPiBraWVuXCA7CivmmpfmhJogPiBhbmd1XCA7CivkuI7lpKogPiB5b3RhXCA7CivkuIvlpbMgPiBnZWpvXCA7CivnhKHpp4QgPiBtdWRhXCA7CivnuIHoqp4gPiBlbmdvXCA7Civpm4Xoqp4gPiBnYWdvXCA7CivnjovkuosgPiBvdWppXCA7CivmmYLmqZ8gPiBqaWtpXCA7Civml6nnlJ8gPiB3YXNlXCA7CivnjaPljLsgPiBqdXVpXCA7Civnvo7lp6sgPiBiaWtpXCA7CivlqablpbMgPiBmdWpvXCA7Civnvo7lppMgPiBiaWdpXCA7CivpoqjkvY0gPiBmdXVpXCA7Civnvo7lpbMgPiBiaWpvXCA7CivkuZ3kuZ0gPiBrdWt1XCA7CivpnZLnoKUgPiBhb3RvXCA7CivlrrbjgIUgPiBpZWllXCA7CivnhKHpn7MgPiBtdW9uXCA7CivorbDmoYggPiBnaWFuXCA7CivkuI3lm7MgPiBmdXRvXCA7Civpmpjot68gPiBhaXJvXCA7CivnjJvlqIEgPiBtb3VpXCA7CivpmY3pm6ggPiBrb3V1XCA7CivmmbrmhacgPiBjaGllXCA7CivkuI3lmaggPiBmdWtpXCA7CivlpJrnvqkgPiB0YWdpXCA7CivmmrTlqIEgPiBib3VpXCA7CivlpJrnvoUgPiB0YXJhXCA7CivmmYLmnJ8gPiBqaWtpXCA7Civoqp7nvqkgPiBnb2dpXCA7CivpmbDpg6ggPiBpbmJ1XCA7CivlpbPnjosgPiBqb291XCA7CivkuLvkvY0gPiBzaHVpXCA7CivpnZ7nkIYgPiBoaXJpXCA7Civpm7LohIIgPiBmdWtlXCA7Civnvqnli5kgPiBnaW11XCA7Civpm6Loi6YgPiByaWt1XCA7Civmmq7lpJwgPiBib3lhXCA7CivpnZLnlLAgPiBhb3RhXCA7CivkuI3lkowgPiBmdXdhXCA7CivkuI3lkbMgPiBmdW1pXCA7CivpmqDoqp4gPiBpbmdvXCA7CivorbfmkakgPiBnb21hXCA7CivkuInlkbMgPiBzYW1pXCA7CivkuI3lj68gPiBmdWthXCA7CivkuIvlkI8gPiBrYXJpXCA7CivkuIvlj7ggPiBnZXN1XCA7CivkuIvlj6UgPiBnZWt1XCA7CivnuLfnuLcgPiBydXJ1XCA7Civmm7TkvY0gPiBrb3VpXCA7Civlo4HonaggPiBkYW5pXCA7Civnvo7lkbMgPiBiaW1pXCA7CivkuIvljZEgPiBnZWJpXCA7CivorLPmrYwgPiBvdWthXCA7CivorbfmjIEgPiBnb2ppXCA7CivkuIDlj6UgPiBpa2t1XCA7CivkuI3liKkgPiBmdXJpXCA7CivnhKHpiZsgPiBtdWVuXCA7Civnvo7ljJYgPiBiaWthXCA7CivkuIDljLogPiBpa2t1XCA7CivpoK3lnqIgPiBmdWtlXCA7CivkuI3lhbcgPiBmdWd1XCA7CivpoK3lm7IgPiB0b3VpXCA7CivoqJjorZwgPiBraWZ1XCA7CivkuI3lgpkgPiBmdWJpXCA7CivoqJvoqp4gPiBrYWdvXCA7CivniqDmiZMgPiBnaWRhXCA7CivlpJbnp5EgPiBnZWthXCA7Civpm6LnuIEgPiByaWVuXCA7CivkuJbkuosgPiBzZWppXCA7Civpn7vlrZcgPiBpbmppXCA7CivkuJbkuJYgPiB5b3lvXCA7CivlpKfnm64gPiBvb21lXCA7CivnhKHovpwgPiBtdWtvXCA7CivkuIrkvY0gPiBqb3VpXCA7CivkuIvku5ggPiBrYWZ1XCA7CivnuIHogIUgPiBlbmphXCA7Civml6XmrakgPiBoaWJ1XCA7CivkuI3kuowgPiBmdWppXCA7CivkuI3kuoggPiBmdXlvXCA7CivkuIDlgIsgPiBpa2tvXCA7CivniL7msZ0gPiBqaWpvXCA7CivlqIHlrrkgPiBpeW91XCA7Civpn7PlrZcgPiBvbmppXCA7CivlpJznnYAgPiB5b2dpXCA7CivpmaLorbAgPiBpbmdpXCA7CivlpJznm64gPiB5b21lXCA7CivkuIDkvZAgPiBpc3NhXCA7CivniLbmr40gPiBmdWJvXCA7CivpnZ7mr4AgPiBoaWtpXCA7CivmmYLlt64gPiBqaXNhXCA7CivntLDpm6ggPiBzYWl1XCA7CivpnIrnlbAgPiByZWlpXCA7CivoqofnpLogPiBrb2ppXCA7Civln7rpn7MgPiBraW9uXCA7Civnt6/nt5ogPiBpc2VuXCA7CivpmYTorbAgPiBmdWdpXCA7CivmmYLlrpwgPiBqaWdpXCA7Civku6PjgIUgPiB5b3lvXCA7CivpmqDogIUgPiBpbmphXCA7CivmmYLlraMgPiBqaWtpXCA7CivplrvprZQgPiBlbm1hXCA7Civml6Xml6UgPiBoaWJpXCA7CivmlbDnj6AgPiBqdXp1XCA7CivpmYToqJggPiBmdWtpXCA7CivpoKTkvb8gPiBpc2hpXCA7CivpmbDokI4gPiBpbicnaVwgOwor6Z+z5ZCQID4gb250b1wgOwor6Z+z5Y+JID4gb25zYVwgOwor5aiB5ZCNID4gaW1laVwgOwor6Z2S5pyoID4gYW9raVwgOwor5aiB5Y6zID4gaWdlblwgOwor6Kyd5oSPID4gc2hhaVwgOwor57a6576FID4ga2lyYVwgOwor5aiB5YuiID4gaXNlaVwgOwor5Z+66YOoID4ga2lidVwgOwor5aaC5oSPID4gbnlvaVwgOwor6K2s5ZapID4gaGl5dVwgOwor6K2w5ZOhID4gZ2lpblwgOwor5aiB5YWJID4gaWtvdVwgOwor5aW95oSPID4ga291aVwgOwor5aW95oKqID4ga291b1wgOwor5aSc5rCXID4geWFraVwgOwor6Z+z5L6hID4gb25rYVwgOwor6Z+75LqLID4gaW5qaVwgOwor6KiY57SAID4ga2lraVwgOwor5pei5b6AID4ga2lvdVwgOwor6Kqe5rCXID4gZ29raVwgOwor54i+5b6MID4gamlnb1wgOwor5aiB5LukID4gaXJlaVwgOwor5pmC5YuZID4gamltdVwgOwor5aWl5oSPID4gb2t1aVwgOwor5Z6i6ZuiID4ga29yaVwgOwor6Zuy5rCXID4gdW5raVwgOwor6ZaT6ZaTID4gbWFtYVwgOwor5aKT56KRID4gYm9oaVwgOwor6Zuo5rC0ID4gdXN1aVwgOwor6K2y5L2NID4gam91aVwgOwor5aGp57SgID4gZW5zb1wgOwor5pmC5L6hID4gamlrYVwgOwor6K2w5LqLID4gZ2lqaVwgOwor54Sh57iBID4gbXVlblwgOwor5aSc5pqXID4geWFhblwgOwor5pmC5LqLID4gamlqaVwgOwor5pmC5LiLID4gamlrYVwgOwor5aSP5pyfID4ga2FraVwgOwor5aeU5Lu7ID4gaW5pblwgOwor5aW05amiID4gbnVoaVwgOwor57iK5q27ID4gaXNoaVwgOwor5aSn5omLID4gb29kZVwgOwor5pyo44CFID4ga2lnaVwgOwor6Zyy5bqnID4gcm96YVwgOwor6ZuF5q2MID4gZ2FrYVwgOwor6Kmg5q2MID4gZWlrYVwgOwor6Zmw55S7ID4gaW5nYVwgOwor5aSn5oSPID4gdGFpaVwgOwor5aOK5q27ID4gZXNoaVwgOwor54Sh56KNID4gbXVnZVwgOwor6KmQ5qy6ID4gc2FnaVwgOwor6Kqg5oSPID4gc2VpaVwgOwor54WZ54GrID4gZW5rYVwgOwor57WM57evID4ga2VpaVwgOwor6Z2S5ZywID4gYW9qaVwgOwor6Z2S5ZuzID4gYW96dVwgOwor5pWs5oSPID4ga2VpaVwgOwor5pGp576FID4gbWFyYVwgOwor57KX6YeOID4gc295YVwgOwor5aSn5bGLID4gb295YVwgOwor6Kqk5beuID4gZ29zYVwgOwor5aSn5bCJID4gdGFpaVwgOwor5puz44CFID4gZWllaVwgOwor57iB5pWFID4gZW5rb1wgOwor54Sh55CGID4gbXVyaVwgOwor5aSi5a+QID4gbXViaVwgOwor57ev5pu4ID4gaXNob1wgOwor5aSa5bKQID4gdGFraVwgOwor54WZ5rOiID4gZW5wYVwgOwor57OW6KGjID4gdG91aVwgOwor6Zyy5ZywID4gcm9qaVwgOwor5aWz5YWQID4gam9qaVwgOwor5aSa5a+hID4gdGFrYVwgOwor5o+06K23ID4gZW5nb1wgOwor5pen5LqLID4ga3VqaVwgOwor6Kqe5bC+ID4gZ29iaVwgOwor6Kqk5a2XID4gZ29qaVwgOwor54i+5L2ZID4gaml5b1wgOwor6Zyy5Za2ID4gcm9laVwgOwor5LiW44CFID4geW95b1wgOwor5aSl5aSaID4ga2F0YVwgOwor54Sh54WZID4gbXVlblwgOwor5pWw5a+EID4gc3VraVwgOwor5aSP5a2jID4ga2FraVwgOwor6Zi/54mHID4gYWhlblwgOwor6Zmw5rCXID4gaW5raVwgOwor5aSc5aScID4geW95b1wgOwor5aSa5aSaID4gdGF0YVwgOwor5peX5LiLID4ga2lrYVwgOwor5Zyf6ZaTID4gZG9tYVwgOwor5o6q6L6eID4gc29qaVwgOwor57iB5bqnID4gZW56YVwgOwor5pa55L2NID4gaG91aVwgOwor5aSW5ZuyID4gZ2FpaVwgOwor6Kqy5ZOhID4ga2FpblwgOwor5Z+656SOID4ga2lzb1wgOwor54Sh5rS+ID4gbXVoYVwgOwor6KaP55+pID4ga2lrdVwgOwor5aSc5Za2ID4geWFlaVwgOwor5r++6YGOID4gcm9rYVwgOwor6Zuo5aSpID4gdXRlblwgOwor5aWI5L2VID4gaWthblwgOwor6Zuo5aOwID4gdXNlaVwgOwor54Sh5q+UID4gbXVoaVwgOwor6KaL55uuID4gbWltZVwgOwor6Zuo5Z+fID4gdWlraVwgOwor57iB5a62ID4gZW5rYVwgOwor5aSc5Y2KID4geW93YVwgOwor6ZuJ5a2QID4ga2lqaVwgOwor6KGj6aaZID4gaWtvdVwgOwor6Kqe5ZGCID4gZ29yb1wgOwor54Sh5qmfID4gbXVraVwgOwor6KOc6KqeID4gaG9nb1wgOwor57eP5oSPID4gc291aVwgOwor6Zqg5b6uID4gaW5iaVwgOwor6Kqe5Y+lID4gZ29rdVwgOwor5o6p6K23ID4gZW5nb1wgOwor6KOc6KiYID4gaG9raVwgOwor6ZqP5oSPID4genVpaVwgOwor5aS35Lq6ID4gaWppblwgOwor6KGj6aGeID4gaXJ1aVwgOwor5aSc5YW3ID4geWFndVwgOwor54Sh5pyfID4gbXVraVwgOwor57KX6I+TID4gc29rYVwgOwor5aSa5L6hID4gdGFrYVwgOwor6ZyK5L2NID4gcmVpaVwgOwor5pS75ZuyID4ga291aVwgOwor5aSa5LqLID4gdGFqaVwgOwor54Gr566tID4gaGl5YVwgOwor57W15pysID4gZWhvblwgOwor5Zu66L6eID4ga29qaVwgOwor54uS44CFID4gaGloaVwgOwor5Zyf6KqeID4gZG9nb1wgOwor5Zyw6KGjID4gY2hpaVwgOwor5pSY5aS3ID4gam91aVwgOwor6ZuH5ZOhID4ga29pblwgOwor54Sh5o+0ID4gbXVlblwgOwor6ZuF5ZGzID4gZ2FtaVwgOwor57C/6KiYID4gYm9raVwgOwor54Sh5omLID4gbXV0ZVwgOwor54Sh5oiRID4gbXVnYVwgOwor54Gr55+iID4gaGl5YVwgOwor6Zi/5oi/ID4gYWhvdVwgOwor6KaH5rCXID4gaGFraVwgOwor6KOc6IKlID4gaG9oaVwgOwor6Ki05ZugID4gc29pblwgOwor6KaP5qihID4ga2lib1wgOwor6ZuE5YGJID4geXV1aVwgOwor5pWF5LqLID4ga29qaVwgOwor6KKI6KOfID4ga2VzYVwgOwor5aGX5biDID4gdG9mdVwgOwor57W15birID4gZXNoaVwgOwor6Zmk5aScID4gam95YVwgOwor54Sh5a2jID4gbXVraVwgOwor54Gr54SUID4ga2FlblwgOwor54Gr54KOID4ga2FlblwgOwor54Gr54KJID4ga2Fyb1wgOwor5oq86Z+7ID4gb3VpblwgOwor5aGp5Z+6ID4gZW5raVwgOwor5pOs5Y+kID4gZ2lrb1wgOwor54K65pS/ID4gaXNlaVwgOwor54Sh5aGpID4gbXVlblwgOwor5o6o56e7ID4gc3VpaVwgOwor54Sh5Z6iID4gbXVrdVwgOwor54Sh5ZywID4gbXVqaVwgOwor6ZmE5ZuzID4gZnV6dVwgOwor57Sg5omLID4gc3VkZVwgOwor54Gr5rCXID4ga2FraVwgOwor5pOs5Ly8ID4gZ2lqaVwgOwor5aGp5YyWID4gZW5rYVwgOwor6KiY5LqLID4ga2lqaVwgOwor54Sh5ZGzID4gbXVtaVwgOwor5pel44CFID4gaGliaVwgOwor6Zi/5ZGGID4gYWhvdVwgOwor5Zyw55WwID4gY2hpaVwgOwor6ZeH5oSaID4gYW5ndVwgOwor6Zmi5Li7ID4gaW5qdVwgOwor5aCC5a6HID4gZG91dVwgOwor6Z2S44CFID4gYW9hb1wgOwor6Zi/5YWEID4gYWtlaVwgOwor54Sh5L6hID4gbXVrYVwgOwor5aC05ZCIID4gYmFhaVwgOwor57W15YOPID4gZXpvdVwgOwor54Sh5LqMID4gbXVuaVwgOwor54Sh5LqLID4gYnVqaVwgOwor6KGj57SLID4gZW1vblwgOwor57SN5bGLID4gbmF5YVwgOwor6KaL5aC0ID4gbWliYVwgOwor6Zi/5LiWID4gYXNlaVwgOwor56yR6aGUID4gZWdhb1wgOwor5o+25o+EID4geWF5dVwgOwor5Z+65ZugID4ga2lpblwgOwor57Sg5ZywID4gc29qaVwgOwor57Sg5ZugID4gc29pblwgOwor57KX5py2ID4gc29kYVwgOwor5omL6ZaTID4gdGVtYVwgOwor5Zuz55S7ID4genVnYVwgOwor56ug6a2aID4gdGFrb1wgOwor5aSc44CFID4geW95b1wgOwor5aSa44CFID4gdGF0YVwgOwor54Gr5bGLID4gaG95YVwgOwor5om56K2wID4gaGlnaVwgOwor54Cs5oi4ID4gc2V0b1wgOwor6J676JuEID4ga2VyYVwgOwor54Gr5aSrID4ga2FmdVwgOwor6ZaT5aSrID4gbWFidVwgOwor5oyB56KBID4gamlnb1wgOwor5ryU6IieID4gZW5idVwgOwor57OK5aGXID4ga290b1wgOwor57KX5biDID4gc29mdVwgOwor5ryU6ICFID4gZW5qYVwgOwor54Gr5ZmoID4ga2FraVwgOwor6JuZ6bu9ID4gYWJvdVwgOwor5ryU576pID4gZW5naVwgOwor5o6P5pG4ID4gc3VyaVwgOwor6KGM54K6ID4ga291aVwgOwor57Gg5omLID4ga290ZVwgOwor6KGM54GrID4gYW5rYVwgOwor566H566HID4ga29rb1wgOwor6KO45ammID4gcmFmdVwgOwor5Zuz5qGIID4genVhblwgOwor5Zyf5omLID4gZG90ZVwgOwor5rip6ZuFID4gb25nYVwgOwor5o+05YqpID4gZW5qb1wgOwor6J2m6J+HID4gZ2FtYVwgOwor5Zug5p6cID4gaW5nYVwgOwor6KGj5qGBID4gaWtvdVwgOwor6b2f6b2sID4gc29nb1wgOwor54Gr5LqLID4ga2FqaVwgOwor5Zu65oyBID4ga29qaVwgOwor5Zub5pmCID4geW9qaVwgOwor5Zub5pa5ID4geW9tb1wgOwor6J2M6JqqID4ga2F0b1wgOwor5Zu95bqcID4ga29mdVwgOwor5o275a2QID4gbmVqaVwgOwor5Zyw5aC0ID4gamliYVwgOwor5rer6Z2hID4gaW5iaVwgOwor5omL5769ID4gdGViYVwgOwor6Jya6KqeID4gaGlnb1wgOwor5rer6ZuoID4gaW4nJ3VcIDsKK+ijnOWKqSA+IGhvam9cIDsKK+aNqeWtkCA+IG5lamlcIDsKK+a5r+iRiSA+IHl1YmFcIDsKK+aFsOmciiA+IGlyZWlcIDsKK+Wcn+WZqCA+IGRva2lcIDsKK+icmOibmyA+IGt1bW9cIDsKK+aMieaRqSA+IGFubWFcIDsKK+iho+W4ryA+IGl0YWlcIDsKK+ijnOS9kCA+IGhvc2FcIDsKK+aOiOWPlyA+IGp1anVcIDsKK+aJk+egtCA+IGRhaGFcIDsKK+aLv+aNlSA+IGRhaG9cIDsKK+m8u+mfsyA+IGJpb25cIDsKK+Wcn+WMqiA+IGRvaGlcIDsKK+WUlumItCA+IGFyZWlcIDsKK+a8lOatpiA+IGVuYnVcIDsKK+a8lOatjCA+IGVua2FcIDsKK+WcsOS9jSA+IGNoaWlcIDsKK+enu+mghSA+IGlrb3VcIDsKK+WcqOS9jSA+IHphaWlcIDsKK+ihjeWtlyA+IGVuamlcIDsKK+WckuWFkCA+IGVuamlcIDsKK+aEm+mmrCA+IGFpYmFcIDsKK+aOiOS4jiA+IGp1eW9cIDsKK+Wbm+WbsiA+IHNoaWlcIDsKK+WbuuWMliA+IGtva2FcIDsKK+aNleWQjyA+IGhvcmlcIDsKK+aEm+mjsiA+IGFpaW5cIDsKK+WTgOmfsyA+IGFpb25cIDsKK+a1t+mmrCA+IHRvZG9cIDsKK+aEm+mhpyA+IGFpa29cIDsKK+a1t+memCA+IGhveWFcIDsKK+WbnuWQkSA+IGVrb3VcIDsKK+a4oeiLsSA+IHRvZWlcIDsKK+aIr+eUuyA+IGdpZ2FcIDsKK+aFsOisnSA+IGlzaGFcIDsKK+m7tOmbqCA+IGJhaXVcIDsKK+a8lOaKgCA+IGVuZ2lcIDsKK+iho+WGoCA+IGlrYW5cIDsKK+a8lOaIryA+IGVuZ2lcIDsKK+enu+mAgSA+IGlzb3VcIDsKK+WSjOmfsyA+IHdhb25cIDsKK+aKvOW/jSA+IG9zc3VcIDsKK+enu+i7oiA+IGl0ZW5cIDsKK+mKhemRvCA+IGRvcmFcIDsKK+aFsOiXiSA+IGlzaGFcIDsKK+aKiuaMgSA+IGhhamlcIDsKK+aEm+i8nSA+IGFpa2lcIDsKK+a5r+eFriA+IHl1bmlcIDsKK+enu+itsiA+IGlqb3VcIDsKK+aCqumsvCA+IGFra2lcIDsKK+aEj+i2oyA+IGlzaHVcIDsKK+aEm+ittyA+IGFpZ29cIDsKK+enu+ihjCA+IGlrb3VcIDsKK+WTgOipsSA+IGFpd2FcIDsKK+WTgOiotCA+IGFpc29cIDsKK+WRiemgiCA+IGdvc3VcIDsKK+mWk+OAhSA+IG1hbWFcIDsKK+WRiemfsyA+IGdvb25cIDsKK+m7hOmJmyA+IG91ZW5cIDsKK+enmOipsSA+IGhpd2FcIDsKK+a5r+awlyA+IHl1Z2VcIDsKK+ieuuWtkCA+IG5lamlcIDsKK+aEj+imiyA+IGlrZW5cIDsKK+aLh+WNsCA+IGJvaW5cIDsKK+m7hOi6qyA+IGtpbWlcIDsKK+WSjOitsCA+IHdhZ2lcIDsKK+aKvOWNsCA+IG91aW5cIDsKK+WZqOWFtyA+IGtpZ3VcIDsKK+WSjOiqniA+IHdhZ29cIDsKK+aCsumBiyA+IGhpdW5cIDsKK+m8k+iIniA+IGtvYnVcIDsKK+WQkOmcsiA+IHRvcm9cIDsKK+aBqemhpyA+IG9ua29cIDsKK+aBtembqCA+IGtlaXVcIDsKK+a1ruiPryA+IGZ1a2FcIDsKK+a1t+iLlCA+IG5vcmlcIDsKK+a1t+iKiyA+IGthaXVcIDsKK+elnumFkiA+IG1pa2lcIDsKK+a1hOihoyA+IGpvdWVcIDsKK+ays+mmrCA+IGthYmFcIDsKK+iVjum6piA+IHNvYmFcIDsKK+aKvOS4iyA+IG91a2FcIDsKK+a4oeaysyA+IHRva2FcIDsKK+m4mum1oSA+IG91bXVcIDsKK+WQiOmWkyA+IGFpbWFcIDsKK+WPs+mdoiA+IHVtZW5cIDsKK+m8u+elliA+IGJpc29cIDsKK+aCquiyqCA+IGFra2FcIDsKK+a4oeaspyA+IHRvb3VcIDsKK+enu+euoSA+IGlrYW5cIDsKK+WQpumBiyA+IGhpdW5cIDsKK+WPpOmfsyA+IGtvb25cIDsKK+WYlOWQkCA+IG91dG9cIDsKK+aCsuipsSA+IGhpd2FcIDsKK+WSjOiLsSA+IHdhZWlcIDsKK+WPpOmbhSA+IGtvZ2FcIDsKK+a7i+WRsyA+IGppbWlcIDsKK+aJtuWKqSA+IGZ1am9cIDsKK+WUlueEtiA+IGF6ZW5cIDsKK+iYh+iKsyA+IHN1b3VcIDsKK+etieS9jSA+IHRvdWlcIDsKK+iXjeikuCA+IGJvcm9cIDsKK+aCquihoyA+IGFrdWlcIDsKK+elluiqniA+IHNvZ29cIDsKK+aAqumbqCA+IGthaXVcIDsKK+a5r+WxiyA+IHl1eWFcIDsKK+WUvuajhCA+IGRha2lcIDsKK+WPs+i+uiA+IHVoZW5cIDsKK+aFiOeItiA+IGppZnVcIDsKK+WWnOWvvyA+IGtpanVcIDsKK+WPpOmDvSA+IGtvdG9cIDsKK+ayv+i3ryA+IGVucm9cIDsKK+mHjumEmSA+IHlhaGlcIDsKK+a5r+WlsyA+IHl1bmFcIDsKK+WOremboiA+IG9ucmlcIDsKK+m8u+eCjiA+IGJpZW5cIDsKK+mHjui+uiA+IG5vYmVcIDsKK+m7hOe3ryA+IGtvdWlcIDsKK+iVqui+niA+IGJ1amlcIDsKK+aBqeiqvCA+IG9uZ2lcIDsKK+epjuaenCA+IGVpa2FcIDsKK+mLreawlyA+IGVpa2lcIDsKK+WWtuWWtiA+IGVpZWlcIDsKK+azleihoyA+IGhvdWVcIDsKK+ays+ixmiA+IGZ1Z3VcIDsKK+mHjui3ryA+IG5vamlcIDsKK+a4qeW6piA+IG9uZG9cIDsKK+azleieuiA+IGhvcmFcIDsKK+iTlum6uyA+IGhpbWFcIDsKK+aJgOS7pSA+IHl1ZW5cIDsKK+WRquespiA+IGp1ZnVcIDsKK+aFiOavjSA+IGppYm9cIDsKK+WPpOiqniA+IGtvZ29cIDsKK+WWtuWIqSA+IGVpcmlcIDsKK+WPpOiomCA+IGtva2lcIDsKK+W/nOmcgCA+IG91anVcIDsKK+iWlOiWhyA+IGJhcmFcIDsKK+aIkeWIqSA+IGdhcmlcIDsKK+enu+awkSA+IGltaW5cIDsKK+WWh+WYmyA+IHJhbWFcIDsKK+aGjuaCqiA+IHpvdW9cIDsKK+epuuWwiSA+IGt1dWlcIDsKK+epjuaCnyA+IGVpZ29cIDsKK+awl+mfuyA+IGtpaW5cIDsKK+WPs+iRiSA+IHV5b3VcIDsKK+m6u+eXuiA+IG1haGlcIDsKK+WTgOatjCA+IGFpa2FcIDsKK+awl+manCA+IGtpemFcIDsKK+WPl+iYiiA+IGp1dW5cIDsKK+W+oemhlCA+IG9rYW9cIDsKK+aEm+apnyA+IGFpa2lcIDsKK+WPs+iItyA+IHVnZW5cIDsKK+m5teewvyA+IHJvYm9cIDsKK+aBqee+qSA+IG9uZ2lcIDsKK+WNgembqCA+IGp1dXVcIDsKK+WPs+iEsyA+IHVub3VcIDsKK+a4qeWSjCA+IG9ud2FcIDsKK+awuOmBoCA+IGVpZW5cIDsKK+aEmuahiCA+IGd1YW5cIDsKK+mHjuiJryA+IG5vcmFcIDsKK+W/jOmBvyA+IGtpaGlcIDsKK+iSv+mbgCA+IGFvamlcIDsKK+a3q+WppiA+IGlucHVcIDsKK+awl+mLrSA+IGtpZWlcIDsKK+aDsOawlyA+IGRha2lcIDsKK+WSjOawlyA+IHdha2lcIDsKK+iaiuW4syA+IGtheWFcIDsKK+a1t+adviA+IG1pcnVcIDsKK+aFiOaEmyA+IGppYWlcIDsKK+aFiOaCsiA+IGppaGlcIDsKK+WPpee+qSA+IGt1Z2lcIDsKK+WPpOe+qSA+IGtvZ2lcIDsKK+WSjOatjCA+IHdha2FcIDsKK+axmuihjCA+IG9rb3VcIDsKK+WRvOawlyA+IGtva2lcIDsKK+awl+mBiyA+IGtpdW5cIDsKK+iaiuWxiyA+IGtheWFcIDsKK+egtOmiqCA+IGhhZnVcIDsKK+aEm+aSqyA+IGFpYnVcIDsKK+m7hOaziSA+IHlvbWlcIDsKK+WNsOitnCA+IGlucHVcIDsKK+W/nOiotCA+IG91c29cIDsKK+W+oemFkiA+IG1pa2lcIDsKK+avjemfsyA+IGJvaW5cIDsKK+mDvembhSA+IHRvZ2FcIDsKK+m7hOarqCA+IGhhemVcIDsKK+W/jOirsSA+IGtpa2lcIDsKK+WTgOaFlSA+IGFpYm9cIDsKK+WMu+mBkyA+IGlkb3VcIDsKK+WQiOedgCA+IGFpZ2lcIDsKK+epj+WSjCA+IG9ud2FcIDsKK+epuuS9jSA+IGt1dWlcIDsKK+enmOaKgCA+IGhpZ2lcIDsKK+ellueItiA+IHNvZnVcIDsKK+aEm+aFlSA+IGFpYm9cIDsKK+W+oei6qyA+IG9ubWlcIDsKK+WQjOeVsCA+IGRvdWlcIDsKK+WPpOeogCA+IGtva2lcIDsKK+auuumZoyA+IHRhdGVcIDsKK+aFsOWVjyA+IGltb25cIDsKK+WNkeiqniA+IGhpZ29cIDsKK+WNseiZniA+IGtpZ3VcIDsKK+aEj+aAnSA+IGlzaGlcIDsKK+aCsuatjCA+IGhpa2FcIDsKK+WMuuiyuyA+IGt1aGlcIDsKK+aEj+W/lyA+IGlzaGlcIDsKK+WRhuawlyA+IGFra2VcIDsKK+mCqumtlCA+IGphbWFcIDsKK+mCqumsvCA+IGpha2lcIDsKK+mDvemEmSA+IHRvaGlcIDsKK+WMuuitsCA+IGt1Z2lcIDsKK+engeaEjyA+IHNoaWlcIDsKK+W+kuiyuyA+IHRvaGlcIDsKK+aFsOWKtCA+IGlyb3VcIDsKK+egtOmCqiA+IGhhamFcIDsKK+W+gOi3ryA+IG91cm9cIDsKK+a3q+S6iyA+IGluamlcIDsKK+WPpOeUuyA+IGtvZ2FcIDsKK+mCqumjmyA+IGphaGlcIDsKK+elluavjSA+IHNvYm9cIDsKK+W+oeihoyA+IGd5b2lcIDsKK+mLreWIqSA+IGVpcmlcIDsKK+a0vuaJiyA+IGhhZGVcIDsKK+aCquaenCA+IGFra2FcIDsKK+ayueeFmSA+IHl1ZW5cIDsKK+W8pemZgCA+IG1pZGFcIDsKK+mHjueMvyA+IHlhZW5cIDsKK+WPl+eQhiA+IGp1cmlcIDsKK+WRvOW/nCA+IGtvb3VcIDsKK+enmOWlpSA+IGhpb3VcIDsKK+aAqueVsCA+IGthaWlcIDsKK+mDveitsCA+IHRvZ2lcIDsKK+aEj+WkliA+IGlnYWlcIDsKK+avlOirrSA+IGhpeXVcIDsKK+mBuumquCA+IGlnYWlcIDsKK+axmuepoiA+IG93YWlcIDsKK+aEmuWbsyA+IGd1enVcIDsKK+W+geihoyA+IHNlaWlcIDsKK+aDheaEjyA+IGpvdWlcIDsKK+a1geW4gyA+IHJ1ZnVcIDsKK+avjeiqniA+IGJvZ29cIDsKK+mBuummmSA+IGlrb3VcIDsKK+mHjueBqyA+IG5vYmlcIDsKK+WSjOWtlyA+IHdhamlcIDsKK+WQiOatkyA+IG5lbXVcIDsKK+enu+WLlSA+IGlkb3VcIDsKK+WNsOe2rCA+IGluanVcIDsKK+WKoOmZpCA+IGtham9cIDsKK+W+oeiMtiA+IG9jaGFcIDsKK+aEj+WariA+IGlrb3VcIDsKK+mBuumiqCA+IGlmdXVcIDsKK+avgOiqiSA+IGtpeW9cIDsKK+m6u+W4gyA+IG1hZnVcIDsKK+m8u+S4iyA+IGJpa2FcIDsKK+aCquaEnyA+IG9rYW5cIDsKK+aCquaEjyA+IGFrdWlcIDsKK+aEj+WQkSA+IGlrb3VcIDsKK+enu+S9jyA+IGlqdXVcIDsKK+iZmuS9jSA+IGt5b2lcIDsKK+WMu+iAhSA+IGlzaGFcIDsKK+aBteaWuSA+IGVob3VcIDsKK+iZmuS7riA+IGtva2VcIDsKK+enu+S5lyA+IGlqb3VcIDsKK+aEm+WFkCA+IGFpamlcIDsKK+WKoOmHjCA+IGthcmlcIDsKK+mHjuasoSA+IHlhamlcIDsKK+aymeaxsCA+IHNhdGFcIDsKK+enmOWEgCA+IGhpZ2lcIDsKK+WKqei+niA+IGpvamlcIDsKK+atpumBiyA+IGJ1dW5cIDsKK+asp+mcsiA+IG91cm9cIDsKK+W+oeewviA+IG1pc3VcIDsKK+aCquWvkiA+IG9rYW5cIDsKK+WNseeWkSA+IGtpZ2lcIDsKK+WRs+WZjCA+IG1pc29cIDsKK+WPs+aWuSA+IHVob3VcIDsKK+WNsOeUuyA+IGluZ2FcIDsKK+W7iOmWgCA+IGFtb2lcIDsKK+enmOS6iyA+IGhpamlcIDsKK+axmueCuSA+IG90ZW5cIDsKK+WNsOeSvSA+IGluamlcIDsKK+avm+e+vSA+IGtlYmFcIDsKK+emjeWboCA+IGthaW5cIDsKK+mHjuaariA+IHlhYm9cIDsKK+WRteWRtSA+IGtha2FcIDsKK+WQjOaEjyA+IGRvdWlcIDsKK+aAkuawlyA+IGRva2lcIDsKK+WQiOaEjyA+IGdvdWlcIDsKK+W+oeekvCA+IG9yZWlcIDsKK+azouW4gyA+IGhhYnVcIDsKK+W+oeeilyA+IG93YW5cIDsKK+aBo+aEjyA+IHNoaWlcIDsKK+iRteiKsSA+IGtpa2FcIDsKK+WKoOittyA+IGthZ29cIDsKK+mBuui0iCA+IGl6b3VcIDsKK+axmuazpSA+IG9kZWlcIDsKK+mBuuizoiA+IGlrZW5cIDsKK+ejgeawlyA+IGppa2lcIDsKK+mBuuiyoSA+IGl6YWlcIDsKK+efs+iTtCA+IGFvc2FcIDsKK+W+oeebhiA+IG9ib25cIDsKK+aCsuWWnCA+IGhpa2lcIDsKK+axmuawtCA+IG9zdWlcIDsKK+WPjeaVhSA+IGhvZ29cIDsKK+W8iuihoyA+IGhlaWlcIDsKK+aCsuWTgCA+IGhpYWlcIDsKK+mBoOi3ryA+IGVucm9cIDsKK+WMu+eVjCA+IGlrYWlcIDsKK+mBuuiqoSA+IGlrYWlcIDsKK+WMu+eUqCA+IGl5b3VcIDsKK+mBuuiokyA+IGlrdW5cIDsKK+WNl+eEoSA+IG5hbXVcIDsKK+W+geefoiA+IHNveWFcIDsKK+i/vemiqCA+IG9pdGVcIDsKK+aCquWMliA+IGFra2FcIDsKK+awl+eCjiA+IGtpZW5cIDsKK+egkue0oCA+IGhpc29cIDsKK+aAquaIkSA+IGtlZ2FcIDsKK+WPs+WyuCA+IHVnYW5cIDsKK+m6vuS4iyA+IGtpa2FcIDsKK+awuOawuCA+IGVpZWlcIDsKK+axmuafkyA+IG9zZW5cIDsKK+aBqeWogSA+IG9uJydpXCA7CivnpYflnJIgPiBnaW9uXCA7Civlj6TluIwgPiBrb2tpXCA7Civojbfpp4QgPiBuaWRhXCA7CivljbHmqZ8gPiBraWtpXCA7CivmsJfmuKkgPiBraW9uXCA7CivlvpLniL4gPiB0b2ppXCA7CivmgJ3mg58gPiBzaGlpXCA7Civlvq7muKkgPiBiaW9uXCA7CivpgY7oqqQgPiBrYWdvXCA7Civlj6TlrZcgPiBrb2ppXCA7CivlkIjlm7MgPiBhaXp1XCA7CivnoLTnk5wgPiBoYWthXCA7CivpgbrokZcgPiBpY2hvXCA7Civlub7ph40gPiBpa3VlXCA7CivmsZrmkI0gPiBvc29uXCA7CivlkI/lk6EgPiByaWluXCA7Civljq3mgqogPiBlbicnb1wgOwor5Y+v5aGRID4ga2Fzb1wgOwor5Y675bm0ID4ga296b1wgOwor6YG66I2JID4gaXNvdVwgOwor6I6r6L+mID4gYmFrYVwgOwor6YG66IqzID4gaWhvdVwgOwor5ZCN5Yy7ID4gbWVpaVwgOwor5Y6a5oSPID4ga291aVwgOwor5ZCP5YuZID4gcmltdVwgOwor5q2M6IieID4ga2FidVwgOwor6L+C6YGgID4gdWVuXCA7Civlvq7mhI8gPiBiaWlcIDsKK+WPmeS9jSA+IGpvaVwgOwor6L+C6LevID4gdXJvXCA7CivlvpfmiYsgPiBldGVcIDsKK+awl+WuhyA+IGtpdVwgOwor5beu6YGVID4gc2FpXCA7CivljLvlrrYgPiBpa2FcIDsKK+WFq+mHjSA+IHlhZVwgOwor5Yy75ZOhID4gaWluXCA7Civpgbrmo4QgPiBpa2lcIDsKK+WMu+WLmSA+IGltdVwgOwor5Yy75LqLID4gaWppXCA7CivpgbrmhJsgPiBpYWlcIDsKK+mBuuW9sSA+IGllaVwgOwor6YOo5L2NID4gYnVpXCA7CivmrablqIEgPiBidWlcIDsKK+mBuuWtpCA+IGlrb1wgOwor5beu55WwID4gc2FpXCA7CivnlbDpn7MgPiBpb25cIDsKK+mBuuWFkCA+IGlqaVwgOwor6YGV5ZKMID4gaXdhXCA7CivpgbrkuosgPiBpamlcIDsKK+W4jOaciSA+IGtldVwgOwor6L+C5oSaID4gdWd1XCA7CivmrKfkupwgPiBvdWFcIDsKK+asoeS9jSA+IGppaVwgOwor5qyh5LqcID4gamlhXCA7CivnnInlrocgPiBiaXVcIDsKK+i+nuaEjyA+IGppaVwgOwor55Ww6K2wID4gaWdpXCA7Civovp7lvZkgPiBqaWlcIDsKK+WxhemWkyA+IGltYVwgOwor55Ww576pID4gaWdpXCA7CivluLDkvp0gPiBraWVcIDsKK+mmmemtmiA+IGF5dVwgOwor5qmf5L2NID4ga2lpXCA7CivkvLzpnZ4gPiBlc2VcIDsKK+Wwvue+vSA+IG9oYVwgOwor55Ww54i2ID4gaWZ1XCA7CivkvJrpmbAgPiBlaW5cIDsKK+S9jeiomCA+IGlraVwgOwor55Ww5q+NID4gaWJvXCA7CivkupzpursgPiBhbWFcIDsKK+S7pemBoCA+IGllblwgOwor5LyK6KqeID4gaWdvXCA7Civoh6rmhbAgPiBqaWlcIDsKK+WuieiKuCA+IGFraVwgOwor5Lqc6YmbID4gYWVuXCA7CivnlLLmlpAgPiBrYWlcIDsKK+eVj+aHvCA+IGlrdVwgOwor55WP5oCWID4gaWZ1XCA7CivlsL7moLkgPiBvbmVcIDsKK+eUu+aEjyA+IGdhaVwgOwor5qSF5a2QID4gaXN1XCA7CivnlbDlm7MgPiBpdG9cIDsKK+eVsOWMliA+IGlrYVwgOwor6IOD54KOID4gaWVuXCA7CivkvY3mrKEgPiBpamlcIDsKK+S+neaAmSA+IGVrb1wgOwor5Lqc56eRID4gYWthXCA7CivkvZnmhI8gPiB5b2lcIDsKK+S7ruaciSA+IGtldVwgOwor5L6N5Yy7ID4gamlpXCA7CivkupHngrogPiB1bmlcIDsKK+S+neS8sCA+IGVrb1wgOwor5Lqc5qynID4gYW91XCA7Civku6XlvowgPiBpZ29cIDsKK+S7peW+gCA+IGlvdVwgOwor5LuW5oSPID4gdGFpXCA7Civos4DmhI8gPiBnYWlcIDsKK+acieeEoSA+IHVtdVwgOwor6LK05oSPID4ga2lpXCA7CivkvJrljq0gPiBlZW5cIDsKK+aghOS9jSA+IGVpaVwgOwor5LqV5oi4ID4gaWRvXCA7CivpnZ7pgZUgPiBoaWlcIDsKK+WknOmbqCA+IHlhdVwgOwor5aSa6ZuoID4gdGF1XCA7CivkuozlsIkgPiBuaWlcIDsKK+mbqOmcsiA+IHVyb1wgOwor5Lul5LiLID4gaWthXCA7CivloqjprZogPiBpa2FcIDsKK+S4jeaEjyA+IGZ1aVwgOwor5LiL5oSPID4ga2FpXCA7CivkuozkvY0gPiBuaWlcIDsKK+WogeatpiA+IGlidVwgOwor5pyJ5Y2mID4gdWtlXCA7CivnjovkvY0gPiBvdWlcIDsKK+e+heWuhyA+IHJhb1wgOwor57695YyWID4gdWthXCA7CivntbXppqwgPiBlbWFcIDsKK+WnlOajhCA+IGlraVwgOwor5aWH55WwID4ga2lpXCA7CivkuIvkvY0gPiBrYWlcIDsKK+mYv+irmyA+IGF5dVwgOwor5aiB5YSAID4gaWdpXCA7Civlo4rnlr0gPiBlc29cIDsKK+eDj+iziiA+IGlrYVwgOwor5aeU5ZOhID4gaWluXCA7Civpm6jmsJcgPiB1a2lcIDsKK+WnlOS7mCA+IGlmdVwgOwor6Zuo5pyfID4gdWtpXCA7Civoqp7mhI8gPiBnb2lcIDsKK+iqnuW9mSA+IGdvaVwgOwor5aWz5Yy7ID4gam9pXCA7CivlpoLkvZUgPiBkb3VcIDsKK+mbqOW+jCA+IHVnb1wgOwor5pWF5oSPID4ga29pXCA7CivnhKHngrogPiBtdWlcIDsKK+ijnOmBuiA+IGhvaVwgOwor6Zuo5a2jID4gdWtpXCA7Civnt6/luqYgPiBpZG9cIDsKK+mYv+avlCA+IGFiaVwgOwor57at5oyBID4gaWppXCA7Civpm7LkuLkgPiB1bmlcIDsKK+eEoeaEjyA+IG11aVwgOwor6Zi/5a2XID4gYWppXCA7CivpmL/lqr0gPiBhbWFcIDsKK+eBsOaxgSA+IGFrdVwgOwor57W15ZuzID4gZXp1XCA7CivopovlvpcgPiBtaWVcIDsKK+mYv+WQvSA+IGF1blwgOwor54Sh5L2NID4gbXVpXCA7Civmu4vpm6ggPiBqaXVcIDsKK+WbsueigSA+IGlnb1wgOwor57SG5L2ZID4gdXlvXCA7CivooaPmnrYgPiBpa2FcIDsKK+aFiOmbqCA+IGppdVwgOwor5rW36auqID4gb2dvXCA7CivmhI/ppqwgPiBpYmFcIDsKK+Wbs+S8miA+IHp1ZVwgOwor5omA54K6ID4gc2VpXCA7CivmgqrpnLIgPiBvcm9cIDsKK+a1t+iDhiA+IHVuaVwgOwor5rW36ICBID4gZWJpXCA7CivmiJHmhI8gPiBnYWlcIDsKK+m6u+ihoyA+IG1haVwgOwor5oSP576pID4gaWdpXCA7CivonablpLcgPiBlem9cIDsKK+ehq+m7hCA+IGlvdVwgOwor5oWw5pKrID4gaWJ1XCA7Civlvq7pm6ggPiBiaXVcIDsKK+aEj+awlyA+IGlraVwgOwor6Yut5oSPID4gZWlpXCA7CivnqaLlpJogPiBldGFcIDsKK+WMu+mZoiA+IGlpblwgOwor56mi5ZyfID4gZWRvXCA7Civlj7PnuIEgPiB1ZW5cIDsKK+aFsOWuiSA+IGlhblwgOwor5Y2B6YeNID4gdG9lXCA7CivmhJrmhI8gPiBndWlcIDsKK+a1t+WlsyA+IGFtYVwgOwor5oSP5ZywID4gaWppXCA7CivmhI/lm7MgPiBpdG9cIDsKK+WPs+a0viA+IHVoYVwgOwor5oSP5ZGzID4gaW1pXCA7CivokI7pnaEgPiBpYmlcIDsKK+a1t+S6uiA+IGFtYVwgOwor5Yy756eRID4gaWthXCA7CivlubTprZogPiBheXVcIDsKK+WPpeaEjyA+IGt1aVwgOwor5Y+k5oSPID4ga29pXCA7CivpgbroqaAgPiBpZWlcIDsKK+ekuuWogSA+IGppaVwgOwor5rGf5oi4ID4gZWRvXCA7CivkvIrkupUgPiBpaVwgOwor5Zea5ZG8ID4gYWFcIDsKK+i7liA+IHRzdW11Z2lrdXJ1bWFcIDsKK+ezjiA+IHNlbmNoaW1laXRvcnVcIDsKK+eyqCA+IGhla3V0b21lZXRvcnVcIDsKK+eIqyA+IHRzdW1la2FubXVyaVwgOwor5b+EID4gcml0c3VzaGluYmVuXCA7Civlv5cgPiBrb2tvcm96YXNoaVwgOwor5pS/ID4gbWF0c3VyaWdvdG9cIDsKK+m2jiA+IGtpa3VpdGFkYWtpXCA7Civnso0gPiBtaXJpbWVpdG9ydVwgOwor57KBID4ga2lyb21laXRvcnVcIDsKK+extSA+IGRla2FtZWV0b3J1XCA7Civnq7AgPiBzZW5jaGlyaXR0b1wgOwor56uhID4gaGVrdXRvcml0dG9cIDsKK+erkyA+IG1pcmlyaXR0b3J1XCA7Civnq48gPiBraXJvcml0dG9ydVwgOwor55OwID4gZGVzaGlndXJhbXVcIDsKK+W3sSA+IHRzdWNoaW5vdG9cIDsKK+WxoSA+IHNoaWJhc2hpYmFcIDsKK+isgCA+IGhha2FyaWdvdG9cIDsKK+eGnyA+IHRzdWt1ZHp1a3VcIDsKK+WYtCA+IGt1Y2hpYmFzaGlcIDsKK+OAhSA+IGt1cmlrYWVzaGlcIDsKK+mFmyA+IHNha2Vub21vdG9cIDsKK+iplCA+IG1pa290b25vcmlcIDsKK+idnyA+IGhhcmluZXp1bWlcIDsKK+iQmSA+IGt1dGFiaXJlcnVcIDsKK+erlSA+IGRlc2hpcml0dG9cIDsKK+eUhSA+IHNlbmNoaWd1cmFcIDsKK+eTuCA+IGhla3V0b2d1cmFcIDsKK+eTsSA+IG1pcmlndXJhbXVcIDsKK+eTqSA+IGtpcm9ndXJhbXVcIDsKK+eTpyA+IGRla2FndXJhbXVcIDsKK+aThSA+IGhvc2hpaW1hbWFcIDsKK+WLhSA+IG1pa290b25vcmlcIDsKK+WAqSA+IHRzdXJhdHN1cmFcIDsKK+W5uyA+IG1hYm9yb3NoaVwgOwor5bGNID4gc2hpa2FiYW5lXCA7CivlraQgPiBtaW5hc2hpZ29cIDsKK+eMqiA+IGlub3NoaXNoaVwgOwor5ZSHID4ga3VjaGliaXJ1XCA7CivmqqMgPiBob2Jhc2hpcmFcIDsKK+apmCA+IHRhY2hpYmFuYVwgOwor5YW1ID4gdHN1d2Ftb25vXCA7CivpioAgPiBzaGlyb2dhbmVcIDsKK+mCqiA+IHlva29zaGltYVwgOwor6a+QID4gc3ViYXNoaXJpXCA7CivprpcgPiBrb25vc2hpcm9cIDsKK+mYnSA+IGtvemF0b2hlblwgOwor6LidID4ga3VydWJ1c2hpXCA7Civoo4MgPiBrYW1pc2hpbW9cIDsKK+ihpCA+IGtvcm9tb2hlblwgOwor56uNID4gZGVrYXJpdHRvXCA7Civniq0gPiBrZW1vbm9oZW5cIDsKK+aktCA+IHRvZG9tYXRzdVwgOwor5bWZID4geWFtYXNoaW5hXCA7CivlsLggPiBzaGlrYWJhbmVcIDsKK+WHqSA+IGtvZ2FyYXNoaVwgOwor5LqlID4gaW5vc2hpc2hpXCA7CivlvLEgPiBuYXlvbmF5b1wgOwor6LmyID4gdHN1a3ViYWlcIDsKK+WnkSA+IHNodXV0b21lXCA7CivloYogPiBrYXRhbWFyaVwgOwor5aCkID4gdHN1dHN1bWlcIDsKK+m8kyA+IHRzdWR6dW1pXCA7CivmupAgPiBtaW5hbW90b1wgOwor6baPID4gbml3YXRvcmlcIDsKK+WPoiA+IGt1c2FtdXJhXCA7CivljbAgPiBzaGlydXNoaVwgOwor6a2CID4gdGFtYXNoaWlcIDsKK+iFuCA+IGhhcmF3YXRhXCA7Civmna8gPiBzYWthenVraVwgOwor6Zu3ID4ga2FtaW5hcmlcIDsKK+mbgSA+IGthcmlnYW5lXCA7CivmmoEgPiBha2F0c3VraVwgOwor57SrID4gbXVyYXNha2lcIDsKK+aOjCA+IHRlbm9oaXJhXCA7CivmipEgPiBzb21vc29tb1wgOwor5oeQID4gZnV0b2tvcm9cIDsKK+m7myA+IG1heXV6dW1pXCA7CivpsakgPiBoYXRhaGF0YVwgOwor6bCwID4gaGF0YWhhdGFcIDsKK+mvkSA+IGthenVub2tvXCA7CivprYEgPiBzYWtpZ2FrZVwgOwor6ayjID4gdGF0ZWdhbWlcIDsKK+mkniA+IGhhbmFtdWtlXCA7CivpoJEgPiBrYXRha3VuYVwgOwor6Zq8ID4gaGF5YWJ1c2FcIDsKK+mZtSA+IG1pc2FzYWdpXCA7CivploogPiB0c3VrYWVydVwgOwor6Yu4ID4gbm9rb2dpcmlcIDsKK+i6viA+IHNoaXRzdWtlXCA7Civoq7ogPiBrb3Rvd2F6YVwgOwor6KSMID4gZnVuZG9zaGlcIDsKK+ibpCA+IGhhbWFndXJpXCA7CivokpwgPiBuaW4nJ25pa3VcIDsKK+iBviA+IG1pbWlzaGlpXCA7CivntrQgPiB0c3VkenVyaVwgOwor56+BID4gdGFrYW11cmFcIDsKK+etjSA+IHRha2Vub2tvXCA7CivnopEgPiBpc2hpYnVtaVwgOwor55m4ID4gbWl6dW5vdG9cIDsKK+a8oyA+IHNhemFuYW1pXCA7CivmpaAgPiBrdXN1bm9raVwgOwor5berID4ga2FuJyduYWdpXCA7Civlr78gPiBrb3RvYnVraVwgOwor5ZyVID4gdG9zaG9rYW5cIDsKK+W9oiA+IGthdGFjaGlcIDsKK+i9jSA+IHdhZGFjaGlcIDsKK+W3tyA+IGNoaW1hdGFcIDsKK+i3oyA+IGhhZGFzaGlcIDsKK+i2oyA+IG9tb211a2lcIDsKK+WxgCA+IHRzdWJvbmVcIDsKK+WvpyA+IG11c2hpcm9cIDsKK+eNuiA+IGthd2F1c29cIDsKK+eLkCA+IGtpdHN1bmVcIDsKK+WrgiA+IGFuaXlvbWVcIDsKK+ipsSA+IGhhbmFzaGlcIDsKK+eHlSA+IHRzdWJhbWVcIDsKK+a7tCA+IHNoaXp1a3VcIDsKK+a5liA+IG1penV1bWlcIDsKK+WJoyA+IHRzdXJ1Z2lcIDsKK+WHnSA+IHNoaWtvcmlcIDsKK+WGoCA+IGthbm11cmlcIDsKK+akvyA+IHRzdWJha2lcIDsKK+ainyA+IGZ1a3Vyb3VcIDsKK+mggiA+IGl0YWRha2lcIDsKK+afsSA+IGhhc2hpcmFcIDsKK+S/jiA+IG1hbmFpdGFcIDsKK+aelyA+IGhheWFzaGlcIDsKK+S+jSA+IHNhbXVyYWlcIDsKK+e+iiA+IGhpdHN1amlcIDsKK+adsSA+IGhpZ2FzaGlcIDsKK+aYlCA+IG11a2FzaGlcIDsKK+e1jCA+IHRhdGVpdG9cIDsKK+ettSA+IG11c2hpcm9cIDsKK+mMpiA+IG5pc2hpa2lcIDsKK+engSA+IHdhdGFzaGlcIDsKK+elrSA+IG1hdHN1cmlcIDsKK+ekviA+IHlhc2hpcm9cIDsKK+eiuiA+IHRhc2hpa2FcIDsKK+mCuCA+IHlhc2hpa2lcIDsKK+m9siA+IG11c2hpYmFcIDsKK+m7pSA+IGlyZXp1bWlcIDsKK+m2qyA+IHRzdWd1bWlcIDsKK+m1pCA+IGlrYXJ1Z2FcIDsKK+m1hiA+IGNoaWRvcmlcIDsKK+mwmCA+IG11cm9hamlcIDsKK+mvsyA+IHN1a2Vzb3VcIDsKK+msmCA+IGthdHN1cmFcIDsKK+mbqyA+IHNoaXp1a3VcIDsKK+mOuSA+IGthc3VnYWlcIDsKK+mLqSA+IGtpc3Nha2lcIDsKK+mLkiA+IGtpc3Nha2lcIDsKK+mKryA+IGthc3VnYWlcIDsKK+i5hCA+IGhpZHp1bWVcIDsKK+isrCA+IGF5YW1hcmlcIDsKK+iqvCA+IHlvc2hpbWlcIDsKK+iqriA+IHlhc2FzaGlcIDsKK+ilhSA+IGNoaWhheWFcIDsKK+igjiA+IHV3YWJhbWlcIDsKK+idriA+IG1hbXVzaGlcIDsKK+ichiA+IHNoaWppbWlcIDsKK+iZsSA+IHNoaXJhbWlcIDsKK+iYsCA+IGthdHN1cmFcIDsKK+iVviA+IHRzdWJvbWlcIDsKK+iThiA+IG11c2hpcm9cIDsKK+iJgCA+IGhhc2hpa2VcIDsKK+iBoiA+IHNoaWthdG9cIDsKK+e/vCA+IHRzdWJhc2FcIDsKK+exoSA+IHNoaW5zaGlcIDsKK+ekqyA+IHRzdWJ1dGVcIDsKK+ekjiA+IGlzaGl6dWVcIDsKK+edqyA+IG1hdHN1Z2VcIDsKK+eUpiA+IHlvbWlnYWVcIDsKK+eJnCA+IHVzaGloZW5cIDsKK+avriA+IG11c2hpcnVcIDsKK+avnyA+IG11c2hpcnVcIDsKK+alvyA+IGthdHN1cmFcIDsKK+ajlyA+IG5hdHN1bWVcIDsKK+aiuyA+IHNoaWtpbWlcIDsKK+afiiA+IGhpaXJhZ2lcIDsKK+abmSA+IGFrZWJvbm9cIDsKK+aZkiA+IHNhcmFzaGlcIDsKK+aXgSA+IHRzdWt1cmlcIDsKK+aMmCA+IG11c2hpcnVcIDsKK+aLsyA+IGtvYnVzaGlcIDsKK+aAuiA+IGtvcmFlcnVcIDsKK+W+pCA+IHRha2VzaGlcIDsKK+W3vSA+IHRhdHN1bWlcIDsKK+WjrCA+IG1penVub2VcIDsKK+WajyA+IGt1c2hhbWlcIDsKK+WZuiA+IGhhbmFzaGlcIDsKK+S/pCA+IG9tb2thZ2VcIDsKK+S4vCA+IGRvbmJ1cmlcIDsKK+OAgyA+IG9uYWppa3VcIDsKK+eevCA+IG1hYnV0YVwgOwor6L63ID4gc3ViZXJ1XCA7CivnnrMgPiBoaXRvbWlcIDsKK+i8qSA+IHlha2FyYVwgOwor55uyID4gbWVzaGlpXCA7Civou4ogPiBrdXJ1bWFcIDsKK+W6jyA+IHRzdWlkZVwgOwor55qGID4gbWluJyduYVwgOwor5bmVID4gdG9iYXJpXCA7CivluLMgPiB0b2JhcmlcIDsKK+W4nSA+IG1pa2Fkb1wgOwor5bemID4gaGlkYXJpXCA7Civnlr4gPiBzaGl0c3VcIDsKK+eVsyA+IHRhdGFtaVwgOwor55WgID4gaGF0YWtlXCA7CivnlZEgPiBoYXRha2VcIDsKK+eTpiA+IGthd2FyYVwgOwor5bKsID4gbWlzYWtpXCA7CivlsYogPiB0b2Rva2VcIDsKK+WwiiA+IG1pa290b1wgOwor5a6dID4gdGFrYXJhXCA7CivnjaMgPiBrZW1vbm9cIDsKK+eLvCA+IG9va2FtaVwgOwor54usID4gZG9pdHN1XCA7Civlq4kgPiBzaGl0c3VcIDsKK+iqoCA+IG1ha290b1wgOwor6Ki8ID4gYWthc2hpXCA7CivniLYgPiBjaGljaGlcIDsKK+iomyA+IG5hbWFyaVwgOwor5aiYID4gbXVzdW1lXCA7Civlp78gPiBzdWdhdGFcIDsKK+WmviA+IHdhcmF3YVwgOwor5aa5ID4gaW1vdXRvXCA7CivopoEgPiBrYW5hbWVcIDsKK+iltyA+IHRhc3VraVwgOwor54WZID4ga2VtdXJpXCA7CivopZYgPiBmdXN1bWFcIDsKK+WksSA+IHNoaXRzdVwgOwor6KO4ID4gaGFkYWthXCA7CivoorQgPiBoYWthbWFcIDsKK+iiiyA+IGZ1a3Vyb1wgOwor6KGjID4ga29yb21vXCA7Civln7cgPiBzaGl0c3VcIDsKK+a/lSA+IHNoaXRzdVwgOwor6J+LID4gc2hpdHN1XCA7Civln4MgPiBob2tvcmlcIDsKK+ifgCA+IHNodXRzdVwgOwor6bysID4gaXRhY2hpXCA7CivpvKAgPiBuZXp1bWlcIDsKK+WcnyA+IHRzdWNoaVwgOwor5ryGID4gdXJ1c2hpXCA7Civom7kgPiBzYW5hZ2lcIDsKK+ibmSA+IGthd2F6dVwgOwor5rm/ID4gc2hpdHN1XCA7CivlmaggPiB1dHN1d2FcIDsKK+a4ryA+IG1pbmF0b1wgOwor6JasID4ga3VzdXJpXCA7CivolqogPiB0YWtpZ2lcIDsKK+a2mSA+IG5hbWlkYVwgOwor6JaHID4gemVubWFpXCA7CivoloQgPiBzdXN1a2lcIDsKK+m0iSA+IGthcmFzdVwgOwor5Y+xID4gc2hpdHN1XCA7CivljqggPiBrdXJpeWFcIDsKK+WNuCA+IG9yb3NoaVwgOwor5Y21ID4gdGFtYWdvXCA7CivmraogPiBpYml0c3VcIDsKK+mtmiA+IHNha2FuYVwgOwor5Y2XID4gbWluYW1pXCA7CivljKAgPiB0YWt1bWlcIDsKK+aruyA+IHNha3VyYVwgOwor6Iu6ID4gaWNoaWdvXCA7Civli6IgPiBoYXp1bWlcIDsKK+aqnCA+IGhpbm9raVwgOwor6IiFID4gc2h1dXRvXCA7CivmpoogPiBzYWtha2lcIDsKK+WFiSA+IGhpa2FyaVwgOwor6aSoID4geWFrYXRhXCA7CivogrQgPiBzYWthbmFcIDsKK+ahnCA+IHNha3VyYVwgOwor5YCZID4gc291cm91XCA7Civpn78gPiBoaWJpa2lcIDsKK+afsyA+IHlhbmFnaVwgOwor5L+lID4ga3VydW1hXCA7Civkv6EgPiBtYWtvdG9cIDsKK+S/hCA+IG5pd2FrYVwgOwor5L+CID4ga2FrYXJpXCA7Civkvr8gPiB5b3N1Z2FcIDsKK+aelSA+IG1ha3VyYVwgOwor5py6ID4gdHN1a3VlXCA7Civku48gPiBob3Rva2VcIDsKK+abhyA+IGt1bW9yaVwgOwor6ZuAID4gc3V6dW1lXCA7CivkuqwgPiBtaXlha29cIDsKK+maoyA+IHRvbmFyaVwgOwor5LmzID4gY2hpY2hpXCA7CivkuZkgPiBraW5vdG9cIDsKK+S5jSA+IG5hZ2FyYVwgOwor5LiHID4geW9yb3p1XCA7CivkuIMgPiBzaGljaGlcIDsKK+e4gSA+IHlvc3VnYVwgOwor5LiBID4gaGlub3RvXCA7Civnt5EgPiBtaWRvcmlcIDsKK+e1oyA+IGthc3VyaVwgOwor57WGID4ga2l6dW5hXCA7CivnsL4gPiBzdWRhcmVcIDsKK+mPoSA+IGthZ2FtaVwgOwor6Y6WID4ga3VzYXJpXCA7CivnrZIgPiB0c3V0c3VcIDsKK+aNjCA+IHNhYmFraVwgOwor6Yu8ID4gaGFnYW5lXCA7Civnq6UgPiB3YXJhYmVcIDsKK+mLjyA+IGhhc2FtaVwgOwor6YqDID4gdHN1dHN1XCA7CivpiZsgPiBuYW1hcmlcIDsKK+aJiSA+IHRvYmlyYVwgOwor5omAID4gdG9rb3JvXCA7Civpg70gPiBtaXlha29cIDsKK+aCiSA+IHNoaXRzdVwgOwor6b2mID4gaGFndWtpXCA7CivpvIggPiBzdXBwb25cIDsKK+m7nCA+IGNodXRzdVwgOwor6bqpID4gZnVzdW1hXCA7CivpupMgPiBmdW1vdG9cIDsKK+m1pSA+IGtha2VzdVwgOwor6bSsID4gdWd1aXN1XCA7CivptI4gPiBrYW1vbWVcIDsKK+mxuCA+IHN1enVraVwgOwor6bGwID4gc2hpaXJhXCA7CivpsaogPiBzaGlpcmFcIDsKK+mwuSA+IGthdHN1b1wgOwor6bCvID4gaXdhc2hpXCA7CivpsK4gPiBpd2FzaGlcIDsKK+mwmiA+IGhhcmFrYVwgOwor6bCKID4gbmlzaGluXCA7CivpsIYgPiBzYXdhcmFcIDsKK+mvsSA+IHNoYWNoaVwgOwor6a+wID4gbmFtYXp1XCA7Civpr6ggPiBrdWppcmFcIDsKK+mvoyA+IHN1cnVtZVwgOwor6a6qID4gbWFndXJvXCA7CivprpYgPiBrYWppa2FcIDsKK+mugyA+IGhpcmFtZVwgOwor6a24ID4gbmFtYXp1XCA7CivpqK0gPiBzaGl0c3VcIDsKK+miqiA+IG9yb3NoaVwgOwor6Z6QID4ga29oYXplXCA7CivpnJ4gPiBrYXN1bWlcIDsKK+mcmSA+IG1pem9yZVwgOwor6ZubID4gaGl5b2tvXCA7CivpmrIgPiBzaGl0c3VcIDsKK+masCA+IHNoaXRzdVwgOwor6ZGiID4geWFzdXJpXCA7CivpkZUgPiBzaGl0c3VcIDsKK+mOuiA+IGhhYmFraVwgOwor6Yy6ID4ga2F6YXJpXCA7Civpio0gPiBjaGl0c3VcIDsKK+mKiiA+IHNodXRzdVwgOwor6YmlID4gc2h1dHN1XCA7CivpiYsgPiBrYW4nJ25hXCA7CivpiKggPiBoYWJha2lcIDsKK+mGqiA+IG1vcm9taVwgOwor6YOFID4gc2hpdHN1XCA7CivpgZYgPiBhcHBhcmVcIDsKK+i/miA+IHRvdGVtb1wgOwor6LuIID4geWFnYXRlXCA7Civou4UgPiB5YWdhdGVcIDsKK+i6uyA+IHV0c3VrZVwgOwor6LquID4gc2VnYXJlXCA7CivouLUgPiBrYWthdG9cIDsKK+iziSA+IHNodXRzdVwgOwor6LKtID4gc2hpdHN1XCA7CivosZEgPiBjaGl0c3VcIDsKK+iogSA+IGdvbmJlblwgOwor6KKgID4gY2hpdHN1XCA7Civoop8gPiBjaGl0c3VcIDsKK+ihviA+IGZ1c3VtYVwgOwor6KCNID4gc2Fzb3JpXCA7Civon4QgPiBjaGl0c3VcIDsKK+idqCA+IHNoaXRzdVwgOwor6JuNID4gaG90YXJ1XCA7CivolrogPiBuYXp1bmFcIDsKK+iVqCA+IHdhcmFiaVwgOwor6JS2ID4gc29ub2tvXCA7Civok6wgPiB5b21vZ2lcIDsKK+iSuiA+IHNoaXRzdVwgOwor6JKFID4gc3VrdW1vXCA7CivokoEgPiBzaHV0c3VcIDsKK+iOqCA+IHRhYmFrb1wgOwor6Iy4ID4ga2lub2tvXCA7CivohqMgPiBjaGl0c3VcIDsKK+iGoCA+IG5pa2F3YVwgOwor6IWfID4gY2hpdHN1XCA7CivnuoMgPiBrYXN1cmlcIDsKK+e4hSA+IG9kb3NoaVwgOwor57eVID4ga2FzdXJpXCA7CivntYAgPiBjaHV0c3VcIDsKK+ezmCA+IHN1a3Vtb1wgOwor57OSID4gaG9zaGlpXCA7Civnsq0gPiBzdWt1bW9cIDsKK+esgiA+IHV0c3Vib1wgOwor56uIID4ga2FtYWRvXCA7CivnqpIgPiBjaGl0c3VcIDsKK+eqiyA+IGNodXRzdVwgOwor56epID4gY2hpdHN1XCA7Civnp6QgPiBoYWthcmlcIDsKK+emiiA+IG1pc29naVwgOwor56WRID4gY2hpdHN1XCA7CivnpKkgPiBzaGl0c3VcIDsKK+ehsiA+IGhhemFtYVwgOwor56CmID4gdG9yaWRlXCA7CivnlKkgPiBzaHV0c3VcIDsKK+eTvCA+IHNhcmFrZVwgOwor55KxID4gc2hpdHN1XCA7CivnkZ8gPiBzaGl0c3VcIDsKK+eLuCA+IHRhbnVraVwgOwor54mDID4gb3VjaG91XCA7Civng48gPiBrYXJhc3VcIDsKK+a4miA+IG5hZ2lzYVwgOwor5raOID4geW9kYXJlXCA7Civms48gPiBjaHV0c3VcIDsKK+axoiA+IHRzdWNoaVwgOwor5rGAID4gbWlnaXdhXCA7CivmsLUgPiBzYW56dWlcIDsKK+apmSA+IGRhaWRhaVwgOwor5qi1ID4ga2lrb3JpXCA7CivmqK4gPiBob2t1c29cIDsKK+allCA+IGt1c2FiaVwgOwor5qWKID4geWFuYWdpXCA7CivmpLkgPiBzYXdhcmFcIDsKK+akqiA+IGt1bnVnaVwgOwor5qShID4ga3VudWdpXCA7CivmpJsgPiBtb21pamlcIDsKK+akmiA+IGt1bnVnaVwgOwor5qK6ID4gZnVtb3RvXCA7CivmobwgPiBzaGl0c3VcIDsKK+ahjiA+IHNoaXRzdVwgOwor5qCeID4gc2hpb3JpXCA7Civmn5IgPiBzaGl0c3VcIDsKK+adjiA+IHN1bW9tb1wgOwor5pqmID4ga295b21pXCA7CivmmYogPiBzaGl0c3VcIDsKK+aYtCA+IHN1YmFydVwgOwor5pGUID4gc2h1dHN1XCA7CivmjIMgPiBjaGl0c3VcIDsKK+aKtiA+IGNoaXRzdVwgOwor5omWID4gaGFtZXJ1XCA7CivmhpYgPiBuYW1hamlcIDsKK+aEsSA+IHNoaXRzdVwgOwor5b2gID4ga3V3YWt1XCA7CivlvY8gPiBrdXdha3VcIDsKK+W9jSA+IGt1d2FrdVwgOwor5b2JID4ga3V3YWt1XCA7Civlu5MgPiBrdXJ1d2FcIDsKK+W6oiA+IGNoaXRzdVwgOwor5bmfID4gbm9ib3JpXCA7CivluYkgPiB0YXp1bmFcIDsKK+W4mSA+IGNoaXRzdVwgOwor5bWQID4gYXJhc2hpXCA7CivltJIgPiBzaHV0c3VcIDsKK+WygCA+IHNodXRzdVwgOwor5a+hID4geWFtb21lXCA7Civlq58gPiBqaXl1a3VcIDsKK+WmtyA+IGNoaXRzdVwgOwor5aKOID4ga3V3YWt1XCA7CivloLIgPiBzaGl0c3VcIDsKK+WgmyA+IGhpeW9rdVwgOwor5Zy3ID4gYWt1dHN1XCA7CivlkrAgPiBzaHV0c3VcIDsKK+WQjiA+IGtpc2FraVwgOwor5Y+6ID4ga2FtYXN1XCA7CivljqAgPiBrYXdheWFcIDsKK+WOlCA+IHNoaXRzdVwgOwor5Y6AID4gc2hpdHN1XCA7CivljZsgPiBzaHV0c3VcIDsKK+WKlSA+IHNoaXRzdVwgOwor5YWcID4ga2FidXRvXCA7CivlhKggPiBzaGl0c3VcIDsKK+WBqiA+IGhpeW9rdVwgOwor5YCtID4geWFtYXRvXCA7CivkvoQgPiBzaGl0c3VcIDsKK+S8oSA+IGt1cnVtYVwgOwor5LudID4gZG91am91XCA7Civku4cgPiBrYXRha2lcIDsKK+OAkiA+IHl1dWJpblwgOwor6L+wID4ganV0c3VcIDsKK+W/hSA+IGhpdHN1XCA7CivovrsgPiB0c3VqaVwgOwor5b65ID4gdGV0c3VcIDsKK+eepSA+IGJldHN1XCA7CivlvowgPiBub2NoaVwgOwor5b6LID4gcml0c3VcIDsKK+edgCA+IGNoYWt1XCA7CivlvI8gPiBzaGlraVwgOwor55q6ID4gc2hpd2FcIDsKK+i6hSA+IGNob2t1XCA7Civnmb4gPiBoeWFrdVwgOwor55m9ID4gc2hpcm9cIDsKK+eZvCA+IGhvdHN1XCA7CivnmbogPiBoYXRzdVwgOwor5bm4ID4gc2FjaGlcIDsKK+W5tCA+IHRvc2hpXCA7CivnmaogPiBzaGFrdVwgOwor5be0ID4gdG9tb2VcIDsKK+eXhSA+IHlhbWFpXCA7CivnlaUgPiByeWFrdVwgOwor55WiID4gaGl0c3VcIDsKK+eVnCA+IGNoaWt1XCA7CivnlLogPiBtYWNoaVwgOwor55S3ID4gb3Rva29cIDsKK+eUsSA+IHlvc2hpXCA7Civls7YgPiBzaGltYVwgOwor6LOqID4gdGFjaGlcIDsKK+WyuCA+IGtpc2hpXCA7CivlsYggPiBrdXRzdVwgOwor5bC7ID4gc2hpcmlcIDsKK+WwuiA+IHNoYWt1XCA7Civlr6YgPiBqaXRzdVwgOwor5a+fID4gc2F0c3VcIDsKK+WvhiA+IG1pdHN1XCA7CivlrrQgPiB1dGFnZVwgOwor5a6iID4ga3lha3VcIDsKK+eOhyA+IHJpdHN1XCA7CivorZggPiBzaGlraVwgOwor54y+ID4ga2F0c3VcIDsKK+iqrCA+IHNldHN1XCA7CivoqbAgPiBraXRzdVwgOwor54i6ID4gamlqaWlcIDsKK+eItSA+IHNoYWt1XCA7CivoqK0gPiBzZXRzdVwgOwor54iqID4gdHN1bWVcIDsKK+iooyA+IGtldHN1XCA7Civop7ggPiBzaG9rdVwgOwor54etID4gc2hva3VcIDsKK+inpiA+IHNob2t1XCA7Civop5IgPiB0c3Vub1wgOwor5aa7ID4gdHN1bWFcIDsKK+eGsSA+IG5ldHN1XCA7Civopb8gPiBuaXNoaVwgOwor5aW0ID4geWF0c3VcIDsKK+WlqiA+IGRhdHN1XCA7CivlpI8gPiBuYXRzdVwgOwor54OIID4gcmV0c3VcIDsKK+ijgiA+IHJldHN1XCA7CivoorcgPiBhd2FzZVwgOwor54KOID4gaG9ub29cIDsKK+WigyA+IHNha2FpXCA7CivngbwgPiBzaGFrdVwgOwor5aG1ID4gY2hpcmlcIDsKK+WhmiA+IHRzdWthXCA7CivooZcgPiBtYWNoaVwgOwor5Z+6ID4gbW90b2lcIDsKK+a/tiA+IGthdHN1XCA7Civln5IgPiByYWNoaVwgOwor5Z+OID4gc2hpcm9cIDsKK+m9oiA+IHlvd2FpXCA7CivonZUgPiBzaG9rdVwgOwor5r2UID4ga2V0c3VcIDsKK+m8viA+IGliaWtpXCA7CivonIIgPiBoYWNoaVwgOwor6JyAID4gc2hva3VcIDsKK+m7kCA+IG1vY2hpXCA7Civmu5EgPiBrYXRzdVwgOwor5ruFID4gbWV0c3VcIDsKK+ialSA+IGthaWtvXCA7CivmuowgPiBoYXRzdVwgOwor6bm/ID4gc2hpa2FcIDsKK+iZqyA+IG11c2hpXCA7CivomZ4gPiBvc29yZVwgOwor5ZmCID4gdXdhc2FcIDsKK+a4hyA+IGthdHN1XCA7Civmt7UgPiBmdWNoaVwgOwor6beyID4gd2FzaGlcIDsKK+a3kSA+IHNodWt1XCA7Civll4cgPiBzaG9rdVwgOwor6ba0ID4gdHN1cnVcIDsKK+iWlCA+IHNob2t1XCA7CivllocgPiByYXRzdVwgOwor5ZWcID4gc2V0c3VcIDsKK+WUviA+IHRzdWJhXCA7CivmtLsgPiBrYXRzdVwgOwor6JSRID4gYmV0c3VcIDsKK+WTsiA+IHRldHN1XCA7Civms4kgPiBpenVtaVwgOwor6JOEID4gY2hpa3VcIDsKK+ayuSA+IGFidXJhXCA7CivmsqEgPiBib3RzdVwgOwor5ZKEID4gdG90c3VcIDsKK+axuiA+IGtldHN1XCA7CivokaYgPiB5b3NoaVwgOwor6JGXID4gY2hha3VcIDsKK+axgSA+IHRzdXl1XCA7CivpsIwgPiBkb2pvdVwgOwor5ZCJID4ga2ljaGlcIDsKK+WPrSA+IGhhdHN1XCA7Civlj6MgPiBrdWNoaVwgOwor5Y+UID4gc2h1a3VcIDsKK+auuiA+IHNhdHN1XCA7CivmrpYgPiBzaG9rdVwgOwor5Y20ID4ga3lha3VcIDsKK+WNmCA+IGhpdG9lXCA7CivljZIgPiBzb3RzdVwgOwor5Yy5ID4gaGl0c3VcIDsKK+asoSA+IHRzdWdpXCA7Civli78gPiBtb2NoaVwgOwor6auuID4gaGF0c3VcIDsKK+armyA+IGt1c2hpXCA7CivliqMgPiByZXRzdVwgOwor6IqdID4gc2hpYmFcIDsKK+WKmyA+IHJ5b2t1XCA7CivoibYgPiB0c3V5YVwgOwor5qmLID4gaGFzaGlcIDsKK+WIuSA+IHNldHN1XCA7CivliLcgPiBzYXRzdVwgOwor5qirID4ga2FzaGlcIDsKK+WIpSA+IGJldHN1XCA7CivliJ0gPiBoYXRzdVwgOwor5YiXID4gcmV0c3VcIDsKK+aokiA+IG1pdHN1XCA7CivoiIwgPiBzaGl0YVwgOwor5YiHID4gc2V0c3VcIDsKK+WIgyA+IHlhaWJhXCA7CivlhowgPiBzYXRzdVwgOwor5YaKID4gc2F0c3VcIDsKK+iFsCA+IGtvc2hpXCA7CivlhasgPiB5YXRzdVwgOwor5YWOID4gdXNhZ2lcIDsKK+WFgCA+IGtvdHN1XCA7CivohLEgPiBkYXRzdVwgOwor5qSNID4gc2hva3VcIDsKK+iEiCA+IG15YWt1XCA7CivppIUgPiBtb2NoaVwgOwor6aO+ID4gc2hva3VcIDsKK+mjryA+IG1lc2hpXCA7Civpo58gPiBzaG9rdVwgOwor5qKoID4gbmFzaGlcIDsKK+aioiA+IGtvenVlXCA7CivmopMgPiBhenVzYVwgOwor5YKRID4ga2V0c3VcIDsKK+iChSA+IHNodWt1XCA7CivogbcgPiBzaG9rdVwgOwor6aGNID4gaGl0YWlcIDsKK+WAnyA+IHNoYWt1XCA7CivpoIEgPiBwZWlqaVwgOwor5p+EID4gdHN1a2FcIDsKK+e/gSA+IG9raW5hXCA7Civpnq0gPiBtdWNoaVwgOwor6Z6EID4ga2FiYW5cIDsKK+adviA+IG1hdHN1XCA7CivpnbQgPiBrdXRzdVwgOwor572wID4gYmF0c3VcIDsKK+e9qiA+IHRzdW1pXCA7CivmnZ8gPiB0c3VrYVwgOwor5L2bID4gYnV0c3VcIDsKK+adkyA+IHNoYWt1XCA7CivkvY0gPiBrdXJhaVwgOwor57y6ID4ga2V0c3VcIDsKK+S8uCA+IG5vc2hpXCA7CivpnLIgPiB0c3V5dVwgOwor6ZywID4gYXJhcmVcIDsKK+acqyA+IG1hdHN1XCA7CivpnJwgPiBzaGltb1wgOwor5pyIID4gdHN1a2lcIDsKK+absiA+IGt5b2t1XCA7Civpm5wgPiB6YXRzdVwgOwor5LuZID4gc2VudG9cIDsKK+mbkSA+IHphdHN1XCA7Civpm4cgPiB5YXRvaVwgOwor5Lm+ID4gaG9zaGlcIDsKK+S5niA+IGtvdHN1XCA7CivkuLsgPiBudXNoaVwgOwor57iuID4gc2h1a3VcIDsKK+aYnyA+IGhvc2hpXCA7CivnuJ4gPiBzaGltYVwgOwor5LiLID4gc2hpdGFcIDsKK+e2sSA+IHRzdW5hXCA7CivntbYgPiB6ZXRzdVwgOwor57WQID4ga2V0c3VcIDsKK+e1giA+IG93YXJpXCA7Civmk40gPiBtaXNhb1wgOwor5pKuID4gc2F0c3VcIDsKK+mQtSA+IHRldHN1XCA7CivpkKEgPiB0ZXRzdVwgOwor56+JID4gY2hpa3VcIDsKK+evgCA+IGJ1c2hpXCA7CivnrrggPiBoYXNoaVwgOwor5o6lID4gc2V0c3VcIDsKK+aOoCA+IHJ5YWt1XCA7CivmjpggPiBrdXRzdVwgOwor566SID4gaG91a2lcIDsKK+aNqSA+IHJldHN1XCA7CivnrZQgPiBrb3RhZVwgOwor5ou2ID4gc2F0c3VcIDsKK+aLrSA+IHNoaWtpXCA7Civmi6wgPiBrYXRzdVwgOwor5ouZID4gc2V0c3VcIDsKK+aLlCA+IGJhdHN1XCA7Civnq4sgPiByaXRzdVwgOwor56uKID4gc2V0c3VcIDsKK+aLgiA+IGZ1dHN1XCA7CivmipwgPiBiYXRzdVwgOwor5oqJID4ga2V0c3VcIDsKK+eqgSA+IHRvdHN1XCA7CivnqbQgPiBrZXRzdVwgOwor6YmiID4gaGFjaGlcIDsKK+aJlSA+IGZ1dHN1XCA7CivpiYQgPiB0ZXRzdVwgOwor5oiqID4gc2V0c3VcIDsKK+aIpiA+IGlrdXNhXCA7Civph4sgPiBzaGFrdVwgOwor6YeIID4gc2hha3VcIDsKK+elnSA+IHNodWt1XCA7CivphYwgPiBzaGFrdVwgOwor5oWEID4gcml0c3VcIDsKK+aDmiA+IGtvdHN1XCA7CivpgZQgPiB0YWNoaVwgOwor6YGTID4gbWljaGlcIDsKK+mAuSA+IHRhdHN1XCA7CivpgJAgPiBjaGlrdVwgOwor6YCGID4gZ3lha3VcIDsKK+W/vSA+IGtvdHN1XCA7Civpvp4gPiBiZXRzdVwgOwor6b2nID4ga2V0c3VcIDsKK+m9lSA+IGtvdHN1XCA7CivpvYMgPiBrYXRzdVwgOwor6by/ID4gZ290c3VcIDsKK+m8jiA+IGthbmFlXCA7Civpu7sgPiBmdXRzdVwgOwor6bugID4ga2F0c3VcIDsKK+m6uSA+IGtvdWppXCA7Civpt6sgPiBzaHVrdVwgOwor6bepID4gaGV0c3VcIDsKK+m2uyA+IGtvdHN1XCA7CivptqEgPiBrYXRzdVwgOwor6baNID4gaXN1a2FcIDsKK+m2iSA+IHV6dXJhXCA7CivptZMgPiBob3RzdVwgOwor6bSwID4ga2F0c3VcIDsKK+m0qyA+IHNoaWdpXCA7CivptIMgPiBrZXRzdVwgOwor6bSCID4ga2V0c3VcIDsKK+myviA+IGh5YWt1XCA7CivpsqwgPiBrb2NoaVwgOwor6bGXID4gdXJva29cIDsKK+mxkCA+IHNodWt1XCA7CivpsYkgPiBiZXRzdVwgOwor6bGBID4gY2hpa3VcIDsKK+mwuyA+IHVuYWdpXCA7CivpsJIgPiBhd2FiaVwgOwor6bCPID4gaHlva3VcIDsKK+mwjSA+IGluYWRhXCA7CivpsIkgPiBoaWdhaVwgOwor6bCIID4ga2FyZWlcIDsKK+mvsiA+IGRvam91XCA7Civpr5IgPiBrb2NoaVwgOwor6a+PID4gYXNhcmlcIDsKK+murSA+IHNoYWtlXCA7CivprqggPiBzdXNoaVwgOwor6a6aID4ga2l0c3VcIDsKK+mukyA+IHN1c2hpXCA7CivprpEgPiBhd2FiaVwgOwor6a6FID4gaGl0c3VcIDsKK+muhCA+IGZ1dHN1XCA7CivprakgPiBoYWNoaVwgOwor6a2DID4gYmF0c3VcIDsKK+msuyA+IHNodWt1XCA7CivprKAgPiBrYXRzdVwgOwor6ayOID4gcmF0c3VcIDsKK+mruiA+IGdhdHN1XCA7Civpq7QgPiBmdXRzdVwgOwor6amWID4gdGV0c3VcIDsKK+mpjCA+IHNodWt1XCA7CivpqYsgPiBoYXRzdVwgOwor6aiEID4gcnlva3VcIDsKK+mnnCA+IGhpdHN1XCA7Civpp4MgPiBrZXRzdVwgOwor6aa5ID4gaml0c3VcIDsKK+mmnSA+IGhpdHN1XCA7CivpppsgPiBoYXRzdVwgOwor6aWGID4gaGl0c3VcIDsKK+mkriA+IHRldHN1XCA7CivppJ8gPiB0ZXRzdVwgOwor6aSdID4gc2hva3VcIDsKK+mkkSA+IGhvdHN1XCA7Civpo7YgPiBoaXRzdVwgOwor6aOtID4gY2hva3VcIDsKK+misyA+IGthdHN1XCA7CivporAgPiBoYXRzdVwgOwor6aKvID4gc2F0c3VcIDsKK+mhoyA+IHNodWt1XCA7CivpoKEgPiBraXRzdVwgOwor6aCKID4ga3lva3VcIDsKK+mfpCA+IGJhdHN1XCA7Civpn6EgPiBzYWthblwgOwor6Z+gID4gaGl0c3VcIDsKK+mfjSA+IGZ1dHN1XCA7Civpn4ggPiBiZXRzdVwgOwor6Z+DID4gZGF0c3VcIDsKK+meuCA+IGhpdHN1XCA7CivpnqggPiBrYXRzdVwgOwor6Z26ID4gbWF0c3VcIDsKK+mduSA+IGtldHN1XCA7CivpnaggPiBla3Vib1wgOwor6ZqJID4gZ2V0c3VcIDsKK+mZnyA+IGNob2t1XCA7CivpmKIgPiBnb3RzdVwgOwor6ZelID4gdGF0c3VcIDsKK+mXlSA+IGtldHN1XCA7Civpl5EgPiBnZXRzdVwgOwor6ZeLID4ga2V0c3VcIDsKK+mXiiA+IGthdHN1XCA7CivplqYgPiBzaHVrdVwgOwor6ZalID4gYmF0c3VcIDsKK+mSgyA+IHNob2t1XCA7CivpkaAgPiBzaGFrdVwgOwor6ZC9ID4gdGF0c3VcIDsKK+mQryA+IHNoYWt1XCA7CivpkI0gPiB0ZXRzdVwgOwor6Y+6ID4gaGF0c3VcIDsKK+mPiSA+IHNoeXV1XCA7Civpj4UgPiBzaHl1dVwgOwor6Y6nID4geW9yb2lcIDsKK+mOiyA+IGthdHN1XCA7CivpjaUgPiBrZXRzdVwgOwor6Y2YID4gc2F0c3VcIDsKK+mNlCA+IHRzdWJhXCA7CivpjKggPiBpa2FyaVwgOwor6YyYID4gdHN1bXVcIDsKK+mLqCA+IHRldHN1XCA7Civpi50gPiByZXRzdVwgOwor6YuNID4gaG90c3VcIDsKK+mKvSA+IGthdHN1XCA7CivpiqsgPiBzaG9rdVwgOwor6YqVID4gdGV0c3VcIDsKK+mJvSA+IHNodWt1XCA7CivpiZggPiBmdXRzdVwgOwor6Yi6ID4gZ3lva3VcIDsKK+mIuCA+IGhhdHN1XCA7CivpiK8gPiB0b3RzdVwgOwor6YikID4gaml0c3VcIDsKK+mIhSA+IGdldHN1XCA7Civph7AgPiBqaXRzdVwgOwor6YefID4gaGF0c3VcIDsKK+mGsSA+IGhhdHN1XCA7CivphpcgPiBoYXRzdVwgOwor6YaUID4gc2h5dXVcIDsKK+mGiiA+IHRldHN1XCA7CivphoEgPiByeW9rdVwgOwor6YWrID4gc2V0c3VcIDsKK+mFpiA+IGhhdHN1XCA7CivphJAgPiBjaGlrdVwgOwor6YKyID4gaGl0c3VcIDsKK+mAvCA+IGhpdHN1XCA7CivpgK8gPiByeW9rdVwgOwor6YCCID4ga2F0c3VcIDsKK+i/viA+IHJldHN1XCA7Civov60gPiB0ZXRzdVwgOwor6L6+ID4gdGF0c3VcIDsKK+i+tiA+IGNoYWt1XCA7CivovrUgPiBjaGFrdVwgOwor6L6wID4gdGF0c3VcIDsKK+i+pSA+IHNldHN1XCA7CivovqMgPiByYXRzdVwgOwor6L6cID4gdHN1bWlcIDsKK+i9lSA+IGthdHN1XCA7CivovYQgPiBrYXRzdVwgOwor6Ly/ID4ga29zaGlcIDsKK+i8tSA+IGthdHN1XCA7CivovJ8gPiB0ZXRzdVwgOwor6LyCID4ga3lva3VcIDsKK+i7viA+IHNob2t1XCA7Civou7cgPiBoYXRzdVwgOwor6LuPID4gZ2V0c3VcIDsKK+i7hCA+IHNob2t1XCA7CivourUgPiBuZXJhdVwgOwor6LqpID4ga3lha3VcIDsKK+i6giA+IHRhdHN1XCA7CivoubYgPiBrZXRzdVwgOwor6LmpID4gaGV0c3VcIDsKK+i5nCA+IHNodWt1XCA7CivouZkgPiBzaHVrdVwgOwor6LmVID4gaGl0c3VcIDsKK+i4pyA+IHNodWt1XCA7CivouIsgPiBreWFrdVwgOwor6Le8ID4ga3lva3VcIDsKK+i3myA+IGJpa2tvXCA7Civot4wgPiB0ZXRzdVwgOwor6LeLID4gYmF0c3VcIDsKK+i3gCA+IGdldHN1XCA7CivotrkgPiBrZXRzdVwgOwor6La3ID4ga290c3VcIDsKK+i2niA+IHNoYWt1XCA7CivotpAgPiBrZXRzdVwgOwor6LWpID4ga3lva3VcIDsKK+i0liA+IHNob2t1XCA7Civos6EgPiBzaG9rdVwgOwor6LKcID4ga3lha3VcIDsKK+ixgSA+IGthdHN1XCA7Civorp4gPiBnZXRzdVwgOwor6K2OID4ga2l0c3VcIDsKK+isliA+IHNob2t1XCA7CivorJQgPiBneWFrdVwgOwor6KyQID4gaGl0c3VcIDsKK+irlCA+IHNodWt1XCA7CivoqrMgPiBrdXRzdVwgOwor6KqqID4gc2V0c3VcIDsKK+iqliA+IGhvdHN1XCA7CivoqacgPiBzYXRzdVwgOwor6KmYID4ga3V0c3VcIDsKK+iopSA+IHRvdHN1XCA7CivoqJYgPiBraXRzdVwgOwor6KiQID4ga2V0c3VcIDsKK+insSA+IGhpdHN1XCA7Civop5YgPiBrZXRzdVwgOwor6KaVID4gYmV0c3VcIDsKK+ilrSA+IGtldHN1XCA7CivopaogPiBiZXRzdVwgOwor6KWhID4gc2hva3VcIDsKK+ilkiA+IGhldHN1XCA7CivopY8gPiBoYXRzdVwgOwor6KWNID4gemF0c3VcIDsKK+ikuyA+IHNldHN1XCA7CivopJAgPiBrYXRzdVwgOwor6KSEID4gdHN1bWFcIDsKK+ijsCA+IHRhdHN1XCA7CivoorogPiBrZXRzdVwgOwor6KKcID4gYmF0c3VcIDsKK+iimiA+IGhhdHN1XCA7CivoobUgPiBqaXRzdVwgOwor6KGLID4ga3lva3VcIDsKK+ihiiA+IGJldHN1XCA7CivooLwgPiBreWFrdVwgOwor6KCeID4gc2V0c3VcIDsKK+igmyA+IGJldHN1XCA7CivooJggPiBzZXRzdVwgOwor6KCLID4gc2hva3VcIDsKK+ifmSA+IHNob2t1XCA7CivonbIgPiByYXRzdVwgOwor6J2OID4ga2F0c3VcIDsKK+icnCA+IG1pdHN1XCA7CivonIcgPiB0ZXRzdVwgOwor6JulID4gc2V0c3VcIDsKK+iboyA+IGtpdHN1XCA7Civom54gPiBrYXRzdVwgOwor6JuaID4gcmV0c3VcIDsKK+iZkCA+IGd5YWt1XCA7CivomJYgPiBnZXRzdVwgOwor6JecID4gYWthemFcIDsKK+iXmiA+IHNob2t1XCA7CivolqkgPiBzYXRzdVwgOwor6JalID4gc2hva3VcIDsKK+iWmyA+IHNldHN1XCA7CivolpggPiB0YXRzdVwgOwor6JaKID4gYXphbWlcIDsKK+iVnyA+IGhpdHN1XCA7CivolZ0gPiBzZXRzdVwgOwor6JWAID4ga3lva3VcIDsKK+iUpiA+IHRzdXRhXCA7CivolKQgPiBiaXRzdVwgOwor6JSOID4gc2V0c3VcIDsKK+iTvyA+IHNodWt1XCA7Civok70gPiBoaXRzdVwgOwor6JOHID4ga290c3VcIDsKK+iRpyA+IGhvdHN1XCA7CivokZwgPiBrYXRzdVwgOwor6JGWID4gdG90c3VcIDsKK+iRjiA+IHJpdHN1XCA7Civoj70gPiBzaHVrdVwgOwor6I+dID4gaGF0c3VcIDsKK+iPiSA+IHJ5b2t1XCA7Civojq0gPiBzZXRzdVwgOwor6I6CID4gaGV0c3VcIDsKK+iNuCA+IGhvdHN1XCA7CivojZcgPiBzaG9rdVwgOwor6IyoID4gaWJhcmFcIDsKK+iMoiA+IHJldHN1XCA7CivojJwgPiBha2FuZVwgOwor6IyNID4ga3lva3VcIDsKK+iMiSA+IG1hdHN1XCA7CivojIcgPiBoYXRzdVwgOwor6IyBID4gc2F0c3VcIDsKK+iMgCA+IGh1dHN1XCA7Civoi74gPiBoaXRzdVwgOwor6Iu2ID4gZGV0c3VcIDsKK+iKtCA+IGJ1dHN1XCA7Civoio0gPiBzaGFrdVwgOwor6Im0ID4gaG90c3VcIDsKK+iIsyA+IGNoaWt1XCA7CivoiJ0gPiBrYXRzdVwgOwor6IiEID4gc2hha3VcIDsKK+iIgyA+IHNoYWt1XCA7Civoh7ggPiBqaXRzdVwgOwor6IeyID4gZ2V0c3VcIDsKK+iHhSA+IHNob2t1XCA7CivohbcgPiBoeW9rdVwgOwor6IWvID4gdG90c3VcIDsKK+iEqyA+IGRhdHN1XCA7CivohJYgPiBob3RzdVwgOwor6ISJID4gbXlha3VcIDsKK+iDiCA+IGhhdHN1XCA7CivogrggPiBraXRzdVwgOwor6IKtID4gZG90c3VcIDsKK+iCiyA+IGFiYXJhXCA7CivogZIgPiBrYXRzdVwgOwor6IGAID4gc2hva3VcIDsKK+iAiyA+IHRldHN1XCA7CivogIogPiB0ZXRzdVwgOwor576vID4ga2F0c3VcIDsKK+e+jSA+IHRhdHN1XCA7CivnvbggPiBiYXRzdVwgOwor57y9ID4gaGFjaGlcIDsKK+e8vCA+IGtldHN1XCA7CivnuoggPiBrZXRzdVwgOwor57mzID4gc2hha3VcIDsKK+e5mCA+IGtpdHN1XCA7CivnuKwgPiBzaHVrdVwgOwor57ekID4gc2V0c3VcIDsKK+e2vSA+IHNoYWt1XCA7CivntqAgPiByeW9rdVwgOwor57aNID4gaHV0c3VcIDsKK+e1sCA+IHRldHN1XCA7CivntZwgPiBrZXRzdVwgOwor57WXID4ga290c3VcIDsKK+e1lSA+IHpldHN1XCA7CivntY8gPiBzZXRzdVwgOwor57S8ID4gaHV0c3VcIDsKK+e0siA+IHNldHN1XCA7CivntLEgPiBodXRzdVwgOwor57SuID4gc2F0c3VcIDsKK+e0hyA+IGtvdHN1XCA7Civns7UgPiBnZXRzdVwgOwor57OPID4gc2V0c3VcIDsKK+ezgCA+IGtvdWppXCA7CivnspsgPiBzaHVrdVwgOwor57KSID4gdHN1YnVcIDsKK+exmSA+IHJ5b2t1XCA7Civnr74gPiBiZXRzdVwgOwor56+zID4gaGl0c3VcIDsKK+evqSA+IGZ1cnVpXCA7Civnr6UgPiByaXRzdVwgOwor5667ID4gcml0c3VcIDsKK+eumiA+IHNhdHN1XCA7CivnrZEgPiBjaGlrdVwgOwor562PID4gaWthZGFcIDsKK+etgSA+IGt5b2t1XCA7CivnrL0gPiBzb3VrZVwgOwor56ywID4gaHV0c3VcIDsKK+eslCA+IGhpdHN1XCA7CivnrI8gPiBrb3RzdVwgOwor56utID4ga2V0c3VcIDsKK+eqoyA+IHNvdHN1XCA7Civnqp8gPiBrdXRzdVwgOwor56qDID4gc2V0c3VcIDsKK+epoSA+IHNob2t1XCA7CivnqLcgPiBzaG9rdVwgOwor56itID4ga2F0c3VcIDsKK+eoqyA+IGh5b2t1XCA7CivnqKEgPiBzb3RzdVwgOwor56iZID4gY2hva3VcIDsKK+enuCA+IGthdHN1XCA7Civnp6sgPiBqb3RzdVwgOwor56ejID4gbWF0c3VcIDsKK+enoSA+IGhhdHN1XCA7Civnpp0gPiBzaG9rdVwgOwor56WTID4gZnV0c3VcIDsKK+ejhiA+IGthdHN1XCA7Civnor8gPiBzb3RzdVwgOwor56KjID4ga2V0c3VcIDsKK+einyA+IGthdHN1XCA7Civnoo8gPiBzaGFrdVwgOwor56GIID4ga2F0c3VcIDsKK+efuyA+IGtvdHN1XCA7Civnn5ogPiBzaG9rdVwgOwor55+XID4gY2hpa3VcIDsKK+eeriA+IHRldHN1XCA7Civnno4gPiBrYXRzdVwgOwor552wID4gYmF0c3VcIDsKK+ecnCA+IGJhdHN1XCA7Civnm4sgPiBoYXRzdVwgOwor55qtID4gc2hha3VcIDsKK+ealSA+IGh5b2t1XCA7CivnmowgPiBiYXRzdVwgOwor55m2ID4gaGF0c3VcIDsKK+eZpCA+IHNldHN1XCA7CivnmZ8gPiBoZXRzdVwgOwor55inID4gZ3lha3VcIDsKK+eYnCA+IHNob2t1XCA7CivnmIwgPiByYXRzdVwgOwor55iEID4gc2hha3VcIDsKK+eYgyA+IHNob2t1XCA7Civnl4YgPiBkYXRzdVwgOwor55aZID4gZ2l0c3VcIDsKK+eVtyA+IHRldHN1XCA7CivnlacgPiByeWFrdVwgOwor55WfID4gc2hva3VcIDsKK+eUtiA+IGZ1dHN1XCA7Civnk54gPiB0ZXRzdVwgOwor55GuID4gcml0c3VcIDsKK+ePvyA+IHNodWt1XCA7Civnj4wgPiBoaXRzdVwgOwor546mID4ga2V0c3VcIDsKK+eOpSA+IGdldHN1XCA7CivnjpAgPiBoYXRzdVwgOwor546DID4ga3lha3VcIDsKK+eNpiA+IGthdHN1XCA7CivnjZ0gPiBraXRzdVwgOwor542XID4ga2V0c3VcIDsKK+eMsiA+IGthdHN1XCA7CivnjJ0gPiBzb3RzdVwgOwor54uYID4ga2V0c3VcIDsKK+eKriA+IGhhdHN1XCA7CivniJ0gPiBzaGFrdVwgOwor54iNID4gc2hha3VcIDsKK+eIhyA+IHpldHN1XCA7Civnh7UgPiB0YXRzdVwgOwor54aaID4gaGl0c3VcIDsKK+eFniA+IHNhdHN1XCA7CivnhK8gPiBzaGFrdVwgOwor54SrID4gemV0c3VcIDsKK+eElCA+IGhvbm9vXCA7CivnhI8gPiBreW9rdVwgOwor54OVID4ga2V0c3VcIDsKK+eAkiA+IHNob2t1XCA7Civmv4cgPiBzaG9rdVwgOwor5r6IID4gdGV0c3VcIDsKK+a9miA+IHNodWt1XCA7CivmvZEgPiBoYXRzdVwgOwor5r2PID4ga2V0c3VcIDsKK+a7rSA+IGhpdHN1XCA7Civmu4AgPiBjaGlrdVwgOwor5rqtID4gc2hva3VcIDsKK+a6pyA+IHJpdHN1XCA7CivmuoIgPiByYXRzdVwgOwor5rmiID4gaHlva3VcIDsKK+a5nCA+IHNob2t1XCA7CivmuLQgPiBrYXRzdVwgOwor5rirID4gc2V0c3VcIDsKK+a4pCA+IGJvdHN1XCA7CivmuIsgPiBzaGlidVwgOwor5reIID4ga290c3VcIDsKK+a2hSA+IG5ldHN1XCA7CivmtawgPiBrYWlyaVwgOwor5rWhID4gaG90c3VcIDsKK+a1mSA+IHNldHN1XCA7CivmtK8gPiBrZXRzdVwgOwor5rSrID4ga3lva3VcIDsKK+a0jCA+IHJldHN1XCA7Civms6wgPiBrZXRzdVwgOwor5rOQID4gcnlva3VcIDsKK+azjCA+IGhpdHN1XCA7CivmsrggPiBmdXRzdVwgOwor5rKrID4gbWF0c3VcIDsKK+aylSA+IGJ1dHN1XCA7CivmspIgPiBib3RzdVwgOwor5rGUID4ga2l0c3VcIDsKK+awnyA+IGh1dHN1XCA7CivmsJIgPiBrZXRzdVwgOwor5q6bID4ga3lva3VcIDsKK+augSA+IGJvdHN1XCA7Civmrb8gPiBib3RzdVwgOwor5q2+ID4gYm90c3VcIDsKK+atvSA+IHNldHN1XCA7CivmrbkgPiBnYXRzdVwgOwor5q2gID4gc2V0c3VcIDsKK+atmCA+IGt1dHN1XCA7CivmrYcgPiBrZXRzdVwgOwor5qy7ID4ga3V0c3VcIDsKK+asryA+IGtpdHN1XCA7CivmrKAgPiBrZXRzdVwgOwor5qyfID4gdHN1a2lcIDsKK+arsSA+IGdldHN1XCA7Civmq4EgPiBtaXRzdVwgOwor5qqrID4gc2F0c3VcIDsKK+aqiyA+IGt5b2t1XCA7CivmqZsgPiBrZXRzdVwgOwor5qi0ID4gc2hva3VcIDsKK+anrSA+IHNodWt1XCA7Civmpr4gPiBrb3RzdVwgOwor5qaNID4gc2V0c3VcIDsKK+amgCA+IGtvbWFpXCA7Civmpb4gPiBoYXpvdVwgOwor5qWsID4ga2V0c3VcIDsKK+akoyA+IHNoaWRlXCA7CivmpIogPiBzb3RzdVwgOwor5qSEID4gc2V0c3VcIDsKK+ajgSA+IHNldHN1XCA7CivmorIgPiBzZXRzdVwgOwor5qGyID4gaG90c3VcIDsKK+ahsCA+IGthdHN1XCA7CivmoZsgPiBrYXNlaVwgOwor5qGUID4ga2l0c3VcIDsKK+ahgCA+IGtldHN1XCA7CivmoLsgPiBjaG9rdVwgOwor5qCwID4gaGF0c3VcIDsKK+agqCA+IHNldHN1XCA7CivmoIMgPiB0b2NoaVwgOwor5p+3ID4gc2h1a3VcIDsKK+afriA+IHRvdHN1XCA7CivmnbAgPiBrZXRzdVwgOwor5p2kID4gdG9jaGlcIDsKK+adjCA+IGdvdHN1XCA7CivmnYEgPiBlYnVyaVwgOwor5py4ID4gcnlva3VcIDsKK+acsyA+IGhhdHN1XCA7CivmnK8gPiBqdXRzdVwgOwor5pyuID4ganV0c3VcIDsKK+achSA+IGtldHN1XCA7Civmm7cgPiBrYXRzdVwgOwor5pq8ID4gaGV0c3VcIDsKK+aasSA+IGppdHN1XCA7CivmmaIgPiBzZXRzdVwgOwor5pi1ID4gaml0c3VcIDsKK+aYsyA+IHRldHN1XCA7CivmmKkgPiBiYXRzdVwgOwor5piiID4gaG90c3VcIDsKK+aYkiA+IGtvdHN1XCA7Civml60gPiBhc2FoaVwgOwor5parID4gc2hha3VcIDsKK+aWoyA+IHNodWt1XCA7CivmlaogPiB0YXRzdVwgOwor5pWgID4gdGF0c3VcIDsKK+aVlSA+IGNob2t1XCA7CivmlJ0gPiBzZXRzdVwgOwor5pO9ID4gcnlha3VcIDsKK+aTtyA+IGtldHN1XCA7Civmk6YgPiBzYXRzdVwgOwor5pK7ID4gdGFjaGlcIDsKK+aSpSA+IGJhY2hpXCA7CivmkqQgPiB0ZXRzdVwgOwor5pKHID4gaGV0c3VcIDsKK+aShSA+IGtldHN1XCA7CivmkYsgPiBzYXRzdVwgOwor5pGCID4gc2V0c3VcIDsKK+aQsCA+IGtvdHN1XCA7CivmkKkgPiBrZXRzdVwgOwor5pCQID4gY2hpa3VcIDsKK+aPsyA+IHNldHN1XCA7Civmj7IgPiBzZXRzdVwgOwor5o+sID4gdG90c3VcIDsKK+aPoCA+IHNhdHN1XCA7Civmj5EgPiBnZXRzdVwgOwor5o6fID4gb2tpdGVcIDsKK+aOhyA+IHRhdHN1XCA7Civmjb0gPiBzb3RzdVwgOwor5o26ID4gbmF0c3VcIDsKK+aNuCA+IHRvdHN1XCA7CivmjZ0gPiB0YXRzdVwgOwor5o2PID4gZGV0c3VcIDsKK+aNiyA+IHJhdHN1XCA7CivmjLYgPiBreW9rdVwgOwor5oypID4gdGF0c3VcIDsKK+aMiCA+IGtldHN1XCA7Civmi64gPiBraXRzdVwgOwor5ouJID4gcmF0c3VcIDsKK+aKuSA+IG1hdHN1XCA7CivmipAgPiBkb3RzdVwgOwor5oqIID4gZ2V0c3VcIDsKK+aJpCA+IGdvdHN1XCA7CivmiY4gPiBzYXRzdVwgOwor5oigID4gc2hva3VcIDsKK+aIniA+IGthdHN1XCA7CivmiJwgPiB0ZXRzdVwgOwor5oibID4ga2F0c3VcIDsKK+aIhCA+IGt5YWt1XCA7Civmh6QgPiBjaHl1dVwgOwor5oeOID4gc2hva3VcIDsKK+aGoCA+IGtldHN1XCA7Civmhp8gPiBzaG9rdVwgOwor5oaLID4gaGV0c3VcIDsKK+aEjiA+IGh5b2t1XCA7CivmhIogPiBoeW9rdVwgOwor5oSCID4gYm90c3VcIDsKK+aDmSA+IHRldHN1XCA7CivmgoogPiB0ZXRzdVwgOwor5oGkID4ganV0c3VcIDsKK+aAtSA+IGp1dHN1XCA7CivmgK0gPiBoaXRzdVwgOwor5oCrID4gZnV0c3VcIDsKK+aAmyA+IGRhdHN1XCA7Civlv5QgPiBraXRzdVwgOwor5b6PID4gY2hva3VcIDsKK+W9vyA+IGZ1dHN1XCA7CivlvbQgPiBzaGFrdVwgOwor5b2DID4gaGl0c3VcIDsKK+W9giA+IGhvdHN1XCA7CivlvLwgPiBoaXRzdVwgOwor5by7ID4gaGl0c3VcIDsKK+W8piA+IHRzdXJ1XCA7CivlvKEgPiBrdXRzdVwgOwor5buQID4gdW1heWFcIDsKK+W6giA+IHNob2t1XCA7Civlua8gPiBzZXRzdVwgOwor5bmtID4gYmV0c3VcIDsKK+W4tCA+IHNhdHN1XCA7CivluKUgPiBzb3RzdVwgOwor5biaID4gaG91a2lcIDsKK+W4lSA+IGJhdHN1XCA7Civlt78gPiBodXRzdVwgOwor5beAID4gc2F0c3VcIDsKK+W2sSA+IGthdHN1XCA7Civltq0gPiBnYXRzdVwgOwor5baNID4gc2hpaHVcIDsKK+W1vSA+IHRldHN1XCA7CivltbIgPiBnZXRzdVwgOwor5bWlID4ga2V0c3VcIDsKK+W1kSA+IGtldHN1XCA7CivltYIgPiByaXRzdVwgOwor5bSxID4gc2hva3VcIDsKK+W0qyA+IGt1dHN1XCA7CivltJsgPiBrdXRzdVwgOwor5bOgID4gdG91Z2VcIDsKK+WzmiA+IGJpdHN1XCA7Civls4wgPiB0ZXRzdVwgOwor5bKqID4gaHV0c3VcIDsKK+WypCA+IGtldHN1XCA7Civlso8gPiBndXdhblwgOwor5bKKID4gc2V0c3VcIDsKK+WyiSA+IGJ1dHN1XCA7CivlsbwgPiBnb3RzdVwgOwor5bG5ID4ga2l0c3VcIDsKK+WxtSA+IGdhdHN1XCA7CivlsbQgPiByeW9rdVwgOwor5bGrID4ga3lha3VcIDsKK+WxqSA+IGt5YWt1XCA7CivlsLMgPiBrb3RzdVwgOwor5bCXID4gc2h1a3VcIDsKK+WwkCA+IHNldHN1XCA7Civlr6MgPiBrb3RzdVwgOwor5a+UID4gc2hva3VcIDsKK+WuuyA+IG1pdHN1XCA7CivlrpMgPiBiaXRzdVwgOwor5a6KID4gdG90c3VcIDsKK+WtvSA+IGdldHN1XCA7CivlrbwgPiBnZXRzdVwgOwor5a2wID4gaXp1cmVcIDsKK+WtmyA+IGJvdHN1XCA7CivlrZIgPiBrZXRzdVwgOwor5a2RID4ga2V0c3VcIDsKK+WtjiA+IHNob2t1XCA7CivlrIcgPiBrdXdhaVwgOwor5ayCID4gc2hva3VcIDsKK+WrsyA+IGhldHN1XCA7Civlq6EgPiBjaGFrdVwgOwor5aqfID4gc2V0c3VcIDsKK+WpvCA+IHNoYWt1XCA7CivlqYwgPiBzaHVrdVwgOwor5aiOID4ga2V0c3VcIDsKK+WntCA+IHJldHN1XCA7Civlp6EgPiBrYXRzdVwgOwor5aeeID4ga2l0c3VcIDsKK+WmuiA+IGJhdHN1XCA7CivlprIgPiBkYXRzdVwgOwor5aawID4gY2hha3VcIDsKK+WmrSA+IGhhdHN1XCA7CivlpoEgPiBzaGFrdVwgOwor5aWvID4ga2F0c3VcIDsKK+WlkSA+IHNldHN1XCA7CivlpLcgPiBlYmlzdVwgOwor5aSsID4ga2V0c3VcIDsKK+WkqCA+IHNob2t1XCA7CivlpJkgPiBzaHVrdVwgOwor5aO3ID4gdHN1Ym9cIDsKK+WioiA+IGhhdHN1XCA7CivloowgPiBzaGFrdVwgOwor5aKGID4gdGV0c3VcIDsKK+WhmyA+IHJpdHN1XCA7CivloKggPiBnZXRzdVwgOwor5Z+0ID4gc2hva3VcIDsKK+WfsSA+IHNoeXV1XCA7Civln5MgPiByYWNoaVwgOwor5Z6kID4gdGV0c3VcIDsKK+WeoSA+IGhhdHN1XCA7CivlnpQgPiBzaHlvdVwgOwor5Z6PID4gcm90c3VcIDsKK+WegyA+IHJhdHN1XCA7CivlnbogPiBoYXRzdVwgOwor5Z25ID4ga2V0c3VcIDsKK+WdsiA+IGh1dHN1XCA7CivlnaogPiB0c3Vib1wgOwor5Zy/ID4ga2F0c3VcIDsKK+WcvSA+IGJvdHN1XCA7CivlnLQgPiBzaGFrdVwgOwor5ZyqID4gZ2l0c3VcIDsKK+WcoyA+IGt1dHN1XCA7Civlm64gPiBvdG9yaVwgOwor5ZurID4ga290c3VcIDsKK+WbkyA+IGtldHN1XCA7Civlm5EgPiBzaG9rdVwgOwor5ZuQID4gc2F0c3VcIDsKK+WbiyA+IHNhdHN1XCA7Civlmr0gPiBzZXRzdVwgOwor5Zq8ID4gc2hha3VcIDsKK+WaniA+IHRldHN1XCA7CivlmbYgPiBrYXRzdVwgOwor5ZmyID4ga3V3YWlcIDsKK+WZsSA+IGt5YWt1XCA7CivlmaAgPiB0YXRzdVwgOwor5ZmYID4ga2V0c3VcIDsKK+WZiCA+IHNodWt1XCA7CivlmYQgPiBraXRzdVwgOwor5ZixID4gc2hva3VcIDsKK+WYoCA+IGthdHN1XCA7CivlmI4gPiBrYXRzdVwgOwor5Ze2ID4gaGl0c3VcIDsKK+WXpyA+IGdhcm9uXCA7Civll6IgPiByYXRzdVwgOwor5ZeWID4gc2h1aHVcIDsKK+WXlSA+IHNob2t1XCA7Civll5AgPiBrYXRzdVwgOwor5ZarID4ga2l0c3VcIDsKK+WWnSA+IGthdHN1XCA7CivllowgPiBzaHVrdVwgOwor5ZaGID4gdGV0c3VcIDsKK+WVoCA+IHRldHN1XCA7CivllZIgPiBrb3RzdVwgOwor5ZS/ID4ga290c3VcIDsKK+WUsCA+IHNldHN1XCA7Civlk74gPiB5YXRzdVwgOwor5ZO3ID4gcmV0c3VcIDsKK+WTsyA+IHRhdHN1XCA7Civlk7EgPiBob3RzdVwgOwor5ZOrID4gc2hva3VcIDsKK+WTmCA+IHNhc291XCA7Civlk4sgPiB0ZXRzdVwgOwor5ZKxID4gc2F0c3VcIDsKK+WSrSA+IGtpdHN1XCA7CivlkqcgPiByZXRzdVwgOwor5ZKIID4gaHV0c3VcIDsKK+WShyA+IGhldHN1XCA7Civlkb4gPiB0YXRzdVwgOwor5ZGQID4gdG90c3VcIDsKK+WQtyA+IGtldHN1XCA7CivlkLYgPiB0b3RzdVwgOwor5ZChID4gaGl0c3VcIDsKK+WQiyA+IGluY2hpXCA7CivlkIMgPiBraXRzdVwgOwor5Y+VID4gdGV0c3VcIDsKK+WPkCA+IGhhdHN1XCA7CivljqkgPiB1bWF5YVwgOwor5Y6lID4ga2V0c3VcIDsKK+WNvCA+IGdvdHN1XCA7CivljbsgPiBreWFrdVwgOwor5Y25ID4ganV0c3VcIDsKK+WNqSA+IHNldHN1XCA7CivljaggPiBzZXRzdVwgOwor5Y2NID4gbWFuamlcIDsKK+WNhiA+IHNvdHN1XCA7CivljLEgPiBoaXRzdVwgOwor5YyrID4ga290c3VcIDsKK+WMpCA+IGt5YWt1XCA7CivljKIgPiBrb3RzdVwgOwor5YyDID4ga2F0c3VcIDsKK+WMgSA+IG1vbm1lXCA7Civli7ogPiBzaGFrdVwgOwor5Yu2ID4ga2V0c3VcIDsKK+WLqiA+IGt5YWt1XCA7Civli5YgPiBreWFrdVwgOwor5YuDID4gYm90c3VcIDsKK+WKvSA+IHJldHN1XCA7CivlirwgPiBrYXRzdVwgOwor5YqaID4gY2hha3VcIDsKK+WKhCA+IHNhdHN1XCA7CivlioIgPiBrZXRzdVwgOwor5YqAID4ga2F0c3VcIDsKK+WJnyA+IHRldHN1XCA7CivliY4gPiBzYXRzdVwgOwor5YmMID4gcmF0c3VcIDsKK+WIriA+IGthdHN1XCA7CivliKsgPiBiZXRzdVwgOwor5YicID4gaHV0c3VcIDsKK+WIliA+IGdldHN1XCA7CivliJQgPiBrZXRzdVwgOwor5YeTID4gcml0c3VcIDsKK+WGvSA+IHJldHN1XCA7CivlhrkgPiBodXRzdVwgOwor5YazID4ga2V0c3VcIDsKK+WEsiA+IG1vdWtlXCA7Civlg6ogPiBraXRzdVwgOwor5YOmID4gc2h5dXVcIDsKK+WDgSA+IHNldHN1XCA7CivlgqAgPiBoYXRzdVwgOwor5YKIID4gcml0c3VcIDsKK+WChCA+IGthdHN1XCA7CivlgbAgPiBzZXRzdVwgOwor5YGfID4ga3V3YXVcIDsKK+WBiCA+IGtldHN1XCA7CivlgJQgPiBrdXRzdVwgOwor5YCQID4gc2h1a3VcIDsKK+WAjyA+IHNodWt1XCA7CivlgIwgPiBrdXdhblwgOwor5L+2ID4gc2h1a3VcIDsKK+S+vCA+IGhvdHN1XCA7CivkvrsgPiB0YXRzdVwgOwor5L63ID4ga3lva3VcIDsKK+S+mSA+IGNob2t1XCA7CivkvpMgPiByb3RzdVwgOwor5L6QID4ga3lva3VcIDsKK+S9uCA+IGthdHN1XCA7CivkvbYgPiBraXRzdVwgOwor5L2qID4ga3V3YWlcIDsKK+S9miA+IHRldHN1XCA7CivkvZYgPiBoaXRzdVwgOwor5Ly1ID4ga3lva3VcIDsKK+S8syA+IHNldHN1XCA7CivkvJwgPiBzb3RzdVwgOwor5LyQID4gYmF0c3VcIDsKK+S7tCA+IGdhdHN1XCA7Civku6EgPiBraXRzdVwgOwor5LuIID4gaGF0c3VcIDsKK+S6nyA+IGt5b2t1XCA7Civkuo0gPiBjaG9rdVwgOwor5LqFID4ga2V0c3VcIDsKK+S5tCA+IHNldHN1XCA7CivkuYQgPiBzaGltZVwgOwor5LmAID4gZnV0c3VcIDsKK+S4vyA+IGhldHN1XCA7CivkuLIgPiBrdXNoaVwgOwor44CGID4gc2hpbWVcIDsKK+efsyA+IGtva3VcIDsKK+i/qyA+IGhha3VcIDsKK+i/hCA+IG1hZGVcIDsKK+W/gyA+IHNoaW5cIDsKK+i+vCA+IGtvbXVcIDsKK+W+tCA+IGNob3VcIDsKK+W+syA+IHRva3VcIDsKK+i+sSA+IGpva3VcIDsKK+eerSA+IHJ5b3VcIDsKK+eerCA+IHNodW5cIDsKK+W+qSA+IGZ1a3VcIDsKK+i+myA+IHNoaW5cIDsKK+W+lyA+IHRva3VcIDsKK+W9vCA+IGthcmVcIDsKK+W9uSA+IHlha3VcIDsKK+W9sSA+IGthZ2VcIDsKK+W9qyA+IGNob3VcIDsKK+edpiA+IGJva3VcIDsKK+edoyA+IHRva3VcIDsKK+W8viA+IHRhbWFcIDsKK+ecuiA+IGNob3VcIDsKK+W8tyA+IGt5b3VcIDsKK+W8tSA+IGNob3VcIDsKK+i8ryA+IHNodXVcIDsKK+ecniA+IHNoaW5cIDsKK+W8lCA+IGNob3VcIDsKK+eciSA+IG1heXVcIDsKK+i8gyA+IGtha3VcIDsKK+ebtCA+IGhpdGFcIDsKK+i7kiA+IG5va2lcIDsKK+ebiiA+IHlha3VcIDsKK+W7giA+IHNob3VcIDsKK+eavyA+IHNhcmFcIDsKK+W6tSA+IGlvcmlcIDsKK+eariA+IGthd2FcIDsKK+W6rSA+IG5pd2FcIDsKK+W6lyA+IG1pc2VcIDsKK+W6lSA+IHNva29cIDsKK+i6kSA+IHRla2lcIDsKK+i6jSA+IHlha3VcIDsKK+i6iiA+IGNodXVcIDsKK+W6iiA+IHl1a2FcIDsKK+eahCA+IG1hdG9cIDsKK+W6gSA+IGNob3VcIDsKK+W5uSA+IG1pa2lcIDsKK+i5tCA+IHNodXVcIDsKK+W5syA+IGhpcmFcIDsKK+i5oCA+IHNla2lcIDsKK+i5nyA+IHNla2lcIDsKK+eZliA+IGt1c2VcIDsKK+W5hSA+IGhhYmFcIDsKK+eZgiA+IHJ5b3VcIDsKK+W4uCA+IHRvd2FcIDsKK+W4rSA+IHNla2lcIDsKK+W4jCA+IG1hcmVcIDsKK+W4gyA+IG51bm9cIDsKK+W3uyA+IG1ha2lcIDsKK+i3syA+IGNob3VcIDsKK+W3nSA+IGthd2FcIDsKK+eXhyA+IHNob3VcIDsKK+i2syA+IGFzaGlcIDsKK+i2iiA+IGV0c3VcIDsKK+i2hSA+IGNob3VcIDsKK+i1qyA+IGtha3VcIDsKK+eVqyA+IGtha3VcIDsKK+i1pCA+IHNla2lcIDsKK+eVmSA+IHJ5dXVcIDsKK+eUuyA+IGtha3VcIDsKK+eUsyA+IHNhcnVcIDsKK+eUnyA+IG5hbWFcIDsKK+eUmiA+IHNoaW5cIDsKK+W0liA+IGdha2VcIDsKK+W0jiA+IHNha2lcIDsKK+WzsCA+IG1pbmVcIDsKK+izkSA+IHNoaW5cIDsKK+iziiA+IHpva3VcIDsKK+izgyA+IGNoaW5cIDsKK+iyrCA+IHNla2lcIDsKK+WxsSA+IHlhbWFcIDsKK+WxrCA+IHpva3VcIDsKK+WxniA+IHpva3VcIDsKK+WxkSA+IGt1enVcIDsKK+ixhiA+IG1hbWVcIDsKK+eQtCA+IGtvdG9cIDsKK+WwsSA+IHNodXVcIDsKK+WwkSA+IHNob3VcIDsKK+WwjyA+IHNob3VcIDsKK+WwhiA+IHNob3VcIDsKK+eQgyA+IHRhbWFcIDsKK+WvviA+IHRzdWlcIDsKK+WvuiA+IHRlcmFcIDsKK+WvtSA+IGNob3VcIDsKK+WvqSA+IHNoaW5cIDsKK+WvpSA+IHJ5b3VcIDsKK+WvoiA+IHNoaW5cIDsKK+ePjSA+IGNoaW5cIDsKK+WvjCA+IHRvbWlcIDsKK+WvgiA+IHNhYmlcIDsKK+WuvyA+IHlhZG9cIDsKK+WuriA+IG1peWFcIDsKK+WupCA+IG11cm9cIDsKK+WulyA+IHNodXVcIDsKK+eOliA+IGt5dXVcIDsKK+eOiSA+IGRhbWFcIDsKK+WuiSA+IHlhc3VcIDsKK+WuiCA+IG1vcmlcIDsKK+WuhSA+IHRha3VcIDsKK+iugCA+IHRva3VcIDsKK+WtuCA+IGdha3VcIDsKK+eNsiA+IGtha3VcIDsKK+itryA+IHlha3VcIDsKK+WtqyA+IG1hZ29cIDsKK+eNqCA+IGRva3VcIDsKK+WtpiA+IGdha3VcIDsKK+itiSA+IHNob3VcIDsKK+eNhCA+IGdva3VcIDsKK+eMvyA+IHNhcnVcIDsKK+eMqyA+IG5la29cIDsKK+isoSA+IHV0YWlcIDsKK+isjiA+IG5hem9cIDsKK+WsjCA+IGt5b3VcIDsKK+isgSA+IGV0c3VcIDsKK+eLuSA+IGt5b3VcIDsKK+eLrSA+IGt5b3VcIDsKK+eLgiA+IGt5b3VcIDsKK+WrgSA+IHlvbWVcIDsKK+iqvyA+IGNob3VcIDsKK+iqsCA+IGRhcmVcIDsKK+iqrSA+IHRva3VcIDsKK+iqgiA+IGNob3VcIDsKK+WpvyA+IG11a29cIDsKK+eJuSA+IHRva3VcIDsKK+ipsyA+IHNob3VcIDsKK+eJqSA+IG1vbm9cIDsKK+eJpyA+IGJva3VcIDsKK+eJmyA+IHVzaGlcIDsKK+iplSA+IGh5b3VcIDsKK+eJkiA+IGNob3VcIDsKK+WphiA+IGJhYmFcIDsKK+iouiA+IHNoaW5cIDsKK+iosyA+IHdha2VcIDsKK+ionyA+IHNob3VcIDsKK+WooCA+IHNoaW5cIDsKK+iolyA+IHRha3VcIDsKK+eIhiA+IGJha3VcIDsKK+WnqyA+IGhpbWVcIDsKK+eHkiA+IHNob3VcIDsKK+imuiA+IGtha3VcIDsKK+immiA+IGtha3VcIDsKK+WmmSA+IG15b3VcIDsKK+eGiiA+IGt1bWFcIDsKK+imhiA+IGZ1a3VcIDsKK+ilsiA+IHNodXVcIDsKK+eFpyA+IHNob3VcIDsKK+eFpCA+IHN1c3VcIDsKK+ilgSA+IGt5b3VcIDsKK+eEvCA+IHlha2lcIDsKK+WkqyA+IG90dG9cIDsKK+eEpiA+IHNob3VcIDsKK+WkoiA+IHl1bWVcIDsKK+WknCA+IHlvcnVcIDsKK+WkliA+IGhva2FcIDsKK+ikhyA+IGZ1a3VcIDsKK+ijviA+IHN1c29cIDsKK+WjsSA+IGljaGlcIDsKK+WjkyA+IGF0c3VcIDsKK+WjgSA+IGthYmVcIDsKK+eCuiA+IHRhbWVcIDsKK+eCrSA+IHN1bWlcIDsKK+WiqCA+IHN1bWlcIDsKK+iiliA+IHNvZGVcIDsKK+WikyA+IGhha2FcIDsKK+ihtyA+IGNodXVcIDsKK+ihqCA+IGh5b3VcIDsKK+WhqSA+IHNoaW9cIDsKK+ihnSA+IHNob3VcIDsKK+WhniA+IHNva3VcIDsKK+ihkyA+IHN1YmVcIDsKK+ihjCA+IGd5b3VcIDsKK+ihhiA+IHNodXVcIDsKK+igoiA+IHNodW5cIDsKK+eAnSA+IHJla2lcIDsKK+WggCA+IGhvcmlcIDsKK+a/ryA+IHRha3VcIDsKK+a/gSA+IGRha3VcIDsKK+a/gCA+IGdla2lcIDsKK+a+pCA+IHRha3VcIDsKK+WeoyA+IGtha2lcIDsKK+WeiyA+IGthdGFcIDsKK+a+hCA+IGNob3VcIDsKK+a9riA+IHNoaW9cIDsKK+idoCA+IGZ1a3VcIDsKK+idiSA+IHNlbWlcIDsKK+WdgiA+IHNha2FcIDsKK+a8vyA+IHNob3VcIDsKK+m8uyA+IGhhbmFcIDsKK+a8siA+IGNob3VcIDsKK+WcpyA+IGF0c3VcIDsKK+a8oCA+IGJha3VcIDsKK+WckiA+IHNvbm9cIDsKK+WciyA+IGtva3VcIDsKK+icgyA+IHNoaW5cIDsKK+a8giA+IGh5b3VcIDsKK+a8gSA+IHJ5b3VcIDsKK+WbvSA+IGt1bmlcIDsKK+m7tCA+IGthYmlcIDsKK+m7mSA+IG1va3VcIDsKK+m7mCA+IG1va3VcIDsKK+m7kiA+IGt1cm9cIDsKK+m7jSA+IGtpYmlcIDsKK+ibhyA+IGhlYmlcIDsKK+WbgSA+IHNob3VcIDsKK+a6uiA+IGRla2lcIDsKK+m6piA+IG11Z2lcIDsKK+m6pSA+IGJha3VcIDsKK+iapCA+IG5vbWlcIDsKK+a6oiA+IGl0c3VcIDsKK+a6nSA+IG1pem9cIDsKK+a6nCA+IHJ5dXVcIDsKK+iZjiA+IHRvcmFcIDsKK+a4rCA+IHNva3VcIDsKK+WYlyA+IHNob3VcIDsKK+a4iSA+IHNob3VcIDsKK+m3uSA+IHRha2FcIDsKK+a3sSA+IHNoaW5cIDsKK+iXpSA+IHlha3VcIDsKK+iXpCA+IGZ1amlcIDsKK+WXhSA+IGt5dXVcIDsKK+iXgSA+IHdhcmFcIDsKK+a2vCA+IHJ5b3VcIDsKK+a2nCA+IHRva3VcIDsKK+WWiyA+IGNob3VcIDsKK+WWiSA+IG5vZG9cIDsKK+a2iCA+IHNob3VcIDsKK+a1uCA+IHNoaW5cIDsKK+a1tCA+IHlva3VcIDsKK+a1nCA+IGhhbWFcIDsKK+a1miA+IHNodW5cIDsKK+iVjiA+IGt5b3VcIDsKK+WVhiA+IHNob3VcIDsKK+a1gSA+IHJ5dXVcIDsKK+a0siA+IHNodXVcIDsKK+WUsSA+IHNob3VcIDsKK+WUryA+IHRhZGFcIDsKK+iUrSA+IGthZ2VcIDsKK+a0pSA+IHNoaW5cIDsKK+a0niA+IGhvcmFcIDsKK+a0myA+IHJha3VcIDsKK+WUliA+IG9zaGlcIDsKK+iTriA+IGhhc3VcIDsKK+WTrSA+IGtva3VcIDsKK+mzqSA+IGhhdG9cIDsKK+azqCA+IGNodXVcIDsKK+mzpSA+IHRvcmlcIDsKK+azpSA+IGRvcm9cIDsKK+azoyA+IGt5dXVcIDsKK+azoiA+IG5hbWlcIDsKK+iTiyA+IGZ1dGFcIDsKK+aziiA+IGhha3VcIDsKK+azgSA+IGt5b3VcIDsKK+WSvSA+IG5vZG9cIDsKK+ayvCA+IG51bWFcIDsKK+iSuyA+IGpha3VcIDsKK+aysyA+IGthd2FcIDsKK+iSsiA+IGdhbWFcIDsKK+WSsyA+IHNla2lcIDsKK+WSsiA+IHNob3VcIDsKK+ayoiA+IHNhd2FcIDsKK+WSjiA+IGt5dXVcIDsKK+ayiCA+IGNoaW5cIDsKK+axsiA+IGt5dXVcIDsKK+WRqCA+IHNodXVcIDsKK+mxiCA+IHRhcmFcIDsKK+WRiiA+IGtva3VcIDsKK+axgiA+IGt5dXVcIDsKK+iQvSA+IG9jaGlcIDsKK+WQuCA+IGt5dXVcIDsKK+awtCA+IG1penVcIDsKK+awkSA+IHRhbWlcIDsKK+WQiiA+IGNob3VcIDsKK+WQhCA+IGtha3VcIDsKK+WPsyA+IG1pZ2lcIDsKK+iPryA+IGhhbmFcIDsKK+avrCA+IGt5dXVcIDsKK+WPrCA+IHNob3VcIDsKK+WPqyA+IGt5b3VcIDsKK+WPqiA+IHRhZGFcIDsKK+WPpCA+IGZ1cnVcIDsKK+WPliA+IHRvcmlcIDsKK+avkiA+IGRva3VcIDsKK+WPjiA+IHNodXVcIDsKK+avjSA+IGhhaGFcIDsKK+WPjCA+IGZ1dGFcIDsKK+iPiiA+IGtpa3VcIDsKK+WPiyA+IHRvbW9cIDsKK+WPiiA+IGt5dXVcIDsKK+WPiCA+IG1hdGFcIDsKK+auvyA+IGRvbm9cIDsKK+auuyA+IGthcmFcIDsKK+iOoiA+IHNheWFcIDsKK+WOnyA+IGhhcmFcIDsKK+WOhCA+IHlha3VcIDsKK+attCA+IHJla2lcIDsKK+WNsyA+IHNva3VcIDsKK+WNmiA+IGJha3VcIDsKK+WNlCA+IGt5b3VcIDsKK+WNkyA+IHRha3VcIDsKK+iNiSA+IGt1c2FcIDsKK+WNhyA+IG1hc3VcIDsKK+mssSA+IHV0c3VcIDsKK+assiA+IHlva3VcIDsKK+asnSA+IHV0c3VcIDsKK+msmiA+IGhpZ2VcIDsKK+WMmSA+IHNhamlcIDsKK+WMlyA+IGhva3VcIDsKK+iMjiA+IGt1a2lcIDsKK+iMhSA+IGtheWFcIDsKK+WMgiA+IG5pb3VcIDsKK+mrtyA+IG1hZ2VcIDsKK+mrrSA+IGhpZ2VcIDsKK+mrqiA+IGthbWlcIDsKK+iLpSA+IGpha3VcIDsKK+WLnSA+IHNob3VcIDsKK+mrmCA+IHRha2FcIDsKK+iLlCA+IGtva2VcIDsKK+iKsSA+IGhhbmFcIDsKK+mqqCA+IGhvbmVcIDsKK+WKqSA+IHN1a2VcIDsKK+WKhyA+IGdla2lcIDsKK+WKgyA+IGtha3VcIDsKK+WJvSA+IGh5b3VcIDsKK+WJsiA+IHdhcmlcIDsKK+iJryA+IHJ5b3VcIDsKK+WJpSA+IGhha3VcIDsKK+apnyA+IGhhdGFcIDsKK+mpmiA+IGt5b3VcIDsKK+WJiiA+IHNha3VcIDsKK+WJhyA+IHNva3VcIDsKK+WIuyA+IGtva3VcIDsKK+iIuSA+IGZ1bmVcIDsKK+WIuiA+IHRvZ2VcIDsKK+iItiA+IGhha3VcIDsKK+aoqiA+IHlva29cIDsKK+iInyA+IGZ1bmVcIDsKK+aomSA+IGh5b3VcIDsKK+iIjiA+IHNla2lcIDsKK+iIiiA+IGt5dXVcIDsKK+WIiCA+IGthcmlcIDsKK+aohSA+IG1vbWlcIDsKK+aogiA+IGdha3VcIDsKK+iHrSA+IHNodXVcIDsKK+iHoyA+IHNoaW5cIDsKK+mnkiA+IGtvbWFcIDsKK+mnkCA+IGNodXVcIDsKK+iHjSA+IGhlc29cIDsKK+anjCA+IHRzdWlcIDsKK+WHjCA+IHJ5b3VcIDsKK+anhyA+IG1ha2lcIDsKK+mmtCA+IHNodW5cIDsKK+WGrCA+IGZ1eXVcIDsKK+iGnSA+IGhpemFcIDsKK+iGnCA+IG1ha3VcIDsKK+ammyA+IHNoaW5cIDsKK+mmmSA+IGt5b3VcIDsKK+mmliA+IGt1YmlcIDsKK+WGhiA+IG1hcnVcIDsKK+WGhSA+IHVjaGlcIDsKK+alvSA+IHJha3VcIDsKK+iFuSA+IGhhcmFcIDsKK+altSA+IGdva3VcIDsKK+WFsSA+IGRvbW9cIDsKK+alrSA+IHdhemFcIDsKK+WFrSA+IHJva3VcIDsKK+WFqSA+IHJ5b3VcIDsKK+WFpSA+IG55dXVcIDsKK+WFgyA+IG1vdG9cIDsKK+iEoyA+IHNoaW5cIDsKK+WEnyA+IHNob3VcIDsKK+iEmiA+IGFzaGlcIDsKK+WEmCA+IG1hbWFcIDsKK+akjiA+IHRzdWlcIDsKK+iEiiA+IHNla2lcIDsKK+iEhyA+IHdha2lcIDsKK+iEhSA+IGt5b3VcIDsKK+iEgiA+IHlhbmlcIDsKK+iDvSA+IHlva3VcIDsKK+iDuCA+IG11bmVcIDsKK+ajriA+IG1vcmlcIDsKK+ajmiA+IHRhbmFcIDsKK+WDmiA+IHJ5b3VcIDsKK+WDlSA+IGJva3VcIDsKK+WDkSA+IGt5b3VcIDsKK+WCtyA+IHNob3VcIDsKK+iCqSA+IGthdGFcIDsKK+iCnSA+IGtpbW9cIDsKK+iCmCA+IGhpamlcIDsKK+WCmCA+IGthc2FcIDsKK+iCliA+IHNob3VcIDsKK+iCjCA+IGhhZGFcIDsKK+WCjSA+IHdha2lcIDsKK+iCiSA+IG5pa3VcIDsKK+aigyA+IHRla29cIDsKK+iBvSA+IGNob3VcIDsKK+WBvSA+IG5pc2VcIDsKK+iBtCA+IGNob3VcIDsKK+iBsyA+IHNob3VcIDsKK+WBtCA+IGhhdGFcIDsKK+iBmiA+IHNodXVcIDsKK+ahkCA+IGtpcmlcIDsKK+iBiiA+IHJ5b3VcIDsKK+ahgyA+IG1vbW9cIDsKK+ahgSA+IGtldGFcIDsKK+agvCA+IGtha3VcIDsKK+mguCA+IGt1YmlcIDsKK+iAsyA+IG1pbWlcIDsKK+mgrCA+IGhvaG9cIDsKK+mgmCA+IHJ5b3VcIDsKK+aglyA+IGt1cmlcIDsKK+iAhSA+IG1vbm9cIDsKK+mggyA+IGdvcm9cIDsKK+afvyA+IGtha2lcIDsKK+aftSA+IHNha3VcIDsKK+S/riA+IHNodXVcIDsKK+afmiA+IHl1enVcIDsKK+S/lyA+IHpva3VcIDsKK+aflCA+IG55dXVcIDsKK+e/kiA+IHNodXVcIDsKK+e/jCA+IHlva3VcIDsKK+S/gyA+IHNva3VcIDsKK+S+tSA+IHNoaW5cIDsKK+S+oSA+IGF0YWlcIDsKK+e+niA+IHNodXVcIDsKK+S+myA+IHRvbW9cIDsKK+memCA+IHNheWFcIDsKK+mdqSA+IGthd2FcIDsKK+S9nCA+IHNha3VcIDsKK+adliA+IHRzdWVcIDsKK+adkSA+IG11cmFcIDsKK+adjyA+IGFuenVcIDsKK+adiSA+IHN1Z2lcIDsKK+S8vSA+IHRvZ2lcIDsKK+actCA+IGJva3VcIDsKK+S8tCA+IHRvbW9cIDsKK+S8ryA+IGhha3VcIDsKK+acrSA+IGZ1ZGFcIDsKK+acrCA+IG1vdG9cIDsKK+mcpyA+IGtpcmlcIDsKK+S8kSA+IGt5dXVcIDsKK+S8jyA+IGZ1a3VcIDsKK+acjSA+IGZ1a3VcIDsKK+mchyA+IHNoaW5cIDsKK+mbsiA+IGt1bW9cIDsKK+S7siA+IG5ha2FcIDsKK+S7sCA+IGd5b3VcIDsKK+S7riA+IGthcmlcIDsKK+mbqiA+IHl1a2lcIDsKK+abnSA+IGJha3VcIDsKK+S7liA+IGhva2FcIDsKK+mbjCA+IG1lc3VcIDsKK+mbhiA+IHNodXVcIDsKK+S7hCA+IHNva3VcIDsKK+S6uiA+IGhpdG9cIDsKK+S6qyA+IGt5b3VcIDsKK+S6piA+IG1hdGFcIDsKK+aaoiA+IGNob3VcIDsKK+manCA+IHNob3VcIDsKK+mamSA+IHN1a2lcIDsKK+malCA+IGtha3VcIDsKK+e6jCA+IHpva3VcIDsKK+S6iyA+IGtvdG9cIDsKK+mahiA+IHJ5dXVcIDsKK+aahyA+IGhpbWFcIDsKK+mahSA+IHN1bWlcIDsKK+S6hiA+IHJ5b3VcIDsKK+mZuCA+IHJva3VcIDsKK+aZtiA+IHNob3VcIDsKK+mZsCA+IGthZ2VcIDsKK+aZnSA+IGNodXVcIDsKK+S5iyA+IGtvcmVcIDsKK+S5hSA+IGt5dXVcIDsKK+aZgiA+IHRva2lcIDsKK+aYvCA+IGhpcnVcIDsKK+S4uCA+IG1hcnVcIDsKK+aYrSA+IHNob3VcIDsKK+S4rSA+IG5ha2FcIDsKK+aYqCA+IHNha3VcIDsKK+e4piA+IHRhdGVcIDsKK+aYpSA+IGhhcnVcIDsKK+S4oSA+IHJ5b3VcIDsKK+e4myA+IGJha3VcIDsKK+e4iyA+IHRzdWlcIDsKK+S4iCA+IGRha2VcIDsKK+aYhyA+IHNob3VcIDsKK+e4hCA+IG5hd2FcIDsKK+S4gCA+IGljaGlcIDsKK+aXqCA+IG11bmVcIDsKK+aXlyA+IGhhdGFcIDsKK+aXjyA+IHpva3VcIDsKK+mXhyA+IHlhbWlcIDsKK+aXhSA+IHRhYmlcIDsKK+e2vyA+IHdhdGFcIDsKK+mWviA+IHlva3VcIDsKK+e2viA+IHJ5b3VcIDsKK+mWsiA+IGV0c3VcIDsKK+aWsCA+IHNoaW5cIDsKK+mWoyA+IGtha3VcIDsKK+aWpSA+IHNla2lcIDsKK+mWoiA+IHNla2lcIDsKK+e2miA+IHpva3VcIDsKK+aWmSA+IHJ5b3VcIDsKK+mWkSA+IGhpbWFcIDsKK+aWkSA+IG11cmFcIDsKK+aWjiA+IHRva2lcIDsKK+e1uSA+IGtpbnVcIDsKK+aVtSA+IHRla2lcIDsKK+e1piA+IGt5dXVcIDsKK+e1oSA+IHJha3VcIDsKK+aVmSA+IGt5b3VcIDsKK+aVkSA+IGt5dXVcIDsKK+e1hCA+IGt1bWlcIDsKK+e0uSA+IHNob3VcIDsKK+aUtiA+IHNodXVcIDsKK+e0syA+IHNoaW5cIDsKK+aUqyA+IGtha3VcIDsKK+e0oiA+IHNha3VcIDsKK+e0miA+IGt5dXVcIDsKK+e0mSA+IGthbWlcIDsKK+e0kCA+IGhpbW9cIDsKK+e0hSA+IGJlbmlcIDsKK+e0hCA+IHlha3VcIDsKK+aTsSA+IGtha3VcIDsKK+ezpyA+IHJ5b3VcIDsKK+aSsiA+IGJva3VcIDsKK+eypyA+IHNob3VcIDsKK+eypSA+IGtheXVcIDsKK+eyiSA+IGtvbmFcIDsKK+aSgyA+IGdla2lcIDsKK+aRuiA+IHNob3VcIDsKK+exsyA+IGtvbWVcIDsKK+exoCA+IGthZ29cIDsKK+exjSA+IHNla2lcIDsKK+mQmCA+IGthbmVcIDsKK+mQkCA+IHJ5b3VcIDsKK+aPuiA+IHl1cmlcIDsKK+evrSA+IGthZ29cIDsKK+evpCA+IHRva3VcIDsKK+aPjyA+IGJ5b3VcIDsKK+aOtCA+IGtha3VcIDsKK+eusSA+IGhha29cIDsKK+euoSA+IGt1ZGFcIDsKK+mNtSA+IGthZ2lcIDsKK+mNriA+IGNodXVcIDsKK+etliA+IHNha3VcIDsKK+mNiyA+IG5hYmVcIDsKK+etiyA+IHN1amlcIDsKK+etiSA+IG5hZG9cIDsKK+etiCA+IGhhenVcIDsKK+ethiA+IGZ1ZGVcIDsKK+aMviA+IGt5b3VcIDsKK+esuSA+IHNhc2FcIDsKK+mMsiA+IHJva3VcIDsKK+mMryA+IHNha3VcIDsKK+aMryA+IHNoaW5cIDsKK+esoCA+IGthc2FcIDsKK+eskSA+IHNob3VcIDsKK+mMkCA+IGtpcmlcIDsKK+aMhyA+IHl1YmlcIDsKK+eruSA+IHRha2VcIDsKK+ertiA+IGt5b3VcIDsKK+erryA+IGhhbmFcIDsKK+eroCA+IHNob3VcIDsKK+aLmyA+IHNob3VcIDsKK+aLjSA+IGhha3VcIDsKK+aKvSA+IGNodXVcIDsKK+eqriA+IGt5dXVcIDsKK+eqkyA+IG1hZG9cIDsKK+mKkSA+IHp1a3VcIDsKK+aKgCA+IHdhemFcIDsKK+aJvyA+IHNob3VcIDsKK+epuiA+IHNvcmFcIDsKK+eptiA+IGt5dXVcIDsKK+epjSA+IHNla2lcIDsKK+aJhyA+IG91Z2lcIDsKK+aIvyA+IGZ1c2FcIDsKK+mItCA+IHN1enVcIDsKK+eosSA+IHNob3VcIDsKK+eoriA+IHRhbmVcIDsKK+aInyA+IGdla2lcIDsKK+aImiA+IHNla2lcIDsKK+aIkSA+IHdhcmVcIDsKK+eojSA+IHlheWFcIDsKK+eoiyA+IGhvZG9cIDsKK+eogCA+IG1hcmVcIDsKK+ensCA+IHNob3VcIDsKK+mHoyA+IGNob3VcIDsKK+mHnSA+IGhhcmlcIDsKK+mHnCA+IGthbWFcIDsKK+mHmCA+IGt1Z2lcIDsKK+enkiA+IGJ5b3VcIDsKK+engCA+IHNodXVcIDsKK+emvyA+IGhhZ2VcIDsKK+aGqSA+IGlrb2lcIDsKK+mGpCA+IHNob3VcIDsKK+mGnCA+IHNodXVcIDsKK+aGlCA+IHNob3VcIDsKK+aGkSA+IGh5b3VcIDsKK+emjyA+IGZ1a3VcIDsKK+emhCA+IHJva3VcIDsKK+aFviA+IHlva3VcIDsKK+mFtyA+IGtva3VcIDsKK+mFrCA+IHNodXVcIDsKK+elniA+IGthbWlcIDsKK+mFkiA+IHNha2VcIDsKK+aFiyA+IHphbWFcIDsKK+aElSA+IGdha3VcIDsKK+mDtyA+IGt5b3VcIDsKK+mDrSA+IGtha3VcIDsKK+aDnCA+IHNla2lcIDsKK+aDkSA+IHdha3VcIDsKK+aCqiA+IHdhcnVcIDsKK+eipyA+IGhla2lcIDsKK+eijCA+IHJva3VcIDsKK+aChCA+IHNob3VcIDsKK+aBrSA+IGt5b3VcIDsKK+mBqSA+IHRla2lcIDsKK+aBpSA+IGhhamlcIDsKK+ehnSA+IHNob3VcIDsKK+aBkCA+IGt5b3VcIDsKK+mAuCA+IGl0c3VcIDsKK+mAsiA+IHNoaW5cIDsKK+mAsSA+IHNodXVcIDsKK+aAryA+IGt5b3VcIDsKK+aApSA+IGt5dXVcIDsKK+mAnyA+IHNva3VcIDsKK+mAmiA+IHRzdXVcIDsKK+aAjiA+IHNoaW5cIDsKK+eggiA+IHN1bmFcIDsKK+i/vSA+IHRzdWlcIDsKK+m+pSA+IHlha3VcIDsKK+m+oyA+IGtha3VcIDsKK+m+oCA+IHlha3VcIDsKK+m+nSA+IHNodXVcIDsKK+m+lCA+IGt5b3VcIDsKK+m+jyA+IGt5b3VcIDsKK+m+jSA+IHJ5dXVcIDsKK+m9uiA+IHNodXVcIDsKK+m9sSA+IHNla3VcIDsKK+m9sCA+IHNha3VcIDsKK+m9qiA+IHNva3VcIDsKK+m9qCA+IGt5dXVcIDsKK+m9oyA+IGtvbWFcIDsKK+m9oCA+IGNob3VcIDsKK+m9miA+IHNha3VcIDsKK+m9lCA+IHNoaW5cIDsKK+m9kyA+IHNoaW5cIDsKK+m9hSA+IGt5dXVcIDsKK+m8vCA+IGd5b3VcIDsKK+m8qyA+IHNla2lcIDsKK+m8piA+IGNob3VcIDsKK+m8miA+IGNob3VcIDsKK+m8jyA+IGJla2lcIDsKK+m8giA+IGNob3VcIDsKK+m7tyA+IHRva3VcIDsKK+m7sCA+IHNoaW5cIDsKK+m7kSA+IGtva3VcIDsKK+m6vyA+IG1hcm9cIDsKK+m6tCA+IGtpa3VcIDsKK+m6ryA+IGtpa3VcIDsKK+m6qCA+IHNob3VcIDsKK+m6niA+IHNob3VcIDsKK+m6mCA+IGt5b3VcIDsKK+m6jiA+IHNoaW5cIDsKK+m5tiA+IGt5b3VcIDsKK+m5oiA+IGdla2lcIDsKK+m5oSA+IHNla2lcIDsKK+m4tCA+IGtha3VcIDsKK+m4mSA+IHlha3VcIDsKK+m4liA+IGtha3VcIDsKK+m4kSA+IGdha3VcIDsKK+m4kCA+IHRla2lcIDsKK+m4iiA+IGhla2lcIDsKK+m3vSA+IGtha3VcIDsKK+m3uCA+IGl0c3VcIDsKK+m3ryA+IHJ5b3VcIDsKK+m3riA+IGt5b3VcIDsKK+m3piA+IHNob3VcIDsKK+m3nyA+IHNha3VcIDsKK+m3miA+IHJ5dXVcIDsKK+m3iiA+IGdla2lcIDsKK+m3gSA+IGdla2lcIDsKK+m2uiA+IHNla2lcIDsKK+m2uSA+IHJ5dXVcIDsKK+m2uCA+IGpha3VcIDsKK+m2riA+IGtva3VcIDsKK+m2qiA+IGtla2lcIDsKK+m2qSA+IGJva3VcIDsKK+m2miA+IGdha3VcIDsKK+m2liA+IHNodXVcIDsKK+m2kyA+IGJ5b3VcIDsKK+m2kiA+IHNla2lcIDsKK+m2gyA+IGdla2lcIDsKK+m1siA+IGpha3VcIDsKK+m1sCA+IGNob3VcIDsKK+m1qSA+IGZ1a3VcIDsKK+m1oiA+IHNoaW5cIDsKK+m1oCA+IGtva3VcIDsKK+m1nyA+IGt5b3VcIDsKK+m1mSA+IG1venVcIDsKK+m1lCA+IHNodW5cIDsKK+m1hyA+IHRva2lcIDsKK+m1hSA+IHJha3VcIDsKK+m1gyA+IGNodXVcIDsKK+m1giA+IGt5dXVcIDsKK+m0qiA+IGl0c3VcIDsKK+m0qCA+IGthbW9cIDsKK+m0lyA+IHJ5dXVcIDsKK+m0hyA+IHRva2lcIDsKK+m0hiA+IGNoaW5cIDsKK+mzpiA+IGl0c3VcIDsKK+myjCA+IGhha3VcIDsKK+mxtyA+IGdha3VcIDsKK+mxtiA+IGZ1a2FcIDsKK+mxtSA+IHNoaW5cIDsKK+mxsiA+IHJ5b3VcIDsKK+mxqCA+IHNob3VcIDsKK+mxpyA+IGhhbW9cIDsKK+mxnCA+IGt5b3VcIDsKK+mxmiA+IGtpc3VcIDsKK+mxmCA+IHNoaW5cIDsKK+mxkiA+IG1hc3VcIDsKK+mxjyA+IHNoaW5cIDsKK+mxjiA+IGt5b3VcIDsKK+mxiiA+IGl0c3VcIDsKK+mxhiA+IHNob3VcIDsKK+mxhSA+IHNob3VcIDsKK+mxgyA+IHNodXVcIDsKK+mxgiA+IHNob3VcIDsKK+mwviA+IGh5b3VcIDsKK+mwvSA+IHNodXVcIDsKK+mwtyA+IGNob3VcIDsKK+mwrSA+IGhpcmVcIDsKK+mwqCA+IGNob3VcIDsKK+mwpCA+IGJ1cmlcIDsKK+mwoSA+IHJ5dXVcIDsKK+mwmSA+IGhheWFcIDsKK+mwkCA+IHdhbmlcIDsKK+mwgiA+IHNva3VcIDsKK+mvvSA+IHNla2lcIDsKK+mvqiA+IHJ5b3VcIDsKK+mvpyA+IHNob3VcIDsKK+mvpSA+IHJpa3VcIDsKK+mvlyA+IHNob3VcIDsKK+mvliA+IHNhYmFcIDsKK+mvlCA+IGJvcmFcIDsKK+mvjiA+IHVndWlcIDsKK+mviiA+IGhhemVcIDsKK+muvyA+IGNob3VcIDsKK+muvCA+IHNoaW5cIDsKK+muuSA+IHRha29cIDsKK+mutCA+IGdvcmlcIDsKK+musiA+IG1hdGVcIDsKK+musSA+IGJvcmFcIDsKK+muqyA+IHNhbWVcIDsKK+muoCA+IGhheWFcIDsKK+munSA+IHNob3VcIDsKK+mukiA+IGZ1bmFcIDsKK+muiiA+IGhha3VcIDsKK+muiSA+IGNob3VcIDsKK+mtuSA+IHRvZG9cIDsKK+mtqyA+IHNoaW5cIDsKK+mtoSA+IHRla2lcIDsKK+mtlyA+IHNodXVcIDsKK+mtjiA+IHJ5b3VcIDsKK+mtiCA+IHNob3VcIDsKK+mthCA+IGhha3VcIDsKK+msuiA+IHNob3VcIDsKK+mssiA+IHJla2lcIDsKK+mssCA+IHV0c3VcIDsKK+msryA+IGNob3VcIDsKK+msriA+IGt5dXVcIDsKK+msqSA+IGdla2lcIDsKK+msmyA+IHJ5b3VcIDsKK+mskiA+IHNoaW5cIDsKK+mshiA+IHNob3VcIDsKK+mruSA+IGt5dXVcIDsKK+mrqyA+IGNob3VcIDsKK+mrpCA+IGt5dXVcIDsKK+mrnyA+IGh5b3VcIDsKK+mrnCA+IGt5b3VcIDsKK+mrkSA+IHRva3VcIDsKK+mrjiA+IHJ5b3VcIDsKK+mrhiA+IGhha3VcIDsKK+mqvCA+IGtha3VcIDsKK+mqsiA+IGhha3VcIDsKK+mqriA+IHlva3VcIDsKK+mqrSA+IGhhZ2lcIDsKK+mqjiA+IHNoaW5cIDsKK+mqiSA+IGh5dXVcIDsKK+mpqyA+IGh5dXVcIDsKK+mpnyA+IHNodXVcIDsKK+mpnSA+IHRha3VcIDsKK+mplSA+IGt5b3VcIDsKK+mpkSA+IHJ5dXVcIDsKK+mpjSA+IGd5b3VcIDsKK+mpgyA+IGh5b3VcIDsKK+mpgCA+IGJha3VcIDsKK+motiA+IHNodXVcIDsKK+mosyA+IHRva3VcIDsKK+moriA+IHJ5dXVcIDsKK+moniA+IGtha3VcIDsKK+mnvyA+IHNodW5cIDsKK+mnuCA+IHNoaW5cIDsKK+mntSA+IHJ5dXVcIDsKK+mnsiA+IHNodXVcIDsKK+mnsSA+IHJha3VcIDsKK+mnriA+IGhha3VcIDsKK+mnqiA+IHNoaW5cIDsKK+mngSA+IGJha3VcIDsKK+mmvSA+IGNodXVcIDsKK+mmsiA+IHRha3VcIDsKK+mmsCA+IHRla2lcIDsKK+mmriA+IGh5b3VcIDsKK+mmpSA+IGZ1a3VcIDsKK+mmmCA+IGtha3VcIDsKK+mlnyA+IHNob3VcIDsKK+mllyA+IGt5b3VcIDsKK+mliCA+IHNodXVcIDsKK+mkviA+IHJ5dXVcIDsKK+mkuiA+IGhha3VcIDsKK+mkpiA+IGNob3VcIDsKK+mklyA+IHNva3VcIDsKK+mklSA+IHNodW5cIDsKK+mkiSA+IHNob3VcIDsKK+mjpSA+IHRha3VcIDsKK+mjiCA+IGh5b3VcIDsKK+mjhyA+IGh5b3VcIDsKK+mjhiA+IGh5b3VcIDsKK+mjhSA+IHJ5dXVcIDsKK+mjhCA+IGh5b3VcIDsKK+mjgyA+IGh5b3VcIDsKK+mjgiA+IHJ5dXVcIDsKK+mityA+IGh5b3VcIDsKK+miriA+IGh5b3VcIDsKK+mhsyA+IHNob3VcIDsKK+mhpiA+IHNob3VcIDsKK+mhliA+IHNoaW5cIDsKK+mhkiA+IGd5b3VcIDsKK+mgsCA+IGt5b3VcIDsKK+mgoyA+IHNoaW5cIDsKK+mgniA+IGF0c3VcIDsKK+mgmSA+IHNha3VcIDsKK+mglCA+IHRla2lcIDsKK+mgjCA+IHNob3VcIDsKK+mftyA+IHJha3VcIDsKK+mftiA+IHNob3VcIDsKK+mfriA+IG5pcmFcIDsKK+mfrSA+IGt5dXVcIDsKK+mfmCA+IHNob3VcIDsKK+mflCA+IGNob3VcIDsKK+mfhyA+IHRva3VcIDsKK+mfgSA+IGt5b3VcIDsKK+meuSA+IGtha3VcIDsKK+metCA+IGZ1a3VcIDsKK+meqyA+IGtpa3VcIDsKK+mepiA+IHNodXVcIDsKK+meoiA+IHNob3VcIDsKK+meoCA+IG1hcmlcIDsKK+menyA+IGtha3VcIDsKK+mejyA+IGt5b3VcIDsKK+mehiA+IHRvbW9cIDsKK+mdriA+IHRla2lcIDsKK+mdlSA+IHNoaW5cIDsKK+mdjyA+IGtha3VcIDsKK+mdjiA+IGtha3VcIDsKK+mdhCA+IG1veWFcIDsKK+mdgyA+IGtha3VcIDsKK+mdgiA+IHJla2lcIDsKK+mcuSA+IGhla2lcIDsKK+mcuCA+IGhha3VcIDsKK+mcsyA+IHJ5dXVcIDsKK+mcsSA+IGl0c3VcIDsKK+mcpCA+IHJ5dXVcIDsKK+mcoiA+IGJha3VcIDsKK+mcoSA+IGJha3VcIDsKK+mcjSA+IGtha3VcIDsKK+mchSA+IHNob3VcIDsKK+mchCA+IHNob3VcIDsKK+mcgyA+IGNoaW5cIDsKK+mcgiA+IGJva3VcIDsKK+mbuSA+IGh5b3VcIDsKK+mbmCA+IHdha3VcIDsKK+mblSA+IGNob3VcIDsKK+mbkiA+IHJha3VcIDsKK+mbiSA+IGtpamlcIDsKK+mauyA+IHNla2lcIDsKK+mauiA+IGtva3VcIDsKK+manyA+IGdla2lcIDsKK+mZvyA+IGt5b3VcIDsKK+mZsyA+IGNoaW5cIDsKK+mZniA+IHNob3VcIDsKK+mZlyA+IHNob3VcIDsKK+mZjCA+IGhha3VcIDsKK+mYniA+IHJva3VcIDsKK+mXoiA+IGhla2lcIDsKK+mXnyA+IGt5dXVcIDsKK+mXnSA+IGh5b3VcIDsKK+mXliA+IGNoaW5cIDsKK+mXgyA+IGdla2lcIDsKK+mWtiA+IHNob3VcIDsKK+mWtCA+IGtla2lcIDsKK+mWsSA+IGV0c3VcIDsKK+mWoCA+IHRhbWFcIDsKK+mWliA+IHl1cnVcIDsKK+mWhCA+IGtva3VcIDsKK+mVuSA+IGt5dXVcIDsKK+mVuCA+IGNob3VcIDsKK+mVoCA+IHJ5dXVcIDsKK+mUuiA+IHNob3VcIDsKK+mSgSA+IGtha3VcIDsKK+mRvyA+IG5vbWlcIDsKK+mRsCA+IHlha3VcIDsKK+mRriA+IGhha3VcIDsKK+mRoyA+IGh5b3VcIDsKK+mRoSA+IHNha3VcIDsKK+mRnyA+IHRva3VcIDsKK+mRnCA+IHNob3VcIDsKK+mRkyA+IHlhcmlcIDsKK+mRiiA+IGtha3VcIDsKK+mRhCA+IGNodXVcIDsKK+mRgyA+IHR5b3VcIDsKK+mQuCA+IHRha3VcIDsKK+mQtCA+IGhla2lcIDsKK+mQsiA+IHRha3VcIDsKK+mQlCA+IHNoaW5cIDsKK+mQjiA+IHNob3VcIDsKK+mQiCA+IGt5b3VcIDsKK+mQgiA+IHJ5dXVcIDsKK+mPvSA+IHNodXVcIDsKK+mPuSA+IGt5b3VcIDsKK+mPtyA+IGhva3VcIDsKK+mPpiA+IHNob3VcIDsKK+mPpSA+IHNodXVcIDsKK+mPoiA+IGh5b3VcIDsKK+mPmyA+IHNob3VcIDsKK+mPmCA+IHNob3VcIDsKK+mPkSA+IHRla2lcIDsKK+mPkCA+IHJ5dXVcIDsKK+mPjCA+IGJha3VcIDsKK+mPiiA+IGd5b3VcIDsKK+mPgyA+IHpva3VcIDsKK+mOtCA+IHNva3VcIDsKK+mOsCA+IGl0c3VcIDsKK+mOriA+IGNoaW5cIDsKK+mOrSA+IGNoaW5cIDsKK+mOqCA+IHNodW5cIDsKK+mOpiA+IHJ5dXVcIDsKK+mOmyA+IGhha3VcIDsKK+mOmiA+IHRzdWlcIDsKK+mOmCA+IHJla2lcIDsKK+mOkCA+IHNva3VcIDsKK+mOjyA+IHJ5dXVcIDsKK+mOjSA+IHNha3VcIDsKK+mOjCA+IGthbWFcIDsKK+mOgCA+IHNodXVcIDsKK+mNviA+IHNob3VcIDsKK+mNvCA+IGhhcmlcIDsKK+mNtiA+IHNob3VcIDsKK+mNrCA+IGt1d2FcIDsKK+mNliA+IGNoaW5cIDsKK+mMtyA+IGF0c3VcIDsKK+mMtiA+IGh5b3VcIDsKK+mMtCA+IHJva3VcIDsKK+mMqyA+IHN1enVcIDsKK+mMqSA+IHNob3VcIDsKK+mMniA+IHNodW5cIDsKK+mMhiA+IHNhYmlcIDsKK+mMhCA+IHJva3VcIDsKK+mMgiA+IHJ5b3VcIDsKK+mLvyA+IHNob3VcIDsKK+mLuSA+IGNob3VcIDsKK+mLsyA+IGNodXVcIDsKK+mLsiA+IGJ5b3VcIDsKK+mLpCA+IHN1a2lcIDsKK+mLoCA+IHNoaW5cIDsKK+mLnCA+IHNha3VcIDsKK+mLiCA+IHlva3VcIDsKK+mKvyA+IHNob3VcIDsKK+mKuSA+IHNodXVcIDsKK+mKuCA+IHNob3VcIDsKK+mKtyA+IHNob3VcIDsKK+mKtiA+IGt5dXVcIDsKK+mKmyA+IG1vcmlcIDsKK+mKjiA+IGt5b3VcIDsKK+mKiSA+IGl0c3VcIDsKK+mJviA+IGhva29cIDsKK+mJuyA+IHJha3VcIDsKK+mJriA+IHNoaW5cIDsKK+mJpiA+IGthbmVcIDsKK+mJniA+IGV0c3VcIDsKK+mJnSA+IHJ5dXVcIDsKK+mJmiA+IHJ5dXVcIDsKK+mJkSA+IGhha3VcIDsKK+mJkCA+IHNla2lcIDsKK+mJiiA+IHNob3VcIDsKK+mIviA+IGNodXVcIDsKK+mIvCA+IHNha3VcIDsKK+mIrCA+IHRha3VcIDsKK+mIlSA+IGNodXVcIDsKK+mIlCA+IHNob3VcIDsKK+mIjiA+IGthZ2lcIDsKK+mIjCA+IGV0c3VcIDsKK+mIiiA+IHNoaW5cIDsKK+mHvSA+IGhla2lcIDsKK+mHuyA+IGt5dXVcIDsKK+mHpSA+IHNob3VcIDsKK+mHniA+IHNodXVcIDsKK+mHmyA+IGtva3VcIDsKK+mHmiA+IGt5dXVcIDsKK+mHmSA+IGhha3VcIDsKK+mHlyA+IHNob3VcIDsKK+mHlCA+IGl0c3VcIDsKK+mHkyA+IGh5dXVcIDsKK+mHjyA+IHJ5b3VcIDsKK+mHgiA+IHNob3VcIDsKK+mGuyA+IHNodXVcIDsKK+mGriA+IHNob3VcIDsKK+mGrSA+IGhva3VcIDsKK+mGrCA+IHNob3VcIDsKK+mGlSA+IHNodW5cIDsKK+mGiyA+IHNha3VcIDsKK+mGhyA+IHNodW5cIDsKK+mFsSA+IHNob3VcIDsKK+mFqiA+IHJha3VcIDsKK+mFpyA+IHNodXVcIDsKK+mFmSA+IHNoaW5cIDsKK+mFjiA+IGNodXVcIDsKK+mFiyA+IHNodXVcIDsKK+mFiSA+IHRvcmlcIDsKK+mEuSA+IHNodXVcIDsKK+mEtCA+IGd5b3VcIDsKK+mEqSA+IHNoaW5cIDsKK+mEpSA+IGt5b3VcIDsKK+mEoyA+IHNob3VcIDsKK+mEmiA+IGJha3VcIDsKK+mEmSA+IGhpbmFcIDsKK+mElSA+IGt5b3VcIDsKK+mEiSA+IGt5b3VcIDsKK+mEgiA+IGdha3VcIDsKK+mEgCA+IGpha3VcIDsKK+mDtCA+IGNoaW5cIDsKK+mDsCA+IHNodXVcIDsKK+mDpCA+IGdla2lcIDsKK+mDnSA+IGtha3VcIDsKK+mDhyA+IHNodW5cIDsKK+mDhCA+IGtla2lcIDsKK+mCtSA+IHNob3VcIDsKK+mCsSA+IGt5dXVcIDsKK+mCpiA+IGt1bmlcIDsKK+mCpSA+IHNoaW5cIDsKK+mCmyA+IGt5b3VcIDsKK+mCiyA+IHJ5b3VcIDsKK+mCiCA+IGJha3VcIDsKK+mBvCA+IHJ5b3VcIDsKK+mBuSA+IGl0c3VcIDsKK+mBrCA+IHNva3VcIDsKK+mBpyA+IHNob3VcIDsKK+mBmyA+IHJ5dXVcIDsKK+mBkiA+IHNodXVcIDsKK+mBjyA+IGF0c3VcIDsKK+mBjCA+IGdha3VcIDsKK+mAtyA+IGtla2lcIDsKK+mAtCA+IHRha3VcIDsKK+mAqiA+IHNha3VcIDsKK+mAqSA+IGthbXVcIDsKK+mApyA+IHNha29cIDsKK+mAoSA+IHNodW5cIDsKK+mAmyA+IGt5b3VcIDsKK+mAliA+IHRla2lcIDsKK+mAkSA+IGt5dXVcIDsKK+mAjiA+IHNodXVcIDsKK+mAjSA+IHNob3VcIDsKK+i/uSA+IHNla2lcIDsKK+i/riA+IHNha3VcIDsKK+i/qiA+IHRla2lcIDsKK+i/oiA+IGNob3VcIDsKK+i/oCA+IHNob3VcIDsKK+i/jSA+IGNodW5cIDsKK+i+uCA+IHNob3VcIDsKK+i+nyA+IGhla2lcIDsKK+i9oyA+IHJla2lcIDsKK+i9oiA+IHJla2lcIDsKK+i9jiA+IGt5b3VcIDsKK+i9jCA+IHNvcmlcIDsKK+i9hiA+IHJva3VcIDsKK+i9gyA+IHNoaW5cIDsKK+i9giA+IGtva3VcIDsKK+i8uyA+IGZ1a3VcIDsKK+i8uSA+IGZ1a3VcIDsKK+i8tCA+IGNodW5cIDsKK+i8rCA+IHJ5b3VcIDsKK+i8pyA+IGJ5b3VcIDsKK+i8myA+IHJ5b3VcIDsKK+i8mSA+IGNob3VcIDsKK+i8mCA+IHJ5b3VcIDsKK+i8liA+IHNodXVcIDsKK+i8kiA+IGNob3VcIDsKK+i8jCA+IHJ5b3VcIDsKK+i8iCA+IGNodXVcIDsKK+i7vyA+IGJ5b3VcIDsKK+i7vCA+IGl0c3VcIDsKK+i7uCA+IGppa3VcIDsKK+i7rSA+IGt5b3VcIDsKK+i7qyA+IHNoaW5cIDsKK+i7iyA+IGF0c3VcIDsKK+i6syA+IGt5dXVcIDsKK+i6rCA+IGt5dXVcIDsKK+i6niA+IHNob3VcIDsKK+i6kiA+IHJla2lcIDsKK+i6kCA+IHJ5b3VcIDsKK+i6hCA+IGhla2lcIDsKK+i6gyA+IGhla2lcIDsKK+i5vCA+IGJva3VcIDsKK+i5uyA+IGt5b3VcIDsKK+i5uiA+IGt5b3VcIDsKK+i5sSA+IHNob3VcIDsKK+i5sCA+IHNodXVcIDsKK+i5pCA+IHNob3VcIDsKK+i5oiA+IHRla2lcIDsKK+i5kCA+IHNla2lcIDsKK+i5jCA+IHNob3VcIDsKK+i5gCA+IGNob3VcIDsKK+i4uCA+IGNoaW5cIDsKK+i4syA+IHNodW5cIDsKK+i4sSA+IHRha3VcIDsKK+i4qiA+IHNob3VcIDsKK+i4oiA+IHRla2lcIDsKK+i4liA+IHNla2lcIDsKK+i4iSA+IHJ5b3VcIDsKK+i4hiA+IHNodW5cIDsKK+i4hCA+IGhha3VcIDsKK+i3qyA+IGt5b3VcIDsKK+i3liA+IHNla2lcIDsKK+i3lSA+IGNob3VcIDsKK+i3hSA+IHRha3VcIDsKK+i2uyA+IGNoaW5cIDsKK+i2tSA+IGhha3VcIDsKK+i2rCA+IGt5b3VcIDsKK+i2qyA+IGt5b3VcIDsKK+i2oCA+IHRha3VcIDsKK+i2mSA+IGNob3VcIDsKK+i2giA+IGNoaW5cIDsKK+i2gSA+IGNoaW5cIDsKK+i1syA+IGt5dXVcIDsKK+i1pSA+IGtla2lcIDsKK+i0kCA+IHNoaW5cIDsKK+i0iyA+IG5pc2VcIDsKK+izviA+IHNha3VcIDsKK+izsCA+IHNodW5cIDsKK+izrSA+IGtha2VcIDsKK+izrCA+IGNob3VcIDsKK+izniA+IHNob3VcIDsKK+iznSA+IGNoaW5cIDsKK+izmSA+IHNodXVcIDsKK+izlSA+IGt5dXVcIDsKK+iyuiA+IGt5b3VcIDsKK+iymCA+IGJha3VcIDsKK+iykyA+IGJ5b3VcIDsKK+iyiiA+IGhha3VcIDsKK+iyiSA+IGtha3VcIDsKK+iyhSA+IGt5dXVcIDsKK+iygiA+IGNob3VcIDsKK+ixuSA+IGh5b3VcIDsKK+ixmiA+IGJ1dGFcIDsKK+iurCA+IHRha3VcIDsKK+iunyA+IHRva3VcIDsKK+iuliA+IHNoaW5cIDsKK+iukCA+IHNodXVcIDsKK+iujiA+IHNodXVcIDsKK+iujSA+IGdha3VcIDsKK+iuiyA+IHNob3VcIDsKK+iuhSA+IHNoaW5cIDsKK+iugSA+IHRha3VcIDsKK+ituCA+IGNodXVcIDsKK+itmyA+IHNoaW5cIDsKK+itmSA+IHNob3VcIDsKK+itliA+IHNoaW5cIDsKK+ithSA+IHNodXVcIDsKK+istyA+IGd5b3VcIDsKK+isqyA+IHRha3VcIDsKK+isniA+IGtha3VcIDsKK+isiyA+IGtha3VcIDsKK+irvyA+IHNodXVcIDsKK+irviA+IGRha3VcIDsKK+irtiA+IHNoaW5cIDsKK+irpCA+IGdha3VcIDsKK+irnCA+IGNob3VcIDsKK+irlyA+IHNoaW5cIDsKK+irkiA+IHJ5b3VcIDsKK+irkSA+IHRha3VcIDsKK+iriiA+IGtpa3VcIDsKK+irgyA+IGNoaW5cIDsKK+iqryA+IHNob3VcIDsKK+iqpiA+IHNob3VcIDsKK+iqmiA+IHNob3VcIDsKK+iqkSA+IGt5b3VcIDsKK+iqhiA+IGt5b3VcIDsKK+iqhSA+IGNodXVcIDsKK+ipviA+IGt5b3VcIDsKK+ipuyA+IGdha3VcIDsKK+iptiA+IHNodXVcIDsKK+iptSA+IHNoaW5cIDsKK+iplyA+IGt5b3VcIDsKK+iouyA+IGNodXVcIDsKK+iotyA+IHNoaW5cIDsKK+ioqyA+IHNoaW5cIDsKK+iopiA+IHNoaW5cIDsKK+iooCA+IHNoaW5cIDsKK+iohSA+IGt5dXVcIDsKK+iohCA+IGt5dXVcIDsKK+intCA+IHNob3VcIDsKK+insyA+IGtva3VcIDsKK+inqyA+IHNva3VcIDsKK+inqSA+IGt5dXVcIDsKK+imvyA+IHRla2lcIDsKK+imoSA+IGdla2lcIDsKK+imnCA+IGNob3VcIDsKK+immyA+IGJpa2lcIDsKK+imkyA+IGJla2lcIDsKK+imkCA+IGtha3VcIDsKK+imiCA+IGtha3VcIDsKK+iltSA+IHNob3VcIDsKK+ilryA+IHNoaW5cIDsKK+ilriA+IGhha3VcIDsKK+ilqyA+IHNla2lcIDsKK+ilniA+IGhpZGFcIDsKK+illyA+IHRha3VcIDsKK+ilhiA+IGhva3VcIDsKK+ilgiA+IHNoaW5cIDsKK+ilgCA+IHNla2lcIDsKK+ikviA+IGh5b3VcIDsKK+ikuiA+IGNob3VcIDsKK+iktiA+IGNob3VcIDsKK+iksSA+IGthaWVcIDsKK+ikpSA+IGpva3VcIDsKK+ikjiA+IHNodXVcIDsKK+ikgSA+IHNla2lcIDsKK+ijvCA+IHNla2lcIDsKK+ijsiA+IHJ5b3VcIDsKK+ijsSA+IGh5b3VcIDsKK+ijryA+IGNodXVcIDsKK+ijmyA+IHlvdXVcIDsKK+ijmCA+IGt5dXVcIDsKK+ijkyA+IGtva3VcIDsKK+ijkSA+IHNoaW5cIDsKK+ijhCA+IHl1a2lcIDsKK+iisSA+IGZ1a3VcIDsKK+iisCA+IGhvcm9cIDsKK+iilyA+IHNoaW5cIDsKK+ihsSA+IGt5b3VcIDsKK+ihoCA+IHNodW5cIDsKK+ihiSA+IGtha3VcIDsKK+ihhCA+IGppa3VcIDsKK+ihgiA+IGppa3VcIDsKK+igsCA+IHNob3VcIDsKK+igriA+IGV0c3VcIDsKK+igqCA+IHNob3VcIDsKK+igmiA+IGtha3VcIDsKK+igliA+IGtha3VcIDsKK+iggSA+IGt5b3VcIDsKK+ifuSA+IGthbmlcIDsKK+ifryA+IGd5b3VcIDsKK+ifrSA+IHNob3VcIDsKK+ifnyA+IHJ5b3VcIDsKK+ifnCA+IGt5b3VcIDsKK+ifjiA+IGRhbmlcIDsKK+ifiSA+IHJ5dXVcIDsKK+ifiCA+IGtha3VcIDsKK+ifhyA+IGhpa2lcIDsKK+ifhiA+IGhpa2lcIDsKK+ievyA+IHNob3VcIDsKK+ievSA+IHNodXVcIDsKK+ietSA+IGh5b3VcIDsKK+ieqyA+IHNla2lcIDsKK+iekyA+IHNoaW5cIDsKK+ieiyA+IHNodXVcIDsKK+idtiA+IGNob3VcIDsKK+idpCA+IHNodXVcIDsKK+idjSA+IHNva3VcIDsKK+icvSA+IHJ5b3VcIDsKK+icriA+IHlva3VcIDsKK+icqSA+IGNob3VcIDsKK+icqCA+IHNob3VcIDsKK+icpSA+IHNla2lcIDsKK+icoyA+IGt5b3VcIDsKK+icmSA+IHNob3VcIDsKK+ickCA+IGt5b3VcIDsKK+ichCA+IHNoaW5cIDsKK+ibuiA+IGt5b3VcIDsKK+ibuCA+IHRha29cIDsKK+ibrSA+IGhpcnVcIDsKK+ibrCA+IGt5b3VcIDsKK+ibqSA+IGt5b3VcIDsKK+ibkiA+IGtha3VcIDsKK+ibgSA+IGNob3VcIDsKK+iauCA+IHJla2lcIDsKK+iasSA+IHNha3VcIDsKK+iaryA+IGt5dXVcIDsKK+iaiyA+IGJ1eW9cIDsKK+iZuSA+IG5pamlcIDsKK+iZryA+IGt5dXVcIDsKK+iZrCA+IGt5dXVcIDsKK+iZqSA+IGtla2lcIDsKK+iZmSA+IGh1a3VcIDsKK+iZiCA+IGt5b3VcIDsKK+iYvSA+IHJ5dXVcIDsKK+iYlyA+IGhha3VcIDsKK+iYkiA+IGhhZ2lcIDsKK+iYhiA+IGFzaGlcIDsKK+iYgCA+IHRha3VcIDsKK+iXvyA+IGtha3VcIDsKK+iXtiA+IHJla2lcIDsKK+iXrSA+IGt5dXVcIDsKK+iXqiA+IHlhYnVcIDsKK+iXqCA+IGh5b3VcIDsKK+iXoCA+IGt5b3VcIDsKK+iXkCA+IGJha3VcIDsKK+iXjiA+IHNoaW5cIDsKK+iXiyA+IGNob3VcIDsKK+iWvSA+IHNoaW5cIDsKK+iWvCA+IGNoaW5cIDsKK+iWuCA+IGh5b3VcIDsKK+iWnCA+IGhla2lcIDsKK+iWkyA+IHNoaW5cIDsKK+iWkSA+IGt5b3VcIDsKK+iWjyA+IHlva3VcIDsKK+iWjCA+IGt5b3VcIDsKK+iVuiA+IHNodXVcIDsKK+iVrSA+IHNob3VcIDsKK+iVqiA+IGthYnVcIDsKK+iVoyA+IHNodW5cIDsKK+iVmiA+IGdha3VcIDsKK+iVlyA+IGZ1a2lcIDsKK+iVkCA+IGt1d2FcIDsKK+iViSA+IHNob3VcIDsKK+iViCA+IHNoaW5cIDsKK+iUryA+IGNoaW5cIDsKK+iUoyA+IHNob3VcIDsKK+iUnyA+IHpva3VcIDsKK+iUmiA+IHV0c3VcIDsKK+iUmCA+IHNoaW5cIDsKK+iUlSA+IGhldGFcIDsKK+iUlCA+IGZ1a3VcIDsKK+iUkCA+IHRla2lcIDsKK+iUjyA+IHNob3VcIDsKK+iUjCA+IHNva3VcIDsKK+iUhyA+IGtpa2VcIDsKK+iUhiA+IHJ5b3VcIDsKK+iUgyA+IGt5b3VcIDsKK+iTvCA+IHRhZGVcIDsKK+iTuyA+IHNodXVcIDsKK+iTtCA+IHNodW5cIDsKK+iTsiA+IGt5dXVcIDsKK+iTpyA+IHNob3VcIDsKK+iTmiA+IGNob3VcIDsKK+iTkSA+IG1pbm9cIDsKK+iTkCA+IGpva3VcIDsKK+iTgSA+IHNoaW5cIDsKK+iStCA+IHNha3VcIDsKK+iSqiA+IGhha3VcIDsKK+iSpiA+IHdha3VcIDsKK+iSliA+IHNoaW5cIDsKK+iSkCA+IHNodXVcIDsKK+iSiyA+IHNob3VcIDsKK+iRuiA+IHNodXVcIDsKK+iRtCA+IHNoaW5cIDsKK+iRsSA+IG5lZ2lcIDsKK+iRryA+IHlha3VcIDsKK+iRpCA+IGNodXVcIDsKK+iRoCA+IHNoaW5cIDsKK+iRmyA+IGt1enVcIDsKK+iRmiA+IGNoaW5cIDsKK+iRmSA+IHNob3VcIDsKK+iRjSA+IGh1a3VcIDsKK+iQvCA+IGdha3VcIDsKK+iQqiA+IGt1d2FcIDsKK+iQqSA+IGhhZ2lcIDsKK+iQoiA+IHlhamlcIDsKK+iQmyA+IGt5dXVcIDsKK+iQhyA+IGNob3VcIDsKK+iQhSA+IHNodW5cIDsKK+iPsSA+IHJ5b3VcIDsKK+iPqCA+IHNob3VcIDsKK+iPliA+IHNob3VcIDsKK+iPlCA+IGhva3VcIDsKK+iPkCA+IGhva3VcIDsKK+iOnCA+IHRla2lcIDsKK+iOmCA+IHNoaW5cIDsKK+iOjSA+IGt5dXVcIDsKK+iOgCA+IHNoaW5cIDsKK+iNjSA+IGt5b3VcIDsKK+iMvSA+IGNodXVcIDsKK+iMuiA+IHNodXVcIDsKK+iMryA+IGZ1a3VcIDsKK+iMriA+IHNob3VcIDsKK+iMrSA+IGtla2lcIDsKK+iMnyA+IGl0c3VcIDsKK+iMniA+IHNoaW5cIDsKK+iMliA+IGtha3VcIDsKK+iLnCA+IGJva3VcIDsKK+iLmSA+IHJ5dXVcIDsKK+iLlSA+IGNob3VcIDsKK+iLhiA+IHN1c2FcIDsKK+iKuSA+IHNlcmlcIDsKK+iKsiA+IGt1d2FcIDsKK+iKryA+IHNoaW5cIDsKK+iKqCA+IGt5dXVcIDsKK+iKkiA+IG5vZ2lcIDsKK+iKjiA+IGt5dXVcIDsKK+iKgCA+IHNob3VcIDsKK+iJvSA+IGt5dXVcIDsKK+iJuyA+IHJva3VcIDsKK+iJqyA+IHRvbW9cIDsKK+iJpyA+IHdha3VcIDsKK+iJoiA+IHNob3VcIDsKK+iJnSA+IHNvcmlcIDsKK+iJjyA+IHNodXVcIDsKK+iItSA+IGthamlcIDsKK+iItCA+IHRha3VcIDsKK+iInCA+IHNodW5cIDsKK+iIjyA+IGt5dXVcIDsKK+iIgiA+IHNob3VcIDsKK+iHuyA+IHNoaW5cIDsKK+iHuSA+IHNodXVcIDsKK+iHtSA+IGtha3VcIDsKK+iHsCA+IHNodXVcIDsKK+iHqyA+IGt5b3VcIDsKK+iHmyA+IGtva3VcIDsKK+iHlSA+IGh5b3VcIDsKK+iGsiA+IHNob3VcIDsKK+iGriA+IGt5b3VcIDsKK+iGpCA+IHRhcmFcIDsKK+iGmCA+IGh5b3VcIDsKK+iGlSA+IGtha3VcIDsKK+iGkyA+IGNob3VcIDsKK+iGiyA+IHJ5b3VcIDsKK+iGiiA+IGhha3VcIDsKK+iGiCA+IGtha3VcIDsKK+iGhCA+IHNodXVcIDsKK+iGgyA+IG90c3VcIDsKK+iFvyA+IG1vbW9cIDsKK+iFvSA+IG90c3VcIDsKK+iFrSA+IGdha3VcIDsKK+iFmCA+IGtha3VcIDsKK+iFiiA+IHNla2lcIDsKK+iEvCA+IHJ5b3VcIDsKK+iEuSA+IGNob3VcIDsKK+iEqSA+IHNodXVcIDsKK+iEpCA+IHNoaW5cIDsKK+iEmyA+IHN1bmVcIDsKK+iEiyA+IGt5b3VcIDsKK+iDuiA+IGF0c3VcIDsKK+iDsyA+IGtha3VcIDsKK+iDpCA+IHRhbmVcIDsKK+iDlyA+IHNoaW5cIDsKK+iDhCA+IGNodXVcIDsKK+iCsSA+IGhpamlcIDsKK+iCqyA+IHNodW5cIDsKK+iCoSA+IG1vbW9cIDsKK+iCiCA+IGNob3VcIDsKK+iChyA+IGNob3VcIDsKK+iCgSA+IGNob3VcIDsKK+iBvyA+IGl0c3VcIDsKK+iBvCA+IGNob3VcIDsKK+iBhCA+IHNoaW5cIDsKK+iAtCA+IGNob3VcIDsKK+iApCA+IHNla2lcIDsKK+e/uSA+IGd5b3VcIDsKK+e/siA+IGh5b3VcIDsKK+e/ryA+IGtva3VcIDsKK+e/riA+IGtha3VcIDsKK+e/nyA+IGtla2lcIDsKK+e/lSA+IGt5dXVcIDsKK+e/lCA+IHNob3VcIDsKK+e/jyA+IHJ5dXVcIDsKK+e/iiA+IHlva3VcIDsKK+e/gCA+IGNodXVcIDsKK+e+lyA+IGt5b3VcIDsKK+e+jCA+IGt5b3VcIDsKK+e+gyA+IGJla2lcIDsKK+e+gCA+IHJ5dXVcIDsKK+e9vyA+IHNob3VcIDsKK+e9tiA+IHJ5dXVcIDsKK+e9rSA+IHlva3VcIDsKK+e9pyA+IHNoaW5cIDsKK+e9oCA+IHdhbmFcIDsKK+e9hSA+IGhpYmlcIDsKK+e6lSA+IHNob3VcIDsKK+e6hiA+IGJva3VcIDsKK+e5riA+IGt5b3VcIDsKK+e5rSA+IG1heXVcIDsKK+e5piA+IGt5b3VcIDsKK+e5oSA+IHNodXVcIDsKK+e5miA+IHJ5b3VcIDsKK+e5kiA+IHNob3VcIDsKK+e5jSA+IHNodXVcIDsKK+e5iCA+IGt5b3VcIDsKK+e5hiA+IGt5dXVcIDsKK+e4viA+IHNla2lcIDsKK+e4uSA+IGh5b3VcIDsKK+e4tiA+IGNodXVcIDsKK+e4oCA+IGtva3VcIDsKK+e4nyA+IGpva3VcIDsKK+e4nSA+IHNoaW5cIDsKK+e4kCA+IHNodXVcIDsKK+e4iSA+IHNoaW5cIDsKK+e3siA+IGJ5b3VcIDsKK+e3nSA+IHNodXVcIDsKK+e3mSA+IGtha3VcIDsKK+e3lyA+IHNob3VcIDsKK+e3jiA+IHlva3VcIDsKK+e3hiA+IHNla2lcIDsKK+e3hSA+IHNodXVcIDsKK+e3gyA+IHNob3VcIDsKK+e2uSA+IHJ5dXVcIDsKK+e2tiA+IGt1d2FcIDsKK+e2pyA+IHNodW5cIDsKK+e2oiA+IGNodXVcIDsKK+e2nSA+IGNoaW5cIDsKK+e2myA+IGthc2VcIDsKK+e2jCA+IGtla2lcIDsKK+e2hSA+IHNoaW5cIDsKK+e2gyA+IHNob3VcIDsKK+e1vyA+IGt5dXVcIDsKK+e1iCA+IGJha3VcIDsKK+e0viA+IHNoaW5cIDsKK+e0rCA+IGNodXVcIDsKK+e0liA+IGNoaW5cIDsKK+e0gyA+IHNodW5cIDsKK+e0giA+IGNodXVcIDsKK+ezviA+IGt5dXVcIDsKK+ezuiA+IGt5dXVcIDsKK+eztiA+IGNob3VcIDsKK+eztCA+IHRla2lcIDsKK+ezoCA+IG51a2FcIDsKK+ezlyA+IGt5dXVcIDsKK+ezlCA+IHNodXVcIDsKK+ezkyA+IGtva3VcIDsKK+eziiA+IG5vcmlcIDsKK+eyuyA+IGNob3VcIDsKK+eytyA+IGtpa3VcIDsKK+eytiA+IHJva3VcIDsKK+eytSA+IGV0c3VcIDsKK+eysSA+IHJ5b3VcIDsKK+eyriA+IHJ5b3VcIDsKK+eypCA+IGV0c3VcIDsKK+eylSA+IGhha3VcIDsKK+eygiA+IGt1bWVcIDsKK+exviA+IG1vbWlcIDsKK+exsCA+IHdha3VcIDsKK+expSA+IHlha3VcIDsKK+expCA+IGt1amlcIDsKK+exnCA+IHRha3VcIDsKK+exlSA+IHJ5dXVcIDsKK+exkiA+IHNodXVcIDsKK+exjyA+IGhhdGFcIDsKK+exjCA+IGNodXVcIDsKK+exiiA+IHRla2lcIDsKK+exhiA+IHdha3VcIDsKK+exgCA+IGNodXVcIDsKK+ewtiA+IHJva3VcIDsKK+ewsSA+IGhhdGFcIDsKK+ewqyA+IHNob3VcIDsKK+ewqiA+IHNoaW5cIDsKK+ewqCA+IHNodW5cIDsKK+ewpSA+IGt5b3VcIDsKK+ewmSA+IGhha3VcIDsKK+ewmCA+IHNob3VcIDsKK+ewlyA+IHlhbmFcIDsKK+ewjyA+IHJva3VcIDsKK+ewjiA+IHNha3VcIDsKK+ewjCA+IHNva3VcIDsKK+ewiSA+IHNodXVcIDsKK+ewgCA+IHNha3VcIDsKK+evuCA+IHNoaW5cIDsKK+evtCA+IHRla2lcIDsKK+evoCA+IHNob3VcIDsKK+evmyA+IGpha3VcIDsKK+evlyA+IHdha3VcIDsKK+eviyA+IGt5b3VcIDsKK+euuiA+IHNodW5cIDsKK+eutCA+IHNoaW5cIDsKK+eusCA+IHNodW5cIDsKK+eurCA+IGpva3VcIDsKK+eumSA+IGZ1a3VcIDsKK+eulCA+IGhha3VcIDsKK+eujSA+IHRhZ2FcIDsKK+euhiA+IGhlcmFcIDsKK+etvyA+IHNob3VcIDsKK+etuiA+IGt5b3VcIDsKK+ettCA+IGt5b3VcIDsKK+etsSA+IHNob3VcIDsKK+etsCA+IHNha3VcIDsKK+etkCA+IGt5b3VcIDsKK+ethyA+IGt5b3VcIDsKK+esvyA+IHJha3VcIDsKK+esriA+IHNha3VcIDsKK+espyA+IHNha3VcIDsKK+esiiA+IHphcnVcIDsKK+esiCA+IGt5dXVcIDsKK+eruyA+IHJva3VcIDsKK+eruiA+IHRva3VcIDsKK+ertCA+IHNodW5cIDsKK+erqCA+IGNob3VcIDsKK+erpiA+IHNob3VcIDsKK+eroyA+IHNodW5cIDsKK+ernCA+IHJ5dXVcIDsKK+erhiA+IGt5dXVcIDsKK+erhSA+IGt5b3VcIDsKK+eqvyA+IHJ5dXVcIDsKK+eqtSA+IGNob3VcIDsKK+eqryA+IGthbWFcIDsKK+eqlSA+IGNob3VcIDsKK+eqhCA+IHNha3VcIDsKK+eqgCA+IGNodW5cIDsKK+epuSA+IGt5dXVcIDsKK+epuCA+IHNla2lcIDsKK+eptSA+IGF0c3VcIDsKK+epqyA+IGtha3VcIDsKK+epqiA+IHNob3VcIDsKK+epmSA+IGhva3VcIDsKK+eplSA+IHNob3VcIDsKK+epkCA+IHNodXVcIDsKK+ephiA+IGJva3VcIDsKK+epgCA+IGtva3VcIDsKK+eouSA+IHNoaW5cIDsKK+eouCA+IGtpa3VcIDsKK+eooCA+IGNodXVcIDsKK+eonCA+IHJ5b3VcIDsKK+eolSA+IHNodW5cIDsKK+eokSA+IHJpa3VcIDsKK+enpiA+IHNoaW5cIDsKK+ennSA+IHJla2lcIDsKK+enjSA+IGNodXVcIDsKK+engyA+IHRva3VcIDsKK+emtCA+IHlha3VcIDsKK+emmyA+IHNoaW5cIDsKK+elvyA+IHJva3VcIDsKK+elviA+IHJ5b3VcIDsKK+elsiA+IHNoaW5cIDsKK+elqCA+IGh5b3VcIDsKK+elpyA+IGNob3VcIDsKK+elpSA+IHNob3VcIDsKK+eljyA+IHNla2lcIDsKK+ekvyA+IHlha3VcIDsKK+ektCA+IGhha3VcIDsKK+ekrSA+IGtha3VcIDsKK+ekkCA+IGtha3VcIDsKK+ekgSA+IHNob3VcIDsKK+ejvyA+IHJla2lcIDsKK+ejtiA+IHNla2lcIDsKK+ejpyA+IHNla2lcIDsKK+ejpiA+IGh5b3VcIDsKK+ejnyA+IHJpa3VcIDsKK+ejlCA+IHRha3VcIDsKK+eiuyA+IGtha3VcIDsKK+eitSA+IHNla2lcIDsKK+eiqiA+IGNoaW5cIDsKK+eiqSA+IHNla2lcIDsKK+eioSA+IHRva3VcIDsKK+ehviA+IHRzdWlcIDsKK+ehuiA+IHRha3VcIDsKK+ehtCA+IGtha2lcIDsKK+ehriA+IGtha3VcIDsKK+ehqyA+IHJ5dXVcIDsKK+ehniA+IGtha3VcIDsKK+ehjCA+IHJha3VcIDsKK+egtyA+IHNoaW5cIDsKK+egpyA+IGNoaW5cIDsKK+egoSA+IGdpa3VcIDsKK+egnSA+IGt5b3VcIDsKK+egiSA+IGtla2lcIDsKK+efsSA+IHdha3VcIDsKK+efryA+IGt5b3VcIDsKK+efqiA+IGNodXVcIDsKK+efpyA+IHNoaW5cIDsKK+efpCA+IHNoaW5cIDsKK+efoCA+IHNha3VcIDsKK+efnyA+IHNha3VcIDsKK+efniA+IGl0c3VcIDsKK+efmyA+IGhva29cIDsKK+efjSA+IGtha3VcIDsKK+eeviA+IHNob3VcIDsKK+eepyA+IHNob3VcIDsKK+eenyA+IGh5b3VcIDsKK+eemiA+IHNodW5cIDsKK+eelSA+IHNob3VcIDsKK+eelCA+IHNha3VcIDsKK+eeiyA+IHNoaW5cIDsKK+eehCA+IGJ5b3VcIDsKK+edlyA+IHNla2lcIDsKK+edliA+IGNob3VcIDsKK+ecviA+IHNodXVcIDsKK+ecvSA+IGJha3VcIDsKK+ecuSA+IGNoaW5cIDsKK+ectiA+IGt5b3VcIDsKK+eclSA+IHNoaW5cIDsKK+eckiA+IHNoaW5cIDsKK+echyA+IGJ5b3VcIDsKK+ebviA+IHRhdGVcIDsKK+ebuSA+IHNodW5cIDsKK+ebhSA+IGNodXVcIDsKK+eauSA+IGhpYmlcIDsKK+eauCA+IGhpYmlcIDsKK+eatCA+IHNodW5cIDsKK+eaqiA+IHJla2lcIDsKK+eapiA+IGt5b3VcIDsKK+eaoiA+IGt5b3VcIDsKK+eanyA+IHNha3VcIDsKK+eamyA+IGt5b3VcIDsKK+eamSA+IHNla2lcIDsKK+eajSA+IHNva3VcIDsKK+eagCA+IGh5dXVcIDsKK+eZqCA+IGtha3VcIDsKK+eZpyA+IHJla2lcIDsKK+eZpSA+IGNob3VcIDsKK+eZiyA+IGtha3VcIDsKK+eZhSA+IHJ5dXVcIDsKK+eZhCA+IHNob3VcIDsKK+eZgyA+IHJ5dXVcIDsKK+eZgSA+IGZ1a3VcIDsKK+eYvCA+IGJha3VcIDsKK+eYuSA+IGNob3VcIDsKK+eYtCA+IHNob3VcIDsKK+eYsyA+IGNodXVcIDsKK+eYsiA+IHNob3VcIDsKK+eYriA+IHNoaW5cIDsKK+eYrSA+IGh5b3VcIDsKK+eYpCA+IGtvYnVcIDsKK+eYoCA+IHNla2lcIDsKK+eYhyA+IHNob3VcIDsKK+eXriA+IGNob3VcIDsKK+eXnyA+IHNob3VcIDsKK+eXnCA+IHRva3VcIDsKK+eWuSA+IHNoaW5cIDsKK+eWoiA+IGNoaW5cIDsKK+eWmiA+IGt5dXVcIDsKK+eWlCA+IGNob3VcIDsKK+eWkiA+IGRha3VcIDsKK+eWhyA+IGNodXVcIDsKK+eWhiA+IGt5b3VcIDsKK+eWhSA+IGt5b3VcIDsKK+eVvCA+IGNob3VcIDsKK+eVuyA+IHNob3VcIDsKK+eVuiA+IGt5b3VcIDsKK+eVtSA+IGtha3VcIDsKK+eVtCA+IGNodXVcIDsKK+eVsSA+IHJ5dXVcIDsKK+eVryA+IHNodW5cIDsKK+eVqSA+IGtlc2FcIDsKK+eVmyA+IHNoaW5cIDsKK+eVkCA+IGZ1a3VcIDsKK+eVhCA+IHJ5dXVcIDsKK+eVgyA+IHNodW5cIDsKK+eUvCA+IGNob3VcIDsKK+eUqiA+IHJva3VcIDsKK+eUpyA+IHNoaW5cIDsKK+eUoSA+IHNoaW5cIDsKK+eUniA+IHNob3VcIDsKK+eUlSA+IG1pa2FcIDsKK+eUkyA+IGhla2lcIDsKK+eUgyA+IHNodXVcIDsKK+eTuiA+IGNob3VcIDsKK+eTpCA+IHNob3VcIDsKK+eToiA+IGh5b3VcIDsKK+eTnyA+IGhha3VcIDsKK+eSuSA+IHNodXVcIDsKK+eSpyA+IGhla2lcIDsKK+eSoiA+IHJ5dXVcIDsKK+eSoSA+IHNoaW5cIDsKK+eSniA+IGhha3VcIDsKK+eSmSA+IHJ5b3VcIDsKK+eSiyA+IHNob3VcIDsKK+eShiA+IGt5dXVcIDsKK+eRsiA+IHNob3VcIDsKK+eRqCA+IHNoaW5cIDsKK+eRpyA+IHNoaW5cIDsKK+eRoCA+IHJ5dXVcIDsKK+eRlSA+IGtpenVcIDsKK+eRkiA+IGNob3VcIDsKK+eRgyA+IGNodW5cIDsKK+eQsSA+IGNob3VcIDsKK+eQrSA+IGtva3VcIDsKK+eQqSA+IHNob3VcIDsKK+eQoiA+IHRha3VcIDsKK+eQmyA+IGNoaW5cIDsKK+eQiSA+IHJ5dXVcIDsKK+eQhyA+IHNodXVcIDsKK+ePpiA+IGt5b3VcIDsKK+ePoyA+IHNodW5cIDsKK+ePniA+IHJha3VcIDsKK+ePmSA+IGt5b3VcIDsKK+ePkiA+IHNoaW5cIDsKK+ePjyA+IGtha3VcIDsKK+ePjiA+IGNoaW5cIDsKK+ePiyA+IHJ5dXVcIDsKK+ePhSA+IHNoaW5cIDsKK+ePgCA+IGhha3VcIDsKK+eOvyA+IHNob3VcIDsKK+eOkyA+IHRla2lcIDsKK+eOhSA+IG15b3VcIDsKK+eNtiA+IG55b3VcIDsKK+eNtSA+IHJ5b3VcIDsKK+eNoCA+IHJ5b3VcIDsKK+eNnyA+IGd5b3VcIDsKK+eNkCA+IHNob3VcIDsKK+eNjyA+IGJha3VcIDsKK+eNjiA+IHNob3VcIDsKK+eNjSA+IGt5b3VcIDsKK+eMnyA+IHJ5b3VcIDsKK+eMliA+IHNob3VcIDsKK+eMiyA+IGh5b3VcIDsKK+eLpSA+IHNodW5cIDsKK+eLoiA+IGtha3VcIDsKK+eLmyA+IGhha3VcIDsKK+eLhyA+IGJva3VcIDsKK+eLhiA+IGNoaW5cIDsKK+eLhCA+IHRla2lcIDsKK+eKsSA+IGtla2lcIDsKK+eKqCA+IHNodXVcIDsKK+eKoiA+IHRva3VcIDsKK+eKliA+IHJha3VcIDsKK+eJvyA+IGtva3VcIDsKK+eJniA+IGt5dXVcIDsKK+eJmSA+IGtpYmFcIDsKK+eJmCA+IHRva3VcIDsKK+eJlCA+IGhha3VcIDsKK+eJhiA+IHNob3VcIDsKK+eIvyA+IHNob3VcIDsKK+eItCA+IGtha3VcIDsKK+eIryA+IHNob3VcIDsKK+eImiA+IHlha3VcIDsKK+eIgCA+IGtha3VcIDsKK+eHuCA+IGppeXVcIDsKK+eHriA+IHNob3VcIDsKK+eHmiA+IGl0c3VcIDsKK+eHliA+IHNoaW5cIDsKK+eHjiA+IHJ5b3VcIDsKK+eHiyA+IHNob3VcIDsKK+eGmyA+IGh5b3VcIDsKK+eGhyA+IGtva3VcIDsKK+eGhCA+IHNva3VcIDsKK+eFgSA+IHNoaW5cIDsKK+eEuyA+IHNob3VcIDsKK+eEjCA+IHNodW5cIDsKK+eEhyA+IHNob3VcIDsKK+eEhiA+IGV0c3VcIDsKK+eEhSA+IGtva3VcIDsKK+eEgyA+IGtha3VcIDsKK+eDmSA+IHJha3VcIDsKK+eCuCA+IHNha3VcIDsKK+eCpCA+IHNob3VcIDsKK+eBuCA+IGt5dXVcIDsKK+eBrCA+IGh5b3VcIDsKK+eBpSA+IHNodW5cIDsKK+eBhCA+IHNob3VcIDsKK+eAuSA+IHNla3VcIDsKK+eAtyA+IHlva3VcIDsKK+eApyA+IHRha2lcIDsKK+eAnyA+IHNob3VcIDsKK+eAkyA+IGNob3VcIDsKK+eAkSA+IGJha3VcIDsKK+eAjyA+IHJ5dXVcIDsKK+eAiyA+IHNoaW5cIDsKK+eAhiA+IHRva3VcIDsKK+a/vCA+IHJva3VcIDsKK+a/uSA+IGJva3VcIDsKK+a/riA+IGhva3VcIDsKK+a/rCA+IHNodW5cIDsKK+a/qSA+IGtha3VcIDsKK+a/iCA+IHNodXVcIDsKK+a/hSA+IHNoaW5cIDsKK+a+vCA+IGhla2lcIDsKK+a+tSA+IHNoaW5cIDsKK+a+oCA+IHNob3VcIDsKK+a+mSA+IHNla2lcIDsKK+a+kyA+IGh1a3VcIDsKK+a+kSA+IHJ5dXVcIDsKK+a+hiA+IGd5b3VcIDsKK+a+giA+IGNob3VcIDsKK+a9nyA+IGthdGFcIDsKK+a9nSA+IGt5dXVcIDsKK+a9lyA+IHNodXVcIDsKK+a8uyA+IHJ5b3VcIDsKK+a8syA+IHNob3VcIDsKK+a8mCA+IHNoaW5cIDsKK+a8jSA+IGtha3VcIDsKK+a8iSA+IHJva3VcIDsKK+a7siA+IHNoaW5cIDsKK+a7riA+IGh5dXVcIDsKK+a7qyA+IHNodXVcIDsKK+a7nSA+IHRha2lcIDsKK+a7kyA+IGthc3VcIDsKK+a7jCA+IGRla2lcIDsKK+a6vSA+IGpva3VcIDsKK+a6sSA+IHNoaW5cIDsKK+a6jSA+IHNoaW5cIDsKK+a5qyA+IHNob3VcIDsKK+a5qCA+IGtla2lcIDsKK+a5mCA+IHNob3VcIDsKK+a5kiA+IHNodXVcIDsKK+a4uiA+IGJ5b3VcIDsKK+a4niA+IHNodXVcIDsKK+a4lyA+IHNoaW5cIDsKK+a4jCA+IHJva3VcIDsKK+a3vCA+IGJ5b3VcIDsKK+a3tCA+IG90c3VcIDsKK+a3syA+IHNodW5cIDsKK+a3qSA+IHJ5b3VcIDsKK+a3pSA+IHJva3VcIDsKK+a3oiA+IHlva3VcIDsKK+a3niA+IHNob3VcIDsKK+a3lSA+IHJpa3VcIDsKK+a3jCA+IHNob3VcIDsKK+a3hSA+IHNla2lcIDsKK+a2vyA+IHRva3VcIDsKK+a2iSA+IHNob3VcIDsKK+a1uSA+IHNob3VcIDsKK+a1niA+IHNha3VcIDsKK+a1lyA+IGt5dXVcIDsKK+a0tiA+IGt5b3VcIDsKK+a0tSA+IHNodW5cIDsKK+a0piA+IGJha3VcIDsKK+a0nyA+IGhhbmFcIDsKK+a0kyA+IHNha3VcIDsKK+a0kSA+IGh1a3VcIDsKK+aztSA+IHJ5dXVcIDsKK+azpyA+IGV0c3VcIDsKK+azhiA+IGl0c3VcIDsKK+azhSA+IHNodXVcIDsKK+aysCA+IHRha3VcIDsKK+aykCA+IGJva3VcIDsKK+ayiSA+IGNoaW5cIDsKK+aygyA+IHlva3VcIDsKK+aygSA+IHNoaW5cIDsKK+axuSA+IGt5b3VcIDsKK+axqSA+IGl0c3VcIDsKK+axqCA+IGJla2lcIDsKK+axmyA+IHNoaW5cIDsKK+axkCA+IHNla2lcIDsKK+axiyA+IHNha3VcIDsKK+awuyA+IHJva3VcIDsKK+awtiA+IHNob3VcIDsKK+awjiA+IGNob3VcIDsKK+awhSA+IHNob3VcIDsKK+avsSA+IGtpa3VcIDsKK+avoyA+IGJva3VcIDsKK+avhCA+IGtla2lcIDsKK+avgyA+IGtha3VcIDsKK+auviA+IHNodW5cIDsKK+auvCA+IGtha3VcIDsKK+ausCA+IHRva3VcIDsKK+aurSA+IGt5b3VcIDsKK+aupCA+IHNob3VcIDsKK+auoCA+IHNodXVcIDsKK+aunyA+IG90c3VcIDsKK+aukSA+IGt5b3VcIDsKK+aujSA+IGh5b3VcIDsKK+attSA+IHNha3VcIDsKK+atsCA+IHNodXVcIDsKK+atmSA+IGt5dXVcIDsKK+atkiA+IHRla2lcIDsKK+atiiA+IGt5b3VcIDsKK+astiA+IHNha3VcIDsKK+asqyA+IGtla2lcIDsKK+ashyA+IHNob3VcIDsKK+asgiA+IGhha3VcIDsKK+arrCA+IHNoaW5cIDsKK+arqiA+IHJla2lcIDsKK+arnyA+IHJla2lcIDsKK+arnSA+IHRva3VcIDsKK+aqtCA+IGtha3VcIDsKK+aqqiA+IHJla2lcIDsKK+aqnSA+IHNodXVcIDsKK+aqlyA+IGhha3VcIDsKK+aqjSA+IHlva3VcIDsKK+aqhCA+IGdla2lcIDsKK+apvyA+IGt5b3VcIDsKK+apuCA+IHNob3VcIDsKK+apsyA+IG51ZGVcIDsKK+apsiA+IHp1c2FcIDsKK+apoSA+IHNob3VcIDsKK+apkCA+IHRha3VcIDsKK+apiiA+IHJ5b3VcIDsKK+aoviA+IGV0c3VcIDsKK+aovSA+IHRhcnVcIDsKK+aouiA+IGthYmFcIDsKK+aouCA+IGJva3VcIDsKK+aosCA+IHRhcmFcIDsKK+aooiA+IGJva3VcIDsKK+aonyA+IHNob3VcIDsKK+aomyA+IGt5dXVcIDsKK+aomiA+IHJva3VcIDsKK+aolSA+IHNva3VcIDsKK+aokSA+IHJ5b3VcIDsKK+aogCA+IHRla2lcIDsKK+ansyA+IHNob3VcIDsKK+ansiA+IGtva3VcIDsKK+anriA+IHNoaW5cIDsKK+anqCA+IGtha3VcIDsKK+anoiA+IHNodXVcIDsKK+anlyA+IGt5b3VcIDsKK+anliA+IHRha3VcIDsKK+anjSA+IHlhcmlcIDsKK+aniiA+IHNha3VcIDsKK+anhSA+IGtha3VcIDsKK+amuiA+IHNob3VcIDsKK+amtyA+IGtha3VcIDsKK+amtCA+IHJ5dXVcIDsKK+amsiA+IG90c3VcIDsKK+amqyA+IHNodW5cIDsKK+ampyA+IGtheWFcIDsKK+amliA+IGtva3VcIDsKK+amkiA+IGRva3VcIDsKK+amhSA+IG90c3VcIDsKK+amgSA+IG11cm9cIDsKK+aluCA+IHNodXVcIDsKK+alqyA+IHNodXVcIDsKK+aloiA+IHNodXVcIDsKK+aliSA+IGpha3VcIDsKK+alhSA+IGh5a3VcIDsKK+akqCA+IHRhZnVcIDsKK+akpSA+IG5hZ2lcIDsKK+akmSA+IHN1Z2lcIDsKK+akkyA+IHRha3VcIDsKK+akkiA+IHNob3VcIDsKK+akiyA+IHJ5b3VcIDsKK+akiCA+IGtpa3VcIDsKK+akhiA+IGNodXVcIDsKK+akgSA+IGtha3VcIDsKK+ajvSA+IGNoaW5cIDsKK+ajqyA+IHlva3VcIDsKK+ajnyA+IG11bmVcIDsKK+ajmCA+IHRvZ2VcIDsKK+ajjyA+IHRva3VcIDsKK+airiA+IGtpa3VcIDsKK+aipSA+IHNob3VcIDsKK+aioyA+IHNoaW5cIDsKK+ainCA+IGt5b3VcIDsKK+aijyA+IGtva3VcIDsKK+aigiA+IGt5dXVcIDsKK+aigSA+IGhhcmlcIDsKK+ahuiA+IHJ5dXVcIDsKK+ahtyA+IGtha3VcIDsKK+ahnSA+IG1hc3VcIDsKK+ahmCA+IHRzdWlcIDsKK+ahlSA+IGt5dXVcIDsKK+ahkSA+IGt1d2FcIDsKK+ahjCA+IHRha3VcIDsKK+ahhiA+IGt5b3VcIDsKK+agvyA+IGZ1a3VcIDsKK+aguCA+IGtha3VcIDsKK+agsSA+IGt5b3VcIDsKK+agqiA+IGthYnVcIDsKK+agoiA+IGhha3VcIDsKK+aghSA+IHNha3VcIDsKK+aggiA+IHRvZ2FcIDsKK+afviA+IGt5dXVcIDsKK+afqSA+IGt5dXVcIDsKK+afniA+IHNha3VcIDsKK+afnSA+IHRha3VcIDsKK+aflyA+IHNob3VcIDsKK+afjyA+IGhha3VcIDsKK+aetyA+IGthc2VcIDsKK+aetSA+IGt5b3VcIDsKK+aeqSA+IHNob3VcIDsKK+aeoSA+IG1hc3VcIDsKK+aeoCA+IHdha3VcIDsKK+aekCA+IHNla2lcIDsKK+aegSA+IGt5b3VcIDsKK+aduyA+IGNodXVcIDsKK+adtiA+IGNodW5cIDsKK+adqiA+IGJ5b3VcIDsKK+adpiA+IHN1Z2lcIDsKK+adoyA+IHNvbWFcIDsKK+adoiA+IG1va3VcIDsKK+admSA+IHlva3VcIDsKK+adlCA+IHRha3VcIDsKK+acvSA+IGt5dXVcIDsKK+aclSA+IGNoaW5cIDsKK+aclCA+IHNha3VcIDsKK+ackyA+IGNob3VcIDsKK+ackiA+IG5pa3VcIDsKK+ackCA+IGt5b3VcIDsKK+abuyA+IHNob3VcIDsKK+absCA+IGV0c3VcIDsKK+abnyA+IHNoaW5cIDsKK+abjyA+IGt5b3VcIDsKK+abjCA+IHNob3VcIDsKK+abiSA+IGd5b3VcIDsKK+abhiA+IHJla2lcIDsKK+aauCA+IHJ5b3VcIDsKK+aasiA+IHNob3VcIDsKK+aamSA+IHNodW5cIDsKK+aajSA+IGV0c3VcIDsKK+aZvyA+IHNob3VcIDsKK+aZviA+IHJ5b3VcIDsKK+aZsyA+IHNla2lcIDsKK+aZsCA+IHNla2lcIDsKK+aZqyA+IHRha3VcIDsKK+aZqCA+IHNoaW5cIDsKK+aZmSA+IHNodW5cIDsKK+aZkSA+IGt5b3VcIDsKK+aZjCA+IHNob3VcIDsKK+aZiyA+IHNoaW5cIDsKK+aZiSA+IHNoaW5cIDsKK+aZgSA+IGNob3VcIDsKK+aZgCA+IGNob3VcIDsKK+aYtiA+IGNob3VcIDsKK+aYriA+IHNob3VcIDsKK+aYoyA+IHNoaW5cIDsKK+aYjCA+IHNob3VcIDsKK+aYgyA+IHNva3VcIDsKK+aXviA+IHNodW5cIDsKK+aXpyA+IGt5dXVcIDsKK+aXkiA+IHJ5dXVcIDsKK+aXkCA+IGNob3VcIDsKK+aXiCA+IHJ5dXVcIDsKK+aWsiA+IHRha3VcIDsKK+aWriA+IHNha3VcIDsKK+aWoSA+IGF0c3VcIDsKK+aWoCA+IGtha3VcIDsKK+aWnyA+IHNoaW5cIDsKK+aWmyA+IGtva3VcIDsKK+aWmCA+IHNob3VcIDsKK+aWiCA+IGdha3VcIDsKK+aVvyA+IGt5b3VcIDsKK+aVvSA+IGt5b3VcIDsKK+aVqyA+IHNla3VcIDsKK+aVniA+IHNob3VcIDsKK+aVkiA+IGNoaW5cIDsKK+aVkCA+IHNoaW5cIDsKK+aVjiA+IGt5b3VcIDsKK+aViyA+IGtha3VcIDsKK+aVhyA+IHNha3VcIDsKK+aUtSA+IGJva3VcIDsKK+aUtCA+IGhva3VcIDsKK+aUqiA+IGtha3VcIDsKK+aUiiA+IGZ1a2lcIDsKK+aUiSA+IGtha3VcIDsKK+aTvyA+IHRla2lcIDsKK+aTtCA+IGtha3VcIDsKK+aTsiA+IHRla2lcIDsKK+aToiA+IHRla2lcIDsKK+aTmCA+IGhha3VcIDsKK+aTlyA+IGhla2lcIDsKK+aTkSA+IHNob3VcIDsKK+aTjCA+IHNha3VcIDsKK+aTiiA+IGdla2lcIDsKK+aTiSA+IHNha3VcIDsKK+aThyA+IHRha3VcIDsKK+aSuSA+IGtha3VcIDsKK+aSrCA+IGt5b3VcIDsKK+aSqSA+IHJ5b3VcIDsKK+aSqCA+IHNob3VcIDsKK+aSnyA+IGt5b3VcIDsKK+aSkSA+IGNob3VcIDsKK+aSkCA+IGNob3VcIDsKK+aRvSA+IGh5b3VcIDsKK+aRrSA+IHNla2lcIDsKK+aRnSA+IHJva3VcIDsKK+aRmCA+IHRla2lcIDsKK+aRkSA+IGtha3VcIDsKK+aRjyA+IHNob3VcIDsKK+aRjiA+IGt5dXVcIDsKK+aQvyA+IGtha3VcIDsKK+aQviA+IHNha3VcIDsKK+aQtiA+IHNob3VcIDsKK+aQpiA+IGpha3VcIDsKK+aQoiA+IHNoaW5cIDsKK+aQoCA+IHNha3VcIDsKK+aQjyA+IGhha3VcIDsKK+aQiiA+IHNodXVcIDsKK+aQiSA+IGtha3VcIDsKK+aPqiA+IHNodXVcIDsKK+aPlSA+IGNoaW5cIDsKK+aOtSA+IGhhYmFcIDsKK+aOrCA+IGtpa3VcIDsKK+aOpiA+IHRla2lcIDsKK+aOpCA+IGh5b3VcIDsKK+aOmiA+IHJ5b3VcIDsKK+aOlSA+IHJ5b3VcIDsKK+aNtyA+IHNob3VcIDsKK+aNlCA+IGtha3VcIDsKK+aNkiA+IHNob3VcIDsKK+aNiSA+IHNva3VcIDsKK+aNhCA+IGt5dXVcIDsKK+aNgSA+IGtha3VcIDsKK+aMnyA+IGt5b3VcIDsKK+aMliA+IGF0c3VcIDsKK+aMkSA+IGNob3VcIDsKK+aMjCA+IGtha3VcIDsKK+aMiyA+IHNoaW5cIDsKK+aLsiA+IGt5b3VcIDsKK+aLsSA+IGt5b3VcIDsKK+aLqyA+IHNodXVcIDsKK+aLoSA+IGtha3VcIDsKK+aLkyA+IHRha3VcIDsKK+aLhiA+IHRha3VcIDsKK+aKuyA+IHNoaW5cIDsKK+aKniA+IHRha3VcIDsKK+aKjSA+IHNob3VcIDsKK+aKhCA+IHNob3VcIDsKK+aKgiA+IGt5b3VcIDsKK+aJqCA+IHNhdGVcIDsKK+aJmiA+IGNob3VcIDsKK+aJmCA+IHRha3VcIDsKK+aJkSA+IGhva3VcIDsKK+aJkCA+IHJva3VcIDsKK+aJhCA+IHNob3VcIDsKK+aIsyA+IHRha3VcIDsKK+aIriA+IHJpa3VcIDsKK+aIqyA+IHlva3VcIDsKK+aIoiA+IHNodXVcIDsKK+aInSA+IHpva3VcIDsKK+aIlSA+IHNob3VcIDsKK+aIiSA+IGV0c3VcIDsKK+aIiCA+IGhva29cIDsKK+aHviA+IHNob3VcIDsKK+aHsiA+IGNob3VcIDsKK+aHnyA+IHRzdWlcIDsKK+aHjyA+IHNodW5cIDsKK+aGrSA+IHJ5b3VcIDsKK+aGjSA+IGt5b3VcIDsKK+aGgCA+IHJ5b3VcIDsKK+aFvyA+IGh5b3VcIDsKK+aFvCA+IHNla2lcIDsKK+aFtCA+IHNob3VcIDsKK+aFryA+IHNob3VcIDsKK+aFqyA+IHNob3VcIDsKK+aFniA+IHNob3VcIDsKK+aFnSA+IHRva3VcIDsKK+aFkyA+IGh5b3VcIDsKK+aFjiA+IHNoaW5cIDsKK+aEvSA+IGhha3VcIDsKK+aEvCA+IHNoaW5cIDsKK+aEtiA+IGt5b3VcIDsKK+aEtSA+IGRla2lcIDsKK+aEqCA+IGtha3VcIDsKK+aEnCA+IGt5b3VcIDsKK+aEmSA+IGtha3VcIDsKK+aEliA+IHNoaW5cIDsKK+aEgSA+IHNodXVcIDsKK+aEgCA+IHNob3VcIDsKK+aDuyA+IHNva3VcIDsKK+aDtyA+IHNodW5cIDsKK+aDtSA+IGNob3VcIDsKK+aDqiA+IHRva3VcIDsKK+aDnSA+IHNob3VcIDsKK+aDliA+IHRla2lcIDsKK+aDlSA+IHRla2lcIDsKK+aDiiA+IHJ5b3VcIDsKK+aDhiA+IGNodXVcIDsKK+aDhCA+IGRla2lcIDsKK+aCtSA+IGNob3VcIDsKK+aCsyA+IHRva3VcIDsKK+aCpiA+IGV0c3VcIDsKK+aCpSA+IHlva3VcIDsKK+aCoiA+IHJ5b3VcIDsKK+aCmiA+IHNob3VcIDsKK+aChSA+IGV0c3VcIDsKK+aBtyA+IGt5dXVcIDsKK+aBsSA+IGV0c3VcIDsKK+aBqiA+IGtha3VcIDsKK+aBpyA+IGppa3VcIDsKK+aBnyA+IGt5b3VcIDsKK+aBlCA+IGt5b3VcIDsKK+aBjCA+IGNob3VcIDsKK+aBiiA+IGt5b3VcIDsKK+aBhyA+IGt5b3VcIDsKK+aAsyA+IGt5b3VcIDsKK+aAlyA+IGNob3VcIDsKK+aAjSA+IHNha3VcIDsKK+aAiiA+IGNob3VcIDsKK+W/uCA+IGppa3VcIDsKK+W/tyA+IGt5b3VcIDsKK+W/sSA+IHNoaW5cIDsKK+W/qiA+IHNob3VcIDsKK+W/oSA+IGNodXVcIDsKK+W/oCA+IGNodXVcIDsKK+W/kiA+IHRva3VcIDsKK+W/kSA+IHRva3VcIDsKK+W/hyA+IHJva3VcIDsKK+W+vCA+IGt5b3VcIDsKK+W+uCA+IHNob3VcIDsKK+W+tyA+IHRva3VcIDsKK+W+tSA+IGNob3VcIDsKK+W+sSA+IGh5b3VcIDsKK+W+oiA+IHNob3VcIDsKK+W+nCA+IHNob3VcIDsKK+W+hyA+IHNodW5cIDsKK+W9uCA+IHNob3VcIDsKK+W9tiA+IGtpaHVcIDsKK+W9syA+IHRla2lcIDsKK+W9sCA+IHNob3VcIDsKK+W9qiA+IGh5b3VcIDsKK+W9nyA+IGtha3VcIDsKK+W9lCA+IHJva3VcIDsKK+W9iiA+IGt5b3VcIDsKK+W9hSA+IG5hZ2lcIDsKK+W8uiA+IGt5b3VcIDsKK+W8tiA+IGd5YXVcIDsKK+W8qyA+IHNoaW5cIDsKK+W8nCA+IGt5b3VcIDsKK+W8lyA+IGRvcnVcIDsKK+W8kyA+IHl1bWlcIDsKK+W8jCA+IGl0c3VcIDsKK+W8iyA+IHlva3VcIDsKK+W7viA+IGt5b3VcIDsKK+W7uCA+IHRla2lcIDsKK+W7syA+IGNob3VcIDsKK+W7sCA+IGNob3VcIDsKK+W7qyA+IHJ5b3VcIDsKK+W7pyA+IHNoYXVcIDsKK+W7piA+IGhla2lcIDsKK+W7oCA+IHNob3VcIDsKK+W7nyA+IGJ5b3VcIDsKK+W7mSA+IHlva3VcIDsKK+W7mCA+IHJva3VcIDsKK+W7liA+IHJ5b3VcIDsKK+W7iyA+IHNodXVcIDsKK+W6vyA+IGJ5b3VcIDsKK+W6tCA+IHNla2lcIDsKK+W6sSA+IGNob3VcIDsKK+W6pSA+IGt5dXVcIDsKK+W6oCA+IHNob3VcIDsKK+W5rCA+IGNodXVcIDsKK+W5piA+IGJla2lcIDsKK+W5niA+IGhva3VcIDsKK+W5myA+IHNob3VcIDsKK+W5mSA+IGJha3VcIDsKK+W5mCA+IHNha3VcIDsKK+W5lyA+IGtha3VcIDsKK+W5liA+IGh5b3VcIDsKK+W5kyA+IHNoaW5cIDsKK+W5jiA+IGJla2lcIDsKK+W5giA+IGJla2lcIDsKK+W4pCA+IGdleW9cIDsKK+W4oiA+IGthaHVcIDsKK+W4myA+IGhha3VcIDsKK+W3qSA+IGt5b3VcIDsKK+W3pCA+IHJlaHVcIDsKK+W3kCA+IGNob3VcIDsKK+W2vSA+IGdha3VcIDsKK+W2ryA+IHNoaXVcIDsKK+W2qyA+IGd5b3VcIDsKK+W2qiA+IGd5b3VcIDsKK+W2qCA+IGtha3VcIDsKK+W2oiA+IGd5b3VcIDsKK+W2oCA+IGt5b3VcIDsKK+W2nCA+IHNoaW5cIDsKK+W2myA+IHJ5b3VcIDsKK+W2miA+IHJ5b3VcIDsKK+W2kiA+IHNob3VcIDsKK+W2kCA+IHJ5dXVcIDsKK+W2iCA+IHNoYXVcIDsKK+W2giA+IHNob3VcIDsKK+W1viA+IHNoaW5cIDsKK+W1uSA+IGt5b3VcIDsKK+W1tyA+IHNob3VcIDsKK+W1iiA+IHNob3VcIDsKK+W1gCA+IGNoaXVcIDsKK+W0vyA+IGdha3VcIDsKK+W0tyA+IHNoaXVcIDsKK+W0qCA+IHNlaHVcIDsKK+W0pyA+IHNodXVcIDsKK+W0miA+IHJ5b3VcIDsKK+W0iCA+IHNodXVcIDsKK+WzvSA+IGt5b3VcIDsKK+WzuyA+IHNodW5cIDsKK+WztyA+IHNoaW5cIDsKK+WzrSA+IHNob3VcIDsKK+WzqiA+IHlva3VcIDsKK+WzoyA+IGd5b3VcIDsKK+WzoSA+IGt5b3VcIDsKK+WziyA+IHNodW5cIDsKK+WziSA+IGdha3VcIDsKK+WziCA+IHJha3VcIDsKK+WzhiA+IGthaHVcIDsKK+WzhSA+IGt1cmFcIDsKK+WzgCA+IHNodXVcIDsKK+WyvCA+IHl1cmlcIDsKK+WytiA+IGhha3VcIDsKK+WysyA+IHRha2VcIDsKK+WyqyA+IHNodXVcIDsKK+WypiA+IHJ5dXVcIDsKK+WynSA+IHNha3VcIDsKK+WykSA+IHNoaW5cIDsKK+WyjCA+IGt5dXVcIDsKK+WxviA+IHNoaW5cIDsKK+WxtiA+IG5hdGFcIDsKK+WxsCA+IGdla2lcIDsKK+WxqiA+IHJ5b3VcIDsKK+WxkCA+IGdla2lcIDsKK+WxjCA+IGNob3VcIDsKK+WwvyA+IG55b3VcIDsKK+WwsCA+IHNob3VcIDsKK+WwrSA+IGd5b3VcIDsKK+WwpiA+IHJ5b3VcIDsKK+WwpSA+IHJ5b3VcIDsKK+WwniA+IHJ5b3VcIDsKK+WwmSA+IHNob3VcIDsKK+WwhyA+IHNob3VcIDsKK+WwhSA+IGtva3VcIDsKK+WvtCA+IHNoaW5cIDsKK+WvryA+IHNodW5cIDsKK+WvriA+IHJ5b3VcIDsKK+WvniA+IGJha3VcIDsKK+WvliA+IHNoaW5cIDsKK+WvkSA+IHNoaW5cIDsKK+WviSA+IGtha3VcIDsKK+WvhSA+IHRvcmFcIDsKK+WuuCA+IHNoaW5cIDsKK+WutyA+IHNoaW5cIDsKK+WuqyA+IGt5dXVcIDsKK+WuqCA+IHRld2FcIDsKK+WumSA+IGNodXVcIDsKK+WukiA+IGNodW5cIDsKK+WujSA+IG5pa3VcIDsKK+WuhiA+IGt5b3VcIDsKK+WtniA+IHNoaW5cIDsKK+WthyA+IHNhd2FcIDsKK+WsvCA+IHJpd2FcIDsKK+WsuCA+IHNoaW5cIDsKK+WstiA+IGtha2FcIDsKK+WspyA+IHNoaW5cIDsKK+WspiA+IGNoaXVcIDsKK+WspSA+IGNob3VcIDsKK+WsmSA+IHNob3VcIDsKK+WshSA+IGt1d2FcIDsKK+WrvyA+IGtha3VcIDsKK+WrniA+IHNob3VcIDsKK+WrnCA+IHNoYXVcIDsKK+WrliA+IGh5b3VcIDsKK+WrgCA+IHNoaW5cIDsKK+WqtyA+IGpva3VcIDsKK+WqsyA+IHNla2lcIDsKK+WqsCA+IHNoaXVcIDsKK+WqnSA+IHNodXVcIDsKK+WqmyA+IGhpbWVcIDsKK+WqiyA+IHNodW5cIDsKK+WqgyA+IGp5dXVcIDsKK+WpsyA+IGtha3VcIDsKK+WppCA+IHNodXVcIDsKK+WplSA+IHNob3VcIDsKK+WpiiA+IGh5b3VcIDsKK+WpiCA+IHJ5b3VcIDsKK+WphSA+IGtpa3VcIDsKK+WovCA+IHNob3VcIDsKK+WotyA+IHRzdWlcIDsKK+WoliA+IHNha3VcIDsKK+WolSA+IHNha3VcIDsKK+WogCA+IHNodXVcIDsKK+WnuiA+IHNoaW5cIDsKK+WnoCA+IHNob3VcIDsKK+WnnCA+IGt5b3VcIDsKK+WmvSA+IHNoaW5cIDsKK+WmsSA+IHNob3VcIDsKK+WmryA+IGNodXVcIDsKK+WmlSA+IGNodXVcIDsKK+WmkCA+IHNob3VcIDsKK+WlrSA+IHNla2lcIDsKK+WlrCA+IHNob3VcIDsKK+WlqCA+IHNob3VcIDsKK+WlniA+IHNodW5cIDsKK+WlnSA+IGNob3VcIDsKK+WkjCA+IHJ5b3VcIDsKK+WkiyA+IHNodW5cIDsKK+WjvyA+IHNodW5cIDsKK+WjuSA+IGljaGlcIDsKK+WjsyA+IGtha3VcIDsKK+WjoiA+IHJla2lcIDsKK+WjlyA+IG1hbWFcIDsKK+WjkSA+IGdha3VcIDsKK+WjhiA+IGtha3VcIDsKK+WivCA+IGtla2lcIDsKK+WiuyA+IHNob3VcIDsKK+WiuSA+IG1hbWFcIDsKK+WiqyA+IHNodW5cIDsKK+WioyA+IGhha3VcIDsKK+WinCA+IHRzdWlcIDsKK+WikiA+IHNob3VcIDsKK+WikSA+IHRla2lcIDsKK+WijyA+IHNob3VcIDsKK+WiiyA+IHNoaW5cIDsKK+WihyA+IHNob3VcIDsKK+WihCA+IHNva3VcIDsKK+WigiA+IGh5b3VcIDsKK+WhviA+IGp1a3VcIDsKK+WhuyA+IGJha3VcIDsKK+WhtiA+IGtva3VcIDsKK+WhqCA+IGt5b3VcIDsKK+WhpSA+IGtha3VcIDsKK+WhmSA+IGtha3VcIDsKK+WhliA+IHNob3VcIDsKK+WhkyA+IGJla2lcIDsKK+WhjSA+IHNob3VcIDsKK+WhiSA+IHNla2lcIDsKK+WguyA+IHNoaW5cIDsKK+WguSA+IHNob3VcIDsKK+WgryA+IGd5b3VcIDsKK+WgriA+IGdha3VcIDsKK+WgmCA+IHNob3VcIDsKK+WfuyA+IHNodW5cIDsKK+WfqyA+IHNob3VcIDsKK+WfliA+IGdvbWlcIDsKK+WfkCA+IHNoaW5cIDsKK+WfiCA+IHNodW5cIDsKK+WfhiA+IGtha3VcIDsKK+WfgSA+IHNoaW5cIDsKK+WesyA+IGdha2VcIDsKK+WerCA+IGt5b3VcIDsKK+WemCA+IGh1a3VcIDsKK+WdvCA+IHRha3VcIDsKK+WdtiA+IGJva3VcIDsKK+WdtSA+IGt5b3VcIDsKK+WdtCA+IHJpa3VcIDsKK+WdpyA+IHNla2lcIDsKK+WcviA+IGd5dXVcIDsKK+WcuCA+IHlhbWFcIDsKK+WcsyA+IHNoaXVcIDsKK+WcpSA+IHJva3VcIDsKK+WcpCA+IGhha3VcIDsKK+WcoCA+IGF0c3VcIDsKK+WcgCA+IGtva3VcIDsKK+WbuyA+IGtva3VcIDsKK+WbtiA+IGtva3VcIDsKK+WbryA+IGtva3VcIDsKK+WboiA+IHNodXVcIDsKK+WbnyA+IHNoaW5cIDsKK+WbmiA+IHNodXVcIDsKK+WasyA+IGtva3VcIDsKK+WaqyA+IHNoaW5cIDsKK+WaqSA+IGhha3VcIDsKK+WapiA+IHJla2lcIDsKK+WaoCA+IHJ5dXVcIDsKK+WanSA+IGtha3VcIDsKK+WalyA+IGhha3VcIDsKK+WakCA+IHNob3VcIDsKK+WajSA+IHNoaW5cIDsKK+WaiyA+IGNodXVcIDsKK+WahyA+IGtha3VcIDsKK+WahCA+IGtha3VcIDsKK+WagSA+IHRla2lcIDsKK+WZrSA+IGt5b3VcIDsKK+WZqSA+IGtha3VcIDsKK+WZpiA+IGV0c3VcIDsKK+WZlyA+IGJva3VcIDsKK+WZjyA+IGt5dXVcIDsKK+WZjiA+IGl0c3VcIDsKK+WZiiA+IGl0c3VcIDsKK+WYvyA+IGJva3VcIDsKK+WYvCA+IGt5dXVcIDsKK+WYuiA+IGt5b3VcIDsKK+WYuCA+IHNhem9cIDsKK+WYryA+IHNob3VcIDsKK+WYqCA+IHNob3VcIDsKK+WYniA+IHJva3VcIDsKK+WYmiA+IHRva3VcIDsKK+WYliA+IHNha3VcIDsKK+WYkyA+IGtha3VcIDsKK+WYgiA+IGt5b3VcIDsKK+WYgSA+IHNhaHVcIDsKK+WYgCA+IHNha3VcIDsKK+WXvSA+IHVnYWlcIDsKK+WXvCA+IGJha3VcIDsKK+WXnSA+IGtha3VcIDsKK+WXlyA+IGF0c3VcIDsKK+WXlCA+IHNoaW5cIDsKK+WXkSA+IGthaHVcIDsKK+WXjSA+IHNha3VcIDsKK+WXiyA+IGt5b3VcIDsKK+WXhiA+IHNob3VcIDsKK+WXgCA+IGtha3VcIDsKK+WWsiA+IHlha3VcIDsKK+WWrCA+IGt5b3VcIDsKK+WWqCA+IHJ5b3VcIDsKK+WWoiA+IHRlaHVcIDsKK+WWniA+IHNva3VcIDsKK+WWgSA+IGd5b3VcIDsKK+WWgCA+IGtha3VcIDsKK+WVviA+IHNodXVcIDsKK+WVryA+IGtha3VcIDsKK+WVpiA+IHJhaHVcIDsKK+WVoiA+IHJ5b3VcIDsKK+WViyA+IGt5b3VcIDsKK+WVhyA+IHRla2lcIDsKK+WVhSA+IHRha3VcIDsKK+WVhCA+IHRha3VcIDsKK+WVgyA+IHNodXVcIDsKK+WUvSA+IHNla2lcIDsKK+WUvCA+IHNhaHVcIDsKK+WUtCA+IGt5b3VcIDsKK+WUriA+IHNodXVcIDsKK+WUpyA+IHNva3VcIDsKK+WUoSA+IHJ5b3VcIDsKK+WUmiA+IHNoaW5cIDsKK+WUmSA+IHRla2lcIDsKK+WUkiA+IHNodXVcIDsKK+WUiiA+IGt5b3VcIDsKK+WUgyA+IGtva3VcIDsKK+WTqCA+IHNob3VcIDsKK+WTjSA+IGt5b3VcIDsKK+WTgiA+IHNoaW5cIDsKK+WSuSA+IGF0c3VcIDsKK+WStiA+IGt1dWlcIDsKK+WSryA+IGtha3VcIDsKK+WSoiA+IGdha3VcIDsKK+WSoCA+IHNodXVcIDsKK+WSnyA+IGtha3VcIDsKK+WSiyA+IHNha3VcIDsKK+WRuyA+IHNoaW5cIDsKK+WRuiA+IGt5b3VcIDsKK+WRuSA+IGl0c3VcIDsKK+WRqyA+IHRlaHVcIDsKK+WRjyA+IHNob3VcIDsKK+WRjiA+IHNla2lcIDsKK+WRjCA+IGt5b3VcIDsKK+WRhCA+IGtva3VcIDsKK+WQvyA+IGtva3VcIDsKK+WQtSA+IGJ5b3VcIDsKK+WQsiA+IHNoaW5cIDsKK+WQoyA+IHNoaW5cIDsKK+WQoiA+IHNoaW5cIDsKK+WQnCA+IGNodXVcIDsKK+WPvCA+IGNob3VcIDsKK+WPuyA+IHJva3VcIDsKK+WPtiA+IGt5b3VcIDsKK+WPoCA+IGNob3VcIDsKK+WPkiA+IGpha3VcIDsKK+WPiSA+IG1hdGFcIDsKK+WOsCA+IHNob3VcIDsKK+WOryA+IHJla2lcIDsKK+WOpCA+IHJla2lcIDsKK+WOnSA+IHNha3VcIDsKK+WOkiA+IGthaHVcIDsKK+WOiyA+IGF0c3VcIDsKK+WOhyA+IHRha3VcIDsKK+WNviA+IGdha3VcIDsKK+WNvSA+IHNva3VcIDsKK+WNsiA+IHNob3VcIDsKK+WNrSA+IGt5b3VcIDsKK+WNoSA+IHNhaHVcIDsKK+WNnCA+IGJva3VcIDsKK+WNmSA+IHNob3VcIDsKK+WNjCA+IHNodXVcIDsKK+WNgiA+IHNoaW5cIDsKK+WMvyA+IHRva3VcIDsKK+WMtSA+IHRva3VcIDsKK+WMqSA+IGt5b3VcIDsKK+WMpyA+IGt5b3VcIDsKK+WMoyA+IGhha29cIDsKK+WMoSA+IGt5b3VcIDsKK+WMniA+IHNob3VcIDsKK+WMmyA+IGt5dXVcIDsKK+WMkyA+IGt5b3VcIDsKK+WMkSA+IGt5dXVcIDsKK+WMkCA+IGhva3VcIDsKK+WMiiA+IGtpa3VcIDsKK+WMiSA+IGh5b3VcIDsKK+WMiCA+IGt5b3VcIDsKK+WLvCA+IGt5dXVcIDsKK+WLsCA+IGt5b3VcIDsKK+WLpSA+IGt5b3VcIDsKK+WLoyA+IHNla2lcIDsKK+WLoCA+IHJpa3VcIDsKK+WLkiA+IHJva3VcIDsKK+WLgCA+IGtva3VcIDsKK+WKuyA+IGt5b3VcIDsKK+WKsCA+IGJha3VcIDsKK+WKriA+IGl0c3VcIDsKK+WKrSA+IHNob3VcIDsKK+WKpiA+IGt5b3VcIDsKK+WKnCA+IGF0c3VcIDsKK+WKkCA+IGtha3VcIDsKK+WKiyA+IHN5b3VcIDsKK+WKiSA+IHJ5dXVcIDsKK+WKiCA+IGhla2lcIDsKK+WKhSA+IHRha3VcIDsKK+WKgSA+IHN5b3VcIDsKK+WJuSA+IHJpa3VcIDsKK+WJryA+IGZ1a3VcIDsKK+WJqyA+IHRha3VcIDsKK+WJqCA+IGtha3VcIDsKK+WJoiA+IHRva3VcIDsKK+WJnSA+IGhha3VcIDsKK+WJlCA+IHRla2lcIDsKK+WJkiA+IHNha3VcIDsKK+WJiyA+IGtva3VcIDsKK+WIvCA+IGt5b3VcIDsKK+WIpiA+IGt5b3VcIDsKK+WInyA+IGNob3VcIDsKK+WImCA+IHJ5dXVcIDsKK+WHuCA+IGRla29cIDsKK+WHtiA+IGt5b3VcIDsKK+WHtCA+IGh5b3VcIDsKK+WHqiA+IG5hZ2lcIDsKK+WHpyA+IHRha29cIDsKK+WHmSA+IHRha3VcIDsKK+WHiyA+IGNob3VcIDsKK+WHiSA+IHJ5b3VcIDsKK+WHhyA+IHNob3VcIDsKK+WGviA+IGt5b3VcIDsKK+WGvCA+IHNob3VcIDsKK+WGtSA+IGt5b3VcIDsKK+WGsiA+IGNodXVcIDsKK+WGsCA+IGh5b3VcIDsKK+WGqyA+IGh5b3VcIDsKK+WGqiA+IGJla2lcIDsKK+WGoiA+IGNob3VcIDsKK+WGliA+IGJla2lcIDsKK+WGkSA+IGNodXVcIDsKK+WFuCA+IG5vcmlcIDsKK+WFoiA+IGt5b3VcIDsKK+WFnyA+IHNoaW5cIDsKK+WFkyA+IHNoaW5cIDsKK+WFjyA+IGNob3VcIDsKK+WFiyA+IGtva3VcIDsKK+WFhyA+IGt5b3VcIDsKK+WFhiA+IGNob3VcIDsKK+WFgiA+IHNoaW5cIDsKK+WEtSA+IHNodXVcIDsKK+WEtCA+IHNob3VcIDsKK+WEriA+IHJla2lcIDsKK+WErSA+IHNoaW5cIDsKK+WErCA+IHNoaW5cIDsKK+WEpiA+IGh5b3VcIDsKK+WEoCA+IHJ5b3VcIDsKK+WElCA+IGNodXVcIDsKK+WEgSA+IHNodW5cIDsKK+WDvSA+IHNodXVcIDsKK+WDuyA+IGhla2lcIDsKK+WDuiA+IHNob3VcIDsKK+WDtSA+IGt5b3VcIDsKK+WDsCA+IGhva3VcIDsKK+WDpSA+IGd5b3VcIDsKK+WDmCA+IHNob3VcIDsKK+WDhyA+IHJpa3VcIDsKK+WCvSA+IHNob3VcIDsKK+WCuSA+IGt5b3VcIDsKK+WCtiA+IHNva3VcIDsKK+WCsSA+IHNob3VcIDsKK+WClSA+IGtha3VcIDsKK+WBtyA+IGNodXVcIDsKK+WBsSA+IHNodW5cIDsKK+WBriA+IHNodXVcIDsKK+WBhiA+IHNodW5cIDsKK+WBhSA+IHNob3VcIDsKK+WBgSA+IHNob3VcIDsKK+WAsCA+IHJ5b3VcIDsKK+WAryA+IHNob3VcIDsKK+WArCA+IHRha3VcIDsKK+WAoiA+IHNob3VcIDsKK+WAoSA+IHNob3VcIDsKK+WAnCA+IHRla2lcIDsKK+WAmCA+IHNob3VcIDsKK+WAhiA+IHJ5b3VcIDsKK+WAgyA+IGt5dXVcIDsKK+WAgCA+IGNob3VcIDsKK+S/tSA+IGh5b3VcIDsKK+S/oyA+IG1hdGFcIDsKK+S/oiA+IHNodXVcIDsKK+S/oCA+IGt5b3VcIDsKK+S/jSA+IHJ5b3VcIDsKK+S/iyA+IGNodXVcIDsKK+S/iCA+IGtva3VcIDsKK+S/hyA+IGt5YXVcIDsKK+S/hSA+IGt5dXVcIDsKK+S+uiA+IHNoaW5cIDsKK+S+tiA+IHRvbW9cIDsKK+S+tCA+IGNodXVcIDsKK+S+siA+IHNoaW5cIDsKK+S+oCA+IGt5YW5cIDsKK+S+nCA+IGNodXVcIDsKK+S+miA+IHNodW5cIDsKK+S+giA+IHRha3VcIDsKK+S+gSA+IHNoaW5cIDsKK+S9viA+IGl0c3VcIDsKK+S9uyA+IGNob3VcIDsKK+S9sCA+IGhha3VcIDsKK+S9rCA+IHJ5b3VcIDsKK+S9qyA+IGtha3VcIDsKK+S9lyA+IHdhYmlcIDsKK+S9lCA+IGNoaW5cIDsKK+S9iyA+IHNob3VcIDsKK+S8tyA+IGNodXVcIDsKK+S8qSA+IHNoaW5cIDsKK+S8lCA+IHNoaW5cIDsKK+S8iyA+IGt5dXVcIDsKK+S8iCA+IHNoaW5cIDsKK+S8hCA+IGNob3VcIDsKK+S8gCA+IHNob3VcIDsKK+S7vCA+IGt5b3VcIDsKK+S7oiA+IGhha3VcIDsKK+S7lyA+IHRzdWVcIDsKK+S7iSA+IHNob3VcIDsKK+S7giA+IHJva3VcIDsKK+S6vCA+IHNodXVcIDsKK+S6syA+IGhha3VcIDsKK+S6ryA+IGt5b3VcIDsKK+S6riA+IHJ5b3VcIDsKK+S6qCA+IGt5b3VcIDsKK+S6gCA+IGthbWVcIDsKK+S5oyA+IGt5dXVcIDsKK+S5nyA+IG5hcmlcIDsKK+S5hyA+IHRha3VcIDsKK+S5hiA+IGt5dXVcIDsKK+S4tSA+IHNha3VcIDsKK+S4riA+IGtla2lcIDsKK+S4qSA+IGt5dXVcIDsKK+S4pCA+IHJ5b3VcIDsKK+S4oiA+IGNodXVcIDsKK+S4oCA+IGt5dXVcIDsKK+S4nyA+IGNodXVcIDsKK+S4niA+IHNob3VcIDsKK+S4kiA+IGNodXVcIDsKK+S4kSA+IHVzaGlcIDsKK+S4hCA+IHNob3VcIDsKK+OAhyA+IG1hcnVcIDsKK+i/tyA+IG1laVwgOwor5b+1ID4gbmVuXCA7Civnn60gPiB0YW5cIDsKK+W/qyA+IGthaVwgOwor6L+lID4ga2VpXCA7Civnn6UgPiBjaGlcIDsKK+efnCA+IGtpblwgOwor5b+ZID4gYm91XCA7Civlv5ggPiBib3VcIDsKK+i/lCA+IGhlblwgOwor6L+RID4ga2luXCA7Civov44gPiBnZWlcIDsKK+W/jSA+IG5pblwgOwor6L+FID4gamluXCA7Civovr8gPiB0ZW5cIDsKK+eeuyA+IHNlblwgOwor6L66ID4gaGVuXCA7CivovrIgPiBub3VcIDsKK+i+ryA+IGJlblwgOwor5b6qID4ganVuXCA7CivnnqAgPiBkb3VcIDsKK+W+niA+IGp1dVwgOwor5b6TID4ganV1XCA7CivlvoogPiBrYWlcIDsKK+W+hSA+IHRhaVwgOwor5b6EID4ga2VpXCA7CivlvakgPiBzYWlcIDsKK+edqCA+IGdlaVwgOwor552hID4gc3VpXCA7CivovZ8gPiBnb3VcIDsKK+W9kyA+IHRvdVwgOwor6L2JID4gdGVuXCA7CivlvYggPiBkYW5cIDsKK+ecqSA+IGdlblwgOwor55ygID4gbWluXCA7CivlvJ8gPiB0ZWlcIDsKK+W8myA+IHNoaVwgOwor5byYID4ga291XCA7CivovJUgPiBrZWlcIDsKK+ecjCA+IGtlblwgOwor55yLID4ga2FuXCA7CivovIkgPiBzYWlcIDsKK+W8hCA+IHJvdVwgOwor55yBID4gc2VpXCA7CivlvIEgPiBiZW5cIDsKK+i7vSA+IGtlaVwgOwor5bu7ID4ga2FpXCA7Civlu7ogPiBrZW5cIDsKK+ebuCA+IHNvdVwgOwor55ulID4ga2FuXCA7Civnm6MgPiBrYW5cIDsKK+i7oiA+IHRlblwgOwor5bujID4ga291XCA7Civlu6IgPiBoYWlcIDsKK+eboSA+IGppblwgOwor55ucID4gdG91XCA7Civnm5sgPiBzZWlcIDsKK+eblyA+IHRvdVwgOwor6LuNID4gZ3VuXCA7Civlu4ogPiByb3VcIDsKK+W7iSA+IHJlblwgOwor55uGID4gYm9uXCA7Civnm4MgPiBoYWlcIDsKK+W7gyA+IGhhaVwgOwor5bq4ID4geW91XCA7CivlurcgPiBrb3VcIDsKK+easCA+IGhvdVwgOwor5bqaID4ga291XCA7CivlupYgPiBob3VcIDsKK+i6kyA+IGNoaVwgOwor6LqHID4gY2hvXCA7CivnmocgPiBrb3VcIDsKK+W6hCA+IHNvdVwgOwor5bqDID4ga291XCA7Civlub4gPiBpa3VcIDsKK+W5vSA+IHl1dVwgOwor5bm8ID4geW91XCA7CivnmbsgPiB0b3VcIDsKK+W5siA+IGthblwgOwor55mMID4gZ2FuXCA7CivnmYcgPiBrYW5cIDsKK+W4vSA+IGJvdVwgOwor5bi2ID4gdGFpXCA7CivluK8gPiB0YWlcIDsKK+W4qyA+IHNoaVwgOwor6LifID4gY2hpXCA7CivouI8gPiB0b3VcIDsKK+i4iiA+IHlvdVwgOwor5biCID4gc2hpXCA7Civlt74gPiBraW5cIDsKK+eXtCA+IGNoaVwgOwor55epID4gc291XCA7Civlt6cgPiBrb3VcIDsKK+W3pSA+IGtvdVwgOwor6LehID4gYXRvXCA7Civot58gPiBrb25cIDsKK+W3oSA+IGp1blwgOwor6LedID4ga3lvXCA7Civnl5UgPiBrb25cIDsKK+eXkiA+IHlvdVwgOwor5bauID4ga2VuXCA7CivnloogPiBqb3VcIDsKK+eVtiA+IHRvdVwgOwor6LWwID4gc291XCA7CivnlaogPiBiYW5cIDsKK+i1pyA+IHRhblwgOwor55WmID4gYXplXCA7CivnlZQgPiBoYW5cIDsKK+eVjCA+IGthaVwgOwor5bWMID4ga2FuXCA7CivnlLIgPiBrb3VcIDsKK+W0qSA+IGhvdVwgOwor55SoID4geW91XCA7CivnlKMgPiBzYW5cIDsKK+eUmCA+IGthblwgOwor5bSXID4ga291XCA7CivotIUgPiB6ZWlcIDsKK+izvSA+IHNhaVwgOwor6LO8ID4ga291XCA7Civos7ogPiB0YW5cIDsKK+eTtiA+IGJpblwgOwor6LOjID4gYmFpXCA7Civos6IgPiBrZW5cIDsKK+eTnCA+IHVyaVwgOwor6LOHID4gc2hpXCA7CivosrwgPiB0ZW5cIDsKK+iyuCA+IHRhaVwgOwor6LK3ID4gYmFpXCA7CivosrAgPiBzZWlcIDsKK+iyryA+IGNob1wgOwor5bKpID4gaXdhXCA7CivosqcgPiBiaW5cIDsKK+iyoSA+IHphaVwgOwor5bKhID4ga291XCA7Civosp4gPiB0ZWlcIDsKK+iynSA+IGthaVwgOwor6LGqID4gZ291XCA7CivlsaQgPiBzb3VcIDsKK+ixoSA+IHpvdVwgOwor5bGVID4gdGVuXCA7CivosZAgPiBob3VcIDsKK+WxjyA+IGhlaVwgOwor6LGKID4gaG91XCA7CivlsYYgPiBrYWlcIDsKK+WxhSA+IGt5b1wgOwor5bC9ID4gamluXCA7CivnkLIgPiBoYWlcIDsKK+WwpCA+IHl1dVwgOwor5bCgID4gc2VuXCA7CivlsJogPiBuYW9cIDsKK+WwliA+IHNlblwgOwor5bCOID4gZG91XCA7CivlsI0gPiB0YWlcIDsKK+WwiyA+IGppblwgOwor5bCJID4gam91XCA7CivlsIggPiBzZW5cIDsKK+WwhCA+IHNoYVwgOwor5bCBID4gZnV1XCA7Civnj74gPiBnZW5cIDsKK+WvuCA+IHN1blwgOwor5a+rID4gc2hhXCA7Civnj6ogPiBrZWlcIDsKK+WvkiA+IGthblwgOwor5a65ID4geW91XCA7CivlrrUgPiB5b2lcIDsKK+WusyA+IGdhaVwgOwor5a6wID4gc2FpXCA7CivnjqkgPiBnYW5cIDsKK+WuoyA+IHNlblwgOwor5a6bID4gYXRlXCA7CivlrpogPiB0ZWlcIDsKK+WumCA+IGthblwgOwor5a6MID4ga2FuXCA7CivoroogPiBoZW5cIDsKK+iugyA+IHNhblwgOwor546EID4gZ2VuXCA7CivnjbsgPiBrZW5cIDsKK+eNuCA+IGp1dVwgOwor6K2yID4gam91XCA7CivorasgPiBzZW5cIDsKK+itpiA+IGtlaVwgOwor5a2YID4gc29uXCA7CivlrZQgPiBrb3VcIDsKK+isuSA+IGtpblwgOwor54y2ID4geXV1XCA7CivlrKogPiBoaW5cIDsKK+WsoiA+IGpvdVwgOwor6KydID4gc2hhXCA7CivnjJwgPiBzYWlcIDsKK+ismyA+IGtvdVwgOwor6KyZID4ga2VuXCA7Civni70gPiBoYWlcIDsKK+iruCA+IHNob1wgOwor6KumID4gdGVpXCA7Civni6EgPiBrb3VcIDsKK+eLmSA+IHNob1wgOwor54uXID4ga291XCA7Civoq5YgPiByb25cIDsKK+iriyA+IHNlaVwgOwor5auMID4gaXlhXCA7Civoq4cgPiBkYW5cIDsKK+eLgyA+IGp1dVwgOwor54q2ID4gam91XCA7Civniq8gPiBoYW5cIDsKK+eKrCA+IGludVwgOwor6KqYID4geXV1XCA7CivoqpMgPiBzZWlcIDsKK+WqkiA+IGJhaVwgOwor6KqNID4gbmluXCA7CivoqowgPiBzaGlcIDsKK+iqhCA+IHJ1aVwgOwor6KmyID4gZ2FpXCA7CivnibIgPiBzZWlcIDsKK+ipriA+IHNlblwgOwor6KmpID4gc2hpXCA7CivoqaYgPiBzaGlcIDsKK+eJoiA+IHJvdVwgOwor54mhID4gb3N1XCA7CivoqZ4gPiBzaGlcIDsKK+WpmiA+IGtvblwgOwor54mMID4gcGFpXCA7CivniYggPiBoYW5cIDsKK+eJhyA+IGhlblwgOwor54mAID4gc291XCA7CivniL0gPiBzb3VcIDsKK+iosSA+IGt5b1wgOwor54itID4gc291XCA7CivoqKogPiBob3VcIDsKK+eImyA+IHJhblwgOwor5aiRID4gc2hhXCA7CivoqIogPiBqaW5cIDsKK+ioiCA+IGtlaVwgOwor6KiAID4gZ2VuXCA7Civnh7sgPiBrdW5cIDsKK+inoyA+IGthaVwgOwor5aeTID4gc2VpXCA7Civlp4sgPiBzaGlcIDsKK+WniSA+IGFuZVwgOwor54eIID4gdG91XCA7Civnh4MgPiBuZW5cIDsKK+ingCA+IGthblwgOwor6Ka9ID4gcmFuXCA7CivoprMgPiBrYW5cIDsKK+imqiA+IG95YVwgOwor6KanID4gcmFuXCA7CivoppcgPiBzaGlcIDsKK+imliA+IHNoaVwgOwor5aaWID4geW91XCA7CivlpoogPiBuaW5cIDsKK+WmhCA+IGJvdVwgOwor54W9ID4gc2VuXCA7Civlpb0gPiBrb3VcIDsKK+eFriA+IHNoYVwgOwor5aWuID4gZnVuXCA7CivnhakgPiBoYW5cIDsKK+ilpCA+IHJhblwgOwor5aWlID4gb2t1XCA7CivlpaIgPiBzaGFcIDsKK+ilnyA+IGVyaVwgOwor5aWXID4gdG91XCA7CivlpY8gPiBzb3VcIDsKK+eFjiA+IHNlblwgOwor5aWJID4gaG91XCA7CivlpL4gPiBrb3VcIDsKK+ikuCA+IHJvdVwgOwor54S2ID4gemVuXCA7CivopKogPiB0YWlcIDsKK+WkqSA+IHRlblwgOwor5aSnID4gdGFpXCA7CivnhJogPiBmdW5cIDsKK+WklSA+IHl1dVwgOwor6KSSID4gaG91XCA7CivlpIkgPiBoZW5cIDsKK+ijvSA+IHNlaVwgOwor5aO7ID4gc2VpXCA7Civlo7IgPiBiYWlcIDsKK+WjsCA+IGtvZVwgOwor5aOvID4gc291XCA7Civlo6sgPiBzaGlcIDsKK+ijnSA+IHNvdVwgOwor5aOeID4ga2FpXCA7Civoo5UgPiB5dXVcIDsKK+ijjyA+IHVyYVwgOwor5aOKID4ga2FpXCA7Civlo4cgPiBkYW5cIDsKK+ijhSA+IHNvdVwgOwor6KOBID4gc2FpXCA7CivngrkgPiB0ZW5cIDsKK+iioiA+IGhhblwgOwor5aKXID4gem91XCA7CivngoogPiBzdWlcIDsKK+iigiA+IGJlaVwgOwor54G9ID4gc2FpXCA7CivngbAgPiBoYWlcIDsKK+ihoSA+IGtvdVwgOwor5aGUID4gdG91XCA7CivngYwgPiBrYW5cIDsKK+ihgCA+IGNoaVwgOwor5aGAID4gaGVpXCA7CivooLYgPiBzYW5cIDsKK+WgsSA+IGhvdVwgOwor5aCqID4ga2FuXCA7CivngJUgPiBoaW5cIDsKK+WghiA+IHRhaVwgOwor5aCFID4ga2VuXCA7CivloIIgPiBkb3VcIDsKK+ifuyA+IGFyaVwgOwor5r+6ID4gc2VuXCA7Civmv7EgPiBoaW5cIDsKK+a/nyA+IHNhaVwgOwor5r+YID4gbmVpXCA7Civln4sgPiBtYWlcIDsKK+a/gyA+IG5vdVwgOwor5r65ID4gdGFuXCA7CivonqIgPiBrZWlcIDsKK+WeoiA+IGFrYVwgOwor6b6VID4gZ2FuXCA7Civono0gPiB5dXVcIDsKK+WegiA+IHN1aVwgOwor6J2/ID4gaGFlXCA7CivmvbAgPiBrYWlcIDsKK+WdpiA+IHRhblwgOwor6b2hID4gcmVpXCA7CivmvZwgPiBzZW5cIDsKK+idmSA+IGhlblwgOwor6b2OID4gc2VpXCA7CivpvYogPiBzZWlcIDsKK+idiyA+IHJvdVwgOwor5Z2KID4gYm91XCA7CivlnYcgPiBraW5cIDsKK+icuyA+IHNlaVwgOwor5ry4ID4gemVuXCA7CivlnLAgPiBjaGlcIDsKK+a8rCA+IHNoaVwgOwor5ZyoID4gemFpXCA7CivmvKIgPiBrYW5cIDsKK+icmCA+IGNoaVwgOwor5ZyYID4gZGFuXCA7CivmvJUgPiBzb3VcIDsKK+a8jyA+IHJvdVwgOwor5ZyPID4ga2VuXCA7Civmu78gPiBtYW5cIDsKK+WbsCA+IGtvblwgOwor5ruvID4gdGFpXCA7Civpu6ggPiB0b3VcIDsKK+WboyA+IGRhblwgOwor6bueID4gdGVuXCA7Civlm54gPiBrYWlcIDsKK+ibmyA+IHNodVwgOwor5ZubID4geW9uXCA7Civom4kgPiByZWlcIDsKK+ibhiA+IHNob1wgOwor6bq7ID4gYXNhXCA7CivmurYgPiB5b3VcIDsKK+WatCA+IGdlblwgOwor5rqqID4ga2VpXCA7CivpupcgPiByZWlcIDsKK+a6liA+IGp1blwgOwor5rqAID4gbWFuXCA7Civmub4gPiB3YW5cIDsKK+m5uCA+IGtlblwgOwor5ZmqID4gc291XCA7CivmuacgPiB5dXVcIDsKK+iZnyA+IGdvdVwgOwor6JmcID4gcnlvXCA7CivomZogPiBreW9cIDsKK+WZmyA+IGdvdVwgOwor6JmVID4gc2hvXCA7CivlmYwgPiBzb3VcIDsKK+WYsiA+IHRvdVwgOwor6JitID4gcmFuXCA7CivmuKYgPiB1enVcIDsKK+a4oCA+IGt5b1wgOwor5ribID4gZ2VuXCA7CivlmJggPiB1c29cIDsKK+a4iCA+IHNhaVwgOwor5ZiGID4gdGFuXCA7CivmuIUgPiBzZWlcIDsKK+iYgiA+IHp1aVwgOwor5re7ID4gdGVuXCA7Civmt7ogPiBzZW5cIDsKK+a3tyA+IGtvblwgOwor6JepID4gaGFuXCA7Civll6MgPiBzaGlcIDsKK+a3oSA+IHRhblwgOwor6JedID4gZ2VpXCA7Civll5wgPiBzaGlcIDsKK+a3iyA+IHJpblwgOwor6JeJID4gc2hhXCA7Civpt4QgPiBrZWlcIDsKK+a2siA+IGVraVwgOwor6JavID4gc2hvXCA7CivllrAgPiBrdXVcIDsKK+a2ryA+IGdhaVwgOwor6JauID4gc291XCA7Civllq4gPiB0YW5cIDsKK+iWpiA+IHNlblwgOwor5ZanID4ga2VuXCA7CivllpogPiBrYW5cIDsKK+WWmCA+IHplblwgOwor5raMID4geXV1XCA7CivlloQgPiB6ZW5cIDsKK+WVvCA+IHRlaVwgOwor5rW3ID4gdW1pXCA7CivmtaogPiByb3VcIDsKK+iVqSA+IHRvdVwgOwor5ZWjID4ga2FuXCA7CivllY8gPiBtb25cIDsKK+a1hSA+IHNlblwgOwor5rWEID4gam91XCA7CivolL0gPiBoZWlcIDsKK+WUuCA+IHRlblwgOwor6JS1ID4gc291XCA7CivmtJcgPiBzZW5cIDsKK+a0kiA+IHNlaVwgOwor5ZSQID4gdG91XCA7CivmtIsgPiB5b3VcIDsKK+mztCA+IG1laVwgOwor5rOhID4gYXdhXCA7Civms5UgPiBob3VcIDsKK+WTgSA+IGhpblwgOwor6JK8ID4gc291XCA7CivokrggPiBqb3VcIDsKK+WSrCA+IGtvdVwgOwor6JKfID4ga29uXCA7CivokpkgPiBtb3VcIDsKK+ayliA+IG9raVwgOwor6JKUID4gc2hpXCA7CivmsowgPiB0b25cIDsKK+WRvSA+IG1laVwgOwor5ZGzID4gYWppXCA7CivokawgPiBzb3VcIDsKK+iRoyA+IHRvdVwgOwor5rGgID4gaWtlXCA7CivlkZ8gPiBnZW5cIDsKK+axlyA+IGFzZVwgOwor5ZGRID4gZG9uXCA7CivlkYYgPiBib3VcIDsKK+WRgiA+IHJ5b1wgOwor6bC6ID4gYWppXCA7CivlkLsgPiBmdW5cIDsKK+WQuSA+IHN1aVwgOwor6JCsID4gbWFuXCA7CivlkKsgPiBnYW5cIDsKK+WQnSA+IHJpblwgOwor5ZCbID4ga3VuXCA7CivlkJEgPiBrb3VcIDsKK+awjyA+IHVqaVwgOwor6JCMID4gaG91XCA7CivlkIwgPiBkb3VcIDsKK+awiCA+IHNlblwgOwor5ZCIID4gZ291XCA7CivokIQgPiB0b3VcIDsKK+WPuCA+IHNoaVwgOwor5Y+yID4gc2hpXCA7Civlj7AgPiBkYWlcIDsKK+iPqyA+IGtpblwgOwor5q+rID4ga291XCA7Civoj6kgPiBoYWlcIDsKK+WPqSA+IGtvdVwgOwor5Y+lID4ga291XCA7Civmr44gPiBtYWlcIDsKK+WPjSA+IGhhblwgOwor5Y+DID4gc2FuXCA7Civlj4IgPiBzYW5cIDsKK+WOuyA+IGt5b1wgOwor5q61ID4gZGFuXCA7CivljrMgPiBnZW5cIDsKK+muriA+IHNlblwgOwor5Y6tID4gaXlhXCA7CivljpogPiBrb3VcIDsKK+aumCA+IHphblwgOwor5Y6YID4gcmluXCA7CivmrosgPiB6YW5cIDsKK+auiiA+IHNodVwgOwor5q6GID4gdGFpXCA7Civljb8gPiBrZWlcIDsKK+atuyA+IHNoaVwgOwor5Y23ID4ga2FuXCA7CivmrbMgPiBzYWlcIDsKK+atpCA+IHNoaVwgOwor5q2jID4gc2VpXCA7CivmraIgPiBzaGlcIDsKK+atoSA+IGthblwgOwor5Y2gID4gc2VuXCA7CivmrZQgPiBreW9cIDsKK+iNkiA+IGtvdVwgOwor5q2OID4gdGFuXCA7CivmrYwgPiB1dGFcIDsKK+WNiiA+IGhhblwgOwor5Y2IID4gdW1hXCA7CivljYMgPiBjaGlcIDsKK+WNgSA+IHRvb1wgOwor6ay8ID4gb25pXCA7CivojLYgPiBjaGFcIDsKK+iMqyA+IGJvdVwgOwor6ayiID4gaGluXCA7CivljJogPiBob3VcIDsKK+asiiA+IGtlblwgOwor5YyGID4gc291XCA7CivmrIUgPiBreW9cIDsKK+WMhSA+IGhvdVwgOwor5Yu+ID4ga291XCA7Civli7ggPiBrYW5cIDsKK+WLpyA+IGthblwgOwor5YukID4gZ29uXCA7Civli54gPiByb3VcIDsKK+iLlyA+IG5hZVwgOwor5YuYID4ga2FuXCA7Civpq5QgPiB0ZWlcIDsKK+WLlSA+IGRvdVwgOwor5YuJID4gYmVuXCA7Civli4cgPiB5dXVcIDsKK+mrhCA+IHp1aVwgOwor6aq4ID4ga2FpXCA7CivoirggPiBnZWlcIDsKK+WKuSA+IGtvdVwgOwor6IqzID4gaG91XCA7CivlirQgPiByb3VcIDsKK+WKsSA+IHJlaVwgOwor5YqrID4gZ291XCA7CivmqqIgPiBrZW5cIDsKK+WKnyA+IGtvdVwgOwor5YqNID4ga2VuXCA7CivmqoAgPiB0YW5cIDsKK+iJuCA+IHNvdVwgOwor5Ym1ID4gc291XCA7CivoibIgPiBpcm9cIDsKK+mpoiA+IHJ5b1wgOwor5YmbID4gZ291XCA7CivpqZcgPiBrZW5cIDsKK+WJliA+IGJvdVwgOwor5YmNID4gbWFlXCA7CivliYMgPiB0ZWlcIDsKK+motyA+IHNvdVwgOwor5Yi2ID4gc2VpXCA7CivliLAgPiB0b3VcIDsKK+iIrCA+IGhhblwgOwor6IiqID4ga291XCA7CivmqKkgPiBrZW5cIDsKK+WIpCA+IGJhblwgOwor5qijID4geW91XCA7CivpqJkgPiBoZW5cIDsKK+mokyA+IGtlblwgOwor6aiSID4gc291XCA7CivmqJMgPiByb3VcIDsKK+WIkSA+IGtlaVwgOwor5YiKID4ga2FuXCA7CivoiIggPiBrb3VcIDsKK+WIhiA+IGJ1blwgOwor5YiAID4gdG91XCA7Civmp70gPiBzb3VcIDsKK+iHvCA+IHVzdVwgOwor5Ye9ID4ga2FuXCA7Civoh7ogPiB0YWlcIDsKK+iHtCA+IGNoaVwgOwor6IezID4gc2hpXCA7Civoh6ogPiBzaGlcIDsKK+iHqCA+IHJpblwgOwor5YemID4gc2hvXCA7Civlh6EgPiBib25cIDsKK+iHnyA+IHpvdVwgOwor6aebID4gc2hpXCA7Civmp5ggPiB5b3VcIDsKK+WHjSA+IHRvdVwgOwor5qeLID4ga291XCA7Civpp4UgPiBla2lcIDsKK+WHhCA+IHNlaVwgOwor6Ia/ID4gdW1pXCA7Civohr0gPiB0YW5cIDsKK+amuyA+IHRvdVwgOwor5Ya3ID4gcmVpXCA7CivpprMgPiBjaGlcIDsKK+iGsyA+IHplblwgOwor6aatID4gZ3lvXCA7CivppqwgPiB1bWFcIDsKK+WGmSA+IHNoYVwgOwor5YaXID4gam91XCA7CivlhpIgPiBib3VcIDsKK+WGjSA+IHNhaVwgOwor5qaCID4gZ2FpXCA7CivmpbwgPiByb3VcIDsKK+WFvCA+IGtlblwgOwor6IWuID4gc2FpXCA7CivlhawgPiBrb3VcIDsKK+WFqCA+IHplblwgOwor6IWmID4gbm91XCA7CivlhZogPiB0b3VcIDsKK+iFlSA+IHVkZVwgOwor6aWSID4gam91XCA7CivmpZMgPiBmdXVcIDsKK+WFjSA+IG1lblwgOwor6IWLID4gZWtpXCA7CivppYUgPiBtYW5cIDsKK+WFiCA+IHNlblwgOwor5YWFID4ganV1XCA7CivlhYQgPiBhbmlcIDsKK+iEsyA+IG5vdVwgOwor5YSqID4geXV1XCA7CivmpJwgPiBrZW5cIDsKK+mkkCA+IHNhblwgOwor6aSKID4geW91XCA7CivlhIQgPiBva3VcIDsKK+akgCA+IHdhblwgOwor6aO9ID4gaG91XCA7Civpo7wgPiBzaGlcIDsKK+ajuiA+IGthblwgOwor6aO0ID4gYW1lXCA7Civog7QgPiBkb3VcIDsKK+ajsiA+IHNlaVwgOwor5YOnID4gc291XCA7Civog54gPiBob3VcIDsKK+mjnCA+IGhvblwgOwor5qOSID4gYm91XCA7Civog44gPiB0YWlcIDsKK+WDjyA+IHpvdVwgOwor6IOMID4gc2VpXCA7Civlg40gPiBkb3VcIDsKK+iDhiA+IHRhblwgOwor5YOFID4ga2luXCA7Civlgr4gPiBrZWlcIDsKK+iCsiA+IGlrdVwgOwor5YKzID4gZGVuXCA7CivmorAgPiBrYWlcIDsKK+iCryA+IGtvdVwgOwor5qKvID4gdGVpXCA7CivlgqwgPiBzYWlcIDsKK+miqCA+IGZ1dVwgOwor6IKlID4ga29lXCA7Civmop0gPiBqb3VcIDsKK+iChiA+IHNoaVwgOwor5qKFID4gdW1lXCA7CivmobYgPiBva2VcIDsKK+WBtiA+IGd1dVwgOwor5YG1ID4gdGVpXCA7CivogbIgPiBzZWlcIDsKK+mhryA+IGtlblwgOwor6aGrID4gc2VuXCA7CivmoacgPiBrYWlcIDsKK+WBpSA+IGtlblwgOwor6aGeID4gcnVpXCA7CivmoZ8gPiBzYW5cIDsKK+iBniA+IGJ1blwgOwor6aGbID4gdGVuXCA7CivlgZwgPiB0ZWlcIDsKK+mhmCA+IGdhblwgOwor6IGWID4gc2VpXCA7CivpoZUgPiBrZW5cIDsKK+mhlCA+IGthb1wgOwor6aGPID4gZ2FuXCA7CivpoY4gPiBhZ29cIDsKK+mhjCA+IGRhaVwgOwor5qGCID4ga2VpXCA7CivogL0gPiB0YW5cIDsKK+mgvCA+IHJhaVwgOwor6aC7ID4gaGluXCA7CivogLsgPiBjaGlcIDsKK+WAuSA+IGtlblwgOwor6aCtID4gdG91XCA7CivlgKYgPiBrZW5cIDsKK+agoSA+IGtvdVwgOwor6aCaID4ga2VpXCA7CivogJUgPiBrb3VcIDsKK+mgkyA+IHRvblwgOwor5qCTID4gc2VuXCA7CivlgJIgPiB0b3VcIDsKK+iAkCA+IHRhaVwgOwor5YCJID4gc291XCA7CivpoIYgPiBqdW5cIDsKK+mghSA+IGtvdVwgOwor6ICDID4ga291XCA7CivogIEgPiByb3VcIDsKK+e/uyA+IGhvblwgOwor5L+6ID4gb3JlXCA7Civmn7QgPiBzYWlcIDsKK+afkyA+IHNlblwgOwor5p+QID4gYm91XCA7CivnvrkgPiBrb3VcIDsKK+e+riA+IGtvdVwgOwor5L6vID4ga291XCA7Civkvq0gPiBqaW5cIDsKK+e+qCA+IHNlblwgOwor576kID4gZ3VuXCA7Civmnp0gPiBlZGFcIDsKK+aemiA+IG1haVwgOwor5L6LID4gcmVpXCA7CivkvoYgPiByYWlcIDsKK+advyA+IGl0YVwgOwor5L2/ID4gc2hpXCA7CivmnbUgPiBzaG9cIDsKK+S9tSA+IGhlaVwgOwor572uID4gY2hpXCA7CivmnaUgPiByYWlcIDsKK+mdoiA+IG1lblwgOwor5p2hID4gam91XCA7CivpnZwgPiBzZWlcIDsKK+mdmSA+IHNlaVwgOwor6Z2WID4gc2VpXCA7CivkvZUgPiBuYW5cIDsKK+S9kyA+IHRlaVwgOwor572QID4ga2FuXCA7CivmnZAgPiB6YWlcIDsKK+e9jiA+IHRhblwgOwor5L2PID4ganV1XCA7CivkvY4gPiB0ZWlcIDsKK+mdiCA+IHJlaVwgOwor5L2HID4gY2hvXCA7CivkvYMgPiB0ZW5cIDsKK+S8uiA+IHNoaVwgOwor5pyxID4gYWthXCA7CivmnKcgPiByb3VcIDsKK+acpiA+IGJvdVwgOwor5pydID4gYXNhXCA7CivkvJ0gPiB0ZW5cIDsKK+acmyA+IGJvdVwgOwor5LyaID4ga2FpXCA7CivmnJcgPiByb3VcIDsKK+mciiA+IHJlaVwgOwor5pyLID4gaG91XCA7CivmnIkgPiB5dXVcIDsKK+acgyA+IGthaVwgOwor5pyAID4gc2FpXCA7Civmm78gPiB0YWlcIDsKK+abviA+IHNvdVwgOwor6Zu7ID4gZGVuXCA7Civmm7wgPiBiYW5cIDsKK+S7uyA+IG5pblwgOwor6Zu2ID4gcmVpXCA7Civmm7ggPiBzaG9cIDsKK+S7tiA+IGtlblwgOwor5pu0ID4ga291XCA7Civpm6ggPiBhbWVcIDsKK+mboyA+IG5hblwgOwor5LukID4gcmVpXCA7Civmm5wgPiB5b3VcIDsKK+mbliA+IHN1aVwgOwor5LuVID4gc2hpXCA7Civku5QgPiBzaGlcIDsKK+S7iyA+IGthaVwgOwor5LuKID4ga29uXCA7Civpm4QgPiBvc3VcIDsKK+S7gSA+IG5pblwgOwor5pq0ID4gYm91XCA7Civkuq0gPiB0ZWlcIDsKK+maqiA+IGtlblwgOwor5pqrID4gemFuXCA7CivpmqggPiB6dWlcIDsKK+S6pCA+IGtvdVwgOwor5LqhID4gYm91XCA7CivpmpsgPiBzYWlcIDsKK+S6mSA+IGtvdVwgOwor5LqYID4gc2VuXCA7CivmmpYgPiBkYW5cIDsKK+S6lSA+IHNlaVwgOwor57qSID4gdGVuXCA7CivmmpEgPiBzaG9cIDsKK+majyA+IHp1aVwgOwor57qPID4gdGVuXCA7Civpmo4gPiBrYWlcIDsKK+maiiA+IHRhaVwgOwor6ZqIID4gd2FpXCA7CivkuokgPiBzb3VcIDsKK+e6giA+IHNhblwgOwor5LqCID4gcmFuXCA7Civpmb0gPiB5b3VcIDsKK+e5vCA+IGtlaVwgOwor6Zm6ID4ga2VuXCA7CivmmbogPiBjaGlcIDsKK+mZtiA+IHRvdVwgOwor5pm0ID4gc2VpXCA7CivnubAgPiBzb3VcIDsKK+S5sSA+IHJhblwgOwor5pmvID4ga2VpXCA7CivnuaogPiBrYWlcIDsKK+e5qSA+IGpvdVwgOwor5pmpID4gYmFuXCA7CivpmaUgPiBrYW5cIDsKK+mZoyA+IGppblwgOwor57meID4gam91XCA7CivkuZggPiBqb3VcIDsKK+e5lSA+IHplblwgOwor5LmXID4gam91XCA7CivnuZQgPiBvcmlcIDsKK+mZkCA+IGdlblwgOwor6ZmNID4ga291XCA7CivkuY8gPiBib3VcIDsKK+e5gSA+IGhhblwgOwor57i9ID4gc291XCA7CivpmLIgPiBib3VcIDsKK+e4sSA+IGp1dVwgOwor57irID4gaG91XCA7CivpmKogPiBoYW5cIDsKK+S4piA+IGhlaVwgOwor5LiYID4gb2thXCA7CivkuJQgPiBzaGFcIDsKK+aYkyA+IGVraVwgOwor5piOID4gbWVpXCA7CivkuIogPiBqb3VcIDsKK+aYhiA+IGtvblwgOwor5piCID4ga291XCA7Civnt7QgPiByZW5cIDsKK+e3rCA+IG1lblwgOwor5pesID4ganVuXCA7Civnt6kgPiBrYW5cIDsKK+aXqSA+IHNvdVwgOwor57eoID4gaGVuXCA7Civml6YgPiB0YW5cIDsKK+e3oCA+IHRlaVwgOwor6ZecID4ga2FuXCA7Civnt5ogPiBzZW5cIDsKK+mXmCA+IHRvdVwgOwor57ePID4gc291XCA7Civml4sgPiBzZW5cIDsKK+e3iiA+IGtpblwgOwor5pa5ID4gaG91XCA7CivmlrcgPiBkYW5cIDsKK+e2siA+IGFtaVwgOwor5pavID4gc2hpXCA7Civmlq0gPiBkYW5cIDsKK+aWrCA+IHphblwgOwor6ZakID4ga291XCA7CivmlpwgPiBzaGFcIDsKK+e2mSA+IGtlaVwgOwor57aTID4ga2VpXCA7CivplosgPiBrYWlcIDsKK+mWiSA+IGhlaVwgOwor5paJID4gc2VpXCA7CivmlocgPiBidW5cIDsKK+mWgyA+IHNlblwgOwor5paDID4gaGVpXCA7CivploAgPiBtb25cIDsKK+mVtyA+IG9zYVwgOwor5pW4ID4gc3V1XCA7CivmlbQgPiBzZWlcIDsKK+e1siA+IHNoaVwgOwor57WxID4gdG91XCA7CivmlbAgPiBzdXVcIDsKK+aVrCA+IGtlaVwgOwor57WoID4ganV1XCA7CivmlaMgPiBzYW5cIDsKK+aVoiA+IGthblwgOwor57WeID4ga291XCA7CivmlZcgPiBoYWlcIDsKK+aVjyA+IGJpblwgOwor5pWIID4ga291XCA7CivmlYUgPiB5dWVcIDsKK+aUviA+IGhvdVwgOwor57S6ID4ga29uXCA7CivmlLkgPiBrYWlcIDsKK+e0sCA+IHNlaVwgOwor57SvID4gcnVpXCA7CivmlK8gPiBzaGlcIDsKK+e0myA+IGZ1blwgOwor57SUID4ganVuXCA7CivntI0gPiB0b3VcIDsKK+e0iyA+IG1vblwgOwor57O4ID4gaXRvXCA7Civmk6cgPiBreW9cIDsKK+aToSA+IHRhaVwgOwor57OeID4gZnVuXCA7Civns5YgPiB0b3VcIDsKK+aTlCA+IHRhblwgOwor57K+ID4gc2VpXCA7Civnsp8gPiBhd2FcIDsKK+eylyA+IGFyYVwgOwor6ZG1ID4ga2FuXCA7CivnsZYgPiBzZW5cIDsKK+mRkiA+IGthblwgOwor57GQID4gdG91XCA7CivmkLogPiBrZWlcIDsKK+ewoSA+IGthblwgOwor5pCcID4gc291XCA7CivmkJYgPiB5b3VcIDsKK+aQjSA+IHNvblwgOwor5o+hID4gYWt1XCA7Civmj5sgPiBrYW5cIDsKK+aPmiA+IHlvdVwgOwor5o+QID4gdGVpXCA7Civmj4kgPiBqdXVcIDsKK+evhCA+IGhhblwgOwor5o+DID4gc2VuXCA7CivmjrsgPiBzb3VcIDsKK+aOsiA+IGtlaVwgOwor566qID4gdGFuXCA7CivmjqggPiBzdWlcIDsKK+aOpyA+IGtvdVwgOwor5o6jID4gc2VpXCA7CivmjqIgPiB0YW5cIDsKK+aOoSA+IHNhaVwgOwor566XID4gc2FuXCA7CivmjpIgPiBoYWlcIDsKK+euiyA+IHNlblwgOwor5o6DID4gc291XCA7CivmjbsgPiBuZW5cIDsKK+aNsiA+IGtlblwgOwor5o2uID4ga3lvXCA7CivmjaggPiBzaGFcIDsKK+etpyA+IGtlblwgOwor6Y2bID4gdGFuXCA7CivmjZwgPiBzb3VcIDsKK+aMvyA+IHNvdVwgOwor5oy9ID4gYmFuXCA7CivnrKwgPiBkYWlcIDsKK+espSA+IHNoaVwgOwor6YyiID4gc2VuXCA7CivnrJsgPiBmdWVcIDsKK+aMmSA+IGt5b1wgOwor56yEID4ga2VpXCA7Civnq78gPiBzYW9cIDsKK+aLviA+IGp1dVwgOwor5ou1ID4gc29uXCA7Civmi6AgPiBreW9cIDsKK+ernyA+IGtlaVwgOwor56udID4gaGVpXCA7Civmi50gPiBoYWlcIDsKK+aLnCA+IGhhaVwgOwor5ouYID4ga291XCA7Civmi4UgPiB0YW5cIDsKK+ergyA+IHNvdVwgOwor5oq1ID4gdGVpXCA7CivmirEgPiBob3VcIDsKK+mKrSA+IHNlblwgOwor6YqcID4ga2FuXCA7CivmipsgPiBob3VcIDsKK+mKmCA+IG1laVwgOwor5oqYID4gb3JpXCA7CivmipcgPiBrb3VcIDsKK+aKlSA+IHRvdVwgOwor5oqTID4gc291XCA7CivpioUgPiBkb3VcIDsKK+epvyA+IHNlblwgOwor5omxID4gc291XCA7Civmia4gPiBmdW5cIDsKK+eplyA+IHN1aVwgOwor5omNID4gc2FpXCA7CivnqYkgPiBjaGlcIDsKK+eovyA+IGtvdVwgOwor56i9ID4ga2VpXCA7CivnqLsgPiB0b3VcIDsKK+aIuyA+IHJlaVwgOwor5oi0ID4gdGFpXCA7CivnqLIgPiBpbmVcIDsKK+aIsCA+IHNlblwgOwor56iaID4gY2hpXCA7CivmiJYgPiBhcnVcIDsKK+aIkiA+IGthaVwgOwor5oiQID4gc2VpXCA7CivpiI0gPiBkb25cIDsKK+eojiA+IHplaVwgOwor5oiMID4gaW51XCA7CivmiIAgPiByZW5cIDsKK+aHuCA+IGtlblwgOwor5oe3ID4ga2FpXCA7Civph5EgPiBraW5cIDsKK+mHjSA+IG9tb1wgOwor56eLID4gYWtpXCA7Civmh4kgPiB5b3VcIDsKK+mHhyA+IHNhaVwgOwor5oeDID4ga2luXCA7Civnpr0gPiBraW5cIDsKK+aGuiA+IHRhblwgOwor5oa2ID4gb2t1XCA7CivnprAgPiBkZWlcIDsKK+emriA+IHJlaVwgOwor5oasID4ga2VpXCA7CivmhqcgPiBkb3VcIDsKK+aGpCA+IGZ1blwgOwor6YaSID4gc2VpXCA7CivmhpAgPiByZW5cIDsKK+aGjiA+IHpvdVwgOwor6YaJID4gc3VpXCA7CivnpoUgPiB6ZW5cIDsKK+aGgiA+IHl1dVwgOwor56aBID4ga2luXCA7CivphbggPiBzYW5cIDsKK+eltyA+IHRvdVwgOwor5oWuID4gcnlvXCA7CivmhaggPiBnYWlcIDsKK+aFpSA+IHpvdVwgOwor5oWjID4ga2FuXCA7CivmhaIgPiBtYW5cIDsKK+aFmCA+IHNhblwgOwor6YWUID4gc3VpXCA7CivphY0gPiBoYWlcIDsKK+aFjCA+IGtvdVwgOwor5oWKID4ga2VuXCA7CivnpLwgPiByZWlcIDsKK+ekuiA+IHNoaVwgOwor5oSfID4ga2FuXCA7CivnpJkgPiBnYWlcIDsKK+mDtSA+IHl1dVwgOwor5oOzID4gc291XCA7Civmg7EgPiBub3VcIDsKK+aDqCA+IHNhblwgOwor5oOgID4ga2VpXCA7Civno5AgPiBpd2FcIDsKK+mDjiA+IHJvdVwgOwor6YOKID4ga291XCA7Civmg4UgPiBqb3VcIDsKK+aCvCA+IHRvdVwgOwor5oK2ID4gbW9uXCA7CivmgrQgPiBzdWlcIDsKK+aCoyA+IGthblwgOwor5oKgID4geXV1XCA7CivnopcgPiB3YW5cIDsKK+aCliA+IGhhaVwgOwor5oKUID4ga2FpXCA7CivpgoogPiBoZW5cIDsKK+mChCA+IGthblwgOwor6YKCID4ga2FpXCA7CivpgbggPiBzZW5cIDsKK+mBsiA+IGNoaVwgOwor5oGwID4ga291XCA7Civpga4gPiBzaGFcIDsKK+mBrSA+IHNvdVwgOwor5oGvID4gaWtpXCA7CivnoawgPiBrb3VcIDsKK+aBqCA+IGtvblwgOwor6YGlID4geW91XCA7CivpgaMgPiBrZW5cIDsKK+mBoCA+IHRvb1wgOwor6YGcID4gc29uXCA7CivpgZkgPiB5b3VcIDsKK+mBkSA+IGtvdVwgOwor6YGNID4gaGVuXCA7CivmgY0gPiBrb3VcIDsKK+mBiiA+IHl1dVwgOwor5oGLID4ga29pXCA7CivpgYcgPiBndXVcIDsKK+mBhSA+IGNoaVwgOwor6YGCID4gc3VpXCA7CivpgYEgPiB0b25cIDsKK+aAqiA+IGthaVwgOwor5oCnID4gc2VpXCA7CivnoKUgPiBzaGlcIDsKK+mAoyA+IHJlblwgOwor6YCiID4gaG91XCA7CivpgKAgPiB6b3VcIDsKK+aAoCA+IHRhaVwgOwor6YCeID4gdGVpXCA7CivpgJ0gPiBzZWlcIDsKK+aAnSA+IHNoaVwgOwor6YCZID4gZ2VuXCA7CivnoJUgPiBzYWlcIDsKK+eglCA+IGtlblwgOwor6YCPID4gdG91XCA7CivpgIUgPiBrb3VcIDsKK+mAgyA+IHRvdVwgOwor6YCBID4gc291XCA7CivpgIAgPiB0YWlcIDsKK+W/vyA+IGZ1blwgOwor6b6kID4ga2FpXCA7CivpvqEgPiBzdWlcIDsKK+m+mCA+IHRvdVwgOwor6b6XID4gcmVpXCA7CivpvpYgPiB0b3VcIDsKK+m+kiA+IHJ5dVwgOwor6b6QID4gaG91XCA7Civpvb0gPiBraW5cIDsKK+m9tyA+IGFrdVwgOwor6b22ID4gYWdvXCA7CivpvbUgPiBnb3VcIDsKK+m9syA+IGd1blwgOwor6b2vID4gZ2VpXCA7Civpva0gPiBzaG9cIDsKK+m9rCA+IGd5b1wgOwor6b2pID4gZ291XCA7CivpvZ4gPiBnZW5cIDsKK+m9nSA+IGNoaVwgOwor6b2YID4ga2FpXCA7CivpvZcgPiBraW5cIDsKK+m9kiA+IHNoaVwgOwor6b2PID4gc2VpXCA7CivpvYsgPiBzYWlcIDsKK+m9hCA+IHNoYVwgOwor6b2BID4ga291XCA7CivpvLogPiBydWlcIDsKK+m8tyA+IGtlaVwgOwor6byyID4ga29uXCA7CivpvLEgPiBzZWlcIDsKK+m8qiA+IHNlaVwgOwor6byiID4gZnVuXCA7CivpvKEgPiBzaG9cIDsKK+m8nyA+IHRvdVwgOwor6bybID4ga291XCA7CivpvJkgPiBoZWlcIDsKK+m8lyA+IHRvdVwgOwor6byWID4gZnVuXCA7CivpvJUgPiB0b3VcIDsKK+m8kiA+IHNoaVwgOwor6byRID4gdGVpXCA7CivpvJAgPiBkYWlcIDsKK+m8hyA+IGdvdVwgOwor6byFID4gY2hpXCA7CivpvIMgPiB3YWlcIDsKK+m7vyA+IGdlblwgOwor6bu9ID4gYm91XCA7Civpu7kgPiBjaGlcIDsKK+m7tiA+IGF6YVwgOwor6bu1ID4gdGFuXCA7Civpu7IgPiBzYW5cIDsKK+m7sSA+IHRhaVwgOwor6buuID4gdGFuXCA7Civpu6wgPiBrYW5cIDsKK+m7pyA+IHJlaVwgOwor6budID4geXV1XCA7Civpu5UgPiB0YW5cIDsKK+m7lCA+IGtlblwgOwor6buPID4gbmVuXCA7Civpu44gPiByZWlcIDsKK+m7jCA+IGtvdVwgOwor6buLID4ga291XCA7Civpu4ggPiB0b3VcIDsKK+m7hiA+IGtvdVwgOwor6buDID4ga291XCA7CivpurogPiBtZW5cIDsKK+m6tSA+IGJlblwgOwor6bqzID4gcmFpXCA7CivpurAgPiBib3VcIDsKK+m6riA+IGt5b1wgOwor6bqtID4gaG91XCA7CivpuqogPiBtZW5cIDsKK+m6nyA+IHJpblwgOwor6bqdID4gc2hhXCA7CivpupsgPiBiZWlcIDsKK+m6liA+IGtlaVwgOwor6bqVID4ga2luXCA7CivpupEgPiBnZWlcIDsKK+m6jyA+IGtpblwgOwor6bqIID4gc2h1XCA7CivpuocgPiBraW5cIDsKK+m6hSA+IGhvdVwgOwor6bqDID4gaG91XCA7CivpuoAgPiB5dXVcIDsKK+m5vCA+IGtlblwgOwor6bm7ID4ga2FuXCA7CivpubkgPiBrYW5cIDsKK+m4sCA+IHJlaVwgOwor6bieID4gcmFuXCA7CivpuJsgPiBrYW5cIDsKK+m4jiA+IHlvdVwgOwor6biHID4gc2VuXCA7CivpuIIgPiBrZWlcIDsKK+m3tCA+IGthblwgOwor6bezID4ga2FuXCA7Civpt60gPiBiYW5cIDsKK+m3pSA+IHNoaVwgOwor6begID4gZ3lvXCA7Civpt54gPiBzb3VcIDsKK+m3mSA+IHNoaVwgOwor6beVID4geW91XCA7Civpt5QgPiBnb3VcIDsKK+m3kyA+IHNoYVwgOwor6bePID4gdGVuXCA7Civpt4kgPiB0ZWlcIDsKK+m3hyA+IGtvdVwgOwor6beGID4gdGVuXCA7Civpt4IgPiB5b3VcIDsKK+m2vyA+IHNoaVwgOwor6ba8ID4ga2VuXCA7CivptrUgPiBzdXVcIDsKK+m2sSA+IGtlblwgOwor6basID4gc291XCA7CivptqQgPiBrb25cIDsKK+m2lyA+IHRlaVwgOwor6baKID4ga291XCA7CivptocgPiB0b3VcIDsKK+m2hiA+IHJhaVwgOwor6baEID4gc2VpXCA7Civptb4gPiBrb25cIDsKK+m1vCA+IGtvdVwgOwor6bW7ID4gc3VpXCA7CivptawgPiBob3VcIDsKK+m1qyA+IHRvdVwgOwor6bWnID4gaGVpXCA7CivptaMgPiByYWlcIDsKK+m1kSA+IGtlblwgOwor6bWKID4ga291XCA7CivptYggPiB0ZW5cIDsKK+m1hCA+IHNoaVwgOwor6bWBID4ga291XCA7CivptL8gPiBrb3VcIDsKK+m0viA+IGJvdVwgOwor6bS7ID4ga291XCA7CivptLogPiB0ZWlcIDsKK+m0tCA+IGtvdVwgOwor6bSyID4gc2hpXCA7CivptKYgPiB5b3VcIDsKK+m0nyA+IHNoaVwgOwor6bSeID4geW91XCA7CivptJwgPiBzaGlcIDsKK+m0mCA+IGhlblwgOwor6bSSID4gcmVpXCA7CivptIsgPiBob3VcIDsKK+m0iCA+IGdhblwgOwor6bO5ID4ga2VuXCA7Civps7cgPiBzaGlcIDsKK+mzsyA+IGhvdVwgOwor6bOyID4gc2hpXCA7Civps7AgPiBuaW9cIDsKK+mzryA+IGhvdVwgOwor6bOuID4ga2VpXCA7Civps6sgPiBnYW5cIDsKK+myuSA+IHNvdVwgOwor6bKZID4ga2FpXCA7CivpsokgPiB5dXVcIDsKK+mxuyA+IHNlblwgOwor6bGuID4gc2hvXCA7CivpsaQgPiBrYW5cIDsKK+mxoyA+IHRhblwgOwor6bGgID4ga2FpXCA7CivpsZ8gPiBrb3VcIDsKK+mxniA+IGthblwgOwor6bGdID4gZnVuXCA7CivpsZsgPiBlc29cIDsKK+mxliA+IGtlaVwgOwor6bGUID4gc2VuXCA7CivpsZMgPiBzZW5cIDsKK+mxhyA+IGtvdVwgOwor6bGEID4gc2VuXCA7CivpsLYgPiBzZWlcIDsKK+mwtSA+IGJpblwgOwor6bCyID4gZ291XCA7CivpsLEgPiByZW5cIDsKK+mwqiA+IGtvdVwgOwor6bCpID4geW91XCA7CivpsKcgPiB0b3VcIDsKK+mwpiA+IHNoaVwgOwor6bClID4ga2FuXCA7CivpsKMgPiBzaGlcIDsKK+mwnCA+IGtlblwgOwor6bCVID4gZWJpXCA7CivpsJQgPiBrYW5cIDsKK+mwkyA+IGVyYVwgOwor6bCRID4geW91XCA7CivpsIMgPiB3YWlcIDsKK+mwgSA+IHNlblwgOwor6bCAID4ga2FuXCA7Civpr78gPiBoZW5cIDsKK+mvuiA+IHNob1wgOwor6a+5ID4gc2VpXCA7Civpr7ggPiBrb3VcIDsKK+mvtyA+IHRlaVwgOwor6a+1ID4gYWppXCA7Civpr68gPiBzZWlcIDsKK+mvqyA+IHNvdVwgOwor6a+kID4ga29uXCA7Civpr6IgPiBnZWlcIDsKK+mvnyA+IHRvdVwgOwor6a+bID4gdGFpXCA7Civpr5ggPiBkYWlcIDsKK+mviSA+IGtvaVwgOwor6a+IID4geXV1XCA7Civpr4cgPiBrYW5cIDsKK+mvgSA+IGtvdVwgOwor6a+AID4ga29uXCA7Civprr4gPiBkYWlcIDsKK+muuCA+IGJlblwgOwor6a63ID4gdGVpXCA7CivprrAgPiBrYWlcIDsKK+muqSA+IGhvdVwgOwor6a6mID4gdG91XCA7CivprpQgPiBreW9cIDsKK+mukCA+IHRhaVwgOwor6a6PID4gc2VpXCA7Civpro4gPiBheXVcIDsKK+muiyA+IHl1dVwgOwor6a6GID4gc2VpXCA7Civprb8gPiByZWlcIDsKK+mttyA+IHl1dVwgOwor6a21ID4gZnVuXCA7CivprbQgPiBob3VcIDsKK+mtsyA+IHNoaVwgOwor6a2tID4gZ2VuXCA7CivprawgPiBoYW5cIDsKK+mtqiA+IGthaVwgOwor6a2oID4gdG9uXCA7CivpraUgPiBnb3VcIDsKK+mtoyA+IHNob1wgOwor6a2eID4gZXJpXCA7CivprZwgPiBqaW5cIDsKK+mtmyA+IHRvdVwgOwor6a2WID4ga3lvXCA7CivprZEgPiBjaGlcIDsKK+mtjSA+IGJvdVwgOwor6a2LID4gdGFpXCA7CivprLcgPiBzb3VcIDsKK+mstSA+IHNlblwgOwor6ayzID4ga2VuXCA7CivprK0gPiB0b3VcIDsKK+msrCA+IHRvdVwgOwor6ayrID4ga2FuXCA7CivprKogPiB0b3VcIDsKK+msqCA+IGtvdVwgOwor6aynID4gdG91XCA7CivprKYgPiB0b3VcIDsKK+mspSA+IHRvdVwgOwor6ayfID4ga2FuXCA7CivprJwgPiBrYW5cIDsKK+msmSA+IHNvdVwgOwor6ayWID4gc2FuXCA7CivprIsgPiBzZW5cIDsKK+msiSA+IHNvdVwgOwor6ayIID4ga2VuXCA7CivprIUgPiBob3VcIDsKK+mshCA+IHRlaVwgOwor6ayDID4gc291XCA7CivprIIgPiBiaW5cIDsKK+msgCA+IHRlaVwgOwor6au7ID4ga2VpXCA7Civpq7MgPiBib3VcIDsKK+mrsSA+IGhvdVwgOwor6auvID4gemVuXCA7Civpq6kgPiBiaW5cIDsKK+mrpyA+IHRhblwgOwor6aumID4gYm91XCA7Civpq6UgPiB6ZW5cIDsKK+mroyA+IGhvdVwgOwor6auiID4gdGVpXCA7Civpq6AgPiBrb25cIDsKK+mrniA+IHNvdVwgOwor6aubID4ga291XCA7Civpq5kgPiBrb3VcIDsKK+mrliA+IGthblwgOwor6auVID4gaGluXCA7Civpq5MgPiB6dWlcIDsKK+mrkiA+IHNvdVwgOwor6auQID4ga291XCA7Civpq48gPiByb3VcIDsKK+mriCA+IGhvdVwgOwor6auBID4ga2FpXCA7Civpqr8gPiBoZW5cIDsKK+mqviA+IGtvdVwgOwor6aq5ID4ga291XCA7CivpqrYgPiB0ZWlcIDsKK+mqtSA+IHRhaVwgOwor6aq0ID4gc2hpXCA7CivpqrAgPiB0b3VcIDsKK+mqryA+IGtvdVwgOwor6aqUID4gc291XCA7CivpqakgPiBrYW5cIDsKK+mppCA+IGpvdVwgOwor6ambID4gZWtpXCA7CivpqZQgPiB0ZW5cIDsKK+mpkiA+IHRhblwgOwor6amOID4gcmluXCA7CivpqYcgPiBjaGlcIDsKK+mphCA+IHNvdVwgOwor6amCID4gc2FuXCA7CivpqYEgPiBnb3VcIDsKK+mouiA+IGNoaVwgOwor6ai4ID4gc2VuXCA7CivpqLUgPiBnZW5cIDsKK+mosCA+IHRvdVwgOwor6airID4ga2VuXCA7CivpqKggPiB0YW5cIDsKK+mooyA+IHNvdVwgOwor6aigID4gdGVpXCA7CivpqJcgPiBoZW5cIDsKK+mokCA+IGtlblwgOwor6aiMID4gc291XCA7CivpqIsgPiByYWlcIDsKK+moiCA+IGhlblwgOwor6aiFID4gc3VpXCA7CivpqIMgPiBnYWlcIDsKK+mogiA+IHNlaVwgOwor6aiBID4gdGVpXCA7Civpp74gPiB0YWlcIDsKK+mnvSA+IGtlblwgOwor6ae7ID4ga2FuXCA7Civpp7kgPiBib3VcIDsKK+mntCA+IGthaVwgOwor6aetID4ga2FpXCA7Civpp6sgPiBrZWlcIDsKK+mnpyA+IHRvdVwgOwor6aeiID4gaGVuXCA7Civpp58gPiBzaGlcIDsKK+mnmiA+IHlvdVwgOwor6aeYID4gdGFpXCA7Civpp5QgPiBzb3VcIDsKK+mniSA+IGtlaVwgOwor6aa8ID4gYnVuXCA7CivpprogPiBzb3VcIDsKK+mmtSA+IHNodVwgOwor6aaoID4ga2VpXCA7CivppqYgPiBrZW5cIDsKK+mmkyA+IHNhblwgOwor6aWeID4gc2FuXCA7CivppZsgPiBib3VcIDsKK+mlmSA+IGZ1blwgOwor6aWYID4gc2VuXCA7CivppZUgPiB0b3VcIDsKK+mllCA+IHlvdVwgOwor6aWOID4gc2hpXCA7CivppY0gPiB6ZW5cIDsKK+mljCA+IHNlblwgOwor6aWKID4gc2FuXCA7CivppYkgPiBraW5cIDsKK+mlgSA+IHlvdVwgOwor6aWAID4gdG91XCA7CivppLsgPiBrb3VcIDsKK+mkuSA+IHRvdVwgOwor6aS1ID4gZGFpXCA7CivppLQgPiBmdW5cIDsKK+mksyA+IHRvdVwgOwor6aSxID4ga291XCA7CivppKcgPiBkYWlcIDsKK+mkpCA+IHRhblwgOwor6aSiID4gaG91XCA7CivppKAgPiBoZWlcIDsKK+mkmyA+IGtvblwgOwor6aSaID4ga291XCA7CivppJYgPiB0b3VcIDsKK+mkkiA+IGRhaVwgOwor6aSMID4gZXNhXCA7CivppIggPiBzaGlcIDsKK+mkgyA+IGtvdVwgOwor6aSCID4gdGVuXCA7CivppIEgPiBqaW5cIDsKK+mjsyA+IHNodVwgOwor6aOwID4gaGFuXCA7Civpo6ogPiBqaW5cIDsKK+mjqSA+IHRvblwgOwor6aOnID4gc29uXCA7Civpo6YgPiBrZW5cIDsKK+mjoyA+IHRlaVwgOwor6aOhID4gc2FuXCA7Civpo4wgPiBmdXVcIDsKK+mivyA+IGhhblwgOwor6aK7ID4geW91XCA7CivporogPiB5b3VcIDsKK+miuCA+IHNoaVwgOwor6aK0ID4gc2VuXCA7CivporEgPiB0YWlcIDsKK+mirSA+IHNlblwgOwor6aG0ID4ga2FuXCA7CivpobAgPiBoaW5cIDsKK+mhqiA+IGthaVwgOwor6aGlID4ga291XCA7CivpoaIgPiBiYW5cIDsKK+mhmiA+IHRlblwgOwor6aGZID4gc291XCA7CivpoZMgPiBzZW5cIDsKK+mhkSA+IGthblwgOwor6aGLID4gc2FpXCA7CivpoYcgPiBzdWlcIDsKK+mhhCA+IGthblwgOwor6aC+ID4gc2hpXCA7CivpoL0gPiB0YWlcIDsKK+mguSA+IHRhaVwgOwor6aC3ID4ga2FuXCA7CivpoLMgPiB0ZWlcIDsKK+mgsiA+IHRlaVwgOwor6aCvID4ga2FpXCA7CivpoK4gPiBrYWlcIDsKK+mgpiA+IGthaVwgOwor6aCgID4gZ2FpXCA7CivpoJwgPiBrYW5cIDsKK+mgliA+IGhhblwgOwor6aCSID4gaGFuXCA7CivpoI8gPiBrb3VcIDsKK+mgiCA+IHNodVwgOwor6aCHID4ga2FuXCA7Civpn7ggPiBob3VcIDsKK+mftCA+IHNvdVwgOwor6Z+yID4gc2VpXCA7Civpn7EgPiBzZW5cIDsKK+mfryA+IHNlblwgOwor6Z+dID4ga291XCA7Civpn5wgPiB0b3VcIDsKK+mfmyA+IGhhaVwgOwor6Z+TID4ga2FuXCA7Civpn5AgPiBrb3VcIDsKK+mfjiA+IGJhaVwgOwor6Z+MID4gamluXCA7Civpn4ogPiByYW5cIDsKK+mfiSA+IHNlblwgOwor6Z+GID4gc2VuXCA7Civpn4UgPiBrZW5cIDsKK+mfhCA+IGFrdVwgOwor6Z66ID4gdG91XCA7CivpnrYgPiBoYW5cIDsKK+mesyA+IHRvdVwgOwor6Z6yID4ga291XCA7CivpnrEgPiB0b3VcIDsKK+meriA+IHRlaVwgOwor6Z6sID4ga2VuXCA7CivpnqMgPiBqdXVcIDsKK+meniA+IGhlaVwgOwor6Z6cID4gdG91XCA7CivpnpogPiBrb3VcIDsKK+memSA+IGtlblwgOwor6Z6XID4gdG91XCA7CivpnpYgPiBzYWlcIDsKK+melSA+IGdvdVwgOwor6Z6JID4gdG91XCA7CivpnoAgPiB0b3VcIDsKK+mdvSA+IGJhblwgOwor6Z28ID4gdGFuXCA7CivpnbggPiBzb3VcIDsKK+mdsyA+IGtpblwgOwor6Z2xID4gamluXCA7Civpna0gPiBqaW5cIDsKK+mdqyA+IHNhaVwgOwor6Z2qID4gdGVpXCA7CivpnacgPiBrYWlcIDsKK+mdpiA+IHRlblwgOwor6Z2kID4gaG91XCA7CivpnaMgPiBtZW5cIDsKK+mdoCA+IGtvdVwgOwor6Z2bID4gdGVuXCA7CivpnZogPiBzZWlcIDsKK+mdlyA+IHRlaVwgOwor6Z2RID4gc2VpXCA7CivpnYogPiBmdXVcIDsKK+mdhiA+IHRhaVwgOwor6Z2BID4gcmFpXCA7CivpnL4gPiBiYWlcIDsKK+mcvSA+IHNlaVwgOwor6ZydID4gcmVpXCA7CivpnJsgPiByZWlcIDsKK+mcmiA+IGJvdVwgOwor6ZyWID4gcmluXCA7CivpnJMgPiBnZWlcIDsKK+mckSA+IHRlblwgOwor6ZyOID4gc291XCA7CivpnIkgPiBiYWlcIDsKK+mciCA+IGhhaVwgOwor6ZyGID4gdGVpXCA7Civpm7EgPiBob3VcIDsKK+mbsCA+IGZ1blwgOwor6ZuvID4gYnVuXCA7Civpm58gPiBrZWlcIDsKK+mbniA+IGtlaVwgOwor6ZudID4geW91XCA7Civpm5ogPiBrYW5cIDsKK+mbmSA+IHNvdVwgOwor6ZuOID4gc2hvXCA7Civpm40gPiB5b3VcIDsKK+mbiyA+IHNlblwgOwor6ZuKID4ga291XCA7Civpm4ggPiBrYW5cIDsKK+mauSA+IHN1aVwgOwor6Zq4ID4gcmVpXCA7CivpmrcgPiByZWlcIDsKK+matiA+IHRhaVwgOwor6Zq0ID4gcm91XCA7Civpmq8gPiB0b3VcIDsKK+mariA+IHNlaVwgOwor6ZqnID4gc3VpXCA7CivpmqYgPiBoZWlcIDsKK+mapSA+IHRvdVwgOwor6ZqkID4gdGFpXCA7Civpmp0gPiB0b3VcIDsKK+mamiA+IHRvdVwgOwor6ZqXID4ga2FpXCA7CivpmpEgPiBrYWlcIDsKK+majSA+IGtvdVwgOwor6ZqEID4gdGVpXCA7CivpmoMgPiBzaHVcIDsKK+mZviA+IGpvdVwgOwor6Zm8ID4gc2hvXCA7CivpmbcgPiBrYW5cIDsKK+mZsiA+IHN1aVwgOwor6ZmuID4gdGFpXCA7CivpmawgPiBzdXVcIDsKK+mZqiA+IGJhaVwgOwor6ZmmID4gdG91XCA7CivpmaEgPiB0b3VcIDsKK+mZnSA+IHNlblwgOwor6ZmcID4ga291XCA7CivpmZsgPiBoZWlcIDsKK+mZmCA+IGtlaVwgOwor6ZmWID4ga2FpXCA7CivpmZQgPiBnYWlcIDsKK+mZiyA+IHJvdVwgOwor6Zi6ID4ga3lvXCA7CivpmLggPiBha3VcIDsKK+mYtyA+IHRlaVwgOwor6ZizID4geW91XCA7CivpmLEgPiBzZWlcIDsKK+mYryA+IHNoaVwgOwor6ZiuID4gZ2VuXCA7CivpmKwgPiBrb3VcIDsKK+mYqCA+IGFrdVwgOwor6ZimID4geW91XCA7CivpmKQgPiBjaGlcIDsKK+mYoSA+IHNlblwgOwor6ZemID4gZ29uXCA7Civpl6QgPiBrYW5cIDsKK+mXoSA+IHNlblwgOwor6ZegID4ga2FpXCA7Civpl5kgPiBrZWlcIDsKK+mXlyA+IGthblwgOwor6ZeUID4ga291XCA7Civpl5MgPiBrYWlcIDsKK+mXkiA+IHRvdVwgOwor6ZeQID4gdGVuXCA7Civpl4wgPiByYW5cIDsKK+mXhiA+IGhhblwgOwor6Za/ID4gYnVuXCA7Civplr0gPiBrb25cIDsKK+mWuiA+IGJlblwgOwor6ZasID4gcm91XCA7CivplqsgPiBrb25cIDsKK+mWqSA+IGJlblwgOwor6ZaoID4ga2VpXCA7CivplqcgPiBrb3VcIDsKK+mWoSA+IGdhaVwgOwor6ZaeID4gaGVuXCA7Civplp0gPiByZWlcIDsKK+mWmSA+IHRvdVwgOwor6ZaYID4ga291XCA7CivplpQgPiBiaW5cIDsKK+mWjyA+IGp1blwgOwor6ZaOID4ga291XCA7Civplo0gPiBob3VcIDsKK+mWjCA+IGtvdVwgOwor6ZaIID4ga2FuXCA7CivplocgPiBoZWlcIDsKK+mWgiA+IHNhblwgOwor6ZW0ID4gcm91XCA7Civpla4gPiBrYW5cIDsKK+mUvSA+IGtvdVwgOwor6ZOmID4gc2VuXCA7Civpk5MgPiBib3VcIDsKK+mThyA+IGhvdVwgOwor6ZKEID4gcmFuXCA7Civpkb4gPiByYW5cIDsKK+mRvSA+IHNhblwgOwor6ZG3ID4gam91XCA7CivpkbIgPiBqb3VcIDsKK+mRsSA+IHNhblwgOwor6ZGvID4gc2VuXCA7Civpka0gPiByYW5cIDsKK+mRqyA+IGtpblwgOwor6ZGoID4gcm91XCA7CivpkZ4gPiByb3VcIDsKK+mRmyA+IGtvdVwgOwor6ZGaID4gc2FuXCA7CivpkZkgPiBrZWlcIDsKK+mRkSA+IGthblwgOwor6ZGMID4gaGluXCA7CivpkYggPiBnZWlcIDsKK+mRhSA+IGtvdVwgOwor6ZGBID4gYmFuXCA7CivpkLsgPiBreW9cIDsKK+mQuiA+IHRvdVwgOwor6ZC2ID4ga2FuXCA7CivpkLMgPiByYWlcIDsKK+mQsSA+IHNlblwgOwor6ZCuID4gcmVuXCA7CivpkKsgPiBzZW5cIDsKK+mQnyA+IHRlaVwgOwor6ZCZID4gdG91XCA7CivpkJcgPiBrYW5cIDsKK+mQlSA+IHNhblwgOwor6ZCTID4gdGFpXCA7CivpkI8gPiBzb25cIDsKK+mQiSA+IHNlblwgOwor6ZCHID4gaGFuXCA7CivpkIQgPiBrb3VcIDsKK+mQgyA+IGRvdVwgOwor6ZCBID4gc2hpXCA7Civpj7sgPiByaW5cIDsKK+mPuCA+IHRlaVwgOwor6Y+oID4gc2FuXCA7Civpj6cgPiByb3VcIDsKK+mPpCA+IHJvdVwgOwor6Y+fID4gc2FuXCA7Civpj54gPiB5b3VcIDsKK+mPnSA+IG1hblwgOwor6Y+cID4gdG91XCA7Civpj5kgPiBzYWlcIDsKK+mPlyA+IGtvdVwgOwor6Y+TID4gc291XCA7Civpj4sgPiBiYW5cIDsKK+mPiCA+IHJlblwgOwor6Y+HID4gc2VuXCA7Civpj4YgPiBrYW5cIDsKK+mPhCA+IHRhblwgOwor6Y6sID4ga291XCA7CivpjqsgPiBiYW5cIDsKK+mOqSA+IHNhaVwgOwor6Y6kID4ga291XCA7CivpjqEgPiBzaGlcIDsKK+mOniA+IGhlaVwgOwor6Y6XID4gc291XCA7CivpjpUgPiB0b3VcIDsKK+mOlCA+IHlvdVwgOwor6Y6SID4gZG91XCA7CivpjoogPiBoYXVcIDsKK+mNvyA+IHNoaVwgOwor6Y29ID4gaGVuXCA7CivpjbQgPiB0YW5cIDsKK+mNsyA+IGthblwgOwor6Y2xID4geW91XCA7CivpjbAgPiBrYW5cIDsKK+mNryA+IHNvdVwgOwor6Y2tID4ga291XCA7CivpjaogPiBib3VcIDsKK+mNqSA+IHRlblwgOwor6Y2nID4ga291XCA7CivpjaQgPiBzb3VcIDsKK+mNoCA+IGtvdVwgOwor6Y2eID4ga291XCA7CivpjZogPiB5b3VcIDsKK+mNlyA+IHRlaVwgOwor6Y2VID4ga3VuXCA7CivpjZIgPiBqdXVcIDsKK+mNkSA+IGh1dVwgOwor6Y2QID4gc291XCA7CivpjYogPiByZW5cIDsKK+mNiSA+IHRlaVwgOwor6Y2HID4ga2FpXCA7CivpjYQgPiBrZWlcIDsKK+mMtSA+IG5pZVwgOwor6YyzID4gbW91XCA7CivpjKwgPiByZW5cIDsKK+mMqiA+IHRlblwgOwor6YynID4ga2FuXCA7CivpjKUgPiBpa3VcIDsKK+mMoyA+IHRlaVwgOwor6YygID4gam91XCA7CivpjJ8gPiB0YW5cIDsKK+mMnSA+IHNvdVwgOwor6YycID4gam91XCA7CivpjJogPiBzb3VcIDsKK+mMmSA+IHNoaVwgOwor6YyVID4ga29uXCA7CivpjJQgPiB0b3VcIDsKK+mMkSA+IHJhaVwgOwor6YyIID4ga2VuXCA7CivpjIAgPiByaW5cIDsKK+mLuyA+IGtlblwgOwor6YuuID4gc2VpXCA7Civpi6wgPiBoYW5cIDsKK+mLpyA+IGtlblwgOwor6YulID4gdG91XCA7Civpi6EgPiBrYW5cIDsKK+mLnyA+IHNlblwgOwor6YuZID4gZ3lvXCA7Civpi5cgPiBrZW5cIDsKK+mLlSA+IHNoaVwgOwor6YuTID4gdGVuXCA7Civpi5AgPiBrb3VcIDsKK+mLjiA+IGthblwgOwor6YuMID4gdGVpXCA7Civpi4sgPiBzZW5cIDsKK+mLhyA+IGhhaVwgOwor6YuFID4gc2hpXCA7Civpi4MgPiByb3VcIDsKK+mLgiA+IGJhaVwgOwor6YuBID4gcnlvXCA7Civpi4AgPiB0b3VcIDsKK+mKuyA+IHRlaVwgOwor6Yq6ID4gc291XCA7CivpirIgPiBrYW5cIDsKK+mKpyA+IGtvdVwgOwor6YqkID4gYmVpXCA7CivpiqAgPiByb3VcIDsKK+mKmiA+IHlvdVwgOwor6YqZID4ga2FpXCA7CivpipcgPiBrb3VcIDsKK+mKliA+IHNodVwgOwor6YqTID4gc2VuXCA7CivpipIgPiBrZWlcIDsKK+mKiCA+IHRlaVwgOwor6Ym/ID4ga291XCA7CivpibwgPiBoZWlcIDsKK+mJuSA+IHNoaVwgOwor6Ym4ID4ga291XCA7CivpibcgPiBrb3VcIDsKK+mJtiA+IGtlaVwgOwor6Ym1ID4gdG91XCA7CivpibEgPiBrb3VcIDsKK+mJsCA+IHNoaVwgOwor6YmpID4gam91XCA7CivpiaggPiBkZWlcIDsKK+mJpyA+IGJvdVwgOwor6YmkID4ga291XCA7CivpiaEgPiBoYW5cIDsKK+mJnCA+IGZ1dVwgOwor6YmZID4gdGFpXCA7CivpiZcgPiBrYW5cIDsKK+mJjyA+IHNob1wgOwor6YmOID4gc291XCA7CivpiYkgPiBrZW5cIDsKK+mJiCA+IHNoYVwgOwor6YmHID4gc2hpXCA7CivpiYYgPiB0ZW5cIDsKK+mJhSA+IGt5b1wgOwor6YmDID4gc2hpXCA7CivpiYIgPiBzaGlcIDsKK+mJgCA+IGtvdVwgOwor6Yi/ID4gdGVuXCA7CivpiLYgPiBzaGlcIDsKK+mItSA+IGhlaVwgOwor6YiwID4gc2hpXCA7CivpiK4gPiBkZWlcIDsKK+mIoyA+IGthaVwgOwor6YieID4ga2luXCA7CivpiJwgPiBrb3VcIDsKK+mIliA+IGh1blwgOwor6YiTID4gamluXCA7CivpiJIgPiBzb3VcIDsKK+mIkSA+IGhhblwgOwor6YiQID4ga2VuXCA7CivpiIkgPiBkb3VcIDsKK+mIhCA+IHRvdVwgOwor6YiBID4gaG91XCA7Civph78gPiBraW5cIDsKK+mHvCA+IGtlblwgOwor6Ye2ID4gc2hpXCA7Civph7EgPiB0ZWlcIDsKK+mHryA+IGJvdVwgOwor6YeuID4gc2VuXCA7Civph60gPiBrb3VcIDsKK+mHrCA+IGthblwgOwor6YepID4gaGFuXCA7Civph6cgPiBzZW5cIDsKK+mHpiA+IGtvdVwgOwor6YekID4gc2FuXCA7Civph5YgPiB0b3VcIDsKK+mHiSA+IHl1dVwgOwor6YeGID4gaGFuXCA7Civph4UgPiBnZW5cIDsKK+mHgyA+IHNoaVwgOwor6YeBID4ga2luXCA7Civph4AgPiBqb3VcIDsKK+mGvSA+IHJlaVwgOwor6Ya6ID4ga3VuXCA7CivphrggPiBqb3VcIDsKK+mGtiA+IGdlblwgOwor6Ya1ID4ga3lvXCA7CivphrQgPiByZWlcIDsKK+mGsyA+IGVraVwgOwor6YayID4gam91XCA7CivphrAgPiB0YW5cIDsKK+mGryA+IGtlaVwgOwor6YamID4gc2FuXCA7CivphqIgPiBrYWlcIDsKK+mGmCA+IGtvdVwgOwor6YaTID4gdGFuXCA7CivphpEgPiBzaG9cIDsKK+mGjiA+IGRhaVwgOwor6YaNID4gdGVpXCA7CivphoYgPiBzYW5cIDsKK+mGhSA+IGhhaVwgOwor6YaCID4gcmluXCA7CivphbsgPiBzdWlcIDsKK+mFuSA+IHJhaVwgOwor6YW2ID4gYmFpXCA7CivphbUgPiBrb3VcIDsKK+mFsiA+IHRlaVwgOwor6YWtID4geXV1XCA7CivphakgPiBtZWlcIDsKK+mFoyA+IGthblwgOwor6YWaID4gaHVuXCA7CivphZggPiB0b3VcIDsKK+mFliA+IHRhblwgOwor6YWKID4gdGVpXCA7CivphYcgPiBzYW5cIDsKK+mFhiA+IGZ1dVwgOwor6YWDID4gcmVpXCA7CivphL0gPiB0ZW5cIDsKK+mEvCA+IHNhYlwgOwor6YS6ID4ga291XCA7CivphLcgPiBob3VcIDsKK+mEtiA+IGthaVwgOwor6YSyID4gdGFuXCA7CivphLAgPiByaW5cIDsKK+mEryA+IHNlblwgOwor6YSuID4gYm91XCA7CivphK0gPiB0ZWlcIDsKK+mEpyA+IHRvdVwgOwor6YSeID4gZ2luXCA7CivphJggPiB5b3VcIDsKK+mElyA+IGtvdVwgOwor6YSSID4gc3V1XCA7CivphI0gPiBtZWlcIDsKK+mEhCA+IGtlblwgOwor6YOvID4gdGFuXCA7Civpg6UgPiBoYWlcIDsKK+mDoSA+IGd1blwgOwor6YOfID4ga291XCA7Civpg54gPiByb3VcIDsKK+mDnCA+IGtvdVwgOwor6YOYID4gcnlvXCA7Civpg5cgPiBjaGlcIDsKK+mDlSA+IHNlaVwgOwor6YOSID4gcm91XCA7Civpg4wgPiBrZWlcIDsKK+mDiCA+IGtvdVwgOwor6YODID4ga291XCA7Civpg4EgPiBpa3VcIDsKK+mCviA+IGNodVwgOwor6YK9ID4ga2VpXCA7CivpgrYgPiBoYWlcIDsKK+mCtCA+IGhlaVwgOwor6YKwID4gdGFpXCA7Civpgq8gPiBrYW5cIDsKK+mCqCA+IHNvblwgOwor6YKiID4ga2VpXCA7CivpgqEgPiBob3VcIDsKK+mCoCA+IGhpblwgOwor6YKZID4gYm91XCA7CivpgpcgPiBrYW5cIDsKK+mClSA+IHlvdVwgOwor6YKRID4geXV1XCA7Civpgo4gPiB5dXVcIDsKK+mCjCA+IHJlaVwgOwor6YKJID4gaGVuXCA7CivpgoUgPiBrZW5cIDsKK+mCgyA+IHN1aVwgOwor6YKBID4gYmFpXCA7CivpgoAgPiB5b3VcIDsKK+mBvSA+IGt5b1wgOwor6YG3ID4gc2VuXCA7CivpgbYgPiBqb3VcIDsKK+mBtSA+IGp1blwgOwor6YG0ID4gcmluXCA7CivpgbAgPiB0ZWlcIDsKK+mBryA+IHRvblwgOwor6YGoID4gZ291XCA7CivpgaYgPiBrYW5cIDsKK+mBoiA+IHRvdVwgOwor6YGfID4gY2hpXCA7CivpgZ4gPiB0ZWlcIDsKK+mBnSA+IHRvdVwgOwor6YGYID4ga291XCA7CivpgYkgPiB0ZWlcIDsKK+mBhCA+IHNlblwgOwor6YGDID4gZ2VuXCA7CivpgL8gPiB0b3VcIDsKK+mAsyA+IGlrdVwgOwor6YCwID4geXV1XCA7CivpgK4gPiB0YWlcIDsKK+mArSA+IGthblwgOwor6YCsID4gaG91XCA7CivpgKggPiByYWlcIDsKK+mApSA+IGthaVwgOwor6YCXID4gdG91XCA7CivpgJUgPiBrZWlcIDsKK+mAkyA+IHRlaVwgOwor6YCMID4geXV1XCA7CivpgIggPiBrZWlcIDsKK+mAhCA+IGhvdVwgOwor6L+6ID4gZGFpXCA7Civov7ggPiBob3VcIDsKK+i/tiA+IHl1dVwgOwor6L+1ID4gdG91XCA7Civov7QgPiBrYWlcIDsKK+i/ryA+IHRvdVwgOwor6L+oID4gdGFpXCA7Civov6MgPiBzZWlcIDsKK+i/kiA+IGtvdVwgOwor6L+KID4gc291XCA7Civov4EgPiBzZW5cIDsKK+i/gCA+IGthblwgOwor6L65ID4gaGVuXCA7Civovq4gPiBoZW5cIDsKK+i+qCA+IGJlblwgOwor6L6nID4gYmVuXCA7CivovqYgPiBoYW5cIDsKK+i+oSA+IGhlblwgOwor6L6gID4gc2FpXCA7CivovaUgPiByaW5cIDsKK+i9niA+IGthblwgOwor6L2YID4ga2FuXCA7CivovZcgPiBrYW5cIDsKK+i9lCA+IHJpblwgOwor6L2TID4gaGFuXCA7CivovZIgPiBodW5cIDsKK+i9kSA+IHJhdVwgOwor6L2PID4gc2FuXCA7CivovYcgPiBrb3VcIDsKK+i9gSA+IHRvdVwgOwor6Ly+ID4gdGVuXCA7CivovLogPiBzaGlcIDsKK+i8tyA+IGtvdVwgOwor6Ly2ID4geXV1XCA7CivovLMgPiBzb3VcIDsKK+i8riA+IGp1dVwgOwor6LytID4gemVuXCA7CivovKggPiBrYW5cIDsKK+i8piA+IHJlblwgOwor6LylID4ga29uXCA7CivovKMgPiBob3VcIDsKK+i8oSA+IGthblwgOwor6LyeID4gYm91XCA7CivovJwgPiBzaGlcIDsKK+i8lyA+IGdlaVwgOwor6LyTID4gYmFuXCA7CivovJAgPiBrYW5cIDsKK+i8jyA+IHl1dVwgOwor6LyKID4gY2hpXCA7CivovIcgPiBzZW5cIDsKK+i7uiA+IHlvdVwgOwor6Lu5ID4gc2hpXCA7Civou7AgPiBoYWlcIDsKK+i7qCA+IHJlaVwgOwor6LujID4gZ291XCA7Civou6AgPiBqaW5cIDsKK+i7nyA+IG5hblwgOwor6LucID4gZG91XCA7Civou5sgPiBha3VcIDsKK+i7lCA+IGppblwgOwor6LuRID4gdGVpXCA7Civou5AgPiBzZW5cIDsKK+i7hyA+IHRvdVwgOwor6LuGID4gdGVpXCA7Civou4EgPiByb3VcIDsKK+i6uiA+IHRvdVwgOwor6LqwID4gdGVpXCA7Civouq0gPiB0YW5cIDsKK+i6qiA+IHJpblwgOwor6LqnID4gc2hpXCA7CivouqIgPiB0b3VcIDsKK+i6oSA+IGpvdVwgOwor6LqdID4gcmFuXCA7CivoupogPiBzZW5cIDsKK+i6mSA+IHJpblwgOwor6LqVID4gY2h1XCA7CivoupQgPiB0ZW5cIDsKK+i6iyA+IHNlaVwgOwor6LqJID4gdG9uXCA7CivouoEgPiBzb3VcIDsKK+i5uSA+IHRvdVwgOwor6LmvID4gaGFuXCA7Civoua0gPiBzb3VcIDsKK+i5rCA+IHRvdVwgOwor6LmjID4gbWFuXCA7CivouaEgPiB5b3VcIDsKK+i5nSA+IHNoaVwgOwor6LmbID4gdGFpXCA7CivouZQgPiBzYW5cIDsKK+i5jyA+IHRlaVwgOwor6LmOID4gdGVuXCA7CivouY0gPiB0ZW5cIDsKK+i5iyA+IHRvdVwgOwor6LmKID4ga2VpXCA7CivouYggPiB0b3VcIDsKK+i5hyA+IGtlblwgOwor6LmCID4ganV1XCA7CivouYEgPiBoZW5cIDsKK+i4uSA+IHNlblwgOwor6Li2ID4gdGVpXCA7CivouLQgPiB5b3VcIDsKK+i4oyA+IGhvdVwgOwor6LihID4ga2VuXCA7CivouJ4gPiBreW9cIDsKK+i4lCA+IHRvdVwgOwor6LiQID4gc2VuXCA7CivouIggPiBzaG9cIDsKK+i4hSA+IHRlaVwgOwor6LiBID4ga2VpXCA7Civot7UgPiBzZW5cIDsKK+i3tCA+IHNhaVwgOwor6LeyID4ga291XCA7Civot7EgPiBjaGlcIDsKK+i3sCA+IGhvdVwgOwor6LenID4gc2VuXCA7Civot6QgPiBrb3VcIDsKK+i3miA+IHNhblwgOwor6LeZID4gc2hvXCA7Civot5EgPiBob3VcIDsKK+i3iiA+IGJhaVwgOwor6LeIID4gZGVuXCA7Civot4YgPiB0YWlcIDsKK+i2viA+IHNoaVwgOwor6La8ID4gZ2VuXCA7CivotrIgPiBzYW5cIDsKK+i2ryA+IGthblwgOwor6LaoID4gc3V1XCA7CivotqYgPiBzaGlcIDsKK+i2nyA+IHRvdVwgOwor6LaVID4ga2FuXCA7CivotpEgPiBzaGlcIDsKK+i2jSA+IGNoaVwgOwor6LaIID4gdGFuXCA7CivotoQgPiBzaG9cIDsKK+i1vyA+IGNoaVwgOwor6LWxID4gc291XCA7Civota0gPiBzaGFcIDsKK+i1rCA+IHRlaVwgOwor6LWmID4gc2hhXCA7CivotJwgPiB6b3VcIDsKK+i0myA+IGtvdVwgOwor6LSXID4ga2VuXCA7CivotJMgPiB6b3VcIDsKK+i0kiA+IGtlblwgOwor6LSNID4gc2VuXCA7CivotIogPiBzYW5cIDsKK+i0iSA+IHRhblwgOwor6LSIID4gem91XCA7CivotIQgPiBzaGlcIDsKK+i0gyA+IHdhblwgOwor6LSBID4gaGFpXCA7Civos78gPiByb3VcIDsKK+izuCA+IHlvdVwgOwor6LO3ID4gc2VpXCA7Civos7UgPiBodXVcIDsKK+iztCA+IHJhaVwgOwor6LOyID4gaG91XCA7Civos68gPiBrZWlcIDsKK+izqCA+IHNvdVwgOwor6LOkID4gc2VuXCA7Civos6AgPiBiYWlcIDsKK+iznCA+IHNoaVwgOwor6LObID4gc2FuXCA7Civos5ogPiByYWlcIDsKK+izliA+IHNoYVwgOwor6LOUID4gaGluXCA7Civos5MgPiBoaW5cIDsKK+izkiA+IHNoYVwgOwor6LOOID4gc2VuXCA7Civos40gPiBzb3VcIDsKK+iziyA+IGtvdVwgOwor6LOGID4gaGVuXCA7Civos4UgPiBrYWlcIDsKK+izhCA+IHdhaVwgOwor6LK/ID4gYm91XCA7CivosrkgPiBzZWlcIDsKK+iytiA+IGhlblwgOwor6LKyID4gc2hpXCA7CivosqsgPiBrYW5cIDsKK+iyqiA+IGRvblwgOwor6LKpID4gaGFuXCA7CivosqIgPiBrb3VcIDsKK+iymyA+IGthblwgOwor6LKZID4gY2h1XCA7CivospIgPiB0YW5cIDsKK+iyjiA+IGdlaVwgOwor6LKMID4gYm91XCA7CivososgPiBrYW5cIDsKK+iyhyA+IGtvblwgOwor6LKGID4ga2FuXCA7CivosbsgPiBrYW5cIDsKK+ixuiA+IHNhaVwgOwor6LG4ID4gY2hpXCA7CivosbYgPiBodW5cIDsKK+ixtSA+IHNvdVwgOwor6LGzID4gaGluXCA7CivosawgPiBjaG9cIDsKK+ixqSA+IGhpblwgOwor6LGmID4ga3lvXCA7CivosaQgPiBrb25cIDsKK+ixoyA+IGtlblwgOwor6LGiID4ga2VuXCA7CivosZwgPiBrZW5cIDsKK+ixmyA+IGVraVwgOwor6LGYID4gdG9uXCA7CivosZUgPiBzaGlcIDsKK+ixjyA+IGthblwgOwor6LGLID4gdG91XCA7CivosYkgPiBzaGlcIDsKK+ixhyA+IGtvdVwgOwor6LGFID4gcm91XCA7CivosL8gPiBrZWlcIDsKK+iwviA+IGtvdVwgOwor6LC9ID4ga2FuXCA7CivosLkgPiBrb3VcIDsKK+iwuCA+IHNlblwgOwor6K6cID4gdG91XCA7CivorpogPiBzYW5cIDsKK+iumSA+IGthblwgOwor6K6VID4gcmFuXCA7CivorpMgPiBqb3VcIDsKK+iukiA+IHNhblwgOwor6K2+ID4gc2VuXCA7CivorbwgPiBrYW5cIDsKK+ituSA+IGtvdVwgOwor6K22ID4gdG91XCA7CivorbQgPiBrZW5cIDsKK+itsSA+IHplblwgOwor6K2jID4gc2VuXCA7CivorZ8gPiBzb3VcIDsKK+itniA+IGtlblwgOwor6K2aID4gdGFuXCA7CivorZQgPiBzZW5cIDsKK+itkyA+IGtlaVwgOwor6K2NID4geW91XCA7CivorYggPiB0YWlcIDsKK+ithCA+IHNvdVwgOwor6K2CID4gc2VuXCA7CivorL4gPiBiYW5cIDsKK+issCA+IHJlblwgOwor6KytID4gc2VpXCA7CivorKYgPiBrZWlcIDsKK+isoCA+IHlvdVwgOwor6KyfID4gdG91XCA7CivorJwgPiBnZW5cIDsKK+ismiA+IHNoaVwgOwor6KyXID4gYm91XCA7CivorJEgPiBrZWlcIDsKK+isiiA+IGtvdVwgOwor6KyHID4ga2VuXCA7CivorIYgPiBzZW5cIDsKK+ishSA+IHNvdVwgOwor6KyEID4gdG91XCA7Civoq7wgPiBrZW5cIDsKK+irtyA+IGZ1dVwgOwor6Ku1ID4gbmFuXCA7Civoq7QgPiBrYW5cIDsKK+irsCA+IHNoaVwgOwor6KuuID4gc2hpXCA7Civoq6wgPiBrZWlcIDsKK+irqyA+IGthblwgOwor6KunID4ga2FpXCA7Civoq6IgPiBrb25cIDsKK+iroSA+IHNoaVwgOwor6KugID4ga2VuXCA7Civoq58gPiBzaGlcIDsKK+irniA+IGhlblwgOwor6KudID4gc2hvXCA7Civoq5ogPiBqb3VcIDsKK+irlSA+IGtvdVwgOwor6KuTID4gc2VuXCA7Civoq48gPiBzaHVcIDsKK+irjSA+IHNvdVwgOwor6KuMID4ga2FuXCA7Civoq4kgPiB6dWlcIDsKK+iriCA+IHN1aVwgOwor6KuEID4ganVuXCA7Civoq4IgPiB0ZW5cIDsKK+iqviA+IGdpblwgOwor6Kq7ID4gdG91XCA7CivoqrcgPiBib3VcIDsKK+iqtiA+IHN1aVwgOwor6KqpID4ga2VpXCA7CivoqqggPiBrYWlcIDsKK+iqpSA+IGtvdVwgOwor6KqhID4ga2FpXCA7Civoqp8gPiBrb3VcIDsKK+iqmSA+IGtvdVwgOwor6KqXID4gdGVuXCA7CivoqpUgPiB0YW5cIDsKK+iqjyA+IHJvdVwgOwor6KqDID4gc2hpXCA7Civoqb8gPiBrYWlcIDsKK+ipvCA+IGthaVwgOwor6Km6ID4gYmlpXCA7CivoqbkgPiBzZW5cIDsKK+iptyA+IHRvdVwgOwor6KmsID4ga291XCA7CivoqaUgPiBrb3VcIDsKK+ipoyA+IGtlaVwgOwor6KmiID4ganVuXCA7CivoqZ0gPiBjaG9cIDsKK+ipnCA+IHRvdVwgOwor6KmTID4ga3lvXCA7CivoqZIgPiB0YWlcIDsKK+ipjiA+IGt5b1wgOwor6KmJID4gZG91XCA7CivoqYcgPiB5b3VcIDsKK+iphiA+IHRlaVwgOwor6KmFID4gcmVpXCA7CivoqYMgPiBrZW5cIDsKK+ipgCA+IHRhblwgOwor6Ki+ID4gc2hpXCA7CivoqL0gPiBrb3VcIDsKK+iotSA+IGNoaVwgOwor6KisID4gc291XCA7CivoqKQgPiBrb25cIDsKK+iooiA+IGtpblwgOwor6KieID4geW91XCA7CivoqJUgPiBzYW5cIDsKK+iolCA+IGdpblwgOwor6KiTID4ga3VuXCA7CivoqJIgPiBqaW5cIDsKK+iokSA+IHNoaVwgOwor6KiOID4gdG91XCA7CivoqIwgPiBrb3VcIDsKK+iohyA+IGtvdVwgOwor6KiCID4gdGVpXCA7Civop78gPiBrZWlcIDsKK+invSA+IGtlaVwgOwor6Ke5ID4ga2VpXCA7Civop7YgPiBzaGlcIDsKK+inpyA+IGthaVwgOwor6KelID4ga291XCA7Civop50gPiB0ZWlcIDsKK+innCA+IHNoaVwgOwor6KeYID4gc291XCA7Civop5cgPiBzaGlcIDsKK+inlCA+IGtpblwgOwor6Ka4ID4ga2FuXCA7CivoprcgPiBzaHVcIDsKK+imtSA+IGthblwgOwor6Ka0ID4gdG91XCA7CivoprIgPiBraW5cIDsKK+imryA+IGtvdVwgOwor6KalID4gdGVuXCA7CivopqAgPiBraW5cIDsKK+imnyA+IHNoaVwgOwor6KaYID4gdGVuXCA7CivoppQgPiBla2lcIDsKK+imjSA+IGhlblwgOwor6KaMID4ga2FuXCA7CivopoMgPiB0YW5cIDsKK+ilviA+IGFrYVwgOwor6KW9ID4gcmFuXCA7CivopbwgPiBnZWlcIDsKK+iluyA+IGhhblwgOwor6KW6ID4ga2VuXCA7CivopbQgPiByYW5cIDsKK+ilsyA+IHNlblwgOwor6KWwID4gcmFpXCA7CivopaIgPiB0YW5cIDsKK+iloCA+IHRvdVwgOwor6KWcID4gc2VuXCA7CivopZsgPiBqb3VcIDsKK+ilmiA+IHN1aVwgOwor6KWVID4gcmFuXCA7CivopYwgPiB0YW5cIDsKK+iliSA+IGthblwgOwor6KWEID4gam91XCA7CivopYMgPiBob3VcIDsKK+ikuSA+IGdlaVwgOwor6KSwID4ga2VuXCA7CivopKsgPiBjaGlcIDsKK+ikpyA+IGtlaVwgOwor6KSmID4gZGFpXCA7CivopKAgPiBrb3VcIDsKK+iknSA+IHRhblwgOwor6KScID4gZW5hXCA7CivopJogPiBjaG9cIDsKK+ikmSA+IGhhaVwgOwor6KSWID4gdGFuXCA7CivopI8gPiB5dXVcIDsKK+ikjSA+IHRhblwgOwor6KSKID4gaGVuXCA7CivopIYgPiBzaGlcIDsKK+ikgiA+IGthaVwgOwor6KO1ID4gaGFpXCA7Civoo7QgPiBoYWlcIDsKK+ijqiA+IHRhdVwgOwor6KOnID4gc2VuXCA7Civoo54gPiBzZWlcIDsKK+ijmSA+IGt1blwgOwor6KOSID4gaG91XCA7Civoo44gPiB0ZWlcIDsKK+ijjSA+IGtvblwgOwor6KOMID4ga291XCA7Civoo4sgPiBzaHVcIDsKK+ijiiA+IGpvdVwgOwor6KOIID4ga29uXCA7Civoor8gPiBrZWlcIDsKK+iiviA+IGNodVwgOwor6KK1ID4gamluXCA7CivoorMgPiBzaGlcIDsKK+iiqiA+IGt5b1wgOwor6KKoID4ga2VuXCA7CivooqQgPiBib3VcIDsKK+iiniA+IGtvblwgOwor6KKbID4gdGVpXCA7CivoopIgPiB0YW5cIDsKK+iijSA+IGhvdVwgOwor6KKAID4ga2luXCA7Civoob8gPiBlcmlcIDsKK+ihvSA+IGppblwgOwor6KG7ID4gemVuXCA7CivoobIgPiBkb3VcIDsKK+ihriA+IGtvblwgOwor6KGrID4gc2FuXCA7CivooakgPiBzYWlcIDsKK+ihpiA+IGthblwgOwor6KGfID4gZG91XCA7CivooZwgPiBkb3VcIDsKK+ihmSA+IGd5b1wgOwor6KGYID4ga2FuXCA7CivooZYgPiBrb3VcIDsKK+ihlSA+IHRvdVwgOwor6KGSID4ga2VuXCA7CivooZEgPiByZWlcIDsKK+ihjiA+IGthblwgOwor6KGFID4ga2luXCA7CivooYMgPiBoYWlcIDsKK+ihgSA+IGtvdVwgOwor6KC7ID4gYmFuXCA7CivooLogPiBzYW5cIDsKK+igtSA+IGtlaVwgOwor6KCyID4ga2VuXCA7CivooK0gPiBob3VcIDsKK+igoyA+IHJlaVwgOwor6KChID4gcmVpXCA7CivooJ8gPiByb3VcIDsKK+ignCA+IGhhblwgOwor6KCZID4gaGVuXCA7CivooJQgPiBrb3VcIDsKK+igkyA+IGJvdVwgOwor6KCSID4ga2VuXCA7CivooJAgPiBzZWlcIDsKK+igjyA+IGthaVwgOwor6KCKID4gcmVuXCA7CivooIkgPiBrZW5cIDsKK+ighiA+IHRhaVwgOwor6KCFID4geW91XCA7Civon78gPiBrZWlcIDsKK+ifviA+IHNlblwgOwor6J+6ID4gc2VuXCA7Civon7ggPiByZWlcIDsKK+iftyA+IHRvdVwgOwor6J+2ID4gdGVpXCA7Civon7MgPiBqaW5cIDsKK+ifsSA+IGJvdVwgOwor6J+sID4gc2VuXCA7Civon6ogPiBrZWlcIDsKK+ifpCA+IHNlblwgOwor6J+gID4gaGFuXCA7Civon5ogPiBob3VcIDsKK+ifliA+IHNoaVwgOwor6J+VID4gc3VpXCA7Civon5IgPiBib3VcIDsKK+ifkCA+IHRvdVwgOwor6J+KID4gYm91XCA7Civon4EgPiBidW5cIDsKK+ieuyA+IHJvdVwgOwor6J6zID4gdG91XCA7Civonq8gPiBnb3VcIDsKK+ieriA+IHRlaVwgOwor6J6tID4gY2hpXCA7CivonqwgPiBzb3VcIDsKK+iepyA+IGViaVwgOwor6J6jID4gdG91XCA7Civonp8gPiBtZWlcIDsKK+ielyA+IHRvdVwgOwor6J6VID4gaGVpXCA7CivonowgPiBoYW5cIDsKK+ieiCA+IGdlblwgOwor6J6HID4ga2VpXCA7CivonoYgPiBzaGlcIDsKK+iehSA+IHNoaVwgOwor6J6EID4gc2hpXCA7CivonoMgPiBob3VcIDsKK+iegiA+IHJvdVwgOwor6J27ID4gbmFuXCA7CivonbEgPiBtb3VcIDsKK+idqiA+IHRvdVwgOwor6J2mID4gZWJpXCA7CivonaUgPiBib3VcIDsKK+idoyA+IHl1dVwgOwor6J2hID4gemVuXCA7CivonZcgPiBrb3VcIDsKK+idhSA+IHNhblwgOwor6J2DID4gdGVpXCA7CivonYAgPiB0b3VcIDsKK+icuiA+IGdlaVwgOwor6Jy5ID4gemVpXCA7CivonLcgPiBrZW5cIDsKK+ictCA+IGVraVwgOwor6JyvID4gaG91XCA7CivonKEgPiBzaG9cIDsKK+icnyA+IGlrdVwgOwor6JyWID4ga2FpXCA7CivonJUgPiB6ZWlcIDsKK+iclCA+IHRlblwgOwor6JyTID4gdGVuXCA7CivonJEgPiB0YW5cIDsKK+icjyA+IHl1dVwgOwor6JyNID4gc2hvXCA7CivonIsgPiByb3VcIDsKK+ibvSA+IGJhaVwgOwor6Ju8ID4gc2hhXCA7Civom7sgPiB6ZWlcIDsKK+ibryA+IGViaVwgOwor6JuuID4gYmFuXCA7Civom6cgPiBib3VcIDsKK+iboCA+IHJlaVwgOwor6JufID4ga291XCA7Civom5cgPiBodXVcIDsKK+iblSA+IGthaVwgOwor6JuUID4ga2FpXCA7Civom5EgPiBib3VcIDsKK+ibjiA+IHJlaVwgOwor6JuLID4gdGFuXCA7Civom4UgPiB6ZW5cIDsKK+ibgyA+IGhlaVwgOwor6JuAID4gc2h1XCA7Civomr8gPiBrZW5cIDsKK+iatyA+IGt5b1wgOwor6Jq2ID4ga2FuXCA7CivomrQgPiB5dXVcIDsKK+iasyA+IGNoaVwgOwor6JqwID4geXV1XCA7CivomqsgPiBob3VcIDsKK+iaqiA+IHRvdVwgOwor6JqpID4gc2hpXCA7CivomqcgPiBrYWlcIDsKK+iapiA+IHplblwgOwor6JqjID4ga291XCA7CivomqEgPiBodW5cIDsKK+iamCA+IGthaVwgOwor6JqWID4gZ2VuXCA7CivomowgPiBob3VcIDsKK+iaiCA+IGtlblwgOwor6Jm7ID4gYWJ1XCA7CivombcgPiBrYW5cIDsKK+iZtSA+IHNoYVwgOwor6JmkID4gZ2FuXCA7CivomaMgPiBob3VcIDsKK+iZoiA+IGhvdVwgOwor6JmhID4ga3lvXCA7CivomaAgPiBrb3VcIDsKK+iZmyA+IGt5b1wgOwor6JmXID4ga3lvXCA7CivomZQgPiBrZW5cIDsKK+iZkyA+IGtvdVwgOwor6JmSID4gc2hpXCA7CivomYYgPiBydWlcIDsKK+iZgCA+IHNlaVwgOwor6Ji4ID4gc2FuXCA7CivomK8gPiB0b3VcIDsKK+iYqSA+IGhhblwgOwor6JiiID4gcm91XCA7CivomJ4gPiByZW5cIDsKK+iYmyA+IGlrdVwgOwor6JiaID4gc2VuXCA7CivomJggPiBqb3VcIDsKK+iYkCA+IGtlblwgOwor6JiPID4ga2VpXCA7CivomI0gPiBrdW5cIDsKK+iYiyA+IGhpblwgOwor6JiFID4ga291XCA7Civol74gPiByYWlcIDsKK+iXvCA+IGtlblwgOwor6Je6ID4gcmluXCA7Civol7cgPiBzaG9cIDsKK+iXsyA+IGtvdVwgOwor6JefID4gcnVpXCA7Civol5ggPiByeW9cIDsKK+iXlSA+IGd1dVwgOwor6JePID4gem91XCA7Civol4ogPiBoZW5cIDsKK+iXhyA+IHNob1wgOwor6JeCID4gc291XCA7Civolr4gPiBzaGlcIDsKK+iWuSA+IHRhaVwgOwor6Ja2ID4gYmFpXCA7CivolrQgPiBub3VcIDsKK+iWsCA+IGt1blwgOwor6JatID4gaGFpXCA7CivolqsgPiBrdW5cIDsKK+iWqCA+IGtvdVwgOwor6JanID4ga291XCA7CivolqQgPiBrYWlcIDsKK+iWoiA+IGthaVwgOwor6JagID4gaGFuXCA7Civolp8gPiByZW5cIDsKK+iWnSA+IHNlblwgOwor6JaZID4gdGVpXCA7CivolpAgPiByb3VcIDsKK+iWiyA+IHNoaVwgOwor6JaJID4gd2FpXCA7CivologgPiBrYWlcIDsKK+iWhSA+IGtvdVwgOwor6JaBID4gaWt1XCA7Civolb8gPiBrZW5cIDsKK+iVvSA+IGRvdVwgOwor6JW7ID4ga291XCA7CivolbkgPiB5b3VcIDsKK+iVryA+IHJvdVwgOwor6JWrID4gdG91XCA7CivolaQgPiB6dWlcIDsKK+iVoiA+IGthaVwgOwor6JWhID4gaHVuXCA7CivolZ4gPiBzYWlcIDsKK+iVmSA+IGtlaVwgOwor6JWYID4gam91XCA7CivolZYgPiBreW9cIDsKK+iVlSA+IHl1dVwgOwor6JWSID4gYmFpXCA7CivolZEgPiBrYW5cIDsKK+iVjyA+IGNob1wgOwor6JWLID4genVpXCA7CivolYogPiB6dWlcIDsKK+iVhiA+IHRlblwgOwor6JWDID4gYmFuXCA7CivolYEgPiBqaW5cIDsKK+iUsyA+IHNlblwgOwor6JSyID4ga291XCA7CivolKogPiBzZW5cIDsKK+iUpyA+IHNlaVwgOwor6JSlID4gc291XCA7CivolKEgPiBzYWlcIDsKK+iUniA+IHJvdVwgOwor6JScID4gZ291XCA7CivolJcgPiBzaG9cIDsKK+iUkyA+IGJhblwgOwor6JSCID4gcnVpXCA7CivolIAgPiBob3VcIDsKK+iTuiA+IGdlaVwgOwor6JO3ID4gdGFpXCA7Civok7EgPiBoZWlcIDsKK+iTsCA+IHNoaVwgOwor6JOvID4gc291XCA7Civok6ogPiB0b3VcIDsKK+iTnCA+IGhhaVwgOwor6JOTID4gaGFpXCA7Civok40gPiBzaGlcIDsKK+iTiSA+IHlvdVwgOwor6JOIID4ga291XCA7Civok4IgPiBtZWlcIDsKK+iTgCA+IHNvblwgOwor6JK/ID4ga291XCA7Civokr4gPiBiZWlcIDsKK+iSuSA+IGtlblwgOwor6JKvID4ga2FpXCA7Civokq0gPiBzdXVcIDsKK+iSqCA+IHNlblwgOwor6JKhID4gaG91XCA7CivokpMgPiBqdW5cIDsKK+iSkiA+IHNoaVwgOwor6JKEID4ga2FuXCA7CivokoIgPiB0ZWlcIDsKK+iRvSA+IHlvdVwgOwor6JG8ID4gc291XCA7CivokbkgPiBzaGlcIDsKK+iRuCA+IHNhaVwgOwor6JG3ID4gZ3VuXCA7CivokbYgPiB0ZWlcIDsKK+iRtSA+IGFvaVwgOwor6JGwID4gc3VpXCA7Civoka4gPiB0YW5cIDsKK+iRqiA+IGtlaVwgOwor6JGlID4gc2VuXCA7CivokaIgPiBnYWlcIDsKK+iRmCA+IHNoaVwgOwor6JGSID4ga291XCA7CivokZEgPiBob3VcIDsKK+iRjyA+IHNlblwgOwor6JGIID4gc2hpXCA7CivokYcgPiBqdXVcIDsKK+iRhSA+IHNob1wgOwor6JC5ID4gaGVuXCA7CivokLEgPiBrZW5cIDsKK+iQryA+IGh1dVwgOwor6JCgID4gaG91XCA7CivokJUgPiBzZWlcIDsKK+iQkSA+IGthblwgOwor6JCPID4gdGFuXCA7CivokI0gPiBoZWlcIDsKK+iQiyA+IHNlaVwgOwor6JCKID4gcmFpXCA7CivokIMgPiBzdWlcIDsKK+iPvCA+IHRhblwgOwor6I+7ID4gcmluXCA7Civoj7kgPiBzaG9cIDsKK+iPtyA+IHNvdVwgOwor6I+2ID4gaG91XCA7Civoj6ogPiB0b3VcIDsKK+iPmCA+IHN1dVwgOwor6I+RID4gc2hpXCA7Civoj44gPiBrb25cIDsKK+iPjCA+IGtpblwgOwor6I+FID4ga2FuXCA7Civoj4EgPiBzZWlcIDsKK+iOvyA+IHNoaVwgOwor6I6+ID4gbW91XCA7Civojr0gPiBib3VcIDsKK+iOsSA+IHJhaVwgOwor6I6sID4gYnVuXCA7CivojqcgPiBrYW5cIDsKK+iOpiA+IHNvdVwgOwor6I6gID4geXV1XCA7Civojp8gPiBrYW5cIDsKK+iOniA+IGthblwgOwor6I6bID4gdGVpXCA7CivojpkgPiBraW5cIDsKK+iOliA+IGtlaVwgOwor6I6VID4ga291XCA7CivojpQgPiBtb3VcIDsKK+iOkyA+IG1haVwgOwor6I6SID4ga3lvXCA7CivojoogPiBzb3VcIDsKK+iOiSA+IGNoaVwgOwor6I6HID4gY2hvXCA7CivojoQgPiBrb3VcIDsKK+iNvyA+IHNlaVwgOwor6I27ID4gb2dpXCA7CivojbUgPiBqaW5cIDsKK+iNsyA+IHRvdVwgOwor6I2YID4gc291XCA7CivojZYgPiBob3VcIDsKK+iNlSA+IGtpblwgOwor6I2TID4gaGVpXCA7CivojZEgPiB0ZWlcIDsKK+iNkCA+IHNlblwgOwor6I2OID4gY2hpXCA7CivojYogPiBrZWlcIDsKK+iNhyA+IGtvdVwgOwor6I2GID4ga2VpXCA7CivojYUgPiB0b3VcIDsKK+iNhCA+IGthaVwgOwor6I2DID4gc2VuXCA7CivojYAgPiBqdW5cIDsKK+iMvCA+IHRvdVwgOwor6Iy3ID4gaGFpXCA7CivojLQgPiBrYWlcIDsKK+iMsyA+IGtvdVwgOwor6IyxID4gc2h1XCA7CivojKwgPiBzaGlcIDsKK+iMnSA+IHNhaVwgOwor6IybID4ga29uXCA7CivojJcgPiBtZWlcIDsKK+iMiyA+IHNoaVwgOwor6IyKID4gc2hpXCA7CivojIggPiBzaGlcIDsKK+iMhiA+IGJvdVwgOwor6IyDID4gaGFuXCA7Civoi7kgPiBoZWlcIDsKK+iLtyA+IGthblwgOwor6IuzID4gdG91XCA7Civoi68gPiBob25cIDsKK+iLrSA+IHlvdVwgOwor6IurID4gc2VuXCA7Civoi6ogPiBoZWlcIDsKK+iLqCA+IGRlaVwgOwor6IunID4gY2hvXCA7Civoi6MgPiBreW9cIDsKK+iLoCA+IGJpblwgOwor6IufID4ga291XCA7Civoi54gPiBob3VcIDsKK+iLmiA+IHlvdVwgOwor6IuTID4gcmVpXCA7Civoi5IgPiB6ZW5cIDsKK+iLkCA+IHRlaVwgOwor6IuFID4gZ2FpXCA7Civoir8gPiBqb3VcIDsKK+iKvCA+IGJvdVwgOwor6Iq7ID4gc3V1XCA7CivoircgPiBzaGlcIDsKK+iKriA+IHplaVwgOwor6IqsID4gZnVuXCA7CivoiqsgPiBnZW5cIDsKK+iKqSA+IGtpblwgOwor6IqnID4gY2hvXCA7CivoiqUgPiBrYWlcIDsKK+iKpCA+IGtvdVwgOwor6IqjID4gaHV1XCA7CivoiqEgPiBrZW5cIDsKK+iKoCA+IGJ1blwgOwor6IqfID4gc2FuXCA7CivoipogPiB0b25cIDsKK+iKliA+IGNoaVwgOwor6IqLID4gaW1vXCA7CivoioogPiBzZW5cIDsKK+iKiSA+IGthaVwgOwor6IqHID4gYmVuXCA7CivoioQgPiBrYW5cIDsKK+iKgyA+IGhvdVwgOwor6IqBID4ga291XCA7Civoib8gPiBqb3VcIDsKK+iJviA+IGdhaVwgOwor6ImxID4ga2FuXCA7Civoia4gPiBrb25cIDsKK+iJrSA+IHNvdVwgOwor6ImoID4gbW91XCA7CivoiaYgPiBrYW5cIDsKK+iJoCA+IHRvdVwgOwor6ImfID4gZG91XCA7CivoiZwgPiB0YWlcIDsKK+iJmiA+IHNvdVwgOwor6ImZID4gc291XCA7CivoiZggPiBzb3VcIDsKK+iJkSA+IGhlblwgOwor6ImOID4ga291XCA7CivoiYsgPiBtb3VcIDsKK+iJhyA+IHRlaVwgOwor6ImGID4gcm91XCA7CivoiYQgPiBzb3VcIDsKK+iIuiA+IGtvdVwgOwor6Ii3ID4ga2VuXCA7CivoiLIgPiByZWlcIDsKK+iIqyA+IGhvdVwgOwor6IipID4gc2VuXCA7CivoiKggPiBoYW5cIDsKK+iIoiA+IHNhblwgOwor6IihID4ga291XCA7CivoiJsgPiBzZW5cIDsKK+iImiA+IHRlblwgOwor6IiZID4ga3V1XCA7CivoiJggPiBrYW5cIDsKK+iIlCA+IHRlblwgOwor6IiTID4gc2hpXCA7CivoiJAgPiBzaGlcIDsKK+iIjSA+IHNoYVwgOwor6IiJID4ga3lvXCA7CivoiIAgPiB5b3VcIDsKK+iHvyA+IHNvdVwgOwor6Ie9ID4ga2FuXCA7Civoh7YgPiBzZW5cIDsKK+iHsSA+IGJlblwgOwor6IenID4gem91XCA7Civoh6QgPiBrYW5cIDsKK+iHoSA+IGRlaVwgOwor6IegID4gcmVuXCA7Civoh5ogPiByeW9cIDsKK+iHmCA+IHJvdVwgOwor6IeXID4ga29uXCA7Civoh5MgPiB6b3VcIDsKK+iHkSA+IGRhdVwgOwor6IePID4gaGluXCA7Civoh44gPiBzdWlcIDsKK+iHiyA+IGRlblwgOwor6IeKID4gc291XCA7Civoh4kgPiByZW5cIDsKK+iHiCA+IHJvdVwgOwor6IeGID4gb2t1XCA7Civoh4MgPiB5b3VcIDsKK+iHgCA+IGRlblwgOwor6Ia+ID4ga2FpXCA7CivohrsgPiB0YW5cIDsKK+iGuiA+IHlvdVwgOwor6Ia4ID4genVpXCA7CivohrUgPiBzdWlcIDsKK+iGsCA+IGhhblwgOwor6IaoID4gYm91XCA7CivohqIgPiByb3VcIDsKK+iGniA+IHNlblwgOwor6IabID4gdG91XCA7CivohpYgPiBob3VcIDsKK+iGkCA+IHJ5b1wgOwor6IaPID4ga291XCA7Civoho4gPiBrYWlcIDsKK+iGhSA+IHRvdVwgOwor6IaCID4gcnlvXCA7CivohoEgPiBrZW5cIDsKK+iGgCA+IGhvdVwgOwor6IW6ID4gc2VuXCA7CivohbEgPiBrZW5cIDsKK+iFqyA+IHNodVwgOwor6IWpID4gZGFuXCA7CivohaggPiBzZW5cIDsKK+iFpyA+IHNodVwgOwor6IWlID4gc2VpXCA7CivohaAgPiBzb3VcIDsKK+iFlCA+IGtvdVwgOwor6IWSID4ga3lvXCA7CivohY4gPiBqaW5cIDsKK+iFjCA+IHlvdVwgOwor6IWHID4gZGFpXCA7CivohYYgPiB0ZW5cIDsKK+iFhSA+IHRhblwgOwor6IWBID4gaGVuXCA7CivohLogPiB6ZWlcIDsKK+iEsCA+IHRvdVwgOwor6ISsID4gaG91XCA7CivohKcgPiBzYWlcIDsKK+iEoCA+IHNlblwgOwor6ISYID4ga2FuXCA7CivohJcgPiBidW5cIDsKK+iEhiA+IHplaVwgOwor6ISDID4gemVpXCA7Civog74gPiBzaGlcIDsKK+iDvCA+IGhlblwgOwor6IO2ID4ga291XCA7Civog7IgPiBrYWlcIDsKK+iDsSA+IGtvdVwgOwor6IOuID4gaG91XCA7Civog6UgPiBzaG9cIDsKK+iDoCA+IGt5b1wgOwor6IOdID4gY2hpXCA7Civog5sgPiBrb3VcIDsKK+iDmiA+IGhhaVwgOwor6IOYID4ga2VuXCA7Civog5YgPiBoYW5cIDsKK+iDlCA+IHNoaVwgOwor6IOSID4gZGVpXCA7Civog48gPiBzaGlcIDsKK+iCuiA+IGhhaVwgOwor6IKsID4geXV1XCA7CivogqogPiBib3VcIDsKK+iCpyA+IGhhaVwgOwor6IKmID4gZnVuXCA7CivogqIgPiBzaGlcIDsKK+iCnCA+IHl1dVwgOwor6IKbID4ga291XCA7CivogpMgPiBrb3VcIDsKK+iCjiA+IGtvdVwgOwor6IG5ID4gZGVpXCA7CivogbYgPiBqb3VcIDsKK+iBtSA+IGdhaVwgOwor6IGxID4gZ291XCA7CivogbAgPiBzb3VcIDsKK+iBryA+IHJlblwgOwor6IGuID4gcmVuXCA7CivogasgPiByZW5cIDsKK+iBqCA+IHJlblwgOwor6IGmID4gc291XCA7CivogaQgPiB0ZWlcIDsKK+iBoSA+IHNvdVwgOwor6IGgID4gaGVpXCA7CivogZ8gPiBzZWlcIDsKK+iBmCA+IGhlaVwgOwor6IGGID4gcmVpXCA7CivogL8gPiBrb3VcIDsKK+iAviA+IGtvdVwgOwor6IC8ID4gdGFuXCA7CivogLkgPiBraW5cIDsKK+iAtyA+IHRvdVwgOwor6IC1ID4gdGVpXCA7CivogLAgPiB5dXVcIDsKK+iAriA+IHJvdVwgOwor6ICsID4gcm91XCA7CivogKggPiBkb3VcIDsKK+iApiA+IGdvdVwgOwor6ICgID4ga291XCA7CivogJ8gPiBreW9cIDsKK+iAnSA+IHNob1wgOwor6ICcID4gc2hpXCA7CivogJcgPiBtb3VcIDsKK+iAliA+IHNvdVwgOwor6ICUID4gc2hpXCA7CivogJMgPiB0ZWlcIDsKK+iAkiA+IHJhaVwgOwor6ICRID4gdGFuXCA7CivogI4gPiB6ZW5cIDsKK+iAiSA+IGtvdVwgOwor6ICIID4ga291XCA7CivogIcgPiBrb3VcIDsKK+iAhCA+IG1vdVwgOwor6ICAID4geW91XCA7Civnv78gPiB0b3VcIDsKK+e/viA+IGtlblwgOwor57+9ID4ga2FpXCA7Civnv7ogPiBnb3VcIDsKK+e/sCA+IGthblwgOwor57+rID4gZ2FuXCA7Civnv6kgPiBoZW5cIDsKK+e/qCA+IHNoaVwgOwor57+mID4gc2VuXCA7Civnv6UgPiBzaG9cIDsKK+e/oyA+IHNvdVwgOwor57+gID4gc3VpXCA7Civnv5sgPiB5dXVcIDsKK+e/jiA+IHJlaVwgOwor57+IID4ga291XCA7Civnv4YgPiBzdWlcIDsKK+e/hSA+IHNoaVwgOwor57+DID4ga291XCA7Civnvr8gPiBnZWlcIDsKK+e+vCA+IHNhblwgOwor5764ID4gcnVpXCA7CivnvrYgPiBzZW5cIDsKK+e+tCA+IHNlblwgOwor576qID4geW91XCA7CivnvqYgPiBrYW5cIDsKK+e+oyA+IGd1blwgOwor576iID4gam91XCA7CivnvqEgPiBzZW5cIDsKK+e+nSA+IHRlaVwgOwor576cID4gY2hvXCA7CivnvpogPiByZWlcIDsKK+e+mCA+IHNvdVwgOwor576UID4ga291XCA7CivnvpEgPiB5dXVcIDsKK+e+kCA+IHl1dVwgOwor576PID4geW91XCA7CivnvoIgPiBrZW5cIDsKK+e9viA+IHNvdVwgOwor5729ID4ga2VpXCA7CivnvbIgPiBzaG9cIDsKK+e9sSA+IGd1blwgOwor572rID4ga2VpXCA7CivnvakgPiB0b3VcIDsKK+e9pSA+IGtlblwgOwor572kID4gdGVpXCA7CivnvaMgPiBrYWlcIDsKK+e9oSA+IGtvdVwgOwor572dID4gc2hhXCA7CivnvZwgPiBzaHVcIDsKK+e9lSA+IGthblwgOwor572UID4gbW91XCA7CivnvZMgPiBtb3VcIDsKK+e9kiA+IG1vdVwgOwor572RID4gYm91XCA7CivnvY0gPiByYWlcIDsKK+e9hyA+IHNvblwgOwor572EID4ga2VpXCA7CivnvL8gPiB0b3VcIDsKK+e8viA+IGhlaVwgOwor57y4ID4ga291XCA7CivnvLcgPiBzaGFcIDsKK+e8tiA+IGthblwgOwor57yQID4gc2VuXCA7Civnu7kgPiB0b3VcIDsKK+e6uyA+IGNob1wgOwor57quID4ga291XCA7Civnup4gPiByZW5cIDsKK+e6nSA+IHJ1aVwgOwor57qcID4gcmFuXCA7CivnupsgPiB0b3VcIDsKK+e6miA+IHNoaVwgOwor57qYID4gc2FiXCA7CivnupYgPiBzZW5cIDsKK+e6lCA+IHNhblwgOwor57qQID4ga291XCA7Civnuo4gPiBzZW5cIDsKK+e6jSA+IHJ1aVwgOwor57qKID4ga291XCA7CivnuokgPiBzYW5cIDsKK+e6hyA+IHJhaVwgOwor57qBID4ga3VuXCA7Civnub8gPiByYW5cIDsKK+e5viA+IHRlblwgOwor57m9ID4gaGluXCA7CivnubkgPiBla2lcIDsKK+e5uCA+IHN1aVwgOwor57mvID4ga2VuXCA7CivnuasgPiBrZWlcIDsKK+e5pCA+IHNhblwgOwor57miID4ga2FpXCA7CivnuZ8gPiBzZW5cIDsKK+e5nSA+IGthblwgOwor57mZID4gaGFuXCA7CivnuZYgPiBzYW5cIDsKK+e5kCA+IGtlaVwgOwor57mOID4gYmluXCA7CivnuYsgPiBrZWlcIDsKK+e5iiA+IHNlblwgOwor57mHID4geW91XCA7CivnuYUgPiBzb3VcIDsKK+e5gyA+IGhvdVwgOwor57i/ID4gc2FuXCA7CivnuLogPiByZW5cIDsKK+e4tSA+IGJhblwgOwor57i0ID4ga2VuXCA7CivnuLMgPiB0ZW5cIDsKK+e4siA+IHJ1aVwgOwor57ioID4ga291XCA7CivnuKcgPiB0b3VcIDsKK+e4oyA+IGtlblwgOwor57iiID4gdG91XCA7CivnuKEgPiBzYWlcIDsKK+e4lyA+IHNhaVwgOwor57iSID4gc2hpXCA7CivnuJEgPiBrZW5cIDsKK+e4hiA+IGtvdVwgOwor57iCID4gc291XCA7Civnt7sgPiBjaGlcIDsKK+e3uiA+IGthaVwgOwor57e5ID4gdGVpXCA7Civnt7YgPiBoZW5cIDsKK+e3tSA+IHNvdVwgOwor57exID4ga291XCA7Civnt6sgPiBzb3VcIDsKK+e3qiA+IGtvdVwgOwor57emID4gc2hpXCA7Civnt6UgPiBob3VcIDsKK+e3oiA+IGJvdVwgOwor57ehID4gYmluXCA7Civnt54gPiB0YW5cIDsKK+e3nCA+IGJlblwgOwor57eYID4ga2FuXCA7Civnt5YgPiBzaG9cIDsKK+e3jSA+IGJpblwgOwor57eMID4genVpXCA7Civnt4cgPiBzaGlcIDsKK+e3hCA+IGtvblwgOwor57eCID4gdGFuXCA7CivntrsgPiB0YW5cIDsKK+e2uCA+IHJpblwgOwor57a3ID4gc2FpXCA7CivntrUgPiBzYWlcIDsKK+e2syA+IGhvdVwgOwor57awID4gd2FuXCA7Civntq8gPiB0b3VcIDsKK+e2riA+IGtlaVwgOwor57arID4gc2VuXCA7CivntqogPiBzZW5cIDsKK+e2oyA+IGtlblwgOwor57afID4gcmVpXCA7CivntpwgPiBzb3VcIDsKK+e2lyA+IGdlaVwgOwor57aRID4ga29uXCA7Civnto8gPiBzdWlcIDsKK+e2iyA+IGtvdVwgOwor57aJID4gdG91XCA7CivntoggPiB0ZWlcIDsKK+e2hiA+IGtvdVwgOwor57aCID4gdG91XCA7CivntoEgPiBob3VcIDsKK+e1vSA+IHJ5b1wgOwor57W7ID4gYnVuXCA7CivntbogPiBjaGlcIDsKK+e1uCA+IGtlblwgOwor57WzID4ga291XCA7CivntacgPiB0b3VcIDsKK+e1oiA+IGtlblwgOwor57WbID4gam91XCA7CivntZogPiBrb3VcIDsKK+e1mSA+IGthblwgOwor57WWID4ga291XCA7CivntZMgPiBrYWlcIDsKK+e1kSA+IHNodVwgOwor57WOID4ga291XCA7CivntY0gPiBqaW5cIDsKK+e1iyA+IGtvdVwgOwor57WFID4ga2VpXCA7CivntYMgPiBnZW5cIDsKK+e1gSA+IHNoaVwgOwor57S/ID4gdGFpXCA7CivntLUgPiBjaG9cIDsKK+e0rSA+IGtvdVwgOwor57SqID4gc2VpXCA7CivntKMgPiBzYWlcIDsKK+e0oSA+IGJvdVwgOwor57SeID4gdGFuXCA7CivntJ0gPiBqaW5cIDsKK+e0mCA+IGtvdVwgOwor57STID4gc2hvXCA7CivntJIgPiBrZWlcIDsKK+e0kSA+IGh1dVwgOwor57SPID4gdG91XCA7CivntIogPiBiaW5cIDsKK+e0iSA+IGppblwgOwor57SIID4ga2FuXCA7Civns7sgPiBrZWlcIDsKK+ezsiA+IHJlaVwgOwor57OwID4gZGFuXCA7Civns6sgPiBrYWlcIDsKK+ezqSA+IGthaVwgOwor57OmID4gc2hpXCA7Civns6QgPiBzYW5cIDsKK+eznyA+IHNvdVwgOwor57OdID4gc2FuXCA7Civns5ogPiBzb3VcIDsKK+ezmSA+IHNvdVwgOwor57OVID4ga291XCA7Civns40gPiBzaGlcIDsKK+eziSA+IHNvdVwgOwor57OIID4gc2hvXCA7Civns4cgPiBrb3VcIDsKK+ezhSA+IGp1dVwgOwor57OEID4gaGVuXCA7Civns4IgPiBzYW5cIDsKK+eyvSA+IHNvdVwgOwor57K8ID4gcmluXCA7CivnsrogPiBoYWlcIDsKK+eyuSA+IHN1aVwgOwor57KzID4ga291XCA7CivnsrIgPiBzYW5cIDsKK+eysCA+IGZ1dVwgOwor57KmID4gcmluXCA7CivnsqIgPiBzaGlcIDsKK+eyoSA+IHRvdVwgOwor57KgID4ga291XCA7Civnsp4gPiBzZWlcIDsKK+eymCA+IG5lblwgOwor57KUID4ga3lvXCA7CivnsosgPiBpa2lcIDsKK+eyhyA+IGtvdVwgOwor57G9ID4gc2hpXCA7CivnsbwgPiBzZW5cIDsKK+exrSA+IHNoaVwgOwor57GpID4gaGVuXCA7CivnsacgPiBreW9cIDsKK+exoyA+IHJhblwgOwor57GfID4gcmFpXCA7CivnsZ4gPiBneW9cIDsKK+exmyA+IHNlblwgOwor57GYID4gdG91XCA7CivnsZMgPiBoYW5cIDsKK+exkSA+IHNlblwgOwor57GDID4gcmFuXCA7CivnsL0gPiBzZW5cIDsKK+ewuiA+IHNhaVwgOwor57C5ID4gdG91XCA7CivnsLQgPiBreW9cIDsKK+ewsyA+IGthblwgOwor57CnID4ga291XCA7CivnsKYgPiB0b3VcIDsKK+ewnyA+IHRlblwgOwor57CeID4gdGFuXCA7CivnsJsgPiBzaGlcIDsKK+ewkyA+IHNlblwgOwor57CSID4gc2FuXCA7CivnsI0gPiByb3VcIDsKK+ewhyA+IHNvdVwgOwor57CGID4ga291XCA7CivnsIEgPiBzaGlcIDsKK+evvCA+IHRvdVwgOwor56+6ID4gaGFpXCA7Civnr7kgPiBzYW5cIDsKK+evtyA+IGhvdVwgOwor56+1ID4gc291XCA7Civnr7IgPiBzdWlcIDsKK+evqiA+IGNoaVwgOwor56+oID4gY2hvXCA7Civnr6YgPiBoZWlcIDsKK+evoSA+IHNhblwgOwor56+dID4ga291XCA7Civnr5kgPiBrb3VcIDsKK+evliA+IHRvdVwgOwor56+PID4ga2FuXCA7Civnr4wgPiBrb3VcIDsKK+eviiA+IGtvdVwgOwor56+IID4gaG91XCA7Civnr4cgPiBoZW5cIDsKK+evhiA+IHRlblwgOwor56+FID4gc3VpXCA7Civnr4IgPiBzZWlcIDsKK+euvSA+IHRvdVwgOwor5668ID4gb2t1XCA7CivnrrUgPiBzZWlcIDsKK+eusiA+IHNlblwgOwor566vID4gaGVuXCA7Civnrq0gPiBzZW5cIDsKK+euoCA+IHN1aVwgOwor566fID4ga2luXCA7Civnrp4gPiBrZW5cIDsKK+eunSA+IGthblwgOwor566cID4ga291XCA7CivnrpggPiBraW5cIDsKK+euliA+IHJpblwgOwor566RID4gc291XCA7CivnrpAgPiBzZWlcIDsKK+eujyA+IHNvdVwgOwor566JID4ga2FpXCA7CivnroQgPiBoYWlcIDsKK+ettyA+IGthaVwgOwor562zID4gdGVpXCA7CivnrbIgPiBzb3VcIDsKK+etryA+IGNob1wgOwor562uID4gc2VpXCA7Civnra0gPiBzYW5cIDsKK+etrCA+IHNlaVwgOwor562qID4ga291XCA7CivnrakgPiB0b3VcIDsKK+etpiA+IGthblwgOwor562lID4ga3lvXCA7CivnraQgPiByb3VcIDsKK+etnSA+IHNvdVwgOwor562VID4ga291XCA7CivnrYwgPiBzZW5cIDsKK+ethSA+IHNlblwgOwor562AID4ga2VpXCA7CivnrLYgPiBzaGlcIDsKK+estSA+IGhhblwgOwor56yxID4ga291XCA7CivnrK0gPiByZWlcIDsKK+esqyA+IHNoaVwgOwor56yqID4gdGFuXCA7CivnrKkgPiBoYWlcIDsKK+esqCA+IGhvblwgOwor56yjID4gaG91XCA7CivnrJ4gPiBjaGlcIDsKK+esmSA+IHNvdVwgOwor56yYID4gc2VuXCA7CivnrIsgPiBqdW5cIDsKK+eshyA+IHNhblwgOwor56u+ID4gc2hpXCA7Civnq7wgPiBob3VcIDsKK+eruCA+IGtlaVwgOwor56uxID4gc2VuXCA7Civnq6sgPiBzZWlcIDsKK+eroiA+IHNoaVwgOwor56ubID4gcmVpXCA7Civnq5ogPiBjaG9cIDsKK+ermSA+IHRhblwgOwor56uRID4ga291XCA7Civnq44gPiBmdXVcIDsKK+erjCA+IHNob1wgOwor56uJID4gcm91XCA7Civnq4cgPiB0b3VcIDsKK+erhCA+IHphblwgOwor56q8ID4gc291XCA7CivnqrsgPiBzb3VcIDsKK+eqsCA+IHlvdVwgOwor56qeID4gdGFuXCA7CivnqpggPiBraW5cIDsKK+eqlyA+IHNvdVwgOwor56qWID4ga291XCA7CivnqpQgPiB5b3VcIDsKK+eqkSA+IHlvdVwgOwor56qQID4ga2VpXCA7CivnqoggPiB5b3VcIDsKK+eqhiA+IGJpblwgOwor56qFID4geW91XCA7CivnqoIgPiByb3VcIDsKK+epviA+IHlvdVwgOwor56m9ID4gc2VpXCA7CivnqbAgPiBqb3VcIDsKK+eprSA+IHJ5b1wgOwor56mnID4gc2VpXCA7CivnqaMgPiBqb3VcIDsKK+epoCA+IGpvdVwgOwor56mfID4gc3VpXCA7CivnqZ0gPiBzYWlcIDsKK+epnCA+IHRvdVwgOwor56mIID4gYm9uXCA7CivnqYcgPiBzYW5cIDsKK+ephSA+IGtvdVwgOwor56mEID4gc2VpXCA7CivnqYMgPiB5b3VcIDsKK+eoviA+IGtvdVwgOwor56i6ID4gY2hpXCA7CivnqLUgPiBzaGlcIDsKK+eotCA+IHJlblwgOwor56iwID4gc2hvXCA7CivnqK8gPiBzb3VcIDsKK+eopyA+IGtlaVwgOwor56ifID4gcmluXCA7CivnqJsgPiBrb25cIDsKK+eolyA+IGhpZVwgOwor56iUID4gamluXCA7CivnqIogPiB0ZWlcIDsKK+eoiSA+IGtvdVwgOwor56iIID4ga2FuXCA7CivnqIcgPiBrb25cIDsKK+eohSA+IHplaVwgOwor56iCID4gcm91XCA7Civnp7wgPiBzaHVcIDsKK+ensSA+IHRvdVwgOwor56etID4gc2hpXCA7Civnp6wgPiBreW9cIDsKK+enqiA+IGNoaVwgOwor56elID4gZGVuXCA7Civnp6IgPiByZWlcIDsKK+enniA+IHl1dVwgOwor56eaID4gaGFuXCA7Civnp5YgPiBzaGlcIDsKK+enlCA+IGtvdVwgOwor56ePID4ga291XCA7Civnp4ogPiBuZW5cIDsKK+eniSA+IGhlaVwgOwor56eIID4gc2VuXCA7Civnp4cgPiBnZWlcIDsKK+enhCA+IHNoaVwgOwor56eCID4gamluXCA7CivnprsgPiBjaGlcIDsKK+emuiA+IGd1dVwgOwor56a4ID4ganV1XCA7CivnprMgPiBqb3VcIDsKK+emsSA+IHRvdVwgOwor56avID4gam91XCA7CivnpqsgPiB0YW5cIDsKK+emqiA+IHplblwgOwor56apID4gc2hpXCA7CivnpqYgPiBneW9cIDsKK+emmCA+IHRlaVwgOwor56aWID4gYmFpXCA7CivnppQgPiBzaGlcIDsKK+emkyA+IHlvdVwgOwor56aOID4gdGVpXCA7CivnpowgPiBzaGlcIDsKK+emgCA+IHJpblwgOwor56W8ID4ga2FuXCA7CivnpbkgPiB0b3VcIDsKK+elqyA+IGtvdVwgOwor56WpID4gc2h1XCA7CivnpaIgPiBkZWlcIDsKK+eloCA+IHNoaVwgOwor56WfID4gc3VpXCA7CivnpZsgPiBreW9cIDsKK+elmCA+IHNhblwgOwor56WXID4gc2hpXCA7CivnpZAgPiB5dXVcIDsKK+eliyA+IHRhaVwgOwor56WKID4gaG91XCA7CivnpYkgPiBzaGlcIDsKK+elhiA+IGtlblwgOwor56WFID4geW91XCA7CivnpYQgPiBrYWlcIDsKK+elgCA+IHNoaVwgOwor56S9ID4gam91XCA7CivnpLsgPiBzaGlcIDsKK+ektSA+IHNvdVwgOwor56SxID4gcm91XCA7CivnpKwgPiBiYW5cIDsKK+ekqiA+IHJlaVwgOwor56SnID4gcmFpXCA7CivnpKYgPiBrb3VcIDsKK+ekpSA+IGtpblwgOwor56SfID4gaG91XCA7CivnpJ4gPiBib3VcIDsKK+ekmiA+IGthaVwgOwor56SRID4gdG91XCA7CivnpIwgPiByYWlcIDsKK+ekhyA+IGlrdVwgOwor56SGID4ga2VuXCA7CivnpIAgPiBrYW5cIDsKK+ejvSA+IGtvdVwgOwor56O7ID4gaGFuXCA7Civno7ogPiBrb3VcIDsKK+ejtyA+IHJpblwgOwor56O0ID4gdG91XCA7Civno7MgPiBzb3VcIDsKK+ejsiA+IGt5b1wgOwor56OsID4ga2VpXCA7Civno6ogPiBzYWlcIDsKK+ejoSA+IGthblwgOwor56ObID4gc2FuXCA7Civno5ogPiBzZW5cIDsKK+ejliA+IHJvdVwgOwor56OVID4ga2FpXCA7Civno5MgPiB0YWlcIDsKK+ejkSA+IGdhaVwgOwor56OOID4ga2VpXCA7Civno4wgPiB0ZW5cIDsKK+ejiiA+IHJhaVwgOwor56OJID4gc291XCA7Civno4cgPiBoZWlcIDsKK+ejhSA+IGhvdVwgOwor56K+ID4gdGVuXCA7Civnor0gPiBrb3VcIDsKK+eisyA+IHRhblwgOwor56KyID4gdGVpXCA7CivnorEgPiBrZW5cIDsKK+eisCA+IGhvdVwgOwor56KvID4gZG91XCA7Civnoq0gPiB0b3VcIDsKK+eiqCA+IHdhaVwgOwor56KeID4gZ2FuXCA7Civnop0gPiB6ZW5cIDsKK+eimiA+IGhhaVwgOwor56KYID4gdGVuXCA7CivnopMgPiB0YWlcIDsKK+eijiA+IHNhaVwgOwor56KNID4gZ2FpXCA7CivnooogPiBzZW5cIDsKK+eihyA+IHRlaVwgOwor56G8ID4gaG91XCA7Civnoa8gPiBrZW5cIDsKK+ehqCA+IHNoYVwgOwor56GkID4ga291XCA7CivnoaMgPiBrb3VcIDsKK+ehoSA+IGtvdVwgOwor56GgID4gcm91XCA7CivnoZwgPiBrb3VcIDsKK+ehmSA+IGdhaVwgOwor56GSID4gc2VpXCA7CivnoY8gPiBrZW5cIDsKK+ehjiA+IGtlaVwgOwor56GHID4gZG91XCA7CivnoYUgPiBrZWlcIDsKK+ehhCA+IGtvdVwgOwor56GDID4gc2h1XCA7CivnoL8gPiBrb3VcIDsKK+eguiA+IHJlaVwgOwor56CyID4gaG91XCA7CivnoLAgPiBob3VcIDsKK+egrSA+IGhlblwgOwor56CgID4gc2hvXCA7CivnoI4gPiBrYWlcIDsKK+egjSA+IGthblwgOwor56CMID4gc2VpXCA7CivnoIUgPiByZWlcIDsKK+efvCA+IGtvdVwgOwor55+4ID4ga2FuXCA7Civnn7QgPiB0ZWlcIDsKK+efsCA+IHNvdVwgOwor55+uID4gd2FpXCA7Civnn6YgPiBrb3VcIDsKK+efmSA+IGthblwgOwor55+VID4gYmFuXCA7Civnn5IgPiBib3VcIDsKK+efiSA+IGhpblwgOwor55+IID4gYmVuXCA7Civnn4cgPiBtb3VcIDsKK+efgyA+IGdlaVwgOwor5561ID4gcmluXCA7CivnnrEgPiB5b3VcIDsKK+eesCA+IGthblwgOwor556vID4ga2FuXCA7CivnnqogPiBkb3VcIDsKK+eeoiA+IGJvdVwgOwor556eID4gYmFuXCA7CivnnpEgPiBtZWlcIDsKK+eejSA+IHNvdVwgOwor556MID4ga291XCA7CivnnoAgPiBib3VcIDsKK+edviA+IGtvdVwgOwor5529ID4ga2VpXCA7CivnnbogPiBrb3VcIDsKK+edtCA+IGtvblwgOwor552zID4ga2VpXCA7CivnnbIgPiBzZWlcIDsKK+edrCA+IHNhaVwgOwor552qID4gZWtpXCA7CivnnacgPiBrb25cIDsKK+edpSA+IGhlaVwgOwor552kID4gaGVpXCA7CivnnaAgPiBrZW5cIDsKK+ednyA+IHN1aVwgOwor552eID4gcmFpXCA7CivnnZwgPiBzZWlcIDsKK+edmyA+IHNlaVwgOwor552aID4gZ2FpXCA7CivnnZIgPiBzZW5cIDsKK+edjyA+IGtvblwgOwor552NID4ga2VuXCA7CivnnYcgPiB0ZWlcIDsKK+edhiA+IGthblwgOwor552FID4ga2FuXCA7CivnnLggPiBib3VcIDsKK+ectyA+IGtlblwgOwor55y1ID4gc2hpXCA7CivnnLQgPiBrZW5cIDsKK+ecryA+IGJlaVwgOwor55yuID4gdG91XCA7CivnnKggPiBzb3VcIDsKK+ecpiA+IHNlaVwgOwor55ylID4gc2VpXCA7CivnnKQgPiB0ZWlcIDsKK+ecoiA+IHdhblwgOwor55ybID4gbWFpXCA7CivnnJogPiBzZWlcIDsKK+ecmSA+IGNoaVwgOwor55yUID4gdG91XCA7CivnnI4gPiBzaGlcIDsKK+eciiA+IGJvdVwgOwor55yIID4gdGFuXCA7CivnnIYgPiBob3VcIDsKK+echCA+IGJlblwgOwor55yAID4gYmVpXCA7Civnm7wgPiBoYW5cIDsKK+ebuyA+IGtlaVwgOwor55u2ID4gZ2luXCA7Civnm7AgPiBrYW5cIDsKK+ebqiA+IHRvdVwgOwor55uoID4gc2h1XCA7Civnm6QgPiBiYW5cIDsKK+eboCA+IHJlaVwgOwor55ufID4gbWVpXCA7Civnm54gPiBzYW5cIDsKK+ebliA+IGdhaVwgOwor55uUID4ga2FpXCA7Civnm5IgPiBrb3VcIDsKK+ebjSA+IGtvdVwgOwor55uMID4gd2FuXCA7Civnmr0gPiB0ZW5cIDsKK+eaqCA+IHNlaVwgOwor55qlID4ga291XCA7CivnmqMgPiB5b3VcIDsKK+eaoCA+IHNhaVwgOwor55qdID4ga291XCA7CivnmpwgPiBrb3VcIDsKK+eamiA+IGdhaVwgOwor55qWID4ga2FuXCA7CivnmpMgPiBrb3VcIDsKK+eakCA+IGtvdVwgOwor55qOID4ga291XCA7CivnmosgPiBrb3VcIDsKK+eahSA+IGhhZVwgOwor55qDID4gYm91XCA7CivnmoEgPiBzb3VcIDsKK+eZtCA+IHJlblwgOwor55myID4gdGVuXCA7CivnmbEgPiB0YW5cIDsKK+eZsCA+IHlvdVwgOwor55msID4gc2VuXCA7CivnmakgPiByYWlcIDsKK+eZoiA+IHlvdVwgOwor55mhID4gY2hpXCA7CivnmZwgPiBkZW5cIDsKK+eZmSA+IHNob1wgOwor55mYID4gcmVpXCA7CivnmZUgPiB5b3VcIDsKK+eZiSA+IHRhblwgOwor55mIID4gaGFpXCA7CivnmYYgPiByb3VcIDsKK+eZgCA+IGtvdVwgOwor55i7ID4gcm91XCA7CivnmLogPiByb3VcIDsKK+eYtSA+IHNhaVwgOwor55iwID4gcnVpXCA7CivnmKkgPiB0b3VcIDsKK+eYpiA+IHNvdVwgOwor55ijID4ga2FpXCA7CivnmKIgPiBoYW5cIDsKK+eYoSA+IHNvdVwgOwor55idID4ga2FuXCA7CivnmJsgPiBzZWlcIDsKK+eYmSA+IHNvdVwgOwor55iTID4gdGFuXCA7CivnmJIgPiBnb25cIDsKK+eYjSA+IHlvdVwgOwor55iLID4gZnV1XCA7CivnmIogPiBrb3VcIDsKK+eYiCA+IGtlaVwgOwor55iBID4gc3VpXCA7Civnl7MgPiByaW5cIDsKK+eXsCA+IHRhblwgOwor55evID4ga2FuXCA7Civnl6wgPiBla2lcIDsKK+eXoyA+IGF6YVwgOwor55egID4gc2FuXCA7Civnl5kgPiBrZWlcIDsKK+eXmCA+IHRvdVwgOwor55eXID4gYmFpXCA7Civnl44gPiBrYWlcIDsKK+eXjCA+IHRvdVwgOwor55eKID4gc2VuXCA7Civnl4MgPiBrZW5cIDsKK+eXgSA+IHNlblwgOwor55a9ID4gc2hvXCA7CivnlrwgPiB0b3VcIDsKK+eWuiA+IGhvdVwgOwor55a4ID4gdGFuXCA7CivnlrUgPiBzaGlcIDsKK+eWsyA+IGthblwgOwor55axID4gaG91XCA7CivnlqsgPiBla2lcIDsKK+eWpSA+IGthaVwgOwor55ajID4gaWJvXCA7Civnlp0gPiBzYW5cIDsKK+eWkyA+IHphaVwgOwor55aQID4gY2hpXCA7CivnlokgPiBqb3VcIDsKK+eWgiA+IGpvdVwgOwor55aBID4gcnl1XCA7Civnlb4gPiBzdWlcIDsKK+eVvSA+IHRvblwgOwor55WkID4gc2hpXCA7CivnlaEgPiBrYWlcIDsKK+eVniA+IGJvdVwgOwor55WaID4gaG9uXCA7CivnlZcgPiB0b3VcIDsKK+eVjiA+IGtlblwgOwor55WNID4ga2FpXCA7CivnlYsgPiB0ZW5cIDsKK+eViiA+IGtvdVwgOwor55WIID4gaGFuXCA7CivnlL8gPiBtb3VcIDsKK+eUviA+IHNoaVwgOwor55S9ID4ga2VuXCA7CivnlLkgPiBoZWlcIDsKK+eUuCA+IHRlblwgOwor55S0ID4gc291XCA7CivnlK8gPiBuZWlcIDsKK+eUrCA+IHlvdVwgOwor55SkID4genVpXCA7CivnlKIgPiBzYW5cIDsKK+eUoCA+IHNlaVwgOwor55ScID4gdGVuXCA7CivnlJsgPiB0ZW5cIDsKK+eUlyA+IGdlblwgOwor55SRID4gc291XCA7CivnlI4gPiBzZW5cIDsKK+eUjSA+IGJvdVwgOwor55SGID4gc2hpXCA7CivnlIQgPiBrZW5cIDsKK+eUgSA+IGhlaVwgOwor55O/ID4gaG91XCA7Civnk7sgPiBjaGlcIDsKK+eTtyA+IHNoaVwgOwor55O0ID4gcmlpXCA7Civnk7IgPiB0b25cIDsKK+eTqyA+IGhvblwgOwor55OqID4gaGFuXCA7Civnk6ggPiBrb3VcIDsKK+eToyA+IGJlblwgOwor55ObID4ga2FuXCA7Civnk5ogPiBzYW5cIDsKK+eTmCA+IGthblwgOwor55OTID4gcmFuXCA7Civnk48gPiByb3VcIDsKK+eTjCA+IGthaVwgOwor55OKID4ga2VpXCA7Civnk4kgPiBzYW5cIDsKK+eTiCA+IHJlaVwgOwor55K/ID4gc2VuXCA7CivnkrsgPiBzdWlcIDsKK+eSsiA+IHN1aVwgOwor55KvID4ga2FpXCA7Civnkq4gPiB0YW5cIDsKK+eSqyA+IHRvdVwgOwor55KqID4gc291XCA7CivnkqkgPiBreW9cIDsKK+eSqCA+IHNhblwgOwor55KgID4gaGFuXCA7CivnkpwgPiBrb3VcIDsKK+eSmiA+IGtlaVwgOwor55KYID4gcmluXCA7CivnkpIgPiB0b3VcIDsKK+eSjyA+IHRlaVwgOwor55KJID4gcmluXCA7CivnkocgPiBzZW5cIDsKK+eShSA+IHNvdVwgOwor55KBID4gc291XCA7CivnkoAgPiBzYWlcIDsKK+eRviA+IGtpblwgOwor55G2ID4geW91XCA7CivnkbEgPiB0ZW5cIDsKK+eRsCA+IGthaVwgOwor55GvID4gcm91XCA7Civnka0gPiB0b3VcIDsKK+eRqyA+IHRvdVwgOwor55GkID4geW91XCA7CivnkaIgPiB5b3VcIDsKK+eRniA+IHp1aVwgOwor55GdID4ga291XCA7CivnkZkgPiBkb3VcIDsKK+eRkSA+IHRlblwgOwor55GNID4ga2FuXCA7CivnkYcgPiB0YWlcIDsKK+eRhiA+IHNlaVwgOwor55GFID4gdGVpXCA7CivnkYQgPiBzZW5cIDsKK+eRgSA+IGJvdVwgOwor55C/ID4ga29uXCA7CivnkLogPiBob3VcIDsKK+eQuSA+IGtpblwgOwor55CzID4gcmluXCA7CivnkK8gPiBrYW5cIDsKK+eQriA+IHNvdVwgOwor55CrID4gaG91XCA7CivnkKggPiBrb25cIDsKK+eQpCA+IHNvdVwgOwor55CaID4ga3lvXCA7CivnkIUgPiByb3VcIDsKK+eQhCA+IGtlblwgOwor55CBID4gemVuXCA7CivnkIAgPiBrYW5cIDsKK+ePvSA+IHRlaVwgOwor54+7ID4gYmFpXCA7Civnj7ogPiBrdW5cIDsKK+ePuSA+IHNlaVwgOwor54+1ID4gdGVpXCA7Civnj64gPiBoYWlcIDsKK+ePrSA+IGhhblwgOwor54+pID4ga291XCA7Civnj6cgPiB5b3VcIDsKK+ePoiA+IGdpblwgOwor54+hID4ga2luXCA7Civnj6AgPiBzaHVcIDsKK+ePliA+IGtvdVwgOwor54+TID4ga291XCA7Civnj4ogPiBzYW5cIDsKK+ePiSA+IGJpblwgOwor5469ID4ga291XCA7CivnjrwgPiBzZWlcIDsKK+eOuSA+IGtlblwgOwor5463ID4gdGVuXCA7CivnjrUgPiBnYW5cIDsKK+eOsyA+IHRhaVwgOwor546yID4gcmVpXCA7Civnjq0gPiBoaW5cIDsKK+eOqyA+IGJhaVwgOwor546qID4ga2FuXCA7CivnjqIgPiBoaW5cIDsKK+eOoCA+IGthaVwgOwor546fID4gYmluXCA7CivnjpwgPiBrb3VcIDsKK+eOlSA+IGthblwgOwor546OID4gdGVpXCA7CivnjoEgPiBrZW5cIDsKK+eNtyA+IGtvdVwgOwor542xID4gaGluXCA7CivnjbAgPiBkb3VcIDsKK+eNryA+IGt1blwgOwor542uID4gc2VuXCA7CivnjawgPiBrYWlcIDsKK+eNqyA+IGtlblwgOwor542qID4ga2FpXCA7CivnjakgPiB3YWlcIDsKK+eNpyA+IGtlblwgOwor542eID4gdG91XCA7CivnjZggPiBoZWlcIDsKK+eNliA+IGZ1blwgOwor542SID4gZ291XCA7CivnjYogPiBzb3VcIDsKK+eNhSA+IHNoaVwgOwor542DID4gZ2FpXCA7CivnjL0gPiBiZWlcIDsKK+eMuyA+IHNvblwgOwor54y6ID4geW91XCA7CivnjLcgPiB5dXVcIDsKK+eMtSA+IGhlblwgOwor54y0ID4ga291XCA7CivnjLEgPiBkb3VcIDsKK+eMryA+IHRhblwgOwor54yuID4ga2VuXCA7CivnjKkgPiBzZWlcIDsKK+eMpSA+IHdhaVwgOwor54yeID4gc2hhXCA7CivnjJsgPiBtb3VcIDsKK+eMmSA+IHNvdVwgOwor54yYID4gc2VpXCA7CivnjI0gPiByYWlcIDsKK+eMiiA+IGdlaVwgOwor54yFID4gaGFpXCA7CivnjIQgPiBrZWlcIDsKK+eMgiA+IGthblwgOwor54u+ID4gc2VpXCA7Civni7sgPiBzYW5cIDsKK+eLuiA+IGdlblwgOwor54u3ID4ga2VuXCA7Civni7QgPiBoZWlcIDsKK+eLqSA+IHNodVwgOwor54ugID4gZ2FuXCA7Civni58gPiBrYW5cIDsKK+eLnSA+IHNlblwgOwor54uWID4geXV1XCA7Civni44gPiBrb3VcIDsKK+eLjCA+IHNlaVwgOwor54uAID4gam91XCA7Civnir4gPiBnaW5cIDsKK+eKuSA+IHl1dVwgOwor54q0ID4ga2FuXCA7CivnirIgPiBzYWlcIDsKK+eKmyA+IGJvdVwgOwor54qSID4ga291XCA7Civnio4gPiBob3VcIDsKK+eKjSA+IGtlblwgOwor54qJID4ganVuXCA7CivniocgPiBob25cIDsKK+eKgCA+IHNhaVwgOwor54m9ID4ga2VuXCA7CivnibwgPiBrb3VcIDsKK+eJuyA+IGJvdVwgOwor54m4ID4gc2hpXCA7CivnibcgPiBzZW5cIDsKK+eJtCA+IHRlaVwgOwor54muID4gc2VuXCA7CivniawgPiBoYWlcIDsKK+eJqCA+IGtvdVwgOwor54mjID4gamluXCA7CivniZ8gPiBib3VcIDsKK+eJnSA+IGhpblwgOwor54maID4gdG91XCA7CivniZYgPiB5dXVcIDsKK+eJlSA+IHNvdVwgOwor54mTID4gYm91XCA7CivniZAgPiBzb3VcIDsKK+eJjyA+IGNodVwgOwor54mOID4gc291XCA7CivniYsgPiBzZW5cIDsKK+eJhSA+IHlvdVwgOwor54mCID4gc291XCA7CivniLwgPiBzaG9cIDsKK+eIuyA+IGtvdVwgOwor54ioID4gc2FuXCA7CivniKQgPiByYW5cIDsKK+eInyA+IGthblwgOwor54iXID4geW91XCA7CivniIkgPiByb3VcIDsKK+eIiCA+IHJ5b1wgOwor54e/ID4geW91XCA7Civnh74gPiB0b3VcIDsKK+eHvCA+IGppblwgOwor54e5ID4gc2VuXCA7Civnh6cgPiBzdWlcIDsKK+eHpiA+IHNhblwgOwor54elID4gc291XCA7Civnh6AgPiBva2lcIDsKK+eHnCA+IG1vblwgOwor54eZID4gdG91XCA7Civnh5cgPiByYW5cIDsKK+eHlCA+IGhhblwgOwor54eTID4gZnVuXCA7Civnh5AgPiByaW5cIDsKK+eHjCA+IGZ1blwgOwor54eJID4gdG9uXCA7Civnh4EgPiB5b3VcIDsKK+eHgCA+IHNlblwgOwor54a/ID4ga291XCA7Civnhr4gPiBzaGlcIDsKK+eGsyA+IG1hblwgOwor54ayID4ga2VpXCA7Civnhq8gPiB6ZW5cIDsKK+eGrCA+IGdvdVwgOwor54aiID4gaG91XCA7CivnhqAgPiB5dXVcIDsKK+eGlSA+IGtvdVwgOwor54aUID4geW91XCA7CivnhpIgPiBrZWlcIDsKK+eGjyA+IGt1blwgOwor54aMID4gc2VuXCA7CivnhoAgPiB5b3VcIDsKK+eFuSA+IGtvdVwgOwor54WsID4geW91XCA7CivnhaggPiB3YWlcIDsKK+eFpSA+IGthblwgOwor54WiID4ga2VpXCA7CivnhaAgPiB5b3VcIDsKK+eFnCA+IGlrdVwgOwor54WaID4ga2VpXCA7CivnhZcgPiBkYW5cIDsKK+eFliA+IGRhblwgOwor54WRID4gc2hhXCA7CivnhYwgPiBrb3VcIDsKK+eFiyA+IHNlaVwgOwor54WKID4ga2VuXCA7CivnhYkgPiByZW5cIDsKK+eFhSA+IHRhblwgOwor54StID4ga2VpXCA7CivnhKAgPiBzYWlcIDsKK+eEniA+IHRvblwgOwor54ScID4ga29uXCA7CivnhJkgPiBob3VcIDsKK+eElSA+IGthblwgOwor54SLID4gc291XCA7CivnhIQgPiBrdW5cIDsKK+eDvSA+IGhvdVwgOwor54O6ID4ga291XCA7Civng7kgPiBob3VcIDsKK+eDsSA+IGtlaVwgOwor54OkID4ga291XCA7Civng50gPiBqb3VcIDsKK+eDnCA+IHRlblwgOwor54OYID4ga291XCA7Civng5YgPiBzYWlcIDsKK+eDlCA+IHRvdVwgOwor54ORID4geW91XCA7Civng4sgPiBrb3VcIDsKK+eDiiA+IHlvdVwgOwor54OJID4ga2FuXCA7CivngrcgPiBzaHVcIDsKK+eCtCA+IHlvdVwgOwor54KzID4gaGVpXCA7CivngrEgPiB0YWlcIDsKK+eCsCA+IGhvdVwgOwor54KvID4ga2VpXCA7Civngq4gPiBob3VcIDsKK+eCqyA+IGtlblwgOwor54KbID4geW91XCA7CivngpkgPiBzaGFcIDsKK+eCmCA+IGtpblwgOwor54KXID4ga291XCA7CivngpYgPiB0b25cIDsKK+eClSA+IGtvdVwgOwor54KUID4ga2VpXCA7CivngpIgPiBzb3VcIDsKK+eChiA+IGJ1blwgOwor54KFID4ga2VpXCA7Civngb4gPiBzYWlcIDsKK+eBtiA+IHNvdVwgOwor54G1ID4gcmVpXCA7Civnga4gPiBrb3VcIDsKK+eBpCA+IHJhblwgOwor54GjID4gd2FuXCA7CivngZ0gPiBrb3VcIDsKK+eBmCA+IGRhblwgOwor54GRID4gc2FpXCA7CivngYsgPiBob3VcIDsKK+eBiiA+IHNlblwgOwor54GJID4geW91XCA7CivngYMgPiBodXVcIDsKK+eAviA+IHJhblwgOwor54C8ID4gam91XCA7CivngLIgPiByZW5cIDsKK+eAqCA+IHJhaVwgOwor54CmID4gY2hvXCA7CivngKMgPiBrYWlcIDsKK+eAniA+IGpvdVwgOwor54CaID4ga2FuXCA7CivngJcgPiBrZW5cIDsKK+eAjSA+IHRlblwgOwor54CJID4gc2hhXCA7CivngIEgPiB5b3VcIDsKK+eAgCA+IHl1dVwgOwor5r++ID4gcnlvXCA7Civmv70gPiBzYW5cIDsKK+a/tSA+IGhpblwgOwor5r+zID4gc2VuXCA7Civmv6sgPiByYW5cIDsKK+a/qCA+IHNoaVwgOwor5r+kID4gdG91XCA7Civmv6AgPiBnb3VcIDsKK+a/lCA+IGRlaVwgOwor5r+KID4ga2FpXCA7Civmv4YgPiBmdW5cIDsKK+a/giA+IHJlblwgOwor5r62ID4gc2VuXCA7CivmvrMgPiBpa3VcIDsKK+a+sSA+IHRlblwgOwor5r6wID4gcmVuXCA7Civmvq8gPiBzYW5cIDsKK+a+riA+IGthaVwgOwor5r6qID4gcmVpXCA7CivmvqggPiBzZWlcIDsKK+a+pyA+IHJlaVwgOwor5r6lID4ga2FpXCA7CivmvqMgPiBrYW5cIDsKK+a+oSA+IHNvdVwgOwor5r6fID4gcmluXCA7CivmvpogPiBpa3VcIDsKK+a+lyA+IGthblwgOwor5r6WID4ga2FuXCA7CivmvpQgPiBrb3VcIDsKK+a+kiA+IGtvdVwgOwor5r6OID4gaG91XCA7Civmvo0gPiBzaHVcIDsKK+a+jCA+IHNoaVwgOwor5r6LID4ga291XCA7CivmvocgPiByb3VcIDsKK+a+gyA+IGdlaVwgOwor5r6BID4ganV1XCA7CivmvoAgPiBqdXVcIDsKK+a9viA+IHJpblwgOwor5r28ID4gZG91XCA7CivmvbogPiBzYW5cIDsKK+a9uCA+IHNhblwgOwor5r20ID4gY2hvXCA7Civmva8gPiBqaW5cIDsKK+a9rSA+IHRhblwgOwor5r2sID4gdGFuXCA7CivmvaggPiBzb3VcIDsKK+a9piA+IHJvdVwgOwor5r2kID4ganVuXCA7CivmvaIgPiBrb3VcIDsKK+a9oSA+IHRvblwgOwor5r2bID4gc2VuXCA7CivmvZggPiBoYW5cIDsKK+a9kyA+IGtlaVwgOwor5r2SID4gdG91XCA7CivmvYUgPiBrYW5cIDsKK+a9gCA+IHNvdVwgOwor5ry+ID4geW91XCA7CivmvLwgPiBzYWlcIDsKK+a8tiA+IGthblwgOwor5ryxID4gc291XCA7CivmvLAgPiBob3VcIDsKK+a8ryA+IHRvdVwgOwor5rytID4gYm91XCA7CivmvKsgPiBtYW5cIDsKK+a8qSA+IHNlblwgOwor5rybID4gdG91XCA7CivmvJYgPiBrb3VcIDsKK+a8kSA+IGdhaVwgOwor5ryMID4ga2luXCA7CivmvIggPiBzZWlcIDsKK+a8hCA+IGdhaVwgOwor5ru+ID4ga29uXCA7Civmu70gPiB5b3VcIDsKK+a7uyA+IHNhblwgOwor5ruhID4gbWFuXCA7Civmu54gPiB0YWlcIDsKK+a7miA+IGtvblwgOwor5ruVID4gdG91XCA7Civmu5QgPiB0b3VcIDsKK+a7jiA+IGtlaVwgOwor5ruNID4gY2hpXCA7Civmu4kgPiBrb3VcIDsKK+a7iCA+IGtvdVwgOwor5ruHID4gdGVuXCA7Civmu4QgPiBzb3VcIDsKK+a7giA+IGJvdVwgOwor5ruBID4gY2hvXCA7Civmur8gPiBoYW5cIDsKK+a6uyA+IHRvdVwgOwor5rq3ID4ga29uXCA7CivmurIgPiBzb3VcIDsKK+a6riA+IHNoaVwgOwor5rqfID4gbWVpXCA7CivmupkgPiB0YWlcIDsKK+a6mCA+IGtvdVwgOwor5rqTID4gcmVuXCA7Civmuo8gPiB0b3VcIDsKK+a6iSA+IGdhaVwgOwor5rm9ID4gc2hpXCA7CivmubsgPiBqdW5cIDsKK+a5tiA+IHNlblwgOwor5rmzID4gZGFuXCA7CivmubIgPiBrYW5cIDsKK+a5oyA+IGJpblwgOwor5rmfID4ga291XCA7CivmuZ4gPiB0b3VcIDsKK+a5nSA+IGthaVwgOwor5rmbID4gdGFuXCA7CivmuZcgPiBob3VcIDsKK+a5lCA+IHNlblwgOwor5rmTID4gaG9uXCA7CivmuZEgPiBzaG9cIDsKK+a5jyA+IGthaVwgOwor5rmOID4gYmVuXCA7CivmuY0gPiB0YW5cIDsKK+a5iiA+IHNvdVwgOwor5rmJID4gdGVuXCA7CivmuYggPiBiYWlcIDsKK+a5hSA+IHJlblwgOwor5rmDID4gaGFpXCA7CivmuL4gPiBrb25cIDsKK+a4uyA+IHNlaVwgOwor5ri5ID4ga291XCA7CivmuLggPiB5dXVcIDsKK+a4siA+IHNlblwgOwor5rinID4gdGVpXCA7CivmuKUgPiBha3VcIDsKK+a4oiA+IGh1dVwgOwor5rifID4gdGVpXCA7CivmuJkgPiBrYW5cIDsKK+a4kyA+IGtlaVwgOwor5riAID4gaG9uXCA7Civmt7ggPiBzZWlcIDsKK+a3tiA+IHJhaVwgOwor5rewID4gZGVuXCA7Civmt68gPiBpa3VcIDsKK+a3riA+IHdhaVwgOwor5resID4gc2FpXCA7Civmt6ogPiByaW5cIDsKK+a3qCA+IGpvdVwgOwor5remID4ga2FuXCA7Civmt58gPiB0ZW5cIDsKK+a3myA+IHNlaVwgOwor5reaID4gcnVpXCA7Civmt5kgPiBzb3VcIDsKK+a3mCA+IHRvdVwgOwor5reWID4gZG91XCA7Civmt5IgPiBzZWlcIDsKK+a3jyA+IGtvdVwgOwor5reOID4gaG91XCA7Civmt4ogPiBrYW5cIDsKK+a3hiA+IGtvdVwgOwor5reEID4gc2hpXCA7Civmt4AgPiB0ZW5cIDsKK+a2vSA+IGtvblwgOwor5ra3ID4gdG91XCA7CivmtrUgPiBrYW5cIDsKK+a2rCA+IGtlaVwgOwor5raqID4gaHV1XCA7CivmtqMgPiBrYW5cIDsKK+a2myA+IHRvdVwgOwor5raaID4gc2VpXCA7CivmtpggPiBzaGlcIDsKK+a2lyA+IHNlaVwgOwor5raWID4gcmVpXCA7CivmtpUgPiB0ZWlcIDsKK+a2lCA+IHNhblwgOwor5raTID4ga2VuXCA7CivmtpIgPiB0b25cIDsKK+a2kSA+IHNvdVwgOwor5raHID4gdGVpXCA7CivmtbwgPiBiYWlcIDsKK+a1sCA+IHJlblwgOwor5rWpID4ga291XCA7CivmtacgPiB0ZWlcIDsKK+a1piA+IHVyYVwgOwor5rWlID4geXV1XCA7CivmtaQgPiBrb3VcIDsKK+a1oyA+IGthblwgOwor5rWfID4geXV1XCA7CivmtL0gPiBrb3VcIDsKK+a0uCA+IGtvdVwgOwor5rSuID4gdG91XCA7CivmtKogPiBrb3VcIDsKK+a0qCA+IGtvdVwgOwor5rSaID4ga291XCA7CivmtJkgPiBzaHVcIDsKK+a0iiA+IHNlblwgOwor5rSEID4ga2FpXCA7Civms7QgPiBrYW5cIDsKK+azsiA+IHNlaVwgOwor5rOwID4gdGFpXCA7Civms68gPiBiaW5cIDsKK+azriA+IGhhblwgOwor5rOrID4ga2VuXCA7Civms6ogPiBydWlcIDsKK+azqSA+IHNvdVwgOwor5rOgID4gcmVpXCA7Civms5wgPiB0ZWlcIDsKK+azmyA+IGhhblwgOwor5rOaID4gc2VpXCA7Civms5kgPiBob3VcIDsKK+azlyA+IHNoaVwgOwor5rOWID4gYm91XCA7Civms5QgPiBrYW5cIDsKK+azkSA+IHl1dVwgOwor5rONID4gaG9uXCA7Civms4IgPiBrZWlcIDsKK+ayviA+IHRlblwgOwor5rK6ID4gdGVuXCA7CivmsrUgPiBkZWlcIDsKK+aytCA+IHJlaVwgOwor5rKuID4gc2hvXCA7Civmsp8gPiBrb3VcIDsKK+aynCA+IGhhblwgOwor5rKbID4gaGFpXCA7CivmspogPiBzaGlcIDsKK+aylyA+IHRlblwgOwor5rKUID4gYmVuXCA7CivmspMgPiB0b3VcIDsKK+ayhiA+IGtvdVwgOwor5rKFID4gZ2VuXCA7Civmsb4gPiBmdW5cIDsKK+axuCA+IGhvdVwgOwor5rG2ID4gYnVuXCA7CivmsbQgPiBoZW5cIDsKK+axsyA+IGhlblwgOwor5rGvID4ga291XCA7Civmsa0gPiB6ZWlcIDsKK+axqyA+IGtlaVwgOwor5rGnID4ga2VuXCA7CivmsZ4gPiBrb3VcIDsKK+axnCA+IHNoaVwgOwor5rGVID4gc2FuXCA7CivmsZIgPiBib3VcIDsKK+axjyA+IHRhaVwgOwor5rGOID4gaGFuXCA7CivmsY0gPiBrYW5cIDsKK+awviA+IGhhblwgOwor5rC9ID4gdG9uXCA7CivmsLogPiBzdWlcIDsKK+awuSA+IGthblwgOwor5rCuID4gdGFuXCA7CivmsKcgPiB5b3VcIDsKK+awpiA+IGdhaVwgOwor5rCbID4gZnVuXCA7CivmsJkgPiBzZW5cIDsKK+awkyA+IGJvdVwgOwor5rCQID4gdGVpXCA7CivmsIkgPiBzb3VcIDsKK+awhCA+IGp1dVwgOwor5q+/ID4gc2FuXCA7Civmr7cgPiBib3VcIDsKK+avsyA+IHplaVwgOwor5q+vID4gdGFuXCA7Civmr6cgPiBqdXVcIDsKK+avoSA+IHNlblwgOwor5q+aID4gc2FuXCA7Civmr5MgPiBpa3VcIDsKK+avjyA+IG1haVwgOwor5q+MID4ga2FuXCA7Civmrr0gPiBrb3VcIDsKK+auuCA+IGtlaVwgOwor5q6zID4gc2h1XCA7CivmrrIgPiBzZW5cIDsKK+ausSA+IHNlblwgOwor5q6vID4gaGluXCA7Civmrq4gPiByZW5cIDsKK+auqyA+IHRhblwgOwor5q6pID4gc2FuXCA7CivmrqggPiBrYWlcIDsKK+auoyA+IGtpblwgOwor5q6iID4gdGVpXCA7CivmrpcgPiB5b3VcIDsKK+aulSA+IGZ1dVwgOwor5q6JID4ganVuXCA7CivmroUgPiBzb3VcIDsKK+auhCA+IHRlblwgOwor5q6DID4geW91XCA7CivmroAgPiB5b3VcIDsKK+atsiA+IHNlaVwgOwor5q2uID4ganV1XCA7CivmrasgPiBreW9cIDsKK+atnSA+IGVraVwgOwor5q2bID4ga2FuXCA7CivmrZMgPiBrYW5cIDsKK+atiSA+IGtlblwgOwor5q2GID4ga2luXCA7CivmrYMgPiBzb3VcIDsKK+asvyA+IHRhblwgOwor5qy+ID4ga2FuXCA7CivmrL0gPiBraW5cIDsKK+astSA+IGthblwgOwor5qysID4ga2FpXCA7CivmrKMgPiBnb25cIDsKK+asniA+IHJlaVwgOwor5qyXID4gcmFuXCA7CivmrJYgPiByYW5cIDsKK+askiA+IHJhblwgOwor5qyRID4gc2FuXCA7CivmrJAgPiByZWlcIDsKK+asiSA+IHNvdVwgOwor5qyGID4gc291XCA7CivmrIQgPiByYW5cIDsKK+asgyA+IHNhblwgOwor5qu8ID4gc2VuXCA7Civmq7ogPiByZWlcIDsKK+arsCA+IGthaVwgOwor5qunID4gc2hvXCA7Civmq6UgPiBjaHVcIDsKK+arpCA+IHNlblwgOwor5qucID4ga291XCA7Civmq5ogPiByeW9cIDsKK+arliA+IHJ5b1wgOwor5quVID4gc2FuXCA7Civmq5QgPiByZWlcIDsKK+arkSA+IHJhaVwgOwor5quQID4gcnVpXCA7Civmq4wgPiB5dXVcIDsKK+ariSA+IGNodVwgOwor5quIID4gdG91XCA7Civmq4YgPiBrYWlcIDsKK+argiA+IGthaVwgOwor5qq+ID4ga2VpXCA7CivmqrsgPiBvcmlcIDsKK+aquCA+IG5laVwgOwor5qqzID4gYmluXCA7CivmqrAgPiBoZW5cIDsKK+aqryA+IHRhaVwgOwor5qquID4gdG91XCA7CivmqqwgPiBib3VcIDsKK+aqqSA+IHJpblwgOwor5qqgID4ga2VpXCA7Civmqp4gPiBrYWlcIDsKK+aqkSA+IHJhaVwgOwor5qqJID4gdGVpXCA7CivmqocgPiBzdWlcIDsKK+aqhiA+IHNhblwgOwor5qqBID4gcmluXCA7Civmqb4gPiBzaHVcIDsKK+apqiA+IHplblwgOwor5qmnID4gc291XCA7CivmqaYgPiB0b3VcIDsKK+appCA+IHp1aVwgOwor5qmWID4gdG91XCA7CivmqZUgPiB0b3VcIDsKK+apkSA+IHJvdVwgOwor5qmOID4gaGFuXCA7CivmqYkgPiByaW5cIDsKK+apiCA+IGthaVwgOwor5qmHID4gemVpXCA7CivmqYQgPiBrYW5cIDsKK+aovyA+IHNlblwgOwor5qi3ID4gc291XCA7CivmqLYgPiBzYWlcIDsKK+aoqCA+IHNlaVwgOwor5qikID4gam91XCA7CivmqKAgPiBib25cIDsKK+aoniA+IHN1dVwgOwor5qiXID4gY2hvXCA7CivmqJQgPiBzb3VcIDsKK+aojyA+IHJ1aVwgOwor5qiMID4ga2FuXCA7CivmqIsgPiB0b2lcIDsKK+aoiiA+IGhhblwgOwor5qiDID4gcm91XCA7CivmqIEgPiB0b3VcIDsKK+anvyA+IGtpblwgOwor5qe+ID4gYmFuXCA7Civmp7kgPiBrb3VcIDsKK+antSA+IGthblwgOwor5qexID4geXV1XCA7Civmp68gPiBzYWlcIDsKK+anqyA+IHRhblwgOwor5qeqID4gZ2FpXCA7Civmp6cgPiBzYW5cIDsKK+anniA+IHJvdVwgOwor5qedID4gdG91XCA7Civmp5kgPiB0ZW5cIDsKK+ankyA+IGtvdVwgOwor5qeRID4gYmFpXCA7Civmp5AgPiBrYWlcIDsKK+aniCA+IGRvdVwgOwor5qeDID4gaGFuXCA7Civmp4EgPiBrb3VcIDsKK+amvCA+IGtvdVwgOwor5qa4ID4gdGFpXCA7CivmprEgPiBzdWlcIDsKK+amryA+IHNoaVwgOwor5qatID4gc2hhXCA7CivmpqYgPiBrYW5cIDsKK+ampSA+IGtvdVwgOwor5qagID4gYmVpXCA7CivmppwgPiBib3VcIDsKK+amlSA+IHlvdVwgOwor5qaUID4gcm91XCA7CivmpbsgPiBrb3VcIDsKK+aluiA+IGp1dVwgOwor5qW3ID4ga2FpXCA7CivmpbQgPiB0ZWlcIDsKK+alsyA+IGJhaVwgOwor5qWxID4gc291XCA7Civmpa8gPiBqdW5cIDsKK+alriA+IGNob1wgOwor5qWqID4geW91XCA7CivmpakgPiBoZW5cIDsKK+alqCA+IHRlaVwgOwor5qWmID4ga2VuXCA7CivmpaUgPiBrZW5cIDsKK+alpCA+IHNvdVwgOwor5qWeID4gcm91XCA7CivmpZ0gPiByZW5cIDsKK+almSA+IGJvdVwgOwor5qWXID4ga2VuXCA7CivmpY4gPiBrb25cIDsKK+akvSA+IHRlblwgOwor5qS2ID4gc2h1XCA7CivmpLMgPiB3YWlcIDsKK+aksSA+IGZ1dVwgOwor5qSmID4ga2VuXCA7CivmpKIgPiBrYWlcIDsKK+aklyA+IHRlaVwgOwor5qSWID4gaG91XCA7CivmpJEgPiBoZWlcIDsKK+akkCA+IGt5b1wgOwor5qSMID4ga291XCA7CivmpIkgPiBqb3VcIDsKK+ajvCA+IGh1blwgOwor5qO5ID4gc2FvXCA7Civmo7YgPiByYWlcIDsKK+ajtSA+IGthblwgOwor5qOxID4gcm91XCA7Civmo7AgPiBzb2lcIDsKK+ajryA+IGppblwgOwor5qOtID4gZWtpXCA7Civmo6wgPiBrZW5cIDsKK+ajqCA+IGtlaVwgOwor5qOnID4gc2FuXCA7Civmo6UgPiBoYW5cIDsKK+ajoyA+IHRlaVwgOwor5qOhID4ga291XCA7Civmo6AgPiB0b3VcIDsKK+ajmSA+IHJlaVwgOwor5qOWID4gdG91XCA7Civmo5UgPiBzaHVcIDsKK+ajlCA+IGtvblwgOwor5qOTID4gaG91XCA7Civmo5EgPiBoYWlcIDsKK+ajjSA+IGtvblwgOwor5qOMID4gc2FpXCA7Civmo4kgPiBtZW5cIDsKK+ajiCA+IHNlblwgOwor5qOGID4gcmluXCA7Civmo4UgPiBoZWlcIDsKK+aivCA+IHRvdVwgOwor5qK5ID4gYmluXCA7CivmorUgPiBmdXVcIDsKK+aisSA+IGtvblwgOwor5qKqID4gdG91XCA7CivmoqEgPiBrYW5cIDsKK+aioCA+IHJ5b1wgOwor5qKaID4gYmFuXCA7CivmopggPiBrZW5cIDsKK+ailyA+IGtvdVwgOwor5qKWID4gaGFpXCA7CivmopQgPiBzaGlcIDsKK+aijSA+IHNvdVwgOwor5qKIID4gaG91XCA7CivmooYgPiBob3VcIDsKK+aihCA+IHlvdVwgOwor5qG/ID4ga2FuXCA7Civmob4gPiBrdW5cIDsKK+ahuyA+IGhvdVwgOwor5qG5ID4gcm91XCA7CivmobUgPiB6dWlcIDsKK+ahsSA+IGtlaVwgOwor5qGvID4gdGVpXCA7Civmoa4gPiBoYWlcIDsKK+ahoyA+IHRvdVwgOwor5qGTID4ga2FuXCA7CivmoZIgPiBzb3VcIDsKK+ahiiA+IGtlblwgOwor5qGFID4gZ2FpXCA7CivmoYQgPiBrb3VcIDsKK+agvSA+IHNhaVwgOwor5qC0ID4gc2VuXCA7CivmoLMgPiByb3VcIDsKK+agsiA+IGdvdVwgOwor5qCvID4gaWt1XCA7CivmoKwgPiBzZWlcIDsKK+agqyA+IHNvblwgOwor5qCfID4gaGVpXCA7CivmoJ0gPiB0ZW5cIDsKK+agmSA+IGtvdVwgOwor5qCWID4gc2VpXCA7CivmoJQgPiBrZWlcIDsKK+agiCA+IHNhblwgOwor5p+5ID4gc2hpXCA7Civmn7YgPiBzaGlcIDsKK+afrCA+IGthblwgOwor5p+mID4gdGFuXCA7Civmn6IgPiB0ZWlcIDsKK+afnCA+IGt5b1wgOwor5p+ZID4ga291XCA7Civmn5ggPiBzaGFcIDsKK+afkSA+IGthblwgOwor5p+JID4gaGFuXCA7Civmn4ggPiBoYW5cIDsKK+afhiA+IHJvdVwgOwor5p+DID4gcmVpXCA7Civmnr4gPiBzaGlcIDsKK+aevSA+IHNvdVwgOwor5p68ID4geW91XCA7CivmnrkgPiBob3VcIDsKK+aetCA+IGthaVwgOwor5p6yID4gc2hpXCA7CivmnrAgPiBoZWlcIDsKK+aeoiA+IHN1dVwgOwor5p6bID4gc291XCA7CivmnpggPiB6ZWlcIDsKK+aeliA+IHlvdVwgOwor5p6TID4gc2h1XCA7Civmno8gPiBkYW5cIDsKK+aejCA+IGZ1blwgOwor5p6LID4gaG91XCA7CivmnoUgPiBrZWlcIDsKK+aehCA+IGtvdVwgOwor5p28ID4gY2hvXCA7CivmnbQgPiBrZW5cIDsKK+adsyA+IHlvdVwgOwor5p2yID4ga291XCA7Civmna4gPiBoYWlcIDsKK+adrSA+IGt1aVwgOwor5p2sID4gZ2VuXCA7CivmnacgPiBtYW5cIDsKK+adoCA+IGtvdVwgOwor5p2dID4gY2hpXCA7CivmnZUgPiB0ZWlcIDsKK+adhiA+IGthblwgOwor5py/ID4gc2hpXCA7CivmnL4gPiB0b3VcIDsKK+actyA+IHRvdVwgOwor5pypID4gdG91XCA7CivmnKIgPiBib3VcIDsKK+acnCA+IHRvblwgOwor5pyZID4gbWVpXCA7CivmnJggPiBzZW5cIDsKK+acliA+IHJvdVwgOwor5pyOID4gcmVpXCA7CivmnIwgPiBoYW5cIDsKK+abuiA+IHNvdVwgOwor5pu5ID4gc291XCA7Civmm64gPiBnYW5cIDsKK+abrCA+IHNhaVwgOwor5purID4gcmFuXCA7Civmm6kgPiBkb3VcIDsKK+abqCA+IHJvdVwgOwor5puhID4gam91XCA7Civmm6AgPiBrb3VcIDsKK+abmyA+IGt1blwgOwor5puaID4gYm91XCA7Civmm5QgPiBrZWlcIDsKK+abjiA+IGVraVwgOwor5puIID4gdG91XCA7Civmm4UgPiB5b3VcIDsKK+abhCA+IHlvdVwgOwor5puDID4gdGFpXCA7Civmm4IgPiBrb3VcIDsKK+aaviA+IHRvblwgOwor5pq7ID4ga2VpXCA7CivmmrkgPiBzZW5cIDsKK+aatSA+IGthblwgOwor5pqtID4ga291XCA7CivmmqQgPiBrb3VcIDsKK+aaoCA+IGtvdVwgOwor5pqfID4ga2FpXCA7Civmmp0gPiBtZWlcIDsKK+aamiA+IHlvdVwgOwor5pqYID4geW91XCA7CivmmpIgPiBzZWlcIDsKK+aajCA+IGtlaVwgOwor5pqLID4gYmluXCA7CivmmoQgPiBrZW5cIDsKK+aZuSA+IGVraVwgOwor5pm4ID4gdGVpXCA7CivmmbUgPiBrZWlcIDsKK+aZrCA+IHNhaVwgOwor5pmqID4gdGVuXCA7CivmmacgPiBrb3VcIDsKK+aZpiA+IGthaVwgOwor5pmgID4gc2VpXCA7CivmmZ8gPiBzZWlcIDsKK+aZnCA+IGtvblwgOwor5pmbID4ga2VuXCA7CivmmZogPiBiYW5cIDsKK+aZmCA+IGthblwgOwor5pmXID4ga2FuXCA7CivmmY4gPiBrb3VcIDsKK+aZhiA+IGthaVwgOwor5pmFID4ga2VuXCA7CivmmYQgPiBrb3VcIDsKK+aZgyA+IGtvdVwgOwor5pi/ID4ga291XCA7CivmmLsgPiBrb3VcIDsKK+aYsSA+IGlrdVwgOwor5piwID4gc2hpXCA7CivmmKwgPiBrb25cIDsKK+aYqiA+IGhlblwgOwor5pinID4gbWFpXCA7CivmmKYgPiBrb3VcIDsKK+aYpCA+IHJlaVwgOwor5pihID4ga2VuXCA7CivmmJ4gPiBoZWlcIDsKK+aYnSA+IHNhblwgOwor5picID4geW91XCA7CivmmJUgPiBraW5cIDsKK+aYkSA+IGtpblwgOwor5piPID4ga29uXCA7CivmmI0gPiBrZW5cIDsKK+aYiiA+IGtvdVwgOwor5piJID4gaG91XCA7CivmmIQgPiBoYW5cIDsKK+aXuyA+IGJpblwgOwor5pe1ID4gdGFuXCA7Civml7IgPiB0YWlcIDsKK+aXsSA+IGthblwgOwor5pewID4ga2FuXCA7Civml5sgPiBoYW5cIDsKK+aXmSA+IGhhblwgOwor5peYID4gc2hpXCA7Civml5QgPiBrZW5cIDsKK+aXjCA+IHNlaVwgOwor5peGID4gaGFpXCA7Civml4QgPiBib3VcIDsKK+aXgyA+IHNlblwgOwor5pa/ID4geW91XCA7Civmlr0gPiBzaGlcIDsKK+aWtCA+IHJpblwgOwor5pazID4ga2luXCA7CivmlqcgPiBvbm9cIDsKK+aWpiA+IGdpblwgOwor5pakID4ga2luXCA7CivmlpUgPiByYW5cIDsKK+aWkiA+IGhhblwgOwor5paMID4gaGluXCA7CivmloogPiBzZWlcIDsKK+aWhiA+IGtvdVwgOwor5paFID4ga291XCA7CivmloIgPiByZW5cIDsKK+aWgSA+IGVraVwgOwor5pW7ID4ga2VpXCA7CivmlbIgPiBrb3VcIDsKK+aVryA+IGJpblwgOwor5pWtID4geW91XCA7CivmlakgPiBrb3VcIDsKK+aVpiA+IHRvblwgOwor5pWfID4gdGVuXCA7CivmlZ0gPiBoZWlcIDsKK+aVliA+IGdvdVwgOwor5pWUID4gZ3lvXCA7CivmlYMgPiBiaW5cIDsKK+aUvSA+IGhhblwgOwor5pS8ID4ga2FuXCA7CivmlLsgPiBrb3VcIDsKK+aUuCA+IHl1dVwgOwor5pS3ID4ga291XCA7CivmlK4gPiBkb3VcIDsKK+aUrCA+IHJhblwgOwor5pSpID4gdG91XCA7CivmlKYgPiByZWlcIDsKK+aUpCA+IHRhblwgOwor5pSjID4gcmVuXCA7CivmlKIgPiBzYW5cIDsKK+aUnyA+IGt1blwgOwor5pScID4ga2VpXCA7CivmlJsgPiBzYW5cIDsKK+aUmSA+IHNlblwgOwor5pSYID4gam91XCA7CivmlJQgPiByYW5cIDsKK+aUkyA+IGtlblwgOwor5pSPID4gcm91XCA7CivmlIggPiBrdW5cIDsKK+aUhSA+IHNhblwgOwor5pSEID4gY2hvXCA7CivmlIEgPiB5b3VcIDsKK+aUgCA+IGhhblwgOwor5pO+ID4gam91XCA7Civmk7sgPiBzb3VcIDsKK+aTuiA+IGhhaVwgOwor5pO2ID4gc2VuXCA7Civmk7AgPiBkb3VcIDsKK+aTryA+IGhpblwgOwor5pOtID4ga3lvXCA7Civmk6ogPiB5b3VcIDsKK+aTpSA+IHJhblwgOwor5pOkID4ga291XCA7Civmk6MgPiB0b3VcIDsKK+aToCA+IHNlaVwgOwor5pOaID4ga3lvXCA7Civmk5UgPiBrZWlcIDsKK+aTkiA+IGtpblwgOwor5pOQID4ga2FuXCA7Civmk44gPiBrZWlcIDsKK+aTiyA+IHRvdVwgOwor5pOEID4gcnlvXCA7Civmk4IgPiByYWlcIDsKK+aTgSA+IHlvdVwgOwor5pK/ID4gcmVuXCA7Civmkr0gPiBrb3VcIDsKK+aSvCA+IGthblwgOwor5pKzID4ga2luXCA7CivmkrAgPiBzYW5cIDsKK+aSpiA+IHNoYVwgOwor5pKjID4gdGFuXCA7CivmkqEgPiBzb3VcIDsKK+aSniA+IHNodVwgOwor5pKbID4gcmluXCA7CivmkpogPiBuZW5cIDsKK+aSmSA+IHNvblwgOwor5pKYID4gdG91XCA7CivmkpUgPiBzZWlcIDsKK+aSkyA+IGRvdVwgOwor5pKSID4gc2FuXCA7Civmko8gPiBzYW5cIDsKK+aSiCA+IHJvdVwgOwor5pG7ID4gc2FuXCA7CivmkbYgPiB0YW5cIDsKK+aRtCA+IGNob1wgOwor5pGzID4ga291XCA7Civmka8gPiBzaGlcIDsKK+aRpyA+IHNhaVwgOwor5pGhID4ga2FpXCA7CivmkaAgPiBzb3VcIDsKK+aRnyA+IHJvdVwgOwor5pGcID4ga2FuXCA7CivmkZsgPiBjaGlcIDsKK+aRmiA+IHRvdVwgOwor5pGTID4gaG91XCA7CivmkZIgPiBoZWlcIDsKK+aRhyA+IHlvdVwgOwor5pC0ID4ga2VuXCA7CivmkK8gPiB0b3VcIDsKK+aQrSA+IHRvdVwgOwor5pCsID4gaGFuXCA7CivmkKogPiB0b3VcIDsKK+aQqCA+IHRvdVwgOwor5pClID4gdGFpXCA7CivmkKQgPiBha3VcIDsKK+aQniA+IGtvdVwgOwor5pCYID4gc2hpXCA7CivmkJcgPiB0b3VcIDsKK+aQlCA+IHNvdVwgOwor5pCSID4gaG91XCA7CivmkIYgPiBrb3VcIDsKK+aPuSA+IGhhaVwgOwor5o+3ID4gc291XCA7Civmj7UgPiBrZW5cIDsKK+aPrSA+IGtlaVwgOwor5o+pID4ga2FpXCA7Civmj6UgPiB0ZWlcIDsKK+aPoyA+IHNoaVwgOwor5o+WID4geXV1XCA7Civmj5QgPiBzb3VcIDsKK+aPkyA+IHNoaVwgOwor5o+SID4gc291XCA7Civmj44gPiBzZW5cIDsKK+aPiCA+IGtvdVwgOwor5o+FID4ga2VuXCA7Civmj4EgPiB0ZWlcIDsKK+aPgCA+IGthblwgOwor5o69ID4gaG91XCA7Civmjq8gPiBrb3VcIDsKK+aOriA+IGtlblwgOwor5o6tID4gdGVuXCA7CivmjqsgPiBzb3VcIDsKK+aOmSA+IHNvdVwgOwor5o6WID4gZWtpXCA7CivmjpQgPiBrYW5cIDsKK+aOkCA+IGtvdVwgOwor5o6PID4gdG91XCA7CivmjoogPiBob3VcIDsKK+aOiSA+IHRvdVwgOwor5o6EID4gcm9uXCA7CivmjoIgPiB0ZW5cIDsKK+aOgCA+IGtpblwgOwor5o2/ID4gc2VpXCA7CivmjbYgPiBzdWlcIDsKK+aNtSA+IHRlblwgOwor5o20ID4gZnVuXCA7CivmjbEgPiBnYWlcIDsKK+aNrSA+IGhhaVwgOwor5o2rID4gbW9uXCA7CivmjacgPiBob3VcIDsKK+aNpiA+IGtpblwgOwor5o2lID4gd2FuXCA7CivmjaIgPiBrYW5cIDsKK+aNmyA+IHJ5b1wgOwor5o2YID4gc29uXCA7CivmjY4gPiBzb3VcIDsKK+aNjSA+IGthblwgOwor5o2KID4gaG91XCA7CivmjYYgPiBrb25cIDsKK+aNgyA+IGt1blwgOwor5oy6ID4gdGVpXCA7CivmjLkgPiB5dXVcIDsKK+aMtSA+IHJvdVwgOwor5oytID4ga291XCA7CivmjI0gPiBrb3VcIDsKK+aMiiA+IHJvdVwgOwor5oyEID4ga291XCA7CivmjIIgPiBrZWlcIDsKK+aLvCA+IGhvdVwgOwor5ou3ID4gZ291XCA7Civmi7QgPiBzZW5cIDsKK+aLryA+IGpvdVwgOwor5ouqID4gc2VuXCA7Civmi5ogPiBoZW5cIDsKK+aLkiA+IGt5b1wgOwor5ouRID4ga2FuXCA7Civmi5AgPiBrYWlcIDsKK+aLjiA+IHJlaVwgOwor5ouMID4gaGFuXCA7Civmi4sgPiBob3VcIDsKK+aLiCA+IGRlblwgOwor5ouEID4gY2h1XCA7Civmir8gPiBiaW5cIDsKK+aKviA+IGt5b1wgOwor5oq6ID4gYmFpXCA7CivmiqwgPiB0YWlcIDsKK+aKqCA+IGhvdVwgOwor5oqmID4gaGVpXCA7CivmipYgPiB0b3VcIDsKK+aKlCA+IGhvdVwgOwor5oqPID4gZ2FuXCA7CivmioMgPiBiZW5cIDsKK+aJvSA+IHRvblwgOwor5om8ID4gYWt1XCA7CivmibogPiB0ZWlcIDsKK+aJsyA+IGhhblwgOwor5omtID4ganV1XCA7CivmiaMgPiBrb3VcIDsKK+aJniA+IGthblwgOwor5ombID4ga291XCA7CivmiZQgPiBqb3VcIDsKK+aJkiA+IGhhaVwgOwor5omMID4gc2h1XCA7CivmiYMgPiBrZWlcIDsKK+aJgiA+IHRlblwgOwor5omBID4gaGVuXCA7CivmiL4gPiByZWlcIDsKK+aIvCA+IGJvdVwgOwor5oi5ID4gYWt1XCA7CivmiKkgPiBzZW5cIDsKK+aIpyA+IHNvdVwgOwor5oihID4ga2FuXCA7CivmiJQgPiBzYW5cIDsKK+aIjiA+IGp1dVwgOwor5oiHID4gdG91XCA7CivmiIMgPiB0b3VcIDsKK+aIgSA+IGRhblwgOwor5oe9ID4ga2FuXCA7Civmh7ogPiB6YW5cIDsKK+aHtiA+IHJhblwgOwor5oe0ID4gemFuXCA7Civmh60gPiBrb3VcIDsKK+aHrCA+IGtvdVwgOwor5oepID4geW91XCA7Civmh6MgPiBtb25cIDsKK+aHoiA+IHJhblwgOwor5oeeID4gYm91XCA7Civmh50gPiBnYWlcIDsKK+aHnCA+IGJvdVwgOwor5oeUID4gcmluXCA7Civmh40gPiByaW5cIDsKK+aHjCA+IGVraVwgOwor5oeLID4gYm91XCA7Civmh4ggPiBrYWlcIDsKK+aHhyA+IGtvblwgOwor5oeGID4gc291XCA7Civmh4IgPiB0b3VcIDsKK+aHgSA+IGtlblwgOwor5oeAID4gd2FpXCA7Civmhr4gPiBrYW5cIDsKK+aGvCA+IGtlaVwgOwor5oa5ID4gZG91XCA7CivmhrggPiBzZW5cIDsKK+aGsiA+IGtlblwgOwor5oarID4gYmluXCA7CivmhqogPiBrYW5cIDsKK+aGqCA+IGthblwgOwor5oalID4gcm91XCA7Civmhp0gPiB0YWlcIDsKK+aGmiA+IHRhblwgOwor5oaXID4gZ2luXCA7CivmhpMgPiBrZWlcIDsKK+aGkiA+IGthaVwgOwor5oaKID4gaGFpXCA7CivmhocgPiBrZWlcIDsKK+aGhCA+IGNoaVwgOwor5oaDID4gdG91XCA7CivmhoEgPiBzb3VcIDsKK+aFuyA+IGtlblwgOwor5oW4ID4gdGVpXCA7CivmhbcgPiBrb3VcIDsKK+aFtiA+IGtlaVwgOwor5oW1ID4geW91XCA7CivmhbMgPiBrYW5cIDsKK+aFsiA+IGJhblwgOwor5oWxID4gdGFuXCA7Civmha0gPiBnaW5cIDsKK+aFrCA+IGtpblwgOwor5oWnID4ga2VpXCA7CivmhaAgPiBnb3VcIDsKK+aFnyA+IGRvdVwgOwor5oWaID4gemFuXCA7CivmhZkgPiB6YW5cIDsKK+aFiSA+IGtpblwgOwor5oWGID4gdG91XCA7CivmhYUgPiBzb3VcIDsKK+aFgiA+IHlvdVwgOwor5oWBID4ga29uXCA7CivmhL8gPiBnZW5cIDsKK+aEuSA+IHlvdVwgOwor5oS3ID4ga2FpXCA7CivmhLQgPiBzb3VcIDsKK+aEsCA+IGthdVwgOwor5oSiID4gc2FpXCA7CivmhKEgPiBzb3VcIDsKK+aEniA+IHplblwgOwor5oSXID4gYm91XCA7CivmhJMgPiB0b3VcIDsKK+aEkiA+IGtlaVwgOwor5oSRID4geW91XCA7CivmhJAgPiBiZW5cIDsKK+aEjSA+IGJpblwgOwor5oSMID4ga2FuXCA7CivmhIYgPiBrZW5cIDsKK+aEgyA+IGtlblwgOwor5oO9ID4ga29uXCA7Civmg7wgPiBoZW5cIDsKK+aDuiA+IHNlaVwgOwor5oO4ID4ga2VpXCA7Civmg7YgPiBrb3VcIDsKK+aDtCA+IHp1aVwgOwor5oOlID4geW91XCA7Civmg6MgPiBzb3VcIDsKK+aDniA+IGtpblwgOwor5oObID4ga29uXCA7Civmg5ggPiBib3VcIDsKK+aDlCA+IHRhblwgOwor5oOTID4ga2VuXCA7Civmg48gPiByYW5cIDsKK+aDiyA+IHdhblwgOwor5oOJID4gc2VuXCA7Civmg4cgPiB0b25cIDsKK+aDgiA+IGthblwgOwor5oK+ID4ga291XCA7Civmgr0gPiBzZWlcIDsKK+aCuyA+IGtlaVwgOwor5oK3ID4gcmVpXCA7CivmgrAgPiBzb3VcIDsKK+aCqSA+IG5vdVwgOwor5oKkID4gc291XCA7Civmgp0gPiBrYWlcIDsKK+aCmyA+IHNlblwgOwor5oKXID4gYmFuXCA7CivmgpMgPiBrZW5cIDsKK+aCkiA+IHl1dVwgOwor5oKOID4ga291XCA7Civmgo0gPiBrYW5cIDsKK+aCjCA+IHRlaVwgOwor5oKLID4gcmluXCA7CivmgoggPiBrYWlcIDsKK+aCgyA+IGtvblwgOwor5oG/ID4geW91XCA7Civmgb4gPiBib3VcIDsKK+aBtSA+IGtlaVwgOwor5oGsID4gdGVuXCA7CivmgasgPiBkb3VcIDsKK+aBoyA+IHNoaVwgOwor5oGiID4ga2FpXCA7CivmgaEgPiByaW5cIDsKK+aBoCA+IGthaVwgOwor5oGdID4ga2FpXCA7CivmgZkgPiB5b3VcIDsKK+aBliA+IHNoaVwgOwor5oGSID4ga291XCA7CivmgYkgPiBzaGlcIDsKK+aBiCA+IGJvdVwgOwor5oGGID4ga291XCA7CivmgYIgPiBqdW5cIDsKK+aBgCA+IHNoaVwgOwor5oCxID4gc291XCA7CivmgKYgPiBob3VcIDsKK+aAnyA+IHRlaVwgOwor5oCcID4gcmVpXCA7CivmgJogPiBzaG9cIDsKK+aAlCA+IHNlaVwgOwor5oCTID4gZG91XCA7CivmgJAgPiBrb3VcIDsKK+aAjyA+IHlvdVwgOwor5oCHID4ga3lvXCA7Civlv7wgPiBrb3VcIDsKK+W/uyA+IGtpblwgOwor5b+6ID4ga2VuXCA7Civlv7YgPiBrb25cIDsKK+W/syA+IHRvblwgOwor5b+yID4gdGFpXCA7Civlv7AgPiBzdWlcIDsKK+W/riA+IHNoaVwgOwor5b+tID4gaGVuXCA7Civlv6kgPiBzb3VcIDsKK+W/qCA+IGdhblwgOwor5b+eID4gYmluXCA7Civlv50gPiB0ZW5cIDsKK+W/liA+IHNvblwgOwor5b+TID4ga2FuXCA7Civlv5AgPiBrdW5cIDsKK+W/iyA+IGthaVwgOwor5b+JID4gdG91XCA7Civlv4ggPiBqaW5cIDsKK+W+sCA+IHNlaVwgOwor5b6vID4ga2VpXCA7Civlvq0gPiB5b3VcIDsKK+W+rCA+IGhvdVwgOwor5b6oID4ga291XCA7CivlvqcgPiBoZW5cIDsKK+W+oCA+IHJhaVwgOwor5b6dID4gY2hpXCA7CivlvpkgPiBzaGlcIDsKK+W+mCA+IGhhaVwgOwor5b6WID4gc291XCA7CivlvpEgPiBrZWlcIDsKK+W+iSA+IHlvdVwgOwor5b6IID4ga29uXCA7CivlvoYgPiBzZWlcIDsKK+W+gSA+IHNlaVwgOwor5b2+ID4gcmVpXCA7Civlvb0gPiBjaGlcIDsKK+W9tyA+IGhvdVwgOwor5b2yID4gY2hpXCA7Civlva8gPiBoZXVcIDsKK+W9rSA+IGhvdVwgOwor5b2sID4gaGluXCA7CivlvacgPiBpa3VcIDsKK+W9piA+IGdlblwgOwor5b2lID4gZ2VuXCA7CivlvaQgPiB0b3VcIDsKK+W9oyA+IGJ1blwgOwor5b2hID4gc2FuXCA7CivlvZggPiB0ZWlcIDsKK+W9lyA+IHN1aVwgOwor5b2WID4gdGFuXCA7CivlvZEgPiBrZWlcIDsKK+W9kCA+IGtlaVwgOwor5b2OID4gd2FuXCA7CivlvYsgPiBrYXVcIDsKK+W9hyA+IHlvdVwgOwor5b2EID4ga291XCA7CivlvYEgPiBzZWlcIDsKK+W9gCA+IGtvdVwgOwor5by/ID4ga2VuXCA7CivlvL0gPiB5b3VcIDsKK+W8uSA+IGRhblwgOwor5by4ID4gaG91XCA7CivlvLQgPiB0b25cIDsKK+W8sCA+IHNvdVwgOwor5byvID4gd2FuXCA7CivlvK4gPiBrZW5cIDsKK+W8qCA+IHNldVwgOwor5bykID4gdGVpXCA7CivlvKIgPiB0b3VcIDsKK+W8miA+IHRhaVwgOwor5bySID4gc2hpXCA7CivlvJEgPiBzaGlcIDsKK+W8jiA+IHNhblwgOwor5byKID4gaGVpXCA7CivlvIkgPiBqb3VcIDsKK+W8iCA+IGVraVwgOwor5byGID4ga3lvXCA7CivlvIUgPiBodW5cIDsKK+W7vyA+IGp1dVwgOwor5bu9ID4ga2FpXCA7Civlu7wgPiBkYWlcIDsKK+W7tyA+IHRlaVwgOwor5bu1ID4ganVuXCA7Civlu7IgPiByZWlcIDsKK+W7sSA+IHlvdVwgOwor5buvID4gc2VuXCA7Civlu6wgPiByeW9cIDsKK+W7qiA+IHJpblwgOwor5bupID4gcmluXCA7Civlu6ggPiBrYWlcIDsKK+W7pSA+IGthaVwgOwor5bueID4ga2luXCA7Civlu50gPiBzaGlcIDsKK+W7myA+IHRlblwgOwor5buXID4gdGFpXCA7Civlu5QgPiByb3VcIDsKK+W7kiA+IGdvdVwgOwor5buRID4ga2luXCA7Civlu44gPiBrZWlcIDsKK+W7jCA+IGNoaVwgOwor5buHID4gcml1XCA7Civlu4YgPiBrYWlcIDsKK+W7hSA+IGFodVwgOwor5buBID4gc2hpXCA7Civlu4AgPiBzb3VcIDsKK+W6vSA+IGRvdVwgOwor5bq7ID4gc2hvXCA7CivlurYgPiBzaG9cIDsKK+W6siA+IHJhaVwgOwor5bqwID4gaGVpXCA7CivluqwgPiBib3VcIDsKK+W6qCA+IGtvdVwgOwor5bqkID4gY2hpXCA7CivluqMgPiB0ZXVcIDsKK+W6myA+IHNoaVwgOwor5bqOID4ga2FpXCA7Civluo0gPiBoYWlcIDsKK+W6iSA+IHRvblwgOwor5bqIID4ga2luXCA7Civlub8gPiBnZW5cIDsKK+W5uiA+IHlvdVwgOwor5bm3ID4gaGVpXCA7CivlubYgPiBoZWlcIDsKK+W5tSA+IGtlblwgOwor5bmxID4gcmFuXCA7CivlubAgPiBrZW5cIDsKK+W5riA+IGNodVwgOwor5bmrID4gaG91XCA7CivluaogPiBib3VcIDsKK+W5qSA+IGh1blwgOwor5bmoID4gc2VuXCA7CivluacgPiBzZXVcIDsKK+W5pCA+IGhlaVwgOwor5bmjID4gaGVpXCA7CivluaIgPiB0b3VcIDsKK+W5oSA+IGhhblwgOwor5bmdID4gc2VuXCA7CivluZwgPiBrZWlcIDsKK+W5miA+IGhvdVwgOwor5bmUID4gYmFuXCA7CivluZAgPiB0b3VcIDsKK+W5jSA+IHRvdVwgOwor5bmMID4ga291XCA7CivluYsgPiBoYW5cIDsKK+W5iiA+IGtvdVwgOwor5bmIID4gaGVpXCA7CivluYcgPiBob3VcIDsKK+W5hCA+IGFrdVwgOwor5bmAID4gdGVpXCA7CivluLUgPiB3YW5cIDsKK+W4siA+IGhlaVwgOwor5biuID4gaG91XCA7CivluKwgPiBrdW5cIDsKK+W4qSA+IHNldVwgOwor5bioID4gc2VpXCA7CivluKYgPiB0YWlcIDsKK+W4oyA+IGtlblwgOwor5bihID4gaGVpXCA7CivluKAgPiBnZWlcIDsKK+W4nyA+IGVraVwgOwor5biYID4gcmVuXCA7CivluJYgPiBqb3VcIDsKK+W4kiA+IHRhaVwgOwor5biOID4gdGFuXCA7CivluIsgPiBzaGlcIDsKK+W4hyA+IGRlblwgOwor5biEID4gdGVpXCA7CivluIAgPiBzb3VcIDsKK+W3uiA+IHNvblwgOwor5be5ID4ga2luXCA7Civlt7UgPiBzaGlcIDsKK+W3oCA+IGtlaVwgOwor5befID4ga291XCA7Civlt5wgPiBrYWlcIDsKK+W3myA+IHNlblwgOwor5beYID4gZ2VuXCA7Civlt5YgPiBnYW5cIDsKK+W3lCA+IHRlblwgOwor5beTID4gdGVuXCA7Civlt5IgPiByYW5cIDsKK+W3kSA+IHNhblwgOwor5bePID4ga2VuXCA7Civlt44gPiBkb3VcIDsKK+W3jCA+IGdhblwgOwor5beJID4gc2FuXCA7Civlt4YgPiBrb3VcIDsKK+W3gyA+IHJvdVwgOwor5beCID4gc3VpXCA7CivltrwgPiBzaG9cIDsKK+W2uiA+IHJlaVwgOwor5ba5ID4gdG91XCA7CivltrggPiBrb3VcIDsKK+W2tSA+IHNhaVwgOwor5bayID4ga2VpXCA7CivltrAgPiBrYWlcIDsKK+W2qSA+IGRhdVwgOwor5banID4gZWtpXCA7CivltqEgPiBrZWlcIDsKK+W2nyA+IHNvblwgOwor5badID4gdG91XCA7CivltpkgPiByaW5cIDsKK+W2lSA+IHNldVwgOwor5baUID4ga2luXCA7CivltowgPiB0b3VcIDsKK+W2iyA+IHRvdVwgOwor5baKID4gc3VpXCA7CivltokgPiBzdWlcIDsKK+W2hiA+IHNhdVwgOwor5baEID4gc2FuXCA7CivltoMgPiBzYW5cIDsKK+W1vyA+IHRlaVwgOwor5bW8ID4gc2FuXCA7CivltbogPiByZXVcIDsKK+W1tiA+IHRhb1wgOwor5bWxID4geW91XCA7CivltbAgPiBrZW5cIDsKK+W1rSA+IGhvdVwgOwor5bWsID4ga2FpXCA7CivltaogPiBrb3VcIDsKK+W1qSA+IHN1dVwgOwor5bWnID4gcml1XCA7CivltaQgPiBrZWlcIDsKK+W1oyA+IHRhdVwgOwor5bWiID4gc291XCA7CivltaAgPiBnZWlcIDsKK+W1lyA+IHNlaVwgOwor5bWVID4gc291XCA7CivltZMgPiBnYW5cIDsKK+W1kiA+IGdhblwgOwor5bWOID4gZ3V1XCA7CivltYkgPiB0ZWlcIDsKK+W1iCA+IGthblwgOwor5bWHID4ga2VpXCA7CivltYYgPiBrZWlcIDsKK+W1hSA+IGthblwgOwor5bWDID4gZ2VuXCA7CivltYEgPiBrYW5cIDsKK+W0vSA+IHNhaVwgOwor5bS8ID4gc2hpXCA7CivltLkgPiB0ZWlcIDsKK+W0uCA+IHRvblwgOwor5bS2ID4gaG91XCA7CivltLUgPiBzZXVcIDsKK+W0tCA+IHdhaVwgOwor5bSyID4ga291XCA7CivltKUgPiBoZWlcIDsKK+W0pCA+IGtvdVwgOwor5bSiID4gc291XCA7CivltKEgPiBrYW5cIDsKK+W0oCA+IHRvdVwgOwor5bSfID4gZ2luXCA7CivltJ0gPiBzYXVcIDsKK+W0mSA+IHJvblwgOwor5bSYID4gcm9uXCA7CivltJUgPiBnYWlcIDsKK+W0lCA+IHNhaVwgOwor5bSRID4ga29uXCA7CivltJAgPiBrb25cIDsKK+W0jyA+IGJpblwgOwor5bSNID4gcmFpXCA7CivltIcgPiBzdXVcIDsKK+W0hiA+IGtvdVwgOwor5bSEID4ga2VuXCA7CivltIEgPiBrYW5cIDsKK+WzuiA+IGtvdVwgOwor5bO4ID4gc2VpXCA7Civls7UgPiBrb3VcIDsKK+WztCA+IGtlblwgOwor5bOxID4gZG91XCA7Civls68gPiBob3VcIDsKK+WzriA+IGtpblwgOwor5bOfID4geW91XCA7Civls50gPiB0b3VcIDsKK+WznCA+IGtlaVwgOwor5bOYID4ga2FuXCA7Civls5UgPiBzaGlcIDsKK+WzkiA+IHRvdVwgOwor5bOQID4ga2FpXCA7Civls44gPiBnb25cIDsKK+WzhyA+IGtvdVwgOwor5bK+ID4gc2VuXCA7CivlsrogPiByZWlcIDsKK+WytyA+IGJpblwgOwor5bKyID4ga291XCA7CivlsrEgPiB0YWlcIDsKK+WysCA+IHlvdVwgOwor5bKtID4gcmVpXCA7CivlsqcgPiB0ZXVcIDsKK+WyoyA+IGtvdVwgOwor5bKgID4ga3lvXCA7Civlsp8gPiB5b3VcIDsKK+WylSA+IGthaVwgOwor5bKSID4ga2VuXCA7CivlsosgPiBnb3VcIDsKK+WyhyA+IGdvdVwgOwor5bKFID4gaGFuXCA7Civlsb0gPiBrYW5cIDsKK+WxuyA+IGppblwgOwor5bGzID4gc2VuXCA7Civlsa8gPiB0b25cIDsKK+WxpyA+IHRlaVwgOwor5bGjID4gc2hpXCA7CivlsZ8gPiB0ZWlcIDsKK+WxnCA+IHRlaVwgOwor5bGbID4gaGVpXCA7CivlsZogPiByb3VcIDsKK+WxliA+IHNlaVwgOwor5bGUID4gZGVpXCA7CivlsY4gPiBzaGlcIDsKK+WxhyA+IHRlblwgOwor5bC8ID4gYW1hXCA7CivlsLcgPiBrYW5cIDsKK+WwtiA+IGthblwgOwor5bC1ID4gdGFpXCA7CivlsLIgPiBrYW5cIDsKK+WwrCA+IGthaVwgOwor5bCoID4gYm91XCA7CivlsJ8gPiBzZW5cIDsKK+WwjCA+IHNodVwgOwor5bCCID4gc2VuXCA7Civlr70gPiByaW5cIDsKK+WvuSA+IHRhaVwgOwor5a+2ID4gaG91XCA7Civlr7MgPiBob3VcIDsKK+WvsSA+IGdlaVwgOwor5a+wID4ga2FuXCA7Civlr6wgPiBrYW5cIDsKK+WvqCA+IHNhaVwgOwor5a+cID4gbmVpXCA7Civlr5sgPiBrYW5cIDsKK+WvmiA+IGhvdVwgOwor5a+YID4gc2hpXCA7Civlr5cgPiBuZWlcIDsKK+WvlSA+IG5laVwgOwor5a+TID4gZ3V1XCA7Civlr48gPiBrYW5cIDsKK+WvjiA+IGhlaVwgOwor5a+NID4gbmVpXCA7Civlr4sgPiBrZW5cIDsKK+WviiA+IHRlaVwgOwor5a+HID4ga291XCA7Civlr4EgPiBzYW5cIDsKK+WvgCA+IHNhaVwgOwor5a68ID4ga291XCA7CivlrrogPiBrb3VcIDsKK+WusiA+IGhvdVwgOwor5a6vID4ga291XCA7Civlrq0gPiBrdW5cIDsKK+WurCA+IHNlaVwgOwor5a6pID4gc2hpXCA7CivlrqYgPiBrYW5cIDsKK+WupSA+IHl1dVwgOwor5a6WID4ga291XCA7CivlrpUgPiB0b3VcIDsKK+WulCA+IHNodVwgOwor5a6RID4gc2VpXCA7Civlro8gPiBrb3VcIDsKK+WuiyA+IHNvdVwgOwor5a6BID4gY2hvXCA7CivlroAgPiBiZW5cIDsKK+WtvyA+IHNhblwgOwor5a27ID4gZGFpXCA7CivlrbMgPiBzaGlcIDsKK+WtsSA+IHNlblwgOwor5a2vID4ga2FuXCA7Civlra4gPiBzb3VcIDsKK+WtqSA+IGthaVwgOwor5a2oID4gc2VuXCA7CivlrZ8gPiBtb3VcIDsKK+WtnSA+IGtvdVwgOwor5a2cID4gc2hpXCA7CivlrZYgPiBzaGlcIDsKK+WtlSA+IHlvdVwgOwor5a2NID4gZ2VuXCA7CivlrYwgPiByZW5cIDsKK+WtiCA+IHN1aVwgOwor5a2FID4gc2VuXCA7CivlrYMgPiBqb3VcIDsKK+WtgSA+IHJlaVwgOwor5a2AID4gc291XCA7CivlrL4gPiByYW5cIDsKK+WssiA+IGpvdVwgOwor5ayvID4gdGFpXCA7CivlrK0gPiBkYWlcIDsKK+WsrCA+IHNodVwgOwor5ayoID4gc2hpXCA7CivlrKMgPiB0YXVcIDsKK+WsoCA+IHNhblwgOwor5ayeID4gdG91XCA7CivlrJ0gPiBqb3VcIDsKK+WsmyA+IGtlblwgOwor5ayaID4gcmVuXCA7CivlrJcgPiBzZW5cIDsKK+WsliA+IGhlaVwgOwor5ayTID4ga2V1XCA7CivlrJAgPiBzZW5cIDsKK+WsjyA+IGhhblwgOwor5ayOID4gaGFuXCA7CivlrIsgPiBzZW5cIDsKK+WsiCA+IGRldVwgOwor5ayDID4gc2h1XCA7CivlrIEgPiB0b3VcIDsKK+WrvSA+IHJldVwgOwor5au7ID4ga2FuXCA7Civlq7ogPiBrYW5cIDsKK+WruSA+IGJhdVwgOwor5au4ID4gc2VuXCA7Civlq7YgPiBzZXVcIDsKK+WrrCA+IHNoYVwgOwor5auqID4gcmF1XCA7Civlq6kgPiBkb25cIDsKK+WrqCA+IGthblwgOwor5aumID4ga291XCA7Civlq6UgPiBzZW5cIDsKK+WrnSA+IGthdVwgOwor5auaID4gYmFuXCA7Civlq5kgPiBzZWJcIDsKK+WrmCA+IHJ1aVwgOwor5auQID4gam91XCA7Civlq48gPiByb3VcIDsKK+WrjSA+IHRhdVwgOwor5auLID4gam91XCA7Civlq4ggPiBzZXVcIDsKK+WrhyA+IGJlaVwgOwor5auGID4geW91XCA7Civlq4QgPiBnZW5cIDsKK+WqviA+IGtvdVwgOwor5aq7ID4gaGFuXCA7CivlqrkgPiByaXVcIDsKK+WquCA+IHNoaVwgOwor5aq2ID4gam91XCA7CivlqrUgPiB5b3VcIDsKK+WqsiA+IGhlaVwgOwor5aquID4gdG91XCA7Civlqq0gPiBzaHVcIDsKK+WqpyA+IGthaVwgOwor5aqlID4gaGVuXCA7CivlqqQgPiBzaGlcIDsKK+WqoiA+IGJvdVwgOwor5aqeID4gc2hpXCA7CivlqpwgPiB0ZWlcIDsKK+WqlyA+IGtlblwgOwor5aqUID4gYmVuXCA7CivlqpMgPiBrb3VcIDsKK+WqjyA+IHRhblwgOwor5aqMID4gYm91XCA7CivlqoogPiBzZW5cIDsKK+WpviA+IHRvdVwgOwor5am7ID4gZGFuXCA7CivlqbggPiB0b3VcIDsKK+WptyA+IHRlaVwgOwor5amwID4gdGVuXCA7CivlqaogPiByYW5cIDsKK+WpqSA+IGdlblwgOwor5amnID4gc2VpXCA7CivlqaUgPiBkb3VcIDsKK+WpoCA+IHdhblwgOwor5ameID4ga2VpXCA7CivlqZ0gPiB0ZW5cIDsKK+WpnCA+IGthblwgOwor5ambID4ga2VpXCA7CivlqZggPiBrZW5cIDsKK+WplyA+IGdlaVwgOwor5amWID4gdGVuXCA7CivlqZIgPiB0YW5cIDsKK+WpkSA+IHp1aVwgOwor5amHID4gc2FpXCA7CivlqYQgPiBob3VcIDsKK+WpgyA+IHNvdVwgOwor5amCID4gYmVuXCA7CivlqYEgPiByb3VcIDsKK+WoviA+IGdhaVwgOwor5ai5ID4ga2VuXCA7CivlqLYgPiBzaHVcIDsKK+WotSA+IHNodVwgOwor5aiuID4gZGVuXCA7CivlqKkgPiBiZW5cIDsKK+WoqCA+IGJhblwgOwor5ainID4gdGFpXCA7CivlqKQgPiBzb3VcIDsKK+WooyA+IHRlaVwgOwor5aifID4ga2VuXCA7CivlqJ4gPiBkYWlcIDsKK+WomiA+IG5hblwgOwor5aiZID4gZ291XCA7CivlqJcgPiB0ZWlcIDsKK+WojyA+IGJvdVwgOwor5aiNID4gc2VpXCA7CivlqIogPiBrZW5cIDsKK+WoiSA+IGhlaVwgOwor5ae+ID4gc2VuXCA7Civlp7wgPiBzaGlcIDsKK+WnuCA+IGtlblwgOwor5ae3ID4geXV1XCA7Civlp7UgPiBoYWlcIDsKK+WnsyA+IGJlaVwgOwor5aevID4ga291XCA7Civlp64gPiBrb3VcIDsKK+WnrSA+IGtlblwgOwor5aeqID4gbWVpXCA7Civlp6kgPiBkZW5cIDsKK+WnpyA+IGthblwgOwor5aemID4ga2FuXCA7Civlp6QgPiBrb3VcIDsKK+WnoyA+IGtvdVwgOwor5aeiID4ga2VuXCA7Civlp58gPiBrYWlcIDsKK+WnmyA+IHRvdVwgOwor5aeaID4geW91XCA7Civlp5kgPiBuaW5cIDsKK+WnmCA+IGhpblwgOwor5aeXID4gc2FuXCA7Civlp5YgPiBreW9cIDsKK+WnkiA+IHNoaVwgOwor5aeQID4gYW5lXCA7Civlp48gPiBiYW5cIDsKK+WnjSA+IHNhblwgOwor5aeMID4gemVuXCA7Civlp4ogPiBzaGlcIDsKK+WniCA+IHJlaVwgOwor5aeFID4gaGFuXCA7Civlp4QgPiBiaW5cIDsKK+WngyA+IHNlaVwgOwor5aa2ID4ga2VuXCA7CivlprUgPiB0b3VcIDsKK+WmsyA+IGRhaVwgOwor5aaoID4gYm91XCA7CivlpqcgPiBnZW5cIDsKK+WmpiA+IGhvdVwgOwor5aaiID4gaHVuXCA7CivlpqEgPiBraW5cIDsKK+WmoCA+IGRvdVwgOwor5aaeID4ganV1XCA7Civlpp0gPiBzb3VcIDsKK+WmmyA+IHNoaVwgOwor5aaaID4gaHV1XCA7CivlppcgPiBzZW5cIDsKK+WmjyA+IGJ1blwgOwor5aaOID4ga2FpXCA7Civlpo0gPiBrZW5cIDsKK+WmjCA+IHNlaVwgOwor5aaFID4ga291XCA7Civlpb8gPiBnYW5cIDsKK+WlviA+IHNlblwgOwor5aW7ID4gZGFuXCA7CivlpbkgPiBjaGlcIDsKK+WluCA+IGthblwgOwor5aW3ID4gc2VuXCA7CivlpbYgPiBkYWlcIDsKK+WltSA+IHRlaVwgOwor5aWyID4gc2hhXCA7CivlpbEgPiByZW5cIDsKK+WlqSA+IHJlblwgOwor5aWjID4gd2FuXCA7CivlpaEgPiBnYXVcIDsKK+WloCA+IHRlblwgOwor5aWfID4ga291XCA7CivlpZsgPiBrb3VcIDsKK+WlmiA+IGtlaVwgOwor5aWZID4gaG9uXCA7CivlpZggPiBqb3VcIDsKK+WllSA+IGVraVwgOwor5aWUID4gaG9uXCA7CivlpZIgPiBrYWlcIDsKK+WlkCA+IGthblwgOwor5aWOID4ga2VpXCA7CivlpYwgPiB0ZW5cIDsKK+WlhiA+IGtlblwgOwor5aWFID4gaG91XCA7CivlpYMgPiB0ZWlcIDsKK+WlgCA+IGJvdVwgOwor5aSzID4gdGFpXCA7CivlpLIgPiB0b3VcIDsKK+WksCA+IGtvdVwgOwor5aSvID4ga291XCA7CivlpK0gPiB5b3VcIDsKK+WkoyA+IGJvdVwgOwor5aSgID4ga291XCA7CivlpJ0gPiBzZWlcIDsKK+WkmCA+IGJvdVwgOwor5aSSID4gZG91XCA7CivlpJAgPiBrZWlcIDsKK+WkiiA+IHN1aVwgOwor5aSGID4gaG91XCA7CivlpIUgPiBrb3VcIDsKK+WkgiA+IGNoaVwgOwor5aO+ID4gYm91XCA7Civlo7wgPiBrb25cIDsKK+WjuCA+IGtvblwgOwor5aO0ID4gc2h1XCA7Civlo64gPiBzb3VcIDsKK+WjqCA+IHJhaVwgOwor5aOnID4gZ2FuXCA7Civlo6UgPiB0ZW5cIDsKK+WjpCA+IGpvdVwgOwor5aOjID4gcmluXCA7Civlo6AgPiByb3VcIDsKK+WjnyA+IG9rYVwgOwor5aOcID4gdGFuXCA7Civlo5kgPiBrb3VcIDsKK+WjmCA+IHJ1aVwgOwor5aOWID4gemVuXCA7Civlo5UgPiBnb3VcIDsKK+WjlCA+IHRhdVwgOwor5aOQID4gc2hpXCA7Civlo48gPiBrYW5cIDsKK+WjjiA+IGtlblwgOwor5aONID4gemFuXCA7Civlo4wgPiBqb3VcIDsKK+WjiSA+IGt5b1wgOwor5aOFID4geW91XCA7Civlo4IgPiB0ZW5cIDsKK+WivyA+IGVraVwgOwor5aK+ID4ga29uXCA7Civlor0gPiBrYXVcIDsKK+WiuCA+IHNob1wgOwor5aKzID4gZnVuXCA7CivlorEgPiB0b3VcIDsKK+WirSA+IHNlaVwgOwor5aKsID4gY2hpXCA7CivloqkgPiB0b25cIDsKK+WipiA+IGhhblwgOwor5aKlID4gdG91XCA7CivloqEgPiBzZW5cIDsKK+WioCA+IHNlblwgOwor5aKfID4ga3lvXCA7Civlop4gPiB6b3VcIDsKK+WinSA+IGtvdVwgOwor5aKWID4gdG91XCA7CivlopQgPiBzYWlcIDsKK+WikCA+IGtpblwgOwor5aKKID4gdGVuXCA7CivlookgPiB5b3VcIDsKK+WiiCA+IGthblwgOwor5aKFID4gc2hvXCA7CivlooEgPiBiYW5cIDsKK+WigCA+IGNoaVwgOwor5aG/ID4gcm91XCA7Civlob0gPiBzYXVcIDsKK+WhvCA+IHNlblwgOwor5aG6ID4gYmFpXCA7CivlobkgPiB6YW5cIDsKK+WhtCA+IGhvdVwgOwor5aGyID4gam91XCA7CivlobAgPiBhbWFcIDsKK+WhqyA+IHRlblwgOwor5aGkID4ga2VuXCA7CivloaMgPiB0ZWlcIDsKK+WhoSA+IHRlblwgOwor5aGfID4gc291XCA7CivloZ0gPiBoYXVcIDsKK+WhnCA+IGhvdVwgOwor5aGYID4gdG91XCA7CivloZIgPiBzaGlcIDsKK+WhjyA+IGthaVwgOwor5aGOID4geW91XCA7CivloYwgPiB0b3VcIDsKK+WhgSA+IHJ1aVwgOwor5aC/ID4ga2FuXCA7CivloL0gPiBrb3VcIDsKK+WgvCA+IGtvdVwgOwor5aC6ID4ga2FpXCA7CivloK0gPiBrYXVcIDsKK+WgqSA+IGtvdVwgOwor5aCnID4gemVuXCA7CivloKYgPiBrYWlcIDsKK+WgpSA+IGJvdVwgOwor5aChID4gaG91XCA7CivloKAgPiBrb3VcIDsKK+WgnyA+IHRlblwgOwor5aCeID4gdGV1XCA7CivloJwgPiByZW5cIDsKK+WgiyA+IGhvdVwgOwor5aCJID4gaWt1XCA7CivloIggPiBrb3VcIDsKK+WghyA+IGtpblwgOwor5aCEID4gZ2VuXCA7CivloIMgPiBrb25cIDsKK+WfvyA+IGRlaVwgOwor5Z++ID4gc2h1XCA7Civln70gPiBzb3VcIDsKK+WfuSA+IGJhaVwgOwor5Z+4ID4gZWtpXCA7Civln7YgPiBnZWlcIDsKK+WfsyA+IGthblwgOwor5Z+yID4gaG91XCA7Civln7AgPiBzYWlcIDsKK+WfriA+IHRhblwgOwor5Z+tID4gdGFpXCA7Civln6wgPiB0b3VcIDsKK+WfqSA+IHNhdVwgOwor5Z+mID4gd2FuXCA7Civln6UgPiBzZWlcIDsKK+WfoyA+IHNhaVwgOwor5Z+iID4ga2VuXCA7Civln58gPiBpa2lcIDsKK+WfniA+IHRlaVwgOwor5Z+dID4gdGVuXCA7Civln5wgPiBzaG9cIDsKK+WflSA+IHRlaVwgOwor5Z+PID4gc2VuXCA7Civln4wgPiByb3VcIDsKK+WfhyA+IHlvdVwgOwor5Z+EID4gaG91XCA7Civln4IgPiBrYXVcIDsKK+WfgCA+IHN1aVwgOwor5Z6/ID4gc2hvXCA7Civlnr4gPiBrYW5cIDsKK+WevSA+IGdpblwgOwor5Z68ID4gZWtpXCA7CivlnrsgPiBoYWlcIDsKK+WeuSA+IGhvdVwgOwor5Z64ID4ga2FuXCA7CivlnrYgPiBzZWlcIDsKK+WesCA+IHRhb1wgOwor5Z6pID4gc2VpXCA7CivlnqggPiBzaHVcIDsKK+WepyA+IGtlaVwgOwor5Z6lID4ga2V1XCA7CivlnqAgPiBnaW5cIDsKK+WenyA+IHlvdVwgOwor5Z6aID4gZ2V1XCA7CivlnpkgPiBrdXVcIDsKK+WelyA+IHRldVwgOwor5Z6VID4ga291XCA7CivlnpMgPiBnYWlcIDsKK+WekCA+IHNoaVwgOwor5Z6MID4gdG91XCA7CivlnokgPiBob3VcIDsKK+WeiCA+IHRhaVwgOwor5Z6BID4gY2hpXCA7Civlnb4gPiBjaG9cIDsKK+WdvSA+IHJlaVwgOwor5Z27ID4gY2hpXCA7CivlnbAgPiBrZWlcIDsKK+WdriA+IGRhaVwgOwor5Z2tID4gZGVpXCA7CivlnasgPiB0ZW5cIDsKK+WdqSA+IGthblwgOwor5Z2lID4gc2hvXCA7CivlnaQgPiBrb25cIDsKK+WdoiA+IGhhblwgOwor5Z2aID4ga2VuXCA7CivlnZkgPiBrZWlcIDsKK+WdlyA+IGthaVwgOwor5Z2RID4ga291XCA7CivlnY8gPiBoYWlcIDsKK+WdjiA+IGthblwgOwor5Z2NID4gdGFuXCA7CivlnYwgPiBob25cIDsKK+WdiyA+IGh1blwgOwor5Z2JID4gdG9uXCA7CivlnYYgPiBiYWlcIDsKK+WdhSA+IGtpblwgOwor5Z2BID4gc2hpXCA7CivlnYAgPiBzaGlcIDsKK+WcrSA+IGtlaVwgOwor5ZymID4gaXJpXCA7CivlnKIgPiB0ZWlcIDsKK+WcniA+IHJhblwgOwor5ZydID4gcmFuXCA7CivlnJwgPiBrYW5cIDsKK+WcmyA+IGVraVwgOwor5ZyaID4ga2FpXCA7CivlnIwgPiBzZW5cIDsKK+WciiA+IHNlaVwgOwor5ZyJID4gZ3lvXCA7CivlnIggPiBrZW5cIDsKK+WchyA+IHJpblwgOwor5ZyFID4ga2FuXCA7CivlnIQgPiBneW9cIDsKK+WcgiA+IGtvblwgOwor5ZyBID4gZ2luXCA7Civlm78gPiB5dXVcIDsKK+WbuSA+IHJlaVwgOwor5Zu3ID4ga2luXCA7Civlm7EgPiBzb3VcIDsKK+WbrSA+IGdhblwgOwor5ZusID4ga2FpXCA7Civlm6ogPiBzb3VcIDsKK+WbqCA+IGhlblwgOwor5ZunID4ga2VpXCA7Civlm6UgPiBrb3VcIDsKK+WbpCA+IHRvblwgOwor5ZuhID4ganV1XCA7Civlm50gPiBrZW5cIDsKK+WbnCA+IGppblwgOwor5ZuYID4ga2FpXCA7Civlm5QgPiBkb3VcIDsKK+WbjyA+IGthblwgOwor5ZuKID4gbm91XCA7Civlm4ggPiBnZWlcIDsKK+WbhiA+IHRhaVwgOwor5ZuFID4gdGVuXCA7Civlm4MgPiBzb3VcIDsKK+WbgiA+IGdvdVwgOwor5ZuAID4gdGVuXCA7Civlmr4gPiBrYW5cIDsKK+WauyA+IGdvdVwgOwor5Zq3ID4gamF1XCA7CivlmrUgPiBzYW5cIDsKK+WariA+IGtvdVwgOwor5ZqsID4gaGluXCA7CivlmqogPiB0YW5cIDsKK+WaqCA+IHJvdVwgOwor5ZqiID4gbm91XCA7CivlmpogPiBnaW5cIDsKK+WamSA+IGdvdVwgOwor5ZqUID4gdGVpXCA7Civlmo4gPiBrYXVcIDsKK+WajCA+IHNlaVwgOwor5ZqIID4geW91XCA7CivlmoYgPiBrb3VcIDsKK+WagyA+IHRvdVwgOwor5ZqCID4gcmFuXCA7CivlmoAgPiBkZWlcIDsKK+WZvyA+IHN1aVwgOwor5Zm5ID4gdG91XCA7CivlmbggPiB0b25cIDsKK+WZtyA+IGtpblwgOwor5Zm1ID4gZG91XCA7CivlmbQgPiBmdW5cIDsKK+WZsCA+IHlvdVwgOwor5ZmsID4gemVpXCA7CivlmaUgPiBkb3VcIDsKK+WZpCA+IGtpblwgOwor5ZmjID4gY2h1XCA7CivlmaIgPiBpa3VcIDsKK+WZoSA+IHNlblwgOwor5ZmfID4geW91XCA7CivlmZ4gPiBnZW5cIDsKK+WZmSA+IGtpblwgOwor5ZmUID4gdG91XCA7CivlmZMgPiBreW9cIDsKK+WZjSA+IHNldVwgOwor5ZmLID4gdG9uXCA7CivlmYkgPiB0YW5cIDsKK+WZhyA+IHRvdVwgOwor5ZmGID4gc291XCA7CivlmYMgPiBoYW5cIDsKK+WZgCA+IHNvblwgOwor5Zi+ID4gdGFuXCA7CivlmL0gPiB0YW5cIDsKK+WYuSA+IHJldVwgOwor5Zi3ID4ga291XCA7CivlmLYgPiBzZWlcIDsKK+WYtSA+IGtldVwgOwor5ZiuID4gdG91XCA7CivlmK0gPiBob3VcIDsKK+WYrCA+IHNhaVwgOwor5ZirID4gZGFtXCA7CivlmKogPiBiYWlcIDsKK+WYlSA+IGtlblwgOwor5ZiSID4ga2VpXCA7CivlmJAgPiBoYXVcIDsKK+WYjSA+IHJvdVwgOwor5ZiMID4gaGV1XCA7CivlmIogPiBnYWlcIDsKK+WYiCA+IHNhdVwgOwor5ZiFID4ga2FpXCA7CivlmIQgPiBrZXVcIDsKK+WXvyA+IHRhblwgOwor5Ze+ID4gc291XCA7Civll7sgPiBzaGFcIDsKK+WXuiA+IHN1aVwgOwor5Ze5ID4gcmVuXCA7Civll7ggPiBnb3VcIDsKK+WXtyA+IGdvdVwgOwor5ZeoID4ga2FpXCA7Civll6UgPiBrb3VcIDsKK+WXpCA+IHNoaVwgOwor5ZehID4gcm91XCA7Civll54gPiBzaGlcIDsKK+WXmyA+IGtlblwgOwor5ZeZID4gaG91XCA7Civll5ggPiBrZWlcIDsKK+WXkyA+IHNvdVwgOwor5ZeSID4gdG91XCA7Civll4wgPiBla2lcIDsKK+WXiiA+IGtvdVwgOwor5ZeIID4geW91XCA7Civll4MgPiBrb3VcIDsKK+WXgSA+IHRlaVwgOwor5Za/ID4gc291XCA7Civllq0gPiBnZW5cIDsKK+WWpiA+IGpvdVwgOwor5ZakID4ga291XCA7CivllpsgPiBrYW5cIDsKK+WWmSA+IGthaVwgOwor5ZaXID4gZ2luXCA7CivllpUgPiBiZW5cIDsKK+WWlCA+IGFrdVwgOwor5ZaSID4gc2FuXCA7Civllo8gPiBzaGFcIDsKK+WWjSA+IHNhaVwgOwor5ZaKID4ga2FuXCA7CivlloggPiBrYWlcIDsKK+WWgyA+IG5hblwgOwor5ZW/ID4gdGFuXCA7Civllb0gPiBnYW5cIDsKK+WVuyA+IHNoaVwgOwor5ZW0ID4gdGFuXCA7Civlla4gPiBnb3VcIDsKK+WVpSA+IHNoYVwgOwor5ZWhID4gaGFpXCA7CivllZ8gPiBrZWlcIDsKK+WVmyA+IHNhaVwgOwor5ZWZID4gc2hpXCA7CivllZcgPiB0YW5cIDsKK+WVliA+IHRhblwgOwor5ZWVID4gdG91XCA7CivllZQgPiBrZWlcIDsKK+WVkyA+IGtlaVwgOwor5ZWRID4gc291XCA7CivllZAgPiBzYWlcIDsKK+WVjSA+IHRvblwgOwor5ZWMID4ga291XCA7CivllYkgPiByYW5cIDsKK+WViCA+IGtvdVwgOwor5ZWBID4gdG91XCA7CivllYAgPiBnYWlcIDsKK+WUuyA+IHJhaVwgOwor5ZS2ID4gc2hhXCA7CivllLMgPiByZWlcIDsKK+WUqyA+IGdpblwgOwor5ZSqID4gaG91XCA7CivllKQgPiBrYW5cIDsKK+WUnSA+IGtvdVwgOwor5ZSYID4ga2VpXCA7CivllJcgPiB0b3VcIDsKK+WUlSA+IHNvdVwgOwor5ZSRID4gemVpXCA7CivllI0gPiBrYW5cIDsKK+WUjCA+IHNlblwgOwor5ZSJID4ga2FpXCA7CivllIUgPiBrYW5cIDsKK+WUhCA+IHV0YVwgOwor5ZSBID4gZ2VuXCA7Civlk70gPiBrb3VcIDsKK+WTvCA+IGtvdVwgOwor5ZO7ID4ga2FuXCA7Civlk7ggPiBzYWlcIDsKK+WTsCA+IHJvdVwgOwor5ZOvID4ga2VuXCA7Civlk64gPiBrb3VcIDsKK+WTpCA+IGJvdVwgOwor5ZOiID4gcm91XCA7Civlk6AgPiBrb3VcIDsKK+WTjyA+IGtvblwgOwor5ZOOID4gZ2FpXCA7Civlk4ogPiBpa3VcIDsKK+WTiCA+IGdvdVwgOwor5ZOGID4gc2hpXCA7Civlk4UgPiBrb3VcIDsKK+WThCA+IGtvdVwgOwor5ZODID4gdG91XCA7Civlkr4gPiByb3VcIDsKK+WSuiA+IGtlblwgOwor5ZK4ID4ga2FuXCA7CivlkrcgPiB0YXVcIDsKK+WStSA+IGt1dVwgOwor5ZK0ID4ga2FpXCA7Civlkq4gPiB0b3VcIDsKK+WSqyA+IHNoaVwgOwor5ZKoID4gc2hpXCA7CivlkqMgPiBrb3VcIDsKK+WSlCA+IHJvdVwgOwor5ZKSID4gc2h1XCA7Civlko0gPiBrYWlcIDsKK+WShiA+IGhvdVwgOwor5ZKFID4gdG91XCA7CivlkoIgPiBzb3VcIDsKK+WSgSA+IGthblwgOwor5ZG3ID4ga291XCA7CivlkbIgPiBzaGlcIDsKK+WRsCA+IHNoaVwgOwor5ZGvID4gaGVpXCA7CivlkakgPiBzaGlcIDsKK+WRpyA+IHRlaVwgOwor5ZGlID4gemVuXCA7CivlkaQgPiByZWlcIDsKK+WRoyA+IGJvdVwgOwor5ZGhID4gYnVuXCA7CivlkaAgPiBob25cIDsKK+WRniA+IHNoaVwgOwor5ZGIID4gdGVpXCA7CivlkYcgPiBrZWlcIDsKK+WRhSA+IGJhaVwgOwor5ZGDID4gYWt1XCA7CivlkYEgPiBraW5cIDsKK+WQvCA+IGtvdVwgOwor5ZC6ID4gdG91XCA7CivlkLEgPiBzaGlcIDsKK+WQsCA+IGtvdVwgOwor5ZCvID4ga2VpXCA7CivlkK4gPiBzZW5cIDsKK+WQrSA+IGtvdVwgOwor5ZCsID4ga2luXCA7CivlkKogPiBndXVcIDsKK+WQqSA+IGZ1blwgOwor5ZCoID4gdG9uXCA7CivlkKUgPiBob3VcIDsKK+WQpCA+IGthaVwgOwor5ZCgID4gaGFpXCA7CivlkJ8gPiBnaW5cIDsKK+WQniA+IGRvblwgOwor5ZCZID4ga3V1XCA7CivlkJggPiBnb3VcIDsKK+WQlSA+IHJ5b1wgOwor5ZCGID4geW91XCA7CivlkIUgPiB0ZW5cIDsKK+WQgiA+IGJvdVwgOwor5Y+3ID4gZ291XCA7Civlj64gPiB0ZWlcIDsKK+WPqCA+IHRvdVwgOwor5Y+mID4gcmVpXCA7Civlj58gPiBzb3VcIDsKK+WPnSA+IGtvdVwgOwor5Y+bID4gaGFuXCA7Civlj5ggPiBoZW5cIDsKK+WPkyA+IHNoaVwgOwor5Y+PID4ga2FpXCA7Civlj4cgPiB0YWlcIDsKK+WPhSA+IHNhblwgOwor5Y+EID4gc2FuXCA7Civlj4EgPiBzYW5cIDsKK+WPgCA+IHNlblwgOwor5Y69ID4gcnVpXCA7CivljrogPiBreW9cIDsKK+WOuSA+IGppdVwgOwor5Y64ID4gcmluXCA7CivljrcgPiBrb3VcIDsKK+WOtiA+IHNoaVwgOwor5Y61ID4gZ2VuXCA7CivljrIgPiByZWlcIDsKK+WOriA+IHNoaVwgOwor5Y6rID4gZ291XCA7CivljqogPiBraW5cIDsKK+WOpyA+IHRlblwgOwor5Y6hID4gZ2VuXCA7CivljpwgPiBzaGlcIDsKK+WOmSA+IHNoYVwgOwor5Y6XID4gdGVpXCA7CivljpYgPiBib3VcIDsKK+WOkyA+IGdhaVwgOwor5Y6OID4gc2hpXCA7CivljokgPiByZWlcIDsKK+WOiCA+IGthblwgOwor5Y6DID4gc2VuXCA7CivljoIgPiBrYW5cIDsKK+WNuiA+IGtpblwgOwor5Y2vID4gYm91XCA7Civlja4gPiBzaGlcIDsKK+WNrCA+IGdhdVwgOwor5Y2lID4gc2VpXCA7CivljaQgPiBzZWlcIDsKK+WNoyA+IHl1dVwgOwor5Y2eID4gaGVuXCA7CivljZ0gPiBrYW5cIDsKK+WNlSA+IHRhblwgOwor5Y2QID4gYmFuXCA7CivljYsgPiBzZWlcIDsKK+WNhSA+IHNvdVwgOwor5Y2EID4ganV1XCA7CivljL4gPiBoZW5cIDsKK+WMuCA+IGtlaVwgOwor5Yy3ID4ga3lvXCA7CivljLQgPiBzYW5cIDsKK+WMsyA+IHJlblwgOwor5YyyID4gcmVuXCA7CivljLAgPiB0YW5cIDsKK+WMryA+IHdhaVwgOwor5YyoID4gem91XCA7CivljKUgPiBoZW5cIDsKK+WMnyA+IGtvdVwgOwor5YydID4gc291XCA7CivljJggPiBkb3VcIDsKK+WMkiA+IHRvdVwgOwor5YyPID4gaG91XCA7CivljIwgPiBrb3VcIDsKK+WMiyA+IHRvdVwgOwor5YyEID4ga2FpXCA7Civli70gPiBidW5cIDsKK+WLuSA+IGhvdVwgOwor5Yu3ID4gam91XCA7Civli7UgPiByZWlcIDsKK+WLtCA+IHJ5b1wgOwor5YuzID4ga3VuXCA7Civli7IgPiBrdW5cIDsKK+WLsSA+IGJhaVwgOwor5YuvID4gdGFuXCA7Civli6wgPiBrZW5cIDsKK+WLqyA+IGhhblwgOwor5YuoID4geW91XCA7Civli6YgPiBzb3VcIDsKK+WLoSA+IGhldVwgOwor5YubID4ga3VuXCA7Civli5cgPiBib3VcIDsKK+WLlCA+IGJlblwgOwor5YuTID4ga2FpXCA7Civli5EgPiByYWlcIDsKK+WLkCA+IGJhdVwgOwor5YuPID4gaG91XCA7Civli40gPiBrZWlcIDsKK+WLjCA+IGtlblwgOwor5YuIID4geW91XCA7Civli4YgPiByb3VcIDsKK+WLhCA+IGJpblwgOwor5YuCID4ga291XCA7Civli4EgPiBrZWlcIDsKK+WKvyA+IHNlaVwgOwor5Yq+ID4gZ2FpXCA7CivlirogPiBib3VcIDsKK+WKtyA+IHlvdVwgOwor5Yq2ID4ga291XCA7CivlirUgPiBrZW5cIDsKK+WKsyA+IHJvdVwgOwor5YqyID4ga2VpXCA7Civliq8gPiBzaG9cIDsKK+WKpyA+IHNoaVwgOwor5YqlID4ga291XCA7CivliqQgPiBraW5cIDsKK+WKniA+IGhlblwgOwor5YqdID4ga2FuXCA7CivlipcgPiBzYW5cIDsKK+WKliA+IHNhblwgOwor5YqUID4ga2VuXCA7CivlipIgPiBrZW5cIDsKK+WKkSA+IHphaVwgOwor5YqOID4ga2VuXCA7CivliowgPiBrZWlcIDsKK+WKiiA+IGthaVwgOwor5YqGID4gcmVuXCA7Civlib8gPiBzb3VcIDsKK+WJvCA+IHNhblwgOwor5Ym7ID4gaHV1XCA7CivlibggPiB0YW5cIDsKK+WJtyA+IHNhblwgOwor5Ym0ID4gZ2FpXCA7CivlibMgPiB0b3VcIDsKK+WJsSA+IGtlblwgOwor5YmwID4gam91XCA7Civlia0gPiBva3VcIDsKK+WJrCA+IHRhblwgOwor5YmqID4gc2VuXCA7CivliakgPiBqb3VcIDsKK+WJpCA+IHphaVwgOwor5YmgID4ga2VpXCA7CivliZwgPiB3YW5cIDsKK+WJmiA+IHNoaVwgOwor5YmZID4gc291XCA7CivliZcgPiBzYW5cIDsKK+WJjyA+IHNvdVwgOwor5YmFID4gcm91XCA7CivliYQgPiBrZWlcIDsKK+WIuCA+IGtlblwgOwor5YiyID4ga2VpXCA7CivliLEgPiBzb3VcIDsKK+WIrCA+IHNhblwgOwor5YiqID4gc2FuXCA7CivliKggPiBob3VcIDsKK+WIpyA+IGdvdVwgOwor5YiiID4gcmVpXCA7CivliKEgPiBiaW5cIDsKK+WIoCA+IHNhblwgOwor5YieID4gc2hvXCA7CivliJMgPiBndW5cIDsKK+WIkCA+IHRhblwgOwor5YiOID4gZnVuXCA7CivliIwgPiBzb25cIDsKK+WIiyA+IHNlblwgOwor5YiFID4gc291XCA7CivliIQgPiBqaW5cIDsKK+WIgiA+IHRhdVwgOwor5YiBID4gdGV1XCA7Civlh74gPiBrYW5cIDsKK+WHtyA+IGthaVwgOwor5Ye1ID4ga2FuXCA7Civlh7MgPiB0b3VcIDsKK+WHsiA+IGthblwgOwor5YexID4gZ2FpXCA7Civlh7AgPiBrb3VcIDsKK+WHriA+IGZ1dVwgOwor5YetID4gaGVpXCA7Civlh6ggPiBmdXVcIDsKK+WHpSA+IGt5b1wgOwor5YekID4gaG91XCA7Civlh6MgPiBoYW5cIDsKK+WHoiA+IGJvblwgOwor5YecID4gcmluXCA7Civlh5sgPiByaW5cIDsKK+WHmCA+IHNoaVwgOwor5YeXID4gc2FpXCA7Civlh5YgPiBqdW5cIDsKK+WHlSA+IGJlaVwgOwor5YeUID4gc2F1XCA7Civlh5EgPiBzb3VcIDsKK+WHjyA+IGdlblwgOwor5YeKID4gc2VpXCA7Civlh4ggPiBzb3VcIDsKK+WHhiA+IGp1blwgOwor5YeCID4gYmFpXCA7Civlhr8gPiBzZW5cIDsKK+WGuiA+IGJpblwgOwor5Ya4ID4gaGFuXCA7Civlhq0gPiB0YWlcIDsKK+WGqSA+IHNoYVwgOwor5YamID4ga291XCA7CivlhqUgPiBtZWlcIDsKK+WGoyA+IHNodVwgOwor5YahID4gYm91XCA7CivlhpUgPiBiZW5cIDsKK+WGkyA+IGtvdVwgOwor5YaQID4gYm91XCA7Civlho8gPiBrZWlcIDsKK+WGiyA+IGtlaVwgOwor5YaJID4gbmVuXCA7CivlhoQgPiB6ZW5cIDsKK+WGgyA+IGJvdVwgOwor5YaCID4ga2VpXCA7Civlha4gPiBrZWlcIDsKK+WFpyA+IGRhaVwgOwor5YWmID4gYm91XCA7CivlhaQgPiBrb3VcIDsKK+WFmCA+IHNoaVwgOwor5YWVID4gc2hpXCA7CivlhYogPiB0YWlcIDsKK+WEvyA+IGppblwgOwor5YS9ID4gcmFpXCA7CivlhLwgPiBnZW5cIDsKK+WEuyA+IHRvdVwgOwor5YS5ID4gc2FuXCA7CivlhLcgPiByZWlcIDsKK+WEsyA+IHNhblwgOwor5YSxID4gcm91XCA7CivlhK8gPiB0b3VcIDsKK+WEqSA+IHNoaVwgOwor5YSnID4gc2FuXCA7CivlhKUgPiBpa3VcIDsKK+WEpCA+IGhvdVwgOwor5YSjID4ga291XCA7CivlhKIgPiByeW9cIDsKK+WEoSA+IHJhaVwgOwor5YSdID4ga2VpXCA7CivlhJwgPiBkYXVcIDsKK+WEmiA+IGJvdVwgOwor5YSZID4ga2VuXCA7CivlhJYgPiByYW5cIDsKK+WElSA+IHNlaVwgOwor5YSTID4gdGFpXCA7CivlhJEgPiBnYW5cIDsKK+WEkCA+IGhpblwgOwor5YSOID4gc2FpXCA7CivlhIwgPiBrZXVcIDsKK+WEiyA+IHRhblwgOwor5YSKID4gc2hvXCA7CivlhIkgPiBrZW5cIDsKK+WEiCA+IGthaVwgOwor5YSHID4ga2VuXCA7CivlhIYgPiBrZWlcIDsKK+WEhSA+IHRvdVwgOwor5YSDID4gc2VuXCA7CivlhIIgPiBkb3VcIDsKK+WDvyA+IHNoaVwgOwor5YO8ID4gaG91XCA7Civlg7ggPiBraW5cIDsKK+WDtiA+IGJpblwgOwor5YOvID4gcmluXCA7Civlg64gPiBkb3VcIDsKK+WDrSA+IHNlblwgOwor5YOsID4gc2V1XCA7Civlg6kgPiBrYW5cIDsKK+WDqCA+IGh1blwgOwor5YOkID4gdGFuXCA7Civlg6MgPiBzZW5cIDsKK+WDoiA+IHNlblwgOwor5YOgID4gZmFuXCA7Civlg50gPiBzYW5cIDsKK+WDnCA+IHRvdVwgOwor5YOZID4ga291XCA7Civlg5cgPiByYXVcIDsKK+WDlCA+IHNvblwgOwor5YOTID4gdGFpXCA7Civlg5AgPiBzZW5cIDsKK+WDjiA+IHNlblwgOwor5YOMID4geW91XCA7Civlg4sgPiB0YW5cIDsKK+WDiiA+IHNlblwgOwor5YOJID4gc2VuXCA7Civlg4ggPiBiYW5cIDsKK+WDhiA+IHJlblwgOwor5YOEID4gaGV1XCA7Civlg4IgPiByb3VcIDsKK+WDgCA+IHRlaVwgOwor5YK6ID4gdGVpXCA7CivlgrggPiBzYXVcIDsKK+WCtSA+IHNhaVwgOwor5YKyID4gZ291XCA7CivlgrAgPiBob3VcIDsKK+WCryA+IHNvdVwgOwor5YKuID4gc291XCA7Civlgq0gPiB5b3VcIDsKK+WCqiA+IHNhblwgOwor5YKkID4gc2FpXCA7CivlgqEgPiBoZWlcIDsKK+WCnSA+IHRhblwgOwor5YKbID4geW91XCA7CivlgpogPiBrb3VcIDsKK+WCliA+IHNhdVwgOwor5YKUID4ga2VuXCA7CivlgpMgPiBzZW5cIDsKK+WCkiA+IGtlaVwgOwor5YKQID4ga291XCA7Civlgo8gPiB0b3VcIDsKK+WCjiA+IHRlblwgOwor5YKLID4ga2F1XCA7CivlgocgPiBqb3VcIDsKK+WChiA+IGdlblwgOwor5YKCID4gY2hpXCA7CivlgoEgPiBzb3VcIDsKK+WCgCA+IGthaVwgOwor5YG7ID4gcm91XCA7CivlgbogPiBzYW5cIDsKK+WBuCA+IHRvdVwgOwor5YGzID4gdGFuXCA7CivlgbIgPiBzaGlcIDsKK+WBrSA+IGJlblwgOwor5YGsID4gc291XCA7CivlgasgPiBjaGlcIDsKK+WBqSA+IGh1dVwgOwor5YGoID4gc2hpXCA7CivlgaYgPiBzaG9cIDsKK+WBoiA+IHNldVwgOwor5YGhID4gdGFuXCA7CivlgZ4gPiB5b3VcIDsKK+WBnSA+IGhhaVwgOwor5YGbID4gc291XCA7CivlgZkgPiB0ZWlcIDsKK+WBmCA+IGthblwgOwor5YGXID4gc2VpXCA7CivlgZYgPiBzaGFcIDsKK+WBlSA+IGthaVwgOwor5YGTID4gYWt1XCA7CivlgZIgPiB0b3VcIDsKK+WBkSA+IGh1dVwgOwor5YGQID4gZ2FuXCA7CivlgY8gPiBoZW5cIDsKK+WBjiA+IHdhaVwgOwor5YGNID4gdGVpXCA7CivlgYsgPiBoZWlcIDsKK+WBhCA+IGRhblwgOwor5YGCID4gc2VuXCA7CivlgLwgPiBjaGlcIDsKK+WAtyA+IGRhaVwgOwor5YC0ID4gaG9uXCA7CivlgLMgPiBzaGlcIDsKK+WAsiA+IHRvdVwgOwor5YCxID4ga29uXCA7CivlgKsgPiByaW5cIDsKK+WAqiA+IGdlaVwgOwor5YCoID4ga3lvXCA7CivlgKcgPiBzb3VcIDsKK+WApSA+IGtvdVwgOwor5YCjID4gaG91XCA7CivlgJ4gPiBrZWlcIDsKK+WAnSA+IGthblwgOwor5YCXID4gaG91XCA7CivlgJYgPiBrb3VcIDsKK+WAlSA+IHN1aVwgOwor5YCTID4gdGFuXCA7CivlgJEgPiBtb25cIDsKK+WAjiA+IHRlblwgOwor5YCNID4gYmFpXCA7CivlgIogPiBzb3VcIDsKK+WAiCA+IHJhaVwgOwor5YCFID4gc2FpXCA7CivlgIQgPiBrb3VcIDsKK+WAgiA+IGhlaVwgOwor5YCBID4gY2hpXCA7Civkv78gPiBjaGlcIDsKK+S/vSA+IGtpblwgOwor5L+8ID4gaWt1XCA7Civkv7ggPiBob3VcIDsKK+S/tCA+IHNlblwgOwor5L+zID4gaGFpXCA7Civkv7IgPiBrb3VcIDsKK+S/qyA+IHJhaVwgOwor5L+fID4gc2hpXCA7Civkv5wgPiBoZWlcIDsKK+S/myA+IGJlblwgOwor5L+WID4gaGFpXCA7Civkv5QgPiBrZW5cIDsKK+S/kyA+IGdhdVwgOwor5L+SID4ga29uXCA7Civkv5EgPiB5b3VcIDsKK+S/jyA+IHNldVwgOwor5L+KID4ganVuXCA7Civkv4YgPiBzaG9cIDsKK+S/gCA+IHRhaVwgOwor5L6+ID4ga291XCA7Civkvr0gPiBkYW5cIDsKK+S+uSA+IHRlaVwgOwor5L6rID4gbmVpXCA7CivkvqMgPiByeW9cIDsKK+S+nyA+IHNlblwgOwor5L6XID4gdG91XCA7CivkvpYgPiByb25cIDsKK+S+lCA+IGJvdVwgOwor5L6RID4geXV1XCA7Civkvo8gPiBzaHVcIDsKK+S+iiA+IGtvdVwgOwor5L6IID4gc2hpXCA7CivkvoUgPiBrYWlcIDsKK+S+gyA+IGthblwgOwor5L6AID4ga2VpXCA7Civkvb0gPiBzaGlcIDsKK+S9vCA+IGtvdVwgOwor5L26ID4gc2VuXCA7CivkvbcgPiBrb3VcIDsKK+S9sSA+IGhvdVwgOwor5L2vID4geW91XCA7Civkva4gPiBrb3VcIDsKK+S9qSA+IGhhaVwgOwor5L2jID4geW91XCA7CivkvaIgPiBreW9cIDsKK+S9oSA+IGtlblwgOwor5L2fID4gdG91XCA7CivkvZ4gPiBuZWlcIDsKK+S9nSA+IGtvdVwgOwor5L2YID4gc2hhXCA7CivkvZEgPiB5dXVcIDsKK+S9jCA+IHNoaVwgOwor5L2JID4ga3lvXCA7CivkvYYgPiB0YW5cIDsKK+S9giA+IHlhaVwgOwor5L2AID4gc2hpXCA7CivkvLsgPiBob3VcIDsKK+S8uSA+IHNob1wgOwor5Ly2ID4gcmVpXCA7CivkvK0gPiBrZW5cIDsKK+S8oyA+IGtlblwgOwor5LyYID4geXV1XCA7CivkvJcgPiBnaW5cIDsKK+S8kyA+IGhhaVwgOwor5LySID4ga2luXCA7CivkvIkgPiBrb3VcIDsKK+S8hyA+IGVraVwgOwor5LyFID4gdG9uXCA7CivkvIIgPiBoYWlcIDsKK+S7vyA+IGhvdVwgOwor5Lu+ID4gdGVpXCA7Civku70gPiBoaW5cIDsKK+S7tyA+IGthaVwgOwor5LuxID4ga2VuXCA7Civku68gPiBzb3VcIDsKK+S7rSA+IGppblwgOwor5LugID4ga2FuXCA7Civku58gPiBzZW5cIDsKK+S7niA+IGppblwgOwor5LucID4ga291XCA7Civku5ogPiBrZW5cIDsKK+S7kCA+IHNhblwgOwor5LuOID4ganV1XCA7Civku40gPiBqb3VcIDsKK+S7gyA+IHRlaVwgOwor5LuAID4ganV1XCA7Civkur4gPiBib3VcIDsKK+S6tyA+IHJlblwgOwor5Lq2ID4gdGFuXCA7CivkurAgPiBrZWlcIDsKK+S6oiA+IGtvdVwgOwor5LqgID4gdG91XCA7Civkup0gPiBzZWlcIDsKK+S6lyA+IHNhaVwgOwor5LqWID4gc2hpXCA7CivkuoMgPiByaW5cIDsKK+S6gSA+IGtlblwgOwor5Lm/ID4gY2hpXCA7CivkubkgPiBrYW5cIDsKK+S5qiA+IGRvdVwgOwor5LmpID4ga2VpXCA7CivkuaggPiBzaGlcIDsKK+S5oiA+IGdhaVwgOwor5LmWID4ga2FpXCA7CivkuZMgPiBoYXVcIDsKK+S5kiA+IGhlaVwgOwor5LmRID4gZ2luXCA7CivkuYIgPiBnYWlcIDsKK+S4viA+IGt5b1wgOwor5Li9ID4gcmVpXCA7CivkuLYgPiBjaHVcIDsKK+S4syA+IHNhblwgOwor5LixID4ga2FuXCA7CivkuLAgPiBob3VcIDsKK+S4ryA+IGthaVwgOwor5LioID4ga29uXCA7CivkuKMgPiB5dXVcIDsKK+S4mSA+IGhlaVwgOwor5LiXID4gc2VpXCA7CivkuJMgPiBzZW5cIDsKK+S4kCA+IGthaVwgOwor5LiPID4gYmVuXCA7CivkuIIgPiBrb3VcIDsKK+i/piA+IGthXCA7Civnn6IgPiB5YVwgOwor5b+cID4gb3VcIDsKK+W/jCA+IGtpXCA7Civovq0gPiBqaVwgOwor5b6uID4gYmlcIDsKK+W+oSA+IGdvXCA7Civovp4gPiBqaVwgOwor5b6SID4gdG9cIDsKK+W+kCA+IGpvXCA7CivlvoMgPiBvdVwgOwor5b6AID4gb3VcIDsKK+ecvCA+IG1lXCA7CivovKogPiB3YVwgOwor5bylID4gbWlcIDsKK+ecnyA+IG1hXCA7CivovJ0gPiBraVwgOwor5byVID4gaW5cIDsKK+W8kCA+IG5pXCA7Civlu7YgPiBlblwgOwor55uuID4gbWVcIDsKK+i6qyA+IG1pXCA7CivluqsgPiBrb1wgOwor5bqnID4gemFcIDsKK+W6piA+IGRvXCA7CivlupwgPiBmdVwgOwor5bqHID4gaGlcIDsKK+i4sCA+IHl1XCA7CivluLAgPiBraVwgOwor55e6ID4gaGlcIDsKK+i3ryA+IHJvXCA7Civlt64gPiBzYVwgOwor6LeqID4ga2lcIDsKK+W3qCA+IGtvXCA7Civlt6MgPiBzdVwgOwor5beeID4gc3VcIDsKK+eXmyA+IHRzXCA7CivnlrIgPiBoaVwgOwor55aRID4gZ2lcIDsKK+eWjiA+IHNvXCA7CivnlosgPiBzb1wgOwor6LW3ID4ga2lcIDsKK+i1tCA+IGZ1XCA7CivnlLAgPiB0YVwgOwor55SlID4gb2lcIDsKK+i0lCA+IGhpXCA7CivosrsgPiBoaVwgOwor6LK0ID4ga2lcIDsKK+eSsCA+IHdhXCA7CivosqggPiBrYVwgOwor6LKgID4gZnVcIDsKK+ixqyA+IHlvXCA7CivlsaUgPiByaVwgOwor5bGTID4ga2lcIDsKK+WxiyA+IHlhXCA7CivosLcgPiB5YVwgOwor55CGID4gcmlcIDsKK+WvnSA+IG5lXCA7Civlr5AgPiBiaVwgOwor54+IID4ga2FcIDsKK+WvhCA+IGtpXCA7CivlrrYgPiBrZVwgOwor5a6fID4gbWlcIDsKK+WunCA+IGdpXCA7CivnjosgPiBvdVwgOwor6K29ID4geW9cIDsKK+ittyA+IGdvXCA7CivorbAgPiBnaVwgOwor6K2sID4gaGlcIDsKK+WtoyA+IGtpXCA7CivlrZcgPiBqaVwgOwor5a2QID4gbmVcIDsKK+WsiSA+IGtpXCA7CivlqrwgPiBvdVwgOwor6KqyID4ga2FcIDsKK+iqpCA+IGdvXCA7CivniqAgPiBnaVwgOwor6KqeID4gZ29cIDsKK+WqmiA+IGJpXCA7CivoqokgPiB5b1wgOwor6KqHID4ga29cIDsKK+WppiA+IGZ1XCA7CivlqaIgPiBoaVwgOwor5amJID4gZW5cIDsKK+iotCA+IHNvXCA7CivoqJ0gPiBnYVwgOwor6KiYID4ga2lcIDsKK+eIkCA+IHJvXCA7Civnh58gPiBlaVwgOwor5aasID4gdG9cIDsKK+WmkyA+IGtpXCA7CivoposgPiBtaVwgOwor5aaCID4gam9cIDsKK+WlsyA+IGpvXCA7CivopaYgPiBqdVwgOwor5aWnID4gb3VcIDsKK+WliCA+IG5hXCA7CivlpYcgPiBraVwgOwor5aSuID4gb3VcIDsKK+WkqiA+IHRhXCA7CivnhKEgPiBtdVwgOwor6KSeID4gb25cIDsKK+WkmiA+IHRhXCA7CivopJMgPiBob1wgOwor6KOzID4gbW9cIDsKK+ijoSA+IHJpXCA7Civng58gPiBlblwgOwor6KOcID4gaG9cIDsKK+WiriA+IGRhXCA7CivooqsgPiBoaVwgOwor6KGwID4gc2FcIDsKK+eBryA+IGhpXCA7CivngasgPiBoaVwgOwor6KGeID4gZWlcIDsKK+ihmyA+IGVpXCA7CivloZcgPiB0b1wgOwor5aC1ID4gdG9cIDsKK+WgtCA+IGJhXCA7CivngKwgPiBzZVwgOwor5aCVID4gZGFcIDsKK+ifsiA+IGtpXCA7Civmv6EgPiBqdVwgOwor6J66ID4gcmFcIDsKK+WdkCA+IHphXCA7CivlnJYgPiB0b1wgOwor5ryUID4gZW5cIDsKK+WckyA+IGVuXCA7CivlnIMgPiBob1wgOwor5Zu6ID4ga29cIDsKK+WbsyA+IHp1XCA7Civlm6AgPiBpblwgOwor6buEID4ga2lcIDsKK+a6ryA+IHNvXCA7CivomoogPiBrYVwgOwor6bm9ID4gZW5cIDsKK+a5ryA+IHl1XCA7CivmuKkgPiBvblwgOwor5ZipID4ga2FcIDsKK+a4oSA+IHRvXCA7CivpuJogPiBvdVwgOwor5ZiUID4gb3VcIDsKK+iYhyA+IHNvXCA7Civpt7ogPiByb1wgOwor5re5ID4gZW5cIDsKK+a3qyA+IGluXCA7Civll58gPiBhYVwgOwor6JeNID4gYWlcIDsKK+a2uCA+IGtvXCA7CivllqogPiBtb1wgOwor5ZacID4ga2lcIDsKK+a1riA+IGZ1XCA7CivptaEgPiBidVwgOwor5rS+ID4gaGFcIDsKK+a0qSA+IGVpXCA7Civms7MgPiBlaVwgOwor5ZOpID4gcmlcIDsKK+WToSA+IGluXCA7Civms4QgPiBlaVwgOwor5ZOAID4gYWlcIDsKK+ayvyA+IGVuXCA7CivmsrsgPiBqaVwgOwor5rKZID4gc2FcIDsKK+WSjCA+IHdhXCA7Civmsb0gPiBraVwgOwor5ZG8ID4ga29cIDsKK+axsCA+IHRhXCA7CivlkaogPiBqdVwgOwor6JGhID4gaG9cIDsKK+axnSA+IGpvXCA7CivokYkgPiBoYVwgOwor5ZGJID4gZ29cIDsKK+WQviA+IGdvXCA7CivmsLggPiBlaVwgOwor5rC3ID4gaGlcIDsKK+WQpiA+IGhpXCA7CivmsKMgPiBraVwgOwor5rCXID4ga2lcIDsKK+WQkCA+IHRvXCA7CivlkI8gPiByaVwgOwor5ZCNID4gbmFcIDsKK+WPryA+IGthXCA7Civoj5wgPiBuYVwgOwor5q+bID4ga2VcIDsKK+WPmSA+IGpvXCA7Civmr5ggPiBoaVwgOwor5Y+XID4ganVcIDsKK+avlCA+IGhpXCA7Civoj5MgPiBrYVwgOwor5q+GID4gb3VcIDsKK+iOqyA+IGJvXCA7CivmrbggPiBraVwgOwor6I23ID4gbmlcIDsKK+mtryA+IHJvXCA7CivljbEgPiBraVwgOwor5q2vID4gaGFcIDsKK+atqSA+IGhvXCA7CivmraYgPiBidVwgOwor5q2fID4geW9cIDsKK+mtmCA+IGVuXCA7CivprZQgPiBtYVwgOwor5Y2RID4gaGlcIDsKK+atkCA+IG91XCA7CivprYUgPiBtaVwgOwor6Iy5ID4gam9cIDsKK+asuiA+IGdpXCA7CivmrLcgPiBraVwgOwor5YyWID4ga2FcIDsKK+WMjSA+IGhvXCA7CivojIQgPiBrYVwgOwor6IyCID4gbW9cIDsKK+iLsSA+IGVpXCA7Civoi6YgPiBrdVwgOwor6IubID4ga2FcIDsKK+WLmSA+IG11XCA7Civoi5EgPiBlblwgOwor6Iq9ID4gbWVcIDsKK+WKqiA+IGRvXCA7CivliqAgPiBrYVwgOwor5qqQID4gZW5cIDsKK+aqjiA+IGdvXCA7CivpqYUgPiBrdVwgOwor5qi5ID4ganVcIDsKK+WIqSA+IHJpXCA7CivmqKEgPiBtb1wgOwor6IieID4gYnVcIDsKK+iIhyA+IHlvXCA7Civlh7ogPiBkZVwgOwor6IelID4gZ2FcIDsKK+mniCA+IGt1XCA7Civpp4YgPiBrdVwgOwor6aeEID4gdGFcIDsKK+WGtiA+IHlhXCA7CivohpogPiBmdVwgOwor5qaOID4ga2FcIDsKK+WFtyA+IGd1XCA7CivlhbYgPiBraVwgOwor6aWRID4ga2lcIDsKK+iFkSA+IGZ1XCA7CivlhZIgPiBqaVwgOwor6IWQID4gZnVcIDsKK+WFkCA+IGppXCA7CivppJggPiB5b1wgOwor6aSTID4gZ2FcIDsKK+WEgCA+IGdpXCA7Civlg7kgPiBrYVwgOwor6aOyID4gaW5cIDsKK+mjriA+IGluXCA7Civpo6IgPiBraVwgOwor6IOhID4ga29cIDsKK+WDniA+IGdpXCA7Civpo5sgPiBoaVwgOwor5qOEID4ga2lcIDsKK+WCmSA+IGJpXCA7CivpoacgPiBrb1wgOwor5YGaID4gc2FcIDsKK+mhhiA+IGthXCA7CivmoYggPiBhblwgOwor5YGHID4ga2FcIDsKK+aguSA+IG5lXCA7CivlgLYgPiBrdVwgOwor5YCkID4gbmVcIDsKK+WAmiA+IGtpXCA7CivpoJcgPiBoYVwgOwor6aCQID4geW9cIDsKK+WAiyA+IGtvXCA7CivmoIQgPiBlaVwgOwor6Z+7ID4gaW5cIDsKK+afuyA+IHNhXCA7Civpn7MgPiBuZVwgOwor57+zID4gZWlcIDsKK+S/ryA+IGZ1XCA7Civkv50gPiBob1wgOwor5769ID4gd2FcIDsKK+aetiA+IGthXCA7Civmnq8gPiBrb1wgOwor5L6uID4gYnVcIDsKK+e+qSA+IGdpXCA7CivmnpwgPiBrYVwgOwor5L6YID4gdGFcIDsKK+e+jiA+IGJpXCA7CivnvoUgPiByYVwgOwor5725ID4gcmlcIDsKK+e9tSA+IGJhXCA7CivpnaEgPiBoaVwgOwor6Z2eID4gaGlcIDsKK+S9mSA+IHlvXCA7CivpnZIgPiBhb1wgOwor5L2QID4gc2FcIDsKK+S8vCA+IG5pXCA7CivmnKogPiBtaVwgOwor5pyoID4ga2lcIDsKK+acnyA+IGtpXCA7CivkvI4gPiBnaVwgOwor5LyNID4gZ29cIDsKK+S8gSA+IGtpXCA7Civmm7MgPiBlaVwgOwor6ZuiID4gcmlcIDsKK+S7oyA+IHlvXCA7Civku5ggPiBmdVwgOwor6ZqxID4gaW5cIDsKK+aariA+IGJvXCA7CivpmqAgPiBpblwgOwor5LqbID4gc2FcIDsKK+aalyA+IGFuXCA7CivkupQgPiBnb1wgOwor5LqSID4gZ29cIDsKK+S6kSA+IHVuXCA7CivkuowgPiBuaVwgOwor5LqIID4geW9cIDsKK+e5uyA+IGp1XCA7Civmma4gPiBmdVwgOwor6ZmkID4gam9cIDsKK+mZoiA+IGluXCA7CivkuZ0gPiBrdVwgOwor6ZmEID4gZnVcIDsKK+S5gyA+IG5vXCA7CivpmYAgPiBkYVwgOwor5Li5ID4gbmlcIDsKK+aYryA+IHplXCA7CivmmKAgPiBlaVwgOwor5LiWID4geW9cIDsKK+S4jiA+IHlvXCA7CivkuI0gPiBmdVwgOwor5LiJID4gbWlcIDsKK+aXuiA+IG91XCA7Civml6UgPiBoaVwgOwor5peiID4ga2lcIDsKK+e2uiA+IGtpXCA7CivmlpcgPiB0b1wgOwor6ZaTID4gbWFcIDsKK+aWkCA+IGhpXCA7CivmlbcgPiBmdVwgOwor57SgID4gc29cIDsKK+e0gCA+IGtpXCA7Civmk6wgPiBnaVwgOwor5pKrID4gYnVcIDsKK+aRqSA+IG1hXCA7CivnsZQgPiBzdVwgOwor57C/ID4gYm9cIDsKK+ewtyA+IGVuXCA7CivmjqogPiBzb1wgOwor5o6pID4gZW5cIDsKK+aOmyA+IGthXCA7CivmjoggPiBqdVwgOwor566HID4ga2FcIDsKK+aNlyA+IGhvXCA7CivmjZUgPiBob1wgOwor5oyoID4gYWlcIDsKK+espiA+IGZ1XCA7CivmjIEgPiBqaVwgOwor6YutID4gZWlcIDsKK+mLqiA+IGhvXCA7CivmirwgPiBvdVwgOwor56q6ID4ga2lcIDsKK+eqtiA+IGt1XCA7CivmiqsgPiBoaVwgOwor5oqSID4gam9cIDsKK+aJuSA+IGhpXCA7CivmibYgPiBmdVwgOwor5omTID4gZGFcIDsKK+epjyA+IG9uXCA7CivmiYsgPiB0ZVwgOwor56mCID4gaG9cIDsKK+eovCA+IGthXCA7CivmiLggPiB0b1wgOwor5oiyID4gZ2lcIDsKK+aIryA+IGdpXCA7Civmh7wgPiBrdVwgOwor56eYID4gaGlcIDsKK+enkSA+IGthXCA7Civph44gPiBub1wgOwor6YeMID4gcmlcIDsKK+elliA+IHNvXCA7CivnpZUgPiBoaVwgOwor5oWVID4gYm9cIDsKK+eliCA+IGtpXCA7CivmhYcgPiBpblwgOwor5oSbID4gYWlcIDsKK+aEmiA+IGd1XCA7CivmhIkgPiB5dVwgOwor5oSIID4geXVcIDsKK+aDuSA+IGphXCA7Civpg6ggPiBidVwgOwor56OoID4gbWFcIDsKK+aCuCA+IGtpXCA7CivmgrIgPiBoaVwgOwor6YKjID4gZGFcIDsKK+aCnyA+IGdvXCA7Civpgb8gPiBoaVwgOwor5oGpID4gb25cIDsKK+mBjiA+IGthXCA7CivpgYsgPiB1blwgOwor56C0ID4gaGFcIDsKK+aAqCA+IGVuXCA7CivmgJYgPiBmdVwgOwor6YCUID4gdG9cIDsKK+aAkiA+IGRvXCA7CivpvqIgPiBrYVwgOwor6b6cID4ga2lcIDsKK+m+kSA+IGVuXCA7Civpva4gPiBnaVwgOwor6b2fID4gc29cIDsKK+m9liA+IGdhXCA7CivpvYcgPiBzYVwgOwor6b2GID4gb3VcIDsKK+m8vSA+IGd1XCA7CivpvLkgPiBlblwgOwor6by0ID4gZW5cIDsKK+m8ryA+IGdvXCA7CivpvJQgPiBrb1wgOwor6byJID4gdGFcIDsKK+m7vCA+IGhvXCA7Civpu7ggPiByb1wgOwor6buvID4gYW5cIDsKK+m7rSA+IGVuXCA7Civpu6QgPiBlblwgOwor6buhID4gZW5cIDsKK+m7nyA+IGVpXCA7Civpur4gPiBraVwgOwor6bq8ID4gbWFcIDsKK+m6uCA+IGZ1XCA7CivpuqwgPiBmdVwgOwor6bqkID4gc29cIDsKK+m6kiA+IGtpXCA7CivpuowgPiBndVwgOwor6bqLID4gYmlcIDsKK+m6hCA+IHNvXCA7CivpuoIgPiBraVwgOwor6bqBID4gc29cIDsKK+m5uiA+IHNhXCA7CivpubUgPiByb1wgOwor6bmfID4gb3VcIDsKK+m5gCA+IGJ1XCA7CivpuJ0gPiByaVwgOwor6bicID4ga3VcIDsKK+m4lSA+IHJvXCA7CivpuJIgPiB5b1wgOwor6bewID4gZW5cIDsKK+m3lyA+IG91XCA7Civpt5YgPiBlaVwgOwor6beDID4gYW5cIDsKK+m2siA+IG91XCA7Civptq8gPiBvdVwgOwor6baYID4ga29cIDsKK+m2lSA+IGFuXCA7CivptbogPiB5YVwgOwor6bW3ID4gZW5cIDsKK+m1ryA+IGhpXCA7CivptaogPiBhblwgOwor6bWeID4gZ2FcIDsKK+m1nSA+IGdhXCA7CivptZAgPiBidVwgOwor6bS9ID4gam9cIDsKK+m0vCA+IHJvXCA7CivptLMgPiBhblwgOwor6bSvID4gamlcIDsKK+m0oyA+IGtvXCA7CivptJ0gPiBrdVwgOwor6bSbID4gZW5cIDsKK+m0lSA+IHRhXCA7CivptJEgPiBkb1wgOwor6bO2ID4gZW5cIDsKK+mzrCA+IGZ1XCA7Civps6cgPiBmdVwgOwor6bOBID4gb25cIDsKK+myjyA+IGhpXCA7CivpsoogPiBzYVwgOwor6bGrID4gYWlcIDsKK+mwoiA+IGJhXCA7CivpsJsgPiBvblwgOwor6bCWID4gdGFcIDsKK+mwiyA+IGVuXCA7Civpr6EgPiBoaVwgOwor6a+dID4ga29cIDsKK+mviyA+IHNhXCA7Civpr4YgPiBob1wgOwor6a67ID4gc2FcIDsKK+murCA+IGhvXCA7Civprp8gPiBhblwgOwor6a6eID4gamlcIDsKK+mujSA+IGhpXCA7CivprocgPiBiaVwgOwor6a6AID4gdGFcIDsKK+mtsiA+IHJvXCA7Civpra4gPiBoaVwgOwor6a2mID4gc2FcIDsKK+mtlSA+IGtpXCA7CivprY8gPiBnaVwgOwor6a2MID4ga2lcIDsKK+msvSA+IGJpXCA7CivprLkgPiBraVwgOwor6ay2ID4ga2lcIDsKK+mstCA+IGZ1XCA7CivprJAgPiBraVwgOwor6ayNID4ga29cIDsKK+msjCA+IHRhXCA7CivprIEgPiByaVwgOwor6au/ID4gc2FcIDsKK+mrvSA+IHNhXCA7Civpq7UgPiBqaVwgOwor6auyID4gaGlcIDsKK+mrrCA+IGhpXCA7Civpq5cgPiByb1wgOwor6auDID4gZ3VcIDsKK+mrgCA+IGhpXCA7CivpqrsgPiBrYVwgOwor6amqID4gcmlcIDsKK+mppSA+IGtpXCA7CivpqYogPiBrYVwgOwor6ai+ID4gcmFcIDsKK+mopyA+IGthXCA7CivpqKQgPiBraVwgOwor6aiiID4ga2FcIDsKK+moliA+IGJ1XCA7CivpqJEgPiBoaVwgOwor6aiPID4ga2lcIDsKK+mojiA+IGtpXCA7Civpp7AgPiBpblwgOwor6aesID4gamlcIDsKK+mnoSA+IGJhXCA7Civpp54gPiBkYVwgOwor6aedID4gdGFcIDsKK+mnmSA+IGZ1XCA7Civpp5UgPiBnYVwgOwor6aeTID4gaGlcIDsKK+mnkSA+IGRvXCA7Civppr8gPiByb1wgOwor6aaxID4gdGFcIDsKK+mmnyA+IHRvXCA7CivpppcgPiBraVwgOwor6aWgID4gcmFcIDsKK+mlnCA+IGVuXCA7CivppYsgPiBraVwgOwor6aWHID4geW9cIDsKK+mlgiA+IHVuXCA7CivppL0gPiBraVwgOwor6aS8ID4ga2lcIDsKK+mksiA+IGVpXCA7CivppKwgPiBrb1wgOwor6aSrID4gdW5cIDsKK+mkoSA+IGFuXCA7CivppJwgPiBrYVwgOwor6aSUID4gaG9cIDsKK+mkhyA+IHRvXCA7Civpo6sgPiB5b1wgOwor6aK2ID4ga3VcIDsKK+miqyA+IGZ1XCA7CivpopUgPiBlaVwgOwor6aGxID4gcm9cIDsKK+mhrCA+IGp1XCA7CivpoZcgPiBnaVwgOwor6aC1ID4gaW5cIDsKK+mgtCA+IGVpXCA7CivpoKsgPiBmdVwgOwor6aCOID4ga2lcIDsKK+mgjSA+IGdpXCA7Civpn7ogPiBlaVwgOwor6Z+1ID4gaW5cIDsKK+mfniA+IG9uXCA7Civpn5cgPiB1blwgOwor6Z6/ID4ga2lcIDsKK+meviA+IGthXCA7CivpnrwgPiBraVwgOwor6Z61ID4gYWlcIDsKK+mejSA+IGFuXCA7CivpnosgPiBhaVwgOwor6Z6FID4gb3VcIDsKK+megSA+IGhpXCA7Civpnb8gPiBvdVwgOwor6Z27ID4gc29cIDsKK+mdtyA+IGluXCA7CivpnbYgPiBoYVwgOwor6Z2JID4gYWlcIDsKK+mcqiA+IGluXCA7CivpnKMgPiBpblwgOwor6ZyPID4gaGlcIDsKK+mcgCA+IGp1XCA7Civpm7ogPiBtdVwgOwor6ZuFID4gZ2FcIDsKK+masyA+IGtpXCA7CivpmqkgPiBvdVwgOwor6ZqYID4gYWlcIDsKK+malSA+IGluXCA7CivpmpAgPiBpblwgOwor6ZqLID4gdGFcIDsKK+magiA+IGluXCA7CivpmoEgPiBlblwgOwor6Zm7ID4gaW5cIDsKK+mZtCA+IGhpXCA7CivpmZIgPiBraVwgOwor6ZmPID4gdGFcIDsKK+mZgiA+IGhhXCA7CivpmYEgPiB0YVwgOwor6Zi9ID4gZW5cIDsKK+mYvCA+IHNvXCA7CivpmLsgPiBzb1wgOwor6ZilID4gaW5cIDsKK+mYnCA+IGZ1XCA7CivpmIcgPiB0b1wgOwor6ZeeID4ga25cIDsKK+mXmiA+IGtpXCA7Civpl40gPiB0b1wgOwor6ZeJID4gaW5cIDsKK+mWuyA+IGVuXCA7CivplrkgPiBlblwgOwor6ZatID4gcm9cIDsKK+mWnyA+IGhpXCA7Civplb4gPiBiaVwgOwor6ZG8ID4gcmFcIDsKK+mRqiA+IHJvXCA7CivpkJYgPiBraVwgOwor6Y+WID4gb3VcIDsKK+mPjSA+IHJhXCA7Civpj4EgPiBzYVwgOwor6Y62ID4ga2FcIDsKK+mOtSA+IGthXCA7CivpjqMgPiBlaVwgOwor6Y6IID4gc2FcIDsKK+mOgiA+IGJpXCA7CivpjoEgPiB5YVwgOwor6Y26ID4gdGFcIDsKK+mNnCA+IGthXCA7CivpjY0gPiB0b1wgOwor6Y2IID4gZWlcIDsKK+mMuyA+IGJ1XCA7CivpjK4gPiBrb1wgOwor6YykID4ga2lcIDsKK+mMoSA+IGtpXCA7CivpjI0gPiBoaVwgOwor6Yu6ID4gZW5cIDsKK+mLsCA+IHJpXCA7Civpi6MgPiB5YVwgOwor6YuYID4ga2FcIDsKK+mLhiA+IGluXCA7CivpirwgPiBzYVwgOwor6YqzID4gZWlcIDsKK+mKqCA+IGFuXCA7Civpip8gPiBzYVwgOwor6YmgID4gZWlcIDsKK+mJjSA+IGhpXCA7CivpiLkgPiBoaVwgOwor6Yi3ID4ga29cIDsKK+mIqSA+IHJvXCA7CivpiKYgPiB0YVwgOwor6YilID4ga2FcIDsKK+mInSA+IGluXCA7CivpiJggPiBnaVwgOwor6YiHID4gaHVcIDsKK+mIhiA+IGVuXCA7CivpiIAgPiBoYVwgOwor6Ye5ID4gam9cIDsKK+mHtyA+IHRvXCA7Civph7UgPiBzYVwgOwor6YehID4gZnVcIDsKK+mHkCA+IHJpXCA7Civphr8gPiBiaVwgOwor6Ya8ID4gZW5cIDsKK+mGqCA+IHJpXCA7CivphqEgPiBzYVwgOwor6YaeID4gdW5cIDsKK+mGliA+IHVuXCA7CivphpAgPiBrb1wgOwor6YaDID4gZW5cIDsKK+mFuiA+IGhvXCA7CivphbQgPiB0b1wgOwor6YWzID4gaW5cIDsKK+mFpSA+IHNvXCA7CivphaQgPiBrb1wgOwor6YWiID4gc3VcIDsKK+mFoSA+IHRhXCA7CivphZcgPiBrdVwgOwor6YWTID4gZW5cIDsKK+mFiCA+IHJpXCA7CivphLEgPiBoYVwgOwor6YSiID4gZW5cIDsKK+mEoCA+IGtvXCA7CivphJwgPiBodVwgOwor6YSWID4gdW5cIDsKK+mEiCA+IGtpXCA7CivphIYgPiB1blwgOwor6YSFID4gZ3VcIDsKK+mDvyA+IGJpXCA7Civpg74gPiBlblwgOwor6YO2ID4gYnVcIDsKK+mDqyA+IGhpXCA7Civpg6IgPiBlaVwgOwor6YObID4gZnVcIDsKK+mDmSA+IGh1XCA7CivpgrMgPiBoaVwgOwor6YKQID4gcmlcIDsKK+mCjyA+IHJhXCA7CivpgocgPiBqaVwgOwor6YGhID4gc29cIDsKK+mBkCA+IGthXCA7CivpgL4gPiB5dVwgOwor6YC6ID4gZW5cIDsKK+mAtSA+IGtpXCA7CivpgJggPiBnaVwgOwor6YCLID4gaG9cIDsKK+i/sSA+IHRhXCA7Civov6wgPiBvdVwgOwor6L+pID4gamlcIDsKK+i/lSA+IGdvXCA7Civov5MgPiBnYVwgOwor6L+QID4gdW5cIDsKK+i/iyA+IG91XCA7CivovqQgPiBqaVwgOwor6L6dID4gamlcIDsKK+i9pCA+IHJvXCA7CivovaEgPiBoaVwgOwor6L2dID4geW9cIDsKK+i9nCA+IGppXCA7CivovYUgPiBlblwgOwor6L2AID4gb25cIDsKK+i8uCA+IHl1XCA7CivovKAgPiBrYVwgOwor6LyUID4gZnVcIDsKK+i8hSA+IHJvXCA7CivovIAgPiBqaVwgOwor6Lu7ID4ga2FcIDsKK+i7sSA+IGtvXCA7Civou64gPiBvdVwgOwor6LuMID4ga2lcIDsKK+i7gyA+IHRhXCA7Civou4AgPiBrdVwgOwor6LqyID4gdGFcIDsKK+i6sSA+IHRhXCA7Civouq8gPiBrdVwgOwor6LqbID4gZWlcIDsKK+i6lyA+IGVpXCA7CivouZ4gPiBraVwgOwor6LmJID4gc2FcIDsKK+i4vSA+IGt1XCA7CivouLcgPiB0YVwgOwor6LimID4ga2lcIDsKK+i4oCA+IGVuXCA7CivouJEgPiBraVwgOwor6Le/ID4gdG9cIDsKK+i3vSA+IGtpXCA7Civot7ogPiB0YVwgOwor6LesID4ga2lcIDsKK+i3qCA+IGtvXCA7Civot6UgPiB0YVwgOwor6LeXID4gZnVcIDsKK+i3lCA+IGt1XCA7Civot48gPiBrYVwgOwor6LeOID4gdGFcIDsKK+i3hyA+IGVpXCA7Civot4IgPiBraVwgOwor6La6ID4gZnVcIDsKK+i1riA+IGthXCA7CivotZ8gPiBpblwgOwor6LWRID4gaGlcIDsKK+i0jyA+IGVpXCA7CivotIcgPiBpblwgOwor6LO7ID4gZnVcIDsKK+izpiA+IGZ1XCA7Civos48gPiBlaVwgOwor6LOIID4ga29cIDsKK+izgiA+IHJvXCA7Civos4EgPiBoaVwgOwor6LOAID4gZ2FcIDsKK+iysyA+IG5pXCA7Civosq4gPiBuaVwgOwor6LKUID4gaGlcIDsKK+iykCA+IHl1XCA7Civoso0gPiByaVwgOwor6LG+ID4gaGlcIDsKK+ixvCA+IGhpXCA7Civosa0gPiBrYVwgOwor6LGoID4ga2lcIDsKK+ixnSA+IGhhXCA7CivosZkgPiBnaVwgOwor6LGXID4ga2FcIDsKK+ixlCA+IGVuXCA7CivosZMgPiBlblwgOwor6LGOID4ganVcIDsKK+ixjCA+IGVuXCA7CivosYggPiBraVwgOwor6LC6ID4ga2FcIDsKK+iulCA+IGluXCA7Civoro8gPiBlaVwgOwor6K6MID4gZW5cIDsKK+iuhiA+IGVpXCA7CivoroQgPiBydVwgOwor6K2tID4ga2lcIDsKK+itnCA+IGZ1XCA7CivorZIgPiBoYVwgOwor6K2PID4ga2lcIDsKK+itjCA+IGthXCA7CivorYYgPiBraVwgOwor6K2DID4ga3VcIDsKK+itgSA+IGthXCA7CivorLwgPiBrb1wgOwor6KyzID4gb3VcIDsKK+isqCA+IGJvXCA7CivorIwgPiBrYVwgOwor6KuzID4gYW5cIDsKK+irsSA+IGtpXCA7Civoq60gPiB5dVwgOwor6KubID4geXVcIDsKK+irhiA+IGtpXCA7CivoqrkgPiBoaVwgOwor6KqnID4gaG9cIDsKK+iqoyA+IGZ1XCA7CivoqpIgPiBraVwgOwor6KqQID4gZ2FcIDsKK+iqiyA+IGtpXCA7CivoqoAgPiBqaVwgOwor6KmtID4ga2lcIDsKK+ipqyA+IHRhXCA7CivoqaEgPiBrdVwgOwor6KmgID4gZWlcIDsKK+ipmyA+IHNvXCA7CivoqZYgPiBoaVwgOwor6KmRID4gdGFcIDsKK+ipkCA+IHNhXCA7CivoqY0gPiBlaVwgOwor6KmIID4gcmlcIDsKK+ipgSA+IGtvXCA7CivoqLYgPiBrYVwgOwor6KivID4gc2FcIDsKK+iojyA+IGt1XCA7CivoqIMgPiBmdVwgOwor6KetID4ga2lcIDsKK+inmiA+IGtvXCA7Civop5UgPiBzb1wgOwor6Ka8ID4gcmFcIDsKK+imtiA+IHJhXCA7CivoprAgPiBzb1wgOwor6KasID4ga2lcIDsKK+imqSA+IHRvXCA7CivopqYgPiB5dVwgOwor6KaZID4gcmFcIDsKK+imjyA+IGtpXCA7CivopoogPiBraVwgOwor6KaJID4ga2lcIDsKK+imhyA+IGhhXCA7CivopaMgPiBoaVwgOwor6KS1ID4gcmlcIDsKK+iksiA+IGtvXCA7CivopKggPiBzYVwgOwor6KSVID4geXVcIDsKK+ijuSA+IGthXCA7Civoo7cgPiBlblwgOwor6KOoID4gaGlcIDsKK+ijnyA+IHNhXCA7Civoo5QgPiBlaVwgOwor6KOAID4gaW5cIDsKK+iivSA+IGpvXCA7Civooq4gPiBuZVwgOwor6KKZID4gaGFcIDsKK+iiiCA+IGthXCA7CivoooEgPiBlblwgOwor6KG5ID4ga2lcIDsKK+ihoiA+IGt1XCA7CivooZogPiBrb1wgOwor6KGNID4gZW5cIDsKK+ihiCA+IGppXCA7CivooLkgPiB0b1wgOwor6KCxID4ga29cIDsKK+igpyA+IHRvXCA7CivooJUgPiBkYVwgOwor6KCRID4gZWlcIDsKK+iggyA+IHJhXCA7Civon6sgPiBpblwgOwor6J+jID4ga2lcIDsKK+ifoiA+IGtpXCA7Civonr4gPiBpblwgOwor6J6eID4gYmFcIDsKK+iemCA+IGdpXCA7CivonbggPiBrYVwgOwor6J20ID4ga29cIDsKK+idryA+IGVuXCA7CivonZ0gPiBlblwgOwor6J2YID4gZW5cIDsKK+idkyA+IHl1XCA7CivonYwgPiBrYVwgOwor6Jy/ID4gZW5cIDsKK+icviA+IGthXCA7CivonLEgPiBoaVwgOwor6JyeID4ga2lcIDsKK+icmiA+IGhpXCA7CivonJIgPiBlblwgOwor6JyOID4gZW5cIDsKK+iciiA+IHJpXCA7CivonIkgPiBmdVwgOwor6JyIID4gZ29cIDsKK+ichSA+IGh1XCA7Civom74gPiBnYVwgOwor6JuEID4ga29cIDsKK+iauSA+IGh1XCA7CivomrUgPiBrYVwgOwor6JqtID4gamlcIDsKK+iaqCA+IGh1XCA7CivompwgPiBrYVwgOwor6JqaID4ga2lcIDsKK+iakyA+IGluXCA7CivompEgPiBraVwgOwor6JqNID4gaGlcIDsKK+iZuiA+IGtpXCA7CivomacgPiBraVwgOwor6JmdID4ga29cIDsKK+iZmCA+IHNhXCA7CivomZYgPiBrb1wgOwor6JmNID4ga29cIDsKK+iZgiA+IHJvXCA7CivomYEgPiBraVwgOwor6Ji/ID4gcmFcIDsKK+iYvCA+IGJpXCA7CivomLogPiByaVwgOwor6Ji2ID4gZ2lcIDsKK+iYpyA+IGt1XCA7CivomKEgPiBvdVwgOwor6JiZID4gZWlcIDsKK+iYkyA+IHNvXCA7CivomJEgPiBtYVwgOwor6JiOID4ga2lcIDsKK+iYiiA+IHVuXCA7CivomIQgPiBraVwgOwor6Je7ID4gbW9cIDsKK+iXuSA+IGFpXCA7Civol7QgPiB1blwgOwor6JemID4gYmFcIDsKK+iWvyA+IGdpXCA7CivolrcgPiBqdVwgOwor6JaXID4gZW5cIDsKK+iWhiA+IGFpXCA7CivoloAgPiB1blwgOwor6JW3ID4geW9cIDsKK+iVsCA+IHVuXCA7CivolaAgPiBqb1wgOwor6JWcID4gaGlcIDsKK+iVkyA+IHVuXCA7CivolLQgPiBtYVwgOwor6JSsID4gc29cIDsKK+iUqyA+IGVuXCA7CivolKIgPiBoYVwgOwor6JOZID4gemFcIDsKK+iTliA+IGhpXCA7Civok48gPiByYVwgOwor6JOMID4gc2FcIDsKK+iTiiA+IG91XCA7Civokr0gPiBvblwgOwor6JKxID4gaG9cIDsKK+iSqSA+IHNvXCA7Civokp4gPiByaVwgOwor6JKVID4gdW5cIDsKK+iRrSA+IGthXCA7CivokasgPiBrb1wgOwor6JGpID4gaGFcIDsKK+iRiiA+IGFuXCA7CivokYYgPiBob1wgOwor6JC4ID4geXVcIDsKK+iQtSA+IHdhXCA7CivokJMgPiBnaVwgOwor6JCGID4gaGlcIDsKK+iQgSA+IGtpXCA7Civoj7ggPiBlblwgOwor6I+0ID4gYW5cIDsKK+iPsiA+IGhpXCA7Civoj7AgPiBrb1wgOwor6I+gID4gaGFcIDsKK+iPnyA+IHRvXCA7Civoj48gPiBrYVwgOwor6I+HID4ga29cIDsKK+iPgCA+IGVuXCA7CivojrUgPiB0b1wgOwor6I6qID4gZ2FcIDsKK+iOqSA+IGh1XCA7Civojp0gPiBzYVwgOwor6I6aID4gZW5cIDsKK+iOjiA+IHNhXCA7CivojoYgPiBodVwgOwor6I6FID4gcmlcIDsKK+iNvCA+IHRvXCA7CivojbAgPiB0b1wgOwor6I2UID4gcmlcIDsKK+iNgiA+IGthXCA7CivojLUgPiBpblwgOwor6IyyID4gamlcIDsKK+iMsCA+IHl1XCA7CivojKMgPiBnb1wgOwor6IyYID4gcmlcIDsKK+iLvSA+IGtvXCA7Civoi7sgPiBmdVwgOwor6Iu0ID4gc29cIDsKK+iLpCA+IGhpXCA7Civoir4gPiBoaVwgOwor6Iq6ID4gb3VcIDsKK+iKsCA+IGtpXCA7Civoiq0gPiBiYVwgOwor6IqqID4ga2lcIDsKK+iKpiA+IHJvXCA7CivoipkgPiBmdVwgOwor6IqYID4gaGlcIDsKK+iKlCA+IGtpXCA7CivoipEgPiBraVwgOwor6IqIID4gYmFcIDsKK+iJtyA+IGVuXCA7CivoiaogPiByb1wgOwor6ImkID4gZ2lcIDsKK+iJoyA+IHJvXCA7CivoiZYgPiBzYVwgOwor6ImFID4geW9cIDsKK+iJgyA+IHJpXCA7CivoiLggPiBrYVwgOwor6IiuID4gcm9cIDsKK+iIlyA+IGhvXCA7CivoiJYgPiBob1wgOwor6IiSID4gam9cIDsKK+iIgSA+IHlvXCA7Civoh74gPiB5dVwgOwor6IeeID4ga3VcIDsKK+iHnSA+IHJhXCA7Civoh5kgPiBlblwgOwor6IeCID4gaGlcIDsKK+iGtCA+IGtvXCA7CivohqkgPiBqaVwgOwor6IaGID4gc29cIDsKK+iFtCA+IHl1XCA7CivohaEgPiByYVwgOwor6IWXID4gaGlcIDsKK+iFkyA+IGhpXCA7CivohL4gPiBoaVwgOwor6IS1ID4ga29cIDsKK+iEryA+IGhvXCA7CivohJ4gPiBzYVwgOwor6IScID4ganVcIDsKK+iDuSA+IGppXCA7Civog68gPiBrb1wgOwor6IOtID4gaW5cIDsKK+iDmSA+IHNvXCA7Civog5UgPiBodVwgOwor6IONID4ga29cIDsKK+iDiiA+IGt1XCA7CivogrkgPiBoaVwgOwor6IKeID4gc2FcIDsKK+iCmiA+IHRvXCA7Civoga0gPiBraVwgOwor6IC6ID4gdW5cIDsKK+iAtiA+IHlhXCA7CivogKEgPiBqb1wgOwor6ICeID4ga2FcIDsKK+iAmSA+IGhhXCA7CivogJggPiB1blwgOwor6ICPID4gamlcIDsKK+iAjSA+IHNhXCA7CivogIwgPiBqaVwgOwor6ICGID4ga2lcIDsKK+e/rCA+IGtpXCA7Civnv6EgPiBoaVwgOwor576yID4gZ2lcIDsKK+e+rSA+IHl1XCA7CivnvpYgPiBrb1wgOwor576LID4gYmFcIDsKK+e+iCA+IGtpXCA7CivnvocgPiBraVwgOwor576GID4gaGlcIDsKK+e9tyA+IGhpXCA7CivnvaggPiBhblwgOwor572mID4gaHVcIDsKK+e9nyA+IGtvXCA7CivnvZsgPiByb1wgOwor572YID4gZnVcIDsKK+e9jyA+IHJvXCA7CivnvYwgPiBvdVwgOwor572DID4gb3VcIDsKK+e8uyA+IGZ1XCA7CivnupMgPiBlaVwgOwor57qRID4gcm9cIDsKK+e5pyA+IHVuXCA7CivnuaUgPiBraVwgOwor57mEID4gZWlcIDsKK+e4uyA+IGJpXCA7CivnuLcgPiBydVwgOwor57ivID4gZW5cIDsKK+e4rSA+IHJpXCA7CivnuJwgPiBpblwgOwor57iVID4gdW5cIDsKK+e4iiA+IGVpXCA7CivnuIggPiBlaVwgOwor57iAID4ga2FcIDsKK+e3oyA+IGVuXCA7Civnt4sgPiBoaVwgOwor57asID4ganVcIDsKK+e2piA+IGtpXCA7Civntp4gPiB0YVwgOwor57aWID4gZW5cIDsKK+e1riA+IGpvXCA7CivntaogPiBpblwgOwor57WlID4gaGlcIDsKK+e1nSA+IGt1XCA7CivntYcgPiBrdVwgOwor57S9ID4gdGFcIDsKK+e0piA+IGhhXCA7CivntJwgPiB1blwgOwor57SXID4gc2FcIDsKK+e0lSA+IGhpXCA7Civns68gPiBkYVwgOwor57OiID4gYm9cIDsKK+eznCA+IGJpXCA7Civnsr8gPiBrYVwgOwor57KrID4gamlcIDsKK+eykCA+IHJvXCA7Civnso8gPiB0YVwgOwor57KGID4gc2FcIDsKK+eygyA+IGhpXCA7CivnsbkgPiBqb1wgOwor57GyID4geXVcIDsKK+exriA+IHJhXCA7CivnsawgPiByaVwgOwor57GdID4gZWlcIDsKK+exmiA+IHJvXCA7CivnsLggPiBoYVwgOwor57CsID4gcm9cIDsKK+ewoyA+IGtpXCA7CivnsKAgPiBodVwgOwor57CUID4gc2FcIDsKK+ewkSA+IHNhXCA7CivnsIsgPiBraVwgOwor57CEID4ga29cIDsKK+ewgiA+IGtlXCA7Civnr7YgPiBlblwgOwor56+aID4gaGlcIDsKK+evlCA+IHVuXCA7CivnrrYgPiBrb1wgOwor566lID4gaGFcIDsKK+eumyA+IGtvXCA7CivnrpUgPiBraVwgOwor566OID4ga29cIDsKK+etoCA+IGluXCA7CivnrY4gPiBqb1wgOwor56y0ID4ga2FcIDsKK+essyA+IGthXCA7CivnrK8gPiBkb1wgOwor56yfID4ga29cIDsKK+eshiA+IGhhXCA7Civnq6wgPiBrdVwgOwor56uqID4ganVcIDsKK+erqSA+IGdpXCA7Civnq5IgPiBraVwgOwor56q5ID4gZ29cIDsKK+eqsyA+IHdhXCA7CivnqqwgPiB5dVwgOwor56qqID4gd2FcIDsKK+eqqSA+IGthXCA7CivnqqAgPiBrYVwgOwor56qKID4gd2FcIDsKK+epqSA+IG9uXCA7CivnqaUgPiB5b1wgOwor56miID4gYWlcIDsKK+epliA+IGtpXCA7CivnqY4gPiBlaVwgOwor56mMID4gc29cIDsKK+eosyA+IG9uXCA7CivnqJ4gPiBrYVwgOwor56iYID4ga2lcIDsKK+eojCA+IHRvXCA7CivnqIMgPiBodVwgOwor56enID4gb3VcIDsKK+enoCA+IGhpXCA7Civnp58gPiBzb1wgOwor56eVID4gaGlcIDsKK+emviA+IGthXCA7CivnpqggPiBraVwgOwor56anID4ga2lcIDsKK+emoSA+IGJhXCA7CivnppwgPiBlaVwgOwor56aRID4gZ3VcIDsKK+emjSA+IGthXCA7CivnposgPiBpblwgOwor56W7ID4ga29cIDsKK+eluiA+IGtpXCA7CivnpZwgPiBrb1wgOwor56WaID4gc29cIDsKK+elmSA+IG1pXCA7CivnpZQgPiBodVwgOwor56WHID4ga2lcIDsKK+elgSA+IGtpXCA7CivnpKAgPiBqaVwgOwor56ScID4geW9cIDsKK+ekkiA+IGdpXCA7Civno68gPiBraVwgOwor56OkID4gaW5cIDsKK+ejoCA+IHJvXCA7Civno5IgPiBpblwgOwor56OLID4gc2FcIDsKK+ejgSA+IGppXCA7CivnorwgPiBiYVwgOwor56KsID4ga2FcIDsKK+eipCA+IGVpXCA7CivnopUgPiBraVwgOwor56KUID4gYnVcIDsKK+eihiA+IGhhXCA7CivnooEgPiBnb1wgOwor56GqID4gZ2lcIDsKK+egtSA+IG91XCA7CivnoK4gPiBkb1wgOwor56CjID4gdGFcIDsKK+egoiA+IHJhXCA7CivnoJIgPiBoaVwgOwor56CRID4gZ2FcIDsKK+eghiA+IGh1XCA7Civnn6wgPiBzYVwgOwor55+pID4ga3VcIDsKK+efkSA+IHJvXCA7Civnnr8gPiBrdVwgOwor5569ID4ga29cIDsKK+eeuSA+IGFpXCA7CivnnrYgPiBraVwgOwor556WID4gZWlcIDsKK+eehiA+IGtpXCA7Civnnb8gPiBlaVwgOwor5525ID4gdG9cIDsKK+edsSA+IGthXCA7CivnnaIgPiBraVwgOwor552OID4ga2lcIDsKK+ediiA+IGVuXCA7CivnnYIgPiBiaVwgOwor55ytID4ga2lcIDsKK+eclyA+IGt1XCA7Civnm7EgPiBrdVwgOwor55usID4ga29cIDsKK+ebpyA+IHJvXCA7Civnm6YgPiBvdVwgOwor55uZID4gZnVcIDsKK+ebjiA+IG91XCA7Civnm4kgPiBrYVwgOwor55uIID4gZWlcIDsKK+ebgSA+IGVpXCA7CivnmrcgPiBrb1wgOwor55qnID4gYWlcIDsKK+eapCA+IGhhXCA7CivnmoggPiBraVwgOwor55mvID4ga3VcIDsKK+eZriA+IGluXCA7Civnma0gPiBlaVwgOwor55mSID4geXVcIDsKK+eZiiA+IGluXCA7CivnmLggPiBrYVwgOwor55ilID4gc2FcIDsKK+eYnyA+IG9uXCA7CivnmJ4gPiBlaVwgOwor55iWID4gaW5cIDsKK+eYlSA+IGthXCA7CivnmI8gPiB0b1wgOwor55iJID4geXVcIDsKK+eYgCA+IHlvXCA7Civnl7wgPiBrb1wgOwor55e5ID4gaGlcIDsKK+eXsiA+IG1hXCA7Civnl7EgPiBoaVwgOwor55enID4gc2FcIDsKK+eXpCA+IHNhXCA7Civnl6IgPiByaVwgOwor55ehID4gaG9cIDsKK+eXniA+IGhpXCA7Civnl5QgPiBqaVwgOwor55eEID4gc2FcIDsKK+eXgiA+IGthXCA7Civnl4AgPiBrdVwgOwor55a/ID4gaGlcIDsKK+eWpCA+IGhhXCA7CivnlpwgPiBrYVwgOwor55aVID4gaGlcIDsKK+eWjyA+IHNvXCA7Civnlb8gPiBraVwgOwor55W4ID4ga2lcIDsKK+eVsiA+IHlvXCA7Civnla0gPiB5b1wgOwor55WsID4geW9cIDsKK+eVnSA+IHNlXCA7CivnlZIgPiBob1wgOwor55WJID4gZnVcIDsKK+eVhyA+IGluXCA7CivnlYYgPiBob1wgOwor55WAID4gaGlcIDsKK+eUqyA+IGhvXCA7CivnlJYgPiBvdVwgOwor55SSID4gYnVcIDsKK+eUjCA+IG91XCA7Civnk68gPiBvdVwgOwor55OuID4gb3VcIDsKK+eToCA+IGtvXCA7Civnk5QgPiBlaVwgOwor55OQID4gcm9cIDsKK+eSvSA+IGppXCA7CivnkrUgPiB5b1wgOwor55KmID4gYWlcIDsKK+eSoyA+IGtpXCA7Civnkp8gPiBlaVwgOwor55KRID4gYnVcIDsKK+eSkCA+IHJvXCA7CivnkoMgPiByaVwgOwor55GzID4gc2FcIDsKK+eRqiA+IGJhXCA7CivnkakgPiBlaVwgOwor55GjID4gc2FcIDsKK+eRnCA+IHl1XCA7CivnkZsgPiBlaVwgOwor55GaID4ga29cIDsKK+eRlyA+IGVuXCA7CivnkLYgPiBoYVwgOwor55C1ID4gYmlcIDsKK+eQsCA+IGVuXCA7CivnkKwgPiBlblwgOwor55CqID4ga2lcIDsKK+eQpiA+IGtpXCA7CivnkKUgPiBrb1wgOwor55CRID4gc2FcIDsKK+eQiiA+IHlhXCA7Civnj7ggPiBnb1wgOwor54+3ID4gYnVcIDsKK+ePtCA+IGdhXCA7Civnj7EgPiBlaVwgOwor54+lID4gamlcIDsKK+ePnSA+IGt1XCA7Civnj4IgPiBrYVwgOwor5467ID4gaGFcIDsKK+eOniA+IGh1XCA7CivnjpggPiBraVwgOwor546GID4gamlcIDsKK+eOgCA+IHJhXCA7CivnjbwgPiBiaVwgOwor5425ID4gcm9cIDsKK+eMqCA+IGVuXCA7CivnjKcgPiBrYVwgOwor54ykID4ga2lcIDsKK+eMoiA+IGtvXCA7CivnjJMgPiBrYVwgOwor54ySID4gZW5cIDsKK+eMhyA+IG91XCA7Civni7MgPiB5b1wgOwor54uVID4gb3VcIDsKK+eLkiA+IGhpXCA7Civni4kgPiBoaVwgOwor54uBID4gaW5cIDsKK+eKpyA+IGdpXCA7CivnipMgPiBzdVwgOwor54qCID4gcmlcIDsKK+eKgSA+IHJpXCA7Civnib4gPiBnb1wgOwor54mxID4ga2FcIDsKK+eJryA+IGtvXCA7CivniasgPiBrYVwgOwor54mgID4gdGFcIDsKK+eJgSA+IGthXCA7CivniL4gPiBqaVwgOwor54i5ID4gdGFcIDsKK+eIuCA+IGhhXCA7CivniLAgPiBlblwgOwor54isID4gaGFcIDsKK+eIkyA+IGVuXCA7Civnh6wgPiBraVwgOwor54eEID4gZW5cIDsKK+eGuiA+IGtpXCA7CivnhrkgPiBraVwgOwor54awID4gb3VcIDsKK+eGmSA+IGtpXCA7CivnhoggPiBraVwgOwor54aFID4gdW5cIDsKK+eFpiA+IGt1XCA7CivnhZUgPiBraVwgOwor54WQID4gZWlcIDsKK+eFhyA+IGtpXCA7CivnhYYgPiBrYVwgOwor54S4ID4ga29cIDsKK+eEsSA+IGVuXCA7CivnhLAgPiBlblwgOwor54SJID4gZW5cIDsKK+eDkyA+IGVpXCA7CivngqwgPiBrb1wgOwor54KJID4gcm9cIDsKK+eCgSA+IGtpXCA7CivngakgPiBlblwgOwor54GnID4gZW5cIDsKK+eBniA+IGhhXCA7CivngZUgPiByaVwgOwor54GUID4gZW5cIDsKK+eBjiA+IGVuXCA7CivngYggPiBrdVwgOwor54C0ID4gZWlcIDsKK+eAsCA+IGJpXCA7CivngK8gPiBlaVwgOwor54CgID4gZWlcIDsKK+eAmyA+IGVpXCA7CivngJggPiByb1wgOwor54CHID4gb3VcIDsKK+eAhSA+IGVpXCA7Civmv54gPiBoaVwgOwor5r+aID4gZWlcIDsKK+a+piA+IHlvXCA7CivmvpAgPiB1blwgOwor5r29ID4gaG9cIDsKK+a9niA+IHJvXCA7CivmvZkgPiBraVwgOwor5r2BID4gZWlcIDsKK+a8piA+IGdpXCA7CivmvJogPiBvdVwgOwor5ryTID4gcmlcIDsKK+a8iiA+IHJ1XCA7Civmu7kgPiBrb1wgOwor5ru4ID4ga29cIDsKK+a7tyA+IHJvXCA7Civmu6wgPiBrb1wgOwor5ruPID4gaHVcIDsKK+a7iyA+IGppXCA7Civmu4ogPiBraVwgOwor5ruDID4gb3VcIDsKK+a6syA+IHVuXCA7CivmuqsgPiBvblwgOwor5rqmID4gbWlcIDsKK+a6pSA+IGhvXCA7CivmuqAgPiBzYVwgOwor5rqIID4ga2lcIDsKK+a5riA+IGluXCA7CivmuYQgPiBiaVwgOwor5ri8ID4gYmlcIDsKK+a4tiA+IGVpXCA7CivmuK4gPiBrYVwgOwor5rijID4gc2FcIDsKK+a4nSA+IHl1XCA7CivmuJUgPiBlblwgOwor5riKID4gZW5cIDsKK+a4hCA+IGhpXCA7Civmt6QgPiB5b1wgOwor5regID4gaGlcIDsKK+a3nSA+IGhpXCA7Civmt4cgPiBraVwgOwor5ra5ID4gd2FcIDsKK+a2tCA+IGVuXCA7CivmtoIgPiB0b1wgOwor5rWvID4gZ29cIDsKK+a0vCA+IGFpXCA7CivmtLkgPiBlblwgOwor5rSzID4gam9cIDsKK+a0sSA+IGppXCA7CivmtI8gPiBqaVwgOwor5rSOID4ga2lcIDsKK+a0hyA+IGluXCA7Civms7EgPiBvdVwgOwor5rOdID4gc29cIDsKK+azkyA+IG91XCA7Civms5IgPiBrb1wgOwor5rK9ID4ga29cIDsKK+aysiA+IHRhXCA7CivmsrEgPiB0YVwgOwor5rKYID4gaGlcIDsKK+ayjSA+IGdvXCA7CivmsocgPiBlblwgOwor5rKCID4ga2lcIDsKK+axuyA+IGtvXCA7CivmsaogPiBvdVwgOwor5rGKID4gc2FcIDsKK+awvyA+IGtpXCA7CivmsLMgPiB1blwgOwor5rCyID4gdW5cIDsKK+awqCA+IGFuXCA7CivmsKQgPiBpblwgOwor5rCUID4ga2lcIDsKK+awjSA+IGt1XCA7CivmsIIgPiByaVwgOwor5q+5ID4geXVcIDsKK+avpiA+IGppXCA7Civmr5YgPiBoaVwgOwor5q+LID4gYnVcIDsKK+avhSA+IGtpXCA7Civmr4EgPiBraVwgOwor5q+AID4ga2lcIDsKK+auuSA+IGVpXCA7CivmrrcgPiBpblwgOwor5q60ID4gb3VcIDsKK+aurCA+IHRvXCA7CivmrqogPiBlaVwgOwor5q6eID4gaW5cIDsKK+augiA+IHNvXCA7CivmracgPiBraVwgOwor5q2lID4gaG9cIDsKK+atliA+IGtpXCA7CivmrLggPiBhaVwgOwor5qyoID4ga3VcIDsKK+aspyA+IG91XCA7CivmrKQgPiB5b1wgOwor5qybID4gaGFcIDsKK+asjyA+IHJhXCA7Civmq70gPiBpblwgOwor5quyID4geW9cIDsKK+arqCA+IHJvXCA7Civmq54gPiBlblwgOwor5quTID4gcm9cIDsKK+argyA+IGtpXCA7Civmqr8gPiBlblwgOwor5qq9ID4gamlcIDsKK+aqvCA+IGluXCA7CivmqrEgPiBraVwgOwor5qqlID4gZ2lcIDsKK+aqnyA+IGthXCA7CivmqpsgPiB0YVwgOwor5qqDID4gaW5cIDsKK+apsSA+IHp1XCA7CivmqasgPiBvdVwgOwor5qmiID4gZGFcIDsKK+apkiA+IHVuXCA7CivmqYYgPiBidVwgOwor5qmFID4gYm9cIDsKK+aouyA+IGtpXCA7CivmqLIgPiBqaVwgOwor5qidID4gc2FcIDsKK+anuyA+IGtpXCA7Civmp6UgPiBlaVwgOwor5qeOID4gc2FcIDsKK+amvyA+IGtpXCA7Civmpq4gPiBlaVwgOwor5qaoID4gc2FcIDsKK+amoSA+IHNvXCA7CivmppggPiBrdVwgOwor5qaRID4gZnVcIDsKK+amhiA+IHl1XCA7CivmpbkgPiBlaVwgOwor5qWwID4geXVcIDsKK+aloyA+IGJpXCA7CivmpaEgPiB5dVwgOwor5qWcID4ga29cIDsKK+almyA+IGtvXCA7CivmpZogPiBzb1wgOwor5qWVID4gZGFcIDsKK+algiA+IHNhXCA7CivmpLsgPiBlblwgOwor5qS1ID4ga2FcIDsKK+aksCA+IHlhXCA7Civmo6ogPiBlblwgOwor5qOdID4ga29cIDsKK+ajnCA+IHlvXCA7Civmo5AgPiBoaVwgOwor5qOLID4ga2lcIDsKK+ajiiA+IGtpXCA7CivmorYgPiBiaVwgOwor5qKzID4gc29cIDsKK+airSA+IHNhXCA7CivmoqkgPiByaVwgOwor5qKnID4gZ29cIDsKK+aipiA+IG11XCA7CivmopsgPiBkYVwgOwor5qKOID4gb3VcIDsKK+ahtCA+IGZ1XCA7CivmoasgPiBzYVwgOwor5qGXID4gdGFcIDsKK+ahjSA+IGtvXCA7CivmoK0gPiBqaVwgOwor5qCpID4ga3VcIDsKK+agpyA+IGVpXCA7Civmn7IgPiBoaVwgOwor5p+wID4gbmFcIDsKK+afryA+IGthXCA7Civmn6cgPiBrb1wgOwor5p+lID4gc2FcIDsKK+afpCA+IHNhXCA7Civmn6EgPiBlaVwgOwor5p+OID4gZnVcIDsKK+afhSA+IGppXCA7Civmn4EgPiB0YVwgOwor5p+AID4gaGlcIDsKK+aeuyA+IGVpXCA7CivmnrggPiBrdVwgOwor5p6zID4ga2lcIDsKK+aepiA+IHJvXCA7CivmnpkgPiBnYVwgOwor5p6RID4ga29cIDsKK+aejiA+IGh1XCA7CivmnokgPiBvdVwgOwor5p6HID4gaGlcIDsKK+adtyA+IGhhXCA7CivmnZ4gPiBrb1wgOwor5p2cID4gZG9cIDsKK+adiCA+IHNhXCA7CivmnLYgPiBkYVwgOwor5py1ID4gZGFcIDsKK+acoCA+IGVpXCA7CivmnJ4gPiBraVwgOwor5pyPID4gaGlcIDsKK+achyA+IGhpXCA7Civmm70gPiB6b1wgOwor5pu1ID4gZWlcIDsKK+absSA+IG91XCA7Civmm6YgPiBnaVwgOwor5puWID4gYWlcIDsKK+abgSA+IGtpXCA7Civmm4AgPiBlaVwgOwor5pq/ID4ga2lcIDsKK+aaqCA+IGtpXCA7CivmmpwgPiBmdVwgOwor5pqbID4gc2FcIDsKK+aajiA+IGVpXCA7CivmmokgPiBraVwgOwor5pqIID4gdW5cIDsKK+aagyA+IGhpXCA7CivmmoAgPiBvdVwgOwor5pm8ID4gZW5cIDsKK+aZuyA+IGFuXCA7CivmmbcgPiBraVwgOwor5pmkID4gZ29cIDsKK+aZoSA+IGhvXCA7CivmmZ4gPiBraVwgOwor5pmPID4gYW5cIDsKK+aYuSA+IGFpXCA7CivmmLcgPiBvblwgOwor5pirID4ga3VcIDsKK+aYliA+IGVuXCA7CivmmIggPiBrb1wgOwor5piAID4gaW5cIDsKK+aXvyA+IGdvXCA7Civml7kgPiBqaVwgOwor5pe0ID4ga3VcIDsKK+aXoyA+IGtpXCA7Civml6EgPiBraVwgOwor5pegID4gYnVcIDsKK+aXnyA+IHlvXCA7Civml44gPiBqaVwgOwor5peJID4gZnVcIDsKK+aXgiA+IGtpXCA7Civmlp0gPiBrYVwgOwor5pW6ID4ga3VcIDsKK+aVpyA+IGtpXCA7CivmlZggPiBqb1wgOwor5pWNID4gam9cIDsKK+aViSA+IGJpXCA7CivmlLEgPiBraVwgOwor5pSwID4ga2lcIDsKK+aUniA+IHJhXCA7CivmlJYgPiBlaVwgOwor5pO1ID4gbWFcIDsKK+aTqSA+IGp1XCA7Civmkr4gPiB0YVwgOwor5pKtID4gaGFcIDsKK+aSnSA+IGtpXCA7CivmkbggPiBtb1wgOwor5pGjID4gc2FcIDsKK+aQvSA+IHRhXCA7CivmkLUgPiBvblwgOwor5pCZID4gbnVcIDsKK+aQkyA+IHNhXCA7Civmj7ggPiBzYVwgOwor5o+2ID4geWFcIDsKK+aPtCA+IGVuXCA7Civmj64gPiBraVwgOwor5o+cID4gZW5cIDsKK+aPhiA+IGtpXCA7Civmj4QgPiB5dVwgOwor5o6+ID4gZW5cIDsKK+aOniA+IGVuXCA7Civmjo4gPiBraVwgOwor5o28ID4gZGFcIDsKK+aNrCA+IGh1XCA7CivmjZMgPiBzZVwgOwor5o2QID4gZW5cIDsKK+aNgiA+IGdvXCA7CivmjLwgPiBkYVwgOwor5oyrID4gemFcIDsKK+aMqiA+IGRhXCA7CivmjKcgPiBrdVwgOwor5oyTID4gdGFcIDsKK+aMkCA+IGRhXCA7CivmjIkgPiBhblwgOwor5ou/ID4gZGFcIDsKK+aLvSA+IGVpXCA7Civmi5cgPiBvdVwgOwor5ouWID4gdGFcIDsKK+aLlSA+IHRhXCA7Civmi48gPiBkYVwgOwor5ouKID4gZnVcIDsKK+aLhyA+IGJvXCA7CivmircgPiBoaVwgOwor5oqzID4gamlcIDsKK+aKjiA+IHVuXCA7CivmioogPiB3YVwgOwor5om+ID4ga2FcIDsKK+aJryA+IHRhXCA7CivmiaAgPiBzYVwgOwor5omIID4ga29cIDsKK+aIvSA+IGtvXCA7CivmiLcgPiBrb1wgOwor5oi2ID4ga29cIDsKK+aIsSA+IGdpXCA7CivmiKMgPiBraVwgOwor5oiTID4ga2FcIDsKK+aIjSA+IGp1XCA7CivmiIogPiBib1wgOwor5oevID4gZnVcIDsKK+aHpyA+IGRhXCA7Civmh6YgPiBkYVwgOwor5oehID4gYmFcIDsKK+aHlSA+IGVuXCA7Civmh4ogPiBvdVwgOwor5oauID4gYnVcIDsKK+aGnCA+IHRhXCA7CivmhpkgPiBraVwgOwor5oaYID4ga2lcIDsKK+aFjSA+IHVuXCA7CivmhYggPiBqaVwgOwor5oS+ID4ga2lcIDsKK+aErCA+IHNvXCA7CivmhKsgPiBzb1wgOwor5oSqID4gdW5cIDsKK+aEpyA+IGtpXCA7CivmhKAgPiB1blwgOwor5oSUID4gaW5cIDsKK+aDsiA+IHVuXCA7Civmg7AgPiBkYVwgOwor5oOnID4ga3VcIDsKK+aDoiA+IHNhXCA7Civmg44gPiBraVwgOwor5oOIID4ga2FcIDsKK+aCsSA+IGhpXCA7CivmgqggPiBqaVwgOwor5oKnID4gcmlcIDsKK+aCniA+IGdvXCA7CivmgpUgPiBraVwgOwor5oKRID4gaG9cIDsKK+aChiA+IHlvXCA7CivmgoIgPiBoaVwgOwor5oKBID4gZW5cIDsKK+aBlyA+IGtvXCA7CivmgZUgPiBqb1wgOwor5oGRID4ga2lcIDsKK+aBgyA+IGppXCA7CivmgYEgPiBpblwgOwor5oCpID4gamlcIDsKK+aApCA+IGh1XCA7CivmgJkgPiBrb1wgOwor5oCYID4ga29cIDsKK+aAlSA+IGhhXCA7Civlv68gPiBraVwgOwor5b+sID4geW9cIDsKK+W/pCA+IGdvXCA7Civlv6IgPiBnb1wgOwor5b69ID4ga2lcIDsKK+W+jSA+IGFpXCA7CivlvoIgPiBzb1wgOwor5b26ID4gb3VcIDsKK+W9tSA+IHRhXCA7CivlvYwgPiBiaVwgOwor5bytID4gYmlcIDsKK+W8qSA+IGRvXCA7CivlvKcgPiBrb1wgOwor5byjID4gaHVcIDsKK+W8nSA+IGhhXCA7CivlvJYgPiB0ZVwgOwor5byNID4gbmlcIDsKK+W8hyA+IGVuXCA7CivlvIMgPiBraVwgOwor5bu0ID4gaW5cIDsKK+W7riA+IGVpXCA7Civlu6EgPiBidVwgOwor5bucID4gdG9cIDsKK+W7miA+IHp1XCA7Civlu5UgPiBpblwgOwor5buIID4ga2FcIDsKK+W6viA+IHl1XCA7CivlurMgPiBoaVwgOwor5bqvID4gaG9cIDsKK+W6riA+IGl1XCA7CivluqogPiBraVwgOwor5bqMID4gZ2FcIDsKK+W6iyA+IGtpXCA7CivluoAgPiBoaVwgOwor5bmgID4ga29cIDsKK+W5kSA+IGtpXCA7CivluY8gPiBrYVwgOwor5bmBID4gc3VcIDsKK+W4viA+IHRvXCA7CivluJQgPiBoaVwgOwor5biRID4gZG9cIDsKK+W4jSA+IGtvXCA7CivluIogPiBoYVwgOwor5biGID4gaG9cIDsKK+W3syA+IG1pXCA7Civlt5kgPiBraVwgOwor5beNID4gZ2lcIDsKK+W3iyA+IGtpXCA7Civlt4cgPiBraVwgOwor5ba3ID4gZ2lcIDsKK+W2tCA+IGF1XCA7CivltqwgPiBnaVwgOwor5baeID4gdGFcIDsKK+W2kyA+IGhhXCA7CivltocgPiBrdVwgOwor5baBID4gcnVcIDsKK+W2gCA+IHRvXCA7CivltbMgPiBzYVwgOwor5bWvID4gc2FcIDsKK+W1oSA+IG91XCA7CivltZ8gPiBraVwgOwor5bWeID4gdG9cIDsKK+W1nCA+IGtpXCA7CivltZYgPiBzYVwgOwor5bWLID4gYmlcIDsKK+W0syA+IHl1XCA7CivltKYgPiBlblwgOwor5bSLID4ga2FcIDsKK+WzuSA+IHRvXCA7Civls7IgPiByaVwgOwor5bOsID4gaG9cIDsKK+WzqyA+IHlhXCA7Civls6kgPiBnYVwgOwor5bOoID4gZ2FcIDsKK+WzniA+IGtpXCA7Civls5sgPiByaVwgOwor5bOZID4gamlcIDsKK+WzlyA+IGdpXCA7Civls5YgPiBhblwgOwor5bOUID4gYm9cIDsKK+WzjyA+IGppXCA7Civls4ogPiBodVwgOwor5bK7ID4gamlcIDsKK+WytSA+IGtvXCA7CivlsrQgPiBrdVwgOwor5bKvID4gaGlcIDsKK+WyriA+IHRhXCA7CivlsqggPiBzb1wgOwor5bKlID4gaGFcIDsKK+WylCA+IHNhXCA7CivlspMgPiBraVwgOwor5bKQID4ga2lcIDsKK+WyiCA+IGthXCA7CivlsoYgPiBldVwgOwor5bG6ID4ga2lcIDsKK+WxriA+IHNhXCA7Civlsa0gPiBraVwgOwor5bGoID4ga3VcIDsKK+WxoiA+IHJ1XCA7CivlsaAgPiB0b1wgOwor5bGEID4gaGlcIDsKK+WxgyA+IGtpXCA7CivlsYEgPiBoZVwgOwor5bC5ID4gaW5cIDsKK+WwryA+IGtpXCA7CivlsK4gPiB0YVwgOwor5bCrID4gb3VcIDsKK+WwqiA+IG91XCA7CivlsKkgPiBvdVwgOwor5bCjID4gb3VcIDsKK+WwoiA+IG91XCA7CivlsJQgPiBqaVwgOwor5bCTID4gamlcIDsKK+WwkiA+IGppXCA7CivlsIMgPiBodVwgOwor5bCAID4gaGFcIDsKK+WvsiA+IGdpXCA7Civlr6QgPiBnb1wgOwor5a+gID4ga3VcIDsKK+WvmSA+IHl1XCA7Civlr4MgPiBlblwgOwor5a6xID4gc2FcIDsKK+WukCA+IGdpXCA7Civlro4gPiBldVwgOwor5a6EID4ga2lcIDsKK+WugyA+IHRhXCA7Civlrb4gPiBlaVwgOwor5a26ID4ganVcIDsKK+WttyA+IHJpXCA7CivlrbUgPiBmdVwgOwor5a2lID4gZG9cIDsKK+WtmiA+IGZ1XCA7CivlrYsgPiByaVwgOwor5ay/ID4gZW5cIDsKK+WsvSA+IGVuXCA7CivlrLcgPiBiYVwgOwor5ay0ID4gZWlcIDsKK+WssCA+IGVpXCA7CivlrK4gPiBlblwgOwor5aykID4gYmFcIDsKK+WsoSA+IGFpXCA7CivlrJQgPiBodVwgOwor5ayNID4gYmlcIDsKK+WsgCA+IGtpXCA7Civlq7cgPiB0YVwgOwor5au1ID4gYnVcIDsKK+WrtCA+IGtvXCA7Civlq64gPiBrb1wgOwor5autID4ga29cIDsKK+WrqyA+IGJvXCA7Civlq6MgPiBlblwgOwor5auiID4ga2lcIDsKK+WroCA+IHJpXCA7Civlq5sgPiBlaVwgOwor5auXID4gb3VcIDsKK+WrlSA+IGVpXCA7Civlq4ogPiBzb1wgOwor5aq/ID4ga2lcIDsKK+WqvSA+IGJvXCA7CivlqrogPiBiaVwgOwor5aq0ID4gZW5cIDsKK+WqsSA+IGV1XCA7CivlqqwgPiBob1wgOwor5aqqID4gb3VcIDsKK+WqqSA+IGtvXCA7CivlqqAgPiB0YVwgOwor5aqWID4gZWlcIDsKK+WqlSA+IGVuXCA7CivlqpAgPiBraVwgOwor5aqOID4gc29cIDsKK+WqhCA+IGJpXCA7Civlqb0gPiBrYVwgOwor5am6ID4gYnVcIDsKK+WprCA+IGluXCA7CivlqaMgPiBpblwgOwor5amfID4ga29cIDsKK+WpkyA+IGhpXCA7CivlqZAgPiB3YVwgOwor5amNID4ga2lcIDsKK+WouCA+IGtpXCA7CivlqLAgPiBqaVwgOwor5aivID4gZ29cIDsKK+WorSA+IGtpXCA7CivlqKwgPiBidVwgOwor5aiqID4gZ29cIDsKK+WopSA+IGdhXCA7CivlqJwgPiBkYVwgOwor5aibID4gZ29cIDsKK+WokyA+IGJpXCA7CivlqJIgPiBib1wgOwor5aiMID4gcmlcIDsKK+WohCA+IHJ1XCA7Civlp70gPiBraVwgOwor5ae7ID4gaW5cIDsKK+WnuSA+IHRhXCA7Civlp7YgPiBvdVwgOwor5aeyID4gYW5cIDsKK+WnsSA+IGthXCA7Civlp6wgPiBraVwgOwor5aelID4gYm9cIDsKK+WnnSA+IHN1XCA7Civlp44gPiBhdVwgOwor5aeHID4gaHVcIDsKK+WnhiA+IGJvXCA7Civlp4EgPiBrdVwgOwor5aeAID4ga2FcIDsKK+WmvCA+IGhpXCA7CivlprQgPiBlblwgOwor5aauID4gamlcIDsKK+WmpSA+IGRhXCA7CivlpqQgPiB5b1wgOwor5aajID4gaGlcIDsKK+WmnyA+IGFuXCA7CivlppggPiB1blwgOwor5aaSID4gdG9cIDsKK+WmiyA+IGZ1XCA7CivlpoMgPiBoaVwgOwor5aW8ID4gdGFcIDsKK+WlsCA+IGhpXCA7CivlpasgPiBpblwgOwor5aWcID4gaGlcIDsKK+WlkyA+IHRhXCA7CivlpYQgPiBlblwgOwor5aS/ID4gaGFcIDsKK+WkuCA+IGtvXCA7CivlpLYgPiBoaVwgOwor5aS1ID4gZW5cIDsKK+WkpSA+IGthXCA7CivlpKQgPiBpblwgOwor5aShID4ga2lcIDsKK+WkmyA+IHRhXCA7CivlpJcgPiBlblwgOwor5aSUID4ga2lcIDsKK+WkkyA+IGthXCA7CivlpI4gPiBzYVwgOwor5aSDID4ga29cIDsKK+WjvSA+IGp1XCA7Civlo7ogPiBrb1wgOwor5aOpID4gaGFcIDsKK+WjoSA+IGVpXCA7Civlo5sgPiBlblwgOwor5aOaID4gcm9cIDsKK+WjkiA+IGFpXCA7Civlo4ggPiBvblwgOwor5aOEID4geWFcIDsKK+WiuiA+IG91XCA7CivlorIgPiBib1wgOwor5aKvID4gZGFcIDsKK+WijSA+IGtpXCA7CivlobggPiBvdVwgOwor5aGnID4gYWlcIDsKK+WhlSA+IG91XCA7CivloZEgPiBzb1wgOwor5aGQID4gc29cIDsKK+WhiyA+IGVpXCA7CivloYggPiBraVwgOwor5aC4ID4gaHVcIDsKK+WgtyA+IGFuXCA7CivloLYgPiBrdVwgOwor5aCzID4gYmlcIDsKK+WgsCA+IGVuXCA7CivloKwgPiB5dVwgOwor5aCjID4gZ3VcIDsKK+WgnSA+IGthXCA7CivloJkgPiBpblwgOwor5aCNID4gdG9cIDsKK+WgjCA+IGtvXCA7CivloIEgPiBrYVwgOwor5Z+8ID4ga2lcIDsKK+WftSA+IHRhXCA7Civln68gPiBlblwgOwor5Z+nID4ga3VcIDsKK+WfpCA+IGhpXCA7Civln6AgPiBmdVwgOwor5Z+UID4gaG9cIDsKK+WeuiA+IGh1XCA7CivlnqogPiBoYVwgOwor5Z6eID4gdGFcIDsKK+WenSA+IGtpXCA7CivlnpwgPiBkYVwgOwor5Z6bID4gZGFcIDsKK+WegCA+IGtvXCA7Civlnb8gPiBmdVwgOwor5Z23ID4ga2FcIDsKK+WdsyA+IGF1XCA7CivlnbEgPiBhdVwgOwor5Z2vID4gaGlcIDsKK+WdrCA+IGthXCA7CivlnaEgPiBoYVwgOwor5Z2SID4gaGlcIDsKK+WcuyA+IGtpXCA7CivlnK4gPiBoaVwgOwor5ZyrID4gYXVcIDsKK+WclyA+IHRvXCA7CivlnJQgPiBvdVwgOwor5ZyRID4gaG9cIDsKK+WcjiA+IGVuXCA7Civlm6YgPiBlblwgOwor5ZuZID4gaW5cIDsKK+WbjiA+IHNvXCA7Civlm4wgPiBzb1wgOwor5ZuJID4gcmFcIDsKK+WatiA+IG91XCA7CivlmrIgPiB0YVwgOwor5ZqxID4ga2lcIDsKK+WarSA+IGhpXCA7CivlmqcgPiByb1wgOwor5ZqlID4gZW5cIDsKK+WanyA+IHJpXCA7CivlmpwgPiBiaVwgOwor5ZqYID4gaXVcIDsKK+WalSA+IHJvXCA7CivlmoogPiBoaVwgOwor5ZqFID4ganVcIDsKK+WZviA+IGluXCA7CivlmbMgPiBndVwgOwor5ZmvID4gYWlcIDsKK+WZriA+IGVuXCA7CivlmasgPiBhYVwgOwor5ZmVID4ga2lcIDsKK+WZkCA+IGtpXCA7CivlmYUgPiBraVwgOwor5Zi7ID4ga2lcIDsKK+WYsyA+IGtpXCA7CivlmLAgPiBraVwgOwor5ZifID4gdG9cIDsKK+WYnCA+IGJhXCA7CivlmJsgPiBtYVwgOwor5ZiZID4gaGFcIDsKK+WYkSA+IGtvXCA7CivlmI8gPiBrYVwgOwor5ZiJID4ga2FcIDsKK+WXqSA+IHNhXCA7Civll6YgPiBzYVwgOwor5ZePID4gc2FcIDsKK+WXjiA+IGJhXCA7Civll4kgPiBzb1wgOwor5ZeEID4gc2FcIDsKK+WXgiA+IGV1XCA7CivllrsgPiB5dVwgOwor5Za2ID4gZWlcIDsKK+WWsyA+IHNhXCA7CivllrEgPiByaVwgOwor5ZapID4geXVcIDsKK+WWpSA+IHRvXCA7CivllqMgPiBrdVwgOwor5ZafID4ga2lcIDsKK+WWkyA+IGV1XCA7CivllpEgPiBpblwgOwor5ZaOID4ga2FcIDsKK+WWgiA+IGtpXCA7CivllaQgPiBoaVwgOwor5ZWdID4ga2FcIDsKK+WVmiA+IGhpXCA7CivllZggPiBlblwgOwor5ZWOID4gZ29cIDsKK+WUuSA+IHlvXCA7CivllLcgPiB5b1wgOwor5ZS1ID4gYW5cIDsKK+WUsiA+IGppXCA7CivllK0gPiBraVwgOwor5ZSsID4ga2FcIDsKK+WUlCA+IGdvXCA7CivllI8gPiBraVwgOwor5ZSOID4gcmlcIDsKK+WUiyA+IHRvXCA7CivllIggPiBvdVwgOwor5ZSGID4gc2FcIDsKK+WUgCA+IGl1XCA7Civlk78gPiBrYVwgOwor5ZO6ID4gaG9cIDsKK+WTtiA+IGJhXCA7Civlk6wgPiBrYVwgOwor5ZOqID4gZGFcIDsKK+WTpyA+IGthXCA7Civlk6YgPiBnYVwgOwor5ZOlID4ga2FcIDsKK+WTiSA+IHlhXCA7Civlk4cgPiBhaVwgOwor5ZK8ID4ga2FcIDsKK+WSuyA+IGt1XCA7CivlkqogPiBiaVwgOwor5ZKpID4gYmlcIDsKK+WSpSA+IGtpXCA7CivlkqQgPiB0YVwgOwor5ZKhID4gamlcIDsKK+WSnCA+IHRhXCA7CivlkpYgPiBrYVwgOwor5ZKVID4ga29cIDsKK+WSkSA+IGRhXCA7CivlkpAgPiBob1wgOwor5ZKPID4gZWlcIDsKK+WSiiA+IHdhXCA7CivlkokgPiBhdVwgOwor5ZKDID4gdGFcIDsKK+WSgCA+IHNvXCA7Civlkb8gPiBrYVwgOwor5ZG4ID4gaGlcIDsKK+WRtiA+IGRvXCA7CivlkbUgPiBrYVwgOwor5ZG0ID4ga3VcIDsKK+WRsSA+IGtvXCA7Civlka4gPiBraVwgOwor5ZGtID4gZWlcIDsKK+WRrCA+IGtpXCA7CivlkaYgPiBpdVwgOwor5ZGiID4gamlcIDsKK+WRjSA+IHVuXCA7CivlkYsgPiBodVwgOwor5ZGAID4gZ2FcIDsKK+WQvSA+IGluXCA7CivlkLQgPiBnb1wgOwor5ZCzID4gZ29cIDsKK+WQpyA+IGhhXCA7CivlkJQgPiBzZVwgOwor5ZCTID4ga2FcIDsKK+WQkiA+IHRhXCA7CivlkIEgPiBrdVwgOwor5Y+5ID4gaXVcIDsKK+WPtSA+IGhhXCA7Civlj6cgPiBrYVwgOwor5Y+hID4gZWlcIDsKK+WPmiA+IGthXCA7Civlj4YgPiBhaVwgOwor5Y60ID4gZW5cIDsKK+WOrCA+IGtpXCA7CivljqYgPiBrYVwgOwor5Y6eID4gaGlcIDsKK+WOjyA+IHNhXCA7CivljoogPiBrYVwgOwor5Y2mID4ga2FcIDsKK+WNiSA+IGtpXCA7CivljYAgPiBrdVwgOwor5Yy9ID4gZW5cIDsKK+WMvCA+IGFuXCA7CivljLogPiBrdVwgOwor5YytID4ga2lcIDsKK+WMrCA+IHl1XCA7CivljKogPiBoaVwgOwor5YyVID4gaGlcIDsKK+WMjiA+IG91XCA7CivljIAgPiBpblwgOwor5Yu7ID4gaW5cIDsKK+WLqSA+IGVpXCA7Civli58gPiBib1wgOwor5YucID4gb3VcIDsKK+WLmiA+IGVpXCA7CivlirggPiBhaVwgOwor5YqsID4ga3VcIDsKK+WKmSA+IHJpXCA7CivlipggPiBiYVwgOwor5YqTID4gZ2lcIDsKK+WJuiA+IHJpXCA7Civlia4gPiBrYVwgOwor5YmmID4gZW5cIDsKK+WJoSA+IGVuXCA7CivliZ4gPiBraVwgOwor5YmYID4ga2lcIDsKK+WJlSA+IGhpXCA7CivliYkgPiBzYVwgOwor5YmGID4gcmFcIDsKK+WJgSA+IHRhXCA7CivliLUgPiBqaVwgOwor5Yi0ID4gdGFcIDsKK+WIsyA+IGtvXCA7CivliJUgPiByaVwgOwor5YiSID4ga2FcIDsKK+WIjyA+IGtpXCA7CivliIkgPiBraVwgOwor5Ye5ID4gb3VcIDsKK+WHoCA+IGtpXCA7Civlh54gPiBraVwgOwor5YeSID4gZ2lcIDsKK+WHkCA+IGluXCA7Civlh4UgPiBrb1wgOwor5Ya0ID4gZ29cIDsKK+WGsSA+IGdvXCA7CivlhqggPiBmdVwgOwor5YakID4gZW5cIDsKK+WGniA+IGJpXCA7Civlhp0gPiBnaVwgOwor5YaYID4gaW5cIDsKK+WGlCA+IGt1XCA7Civlho4gPiBrYVwgOwor5YaAID4ga2lcIDsKK+WFviA+IGtpXCA7CivlhbkgPiBqaVwgOwor5YWqID4geXVcIDsKK+WFlyA+IGVuXCA7CivlhZQgPiB0b1wgOwor5YWRID4gZGFcIDsKK+WFjCA+IGRhXCA7CivlhYEgPiBpblwgOwor5YS6ID4gbmFcIDsKK+WEuCA+IHJhXCA7CivlhJ4gPiBqaVwgOwor5YSbID4gYnVcIDsKK+WElyA+IGdpXCA7CivlhJIgPiBqdVwgOwor5YSNID4gc2FcIDsKK+WDviA+IGFpXCA7Civlg7EgPiBrb1wgOwor5YOfID4ga2lcIDsKK+WDmyA+IGtpXCA7Civlg5YgPiBraVwgOwor5YODID4gYmlcIDsKK+WCvyA+IGVuXCA7CivlgrsgPiBzYVwgOwor5YK0ID4ga3VcIDsKK+WCoiA+IGthXCA7Civlgp8gPiBhdVwgOwor5YKeID4gc2FcIDsKK+WCnCA+IGV1XCA7CivlgowgPiBiYVwgOwor5YKKID4gaW5cIDsKK+WChSA+IGZ1XCA7CivlgoMgPiBzb1wgOwor5YG5ID4gYmlcIDsKK+WBpyA+IHRhXCA7CivlgaQgPiB5dVwgOwor5YGjID4gZW5cIDsKK+WBoCA+IGV1XCA7CivlgYwgPiBqYVwgOwor5YGDID4gZW5cIDsKK+WBgCA+IGVpXCA7CivlgLsgPiB5YVwgOwor5YC1ID4gYnVcIDsKK+WAriA+IHJhXCA7CivlgKAgPiBraVwgOwor5YCbID4ga2lcIDsKK+WAhyA+IGVuXCA7Civkv74gPiBoaVwgOwor5L+7ID4gYmlcIDsKK+S/tyA+IGhpXCA7Civkv7EgPiBrdVwgOwor5L+wID4ga2FcIDsKK+S/niA+IHl1XCA7Civkv5ogPiByaVwgOwor5L+ZID4ga2lcIDsKK+S/mCA+IGZ1XCA7Civkv5AgPiByaVwgOwor5L+MID4gZnVcIDsKK+S/iSA+IGdvXCA7Civkv4EgPiBndVwgOwor5L6zID4gc2FcIDsKK+S+oiA+IGJ1XCA7Civkvp4gPiBqb1wgOwor5L6VID4gamlcIDsKK+S+kiA+IGFuXCA7Civkvo4gPiBiaVwgOwor5L6MID4gaW5cIDsKK+S+iSA+IGthXCA7CivkvbkgPiBraVwgOwor5L20ID4gamlcIDsKK+S9syA+IGthXCA7CivkvaAgPiBqaVwgOwor5L2SID4gYXVcIDsKK+S9iCA+IGhvXCA7CivkvYEgPiBhaVwgOwor5Ly+ID4gaGlcIDsKK+S8siA+IGppXCA7CivkvLEgPiBqaVwgOwor5LywID4ga29cIDsKK+S8riA+IGRvXCA7CivkvJkgPiBrYVwgOwor5LyWID4gZG9cIDsKK+S8lSA+IGh1XCA7CivkvIwgPiBhaVwgOwor5LyDID4geW9cIDsKK+S7tSA+IGtvXCA7Civku7MgPiBoaVwgOwor5LuoID4gc2FcIDsKK+S7myA+IHRhXCA7Civku4YgPiBmdVwgOwor5LuFID4gaHVcIDsKK+S6uSA+IGJpXCA7CivkurggPiB0YVwgOwor5LqxID4geWFcIDsKK+S6kyA+IGtpXCA7CivkuoogPiBqaVwgOwor5Lm1ID4gZW5cIDsKK+S5nCA+IGJhXCA7CivkuZogPiBpblwgOwor5LmVID4ga29cIDsKK+S5jiA+IGthXCA7CivkuYggPiBldVwgOwor5LiqID4ga2FcIDsKK+S4lSA+IGhpXCA7CivkuIwgPiBraVwgOwor5LiFID4ga2FcIDsKK+W4tyA+IGlcIDsKK+eVsCA+IGlcIDsKK+eVjyA+IGlcIDsKK+WwviA+IG9cIDsKK+WuhyA+IHVcIDsKK+isgiA+IGlcIDsKK+eIsiA+IGlcIDsKK+WogSA+IGlcIDsKK+WnlCA+IGlcIDsKK+WcjSA+IGlcIDsKK+WbsiA+IGlcIDsKK+WXmiA+IG9cIDsKK+axnyA+IGVcIDsKK+axmiA+IG9cIDsKK+iQjiA+IGlcIDsKK+WMuyA+IGlcIDsKK+akhSA+IGlcIDsKK+iDgyA+IGlcIDsKK+WBiSA+IGlcIDsKK+mgpCA+IGlcIDsKK+S+nSA+IGVcIDsKK+S8iiA+IGlcIDsKK+S7pSA+IGlcIDsKK+S6niA+IGFcIDsKK+mYvyA+IGFcIDsKK+e3kiA+IG9cIDsKK+aWvCA+IG9cIDsKK+e2rSA+IGlcIDsKK+e1tSA+IGVcIDsKK+enuyA+IGlcIDsKK+mGqyA+IGlcIDsKK+aFsCA+IGlcIDsKK+aEjyA+IGlcIDsKK+aDoSA+IG9cIDsKK+mBuiA+IGlcIDsKK+mBlSA+IGlcIDsKK+m3viA+IGlcIDsKK+m3pyA+IGlcIDsKK+m1tiA+IGFcIDsKK+m1nCA+IHVcIDsKK+mwniA+IG9cIDsKK+mwhCA+IGlcIDsKK+mupyA+IGlcIDsKK+mqrCA+IHVcIDsKK+mqqyA+IGlcIDsKK+mqqiA+IGlcIDsKK+mlkCA+IGlcIDsKK+mhiiA+IGlcIDsKK+mgpSA+IGlcIDsKK+mgiSA+IGlcIDsKK+mfmSA+IGlcIDsKK+mfkSA+IGlcIDsKK+mfiyA+IGlcIDsKK+mcqCA+IGlcIDsKK+mbqSA+IHVcIDsKK+maliA+IG9cIDsKK+mXiCA+IGlcIDsKK+mWvCA+IGFcIDsKK+mTlCA+IGFcIDsKK+mQvyA+IGlcIDsKK+mQmiA+IGFcIDsKK+mMjyA+IGFcIDsKK+mKpSA+IGlcIDsKK+mJryA+IGlcIDsKK+mIsyA+IGFcIDsKK+mHqiA+IHVcIDsKK+mFjyA+IGlcIDsKK+mElCA+IG9cIDsKK+mCmCA+IHVcIDsKK+mAtiA+IGlcIDsKK+i/uyA+IGlcIDsKK+i/pCA+IGlcIDsKK+i/hiA+IGlcIDsKK+i/giA+IHVcIDsKK+iyvSA+IGlcIDsKK+iypCA+IGlcIDsKK+ikmCA+IGlcIDsKK+iimCA+IGlcIDsKK+iesSA+IGlcIDsKK+ieoCA+IGlcIDsKK+iekCA+IG9cIDsKK+ieiSA+IG9cIDsKK+icvCA+IGlcIDsKK+icsiA+IGlcIDsKK+ibnCA+IGlcIDsKK+iZtiA+IHVcIDsKK+iUvyA+IGlcIDsKK+iRsyA+IGlcIDsKK+iNvSA+IGlcIDsKK+iNjyA+IGVcIDsKK+iMoSA+IHVcIDsKK+iLoiA+IGlcIDsKK+iLoSA+IGlcIDsKK+iKmyA+IGlcIDsKK+iDsCA+IGlcIDsKK+iChCA+IGlcIDsKK+e3ryA+IGlcIDsKK+e3rSA+IGlcIDsKK+e0hiA+IHVcIDsKK+ewgyA+IGlcIDsKK+ervSA+IHVcIDsKK+emuSA+IHVcIDsKK+emlSA+IGlcIDsKK+ejiCA+IGlcIDsKK+efoyA+IGlcIDsKK+ebgiA+IHVcIDsKK+eYgiA+IGFcIDsKK+eXvyA+IGlcIDsKK+eXviA+IGFcIDsKK+eXjyA+IGlcIDsKK+eXjSA+IGlcIDsKK+eWtCA+IGFcIDsKK+eRpiA+IG9cIDsKK+eRiyA+IGlcIDsKK+eRgCA+IHVcIDsKK+ePhiA+IGlcIDsKK+eOlyA+IHVcIDsKK+eMrCA+IGlcIDsKK+eMlyA+IGlcIDsKK+eKhCA+IGlcIDsKK+eGqCA+IGlcIDsKK+eFkiA+IGlcIDsKK+a/sCA+IGlcIDsKK+a8qiA+IGlcIDsKK+a5iyA+IGlcIDsKK+a4rSA+IGlcIDsKK+a0vyA+IG9cIDsKK+a0pyA+IGlcIDsKK+axoSA+IG9cIDsKK+axmSA+IG9cIDsKK+awrCA+IGFcIDsKK+aviSA+IGlcIDsKK+atjSA+IG9cIDsKK+asuSA+IGlcIDsKK+alsiA+IGlcIDsKK+akuCA+IGlcIDsKK+akjyA+IGFcIDsKK+ahmSA+IHVcIDsKK+afgiA+IGlcIDsKK+aesSA+IGlcIDsKK+adhyA+IG9cIDsKK+adhSA+IHVcIDsKK+aakCA+IGlcIDsKK+aXliA+IGlcIDsKK+aVoSA+IGlcIDsKK+aUuiA+IGlcIDsKK+aJnCA+IHVcIDsKK+aJhiA+IGlcIDsKK+aJhSA+IGlcIDsKK+aHvyA+IGlcIDsKK+aEhyA+IGlcIDsKK+aDnyA+IGlcIDsKK+aCmCA+IGlcIDsKK+aBmiA+IGlcIDsKK+aAoSA+IGlcIDsKK+W+qyA+IGlcIDsKK+W9niA+IGlcIDsKK+W9nSA+IGlcIDsKK+W9nCA+IGlcIDsKK+W9myA+IGlcIDsKK+W9miA+IGlcIDsKK+W9mSA+IGlcIDsKK+W8rCA+IGlcIDsKK+W8mSA+IG9cIDsKK+W8giA+IGlcIDsKK+W5gyA+IGlcIDsKK+W3uCA+IGlcIDsKK+W3siA+IGlcIDsKK+W1qCA+IG9cIDsKK+W0uiA+IGlcIDsKK+W0oyA+IGlcIDsKK+WxmSA+IGFcIDsKK+WvqiA+IGlcIDsKK+WtsiA+IGFcIDsKK+WqpiA+IGlcIDsKK+WqmSA+IGlcIDsKK+WprSA+IGFcIDsKK+WpgCA+IGFcIDsKK+WovyA+IGFcIDsKK+WogyA+IGFcIDsKK+WnqCA+IGlcIDsKK+WmuCA+IGFcIDsKK+WjnSA+IGlcIDsKK+WhoiA+IG9cIDsKK+WgiiA+IGFcIDsKK+WfoSA+IG9cIDsKK+WdqCA+IGlcIDsKK+WcryA+IGlcIDsKK+WcrCA+IG9cIDsKK+WcqSA+IHVcIDsKK+WblyA+IGlcIDsKK+WZgSA+IG9cIDsKK+WWtCA+IGlcIDsKK+WWoSA+IGlcIDsKK+WVniA+IGFcIDsKK+WViiA+IGFcIDsKK+WSvyA+IGlcIDsKK+WSpiA+IGlcIDsKK+WQmiA+IGlcIDsKK+WPniA+IGlcIDsKK+WMnCA+IGlcIDsKK+WEsCA+IGlcIDsKK+WBryA+IGlcIDsKK+WBiiA+IHVcIDsKK+S+hyA+IGlcIDsKK+S8vyA+IGlcIDsKK+S6nCA+IGFcIDsKK+S6jyA+IHVcIDsKK+S6jiA+IHVcIDsKK+S6hCA+IGlcIDsKK+S5gSA+IGlcIDsKK+S4qyA+IGFcIDsKK+OAgiA8PiAnLic7CisjIEVuZCBSQVcgZGF0YSBmb3IgY29udmVydGluZyBDSksgY2hhcmFjdGVycworCisKKzo6IGthdGFrYW5hLWxhdGluICgpOworOjogaGlyYWdhbmEtbGF0aW4gKCk7Cis6OiBmdWxsd2lkdGgtaGFsZndpZHRoICgpOwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS9pY3VkYXRhLmphciBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGRmOTkxMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaWN1ZGF0YS5qYXIKQEAgLTAsMCArMSwzIEBACit2ZXJzaW9uIGh0dHBzOi8vZ2l0LWxmcy5naXRodWIuY29tL3NwZWMvdjEKK29pZCBzaGEyNTY6YTkxNjk4NGRkMWRlODM4ZTZmNzEzN2ExY2UwMmI4M2Y2ZjE0MDg2ZjVhMTE0Zjg0ZjY0NmMxMGFkNmRiNDYxOAorc2l6ZSAyMDk3NjIyCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS9pbXBsL2RhdGEvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRmOWJjZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLQorICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitSZXNvdXJjZSBkYXRhIHVzZWQgYnkgY2xhc3NlcyBpbiBjb20uaWJtLnRleHQuCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS90aC5icmsgYi9zcmMvY29tL2libS9pY3UvaW1wbC9kYXRhL3RoLmJyawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzA0OGVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2ltcGwvZGF0YS90aC5icmsKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3Rlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3Rlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdjZDc2MmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyLmphdmEKQEAgLTAsMCArMSw2MTAxIEBACisvLyMjaGVhZGVyCisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5sYW5nLnJlZi5Tb2Z0UmVmZXJlbmNlOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQmlEaVByb3BzOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNhc2VQcm9wczsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyTmFtZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJOYW1lQ2hvaWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVVByb3BlcnR5QWxpYXNlczsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJFbnVtcy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk5vcm1hbGl6ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlJhbmdlVmFsdWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WYWx1ZUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKy8qKgorICogPHA+CisgKiBUaGUgVUNoYXJhY3RlciBjbGFzcyBwcm92aWRlcyBleHRlbnNpb25zIHRvIHRoZSAKKyAqIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vajJzZS8xLjUvZG9jcy9hcGkvamF2YS9sYW5nL0NoYXJhY3Rlci5odG1sIj4KKyAqIGphdmEubGFuZy5DaGFyYWN0ZXI8L2E+IGNsYXNzLiBUaGVzZSBleHRlbnNpb25zIHByb3ZpZGUgc3VwcG9ydCBmb3IgCisgKiBtb3JlIFVuaWNvZGUgcHJvcGVydGllcyBhbmQgdG9nZXRoZXIgd2l0aCB0aGUgPGEgaHJlZj0uLi90ZXh0L1VURjE2Lmh0bWw+VVRGMTY8L2E+IAorICogY2xhc3MsIHByb3ZpZGUgc3VwcG9ydCBmb3Igc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzICh0aG9zZSB3aXRoIGNvZGUgCisgKiBwb2ludHMgYWJvdmUgVStGRkZGKS4KKyAqIEVhY2ggSUNVIHJlbGVhc2Ugc3VwcG9ydHMgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIFVuaWNvZGUgYXZhaWxhYmxlIGF0IHRoYXQgdGltZS4KKyAqIDwvcD4KKyAqIDxwPgorICogQ29kZSBwb2ludHMgYXJlIHJlcHJlc2VudGVkIGluIHRoZXNlIEFQSSB1c2luZyBpbnRzLiBXaGlsZSBpdCB3b3VsZCBiZSAKKyAqIG1vcmUgY29udmVuaWVudCBpbiBKYXZhIHRvIGhhdmUgYSBzZXBhcmF0ZSBwcmltaXRpdmUgZGF0YXR5cGUgZm9yIHRoZW0sIAorICogaW50cyBzdWZmaWNlIGluIHRoZSBtZWFudGltZS4KKyAqIDwvcD4KKyAqIDxwPgorICogVG8gdXNlIHRoaXMgY2xhc3MgcGxlYXNlIGFkZCB0aGUgamFyIGZpbGUgbmFtZSBpY3U0ai5qYXIgdG8gdGhlIAorICogY2xhc3MgcGF0aCwgc2luY2UgaXQgY29udGFpbnMgZGF0YSBmaWxlcyB3aGljaCBzdXBwbHkgdGhlIGluZm9ybWF0aW9uIHVzZWQgCisgKiBieSB0aGlzIGZpbGUuPGJyPgorICogRS5nLiBJbiBXaW5kb3dzIDxicj4KKyAqIDxjb2RlPnNldCBDTEFTU1BBVEg9JUNMQVNTUEFUSCU7JEpBUl9GSUxFX1BBVEgvdWNoYXJhY3Rlci5qYXI8L2NvZGU+Ljxicj4KKyAqIE90aGVyd2lzZSwgYW5vdGhlciBtZXRob2Qgd291bGQgYmUgdG8gY29weSB0aGUgZmlsZXMgdXByb3BzLmRhdCBhbmQgCisgKiB1bmFtZXMuaWN1IGZyb20gdGhlIGljdTRqIHNvdXJjZSBzdWJkaXJlY3RvcnkKKyAqIDxpPiRJQ1U0Sl9TUkMvc3JjL2NvbS5pYm0uaWN1LmltcGwuZGF0YTwvaT4gdG8geW91ciBjbGFzcyBkaXJlY3RvcnkgCisgKiA8aT4kSUNVNEpfQ0xBU1MvY29tLmlibS5pY3UuaW1wbC5kYXRhPC9pPi4KKyAqIDwvcD4KKyAqIDxwPgorICogQXNpZGUgZnJvbSB0aGUgYWRkaXRpb25zIGZvciBVVEYtMTYgc3VwcG9ydCwgYW5kIHRoZSB1cGRhdGVkIFVuaWNvZGUKKyAqIHByb3BlcnRpZXMsIHRoZSBtYWluIGRpZmZlcmVuY2VzIGJldHdlZW4gVUNoYXJhY3RlciBhbmQgQ2hhcmFjdGVyIGFyZToKKyAqIDx1bD4KKyAqIDxsaT4gVUNoYXJhY3RlciBpcyBub3QgZGVzaWduZWQgdG8gYmUgYSBjaGFyIHdyYXBwZXIgYW5kIGRvZXMgbm90IGhhdmUgCisgKiAgICAgIEFQSXMgdG8gd2hpY2ggaW52b2x2ZXMgbWFuYWdlbWVudCBvZiB0aGF0IHNpbmdsZSBjaGFyLjxicj4KKyAqICAgICAgVGhlc2UgaW5jbHVkZTogCisgKiAgICAgIDx1bD4KKyAqICAgICAgICA8bGk+IGNoYXIgY2hhclZhbHVlKCksIAorICogICAgICAgIDxsaT4gaW50IGNvbXBhcmVUbyhqYXZhLmxhbmcuQ2hhcmFjdGVyLCBqYXZhLmxhbmcuQ2hhcmFjdGVyKSwgZXRjLgorICogICAgICA8L3VsPgorICogPGxpPiBVQ2hhcmFjdGVyIGRvZXMgbm90IGluY2x1ZGUgQ2hhcmFjdGVyIEFQSXMgdGhhdCBhcmUgZGVwcmVjYXRlZCwgbm9yCisgKiAgICAgIGRvZXMgaXQgaW5jbHVkZSB0aGUgSmF2YS1zcGVjaWZpYyBjaGFyYWN0ZXIgaW5mb3JtYXRpb24sIHN1Y2ggYXMgCisgKiAgICAgIGJvb2xlYW4gaXNKYXZhSWRlbnRpZmllclBhcnQoY2hhciBjaCkuCisgKiA8bGk+IENoYXJhY3RlciBtYXBzIGNoYXJhY3RlcnMgJ0EnIC0gJ1onIGFuZCAnYScgLSAneicgdG8gdGhlIG51bWVyaWMgCisgKiAgICAgIHZhbHVlcyAnMTAnIC0gJzM1Jy4gVUNoYXJhY3RlciBhbHNvIGRvZXMgdGhpcyBpbiBkaWdpdCBhbmQKKyAqICAgICAgZ2V0TnVtZXJpY1ZhbHVlLCB0byBhZGhlcmUgdG8gdGhlIGphdmEgc2VtYW50aWNzIG9mIHRoZXNlCisgKiAgICAgIG1ldGhvZHMuICBOZXcgbWV0aG9kcyB1bmljb2RlRGlnaXQsIGFuZAorICogICAgICBnZXRVbmljb2RlTnVtZXJpY1ZhbHVlIGRvIG5vdCB0cmVhdCB0aGUgYWJvdmUgY29kZSBwb2ludHMgCisgKiAgICAgIGFzIGhhdmluZyBudW1lcmljIHZhbHVlcy4gIFRoaXMgaXMgYSBzZW1hbnRpYyBjaGFuZ2UgZnJvbSBJQ1U0SiAxLjMuMS4KKyAqIDwvdWw+CisgKiA8cD4KKyAqIEZ1cnRoZXIgZGV0YWlsIGRpZmZlcmVuY2VzIGNhbiBiZSBkZXRlcm1pbmVkIGZyb20gdGhlIHByb2dyYW0gCisgKiAgICAgICAgPGEgaHJlZj0iaHR0cDovL2Rldi5pY3UtcHJvamVjdC5vcmcvY2dpLWJpbi92aWV3Y3ZzLmNnaS9+Y2hlY2tvdXR+L2ljdTRqL3NyYy9jb20vaWJtL2ljdS9kZXYvdGVzdC9sYW5nL1VDaGFyYWN0ZXJDb21wYXJlLmphdmEiPgorICogICAgICAgIGNvbS5pYm0uaWN1LmRldi50ZXN0LmxhbmcuVUNoYXJhY3RlckNvbXBhcmU8L2E+CisgKiA8L3A+CisgKiA8cD4KKyAqIEluIGFkZGl0aW9uIHRvIEphdmEgY29tcGF0aWJpbGl0eSBmdW5jdGlvbnMsIHdoaWNoIGNhbGN1bGF0ZSBkZXJpdmVkIHByb3BlcnRpZXMsCisgKiB0aGlzIEFQSSBwcm92aWRlcyBsb3ctbGV2ZWwgYWNjZXNzIHRvIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZS4KKyAqIDwvcD4KKyAqIDxwPgorICogVW5pY29kZSBhc3NpZ25zIGVhY2ggY29kZSBwb2ludCAobm90IGp1c3QgYXNzaWduZWQgY2hhcmFjdGVyKSB2YWx1ZXMgZm9yCisgKiBtYW55IHByb3BlcnRpZXMuCisgKiBNb3N0IG9mIHRoZW0gYXJlIHNpbXBsZSBib29sZWFuIGZsYWdzLCBvciBjb25zdGFudHMgZnJvbSBhIHNtYWxsIGVudW1lcmF0ZWQgbGlzdC4KKyAqIEZvciBzb21lIHByb3BlcnRpZXMsIHZhbHVlcyBhcmUgc3RyaW5ncyBvciBvdGhlciByZWxhdGl2ZWx5IG1vcmUgY29tcGxleCB0eXBlcy4KKyAqIDwvcD4KKyAqIDxwPgorICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlCisgKiAiQWJvdXQgdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlIiAoaHR0cDovL3d3dy51bmljb2RlLm9yZy91Y2QvKQorICogYW5kIHRoZSBJQ1UgVXNlciBHdWlkZSBjaGFwdGVyIG9uIFByb3BlcnRpZXMgKGh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9wcm9wZXJ0aWVzLmh0bWwpLgorICogPC9wPgorICogPHA+CisgKiBUaGVyZSBhcmUgYWxzbyBmdW5jdGlvbnMgdGhhdCBwcm92aWRlIGVhc3kgbWlncmF0aW9uIGZyb20gQy9QT1NJWCBmdW5jdGlvbnMKKyAqIGxpa2UgaXNibGFuaygpLiBUaGVpciB1c2UgaXMgZ2VuZXJhbGx5IGRpc2NvdXJhZ2VkIGJlY2F1c2UgdGhlIEMvUE9TSVgKKyAqIHN0YW5kYXJkcyBkbyBub3QgZGVmaW5lIHRoZWlyIHNlbWFudGljcyBiZXlvbmQgdGhlIEFTQ0lJIHJhbmdlLCB3aGljaCBtZWFucworICogdGhhdCBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb25zIGV4aGliaXQgdmVyeSBkaWZmZXJlbnQgYmVoYXZpb3IuCisgKiBJbnN0ZWFkLCBVbmljb2RlIHByb3BlcnRpZXMgc2hvdWxkIGJlIHVzZWQgZGlyZWN0bHkuCisgKiA8L3A+CisgKiA8cD4KKyAqIFRoZXJlIGFyZSBhbHNvIG9ubHkgYSBmZXcsIGJyb2FkIEMvUE9TSVggY2hhcmFjdGVyIGNsYXNzZXMsIGFuZCB0aGV5IHRlbmQKKyAqIHRvIGJlIHVzZWQgZm9yIGNvbmZsaWN0aW5nIHB1cnBvc2VzLiBGb3IgZXhhbXBsZSwgdGhlICJpc2FscGhhKCkiIGNsYXNzCisgKiBpcyBzb21ldGltZXMgdXNlZCB0byBkZXRlcm1pbmUgd29yZCBib3VuZGFyaWVzLCB3aGlsZSBhIG1vcmUgc29waGlzdGljYXRlZAorICogYXBwcm9hY2ggd291bGQgYXQgbGVhc3QgZGlzdGluZ3Vpc2ggaW5pdGlhbCBsZXR0ZXJzIGZyb20gY29udGludWF0aW9uCisgKiBjaGFyYWN0ZXJzICh0aGUgbGF0dGVyIGluY2x1ZGluZyBjb21iaW5pbmcgbWFya3MpLgorICogKEluIElDVSwgQnJlYWtJdGVyYXRvciBpcyB0aGUgbW9zdCBzb3BoaXN0aWNhdGVkIEFQSSBmb3Igd29yZCBib3VuZGFyaWVzLikKKyAqIEFub3RoZXIgZXhhbXBsZTogVGhlcmUgaXMgbm8gImlzdGl0bGUoKSIgY2xhc3MgZm9yIHRpdGxlY2FzZSBjaGFyYWN0ZXJzLgorICogPC9wPgorICogPHA+CisgKiBJQ1UgMy40IGFuZCBsYXRlciBwcm92aWRlcyBBUEkgYWNjZXNzIGZvciBhbGwgdHdlbHZlIEMvUE9TSVggY2hhcmFjdGVyIGNsYXNzZXMuCisgKiBJQ1UgaW1wbGVtZW50cyB0aGVtIGFjY29yZGluZyB0byB0aGUgU3RhbmRhcmQgUmVjb21tZW5kYXRpb25zIGluCisgKiBBbm5leCBDOiBDb21wYXRpYmlsaXR5IFByb3BlcnRpZXMgb2YgVVRTICMxOCBVbmljb2RlIFJlZ3VsYXIgRXhwcmVzc2lvbnMKKyAqIChodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIxOC8jQ29tcGF0aWJpbGl0eV9Qcm9wZXJ0aWVzKS4KKyAqIDwvcD4KKyAqIDxwPgorICogQVBJIGFjY2VzcyBmb3IgQy9QT1NJWCBjaGFyYWN0ZXIgY2xhc3NlcyBpcyBhcyBmb2xsb3dzOgorICogLSBhbHBoYTogICAgIGlzVUFscGhhYmV0aWMoYykgb3IgaGFzQmluYXJ5UHJvcGVydHkoYywgVVByb3BlcnR5LkFMUEhBQkVUSUMpCisgKiAtIGxvd2VyOiAgICAgaXNVTG93ZXJjYXNlKGMpIG9yIGhhc0JpbmFyeVByb3BlcnR5KGMsIFVQcm9wZXJ0eS5MT1dFUkNBU0UpCisgKiAtIHVwcGVyOiAgICAgaXNVVXBwZXJjYXNlKGMpIG9yIGhhc0JpbmFyeVByb3BlcnR5KGMsIFVQcm9wZXJ0eS5VUFBFUkNBU0UpCisgKiAtIHB1bmN0OiAgICAgKCgxPDxnZXRUeXBlKGMpKSAmICgoMTw8REFTSF9QVU5DVFVBVElPTil8KDE8PFNUQVJUX1BVTkNUVUFUSU9OKXwoMTw8RU5EX1BVTkNUVUFUSU9OKXwoMTw8Q09OTkVDVE9SX1BVTkNUVUFUSU9OKXwoMTw8T1RIRVJfUFVOQ1RVQVRJT04pfCgxPDxJTklUSUFMX1BVTkNUVUFUSU9OKXwoMTw8RklOQUxfUFVOQ1RVQVRJT04pKSkhPTAKKyAqIC0gZGlnaXQ6ICAgICBpc0RpZ2l0KGMpIG9yIGdldFR5cGUoYyk9PURFQ0lNQUxfRElHSVRfTlVNQkVSCisgKiAtIHhkaWdpdDogICAgaGFzQmluYXJ5UHJvcGVydHkoYywgVVByb3BlcnR5LlBPU0lYX1hESUdJVCkKKyAqIC0gYWxudW06ICAgICBoYXNCaW5hcnlQcm9wZXJ0eShjLCBVUHJvcGVydHkuUE9TSVhfQUxOVU0pCisgKiAtIHNwYWNlOiAgICAgaXNVV2hpdGVTcGFjZShjKSBvciBoYXNCaW5hcnlQcm9wZXJ0eShjLCBVUHJvcGVydHkuV0hJVEVfU1BBQ0UpCisgKiAtIGJsYW5rOiAgICAgaGFzQmluYXJ5UHJvcGVydHkoYywgVVByb3BlcnR5LlBPU0lYX0JMQU5LKQorICogLSBjbnRybDogICAgIGdldFR5cGUoYyk9PUNPTlRST0wKKyAqIC0gZ3JhcGg6ICAgICBoYXNCaW5hcnlQcm9wZXJ0eShjLCBVUHJvcGVydHkuUE9TSVhfR1JBUEgpCisgKiAtIHByaW50OiAgICAgaGFzQmluYXJ5UHJvcGVydHkoYywgVVByb3BlcnR5LlBPU0lYX1BSSU5UKQorICogPC9wPgorICogPHA+CisgKiBUaGUgQy9QT1NJWCBjaGFyYWN0ZXIgY2xhc3NlcyBhcmUgYWxzbyBhdmFpbGFibGUgaW4gVW5pY29kZVNldCBwYXR0ZXJucywKKyAqIHVzaW5nIHBhdHRlcm5zIGxpa2UgWzpncmFwaDpdIG9yIFxwe2dyYXBofS4KKyAqIDwvcD4KKyAqIDxwPgorICogTm90ZTogVGhlcmUgYXJlIHNldmVyYWwgSUNVIChhbmQgSmF2YSkgd2hpdGVzcGFjZSBmdW5jdGlvbnMuCisgKiBDb21wYXJpc29uOgorICogLSBpc1VXaGl0ZVNwYWNlPVVDSEFSX1dISVRFX1NQQUNFOiBVbmljb2RlIFdoaXRlX1NwYWNlIHByb3BlcnR5OworICogICAgICAgbW9zdCBvZiBnZW5lcmFsIGNhdGVnb3JpZXMgIloiIChzZXBhcmF0b3JzKSArIG1vc3Qgd2hpdGVzcGFjZSBJU08gY29udHJvbHMKKyAqICAgICAgIChpbmNsdWRpbmcgbm8tYnJlYWsgc3BhY2VzLCBidXQgZXhjbHVkaW5nIElTMS4uSVM0IGFuZCBaV1NQKQorICogLSBpc1doaXRlc3BhY2U6IEphdmEgaXNXaGl0ZXNwYWNlOyBaICsgd2hpdGVzcGFjZSBJU08gY29udHJvbHMgYnV0IGV4Y2x1ZGluZyBuby1icmVhayBzcGFjZXMKKyAqIC0gaXNTcGFjZUNoYXI6IGp1c3QgWiAoaW5jbHVkaW5nIG5vLWJyZWFrIHNwYWNlcykKKyAqIDwvcD4KKyAqIDxwPgorICogVGhpcyBjbGFzcyBpcyBub3Qgc3ViY2xhc3NhYmxlCisgKiA8L3A+CisgKiBAYXV0aG9yIFN5biBXZWUgUXVlaworICogQHN0YWJsZSBJQ1UgMi4xCisgKiBAc2VlIGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckVudW1zCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVDaGFyYWN0ZXIgaW1wbGVtZW50cyBFQ2hhcmFjdGVyQ2F0ZWdvcnksIEVDaGFyYWN0ZXJEaXJlY3Rpb24KK3sgCisgICAgLy8gcHVibGljIGlubmVyIGNsYXNzZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgCisgICAgLyoqCisgICAgICogQSBmYW1pbHkgb2YgY2hhcmFjdGVyIHN1YnNldHMgcmVwcmVzZW50aW5nIHRoZSBjaGFyYWN0ZXIgYmxvY2tzIGluIHRoZSAKKyAgICAgKiBVbmljb2RlIHNwZWNpZmljYXRpb24sIGdlbmVyYXRlZCBmcm9tIFVuaWNvZGUgRGF0YSBmaWxlIEJsb2Nrcy50eHQuIAorICAgICAqIENoYXJhY3RlciBibG9ja3MgZ2VuZXJhbGx5IGRlZmluZSBjaGFyYWN0ZXJzIHVzZWQgZm9yIGEgc3BlY2lmaWMgc2NyaXB0IAorICAgICAqIG9yIHB1cnBvc2UuIEEgY2hhcmFjdGVyIGlzIGNvbnRhaW5lZCBieSBhdCBtb3N0IG9uZSBVbmljb2RlIGJsb2NrLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFVuaWNvZGVCbG9jayBleHRlbmRzIENoYXJhY3Rlci5TdWJzZXQgCisgICAgeworICAgICAgICAvLyBibG9ja3Mgb2JqZWN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBOT19CTE9DSyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTk9fQkxPQ0siLCAwKTsKKworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQkFTSUNfTEFUSU4gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkJBU0lDX0xBVElOIiwgMSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTEFUSU5fMV9TVVBQTEVNRU5UIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJMQVRJTl8xX1NVUFBMRU1FTlQiLCAyKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBMQVRJTl9FWFRFTkRFRF9BCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkxBVElOX0VYVEVOREVEX0EiLCAzKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBMQVRJTl9FWFRFTkRFRF9CIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJMQVRJTl9FWFRFTkRFRF9CIiwgNCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgSVBBX0VYVEVOU0lPTlMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIklQQV9FWFRFTlNJT05TIiwgNSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU1BBQ0lOR19NT0RJRklFUl9MRVRURVJTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJTUEFDSU5HX01PRElGSUVSX0xFVFRFUlMiLCA2KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDT01CSU5JTkdfRElBQ1JJVElDQUxfTUFSS1MgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNPTUJJTklOR19ESUFDUklUSUNBTF9NQVJLUyIsIDcpOworICAgICAgICAvKioKKyAgICAgICAgICogVW5pY29kZSAzLjIgcmVuYW1lcyB0aGlzIGJsb2NrIHRvICJHcmVlayBhbmQgQ29wdGljIi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBHUkVFSworICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJHUkVFSyIsIDgpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENZUklMTElDIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDWVJJTExJQyIsIDkpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEFSTUVOSUFOIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJBUk1FTklBTiIsIDEwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBIRUJSRVcgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkhFQlJFVyIsIDExKTsgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEFSQUJJQworICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJBUkFCSUMiLCAxMik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU1lSSUFDIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJTWVJJQUMiLCAxMyk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVEhBQU5BIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJUSEFBTkEiLCAxNCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgREVWQU5BR0FSSSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiREVWQU5BR0FSSSIsIDE1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBCRU5HQUxJIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJCRU5HQUxJIiwgMTYpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEdVUk1VS0hJIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJHVVJNVUtISSIsIDE3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBHVUpBUkFUSSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiR1VKQVJBVEkiLCAxOCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgT1JJWUEgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk9SSVlBIiwgMTkpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFRBTUlMIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJUQU1JTCIsIDIwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBURUxVR1UgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlRFTFVHVSIsIDIxKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBLQU5OQURBIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJLQU5OQURBIiwgMjIpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1BTEFZQUxBTSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTUFMQVlBTEFNIiwgMjMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFNJTkhBTEEgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlNJTkhBTEEiLCAyNCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVEhBSSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiVEhBSSIsIDI1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBMQU8gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkxBTyIsIDI2KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBUSUJFVEFOIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJUSUJFVEFOIiwgMjcpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1ZQU5NQVIgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk1ZQU5NQVIiLCAyOCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgR0VPUkdJQU4gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkdFT1JHSUFOIiwgMjkpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEhBTkdVTF9KQU1PIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJIQU5HVUxfSkFNTyIsIDMwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBFVEhJT1BJQyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiRVRISU9QSUMiLCAzMSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ0hFUk9LRUUgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNIRVJPS0VFIiwgMzIpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFVOSUZJRURfQ0FOQURJQU5fQUJPUklHSU5BTF9TWUxMQUJJQ1MgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlVOSUZJRURfQ0FOQURJQU5fQUJPUklHSU5BTF9TWUxMQUJJQ1MiLCAzMyk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgT0dIQU0gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk9HSEFNIiwgMzQpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFJVTklDIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJSVU5JQyIsIDM1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBLSE1FUiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiS0hNRVIiLCAzNik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTU9OR09MSUFOIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJNT05HT0xJQU4iLCAzNyk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTEFUSU5fRVhURU5ERURfQURESVRJT05BTCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTEFUSU5fRVhURU5ERURfQURESVRJT05BTCIsIDM4KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBHUkVFS19FWFRFTkRFRCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiR1JFRUtfRVhURU5ERUQiLCAzOSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgR0VORVJBTF9QVU5DVFVBVElPTiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiR0VORVJBTF9QVU5DVFVBVElPTiIsIDQwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBTVVBFUlNDUklQVFNfQU5EX1NVQlNDUklQVFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlNVUEVSU0NSSVBUU19BTkRfU1VCU0NSSVBUUyIsIDQxKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDVVJSRU5DWV9TWU1CT0xTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDVVJSRU5DWV9TWU1CT0xTIiwgNDIpOworICAgICAgICAvKioKKyAgICAgICAgICogVW5pY29kZSAzLjIgcmVuYW1lcyB0aGlzIGJsb2NrIHRvICJDb21iaW5pbmcgRGlhY3JpdGljYWwgTWFya3MgZm9yIAorICAgICAgICAgKiBTeW1ib2xzIi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDT01CSU5JTkdfTUFSS1NfRk9SX1NZTUJPTFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNPTUJJTklOR19NQVJLU19GT1JfU1lNQk9MUyIsIDQzKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBMRVRURVJMSUtFX1NZTUJPTFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkxFVFRFUkxJS0VfU1lNQk9MUyIsIDQ0KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBOVU1CRVJfRk9STVMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk5VTUJFUl9GT1JNUyIsIDQ1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBBUlJPV1MgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkFSUk9XUyIsIDQ2KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNQVRIRU1BVElDQUxfT1BFUkFUT1JTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJNQVRIRU1BVElDQUxfT1BFUkFUT1JTIiwgNDcpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1JU0NFTExBTkVPVVNfVEVDSE5JQ0FMIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJNSVNDRUxMQU5FT1VTX1RFQ0hOSUNBTCIsIDQ4KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDT05UUk9MX1BJQ1RVUkVTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDT05UUk9MX1BJQ1RVUkVTIiwgNDkpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE9QVElDQUxfQ0hBUkFDVEVSX1JFQ09HTklUSU9OIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJPUFRJQ0FMX0NIQVJBQ1RFUl9SRUNPR05JVElPTiIsIDUwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBFTkNMT1NFRF9BTFBIQU5VTUVSSUNTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJFTkNMT1NFRF9BTFBIQU5VTUVSSUNTIiwgNTEpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEJPWF9EUkFXSU5HIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJCT1hfRFJBV0lORyIsIDUyKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBCTE9DS19FTEVNRU5UUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQkxPQ0tfRUxFTUVOVFMiLCA1Myk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgR0VPTUVUUklDX1NIQVBFUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiR0VPTUVUUklDX1NIQVBFUyIsIDU0KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNSVNDRUxMQU5FT1VTX1NZTUJPTFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk1JU0NFTExBTkVPVVNfU1lNQk9MUyIsIDU1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBESU5HQkFUUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiRElOR0JBVFMiLCA1Nik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQlJBSUxMRV9QQVRURVJOUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQlJBSUxMRV9QQVRURVJOUyIsIDU3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDSktfUkFESUNBTFNfU1VQUExFTUVOVCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ0pLX1JBRElDQUxTX1NVUFBMRU1FTlQiLCA1OCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgS0FOR1hJX1JBRElDQUxTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJLQU5HWElfUkFESUNBTFMiLCA1OSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgSURFT0dSQVBISUNfREVTQ1JJUFRJT05fQ0hBUkFDVEVSUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiSURFT0dSQVBISUNfREVTQ1JJUFRJT05fQ0hBUkFDVEVSUyIsIDYwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDSktfU1lNQk9MU19BTkRfUFVOQ1RVQVRJT04gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNKS19TWU1CT0xTX0FORF9QVU5DVFVBVElPTiIsIDYxKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBISVJBR0FOQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiSElSQUdBTkEiLCA2Mik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgS0FUQUtBTkEgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIktBVEFLQU5BIiwgNjMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEJPUE9NT0ZPIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJCT1BPTU9GTyIsIDY0KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBIQU5HVUxfQ09NUEFUSUJJTElUWV9KQU1PIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJIQU5HVUxfQ09NUEFUSUJJTElUWV9KQU1PIiwgNjUpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEtBTkJVTiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiS0FOQlVOIiwgNjYpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEJPUE9NT0ZPX0VYVEVOREVEIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJCT1BPTU9GT19FWFRFTkRFRCIsIDY3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBFTkNMT1NFRF9DSktfTEVUVEVSU19BTkRfTU9OVEhTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJFTkNMT1NFRF9DSktfTEVUVEVSU19BTkRfTU9OVEhTIiwgNjgpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENKS19DT01QQVRJQklMSVRZIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDSktfQ09NUEFUSUJJTElUWSIsIDY5KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9BIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9BIiwgNzApOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENKS19VTklGSUVEX0lERU9HUkFQSFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNKS19VTklGSUVEX0lERU9HUkFQSFMiLCA3MSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgWUlfU1lMTEFCTEVTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJZSV9TWUxMQUJMRVMiLCA3Mik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgWUlfUkFESUNBTFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIllJX1JBRElDQUxTIiwgNzMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEhBTkdVTF9TWUxMQUJMRVMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkhBTkdVTF9TWUxMQUJMRVMiLCA3NCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgSElHSF9TVVJST0dBVEVTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJISUdIX1NVUlJPR0FURVMiLCA3NSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgSElHSF9QUklWQVRFX1VTRV9TVVJST0dBVEVTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJISUdIX1BSSVZBVEVfVVNFX1NVUlJPR0FURVMiLCA3Nik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTE9XX1NVUlJPR0FURVMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkxPV19TVVJST0dBVEVTIiwgNzcpOworICAgICAgICAvKioKKyAgICAgICAgICogU2FtZSBhcyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUklWQVRFX1VTRS4KKyAgICAgICAgICogVW50aWwgVW5pY29kZSAzLjEuMTsgdGhlIGNvcnJlc3BvbmRpbmcgYmxvY2sgbmFtZSB3YXMgIlByaXZhdGUgVXNlIjsKKyAgICAgICAgICogYW5kIG11bHRpcGxlIGNvZGUgcG9pbnQgcmFuZ2VzIGhhZCB0aGlzIGJsb2NrLgorICAgICAgICAgKiBVbmljb2RlIDMuMiByZW5hbWVzIHRoZSBibG9jayBmb3IgdGhlIEJNUCBQVUEgdG8gIlByaXZhdGUgVXNlIEFyZWEiIAorICAgICAgICAgKiBhbmQgYWRkcyBzZXBhcmF0ZSBibG9ja3MgZm9yIHRoZSBzdXBwbGVtZW50YXJ5IFBVQXMuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgUFJJVkFURV9VU0VfQVJFQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiUFJJVkFURV9VU0VfQVJFQSIsICA3OCk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBTYW1lIGFzIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBSSVZBVEVfVVNFX0FSRUEuCisgICAgICAgICAqIFVudGlsIFVuaWNvZGUgMy4xLjE7IHRoZSBjb3JyZXNwb25kaW5nIGJsb2NrIG5hbWUgd2FzICJQcml2YXRlIFVzZSI7CisgICAgICAgICAqIGFuZCBtdWx0aXBsZSBjb2RlIHBvaW50IHJhbmdlcyBoYWQgdGhpcyBibG9jay4KKyAgICAgICAgICogVW5pY29kZSAzLjIgcmVuYW1lcyB0aGUgYmxvY2sgZm9yIHRoZSBCTVAgUFVBIHRvICJQcml2YXRlIFVzZSBBcmVhIiAKKyAgICAgICAgICogYW5kIGFkZHMgc2VwYXJhdGUgYmxvY2tzIGZvciB0aGUgc3VwcGxlbWVudGFyeSBQVUFzLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFBSSVZBVEVfVVNFIAorICAgICAgICAgICAgPSBQUklWQVRFX1VTRV9BUkVBOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENKS19DT01QQVRJQklMSVRZX0lERU9HUkFQSFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkNKS19DT01QQVRJQklMSVRZX0lERU9HUkFQSFMiLCA3OSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQUxQSEFCRVRJQ19QUkVTRU5UQVRJT05fRk9STVMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkFMUEhBQkVUSUNfUFJFU0VOVEFUSU9OX0ZPUk1TIiwgODApOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQVJBQklDX1BSRVNFTlRBVElPTl9GT1JNU19BIiwgODEpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENPTUJJTklOR19IQUxGX01BUktTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDT01CSU5JTkdfSEFMRl9NQVJLUyIsIDgyKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDSktfQ09NUEFUSUJJTElUWV9GT1JNUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ0pLX0NPTVBBVElCSUxJVFlfRk9STVMiLCA4Myk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU01BTExfRk9STV9WQVJJQU5UUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiU01BTExfRk9STV9WQVJJQU5UUyIsIDg0KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBBUkFCSUNfUFJFU0VOVEFUSU9OX0ZPUk1TX0IgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQiIsIDg1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBTUEVDSUFMUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiU1BFQ0lBTFMiLCA4Nik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgSEFMRldJRFRIX0FORF9GVUxMV0lEVEhfRk9STVMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkhBTEZXSURUSF9BTkRfRlVMTFdJRFRIX0ZPUk1TIiwgODcpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE9MRF9JVEFMSUMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIk9MRF9JVEFMSUMiLCA4OCk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgR09USElDIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJHT1RISUMiLCA4OSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgREVTRVJFVCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiREVTRVJFVCIsIDkwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBCWVpBTlRJTkVfTVVTSUNBTF9TWU1CT0xTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJCWVpBTlRJTkVfTVVTSUNBTF9TWU1CT0xTIiwgOTEpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1VU0lDQUxfU1lNQk9MUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTVVTSUNBTF9TWU1CT0xTIiwgOTIpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1BVEhFTUFUSUNBTF9BTFBIQU5VTUVSSUNfU1lNQk9MUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTUFUSEVNQVRJQ0FMX0FMUEhBTlVNRVJJQ19TWU1CT0xTIiwgOTMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENKS19VTklGSUVEX0lERU9HUkFQSFNfRVhURU5TSU9OX0IgIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9CIiwgOTQpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIAorICAgICAgICAgICAgQ0pLX0NPTVBBVElCSUxJVFlfSURFT0dSQVBIU19TVVBQTEVNRU5UIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTX1NVUFBMRU1FTlQiLCA5NSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVEFHUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiVEFHUyIsIDk2KTsKKyAgICAKKyAgICAgICAgLy8gTmV3IGJsb2NrcyBpbiBVbmljb2RlIDMuMgorICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIFVuaWNvZGUgNC4wLjEgcmVuYW1lcyB0aGUgIkN5cmlsbGljIFN1cHBsZW1lbnRhcnkiIGJsb2NrIHRvICJDeXJpbGxpYyBTdXBwbGVtZW50Ii4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ1lSSUxMSUNfU1VQUExFTUVOVEFSWSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ1lSSUxMSUNfU1VQUExFTUVOVEFSWSIsIDk3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBVbmljb2RlIDQuMC4xIHJlbmFtZXMgdGhlICJDeXJpbGxpYyBTdXBwbGVtZW50YXJ5IiBibG9jayB0byAiQ3lyaWxsaWMgU3VwcGxlbWVudCIuCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ1lSSUxMSUNfU1VQUExFTUVOVCAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ1lSSUxMSUNfU1VQUExFTUVOVCIsIDk3KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBUQUdBTE9HIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJUQUdBTE9HIiwgOTgpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEhBTlVOT08gCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkhBTlVOT08iLCA5OSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQlVISUQgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIkJVSElEIiwgMTAwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBUQUdCQU5XQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiVEFHQkFOV0EiLCAxMDEpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1JU0NFTExBTkVPVVNfTUFUSEVNQVRJQ0FMX1NZTUJPTFNfQSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTUlTQ0VMTEFORU9VU19NQVRIRU1BVElDQUxfU1lNQk9MU19BIiwgMTAyKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBTVVBQTEVNRU5UQUxfQVJST1dTX0EgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlNVUFBMRU1FTlRBTF9BUlJPV1NfQSIsIDEwMyk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU1VQUExFTUVOVEFMX0FSUk9XU19CIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJTVVBQTEVNRU5UQUxfQVJST1dTX0IiLCAxMDQpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIE1JU0NFTExBTkVPVVNfTUFUSEVNQVRJQ0FMX1NZTUJPTFNfQiAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTUlTQ0VMTEFORU9VU19NQVRIRU1BVElDQUxfU1lNQk9MU19CIiwgMTA1KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBTVVBQTEVNRU5UQUxfTUFUSEVNQVRJQ0FMX09QRVJBVE9SUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiU1VQUExFTUVOVEFMX01BVEhFTUFUSUNBTF9PUEVSQVRPUlMiLCAxMDYpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEtBVEFLQU5BX1BIT05FVElDX0VYVEVOU0lPTlMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIktBVEFLQU5BX1BIT05FVElDX0VYVEVOU0lPTlMiLCAxMDcpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFZBUklBVElPTl9TRUxFQ1RPUlMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlZBUklBVElPTl9TRUxFQ1RPUlMiLCAxMDgpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFNVUFBMRU1FTlRBUllfUFJJVkFURV9VU0VfQVJFQV9BIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJTVVBQTEVNRU5UQVJZX1BSSVZBVEVfVVNFX0FSRUFfQSIsIDEwOSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU1VQUExFTUVOVEFSWV9QUklWQVRFX1VTRV9BUkVBX0IgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlNVUFBMRU1FTlRBUllfUFJJVkFURV9VU0VfQVJFQV9CIiwgMTEwKTsKKyAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIExJTUJVIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJMSU1CVSIsIDExMSk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVEFJX0xFIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJUQUkgTEUiLCAxMTIpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEtITUVSX1NZTUJPTFMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIktITUVSIFNZTUJPTFMiLCAxMTMpOworCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgUEhPTkVUSUNfRVhURU5TSU9OUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiUEhPTkVUSUMgRVhURU5TSU9OUyIsIDExNCk7CisKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNSVNDRUxMQU5FT1VTX1NZTUJPTFNfQU5EX0FSUk9XUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTUlTQ0VMTEFORU9VU19TWU1CT0xTX0FORF9BUlJPV1MiLCAxMTUpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFlJSklOR19IRVhBR1JBTV9TWU1CT0xTIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJZSUpJTkdfSEVYQUdSQU1fU1lNQk9MUyIsIDExNik7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTElORUFSX0JfU1lMTEFCQVJZIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJMSU5FQVJfQl9TWUxMQUJBUlkiLCAxMTcpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIExJTkVBUl9CX0lERU9HUkFNUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiTElORUFSX0JfSURFT0dSQU1TIiwgMTE4KTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBBRUdFQU5fTlVNQkVSUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQUVHRUFOX05VTUJFUlMiLCAxMTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVUdBUklUSUMgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIlVHQVJJVElDIiwgMTIwKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBTSEFWSUFOIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJTSEFWSUFOIiwgMTIxKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBPU01BTllBIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJPU01BTllBIiwgMTIyKTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDWVBSSU9UX1NZTExBQkFSWSAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiQ1lQUklPVF9TWUxMQUJBUlkiLCAxMjMpOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFRBSV9YVUFOX0pJTkdfU1lNQk9MUyAKKyAgICAgICAgICAgID0gbmV3IFVuaWNvZGVCbG9jaygiVEFJX1hVQU5fSklOR19TWU1CT0xTIiwgMTI0KTsKKyAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgVkFSSUFUSU9OX1NFTEVDVE9SU19TVVBQTEVNRU5UIAorICAgICAgICAgICAgPSBuZXcgVW5pY29kZUJsb2NrKCJWQVJJQVRJT05fU0VMRUNUT1JTX1NVUFBMRU1FTlQiLCAxMjUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgLyogTmV3IGJsb2NrcyBpbiBVbmljb2RlIDQuMSAqLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEFOQ0lFTlRfR1JFRUtfTVVTSUNBTF9OT1RBVElPTiA9IG5ldyBVbmljb2RlQmxvY2soIkFOQ0lFTlRfR1JFRUtfTVVTSUNBTF9OT1RBVElPTiIsIDEyNik7IC8qWzFEMjAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQU5DSUVOVF9HUkVFS19OVU1CRVJTID0gbmV3IFVuaWNvZGVCbG9jaygiQU5DSUVOVF9HUkVFS19OVU1CRVJTIiwgMTI3KTsgLypbMTAxNDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBBUkFCSUNfU1VQUExFTUVOVCA9IG5ldyBVbmljb2RlQmxvY2soIkFSQUJJQ19TVVBQTEVNRU5UIiwgMTI4KTsgLypbMDc1MF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEJVR0lORVNFID0gbmV3IFVuaWNvZGVCbG9jaygiQlVHSU5FU0UiLCAxMjkpOyAvKlsxQTAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgQ0pLX1NUUk9LRVMgPSBuZXcgVW5pY29kZUJsb2NrKCJDSktfU1RST0tFUyIsIDEzMCk7IC8qWzMxQzBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBDT01CSU5JTkdfRElBQ1JJVElDQUxfTUFSS1NfU1VQUExFTUVOVCA9IG5ldyBVbmljb2RlQmxvY2soIkNPTUJJTklOR19ESUFDUklUSUNBTF9NQVJLU19TVVBQTEVNRU5UIiwgMTMxKTsgLypbMURDMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIENPUFRJQyA9IG5ldyBVbmljb2RlQmxvY2soIkNPUFRJQyIsIDEzMik7IC8qWzJDODBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBFVEhJT1BJQ19FWFRFTkRFRCA9IG5ldyBVbmljb2RlQmxvY2soIkVUSElPUElDX0VYVEVOREVEIiwgMTMzKTsgLypbMkQ4MF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEVUSElPUElDX1NVUFBMRU1FTlQgPSBuZXcgVW5pY29kZUJsb2NrKCJFVEhJT1BJQ19TVVBQTEVNRU5UIiwgMTM0KTsgLypbMTM4MF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEdFT1JHSUFOX1NVUFBMRU1FTlQgPSBuZXcgVW5pY29kZUJsb2NrKCJHRU9SR0lBTl9TVVBQTEVNRU5UIiwgMTM1KTsgLypbMkQwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEdMQUdPTElUSUMgPSBuZXcgVW5pY29kZUJsb2NrKCJHTEFHT0xJVElDIiwgMTM2KTsgLypbMkMwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIEtIQVJPU0hUSEkgPSBuZXcgVW5pY29kZUJsb2NrKCJLSEFST1NIVEhJIiwgMTM3KTsgLypbMTBBMDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBNT0RJRklFUl9UT05FX0xFVFRFUlMgPSBuZXcgVW5pY29kZUJsb2NrKCJNT0RJRklFUl9UT05FX0xFVFRFUlMiLCAxMzgpOyAvKltBNzAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgTkVXX1RBSV9MVUUgPSBuZXcgVW5pY29kZUJsb2NrKCJORVdfVEFJX0xVRSIsIDEzOSk7IC8qWzE5ODBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBPTERfUEVSU0lBTiA9IG5ldyBVbmljb2RlQmxvY2soIk9MRF9QRVJTSUFOIiwgMTQwKTsgLypbMTAzQTBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBQSE9ORVRJQ19FWFRFTlNJT05TX1NVUFBMRU1FTlQgPSBuZXcgVW5pY29kZUJsb2NrKCJQSE9ORVRJQ19FWFRFTlNJT05TX1NVUFBMRU1FTlQiLCAxNDEpOyAvKlsxRDgwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVbmljb2RlQmxvY2sgU1VQUExFTUVOVEFMX1BVTkNUVUFUSU9OID0gbmV3IFVuaWNvZGVCbG9jaygiU1VQUExFTUVOVEFMX1BVTkNUVUFUSU9OIiwgMTQyKTsgLypbMkUwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFNZTE9USV9OQUdSSSA9IG5ldyBVbmljb2RlQmxvY2soIlNZTE9USV9OQUdSSSIsIDE0Myk7IC8qW0E4MDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBUSUZJTkFHSCA9IG5ldyBVbmljb2RlQmxvY2soIlRJRklOQUdIIiwgMTQ0KTsgLypbMkQzMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVW5pY29kZUJsb2NrIFZFUlRJQ0FMX0ZPUk1TID0gbmV3IFVuaWNvZGVCbG9jaygiVkVSVElDQUxfRk9STVMiLCAxNDUpOyAvKltGRTEwXSovCisKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBJTlZBTElEX0NPREUgCisgICAgICAgICAgICA9IG5ldyBVbmljb2RlQmxvY2soIklOVkFMSURfQ09ERSIsIC0xKTsKKyAgICAgICAgICAgCisgICAgICAgIC8vIGJsb2NrIGlkIGNvcnJlc3BvbmRpbmcgdG8gaWN1NGMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5WQUxJRF9DT0RFX0lEID0gLTE7ICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJBU0lDX0xBVElOX0lEID0gMTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRJTl8xX1NVUFBMRU1FTlRfSUQgPSAyOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBVElOX0VYVEVOREVEX0FfSUQgPSAzOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBVElOX0VYVEVOREVEX0JfSUQgPSA0OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElQQV9FWFRFTlNJT05TX0lEID0gNTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUEFDSU5HX01PRElGSUVSX0xFVFRFUlNfSUQgPSA2OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTUJJTklOR19ESUFDUklUSUNBTF9NQVJLU19JRCA9IDc7CisgICAgICAgIC8qKgorICAgICAgICAgKiBVbmljb2RlIDMuMiByZW5hbWVzIHRoaXMgYmxvY2sgdG8gIkdyZWVrIGFuZCBDb3B0aWMiLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdSRUVLX0lEID0gODsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDWVJJTExJQ19JRCA9IDk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVJNRU5JQU5fSUQgPSAxMDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIRUJSRVdfSUQgPSAxMTsgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFSQUJJQ19JRCA9IDEyOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNZUklBQ19JRCA9IDEzOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRIQUFOQV9JRCA9IDE0OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFVkFOQUdBUklfSUQgPSAxNTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCRU5HQUxJX0lEID0gMTY7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR1VSTVVLSElfSUQgPSAxNzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHVUpBUkFUSV9JRCA9IDE4OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9SSVlBX0lEID0gMTk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFNSUxfSUQgPSAyMDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURUxVR1VfSUQgPSAyMTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLQU5OQURBX0lEID0gMjI7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFMQVlBTEFNX0lEID0gMjM7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lOSEFMQV9JRCA9IDI0OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRIQUlfSUQgPSAyNTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQU9fSUQgPSAyNjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUSUJFVEFOX0lEID0gMjc7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTVlBTk1BUl9JRCA9IDI4OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdFT1JHSUFOX0lEID0gMjk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFOR1VMX0pBTU9fSUQgPSAzMDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFVEhJT1BJQ19JRCA9IDMxOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENIRVJPS0VFX0lEID0gMzI7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5JRklFRF9DQU5BRElBTl9BQk9SSUdJTkFMX1NZTExBQklDU19JRCA9IDMzOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9HSEFNX0lEID0gMzQ7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUlVOSUNfSUQgPSAzNTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSE1FUl9JRCA9IDM2OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1PTkdPTElBTl9JRCA9IDM3OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBVElOX0VYVEVOREVEX0FERElUSU9OQUxfSUQgPSAzODsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHUkVFS19FWFRFTkRFRF9JRCA9IDM5OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdFTkVSQUxfUFVOQ1RVQVRJT05fSUQgPSA0MDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVBFUlNDUklQVFNfQU5EX1NVQlNDUklQVFNfSUQgPSA0MTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDVVJSRU5DWV9TWU1CT0xTX0lEID0gNDI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBVbmljb2RlIDMuMiByZW5hbWVzIHRoaXMgYmxvY2sgdG8gIkNvbWJpbmluZyBEaWFjcml0aWNhbCBNYXJrcyBmb3IgCisgICAgICAgICAqIFN5bWJvbHMiLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTUJJTklOR19NQVJLU19GT1JfU1lNQk9MU19JRCA9IDQzOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFVFRFUkxJS0VfU1lNQk9MU19JRCA9IDQ0OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5VTUJFUl9GT1JNU19JRCA9IDQ1OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFSUk9XU19JRCA9IDQ2OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BVEhFTUFUSUNBTF9PUEVSQVRPUlNfSUQgPSA0NzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSVNDRUxMQU5FT1VTX1RFQ0hOSUNBTF9JRCA9IDQ4OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTlRST0xfUElDVFVSRVNfSUQgPSA0OTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPUFRJQ0FMX0NIQVJBQ1RFUl9SRUNPR05JVElPTl9JRCA9IDUwOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVOQ0xPU0VEX0FMUEhBTlVNRVJJQ1NfSUQgPSA1MTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCT1hfRFJBV0lOR19JRCA9IDUyOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJMT0NLX0VMRU1FTlRTX0lEID0gNTM7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR0VPTUVUUklDX1NIQVBFU19JRCA9IDU0OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1JU0NFTExBTkVPVVNfU1lNQk9MU19JRCA9IDU1OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJTkdCQVRTX0lEID0gNTY7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlJBSUxMRV9QQVRURVJOU19JRCA9IDU3OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENKS19SQURJQ0FMU19TVVBQTEVNRU5UX0lEID0gNTg7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0FOR1hJX1JBRElDQUxTX0lEID0gNTk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSURFT0dSQVBISUNfREVTQ1JJUFRJT05fQ0hBUkFDVEVSU19JRCA9IDYwOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENKS19TWU1CT0xTX0FORF9QVU5DVFVBVElPTl9JRCA9IDYxOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhJUkFHQU5BX0lEID0gNjI7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0FUQUtBTkFfSUQgPSA2MzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCT1BPTU9GT19JRCA9IDY0OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTkdVTF9DT01QQVRJQklMSVRZX0pBTU9fSUQgPSA2NTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLQU5CVU5fSUQgPSA2NjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCT1BPTU9GT19FWFRFTkRFRF9JRCA9IDY3OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVOQ0xPU0VEX0NKS19MRVRURVJTX0FORF9NT05USFNfSUQgPSA2ODsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSktfQ09NUEFUSUJJTElUWV9JRCA9IDY5OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENKS19VTklGSUVEX0lERU9HUkFQSFNfRVhURU5TSU9OX0FfSUQgPSA3MDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDSktfVU5JRklFRF9JREVPR1JBUEhTX0lEID0gNzE7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWUlfU1lMTEFCTEVTX0lEID0gNzI7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWUlfUkFESUNBTFNfSUQgPSA3MzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfU1lMTEFCTEVTX0lEID0gNzQ7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSElHSF9TVVJST0dBVEVTX0lEID0gNzU7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSElHSF9QUklWQVRFX1VTRV9TVVJST0dBVEVTX0lEID0gNzY7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTE9XX1NVUlJPR0FURVNfSUQgPSA3NzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNhbWUgYXMgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUFJJVkFURV9VU0UuCisgICAgICAgICAqIFVudGlsIFVuaWNvZGUgMy4xLjE7IHRoZSBjb3JyZXNwb25kaW5nIGJsb2NrIG5hbWUgd2FzICJQcml2YXRlIFVzZSI7CisgICAgICAgICAqIGFuZCBtdWx0aXBsZSBjb2RlIHBvaW50IHJhbmdlcyBoYWQgdGhpcyBibG9jay4KKyAgICAgICAgICogVW5pY29kZSAzLjIgcmVuYW1lcyB0aGUgYmxvY2sgZm9yIHRoZSBCTVAgUFVBIHRvICJQcml2YXRlIFVzZSBBcmVhIiAKKyAgICAgICAgICogYW5kIGFkZHMgc2VwYXJhdGUgYmxvY2tzIGZvciB0aGUgc3VwcGxlbWVudGFyeSBQVUFzLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBSSVZBVEVfVVNFX0FSRUFfSUQgPSA3ODsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNhbWUgYXMgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUFJJVkFURV9VU0VfQVJFQS4KKyAgICAgICAgICogVW50aWwgVW5pY29kZSAzLjEuMTsgdGhlIGNvcnJlc3BvbmRpbmcgYmxvY2sgbmFtZSB3YXMgIlByaXZhdGUgVXNlIjsKKyAgICAgICAgICogYW5kIG11bHRpcGxlIGNvZGUgcG9pbnQgcmFuZ2VzIGhhZCB0aGlzIGJsb2NrLgorICAgICAgICAgKiBVbmljb2RlIDMuMiByZW5hbWVzIHRoZSBibG9jayBmb3IgdGhlIEJNUCBQVUEgdG8gIlByaXZhdGUgVXNlIEFyZWEiIAorICAgICAgICAgKiBhbmQgYWRkcyBzZXBhcmF0ZSBibG9ja3MgZm9yIHRoZSBzdXBwbGVtZW50YXJ5IFBVQXMuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUFJJVkFURV9VU0VfSUQgPSBQUklWQVRFX1VTRV9BUkVBX0lEOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENKS19DT01QQVRJQklMSVRZX0lERU9HUkFQSFNfSUQgPSA3OTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTFBIQUJFVElDX1BSRVNFTlRBVElPTl9GT1JNU19JRCA9IDgwOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFSQUJJQ19QUkVTRU5UQVRJT05fRk9STVNfQV9JRCA9IDgxOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTUJJTklOR19IQUxGX01BUktTX0lEID0gODI7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0NPTVBBVElCSUxJVFlfRk9STVNfSUQgPSA4MzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTTUFMTF9GT1JNX1ZBUklBTlRTX0lEID0gODQ7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVJBQklDX1BSRVNFTlRBVElPTl9GT1JNU19CX0lEID0gODU7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1BFQ0lBTFNfSUQgPSA4NjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQUxGV0lEVEhfQU5EX0ZVTExXSURUSF9GT1JNU19JRCA9IDg3OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9MRF9JVEFMSUNfSUQgPSA4ODsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHT1RISUNfSUQgPSA4OTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERVNFUkVUX0lEID0gOTA7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQllaQU5USU5FX01VU0lDQUxfU1lNQk9MU19JRCA9IDkxOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1VU0lDQUxfU1lNQk9MU19JRCA9IDkyOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BVEhFTUFUSUNBTF9BTFBIQU5VTUVSSUNfU1lNQk9MU19JRCA9IDkzOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENKS19VTklGSUVEX0lERU9HUkFQSFNfRVhURU5TSU9OX0JfSUQgPSA5NDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAKKyAgICAgICAgICAgIENKS19DT01QQVRJQklMSVRZX0lERU9HUkFQSFNfU1VQUExFTUVOVF9JRCA9IDk1OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBR1NfSUQgPSA5NjsKKyAgICAKKyAgICAgICAgLy8gTmV3IGJsb2NrcyBpbiBVbmljb2RlIDMuMgorICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIFVuaWNvZGUgNC4wLjEgcmVuYW1lcyB0aGUgIkN5cmlsbGljIFN1cHBsZW1lbnRhcnkiIGJsb2NrIHRvICJDeXJpbGxpYyBTdXBwbGVtZW50Ii4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1lSSUxMSUNfU1VQUExFTUVOVEFSWV9JRCA9IDk3OworICAgICAgICAvKiogCisgICAgICAgICAqIFVuaWNvZGUgNC4wLjEgcmVuYW1lcyB0aGUgIkN5cmlsbGljIFN1cHBsZW1lbnRhcnkiIGJsb2NrIHRvICJDeXJpbGxpYyBTdXBwbGVtZW50Ii4KKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENZUklMTElDX1NVUFBMRU1FTlRfSUQgPSA5NzsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQUdBTE9HX0lEID0gOTg7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFOVU5PT19JRCA9IDk5OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJVSElEX0lEID0gMTAwOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBR0JBTldBX0lEID0gMTAxOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1JU0NFTExBTkVPVVNfTUFUSEVNQVRJQ0FMX1NZTUJPTFNfQV9JRCA9IDEwMjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVBQTEVNRU5UQUxfQVJST1dTX0FfSUQgPSAxMDM7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VQUExFTUVOVEFMX0FSUk9XU19CX0lEID0gMTA0OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1JU0NFTExBTkVPVVNfTUFUSEVNQVRJQ0FMX1NZTUJPTFNfQl9JRCA9IDEwNTsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVBQTEVNRU5UQUxfTUFUSEVNQVRJQ0FMX09QRVJBVE9SU19JRCA9IDEwNjsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLQVRBS0FOQV9QSE9ORVRJQ19FWFRFTlNJT05TX0lEID0gMTA3OworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZBUklBVElPTl9TRUxFQ1RPUlNfSUQgPSAxMDg7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VQUExFTUVOVEFSWV9QUklWQVRFX1VTRV9BUkVBX0FfSUQgPSAxMDk7CisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VQUExFTUVOVEFSWV9QUklWQVRFX1VTRV9BUkVBX0JfSUQgPSAxMTA7CisgICAgICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExJTUJVX0lEID0gMTExOyAvKlsxOTAwXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQUlfTEVfSUQgPSAxMTI7IC8qWzE5NTBdKi8KKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSE1FUl9TWU1CT0xTX0lEID0gMTEzOyAvKlsxOUUwXSovCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQSE9ORVRJQ19FWFRFTlNJT05TX0lEID0gMTE0OyAvKlsxRDAwXSovCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlTQ0VMTEFORU9VU19TWU1CT0xTX0FORF9BUlJPV1NfSUQgPSAxMTU7IC8qWzJCMDBdKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlJSklOR19IRVhBR1JBTV9TWU1CT0xTX0lEID0gMTE2OyAvKls0REMwXSovCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTElORUFSX0JfU1lMTEFCQVJZX0lEID0gMTE3OyAvKlsxMDAwMF0qLworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTElORUFSX0JfSURFT0dSQU1TX0lEID0gMTE4OyAvKlsxMDA4MF0qLworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUVHRUFOX05VTUJFUlNfSUQgPSAxMTk7IC8qWzEwMTAwXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVHQVJJVElDX0lEID0gMTIwOyAvKlsxMDM4MF0qLworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSEFWSUFOX0lEID0gMTIxOyAvKlsxMDQ1MF0qLworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPU01BTllBX0lEID0gMTIyOyAvKlsxMDQ4MF0qLworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDWVBSSU9UX1NZTExBQkFSWV9JRCA9IDEyMzsgLypbMTA4MDBdKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFJX1hVQU5fSklOR19TWU1CT0xTX0lEID0gMTI0OyAvKlsxRDMwMF0qLworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWQVJJQVRJT05fU0VMRUNUT1JTX1NVUFBMRU1FTlRfSUQgPSAxMjU7IC8qW0UwMTAwXSovCisKKyAgICAgICAgLyogTmV3IGJsb2NrcyBpbiBVbmljb2RlIDQuMSAqLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFOQ0lFTlRfR1JFRUtfTVVTSUNBTF9OT1RBVElPTl9JRCA9IDEyNjsgLypbMUQyMDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTkNJRU5UX0dSRUVLX05VTUJFUlNfSUQgPSAxMjc7IC8qWzEwMTQwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVJBQklDX1NVUFBMRU1FTlRfSUQgPSAxMjg7IC8qWzA3NTBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCVUdJTkVTRV9JRCA9IDEyOTsgLypbMUEwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENKS19TVFJPS0VTX0lEID0gMTMwOyAvKlszMUMwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NQklOSU5HX0RJQUNSSVRJQ0FMX01BUktTX1NVUFBMRU1FTlRfSUQgPSAxMzE7IC8qWzFEQzBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT1BUSUNfSUQgPSAxMzI7IC8qWzJDODBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFVEhJT1BJQ19FWFRFTkRFRF9JRCA9IDEzMzsgLypbMkQ4MF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVUSElPUElDX1NVUFBMRU1FTlRfSUQgPSAxMzQ7IC8qWzEzODBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHRU9SR0lBTl9TVVBQTEVNRU5UX0lEID0gMTM1OyAvKlsyRDAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR0xBR09MSVRJQ19JRCA9IDEzNjsgLypbMkMwMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtIQVJPU0hUSElfSUQgPSAxMzc7IC8qWzEwQTAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTU9ESUZJRVJfVE9ORV9MRVRURVJTX0lEID0gMTM4OyAvKltBNzAwXSovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkVXX1RBSV9MVUVfSUQgPSAxMzk7IC8qWzE5ODBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPTERfUEVSU0lBTl9JRCA9IDE0MDsgLypbMTAzQTBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQSE9ORVRJQ19FWFRFTlNJT05TX1NVUFBMRU1FTlRfSUQgPSAxNDE7IC8qWzFEODBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVBQTEVNRU5UQUxfUFVOQ1RVQVRJT05fSUQgPSAxNDI7IC8qWzJFMDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTWUxPVElfTkFHUklfSUQgPSAxNDM7IC8qW0E4MDBdKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUSUZJTkFHSF9JRCA9IDE0NDsgLypbMkQzMF0qLworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZFUlRJQ0FMX0ZPUk1TX0lEID0gMTQ1OyAvKltGRTEwXSovCisKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT1VOVCA9IDE0NjsKKyAgICAgICAgCisgICAgICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKiogCisgICAgICAgICAqIEdldHMgdGhlIG9ubHkgaW5zdGFuY2Ugb2YgdGhlIFVuaWNvZGVCbG9jayB3aXRoIHRoZSBhcmd1bWVudCBJRC4KKyAgICAgICAgICogSWYgbm8gc3VjaCBJRCBleGlzdHMsIGEgSU5WQUxJRF9DT0RFIFVuaWNvZGVCbG9jayB3aWxsIGJlIHJldHVybmVkLgorICAgICAgICAgKiBAcGFyYW0gaWQgVW5pY29kZUJsb2NrIElECisgICAgICAgICAqIEByZXR1cm4gdGhlIG9ubHkgaW5zdGFuY2Ugb2YgdGhlIFVuaWNvZGVCbG9jayB3aXRoIHRoZSBhcmd1bWVudCBJRAorICAgICAgICAgKiAgICAgICAgIGlmIGl0IGV4aXN0cywgb3RoZXJ3aXNlIGEgSU5WQUxJRF9DT0RFIFVuaWNvZGVCbG9jayB3aWxsIGJlIAorICAgICAgICAgKiAgICAgICAgIHJldHVybmVkLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZUJsb2NrIGdldEluc3RhbmNlKGludCBpZCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGlkID49IDAgJiYgaWQgPCBCTE9DS1NfLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiBCTE9DS1NfW2lkXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBJTlZBTElEX0NPREU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBVbmljb2RlIGFsbG9jYXRpb24gYmxvY2sgdGhhdCBjb250YWlucyB0aGUgY29kZSBwb2ludCwKKyAgICAgICAgICogb3IgbnVsbCBpZiB0aGUgY29kZSBwb2ludCBpcyBub3QgYSBtZW1iZXIgb2YgYSBkZWZpbmVkIGJsb2NrLgorICAgICAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBiZSB0ZXN0ZWQKKyAgICAgICAgICogQHJldHVybiB0aGUgVW5pY29kZSBhbGxvY2F0aW9uIGJsb2NrIHRoYXQgY29udGFpbnMgdGhlIGNvZGUgcG9pbnQKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIFVuaWNvZGVCbG9jayBvZihpbnQgY2gpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChjaCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgIHJldHVybiBJTlZBTElEX0NPREU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBVbmljb2RlQmxvY2suZ2V0SW5zdGFuY2UoKFBST1BFUlRZXy5nZXRBZGRpdGlvbmFsKGNoLCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICYgQkxPQ0tfTUFTS18pID4+IEJMT0NLX1NISUZUXyk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSW50ZXJuYWwgZnVuY3Rpb24gcmV0dXJuaW5nIG9mKGNoKS5nZXRJRCgpLgorICAgICAgICAgKgorICAgICAgICAgKiBAcGFyYW0gY2gKKyAgICAgICAgICogQHJldHVybiBudW1lcmljIGJsb2NrIHZhbHVlCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGludCBpZE9mKGludCBjaCkgeworICAgICAgICAgICAgaWYgKGNoIDwgMCB8fCBjaCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIChQUk9QRVJUWV8uZ2V0QWRkaXRpb25hbChjaCwgMCkgJiBCTE9DS19NQVNLXykgPj4gQkxPQ0tfU0hJRlRfOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSS4gIFJldHVybiB0aGUgVW5pY29kZSBibG9jayB3aXRoIHRoZQorICAgICAgICAgKiBnaXZlbiBuYW1lLiAgPGJyLz48Yj5Ob3RlPC9iPjogVW5saWtlIEpESyAxLjUsIHRoaXMgb25seSBtYXRjaGVzCisgICAgICAgICAqIGFnYWluc3QgdGhlIG9mZmljaWFsIFVDRCBuYW1lIGFuZCB0aGUgSmF2YSBibG9jayBuYW1lCisgICAgICAgICAqIChpZ25vcmluZyBjYXNlKS4KKyAgICAgICAgICogQHBhcmFtIGJsb2NrTmFtZSB0aGUgbmFtZSBvZiB0aGUgYmxvY2sgdG8gbWF0Y2gKKyAgICAgICAgICogQHJldHVybiB0aGUgVW5pY29kZUJsb2NrIHdpdGggdGhhdCBuYW1lCisgICAgICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBibG9ja05hbWUgY291bGQgbm90IGJlIG1hdGNoZWQKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVuaWNvZGVCbG9jayBmb3JOYW1lKFN0cmluZyBibG9ja05hbWUpIHsKKyAgICAgICAgICAgIE1hcCBtID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChtcmVmICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtID0gKE1hcCltcmVmLmdldCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG0gPSBuZXcgSGFzaE1hcChCTE9DS1NfLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBCTE9DS1NfLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVCbG9jayBiID0gQkxPQ0tTX1tpXTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBnZXRQcm9wZXJ0eVZhbHVlTmFtZShVUHJvcGVydHkuQkxPQ0ssIGIuZ2V0SUQoKSwgVVByb3BlcnR5Lk5hbWVDaG9pY2UuTE9ORyk7CisgICAgICAgICAgICAgICAgICAgIG0ucHV0KG5hbWUudG9VcHBlckNhc2UoKSwgYik7CisgICAgICAgICAgICBtLnB1dChuYW1lLnJlcGxhY2UoJ18nLCcgJykudG9VcHBlckNhc2UoKSwgYik7CisgICAgICAgICAgICAgICAgICAgIG0ucHV0KGIudG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpLCBiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbXJlZiA9IG5ldyBTb2Z0UmVmZXJlbmNlKG0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVW5pY29kZUJsb2NrIGIgPSAoVW5pY29kZUJsb2NrKW0uZ2V0KGJsb2NrTmFtZS50b1VwcGVyQ2FzZSgpKTsKKyAgICAgICAgICAgIGlmIChiID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gYjsKKyAgICAgICAgfQorICAgICAgICBwcml2YXRlIHN0YXRpYyBTb2Z0UmVmZXJlbmNlIG1yZWY7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIHR5cGUgSUQgb2YgdGhpcyBVbmljb2RlIGJsb2NrCisgICAgICAgICAqIEByZXR1cm4gaW50ZWdlciB0eXBlIElEIG9mIHRoaXMgVW5pY29kZSBibG9jaworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SUQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9pZF87CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFycmF5IG9mIFVuaWNvZGVCbG9ja3MsIGZvciBlYXN5IGFjY2VzcyBpbiBnZXRJbnN0YW5jZShpbnQpCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBVbmljb2RlQmxvY2sgQkxPQ0tTX1tdID0geworICAgICAgICAgICAgTk9fQkxPQ0ssIEJBU0lDX0xBVElOLCAKKyAgICAgICAgICAgIExBVElOXzFfU1VQUExFTUVOVCwgTEFUSU5fRVhURU5ERURfQSwgCisgICAgICAgICAgICBMQVRJTl9FWFRFTkRFRF9CLCBJUEFfRVhURU5TSU9OUywgCisgICAgICAgICAgICBTUEFDSU5HX01PRElGSUVSX0xFVFRFUlMsIENPTUJJTklOR19ESUFDUklUSUNBTF9NQVJLUywKKyAgICAgICAgICAgIEdSRUVLLCBDWVJJTExJQywKKyAgICAgICAgICAgIEFSTUVOSUFOLCBIRUJSRVcsCisgICAgICAgICAgICBBUkFCSUMsIFNZUklBQywgCisgICAgICAgICAgICBUSEFBTkEsIERFVkFOQUdBUkksIAorICAgICAgICAgICAgQkVOR0FMSSwgR1VSTVVLSEksIAorICAgICAgICAgICAgR1VKQVJBVEksIE9SSVlBLCAKKyAgICAgICAgICAgIFRBTUlMLCBURUxVR1UsIAorICAgICAgICAgICAgS0FOTkFEQSwgTUFMQVlBTEFNLCAKKyAgICAgICAgICAgIFNJTkhBTEEsIFRIQUksIAorICAgICAgICAgICAgTEFPLCBUSUJFVEFOLCAKKyAgICAgICAgICAgIE1ZQU5NQVIsIEdFT1JHSUFOLCAKKyAgICAgICAgICAgIEhBTkdVTF9KQU1PLCBFVEhJT1BJQywgCisgICAgICAgICAgICBDSEVST0tFRSwgVU5JRklFRF9DQU5BRElBTl9BQk9SSUdJTkFMX1NZTExBQklDUywKKyAgICAgICAgICAgIE9HSEFNLCBSVU5JQywgCisgICAgICAgICAgICBLSE1FUiwgTU9OR09MSUFOLCAKKyAgICAgICAgICAgIExBVElOX0VYVEVOREVEX0FERElUSU9OQUwsIEdSRUVLX0VYVEVOREVELCAKKyAgICAgICAgICAgIEdFTkVSQUxfUFVOQ1RVQVRJT04sIFNVUEVSU0NSSVBUU19BTkRfU1VCU0NSSVBUUywKKyAgICAgICAgICAgIENVUlJFTkNZX1NZTUJPTFMsIENPTUJJTklOR19NQVJLU19GT1JfU1lNQk9MUywgCisgICAgICAgICAgICBMRVRURVJMSUtFX1NZTUJPTFMsIE5VTUJFUl9GT1JNUywgCisgICAgICAgICAgICBBUlJPV1MsIE1BVEhFTUFUSUNBTF9PUEVSQVRPUlMsIAorICAgICAgICAgICAgTUlTQ0VMTEFORU9VU19URUNITklDQUwsIENPTlRST0xfUElDVFVSRVMsCisgICAgICAgICAgICBPUFRJQ0FMX0NIQVJBQ1RFUl9SRUNPR05JVElPTiwgRU5DTE9TRURfQUxQSEFOVU1FUklDUywKKyAgICAgICAgICAgIEJPWF9EUkFXSU5HLCBCTE9DS19FTEVNRU5UUywKKyAgICAgICAgICAgIEdFT01FVFJJQ19TSEFQRVMsIE1JU0NFTExBTkVPVVNfU1lNQk9MUywKKyAgICAgICAgICAgIERJTkdCQVRTLCBCUkFJTExFX1BBVFRFUk5TLAorICAgICAgICAgICAgQ0pLX1JBRElDQUxTX1NVUFBMRU1FTlQsIEtBTkdYSV9SQURJQ0FMUywKKyAgICAgICAgICAgIElERU9HUkFQSElDX0RFU0NSSVBUSU9OX0NIQVJBQ1RFUlMsIENKS19TWU1CT0xTX0FORF9QVU5DVFVBVElPTiwKKyAgICAgICAgICAgIEhJUkFHQU5BLCBLQVRBS0FOQSwgCisgICAgICAgICAgICBCT1BPTU9GTywgSEFOR1VMX0NPTVBBVElCSUxJVFlfSkFNTywKKyAgICAgICAgICAgIEtBTkJVTiwgQk9QT01PRk9fRVhURU5ERUQsIAorICAgICAgICAgICAgRU5DTE9TRURfQ0pLX0xFVFRFUlNfQU5EX01PTlRIUywgQ0pLX0NPTVBBVElCSUxJVFksCisgICAgICAgICAgICBDSktfVU5JRklFRF9JREVPR1JBUEhTX0VYVEVOU0lPTl9BLCBDSktfVU5JRklFRF9JREVPR1JBUEhTLAorICAgICAgICAgICAgWUlfU1lMTEFCTEVTLCBZSV9SQURJQ0FMUywgCisgICAgICAgICAgICBIQU5HVUxfU1lMTEFCTEVTLCBISUdIX1NVUlJPR0FURVMsCisgICAgICAgICAgICBISUdIX1BSSVZBVEVfVVNFX1NVUlJPR0FURVMsIExPV19TVVJST0dBVEVTLAorICAgICAgICAgICAgUFJJVkFURV9VU0VfQVJFQSwgQ0pLX0NPTVBBVElCSUxJVFlfSURFT0dSQVBIUywKKyAgICAgICAgICAgIEFMUEhBQkVUSUNfUFJFU0VOVEFUSU9OX0ZPUk1TLCBBUkFCSUNfUFJFU0VOVEFUSU9OX0ZPUk1TX0EsCisgICAgICAgICAgICBDT01CSU5JTkdfSEFMRl9NQVJLUywgQ0pLX0NPTVBBVElCSUxJVFlfRk9STVMsCisgICAgICAgICAgICBTTUFMTF9GT1JNX1ZBUklBTlRTLCBBUkFCSUNfUFJFU0VOVEFUSU9OX0ZPUk1TX0IsCisgICAgICAgICAgICBTUEVDSUFMUywgSEFMRldJRFRIX0FORF9GVUxMV0lEVEhfRk9STVMsCisgICAgICAgICAgICBPTERfSVRBTElDLCBHT1RISUMsIAorICAgICAgICAgICAgREVTRVJFVCwgQllaQU5USU5FX01VU0lDQUxfU1lNQk9MUywKKyAgICAgICAgICAgIE1VU0lDQUxfU1lNQk9MUywgTUFUSEVNQVRJQ0FMX0FMUEhBTlVNRVJJQ19TWU1CT0xTLAorICAgICAgICAgICAgQ0pLX1VOSUZJRURfSURFT0dSQVBIU19FWFRFTlNJT05fQiwgCisgICAgICAgICAgICBDSktfQ09NUEFUSUJJTElUWV9JREVPR1JBUEhTX1NVUFBMRU1FTlQsIAorICAgICAgICAgICAgVEFHUywgQ1lSSUxMSUNfU1VQUExFTUVOVCwKKyAgICAgICAgICAgIFRBR0FMT0csIEhBTlVOT08sIAorICAgICAgICAgICAgQlVISUQsIFRBR0JBTldBLCAKKyAgICAgICAgICAgIE1JU0NFTExBTkVPVVNfTUFUSEVNQVRJQ0FMX1NZTUJPTFNfQSwgU1VQUExFTUVOVEFMX0FSUk9XU19BLAorICAgICAgICAgICAgU1VQUExFTUVOVEFMX0FSUk9XU19CLCBNSVNDRUxMQU5FT1VTX01BVEhFTUFUSUNBTF9TWU1CT0xTX0IsCisgICAgICAgICAgICBTVVBQTEVNRU5UQUxfTUFUSEVNQVRJQ0FMX09QRVJBVE9SUywgCisgICAgICAgICAgICBLQVRBS0FOQV9QSE9ORVRJQ19FWFRFTlNJT05TLAorICAgICAgICAgICAgVkFSSUFUSU9OX1NFTEVDVE9SUywgU1VQUExFTUVOVEFSWV9QUklWQVRFX1VTRV9BUkVBX0EsCisgICAgICAgICAgICBTVVBQTEVNRU5UQVJZX1BSSVZBVEVfVVNFX0FSRUFfQiwKKyAgICAgICAgICAgIExJTUJVLCBUQUlfTEUsIEtITUVSX1NZTUJPTFMsIFBIT05FVElDX0VYVEVOU0lPTlMsCisgICAgICAgICAgICBNSVNDRUxMQU5FT1VTX1NZTUJPTFNfQU5EX0FSUk9XUywgWUlKSU5HX0hFWEFHUkFNX1NZTUJPTFMsCisgICAgICAgICAgICBMSU5FQVJfQl9TWUxMQUJBUlksIExJTkVBUl9CX0lERU9HUkFNUywgQUVHRUFOX05VTUJFUlMsCisgICAgICAgICAgICBVR0FSSVRJQywgU0hBVklBTiwgT1NNQU5ZQSwgQ1lQUklPVF9TWUxMQUJBUlksCisgICAgICAgICAgICBUQUlfWFVBTl9KSU5HX1NZTUJPTFMsIFZBUklBVElPTl9TRUxFQ1RPUlNfU1VQUExFTUVOVCwKKworICAgICAgICAgICAgLyogTmV3IGJsb2NrcyBpbiBVbmljb2RlIDQuMSAqLworICAgICAgICAgICAgQU5DSUVOVF9HUkVFS19NVVNJQ0FMX05PVEFUSU9OLAorICAgICAgICAgICAgQU5DSUVOVF9HUkVFS19OVU1CRVJTLAorICAgICAgICAgICAgQVJBQklDX1NVUFBMRU1FTlQsCisgICAgICAgICAgICBCVUdJTkVTRSwKKyAgICAgICAgICAgIENKS19TVFJPS0VTLAorICAgICAgICAgICAgQ09NQklOSU5HX0RJQUNSSVRJQ0FMX01BUktTX1NVUFBMRU1FTlQsCisgICAgICAgICAgICBDT1BUSUMsCisgICAgICAgICAgICBFVEhJT1BJQ19FWFRFTkRFRCwKKyAgICAgICAgICAgIEVUSElPUElDX1NVUFBMRU1FTlQsCisgICAgICAgICAgICBHRU9SR0lBTl9TVVBQTEVNRU5ULAorICAgICAgICAgICAgR0xBR09MSVRJQywKKyAgICAgICAgICAgIEtIQVJPU0hUSEksCisgICAgICAgICAgICBNT0RJRklFUl9UT05FX0xFVFRFUlMsCisgICAgICAgICAgICBORVdfVEFJX0xVRSwKKyAgICAgICAgICAgIE9MRF9QRVJTSUFOLAorICAgICAgICAgICAgUEhPTkVUSUNfRVhURU5TSU9OU19TVVBQTEVNRU5ULAorICAgICAgICAgICAgU1VQUExFTUVOVEFMX1BVTkNUVUFUSU9OLAorICAgICAgICAgICAgU1lMT1RJX05BR1JJLAorICAgICAgICAgICAgVElGSU5BR0gsCisgICAgICAgICAgICBWRVJUSUNBTF9GT1JNUworICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyB7CisgICAgICAgICAgICBpZiAoQ09VTlQhPUJMT0NLU18ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlVuaWNvZGVCbG9jayBmaWVsZHMgYXJlIGluY29uc2lzdGVudCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvKioKKyAgICAgICAgICogSWRlbnRpZmljYXRpb24gY29kZSBmb3IgdGhpcyBVbmljb2RlQmxvY2sKKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG1faWRfOworICAgICAgICAKKyAgICAgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogVW5pY29kZUJsb2NrIGNvbnN0cnVjdG9yCisgICAgICAgICAqIEBwYXJhbSBuYW1lIG5hbWUgb2YgdGhpcyBVbmljb2RlQmxvY2sKKyAgICAgICAgICogQHBhcmFtIGlkIHVuaXF1ZSBpZCBvZiB0aGlzIFVuaWNvZGVCbG9jaworICAgICAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIG5hbWUgaXMgPGNvZGU+bnVsbDwvY29kZT4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgVW5pY29kZUJsb2NrKFN0cmluZyBuYW1lLCBpbnQgaWQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHN1cGVyKG5hbWUpOworICAgICAgICAgICAgbV9pZF8gPSBpZDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBFYXN0IEFzaWFuIFdpZHRoIGNvbnN0YW50cy4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eSNFQVNUX0FTSUFOX1dJRFRICisgICAgICogQHNlZSBVQ2hhcmFjdGVyI2dldEludFByb3BlcnR5VmFsdWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBFYXN0QXNpYW5XaWR0aCAKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5FVVRSQUwgPSAwOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTUJJR1VPVVMgPSAxOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQUxGV0lEVEggPSAyOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGVUxMV0lEVEggPSAzOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOQVJST1cgPSA0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXSURFID0gNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09VTlQgPSA2OworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY29tcG9zaXRpb24gVHlwZSBjb25zdGFudHMuCisgICAgICogQHNlZSBVUHJvcGVydHkjREVDT01QT1NJVElPTl9UWVBFCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgRGVjb21wb3NpdGlvblR5cGUgCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05FID0gMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0FOT05JQ0FMID0gMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFUID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0lSQ0xFID0gMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRklOQUwgPSA0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT05UID0gNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlJBQ1RJT04gPSA2OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTklUSUFMID0gNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSVNPTEFURUQgPSA4OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRURJQUwgPSA5OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOQVJST1cgPSAxMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9CUkVBSyA9IDExOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTTUFMTCA9IDEyOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUVVBUkUgPSAxMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VCID0gMTQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUEVSID0gMTU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZFUlRJQ0FMID0gMTY7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdJREUgPSAxNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09VTlQgPSAxODsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSm9pbmluZyBUeXBlIGNvbnN0YW50cy4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eSNKT0lOSU5HX1RZUEUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBKb2luaW5nVHlwZSAKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5PTl9KT0lOSU5HID0gMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSk9JTl9DQVVTSU5HID0gMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRFVBTF9KT0lOSU5HID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVGVF9KT0lOSU5HID0gMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUklHSFRfSk9JTklORyA9IDQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQU5TUEFSRU5UID0gNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09VTlQgPSA2OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBKb2luaW5nIEdyb3VwIGNvbnN0YW50cy4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eSNKT0lOSU5HX0dST1VQCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgSm9pbmluZ0dyb3VwIAorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9fSk9JTklOR19HUk9VUCA9IDA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFJTiA9IDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFMQVBIID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUxFRiA9IDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJFSCA9IDQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJFVEggPSA1OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBEQUwgPSA2OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBEQUxBVEhfUklTSCA9IDc7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEUgPSA4OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGRUggPSA5OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGSU5BTF9TRU1LQVRIID0gMTA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdBRiA9IDExOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHQU1BTCA9IDEyOworICAgICAgICAvKiogCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFIID0gMTM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhBTVpBX09OX0hFSF9HT0FMID0gMTQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhFID0gMTU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhFSCA9IDE2OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIRUhfR09BTCA9IDE3OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIRVRIID0gMTg7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtBRiA9IDE5OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLQVBIID0gMjA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtOT1RURURfSEVIID0gMjE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExBTSA9IDIyOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQU1BREggPSAyMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUVFTSA9IDI0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU0gPSAyNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9PTiA9IDI2OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOVU4gPSAyNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEUgPSAyODsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUUFGID0gMjk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFBUEggPSAzMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkVIID0gMzE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJFVkVSU0VEX1BFID0gMzI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNBRCA9IDMzOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTQURIRSA9IDM0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRUVOID0gMzU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNFTUtBVEggPSAzNjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hJTiA9IDM3OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTV0FTSF9LQUYgPSAzODsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1lSSUFDX1dBVyA9IDM5OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUQUggPSA0MDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFXID0gNDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFSF9NQVJCVVRBID0gNDI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFVEggPSA0MzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0FXID0gNDQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlFSCA9IDQ1OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZRUhfQkFSUkVFID0gNDY7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFlFSF9XSVRIX1RBSUwgPSA0NzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWVVESCA9IDQ4OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZVURIX0hFID0gNDk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFpBSU4gPSA1MDsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGRSA9IDUxOyAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0hBUEggPSA1MjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFpIQUlOID01MzsgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09VTlQgPSA1NDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHcmFwaGVtZSBDbHVzdGVyIEJyZWFrIGNvbnN0YW50cy4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eSNHUkFQSEVNRV9DTFVTVEVSX0JSRUFLCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBHcmFwaGVtZUNsdXN0ZXJCcmVhayB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9USEVSID0gMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09OVFJPTCA9IDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENSID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhURU5EID0gMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTCA9IDQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExGID0gNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTFYgPSA2OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMVlQgPSA3OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUID0gODsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgViA9IDk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gMTA7CisgICAgfQorCisgICAgLyoqCisgICAgICogV29yZCBCcmVhayBjb25zdGFudHMuCisgICAgICogQHNlZSBVUHJvcGVydHkjV09SRF9CUkVBSworICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgV29yZEJyZWFrIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1RIRVIgPSAwOworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTEVUVEVSID0gMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRk9STUFUID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0FUQUtBTkEgPSAzOworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSURMRVRURVIgPSA0OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSUROVU0gPSA1OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOVU1FUklDID0gNjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhURU5ETlVNTEVUID0gNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09VTlQgPSA4OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbnRlbmNlIEJyZWFrIGNvbnN0YW50cy4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eSNTRU5URU5DRV9CUkVBSworICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgU2VudGVuY2VCcmVhayB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9USEVSID0gMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVRFUk0gPSAxOworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDTE9TRSA9IDI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPUk1BVCA9IDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPV0VSID0gNDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlVNRVJJQyA9IDU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9MRVRURVIgPSA2OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRVAgPSA3OworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTUCA9IDg7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNURVJNID0gOTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVVBQRVIgPSAxMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09VTlQgPSAxMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMaW5lIEJyZWFrIGNvbnN0YW50cy4KKyAgICAgKiBAc2VlIFVQcm9wZXJ0eSNMSU5FX0JSRUFLCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgTGluZUJyZWFrIAorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5LTk9XTiA9IDA7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFNQklHVU9VUyA9IDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFMUEhBQkVUSUMgPSAyOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCUkVBS19CT1RIID0gMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlJFQUtfQUZURVIgPSA0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCUkVBS19CRUZPUkUgPSA1OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQU5EQVRPUllfQlJFQUsgPSA2OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT05USU5HRU5UX0JSRUFLID0gNzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0xPU0VfUFVOQ1RVQVRJT04gPSA4OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01CSU5JTkdfTUFSSyA9IDk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENBUlJJQUdFX1JFVFVSTiA9IDEwOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFWENMQU1BVElPTiA9IDExOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHTFVFID0gMTI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhZUEhFTiA9IDEzOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJREVPR1JBUEhJQyA9IDE0OworICAgICAgICAvKioKKyAgICAgICAgICogQHNlZSAjSU5TRVBBUkFCTEUKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlNFUEVSQUJMRSA9IDE1OworICAgICAgICAvKioKKyAgICAgICAgICogUmVuYW1lZCBmcm9tIHRoZSBtaXNzcGVsbGVkICJpbnNlcGVyYWJsZSIgaW4gVW5pY29kZSA0LjAuMS4KKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlNFUEFSQUJMRSA9IDE1OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTkZJWF9OVU1FUklDID0gMTY7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExJTkVfRkVFRCA9IDE3OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05TVEFSVEVSID0gMTg7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5VTUVSSUMgPSAxOTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1BFTl9QVU5DVFVBVElPTiA9IDIwOworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQT1NURklYX05VTUVSSUMgPSAyMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUFJFRklYX05VTUVSSUMgPSAyMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUVVPVEFUSU9OID0gMjM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPTVBMRVhfQ09OVEVYVCA9IDI0OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEUgPSAyNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1BBQ0UgPSAyNjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlJFQUtfU1lNQk9MUyA9IDI3OworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBaV1NQQUNFID0gMjg7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORVhUX0xJTkUgPSAyOTsgICAgICAgLypbTkxdKi8gLyogZnJvbSBoZXJlIG9uOiBuZXcgaW4gVW5pY29kZSA0L0lDVSAyLjYgKi8KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBXT1JEX0pPSU5FUiA9IDMwOyAgICAgIC8qW1dKXSovCisgICAgICAgIAorICAgICAgICAvKiBmcm9tIGhlcmUgb246IG5ldyBpbiBVbmljb2RlIDQuMS9JQ1UgMy40ICovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgIEgyID0gMzE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBIMyA9IDMyOworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAgSkwgPSAzMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgIEpUID0gMzQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50ICBKViA9IDM1OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gMzY7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE51bWVyaWMgVHlwZSBjb25zdGFudHMuCisgICAgICogQHNlZSBVUHJvcGVydHkjTlVNRVJJQ19UWVBFCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgTnVtZXJpY1R5cGUgCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05FID0gMDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVDSU1BTCA9IDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUID0gMjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlVNRVJJQyA9IDM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gNDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSGFuZ3VsIFN5bGxhYmxlIFR5cGUgY29uc3RhbnRzLgorICAgICAqCisgICAgICogQHNlZSBVUHJvcGVydHkjSEFOR1VMX1NZTExBQkxFX1RZUEUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBIYW5ndWxTeWxsYWJsZVR5cGUgCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT1RfQVBQTElDQUJMRSAgICAgID0gMDsgICAvKltOQV0qLyAvKlNlZSBub3RlICEhKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVBRElOR19KQU1PICAgICAgICA9IDE7ICAgLypbTF0qLworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBWT1dFTF9KQU1PICAgICAgICAgID0gMjsgICAvKltWXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQUlMSU5HX0pBTU8gICAgICAgPSAzOyAgIC8qW1RdKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTFZfU1lMTEFCTEUgICAgICAgICA9IDQ7ICAgLypbTFZdKi8KKyAgICAgICAgLyoqCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTFZUX1NZTExBQkxFICAgICAgICA9IDU7ICAgLypbTFZUXSovCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPVU5UICAgICAgICAgICAgICAgPSA2OworICAgIH0KKworICAgIC8vIHB1YmxpYyBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgCisgICAgLyoqIAorICAgICAqIFRoZSBsb3dlc3QgVW5pY29kZSBjb2RlIHBvaW50IHZhbHVlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1JTl9WQUxVRSA9IFVURjE2LkNPREVQT0lOVF9NSU5fVkFMVUU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgaGlnaGVzdCBVbmljb2RlIGNvZGUgcG9pbnQgdmFsdWUgKHNjYWxhciB2YWx1ZSkgYWNjb3JkaW5nIHRvIHRoZSAKKyAgICAgKiBVbmljb2RlIFN0YW5kYXJkLiAKKyAgICAgKiBUaGlzIGlzIGEgMjEtYml0IHZhbHVlICgyMSBiaXRzLCByb3VuZGVkIHVwKS48YnI+CisgICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIuTUlOX1ZBTFVFCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1ZBTFVFID0gVVRGMTYuQ09ERVBPSU5UX01BWF9WQUxVRTsgCisgICAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSB2YWx1ZSBmb3IgU3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFID0gCisgICAgICAgIFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFOworICAgICAgCisgICAgLyoqCisgICAgICogVW5pY29kZSB2YWx1ZSB1c2VkIHdoZW4gdHJhbnNsYXRpbmcgaW50byBVbmljb2RlIGVuY29kaW5nIGZvcm0gYW5kIHRoZXJlIAorICAgICAqIGlzIG5vIGV4aXN0aW5nIGNoYXJhY3Rlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSRVBMQUNFTUVOVF9DSEFSID0gJ1x1RkZGRCc7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNwZWNpYWwgdmFsdWUgdGhhdCBpcyByZXR1cm5lZCBieSBnZXRVbmljb2RlTnVtZXJpY1ZhbHVlKGludCkgd2hlbiBubyAKKyAgICAgKiBudW1lcmljIHZhbHVlIGlzIGRlZmluZWQgZm9yIGEgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKiBAc2VlICNnZXRVbmljb2RlTnVtZXJpY1ZhbHVlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBkb3VibGUgTk9fTlVNRVJJQ19WQUxVRSA9IC0xMjM0NTY3ODk7CisKKyAgICAvKioKKyAgICAgKiBDb21wYXRpYmlsaXR5IGNvbnN0YW50IGZvciBKYXZhIENoYXJhY3RlcidzIE1JTl9SQURJWC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1JTl9SQURJWCA9IGphdmEubGFuZy5DaGFyYWN0ZXIuTUlOX1JBRElYOworCisgICAgLyoqCisgICAgICogQ29tcGF0aWJpbGl0eSBjb25zdGFudCBmb3IgSmF2YSBDaGFyYWN0ZXIncyBNQVhfUkFESVguCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVhfUkFESVggPSBqYXZhLmxhbmcuQ2hhcmFjdGVyLk1BWF9SQURJWDsKKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB0aGUgbnVtZXJpYyB2YWx1ZSBvZiBhIGRlY2ltYWwgZGlnaXQgY29kZSBwb2ludC4KKyAgICAgKiA8YnI+VGhpcyBtZXRob2Qgb2JzZXJ2ZXMgdGhlIHNlbWFudGljcyBvZgorICAgICAqIDxjb2RlPmphdmEubGFuZy5DaGFyYWN0ZXIuZGlnaXQoKTwvY29kZT4uICBOb3RlIHRoYXQgdGhpcworICAgICAqIHdpbGwgcmV0dXJuIHBvc2l0aXZlIHZhbHVlcyBmb3IgY29kZSBwb2ludHMgZm9yIHdoaWNoIGlzRGlnaXQKKyAgICAgKiByZXR1cm5zIGZhbHNlLCBqdXN0IGxpa2UgamF2YS5sYW5nLkNoYXJhY3Rlci4KKyAgICAgKiA8YnI+PGVtPlNlbWFudGljIENoYW5nZTo8L2VtPiBJbiByZWxlYXNlIDEuMy4xIGFuZAorICAgICAqIHByaW9yLCB0aGlzIGRpZCBub3QgdHJlYXQgdGhlIEV1cm9wZWFuIGxldHRlcnMgYXMgaGF2aW5nIGEKKyAgICAgKiBkaWdpdCB2YWx1ZSwgYW5kIGFsc28gdHJlYXRlZCBudW1lcmljIGxldHRlcnMgYW5kIG90aGVyIG51bWJlcnMgYXMgCisgICAgICogZGlnaXRzLiAgCisgICAgICogVGhpcyBoYXMgYmVlbiBjaGFuZ2VkIHRvIGNvbmZvcm0gdG8gdGhlIGphdmEgc2VtYW50aWNzLgorICAgICAqIDxicj5BIGNvZGUgcG9pbnQgaXMgYSB2YWxpZCBkaWdpdCBpZiBhbmQgb25seSBpZjoKKyAgICAgKiA8dWw+CisgICAgICogICA8bGk+Y2ggaXMgYSBkZWNpbWFsIGRpZ2l0IG9yIG9uZSBvZiB0aGUgZXVyb3BlYW4gbGV0dGVycywgYW5kCisgICAgICogICA8bGk+dGhlIHZhbHVlIG9mIGNoIGlzIGxlc3MgdGhhbiB0aGUgc3BlY2lmaWVkIHJhZGl4LgorICAgICAqIDwvdWw+CisgICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IHRvIHF1ZXJ5CisgICAgICogQHBhcmFtIHJhZGl4IHRoZSByYWRpeAorICAgICAqIEByZXR1cm4gdGhlIG51bWVyaWMgdmFsdWUgcmVwcmVzZW50ZWQgYnkgdGhlIGNvZGUgcG9pbnQgaW4gdGhlCisgICAgICogc3BlY2lmaWVkIHJhZGl4LCBvciAtMSBpZiB0aGUgY29kZSBwb2ludCBpcyBub3QgYSBkZWNpbWFsIGRpZ2l0CisgICAgICogb3IgaWYgaXRzIHZhbHVlIGlzIHRvbyBsYXJnZSBmb3IgdGhlIHJhZGl4CisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZGlnaXQoaW50IGNoLCBpbnQgcmFkaXgpCisgICAgeworICAgICAgICAvLyB3aGVuIGNoIGlzIG91dCBvZiBib3VuZHMgZ2V0UHJvcGVydHkgPT0gMAorICAgICAgICBpbnQgcHJvcHMgPSBnZXRQcm9wZXJ0eShjaCk7CisgICAgICAgIGludCB2YWx1ZTsgICAgICAgIAorICAgICAgICBpZiAoZ2V0TnVtZXJpY1R5cGUocHJvcHMpID09IE51bWVyaWNUeXBlLkRFQ0lNQUwpIHsKKyAgICAgICAgICAgIHZhbHVlID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFVuc2lnbmVkVmFsdWUocHJvcHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdmFsdWUgPSBnZXRFdXJvcGVhbkRpZ2l0KGNoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKDAgPD0gdmFsdWUgJiYgdmFsdWUgPCByYWRpeCkgPyB2YWx1ZSA6IC0xOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgdGhlIG51bWVyaWMgdmFsdWUgb2YgYSBkZWNpbWFsIGRpZ2l0IGNvZGUgcG9pbnQuCisgICAgICogPGJyPlRoaXMgaXMgYSBjb252ZW5pZW5jZSBvdmVybG9hZCBvZiA8Y29kZT5kaWdpdChpbnQsIGludCk8L2NvZGU+IAorICAgICAqIHRoYXQgcHJvdmlkZXMgYSBkZWNpbWFsIHJhZGl4LgorICAgICAqIDxicj48ZW0+U2VtYW50aWMgQ2hhbmdlOjwvZW0+IEluIHJlbGVhc2UgMS4zLjEgYW5kIHByaW9yLCB0aGlzCisgICAgICogdHJlYXRlZCBudW1lcmljIGxldHRlcnMgYW5kIG90aGVyIG51bWJlcnMgYXMgZGlnaXRzLiAgVGhpcyBoYXMKKyAgICAgKiBiZWVuIGNoYW5nZWQgdG8gY29uZm9ybSB0byB0aGUgamF2YSBzZW1hbnRpY3MuCisgICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IHRvIHF1ZXJ5CisgICAgICogQHJldHVybiB0aGUgbnVtZXJpYyB2YWx1ZSByZXByZXNlbnRlZCBieSB0aGUgY29kZSBwb2ludCwKKyAgICAgKiBvciAtMSBpZiB0aGUgY29kZSBwb2ludCBpcyBub3QgYSBkZWNpbWFsIGRpZ2l0IG9yIGlmIGl0cworICAgICAqIHZhbHVlIGlzIHRvbyBsYXJnZSBmb3IgYSBkZWNpbWFsIHJhZGl4IAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGRpZ2l0KGludCBjaCkKKyAgICB7CisgICAgICAgIGludCBwcm9wcyA9IGdldFByb3BlcnR5KGNoKTsKKyAgICAgICAgaWYgKGdldE51bWVyaWNUeXBlKHByb3BzKSA9PSBOdW1lcmljVHlwZS5ERUNJTUFMKSB7CisgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFVuc2lnbmVkVmFsdWUocHJvcHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIAorICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgdmFsdWUgb2YgdGhlIGNvZGUgcG9pbnQgYXMgYSBub25uZWdhdGl2ZSAKKyAgICAgKiBpbnRlZ2VyLgorICAgICAqIDxicj5JZiB0aGUgY29kZSBwb2ludCBkb2VzIG5vdCBoYXZlIGEgbnVtZXJpYyB2YWx1ZSwgdGhlbiAtMSBpcyByZXR1cm5lZC4gCisgICAgICogPGJyPgorICAgICAqIElmIHRoZSBjb2RlIHBvaW50IGhhcyBhIG51bWVyaWMgdmFsdWUgdGhhdCBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgYXMgYSAKKyAgICAgKiBub25uZWdhdGl2ZSBpbnRlZ2VyIChmb3IgZXhhbXBsZSwgYSBmcmFjdGlvbmFsIHZhbHVlKSwgdGhlbiAtMiBpcyAKKyAgICAgKiByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gY2ggdGhlIGNvZGUgcG9pbnQgdG8gcXVlcnkKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1lcmljIHZhbHVlIG9mIHRoZSBjb2RlIHBvaW50LCBvciAtMSBpZiBpdCBoYXMgbm8gbnVtZXJpYyAKKyAgICAgKiB2YWx1ZSwgb3IgLTIgaWYgaXQgaGFzIGEgbnVtZXJpYyB2YWx1ZSB0aGF0IGNhbm5vdCBiZSByZXByZXNlbnRlZCBhcyBhIAorICAgICAqIG5vbm5lZ2F0aXZlIGludGVnZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXROdW1lcmljVmFsdWUoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gc2xpZ2h0bHkgcHJ1bmVkIHZlcnNpb24gb2YgZ2V0VW5pY29kZU51bWVyaWNWYWx1ZSgpLCBwbHVzIGdldEV1cm9wZWFuRGlnaXQoKQorICAgICAgICBpbnQgcHJvcHMgPSBQUk9QRVJUWV8uZ2V0UHJvcGVydHkoY2gpOworICAgICAgICBpbnQgbnVtZXJpY1R5cGUgPSBnZXROdW1lcmljVHlwZShwcm9wcyk7CisKKyAgICAgICAgaWYobnVtZXJpY1R5cGU9PTApIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRFdXJvcGVhbkRpZ2l0KGNoKTsKKyAgICAgICAgfQorICAgICAgICBpZihudW1lcmljVHlwZT09VUNoYXJhY3RlclByb3BlcnR5Lk5UX0ZSQUNUSU9OIHx8IG51bWVyaWNUeXBlPj1VQ2hhcmFjdGVyUHJvcGVydHkuTlRfQ09VTlQpIHsKKyAgICAgICAgICAgIHJldHVybiAtMjsKKyAgICAgICAgfQorCisgICAgICAgIGludCBudW1lcmljVmFsdWUgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0VW5zaWduZWRWYWx1ZShwcm9wcyk7CisKKyAgICAgICAgaWYobnVtZXJpY1R5cGU8TnVtZXJpY1R5cGUuQ09VTlQpIHsKKyAgICAgICAgICAgIC8qIG5vcm1hbCB0eXBlLCB0aGUgdmFsdWUgaXMgc3RvcmVkIGRpcmVjdGx5ICovCisgICAgICAgICAgICByZXR1cm4gbnVtZXJpY1ZhbHVlOworICAgICAgICB9IGVsc2UgLyogbnVtZXJpY1R5cGU9PU5UX0xBUkdFICovIHsKKyAgICAgICAgICAgIC8qIGxhcmdlIHZhbHVlIHdpdGggZXhwb25lbnQgKi8KKyAgICAgICAgICAgIGxvbmcgbnVtVmFsdWU7CisgICAgICAgICAgICBpbnQgbWFudCwgZXhwOworCisgICAgICAgICAgICBtYW50PW51bWVyaWNWYWx1ZT4+TEFSR0VfTUFOVF9TSElGVDsKKyAgICAgICAgICAgIGV4cD1udW1lcmljVmFsdWUmTEFSR0VfRVhQX01BU0s7CisgICAgICAgICAgICBpZihtYW50PT0wKSB7CisgICAgICAgICAgICAgICAgbWFudD0xOworICAgICAgICAgICAgICAgIGV4cCs9TEFSR0VfRVhQX09GRlNFVF9FWFRSQTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihtYW50PjkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTI7IC8qIHJlc2VydmVkIG1hbnRpc3NhIHZhbHVlICovCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGV4cCs9TEFSR0VfRVhQX09GRlNFVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGV4cD45KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0yOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBudW1WYWx1ZT1tYW50OworCisgICAgICAgICAgICAvKiBtdWx0aXBseSBieSAxMF5leHAgd2l0aG91dCBtYXRoLmggKi8KKyAgICAgICAgICAgIHdoaWxlKGV4cD49NCkgeworICAgICAgICAgICAgICAgIG51bVZhbHVlKj0xMDAwMC47CisgICAgICAgICAgICAgICAgZXhwLT00OworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3dpdGNoKGV4cCkgeworICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgIG51bVZhbHVlKj0xMDAwLjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICBudW1WYWx1ZSo9MTAwLjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICBudW1WYWx1ZSo9MTAuOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKG51bVZhbHVlPD1JbnRlZ2VyLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgIHJldHVybiAoaW50KW51bVZhbHVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+R2V0IHRoZSBudW1lcmljIHZhbHVlIGZvciBhIFVuaWNvZGUgY29kZSBwb2ludCBhcyBkZWZpbmVkIGluIHRoZSAKKyAgICAgKiBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZS48L3A+CisgICAgICogPHA+QSAiZG91YmxlIiByZXR1cm4gdHlwZSBpcyBuZWNlc3NhcnkgYmVjYXVzZSBzb21lIG51bWVyaWMgdmFsdWVzIGFyZSAKKyAgICAgKiBmcmFjdGlvbnMsIG5lZ2F0aXZlLCBvciB0b28gbGFyZ2UgZm9yIGludC48L3A+CisgICAgICogPHA+Rm9yIGNoYXJhY3RlcnMgd2l0aG91dCBhbnkgbnVtZXJpYyB2YWx1ZXMgaW4gdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIAorICAgICAqIERhdGFiYXNlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIE5PX05VTUVSSUNfVkFMVUUuPC9wPgorICAgICAqIDxwPjxlbT5BUEkgQ2hhbmdlOjwvZW0+IEluIHJlbGVhc2UgMi4yIGFuZCBwcmlvciwgdGhpcyBBUEkgaGFzIGEKKyAgICAgKiByZXR1cm4gdHlwZSBpbnQgYW5kIHJldHVybnMgLTEgd2hlbiB0aGUgYXJndW1lbnQgY2ggZG9lcyBub3QgaGF2ZSBhIAorICAgICAqIGNvcnJlc3BvbmRpbmcgbnVtZXJpYyB2YWx1ZS4gVGhpcyBoYXMgYmVlbiBjaGFuZ2VkIHRvIHN5bmNoIHdpdGggSUNVNEMKKyAgICAgKiA8L3A+CisgICAgICogVGhpcyBjb3JyZXNwb25kcyB0byB0aGUgSUNVNEMgZnVuY3Rpb24gdV9nZXROdW1lcmljVmFsdWUuCisgICAgICogQHBhcmFtIGNoIENvZGUgcG9pbnQgdG8gZ2V0IHRoZSBudW1lcmljIHZhbHVlIGZvci4KKyAgICAgKiBAcmV0dXJuIG51bWVyaWMgdmFsdWUgb2YgY2gsIG9yIE5PX05VTUVSSUNfVkFMVUUgaWYgbm9uZSBpcyBkZWZpbmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZG91YmxlIGdldFVuaWNvZGVOdW1lcmljVmFsdWUoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gZXF1aXZhbGVudCB0byBjIHZlcnNpb24gZG91YmxlIHVfZ2V0TnVtZXJpY1ZhbHVlKFVDaGFyMzIgYykKKyAgICAgICAgaW50IHByb3BzID0gUFJPUEVSVFlfLmdldFByb3BlcnR5KGNoKTsKKyAgICAgICAgaW50IG51bWVyaWNUeXBlID0gZ2V0TnVtZXJpY1R5cGUocHJvcHMpOworCisgICAgICAgIGlmKG51bWVyaWNUeXBlPT0wIHx8IG51bWVyaWNUeXBlPj1VQ2hhcmFjdGVyUHJvcGVydHkuTlRfQ09VTlQpIHsKKyAgICAgICAgICAgIHJldHVybiBOT19OVU1FUklDX1ZBTFVFOworICAgICAgICB9CisKKyAgICAgICAgaW50IG51bWVyaWNWYWx1ZSA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRVbnNpZ25lZFZhbHVlKHByb3BzKTsKKworICAgICAgICBpZihudW1lcmljVHlwZTxOdW1lcmljVHlwZS5DT1VOVCkgeworICAgICAgICAgICAgLyogbm9ybWFsIHR5cGUsIHRoZSB2YWx1ZSBpcyBzdG9yZWQgZGlyZWN0bHkgKi8KKyAgICAgICAgICAgIHJldHVybiBudW1lcmljVmFsdWU7CisgICAgICAgIH0gZWxzZSBpZihudW1lcmljVHlwZT09VUNoYXJhY3RlclByb3BlcnR5Lk5UX0ZSQUNUSU9OKSB7CisgICAgICAgICAgICAvKiBmcmFjdGlvbiB2YWx1ZSAqLworICAgICAgICAgICAgaW50IG51bWVyYXRvciwgZGVub21pbmF0b3I7CisKKyAgICAgICAgICAgIG51bWVyYXRvcj1udW1lcmljVmFsdWU+PkZSQUNUSU9OX05VTV9TSElGVDsKKyAgICAgICAgICAgIGRlbm9taW5hdG9yPShudW1lcmljVmFsdWUmRlJBQ1RJT05fREVOX01BU0spK0ZSQUNUSU9OX0RFTl9PRkZTRVQ7CisKKyAgICAgICAgICAgIGlmKG51bWVyYXRvcj09MCkgeworICAgICAgICAgICAgICAgIG51bWVyYXRvcj0tMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAoZG91YmxlKW51bWVyYXRvci8oZG91YmxlKWRlbm9taW5hdG9yOworICAgICAgICB9IGVsc2UgLyogbnVtZXJpY1R5cGU9PU5UX0xBUkdFICovIHsKKyAgICAgICAgICAgIC8qIGxhcmdlIHZhbHVlIHdpdGggZXhwb25lbnQgKi8KKyAgICAgICAgICAgIGRvdWJsZSBudW1WYWx1ZTsKKyAgICAgICAgICAgIGludCBtYW50LCBleHA7CisKKyAgICAgICAgICAgIG1hbnQ9bnVtZXJpY1ZhbHVlPj5MQVJHRV9NQU5UX1NISUZUOworICAgICAgICAgICAgZXhwPW51bWVyaWNWYWx1ZSZMQVJHRV9FWFBfTUFTSzsKKyAgICAgICAgICAgIGlmKG1hbnQ9PTApIHsKKyAgICAgICAgICAgICAgICBtYW50PTE7CisgICAgICAgICAgICAgICAgZXhwKz1MQVJHRV9FWFBfT0ZGU0VUX0VYVFJBOworICAgICAgICAgICAgfSBlbHNlIGlmKG1hbnQ+OSkgeworICAgICAgICAgICAgICAgIHJldHVybiBOT19OVU1FUklDX1ZBTFVFOyAvKiByZXNlcnZlZCBtYW50aXNzYSB2YWx1ZSAqLworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBleHArPUxBUkdFX0VYUF9PRkZTRVQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG51bVZhbHVlPW1hbnQ7CisKKyAgICAgICAgICAgIC8qIG11bHRpcGx5IGJ5IDEwXmV4cCB3aXRob3V0IG1hdGguaCAqLworICAgICAgICAgICAgd2hpbGUoZXhwPj00KSB7CisgICAgICAgICAgICAgICAgbnVtVmFsdWUqPTEwMDAwLjsKKyAgICAgICAgICAgICAgICBleHAtPTQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzd2l0Y2goZXhwKSB7CisgICAgICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgbnVtVmFsdWUqPTEwMDAuOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIG51bVZhbHVlKj0xMDAuOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIG51bVZhbHVlKj0xMC47CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gbnVtVmFsdWU7CisgICAgICAgIH0KKyAgICB9CisgIAorICAgIC8qKgorICAgICAqIENvbXBhdGliaWxpdHkgb3ZlcnJpZGUgb2YgSmF2YSBkZXByZWNhdGVkIG1ldGhvZC4gIFRoaXMKKyAgICAgKiBtZXRob2Qgd2lsbCBhbHdheXMgcmVtYWluIGRlcHJlY2F0ZWQuICBEZWxlZ2F0ZXMgdG8KKyAgICAgKiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzU3BhY2UuCisgICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb2RlIHBvaW50IGlzIGEgc3BhY2UgY2hhcmFjdGVyIGFzCisgICAgICogZGVmaW5lZCBieSBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzU3BhY2UuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDMuNCAoSmF2YSkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNTcGFjZShpbnQgY2gpIHsKKyAgICAJcmV0dXJuIGNoIDw9IDB4MjAgJiYKKyAgICAJCShjaCA9PSAweDIwIHx8IGNoID09IDB4MDkgfHwgY2ggPT0gMHgwYSB8fCBjaCA9PSAweDBjIHx8IGNoID09IDB4MGQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB2YWx1ZSBpbmRpY2F0aW5nIGEgY29kZSBwb2ludCdzIFVuaWNvZGUgY2F0ZWdvcnkuCisgICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIuZ2V0VHlwZSgpIAorICAgICAqIGV4Y2VwdCBmb3IgdGhlIGFib3ZlIG1lbnRpb25lZCBjb2RlIHBvaW50cyB0aGF0IGhhZCB0aGVpciBjYXRlZ29yeSAKKyAgICAgKiBjaGFuZ2VkLjxicj4KKyAgICAgKiBSZXR1cm4gcmVzdWx0cyBhcmUgY29uc3RhbnRzIGZyb20gdGhlIGludGVyZmFjZSAKKyAgICAgKiA8YSBocmVmPVVDaGFyYWN0ZXJDYXRlZ29yeS5odG1sPlVDaGFyYWN0ZXJDYXRlZ29yeTwvYT48YnI+CisgICAgICogPGVtPk5PVEU6PC9lbT4gdGhlIFVDaGFyYWN0ZXJDYXRlZ29yeSB2YWx1ZXMgYXJlIDxlbT5ub3Q8L2VtPiBjb21wYXRpYmxlIHdpdGgKKyAgICAgKiB0aG9zZSByZXR1cm5lZCBieSBqYXZhLmxhbmcuQ2hhcmFjdGVyLmdldFR5cGUuICBVQ2hhcmFjdGVyQ2F0ZWdvcnkgdmFsdWVzCisgICAgICogbWF0Y2ggdGhlIG9uZXMgdXNlZCBpbiBJQ1U0Qywgd2hpbGUgamF2YS5sYW5nLkNoYXJhY3RlciB0eXBlCisgICAgICogdmFsdWVzLCB0aG91Z2ggc2ltaWxhciwgc2tpcCB0aGUgdmFsdWUgMTcuPC9wPgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHdob3NlIHR5cGUgaXMgdG8gYmUgZGV0ZXJtaW5lZAorICAgICAqIEByZXR1cm4gY2F0ZWdvcnkgd2hpY2ggaXMgYSB2YWx1ZSBvZiBVQ2hhcmFjdGVyQ2F0ZWdvcnkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRUeXBlKGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRQcm9wZXJ0eShjaCkgJiBVQ2hhcmFjdGVyUHJvcGVydHkuVFlQRV9NQVNLOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIGEgY29kZSBwb2ludCBoYXMgYSBkZWZpbmVkIG1lYW5pbmcgaW4gdGhlIHVwLXRvLWRhdGUgCisgICAgICogVW5pY29kZSBzdGFuZGFyZC4KKyAgICAgKiBFLmcuIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgdGhvdWdoIGFsbG9jYXRlZCBzcGFjZSBhcmUgbm90IGRlZmluZWQgaW4gCisgICAgICogVW5pY29kZSB5ZXQuPGJyPgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzRGVmaW5lZCgpCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gYmUgZGV0ZXJtaW5lZCBpZiBpdCBpcyBkZWZpbmVkIGluIHRoZSBtb3N0IAorICAgICAqICAgICAgICBjdXJyZW50IHZlcnNpb24gb2YgVW5pY29kZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGNvZGUgcG9pbnQgaXMgZGVmaW5lZCBpbiB1bmljb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzRGVmaW5lZChpbnQgY2gpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0VHlwZShjaCkgIT0gMDsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIGEgY29kZSBwb2ludCBpcyBhIEphdmEgZGlnaXQuCisgICAgICogPGJyPlRoaXMgbWV0aG9kIG9ic2VydmVzIHRoZSBzZW1hbnRpY3Mgb2YKKyAgICAgKiA8Y29kZT5qYXZhLmxhbmcuQ2hhcmFjdGVyLmlzRGlnaXQoKTwvY29kZT4uIEl0IHJldHVybnMgdHJ1ZSBmb3IgZGVjaW1hbCAKKyAgICAgKiBkaWdpdHMgb25seS4KKyAgICAgKiA8YnI+PGVtPlNlbWFudGljIENoYW5nZTo8L2VtPiBJbiByZWxlYXNlIDEuMy4xIGFuZCBwcmlvciwgdGhpcyB0cmVhdGVkIAorICAgICAqIG51bWVyaWMgbGV0dGVycyBhbmQgb3RoZXIgbnVtYmVycyBhcyBkaWdpdHMuIAorICAgICAqIFRoaXMgaGFzIGJlZW4gY2hhbmdlZCB0byBjb25mb3JtIHRvIHRoZSBqYXZhIHNlbWFudGljcy4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBxdWVyeQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIGNvZGUgcG9pbnQgaXMgYSBkaWdpdCAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNEaWdpdChpbnQgY2gpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0VHlwZShjaCkgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkRFQ0lNQUxfRElHSVRfTlVNQkVSOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGFuIElTTyBjb250cm9sIGNoYXJhY3Rlci4KKyAgICAgKiBBIGNvZGUgcG9pbnQgaXMgY29uc2lkZXJlZCB0byBiZSBhbiBJU08gY29udHJvbCBjaGFyYWN0ZXIgaWYgaXQgaXMgaW4gCisgICAgICogdGhlIHJhbmdlICYjOTJ1MDAwMCB0aHJvdWdoICYjOTJ1MDAxRiBvciBpbiB0aGUgcmFuZ2UgJiM5MnUwMDdGIHRocm91Z2ggCisgICAgICogJiM5MnUwMDlGLjxicj4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci5pc0lTT0NvbnRyb2woKQorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBpcyBhbiBJU08gY29udHJvbCBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZSBwb2ludCBpcyBhIElTTyBjb250cm9sIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0lTT0NvbnRyb2woaW50IGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNoID49IDAgJiYgY2ggPD0gQVBQTElDQVRJT05fUFJPR1JBTV9DT01NQU5EXyAmJiAKKyAgICAgICAgICAgICgoY2ggPD0gVU5JVF9TRVBBUkFUT1JfKSB8fCAoY2ggPj0gREVMRVRFXykpOworICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGEgbGV0dGVyLgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzTGV0dGVyKCkKKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgYSBsZXR0ZXIKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZSBwb2ludCBpcyBhIGxldHRlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xldHRlcihpbnQgY2gpCisgICAgeworICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgcmV0dXJuICgoMSA8PCBnZXRUeXBlKGNoKSkgCisgICAgICAgICYgKCgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSKSAKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9MRVRURVIpKSkgIT0gMDsKKyAgICB9CisgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgYSBsZXR0ZXIgb3IgZGlnaXQuCisgICAgICogTm90ZSB0aGlzIG1ldGhvZCwgdW5saWtlIGphdmEubGFuZy5DaGFyYWN0ZXIgZG9lcyBub3QgcmVnYXJkIHRoZSBhc2NpaSAKKyAgICAgKiBjaGFyYWN0ZXJzICdBJyAtICdaJyBhbmQgJ2EnIC0gJ3onIGFzIGRpZ2l0cy4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgYSBsZXR0ZXIgb3IgYSBkaWdpdAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIGEgbGV0dGVyIG9yIGEgZGlnaXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNMZXR0ZXJPckRpZ2l0KGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiAoKDEgPDwgZ2V0VHlwZShjaCkpIAorICAgICAgICAmICgoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUikgCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkxPV0VSQ0FTRV9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5Lk1PRElGSUVSX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTEVUVEVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5ERUNJTUFMX0RJR0lUX05VTUJFUikpKSAhPSAwOworICAgIH0KKyAgICAgCisgICAgLyoqCisgICAgICogQ29tcGF0aWJpbGl0eSBvdmVycmlkZSBvZiBKYXZhIGRlcHJlY2F0ZWQgbWV0aG9kLiAgVGhpcworICAgICAqIG1ldGhvZCB3aWxsIGFsd2F5cyByZW1haW4gZGVwcmVjYXRlZC4gIERlbGVnYXRlcyB0bworICAgICAqIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNKYXZhSWRlbnRpZmllclN0YXJ0LgorICAgICAqIEBwYXJhbSBjcCB0aGUgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29kZSBwb2ludCBjYW4gc3RhcnQgYSBqYXZhIGlkZW50aWZpZXIuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDMuNCAoSmF2YSkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNKYXZhTGV0dGVyKGludCBjcCkgeworCXJldHVybiBpc0phdmFJZGVudGlmaWVyU3RhcnQoY3ApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhdGliaWxpdHkgb3ZlcnJpZGUgb2YgSmF2YSBkZXByZWNhdGVkIG1ldGhvZC4gIFRoaXMKKyAgICAgKiBtZXRob2Qgd2lsbCBhbHdheXMgcmVtYWluIGRlcHJlY2F0ZWQuICBEZWxlZ2F0ZXMgdG8KKyAgICAgKiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzSmF2YUlkZW50aWZpZXJQYXJ0LgorICAgICAqIEBwYXJhbSBjcCB0aGUgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29kZSBwb2ludCBjYW4gY29udGludWUgYSBqYXZhIGlkZW50aWZpZXIuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDMuNCAoSmF2YSkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNKYXZhTGV0dGVyT3JEaWdpdChpbnQgY3ApIHsKKwlyZXR1cm4gaXNKYXZhSWRlbnRpZmllclBhcnQoY3ApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhdGliaWxpdHkgb3ZlcnJpZGUgb2YgSmF2YSBtZXRob2QsIGRlbGVnYXRlcyB0bworICAgICAqIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNKYXZhSWRlbnRpZmllclN0YXJ0LgorICAgICAqIEBwYXJhbSBjcCB0aGUgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29kZSBwb2ludCBjYW4gc3RhcnQgYSBqYXZhIGlkZW50aWZpZXIuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNKYXZhSWRlbnRpZmllclN0YXJ0KGludCBjcCkgeworCS8vIG5vdGUsIGRvd25jYXN0IHRvIGNoYXIgZm9yIGpkayAxLjQgY29tcGF0aWJpbGl0eQorCXJldHVybiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzSmF2YUlkZW50aWZpZXJTdGFydCgoY2hhciljcCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGF0aWJpbGl0eSBvdmVycmlkZSBvZiBKYXZhIG1ldGhvZCwgZGVsZWdhdGVzIHRvCisgICAgICogamF2YS5sYW5nLkNoYXJhY3Rlci5pc0phdmFJZGVudGlmaWVyUGFydC4KKyAgICAgKiBAcGFyYW0gY3AgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGUgcG9pbnQgY2FuIGNvbnRpbnVlIGEgamF2YSBpZGVudGlmaWVyLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzSmF2YUlkZW50aWZpZXJQYXJ0KGludCBjcCkgeworCS8vIG5vdGUsIGRvd25jYXN0IHRvIGNoYXIgZm9yIGpkayAxLjQgY29tcGF0aWJpbGl0eQorCXJldHVybiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzSmF2YUlkZW50aWZpZXJQYXJ0KChjaGFyKWNwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIGxvd2VyY2FzZSBjaGFyYWN0ZXIuCisgICAgICogVW5pY29kZURhdGEgb25seSBjb250YWlucyBjYXNlIG1hcHBpbmdzIGZvciBjb2RlIHBvaW50cyB3aGVyZSB0aGV5IGFyZSAKKyAgICAgKiBvbmUtdG8tb25lIG1hcHBpbmdzOyBpdCBhbHNvIG9taXRzIGluZm9ybWF0aW9uIGFib3V0IGNvbnRleHQtc2Vuc2l0aXZlIAorICAgICAqIGNhc2UgbWFwcGluZ3MuPGJyPiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBVbmljb2RlIGNhc2UgbWFwcGluZyAKKyAgICAgKiBwbGVhc2UgcmVmZXIgdG8gdGhlIAorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIyMS8+VGVjaG5pY2FsIHJlcG9ydCAKKyAgICAgKiAjMjE8L2E+Ljxicj4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci5pc0xvd2VyQ2FzZSgpCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGluIGxvd2VyY2FzZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIGEgbG93ZXJjYXNlIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xvd2VyQ2FzZShpbnQgY2gpCisgICAgeworICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgcmV0dXJuIGdldFR5cGUoY2gpID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5MT1dFUkNBU0VfTEVUVEVSOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIHdoaXRlIHNwYWNlIGNoYXJhY3Rlci4KKyAgICAgKiBBIGNvZGUgcG9pbnQgaXMgY29uc2lkZXJlZCB0byBiZSBhbiB3aGl0ZXNwYWNlIGNoYXJhY3RlciBpZiBhbmQgb25seQorICAgICAqIGlmIGl0IHNhdGlzZmllcyBvbmUgb2YgdGhlIGZvbGxvd2luZyBjcml0ZXJpYToKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiBJdCBpcyBhIFVuaWNvZGUgc3BhY2Ugc2VwYXJhdG9yIChjYXRlZ29yeSAiWnMiKSwgYnV0IGlzIG5vdAorICAgICAqICAgICAgYSBuby1icmVhayBzcGFjZSAoJiM5MnUwMEEwIG9yICYjOTJ1MjAyRiBvciAmIzkydUZFRkYpLgorICAgICAqIDxsaT4gSXQgaXMgYSBVbmljb2RlIGxpbmUgc2VwYXJhdG9yIChjYXRlZ29yeSAiWmwiKS4KKyAgICAgKiA8bGk+IEl0IGlzIGEgVW5pY29kZSBwYXJhZ3JhcGggc2VwYXJhdG9yIChjYXRlZ29yeSAiWnAiKS4KKyAgICAgKiA8bGk+IEl0IGlzICYjOTJ1MDAwOSwgSE9SSVpPTlRBTCBUQUJVTEFUSU9OLiAKKyAgICAgKiA8bGk+IEl0IGlzICYjOTJ1MDAwQSwgTElORSBGRUVELiAKKyAgICAgKiA8bGk+IEl0IGlzICYjOTJ1MDAwQiwgVkVSVElDQUwgVEFCVUxBVElPTi4gCisgICAgICogPGxpPiBJdCBpcyAmIzkydTAwMEMsIEZPUk0gRkVFRC4gCisgICAgICogPGxpPiBJdCBpcyAmIzkydTAwMEQsIENBUlJJQUdFIFJFVFVSTi4gCisgICAgICogPGxpPiBJdCBpcyAmIzkydTAwMUMsIEZJTEUgU0VQQVJBVE9SLiAKKyAgICAgKiA8bGk+IEl0IGlzICYjOTJ1MDAxRCwgR1JPVVAgU0VQQVJBVE9SLiAKKyAgICAgKiA8bGk+IEl0IGlzICYjOTJ1MDAxRSwgUkVDT1JEIFNFUEFSQVRPUi4gCisgICAgICogPGxpPiBJdCBpcyAmIzkydTAwMUYsIFVOSVQgU0VQQVJBVE9SLiAgCisgICAgICogPC91bD4KKyAgICAgKgorICAgICAqIFRoaXMgQVBJIHRyaWVzIHRvIHN5bmNoIHRvIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIEphdmEgQVBJLAorICAgICAqIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKCkuIAorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBpcyBhIHdoaXRlIHNwYWNlCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIHdoaXRlIHNwYWNlIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1doaXRlc3BhY2UoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gZXhjbHVkZSBuby1icmVhayBzcGFjZXMKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiAoKDEgPDwgZ2V0VHlwZShjaCkpICYgCisgICAgICAgICAgICAgICAgKCgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5TUEFDRV9TRVBBUkFUT1IpCisgICAgICAgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkxJTkVfU0VQQVJBVE9SKQorICAgICAgICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5QQVJBR1JBUEhfU0VQQVJBVE9SKSkpICE9IDAgCisgICAgICAgICYmIChjaCAhPSBOT19CUkVBS19TUEFDRV8pICYmIChjaCAhPSBOQVJST1dfTk9fQlJFQUtfU1BBQ0VfKSAKKyAgICAgICAgJiYgKGNoICE9IFpFUk9fV0lEVEhfTk9fQlJFQUtfU1BBQ0VfKQorICAgICAgICAvLyBUQUIgVlQgTEYgRkYgQ1IgRlMgR1MgUlMgVVMgTkwgYXJlIGFsbCBjb250cm9sIGNoYXJhY3RlcnMKKyAgICAgICAgLy8gdGhhdCBhcmUgd2hpdGUgc3BhY2VzLgorICAgICAgICB8fCAoY2ggPj0gMHg5ICYmIGNoIDw9IDB4ZCkgfHwgKGNoID49IDB4MWMgJiYgY2ggPD0gMHgxZik7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGEgVW5pY29kZSBzcGVjaWZpZWQgc3BhY2UgCisgICAgICogY2hhcmFjdGVyLCBpLmUuIGlmIGNvZGUgcG9pbnQgaXMgaW4gdGhlIGNhdGVnb3J5IFpzLCBabCBhbmQgWnAuCisgICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNTcGFjZUNoYXIoKS4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgYSBzcGFjZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgYSBzcGFjZSBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNTcGFjZUNoYXIoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiAoKDEgPDwgZ2V0VHlwZShjaCkpICYgKCgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5TUEFDRV9TRVBBUkFUT1IpIAorICAgICAgICAgICAgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkxJTkVfU0VQQVJBVE9SKQorICAgICAgICAgICAgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlBBUkFHUkFQSF9TRVBBUkFUT1IpKSkKKyAgICAgICAgIT0gMDsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBpcyBhIHRpdGxlY2FzZSBjaGFyYWN0ZXIuCisgICAgICogVW5pY29kZURhdGEgb25seSBjb250YWlucyBjYXNlIG1hcHBpbmdzIGZvciBjb2RlIHBvaW50cyB3aGVyZSB0aGV5IGFyZSAKKyAgICAgKiBvbmUtdG8tb25lIG1hcHBpbmdzOyBpdCBhbHNvIG9taXRzIGluZm9ybWF0aW9uIGFib3V0IGNvbnRleHQtc2Vuc2l0aXZlIAorICAgICAqIGNhc2UgbWFwcGluZ3MuPGJyPgorICAgICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IFVuaWNvZGUgY2FzZSBtYXBwaW5nIHBsZWFzZSByZWZlciB0byB0aGUgCisgICAgICogPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjIxLz4KKyAgICAgKiBUZWNobmljYWwgcmVwb3J0ICMyMTwvYT4uPGJyPgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzVGl0bGVDYXNlKCkuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGluIHRpdGxlIGNhc2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGEgdGl0bGVjYXNlIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1RpdGxlQ2FzZShpbnQgY2gpCisgICAgeworICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgcmV0dXJuIGdldFR5cGUoY2gpID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5USVRMRUNBU0VfTEVUVEVSOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBzcGVjaWZpZWQgY29kZSBwb2ludCBtYXkgYmUgYW55IHBhcnQgb2YgYSBVbmljb2RlIAorICAgICAqIGlkZW50aWZpZXIgb3RoZXIgdGhhbiB0aGUgc3RhcnRpbmcgY2hhcmFjdGVyLgorICAgICAqIEEgY29kZSBwb2ludCBtYXkgYmUgcGFydCBvZiBhIFVuaWNvZGUgaWRlbnRpZmllciBpZiBhbmQgb25seSBpZiBpdCBpcyAKKyAgICAgKiBvbmUgb2YgdGhlIGZvbGxvd2luZzogCisgICAgICogPHVsPgorICAgICAqIDxsaT4gTHUgVXBwZXJjYXNlIGxldHRlcgorICAgICAqIDxsaT4gTGwgTG93ZXJjYXNlIGxldHRlcgorICAgICAqIDxsaT4gTHQgVGl0bGVjYXNlIGxldHRlcgorICAgICAqIDxsaT4gTG0gTW9kaWZpZXIgbGV0dGVyCisgICAgICogPGxpPiBMbyBPdGhlciBsZXR0ZXIKKyAgICAgKiA8bGk+IE5sIExldHRlciBudW1iZXIKKyAgICAgKiA8bGk+IFBjIENvbm5lY3RpbmcgcHVuY3R1YXRpb24gY2hhcmFjdGVyIAorICAgICAqIDxsaT4gTmQgZGVjaW1hbCBudW1iZXIKKyAgICAgKiA8bGk+IE1jIFNwYWNpbmcgY29tYmluaW5nIG1hcmsgCisgICAgICogPGxpPiBNbiBOb24tc3BhY2luZyBtYXJrIAorICAgICAqIDxsaT4gQ2YgZm9ybWF0dGluZyBjb2RlCisgICAgICogPC91bD4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgCisgICAgICogamF2YS5sYW5nLkNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyUGFydCgpLjxicj4KKyAgICAgKiBTZWUgPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjgvPlVUUiAjODwvYT4uCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGlzIGNhbiBiZSBwYXJ0IG9mIGEgVW5pY29kZSAKKyAgICAgKiAgICAgICAgaWRlbnRpZmllcgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIGFueSBjaGFyYWN0ZXIgYmVsb25naW5nIGEgdW5pY29kZSAKKyAgICAgKiAgICAgICAgIGlkZW50aWZpZXIgc3VmZml4IGFmdGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVbmljb2RlSWRlbnRpZmllclBhcnQoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIC8vIGNhdCA9PSBmb3JtYXQKKyAgICAgICAgcmV0dXJuICgoMSA8PCBnZXRUeXBlKGNoKSkgCisgICAgICAgICYgKCgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSKSAKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTU9ESUZJRVJfTEVUVEVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5PVEhFUl9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkxFVFRFUl9OVU1CRVIpIAorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT05ORUNUT1JfUFVOQ1RVQVRJT04pCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkRFQ0lNQUxfRElHSVRfTlVNQkVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5DT01CSU5JTkdfU1BBQ0lOR19NQVJLKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5OT05fU1BBQ0lOR19NQVJLKSkpICE9IDAKKyAgICAgICAgfHwgaXNJZGVudGlmaWVySWdub3JhYmxlKGNoKTsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIHBlcm1pc3NpYmxlIGFzIHRoZSBmaXJzdCAKKyAgICAgKiBjaGFyYWN0ZXIgaW4gYSBVbmljb2RlIGlkZW50aWZpZXIuCisgICAgICogQSBjb2RlIHBvaW50IG1heSBzdGFydCBhIFVuaWNvZGUgaWRlbnRpZmllciBpZiBpdCBpcyBvZiB0eXBlIGVpdGhlciAKKyAgICAgKiA8dWw+IAorICAgICAqIDxsaT4gTHUgVXBwZXJjYXNlIGxldHRlcgorICAgICAqIDxsaT4gTGwgTG93ZXJjYXNlIGxldHRlcgorICAgICAqIDxsaT4gTHQgVGl0bGVjYXNlIGxldHRlcgorICAgICAqIDxsaT4gTG0gTW9kaWZpZXIgbGV0dGVyCisgICAgICogPGxpPiBMbyBPdGhlciBsZXR0ZXIKKyAgICAgKiA8bGk+IE5sIExldHRlciBudW1iZXIKKyAgICAgKiA8L3VsPgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiAKKyAgICAgKiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzVW5pY29kZUlkZW50aWZpZXJTdGFydCgpLjxicj4KKyAgICAgKiBTZWUgPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjgvPlVUUiAjODwvYT4uCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGNhbiBzdGFydCBhIFVuaWNvZGUgaWRlbnRpZmllcgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYmVsb25naW5nIGEgdW5pY29kZSAKKyAgICAgKiAgICAgICAgICAgICAgaWRlbnRpZmllcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoaW50IGNoKQorICAgIHsKKyAgICAgICAgLyppbnQgY2F0ID0gZ2V0VHlwZShjaCk7Ki8KKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiAoKDEgPDwgZ2V0VHlwZShjaCkpIAorICAgICAgICAmICgoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUikgCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LkxPV0VSQ0FTRV9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5LlRJVExFQ0FTRV9MRVRURVIpCisgICAgICAgICAgIHwgKDEgPDwgVUNoYXJhY3RlckNhdGVnb3J5Lk1PRElGSUVSX0xFVFRFUikKKyAgICAgICAgICAgfCAoMSA8PCBVQ2hhcmFjdGVyQ2F0ZWdvcnkuT1RIRVJfTEVUVEVSKQorICAgICAgICAgICB8ICgxIDw8IFVDaGFyYWN0ZXJDYXRlZ29yeS5MRVRURVJfTlVNQkVSKSkpICE9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgc2hvdWxkIGJlIHJlZ2FyZGVkIGFzIGFuIAorICAgICAqIGlnbm9yYWJsZSBjaGFyYWN0ZXIgaW4gYSBVbmljb2RlIGlkZW50aWZpZXIuCisgICAgICogQSBjaGFyYWN0ZXIgaXMgaWdub3JhYmxlIGluIHRoZSBVbmljb2RlIHN0YW5kYXJkIGlmIGl0IGlzIG9mIHRoZSB0eXBlIAorICAgICAqIENmLCBGb3JtYXR0aW5nIGNvZGUuPGJyPgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiAKKyAgICAgKiBqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzSWRlbnRpZmllcklnbm9yYWJsZSgpLjxicj4KKyAgICAgKiBTZWUgPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjgvPlVUUiAjODwvYT4uCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gYmUgZGV0ZXJtaW5lZCBpZiBpdCBjYW4gYmUgaWdub3JlZCBpbiBhIFVuaWNvZGUgCisgICAgICogICAgICAgIGlkZW50aWZpZXIuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb2RlIHBvaW50IGlzIGlnbm9yYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0lkZW50aWZpZXJJZ25vcmFibGUoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gc2VlIGphdmEubGFuZy5DaGFyYWN0ZXIuaXNJZGVudGlmaWVySWdub3JhYmxlKCkgb24gcmFuZ2Ugb2YgCisgICAgICAgIC8vIGlnbm9yYWJsZSBjaGFyYWN0ZXJzLgorICAgICAgICBpZiAoY2ggPD0gMHg5ZikgeworICAgICAgICByZXR1cm4gaXNJU09Db250cm9sKGNoKSAKKyAgICAgICAgJiYgISgoY2ggPj0gMHg5ICYmIGNoIDw9IDB4ZCkgCisgICAgICAgICAgICAgfHwgKGNoID49IDB4MWMgJiYgY2ggPD0gMHgxZikpOworICAgICAgICB9IAorICAgICAgICByZXR1cm4gZ2V0VHlwZShjaCkgPT0gVUNoYXJhY3RlckNhdGVnb3J5LkZPUk1BVDsKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgc3BlY2lmaWVkIGNvZGUgcG9pbnQgaXMgYW4gdXBwZXJjYXNlIGNoYXJhY3Rlci4KKyAgICAgKiBVbmljb2RlRGF0YSBvbmx5IGNvbnRhaW5zIGNhc2UgbWFwcGluZ3MgZm9yIGNvZGUgcG9pbnQgd2hlcmUgdGhleSBhcmUgCisgICAgICogb25lLXRvLW9uZSBtYXBwaW5nczsgaXQgYWxzbyBvbWl0cyBpbmZvcm1hdGlvbiBhYm91dCBjb250ZXh0LXNlbnNpdGl2ZSAKKyAgICAgKiBjYXNlIG1hcHBpbmdzLjxicj4gCisgICAgICogRm9yIGxhbmd1YWdlIHNwZWNpZmljIGNhc2UgY29udmVyc2lvbiBiZWhhdmlvciwgdXNlIAorICAgICAqIHRvVXBwZXJDYXNlKGxvY2FsZSwgc3RyKS4gPGJyPgorICAgICAqIEZvciBleGFtcGxlLCB0aGUgY2FzZSBjb252ZXJzaW9uIGZvciBkb3QtbGVzcyBpIGFuZCBkb3R0ZWQgSSBpbiBUdXJraXNoLAorICAgICAqIG9yIGZvciBmaW5hbCBzaWdtYSBpbiBHcmVlay4KKyAgICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBVbmljb2RlIGNhc2UgbWFwcGluZyBwbGVhc2UgcmVmZXIgdG8gdGhlIAorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIyMS8+CisgICAgICogVGVjaG5pY2FsIHJlcG9ydCAjMjE8L2E+Ljxicj4KKyAgICAgKiBVcC10by1kYXRlIFVuaWNvZGUgaW1wbGVtZW50YXRpb24gb2YgamF2YS5sYW5nLkNoYXJhY3Rlci5pc1VwcGVyQ2FzZSgpLgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHRvIGRldGVybWluZSBpZiBpdCBpcyBpbiB1cHBlcmNhc2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGUgcG9pbnQgaXMgYW4gdXBwZXJjYXNlIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VwcGVyQ2FzZShpbnQgY2gpCisgICAgeworICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgcmV0dXJuIGdldFR5cGUoY2gpID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5VUFBFUkNBU0VfTEVUVEVSOworICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogVGhlIGdpdmVuIGNvZGUgcG9pbnQgaXMgbWFwcGVkIHRvIGl0cyBsb3dlcmNhc2UgZXF1aXZhbGVudDsgaWYgdGhlIGNvZGUgCisgICAgICogcG9pbnQgaGFzIG5vIGxvd2VyY2FzZSBlcXVpdmFsZW50LCB0aGUgY29kZSBwb2ludCBpdHNlbGYgaXMgcmV0dXJuZWQuCisgICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIudG9Mb3dlckNhc2UoKQorICAgICAqCisgICAgICogPHA+VGhpcyBmdW5jdGlvbiBvbmx5IHJldHVybnMgdGhlIHNpbXBsZSwgc2luZ2xlLWNvZGUgcG9pbnQgY2FzZSBtYXBwaW5nLgorICAgICAqIEZ1bGwgY2FzZSBtYXBwaW5ncyBzaG91bGQgYmUgdXNlZCB3aGVuZXZlciBwb3NzaWJsZSBiZWNhdXNlIHRoZXkgcHJvZHVjZQorICAgICAqIGJldHRlciByZXN1bHRzIGJ5IHdvcmtpbmcgb24gd2hvbGUgc3RyaW5ncy4KKyAgICAgKiBUaGV5IHRha2UgaW50byBhY2NvdW50IHRoZSBzdHJpbmcgY29udGV4dCBhbmQgdGhlIGxhbmd1YWdlIGFuZCBjYW4gbWFwCisgICAgICogdG8gYSByZXN1bHQgc3RyaW5nIHdpdGggYSBkaWZmZXJlbnQgbGVuZ3RoIGFzIGFwcHJvcHJpYXRlLgorICAgICAqIEZ1bGwgY2FzZSBtYXBwaW5ncyBhcmUgYXBwbGllZCBieSB0aGUgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucworICAgICAqIHRoYXQgdGFrZSBTdHJpbmcgcGFyYW1ldGVycyByYXRoZXIgdGhhbiBjb2RlIHBvaW50cyAoaW50KS4KKyAgICAgKiBTZWUgYWxzbyB0aGUgVXNlciBHdWlkZSBjaGFwdGVyIG9uIEMvUE9TSVggbWlncmF0aW9uOgorICAgICAqIGh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9wb3NpeC5odG1sI2Nhc2VfbWFwcGluZ3MKKyAgICAgKgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHdob3NlIGxvd2VyY2FzZSBlcXVpdmFsZW50IGlzIHRvIGJlIHJldHJpZXZlZAorICAgICAqIEByZXR1cm4gdGhlIGxvd2VyY2FzZSBlcXVpdmFsZW50IGNvZGUgcG9pbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCB0b0xvd2VyQ2FzZShpbnQgY2gpIHsKKyAgICAgICAgcmV0dXJuIGdDc3AudG9sb3dlcihjaCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydHMgYXJndW1lbnQgY29kZSBwb2ludCBhbmQgcmV0dXJucyBhIFN0cmluZyBvYmplY3QgcmVwcmVzZW50aW5nIAorICAgICAqIHRoZSBjb2RlIHBvaW50J3MgdmFsdWUgaW4gVVRGMTYgZm9ybWF0LgorICAgICAqIFRoZSByZXN1bHQgaXMgYSBzdHJpbmcgd2hvc2UgbGVuZ3RoIGlzIDEgZm9yIG5vbi1zdXBwbGVtZW50YXJ5IGNvZGUgCisgICAgICogcG9pbnRzLCAyIG90aGVyd2lzZS48YnI+CisgICAgICogY29tLmlibS5pYm0uaWN1LlVURjE2IGNhbiBiZSB1c2VkIHRvIHBhcnNlIFN0cmluZ3MgZ2VuZXJhdGVkIGJ5IHRoaXMgCisgICAgICogZnVuY3Rpb24uPGJyPgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLnRvU3RyaW5nKCkKKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb2RlIHBvaW50LCBudWxsIGlmIGNvZGUgcG9pbnQgaXMgbm90CisgICAgICogICAgICAgICBkZWZpbmVkIGluIHVuaWNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1N0cmluZyhpbnQgY2gpCisgICAgeworICAgICAgICBpZiAoY2ggPCBNSU5fVkFMVUUgfHwgY2ggPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoY2ggPCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIFN0cmluZy52YWx1ZU9mKChjaGFyKWNoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoVVRGMTYuZ2V0VHJhaWxTdXJyb2dhdGUoY2gpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnRzIHRoZSBjb2RlIHBvaW50IGFyZ3VtZW50IHRvIHRpdGxlY2FzZS4KKyAgICAgKiBJZiBubyB0aXRsZWNhc2UgaXMgYXZhaWxhYmxlLCB0aGUgdXBwZXJjYXNlIGlzIHJldHVybmVkLiBJZiBubyB1cHBlcmNhc2UgCisgICAgICogaXMgYXZhaWxhYmxlLCB0aGUgY29kZSBwb2ludCBpdHNlbGYgaXMgcmV0dXJuZWQuCisgICAgICogVXAtdG8tZGF0ZSBVbmljb2RlIGltcGxlbWVudGF0aW9uIG9mIGphdmEubGFuZy5DaGFyYWN0ZXIudG9UaXRsZUNhc2UoKQorICAgICAqCisgICAgICogPHA+VGhpcyBmdW5jdGlvbiBvbmx5IHJldHVybnMgdGhlIHNpbXBsZSwgc2luZ2xlLWNvZGUgcG9pbnQgY2FzZSBtYXBwaW5nLgorICAgICAqIEZ1bGwgY2FzZSBtYXBwaW5ncyBzaG91bGQgYmUgdXNlZCB3aGVuZXZlciBwb3NzaWJsZSBiZWNhdXNlIHRoZXkgcHJvZHVjZQorICAgICAqIGJldHRlciByZXN1bHRzIGJ5IHdvcmtpbmcgb24gd2hvbGUgc3RyaW5ncy4KKyAgICAgKiBUaGV5IHRha2UgaW50byBhY2NvdW50IHRoZSBzdHJpbmcgY29udGV4dCBhbmQgdGhlIGxhbmd1YWdlIGFuZCBjYW4gbWFwCisgICAgICogdG8gYSByZXN1bHQgc3RyaW5nIHdpdGggYSBkaWZmZXJlbnQgbGVuZ3RoIGFzIGFwcHJvcHJpYXRlLgorICAgICAqIEZ1bGwgY2FzZSBtYXBwaW5ncyBhcmUgYXBwbGllZCBieSB0aGUgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucworICAgICAqIHRoYXQgdGFrZSBTdHJpbmcgcGFyYW1ldGVycyByYXRoZXIgdGhhbiBjb2RlIHBvaW50cyAoaW50KS4KKyAgICAgKiBTZWUgYWxzbyB0aGUgVXNlciBHdWlkZSBjaGFwdGVyIG9uIEMvUE9TSVggbWlncmF0aW9uOgorICAgICAqIGh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9wb3NpeC5odG1sI2Nhc2VfbWFwcGluZ3MKKyAgICAgKgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50ICB3aG9zZSB0aXRsZSBjYXNlIGlzIHRvIGJlIHJldHJpZXZlZAorICAgICAqIEByZXR1cm4gdGl0bGVjYXNlIGNvZGUgcG9pbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCB0b1RpdGxlQ2FzZShpbnQgY2gpIHsKKyAgICAgICAgcmV0dXJuIGdDc3AudG90aXRsZShjaCk7CisgICAgfQorICAgICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnRzIHRoZSBjaGFyYWN0ZXIgYXJndW1lbnQgdG8gdXBwZXJjYXNlLgorICAgICAqIElmIG5vIHVwcGVyY2FzZSBpcyBhdmFpbGFibGUsIHRoZSBjaGFyYWN0ZXIgaXRzZWxmIGlzIHJldHVybmVkLgorICAgICAqIFVwLXRvLWRhdGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBvZiBqYXZhLmxhbmcuQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKCkKKyAgICAgKgorICAgICAqIDxwPlRoaXMgZnVuY3Rpb24gb25seSByZXR1cm5zIHRoZSBzaW1wbGUsIHNpbmdsZS1jb2RlIHBvaW50IGNhc2UgbWFwcGluZy4KKyAgICAgKiBGdWxsIGNhc2UgbWFwcGluZ3Mgc2hvdWxkIGJlIHVzZWQgd2hlbmV2ZXIgcG9zc2libGUgYmVjYXVzZSB0aGV5IHByb2R1Y2UKKyAgICAgKiBiZXR0ZXIgcmVzdWx0cyBieSB3b3JraW5nIG9uIHdob2xlIHN0cmluZ3MuCisgICAgICogVGhleSB0YWtlIGludG8gYWNjb3VudCB0aGUgc3RyaW5nIGNvbnRleHQgYW5kIHRoZSBsYW5ndWFnZSBhbmQgY2FuIG1hcAorICAgICAqIHRvIGEgcmVzdWx0IHN0cmluZyB3aXRoIGEgZGlmZmVyZW50IGxlbmd0aCBhcyBhcHByb3ByaWF0ZS4KKyAgICAgKiBGdWxsIGNhc2UgbWFwcGluZ3MgYXJlIGFwcGxpZWQgYnkgdGhlIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMKKyAgICAgKiB0aGF0IHRha2UgU3RyaW5nIHBhcmFtZXRlcnMgcmF0aGVyIHRoYW4gY29kZSBwb2ludHMgKGludCkuCisgICAgICogU2VlIGFsc28gdGhlIFVzZXIgR3VpZGUgY2hhcHRlciBvbiBDL1BPU0lYIG1pZ3JhdGlvbjoKKyAgICAgKiBodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvcG9zaXguaHRtbCNjYXNlX21hcHBpbmdzCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB3aG9zZSB1cHBlcmNhc2UgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgICogQHJldHVybiB1cHBlcmNhc2UgY29kZSBwb2ludAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IHRvVXBwZXJDYXNlKGludCBjaCkgeworICAgICAgICByZXR1cm4gZ0NzcC50b3VwcGVyKGNoKTsKKyAgICB9CisgICAgICAgCisgICAgLy8gZXh0cmEgbWV0aG9kcyBub3QgaW4gamF2YS5sYW5nLkNoYXJhY3RlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIGNvZGUgcG9pbnQgaXMgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3Rlci4KKyAgICAgKiBBIGNvZGUgcG9pbnQgaXMgYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpZiBhbmQgb25seSBpZiBpdCBpcyBncmVhdGVyIAorICAgICAqIHRoYW4gPGEgaHJlZj0jU1VQUExFTUVOVEFSWV9NSU5fVkFMVUU+U1VQUExFTUVOVEFSWV9NSU5fVkFMVUU8L2E+CisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gYmUgZGV0ZXJtaW5lZCBpZiBpdCBpcyBpbiB0aGUgc3VwcGxlbWVudGFyeSAKKyAgICAgKiAgICAgICAgcGxhbmUKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY29kZSBwb2ludCBpcyBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzU3VwcGxlbWVudGFyeShpbnQgY2gpCisgICAgeworICAgICAgICByZXR1cm4gY2ggPj0gVUNoYXJhY3Rlci5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSAmJiAKKyAgICAgICAgICAgIGNoIDw9IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIGNvZGUgcG9pbnQgaXMgaW4gdGhlIEJNUCBwbGFuZS4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byBiZSBkZXRlcm1pbmVkIGlmIGl0IGlzIG5vdCBhIHN1cHBsZW1lbnRhcnkgCisgICAgICogICAgICAgIGNoYXJhY3RlcgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjb2RlIHBvaW50IGlzIG5vdCBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzQk1QKGludCBjaCkgCisgICAgeworICAgICAgICByZXR1cm4gKGNoID49IDAgJiYgY2ggPD0gTEFTVF9DSEFSX01BU0tfKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIGEgcHJpbnRhYmxlIGNoYXJhY3RlciAKKyAgICAgKiBhY2NvcmRpbmcgdG8gdGhlIFVuaWNvZGUgc3RhbmRhcmQuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gYmUgZGV0ZXJtaW5lZCBpZiBpdCBpcyBwcmludGFibGUKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGUgcG9pbnQgaXMgYSBwcmludGFibGUgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzUHJpbnRhYmxlKGludCBjaCkKKyAgICB7CisgICAgICAgIGludCBjYXQgPSBnZXRUeXBlKGNoKTsKKyAgICAgICAgLy8gaWYgcHJvcHMgPT0gMCwgaXQgd2lsbCBqdXN0IGZhbGwgdGhyb3VnaCBhbmQgcmV0dXJuIGZhbHNlCisgICAgICAgIHJldHVybiAoY2F0ICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5VTkFTU0lHTkVEICYmIAorICAgICAgICBjYXQgIT0gVUNoYXJhY3RlckNhdGVnb3J5LkNPTlRST0wgJiYgCisgICAgICAgIGNhdCAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRk9STUFUICYmCisgICAgICAgIGNhdCAhPSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuUFJJVkFURV9VU0UgJiYKKyAgICAgICAgY2F0ICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5TVVJST0dBVEUgJiYKKyAgICAgICAgY2F0ICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5HRU5FUkFMX09USEVSX1RZUEVTKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IGlzIG9mIGJhc2UgZm9ybS4KKyAgICAgKiBBIGNvZGUgcG9pbnQgb2YgYmFzZSBmb3JtIGRvZXMgbm90IGdyYXBoaWNhbGx5IGNvbWJpbmUgd2l0aCBwcmVjZWRpbmcgCisgICAgICogY2hhcmFjdGVycywgYW5kIGlzIG5laXRoZXIgYSBjb250cm9sIG5vciBhIGZvcm1hdCBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gYmUgZGV0ZXJtaW5lZCBpZiBpdCBpcyBvZiBiYXNlIGZvcm0KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNvZGUgcG9pbnQgaXMgb2YgYmFzZSBmb3JtCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzQmFzZUZvcm0oaW50IGNoKQorICAgIHsKKyAgICAgICAgaW50IGNhdCA9IGdldFR5cGUoY2gpOworICAgICAgICAvLyBpZiBwcm9wcyA9PSAwLCBpdCB3aWxsIGp1c3QgZmFsbCB0aHJvdWdoIGFuZCByZXR1cm4gZmFsc2UKKyAgICAgICAgcmV0dXJuIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuREVDSU1BTF9ESUdJVF9OVU1CRVIgfHwgCisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX05VTUJFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTEVUVEVSX05VTUJFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVVBQRVJDQVNFX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTE9XRVJDQVNFX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuVElUTEVDQVNFX0xFVFRFUiB8fAorICAgICAgICAgICAgY2F0ID09IFVDaGFyYWN0ZXJDYXRlZ29yeS5NT0RJRklFUl9MRVRURVIgfHwgCisgICAgICAgICAgICBjYXQgPT0gVUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUiB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuTk9OX1NQQUNJTkdfTUFSSyB8fCAKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuRU5DTE9TSU5HX01BUksgfHwKKyAgICAgICAgICAgIGNhdCA9PSBVQ2hhcmFjdGVyQ2F0ZWdvcnkuQ09NQklOSU5HX1NQQUNJTkdfTUFSSzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBCaWRpcmVjdGlvbiBwcm9wZXJ0eSBvZiBhIGNvZGUgcG9pbnQuCisgICAgICogRm9yIGV4YW1wbGUsIDB4MDA0MSAobGV0dGVyIEEpIGhhcyB0aGUgTEVGVF9UT19SSUdIVCBkaXJlY3Rpb25hbCAKKyAgICAgKiBwcm9wZXJ0eS48YnI+CisgICAgICogUmVzdWx0IHJldHVybmVkIGJlbG9uZ3MgdG8gdGhlIGludGVyZmFjZSAKKyAgICAgKiA8YSBocmVmPVVDaGFyYWN0ZXJEaXJlY3Rpb24uaHRtbD5VQ2hhcmFjdGVyRGlyZWN0aW9uPC9hPgorICAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludCB0byBiZSBkZXRlcm1pbmVkIGl0cyBkaXJlY3Rpb24KKyAgICAgKiBAcmV0dXJuIGRpcmVjdGlvbiBjb25zdGFudCBmcm9tIFVDaGFyYWN0ZXJEaXJlY3Rpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0RGlyZWN0aW9uKGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBnQmRwLmdldENsYXNzKGNoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvZGUgcG9pbnQgaGFzIHRoZSAibWlycm9yZWQiIHByb3BlcnR5LgorICAgICAqIFRoaXMgcHJvcGVydHkgaXMgc2V0IGZvciBjaGFyYWN0ZXJzIHRoYXQgYXJlIGNvbW1vbmx5IHVzZWQgaW4KKyAgICAgKiBSaWdodC1Uby1MZWZ0IGNvbnRleHRzIGFuZCBuZWVkIHRvIGJlIGRpc3BsYXllZCB3aXRoIGEgIm1pcnJvcmVkIgorICAgICAqIGdseXBoLgorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHdob3NlIG1pcnJvciBpcyB0byBiZSBkZXRlcm1pbmVkCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb2RlIHBvaW50IGhhcyB0aGUgIm1pcnJvcmVkIiBwcm9wZXJ0eQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc01pcnJvcmVkKGludCBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiBnQmRwLmlzTWlycm9yZWQoY2gpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1hcHMgdGhlIHNwZWNpZmllZCBjb2RlIHBvaW50IHRvIGEgIm1pcnJvci1pbWFnZSIgY29kZSBwb2ludC4KKyAgICAgKiBGb3IgY29kZSBwb2ludHMgd2l0aCB0aGUgIm1pcnJvcmVkIiBwcm9wZXJ0eSwgaW1wbGVtZW50YXRpb25zIHNvbWV0aW1lcyAKKyAgICAgKiBuZWVkIGEgInBvb3IgbWFuJ3MiIG1hcHBpbmcgdG8gYW5vdGhlciBjb2RlIHBvaW50IHN1Y2ggdGhhdCB0aGUgZGVmYXVsdCAKKyAgICAgKiBnbHlwaCBtYXkgc2VydmUgYXMgdGhlIG1pcnJvci1pbWFnZSBvZiB0aGUgZGVmYXVsdCBnbHlwaCBvZiB0aGUgCisgICAgICogc3BlY2lmaWVkIGNvZGUgcG9pbnQuPGJyPiAKKyAgICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgdGV4dCBjb252ZXJzaW9uIHRvIGFuZCBmcm9tIGNvZGVwYWdlcyB3aXRoIHZpc3VhbCAKKyAgICAgKiBvcmRlciwgYW5kIGZvciBkaXNwbGF5cyB3aXRob3V0IGdseXBoIHNlbGVjdGlvbiBjYXBhYmlsaXRpZXMuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgd2hvc2UgbWlycm9yIGlzIHRvIGJlIHJldHJpZXZlZAorICAgICAqIEByZXR1cm4gYW5vdGhlciBjb2RlIHBvaW50IHRoYXQgbWF5IHNlcnZlIGFzIGEgbWlycm9yLWltYWdlIHN1YnN0aXR1dGUsIAorICAgICAqICAgICAgICAgb3IgY2ggaXRzZWxmIGlmIHRoZXJlIGlzIG5vIHN1Y2ggbWFwcGluZyBvciBjaCBkb2VzIG5vdCBoYXZlIHRoZSAKKyAgICAgKiAgICAgICAgICJtaXJyb3JlZCIgcHJvcGVydHkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRNaXJyb3IoaW50IGNoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdCZHAuZ2V0TWlycm9yKGNoKTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgdGhlIGFyZ3VtZW50IGNvZGVwb2ludAorICAgICAqIEBwYXJhbSBjaCBjb2RlIHBvaW50IHdob3NlIGNvbWJpbmluZyBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAgKiBAcmV0dXJuIHRoZSBjb21iaW5pbmcgY2xhc3Mgb2YgdGhlIGNvZGVwb2ludAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldENvbWJpbmluZ0NsYXNzKGludCBjaCkKKyAgICB7CisgICAgICAgIGlmIChjaCA8IE1JTl9WQUxVRSB8fCBjaCA+IE1BWF9WQUxVRSkgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDb2RlcG9pbnQgb3V0IG9mIGJvdW5kcyIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5nZXRDb21iaW5pbmdDbGFzcyhjaCk7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogQSBjb2RlIHBvaW50IGlzIGlsbGVnYWwgaWYgYW5kIG9ubHkgaWYKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiBPdXQgb2YgYm91bmRzLCBsZXNzIHRoYW4gMCBvciBncmVhdGVyIHRoYW4gVUNoYXJhY3Rlci5NQVhfVkFMVUUKKyAgICAgKiA8bGk+IEEgc3Vycm9nYXRlIHZhbHVlLCAweEQ4MDAgdG8gMHhERkZGCisgICAgICogPGxpPiBOb3QtYS1jaGFyYWN0ZXIsIGhhdmluZyB0aGUgZm9ybSAweCB4eEZGRkYgb3IgMHggeHhGRkZFCisgICAgICogPC91bD4KKyAgICAgKiBOb3RlOiBsZWdhbCBkb2VzIG5vdCBtZWFuIHRoYXQgaXQgaXMgYXNzaWduZWQgaW4gdGhpcyB2ZXJzaW9uIG9mIFVuaWNvZGUuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGEgbGVnYWwgY29kZSBwb2ludCBieSBpdHNlbGYKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgYW5kIG9ubHkgaWYgbGVnYWwuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xlZ2FsKGludCBjaCkgCisgICAgeworICAgICAgICBpZiAoY2ggPCBNSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2ggPCBVVEYxNi5TVVJST0dBVEVfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2ggPD0gVVRGMTYuU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChVQ2hhcmFjdGVyVXRpbGl0eS5pc05vbkNoYXJhY3RlcihjaCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKGNoIDw9IE1BWF9WQUxVRSk7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogQSBzdHJpbmcgaXMgbGVnYWwgaWZmIGFsbCBpdHMgY29kZSBwb2ludHMgYXJlIGxlZ2FsLgorICAgICAqIEEgY29kZSBwb2ludCBpcyBpbGxlZ2FsIGlmIGFuZCBvbmx5IGlmCisgICAgICogPHVsPgorICAgICAqIDxsaT4gT3V0IG9mIGJvdW5kcywgbGVzcyB0aGFuIDAgb3IgZ3JlYXRlciB0aGFuIFVDaGFyYWN0ZXIuTUFYX1ZBTFVFCisgICAgICogPGxpPiBBIHN1cnJvZ2F0ZSB2YWx1ZSwgMHhEODAwIHRvIDB4REZGRgorICAgICAqIDxsaT4gTm90LWEtY2hhcmFjdGVyLCBoYXZpbmcgdGhlIGZvcm0gMHggeHhGRkZGIG9yIDB4IHh4RkZGRQorICAgICAqIDwvdWw+CisgICAgICogTm90ZTogbGVnYWwgZG9lcyBub3QgbWVhbiB0aGF0IGl0IGlzIGFzc2lnbmVkIGluIHRoaXMgdmVyc2lvbiBvZiBVbmljb2RlLgorICAgICAqIEBwYXJhbSBzdHIgY29udGFpbmluZyBjb2RlIHBvaW50cyB0byBleGFtaW4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgYW5kIG9ubHkgaWYgbGVnYWwuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0xlZ2FsKFN0cmluZyBzdHIpIAorICAgIHsKKyAgICAgICAgaW50IHNpemUgPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIGludCBjb2RlcG9pbnQ7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSArKykKKyAgICAgICAgeworICAgICAgICBjb2RlcG9pbnQgPSBVVEYxNi5jaGFyQXQoc3RyLCBpKTsKKyAgICAgICAgaWYgKCFpc0xlZ2FsKGNvZGVwb2ludCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNTdXBwbGVtZW50YXJ5KGNvZGVwb2ludCkpIHsKKyAgICAgICAgICAgIGkgKys7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB2ZXJzaW9uIG9mIFVuaWNvZGUgZGF0YSB1c2VkLiAKKyAgICAgKiBAcmV0dXJuIHRoZSB1bmljb2RlIHZlcnNpb24gbnVtYmVyIHVzZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZlcnNpb25JbmZvIGdldFVuaWNvZGVWZXJzaW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBQUk9QRVJUWV8ubV91bmljb2RlVmVyc2lvbl87CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIG1vc3QgY3VycmVudCBVbmljb2RlIG5hbWUgb2YgdGhlIGFyZ3VtZW50IGNvZGUgcG9pbnQsIG9yIAorICAgICAqIG51bGwgaWYgdGhlIGNoYXJhY3RlciBpcyB1bmFzc2lnbmVkIG9yIG91dHNpZGUgdGhlIHJhbmdlIAorICAgICAqIFVDaGFyYWN0ZXIuTUlOX1ZBTFVFIGFuZCBVQ2hhcmFjdGVyLk1BWF9WQUxVRSBvciBkb2VzIG5vdCBoYXZlIGEgbmFtZS4KKyAgICAgKiA8YnI+CisgICAgICogTm90ZSBjYWxsaW5nIGFueSBtZXRob2RzIHJlbGF0ZWQgdG8gY29kZSBwb2ludCBuYW1lcywgZS5nLiBnZXQqTmFtZSooKSAKKyAgICAgKiBpbmN1cnMgYSBvbmUtdGltZSBpbml0aWFsaXNhdGlvbiBjb3N0IHRvIGNvbnN0cnVjdCB0aGUgbmFtZSB0YWJsZXMuCisgICAgICogQHBhcmFtIGNoIHRoZSBjb2RlIHBvaW50IGZvciB3aGljaCB0byBnZXQgdGhlIG5hbWUKKyAgICAgKiBAcmV0dXJuIG1vc3QgY3VycmVudCBVbmljb2RlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXROYW1lKGludCBjaCkKKyAgICB7CisgICAgICAgIGlmKE5BTUVfPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2FkIHVuYW1lcy5pY3UiLCIiLCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gTkFNRV8uZ2V0TmFtZShjaCwgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV9DSEFSX05BTUUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBuYW1lcyBmb3IgZWFjaCBvZiB0aGUgY2hhcmFjdGVycyBpbiBhIHN0cmluZworICAgICAqIEBwYXJhbSBzIHN0cmluZyB0byBmb3JtYXQKKyAgICAgKiBAcGFyYW0gc2VwYXJhdG9yIHN0cmluZyB0byBnbyBiZXR3ZWVuIG5hbWVzCisgICAgICogQHJldHVybiBzdHJpbmcgb2YgbmFtZXMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXROYW1lKFN0cmluZyBzLCBTdHJpbmcgc2VwYXJhdG9yKSB7CisgICAgICAgIGlmIChzLmxlbmd0aCgpID09IDEpIHsgLy8gaGFuZGxlIGNvbW1vbiBjYXNlCisgICAgICAgICAgICByZXR1cm4gZ2V0TmFtZShzLmNoYXJBdCgwKSk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGNwOworICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzLGkpOworICAgICAgICAgICAgaWYgKGkgIT0gMCkgc2IuYXBwZW5kKHNlcGFyYXRvcik7CisgICAgICAgICAgICBzYi5hcHBlbmQoVUNoYXJhY3Rlci5nZXROYW1lKGNwKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIGVhcmxpZXIgdmVyc2lvbiAxLjAgVW5pY29kZSBuYW1lIG9mIHRoZSBhcmd1bWVudCBjb2RlIAorICAgICAqIHBvaW50LCBvciBudWxsIGlmIHRoZSBjaGFyYWN0ZXIgaXMgdW5hc3NpZ25lZCBvciBvdXRzaWRlIHRoZSByYW5nZSAKKyAgICAgKiBVQ2hhcmFjdGVyLk1JTl9WQUxVRSBhbmQgVUNoYXJhY3Rlci5NQVhfVkFMVUUgb3IgZG9lcyBub3QgaGF2ZSBhIG5hbWUuCisgICAgICogPGJyPgorICAgICAqIE5vdGUgY2FsbGluZyBhbnkgbWV0aG9kcyByZWxhdGVkIHRvIGNvZGUgcG9pbnQgbmFtZXMsIGUuZy4gZ2V0Kk5hbWUqKCkgCisgICAgICogaW5jdXJzIGEgb25lLXRpbWUgaW5pdGlhbGlzYXRpb24gY29zdCB0byBjb25zdHJ1Y3QgdGhlIG5hbWUgdGFibGVzLgorICAgICAqIEBwYXJhbSBjaCB0aGUgY29kZSBwb2ludCBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBuYW1lCisgICAgICogQHJldHVybiB2ZXJzaW9uIDEuMCBVbmljb2RlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXROYW1lMV8wKGludCBjaCkKKyAgICB7CisgICAgICAgIGlmKE5BTUVfPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2FkIHVuYW1lcy5pY3UiLCIiLCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gTkFNRV8uZ2V0TmFtZShjaCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVOSUNPREVfMTBfQ0hBUl9OQU1FKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+UmV0cmlldmVzIGEgbmFtZSBmb3IgYSB2YWxpZCBjb2RlcG9pbnQuIFVubGlrZSwgZ2V0TmFtZShpbnQpIGFuZAorICAgICAqIGdldE5hbWUxXzAoaW50KSwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gYSBuYW1lIGV2ZW4gZm9yIGNvZGVwb2ludHMgdGhhdAorICAgICAqIGFyZSBub3QgYXNzaWduZWQgYSBuYW1lIGluIFVuaWNvZGVEYXRhLnR4dC4KKyAgICAgKiA8L3A+CisgICAgICogVGhlIG5hbWVzIGFyZSByZXR1cm5lZCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyLgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+IE1vc3QgY3VycmVudCBVbmljb2RlIG5hbWUgaWYgdGhlcmUgaXMgYW55CisgICAgICogPGxpPiBVbmljb2RlIDEuMCBuYW1lIGlmIHRoZXJlIGlzIGFueQorICAgICAqIDxsaT4gRXh0ZW5kZWQgbmFtZSBpbiB0aGUgZm9ybSBvZiAKKyAgICAgKiAgICAgICI8Y29kZXBvaW50X3R5cGUtY29kZXBvaW50X2hleF9kaWdpdHM+Ii4gRS5nLiA8bm9uY2hhcmFjdGVyLWZmZmU+CisgICAgICogPC91bD4KKyAgICAgKiBOb3RlIGNhbGxpbmcgYW55IG1ldGhvZHMgcmVsYXRlZCB0byBjb2RlIHBvaW50IG5hbWVzLCBlLmcuIGdldCpOYW1lKigpIAorICAgICAqIGluY3VycyBhIG9uZS10aW1lIGluaXRpYWxpc2F0aW9uIGNvc3QgdG8gY29uc3RydWN0IHRoZSBuYW1lIHRhYmxlcy4KKyAgICAgKiBAcGFyYW0gY2ggdGhlIGNvZGUgcG9pbnQgZm9yIHdoaWNoIHRvIGdldCB0aGUgbmFtZQorICAgICAqIEByZXR1cm4gYSBuYW1lIGZvciB0aGUgYXJndW1lbnQgY29kZXBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RXh0ZW5kZWROYW1lKGludCBjaCkgCisgICAgeworICAgICAgICBpZihOQU1FXz09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgbG9hZCB1bmFtZXMuaWN1IiwiIiwiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIE5BTUVfLmdldE5hbWUoY2gsIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgSVNPIDEwNjQ2IGNvbW1lbnQgZm9yIGEgY2hhcmFjdGVyLgorICAgICAqIFRoZSBJU08gMTA2NDYgY29tbWVudCBpcyBhbiBpbmZvcm1hdGl2ZSBmaWVsZCBpbiB0aGUgVW5pY29kZSBDaGFyYWN0ZXIKKyAgICAgKiBEYXRhYmFzZSAoVW5pY29kZURhdGEudHh0IGZpZWxkIDExKSBhbmQgaXMgZnJvbSB0aGUgSVNPIDEwNjQ2IG5hbWVzIGxpc3QuCisgICAgICogQHBhcmFtIGNoIFRoZSBjb2RlIHBvaW50IGZvciB3aGljaCB0byBnZXQgdGhlIElTTyBjb21tZW50LgorICAgICAqICAgICAgICAgICBJdCBtdXN0IGJlIDxjb2RlPjA8PWM8PTB4MTBmZmZmPC9jb2RlPi4KKyAgICAgKiBAcmV0dXJuIFRoZSBJU08gY29tbWVudCwgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBjb21tZW50IGZvciB0aGlzIAorICAgICAqICAgICAgICAgY2hhcmFjdGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldElTT0NvbW1lbnQoaW50IGNoKQorICAgIHsKKyAgICAgICAgaWYgKGNoIDwgVUNoYXJhY3Rlci5NSU5fVkFMVUUgfHwgY2ggPiBVQ2hhcmFjdGVyLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgaWYoTkFNRV89PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ291bGQgbm90IGxvYWQgdW5hbWVzLmljdSIsIiIsIiIpOworICAgICAgICB9ICAgIAorICAgICAgICBTdHJpbmcgcmVzdWx0ID0gTkFNRV8uZ2V0R3JvdXBOYW1lKGNoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5JU09fQ09NTUVOVF8pOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIDxwPkZpbmQgYSBVbmljb2RlIGNvZGUgcG9pbnQgYnkgaXRzIG1vc3QgY3VycmVudCBVbmljb2RlIG5hbWUgYW5kIAorICAgICAqIHJldHVybiBpdHMgY29kZSBwb2ludCB2YWx1ZS4gQWxsIFVuaWNvZGUgbmFtZXMgYXJlIGluIHVwcGVyY2FzZS48L3A+CisgICAgICogTm90ZSBjYWxsaW5nIGFueSBtZXRob2RzIHJlbGF0ZWQgdG8gY29kZSBwb2ludCBuYW1lcywgZS5nLiBnZXQqTmFtZSooKSAKKyAgICAgKiBpbmN1cnMgYSBvbmUtdGltZSBpbml0aWFsaXNhdGlvbiBjb3N0IHRvIGNvbnN0cnVjdCB0aGUgbmFtZSB0YWJsZXMuCisgICAgICogQHBhcmFtIG5hbWUgbW9zdCBjdXJyZW50IFVuaWNvZGUgY2hhcmFjdGVyIG5hbWUgd2hvc2UgY29kZSBwb2ludCBpcyB0byAKKyAgICAgKiAgICAgICAgYmUgcmV0dXJuZWQKKyAgICAgKiBAcmV0dXJuIGNvZGUgcG9pbnQgb3IgLTEgaWYgbmFtZSBpcyBub3QgZm91bmQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDaGFyRnJvbU5hbWUoU3RyaW5nIG5hbWUpCisgICAgeyAgICAgCisgICAgICAgIGlmKE5BTUVfPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2FkIHVuYW1lcy5pY3UiLCIiLCIiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gTkFNRV8uZ2V0Q2hhckZyb21OYW1lKAorICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlck5hbWVDaG9pY2UuVU5JQ09ERV9DSEFSX05BTUUsIG5hbWUpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIDxwPkZpbmQgYSBVbmljb2RlIGNoYXJhY3RlciBieSBpdHMgdmVyc2lvbiAxLjAgVW5pY29kZSBuYW1lIGFuZCByZXR1cm4gCisgICAgICogaXRzIGNvZGUgcG9pbnQgdmFsdWUuIEFsbCBVbmljb2RlIG5hbWVzIGFyZSBpbiB1cHBlcmNhc2UuPC9wPgorICAgICAqIE5vdGUgY2FsbGluZyBhbnkgbWV0aG9kcyByZWxhdGVkIHRvIGNvZGUgcG9pbnQgbmFtZXMsIGUuZy4gZ2V0Kk5hbWUqKCkgCisgICAgICogaW5jdXJzIGEgb25lLXRpbWUgaW5pdGlhbGlzYXRpb24gY29zdCB0byBjb25zdHJ1Y3QgdGhlIG5hbWUgdGFibGVzLgorICAgICAqIEBwYXJhbSBuYW1lIFVuaWNvZGUgMS4wIGNvZGUgcG9pbnQgbmFtZSB3aG9zZSBjb2RlIHBvaW50IGlzIHRvIAorICAgICAqICAgICAgICAgICAgIHJldHVybmVkCisgICAgICogQHJldHVybiBjb2RlIHBvaW50IG9yIC0xIGlmIG5hbWUgaXMgbm90IGZvdW5kCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q2hhckZyb21OYW1lMV8wKFN0cmluZyBuYW1lKQorICAgIHsKKyAgICAgICAgaWYoTkFNRV89PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ291bGQgbm90IGxvYWQgdW5hbWVzLmljdSIsIiIsIiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBOQU1FXy5nZXRDaGFyRnJvbU5hbWUoCisgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5VTklDT0RFXzEwX0NIQVJfTkFNRSwgbmFtZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkZpbmQgYSBVbmljb2RlIGNoYXJhY3RlciBieSBlaXRoZXIgaXRzIG5hbWUgYW5kIHJldHVybiBpdHMgY29kZSAKKyAgICAgKiBwb2ludCB2YWx1ZS4gQWxsIFVuaWNvZGUgbmFtZXMgYXJlIGluIHVwcGVyY2FzZS4gCisgICAgICogRXh0ZW5kZWQgbmFtZXMgYXJlIGFsbCBsb3dlcmNhc2UgZXhjZXB0IGZvciBudW1iZXJzIGFuZCBhcmUgY29udGFpbmVkCisgICAgICogd2l0aGluIGFuZ2xlIGJyYWNrZXRzLjwvcD4KKyAgICAgKiBUaGUgbmFtZXMgYXJlIHNlYXJjaGVkIGluIHRoZSBmb2xsb3dpbmcgb3JkZXIKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiBNb3N0IGN1cnJlbnQgVW5pY29kZSBuYW1lIGlmIHRoZXJlIGlzIGFueQorICAgICAqIDxsaT4gVW5pY29kZSAxLjAgbmFtZSBpZiB0aGVyZSBpcyBhbnkKKyAgICAgKiA8bGk+IEV4dGVuZGVkIG5hbWUgaW4gdGhlIGZvcm0gb2YgCisgICAgICogICAgICAiPGNvZGVwb2ludF90eXBlLWNvZGVwb2ludF9oZXhfZGlnaXRzPiIuIEUuZy4gPG5vbmNoYXJhY3Rlci1GRkZFPgorICAgICAqIDwvdWw+CisgICAgICogTm90ZSBjYWxsaW5nIGFueSBtZXRob2RzIHJlbGF0ZWQgdG8gY29kZSBwb2ludCBuYW1lcywgZS5nLiBnZXQqTmFtZSooKSAKKyAgICAgKiBpbmN1cnMgYSBvbmUtdGltZSBpbml0aWFsaXNhdGlvbiBjb3N0IHRvIGNvbnN0cnVjdCB0aGUgbmFtZSB0YWJsZXMuCisgICAgICogQHBhcmFtIG5hbWUgY29kZXBvaW50IG5hbWUKKyAgICAgKiBAcmV0dXJuIGNvZGUgcG9pbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBuYW1lIG9yIC0xIGlmIHRoZSBuYW1lIGlzIG5vdAorICAgICAqICAgICAgICAgZm91bmQuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q2hhckZyb21FeHRlbmRlZE5hbWUoU3RyaW5nIG5hbWUpCisgICAgeworICAgICAgICBpZihOQU1FXz09bnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgbG9hZCB1bmFtZXMuaWN1IiwiIiwiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIE5BTUVfLmdldENoYXJGcm9tTmFtZSgKKyAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSwgbmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBVbmljb2RlIG5hbWUgZm9yIGEgZ2l2ZW4gcHJvcGVydHksIGFzIGdpdmVuIGluIHRoZQorICAgICAqIFVuaWNvZGUgZGF0YWJhc2UgZmlsZSBQcm9wZXJ0eUFsaWFzZXMudHh0LiAgTW9zdCBwcm9wZXJ0aWVzCisgICAgICogaGF2ZSBtb3JlIHRoYW4gb25lIG5hbWUuICBUaGUgbmFtZUNob2ljZSBkZXRlcm1pbmVzIHdoaWNoIG9uZQorICAgICAqIGlzIHJldHVybmVkLgorICAgICAqCisgICAgICogSW4gYWRkaXRpb24sIHRoaXMgZnVuY3Rpb24gbWFwcyB0aGUgcHJvcGVydHkKKyAgICAgKiBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLIHRvIHRoZSBzeW50aGV0aWMgbmFtZXMgImdjbSIgLworICAgICAqICJHZW5lcmFsX0NhdGVnb3J5X01hc2siLiAgVGhlc2UgbmFtZXMgYXJlIG5vdCBpbgorICAgICAqIFByb3BlcnR5QWxpYXNlcy50eHQuCisgICAgICogCisgICAgICogQHBhcmFtIHByb3BlcnR5IFVQcm9wZXJ0eSBzZWxlY3Rvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lQ2hvaWNlIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlIHNlbGVjdG9yIGZvciB3aGljaCBuYW1lCisgICAgICogdG8gZ2V0LiAgQWxsIHByb3BlcnRpZXMgaGF2ZSBhIGxvbmcgbmFtZS4gIE1vc3QgaGF2ZSBhIHNob3J0CisgICAgICogbmFtZSwgYnV0IHNvbWUgZG8gbm90LiAgVW5pY29kZSBhbGxvd3MgZm9yIGFkZGl0aW9uYWwgbmFtZXM7IGlmCisgICAgICogcHJlc2VudCB0aGVzZSB3aWxsIGJlIHJldHVybmVkIGJ5IFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcgKyBpLAorICAgICAqIHdoZXJlIGk9MSwgMiwuLi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYSBuYW1lLCBvciBudWxsIGlmIFVuaWNvZGUgZXhwbGljaXRseSBkZWZpbmVzIG5vIG5hbWUKKyAgICAgKiAoIm4vYSIpIGZvciBhIGdpdmVuIHByb3BlcnR5L25hbWVDaG9pY2UuICBJZiBhIGdpdmVuIG5hbWVDaG9pY2UKKyAgICAgKiB0aHJvd3MgYW4gZXhjZXB0aW9uLCB0aGVuIGFsbCBsYXJnZXIgdmFsdWVzIG9mIG5hbWVDaG9pY2Ugd2lsbAorICAgICAqIHRocm93IGFuIGV4Y2VwdGlvbi4gIElmIG51bGwgaXMgcmV0dXJuZWQgZm9yIGEgZ2l2ZW4KKyAgICAgKiBuYW1lQ2hvaWNlLCB0aGVuIG90aGVyIG5hbWVDaG9pY2UgdmFsdWVzIG1heSByZXR1cm4gbm9uLW51bGwKKyAgICAgKiByZXN1bHRzLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIGlmIHByb3BlcnR5IG9yCisgICAgICogbmFtZUNob2ljZSBhcmUgaW52YWxpZC4KKyAgICAgKgorICAgICAqIEBzZWUgVVByb3BlcnR5CisgICAgICogQHNlZSBVUHJvcGVydHkuTmFtZUNob2ljZQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFByb3BlcnR5TmFtZShpbnQgcHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYW1lQ2hvaWNlKSB7CisgICAgICAgIHJldHVybiBQTkFNRVNfLmdldFByb3BlcnR5TmFtZShwcm9wZXJ0eSwgbmFtZUNob2ljZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBVUHJvcGVydHkgc2VsZWN0b3IgZm9yIGEgZ2l2ZW4gcHJvcGVydHkgbmFtZSwgYXMKKyAgICAgKiBzcGVjaWZpZWQgaW4gdGhlIFVuaWNvZGUgZGF0YWJhc2UgZmlsZSBQcm9wZXJ0eUFsaWFzZXMudHh0LgorICAgICAqIFNob3J0LCBsb25nLCBhbmQgYW55IG90aGVyIHZhcmlhbnRzIGFyZSByZWNvZ25pemVkLgorICAgICAqCisgICAgICogSW4gYWRkaXRpb24sIHRoaXMgZnVuY3Rpb24gbWFwcyB0aGUgc3ludGhldGljIG5hbWVzICJnY20iIC8KKyAgICAgKiAiR2VuZXJhbF9DYXRlZ29yeV9NYXNrIiB0byB0aGUgcHJvcGVydHkKKyAgICAgKiBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLLiAgVGhlc2UgbmFtZXMgYXJlIG5vdCBpbgorICAgICAqIFByb3BlcnR5QWxpYXNlcy50eHQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHlBbGlhcyB0aGUgcHJvcGVydHkgbmFtZSB0byBiZSBtYXRjaGVkLiAgVGhlIG5hbWUKKyAgICAgKiBpcyBjb21wYXJlZCB1c2luZyAibG9vc2UgbWF0Y2hpbmciIGFzIGRlc2NyaWJlZCBpbgorICAgICAqIFByb3BlcnR5QWxpYXNlcy50eHQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgVVByb3BlcnR5IGVudW0uCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gaWYgcHJvcGVydHlBbGlhcworICAgICAqIGlzIG5vdCByZWNvZ25pemVkLgorICAgICAqCisgICAgICogQHNlZSBVUHJvcGVydHkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRQcm9wZXJ0eUVudW0oU3RyaW5nIHByb3BlcnR5QWxpYXMpIHsKKyAgICAgICAgcmV0dXJuIFBOQU1FU18uZ2V0UHJvcGVydHlFbnVtKHByb3BlcnR5QWxpYXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgVW5pY29kZSBuYW1lIGZvciBhIGdpdmVuIHByb3BlcnR5IHZhbHVlLCBhcyBnaXZlbiBpbgorICAgICAqIHRoZSBVbmljb2RlIGRhdGFiYXNlIGZpbGUgUHJvcGVydHlWYWx1ZUFsaWFzZXMudHh0LiAgTW9zdAorICAgICAqIHZhbHVlcyBoYXZlIG1vcmUgdGhhbiBvbmUgbmFtZS4gIFRoZSBuYW1lQ2hvaWNlIGRldGVybWluZXMKKyAgICAgKiB3aGljaCBvbmUgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBOb3RlOiBTb21lIG9mIHRoZSBuYW1lcyBpbiBQcm9wZXJ0eVZhbHVlQWxpYXNlcy50eHQgY2FuIG9ubHkgYmUKKyAgICAgKiByZXRyaWV2ZWQgdXNpbmcgVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSywgbm90CisgICAgICogVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlkuICBUaGVzZSBpbmNsdWRlOiAiQyIgLyAiT3RoZXIiLCAiTCIgLworICAgICAqICJMZXR0ZXIiLCAiTEMiIC8gIkNhc2VkX0xldHRlciIsICJNIiAvICJNYXJrIiwgIk4iIC8gIk51bWJlciIsICJQIgorICAgICAqIC8gIlB1bmN0dWF0aW9uIiwgIlMiIC8gIlN5bWJvbCIsIGFuZCAiWiIgLyAiU2VwYXJhdG9yIi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSBVUHJvcGVydHkgc2VsZWN0b3IgY29uc3RhbnQuCisgICAgICogVVByb3BlcnR5LklOVF9TVEFSVCAmbHQ7PSBwcm9wZXJ0eSAmbHQ7IFVQcm9wZXJ0eS5JTlRfTElNSVQgb3IKKyAgICAgKiBVUHJvcGVydHkuQklOQVJZX1NUQVJUICZsdDs9IHByb3BlcnR5ICZsdDsgVVByb3BlcnR5LkJJTkFSWV9MSU1JVCBvcgorICAgICAqIFVQcm9wZXJ0eS5NQVNLX1NUQVJUICZsdDsgPSBwcm9wZXJ0eSAmbHQ7IFVQcm9wZXJ0eS5NQVNLX0xJTUlULgorICAgICAqIElmIG91dCBvZiByYW5nZSwgbnVsbCBpcyByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZSBzZWxlY3RvciBmb3IgYSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHByb3BlcnR5LiAgSW4KKyAgICAgKiBnZW5lcmFsLCB2YWxpZCB2YWx1ZXMgcmFuZ2UgZnJvbSAwIHVwIHRvIHNvbWUgbWF4aW11bS4gIFRoZXJlCisgICAgICogYXJlIGEgZmV3IGV4Y2VwdGlvbnM6ICgxLikgVVByb3BlcnR5LkJMT0NLIHZhbHVlcyBiZWdpbiBhdCB0aGUKKyAgICAgKiBub24temVybyB2YWx1ZSBCQVNJQ19MQVRJTi5nZXRJRCgpLiAgKDIuKQorICAgICAqIFVQcm9wZXJ0eS5DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTIHZhbHVlcyBhcmUgbm90IGNvbnRpZ3VvdXMKKyAgICAgKiBhbmQgcmFuZ2UgZnJvbSAwLi4yNDAuICAoMy4pICBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLIHZhbHVlcworICAgICAqIGFyZSBtYXNrIHZhbHVlcyBwcm9kdWNlZCBieSBsZWZ0LXNoaWZ0aW5nIDEgYnkKKyAgICAgKiBVQ2hhcmFjdGVyLmdldFR5cGUoKS4gIFRoaXMgYWxsb3dzIGdyb3VwZWQgY2F0ZWdvcmllcyBzdWNoIGFzCisgICAgICogWzpMOl0gdG8gYmUgcmVwcmVzZW50ZWQuICBNYXNrIHZhbHVlcyBhcmUgbm9uLWNvbnRpZ3VvdXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZUNob2ljZSBVUHJvcGVydHkuTmFtZUNob2ljZSBzZWxlY3RvciBmb3Igd2hpY2ggbmFtZQorICAgICAqIHRvIGdldC4gIEFsbCB2YWx1ZXMgaGF2ZSBhIGxvbmcgbmFtZS4gIE1vc3QgaGF2ZSBhIHNob3J0IG5hbWUsCisgICAgICogYnV0IHNvbWUgZG8gbm90LiAgVW5pY29kZSBhbGxvd3MgZm9yIGFkZGl0aW9uYWwgbmFtZXM7IGlmCisgICAgICogcHJlc2VudCB0aGVzZSB3aWxsIGJlIHJldHVybmVkIGJ5IFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcgKyBpLAorICAgICAqIHdoZXJlIGk9MSwgMiwuLi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYSBuYW1lLCBvciBudWxsIGlmIFVuaWNvZGUgZXhwbGljaXRseSBkZWZpbmVzIG5vIG5hbWUKKyAgICAgKiAoIm4vYSIpIGZvciBhIGdpdmVuIHByb3BlcnR5L3ZhbHVlL25hbWVDaG9pY2UuICBJZiBhIGdpdmVuCisgICAgICogbmFtZUNob2ljZSB0aHJvd3MgYW4gZXhjZXB0aW9uLCB0aGVuIGFsbCBsYXJnZXIgdmFsdWVzIG9mCisgICAgICogbmFtZUNob2ljZSB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbi4gIElmIG51bGwgaXMgcmV0dXJuZWQgZm9yIGEKKyAgICAgKiBnaXZlbiBuYW1lQ2hvaWNlLCB0aGVuIG90aGVyIG5hbWVDaG9pY2UgdmFsdWVzIG1heSByZXR1cm4KKyAgICAgKiBub24tbnVsbCByZXN1bHRzLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIGlmIHByb3BlcnR5LCB2YWx1ZSwKKyAgICAgKiBvciBuYW1lQ2hvaWNlIGFyZSBpbnZhbGlkLgorICAgICAqCisgICAgICogQHNlZSBVUHJvcGVydHkKKyAgICAgKiBAc2VlIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZU5hbWUoaW50IHByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmFtZUNob2ljZSkgCisgICAgeworICAgICAgICBpZiAocHJvcGVydHkgPT0gVVByb3BlcnR5LkNBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MgCisgICAgICAgICAgICAmJiB2YWx1ZSA+PSBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5TWluVmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUykKKyAgICAgICAgICAgICYmIHZhbHVlIDw9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNYXhWYWx1ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQcm9wZXJ0eS5DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTKQorICAgICAgICAgICAgJiYgbmFtZUNob2ljZSA+PSAwICYmIG5hbWVDaG9pY2UgPCBVUHJvcGVydHkuTmFtZUNob2ljZS5DT1VOVCkgeworICAgICAgICAgICAgLy8gdGhpcyBpcyBoYXJkIGNvZGVkIGZvciB0aGUgdmFsaWQgY2MKKyAgICAgICAgICAgIC8vIGJlY2F1c2UgUHJvcGVydHlWYWx1ZUFsaWFzZXMudHh0IGRvZXMgbm90IGNvbnRhaW4gYWxsIG9mIHRoZW0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFBOQU1FU18uZ2V0UHJvcGVydHlWYWx1ZU5hbWUocHJvcGVydHksIHZhbHVlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lQ2hvaWNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBQTkFNRVNfLmdldFByb3BlcnR5VmFsdWVOYW1lKHByb3BlcnR5LCB2YWx1ZSwgbmFtZUNob2ljZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBwcm9wZXJ0eSB2YWx1ZSBpbnRlZ2VyIGZvciBhIGdpdmVuIHZhbHVlIG5hbWUsIGFzCisgICAgICogc3BlY2lmaWVkIGluIHRoZSBVbmljb2RlIGRhdGFiYXNlIGZpbGUgUHJvcGVydHlWYWx1ZUFsaWFzZXMudHh0LgorICAgICAqIFNob3J0LCBsb25nLCBhbmQgYW55IG90aGVyIHZhcmlhbnRzIGFyZSByZWNvZ25pemVkLgorICAgICAqCisgICAgICogTm90ZTogU29tZSBvZiB0aGUgbmFtZXMgaW4gUHJvcGVydHlWYWx1ZUFsaWFzZXMudHh0IHdpbGwgb25seSBiZQorICAgICAqIHJlY29nbml6ZWQgd2l0aCBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLLCBub3QKKyAgICAgKiBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWS4gIFRoZXNlIGluY2x1ZGU6ICJDIiAvICJPdGhlciIsICJMIiAvCisgICAgICogIkxldHRlciIsICJMQyIgLyAiQ2FzZWRfTGV0dGVyIiwgIk0iIC8gIk1hcmsiLCAiTiIgLyAiTnVtYmVyIiwgIlAiCisgICAgICogLyAiUHVuY3R1YXRpb24iLCAiUyIgLyAiU3ltYm9sIiwgYW5kICJaIiAvICJTZXBhcmF0b3IiLgorICAgICAqCisgICAgICogQHBhcmFtIHByb3BlcnR5IFVQcm9wZXJ0eSBzZWxlY3RvciBjb25zdGFudC4KKyAgICAgKiBVUHJvcGVydHkuSU5UX1NUQVJUICZsdDs9IHByb3BlcnR5ICZsdDsgVVByb3BlcnR5LklOVF9MSU1JVCBvcgorICAgICAqIFVQcm9wZXJ0eS5CSU5BUllfU1RBUlQgJmx0Oz0gcHJvcGVydHkgJmx0OyBVUHJvcGVydHkuQklOQVJZX0xJTUlUIG9yCisgICAgICogVVByb3BlcnR5Lk1BU0tfU1RBUlQgJmx0OyA9IHByb3BlcnR5ICZsdDsgVVByb3BlcnR5Lk1BU0tfTElNSVQuCisgICAgICogT25seSB0aGVzZSBwcm9wZXJ0aWVzIGNhbiBiZSBlbnVtZXJhdGVkLgorICAgICAqCisgICAgICogQHBhcmFtIHZhbHVlQWxpYXMgdGhlIHZhbHVlIG5hbWUgdG8gYmUgbWF0Y2hlZC4gIFRoZSBuYW1lIGlzCisgICAgICogY29tcGFyZWQgdXNpbmcgImxvb3NlIG1hdGNoaW5nIiBhcyBkZXNjcmliZWQgaW4KKyAgICAgKiBQcm9wZXJ0eVZhbHVlQWxpYXNlcy50eHQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgdmFsdWUgaW50ZWdlci4gIE5vdGU6IFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZCisgICAgICogdmFsdWVzIGFyZSBtYXNrIHZhbHVlcyBwcm9kdWNlZCBieSBsZWZ0LXNoaWZ0aW5nIDEgYnkKKyAgICAgKiBVQ2hhcmFjdGVyLmdldFR5cGUoKS4gIFRoaXMgYWxsb3dzIGdyb3VwZWQgY2F0ZWdvcmllcyBzdWNoIGFzCisgICAgICogWzpMOl0gdG8gYmUgcmVwcmVzZW50ZWQuCisgICAgICoKKyAgICAgKiBAc2VlIFVQcm9wZXJ0eQorICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHByb3BlcnR5IGlzIG5vdCBhIHZhbGlkIFVQcm9wZXJ0eQorICAgICAqICAgICAgICAgc2VsZWN0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRQcm9wZXJ0eVZhbHVlRW51bShpbnQgcHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlQWxpYXMpIHsKKyAgICAgICAgcmV0dXJuIFBOQU1FU18uZ2V0UHJvcGVydHlWYWx1ZUVudW0ocHJvcGVydHksIHZhbHVlQWxpYXMpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjb2RlIHBvaW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHR3byBVVEYxNiBjaGFyYWN0ZXJzLgorICAgICAqIEBwYXJhbSBsZWFkIHRoZSBsZWFkIGNoYXIKKyAgICAgKiBAcGFyYW0gdHJhaWwgdGhlIHRyYWlsIGNoYXIKKyAgICAgKiBAcmV0dXJuIGNvZGUgcG9pbnQgaWYgc3Vycm9nYXRlIGNoYXJhY3RlcnMgYXJlIHZhbGlkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IGNoYXJhY3RlcnMgZG8KKyAgICAgKiAgICAgICAgICAgIG5vdCBmb3JtIGEgdmFsaWQgY29kZXBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q29kZVBvaW50KGNoYXIgbGVhZCwgY2hhciB0cmFpbCkgCisgICAgeworICAgICAgICBpZiAobGVhZCA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgJiYgCisgICAgICAgIGxlYWQgPD0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFICYmCisgICAgICAgICAgICB0cmFpbCA+PSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFICYmIAorICAgICAgICB0cmFpbCA8PSBVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkobGVhZCwgdHJhaWwpOworICAgICAgICB9CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgc3Vycm9nYXRlIGNoYXJhY3RlcnMiKTsKKyAgICB9CisgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIFVURjE2IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gY2hhcjE2IHRoZSBVVEYxNiBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIGNvZGUgcG9pbnQgaWYgYXJndW1lbnQgaXMgYSB2YWxpZCBjaGFyYWN0ZXIuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gY2hhcjE2IGlzIG5vdCBhIHZhbGlkCisgICAgICogICAgICAgICAgICBjb2RlcG9pbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRDb2RlUG9pbnQoY2hhciBjaGFyMTYpIAorICAgIHsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNMZWdhbChjaGFyMTYpKSB7CisgICAgICAgICAgICByZXR1cm4gY2hhcjE2OworICAgICAgICB9CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgY29kZXBvaW50Iik7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgVUNhc2VQcm9wcy5Db250ZXh0SXRlcmF0b3IsIGl0ZXJhdGVzIG92ZXIgYSBTdHJpbmcuCisgICAgICogU2VlIHVzdHJjYXNlLmMvdXRmMTZfY2FzZUNvbnRleHRJdGVyYXRvcigpLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFN0cmluZ0NvbnRleHRJdGVyYXRvciBpbXBsZW1lbnRzIFVDYXNlUHJvcHMuQ29udGV4dEl0ZXJhdG9yIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdG9yLgorICAgICAgICAgKiBAcGFyYW0gcyBTdHJpbmcgdG8gaXRlcmF0ZSBvdmVyLiAKKyAgICAgICAgICovCisgICAgICAgIFN0cmluZ0NvbnRleHRJdGVyYXRvcihTdHJpbmcgcykgeworICAgICAgICAgICAgdGhpcy5zPXM7CisgICAgICAgICAgICBsaW1pdD1zLmxlbmd0aCgpOworICAgICAgICAgICAgY3BTdGFydD1jcExpbWl0PWluZGV4PTA7CisgICAgICAgICAgICBkaXI9MDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXQgdGhlIGl0ZXJhdGlvbiBsaW1pdCBmb3IgbmV4dENhc2VNYXBDUCgpIHRvIGFuIGluZGV4IHdpdGhpbiB0aGUgc3RyaW5nLgorICAgICAgICAgKiBJZiB0aGUgbGltaXQgcGFyYW1ldGVyIGlzIG5lZ2F0aXZlIG9yIHBhc3QgdGhlIHN0cmluZywgdGhlbiB0aGUKKyAgICAgICAgICogc3RyaW5nIGxlbmd0aCBpcyByZXN0b3JlZCBhcyB0aGUgaXRlcmF0aW9uIGxpbWl0LgorICAgICAgICAgKgorICAgICAgICAgKiBAcGFyYW0gbGltIFRoZSBpdGVyYXRpb24gbGltaXQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBzZXRMaW1pdChpbnQgbGltKSB7CisgICAgICAgICAgICBpZigwPD1saW0gJiYgbGltPD1zLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgbGltaXQ9bGltOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsaW1pdD1zLmxlbmd0aCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEl0ZXJhdGUgZm9yd2FyZCB0aHJvdWdoIHRoZSBzdHJpbmcgdG8gZmV0Y2ggdGhlIG5leHQgY29kZSBwb2ludAorICAgICAgICAgKiB0byBiZSBjYXNlLW1hcHBlZCwgYW5kIHNldCB0aGUgY29udGV4dCBpbmRleGVzIGZvciBpdC4KKyAgICAgICAgICogUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLCB0byBzYXZlIG9uIGZ1bmN0aW9uIGNhbGxzIGFuZCByZWR1bmRhbnQKKyAgICAgICAgICogdGVzdHMuIENvbWJpbmVzIFVURjE2LmNoYXJBdCgpLCBVVEYxNi5nZXRDaGFyQ291bnQoKSwgYW5kIHNldEluZGV4KCkuCisgICAgICAgICAqCisgICAgICAgICAqIEByZXR1cm4gVGhlIG5leHQgY29kZSBwb2ludCB0byBiZSBjYXNlLW1hcHBlZCwgb3IgPDAgd2hlbiB0aGUgaXRlcmF0aW9uIGlzIGRvbmUuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IG5leHRDYXNlTWFwQ1AoKSB7CisgICAgICAgICAgICBpbnQgYzsKKyAgICAgICAgICAgIGlmKGNwTGltaXQ8bGltaXQpIHsKKyAgICAgICAgICAgICAgICBjcFN0YXJ0PWNwTGltaXQ7CisgICAgICAgICAgICAgICAgYz1zLmNoYXJBdChjcExpbWl0KyspOworICAgICAgICAgICAgICAgIGlmKFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRTw9YyB8fCBjPD1VVEYxNi5UUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgYzI7CisgICAgICAgICAgICAgICAgICAgIGlmKCBjPD1VVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUgJiYgY3BMaW1pdDxsaW1pdCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRTw9KGMyPXMuY2hhckF0KGNwTGltaXQpKSAmJiBjMjw9VVRGMTYuVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRQorICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludAorICAgICAgICAgICAgICAgICAgICAgICAgKytjcExpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgYz1VQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgoY2hhciljLCBjMik7CisgICAgICAgICAgICAgICAgICAgIC8vIGVsc2UgdW5wYWlyZWQgc3Vycm9nYXRlIGNvZGUgcG9pbnQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGVsc2UgQk1QIGNvZGUgcG9pbnQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGltcGxlbWVudCBVQ2FzZVByb3BzLkNvbnRleHRJdGVyYXRvcgorICAgICAgICBwdWJsaWMgdm9pZCByZXNldChpbnQgZGlyKSB7CisgICAgICAgICAgICBpZihkaXI+MCkgeworICAgICAgICAgICAgICAgIC8qIHJlc2V0IGZvciBmb3J3YXJkIGl0ZXJhdGlvbiAqLworICAgICAgICAgICAgICAgIHRoaXMuZGlyPTE7CisgICAgICAgICAgICAgICAgaW5kZXg9Y3BMaW1pdDsKKyAgICAgICAgICAgIH0gZWxzZSBpZihkaXI8MCkgeworICAgICAgICAgICAgICAgIC8qIHJlc2V0IGZvciBiYWNrd2FyZCBpdGVyYXRpb24gKi8KKyAgICAgICAgICAgICAgICB0aGlzLmRpcj0tMTsKKyAgICAgICAgICAgICAgICBpbmRleD1jcFN0YXJ0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBub3QgYSB2YWxpZCBkaXJlY3Rpb24KKyAgICAgICAgICAgICAgICB0aGlzLmRpcj0wOworICAgICAgICAgICAgICAgIGluZGV4PTA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IG5leHQoKSB7CisgICAgICAgICAgICBpbnQgYzsKKworICAgICAgICAgICAgaWYoZGlyPjAgJiYgaW5kZXg8bGltaXQpIHsKKyAgICAgICAgICAgICAgICBjPVVURjE2LmNoYXJBdChzLCBpbmRleCk7CisgICAgICAgICAgICAgICAgaW5kZXgrPVVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgICAgIH0gZWxzZSBpZihkaXI8MCAmJiBpbmRleD4wKSB7CisgICAgICAgICAgICAgICAgYz1VVEYxNi5jaGFyQXQocywgaW5kZXgtMSk7CisgICAgICAgICAgICAgICAgaW5kZXgtPVVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHZhcmlhYmxlcworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIHM7CisgICAgICAgIHByb3RlY3RlZCBpbnQgaW5kZXgsIGxpbWl0LCBjcFN0YXJ0LCBjcExpbWl0OworICAgICAgICBwcm90ZWN0ZWQgaW50IGRpcjsgLy8gMD1pbml0aWFsIHN0YXRlICA+MD1mb3J3YXJkICA8MD1iYWNrd2FyZAorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdXBwZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZy4gCisgICAgICogQ2FzaW5nIGlzIGRlcGVuZGVudCBvbiB0aGUgZGVmYXVsdCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAgKiBAcmV0dXJuIHVwcGVyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1VwcGVyQ2FzZShTdHJpbmcgc3RyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRvVXBwZXJDYXNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBzdHIpOworICAgIH0KKyAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZy4gCisgICAgICogQ2FzaW5nIGlzIGRlcGVuZGVudCBvbiB0aGUgZGVmYXVsdCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlCisgICAgICogQHBhcmFtIHN0ciBzb3VyY2Ugc3RyaW5nIHRvIGJlIHBlcmZvcm1lZCBvbgorICAgICAqIEByZXR1cm4gbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvTG93ZXJDYXNlKFN0cmluZyBzdHIpCisgICAgeworICAgICAgICByZXR1cm4gdG9Mb3dlckNhc2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIHN0cik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkdldHMgdGhlIHRpdGxlY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcuPC9wPgorICAgICAqIDxwPlBvc2l0aW9uIGZvciB0aXRsZWNhc2luZyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBhcmd1bWVudCBicmVhayAKKyAgICAgKiBpdGVyYXRvciwgaGVuY2UgdGhlIHVzZXIgY2FuIGN1c3RvbWl6ZWQgaGlzIGJyZWFrIGl0ZXJhdG9yIGZvciAKKyAgICAgKiBhIHNwZWNpYWxpemVkIHRpdGxlY2FzaW5nLiBJbiB0aGlzIGNhc2Ugb25seSB0aGUgZm9yd2FyZCBpdGVyYXRpb24gCisgICAgICogbmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQuCisgICAgICogSWYgdGhlIGJyZWFrIGl0ZXJhdG9yIHBhc3NlZCBpbiBpcyBudWxsLCB0aGUgZGVmYXVsdCBVbmljb2RlIGFsZ29yaXRobQorICAgICAqIHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHRpdGxlY2FzZSBwb3NpdGlvbnMuCisgICAgICogPC9wPgorICAgICAqIDxwPk9ubHkgcG9zaXRpb25zIHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvciB3aWxsIGJlIHRpdGxlIGNhc2VkLAorICAgICAqIGNoYXJhY3RlciBpbiBiZXR3ZWVuIHRoZSBwb3NpdGlvbnMgd2lsbCBhbGwgYmUgaW4gbG93ZXIgY2FzZS48L3A+CisgICAgICogPHA+Q2FzaW5nIGlzIGRlcGVuZGVudCBvbiB0aGUgZGVmYXVsdCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlPC9wPgorICAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAgKiBAcGFyYW0gYnJlYWtpdGVyIGJyZWFrIGl0ZXJhdG9yIHRvIGRldGVybWluZSB0aGUgcG9zaXRpb25zIGluIHdoaWNoCisgICAgICogICAgICAgIHRoZSBjaGFyYWN0ZXIgc2hvdWxkIGJlIHRpdGxlIGNhc2VkLgorICAgICAqIEByZXR1cm4gbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvVGl0bGVDYXNlKFN0cmluZyBzdHIsIEJyZWFrSXRlcmF0b3IgYnJlYWtpdGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRvVGl0bGVDYXNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBzdHIsIGJyZWFraXRlcik7CisgICAgfQorICAgICAgCisgICAgLyoqCisgICAgICogR2V0cyB1cHBlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nLiAKKyAgICAgKiBDYXNpbmcgaXMgZGVwZW5kZW50IG9uIHRoZSBhcmd1bWVudCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgd2hpY2ggc3RyaW5nIGlzIHRvIGJlIGNvbnZlcnRlZCBpbgorICAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAgKiBAcmV0dXJuIHVwcGVyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1VwcGVyQ2FzZShMb2NhbGUgbG9jYWxlLCBTdHJpbmcgc3RyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRvVXBwZXJDYXNlKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSksIHN0cik7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB1cHBlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nLiAKKyAgICAgKiBDYXNpbmcgaXMgZGVwZW5kZW50IG9uIHRoZSBhcmd1bWVudCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgd2hpY2ggc3RyaW5nIGlzIHRvIGJlIGNvbnZlcnRlZCBpbgorICAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAgKiBAcmV0dXJuIHVwcGVyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvVXBwZXJDYXNlKFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgc3RyKSB7CisgICAgICAgIFN0cmluZ0NvbnRleHRJdGVyYXRvciBpdGVyID0gbmV3IFN0cmluZ0NvbnRleHRJdGVyYXRvcihzdHIpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcihzdHIubGVuZ3RoKCkpOworICAgICAgICBpbnRbXSBsb2NDYWNoZSA9IG5ldyBpbnRbMV07CisgICAgICAgIGludCBjOworCisgICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIH0KKyAgICAgICAgbG9jQ2FjaGVbMF09MDsKKworICAgICAgICB3aGlsZSgoYz1pdGVyLm5leHRDYXNlTWFwQ1AoKSk+PTApIHsKKyAgICAgICAgICAgIGM9Z0NzcC50b0Z1bGxVcHBlcihjLCBpdGVyLCByZXN1bHQsIGxvY2FsZSwgbG9jQ2FjaGUpOworCisgICAgICAgICAgICAvKiBkZWNvZGUgdGhlIHJlc3VsdCAqLworICAgICAgICAgICAgaWYoYzwwKSB7CisgICAgICAgICAgICAgICAgLyogKG5vdCkgb3JpZ2luYWwgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgIGM9fmM7CisgICAgICAgICAgICB9IGVsc2UgaWYoYzw9VUNhc2VQcm9wcy5NQVhfU1RSSU5HX0xFTkdUSCkgeworICAgICAgICAgICAgICAgIC8qIG1hcHBpbmcgYWxyZWFkeSBhcHBlbmRlZCB0byByZXN1bHQgKi8KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIC8qIH0gZWxzZSB7IGFwcGVuZCBzaW5nbGUtY29kZSBwb2ludCBtYXBwaW5nICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihjPD0weGZmZmYpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKWMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQocmVzdWx0LCBjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nLiAKKyAgICAgKiBDYXNpbmcgaXMgZGVwZW5kZW50IG9uIHRoZSBhcmd1bWVudCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlCisgICAgICogQHBhcmFtIGxvY2FsZSB3aGljaCBzdHJpbmcgaXMgdG8gYmUgY29udmVydGVkIGluCisgICAgICogQHBhcmFtIHN0ciBzb3VyY2Ugc3RyaW5nIHRvIGJlIHBlcmZvcm1lZCBvbgorICAgICAqIEByZXR1cm4gbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvTG93ZXJDYXNlKExvY2FsZSBsb2NhbGUsIFN0cmluZyBzdHIpCisgICAgeworICAgICAgICByZXR1cm4gdG9Mb3dlckNhc2UoVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSwgc3RyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcuIAorICAgICAqIENhc2luZyBpcyBkZXBlbmRlbnQgb24gdGhlIGFyZ3VtZW50IGxvY2FsZSBhbmQgY29udGV4dC1zZW5zaXRpdmUKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHdoaWNoIHN0cmluZyBpcyB0byBiZSBjb252ZXJ0ZWQgaW4KKyAgICAgKiBAcGFyYW0gc3RyIHNvdXJjZSBzdHJpbmcgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgICogQHJldHVybiBsb3dlcmNhc2UgdmVyc2lvbiBvZiB0aGUgYXJndW1lbnQgc3RyaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b0xvd2VyQ2FzZShVTG9jYWxlIGxvY2FsZSwgU3RyaW5nIHN0cikgeworICAgICAgICBTdHJpbmdDb250ZXh0SXRlcmF0b3IgaXRlciA9IG5ldyBTdHJpbmdDb250ZXh0SXRlcmF0b3Ioc3RyKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoc3RyLmxlbmd0aCgpKTsKKyAgICAgICAgaW50W10gbG9jQ2FjaGUgPSBuZXcgaW50WzFdOworICAgICAgICBpbnQgYzsKKworICAgICAgICBpZiAobG9jYWxlID09IG51bGwpIHsKKyAgICAgICAgICAgIGxvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB9CisgICAgICAgIGxvY0NhY2hlWzBdPTA7CisKKyAgICAgICAgd2hpbGUoKGM9aXRlci5uZXh0Q2FzZU1hcENQKCkpPj0wKSB7CisgICAgICAgICAgICBjPWdDc3AudG9GdWxsTG93ZXIoYywgaXRlciwgcmVzdWx0LCBsb2NhbGUsIGxvY0NhY2hlKTsKKworICAgICAgICAgICAgLyogZGVjb2RlIHRoZSByZXN1bHQgKi8KKyAgICAgICAgICAgIGlmKGM8MCkgeworICAgICAgICAgICAgICAgIC8qIChub3QpIG9yaWdpbmFsIGNvZGUgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICBjPX5jOworICAgICAgICAgICAgfSBlbHNlIGlmKGM8PVVDYXNlUHJvcHMuTUFYX1NUUklOR19MRU5HVEgpIHsKKyAgICAgICAgICAgICAgICAvKiBtYXBwaW5nIGFscmVhZHkgYXBwZW5kZWQgdG8gcmVzdWx0ICovCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAvKiB9IGVsc2UgeyBhcHBlbmQgc2luZ2xlLWNvZGUgcG9pbnQgbWFwcGluZyAqLworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoYzw9MHhmZmZmKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhciljKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkdldHMgdGhlIHRpdGxlY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcuPC9wPgorICAgICAqIDxwPlBvc2l0aW9uIGZvciB0aXRsZWNhc2luZyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBhcmd1bWVudCBicmVhayAKKyAgICAgKiBpdGVyYXRvciwgaGVuY2UgdGhlIHVzZXIgY2FuIGN1c3RvbWl6ZWQgaGlzIGJyZWFrIGl0ZXJhdG9yIGZvciAKKyAgICAgKiBhIHNwZWNpYWxpemVkIHRpdGxlY2FzaW5nLiBJbiB0aGlzIGNhc2Ugb25seSB0aGUgZm9yd2FyZCBpdGVyYXRpb24gCisgICAgICogbmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQuCisgICAgICogSWYgdGhlIGJyZWFrIGl0ZXJhdG9yIHBhc3NlZCBpbiBpcyBudWxsLCB0aGUgZGVmYXVsdCBVbmljb2RlIGFsZ29yaXRobQorICAgICAqIHdpbGwgYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHRpdGxlY2FzZSBwb3NpdGlvbnMuCisgICAgICogPC9wPgorICAgICAqIDxwPk9ubHkgcG9zaXRpb25zIHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvciB3aWxsIGJlIHRpdGxlIGNhc2VkLAorICAgICAqIGNoYXJhY3RlciBpbiBiZXR3ZWVuIHRoZSBwb3NpdGlvbnMgd2lsbCBhbGwgYmUgaW4gbG93ZXIgY2FzZS48L3A+CisgICAgICogPHA+Q2FzaW5nIGlzIGRlcGVuZGVudCBvbiB0aGUgYXJndW1lbnQgbG9jYWxlIGFuZCBjb250ZXh0LXNlbnNpdGl2ZTwvcD4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHdoaWNoIHN0cmluZyBpcyB0byBiZSBjb252ZXJ0ZWQgaW4KKyAgICAgKiBAcGFyYW0gc3RyIHNvdXJjZSBzdHJpbmcgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgICogQHBhcmFtIGJyZWFraXRlciBicmVhayBpdGVyYXRvciB0byBkZXRlcm1pbmUgdGhlIHBvc2l0aW9ucyBpbiB3aGljaAorICAgICAqICAgICAgICB0aGUgY2hhcmFjdGVyIHNob3VsZCBiZSB0aXRsZSBjYXNlZC4KKyAgICAgKiBAcmV0dXJuIGxvd2VyY2FzZSB2ZXJzaW9uIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB0b1RpdGxlQ2FzZShMb2NhbGUgbG9jYWxlLCBTdHJpbmcgc3RyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yIGJyZWFraXRlcikKKyAgICB7CisgICAgICAgIHJldHVybiB0b1RpdGxlQ2FzZShVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpLCBzdHIsIGJyZWFraXRlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+R2V0cyB0aGUgdGl0bGVjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZy48L3A+CisgICAgICogPHA+UG9zaXRpb24gZm9yIHRpdGxlY2FzaW5nIGlzIGRldGVybWluZWQgYnkgdGhlIGFyZ3VtZW50IGJyZWFrIAorICAgICAqIGl0ZXJhdG9yLCBoZW5jZSB0aGUgdXNlciBjYW4gY3VzdG9taXplZCBoaXMgYnJlYWsgaXRlcmF0b3IgZm9yIAorICAgICAqIGEgc3BlY2lhbGl6ZWQgdGl0bGVjYXNpbmcuIEluIHRoaXMgY2FzZSBvbmx5IHRoZSBmb3J3YXJkIGl0ZXJhdGlvbiAKKyAgICAgKiBuZWVkcyB0byBiZSBpbXBsZW1lbnRlZC4KKyAgICAgKiBJZiB0aGUgYnJlYWsgaXRlcmF0b3IgcGFzc2VkIGluIGlzIG51bGwsIHRoZSBkZWZhdWx0IFVuaWNvZGUgYWxnb3JpdGhtCisgICAgICogd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgdGl0bGVjYXNlIHBvc2l0aW9ucy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+T25seSBwb3NpdGlvbnMgcmV0dXJuZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yIHdpbGwgYmUgdGl0bGUgY2FzZWQsCisgICAgICogY2hhcmFjdGVyIGluIGJldHdlZW4gdGhlIHBvc2l0aW9ucyB3aWxsIGFsbCBiZSBpbiBsb3dlciBjYXNlLjwvcD4KKyAgICAgKiA8cD5DYXNpbmcgaXMgZGVwZW5kZW50IG9uIHRoZSBhcmd1bWVudCBsb2NhbGUgYW5kIGNvbnRleHQtc2Vuc2l0aXZlPC9wPgorICAgICAqIEBwYXJhbSBsb2NhbGUgd2hpY2ggc3RyaW5nIGlzIHRvIGJlIGNvbnZlcnRlZCBpbgorICAgICAqIEBwYXJhbSBzdHIgc291cmNlIHN0cmluZyB0byBiZSBwZXJmb3JtZWQgb24KKyAgICAgKiBAcGFyYW0gdGl0bGVJdGVyIGJyZWFrIGl0ZXJhdG9yIHRvIGRldGVybWluZSB0aGUgcG9zaXRpb25zIGluIHdoaWNoCisgICAgICogICAgICAgIHRoZSBjaGFyYWN0ZXIgc2hvdWxkIGJlIHRpdGxlIGNhc2VkLgorICAgICAqIEByZXR1cm4gbG93ZXJjYXNlIHZlcnNpb24gb2YgdGhlIGFyZ3VtZW50IHN0cmluZworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9UaXRsZUNhc2UoVUxvY2FsZSBsb2NhbGUsIFN0cmluZyBzdHIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgdGl0bGVJdGVyKSB7CisgICAgICAgIFN0cmluZ0NvbnRleHRJdGVyYXRvciBpdGVyID0gbmV3IFN0cmluZ0NvbnRleHRJdGVyYXRvcihzdHIpOworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcihzdHIubGVuZ3RoKCkpOworICAgICAgICBpbnRbXSBsb2NDYWNoZSA9IG5ldyBpbnRbMV07CisgICAgICAgIGludCBjLCBzcmNMZW5ndGggPSBzdHIubGVuZ3RoKCk7CisKKyAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICBsb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgfQorICAgICAgICBsb2NDYWNoZVswXT0wOworCisgICAgICAgIGlmKHRpdGxlSXRlciA9PSBudWxsKSB7CisgICAgICAgICAgICB0aXRsZUl0ZXIgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShsb2NhbGUpOworICAgICAgICB9CisgICAgICAgIHRpdGxlSXRlci5zZXRUZXh0KHN0cik7CisKKyAgICAgICAgaW50IGluZGV4OworICAgICAgICBib29sZWFuIGlzRmlyc3RJbmRleDsKKworICAgICAgICAvKiBzZXQgdXAgbG9jYWwgdmFyaWFibGVzICovCisgICAgICAgIGlzRmlyc3RJbmRleD10cnVlOworCisgICAgICAgIC8qIHRpdGxlY2FzaW5nIGxvb3AgKi8KKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAvKiBmaW5kIG5leHQgaW5kZXggd2hlcmUgdG8gdGl0bGVjYXNlICovCisgICAgICAgICAgICBpZihpc0ZpcnN0SW5kZXgpIHsKKyAgICAgICAgICAgICAgICBpc0ZpcnN0SW5kZXg9ZmFsc2U7CisgICAgICAgICAgICAgICAgaW5kZXg9dGl0bGVJdGVyLmZpcnN0KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGluZGV4PXRpdGxlSXRlci5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihpbmRleD09QnJlYWtJdGVyYXRvci5ET05FIHx8IGluZGV4PnNyY0xlbmd0aCkgeworICAgICAgICAgICAgICAgIGluZGV4PXNyY0xlbmd0aDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogbG93ZXJjYXNlIHVwIHRvIGluZGV4ICovCisgICAgICAgICAgICBpdGVyLnNldExpbWl0KGluZGV4KTsKKyAgICAgICAgICAgIHdoaWxlKChjPWl0ZXIubmV4dENhc2VNYXBDUCgpKT49MCkgeworICAgICAgICAgICAgICAgIGM9Z0NzcC50b0Z1bGxMb3dlcihjLCBpdGVyLCByZXN1bHQsIGxvY2FsZSwgbG9jQ2FjaGUpOworCisgICAgICAgICAgICAgICAgLyogZGVjb2RlIHRoZSByZXN1bHQgKi8KKyAgICAgICAgICAgICAgICBpZihjPDApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogKG5vdCkgb3JpZ2luYWwgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgICAgICBjPX5jOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjPD1VQ2FzZVByb3BzLk1BWF9TVFJJTkdfTEVOR1RIKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG1hcHBpbmcgYWxyZWFkeSBhcHBlbmRlZCB0byByZXN1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgLyogfSBlbHNlIHsgYXBwZW5kIHNpbmdsZS1jb2RlIHBvaW50IG1hcHBpbmcgKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoYzw9MHhmZmZmKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpYyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKHJlc3VsdCwgYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihpbmRleD49c3JjTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIHRpdGxlY2FzZSB0aGUgY2hhcmFjdGVyIGF0IHRoZSBmb3VuZCBpbmRleCAqLworICAgICAgICAgICAgaXRlci5zZXRMaW1pdChzcmNMZW5ndGgpOworICAgICAgICAgICAgYz1pdGVyLm5leHRDYXNlTWFwQ1AoKTsKKyAgICAgICAgICAgIGlmKGM8MCkgeworICAgICAgICAgICAgICAgIGJyZWFrOyAvLyByZWFjaGVkIGVuZCBvZiBzdHIKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGM9Z0NzcC50b0Z1bGxUaXRsZShjLCBpdGVyLCByZXN1bHQsIGxvY2FsZSwgbG9jQ2FjaGUpOworCisgICAgICAgICAgICAvKiBkZWNvZGUgdGhlIHJlc3VsdCAqLworICAgICAgICAgICAgaWYoYzwwKSB7CisgICAgICAgICAgICAgICAgLyogKG5vdCkgb3JpZ2luYWwgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgIGM9fmM7CisgICAgICAgICAgICB9IGVsc2UgaWYoYzw9VUNhc2VQcm9wcy5NQVhfU1RSSU5HX0xFTkdUSCkgeworICAgICAgICAgICAgICAgIC8qIG1hcHBpbmcgYWxyZWFkeSBhcHBlbmRlZCB0byByZXN1bHQgKi8KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIC8qIH0gZWxzZSB7IGFwcGVuZCBzaW5nbGUtY29kZSBwb2ludCBtYXBwaW5nICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihjPD0weGZmZmYpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKWMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQocmVzdWx0LCBjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIGdpdmVuIGNoYXJhY3RlciBpcyBtYXBwZWQgdG8gaXRzIGNhc2UgZm9sZGluZyBlcXVpdmFsZW50IGFjY29yZGluZyAKKyAgICAgKiB0byBVbmljb2RlRGF0YS50eHQgYW5kIENhc2VGb2xkaW5nLnR4dDsgaWYgdGhlIGNoYXJhY3RlciBoYXMgbm8gY2FzZSAKKyAgICAgKiBmb2xkaW5nIGVxdWl2YWxlbnQsIHRoZSBjaGFyYWN0ZXIgaXRzZWxmIGlzIHJldHVybmVkLgorICAgICAqCisgICAgICogPHA+VGhpcyBmdW5jdGlvbiBvbmx5IHJldHVybnMgdGhlIHNpbXBsZSwgc2luZ2xlLWNvZGUgcG9pbnQgY2FzZSBtYXBwaW5nLgorICAgICAqIEZ1bGwgY2FzZSBtYXBwaW5ncyBzaG91bGQgYmUgdXNlZCB3aGVuZXZlciBwb3NzaWJsZSBiZWNhdXNlIHRoZXkgcHJvZHVjZQorICAgICAqIGJldHRlciByZXN1bHRzIGJ5IHdvcmtpbmcgb24gd2hvbGUgc3RyaW5ncy4KKyAgICAgKiBUaGV5IGNhbiBtYXAgdG8gYSByZXN1bHQgc3RyaW5nIHdpdGggYSBkaWZmZXJlbnQgbGVuZ3RoIGFzIGFwcHJvcHJpYXRlLgorICAgICAqIEZ1bGwgY2FzZSBtYXBwaW5ncyBhcmUgYXBwbGllZCBieSB0aGUgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucworICAgICAqIHRoYXQgdGFrZSBTdHJpbmcgcGFyYW1ldGVycyByYXRoZXIgdGhhbiBjb2RlIHBvaW50cyAoaW50KS4KKyAgICAgKiBTZWUgYWxzbyB0aGUgVXNlciBHdWlkZSBjaGFwdGVyIG9uIEMvUE9TSVggbWlncmF0aW9uOgorICAgICAqIGh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9wb3NpeC5odG1sI2Nhc2VfbWFwcGluZ3MKKyAgICAgKgorICAgICAqIEBwYXJhbSBjaCAgICAgICAgICAgICB0aGUgY2hhcmFjdGVyIHRvIGJlIGNvbnZlcnRlZAorICAgICAqIEBwYXJhbSBkZWZhdWx0bWFwcGluZyBJbmRpY2F0ZXMgaWYgYWxsIG1hcHBpbmdzIGRlZmluZWQgaW4gCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIENhc2VGb2xkaW5nLnR4dCBpcyB0byBiZSB1c2VkLCBvdGhlcndpc2UgdGhlIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBtYXBwaW5ncyBmb3IgZG90dGVkIEkgIGFuZCBkb3RsZXNzIGkgbWFya2VkIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICdJJyBpbiBDYXNlRm9sZGluZy50eHQgd2lsbCBiZSBza2lwcGVkLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgICB0aGUgY2FzZSBmb2xkaW5nIGVxdWl2YWxlbnQgb2YgdGhlIGNoYXJhY3RlciwgaWYgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIGFueTsgb3RoZXJ3aXNlIHRoZSBjaGFyYWN0ZXIgaXRzZWxmLgorICAgICAqIEBzZWUgICAgICAgICAgICAgICAgICAjZm9sZENhc2UoU3RyaW5nLCBib29sZWFuKQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZvbGRDYXNlKGludCBjaCwgYm9vbGVhbiBkZWZhdWx0bWFwcGluZykgeworICAgICAgICByZXR1cm4gZm9sZENhc2UoY2gsIGRlZmF1bHRtYXBwaW5nID8gRk9MRF9DQVNFX0RFRkFVTFQgOiBGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBnaXZlbiBzdHJpbmcgaXMgbWFwcGVkIHRvIGl0cyBjYXNlIGZvbGRpbmcgZXF1aXZhbGVudCBhY2NvcmRpbmcgdG8KKyAgICAgKiBVbmljb2RlRGF0YS50eHQgYW5kIENhc2VGb2xkaW5nLnR4dDsgaWYgYW55IGNoYXJhY3RlciBoYXMgbm8gY2FzZSAKKyAgICAgKiBmb2xkaW5nIGVxdWl2YWxlbnQsIHRoZSBjaGFyYWN0ZXIgaXRzZWxmIGlzIHJldHVybmVkLgorICAgICAqICJGdWxsIiwgbXVsdGlwbGUtY29kZSBwb2ludCBjYXNlIGZvbGRpbmcgbWFwcGluZ3MgYXJlIHJldHVybmVkIGhlcmUuCisgICAgICogRm9yICJzaW1wbGUiIHNpbmdsZS1jb2RlIHBvaW50IG1hcHBpbmdzIHVzZSB0aGUgQVBJIAorICAgICAqIGZvbGRDYXNlKGludCBjaCwgYm9vbGVhbiBkZWZhdWx0bWFwcGluZykuCisgICAgICogQHBhcmFtIHN0ciAgICAgICAgICAgIHRoZSBTdHJpbmcgdG8gYmUgY29udmVydGVkCisgICAgICogQHBhcmFtIGRlZmF1bHRtYXBwaW5nIEluZGljYXRlcyBpZiBhbGwgbWFwcGluZ3MgZGVmaW5lZCBpbiAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgQ2FzZUZvbGRpbmcudHh0IGlzIHRvIGJlIHVzZWQsIG90aGVyd2lzZSB0aGUgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmdzIGZvciBkb3R0ZWQgSSBhbmQgZG90bGVzcyBpIG1hcmtlZCB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAnSScgaW4gQ2FzZUZvbGRpbmcudHh0IHdpbGwgYmUgc2tpcHBlZC4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICAgdGhlIGNhc2UgZm9sZGluZyBlcXVpdmFsZW50IG9mIHRoZSBjaGFyYWN0ZXIsIGlmIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBhbnk7IG90aGVyd2lzZSB0aGUgY2hhcmFjdGVyIGl0c2VsZi4KKyAgICAgKiBAc2VlICAgICAgICAgICAgICAgICAgI2ZvbGRDYXNlKGludCwgYm9vbGVhbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBmb2xkQ2FzZShTdHJpbmcgc3RyLCBib29sZWFuIGRlZmF1bHRtYXBwaW5nKSB7CisgICAgICAgIHJldHVybiBmb2xkQ2FzZShzdHIsIGRlZmF1bHRtYXBwaW5nID8gRk9MRF9DQVNFX0RFRkFVTFQgOiBGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBPcHRpb24gdmFsdWUgZm9yIGNhc2UgZm9sZGluZzogdXNlIGRlZmF1bHQgbWFwcGluZ3MgZGVmaW5lZCBpbiBDYXNlRm9sZGluZy50eHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRk9MRF9DQVNFX0RFRkFVTFQgICAgPSAgICAgIDB4MDAwMDsKKyAgICAvKiogCisgICAgICogT3B0aW9uIHZhbHVlIGZvciBjYXNlIGZvbGRpbmc6IGV4Y2x1ZGUgdGhlIG1hcHBpbmdzIGZvciBkb3R0ZWQgSSAKKyAgICAgKiBhbmQgZG90bGVzcyBpIG1hcmtlZCB3aXRoICdJJyBpbiBDYXNlRm9sZGluZy50eHQuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSA9IDB4MDAwMTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgZ2l2ZW4gY2hhcmFjdGVyIGlzIG1hcHBlZCB0byBpdHMgY2FzZSBmb2xkaW5nIGVxdWl2YWxlbnQgYWNjb3JkaW5nIAorICAgICAqIHRvIFVuaWNvZGVEYXRhLnR4dCBhbmQgQ2FzZUZvbGRpbmcudHh0OyBpZiB0aGUgY2hhcmFjdGVyIGhhcyBubyBjYXNlIAorICAgICAqIGZvbGRpbmcgZXF1aXZhbGVudCwgdGhlIGNoYXJhY3RlciBpdHNlbGYgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiA8cD5UaGlzIGZ1bmN0aW9uIG9ubHkgcmV0dXJucyB0aGUgc2ltcGxlLCBzaW5nbGUtY29kZSBwb2ludCBjYXNlIG1hcHBpbmcuCisgICAgICogRnVsbCBjYXNlIG1hcHBpbmdzIHNob3VsZCBiZSB1c2VkIHdoZW5ldmVyIHBvc3NpYmxlIGJlY2F1c2UgdGhleSBwcm9kdWNlCisgICAgICogYmV0dGVyIHJlc3VsdHMgYnkgd29ya2luZyBvbiB3aG9sZSBzdHJpbmdzLgorICAgICAqIFRoZXkgY2FuIG1hcCB0byBhIHJlc3VsdCBzdHJpbmcgd2l0aCBhIGRpZmZlcmVudCBsZW5ndGggYXMgYXBwcm9wcmlhdGUuCisgICAgICogRnVsbCBjYXNlIG1hcHBpbmdzIGFyZSBhcHBsaWVkIGJ5IHRoZSBjYXNlIG1hcHBpbmcgZnVuY3Rpb25zCisgICAgICogdGhhdCB0YWtlIFN0cmluZyBwYXJhbWV0ZXJzIHJhdGhlciB0aGFuIGNvZGUgcG9pbnRzIChpbnQpLgorICAgICAqIFNlZSBhbHNvIHRoZSBVc2VyIEd1aWRlIGNoYXB0ZXIgb24gQy9QT1NJWCBtaWdyYXRpb246CisgICAgICogaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL3Bvc2l4Lmh0bWwjY2FzZV9tYXBwaW5ncworICAgICAqCisgICAgICogQHBhcmFtIGNoICAgICAgICAgICAgIHRoZSBjaGFyYWN0ZXIgdG8gYmUgY29udmVydGVkCisgICAgICogQHBhcmFtIG9wdGlvbnMgICAgICAgIEEgYml0IHNldCBmb3Igc3BlY2lhbCBwcm9jZXNzaW5nLiBDdXJyZW50bHkgdGhlIHJlY29nbmlzZWQgb3B0aW9ucyBhcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIEZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSBhbmQgRk9MRF9DQVNFX0RFRkFVTFQgCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgIHRoZSBjYXNlIGZvbGRpbmcgZXF1aXZhbGVudCBvZiB0aGUgY2hhcmFjdGVyLCBpZiAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgYW55OyBvdGhlcndpc2UgdGhlIGNoYXJhY3RlciBpdHNlbGYuCisgICAgICogQHNlZSAjZm9sZENhc2UoU3RyaW5nLCBib29sZWFuKQorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZvbGRDYXNlKGludCBjaCwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgcmV0dXJuIGdDc3AuZm9sZChjaCwgb3B0aW9ucyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoZSBnaXZlbiBzdHJpbmcgaXMgbWFwcGVkIHRvIGl0cyBjYXNlIGZvbGRpbmcgZXF1aXZhbGVudCBhY2NvcmRpbmcgdG8KKyAgICAgKiBVbmljb2RlRGF0YS50eHQgYW5kIENhc2VGb2xkaW5nLnR4dDsgaWYgYW55IGNoYXJhY3RlciBoYXMgbm8gY2FzZSAKKyAgICAgKiBmb2xkaW5nIGVxdWl2YWxlbnQsIHRoZSBjaGFyYWN0ZXIgaXRzZWxmIGlzIHJldHVybmVkLgorICAgICAqICJGdWxsIiwgbXVsdGlwbGUtY29kZSBwb2ludCBjYXNlIGZvbGRpbmcgbWFwcGluZ3MgYXJlIHJldHVybmVkIGhlcmUuCisgICAgICogRm9yICJzaW1wbGUiIHNpbmdsZS1jb2RlIHBvaW50IG1hcHBpbmdzIHVzZSB0aGUgQVBJIAorICAgICAqIGZvbGRDYXNlKGludCBjaCwgYm9vbGVhbiBkZWZhdWx0bWFwcGluZykuCisgICAgICogQHBhcmFtIHN0ciAgICAgICAgICAgIHRoZSBTdHJpbmcgdG8gYmUgY29udmVydGVkCisgICAgICogQHBhcmFtIG9wdGlvbnMgICAgICAgIEEgYml0IHNldCBmb3Igc3BlY2lhbCBwcm9jZXNzaW5nLiBDdXJyZW50bHkgdGhlIHJlY29nbmlzZWQgb3B0aW9ucyBhcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIEZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSBhbmQgRk9MRF9DQVNFX0RFRkFVTFQgCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgIHRoZSBjYXNlIGZvbGRpbmcgZXF1aXZhbGVudCBvZiB0aGUgY2hhcmFjdGVyLCBpZiAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgYW55OyBvdGhlcndpc2UgdGhlIGNoYXJhY3RlciBpdHNlbGYuCisgICAgICogQHNlZSAjZm9sZENhc2UoaW50LCBib29sZWFuKQorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGZvbGRDYXNlKFN0cmluZyBzdHIsIGludCBvcHRpb25zKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKHN0ci5sZW5ndGgoKSk7CisgICAgICAgIGludCBjLCBpLCBsZW5ndGg7CisKKyAgICAgICAgbGVuZ3RoID0gc3RyLmxlbmd0aCgpOworICAgICAgICBmb3IoaT0wOyBpPGxlbmd0aDspIHsKKyAgICAgICAgICAgIGM9VVRGMTYuY2hhckF0KHN0ciwgaSk7CisgICAgICAgICAgICBpKz1VVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICBjPWdDc3AudG9GdWxsRm9sZGluZyhjLCByZXN1bHQsIG9wdGlvbnMpOworCisgICAgICAgICAgICAvKiBkZWNvZGUgdGhlIHJlc3VsdCAqLworICAgICAgICAgICAgaWYoYzwwKSB7CisgICAgICAgICAgICAgICAgLyogKG5vdCkgb3JpZ2luYWwgY29kZSBwb2ludCAqLworICAgICAgICAgICAgICAgIGM9fmM7CisgICAgICAgICAgICB9IGVsc2UgaWYoYzw9VUNhc2VQcm9wcy5NQVhfU1RSSU5HX0xFTkdUSCkgeworICAgICAgICAgICAgICAgIC8qIG1hcHBpbmcgYWxyZWFkeSBhcHBlbmRlZCB0byByZXN1bHQgKi8KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIC8qIH0gZWxzZSB7IGFwcGVuZCBzaW5nbGUtY29kZSBwb2ludCBtYXBwaW5nICovCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihjPD0weGZmZmYpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKWMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQocmVzdWx0LCBjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIG51bWVyaWMgdmFsdWUgb2YgSGFuIGNvZGUgcG9pbnRzLgorICAgICAqIDxicj4gVGhpcyByZXR1cm5zIHRoZSB2YWx1ZSBvZiBIYW4gJ251bWVyaWMnIGNvZGUgcG9pbnRzLAorICAgICAqIGluY2x1ZGluZyB0aG9zZSBmb3IgemVybywgdGVuLCBodW5kcmVkLCB0aG91c2FuZCwgdGVuIHRob3VzYW5kLAorICAgICAqIGFuZCBodW5kcmVkIG1pbGxpb24uCisgICAgICogVGhpcyBpbmNsdWRlcyBib3RoIHRoZSBzdGFuZGFyZCBhbmQgJ2NoZWNrd3JpdGluZycKKyAgICAgKiBjaGFyYWN0ZXJzLCB0aGUgJ2JpZyBjaXJjbGUnIHplcm8gY2hhcmFjdGVyLCBhbmQgdGhlIHN0YW5kYXJkCisgICAgICogemVybyBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gcXVlcnkKKyAgICAgKiBAcmV0dXJuIHZhbHVlIGlmIGl0IGlzIGEgSGFuICdudW1lcmljIGNoYXJhY3RlciwnIG90aGVyd2lzZSByZXR1cm4gLTEuICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRIYW5OdW1lcmljVmFsdWUoaW50IGNoKQorICAgIHsKKyAgICAgICAgLy8gVE9ETzogQXJlIHRoZXNlIGFsbCBjb3ZlcmVkIGJ5IFVuaWNvZGUgbnVtZXJpYyB2YWx1ZSBkYXRhPworICAgICAgICBzd2l0Y2goY2gpCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBJREVPR1JBUEhJQ19OVU1CRVJfWkVST18gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9aRVJPXyA6CisgICAgICAgIHJldHVybiAwOyAvLyBIYW4gWmVybworICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfRklSU1RfIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfT05FXyA6CisgICAgICAgIHJldHVybiAxOyAvLyBIYW4gT25lCisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9TRUNPTkRfIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfVFdPXyA6CisgICAgICAgIHJldHVybiAyOyAvLyBIYW4gVHdvCisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9USElSRF8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9USFJFRV8gOgorICAgICAgICByZXR1cm4gMzsgLy8gSGFuIFRocmVlCisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9GT1VSVEhfIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfRk9VUl8gOgorICAgICAgICByZXR1cm4gNDsgLy8gSGFuIEZvdXIKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0ZJRlRIXyA6CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9DT01QTEVYX0ZJVkVfIDoKKyAgICAgICAgcmV0dXJuIDU7IC8vIEhhbiBGaXZlCisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9TSVhUSF8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9TSVhfIDoKKyAgICAgICAgcmV0dXJuIDY7IC8vIEhhbiBTaXgKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX1NFVkVOVEhfIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfU0VWRU5fIDoKKyAgICAgICAgcmV0dXJuIDc7IC8vIEhhbiBTZXZlbgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfRUlHSFRIXyA6IAorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9FSUdIVF8gOgorICAgICAgICByZXR1cm4gODsgLy8gSGFuIEVpZ2h0CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9OSU5FVEhfIDoKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX0NPTVBMRVhfTklORV8gOgorICAgICAgICByZXR1cm4gOTsgLy8gSGFuIE5pbmUKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX1RFTl8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9URU5fIDoKKyAgICAgICAgcmV0dXJuIDEwOworICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfSFVORFJFRF8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9IVU5EUkVEXyA6CisgICAgICAgIHJldHVybiAxMDA7CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9USE9VU0FORF8gOgorICAgICAgICBjYXNlIENKS19JREVPR1JBUEhfQ09NUExFWF9USE9VU0FORF8gOgorICAgICAgICByZXR1cm4gMTAwMDsKKyAgICAgICAgY2FzZSBDSktfSURFT0dSQVBIX1RFTl9USE9VU0FORF8gOgorICAgICAgICByZXR1cm4gMTAwMDA7CisgICAgICAgIGNhc2UgQ0pLX0lERU9HUkFQSF9IVU5EUkVEX01JTExJT05fIDoKKyAgICAgICAgcmV0dXJuIDEwMDAwMDAwMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7IC8vIG5vIHZhbHVlCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkdldHMgYW4gaXRlcmF0b3IgZm9yIGNoYXJhY3RlciB0eXBlcywgaXRlcmF0aW5nIG92ZXIgY29kZXBvaW50cy48L3A+CisgICAgICogRXhhbXBsZSBvZiB1c2U6PGJyPgorICAgICAqIDxwcmU+CisgICAgICogUmFuZ2VWYWx1ZUl0ZXJhdG9yIGl0ZXJhdG9yID0gVUNoYXJhY3Rlci5nZXRUeXBlSXRlcmF0b3IoKTsKKyAgICAgKiBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCBlbGVtZW50ID0gbmV3IFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisgICAgICogd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb2RlcG9pbnQgXFx1IiArIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LnN0YXJ0KSArIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIiB0byBjb2RlcG9pbnQgXFx1IiArCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQubGltaXQgLSAxKSArIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIiBoYXMgdGhlIGNoYXJhY3RlciB0eXBlICIgKyAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUpOworICAgICAqIH0KKyAgICAgKiA8L3ByZT4KKyAgICAgKiBAcmV0dXJuIGFuIGl0ZXJhdG9yIAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmFuZ2VWYWx1ZUl0ZXJhdG9yIGdldFR5cGVJdGVyYXRvcigpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFVDaGFyYWN0ZXJUeXBlSXRlcmF0b3IoUFJPUEVSVFlfKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5HZXRzIGFuIGl0ZXJhdG9yIGZvciBjaGFyYWN0ZXIgbmFtZXMsIGl0ZXJhdGluZyBvdmVyIGNvZGVwb2ludHMuPC9wPgorICAgICAqIDxwPlRoaXMgQVBJIG9ubHkgZ2V0cyB0aGUgaXRlcmF0b3IgZm9yIHRoZSBtb2Rlcm4sIG1vc3QgdXAtdG8tZGF0ZSAKKyAgICAgKiBVbmljb2RlIG5hbWVzLiBGb3Igb2xkZXIgMS4wIFVuaWNvZGUgbmFtZXMgdXNlIGdldDFfME5hbWVJdGVyYXRvcigpIG9yCisgICAgICogZm9yIGV4dGVuZGVkIG5hbWVzIHVzZSBnZXRFeHRlbmRlZE5hbWVJdGVyYXRvcigpLjwvcD4KKyAgICAgKiBFeGFtcGxlIG9mIHVzZTo8YnI+CisgICAgICogPHByZT4KKyAgICAgKiBWYWx1ZUl0ZXJhdG9yIGl0ZXJhdG9yID0gVUNoYXJhY3Rlci5nZXROYW1lSXRlcmF0b3IoKTsKKyAgICAgKiBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCA9IG5ldyBWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgKiB3aGlsZSAoaXRlcmF0b3IubmV4dChlbGVtZW50KSkgeworICAgICAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvZGVwb2ludCBcXHUiICsgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKGVsZW1lbnQuY29kZXBvaW50KSArCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAiIGhhcyB0aGUgbmFtZSAiICsgKFN0cmluZyllbGVtZW50LnZhbHVlKTsKKyAgICAgKiB9CisgICAgICogPC9wcmU+CisgICAgICogPHA+VGhlIG1heGltYWwgcmFuZ2Ugd2hpY2ggdGhlIG5hbWUgaXRlcmF0b3IgaXRlcmF0ZXMgaXMgZnJvbSAKKyAgICAgKiBVQ2hhcmFjdGVyLk1JTl9WQUxVRSB0byBVQ2hhcmFjdGVyLk1BWF9WQUxVRS48L3A+CisgICAgICogQHJldHVybiBhbiBpdGVyYXRvciAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZhbHVlSXRlcmF0b3IgZ2V0TmFtZUl0ZXJhdG9yKCkKKyAgICB7CisgICAgICAgIGlmKE5BTUVfPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJDb3VsZCBub3QgbG9hZCB1bmFtZXMuaWN1Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBVQ2hhcmFjdGVyTmFtZUl0ZXJhdG9yKE5BTUVfLAorICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVOSUNPREVfQ0hBUl9OQU1FKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+R2V0cyBhbiBpdGVyYXRvciBmb3IgY2hhcmFjdGVyIG5hbWVzLCBpdGVyYXRpbmcgb3ZlciBjb2RlcG9pbnRzLjwvcD4KKyAgICAgKiA8cD5UaGlzIEFQSSBvbmx5IGdldHMgdGhlIGl0ZXJhdG9yIGZvciB0aGUgb2xkZXIgMS4wIFVuaWNvZGUgbmFtZXMuIAorICAgICAqIEZvciBtb2Rlcm4sIG1vc3QgdXAtdG8tZGF0ZSBVbmljb2RlIG5hbWVzIHVzZSBnZXROYW1lSXRlcmF0b3IoKSBvcgorICAgICAqIGZvciBleHRlbmRlZCBuYW1lcyB1c2UgZ2V0RXh0ZW5kZWROYW1lSXRlcmF0b3IoKS48L3A+CisgICAgICogRXhhbXBsZSBvZiB1c2U6PGJyPgorICAgICAqIDxwcmU+CisgICAgICogVmFsdWVJdGVyYXRvciBpdGVyYXRvciA9IFVDaGFyYWN0ZXIuZ2V0MV8wTmFtZUl0ZXJhdG9yKCk7CisgICAgICogVmFsdWVJdGVyYXRvci5FbGVtZW50IGVsZW1lbnQgPSBuZXcgVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisgICAgICogd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb2RlcG9pbnQgXFx1IiArIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmNvZGVwb2ludCkgKworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIiBoYXMgdGhlIG5hbWUgIiArIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgICogfQorICAgICAqIDwvcHJlPgorICAgICAqIDxwPlRoZSBtYXhpbWFsIHJhbmdlIHdoaWNoIHRoZSBuYW1lIGl0ZXJhdG9yIGl0ZXJhdGVzIGlzIGZyb20gCisgICAgICogQHJldHVybiBhbiBpdGVyYXRvciAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZhbHVlSXRlcmF0b3IgZ2V0TmFtZTFfMEl0ZXJhdG9yKCkKKyAgICB7CisgICAgICAgIGlmKE5BTUVfPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJDb3VsZCBub3QgbG9hZCB1bmFtZXMuaWN1Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBVQ2hhcmFjdGVyTmFtZUl0ZXJhdG9yKE5BTUVfLAorICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVOSUNPREVfMTBfQ0hBUl9OQU1FKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+R2V0cyBhbiBpdGVyYXRvciBmb3IgY2hhcmFjdGVyIG5hbWVzLCBpdGVyYXRpbmcgb3ZlciBjb2RlcG9pbnRzLjwvcD4KKyAgICAgKiA8cD5UaGlzIEFQSSBvbmx5IGdldHMgdGhlIGl0ZXJhdG9yIGZvciB0aGUgZXh0ZW5kZWQgbmFtZXMuIAorICAgICAqIEZvciBtb2Rlcm4sIG1vc3QgdXAtdG8tZGF0ZSBVbmljb2RlIG5hbWVzIHVzZSBnZXROYW1lSXRlcmF0b3IoKSBvcgorICAgICAqIGZvciBvbGRlciAxLjAgVW5pY29kZSBuYW1lcyB1c2UgZ2V0MV8wTmFtZUl0ZXJhdG9yKCkuPC9wPgorICAgICAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAgICAgKiA8cHJlPgorICAgICAqIFZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldEV4dGVuZGVkTmFtZUl0ZXJhdG9yKCk7CisgICAgICogVmFsdWVJdGVyYXRvci5FbGVtZW50IGVsZW1lbnQgPSBuZXcgVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisgICAgICogd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb2RlcG9pbnQgXFx1IiArIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhlbGVtZW50LmNvZGVwb2ludCkgKworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIiBoYXMgdGhlIG5hbWUgIiArIChTdHJpbmcpZWxlbWVudC52YWx1ZSk7CisgICAgICogfQorICAgICAqIDwvcHJlPgorICAgICAqIDxwPlRoZSBtYXhpbWFsIHJhbmdlIHdoaWNoIHRoZSBuYW1lIGl0ZXJhdG9yIGl0ZXJhdGVzIGlzIGZyb20gCisgICAgICogQHJldHVybiBhbiBpdGVyYXRvciAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZhbHVlSXRlcmF0b3IgZ2V0RXh0ZW5kZWROYW1lSXRlcmF0b3IoKQorICAgIHsKKyAgICAgICAgaWYoTkFNRV89PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ291bGQgbm90IGxvYWQgdW5hbWVzLmljdSIsIiIsIiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgVUNoYXJhY3Rlck5hbWVJdGVyYXRvcihOQU1FXywKKyAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyTmFtZUNob2ljZS5FWFRFTkRFRF9DSEFSX05BTUUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5HZXQgdGhlICJhZ2UiIG9mIHRoZSBjb2RlIHBvaW50LjwvcD4KKyAgICAgKiA8cD5UaGUgImFnZSIgaXMgdGhlIFVuaWNvZGUgdmVyc2lvbiB3aGVuIHRoZSBjb2RlIHBvaW50IHdhcyBmaXJzdAorICAgICAqIGRlc2lnbmF0ZWQgKGFzIGEgbm9uLWNoYXJhY3RlciBvciBmb3IgUHJpdmF0ZSBVc2UpIG9yIGFzc2lnbmVkIGEgCisgICAgICogY2hhcmFjdGVyLgorICAgICAqIDxwPlRoaXMgY2FuIGJlIHVzZWZ1bCB0byBhdm9pZCBlbWl0dGluZyBjb2RlIHBvaW50cyB0byByZWNlaXZpbmcgCisgICAgICogcHJvY2Vzc2VzIHRoYXQgZG8gbm90IGFjY2VwdCBuZXdlciBjaGFyYWN0ZXJzLjwvcD4KKyAgICAgKiA8cD5UaGUgZGF0YSBpcyBmcm9tIHRoZSBVQ0QgZmlsZSBEZXJpdmVkQWdlLnR4dC48L3A+CisgICAgICogQHBhcmFtIGNoIFRoZSBjb2RlIHBvaW50LgorICAgICAqIEByZXR1cm4gdGhlIFVuaWNvZGUgdmVyc2lvbiBudW1iZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZlcnNpb25JbmZvIGdldEFnZShpbnQgY2gpIAorICAgIHsKKyAgICAgICAgaWYgKGNoIDwgTUlOX1ZBTFVFIHx8IGNoID4gTUFYX1ZBTFVFKSB7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvZGVwb2ludCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFBST1BFUlRZXy5nZXRBZ2UoY2gpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5DaGVjayBhIGJpbmFyeSBVbmljb2RlIHByb3BlcnR5IGZvciBhIGNvZGUgcG9pbnQuPC9wPiAKKyAgICAgKiA8cD5Vbmljb2RlLCBlc3BlY2lhbGx5IGluIHZlcnNpb24gMy4yLCBkZWZpbmVzIG1hbnkgbW9yZSBwcm9wZXJ0aWVzIAorICAgICAqIHRoYW4gdGhlIG9yaWdpbmFsIHNldCBpbiBVbmljb2RlRGF0YS50eHQuPC9wPgorICAgICAqIDxwPlRoaXMgQVBJIGlzIGludGVuZGVkIHRvIHJlZmxlY3QgVW5pY29kZSBwcm9wZXJ0aWVzIGFzIGRlZmluZWQgaW4gCisgICAgICogdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlIChVQ0QpIGFuZCBVbmljb2RlIFRlY2huaWNhbCBSZXBvcnRzIAorICAgICAqIChVVFIpLjwvcD4KKyAgICAgKiA8cD5Gb3IgZGV0YWlscyBhYm91dCB0aGUgcHJvcGVydGllcyBzZWUgCisgICAgICogPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnLz5odHRwOi8vd3d3LnVuaWNvZGUub3JnLzwvYT4uPC9wPgorICAgICAqIDxwPkZvciBuYW1lcyBvZiBVbmljb2RlIHByb3BlcnRpZXMgc2VlIHRoZSBVQ0QgZmlsZSAKKyAgICAgKiBQcm9wZXJ0eUFsaWFzZXMudHh0LjwvcD4KKyAgICAgKiA8cD5UaGlzIEFQSSBkb2VzIG5vdCBjaGVjayB0aGUgdmFsaWRpdHkgb2YgdGhlIGNvZGVwb2ludC48L3A+CisgICAgICogPHA+SW1wb3J0YW50OiBJZiBJQ1UgaXMgYnVpbHQgd2l0aCBVQ0QgZmlsZXMgZnJvbSBVbmljb2RlIHZlcnNpb25zIAorICAgICAqIGJlbG93IDMuMiwgdGhlbiBwcm9wZXJ0aWVzIG1hcmtlZCB3aXRoICJuZXciIGFyZSBub3Qgb3IgCisgICAgICogbm90IGZ1bGx5IGF2YWlsYWJsZS48L3A+CisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgdG8gdGVzdC4KKyAgICAgKiBAcGFyYW0gcHJvcGVydHkgc2VsZWN0b3IgY29uc3RhbnQgZnJvbSBjb20uaWJtLmljdS5sYW5nLlVQcm9wZXJ0eSwgCisgICAgICogICAgICAgIGlkZW50aWZpZXMgd2hpY2ggYmluYXJ5IHByb3BlcnR5IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gdHJ1ZSBvciBmYWxzZSBhY2NvcmRpbmcgdG8gdGhlIGJpbmFyeSBVbmljb2RlIHByb3BlcnR5IHZhbHVlIAorICAgICAqICAgICAgICAgZm9yIGNoLiBBbHNvIGZhbHNlIGlmIHByb3BlcnR5IGlzIG91dCBvZiBib3VuZHMgb3IgaWYgdGhlIAorICAgICAqICAgICAgICAgVW5pY29kZSB2ZXJzaW9uIGRvZXMgbm90IGhhdmUgZGF0YSBmb3IgdGhlIHByb3BlcnR5IGF0IGFsbCwgb3IgCisgICAgICogICAgICAgICBub3QgZm9yIHRoaXMgY29kZSBwb2ludC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmxhbmcuVVByb3BlcnR5CisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGhhc0JpbmFyeVByb3BlcnR5KGludCBjaCwgaW50IHByb3BlcnR5KSAKKyAgICB7CisgICAgaWYgKGNoIDwgTUlOX1ZBTFVFIHx8IGNoID4gTUFYX1ZBTFVFKSB7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvZGVwb2ludCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFBST1BFUlRZXy5oYXNCaW5hcnlQcm9wZXJ0eShjaCwgcHJvcGVydHkpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogPHA+Q2hlY2sgaWYgYSBjb2RlIHBvaW50IGhhcyB0aGUgQWxwaGFiZXRpYyBVbmljb2RlIHByb3BlcnR5LjwvcD4gCisgICAgICogPHA+U2FtZSBhcyBVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KGNoLCBVUHJvcGVydHkuQUxQSEFCRVRJQykuPC9wPgorICAgICAqIDxwPkRpZmZlcmVudCBmcm9tIFVDaGFyYWN0ZXIuaXNMZXR0ZXIoY2gpITwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICogQHBhcmFtIGNoIGNvZGVwb2ludCB0byBiZSB0ZXN0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVQWxwaGFiZXRpYyhpbnQgY2gpCisgICAgeworICAgIHJldHVybiBoYXNCaW5hcnlQcm9wZXJ0eShjaCwgVVByb3BlcnR5LkFMUEhBQkVUSUMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkNoZWNrIGlmIGEgY29kZSBwb2ludCBoYXMgdGhlIExvd2VyY2FzZSBVbmljb2RlIHByb3BlcnR5LjwvcD4KKyAgICAgKiA8cD5TYW1lIGFzIFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkoY2gsIFVQcm9wZXJ0eS5MT1dFUkNBU0UpLjwvcD4KKyAgICAgKiA8cD5UaGlzIGlzIGRpZmZlcmVudCBmcm9tIFVDaGFyYWN0ZXIuaXNMb3dlckNhc2UoY2gpITwvcD4KKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHRvIGJlIHRlc3RlZAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VMb3dlcmNhc2UoaW50IGNoKSAKKyAgICB7CisgICAgcmV0dXJuIGhhc0JpbmFyeVByb3BlcnR5KGNoLCBVUHJvcGVydHkuTE9XRVJDQVNFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5DaGVjayBpZiBhIGNvZGUgcG9pbnQgaGFzIHRoZSBVcHBlcmNhc2UgVW5pY29kZSBwcm9wZXJ0eS48L3A+CisgICAgICogPHA+U2FtZSBhcyBVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KGNoLCBVUHJvcGVydHkuVVBQRVJDQVNFKS48L3A+CisgICAgICogPHA+VGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBVQ2hhcmFjdGVyLmlzVXBwZXJDYXNlKGNoKSE8L3A+CisgICAgICogQHBhcmFtIGNoIGNvZGVwb2ludCB0byBiZSB0ZXN0ZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNVVXBwZXJjYXNlKGludCBjaCkgCisgICAgeworICAgIHJldHVybiBoYXNCaW5hcnlQcm9wZXJ0eShjaCwgVVByb3BlcnR5LlVQUEVSQ0FTRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+Q2hlY2sgaWYgYSBjb2RlIHBvaW50IGhhcyB0aGUgV2hpdGVfU3BhY2UgVW5pY29kZSBwcm9wZXJ0eS48L3A+CisgICAgICogPHA+U2FtZSBhcyBVQ2hhcmFjdGVyLmhhc0JpbmFyeVByb3BlcnR5KGNoLCBVUHJvcGVydHkuV0hJVEVfU1BBQ0UpLjwvcD4KKyAgICAgKiA8cD5UaGlzIGlzIGRpZmZlcmVudCBmcm9tIGJvdGggVUNoYXJhY3Rlci5pc1NwYWNlKGNoKSBhbmQgCisgICAgICogVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoY2gpITwvcD4KKyAgICAgKiBAcGFyYW0gY2ggY29kZXBvaW50IHRvIGJlIHRlc3RlZAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1VXaGl0ZVNwYWNlKGludCBjaCkgCisgICAgeworICAgIHJldHVybiBoYXNCaW5hcnlQcm9wZXJ0eShjaCwgVVByb3BlcnR5LldISVRFX1NQQUNFKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIDxwPkdldHMgdGhlIHByb3BlcnR5IHZhbHVlIGZvciBhbiBVbmljb2RlIHByb3BlcnR5IHR5cGUgb2YgYSBjb2RlIHBvaW50LiAKKyAgICAgKiBBbHNvIHJldHVybnMgYmluYXJ5IGFuZCBtYXNrIHByb3BlcnR5IHZhbHVlcy48L3A+CisgICAgICogPHA+VW5pY29kZSwgZXNwZWNpYWxseSBpbiB2ZXJzaW9uIDMuMiwgZGVmaW5lcyBtYW55IG1vcmUgcHJvcGVydGllcyB0aGFuIAorICAgICAqIHRoZSBvcmlnaW5hbCBzZXQgaW4gVW5pY29kZURhdGEudHh0LjwvcD4KKyAgICAgKiA8cD5UaGUgcHJvcGVydGllcyBBUElzIGFyZSBpbnRlbmRlZCB0byByZWZsZWN0IFVuaWNvZGUgcHJvcGVydGllcyBhcyAKKyAgICAgKiBkZWZpbmVkIGluIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSAoVUNEKSBhbmQgVW5pY29kZSBUZWNobmljYWwgCisgICAgICogUmVwb3J0cyAoVVRSKS4gRm9yIGRldGFpbHMgYWJvdXQgdGhlIHByb3BlcnRpZXMgc2VlIAorICAgICAqIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvLjwvcD4KKyAgICAgKiA8cD5Gb3IgbmFtZXMgb2YgVW5pY29kZSBwcm9wZXJ0aWVzIHNlZSB0aGUgVUNEIGZpbGUgUHJvcGVydHlBbGlhc2VzLnR4dC4KKyAgICAgKiA8L3A+CisgICAgICogPHByZT4KKyAgICAgKiBTYW1wbGUgdXNhZ2U6CisgICAgICogaW50IGVhID0gVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eVZhbHVlKGMsIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRIKTsKKyAgICAgKiBpbnQgaWRlbyA9IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjLCBVUHJvcGVydHkuSURFT0dSQVBISUMpOworICAgICAqIGJvb2xlYW4gYiA9IChpZGVvID09IDEpID8gdHJ1ZSA6IGZhbHNlOyAKKyAgICAgKiA8L3ByZT4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludCB0byB0ZXN0LgorICAgICAqIEBwYXJhbSB0eXBlIFVQcm9wZXJ0eSBzZWxlY3RvciBjb25zdGFudCwgaWRlbnRpZmllcyB3aGljaCBiaW5hcnkgCisgICAgICogICAgICAgIHByb3BlcnR5IHRvIGNoZWNrLiBNdXN0IGJlIAorICAgICAqICAgICAgICBVUHJvcGVydHkuQklOQVJZX1NUQVJUICZsdDs9IHR5cGUgJmx0OyBVUHJvcGVydHkuQklOQVJZX0xJTUlUIG9yIAorICAgICAqICAgICAgICBVUHJvcGVydHkuSU5UX1NUQVJUICZsdDs9IHR5cGUgJmx0OyBVUHJvcGVydHkuSU5UX0xJTUlUIG9yIAorICAgICAqICAgICAgICBVUHJvcGVydHkuTUFTS19TVEFSVCAmbHQ7PSB0eXBlICZsdDsgVVByb3BlcnR5Lk1BU0tfTElNSVQuCisgICAgICogQHJldHVybiBudW1lcmljIHZhbHVlIHRoYXQgaXMgZGlyZWN0bHkgdGhlIHByb3BlcnR5IHZhbHVlIG9yLAorICAgICAqICAgICAgICAgZm9yIGVudW1lcmF0ZWQgcHJvcGVydGllcywgY29ycmVzcG9uZHMgdG8gdGhlIG51bWVyaWMgdmFsdWUgb2YgCisgICAgICogICAgICAgICB0aGUgZW51bWVyYXRlZCBjb25zdGFudCBvZiB0aGUgcmVzcGVjdGl2ZSBwcm9wZXJ0eSB2YWx1ZSAKKyAgICAgKiAgICAgICAgIGVudW1lcmF0aW9uIHR5cGUgKGNhc3QgdG8gZW51bSB0eXBlIGlmIG5lY2Vzc2FyeSkuCisgICAgICogICAgICAgICBSZXR1cm5zIDAgb3IgMSAoZm9yIGZhbHNlIC8gdHJ1ZSkgZm9yIGJpbmFyeSBVbmljb2RlIHByb3BlcnRpZXMuCisgICAgICogICAgICAgICBSZXR1cm5zIGEgYml0LW1hc2sgZm9yIG1hc2sgcHJvcGVydGllcy4KKyAgICAgKiAgICAgICAgIFJldHVybnMgMCBpZiAndHlwZScgaXMgb3V0IG9mIGJvdW5kcyBvciBpZiB0aGUgVW5pY29kZSB2ZXJzaW9uCisgICAgICogICAgICAgICBkb2VzIG5vdCBoYXZlIGRhdGEgZm9yIHRoZSBwcm9wZXJ0eSBhdCBhbGwsIG9yIG5vdCBmb3IgdGhpcyBjb2RlIAorICAgICAqICAgICAgICAgcG9pbnQuCisgICAgICogQHNlZSBVUHJvcGVydHkKKyAgICAgKiBAc2VlICNoYXNCaW5hcnlQcm9wZXJ0eQorICAgICAqIEBzZWUgI2dldEludFByb3BlcnR5TWluVmFsdWUKKyAgICAgKiBAc2VlICNnZXRJbnRQcm9wZXJ0eU1heFZhbHVlCisgICAgICogQHNlZSAjZ2V0VW5pY29kZVZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRJbnRQcm9wZXJ0eVZhbHVlKGludCBjaCwgaW50IHR5cGUpCisgICAgeworICAgICAgICBpZiAodHlwZSA8IFVQcm9wZXJ0eS5CSU5BUllfU1RBUlQpIHsKKyAgICAgICAgICAgIHJldHVybiAwOyAvLyB1bmRlZmluZWQKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSBpZiAodHlwZSA8IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQpIHsKKyAgICAgICAgICAgIHJldHVybiBoYXNCaW5hcnlQcm9wZXJ0eShjaCwgdHlwZSkgPyAxIDogMDsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSBpZiAodHlwZSA8IFVQcm9wZXJ0eS5JTlRfU1RBUlQpIHsKKyAgICAgICAgICAgIHJldHVybiAwOyAvLyB1bmRlZmluZWQKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSBpZiAodHlwZSA8IFVQcm9wZXJ0eS5JTlRfTElNSVQpIHsKKyAgICAgICAgICAgIC8vaW50IHJlc3VsdCA9IDA7CisgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkJJRElfQ0xBU1M6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldERpcmVjdGlvbihjaCk7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CTE9DSzoKKyAgICAgICAgICAgICAgICByZXR1cm4gVW5pY29kZUJsb2NrLmlkT2YoY2gpOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUzoKKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0Q29tYmluaW5nQ2xhc3MoY2gpOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuREVDT01QT1NJVElPTl9UWVBFOgorICAgICAgICAgICAgICAgIHJldHVybiBQUk9QRVJUWV8uZ2V0QWRkaXRpb25hbChjaCwgMikgCisgICAgICAgICAgICAmIERFQ09NUE9TSVRJT05fVFlQRV9NQVNLXzsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkVBU1RfQVNJQU5fV0lEVEg6CisgICAgICAgICAgICAgICAgcmV0dXJuIChQUk9QRVJUWV8uZ2V0QWRkaXRpb25hbChjaCwgMCkKKyAgICAgICAgICAgICYgRUFTVF9BU0lBTl9NQVNLXykgPj4gRUFTVF9BU0lBTl9TSElGVF87CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZOgorICAgICAgICAgICAgICAgIHJldHVybiBnZXRUeXBlKGNoKTsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkpPSU5JTkdfR1JPVVA6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdCZHAuZ2V0Sm9pbmluZ0dyb3VwKGNoKTsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkpPSU5JTkdfVFlQRToKKyAgICAgICAgICAgICAgICByZXR1cm4gZ0JkcC5nZXRKb2luaW5nVHlwZShjaCk7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MSU5FX0JSRUFLOgorICAgICAgICAgICAgICAgIHJldHVybiAoaW50KShQUk9QRVJUWV8uZ2V0QWRkaXRpb25hbChjaCwgMCkmIExJTkVfQlJFQUtfTUFTS18pPj5MSU5FX0JSRUFLX1NISUZUXzsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5VTUVSSUNfVFlQRToKKyAgICAgICAgICAgICAgICB0eXBlPWdldE51bWVyaWNUeXBlKFBST1BFUlRZXy5nZXRQcm9wZXJ0eShjaCkpOworICAgICAgICAgICAgICAgIGlmKHR5cGU+TnVtZXJpY1R5cGUuTlVNRVJJQykgeworICAgICAgICAgICAgICAgICAgICAvKiBrZWVwIGludGVybmFsIHZhcmlhbnRzIG9mIE51bWVyaWNUeXBlLk5VTUVSSUMgZnJvbSBiZWNvbWluZyB2aXNpYmxlICovCisgICAgICAgICAgICAgICAgICAgIHR5cGU9TnVtZXJpY1R5cGUuTlVNRVJJQzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGU7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TQ1JJUFQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIFVTY3JpcHQuZ2V0U2NyaXB0KGNoKTsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkhBTkdVTF9TWUxMQUJMRV9UWVBFOgorICAgICAgICAvKiBwdXJlbHkgYWxnb3JpdGhtaWM7IGhhcmRjb2RlIGtub3duIGNoYXJhY3RlcnMsIGNoZWNrIGZvciBhc3NpZ25lZCBuZXcgb25lcyAqLyAKKyAgICAgICAgaWYoY2g8Tm9ybWFsaXplckltcGwuSkFNT19MX0JBU0UpIHsgCisgICAgICAgICAgICAvKiBOQSAqLyAKKyAgICAgICAgfSBlbHNlIGlmKGNoPD0weDExZmYpIHsgCisgICAgICAgICAgICAvKiBKYW1vIHJhbmdlICovIAorICAgICAgICAgICAgaWYoY2g8PTB4MTE1ZikgeyAKKyAgICAgICAgICAgIC8qIEphbW8gTCByYW5nZSwgSEFOR1VMIENIT1NFT05HIC4uLiAqLyAKKyAgICAgICAgICAgIGlmKGNoPT0weDExNWYgfHwgY2g8PTB4MTE1OSB8fCBnZXRUeXBlKGNoKT09VUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUikgeyAKKyAgICAgICAgICAgICAgICByZXR1cm4gSGFuZ3VsU3lsbGFibGVUeXBlLkxFQURJTkdfSkFNTzsgCisgICAgICAgICAgICB9IAorICAgICAgICAgICAgfSBlbHNlIGlmKGNoPD0weDExYTcpIHsgCisgICAgICAgICAgICAvKiBKYW1vIFYgcmFuZ2UsIEhBTkdVTCBKVU5HU0VPTkcgLi4uICovIAorICAgICAgICAgICAgaWYoY2g8PTB4MTFhMiB8fCBnZXRUeXBlKGNoKT09VUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUikgeyAKKyAgICAgICAgICAgICAgICByZXR1cm4gSGFuZ3VsU3lsbGFibGVUeXBlLlZPV0VMX0pBTU87IAorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIH0gZWxzZSB7IAorICAgICAgICAgICAgLyogSmFtbyBUIHJhbmdlICovIAorICAgICAgICAgICAgaWYoY2g8PTB4MTFmOSB8fCBnZXRUeXBlKGNoKT09VUNoYXJhY3RlckNhdGVnb3J5Lk9USEVSX0xFVFRFUikgeyAKKyAgICAgICAgICAgICAgICByZXR1cm4gSGFuZ3VsU3lsbGFibGVUeXBlLlRSQUlMSU5HX0pBTU87IAorICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIH0gCisgICAgICAgIH0gZWxzZSBpZigoY2gtPU5vcm1hbGl6ZXJJbXBsLkhBTkdVTF9CQVNFKTwwKSB7IAorICAgICAgICAgICAgLyogTkEgKi8gCisgICAgICAgIH0gZWxzZSBpZihjaDxOb3JtYWxpemVySW1wbC5IQU5HVUxfQ09VTlQpIHsgCisgICAgICAgICAgICAvKiBIYW5ndWwgc3lsbGFibGUgKi8gCisgICAgICAgICAgICByZXR1cm4gY2glTm9ybWFsaXplckltcGwuSkFNT19UX0NPVU5UPT0wID8gSGFuZ3VsU3lsbGFibGVUeXBlLkxWX1NZTExBQkxFIDogSGFuZ3VsU3lsbGFibGVUeXBlLkxWVF9TWUxMQUJMRTsgCisgICAgICAgIH0gCisgICAgICAgIHJldHVybiAwOyAvKiBOQSAqLyAKKworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZEX1FVSUNLX0NIRUNLOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZLRF9RVUlDS19DSEVDSzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GQ19RVUlDS19DSEVDSzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GS0NfUVVJQ0tfQ0hFQ0s6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLnF1aWNrQ2hlY2soY2gsICh0eXBlLVVQcm9wZXJ0eS5ORkRfUVVJQ0tfQ0hFQ0spKzIpOyAvLyAyPVVOT1JNX05GRAorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTEVBRF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTOgorICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk+Pjg7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5UUkFJTF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTOgorICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCkmMHhmZjsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkdSQVBIRU1FX0NMVVNURVJfQlJFQUs6CisgICAgICAgICAgICAgICAgcmV0dXJuIChpbnQpKFBST1BFUlRZXy5nZXRBZGRpdGlvbmFsKGNoLCAyKSYgR0NCX01BU0spPj5HQ0JfU0hJRlQ7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TRU5URU5DRV9CUkVBSzoKKyAgICAgICAgICAgICAgICByZXR1cm4gKGludCkoUFJPUEVSVFlfLmdldEFkZGl0aW9uYWwoY2gsIDIpJiBTQl9NQVNLKT4+U0JfU0hJRlQ7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5XT1JEX0JSRUFLOgorICAgICAgICAgICAgICAgIHJldHVybiAoaW50KShQUk9QRVJUWV8uZ2V0QWRkaXRpb25hbChjaCwgMikmIFdCX01BU0spPj5XQl9TSElGVDsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIDA7IC8qIHVuZGVmaW5lZCAqLworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSykgeworICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRNYXNrKGdldFR5cGUoY2gpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsgLy8gdW5kZWZpbmVkCisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBzdHJpbmcgdmVyc2lvbiBvZiB0aGUgcHJvcGVydHkgdmFsdWUuCisgICAgICogQHBhcmFtIHByb3BlcnR5RW51bQorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQKKyAgICAgKiBAcGFyYW0gbmFtZUNob2ljZQorICAgICAqIEByZXR1cm4gdmFsdWUgYXMgc3RyaW5nCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0U3RyaW5nUHJvcGVydHlWYWx1ZShpbnQgcHJvcGVydHlFbnVtLCBpbnQgY29kZXBvaW50LCBpbnQgbmFtZUNob2ljZSkgeworICAgICAgICAvLyBUT0RPIHNvbWUgb2YgdGhlc2UgYXJlIGxlc3MgZWZmaWNpZW50LCBzaW5jZSBhIHN0cmluZyBpcyBmb3JjZWQhCisgICAgICAgIGlmICgocHJvcGVydHlFbnVtID49IFVQcm9wZXJ0eS5CSU5BUllfU1RBUlQgJiYgcHJvcGVydHlFbnVtIDwgVVByb3BlcnR5LkJJTkFSWV9MSU1JVCkgfHwKKyAgICAgICAgICAgICAgICAocHJvcGVydHlFbnVtID49IFVQcm9wZXJ0eS5JTlRfU1RBUlQgJiYgcHJvcGVydHlFbnVtIDwgVVByb3BlcnR5LklOVF9MSU1JVCkpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRQcm9wZXJ0eVZhbHVlTmFtZShwcm9wZXJ0eUVudW0sIGdldEludFByb3BlcnR5VmFsdWUoY29kZXBvaW50LCBwcm9wZXJ0eUVudW0pLCBuYW1lQ2hvaWNlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJvcGVydHlFbnVtID09IFVQcm9wZXJ0eS5OVU1FUklDX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZy52YWx1ZU9mKGdldFVuaWNvZGVOdW1lcmljVmFsdWUoY29kZXBvaW50KSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gb3RoZXJ3aXNlIG11c3QgYmUgc3RyaW5nIHByb3BlcnR5CisgICAgICAgIHN3aXRjaCAocHJvcGVydHlFbnVtKSB7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LkFHRTogcmV0dXJuIGdldEFnZShjb2RlcG9pbnQpLnRvU3RyaW5nKCk7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LklTT19DT01NRU5UOiByZXR1cm4gZ2V0SVNPQ29tbWVudChjb2RlcG9pbnQpOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5CSURJX01JUlJPUklOR19HTFlQSDogcmV0dXJuIFVURjE2LnZhbHVlT2YoZ2V0TWlycm9yKGNvZGVwb2ludCkpOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5DQVNFX0ZPTERJTkc6IHJldHVybiBmb2xkQ2FzZShVVEYxNi52YWx1ZU9mKGNvZGVwb2ludCksIHRydWUpOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MT1dFUkNBU0VfTUFQUElORzogcmV0dXJuIHRvTG93ZXJDYXNlKFVURjE2LnZhbHVlT2YoY29kZXBvaW50KSk7CisgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5BTUU6IHJldHVybiBnZXROYW1lKGNvZGVwb2ludCk7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9DQVNFX0ZPTERJTkc6IHJldHVybiBVVEYxNi52YWx1ZU9mKGZvbGRDYXNlKGNvZGVwb2ludCx0cnVlKSk7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9MT1dFUkNBU0VfTUFQUElORzogcmV0dXJuIFVURjE2LnZhbHVlT2YodG9Mb3dlckNhc2UoY29kZXBvaW50KSk7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9USVRMRUNBU0VfTUFQUElORzogcmV0dXJuIFVURjE2LnZhbHVlT2YodG9UaXRsZUNhc2UoY29kZXBvaW50KSk7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LlNJTVBMRV9VUFBFUkNBU0VfTUFQUElORzogcmV0dXJuIFVURjE2LnZhbHVlT2YodG9VcHBlckNhc2UoY29kZXBvaW50KSk7CisgICAgICAgIGNhc2UgVVByb3BlcnR5LlRJVExFQ0FTRV9NQVBQSU5HOiByZXR1cm4gdG9UaXRsZUNhc2UoVVRGMTYudmFsdWVPZihjb2RlcG9pbnQpLG51bGwpOworICAgICAgICBjYXNlIFVQcm9wZXJ0eS5VTklDT0RFXzFfTkFNRTogcmV0dXJuIGdldE5hbWUxXzAoY29kZXBvaW50KTsKKyAgICAgICAgY2FzZSBVUHJvcGVydHkuVVBQRVJDQVNFX01BUFBJTkc6IHJldHVybiB0b1VwcGVyQ2FzZShVVEYxNi52YWx1ZU9mKGNvZGVwb2ludCkpOyAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBQcm9wZXJ0eSBFbnVtIik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgbWluaW11bSB2YWx1ZSBmb3IgYW4gaW50ZWdlci9iaW5hcnkgVW5pY29kZSBwcm9wZXJ0eSB0eXBlLgorICAgICAqIENhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKGludCkKKyAgICAgKiB0byBhbGxvY2F0ZSBhcnJheXMgb2YgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0IG9yIHNpbWlsYXIuCisgICAgICogQHBhcmFtIHR5cGUgVVByb3BlcnR5IHNlbGVjdG9yIGNvbnN0YW50LCBpZGVudGlmaWVzIHdoaWNoIGJpbmFyeSAKKyAgICAgKiAgICAgICAgcHJvcGVydHkgdG8gY2hlY2suIE11c3QgYmUgCisgICAgICogICAgICAgIFVQcm9wZXJ0eS5CSU5BUllfU1RBUlQgJmx0Oz0gdHlwZSAmbHQ7IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQgb3IgCisgICAgICogICAgICAgIFVQcm9wZXJ0eS5JTlRfU1RBUlQgJmx0Oz0gdHlwZSAmbHQ7IFVQcm9wZXJ0eS5JTlRfTElNSVQuCisgICAgICogQHJldHVybiBNaW5pbXVtIHZhbHVlIHJldHVybmVkIGJ5IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShpbnQpIAorICAgICAqICAgICAgICAgZm9yIGEgVW5pY29kZSBwcm9wZXJ0eS4gMCBpZiB0aGUgcHJvcGVydHkgCisgICAgICogICAgICAgICBzZWxlY3RvciAndHlwZScgaXMgb3V0IG9mIHJhbmdlLgorICAgICAqIEBzZWUgVVByb3BlcnR5CisgICAgICogQHNlZSAjaGFzQmluYXJ5UHJvcGVydHkKKyAgICAgKiBAc2VlICNnZXRVbmljb2RlVmVyc2lvbgorICAgICAqIEBzZWUgI2dldEludFByb3BlcnR5TWF4VmFsdWUKKyAgICAgKiBAc2VlICNnZXRJbnRQcm9wZXJ0eVZhbHVlCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0SW50UHJvcGVydHlNaW5WYWx1ZShpbnQgdHlwZSkKKyAgICB7CisKKyAgICAgICAgcmV0dXJuIDA7IC8vIHVuZGVmaW5lZDsgYW5kOiBhbGwgb3RoZXIgcHJvcGVydGllcyBoYXZlIGEgbWluaW11bSB2YWx1ZSAKKyAgICAvLyBvZiAwCisgICAgfQorCisgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBtYXhpbXVtIHZhbHVlIGZvciBhbiBpbnRlZ2VyL2JpbmFyeSBVbmljb2RlIHByb3BlcnR5LgorICAgICAqIENhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1pblZhbHVlKGludCkKKyAgICAgKiB0byBhbGxvY2F0ZSBhcnJheXMgb2YgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0IG9yIHNpbWlsYXIuCisgICAgICogRXhhbXBsZXMgZm9yIG1pbi9tYXggdmFsdWVzIChmb3IgVW5pY29kZSAzLjIpOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+IFVQcm9wZXJ0eS5CSURJX0NMQVNTOiAgICAwLzE4IChVQ2hhcmFjdGVyRGlyZWN0aW9uLkxFRlRfVE9fUklHSFQvVUNoYXJhY3RlckRpcmVjdGlvbi5CT1VOREFSWV9ORVVUUkFMKQorICAgICAqIDxsaT4gVVByb3BlcnR5LlNDUklQVDogICAgICAgIDAvNDUgKFVTY3JpcHQuQ09NTU9OL1VTY3JpcHQuVEFHQkFOV0EpCisgICAgICogPGxpPiBVUHJvcGVydHkuSURFT0dSQVBISUM6ICAgMC8xICAoZmFsc2UvdHJ1ZSkKKyAgICAgKiA8L3VsPgorICAgICAqIEZvciB1bmRlZmluZWQgVVByb3BlcnR5IGNvbnN0YW50IHZhbHVlcywgbWluL21heCB2YWx1ZXMgd2lsbCBiZSAwLy0xLgorICAgICAqIEBwYXJhbSB0eXBlIFVQcm9wZXJ0eSBzZWxlY3RvciBjb25zdGFudCwgaWRlbnRpZmllcyB3aGljaCBiaW5hcnkgCisgICAgICogICAgICAgIHByb3BlcnR5IHRvIGNoZWNrLiBNdXN0IGJlIAorICAgICAqICAgICAgICBVUHJvcGVydHkuQklOQVJZX1NUQVJUICZsdDs9IHR5cGUgJmx0OyBVUHJvcGVydHkuQklOQVJZX0xJTUlUIG9yIAorICAgICAqICAgICAgICBVUHJvcGVydHkuSU5UX1NUQVJUICZsdDs9IHR5cGUgJmx0OyBVUHJvcGVydHkuSU5UX0xJTUlULgorICAgICAqIEByZXR1cm4gTWF4aW11bSB2YWx1ZSByZXR1cm5lZCBieSB1X2dldEludFByb3BlcnR5VmFsdWUgZm9yIGEgVW5pY29kZSAKKyAgICAgKiAgICAgICAgIHByb3BlcnR5LiAmbHQ7PSAwIGlmIHRoZSBwcm9wZXJ0eSBzZWxlY3RvciAndHlwZScgaXMgb3V0IG9mIHJhbmdlLgorICAgICAqIEBzZWUgVVByb3BlcnR5CisgICAgICogQHNlZSAjaGFzQmluYXJ5UHJvcGVydHkKKyAgICAgKiBAc2VlICNnZXRVbmljb2RlVmVyc2lvbgorICAgICAqIEBzZWUgI2dldEludFByb3BlcnR5TWF4VmFsdWUKKyAgICAgKiBAc2VlICNnZXRJbnRQcm9wZXJ0eVZhbHVlCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0SW50UHJvcGVydHlNYXhWYWx1ZShpbnQgdHlwZSkKKyAgICB7IAorICAgICAgICBpZiAodHlwZSA8IFVQcm9wZXJ0eS5CSU5BUllfU1RBUlQpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsgLy8gdW5kZWZpbmVkCisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKHR5cGUgPCBVUHJvcGVydHkuQklOQVJZX0xJTUlUKSB7CisgICAgICAgICAgICByZXR1cm4gMTsgLy8gbWF4aW11bSBUUlVFIGZvciBhbGwgYmluYXJ5IHByb3BlcnRpZXMKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSBpZiAodHlwZSA8IFVQcm9wZXJ0eS5JTlRfU1RBUlQpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsgLy8gdW5kZWZpbmVkCisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKHR5cGUgPCBVUHJvcGVydHkuSU5UX0xJTUlUKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkJJRElfQ0xBU1M6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5KT0lOSU5HX0dST1VQOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuSk9JTklOR19UWVBFOgorICAgICAgICAgICAgICAgIHJldHVybiBnQmRwLmdldE1heFZhbHVlKHR5cGUpOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuQkxPQ0s6CisgICAgICAgICAgICAgICAgcmV0dXJuIChQUk9QRVJUWV8uZ2V0TWF4VmFsdWVzKDApICYgQkxPQ0tfTUFTS18pID4+IEJMT0NLX1NISUZUXzsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkNBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1M6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5MRUFEX0NBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1M6CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5UUkFJTF9DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTOgorICAgICAgICAgICAgICAgIHJldHVybiAweGZmOyAvLyBUT0RPIGRvIHdlIG5lZWQgdG8gYmUgbW9yZSBwcmVjaXNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2V0dGluZyB0aGUgYWN0dWFsIG1heGltdW0/CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5ERUNPTVBPU0lUSU9OX1RZUEU6CisgICAgICAgICAgICAgICAgcmV0dXJuIFBST1BFUlRZXy5nZXRNYXhWYWx1ZXMoMikgJiBERUNPTVBPU0lUSU9OX1RZUEVfTUFTS187CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5FQVNUX0FTSUFOX1dJRFRIOgorICAgICAgICAgICAgICAgIHJldHVybiAoUFJPUEVSVFlfLmdldE1heFZhbHVlcygwKSAmIEVBU1RfQVNJQU5fTUFTS18pID4+IEVBU1RfQVNJQU5fU0hJRlRfOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWToKKyAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlckNhdGVnb3J5LkNIQVJfQ0FURUdPUllfQ09VTlQgLSAxOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTElORV9CUkVBSzoKKyAgICAgICAgICAgICAgICByZXR1cm4gKFBST1BFUlRZXy5nZXRNYXhWYWx1ZXMoMCkgJiBMSU5FX0JSRUFLX01BU0tfKSA+PiBMSU5FX0JSRUFLX1NISUZUXzsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5VTUVSSUNfVFlQRToKKyAgICAgICAgICAgICAgICByZXR1cm4gTnVtZXJpY1R5cGUuQ09VTlQgLSAxOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuU0NSSVBUOgorICAgICAgICAgICAgICAgIHJldHVybiBQUk9QRVJUWV8uZ2V0TWF4VmFsdWVzKDApICYgU0NSSVBUX01BU0tfOyAgIAorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuSEFOR1VMX1NZTExBQkxFX1RZUEU6CisgICAgICAgICAgICAgICAgcmV0dXJuIEhhbmd1bFN5bGxhYmxlVHlwZS5DT1VOVC0xOworICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZEX1FVSUNLX0NIRUNLOgorICAgICAgICAgICAgY2FzZSBVUHJvcGVydHkuTkZLRF9RVUlDS19DSEVDSzoKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsgLy8gWUVTIC0tIHRoZXNlIGFyZSBuZXZlciAibWF5YmUiLCBvbmx5ICJubyIgb3IgInllcyIKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GQ19RVUlDS19DSEVDSzoKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5GS0NfUVVJQ0tfQ0hFQ0s6CisgICAgICAgICAgICAgICAgcmV0dXJuIDI7IC8vIE1BWUJFCisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5HUkFQSEVNRV9DTFVTVEVSX0JSRUFLOgorICAgICAgICAgICAgICAgIHJldHVybiAoUFJPUEVSVFlfLmdldE1heFZhbHVlcygyKSAmIEdDQl9NQVNLKSA+PiBHQ0JfU0hJRlQ7CisgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5TRU5URU5DRV9CUkVBSzoKKyAgICAgICAgICAgICAgICByZXR1cm4gKFBST1BFUlRZXy5nZXRNYXhWYWx1ZXMoMikgJiBTQl9NQVNLKSA+PiBTQl9TSElGVDsKKyAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LldPUkRfQlJFQUs6CisgICAgICAgICAgICAgICAgcmV0dXJuIChQUk9QRVJUWV8uZ2V0TWF4VmFsdWVzKDIpICYgV0JfTUFTSykgPj4gV0JfU0hJRlQ7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiAtMTsgLy8gdW5kZWZpbmVkCisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7IC8vIHVuZGVmaW5lZAorICAgIH0KKworICAgIC8qKgorICAgICAqIFByb3ZpZGUgdGhlIGphdmEubGFuZy5DaGFyYWN0ZXIgZm9yRGlnaXQgQVBJLCBmb3IgY29udmVuaWVuY2UuCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNoYXIgZm9yRGlnaXQoaW50IGRpZ2l0LCBpbnQgcmFkaXgpIHsKKyAgICAgICAgcmV0dXJuIGphdmEubGFuZy5DaGFyYWN0ZXIuZm9yRGlnaXQoZGlnaXQsIHJhZGl4KTsKKyAgICB9CisKKyAgICAvLyBKREsgMS41IEFQSSBjb3ZlcmFnZQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuCisgICAgICogQHNlZSBVVEYxNiNMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2hhciBNSU5fSElHSF9TVVJST0dBVEUgPSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUU7CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBAc2VlIFVURjE2I0xFQURfU1VSUk9HQVRFX01BWF9WQUxVRQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIE1BWF9ISUdIX1NVUlJPR0FURSA9IFVURjE2LkxFQURfU1VSUk9HQVRFX01BWF9WQUxVRTsKKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBzZWUgVVRGMTYjVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIE1JTl9MT1dfU1VSUk9HQVRFID0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRTsKKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBzZWUgVVRGMTYjVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIE1BWF9MT1dfU1VSUk9HQVRFID0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRTsKKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBzZWUgVVRGMTYjU1VSUk9HQVRFX01JTl9WQUxVRQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIE1JTl9TVVJST0dBVEUgPSBVVEYxNi5TVVJST0dBVEVfTUlOX1ZBTFVFOworCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuCisgICAgICogQHNlZSBVVEYxNiNTVVJST0dBVEVfTUFYX1ZBTFVFCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgTUFYX1NVUlJPR0FURSA9IFVURjE2LlNVUlJPR0FURV9NQVhfVkFMVUU7CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4KKyAgICAgKiBAc2VlIFVURjE2I1NVUFBMRU1FTlRBUllfTUlOX1ZBTFVFCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAgTUlOX1NVUFBMRU1FTlRBUllfQ09ERV9QT0lOVCA9IFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFOworCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuCisgICAgICogQHNlZSBVVEYxNiNDT0RFUE9JTlRfTUFYX1ZBTFVFCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAgTUFYX0NPREVfUE9JTlQgPSBVVEYxNi5DT0RFUE9JTlRfTUFYX1ZBTFVFOworCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuCisgICAgICogQHNlZSBVVEYxNiNDT0RFUE9JTlRfTUlOX1ZBTFVFCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCAgTUlOX0NPREVfUE9JTlQgPSBVVEYxNi5DT0RFUE9JTlRfTUlOX1ZBTFVFOworCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuCisgICAgICogQHBhcmFtIGNwIHRoZSBjb2RlIHBvaW50IHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIGNwIGlzIGEgdmFsaWQgY29kZSBwb2ludAorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzVmFsaWRDb2RlUG9pbnQoaW50IGNwKSB7CisgICAgICAgIHJldHVybiBjcCA+PSAwICYmIGNwIDw9IE1BWF9DT0RFX1BPSU5UOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBwYXJhbSBjcCB0aGUgY29kZSBwb2ludCB0byBjaGVjaworICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjcCBpcyBhIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludAorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzU3VwcGxlbWVudGFyeUNvZGVQb2ludChpbnQgY3ApIHsKKyAgICAgICAgcmV0dXJuIGNwID49IFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFCisgICAgICAgICAgICAmJiBjcCA8PSBVVEYxNi5DT0RFUE9JTlRfTUFYX1ZBTFVFOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBwYXJhbSBjaCB0aGUgY2hhciB0byBjaGVjaworICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjaCBpcyBhIGhpZ2ggKGxlYWQpIHN1cnJvZ2F0ZQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzSGlnaFN1cnJvZ2F0ZShjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBjaCA+PSBNSU5fSElHSF9TVVJST0dBVEUgJiYgY2ggPD0gTUFYX0hJR0hfU1VSUk9HQVRFOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLgorICAgICAqIEBwYXJhbSBjaCB0aGUgY2hhciB0byBjaGVjaworICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjaCBpcyBhIGxvdyAodHJhaWwpIHN1cnJvZ2F0ZQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTG93U3Vycm9nYXRlKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGNoID49IE1JTl9MT1dfU1VSUk9HQVRFICYmIGNoIDw9IE1BWF9MT1dfU1VSUk9HQVRFOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgUmV0dXJuIHRydWUgaWYgdGhlIGNoYXJzCisgICAgICogZm9ybSBhIHZhbGlkIHN1cnJvZ2F0ZSBwYWlyLgorICAgICAqIEBwYXJhbSBoaWdoIHRoZSBoaWdoIChsZWFkKSBjaGFyCisgICAgICogQHBhcmFtIGxvdyB0aGUgbG93ICh0cmFpbCkgY2hhcgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBoaWdoLCBsb3cgZm9ybSBhIHN1cnJvZ2F0ZSBwYWlyCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNTdXJyb2dhdGVQYWlyKGNoYXIgaGlnaCwgY2hhciBsb3cpIHsKKyAgICAgICAgcmV0dXJuIGlzSGlnaFN1cnJvZ2F0ZShoaWdoKSAmJiBpc0xvd1N1cnJvZ2F0ZShsb3cpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgUmV0dXJuIHRoZSBudW1iZXIgb2YgY2hhcnMgbmVlZGVkCisgICAgICogdG8gcmVwcmVzZW50IHRoZSBjb2RlIHBvaW50LiAgVGhpcyBkb2VzIG5vdCBjaGVjayB0aGUKKyAgICAgKiBjb2RlIHBvaW50IGZvciB2YWxpZGl0eS4KKyAgICAgKiBAcGFyYW0gY3AgdGhlIGNvZGUgcG9pbnQgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgY2hhcnMgbmVlZGVkIHRvIHJlcHJlc2VudCB0aGUgY29kZSBwb2ludAorICAgICAqIEBzZWUgVVRGMTYjZ2V0Q2hhckNvdW50CisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjaGFyQ291bnQoaW50IGNwKSB7CisgICAgICAgIHJldHVybiBVVEYxNi5nZXRDaGFyQ291bnQoY3ApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgUmV0dXJuIHRoZSBjb2RlIHBvaW50IHJlcHJlc2VudGVkIGJ5CisgICAgICogdGhlIGNoYXJhY3RlcnMuICBUaGlzIGRvZXMgbm90IGNoZWNrIHRoZSBzdXJyb2dhdGUgcGFpciBmb3IgdmFsaWRpdHkuCisgICAgICogQHBhcmFtIGhpZ2ggdGhlIGhpZ2ggKGxlYWQpIHN1cnJvZ2F0ZQorICAgICAqIEBwYXJhbSBsb3cgdGhlIGxvdyAodHJhaWwpIHN1cnJvZ2F0ZQorICAgICAqIEByZXR1cm4gdGhlIGNvZGUgcG9pbnQgZm9ybWVkIGJ5IHRoZSBzdXJyb2dhdGUgcGFpcgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgdG9Db2RlUG9pbnQoY2hhciBoaWdoLCBjaGFyIGxvdykgeworICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoaGlnaCwgbG93KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4gIFJldHVybiB0aGUgY29kZSBwb2ludCBhdCBpbmRleC4KKyAgICAgKiA8YnIvPjxiPk5vdGU8L2I+OiB0aGUgc2VtYW50aWNzIG9mIHRoaXMgQVBJIGlzIGRpZmZlcmVudCBmcm9tIHRoZSByZWxhdGVkIFVURjE2CisgICAgICogQVBJLiAgVGhpcyBleGFtaW5lcyBvbmx5IHRoZSBjaGFyYWN0ZXJzIGF0IGluZGV4IGFuZCBpbmRleCsxLgorICAgICAqIEBwYXJhbSBzZXEgdGhlIGNoYXJhY3RlcnMgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvciBvbmx5IGNoYXIgZm9ybWluZyB0aGUgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gdGhlIGNvZGUgcG9pbnQgYXQgdGhlIGluZGV4CisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY29kZVBvaW50QXQoQ2hhclNlcXVlbmNlIHNlcSwgaW50IGluZGV4KSB7CisvLyNlbHNlCisvLyMjICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvZGVQb2ludEF0KFN0cmluZyBzZXEsIGludCBpbmRleCkgeworLy8jZW5kaWYKKyAgICAgICAgY2hhciBjMSA9IHNlcS5jaGFyQXQoaW5kZXgrKyk7CisgICAgICAgIGlmIChpc0hpZ2hTdXJyb2dhdGUoYzEpKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPCBzZXEubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMyID0gc2VxLmNoYXJBdChpbmRleCk7CisgICAgICAgICAgICAgICAgaWYgKGlzTG93U3Vycm9nYXRlKGMyKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9Db2RlUG9pbnQoYzEsIGMyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGMxOworICAgIH0KKy8vI2lmZGVmIEZPVU5EQVRJT04KKy8vIyMgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY29kZVBvaW50QXQoU3RyaW5nQnVmZmVyIHNlcSwgaW50IGluZGV4KSB7CisvLyMjICAgICAgICByZXR1cm4gY29kZVBvaW50QXQoc2VxLnRvU3RyaW5nKCksIGluZGV4KTsKKy8vIyMgICAgfQorLy8jZW5kaWYKKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgUmV0dXJuIHRoZSBjb2RlIHBvaW50IGF0IGluZGV4LgorICAgICAqIDxici8+PGI+Tm90ZTwvYj46IHRoZSBzZW1hbnRpY3Mgb2YgdGhpcyBBUEkgaXMgZGlmZmVyZW50IGZyb20gdGhlIHJlbGF0ZWQgVVRGMTYKKyAgICAgKiBBUEkuICBUaGlzIGV4YW1pbmVzIG9ubHkgdGhlIGNoYXJhY3RlcnMgYXQgaW5kZXggYW5kIGluZGV4KzEuCisgICAgICogQHBhcmFtIHRleHQgdGhlIGNoYXJhY3RlcnMgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvciBvbmx5IGNoYXIgZm9ybWluZyB0aGUgY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gdGhlIGNvZGUgcG9pbnQgYXQgdGhlIGluZGV4CisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjb2RlUG9pbnRBdChjaGFyW10gdGV4dCwgaW50IGluZGV4KSB7CisgICAgICAgIGNoYXIgYzEgPSB0ZXh0W2luZGV4KytdOworICAgICAgICBpZiAoaXNIaWdoU3Vycm9nYXRlKGMxKSkgeworICAgICAgICAgICAgaWYgKGluZGV4IDwgdGV4dC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMyID0gdGV4dFtpbmRleF07CisgICAgICAgICAgICAgICAgaWYgKGlzTG93U3Vycm9nYXRlKGMyKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9Db2RlUG9pbnQoYzEsIGMyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGMxOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgUmV0dXJuIHRoZSBjb2RlIHBvaW50IGF0IGluZGV4LgorICAgICAqIDxici8+PGI+Tm90ZTwvYj46IHRoZSBzZW1hbnRpY3Mgb2YgdGhpcyBBUEkgaXMgZGlmZmVyZW50IGZyb20gdGhlIHJlbGF0ZWQgVVRGMTYKKyAgICAgKiBBUEkuICBUaGlzIGV4YW1pbmVzIG9ubHkgdGhlIGNoYXJhY3RlcnMgYXQgaW5kZXggYW5kIGluZGV4KzEuCisgICAgICogQHBhcmFtIHRleHQgdGhlIGNoYXJhY3RlcnMgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvciBvbmx5IGNoYXIgZm9ybWluZyB0aGUgY29kZSBwb2ludAorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgbGltaXQgb2YgdGhlIHZhbGlkIHRleHQKKyAgICAgKiBAcmV0dXJuIHRoZSBjb2RlIHBvaW50IGF0IHRoZSBpbmRleAorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgY29kZVBvaW50QXQoY2hhcltdIHRleHQsIGludCBpbmRleCwgaW50IGxpbWl0KSB7CisgICAgaWYgKGluZGV4ID49IGxpbWl0IHx8IGxpbWl0ID4gdGV4dC5sZW5ndGgpIHsKKyAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oKTsKKyAgICB9CisgICAgICAgIGNoYXIgYzEgPSB0ZXh0W2luZGV4KytdOworICAgICAgICBpZiAoaXNIaWdoU3Vycm9nYXRlKGMxKSkgeworICAgICAgICAgICAgaWYgKGluZGV4IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMyID0gdGV4dFtpbmRleF07CisgICAgICAgICAgICAgICAgaWYgKGlzTG93U3Vycm9nYXRlKGMyKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9Db2RlUG9pbnQoYzEsIGMyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGMxOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgUmV0dXJuIHRoZSBjb2RlIHBvaW50IGJlZm9yZSBpbmRleC4KKyAgICAgKiA8YnIvPjxiPk5vdGU8L2I+OiB0aGUgc2VtYW50aWNzIG9mIHRoaXMgQVBJIGlzIGRpZmZlcmVudCBmcm9tIHRoZSByZWxhdGVkIFVURjE2CisgICAgICogQVBJLiAgVGhpcyBleGFtaW5lcyBvbmx5IHRoZSBjaGFyYWN0ZXJzIGF0IGluZGV4LTEgYW5kIGluZGV4LTIuCisgICAgICogQHBhcmFtIHNlcSB0aGUgY2hhcmFjdGVycyB0byBjaGVjaworICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3Qgb3Igb25seSBjaGFyIGZvcm1pbmcgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIHRoZSBjb2RlIHBvaW50IGJlZm9yZSB0aGUgaW5kZXgKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjb2RlUG9pbnRCZWZvcmUoQ2hhclNlcXVlbmNlIHNlcSwgaW50IGluZGV4KSB7CisvLyNlbHNlCisvLyMjICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvZGVQb2ludEJlZm9yZShTdHJpbmcgc2VxLCBpbnQgaW5kZXgpIHsKKy8vI2VuZGlmCisgICAgICAgIGNoYXIgYzIgPSBzZXEuY2hhckF0KC0taW5kZXgpOworICAgICAgICBpZiAoaXNMb3dTdXJyb2dhdGUoYzIpKSB7CisgICAgICAgICAgICBpZiAoaW5kZXggPiAwKSB7CisgICAgICAgICAgICAgICAgY2hhciBjMSA9IHNlcS5jaGFyQXQoLS1pbmRleCk7CisgICAgICAgICAgICAgICAgaWYgKGlzSGlnaFN1cnJvZ2F0ZShjMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvQ29kZVBvaW50KGMxLCBjMik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjMjsKKyAgICB9CisvLyNpZmRlZiBGT1VOREFUSU9OCisvLyMjICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGNvZGVQb2ludEJlZm9yZShTdHJpbmdCdWZmZXIgc2VxLCBpbnQgaW5kZXgpIHsKKy8vIyMgICAgICAgIHJldHVybiBjb2RlUG9pbnRCZWZvcmUoc2VxLnRvU3RyaW5nKCksIGluZGV4KTsKKy8vIyMgICAgfQorLy8jZW5kaWYKKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgUmV0dXJuIHRoZSBjb2RlIHBvaW50IGJlZm9yZSBpbmRleC4KKyAgICAgKiA8YnIvPjxiPk5vdGU8L2I+OiB0aGUgc2VtYW50aWNzIG9mIHRoaXMgQVBJIGlzIGRpZmZlcmVudCBmcm9tIHRoZSByZWxhdGVkIFVURjE2CisgICAgICogQVBJLiAgVGhpcyBleGFtaW5lcyBvbmx5IHRoZSBjaGFyYWN0ZXJzIGF0IGluZGV4LTEgYW5kIGluZGV4LTIuCisgICAgICogQHBhcmFtIHRleHQgdGhlIGNoYXJhY3RlcnMgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IG9yIG9ubHkgY2hhciBmb3JtaW5nIHRoZSBjb2RlIHBvaW50CisgICAgICogQHJldHVybiB0aGUgY29kZSBwb2ludCBiZWZvcmUgdGhlIGluZGV4CisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjb2RlUG9pbnRCZWZvcmUoY2hhcltdIHRleHQsIGludCBpbmRleCkgeworICAgICAgICBjaGFyIGMyID0gdGV4dFstLWluZGV4XTsKKyAgICAgICAgaWYgKGlzTG93U3Vycm9nYXRlKGMyKSkgeworICAgICAgICAgICAgaWYgKGluZGV4ID4gMCkgeworICAgICAgICAgICAgICAgIGNoYXIgYzEgPSB0ZXh0Wy0taW5kZXhdOworICAgICAgICAgICAgICAgIGlmIChpc0hpZ2hTdXJyb2dhdGUoYzEpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b0NvZGVQb2ludChjMSwgYzIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYzI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyAxLjUgQVBJLCBmb3IgY29udmVuaWVuY2UuICBSZXR1cm4gdGhlIGNvZGUgcG9pbnQgYmVmb3JlIGluZGV4LgorICAgICAqIDxici8+PGI+Tm90ZTwvYj46IHRoZSBzZW1hbnRpY3Mgb2YgdGhpcyBBUEkgaXMgZGlmZmVyZW50IGZyb20gdGhlIHJlbGF0ZWQgVVRGMTYKKyAgICAgKiBBUEkuICBUaGlzIGV4YW1pbmVzIG9ubHkgdGhlIGNoYXJhY3RlcnMgYXQgaW5kZXgtMSBhbmQgaW5kZXgtMi4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgY2hhcmFjdGVycyB0byBjaGVjaworICAgICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3Qgb3Igb25seSBjaGFyIGZvcm1pbmcgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIHN0YXJ0IG9mIHRoZSB2YWxpZCB0ZXh0CisgICAgICogQHJldHVybiB0aGUgY29kZSBwb2ludCBiZWZvcmUgdGhlIGluZGV4CisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBjb2RlUG9pbnRCZWZvcmUoY2hhcltdIHRleHQsIGludCBpbmRleCwgaW50IGxpbWl0KSB7CisgICAgaWYgKGluZGV4IDw9IGxpbWl0IHx8IGxpbWl0IDwgMCkgeworICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigpOworICAgIH0KKyAgICAgICAgY2hhciBjMiA9IHRleHRbLS1pbmRleF07CisgICAgICAgIGlmIChpc0xvd1N1cnJvZ2F0ZShjMikpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA+IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgY2hhciBjMSA9IHRleHRbLS1pbmRleF07CisgICAgICAgICAgICAgICAgaWYgKGlzSGlnaFN1cnJvZ2F0ZShjMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvQ29kZVBvaW50KGMxLCBjMik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjMjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIDEuNSBBUEksIGZvciBjb252ZW5pZW5jZS4gIFdyaXRlcyB0aGUgY2hhcnMgcmVwcmVzZW50aW5nIHRoZQorICAgICAqIGNvZGUgcG9pbnQgaW50byB0aGUgZGVzdGluYXRpb24gYXQgdGhlIGdpdmVuIGluZGV4LgorICAgICAqIEBwYXJhbSBjcCB0aGUgY29kZSBwb2ludCB0byBjb252ZXJ0CisgICAgICogQHBhcmFtIGRzdCB0aGUgZGVzdGluYXRpb24gYXJyYXkgaW50byB3aGljaCB0byBwdXQgdGhlIGNoYXIocykgcmVwcmVzZW50aW5nIHRoZSBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIGRzdEluZGV4IHRoZSBpbmRleCBhdCB3aGljaCB0byBwdXQgdGhlIGZpcnN0IChvciBvbmx5KSBjaGFyCisgICAgICogQHJldHVybiB0aGUgY291bnQgb2YgdGhlIG51bWJlciBvZiBjaGFycyB3cml0dGVuICgxIG9yIDIpCisgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgY3AgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludAorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgdG9DaGFycyhpbnQgY3AsIGNoYXJbXSBkc3QsIGludCBkc3RJbmRleCkgeworICAgICAgICBpZiAoY3AgPj0gMCkgeworICAgICAgICAgICAgaWYgKGNwIDwgTUlOX1NVUFBMRU1FTlRBUllfQ09ERV9QT0lOVCkgeworICAgICAgICAgICAgICAgIGRzdFtkc3RJbmRleF0gPSAoY2hhciljcDsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjcCA8PSBNQVhfQ09ERV9QT0lOVCkgeworICAgICAgICAgICAgICAgIGRzdFtkc3RJbmRleF0gPSBVVEYxNi5nZXRMZWFkU3Vycm9nYXRlKGNwKTsKKyAgICAgICAgICAgICAgICBkc3RbZHN0SW5kZXgrMV0gPSBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjcCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgMS41IEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgUmV0dXJucyBhIGNoYXIgYXJyYXkKKyAgICAgKiByZXByZXNlbnRpbmcgdGhlIGNvZGUgcG9pbnQuCisgICAgICogQHBhcmFtIGNwIHRoZSBjb2RlIHBvaW50IHRvIGNvbnZlcnQKKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGNoYXIocykgcmVwcmVzZW50aW5nIHRoZSBjb2RlIHBvaW50CisgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgY3AgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludAorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyW10gdG9DaGFycyhpbnQgY3ApIHsKKyAgICAgICAgaWYgKGNwID49IDApIHsKKyAgICAgICAgICAgIGlmIChjcCA8IE1JTl9TVVBQTEVNRU5UQVJZX0NPREVfUE9JTlQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGNoYXJbXSB7IChjaGFyKWNwIH07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3AgPD0gTUFYX0NPREVfUE9JTlQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmdldExlYWRTdXJyb2dhdGUoY3ApLAorICAgICAgICAgICAgICAgICAgICBVVEYxNi5nZXRUcmFpbFN1cnJvZ2F0ZShjcCkKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgUmV0dXJuIGEgYnl0ZSByZXByZXNlbnRpbmcgdGhlIGRpcmVjdGlvbmFsaXR5IG9mCisgICAgICogdGhlIGNoYXJhY3Rlci4KKyAgICAgKiA8YnIvPjxiPk5vdGU8L2I+OiBVbmxpa2UgdGhlIEpESywgdGhpcyByZXR1cm5zIERJUkVDVElPTkFMSVRZX0xFRlRfVE9fUklHSFQgZm9yIHVuZGVmaW5lZCBvcgorICAgICAqIG91dC1vZi1ib3VuZHMgY2hhcmFjdGVycy4gIDxici8+PGI+Tm90ZTwvYj46IFRoZSByZXR1cm4gdmFsdWUgbXVzdCBiZQorICAgICAqIHRlc3RlZCB1c2luZyB0aGUgY29uc3RhbnRzIGRlZmluZWQgaW4ge0BsaW5rIFVDaGFyYWN0ZXJFbnVtcy5FQ2hhcmFjdGVyRGlyZWN0aW9ufQorICAgICAqIHNpbmNlIHRoZSB2YWx1ZXMgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBvbmVzIGRlZmluZWQgYnkgPGNvZGU+amF2YS5sYW5nLkNoYXJhY3RlcjwvY29kZT4uCisgICAgICogQHBhcmFtIGNwIHRoZSBjb2RlIHBvaW50IHRvIGNoZWNrCisgICAgICogQHJldHVybiB0aGUgZGlyZWN0aW9uYWxpdHkgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiBAc2VlICNnZXREaXJlY3Rpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYnl0ZSBnZXREaXJlY3Rpb25hbGl0eShpbnQgY3ApCisgICAgeworICAgICAgICByZXR1cm4gKGJ5dGUpZ2V0RGlyZWN0aW9uKGNwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgQ291bnQgdGhlIG51bWJlciBvZiBjb2RlIHBvaW50cyBpbiB0aGUgcmFuZ2Ugb2YgdGV4dC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgY2hhcmFjdGVycyB0byBjaGVjaworICAgICAqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBsaW1pdCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgaW4gdGhlIHJhbmdlCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29kZVBvaW50Q291bnQoQ2hhclNlcXVlbmNlIHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisvLyNlbHNlCisvLyMjICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvZGVQb2ludENvdW50KFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworLy8jZW5kaWYKKyAgICAgICAgaWYgKHN0YXJ0IDwgMCB8fCBsaW1pdCA8IHN0YXJ0IHx8IGxpbWl0ID4gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oInN0YXJ0ICgiICsgc3RhcnQgKworICAgICAgICAgICAgICAgICIpIG9yIGxpbWl0ICgiICsgbGltaXQgKworICAgICAgICAgICAgICAgICIpIGludmFsaWQgb3Igb3V0IG9mIHJhbmdlIDAsICIgKyB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBsZW4gPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICB3aGlsZSAobGltaXQgPiBzdGFydCkgeworICAgICAgICAgICAgY2hhciBjaCA9IHRleHQuY2hhckF0KC0tbGltaXQpOworICAgICAgICAgICAgd2hpbGUgKGNoID49IE1JTl9MT1dfU1VSUk9HQVRFICYmIGNoIDw9IE1BWF9MT1dfU1VSUk9HQVRFICYmIGxpbWl0ID4gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICBjaCA9IHRleHQuY2hhckF0KC0tbGltaXQpOworICAgICAgICAgICAgICAgIGlmIChjaCA+PSBNSU5fSElHSF9TVVJST0dBVEUgJiYgY2ggPD0gTUFYX0hJR0hfU1VSUk9HQVRFKSB7CisgICAgICAgICAgICAgICAgICAgIC0tbGVuOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxlbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3ZlciB0aGUgSkRLIEFQSSwgZm9yIGNvbnZlbmllbmNlLiAgQ291bnQgdGhlIG51bWJlciBvZiBjb2RlIHBvaW50cyBpbiB0aGUgcmFuZ2Ugb2YgdGV4dC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgY2hhcmFjdGVycyB0byBjaGVjaworICAgICAqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBsaW1pdCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgaW4gdGhlIHJhbmdlCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb2RlUG9pbnRDb3VudChjaGFyW10gdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgaWYgKHN0YXJ0IDwgMCB8fCBsaW1pdCA8IHN0YXJ0IHx8IGxpbWl0ID4gdGV4dC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCJzdGFydCAoIiArIHN0YXJ0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIG9yIGxpbWl0ICgiICsgbGltaXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgaW52YWxpZCBvciBvdXQgb2YgcmFuZ2UgMCwgIiArIHRleHQubGVuZ3RoKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBsZW4gPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICB3aGlsZSAobGltaXQgPiBzdGFydCkgeworICAgICAgICAgICAgY2hhciBjaCA9IHRleHRbLS1saW1pdF07CisgICAgICAgICAgICB3aGlsZSAoY2ggPj0gTUlOX0xPV19TVVJST0dBVEUgJiYgY2ggPD0gTUFYX0xPV19TVVJST0dBVEUgJiYgbGltaXQgPiBzdGFydCkgeworICAgICAgICAgICAgICAgIGNoID0gdGV4dFstLWxpbWl0XTsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPj0gTUlOX0hJR0hfU1VSUk9HQVRFICYmIGNoIDw9IE1BWF9ISUdIX1NVUlJPR0FURSkgeworICAgICAgICAgICAgICAgICAgICAtLWxlbjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBsZW47CisgICAgfQorCisgICAgLyoqCisgICAgICogQ292ZXIgdGhlIEpESyBBUEksIGZvciBjb252ZW5pZW5jZS4gIEFkanVzdCB0aGUgY2hhciBpbmRleCBieSBhIGNvZGUgcG9pbnQgb2Zmc2V0LgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBjaGFyYWN0ZXJzIHRvIGNoZWNrCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCB0byBhZGp1c3QKKyAgICAgKiBAcGFyYW0gY29kZVBvaW50T2Zmc2V0IHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgYnkgd2hpY2ggdG8gb2Zmc2V0IHRoZSBpbmRleAorICAgICAqIEByZXR1cm4gdGhlIGFkanVzdGVkIGluZGV4CisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgcHVibGljIHN0YXRpYyBpbnQgb2Zmc2V0QnlDb2RlUG9pbnRzKENoYXJTZXF1ZW5jZSB0ZXh0LCBpbnQgaW5kZXgsIGludCBjb2RlUG9pbnRPZmZzZXQpIHsKKy8vI2Vsc2UKKy8vIyMgICAgcHVibGljIHN0YXRpYyBpbnQgb2Zmc2V0QnlDb2RlUG9pbnRzKFN0cmluZyB0ZXh0LCBpbnQgaW5kZXgsIGludCBjb2RlUG9pbnRPZmZzZXQpIHsKKy8vI2VuZGlmCisgICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPiB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigiaW5kZXggKCAiICsgaW5kZXggKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgb3V0IG9mIHJhbmdlIDAsICIgKyB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb2RlUG9pbnRPZmZzZXQgPCAwKSB7CisgICAgICAgICAgICB3aGlsZSAoKytjb2RlUG9pbnRPZmZzZXQgPD0gMCkgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSB0ZXh0LmNoYXJBdCgtLWluZGV4KTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoY2ggPj0gTUlOX0xPV19TVVJST0dBVEUgJiYgY2ggPD0gTUFYX0xPV19TVVJST0dBVEUgJiYgaW5kZXggPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNoID0gdGV4dC5jaGFyQXQoLS1pbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8IE1JTl9ISUdIX1NVUlJPR0FURSB8fCBjaCA+IE1BWF9ISUdIX1NVUlJPR0FURSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCsrY29kZVBvaW50T2Zmc2V0ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleCsxOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGxpbWl0ID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgIHdoaWxlICgtLWNvZGVQb2ludE9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgY2hhciBjaCA9IHRleHQuY2hhckF0KGluZGV4KyspOworICAgICAgICAgICAgICAgIHdoaWxlIChjaCA+PSBNSU5fSElHSF9TVVJST0dBVEUgJiYgY2ggPD0gTUFYX0hJR0hfU1VSUk9HQVRFICYmIGluZGV4IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2ggPSB0ZXh0LmNoYXJBdChpbmRleCsrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoIDwgTUlOX0xPV19TVVJST0dBVEUgfHwgY2ggPiBNQVhfTE9XX1NVUlJPR0FURSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC0tY29kZVBvaW50T2Zmc2V0IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmRleC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIHRoZSBKREsgQVBJLCBmb3IgY29udmVuaWVuY2UuICBBZGp1c3QgdGhlIGNoYXIgaW5kZXggYnkgYSBjb2RlIHBvaW50IG9mZnNldC4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgY2hhcmFjdGVycyB0byBjaGVjaworICAgICAqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlIHRvIGNoZWNrCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBsZW5ndGggb2YgdGhlIHJhbmdlIHRvIGNoZWNrCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCB0byBhZGp1c3QKKyAgICAgKiBAcGFyYW0gY29kZVBvaW50T2Zmc2V0IHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgYnkgd2hpY2ggdG8gb2Zmc2V0IHRoZSBpbmRleAorICAgICAqIEByZXR1cm4gdGhlIGFkanVzdGVkIGluZGV4CisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBvZmZzZXRCeUNvZGVQb2ludHMoY2hhcltdIHRleHQsIGludCBzdGFydCwgaW50IGNvdW50LCBpbnQgaW5kZXgsIGludCBjb2RlUG9pbnRPZmZzZXQpIHsKKyAgICAgICAgaW50IGxpbWl0ID0gc3RhcnQgKyBjb3VudDsKKyAgICAgICAgaWYgKHN0YXJ0IDwgMCB8fCBsaW1pdCA8IHN0YXJ0IHx8IGxpbWl0ID4gdGV4dC5sZW5ndGggfHwgaW5kZXggPCBzdGFydCB8fCBpbmRleCA+IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigiaW5kZXggKCAiICsgaW5kZXggKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgb3V0IG9mIHJhbmdlICIgKyBzdGFydCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCAiICsgbGltaXQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpbiBhcnJheSAwLCAiICsgdGV4dC5sZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNvZGVQb2ludE9mZnNldCA8IDApIHsKKyAgICAgICAgICAgIHdoaWxlICgrK2NvZGVQb2ludE9mZnNldCA8PSAwKSB7CisgICAgICAgICAgICAgICAgY2hhciBjaCA9IHRleHRbLS1pbmRleF07CisgICAgICAgICAgICAgICAgaWYgKGluZGV4IDwgc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oImluZGV4ICggIiArIGluZGV4ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgPCBzdGFydCAoIiArIHN0YXJ0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUgKGNoID49IE1JTl9MT1dfU1VSUk9HQVRFICYmIGNoIDw9IE1BWF9MT1dfU1VSUk9HQVRFICYmIGluZGV4ID4gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2ggPSB0ZXh0Wy0taW5kZXhdOworICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPCBNSU5fSElHSF9TVVJST0dBVEUgfHwgY2ggPiBNQVhfSElHSF9TVVJST0dBVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2NvZGVQb2ludE9mZnNldCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXgrMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHdoaWxlICgtLWNvZGVQb2ludE9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgY2hhciBjaCA9IHRleHRbaW5kZXgrK107CisgICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oImluZGV4ICggIiArIGluZGV4ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgPiBsaW1pdCAoIiArIGxpbWl0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUgKGNoID49IE1JTl9ISUdIX1NVUlJPR0FURSAmJiBjaCA8PSBNQVhfSElHSF9TVVJST0dBVEUgJiYgaW5kZXggPCBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBjaCA9IHRleHRbaW5kZXgrK107CisgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8IE1JTl9MT1dfU1VSUk9HQVRFIHx8IGNoID4gTUFYX0xPV19TVVJST0dBVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtLWNvZGVQb2ludE9mZnNldCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXgtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBpbmRleDsKKyAgICB9CisKKyAgICAvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogRGF0YWJhc2Ugc3RvcmluZyB0aGUgc2V0cyBvZiBjaGFyYWN0ZXIgbmFtZQorICAgICAqLworICAgIHN0YXRpYyBVQ2hhcmFjdGVyTmFtZSBOQU1FXyA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBTaW5nbGV0b24gb2JqZWN0IGVuY2Fwc3VsYXRpbmcgdGhlIGltcG9ydGVkIHBuYW1lcy5pY3UgcHJvcGVydHkgYWxpYXNlcworICAgICAqLworICAgIHN0YXRpYyBVUHJvcGVydHlBbGlhc2VzIFBOQU1FU18gPSBudWxsOworICAgICAgCisgICAgLy8gYmxvY2sgdG8gaW5pdGlhbGlzZSBuYW1lIGRhdGFiYXNlIGFuZCB1bmljb2RlIDEuMCBkYXRhIAorICAgIHN0YXRpYyB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBQTkFNRVNfID0gbmV3IFVQcm9wZXJ0eUFsaWFzZXMoKTsKKyAgICAgICAgICAgIE5BTUVfID0gVUNoYXJhY3Rlck5hbWUuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCksIiIsIiIpOworICAgICAgICAgICAgLy90aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAvLyBET05PVCB0aHJvdyBhbiBleGNlcHRpb24KKyAgICAgICAgICAgIC8vIHdlIG1pZ2h0IGJlIGJ1aWxkaW5nIElDVSBtb2R1bGFybHkgd290aG91dCBuYW1lcy5pY3UgYW5kCisgICAgICAgICAgICAvLyBwbmFtZXMuaWN1CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8vIHByaXZhdGUgdmFyaWFibGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEYXRhYmFzZSBzdG9yaW5nIHRoZSBzZXRzIG9mIGNoYXJhY3RlciBwcm9wZXJ0eQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXJQcm9wZXJ0eSBQUk9QRVJUWV87CisgICAgLyoqCisgICAgICogRm9yIG9wdGltaXphdGlvbgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXJbXSBQUk9QRVJUWV9UUklFX0lOREVYXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyW10gUFJPUEVSVFlfVFJJRV9EQVRBXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUFJPUEVSVFlfSU5JVElBTF9WQUxVRV87CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBVQ2FzZVByb3BzIGdDc3A7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVUJpRGlQcm9wcyBnQmRwOworCisgICAgLy8gYmxvY2sgdG8gaW5pdGlhbGlzZSBjaGFyYWN0ZXIgcHJvcGVydHkgZGF0YWJhc2UKKyAgICBzdGF0aWMKKyAgICB7CisgICAgICAgIHRyeQorICAgICAgICB7CisgICAgICAgICAgICBQUk9QRVJUWV8gPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIFBST1BFUlRZX1RSSUVfSU5ERVhfID0gUFJPUEVSVFlfLm1fdHJpZUluZGV4XzsKKyAgICAgICAgICAgIFBST1BFUlRZX1RSSUVfREFUQV8gPSBQUk9QRVJUWV8ubV90cmllRGF0YV87CisgICAgICAgICAgICBQUk9QRVJUWV9JTklUSUFMX1ZBTFVFXyA9IFBST1BFUlRZXy5tX3RyaWVJbml0aWFsVmFsdWVfOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkKKyAgICAgICAgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwiIiwiIik7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBJbiBJQ1U0SiAzLjIsIG1vc3QgVW5pY29kZSBwcm9wZXJ0aWVzIHdlcmUgbG9hZGVkIGZyb20gdXByb3BzLmljdS4KKyAgICAgICAgICogSUNVNEogMy40IGFkZHMgdWNhc2UuaWN1IGZvciBjYXNlIG1hcHBpbmcgcHJvcGVydGllcyBhbmQKKyAgICAgICAgICogdWJpZGkuaWN1IGZvciBiaWRpL3NoYXBpbmcgcHJvcGVydGllcyBhbmQKKyAgICAgICAgICogcmVtb3ZlcyBjYXNlL2JpZGkvc2hhcGluZyBwcm9wZXJ0aWVzIGZyb20gdXByb3BzLmljdS4KKyAgICAgICAgICoKKyAgICAgICAgICogTG9hZGluZyBvZiB1cHJvcHMuaWN1IHdhcyBhbHdheXMgZG9uZSBkdXJpbmcgY2xhc3MgbG9hZGluZyBvZiBVQ2hhcmFjdGVyLmNsYXNzLgorICAgICAgICAgKiBJbiBvcmRlciB0byBtYWludGFpbiBwZXJmb3JtYW5jZSBmb3IgYWxsIHN1Y2ggcHJvcGVydGllcywKKyAgICAgICAgICogdWNhc2UuaWN1IGFuZCB1YmlkaS5pY3UgYXJlIGFsc28gbG9hZGVkIGR1cmluZyBjbGFzcyBsb2FkaW5nIG9mIFVDaGFyYWN0ZXIuY2xhc3MuCisgICAgICAgICAqIEl0IHdpbGwgbm90IGZhaWwgaWYgdGhleSBhcmUgbWlzc2luZy4KKyAgICAgICAgICogVGhlc2UgZGF0YSBpdGVtcyBhcmUgbG9hZGVkIGVhcmx5IHRvIGF2b2lkIGhhdmluZyB0byBzeW5jaHJvbml6ZSBhY2Nlc3MgdG8gdGhlbSwKKyAgICAgICAgICogZm9yIHRocmVhZCBzYWZldHkgYW5kIHBlcmZvcm1hbmNlLgorICAgICAgICAgKgorICAgICAgICAgKiBXZSB0cnkgdG8gbG9hZCB0aGVzZSBkYXRhIGl0ZW1zIGF0IG1vc3Qgb25jZS4KKyAgICAgICAgICogSWYgaXQgd29ya3MsIHdlIHVzZSB0aGUgcmVzdWx0aW5nIHNpbmdsZXRvbiBvYmplY3QuCisgICAgICAgICAqIElmIGl0IGZhaWxzLCB0aGVuIHdlIGdldCBhIGR1bW15IG9iamVjdCwgd2hpY2ggYWx3YXlzIHdvcmtzIHVubGVzcworICAgICAgICAgKiB3ZSBhcmUgc2VyaW91c2x5IG91dCBvZiBtZW1vcnkuCisgICAgICAgICAqIEFmdGVyIFVDaGFyYWN0ZXIuY2xhc3MgbG9hZGluZywgd2UgaGF2ZSBhIG5ldmVyLWNoYW5naW5nIHBvaW50ZXIgdG8gZWl0aGVyIHRoZQorICAgICAgICAgKiByZWFsIHNpbmdsZXRvbiBvciB0aGUgZHVtbXkuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgaW4gVW5pY29kZSBwcm9wZXJ0aWVzIEFQSXMgdGhhdAorICAgICAgICAgKiBkbyBub3QgaGF2ZSBhIHNlcnZpY2Ugb2JqZWN0IGFuZCBhbHNvIGRvIG5vdCBoYXZlIGFuIGVycm9yIGNvZGUgcGFyYW1ldGVyLgorICAgICAgICAgKiBPdGhlciBBUEkgaW1wbGVtZW50YXRpb25zIGdldCB0aGUgc2luZ2xldG9uIHRoZW1zZWx2ZXMKKyAgICAgICAgICogKHN5bmNocm9uaXplZCksIHN0b3JlIGl0IGluIHRoZSBzZXJ2aWNlIG9iamVjdCwgYW5kIHJlcG9ydCBlcnJvcnMuCisgICAgICAgICAqLworICAgICAgICBVQ2FzZVByb3BzIGNzcDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNzcD1VQ2FzZVByb3BzLmdldFNpbmdsZXRvbigpOworICAgICAgICB9IGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGNzcD1VQ2FzZVByb3BzLmdldER1bW15KCk7CisgICAgICAgIH0KKyAgICAgICAgZ0NzcD1jc3A7CisKKyAgICAgICAgVUJpRGlQcm9wcyBiZHA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBiZHA9VUJpRGlQcm9wcy5nZXRTaW5nbGV0b24oKTsKKyAgICAgICAgfSBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBiZHA9VUJpRGlQcm9wcy5nZXREdW1teSgpOworICAgICAgICB9CisgICAgICAgIGdCZHA9YmRwOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUbyBnZXQgdGhlIGxhc3QgY2hhcmFjdGVyIG91dCBmcm9tIGEgZGF0YSB0eXBlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBU1RfQ0hBUl9NQVNLXyA9IDB4RkZGRjsKKyAgICAgIAorICAgIC8qKgorICAgICAqIFRvIGdldCB0aGUgbGFzdCBieXRlIG91dCBmcm9tIGEgZGF0YSB0eXBlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBU1RfQllURV9NQVNLXyA9IDB4RkY7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBTaGlmdCAxNiBiaXRzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNISUZUXzE2XyA9IDE2OworICAgICAgCisgICAgLyoqCisgICAgICogU2hpZnQgMjQgYml0cworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTSElGVF8yNF8gPSAyNDsgIAorICAgIAorICAgIC8qKgorICAgICAqIERlY2ltYWwgcmFkaXgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVDSU1BTF9SQURJWF8gPSAxMDsKKyAgICAgIAorICAgIC8qKgorICAgICAqIE5vIGJyZWFrIHNwYWNlIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9fQlJFQUtfU1BBQ0VfID0gMHhBMDsKKyAgICAgIAorICAgIC8qKgorICAgICAqIE5hcnJvdyBubyBicmVhayBzcGFjZSBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5BUlJPV19OT19CUkVBS19TUEFDRV8gPSAweDIwMkY7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBaZXJvIHdpZHRoIG5vIGJyZWFrIHNwYWNlIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgWkVST19XSURUSF9OT19CUkVBS19TUEFDRV8gPSAweEZFRkY7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBJZGVvZ3JhcGhpYyBudW1iZXIgemVybyBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElERU9HUkFQSElDX05VTUJFUl9aRVJPXyA9IDB4MzAwNzsKKyAgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIENKSyBJZGVvZ3JhcGgsIEZpcnN0IGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9GSVJTVF8gPSAweDRlMDA7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBDSksgSWRlb2dyYXBoLCBTZWNvbmQgY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX1NFQ09ORF8gPSAweDRlOGM7CisgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDSksgSWRlb2dyYXBoLCBUaGlyZCBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfVEhJUkRfID0gMHg0ZTA5OworICAgICAgCisgICAgLyoqCisgICAgICogQ0pLIElkZW9ncmFwaCwgRm91cnRoIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9GT1VSVEhfID0gMHg1NmQ4OworICAgICAgCisgICAgLyoqCisgICAgICogQ0pLIElkZW9ncmFwaCwgRklGVEggY29kZSBwb2ludAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0ZJRlRIXyA9IDB4NGU5NDsKKyAgICAgIAorICAgIC8qKgorICAgICAqIENKSyBJZGVvZ3JhcGgsIFNpeHRoIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9TSVhUSF8gPSAweDUxNmQ7CisgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDSksgSWRlb2dyYXBoLCBTZXZlbnRoIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9TRVZFTlRIXyA9IDB4NGUwMzsKKyAgICAgIAorICAgIC8qKgorICAgICAqIENKSyBJZGVvZ3JhcGgsIEVpZ2h0aCBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfRUlHSFRIXyA9IDB4NTE2YjsKKyAgICAgIAorICAgIC8qKgorICAgICAqIENKSyBJZGVvZ3JhcGgsIE5pbmV0aCBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfTklORVRIXyA9IDB4NGU1ZDsKKyAgICAgIAorICAgIC8qKgorICAgICAqIEFwcGxpY2F0aW9uIFByb2dyYW0gY29tbWFuZCBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEFQUExJQ0FUSU9OX1BST0dSQU1fQ09NTUFORF8gPSAweDAwOUY7CisgICAgICAKKyAgICAvKioKKyAgICAgKiBVbml0IHNlcGFyYXRvciBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOSVRfU0VQQVJBVE9SXyA9IDB4MDAxRjsKKyAgICAgIAorICAgIC8qKgorICAgICAqIERlbGV0ZSBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFTEVURV8gPSAweDAwN0Y7CisgICAgLyoqCisgICAgICogSVNPIGNvbnRyb2wgY2hhcmFjdGVyIGZpcnN0IHJhbmdlIHVwcGVyIGxpbWl0IDB4MCAtIDB4MUYKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSVNPX0NPTlRST0xfRklSU1RfUkFOR0VfTUFYXyA9IDB4MUY7CisgICAgLyoqCisgICAgICogU2hpZnQgdG8gZ2V0IG51bWVyaWMgdHlwZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOVU1FUklDX1RZUEVfU0hJRlRfID0gNTsKKyAgICAvKioKKyAgICAgKiBNYXNrIHRvIGdldCBudW1lcmljIHR5cGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTlVNRVJJQ19UWVBFX01BU0tfID0gMHg3IDw8IE5VTUVSSUNfVFlQRV9TSElGVF87CisgICAgICAKKyAgICAvKiBlbmNvZGluZyBvZiBmcmFjdGlvbmFsIGFuZCBsYXJnZSBudW1iZXJzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9TTUFMTF9OVU1CRVI9MHhmZjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGUkFDVElPTl9OVU1fU0hJRlQ9MzsgICAgICAgIC8qIG51bWVyYXRvcjogYml0cyA3Li4zICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZSQUNUSU9OX0RFTl9NQVNLPTc7ICAgICAgICAgLyogZGVub21pbmF0b3I6IGJpdHMgMi4uMCAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZSQUNUSU9OX01BWF9OVU09MzE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZSQUNUSU9OX0RFTl9PRkZTRVQ9MjsgICAgICAgLyogZGVub21pbmF0b3IgdmFsdWVzIGFyZSAyLi45ICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlJBQ1RJT05fTUlOX0RFTj1GUkFDVElPTl9ERU5fT0ZGU0VUOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGUkFDVElPTl9NQVhfREVOPUZSQUNUSU9OX01JTl9ERU4rRlJBQ1RJT05fREVOX01BU0s7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFSR0VfTUFOVF9TSElGVD00OyAgICAgICAgICAvKiBtYW50aXNzYTogYml0cyA3Li40ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBUkdFX0VYUF9NQVNLPTB4ZjsgICAgICAgICAgLyogZXhwb25lbnQ6IGJpdHMgMy4uMCAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVJHRV9FWFBfT0ZGU0VUPTI7ICAgICAgICAgIC8qIHJlZ3VsYXIgZXhwb25lbnRzIDIuLjE3ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBUkdFX0VYUF9PRkZTRVRfRVhUUkE9MTg7ICAgLyogZXh0cmEgbGFyZ2UgZXhwb25lbnRzIDE4Li4zMyAqLworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBUkdFX01JTl9FWFA9TEFSR0VfRVhQX09GRlNFVDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFSR0VfTUFYX0VYUD1MQVJHRV9NSU5fRVhQK0xBUkdFX0VYUF9NQVNLOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVJHRV9NQVhfRVhQX0VYVFJBPUxBUkdFX0VYUF9PRkZTRVRfRVhUUkErTEFSR0VfRVhQX01BU0s7CisKKyAgICAvKioKKyAgICAgKiBIYW4gZGlnaXQgY2hhcmFjdGVycworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfWkVST18gICAgID0gMHg5NmY2OyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX09ORV8gICAgICA9IDB4NThmOTsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9UV09fICAgICAgPSAweDhjYjM7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfVEhSRUVfICAgID0gMHg1M2MzOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX0ZPVVJfICAgICA9IDB4ODA4NjsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9GSVZFXyAgICAgPSAweDRmMGQ7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfU0lYXyAgICAgID0gMHg5Njc4OyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX1NFVkVOXyAgICA9IDB4NjdkMjsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9FSUdIVF8gICAgPSAweDYzNGM7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfTklORV8gICAgID0gMHg3Mzk2OyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9URU5fICAgICAgICAgICAgICA9IDB4NTM0MTsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfQ09NUExFWF9URU5fICAgICAgPSAweDYyZmU7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0hVTkRSRURfICAgICAgICAgID0gMHg3NjdlOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9DT01QTEVYX0hVTkRSRURfICA9IDB4NGY3MDsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfVEhPVVNBTkRfICAgICAgICAgPSAweDUzNDM7ICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfSURFT0dSQVBIX0NPTVBMRVhfVEhPVVNBTkRfID0gMHg0ZWRmOyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0lERU9HUkFQSF9URU5fVEhPVVNBTkRfICAgICA9IDB4ODI0YzsgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19JREVPR1JBUEhfSFVORFJFRF9NSUxMSU9OXyAgPSAweDUxMDQ7CisKKyAgICAvKioKKyAgICAgKiBaZXJvIFdpZHRoIE5vbiBKb2luZXIuCisgICAgICogRXF1aXZhbGVudCB0byBpY3U0YyBaV05KLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBaRVJPX1dJRFRIX05PTl9KT0lORVJfID0gMHgyMDBjOworICAgIC8qKgorICAgICAqIFplcm8gV2lkdGggSm9pbmVyCisgICAgICogRXF1aXZhbGVudCB0byBpY3U0YyBaV0ouIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBaRVJPX1dJRFRIX0pPSU5FUl8gPSAweDIwMGQ7CisKKyAgICAvKgorICAgICAqIFByb3BlcnRpZXMgaW4gdmVjdG9yIHdvcmQgMgorICAgICAqIEJpdHMKKyAgICAgKiAzMS4uMjQgICBNb3JlIGJpbmFyeSBwcm9wZXJ0aWVzIChzZWUgVUNoYXJhY3RlclByb3BlcnR5KQorICAgICAqIDIzLi4xOSAgIHJlc2VydmVkCisgICAgICogMTguLjE0ICAgU2VudGVuY2UgQnJlYWsKKyAgICAgKiAxMy4uMTAgICBXb3JkIEJyZWFrCisgICAgICogIDkuLiA1ICAgR3JhcGhlbWUgQ2x1c3RlciBCcmVhaworICAgICAqICA0Li4gMCAgIERlY29tcG9zaXRpb24gVHlwZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTQl9NQVNLICAgICAgICAgID0gMHgwMDA3YzAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0JfU0hJRlQgICAgICAgICA9IDE0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFdCX01BU0sgICAgICAgICAgPSAweDAwMDAzYzAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBXQl9TSElGVCAgICAgICAgID0gMTA7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgR0NCX01BU0sgICAgICAgICA9IDB4MDAwMDAzZTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdDQl9TSElGVCAgICAgICAgPSA1OworCisgICAgLyoqCisgICAgICogSW50ZWdlciBwcm9wZXJ0aWVzIG1hc2sgZm9yIGRlY29tcG9zaXRpb24gdHlwZS4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGljdTRjIFVQUk9QU19EVF9NQVNLLiAKKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFQ09NUE9TSVRJT05fVFlQRV9NQVNLXyA9IDB4MDAwMDAwMWY7CisKKyAgICAvKgorICAgICAqIFByb3BlcnRpZXMgaW4gdmVjdG9yIHdvcmQgMAorICAgICAqIEJpdHMKKyAgICAgKiAzMS4uMjQgICBEZXJpdmVkQWdlIHZlcnNpb24gbWFqb3IvbWlub3Igb25lIG5pYmJsZSBlYWNoIChzZWUgVUNoYXJhY3RlclByb3BlcnR5KQorICAgICAqIDIzLi4xOCAgIExpbmUgQnJlYWsKKyAgICAgKiAxNy4uMTUgICBFYXN0IEFzaWFuIFdpZHRoCisgICAgICogMTQuLiA3ICAgVUJsb2NrQ29kZQorICAgICAqICA2Li4gMCAgIFVTY3JpcHRDb2RlCisgICAgICovCisKKyAgICAvKioKKyAgICAgKiBJbnRlZ2VyIHByb3BlcnRpZXMgbWFzayBhbmQgc2hpZnQgdmFsdWVzIGZvciBFYXN0IEFzaWFuIGNlbGwgd2lkdGguCisgICAgICogRXF1aXZhbGVudCB0byBpY3U0YyBVUFJPUFNfRUFfTUFTSyAKKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVBU1RfQVNJQU5fTUFTS18gPSAweDAwMDM4MDAwOworICAgIC8qKgorICAgICAqIEludGVnZXIgcHJvcGVydGllcyBtYXNrIGFuZCBzaGlmdCB2YWx1ZXMgZm9yIEVhc3QgQXNpYW4gY2VsbCB3aWR0aC4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGljdTRjIFVQUk9QU19FQV9TSElGVCAKKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVBU1RfQVNJQU5fU0hJRlRfID0gMTU7CisgICAgLyoqCisgICAgICogSW50ZWdlciBwcm9wZXJ0aWVzIG1hc2sgYW5kIHNoaWZ0IHZhbHVlcyBmb3IgbGluZSBicmVha3MuCisgICAgICogRXF1aXZhbGVudCB0byBpY3U0YyBVUFJPUFNfTEJfTUFTSyAKKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExJTkVfQlJFQUtfTUFTS18gPSAweDAwRkMwMDAwOworICAgIC8qKgorICAgICAqIEludGVnZXIgcHJvcGVydGllcyBtYXNrIGFuZCBzaGlmdCB2YWx1ZXMgZm9yIGxpbmUgYnJlYWtzLgorICAgICAqIEVxdWl2YWxlbnQgdG8gaWN1NGMgVVBST1BTX0xCX1NISUZUIAorICAgICAqLyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTElORV9CUkVBS19TSElGVF8gPSAxODsKKyAgICAvKioKKyAgICAgKiBJbnRlZ2VyIHByb3BlcnRpZXMgbWFzayBhbmQgc2hpZnQgdmFsdWVzIGZvciBibG9ja3MuCisgICAgICogRXF1aXZhbGVudCB0byBpY3U0YyBVUFJPUFNfQkxPQ0tfTUFTSyAKKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJMT0NLX01BU0tfID0gMHgwMDAwN2Y4MDsKKyAgICAvKioKKyAgICAgKiBJbnRlZ2VyIHByb3BlcnRpZXMgbWFzayBhbmQgc2hpZnQgdmFsdWVzIGZvciBibG9ja3MuCisgICAgICogRXF1aXZhbGVudCB0byBpY3U0YyBVUFJPUFNfQkxPQ0tfU0hJRlQgCisgICAgICovICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCTE9DS19TSElGVF8gPSA3OworICAgIC8qKgorICAgICAqIEludGVnZXIgcHJvcGVydGllcyBtYXNrIGFuZCBzaGlmdCB2YWx1ZXMgZm9yIHNjcmlwdHMuCisgICAgICogRXF1aXZhbGVudCB0byBpY3U0YyBVUFJPUFNfU0hJRlRfTUFTSworICAgICAqLyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0NSSVBUX01BU0tfID0gMHgwMDAwMDA3ZjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8vIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLy9DTE9WRVI6T0ZGICAKKyAgICAvKioKKyAgICAgKiBQcml2YXRlIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgaW5zdGFudGlhdGlvbgorICAgICAqLworICAgIHByaXZhdGUgVUNoYXJhY3RlcigpCisgICAgeworICAgIH0KKyAgICAvLy9DTE9WRVI6T04gCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEdldHRpbmcgdGhlIGRpZ2l0IHZhbHVlcyBvZiBjaGFyYWN0ZXJzIGxpa2UgJ0EnIC0gJ1onLCBub3JtYWwsIAorICAgICAqIGhhbGYtd2lkdGggYW5kIGZ1bGwtd2lkdGguIFRoaXMgbWV0aG9kIGFzc3VtZXMgdGhhdCB0aGUgb3RoZXIgZGlnaXQgCisgICAgICogY2hhcmFjdGVycyBhcmUgY2hlY2tlZCBieSB0aGUgY2FsbGluZyBtZXRob2QuCisgICAgICogQHBhcmFtIGNoIGNoYXJhY3RlciB0byB0ZXN0CisgICAgICogQHJldHVybiAtMSBpZiBjaCBpcyBub3QgYSBjaGFyYWN0ZXIgb2YgdGhlIGZvcm0gJ0EnIC0gJ1onLCBvdGhlcndpc2UKKyAgICAgKiAgICAgICAgIGl0cyBjb3JyZXNwb25kaW5nIGRpZ2l0IHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldEV1cm9wZWFuRGlnaXQoaW50IGNoKSB7CisgICAgICAgIGlmICgoY2ggPiAweDdhICYmIGNoIDwgMHhmZjIxKSAgCisgICAgICAgICAgICB8fCBjaCA8IDB4NDEgfHwgKGNoID4gMHg1YSAmJiBjaCA8IDB4NjEpCisgICAgICAgICAgICB8fCBjaCA+IDB4ZmY1YSB8fCAoY2ggPiAweGZmMzEgJiYgY2ggPCAweGZmNDEpKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0gCisgICAgICAgIGlmIChjaCA8PSAweDdhKSB7CisgICAgICAgICAgICAvLyBjaCA+PSAweDQxIG9yIGNoIDwgMHg2MSAKKyAgICAgICAgICAgIHJldHVybiBjaCArIDEwIC0gKChjaCA8PSAweDVhKSA/IDB4NDEgOiAweDYxKTsKKyAgICAgICAgfQorICAgICAgICAvLyBjaCA+PSAweGZmMjEKKyAgICAgICAgaWYgKGNoIDw9IDB4ZmYzYSkgeworICAgICAgICAgICAgcmV0dXJuIGNoICsgMTAgLSAweGZmMjE7CisgICAgICAgIH0gCisgICAgICAgIC8vIGNoID49IDB4ZmY0MSAmJiBjaCA8PSAweGZmNWEKKyAgICAgICAgcmV0dXJuIGNoICsgMTAgLSAweGZmNDE7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIG51bWVyaWMgdHlwZSBvZiB0aGUgcHJvcGVydHkgYXJndW1lbnQKKyAgICAgKiBAcGFyYW0gcHJvcHMgMzIgYml0IHByb3BlcnR5CisgICAgICogQHJldHVybiB0aGUgbnVtZXJpYyB0eXBlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldE51bWVyaWNUeXBlKGludCBwcm9wcykKKyAgICB7CisgICAgICAgIHJldHVybiAocHJvcHMgJiBOVU1FUklDX1RZUEVfTUFTS18pID4+IE5VTUVSSUNfVFlQRV9TSElGVF87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHByb3BlcnR5IHZhbHVlIGF0IHRoZSBpbmRleC4KKyAgICAgKiBUaGlzIGlzIG9wdGltaXplZC4KKyAgICAgKiBOb3RlIHRoaXMgaXMgYWxpdHRsZSBkaWZmZXJlbnQgZnJvbSBDaGFyVHJpZSB0aGUgaW5kZXggbV90cmllRGF0YV8KKyAgICAgKiBpcyBuZXZlciBuZWdhdGl2ZS4KKyAgICAgKiBUaGlzIGlzIGEgZHVwbGljYXRlIG9mIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRQcm9wZXJ0eS4gRm9yIG9wdGltaXphdGlvbgorICAgICAqIHB1cnBvc2VzLCB0aGlzIG1ldGhvZCBjYWxscyB0aGUgdHJpZSBkYXRhIGRpcmVjdGx5IGluc3RlYWQgb2YgdGhyb3VnaCAKKyAgICAgKiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UHJvcGVydHkuCisgICAgICogQHBhcmFtIGNoIGNvZGUgcG9pbnQgd2hvc2UgcHJvcGVydHkgdmFsdWUgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgICogQHJldHVybiBwcm9wZXJ0eSB2YWx1ZSBvZiBjb2RlIHBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldFByb3BlcnR5KGludCBjaCkKKyAgICB7CisgICAgICAgIGlmIChjaCA8IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAKKyAgICAgICAgICAgIHx8IChjaCA+IFVURjE2LkxFQURfU1VSUk9HQVRFX01BWF9WQUxVRSAKKyAgICAgICAgICAgICAgICAmJiBjaCA8IFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSkgeworICAgICAgICAgICAgLy8gQk1QIGNvZGVwb2ludCAwMDAwLi5EN0ZGIG9yIERDMDAuLkZGRkYKKyAgICAgICAgICAgIHRyeSB7IC8vIHVzaW5nIHRyeSBmb3IgY2ggPCAwIGlzIGZhc3RlciB0aGFuIHVzaW5nIGFuIGlmIHN0YXRlbWVudAorICAgICAgICAgICAgICAgIHJldHVybiBQUk9QRVJUWV9UUklFX0RBVEFfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFBST1BFUlRZX1RSSUVfSU5ERVhfW2NoID4+IDVdIDw8IDIpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoY2ggJiAweDFmKV07CisgICAgICAgICAgICB9IGNhdGNoIChBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBQUk9QRVJUWV9JTklUSUFMX1ZBTFVFXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY2ggPD0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAvLyBsZWFkIHN1cnJvZ2F0ZSBEODAwLi5EQkZGCisgICAgICAgICAgICByZXR1cm4gUFJPUEVSVFlfVFJJRV9EQVRBX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQUk9QRVJUWV9UUklFX0lOREVYX1soMHgyODAwID4+IDUpICsgKGNoID4+IDUpXSA8PCAyKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGNoICYgMHgxZildOworICAgICAgICB9CisgICAgICAgIC8vIGZvciBvcHRpbWl6YXRpb24KKyAgICAgICAgaWYgKGNoIDw9IFVURjE2LkNPREVQT0lOVF9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIC8vIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCAxMDAwMC4uMTBGRkZGCisgICAgICAgICAgICAvLyBsb29rIGF0IHRoZSBjb25zdHJ1Y3Rpb24gb2Ygc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzCisgICAgICAgICAgICAvLyB0cmFpbCBmb3JtcyB0aGUgZW5kcyBvZiBpdC4KKyAgICAgICAgICAgIHJldHVybiBQUk9QRVJUWV8ubV90cmllXy5nZXRTdXJyb2dhdGVWYWx1ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShjaCksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoY2ggJiAweDNmZikpOworICAgICAgICB9CisgICAgICAgIC8vIHJldHVybiBtX2RhdGFPZmZzZXRfIGlmIHRoZXJlIGlzIGFuIGVycm9yLCBpbiB0aGlzIGNhc2Ugd2UgcmV0dXJuIAorICAgICAgICAvLyB0aGUgZGVmYXVsdCB2YWx1ZTogbV9pbml0aWFsVmFsdWVfCisgICAgICAgIC8vIHdlIGNhbm5vdCBhc3N1bWUgdGhhdCBtX2luaXRpYWxWYWx1ZV8gaXMgYXQgb2Zmc2V0IDAKKyAgICAgICAgLy8gdGhpcyBpcyBmb3Igb3B0aW1pemF0aW9uLgorICAgICAgICByZXR1cm4gUFJPUEVSVFlfSU5JVElBTF9WQUxVRV87CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3RlckNhdGVnb3J5LmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyQ2F0ZWdvcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MGMwYTY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3RlckNhdGVnb3J5LmphdmEKQEAgLTAsMCArMSwxMTIgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXJFbnVtcy5FQ2hhcmFjdGVyQ2F0ZWdvcnk7CisKKy8qKgorICogRW51bWVyYXRlZCBVbmljb2RlIGNhdGVnb3J5IHR5cGVzIGZyb20gdGhlIFVuaWNvZGVEYXRhLnR4dCBmaWxlLgorICogVXNlZCBhcyByZXR1cm4gcmVzdWx0cyBmcm9tIDxhIGhyZWY9VUNoYXJhY3Rlci5odG1sPlVDaGFyYWN0ZXI8L2E+CisgKiBFcXVpdmFsZW50IHRvIGljdSdzIFVDaGFyQ2F0ZWdvcnkuCisgKiBSZWZlciB0byA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy9VTklEQVRBL1VDRC5odG1sIj4KKyAqIFVuaWNvZGUgQ29uc29ydGl1bTwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgVW5pY29kZURhdGEudHh0LgorICogPHA+CisgKiA8ZW0+Tk9URTo8L2VtPiB0aGUgVUNoYXJhY3RlckNhdGVnb3J5IHZhbHVlcyBhcmUgPGVtPm5vdDwvZW0+IGNvbXBhdGlibGUgd2l0aAorICogdGhvc2UgcmV0dXJuZWQgYnkgamF2YS5sYW5nLkNoYXJhY3Rlci5nZXRUeXBlLiAgVUNoYXJhY3RlckNhdGVnb3J5IHZhbHVlcworICogbWF0Y2ggdGhlIG9uZXMgdXNlZCBpbiBJQ1U0Qywgd2hpbGUgamF2YS5sYW5nLkNoYXJhY3RlciB0eXBlCisgKiB2YWx1ZXMsIHRob3VnaCBzaW1pbGFyLCBza2lwIHRoZSB2YWx1ZSAxNy48L3A+CisgKiA8cD4KKyAqIFRoaXMgY2xhc3MgaXMgbm90IHN1YmNsYXNzYWJsZQorICogPC9wPgorICogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyAqIEBzdGFibGUgSUNVIDIuMQorICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBVQ2hhcmFjdGVyQ2F0ZWdvcnkgaW1wbGVtZW50cyBFQ2hhcmFjdGVyQ2F0ZWdvcnkKK3sKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBuYW1lIG9mIHRoZSBhcmd1bWVudCBjYXRlZ29yeQorICAgICAqIEBwYXJhbSBjYXRlZ29yeSB0byByZXRyaWV2ZSBuYW1lCisgICAgICogQHJldHVybiBjYXRlZ29yeSBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoaW50IGNhdGVnb3J5KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChjYXRlZ29yeSkgeworICAgICAgICBjYXNlIFVQUEVSQ0FTRV9MRVRURVIgOgorICAgICAgICAgICAgcmV0dXJuICJMZXR0ZXIsIFVwcGVyY2FzZSI7CisgICAgICAgIGNhc2UgTE9XRVJDQVNFX0xFVFRFUiA6CisgICAgICAgICAgICByZXR1cm4gIkxldHRlciwgTG93ZXJjYXNlIjsKKyAgICAgICAgY2FzZSBUSVRMRUNBU0VfTEVUVEVSIDoKKyAgICAgICAgICAgIHJldHVybiAiTGV0dGVyLCBUaXRsZWNhc2UiOworICAgICAgICBjYXNlIE1PRElGSUVSX0xFVFRFUiA6CisgICAgICAgICAgICByZXR1cm4gIkxldHRlciwgTW9kaWZpZXIiOworICAgICAgICBjYXNlIE9USEVSX0xFVFRFUiA6CisgICAgICAgICAgICByZXR1cm4gIkxldHRlciwgT3RoZXIiOworICAgICAgICBjYXNlIE5PTl9TUEFDSU5HX01BUksgOgorICAgICAgICAgICAgcmV0dXJuICJNYXJrLCBOb24tU3BhY2luZyI7CisgICAgICAgIGNhc2UgRU5DTE9TSU5HX01BUksgOiAKKyAgICAgICAgICAgIHJldHVybiAiTWFyaywgRW5jbG9zaW5nIjsKKyAgICAgICAgY2FzZSBDT01CSU5JTkdfU1BBQ0lOR19NQVJLIDoKKyAgICAgICAgICAgIHJldHVybiAiTWFyaywgU3BhY2luZyBDb21iaW5pbmciOworICAgICAgICBjYXNlIERFQ0lNQUxfRElHSVRfTlVNQkVSIDoKKyAgICAgICAgICAgIHJldHVybiAiTnVtYmVyLCBEZWNpbWFsIERpZ2l0IjsKKyAgICAgICAgY2FzZSBMRVRURVJfTlVNQkVSIDoKKyAgICAgICAgICAgIHJldHVybiAiTnVtYmVyLCBMZXR0ZXIiOworICAgICAgICBjYXNlIE9USEVSX05VTUJFUiA6CisgICAgICAgICAgICByZXR1cm4gIk51bWJlciwgT3RoZXIiOworICAgICAgICBjYXNlIFNQQUNFX1NFUEFSQVRPUiA6CisgICAgICAgICAgICByZXR1cm4gIlNlcGFyYXRvciwgU3BhY2UiOworICAgICAgICBjYXNlIExJTkVfU0VQQVJBVE9SIDoKKyAgICAgICAgICAgIHJldHVybiAiU2VwYXJhdG9yLCBMaW5lIjsKKyAgICAgICAgY2FzZSBQQVJBR1JBUEhfU0VQQVJBVE9SIDoKKyAgICAgICAgICAgIHJldHVybiAiU2VwYXJhdG9yLCBQYXJhZ3JhcGgiOworICAgICAgICBjYXNlIENPTlRST0wgOgorICAgICAgICAgICAgcmV0dXJuICJPdGhlciwgQ29udHJvbCI7CisgICAgICAgIGNhc2UgRk9STUFUIDoKKyAgICAgICAgICAgIHJldHVybiAiT3RoZXIsIEZvcm1hdCI7CisgICAgICAgIGNhc2UgUFJJVkFURV9VU0UgOgorICAgICAgICAgICAgcmV0dXJuICJPdGhlciwgUHJpdmF0ZSBVc2UiOworICAgICAgICBjYXNlIFNVUlJPR0FURSA6CisgICAgICAgICAgICByZXR1cm4gIk90aGVyLCBTdXJyb2dhdGUiOworICAgICAgICBjYXNlIERBU0hfUFVOQ1RVQVRJT04gOgorICAgICAgICAgICAgcmV0dXJuICJQdW5jdHVhdGlvbiwgRGFzaCI7CisgICAgICAgIGNhc2UgU1RBUlRfUFVOQ1RVQVRJT04gOgorICAgICAgICAgICAgcmV0dXJuICJQdW5jdHVhdGlvbiwgT3BlbiI7CisgICAgICAgIGNhc2UgRU5EX1BVTkNUVUFUSU9OIDoKKyAgICAgICAgICAgIHJldHVybiAiUHVuY3R1YXRpb24sIENsb3NlIjsKKyAgICAgICAgY2FzZSBDT05ORUNUT1JfUFVOQ1RVQVRJT04gOgorICAgICAgICAgICAgcmV0dXJuICJQdW5jdHVhdGlvbiwgQ29ubmVjdG9yIjsKKyAgICAgICAgY2FzZSBPVEhFUl9QVU5DVFVBVElPTiA6CisgICAgICAgICAgICByZXR1cm4gIlB1bmN0dWF0aW9uLCBPdGhlciI7CisgICAgICAgIGNhc2UgTUFUSF9TWU1CT0wgOgorICAgICAgICAgICAgcmV0dXJuICJTeW1ib2wsIE1hdGgiOworICAgICAgICBjYXNlIENVUlJFTkNZX1NZTUJPTCA6CisgICAgICAgICAgICByZXR1cm4gIlN5bWJvbCwgQ3VycmVuY3kiOworICAgICAgICBjYXNlIE1PRElGSUVSX1NZTUJPTCA6CisgICAgICAgICAgICByZXR1cm4gIlN5bWJvbCwgTW9kaWZpZXIiOworICAgICAgICBjYXNlIE9USEVSX1NZTUJPTCA6CisgICAgICAgICAgICByZXR1cm4gIlN5bWJvbCwgT3RoZXIiOworICAgICAgICBjYXNlIElOSVRJQUxfUFVOQ1RVQVRJT04gOgorICAgICAgICAgICAgcmV0dXJuICJQdW5jdHVhdGlvbiwgSW5pdGlhbCBxdW90ZSI7CisgICAgICAgIGNhc2UgRklOQUxfUFVOQ1RVQVRJT04gOgorICAgICAgICAgICAgcmV0dXJuICJQdW5jdHVhdGlvbiwgRmluYWwgcXVvdGUiOworICAgICAgICB9CisgICAgICAgIHJldHVybiAiVW5hc3NpZ25lZCI7CisgICAgfQorICAgICAgICAKKyAgICAvLyBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8vQ0xPVkVSOk9GRiAKKyAgICAvKioKKyAgICAgKiBQcml2YXRlIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgaW5pdGlhbGlzYXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIFVDaGFyYWN0ZXJDYXRlZ29yeSgpCisgICAgeworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJEaXJlY3Rpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJEaXJlY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ODRjNmJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3RlckRpcmVjdGlvbi5qYXZhCkBAIC0wLDAgKzEsODQgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5sYW5nOworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyRW51bXMuRUNoYXJhY3RlckRpcmVjdGlvbjsKKworLyoqCisgKiBFbnVtZXJhdGVkIFVuaWNvZGUgY2hhcmFjdGVyIGxpbmd1aXN0aWMgZGlyZWN0aW9uIGNvbnN0YW50cy4KKyAqIFVzZWQgYXMgcmV0dXJuIHJlc3VsdHMgZnJvbSA8YSBocmVmPVVDaGFyYWN0ZXIuaHRtbD5VQ2hhcmFjdGVyPC9hPgorICogPHA+CisgKiBUaGlzIGNsYXNzIGlzIG5vdCBzdWJjbGFzc2FibGUKKyAqIDwvcD4KKyAqIEBhdXRob3IgU3luIFdlZSBRdWVrCisgKiBAc3RhYmxlIElDVSAyLjEKKyAqLworCitwdWJsaWMgZmluYWwgY2xhc3MgVUNoYXJhY3RlckRpcmVjdGlvbiBpbXBsZW1lbnRzIEVDaGFyYWN0ZXJEaXJlY3Rpb24geworCisgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vL0NMT1ZFUjpPRkYgIAorICAgIC8qKgorICAgICAqIFByaXZhdGUgY29uc3RydWN0b3IgdG8gcHJldmVudCBpbml0aWFsaXNhdGlvbgorICAgICAqLworICAgIHByaXZhdGUgVUNoYXJhY3RlckRpcmVjdGlvbigpCisgICAgeworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKyAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGFyZ3VtZW50IGRpcmVjdGlvbgorICAgICAqIEBwYXJhbSBkaXIgZGlyZWN0aW9uIHR5cGUgdG8gcmV0cmlldmUgbmFtZQorICAgICAqIEByZXR1cm4gZGlyZWN0aW9uYWwgbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGludCBkaXIpIHsKKyAgICAgICAgc3dpdGNoKGRpcikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGNhc2UgTEVGVF9UT19SSUdIVCA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJMZWZ0LXRvLVJpZ2h0IjsKKyAgICAgICAgICAgIGNhc2UgUklHSFRfVE9fTEVGVCA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJSaWdodC10by1MZWZ0IjsKKyAgICAgICAgICAgIGNhc2UgRVVST1BFQU5fTlVNQkVSIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkV1cm9wZWFuIE51bWJlciI7CisgICAgICAgICAgICBjYXNlIEVVUk9QRUFOX05VTUJFUl9TRVBBUkFUT1IgOgorICAgICAgICAgICAgICAgIHJldHVybiAiRXVyb3BlYW4gTnVtYmVyIFNlcGFyYXRvciI7CisgICAgICAgICAgICBjYXNlIEVVUk9QRUFOX05VTUJFUl9URVJNSU5BVE9SIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkV1cm9wZWFuIE51bWJlciBUZXJtaW5hdG9yIjsKKyAgICAgICAgICAgIGNhc2UgQVJBQklDX05VTUJFUiA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJBcmFiaWMgTnVtYmVyIjsKKyAgICAgICAgICAgIGNhc2UgQ09NTU9OX05VTUJFUl9TRVBBUkFUT1IgOgorICAgICAgICAgICAgICAgIHJldHVybiAiQ29tbW9uIE51bWJlciBTZXBhcmF0b3IiOworICAgICAgICAgICAgY2FzZSBCTE9DS19TRVBBUkFUT1IgOgorICAgICAgICAgICAgICAgIHJldHVybiAiUGFyYWdyYXBoIFNlcGFyYXRvciI7CisgICAgICAgICAgICBjYXNlIFNFR01FTlRfU0VQQVJBVE9SIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIlNlZ21lbnQgU2VwYXJhdG9yIjsKKyAgICAgICAgICAgIGNhc2UgV0hJVEVfU1BBQ0VfTkVVVFJBTCA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJXaGl0ZXNwYWNlIjsKKyAgICAgICAgICAgIGNhc2UgT1RIRVJfTkVVVFJBTCA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJPdGhlciBOZXV0cmFscyI7CisgICAgICAgICAgICBjYXNlIExFRlRfVE9fUklHSFRfRU1CRURESU5HIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkxlZnQtdG8tUmlnaHQgRW1iZWRkaW5nIjsKKyAgICAgICAgICAgIGNhc2UgTEVGVF9UT19SSUdIVF9PVkVSUklERSA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJMZWZ0LXRvLVJpZ2h0IE92ZXJyaWRlIjsKKyAgICAgICAgICAgIGNhc2UgUklHSFRfVE9fTEVGVF9BUkFCSUMgOgorICAgICAgICAgICAgICAgIHJldHVybiAiUmlnaHQtdG8tTGVmdCBBcmFiaWMiOworICAgICAgICAgICAgY2FzZSBSSUdIVF9UT19MRUZUX0VNQkVERElORyA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJSaWdodC10by1MZWZ0IEVtYmVkZGluZyI7CisgICAgICAgICAgICBjYXNlIFJJR0hUX1RPX0xFRlRfT1ZFUlJJREUgOgorICAgICAgICAgICAgICAgIHJldHVybiAiUmlnaHQtdG8tTGVmdCBPdmVycmlkZSI7CisgICAgICAgICAgICBjYXNlIFBPUF9ESVJFQ1RJT05BTF9GT1JNQVQgOgorICAgICAgICAgICAgICAgIHJldHVybiAiUG9wIERpcmVjdGlvbmFsIEZvcm1hdCI7CisgICAgICAgICAgICBjYXNlIERJUl9OT05fU1BBQ0lOR19NQVJLIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIk5vbi1TcGFjaW5nIE1hcmsiOworICAgICAgICAgICAgY2FzZSBCT1VOREFSWV9ORVVUUkFMIDoKKyAgICAgICAgICAgICAgICByZXR1cm4gIkJvdW5kYXJ5IE5ldXRyYWwiOworICAgICAgICAgICAgfQorICAgICAgICByZXR1cm4gIlVuYXNzaWduZWQiOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJFbnVtcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVUNoYXJhY3RlckVudW1zLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Q0MDY5NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJFbnVtcy5qYXZhCkBAIC0wLDAgKzEsNTE0IEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5sYW5nOworCisvKioKKyAqIEEgY29udGFpbmVyIGZvciB0aGUgZGlmZmVyZW50ICdlbnVtZXJhdGVkIHR5cGVzJyB1c2VkIGJ5IFVDaGFyYWN0ZXIuCisgKiBAZHJhZnQgSUNVIDMuMAorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBjbGFzcyBVQ2hhcmFjdGVyRW51bXMgeworCisgICAgLyoqIFRoaXMgaXMganVzdCBhIG5hbWVzcGFjZSwgaXQgaXMgbm90IGluc3RhbnRpYXRhYmxlLiAqLworCS8vL0NMT1ZFUjpPRkYKKyAgICBwcml2YXRlIFVDaGFyYWN0ZXJFbnVtcygpIHt9CisKKyAgICAvKioKKyAgICAgKiAnRW51bScgZm9yIHRoZSBDaGFyYWN0ZXJDYXRlZ29yeSBjb25zdGFudHMuICBUaGVzZSBjb25zdGFudHMgYXJlIAorICAgICAqIGNvbXBhdGlibGUgaW4gbmFtZSA8Yj5idXQgbm90IGluIHZhbHVlPC9iPiB3aXRoIHRob3NlIGRlZmluZWQgaW4KKyAgICAgKiA8Y29kZT5qYXZhLmxhbmcuQ2hhcmFjdGVyPC9jb2RlPi4KKyAgICAgKiBAc2VlIFVDaGFyYWN0ZXJDYXRlZ29yeQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgRUNoYXJhY3RlckNhdGVnb3J5IHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVuYXNzaWduZWQgY2hhcmFjdGVyIHR5cGUKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgVU5BU1NJR05FRCAgICAgICAgICAgICAgPSAwOyAKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgQ24KKyAgICAgICAgICogTm90IEFzc2lnbmVkIChubyBjaGFyYWN0ZXJzIGluIFtVbmljb2RlRGF0YS50eHRdIGhhdmUgdGhpcyBwcm9wZXJ0eSkgCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIEdFTkVSQUxfT1RIRVJfVFlQRVMgICAgID0gMDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgTHUKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgVVBQRVJDQVNFX0xFVFRFUiAgICAgICAgPSAxOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBMbAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBMT1dFUkNBU0VfTEVUVEVSICAgICAgICA9IDI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIEx0CisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgVElUTEVDQVNFX0xFVFRFUiAgICAgICAgPSAzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBMbQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBNT0RJRklFUl9MRVRURVIgICAgICAgICA9IDQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIExvCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIE9USEVSX0xFVFRFUiAgICAgICAgICAgID0gNTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgTW4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTk9OX1NQQUNJTkdfTUFSSyAgICAgICAgPSA2OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBNZQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBFTkNMT1NJTkdfTUFSSyAgICAgICAgICA9IDc7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIE1jCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIENPTUJJTklOR19TUEFDSU5HX01BUksgID0gODsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgTmQKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xICAgICAgCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgREVDSU1BTF9ESUdJVF9OVU1CRVIgICAgPSA5OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBObAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBMRVRURVJfTlVNQkVSICAgICAgICAgICA9IDEwOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIE5vCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIE9USEVSX05VTUJFUiAgICAgICAgICAgID0gMTE7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFpzCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIFNQQUNFX1NFUEFSQVRPUiAgICAgICAgID0gMTI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFpsCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIExJTkVfU0VQQVJBVE9SICAgICAgICAgID0gMTM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFpwCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIFBBUkFHUkFQSF9TRVBBUkFUT1IgICAgID0gMTQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIENjCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIENPTlRST0wgICAgICAgICAgICAgICAgID0gMTU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIENmCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIEZPUk1BVCAgICAgICAgICAgICAgICAgID0gMTY7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIENvCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIFBSSVZBVEVfVVNFICAgICAgICAgICAgID0gMTc7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIENzCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIFNVUlJPR0FURSAgICAgICAgICAgICAgID0gMTg7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFBkCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERBU0hfUFVOQ1RVQVRJT04gICAgICAgID0gMTk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFBzCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIFNUQVJUX1BVTkNUVUFUSU9OICAgICAgID0gMjA7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgUGUKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRU5EX1BVTkNUVUFUSU9OICAgICAgICAgPSAyMTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgUGMKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgQ09OTkVDVE9SX1BVTkNUVUFUSU9OICAgPSAyMjsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgUG8KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgT1RIRVJfUFVOQ1RVQVRJT04gICAgICAgPSAyMzsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgU20KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgTUFUSF9TWU1CT0wgICAgICAgICAgICAgPSAyNDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgU2MKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgQ1VSUkVOQ1lfU1lNQk9MICAgICAgICAgPSAyNTsKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBTaworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBNT0RJRklFUl9TWU1CT0wgICAgICAgICA9IDI2OworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0eXBlIFNvCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIE9USEVSX1NZTUJPTCAgICAgICAgICAgID0gMjc7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQ2hhcmFjdGVyIHR5cGUgUGkKKyAgICAgICAgICogQHNlZSAjSU5JVElBTF9RVU9URV9QVU5DVFVBVElPTgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBJTklUSUFMX1BVTkNUVUFUSU9OICAgICA9IDI4OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBQaQorICAgICAgICAgKiBUaGlzIG5hbWUgaXMgY29tcGF0aWJsZSB3aXRoIGphdmEubGFuZy5DaGFyYWN0ZXIncyBuYW1lIGZvciB0aGlzIHR5cGUuCisgICAgICAgICAqIEBzZWUgI0lOSVRJQUxfUFVOQ1RVQVRJT04KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgSU5JVElBTF9RVU9URV9QVU5DVFVBVElPTiA9IDI4OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBQZgorICAgICAgICAgKiBAc2VlICNGSU5BTF9RVU9URV9QVU5DVFVBVElPTgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBGSU5BTF9QVU5DVFVBVElPTiAgICAgICA9IDI5OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBQZgorICAgICAgICAgKiBUaGlzIG5hbWUgaXMgY29tcGF0aWJsZSB3aXRoIGphdmEubGFuZy5DaGFyYWN0ZXIncyBuYW1lIGZvciB0aGlzIHR5cGUuCisgICAgICAgICAqIEBzZWUgI0ZJTkFMX1BVTkNUVUFUSU9OCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIEZJTkFMX1FVT1RFX1BVTkNUVUFUSU9OICAgPSAyOTsKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBDaGFyYWN0ZXIgdHlwZSBjb3VudAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBDSEFSX0NBVEVHT1JZX0NPVU5UICAgICA9IDMwOworICAgIH0KKworICAgIC8qKgorICAgICAqICdFbnVtJyBmb3IgdGhlIENoYXJhY3RlckRpcmVjdGlvbiBjb25zdGFudHMuICBUaGVyZSBhcmUgdHdvIHNldHMKKyAgICAgKiBvZiBuYW1lcywgdGhvc2UgdXNlZCBpbiBJQ1UsIGFuZCB0aG9zZSB1c2VkIGluIHRoZSBKREsuICBUaGUKKyAgICAgKiBKREsgY29uc3RhbnRzIGFyZSBjb21wYXRpYmxlIGluIG5hbWUgPGI+YnV0IG5vdCBpbiB2YWx1ZTwvYj4gCisgICAgICogd2l0aCB0aG9zZSBkZWZpbmVkIGluIDxjb2RlPmphdmEubGFuZy5DaGFyYWN0ZXI8L2NvZGU+LgorICAgICAqIEBzZWUgVUNoYXJhY3RlckRpcmVjdGlvbgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgRUNoYXJhY3RlckRpcmVjdGlvbiB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIEwKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRUZUX1RPX1JJR0hUICAgICAgICAgICAgICA9IDA7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIExFRlRfVE9fUklHSFQuCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfTEVGVF9UT19SSUdIVCA9IChieXRlKUxFRlRfVE9fUklHSFQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgUgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJJR0hUX1RPX0xFRlQgICAgICAgICAgICAgID0gMTsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgUklHSFRfVE9fTEVGVC4KKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9SSUdIVF9UT19MRUZUID0gKGJ5dGUpUklHSFRfVE9fTEVGVDsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBFTgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVVUk9QRUFOX05VTUJFUiAgICAgICAgICAgID0gMjsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgRVVST1BFQU5fTlVNQkVSLgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX0VVUk9QRUFOX05VTUJFUiA9IChieXRlKUVVUk9QRUFOX05VTUJFUjsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBFUworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVVUk9QRUFOX05VTUJFUl9TRVBBUkFUT1IgID0gMzsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgRVVST1BFQU5fTlVNQkVSX1NFUEFSQVRPUi4KKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9FVVJPUEVBTl9OVU1CRVJfU0VQQVJBVE9SID0gKGJ5dGUpRVVST1BFQU5fTlVNQkVSX1NFUEFSQVRPUjsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBFVAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVVUk9QRUFOX05VTUJFUl9URVJNSU5BVE9SID0gNDsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgRVVST1BFQU5fTlVNQkVSX1RFUk1JTkFUT1IuCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfRVVST1BFQU5fTlVNQkVSX1RFUk1JTkFUT1IgPSAoYnl0ZSlFVVJPUEVBTl9OVU1CRVJfVEVSTUlOQVRPUjsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBBTgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBUkFCSUNfTlVNQkVSICAgICAgICAgICAgICA9IDU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIEFSQUJJQ19OVU1CRVIuCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfQVJBQklDX05VTUJFUiA9IChieXRlKUFSQUJJQ19OVU1CRVI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgQ1MKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01NT05fTlVNQkVSX1NFUEFSQVRPUiAgICA9IDY7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIENPTU1PTl9OVU1CRVJfU0VQQVJBVE9SLgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX0NPTU1PTl9OVU1CRVJfU0VQQVJBVE9SID0gKGJ5dGUpQ09NTU9OX05VTUJFUl9TRVBBUkFUT1I7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgQgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJMT0NLX1NFUEFSQVRPUiAgICAgICAgICAgID0gNzsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgQkxPQ0tfU0VQQVJBVE9SLgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX1BBUkFHUkFQSF9TRVBBUkFUT1IgPSAoYnl0ZSlCTE9DS19TRVBBUkFUT1I7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgUworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNFR01FTlRfU0VQQVJBVE9SICAgICAgICAgID0gODsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgU0VHTUVOVF9TRVBBUkFUT1IuCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfU0VHTUVOVF9TRVBBUkFUT1IgPSAoYnl0ZSlTRUdNRU5UX1NFUEFSQVRPUjsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBXUworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdISVRFX1NQQUNFX05FVVRSQUwgICAgICAgID0gOTsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgV0hJVEVfU1BBQ0VfTkVVVFJBTC4KKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9XSElURVNQQUNFID0gKGJ5dGUpV0hJVEVfU1BBQ0VfTkVVVFJBTDsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBPTgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9USEVSX05FVVRSQUwgICAgICAgICAgICAgID0gMTA7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIE9USEVSX05FVVRSQUwuCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfT1RIRVJfTkVVVFJBTFMgPSAoYnl0ZSlPVEhFUl9ORVVUUkFMOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIExSRQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFRlRfVE9fUklHSFRfRU1CRURESU5HICAgID0gMTE7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIExFRlRfVE9fUklHSFRfRU1CRURESU5HLgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX0xFRlRfVE9fUklHSFRfRU1CRURESU5HID0gKGJ5dGUpTEVGVF9UT19SSUdIVF9FTUJFRERJTkc7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgTFJPCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVGVF9UT19SSUdIVF9PVkVSUklERSAgICAgPSAxMjsgIAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBKREstY29tcGF0aWJsZSBzeW5vbnltIGZvciBMRUZUX1RPX1JJR0hUX09WRVJSSURFLgorICAgICAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIERJUkVDVElPTkFMSVRZX0xFRlRfVE9fUklHSFRfT1ZFUlJJREUgPSAoYnl0ZSlMRUZUX1RPX1JJR0hUX09WRVJSSURFOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIEFMCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUklHSFRfVE9fTEVGVF9BUkFCSUMgICAgICAgPSAxMzsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgUklHSFRfVE9fTEVGVF9BUkFCSUMuCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfUklHSFRfVE9fTEVGVF9BUkFCSUMgPSAoYnl0ZSlSSUdIVF9UT19MRUZUX0FSQUJJQzsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBSTEUKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSSUdIVF9UT19MRUZUX0VNQkVERElORyAgICA9IDE0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBKREstY29tcGF0aWJsZSBzeW5vbnltIGZvciBSSUdIVF9UT19MRUZUX0VNQkVERElORy4KKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9SSUdIVF9UT19MRUZUX0VNQkVERElORyA9IChieXRlKVJJR0hUX1RPX0xFRlRfRU1CRURESU5HOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEaXJlY3Rpb25hbCB0eXBlIFJMTworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJJR0hUX1RPX0xFRlRfT1ZFUlJJREUgICAgID0gMTU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIFJJR0hUX1RPX0xFRlRfT1ZFUlJJREUuCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfUklHSFRfVE9fTEVGVF9PVkVSUklERSA9IChieXRlKVJJR0hUX1RPX0xFRlRfT1ZFUlJJREU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERpcmVjdGlvbmFsIHR5cGUgUERGCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUE9QX0RJUkVDVElPTkFMX0ZPUk1BVCAgICAgPSAxNjsKKworICAgICAgICAvKioKKyAgICAgICAgICogSkRLLWNvbXBhdGlibGUgc3lub255bSBmb3IgUE9QX0RJUkVDVElPTkFMX0ZPUk1BVC4KKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9QT1BfRElSRUNUSU9OQUxfRk9STUFUID0gKGJ5dGUpUE9QX0RJUkVDVElPTkFMX0ZPUk1BVDsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBOU00KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESVJfTk9OX1NQQUNJTkdfTUFSSyAgICAgICA9IDE3OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBKREstY29tcGF0aWJsZSBzeW5vbnltIGZvciBESVJfTk9OX1NQQUNJTkdfTUFSSy4KKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9OT05TUEFDSU5HX01BUksgPSAoYnl0ZSlESVJfTk9OX1NQQUNJTkdfTUFSSzsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGlyZWN0aW9uYWwgdHlwZSBCTgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJPVU5EQVJZX05FVVRSQUwgICAgICAgICAgID0gMTg7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEpESy1jb21wYXRpYmxlIHN5bm9ueW0gZm9yIEJPVU5EQVJZX05FVVRSQUwuCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUgRElSRUNUSU9OQUxJVFlfQk9VTkRBUllfTkVVVFJBTCA9IChieXRlKUJPVU5EQVJZX05FVVRSQUw7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE51bWJlciBvZiBkaXJlY3Rpb25hbCB0eXBlcworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENIQVJfRElSRUNUSU9OX0NPVU5UICAgICAgID0gMTk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVuZGVmaW5lZCBiaWRpcmVjdGlvbmFsIGNoYXJhY3RlciB0eXBlLiBVbmRlZmluZWQgPGNvZGU+Y2hhcjwvY29kZT4KKyAgICAgICAgICogdmFsdWVzIGhhdmUgdW5kZWZpbmVkIGRpcmVjdGlvbmFsaXR5IGluIHRoZSBVbmljb2RlIHNwZWNpZmljYXRpb24uCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBESVJFQ1RJT05BTElUWV9VTkRFRklORUQgPSAtMTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyTmFtZUl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyTmFtZUl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDEyODI4YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJOYW1lSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDMzMyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5sYW5nOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WYWx1ZUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3Rlck5hbWU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyTmFtZUNob2ljZTsKKworLyoqCisgKiA8cD5DbGFzcyBlbmFibGluZyBpdGVyYXRpb24gb2YgdGhlIGNvZGVwb2ludHMgYW5kIHRoZWlyIG5hbWVzLjwvcD4KKyAqIDxwPlJlc3VsdCBvZiBlYWNoIGl0ZXJhdGlvbiBjb250YWlucyBhIHZhbGlkIGNvZGVwb2ludCB0aGF0IGhhcyB2YWxpZAorICogbmFtZS48L3A+CisgKiA8cD5TZWUgVUNoYXJhY3Rlci5nZXROYW1lSXRlcmF0b3IoKSBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuPC9wPgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzaW5jZSByZWxlYXNlIDIuMSwgTWFyY2ggNSAyMDAyCisgKi8KK2NsYXNzIFVDaGFyYWN0ZXJOYW1lSXRlcmF0b3IgaW1wbGVtZW50cyBWYWx1ZUl0ZXJhdG9yCit7CisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiA8cD5HZXRzIHRoZSBuZXh0IHJlc3VsdCBmb3IgdGhpcyBpdGVyYXRpb24gYW5kIHJldHVybnMKKyAgICAqIHRydWUgaWYgd2UgYXJlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24sIGZhbHNlIG90aGVyd2lzZS48L3A+CisgICAgKiA8cD5JZiB0aGUgcmV0dXJuIGJvb2xlYW4gaXMgYSBmYWxzZSwgdGhlIGNvbnRlbnRzIG9mIGVsZW1lbnRzIHdpbGwgbm90CisgICAgKiBiZSB1cGRhdGVkLjwvcD4KKyAgICAqIEBwYXJhbSBlbGVtZW50IGZvciBzdG9yaW5nIHRoZSByZXN1bHQgY29kZXBvaW50IGFuZCBuYW1lCisgICAgKiBAcmV0dXJuIHRydWUgaWYgd2UgYXJlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24sIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqIEBzZWUgRWxlbWVudAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbmV4dChWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCkKKyAgICB7CisgICAgICAgIGlmIChtX2N1cnJlbnRfID49IG1fbGltaXRfKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9jaG9pY2VfICE9IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLlVOSUNPREVfMTBfQ0hBUl9OQU1FKSB7CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gbV9uYW1lXy5nZXRBbGdvcml0aG1MZW5ndGgoKTsKKyAgICAgICAgICAgIGlmIChtX2FsZ29yaXRobUluZGV4XyA8IGxlbmd0aCkgeworICAgICAgICAgICAgICAgIHdoaWxlIChtX2FsZ29yaXRobUluZGV4XyA8IGxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyBmaW5kIHRoZSBhbGdvcml0aG0gcmFuZ2UgdGhhdCBjb3VsZCBjb250YWluIG1fY3VycmVudF8KKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fYWxnb3JpdGhtSW5kZXhfIDwgMCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgbV9uYW1lXy5nZXRBbGdvcml0aG1FbmQobV9hbGdvcml0aG1JbmRleF8pIDwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fYWxnb3JpdGhtSW5kZXhfICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobV9hbGdvcml0aG1JbmRleF8gPCBsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaW50ZXJsZWF2ZSB0aGUgZGF0YS1kcml2ZW4gb25lcyB3aXRoIHRoZSBhbGdvcml0aG1pYyBvbmVzCisgICAgICAgICAgICAgICAgICAgIC8vIGl0ZXJhdGUgb3ZlciBhbGwgYWxnb3JpdGhtaWMgcmFuZ2VzOyBhc3N1bWUgdGhhdCB0aGV5IGFyZQorICAgICAgICAgICAgICAgICAgICAvLyBpbiBhc2NlbmRpbmcgb3JkZXIKKyAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gbV9uYW1lXy5nZXRBbGdvcml0aG1TdGFydChtX2FsZ29yaXRobUluZGV4Xyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2N1cnJlbnRfIDwgc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGdldCByaWQgb2YgdGhvc2UgY29kZXBvaW50cyB0aGF0IGFyZSBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBhbGdvcml0aG1pYyByYW5nZQorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZCA9IHN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fbGltaXRfIDw9IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kID0gbV9saW1pdF87CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWl0ZXJhdGVHcm91cChlbGVtZW50LCBlbmQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmIChtX2N1cnJlbnRfID49IG1fbGltaXRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZnRlciBpdGVyYXRlR3JvdXAgZmFpbHMsIGN1cnJlbnQgY29kZXBvaW50IG1heSBiZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ3JlYXRlciB0aGFuIGxpbWl0CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmludGVnZXIgPSBtX2N1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlICAgPSBtX25hbWVfLmdldEFsZ29yaXRobU5hbWUobV9hbGdvcml0aG1JbmRleF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc2V0IHRoZSBncm91cCBpbmRleCBpZiB3ZSBhcmUgaW4gdGhlIGFsZ29yaXRobWljIG5hbWVzCisgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBJbmRleF8gPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIGVudW1lcmF0ZSB0aGUgY2hhcmFjdGVyIG5hbWVzIGFmdGVyIHRoZSBsYXN0IGFsZ29yaXRobWljIHJhbmdlCisgICAgICAgIGlmICghaXRlcmF0ZUdyb3VwKGVsZW1lbnQsIG1fbGltaXRfKSkgeworICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG1fY2hvaWNlXyA9PSBVQ2hhcmFjdGVyTmFtZUNob2ljZS5FWFRFTkRFRF9DSEFSX05BTUUpIHsKKyAgICAgICAgICAgIGlmICghaXRlcmF0ZUV4dGVuZGVkKGVsZW1lbnQsIG1fbGltaXRfKSkgeworICAgICAgICAgICAgICAgIG1fY3VycmVudF8gKys7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgKiA8cD5SZXNldHMgdGhlIGl0ZXJhdG9yIHRvIHN0YXJ0IGl0ZXJhdGluZyBmcm9tIHRoZSBpbnRlZ2VyIGluZGV4CisgICAgKiBVQ2hhcmFjdGVyLk1JTl9WQUxVRSBvciBYIGlmIGEgc2V0UmFuZ2UoWCwgWSkgaGFzIGJlZW4gY2FsbGVkIHByZXZpb3VzbHkuCisgICAgKiA8L3A+CisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpCisgICAgeworICAgICAgICBtX2N1cnJlbnRfICAgICAgICA9IG1fc3RhcnRfOworICAgICAgICBtX2dyb3VwSW5kZXhfICAgICA9IC0xOworICAgICAgICBtX2FsZ29yaXRobUluZGV4XyA9IC0xOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlJlc3RyaWN0cyB0aGUgcmFuZ2Ugb2YgaW50ZWdlcnMgdG8gaXRlcmF0ZSBhbmQgcmVzZXRzIHRoZSBpdGVyYXRpb24KKyAgICAgKiB0byBiZWdpbiBhdCB0aGUgaW5kZXggYXJndW1lbnQgc3RhcnQuPC9wPgorICAgICAqIDxwPklmIHNldFJhbmdlKHN0YXJ0LCBlbmQpIGlzIG5vdCBwZXJmb3JtZWQgYmVmb3JlIG5leHQoZWxlbWVudCkgaXMKKyAgICAgKiBjYWxsZWQsIHRoZSBpdGVyYXRpb24gd2lsbCBzdGFydCBmcm9tIHRoZSBpbnRlZ2VyIGluZGV4CisgICAgICogVUNoYXJhY3Rlci5NSU5fVkFMVUUgYW5kIGVuZCBhdCBVQ2hhcmFjdGVyLk1BWF9WQUxVRS48L3A+CisgICAgICogPHA+CisgICAgICogSWYgdGhpcyByYW5nZSBpcyBzZXQgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgVUNoYXJhY3Rlci5NSU5fVkFMVUUgYW5kCisgICAgICogVUNoYXJhY3Rlci5NQVhfVkFMVUUsIG5leHQoZWxlbWVudCkgd2lsbCBhbHdheXMgcmV0dXJuIGZhbHNlLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgaW50ZWdlciBpbiByYW5nZSB0byBpdGVyYXRlCisgICAgICogQHBhcmFtIGxpbWl0IDEgaW50ZWdlciBhZnRlciB0aGUgbGFzdCBpbnRlZ2VyIGluIHJhbmdlCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gYXR0ZW1wdGluZyB0byBzZXQgYW4KKyAgICAgKiAgICAgICAgICAgIGlsbGVnYWwgcmFuZ2UuIEUuZyBsaW1pdCA8PSBzdGFydAorICAgICAqIEBkcmFmdCAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSYW5nZShpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIGlmIChzdGFydCA+PSBsaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAic3RhcnQgb3IgbGltaXQgaGFzIHRvIGJlIHZhbGlkIFVuaWNvZGUgY29kZXBvaW50cyBhbmQgc3RhcnQgPCBsaW1pdCIpOworICAgICAgICB9CisgICAgICAgIGlmIChzdGFydCA8IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICBtX3N0YXJ0XyA9IFVDaGFyYWN0ZXIuTUlOX1ZBTFVFOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9zdGFydF8gPSBzdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChsaW1pdCA+IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFICsgMSkgeworICAgICAgICAgICAgbV9saW1pdF8gPSBVQ2hhcmFjdGVyLk1BWF9WQUxVRSArIDE7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX2xpbWl0XyA9IGxpbWl0OworICAgICAgICB9CisgICAgICAgIG1fY3VycmVudF8gPSBtX3N0YXJ0XzsKKyAgICB9CisKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdG9yCisgICAgKiBAcGFyYW0gbmFtZSBuYW1lIGRhdGEKKyAgICAqIEBwYXJhbSBjaG9pY2UgbmFtZSBjaG9pY2UgZnJvbSB0aGUgY2xhc3MKKyAgICAqICAgICAgICAgICAgICAgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyTmFtZUNob2ljZQorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIFVDaGFyYWN0ZXJOYW1lSXRlcmF0b3IoVUNoYXJhY3Rlck5hbWUgbmFtZSwgaW50IGNob2ljZSkKKyAgICB7CisgICAgICAgIGlmKG5hbWU9PW51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVUNoYXJhY3Rlck5hbWUgbmFtZSBhcmd1bWVudCBjYW5ub3QgYmUgbnVsbC4gTWlzc2luZyB1bmFtZXMuaWN1PyIpOworICAgICAgICB9CisgICAgICAgIG1fbmFtZV8gICAgPSBuYW1lOworICAgICAgICAvLyBubyBleHBsaWNpdCBjaG9pY2UgaW4gVUNoYXJhY3RlciBzbyBubyBjaGVja3Mgb24gY2hvaWNlCisgICAgICAgIG1fY2hvaWNlXyAgPSBjaG9pY2U7CisgICAgICAgIG1fc3RhcnRfICAgPSBVQ2hhcmFjdGVyLk1JTl9WQUxVRTsKKyAgICAgICAgbV9saW1pdF8gICA9IFVDaGFyYWN0ZXIuTUFYX1ZBTFVFICsgMTsKKyAgICAgICAgbV9jdXJyZW50XyA9IG1fc3RhcnRfOworICAgIH0KKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogTmFtZSBkYXRhCisgICAgICovCisgICAgcHJpdmF0ZSBVQ2hhcmFjdGVyTmFtZSBtX25hbWVfOworICAgIC8qKgorICAgICAqIE5hbWUgY2hvaWNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9jaG9pY2VfOworICAgICAvKioKKyAgICAgKiBTdGFydCBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3N0YXJ0XzsKKyAgICAvKioKKyAgICAgKiBFbmQgKyAxIGl0ZXJhdGlvbiByYW5nZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbGltaXRfOworICAgIC8qKgorICAgICAqIEN1cnJlbnQgY29kZXBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9jdXJyZW50XzsKKyAgICAvKioKKyAgICAgKiBHcm91cCBpbmRleAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fZ3JvdXBJbmRleF8gPSAtMTsKKyAgICAvKioKKyAgICAgKiBBbGdvcml0aG0gaW5kZXgKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2FsZ29yaXRobUluZGV4XyA9IC0xOworICAgIC8qKgorICAgICogR3JvdXAgdXNlCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIEdST1VQX09GRlNFVFNfW10gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgY2hhcltVQ2hhcmFjdGVyTmFtZS5MSU5FU19QRVJfR1JPVVBfICsgMV07CisgICAgcHJpdmF0ZSBzdGF0aWMgY2hhciBHUk9VUF9MRU5HVEhTX1tdID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IGNoYXJbVUNoYXJhY3Rlck5hbWUuTElORVNfUEVSX0dST1VQXyArIDFdOworCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBHcm91cCBuYW1lIGl0ZXJhdGlvbiwgaXRlcmF0ZSBhbGwgdGhlIG5hbWVzIGluIHRoZSBjdXJyZW50IDMyLWdyb3VwIGFuZAorICAgICAqIHJldHVybnMgdGhlIGZpcnN0IGNvZGVwb2ludCB0aGF0IGhhcyBhIHZhbGlkIG5hbWUuCisgICAgICogQHBhcmFtIHJlc3VsdCBzdG9yZXMgdGhlIHJlc3VsdCBjb2RlcG9pbnQgYW5kIG5hbWUKKyAgICAgKiBAcGFyYW0gbGltaXQgbGFzdCBjb2RlcG9pbnQgKyAxIGluIHJhbmdlIHRvIHNlYXJjaAorICAgICAqIEByZXR1cm4gZmFsc2UgaWYgYSBjb2RlcG9pbnQgd2l0aCBhIG5hbWUgaXMgZm91bmQgaW4gZ3JvdXAgYW5kIHdlIGNhbgorICAgICAqICAgICAgICAgYmFpbCBmcm9tIGZ1cnRoZXIgaXRlcmF0aW9uLCB0cnVlIHRvIGNvbnRpbnVlIG9uIHdpdGggdGhlCisgICAgICogICAgICAgICBpdGVyYXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXRlcmF0ZVNpbmdsZUdyb3VwKFZhbHVlSXRlcmF0b3IuRWxlbWVudCByZXN1bHQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIHN5bmNocm9uaXplZChHUk9VUF9PRkZTRVRTXykgeworICAgICAgICBzeW5jaHJvbml6ZWQoR1JPVVBfTEVOR1RIU18pIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IG1fbmFtZV8uZ2V0R3JvdXBMZW5ndGhzKG1fZ3JvdXBJbmRleF8sIEdST1VQX09GRlNFVFNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1JPVVBfTEVOR1RIU18pOworICAgICAgICAgICAgd2hpbGUgKG1fY3VycmVudF8gPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIGludCAgICBvZmZzZXQgPSBVQ2hhcmFjdGVyTmFtZS5nZXRHcm91cE9mZnNldChtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSAgID0gbV9uYW1lXy5nZXRHcm91cE5hbWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCArIEdST1VQX09GRlNFVFNfW29mZnNldF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUk9VUF9MRU5HVEhTX1tvZmZzZXRdLCBtX2Nob2ljZV8pOworICAgICAgICAgICAgICAgIGlmICgobmFtZSA9PSBudWxsIHx8IG5hbWUubGVuZ3RoKCkgPT0gMCkgJiYKKyAgICAgICAgICAgICAgICAgICAgbV9jaG9pY2VfID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgICAgICAgICBuYW1lID0gbV9uYW1lXy5nZXRFeHRlbmRlZE5hbWUobV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChuYW1lICE9IG51bGwgJiYgbmFtZS5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmludGVnZXIgPSBtX2N1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICByZXN1bHQudmFsdWUgICA9IG5hbWU7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKysgbV9jdXJyZW50XzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdyb3VwIG5hbWUgaXRlcmF0aW9uLCBpdGVyYXRlIGFsbCB0aGUgbmFtZXMgaW4gdGhlIGN1cnJlbnQgMzItZ3JvdXAgYW5kCisgICAgICogcmV0dXJucyB0aGUgZmlyc3QgY29kZXBvaW50IHRoYXQgaGFzIGEgdmFsaWQgbmFtZS4KKyAgICAgKiBAcGFyYW0gcmVzdWx0IHN0b3JlcyB0aGUgcmVzdWx0IGNvZGVwb2ludCBhbmQgbmFtZQorICAgICAqIEBwYXJhbSBsaW1pdCBsYXN0IGNvZGVwb2ludCArIDEgaW4gcmFuZ2UgdG8gc2VhcmNoCisgICAgICogQHJldHVybiBmYWxzZSBpZiBhIGNvZGVwb2ludCB3aXRoIGEgbmFtZSBpcyBmb3VuZCBpbiBncm91cCBhbmQgd2UgY2FuCisgICAgICogICAgICAgICBiYWlsIGZyb20gZnVydGhlciBpdGVyYXRpb24sIHRydWUgdG8gY29udGludWUgb24gd2l0aCB0aGUKKyAgICAgKiAgICAgICAgIGl0ZXJhdGlvbgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpdGVyYXRlR3JvdXAoVmFsdWVJdGVyYXRvci5FbGVtZW50IHJlc3VsdCwgaW50IGxpbWl0KQorICAgIHsKKyAgICAgICAgaWYgKG1fZ3JvdXBJbmRleF8gPCAwKSB7CisgICAgICAgICAgICBtX2dyb3VwSW5kZXhfID0gbV9uYW1lXy5nZXRHcm91cChtX2N1cnJlbnRfKTsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlIChtX2dyb3VwSW5kZXhfIDwgbV9uYW1lXy5tX2dyb3VwY291bnRfICYmCisgICAgICAgICAgICAgICBtX2N1cnJlbnRfIDwgbGltaXQpIHsKKyAgICAgICAgICAgIC8vIGl0ZXJhdGUgdGlsbCB0aGUgbGFzdCBncm91cCBvciB0aGUgbGFzdCBjb2RlcG9pbnQKKyAgICAgICAgICAgIGludCBzdGFydE1TQiA9IFVDaGFyYWN0ZXJOYW1lLmdldENvZGVwb2ludE1TQihtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgIGludCBnTVNCICAgICA9IG1fbmFtZV8uZ2V0R3JvdXBNU0IobV9ncm91cEluZGV4Xyk7IC8vIGNhbiBiZSAtMQorICAgICAgICAgICAgaWYgKHN0YXJ0TVNCID09IGdNU0IpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnRNU0IgPT0gVUNoYXJhY3Rlck5hbWUuZ2V0Q29kZXBvaW50TVNCKGxpbWl0IC0gMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgc3RhcnQgYW5kIGxpbWl0IC0gMSBhcmUgaW4gdGhlIHNhbWUgZ3JvdXAsIHRoZW4gZW51bWVyYXRlCisgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgaW4gdGhhdCBvbmUKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdGVTaW5nbGVHcm91cChyZXN1bHQsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gZW51bWVyYXRlIGNoYXJhY3RlcnMgaW4gdGhlIHBhcnRpYWwgc3RhcnQgZ3JvdXAKKyAgICAgICAgICAgICAgICAvLyBpZiAobV9uYW1lXy5nZXRHcm91cE9mZnNldChtX2N1cnJlbnRfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpdGVyYXRlU2luZ2xlR3JvdXAocmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJOYW1lLmdldEdyb3VwTGltaXQoZ01TQikpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKysgbV9ncm91cEluZGV4XzsgLy8gY29udGludWUgd2l0aCB0aGUgbmV4dCBncm91cAorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc3RhcnRNU0IgPiBnTVNCKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHdlIHN0YXJ0IGVudW1lcmF0aW5nIHdpdGggdGhlIGZpcnN0IGdyb3VwCisgICAgICAgICAgICAgICAgICAgIC8vIGFmdGVyIHN0YXJ0CisgICAgICAgICAgICAgICAgICAgIG1fZ3JvdXBJbmRleF8gKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgZ01JTiA9IFVDaGFyYWN0ZXJOYW1lLmdldEdyb3VwTWluKGdNU0IpOworICAgICAgICAgICAgICAgIGlmIChnTUlOID4gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgZ01JTiA9IGxpbWl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobV9jaG9pY2VfID09IFVDaGFyYWN0ZXJOYW1lQ2hvaWNlLkVYVEVOREVEX0NIQVJfTkFNRSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWl0ZXJhdGVFeHRlbmRlZChyZXN1bHQsIGdNSU4pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9jdXJyZW50XyA9IGdNSU47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJdGVyYXRlIGV4dGVuZGVkIG5hbWVzLgorICAgICAqIEBwYXJhbSByZXN1bHQgc3RvcmVzIHRoZSByZXN1bHQgY29kZXBvaW50IGFuZCBuYW1lCisgICAgICogQHBhcmFtIGxpbWl0IGxhc3QgY29kZXBvaW50ICsgMSBpbiByYW5nZSB0byBzZWFyY2gKKyAgICAgKiBAcmV0dXJuIGZhbHNlIGlmIGEgY29kZXBvaW50IHdpdGggYSBuYW1lIGlzIGZvdW5kIGFuZCB3ZSBjYW4KKyAgICAgKiAgICAgICAgIGJhaWwgZnJvbSBmdXJ0aGVyIGl0ZXJhdGlvbiwgdHJ1ZSB0byBjb250aW51ZSBvbiB3aXRoIHRoZQorICAgICAqICAgICAgICAgaXRlcmF0aW9uICh0aGlzIHdpbGwgYWx3YXlzIGJlIGZhbHNlIGZvciB2YWxpZCBjb2RlcG9pbnRzKQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpdGVyYXRlRXh0ZW5kZWQoVmFsdWVJdGVyYXRvci5FbGVtZW50IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIHdoaWxlIChtX2N1cnJlbnRfIDwgbGltaXQpIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gbV9uYW1lXy5nZXRFeHRlbmRlZE9yMTBOYW1lKG1fY3VycmVudF8pOworICAgICAgICAgICAgaWYgKG5hbWUgIT0gbnVsbCAmJiBuYW1lLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5pbnRlZ2VyID0gbV9jdXJyZW50XzsKKyAgICAgICAgICAgICAgICByZXN1bHQudmFsdWUgICA9IG5hbWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKysgbV9jdXJyZW50XzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTQwNDMzNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VDaGFyYWN0ZXJUeXBlSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDcwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1Lmxhbmc7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRyaWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworLyoqCisgKiBDbGFzcyBlbmFibGluZyBpdGVyYXRpb24gb2YgdGhlIGNvZGVwb2ludHMgYWNjb3JkaW5nIHRvIHRoZWlyIHR5cGVzLgorICogUmVzdWx0IG9mIGVhY2ggaXRlcmF0aW9uIGNvbnRhaW5zIHRoZSBpbnRlcnZhbCBvZiBjb2RlcG9pbnRzIHRoYXQgaGF2ZQorICogdGhlIHNhbWUgdHlwZS4KKyAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAqIDxwcmU+CisgKiBSYW5nZVZhbHVlSXRlcmF0b3IgaXRlcmF0b3IgPSBVQ2hhcmFjdGVyLmdldFR5cGVJdGVyYXRvcigpOworICogUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICogd2hpbGUgKGl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvZGVwb2ludCBcXHUiICsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5zdGFydCkgKyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIiB0byBjb2RlcG9pbnQgXFx1IiArCisgKiAgICAgICAgICAgICAgICAgICAgICAgIEludGVnZXIudG9IZXhTdHJpbmcoZWxlbWVudC5saW1pdCAtIDEpICsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICIgaGFzIHRoZSBjaGFyYWN0ZXIgdHlwZSAiICsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQudmFsdWUpOworICogfQorICogPC9wcmU+CisgKiBAYXV0aG9yIHN5bndlZQorICogQHNlZSBjb20uaWJtLmljdS51dGlsLlRyaWVJdGVyYXRvcgorICogQHNpbmNlIHJlbGVhc2UgMi4xLCBKYW4gMjQgMjAwMgorICovCitjbGFzcyBVQ2hhcmFjdGVyVHlwZUl0ZXJhdG9yIGV4dGVuZHMgVHJpZUl0ZXJhdG9yCit7CisgICAgLy8gcHJvdGVjdGVkIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogVHJpZUVudW1lcmF0aW9uIGNvbnN0cnVjdG9yCisgICAgKiBAcGFyYW0gcHJvcGVydHkgdGhlIHVuaWNvZGUgY2hhcmFjdGVyIHByb3BlcnRpZXMgdG8gYmUgdXNlZAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJvdGVjdGVkIFVDaGFyYWN0ZXJUeXBlSXRlcmF0b3IoVUNoYXJhY3RlclByb3BlcnR5IHByb3BlcnR5KQorICAgIHsKKyAgICAgICBzdXBlcihwcm9wZXJ0eS5tX3RyaWVfKTsKKyAgICB9CisgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogQ2FsbGVkIGJ5IG5leHRFbGVtZW50KCkgdG8gZXh0cmFjdHMgYSAzMiBiaXQgdmFsdWUgZnJvbSBhIHRyaWUgdmFsdWUKKyAgICAqIHVzZWQgZm9yIGNvbXBhcmlzb24uCisgICAgKiBUaGlzIG1ldGhvZCBpcyB0byBiZSBvdmVyd3JpdHRlbiBpZiBzcGVjaWFsIG1hbmlwdWxhdGlvbiBpcyB0byBiZSBkb25lCisgICAgKiB0byByZXRyaWV2ZSBhIHJlbGV2YW50IGNvbXBhcmlzb24uCisgICAgKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiBpcyB0byByZXR1cm4gdGhlIHZhbHVlIGFzIGl0IGlzLgorICAgICogQHBhcmFtIHZhbHVlIGEgdmFsdWUgZnJvbSB0aGUgdHJpZQorICAgICogQHJldHVybiBleHRyYWN0ZWQgdmFsdWUKKyAgICAqLworICAgIHByb3RlY3RlZCBpbnQgZXh0cmFjdChpbnQgdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gdmFsdWUgJiBVQ2hhcmFjdGVyUHJvcGVydHkuVFlQRV9NQVNLOworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgcHJvcGVydHkKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3Byb3BlcnR5X1tdOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VQcm9wZXJ0eS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVVByb3BlcnR5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjhhOTQ5MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VQcm9wZXJ0eS5qYXZhCkBAIC0wLDAgKzEsODUxIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIGludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworLyoqCisgKiA8cD5TZWxlY3Rpb24gY29uc3RhbnRzIGZvciBVbmljb2RlIHByb3BlcnRpZXMuIDwvcD4KKyAqIDxwPlRoZXNlIGNvbnN0YW50cyBhcmUgdXNlZCBpbiBmdW5jdGlvbnMgbGlrZSAKKyAqIFVDaGFyYWN0ZXIuaGFzQmluYXJ5UHJvcGVydHkoaW50KSB0byBzZWxlY3Qgb25lIG9mIHRoZSBVbmljb2RlIHByb3BlcnRpZXMuIAorICogPC9wPgorICogPHA+VGhlIHByb3BlcnRpZXMgQVBJcyBhcmUgaW50ZW5kZWQgdG8gcmVmbGVjdCBVbmljb2RlIHByb3BlcnRpZXMgYXMgCisgKiBkZWZpbmVkIGluIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSAoVUNEKSBhbmQgVW5pY29kZSBUZWNobmljYWwgCisgKiBSZXBvcnRzIChVVFIpLjwvcD4KKyAqIDxwPkZvciBkZXRhaWxzIGFib3V0IHRoZSBwcm9wZXJ0aWVzIHNlZSA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmc+CisgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnPC9hPi48L3A+IAorICogPHA+Rm9yIG5hbWVzIG9mIFVuaWNvZGUgcHJvcGVydGllcyBzZWUgdGhlIFVDRCBmaWxlIFByb3BlcnR5QWxpYXNlcy50eHQuCisgKiA8L3A+IAorICogPHA+SW1wb3J0YW50OiBJZiBJQ1UgaXMgYnVpbHQgd2l0aCBVQ0QgZmlsZXMgZnJvbSBVbmljb2RlIHZlcnNpb25zIGJlbG93IAorICogMy4yLCB0aGVuIHByb3BlcnRpZXMgbWFya2VkIHdpdGggIm5ldyIgYXJlIG5vdCBvciBub3QgZnVsbHkgCisgKiBhdmFpbGFibGUuIENoZWNrIFVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKSB0byBiZSBzdXJlLjwvcD4KKyAqIEBhdXRob3IgU3luIFdlZSBRdWVrCisgKiBAc3RhYmxlIElDVSAyLjYKKyAqIEBzZWUgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgVVByb3BlcnR5Cit7CisgICAgLy8gcHVibGljIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIAorICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgQWxwaGFiZXRpYy4gPC9wPgorICAgICAqIDxwPlByb3BlcnR5IGZvciBVQ2hhcmFjdGVyLmlzVUFscGhhYmV0aWMoKSwgZGlmZmVyZW50IGZyb20gdGhlIHByb3BlcnR5IAorICAgICAqIGluIFVDaGFyYWN0ZXIuaXNhbHBoYSgpLjwvcD4KKyAgICAgKiA8cD5MdSArIExsICsgTHQgKyBMbSArIExvICsgTmwgKyBPdGhlcl9BbHBoYWJldGljLjwvcD4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUxQSEFCRVRJQyA9IDA7IAorCisgICAgLyoqIAorICAgICAqIEZpcnN0IGNvbnN0YW50IGZvciBiaW5hcnkgVW5pY29kZSBwcm9wZXJ0aWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklOQVJZX1NUQVJUID0gQUxQSEFCRVRJQzsKKworICAgIC8qKiAKKyAgICAgKiBCaW5hcnkgcHJvcGVydHkgQVNDSUlfSGV4X0RpZ2l0ICgwLTkgQS1GIGEtZikuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFTQ0lJX0hFWF9ESUdJVCA9IDE7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBCaWRpX0NvbnRyb2wuPC9wPgorICAgICAqIDxwPkZvcm1hdCBjb250cm9scyB3aGljaCBoYXZlIHNwZWNpZmljIGZ1bmN0aW9ucyBpbiB0aGUgQmlkaSBBbGdvcml0aG0uCisgICAgICogPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklESV9DT05UUk9MID0gMjsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IEJpZGlfTWlycm9yZWQuPC9wPiAKKyAgICAgKiA8cD5DaGFyYWN0ZXJzIHRoYXQgbWF5IGNoYW5nZSBkaXNwbGF5IGluIFJUTCB0ZXh0LjwvcD4gCisgICAgICogPHA+UHJvcGVydHkgZm9yIFVDaGFyYWN0ZXIuaXNNaXJyb3JlZCgpLjwvcD4gCisgICAgICogPHA+U2VlIEJpZGkgQWxnb3JpdGhtOyBVVFIgOS48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCSURJX01JUlJPUkVEID0gMzsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IERhc2guPC9wPiAKKyAgICAgKiA8cD5WYXJpYXRpb25zIG9mIGRhc2hlcy48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBEQVNIID0gNDsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IERlZmF1bHRfSWdub3JhYmxlX0NvZGVfUG9pbnQgKG5ldykuCisgICAgICogPC9wPiAKKyAgICAgKiA8cD5Qcm9wZXJ0eSB0aGF0IGluZGljYXRlcyBjb2RlcG9pbnQgaXMgaWdub3JhYmxlIGluIG1vc3QgcHJvY2Vzc2luZy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+Q29kZXBvaW50cyAoMjA2MC4uMjA2RiwgRkZGMC4uRkZGQiwgRTAwMDAuLkUwRkZGKSArIAorICAgICAqIE90aGVyX0RlZmF1bHRfSWdub3JhYmxlX0NvZGVfUG9pbnQgKyAoQ2YgKyBDYyArIENzIC0gV2hpdGVfU3BhY2UpPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9JR05PUkFCTEVfQ09ERV9QT0lOVCA9IDU7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBEZXByZWNhdGVkIChuZXcpLjwvcD4gCisgICAgICogPHA+VGhlIHVzYWdlIG9mIGRlcHJlY2F0ZWQgY2hhcmFjdGVycyBpcyBzdHJvbmdseSBkaXNjb3VyYWdlZC48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERVBSRUNBVEVEID0gNjsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IERpYWNyaXRpYy48L3A+IAorICAgICAqIDxwPkNoYXJhY3RlcnMgdGhhdCBsaW5ndWlzdGljYWxseSBtb2RpZnkgdGhlIG1lYW5pbmcgb2YgYW5vdGhlciAKKyAgICAgKiBjaGFyYWN0ZXIgdG8gd2hpY2ggdGhleSBhcHBseS48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBESUFDUklUSUMgPSA3OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgRXh0ZW5kZXIuPC9wPiAKKyAgICAgKiA8cD5FeHRlbmQgdGhlIHZhbHVlIG9yIHNoYXBlIG9mIGEgcHJlY2VkaW5nIGFscGhhYmV0aWMgY2hhcmFjdGVyLCBlLmcuCisgICAgICogbGVuZ3RoIGFuZCBpdGVyYXRpb24gbWFya3MuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRVhURU5ERVIgPSA4OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgRnVsbF9Db21wb3NpdGlvbl9FeGNsdXNpb24uPC9wPiAKKyAgICAgKiA8cD5Db21wb3NpdGlvbkV4Y2x1c2lvbnMudHh0ICsgU2luZ2xldG9uIERlY29tcG9zaXRpb25zICsgCisgICAgICogTm9uLVN0YXJ0ZXIgRGVjb21wb3NpdGlvbnMuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRlVMTF9DT01QT1NJVElPTl9FWENMVVNJT04gPSA5OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgR3JhcGhlbWVfQmFzZSAobmV3KS48L3A+CisgICAgICogPHA+Rm9yIHByb2dyYW1tYXRpYyBkZXRlcm1pbmF0aW9uIG9mIGdyYXBoZW1lIGNsdXN0ZXIgYm91bmRhcmllcy4gCisgICAgICogWzAuLjEwRkZGRl0tQ2MtQ2YtQ3MtQ28tQ24tWmwtWnAtR3JhcGhlbWVfTGluay1HcmFwaGVtZV9FeHRlbmQtQ0dKPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR1JBUEhFTUVfQkFTRSA9IDEwOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgR3JhcGhlbWVfRXh0ZW5kIChuZXcpLjwvcD4gCisgICAgICogPHA+Rm9yIHByb2dyYW1tYXRpYyBkZXRlcm1pbmF0aW9uIG9mIGdyYXBoZW1lIGNsdXN0ZXIgYm91bmRhcmllcy48L3A+IAorICAgICAqIDxwPk1lK01uK01jK090aGVyX0dyYXBoZW1lX0V4dGVuZC1HcmFwaGVtZV9MaW5rLUNHSjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdSQVBIRU1FX0VYVEVORCA9IDExOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgR3JhcGhlbWVfTGluayAobmV3KS48L3A+IAorICAgICAqIDxwPkZvciBwcm9ncmFtbWF0aWMgZGV0ZXJtaW5hdGlvbiBvZiBncmFwaGVtZSBjbHVzdGVyIGJvdW5kYXJpZXMuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR1JBUEhFTUVfTElOSyA9IDEyOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgSGV4X0RpZ2l0LjwvcD4gCisgICAgICogPHA+Q2hhcmFjdGVycyBjb21tb25seSB1c2VkIGZvciBoZXhhZGVjaW1hbCBudW1iZXJzLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhFWF9ESUdJVCA9IDEzOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgSHlwaGVuLjwvcD4gCisgICAgICogPHA+RGFzaGVzIHVzZWQgdG8gbWFyayBjb25uZWN0aW9ucyBiZXR3ZWVuIHBpZWNlcyBvZiB3b3JkcywgcGx1cyB0aGUgCisgICAgICogS2F0YWthbmEgbWlkZGxlIGRvdC48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIWVBIRU4gPSAxNDsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IElEX0NvbnRpbnVlLjwvcD4KKyAgICAgKiA8cD5DaGFyYWN0ZXJzIHRoYXQgY2FuIGNvbnRpbnVlIGFuIGlkZW50aWZpZXIuPC9wPiAKKyAgICAgKiA8cD5JRF9TdGFydCtNbitNYytOZCtQYzwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElEX0NPTlRJTlVFID0gMTU7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBJRF9TdGFydC48L3A+IAorICAgICAqIDxwPkNoYXJhY3RlcnMgdGhhdCBjYW4gc3RhcnQgYW4gaWRlbnRpZmllci48L3A+IAorICAgICAqIDxwPkx1K0xsK0x0K0xtK0xvK05sPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSURfU1RBUlQgPSAxNjsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IElkZW9ncmFwaGljLjwvcD4gCisgICAgICogPHA+Q0pLViBpZGVvZ3JhcGhzLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElERU9HUkFQSElDID0gMTc7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBJRFNfQmluYXJ5X09wZXJhdG9yIChuZXcpLjwvcD4gCisgICAgICogPHA+Rm9yIHByb2dyYW1tYXRpYyBkZXRlcm1pbmF0aW9uIG9mIElkZW9ncmFwaGljIERlc2NyaXB0aW9uIFNlcXVlbmNlcy4KKyAgICAgKiA8L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJRFNfQklOQVJZX09QRVJBVE9SID0gMTg7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBJRFNfVHJpbmFyeV9PcGVyYXRvciAobmV3KS48L3A+IAorICAgICAqIDxwP0ZvciBwcm9ncmFtbWF0aWMgZGV0ZXJtaW5hdGlvbiBvZiBJZGVvZ3JhcGhpYyBEZXNjcmlwdGlvbiAKKyAgICAgKiBTZXF1ZW5jZXMuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSURTX1RSSU5BUllfT1BFUkFUT1IgPSAxOTsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IEpvaW5fQ29udHJvbC48L3A+IAorICAgICAqIDxwPkZvcm1hdCBjb250cm9scyBmb3IgY3Vyc2l2ZSBqb2luaW5nIGFuZCBsaWdhdGlvbi48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKT0lOX0NPTlRST0wgPSAyMDsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IExvZ2ljYWxfT3JkZXJfRXhjZXB0aW9uIChuZXcpLjwvcD4gCisgICAgICogPHA+Q2hhcmFjdGVycyB0aGF0IGRvIG5vdCB1c2UgbG9naWNhbCBvcmRlciBhbmQgcmVxdWlyZSBzcGVjaWFsIAorICAgICAqIGhhbmRsaW5nIGluIG1vc3QgcHJvY2Vzc2luZy48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT0dJQ0FMX09SREVSX0VYQ0VQVElPTiA9IDIxOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgTG93ZXJjYXNlLjwvcD4gCisgICAgICogPHA+U2FtZSBhcyBVQ2hhcmFjdGVyLmlzVUxvd2VyY2FzZSgpLCBkaWZmZXJlbnQgZnJvbSAKKyAgICAgKiBVQ2hhcmFjdGVyLmlzbG93ZXIoKS48L3A+IAorICAgICAqIDxwPkxsK090aGVyX0xvd2VyY2FzZTwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPV0VSQ0FTRSA9IDIyOyAKKworICAgIC8qKiA8cD5CaW5hcnkgcHJvcGVydHkgTWF0aC48L3A+IAorICAgICAqIDxwPlNtK090aGVyX01hdGg8L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVRIID0gMjM7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBOb25jaGFyYWN0ZXJfQ29kZV9Qb2ludC48L3A+IAorICAgICAqIDxwPkNvZGUgcG9pbnRzIHRoYXQgYXJlIGV4cGxpY2l0bHkgZGVmaW5lZCBhcyBpbGxlZ2FsIGZvciB0aGUgZW5jb2RpbmcgCisgICAgICogb2YgY2hhcmFjdGVycy48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05DSEFSQUNURVJfQ09ERV9QT0lOVCA9IDI0OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgUXVvdGF0aW9uX01hcmsuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUVVPVEFUSU9OX01BUksgPSAyNTsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IFJhZGljYWwgKG5ldykuPC9wPiAKKyAgICAgKiA8cD5Gb3IgcHJvZ3JhbW1hdGljIGRldGVybWluYXRpb24gb2YgSWRlb2dyYXBoaWMgRGVzY3JpcHRpb24gCisgICAgICogU2VxdWVuY2VzLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJBRElDQUwgPSAyNjsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IFNvZnRfRG90dGVkIChuZXcpLjwvcD4gCisgICAgICogPHA+Q2hhcmFjdGVycyB3aXRoIGEgInNvZnQgZG90IiwgbGlrZSBpIG9yIGouPC9wPgorICAgICAqIDxwPkFuIGFjY2VudCBwbGFjZWQgb24gdGhlc2UgY2hhcmFjdGVycyBjYXVzZXMgdGhlIGRvdCB0byBkaXNhcHBlYXIuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU09GVF9ET1RURUQgPSAyNzsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IFRlcm1pbmFsX1B1bmN0dWF0aW9uLjwvcD4gCisgICAgICogPHA+UHVuY3R1YXRpb24gY2hhcmFjdGVycyB0aGF0IGdlbmVyYWxseSBtYXJrIHRoZSBlbmQgb2YgdGV4dHVhbCAKKyAgICAgKiB1bml0cy48L3A+IAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURVJNSU5BTF9QVU5DVFVBVElPTiA9IDI4OyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgVW5pZmllZF9JZGVvZ3JhcGggKG5ldykuPC9wPiAKKyAgICAgKiA8cD5Gb3IgcHJvZ3JhbW1hdGljIGRldGVybWluYXRpb24gb2YgSWRlb2dyYXBoaWMgRGVzY3JpcHRpb24gCisgICAgICogU2VxdWVuY2VzLjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOSUZJRURfSURFT0dSQVBIID0gMjk7IAorCisgICAgLyoqIAorICAgICAqIDxwPkJpbmFyeSBwcm9wZXJ0eSBVcHBlcmNhc2UuPC9wPiAKKyAgICAgKiA8cD5TYW1lIGFzIFVDaGFyYWN0ZXIuaXNVVXBwZXJjYXNlKCksIGRpZmZlcmVudCBmcm9tIAorICAgICAqIFVDaGFyYWN0ZXIuaXNVcHBlckNhc2UoKS48L3A+IAorICAgICAqIDxwPkx1K090aGVyX1VwcGVyY2FzZTwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVQUEVSQ0FTRSA9IDMwOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgV2hpdGVfU3BhY2UuPC9wPiAKKyAgICAgKiA8cD5TYW1lIGFzIFVDaGFyYWN0ZXIuaXNVV2hpdGVTcGFjZSgpLCBkaWZmZXJlbnQgZnJvbSAKKyAgICAgKiBVQ2hhcmFjdGVyLmlzU3BhY2UoKSBhbmQgVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoKS48L3A+IAorICAgICAqIFNwYWNlIGNoYXJhY3RlcnMrVEFCK0NSK0xGLVpXU1AtWldOQlNQPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0hJVEVfU1BBQ0UgPSAzMTsgCisKKyAgICAvKiogCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IFhJRF9Db250aW51ZS48L3A+IAorICAgICAqIDxwPklEX0NvbnRpbnVlIG1vZGlmaWVkIHRvIGFsbG93IGNsb3N1cmUgdW5kZXIgbm9ybWFsaXphdGlvbiBmb3JtcyAKKyAgICAgKiBORktDIGFuZCBORktELjwvcD4gCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFhJRF9DT05USU5VRSA9IDMyOyAKKworICAgIC8qKiAKKyAgICAgKiA8cD5CaW5hcnkgcHJvcGVydHkgWElEX1N0YXJ0LjwvcD4gCisgICAgICogPHA+SURfU3RhcnQgbW9kaWZpZWQgdG8gYWxsb3cgY2xvc3VyZSB1bmRlciBub3JtYWxpemF0aW9uIGZvcm1zIE5GS0MgCisgICAgICogYW5kIE5GS0QuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgWElEX1NUQVJUID0gMzM7IAorCisgICAgLyoqCisgICAgICogPHA+QmluYXJ5IHByb3BlcnR5IENhc2VfU2Vuc2l0aXZlLjwvcD4KKyAgICAgKiA8cD5FaXRoZXIgdGhlIHNvdXJjZSBvZiBhIGNhc2UKKyAgICAgKiBtYXBwaW5nIG9yIF9pbl8gdGhlIHRhcmdldCBvZiBhIGNhc2UgbWFwcGluZy4gTm90IHRoZSBzYW1lIGFzCisgICAgICogdGhlIGdlbmVyYWwgY2F0ZWdvcnkgQ2FzZWRfTGV0dGVyLjwvcD4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDQVNFX1NFTlNJVElWRSA9IDM0OworCisgICAgLyoqCisgICAgICogQmluYXJ5IHByb3BlcnR5IFNUZXJtIChuZXcgaW4gVW5pY29kZSA0LjAuMSkuCisgICAgICogU2VudGVuY2UgVGVybWluYWwuIFVzZWQgaW4gVUFYICMyOTogVGV4dCBCb3VuZGFyaWVzCisgICAgICogKGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjI5LykKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNfVEVSTSA9IDM1OworCisgICAgLyoqCisgICAgICogQmluYXJ5IHByb3BlcnR5IFZhcmlhdGlvbl9TZWxlY3RvciAobmV3IGluIFVuaWNvZGUgNC4wLjEpLgorICAgICAqIEluZGljYXRlcyBhbGwgdGhvc2UgY2hhcmFjdGVycyB0aGF0IHF1YWxpZnkgYXMgVmFyaWF0aW9uIFNlbGVjdG9ycy4KKyAgICAgKiBGb3IgZGV0YWlscyBvbiB0aGUgYmVoYXZpb3Igb2YgdGhlc2UgY2hhcmFjdGVycywKKyAgICAgKiBzZWUgU3RhbmRhcmRpemVkVmFyaWFudHMuaHRtbCBhbmQgMTUuNiBWYXJpYXRpb24gU2VsZWN0b3JzLgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVkFSSUFUSU9OX1NFTEVDVE9SID0gMzY7CisKKyAgICAvKiogCisgICAgICogQmluYXJ5IHByb3BlcnR5IE5GRF9JbmVydC4KKyAgICAgKiBJQ1Utc3BlY2lmaWMgcHJvcGVydHkgZm9yIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW5lcnQgdW5kZXIgTkZELAorICAgICAqIGkuZS4sIHRoZXkgZG8gbm90IGludGVyYWN0IHdpdGggYWRqYWNlbnQgY2hhcmFjdGVycy4KKyAgICAgKiBVc2VkIGZvciBleGFtcGxlIGluIG5vcm1hbGl6aW5nIHRyYW5zZm9ybXMgaW4gaW5jcmVtZW50YWwgbW9kZQorICAgICAqIHRvIGZpbmQgdGhlIGJvdW5kYXJ5IG9mIHNhZmVseSBub3JtYWxpemFibGUgdGV4dCBkZXNwaXRlIHBvc3NpYmxlCisgICAgICogdGV4dCBhZGRpdGlvbnMuCisgICAgICoKKyAgICAgKiBUaGVyZSBpcyBvbmUgc3VjaCBwcm9wZXJ0eSBwZXIgbm9ybWFsaXphdGlvbiBmb3JtLgorICAgICAqIFRoZXNlIHByb3BlcnRpZXMgYXJlIGNvbXB1dGVkIGFzIGZvbGxvd3MgLSBhbiBpbmVydCBjaGFyYWN0ZXIgaXM6CisgICAgICogYSkgdW5hc3NpZ25lZCwgb3IgQUxMIG9mIHRoZSBmb2xsb3dpbmc6CisgICAgICogYikgb2YgY29tYmluaW5nIGNsYXNzIDAuCisgICAgICogYykgbm90IGRlY29tcG9zZWQgYnkgdGhpcyBub3JtYWxpemF0aW9uIGZvcm0uCisgICAgICogQU5EIGlmIE5GQyBvciBORktDLAorICAgICAqIGQpIGNhbiBuZXZlciBjb21wb3NlIHdpdGggYSBwcmV2aW91cyBjaGFyYWN0ZXIuCisgICAgICogZSkgY2FuIG5ldmVyIGNvbXBvc2Ugd2l0aCBhIGZvbGxvd2luZyBjaGFyYWN0ZXIuCisgICAgICogZikgY2FuIG5ldmVyIGNoYW5nZSBpZiBhbm90aGVyIGNoYXJhY3RlciBpcyBhZGRlZC4KKyAgICAgKiBFeGFtcGxlOiBhLWJyZXZlIG1pZ2h0IHNhdGlzZnkgYWxsIGJ1dCBmLCBidXQgaWYgeW91CisgICAgICogYWRkIGFuIG9nb25layBpdCBjaGFuZ2VzIHRvIGEtb2dvbmVrICsgYnJldmUKKyAgICAgKgorICAgICAqIFNlZSBhbHNvIGNvbS5pYm0udGV4dC5VQ0QuTkZTa2lwcGFibGUgaW4gdGhlIElDVTRKIHJlcG9zaXRvcnksCisgICAgICogYW5kIGljdS9zb3VyY2UvY29tbW9uL3Vub3JtaW1wLmggLgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkZEX0lORVJUID0gMzc7CisKKyAgICAvKiogCisgICAgICogQmluYXJ5IHByb3BlcnR5IE5GS0RfSW5lcnQuCisgICAgICogSUNVLXNwZWNpZmljIHByb3BlcnR5IGZvciBjaGFyYWN0ZXJzIHRoYXQgYXJlIGluZXJ0IHVuZGVyIE5GS0QsCisgICAgICogaS5lLiwgdGhleSBkbyBub3QgaW50ZXJhY3Qgd2l0aCBhZGphY2VudCBjaGFyYWN0ZXJzLgorICAgICAqIFVzZWQgZm9yIGV4YW1wbGUgaW4gbm9ybWFsaXppbmcgdHJhbnNmb3JtcyBpbiBpbmNyZW1lbnRhbCBtb2RlCisgICAgICogdG8gZmluZCB0aGUgYm91bmRhcnkgb2Ygc2FmZWx5IG5vcm1hbGl6YWJsZSB0ZXh0IGRlc3BpdGUgcG9zc2libGUKKyAgICAgKiB0ZXh0IGFkZGl0aW9ucy4KKyAgICAgKiBAc2VlICNORkRfSU5FUlQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMCAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORktEX0lORVJUID0gMzg7CisKKyAgICAvKiogCisgICAgICogQmluYXJ5IHByb3BlcnR5IE5GQ19JbmVydC4KKyAgICAgKiBJQ1Utc3BlY2lmaWMgcHJvcGVydHkgZm9yIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW5lcnQgdW5kZXIgTkZDLAorICAgICAqIGkuZS4sIHRoZXkgZG8gbm90IGludGVyYWN0IHdpdGggYWRqYWNlbnQgY2hhcmFjdGVycy4KKyAgICAgKiBVc2VkIGZvciBleGFtcGxlIGluIG5vcm1hbGl6aW5nIHRyYW5zZm9ybXMgaW4gaW5jcmVtZW50YWwgbW9kZQorICAgICAqIHRvIGZpbmQgdGhlIGJvdW5kYXJ5IG9mIHNhZmVseSBub3JtYWxpemFibGUgdGV4dCBkZXNwaXRlIHBvc3NpYmxlCisgICAgICogdGV4dCBhZGRpdGlvbnMuCisgICAgICogQHNlZSAjTkZEX0lORVJUCisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkZDX0lORVJUID0gMzk7CisKKyAgICAvKiogCisgICAgICogQmluYXJ5IHByb3BlcnR5IE5GS0NfSW5lcnQuCisgICAgICogSUNVLXNwZWNpZmljIHByb3BlcnR5IGZvciBjaGFyYWN0ZXJzIHRoYXQgYXJlIGluZXJ0IHVuZGVyIE5GS0MsCisgICAgICogaS5lLiwgdGhleSBkbyBub3QgaW50ZXJhY3Qgd2l0aCBhZGphY2VudCBjaGFyYWN0ZXJzLgorICAgICAqIFVzZWQgZm9yIGV4YW1wbGUgaW4gbm9ybWFsaXppbmcgdHJhbnNmb3JtcyBpbiBpbmNyZW1lbnRhbCBtb2RlCisgICAgICogdG8gZmluZCB0aGUgYm91bmRhcnkgb2Ygc2FmZWx5IG5vcm1hbGl6YWJsZSB0ZXh0IGRlc3BpdGUgcG9zc2libGUKKyAgICAgKiB0ZXh0IGFkZGl0aW9ucy4KKyAgICAgKiBAc2VlICNORkRfSU5FUlQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMCAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORktDX0lORVJUID0gNDA7CisKKyAgICAvKioKKyAgICAgKiBCaW5hcnkgUHJvcGVydHkgU2VnbWVudF9TdGFydGVyLgorICAgICAqIElDVS1zcGVjaWZpYyBwcm9wZXJ0eSBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBzdGFydGVycyBpbiB0ZXJtcyBvZgorICAgICAqIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBhbmQgY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMuCisgICAgICogVGhleSBoYXZlIGNjYz0wIGFuZCBkbyBub3Qgb2NjdXIgaW4gbm9uLWluaXRpYWwgcG9zaXRpb24gb2YgdGhlCisgICAgICogY2Fub25pY2FsIGRlY29tcG9zaXRpb24gb2YgYW55IGNoYXJhY3RlcgorICAgICAqIChsaWtlICIgaW4gTkZEKGEtdW1sYXV0KSBhbmQgYSBKYW1vIFQgaW4gYW4gTkZEKEhhbmd1bCBMVlQpKS4KKyAgICAgKiBJQ1UgdXNlcyB0aGlzIHByb3BlcnR5IGZvciBzZWdtZW50aW5nIGEgc3RyaW5nIGZvciBnZW5lcmF0aW5nIGEgc2V0IG9mCisgICAgICogY2Fub25pY2FsbHkgZXF1aXZhbGVudCBzdHJpbmdzLCBlLmcuIGZvciBjYW5vbmljYWwgY2xvc3VyZSB3aGlsZQorICAgICAqIHByb2Nlc3NpbmcgY29sbGF0aW9uIHRhaWxvcmluZyBydWxlcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMCAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRUdNRU5UX1NUQVJURVIgPSA0MTsKKworICAgIC8qKgorICAgICAqIEJpbmFyeSBwcm9wZXJ0eSBQYXR0ZXJuX1N5bnRheCAobmV3IGluIFVuaWNvZGUgNC4xKS4KKyAgICAgKiBTZWUgVUFYICMzMSBJZGVudGlmaWVyIGFuZCBQYXR0ZXJuIFN5bnRheAorICAgICAqIChodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIzMS8pCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQVRURVJOX1NZTlRBWCA9IDQyOworCisgICAgLyoqCisgICAgICogQmluYXJ5IHByb3BlcnR5IFBhdHRlcm5fV2hpdGVfU3BhY2UgKG5ldyBpbiBVbmljb2RlIDQuMSkuCisgICAgICogU2VlIFVBWCAjMzEgSWRlbnRpZmllciBhbmQgUGF0dGVybiBTeW50YXgKKyAgICAgKiAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMzEvKQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFUVEVSTl9XSElURV9TUEFDRSA9IDQzOworCisgICAgLyoqCisgICAgICogQmluYXJ5IHByb3BlcnR5IGFsbnVtIChhIEMvUE9TSVggY2hhcmFjdGVyIGNsYXNzKS4KKyAgICAgKiBJbXBsZW1lbnRlZCBhY2NvcmRpbmcgdG8gdGhlIFVUUyAjMTggQW5uZXggQyBTdGFuZGFyZCBSZWNvbW1lbmRhdGlvbi4KKyAgICAgKiBTZWUgdGhlIFVDaGFyYWN0ZXIgY2xhc3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBPU0lYX0FMTlVNID0gNDQ7CisKKyAgICAvKioKKyAgICAgKiBCaW5hcnkgcHJvcGVydHkgYmxhbmsgKGEgQy9QT1NJWCBjaGFyYWN0ZXIgY2xhc3MpLgorICAgICAqIEltcGxlbWVudGVkIGFjY29yZGluZyB0byB0aGUgVVRTICMxOCBBbm5leCBDIFN0YW5kYXJkIFJlY29tbWVuZGF0aW9uLgorICAgICAqIFNlZSB0aGUgVUNoYXJhY3RlciBjbGFzcyBkb2N1bWVudGF0aW9uLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUE9TSVhfQkxBTksgPSA0NTsKKworICAgIC8qKgorICAgICAqIEJpbmFyeSBwcm9wZXJ0eSBncmFwaCAoYSBDL1BPU0lYIGNoYXJhY3RlciBjbGFzcykuCisgICAgICogSW1wbGVtZW50ZWQgYWNjb3JkaW5nIHRvIHRoZSBVVFMgIzE4IEFubmV4IEMgU3RhbmRhcmQgUmVjb21tZW5kYXRpb24uCisgICAgICogU2VlIHRoZSBVQ2hhcmFjdGVyIGNsYXNzIGRvY3VtZW50YXRpb24uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQT1NJWF9HUkFQSCA9IDQ2OworCisgICAgLyoqCisgICAgICogQmluYXJ5IHByb3BlcnR5IHByaW50IChhIEMvUE9TSVggY2hhcmFjdGVyIGNsYXNzKS4KKyAgICAgKiBJbXBsZW1lbnRlZCBhY2NvcmRpbmcgdG8gdGhlIFVUUyAjMTggQW5uZXggQyBTdGFuZGFyZCBSZWNvbW1lbmRhdGlvbi4KKyAgICAgKiBTZWUgdGhlIFVDaGFyYWN0ZXIgY2xhc3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBPU0lYX1BSSU5UID0gNDc7CisKKyAgICAvKioKKyAgICAgKiBCaW5hcnkgcHJvcGVydHkgeGRpZ2l0IChhIEMvUE9TSVggY2hhcmFjdGVyIGNsYXNzKS4KKyAgICAgKiBJbXBsZW1lbnRlZCBhY2NvcmRpbmcgdG8gdGhlIFVUUyAjMTggQW5uZXggQyBTdGFuZGFyZCBSZWNvbW1lbmRhdGlvbi4KKyAgICAgKiBTZWUgdGhlIFVDaGFyYWN0ZXIgY2xhc3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBPU0lYX1hESUdJVCA9IDQ4OworCisgICAgLyoqIAorICAgICAqIDxwPk9uZSBtb3JlIHRoYW4gdGhlIGxhc3QgY29uc3RhbnQgZm9yIGJpbmFyeSBVbmljb2RlIHByb3BlcnRpZXMuPC9wPiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCSU5BUllfTElNSVQgPSA0OTsKKyAgICAKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBCaWRpX0NsYXNzLgorICAgICAqIFNhbWUgYXMgVUNoYXJhY3Rlci5nZXREaXJlY3Rpb24oaW50KSwgcmV0dXJucyBVQ2hhcmFjdGVyRGlyZWN0aW9uIHZhbHVlcy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJJRElfQ0xBU1MgPSAweDEwMDA7CisKKyAgICAvKiogCisgICAgICogRmlyc3QgY29uc3RhbnQgZm9yIGVudW1lcmF0ZWQvaW50ZWdlciBVbmljb2RlIHByb3BlcnRpZXMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElOVF9TVEFSVCA9IEJJRElfQ0xBU1M7CisKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBCbG9jay4KKyAgICAgKiBTYW1lIGFzIFVDaGFyYWN0ZXIuVW5pY29kZUJsb2NrLm9mKGludCksIHJldHVybnMgVUNoYXJhY3Rlci5Vbmljb2RlQmxvY2sgCisgICAgICogdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkxPQ0sgPSAweDEwMDE7CisKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBDYW5vbmljYWxfQ29tYmluaW5nX0NsYXNzLgorICAgICAqIFNhbWUgYXMgVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhpbnQpLCByZXR1cm5zIDgtYml0IG51bWVyaWMgdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyA9IDB4MTAwMjsKKworICAgIC8qKiAKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IERlY29tcG9zaXRpb25fVHlwZS4KKyAgICAgKiBSZXR1cm5zIFVDaGFyYWN0ZXIuRGVjb21wb3NpdGlvblR5cGUgdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERUNPTVBPU0lUSU9OX1RZUEUgPSAweDEwMDM7CisKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBFYXN0X0FzaWFuX1dpZHRoLgorICAgICAqIFNlZSBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIxMS8KKyAgICAgKiBSZXR1cm5zIFVDaGFyYWN0ZXIuRWFzdEFzaWFuV2lkdGggdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRUFTVF9BU0lBTl9XSURUSCA9IDB4MTAwNDsKKworICAgIC8qKiAKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IEdlbmVyYWxfQ2F0ZWdvcnkuCisgICAgICogU2FtZSBhcyBVQ2hhcmFjdGVyLmdldFR5cGUoaW50KSwgcmV0dXJucyBVQ2hhcmFjdGVyQ2F0ZWdvcnkgdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR0VORVJBTF9DQVRFR09SWSA9IDB4MTAwNTsKKworICAgIC8qKiAKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IEpvaW5pbmdfR3JvdXAuCisgICAgICogUmV0dXJucyBVQ2hhcmFjdGVyLkpvaW5pbmdHcm91cCB2YWx1ZXMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKT0lOSU5HX0dST1VQID0gMHgxMDA2OworCisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgSm9pbmluZ19UeXBlLgorICAgICAqIFJldHVybnMgVUNoYXJhY3Rlci5Kb2luaW5nVHlwZSB2YWx1ZXMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKT0lOSU5HX1RZUEUgPSAweDEwMDc7CisKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBMaW5lX0JyZWFrLgorICAgICAqIFJldHVybnMgVUNoYXJhY3Rlci5MaW5lQnJlYWsgdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTElORV9CUkVBSyA9IDB4MTAwODsKKworICAgIC8qKiAKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IE51bWVyaWNfVHlwZS4KKyAgICAgKiBSZXR1cm5zIFVDaGFyYWN0ZXIuTnVtZXJpY1R5cGUgdmFsdWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTlVNRVJJQ19UWVBFID0gMHgxMDA5OworCisgICAgLyoqIAorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgU2NyaXB0LgorICAgICAqIFNhbWUgYXMgVVNjcmlwdC5nZXRTY3JpcHQoaW50KSwgcmV0dXJucyBVU2NyaXB0IHZhbHVlcy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNDUklQVCA9IDB4MTAwQTsKKyAgICAKKyAgICAvKiogCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBIYW5ndWxfU3lsbGFibGVfVHlwZSwgbmV3IGluIFVuaWNvZGUgNC4KKyAgICAgKiBSZXR1cm5zIEhhbmd1bFN5bGxhYmxlVHlwZSB2YWx1ZXMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfU1lMTEFCTEVfVFlQRSA9IDB4MTAwQjsKKworICAgIC8qKgorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgTkZEX1F1aWNrX0NoZWNrLgorICAgICAqIFJldHVybnMgbnVtZXJpYyB2YWx1ZXMgY29tcGF0aWJsZSB3aXRoIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5GRF9RVUlDS19DSEVDSyA9IDB4MTAwQzsKKworICAgIC8qKgorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgTkZLRF9RdWlja19DaGVjay4KKyAgICAgKiBSZXR1cm5zIG51bWVyaWMgdmFsdWVzIGNvbXBhdGlibGUgd2l0aCBOb3JtYWxpemVyLlF1aWNrQ2hlY2tSZXN1bHQuCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORktEX1FVSUNLX0NIRUNLID0gMHgxMDBEOworCisgICAgLyoqCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBORkNfUXVpY2tfQ2hlY2suCisgICAgICogUmV0dXJucyBudW1lcmljIHZhbHVlcyBjb21wYXRpYmxlIHdpdGggTm9ybWFsaXplci5RdWlja0NoZWNrUmVzdWx0LgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkZDX1FVSUNLX0NIRUNLID0gMHgxMDBFOworCisgICAgLyoqCisgICAgICogRW51bWVyYXRlZCBwcm9wZXJ0eSBORktDX1F1aWNrX0NoZWNrLgorICAgICAqIFJldHVybnMgbnVtZXJpYyB2YWx1ZXMgY29tcGF0aWJsZSB3aXRoIE5vcm1hbGl6ZXIuUXVpY2tDaGVja1Jlc3VsdC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5GS0NfUVVJQ0tfQ0hFQ0sgPSAweDEwMEY7CisKKyAgICAvKioKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IExlYWRfQ2Fub25pY2FsX0NvbWJpbmluZ19DbGFzcy4KKyAgICAgKiBJQ1Utc3BlY2lmaWMgcHJvcGVydHkgZm9yIHRoZSBjY2Mgb2YgdGhlIGZpcnN0IGNvZGUgcG9pbnQKKyAgICAgKiBvZiB0aGUgZGVjb21wb3NpdGlvbiwgb3IgbGNjYyhjKT1jY2MoTkZEKGMpWzBdKS4KKyAgICAgKiBVc2VmdWwgZm9yIGNoZWNraW5nIGZvciBjYW5vbmljYWxseSBvcmRlcmVkIHRleHQ7CisgICAgICogc2VlIE5vcm1hbGl6ZXIuRkNEIGFuZCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL25vdGVzL3RuNS8jRkNEIC4KKyAgICAgKiBSZXR1cm5zIDgtYml0IG51bWVyaWMgdmFsdWVzIGxpa2UgQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFQURfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyA9IDB4MTAxMDsKKworICAgIC8qKgorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgVHJhaWxfQ2Fub25pY2FsX0NvbWJpbmluZ19DbGFzcy4KKyAgICAgKiBJQ1Utc3BlY2lmaWMgcHJvcGVydHkgZm9yIHRoZSBjY2Mgb2YgdGhlIGxhc3QgY29kZSBwb2ludAorICAgICAqIG9mIHRoZSBkZWNvbXBvc2l0aW9uLCBvciBsY2NjKGMpPWNjYyhORkQoYylbbGFzdF0pLgorICAgICAqIFVzZWZ1bCBmb3IgY2hlY2tpbmcgZm9yIGNhbm9uaWNhbGx5IG9yZGVyZWQgdGV4dDsKKyAgICAgKiBzZWUgTm9ybWFsaXplci5GQ0QgYW5kIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvbm90ZXMvdG41LyNGQ0QgLgorICAgICAqIFJldHVybnMgOC1iaXQgbnVtZXJpYyB2YWx1ZXMgbGlrZSBDQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTLgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfQ0FOT05JQ0FMX0NPTUJJTklOR19DTEFTUyA9IDB4MTAxMTsKKworICAgIC8qKgorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgR3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayAobmV3IGluIFVuaWNvZGUgNC4xKS4KKyAgICAgKiBVc2VkIGluIFVBWCAjMjk6IFRleHQgQm91bmRhcmllcworICAgICAqIChodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIyOS8pCisgICAgICogUmV0dXJucyBVR3JhcGhlbWVDbHVzdGVyQnJlYWsgdmFsdWVzLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR1JBUEhFTUVfQ0xVU1RFUl9CUkVBSyA9IDB4MTAxMjsKKworICAgIC8qKgorICAgICAqIEVudW1lcmF0ZWQgcHJvcGVydHkgU2VudGVuY2VfQnJlYWsgKG5ldyBpbiBVbmljb2RlIDQuMSkuCisgICAgICogVXNlZCBpbiBVQVggIzI5OiBUZXh0IEJvdW5kYXJpZXMKKyAgICAgKiAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkvKQorICAgICAqIFJldHVybnMgVVNlbnRlbmNlQnJlYWsgdmFsdWVzLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VOVEVOQ0VfQlJFQUsgPSAweDEwMTM7CisKKyAgICAvKioKKyAgICAgKiBFbnVtZXJhdGVkIHByb3BlcnR5IFdvcmRfQnJlYWsgKG5ldyBpbiBVbmljb2RlIDQuMSkuCisgICAgICogVXNlZCBpbiBVQVggIzI5OiBUZXh0IEJvdW5kYXJpZXMKKyAgICAgKiAoaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkvKQorICAgICAqIFJldHVybnMgVVdvcmRCcmVha1ZhbHVlcyB2YWx1ZXMuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXT1JEX0JSRUFLID0gMHgxMDE0OworCisgICAgLyoqIAorICAgICAqIE9uZSBtb3JlIHRoYW4gdGhlIGxhc3QgY29uc3RhbnQgZm9yIGVudW1lcmF0ZWQvaW50ZWdlciBVbmljb2RlIAorICAgICAqIHByb3BlcnRpZXMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlRfTElNSVQgPSAweDEwMTU7CisKKyAgICAvKiogCisgICAgICogQml0bWFzayBwcm9wZXJ0eSBHZW5lcmFsX0NhdGVnb3J5X01hc2suCisgICAgICogVGhpcyBpcyB0aGUgR2VuZXJhbF9DYXRlZ29yeSBwcm9wZXJ0eSByZXR1cm5lZCBhcyBhIGJpdCBtYXNrLgorICAgICAqIFdoZW4gdXNlZCBpbiBVQ2hhcmFjdGVyLmdldEludFByb3BlcnR5VmFsdWUoYyksCisgICAgICogcmV0dXJucyBiaXQgbWFza3MgZm9yIFVDaGFyYWN0ZXJDYXRlZ29yeSB2YWx1ZXMgd2hlcmUgZXhhY3RseSBvbmUgYml0IGlzIHNldC4gCisgICAgICogV2hlbiB1c2VkIHdpdGggVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlTmFtZSgpIGFuZCBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVFbnVtKCksIAorICAgICAqIGEgbXVsdGktYml0IG1hc2sgaXMgdXNlZCBmb3Igc2V0cyBvZiBjYXRlZ29yaWVzIGxpa2UgIkxldHRlcnMiLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR0VORVJBTF9DQVRFR09SWV9NQVNLID0gMHgyMDAwOyAKKworICAgIC8qKiAKKyAgICAgKiBGaXJzdCBjb25zdGFudCBmb3IgYml0LW1hc2sgVW5pY29kZSBwcm9wZXJ0aWVzLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVNLX1NUQVJUID0gR0VORVJBTF9DQVRFR09SWV9NQVNLOworCisgICAgLyoqIAorICAgICAqIE9uZSBtb3JlIHRoYW4gdGhlIGxhc3QgY29uc3RhbnQgZm9yIGJpdC1tYXNrIFVuaWNvZGUgcHJvcGVydGllcy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BU0tfTElNSVQgPSAweDIwMDE7IAorICAgIAorICAgIC8qKgorICAgICAqIERvdWJsZSBwcm9wZXJ0eSBOdW1lcmljX1ZhbHVlLgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShpbnQpLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5VTUVSSUNfVkFMVUUgPSAweDMwMDA7CisKKyAgICAvKioKKyAgICAgKiBGaXJzdCBjb25zdGFudCBmb3IgZG91YmxlIFVuaWNvZGUgcHJvcGVydGllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET1VCTEVfU1RBUlQgPSBOVU1FUklDX1ZBTFVFOworCisgICAgLyoqCisgICAgICogT25lIG1vcmUgdGhhbiB0aGUgbGFzdCBjb25zdGFudCBmb3IgZG91YmxlIFVuaWNvZGUgcHJvcGVydGllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET1VCTEVfTElNSVQgPSAweDMwMDE7CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgcHJvcGVydHkgQWdlLgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIuZ2V0QWdlKGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUdFID0gMHg0MDAwOworCisgICAgLyoqCisgICAgICogRmlyc3QgY29uc3RhbnQgZm9yIHN0cmluZyBVbmljb2RlIHByb3BlcnRpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1RSSU5HX1NUQVJUID0gQUdFOworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IEJpZGlfTWlycm9yaW5nX0dseXBoLgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIuZ2V0TWlycm9yKGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklESV9NSVJST1JJTkdfR0xZUEggPSAweDQwMDE7CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgcHJvcGVydHkgQ2FzZV9Gb2xkaW5nLgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIuZm9sZENhc2UoU3RyaW5nLCBib29sZWFuKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDQVNFX0ZPTERJTkcgPSAweDQwMDI7CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgcHJvcGVydHkgSVNPX0NvbW1lbnQuCisgICAgICogQ29ycmVzcG9uZHMgdG8gVUNoYXJhY3Rlci5nZXRJU09Db21tZW50KGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSVNPX0NPTU1FTlQgPSAweDQwMDM7CisKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgcHJvcGVydHkgTG93ZXJjYXNlX01hcHBpbmcuCisgICAgICogQ29ycmVzcG9uZHMgdG8gVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShTdHJpbmcpLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPV0VSQ0FTRV9NQVBQSU5HID0gMHg0MDA0OworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IE5hbWUuCisgICAgICogQ29ycmVzcG9uZHMgdG8gVUNoYXJhY3Rlci5nZXROYW1lKGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTkFNRSA9IDB4NDAwNTsKKworICAgIC8qKgorICAgICAqIFN0cmluZyBwcm9wZXJ0eSBTaW1wbGVfQ2FzZV9Gb2xkaW5nLgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIuZm9sZENhc2UoaW50LCBib29sZWFuKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSU1QTEVfQ0FTRV9GT0xESU5HID0gMHg0MDA2OworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IFNpbXBsZV9Mb3dlcmNhc2VfTWFwcGluZy4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lNUExFX0xPV0VSQ0FTRV9NQVBQSU5HID0gMHg0MDA3OworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IFNpbXBsZV9UaXRsZWNhc2VfTWFwcGluZy4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLnRvVGl0bGVDYXNlKGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lNUExFX1RJVExFQ0FTRV9NQVBQSU5HID0gMHg0MDA4OworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IFNpbXBsZV9VcHBlcmNhc2VfTWFwcGluZy4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGludCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lNUExFX1VQUEVSQ0FTRV9NQVBQSU5HID0gMHg0MDA5OworCisgICAgLyoqCisgICAgICogU3RyaW5nIHByb3BlcnR5IFRpdGxlY2FzZV9NYXBwaW5nLgorICAgICAqIENvcnJlc3BvbmRzIHRvIFVDaGFyYWN0ZXIudG9UaXRsZUNhc2UoU3RyaW5nKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUSVRMRUNBU0VfTUFQUElORyA9IDB4NDAwQTsKKworICAgIC8qKgorICAgICAqIFN0cmluZyBwcm9wZXJ0eSBVbmljb2RlXzFfTmFtZS4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLmdldE5hbWUxXzAoaW50KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVTklDT0RFXzFfTkFNRSA9IDB4NDAwQjsKKworICAgIC8qKgorICAgICAqIFN0cmluZyBwcm9wZXJ0eSBVcHBlcmNhc2VfTWFwcGluZy4KKyAgICAgKiBDb3JyZXNwb25kcyB0byBVQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKFN0cmluZykuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVVBQRVJDQVNFX01BUFBJTkcgPSAweDQwMEM7CisKKyAgICAvKioKKyAgICAgKiBPbmUgbW9yZSB0aGFuIHRoZSBsYXN0IGNvbnN0YW50IGZvciBzdHJpbmcgVW5pY29kZSBwcm9wZXJ0aWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUUklOR19MSU1JVCA9IDB4NDAwRDsKKworICAgIC8qKgorICAgICAqIFNlbGVjdG9yIGNvbnN0YW50cyBmb3IgVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eU5hbWUoKSBhbmQKKyAgICAgKiBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVOYW1lKCkuICBUaGVzZSBzZWxlY3RvcnMgYXJlIHVzZWQgdG8KKyAgICAgKiBjaG9vc2Ugd2hpY2ggbmFtZSBpcyByZXR1cm5lZCBmb3IgYSBnaXZlbiBwcm9wZXJ0eSBvciB2YWx1ZS4KKyAgICAgKiBBbGwgcHJvcGVydGllcyBhbmQgdmFsdWVzIGhhdmUgYSBsb25nIG5hbWUuICBNb3N0IGhhdmUgYSBzaG9ydAorICAgICAqIG5hbWUsIGJ1dCBzb21lIGRvIG5vdC4gIFVuaWNvZGUgYWxsb3dzIGZvciBhZGRpdGlvbmFsIG5hbWVzLAorICAgICAqIGJleW9uZCB0aGUgbG9uZyBhbmQgc2hvcnQgbmFtZSwgd2hpY2ggd291bGQgYmUgaW5kaWNhdGVkIGJ5CisgICAgICogTE9ORyArIGksIHdoZXJlIGk9MSwgMiwuLi4KKyAgICAgKgorICAgICAqIEBzZWUgVUNoYXJhY3RlciNnZXRQcm9wZXJ0eU5hbWUKKyAgICAgKiBAc2VlIFVDaGFyYWN0ZXIjZ2V0UHJvcGVydHlWYWx1ZU5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50ZXJmYWNlIE5hbWVDaG9pY2UgeworICAgICAgICAvKioKKyAgICAgICAgICogU2VsZWN0b3IgZm9yIHRoZSBhYmJyZXZpYXRlZCBuYW1lIG9mIGEgcHJvcGVydHkgb3IgdmFsdWUuCisgICAgICAgICAqIE1vc3QgcHJvcGVydGllcyBhbmQgdmFsdWVzIGhhdmUgYSBzaG9ydCBuYW1lOyB0aG9zZSB0aGF0IGRvCisgICAgICAgICAqIG5vdCByZXR1cm4gbnVsbC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IFNIT1JUID0gMDsKKworICAgICAgICAvKioKKyAgICAgICAgICogU2VsZWN0b3IgZm9yIHRoZSBsb25nIG5hbWUgb2YgYSBwcm9wZXJ0eSBvciB2YWx1ZS4gIEFsbAorICAgICAgICAgKiBwcm9wZXJ0aWVzIGFuZCB2YWx1ZXMgaGF2ZSBhIGxvbmcgbmFtZS4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IExPTkcgPSAxOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgbnVtYmVyIG9mIHByZWRlZmluZWQgcHJvcGVydHkgbmFtZSBjaG9pY2VzLiAgSW5kaXZpZHVhbAorICAgICAgICAgKiBwcm9wZXJ0aWVzIG9yIHZhbHVlcyBtYXkgaGF2ZSBtb3JlIHRoYW4gQ09VTlQgYWxpYXNlcy4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IENPVU5UID0gMjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9VU2NyaXB0LmphdmEgYi9zcmMvY29tL2libS9pY3UvbGFuZy9VU2NyaXB0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjk2Mzg5ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VTY3JpcHQuamF2YQpAQCAtMCwwICsxLDU0MiBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UubGFuZzsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworLyoqCisgKiBBIGNsYXNzIHRvIHJlZmxlY3QgVVRSICMyNDogU2NyaXB0IE5hbWVzCisgKiAoYmFzZWQgb24gSVNPIDE1OTI0OjIwMDAsICJDb2RlIGZvciB0aGUgcmVwcmVzZW50YXRpb24gb2YgbmFtZXMgb2YKKyAqIHNjcmlwdHMiKS4gIFVUUiAjMjQgZGVzY3JpYmVzIHRoZSBiYXNpcyBmb3IgYSBuZXcgVW5pY29kZSBkYXRhIGZpbGUsCisgKiBTY3JpcHRzLnR4dC4KKyAqIEBzdGFibGUgSUNVIDIuNAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVVNjcmlwdCB7CisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkyMDAxIElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogSW52YWxpZCBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5WQUxJRF9DT0RFID0gLTE7CisgICAgLyoqCisgICAgICogQ29tbW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OICAgICAgID0gIDA7ICAvKiBaeXl5ICovCisgICAgLyoqCisgICAgICogSW5oZXJpdGVkCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5IRVJJVEVEICAgID0gIDE7ICAvKiBRYWFpICovCisgICAgLyoqCisgICAgICogQXJhYmljCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQVJBQklDICAgICAgID0gIDI7ICAvKiBBcmFiICovCisgICAgLyoqCisgICAgICogQXJtZW5pYW4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBUk1FTklBTiAgICAgPSAgMzsgIC8qIEFybW4gKi8KKyAgICAvKioKKyAgICAgKiBCZW5nYWxpCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkVOR0FMSSAgICAgID0gIDQ7ICAvKiBCZW5nICovCisgICAgLyoqCisgICAgICogQm9wb21vZm8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCT1BPTU9GTyAgICAgPSAgNTsgIC8qIEJvcG8gKi8KKyAgICAvKioKKyAgICAgKiBDaGVyb2tlZQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENIRVJPS0VFICAgICA9ICA2OyAgLyogQ2hlciAqLworICAgIC8qKgorICAgICAqIENvcHRpYworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPUFRJQyAgICAgICA9ICA3OyAgLyogUWFhYyAqLworICAgIC8qKgorICAgICAqIEN5cmlsbGljCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ1lSSUxMSUMgICAgID0gIDg7ICAvKiBDeXJsIChDeXJzKSAqLworICAgIC8qKgorICAgICAqIERlc2VyZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBERVNFUkVUICAgICAgPSAgOTsgIC8qIERzcnQgKi8KKyAgICAvKioKKyAgICAgKiBEZXZhbmFnYXJpCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVWQU5BR0FSSSAgID0gMTA7ICAvKiBEZXZhICovCisgICAgLyoqCisgICAgICogRXRoaW9waWMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFVEhJT1BJQyAgICAgPSAxMTsgIC8qIEV0aGkgKi8KKyAgICAvKioKKyAgICAgKiBHZW9yZ2lhbgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdFT1JHSUFOICAgICA9IDEyOyAgLyogR2VvciAoR2VvbjsgR2VvYSkgKi8KKyAgICAvKioKKyAgICAgKiBHb3RoaWMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHT1RISUMgICAgICAgPSAxMzsgIC8qIEdvdGggKi8KKyAgICAvKioKKyAgICAgKiBHcmVlaworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdSRUVLICAgICAgICA9IDE0OyAgLyogR3JlayAqLworICAgIC8qKgorICAgICAqIEd1amFyYXRpCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgR1VKQVJBVEkgICAgID0gMTU7ICAvKiBHdWpyICovCisgICAgLyoqCisgICAgICogR3VybXVraGkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBHVVJNVUtISSAgICAgPSAxNjsgIC8qIEd1cnUgKi8KKyAgICAvKioKKyAgICAgKiBIYW4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU4gICAgICAgICAgPSAxNzsgIC8qIEhhbmkgKi8KKyAgICAvKioKKyAgICAgKiBIYW5ndWwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU5HVUwgICAgICAgPSAxODsgIC8qIEhhbmcgKi8KKyAgICAvKioKKyAgICAgKiBIZWJyZXcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIRUJSRVcgICAgICAgPSAxOTsgIC8qIEhlYnIgKi8KKyAgICAvKioKKyAgICAgKiBIaXJhZ2FuYQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhJUkFHQU5BICAgICA9IDIwOyAgLyogSGlyYSAqLworICAgIC8qKgorICAgICAqIEthbm5hZGEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLQU5OQURBICAgICAgPSAyMTsgIC8qIEtuZGEgKi8KKyAgICAvKioKKyAgICAgKiBLYXRha2FuYQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtBVEFLQU5BICAgICA9IDIyOyAgLyogS2FuYSAqLworICAgIC8qKgorICAgICAqIEtobWVyCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0hNRVIgICAgICAgID0gMjM7ICAvKiBLaG1yICovCisgICAgLyoqCisgICAgICogTGFvCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEFPICAgICAgICAgID0gMjQ7ICAvKiBMYW9vICovCisgICAgLyoqCisgICAgICogTGF0aW4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQVRJTiAgICAgICAgPSAyNTsgIC8qIExhdG4gKExhdGY7IExhdGcpICovCisgICAgLyoqCisgICAgICogTWFsYXlhbGFtCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFMQVlBTEFNICAgID0gMjY7ICAvKiBNbHltICovCisgICAgLyoqCisgICAgICogTWFuZ29saWFuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTU9OR09MSUFOICAgID0gMjc7ICAvKiBNb25nICovCisgICAgLyoqCisgICAgICogTXlhbW1hcgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1ZQU5NQVIgICAgICA9IDI4OyAgLyogTXltciAqLworICAgIC8qKgorICAgICAqIE9naGFtCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0dIQU0gICAgICAgID0gMjk7ICAvKiBPZ2FtICovCisgICAgLyoqCisgICAgICogT2xkIEl0YWxsaWMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBPTERfSVRBTElDICAgPSAzMDsgIC8qIEl0YWwgKi8KKyAgICAvKioKKyAgICAgKiBPcml5YQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9SSVlBICAgICAgICA9IDMxOyAgLyogT3J5YSAqLworICAgIC8qKgorICAgICAqIFJ1bmljCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUlVOSUMgICAgICAgID0gMzI7ICAvKiBSdW5yICovCisgICAgLyoqCisgICAgICogU2luaGFsYQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJTkhBTEEgICAgICA9IDMzOyAgLyogU2luaCAqLworICAgIC8qKgorICAgICAqIFN5cmlhYworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNZUklBQyAgICAgICA9IDM0OyAgLyogU3lyYyAoU3lyajsgU3lybjsgU3lyZSkgKi8KKyAgICAvKioKKyAgICAgKiBUYW1pbAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBTUlMICAgICAgICA9IDM1OyAgLyogVGFtbCAqLworICAgIC8qKgorICAgICAqIFRlbHVndQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFTFVHVSAgICAgICA9IDM2OyAgLyogVGVsdSAqLworICAgIC8qKgorICAgICAqIFRoYW5hCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEhBQU5BICAgICAgID0gMzc7ICAvKiBUaGFhICovCisgICAgLyoqCisgICAgICogVGhhaQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRIQUkgICAgICAgICA9IDM4OyAgLyogVGhhaSAqLworICAgIC8qKgorICAgICAqIFRpYmV0YW4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUSUJFVEFOICAgICAgPSAzOTsgIC8qIFRpYnQgKi8KKyAgICAvKioKKyAgICAgKiBVbmlmaWVkIENhbmFkaWFuIEFib3JpZ2luYWwgU3ltYm9scworICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENBTkFESUFOX0FCT1JJR0lOQUwgPSA0MDsgIC8qIENhbnMgKi8KKyAgICAvKioKKyAgICAgKiBVbmlmaWVkIENhbmFkaWFuIEFib3JpZ2luYWwgU3ltYm9scyAoYWxpYXMpCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVUNBUyAgICAgICAgID0gQ0FOQURJQU5fQUJPUklHSU5BTDsgIC8qIENhbnMgKi8KKyAgICAvKioKKyAgICAgKiBZaSBzeWxsYWJsZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZSSAgICAgICAgICAgPSA0MTsgIC8qIFlpaWkgKi8KKyAgICAvKioKKyAgICAgKiBUYWdhbG9nCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFHQUxPRyAgICAgID0gNDI7ICAvKiBUZ2xnICovCisgICAgLyoqCisgICAgICogSGFudW5vb28KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBIQU5VTk9PICAgICAgPSA0MzsgIC8qIEhhbm8gKi8KKyAgICAvKioKKyAgICAgKiBCdWhpZAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJVSElEICAgICAgICA9IDQ0OyAgLyogQnVoZCAqLworICAgIC8qKgorICAgICAqIFRhZ2JhbndhCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFHQkFOV0EgICAgID0gNDU7ICAvKiBUYWdiICovCisgICAgLyoqCisgICAgICogQnJhaWxsZQorICAgICAqIE5ldyBzY3JpcHQgaW4gVW5pY29kZSA0IAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKiAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlJBSUxMRSAgICAgID0gNDY7ICAvKiBCcmFpICovCisgICAgLyoqCisgICAgICogQ3lwcmlvdAorICAgICAqIE5ldyBzY3JpcHQgaW4gVW5pY29kZSA0IAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKiAKKyAgICAgKi8gIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENZUFJJT1QgICAgICAgICAgICAgID0gNDc7ICAvKiBDcHJ0ICovIAorICAgIC8qKgorICAgICAqIExpbWJ1CisgICAgICogTmV3IHNjcmlwdCBpbiBVbmljb2RlIDQgCisgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAqIAorICAgICAqLyAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMSU1CVSAgICAgICAgICAgICAgICA9IDQ4OyAgLyogTGltYiAqLyAKKyAgICAvKioKKyAgICAgKiBMaW5lYXIgQgorICAgICAqIE5ldyBzY3JpcHQgaW4gVW5pY29kZSA0IAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKiAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTElORUFSX0IgICAgID0gNDk7ICAvKiBMaW5iICovIAorICAgIC8qKgorICAgICAqIE9zbWFueWEKKyAgICAgKiBOZXcgc2NyaXB0IGluIFVuaWNvZGUgNCAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICogCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE9TTUFOWUEgICAgICAgICAgICAgID0gNTA7ICAvKiBPc21hICovIAorICAgIC8qKgorICAgICAqIFNoYXZpYW4KKyAgICAgKiBOZXcgc2NyaXB0IGluIFVuaWNvZGUgNCAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICogCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNIQVZJQU4gICAgICAgICAgICAgID0gNTE7ICAvKiBTaGF3ICovIAorICAgIC8qKgorICAgICAqIFRhaSBMZQorICAgICAqIE5ldyBzY3JpcHQgaW4gVW5pY29kZSA0IAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKiAKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFJX0xFICAgICAgICAgICAgICAgPSA1MjsgIC8qIFRhbGUgKi8gCisgICAgLyoqCisgICAgICogVWdhcml0aWMKKyAgICAgKiBOZXcgc2NyaXB0IGluIFVuaWNvZGUgNCAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYgCisgICAgICogCisgICAgICovIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVHQVJJVElDICAgICA9IDUzOyAgLyogVWdhciAqLyAKKyAgICAvKioKKyAgICAgKiBOZXcgc2NyaXB0IGNvZGUgaW4gVW5pY29kZSA0LjAuMQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0FUQUtBTkFfT1JfSElSQUdBTkEgPSA1NDsgIC8qSHJrdCAqLworCisgICAgLyogTmV3IHNjcmlwdHMgaW4gVW5pY29kZSA0LjEgQGRyYWZ0IElDVSAzLjQgKi8KKworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZSBpbiBVbmljb2RlIDQuMQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlVHSU5FU0UgPSA1NTsgICAgICAgICAgIC8qIEJ1Z2kgKi8KKyAgICAvKioKKyAgICAgKiBOZXcgc2NyaXB0IGNvZGUgaW4gVW5pY29kZSA0LjEKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdMQUdPTElUSUMgPSA1NjsgICAgICAgICAvKiBHbGFnICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlIGluIFVuaWNvZGUgNC4xCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSEFST1NIVEhJID0gNTc7ICAgICAgICAgLyogS2hhciAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZSBpbiBVbmljb2RlIDQuMQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1lMT1RJX05BR1JJID0gNTg7ICAgICAgIC8qIFN5bG8gKi8KKyAgICAvKioKKyAgICAgKiBOZXcgc2NyaXB0IGNvZGUgaW4gVW5pY29kZSA0LjEKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5FV19UQUlfTFVFID0gNTk7ICAgICAgICAvKiBUYWx1ICovCisgICAgLyoqCisgICAgICogTmV3IHNjcmlwdCBjb2RlIGluIFVuaWNvZGUgNC4xCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUSUZJTkFHSCA9IDYwOyAgICAgICAgICAgLyogVGZuZyAqLworICAgIC8qKgorICAgICAqIE5ldyBzY3JpcHQgY29kZSBpbiBVbmljb2RlIDQuMQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT0xEX1BFUlNJQU4gPSA2MTsgICAgICAgIC8qIFhwZW8gKi8KKworICAgIC8qKgorICAgICAqIExpbWl0CisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09ERV9MSU1JVCAgID0gNjI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0NSSVBUX01BU0sgICA9IDB4MDAwMDAwN2Y7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVUNoYXJhY3RlclByb3BlcnR5IHByb3A9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRJbnN0YW5jZSgpOworCisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSU5WQUxJRF9OQU1FID0gIkludmFsaWQiOworICAgIC8qKgorICAgICAqIEhlbHBlciBmdW5jdGlvbiB0byBmaW5kIHRoZSBjb2RlIGZyb20gbG9jYWxlLgorICAgICAqIEBwYXJhbSBMb2NhbGUgdGhlIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBmaW5kQ29kZUZyb21Mb2NhbGUoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgcmI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgbG9jYWxlKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBpZiByYiBpcyBub3QgYSBzdHJpY3QgZmFsbGJhY2sgb2YgdGhlIHJlcXVlc3RlZCBsb2NhbGUsIHJldHVybiBudWxsCisgICAgICAgIC8vaWYoIUxvY2FsZVV0aWxpdHkuaXNGYWxsYmFja09mKHJiLmdldFVMb2NhbGUoKS50b1N0cmluZygpLCBsb2NhbGUudG9TdHJpbmcoKSkpeworICAgICAgICAvLyAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgLy99CisgICAgICAgIC8vbm9uIGV4aXN0ZW50IGxvY2FsZSBjaGVjaworICAgICAgICBpZihyYi5nZXRMb2FkaW5nU3RhdHVzKCk9PUlDVVJlc291cmNlQnVuZGxlLkZST01fREVGQVVMVCAmJiAhIGxvY2FsZS5lcXVhbHMoVUxvY2FsZS5nZXREZWZhdWx0KCkpKXsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN1YiA9IHJiLmdldCgiTG9jYWxlU2NyaXB0Iik7CisgICAgICAgIAorICAgICAgICBpbnRbXSByZXN1bHQgPSBuZXcgaW50W3N1Yi5nZXRTaXplKCldOworICAgICAgICBpbnQgdyA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgY29kZSA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0oVVByb3BlcnR5LlNDUklQVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWIuZ2V0U3RyaW5nKGkpKTsKKyAgICAgICAgICAgIHJlc3VsdFt3KytdID0gY29kZTsKKworICAgICAgICB9CisKKyAgICAgICAgaWYgKHcgPCByZXN1bHQubGVuZ3RoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJiYWQgbG9jYWxlIGRhdGEsIGxpc3RlZCAiICsgCisgICAgICAgICAgICAgICAgIHJlc3VsdC5sZW5ndGggKyAiIHNjcmlwdHMgYnV0IGZvdW5kIG9ubHkgIiArIHcpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgc2NyaXB0IGNvZGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlIG9yIElTTyAxNTkyNCBhYmJyZXZpYXRpb24gb3IgbmFtZS4KKyAgICAgKiBSZXR1cm5zIE1BTEFZQU0gZ2l2ZW4gIk1hbGF5YW0iIE9SICJNbHltIi4KKyAgICAgKiBSZXR1cm5zIExBVElOIGdpdmVuICJlbiIgT1IgImVuX1VTIgorICAgICAqIEBwYXJhbSBsb2NhbGUgTG9jYWxlCisgICAgICogQHJldHVybiBUaGUgc2NyaXB0IGNvZGVzIGFycmF5LiBudWxsIGlmIHRoZSB0aGUgY29kZSBjYW5ub3QgYmUgZm91bmQuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnRbXSBnZXRDb2RlKExvY2FsZSBsb2NhbGUpeworICAgICAgICByZXR1cm4gZmluZENvZGVGcm9tTG9jYWxlKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBHZXRzIGEgc2NyaXB0IGNvZGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlIG9yIElTTyAxNTkyNCBhYmJyZXZpYXRpb24gb3IgbmFtZS4KKyAgICAgKiBSZXR1cm5zIE1BTEFZQU0gZ2l2ZW4gIk1hbGF5YW0iIE9SICJNbHltIi4KKyAgICAgKiBSZXR1cm5zIExBVElOIGdpdmVuICJlbiIgT1IgImVuX1VTIgorICAgICAqIEBwYXJhbSBsb2NhbGUgVUxvY2FsZQorICAgICAqIEByZXR1cm4gVGhlIHNjcmlwdCBjb2RlcyBhcnJheS4gbnVsbCBpZiB0aGUgdGhlIGNvZGUgY2Fubm90IGJlIGZvdW5kLgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnRbXSBnZXRDb2RlKFVMb2NhbGUgbG9jYWxlKXsKKyAgICAgICAgcmV0dXJuIGZpbmRDb2RlRnJvbUxvY2FsZShsb2NhbGUpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBHZXRzIGEgc2NyaXB0IGNvZGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlIG9yIElTTyAxNTkyNCBhYmJyZXZpYXRpb24gb3IgbmFtZS4KKyAgICAgKiBSZXR1cm5zIE1BTEFZQU0gZ2l2ZW4gIk1hbGF5YW0iIE9SICJNbHltIi4KKyAgICAgKiBSZXR1cm5zIExBVElOIGdpdmVuICJlbiIgT1IgImVuX1VTIgorICAgICAqCisgICAgICogPHA+Tm90ZTogVG8gc2VhcmNoIGJ5IHNob3J0IG9yIGxvbmcgc2NyaXB0IGFsaWFzIG9ubHksIHVzZQorICAgICAqIFVDaGFyYWNhdGVyLmdldFByb3BlcnR5VmFsdWVFbnVtKFVQcm9wZXJ0eS5TQ1JJUFQsIGFsaWFzKQorICAgICAqIGluc3RlYWQuICBUaGlzIGRvZXMgYSBmYXN0IGxvb2t1cCB3aXRoIG5vIGFjY2VzcyBvZiB0aGUgbG9jYWxlCisgICAgICogZGF0YS4KKyAgICAgKiBAcGFyYW0gbmFtZU9yQWJick9yTG9jYWxlIG5hbWUgb2YgdGhlIHNjcmlwdCBvciBJU08gMTU5MjQgY29kZSBvciBsb2NhbGUKKyAgICAgKiBAcmV0dXJuIFRoZSBzY3JpcHQgY29kZXMgYXJyYXkuIG51bGwgaWYgdGhlIHRoZSBjb2RlIGNhbm5vdCBiZSBmb3VuZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludFtdIGdldENvZGUoU3RyaW5nIG5hbWVPckFiYnJPckxvY2FsZSl7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IGludFtdIHsKKyAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVFbnVtKFVQcm9wZXJ0eS5TQ1JJUFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lT3JBYmJyT3JMb2NhbGUpCisgICAgICAgICAgICB9OworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZpbmRDb2RlRnJvbUxvY2FsZShuZXcgVUxvY2FsZShuYW1lT3JBYmJyT3JMb2NhbGUpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBzY3JpcHQgY29kZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBJU08gMTU5MjQgYWJicmV2aWF0aW9uIG9yIG5hbWUuCisgICAgICogUmV0dXJucyBNQUxBWUFNIGdpdmVuICJNYWxheWFtIiBPUiAiTWx5bSIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZU9yQWJiciBuYW1lIG9mIHRoZSBzY3JpcHQgb3IgSVNPIDE1OTI0IGNvZGUKKyAgICAgKiBAcmV0dXJuIFRoZSBzY3JpcHQgY29kZSB2YWx1ZSBvciBJTlZBTElEX0NPREUgaWYgdGhlIGNvZGUgY2Fubm90IGJlIGZvdW5kLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGdldENvZGVGcm9tTmFtZShTdHJpbmcgbmFtZU9yQWJicikgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0oVVByb3BlcnR5LlNDUklQVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVPckFiYnIpOworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIElOVkFMSURfQ09ERTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHNjcmlwdCBjb2RlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gY29kZXBvaW50LgorICAgICAqIFJldHVybnMgVVNjcmlwdC5NQUxBWUFNIGdpdmVuIDB4MEQwMgorICAgICAqIEBwYXJhbSBjb2RlcG9pbnQgVUNoYXIzMiBjb2RlcG9pbnQKKyAgICAgKiBAcmV0dXJuIFRoZSBzY3JpcHQgY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IGdldFNjcmlwdChpbnQgY29kZXBvaW50KXsKKyAgICAgICAgaWYgKGNvZGVwb2ludCA+PSBVQ2hhcmFjdGVyLk1JTl9WQUxVRSAmIGNvZGVwb2ludCA8PSBVQ2hhcmFjdGVyLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIChwcm9wLmdldEFkZGl0aW9uYWwoY29kZXBvaW50LDApICYgU0NSSVBUX01BU0spOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhjb2RlcG9pbnQpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBzY3JpcHQgbmFtZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIHNjcmlwdCBjb2RlLgorICAgICAqIFJldHVybnMgICJNYWxheWFtIiBnaXZlbiBNQUxBWUFNCisgICAgICogQHBhcmFtIHNjcmlwdENvZGUgaW50IHNjcmlwdCBjb2RlCisgICAgICogQHJldHVybiBzY3JpcHQgbmFtZSBhcyBhIHN0cmluZyBpbiBmdWxsIGFzIGdpdmVuIGluIFRSIzI0CisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZ2V0TmFtZShpbnQgc2NyaXB0Q29kZSl7CisgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVOYW1lKFVQcm9wZXJ0eS5TQ1JJUFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdENvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQcm9wZXJ0eS5OYW1lQ2hvaWNlLkxPTkcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBzY3JpcHQgbmFtZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIHNjcmlwdCBjb2RlLgorICAgICAqIFJldHVybnMgICJNbHltIiBnaXZlbiBNQUxBWUFNCisgICAgICogQHBhcmFtIHNjcmlwdENvZGUgaW50IHNjcmlwdCBjb2RlCisgICAgICogQHJldHVybiBzY3JpcHQgYWJicmV2aWF0ZWQgbmFtZSBhcyBhIHN0cmluZyAgYXMgZ2l2ZW4gaW4gVFIjMjQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBnZXRTaG9ydE5hbWUoaW50IHNjcmlwdENvZGUpeworICAgICAgICByZXR1cm4gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlTmFtZShVUHJvcGVydHkuU0NSSVBULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRDb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUHJvcGVydHkuTmFtZUNob2ljZS5TSE9SVCk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAvKioKKyAgICAgKiAgUHJpdmF0ZSBDb25zdHJ1Y3Rvci4gTmV2ZXIgZGVmYXVsdCBjb25zdHJ1Y3QKKyAgICAgKi8KKyAgICBwcml2YXRlIFVTY3JpcHQoKXt9CisgICAgLy8vQ0xPVkVSOk9OCit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VTY3JpcHRSdW4uamF2YSBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL1VTY3JpcHRSdW4uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODliYWJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L2xhbmcvVVNjcmlwdFJ1bi5qYXZhCkBAIC0wLDAgKzEsNjE4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisgKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS5sYW5nOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5VVEYxNjsKKworLyoqCisgKiA8Y29kZT5VU2NyaXB0UnVuPC9jb2RlPiBpcyB1c2VkIHRvIGZpbmQgcnVucyBvZiBjaGFyYWN0ZXJzIGluCisgKiB0aGUgc2FtZSBzY3JpcHQsIGFzIGRlZmluZWQgaW4gdGhlIDxjb2RlPlVTY3JpcHQ8L2NvZGU+IGNsYXNzLgorICogSXQgaW1wbGVtZW50cyBhIHNpbXBsZSBpdGVyYXRvciBvdmVyIGFuIGFycmF5IG9mIGNoYXJhY3RlcnMuCisgKiBUaGUgaXRlcmF0b3Igd2lsbCBhc3NpZ24gPGNvZGU+Q09NTU9OPC9jb2RlPiBhbmQgPGNvZGU+SU5IRVJJVEVEPC9jb2RlPgorICogY2hhcmFjdGVycyB0byB0aGUgc2FtZSBzY3JpcHQgYXMgdGhlIHByZWNlZWRpbmcgY2hhcmFjdGVycy4gSWYgdGhlCisgKiBDT01NT04gYW5kIElOSEVSSVRFRCBjaGFyYWN0ZXJzIGFyZSBmaXJzdCwgdGhleSB3aWxsIGJlIGFzc2lnbmVkIHRvCisgKiB0aGUgc2FtZSBzY3JpcHQgYXMgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzLgorICoKKyAqIFRoZSBpdGVyYXRvciB3aWxsIHRyeSB0byBtYXRjaCBwYWlyZWQgcHVuY3R1YXRpb24uIElmIGl0IHNlZXMgYW4KKyAqIG9wZW5pbmcgcHVuY3R1YXRpb24gY2hhcmFjdGVyLCBpdCB3aWxsIHJlbWVtYmVyIHRoZSBzY3JpcHQgdGhhdAorICogd2FzIGFzc2lnbmVkIHRvIHRoYXQgY2hhcmFjdGVyLCBhbmQgYXNzaWduIHRoZSBzYW1lIHNjcmlwdCB0byB0aGUKKyAqIG1hdGNoaW5nIGNsb3NpbmcgcHVuY3R1YXRpb24uCisgKgorICogTm8gYXR0ZW1wdCBpcyBtYWRlIHRvIGNvbWJpbmUgcmVsYXRlZCBzY3JpcHRzIGludG8gYSBzaW5nbGUgcnVuLiBJbgorICogcGFydGljdWxhciwgSGlyYWdhbmEsIEthdGFrYW5hLCBhbmQgSGFuIGNoYXJhY3RlcnMgd2lsbCBhcHBlYXIgaW4gc2VwZXJhdGUKKyAqIHJ1bnMuCisKKyAqIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiBob3cgdG8gaXRlcmF0ZSBvdmVyIHNjcmlwdCBydW5zOgorICogPHByZT4KKyAqIHZvaWQgcHJpbnRTY3JpcHRSdW5zKGNoYXJbXSB0ZXh0KQorICogeworICogICAgIFVTY3JpcHRSdW4gc2NyaXB0UnVuID0gbmV3IFVTY3JpcHRSdW4odGV4dCk7CisgKgorICogICAgIHdoaWxlIChzY3JpcHRSdW4ubmV4dCgpKSB7CisgKiAgICAgICAgIGludCBzdGFydCAgPSBzY3JpcHRSdW4uZ2V0U2NyaXB0U3RhcnQoKTsKKyAqICAgICAgICAgaW50IGxpbWl0ICA9IHNjcmlwdFJ1bi5nZXRTY3JpcHRMaW1pdCgpOworICogICAgICAgICBpbnQgc2NyaXB0ID0gc2NyaXB0UnVuLmdldFNjcmlwdENvZGUoKTsKKyAqCisgKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU2NyaXB0IFwiIiArIFVTY3JpcHQuZ2V0TmFtZShzY3JpcHQpICsgIlwiIGZyb20gIiArCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArICIgdG8gIiArIGxpbWl0ICsgIi4iKTsKKyAqICAgICB9CisgKiAgfQorICogPC9wcmU+CisgKgorICogQGludGVybmFsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVU2NyaXB0UnVuCit7CisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk5LTIwMDIgSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gZW1wdHkgPGNvZGU+VVNjcmlwdFJ1bjwvY29kZT4gb2JqZWN0LiBUaGUgPGNvZGU+bmV4dCgpPC9jb2RlPgorICAgICAqIG1ldGhvZCB3aWxsIHJldHVybiA8Y29kZT5mYWxzZTwvY29kZT4gdGhlIGZpcnN0IHRpbWUgaXQgaXMgY2FsbGVkLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFVTY3JpcHRSdW4oKQorICAgIHsKKyAgICAgICAgY2hhcltdIG51bGxDaGFycyA9IG51bGw7CisgICAgICAgIAorICAgICAgICByZXNldChudWxsQ2hhcnMsIDAsIDApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSA8Y29kZT5VU2NyaXB0UnVuPC9jb2RlPiBvYmplY3Qgd2hpY2ggaXRlcmF0ZXMgb3ZlciB0aGUKKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSBnaXZlbiBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgc3RyaW5nIG9mIGNoYXJhY3RlcnMgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFVTY3JpcHRSdW4oU3RyaW5nIHRleHQpCisgICAgeworICAgICAgICByZXNldCAodGV4dCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIDxjb2RlPlVTY3JpcHRSdW48L2NvZGU+IG9iamVjdCB3aGljaCBpdGVyYXRlcyBvdmVyIGEgc3VicmFuZ2UKKyAgICAgKiBvZiB0aGUgY2hhcmFjZXRycyBpbiB0aGUgZ2l2ZW4gc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb3ZlciB3aGljaCB0byBpdGVyYXRlCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBVU2NyaXB0UnVuKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIGludCBjb3VudCkKKyAgICB7CisgICAgICAgIHJlc2V0KHRleHQsIHN0YXJ0LCBjb3VudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgPGNvZGU+VVNjcmlwdFJ1bjwvY29kZT4gb2JqZWN0IHdoaWNoIGl0ZXJhdGVzIG92ZXIgdGhlIGdpdmVuCisgICAgICogY2hhcmFjZXRycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjaGFycyB0aGUgYXJyYXkgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgVVNjcmlwdFJ1bihjaGFyW10gY2hhcnMpCisgICAgeworICAgICAgICByZXNldChjaGFycyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgPGNvZGU+VVNjcmlwdFJ1bjwvY29kZT4gb2JqZWN0IHdoaWNoIGl0ZXJhdGVzIG92ZXIgYSBzdWJyYW5nZQorICAgICAqIG9mIHRoZSBnaXZlbiBjaGFyYWNldHJzLgorICAgICAqCisgICAgICogQHBhcmFtIGNoYXJzIHRoZSBhcnJheSBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb3ZlciB3aGljaCB0byBpdGVyYXRlCisgICAgICogQHBhcmFtIGNvdW50IHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBVU2NyaXB0UnVuKGNoYXJbXSBjaGFycywgaW50IHN0YXJ0LCBpbnQgY291bnQpCisgICAgeworICAgICAgICByZXNldChjaGFycywgc3RhcnQsIGNvdW50KTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBpdGVyYXRvciB0byB0aGUgc3RhcnQgb2YgdGhlIHRleHQuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCByZXNldCgpCisgICAgeworICAgICAgICAvLyBlbXB0eSBhbnkgb2xkIHBhcmVuU3RhY2sgY29udGVudHMuCisgICAgICAgIC8vIE5PVEU6IHRoaXMgaXMgbm90IHRoZSBtb3N0IGVmZmljaWVudCB3YXkKKyAgICAgICAgLy8gdG8gZG8gdGhpcywgYnV0IGl0J3MgdGhlIGVhc2llc3QgdG8gd3JpdGUuLi4KKyAgICAgICAgd2hpbGUgKHN0YWNrSXNOb3RFbXB0eSgpKSB7CisgICAgICAgICAgICBwb3AoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc2NyaXB0U3RhcnQgPSB0ZXh0U3RhcnQ7CisgICAgICAgIHNjcmlwdExpbWl0ID0gdGV4dFN0YXJ0OworICAgICAgICBzY3JpcHRDb2RlICA9IFVTY3JpcHQuSU5WQUxJRF9DT0RFOworICAgICAgICBwYXJlblNQICAgICA9IC0xOworICAgICAgICBwdXNoQ291bnQgICA9ICAwOworICAgICAgICBmaXh1cENvdW50ICA9ICAwOworICAgICAgICAKKyAgICAgICAgdGV4dEluZGV4ID0gdGV4dFN0YXJ0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgdGhlIGdpdmVuIHJhbmdlIG9mIHRoZSB0ZXh0LiBUaHJvd3MKKyAgICAgKiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHJhbmdlIGlzIG91dHNpZGUgb2YgdGhlIGJvdW5kcyBvZiB0aGUKKyAgICAgKiBjaGFyYWN0ZXIgYXJyYXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGluZGV4IG9mIHRoZSBuZXcgZmlyc3QgY2hhcmFjdGVyIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZQorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbmV3IG51bWJlciBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoaW50IHN0YXJ0LCBpbnQgY291bnQpCisgICAgdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaW50IGxlbiA9IDA7CisgICAgICAgIAorICAgICAgICBpZiAodGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBsZW4gPSB0ZXh0Lmxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHN0YXJ0IDwgMCB8fCBjb3VudCA8IDAgfHwgc3RhcnQgPiBsZW4gLSBjb3VudCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0ZXh0U3RhcnQgPSBzdGFydDsKKyAgICAgICAgdGV4dExpbWl0ID0gc3RhcnQgKyBjb3VudDsKKworICAgICAgICByZXNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgPGNvZGU+Y291bnQ8L2NvZGU+IGNoYXJhY3RlcnMKKyAgICAgKiBpbiA8Y29kZT5jaGFyczwvY29kZT4gc3RhcnRpbmcgYXQgPGNvZGU+c3RhcnQ8L2NvZGU+LiBUaGlzIGFsbG93cworICAgICAqIGNsaWVudHMgdG8gcmV1c2UgYW4gaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2hhcnMgdGhlIG5ldyBhcnJheSBvZiBjaGFyYWN0ZXJzIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoY2hhcltdIGNoYXJzLCBpbnQgc3RhcnQsIGludCBjb3VudCkKKyAgICB7CisgICAgICAgIGlmIChjaGFycyA9PSBudWxsKSB7CisgICAgICAgICAgICBjaGFycyA9IGVtcHR5Q2hhckFycmF5OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0ZXh0ID0gY2hhcnM7CisKKyAgICAgICAgcmVzZXQoc3RhcnQsIGNvdW50KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgY2hhcmFjdGVycworICAgICAqIGluIDxjb2RlPmNoYXJzPC9jb2RlPi4gVGhpcyBhbGxvd3MgY2xpZW50cyB0byByZXVzZSBhbiBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjaGFycyB0aGUgbmV3IGFycmF5IG9mIGNoYXJhY3RlcnMgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoY2hhcltdIGNoYXJzKQorICAgIHsKKyAgICAgICAgaW50IGxlbmd0aCA9IDA7CisgICAgICAgIAorICAgICAgICBpZiAoY2hhcnMgIT0gbnVsbCkgeworICAgICAgICAgICAgbGVuZ3RoID0gY2hhcnMubGVuZ3RoOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXNldChjaGFycywgMCwgbGVuZ3RoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciA8Y29kZT5jb3VudDwvY29kZT4gY2hhcmFjdGVycworICAgICAqIGluIDxjb2RlPnRleHQ8L2NvZGU+IHN0YXJ0aW5nIGF0IDxjb2RlPnN0YXJ0PC9jb2RlPi4gVGhpcyBhbGxvd3MKKyAgICAgKiBjbGllbnRzIHRvIHJldXNlIGFuIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIG5ldyBzdHJpbmcgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG51YmVyIG9mIGNoYXJhY3RlcnMgb3ZlciB3aGljaCB0byBpdGVyYXRlLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVzZXQoU3RyaW5nIHRleHQsIGludCBzdGFydCwgaW50IGNvdW50KQorICAgIHsKKyAgICAgICAgY2hhcltdIGNoYXJzID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGlmICh0ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGNoYXJzID0gdGV4dC50b0NoYXJBcnJheSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXNldChjaGFycywgc3RhcnQsIGNvdW50KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgY2hhcmFjdGVycworICAgICAqIGluIDxjb2RlPnRleHQ8L2NvZGU+LiBUaGlzIGFsbG93cyBjbGllbnRzIHRvIHJldXNlIGFuIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIG5ldyBzdHJpbmcgb2YgY2hhcmFjdGVycyBvdmVyIHdoaWNoIHRvIGl0ZXJhdGUuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCByZXNldChTdHJpbmcgdGV4dCkKKyAgICB7CisgICAgICAgIGludCBsZW5ndGggICA9IDA7CisgICAgICAgIAorICAgICAgICBpZiAodGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBsZW5ndGggPSB0ZXh0Lmxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXNldCh0ZXh0LCAwLCBsZW5ndGgpOworICAgIH0KKyAgICAgICAgCisKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc3RhcnRpbmcgaW5kZXggb2YgdGhlIGN1cnJlbnQgc2NyaXB0IHJ1bi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIGN1cnJlbnQgc2NyaXB0IHJ1bi4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0U2NyaXB0U3RhcnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNjcmlwdFN0YXJ0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgY3VycmVudCBzY3JpcHQgcnVuLgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgY3VycmVudCBzY3JpcHQgcnVuLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRTY3JpcHRMaW1pdCgpCisgICAgeworICAgICAgICByZXR1cm4gc2NyaXB0TGltaXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBzY3JpcHQgY29kZSBmb3IgdGhlIHNjcmlwdCBvZiB0aGUgY3VycmVudCBzY3JpcHQgcnVuLgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgc2NyaXB0IGNvZGUgZm9yIHRoZSBzY3JpcHQgb2YgdGhlIGN1cnJlbnQgc2NyaXB0IHJ1bi4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdAorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRTY3JpcHRDb2RlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBzY3JpcHRDb2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbmQgdGhlIG5leHQgc2NyaXB0IHJ1bi4gUmV0dXJucyA8Y29kZT5mYWxzZTwvY29kZT4gaWYgdGhlcmUKKyAgICAgKiBpc24ndCBhbm90aGVyIHJ1biwgcmV0dXJucyA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBpcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIHRoZXJlIGlzbid0IGFub3RoZXIgcnVuLCA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBpcy4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIG5leHQoKQorICAgIHsKKyAgICAgICAgLy8gaWYgd2UndmUgZmFsbGVuIG9mZiB0aGUgZW5kIG9mIHRoZSB0ZXh0LCB3ZSdyZSBkb25lCisgICAgICAgIGlmIChzY3JpcHRMaW1pdCA+PSB0ZXh0TGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzY3JpcHRDb2RlICA9IFVTY3JpcHQuQ09NTU9OOworICAgICAgICBzY3JpcHRTdGFydCA9IHNjcmlwdExpbWl0OworICAgICAgICAKKyAgICAgICAgc3luY0ZpeHVwKCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAodGV4dEluZGV4IDwgdGV4dExpbWl0KSB7CisgICAgICAgICAgICBpbnQgY2ggPSBVVEYxNi5jaGFyQXQodGV4dCwgdGV4dFN0YXJ0LCB0ZXh0TGltaXQsIHRleHRJbmRleCAtIHRleHRTdGFydCk7CisgICAgICAgICAgICBpbnQgY29kZVBvaW50Q291bnQgPSBVVEYxNi5nZXRDaGFyQ291bnQoY2gpOworICAgICAgICAgICAgaW50IHNjID0gVVNjcmlwdC5nZXRTY3JpcHQoY2gpOworICAgICAgICAgICAgaW50IHBhaXJJbmRleCA9IGdldFBhaXJJbmRleChjaCk7CisKKyAgICAgICAgICAgIHRleHRJbmRleCArPSBjb2RlUG9pbnRDb3VudDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gUGFpcmVkIGNoYXJhY3RlciBoYW5kbGluZzoKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBpZiBpdCdzIGFuIG9wZW4gY2hhcmFjdGVyLCBwdXNoIGl0IG9udG8gdGhlIHN0YWNrLgorICAgICAgICAgICAgLy8gaWYgaXQncyBhIGNsb3NlIGNoYXJhY3RlciwgZmluZCB0aGUgbWF0Y2hpbmcgb3BlbiBvbiB0aGUKKyAgICAgICAgICAgIC8vIHN0YWNrLCBhbmQgdXNlIHRoYXQgc2NyaXB0IGNvZGUuIEFueSBub24tbWF0Y2hpbmcgb3BlbgorICAgICAgICAgICAgLy8gY2hhcmFjdGVycyBhYm92ZSBpdCBvbiB0aGUgc3RhY2sgd2lsbCBiZSBwb3BlZC4KKyAgICAgICAgICAgIGlmIChwYWlySW5kZXggPj0gMCkgeworICAgICAgICAgICAgICAgIGlmICgocGFpckluZGV4ICYgMSkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBwdXNoKHBhaXJJbmRleCwgc2NyaXB0Q29kZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHBpID0gcGFpckluZGV4ICYgfjE7CisKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHN0YWNrSXNOb3RFbXB0eSgpICYmIHRvcCgpLnBhaXJJbmRleCAhPSBwaSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9wKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2tJc05vdEVtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNjID0gdG9wKCkuc2NyaXB0Q29kZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHNhbWVTY3JpcHQoc2NyaXB0Q29kZSwgc2MpKSB7CisgICAgICAgICAgICAgICAgaWYgKHNjcmlwdENvZGUgPD0gVVNjcmlwdC5JTkhFUklURUQgJiYgc2MgPiBVU2NyaXB0LklOSEVSSVRFRCkgeworICAgICAgICAgICAgICAgICAgICBzY3JpcHRDb2RlID0gc2M7CisKKyAgICAgICAgICAgICAgICAgICAgZml4dXAoc2NyaXB0Q29kZSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBjaGFyYWN0ZXIgaXMgYSBjbG9zZSBwYWlyZWQgY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgIC8vIHBvcCB0aGUgbWF0Y2hpbmcgb3BlbiBjaGFyYWN0ZXIgZnJvbSB0aGUgc3RhY2sKKyAgICAgICAgICAgICAgICBpZiAocGFpckluZGV4ID49IDAgJiYgKHBhaXJJbmRleCAmIDEpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcG9wKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBXZSd2ZSBqdXN0IHNlZW4gdGhlIGZpcnN0IGNoYXJhY3RlciBvZgorICAgICAgICAgICAgICAgIC8vIHRoZSBuZXh0IHJ1bi4gQmFjayBvdmVyIGl0IHNvIHdlJ2xsIHNlZQorICAgICAgICAgICAgICAgIC8vIGl0IGFnYWluIHRoZSBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgdGV4dEluZGV4IC09IGNvZGVQb2ludENvdW50OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc2NyaXB0TGltaXQgPSB0ZXh0SW5kZXg7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIHNjcmlwdCBjb2RlcyB0byBzZWUgaWYgdGhleSBhcmUgaW4gdGhlIHNhbWUgc2NyaXB0LiBJZiBvbmUgc2NyaXB0IGlzCisgICAgICogYSBzdHJvbmcgc2NyaXB0LCBhbmQgdGhlIG90aGVyIGlzIElOSEVSSVRFRCBvciBDT01NT04sIGl0IHdpbGwgY29tcGFyZSBlcXVhbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzY3JpcHRPbmUgb25lIG9mIHRoZSBzY3JpcHQgY29kZXMuCisgICAgICogQHBhcmFtIHNjcmlwdFR3byB0aGUgb3RoZXIgc2NyaXB0IGNvZGUuCisgICAgICogQHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgdHdvIHNjcmlwdHMgYXJlIHRoZSBzYW1lLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UubGFuZy5VU2NyaXB0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBzYW1lU2NyaXB0KGludCBzY3JpcHRPbmUsIGludCBzY3JpcHRUd28pCisgICAgeworICAgICAgICByZXR1cm4gc2NyaXB0T25lIDw9IFVTY3JpcHQuSU5IRVJJVEVEIHx8IHNjcmlwdFR3byA8PSBVU2NyaXB0LklOSEVSSVRFRCB8fCBzY3JpcHRPbmUgPT0gc2NyaXB0VHdvOworICAgIH0KKworICAgIC8qCisgICAgICogQW4gaW50ZXJuYWwgY2xhc3Mgd2hpY2ggaG9sZHMgZW50cmllcyBvbiB0aGUgcGFyZW4gc3RhY2suCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgUGFyZW5TdGFja0VudHJ5CisgICAgeworICAgICAgICBpbnQgcGFpckluZGV4OworICAgICAgICBpbnQgc2NyaXB0Q29kZTsKKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBQYXJlblN0YWNrRW50cnkoaW50IHRoZVBhaXJJbmRleCwgaW50IHRoZVNjcmlwdENvZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHBhaXJJbmRleCAgPSB0aGVQYWlySW5kZXg7CisgICAgICAgICAgICBzY3JpcHRDb2RlID0gdGhlU2NyaXB0Q29kZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbW9kKGludCBzcCkKKyAgICB7CisgICAgICAgIHJldHVybiBzcCAlIFBBUkVOX1NUQUNLX0RFUFRIOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW5jKGludCBzcCwgaW50IGNvdW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1vZChzcCArIGNvdW50KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGluYyhpbnQgc3ApCisgICAgeworICAgICAgICByZXR1cm4gaW5jKHNwLCAxKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGRlYyhpbnQgc3AsIGludCBjb3VudCkKKyAgICB7CisgICAgICAgIHJldHVybiBtb2Qoc3AgKyBQQVJFTl9TVEFDS19ERVBUSCAtIGNvdW50KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGRlYyhpbnQgc3ApCisgICAgeworICAgICAgICByZXR1cm4gZGVjKHNwLCAxKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGxpbWl0SW5jKGludCBjb3VudCkKKyAgICB7CisgICAgICAgIGlmIChjb3VudCA8IFBBUkVOX1NUQUNLX0RFUFRIKSB7CisgICAgICAgICAgICBjb3VudCArPSAxOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gY291bnQ7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBzdGFja0lzRW1wdHkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHB1c2hDb3VudCA8PSAwOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gc3RhY2tJc05vdEVtcHR5KCkKKyAgICB7CisgICAgICAgIHJldHVybiAhIHN0YWNrSXNFbXB0eSgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgcHVzaChpbnQgcGFpckluZGV4LCBpbnQgc2NyaXB0Q29kZSkKKyAgICB7CisgICAgICAgIHB1c2hDb3VudCAgPSBsaW1pdEluYyhwdXNoQ291bnQpOworICAgICAgICBmaXh1cENvdW50ID0gbGltaXRJbmMoZml4dXBDb3VudCk7CisgICAgICAgIAorICAgICAgICBwYXJlblNQID0gaW5jKHBhcmVuU1ApOworICAgICAgICBwYXJlblN0YWNrW3BhcmVuU1BdID0gbmV3IFBhcmVuU3RhY2tFbnRyeShwYWlySW5kZXgsIHNjcmlwdENvZGUpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgcG9wKCkKKyAgICB7CisgICAgICAgIAorICAgICAgICBpZiAoc3RhY2tJc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcGFyZW5TdGFja1twYXJlblNQXSA9IG51bGw7CisgICAgICAgIAorICAgICAgICBpZiAoZml4dXBDb3VudCA+IDApIHsKKyAgICAgICAgICAgIGZpeHVwQ291bnQgLT0gMTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVzaENvdW50IC09IDE7CisgICAgICAgIHBhcmVuU1AgPSBkZWMocGFyZW5TUCk7CisgICAgICAgIAorICAgICAgICAvLyBJZiB0aGUgc3RhY2sgaXMgbm93IGVtcHR5LCByZXNldCB0aGUgc3RhY2sKKyAgICAgICAgLy8gcG9pbnRlcnMgdG8gdGhlaXIgaW5pdGlhbCB2YWx1ZXMuCisgICAgICAgIGlmIChzdGFja0lzRW1wdHkoKSkgeworICAgICAgICAgICAgcGFyZW5TUCA9IC0xOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgUGFyZW5TdGFja0VudHJ5IHRvcCgpCisgICAgeworICAgICAgICByZXR1cm4gcGFyZW5TdGFja1twYXJlblNQXTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIHN5bmNGaXh1cCgpCisgICAgeworICAgICAgICBmaXh1cENvdW50ID0gMDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGZpeHVwKGludCBzY3JpcHRDb2RlKQorICAgIHsKKyAgICAgICAgaW50IGZpeHVwU1AgPSBkZWMocGFyZW5TUCwgZml4dXBDb3VudCk7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoZml4dXBDb3VudC0tID4gMCkgeworICAgICAgICAgICAgZml4dXBTUCA9IGluYyhmaXh1cFNQKTsKKyAgICAgICAgICAgIHBhcmVuU3RhY2tbZml4dXBTUF0uc2NyaXB0Q29kZSA9IHNjcmlwdENvZGU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBjaGFyW10gZW1wdHlDaGFyQXJyYXkgPSB7fTsKKworICAgIHByaXZhdGUgY2hhcltdIHRleHQ7CisKKyAgICBwcml2YXRlIGludCB0ZXh0SW5kZXg7CisgICAgcHJpdmF0ZSBpbnQgIHRleHRTdGFydDsKKyAgICBwcml2YXRlIGludCAgdGV4dExpbWl0OworICAgIAorICAgIHByaXZhdGUgaW50ICBzY3JpcHRTdGFydDsKKyAgICBwcml2YXRlIGludCAgc2NyaXB0TGltaXQ7CisgICAgcHJpdmF0ZSBpbnQgIHNjcmlwdENvZGU7CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgUEFSRU5fU1RBQ0tfREVQVEggPSAzMjsKKyAgICBwcml2YXRlIHN0YXRpYyBQYXJlblN0YWNrRW50cnkgcGFyZW5TdGFja1tdID0gbmV3IFBhcmVuU3RhY2tFbnRyeVtQQVJFTl9TVEFDS19ERVBUSF07CisgICAgcHJpdmF0ZSBpbnQgcGFyZW5TUCA9IC0xOworICAgIHByaXZhdGUgaW50IHB1c2hDb3VudCA9IDA7CisgICAgcHJpdmF0ZSBpbnQgZml4dXBDb3VudCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBoaWdoZXN0IGJpdCB0aGF0J3Mgc2V0IGluIGEgd29yZC4gVXNlcyBhIGJpbmFyeSBzZWFyY2ggdGhyb3VnaAorICAgICAqIHRoZSBiaXRzLgorICAgICAqCisgICAgICogQHBhcmFtIG4gdGhlIHdvcmQgaW4gd2hpY2ggdG8gZmluZCB0aGUgaGlnaGVzdCBiaXQgdGhhdCdzIHNldC4KKyAgICAgKiBAcmV0dXJuIHRoZSBiaXQgbnVtYmVyIChjb3VudGluZyBmcm9tIHRoZSBsb3cgb3JkZXIgYml0KSBvZiB0aGUgaGlnaGVzdCBiaXQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBoaWdoQml0KGludCBuKQorICAgIHsKKyAgICAgICAgaWYgKG4gPD0gMCkgeworICAgICAgICAgICAgcmV0dXJuIC0zMjsKKyAgICAgICAgfQorCisgICAgICAgIGJ5dGUgYml0ID0gMDsKKworICAgICAgICBpZiAobiA+PSAxIDw8IDE2KSB7CisgICAgICAgICAgICBuID4+PSAxNjsKKyAgICAgICAgICAgIGJpdCArPSAxNjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID49IDEgPDwgOCkgeworICAgICAgICAgICAgbiA+Pj0gODsKKyAgICAgICAgICAgIGJpdCArPSA4OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG4gPj0gMSA8PCA0KSB7CisgICAgICAgICAgICBuID4+PSA0OworICAgICAgICAgICAgYml0ICs9IDQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAobiA+PSAxIDw8IDIpIHsKKyAgICAgICAgICAgIG4gPj49IDI7CisgICAgICAgICAgICBiaXQgKz0gMjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuID49IDEgPDwgMSkgeworICAgICAgICAgICAgbiA+Pj0gMTsKKyAgICAgICAgICAgIGJpdCArPSAxOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGJpdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWFyY2ggdGhlIHBhaXJlZENoYXJzIGFycmF5IGZvciB0aGUgZ2l2ZW4gY2hhcmFjdGVyLgorICAgICAqCisgICAgICogQHBhcmFtIGNoIHRoZSBjaGFyYWN0ZXIgZm9yIHdoaWNoIHRvIHNlYXJjaC4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgY2hhcmFjdGVyIGluIHRoZSB0YWJsZSwgb3IgLTEgaWYgaXQncyBub3QgdGhlcmUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldFBhaXJJbmRleChpbnQgY2gpCisgICAgeworICAgICAgICBpbnQgcHJvYmUgPSBwYWlyZWRDaGFyUG93ZXI7CisgICAgICAgIGludCBpbmRleCA9IDA7CisKKyAgICAgICAgaWYgKGNoID49IHBhaXJlZENoYXJzW3BhaXJlZENoYXJFeHRyYV0pIHsKKyAgICAgICAgICAgIGluZGV4ID0gcGFpcmVkQ2hhckV4dHJhOworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKHByb2JlID4gKDEgPDwgMCkpIHsKKyAgICAgICAgICAgIHByb2JlID4+PSAxOworCisgICAgICAgICAgICBpZiAoY2ggPj0gcGFpcmVkQ2hhcnNbaW5kZXggKyBwcm9iZV0pIHsKKyAgICAgICAgICAgICAgICBpbmRleCArPSBwcm9iZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChwYWlyZWRDaGFyc1tpbmRleF0gIT0gY2gpIHsKKyAgICAgICAgICAgIGluZGV4ID0gLTE7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHBhaXJlZENoYXJzW10gPSB7CisgICAgICAgIDB4MDAyOCwgMHgwMDI5LCAvLyBhc2NpaSBwYWlyZWQgcHVuY3R1YXRpb24KKyAgICAgICAgMHgwMDNjLCAweDAwM2UsCisgICAgICAgIDB4MDA1YiwgMHgwMDVkLAorICAgICAgICAweDAwN2IsIDB4MDA3ZCwKKyAgICAgICAgMHgwMGFiLCAweDAwYmIsIC8vIGd1aWxsZW1ldHMKKyAgICAgICAgMHgyMDE4LCAweDIwMTksIC8vIGdlbmVyYWwgcHVuY3R1YXRpb24KKyAgICAgICAgMHgyMDFjLCAweDIwMWQsCisgICAgICAgIDB4MjAzOSwgMHgyMDNhLAorICAgICAgICAweDMwMDgsIDB4MzAwOSwgLy8gY2hpbmVzZSBwYWlyZWQgcHVuY3R1YXRpb24KKyAgICAgICAgMHgzMDBhLCAweDMwMGIsCisgICAgICAgIDB4MzAwYywgMHgzMDBkLAorICAgICAgICAweDMwMGUsIDB4MzAwZiwKKyAgICAgICAgMHgzMDEwLCAweDMwMTEsCisgICAgICAgIDB4MzAxNCwgMHgzMDE1LAorICAgICAgICAweDMwMTYsIDB4MzAxNywKKyAgICAgICAgMHgzMDE4LCAweDMwMTksCisgICAgICAgIDB4MzAxYSwgMHgzMDFiCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGludCBwYWlyZWRDaGFyUG93ZXIgPSAxIDw8IGhpZ2hCaXQocGFpcmVkQ2hhcnMubGVuZ3RoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgcGFpcmVkQ2hhckV4dHJhID0gcGFpcmVkQ2hhcnMubGVuZ3RoIC0gcGFpcmVkQ2hhclBvd2VyOworfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbGFuZy9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvbGFuZy9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTEzMjgyZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9sYW5nL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPjwhLS0gIENvcHlyaWdodCAoQykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorLS0+CisKKzx0aXRsZT5DOklDVTRKIC5sYW5nIFBhY2thZ2UgT3ZlcnZpZXc8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CisKKzxwPkVuaGFuY2VkIGNoYXJhY3RlciBwcm9wZXJ0eSBhbmQgc3Vycm9nYXRlIHN1cHBvcnQuPC9wPgorCitVQ2hhcmFjdGVyIHN1cHBvcnRzIGFsbCBjaGFyYWN0ZXJzIGFuZCBwcm9wZXJ0aWVzIGRlZmluZWQgaW4gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIFVuaWNvZGUsIGluY2x1ZGluZyBwcm9wZXJ0aWVzIG9mIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzLiAgSXQgcHJvdmlkZXMgbmV3IEFQSSBmb3IgcXVlcnlpbmcgc3Vycm9nYXRlIGNoYXJhY3RlcnMgKHJlcHJlc2VudGVkIGFzIGludCkgYW5kIGFsc28gc3VwcG9ydHMgdGhlIGphdmEubGFuZy5DaGFyYWN0ZXIgQVBJLiAgVVNjcmlwdCBhbmQgVVNjcmlwdFJ1biBwcm92aWRlIGluZm9ybWF0aW9uIGFib3V0IHNjcmlwdHMsIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUgdGhyb3VnaCB0aGUgSmF2YSBBUElzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9tYW5pZmVzdC5tb2R1bGUuc3R1YiBiL3NyYy9jb20vaWJtL2ljdS9tYW5pZmVzdC5tb2R1bGUuc3R1YgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjgxN2VjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L21hbmlmZXN0Lm1vZHVsZS5zdHViCkBAIC0wLDAgKzEsMTQgQEAKK01hbmlmZXN0LVZlcnNpb246IDEuMAorCitOYW1lOiBjb20vaWJtL2ljdQorU3BlY2lmaWNhdGlvbi1UaXRsZTogTW9kdWxhcml6ZWQgSUNVIGZvciBKYXZhCitTcGVjaWZpY2F0aW9uLVZlcnNpb246IDMuNC41CitTcGVjaWZpY2F0aW9uLVZlbmRvcjogSUNVCitJbXBsZW1lbnRhdGlvbi1UaXRsZTogTW9kdWxhcml6ZWQgSUNVIGZvciBKYXZhCitJbXBsZW1lbnRhdGlvbi1WZXJzaW9uOiAzLjQuNQorSW1wbGVtZW50YXRpb24tVmVuZG9yOiBJQk0gQ29ycG9yYXRpb24KK0ltcGxlbWVudGF0aW9uLVZlbmRvci1JZDogY29tLmlibQorQ29weXJpZ2h0LUluZm86IENvcHlyaWdodCAoYykgMjAwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorU2VhbGVkOiBmYWxzZQorCisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9tYW5pZmVzdC5zdHViIGIvc3JjL2NvbS9pYm0vaWN1L21hbmlmZXN0LnN0dWIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE3YzY4ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9tYW5pZmVzdC5zdHViCkBAIC0wLDAgKzEsMTIgQEAKK01hbmlmZXN0LVZlcnNpb246IDEuMAorCitOYW1lOiBjb20vaWJtL2ljdS8KK1NwZWNpZmljYXRpb24tVGl0bGU6IElDVSBmb3IgSmF2YQorU3BlY2lmaWNhdGlvbi1WZXJzaW9uOiAzLjQuNQorU3BlY2lmaWNhdGlvbi1WZW5kb3I6IElDVQorSW1wbGVtZW50YXRpb24tVGl0bGU6IElDVSBmb3IgSmF2YQorSW1wbGVtZW50YXRpb24tVmVyc2lvbjogMy40LjUKK0ltcGxlbWVudGF0aW9uLVZlbmRvcjogSUJNIENvcnBvcmF0aW9uCitJbXBsZW1lbnRhdGlvbi1WZW5kb3ItSWQ6IGNvbS5pYm0KK0NvcHlyaWdodC1JbmZvOiBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK1NlYWxlZDogZmFsc2UKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS9tYXRoL0JpZ0RlY2ltYWwuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9tYXRoL0JpZ0RlY2ltYWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZmUyZjI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L21hdGgvQmlnRGVjaW1hbC5qYXZhCkBAIC0wLDAgKzEsNDQwMyBAQAorLy8jI2hlYWRlcgorLyogR2VuZXJhdGVkIGZyb20gJ0JpZ0RlY2ltYWwubnJ4JyA4IFNlcCAyMDAwIDExOjEwOjUwIFt2Mi4wMF0gKi8KKy8qIE9wdGlvbnM6IEJpbmFyeSBDb21tZW50cyBDcm9zc3JlZiBGb3JtYXQgSmF2YSBMb2dvIFN0cmljdGFyZ3MgU3RyaWN0Y2FzZSBUcmFjZTIgVmVyYm9zZTMgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UubWF0aDsKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogQmlnRGVjaW1hbCAtLSBEZWNpbWFsIGFyaXRobWV0aWMgZm9yIEphdmEgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIENvcHlyaWdodCBJQk0gQ29ycG9yYXRpb24sIDE5OTYtMjAwNi4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIFRoZSBCaWdEZWNpbWFsIGNsYXNzIHByb3ZpZGVzIGltbXV0YWJsZSBhcmJpdHJhcnktcHJlY2lzaW9uICAgICAgICAqLworLyogZmxvYXRpbmcgcG9pbnQgKGluY2x1ZGluZyBpbnRlZ2VyKSBkZWNpbWFsIG51bWJlcnMuICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIEFzIHRoZSBudW1iZXJzIGFyZSBkZWNpbWFsLCB0aGVyZSBpcyBhbiBleGFjdCBjb3JyZXNwb25kZW5jZSAgICAgICAqLworLyogYmV0d2VlbiBhbiBpbnN0YW5jZSBvZiBhIEJpZ0RlY2ltYWwgb2JqZWN0IGFuZCBpdHMgU3RyaW5nICAgICAgICAgICovCisvKiByZXByZXNlbnRhdGlvbjsgdGhlIEJpZ0RlY2ltYWwgY2xhc3MgcHJvdmlkZXMgZGlyZWN0IGNvbnZlcnNpb25zICAgKi8KKy8qIHRvIGFuZCBmcm9tIFN0cmluZyBhbmQgY2hhcmFjdGVyIGFycmF5IG9iamVjdHMsIGFuZCB3ZWxsIGFzICAgICAgICAqLworLyogY29udmVyc2lvbnMgdG8gYW5kIGZyb20gdGhlIEphdmEgcHJpbWl0aXZlIHR5cGVzICh3aGljaCBtYXkgbm90ICAgICovCisvKiBiZSBleGFjdCkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogTm90ZXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDEuIEEgQmlnRGVjaW1hbCBvYmplY3QgaXMgbmV2ZXIgY2hhbmdlZCBpbiB2YWx1ZSBvbmNlIGNvbnN0cnVjdGVkOyAqLworLyogICAgdGhpcyBhdm9pZHMgdGhlIG5lZWQgZm9yIGxvY2tpbmcuICBOb3RlIGluIHBhcnRpY3VsYXIgdGhhdCB0aGUgICovCisvKiAgICBtYW50aXNzYSBhcnJheSBtYXkgYmUgc2hhcmVkIGJldHdlZW4gbWFueSBCaWdEZWNpbWFsIG9iamVjdHMsICAgKi8KKy8qICAgIHNvIHRoYXQgb25jZSBleHBvc2VkIGl0IG11c3Qgbm90IGJlIGFsdGVyZWQuICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAyLiBUaGlzIGNsYXNzIGxvb2tzIGF0IE1hdGhDb250ZXh0IGNsYXNzIGZpZWxkcyBkaXJlY3RseSAoZm9yICAgICAgKi8KKy8qICAgIHBlcmZvcm1hbmNlKS4gIEl0IG11c3Qgbm90IGFuZCBkb2VzIG5vdCBjaGFuZ2UgdGhlbS4gICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAzLiBFeHBvbmVudCBjaGVja2luZyBpcyBkZWxheWVkIHVudGlsIGZpbmlzaCgpLCBhcyB3ZSBrbm93ICAgICAgICAgKi8KKy8qICAgIGludGVybWVkaWF0ZSBjYWxjdWxhdGlvbnMgY2Fubm90IGNhdXNlIDMxLWJpdCBvdmVyZmxvdy4gICAgICAgICAqLworLyogICAgW1RoaXMgYXNzZXJ0aW9uIGRlcGVuZHMgb24gTUFYX0RJR0lUUyBpbiBNYXRoQ29udGV4dC5dICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDQuIENvbW1lbnRzIGZvciB0aGUgcHVibGljIEFQSSBub3cgZm9sbG93IHRoZSBqYXZhZG9jIGNvbnZlbnRpb25zLiAqLworLyogICAgVGhlIE5ldFJleHggLWNvbW1lbnRzIG9wdGlvbiBpcyB1c2VkIHRvIHBhc3MgdGhlc2UgY29tbWVudHMgICAgICovCisvKiAgICB0aHJvdWdoIHRvIHRoZSBnZW5lcmF0ZWQgSmF2YSBjb2RlICh3aXRoIC1mb3JtYXQsIGlmIGRlc2lyZWQpLiAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogNS4gU3lzdGVtLmFycmF5Y29weSBpcyBmYXN0ZXIgdGhhbiBleHBsaWNpdCBsb29wIGFzIGZvbGxvd3MgICAgICAgICovCisvKiAgICAgIE1lYW4gbGVuZ3RoIDQ6ICBlcXVhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgTWVhbiBsZW5ndGggODogIHgyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICBNZWFuIGxlbmd0aCAxNjogeDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgIE1lYW4gbGVuZ3RoIDI0OiB4NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgIEZyb20gcHJpb3IgZXhwZXJpZW5jZSwgd2UgZXhwZWN0IG1lYW4gbGVuZ3RoIGEgbGl0dGxlIGJlbG93IDgsICAqLworLyogICAgYnV0IGFycmF5Y29weSBpcyBzdGlsbCB0aGUgb25lIHRvIHVzZSwgaW4gZ2VuZXJhbCwgdW50aWwgbGF0ZXIgICovCisvKiAgICBtZWFzdXJlbWVudHMgc3VnZ2VzdCBvdGhlcndpc2UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogNi4gJ0RNU1JDTicgcmVmZXJyZWQgdG8gYmVsb3cgaXMgdGhlIG9yaWdpbmFsICgxOTgxKSBJQk0gUy8zNzAgICAgICovCisvKiAgICBhc3NlbWJsZXIgY29kZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYWxnb3JpdGhtcyBiZWxvdzsgaXQgaXMgICAgKi8KKy8qICAgIG5vdyBjYWxsZWQgSVhYUkNOIGFuZCBpcyBhdmFpbGFibGUgd2l0aCB0aGUgT1MvMzkwIGFuZCBWTS9FU0EgICAqLworLyogICAgb3BlcmF0aW5nIHN5c3RlbXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIENoYW5nZSBIaXN0b3J5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5Ny4wOS4wMiBJbml0aWFsIHZlcnNpb24gKGRlcml2ZWQgZnJvbSBuZXRyZXh4LmxhbmcgY2xhc3NlcykgICAgICovCisvKiAxOTk3LjA5LjEyIEFkZCBsb3N0RGlnaXRzIGNoZWNraW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTcuMTAuMDYgQ2hhbmdlIG1hbnRpc3NhIHRvIGEgYnl0ZSBhcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5Ny4xMS4yMiBSZXdvcmsgcG93ZXIgW2RpZCBub3QgcHJlcGFyZSBhcmd1bWVudHMsIGV0Yy5dICAgICAgICAgICovCisvKiAxOTk3LjEyLjEzIG11bHRpcGx5IGRpZCBub3QgcHJlcGFyZSBhcmd1bWVudHMgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTcuMTIuMTQgYWRkIGRpZCBub3QgcHJlcGFyZSBhbmQgYWxpZ24gYXJndW1lbnRzIGNvcnJlY3RseSAgICAgICAqLworLyogMTk5OC4wNS4wMiAwLjA3IHBhY2thZ2luZyBjaGFuZ2VzIHN1Z2dlc3RlZCBieSBTdW4gYW5kIE9yYWNsZSAgICAgICovCisvKiAxOTk4LjA1LjIxIGFkanVzdCByZW1haW5kZXIgb3BlcmF0b3IgZmluYWxpemF0aW9uICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMDYuMDQgcmV3b3JrIHRvIHBhc3MgTWF0aENvbnRleHQgdG8gZmluaXNoKCkgYW5kIHJvdW5kKCkgICAgICAqLworLyogMTk5OC4wNi4wNiBjaGFuZ2UgZm9ybWF0IHRvIHVzZSByb3VuZCgpOyBzdXBwb3J0IHJvdW5kaW5nIG1vZGVzICAgICovCisvKiAxOTk4LjA2LjI1IHJlbmFtZSB0byBCaWdEZWNpbWFsIGFuZCBiZWdpbiBtZXJnZSAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgemVybyBjYW4gbm93IGhhdmUgdHJhaWxpbmcgemVyb3MgKGkuZS4sIGV4cFw9MCkgICAgICAgICAqLworLyogMTk5OC4wNi4yOCBuZXcgbWV0aG9kczogbW92ZVBvaW50WHh4eCwgc2NhbGUsIHRvQmlnSW50ZWdlciAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNjYWxlZFZhbHVlLCB2YWx1ZW9mICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMDcuMDEgaW1wcm92ZSBieXRlYWRkc3ViIHRvIGFsbG93IGFycmF5IHJldXNlLCBldGMuICAgICAgICAgICAqLworLyogMTk5OC4wNy4wMSBtYWtlIG51bGwgdGVzdGluZyBleHBsaWNpdCB0byBhdm9pZCBKSVQgYnVnIFtXaW4zMl0gICAgICovCisvKiAxOTk4LjA3LjA3IHNjYWxlZCBkaXZpc2lvbiAgW2RpdmlkZShCaWdEZWNpbWFsLCBpbnQsIGludCldICAgICAgICAgKi8KKy8qIDE5OTguMDcuMDggc2V0U2NhbGUsIGZhc3RlciBlcXVhbHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OC4wNy4xMSBhbGxvdyAxRTYgKG5vIHNpZ24pIDxzaWdoPjsgbmV3IGRvdWJsZS9mbG9hdCBjb252ZXJzaW9uICovCisvKiAxOTk4LjEwLjEyIGNoYW5nZSBwYWNrYWdlIHRvIGNvbS5pYm0uaWN1Lm1hdGggICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjEyLjE0IHBvd2VyIG9wZXJhdG9yIG5vIGxvbmdlciByb3VuZHMgUkhTIFt0byBtYXRjaCBBTlNJXSAgICAgKi8KKy8qICAgICAgICAgICAgYWRkIHRvQmlnRGVjaW1hbCgpIGFuZCBCaWdEZWNpbWFsKGphdmEubWF0aC5CaWdEZWNpbWFsKSAqLworLyogMTk5OC4xMi4yOSBpbXByb3ZlIGJ5dGVhZGRzdWIgYnkgdXNpbmcgdGFibGUgbG9va3VwICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjAyLjA0IGxvc3RkaWdpdHM9MCBiZWhhdmlvdXIgcm91bmRzIGluc3RlYWQgb2YgZGlnaXRzKzEgZ3VhcmQgKi8KKy8qIDE5OTkuMDIuMDUgY2xlYW5lciBjb2RlIGZvciBCaWdEZWNpbWFsKGNoYXJbXSkgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wMi4wNiBhZGQgamF2YWRvYyBjb21tZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjAyLjExIGZvcm1hdCgpIGNoYW5nZWQgZnJvbSA3IHRvIDIgbWV0aG9kIGZvcm0gICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDMuMDUgbnVsbCBwb2ludGVyIGNoZWNraW5nIGlzIG5vIGxvbmdlciBleHBsaWNpdCAgICAgICAgICAgICAqLworLyogMTk5OS4wMy4wNSBzaW1wbGlmeTsgY2hhbmdlcyBmcm9tIGRpc2N1c3Npb24gd2l0aCBKLiBCbG9jaDogICAgICAgICovCisvKiAgICAgICAgICAgIG51bGwgbm8gbG9uZ2VyIHBlcm1pdHRlZCBmb3IgTWF0aENvbnRleHQ7IGRyb3AgYm9vbGVhbiwgKi8KKy8qICAgICAgICAgICAgYnl0ZSwgY2hhciwgZmxvYXQsIHNob3J0IGNvbnN0cnVjdG9yLCBkZXByZWNhdGUgZG91YmxlICAqLworLyogICAgICAgICAgICBjb25zdHJ1Y3Rvciwgbm8gYmxhbmtzIGluIHN0cmluZyBjb25zdHJ1Y3RvciwgYWRkICAgICAgICovCisvKiAgICAgICAgICAgIG9mZnNldCBhbmQgbGVuZ3RoIHZlcnNpb24gb2YgY2hhcltdIGNvbnN0cnVjdG9yOyAgICAgICAgKi8KKy8qICAgICAgICAgICAgYWRkIHZhbHVlT2YoZG91YmxlKTsgZHJvcCBib29sZWFuVmFsdWUsIGNoYXJWYWx1ZTsgICAgICAqLworLyogICAgICAgICAgICBhZGQgLi4uRXhhY3QgdmVyc2lvbnMgb2YgcmVtYWluaW5nIGNvbnZlcnRvcnMgICAgICAgICAgICovCisvKiAxOTk5LjAzLjEzIGFkZCB0b0JpZ0ludGVnZXJFeGFjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDMuMTMgMS4wMCByZWxlYXNlIHRvIElCTSBDZW50cmUgZm9yIEphdmEgVGVjaG5vbG9neSAgICAgICAgICAqLworLyogMTk5OS4wNS4yNyAxLjAxIGNvcnJlY3QgMC0wLjIgYnVnIHVuZGVyIHNjYWxlZCBhcml0aG1ldGljICAgICAgICAgICovCisvKiAxOTk5LjA2LjI5IDEuMDIgY29uc3RydWN0b3JzIHNob3VsZCBub3QgYWxsb3cgZXhwb25lbnQgPiA5IGRpZ2l0cyAgKi8KKy8qIDE5OTkuMDcuMDMgMS4wMyBsb3N0IGRpZ2l0cyBzaG91bGQgbm90IGJlIGNoZWNrZWQgaWYgZGlnaXRzPTAgICAgICAqLworLyogMTk5OS4wNy4wNiAgICAgIGxvc3QgZGlnaXRzIEV4Y2VwdGlvbiBtZXNzYWdlIGNoYW5nZWQgICAgICAgICAgICAgICovCisvKiAxOTk5LjA3LjEwIDEuMDQgbW9yZSB3b3JrIG9uIDAtMC4yIChzY2FsZWQgYXJpdGhtZXRpYykgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDcuMTcgICAgICBpbXByb3ZlIG1lc3NhZ2VzIGZyb20gcG93IG1ldGhvZCAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wOC4wOCAgICAgIHBlcmZvcm1hbmNlIHR3ZWFrcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk5LjA4LjE1ICAgICAgZmFzdHBhdGggaW4gbXVsdGlwbHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMTEuMDUgMS4wNSBmaXggcHJvYmxlbSBpbiBpbnRWYWx1ZUV4YWN0IFtlLmcuLCA1NTU1NTU1NTU1XSAgICAqLworLyogMTk5OS4xMi4yMiAxLjA2IHJlbW92ZSBtdWx0aXBseSBmYXN0cGF0aCwgYW5kIGltcHJvdmUgcGVyZm9ybWFuY2UgICovCisvKiAyMDAwLjAxLjAxICAgICAgY29weXJpZ2h0IHVwZGF0ZSBbWTJLIGhhcyBhcnJpdmVkXSAgICAgICAgICAgICAgICAgKi8KKy8qIDIwMDAuMDYuMTggMS4wOCBubyBsb25nZXIgZGVwcmVjYXRlIEJpZ0RlY2ltYWwoZG91YmxlKSAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKworCisKKworLyoqCisgKiBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gY2xhc3MgaW1wbGVtZW50cyBpbW11dGFibGUKKyAqIGFyYml0cmFyeS1wcmVjaXNpb24gZGVjaW1hbCBudW1iZXJzLiAgVGhlIG1ldGhvZHMgb2YgdGhlCisgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBjbGFzcyBwcm92aWRlIG9wZXJhdGlvbnMgZm9yIGZpeGVkIGFuZAorICogZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYywgY29tcGFyaXNvbiwgZm9ybWF0IGNvbnZlcnNpb25zLCBhbmQKKyAqIGhhc2hpbmcuCisgKiA8cD4KKyAqIEFzIHRoZSBudW1iZXJzIGFyZSBkZWNpbWFsLCB0aGVyZSBpcyBhbiBleGFjdCBjb3JyZXNwb25kZW5jZSBiZXR3ZWVuCisgKiBhbiBpbnN0YW5jZSBvZiBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBhbmQgaXRzCisgKiA8Y29kZT5TdHJpbmc8L2NvZGU+IHJlcHJlc2VudGF0aW9uOyB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gY2xhc3MKKyAqIHByb3ZpZGVzIGRpcmVjdCBjb252ZXJzaW9ucyB0byBhbmQgZnJvbSA8Y29kZT5TdHJpbmc8L2NvZGU+IGFuZAorICogY2hhcmFjdGVyIGFycmF5ICg8Y29kZT5jaGFyW108L2NvZGU+KSBvYmplY3RzLCBhcyB3ZWxsIGFzIGNvbnZlcnNpb25zCisgKiB0byBhbmQgZnJvbSB0aGUgSmF2YSBwcmltaXRpdmUgdHlwZXMgKHdoaWNoIG1heSBub3QgYmUgZXhhY3QpIGFuZAorICogPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4uCisgKiA8cD4KKyAqIEluIHRoZSBkZXNjcmlwdGlvbnMgb2YgY29uc3RydWN0b3JzIGFuZCBtZXRob2RzIGluIHRoaXMgZG9jdW1lbnRhdGlvbiwKKyAqIHRoZSB2YWx1ZSBvZiBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG51bWJlciBvYmplY3QgaXMgc2hvd24gYXMgdGhlCisgKiByZXN1bHQgb2YgaW52b2tpbmcgdGhlIDxjb2RlPnRvU3RyaW5nKCk8L2NvZGU+IG1ldGhvZCBvbiB0aGUgb2JqZWN0LgorICogVGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIGEgZGVjaW1hbCBudW1iZXIgaXMgbmVpdGhlciBkZWZpbmVkCisgKiBub3IgZXhwb3NlZCwgYW5kIGlzIG5vdCBwZXJtaXR0ZWQgdG8gYWZmZWN0IHRoZSByZXN1bHQgb2YgYW55CisgKiBvcGVyYXRpb24uCisgKiA8cD4KKyAqIFRoZSBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljIHByb3ZpZGVkIGJ5IHRoaXMgY2xhc3MgaXMgZGVmaW5lZCBieQorICogdGhlIEFOU0kgWDMuMjc0LTE5OTYgc3RhbmRhcmQsIGFuZCBpcyBhbHNvIGRvY3VtZW50ZWQgYXQKKyAqIDxjb2RlPmh0dHA6Ly93d3cyLmh1cnNsZXkuaWJtLmNvbS9kZWNpbWFsPC9jb2RlPgorICogPGJyPjxpPltUaGlzIFVSTCB3aWxsIGNoYW5nZS5dPC9pPgorICoKKyAqIDxoMz5PcGVyYXRvciBtZXRob2RzPC9oMz4KKyAqIDxwPgorICogT3BlcmF0aW9ucyBvbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBudW1iZXJzIGFyZSBjb250cm9sbGVkIGJ5IGEKKyAqIHtAbGluayBNYXRoQ29udGV4dH0gb2JqZWN0LCB3aGljaCBwcm92aWRlcyB0aGUgY29udGV4dCAocHJlY2lzaW9uIGFuZAorICogb3RoZXIgaW5mb3JtYXRpb24pIGZvciB0aGUgb3BlcmF0aW9uLiBNZXRob2RzIHRoYXQgY2FuIHRha2UgYQorICogPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHBhcmFtZXRlciBpbXBsZW1lbnQgdGhlIHN0YW5kYXJkIGFyaXRobWV0aWMKKyAqIG9wZXJhdG9ycyBmb3IgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0cyBhbmQgYXJlIGtub3duIGFzCisgKiA8aT5vcGVyYXRvciBtZXRob2RzPC9pPi4gIFRoZSBkZWZhdWx0IHNldHRpbmdzIHByb3ZpZGVkIGJ5IHRoZQorICogY29uc3RhbnQge0BsaW5rIE1hdGhDb250ZXh0I0RFRkFVTFR9ICg8Y29kZT5kaWdpdHM9OSwKKyAqIGZvcm09U0NJRU5USUZJQywgbG9zdERpZ2l0cz1mYWxzZSwgcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfVVA8L2NvZGU+KQorICogcGVyZm9ybSBnZW5lcmFsLXB1cnBvc2UgZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYyB0byBuaW5lIGRpZ2l0cyBvZgorICogcHJlY2lzaW9uLiAgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIgbXVzdCBub3QgYmUKKyAqIDxjb2RlPm51bGw8L2NvZGU+LgorICogPHA+CisgKiBFYWNoIG9wZXJhdG9yIG1ldGhvZCBhbHNvIGhhcyBhIHZlcnNpb24gcHJvdmlkZWQgd2hpY2ggZG9lcworICogbm90IHRha2UgYSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gcGFyYW1ldGVyLiAgRm9yIHRoaXMgdmVyc2lvbiBvZgorICogZWFjaCBtZXRob2QsIHRoZSBjb250ZXh0IHNldHRpbmdzIHVzZWQgYXJlIDxjb2RlPmRpZ2l0cz0wLAorICogZm9ybT1QTEFJTiwgbG9zdERpZ2l0cz1mYWxzZSwgcm91bmRpbmdNb2RlPVJPVU5EX0hBTEZfVVA8L2NvZGU+OworICogdGhlc2Ugc2V0dGluZ3MgcGVyZm9ybSBmaXhlZCBwb2ludCBhcml0aG1ldGljIHdpdGggdW5saW1pdGVkCisgKiBwcmVjaXNpb24sIGFzIGRlZmluZWQgZm9yIHRoZSBvcmlnaW5hbCBCaWdEZWNpbWFsIGNsYXNzIGluIEphdmEgMS4xCisgKiBhbmQgSmF2YSAxLjIuCisgKiA8cD4KKyAqIEZvciBtb25hZGljIG9wZXJhdG9ycywgb25seSB0aGUgb3B0aW9uYWwgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+CisgKiBwYXJhbWV0ZXIgaXMgcHJlc2VudDsgdGhlIG9wZXJhdGlvbiBhY3RzIHVwb24gdGhlIGN1cnJlbnQgb2JqZWN0LgorICogPHA+CisgKiBGb3IgZHlhZGljIG9wZXJhdG9ycywgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBwYXJhbWV0ZXIgaXMgYWx3YXlzCisgKiBwcmVzZW50OyBpdCBtdXN0IG5vdCBiZSA8Y29kZT5udWxsPC9jb2RlPi4KKyAqIFRoZSBvcGVyYXRpb24gYWN0cyB3aXRoIHRoZSBjdXJyZW50IG9iamVjdCBiZWluZyB0aGUgbGVmdC1oYW5kIG9wZXJhbmQKKyAqIGFuZCB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gcGFyYW1ldGVyIGJlaW5nIHRoZSByaWdodC1oYW5kIG9wZXJhbmQuCisgKiA8cD4KKyAqIEZvciBleGFtcGxlLCBhZGRpbmcgdHdvIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdHMgcmVmZXJyZWQgdG8KKyAqIGJ5IHRoZSBuYW1lcyA8Y29kZT5hd2FyZDwvY29kZT4gYW5kIDxjb2RlPmV4dHJhPC9jb2RlPiBjb3VsZCBiZQorICogd3JpdHRlbiBhcyBhbnkgb2Y6CisgKiA8cD48Y29kZT4KKyAqICAgICBhd2FyZC5hZGQoZXh0cmEpCisgKiA8YnI+YXdhcmQuYWRkKGV4dHJhLCBNYXRoQ29udGV4dC5ERUZBVUxUKQorICogPGJyPmF3YXJkLmFkZChleHRyYSwgYWNvbnRleHQpCisgKiA8L2NvZGU+CisgKiA8cD4KKyAqICh3aGVyZSA8Y29kZT5hY29udGV4dDwvY29kZT4gaXMgYSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gb2JqZWN0KSwKKyAqIHdoaWNoIHdvdWxkIHJldHVybiBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCB3aG9zZSB2YWx1ZSBpcworICogdGhlIHJlc3VsdCBvZiBhZGRpbmcgPGNvZGU+YXdhcmQ8L2NvZGU+IGFuZCA8Y29kZT5leHRyYTwvY29kZT4gdW5kZXIKKyAqIHRoZSBhcHByb3ByaWF0ZSBjb250ZXh0IHNldHRpbmdzLgorICogPHA+CisgKiBXaGVuIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb3BlcmF0b3IgbWV0aG9kIGlzIHVzZWQsIGEgc2V0IG9mCisgKiBydWxlcyBkZWZpbmUgd2hhdCB0aGUgcmVzdWx0IHdpbGwgYmUgKGFuZCwgYnkgaW1wbGljYXRpb24sIGhvdyB0aGUKKyAqIHJlc3VsdCB3b3VsZCBiZSByZXByZXNlbnRlZCBhcyBhIGNoYXJhY3RlciBzdHJpbmcpLgorICogVGhlc2UgcnVsZXMgYXJlIGRlZmluZWQgaW4gdGhlIEJpZ0RlY2ltYWwgYXJpdGhtZXRpYyBkb2N1bWVudGF0aW9uCisgKiAoc2VlIHRoZSBVUkwgYWJvdmUpLCBidXQgaW4gc3VtbWFyeToKKyAqIDx1bD4KKyAqIDxsaT5SZXN1bHRzIGFyZSBub3JtYWxseSBjYWxjdWxhdGVkIHdpdGggdXAgdG8gc29tZSBtYXhpbXVtIG51bWJlciBvZgorICogc2lnbmlmaWNhbnQgZGlnaXRzLgorICogRm9yIGV4YW1wbGUsIGlmIHRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gcGFyYW1ldGVyIGZvciBhbiBvcGVyYXRpb24KKyAqIHdlcmUgPGNvZGU+TWF0aENvbnRleHQuREVGQVVMVDwvY29kZT4gdGhlbiB0aGUgcmVzdWx0IHdvdWxkIGJlCisgKiByb3VuZGVkIHRvIDkgZGlnaXRzOyB0aGUgZGl2aXNpb24gb2YgMiBieSAzIHdvdWxkIHRoZW4gcmVzdWx0IGluCisgKiAwLjY2NjY2NjY2Ny4KKyAqIDxicj4KKyAqIFlvdSBjYW4gY2hhbmdlIHRoZSBkZWZhdWx0IG9mIDkgc2lnbmlmaWNhbnQgZGlnaXRzIGJ5IHByb3ZpZGluZyB0aGUKKyAqIG1ldGhvZCB3aXRoIGEgc3VpdGFibGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IG9iamVjdC4gVGhpcyBsZXRzIHlvdQorICogY2FsY3VsYXRlIHVzaW5nIGFzIG1hbnkgZGlnaXRzIGFzIHlvdSBuZWVkIC0tIHRob3VzYW5kcywgaWYgbmVjZXNzYXJ5LgorICogRml4ZWQgcG9pbnQgKHNjYWxlZCkgYXJpdGhtZXRpYyBpcyBpbmRpY2F0ZWQgYnkgdXNpbmcgYQorICogPGNvZGU+ZGlnaXRzPC9jb2RlPiBzZXR0aW5nIG9mIDAgKG9yIG9taXR0aW5nIHRoZQorICogPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHBhcmFtZXRlcikuCisgKiA8YnI+CisgKiBTaW1pbGFybHksIHlvdSBjYW4gY2hhbmdlIHRoZSBhbGdvcml0aG0gdXNlZCBmb3Igcm91bmRpbmcgZnJvbSB0aGUKKyAqIGRlZmF1bHQgImNsYXNzaWMiIGFsZ29yaXRobS4KKyAqIDxsaT4KKyAqIEluIHN0YW5kYXJkIGFyaXRobWV0aWMgKHRoYXQgaXMsIHdoZW4gdGhlIDxjb2RlPmZvcm08L2NvZGU+IHNldHRpbmcKKyAqIGlzIG5vdCA8Y29kZT5QTEFJTjwvY29kZT4pLCBhIHplcm8gcmVzdWx0IGlzIGFsd2F5cyBleHByZXNzZWQgYXMgdGhlCisgKiBzaW5nbGUgZGlnaXQgPGNvZGU+JzAnPC9jb2RlPiAodGhhdCBpcywgd2l0aCBubyBzaWduLCBkZWNpbWFsIHBvaW50LAorICogb3IgZXhwb25lbnQgcGFydCkuCisgKiA8bGk+CisgKiBFeGNlcHQgZm9yIHRoZSBkaXZpc2lvbiBhbmQgcG93ZXIgb3BlcmF0b3JzIGluIHN0YW5kYXJkIGFyaXRobWV0aWMsCisgKiB0cmFpbGluZyB6ZXJvcyBhcmUgcHJlc2VydmVkICh0aGlzIGlzIGluIGNvbnRyYXN0IHRvIGJpbmFyeSBmbG9hdGluZworICogcG9pbnQgb3BlcmF0aW9ucyBhbmQgbW9zdCBlbGVjdHJvbmljIGNhbGN1bGF0b3JzLCB3aGljaCBsb3NlIHRoZQorICogaW5mb3JtYXRpb24gYWJvdXQgdHJhaWxpbmcgemVyb3MgaW4gdGhlIGZyYWN0aW9uYWwgcGFydCBvZiByZXN1bHRzKS4KKyAqIDxicj4KKyAqIFNvLCBmb3IgZXhhbXBsZToKKyAqIDxwPjxjb2RlPgorICogICAgIG5ldyBCaWdEZWNpbWFsKCIyLjQwIikuYWRkKCAgICAgbmV3IEJpZ0RlY2ltYWwoIjIiKSkgICAgICA9Jmd0OyAiNC40MCIKKyAqIDxicj5uZXcgQmlnRGVjaW1hbCgiMi40MCIpLnN1YnRyYWN0KG5ldyBCaWdEZWNpbWFsKCIyIikpICAgICAgPSZndDsgIjAuNDAiCisgKiA8YnI+bmV3IEJpZ0RlY2ltYWwoIjIuNDAiKS5tdWx0aXBseShuZXcgQmlnRGVjaW1hbCgiMiIpKSAgICAgID0mZ3Q7ICI0LjgwIgorICogPGJyPm5ldyBCaWdEZWNpbWFsKCIyLjQwIikuZGl2aWRlKCAgbmV3IEJpZ0RlY2ltYWwoIjIiKSwgZGVmKSA9Jmd0OyAiMS4yIgorICogPC9jb2RlPgorICogPHA+d2hlcmUgdGhlIHZhbHVlIG9uIHRoZSByaWdodCBvZiB0aGUgPGNvZGU+PSZndDs8L2NvZGU+IHdvdWxkIGJlIHRoZQorICogcmVzdWx0IG9mIHRoZSBvcGVyYXRpb24sIGV4cHJlc3NlZCBhcyBhIDxjb2RlPlN0cmluZzwvY29kZT4sIGFuZAorICogPGNvZGU+ZGVmPC9jb2RlPiAoaW4gdGhpcyBhbmQgZm9sbG93aW5nIGV4YW1wbGVzKSByZWZlcnMgdG8KKyAqIDxjb2RlPk1hdGhDb250ZXh0LkRFRkFVTFQ8L2NvZGU+KS4KKyAqIFRoaXMgcHJlc2VydmF0aW9uIG9mIHRyYWlsaW5nIHplcm9zIGlzIGRlc2lyYWJsZSBmb3IgbW9zdAorICogY2FsY3VsYXRpb25zIChpbmNsdWRpbmcgZmluYW5jaWFsIGNhbGN1bGF0aW9ucykuCisgKiBJZiBuZWNlc3NhcnksIHRyYWlsaW5nIHplcm9zIG1heSBiZSBlYXNpbHkgcmVtb3ZlZCB1c2luZyBkaXZpc2lvbiBieSAxLgorICogPGxpPgorICogSW4gc3RhbmRhcmQgYXJpdGhtZXRpYywgZXhwb25lbnRpYWwgZm9ybSBpcyB1c2VkIGZvciBhIHJlc3VsdAorICogZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZSBhbmQgdGhlIGN1cnJlbnQgc2V0dGluZyBvZiA8Y29kZT5kaWdpdHM8L2NvZGU+CisgKiAodGhlIGRlZmF1bHQgaXMgOSBkaWdpdHMpLgorICogSWYgdGhlIG51bWJlciBvZiBwbGFjZXMgbmVlZGVkIGJlZm9yZSB0aGUgZGVjaW1hbCBwb2ludCBleGNlZWRzIHRoZQorICogPGNvZGU+ZGlnaXRzPC9jb2RlPiBzZXR0aW5nLCBvciB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIG51bWJlciBpcworICogbGVzcyB0aGFuIDxjb2RlPjAuMDAwMDAxPC9jb2RlPiwgdGhlbiB0aGUgbnVtYmVyIHdpbGwgYmUgZXhwcmVzc2VkIGluCisgKiBleHBvbmVudGlhbCBub3RhdGlvbjsgdGh1cworICogPHA+PGNvZGU+CisgKiAgIG5ldyBCaWdEZWNpbWFsKCIxZSs2IikubXVsdGlwbHkobmV3IEJpZ0RlY2ltYWwoIjFlKzYiKSwgZGVmKQorICogPC9jb2RlPgorICogPHA+cmVzdWx0cyBpbiA8Y29kZT4xRSsxMjwvY29kZT4gaW5zdGVhZCBvZgorICogPGNvZGU+MTAwMDAwMDAwMDAwMDwvY29kZT4sIGFuZAorICogPHA+PGNvZGU+CisgKiAgIG5ldyBCaWdEZWNpbWFsKCIxIikuZGl2aWRlKG5ldyBCaWdEZWNpbWFsKCIzRSsxMCIpLCBkZWYpCisgKiA8L2NvZGU+CisgKiA8cD5yZXN1bHRzIGluIDxjb2RlPjMuMzMzMzMzMzNFLTExPC9jb2RlPiBpbnN0ZWFkIG9mCisgKiA8Y29kZT4wLjAwMDAwMDAwMDAzMzMzMzMzMzM8L2NvZGU+LgorICogPHA+CisgKiBUaGUgZm9ybSBvZiB0aGUgZXhwb25lbnRpYWwgbm90YXRpb24gKHNjaWVudGlmaWMgb3IgZW5naW5lZXJpbmcpIGlzCisgKiBkZXRlcm1pbmVkIGJ5IHRoZSA8Y29kZT5mb3JtPC9jb2RlPiBzZXR0aW5nLgorICogPGV1bD4KKyAqIDxwPgorICogVGhlIG5hbWVzIG9mIG1ldGhvZHMgaW4gdGhpcyBjbGFzcyBmb2xsb3cgdGhlIGNvbnZlbnRpb25zIGVzdGFibGlzaGVkCisgKiBieSA8Y29kZT5qYXZhLmxhbmcuTnVtYmVyPC9jb2RlPiwgPGNvZGU+amF2YS5tYXRoLkJpZ0ludGVnZXI8L2NvZGU+LAorICogYW5kIDxjb2RlPmphdmEubWF0aC5CaWdEZWNpbWFsPC9jb2RlPiBpbiBKYXZhIDEuMSBhbmQgSmF2YSAxLjIuCisgKgorICogQHNlZSAgICAgTWF0aENvbnRleHQKKyAqIEBhdXRob3IgIE1pa2UgQ293bGlzaGF3CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworCitwdWJsaWMgY2xhc3MgQmlnRGVjaW1hbCBleHRlbmRzIGphdmEubGFuZy5OdW1iZXIgaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSxqYXZhLmxhbmcuQ29tcGFyYWJsZXsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nICQwPSJCaWdEZWNpbWFsLm5yeCI7CisgCisgCisgCisgLyogLS0tLS0gQ29uc3RhbnRzIC0tLS0tICovCisgLyogcHJvcGVydGllcyBjb25zdGFudCBwdWJsaWMgKi8gLy8gdXNlZnVsIHRvIG90aGVycworIC8qKgorICAqIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBjb25zdGFudCAiMCIuCisgICoKKyAgKiBAc2VlICNPTkUKKyAgKiBAc2VlICNURU4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBaRVJPPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGxvbmcpMCk7IC8vIHVzZSBsb25nIGFzIHdlIHdhbnQgdGhlIGludCBjb25zdHJ1Y3RvcgorIC8vIC4uIHRvIGJlIGFibGUgdG8gdXNlIHRoaXMsIGZvciBzcGVlZAorIAorIC8qKgorICAqIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBjb25zdGFudCAiMSIuCisgICoKKyAgKiBAc2VlICNURU4KKyAgKiBAc2VlICNaRVJPCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgT05FPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKGxvbmcpMSk7IC8vIHVzZSBsb25nIGFzIHdlIHdhbnQgdGhlIGludCBjb25zdHJ1Y3RvcgorIC8vIC4uIHRvIGJlIGFibGUgdG8gdXNlIHRoaXMsIGZvciBzcGVlZAorIAorIC8qKgorICAqIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBjb25zdGFudCAiMTAiLgorICAqCisgICogQHNlZSAjT05FCisgICogQHNlZSAjWkVSTworICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIFRFTj1uZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKDEwKTsKKyAKKyAvLyB0aGUgcm91bmRpbmcgbW9kZXMgKGNvcGllZCBoZXJlIGZvciB1cHdhcmRzIGNvbXBhdGliaWxpdHkpCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0byBhIG1vcmUgcG9zaXRpdmUgbnVtYmVyLgorICAqIEBzZWUgTWF0aENvbnRleHQjUk9VTkRfQ0VJTElORworICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0NFSUxJTkc9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9DRUlMSU5HOworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgdG93YXJkcyB6ZXJvLgorICAqIEBzZWUgTWF0aENvbnRleHQjUk9VTkRfRE9XTgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX0RPV049Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9ET1dOOworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgdG8gYSBtb3JlIG5lZ2F0aXZlIG51bWJlci4KKyAgKiBAc2VlIE1hdGhDb250ZXh0I1JPVU5EX0ZMT09SCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfRkxPT1I9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9GTE9PUjsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvIG5lYXJlc3QgbmVpZ2hib3IsIHdoZXJlIGFuIGVxdWlkaXN0YW50CisgICogdmFsdWUgaXMgcm91bmRlZCBkb3duLgorICAqIEBzZWUgTWF0aENvbnRleHQjUk9VTkRfSEFMRl9ET1dOCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfSEFMRl9ET1dOPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfSEFMRl9ET1dOOworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgdG8gbmVhcmVzdCBuZWlnaGJvciwgd2hlcmUgYW4gZXF1aWRpc3RhbnQKKyAgKiB2YWx1ZSBpcyByb3VuZGVkIHRvIHRoZSBuZWFyZXN0IGV2ZW4gbmVpZ2hib3IuCisgICogQHNlZSBNYXRoQ29udGV4dCNST1VORF9IQUxGX0VWRU4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9IQUxGX0VWRU49Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9IQUxGX0VWRU47CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0byBuZWFyZXN0IG5laWdoYm9yLCB3aGVyZSBhbiBlcXVpZGlzdGFudAorICAqIHZhbHVlIGlzIHJvdW5kZWQgdXAuCisgICogQHNlZSBNYXRoQ29udGV4dCNST1VORF9IQUxGX1VQCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfSEFMRl9VUD1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlJPVU5EX0hBTEZfVVA7CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byBhc3NlcnQgdGhhdCBubyByb3VuZGluZyBpcyBuZWNlc3NhcnkuCisgICogQHNlZSBNYXRoQ29udGV4dCNST1VORF9VTk5FQ0VTU0FSWQorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX1VOTkVDRVNTQVJZPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlk7CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCBhd2F5IGZyb20gemVyby4KKyAgKiBAc2VlIE1hdGhDb250ZXh0I1JPVU5EX1VQCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfVVA9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5ST1VORF9VUDsKKyAKKyAvKiBwcm9wZXJ0aWVzIGNvbnN0YW50IHByaXZhdGUgKi8gLy8gbG9jYWxzCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBpc3Bvcz0xOyAvLyBpbmQ6IGluZGljYXRlcyBwb3NpdGl2ZSAobXVzdCBiZSAxKQorIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgaXN6ZXJvPTA7IC8vIGluZDogaW5kaWNhdGVzIHplcm8gICAgIChtdXN0IGJlIDApCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBpc25lZz0tMTsgLy8gaW5kOiBpbmRpY2F0ZXMgbmVnYXRpdmUgKG11c3QgYmUgLTEpCisgLy8gW2xhdGVyIGNvdWxkIGFkZCBOYU4sICsvLSBpbmZpbml0eSwgaGVyZV0KKyAKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTWluRXhwPS05OTk5OTk5OTk7IC8vIG1pbmltdW0gZXhwb25lbnQgYWxsb3dlZAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNYXhFeHA9OTk5OTk5OTk5OyAvLyBtYXhpbXVtIGV4cG9uZW50IGFsbG93ZWQKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTWluQXJnPS05OTk5OTk5OTk7IC8vIG1pbmltdW0gYXJndW1lbnQgaW50ZWdlcgorIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNYXhBcmc9OTk5OTk5OTk5OyAvLyBtYXhpbXVtIGFyZ3VtZW50IGludGVnZXIKKyAKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHBsYWluTUM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQoMCxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKTsgLy8gY29udGV4dCBmb3IgcGxhaW4gdW5saW1pdGVkIG1hdGgKKyAKKyAvKiBwcm9wZXJ0aWVzIGNvbnN0YW50IHByaXZhdGUgdW51c2VkICovIC8vIHByZXNlbnQgYnV0IG5vdCByZWZlcmVuY2VkCisgCisgLy8gU2VyaWFsaXphdGlvbiB2ZXJzaW9uCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEPTgyNDUzNTU4MDQ5NzQxOTg4MzJMOworIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgY29weXJpZ2h0PSIgQ29weXJpZ2h0IChjKSBJQk0gQ29ycG9yYXRpb24gMTk5NiwgMjAwMC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuICI7CisgCisgLyogcHJvcGVydGllcyBzdGF0aWMgcHJpdmF0ZSAqLworIC8vIFByZWNhbGN1bGF0ZWQgY29uc3RhbnQgYXJyYXlzICh1c2VkIGJ5IGJ5dGVhZGRzdWIpCisgcHJpdmF0ZSBzdGF0aWMgYnl0ZSBieXRlY2FyW109bmV3IGJ5dGVbKDkwKzk5KSsxXTsgLy8gY2FycnkvYm9ycm93IGFycmF5CisgcHJpdmF0ZSBzdGF0aWMgYnl0ZSBieXRlZGlnW109ZGlnaW5pdCgpOyAvLyBuZXh0IGRpZ2l0IGFycmF5CisgCisgLyogLS0tLS0gSW5zdGFuY2UgcHJvcGVydGllcyBbYWxsIHByaXZhdGUgYW5kIGltbXV0YWJsZV0gLS0tLS0gKi8KKyAvKiBwcm9wZXJ0aWVzIHByaXZhdGUgKi8KKyAKKyAvKioKKyAgKiBUaGUgaW5kaWNhdG9yLiBUaGlzIG1heSB0YWtlIHRoZSB2YWx1ZXM6CisgICogPHVsPgorICAqIDxsaT5pc3BvcyAgLS0gdGhlIG51bWJlciBpcyBwb3NpdGl2ZQorICAqIDxsaT5pc3plcm8gLS0gdGhlIG51bWJlciBpcyB6ZXJvCisgICogPGxpPmlzbmVnICAtLSB0aGUgbnVtYmVyIGlzIG5lZ2F0aXZlCisgICogPC91bD4KKyAgKgorICAqIEBzZXJpYWwKKyAgKi8KKyBwcml2YXRlIGJ5dGUgaW5kOyAvLyBhc3N1bWVkIHVuZGVmaW5lZAorIC8vIE5vdGU6IHNvbWUgY29kZSBiZWxvdyBhc3N1bWVzIElORCA9IFNpZ24gWy0xLCAwLCAxXSwgYXQgcHJlc2VudC4KKyAvLyBXZSBvbmx5IG5lZWQgdHdvIGJpdHMgZm9yIHRoaXMsIGJ1dCB1c2UgYSBieXRlIFthbHNvIHBlcm1pdHMKKyAvLyBzbW9vdGggZnV0dXJlIGV4dGVuc2lvbl0uCisgCisgLyoqCisgICogVGhlIGZvcm1hdHRpbmcgc3R5bGUuIFRoaXMgbWF5IHRha2UgdGhlIHZhbHVlczoKKyAgKiA8dWw+CisgICogPGxpPk1hdGhDb250ZXh0LlBMQUlOICAgICAgICAtLSBubyBleHBvbmVudCBuZWVkZWQKKyAgKiA8bGk+TWF0aENvbnRleHQuU0NJRU5USUZJQyAgIC0tIHNjaWVudGlmaWMgbm90YXRpb24gcmVxdWlyZWQKKyAgKiA8bGk+TWF0aENvbnRleHQuRU5HSU5FRVJJTkcgIC0tIGVuZ2luZWVyaW5nIG5vdGF0aW9uIHJlcXVpcmVkCisgICogPC91bD4KKyAgKiA8cD4KKyAgKiBUaGlzIHByb3BlcnR5IGlzIGFuIG9wdGltaXphdGlvbjsgaXQgYWxsb3dzIHVzIHRvIGRlZmVyIG51bWJlcgorICAqIGxheW91dCB1bnRpbCBpdCBpcyBhY3R1YWxseSBuZWVkZWQgYXMgYSBzdHJpbmcsIGhlbmNlIGF2b2lkaW5nCisgICogdW5uZWNlc3NhcnkgZm9ybWF0dGluZy4KKyAgKgorICAqIEBzZXJpYWwKKyAgKi8KKyBwcml2YXRlIGJ5dGUgZm9ybT0oYnl0ZSljb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOOyAvLyBhc3N1bWVkIFBMQUlOCisgLy8gV2Ugb25seSBuZWVkIHR3byBiaXRzIGZvciB0aGlzLCBhdCBwcmVzZW50LCBidXQgdXNlIGEgYnl0ZQorIC8vIFthZ2FpbiwgdG8gYWxsb3cgZm9yIHNtb290aCBmdXR1cmUgZXh0ZW5zaW9uXQorIAorIC8qKgorICAqIFRoZSB2YWx1ZSBvZiB0aGUgbWFudGlzc2EuCisgICogPHA+CisgICogT25jZSBjb25zdHJ1Y3RlZCwgdGhpcyBtYXkgYmVjb21lIHNoYXJlZCBiZXR3ZWVuIHNldmVyYWwgQmlnRGVjaW1hbAorICAqIG9iamVjdHMsIHNvIG11c3Qgbm90IGJlIGFsdGVyZWQuCisgICogPHA+CisgICogRm9yIGVmZmljaWVuY3kgKHNwZWVkKSwgdGhpcyBpcyBhIGJ5dGUgYXJyYXksIHdpdGggZWFjaCBieXRlCisgICogdGFraW5nIGEgdmFsdWUgb2YgMCAtPiA5LgorICAqIDxwPgorICAqIElmIHRoZSBmaXJzdCBieXRlIGlzIDAgdGhlbiB0aGUgdmFsdWUgb2YgdGhlIG51bWJlciBpcyB6ZXJvIChhbmQKKyAgKiBtYW50Lmxlbmd0aD0xLCBleGNlcHQgd2hlbiBjb25zdHJ1Y3RlZCBmcm9tIGEgcGxhaW4gbnVtYmVyLCBmb3IKKyAgKiBleGFtcGxlLCAwLjAwMCkuCisgICoKKyAgKiBAc2VyaWFsCisgICovCisgcHJpdmF0ZSBieXRlIG1hbnRbXTsgLy8gYXNzdW1lZCBudWxsCisgCisgLyoqCisgICogVGhlIGV4cG9uZW50LgorICAqIDxwPgorICAqIEZvciBmaXhlZCBwb2ludCBhcml0aG1ldGljLCBzY2FsZSBpcyA8Y29kZT4tZXhwPC9jb2RlPiwgYW5kIGNhbgorICAqIGFwcGx5IHRvIHplcm8uCisgICoKKyAgKiBOb3RlIHRoYXQgdGhpcyBwcm9wZXJ0eSBjYW4gaGF2ZSBhIHZhbHVlIGxlc3MgdGhhbiBNaW5FeHAgd2hlbgorICAqIHRoZSBtYW50aXNzYSBoYXMgbW9yZSB0aGFuIG9uZSBkaWdpdC4KKyAgKgorICAqIEBzZXJpYWwKKyAgKi8KKyBwcml2YXRlIGludCBleHA7CisgLy8gYXNzdW1lZCAwCisgCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIENvbnN0cnVjdG9ycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisvLyNpZm5kZWYgRk9VTkRBVElPTgorIC8qKgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QgZnJvbSBhCisgICogPGNvZGU+amF2YS5tYXRoLkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIDxwPgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBhcyB0aG91Z2ggdGhlIHBhcmFtZXRlciBoYWQKKyAgKiBiZWVuIHJlcHJlc2VudGVkIGFzIGEgPGNvZGU+U3RyaW5nPC9jb2RlPiAodXNpbmcgaXRzCisgICogPGNvZGU+dG9TdHJpbmc8L2NvZGU+IG1ldGhvZCkgYW5kIHRoZQorICAqIHtAbGluayAjQmlnRGVjaW1hbChqYXZhLmxhbmcuU3RyaW5nKX0gY29uc3RydWN0b3IgaGFkIHRoZW4gYmVlbgorICAqIHVzZWQuCisgICogVGhlIHBhcmFtZXRlciBtdXN0IG5vdCBiZSA8Y29kZT5udWxsPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiA8aT4oTm90ZTogdGhpcyBjb25zdHJ1Y3RvciBpcyBwcm92aWRlZCBvbmx5IGluIHRoZQorICAqIDxjb2RlPmNvbS5pYm0uaWN1Lm1hdGg8L2NvZGU+IHZlcnNpb24gb2YgdGhlIEJpZ0RlY2ltYWwgY2xhc3MuCisgICogSXQgd291bGQgbm90IGJlIHByZXNlbnQgaW4gYSA8Y29kZT5qYXZhLm1hdGg8L2NvZGU+IHZlcnNpb24uKTwvaT4KKyAgKgorICAqIEBwYXJhbSBiZCBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYmUgdHJhbnNsYXRlZC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgQmlnRGVjaW1hbChqYXZhLm1hdGguQmlnRGVjaW1hbCBiZCl7CisgIHRoaXMoYmQudG9TdHJpbmcoKSk7CisgIHJldHVybjt9CisvLyNlbmRpZgorCisgLyoqCisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBmcm9tIGEKKyAgKiA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiwgd2l0aCBzY2FsZSAwLgorICAqIDxwPgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aGljaCBpcyB0aGUgZXhhY3QgZGVjaW1hbAorICAqIHJlcHJlc2VudGF0aW9uIG9mIHRoZSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiwgd2l0aCBhIHNjYWxlIG9mCisgICogemVyby4KKyAgKiBUaGUgdmFsdWUgb2YgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIGlkZW50aWNhbCB0byB0aGUgdmFsdWUKKyAgKiBvZiB0aGUgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4uCisgICogVGhlIHBhcmFtZXRlciBtdXN0IG5vdCBiZSA8Y29kZT5udWxsPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2lsbCBjb250YWluIG9ubHkgZGVjaW1hbCBkaWdpdHMsCisgICogcHJlZml4ZWQgd2l0aCBhIGxlYWRpbmcgbWludXMgc2lnbiAoaHlwaGVuKSBpZiB0aGUKKyAgKiA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiBpcyBuZWdhdGl2ZS4gIEEgbGVhZGluZyB6ZXJvIHdpbGwgYmUKKyAgKiBwcmVzZW50IG9ubHkgaWYgdGhlIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IGlzIHplcm8uCisgICoKKyAgKiBAcGFyYW0gYmkgVGhlIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IHRvIGJlIGNvbnZlcnRlZC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgQmlnRGVjaW1hbChqYXZhLm1hdGguQmlnSW50ZWdlciBiaSl7CisgIHRoaXMoYmkudG9TdHJpbmcoMTApKTsKKyAgcmV0dXJuO30KKyAvLyBleHAgcmVtYWlucyAwCisgCisgLyoqCisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBmcm9tIGEKKyAgKiA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiBhbmQgYSBzY2FsZS4KKyAgKiA8cD4KKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hpY2ggaXMgdGhlIGV4YWN0IGRlY2ltYWwKKyAgKiByZXByZXNlbnRhdGlvbiBvZiB0aGUgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4sIHNjYWxlZCBieSB0aGUKKyAgKiBzZWNvbmQgcGFyYW1ldGVyLCB3aGljaCBtYXkgbm90IGJlIG5lZ2F0aXZlLgorICAqIFRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgdGhlCisgICogPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gZGl2aWRlZCBieSB0ZW4gdG8gdGhlIHBvd2VyIG9mIHRoZSBzY2FsZS4KKyAgKiBUaGUgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4gcGFyYW1ldGVyIG11c3Qgbm90IGJlCisgICogPGNvZGU+bnVsbDwvY29kZT4uCisgICogPHA+CisgICogVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpbGwgY29udGFpbiBvbmx5IGRlY2ltYWwgZGlnaXRzLCAod2l0aAorICAqIGFuIGVtYmVkZGVkIGRlY2ltYWwgcG9pbnQgZm9sbG93ZWQgYnkgPGNvZGU+c2NhbGU8L2NvZGU+IGRlY2ltYWwKKyAgKiBkaWdpdHMgaWYgdGhlIHNjYWxlIGlzIHBvc2l0aXZlKSwgcHJlZml4ZWQgd2l0aCBhIGxlYWRpbmcgbWludXMKKyAgKiBzaWduIChoeXBoZW4pIGlmIHRoZSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiBpcyBuZWdhdGl2ZS4gIEEKKyAgKiBsZWFkaW5nIHplcm8gd2lsbCBiZSBwcmVzZW50IG9ubHkgaWYgdGhlIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IGlzCisgICogemVyby4KKyAgKgorICAqIEBwYXJhbSAgYmkgICAgVGhlIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IHRvIGJlIGNvbnZlcnRlZC4KKyAgKiBAcGFyYW0gIHNjYWxlIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIHNjYWxlLgorICAqIEB0aHJvd3MgTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGlmIHRoZSBzY2FsZSBpcyBuZWdhdGl2ZS4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgQmlnRGVjaW1hbChqYXZhLm1hdGguQmlnSW50ZWdlciBiaSxpbnQgc2NhbGUpeworICB0aGlzKGJpLnRvU3RyaW5nKDEwKSk7CisgIGlmIChzY2FsZTwwKSAKKyAgIHRocm93IG5ldyBqYXZhLmxhbmcuTnVtYmVyRm9ybWF0RXhjZXB0aW9uKCJOZWdhdGl2ZSBzY2FsZToiKyIgIitzY2FsZSk7CisgIGV4cD0oaW50KS1zY2FsZTsgLy8gZXhwb25lbnQgaXMgLXNjYWxlCisgIHJldHVybjt9CisKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGZyb20gYW4gYXJyYXkgb2YgY2hhcmFjdGVycy4KKyAgKiA8cD4KKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gYXMgdGhvdWdoIGEKKyAgKiA8Y29kZT5TdHJpbmc8L2NvZGU+IGhhZCBiZWVuIGNvbnN0cnVjdGVkIGZyb20gdGhlIGNoYXJhY3RlciBhcnJheQorICAqIGFuZCB0aGUge0BsaW5rICNCaWdEZWNpbWFsKGphdmEubGFuZy5TdHJpbmcpfSBjb25zdHJ1Y3RvciBoYWQgdGhlbgorICAqIGJlZW4gdXNlZC4gVGhlIHBhcmFtZXRlciBtdXN0IG5vdCBiZSA8Y29kZT5udWxsPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBVc2luZyB0aGlzIGNvbnN0cnVjdG9yIGlzIGZhc3RlciB0aGFuIHVzaW5nIHRoZQorICAqIDxjb2RlPkJpZ0RlY2ltYWwoU3RyaW5nKTwvY29kZT4gY29uc3RydWN0b3IgaWYgdGhlIHN0cmluZyBpcworICAqIGFscmVhZHkgYXZhaWxhYmxlIGluIGNoYXJhY3RlciBhcnJheSBmb3JtLgorICAqCisgICogQHBhcmFtIGluY2hhcnMgVGhlIDxjb2RlPmNoYXJbXTwvY29kZT4gYXJyYXkgY29udGFpbmluZyB0aGUgbnVtYmVyCisgICogICAgICAgICAgICAgICAgdG8gYmUgY29udmVydGVkLgorICAqIEB0aHJvd3MgTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGlmIHRoZSBwYXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQKKyAgKiAgICAgICAgICAgICAgICBudW1iZXIuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIEJpZ0RlY2ltYWwoY2hhciBpbmNoYXJzW10peworICB0aGlzKGluY2hhcnMsMCxpbmNoYXJzLmxlbmd0aCk7CisgIHJldHVybjt9CisKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0IGZyb20gYW4gYXJyYXkgb2YgY2hhcmFjdGVycy4KKyAgKiA8cD4KKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gYXMgdGhvdWdoIGEKKyAgKiA8Y29kZT5TdHJpbmc8L2NvZGU+IGhhZCBiZWVuIGNvbnN0cnVjdGVkIGZyb20gdGhlIGNoYXJhY3RlciBhcnJheQorICAqIChvciBhIHN1YmFycmF5IG9mIHRoYXQgYXJyYXkpIGFuZCB0aGUKKyAgKiB7QGxpbmsgI0JpZ0RlY2ltYWwoamF2YS5sYW5nLlN0cmluZyl9IGNvbnN0cnVjdG9yIGhhZCB0aGVuIGJlZW4KKyAgKiB1c2VkLiBUaGUgZmlyc3QgcGFyYW1ldGVyIG11c3Qgbm90IGJlIDxjb2RlPm51bGw8L2NvZGU+LCBhbmQgdGhlCisgICogc3ViYXJyYXkgbXVzdCBiZSB3aG9sbHkgY29udGFpbmVkIHdpdGhpbiBpdC4KKyAgKiA8cD4KKyAgKiBVc2luZyB0aGlzIGNvbnN0cnVjdG9yIGlzIGZhc3RlciB0aGFuIHVzaW5nIHRoZQorICAqIDxjb2RlPkJpZ0RlY2ltYWwoU3RyaW5nKTwvY29kZT4gY29uc3RydWN0b3IgaWYgdGhlIHN0cmluZyBpcworICAqIGFscmVhZHkgYXZhaWxhYmxlIHdpdGhpbiBhIGNoYXJhY3RlciBhcnJheS4KKyAgKgorICAqIEBwYXJhbSBpbmNoYXJzIFRoZSA8Y29kZT5jaGFyW108L2NvZGU+IGFycmF5IGNvbnRhaW5pbmcgdGhlIG51bWJlcgorICAqICAgICAgICAgICAgICAgIHRvIGJlIGNvbnZlcnRlZC4KKyAgKiBAcGFyYW0gb2Zmc2V0ICBUaGUgPGNvZGU+aW50PC9jb2RlPiBvZmZzZXQgaW50byB0aGUgYXJyYXkgb2YgdGhlCisgICogICAgICAgICAgICAgICAgc3RhcnQgb2YgdGhlIG51bWJlciB0byBiZSBjb252ZXJ0ZWQuCisgICogQHBhcmFtIGxlbmd0aCAgVGhlIDxjb2RlPmludDwvY29kZT4gbGVuZ3RoIG9mIHRoZSBudW1iZXIuCisgICogQHRocm93cyBOdW1iZXJGb3JtYXRFeGNlcHRpb24gaWYgdGhlIHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZAorICAqICAgICAgICAgICAgICAgIG51bWJlciBmb3IgYW55IHJlYXNvbi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgQmlnRGVjaW1hbChjaGFyIGluY2hhcnNbXSxpbnQgb2Zmc2V0LGludCBsZW5ndGgpe3N1cGVyKCk7CisgIGJvb2xlYW4gZXhvdGljOworICBib29sZWFuIGhhZGV4cDsKKyAgaW50IGQ7CisgIGludCBkb3RvZmY7CisgIGludCBsYXN0OworICBpbnQgaT0wOworICBjaGFyIHNpPTA7CisgIGJvb2xlYW4gZW5lZz1mYWxzZTsKKyAgaW50IGs9MDsKKyAgaW50IGVsZW49MDsKKyAgaW50IGo9MDsKKyAgY2hhciBzaj0wOworICBpbnQgZHZhbHVlPTA7CisgIGludCBtYWc9MDsKKyAgLy8gVGhpcyBpcyB0aGUgcHJpbWFyeSBjb25zdHJ1Y3RvcjsgYWxsIGluY29taW5nIHN0cmluZ3MgZW5kIHVwCisgIC8vIGhlcmU7IGl0IHVzZXMgZXhwbGljaXQgKGlubGluZSkgcGFyc2luZyBmb3Igc3BlZWQgYW5kIHRvIGF2b2lkCisgIC8vIGdlbmVyYXRpbmcgaW50ZXJtZWRpYXRlICh0ZW1wb3JhcnkpIG9iamVjdHMgb2YgYW55IGtpbmQuCisgIC8vIDE5OTguMDYuMjU6IGV4cG9uZW50IGZvcm0gYnVpbHQgb25seSBpZiBFL2UgaW4gc3RyaW5nCisgIC8vIDE5OTguMDYuMjU6IHRyYWlsaW5nIHplcm9zIG5vdCByZW1vdmVkIGZvciB6ZXJvCisgIC8vIDE5OTkuMDMuMDY6IG5vIGVtYmVkZGVkIGJsYW5rczsgYWxsb3cgb2Zmc2V0IGFuZCBsZW5ndGgKKyAgaWYgKGxlbmd0aDw9MCkgCisgICBiYWQoaW5jaGFycyk7IC8vIGJhZCBjb252ZXJzaW9uIChlbXB0eSBzdHJpbmcpCisgIC8vIFtiYWQgb2Zmc2V0IHdpbGwgcmFpc2UgYXJyYXkgYm91bmRzIGV4Y2VwdGlvbl0KKyAgCisgIC8qIEhhbmRsZSBhbmQgc3RlcCBwYXN0IHNpZ24gKi8KKyAgaW5kPWlzcG9zOyAvLyBhc3N1bWUgcG9zaXRpdmUKKyAgaWYgKGluY2hhcnNbb2Zmc2V0XT09KCctJykpIAorICAgeworICAgIGxlbmd0aC0tOworICAgIGlmIChsZW5ndGg9PTApIAorICAgICBiYWQoaW5jaGFycyk7IC8vIG5vdGhpbmcgYWZ0ZXIgc2lnbgorICAgIGluZD1pc25lZzsKKyAgICBvZmZzZXQrKzsKKyAgIH0KKyAgZWxzZSAKKyAgIGlmIChpbmNoYXJzW29mZnNldF09PSgnKycpKSAKKyAgICB7CisgICAgIGxlbmd0aC0tOworICAgICBpZiAobGVuZ3RoPT0wKSAKKyAgICAgIGJhZChpbmNoYXJzKTsgLy8gbm90aGluZyBhZnRlciBzaWduCisgICAgIG9mZnNldCsrOworICAgIH0KKyAgCisgIC8qIFdlJ3JlIGF0IHRoZSBzdGFydCBvZiB0aGUgbnVtYmVyICovCisgIGV4b3RpYz1mYWxzZTsgLy8gaGF2ZSBleHRyYSBkaWdpdHMKKyAgaGFkZXhwPWZhbHNlOyAvLyBoYWQgZXhwbGljaXQgZXhwb25lbnQKKyAgZD0wOyAvLyBjb3VudCBvZiBkaWdpdHMgZm91bmQKKyAgZG90b2ZmPS0xOyAvLyBvZmZzZXQgd2hlcmUgZG90IHdhcyBmb3VuZAorICBsYXN0PS0xOyAvLyBsYXN0IGNoYXJhY3RlciBvZiBtYW50aXNzYQorICB7aW50ICQxPWxlbmd0aDtpPW9mZnNldDtpOmZvcig7JDE+MDskMS0tLGkrKyl7CisgICBzaT1pbmNoYXJzW2ldOworICAgaWYgKHNpPj0nMCcpICAvLyB0ZXN0IGZvciBBcmFiaWMgZGlnaXQKKyAgICBpZiAoc2k8PSc5JykgCisgICAgIHsKKyAgICAgIGxhc3Q9aTsKKyAgICAgIGQrKzsgLy8gc3RpbGwgaW4gbWFudGlzc2EKKyAgICAgIGNvbnRpbnVlIGk7CisgICAgIH0KKyAgIGlmIChzaT09Jy4nKSAKKyAgICB7IC8vIHJlY29yZCBhbmQgaWdub3JlCisgICAgIGlmIChkb3RvZmY+PTApIAorICAgICAgYmFkKGluY2hhcnMpOyAvLyB0d28gZG90cworICAgICBkb3RvZmY9aS1vZmZzZXQ7IC8vIG9mZnNldCBpbnRvIG1hbnRpc3NhCisgICAgIGNvbnRpbnVlIGk7CisgICAgfQorICAgaWYgKHNpIT0nZScpIAorICAgIGlmIChzaSE9J0UnKSAKKyAgICAgeyAvLyBleHBlY3QgYW4gZXh0cmEgZGlnaXQKKyAgICAgIGlmICgoIShqYXZhLmxhbmcuQ2hhcmFjdGVyLmlzRGlnaXQoc2kpKSkpIAorICAgICAgIGJhZChpbmNoYXJzKTsgLy8gbm90IGEgbnVtYmVyCisgICAgICAvLyBkZWZlciB0aGUgYmFzZSAxMCBjaGVjayB1bnRpbCBsYXRlciB0byBhdm9pZCBleHRyYSBtZXRob2QgY2FsbAorICAgICAgZXhvdGljPXRydWU7IC8vIHdpbGwgbmVlZCBjb252ZXJzaW9uIGxhdGVyCisgICAgICBsYXN0PWk7CisgICAgICBkKys7IC8vIHN0aWxsIGluIG1hbnRpc3NhCisgICAgICBjb250aW51ZSBpOworICAgICB9CisgICAvKiBGb3VuZCAnZScgb3IgJ0UnIC0tIG5vdyBwcm9jZXNzIGV4cGxpY2l0IGV4cG9uZW50ICovCisgICAvLyAxOTk4LjA3LjExOiBzaWduIG5vIGxvbmdlciByZXF1aXJlZAorICAgaWYgKChpLW9mZnNldCk+KGxlbmd0aC0yKSkgCisgICAgYmFkKGluY2hhcnMpOyAvLyBubyByb29tIGZvciBldmVuIG9uZSBkaWdpdAorICAgZW5lZz1mYWxzZTsKKyAgIGlmICgoaW5jaGFyc1tpKzFdKT09KCctJykpIAorICAgIHsKKyAgICAgZW5lZz10cnVlOworICAgICBrPWkrMjsKKyAgICB9CisgICBlbHNlIAorICAgIGlmICgoaW5jaGFyc1tpKzFdKT09KCcrJykpIAorICAgICBrPWkrMjsKKyAgICBlbHNlIAorICAgICBrPWkrMTsKKyAgIC8vIGsgaXMgb2Zmc2V0IG9mIGZpcnN0IGV4cGVjdGVkIGRpZ2l0CisgICBlbGVuPWxlbmd0aC0oKGstb2Zmc2V0KSk7IC8vIHBvc3NpYmxlIG51bWJlciBvZiBkaWdpdHMKKyAgIGlmICgoZWxlbj09MCl8KGVsZW4+OSkpIAorICAgIGJhZChpbmNoYXJzKTsgLy8gMCBvciBtb3JlIHRoYW4gOSBkaWdpdHMKKyAgIHtpbnQgJDI9ZWxlbjtqPWs7ajpmb3IoOyQyPjA7JDItLSxqKyspeworICAgIHNqPWluY2hhcnNbal07CisgICAgaWYgKHNqPCcwJykgCisgICAgIGJhZChpbmNoYXJzKTsgLy8gYWx3YXlzIGJhZAorICAgIGlmIChzaj4nOScpIAorICAgICB7IC8vIG1heWJlIGFuIGV4b3RpYyBkaWdpdAorICAgICAgaWYgKCghKGphdmEubGFuZy5DaGFyYWN0ZXIuaXNEaWdpdChzaikpKSkgCisgICAgICAgYmFkKGluY2hhcnMpOyAvLyBub3QgYSBudW1iZXIKKyAgICAgIGR2YWx1ZT1qYXZhLmxhbmcuQ2hhcmFjdGVyLmRpZ2l0KHNqLDEwKTsgLy8gY2hlY2sgYmFzZQorICAgICAgaWYgKGR2YWx1ZTwwKSAKKyAgICAgICBiYWQoaW5jaGFycyk7IC8vIG5vdCBiYXNlIDEwCisgICAgIH0KKyAgICBlbHNlIAorICAgICBkdmFsdWU9KChpbnQpKHNqKSktKChpbnQpKCcwJykpOworICAgIGV4cD0oZXhwKjEwKStkdmFsdWU7CisgICAgfQorICAgfS8qaiovCisgICBpZiAoZW5lZykgCisgICAgZXhwPShpbnQpLWV4cDsgLy8gd2FzIG5lZ2F0aXZlCisgICBoYWRleHA9dHJ1ZTsgLy8gcmVtZW1iZXIgd2UgaGFkIG9uZQorICAgYnJlYWsgaTsgLy8gd2UgYXJlIGRvbmUKKyAgIH0KKyAgfS8qaSovCisgIAorICAvKiBIZXJlIHdoZW4gYWxsIGluc3BlY3RlZCAqLworICBpZiAoZD09MCkgCisgICBiYWQoaW5jaGFycyk7IC8vIG5vIG1hbnRpc3NhIGRpZ2l0cworICBpZiAoZG90b2ZmPj0wKSAKKyAgIGV4cD0oZXhwK2RvdG9mZiktZDsgLy8gYWRqdXN0IGV4cG9uZW50IGlmIGhhZCBkb3QKKyAgCisgIC8qIHN0cmlwIGxlYWRpbmcgemVyb3MvZG90IChsZWF2ZSBmaW5hbCBpZiBhbGwgMCdzKSAqLworICB7aW50ICQzPWxhc3QtMTtpPW9mZnNldDtpOmZvcig7aTw9JDM7aSsrKXsKKyAgIHNpPWluY2hhcnNbaV07CisgICBpZiAoc2k9PScwJykgCisgICAgeworICAgICBvZmZzZXQrKzsKKyAgICAgZG90b2ZmLS07CisgICAgIGQtLTsKKyAgICB9CisgICBlbHNlIAorICAgIGlmIChzaT09Jy4nKSAKKyAgICAgeworICAgICAgb2Zmc2V0Kys7IC8vIHN0ZXAgcGFzdCBkb3QKKyAgICAgIGRvdG9mZi0tOworICAgICB9CisgICAgZWxzZSAKKyAgICAgaWYgKHNpPD0nOScpIAorICAgICAgYnJlYWsgaTsvKiBub24tMCAqLworICAgICBlbHNlIAorICAgICAgey8qIGV4b3RpYyAqLworICAgICAgIGlmICgoamF2YS5sYW5nLkNoYXJhY3Rlci5kaWdpdChzaSwxMCkpIT0wKSAKKyAgICAgICAgYnJlYWsgaTsgLy8gbm9uLTAgb3IgYmFkCisgICAgICAgLy8gaXMgMCAuLiBzdHJpcCBsaWtlICcwJworICAgICAgIG9mZnNldCsrOworICAgICAgIGRvdG9mZi0tOworICAgICAgIGQtLTsKKyAgICAgIH0KKyAgIH0KKyAgfS8qaSovCisgIAorICAvKiBDcmVhdGUgdGhlIG1hbnRpc3NhIGFycmF5ICovCisgIG1hbnQ9bmV3IGJ5dGVbZF07IC8vIHdlIGtub3cgdGhlIGxlbmd0aAorICBqPW9mZnNldDsgLy8gaW5wdXQgb2Zmc2V0CisgIGlmIChleG90aWMpIAorICAge2V4b3RpY2E6ZG97IC8vIHNsb3c6IGNoZWNrIGZvciBleG90aWNhCisgICAge2ludCAkND1kO2k9MDtpOmZvcig7JDQ+MDskNC0tLGkrKyl7CisgICAgIGlmIChpPT1kb3RvZmYpIAorICAgICAgaisrOyAvLyBhdCBkb3QKKyAgICAgc2o9aW5jaGFyc1tqXTsKKyAgICAgaWYgKHNqPD0nOScpIAorICAgICAgbWFudFtpXT0oYnl0ZSkoKChpbnQpKHNqKSktKChpbnQpKCcwJykpKTsvKiBlYXN5ICovCisgICAgIGVsc2UgCisgICAgICB7CisgICAgICAgZHZhbHVlPWphdmEubGFuZy5DaGFyYWN0ZXIuZGlnaXQoc2osMTApOworICAgICAgIGlmIChkdmFsdWU8MCkgCisgICAgICAgIGJhZChpbmNoYXJzKTsgLy8gbm90IGEgbnVtYmVyIGFmdGVyIGFsbAorICAgICAgIG1hbnRbaV09KGJ5dGUpZHZhbHVlOworICAgICAgfQorICAgICBqKys7CisgICAgIH0KKyAgICB9LyppKi8KKyAgIH13aGlsZShmYWxzZSk7fS8qZXhvdGljYSovCisgIGVsc2UgCisgICB7c2ltcGxlOmRveworICAgIHtpbnQgJDU9ZDtpPTA7aTpmb3IoOyQ1PjA7JDUtLSxpKyspeworICAgICBpZiAoaT09ZG90b2ZmKSAKKyAgICAgIGorKzsKKyAgICAgbWFudFtpXT0oYnl0ZSkoKChpbnQpKGluY2hhcnNbal0pKS0oKGludCkoJzAnKSkpOworICAgICBqKys7CisgICAgIH0KKyAgICB9LyppKi8KKyAgIH13aGlsZShmYWxzZSk7fS8qc2ltcGxlKi8KKyAgCisgIC8qIExvb2tzIGdvb2QuICBTZXQgdGhlIHNpZ24gaW5kaWNhdG9yIGFuZCBmb3JtLCBhcyBuZWVkZWQuICovCisgIC8vIFRyYWlsaW5nIHplcm9zIGFyZSBwcmVzZXJ2ZWQKKyAgLy8gVGhlIHJ1bGUgaGVyZSBmb3IgZm9ybSBpczoKKyAgLy8gICBJZiBubyBFLW5vdGF0aW9uLCB0aGVuIHJlcXVlc3QgcGxhaW4gbm90YXRpb24KKyAgLy8gICBPdGhlcndpc2UgYWN0IGFzIHRob3VnaCBhZGQoMCxERUZBVUxUKSBhbmQgcmVxdWVzdCBzY2llbnRpZmljIG5vdGF0aW9uCisgIC8vIFtmb3JtIGlzIGFscmVhZHkgUExBSU5dCisgIGlmIChtYW50WzBdPT0wKSAKKyAgIHsKKyAgICBpbmQ9aXN6ZXJvOyAvLyBmb3JjZSB0byBzaG93IHplcm8KKyAgICAvLyBuZWdhdGl2ZSBleHBvbmVudCBpcyBzaWduaWZpY2FudCAoZS5nLiwgLTMgZm9yIDAuMDAwKSBpZiBwbGFpbgorICAgIGlmIChleHA+MCkgCisgICAgIGV4cD0wOyAvLyBwb3NpdGl2ZSBleHBvbmVudCBjYW4gYmUgaWdub3JlZAorICAgIGlmIChoYWRleHApIAorICAgICB7IC8vIHplcm8gYmVjb21lcyBzaW5nbGUgZGlnaXQgZnJvbSBhZGQKKyAgICAgIG1hbnQ9WkVSTy5tYW50OworICAgICAgZXhwPTA7CisgICAgIH0KKyAgIH0KKyAgZWxzZSAKKyAgIHsgLy8gbm9uLXplcm8KKyAgICAvLyBbaW5kIHdhcyBzZXQgZWFybGllcl0KKyAgICAvLyBub3cgZGV0ZXJtaW5lIGZvcm0KKyAgICBpZiAoaGFkZXhwKSAKKyAgICAgeworICAgICAgZm9ybT0oYnl0ZSljb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlNDSUVOVElGSUM7CisgICAgICAvLyAxOTk5LjA2LjI5IGNoZWNrIGZvciBvdmVyZmxvdworICAgICAgbWFnPShleHArbWFudC5sZW5ndGgpLTE7IC8vIHRydWUgZXhwb25lbnQgaW4gc2NpZW50aWZpYyBub3RhdGlvbgorICAgICAgaWYgKChtYWc8TWluRXhwKXwobWFnPk1heEV4cCkpIAorICAgICAgIGJhZChpbmNoYXJzKTsKKyAgICAgfQorICAgfQorICAvLyBzYXkgJ0JEKGNbXSk6IG1hbnRbMF0gbWFudGxlbiBleHAgaW5kIGZvcm06JyBtYW50WzBdIG1hbnQubGVuZ3RoIGV4cCBpbmQgZm9ybQorICByZXR1cm47CisgIH0KKworIC8qKgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QgZGlyZWN0bHkgZnJvbSBhCisgICogPGNvZGU+ZG91YmxlPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hpY2ggaXMgdGhlIGV4YWN0IGRlY2ltYWwKKyAgKiByZXByZXNlbnRhdGlvbiBvZiB0aGUgNjQtYml0IHNpZ25lZCBiaW5hcnkgZmxvYXRpbmcgcG9pbnQKKyAgKiBwYXJhbWV0ZXIuCisgICogPHA+CisgICogTm90ZSB0aGF0IHRoaXMgY29uc3RydWN0b3IgaXQgYW4gZXhhY3QgY29udmVyc2lvbjsgaXQgZG9lcyBub3QgZ2l2ZQorICAqIHRoZSBzYW1lIHJlc3VsdCBhcyBjb252ZXJ0aW5nIDxjb2RlPm51bTwvY29kZT4gdG8gYQorICAqIDxjb2RlPlN0cmluZzwvY29kZT4gdXNpbmcgdGhlIDxjb2RlPkRvdWJsZS50b1N0cmluZygpPC9jb2RlPiBtZXRob2QKKyAgKiBhbmQgdGhlbiB1c2luZyB0aGUge0BsaW5rICNCaWdEZWNpbWFsKGphdmEubGFuZy5TdHJpbmcpfQorICAqIGNvbnN0cnVjdG9yLgorICAqIFRvIGdldCB0aGF0IHJlc3VsdCwgdXNlIHRoZSBzdGF0aWMge0BsaW5rICN2YWx1ZU9mKGRvdWJsZSl9CisgICogbWV0aG9kIHRvIGNvbnN0cnVjdCBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZyb20gYQorICAqIDxjb2RlPmRvdWJsZTwvY29kZT4uCisgICoKKyAgKiBAcGFyYW0gbnVtIFRoZSA8Y29kZT5kb3VibGU8L2NvZGU+IHRvIGJlIGNvbnZlcnRlZC4KKyAgKiBAdGhyb3dzIE51bWJlckZvcm1hdEV4Y2VwdGlvbiBpZiB0aGUgcGFyYW1ldGVyIGlzIGluZmluaXRlIG9yCisgICogICAgICAgICAgICBub3QgYSBudW1iZXIuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIEJpZ0RlY2ltYWwoZG91YmxlIG51bSl7CisgIC8vIDE5OTkuMDMuMDY6IHVzZSBleGFjdGx5IHRoZSBvbGQgYWxnb3JpdGhtCisgIC8vIDIwMDAuMDEuMDE6IG5vdGUgdGhhdCB0aGlzIGNvbnN0cnVjdG9yIGRvZXMgZ2l2ZSBhbiBleGFjdCByZXN1bHQsCisgIC8vICAgICAgICAgICAgIHNvIHBlcmhhcHMgaXQgc2hvdWxkIG5vdCBiZSBkZXByZWNhdGVkCisgIC8vIDIwMDAuMDYuMTg6IG5vIGxvbmdlciBkZXByZWNhdGVkCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICB0aGlzKChuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwobnVtKSkudG9TdHJpbmcoKSk7CisvLyNlbHNlCisvLyMjICAgIHRoaXMoU3RyaW5nLnZhbHVlT2YobnVtKSk7CisvLyNlbmRpZgorICByZXR1cm47fQorIC8qKgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QgZGlyZWN0bHkgZnJvbSBhCisgICogPGNvZGU+aW50PC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hpY2ggaXMgdGhlIGV4YWN0IGRlY2ltYWwKKyAgKiByZXByZXNlbnRhdGlvbiBvZiB0aGUgMzItYml0IHNpZ25lZCBiaW5hcnkgaW50ZWdlciBwYXJhbWV0ZXIuCisgICogVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpbGwgY29udGFpbiBvbmx5IGRlY2ltYWwgZGlnaXRzLAorICAqIHByZWZpeGVkIHdpdGggYSBsZWFkaW5nIG1pbnVzIHNpZ24gKGh5cGhlbikgaWYgdGhlIHBhcmFtZXRlciBpcworICAqIG5lZ2F0aXZlLgorICAqIEEgbGVhZGluZyB6ZXJvIHdpbGwgYmUgcHJlc2VudCBvbmx5IGlmIHRoZSBwYXJhbWV0ZXIgaXMgemVyby4KKyAgKgorICAqIEBwYXJhbSBudW0gVGhlIDxjb2RlPmludDwvY29kZT4gdG8gYmUgY29udmVydGVkLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBCaWdEZWNpbWFsKGludCBudW0pe3N1cGVyKCk7CisgIGludCBtdW47CisgIGludCBpPTA7CisgIC8vIFdlIGZhc3RwYXRoIGNvbW1vbmVycworICBpZiAobnVtPD05KSAKKyAgIGlmIChudW0+PSgtOSkpIAorICAgIHtzaW5nbGVkaWdpdDpkb3sKKyAgICAgLy8gdmVyeSBjb21tb24gc2luZ2xlIGRpZ2l0IGNhc2UKKyAgICAgey8qc2VsZWN0Ki8KKyAgICAgaWYgKG51bT09MCkKKyAgICAgIHsKKyAgICAgICBtYW50PVpFUk8ubWFudDsKKyAgICAgICBpbmQ9aXN6ZXJvOworICAgICAgfQorICAgICBlbHNlIGlmIChudW09PTEpCisgICAgICB7CisgICAgICAgbWFudD1PTkUubWFudDsKKyAgICAgICBpbmQ9aXNwb3M7CisgICAgICB9CisgICAgIGVsc2UgaWYgKG51bT09KC0xKSkKKyAgICAgIHsKKyAgICAgICBtYW50PU9ORS5tYW50OworICAgICAgIGluZD1pc25lZzsKKyAgICAgIH0KKyAgICAgZWxzZXsKKyAgICAgIHsKKyAgICAgICBtYW50PW5ldyBieXRlWzFdOworICAgICAgIGlmIChudW0+MCkgCisgICAgICAgIHsKKyAgICAgICAgIG1hbnRbMF09KGJ5dGUpbnVtOworICAgICAgICAgaW5kPWlzcG9zOworICAgICAgICB9CisgICAgICAgZWxzZSAKKyAgICAgICAgeyAvLyBudW08LTEKKyAgICAgICAgIG1hbnRbMF09KGJ5dGUpKChpbnQpLW51bSk7CisgICAgICAgICBpbmQ9aXNuZWc7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgfQorICAgICB9CisgICAgIHJldHVybjsKKyAgICB9d2hpbGUoZmFsc2UpO30vKnNpbmdsZWRpZ2l0Ki8KKyAgCisgIC8qIFdlIHdvcmsgb24gbmVnYXRpdmUgbnVtYmVycyBzbyB3ZSBoYW5kbGUgdGhlIG1vc3QgbmVnYXRpdmUgbnVtYmVyICovCisgIGlmIChudW0+MCkgCisgICB7CisgICAgaW5kPWlzcG9zOworICAgIG51bT0oaW50KS1udW07CisgICB9CisgIGVsc2UgCisgICBpbmQ9aXNuZWc7LyogbmVnYXRpdmUgKi8gLy8gWzAgY2FzZSBhbHJlYWR5IGhhbmRsZWRdCisgIC8vIFtpdCBpcyBxdWlja2VyLCBoZXJlLCB0byBwcmUtY2FsY3VsYXRlIHRoZSBsZW5ndGggd2l0aAorICAvLyBvbmUgbG9vcCwgdGhlbiBhbGxvY2F0ZSBleGFjdGx5IHRoZSByaWdodCBsZW5ndGggb2YgYnl0ZSBhcnJheSwKKyAgLy8gdGhlbiByZS1maWxsIGl0IHdpdGggYW5vdGhlciBsb29wXQorICBtdW49bnVtOyAvLyB3b3JraW5nIGNvcHkKKyAge2k9OTtpOmZvcig7O2ktLSl7CisgICBtdW49bXVuLzEwOworICAgaWYgKG11bj09MCkgCisgICAgYnJlYWsgaTsKKyAgIH0KKyAgfS8qaSovCisgIC8vIGkgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBsZWZ0bW9zdCBkaWdpdCBwbGFjZWQKKyAgbWFudD1uZXcgYnl0ZVsxMC1pXTsKKyAge2k9KDEwLWkpLTE7aTpmb3IoOztpLS0peworICAgbWFudFtpXT0oYnl0ZSktKCgoYnl0ZSkobnVtJTEwKSkpOworICAgbnVtPW51bS8xMDsKKyAgIGlmIChudW09PTApIAorICAgIGJyZWFrIGk7CisgICB9CisgIH0vKmkqLworICByZXR1cm47CisgIH0KKworIC8qKgorICAqIENvbnN0cnVjdHMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QgZGlyZWN0bHkgZnJvbSBhCisgICogPGNvZGU+bG9uZzwvY29kZT4uCisgICogPHA+CisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdoaWNoIGlzIHRoZSBleGFjdCBkZWNpbWFsCisgICogcmVwcmVzZW50YXRpb24gb2YgdGhlIDY0LWJpdCBzaWduZWQgYmluYXJ5IGludGVnZXIgcGFyYW1ldGVyLgorICAqIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aWxsIGNvbnRhaW4gb25seSBkZWNpbWFsIGRpZ2l0cywKKyAgKiBwcmVmaXhlZCB3aXRoIGEgbGVhZGluZyBtaW51cyBzaWduIChoeXBoZW4pIGlmIHRoZSBwYXJhbWV0ZXIgaXMKKyAgKiBuZWdhdGl2ZS4KKyAgKiBBIGxlYWRpbmcgemVybyB3aWxsIGJlIHByZXNlbnQgb25seSBpZiB0aGUgcGFyYW1ldGVyIGlzIHplcm8uCisgICoKKyAgKiBAcGFyYW0gbnVtIFRoZSA8Y29kZT5sb25nPC9jb2RlPiB0byBiZSBjb252ZXJ0ZWQuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIEJpZ0RlY2ltYWwobG9uZyBudW0pe3N1cGVyKCk7CisgIGxvbmcgbXVuOworICBpbnQgaT0wOworICAvLyBOb3QgcmVhbGx5IHdvcnRoIGZhc3RwYXRoaW5nIGNvbW1vbmVycyBpbiB0aGlzIGNvbnN0cnVjdG9yIFthbHNvLAorICAvLyB3ZSB1c2UgdGhpcyB0byBjb25zdHJ1Y3QgdGhlIHN0YXRpYyBjb25zdGFudHNdLgorICAvLyBUaGlzIGlzIG11Y2ggZmFzdGVyIHRoYW46IHRoaXMoU3RyaW5nLnZhbHVlT2YobnVtKS50b0NoYXJBcnJheSgpKQorICAvKiBXZSB3b3JrIG9uIG5lZ2F0aXZlIG51bSBzbyB3ZSBoYW5kbGUgdGhlIG1vc3QgbmVnYXRpdmUgbnVtYmVyICovCisgIGlmIChudW0+MCkgCisgICB7CisgICAgaW5kPWlzcG9zOworICAgIG51bT0obG9uZyktbnVtOworICAgfQorICBlbHNlIAorICAgaWYgKG51bT09MCkgCisgICAgaW5kPWlzemVybzsKKyAgIGVsc2UgCisgICAgaW5kPWlzbmVnOy8qIG5lZ2F0aXZlICovCisgIG11bj1udW07CisgIHtpPTE4O2k6Zm9yKDs7aS0tKXsKKyAgIG11bj1tdW4vMTA7CisgICBpZiAobXVuPT0wKSAKKyAgICBicmVhayBpOworICAgfQorICB9LyppKi8KKyAgLy8gaSBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIGxlZnRtb3N0IGRpZ2l0IHBsYWNlZAorICBtYW50PW5ldyBieXRlWzE5LWldOworICB7aT0oMTktaSktMTtpOmZvcig7O2ktLSl7CisgICBtYW50W2ldPShieXRlKS0oKChieXRlKShudW0lMTApKSk7CisgICBudW09bnVtLzEwOworICAgaWYgKG51bT09MCkgCisgICAgYnJlYWsgaTsKKyAgIH0KKyAgfS8qaSovCisgIHJldHVybjsKKyAgfQorCisgLyoqCisgICogQ29uc3RydWN0cyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdCBmcm9tIGEgPGNvZGU+U3RyaW5nPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZnJvbSB0aGUgcGFyYW1ldGVyLCB3aGljaCBtdXN0CisgICogbm90IGJlIDxjb2RlPm51bGw8L2NvZGU+IGFuZCBtdXN0IHJlcHJlc2VudCBhIHZhbGlkIDxpPm51bWJlcjwvaT4sCisgICogYXMgZGVzY3JpYmVkIGZvcm1hbGx5IGluIHRoZSBkb2N1bWVudGF0aW9uIHJlZmVycmVkIHRvCisgICoge0BsaW5rIEJpZ0RlY2ltYWwgYWJvdmV9LgorICAqIDxwPgorICAqIEluIHN1bW1hcnksIG51bWJlcnMgaW4gPGNvZGU+U3RyaW5nPC9jb2RlPiBmb3JtIG11c3QgaGF2ZSBhdCBsZWFzdAorICAqIG9uZSBkaWdpdCwgbWF5IGhhdmUgYSBsZWFkaW5nIHNpZ24sIG1heSBoYXZlIGEgZGVjaW1hbCBwb2ludCwgYW5kCisgICogZXhwb25lbnRpYWwgbm90YXRpb24gbWF5IGJlIHVzZWQuICBUaGV5IGZvbGxvdyBjb252ZW50aW9uYWwgc3ludGF4LAorICAqIGFuZCBtYXkgbm90IGNvbnRhaW4gYmxhbmtzLgorICAqIDxwPgorICAqIFNvbWUgdmFsaWQgc3RyaW5ncyBmcm9tIHdoaWNoIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gbWlnaHQKKyAgKiBiZSBjb25zdHJ1Y3RlZCBhcmU6CisgICogPHByZT4KKyAgKiAgICAgICAiMCIgICAgICAgICAtLSBaZXJvCisgICogICAgICAiMTIiICAgICAgICAgLS0gQSB3aG9sZSBudW1iZXIKKyAgKiAgICAgIi03NiIgICAgICAgICAtLSBBIHNpZ25lZCB3aG9sZSBudW1iZXIKKyAgKiAgICAgICIxMi43MCIgICAgICAtLSBTb21lIGRlY2ltYWwgcGxhY2VzCisgICogICAgICIrMC4wMDMiICAgICAgLS0gUGx1cyBzaWduIGlzIGFsbG93ZWQKKyAgKiAgICAgICIxNy4iICAgICAgICAtLSBUaGUgc2FtZSBhcyAxNworICAqICAgICAgICAiLjUiICAgICAgIC0tIFRoZSBzYW1lIGFzIDAuNQorICAqICAgICAgIjRFKzkiICAgICAgIC0tIEV4cG9uZW50aWFsIG5vdGF0aW9uCisgICogICAgICAgIjAuNzNlLTciICAgLS0gRXhwb25lbnRpYWwgbm90YXRpb24KKyAgKiA8L3ByZT4KKyAgKiA8cD4KKyAgKiAoRXhwb25lbnRpYWwgbm90YXRpb24gbWVhbnMgdGhhdCB0aGUgbnVtYmVyIGluY2x1ZGVzIGFuIG9wdGlvbmFsCisgICogc2lnbiBhbmQgYSBwb3dlciBvZiB0ZW4gZm9sbG93aW5nIGFuICc8L2NvZGU+RTwvY29kZT4nIHRoYXQKKyAgKiBpbmRpY2F0ZXMgaG93IHRoZSBkZWNpbWFsIHBvaW50IHdpbGwgYmUgc2hpZnRlZC4gIFRodXMgdGhlCisgICogPGNvZGU+IjRFKzkiPC9jb2RlPiBhYm92ZSBpcyBqdXN0IGEgc2hvcnQgd2F5IG9mIHdyaXRpbmcKKyAgKiA8Y29kZT40MDAwMDAwMDAwPC9jb2RlPiwgYW5kIHRoZSA8Y29kZT4iMC43M2UtNyI8L2NvZGU+IGlzIHNob3J0CisgICogZm9yIDxjb2RlPjAuMDAwMDAwMDczPC9jb2RlPi4pCisgICogPHA+CisgICogVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGNvbnN0cnVjdGVkIGZyb20gdGhlIFN0cmluZyBpcyBpbiBhCisgICogc3RhbmRhcmQgZm9ybSwgd2l0aCBubyBibGFua3MsIGFzIHRob3VnaCB0aGUKKyAgKiB7QGxpbmsgI2FkZChCaWdEZWNpbWFsKX0gbWV0aG9kIGhhZCBiZWVuIHVzZWQgdG8gYWRkIHplcm8gdG8gdGhlCisgICogbnVtYmVyIHdpdGggdW5saW1pdGVkIHByZWNpc2lvbi4KKyAgKiBJZiB0aGUgc3RyaW5nIHVzZXMgZXhwb25lbnRpYWwgbm90YXRpb24gKHRoYXQgaXMsIGluY2x1ZGVzIGFuCisgICogPGNvZGU+ZTwvY29kZT4gb3IgYW4gPGNvZGU+RTwvY29kZT4pLCB0aGVuIHRoZQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG51bWJlciB3aWxsIGJlIGV4cHJlc3NlZCBpbiBzY2llbnRpZmljCisgICogbm90YXRpb24gKHdoZXJlIHRoZSBwb3dlciBvZiB0ZW4gaXMgYWRqdXN0ZWQgc28gdGhlcmUgaXMgYSBzaW5nbGUKKyAgKiBub24temVybyBkaWdpdCB0byB0aGUgbGVmdCBvZiB0aGUgZGVjaW1hbCBwb2ludCk7IGluIHRoaXMgY2FzZSBpZgorICAqIHRoZSBudW1iZXIgaXMgemVybyB0aGVuIGl0IHdpbGwgYmUgZXhwcmVzc2VkIGFzIHRoZSBzaW5nbGUgZGlnaXQgMCwKKyAgKiBhbmQgaWYgbm9uLXplcm8gaXQgd2lsbCBoYXZlIGFuIGV4cG9uZW50IHVubGVzcyB0aGF0IGV4cG9uZW50IHdvdWxkCisgICogYmUgMC4gIFRoZSBleHBvbmVudCBtdXN0IGZpdCBpbiBuaW5lIGRpZ2l0cyBib3RoIGJlZm9yZSBhbmQgYWZ0ZXIgaXQKKyAgKiBpcyBleHByZXNzZWQgaW4gc2NpZW50aWZpYyBub3RhdGlvbi4KKyAgKiA8cD4KKyAgKiBBbnkgZGlnaXRzIGluIHRoZSBwYXJhbWV0ZXIgbXVzdCBiZSBkZWNpbWFsOyB0aGF0IGlzLAorICAqIDxjb2RlPkNoYXJhY3Rlci5kaWdpdChjLCAxMCk8L2NvZGU+ICh3aGVyZSA8L2NvZGU+YzwvY29kZT4gaXMgdGhlCisgICogY2hhcmFjdGVyIGluIHF1ZXN0aW9uKSB3b3VsZCBub3QgcmV0dXJuIC0xLgorICAqCisgICogQHBhcmFtIHN0cmluZyBUaGUgPGNvZGU+U3RyaW5nPC9jb2RlPiB0byBiZSBjb252ZXJ0ZWQuCisgICogQHRocm93cyBOdW1iZXJGb3JtYXRFeGNlcHRpb24gaWYgdGhlIHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZAorICAqIG51bWJlci4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgQmlnRGVjaW1hbChqYXZhLmxhbmcuU3RyaW5nIHN0cmluZyl7CisgIHRoaXMoc3RyaW5nLnRvQ2hhckFycmF5KCksMCxzdHJpbmcubGVuZ3RoKCkpOworICByZXR1cm47fQorCisgLyogPHNnbWw+IE1ha2UgYSBkZWZhdWx0IEJpZ0RlY2ltYWwgb2JqZWN0IGZvciBsb2NhbCB1c2UuIDwvc2dtbD4gKi8KKyAKKyBwcml2YXRlIEJpZ0RlY2ltYWwoKXtzdXBlcigpOworICByZXR1cm47CisgIH0KKworIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAvKiBPcGVyYXRvciBtZXRob2RzIFttZXRob2RzIHdoaWNoIHRha2UgYSBjb250ZXh0IHBhcmFtZXRlcl0gICAgICAgICovCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIAorIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgYWJzb2x1dGUKKyAgKiB2YWx1ZSBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjYWJzKE1hdGhDb250ZXh0KX0sIHdoZXJlIHRoZSBjb250ZXh0IGlzCisgICogPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICogPHA+CisgICogVGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoZSByZXN1bHQgd2lsbAorICAqIGJlIDxjb2RlPnRoaXMuc2NhbGUoKTwvY29kZT4KKyAgKgorICAqIEByZXR1cm4gQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgYWJzb2x1dGUKKyAgKiAgICAgICAgIHZhbHVlIG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBhYnMoKXsKKyAgcmV0dXJuIHRoaXMuYWJzKHBsYWluTUMpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIGFic29sdXRlIHZhbHVlCisgICogb2YgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgY3VycmVudCBvYmplY3QgaXMgemVybyBvciBwb3NpdGl2ZSwgdGhlbiB0aGUgc2FtZSByZXN1bHQgYXMKKyAgKiBpbnZva2luZyB0aGUge0BsaW5rICNwbHVzKE1hdGhDb250ZXh0KX0gbWV0aG9kIHdpdGggdGhlIHNhbWUKKyAgKiBwYXJhbWV0ZXIgaXMgcmV0dXJuZWQuCisgICogT3RoZXJ3aXNlLCB0aGUgc2FtZSByZXN1bHQgYXMgaW52b2tpbmcgdGhlCisgICoge0BsaW5rICNuZWdhdGUoTWF0aENvbnRleHQpfSBtZXRob2Qgd2l0aCB0aGUgc2FtZSBwYXJhbWV0ZXIgaXMKKyAgKiByZXR1cm5lZC4KKyAgKgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSBhYnNvbHV0ZQorICAqICAgICAgICAgICAgIHZhbHVlIG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBhYnMoY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICBpZiAodGhpcy5pbmQ9PWlzbmVnKSAKKyAgIHJldHVybiB0aGlzLm5lZ2F0ZShzZXQpOworICByZXR1cm4gdGhpcy5wbHVzKHNldCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIDxjb2RlPnRoaXMrcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI2FkZChCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgY29udGV4dCBpcyA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhlIHJlc3VsdCB3aWxsIGJlCisgICogdGhlIG1heGltdW0gb2YgdGhlIHNjYWxlcyBvZiB0aGUgdHdvIG9wZXJhbmRzLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGFkZGl0aW9uLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzK3JoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBhZGQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIHJldHVybiB0aGlzLmFkZChyaHMscGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyA8Y29kZT50aGlzK3JoczwvY29kZT4uCisgICogPHA+CisgICogSW1wbGVtZW50cyB0aGUgYWRkaXRpb24gKDxiPjxjb2RlPis8L2NvZGU+PC9iPikgb3BlcmF0b3IKKyAgKiAoYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uLCBzZWUge0BsaW5rIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBoZWFkZXJ9KSwKKyAgKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGFkZGl0aW9uLgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpcytyaHM8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgYWRkKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBzZXQpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbGhzOworICBpbnQgcmVxZGlnOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVzOworICBieXRlIHVzZWxbXTsKKyAgaW50IHVzZWxsZW47CisgIGJ5dGUgdXNlcltdOworICBpbnQgdXNlcmxlbjsKKyAgaW50IG5ld2xlbj0wOworICBpbnQgdGxlbj0wOworICBpbnQgbXVsdD0wOworICBieXRlIHRbXT1udWxsOworICBpbnQgaWE9MDsKKyAgaW50IGliPTA7CisgIGludCBlYT0wOworICBpbnQgZWI9MDsKKyAgYnl0ZSBjYT0wOworICBieXRlIGNiPTA7CisgIC8qIGRldGVybWluZSByZXF1ZXN0ZWQgZGlnaXRzIGFuZCBmb3JtICovCisgIGlmIChzZXQubG9zdERpZ2l0cykgCisgICBjaGVja2RpZ2l0cyhyaHMsc2V0LmRpZ2l0cyk7CisgIGxocz10aGlzOyAvLyBuYW1lIGZvciBjbGFyaXR5IGFuZCBwcm94eQorICAKKyAgLyogUXVpY2sgZXhpdCBmb3IgYWRkIGZsb2F0aW5nIDAgKi8KKyAgLy8gcGx1cygpIHdpbGwgb3B0aW1pemUgdG8gcmV0dXJuIHNhbWUgb2JqZWN0IGlmIHBvc3NpYmxlCisgIGlmIChsaHMuaW5kPT0wKSAKKyAgIGlmIChzZXQuZm9ybSE9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikgCisgICAgcmV0dXJuIHJocy5wbHVzKHNldCk7CisgIGlmIChyaHMuaW5kPT0wKSAKKyAgIGlmIChzZXQuZm9ybSE9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikgCisgICAgcmV0dXJuIGxocy5wbHVzKHNldCk7CisgIAorICAvKiBQcmVwYXJlIG51bWJlcnMgKHJvdW5kLCB1bmxlc3MgdW5saW1pdGVkIHByZWNpc2lvbikgKi8KKyAgcmVxZGlnPXNldC5kaWdpdHM7IC8vIGxvY2FsIGNvcHkgKGhlYXZpbHkgdXNlZCkKKyAgaWYgKHJlcWRpZz4wKSAKKyAgIHsKKyAgICBpZiAobGhzLm1hbnQubGVuZ3RoPnJlcWRpZykgCisgICAgIGxocz1jbG9uZShsaHMpLnJvdW5kKHNldCk7CisgICAgaWYgKHJocy5tYW50Lmxlbmd0aD5yZXFkaWcpIAorICAgICByaHM9Y2xvbmUocmhzKS5yb3VuZChzZXQpOworICAgLy8gW3dlIGNvdWxkIHJldXNlIHRoZSBuZXcgTEhTIGZvciByZXN1bHQgaW4gdGhpcyBjYXNlXQorICAgfQorICAKKyAgcmVzPW5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKTsgLy8gYnVpbGQgcmVzdWx0IGhlcmUKKyAgCisgIC8qIE5vdyBzZWUgaG93IG11Y2ggd2UgaGF2ZSB0byBwYWQgb3IgdHJ1bmNhdGUgbGhzIG9yIHJocyBpbiBvcmRlcgorICAgICB0byBhbGlnbiB0aGUgbnVtYmVycy4gIElmIG9uZSBudW1iZXIgaXMgbXVjaCBsYXJnZXIgdGhhbiB0aGUKKyAgICAgb3RoZXIsIHRoZW4gdGhlIHNtYWxsZXIgY2Fubm90IGFmZmVjdCB0aGUgYW5zd2VyIFtidXQgd2UgbWF5CisgICAgIHN0aWxsIG5lZWQgdG8gcGFkIHdpdGggdXAgdG8gRElHSVRTIHRyYWlsaW5nIHplcm9zXS4gKi8KKyAgLy8gTm90ZSBzaWduIG1heSBiZSAwIGlmIGRpZ2l0cyAocmVxZGlnKSBpcyAwCisgIC8vIHVzZWwgYW5kIHVzZXIgd2lsbCBiZSB0aGUgYnl0ZSBhcnJheXMgcGFzc2VkIHRvIHRoZSBhZGRlcjsgd2UnbGwKKyAgLy8gdXNlIHRoZW0gb24gYWxsIHBhdGhzIGV4Y2VwdCBxdWljayBleGl0cworICB1c2VsPWxocy5tYW50OworICB1c2VsbGVuPWxocy5tYW50Lmxlbmd0aDsKKyAgdXNlcj1yaHMubWFudDsKKyAgdXNlcmxlbj1yaHMubWFudC5sZW5ndGg7CisgIHtwYWRkZXI6ZG97LypzZWxlY3QqLworICBpZiAobGhzLmV4cD09cmhzLmV4cCkKKyAgIHsvKiBubyBwYWRkaW5nIG5lZWRlZCAqLworICAgIC8vIFRoaXMgaXMgdGhlIG1vc3QgY29tbW9uLCBhbmQgZmFzdGVzdCwgcGF0aAorICAgIHJlcy5leHA9bGhzLmV4cDsKKyAgIH0KKyAgZWxzZSBpZiAobGhzLmV4cD5yaHMuZXhwKQorICAgeyAvLyBuZWVkIHRvIHBhZCBsaHMgYW5kL29yIHRydW5jYXRlIHJocworICAgIG5ld2xlbj0odXNlbGxlbitsaHMuZXhwKS1yaHMuZXhwOworICAgIC8qIElmLCBhZnRlciBwYWQsIGxocyB3b3VsZCBiZSBsb25nZXIgdGhhbiByaHMgYnkgZGlnaXRzKzEgb3IKKyAgICAgICBtb3JlIChhbmQgZGlnaXRzPjApIHRoZW4gcmhzIGNhbm5vdCBhZmZlY3QgYW5zd2VyLCBzbyB3ZSBvbmx5CisgICAgICAgbmVlZCB0byBwYWQgdXAgdG8gYSBsZW5ndGggb2YgRElHSVRTKzEuICovCisgICAgaWYgKG5ld2xlbj49KCh1c2VybGVuK3JlcWRpZykrMSkpIAorICAgICBpZiAocmVxZGlnPjApIAorICAgICAgeworICAgICAgIC8vIExIUyBpcyBzdWZmaWNpZW50CisgICAgICAgcmVzLm1hbnQ9dXNlbDsKKyAgICAgICByZXMuZXhwPWxocy5leHA7CisgICAgICAgcmVzLmluZD1saHMuaW5kOworICAgICAgIGlmICh1c2VsbGVuPHJlcWRpZykgCisgICAgICAgIHsgLy8gbmVlZCAwIHBhZGRpbmcKKyAgICAgICAgIHJlcy5tYW50PWV4dGVuZChsaHMubWFudCxyZXFkaWcpOworICAgICAgICAgcmVzLmV4cD1yZXMuZXhwLSgocmVxZGlnLXVzZWxsZW4pKTsKKyAgICAgICAgfQorICAgICAgIHJldHVybiByZXMuZmluaXNoKHNldCxmYWxzZSk7CisgICAgICB9CisgICAgLy8gUkhTIG1heSBhZmZlY3QgcmVzdWx0CisgICAgcmVzLmV4cD1yaHMuZXhwOyAvLyBleHBlY3RlZCBmaW5hbCBleHBvbmVudAorICAgIGlmIChuZXdsZW4+KHJlcWRpZysxKSkgCisgICAgIGlmIChyZXFkaWc+MCkgCisgICAgICB7CisgICAgICAgLy8gTEhTIHdpbGwgYmUgbWF4OyBSSFMgdHJ1bmNhdGVkCisgICAgICAgdGxlbj0obmV3bGVuLXJlcWRpZyktMTsgLy8gdHJ1bmNhdGlvbiBsZW5ndGgKKyAgICAgICB1c2VybGVuPXVzZXJsZW4tdGxlbjsKKyAgICAgICByZXMuZXhwPXJlcy5leHArdGxlbjsKKyAgICAgICBuZXdsZW49cmVxZGlnKzE7CisgICAgICB9CisgICAgaWYgKG5ld2xlbj51c2VsbGVuKSAKKyAgICAgdXNlbGxlbj1uZXdsZW47IC8vIG5lZWQgdG8gcGFkIExIUworICAgfQorICBlbHNleyAvLyBuZWVkIHRvIHBhZCByaHMgYW5kL29yIHRydW5jYXRlIGxocworICAgbmV3bGVuPSh1c2VybGVuK3Jocy5leHApLWxocy5leHA7CisgICBpZiAobmV3bGVuPj0oKHVzZWxsZW4rcmVxZGlnKSsxKSkgCisgICAgaWYgKHJlcWRpZz4wKSAKKyAgICAgeworICAgICAgLy8gUkhTIGlzIHN1ZmZpY2llbnQKKyAgICAgIHJlcy5tYW50PXVzZXI7CisgICAgICByZXMuZXhwPXJocy5leHA7CisgICAgICByZXMuaW5kPXJocy5pbmQ7CisgICAgICBpZiAodXNlcmxlbjxyZXFkaWcpIAorICAgICAgIHsgLy8gbmVlZCAwIHBhZGRpbmcKKyAgICAgICAgcmVzLm1hbnQ9ZXh0ZW5kKHJocy5tYW50LHJlcWRpZyk7CisgICAgICAgIHJlcy5leHA9cmVzLmV4cC0oKHJlcWRpZy11c2VybGVuKSk7CisgICAgICAgfQorICAgICAgcmV0dXJuIHJlcy5maW5pc2goc2V0LGZhbHNlKTsKKyAgICAgfQorICAgLy8gTEhTIG1heSBhZmZlY3QgcmVzdWx0CisgICByZXMuZXhwPWxocy5leHA7IC8vIGV4cGVjdGVkIGZpbmFsIGV4cG9uZW50CisgICBpZiAobmV3bGVuPihyZXFkaWcrMSkpIAorICAgIGlmIChyZXFkaWc+MCkgCisgICAgIHsKKyAgICAgIC8vIFJIUyB3aWxsIGJlIG1heDsgTEhTIHRydW5jYXRlZAorICAgICAgdGxlbj0obmV3bGVuLXJlcWRpZyktMTsgLy8gdHJ1bmNhdGlvbiBsZW5ndGgKKyAgICAgIHVzZWxsZW49dXNlbGxlbi10bGVuOworICAgICAgcmVzLmV4cD1yZXMuZXhwK3RsZW47CisgICAgICBuZXdsZW49cmVxZGlnKzE7CisgICAgIH0KKyAgIGlmIChuZXdsZW4+dXNlcmxlbikgCisgICAgdXNlcmxlbj1uZXdsZW47IC8vIG5lZWQgdG8gcGFkIFJIUworICB9CisgIH13aGlsZShmYWxzZSk7fS8qcGFkZGVyKi8KKyAgCisgIC8qIE9LLCB3ZSBoYXZlIGFsaWduZWQgbWFudGlzc2FzLiAgTm93IGFkZCBvciBzdWJ0cmFjdC4gKi8KKyAgLy8gMTk5OC4wNi4yNyBTaWduIG1heSBub3cgYmUgMCBbZS5nLiwgMC4wMDBdIC4uIHRyZWF0IGFzIHBvc2l0aXZlCisgIC8vIDE5OTkuMDUuMjcgQWxsb3cgZm9yIDAwIG9uIGxocyBbaXMgbm90IGxhcmdlciB0aGFuIDIgb24gcmhzXQorICAvLyAxOTk5LjA3LjEwIEFsbG93IGZvciAwMCBvbiByaHMgW2lzIG5vdCBsYXJnZXIgdGhhbiAyIG9uIHJoc10KKyAgaWYgKGxocy5pbmQ9PWlzemVybykgCisgICByZXMuaW5kPWlzcG9zOworICBlbHNlIAorICAgcmVzLmluZD1saHMuaW5kOyAvLyBsaWtlbHkgc2lnbiwgYWxsIHBhdGhzCisgIGlmICgoKGxocy5pbmQ9PWlzbmVnKT8xOjApPT0oKHJocy5pbmQ9PWlzbmVnKT8xOjApKSAgLy8gc2FtZSBzaWduLCAwIG5vbi1uZWdhdGl2ZQorICAgbXVsdD0xOworICBlbHNlIAorICAge3NpZ25kaWZmOmRveyAvLyBkaWZmZXJlbnQgc2lnbnMsIHNvIHN1YnRyYWN0aW9uIGlzIG5lZWRlZAorICAgIG11bHQ9LTE7IC8vIHdpbGwgY2F1c2Ugc3VidHJhY3QKKyAgICAvKiBCZWZvcmUgd2UgY2FuIHN1YnRyYWN0IHdlIG11c3QgZGV0ZXJtaW5lIHdoaWNoIGlzIHRoZSBsYXJnZXIsCisgICAgICAgYXMgb3VyIGFkZC9zdWJ0cmFjdCByb3V0aW5lIG9ubHkgaGFuZGxlcyBub24tbmVnYXRpdmUgcmVzdWx0cworICAgICAgIHNvIHdlIG1heSBuZWVkIHRvIHN3YXAgdGhlIG9wZXJhbmRzLiAqLworICAgIHtzd2FwdGVzdDpkb3svKnNlbGVjdCovCisgICAgaWYgKHJocy5pbmQ9PWlzemVybyl7CisgICAgIC8vIG9yaWdpbmFsIEEgYmlnZ2VyCisgICAgfWVsc2UgaWYgKCh1c2VsbGVuPHVzZXJsZW4pfChsaHMuaW5kPT1pc3plcm8pKQorICAgICB7IC8vIG9yaWdpbmFsIEIgYmlnZ2VyCisgICAgICB0PXVzZWw7CisgICAgICB1c2VsPXVzZXI7CisgICAgICB1c2VyPXQ7IC8vIHN3YXAKKyAgICAgIHRsZW49dXNlbGxlbjsKKyAgICAgIHVzZWxsZW49dXNlcmxlbjsKKyAgICAgIHVzZXJsZW49dGxlbjsgLy8gLi4KKyAgICAgIHJlcy5pbmQ9KGJ5dGUpLXJlcy5pbmQ7IC8vIGFuZCBzZXQgc2lnbgorICAgICB9CisgICAgZWxzZSBpZiAodXNlbGxlbj51c2VybGVuKXsKKyAgICAgLy8gb3JpZ2luYWwgQSBiaWdnZXIKKyAgICB9ZWxzZXsKKyAgICAgey8qIGxvZ2ljYWwgbGVuZ3RocyB0aGUgc2FtZSAqLyAvLyBuZWVkIGNvbXBhcmUKKyAgICAgIC8qIG1heSBzdGlsbCBuZWVkIHRvIHN3YXA6IGNvbXBhcmUgdGhlIHN0cmluZ3MgKi8KKyAgICAgIGlhPTA7CisgICAgICBpYj0wOworICAgICAgZWE9dXNlbC5sZW5ndGgtMTsKKyAgICAgIGViPXVzZXIubGVuZ3RoLTE7CisgICAgICB7Y29tcGFyZTpmb3IoOzspeworICAgICAgIGlmIChpYTw9ZWEpIAorICAgICAgICBjYT11c2VsW2lhXTsKKyAgICAgICBlbHNlIAorICAgICAgICB7CisgICAgICAgICBpZiAoaWI+ZWIpIAorICAgICAgICAgIHsvKiBpZGVudGljYWwgKi8KKyAgICAgICAgICAgaWYgKHNldC5mb3JtIT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKSAKKyAgICAgICAgICAgIHJldHVybiBaRVJPOworICAgICAgICAgICAvLyBbaWYgUExBSU4gd2UgbXVzdCBkbyB0aGUgc3VidHJhY3QsIGluIGNhc2Ugb2YgMC4wMDAgcmVzdWx0c10KKyAgICAgICAgICAgYnJlYWsgY29tcGFyZTsKKyAgICAgICAgICB9CisgICAgICAgICBjYT0oYnl0ZSkwOworICAgICAgICB9CisgICAgICAgaWYgKGliPD1lYikgCisgICAgICAgIGNiPXVzZXJbaWJdOworICAgICAgIGVsc2UgCisgICAgICAgIGNiPShieXRlKTA7CisgICAgICAgaWYgKGNhIT1jYikgCisgICAgICAgIHsKKyAgICAgICAgIGlmIChjYTxjYikgCisgICAgICAgICAgey8qIHN3YXAgbmVlZGVkICovCisgICAgICAgICAgIHQ9dXNlbDsKKyAgICAgICAgICAgdXNlbD11c2VyOworICAgICAgICAgICB1c2VyPXQ7IC8vIHN3YXAKKyAgICAgICAgICAgdGxlbj11c2VsbGVuOworICAgICAgICAgICB1c2VsbGVuPXVzZXJsZW47CisgICAgICAgICAgIHVzZXJsZW49dGxlbjsgLy8gLi4KKyAgICAgICAgICAgcmVzLmluZD0oYnl0ZSktcmVzLmluZDsKKyAgICAgICAgICB9CisgICAgICAgICBicmVhayBjb21wYXJlOworICAgICAgICB9CisgICAgICAgLyogbWFudGlzc2FzIHRoZSBzYW1lLCBzbyBmYXIgKi8KKyAgICAgICBpYSsrOworICAgICAgIGliKys7CisgICAgICAgfQorICAgICAgfS8qY29tcGFyZSovCisgICAgIH0gLy8gbGVuZ3RocyB0aGUgc2FtZQorICAgIH0KKyAgICB9d2hpbGUoZmFsc2UpO30vKnN3YXB0ZXN0Ki8KKyAgIH13aGlsZShmYWxzZSk7fS8qc2lnbmRpZmYqLworICAKKyAgLyogaGVyZSwgQSBpcyA+IEIgaWYgc3VidHJhY3RpbmcgKi8KKyAgLy8gYWRkIFtBK0IqMV0gb3Igc3VidHJhY3QgW0ErKEIqLTEpXQorICByZXMubWFudD1ieXRlYWRkc3ViKHVzZWwsdXNlbGxlbix1c2VyLHVzZXJsZW4sbXVsdCxmYWxzZSk7CisgIC8vIFtyZXVzZSBwb3NzaWJsZSBvbmx5IGFmdGVyIGNob3A7IGFjY291bnRpbmcgbWFrZXMgbm90IHdvcnRod2hpbGVdCisgIAorICAvLyBGaW5pc2goKSByb3VuZHMgYmVmb3JlIHN0cmlwcGluZyBsZWFkaW5nIDAncywgdGhlbiBzZXRzIGZvcm0sIGV0Yy4KKyAgcmV0dXJuIHJlcy5maW5pc2goc2V0LGZhbHNlKTsKKyAgfQorCisgLyoqCisgICogQ29tcGFyZXMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhbm90aGVyLCB1c2luZyB1bmxpbWl0ZWQKKyAgKiBwcmVjaXNpb24uCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNjb21wYXJlVG8oQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIGNvbnRleHQgaXMgPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgY29tcGFyaXNvbi4KKyAgKiBAcmV0dXJuICAgICBBbiA8Y29kZT5pbnQ8L2NvZGU+IHdob3NlIHZhbHVlIGlzIC0xLCAwLCBvciAxIGFzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpczwvY29kZT4gaXMgbnVtZXJpY2FsbHkgbGVzcyB0aGFuLCBlcXVhbCB0bywKKyAgKiAgICAgICAgICAgICBvciBncmVhdGVyIHRoYW4gPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiBAc2VlICAgICNjb21wYXJlVG8oT2JqZWN0KQorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBpbnQgY29tcGFyZVRvKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMpeworICByZXR1cm4gdGhpcy5jb21wYXJlVG8ocmhzLHBsYWluTUMpOworICB9CisKKyAvKioKKyAgKiBDb21wYXJlcyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGFub3RoZXIuCisgICogPHA+CisgICogSW1wbGVtZW50cyBudW1lcmljIGNvbXBhcmlzb24sCisgICogKGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbiwgc2VlIHtAbGluayBCaWdEZWNpbWFsCisgICogY2xhc3MgaGVhZGVyfSksCisgICogYW5kIHJldHVybnMgYSByZXN1bHQgb2YgdHlwZSA8Y29kZT5pbnQ8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSByZXN1bHQgd2lsbCBiZToKKyAgKiA8dGFibGUgY2VsbHBhZGRpbmc9Mj48dHI+CisgICogPHRkIGFsaWduPXJpZ2h0PjxiPi0xPC9iPjwvdGQ+CisgICogPHRkPmlmIHRoZSBjdXJyZW50IG9iamVjdCBpcyBsZXNzIHRoYW4gdGhlIGZpcnN0IHBhcmFtZXRlcjwvdGQ+CisgICogPC90cj48dHI+CisgICogPHRkIGFsaWduPXJpZ2h0PjxiPjA8L2I+PC90ZD4KKyAgKiA8dGQ+aWYgdGhlIGN1cnJlbnQgb2JqZWN0IGlzIGVxdWFsIHRvIHRoZSBmaXJzdCBwYXJhbWV0ZXI8L3RkPgorICAqIDwvdHI+PHRyPgorICAqIDx0ZCBhbGlnbj1yaWdodD48Yj4xPC9iPjwvdGQ+CisgICogPHRkPmlmIHRoZSBjdXJyZW50IG9iamVjdCBpcyBncmVhdGVyIHRoYW4gdGhlIGZpcnN0IHBhcmFtZXRlci48L3RkPgorICAqIDwvdHI+PC90YWJsZT4KKyAgKiA8cD4KKyAgKiBBIHtAbGluayAjY29tcGFyZVRvKE9iamVjdCl9IG1ldGhvZCBpcyBhbHNvIHByb3ZpZGVkLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGNvbXBhcmlzb24uCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEFuIDxjb2RlPmludDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgLTEsIDAsIG9yIDEgYXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzPC9jb2RlPiBpcyBudW1lcmljYWxseSBsZXNzIHRoYW4sIGVxdWFsIHRvLAorICAqICAgICAgICAgICAgIG9yIGdyZWF0ZXIgdGhhbiA8Y29kZT5yaHM8L2NvZGU+LgorICAqIEBzZWUgICAgI2NvbXBhcmVUbyhPYmplY3QpCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGludCBjb21wYXJlVG8oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIGludCB0aGlzbGVuZ3RoPTA7CisgIGludCBpPTA7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBuZXdyaHM7CisgIC8vIHJocz1udWxsIHdpbGwgcmFpc2UgTnVsbFBvaW50ZXJFeGNlcHRpb24sIGFzIHBlciBDb21wYXJhYmxlIGludGVyZmFjZQorICBpZiAoc2V0Lmxvc3REaWdpdHMpIAorICAgY2hlY2tkaWdpdHMocmhzLHNldC5kaWdpdHMpOworICAvLyBbYWRkIHdpbGwgcmVjaGVjayBpbiBzbG93cGF0aCBjYXNlcyAuLiBidXQgd291bGQgcmVwb3J0IC1yaHNdCisgIGlmICgodGhpcy5pbmQ9PXJocy5pbmQpJih0aGlzLmV4cD09cmhzLmV4cCkpIAorICAgeworICAgIC8qIHNpZ24gJiBleHBvbmVudCB0aGUgc2FtZSBbdmVyeSBjb21tb25dICovCisgICAgdGhpc2xlbmd0aD10aGlzLm1hbnQubGVuZ3RoOworICAgIGlmICh0aGlzbGVuZ3RoPHJocy5tYW50Lmxlbmd0aCkgCisgICAgIHJldHVybiAoYnl0ZSktdGhpcy5pbmQ7CisgICAgaWYgKHRoaXNsZW5ndGg+cmhzLm1hbnQubGVuZ3RoKSAKKyAgICAgcmV0dXJuIHRoaXMuaW5kOworICAgIC8qIGxlbmd0aHMgYXJlIHRoZSBzYW1lOyB3ZSBjYW4gZG8gYSBzdHJhaWdodCBtYW50aXNzYSBjb21wYXJlCisgICAgICAgdW5sZXNzIG1heWJlIHJvdW5kaW5nIFtyb3VuZGluZyBpcyB2ZXJ5IHVudXN1YWxdICovCisgICAgaWYgKCh0aGlzbGVuZ3RoPD1zZXQuZGlnaXRzKXwoc2V0LmRpZ2l0cz09MCkpIAorICAgICB7CisgICAgICB7aW50ICQ2PXRoaXNsZW5ndGg7aT0wO2k6Zm9yKDskNj4wOyQ2LS0saSsrKXsKKyAgICAgICBpZiAodGhpcy5tYW50W2ldPHJocy5tYW50W2ldKSAKKyAgICAgICAgcmV0dXJuIChieXRlKS10aGlzLmluZDsKKyAgICAgICBpZiAodGhpcy5tYW50W2ldPnJocy5tYW50W2ldKSAKKyAgICAgICAgcmV0dXJuIHRoaXMuaW5kOworICAgICAgIH0KKyAgICAgIH0vKmkqLworICAgICAgcmV0dXJuIDA7IC8vIGlkZW50aWNhbAorICAgICB9CisgICAvKiBkcm9wIHRocm91Z2ggZm9yIGZ1bGwgY29tcGFyaXNvbiAqLworICAgfQorICBlbHNlIAorICAgeworICAgIC8qIE1vcmUgZmFzdHBhdGhzIHBvc3NpYmxlICovCisgICAgaWYgKHRoaXMuaW5kPHJocy5pbmQpIAorICAgICByZXR1cm4gLTE7CisgICAgaWYgKHRoaXMuaW5kPnJocy5pbmQpIAorICAgICByZXR1cm4gMTsKKyAgIH0KKyAgLyogY2Fycnkgb3V0IGEgc3VidHJhY3QgdG8gbWFrZSB0aGUgY29tcGFyaXNvbiAqLworICBuZXdyaHM9Y2xvbmUocmhzKTsgLy8gc2FmZSBjb3B5CisgIG5ld3Jocy5pbmQ9KGJ5dGUpLW5ld3Jocy5pbmQ7IC8vIHByZXBhcmUgdG8gc3VidHJhY3QKKyAgcmV0dXJuIHRoaXMuYWRkKG5ld3JocyxzZXQpLmluZDsgLy8gYWRkLCBhbmQgcmV0dXJuIHNpZ24gb2YgcmVzdWx0CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIDxjb2RlPnRoaXMvcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI2RpdmlkZShCaWdEZWNpbWFsLCBpbnQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIHJvdW5kaW5nIG1vZGUgaXMge0BsaW5rIE1hdGhDb250ZXh0I1JPVU5EX0hBTEZfVVB9LgorICAqCisgICogVGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoZSByZXN1bHQgd2lsbCBiZQorICAqIHRoZSBzYW1lIGFzIHRoZSBzY2FsZSBvZiB0aGUgY3VycmVudCBvYmplY3QsIGlmIHRoZSBsYXR0ZXIgd2VyZQorICAqIGZvcm1hdHRlZCB3aXRob3V0IGV4cG9uZW50aWFsIG5vdGF0aW9uLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGRpdmlzaW9uLgorICAqIEByZXR1cm4gICAgIEEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzL3JoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgemVyby4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRpdmlkZShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzKXsKKyAgcmV0dXJuIHRoaXMuZG9kaXZpZGUoJ0QnLHJocyxwbGFpbk1DLC0xKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogPGNvZGU+dGhpcy9yaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljIGFuZCBhCisgICogcm91bmRpbmcgbW9kZS4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI2RpdmlkZShCaWdEZWNpbWFsLCBpbnQsIGludCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgc2Vjb25kIHBhcmFtZXRlciBpcyA8Y29kZT50aGlzLnNjYWxlKCk8L2NvZGU+LCBhbmQKKyAgKiB0aGUgdGhpcmQgaXMgPGNvZGU+cm91bmQ8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSBvZiB0aGUgcmVzdWx0IHdpbGwKKyAgKiB0aGVyZWZvcmUgYmUgdGhlIHNhbWUgYXMgdGhlIHNjYWxlIG9mIHRoZSBjdXJyZW50IG9iamVjdCwgaWYgdGhlCisgICogbGF0dGVyIHdlcmUgZm9ybWF0dGVkIHdpdGhvdXQgZXhwb25lbnRpYWwgbm90YXRpb24uCisgICogPHA+CisgICogQHBhcmFtICByaHMgICBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICAgIHRoZSBkaXZpc2lvbi4KKyAgKiBAcGFyYW0gIHJvdW5kIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHJvdW5kaW5nIG1vZGUgdG8gYmUgdXNlZCBmb3IKKyAgKiAgICAgICAgICAgICAgIHRoZSBkaXZpc2lvbiAoc2VlIHRoZSB7QGxpbmsgTWF0aENvbnRleHR9IGNsYXNzKS4KKyAgKiBAcmV0dXJuICAgICAgIEEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICAgIDxjb2RlPnRoaXMvcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYworICAqICAgICAgICAgICAgICAgYW5kIHRoZSBzcGVjaWZpZWQgcm91bmRpbmcgbW9kZS4KKyAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiA8Y29kZT5yb3VuZDwvY29kZT4gaXMgbm90IGEKKyAgKiAgICAgICAgICAgICAgIHZhbGlkIHJvdW5kaW5nIG1vZGUuCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgemVyby4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cm91bmQ8L2NvZGU+IGlzIHtAbGluaworICAqICAgICAgICAgICAgICAgTWF0aENvbnRleHQjUk9VTkRfVU5ORUNFU1NBUll9IGFuZAorICAqICAgICAgICAgICAgICAgPGNvZGU+dGhpcy5zY2FsZSgpPC9jb2RlPiBpcyBpbnN1ZmZpY2llbnQgdG8KKyAgKiAgICAgICAgICAgICAgIHJlcHJlc2VudCB0aGUgcmVzdWx0IGV4YWN0bHkuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkaXZpZGUoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxpbnQgcm91bmQpeworICBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldDsKKyAgc2V0PW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxyb3VuZCk7IC8vIFtjaGVja3Mgcm91bmQsIHRvb10KKyAgcmV0dXJuIHRoaXMuZG9kaXZpZGUoJ0QnLHJocyxzZXQsLTEpOyAvLyB0YWtlIHNjYWxlIGZyb20gTEhTCisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIDxjb2RlPnRoaXMvcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYyBhbmQgYQorICAqIGdpdmVuIHNjYWxlIGFuZCByb3VuZGluZyBtb2RlLgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjZGl2aWRlKEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0sCisgICogd2hlcmUgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIDxjb2RlPnJoczwvY29kZT4sCisgICogPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOLCBmYWxzZSwgcm91bmQpPC9jb2RlPiwKKyAgKiBleGNlcHQgdGhhdCB0aGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgdG8gYmUgdXNlZAorICAqIGZvciB0aGUgcmVzdWx0IGlzIGV4cGxpY2l0IHJhdGhlciB0aGFuIGJlaW5nIHRha2VuIGZyb20KKyAgKiA8Y29kZT50aGlzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhlIHJlc3VsdCB3aWxsIGJlCisgICogdGhlIHNhbWUgYXMgdGhlIHNjYWxlIG9mIHRoZSBjdXJyZW50IG9iamVjdCwgaWYgdGhlIGxhdHRlciB3ZXJlCisgICogZm9ybWF0dGVkIHdpdGhvdXQgZXhwb25lbnRpYWwgbm90YXRpb24uCisgICogPHA+CisgICogQHBhcmFtICByaHMgICBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICAgIHRoZSBkaXZpc2lvbi4KKyAgKiBAcGFyYW0gIHNjYWxlIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNjYWxlIHRvIGJlIHVzZWQgZm9yIHRoZSByZXN1bHQuCisgICogQHBhcmFtICByb3VuZCBUaGUgPGNvZGU+aW50PC9jb2RlPiByb3VuZGluZyBtb2RlIHRvIGJlIHVzZWQgZm9yCisgICogICAgICAgICAgICAgICB0aGUgZGl2aXNpb24gKHNlZSB0aGUge0BsaW5rIE1hdGhDb250ZXh0fSBjbGFzcykuCisgICogQHJldHVybiAgICAgICBBIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgICA8Y29kZT50aGlzL3JoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMKKyAgKiAgICAgICAgICAgICAgIGFuZCB0aGUgc3BlY2lmaWVkIHJvdW5kaW5nIG1vZGUuCisgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgPGNvZGU+cm91bmQ8L2NvZGU+IGlzIG5vdCBhCisgICogICAgICAgICAgICAgICB2YWxpZCByb3VuZGluZyBtb2RlLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGlzIHplcm8uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnNjYWxlPC9jb2RlPiBpcyBuZWdhdGl2ZS4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cm91bmQ8L2NvZGU+IGlzIHtAbGluaworICAqICAgICAgICAgICAgICAgTWF0aENvbnRleHQjUk9VTkRfVU5ORUNFU1NBUll9IGFuZCA8Y29kZT5zY2FsZTwvY29kZT4KKyAgKiAgICAgICAgICAgICAgIGlzIGluc3VmZmljaWVudCB0byByZXByZXNlbnQgdGhlIHJlc3VsdCBleGFjdGx5LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGl2aWRlKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMsaW50IHNjYWxlLGludCByb3VuZCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0OworICBpZiAoc2NhbGU8MCkgCisgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIk5lZ2F0aXZlIHNjYWxlOiIrIiAiK3NjYWxlKTsKKyAgc2V0PW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KDAsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTixmYWxzZSxyb3VuZCk7IC8vIFtjaGVja3Mgcm91bmRdCisgIHJldHVybiB0aGlzLmRvZGl2aWRlKCdEJyxyaHMsc2V0LHNjYWxlKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIDxjb2RlPnRoaXMvcmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJbXBsZW1lbnRzIHRoZSBkaXZpc2lvbiAoPGI+PGNvZGU+LzwvY29kZT48L2I+KSBvcGVyYXRvcgorICAqIChhcyBkZWZpbmVkIGluIHRoZSBkZWNpbWFsIGRvY3VtZW50YXRpb24sIHNlZSB7QGxpbmsgQmlnRGVjaW1hbAorICAqIGNsYXNzIGhlYWRlcn0pLAorICAqIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgZGl2aXNpb24uCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzL3JoczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgemVyby4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRpdmlkZShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgcmV0dXJuIHRoaXMuZG9kaXZpZGUoJ0QnLHJocyxzZXQsLTEpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIGludGVnZXIKKyAgKiBwYXJ0IG9mIDxjb2RlPnRoaXMvcmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI2RpdmlkZUludGVnZXIoQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIGNvbnRleHQgaXMgPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgaW50ZWdlciBkaXZpc2lvbi4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSBpbnRlZ2VyCisgICogICAgICAgICAgICAgcGFydCBvZiA8Y29kZT50aGlzL3JoczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgemVyby4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGRpdmlkZUludGVnZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIC8vIHNjYWxlIDAgdG8gZHJvcCAuMDAwIHdoZW4gcGxhaW4KKyAgcmV0dXJuIHRoaXMuZG9kaXZpZGUoJ0knLHJocyxwbGFpbk1DLDApOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIGludGVnZXIKKyAgKiBwYXJ0IG9mIDxjb2RlPnRoaXMvcmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJbXBsZW1lbnRzIHRoZSBpbnRlZ2VyIGRpdmlzaW9uIG9wZXJhdG9yCisgICogKGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbiwgc2VlIHtAbGluayBCaWdEZWNpbWFsCisgICogY2xhc3MgaGVhZGVyfSksCisgICogYW5kIHJldHVybnMgdGhlIHJlc3VsdCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBpbnRlZ2VyIGRpdmlzaW9uLgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSBpbnRlZ2VyCisgICogICAgICAgICAgICAgcGFydCBvZiA8Y29kZT50aGlzL3JoczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gaXMgemVyby4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgdGhlIHJlc3VsdCB3aWxsIG5vdCBmaXQgaW4gdGhlCisgICogICAgICAgICAgICAgbnVtYmVyIG9mIGRpZ2l0cyBzcGVjaWZpZWQgZm9yIHRoZSBjb250ZXh0LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGl2aWRlSW50ZWdlcihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgLy8gc2NhbGUgMCB0byBkcm9wIC4wMDAgd2hlbiBwbGFpbgorICByZXR1cm4gdGhpcy5kb2RpdmlkZSgnSScscmhzLHNldCwwKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogdGhlIG1heGltdW0gb2YgPGNvZGU+dGhpczwvY29kZT4gYW5kIDxjb2RlPnJoczwvY29kZT4uCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNtYXgoQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIGNvbnRleHQgaXMgPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgY29tcGFyaXNvbi4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgdGhlIG1heGltdW0gb2YgPGNvZGU+dGhpczwvY29kZT4gYW5kIDxjb2RlPnJoczwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBtYXgoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIHJldHVybiB0aGlzLm1heChyaHMscGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIHRoZSBtYXhpbXVtIG9mIDxjb2RlPnRoaXM8L2NvZGU+IGFuZCA8Y29kZT5yaHM8L2NvZGU+LgorICAqIDxwPgorICAqIFJldHVybnMgdGhlIGxhcmdlciBvZiB0aGUgY3VycmVudCBvYmplY3QgYW5kIHRoZSBmaXJzdCBwYXJhbWV0ZXIuCisgICogPHA+CisgICogSWYgY2FsbGluZyB0aGUge0BsaW5rICNjb21wYXJlVG8oQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSBtZXRob2QKKyAgKiB3aXRoIHRoZSBzYW1lIHBhcmFtZXRlcnMgd291bGQgcmV0dXJuIDxjb2RlPjE8L2NvZGU+IG9yCisgICogPGNvZGU+MDwvY29kZT4sIHRoZW4gdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZQorICAqIHtAbGluayAjcGx1cyhNYXRoQ29udGV4dCl9IG1ldGhvZCBvbiB0aGUgY3VycmVudCBvYmplY3QgKHVzaW5nIHRoZQorICAqIHNhbWUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHBhcmFtZXRlcikgaXMgcmV0dXJuZWQuCisgICogT3RoZXJ3aXNlLCB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIHtAbGluayAjcGx1cyhNYXRoQ29udGV4dCl9CisgICogbWV0aG9kIG9uIHRoZSBmaXJzdCBwYXJhbWV0ZXIgb2JqZWN0ICh1c2luZyB0aGUgc2FtZQorICAqIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIpIGlzIHJldHVybmVkLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGNvbXBhcmlzb24uCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICB0aGUgbWF4aW11bSBvZiA8Y29kZT50aGlzPC9jb2RlPiBhbmQgPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG1heChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgaWYgKCh0aGlzLmNvbXBhcmVUbyhyaHMsc2V0KSk+PTApIAorICAgcmV0dXJuIHRoaXMucGx1cyhzZXQpOworICBlbHNlIAorICAgcmV0dXJuIHJocy5wbHVzKHNldCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIHRoZSBtaW5pbXVtIG9mIDxjb2RlPnRoaXM8L2NvZGU+IGFuZCA8Y29kZT5yaHM8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjbWluKEJpZ0RlY2ltYWwsIE1hdGhDb250ZXh0KX0sCisgICogd2hlcmUgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIDxjb2RlPnJoczwvY29kZT4sCisgICogYW5kIHRoZSBjb250ZXh0IGlzIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTik8L2NvZGU+LgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGNvbXBhcmlzb24uCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIHRoZSBtaW5pbXVtIG9mIDxjb2RlPnRoaXM8L2NvZGU+IGFuZCA8Y29kZT5yaHM8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbWluKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMpeworICByZXR1cm4gdGhpcy5taW4ocmhzLHBsYWluTUMpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiB0aGUgbWluaW11bSBvZiA8Y29kZT50aGlzPC9jb2RlPiBhbmQgPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBSZXR1cm5zIHRoZSBzbWFsbGVyIG9mIHRoZSBjdXJyZW50IG9iamVjdCBhbmQgdGhlIGZpcnN0IHBhcmFtZXRlci4KKyAgKiA8cD4KKyAgKiBJZiBjYWxsaW5nIHRoZSB7QGxpbmsgI2NvbXBhcmVUbyhCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9IG1ldGhvZAorICAqIHdpdGggdGhlIHNhbWUgcGFyYW1ldGVycyB3b3VsZCByZXR1cm4gPGNvZGU+LTE8L2NvZGU+IG9yCisgICogPGNvZGU+MDwvY29kZT4sIHRoZW4gdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZQorICAqIHtAbGluayAjcGx1cyhNYXRoQ29udGV4dCl9IG1ldGhvZCBvbiB0aGUgY3VycmVudCBvYmplY3QgKHVzaW5nIHRoZQorICAqIHNhbWUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IHBhcmFtZXRlcikgaXMgcmV0dXJuZWQuCisgICogT3RoZXJ3aXNlLCB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIHtAbGluayAjcGx1cyhNYXRoQ29udGV4dCl9CisgICogbWV0aG9kIG9uIHRoZSBmaXJzdCBwYXJhbWV0ZXIgb2JqZWN0ICh1c2luZyB0aGUgc2FtZQorICAqIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBwYXJhbWV0ZXIpIGlzIHJldHVybmVkLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGNvbXBhcmlzb24uCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICB0aGUgbWluaW11bSBvZiA8Y29kZT50aGlzPC9jb2RlPiBhbmQgPGNvZGU+cmhzPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG1pbihjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgaWYgKCh0aGlzLmNvbXBhcmVUbyhyaHMsc2V0KSk8PTApIAorICAgcmV0dXJuIHRoaXMucGx1cyhzZXQpOworICBlbHNlIAorICAgcmV0dXJuIHJocy5wbHVzKHNldCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqIDxjb2RlPnRoaXMqcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI2FkZChCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgY29udGV4dCBpcyA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhlIHJlc3VsdCB3aWxsIGJlCisgICogdGhlIHN1bSBvZiB0aGUgc2NhbGVzIG9mIHRoZSBvcGVyYW5kcywgaWYgdGhleSB3ZXJlIGZvcm1hdHRlZAorICAqIHdpdGhvdXQgZXhwb25lbnRpYWwgbm90YXRpb24uCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgbXVsdGlwbGljYXRpb24uCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcworICAqICAgICAgICAgICAgIDxjb2RlPnRoaXMqcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG11bHRpcGx5KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMpeworICByZXR1cm4gdGhpcy5tdWx0aXBseShyaHMscGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyA8Y29kZT50aGlzKnJoczwvY29kZT4uCisgICogPHA+CisgICogSW1wbGVtZW50cyB0aGUgbXVsdGlwbGljYXRpb24gKDxiPjxjb2RlPio8L2NvZGU+PC9iPikgb3BlcmF0b3IKKyAgKiAoYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uLCBzZWUge0BsaW5rIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBoZWFkZXJ9KSwKKyAgKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIG11bHRpcGxpY2F0aW9uLgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpcypyaHM8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbXVsdGlwbHkoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsaHM7CisgIGludCBwYWRkaW5nOworICBpbnQgcmVxZGlnOworICBieXRlIG11bHRlcltdPW51bGw7CisgIGJ5dGUgbXVsdGFuZFtdPW51bGw7CisgIGludCBtdWx0YW5kbGVuOworICBpbnQgYWNjbGVuPTA7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM7CisgIGJ5dGUgYWNjW107CisgIGludCBuPTA7CisgIGJ5dGUgbXVsdD0wOworICBpZiAoc2V0Lmxvc3REaWdpdHMpIAorICAgY2hlY2tkaWdpdHMocmhzLHNldC5kaWdpdHMpOworICBsaHM9dGhpczsgLy8gbmFtZSBmb3IgY2xhcml0eSBhbmQgcHJveHkKKyAgCisgIC8qIFByZXBhcmUgbnVtYmVycyAodHJ1bmNhdGUsIHVubGVzcyB1bmxpbWl0ZWQgcHJlY2lzaW9uKSAqLworICBwYWRkaW5nPTA7IC8vIHRyYWlsaW5nIDAncyB0byBhZGQKKyAgcmVxZGlnPXNldC5kaWdpdHM7IC8vIGxvY2FsIGNvcHkKKyAgaWYgKHJlcWRpZz4wKSAKKyAgIHsKKyAgICBpZiAobGhzLm1hbnQubGVuZ3RoPnJlcWRpZykgCisgICAgIGxocz1jbG9uZShsaHMpLnJvdW5kKHNldCk7CisgICAgaWYgKHJocy5tYW50Lmxlbmd0aD5yZXFkaWcpIAorICAgICByaHM9Y2xvbmUocmhzKS5yb3VuZChzZXQpOworICAgLy8gW3dlIGNvdWxkIHJldXNlIHRoZSBuZXcgTEhTIGZvciByZXN1bHQgaW4gdGhpcyBjYXNlXQorICAgfQorICBlbHNlIAorICAgey8qIHVubGltaXRlZCAqLworICAgIC8vIGZpeGVkIHBvaW50IGFyaXRobWV0aWMgd2lsbCB3YW50IGV2ZXJ5IHRyYWlsaW5nIDA7IHdlIGFkZCB0aGVzZQorICAgIC8vIGFmdGVyIHRoZSBjYWxjdWxhdGlvbiByYXRoZXIgdGhhbiBiZWZvcmUsIGZvciBzcGVlZC4KKyAgICBpZiAobGhzLmV4cD4wKSAKKyAgICAgcGFkZGluZz1wYWRkaW5nK2xocy5leHA7CisgICAgaWYgKHJocy5leHA+MCkgCisgICAgIHBhZGRpbmc9cGFkZGluZytyaHMuZXhwOworICAgfQorICAKKyAgLy8gRm9yIGJlc3Qgc3BlZWQsIGFzIGluIERNU1JDTiwgd2UgdXNlIHRoZSBzaG9ydGVyIG51bWJlciBhcyB0aGUKKyAgLy8gbXVsdGlwbGllciBhbmQgdGhlIGxvbmdlciBhcyB0aGUgbXVsdGlwbGljYW5kLgorICAvLyAxOTk5LjEyLjIyOiBXZSB1c2VkIHRvIHNwZWNpYWwgY2FzZSB3aGVuIHRoZSByZXN1bHQgd291bGQgZml0IGluCisgIC8vICAgICAgICAgICAgIGEgbG9uZywgYnV0IHdpdGggSmF2YSAxLjMgdGhpcyBnYXZlIG5vIGFkdmFudGFnZS4KKyAgaWYgKGxocy5tYW50Lmxlbmd0aDxyaHMubWFudC5sZW5ndGgpIAorICAgeworICAgIG11bHRlcj1saHMubWFudDsKKyAgICBtdWx0YW5kPXJocy5tYW50OworICAgfQorICBlbHNlIAorICAgeworICAgIG11bHRlcj1yaHMubWFudDsKKyAgICBtdWx0YW5kPWxocy5tYW50OworICAgfQorICAKKyAgLyogQ2FsY3VsYXRlIGhvdyBsb25nIHJlc3VsdCBieXRlIGFycmF5IHdpbGwgYmUgKi8KKyAgbXVsdGFuZGxlbj0obXVsdGVyLmxlbmd0aCttdWx0YW5kLmxlbmd0aCktMTsgLy8gZWZmZWN0aXZlIGxlbmd0aAorICAvLyBvcHRpbWl6ZSBmb3IgNzUlIG9mIHRoZSBjYXNlcyB3aGVyZSBhIGNhcnJ5IGlzIGV4cGVjdGVkLi4uCisgIGlmICgobXVsdGVyWzBdKm11bHRhbmRbMF0pPjkpIAorICAgYWNjbGVuPW11bHRhbmRsZW4rMTsKKyAgZWxzZSAKKyAgIGFjY2xlbj1tdWx0YW5kbGVuOworICAKKyAgLyogTm93IHRoZSBtYWluIGxvbmcgbXVsdGlwbGljYXRpb24gbG9vcCAqLworICByZXM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgpOyAvLyB3aGVyZSB3ZSdsbCBidWlsZCByZXN1bHQKKyAgYWNjPW5ldyBieXRlW2FjY2xlbl07IC8vIGFjY3VtdWxhdG9yLCBhbGwgemVyb3MKKyAgLy8gMTk5OC4wNy4wMTogY2FsY3VsYXRlIGZyb20gbGVmdCB0byByaWdodCBzbyB0aGF0IGFjY3VtdWxhdG9yIGdvZXMKKyAgLy8gdG8gbGlrZWx5IGZpbmFsIGxlbmd0aCBvbiBmaXJzdCBhZGRpdGlvbjsgdGhpcyBhdm9pZHMgYSBvbmUtZGlnaXQKKyAgLy8gZXh0ZW5zaW9uIChhbmQgb2JqZWN0IGFsbG9jYXRpb24pIGVhY2ggdGltZSBhcm91bmQgdGhlIGxvb3AuCisgIC8vIEluaXRpYWwgbnVtYmVyIHRoZXJlZm9yZSBoYXMgdmlydHVhbCB6ZXJvcyBhZGRlZCB0byByaWdodC4KKyAge2ludCAkNz1tdWx0ZXIubGVuZ3RoO249MDtuOmZvcig7JDc+MDskNy0tLG4rKyl7CisgICBtdWx0PW11bHRlcltuXTsKKyAgIGlmIChtdWx0IT0wKSAKKyAgICB7IC8vIFtvcHRpbWl6YXRpb25dCisgICAgIC8vIGFjY3VtdWxhdGUgW2FjY3VtdWxhdG9yIGlzIHJldXNhYmxlIGFycmF5XQorICAgICBhY2M9Ynl0ZWFkZHN1YihhY2MsYWNjLmxlbmd0aCxtdWx0YW5kLG11bHRhbmRsZW4sbXVsdCx0cnVlKTsKKyAgICB9CisgICAvLyBkaXZpZGUgbXVsdGlwbGljYW5kIGJ5IDEwIGZvciBuZXh0IGRpZ2l0IHRvIHJpZ2h0CisgICBtdWx0YW5kbGVuLS07IC8vICd2aXJ0dWFsIGxlbmd0aCcKKyAgIH0KKyAgfS8qbiovCisgIAorICByZXMuaW5kPShieXRlKShsaHMuaW5kKnJocy5pbmQpOyAvLyBmaW5hbCBzaWduCisgIHJlcy5leHA9KGxocy5leHArcmhzLmV4cCktcGFkZGluZzsgLy8gZmluYWwgZXhwb25lbnQKKyAgLy8gW292ZXJmbG93IGlzIGNoZWNrZWQgYnkgZmluaXNoXQorICAKKyAgLyogYWRkIHRyYWlsaW5nIHplcm9zIHRvIHRoZSByZXN1bHQsIGlmIG5lY2Vzc2FyeSAqLworICBpZiAocGFkZGluZz09MCkgCisgICByZXMubWFudD1hY2M7CisgIGVsc2UgCisgICByZXMubWFudD1leHRlbmQoYWNjLGFjYy5sZW5ndGgrcGFkZGluZyk7IC8vIGFkZCB0cmFpbGluZyAwcworICByZXR1cm4gcmVzLmZpbmlzaChzZXQsZmFsc2UpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiA8Y29kZT4tdGhpczwvY29kZT4uCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNuZWdhdGUoTWF0aENvbnRleHQpfSwgd2hlcmUgdGhlIGNvbnRleHQgaXMKKyAgKiA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhlIHJlc3VsdCB3aWxsIGJlCisgICogYmUgPGNvZGU+dGhpcy5zY2FsZSgpPC9jb2RlPgorICAqCisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgIDxjb2RlPi10aGlzPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG5lZ2F0ZSgpeworICByZXR1cm4gdGhpcy5uZWdhdGUocGxhaW5NQyk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyA8Y29kZT4tdGhpczwvY29kZT4uCisgICogPHA+CisgICogSW1wbGVtZW50cyB0aGUgbmVnYXRpb24gKFByZWZpeCA8Yj48Y29kZT4tPC9jb2RlPjwvYj4pIG9wZXJhdG9yCisgICogKGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbiwgc2VlIHtAbGluayBCaWdEZWNpbWFsCisgICogY2xhc3MgaGVhZGVyfSksCisgICogYW5kIHJldHVybnMgdGhlIHJlc3VsdCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKgorICAqIEBwYXJhbSAgc2V0IFRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gYXJpdGhtZXRpYyBzZXR0aW5ncy4KKyAgKiBAcmV0dXJuIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgIDxjb2RlPi10aGlzPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG5lZ2F0ZShjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZXM7CisgIC8vIE9yaWdpbmFsbHkgY2FsbGVkIG1pbnVzKCksIGNoYW5nZWQgdG8gbWF0Y2hlZCBKYXZhIHByZWNlZGVudHMKKyAgLy8gVGhpcyBzaW1wbHkgY2xvbmVzLCBmbGlwcyB0aGUgc2lnbiwgYW5kIHBvc3NpYmx5IHJvdW5kcworICBpZiAoc2V0Lmxvc3REaWdpdHMpIAorICAgY2hlY2tkaWdpdHMoKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCludWxsLHNldC5kaWdpdHMpOworICByZXM9Y2xvbmUodGhpcyk7IC8vIHNhZmUgY29weQorICByZXMuaW5kPShieXRlKS1yZXMuaW5kOworICByZXR1cm4gcmVzLmZpbmlzaChzZXQsZmFsc2UpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiA8Y29kZT4rdGhpczwvY29kZT4uCisgICogTm90ZSB0aGF0IDxjb2RlPnRoaXM8L2NvZGU+IGlzIG5vdCBuZWNlc3NhcmlseSBhCisgICogcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4sIGJ1dCB0aGUgcmVzdWx0IHdpbGwgYWx3YXlzIGJlLgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjcGx1cyhNYXRoQ29udGV4dCl9LCB3aGVyZSB0aGUgY29udGV4dCBpcworICAqIDxjb2RlPm5ldyBNYXRoQ29udGV4dCgwLCBNYXRoQ29udGV4dC5QTEFJTik8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlIHNjYWxlKSBvZiB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgKiBiZSA8Y29kZT50aGlzLnNjYWxlKCk8L2NvZGU+CisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgIDxjb2RlPit0aGlzPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHBsdXMoKXsKKyAgcmV0dXJuIHRoaXMucGx1cyhwbGFpbk1DKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogPGNvZGU+K3RoaXM8L2NvZGU+LgorICAqIDxwPgorICAqIEltcGxlbWVudHMgdGhlIHBsdXMgKFByZWZpeCA8Yj48Y29kZT4rPC9jb2RlPjwvYj4pIG9wZXJhdG9yCisgICogKGFzIGRlZmluZWQgaW4gdGhlIGRlY2ltYWwgZG9jdW1lbnRhdGlvbiwgc2VlIHtAbGluayBCaWdEZWNpbWFsCisgICogY2xhc3MgaGVhZGVyfSksCisgICogYW5kIHJldHVybnMgdGhlIHJlc3VsdCBhcyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9iamVjdC4KKyAgKiA8cD4KKyAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIHJvdW5kaW5nIG9yIG90aGVyd2lzZSBhcHBseWluZyBhIGNvbnRleHQKKyAgKiB0byBhIGRlY2ltYWwgdmFsdWUuCisgICoKKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICA8Y29kZT4rdGhpczwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBwbHVzKGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgLy8gVGhpcyBjbG9uZXMgYW5kIGZvcmNlcyB0aGUgcmVzdWx0IHRvIHRoZSBuZXcgc2V0dGluZ3MKKyAgLy8gTWF5IHJldHVybiBzYW1lIG9iamVjdAorICBpZiAoc2V0Lmxvc3REaWdpdHMpIAorICAgY2hlY2tkaWdpdHMoKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCludWxsLHNldC5kaWdpdHMpOworICAvLyBPcHRpbWl6YXRpb246IHJldHVybnMgc2FtZSBvYmplY3QgZm9yIHNvbWUgY29tbW9uIGNhc2VzCisgIGlmIChzZXQuZm9ybT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikgCisgICBpZiAodGhpcy5mb3JtPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKSAKKyAgICB7CisgICAgIGlmICh0aGlzLm1hbnQubGVuZ3RoPD1zZXQuZGlnaXRzKSAKKyAgICAgIHJldHVybiB0aGlzOworICAgICBpZiAoc2V0LmRpZ2l0cz09MCkgCisgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgIHJldHVybiBjbG9uZSh0aGlzKS5maW5pc2goc2V0LGZhbHNlKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogPGNvZGU+dGhpcyoqcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI3BvdyhCaWdEZWNpbWFsLCBNYXRoQ29udGV4dCl9LAorICAqIHdoZXJlIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyA8Y29kZT5yaHM8L2NvZGU+LAorICAqIGFuZCB0aGUgY29udGV4dCBpcyA8Y29kZT5uZXcgTWF0aENvbnRleHQoMCwgTWF0aENvbnRleHQuUExBSU4pPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGUgcGFyYW1ldGVyIGlzIHRoZSBwb3dlciB0byB3aGljaCB0aGUgPGNvZGU+dGhpczwvY29kZT4gd2lsbCBiZQorICAqIHJhaXNlZDsgaXQgbXVzdCBiZSBpbiB0aGUgcmFuZ2UgMCB0aHJvdWdoIDk5OTk5OTk5OSwgYW5kIG11c3QKKyAgKiBoYXZlIGEgZGVjaW1hbCBwYXJ0IG9mIHplcm8uICBOb3RlIHRoYXQgdGhlc2UgcmVzdHJpY3Rpb25zIG1heSBiZQorICAqIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZSwgc28gdGhleSBzaG91bGQgbm90IGJlIHVzZWQgYXMgYSB0ZXN0IGZvciBhCisgICogd2hvbGUgbnVtYmVyLgorICAqIDxwPgorICAqIEluIGFkZGl0aW9uLCB0aGUgcG93ZXIgbXVzdCBub3QgYmUgbmVnYXRpdmUsIGFzIG5vCisgICogPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGlzIHVzZWQgYW5kIHNvIHRoZSByZXN1bHQgd291bGQgdGhlbgorICAqIGFsd2F5cyBiZSAwLgorICAqCisgICogQHBhcmFtICByaHMgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiAodGhlIHBvd2VyKS4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpcyoqcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBpcyBvdXQgb2YgcmFuZ2Ugb3IKKyAgKiAgICAgICAgICAgICBpcyBub3QgYSB3aG9sZSBudW1iZXIuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBwb3coY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIHJldHVybiB0aGlzLnBvdyhyaHMscGxhaW5NQyk7CisgIH0KKyAvLyBUaGUgbmFtZSBmb3IgdGhpcyBtZXRob2QgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHByZWNlZGVudCBzZXQgYnkgdGhlCisgLy8gQmlnSW50ZWdlciBhbmQgTWF0aCBjbGFzc2VzLgorIAorIC8qKgorICAqIFJldHVybnMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyA8Y29kZT50aGlzKipyaHM8L2NvZGU+LgorICAqIDxwPgorICAqIEltcGxlbWVudHMgdGhlIHBvd2VyICg8Yj48Y29kZT4qKjwvY29kZT48L2I+KSBvcGVyYXRvcgorICAqIChhcyBkZWZpbmVkIGluIHRoZSBkZWNpbWFsIGRvY3VtZW50YXRpb24sIHNlZSB7QGxpbmsgQmlnRGVjaW1hbAorICAqIGNsYXNzIGhlYWRlcn0pLAorICAqIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICogPHA+CisgICogVGhlIGZpcnN0IHBhcmFtZXRlciBpcyB0aGUgcG93ZXIgdG8gd2hpY2ggdGhlIDxjb2RlPnRoaXM8L2NvZGU+CisgICogd2lsbCBiZSByYWlzZWQ7IGl0IG11c3QgYmUgaW4gdGhlIHJhbmdlIC05OTk5OTk5OTkgdGhyb3VnaAorICAqIDk5OTk5OTk5OSwgYW5kIG11c3QgaGF2ZSBhIGRlY2ltYWwgcGFydCBvZiB6ZXJvLiAgTm90ZSB0aGF0IHRoZXNlCisgICogcmVzdHJpY3Rpb25zIG1heSBiZSByZW1vdmVkIGluIHRoZSBmdXR1cmUsIHNvIHRoZXkgc2hvdWxkIG5vdCBiZQorICAqIHVzZWQgYXMgYSB0ZXN0IGZvciBhIHdob2xlIG51bWJlci4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgPGNvZGU+ZGlnaXRzPC9jb2RlPiBzZXR0aW5nIG9mIHRoZSA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4KKyAgKiBwYXJhbWV0ZXIgaXMgMCwgdGhlIHBvd2VyIG11c3QgYmUgemVybyBvciBwb3NpdGl2ZS4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gKHRoZSBwb3dlcikuCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzKipyaHM8L2NvZGU+LgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGlzIG91dCBvZiByYW5nZSBvcgorICAqICAgICAgICAgICAgIGlzIG5vdCBhIHdob2xlIG51bWJlci4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHBvdyhjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgaW50IG47CisgIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBsaHM7CisgIGludCByZXFkaWc7CisgIGludCB3b3JrZGlnaXRzPTA7CisgIGludCBMPTA7CisgIGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgd29ya3NldDsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlczsKKyAgYm9vbGVhbiBzZWVuYml0OworICBpbnQgaT0wOworICBpZiAoc2V0Lmxvc3REaWdpdHMpIAorICAgY2hlY2tkaWdpdHMocmhzLHNldC5kaWdpdHMpOworICBuPXJocy5pbnRjaGVjayhNaW5BcmcsTWF4QXJnKTsgLy8gY2hlY2sgUkhTIGJ5IHRoZSBydWxlcworICBsaHM9dGhpczsgLy8gY2xhcmlmaWVkIG5hbWUKKyAgCisgIHJlcWRpZz1zZXQuZGlnaXRzOyAvLyBsb2NhbCBjb3B5IChoZWF2aWx5IHVzZWQpCisgIGlmIChyZXFkaWc9PTApIAorICAgeworICAgIGlmIChyaHMuaW5kPT1pc25lZykgCisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiTmVnYXRpdmUgcG93ZXI6IisiICIrcmhzLnRvU3RyaW5nKCkpOworICAgIHdvcmtkaWdpdHM9MDsKKyAgIH0KKyAgZWxzZSAKKyAgIHsvKiBub24tMCBkaWdpdHMgKi8KKyAgICBpZiAoKHJocy5tYW50Lmxlbmd0aCtyaHMuZXhwKT5yZXFkaWcpIAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIlRvbyBtYW55IGRpZ2l0czoiKyIgIityaHMudG9TdHJpbmcoKSk7CisgICAgCisgICAgLyogUm91bmQgdGhlIGxocyB0byBESUdJVFMgaWYgbmVlZCBiZSAqLworICAgIGlmIChsaHMubWFudC5sZW5ndGg+cmVxZGlnKSAKKyAgICAgbGhzPWNsb25lKGxocykucm91bmQoc2V0KTsKKyAgICAKKyAgICAvKiBMIGZvciBwcmVjaXNpb24gY2FsY3VsYXRpb24gW3NlZSBBTlNJIFgzLjI3NC0xOTk2XSAqLworICAgIEw9cmhzLm1hbnQubGVuZ3RoK3Jocy5leHA7IC8vIGxlbmd0aCB3aXRob3V0IGRlY2ltYWwgemVyb3MvZXhwCisgICAgd29ya2RpZ2l0cz0ocmVxZGlnK0wpKzE7IC8vIGNhbGN1bGF0ZSB0aGUgd29ya2luZyBESUdJVFMKKyAgIH0KKyAgCisgIC8qIENyZWF0ZSBhIGNvcHkgb2Ygc2V0IGZvciB3b3JraW5nIHNldHRpbmdzICovCisgIC8vIE5vdGU6IG5vIG5lZWQgdG8gY2hlY2sgZm9yIGxvc3REaWdpdHMgYWdhaW4uCisgIC8vIDE5OTkuMDcuMTcgTm90ZTogdGhpcyBjb25zdHJ1Y3Rpb24gbXVzdCBmb2xsb3cgUkhTIGNoZWNrCisgIHdvcmtzZXQ9bmV3IGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQod29ya2RpZ2l0cyxzZXQuZm9ybSxmYWxzZSxzZXQucm91bmRpbmdNb2RlKTsKKyAgCisgIHJlcz1PTkU7IC8vIGFjY3VtdWxhdG9yCisgIGlmIChuPT0wKSAKKyAgIHJldHVybiByZXM7IC8vIHgqKjAgPT0gMQorICBpZiAobjwwKSAKKyAgIG49KGludCktbjsgLy8gW3Jocy5pbmQgcmVjb3JkcyB0aGUgc2lnbl0KKyAgc2VlbmJpdD1mYWxzZTsgLy8gc2V0IG9uY2Ugd2UndmUgc2VlbiBhIDEtYml0CisgIHtpPTE7aTpmb3IoOztpKyspeyAvLyBmb3IgZWFjaCBiaXQgW3RvcCBiaXQgaWdub3JlZF0KKyAgIG49bituOyAvLyBzaGlmdCBsZWZ0IDEgYml0CisgICBpZiAobjwwKSAKKyAgICB7IC8vIHRvcCBiaXQgaXMgc2V0CisgICAgIHNlZW5iaXQ9dHJ1ZTsgLy8gT0ssIHdlJ3JlIG9mZgorICAgICByZXM9cmVzLm11bHRpcGx5KGxocyx3b3Jrc2V0KTsgLy8gYWNjPWFjYyp4CisgICAgfQorICAgaWYgKGk9PTMxKSAKKyAgICBicmVhayBpOyAvLyB0aGF0IHdhcyB0aGUgbGFzdCBiaXQKKyAgIGlmICgoIXNlZW5iaXQpKSAKKyAgICBjb250aW51ZSBpOyAvLyB3ZSBkb24ndCBoYXZlIHRvIHNxdWFyZSAxCisgICByZXM9cmVzLm11bHRpcGx5KHJlcyx3b3Jrc2V0KTsgLy8gYWNjPWFjYyphY2MgW3NxdWFyZV0KKyAgIH0KKyAgfS8qaSovIC8vIDMyIGJpdHMKKyAgaWYgKHJocy5pbmQ8MCkgIC8vIHdhcyBhICoqLW4gW2hlbmNlIGRpZ2l0cz4wXQorICAgcmVzPU9ORS5kaXZpZGUocmVzLHdvcmtzZXQpOyAvLyAuLiBzbyBhY2M9MS9hY2MKKyAgcmV0dXJuIHJlcy5maW5pc2goc2V0LHRydWUpOyAvLyByb3VuZCBhbmQgc3RyaXAgW29yaWdpbmFsIGRpZ2l0c10KKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogdGhlIHJlbWFpbmRlciBvZiA8Y29kZT50aGlzL3JoczwvY29kZT4sIHVzaW5nIGZpeGVkIHBvaW50IGFyaXRobWV0aWMuCisgICogPHA+CisgICogVGhlIHNhbWUgYXMge0BsaW5rICNyZW1haW5kZXIoQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIGNvbnRleHQgaXMgPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICogPHA+CisgICogVGhpcyBpcyBub3QgdGhlIG1vZHVsbyBvcGVyYXRvciAtLSB0aGUgcmVzdWx0IG1heSBiZSBuZWdhdGl2ZS4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSByZW1haW5kZXIgb3BlcmF0aW9uLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIHJlbWFpbmRlcgorICAqICAgICAgICAgICAgIG9mIDxjb2RlPnRoaXMvcmhzPC9jb2RlPiwgdXNpbmcgZml4ZWQgcG9pbnQgYXJpdGhtZXRpYy4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+cmhzPC9jb2RlPiBpcyB6ZXJvLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVtYWluZGVyKGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByaHMpeworICByZXR1cm4gdGhpcy5kb2RpdmlkZSgnUicscmhzLHBsYWluTUMsLTEpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgdGhlIHJlbWFpbmRlciBvZgorICAqIDxjb2RlPnRoaXMvcmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJbXBsZW1lbnRzIHRoZSByZW1haW5kZXIgb3BlcmF0b3IKKyAgKiAoYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uLCBzZWUge0BsaW5rIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBoZWFkZXJ9KSwKKyAgKiBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LgorICAqIDxwPgorICAqIFRoaXMgaXMgbm90IHRoZSBtb2R1bG8gb3BlcmF0b3IgLS0gdGhlIHJlc3VsdCBtYXkgYmUgbmVnYXRpdmUuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgcmVtYWluZGVyIG9wZXJhdGlvbi4KKyAgKiBAcGFyYW0gIHNldCBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFyaXRobWV0aWMgc2V0dGluZ3MuCisgICogQHJldHVybiAgICAgQSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB2YWx1ZSBpcyB0aGUgcmVtYWluZGVyCisgICogICAgICAgICAgICAgb2YgPGNvZGU+dGhpcytyaHM8L2NvZGU+LgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5yaHM8L2NvZGU+IGlzIHplcm8uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIHRoZSBpbnRlZ2VyIHBhcnQgb2YgdGhlIHJlc3VsdCB3aWxsCisgICogICAgICAgICAgICAgbm90IGZpdCBpbiB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBzcGVjaWZpZWQgZm9yIHRoZQorICAqICAgICAgICAgICAgIGNvbnRleHQuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByZW1haW5kZXIoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIHJldHVybiB0aGlzLmRvZGl2aWRlKCdSJyxyaHMsc2V0LC0xKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogPGNvZGU+dGhpcy1yaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljLgorICAqIDxwPgorICAqIFRoZSBzYW1lIGFzIHtAbGluayAjc3VidHJhY3QoQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSwKKyAgKiB3aGVyZSB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgPGNvZGU+cmhzPC9jb2RlPiwKKyAgKiBhbmQgdGhlIGNvbnRleHQgaXMgPGNvZGU+bmV3IE1hdGhDb250ZXh0KDAsIE1hdGhDb250ZXh0LlBMQUlOKTwvY29kZT4uCisgICogPHA+CisgICogVGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoZSByZXN1bHQgd2lsbCBiZQorICAqIHRoZSBtYXhpbXVtIG9mIHRoZSBzY2FsZXMgb2YgdGhlIHR3byBvcGVyYW5kcy4KKyAgKgorICAqIEBwYXJhbSAgcmhzIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBzdWJ0cmFjdGlvbi4KKyAgKiBAcmV0dXJuICAgICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzCisgICogICAgICAgICAgICAgPGNvZGU+dGhpcy1yaHM8L2NvZGU+LCB1c2luZyBmaXhlZCBwb2ludCBhcml0aG1ldGljLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgc3VidHJhY3QoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyl7CisgIHJldHVybiB0aGlzLnN1YnRyYWN0KHJocyxwbGFpbk1DKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdob3NlIHZhbHVlIGlzIDxjb2RlPnRoaXMtcmhzPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBJbXBsZW1lbnRzIHRoZSBzdWJ0cmFjdGlvbiAoPGI+PGNvZGU+LTwvY29kZT48L2I+KSBvcGVyYXRvcgorICAqIChhcyBkZWZpbmVkIGluIHRoZSBkZWNpbWFsIGRvY3VtZW50YXRpb24sIHNlZSB7QGxpbmsgQmlnRGVjaW1hbAorICAqIGNsYXNzIGhlYWRlcn0pLAorICAqIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICoKKyAgKiBAcGFyYW0gIHJocyBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZm9yIHRoZSByaWdodCBoYW5kIHNpZGUgb2YKKyAgKiAgICAgICAgICAgICB0aGUgc3VidHJhY3Rpb24uCisgICogQHBhcmFtICBzZXQgVGhlIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBhcml0aG1ldGljIHNldHRpbmdzLgorICAqIEByZXR1cm4gICAgIEEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzLXJoczwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBzdWJ0cmFjdChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmhzLGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQgc2V0KXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG5ld3JoczsKKyAgaWYgKHNldC5sb3N0RGlnaXRzKSAKKyAgIGNoZWNrZGlnaXRzKHJocyxzZXQuZGlnaXRzKTsKKyAgLy8gW2FkZCB3aWxsIHJlY2hlY2sgLi4gYnV0IHdvdWxkIHJlcG9ydCAtcmhzXQorICAvKiBjYXJyeSBvdXQgdGhlIHN1YnRyYWN0aW9uICovCisgIC8vIHdlIGNvdWxkIGZhc3RwYXRoIC0wLCBidXQgaXQgaXMgdG9vIHJhcmUuCisgIG5ld3Jocz1jbG9uZShyaHMpOyAvLyBzYWZlIGNvcHkKKyAgbmV3cmhzLmluZD0oYnl0ZSktbmV3cmhzLmluZDsgLy8gcHJlcGFyZSB0byBzdWJ0cmFjdAorICByZXR1cm4gdGhpcy5hZGQobmV3cmhzLHNldCk7IC8vIGFyaXRobWV0aWMKKyAgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIE90aGVyIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyoqCisgICogQ29udmVydHMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhIDxjb2RlPmJ5dGU8L2NvZGU+LgorICAqIElmIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBoYXMgYSBub24temVybyBkZWNpbWFsIHBhcnQgb3IgaXMKKyAgKiBvdXQgb2YgdGhlIHBvc3NpYmxlIHJhbmdlIGZvciBhIDxjb2RlPmJ5dGU8L2NvZGU+ICg4LWJpdCBzaWduZWQKKyAgKiBpbnRlZ2VyKSByZXN1bHQgdGhlbiBhbiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uCisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+Ynl0ZTwvY29kZT4gZXF1YWwgaW4gdmFsdWUgdG8gPGNvZGU+dGhpczwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnRoaXM8L2NvZGU+IGhhcyBhIG5vbi16ZXJvCisgICogICAgICAgICAgICAgICAgIGRlY2ltYWwgcGFydCwgb3Igd2lsbCBub3QgZml0IGluIGEgPGNvZGU+Ynl0ZTwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGJ5dGUgYnl0ZVZhbHVlRXhhY3QoKXsKKyAgaW50IG51bTsKKyAgbnVtPXRoaXMuaW50VmFsdWVFeGFjdCgpOyAvLyB3aWxsIGNoZWNrIGRlY2ltYWwgcGFydCB0b28KKyAgaWYgKChudW0+MTI3KXwobnVtPCgtMTI4KSkpIAorICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3RoaXMudG9TdHJpbmcoKSk7CisgIHJldHVybiAoYnl0ZSludW07CisgIH0KKworIC8qKgorICAqIENvbXBhcmVzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2l0aCB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlci4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgcGFyYW1ldGVyIGlzIDxjb2RlPm51bGw8L2NvZGU+LCBvciBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgdGhlCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdHlwZSwgYW4gZXhjZXB0aW9uIGlzIHRocm93bi4KKyAgKiBPdGhlcndpc2UsIHRoZSBwYXJhbWV0ZXIgaXMgY2FzdCB0byB0eXBlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+CisgICogYW5kIHRoZSByZXN1bHQgb2YgdGhlIHtAbGluayAjY29tcGFyZVRvKEJpZ0RlY2ltYWwpfSBtZXRob2QsCisgICogdXNpbmcgdGhlIGNhc3QgcGFyYW1ldGVyLCBpcyByZXR1cm5lZC4KKyAgKiA8cD4KKyAgKiBUaGUge0BsaW5rICNjb21wYXJlVG8oQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSBtZXRob2Qgc2hvdWxkIGJlCisgICogdXNlZCB3aGVuIGEgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGlzIG5lZWRlZCBmb3IgdGhlIGNvbXBhcmlzb24uCisgICoKKyAgKiBAcGFyYW0gIHJoc29iaiBUaGUgPGNvZGU+T2JqZWN0PC9jb2RlPiBmb3IgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZgorICAqICAgICAgICAgICAgIHRoZSBjb21wYXJpc29uLgorICAqIEByZXR1cm4gICAgIEFuIDxjb2RlPmludDwvY29kZT4gd2hvc2UgdmFsdWUgaXMgLTEsIDAsIG9yIDEgYXMKKyAgKiAgICAgICAgICAgICA8Y29kZT50aGlzPC9jb2RlPiBpcyBudW1lcmljYWxseSBsZXNzIHRoYW4sIGVxdWFsIHRvLAorICAqICAgICAgICAgICAgIG9yIGdyZWF0ZXIgdGhhbiA8Y29kZT5yaHM8L2NvZGU+LgorICAqIEB0aHJvd3MgQ2xhc3NDYXN0RXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gY2Fubm90IGJlIGNhc3QgdG8KKyAgKiAgICAgICAgICAgICAgICAgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICogQHNlZSAgICAjY29tcGFyZVRvKEJpZ0RlY2ltYWwpCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGludCBjb21wYXJlVG8oamF2YS5sYW5nLk9iamVjdCByaHNvYmopeworICAvLyB0aGUgY2FzdCBpbiB0aGUgbmV4dCBsaW5lIHdpbGwgcmFpc2UgQ2xhc3NDYXN0RXhjZXB0aW9uIGlmIG5lY2Vzc2FyeQorICByZXR1cm4gY29tcGFyZVRvKChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpcmhzb2JqLHBsYWluTUMpOworICB9CisKKyAvKioKKyAgKiBDb252ZXJ0cyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGEgPGNvZGU+ZG91YmxlPC9jb2RlPi4KKyAgKiBJZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgb3V0IG9mIHRoZSBwb3NzaWJsZSByYW5nZSBmb3IgYQorICAqIDxjb2RlPmRvdWJsZTwvY29kZT4gKDY0LWJpdCBzaWduZWQgZmxvYXRpbmcgcG9pbnQpIHJlc3VsdCB0aGVuIGFuCisgICogPGNvZGU+QXJpdGhtZXRpY0V4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLgorICAqIDxwPgorICAqIFRoZSBkb3VibGUgcHJvZHVjZWQgaXMgaWRlbnRpY2FsIHRvIHJlc3VsdCBvZiBleHByZXNzaW5nIHRoZQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGFzIGEgPGNvZGU+U3RyaW5nPC9jb2RlPiBhbmQgdGhlbgorICAqIGNvbnZlcnRpbmcgaXQgdXNpbmcgdGhlIDxjb2RlPkRvdWJsZShTdHJpbmcpPC9jb2RlPiBjb25zdHJ1Y3RvcjsKKyAgKiB0aGlzIGNhbiByZXN1bHQgaW4gdmFsdWVzIG9mIDxjb2RlPkRvdWJsZS5ORUdBVElWRV9JTkZJTklUWTwvY29kZT4KKyAgKiBvciA8Y29kZT5Eb3VibGUuUE9TSVRJVkVfSU5GSU5JVFk8L2NvZGU+LgorICAqCisgICogQHJldHVybiBBIDxjb2RlPmRvdWJsZTwvY29kZT4gY29ycmVzcG9uZGluZyB0byA8Y29kZT50aGlzPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgZG91YmxlIGRvdWJsZVZhbHVlKCl7CisgIC8vIFdlIGdvIHZpYSBhIFN0cmluZyBbYXMgZG9lcyBCaWdEZWNpbWFsIGluIEpESyAxLjJdCisgIC8vIE5leHQgbGluZSBjb3VsZCBwb3NzaWJseSByYWlzZSBOdW1iZXJGb3JtYXRFeGNlcHRpb24KKyAgcmV0dXJuIGphdmEubGFuZy5Eb3VibGUudmFsdWVPZih0aGlzLnRvU3RyaW5nKCkpLmRvdWJsZVZhbHVlKCk7CisgIH0KKworIC8qKgorICAqIENvbXBhcmVzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2l0aCA8Y29kZT5yaHM8L2NvZGU+IGZvcgorICAqIGVxdWFsaXR5LgorICAqIDxwPgorICAqIElmIHRoZSBwYXJhbWV0ZXIgaXMgPGNvZGU+bnVsbDwvY29kZT4sIG9yIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiB0aGUKKyAgKiBCaWdEZWNpbWFsIHR5cGUsIG9yIGlzIG5vdCBleGFjdGx5IGVxdWFsIHRvIHRoZSBjdXJyZW50CisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0LCB0aGVuIDxpPmZhbHNlPC9pPiBpcyByZXR1cm5lZC4KKyAgKiBPdGhlcndpc2UsIDxpPnRydWU8L2k+IGlzIHJldHVybmVkLgorICAqIDxwPgorICAqICJFeGFjdGx5IGVxdWFsIiwgaGVyZSwgbWVhbnMgdGhhdCB0aGUgPGNvZGU+U3RyaW5nPC9jb2RlPgorICAqIHJlcHJlc2VudGF0aW9ucyBvZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gbnVtYmVycyBhcmUKKyAgKiBpZGVudGljYWwgKHRoZXkgaGF2ZSB0aGUgc2FtZSBjaGFyYWN0ZXJzIGluIHRoZSBzYW1lIHNlcXVlbmNlKS4KKyAgKiA8cD4KKyAgKiBUaGUge0BsaW5rICNjb21wYXJlVG8oQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpfSBtZXRob2Qgc2hvdWxkIGJlCisgICogdXNlZCBmb3IgbW9yZSBnZW5lcmFsIGNvbXBhcmlzb25zLgorICAqIEBwYXJhbSAgb2JqIFRoZSA8Y29kZT5PYmplY3Q8L2NvZGU+IGZvciB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mCisgICogICAgICAgICAgICAgdGhlIGNvbXBhcmlzb24uCisgICogQHJldHVybiAgICAgQSA8Y29kZT5ib29sZWFuPC9jb2RlPiB3aG9zZSB2YWx1ZSA8aT50cnVlPC9pPiBpZiBhbmQKKyAgKiAgICAgICAgICAgICBvbmx5IGlmIHRoZSBvcGVyYW5kcyBoYXZlIGlkZW50aWNhbCBzdHJpbmcgcmVwcmVzZW50YXRpb25zLgorICAqIEB0aHJvd3MgQ2xhc3NDYXN0RXhjZXB0aW9uIGlmIDxjb2RlPnJoczwvY29kZT4gY2Fubm90IGJlIGNhc3QgdG8KKyAgKiAgICAgICAgICAgICAgICAgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvYmplY3QuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICogQHNlZSAgICAjY29tcGFyZVRvKE9iamVjdCkKKyAgKiBAc2VlICAgICNjb21wYXJlVG8oQmlnRGVjaW1hbCkKKyAgKiBAc2VlICAgICNjb21wYXJlVG8oQmlnRGVjaW1hbCwgTWF0aENvbnRleHQpCisgICovCisgCisgcHVibGljIGJvb2xlYW4gZXF1YWxzKGphdmEubGFuZy5PYmplY3Qgb2JqKXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJoczsKKyAgaW50IGk9MDsKKyAgY2hhciBsY2FbXT1udWxsOworICBjaGFyIHJjYVtdPW51bGw7CisgIC8vIFdlIGFyZSBlcXVhbCBpZmYgdG9TdHJpbmcgb2YgYm90aCBhcmUgZXhhY3RseSB0aGUgc2FtZQorICBpZiAob2JqPT1udWxsKSAKKyAgIHJldHVybiBmYWxzZTsgLy8gbm90IGVxdWFsCisgIGlmICgoISgoKG9iaiBpbnN0YW5jZW9mIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCkpKSkpIAorICAgcmV0dXJuIGZhbHNlOyAvLyBub3QgYSBkZWNpbWFsCisgIHJocz0oY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKW9iajsgLy8gY2FzdDsgd2Uga25vdyBpdCB3aWxsIHdvcmsKKyAgaWYgKHRoaXMuaW5kIT1yaHMuaW5kKSAKKyAgIHJldHVybiBmYWxzZTsgLy8gZGlmZmVyZW50IHNpZ25zIG5ldmVyIG1hdGNoCisgIGlmICgoKHRoaXMubWFudC5sZW5ndGg9PXJocy5tYW50Lmxlbmd0aCkmKHRoaXMuZXhwPT1yaHMuZXhwKSkmKHRoaXMuZm9ybT09cmhzLmZvcm0pKSAKKyAgIAorICAgeyAvLyBtYW50aXNzYXMgc2F5IGFsbAorICAgIC8vIGhlcmUgd2l0aCBlcXVhbC1sZW5ndGggYnl0ZSBhcnJheXMgdG8gY29tcGFyZQorICAgIHtpbnQgJDg9dGhpcy5tYW50Lmxlbmd0aDtpPTA7aTpmb3IoOyQ4PjA7JDgtLSxpKyspeworICAgICBpZiAodGhpcy5tYW50W2ldIT1yaHMubWFudFtpXSkgCisgICAgICByZXR1cm4gZmFsc2U7CisgICAgIH0KKyAgICB9LyppKi8KKyAgIH0KKyAgZWxzZSAKKyAgIHsgLy8gbmVlZCBwcm9wZXIgbGF5b3V0CisgICAgbGNhPXRoaXMubGF5b3V0KCk7IC8vIGxheW91dCB0byBjaGFyYWN0ZXIgYXJyYXkKKyAgICByY2E9cmhzLmxheW91dCgpOworICAgIGlmIChsY2EubGVuZ3RoIT1yY2EubGVuZ3RoKSAKKyAgICAgcmV0dXJuIGZhbHNlOyAvLyBtaXNtYXRjaAorICAgIC8vIGhlcmUgd2l0aCBlcXVhbC1sZW5ndGggY2hhcmFjdGVyIGFycmF5cyB0byBjb21wYXJlCisgICAge2ludCAkOT1sY2EubGVuZ3RoO2k9MDtpOmZvcig7JDk+MDskOS0tLGkrKyl7CisgICAgIGlmIChsY2FbaV0hPXJjYVtpXSkgCisgICAgICByZXR1cm4gZmFsc2U7CisgICAgIH0KKyAgICB9LyppKi8KKyAgIH0KKyAgcmV0dXJuIHRydWU7IC8vIGFycmF5cyBoYXZlIGlkZW50aWNhbCBjb250ZW50CisgIH0KKworIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYSA8Y29kZT5mbG9hdDwvY29kZT4uCisgICogSWYgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGlzIG91dCBvZiB0aGUgcG9zc2libGUgcmFuZ2UgZm9yIGEKKyAgKiA8Y29kZT5mbG9hdDwvY29kZT4gKDMyLWJpdCBzaWduZWQgZmxvYXRpbmcgcG9pbnQpIHJlc3VsdCB0aGVuIGFuCisgICogPGNvZGU+QXJpdGhtZXRpY0V4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLgorICAqIDxwPgorICAqIFRoZSBmbG9hdCBwcm9kdWNlZCBpcyBpZGVudGljYWwgdG8gcmVzdWx0IG9mIGV4cHJlc3NpbmcgdGhlCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gYXMgYSA8Y29kZT5TdHJpbmc8L2NvZGU+IGFuZCB0aGVuCisgICogY29udmVydGluZyBpdCB1c2luZyB0aGUgPGNvZGU+RmxvYXQoU3RyaW5nKTwvY29kZT4gY29uc3RydWN0b3I7CisgICogdGhpcyBjYW4gcmVzdWx0IGluIHZhbHVlcyBvZiA8Y29kZT5GbG9hdC5ORUdBVElWRV9JTkZJTklUWTwvY29kZT4KKyAgKiBvciA8Y29kZT5GbG9hdC5QT1NJVElWRV9JTkZJTklUWTwvY29kZT4uCisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+ZmxvYXQ8L2NvZGU+IGNvcnJlc3BvbmRpbmcgdG8gPGNvZGU+dGhpczwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGZsb2F0IGZsb2F0VmFsdWUoKXsKKyAgcmV0dXJuIGphdmEubGFuZy5GbG9hdC52YWx1ZU9mKHRoaXMudG9TdHJpbmcoKSkuZmxvYXRWYWx1ZSgpOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiwgbW9kaWZpZWQgYnkgbGF5b3V0IHBhcmFtZXRlcnMuCisgICogPHA+CisgICogPGk+VGhpcyBtZXRob2QgaXMgcHJvdmlkZWQgYXMgYSBwcmltaXRpdmUgZm9yIHVzZSBieSBtb3JlCisgICogc29waGlzdGljYXRlZCBjbGFzc2VzLCBzdWNoIGFzIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+LCB0aGF0CisgICogY2FuIGFwcGx5IGxvY2FsZS1zZW5zaXRpdmUgZWRpdGluZyBvZiB0aGUgcmVzdWx0LiAgVGhlIGxldmVsIG9mCisgICogZm9ybWF0dGluZyB0aGF0IGl0IHByb3ZpZGVzIGlzIGEgbmVjZXNzYXJ5IHBhcnQgb2YgdGhlIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBhcyBpdCBpcyBzZW5zaXRpdmUgdG8gYW5kIG11c3QgZm9sbG93IHRoZSBjYWxjdWxhdGlvbiBhbmQKKyAgKiByb3VuZGluZyBydWxlcyBmb3IgQmlnRGVjaW1hbCBhcml0aG1ldGljLgorICAqIEhvd2V2ZXIsIGlmIHRoZSBmdW5jdGlvbiBpcyBwcm92aWRlZCBlbHNld2hlcmUsIGl0IG1heSBiZSByZW1vdmVkCisgICogZnJvbSB0aGlzIGNsYXNzLiA8L2k+CisgICogPHA+CisgICogVGhlIHBhcmFtZXRlcnMsIGZvciBib3RoIGZvcm1zIG9mIHRoZSA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZAorICAqIGFyZSBhbGwgb2YgdHlwZSA8Y29kZT5pbnQ8L2NvZGU+LgorICAqIEEgdmFsdWUgb2YgLTEgZm9yIGFueSBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgYWN0aW9uCisgICogb3IgdmFsdWUgZm9yIHRoYXQgcGFyYW1ldGVyIHNob3VsZCBiZSB1c2VkLgorICAqIDxwPgorICAqIFRoZSBwYXJhbWV0ZXJzLCA8Y29kZT5iZWZvcmU8L2NvZGU+IGFuZCA8Y29kZT5hZnRlcjwvY29kZT4sCisgICogc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gYmUgdXNlZCBmb3IgdGhlIGludGVnZXIgcGFydAorICAqIGFuZCBkZWNpbWFsIHBhcnQgb2YgdGhlIHJlc3VsdCByZXNwZWN0aXZlbHkuICBFeHBvbmVudGlhbCBub3RhdGlvbgorICAqIGlzIG5vdCB1c2VkLiBJZiBlaXRoZXIgcGFyYW1ldGVyIGlzIC0xICh3aGljaCBpbmRpY2F0ZXMgdGhlIGRlZmF1bHQKKyAgKiBhY3Rpb24pLCB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdXNlZCB3aWxsIGJlIGV4YWN0bHkgYXMgbWFueSBhcworICAqIGFyZSBuZWVkZWQgZm9yIHRoYXQgcGFydC4KKyAgKiA8cD4KKyAgKiA8Y29kZT5iZWZvcmU8L2NvZGU+IG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXI7IGlmIGl0IGlzIGxhcmdlciB0aGFuCisgICogaXMgbmVlZGVkIHRvIGNvbnRhaW4gdGhlIGludGVnZXIgcGFydCwgdGhhdCBwYXJ0IGlzIHBhZGRlZCBvbiB0aGUKKyAgKiBsZWZ0IHdpdGggYmxhbmtzIHRvIHRoZSByZXF1ZXN0ZWQgbGVuZ3RoLiBJZiA8Y29kZT5iZWZvcmU8L2NvZGU+IGlzCisgICogbm90IGxhcmdlIGVub3VnaCB0byBjb250YWluIHRoZSBpbnRlZ2VyIHBhcnQgb2YgdGhlIG51bWJlcgorICAqIChpbmNsdWRpbmcgdGhlIHNpZ24sIGZvciBuZWdhdGl2ZSBudW1iZXJzKSBhbiBleGNlcHRpb24gaXMgdGhyb3duLgorICAqIDxwPgorICAqIDxjb2RlPmFmdGVyPC9jb2RlPiBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlcjsgaWYgaXQgaXMgbm90IHRoZQorICAqIHNhbWUgc2l6ZSBhcyB0aGUgZGVjaW1hbCBwYXJ0IG9mIHRoZSBudW1iZXIsIHRoZSBudW1iZXIgd2lsbCBiZQorICAqIHJvdW5kZWQgKG9yIGV4dGVuZGVkIHdpdGggemVyb3MpIHRvIGZpdC4gIFNwZWNpZnlpbmcgMCBmb3IKKyAgKiA8Y29kZT5hZnRlcjwvY29kZT4gd2lsbCBjYXVzZSB0aGUgbnVtYmVyIHRvIGJlIHJvdW5kZWQgdG8gYW4KKyAgKiBpbnRlZ2VyICh0aGF0IGlzLCBpdCB3aWxsIGhhdmUgbm8gZGVjaW1hbCBwYXJ0IG9yIGRlY2ltYWwgcG9pbnQpLgorICAqIFRoZSByb3VuZGluZyBtZXRob2Qgd2lsbCBiZSB0aGUgZGVmYXVsdCwKKyAgKiA8Y29kZT5NYXRoQ29udGV4dC5ST1VORF9IQUxGX1VQPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBPdGhlciByb3VuZGluZyBtZXRob2RzLCBhbmQgdGhlIHVzZSBvZiBleHBvbmVudGlhbCBub3RhdGlvbiwgY2FuCisgICogYmUgc2VsZWN0ZWQgYnkgdXNpbmcge0BsaW5rICNmb3JtYXQoaW50LGludCxpbnQsaW50LGludCxpbnQpfS4KKyAgKiBVc2luZyB0aGUgdHdvLXBhcmFtZXRlciBmb3JtIG9mIHRoZSBtZXRob2QgaGFzIGV4YWN0bHkgdGhlIHNhbWUKKyAgKiBlZmZlY3QgYXMgdXNpbmcgdGhlIHNpeC1wYXJhbWV0ZXIgZm9ybSB3aXRoIHRoZSBmaW5hbCBmb3VyCisgICogcGFyYW1ldGVycyBhbGwgYmVpbmcgLTEuCisgICoKKyAgKiBAcGFyYW0gIGJlZm9yZSBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgcGxhY2VzCisgICogICAgICAgICAgICAgICAgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50LiAgVXNlIC0xIGZvciAnYXMgbWFueSBhcworICAqICAgICAgICAgICAgICAgIGFyZSBuZWVkZWQnLgorICAqIEBwYXJhbSAgYWZ0ZXIgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBwbGFjZXMKKyAgKiAgICAgICAgICAgICAgICBhZnRlciB0aGUgZGVjaW1hbCBwb2ludC4gIFVzZSAtMSBmb3IgJ2FzIG1hbnkgYXMgYXJlCisgICogICAgICAgICAgICAgICAgbmVlZGVkJy4KKyAgKiBAcmV0dXJuICAgICAgICBBIDxjb2RlPlN0cmluZzwvY29kZT4gcmVwcmVzZW50aW5nIHRoaXMKKyAgKiAgICAgICAgICAgICAgICA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiwgbGFpZCBvdXQgYWNjb3JkaW5nIHRvIHRoZQorICAqICAgICAgICAgICAgICAgIHNwZWNpZmllZCBwYXJhbWV0ZXJzCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIHRoZSBudW1iZXIgY2Fubm90IGJlIGxhaWQgb3V0IGFzCisgICogICAgICAgICAgICAgICAgcmVxdWVzdGVkLgorICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGEgcGFyYW1ldGVyIGlzIG91dCBvZiByYW5nZS4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKiBAc2VlICAgICN0b1N0cmluZworICAqIEBzZWUgICAgI3RvQ2hhckFycmF5CisgICovCisgCisgcHVibGljIGphdmEubGFuZy5TdHJpbmcgZm9ybWF0KGludCBiZWZvcmUsaW50IGFmdGVyKXsKKyAgcmV0dXJuIGZvcm1hdChiZWZvcmUsYWZ0ZXIsLTEsLTEsY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDLFJPVU5EX0hBTEZfVVApOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiwgbW9kaWZpZWQgYnkgbGF5b3V0IHBhcmFtZXRlcnMgYW5kIGFsbG93aW5nCisgICogZXhwb25lbnRpYWwgbm90YXRpb24uCisgICogPHA+CisgICogPGk+VGhpcyBtZXRob2QgaXMgcHJvdmlkZWQgYXMgYSBwcmltaXRpdmUgZm9yIHVzZSBieSBtb3JlCisgICogc29waGlzdGljYXRlZCBjbGFzc2VzLCBzdWNoIGFzIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+LCB0aGF0CisgICogY2FuIGFwcGx5IGxvY2FsZS1zZW5zaXRpdmUgZWRpdGluZyBvZiB0aGUgcmVzdWx0LiAgVGhlIGxldmVsIG9mCisgICogZm9ybWF0dGluZyB0aGF0IGl0IHByb3ZpZGVzIGlzIGEgbmVjZXNzYXJ5IHBhcnQgb2YgdGhlIEJpZ0RlY2ltYWwKKyAgKiBjbGFzcyBhcyBpdCBpcyBzZW5zaXRpdmUgdG8gYW5kIG11c3QgZm9sbG93IHRoZSBjYWxjdWxhdGlvbiBhbmQKKyAgKiByb3VuZGluZyBydWxlcyBmb3IgQmlnRGVjaW1hbCBhcml0aG1ldGljLgorICAqIEhvd2V2ZXIsIGlmIHRoZSBmdW5jdGlvbiBpcyBwcm92aWRlZCBlbHNld2hlcmUsIGl0IG1heSBiZSByZW1vdmVkCisgICogZnJvbSB0aGlzIGNsYXNzLiA8L2k+CisgICogPHA+CisgICogVGhlIHBhcmFtZXRlcnMgYXJlIGFsbCBvZiB0eXBlIDxjb2RlPmludDwvY29kZT4uCisgICogQSB2YWx1ZSBvZiAtMSBmb3IgYW55IHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBhY3Rpb24KKyAgKiBvciB2YWx1ZSBmb3IgdGhhdCBwYXJhbWV0ZXIgc2hvdWxkIGJlIHVzZWQuCisgICogPHA+CisgICogVGhlIGZpcnN0IHR3byBwYXJhbWV0ZXJzICg8Y29kZT5iZWZvcmU8L2NvZGU+IGFuZAorICAqIDxjb2RlPmFmdGVyPC9jb2RlPikgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gYmUgdXNlZCBmb3IKKyAgKiB0aGUgaW50ZWdlciBwYXJ0IGFuZCBkZWNpbWFsIHBhcnQgb2YgdGhlIHJlc3VsdCByZXNwZWN0aXZlbHksIGFzCisgICogZGVmaW5lZCBmb3Ige0BsaW5rICNmb3JtYXQoaW50LGludCl9LgorICAqIElmIGVpdGhlciBvZiB0aGVzZSBpcyAtMSAod2hpY2ggaW5kaWNhdGVzIHRoZSBkZWZhdWx0IGFjdGlvbiksIHRoZQorICAqIG51bWJlciBvZiBjaGFyYWN0ZXJzIHVzZWQgd2lsbCBiZSBleGFjdGx5IGFzIG1hbnkgYXMgYXJlIG5lZWRlZCBmb3IKKyAgKiB0aGF0IHBhcnQuCisgICogPHA+CisgICogVGhlIHJlbWFpbmluZyBwYXJhbWV0ZXJzIGNvbnRyb2wgdGhlIHVzZSBvZiBleHBvbmVudGlhbCBub3RhdGlvbgorICAqIGFuZCByb3VuZGluZy4gIFRocmVlICg8Y29kZT5leHBsYWNlczwvY29kZT4sIDxjb2RlPmV4ZGlnaXRzPC9jb2RlPiwKKyAgKiBhbmQgPGNvZGU+ZXhmb3JtPC9jb2RlPikgY29udHJvbCB0aGUgZXhwb25lbnQgcGFydCBvZiB0aGUgcmVzdWx0LgorICAqIEFzIGJlZm9yZSwgdGhlIGRlZmF1bHQgYWN0aW9uIGZvciBhbnkgb2YgdGhlc2UgcGFyYW1ldGVycyBtYXkgYmUKKyAgKiBzZWxlY3RlZCBieSB1c2luZyB0aGUgdmFsdWUgLTEuCisgICogPHA+CisgICogPGNvZGU+ZXhwbGFjZXM8L2NvZGU+IG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXI7IGl0IHNldHMgdGhlIG51bWJlcgorICAqIG9mIHBsYWNlcyAoZGlnaXRzIGFmdGVyIHRoZSBzaWduIG9mIHRoZSBleHBvbmVudCkgdG8gYmUgdXNlZCBmb3IKKyAgKiBhbnkgZXhwb25lbnQgcGFydCwgdGhlIGRlZmF1bHQgKHdoZW4gPGNvZGU+ZXhwbGFjZXM8L2NvZGU+IGlzIC0xKQorICAqIGJlaW5nIHRvIHVzZSBhcyBtYW55IGFzIGFyZSBuZWVkZWQuCisgICogSWYgPGNvZGU+ZXhwbGFjZXM8L2NvZGU+IGlzIG5vdCAtMSwgc3BhY2UgaXMgYWx3YXlzIHJlc2VydmVkIGZvcgorICAqIGFuIGV4cG9uZW50OyBpZiBvbmUgaXMgbm90IG5lZWRlZCAoZm9yIGV4YW1wbGUsIGlmIHRoZSBleHBvbmVudAorICAqIHdpbGwgYmUgMCkgdGhlbiA8Y29kZT5leHBsYWNlczwvY29kZT4rMiBibGFua3MgYXJlIGFwcGVuZGVkIHRvIHRoZQorICAqIHJlc3VsdC4KKyAgKiA8IS0tIChUaGlzIHByZXNlcnZlcyB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2Ygc2ltaWxhcmx5IGZvcm1hdHRlZAorICAqICAgICAgIG51bWJlcnMgaW4gYSBtb25vc3BhY2UgZm9udC4pIC0tPgorICAqIElmIDxjb2RlPmV4cGxhY2VzPC9jb2RlPiBpcyBub3QgLTEgYW5kIGlzIG5vdCBsYXJnZSBlbm91Z2ggdG8KKyAgKiBjb250YWluIHRoZSBleHBvbmVudCwgYW4gZXhjZXB0aW9uIGlzIHRocm93bi4KKyAgKiA8cD4KKyAgKiA8Y29kZT5leGRpZ2l0czwvY29kZT4gc2V0cyB0aGUgdHJpZ2dlciBwb2ludCBmb3IgdXNlIG9mIGV4cG9uZW50aWFsCisgICogbm90YXRpb24uIElmLCBiZWZvcmUgYW55IHJvdW5kaW5nLCB0aGUgbnVtYmVyIG9mIHBsYWNlcyBuZWVkZWQKKyAgKiBiZWZvcmUgdGhlIGRlY2ltYWwgcG9pbnQgZXhjZWVkcyA8Y29kZT5leGRpZ2l0czwvY29kZT4sIG9yIGlmIHRoZQorICAqIGFic29sdXRlIHZhbHVlIG9mIHRoZSByZXN1bHQgaXMgbGVzcyB0aGFuIDxjb2RlPjAuMDAwMDAxPC9jb2RlPiwKKyAgKiB0aGVuIGV4cG9uZW50aWFsIGZvcm0gd2lsbCBiZSB1c2VkLCBwcm92aWRlZCB0aGF0CisgICogPGNvZGU+ZXhkaWdpdHM8L2NvZGU+IHdhcyBzcGVjaWZpZWQuCisgICogV2hlbiA8Y29kZT5leGRpZ2l0czwvY29kZT4gaXMgLTEsIGV4cG9uZW50aWFsIG5vdGF0aW9uIHdpbGwgbmV2ZXIKKyAgKiBiZSB1c2VkLiBJZiAwIGlzIHNwZWNpZmllZCBmb3IgPGNvZGU+ZXhkaWdpdHM8L2NvZGU+LCBleHBvbmVudGlhbAorICAqIG5vdGF0aW9uIGlzIGFsd2F5cyB1c2VkIHVubGVzcyB0aGUgZXhwb25lbnQgd291bGQgYmUgMC4KKyAgKiA8cD4KKyAgKiA8Y29kZT5leGZvcm08L2NvZGU+IHNldHMgdGhlIGZvcm0gZm9yIGV4cG9uZW50aWFsIG5vdGF0aW9uIChpZgorICAqIG5lZWRlZCkuCisgICogSXQgIG1heSBiZSBlaXRoZXIge0BsaW5rIE1hdGhDb250ZXh0I1NDSUVOVElGSUN9IG9yCisgICoge0BsaW5rIE1hdGhDb250ZXh0I0VOR0lORUVSSU5HfS4KKyAgKiBJZiB0aGUgbGF0dGVyLCBlbmdpbmVlcmluZywgZm9ybSBpcyByZXF1ZXN0ZWQsIHVwIHRvIHRocmVlIGRpZ2l0cworICAqIChwbHVzIHNpZ24sIGlmIG5lZ2F0aXZlKSBtYXkgYmUgbmVlZGVkIGZvciB0aGUgaW50ZWdlciBwYXJ0IG9mIHRoZQorICAqIHJlc3VsdCAoPGNvZGU+YmVmb3JlPC9jb2RlPikuICBPdGhlcndpc2UsIG9ubHkgb25lIGRpZ2l0IChwbHVzCisgICogc2lnbiwgaWYgbmVnYXRpdmUpIGlzIG5lZWRlZC4KKyAgKiA8cD4KKyAgKiBGaW5hbGx5LCB0aGUgc2l4dGggYXJndW1lbnQsIDxjb2RlPmV4cm91bmQ8L2NvZGU+LCBzZWxlY3RzIHRoZQorICAqIHJvdW5kaW5nIGFsZ29yaXRobSB0byBiZSB1c2VkLCBhbmQgbXVzdCBiZSBvbmUgb2YgdGhlIHZhbHVlcworICAqIGluZGljYXRlZCBieSBhIHB1YmxpYyBjb25zdGFudCBpbiB0aGUge0BsaW5rIE1hdGhDb250ZXh0fSBjbGFzcworICAqIHdob3NlIG5hbWUgc3RhcnRzIHdpdGggPGNvZGU+Uk9VTkRfPC9jb2RlPi4KKyAgKiBUaGUgZGVmYXVsdCAoPGNvZGU+Uk9VTkRfSEFMRl9VUDwvY29kZT4pIG1heSBhbHNvIGJlIHNlbGVjdGVkIGJ5CisgICogdXNpbmcgdGhlIHZhbHVlIC0xLCBhcyBiZWZvcmUuCisgICogPHA+CisgICogVGhlIHNwZWNpYWwgdmFsdWUgPGNvZGU+TWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlk8L2NvZGU+IG1heSBiZQorICAqIHVzZWQgdG8gZGV0ZWN0IHdoZXRoZXIgbm9uLXplcm8gZGlnaXRzIGFyZSBkaXNjYXJkZWQgLS0gaWYKKyAgKiA8Y29kZT5leHJvdW5kPC9jb2RlPiBoYXMgdGhpcyB2YWx1ZSB0aGFuIGlmIG5vbi16ZXJvIGRpZ2l0cyB3b3VsZAorICAqIGJlIGRpc2NhcmRlZCAocm91bmRlZCkgZHVyaW5nIGZvcm1hdHRpbmcgdGhlbiBhbgorICAqIDxjb2RlPkFyaXRobWV0aWNFeGNlcHRpb248L2NvZGU+IGlzIHRocm93bi4KKyAgKgorICAqIEBwYXJhbSAgYmVmb3JlICAgVGhlIDxjb2RlPmludDwvY29kZT4gc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIHBsYWNlcworICAqICAgICAgICAgICAgICAgICAgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50LgorICAqICAgICAgICAgICAgICAgICAgVXNlIC0xIGZvciAnYXMgbWFueSBhcyBhcmUgbmVlZGVkJy4KKyAgKiBAcGFyYW0gIGFmdGVyICAgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBwbGFjZXMKKyAgKiAgICAgICAgICAgICAgICAgIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50LgorICAqICAgICAgICAgICAgICAgICAgVXNlIC0xIGZvciAnYXMgbWFueSBhcyBhcmUgbmVlZGVkJy4KKyAgKiBAcGFyYW0gIGV4cGxhY2VzIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBwbGFjZXMKKyAgKiAgICAgICAgICAgICAgICAgIHRvIGJlIHVzZWQgZm9yIGFueSBleHBvbmVudC4KKyAgKiAgICAgICAgICAgICAgICAgIFVzZSAtMSBmb3IgJ2FzIG1hbnkgYXMgYXJlIG5lZWRlZCcuCisgICogQHBhcmFtICBleGRpZ2l0cyBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSB0cmlnZ2VyCisgICogICAgICAgICAgICAgICAgICAoZGlnaXRzIGJlZm9yZSB0aGUgZGVjaW1hbCBwb2ludCkgd2hpY2ggaWYKKyAgKiAgICAgICAgICAgICAgICAgIGV4Y2VlZGVkIGNhdXNlcyBleHBvbmVudGlhbCBub3RhdGlvbiB0byBiZSB1c2VkLgorICAqICAgICAgICAgICAgICAgICAgVXNlIDAgdG8gZm9yY2UgZXhwb25lbnRpYWwgbm90YXRpb24uCisgICogICAgICAgICAgICAgICAgICBVc2UgLTEgdG8gZm9yY2UgcGxhaW4gbm90YXRpb24gKG5vIGV4cG9uZW50aWFsCisgICogICAgICAgICAgICAgICAgICBub3RhdGlvbikuCisgICogQHBhcmFtICBleGZvcm1pbnQgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSBmb3JtIG9mCisgICogICAgICAgICAgICAgICAgICBleHBvbmVudGlhbCBub3RhdGlvbiB0byBiZSB1c2VkCisgICogICAgICAgICAgICAgICAgICAoe0BsaW5rIE1hdGhDb250ZXh0I1NDSUVOVElGSUN9IG9yCisgICogICAgICAgICAgICAgICAgICB7QGxpbmsgTWF0aENvbnRleHQjRU5HSU5FRVJJTkd9KS4KKyAgKiBAcGFyYW0gIGV4cm91bmQgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIHJvdW5kaW5nIG1vZGUKKyAgKiAgICAgICAgICAgICAgICAgIHRvIHVzZS4KKyAgKiAgICAgICAgICAgICAgICAgIFVzZSAtMSBmb3IgdGhlIGRlZmF1bHQsIHtAbGluayBNYXRoQ29udGV4dCNST1VORF9IQUxGX1VQfS4KKyAgKiBAcmV0dXJuICAgICAgICAgIEEgPGNvZGU+U3RyaW5nPC9jb2RlPiByZXByZXNlbnRpbmcgdGhpcworICAqICAgICAgICAgICAgICAgICAgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4sIGxhaWQgb3V0IGFjY29yZGluZyB0byB0aGUKKyAgKiAgICAgICAgICAgICAgICAgIHNwZWNpZmllZCBwYXJhbWV0ZXJzCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIHRoZSBudW1iZXIgY2Fubm90IGJlIGxhaWQgb3V0IGFzCisgICogICAgICAgICAgICAgICAgICByZXF1ZXN0ZWQuCisgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgYSBwYXJhbWV0ZXIgaXMgb3V0IG9mIHJhbmdlLgorICAqIEBzZWUgICAgI3RvU3RyaW5nCisgICogQHNlZSAgICAjdG9DaGFyQXJyYXkKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgamF2YS5sYW5nLlN0cmluZyBmb3JtYXQoaW50IGJlZm9yZSxpbnQgYWZ0ZXIsaW50IGV4cGxhY2VzLGludCBleGRpZ2l0cyxpbnQgZXhmb3JtaW50LGludCBleHJvdW5kKXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bTsKKyAgaW50IG1hZz0wOworICBpbnQgdGhpc2FmdGVyPTA7CisgIGludCBsZWFkPTA7CisgIGJ5dGUgbmV3bWFudFtdPW51bGw7CisgIGludCBjaG9wPTA7CisgIGludCBuZWVkPTA7CisgIGludCBvbGRleHA9MDsKKyAgY2hhciBhW107CisgIGludCBwPTA7CisgIGNoYXIgbmV3YVtdPW51bGw7CisgIGludCBpPTA7CisgIGludCBwbGFjZXM9MDsKKyAgCisgIAorICAvKiBDaGVjayBhcmd1bWVudHMgKi8KKyAgaWYgKChiZWZvcmU8KC0xKSl8KGJlZm9yZT09MCkpIAorICAgYmFkYXJnKCJmb3JtYXQiLDEsamF2YS5sYW5nLlN0cmluZy52YWx1ZU9mKGJlZm9yZSkpOworICBpZiAoYWZ0ZXI8KC0xKSkgCisgICBiYWRhcmcoImZvcm1hdCIsMixqYXZhLmxhbmcuU3RyaW5nLnZhbHVlT2YoYWZ0ZXIpKTsKKyAgaWYgKChleHBsYWNlczwoLTEpKXwoZXhwbGFjZXM9PTApKSAKKyAgIGJhZGFyZygiZm9ybWF0IiwzLGphdmEubGFuZy5TdHJpbmcudmFsdWVPZihleHBsYWNlcykpOworICBpZiAoZXhkaWdpdHM8KC0xKSkgCisgICBiYWRhcmcoImZvcm1hdCIsNCxqYXZhLmxhbmcuU3RyaW5nLnZhbHVlT2YoZXhwbGFjZXMpKTsKKyAgey8qc2VsZWN0Ki8KKyAgaWYgKGV4Zm9ybWludD09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDKXsKKyAgfWVsc2UgaWYgKGV4Zm9ybWludD09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5FTkdJTkVFUklORyl7CisgIH1lbHNlIGlmIChleGZvcm1pbnQ9PSgtMSkpCisgICBleGZvcm1pbnQ9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDOworICAgLy8gbm90ZSBQTEFJTiBpc24ndCBhbGxvd2VkCisgIGVsc2V7CisgICBiYWRhcmcoImZvcm1hdCIsNSxqYXZhLmxhbmcuU3RyaW5nLnZhbHVlT2YoZXhmb3JtaW50KSk7CisgIH0KKyAgfQorICAvLyBjaGVja2luZyB0aGUgcm91bmRpbmcgbW9kZSBpcyBkb25lIGJ5IHRyeWluZyB0byBjb25zdHJ1Y3QgYQorICAvLyBNYXRoQ29udGV4dCBvYmplY3Qgd2l0aCB0aGF0IG1vZGU7IGl0IHdpbGwgZmFpbCBpZiBiYWQKKyAgaWYgKGV4cm91bmQhPVJPVU5EX0hBTEZfVVApIAorICAge3RyeXsgLy8gaWYgbm9uLWRlZmF1bHQuLi4KKyAgICBpZiAoZXhyb3VuZD09KC0xKSkgCisgICAgIGV4cm91bmQ9Uk9VTkRfSEFMRl9VUDsKKyAgICBlbHNlIAorICAgICBuZXcgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCg5LGNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQyxmYWxzZSxleHJvdW5kKTsKKyAgIH0KKyAgIGNhdGNoIChqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uICQxMCl7CisgICAgYmFkYXJnKCJmb3JtYXQiLDYsamF2YS5sYW5nLlN0cmluZy52YWx1ZU9mKGV4cm91bmQpKTsKKyAgIH19CisgIAorICBudW09Y2xvbmUodGhpcyk7IC8vIG1ha2UgcHJpdmF0ZSBjb3B5CisgIAorICAvKiBIZXJlOgorICAgICBudW0gICAgICAgaXMgQmlnRGVjaW1hbCB0byBmb3JtYXQKKyAgICAgYmVmb3JlICAgIGlzIHBsYWNlcyBiZWZvcmUgcG9pbnQgWz4wXQorICAgICBhZnRlciAgICAgaXMgcGxhY2VzIGFmdGVyIHBvaW50ICBbPj0wXQorICAgICBleHBsYWNlcyAgaXMgZXhwb25lbnQgcGxhY2VzICAgICBbPjBdCisgICAgIGV4ZGlnaXRzICBpcyBleHBvbmVudCBkaWdpdHMgICAgIFs+PTBdCisgICAgIGV4Zm9ybWludCBpcyBleHBvbmVudCBmb3JtICAgICAgIFtvbmUgb2YgdHdvXQorICAgICBleHJvdW5kICAgaXMgcm91bmRpbmcgbW9kZSAgICAgICBbb25lIG9mIGVpZ2h0XQorICAgICAnYmVmb3JlJyB0aHJvdWdoICdleGRpZ2l0cycgYXJlIC0xIGlmIG5vdCBzcGVjaWZpZWQKKyAgKi8KKyAgCisgIC8qIGRldGVybWluZSBmb3JtICovCisgIHtzZXRmb3JtOmRvey8qc2VsZWN0Ki8KKyAgaWYgKGV4ZGlnaXRzPT0oLTEpKQorICAgbnVtLmZvcm09KGJ5dGUpY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsKKyAgZWxzZSBpZiAobnVtLmluZD09aXN6ZXJvKQorICAgbnVtLmZvcm09KGJ5dGUpY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsKKyAgZWxzZXsKKyAgIC8vIGRldGVybWluZSB3aGV0aGVyIHRyaWdnZXJzCisgICBtYWc9bnVtLmV4cCtudW0ubWFudC5sZW5ndGg7CisgICBpZiAobWFnPmV4ZGlnaXRzKSAKKyAgICBudW0uZm9ybT0oYnl0ZSlleGZvcm1pbnQ7CisgICBlbHNlIAorICAgIGlmIChtYWc8KC01KSkgCisgICAgIG51bS5mb3JtPShieXRlKWV4Zm9ybWludDsKKyAgICBlbHNlIAorICAgICBudW0uZm9ybT0oYnl0ZSljb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOOworICB9CisgIH13aGlsZShmYWxzZSk7fS8qc2V0Zm9ybSovCisgIAorICAvKiBJZiAnYWZ0ZXInIHdhcyBzcGVjaWZpZWQgdGhlbiB3ZSBtYXkgbmVlZCB0byBhZGp1c3QgdGhlCisgICAgIG1hbnRpc3NhLiAgVGhpcyBpcyBhIGxpdHRsZSB0cmlja3ksIGFzIHdlIG11c3QgY29uZm9ybSB0byB0aGUKKyAgICAgcnVsZXMgb2YgZXhwb25lbnRpYWwgbGF5b3V0IGlmIG5lY2Vzc2FyeSAoZS5nLiwgd2UgY2Fubm90IGVuZCB1cAorICAgICB3aXRoIDEwLjAgaWYgc2NpZW50aWZpYykuICovCisgIGlmIChhZnRlcj49MCkgCisgICB7c2V0YWZ0ZXI6Zm9yKDs7KXsKKyAgICAvLyBjYWxjdWxhdGUgdGhlIGN1cnJlbnQgYWZ0ZXItbGVuZ3RoCisgICAgey8qc2VsZWN0Ki8KKyAgICBpZiAobnVtLmZvcm09PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pCisgICAgIHRoaXNhZnRlcj0oaW50KS1udW0uZXhwOyAvLyBoYXMgZGVjaW1hbCBwYXJ0CisgICAgZWxzZSBpZiAobnVtLmZvcm09PWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuU0NJRU5USUZJQykKKyAgICAgdGhpc2FmdGVyPW51bS5tYW50Lmxlbmd0aC0xOworICAgIGVsc2V7IC8vIGVuZ2luZWVyaW5nCisgICAgIGxlYWQ9KCgobnVtLmV4cCtudW0ubWFudC5sZW5ndGgpLTEpKSUzOyAvLyBleHBvbmVudCB0byB1c2UKKyAgICAgaWYgKGxlYWQ8MCkgCisgICAgICBsZWFkPTMrbGVhZDsgLy8gbmVnYXRpdmUgZXhwb25lbnQgY2FzZQorICAgICBsZWFkKys7IC8vIG51bWJlciBvZiBsZWFkaW5nIGRpZ2l0cworICAgICBpZiAobGVhZD49bnVtLm1hbnQubGVuZ3RoKSAKKyAgICAgIHRoaXNhZnRlcj0wOworICAgICBlbHNlIAorICAgICAgdGhpc2FmdGVyPW51bS5tYW50Lmxlbmd0aC1sZWFkOworICAgIH0KKyAgICB9CisgICAgaWYgKHRoaXNhZnRlcj09YWZ0ZXIpIAorICAgICBicmVhayBzZXRhZnRlcjsgLy8gd2UncmUgaW4gbHVjaworICAgIGlmICh0aGlzYWZ0ZXI8YWZ0ZXIpIAorICAgICB7IC8vIG5lZWQgYWRkZWQgdHJhaWxpbmcgemVyb3MKKyAgICAgIC8vIFt0aGlzYWZ0ZXIgY2FuIGJlIG5lZ2F0aXZlXQorICAgICAgbmV3bWFudD1leHRlbmQobnVtLm1hbnQsKG51bS5tYW50Lmxlbmd0aCthZnRlciktdGhpc2FmdGVyKTsKKyAgICAgIG51bS5tYW50PW5ld21hbnQ7CisgICAgICBudW0uZXhwPW51bS5leHAtKChhZnRlci10aGlzYWZ0ZXIpKTsgLy8gYWRqdXN0IGV4cG9uZW50CisgICAgICBpZiAobnVtLmV4cDxNaW5FeHApIAorICAgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiRXhwb25lbnQgT3ZlcmZsb3c6IisiICIrbnVtLmV4cCk7CisgICAgICBicmVhayBzZXRhZnRlcjsKKyAgICAgfQorICAgIC8vIFdlIGhhdmUgdG9vIG1hbnkgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50OyB0aGlzIGNvdWxkCisgICAgLy8gY2F1c2UgYSBjYXJyeSwgd2hpY2ggY291bGQgY2hhbmdlIHRoZSBtYW50aXNzYS4uLgorICAgIC8vIFdhdGNoIG91dCBmb3IgaW1wbGllZCBsZWFkaW5nIHplcm9zIGluIFBMQUlOIGNhc2UKKyAgICBjaG9wPXRoaXNhZnRlci1hZnRlcjsgLy8gZGlnaXRzIHRvIGxvcCBbaXMgPjBdCisgICAgaWYgKGNob3A+bnVtLm1hbnQubGVuZ3RoKSAKKyAgICAgeyAvLyBhbGwgZGlnaXRzIGdvLCBubyBjaGFuY2Ugb2YgY2FycnkKKyAgICAgIC8vIGNhcnJ5IG9uIHdpdGggemVybworICAgICAgbnVtLm1hbnQ9WkVSTy5tYW50OworICAgICAgbnVtLmluZD1pc3plcm87CisgICAgICBudW0uZXhwPTA7CisgICAgICBjb250aW51ZSBzZXRhZnRlcjsgLy8gcmVjaGVjazogd2UgbWF5IG5lZWQgdHJhaWxpbmcgemVyb3MKKyAgICAgfQorICAgIC8vIHdlIGhhdmUgYSBkaWdpdCB0byBpbnNwZWN0IGZyb20gZXhpc3RpbmcgbWFudGlzc2EKKyAgICAvLyByb3VuZCB0aGUgbnVtYmVyIGFzIHJlcXVpcmVkCisgICAgbmVlZD1udW0ubWFudC5sZW5ndGgtY2hvcDsgLy8gZGlnaXRzIHRvIGVuZCB1cCB3aXRoIFttYXkgYmUgMF0KKyAgICBvbGRleHA9bnVtLmV4cDsgLy8gc2F2ZSBvbGQgZXhwb25lbnQKKyAgICBudW0ucm91bmQobmVlZCxleHJvdW5kKTsKKyAgICAvLyBpZiB0aGUgZXhwb25lbnQgZ3JldyBieSBtb3JlIHRoYW4gdGhlIGRpZ2l0cyB3ZSBjaG9wcGVkLCB0aGVuCisgICAgLy8gd2UgbXVzdCBoYXZlIGhhZCBhIGNhcnJ5LCBzbyB3aWxsIG5lZWQgdG8gcmVjaGVjayB0aGUgbGF5b3V0CisgICAgaWYgKChudW0uZXhwLW9sZGV4cCk9PWNob3ApIAorICAgICBicmVhayBzZXRhZnRlcjsgLy8gbnVtYmVyIGRpZCBub3QgaGF2ZSBjYXJyeQorICAgIC8vIG1hbnRpc3NhIGdvdCBleHRlbmRlZCAuLiBzbyBnbyBhcm91bmQgYW5kIGNoZWNrIGFnYWluCisgICAgfQorICAgfS8qc2V0YWZ0ZXIqLworICAKKyAgYT1udW0ubGF5b3V0KCk7IC8vIGxheSBvdXQsIHdpdGggZXhwb25lbnQgaWYgcmVxdWlyZWQsIGV0Yy4KKyAgCisgIC8qIEhlcmUgd2UgaGF2ZSBsYWlkLW91dCBudW1iZXIgaW4gJ2EnICovCisgIC8vIG5vdyBhcHBseSAnYmVmb3JlJyBhbmQgJ2V4cGxhY2VzJyBhcyBuZWVkZWQKKyAgaWYgKGJlZm9yZT4wKSAKKyAgIHsKKyAgICAvLyBsb29rIGZvciAnLicgb3IgJ0UnCisgICAge2ludCAkMTE9YS5sZW5ndGg7cD0wO3A6Zm9yKDskMTE+MDskMTEtLSxwKyspeworICAgICBpZiAoYVtwXT09Jy4nKSAKKyAgICAgIGJyZWFrIHA7CisgICAgIGlmIChhW3BdPT0nRScpIAorICAgICAgYnJlYWsgcDsKKyAgICAgfQorICAgIH0vKnAqLworICAgIC8vIHAgaXMgbm93IG9mZnNldCBvZiAnLicsICdFJywgb3IgY2hhcmFjdGVyIGFmdGVyIGVuZCBvZiBhcnJheQorICAgIC8vIHRoYXQgaXMsIHRoZSBjdXJyZW50IGxlbmd0aCBvZiBiZWZvcmUgcGFydAorICAgIGlmIChwPmJlZm9yZSkgCisgICAgIGJhZGFyZygiZm9ybWF0IiwxLGphdmEubGFuZy5TdHJpbmcudmFsdWVPZihiZWZvcmUpKTsgLy8gd29uJ3QgZml0CisgICAgaWYgKHA8YmVmb3JlKSAKKyAgICAgeyAvLyBuZWVkIGxlYWRpbmcgYmxhbmtzCisgICAgICBuZXdhPW5ldyBjaGFyWyhhLmxlbmd0aCtiZWZvcmUpLXBdOworICAgICAge2ludCAkMTI9YmVmb3JlLXA7aT0wO2k6Zm9yKDskMTI+MDskMTItLSxpKyspeworICAgICAgIG5ld2FbaV09JyAnOworICAgICAgIH0KKyAgICAgIH0vKmkqLworICAgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpYSwwLChqYXZhLmxhbmcuT2JqZWN0KW5ld2EsaSxhLmxlbmd0aCk7CisgICAgICBhPW5ld2E7CisgICAgIH0KKyAgIC8vIFtpZiBwPWJlZm9yZSB0aGVuIGl0J3MganVzdCB0aGUgcmlnaHQgbGVuZ3RoXQorICAgfQorICAKKyAgaWYgKGV4cGxhY2VzPjApIAorICAgeworICAgIC8vIGxvb2sgZm9yICdFJyBbY2Fubm90IGJlIGF0IG9mZnNldCAwXQorICAgIHtpbnQgJDEzPWEubGVuZ3RoLTE7cD1hLmxlbmd0aC0xO3A6Zm9yKDskMTM+MDskMTMtLSxwLS0peworICAgICBpZiAoYVtwXT09J0UnKSAKKyAgICAgIGJyZWFrIHA7CisgICAgIH0KKyAgICB9LypwKi8KKyAgICAvLyBwIGlzIG5vdyBvZmZzZXQgb2YgJ0UnLCBvciAwCisgICAgaWYgKHA9PTApIAorICAgICB7IC8vIG5vIEUgcGFydDsgYWRkIHRyYWlsaW5nIGJsYW5rcworICAgICAgbmV3YT1uZXcgY2hhclsoYS5sZW5ndGgrZXhwbGFjZXMpKzJdOworICAgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpYSwwLChqYXZhLmxhbmcuT2JqZWN0KW5ld2EsMCxhLmxlbmd0aCk7CisgICAgICB7aW50ICQxND1leHBsYWNlcysyO2k9YS5sZW5ndGg7aTpmb3IoOyQxND4wOyQxNC0tLGkrKyl7CisgICAgICAgbmV3YVtpXT0nICc7CisgICAgICAgfQorICAgICAgfS8qaSovCisgICAgICBhPW5ld2E7CisgICAgIH0KKyAgICBlbHNlIAorICAgICB7LyogZm91bmQgRSAqLyAvLyBtYXkgbmVlZCB0byBpbnNlcnQgemVyb3MKKyAgICAgIHBsYWNlcz0oYS5sZW5ndGgtcCktMjsgLy8gbnVtYmVyIHNvIGZhcgorICAgICAgaWYgKHBsYWNlcz5leHBsYWNlcykgCisgICAgICAgYmFkYXJnKCJmb3JtYXQiLDMsamF2YS5sYW5nLlN0cmluZy52YWx1ZU9mKGV4cGxhY2VzKSk7CisgICAgICBpZiAocGxhY2VzPGV4cGxhY2VzKSAKKyAgICAgICB7IC8vIG5lZWQgdG8gaW5zZXJ0IHplcm9zCisgICAgICAgIG5ld2E9bmV3IGNoYXJbKGEubGVuZ3RoK2V4cGxhY2VzKS1wbGFjZXNdOworICAgICAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdClhLDAsKGphdmEubGFuZy5PYmplY3QpbmV3YSwwLHArMik7IC8vIHRocm91Z2ggRSBhbmQgc2lnbgorICAgICAgICB7aW50ICQxNT1leHBsYWNlcy1wbGFjZXM7aT1wKzI7aTpmb3IoOyQxNT4wOyQxNS0tLGkrKyl7CisgICAgICAgICBuZXdhW2ldPScwJzsKKyAgICAgICAgIH0KKyAgICAgICAgfS8qaSovCisgICAgICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KWEscCsyLChqYXZhLmxhbmcuT2JqZWN0KW5ld2EsaSxwbGFjZXMpOyAvLyByZW1haW5kZXIgb2YgZXhwb25lbnQKKyAgICAgICAgYT1uZXdhOworICAgICAgIH0KKyAgICAgLy8gW2lmIHBsYWNlcz1leHBsYWNlcyB0aGVuIGl0J3MganVzdCB0aGUgcmlnaHQgbGVuZ3RoXQorICAgICB9CisgICB9CisgIHJldHVybiBuZXcgamF2YS5sYW5nLlN0cmluZyhhKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyB0aGUgaGFzaGNvZGUgZm9yIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogVGhpcyBoYXNoY29kZSBpcyBzdWl0YWJsZSBmb3IgdXNlIGJ5IHRoZQorICAqIDxjb2RlPmphdmEudXRpbC5IYXNodGFibGU8L2NvZGU+IGNsYXNzLgorICAqIDxwPgorICAqIE5vdGUgdGhhdCB0d28gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0cyBhcmUgb25seSBndWFyYW50ZWVkCisgICogdG8gcHJvZHVjZSB0aGUgc2FtZSBoYXNoY29kZSBpZiB0aGV5IGFyZSBleGFjdGx5IGVxdWFsICh0aGF0IGlzLAorICAqIHRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+IHJlcHJlc2VudGF0aW9ucyBvZiB0aGUKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBudW1iZXJzIGFyZSBpZGVudGljYWwgLS0gdGhleSBoYXZlIHRoZSBzYW1lCisgICogY2hhcmFjdGVycyBpbiB0aGUgc2FtZSBzZXF1ZW5jZSkuCisgICoKKyAgKiBAcmV0dXJuIEFuIDxjb2RlPmludDwvY29kZT4gdGhhdCBpcyB0aGUgaGFzaGNvZGUgZm9yIDxjb2RlPnRoaXM8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBpbnQgaGFzaENvZGUoKXsKKyAgLy8gTWF5YmUgY2FsY3VsYXRlIG91cnNlbHZlcywgbGF0ZXIuICBJZiBzbywgbm90ZSB0aGF0IHRoZXJlIGNhbiBiZQorICAvLyBtb3JlIHRoYW4gb25lIGludGVybmFsIHJlcHJlc2VudGF0aW9uIGZvciBhIGdpdmVuIHRvU3RyaW5nKCkgcmVzdWx0LgorICByZXR1cm4gdGhpcy50b1N0cmluZygpLmhhc2hDb2RlKCk7CisgIH0KKworIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYW4gPGNvZGU+aW50PC9jb2RlPi4KKyAgKiBJZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaGFzIGEgbm9uLXplcm8gZGVjaW1hbCBwYXJ0IGl0IGlzCisgICogZGlzY2FyZGVkLiBJZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaXMgb3V0IG9mIHRoZSBwb3NzaWJsZQorICAqIHJhbmdlIGZvciBhbiA8Y29kZT5pbnQ8L2NvZGU+ICgzMi1iaXQgc2lnbmVkIGludGVnZXIpIHJlc3VsdCB0aGVuCisgICogb25seSB0aGUgbG93LW9yZGVyIDMyIGJpdHMgYXJlIHVzZWQuIChUaGF0IGlzLCB0aGUgbnVtYmVyIG1heSBiZQorICAqIDxpPmRlY2FwaXRhdGVkPC9pPi4pICBUbyBhdm9pZCB1bmV4cGVjdGVkIGVycm9ycyB3aGVuIHRoZXNlCisgICogY29uZGl0aW9ucyBvY2N1ciwgdXNlIHRoZSB7QGxpbmsgI2ludFZhbHVlRXhhY3R9IG1ldGhvZC4KKyAgKgorICAqIEByZXR1cm4gQW4gPGNvZGU+aW50PC9jb2RlPiBjb252ZXJ0ZWQgZnJvbSA8Y29kZT50aGlzPC9jb2RlPiwKKyAgKiAgICAgICAgIHRydW5jYXRlZCBhbmQgZGVjYXBpdGF0ZWQgaWYgbmVjZXNzYXJ5LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBpbnQgaW50VmFsdWUoKXsKKyAgcmV0dXJuIHRvQmlnSW50ZWdlcigpLmludFZhbHVlKCk7CisgIH0KKworIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYW4gPGNvZGU+aW50PC9jb2RlPi4KKyAgKiBJZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaGFzIGEgbm9uLXplcm8gZGVjaW1hbCBwYXJ0IG9yIGlzCisgICogb3V0IG9mIHRoZSBwb3NzaWJsZSByYW5nZSBmb3IgYW4gPGNvZGU+aW50PC9jb2RlPiAoMzItYml0IHNpZ25lZAorICAqIGludGVnZXIpIHJlc3VsdCB0aGVuIGFuIDxjb2RlPkFyaXRobWV0aWNFeGNlcHRpb248L2NvZGU+IGlzIHRocm93bi4KKyAgKgorICAqIEByZXR1cm4gQW4gPGNvZGU+aW50PC9jb2RlPiBlcXVhbCBpbiB2YWx1ZSB0byA8Y29kZT50aGlzPC9jb2RlPi4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+dGhpczwvY29kZT4gaGFzIGEgbm9uLXplcm8KKyAgKiAgICAgICAgICAgICAgICAgZGVjaW1hbCBwYXJ0LCBvciB3aWxsIG5vdCBmaXQgaW4gYW4KKyAgKiAgICAgICAgICAgICAgICAgPGNvZGU+aW50PC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgaW50IGludFZhbHVlRXhhY3QoKXsKKyAgaW50IGxvZGlnaXQ7CisgIGludCB1c2VleHA9MDsKKyAgaW50IHJlc3VsdDsKKyAgaW50IGk9MDsKKyAgaW50IHRvcGRpZz0wOworICAvLyBUaGlzIGRvZXMgbm90IHVzZSBsb25nVmFsdWVFeGFjdCgpIGFzIHRoZSBsYXR0ZXIgY2FuIGJlIG11Y2gKKyAgLy8gc2xvd2VyLgorICAvLyBpbnRjaGVjayAoZnJvbSBwb3cpIHJlbGllcyBvbiB0aGlzIHRvIGNoZWNrIGRlY2ltYWwgcGFydAorICBpZiAoaW5kPT1pc3plcm8pIAorICAgcmV0dXJuIDA7IC8vIGVhc3ksIGFuZCBxdWl0ZSBjb21tb24KKyAgLyogdGVzdCBhbmQgZHJvcCBhbnkgdHJhaWxpbmcgZGVjaW1hbCBwYXJ0ICovCisgIGxvZGlnaXQ9bWFudC5sZW5ndGgtMTsKKyAgaWYgKGV4cDwwKSAKKyAgIHsKKyAgICBsb2RpZ2l0PWxvZGlnaXQrZXhwOyAvLyByZWR1Y2VzIGJ5IC0oLWV4cCkKKyAgICAvKiBhbGwgZGVjaW1hbCBwbGFjZXMgbXVzdCBiZSAwICovCisgICAgaWYgKCghKGFsbHplcm8obWFudCxsb2RpZ2l0KzEpKSkpIAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkRlY2ltYWwgcGFydCBub24temVybzoiKyIgIit0aGlzLnRvU3RyaW5nKCkpOworICAgIGlmIChsb2RpZ2l0PDApIAorICAgICByZXR1cm4gMDsgLy8gLTE8dGhpczwxCisgICAgdXNlZXhwPTA7CisgICB9CisgIGVsc2UgCisgICB7LyogPj0wICovCisgICAgaWYgKChleHArbG9kaWdpdCk+OSkgIC8vIGVhcmx5IGV4aXQKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3RoaXMudG9TdHJpbmcoKSk7CisgICAgdXNlZXhwPWV4cDsKKyAgIH0KKyAgLyogY29udmVydCB0aGUgbWFudGlzc2EgdG8gYmluYXJ5LCBpbmxpbmUgZm9yIHNwZWVkICovCisgIHJlc3VsdD0wOworICB7aW50ICQxNj1sb2RpZ2l0K3VzZWV4cDtpPTA7aTpmb3IoO2k8PSQxNjtpKyspeworICAgcmVzdWx0PXJlc3VsdCoxMDsKKyAgIGlmIChpPD1sb2RpZ2l0KSAKKyAgICByZXN1bHQ9cmVzdWx0K21hbnRbaV07CisgICB9CisgIH0vKmkqLworICAKKyAgLyogTm93LCBpZiB0aGUgcmlza3kgbGVuZ3RoLCBjaGVjayBmb3Igb3ZlcmZsb3cgKi8KKyAgaWYgKChsb2RpZ2l0K3VzZWV4cCk9PTkpIAorICAgeworICAgIC8vIG5vdGUgd2UgY2Fubm90IGp1c3QgdGVzdCBmb3IgLXZlIHJlc3VsdCwgYXMgb3ZlcmZsb3cgY2FuIG1vdmUgYQorICAgIC8vIHplcm8gaW50byB0aGUgdG9wIGJpdCBbY29uc2lkZXIgNTU1NTU1NTU1NV0KKyAgICB0b3BkaWc9cmVzdWx0LzEwMDAwMDAwMDA7IC8vIGdldCB0b3AgZGlnaXQsIHByZXNlcnZpbmcgc2lnbgorICAgIGlmICh0b3BkaWchPW1hbnRbMF0pIAorICAgICB7IC8vIGRpZ2l0IG11c3QgbWF0Y2ggYW5kIGJlIHBvc2l0aXZlCisgICAgICAvLyBleGNlcHQgaW4gdGhlIHNwZWNpYWwgY2FzZSAuLi4KKyAgICAgIGlmIChyZXN1bHQ9PWphdmEubGFuZy5JbnRlZ2VyLk1JTl9WQUxVRSkgIC8vIGxvb2tzIGxpa2UgdGhlIHNwZWNpYWwKKyAgICAgICBpZiAoaW5kPT1pc25lZykgIC8vIHJlYWxseSB3YXMgbmVnYXRpdmUKKyAgICAgICAgaWYgKG1hbnRbMF09PTIpIAorICAgICAgICAgcmV0dXJuIHJlc3VsdDsgLy8gcmVhbGx5IGhhZCB0b3AgZGlnaXQgMgorICAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3RoaXMudG9TdHJpbmcoKSk7CisgICAgIH0KKyAgIH0KKyAgCisgIC8qIExvb2tzIGdvb2QgKi8KKyAgaWYgKGluZD09aXNwb3MpIAorICAgcmV0dXJuIHJlc3VsdDsKKyAgcmV0dXJuIChpbnQpLXJlc3VsdDsKKyAgfQorCisgLyoqCisgICogQ29udmVydHMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhIDxjb2RlPmxvbmc8L2NvZGU+LgorICAqIElmIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBoYXMgYSBub24temVybyBkZWNpbWFsIHBhcnQgaXQgaXMKKyAgKiBkaXNjYXJkZWQuIElmIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyBvdXQgb2YgdGhlIHBvc3NpYmxlCisgICogcmFuZ2UgZm9yIGEgPGNvZGU+bG9uZzwvY29kZT4gKDY0LWJpdCBzaWduZWQgaW50ZWdlcikgcmVzdWx0IHRoZW4KKyAgKiBvbmx5IHRoZSBsb3ctb3JkZXIgNjQgYml0cyBhcmUgdXNlZC4gKFRoYXQgaXMsIHRoZSBudW1iZXIgbWF5IGJlCisgICogPGk+ZGVjYXBpdGF0ZWQ8L2k+LikgIFRvIGF2b2lkIHVuZXhwZWN0ZWQgZXJyb3JzIHdoZW4gdGhlc2UKKyAgKiBjb25kaXRpb25zIG9jY3VyLCB1c2UgdGhlIHtAbGluayAjbG9uZ1ZhbHVlRXhhY3R9IG1ldGhvZC4KKyAgKgorICAqIEByZXR1cm4gQSA8Y29kZT5sb25nPC9jb2RlPiBjb252ZXJ0ZWQgZnJvbSA8Y29kZT50aGlzPC9jb2RlPiwKKyAgKiAgICAgICAgIHRydW5jYXRlZCBhbmQgZGVjYXBpdGF0ZWQgaWYgbmVjZXNzYXJ5LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBsb25nIGxvbmdWYWx1ZSgpeworICByZXR1cm4gdG9CaWdJbnRlZ2VyKCkubG9uZ1ZhbHVlKCk7CisgIH0KKworIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYSA8Y29kZT5sb25nPC9jb2RlPi4KKyAgKiBJZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaGFzIGEgbm9uLXplcm8gZGVjaW1hbCBwYXJ0IG9yIGlzCisgICogb3V0IG9mIHRoZSBwb3NzaWJsZSByYW5nZSBmb3IgYSA8Y29kZT5sb25nPC9jb2RlPiAoNjQtYml0IHNpZ25lZAorICAqIGludGVnZXIpIHJlc3VsdCB0aGVuIGFuIDxjb2RlPkFyaXRobWV0aWNFeGNlcHRpb248L2NvZGU+IGlzIHRocm93bi4KKyAgKgorICAqIEByZXR1cm4gQSA8Y29kZT5sb25nPC9jb2RlPiBlcXVhbCBpbiB2YWx1ZSB0byA8Y29kZT50aGlzPC9jb2RlPi4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgPGNvZGU+dGhpczwvY29kZT4gaGFzIGEgbm9uLXplcm8KKyAgKiAgICAgICAgICAgICAgICAgZGVjaW1hbCBwYXJ0LCBvciB3aWxsIG5vdCBmaXQgaW4gYQorICAqICAgICAgICAgICAgICAgICA8Y29kZT5sb25nPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgbG9uZyBsb25nVmFsdWVFeGFjdCgpeworICBpbnQgbG9kaWdpdDsKKyAgaW50IGNzdGFydD0wOworICBpbnQgdXNlZXhwPTA7CisgIGxvbmcgcmVzdWx0OworICBpbnQgaT0wOworICBsb25nIHRvcGRpZz0wOworICAvLyBJZGVudGljYWwgdG8gaW50VmFsdWVFeGFjdCBleGNlcHQgZm9yIHJlc3VsdD1sb25nLCBhbmQgZXhwPj0yMCB0ZXN0CisgIGlmIChpbmQ9PTApIAorICAgcmV0dXJuIDA7IC8vIGVhc3ksIGFuZCBxdWl0ZSBjb21tb24KKyAgbG9kaWdpdD1tYW50Lmxlbmd0aC0xOyAvLyBsYXN0IGluY2x1ZGVkIGRpZ2l0CisgIGlmIChleHA8MCkgCisgICB7CisgICAgbG9kaWdpdD1sb2RpZ2l0K2V4cDsgLy8gLSgtZXhwKQorICAgIC8qIGFsbCBkZWNpbWFsIHBsYWNlcyBtdXN0IGJlIDAgKi8KKyAgICBpZiAobG9kaWdpdDwwKSAKKyAgICAgY3N0YXJ0PTA7CisgICAgZWxzZSAKKyAgICAgY3N0YXJ0PWxvZGlnaXQrMTsKKyAgICBpZiAoKCEoYWxsemVybyhtYW50LGNzdGFydCkpKSkgCisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiRGVjaW1hbCBwYXJ0IG5vbi16ZXJvOiIrIiAiK3RoaXMudG9TdHJpbmcoKSk7CisgICAgaWYgKGxvZGlnaXQ8MCkgCisgICAgIHJldHVybiAwOyAvLyAtMTx0aGlzPDEKKyAgICB1c2VleHA9MDsKKyAgIH0KKyAgZWxzZSAKKyAgIHsvKiA+PTAgKi8KKyAgICBpZiAoKGV4cCttYW50Lmxlbmd0aCk+MTgpICAvLyBlYXJseSBleGl0CisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIit0aGlzLnRvU3RyaW5nKCkpOworICAgIHVzZWV4cD1leHA7CisgICB9CisgIAorICAvKiBjb252ZXJ0IHRoZSBtYW50aXNzYSB0byBiaW5hcnksIGlubGluZSBmb3Igc3BlZWQgKi8KKyAgLy8gbm90ZSB0aGF0IHdlIGNvdWxkIHNhZmVseSB1c2UgdGhlICd0ZXN0IGZvciB3cmFwIHRvIG5lZ2F0aXZlJworICAvLyBhbGdvcml0aG0gaGVyZSwgYnV0IGluc3RlYWQgd2UgcGFyYWxsZWwgdGhlIGludFZhbHVlRXhhY3QKKyAgLy8gYWxnb3JpdGhtIGZvciBlYXNlIG9mIGNoZWNraW5nIGFuZCBtYWludGVuYW5jZS4KKyAgcmVzdWx0PShsb25nKTA7CisgIHtpbnQgJDE3PWxvZGlnaXQrdXNlZXhwO2k9MDtpOmZvcig7aTw9JDE3O2krKyl7CisgICByZXN1bHQ9cmVzdWx0KjEwOworICAgaWYgKGk8PWxvZGlnaXQpIAorICAgIHJlc3VsdD1yZXN1bHQrbWFudFtpXTsKKyAgIH0KKyAgfS8qaSovCisgIAorICAvKiBOb3csIGlmIHRoZSByaXNreSBsZW5ndGgsIGNoZWNrIGZvciBvdmVyZmxvdyAqLworICBpZiAoKGxvZGlnaXQrdXNlZXhwKT09MTgpIAorICAgeworICAgIHRvcGRpZz1yZXN1bHQvMTAwMDAwMDAwMDAwMDAwMDAwMEw7IC8vIGdldCB0b3AgZGlnaXQsIHByZXNlcnZpbmcgc2lnbgorICAgIGlmICh0b3BkaWchPW1hbnRbMF0pIAorICAgICB7IC8vIGRpZ2l0IG11c3QgbWF0Y2ggYW5kIGJlIHBvc2l0aXZlCisgICAgICAvLyBleGNlcHQgaW4gdGhlIHNwZWNpYWwgY2FzZSAuLi4KKyAgICAgIGlmIChyZXN1bHQ9PWphdmEubGFuZy5Mb25nLk1JTl9WQUxVRSkgIC8vIGxvb2tzIGxpa2UgdGhlIHNwZWNpYWwKKyAgICAgICBpZiAoaW5kPT1pc25lZykgIC8vIHJlYWxseSB3YXMgbmVnYXRpdmUKKyAgICAgICAgaWYgKG1hbnRbMF09PTkpIAorICAgICAgICAgcmV0dXJuIHJlc3VsdDsgLy8gcmVhbGx5IGhhZCB0b3AgZGlnaXQgOQorICAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJDb252ZXJzaW9uIG92ZXJmbG93OiIrIiAiK3RoaXMudG9TdHJpbmcoKSk7CisgICAgIH0KKyAgIH0KKyAgCisgIC8qIExvb2tzIGdvb2QgKi8KKyAgaWYgKGluZD09aXNwb3MpIAorICAgcmV0dXJuIHJlc3VsdDsKKyAgcmV0dXJuIChsb25nKS1yZXN1bHQ7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSBkZWNpbWFsIHBvaW50IGhhcworICAqIGJlZW4gbW92ZWQgdG8gdGhlIGxlZnQgYnkgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIHBvc2l0aW9ucy4KKyAgKiBUaGUgcGFyYW1ldGVyLCA8Y29kZT5uPC9jb2RlPiwgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgcG9zaXRpb25zIHRvCisgICogbW92ZSB0aGUgZGVjaW1hbCBwb2ludC4KKyAgKiBUaGF0IGlzLCBpZiA8Y29kZT5uPC9jb2RlPiBpcyAwIG9yIHBvc2l0aXZlLCB0aGUgbnVtYmVyIHJldHVybmVkIGlzCisgICogZ2l2ZW4gYnk6CisgICogPHA+PGNvZGU+CisgICogdGhpcy5tdWx0aXBseShURU4ucG93KG5ldyBCaWdEZWNpbWFsKC1uKSkpCisgICogPC9jb2RlPgorICAqIDxwPgorICAqIDxjb2RlPm48L2NvZGU+IG1heSBiZSBuZWdhdGl2ZSwgaW4gd2hpY2ggY2FzZSB0aGUgbWV0aG9kIHJldHVybnMKKyAgKiB0aGUgc2FtZSByZXN1bHQgYXMgPGNvZGU+bW92ZVBvaW50UmlnaHQoLW4pPC9jb2RlPi4KKyAgKgorICAqIEBwYXJhbSAgbiBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgcGxhY2VzIHRvCisgICogICAgICAgICAgIG1vdmUgdGhlIGRlY2ltYWwgcG9pbnQgbGVmdHdhcmRzLgorICAqIEByZXR1cm4gICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGRlcml2ZWQgZnJvbQorICAqICAgICAgICAgICA8Y29kZT50aGlzPC9jb2RlPiwgd2l0aCB0aGUgZGVjaW1hbCBwb2ludCBtb3ZlZAorICAqICAgICAgICAgICA8Y29kZT5uPC9jb2RlPiBwbGFjZXMgdG8gdGhlIGxlZnQuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBtb3ZlUG9pbnRMZWZ0KGludCBuKXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlczsKKyAgLy8gdmVyeSBsaXR0bGUgcG9pbnQgaW4gb3B0aW1pemluZyBmb3Igc2hpZnQgb2YgMAorICByZXM9Y2xvbmUodGhpcyk7CisgIHJlcy5leHA9cmVzLmV4cC1uOworICByZXR1cm4gcmVzLmZpbmlzaChwbGFpbk1DLGZhbHNlKTsgLy8gZmluaXNoIHNldHMgZm9ybSBhbmQgY2hlY2tzIGV4cG9uZW50CisgIH0KKworIC8qKgorICAqIFJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSBkZWNpbWFsIHBvaW50IGhhcworICAqIGJlZW4gbW92ZWQgdG8gdGhlIHJpZ2h0IGJ5IGEgc3BlY2lmaWVkIG51bWJlciBvZiBwb3NpdGlvbnMuCisgICogVGhlIHBhcmFtZXRlciwgPGNvZGU+bjwvY29kZT4sIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHBvc2l0aW9ucyB0bworICAqIG1vdmUgdGhlIGRlY2ltYWwgcG9pbnQuCisgICogVGhhdCBpcywgaWYgPGNvZGU+bjwvY29kZT4gaXMgMCBvciBwb3NpdGl2ZSwgdGhlIG51bWJlciByZXR1cm5lZCBpcworICAqIGdpdmVuIGJ5OgorICAqIDxwPjxjb2RlPgorICAqIHRoaXMubXVsdGlwbHkoVEVOLnBvdyhuZXcgQmlnRGVjaW1hbChuKSkpCisgICogPC9jb2RlPgorICAqIDxwPgorICAqIDxjb2RlPm48L2NvZGU+IG1heSBiZSBuZWdhdGl2ZSwgaW4gd2hpY2ggY2FzZSB0aGUgbWV0aG9kIHJldHVybnMKKyAgKiB0aGUgc2FtZSByZXN1bHQgYXMgPGNvZGU+bW92ZVBvaW50TGVmdCgtbik8L2NvZGU+LgorICAqCisgICogQHBhcmFtICBuIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBwbGFjZXMgdG8KKyAgKiAgICAgICAgICAgbW92ZSB0aGUgZGVjaW1hbCBwb2ludCByaWdodHdhcmRzLgorICAqIEByZXR1cm4gICBBIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGRlcml2ZWQgZnJvbQorICAqICAgICAgICAgICA8Y29kZT50aGlzPC9jb2RlPiwgd2l0aCB0aGUgZGVjaW1hbCBwb2ludCBtb3ZlZAorICAqICAgICAgICAgICA8Y29kZT5uPC9jb2RlPiBwbGFjZXMgdG8gdGhlIHJpZ2h0LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbW92ZVBvaW50UmlnaHQoaW50IG4peworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVzOworICByZXM9Y2xvbmUodGhpcyk7CisgIHJlcy5leHA9cmVzLmV4cCtuOworICByZXR1cm4gcmVzLmZpbmlzaChwbGFpbk1DLGZhbHNlKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyB0aGUgc2NhbGUgb2YgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBSZXR1cm5zIGEgbm9uLW5lZ2F0aXZlIDxjb2RlPmludDwvY29kZT4gd2hpY2ggaXMgdGhlIHNjYWxlIG9mIHRoZQorICAqIG51bWJlci4gVGhlIHNjYWxlIGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGluIHRoZSBkZWNpbWFsIHBhcnQgb2YKKyAgKiB0aGUgbnVtYmVyIGlmIHRoZSBudW1iZXIgd2VyZSBmb3JtYXR0ZWQgd2l0aG91dCBleHBvbmVudGlhbAorICAqIG5vdGF0aW9uLgorICAqCisgICogQHJldHVybiBBbiA8Y29kZT5pbnQ8L2NvZGU+IHdob3NlIHZhbHVlIGlzIHRoZSBzY2FsZSBvZiB0aGlzCisgICogICAgICAgICA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgaW50IHNjYWxlKCl7CisgIGlmIChleHA+PTApIAorICAgcmV0dXJuIDA7IC8vIHNjYWxlIGNhbiBuZXZlciBiZSBuZWdhdGl2ZQorICByZXR1cm4gKGludCktZXhwOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2l0aCBhIGdpdmVuIHNjYWxlLgorICAqIDxwPgorICAqIElmIHRoZSBnaXZlbiBzY2FsZSAod2hpY2ggbXVzdCBiZSB6ZXJvIG9yIHBvc2l0aXZlKSBpcyB0aGUgc2FtZSBhcworICAqIG9yIGdyZWF0ZXIgdGhhbiB0aGUgbGVuZ3RoIG9mIHRoZSBkZWNpbWFsIHBhcnQgKHRoZSBzY2FsZSkgb2YgdGhpcworICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRoZW4gdHJhaWxpbmcgemVyb3Mgd2lsbCBiZSBhZGRlZCB0byB0aGUKKyAgKiBkZWNpbWFsIHBhcnQgYXMgbmVjZXNzYXJ5LgorICAqIDxwPgorICAqIElmIHRoZSBnaXZlbiBzY2FsZSBpcyBsZXNzIHRoYW4gdGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUKKyAgKiBzY2FsZSkgb2YgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0aGVuIHRyYWlsaW5nIGRpZ2l0cworICAqIHdpbGwgYmUgcmVtb3ZlZCwgYW5kIGluIHRoaXMgY2FzZSBhbgorICAqIDxjb2RlPkFyaXRobWV0aWNFeGNlcHRpb248L2NvZGU+IGlzIHRocm93biBpZiBhbnkgZGlzY2FyZGVkIGRpZ2l0cworICAqIGFyZSBub24temVyby4KKyAgKiA8cD4KKyAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgI3NldFNjYWxlKGludCwgaW50KX0sIHdoZXJlIHRoZSBmaXJzdCBwYXJhbWV0ZXIKKyAgKiBpcyB0aGUgc2NhbGUsIGFuZCB0aGUgc2Vjb25kIGlzCisgICogPGNvZGU+TWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlk8L2NvZGU+LgorICAqCisgICogQHBhcmFtICBzY2FsZSBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSBzY2FsZSBvZiB0aGUKKyAgKiAgICAgICAgICAgICAgIHJlc3VsdGluZyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBAcmV0dXJuICAgICAgIEEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gc2NhbGUuCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnNjYWxlPC9jb2RlPiBpcyBuZWdhdGl2ZS4KKyAgKiBAdGhyb3dzIEFyaXRobWV0aWNFeGNlcHRpb24gaWYgcmVkdWNpbmcgc2NhbGUgd291bGQgZGlzY2FyZAorICAqICAgICAgICAgICAgICAgbm9uLXplcm8gZGlnaXRzLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgc2V0U2NhbGUoaW50IHNjYWxlKXsKKyAgcmV0dXJuIHNldFNjYWxlKHNjYWxlLFJPVU5EX1VOTkVDRVNTQVJZKTsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyBhIHBsYWluIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpdGggYSBnaXZlbiBzY2FsZS4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgZ2l2ZW4gc2NhbGUgKHdoaWNoIG11c3QgYmUgemVybyBvciBwb3NpdGl2ZSkgaXMgdGhlIHNhbWUgYXMKKyAgKiBvciBncmVhdGVyIHRoYW4gdGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0ICh0aGUgc2NhbGUpIG9mIHRoaXMKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0aGVuIHRyYWlsaW5nIHplcm9zIHdpbGwgYmUgYWRkZWQgdG8gdGhlCisgICogZGVjaW1hbCBwYXJ0IGFzIG5lY2Vzc2FyeS4KKyAgKiA8cD4KKyAgKiBJZiB0aGUgZ2l2ZW4gc2NhbGUgaXMgbGVzcyB0aGFuIHRoZSBsZW5ndGggb2YgdGhlIGRlY2ltYWwgcGFydCAodGhlCisgICogc2NhbGUpIG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdGhlbiB0cmFpbGluZyBkaWdpdHMKKyAgKiB3aWxsIGJlIHJlbW92ZWQsIGFuZCB0aGUgcm91bmRpbmcgbW9kZSBnaXZlbiBieSB0aGUgc2Vjb25kCisgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSByZW1haW5pbmcgZGlnaXRzIGFyZQorICAqIGFmZmVjdGVkIGJ5IGEgY2FycnkuCisgICogSW4gdGhpcyBjYXNlLCBhbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGlzIHRocm93biBpZgorICAqIDxjb2RlPnJvdW5kPC9jb2RlPiBpcyBub3QgYSB2YWxpZCByb3VuZGluZyBtb2RlLgorICAqIDxwPgorICAqIElmIDxjb2RlPnJvdW5kPC9jb2RlPiBpcyA8Y29kZT5NYXRoQ29udGV4dC5ST1VORF9VTk5FQ0VTU0FSWTwvY29kZT4sCisgICogYW4gPGNvZGU+QXJpdGhtZXRpY0V4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duIGlmIGFueSBkaXNjYXJkZWQKKyAgKiBkaWdpdHMgYXJlIG5vbi16ZXJvLgorICAqCisgICogQHBhcmFtICBzY2FsZSBUaGUgPGNvZGU+aW50PC9jb2RlPiBzcGVjaWZ5aW5nIHRoZSBzY2FsZSBvZiB0aGUKKyAgKiAgICAgICAgICAgICAgIHJlc3VsdGluZyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBAcGFyYW0gIHJvdW5kIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHJvdW5kaW5nIG1vZGUgdG8gYmUgdXNlZCBmb3IKKyAgKiAgICAgICAgICAgICAgIHRoZSBkaXZpc2lvbiAoc2VlIHRoZSB7QGxpbmsgTWF0aENvbnRleHR9IGNsYXNzKS4KKyAgKiBAcmV0dXJuICAgICAgIEEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gc2NhbGUuCisgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgPGNvZGU+cm91bmQ8L2NvZGU+IGlzIG5vdCBhCisgICogICAgICAgICAgICAgICB2YWxpZCByb3VuZGluZyBtb2RlLgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT5zY2FsZTwvY29kZT4gaXMgbmVnYXRpdmUuCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnJvdW5kPC9jb2RlPiBpcworICAqICAgICAgICAgICAgICAgPGNvZGU+TWF0aENvbnRleHQuUk9VTkRfVU5ORUNFU1NBUlk8L2NvZGU+LCBhbmQKKyAgKiAgICAgICAgICAgICAgIHJlZHVjaW5nIHNjYWxlIHdvdWxkIGRpc2NhcmQgbm9uLXplcm8gZGlnaXRzLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgc2V0U2NhbGUoaW50IHNjYWxlLGludCByb3VuZCl7CisgIGludCBvdXJzY2FsZTsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlczsKKyAgaW50IHBhZGRpbmc9MDsKKyAgaW50IG5ld2xlbj0wOworICAvLyBhdCBwcmVzZW50IHRoaXMgbmF1Z2h0aWx5IG9ubHkgY2hlY2tzIHRoZSByb3VuZCB2YWx1ZSBpZiBpdCBpcworICAvLyBuZWVkZWQgKHVzZWQpLCBmb3Igc3BlZWQKKyAgb3Vyc2NhbGU9dGhpcy5zY2FsZSgpOworICBpZiAob3Vyc2NhbGU9PXNjYWxlKSAgLy8gYWxyZWFkeSBjb3JyZWN0IHNjYWxlCisgICBpZiAodGhpcy5mb3JtPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKSAgLy8gLi4gYW5kIGZvcm0KKyAgICByZXR1cm4gdGhpczsKKyAgcmVzPWNsb25lKHRoaXMpOyAvLyBuZWVkIGNvcHkKKyAgaWYgKG91cnNjYWxlPD1zY2FsZSkgCisgICB7IC8vIHNpbXBseSB6ZXJvLXBhZGRpbmcvY2hhbmdpbmcgZm9ybQorICAgIC8vIGlmIG91cnNjYWxlIGlzIDAgd2UgbWF5IGhhdmUgbG90cyBvZiAwcyB0byBhZGQKKyAgICBpZiAob3Vyc2NhbGU9PTApIAorICAgICBwYWRkaW5nPXJlcy5leHArc2NhbGU7CisgICAgZWxzZSAKKyAgICAgcGFkZGluZz1zY2FsZS1vdXJzY2FsZTsKKyAgICByZXMubWFudD1leHRlbmQocmVzLm1hbnQscmVzLm1hbnQubGVuZ3RoK3BhZGRpbmcpOworICAgIHJlcy5leHA9KGludCktc2NhbGU7IC8vIGFzIHJlcXVlc3RlZAorICAgfQorICBlbHNlIAorICAgey8qIG91cnNjYWxlPnNjYWxlOiBzaG9ydGVuaW5nLCBwcm9iYWJseSAqLworICAgIGlmIChzY2FsZTwwKSAKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJOZWdhdGl2ZSBzY2FsZToiKyIgIitzY2FsZSk7CisgICAgLy8gW3JvdW5kKCkgd2lsbCByYWlzZSBleGNlcHRpb24gaWYgaW52YWxpZCByb3VuZF0KKyAgICBuZXdsZW49cmVzLm1hbnQubGVuZ3RoLSgob3Vyc2NhbGUtc2NhbGUpKTsgLy8gWzw9MCBpcyBPS10KKyAgICByZXM9cmVzLnJvdW5kKG5ld2xlbixyb3VuZCk7IC8vIHJvdW5kIHRvIHJlcXVpcmVkIGxlbmd0aAorICAgIC8vIFRoaXMgY291bGQgaGF2ZSBzaGlmdGVkIGxlZnQgaWYgcm91bmQgKHNheSkgMC45LT4xWy4wXQorICAgIC8vIFJlcGFpciBpZiBzbyBieSBhZGRpbmcgYSB6ZXJvIGFuZCByZWR1Y2luZyBleHBvbmVudAorICAgIGlmIChyZXMuZXhwIT0oKGludCktc2NhbGUpKSAKKyAgICAgeworICAgICAgcmVzLm1hbnQ9ZXh0ZW5kKHJlcy5tYW50LHJlcy5tYW50Lmxlbmd0aCsxKTsKKyAgICAgIHJlcy5leHA9cmVzLmV4cC0xOworICAgICB9CisgICB9CisgIHJlcy5mb3JtPShieXRlKWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47IC8vIGJ5IGRlZmluaXRpb24KKyAgcmV0dXJuIHJlczsKKyAgfQorCisgLyoqCisgICogQ29udmVydHMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhIDxjb2RlPnNob3J0PC9jb2RlPi4KKyAgKiBJZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gaGFzIGEgbm9uLXplcm8gZGVjaW1hbCBwYXJ0IG9yIGlzCisgICogb3V0IG9mIHRoZSBwb3NzaWJsZSByYW5nZSBmb3IgYSA8Y29kZT5zaG9ydDwvY29kZT4gKDE2LWJpdCBzaWduZWQKKyAgKiBpbnRlZ2VyKSByZXN1bHQgdGhlbiBhbiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24uCisgICoKKyAgKiBAcmV0dXJuIEEgPGNvZGU+c2hvcnQ8L2NvZGU+IGVxdWFsIGluIHZhbHVlIHRvIDxjb2RlPnRoaXM8L2NvZGU+LgorICAqIEB0aHJvd3MgQXJpdGhtZXRpY0V4Y2VwdGlvbiBpZiA8Y29kZT50aGlzPC9jb2RlPiBoYXMgYSBub24temVybworICAqICAgICAgICAgICAgICAgICBkZWNpbWFsIHBhcnQsIG9yIHdpbGwgbm90IGZpdCBpbiBhCisgICogICAgICAgICAgICAgICAgIDxjb2RlPnNob3J0PC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgc2hvcnQgc2hvcnRWYWx1ZUV4YWN0KCl7CisgIGludCBudW07CisgIG51bT10aGlzLmludFZhbHVlRXhhY3QoKTsgLy8gd2lsbCBjaGVjayBkZWNpbWFsIHBhcnQgdG9vCisgIGlmICgobnVtPjMyNzY3KXwobnVtPCgtMzI3NjgpKSkgCisgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkNvbnZlcnNpb24gb3ZlcmZsb3c6IisiICIrdGhpcy50b1N0cmluZygpKTsKKyAgcmV0dXJuIChzaG9ydCludW07CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIHNpZ24gb2YgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiwgYXMgYW4KKyAgKiA8Y29kZT5pbnQ8L2NvZGU+LgorICAqIFRoaXMgcmV0dXJucyB0aGUgPGk+c2lnbnVtPC9pPiBmdW5jdGlvbiB2YWx1ZSB0aGF0IHJlcHJlc2VudHMgdGhlCisgICogc2lnbiBvZiB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIFRoYXQgaXMsIC0xIGlmIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyBuZWdhdGl2ZSwgMCBpZiBpdCBpcworICAqIG51bWVyaWNhbGx5IGVxdWFsIHRvIHplcm8sIG9yIDEgaWYgaXQgaXMgcG9zaXRpdmUuCisgICoKKyAgKiBAcmV0dXJuIEFuIDxjb2RlPmludDwvY29kZT4gd2hpY2ggaXMgLTEgaWYgdGhlCisgICogICAgICAgICA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBpcyBuZWdhdGl2ZSwgMCBpZiBpdCBpcworICAqICAgICAgICAgbnVtZXJpY2FsbHkgZXF1YWwgdG8gemVybywgb3IgMSBpZiBpdCBpcyBwb3NpdGl2ZS4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgaW50IHNpZ251bSgpeworICByZXR1cm4gKGludCl0aGlzLmluZDsgLy8gW25vdGUgdGhpcyBhc3N1bWVzIHZhbHVlcyBmb3IgaW5kLl0KKyAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorIC8qKgorICAqIENvbnZlcnRzIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gYQorICAqIDxjb2RlPmphdmEubWF0aC5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiA8cD4KKyAgKiBUaGlzIGlzIGFuIGV4YWN0IGNvbnZlcnNpb247IHRoZSByZXN1bHQgaXMgdGhlIHNhbWUgYXMgaWYgdGhlCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2VyZSBmb3JtYXR0ZWQgYXMgYSBwbGFpbiBudW1iZXIgd2l0aG91dAorICAqIGFueSByb3VuZGluZyBvciBleHBvbmVudCBhbmQgdGhlbiB0aGUKKyAgKiA8Y29kZT5qYXZhLm1hdGguQmlnRGVjaW1hbChqYXZhLmxhbmcuU3RyaW5nKTwvY29kZT4gY29uc3RydWN0b3IKKyAgKiB3ZXJlIHVzZWQgdG8gY29uc3RydWN0IHRoZSByZXN1bHQuCisgICogPHA+CisgICogPGk+KE5vdGU6IHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIG9ubHkgaW4gdGhlCisgICogPGNvZGU+Y29tLmlibS5pY3UubWF0aDwvY29kZT4gdmVyc2lvbiBvZiB0aGUgQmlnRGVjaW1hbCBjbGFzcy4KKyAgKiBJdCB3b3VsZCBub3QgYmUgcHJlc2VudCBpbiBhIDxjb2RlPmphdmEubWF0aDwvY29kZT4gdmVyc2lvbi4pPC9pPgorICAqCisgICogQHJldHVybiBUaGUgPGNvZGU+amF2YS5tYXRoLkJpZ0RlY2ltYWw8L2NvZGU+IGVxdWFsIGluIHZhbHVlCisgICogICAgICAgICB0byB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBqYXZhLm1hdGguQmlnRGVjaW1hbCB0b0JpZ0RlY2ltYWwoKXsKKyAgcmV0dXJuIG5ldyBqYXZhLm1hdGguQmlnRGVjaW1hbCh0aGlzLnVuc2NhbGVkVmFsdWUoKSx0aGlzLnNjYWxlKCkpOworICB9CisvLyNlbmRpZgorCisgLyoqCisgICogQ29udmVydHMgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhCisgICogPGNvZGU+amF2YS5tYXRoLkJpZ0ludGVnZXI8L2NvZGU+LgorICAqIDxwPgorICAqIEFueSBkZWNpbWFsIHBhcnQgaXMgdHJ1bmNhdGVkIChkaXNjYXJkZWQpLgorICAqIElmIGFuIGV4Y2VwdGlvbiBpcyBkZXNpcmVkIHNob3VsZCB0aGUgZGVjaW1hbCBwYXJ0IGJlIG5vbi16ZXJvLAorICAqIHVzZSB7QGxpbmsgI3RvQmlnSW50ZWdlckV4YWN0KCl9LgorICAqCisgICogQHJldHVybiBUaGUgPGNvZGU+amF2YS5tYXRoLkJpZ0ludGVnZXI8L2NvZGU+IGVxdWFsIGluIHZhbHVlCisgICogICAgICAgICB0byB0aGUgaW50ZWdlciBwYXJ0IG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGphdmEubWF0aC5CaWdJbnRlZ2VyIHRvQmlnSW50ZWdlcigpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVzPW51bGw7CisgIGludCBuZXdsZW49MDsKKyAgYnl0ZSBuZXdtYW50W109bnVsbDsKKyAgey8qc2VsZWN0Ki8KKyAgaWYgKChleHA+PTApJihmb3JtPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKSkKKyAgIHJlcz10aGlzOyAvLyBjYW4gbGF5b3V0IHNpbXBseQorICBlbHNlIGlmIChleHA+PTApCisgICB7CisgICAgcmVzPWNsb25lKHRoaXMpOyAvLyBzYWZlIGNvcHkKKyAgICByZXMuZm9ybT0oYnl0ZSljb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOOyAvLyAuLiBhbmQgcmVxdWVzdCBQTEFJTgorICAgfQorICBlbHNleworICAgeyAvLyBleHA8MDsgc2NhbGUgdG8gYmUgdHJ1bmNhdGVkCisgICAgLy8gd2UgY291bGQgdXNlIGRpdmlkZUludGVnZXIsIGJ1dCB3ZSBtYXkgYXMgd2VsbCBiZSBxdWlja2VyCisgICAgaWYgKCgoaW50KS10aGlzLmV4cCk+PXRoaXMubWFudC5sZW5ndGgpIAorICAgICByZXM9WkVSTzsgLy8gYWxsIGJsb3dzIGF3YXkKKyAgICBlbHNlIAorICAgICB7CisgICAgICByZXM9Y2xvbmUodGhpcyk7IC8vIHNhZmUgY29weQorICAgICAgbmV3bGVuPXJlcy5tYW50Lmxlbmd0aCtyZXMuZXhwOworICAgICAgbmV3bWFudD1uZXcgYnl0ZVtuZXdsZW5dOyAvLyBbc2hvcnRlcl0KKyAgICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KXJlcy5tYW50LDAsKGphdmEubGFuZy5PYmplY3QpbmV3bWFudCwwLG5ld2xlbik7CisgICAgICByZXMubWFudD1uZXdtYW50OworICAgICAgcmVzLmZvcm09KGJ5dGUpY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTjsKKyAgICAgIHJlcy5leHA9MDsKKyAgICAgfQorICAgfQorICB9CisgIH0KKyAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKG5ldyBqYXZhLmxhbmcuU3RyaW5nKHJlcy5sYXlvdXQoKSkpOworICB9CisKKyAvKioKKyAgKiBDb252ZXJ0cyB0aGlzIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHRvIGEKKyAgKiA8Y29kZT5qYXZhLm1hdGguQmlnSW50ZWdlcjwvY29kZT4uCisgICogPHA+CisgICogQW4gZXhjZXB0aW9uIGlzIHRocm93biBpZiB0aGUgZGVjaW1hbCBwYXJ0IChpZiBhbnkpIGlzIG5vbi16ZXJvLgorICAqCisgICogQHJldHVybiBUaGUgPGNvZGU+amF2YS5tYXRoLkJpZ0ludGVnZXI8L2NvZGU+IGVxdWFsIGluIHZhbHVlCisgICogICAgICAgICB0byB0aGUgaW50ZWdlciBwYXJ0IG9mIHRoaXMgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogQHRocm93cyBBcml0aG1ldGljRXhjZXB0aW9uIGlmIDxjb2RlPnRoaXM8L2NvZGU+IGhhcyBhIG5vbi16ZXJvCisgICogICAgICAgICBkZWNpbWFsIHBhcnQuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGphdmEubWF0aC5CaWdJbnRlZ2VyIHRvQmlnSW50ZWdlckV4YWN0KCl7CisgIC8qIHRlc3QgYW55IHRyYWlsaW5nIGRlY2ltYWwgcGFydCAqLworICBpZiAoZXhwPDApIAorICAgeyAvLyBwb3NzaWJsZSBkZWNpbWFsIHBhcnQKKyAgICAvKiBhbGwgZGVjaW1hbCBwbGFjZXMgbXVzdCBiZSAwOyBub3RlIGV4cDwwICovCisgICAgaWYgKCghKGFsbHplcm8obWFudCxtYW50Lmxlbmd0aCtleHApKSkpIAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkRlY2ltYWwgcGFydCBub24temVybzoiKyIgIit0aGlzLnRvU3RyaW5nKCkpOworICAgfQorICByZXR1cm4gdG9CaWdJbnRlZ2VyKCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGFzIGEgY2hhcmFjdGVyIGFycmF5LgorICAqIFRoZSByZXN1bHQgb2YgdGhpcyBtZXRob2QgaXMgdGhlIHNhbWUgYXMgdXNpbmcgdGhlCisgICogc2VxdWVuY2UgPGNvZGU+dG9TdHJpbmcoKS50b0NoYXJBcnJheSgpPC9jb2RlPiwgYnV0IGF2b2lkcyBjcmVhdGluZworICAqIHRoZSBpbnRlcm1lZGlhdGUgPGNvZGU+U3RyaW5nPC9jb2RlPiBhbmQgPGNvZGU+Y2hhcltdPC9jb2RlPgorICAqIG9iamVjdHMuCisgICoKKyAgKiBAcmV0dXJuIFRoZSA8Y29kZT5jaGFyW108L2NvZGU+IGFycmF5IGNvcnJlc3BvbmRpbmcgdG8gdGhpcworICAqICAgICAgICAgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGNoYXJbXSB0b0NoYXJBcnJheSgpeworICByZXR1cm4gbGF5b3V0KCk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGFzIGEgPGNvZGU+U3RyaW5nPC9jb2RlPi4KKyAgKiBUaGlzIHJldHVybnMgYSA8Y29kZT5TdHJpbmc8L2NvZGU+IHRoYXQgZXhhY3RseSByZXByZXNlbnRzIHRoaXMKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiwgYXMgZGVmaW5lZCBpbiB0aGUgZGVjaW1hbCBkb2N1bWVudGF0aW9uCisgICogKHNlZSB7QGxpbmsgQmlnRGVjaW1hbCBjbGFzcyBoZWFkZXJ9KS4KKyAgKiA8cD4KKyAgKiBCeSBkZWZpbml0aW9uLCB1c2luZyB0aGUge0BsaW5rICNCaWdEZWNpbWFsKFN0cmluZyl9IGNvbnN0cnVjdG9yCisgICogb24gdGhlIHJlc3VsdCA8Y29kZT5TdHJpbmc8L2NvZGU+IHdpbGwgY3JlYXRlIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0aGF0IGlzIGV4YWN0bHkgZXF1YWwgdG8gdGhlIG9yaWdpbmFsCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICoKKyAgKiBAcmV0dXJuIFRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+IGV4YWN0bHkgY29ycmVzcG9uZGluZyB0byB0aGlzCisgICogICAgICAgICA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBAc2VlICAgICNmb3JtYXQoaW50LCBpbnQpCisgICogQHNlZSAgICAjZm9ybWF0KGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpCisgICogQHNlZSAgICAjdG9DaGFyQXJyYXkoKQorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCl7CisgIHJldHVybiBuZXcgamF2YS5sYW5nLlN0cmluZyhsYXlvdXQoKSk7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIG51bWJlciBhcyBhIDxjb2RlPkJpZ0ludGVnZXI8L2NvZGU+IGFmdGVyIHJlbW92aW5nIHRoZQorICAqIHNjYWxlLgorICAqIFRoYXQgaXMsIHRoZSBudW1iZXIgaXMgZXhwcmVzc2VkIGFzIGEgcGxhaW4gbnVtYmVyLCBhbnkgZGVjaW1hbAorICAqIHBvaW50IGlzIHRoZW4gcmVtb3ZlZCAocmV0YWluaW5nIHRoZSBkaWdpdHMgb2YgYW55IGRlY2ltYWwgcGFydCksCisgICogYW5kIHRoZSByZXN1bHQgaXMgdGhlbiBjb252ZXJ0ZWQgdG8gYSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPi4KKyAgKgorICAqIEByZXR1cm4gVGhlIDxjb2RlPmphdmEubWF0aC5CaWdJbnRlZ2VyPC9jb2RlPiBlcXVhbCBpbiB2YWx1ZSB0bworICAqICAgICAgICAgdGhpcyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBtdWx0aXBsaWVkIGJ5IHRlbiB0byB0aGUKKyAgKiAgICAgICAgIHBvd2VyIG9mIDxjb2RlPnRoaXMuc2NhbGUoKTwvY29kZT4uCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGphdmEubWF0aC5CaWdJbnRlZ2VyIHVuc2NhbGVkVmFsdWUoKXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJlcz1udWxsOworICBpZiAoZXhwPj0wKSAKKyAgIHJlcz10aGlzOworICBlbHNlIAorICAgeworICAgIHJlcz1jbG9uZSh0aGlzKTsgLy8gc2FmZSBjb3B5CisgICAgcmVzLmV4cD0wOyAvLyBkcm9wIHNjYWxlCisgICB9CisgIHJldHVybiByZXMudG9CaWdJbnRlZ2VyKCk7CisgIH0KKworIC8qKgorICAqIFRyYW5zbGF0ZXMgYSA8Y29kZT5kb3VibGU8L2NvZGU+IHRvIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4uCisgICogPHA+CisgICogUmV0dXJucyBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdoaWNoIGlzIHRoZSBkZWNpbWFsCisgICogcmVwcmVzZW50YXRpb24gb2YgdGhlIDY0LWJpdCBzaWduZWQgYmluYXJ5IGZsb2F0aW5nIHBvaW50CisgICogcGFyYW1ldGVyLiBJZiB0aGUgcGFyYW1ldGVyIGlzIGluZmluaXRlLCBvciBpcyBub3QgYSBudW1iZXIgKE5hTiksCisgICogYSA8Y29kZT5OdW1iZXJGb3JtYXRFeGNlcHRpb248L2NvZGU+IGlzIHRocm93bi4KKyAgKiA8cD4KKyAgKiBUaGUgbnVtYmVyIGlzIGNvbnN0cnVjdGVkIGFzIHRob3VnaCA8Y29kZT5udW08L2NvZGU+IGhhZCBiZWVuCisgICogY29udmVydGVkIHRvIGEgPGNvZGU+U3RyaW5nPC9jb2RlPiB1c2luZyB0aGUKKyAgKiA8Y29kZT5Eb3VibGUudG9TdHJpbmcoKTwvY29kZT4gbWV0aG9kIGFuZCB0aGUKKyAgKiB7QGxpbmsgI0JpZ0RlY2ltYWwoamF2YS5sYW5nLlN0cmluZyl9IGNvbnN0cnVjdG9yIGhhZCB0aGVuIGJlZW4gdXNlZC4KKyAgKiBUaGlzIGlzIHR5cGljYWxseSBub3QgYW4gZXhhY3QgY29udmVyc2lvbi4KKyAgKgorICAqIEBwYXJhbSAgZHViIFRoZSA8Y29kZT5kb3VibGU8L2NvZGU+IHRvIGJlIHRyYW5zbGF0ZWQuCisgICogQHJldHVybiAgICAgVGhlIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGVxdWFsIGluIHZhbHVlIHRvCisgICogICAgICAgICAgICAgPGNvZGU+ZHViPC9jb2RlPi4KKyAgKiBAdGhyb3dzIE51bWJlckZvcm1hdEV4Y2VwdGlvbiBpZiB0aGUgcGFyYW1ldGVyIGlzIGluZmluaXRlIG9yCisgICogICAgICAgICAgICAgbm90IGEgbnVtYmVyLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBzdGF0aWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHZhbHVlT2YoZG91YmxlIGR1Yil7CisgIC8vIFJlbWluZGVyOiBhIHplcm8gZG91YmxlIHJldHVybnMgJzAuMCcsIHNvIHdlIGNhbm5vdCBmYXN0cGF0aCB0bworICAvLyB1c2UgdGhlIGNvbnN0YW50IFpFUk8uICBUaGlzIG1pZ2h0IGJlIGltcG9ydGFudCBlbm91Z2ggdG8ganVzdGlmeQorICAvLyBhIGZhY3RvcnkgYXBwcm9hY2gsIGEgY2FjaGUsIG9yIGEgZmV3IHByaXZhdGUgY29uc3RhbnRzLCBsYXRlci4KKyAgcmV0dXJuIG5ldyBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwoKG5ldyBqYXZhLmxhbmcuRG91YmxlKGR1YikpLnRvU3RyaW5nKCkpOworICB9CisKKyAvKioKKyAgKiBUcmFuc2xhdGVzIGEgPGNvZGU+bG9uZzwvY29kZT4gdG8gYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4KKyAgKiBUaGF0IGlzLCByZXR1cm5zIGEgcGxhaW4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd2hvc2UgdmFsdWUgaXMKKyAgKiBlcXVhbCB0byB0aGUgZ2l2ZW4gPGNvZGU+bG9uZzwvY29kZT4uCisgICoKKyAgKiBAcGFyYW0gIGxpbnQgVGhlIDxjb2RlPmxvbmc8L2NvZGU+IHRvIGJlIHRyYW5zbGF0ZWQuCisgICogQHJldHVybiAgICAgIFRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBlcXVhbCBpbiB2YWx1ZSB0bworICAqICAgICAgICAgICAgICA8Y29kZT5saW50PC9jb2RlPi4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgc3RhdGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB2YWx1ZU9mKGxvbmcgbGludCl7CisgIHJldHVybiB2YWx1ZU9mKGxpbnQsMCk7CisgIH0KKworIC8qKgorICAqIFRyYW5zbGF0ZXMgYSA8Y29kZT5sb25nPC9jb2RlPiB0byBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpdGggYQorICAqIGdpdmVuIHNjYWxlLgorICAqIFRoYXQgaXMsIHJldHVybnMgYSBwbGFpbiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB3aG9zZSB1bnNjYWxlZAorICAqIHZhbHVlIGlzIGVxdWFsIHRvIHRoZSBnaXZlbiA8Y29kZT5sb25nPC9jb2RlPiwgYWRqdXN0ZWQgYnkgdGhlCisgICogc2Vjb25kIHBhcmFtZXRlciwgPGNvZGU+c2NhbGU8L2NvZGU+LgorICAqIDxwPgorICAqIFRoZSByZXN1bHQgaXMgZ2l2ZW4gYnk6CisgICogPHA+PGNvZGU+CisgICogKG5ldyBCaWdEZWNpbWFsKGxpbnQpKS5kaXZpZGUoVEVOLnBvdyhuZXcgQmlnRGVjaW1hbChzY2FsZSkpKQorICAqIDwvY29kZT4KKyAgKiA8cD4KKyAgKiBBIDxjb2RlPk51bWJlckZvcm1hdEV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duIGlmIDxjb2RlPnNjYWxlPC9jb2RlPgorICAqIGlzIG5lZ2F0aXZlLgorICAqCisgICogQHBhcmFtICBsaW50ICBUaGUgPGNvZGU+bG9uZzwvY29kZT4gdG8gYmUgdHJhbnNsYXRlZC4KKyAgKiBAcGFyYW0gIHNjYWxlIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IHNjYWxlIHRvIGJlIGFwcGxpZWQuCisgICogQHJldHVybiAgICAgICBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZXF1YWwgaW4gdmFsdWUgdG8KKyAgKiAgICAgICAgICAgICAgIDxjb2RlPmxpbnQ8L2NvZGU+LgorICAqIEB0aHJvd3MgTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGlmIHRoZSBzY2FsZSBpcyBuZWdhdGl2ZS4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgc3RhdGljIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCB2YWx1ZU9mKGxvbmcgbGludCxpbnQgc2NhbGUpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVzPW51bGw7CisgIHsvKnNlbGVjdCovCisgIGlmIChsaW50PT0wKQorICAgcmVzPVpFUk87CisgIGVsc2UgaWYgKGxpbnQ9PTEpCisgICByZXM9T05FOworICBlbHNlIGlmIChsaW50PT0xMCkKKyAgIHJlcz1URU47CisgIGVsc2V7CisgICByZXM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChsaW50KTsKKyAgfQorICB9CisgIGlmIChzY2FsZT09MCkgCisgICByZXR1cm4gcmVzOworICBpZiAoc2NhbGU8MCkgCisgICB0aHJvdyBuZXcgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbigiTmVnYXRpdmUgc2NhbGU6IisiICIrc2NhbGUpOworICByZXM9Y2xvbmUocmVzKTsgLy8gc2FmZSBjb3B5IFtkbyBub3QgbXV0YXRlXQorICByZXMuZXhwPShpbnQpLXNjYWxlOyAvLyBleHBvbmVudCBpcyAtc2NhbGUKKyAgcmV0dXJuIHJlczsKKyAgfQorCisgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIC8qIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgCisgLyogPHNnbWw+IFJldHVybiBjaGFyIGFycmF5IHZhbHVlIG9mIGEgQmlnRGVjaW1hbCAoY29udmVyc2lvbiBmcm9tCisgICAgICAgQmlnRGVjaW1hbCB0byBsYWlkLW91dCBjYW5vbmljYWwgY2hhciBhcnJheSkuCisgICAgPHA+VGhlIG1hbnRpc3NhIHdpbGwgZWl0aGVyIGFscmVhZHkgaGF2ZSBiZWVuIHJvdW5kZWQgKGZvbGxvd2luZyBhbgorICAgICAgIG9wZXJhdGlvbikgb3Igd2lsbCBiZSBvZiBsZW5ndGggYXBwcm9wcmlhdGUgKGluIHRoZSBjYXNlIG9mCisgICAgICAgY29uc3RydWN0aW9uIGZyb20gYW4gaW50LCBmb3IgZXhhbXBsZSkuCisgICAgPHA+V2UgbXVzdCBub3QgYWx0ZXIgdGhlIG1hbnRpc3NhLCBoZXJlLgorICAgIDxwPidmb3JtJyBkZXNjcmliZXMgd2hldGhlciB3ZSBhcmUgdG8gdXNlIGV4cG9uZW50aWFsIG5vdGF0aW9uIChhbmQKKyAgICAgICBpZiBzbywgd2hpY2gpLCBvciBpZiB3ZSBhcmUgdG8gbGF5IG91dCBhcyBhIHBsYWluL3B1cmUgbnVtZXJpYy4KKyAgICA8L3NnbWw+ICovCisgCisgcHJpdmF0ZSBjaGFyW10gbGF5b3V0KCl7CisgIGNoYXIgY21hbnRbXTsKKyAgaW50IGk9MDsKKyAgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciBzYj1udWxsOworICBpbnQgZXVzZT0wOworICBpbnQgc2lnPTA7CisgIGNoYXIgY3NpZ249MDsKKyAgY2hhciByZWNbXT1udWxsOworICBpbnQgbmVlZHNpZ247CisgIGludCBtYWc7CisgIGludCBsZW49MDsKKyAgY21hbnQ9bmV3IGNoYXJbbWFudC5sZW5ndGhdOyAvLyBjb3B5IGJ5dGVbXSB0byBhIGNoYXJbXQorICB7aW50ICQxOD1tYW50Lmxlbmd0aDtpPTA7aTpmb3IoOyQxOD4wOyQxOC0tLGkrKyl7CisgICBjbWFudFtpXT0oY2hhcikobWFudFtpXSsoKGludCkoJzAnKSkpOworICAgfQorICB9LyppKi8KKyAgCisgIGlmIChmb3JtIT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LlBMQUlOKSAKKyAgIHsvKiBleHBvbmVudGlhbCBub3RhdGlvbiBuZWVkZWQgKi8KKyAgICBzYj1uZXcgamF2YS5sYW5nLlN0cmluZ0J1ZmZlcihjbWFudC5sZW5ndGgrMTUpOyAvLyAteC54eHhFKzk5OTk5OTk5OQorICAgIGlmIChpbmQ9PWlzbmVnKSAKKyAgICAgc2IuYXBwZW5kKCctJyk7CisgICAgZXVzZT0oZXhwK2NtYW50Lmxlbmd0aCktMTsgLy8gZXhwb25lbnQgdG8gdXNlCisgICAgLyogc2V0dXAgc2lnPXNpZ25pZmljYW50IGRpZ2l0cyBhbmQgY29weSB0byByZXN1bHQgKi8KKyAgICBpZiAoZm9ybT09Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5TQ0lFTlRJRklDKSAKKyAgICAgeyAvLyBbZGVmYXVsdF0KKyAgICAgIHNiLmFwcGVuZChjbWFudFswXSk7IC8vIHNpZ25pZmljYW50IGNoYXJhY3RlcgorICAgICAgaWYgKGNtYW50Lmxlbmd0aD4xKSAgLy8gaGF2ZSBkZWNpbWFsIHBhcnQKKyAgICAgICBzYi5hcHBlbmQoJy4nKS5hcHBlbmQoY21hbnQsMSxjbWFudC5sZW5ndGgtMSk7CisgICAgIH0KKyAgICBlbHNlIAorICAgICB7ZW5naW5lZXJpbmc6ZG97CisgICAgICBzaWc9ZXVzZSUzOyAvLyBjb21tb24KKyAgICAgIGlmIChzaWc8MCkgCisgICAgICAgc2lnPTMrc2lnOyAvLyBuZWdhdGl2ZSBleHBvbmVudAorICAgICAgZXVzZT1ldXNlLXNpZzsKKyAgICAgIHNpZysrOworICAgICAgaWYgKHNpZz49Y21hbnQubGVuZ3RoKSAKKyAgICAgICB7IC8vIHplcm8gcGFkZGluZyBtYXkgYmUgbmVlZGVkCisgICAgICAgIHNiLmFwcGVuZChjbWFudCwwLGNtYW50Lmxlbmd0aCk7CisgICAgICAgIHtpbnQgJDE5PXNpZy1jbWFudC5sZW5ndGg7Zm9yKDskMTk+MDskMTktLSl7CisgICAgICAgICBzYi5hcHBlbmQoJzAnKTsKKyAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgIH0KKyAgICAgIGVsc2UgCisgICAgICAgeyAvLyBkZWNpbWFsIHBvaW50IG5lZWRlZAorICAgICAgICBzYi5hcHBlbmQoY21hbnQsMCxzaWcpLmFwcGVuZCgnLicpLmFwcGVuZChjbWFudCxzaWcsY21hbnQubGVuZ3RoLXNpZyk7CisgICAgICAgfQorICAgICB9d2hpbGUoZmFsc2UpO30vKmVuZ2luZWVyaW5nKi8KKyAgICBpZiAoZXVzZSE9MCkgCisgICAgIHsKKyAgICAgIGlmIChldXNlPDApIAorICAgICAgIHsKKyAgICAgICAgY3NpZ249Jy0nOworICAgICAgICBldXNlPShpbnQpLWV1c2U7CisgICAgICAgfQorICAgICAgZWxzZSAKKyAgICAgICBjc2lnbj0nKyc7CisgICAgICBzYi5hcHBlbmQoJ0UnKS5hcHBlbmQoY3NpZ24pLmFwcGVuZChldXNlKTsKKyAgICAgfQorICAgIHJlYz1uZXcgY2hhcltzYi5sZW5ndGgoKV07CisgICAgVXRpbGl0eS5nZXRDaGFycyhzYiwgMCxzYi5sZW5ndGgoKSxyZWMsMCk7CisgICAgcmV0dXJuIHJlYzsKKyAgIH0KKyAgCisgIC8qIEhlcmUgZm9yIG5vbi1leHBvbmVudGlhbCAocGxhaW4pIG5vdGF0aW9uICovCisgIGlmIChleHA9PTApIAorICAgey8qIGVhc3kgKi8KKyAgICBpZiAoaW5kPj0wKSAKKyAgICAgcmV0dXJuIGNtYW50OyAvLyBub24tbmVnYXRpdmUgaW50ZWdlcgorICAgIHJlYz1uZXcgY2hhcltjbWFudC5sZW5ndGgrMV07CisgICAgcmVjWzBdPSctJzsKKyAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdCljbWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KXJlYywxLGNtYW50Lmxlbmd0aCk7CisgICAgcmV0dXJuIHJlYzsKKyAgIH0KKyAgCisgIC8qIE5lZWQgYSAnLicgYW5kL29yIHNvbWUgemVyb3MgKi8KKyAgbmVlZHNpZ249KGludCkoKGluZD09aXNuZWcpPzE6MCk7IC8vIHNwYWNlIGZvciBzaWduPyAgMCBvciAxCisgIAorICAvKiBNQUcgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBwb2ludCBpbiB0aGUgbWFudGlzc2EgKGluZGV4IG9mIHRoZQorICAgICBjaGFyYWN0ZXIgaXQgZm9sbG93cykgKi8KKyAgbWFnPWV4cCtjbWFudC5sZW5ndGg7CisgIAorICBpZiAobWFnPDEpIAorICAgey8qIDAuMDB4eHh4IGZvcm0gKi8KKyAgICBsZW49KG5lZWRzaWduKzIpLWV4cDsgLy8gbmVlZHNpZ24rMisoLW1hZykrY21hbnQubGVuZ3RoCisgICAgcmVjPW5ldyBjaGFyW2xlbl07CisgICAgaWYgKG5lZWRzaWduIT0wKSAKKyAgICAgcmVjWzBdPSctJzsKKyAgICByZWNbbmVlZHNpZ25dPScwJzsKKyAgICByZWNbbmVlZHNpZ24rMV09Jy4nOworICAgIHtpbnQgJDIwPShpbnQpLW1hZztpPW5lZWRzaWduKzI7aTpmb3IoOyQyMD4wOyQyMC0tLGkrKyl7IC8vIG1heWJlIG5vbmUKKyAgICAgcmVjW2ldPScwJzsKKyAgICAgfQorICAgIH0vKmkqLworICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KWNtYW50LDAsKGphdmEubGFuZy5PYmplY3QpcmVjLChuZWVkc2lnbisyKS1tYWcsY21hbnQubGVuZ3RoKTsKKyAgICByZXR1cm4gcmVjOworICAgfQorICAKKyAgaWYgKG1hZz5jbWFudC5sZW5ndGgpIAorICAgey8qIHh4eHgwMDAwIGZvcm0gKi8KKyAgICBsZW49bmVlZHNpZ24rbWFnOworICAgIHJlYz1uZXcgY2hhcltsZW5dOworICAgIGlmIChuZWVkc2lnbiE9MCkgCisgICAgIHJlY1swXT0nLSc7CisgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpY21hbnQsMCwoamF2YS5sYW5nLk9iamVjdClyZWMsbmVlZHNpZ24sY21hbnQubGVuZ3RoKTsKKyAgICB7aW50ICQyMT1tYWctY21hbnQubGVuZ3RoO2k9bmVlZHNpZ24rY21hbnQubGVuZ3RoO2k6Zm9yKDskMjE+MDskMjEtLSxpKyspeyAvLyBuZXZlciAwCisgICAgIHJlY1tpXT0nMCc7CisgICAgIH0KKyAgICB9LyppKi8KKyAgICByZXR1cm4gcmVjOworICAgfQorICAKKyAgLyogZGVjaW1hbCBwb2ludCBpcyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBtYW50aXNzYSAqLworICBsZW49KG5lZWRzaWduKzEpK2NtYW50Lmxlbmd0aDsKKyAgcmVjPW5ldyBjaGFyW2xlbl07CisgIGlmIChuZWVkc2lnbiE9MCkgCisgICByZWNbMF09Jy0nOworICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdCljbWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KXJlYyxuZWVkc2lnbixtYWcpOworICByZWNbbmVlZHNpZ24rbWFnXT0nLic7CisgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KWNtYW50LG1hZywoamF2YS5sYW5nLk9iamVjdClyZWMsKG5lZWRzaWduK21hZykrMSxjbWFudC5sZW5ndGgtbWFnKTsKKyAgcmV0dXJuIHJlYzsKKyAgfQorCisgLyogPHNnbWw+IENoZWNrcyBhIEJpZ0RlY2ltYWwgYXJndW1lbnQgdG8gZW5zdXJlIGl0J3MgYSB0cnVlIGludGVnZXIKKyAgICAgICBpbiBhIGdpdmVuIHJhbmdlLgorICAgIDxwPklmIE9LLCByZXR1cm5zIGl0IGFzIGFuIGludC4gPC9zZ21sPiAqLworIC8vIFtjdXJyZW50bHkgb25seSB1c2VkIGJ5IHBvd10KKyAKKyBwcml2YXRlIGludCBpbnRjaGVjayhpbnQgbWluLGludCBtYXgpeworICBpbnQgaTsKKyAgaT10aGlzLmludFZhbHVlRXhhY3QoKTsgLy8gW2NoZWNrcyBmb3Igbm9uLTAgZGVjaW1hbCBwYXJ0XQorICAvLyBVc2Ugc2FtZSBtZXNzYWdlIGFzIHRob3VnaCBpbnRWYWx1ZUV4YWN0IGZhaWxlZCBkdWUgdG8gc2l6ZQorICBpZiAoKGk8bWluKXwoaT5tYXgpKSAKKyAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiQ29udmVyc2lvbiBvdmVyZmxvdzoiKyIgIitpKTsKKyAgcmV0dXJuIGk7CisgIH0KKworIC8qIDxzZ21sPiBDYXJyeSBvdXQgZGl2aXNpb24gb3BlcmF0aW9ucy4gPC9zZ21sPiAqLworIC8qCisgICAgQXJnMSBpcyBvcGVyYXRpb24gY29kZTogRD1kaXZpZGUsIEk9aW50ZWdlciBkaXZpZGUsIFI9cmVtYWluZGVyCisgICAgQXJnMiBpcyB0aGUgcmhzLgorICAgIEFyZzMgaXMgdGhlIGNvbnRleHQuCisgICAgQXJnNCBpcyBleHBsaWNpdCBzY2FsZSBpZmYgY29kZT0nRCcgb3IgJ0knICgtMSBpZiBub25lKS4KKyAKKyAgICBVbmRlcmx5aW5nIGFsZ29yaXRobSAoY29tcGxpY2F0aW9ucyBmb3IgUmVtYWluZGVyIGZ1bmN0aW9uIGFuZAorICAgIHNjYWxlZCBkaXZpc2lvbiBhcmUgb21pdHRlZCBmb3IgY2xhcml0eSk6CisgCisgICAgICBUZXN0IGZvciB4LzAgYW5kIHRoZW4gMC94CisgICAgICBFeHAgPUV4cDEgLSBFeHAyCisgICAgICBFeHAgPUV4cCArbGVuKHZhcjEpIC1sZW4odmFyMikKKyAgICAgIFNpZ249U2lnbjEgKiBTaWduMgorICAgICAgUGFkIGFjY3VtdWxhdG9yIChWYXIxKSB0byBkb3VibGUtbGVuZ3RoIHdpdGggMCdzIChwYWQxKQorICAgICAgUGFkIFZhcjIgdG8gc2FtZSBsZW5ndGggYXMgVmFyMQorICAgICAgQjJCPTFzdCB0d28gZGlnaXRzIG9mIHZhcjIsICsxIHRvIGFsbG93IGZvciByb3VuZHVwCisgICAgICBoYXZlPTAKKyAgICAgIERvIHVudGlsIChoYXZlPWRpZ2l0cysxIE9SIHJlc2lkdWU9MCkKKyAgICAgICAgaWYgZXhwPDAgdGhlbiBpZiBpbnRlZ2VyIGRpdmlkZS9yZXNpZHVlIHRoZW4gbGVhdmUKKyAgICAgICAgdGhpc19kaWdpdD0wCisgICAgICAgIERvIGZvcmV2ZXIKKyAgICAgICAgICAgY29tcGFyZSBudW1iZXJzCisgICAgICAgICAgIGlmIDwwIHRoZW4gbGVhdmUgaW5uZXJfbG9vcAorICAgICAgICAgICBpZiA9MCB0aGVuICgtIHF1aWNrIGV4aXQgd2l0aG91dCBzdWJ0cmFjdCAtKSBkbworICAgICAgICAgICAgICB0aGlzX2RpZ2l0PXRoaXNfZGlnaXQrMTsgb3V0cHV0IHRoaXNfZGlnaXQKKyAgICAgICAgICAgICAgbGVhdmUgb3V0ZXJfbG9vcDsgZW5kCisgICAgICAgICAgIENvbXBhcmUgbGVuZ3RocyBvZiBudW1iZXJzIChtYW50aXNzYWUpOgorICAgICAgICAgICBJZiBzYW1lIHRoZW4gQ0E9Zmlyc3RfZGlnaXRfb2ZfVmFyMQorICAgICAgICAgICAgICAgICAgIGVsc2UgQ0E9Zmlyc3RfdHdvX2RpZ2l0c19vZl9WYXIxCisgICAgICAgICAgIG11bHQ9Y2EqMTAvYjJiICAgLS0gR29vZCBhbmQgc2FmZSBndWVzcyBhdCBkaXZpc29yCisgICAgICAgICAgIGlmIG11bHQ9MCB0aGVuIG11bHQ9MQorICAgICAgICAgICB0aGlzX2RpZ2l0PXRoaXNfZGlnaXQrbXVsdAorICAgICAgICAgICBzdWJ0cmFjdAorICAgICAgICAgICBlbmQgaW5uZXJfbG9vcAorICAgICAgICAgaWYgaGF2ZVw9MCB8IHRoaXNfZGlnaXRcPTAgdGhlbiBkbworICAgICAgICAgICBvdXRwdXQgdGhpc19kaWdpdAorICAgICAgICAgICBoYXZlPWhhdmUrMTsgZW5kCisgICAgICAgICB2YXIyPXZhcjIvMTAKKyAgICAgICAgIGV4cD1leHAtMQorICAgICAgICAgZW5kIG91dGVyX2xvb3AKKyAgICAgIGV4cD1leHArMSAgIC0tIHNldCB0aGUgcHJvcGVyIGV4cG9uZW50CisgICAgICBpZiBoYXZlPTAgdGhlbiBnZW5lcmF0ZSBhbnN3ZXI9MAorICAgICAgUmV0dXJuIHRvIEZJTklTSEVECisgICAgICBSZXN1bHQgZGVmaW5lZCBieSBNQVRIVjEKKyAKKyAgICBGb3IgZXh0ZW5kZWQgY29tbWVudGFyeSwgc2VlIERNU1JDTi4KKyAgKi8KKyAKKyBwcml2YXRlIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBkb2RpdmlkZShjaGFyIGNvZGUsY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCxpbnQgc2NhbGUpeworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgbGhzOworICBpbnQgcmVxZGlnOworICBpbnQgbmV3ZXhwOworICBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcmVzOworICBpbnQgbmV3bGVuOworICBieXRlIHZhcjFbXTsKKyAgaW50IHZhcjFsZW47CisgIGJ5dGUgdmFyMltdOworICBpbnQgdmFyMmxlbjsKKyAgaW50IGIyYjsKKyAgaW50IGhhdmU7CisgIGludCB0aGlzZGlnaXQ9MDsKKyAgaW50IGk9MDsKKyAgYnl0ZSB2Mj0wOworICBpbnQgYmE9MDsKKyAgaW50IG11bHQ9MDsKKyAgaW50IHN0YXJ0PTA7CisgIGludCBwYWRkaW5nPTA7CisgIGludCBkPTA7CisgIGJ5dGUgbmV3dmFyMVtdPW51bGw7CisgIGJ5dGUgbGFzdGhhdmU9MDsKKyAgaW50IGFjdGRpZz0wOworICBieXRlIG5ld21hbnRbXT1udWxsOworICAKKyAgaWYgKHNldC5sb3N0RGlnaXRzKSAKKyAgIGNoZWNrZGlnaXRzKHJocyxzZXQuZGlnaXRzKTsKKyAgbGhzPXRoaXM7IC8vIG5hbWUgZm9yIGNsYXJpdHkKKyAgCisgIC8vIFtub3RlIHdlIG11c3QgaGF2ZSBjaGVja2VkIGxvc3REaWdpdHMgYmVmb3JlIHRoZSBmb2xsb3dpbmcgY2hlY2tzXQorICBpZiAocmhzLmluZD09MCkgCisgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkRpdmlkZSBieSAwIik7IC8vIGluY2x1ZGVzIDAvMAorICBpZiAobGhzLmluZD09MCkgCisgICB7IC8vIDAveCA9PiAwIFtwb3NzaWJseSB3aXRoIC4wc10KKyAgICBpZiAoc2V0LmZvcm0hPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pIAorICAgICByZXR1cm4gWkVSTzsKKyAgICBpZiAoc2NhbGU9PSgtMSkpIAorICAgICByZXR1cm4gbGhzOworICAgIHJldHVybiBsaHMuc2V0U2NhbGUoc2NhbGUpOworICAgfQorICAKKyAgLyogUHJlcGFyZSBudW1iZXJzIGFjY29yZGluZyB0byBCaWdEZWNpbWFsIHJ1bGVzICovCisgIHJlcWRpZz1zZXQuZGlnaXRzOyAvLyBsb2NhbCBjb3B5IChoZWF2aWx5IHVzZWQpCisgIGlmIChyZXFkaWc+MCkgCisgICB7CisgICAgaWYgKGxocy5tYW50Lmxlbmd0aD5yZXFkaWcpIAorICAgICBsaHM9Y2xvbmUobGhzKS5yb3VuZChzZXQpOworICAgIGlmIChyaHMubWFudC5sZW5ndGg+cmVxZGlnKSAKKyAgICAgcmhzPWNsb25lKHJocykucm91bmQoc2V0KTsKKyAgIH0KKyAgZWxzZSAKKyAgIHsvKiBzY2FsZWQgZGl2aWRlICovCisgICAgaWYgKHNjYWxlPT0oLTEpKSAKKyAgICAgc2NhbGU9bGhzLnNjYWxlKCk7CisgICAgLy8gc2V0IHJlcWRpZyB0byBiZSBhdCBsZWFzdCBsYXJnZSBlbm91Z2ggZm9yIHRoZSBjb21wdXRhdGlvbgorICAgIHJlcWRpZz1saHMubWFudC5sZW5ndGg7IC8vIGJhc2UgbGVuZ3RoCisgICAgLy8gbmV4dCBsaW5lIGhhbmRsZXMgYm90aCBwb3NpdGl2ZSBsaHMuZXhwIGFuZCBhbHNvIHNjYWxlIG1pc21hdGNoCisgICAgaWYgKHNjYWxlIT0oKGludCktbGhzLmV4cCkpIAorICAgICByZXFkaWc9KHJlcWRpZytzY2FsZSkrbGhzLmV4cDsKKyAgICByZXFkaWc9KHJlcWRpZy0oKHJocy5tYW50Lmxlbmd0aC0xKSkpLXJocy5leHA7IC8vIHJlZHVjZSBieSBSSFMgZWZmZWN0CisgICAgaWYgKHJlcWRpZzxsaHMubWFudC5sZW5ndGgpIAorICAgICByZXFkaWc9bGhzLm1hbnQubGVuZ3RoOyAvLyBjbGFtcAorICAgIGlmIChyZXFkaWc8cmhzLm1hbnQubGVuZ3RoKSAKKyAgICAgcmVxZGlnPXJocy5tYW50Lmxlbmd0aDsgLy8gLi4KKyAgIH0KKyAgCisgIC8qIHByZWNhbGN1bGF0ZSBleHBvbmVudCAqLworICBuZXdleHA9KChsaHMuZXhwLXJocy5leHApK2xocy5tYW50Lmxlbmd0aCktcmhzLm1hbnQubGVuZ3RoOworICAvKiBJZiBuZXcgZXhwb25lbnQgLXZlLCB0aGVuIHNvbWUgcXVpY2sgZXhpdHMgYXJlIHBvc3NpYmxlICovCisgIGlmIChuZXdleHA8MCkgCisgICBpZiAoY29kZSE9J0QnKSAKKyAgICB7CisgICAgIGlmIChjb2RlPT0nSScpIAorICAgICAgcmV0dXJuIFpFUk87IC8vIGVhc3kgLSBubyBpbnRlZ2VyIHBhcnQKKyAgICAgLyogTXVzdCBiZSAnUic7IHJlbWFpbmRlciBpcyBbZmluaXNoZWQgY2xvbmUgb2ZdIGlucHV0IHZhbHVlICovCisgICAgIHJldHVybiBjbG9uZShsaHMpLmZpbmlzaChzZXQsZmFsc2UpOworICAgIH0KKyAgCisgIC8qIFdlIG5lZWQgc2xvdyBkaXZpc2lvbiAqLworICByZXM9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgpOyAvLyB3aGVyZSB3ZSdsbCBidWlsZCByZXN1bHQKKyAgcmVzLmluZD0oYnl0ZSkobGhzLmluZCpyaHMuaW5kKTsgLy8gZmluYWwgc2lnbiAoZm9yIEQvSSkKKyAgcmVzLmV4cD1uZXdleHA7IC8vIGluaXRpYWwgZXhwb25lbnQgKGZvciBEL0kpCisgIHJlcy5tYW50PW5ldyBieXRlW3JlcWRpZysxXTsgLy8gd2hlcmUgYnVpbGQgdGhlIHJlc3VsdAorICAKKyAgLyogTm93IFt2aXJ0dWFsbHkgcGFkIHRoZSBtYW50aXNzYWUgd2l0aCB0cmFpbGluZyB6ZXJvcyAqLworICAvLyBBbHNvIGNvcHkgdGhlIExIUywgd2hpY2ggd2lsbCBiZSBvdXIgd29ya2luZyBhcnJheQorICBuZXdsZW49KHJlcWRpZytyZXFkaWcpKzE7CisgIHZhcjE9ZXh0ZW5kKGxocy5tYW50LG5ld2xlbik7IC8vIGFsd2F5cyBtYWtlcyBsb25nZXIsIHNvIG5ldyBzYWZlIGFycmF5CisgIHZhcjFsZW49bmV3bGVuOyAvLyBbcmVtYWluaW5nIGRpZ2l0cyBhcmUgMF0KKyAgCisgIHZhcjI9cmhzLm1hbnQ7CisgIHZhcjJsZW49bmV3bGVuOworICAKKyAgLyogQ2FsY3VsYXRlIGZpcnN0IHR3byBkaWdpdHMgb2YgcmhzICh2YXIyKSwgKzEgZm9yIGxhdGVyIGVzdGltYXRpb25zICovCisgIGIyYj0odmFyMlswXSoxMCkrMTsKKyAgaWYgKHZhcjIubGVuZ3RoPjEpIAorICAgYjJiPWIyYit2YXIyWzFdOworICAKKyAgLyogc3RhcnQgdGhlIGxvbmctZGl2aXNpb24gbG9vcHMgKi8KKyAgaGF2ZT0wOworICB7b3V0ZXI6Zm9yKDs7KXsKKyAgIHRoaXNkaWdpdD0wOworICAgLyogZmluZCB0aGUgbmV4dCBkaWdpdCAqLworICAge2lubmVyOmZvcig7Oyl7CisgICAgaWYgKHZhcjFsZW48dmFyMmxlbikgCisgICAgIGJyZWFrIGlubmVyOyAvLyBWMSB0b28gbG93CisgICAgaWYgKHZhcjFsZW49PXZhcjJsZW4pIAorICAgICB7IC8vIGNvbXBhcmUgbmVlZGVkCisgICAgICB7Y29tcGFyZTpkb3sgLy8gY29tcGFyaXNvbgorICAgICAgIHtpbnQgJDIyPXZhcjFsZW47aT0wO2k6Zm9yKDskMjI+MDskMjItLSxpKyspeworICAgICAgICAvLyB2YXIxbGVuIGlzIGFsd2F5cyA8PSB2YXIxLmxlbmd0aAorICAgICAgICBpZiAoaTx2YXIyLmxlbmd0aCkgCisgICAgICAgICB2Mj12YXIyW2ldOworICAgICAgICBlbHNlIAorICAgICAgICAgdjI9KGJ5dGUpMDsKKyAgICAgICAgaWYgKHZhcjFbaV08djIpIAorICAgICAgICAgYnJlYWsgaW5uZXI7IC8vIFYxIHRvbyBsb3cKKyAgICAgICAgaWYgKHZhcjFbaV0+djIpIAorICAgICAgICAgYnJlYWsgY29tcGFyZTsgLy8gT0sgdG8gc3VidHJhY3QKKyAgICAgICAgfQorICAgICAgIH0vKmkqLworICAgICAgIC8qIHJlYWNoIGhlcmUgaWYgbGhzIGFuZCByaHMgYXJlIGlkZW50aWNhbDsgc3VidHJhY3Rpb24gd2lsbAorICAgICAgICAgIGluY3JlYXNlIGRpZ2l0IGJ5IG9uZSwgYW5kIHRoZSByZXNpZHVlIHdpbGwgYmUgMCBzbyB3ZQorICAgICAgICAgIGFyZSBkb25lOyBsZWF2ZSB0aGUgbG9vcCB3aXRoIHJlc2lkdWUgc2V0IHRvIDAgKGluIGNhc2UKKyAgICAgICAgICBjb2RlIGlzICdSJyBvciBST1VORF9VTk5FQ0VTU0FSWSBvciBhIFJPVU5EX0hBTEZfeHh4eCBpcworICAgICAgICAgIGJlaW5nIGNoZWNrZWQpICovCisgICAgICAgdGhpc2RpZ2l0Kys7CisgICAgICAgcmVzLm1hbnRbaGF2ZV09KGJ5dGUpdGhpc2RpZ2l0OworICAgICAgIGhhdmUrKzsKKyAgICAgICB2YXIxWzBdPShieXRlKTA7IC8vIHJlc2lkdWUgdG8gMCBbdGhpcyBpcyBhbGwgd2UnbGwgdGVzdF0KKyAgICAgICAvLyB2YXIxbGVuPTEgICAgICAtLSBbb3B0aW1pemVkIG91dF0KKyAgICAgICBicmVhayBvdXRlcjsKKyAgICAgIH13aGlsZShmYWxzZSk7fS8qY29tcGFyZSovCisgICAgICAvKiBwcmVwYXJlIGZvciBzdWJ0cmFjdGlvbi4gIEVzdGltYXRlIEJBIChsZW5ndGhzIHRoZSBzYW1lKSAqLworICAgICAgYmE9KGludCl2YXIxWzBdOyAvLyB1c2Ugb25seSBmaXJzdCBkaWdpdAorICAgICB9IC8vIGxlbmd0aHMgdGhlIHNhbWUKKyAgICBlbHNlIAorICAgICB7LyogbGhzIGxvbmdlciB0aGFuIHJocyAqLworICAgICAgLyogdXNlIGZpcnN0IHR3byBkaWdpdHMgZm9yIGVzdGltYXRlICovCisgICAgICBiYT12YXIxWzBdKjEwOworICAgICAgaWYgKHZhcjFsZW4+MSkgCisgICAgICAgYmE9YmErdmFyMVsxXTsKKyAgICAgfQorICAgIC8qIHN1YnRyYWN0aW9uIG5lZWRlZDsgVjE+PVYyICovCisgICAgbXVsdD0oYmEqMTApL2IyYjsKKyAgICBpZiAobXVsdD09MCkgCisgICAgIG11bHQ9MTsKKyAgICB0aGlzZGlnaXQ9dGhpc2RpZ2l0K211bHQ7CisgICAgLy8gc3VidHJhY3Q7IHZhcjEgcmV1c2FibGUKKyAgICB2YXIxPWJ5dGVhZGRzdWIodmFyMSx2YXIxbGVuLHZhcjIsdmFyMmxlbiwoaW50KS1tdWx0LHRydWUpOworICAgIGlmICh2YXIxWzBdIT0wKSAKKyAgICAgY29udGludWUgaW5uZXI7IC8vIG1heWJlIGFub3RoZXIgc3VidHJhY3QgbmVlZGVkCisgICAgLyogVjEgbm93IHByb2JhYmx5IGhhcyBsZWFkaW5nIHplcm9zLCByZW1vdmUgbGVhZGluZyAwJ3MgYW5kIHRyeQorICAgICAgIGFnYWluLiAoSXQgY291bGQgYmUgbG9uZ2VyIHRoYW4gVjIpICovCisgICAge2ludCAkMjM9dmFyMWxlbi0yO3N0YXJ0PTA7c3RhcnQ6Zm9yKDtzdGFydDw9JDIzO3N0YXJ0KyspeworICAgICBpZiAodmFyMVtzdGFydF0hPTApIAorICAgICAgYnJlYWsgc3RhcnQ7CisgICAgIHZhcjFsZW4tLTsKKyAgICAgfQorICAgIH0vKnN0YXJ0Ki8KKyAgICBpZiAoc3RhcnQ9PTApIAorICAgICBjb250aW51ZSBpbm5lcjsKKyAgICAvLyBzaGlmdCBsZWZ0CisgICAgamF2YS5sYW5nLlN5c3RlbS5hcnJheWNvcHkoKGphdmEubGFuZy5PYmplY3QpdmFyMSxzdGFydCwoamF2YS5sYW5nLk9iamVjdCl2YXIxLDAsdmFyMWxlbik7CisgICAgfQorICAgfS8qaW5uZXIqLworICAgCisgICAvKiBXZSBoYXZlIHRoZSBuZXh0IGRpZ2l0ICovCisgICBpZiAoKGhhdmUhPTApfCh0aGlzZGlnaXQhPTApKSAKKyAgICB7IC8vIHB1dCB0aGUgZGlnaXQgd2UgZ290CisgICAgIHJlcy5tYW50W2hhdmVdPShieXRlKXRoaXNkaWdpdDsKKyAgICAgaGF2ZSsrOworICAgICBpZiAoaGF2ZT09KHJlcWRpZysxKSkgCisgICAgICBicmVhayBvdXRlcjsgLy8gd2UgaGF2ZSBhbGwgd2UgbmVlZAorICAgICBpZiAodmFyMVswXT09MCkgCisgICAgICBicmVhayBvdXRlcjsgLy8gcmVzaWR1ZSBub3cgMAorICAgIH0KKyAgIC8qIGNhbiBsZWF2ZSBub3cgaWYgYSBzY2FsZWQgZGl2aWRlIGFuZCBleHBvbmVudCBpcyBzbWFsbCBlbm91Z2ggKi8KKyAgIGlmIChzY2FsZT49MCkgCisgICAgaWYgKCgoaW50KS1yZXMuZXhwKT5zY2FsZSkgCisgICAgIGJyZWFrIG91dGVyOworICAgLyogY2FuIGxlYXZlIG5vdyBpZiBub3QgRGl2aWRlIGFuZCBubyBpbnRlZ2VyIHBhcnQgbGVmdCAgKi8KKyAgIGlmIChjb2RlIT0nRCcpIAorICAgIGlmIChyZXMuZXhwPD0wKSAKKyAgICAgYnJlYWsgb3V0ZXI7CisgICByZXMuZXhwPXJlcy5leHAtMTsgLy8gcmVkdWNlIHRoZSBleHBvbmVudAorICAgLyogdG8gZ2V0IGhlcmUsIFYxIGlzIGxlc3MgdGhhbiBWMiwgc28gZGl2aWRlIFYyIGJ5IDEwIGFuZCBnbyBmb3IKKyAgICAgIHRoZSBuZXh0IGRpZ2l0ICovCisgICB2YXIybGVuLS07CisgICB9CisgIH0vKm91dGVyKi8KKyAgCisgIC8qIGhlcmUgd2hlbiB3ZSBoYXZlIGZpbmlzaGVkIGRpdmlkaW5nLCBmb3Igc29tZSByZWFzb24gKi8KKyAgLy8gaGF2ZSBpcyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyB3ZSBjb2xsZWN0ZWQgaW4gcmVzLm1hbnQKKyAgaWYgKGhhdmU9PTApIAorICAgaGF2ZT0xOyAvLyByZXMubWFudFswXSBpcyAwOyB3ZSBhbHdheXMgd2FudCBhIGRpZ2l0CisgIAorICBpZiAoKGNvZGU9PSdJJyl8KGNvZGU9PSdSJykpIAorICAgey8qIGNoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93IG5lZWRlZCAqLworICAgIGlmICgoaGF2ZStyZXMuZXhwKT5yZXFkaWcpIAorICAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkludGVnZXIgb3ZlcmZsb3ciKTsKKyAgICAKKyAgICBpZiAoY29kZT09J1InKSAKKyAgICAge3JlbWFpbmRlcjpkb3sKKyAgICAgIC8qIFdlIHdlcmUgZG9pbmcgUmVtYWluZGVyIC0tIHJldHVybiB0aGUgcmVzaWR1ZSAqLworICAgICAgaWYgKHJlcy5tYW50WzBdPT0wKSAgLy8gbm8gaW50ZWdlciBwYXJ0IHdhcyBmb3VuZAorICAgICAgIHJldHVybiBjbG9uZShsaHMpLmZpbmlzaChzZXQsZmFsc2UpOyAvLyAuLiBzbyByZXR1cm4gbGhzLCBjYW5vbmljYWwKKyAgICAgIGlmICh2YXIxWzBdPT0wKSAKKyAgICAgICByZXR1cm4gWkVSTzsgLy8gc2ltcGxlIDAgcmVzaWR1ZQorICAgICAgcmVzLmluZD1saHMuaW5kOyAvLyBzaWduIGlzIGFsd2F5cyBhcyBMSFMKKyAgICAgIC8qIENhbGN1bGF0ZSB0aGUgZXhwb25lbnQgYnkgc3VidHJhY3RpbmcgdGhlIG51bWJlciBvZiBwYWRkaW5nIHplcm9zCisgICAgICAgICB3ZSBhZGRlZCBhbmQgYWRkaW5nIHRoZSBvcmlnaW5hbCBleHBvbmVudCAqLworICAgICAgcGFkZGluZz0oKHJlcWRpZytyZXFkaWcpKzEpLWxocy5tYW50Lmxlbmd0aDsKKyAgICAgIHJlcy5leHA9KHJlcy5leHAtcGFkZGluZykrbGhzLmV4cDsKKyAgICAgIAorICAgICAgLyogc3RyaXAgaW5zaWduaWZpY2FudCBwYWRkaW5nIHplcm9zIGZyb20gcmVzaWR1ZSwgYW5kIGNyZWF0ZS9jb3B5CisgICAgICAgICB0aGUgcmVzdWx0aW5nIG1hbnRpc3NhIGlmIG5lZWQgYmUgKi8KKyAgICAgIGQ9dmFyMWxlbjsKKyAgICAgIHtpPWQtMTtpOmZvcig7aT49MTtpLS0pe2lmKCEoKHJlcy5leHA8bGhzLmV4cCkmKHJlcy5leHA8cmhzLmV4cCkpKWJyZWFrOworICAgICAgIGlmICh2YXIxW2ldIT0wKSAKKyAgICAgICAgYnJlYWsgaTsKKyAgICAgICBkLS07CisgICAgICAgcmVzLmV4cD1yZXMuZXhwKzE7CisgICAgICAgfQorICAgICAgfS8qaSovCisgICAgICBpZiAoZDx2YXIxLmxlbmd0aCkgCisgICAgICAgey8qIG5lZWQgdG8gcmVkdWNlICovCisgICAgICAgIG5ld3ZhcjE9bmV3IGJ5dGVbZF07CisgICAgICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KXZhcjEsMCwoamF2YS5sYW5nLk9iamVjdCluZXd2YXIxLDAsZCk7IC8vIHNob3J0ZW4KKyAgICAgICAgdmFyMT1uZXd2YXIxOworICAgICAgIH0KKyAgICAgIHJlcy5tYW50PXZhcjE7CisgICAgICByZXR1cm4gcmVzLmZpbmlzaChzZXQsZmFsc2UpOworICAgICB9d2hpbGUoZmFsc2UpO30vKnJlbWFpbmRlciovCisgICB9CisgICAKKyAgZWxzZSAKKyAgIHsvKiAnRCcgLS0gbm8gb3ZlcmZsb3cgY2hlY2sgbmVlZGVkICovCisgICAgLy8gSWYgdGhlcmUgd2FzIGEgcmVzaWR1ZSB0aGVuIGJ1bXAgdGhlIGZpbmFsIGRpZ2l0IChpZmYgMCBvciA1KQorICAgIC8vIHNvIHRoYXQgdGhlIHJlc2lkdWUgaXMgdmlzaWJsZSBmb3IgUk9VTkRfVVAsIFJPVU5EX0hBTEZfeHh4IGFuZAorICAgIC8vIFJPVU5EX1VOTkVDRVNTQVJZIGNoZWNrcyAoZXRjLikgbGF0ZXIuCisgICAgLy8gW2lmIHdlIGZpbmlzaGVkIGVhcmx5LCB0aGUgcmVzaWR1ZSB3aWxsIGJlIDBdCisgICAgaWYgKHZhcjFbMF0hPTApIAorICAgICB7IC8vIHJlc2lkdWUgbm90IDAKKyAgICAgIGxhc3RoYXZlPXJlcy5tYW50W2hhdmUtMV07CisgICAgICBpZiAoKChsYXN0aGF2ZSU1KSk9PTApIAorICAgICAgIHJlcy5tYW50W2hhdmUtMV09KGJ5dGUpKGxhc3RoYXZlKzEpOworICAgICB9CisgICB9CisgIAorICAvKiBIZXJlIGZvciBEaXZpZGUgb3IgSW50ZWdlciBEaXZpZGUgKi8KKyAgLy8gaGFuZGxlIHNjYWxlZCByZXN1bHRzIGZpcnN0IFsnSScgYWx3YXlzIHNjYWxlIDAsIG9wdGlvbmFsIGZvciAnRCddCisgIGlmIChzY2FsZT49MCkgCisgICB7c2NhbGVkOmRveworICAgIC8vIHNheSAnc2NhbGUgaGF2ZSByZXMuZXhwIGxlbicgc2NhbGUgaGF2ZSByZXMuZXhwIHJlcy5tYW50Lmxlbmd0aAorICAgIGlmIChoYXZlIT1yZXMubWFudC5sZW5ndGgpIAorICAgICAvLyBhbHJlYWR5IHBhZGRlZCB3aXRoIDAncywgc28ganVzdCBhZGp1c3QgZXhwb25lbnQKKyAgICAgcmVzLmV4cD1yZXMuZXhwLSgocmVzLm1hbnQubGVuZ3RoLWhhdmUpKTsKKyAgICAvLyBjYWxjdWxhdGUgbnVtYmVyIG9mIGRpZ2l0cyB3ZSByZWFsbHkgd2FudCBbbWF5IGJlIDBdCisgICAgYWN0ZGlnPXJlcy5tYW50Lmxlbmd0aC0oKCgoaW50KS1yZXMuZXhwKS1zY2FsZSkpOworICAgIHJlcy5yb3VuZChhY3RkaWcsc2V0LnJvdW5kaW5nTW9kZSk7IC8vIHJvdW5kIHRvIGRlc2lyZWQgbGVuZ3RoCisgICAgLy8gVGhpcyBjb3VsZCBoYXZlIHNoaWZ0ZWQgbGVmdCBpZiByb3VuZCAoc2F5KSAwLjktPjFbLjBdCisgICAgLy8gUmVwYWlyIGlmIHNvIGJ5IGFkZGluZyBhIHplcm8gYW5kIHJlZHVjaW5nIGV4cG9uZW50CisgICAgaWYgKHJlcy5leHAhPSgoaW50KS1zY2FsZSkpIAorICAgICB7CisgICAgICByZXMubWFudD1leHRlbmQocmVzLm1hbnQscmVzLm1hbnQubGVuZ3RoKzEpOworICAgICAgcmVzLmV4cD1yZXMuZXhwLTE7CisgICAgIH0KKyAgICByZXR1cm4gcmVzLmZpbmlzaChzZXQsdHJ1ZSk7IC8vIFtzdHJpcCBpZiBub3QgUExBSU5dCisgICB9d2hpbGUoZmFsc2UpO30vKnNjYWxlZCovCisgIAorICAvLyByZWFjaCBoZXJlIG9ubHkgaWYgYSBub24tc2NhbGVkCisgIGlmIChoYXZlPT1yZXMubWFudC5sZW5ndGgpIAorICAgeyAvLyBnb3QgZGlnaXRzKzEgZGlnaXRzCisgICAgcmVzLnJvdW5kKHNldCk7CisgICAgaGF2ZT1yZXFkaWc7CisgICB9CisgIGVsc2UgCisgICB7LyogaGF2ZTw9cmVxZGlnICovCisgICAgaWYgKHJlcy5tYW50WzBdPT0wKSAKKyAgICAgcmV0dXJuIFpFUk87IC8vIGZhc3RwYXRoCisgICAgLy8gbWFrZSB0aGUgbWFudGlzc2EgdHJ1bHkganVzdCAnaGF2ZScgbG9uZworICAgIC8vIFt3ZSBjb3VsZCBsZXQgZmluaXNoIGRvIHRoaXMsIGR1cmluZyBzdHJpcCwgaWYgd2UgYWRqdXN0ZWQKKyAgICAvLyB0aGUgZXhwb25lbnQ7IGhvd2V2ZXIsIHRydW5jYXRpb24gYXZvaWRzIHRoZSBzdHJpcCBsb29wXQorICAgIG5ld21hbnQ9bmV3IGJ5dGVbaGF2ZV07IC8vIHNob3J0ZW4KKyAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdClyZXMubWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KW5ld21hbnQsMCxoYXZlKTsKKyAgICByZXMubWFudD1uZXdtYW50OworICAgfQorICByZXR1cm4gcmVzLmZpbmlzaChzZXQsdHJ1ZSk7CisgIH0KKworIAorIC8qIDxzZ21sPiBSZXBvcnQgYSBjb252ZXJzaW9uIGV4Y2VwdGlvbi4gPC9zZ21sPiAqLworIAorIHByaXZhdGUgdm9pZCBiYWQoY2hhciBzW10peworICB0aHJvdyBuZXcgamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbigiTm90IGEgbnVtYmVyOiIrIiAiK2phdmEubGFuZy5TdHJpbmcudmFsdWVPZihzKSk7CisgIH0KKworIC8qIDxzZ21sPiBSZXBvcnQgYSBiYWQgYXJndW1lbnQgdG8gYSBtZXRob2QuIDwvc2dtbD4KKyAgICBBcmcxIGlzIG1ldGhvZCBuYW1lCisgICAgQXJnMiBpcyBhcmd1bWVudCBwb3NpdGlvbgorICAgIEFyZzMgaXMgd2hhdCB3YXMgZm91bmQgKi8KKyAKKyBwcml2YXRlIHZvaWQgYmFkYXJnKGphdmEubGFuZy5TdHJpbmcgbmFtZSxpbnQgcG9zLGphdmEubGFuZy5TdHJpbmcgdmFsdWUpeworICB0aHJvdyBuZXcgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQmFkIGFyZ3VtZW50IisiICIrcG9zKyIgIisidG8iKyIgIituYW1lKyI6IisiICIrdmFsdWUpOworICB9CisKKyAvKiA8c2dtbD4gRXh0ZW5kIGJ5dGUgYXJyYXkgdG8gZ2l2ZW4gbGVuZ3RoLCBwYWRkaW5nIHdpdGggMHMuICBJZiBubworICAgIGV4dGVuc2lvbiBpcyByZXF1aXJlZCB0aGVuIHJldHVybiB0aGUgc2FtZSBhcnJheS4gPC9zZ21sPgorIAorICAgIEFyZzEgaXMgdGhlIHNvdXJjZSBieXRlIGFycmF5CisgICAgQXJnMiBpcyB0aGUgbmV3IGxlbmd0aCAobG9uZ2VyKQorICAgICovCisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZVtdIGV4dGVuZChieXRlIGluYXJyW10saW50IG5ld2xlbil7CisgIGJ5dGUgbmV3YXJyW107CisgIGlmIChpbmFyci5sZW5ndGg9PW5ld2xlbikgCisgICByZXR1cm4gaW5hcnI7CisgIG5ld2Fycj1uZXcgYnl0ZVtuZXdsZW5dOworICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdClpbmFyciwwLChqYXZhLmxhbmcuT2JqZWN0KW5ld2FyciwwLGluYXJyLmxlbmd0aCk7CisgIC8vIDAgcGFkZGluZyBpcyBjYXJyaWVkIG91dCBieSB0aGUgSlZNIG9uIGFsbG9jYXRpb24gaW5pdGlhbGl6YXRpb24KKyAgcmV0dXJuIG5ld2FycjsKKyAgfQorCisgLyogPHNnbWw+IEFkZCBvciBzdWJ0cmFjdCB0d28gPj0wIGludGVnZXJzIGluIGJ5dGUgYXJyYXlzCisgICAgPHA+VGhpcyByb3V0aW5lIHBlcmZvcm1zIHRoZSBjYWxjdWxhdGlvbjoKKyAgICA8cHJlPgorICAgIEM9QSsoQipNKQorICAgIDwvcHJlPgorICAgIFdoZXJlIE0gaXMgaW4gdGhlIHJhbmdlIC05IHRocm91Z2ggKzkKKyAgICA8cD4KKyAgICBJZiBNPDAgdGhlbiBBPj1CIG11c3QgYmUgdHJ1ZSwgc28gdGhlIHJlc3VsdCBpcyBhbHdheXMKKyAgICBub24tbmVnYXRpdmUuCisgCisgICAgTGVhZGluZyB6ZXJvcyBhcmUgbm90IHJlbW92ZWQgYWZ0ZXIgYSBzdWJ0cmFjdGlvbi4gIFRoZSByZXN1bHQgaXMKKyAgICBlaXRoZXIgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBsb25nZXIgb2YgQSBhbmQgQiwgb3IgMSBsb25nZXIgdGhhbgorICAgIHRoYXQgKGlmIGEgY2Fycnkgb2NjdXJyZWQpLgorIAorICAgIEEgaXMgbm90IGFsdGVyZWQgdW5sZXNzIEFyZzYgaXMgMS4KKyAgICBCIGlzIG5ldmVyIGFsdGVyZWQuCisgCisgICAgQXJnMSBpcyBBCisgICAgQXJnMiBpcyBBIGxlbmd0aCB0byB1c2UgKGlmIGxvbmdlciB0aGFuIEEsIHBhZCB3aXRoIDAncykKKyAgICBBcmczIGlzIEIKKyAgICBBcmc0IGlzIEIgbGVuZ3RoIHRvIHVzZSAoaWYgbG9uZ2VyIHRoYW4gQiwgcGFkIHdpdGggMCdzKQorICAgIEFyZzUgaXMgTSwgdGhlIG11bHRpcGxpZXIKKyAgICBBcmc2IGlzIDEgaWYgQSBjYW4gYmUgdXNlZCB0byBidWlsZCB0aGUgcmVzdWx0IChpZiBpdCBmaXRzKQorIAorICAgIFRoaXMgcm91dGluZSBpcyBzZXZlcmVseSBwZXJmb3JtYW5jZS1jcml0aWNhbDsgKmFueSogY2hhbmdlIGhlcmUKKyAgICBtdXN0IGJlIG1lYXN1cmVkICh0aW1lZCkgdG8gYXNzdXJlIG5vIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uLgorICAgICovCisgLy8gMTk5Ni4wMi4yMCAtLSBlbmhhbmNlZCB2ZXJzaW9uIG9mIERNU1JDTiBhbGdvcml0aG0gKDE5ODEpCisgLy8gMTk5Ny4xMC4wNSAtLSBjaGFuZ2VkIHRvIGJ5dGUgYXJyYXlzIChmcm9tIGNoYXIgYXJyYXlzKQorIC8vIDE5OTguMDcuMDEgLS0gY2hhbmdlZCB0byBhbGxvdyBkZXN0cnVjdGl2ZSByZXVzZSBvZiBMSFMKKyAvLyAxOTk4LjA3LjAxIC0tIGNoYW5nZWQgdG8gYWxsb3cgdmlydHVhbCBsZW5ndGhzIGZvciB0aGUgYXJyYXlzCisgLy8gMTk5OC4xMi4yOSAtLSB1c2UgbG9va2FzaWRlIGZvciBkaWdpdC9jYXJyeSBjYWxjdWxhdGlvbgorIC8vIDE5OTkuMDguMDcgLS0gYXZvaWQgbXVsdGlwbHkgd2hlbiBtdWx0PTEsIGFuZCBtYWtlIGRiIGFuIGludAorIC8vIDE5OTkuMTIuMjIgLS0gc3BlY2lhbCBjYXNlIG09LTEsIGFsc28gZHJvcCAwIHNwZWNpYWwgY2FzZQorIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGVbXSBieXRlYWRkc3ViKGJ5dGUgYVtdLGludCBhdmxlbixieXRlIGJbXSxpbnQgYnZsZW4saW50IG0sYm9vbGVhbiByZXVzZSl7CisgIGludCBhbGVuZ3RoOworICBpbnQgYmxlbmd0aDsKKyAgaW50IGFwOworICBpbnQgYnA7CisgIGludCBtYXhhcnI7CisgIGJ5dGUgcmViW107CisgIGJvb2xlYW4gcXVpY2ttOworICBpbnQgZGlnaXQ7CisgIGludCBvcD0wOworICBpbnQgZHA5MD0wOworICBieXRlIG5ld2FycltdOworICBpbnQgaT0wOworICAKKyAgCisgIAorICAKKyAgLy8gV2UnbGwgdXN1YWxseSBiZSByaWdodCBpZiB3ZSBhc3N1bWUgbm8gY2FycnkKKyAgYWxlbmd0aD1hLmxlbmd0aDsgLy8gcGh5c2ljYWwgbGVuZ3RocworICBibGVuZ3RoPWIubGVuZ3RoOyAvLyAuLgorICBhcD1hdmxlbi0xOyAvLyAtPiBmaW5hbCAocmlnaHRtb3N0KSBkaWdpdAorICBicD1idmxlbi0xOyAvLyAuLgorICBtYXhhcnI9YnA7CisgIGlmIChtYXhhcnI8YXApIAorICAgbWF4YXJyPWFwOworICByZWI9KGJ5dGVbXSludWxsOyAvLyByZXN1bHQgYnl0ZSBhcnJheQorICBpZiAocmV1c2UpIAorICAgaWYgKChtYXhhcnIrMSk9PWFsZW5ndGgpIAorICAgIHJlYj1hOyAvLyBPSyB0byByZXVzZSBBCisgIGlmIChyZWI9PW51bGwpIAorICAgcmViPW5ldyBieXRlW21heGFycisxXTsgLy8gbmVlZCBuZXcgYXJyYXkKKyAgCisgIHF1aWNrbT1mYWxzZTsgLy8gMSBpZiBubyBtdWx0aXBseSBuZWVkZWQKKyAgaWYgKG09PTEpIAorICAgcXVpY2ttPXRydWU7IC8vIG1vc3QgY29tbW9uCisgIGVsc2UgCisgICBpZiAobT09KC0xKSkgCisgICAgcXVpY2ttPXRydWU7IC8vIGFsc28gY29tbW9uCisgIAorICBkaWdpdD0wOyAvLyBkaWdpdCwgd2l0aCBjYXJyeSBvciBib3Jyb3cKKyAge29wPW1heGFycjtvcDpmb3IoO29wPj0wO29wLS0peworICAgaWYgKGFwPj0wKSAKKyAgICB7CisgICAgIGlmIChhcDxhbGVuZ3RoKSAKKyAgICAgIGRpZ2l0PWRpZ2l0K2FbYXBdOyAvLyB3aXRoaW4gQQorICAgICBhcC0tOworICAgIH0KKyAgIGlmIChicD49MCkgCisgICAgeworICAgICBpZiAoYnA8Ymxlbmd0aCkgCisgICAgICB7IC8vIHdpdGhpbiBCCisgICAgICAgaWYgKHF1aWNrbSkgCisgICAgICAgIHsKKyAgICAgICAgIGlmIChtPjApIAorICAgICAgICAgIGRpZ2l0PWRpZ2l0K2JbYnBdOyAvLyBtb3N0IGNvbW1vbgorICAgICAgICAgZWxzZSAKKyAgICAgICAgICBkaWdpdD1kaWdpdC1iW2JwXTsgLy8gYWxzbyBjb21tb24KKyAgICAgICAgfQorICAgICAgIGVsc2UgCisgICAgICAgIGRpZ2l0PWRpZ2l0KyhiW2JwXSptKTsKKyAgICAgIH0KKyAgICAgYnAtLTsKKyAgICB9CisgICAvKiByZXN1bHQgc28gZmFyIChkaWdpdCkgY291bGQgYmUgLTkwIHRocm91Z2ggOTkgKi8KKyAgIGlmIChkaWdpdDwxMCkgCisgICAgaWYgKGRpZ2l0Pj0wKSAKKyAgICAge3F1aWNrOmRveyAvLyAwLTkKKyAgICAgIHJlYltvcF09KGJ5dGUpZGlnaXQ7CisgICAgICBkaWdpdD0wOyAvLyBubyBjYXJyeQorICAgICAgY29udGludWUgb3A7CisgICAgIH13aGlsZShmYWxzZSk7fS8qcXVpY2sqLworICAgZHA5MD1kaWdpdCs5MDsKKyAgIHJlYltvcF09Ynl0ZWRpZ1tkcDkwXTsgLy8gdGhpcyBkaWdpdAorICAgZGlnaXQ9Ynl0ZWNhcltkcDkwXTsgLy8gY2Fycnkgb3IgYm9ycm93CisgICB9CisgIH0vKm9wKi8KKyAgCisgIGlmIChkaWdpdD09MCkgCisgICByZXR1cm4gcmViOyAvLyBubyBjYXJyeQorICAvLyBmb2xsb3dpbmcgbGluZSB3aWxsIGJlY29tZSBhbiBBc3NlcnQsIGxhdGVyCisgIC8vIGlmIGRpZ2l0PDAgdGhlbiBzaWduYWwgQXJpdGhtZXRpY0V4Y2VwdGlvbigiaW50ZXJuYWwuZXJyb3IgWyJkaWdpdCJdIikKKyAgCisgIC8qIFdlIGhhdmUgY2FycnkgLS0gbmVlZCB0byBtYWtlIHNwYWNlIGZvciB0aGUgZXh0cmEgZGlnaXQgKi8KKyAgbmV3YXJyPShieXRlW10pbnVsbDsKKyAgaWYgKHJldXNlKSAKKyAgIGlmICgobWF4YXJyKzIpPT1hLmxlbmd0aCkgCisgICAgbmV3YXJyPWE7IC8vIE9LIHRvIHJldXNlIEEKKyAgaWYgKG5ld2Fycj09bnVsbCkgCisgICBuZXdhcnI9bmV3IGJ5dGVbbWF4YXJyKzJdOworICBuZXdhcnJbMF09KGJ5dGUpZGlnaXQ7IC8vIHRoZSBjYXJyaWVkIGRpZ2l0IC4uCisgIC8vIC4uIGFuZCBhbGwgdGhlIHJlc3QgW3VzZSBsb2NhbCBsb29wIGZvciBzaG9ydCBudW1iZXJzXQorICBpZiAobWF4YXJyPDEwKSAKKyAgIHtpbnQgJDI0PW1heGFycisxO2k9MDtpOmZvcig7JDI0PjA7JDI0LS0saSsrKXsKKyAgICBuZXdhcnJbaSsxXT1yZWJbaV07CisgICAgfQorICAgfS8qaSovCisgIGVsc2UgCisgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdClyZWIsMCwoamF2YS5sYW5nLk9iamVjdCluZXdhcnIsMSxtYXhhcnIrMSk7CisgIHJldHVybiBuZXdhcnI7CisgIH0KKworIC8qIDxzZ21sPiBJbml0aWFsaXplciBmb3IgZGlnaXQgYXJyYXkgcHJvcGVydGllcyAobG9va2FzaWRlKS4gPC9zZ21sPgorICAgIFJldHVybnMgdGhlIGRpZ2l0IGFycmF5LCBhbmQgaW5pdGlhbGl6ZXMgdGhlIGNhcnJ5IGFycmF5LiAqLworIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGVbXSBkaWdpbml0KCl7CisgIGJ5dGUgd29ya1tdOworICBpbnQgb3A9MDsKKyAgaW50IGRpZ2l0PTA7CisgIHdvcms9bmV3IGJ5dGVbKDkwKzk5KSsxXTsKKyAge29wPTA7b3A6Zm9yKDtvcDw9KDkwKzk5KTtvcCsrKXsKKyAgIGRpZ2l0PW9wLTkwOworICAgaWYgKGRpZ2l0Pj0wKSAKKyAgICB7CisgICAgIHdvcmtbb3BdPShieXRlKShkaWdpdCUxMCk7CisgICAgIGJ5dGVjYXJbb3BdPShieXRlKShkaWdpdC8xMCk7IC8vIGNhbGN1bGF0ZSBjYXJyeQorICAgICBjb250aW51ZSBvcDsKKyAgICB9CisgICAvLyBib3Jyb3dpbmcuLi4KKyAgIGRpZ2l0PWRpZ2l0KzEwMDsgLy8geWVzLCB0aGlzIGlzIHJpZ2h0IFtjb25zaWRlciAtNTBdCisgICB3b3JrW29wXT0oYnl0ZSkoZGlnaXQlMTApOworICAgYnl0ZWNhcltvcF09KGJ5dGUpKChkaWdpdC8xMCktMTApOyAvLyBjYWxjdWxhdGUgYm9ycm93IFtOQjogLSBhZnRlciAlXQorICAgfQorICB9LypvcCovCisgIHJldHVybiB3b3JrOworICB9CisKKyAvKiA8c2dtbD4gQ3JlYXRlIGEgY29weSBvZiBCaWdEZWNpbWFsIG9iamVjdCBmb3IgbG9jYWwgdXNlLgorICAgIDxwPlRoaXMgZG9lcyBOT1QgbWFrZSBhIGNvcHkgb2YgdGhlIG1hbnRpc3NhIGFycmF5LgorICAgIDwvc2dtbD4KKyAgICBBcmcxIGlzIHRoZSBCaWdEZWNpbWFsIHRvIGNsb25lIChub24tbnVsbCkKKyAgICAqLworIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBjbG9uZShjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgZGVjKXsKKyAgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGNvcHk7CisgIGNvcHk9bmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCgpOworICBjb3B5LmluZD1kZWMuaW5kOworICBjb3B5LmV4cD1kZWMuZXhwOworICBjb3B5LmZvcm09ZGVjLmZvcm07CisgIGNvcHkubWFudD1kZWMubWFudDsKKyAgcmV0dXJuIGNvcHk7CisgIH0KKworIC8qIDxzZ21sPiBDaGVjayBvbmUgb3IgdHdvIG51bWJlcnMgZm9yIGxvc3QgZGlnaXRzLiA8L3NnbWw+CisgICAgQXJnMSBpcyBSSFMgKG9yIG51bGwsIGlmIG5vbmUpCisgICAgQXJnMiBpcyBjdXJyZW50IERJR0lUUyBzZXR0aW5nCisgICAgcmV0dXJucyBxdWlldGx5IG9yIHRocm93cyBhbiBleGNlcHRpb24gKi8KKyAKKyBwcml2YXRlIHZvaWQgY2hlY2tkaWdpdHMoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIHJocyxpbnQgZGlnKXsKKyAgaWYgKGRpZz09MCkgCisgICByZXR1cm47IC8vIGRvbid0IGNoZWNrIGlmIGRpZ2l0cz0wCisgIC8vIGZpcnN0IGNoZWNrIGxocy4uLgorICBpZiAodGhpcy5tYW50Lmxlbmd0aD5kaWcpIAorICAgaWYgKCghKGFsbHplcm8odGhpcy5tYW50LGRpZykpKSkgCisgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJUb28gbWFueSBkaWdpdHM6IisiICIrdGhpcy50b1N0cmluZygpKTsKKyAgaWYgKHJocz09bnVsbCkgCisgICByZXR1cm47IC8vIG1vbmFkaWMKKyAgaWYgKHJocy5tYW50Lmxlbmd0aD5kaWcpIAorICAgaWYgKCghKGFsbHplcm8ocmhzLm1hbnQsZGlnKSkpKSAKKyAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIlRvbyBtYW55IGRpZ2l0czoiKyIgIityaHMudG9TdHJpbmcoKSk7CisgIH0KKworIC8qIDxzZ21sPiBSb3VuZCB0byBzcGVjaWZpZWQgZGlnaXRzLCBpZiBuZWNlc3NhcnkuIDwvc2dtbD4KKyAgICBBcmcxIGlzIHJlcXVlc3RlZCBNYXRoQ29udGV4dCBbd2l0aCBsZW5ndGggYW5kIHJvdW5kaW5nIG1vZGVdCisgICAgcmV0dXJucyB0aGlzLCBmb3IgY29udmVuaWVuY2UgKi8KKyAKKyBwcml2YXRlIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCByb3VuZChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCl7CisgIHJldHVybiByb3VuZChzZXQuZGlnaXRzLHNldC5yb3VuZGluZ01vZGUpOworICB9CisKKyAvKiA8c2dtbD4gUm91bmQgdG8gc3BlY2lmaWVkIGRpZ2l0cywgaWYgbmVjZXNzYXJ5LgorICAgIEFyZzEgaXMgcmVxdWVzdGVkIGxlbmd0aCAoZGlnaXRzIHRvIHJvdW5kIHRvKQorICAgICAgICAgICAgW21heSBiZSA8PTAgd2hlbiBjYWxsZWQgZnJvbSBmb3JtYXQsIGRvZGl2aWRlLCBldGMuXQorICAgIEFyZzIgaXMgcm91bmRpbmcgbW9kZQorICAgIHJldHVybnMgdGhpcywgZm9yIGNvbnZlbmllbmNlCisgCisgICAgaW5kIGFuZCBleHAgYXJlIGFkanVzdGVkLCBidXQgbm90IGNsZWFyZWQgZm9yIGEgbWFudGlzc2Egb2YgemVybworIAorICAgIFRoZSBsZW5ndGggb2YgdGhlIG1hbnRpc3NhIHJldHVybmVkIHdpbGwgYmUgQXJnMSwgZXhjZXB0IHdoZW4gQXJnMQorICAgIGlzIDAsIGluIHdoaWNoIGNhc2UgdGhlIHJldHVybmVkIG1hbnRpc3NhIGxlbmd0aCB3aWxsIGJlIDEuCisgICAgPC9zZ21sPgorICAgICovCisgCisgcHJpdmF0ZSBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwgcm91bmQoaW50IGxlbixpbnQgbW9kZSl7CisgIGludCBhZGp1c3Q7CisgIGludCBzaWduOworICBieXRlIG9sZG1hbnRbXTsKKyAgYm9vbGVhbiByZXVzZT1mYWxzZTsKKyAgYnl0ZSBmaXJzdD0wOworICBpbnQgaW5jcmVtZW50OworICBieXRlIG5ld21hbnRbXT1udWxsOworICBhZGp1c3Q9bWFudC5sZW5ndGgtbGVuOworICBpZiAoYWRqdXN0PD0wKSAKKyAgIHJldHVybiB0aGlzOyAvLyBub3d0IHRvIGRvCisgIAorICBleHA9ZXhwK2FkanVzdDsgLy8gZXhwb25lbnQgb2YgcmVzdWx0CisgIHNpZ249KGludClpbmQ7IC8vIHNhdmUgW2Fzc3VtZXMgLTEsIDAsIDFdCisgIG9sZG1hbnQ9bWFudDsgLy8gc2F2ZQorICBpZiAobGVuPjApIAorICAgeworICAgIC8vIHJlbW92ZSB0aGUgdW53YW50ZWQgZGlnaXRzCisgICAgbWFudD1uZXcgYnl0ZVtsZW5dOworICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KW9sZG1hbnQsMCwoamF2YS5sYW5nLk9iamVjdCltYW50LDAsbGVuKTsKKyAgICByZXVzZT10cnVlOyAvLyBjYW4gcmV1c2UgbWFudGlzc2EKKyAgICBmaXJzdD1vbGRtYW50W2xlbl07IC8vIGZpcnN0IG9mIGRpc2NhcmRlZCBkaWdpdHMKKyAgIH0KKyAgZWxzZSAKKyAgIHsvKiBsZW48PTAgKi8KKyAgICBtYW50PVpFUk8ubWFudDsKKyAgICBpbmQ9aXN6ZXJvOworICAgIHJldXNlPWZhbHNlOyAvLyBjYW5ub3QgcmV1c2UgbWFudGlzc2EKKyAgICBpZiAobGVuPT0wKSAKKyAgICAgZmlyc3Q9b2xkbWFudFswXTsKKyAgICBlbHNlIAorICAgICBmaXJzdD0oYnl0ZSkwOyAvLyBbdmlydHVhbCBkaWdpdF0KKyAgIH0KKyAgCisgIC8vIGRlY2lkZSByb3VuZGluZyBhZGp1c3RtZW50IGRlcGVuZGluZyBvbiBtb2RlLCBzaWduLCBhbmQgZGlzY2FyZGVkIGRpZ2l0cworICBpbmNyZW1lbnQ9MDsgLy8gYnVtcGVyCisgIHttb2Rlczpkb3svKnNlbGVjdCovCisgIGlmIChtb2RlPT1ST1VORF9IQUxGX1VQKQorICAgeyAvLyBkZWZhdWx0IGZpcnN0IFttb3N0IGNvbW1vbl0KKyAgICBpZiAoZmlyc3Q+PTUpIAorICAgICBpbmNyZW1lbnQ9c2lnbjsKKyAgIH0KKyAgZWxzZSBpZiAobW9kZT09Uk9VTkRfVU5ORUNFU1NBUlkpCisgICB7IC8vIGRlZmF1bHQgZm9yIHNldFNjYWxlKCkKKyAgICAvLyBkaXNjYXJkaW5nIGFueSBub24temVybyBkaWdpdHMgaXMgYW4gZXJyb3IKKyAgICBpZiAoKCEoYWxsemVybyhvbGRtYW50LGxlbikpKSkgCisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuQXJpdGhtZXRpY0V4Y2VwdGlvbigiUm91bmRpbmcgbmVjZXNzYXJ5Iik7CisgICB9CisgIGVsc2UgaWYgKG1vZGU9PVJPVU5EX0hBTEZfRE9XTikKKyAgIHsgLy8gMC41MDAwIGdvZXMgZG93bgorICAgIGlmIChmaXJzdD41KSAKKyAgICAgaW5jcmVtZW50PXNpZ247CisgICAgZWxzZSAKKyAgICAgaWYgKGZpcnN0PT01KSAKKyAgICAgIGlmICgoIShhbGx6ZXJvKG9sZG1hbnQsbGVuKzEpKSkpIAorICAgICAgIGluY3JlbWVudD1zaWduOworICAgfQorICBlbHNlIGlmIChtb2RlPT1ST1VORF9IQUxGX0VWRU4pCisgICB7IC8vIDAuNTAwMCBnb2VzIGRvd24gaWYgbGVmdCBkaWdpdCBldmVuCisgICAgaWYgKGZpcnN0PjUpIAorICAgICBpbmNyZW1lbnQ9c2lnbjsKKyAgICBlbHNlIAorICAgICBpZiAoZmlyc3Q9PTUpIAorICAgICAgeworICAgICAgIGlmICgoIShhbGx6ZXJvKG9sZG1hbnQsbGVuKzEpKSkpIAorICAgICAgICBpbmNyZW1lbnQ9c2lnbjsKKyAgICAgICBlbHNlIC8qIDAuNTAwMCAqLworICAgICAgICBpZiAoKCgobWFudFttYW50Lmxlbmd0aC0xXSklMikpPT0xKSAKKyAgICAgICAgIGluY3JlbWVudD1zaWduOworICAgICAgfQorICAgfQorICBlbHNlIGlmIChtb2RlPT1ST1VORF9ET1dOKXsKKyAgIC8vIG5ldmVyIGluY3JlbWVudAorICB9ZWxzZSBpZiAobW9kZT09Uk9VTkRfVVApCisgICB7IC8vIGluY3JlbWVudCBpZiBkaXNjYXJkZWQgbm9uLXplcm8KKyAgICBpZiAoKCEoYWxsemVybyhvbGRtYW50LGxlbikpKSkgCisgICAgIGluY3JlbWVudD1zaWduOworICAgfQorICBlbHNlIGlmIChtb2RlPT1ST1VORF9DRUlMSU5HKQorICAgeyAvLyBtb3JlIHBvc2l0aXZlCisgICAgaWYgKHNpZ24+MCkgCisgICAgIGlmICgoIShhbGx6ZXJvKG9sZG1hbnQsbGVuKSkpKSAKKyAgICAgIGluY3JlbWVudD1zaWduOworICAgfQorICBlbHNlIGlmIChtb2RlPT1ST1VORF9GTE9PUikKKyAgIHsgLy8gbW9yZSBuZWdhdGl2ZQorICAgIGlmIChzaWduPDApIAorICAgICBpZiAoKCEoYWxsemVybyhvbGRtYW50LGxlbikpKSkgCisgICAgICBpbmNyZW1lbnQ9c2lnbjsKKyAgIH0KKyAgZWxzZXsKKyAgIHRocm93IG5ldyBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJCYWQgcm91bmQgdmFsdWU6IisiICIrbW9kZSk7CisgIH0KKyAgfXdoaWxlKGZhbHNlKTt9Lyptb2RlcyovCisgIAorICBpZiAoaW5jcmVtZW50IT0wKSAKKyAgIHtidW1wOmRveworICAgIGlmIChpbmQ9PWlzemVybykgCisgICAgIHsKKyAgICAgIC8vIHdlIG11c3Qgbm90IHN1YnRyYWN0IGZyb20gMCwgYnV0IHJlc3VsdCBpcyB0cml2aWFsIGFueXdheQorICAgICAgbWFudD1PTkUubWFudDsKKyAgICAgIGluZD0oYnl0ZSlpbmNyZW1lbnQ7CisgICAgIH0KKyAgICBlbHNlIAorICAgICB7CisgICAgICAvLyBtYW50aXNzYSBpcyBub24tMDsgd2UgY2FuIHNhZmVseSBhZGQgb3Igc3VidHJhY3QgMQorICAgICAgaWYgKGluZD09aXNuZWcpIAorICAgICAgIGluY3JlbWVudD0oaW50KS1pbmNyZW1lbnQ7CisgICAgICBuZXdtYW50PWJ5dGVhZGRzdWIobWFudCxtYW50Lmxlbmd0aCxPTkUubWFudCwxLGluY3JlbWVudCxyZXVzZSk7CisgICAgICBpZiAobmV3bWFudC5sZW5ndGg+bWFudC5sZW5ndGgpIAorICAgICAgIHsgLy8gaGFkIGEgY2FycnkKKyAgICAgICAgLy8gZHJvcCByaWdodG1vc3QgZGlnaXQgYW5kIHJhaXNlIGV4cG9uZW50CisgICAgICAgIGV4cCsrOworICAgICAgICAvLyBtYW50IGlzIGFscmVhZHkgdGhlIGNvcnJlY3QgbGVuZ3RoCisgICAgICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KW5ld21hbnQsMCwoamF2YS5sYW5nLk9iamVjdCltYW50LDAsbWFudC5sZW5ndGgpOworICAgICAgIH0KKyAgICAgIGVsc2UgCisgICAgICAgbWFudD1uZXdtYW50OworICAgICB9CisgICB9d2hpbGUoZmFsc2UpO30vKmJ1bXAqLworICAvLyByb3VuZGluZyBjYW4gaW5jcmVhc2UgZXhwb25lbnQgc2lnbmlmaWNhbnRseQorICBpZiAoZXhwPk1heEV4cCkgCisgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkV4cG9uZW50IE92ZXJmbG93OiIrIiAiK2V4cCk7CisgIHJldHVybiB0aGlzOworICB9CisKKyAvKiA8c2dtbD4gVGVzdCBpZiByaWdodG1vc3QgZGlnaXRzIGFyZSBhbGwgMC4KKyAgICBBcmcxIGlzIGEgbWFudGlzc2EgYXJyYXkgdG8gdGVzdAorICAgIEFyZzIgaXMgdGhlIG9mZnNldCBvZiBmaXJzdCBkaWdpdCB0byBjaGVjaworICAgICAgICAgICAgW21heSBiZSBuZWdhdGl2ZTsgaWYgc28sIGRpZ2l0cyB0byBsZWZ0IGFyZSAwJ3NdCisgICAgcmV0dXJucyAxIGlmIGFsbCB0aGUgZGlnaXRzIHN0YXJ0aW5nIGF0IEFyZzIgYXJlIDAKKyAKKyAgICBBcmcyIG1heSBiZSBiZXlvbmQgYXJyYXkgYm91bmRzLCBpbiB3aGljaCBjYXNlIDEgaXMgcmV0dXJuZWQKKyAgICA8L3NnbWw+ICovCisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBhbGx6ZXJvKGJ5dGUgYXJyYXlbXSxpbnQgc3RhcnQpeworICBpbnQgaT0wOworICBpZiAoc3RhcnQ8MCkgCisgICBzdGFydD0wOworICB7aW50ICQyNT1hcnJheS5sZW5ndGgtMTtpPXN0YXJ0O2k6Zm9yKDtpPD0kMjU7aSsrKXsKKyAgIGlmIChhcnJheVtpXSE9MCkgCisgICAgcmV0dXJuIGZhbHNlOworICAgfQorICB9LyppKi8KKyAgcmV0dXJuIHRydWU7CisgIH0KKworIC8qIDxzZ21sPiBDYXJyeSBvdXQgZmluYWwgY2hlY2tzIGFuZCBjYW5vbmljYWxpemF0aW9uCisgICAgPHA+CisgICAgVGhpcyBmaW5pc2hlcyBvZmYgdGhlIGN1cnJlbnQgbnVtYmVyIGJ5OgorICAgICAgMS4gUm91bmRpbmcgaWYgbmVjZXNzYXJ5IChOQjogbGVuZ3RoIGluY2x1ZGVzIGxlYWRpbmcgemVyb3MpCisgICAgICAyLiBTdHJpcHBpbmcgdHJhaWxpbmcgemVyb3MgKGlmIHJlcXVlc3RlZCBhbmQgXFBMQUlOKQorICAgICAgMy4gU3RyaXBwaW5nIGxlYWRpbmcgemVyb3MgKGFsd2F5cykKKyAgICAgIDQuIFNlbGVjdGluZyBleHBvbmVudGlhbCBub3RhdGlvbiAoaWYgcmVxdWlyZWQpCisgICAgICA1LiBDb252ZXJ0aW5nIGEgemVybyByZXN1bHQgdG8ganVzdCAnMCcgKGlmIFxQTEFJTikKKyAgICBJbiBwcmFjdGljZSwgdGhlc2Ugb3BlcmF0aW9ucyBvdmVybGFwIGFuZCBzaGFyZSBjb2RlLgorICAgIEl0IGFsd2F5cyBzZXRzIGZvcm0uCisgICAgPC9zZ21sPgorICAgIEFyZzEgaXMgcmVxdWVzdGVkIE1hdGhDb250ZXh0IChsZW5ndGggdG8gcm91bmQgdG8sIHRyaWdnZXIsIGFuZCBGT1JNKQorICAgIEFyZzIgaXMgMSBpZiB0cmFpbGluZyBpbnNpZ25pZmljYW50IHplcm9zIHNob3VsZCBiZSByZW1vdmVkIGFmdGVyCisgICAgICAgICByb3VuZCAoZm9yIGRpdmlzaW9uLCBldGMuKSwgcHJvdmlkZWQgdGhhdCBzZXQuZm9ybSBpc24ndCBQTEFJTi4KKyAgIHJldHVybnMgdGhpcywgZm9yIGNvbnZlbmllbmNlCisgICAqLworIAorIHByaXZhdGUgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGZpbmlzaChjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0IHNldCxib29sZWFuIHN0cmlwKXsKKyAgaW50IGQ9MDsKKyAgaW50IGk9MDsKKyAgYnl0ZSBuZXdtYW50W109bnVsbDsKKyAgaW50IG1hZz0wOworICBpbnQgc2lnPTA7CisgIC8qIFJvdW5kIGlmIG1hbnRpc3NhIHRvbyBsb25nIGFuZCBkaWdpdHMgcmVxdWVzdGVkICovCisgIGlmIChzZXQuZGlnaXRzIT0wKSAKKyAgIGlmICh0aGlzLm1hbnQubGVuZ3RoPnNldC5kaWdpdHMpIAorICAgIHRoaXMucm91bmQoc2V0KTsKKyAgCisgIC8qIElmIHN0cmlwIHJlcXVlc3RlZCAoYW5kIHN0YW5kYXJkIGZvcm1hdHRpbmcpLCByZW1vdmUKKyAgICAgaW5zaWduaWZpY2FudCB0cmFpbGluZyB6ZXJvcy4gKi8KKyAgaWYgKHN0cmlwKSAKKyAgIGlmIChzZXQuZm9ybSE9Y29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dC5QTEFJTikgCisgICAgeworICAgICBkPXRoaXMubWFudC5sZW5ndGg7CisgICAgIC8qIHNlZSBpZiB3ZSBuZWVkIHRvIGRyb3AgYW55IHRyYWlsaW5nIHplcm9zICovCisgICAgIHtpPWQtMTtpOmZvcig7aT49MTtpLS0peworICAgICAgaWYgKHRoaXMubWFudFtpXSE9MCkgCisgICAgICAgYnJlYWsgaTsKKyAgICAgIGQtLTsKKyAgICAgIGV4cCsrOworICAgICAgfQorICAgICB9LyppKi8KKyAgICAgaWYgKGQ8dGhpcy5tYW50Lmxlbmd0aCkgCisgICAgICB7LyogbmVlZCB0byByZWR1Y2UgKi8KKyAgICAgICBuZXdtYW50PW5ldyBieXRlW2RdOworICAgICAgIGphdmEubGFuZy5TeXN0ZW0uYXJyYXljb3B5KChqYXZhLmxhbmcuT2JqZWN0KXRoaXMubWFudCwwLChqYXZhLmxhbmcuT2JqZWN0KW5ld21hbnQsMCxkKTsKKyAgICAgICB0aGlzLm1hbnQ9bmV3bWFudDsKKyAgICAgIH0KKyAgICB9CisgIAorICBmb3JtPShieXRlKWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU47IC8vIHByZXNldAorICAKKyAgLyogTm93IGNoZWNrIGZvciBsZWFkaW5nLSBhbmQgYWxsLSB6ZXJvcyBpbiBtYW50aXNzYSAqLworICB7aW50ICQyNj10aGlzLm1hbnQubGVuZ3RoO2k9MDtpOmZvcig7JDI2PjA7JDI2LS0saSsrKXsKKyAgIGlmICh0aGlzLm1hbnRbaV0hPTApIAorICAgIHsKKyAgICAgLy8gbm9uLTAgcmVzdWx0OyBpbmQgd2lsbCBiZSBjb3JyZWN0CisgICAgIC8vIHJlbW92ZSBsZWFkaW5nIHplcm9zIFtlLmcuLCBhZnRlciBzdWJ0cmFjdF0KKyAgICAgaWYgKGk+MCkgCisgICAgICB7ZGVsZWFkOmRveworICAgICAgIG5ld21hbnQ9bmV3IGJ5dGVbdGhpcy5tYW50Lmxlbmd0aC1pXTsKKyAgICAgICBqYXZhLmxhbmcuU3lzdGVtLmFycmF5Y29weSgoamF2YS5sYW5nLk9iamVjdCl0aGlzLm1hbnQsaSwoamF2YS5sYW5nLk9iamVjdCluZXdtYW50LDAsdGhpcy5tYW50Lmxlbmd0aC1pKTsKKyAgICAgICB0aGlzLm1hbnQ9bmV3bWFudDsKKyAgICAgIH13aGlsZShmYWxzZSk7fS8qZGVsZWFkKi8KKyAgICAgLy8gbm93IGRldGVybWluZSBmb3JtIGlmIG5vdCBQTEFJTgorICAgICBtYWc9ZXhwK21hbnQubGVuZ3RoOworICAgICBpZiAobWFnPjApIAorICAgICAgeyAvLyBtb3N0IGNvbW1vbiBwYXRoCisgICAgICAgaWYgKG1hZz5zZXQuZGlnaXRzKSAKKyAgICAgICAgaWYgKHNldC5kaWdpdHMhPTApIAorICAgICAgICAgZm9ybT0oYnl0ZSlzZXQuZm9ybTsKKyAgICAgICBpZiAoKG1hZy0xKTw9TWF4RXhwKSAKKyAgICAgICAgcmV0dXJuIHRoaXM7IC8vIG5vIG92ZXJmbG93OyBxdWljayByZXR1cm4KKyAgICAgIH0KKyAgICAgZWxzZSAKKyAgICAgIGlmIChtYWc8KC01KSkgCisgICAgICAgZm9ybT0oYnl0ZSlzZXQuZm9ybTsKKyAgICAgLyogY2hlY2sgZm9yIG92ZXJmbG93ICovCisgICAgIG1hZy0tOworICAgICBpZiAoKG1hZzxNaW5FeHApfChtYWc+TWF4RXhwKSkgCisgICAgICB7b3ZlcmZsb3c6ZG97CisgICAgICAgLy8gcG9zc2libGUgcmVwcmlldmUgaWYgZm9ybSBpcyBlbmdpbmVlcmluZworICAgICAgIGlmIChmb3JtPT1jb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0LkVOR0lORUVSSU5HKSAKKyAgICAgICAgeworICAgICAgICAgc2lnPW1hZyUzOyAvLyBsZWZ0b3ZlcgorICAgICAgICAgaWYgKHNpZzwwKSAKKyAgICAgICAgICBzaWc9MytzaWc7IC8vIG5lZ2F0aXZlIGV4cG9uZW50CisgICAgICAgICBtYWc9bWFnLXNpZzsgLy8gZXhwb25lbnQgdG8gdXNlCisgICAgICAgICAvLyAxOTk5LjA2LjI5OiBzZWNvbmQgdGVzdCBoZXJlIG11c3QgYmUgTWF4RXhwCisgICAgICAgICBpZiAobWFnPj1NaW5FeHApIAorICAgICAgICAgIGlmIChtYWc8PU1heEV4cCkgCisgICAgICAgICAgIGJyZWFrIG92ZXJmbG93OworICAgICAgICB9CisgICAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5Bcml0aG1ldGljRXhjZXB0aW9uKCJFeHBvbmVudCBPdmVyZmxvdzoiKyIgIittYWcpOworICAgICAgfXdoaWxlKGZhbHNlKTt9LypvdmVyZmxvdyovCisgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgIH0KKyAgfS8qaSovCisgIAorICAvLyBEcm9wIHRocm91Z2ggdG8gaGVyZSBvbmx5IGlmIG1hbnRpc3NhIGlzIGFsbCB6ZXJvcworICBpbmQ9aXN6ZXJvOworICB7LypzZWxlY3QqLworICBpZiAoc2V0LmZvcm0hPWNvbS5pYm0uaWN1Lm1hdGguTWF0aENvbnRleHQuUExBSU4pCisgICBleHA9MDsgLy8gc3RhbmRhcmQgcmVzdWx0OyBnbyB0byAnMCcKKyAgZWxzZSBpZiAoZXhwPjApCisgICBleHA9MDsgLy8gK3ZlIGV4cG9uZW50IGFsc28gZ29lcyB0byAnMCcKKyAgZWxzZXsKKyAgIC8vIGEgcGxhaW4gbnVtYmVyIHdpdGggLXZlIGV4cG9uZW50OyBwcmVzZXJ2ZSBhbmQgY2hlY2sgZXhwb25lbnQKKyAgIGlmIChleHA8TWluRXhwKSAKKyAgICB0aHJvdyBuZXcgamF2YS5sYW5nLkFyaXRobWV0aWNFeGNlcHRpb24oIkV4cG9uZW50IE92ZXJmbG93OiIrIiAiK2V4cCk7CisgIH0KKyAgfQorICBtYW50PVpFUk8ubWFudDsgLy8gY2Fub25pY2FsIG1hbnRpc3NhCisgIHJldHVybiB0aGlzOworICB9CisgfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L21hdGgvTWF0aENvbnRleHQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS9tYXRoL01hdGhDb250ZXh0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjE2MzhhNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9tYXRoL01hdGhDb250ZXh0LmphdmEKQEAgLTAsMCArMSw2MDEgQEAKKy8qIEdlbmVyYXRlZCBmcm9tICdNYXRoQ29udGV4dC5ucngnIDggU2VwIDIwMDAgMTE6MDc6NDggW3YyLjAwXSAqLworLyogT3B0aW9uczogQmluYXJ5IENvbW1lbnRzIENyb3NzcmVmIEZvcm1hdCBKYXZhIExvZ28gU3RyaWN0YXJncyBTdHJpY3RjYXNlIFRyYWNlMiBWZXJib3NlMyAqLworcGFja2FnZSBjb20uaWJtLmljdS5tYXRoOworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIE1hdGhDb250ZXh0IC0tIE1hdGggY29udGV4dCBzZXR0aW5ncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisvKiBDb3B5cmlnaHQgSUJNIENvcnBvcmF0aW9uLCAxOTk3LCAyMDAwLCAyMDA1LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICBUaGUgTWF0aENvbnRleHQgb2JqZWN0IGVuY2Fwc3VsYXRlcyB0aGUgc2V0dGluZ3MgdXNlZCBieSB0aGUgICAgICovCisvKiAgIEJpZ0RlY2ltYWwgY2xhc3M7IGl0IGNvdWxkIGFsc28gYmUgdXNlZCBieSBvdGhlciBhcml0aG1ldGljcy4gICAgKi8KKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogTm90ZXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDEuIFRoZSBwcm9wZXJ0aWVzIGFyZSBjaGVja2VkIGZvciB2YWxpZGl0eSBvbiBjb25zdHJ1Y3Rpb24sIHNvICAgICAqLworLyogICAgdGhlIEJpZ0RlY2ltYWwgY2xhc3MgbWF5IGFzc3VtZSB0aGF0IHRoZXkgYXJlIGNvcnJlY3QuICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKy8qIEF1dGhvcjogICAgTWlrZSBDb3dsaXNoYXcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5Ny4wOS4wMyBJbml0aWFsIHZlcnNpb24gKGVkaXRlZCBmcm9tIG5ldHJleHgubGFuZy5SZXh4U2V0KSAgICAgICovCisvKiAxOTk3LjA5LjEyIEFkZCBsb3N0RGlnaXRzIHByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMDUuMDIgTWFrZSB0aGUgY2xhc3MgaW1tdXRhYmxlIGFuZCBmaW5hbDsgZHJvcCBzZXQgbWV0aG9kcyAgICAqLworLyogMTk5OC4wNi4wNSBBZGQgUm91bmQgKHJvdW5kaW5nIG1vZGVzKSBwcm9wZXJ0eSAgICAgICAgICAgICAgICAgICAgICovCisvKiAxOTk4LjA2LjI1IFJlbmFtZSBmcm9tIERlY2ltYWxDb250ZXh0OyBhbGxvdyBkaWdpdHM9MCAgICAgICAgICAgICAgKi8KKy8qIDE5OTguMTAuMTIgY2hhbmdlIHRvIGNvbS5pYm0uaWN1Lm1hdGggcGFja2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qIDE5OTkuMDIuMDYgYWRkIGphdmFkb2MgY29tbWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMTk5OS4wMy4wNSBzaW1wbGlmeTsgY2hhbmdlcyBmcm9tIGRpc2N1c3Npb24gd2l0aCBKLiBCbG9jaCAgICAgICAgICovCisvKiAxOTk5LjAzLjEzIDEuMDAgcmVsZWFzZSB0byBJQk0gQ2VudHJlIGZvciBKYXZhIFRlY2hub2xvZ3kgICAgICAgICAgKi8KKy8qIDE5OTkuMDcuMTAgMS4wNCBmbGFnIHNlcmlhbGl6YXRpb24gdW51c2VkICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogMjAwMC4wMS4wMSAxLjA2IGNvcHlyaWdodCB1cGRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworCisKKworLyoqCisgKiBUaGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGltbXV0YWJsZSBjbGFzcyBlbmNhcHN1bGF0ZXMgdGhlCisgKiBzZXR0aW5ncyB1bmRlcnN0b29kIGJ5IHRoZSBvcGVyYXRvciBtZXRob2RzIG9mIHRoZSB7QGxpbmsgQmlnRGVjaW1hbH0KKyAqIGNsYXNzIChhbmQgcG90ZW50aWFsbHkgb3RoZXIgY2xhc3NlcykuICBPcGVyYXRvciBtZXRob2RzIGFyZSB0aG9zZQorICogdGhhdCBlZmZlY3QgYW4gb3BlcmF0aW9uIG9uIGEgbnVtYmVyIG9yIGEgcGFpciBvZiBudW1iZXJzLgorICogPHA+CisgKiBUaGUgc2V0dGluZ3MsIHdoaWNoIGFyZSBub3QgYmFzZS1kZXBlbmRlbnQsIGNvbXByaXNlOgorICogPG9sPgorICogPGxpPjxjb2RlPmRpZ2l0czwvY29kZT46CisgKiB0aGUgbnVtYmVyIG9mIGRpZ2l0cyAocHJlY2lzaW9uKSB0byBiZSB1c2VkIGZvciBhbiBvcGVyYXRpb24KKyAqIDxsaT48Y29kZT5mb3JtPC9jb2RlPjoKKyAqIHRoZSBmb3JtIG9mIGFueSBleHBvbmVudCB0aGF0IHJlc3VsdHMgZnJvbSB0aGUgb3BlcmF0aW9uCisgKiA8bGk+PGNvZGU+bG9zdERpZ2l0czwvY29kZT46CisgKiB3aGV0aGVyIGNoZWNraW5nIGZvciBsb3N0IGRpZ2l0cyBpcyBlbmFibGVkCisgKiA8bGk+PGNvZGU+cm91bmRpbmdNb2RlPC9jb2RlPjoKKyAqIHRoZSBhbGdvcml0aG0gdG8gYmUgdXNlZCBmb3Igcm91bmRpbmcuCisgKiA8L29sPgorICogPHA+CisgKiBXaGVuIHByb3ZpZGVkLCBhIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBvYmplY3Qgc3VwcGxpZXMgdGhlCisgKiBzZXR0aW5ncyBmb3IgYW4gb3BlcmF0aW9uIGRpcmVjdGx5LgorICogPHA+CisgKiBXaGVuIDxjb2RlPk1hdGhDb250ZXh0LkRFRkFVTFQ8L2NvZGU+IGlzIHByb3ZpZGVkIGZvciBhCisgKiA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gcGFyYW1ldGVyIHRoZW4gdGhlIGRlZmF1bHQgc2V0dGluZ3MgYXJlIHVzZWQKKyAqICg8Y29kZT45LCBTQ0lFTlRJRklDLCBmYWxzZSwgUk9VTkRfSEFMRl9VUDwvY29kZT4pLgorICogPHA+CisgKiBJbiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gY2xhc3MsIGFsbCBtZXRob2RzIHdoaWNoIGFjY2VwdCBhCisgKiA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gb2JqZWN0IGRlZmF1bHRzKSBhbHNvIGhhdmUgYSB2ZXJzaW9uIG9mIHRoZQorICogbWV0aG9kIHdoaWNoIGRvZXMgbm90IGFjY2VwdCBhIE1hdGhDb250ZXh0IHBhcmFtZXRlci4gIFRoZXNlIHZlcnNpb25zCisgKiBjYXJyeSBvdXQgdW5saW1pdGVkIHByZWNpc2lvbiBmaXhlZCBwb2ludCBhcml0aG1ldGljIChhcyB0aG91Z2ggdGhlCisgKiBzZXR0aW5ncyB3ZXJlICg8Y29kZT4wLCBQTEFJTiwgZmFsc2UsIFJPVU5EX0hBTEZfVVA8L2NvZGU+KS4KKyAqIDxwPgorICogVGhlIGluc3RhbmNlIHZhcmlhYmxlcyBhcmUgc2hhcmVkIHdpdGggZGVmYXVsdCBhY2Nlc3MgKHNvIHRoZXkgYXJlCisgKiBkaXJlY3RseSBhY2Nlc3NpYmxlIHRvIHRoZSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBjbGFzcyksIGJ1dCBtdXN0CisgKiBuZXZlciBiZSBjaGFuZ2VkLgorICogPHA+CisgKiBUaGUgcm91bmRpbmcgbW9kZSBjb25zdGFudHMgaGF2ZSB0aGUgc2FtZSBuYW1lcyBhbmQgdmFsdWVzIGFzIHRoZQorICogY29uc3RhbnRzIG9mIHRoZSBzYW1lIG5hbWUgaW4gPGNvZGU+amF2YS5tYXRoLkJpZ0RlY2ltYWw8L2NvZGU+LCB0bworICogbWFpbnRhaW4gY29tcGF0aWJpbGl0eSB3aXRoIGVhcmxpZXIgdmVyc2lvbnMgb2YKKyAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+LgorICoKKyAqIEBzZWUgICAgIEJpZ0RlY2ltYWwKKyAqIEBhdXRob3IgIE1pa2UgQ293bGlzaGF3CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworCitwdWJsaWMgZmluYWwgY2xhc3MgTWF0aENvbnRleHQgaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZXsKKyBwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nICQwPSJNYXRoQ29udGV4dC5ucngiOworIAorIC8qIC0tLS0tIFByb3BlcnRpZXMgLS0tLS0gKi8KKyAvKiBwcm9wZXJ0aWVzIHB1YmxpYyBjb25zdGFudCAqLworIC8qKgorICAqIFBsYWluIChmaXhlZCBwb2ludCkgbm90YXRpb24sIHdpdGhvdXQgYW55IGV4cG9uZW50LgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIGZvcm0gb2YgdGhlIHJlc3VsdCBvZiBhCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb3BlcmF0aW9uLgorICAqIEEgemVybyByZXN1bHQgaW4gcGxhaW4gZm9ybSBtYXkgaGF2ZSBhIGRlY2ltYWwgcGFydCBvZiBvbmUgb3IKKyAgKiBtb3JlIHplcm9zLgorICAqCisgICogQHNlZSAjRU5HSU5FRVJJTkcKKyAgKiBAc2VlICNTQ0lFTlRJRklDCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUExBSU49MDsgLy8gW25vIGV4cG9uZW50XQorIAorIC8qKgorICAqIFN0YW5kYXJkIGZsb2F0aW5nIHBvaW50IG5vdGF0aW9uICh3aXRoIHNjaWVudGlmaWMgZXhwb25lbnRpYWwKKyAgKiBmb3JtYXQsIHdoZXJlIHRoZXJlIGlzIG9uZSBkaWdpdCBiZWZvcmUgYW55IGRlY2ltYWwgcG9pbnQpLgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIGZvcm0gb2YgdGhlIHJlc3VsdCBvZiBhCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb3BlcmF0aW9uLgorICAqIEEgemVybyByZXN1bHQgaW4gcGxhaW4gZm9ybSBtYXkgaGF2ZSBhIGRlY2ltYWwgcGFydCBvZiBvbmUgb3IKKyAgKiBtb3JlIHplcm9zLgorICAqCisgICogQHNlZSAjRU5HSU5FRVJJTkcKKyAgKiBAc2VlICNQTEFJTgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNDSUVOVElGSUM9MTsgLy8gMSBkaWdpdCBiZWZvcmUgLgorIAorIC8qKgorICAqIFN0YW5kYXJkIGZsb2F0aW5nIHBvaW50IG5vdGF0aW9uICh3aXRoIGVuZ2luZWVyaW5nIGV4cG9uZW50aWFsCisgICogZm9ybWF0LCB3aGVyZSB0aGUgcG93ZXIgb2YgdGVuIGlzIGEgbXVsdGlwbGUgb2YgMykuCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgZm9ybSBvZiB0aGUgcmVzdWx0IG9mIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogQSB6ZXJvIHJlc3VsdCBpbiBwbGFpbiBmb3JtIG1heSBoYXZlIGEgZGVjaW1hbCBwYXJ0IG9mIG9uZSBvcgorICAqIG1vcmUgemVyb3MuCisgICoKKyAgKiBAc2VlICNQTEFJTgorICAqIEBzZWUgI1NDSUVOVElGSUMKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFTkdJTkVFUklORz0yOyAvLyAxLTMgZGlnaXRzIGJlZm9yZSAuCisgCisgLy8gVGhlIHJvdW5kaW5nIG1vZGVzIG1hdGNoIHRoZSBvcmlnaW5hbCBCaWdEZWNpbWFsIGNsYXNzIHZhbHVlcworIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgdG8gYSBtb3JlIHBvc2l0aXZlIG51bWJlci4KKyAgKiBVc2VkIGFzIGEgc2V0dGluZyB0byBjb250cm9sIHRoZSByb3VuZGluZyBtb2RlIHVzZWQgZHVyaW5nIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogPHA+CisgICogSWYgYW55IG9mIHRoZSBkaXNjYXJkZWQgZGlnaXRzIGFyZSBub24temVybyB0aGVuIHRoZSByZXN1bHQKKyAgKiBzaG91bGQgYmUgcm91bmRlZCB0b3dhcmRzIHRoZSBuZXh0IG1vcmUgcG9zaXRpdmUgZGlnaXQuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfQ0VJTElORz0yOworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgdG93YXJkcyB6ZXJvLgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIHJvdW5kaW5nIG1vZGUgdXNlZCBkdXJpbmcgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiA8cD4KKyAgKiBBbGwgZGlzY2FyZGVkIGRpZ2l0cyBhcmUgaWdub3JlZCAodHJ1bmNhdGVkKS4gIFRoZSByZXN1bHQgaXMKKyAgKiBuZWl0aGVyIGluY3JlbWVudGVkIG5vciBkZWNyZW1lbnRlZC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9ET1dOPTE7CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0byBhIG1vcmUgbmVnYXRpdmUgbnVtYmVyLgorICAqIFVzZWQgYXMgYSBzZXR0aW5nIHRvIGNvbnRyb2wgdGhlIHJvdW5kaW5nIG1vZGUgdXNlZCBkdXJpbmcgYQorICAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IG9wZXJhdGlvbi4KKyAgKiA8cD4KKyAgKiBJZiBhbnkgb2YgdGhlIGRpc2NhcmRlZCBkaWdpdHMgYXJlIG5vbi16ZXJvIHRoZW4gdGhlIHJlc3VsdAorICAqIHNob3VsZCBiZSByb3VuZGVkIHRvd2FyZHMgdGhlIG5leHQgbW9yZSBuZWdhdGl2ZSBkaWdpdC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9GTE9PUj0zOworIAorIC8qKgorICAqIFJvdW5kaW5nIG1vZGUgdG8gcm91bmQgdG8gbmVhcmVzdCBuZWlnaGJvciwgd2hlcmUgYW4gZXF1aWRpc3RhbnQKKyAgKiB2YWx1ZSBpcyByb3VuZGVkIGRvd24uCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgcm91bmRpbmcgbW9kZSB1c2VkIGR1cmluZyBhCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb3BlcmF0aW9uLgorICAqIDxwPgorICAqIElmIHRoZSBkaXNjYXJkZWQgZGlnaXRzIHJlcHJlc2VudCBncmVhdGVyIHRoYW4gaGFsZiAoMC41IHRpbWVzKQorICAqIHRoZSB2YWx1ZSBvZiBhIG9uZSBpbiB0aGUgbmV4dCBwb3NpdGlvbiB0aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlCisgICogcm91bmRlZCB1cCAoYXdheSBmcm9tIHplcm8pLiAgT3RoZXJ3aXNlIHRoZSBkaXNjYXJkZWQgZGlnaXRzIGFyZQorICAqIGlnbm9yZWQuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUk9VTkRfSEFMRl9ET1dOPTU7CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCB0byBuZWFyZXN0IG5laWdoYm9yLCB3aGVyZSBhbiBlcXVpZGlzdGFudAorICAqIHZhbHVlIGlzIHJvdW5kZWQgdG8gdGhlIG5lYXJlc3QgZXZlbiBuZWlnaGJvci4KKyAgKiBVc2VkIGFzIGEgc2V0dGluZyB0byBjb250cm9sIHRoZSByb3VuZGluZyBtb2RlIHVzZWQgZHVyaW5nIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogPHA+CisgICogSWYgdGhlIGRpc2NhcmRlZCBkaWdpdHMgcmVwcmVzZW50IGdyZWF0ZXIgdGhhbiBoYWxmICgwLjUgdGltZXMpCisgICogdGhlIHZhbHVlIG9mIGEgb25lIGluIHRoZSBuZXh0IHBvc2l0aW9uIHRoZW4gdGhlIHJlc3VsdCBzaG91bGQgYmUKKyAgKiByb3VuZGVkIHVwIChhd2F5IGZyb20gemVybykuICBJZiB0aGV5IHJlcHJlc2VudCBsZXNzIHRoYW4gaGFsZiwKKyAgKiB0aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlIHJvdW5kZWQgZG93bi4KKyAgKiA8cD4KKyAgKiBPdGhlcndpc2UgKHRoZXkgcmVwcmVzZW50IGV4YWN0bHkgaGFsZikgdGhlIHJlc3VsdCBpcyByb3VuZGVkCisgICogZG93biBpZiBpdHMgcmlnaHRtb3N0IGRpZ2l0IGlzIGV2ZW4sIG9yIHJvdW5kZWQgdXAgaWYgaXRzCisgICogcmlnaHRtb3N0IGRpZ2l0IGlzIG9kZCAodG8gbWFrZSBhbiBldmVuIGRpZ2l0KS4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9IQUxGX0VWRU49NjsKKyAKKyAvKioKKyAgKiBSb3VuZGluZyBtb2RlIHRvIHJvdW5kIHRvIG5lYXJlc3QgbmVpZ2hib3IsIHdoZXJlIGFuIGVxdWlkaXN0YW50CisgICogdmFsdWUgaXMgcm91bmRlZCB1cC4KKyAgKiBVc2VkIGFzIGEgc2V0dGluZyB0byBjb250cm9sIHRoZSByb3VuZGluZyBtb2RlIHVzZWQgZHVyaW5nIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogPHA+CisgICogSWYgdGhlIGRpc2NhcmRlZCBkaWdpdHMgcmVwcmVzZW50IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBoYWxmCisgICogKDAuNSB0aW1lcykgdGhlIHZhbHVlIG9mIGEgb25lIGluIHRoZSBuZXh0IHBvc2l0aW9uIHRoZW4gdGhlIHJlc3VsdAorICAqIHNob3VsZCBiZSByb3VuZGVkIHVwIChhd2F5IGZyb20gemVybykuICBPdGhlcndpc2UgdGhlIGRpc2NhcmRlZAorICAqIGRpZ2l0cyBhcmUgaWdub3JlZC4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9IQUxGX1VQPTQ7CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byBhc3NlcnQgdGhhdCBubyByb3VuZGluZyBpcyBuZWNlc3NhcnkuCisgICogVXNlZCBhcyBhIHNldHRpbmcgdG8gY29udHJvbCB0aGUgcm91bmRpbmcgbW9kZSB1c2VkIGR1cmluZyBhCisgICogPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb3BlcmF0aW9uLgorICAqIDxwPgorICAqIFJvdW5kaW5nIChwb3RlbnRpYWwgbG9zcyBvZiBpbmZvcm1hdGlvbikgaXMgbm90IHBlcm1pdHRlZC4KKyAgKiBJZiBhbnkgb2YgdGhlIGRpc2NhcmRlZCBkaWdpdHMgYXJlIG5vbi16ZXJvIHRoZW4gYW4KKyAgKiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBzaG91bGQgYmUgdGhyb3duLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJPVU5EX1VOTkVDRVNTQVJZPTc7CisgCisgLyoqCisgICogUm91bmRpbmcgbW9kZSB0byByb3VuZCBhd2F5IGZyb20gemVyby4KKyAgKiBVc2VkIGFzIGEgc2V0dGluZyB0byBjb250cm9sIHRoZSByb3VuZGluZyBtb2RlIHVzZWQgZHVyaW5nIGEKKyAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBvcGVyYXRpb24uCisgICogPHA+CisgICogSWYgYW55IG9mIHRoZSBkaXNjYXJkZWQgZGlnaXRzIGFyZSBub24temVybyB0aGVuIHRoZSByZXN1bHQgd2lsbAorICAqIGJlIHJvdW5kZWQgdXAgKGF3YXkgZnJvbSB6ZXJvKS4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBST1VORF9VUD0wOworIAorIAorIC8qIHByb3BlcnRpZXMgc2hhcmVkICovCisgLyoqCisgICogVGhlIG51bWJlciBvZiBkaWdpdHMgKHByZWNpc2lvbikgdG8gYmUgdXNlZCBmb3IgYW4gb3BlcmF0aW9uLgorICAqIEEgdmFsdWUgb2YgMCBpbmRpY2F0ZXMgdGhhdCB1bmxpbWl0ZWQgcHJlY2lzaW9uIChhcyBtYW55IGRpZ2l0cworICAqIGFzIGFyZSByZXF1aXJlZCkgd2lsbCBiZSB1c2VkLgorICAqIDxwPgorICAqIFRoZSB7QGxpbmsgQmlnRGVjaW1hbH0gb3BlcmF0b3IgbWV0aG9kcyB1c2UgdGhpcyB2YWx1ZSB0bworICAqIGRldGVybWluZSB0aGUgcHJlY2lzaW9uIG9mIHJlc3VsdHMuCisgICogTm90ZSB0aGF0IGxlYWRpbmcgemVyb3MgKGluIHRoZSBpbnRlZ2VyIHBhcnQgb2YgYSBudW1iZXIpIGFyZQorICAqIG5ldmVyIHNpZ25pZmljYW50LgorICAqIDxwPgorICAqIDxjb2RlPmRpZ2l0czwvY29kZT4gd2lsbCBhbHdheXMgYmUgbm9uLW5lZ2F0aXZlLgorICAqCisgICogQHNlcmlhbAorICAqLworIGludCBkaWdpdHM7CisgCisgLyoqCisgICogVGhlIGZvcm0gb2YgcmVzdWx0cyBmcm9tIGFuIG9wZXJhdGlvbi4KKyAgKiA8cD4KKyAgKiBUaGUge0BsaW5rIEJpZ0RlY2ltYWx9IG9wZXJhdG9yIG1ldGhvZHMgdXNlIHRoaXMgdmFsdWUgdG8KKyAgKiBkZXRlcm1pbmUgdGhlIGZvcm0gb2YgcmVzdWx0cywgaW4gcGFydGljdWxhciB3aGV0aGVyIGFuZCBob3cKKyAgKiBleHBvbmVudGlhbCBub3RhdGlvbiBzaG91bGQgYmUgdXNlZC4KKyAgKgorICAqIEBzZWUgI0VOR0lORUVSSU5HCisgICogQHNlZSAjUExBSU4KKyAgKiBAc2VlICNTQ0lFTlRJRklDCisgICogQHNlcmlhbAorICAqLworIGludCBmb3JtOyAvLyB2YWx1ZXMgZm9yIHRoaXMgbXVzdCBmaXQgaW4gYSBieXRlCisgCisgLyoqCisgICogQ29udHJvbHMgd2hldGhlciBsb3N0IGRpZ2l0cyBjaGVja2luZyBpcyBlbmFibGVkIGZvciBhbgorICAqIG9wZXJhdGlvbi4KKyAgKiBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gdG8gZW5hYmxlIGNoZWNraW5nLCBvcgorICAqIHRvIDxjb2RlPmZhbHNlPC9jb2RlPiB0byBkaXNhYmxlIGNoZWNraW5nLgorICAqIDxwPgorICAqIFdoZW4gZW5hYmxlZCwgdGhlIHtAbGluayBCaWdEZWNpbWFsfSBvcGVyYXRvciBtZXRob2RzIGNoZWNrCisgICogdGhlIHByZWNpc2lvbiBvZiB0aGVpciBvcGVyYW5kIG9yIG9wZXJhbmRzLCBhbmQgdGhyb3cgYW4KKyAgKiA8Y29kZT5Bcml0aG1ldGljRXhjZXB0aW9uPC9jb2RlPiBpZiBhbiBvcGVyYW5kIGlzIG1vcmUgcHJlY2lzZQorICAqIHRoYW4gdGhlIGRpZ2l0cyBzZXR0aW5nICh0aGF0IGlzLCBkaWdpdHMgd291bGQgYmUgbG9zdCkuCisgICogV2hlbiBkaXNhYmxlZCwgb3BlcmFuZHMgYXJlIHJvdW5kZWQgdG8gdGhlIHNwZWNpZmllZCBkaWdpdHMuCisgICoKKyAgKiBAc2VyaWFsCisgICovCisgYm9vbGVhbiBsb3N0RGlnaXRzOworIAorIC8qKgorICAqIFRoZSByb3VuZGluZyBhbGdvcml0aG0gdG8gYmUgdXNlZCBmb3IgYW4gb3BlcmF0aW9uLgorICAqIDxwPgorICAqIFRoZSB7QGxpbmsgQmlnRGVjaW1hbH0gb3BlcmF0b3IgbWV0aG9kcyB1c2UgdGhpcyB2YWx1ZSB0bworICAqIGRldGVybWluZSB0aGUgYWxnb3JpdGhtIHRvIGJlIHVzZWQgd2hlbiBub24temVybyBkaWdpdHMgaGF2ZSB0bworICAqIGJlIGRpc2NhcmRlZCBpbiBvcmRlciB0byByZWR1Y2UgdGhlIHByZWNpc2lvbiBvZiBhIHJlc3VsdC4KKyAgKiBUaGUgdmFsdWUgbXVzdCBiZSBvbmUgb2YgdGhlIHB1YmxpYyBjb25zdGFudHMgd2hvc2UgbmFtZSBzdGFydHMKKyAgKiB3aXRoIDxjb2RlPlJPVU5EXzwvY29kZT4uCisgICoKKyAgKiBAc2VlICNST1VORF9DRUlMSU5HCisgICogQHNlZSAjUk9VTkRfRE9XTgorICAqIEBzZWUgI1JPVU5EX0ZMT09SCisgICogQHNlZSAjUk9VTkRfSEFMRl9ET1dOCisgICogQHNlZSAjUk9VTkRfSEFMRl9FVkVOCisgICogQHNlZSAjUk9VTkRfSEFMRl9VUAorICAqIEBzZWUgI1JPVU5EX1VOTkVDRVNTQVJZCisgICogQHNlZSAjUk9VTkRfVVAKKyAgKiBAc2VyaWFsCisgICovCisgaW50IHJvdW5kaW5nTW9kZTsKKyAKKyAvKiBwcm9wZXJ0aWVzIHByaXZhdGUgY29uc3RhbnQgKi8KKyAvLyBkZWZhdWx0IHNldHRpbmdzCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfRk9STT1TQ0lFTlRJRklDOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX0RJR0lUUz05OworIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVGQVVMVF9MT1NURElHSVRTPWZhbHNlOworIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX1JPVU5ESU5HTU9ERT1ST1VORF9IQUxGX1VQOworIAorIC8qIHByb3BlcnRpZXMgcHJpdmF0ZSBjb25zdGFudCAqLworIAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNSU5fRElHSVRTPTA7IC8vIHNtYWxsZXN0IHZhbHVlIGZvciBESUdJVFMuCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9ESUdJVFM9OTk5OTk5OTk5OyAvLyBsYXJnZXN0IHZhbHVlIGZvciBESUdJVFMuICBJZiBpbmNyZWFzZWQsCisgLy8gdGhlIEJpZ0RlY2ltYWwgY2xhc3MgbWF5IG5lZWQgdXBkYXRlLgorIC8vIGxpc3Qgb2YgdmFsaWQgcm91bmRpbmcgbW9kZSB2YWx1ZXMsIG1vc3QgY29tbW9uIHR3byBmaXJzdAorIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBST1VORFNbXT1uZXcgaW50W117Uk9VTkRfSEFMRl9VUCxST1VORF9VTk5FQ0VTU0FSWSxST1VORF9DRUlMSU5HLFJPVU5EX0RPV04sUk9VTkRfRkxPT1IsUk9VTkRfSEFMRl9ET1dOLFJPVU5EX0hBTEZfRVZFTixST1VORF9VUH07CisgCisgCisgcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyBST1VORFdPUkRTW109bmV3IGphdmEubGFuZy5TdHJpbmdbXXsiUk9VTkRfSEFMRl9VUCIsIlJPVU5EX1VOTkVDRVNTQVJZIiwiUk9VTkRfQ0VJTElORyIsIlJPVU5EX0RPV04iLCJST1VORF9GTE9PUiIsIlJPVU5EX0hBTEZfRE9XTiIsIlJPVU5EX0hBTEZfRVZFTiIsIlJPVU5EX1VQIn07IC8vIG1hdGNoaW5nIG5hbWVzIG9mIHRoZSBST1VORFMgdmFsdWVzCisgCisgCisgCisgCisgLyogcHJvcGVydGllcyBwcml2YXRlIGNvbnN0YW50IHVudXNlZCAqLworIAorIC8vIFNlcmlhbGl6YXRpb24gdmVyc2lvbgorIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRD03MTYzMzc2OTk4ODkyNTE1Mzc2TDsKKyAKKyAvKiBwcm9wZXJ0aWVzIHB1YmxpYyBjb25zdGFudCAqLworIC8qKgorICAqIEEgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IG9iamVjdCBpbml0aWFsaXplZCB0byB0aGUgZGVmYXVsdAorICAqIHNldHRpbmdzIGZvciBnZW5lcmFsLXB1cnBvc2UgYXJpdGhtZXRpYy4gIFRoYXQgaXMsCisgICogPGNvZGU+ZGlnaXRzPTkgZm9ybT1TQ0lFTlRJRklDIGxvc3REaWdpdHM9ZmFsc2UKKyAgKiByb3VuZGluZ01vZGU9Uk9VTkRfSEFMRl9VUDwvY29kZT4uCisgICoKKyAgKiBAc2VlICNTQ0lFTlRJRklDCisgICogQHNlZSAjUk9VTkRfSEFMRl9VUAorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIHB1YmxpYyBzdGF0aWMgZmluYWwgY29tLmlibS5pY3UubWF0aC5NYXRoQ29udGV4dCBERUZBVUxUPW5ldyBjb20uaWJtLmljdS5tYXRoLk1hdGhDb250ZXh0KERFRkFVTFRfRElHSVRTLERFRkFVTFRfRk9STSxERUZBVUxUX0xPU1RESUdJVFMsREVGQVVMVF9ST1VORElOR01PREUpOworCisgCisgCisgCisgLyogLS0tLS0gQ29uc3RydWN0b3JzIC0tLS0tICovCisgCisgLyoqCisgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gd2l0aCBhIHNwZWNpZmllZAorICAqIHByZWNpc2lvbi4KKyAgKiBUaGUgb3RoZXIgc2V0dGluZ3MgYXJlIHNldCB0byB0aGUgZGVmYXVsdCB2YWx1ZXMKKyAgKiAoc2VlIHtAbGluayAjREVGQVVMVH0pLgorICAqCisgICogQW4gPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24gaWYgdGhlCisgICogPGNvZGU+c2V0ZGlnaXRzPC9jb2RlPiBwYXJhbWV0ZXIgaXMgb3V0IG9mIHJhbmdlCisgICogKCZsdDswIG9yICZndDs5OTk5OTk5OTkpLgorICAqCisgICogQHBhcmFtIHNldGRpZ2l0cyAgICAgVGhlIDxjb2RlPmludDwvY29kZT4gZGlnaXRzIHNldHRpbmcKKyAgKiAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4uCisgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gcGFyYW1ldGVyIG91dCBvZiByYW5nZS4KKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgTWF0aENvbnRleHQoaW50IHNldGRpZ2l0cyl7CisgIHRoaXMoc2V0ZGlnaXRzLERFRkFVTFRfRk9STSxERUZBVUxUX0xPU1RESUdJVFMsREVGQVVMVF9ST1VORElOR01PREUpOworICByZXR1cm47fQorCisgCisgLyoqCisgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gd2l0aCBhIHNwZWNpZmllZAorICAqIHByZWNpc2lvbiBhbmQgZm9ybS4KKyAgKiBUaGUgb3RoZXIgc2V0dGluZ3MgYXJlIHNldCB0byB0aGUgZGVmYXVsdCB2YWx1ZXMKKyAgKiAoc2VlIHtAbGluayAjREVGQVVMVH0pLgorICAqCisgICogQW4gPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPiBpcyB0aHJvd24gaWYgdGhlCisgICogPGNvZGU+c2V0ZGlnaXRzPC9jb2RlPiBwYXJhbWV0ZXIgaXMgb3V0IG9mIHJhbmdlCisgICogKCZsdDswIG9yICZndDs5OTk5OTk5OTkpLCBvciBpZiB0aGUgdmFsdWUgZ2l2ZW4gZm9yIHRoZQorICAqIDxjb2RlPnNldGZvcm08L2NvZGU+IHBhcmFtZXRlciBpcyBub3Qgb25lIG9mIHRoZSBhcHByb3ByaWF0ZQorICAqIGNvbnN0YW50cy4KKyAgKgorICAqIEBwYXJhbSBzZXRkaWdpdHMgICAgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IGRpZ2l0cyBzZXR0aW5nCisgICogICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+LgorICAqIEBwYXJhbSBzZXRmb3JtICAgICAgIFRoZSA8Y29kZT5pbnQ8L2NvZGU+IGZvcm0gc2V0dGluZworICAqICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPi4KKyAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBwYXJhbWV0ZXIgb3V0IG9mIHJhbmdlLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBNYXRoQ29udGV4dChpbnQgc2V0ZGlnaXRzLGludCBzZXRmb3JtKXsKKyAgdGhpcyhzZXRkaWdpdHMsc2V0Zm9ybSxERUZBVUxUX0xPU1RESUdJVFMsREVGQVVMVF9ST1VORElOR01PREUpOworICByZXR1cm47fQorCisgLyoqCisgICogQ29uc3RydWN0cyBhIG5ldyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4gd2l0aCBhIHNwZWNpZmllZAorICAqIHByZWNpc2lvbiwgZm9ybSwgYW5kIGxvc3REaWdpdHMgc2V0dGluZy4KKyAgKiBUaGUgcm91bmRpbmdNb2RlIHNldHRpbmcgaXMgc2V0IHRvIGl0cyBkZWZhdWx0IHZhbHVlCisgICogKHNlZSB7QGxpbmsgI0RFRkFVTFR9KS4KKyAgKgorICAqIEFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duIGlmIHRoZQorICAqIDxjb2RlPnNldGRpZ2l0czwvY29kZT4gcGFyYW1ldGVyIGlzIG91dCBvZiByYW5nZQorICAqICgmbHQ7MCBvciAmZ3Q7OTk5OTk5OTk5KSwgb3IgaWYgdGhlIHZhbHVlIGdpdmVuIGZvciB0aGUKKyAgKiA8Y29kZT5zZXRmb3JtPC9jb2RlPiBwYXJhbWV0ZXIgaXMgbm90IG9uZSBvZiB0aGUgYXBwcm9wcmlhdGUKKyAgKiBjb25zdGFudHMuCisgICoKKyAgKiBAcGFyYW0gc2V0ZGlnaXRzICAgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBkaWdpdHMgc2V0dGluZworICAqICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPi4KKyAgKiBAcGFyYW0gc2V0Zm9ybSAgICAgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBmb3JtIHNldHRpbmcKKyAgKiAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4uCisgICogQHBhcmFtIHNldGxvc3RkaWdpdHMgVGhlIDxjb2RlPmJvb2xlYW48L2NvZGU+IGxvc3REaWdpdHMKKyAgKiAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nIGZvciB0aGlzIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPi4KKyAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBwYXJhbWV0ZXIgb3V0IG9mIHJhbmdlLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBNYXRoQ29udGV4dChpbnQgc2V0ZGlnaXRzLGludCBzZXRmb3JtLGJvb2xlYW4gc2V0bG9zdGRpZ2l0cyl7CisgIHRoaXMoc2V0ZGlnaXRzLHNldGZvcm0sc2V0bG9zdGRpZ2l0cyxERUZBVUxUX1JPVU5ESU5HTU9ERSk7CisgIHJldHVybjt9CisKKyAvKioKKyAgKiBDb25zdHJ1Y3RzIGEgbmV3IDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiB3aXRoIGEgc3BlY2lmaWVkCisgICogcHJlY2lzaW9uLCBmb3JtLCBsb3N0RGlnaXRzLCBhbmQgcm91bmRpbmdNb2RlIHNldHRpbmcuCisgICoKKyAgKiBBbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IGlzIHRocm93biBpZiB0aGUKKyAgKiA8Y29kZT5zZXRkaWdpdHM8L2NvZGU+IHBhcmFtZXRlciBpcyBvdXQgb2YgcmFuZ2UKKyAgKiAoJmx0OzAgb3IgJmd0Ozk5OTk5OTk5OSksIG9yIGlmIHRoZSB2YWx1ZSBnaXZlbiBmb3IgdGhlCisgICogPGNvZGU+c2V0Zm9ybTwvY29kZT4gb3IgPGNvZGU+c2V0cm91bmRpbmdtb2RlPC9jb2RlPiBwYXJhbWV0ZXJzIGlzCisgICogbm90IG9uZSBvZiB0aGUgYXBwcm9wcmlhdGUgY29uc3RhbnRzLgorICAqCisgICogQHBhcmFtIHNldGRpZ2l0cyAgICAgICBUaGUgPGNvZGU+aW50PC9jb2RlPiBkaWdpdHMgc2V0dGluZworICAqICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+LgorICAqIEBwYXJhbSBzZXRmb3JtICAgICAgICAgVGhlIDxjb2RlPmludDwvY29kZT4gZm9ybSBzZXR0aW5nCisgICogICAgICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4uCisgICogQHBhcmFtIHNldGxvc3RkaWdpdHMgICBUaGUgPGNvZGU+Ym9vbGVhbjwvY29kZT4gbG9zdERpZ2l0cworICAqICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZyBmb3IgdGhpcyA8Y29kZT5NYXRoQ29udGV4dDwvY29kZT4uCisgICogQHBhcmFtIHNldHJvdW5kaW5nbW9kZSBUaGUgPGNvZGU+aW50PC9jb2RlPiByb3VuZGluZ01vZGUgc2V0dGluZworICAqICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+LgorICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHBhcmFtZXRlciBvdXQgb2YgcmFuZ2UuCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIE1hdGhDb250ZXh0KGludCBzZXRkaWdpdHMsaW50IHNldGZvcm0sYm9vbGVhbiBzZXRsb3N0ZGlnaXRzLGludCBzZXRyb3VuZGluZ21vZGUpe3N1cGVyKCk7CisgIAorICAKKyAgLy8gc2V0IHZhbHVlcywgYWZ0ZXIgY2hlY2tpbmcKKyAgaWYgKHNldGRpZ2l0cyE9REVGQVVMVF9ESUdJVFMpIAorICAgeworICAgIGlmIChzZXRkaWdpdHM8TUlOX0RJR0lUUykgCisgICAgIHRocm93IG5ldyBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJEaWdpdHMgdG9vIHNtYWxsOiIrIiAiK3NldGRpZ2l0cyk7CisgICAgaWYgKHNldGRpZ2l0cz5NQVhfRElHSVRTKSAKKyAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkRpZ2l0cyB0b28gbGFyZ2U6IisiICIrc2V0ZGlnaXRzKTsKKyAgIH0KKyAgey8qc2VsZWN0Ki8KKyAgaWYgKHNldGZvcm09PVNDSUVOVElGSUMpeworICAgLy8gW21vc3QgY29tbW9uXQorICB9ZWxzZSBpZiAoc2V0Zm9ybT09RU5HSU5FRVJJTkcpeworICB9ZWxzZSBpZiAoc2V0Zm9ybT09UExBSU4peworICB9ZWxzZXsKKyAgIHRocm93IG5ldyBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJCYWQgZm9ybSB2YWx1ZToiKyIgIitzZXRmb3JtKTsKKyAgfQorICB9CisgIGlmICgoIShpc1ZhbGlkUm91bmQoc2V0cm91bmRpbmdtb2RlKSkpKSAKKyAgIHRocm93IG5ldyBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJCYWQgcm91bmRpbmdNb2RlIHZhbHVlOiIrIiAiK3NldHJvdW5kaW5nbW9kZSk7CisgIGRpZ2l0cz1zZXRkaWdpdHM7CisgIGZvcm09c2V0Zm9ybTsKKyAgbG9zdERpZ2l0cz1zZXRsb3N0ZGlnaXRzOyAvLyBbbm8gYmFkIHZhbHVlIHBvc3NpYmxlXQorICByb3VuZGluZ01vZGU9c2V0cm91bmRpbmdtb2RlOworICByZXR1cm47fQorCisgLyoqCisgICogUmV0dXJucyB0aGUgZGlnaXRzIHNldHRpbmcuCisgICogVGhpcyB2YWx1ZSBpcyBhbHdheXMgbm9uLW5lZ2F0aXZlLgorICAqCisgICogQHJldHVybiBhbiA8Y29kZT5pbnQ8L2NvZGU+IHdoaWNoIGlzIHRoZSB2YWx1ZSBvZiB0aGUgZGlnaXRzCisgICogICAgICAgICBzZXR0aW5nCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGludCBnZXREaWdpdHMoKXsKKyAgcmV0dXJuIGRpZ2l0czsKKyAgfQorCisgLyoqCisgICogUmV0dXJucyB0aGUgZm9ybSBzZXR0aW5nLgorICAqIFRoaXMgd2lsbCBiZSBvbmUgb2YKKyAgKiB7QGxpbmsgI0VOR0lORUVSSU5HfSwKKyAgKiB7QGxpbmsgI1BMQUlOfSwgb3IKKyAgKiB7QGxpbmsgI1NDSUVOVElGSUN9LgorICAqCisgICogQHJldHVybiBhbiA8Y29kZT5pbnQ8L2NvZGU+IHdoaWNoIGlzIHRoZSB2YWx1ZSBvZiB0aGUgZm9ybSBzZXR0aW5nCisgICogQHN0YWJsZSBJQ1UgMi4wCisgICovCisgCisgcHVibGljIGludCBnZXRGb3JtKCl7CisgIHJldHVybiBmb3JtOworICB9CisKKyAvKioKKyAgKiBSZXR1cm5zIHRoZSBsb3N0RGlnaXRzIHNldHRpbmcuCisgICogVGhpcyB3aWxsIGJlIGVpdGhlciA8Y29kZT50cnVlPC9jb2RlPiAoZW5hYmxlZCkgb3IKKyAgKiA8Y29kZT5mYWxzZTwvY29kZT4gKGRpc2FibGVkKS4KKyAgKgorICAqIEByZXR1cm4gYSA8Y29kZT5ib29sZWFuPC9jb2RlPiB3aGljaCBpcyB0aGUgdmFsdWUgb2YgdGhlIGxvc3REaWdpdHMKKyAgKiAgICAgICAgICAgc2V0dGluZworICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBib29sZWFuIGdldExvc3REaWdpdHMoKXsKKyAgcmV0dXJuIGxvc3REaWdpdHM7CisgIH0KKworIC8qKgorICAqIFJldHVybnMgdGhlIHJvdW5kaW5nTW9kZSBzZXR0aW5nLgorICAqIFRoaXMgd2lsbCBiZSBvbmUgb2YKKyAgKiB7QGxpbmsgICNST1VORF9DRUlMSU5HfSwKKyAgKiB7QGxpbmsgICNST1VORF9ET1dOfSwKKyAgKiB7QGxpbmsgICNST1VORF9GTE9PUn0sCisgICoge0BsaW5rICAjUk9VTkRfSEFMRl9ET1dOfSwKKyAgKiB7QGxpbmsgICNST1VORF9IQUxGX0VWRU59LAorICAqIHtAbGluayAgI1JPVU5EX0hBTEZfVVB9LAorICAqIHtAbGluayAgI1JPVU5EX1VOTkVDRVNTQVJZfSwgb3IKKyAgKiB7QGxpbmsgICNST1VORF9VUH0uCisgICoKKyAgKiBAcmV0dXJuIGFuIDxjb2RlPmludDwvY29kZT4gd2hpY2ggaXMgdGhlIHZhbHVlIG9mIHRoZSByb3VuZGluZ01vZGUKKyAgKiAgICAgICAgIHNldHRpbmcKKyAgKiBAc3RhYmxlIElDVSAyLjAKKyAgKi8KKyAKKyBwdWJsaWMgaW50IGdldFJvdW5kaW5nTW9kZSgpeworICByZXR1cm4gcm91bmRpbmdNb2RlOworICB9CisKKyAvKiogUmV0dXJucyB0aGUgPGNvZGU+TWF0aENvbnRleHQ8L2NvZGU+IGFzIGEgcmVhZGFibGUgc3RyaW5nLgorICAqIFRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+IHJldHVybmVkIHJlcHJlc2VudHMgdGhlIHNldHRpbmdzIG9mIHRoZQorICAqIDxjb2RlPk1hdGhDb250ZXh0PC9jb2RlPiBvYmplY3QgYXMgZm91ciBibGFuay1kZWxpbWl0ZWQgd29yZHMKKyAgKiBzZXBhcmF0ZWQgYnkgYSBzaW5nbGUgYmxhbmsgYW5kIHdpdGggbm8gbGVhZGluZyBvciB0cmFpbGluZyBibGFua3MsCisgICogYXMgZm9sbG93czoKKyAgKiA8b2w+CisgICogPGxpPgorICAqIDxjb2RlPmRpZ2l0cz08L2NvZGU+LCBpbW1lZGlhdGVseSBmb2xsb3dlZCBieQorICAqIHRoZSB2YWx1ZSBvZiB0aGUgZGlnaXRzIHNldHRpbmcgYXMgYSBudW1lcmljIHdvcmQuCisgICogPGxpPgorICAqIDxjb2RlPmZvcm09PC9jb2RlPiwgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkKKyAgKiB0aGUgdmFsdWUgb2YgdGhlIGZvcm0gc2V0dGluZyBhcyBhbiB1cHBlcmNhc2Ugd29yZAorICAqIChvbmUgb2YgPGNvZGU+U0NJRU5USUZJQzwvY29kZT4sIDxjb2RlPlBMQUlOPC9jb2RlPiwgb3IKKyAgKiA8Y29kZT5FTkdJTkVFUklORzwvY29kZT4pLgorICAqIDxsaT4KKyAgKiA8Y29kZT5sb3N0RGlnaXRzPTwvY29kZT4sIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5CisgICogdGhlIHZhbHVlIG9mIHRoZSBsb3N0RGlnaXRzIHNldHRpbmcKKyAgKiAoPGNvZGU+MTwvY29kZT4gaWYgZW5hYmxlZCwgPGNvZGU+MDwvY29kZT4gaWYgZGlzYWJsZWQpLgorICAqIDxsaT4KKyAgKiA8Y29kZT5yb3VuZGluZ01vZGU9PC9jb2RlPiwgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkKKyAgKiB0aGUgdmFsdWUgb2YgdGhlIHJvdW5kaW5nTW9kZSBzZXR0aW5nIGFzIGEgd29yZC4KKyAgKiBUaGlzIHdvcmQgd2lsbCBiZSB0aGUgc2FtZSBhcyB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBwdWJsaWMKKyAgKiBjb25zdGFudC4KKyAgKiA8L29sPgorICAqIDxwPgorICAqIEZvciBleGFtcGxlOgorICAqIDxicj48Y29kZT4KKyAgKiBkaWdpdHM9OSBmb3JtPVNDSUVOVElGSUMgbG9zdERpZ2l0cz0wIHJvdW5kaW5nTW9kZT1ST1VORF9IQUxGX1VQCisgICogPC9jb2RlPgorICAqIDxwPgorICAqIEFkZGl0aW9uYWwgd29yZHMgbWF5IGJlIGFwcGVuZGVkIHRvIHRoZSByZXN1bHQgb2YKKyAgKiA8Y29kZT50b1N0cmluZzwvY29kZT4gaW4gdGhlIGZ1dHVyZSBpZiBtb3JlIHByb3BlcnRpZXMgYXJlIGFkZGVkCisgICogdG8gdGhlIGNsYXNzLgorICAqCisgICogQHJldHVybiBhIDxjb2RlPlN0cmluZzwvY29kZT4gcmVwcmVzZW50aW5nIHRoZSBjb250ZXh0IHNldHRpbmdzLgorICAqIEBzdGFibGUgSUNVIDIuMAorICAqLworIAorIHB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIHRvU3RyaW5nKCl7CisgIGphdmEubGFuZy5TdHJpbmcgZm9ybXN0cj1udWxsOworICBpbnQgcj0wOworICBqYXZhLmxhbmcuU3RyaW5nIHJvdW5kd29yZD1udWxsOworICB7LypzZWxlY3QqLworICBpZiAoZm9ybT09U0NJRU5USUZJQykKKyAgIGZvcm1zdHI9IlNDSUVOVElGSUMiOworICBlbHNlIGlmIChmb3JtPT1FTkdJTkVFUklORykKKyAgIGZvcm1zdHI9IkVOR0lORUVSSU5HIjsKKyAgZWxzZXsKKyAgIGZvcm1zdHI9IlBMQUlOIjsvKiBmb3JtPVBMQUlOICovCisgIH0KKyAgfQorICB7aW50ICQxPVJPVU5EUy5sZW5ndGg7cj0wO3I6Zm9yKDskMT4wOyQxLS0scisrKXsKKyAgIGlmIChyb3VuZGluZ01vZGU9PVJPVU5EU1tyXSkgCisgICAgeworICAgICByb3VuZHdvcmQ9Uk9VTkRXT1JEU1tyXTsKKyAgICAgYnJlYWsgcjsKKyAgICB9CisgICB9CisgIH0vKnIqLworICByZXR1cm4gImRpZ2l0cz0iK2RpZ2l0cysiICIrImZvcm09Iitmb3Jtc3RyKyIgIisibG9zdERpZ2l0cz0iKyhsb3N0RGlnaXRzPyIxIjoiMCIpKyIgIisicm91bmRpbmdNb2RlPSIrcm91bmR3b3JkOworICB9CisKKyAKKyAvKiA8c2dtbD4gVGVzdCB3aGV0aGVyIHJvdW5kIGlzIHZhbGlkLiA8L3NnbWw+ICovCisgLy8gVGhpcyBjb3VsZCBiZSBtYWRlIHNoYXJlZCBmb3IgdXNlIGJ5IEJpZ0RlY2ltYWwgZm9yIHNldFNjYWxlLgorIAorIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNWYWxpZFJvdW5kKGludCB0ZXN0cm91bmQpeworICBpbnQgcj0wOworICB7aW50ICQyPVJPVU5EUy5sZW5ndGg7cj0wO3I6Zm9yKDskMj4wOyQyLS0scisrKXsKKyAgIGlmICh0ZXN0cm91bmQ9PVJPVU5EU1tyXSkgCisgICAgcmV0dXJuIHRydWU7CisgICB9CisgIH0vKnIqLworICByZXR1cm4gZmFsc2U7CisgIH0KKyB9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvbWF0aC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvbWF0aC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjMzNmVhZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS9tYXRoL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKworPGhlYWQ+PCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+CisKKzx0aXRsZT5DOlxjdnNcaWN1NGpcc3JjXGNvbVxpYm1cZGVtb1xwYWNrYWdlLmh0bWw8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CisKKzxwPklCTSBCaWdEZWNpbWFsIHN1cHBvcnQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQW55VHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0FueVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU2YWM4MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0FueVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwzMzcgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbgorKiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqIDA2LzA2LzIwMDIgIGFsaXUgICAgICAgIENyZWF0aW9uLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VU2NyaXB0OworaW1wb3J0IGphdmEubGFuZy5NYXRoOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCB0cmFuc2xhdGVzIG11bHRpcGxlIGlucHV0IHNjcmlwdHMgdG8gYSBzaW5nbGUKKyAqIG91dHB1dCBzY3JpcHQuICBJdCBpcyBuYW1lZCBBbnktVCBvciBBbnktVC9WLCB3aGVyZSBUIGlzIHRoZSB0YXJnZXQKKyAqIGFuZCBWIGlzIHRoZSBvcHRpb25hbCB2YXJpYW50LiAgVGhlIHRhcmdldCBUIGlzIGEgc2NyaXB0LgorICoKKyAqIDxwPkFuIEFueVRyYW5zbGl0ZXJhdG9yIHBhcnRpdGlvbnMgdGV4dCBpbnRvIHJ1bnMgb2YgdGhlIHNhbWUKKyAqIHNjcmlwdCwgdG9nZXRoZXIgd2l0aCBhZGphY2VudCBDT01NT04gb3IgSU5IRVJJVEVEIGNoYXJhY3RlcnMuCisgKiBBZnRlciBkZXRlcm1pbmluZyB0aGUgc2NyaXB0IG9mIGVhY2ggcnVuLCBpdCB0cmFuc2xpdGVyYXRlcyBmcm9tCisgKiB0aGF0IHNjcmlwdCB0byB0aGUgZ2l2ZW4gdGFyZ2V0L3ZhcmlhbnQuICBJdCBkb2VzIHNvIGJ5CisgKiBpbnN0YW50aWF0aW5nIGEgdHJhbnNsaXRlcmF0b3IgZnJvbSB0aGUgc291cmNlIHNjcmlwdCB0byB0aGUKKyAqIHRhcmdldC92YXJpYW50LiAgSWYgYSBydW4gY29uc2lzdHMgb25seSBvZiB0aGUgdGFyZ2V0IHNjcmlwdCwKKyAqIENPTU1PTiwgb3IgSU5IRVJJVEVEIGNoYXJhY3RlcnMsIHRoZW4gdGhlIHJ1biBpcyBub3QgY2hhbmdlZC4KKyAqCisgKiA8cD5BdCBzdGFydHVwLCBhbGwgcG9zc2libGUgQW55VHJhbnNsaXRlcmF0b3JzIGFyZSByZWdpc3RlcmVkIHdpdGgKKyAqIHRoZSBzeXN0ZW0sIGFzIGRldGVybWluZWQgYnkgZXhhbWluaW5nIHRoZSByZWdpc3RlcmVkIHNjcmlwdAorICogdHJhbnNsaXRlcmF0b3JzLgorICoKKyAqIEBzaW5jZSBJQ1UgMi4yCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2NsYXNzIEFueVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdGFudHMKKworICAgIHN0YXRpYyBmaW5hbCBjaGFyIFRBUkdFVF9TRVAgPSAnLSc7CisgICAgc3RhdGljIGZpbmFsIGNoYXIgVkFSSUFOVF9TRVAgPSAnLyc7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBBTlkgPSAiQW55IjsKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIE5VTExfSUQgPSAiTnVsbCI7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBMQVRJTl9QSVZPVCA9ICItTGF0aW47TGF0aW4tIjsKKworICAgIC8qKgorICAgICAqIENhY2hlIG1hcHBpbmcgVVNjcmlwdENvZGUgdmFsdWVzIHRvIFRyYW5zbGl0ZXJhdG9yKi4KKyAgICAgKi8KKyAgICBwcml2YXRlIE1hcCBjYWNoZTsKKworICAgIC8qKgorICAgICAqIFRoZSB0YXJnZXQgb3IgdGFyZ2V0L3ZhcmlhbnQgc3RyaW5nLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHRhcmdldDsKKworICAgIC8qKgorICAgICAqIFRoZSB0YXJnZXQgc2NyaXB0IGNvZGUuICBOZXZlciBVU0NSSVBUX0lOVkFMSURfQ09ERS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCB0YXJnZXRTY3JpcHQ7CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBwb3MsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworICAgICAgICBpbnQgYWxsU3RhcnQgPSBwb3Muc3RhcnQ7CisgICAgICAgIGludCBhbGxMaW1pdCA9IHBvcy5saW1pdDsKKworICAgICAgICBTY3JpcHRSdW5JdGVyYXRvciBpdCA9CisgICAgICAgICAgICBuZXcgU2NyaXB0UnVuSXRlcmF0b3IodGV4dCwgcG9zLmNvbnRleHRTdGFydCwgcG9zLmNvbnRleHRMaW1pdCk7CisKKyAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgLy8gSWdub3JlIHJ1bnMgaW4gdGhlIGFudGUgY29udGV4dAorICAgICAgICAgICAgaWYgKGl0LmxpbWl0IDw9IGFsbFN0YXJ0KSBjb250aW51ZTsKKworICAgICAgICAgICAgLy8gVHJ5IHRvIGluc3RhbnRpYXRlIHRyYW5zbGl0ZXJhdG9yIGZyb20gaXQuc2NyaXB0Q29kZSB0bworICAgICAgICAgICAgLy8gb3VyIHRhcmdldCBvciB0YXJnZXQvdmFyaWFudAorICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IGdldFRyYW5zbGl0ZXJhdG9yKGl0LnNjcmlwdENvZGUpOworCisgICAgICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBubyB0cmFuc2xpdGVyYXRvci4gIERvIG5vdGhpbmcsIGJ1dCBrZWVwCisgICAgICAgICAgICAgICAgLy8gcG9zLnN0YXJ0IHVwIHRvIGRhdGUuCisgICAgICAgICAgICAgICAgcG9zLnN0YXJ0ID0gaXQubGltaXQ7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIElmIHRoZSBydW4gZW5kIGlzIGJlZm9yZSB0aGUgdHJhbnNsaXRlcmF0aW9uIGxpbWl0LCBkbworICAgICAgICAgICAgLy8gYSBub24taW5jcmVtZW50YWwgdHJhbnNsaXRlcmF0aW9uLiAgT3RoZXJ3aXNlIGRvIGFuCisgICAgICAgICAgICAvLyBpbmNyZW1lbnRhbCBvbmUuCisgICAgICAgICAgICBib29sZWFuIGluY3JlbWVudGFsID0gaXNJbmNyZW1lbnRhbCAmJiAoaXQubGltaXQgPj0gYWxsTGltaXQpOworCisgICAgICAgICAgICBwb3Muc3RhcnQgPSBNYXRoLm1heChhbGxTdGFydCwgaXQuc3RhcnQpOworICAgICAgICAgICAgcG9zLmxpbWl0ID0gTWF0aC5taW4oYWxsTGltaXQsIGl0LmxpbWl0KTsKKyAgICAgICAgICAgIGludCBsaW1pdCA9IHBvcy5saW1pdDsKKyAgICAgICAgICAgIHQuZmlsdGVyZWRUcmFuc2xpdGVyYXRlKHRleHQsIHBvcywgaW5jcmVtZW50YWwpOworICAgICAgICAgICAgaW50IGRlbHRhID0gcG9zLmxpbWl0IC0gbGltaXQ7CisgICAgICAgICAgICBhbGxMaW1pdCArPSBkZWx0YTsKKyAgICAgICAgICAgIGl0LmFkanVzdExpbWl0KGRlbHRhKTsKKworICAgICAgICAgICAgLy8gV2UncmUgZG9uZSBpZiB3ZSBlbnRlciB0aGUgcG9zdCBjb250ZXh0CisgICAgICAgICAgICBpZiAoaXQubGltaXQgPj0gYWxsTGltaXQpIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgLy8gUmVzdG9yZSBsaW1pdC4gIHBvcy5zdGFydCBpcyBmaW5lIHdoZXJlIHRoZSBsYXN0IHRyYW5zbGl0ZXJhdG9yCisgICAgICAgIC8vIGxlZnQgaXQsIG9yIGF0IHRoZSBlbmQgb2YgdGhlIGxhc3QgcnVuLgorICAgICAgICBwb3MubGltaXQgPSBhbGxMaW1pdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcml2YXRlIGNvbnN0cnVjdG9yCisgICAgICogQHBhcmFtIGlkIHRoZSBJRCBvZiB0aGUgZm9ybSBTLVQgb3IgUy1UL1YsIHdoZXJlIFQgaXMgdGhlVGFyZ2V0CisgICAgICogYW5kIFYgaXMgdGhlVmFyaWFudC4gIE11c3Qgbm90IGJlIGVtcHR5LgorICAgICAqIEBwYXJhbSB0aGVUYXJnZXQgdGhlIHRhcmdldCBuYW1lLiAgTXVzdCBub3QgYmUgZW1wdHksIGFuZCBtdXN0CisgICAgICogbmFtZSBhIHNjcmlwdCBjb3JyZXNwb25kaW5nIHRvIHRoZVRhcmdldFNjcmlwdC4KKyAgICAgKiBAcGFyYW0gdGhlVmFyaWFudCB0aGUgdmFyaWFudCBuYW1lLCBvciB0aGUgZW1wdHkgc3RyaW5nIGlmCisgICAgICogdGhlcmUgaXMgbm8gdmFyaWFudAorICAgICAqIEBwYXJhbSB0aGVUYXJnZXRTY3JpcHQgdGhlIHNjcmlwdCBjb2RlIGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiB0aGVUYXJnZXQuCisgICAgICovCisgICAgcHJpdmF0ZSBBbnlUcmFuc2xpdGVyYXRvcihTdHJpbmcgaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGhlVGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRoZVZhcmlhbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGhlVGFyZ2V0U2NyaXB0KSB7CisgICAgICAgIHN1cGVyKGlkLCBudWxsKTsKKyAgICAgICAgdGFyZ2V0U2NyaXB0ID0gdGhlVGFyZ2V0U2NyaXB0OworICAgICAgICBjYWNoZSA9IG5ldyBIYXNoTWFwKCk7CisKKyAgICAgICAgdGFyZ2V0ID0gdGhlVGFyZ2V0OworICAgICAgICBpZiAodGhlVmFyaWFudC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIHRhcmdldCA9IHRoZVRhcmdldCArIFZBUklBTlRfU0VQICsgdGhlVmFyaWFudDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0cmFuc2xpdGVyYXRvciBmcm9tIHRoZSBnaXZlbiBzb3VyY2UgdG8gb3VyIHRhcmdldCBvcgorICAgICAqIHRhcmdldC92YXJpYW50LiAgUmV0dXJucyBOVUxMIGlmIHRoZSBzb3VyY2UgaXMgdGhlIHNhbWUgYXMgb3VyCisgICAgICogdGFyZ2V0IHNjcmlwdCwgb3IgaWYgdGhlIHNvdXJjZSBpcyBVU0NSSVBUX0lOVkFMSURfQ09ERS4KKyAgICAgKiBDYWNoZXMgdGhlIHJlc3VsdCBhbmQgcmV0dXJucyB0aGUgc2FtZSB0cmFuc2xpdGVyYXRvciB0aGUgbmV4dAorICAgICAqIHRpbWUuICBUaGUgY2FsbGVyIGRvZXMgTk9UIG93biB0aGUgcmVzdWx0IGFuZCBtdXN0IG5vdCBkZWxldGUKKyAgICAgKiBpdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFRyYW5zbGl0ZXJhdG9yIGdldFRyYW5zbGl0ZXJhdG9yKGludCBzb3VyY2UpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSB0YXJnZXRTY3JpcHQgfHwgc291cmNlID09IFVTY3JpcHQuSU5WQUxJRF9DT0RFKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIEludGVnZXIga2V5ID0gbmV3IEludGVnZXIoc291cmNlKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IChUcmFuc2xpdGVyYXRvcikgY2FjaGUuZ2V0KGtleSk7CisgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2VOYW1lID0gVVNjcmlwdC5nZXROYW1lKHNvdXJjZSk7CisgICAgICAgICAgICBTdHJpbmcgaWQgPSBzb3VyY2VOYW1lICsgVEFSR0VUX1NFUCArIHRhcmdldDsKKworICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEluc3RhbmNlKGlkLCBGT1JXQVJEKTsKKyAgICAgICAgICAgIGlmICh0ID09IG51bGwpIHsKKworICAgICAgICAgICAgICAgIC8vIFRyeSB0byBwaXZvdCBhcm91bmQgTGF0aW4sIG91ciBtb3N0IGNvbW1vbiBzY3JpcHQKKyAgICAgICAgICAgICAgICBpZCA9IHNvdXJjZU5hbWUgKyBMQVRJTl9QSVZPVCArIHRhcmdldDsKKyAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWQsIEZPUldBUkQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgY2FjaGUucHV0KGtleSwgdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgc3RhbmRhcmQgdHJhbnNsaXRlcmF0b3JzIHdpdGggdGhlIHN5c3RlbS4gIENhbGxlZCBieQorICAgICAqIFRyYW5zbGl0ZXJhdG9yIGR1cmluZyBpbml0aWFsaXphdGlvbi4gIFNjYW4gYWxsIGN1cnJlbnQgdGFyZ2V0cworICAgICAqIGFuZCByZWdpc3RlciB0aG9zZSB0aGF0IGFyZSBzY3JpcHRzIFQgYXMgQW55LVQvVi4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKworICAgICAgICBIYXNoU2V0IHNlZW4gPSBuZXcgSGFzaFNldCgpOworCisgICAgICAgIGZvciAoRW51bWVyYXRpb24gcz1UcmFuc2xpdGVyYXRvci5nZXRBdmFpbGFibGVTb3VyY2VzKCk7IHMuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IChTdHJpbmcpIHMubmV4dEVsZW1lbnQoKTsKKworICAgICAgICAgICAgLy8gSWdub3JlIHRoZSAiQW55IiBzb3VyY2UKKyAgICAgICAgICAgIGlmIChzb3VyY2UuZXF1YWxzSWdub3JlQ2FzZShBTlkpKSBjb250aW51ZTsKKworICAgICAgICAgICAgZm9yIChFbnVtZXJhdGlvbiB0PVRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVRhcmdldHMoc291cmNlKTsKKyAgICAgICAgICAgICAgICAgdC5oYXNNb3JlRWxlbWVudHMoKTsgKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRhcmdldCA9IChTdHJpbmcpIHQubmV4dEVsZW1lbnQoKTsKKworICAgICAgICAgICAgICAgIC8vIE9ubHkgcHJvY2VzcyBlYWNoIHRhcmdldCBvbmNlCisgICAgICAgICAgICAgICAgaWYgKHNlZW4uY29udGFpbnModGFyZ2V0KSkgY29udGludWU7CisgICAgICAgICAgICAgICAgc2Vlbi5hZGQodGFyZ2V0KTsKKworICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgc2NyaXB0IGNvZGUgZm9yIHRoZSB0YXJnZXQuICBJZiBub3QgYSBzY3JpcHQsIGlnbm9yZS4KKyAgICAgICAgICAgICAgICBpbnQgdGFyZ2V0U2NyaXB0ID0gc2NyaXB0TmFtZVRvQ29kZSh0YXJnZXQpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRTY3JpcHQgPT0gVVNjcmlwdC5JTlZBTElEX0NPREUpIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgZm9yIChFbnVtZXJhdGlvbiB2PVRyYW5zbGl0ZXJhdG9yLmdldEF2YWlsYWJsZVZhcmlhbnRzKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgIHYuaGFzTW9yZUVsZW1lbnRzKCk7ICkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCA9IChTdHJpbmcpIHYubmV4dEVsZW1lbnQoKTsKKworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaWQ7CisgICAgICAgICAgICAgICAgICAgIGlkID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5TVFZ0b0lEKEFOWSwgdGFyZ2V0LCB2YXJpYW50KTsKKyAgICAgICAgICAgICAgICAgICAgQW55VHJhbnNsaXRlcmF0b3IgdHJhbnMgPSBuZXcgQW55VHJhbnNsaXRlcmF0b3IoaWQsIHRhcmdldCwgdmFyaWFudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U2NyaXB0KTsKKyAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJJbnN0YW5jZSh0cmFucyk7CisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyU3BlY2lhbEludmVyc2UodGFyZ2V0LCBOVUxMX0lELCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzY3JpcHQgY29kZSBmb3IgYSBnaXZlbiBuYW1lLCBvcgorICAgICAqIFVTY3JpcHQuSU5WQUxJRF9DT0RFIGlmIG5vdCBmb3VuZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgc2NyaXB0TmFtZVRvQ29kZShTdHJpbmcgbmFtZSkgeworICAgICAgICB0cnl7CisgICAgICAgICAgICBpbnRbXSBjb2RlcyA9IFVTY3JpcHQuZ2V0Q29kZShuYW1lKTsKKyAgICAgICAgICAgIHJldHVybiBjb2RlcyAhPSBudWxsID8gY29kZXNbMF0gOiBVU2NyaXB0LklOVkFMSURfQ09ERTsKKyAgICAgICAgfWNhdGNoKCBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSl7CisgICAgICAgICAgICByZXR1cm4gVVNjcmlwdC5JTlZBTElEX0NPREU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFNjcmlwdFJ1bkl0ZXJhdG9yCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgc2VyaWVzIG9mIHJhbmdlcyBjb3JyZXNwb25kaW5nIHRvIHNjcmlwdHMuIFRoZXkgd2lsbCBiZQorICAgICAqIG9mIHRoZSBmb3JtOgorICAgICAqCisgICAgICogY2NjY1NTY1NTY2NjY1RUY1RjY2NjICAgLSBjID0gY29tbW9uLCBTID0gZmlyc3Qgc2NyaXB0LCBUID0gc2Vjb25kCisgICAgICogfCAgICAgICAgICAgIHwgICAgICAgICAgLSBmaXJzdCBydW4gKHN0YXJ0LCBsaW1pdCkKKyAgICAgKiAgICAgICAgICB8ICAgICAgICAgICB8ICAtIHNlY29uZCBydW4gKHN0YXJ0LCBsaW1pdCkKKyAgICAgKgorICAgICAqIFRoYXQgaXMsIHRoZSBydW5zIHdpbGwgb3ZlcmxhcC4gVGhlIHJlYXNvbiBmb3IgdGhpcyBpcyBzbyB0aGF0IGEKKyAgICAgKiB0cmFuc2xpdGVyYXRvciBjYW4gY29uc2lkZXIgY29tbW9uIGNoYXJhY3RlcnMgYm90aCBiZWZvcmUgYW5kIGFmdGVyCisgICAgICogdGhlIHNjcmlwdHMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgU2NyaXB0UnVuSXRlcmF0b3IgeworCisgICAgICAgIHByaXZhdGUgUmVwbGFjZWFibGUgdGV4dDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgdGV4dFN0YXJ0OworICAgICAgICBwcml2YXRlIGludCB0ZXh0TGltaXQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBjb2RlIG9mIHRoZSBjdXJyZW50IHJ1biwgdmFsaWQgYWZ0ZXIgbmV4dCgpIHJldHVybnMuICBNYXkKKyAgICAgICAgICogYmUgVVNjcmlwdC5JTlZBTElEX0NPREUgaWYgYW5kIG9ubHkgaWYgdGhlIGVudGlyZSB0ZXh0IGlzCisgICAgICAgICAqIENPTU1PTi9JTkhFUklURUQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IHNjcmlwdENvZGU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBzdGFydCBvZiB0aGUgcnVuLCBpbmNsdXNpdmUsIHZhbGlkIGFmdGVyIG5leHQoKSByZXR1cm5zLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBzdGFydDsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVuZCBvZiB0aGUgcnVuLCBleGNsdXNpdmUsIHZhbGlkIGFmdGVyIG5leHQoKSByZXR1cm5zLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBsaW1pdDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0cyBhIHJ1biBpdGVyYXRvciBvdmVyIHRoZSBnaXZlbiB0ZXh0IGZyb20gc3RhcnQKKyAgICAgICAgICogKGluY2x1c2l2ZSkgdG8gbGltaXQgKGV4Y2x1c2l2ZSkuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU2NyaXB0UnVuSXRlcmF0b3IoUmVwbGFjZWFibGUgdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisgICAgICAgICAgICB0aGlzLnRleHRTdGFydCA9IHN0YXJ0OworICAgICAgICAgICAgdGhpcy50ZXh0TGltaXQgPSBsaW1pdDsKKyAgICAgICAgICAgIHRoaXMubGltaXQgPSBzdGFydDsKKyAgICAgICAgfQorCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgVFJVRSBpZiB0aGVyZSBhcmUgYW55IG1vcmUgcnVucy4gIFRSVUUgaXMgYWx3YXlzCisgICAgICAgICAqIHJldHVybmVkIGF0IGxlYXN0IG9uY2UuICBVcG9uIHJldHVybiwgdGhlIGNhbGxlciBzaG91bGQKKyAgICAgICAgICogZXhhbWluZSBzY3JpcHRDb2RlLCBzdGFydCwgYW5kIGxpbWl0LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gbmV4dCgpIHsKKyAgICAgICAgICAgIGludCBjaDsKKyAgICAgICAgICAgIGludCBzOworCisgICAgICAgICAgICBzY3JpcHRDb2RlID0gVVNjcmlwdC5JTlZBTElEX0NPREU7IC8vIGRvbid0IGtub3cgc2NyaXB0IHlldAorICAgICAgICAgICAgc3RhcnQgPSBsaW1pdDsKKworICAgICAgICAgICAgLy8gQXJlIHdlIGRvbmU/CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gdGV4dExpbWl0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBNb3ZlIHN0YXJ0IGJhY2sgdG8gaW5jbHVkZSBhZGphY2VudCBDT01NT04gb3IgSU5IRVJJVEVECisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzCisgICAgICAgICAgICB3aGlsZSAoc3RhcnQgPiB0ZXh0U3RhcnQpIHsKKyAgICAgICAgICAgICAgICBjaCA9IHRleHQuY2hhcjMyQXQoc3RhcnQgLSAxKTsgLy8gbG9vayBiYWNrCisgICAgICAgICAgICAgICAgcyA9IFVTY3JpcHQuZ2V0U2NyaXB0KGNoKTsKKyAgICAgICAgICAgICAgICBpZiAocyA9PSBVU2NyaXB0LkNPTU1PTiB8fCBzID09IFVTY3JpcHQuSU5IRVJJVEVEKSB7CisgICAgICAgICAgICAgICAgICAgIC0tc3RhcnQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBNb3ZlIGxpbWl0IGFoZWFkIHRvIGluY2x1ZGUgQ09NTU9OLCBJTkhFUklURUQsIGFuZCBjaGFyYWN0ZXJzCisgICAgICAgICAgICAvLyBvZiB0aGUgY3VycmVudCBzY3JpcHQuCisgICAgICAgICAgICB3aGlsZSAobGltaXQgPCB0ZXh0TGltaXQpIHsKKyAgICAgICAgICAgICAgICBjaCA9IHRleHQuY2hhcjMyQXQobGltaXQpOyAvLyBsb29rIGFoZWFkCisgICAgICAgICAgICAgICAgcyA9IFVTY3JpcHQuZ2V0U2NyaXB0KGNoKTsKKyAgICAgICAgICAgICAgICBpZiAocyAhPSBVU2NyaXB0LkNPTU1PTiAmJiBzICE9IFVTY3JpcHQuSU5IRVJJVEVEKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzY3JpcHRDb2RlID09IFVTY3JpcHQuSU5WQUxJRF9DT0RFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRDb2RlID0gczsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzICE9IHNjcmlwdENvZGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICsrbGltaXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFJldHVybiBUUlVFIGV2ZW4gaWYgdGhlIGVudGlyZSB0ZXh0IGlzIENPTU1PTiAvIElOSEVSSVRFRCwgaW4KKyAgICAgICAgICAgIC8vIHdoaWNoIGNhc2Ugc2NyaXB0Q29kZSB3aWxsIGJlIFVTY3JpcHQuSU5WQUxJRF9DT0RFLgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWRqdXN0cyBpbnRlcm5hbCBpbmRpY2VzIGZvciBhIGNoYW5nZSBpbiB0aGUgbGltaXQgaW5kZXggb2YgdGhlCisgICAgICAgICAqIGdpdmVuIGRlbHRhLiAgQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyB0aGUgbGltaXQgaGFzIGluY3JlYXNlZC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIGFkanVzdExpbWl0KGludCBkZWx0YSkgeworICAgICAgICAgICAgbGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICB0ZXh0TGltaXQgKz0gZGVsdGE7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9BcmFiaWNTaGFwaW5nLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9BcmFiaWNTaGFwaW5nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjNlYTMzMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0FyYWJpY1NoYXBpbmcuamF2YQpAQCAtMCwwICsxLDEyMjkgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDAxLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUJpRGlQcm9wczsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKKworLyoqCisgKiBTaGFwZSBBcmFiaWMgdGV4dCBvbiBhIGNoYXJhY3RlciBiYXNpcy4KKyAqCisgKiA8cD5BcmFiaWNTaGFwaW5nIHBlcmZvcm1zIGJhc2ljIG9wZXJhdGlvbnMgZm9yICJzaGFwaW5nIiBBcmFiaWMgdGV4dC4gSXQgaXMgbW9zdAorICogdXNlZnVsIGZvciB1c2Ugd2l0aCBsZWdhY3kgZGF0YSBmb3JtYXRzIGFuZCBsZWdhY3kgZGlzcGxheSB0ZWNobm9sb2d5CisgKiAoc2ltcGxlIHRlcm1pbmFscykuIEFsbCBvcGVyYXRpb25zIGFyZSBwZXJmb3JtZWQgb24gVW5pY29kZSBjaGFyYWN0ZXJzLjwvcD4KKyAqCisgKiA8cD5UZXh0LWJhc2VkIHNoYXBpbmcgbWVhbnMgdGhhdCBzb21lIGNoYXJhY3RlciBjb2RlIHBvaW50cyBpbiB0aGUgdGV4dCBhcmUKKyAqIHJlcGxhY2VkIGJ5IG90aGVycyBkZXBlbmRpbmcgb24gdGhlIGNvbnRleHQuIEl0IHRyYW5zZm9ybXMgb25lIGtpbmQgb2YgdGV4dAorICogaW50byBhbm90aGVyLiBJbiBjb21wYXJpc29uLCBtb2Rlcm4gZGlzcGxheXMgZm9yIEFyYWJpYyB0ZXh0IHNlbGVjdAorICogYXBwcm9wcmlhdGUsIGNvbnRleHQtZGVwZW5kZW50IGZvbnQgZ2x5cGhzIGZvciBlYWNoIHRleHQgZWxlbWVudCwgd2hpY2ggbWVhbnMKKyAqIHRoYXQgdGhleSB0cmFuc2Zvcm0gdGV4dCBpbnRvIGEgZ2x5cGggdmVjdG9yLjwvcD4KKyAqCisgKiA8cD5UZXh0IHRyYW5zZm9ybWF0aW9ucyBhcmUgbmVjZXNzYXJ5IHdoZW4gbW9kZXJuIGRpc3BsYXkgdGVjaG5vbG9neSBpcyBub3QKKyAqIGF2YWlsYWJsZSBvciB3aGVuIHRleHQgbmVlZHMgdG8gYmUgdHJhbnNmb3JtZWQgdG8gb3IgZnJvbSBsZWdhY3kgZm9ybWF0cyB0aGF0CisgKiB1c2UgInNoYXBlZCIgY2hhcmFjdGVycy4gU2luY2UgdGhlIEFyYWJpYyBzY3JpcHQgaXMgY3Vyc2l2ZSwgY29ubmVjdGluZworICogYWRqYWNlbnQgbGV0dGVycyB0byBlYWNoIG90aGVyLCBjb21wdXRlcnMgc2VsZWN0IGltYWdlcyBmb3IgZWFjaCBsZXR0ZXIgYmFzZWQKKyAqIG9uIHRoZSBzdXJyb3VuZGluZyBsZXR0ZXJzLiBUaGlzIHVzdWFsbHkgcmVzdWx0cyBpbiBmb3VyIGltYWdlcyBwZXIgQXJhYmljCisgKiBsZXR0ZXI6IGluaXRpYWwsIG1pZGRsZSwgZmluYWwsIGFuZCBpc29sYXRlZCBmb3Jtcy4gSW4gVW5pY29kZSwgb24gdGhlIG90aGVyCisgKiBoYW5kLCBsZXR0ZXJzIGFyZSBub3JtYWxseSBzdG9yZWQgYWJzdHJhY3QsIGFuZCBhIGRpc3BsYXkgc3lzdGVtIGlzIGV4cGVjdGVkCisgKiB0byBzZWxlY3QgdGhlIG5lY2Vzc2FyeSBnbHlwaHMuIChUaGlzIG1ha2VzIHNlYXJjaGluZyBhbmQgb3RoZXIgdGV4dAorICogcHJvY2Vzc2luZyBlYXNpZXIgYmVjYXVzZSB0aGUgc2FtZSBsZXR0ZXIgaGFzIG9ubHkgb25lIGNvZGUuKSBJdCBpcyBwb3NzaWJsZQorICogdG8gbWltaWMgdGhpcyB3aXRoIHRleHQgdHJhbnNmb3JtYXRpb25zIGJlY2F1c2UgdGhlcmUgYXJlIGNoYXJhY3RlcnMgaW4KKyAqIFVuaWNvZGUgdGhhdCBhcmUgcmVuZGVyZWQgYXMgbGV0dGVycyB3aXRoIGEgc3BlY2lmaWMgc2hhcGUKKyAqIChvciBjdXJzaXZlIGNvbm5lY3Rpdml0eSkuIFRoZXkgd2VyZSBpbmNsdWRlZCBmb3IgaW50ZXJvcGVyYWJpbGl0eSB3aXRoCisgKiBsZWdhY3kgc3lzdGVtcyBhbmQgY29kZXBhZ2VzLCBhbmQgZm9yIHVuc29waGlzdGljYXRlZCBkaXNwbGF5IHN5c3RlbXMuPC9wPgorICoKKyAqIDxwPkEgc2Vjb25kIGtpbmQgb2YgdGV4dCB0cmFuc2Zvcm1hdGlvbnMgaXMgc3VwcG9ydGVkIGZvciBBcmFiaWMgZGlnaXRzOgorICogRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBsZWdhY3kgY29kZXBhZ2VzIHRoYXQgb25seSBpbmNsdWRlIEV1cm9wZWFuIGRpZ2l0cywKKyAqIGl0IGlzIHBvc3NpYmxlIHRvIHJlcGxhY2Ugb25lIHNldCBvZiBkaWdpdHMgYnkgYW5vdGhlciwgY2hhbmdpbmcgdGhlCisgKiBjaGFyYWN0ZXIgY29kZSBwb2ludHMuIFRoZXNlIG9wZXJhdGlvbnMgY2FuIGJlIHBlcmZvcm1lZCBmb3IgZWl0aGVyCisgKiBBcmFiaWMtSW5kaWMgRGlnaXRzIChVKzA2NjAuLi5VKzA2NjkpIG9yIEVhc3Rlcm4gKEV4dGVuZGVkKSBBcmFiaWMtSW5kaWMKKyAqIGRpZ2l0cyAoVSswNmYwLi4uVSswNmY5KS48L3A+CisgKgorICogPHA+U29tZSByZXBsYWNlbWVudHMgbWF5IHJlc3VsdCBpbiBtb3JlIG9yIGZld2VyIGNoYXJhY3RlcnMgKGNvZGUgcG9pbnRzKS4KKyAqIEJ5IGRlZmF1bHQsIHRoaXMgbWVhbnMgdGhhdCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG1heSByZWNlaXZlIHRleHQgd2l0aCBhCisgKiBsZW5ndGggZGlmZmVyZW50IGZyb20gdGhlIHNvdXJjZSBsZW5ndGguIFNvbWUgbGVnYWN5IHN5c3RlbXMgcmVseSBvbiB0aGUKKyAqIGxlbmd0aCBvZiB0aGUgdGV4dCB0byBiZSBjb25zdGFudC4gVGhleSBleHBlY3QgZXh0cmEgc3BhY2VzIHRvIGJlIGFkZGVkCisgKiBvciBjb25zdW1lZCBlaXRoZXIgbmV4dCB0byB0aGUgYWZmZWN0ZWQgY2hhcmFjdGVyIG9yIGF0IHRoZSBlbmQgb2YgdGhlCisgKiB0ZXh0LjwvcD4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQXJhYmljU2hhcGluZyB7CisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgb3B0aW9uczsKKyAgICBwcml2YXRlIGJvb2xlYW4gaXNMb2dpY2FsOyAvLyBjb252ZW5pZW5jZQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIHJhbmdlIG9mIHRleHQgaW4gdGhlIHNvdXJjZSBhcnJheSwgcHV0dGluZyB0aGUgcmVzdWx0IAorICAgICAqIGludG8gYSByYW5nZSBvZiB0ZXh0IGluIHRoZSBkZXN0aW5hdGlvbiBhcnJheSwgYW5kIHJldHVybiB0aGUgbnVtYmVyCisgICAgICogb2YgY2hhcmFjdGVycyB3cml0dGVuLgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSBBbiBhcnJheSBjb250YWluaW5nIHRoZSBpbnB1dCB0ZXh0CisgICAgICogQHBhcmFtIHNvdXJjZVN0YXJ0IFRoZSBzdGFydCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBjb252ZXJ0CisgICAgICogQHBhcmFtIHNvdXJjZUxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIGNvbnZlcnQKKyAgICAgKiBAcGFyYW0gZGVzdCBUaGUgZGVzdGluYXRpb24gYXJyYXkgdGhhdCB3aWxsIHJlY2VpdmUgdGhlIHJlc3VsdC4KKyAgICAgKiAgIEl0IG1heSBiZSA8Y29kZT5OVUxMPC9jb2RlPiBvbmx5IGlmICA8Y29kZT5kZXN0U2l6ZTwvY29kZT4gaXMgMC4gIAorICAgICAqIEBwYXJhbSBkZXN0U3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyIHRvIHVzZS4KKyAgICAgKiBAcGFyYW0gZGVzdFNpemUgVGhlIHNpemUgKGNhcGFjaXR5KSBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyLgorICAgICAqICAgSWYgPGNvZGU+ZGVzdFNpemU8L2NvZGU+IGlzIDAsIHRoZW4gbm8gb3V0cHV0IGlzIHByb2R1Y2VkLAorICAgICAqICAgYnV0IHRoZSBuZWNlc3NhcnkgYnVmZmVyIHNpemUgaXMgcmV0dXJuZWQgKCJwcmVmbGlnaHRpbmciKS4gIFRoaXMKKyAgICAgKiAgIGRvZXMgbm90IHZhbGlkYXRlIHRoZSB0ZXh0IGFnYWluc3QgdGhlIG9wdGlvbnMsIGZvciBleGFtcGxlLCAKKyAgICAgKiAgIGlmIGxldHRlcnMgYXJlIGJlaW5nIHVuc2hhcGVkLCBhbmQgc3BhY2VzIGFyZSBiZWluZyBjb25zdW1lZAorICAgICAqICAgZm9sbG93aW5nIGxhbWFsZWYsIHRoaXMgd2lsbCBub3QgZGV0ZWN0IGEgbGFtYWxlZiB3aXRob3V0IGEgCisgICAgICogICBjb3JyZXNwb25kaW5nIHNwYWNlLiAgQW4gZXJyb3Igd2lsbCBiZSB0aHJvd24gd2hlbiB0aGUgYWN0dWFsCisgICAgICogICBjb252ZXJzaW9uIGlzIGF0dGVtcHRlZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBudW1iZXIgb2YgY2hhcnMgd3JpdHRlbiB0byB0aGUgZGVzdGluYXRpb24gYnVmZmVyLgorICAgICAqICAgSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVuIG5vIG91dHB1dCB3YXMgd3JpdHRlbiwgb3IgaXQgbWF5IGJlCisgICAgICogICBpbmNvbXBsZXRlLgorICAgICAqIEB0aHJvd3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiBpZiB0aGUgdGV4dCBjYW5ub3QgYmUgY29udmVydGVkIGFjY29yZGluZyB0byB0aGUgb3B0aW9ucy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHNoYXBlKGNoYXJbXSBzb3VyY2UsIGludCBzb3VyY2VTdGFydCwgaW50IHNvdXJjZUxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LCBpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdFNpemUpIHRocm93cyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzb3VyY2UgY2FuIG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNvdXJjZVN0YXJ0IDwgMCB8fCBzb3VyY2VMZW5ndGggPCAwIHx8IHNvdXJjZVN0YXJ0ICsgc291cmNlTGVuZ3RoID4gc291cmNlLmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiYmFkIHNvdXJjZSBzdGFydCAoIiArIHNvdXJjZVN0YXJ0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgb3IgbGVuZ3RoICgiICsgc291cmNlTGVuZ3RoICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgZm9yIGJ1ZmZlciBvZiBsZW5ndGggIiArIHNvdXJjZS5sZW5ndGgpOworICAgICAgICB9CisgICAgICAgIGlmIChkZXN0ID09IG51bGwgJiYgZGVzdFNpemUgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigibnVsbCBkZXN0IHJlcXVpcmVzIGRlc3RTaXplID09IDAiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKGRlc3RTaXplICE9IDApICYmCisgICAgICAgICAgICAoZGVzdFN0YXJ0IDwgMCB8fCBkZXN0U2l6ZSA8IDAgfHwgZGVzdFN0YXJ0ICsgZGVzdFNpemUgPiBkZXN0Lmxlbmd0aCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImJhZCBkZXN0IHN0YXJ0ICgiICsgZGVzdFN0YXJ0ICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIG9yIHNpemUgKCIgKyBkZXN0U2l6ZSArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSBmb3IgYnVmZmVyIG9mIGxlbmd0aCAiICsgZGVzdC5sZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGludGVybmFsU2hhcGUoc291cmNlLCBzb3VyY2VTdGFydCwgc291cmNlTGVuZ3RoLCBkZXN0LCBkZXN0U3RhcnQsIGRlc3RTaXplKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgcmFuZ2Ugb2YgdGV4dCBpbiBwbGFjZS4gIFRoaXMgbWF5IG9ubHkgYmUgdXNlZCBpZiB0aGUgTGVuZ3RoIG9wdGlvbgorICAgICAqIGRvZXMgbm90IGdyb3cgb3Igc2hyaW5rIHRoZSB0ZXh0LgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSBBbiBhcnJheSBjb250YWluaW5nIHRoZSBpbnB1dCB0ZXh0CisgICAgICogQHBhcmFtIHN0YXJ0IFRoZSBzdGFydCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBjb252ZXJ0CisgICAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIGNvbnZlcnQKKyAgICAgKiBAdGhyb3dzIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24gaWYgdGhlIHRleHQgY2Fubm90IGJlIGNvbnZlcnRlZCBhY2NvcmRpbmcgdG8gdGhlIG9wdGlvbnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2hhcGUoY2hhcltdIHNvdXJjZSwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoKSB0aHJvd3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiB7CisgICAgICAgIGlmICgob3B0aW9ucyAmIExFTkdUSF9NQVNLKSA9PSBMRU5HVEhfR1JPV19TSFJJTkspIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKCJDYW5ub3Qgc2hhcGUgaW4gcGxhY2Ugd2l0aCBsZW5ndGggb3B0aW9uIGdyb3cvc2hyaW5rLiIpOworICAgICAgICB9CisgICAgICAgIHNoYXBlKHNvdXJjZSwgc3RhcnQsIGxlbmd0aCwgc291cmNlLCBzdGFydCwgbGVuZ3RoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgc3RyaW5nLCByZXR1cm5pbmcgdGhlIG5ldyBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgc3RyaW5nIHRvIGNvbnZlcnQKKyAgICAgKiBAcmV0dXJuIHRoZSBjb252ZXJ0ZWQgc3RyaW5nCisgICAgICogQHRocm93cyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIGlmIHRoZSBzdHJpbmcgY2Fubm90IGJlIGNvbnZlcnRlZCBhY2NvcmRpbmcgdG8gdGhlIG9wdGlvbnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBzaGFwZShTdHJpbmcgdGV4dCkgdGhyb3dzIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24geworICAgICAgICBjaGFyW10gc3JjID0gdGV4dC50b0NoYXJBcnJheSgpOworICAgICAgICBjaGFyW10gZGVzdCA9IHNyYzsKKyAgICAgICAgaWYgKCgob3B0aW9ucyAmIExFTkdUSF9NQVNLKSA9PSBMRU5HVEhfR1JPV19TSFJJTkspICYmCisgICAgICAgICAgICAoKG9wdGlvbnMgJiBMRVRURVJTX01BU0spID09IExFVFRFUlNfVU5TSEFQRSkpIHsKKworICAgICAgICAgICAgZGVzdCA9IG5ldyBjaGFyW3NyYy5sZW5ndGggKiAyXTsgLy8gbWF4CisgICAgICAgIH0KKyAgICAgICAgaW50IGxlbiA9IHNoYXBlKHNyYywgMCwgc3JjLmxlbmd0aCwgZGVzdCwgMCwgZGVzdC5sZW5ndGgpOworCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGRlc3QsIDAsIGxlbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IEFyYWJpY1NoYXBpbmcgdXNpbmcgdGhlIG9wdGlvbnMgZmxhZ3MuCisgICAgICogVGhlIGZsYWdzIGFyZSBhcyBmb2xsb3dzOjxicj4KKyAgICAgKiAnTEVOR1RIJyBmbGFncyBjb250cm9sIHdoZXRoZXIgdGhlIHRleHQgY2FuIGNoYW5nZSBzaXplLCBhbmQgaWYgbm90LAorICAgICAqIGhvdyB0byBtYWludGFpbiB0aGUgc2l6ZSBvZiB0aGUgdGV4dCB3aGVuIExhbUFsZWYgbGlnYXR1cmVzIGFyZSAKKyAgICAgKiBmb3JtZWQgb3IgYnJva2VuLjxicj4KKyAgICAgKiAnVEVYVF9ESVJFQ1RJT04nIGZsYWdzIGNvbnRyb2wgd2hldGhlciB0aGUgdGV4dCBpcyByZWFkIGFuZCB3cml0dGVuCisgICAgICogaW4gdmlzdWFsIG9yZGVyIG9yIGluIGxvZ2ljYWwgb3JkZXIuPGJyPgorICAgICAqICdMRVRURVJTX1NIQVBFJyBmbGFncyBjb250cm9sIHdoZXRoZXIgY29udmVyc2lvbiBpcyB0byBvciBmcm9tCisgICAgICogcHJlc2VudGF0aW9uIGZvcm1zLjxicj4KKyAgICAgKiAnRElHSVRTJyBmbGFncyBjb250cm9sIHdoZXRoZXIgZGlnaXRzIGFyZSBzaGFwZWQsIGFuZCB3aGV0aGVyIGZyb20KKyAgICAgKiBFdXJvcGVhbiB0byBBcmFiaWMtSW5kaWMgb3IgdmljZS12ZXJzYS48YnI+CisgICAgICogJ0RJR0lUX1RZUEUnIGZsYWdzIGNvbnRyb2wgd2hldGhlciBzdGFuZGFyZCBvciBleHRlbmRlZCBBcmFiaWMtSW5kaWMKKyAgICAgKiBkaWdpdHMgYXJlIHVzZWQgd2hlbiBwZXJmb3JtaW5nIGRpZ2l0IGNvbnZlcnNpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIEFyYWJpY1NoYXBpbmcoaW50IG9wdGlvbnMpIHsKKyAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9uczsKKyAgICAgICAgaWYgKChvcHRpb25zICYgRElHSVRTX01BU0spID4gMHg4MCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiYmFkIERJR0lUUyBvcHRpb25zIik7CisgICAgICAgIH0KKyAgICAgICAgaXNMb2dpY2FsID0gKG9wdGlvbnMgJiBURVhUX0RJUkVDVElPTl9NQVNLKSA9PSBURVhUX0RJUkVDVElPTl9MT0dJQ0FMOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1lbW9yeSBvcHRpb246IGFsbG93IHRoZSByZXN1bHQgdG8gaGF2ZSBhIGRpZmZlcmVudCBsZW5ndGggdGhhbiB0aGUgc291cmNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFTkdUSF9HUk9XX1NIUklOSyA9IDA7CisKKyAgICAvKioKKyAgICAgKiBNZW1vcnkgb3B0aW9uOiB0aGUgcmVzdWx0IG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGggYXMgdGhlIHNvdXJjZS4KKyAgICAgKiBJZiBtb3JlIHJvb20gaXMgbmVjZXNzYXJ5LCB0aGVuIHRyeSB0byBjb25zdW1lIHNwYWNlcyBuZXh0IHRvIG1vZGlmaWVkIGNoYXJhY3RlcnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVOR1RIX0ZJWEVEX1NQQUNFU19ORUFSID0gMTsKKworICAgIC8qKgorICAgICAqIE1lbW9yeSBvcHRpb246IHRoZSByZXN1bHQgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aCBhcyB0aGUgc291cmNlLgorICAgICAqIElmIG1vcmUgcm9vbSBpcyBuZWNlc3NhcnksIHRoZW4gdHJ5IHRvIGNvbnN1bWUgc3BhY2VzIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQgPSAyOworCisgICAgLyoqCisgICAgICogTWVtb3J5IG9wdGlvbjogdGhlIHJlc3VsdCBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBzb3VyY2UuCisgICAgICogSWYgbW9yZSByb29tIGlzIG5lY2Vzc2FyeSwgdGhlbiB0cnkgdG8gY29uc3VtZSBzcGFjZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0JFR0lOTklORyA9IDM7CisKKyAgICAvKiogCisgICAgICogQml0IG1hc2sgZm9yIG1lbW9yeSBvcHRpb25zLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRU5HVEhfTUFTSyA9IDM7CisKKworICAgIC8qKiAKKyAgICAgKiBEaXJlY3Rpb24gaW5kaWNhdG9yOiB0aGUgc291cmNlIGlzIGluIGxvZ2ljYWwgKGtleWJvYXJkKSBvcmRlci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVYVF9ESVJFQ1RJT05fTE9HSUNBTCA9IDA7CisKKyAgICAvKiogCisgICAgICogRGlyZWN0aW9uIGluZGljYXRvcjogdGhlIHNvdXJjZSBpcyBpbiB2aXN1YWwgKGRpc3BsYXkpIG9yZGVyLCB0aGF0IGlzLAorICAgICAqIHRoZSBsZWZ0bW9zdCBkaXNwbGF5ZWQgY2hhcmFjdGVyIGlzIHN0b3JlZCBmaXJzdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURVhUX0RJUkVDVElPTl9WSVNVQUxfTFRSID0gNDsKKworICAgIC8qKiAKKyAgICAgKiBCaXQgbWFzayBmb3IgZGlyZWN0aW9uIGluZGljYXRvcnMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFWFRfRElSRUNUSU9OX01BU0sgPSA0OworCisKKyAgICAvKioKKyAgICAgKiBMZXR0ZXIgc2hhcGluZyBvcHRpb246IGRvIG5vdCBwZXJmb3JtIGxldHRlciBzaGFwaW5nLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMRVRURVJTX05PT1AgPSAwOworCisgICAgLyoqIAorICAgICAqIExldHRlciBzaGFwaW5nIG9wdGlvbjogcmVwbGFjZSBub3JtYXRpdmUgbGV0dGVyIGNoYXJhY3RlcnMgaW4gdGhlIFUrMDYwMCAoQXJhYmljKSBibG9jaywKKyAgICAgKiBieSBzaGFwZWQgb25lcyBpbiB0aGUgVStGRTcwIChQcmVzZW50YXRpb24gRm9ybXMgQikgYmxvY2suIFBlcmZvcm1zIExhbS1BbGVmIGxpZ2F0dXJlCisgICAgICogc3Vic3RpdHV0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFVFRFUlNfU0hBUEUgPSA4OworCisgICAgLyoqIAorICAgICAqIExldHRlciBzaGFwaW5nIG9wdGlvbjogcmVwbGFjZSBzaGFwZWQgbGV0dGVyIGNoYXJhY3RlcnMgaW4gdGhlIFUrRkU3MCAoUHJlc2VudGF0aW9uIEZvcm1zIEIpIGJsb2NrCisgICAgICogYnkgbm9ybWF0aXZlIG9uZXMgaW4gdGhlIFUrMDYwMCAoQXJhYmljKSBibG9jay4gIENvbnZlcnRzIExhbS1BbGVmIGxpZ2F0dXJlcyB0byBwYWlycyBvZiBMYW0gYW5kCisgICAgICogQWxlZiBjaGFyYWN0ZXJzLCBjb25zdW1pbmcgc3BhY2VzIGlmIHJlcXVpcmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFVFRFUlNfVU5TSEFQRSA9IDB4MTA7CisKKyAgICAvKioKKyAgICAgKiBMZXR0ZXIgc2hhcGluZyBvcHRpb246IHJlcGxhY2Ugbm9ybWF0aXZlIGxldHRlciBjaGFyYWN0ZXJzIGluIHRoZSBVKzA2MDAgKEFyYWJpYykgYmxvY2ssCisgICAgICogZXhjZXB0IGZvciB0aGUgVEFTSEtFRUwgY2hhcmFjdGVycyBhdCBVKzA2NEIuLi5VKzA2NTIsIGJ5IHNoYXBlZCBvbmVzIGluIHRoZSBVK0ZlNzAKKyAgICAgKiAoUHJlc2VudGF0aW9uIEZvcm1zIEIpIGJsb2NrLiAgVGhlIFRBU0hLRUVMIGNoYXJhY3RlcnMgd2lsbCBhbHdheXMgYmUgY29udmVydGVkIHRvCisgICAgICogdGhlIGlzb2xhdGVkIGZvcm1zIHJhdGhlciB0aGFuIHRvIHRoZWlyIGNvcnJlY3Qgc2hhcGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRCA9IDB4MTg7CisKKyAgICAvKiogCisgICAgICogQml0IG1hc2sgZm9yIGxldHRlciBzaGFwaW5nIG9wdGlvbnMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFVFRFUlNfTUFTSyA9IDB4MTg7CisKKworICAgIC8qKiAKKyAgICAgKiBEaWdpdCBzaGFwaW5nIG9wdGlvbjogZG8gbm90IHBlcmZvcm0gZGlnaXQgc2hhcGluZy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX05PT1AgPSAwOworCisgICAgLyoqCisgICAgICogRGlnaXQgc2hhcGluZyBvcHRpb246IFJlcGxhY2UgRXVyb3BlYW4gZGlnaXRzIChVKzAwMzAuLi5VKzAwMzkpIGJ5IEFyYWJpYy1JbmRpYyBkaWdpdHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX0VOMkFOID0gMHgyMDsKKworICAgIC8qKgorICAgICAqIERpZ2l0IHNoYXBpbmcgb3B0aW9uOiBSZXBsYWNlIEFyYWJpYy1JbmRpYyBkaWdpdHMgYnkgRXVyb3BlYW4gZGlnaXRzIChVKzAwMzAuLi5VKzAwMzkpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19BTjJFTiA9IDB4NDA7CisKKyAgICAvKioKKyAgICAgKiBEaWdpdCBzaGFwaW5nIG9wdGlvbjoKKyAgICAgKiBSZXBsYWNlIEV1cm9wZWFuIGRpZ2l0cyAoVSswMDMwLi4uVSswMDM5KSBieSBBcmFiaWMtSW5kaWMgZGlnaXRzCisgICAgICogaWYgdGhlIG1vc3QgcmVjZW50IHN0cm9uZ2x5IGRpcmVjdGlvbmFsIGNoYXJhY3RlcgorICAgICAqIGlzIGFuIEFyYWJpYyBsZXR0ZXIgKGl0cyBCaWRpIGRpcmVjdGlvbiB2YWx1ZSBpcyBSSUdIVF9UT19MRUZUX0FSQUJJQykuIAorICAgICAqIFRoZSBpbml0aWFsIHN0YXRlIGF0IHRoZSBzdGFydCBvZiB0aGUgdGV4dCBpcyBhc3N1bWVkIHRvIGJlIG5vdCBhbiBBcmFiaWMsCisgICAgICogbGV0dGVyLCBzbyBFdXJvcGVhbiBkaWdpdHMgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHdpbGwgbm90IGNoYW5nZS4KKyAgICAgKiBDb21wYXJlIHRvIERJR0lUU19BTEVOMkFOX0lOSVRfQUwuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX0VOMkFOX0lOSVRfTFIgPSAweDYwOworCisgICAgLyoqCisgICAgICogRGlnaXQgc2hhcGluZyBvcHRpb246CisgICAgICogUmVwbGFjZSBFdXJvcGVhbiBkaWdpdHMgKFUrMDAzMC4uLlUrMDAzOSkgYnkgQXJhYmljLUluZGljIGRpZ2l0cworICAgICAqIGlmIHRoZSBtb3N0IHJlY2VudCBzdHJvbmdseSBkaXJlY3Rpb25hbCBjaGFyYWN0ZXIKKyAgICAgKiBpcyBhbiBBcmFiaWMgbGV0dGVyIChpdHMgQmlkaSBkaXJlY3Rpb24gdmFsdWUgaXMgUklHSFRfVE9fTEVGVF9BUkFCSUMpLiAKKyAgICAgKiBUaGUgaW5pdGlhbCBzdGF0ZSBhdCB0aGUgc3RhcnQgb2YgdGhlIHRleHQgaXMgYXNzdW1lZCB0byBiZSBhbiBBcmFiaWMsCisgICAgICogbGV0dGVyLCBzbyBFdXJvcGVhbiBkaWdpdHMgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHdpbGwgY2hhbmdlLgorICAgICAqIENvbXBhcmUgdG8gRElHSVRTX0FMRU4yQU5fSU5UX0xSLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUU19FTjJBTl9JTklUX0FMID0gMHg4MDsKKworICAgIC8qKiBOb3QgYSB2YWxpZCBvcHRpb24gdmFsdWUuICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERJR0lUU19SRVNFUlZFRCA9IDB4YTA7CisKKyAgICAvKiogCisgICAgICogQml0IG1hc2sgZm9yIGRpZ2l0IHNoYXBpbmcgb3B0aW9ucy4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRTX01BU0sgPSAweGUwOworCisgICAgLyoqIAorICAgICAqIERpZ2l0IHR5cGUgb3B0aW9uOiBVc2UgQXJhYmljLUluZGljIGRpZ2l0cyAoVSswNjYwLi4uVSswNjY5KS4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRfVFlQRV9BTiA9IDA7CisKKyAgICAvKiogCisgICAgICogRGlnaXQgdHlwZSBvcHRpb246IFVzZSBFYXN0ZXJuIChFeHRlbmRlZCkgQXJhYmljLUluZGljIGRpZ2l0cyAoVSswNmYwLi4uVSswNmY5KS4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRElHSVRfVFlQRV9BTl9FWFRFTkRFRCA9IDB4MTAwOworCisgICAgLyoqIAorICAgICAqIEJpdCBtYXNrIGZvciBkaWdpdCB0eXBlIG9wdGlvbnMuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERJR0lUX1RZUEVfTUFTSyA9IDB4MDEwMDsgLy8gMHgzZjAwPworCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCByaHMpIHsKKyAgICAgICAgcmV0dXJuIHJocyAhPSBudWxsICYmIAorICAgICAgICAgICAgcmhzLmdldENsYXNzKCkgPT0gQXJhYmljU2hhcGluZy5jbGFzcyAmJiAKKyAgICAgICAgICAgIG9wdGlvbnMgPT0gKChBcmFiaWNTaGFwaW5nKXJocykub3B0aW9uczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICAgLy8vQ0xPVkVSOk9GRgorICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBvcHRpb25zOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKHN1cGVyLnRvU3RyaW5nKCkpOworICAgICAgICBidWYuYXBwZW5kKCdbJyk7CisgICAgICAgIHN3aXRjaCAob3B0aW9ucyAmIExFTkdUSF9NQVNLKSB7CisgICAgICAgIGNhc2UgTEVOR1RIX0dST1dfU0hSSU5LOiBidWYuYXBwZW5kKCJncm93L3NocmluayIpOyBicmVhazsKKyAgICAgICAgY2FzZSBMRU5HVEhfRklYRURfU1BBQ0VTX05FQVI6IGJ1Zi5hcHBlbmQoInNwYWNlcyBuZWFyIik7IGJyZWFrOworICAgICAgICBjYXNlIExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5EOiBidWYuYXBwZW5kKCJzcGFjZXMgYXQgZW5kIik7IGJyZWFrOworICAgICAgICBjYXNlIExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfQkVHSU5OSU5HOiBidWYuYXBwZW5kKCJzcGFjZXMgYXQgYmVnaW5uaW5nIik7IGJyZWFrOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAob3B0aW9ucyAmIFRFWFRfRElSRUNUSU9OX01BU0spIHsKKyAgICAgICAgY2FzZSBURVhUX0RJUkVDVElPTl9MT0dJQ0FMOiBidWYuYXBwZW5kKCIsIGxvZ2ljYWwiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgVEVYVF9ESVJFQ1RJT05fVklTVUFMX0xUUjogYnVmLmFwcGVuZCgiLCB2aXN1YWwiKTsgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChvcHRpb25zICYgTEVUVEVSU19NQVNLKSB7CisgICAgICAgIGNhc2UgTEVUVEVSU19OT09QOiBidWYuYXBwZW5kKCIsIG5vIGxldHRlciBzaGFwaW5nIik7IGJyZWFrOworICAgICAgICBjYXNlIExFVFRFUlNfU0hBUEU6IGJ1Zi5hcHBlbmQoIiwgc2hhcGUgbGV0dGVycyIpOyBicmVhazsKKyAgICAgICAgY2FzZSBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEOiBidWYuYXBwZW5kKCIsIHNoYXBlIGxldHRlcnMgdGFzaGtlZWwgaXNvbGF0ZWQiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgTEVUVEVSU19VTlNIQVBFOiBidWYuYXBwZW5kKCIsIHVuc2hhcGUgbGV0dGVycyIpOyBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKG9wdGlvbnMgJiBESUdJVFNfTUFTSykgeworICAgICAgICBjYXNlIERJR0lUU19OT09QOiBidWYuYXBwZW5kKCIsIG5vIGRpZ2l0IHNoYXBpbmciKTsgYnJlYWs7CisgICAgICAgIGNhc2UgRElHSVRTX0VOMkFOOiBidWYuYXBwZW5kKCIsIHNoYXBlIGRpZ2l0cyB0byBBTiIpOyBicmVhazsKKyAgICAgICAgY2FzZSBESUdJVFNfQU4yRU46IGJ1Zi5hcHBlbmQoIiwgc2hhcGUgZGlnaXRzIHRvIEVOIik7IGJyZWFrOworICAgICAgICBjYXNlIERJR0lUU19FTjJBTl9JTklUX0xSOiBidWYuYXBwZW5kKCIsIHNoYXBlIGRpZ2l0cyB0byBBTiBjb250ZXh0dWFsbHk6IGRlZmF1bHQgRU4iKTsgYnJlYWs7CisgICAgICAgIGNhc2UgRElHSVRTX0VOMkFOX0lOSVRfQUw6IGJ1Zi5hcHBlbmQoIiwgc2hhcGUgZGlnaXRzIHRvIEFOIGNvbnRleHR1YWxseTogZGVmYXVsdCBBTCIpOyBicmVhazsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKG9wdGlvbnMgJiBESUdJVF9UWVBFX01BU0spIHsKKyAgICAgICAgY2FzZSBESUdJVF9UWVBFX0FOOiBidWYuYXBwZW5kKCIsIHN0YW5kYXJkIEFyYWJpYy1JbmRpYyBkaWdpdHMiKTsgYnJlYWs7CisgICAgICAgIGNhc2UgRElHSVRfVFlQRV9BTl9FWFRFTkRFRDogYnVmLmFwcGVuZCgiLCBleHRlbmRlZCBBcmFiaWMtSW5kaWMgZGlnaXRzIik7IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoIl0iKTsKKworICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8KKyAgICAvLyBwb3J0ZWQgYXBpCisgICAgLy8KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJUlJFTEVWQU5UID0gNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFNVFlQRSA9IDE2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBBTEVGVFlQRSA9IDMyOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExJTktSID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTElOS0wgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU5LX01BU0sgPSAzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGlycmVsZXZhbnRQb3NbXSA9IHsgCisgICAgICAgIDB4MCwgMHgyLCAweDQsIDB4NiwgMHg4LCAweEEsIDB4QywgMHhFIAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIGNvbnZlcnRMYW1BbGVmW10gPSAgeworICAgICAgICAnXHUwNjIyJywgLy8gRkVGNSAKKyAgICAgICAgJ1x1MDYyMicsIC8vIEZFRjYKKyAgICAgICAgJ1x1MDYyMycsIC8vIEZFRjcKKyAgICAgICAgJ1x1MDYyMycsIC8vIEZFRjgKKyAgICAgICAgJ1x1MDYyNScsIC8vIEZFRjkKKyAgICAgICAgJ1x1MDYyNScsIC8vIEZFRkEKKyAgICAgICAgJ1x1MDYyNycsIC8vIEZFRkIKKyAgICAgICAgJ1x1MDYyNycgIC8vIEZFRkMgCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgY29udmVydE5vcm1hbGl6ZWRMYW1BbGVmW10gPSB7CisgICAgICAgICdcdTA2MjInLCAvLyAwNjVDCisgICAgICAgICdcdTA2MjMnLCAvLyAwNjVECisgICAgICAgICdcdTA2MjUnLCAvLyAwNjVFCisgICAgICAgICdcdTA2MjcnLCAvLyAwNjVGCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIGFyYUxpbmsgPSB7CisgICAgICAgIDEgICAgICAgICAgICsgMzIgKyAyNTYgKiAweDExLCAgLyoweDA2MjIqLworICAgICAgICAxICAgICAgICAgICArIDMyICsgMjU2ICogMHgxMywgIC8qMHgwNjIzKi8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4MTUsICAvKjB4MDYyNCovCisgICAgICAgIDEgICAgICAgICAgICsgMzIgKyAyNTYgKiAweDE3LCAgLyoweDA2MjUqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHgxOSwgIC8qMHgwNjI2Ki8KKyAgICAgICAgMSAgICAgICAgICAgKyAzMiArIDI1NiAqIDB4MUQsICAvKjB4MDYyNyovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDFGLCAgLyoweDA2MjgqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHgyMywgIC8qMHgwNjI5Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4MjUsICAvKjB4MDYyQSovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDI5LCAgLyoweDA2MkIqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHgyRCwgIC8qMHgwNjJDKi8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4MzEsICAvKjB4MDYyRCovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDM1LCAgLyoweDA2MkUqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHgzOSwgIC8qMHgwNjJGKi8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4M0IsICAvKjB4MDYzMCovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDNELCAgLyoweDA2MzEqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHgzRiwgIC8qMHgwNjMyKi8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NDEsICAvKjB4MDYzMyovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDQ1LCAgLyoweDA2MzQqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg0OSwgIC8qMHgwNjM1Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NEQsICAvKjB4MDYzNiovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDUxLCAgLyoweDA2MzcqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg1NSwgIC8qMHgwNjM4Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NTksICAvKjB4MDYzOSovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDVELCAgLyoweDA2M0EqLworICAgICAgICAwLCAwLCAwLCAwLCAwLCAgICAgICAgICAgICAgICAgIC8qMHgwNjNCLTB4MDYzRiovCisgICAgICAgIDEgKyAyLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2NDAqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg2MSwgIC8qMHgwNjQxKi8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NjUsICAvKjB4MDY0MiovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDY5LCAgLyoweDA2NDMqLworICAgICAgICAxICsgMiAgICAgICArIDE2ICsgMjU2ICogMHg2RCwgIC8qMHgwNjQ0Ki8KKyAgICAgICAgMSArIDIgICAgICAgICAgICArIDI1NiAqIDB4NzEsICAvKjB4MDY0NSovCisgICAgICAgIDEgKyAyICAgICAgICAgICAgKyAyNTYgKiAweDc1LCAgLyoweDA2NDYqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg3OSwgIC8qMHgwNjQ3Ki8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4N0QsICAvKjB4MDY0OCovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDdGLCAgLyoweDA2NDkqLworICAgICAgICAxICsgMiAgICAgICAgICAgICsgMjU2ICogMHg4MSwgIC8qMHgwNjRBKi8KKyAgICAgICAgNCwgNCwgNCwgNCwgICAgICAgICAgICAgICAgICAgICAvKjB4MDY0Qi0weDA2NEUqLworICAgICAgICA0LCA0LCA0LCA0LCAgICAgICAgICAgICAgICAgICAgIC8qMHgwNjRGLTB4MDY1MiovCisgICAgICAgIDQsIDQsIDQsIDAsIDAsICAgICAgICAgICAgICAgICAgLyoweDA2NTMtMHgwNjU3Ki8KKyAgICAgICAgMCwgMCwgMCwgMCwgICAgICAgICAgICAgICAgICAgICAvKjB4MDY1OC0weDA2NUIqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHg4NSwgIC8qMHgwNjVDKi8KKyAgICAgICAgMSAgICAgICAgICAgICAgICArIDI1NiAqIDB4ODcsICAvKjB4MDY1RCovCisgICAgICAgIDEgICAgICAgICAgICAgICAgKyAyNTYgKiAweDg5LCAgLyoweDA2NUUqLworICAgICAgICAxICAgICAgICAgICAgICAgICsgMjU2ICogMHg4QiwgIC8qMHgwNjVGKi8KKyAgICAgICAgMCwgMCwgMCwgMCwgMCwgICAgICAgICAgICAgICAgICAvKjB4MDY2MC0weDA2NjQqLworICAgICAgICAwLCAwLCAwLCAwLCAwLCAgICAgICAgICAgICAgICAgIC8qMHgwNjY1LTB4MDY2OSovCisgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsICAgICAgICAgICAgICAgLyoweDA2NkEtMHgwNjZGKi8KKyAgICAgICAgNCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDY3MCovCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2NzEqLworICAgICAgICAxICAgICAgICAgICArIDMyLCAgICAgICAgICAgICAgIC8qMHgwNjcyKi8KKyAgICAgICAgMSAgICAgICAgICAgKyAzMiwgICAgICAgICAgICAgICAvKjB4MDY3MyovCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2NzQqLworICAgICAgICAxICAgICAgICAgICArIDMyLCAgICAgICAgICAgICAgIC8qMHgwNjc1Ki8KKyAgICAgICAgMSwgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDY3Ni0weDA2NzcqLworICAgICAgICAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAgIC8qMHgwNjc4LTB4MDY3RCovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsICAgLyoweDA2N0UtMHgwNjgzKi8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAgICAgICAgICAgICAvKjB4MDY4NC0weDA2ODcqLworICAgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAgIC8qMHgwNjg4LTB4MDY5MSovCisgICAgICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsICAgICAgICAgLyoweDA2OTItMHgwNjk5Ki8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgICAvKjB4MDY5QS0weDA2QTMqLworICAgICAgICAxKzIsIDErMiwgMSsyLCAxKzIsICAgICAgICAgICAgIC8qMHgwNjlBLTB4MDZBMyovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsICAgLyoweDA2QTQtMHgwNkFEKi8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAgICAgICAgICAgICAvKjB4MDZBNC0weDA2QUQqLworICAgICAgICAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgMSsyLCAgIC8qMHgwNkFFLTB4MDZCNyovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgICAgICAgICAgICAgLyoweDA2QUUtMHgwNkI3Ki8KKyAgICAgICAgMSsyLCAxKzIsIDErMiwgMSsyLCAxKzIsIDErMiwgICAvKjB4MDZCOC0weDA2QkYqLworICAgICAgICAxKzIsIDErMiwgICAgICAgICAgICAgICAgICAgICAgIC8qMHgwNkI4LTB4MDZCRiovCisgICAgICAgIDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoweDA2QzAqLworICAgICAgICAxKzIsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qMHgwNkMxKi8KKyAgICAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgICAvKjB4MDZDMi0weDA2Q0IqLworICAgICAgICAxKzIsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qMHgwNkNDKi8KKyAgICAgICAgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDZDRCovCisgICAgICAgIDErMiwgMSsyLCAxKzIsIDErMiwgICAgICAgICAgICAgLyoweDA2Q0UtMHgwNkQxKi8KKyAgICAgICAgMSwgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKjB4MDZEMi0weDA2RDMqLworICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXSBwcmVzTGluayA9IHsKKyAgICAgICAgMSArIDIsICAgICAgICAgICAgICAgICAgICAgICAgLyoweEZFNzAqLworICAgICAgICAxICsgMiwgICAgICAgICAgICAgICAgICAgICAgICAvKjB4RkU3MSovCisgICAgICAgIDEgKyAyLCAwLCAxKyAyLCAwLCAxKyAyLCAgICAgIC8qMHhGRTcyLTB4RkU3NiovCisgICAgICAgIDEgKyAyLCAgICAgICAgICAgICAgICAgICAgICAgIC8qMHhGRTc3Ki8KKyAgICAgICAgMSsgMiwgMSArIDIsIDErMiwgMSArIDIsICAgICAgLyoweEZFNzgtMHhGRTgxKi8KKyAgICAgICAgMSsgMiwgMSArIDIsIDErMiwgMSArIDIsICAgICAgLyoweEZFODItMHhGRTg1Ki8KKyAgICAgICAgMCwgMCArIDMyLCAxICsgMzIsIDAgKyAzMiwgICAgLyoweEZFODYtMHhGRTg5Ki8KKyAgICAgICAgMSArIDMyLCAwLCAxLCAgMCArIDMyLCAgICAgICAgLyoweEZFOEEtMHhGRThEKi8KKyAgICAgICAgMSArIDMyLCAwLCAyLCAgMSArIDIsICAgICAgICAgLyoweEZFOEUtMHhGRTkxKi8KKyAgICAgICAgMSwgMCArIDMyLCAxICsgMzIsIDAsICAgICAgICAgLyoweEZFOTItMHhGRTk1Ki8KKyAgICAgICAgMiwgMSArIDIsIDEsIDAsICAgICAgICAgICAgICAgLyoweEZFOTYtMHhGRTk5Ki8KKyAgICAgICAgMSwgMCwgMiwgMSArIDIsICAgICAgICAgICAgICAgLyoweEZFOUEtMHhGRTlEKi8KKyAgICAgICAgMSwgMCwgMiwgMSArIDIsICAgICAgICAgICAgICAgLyoweEZFOUUtMHhGRUExKi8KKyAgICAgICAgMSwgMCwgMiwgMSArIDIsICAgICAgICAgICAgICAgLyoweEZFQTItMHhGRUE1Ki8KKyAgICAgICAgMSwgMCwgMiwgMSArIDIsICAgICAgICAgICAgICAgLyoweEZFQTYtMHhGRUE5Ki8KKyAgICAgICAgMSwgMCwgMiwgMSArIDIsICAgICAgICAgICAgICAgLyoweEZFQUEtMHhGRUFEKi8KKyAgICAgICAgMSwgMCwgMSwgMCwgICAgICAgICAgICAgICAgICAgLyoweEZFQUUtMHhGRUIxKi8KKyAgICAgICAgMSwgMCwgMSwgMCwgICAgICAgICAgICAgICAgICAgLyoweEZFQjItMHhGRUI1Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFQjYtMHhGRUI5Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFQkEtMHhGRUJEKi8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFQkUtMHhGRUMxKi8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFQzItMHhGRUM1Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFQzYtMHhGRUM5Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFQ0EtMHhGRUNEKi8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFQ0UtMHhGRUQxKi8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFRDItMHhGRUQ1Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFRDYtMHhGRUQ5Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFREEtMHhGRUREKi8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFREUtMHhGRUUxKi8KKyAgICAgICAgMSwgMCArIDE2LCAyICsgMTYsIDEgKyAyICsxNiwgLyoweEZFRTItMHhGRUU1Ki8KKyAgICAgICAgMSArIDE2LCAwLCAyLCAxKzIsICAgICAgICAgICAgLyoweEZFRTYtMHhGRUU5Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFRUEtMHhGRUVEKi8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFRUUtMHhGRUYxKi8KKyAgICAgICAgMSwgMCwgMSwgMCwgICAgICAgICAgICAgICAgICAgLyoweEZFRjItMHhGRUY1Ki8KKyAgICAgICAgMSwgMCwgMiwgMSsyLCAgICAgICAgICAgICAgICAgLyoweEZFRjYtMHhGRUY5Ki8KKyAgICAgICAgMSwgMCwgMSwgMCwgICAgICAgICAgICAgICAgICAgLyoweEZFRkEtMHhGRUZEKi8KKyAgICAgICAgMSwgMCwgMSwgMCwKKyAgICAgICAgMQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBjb252ZXJ0RkV0bzA2ID0geworICAgICAgICAvKioqKioqKioqKiowKioqKioqMSoqKioqKjIqKioqKiozKioqKioqNCoqKioqKjUqKioqKio2KioqKioqNyoqKioqKjgqKioqKio5KioqKioqQSoqKioqKkIqKioqKipDKioqKioqRCoqKioqKkUqKioqKipGKioqLworICAgICAgICAvKkZFNyovICAgMHg2NEIsIDB4NjRCLCAweDY0QywgMHg2NEMsIDB4NjRELCAweDY0RCwgMHg2NEUsIDB4NjRFLCAweDY0RiwgMHg2NEYsIDB4NjUwLCAweDY1MCwgMHg2NTEsIDB4NjUxLCAweDY1MiwgMHg2NTIsCisgICAgICAgIC8qRkU4Ki8gICAweDYyMSwgMHg2MjIsIDB4NjIyLCAweDYyMywgMHg2MjMsIDB4NjI0LCAweDYyNCwgMHg2MjUsIDB4NjI1LCAweDYyNiwgMHg2MjYsIDB4NjI2LCAweDYyNiwgMHg2MjcsIDB4NjI3LCAweDYyOCwKKyAgICAgICAgLypGRTkqLyAgIDB4NjI4LCAweDYyOCwgMHg2MjgsIDB4NjI5LCAweDYyOSwgMHg2MkEsIDB4NjJBLCAweDYyQSwgMHg2MkEsIDB4NjJCLCAweDYyQiwgMHg2MkIsIDB4NjJCLCAweDYyQywgMHg2MkMsIDB4NjJDLAorICAgICAgICAvKkZFQSovICAgMHg2MkMsIDB4NjJELCAweDYyRCwgMHg2MkQsIDB4NjJELCAweDYyRSwgMHg2MkUsIDB4NjJFLCAweDYyRSwgMHg2MkYsIDB4NjJGLCAweDYzMCwgMHg2MzAsIDB4NjMxLCAweDYzMSwgMHg2MzIsCisgICAgICAgIC8qRkVCKi8gICAweDYzMiwgMHg2MzMsIDB4NjMzLCAweDYzMywgMHg2MzMsIDB4NjM0LCAweDYzNCwgMHg2MzQsIDB4NjM0LCAweDYzNSwgMHg2MzUsIDB4NjM1LCAweDYzNSwgMHg2MzYsIDB4NjM2LCAweDYzNiwKKyAgICAgICAgLypGRUMqLyAgIDB4NjM2LCAweDYzNywgMHg2MzcsIDB4NjM3LCAweDYzNywgMHg2MzgsIDB4NjM4LCAweDYzOCwgMHg2MzgsIDB4NjM5LCAweDYzOSwgMHg2MzksIDB4NjM5LCAweDYzQSwgMHg2M0EsIDB4NjNBLAorICAgICAgICAvKkZFRCovICAgMHg2M0EsIDB4NjQxLCAweDY0MSwgMHg2NDEsIDB4NjQxLCAweDY0MiwgMHg2NDIsIDB4NjQyLCAweDY0MiwgMHg2NDMsIDB4NjQzLCAweDY0MywgMHg2NDMsIDB4NjQ0LCAweDY0NCwgMHg2NDQsCisgICAgICAgIC8qRkVFKi8gICAweDY0NCwgMHg2NDUsIDB4NjQ1LCAweDY0NSwgMHg2NDUsIDB4NjQ2LCAweDY0NiwgMHg2NDYsIDB4NjQ2LCAweDY0NywgMHg2NDcsIDB4NjQ3LCAweDY0NywgMHg2NDgsIDB4NjQ4LCAweDY0OSwKKyAgICAgICAgLypGRUYqLyAgIDB4NjQ5LCAweDY0QSwgMHg2NEEsIDB4NjRBLCAweDY0QSwgMHg2NUMsIDB4NjVDLCAweDY1RCwgMHg2NUQsIDB4NjVFLCAweDY1RSwgMHg2NUYsIDB4NjVGCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBzaGFwZVRhYmxlW11bXVtdID0geworICAgICAgICB7IHswLDAsMCwwfSwgezAsMCwwLDB9LCB7MCwxLDAsM30sIHswLDEsMCwxfSB9LAorICAgICAgICB7IHswLDAsMiwyfSwgezAsMCwxLDJ9LCB7MCwxLDEsMn0sIHswLDEsMSwzfSB9LAorICAgICAgICB7IHswLDAsMCwwfSwgezAsMCwwLDB9LCB7MCwxLDAsM30sIHswLDEsMCwzfSB9LAorICAgICAgICB7IHswLDAsMSwyfSwgezAsMCwxLDJ9LCB7MCwxLDEsMn0sIHswLDEsMSwzfSB9CisgICAgfTsKKworICAgIC8qCisgICAgICogVGhpcyBmdW5jdGlvbiBzaGFwZXMgRXVyb3BlYW4gZGlnaXRzIHRvIEFyYWJpYy1JbmRpYyBkaWdpdHMKKyAgICAgKiBpbi1wbGFjZSwgd3JpdGluZyBvdmVyIHRoZSBpbnB1dCBjaGFyYWN0ZXJzLiAgRGF0YSBpcyBpbiB2aXN1YWwKKyAgICAgKiBvcmRlci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2hhcGVUb0FyYWJpY0RpZ2l0c1dpdGhDb250ZXh0KGNoYXJbXSBkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgZGlnaXRCYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBsYXN0U3Ryb25nV2FzQUwpIHsKKyAgICAgICAgVUJpRGlQcm9wcyBiZHA7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBiZHA9VUJpRGlQcm9wcy5nZXRTaW5nbGV0b24oKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwgIihCaWRpUHJvcHMpIiwgIiIpOworICAgICAgICB9CisgICAgICAgIGRpZ2l0QmFzZSAtPSAnMCc7IC8vIG1vdmUgY29tbW9uIGFkanVzdG1lbnQgb3V0IG9mIGxvb3AKKworICAgICAgICBmb3IoaW50IGkgPSBzdGFydCArIGxlbmd0aDsgLS1pID49IHN0YXJ0OykgeworICAgICAgICAgICAgY2hhciBjaCA9IGRlc3RbaV07CisgICAgICAgICAgICBzd2l0Y2ggKGJkcC5nZXRDbGFzcyhjaCkpIHsKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3RlckRpcmVjdGlvbi5MRUZUX1RPX1JJR0hUOgorICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQ6CisgICAgICAgICAgICAgICAgbGFzdFN0cm9uZ1dhc0FMID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUM6CisgICAgICAgICAgICAgICAgbGFzdFN0cm9uZ1dhc0FMID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3RlckRpcmVjdGlvbi5FVVJPUEVBTl9OVU1CRVI6CisgICAgICAgICAgICAgICAgaWYgKGxhc3RTdHJvbmdXYXNBTCAmJiBjaCA8PSAnXHUwMDM5JykgeworICAgICAgICAgICAgICAgICAgICBkZXN0W2ldID0gKGNoYXIpKGNoICsgZGlnaXRCYXNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogaW52ZXJ0QnVmZmVyCisgICAgICogRnVuY3Rpb246IFRoaXMgZnVuY3Rpb24gaW52ZXJ0cyB0aGUgYnVmZmVyLCBpdCdzIHVzZWQKKyAgICAgKiAgICAgICAgICAgaW4gY2FzZSB0aGUgdXNlciBzcGVjaWZpZXMgdGhlIGJ1ZmZlciB0byBiZQorICAgICAqICAgICAgICAgICBURVhUX0RJUkVDVElPTl9MT0dJQ0FMCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBpbnZlcnRCdWZmZXIoY2hhcltdIGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCkgeworCisgICAgICAgIGZvcihpbnQgaSA9IHN0YXJ0LCBqID0gc3RhcnQgKyBsZW5ndGggLSAxOyBpIDwgajsgaSsrLCAtLWopIHsKKyAgICAgICAgICAgIGNoYXIgdGVtcCA9IGJ1ZmZlcltpXTsKKyAgICAgICAgICAgIGJ1ZmZlcltpXSA9IGJ1ZmZlcltqXTsKKyAgICAgICAgICAgIGJ1ZmZlcltqXSA9IHRlbXA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBjaGFuZ2VMYW1BbGVmCisgICAgICogRnVuY3Rpb246IENvbnZlcnRzIHRoZSBBbGVmIGNoYXJhY3RlcnMgaW50byBhbiBlcXVpdmFsZW50CisgICAgICogICAgICAgICAgIExhbUFsZWYgbG9jYXRpb24gaW4gdGhlIDB4MDZ4eCBSYW5nZSwgdGhpcyBpcyBhbgorICAgICAqICAgICAgICAgICBpbnRlcm1lZGlhdGUgc3RhZ2UgaW4gdGhlIG9wZXJhdGlvbiBvZiB0aGUgcHJvZ3JhbQorICAgICAqICAgICAgICAgICBsYXRlciBpdCdsbCBiZSBjb252ZXJ0ZWQgaW50byB0aGUgMHhGRXh4IExhbUFsZWZzIAorICAgICAqICAgICAgICAgICBpbiB0aGUgc2hhcGluZyBmdW5jdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIGNoYW5nZUxhbUFsZWYoY2hhciBjaCkgeworICAgICAgICBzd2l0Y2goY2gpIHsKKyAgICAgICAgY2FzZSAnXHUwNjIyJzogcmV0dXJuICdcdTA2NUMnOworICAgICAgICBjYXNlICdcdTA2MjMnOiByZXR1cm4gJ1x1MDY1RCc7CisgICAgICAgIGNhc2UgJ1x1MDYyNSc6IHJldHVybiAnXHUwNjVFJzsKKyAgICAgICAgY2FzZSAnXHUwNjI3JzogcmV0dXJuICdcdTA2NUYnOworICAgICAgICBkZWZhdWx0OiAgcmV0dXJuICdcdTAwMDAnOyAvLyBub3QgYSBsYW1hbGVmCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBzcGVjaWFsQ2hhcgorICAgICAqIEZ1bmN0aW9uOiBTcGVjaWFsIEFyYWJpYyBjaGFyYWN0ZXJzIG5lZWQgc3BlY2lhbCBoYW5kbGluZyBpbiB0aGUgc2hhcGVVbmljb2RlCisgICAgICogICAgICAgICAgIGZ1bmN0aW9uLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgMSBvciAyIGZvciB0aGVzZSBzcGVjaWFsIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgc3BlY2lhbENoYXIoY2hhciBjaCkgeworICAgICAgICBpZiAoKGNoID4gJ1x1MDYyMScgJiYgY2ggPCAnXHUwNjI2JykgfHwgCisgICAgICAgICAgICAoY2ggPT0gJ1x1MDYyNycpIHx8CisgICAgICAgICAgICAoY2ggPiAnXHUwNjJFJyAmJiBjaCA8ICdcdTA2MzMnKSB8fAorICAgICAgICAgICAgKGNoID4gJ1x1MDY0NycgJiYgY2ggPCAnXHUwNjRBJykgfHwKKyAgICAgICAgICAgIChjaCA9PSAnXHUwNjI5JykpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9IGVsc2UgaWYgKGNoID49ICdcdTA2NEInICYmIGNoPD0gJ1x1MDY1MicpIHsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9IGVsc2UgaWYgKGNoID49IDB4MDY1MyAmJiBjaCA8PSAweDA2NTUgfHwgCisgICAgICAgICAgICAgICAgICAgY2ggPT0gMHgwNjcwIHx8CisgICAgICAgICAgICAgICAgICAgY2ggPj0gMHhGRTcwICYmIGNoIDw9IDB4RkU3RikgeworICAgICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBnZXRMaW5rCisgICAgICogRnVuY3Rpb246IFJlc29sdmVzIHRoZSBsaW5rIGJldHdlZW4gdGhlIGNoYXJhY3RlcnMgYXMgCisgICAgICogICAgICAgICAgIEFyYWJpYyBjaGFyYWN0ZXJzIGhhdmUgZm91ciBmb3JtcyA6CisgICAgICogICAgICAgICAgIElzb2xhdGVkLCBJbml0aWFsLCBNaWRkbGUgYW5kIEZpbmFsIEZvcm0KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0TGluayhjaGFyIGNoKSB7CisgICAgICAgIGlmIChjaCA+PSAnXHUwNjIyJyAmJiBjaCA8PSAnXHUwNkQzJykgeworICAgICAgICAgICAgcmV0dXJuIGFyYUxpbmtbY2ggLSAnXHUwNjIyJ107CisgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gJ1x1MjAwRCcpIHsKKyAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICB9IGVsc2UgaWYgKGNoID49ICdcdTIwNkQnICYmIGNoIDw9ICdcdTIwNkYnKSB7CisgICAgICAgICAgICByZXR1cm4gNDsKKyAgICAgICAgfSBlbHNlIGlmIChjaCA+PSAnXHVGRTcwJyAmJiBjaCA8PSAnXHVGRUZDJykgeworICAgICAgICAgICAgcmV0dXJuIHByZXNMaW5rW2NoIC0gJ1x1RkU3MCddOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBjb3VudFNwYWNlcworICAgICAqIEZ1bmN0aW9uOiBDb3VudHMgdGhlIG51bWJlciBvZiBzcGFjZXMKKyAgICAgKiAgICAgICAgICAgYXQgZWFjaCBlbmQgb2YgdGhlIGxvZ2ljYWwgYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGNvdW50U3BhY2VzTGVmdChjaGFyW10gZGVzdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY291bnQpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0LCBlID0gc3RhcnQgKyBjb3VudDsgaSA8IGU7ICsraSkgeworICAgICAgICAgICAgaWYgKGRlc3RbaV0gIT0gJ1x1MDAyMCcpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaSAtIHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjb3VudDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgY291bnRTcGFjZXNSaWdodChjaGFyW10gZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50KSB7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0ICsgY291bnQ7IC0taSA+PSBzdGFydDspIHsKKyAgICAgICAgICAgIGlmIChkZXN0W2ldICE9ICdcdTAwMjAnKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0ICsgY291bnQgLSAxIC0gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY291bnQ7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogaXNUYXNoa2VlbENoYXIKKyAgICAgKiBGdW5jdGlvbjogUmV0dXJucyAxIGZvciBUYXNoa2VlbCBjaGFyYWN0ZXJzIGVsc2UgcmV0dXJuIDAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzVGFzaGtlZWxDaGFyKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGNoID49J1x1MDY0QicgJiYgY2ggPD0gJ1x1MDY1Mic7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogaXNBbGVmQ2hhcgorICAgICAqIEZ1bmN0aW9uOiBSZXR1cm5zIDEgZm9yIEFsZWYgY2hhcmFjdGVycyBlbHNlIHJldHVybiAwCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0FsZWZDaGFyKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGNoID09ICdcdTA2MjInIHx8IGNoID09ICdcdTA2MjMnIHx8IGNoID09ICdcdTA2MjUnIHx8IGNoID09ICdcdTA2MjcnOworICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IGlzTGFtQWxlZkNoYXIKKyAgICAgKiBGdW5jdGlvbjogUmV0dXJucyAxIGZvciBMYW1BbGVmIGNoYXJhY3RlcnMgZWxzZSByZXR1cm4gMAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNMYW1BbGVmQ2hhcihjaGFyIGNoKSB7CisgICAgICAgIHJldHVybiBjaCA+PSAnXHVGRUY1JyAmJiBjaCA8PSAnXHVGRUZDJzsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzTm9ybWFsaXplZExhbUFsZWZDaGFyKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGNoID49ICdcdTA2NUMnICYmIGNoIDw9ICdcdTA2NUYnOworICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IGNhbGN1bGF0ZVNpemUKKyAgICAgKiBGdW5jdGlvbjogVGhpcyBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSBkZXN0U2l6ZSB0byBiZSB1c2VkIGluIHByZWZsaWdodGluZworICAgICAqICAgICAgICAgICB3aGVuIHRoZSBkZXN0U2l6ZSBpcyBlcXVhbCB0byAwCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgY2FsY3VsYXRlU2l6ZShjaGFyW10gc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNvdXJjZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNvdXJjZUxlbmd0aCkgeworICAgIAorICAgICAgICBpbnQgZGVzdFNpemUgPSBzb3VyY2VMZW5ndGg7CisKKyAgICAgICAgc3dpdGNoIChvcHRpb25zICYgTEVUVEVSU19NQVNLKSB7CisgICAgICAgIGNhc2UgTEVUVEVSU19TSEFQRToKKyAgICAgICAgY2FzZSBMRVRURVJTX1NIQVBFX1RBU0hLRUVMX0lTT0xBVEVEOgorICAgICAgICAgICAgaWYgKGlzTG9naWNhbCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBzb3VyY2VTdGFydCwgZSA9IHNvdXJjZVN0YXJ0ICsgc291cmNlTGVuZ3RoIC0gMTsgaSA8IGU7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlW2ldID09ICdcdTA2NDQnICYmIGlzQWxlZkNoYXIoc291cmNlW2krMV0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAtLWRlc3RTaXplOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsgLy8gdmlzdWFsCisgICAgICAgICAgICAgICAgZm9yKGludCBpID0gc291cmNlU3RhcnQgKyAxLCBlID0gc291cmNlU3RhcnQgKyBzb3VyY2VMZW5ndGg7IGkgPCBlOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVtpXSA9PSAnXHUwNjQ0JyAmJiBpc0FsZWZDaGFyKHNvdXJjZVtpLTFdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLS1kZXN0U2l6ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTEVUVEVSU19VTlNIQVBFOgorICAgICAgICAgICAgZm9yKGludCBpID0gc291cmNlU3RhcnQsIGUgPSBzb3VyY2VTdGFydCArIHNvdXJjZUxlbmd0aDsgaSA8IGU7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpc0xhbUFsZWZDaGFyKHNvdXJjZVtpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzdFNpemUrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZGVzdFNpemU7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBOYW1lICAgIDogcmVtb3ZlTGFtQWxlZlNwYWNlcworICAgICAqIEZ1bmN0aW9uOiBUaGUgc2hhcGVVbmljb2RlIGZ1bmN0aW9uIGNvbnZlcnRzIExhbSArIEFsZWYgaW50byBMYW1BbGVmICsgc3BhY2UsCisgICAgICogICAgICAgICAgIHRoaXMgZnVuY3Rpb24gcmVtb3ZlcyB0aGUgc3BhY2VzIGJlaGluZCB0aGUgTGFtQWxlZnMgYWNjb3JkaW5nIHRvCisgICAgICogICAgICAgICAgIHRoZSBvcHRpb25zIHRoZSB1c2VyIHNwZWNpZmllcywgdGhlIHNwYWNlcyBhcmUgcmVtb3ZlZCB0byB0aGUgZW5kCisgICAgICogICAgICAgICAgIG9mIHRoZSBidWZmZXIsIG9yIHNocmluayB0aGUgYnVmZmVyIGFuZCByZW1vdmUgc3BhY2VzIGZvciBnb29kCisgICAgICogICAgICAgICAgIG9yIGxlYXZlIHRoZSBidWZmZXIgYXMgaXQgaXMgTGFtQWxlZiArIHNwYWNlLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHJlbW92ZUxhbUFsZWZTcGFjZXMoY2hhcltdIGRlc3QsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCkgeworICAgIAorICAgICAgICBpbnQgbGVuT3B0aW9ucyA9IG9wdGlvbnMgJiBMRU5HVEhfTUFTSzsKKyAgICAgICAgaWYgKCFpc0xvZ2ljYWwpIHsKKyAgICAgICAgICAgIHN3aXRjaCAobGVuT3B0aW9ucykgeworICAgICAgICAgICAgY2FzZSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0JFR0lOTklORzogbGVuT3B0aW9ucyA9IExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5EOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQ6IGxlbk9wdGlvbnMgPSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0JFR0lOTklORzsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChsZW5PcHRpb25zID09IExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUikgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0LCBlID0gaSArIGxlbmd0aDsgaSA8IGU7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChkZXN0W2ldID09ICdcdWZmZmYnKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbaV0gPSAnXHUwMDIwJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmaW5hbCBpbnQgZSA9IHN0YXJ0ICsgbGVuZ3RoOworICAgICAgICAgICAgaW50IHcgPSBlOworICAgICAgICAgICAgaW50IHIgPSBlOworICAgICAgICAgICAgd2hpbGUgKC0tciA+PSBzdGFydCkgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBkZXN0W3JdOworICAgICAgICAgICAgICAgIGlmIChjaCAhPSAnXHVmZmZmJykgeworICAgICAgICAgICAgICAgICAgICAtLXc7CisgICAgICAgICAgICAgICAgICAgIGlmICh3ICE9IHIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Rbd10gPSBjaDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGxlbk9wdGlvbnMgPT0gTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9FTkQpIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAodyA+IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbLS13XSA9ICdcdTAwMjAnOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHcgPiBzdGFydCkgeworICAgICAgICAgICAgICAgICAgICAvLyBzaGlmdCwgYXNzdW1lIHNtYWxsIGJ1ZmZlciBzaXplIHNvIGRvbid0IHVzZSBhcnJheWNvcHkKKyAgICAgICAgICAgICAgICAgICAgciA9IHc7CisgICAgICAgICAgICAgICAgICAgIHcgPSBzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHIgPCBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W3crK10gPSBkZXN0W3IrK107CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB3ID0gZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxlbk9wdGlvbnMgPT0gTEVOR1RIX0dST1dfU0hSSU5LKSB7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IHcgLSBzdGFydDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBzcGFjZXMgYXQgYmVnaW5uaW5nCisgICAgICAgICAgICAgICAgICAgIHdoaWxlICh3IDwgZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFt3KytdID0gJ1x1MDAyMCc7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBleHBhbmRMYW1BbGVmCisgICAgICogRnVuY3Rpb246IExhbUFsZWYgbmVlZHMgc3BlY2lhbCBoYW5kbGluZyBhcyB0aGUgTGFtQWxlZiBpcworICAgICAqICAgICAgICAgICBvbmUgY2hhcmFjdGVyIHdoaWxlIGV4cGFuZGluZyBpdCB3aWxsIGdpdmUgdHdvCisgICAgICogICAgICAgICAgIGNoYXJhY3RlcnMgTGFtICsgQWxlZiwgc28gd2UgbmVlZCB0byBleHBhbmQgdGhlIExhbUFsZWYKKyAgICAgKiAgICAgICAgICAgaW4gbmVhciBvciBmYXIgc3BhY2VzIGFjY29yZGluZyB0byB0aGUgb3B0aW9ucyB0aGUgdXNlcgorICAgICAqICAgICAgICAgICBzcGVjaWZpZXMgb3IgaW5jcmVhc2UgdGhlIGJ1ZmZlciBzaXplLgorICAgICAqICAgICAgICAgICBEZXN0IGhhcyBlbm91Z2ggcm9vbSBmb3IgdGhlIGV4cGFuc2lvbiBpZiB3ZSBhcmUgZ3Jvd2luZy4KKyAgICAgKiAgICAgICAgICAgbGFtYWxlZiBhcmUgbm9ybWFsaXplZCB0byB0aGUgJ3NwZWNpYWwgY2hhcmFjdGVycycKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBleHBhbmRMYW1BbGVmKGNoYXJbXSBkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsYWNvdW50KSB0aHJvd3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiB7CisKKyAgICAgICAgaW50IGxlbk9wdGlvbnMgPSBvcHRpb25zICYgTEVOR1RIX01BU0s7CisgICAgICAgIGlmICghaXNMb2dpY2FsKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGxlbk9wdGlvbnMpIHsKKyAgICAgICAgICAgIGNhc2UgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkc6IGxlbk9wdGlvbnMgPSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0VORDsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIExFTkdUSF9GSVhFRF9TUEFDRVNfQVRfRU5EOiBsZW5PcHRpb25zID0gTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkc7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzd2l0Y2ggKGxlbk9wdGlvbnMpIHsKKyAgICAgICAgY2FzZSBMRU5HVEhfR1JPV19TSFJJTks6IAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZvciAoaW50IHIgPSBzdGFydCArIGxlbmd0aCwgdyA9IHIgKyBsYWNvdW50OyAtLXIgPj0gc3RhcnQ7KSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBkZXN0W3JdOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNOb3JtYWxpemVkTGFtQWxlZkNoYXIoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0Wy0td10gPSAnXHUwNjQ0JzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbLS13XSA9IGNvbnZlcnROb3JtYWxpemVkTGFtQWxlZltjaCAtICdcdTA2NUMnXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbLS13XSA9IGNoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgbGVuZ3RoICs9IGxhY291bnQ7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIExFTkdUSF9GSVhFRF9TUEFDRVNfTkVBUjogCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGlzTm9ybWFsaXplZExhbUFsZWZDaGFyKGRlc3Rbc3RhcnRdKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbigibm8gc3BhY2UgZm9yIGxhbWFsZWYiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0ICsgbGVuZ3RoOyAtLWkgPiBzdGFydDspIHsgLy8gZG9uJ3QgY2hlY2sgc3RhcnQsIGFscmVhZHkgY2hlY2tlZAorICAgICAgICAgICAgICAgICAgICBjaGFyIGNoID0gZGVzdFtpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzTm9ybWFsaXplZExhbUFsZWZDaGFyKGNoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlc3RbaS0xXSA9PSAnXHUwMDIwJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbaV0gPSAnXHUwNjQ0JzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0Wy0taV0gPSBjb252ZXJ0Tm9ybWFsaXplZExhbUFsZWZbY2ggLSAnXHUwNjVDJ107CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKCJubyBzcGFjZSBmb3IgbGFtYWxlZiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBMRU5HVEhfRklYRURfU1BBQ0VTX0FUX0VORDogCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGxhY291bnQgPiBjb3VudFNwYWNlc0xlZnQoZGVzdCwgc3RhcnQsIGxlbmd0aCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyYWJpY1NoYXBpbmdFeGNlcHRpb24oIm5vIHNwYWNlIGZvciBsYW1hbGVmIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAoaW50IHIgPSBzdGFydCArIGxhY291bnQsIHcgPSBzdGFydCwgZSA9IHN0YXJ0ICsgbGVuZ3RoOyByIDwgZTsgKytyKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBkZXN0W3JdOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNOb3JtYWxpemVkTGFtQWxlZkNoYXIoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W3crK10gPSBjb252ZXJ0Tm9ybWFsaXplZExhbUFsZWZbY2ggLSAnXHUwNjVDJ107CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W3crK10gPSAnXHUwNjQ0JzsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbdysrXSA9IGNoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGNhc2UgTEVOR1RIX0ZJWEVEX1NQQUNFU19BVF9CRUdJTk5JTkc6IAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChsYWNvdW50ID4gY291bnRTcGFjZXNSaWdodChkZXN0LCBzdGFydCwgbGVuZ3RoKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbigibm8gc3BhY2UgZm9yIGxhbWFsZWYiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yIChpbnQgciA9IHN0YXJ0ICsgbGVuZ3RoIC0gbGFjb3VudCwgdyA9IHN0YXJ0ICsgbGVuZ3RoOyAtLXIgPj0gc3RhcnQ7KSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBkZXN0W3JdOworICAgICAgICAgICAgICAgICAgICBpZiAoaXNOb3JtYWxpemVkTGFtQWxlZkNoYXIoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0Wy0td10gPSAnXHUwNjQ0JzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbLS13XSA9IGNvbnZlcnROb3JtYWxpemVkTGFtQWxlZltjaCAtICdcdTA2NUMnXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbLS13XSA9IGNoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKworICAgIC8qIENvbnZlcnQgdGhlIGlucHV0IGJ1ZmZlciBmcm9tIEZFeHggUmFuZ2UgaW50byAwNnh4IFJhbmdlCisgICAgICogdG8gcHV0IGFsbCBjaGFyYWN0ZXJzIGludG8gdGhlIDA2eHggcmFuZ2UKKyAgICAgKiBldmVuIHRoZSBsYW1hbGVmIGlzIGNvbnZlcnRlZCB0byB0aGUgc3BlY2lhbCByZWdpb24gaW4KKyAgICAgKiB0aGUgMDZ4eCByYW5nZS4gIFJldHVybiB0aGUgbnVtYmVyIG9mIGxhbWFsZWYgY2hhcnMgZm91bmQuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbm9ybWFsaXplKGNoYXJbXSBkZXN0LCBpbnQgc3RhcnQsIGludCBsZW5ndGgpIHsKKyAgICAgICAgaW50IGxhY291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gc3RhcnQsIGUgPSBpICsgbGVuZ3RoOyBpIDwgZTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gZGVzdFtpXTsKKyAgICAgICAgICAgIGlmIChjaCA+PSAnXHVGRTcwJyAmJiBjaCA8PSAnXHVGRUZDJykgeworICAgICAgICAgICAgICAgIGlmIChpc0xhbUFsZWZDaGFyKGNoKSkgeworICAgICAgICAgICAgICAgICAgICArK2xhY291bnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGRlc3RbaV0gPSAoY2hhciljb252ZXJ0RkV0bzA2W2NoIC0gJ1x1RkU3MCddOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBsYWNvdW50OworICAgIH0KKworICAgIC8qCisgICAgICogTmFtZSAgICA6IHNoYXBlVW5pY29kZQorICAgICAqIEZ1bmN0aW9uOiBDb252ZXJ0cyBhbiBBcmFiaWMgVW5pY29kZSBidWZmZXIgaW4gMDZ4eCBSYW5nZSBpbnRvIGEgc2hhcGVkCisgICAgICogICAgICAgICAgIGFyYWJpYyBVbmljb2RlIGJ1ZmZlciBpbiBGRXh4IFJhbmdlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgc2hhcGVVbmljb2RlKGNoYXJbXSBkZXN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdFNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0YXNoa2VlbEZsYWcpIHsKKworCisgICAgICAgIG5vcm1hbGl6ZShkZXN0LCBzdGFydCwgbGVuZ3RoKTsKKworICAgICAgICAvLyByZXNvbHZlIHRoZSBsaW5rIGJldHdlZW4gdGhlIGNoYXJhY3RlcnMuCisgICAgICAgIC8vIEFyYWJpYyBjaGFyYWN0ZXJzIGhhdmUgZm91ciBmb3JtczogSXNvbGF0ZWQsIEluaXRpYWwsIE1lZGlhbCBhbmQgRmluYWwuCisgICAgICAgIC8vIFRhc2hrZWVsIGNoYXJhY3RlcnMgaGF2ZSB0d28sIGlzb2xhdGVkIG9yIG1lZGlhbCwgYW5kIHNvbWV0aW1lcyBvbmx5IGlzb2xhdGVkLgorICAgICAgICAvLyB0YXNoa2VlbEZsYWcgPT0gMDogc2hhcGUgbm9ybWFsbHksIDE6IHNoYXBlIGlzb2xhdGVkLCAyOiBkb24ndCBzaGFwZQorCisgICAgICAgIGJvb2xlYW4gbGFtYWxlZl9mb3VuZCA9IGZhbHNlOworICAgICAgICBpbnQgaSA9IHN0YXJ0ICsgbGVuZ3RoIC0gMTsKKyAgICAgICAgaW50IGN1cnJMaW5rID0gZ2V0TGluayhkZXN0W2ldKTsKKyAgICAgICAgaW50IG5leHRMaW5rID0gMDsKKyAgICAgICAgaW50IHByZXZMaW5rID0gMDsKKyAgICAgICAgaW50IGxhc3RMaW5rID0gMDsKKyAgICAgICAgaW50IHByZXZQb3MgPSBpOworICAgICAgICBpbnQgbGFzdFBvcyA9IGk7CisgICAgICAgIGludCBueCA9IC0yOworICAgICAgICBpbnQgbncgPSAwOworCisgICAgICAgIHdoaWxlIChpID49IDApIHsKKyAgICAgICAgICAgIC8vIElmIGhpZ2ggYnl0ZSBvZiBjdXJyTGluayA+IDAgdGhlbiB0aGVyZSBtaWdodCBiZSBtb3JlIHRoYW4gb25lIHNoYXBlCisgICAgICAgICAgICBpZiAoKGN1cnJMaW5rICYgJ1x1RkYwMCcpID4gMCB8fCBpc1Rhc2hrZWVsQ2hhcihkZXN0W2ldKSkgeworICAgICAgICAgICAgICAgIG53ID0gaSAtIDE7CisgICAgICAgICAgICAgICAgbnggPSAtMjsKKyAgICAgICAgICAgICAgICB3aGlsZSAobnggPCAwKSB7IC8vIHdlIG5lZWQgdG8ga25vdyBhYm91dCBuZXh0IGNoYXIKKyAgICAgICAgICAgICAgICAgICAgaWYgKG53ID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0TGluayA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBueCA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV4dExpbmsgPSBnZXRMaW5rKGRlc3RbbnddKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobmV4dExpbmsgJiBJUlJFTEVWQU5UKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnggPSBudzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1udzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICgoKGN1cnJMaW5rICYgQUxFRlRZUEUpID4gMCkgJiYgKChsYXN0TGluayAmIExBTVRZUEUpID4gMCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGFtYWxlZl9mb3VuZCA9IHRydWU7IAorICAgICAgICAgICAgICAgICAgICBjaGFyIHdMYW1hbGVmID0gY2hhbmdlTGFtQWxlZihkZXN0W2ldKTsgLy8gZ2V0IGZyb20gMHgwNjVDLTB4MDY1ZgorICAgICAgICAgICAgICAgICAgICBpZiAod0xhbWFsZWYgIT0gJ1x1MDAwMCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgYWxlZiBieSBtYXJrZXIsIGl0IHdpbGwgYmUgcmVtb3ZlZCBsYXRlcgorICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtpXSA9ICdcdWZmZmYnOworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtsYXN0UG9zXSA9IHdMYW1hbGVmOworICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGxhc3RQb3M7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBsYXN0TGluayA9IHByZXZMaW5rOworICAgICAgICAgICAgICAgICAgICBjdXJyTGluayA9IGdldExpbmsod0xhbWFsZWYpOyAvLyByZXF1aXJlcyAnXHUwMDAwJywgdW5mb3J0dW5hdGVseQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgcHJvcGVyIHNoYXBlIGFjY29yZGluZyB0byBsaW5rIGFiaWxpdHkgb2YgbmVpZ2hib3JzCisgICAgICAgICAgICAgICAgLy8gYW5kIG9mIGNoYXJhY3RlcjsgZGVwZW5kcyBvbiB0aGUgb3JkZXIgb2YgdGhlIHNoYXBlcworICAgICAgICAgICAgICAgIC8vIChpc29sYXRlZCwgaW5pdGlhbCwgbWlkZGxlLCBmaW5hbCkgaW4gdGhlIGNvbXBhdGliaWxpdHkgYXJlYQorCisgICAgICAgICAgICAgICAgaW50IGZsYWcgPSBzcGVjaWFsQ2hhcihkZXN0W2ldKTsKKworICAgICAgICAgICAgICAgIGludCBzaGFwZSA9IHNoYXBlVGFibGVbbmV4dExpbmsgJiBMSU5LX01BU0tdCisgICAgICAgICAgICAgICAgICAgIFtsYXN0TGluayAmIExJTktfTUFTS10KKyAgICAgICAgICAgICAgICAgICAgW2N1cnJMaW5rICYgTElOS19NQVNLXTsKKworICAgICAgICAgICAgICAgIGlmIChmbGFnID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgc2hhcGUgJj0gMHgxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmxhZyA9PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0YXNoa2VlbEZsYWcgPT0gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgKChsYXN0TGluayAmIExJTktMKSAhPSAwKSAmJiAKKyAgICAgICAgICAgICAgICAgICAgICAgICgobmV4dExpbmsgJiBMSU5LUikgIT0gMCkgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2ldICE9ICdcdTA2NEMnICYmIAorICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtpXSAhPSAnXHUwNjREJyAmJgorICAgICAgICAgICAgICAgICAgICAgICAgISgobmV4dExpbmsgJiBBTEVGVFlQRSkgPT0gQUxFRlRZUEUgJiYgCisgICAgICAgICAgICAgICAgICAgICAgICAgIChsYXN0TGluayAmIExBTVRZUEUpID09IExBTVRZUEUpKSB7CisgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUgPSAxOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGZsYWcgPT0gMikgeworICAgICAgICAgICAgICAgICAgICBpZiAodGFzaGtlZWxGbGFnIDwgMikgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFtpXSA9IChjaGFyKSgnXHVGRTcwJyArIGlycmVsZXZhbnRQb3NbZGVzdFtpXSAtICdcdTA2NEInXSArIHNoYXBlKTsKKyAgICAgICAgICAgICAgICAgICAgfSAvLyBlbHNlIGxlYXZlIHRhc2hrZWVsIGFsb25lICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkZXN0W2ldID0gKGNoYXIpKCdcdUZFNzAnICsgKGN1cnJMaW5rID4+IDgpICsgc2hhcGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gbW92ZSBvbmUgbm90Y2ggZm9yd2FyZAorICAgICAgICAgICAgaWYgKChjdXJyTGluayAmIElSUkVMRVZBTlQpID09IDApIHsKKyAgICAgICAgICAgICAgICBwcmV2TGluayA9IGxhc3RMaW5rOworICAgICAgICAgICAgICAgIGxhc3RMaW5rID0gY3Vyckxpbms7CisgICAgICAgICAgICAgICAgcHJldlBvcyA9IGxhc3RQb3M7CisgICAgICAgICAgICAgICAgbGFzdFBvcyA9IGk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC0taTsKKyAgICAgICAgICAgIGlmIChpID09IG54KSB7CisgICAgICAgICAgICAgICAgY3VyckxpbmsgPSBuZXh0TGluazsKKyAgICAgICAgICAgICAgICBueCA9IC0yOworICAgICAgICAgICAgfSBlbHNlIGlmIChpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgY3VyckxpbmsgPSBnZXRMaW5rKGRlc3RbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgd2UgZm91bmQgYSBsYW0vYWxlZiBwYWlyIGluIHRoZSBidWZmZXIgCisgICAgICAgIC8vIGNhbGwgcmVtb3ZlTGFtQWxlZlNwYWNlcyB0byByZW1vdmUgdGhlIHNwYWNlcyB0aGF0IHdlcmUgYWRkZWQKKworICAgICAgICBpZiAobGFtYWxlZl9mb3VuZCkgeworICAgICAgICAgICAgZGVzdFNpemUgPSByZW1vdmVMYW1BbGVmU3BhY2VzKGRlc3QsIHN0YXJ0LCBsZW5ndGgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGVzdFNpemUgPSBsZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBkZXN0U2l6ZTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIE5hbWUgICAgOiBkZVNoYXBlVW5pY29kZQorICAgICAqIEZ1bmN0aW9uOiBDb252ZXJ0cyBhbiBBcmFiaWMgVW5pY29kZSBidWZmZXIgaW4gRkV4eCBSYW5nZSBpbnRvIHVuc2hhcGVkCisgICAgICogICAgICAgICAgIGFyYWJpYyBVbmljb2RlIGJ1ZmZlciBpbiAwNnh4IFJhbmdlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZGVTaGFwZVVuaWNvZGUoY2hhcltdIGRlc3QsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXN0U2l6ZSkgdGhyb3dzIEFyYWJpY1NoYXBpbmdFeGNlcHRpb24geworCisgICAgICAgIGludCBsYW1hbGVmX2NvdW50ID0gbm9ybWFsaXplKGRlc3QsIHN0YXJ0LCBsZW5ndGgpOworCisgICAgICAgIC8vIElmIHRoZXJlIHdhcyBhIGxhbWFsZWYgaW4gdGhlIGJ1ZmZlciBjYWxsIGV4cGFuZExhbUFsZWYKKyAgICAgICAgaWYgKGxhbWFsZWZfY291bnQgIT0gMCkgeworICAgICAgICAgICAgLy8gbmVlZCB0byBhZGp1c3QgZGVzdCB0byBmaXQgZXhwYW5kZWQgYnVmZmVyLi4uICEhIQorICAgICAgICAgICAgZGVzdFNpemUgPSBleHBhbmRMYW1BbGVmKGRlc3QsIHN0YXJ0LCBsZW5ndGgsIGxhbWFsZWZfY291bnQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGVzdFNpemUgPSBsZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZGVzdFNpemU7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgaW50ZXJuYWxTaGFwZShjaGFyW10gc291cmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzb3VyY2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzb3VyY2VMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXN0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdFNpemUpIHRocm93cyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoc291cmNlTGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRlc3RTaXplID09IDApIHsKKyAgICAgICAgICAgIGlmICgoKG9wdGlvbnMgJiBMRVRURVJTX01BU0spICE9IExFVFRFUlNfTk9PUCkgJiYKKyAgICAgICAgICAgICAgICAoKG9wdGlvbnMgJiBMRU5HVEhfTUFTSykgPT0gTEVOR1RIX0dST1dfU0hSSU5LKSkgeworICAgIAorICAgICAgICAgICAgICAgIHJldHVybiBjYWxjdWxhdGVTaXplKHNvdXJjZSwgc291cmNlU3RhcnQsIHNvdXJjZUxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2VMZW5ndGg7IC8vIGJ5IGRlZmluaXRpb24KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGFsd2F5cyB1c2UgdGVtcCBidWZmZXIKKyAgICAgICAgY2hhcltdIHRlbXAgPSBuZXcgY2hhcltzb3VyY2VMZW5ndGggKiAyXTsgLy8gYWxsIGxhbWFsZWZzIHJlcXVpcmluZyBleHBhbnNpb24KKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShzb3VyY2UsIHNvdXJjZVN0YXJ0LCB0ZW1wLCAwLCBzb3VyY2VMZW5ndGgpOworCisgICAgICAgIGlmIChpc0xvZ2ljYWwpIHsKKyAgICAgICAgICAgIGludmVydEJ1ZmZlcih0ZW1wLCAwLCBzb3VyY2VMZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgaW50IG91dHB1dFNpemUgPSBzb3VyY2VMZW5ndGg7CisKKyAgICAgICAgc3dpdGNoIChvcHRpb25zICYgTEVUVEVSU19NQVNLKSB7CisgICAgICAgIGNhc2UgTEVUVEVSU19TSEFQRV9UQVNIS0VFTF9JU09MQVRFRDoKKyAgICAgICAgICAgIG91dHB1dFNpemUgPSBzaGFwZVVuaWNvZGUodGVtcCwgMCwgc291cmNlTGVuZ3RoLCBkZXN0U2l6ZSwgMSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIExFVFRFUlNfU0hBUEU6CisgICAgICAgICAgICBvdXRwdXRTaXplID0gc2hhcGVVbmljb2RlKHRlbXAsIDAsIHNvdXJjZUxlbmd0aCwgZGVzdFNpemUsIDApOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBMRVRURVJTX1VOU0hBUEU6CisgICAgICAgICAgICBvdXRwdXRTaXplID0gZGVTaGFwZVVuaWNvZGUodGVtcCwgMCwgc291cmNlTGVuZ3RoLCBkZXN0U2l6ZSk7CisgICAgICAgICAgICBicmVhazsgCisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgIGlmIChvdXRwdXRTaXplID4gZGVzdFNpemUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKCJub3QgZW5vdWdoIHJvb20gZm9yIHJlc3VsdCBkYXRhIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKG9wdGlvbnMgJiBESUdJVFNfTUFTSykgIT0gRElHSVRTX05PT1ApIHsKKyAgICAgICAgICAgIGNoYXIgZGlnaXRCYXNlID0gJ1x1MDAzMCc7IC8vIEV1cm9wZWFuIGRpZ2l0cworICAgICAgICAgICAgc3dpdGNoIChvcHRpb25zICYgRElHSVRfVFlQRV9NQVNLKSB7CisgICAgICAgICAgICBjYXNlIERJR0lUX1RZUEVfQU46CisgICAgICAgICAgICAgICAgZGlnaXRCYXNlID0gJ1x1MDY2MCc7ICAvLyBBcmFiaWMtSW5kaWMgZGlnaXRzCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgRElHSVRfVFlQRV9BTl9FWFRFTkRFRDoKKyAgICAgICAgICAgICAgICBkaWdpdEJhc2UgPSAnXHUwNmYwJzsgIC8vIEVhc3Rlcm4gQXJhYmljLUluZGljIGRpZ2l0cyAoUGVyc2lhbiBhbmQgVXJkdSkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChvcHRpb25zICYgRElHSVRTX01BU0spIHsKKyAgICAgICAgICAgIGNhc2UgRElHSVRTX0VOMkFOOgorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGRpZ2l0RGVsdGEgPSBkaWdpdEJhc2UgLSAnXHUwMDMwJzsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvdXRwdXRTaXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY2ggPSB0ZW1wW2ldOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoIDw9ICdcdTAwMzknICYmIGNoID49ICdcdTAwMzAnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFtpXSArPSBkaWdpdERlbHRhOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERJR0lUU19BTjJFTjoKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgZGlnaXRUb3AgPSAoY2hhcikoZGlnaXRCYXNlICsgOSk7CisgICAgICAgICAgICAgICAgICAgIGludCBkaWdpdERlbHRhID0gJ1x1MDAzMCcgLSBkaWdpdEJhc2U7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3V0cHV0U2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNoID0gdGVtcFtpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8PSBkaWdpdFRvcCAmJiBjaCA+PSBkaWdpdEJhc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wW2ldICs9IGRpZ2l0RGVsdGE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgRElHSVRTX0VOMkFOX0lOSVRfTFI6CisgICAgICAgICAgICAgICAgc2hhcGVUb0FyYWJpY0RpZ2l0c1dpdGhDb250ZXh0KHRlbXAsIDAsIG91dHB1dFNpemUsIGRpZ2l0QmFzZSwgZmFsc2UpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIERJR0lUU19FTjJBTl9JTklUX0FMOgorICAgICAgICAgICAgICAgIHNoYXBlVG9BcmFiaWNEaWdpdHNXaXRoQ29udGV4dCh0ZW1wLCAwLCBvdXRwdXRTaXplLCBkaWdpdEJhc2UsIHRydWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGlzTG9naWNhbCkgeworICAgICAgICAgICAgaW52ZXJ0QnVmZmVyKHRlbXAsIDAsIG91dHB1dFNpemUpOworICAgICAgICB9CisgICAgICAKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0ZW1wLCAwLCBkZXN0LCBkZXN0U3RhcnQsIG91dHB1dFNpemUpOworICAgICAgCisgICAgICAgIHJldHVybiBvdXRwdXRTaXplOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0FyYWJpY1NoYXBpbmdFeGNlcHRpb24uamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0FyYWJpY1NoYXBpbmdFeGNlcHRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xOWQzMGZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQXJhYmljU2hhcGluZ0V4Y2VwdGlvbi5qYXZhCkBAIC0wLDAgKzEsMjggQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDAxLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiBUaHJvd24gYnkgQXJhYmljU2hhcGluZyB3aGVuIHRoZXJlIGlzIGEgc2hhcGluZyBlcnJvci4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQXJhYmljU2hhcGluZ0V4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7CisgICAgLy8gZ2VuZXJhdGVkIGJ5IHNlcmlhbHZlciBmcm9tIEpESyAxLjQuMV8wMQorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA1MjYxNTMxODA1NDk3MjYwNDkwTDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHVjdCB0aGUgZXhjZXB0aW9uIHdpdGggdGhlIGdpdmVuIG1lc3NhZ2UKKyAgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgZXJyb3IgbWVzc2FnZSBmb3IgdGhpcyBleGNlcHRpb24KKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwgcmV2aXNpdCBmb3IgSUNVIDMuNgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBBcmFiaWNTaGFwaW5nRXhjZXB0aW9uKFN0cmluZyBtZXNzYWdlKSB7CisgICAgICAgIHN1cGVyKG1lc3NhZ2UpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrRGljdGlvbmFyeS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtEaWN0aW9uYXJ5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjYyZDZkZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrRGljdGlvbmFyeS5qYXZhCkBAIC0wLDAgKzEsMzA4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkRhdGFJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk91dHB1dFN0cmVhbVdyaXRlcjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29tcGFjdEJ5dGVBcnJheTsKKworLyoqCisgKiBUaGlzIGlzIHRoZSBjbGFzcyB0aGF0IHJlcHJlc2VudHMgdGhlIGxpc3Qgb2Yga25vd24gd29yZHMgdXNlZCBieQorICogRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvci4gIFRoZSBjb25jZXB0dWFsIGRhdGEgc3RydWN0dXJlIHVzZWQKKyAqIGhlcmUgaXMgYSB0cmllOiB0aGVyZSBpcyBhIG5vZGUgaGFuZ2luZyBvZmYgdGhlIHJvb3Qgbm9kZSBmb3IgZXZlcnkKKyAqIGxldHRlciB0aGF0IGNhbiBzdGFydCBhIHdvcmQuICBFYWNoIG9mIHRoZXNlIG5vZGVzIGhhcyBhIG5vZGUgaGFuZ2luZworICogb2ZmIG9mIGl0IGZvciBldmVyeSBsZXR0ZXIgdGhhdCBjYW4gYmUgdGhlIHNlY29uZCBsZXR0ZXIgb2YgYSB3b3JkCisgKiBpZiB0aGlzIG5vZGUgaXMgdGhlIGZpcnN0IGxldHRlciwgYW5kIHNvIG9uLiAgVGhlIHRyaWUgaXMgcmVwcmVzZW50ZWQKKyAqIGFzIGEgdHdvLWRpbWVuc2lvbmFsIGFycmF5IHRoYXQgY2FuIGJlIHRyZWF0ZWQgYXMgYSB0YWJsZSBvZiBzdGF0ZQorICogdHJhbnNpdGlvbnMuICBJbmRleGVzIGFyZSB1c2VkIHRvIGNvbXByZXNzIHRoaXMgYXJyYXksIHRha2luZworICogYWR2YW50YWdlIG9mIHRoZSBmYWN0IHRoYXQgdGhpcyBhcnJheSB3aWxsIGFsd2F5cyBiZSB2ZXJ5IHNwYXJzZS4KKyAqIEBpbnRlcm5hbAorICovCitwdWJsaWMgY2xhc3MgQnJlYWtEaWN0aW9uYXJ5IHsKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIHRlc3RpbmcgYW5kIGRlYnVnZ2luZworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pCisgICAgICAgICAgICB0aHJvd3MgRmlsZU5vdEZvdW5kRXhjZXB0aW9uLCBVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IGFyZ3NbMF07CisKKyAgICAgICAgQnJlYWtEaWN0aW9uYXJ5IGRpY3Rpb25hcnkgPSBuZXcgQnJlYWtEaWN0aW9uYXJ5KG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZW5hbWUpKTsKKworICAgICAgICBQcmludFdyaXRlciBvdXQgPSBudWxsOworCisgICAgICAgIGlmKGFyZ3MubGVuZ3RoID49IDIpIHsKKyAgICAgICAgICAgIG91dCA9IG5ldyBQcmludFdyaXRlcihuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKG5ldyBGaWxlT3V0cHV0U3RyZWFtKGFyZ3NbMV0pLCAiVW5pY29kZUxpdHRsZSIpKTsKKyAgICAgICAgfQorCisgICAgICAgIGRpY3Rpb25hcnkucHJpbnRXb3JkTGlzdCgiIiwgMCwgb3V0KTsKKworICAgICAgICBpZiAob3V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIG91dC5jbG9zZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIHB1YmxpYyB2b2lkIHByaW50V29yZExpc3QoU3RyaW5nIHBhcnRpYWxXb3JkLCBpbnQgc3RhdGUsIFByaW50V3JpdGVyIG91dCkKKyAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIGlmIChzdGF0ZSA9PSAweEZGRkYpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwYXJ0aWFsV29yZCk7CisgICAgICAgICAgICBpZiAob3V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbihwYXJ0aWFsV29yZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNvbHM7IGkrKykgeworICAgICAgICAgICAgICAgIGludCBuZXdTdGF0ZSA9IChhdChzdGF0ZSwgaSkpICYgMHhGRkZGOworCisgICAgICAgICAgICAgICAgaWYgKG5ld1N0YXRlICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhciBuZXdDaGFyID0gcmV2ZXJzZUNvbHVtbk1hcFtpXTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5ld1BhcnRpYWxXb3JkID0gcGFydGlhbFdvcmQ7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0NoYXIgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3UGFydGlhbFdvcmQgKz0gbmV3Q2hhcjsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHByaW50V29yZExpc3QobmV3UGFydGlhbFdvcmQsIG5ld1N0YXRlLCBvdXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEEgbWFwIHVzZWQgdG8gZ28gZnJvbSBjb2x1bW4gbnVtYmVycyB0byBjaGFyYWN0ZXJzLiAgVXNlZCBvbmx5CisgICAgICogZm9yIGRlYnVnZ2luZyByaWdodCBub3cuCisgICAgICovCisgICAgcHJpdmF0ZSBjaGFyW10gcmV2ZXJzZUNvbHVtbk1hcCA9IG51bGw7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIGRhdGEgbWVtYmVycworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBNYXBzIGZyb20gY2hhcmFjdGVycyB0byBjb2x1bW4gbnVtYmVycy4gIFRoZSBtYWluIHVzZSBvZiB0aGlzIGlzIHRvCisgICAgICogYXZvaWQgbWFraW5nIHJvb20gaW4gdGhlIGFycmF5IGZvciBlbXB0eSBjb2x1bW5zLgorICAgICAqLworICAgIHByaXZhdGUgQ29tcGFjdEJ5dGVBcnJheSBjb2x1bW5NYXAgPSBudWxsOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBhY3R1YWwgY29sdW1ucyBpbiB0aGUgdGFibGUKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBudW1Db2xzOworCisgICAgLyoqCisgICAgICogQ29sdW1ucyBhcmUgb3JnYW5pemVkIGludG8gZ3JvdXBzIG9mIDMyLiAgVGhpcyBzYXlzIGhvdyBtYW55CisgICAgICogY29sdW1uIGdyb3Vwcy4gIChXZSBjb3VsZCBjYWxjdWxhdGUgdGhpcywgYnV0IHdlIHN0b3JlIHRoZQorICAgICAqIHZhbHVlIHRvIGF2b2lkIGhhdmluZyB0byByZXBlYXRlZGx5IGNhbGN1bGF0ZSBpdC4pCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbnVtQ29sR3JvdXBzOworCisgICAgLyoqCisgICAgICogVGhlIGFjdHVhbCBjb21wcmVzc2VkIHN0YXRlIHRhYmxlLiAgRWFjaCBjb25jZXB0dWFsIHJvdyByZXByZXNlbnRzCisgICAgICogYSBzdGF0ZSwgYW5kIHRoZSBjZWxscyBpbiBpdCBjb250YWluIHRoZSByb3cgbnVtYmVycyBvZiB0aGUgc3RhdGVzCisgICAgICogdG8gdHJhbnNpdGlvbiB0byBmb3IgZWFjaCBwb3NzaWJsZSBsZXR0ZXIuICAwIGlzIHVzZWQgdG8gaW5kaWNhdGUKKyAgICAgKiBhbiBpbGxlZ2FsIGNvbWJpbmF0aW9uIG9mIGxldHRlcnMgKGkuZS4sIHRoZSBlcnJvciBzdGF0ZSkuICBUaGUKKyAgICAgKiB0YWJsZSBpcyBjb21wcmVzc2VkIGJ5IGVsaW1pbmF0aW5nIGFsbCB0aGUgdW5wb3B1bGF0ZWQgKGkuZS4sIHplcm8pCisgICAgICogY2VsbHMuICBNdWx0aXBsZSBjb25jZXB0dWFsIHJvd3MgY2FuIHRoZW4gYmUgZG91YmxlZCB1cCBpbiBhIHNpbmdsZQorICAgICAqIHBoeXNpY2FsIHJvdyBieSBzbGlkaW5nIHRoZW0gdXAgYW5kIHBvc3NpYmx5IHNoaWZ0aW5nIHRoZW0gdG8gb25lCisgICAgICogc2lkZSBvciB0aGUgb3RoZXIgc28gdGhlIHBvcHVsYXRlZCBjZWxscyBkb24ndCBjb2xsaWRlLiAgSW5kZXhlcworICAgICAqIGFyZSB1c2VkIHRvIGlkZW50aWZ5IHVucG9wdWxhdGVkIGNlbGxzIGFuZCB0byBsb2NhdGUgcG9wdWxhdGVkIGNlbGxzLgorICAgICAqLworICAgIHByaXZhdGUgc2hvcnRbXSB0YWJsZSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGluZGV4IG1hcHMgbG9naWNhbCByb3cgbnVtYmVycyB0byBwaHlzaWNhbCByb3cgbnVtYmVycworICAgICAqLworICAgIHByaXZhdGUgc2hvcnRbXSByb3dJbmRleCA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBBIGJpdG1hcCBpcyB1c2VkIHRvIHRlbGwgd2hpY2ggY2VsbHMgaW4gdGhlIGNvbWNlcHR1YWwgdGFibGUgYXJlCisgICAgICogcG9wdWxhdGVkLiAgVGhpcyBhcnJheSBjb250YWlucyBhbGwgdGhlIHVuaXF1ZSBiaXQgY29tYmluYXRpb25zCisgICAgICogaW4gdGhhdCBiaXRtYXAuICBJZiB0aGUgdGFibGUgaXMgbW9yZSB0aGFuIDMyIGNvbHVtbnMgd2lkZSwKKyAgICAgKiBzdWNjZXNzaXZlIGVudHJpZXMgaW4gdGhpcyBhcnJheSBhcmUgdXNlZCBmb3IgYSBzaW5nbGUgcm93LgorICAgICAqLworICAgIHByaXZhdGUgaW50W10gcm93SW5kZXhGbGFncyA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGluZGV4IG1hcHMgZnJvbSBhIGxvZ2ljYWwgcm93IG51bWJlciBpbnRvIHRoZSBiaXRtYXAgdGFibGUgYWJvdmUuCisgICAgICogKFRoaXMga2VlcHMgdXMgZnJvbSBzdG9yaW5nIGR1cGxpY2F0ZSBiaXRtYXAgY29tYmluYXRpb25zLikgIFNpbmNlIHRoZXJlCisgICAgICogYXJlIGEgbG90IG9mIHJvd3Mgd2l0aCBvbmx5IG9uZSBwb3B1bGF0ZWQgY2VsbCwgaW5zdGVhZCBvZiB3YXN0aW5nIHNwYWNlCisgICAgICogaW4gdGhlIGJpdG1hcCB0YWJsZSwgd2UganVzdCBzdG9yZSBhIG5lZ2F0aXZlIG51bWJlciBpbiB0aGlzIGluZGV4IGZvcgorICAgICAqIHJvd3Mgd2l0aCBvbmUgcG9wdWxhdGVkIGNlbGwuICBUaGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhhdCBudW1iZXIgaXMKKyAgICAgKiB0aGUgY29sdW1uIG51bWJlciBvZiB0aGUgcG9wdWxhdGVkIGNlbGwuCisgICAgICovCisgICAgcHJpdmF0ZSBzaG9ydFtdIHJvd0luZGV4RmxhZ3NJbmRleCA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBGb3IgZWFjaCBsb2dpY2FsIHJvdywgdGhpcyBpbmRleCBjb250YWlucyBhIGNvbnN0YW50IHRoYXQgaXMgYWRkZWQgdG8KKyAgICAgKiB0aGUgbG9naWNhbCBjb2x1bW4gbnVtYmVyIHRvIGdldCB0aGUgcGh5c2ljYWwgY29sdW1uIG51bWJlcgorICAgICAqLworICAgIHByaXZhdGUgYnl0ZVtdIHJvd0luZGV4U2hpZnRzID0gbnVsbDsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gZGVzZXJpYWxpemF0aW9uCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBwdWJsaWMgQnJlYWtEaWN0aW9uYXJ5KElucHV0U3RyZWFtIGRpY3Rpb25hcnlTdHJlYW0pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJlYWREaWN0aW9uYXJ5RmlsZShuZXcgRGF0YUlucHV0U3RyZWFtKGRpY3Rpb25hcnlTdHJlYW0pKTsKKyAgICB9CisKKyAgICAvKiogQGludGVybmFsICovCisgICAgcHVibGljIHZvaWQgcmVhZERpY3Rpb25hcnlGaWxlKERhdGFJbnB1dFN0cmVhbSBpbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaW50IGw7CisKKyAgICAgICAgLy8gcmVhZCBpbiB0aGUgdmVyc2lvbiBudW1iZXIgKHJpZ2h0IG5vdyB3ZSBqdXN0IGlnbm9yZSBpdCkKKyAgICAgICAgaW4ucmVhZEludCgpOworCisgICAgICAgIC8vIHJlYWQgaW4gdGhlIGNvbHVtbiBtYXAgKHRoaXMgaXMgc2VyaWFsaXplZCBpbiBpdHMgaW50ZXJuYWwgZm9ybToKKyAgICAgICAgLy8gYW4gaW5kZXggYXJyYXkgZm9sbG93ZWQgYnkgYSBkYXRhIGFycmF5KQorICAgICAgICBsID0gaW4ucmVhZEludCgpOworICAgICAgICBjaGFyW10gdGVtcCA9IG5ldyBjaGFyW2xdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXAubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB0ZW1wW2ldID0gKGNoYXIpaW4ucmVhZFNob3J0KCk7CisgICAgICAgIGwgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIGJ5dGVbXSB0ZW1wMiA9IG5ldyBieXRlW2xdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRlbXAyLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgdGVtcDJbaV0gPSBpbi5yZWFkQnl0ZSgpOworICAgICAgICBjb2x1bW5NYXAgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheSh0ZW1wLCB0ZW1wMik7CisKKyAgICAgICAgLy8gcmVhZCBpbiBudW1Db2xzIGFuZCBudW1Db2xHcm91cHMKKyAgICAgICAgbnVtQ29scyA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgbnVtQ29sR3JvdXBzID0gaW4ucmVhZEludCgpOworCisgICAgICAgIC8vIHJlYWQgaW4gdGhlIHJvdy1udW1iZXIgaW5kZXgKKyAgICAgICAgbCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgcm93SW5kZXggPSBuZXcgc2hvcnRbbF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXgubGVuZ3RoOyBpKyspCisgICAgICAgICAgICByb3dJbmRleFtpXSA9IGluLnJlYWRTaG9ydCgpOworCisgICAgICAgIC8vIGxvYWQgaW4gdGhlIHBvcHVsYXRlZC1jZWxscyBiaXRtYXA6IGluZGV4IGZpcnN0LCB0aGVuIGJpdG1hcCBsaXN0CisgICAgICAgIGwgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIHJvd0luZGV4RmxhZ3NJbmRleCA9IG5ldyBzaG9ydFtsXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dJbmRleEZsYWdzSW5kZXgubGVuZ3RoOyBpKyspCisgICAgICAgICAgICByb3dJbmRleEZsYWdzSW5kZXhbaV0gPSBpbi5yZWFkU2hvcnQoKTsKKyAgICAgICAgbCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgcm93SW5kZXhGbGFncyA9IG5ldyBpbnRbbF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXhGbGFncy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHJvd0luZGV4RmxhZ3NbaV0gPSBpbi5yZWFkSW50KCk7CisKKyAgICAgICAgLy8gbG9hZCBpbiB0aGUgcm93LXNoaWZ0IGluZGV4CisgICAgICAgIGwgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIHJvd0luZGV4U2hpZnRzID0gbmV3IGJ5dGVbbF07CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93SW5kZXhTaGlmdHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICByb3dJbmRleFNoaWZ0c1tpXSA9IGluLnJlYWRCeXRlKCk7CisKKyAgICAgICAgLy8gZmluYWxseSwgbG9hZCBpbiB0aGUgYWN0dWFsIHN0YXRlIHRhYmxlCisgICAgICAgIGwgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIHRhYmxlID0gbmV3IHNob3J0W2xdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhYmxlLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgdGFibGVbaV0gPSBpbi5yZWFkU2hvcnQoKTsKKworICAgICAgICAvLyB0aGlzIGRhdGEgc3RydWN0dXJlIGlzIG9ubHkgbmVjZXNzYXJ5IGZvciB0ZXN0aW5nIGFuZCBkZWJ1Z2dpbmcgcHVycG9zZXMKKyAgICAgICAgcmV2ZXJzZUNvbHVtbk1hcCA9IG5ldyBjaGFyW251bUNvbHNdOworICAgICAgICBmb3IgKGNoYXIgYyA9IDA7IGMgPCAweGZmZmY7IGMrKykgeworICAgICAgICAgICAgaW50IGNvbCA9IGNvbHVtbk1hcC5lbGVtZW50QXQoYyk7CisgICAgICAgICAgICBpZiAoY29sICE9IDApIHsKKyAgICAgICAgICAgICAgIHJldmVyc2VDb2x1bW5NYXBbY29sXSA9IGM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBjbG9zZSB0aGUgc3RyZWFtCisgICAgICAgIGluLmNsb3NlKCk7CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBhY2Nlc3MgdG8gdGhlIHdvcmRzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFVzZXMgdGhlIGNvbHVtbiBtYXAgdG8gbWFwIHRoZSBjaGFyYWN0ZXIgdG8gYSBjb2x1bW4gbnVtYmVyLCB0aGVuCisgICAgICogcGFzc2VzIHRoZSByb3cgYW5kIGNvbHVtbiBudW1iZXIgdG8gdGhlIG90aGVyIHZlcnNpb24gb2YgYXQoKQorICAgICAqIEBwYXJhbSByb3cgVGhlIGN1cnJlbnQgc3RhdGUKKyAgICAgKiBAcGFyYW0gY2ggVGhlIGNoYXJhY3RlciB3aG9zZSBjb2x1bW4gd2UncmUgaW50ZXJlc3RlZCBpbgorICAgICAqIEByZXR1cm4gVGhlIG5ldyBzdGF0ZSB0byB0cmFuc2l0aW9uIHRvCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHNob3J0IGF0KGludCByb3csIGNoYXIgY2gpIHsKKyAgICAgICAgaW50IGNvbCA9IGNvbHVtbk1hcC5lbGVtZW50QXQoY2gpOworICAgICAgICByZXR1cm4gYXQocm93LCBjb2wpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhbHVlIGluIHRoZSBjZWxsIHdpdGggdGhlIHNwZWNpZmllZCAobG9naWNhbCkgcm93IGFuZAorICAgICAqIGNvbHVtbiBudW1iZXJzLiAgSW4gRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciwgdGhlIHJvdyBudW1iZXIgaXMKKyAgICAgKiBhIHN0YXRlIG51bWJlciwgdGhlIGNvbHVtbiBudW1iZXIgaXMgYW4gaW5wdXQsIGFuZCB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogaXMgdGhlIHJvdyBudW1iZXIgb2YgdGhlIG5ldyBzdGF0ZSB0byB0cmFuc2l0aW9uIHRvLiAgKDAgaXMgdGhlCisgICAgICogImVycm9yIiBzdGF0ZSwgYW5kIC0xIGlzIHRoZSAiZW5kIG9mIHdvcmQiIHN0YXRlIGluIGEgZGljdGlvbmFyeSkKKyAgICAgKiBAcGFyYW0gcm93IFRoZSByb3cgbnVtYmVyIG9mIHRoZSBjdXJyZW50IHN0YXRlCisgICAgICogQHBhcmFtIGNvbCBUaGUgY29sdW1uIG51bWJlciBvZiB0aGUgaW5wdXQgY2hhcmFjdGVyICgwIG1lYW5zICJub3QgYQorICAgICAqIGRpY3Rpb25hcnkgY2hhcmFjdGVyIikKKyAgICAgKiBAcmV0dXJuIFRoZSByb3cgbnVtYmVyIG9mIHRoZSBuZXcgc3RhdGUgdG8gdHJhbnNpdGlvbiB0bworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzaG9ydCBhdChpbnQgcm93LCBpbnQgY29sKSB7CisgICAgICAgIGlmIChjZWxsSXNQb3B1bGF0ZWQocm93LCBjb2wpKSB7CisgICAgICAgICAgICAvLyB3ZSBtYXAgZnJvbSBsb2dpY2FsIHRvIHBoeXNpY2FsIHJvdyBudW1iZXIgYnkgbG9va2luZyB1cCB0aGUKKyAgICAgICAgICAgIC8vIG1hcHBpbmcgaW4gcm93SW5kZXg7IHdlIG1hcCBmcm9tIGxvZ2ljYWwgY29sdW1uIG51bWJlciB0bworICAgICAgICAgICAgLy8gcGh5c2ljYWwgY29sdW1uIG51bWJlciBieSBsb29raW5nIHVwIGEgc2hpZnQgdmFsdWUgZm9yIHRoaXMKKyAgICAgICAgICAgIC8vIGxvZ2ljYWwgcm93IGFuZCBvZmZzZXR0aW5nIHRoZSBsb2dpY2FsIGNvbHVtbiBudW1iZXIgYnkKKyAgICAgICAgICAgIC8vIHRoZSBzaGlmdCBhbW91bnQuICBUaGVuIHdlIGNhbiB1c2UgaW50ZXJuYWxBdCgpIHRvIGFjdHVhbGx5CisgICAgICAgICAgICAvLyBnZXQgdGhlIHZhbHVlIG91dCBvZiB0aGUgdGFibGUuCisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxBdChyb3dJbmRleFtyb3ddLCBjb2wgKyByb3dJbmRleFNoaWZ0c1tyb3ddKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gKGxvZ2ljYWwpIHJvdyBhbmQgY29sdW1uIG51bWJlcnMsIHJldHVybnMgdHJ1ZSBpZiB0aGUKKyAgICAgKiBjZWxsIGluIHRoYXQgcG9zaXRpb24gaXMgcG9wdWxhdGVkCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNlbGxJc1BvcHVsYXRlZChpbnQgcm93LCBpbnQgY29sKSB7CisgICAgICAgIC8vIGxvb2sgdXAgdGhlIGVudHJ5IGluIHRoZSBiaXRtYXAgaW5kZXggZm9yIHRoZSBzcGVjaWZpZWQgcm93LgorICAgICAgICAvLyBJZiBpdCdzIGEgbmVnYXRpdmUgbnVtYmVyLCBpdCdzIHRoZSBjb2x1bW4gbnVtYmVyIG9mIHRoZSBvbmx5CisgICAgICAgIC8vIHBvcHVsYXRlZCBjZWxsIGluIHRoZSByb3cKKyAgICAgICAgaWYgKHJvd0luZGV4RmxhZ3NJbmRleFtyb3ddIDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIGNvbCA9PSAtcm93SW5kZXhGbGFnc0luZGV4W3Jvd107CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiBpdCdzIGEgcG9zaXRpdmUgbnVtYmVyLCBpdCdzIHRoZSBvZmZzZXQgb2YgYW4gZW50cnkgaW4gdGhlIGJpdG1hcAorICAgICAgICAvLyBsaXN0LiAgSWYgdGhlIHRhYmxlIGlzIG1vcmUgdGhhbiAzMiBjb2x1bW5zIHdpZGUsIHRoZSBiaXRtYXAgaXMgc3RvcmVkCisgICAgICAgIC8vIHN1Y2Nlc3NpdmUgZW50cmllcyBpbiB0aGUgYml0bWFwIGxpc3QsIHNvIHdlIGhhdmUgdG8gZGl2aWRlIHRoZSBjb2x1bW4KKyAgICAgICAgLy8gbnVtYmVyIGJ5IDMyIGFuZCBvZmZzZXQgdGhlIG51bWJlciB3ZSBnb3Qgb3V0IG9mIHRoZSBpbmRleCBieSB0aGUgcmVzdWx0LgorICAgICAgICAvLyBPbmNlIHdlIGhhdmUgdGhlIGFwcHJvcHJpYXRlIHBpZWNlIG9mIHRoZSBiaXRtYXAsIHRlc3QgdGhlIGFwcHJvcHJpYXRlCisgICAgICAgIC8vIGJpdCBhbmQgcmV0dXJuIHRoZSByZXN1bHQuCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IGZsYWdzID0gcm93SW5kZXhGbGFnc1tyb3dJbmRleEZsYWdzSW5kZXhbcm93XSArIChjb2wgPj4gNSldOworICAgICAgICAgICAgcmV0dXJuIChmbGFncyAmICgxIDw8IChjb2wgJiAweDFmKSkpICE9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBhdCgpIHdoZW4gd2Uga25vdyB0aGUgc3BlY2lmaWVkIGNlbGwgaXMgcG9wdWxhdGVkLgorICAgICAqIEBwYXJhbSByb3cgVGhlIFBIWVNJQ0FMIHJvdyBudW1iZXIgb2YgdGhlIGNlbGwKKyAgICAgKiBAcGFyYW0gY29sIFRoZSBQSFlTSUNBTCBjb2x1bW4gbnVtYmVyIG9mIHRoZSBjZWxsCisgICAgICogQHJldHVybiBUaGUgdmFsdWUgc3RvcmVkIGluIHRoZSBjZWxsCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBzaG9ydCBpbnRlcm5hbEF0KGludCByb3csIGludCBjb2wpIHsKKyAgICAgICAgLy8gdGhlIHRhYmxlIGlzIGEgb25lLWRpbWVuc2lvbmFsIGFycmF5LCBzbyB0aGlzIGp1c3QgZG9lcyB0aGUgbWF0aCBuZWNlc3NhcnkKKyAgICAgICAgLy8gdG8gdHJlYXQgaXQgYXMgYSB0d28tZGltZW5zaW9uYWwgYXJyYXkgKHdlIGRvbid0IGp1c3QgdXNlIGEgdHdvLWRpbWVuc2lvbmFsCisgICAgICAgIC8vIGFycmF5IGJlY2F1c2UgdHdvLWRpbWVuc2lvbmFsIGFycmF5cyBhcmUgaW5lZmZpY2llbnQgaW4gSmF2YSkKKyAgICAgICAgcmV0dXJuIHRhYmxlW3JvdyAqIG51bUNvbHMgKyBjb2xdOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE5NzcxYjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha0l0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw4NzkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEubGFuZy5yZWYuU29mdFJlZmVyZW5jZTsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGVidWc7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIEEgY2xhc3MgdGhhdCBsb2NhdGVzIGJvdW5kYXJpZXMgaW4gdGV4dC4gIFRoaXMgY2xhc3MgZGVmaW5lcyBhIHByb3RvY29sIGZvcgorICogb2JqZWN0cyB0aGF0IGJyZWFrIHVwIGEgcGllY2Ugb2YgbmF0dXJhbC1sYW5ndWFnZSB0ZXh0IGFjY29yZGluZyB0byBhIHNldAorICogb2YgY3JpdGVyaWEuICBJbnN0YW5jZXMgb3Igc3ViY2xhc3NlcyBvZiBCcmVha0l0ZXJhdG9yIGNhbiBiZSBwcm92aWRlZCwgZm9yCisgKiBleGFtcGxlLCB0byBicmVhayBhIHBpZWNlIG9mIHRleHQgaW50byB3b3Jkcywgc2VudGVuY2VzLCBvciBsb2dpY2FsIGNoYXJhY3RlcnMKKyAqIGFjY29yZGluZyB0byB0aGUgY29udmVudGlvbnMgb2Ygc29tZSBsYW5ndWFnZSBvciBncm91cCBvZiBsYW5ndWFnZXMuCisgKgorICogV2UgcHJvdmlkZSBmaXZlIGJ1aWx0LWluIHR5cGVzIG9mIEJyZWFrSXRlcmF0b3I6CisgKiA8dWw+PGxpPmdldFRpdGxlSW5zdGFuY2UoKSByZXR1cm5zIGEgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgYm91bmRhcmllcworICogYmV0d2VlbiB0aXRsZSBicmVha3MuCisgKiA8bGk+Z2V0U2VudGVuY2VJbnN0YW5jZSgpIHJldHVybnMgYSBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBib3VuZGFyaWVzCisgKiBiZXR3ZWVuIHNlbnRlbmNlcy4gIFRoaXMgaXMgdXNlZnVsIGZvciB0cmlwbGUtY2xpY2sgc2VsZWN0aW9uLCBmb3IgZXhhbXBsZS4KKyAqIDxsaT5nZXRXb3JkSW5zdGFuY2UoKSByZXR1cm5zIGEgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgYm91bmRhcmllcyBiZXR3ZWVuCisgKiB3b3Jkcy4gIFRoaXMgaXMgdXNlZnVsIGZvciBkb3VibGUtY2xpY2sgc2VsZWN0aW9uIG9yICJmaW5kIHdob2xlIHdvcmRzIiBzZWFyY2hlcy4KKyAqIFRoaXMgdHlwZSBvZiBCcmVha0l0ZXJhdG9yIG1ha2VzIHN1cmUgdGhlcmUgaXMgYSBib3VuZGFyeSBwb3NpdGlvbiBhdCB0aGUKKyAqIGJlZ2lubmluZyBhbmQgZW5kIG9mIGVhY2ggbGVnYWwgd29yZC4gIChOdW1iZXJzIGNvdW50IGFzIHdvcmRzLCB0b28uKSAgV2hpdGVzcGFjZQorICogYW5kIHB1bmN0dWF0aW9uIGFyZSBrZXB0IHNlcGFyYXRlIGZyb20gcmVhbCB3b3Jkcy4KKyAqIDxsaT5nZXRMaW5lSW5zdGFuY2UoKSByZXR1cm5zIGEgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgcG9zaXRpb25zIHdoZXJlIGl0IGlzCisgKiBsZWdhbCBmb3IgYSB0ZXh0IGVkaXRvciB0byB3cmFwIGxpbmVzLiAgVGhpcyBpcyBzaW1pbGFyIHRvIHdvcmQgYnJlYWtpbmcsIGJ1dAorICogbm90IHRoZSBzYW1lOiBwdW5jdHVhdGlvbiBhbmQgd2hpdGVzcGFjZSBhcmUgZ2VuZXJhbGx5IGtlcHQgd2l0aCB3b3JkcyAoeW91IGRvbid0CisgKiB3YW50IGEgbGluZSB0byBzdGFydCB3aXRoIHdoaXRlc3BhY2UsIGZvciBleGFtcGxlKSwgYW5kIHNvbWUgc3BlY2lhbCBjaGFyYWN0ZXJzCisgKiBjYW4gZm9yY2UgYSBwb3NpdGlvbiB0byBiZSBjb25zaWRlcmVkIGEgbGluZS1icmVhayBwb3NpdGlvbiBvciBwcmV2ZW50IGEgcG9zaXRpb24KKyAqIGZyb20gYmVpbmcgYSBsaW5lLWJyZWFrIHBvc2l0aW9uLgorICogPGxpPmdldENoYXJhY3Rlckluc3RhbmNlKCkgcmV0dXJucyBhIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGJvdW5kYXJpZXMgYmV0d2VlbgorICogbG9naWNhbCBjaGFyYWN0ZXJzLiAgQmVjYXVzZSBvZiB0aGUgc3RydWN0dXJlIG9mIHRoZSBVbmljb2RlIGVuY29kaW5nLCBhIGxvZ2ljYWwKKyAqIGNoYXJhY3RlciBtYXkgYmUgc3RvcmVkIGludGVybmFsbHkgYXMgbW9yZSB0aGFuIG9uZSBVbmljb2RlIGNvZGUgcG9pbnQuICAoQSB3aXRoIGFuCisgKiB1bWxhdXQgbWF5IGJlIHN0b3JlZCBhcyBhbiBhIGZvbGxvd2VkIGJ5IGEgc2VwYXJhdGUgY29tYmluaW5nIHVtbGF1dCBjaGFyYWN0ZXIsCisgKiBmb3IgZXhhbXBsZSwgYnV0IHRoZSB1c2VyIHN0aWxsIHRoaW5rcyBvZiBpdCBhcyBvbmUgY2hhcmFjdGVyLikgIFRoaXMgaXRlcmF0b3IgYWxsb3dzCisgKiB2YXJpb3VzIHByb2Nlc3NlcyAoZXNwZWNpYWxseSB0ZXh0IGVkaXRvcnMpIHRvIHRyZWF0IGFzIGNoYXJhY3RlcnMgdGhlIHVuaXRzIG9mIHRleHQKKyAqIHRoYXQgYSB1c2VyIHdvdWxkIHRoaW5rIG9mIGFzIGNoYXJhY3RlcnMsIHJhdGhlciB0aGFuIHRoZSB1bml0cyBvZiB0ZXh0IHRoYXQgdGhlCisgKiBjb21wdXRlciBzZWVzIGFzICJjaGFyYWN0ZXJzIi48L3VsPgorICoKKyAqIEJyZWFrSXRlcmF0b3IncyBpbnRlcmZhY2UgZm9sbG93cyBhbiAiaXRlcmF0b3IiIG1vZGVsIChoZW5jZSB0aGUgbmFtZSksIG1lYW5pbmcgaXQKKyAqIGhhcyBhIGNvbmNlcHQgb2YgYSAiY3VycmVudCBwb3NpdGlvbiIgYW5kIG1ldGhvZHMgbGlrZSBmaXJzdCgpLCBsYXN0KCksIG5leHQoKSwKKyAqIGFuZCBwcmV2aW91cygpIHRoYXQgdXBkYXRlIHRoZSBjdXJyZW50IHBvc2l0aW9uLiAgQWxsIEJyZWFrSXRlcmF0b3JzIHVwaG9sZCB0aGUKKyAqIGZvbGxvd2luZyBpbnZhcmlhbnRzOgorICogPHVsPjxsaT5UaGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIHRleHQgYXJlIGFsd2F5cyB0cmVhdGVkIGFzIGJvdW5kYXJ5IHBvc2l0aW9ucy4KKyAqIDxsaT5UaGUgY3VycmVudCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0b3IgaXMgYWx3YXlzIGEgYm91bmRhcnkgcG9zaXRpb24gKHJhbmRvbS0KKyAqIGFjY2VzcyBtZXRob2RzIG1vdmUgdGhlIGl0ZXJhdG9yIHRvIHRoZSBuZWFyZXN0IGJvdW5kYXJ5IHBvc2l0aW9uIGJlZm9yZSBvcgorICogYWZ0ZXIgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiwgbm90IF90b18gdGhlIHNwZWNpZmllZCBwb3NpdGlvbikuCisgKiA8bGk+RE9ORSBpcyB1c2VkIGFzIGEgZmxhZyB0byBpbmRpY2F0ZSB3aGVuIGl0ZXJhdGlvbiBoYXMgc3RvcHBlZC4gIERPTkUgaXMgb25seQorICogcmV0dXJuZWQgd2hlbiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyB0aGUgZW5kIG9mIHRoZSB0ZXh0IGFuZCB0aGUgdXNlciBjYWxscyBuZXh0KCksCisgKiBvciB3aGVuIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQgYW5kIHRoZSB1c2VyIGNhbGxzCisgKiBwcmV2aW91cygpLgorICogPGxpPkJyZWFrIHBvc2l0aW9ucyBhcmUgbnVtYmVyZWQgYnkgdGhlIHBvc2l0aW9ucyBvZiB0aGUgY2hhcmFjdGVycyB0aGF0IGZvbGxvdworICogdGhlbS4gIFRodXMsIHVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCB0aGUgcG9zaXRpb24gYmVmb3JlIHRoZSBmaXJzdCBjaGFyYWN0ZXIKKyAqIGlzIDAsIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzIDEsIGFuZCB0aGUgcG9zaXRpb24gYWZ0ZXIgdGhlCisgKiBsYXN0IGNoYXJhY3RlciBpcyAxIHBsdXMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nLgorICogPGxpPlRoZSBjbGllbnQgY2FuIGNoYW5nZSB0aGUgcG9zaXRpb24gb2YgYW4gaXRlcmF0b3IsIG9yIHRoZSB0ZXh0IGl0IGFuYWx5emVzLAorICogYXQgd2lsbCwgYnV0IGNhbm5vdCBjaGFuZ2UgdGhlIGJlaGF2aW9yLiAgSWYgdGhlIHVzZXIgd2FudHMgZGlmZmVyZW50IGJlaGF2aW9yLCBoZQorICogbXVzdCBpbnN0YW50aWF0ZSBhIG5ldyBpdGVyYXRvci48L3VsPgorICoKKyAqIEJyZWFrSXRlcmF0b3IgYWNjZXNzZXMgdGhlIHRleHQgaXQgYW5hbHl6ZXMgdGhyb3VnaCBhIENoYXJhY3Rlckl0ZXJhdG9yLCB3aGljaCBtYWtlcworICogaXQgcG9zc2libGUgdG8gdXNlIEJyZWFrSXRlcmF0b3IgdG8gYW5hbHl6ZSB0ZXh0IGluIGFueSB0ZXh0LXN0b3JhZ2UgdmVoaWNsZSB0aGF0CisgKiBwcm92aWRlcyBhIENoYXJhY3Rlckl0ZXJhdG9yIGludGVyZmFjZS4KKyAqCisgKiA8Yj5OT1RFOjwvYj4gIFNvbWUgdHlwZXMgb2YgQnJlYWtJdGVyYXRvciBjYW4gdGFrZSBhIGxvbmcgdGltZSB0byBjcmVhdGUsIGFuZAorICogaW5zdGFuY2VzIG9mIEJyZWFrSXRlcmF0b3IgYXJlIG5vdCBjdXJyZW50bHkgY2FjaGVkIGJ5IHRoZSBzeXN0ZW0uICBGb3IKKyAqIG9wdGltYWwgcGVyZm9ybWFuY2UsIGtlZXAgaW5zdGFuY2VzIG9mIEJyZWFrSXRlcmF0b3IgYXJvdW5kIGFzIGxvbmcgYXMgbWFrZXMKKyAqIHNlbnNlLiAgRm9yIGV4YW1wbGUsIHdoZW4gd29yZC13cmFwcGluZyBhIGRvY3VtZW50LCBkb24ndCBjcmVhdGUgYW5kIGRlc3Ryb3kgYQorICogbmV3IEJyZWFrSXRlcmF0b3IgZm9yIGVhY2ggbGluZS4gIENyZWF0ZSBvbmUgYnJlYWsgaXRlcmF0b3IgZm9yIHRoZSB3aG9sZSBkb2N1bWVudAorICogKG9yIHdoYXRldmVyIHN0cmV0Y2ggb2YgdGV4dCB5b3UncmUgd3JhcHBpbmcpIGFuZCB1c2UgaXQgdG8gZG8gdGhlIHdob2xlIGpvYiBvZgorICogd3JhcHBpbmcgdGhlIHRleHQuCisgKgorICAqIDxQPgorICogPHN0cm9uZz5FeGFtcGxlczwvc3Ryb25nPjo8UD4KKyAqIENyZWF0aW5nIGFuZCB1c2luZyB0ZXh0IGJvdW5kYXJpZXMKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAqICAgICAgaWYgKGFyZ3MubGVuZ3RoID09IDEpIHsKKyAqICAgICAgICAgIFN0cmluZyBzdHJpbmdUb0V4YW1pbmUgPSBhcmdzWzBdOworICogICAgICAgICAgLy9wcmludCBlYWNoIHdvcmQgaW4gb3JkZXIKKyAqICAgICAgICAgIEJyZWFrSXRlcmF0b3IgYm91bmRhcnkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpOworICogICAgICAgICAgYm91bmRhcnkuc2V0VGV4dChzdHJpbmdUb0V4YW1pbmUpOworICogICAgICAgICAgcHJpbnRFYWNoRm9yd2FyZChib3VuZGFyeSwgc3RyaW5nVG9FeGFtaW5lKTsKKyAqICAgICAgICAgIC8vcHJpbnQgZWFjaCBzZW50ZW5jZSBpbiByZXZlcnNlIG9yZGVyCisgKiAgICAgICAgICBib3VuZGFyeSA9IEJyZWFrSXRlcmF0b3IuZ2V0U2VudGVuY2VJbnN0YW5jZShMb2NhbGUuVVMpOworICogICAgICAgICAgYm91bmRhcnkuc2V0VGV4dChzdHJpbmdUb0V4YW1pbmUpOworICogICAgICAgICAgcHJpbnRFYWNoQmFja3dhcmQoYm91bmRhcnksIHN0cmluZ1RvRXhhbWluZSk7CisgKiAgICAgICAgICBwcmludEZpcnN0KGJvdW5kYXJ5LCBzdHJpbmdUb0V4YW1pbmUpOworICogICAgICAgICAgcHJpbnRMYXN0KGJvdW5kYXJ5LCBzdHJpbmdUb0V4YW1pbmUpOworICogICAgICB9CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBQcmludCBlYWNoIGVsZW1lbnQgaW4gb3JkZXIKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludEVhY2hGb3J3YXJkKEJyZWFrSXRlcmF0b3IgYm91bmRhcnksIFN0cmluZyBzb3VyY2UpIHsKKyAqICAgICBpbnQgc3RhcnQgPSBib3VuZGFyeS5maXJzdCgpOworICogICAgIGZvciAoaW50IGVuZCA9IGJvdW5kYXJ5Lm5leHQoKTsKKyAqICAgICAgICAgIGVuZCAhPSBCcmVha0l0ZXJhdG9yLkRPTkU7CisgKiAgICAgICAgICBzdGFydCA9IGVuZCwgZW5kID0gYm91bmRhcnkubmV4dCgpKSB7CisgKiAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlLnN1YnN0cmluZyhzdGFydCxlbmQpKTsKKyAqICAgICB9CisgKiB9CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBQcmludCBlYWNoIGVsZW1lbnQgaW4gcmV2ZXJzZSBvcmRlcgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogcHVibGljIHN0YXRpYyB2b2lkIHByaW50RWFjaEJhY2t3YXJkKEJyZWFrSXRlcmF0b3IgYm91bmRhcnksIFN0cmluZyBzb3VyY2UpIHsKKyAqICAgICBpbnQgZW5kID0gYm91bmRhcnkubGFzdCgpOworICogICAgIGZvciAoaW50IHN0YXJ0ID0gYm91bmRhcnkucHJldmlvdXMoKTsKKyAqICAgICAgICAgIHN0YXJ0ICE9IEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAqICAgICAgICAgIGVuZCA9IHN0YXJ0LCBzdGFydCA9IGJvdW5kYXJ5LnByZXZpb3VzKCkpIHsKKyAqICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsZW5kKSk7CisgKiAgICAgfQorICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogUHJpbnQgZmlyc3QgZWxlbWVudAorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogcHVibGljIHN0YXRpYyB2b2lkIHByaW50Rmlyc3QoQnJlYWtJdGVyYXRvciBib3VuZGFyeSwgU3RyaW5nIHNvdXJjZSkgeworICogICAgIGludCBzdGFydCA9IGJvdW5kYXJ5LmZpcnN0KCk7CisgKiAgICAgaW50IGVuZCA9IGJvdW5kYXJ5Lm5leHQoKTsKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlLnN1YnN0cmluZyhzdGFydCxlbmQpKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIFByaW50IGxhc3QgZWxlbWVudAorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogcHVibGljIHN0YXRpYyB2b2lkIHByaW50TGFzdChCcmVha0l0ZXJhdG9yIGJvdW5kYXJ5LCBTdHJpbmcgc291cmNlKSB7CisgKiAgICAgaW50IGVuZCA9IGJvdW5kYXJ5Lmxhc3QoKTsKKyAqICAgICBpbnQgc3RhcnQgPSBib3VuZGFyeS5wcmV2aW91cygpOworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbihzb3VyY2Uuc3Vic3RyaW5nKHN0YXJ0LGVuZCkpOworICogfQorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogUHJpbnQgdGhlIGVsZW1lbnQgYXQgYSBzcGVjaWZpZWQgcG9zaXRpb24KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIHB1YmxpYyBzdGF0aWMgdm9pZCBwcmludEF0KEJyZWFrSXRlcmF0b3IgYm91bmRhcnksIGludCBwb3MsIFN0cmluZyBzb3VyY2UpIHsKKyAqICAgICBpbnQgZW5kID0gYm91bmRhcnkuZm9sbG93aW5nKHBvcyk7CisgKiAgICAgaW50IHN0YXJ0ID0gYm91bmRhcnkucHJldmlvdXMoKTsKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc291cmNlLnN1YnN0cmluZyhzdGFydCxlbmQpKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIEZpbmQgdGhlIG5leHQgd29yZAorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogcHVibGljIHN0YXRpYyBpbnQgbmV4dFdvcmRTdGFydEFmdGVyKGludCBwb3MsIFN0cmluZyB0ZXh0KSB7CisgKiAgICAgQnJlYWtJdGVyYXRvciB3YiA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgKiAgICAgd2Iuc2V0VGV4dCh0ZXh0KTsKKyAqICAgICBpbnQgbGFzdCA9IHdiLmZvbGxvd2luZyhwb3MpOworICogICAgIGludCBjdXJyZW50ID0gd2IubmV4dCgpOworICogICAgIHdoaWxlIChjdXJyZW50ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSkgeworICogICAgICAgICBmb3IgKGludCBwID0gbGFzdDsgcCA8IGN1cnJlbnQ7IHArKykgeworICogICAgICAgICAgICAgaWYgKENoYXJhY3Rlci5pc0xldHRlcih0ZXh0LmNoYXJBdChwKSkKKyAqICAgICAgICAgICAgICAgICByZXR1cm4gbGFzdDsKKyAqICAgICAgICAgfQorICogICAgICAgICBsYXN0ID0gY3VycmVudDsKKyAqICAgICAgICAgY3VycmVudCA9IHdiLm5leHQoKTsKKyAqICAgICB9CisgKiAgICAgcmV0dXJuIEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAqIH0KKyAqIDwvcHJlPgorICogKFRoZSBpdGVyYXRvciByZXR1cm5lZCBieSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZSgpIGlzIHVuaXF1ZSBpbiB0aGF0CisgKiB0aGUgYnJlYWsgcG9zaXRpb25zIGl0IHJldHVybnMgZG9uJ3QgcmVwcmVzZW50IGJvdGggdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlCisgKiB0aGluZyBiZWluZyBpdGVyYXRlZCBvdmVyLiAgVGhhdCBpcywgYSBzZW50ZW5jZS1icmVhayBpdGVyYXRvciByZXR1cm5zIGJyZWFrcworICogdGhhdCBlYWNoIHJlcHJlc2VudCB0aGUgZW5kIG9mIG9uZSBzZW50ZW5jZSBhbmQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dC4KKyAqIFdpdGggdGhlIHdvcmQtYnJlYWsgaXRlcmF0b3IsIHRoZSBjaGFyYWN0ZXJzIGJldHdlZW4gdHdvIGJvdW5kYXJpZXMgbWlnaHQgYmUgYQorICogd29yZCwgb3IgdGhleSBtaWdodCBiZSB0aGUgcHVuY3R1YXRpb24gb3Igd2hpdGVzcGFjZSBiZXR3ZWVuIHR3byB3b3Jkcy4gIFRoZQorICogYWJvdmUgY29kZSB1c2VzIGEgc2ltcGxlIGhldXJpc3RpYyB0byBkZXRlcm1pbmUgd2hpY2ggYm91bmRhcnkgaXMgdGhlIGJlZ2lubmluZworICogb2YgYSB3b3JkOiBJZiB0aGUgY2hhcmFjdGVycyBiZXR3ZWVuIHRoaXMgYm91bmRhcnkgYW5kIHRoZSBuZXh0IGJvdW5kYXJ5CisgKiBpbmNsdWRlIGF0IGxlYXN0IG9uZSBsZXR0ZXIgKHRoaXMgY2FuIGJlIGFuIGFscGhhYmV0aWNhbCBsZXR0ZXIsIGEgQ0pLIGlkZW9ncmFwaCwKKyAqIGEgSGFuZ3VsIHN5bGxhYmxlLCBhIEthbmEgY2hhcmFjdGVyLCBldGMuKSwgdGhlbiB0aGUgdGV4dCBiZXR3ZWVuIHRoaXMgYm91bmRhcnkKKyAqIGFuZCB0aGUgbmV4dCBpcyBhIHdvcmQ7IG90aGVyd2lzZSwgaXQncyB0aGUgbWF0ZXJpYWwgYmV0d2VlbiB3b3Jkcy4pCisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMi4wCisgKgorICovCisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBCcmVha0l0ZXJhdG9yIGltcGxlbWVudHMgQ2xvbmVhYmxlCit7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gSUNVRGVidWcuZW5hYmxlZCgiYnJlYWtpdGVyYXRvciIpOworICAgIAorICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IuICBUaGVyZSBpcyBubyBzdGF0ZSB0aGF0IGlzIGNhcnJpZWQgYnkgdGhpcyBhYnN0cmFjdAorICAgICAqIGJhc2UgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIEJyZWFrSXRlcmF0b3IoKQorICAgIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbG9uZSBtZXRob2QuICBDcmVhdGVzIGFub3RoZXIgQnJlYWtJdGVyYXRvciB3aXRoIHRoZSBzYW1lIGJlaGF2aW9yIGFuZAorICAgICAqIGN1cnJlbnQgc3RhdGUgYXMgdGhpcyBvbmUuCisgICAgICogQHJldHVybiBUaGUgY2xvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRE9ORSBpcyByZXR1cm5lZCBieSBwcmV2aW91cygpIGFuZCBuZXh0KCkgYWZ0ZXIgYWxsIHZhbGlkCisgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRE9ORSA9IC0xOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbi4gIFRoaXMgaXMgYWx3YXlzIHRoZSBiZWdpbm5pbmcKKyAgICAgKiBpbmRleCBvZiB0aGUgdGV4dCB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIuICBGb3IgZXhhbXBsZSwgaWYKKyAgICAgKiB0aGUgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciBhIHdob2xlIHN0cmluZywgdGhpcyBmdW5jdGlvbiB3aWxsCisgICAgICogYWx3YXlzIHJldHVybiAwLiAgVGhpcyBmdW5jdGlvbiBhbHNvIHVwZGF0ZXMgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbgorICAgICAqIHRvIHBvaW50IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJldGNoIG9mIHRleHQKKyAgICAgKiBiZWluZyBicm9rZW4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBmaXJzdCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uLiAgVGhpcyBpcyBhbHdheXMgdGhlICJwYXN0LXRoZS1lbmQiCisgICAgICogaW5kZXggb2YgdGhlIHRleHQgdGhpcyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyLiAgRm9yIGV4YW1wbGUsIGlmIHRoZQorICAgICAqIGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgYSB3aG9sZSBzdHJpbmcgKGNhbGwgaXQgInRleHQiKSwgdGhpcyBmdW5jdGlvbgorICAgICAqIHdpbGwgYWx3YXlzIHJldHVybiB0ZXh0Lmxlbmd0aCgpLiAgVGhpcyBmdW5jdGlvbiBhbHNvIHVwZGF0ZWQgdGhlCisgICAgICogaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgZW5kIG9mIHRoZSBzdHJldGNoIG9mIHRleHQKKyAgICAgKiBiZWluZyBicm9rZW4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsYXN0KCk7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBzdGVwcyBmb3J3YXJkIGluIHRoZSB0ZXh0IChhIG5lZ2F0aXZlCisgICAgICogbnVtYmVyLCB0aGVyZWZvcmUsIGFkdmFuY2VzIGJhY2t3YXJkcykuICBJZiB0aGlzIGNhdXNlcyB0aGUgaXRlcmF0b3IKKyAgICAgKiB0byBhZHZhbmNlIG9mZiBlaXRoZXIgZW5kIG9mIHRoZSB0ZXh0LCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgRE9ORTsKKyAgICAgKiBvdGhlcndpc2UsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgcG9zaXRpb24gb2YgdGhlIGFwcHJvcHJpYXRlCisgICAgICogYm91bmRhcnkuICBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIG5leHQoKSBvcgorICAgICAqIHByZXZpb3VzKCkgbiB0aW1lcy4KKyAgICAgKiBAcGFyYW0gbiBUaGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgdG8gYWR2YW5jZSBvdmVyIChpZiBwb3NpdGl2ZSwgbW92ZXMKKyAgICAgKiBmb3J3YXJkOyBpZiBuZWdhdGl2ZSwgbW92ZXMgYmFja3dhcmRzKS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgYm91bmRhcnkgbiBib3VuZGFyaWVzIGZyb20gdGhlIGN1cnJlbnQKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24sIG9yIERPTkUgaWYgbW92aW5nIG4gYm91bmRhcmllcyBjYXVzZXMgdGhlIGl0ZXJhdG9yCisgICAgICogdG8gYWR2YW5jZSBvZmYgZWl0aGVyIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IG5leHQoaW50IG4pOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGZvcndhcmQgb25lIGJvdW5kYXJ5LiAgVGhlIGN1cnJlbnQgaXRlcmF0aW9uCisgICAgICogcG9zaXRpb24gaXMgdXBkYXRlZCB0byBwb2ludCB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbiBhZnRlciB0aGUKKyAgICAgKiBjdXJyZW50IHBvc2l0aW9uLCBhbmQgdGhpcyBpcyBhbHNvIHRoZSB2YWx1ZSB0aGF0IGlzIHJldHVybmVkLiAgSWYKKyAgICAgKiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyBlcXVhbCB0byB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgbGFzdCgpLCBvciB0bworICAgICAqIERPTkUsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBET05FIGFuZCBzZXRzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHRvCisgICAgICogRE9ORS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nIHRoZQorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IG5leHQoKTsKKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBiYWNrd2FyZCBvbmUgYm91bmRhcnkuICBUaGUgY3VycmVudCBpdGVyYXRpb24KKyAgICAgKiBwb3NpdGlvbiBpcyB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIGJlZm9yZQorICAgICAqIHRoZSBjdXJyZW50IHBvc2l0aW9uLCBhbmQgdGhpcyBpcyBhbHNvIHRoZSB2YWx1ZSB0aGF0IGlzIHJldHVybmVkLiAgSWYKKyAgICAgKiB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyBlcXVhbCB0byB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgZmlyc3QoKSwgb3IgdG8KKyAgICAgKiBET05FLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgRE9ORSBhbmQgc2V0cyB0aGUgY3VycmVudCBwb3NpdGlvbiB0bworICAgICAqIERPTkUuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoZQorICAgICAqIGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IHByZXZpb3VzKCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvcidzIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIGJlIHRoZSBmaXJzdAorICAgICAqIGJvdW5kYXJ5IHBvc2l0aW9uIGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiAgKFdoZXRoZXIgdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uIGlzIGl0c2VsZiBhIGJvdW5kYXJ5IHBvc2l0aW9uIG9yIG5vdCBkb2Vzbid0CisgICAgICogbWF0dGVyLS0gdGhpcyBmdW5jdGlvbiBhbHdheXMgbW92ZXMgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUKKyAgICAgKiBmaXJzdCBib3VuZGFyeSBhZnRlciB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLikgIElmIHRoZSBzcGVjaWZpZWQKKyAgICAgKiBwb3NpdGlvbiBpcyB0aGUgcGFzdC10aGUtZW5kIHBvc2l0aW9uLCByZXR1cm5zIERPTkUuCisgICAgICogQHBhcmFtIG9mZnNldCBUaGUgY2hhcmFjdGVyIHBvc2l0aW9uIHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBmb2xsb3dpbmcKKyAgICAgKiAib2Zmc2V0IiAod2hldGhlciBvciBub3QgIm9mZnNldCIgaXRzZWxmIGlzIGEgYm91bmRhcnkgcG9zaXRpb24pLAorICAgICAqIG9yIERPTkUgaWYgIm9mZnNldCIgaXMgdGhlIHBhc3QtdGhlLWVuZCBvZmZzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBmb2xsb3dpbmcoaW50IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvcidzIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIGJlIHRoZSBsYXN0CisgICAgICogYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uICAoV2hldGhlciB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24gaXMgaXRzZWxmIGEgYm91bmRhcnkgcG9zaXRpb24gb3Igbm90IGRvZXNuJ3QKKyAgICAgKiBtYXR0ZXItLSB0aGlzIGZ1bmN0aW9uIGFsd2F5cyBtb3ZlcyB0aGUgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZQorICAgICAqIGxhc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uKSAgSWYgdGhlIHNwZWNpZmllZAorICAgICAqIHBvc2l0aW9uIGlzIHRoZSBzdGFydGluZyBwb3NpdGlvbiwgcmV0dXJucyBET05FLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIGNoYXJhY3RlciBwb3NpdGlvbiB0byBzdGFydCBzZWFyY2hpbmcgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcKKyAgICAgKiAib2Zmc2V0IiAod2hldGhlciBvZiBub3QgIm9mZnNldCIgaXRzZWxmIGlzIGEgYm91bmRhcnkgcG9zaXRpb24pLAorICAgICAqIG9yIERPTkUgaWYgIm9mZnNldCIgaXMgdGhlIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgaXRlcmF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmVjZWRpbmcoaW50IG9mZnNldCkgeworICAgICAgICAvLyBOT1RFOiAgVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBoZXJlIHNvbGVseSBiZWNhdXNlIHdlIGNhbid0IGFkZCBuZXcKKyAgICAgICAgLy8gYWJzdHJhY3QgbWV0aG9kcyB0byBhbiBleGlzdGluZyBjbGFzcy4gIFRoZXJlIGlzIGFsbW9zdCBBTFdBWVMgYQorICAgICAgICAvLyBiZXR0ZXIsIGZhc3RlciB3YXkgdG8gZG8gdGhpcy4KKyAgICAgICAgaW50IHBvcyA9IGZvbGxvd2luZyhvZmZzZXQpOworICAgICAgICB3aGlsZSAocG9zID49IG9mZnNldCAmJiBwb3MgIT0gRE9ORSkKKyAgICAgICAgICAgIHBvcyA9IHByZXZpb3VzKCk7CisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uICBJZiB0aGUKKyAgICAgKiBmdW5jdGlvbiByZXR1cm5zIHRydWUsIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiBpcyBzZXQgdG8gdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uOyBpZiB0aGUgZnVuY3Rpb24gcmV0dXJucyBmYWxzZSwgdGhlIGN1cnJlbnQKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IGFzIHRob3VnaCBmb2xsb3dpbmcoKSBoYWQgYmVlbiBjYWxsZWQuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzQm91bmRhcnkoaW50IG9mZnNldCkgeworICAgICAgICAvLyBBZ2FpbiwgdGhpcyBpcyB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggaXMgcHJvdmlkZWQgc29sZWx5IGJlY2F1c2UKKyAgICAgICAgLy8gd2UgY291bGRuJ3QgYWRkIGEgbmV3IGFic3RyYWN0IG1ldGhvZCB0byBhbiBleGlzdGluZyBjbGFzcy4gIFRoZSByZWFsCisgICAgICAgIC8vIGltcGxlbWVudGF0aW9ucyB3aWxsIHVzdWFsbHkgbmVlZCB0byBkbyBhIGxpdHRsZSBtb3JlIHdvcmsuCisgICAgICAgIGlmIChvZmZzZXQgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZvbGxvd2luZyhvZmZzZXQgLSAxKSA9PSBvZmZzZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpdGVyYXRvcidzIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgaXRlcmF0b3IncyBjdXJyZW50IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgY3VycmVudCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogRm9yIGF0IGxlYXN0IHNvbWUgc3ViY2xhc3NlcyBvZiBCcmVha0l0ZXJhdG9yLCB0aGlzIGlzIGEgcmVmZXJlbmNlCisgICAgICogdG8gdGhlIDxiPmFjdHVhbCBpdGVyYXRvciBiZWluZyB1c2VkPC9iPiBieSB0aGUgQnJlYWtJdGVyYXRvciwKKyAgICAgKiBhbmQgdGhlcmVmb3JlLCB0aGlzIGZ1bmN0aW9uJ3MgcmV0dXJuIHZhbHVlIHNob3VsZCBiZSB0cmVhdGVkIGFzCisgICAgICogPHR0PmNvbnN0PC90dD4uICBObyBndWFyYW50ZWVzIGFyZSBtYWRlIGFib3V0IHRoZSBjdXJyZW50IHBvc2l0aW9uCisgICAgICogb2YgdGhpcyBpdGVyYXRvciB3aGVuIGl0IGlzIHJldHVybmVkLiAgSWYgeW91IG5lZWQgdG8gbW92ZSB0aGF0CisgICAgICogcG9zaXRpb24gdG8gZXhhbWluZSB0aGUgdGV4dCwgY2xvbmUgdGhpcyBmdW5jdGlvbidzIHJldHVybiB2YWx1ZSBmaXJzdC4KKyAgICAgKiBAcmV0dXJuIEEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0VGV4dCgpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhlIG5ldworICAgICAqIHBpZWNlIG9mIHRleHQgaXMgcGFzc2VkIGluIGFzIGEgU3RyaW5nLCBhbmQgdGhlIGN1cnJlbnQKKyAgICAgKiBpdGVyYXRpb24gcG9zaXRpb24gaXMgcmVzZXQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nLgorICAgICAqIChUaGUgb2xkIHRleHQgaXMgZHJvcHBlZC4pCisgICAgICogQHBhcmFtIG5ld1RleHQgQSBTdHJpbmcgY29udGFpbmluZyB0aGUgdGV4dCB0byBhbmFseXplIHdpdGgKKyAgICAgKiB0aGlzIEJyZWFrSXRlcmF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgbmV3VGV4dCkKKyAgICB7CisgICAgICAgIHNldFRleHQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKG5ld1RleHQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGUKKyAgICAgKiBCcmVha0l0ZXJhdG9yIGlzIHBhc3NlZCBhIENoYXJhY3Rlckl0ZXJhdG9yIHRocm91Z2ggd2hpY2gKKyAgICAgKiBpdCB3aWxsIGFjY2VzcyB0aGUgdGV4dCBpdHNlbGYuICBUaGUgY3VycmVudCBpdGVyYXRpb24KKyAgICAgKiBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBzdGFydCBpbmRleC4KKyAgICAgKiAoVGhlIG9sZCBpdGVyYXRvciBpcyBkcm9wcGVkLikKKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBBIENoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgdGV4dAorICAgICAqIHRvIGFuYWx5emUgd2l0aCB0aGlzIEJyZWFrSXRlcmF0b3IgKHRoZSBpdGVyYXRvcidzIGN1cnJlbnQKKyAgICAgKiBwb3NpdGlvbiBpcyBpZ25vcmVkLCBidXQgaXRzIG90aGVyIHN0YXRlIGlzIHNpZ25pZmljYW50KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpOworCisgICAgLyoqIEBzdGFibGUgSUNVIDIuNCAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtJTkRfQ0hBUkFDVEVSID0gMDsKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9XT1JEID0gMTsKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9MSU5FID0gMjsKKyAgICAvKiogQHN0YWJsZSBJQ1UgMi40ICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0lORF9TRU5URU5DRSA9IDM7CisgICAgLyoqIEBzdGFibGUgSUNVIDIuNCAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtJTkRfVElUTEUgPSA0OworCisgICAgLyoqIEBzaW5jZSBJQ1UgMi44ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEtJTkRfQ09VTlQgPSA1OworCisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFNvZnRSZWZlcmVuY2VbXSBpdGVyQ2FjaGUgPSBuZXcgU29mdFJlZmVyZW5jZVs1XTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgd29yZCBib3VuZGFyaWVzLgorICAgICAqIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGF0IHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkIGlzIGluIHRoZSBkZWZhdWx0CisgICAgICogbG9jYWxlJ3MgbGFuZ3VhZ2UuCisgICAgICogQHJldHVybiBBbiBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB3b3JkIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFdvcmRJbnN0YW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0V29yZEluc3RhbmNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHdvcmQgYm91bmRhcmllcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBsb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgdG8gYmUKKyAgICAgKiBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEFuIGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHdvcmQgYm91bmRhcmllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0V29yZEluc3RhbmNlKExvY2FsZSB3aGVyZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKHdoZXJlKSwgS0lORF9XT1JEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHdvcmQgYm91bmRhcmllcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBsb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgdG8gYmUKKyAgICAgKiBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEFuIGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHdvcmQgYm91bmRhcmllcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRXb3JkSW5zdGFuY2UoVUxvY2FsZSB3aGVyZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLCBLSU5EX1dPUkQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbGVnYWwgbGluZS0KKyAgICAgKiB3cmFwcGluZyBwb3NpdGlvbnMuICBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhlIHRleHQgYmVpbmcgYnJva2VuCisgICAgICogaXMgaW4gdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbAorICAgICAqIGxpbmUtd3JhcHBpbmcgcG9zaXRpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRMaW5lSW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldExpbmVJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbCBsaW5lLQorICAgICAqIHdyYXBwaW5nIHBvc2l0aW9ucy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYnJva2VuLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbGVnYWwKKyAgICAgKiBsaW5lLXdyYXBwaW5nIHBvc2l0aW9ucy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0TGluZUluc3RhbmNlKExvY2FsZSB3aGVyZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKHdoZXJlKSwgS0lORF9MSU5FKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxlZ2FsIGxpbmUtCisgICAgICogd3JhcHBpbmcgcG9zaXRpb25zLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBicm9rZW4uCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsZWdhbAorICAgICAqIGxpbmUtd3JhcHBpbmcgcG9zaXRpb25zLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldExpbmVJbnN0YW5jZShVTG9jYWxlIHdoZXJlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2Uod2hlcmUsIEtJTkRfTElORSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsb2dpY2FsLWNoYXJhY3RlcgorICAgICAqIGJvdW5kYXJpZXMuICBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCB0aGUgdGV4dCBiZWluZyBhbmFseXplZCBpcworICAgICAqIGluIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRDaGFyYWN0ZXJJbnN0YW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0Q2hhcmFjdGVySW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIGxvZ2ljYWwtY2hhcmFjdGVyCisgICAgICogYm91bmRhcmllcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0Q2hhcmFjdGVySW5zdGFuY2UoTG9jYWxlIHdoZXJlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUod2hlcmUpLCBLSU5EX0NIQVJBQ1RFUik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBsb2dpY2FsLWNoYXJhY3RlcgorICAgICAqIGJvdW5kYXJpZXMuCisgICAgICogQHBhcmFtIHdoZXJlIEEgTG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIG9mIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEByZXR1cm4gQSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgbG9naWNhbC1jaGFyYWN0ZXIKKyAgICAgKiBib3VuZGFyaWVzLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldENoYXJhY3Rlckluc3RhbmNlKFVMb2NhbGUgd2hlcmUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0QnJlYWtJbnN0YW5jZSh3aGVyZSwgS0lORF9DSEFSQUNURVIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQgaXMgaW4gdGhlIGRlZmF1bHQgbG9jYWxlJ3MKKyAgICAgKiBsYW5ndWFnZS4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHNlbnRlbmNlIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFNlbnRlbmNlSW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldFNlbnRlbmNlSW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgc2VudGVuY2UgYm91bmRhcmllcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRTZW50ZW5jZUluc3RhbmNlKExvY2FsZSB3aGVyZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKHdoZXJlKSwgS0lORF9TRU5URU5DRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyBzZW50ZW5jZSBib3VuZGFyaWVzLgorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHNlbnRlbmNlIGJvdW5kYXJpZXMuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJyZWFrSXRlcmF0b3IgZ2V0U2VudGVuY2VJbnN0YW5jZShVTG9jYWxlIHdoZXJlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2Uod2hlcmUsIEtJTkRfU0VOVEVOQ0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgdGl0bGUgYm91bmRhcmllcy4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQgaXMgaW4gdGhlIGRlZmF1bHQgbG9jYWxlJ3MKKyAgICAgKiBsYW5ndWFnZS4gVGhlIGl0ZXJhdG9yIHJldHVybmVkIGxvY2F0ZXMgdGl0bGUgYm91bmRhcmllcyBhcyBkZXNjcmliZWQgZm9yIAorICAgICAqIFVuaWNvZGUgMy4yIG9ubHkuIEZvciBVbmljb2RlIDQuMCBhbmQgYWJvdmUgdGl0bGUgYm91bmRhcnkgaXRlcmF0aW9uLAorICAgICAqIHBsZWFzZSB1c2UgYSB3b3JkIGJvdW5kYXJ5IGl0ZXJhdG9yLiB7QGxpbmsgI2dldFdvcmRJbnN0YW5jZX0KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHRpdGxlIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFRpdGxlSW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldFRpdGxlSW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgQnJlYWtJdGVyYXRvciB0aGF0IGxvY2F0ZXMgdGl0bGUgYm91bmRhcmllcy4KKyAgICAgKiBUaGUgaXRlcmF0b3IgcmV0dXJuZWQgbG9jYXRlcyB0aXRsZSBib3VuZGFyaWVzIGFzIGRlc2NyaWJlZCBmb3IgCisgICAgICogVW5pY29kZSAzLjIgb25seS4gRm9yIFVuaWNvZGUgNC4wIGFuZCBhYm92ZSB0aXRsZSBib3VuZGFyeSBpdGVyYXRpb24sCisgICAgICogcGxlYXNlIHVzZSBXb3JkIEJvdW5kYXJ5IGl0ZXJhdG9yLntAbGluayAjZ2V0V29yZEluc3RhbmNlfQorICAgICAqIEBwYXJhbSB3aGVyZSBBIExvY2FsZSBzcGVjaWZ5aW5nIHRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAcmV0dXJuIEEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHRpdGxlIGJvdW5kYXJpZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFRpdGxlSW5zdGFuY2UoTG9jYWxlIHdoZXJlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEJyZWFrSW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUod2hlcmUpLCBLSU5EX1RJVExFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIEJyZWFrSXRlcmF0b3IgdGhhdCBsb2NhdGVzIHRpdGxlIGJvdW5kYXJpZXMuCisgICAgICogVGhlIGl0ZXJhdG9yIHJldHVybmVkIGxvY2F0ZXMgdGl0bGUgYm91bmRhcmllcyBhcyBkZXNjcmliZWQgZm9yIAorICAgICAqIFVuaWNvZGUgMy4yIG9ubHkuIEZvciBVbmljb2RlIDQuMCBhbmQgYWJvdmUgdGl0bGUgYm91bmRhcnkgaXRlcmF0aW9uLAorICAgICAqIHBsZWFzZSB1c2UgV29yZCBCb3VuZGFyeSBpdGVyYXRvci57QGxpbmsgI2dldFdvcmRJbnN0YW5jZX0KKyAgICAgKiBAcGFyYW0gd2hlcmUgQSBMb2NhbGUgc3BlY2lmeWluZyB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHJldHVybiBBIG5ldyBpbnN0YW5jZSBvZiBCcmVha0l0ZXJhdG9yIHRoYXQgbG9jYXRlcyB0aXRsZSBib3VuZGFyaWVzLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGdldFRpdGxlSW5zdGFuY2UoVUxvY2FsZSB3aGVyZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRCcmVha0luc3RhbmNlKHdoZXJlLCBLSU5EX1RJVExFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIG5ldyBicmVhayBpdGVyYXRvciBvZiB0aGUgaW5kaWNhdGVkIGtpbmQsIHRvIHVzZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIENsb25lcyBvZiB0aGUgaXRlcmF0b3Igd2lsbCBiZSByZXR1cm5lZAorICAgICAqIGlmIGEgcmVxdWVzdCBmb3IgYSBicmVhayBpdGVyYXRvciBvZiB0aGUgZ2l2ZW4ga2luZCBtYXRjaGVzIG9yIGZhbGxzIGJhY2sgdG8KKyAgICAgKiB0aGlzIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gaXRlciB0aGUgQnJlYWtJdGVyYXRvciBpbnN0YW5jZSB0byBhZG9wdC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBMb2NhbGUgZm9yIHdoaWNoIHRoaXMgaW5zdGFuY2UgaXMgdG8gYmUgcmVnaXN0ZXJlZAorICAgICAqIEBwYXJhbSBraW5kIHRoZSB0eXBlIG9mIGl0ZXJhdG9yIGZvciB3aGljaCB0aGlzIGluc3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQKKyAgICAgKiBAcmV0dXJuIGEgcmVnaXN0cnkga2V5IHRoYXQgY2FuIGJlIHVzZWQgdG8gdW5yZWdpc3RlciB0aGlzIGluc3RhbmNlCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBPYmplY3QgcmVnaXN0ZXJJbnN0YW5jZShCcmVha0l0ZXJhdG9yIGl0ZXIsIExvY2FsZSBsb2NhbGUsIGludCBraW5kKSB7CisgICAgICAgIHJldHVybiByZWdpc3Rlckluc3RhbmNlKGl0ZXIsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSksIGtpbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGEgbmV3IGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBpbmRpY2F0ZWQga2luZCwgdG8gdXNlIGluIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQ2xvbmVzIG9mIHRoZSBpdGVyYXRvciB3aWxsIGJlIHJldHVybmVkCisgICAgICogaWYgYSByZXF1ZXN0IGZvciBhIGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBnaXZlbiBraW5kIG1hdGNoZXMgb3IgZmFsbHMgYmFjayB0bworICAgICAqIHRoaXMgbG9jYWxlLgorICAgICAqIEBwYXJhbSBpdGVyIHRoZSBCcmVha0l0ZXJhdG9yIGluc3RhbmNlIHRvIGFkb3B0LgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIExvY2FsZSBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAgICogQHBhcmFtIGtpbmQgdGhlIHR5cGUgb2YgaXRlcmF0b3IgZm9yIHdoaWNoIHRoaXMgaW5zdGFuY2UgaXMgdG8gYmUgcmVnaXN0ZXJlZAorICAgICAqIEByZXR1cm4gYSByZWdpc3RyeSBrZXkgdGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgT2JqZWN0IHJlZ2lzdGVySW5zdGFuY2UoQnJlYWtJdGVyYXRvciBpdGVyLCBVTG9jYWxlIGxvY2FsZSwgaW50IGtpbmQpIHsKKyAgICAgICAgLy8gSWYgdGhlIHJlZ2lzdGVyZWQgb2JqZWN0IG1hdGNoZXMgdGhlIG9uZSBpbiB0aGUgY2FjaGUsIHRoZW4KKyAgICAgICAgLy8gZmx1c2ggdGhlIGNhY2hlZCBvYmplY3QuCisgICAgICAgIGlmIChpdGVyQ2FjaGVba2luZF0gIT0gbnVsbCkgeworICAgICAgICAgICAgQnJlYWtJdGVyYXRvckNhY2hlIGNhY2hlID0gKEJyZWFrSXRlcmF0b3JDYWNoZSkgaXRlckNhY2hlW2tpbmRdLmdldCgpOworICAgICAgICAgICAgaWYgKGNhY2hlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2FjaGUuZ2V0TG9jYWxlKCkuZXF1YWxzKGxvY2FsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaXRlckNhY2hlW2tpbmRdID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5yZWdpc3Rlckluc3RhbmNlKGl0ZXIsIGxvY2FsZSwga2luZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciBhIHByZXZpb3VzbHktcmVnaXN0ZXJlZCBCcmVha0l0ZXJhdG9yIHVzaW5nIHRoZSBrZXkgcmV0dXJuZWQgZnJvbSB0aGUKKyAgICAgKiByZWdpc3RlciBjYWxsLiAgS2V5IGJlY29tZXMgaW52YWxpZCBhZnRlciB0aGlzIGNhbGwgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBhZ2Fpbi4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSByZWdpc3RyeSBrZXkgcmV0dXJuZWQgYnkgYSBwcmV2aW91cyBjYWxsIHRvIHJlZ2lzdGVySW5zdGFuY2UKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGl0ZXJhdG9yIGZvciB0aGUga2V5IHdhcyBzdWNjZXNzZnVsbHkgdW5yZWdpc3RlcmVkCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IGtleSkgeworICAgICAgICBpZiAoa2V5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJlZ2lzdHJ5IGtleSBtdXN0IG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgLy8gVE9ETzogd2UgZG9uJ3QgZG8gY29kZSBjb3ZlcmFnZSBmb3IgdGhlIGZvbGxvd2luZyBsaW5lcworICAgICAgICAvLyBiZWNhdXNlIGluIGdldEJyZWFrSW5zdGFuY2Ugd2UgYWx3YXlzIGluc3RhbnRpYXRlIHRoZSBzaGltLAorICAgICAgICAvLyBhbmQgdGVzdCBleGVjdXRpb24gaXMgc3VjaCB0aGF0IHdlIGFsd2F5cyBpbnN0YW50aWF0ZSBhCisgICAgICAgIC8vIGJyZWFraXRlcmF0b3IgYmVmb3JlIHdlIGdldCB0byB0aGUgYnJlYWsgaXRlcmF0b3IgdGVzdHMuCisgICAgICAgIC8vIHRoaXMgaXMgZm9yIG1vZHVsYXJpemF0aW9uLCBhbmQgd2UgY291bGQgcmVtb3ZlIHRoZQorICAgICAgICAvLyBkZXBlbmRlbmNpZXMgaW4gZ2V0QnJlYWtJbnN0YW5jZSBieSByZXdyaXRpbmcgcGFydCBvZiB0aGUKKyAgICAgICAgLy8gTG9jYWxlRGF0YSBjb2RlLCBvciBwZXJoYXBzIGJ5IGFjY2VwdGluZyBpdCBpbnRvIHRoZQorICAgICAgICAvLyBtb2R1bGUuCisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgaWYgKHNoaW0gIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgZG9uJ3Qga25vdyB3aGF0IGlzIGJlaW5nIHVucmVnaXN0ZXJlZAorICAgICAgICAgICAgLy8gLS0gd2hhdCBga2luZCcgYW5kIHdoYXQgbG9jYWxlIC0tIHNvIHdlIGZsdXNoIGFsbAorICAgICAgICAgICAgLy8gY2FjaGVzLiAgVGhpcyBpcyBzYWZlIGJ1dCBpbmVmZmljaWVudCBpZiBwZW9wbGUgYXJlCisgICAgICAgICAgICAvLyBhY3RpdmVseSByZWdpc3RlcmluZyBhbmQgdW5yZWdpc3RlcmluZy4KKyAgICAgICAgICAgIGZvciAoaW50IGtpbmQ9MDsga2luZDxLSU5EX0NPVU5UOyArK2tpbmQpIHsKKyAgICAgICAgICAgICAgICBpdGVyQ2FjaGVba2luZF0gPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHNoaW0udW5yZWdpc3RlcihrZXkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgfQorCisgICAgLy8gZW5kIG9mIHJlZ2lzdHJhdGlvbgorCisgICAgcHJpdmF0ZSBzdGF0aWMgQnJlYWtJdGVyYXRvciBnZXRCcmVha0luc3RhbmNlKFVMb2NhbGUgd2hlcmUsIGludCBraW5kKSB7CisKKyAgICAgICAgaWYgKGl0ZXJDYWNoZVtraW5kXSAhPSBudWxsKSB7CisgICAgICAgICAgICBCcmVha0l0ZXJhdG9yQ2FjaGUgY2FjaGUgPSAoQnJlYWtJdGVyYXRvckNhY2hlKSBpdGVyQ2FjaGVba2luZF0uZ2V0KCk7CisgICAgICAgICAgICBpZiAoY2FjaGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChjYWNoZS5nZXRMb2NhbGUoKS5lcXVhbHMod2hlcmUpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZS5jcmVhdGVCcmVha0luc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gc2lnaCwgYWxsIHRvIGF2b2lkIGxpbmtpbmcgaW4gSUNVTG9jYWxlRGF0YS4uLgorICAgICAgICBCcmVha0l0ZXJhdG9yIHJlc3VsdCA9IGdldFNoaW0oKS5jcmVhdGVCcmVha0l0ZXJhdG9yKHdoZXJlLCBraW5kKTsKKworICAgICAgICBCcmVha0l0ZXJhdG9yQ2FjaGUgY2FjaGUgPSBuZXcgQnJlYWtJdGVyYXRvckNhY2hlKHdoZXJlLCByZXN1bHQpOworICAgICAgICBpdGVyQ2FjaGVba2luZF0gPSBuZXcgU29mdFJlZmVyZW5jZShjYWNoZSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBsb2NhbGVzIGZvciB3aGljaCBCcmVha0l0ZXJhdG9ycyBjYW4gYmUgdXNlZC4KKyAgICAgKiBAcmV0dXJuIEFuIGFycmF5IG9mIExvY2FsZXMuICBBbGwgb2YgdGhlIGxvY2FsZXMgaW4gdGhlIGFycmF5IGNhbgorICAgICAqIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhIEJyZWFrSXRlcmF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpCisgICAgeworICAgICAgICAvLyB0byBhdm9pZCBsaW5raW5nIElDVUxvY2FsZURhdGEKKyAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQnJlYWtJdGVyYXRvcnMgY2FuIGJlIHVzZWQuCisgICAgICogQHJldHVybiBBbiBhcnJheSBvZiBMb2NhbGVzLiAgQWxsIG9mIHRoZSBsb2NhbGVzIGluIHRoZSBhcnJheSBjYW4KKyAgICAgKiBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgYSBCcmVha0l0ZXJhdG9yLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkKKyAgICB7CisgICAgICAgIC8vIHRvIGF2b2lkIGxpbmtpbmcgSUNVTG9jYWxlRGF0YQorICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgQnJlYWtJdGVyYXRvckNhY2hlIHsKKworICAgICAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgaXRlcjsKKyAgICAgICAgcHJpdmF0ZSBVTG9jYWxlIHdoZXJlOworCisgICAgICAgIEJyZWFrSXRlcmF0b3JDYWNoZShVTG9jYWxlIHdoZXJlLCBCcmVha0l0ZXJhdG9yIGl0ZXIpIHsKKyAgICAgICAgICAgIHRoaXMud2hlcmUgPSB3aGVyZTsKKyAgICAgICAgICAgIHRoaXMuaXRlciA9IChCcmVha0l0ZXJhdG9yKSBpdGVyLmNsb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBVTG9jYWxlIGdldExvY2FsZSgpIHsKKyAgICAgICAgICAgIHJldHVybiB3aGVyZTsKKyAgICAgICAgfQorCisgICAgICAgIEJyZWFrSXRlcmF0b3IgY3JlYXRlQnJlYWtJbnN0YW5jZSgpIHsKKyAgICAgICAgICAgIHJldHVybiAoQnJlYWtJdGVyYXRvcikgaXRlci5jbG9uZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGFic3RyYWN0IGNsYXNzIEJyZWFrSXRlcmF0b3JTZXJ2aWNlU2hpbSB7CisgICAgICAgIHB1YmxpYyBhYnN0cmFjdCBPYmplY3QgcmVnaXN0ZXJJbnN0YW5jZShCcmVha0l0ZXJhdG9yIGl0ZXIsIFVMb2NhbGUgbCwgaW50IGspOworICAgICAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCBrZXkpOworICAgICAgICBwdWJsaWMgYWJzdHJhY3QgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBwdWJsaWMgYWJzdHJhY3QgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgIHB1YmxpYyBhYnN0cmFjdCBCcmVha0l0ZXJhdG9yIGNyZWF0ZUJyZWFrSXRlcmF0b3IoVUxvY2FsZSBsLCBpbnQgayk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgQnJlYWtJdGVyYXRvclNlcnZpY2VTaGltIHNoaW07CisgICAgcHJpdmF0ZSBzdGF0aWMgQnJlYWtJdGVyYXRvclNlcnZpY2VTaGltIGdldFNoaW0oKSB7CisgICAgICAgIC8vIE5vdGU6IHRoaXMgaW5zdGFudGlhdGlvbiBpcyBzYWZlIG9uIGxvb3NlLW1lbW9yeS1tb2RlbCBjb25maWd1cmF0aW9ucworICAgICAgICAvLyBkZXNwaXRlIGxhY2sgb2Ygc3luY2hyb25pemF0aW9uLCBzaW5jZSB0aGUgc2hpbSBpbnN0YW5jZSBoYXMgbm8gc3RhdGUtLQorICAgICAgICAvLyBpdCdzIGFsbCBpbiB0aGUgY2xhc3MgaW5pdC4gIFRoZSB3b3JzdCBwcm9ibGVtIGlzIHdlIG1pZ2h0IGluc3RhbnRpYXRlCisgICAgICAgIC8vIHR3byBzaGltIGluc3RhbmNlcywgYnV0IHRoZXknbGwgc2hhcmUgdGhlIHNhbWUgc3RhdGUgc28gdGhhdCdzIG9rLgorICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENsYXNzIGNscyA9IENsYXNzLmZvck5hbWUoImNvbS5pYm0uaWN1LnRleHQuQnJlYWtJdGVyYXRvckZhY3RvcnkiKTsKKyAgICAgICAgICAgICAgICBzaGltID0gKEJyZWFrSXRlcmF0b3JTZXJ2aWNlU2hpbSljbHMubmV3SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgICAgIGlmKERFQlVHKXsKKyAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzaGltOworICAgIH0KKworICAgIC8vIC0tLS0tLS0tIEJFR0lOIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbG9jYWxlIHRoYXQgd2FzIHVzZWQgdG8gY3JlYXRlIHRoaXMgb2JqZWN0LCBvciBudWxsLgorICAgICAqIFRoaXMgbWF5IG1heSBkaWZmZXIgZnJvbSB0aGUgbG9jYWxlIHJlcXVlc3RlZCBhdCB0aGUgdGltZSBvZgorICAgICAqIHRoaXMgb2JqZWN0J3MgY3JlYXRpb24uICBGb3IgZXhhbXBsZSwgaWYgYW4gb2JqZWN0IGlzIGNyZWF0ZWQKKyAgICAgKiBmb3IgbG9jYWxlIDx0dD5lbl9VU19DQUxJRk9STklBPC90dD4sIHRoZSBhY3R1YWwgZGF0YSBtYXkgYmUKKyAgICAgKiBkcmF3biBmcm9tIDx0dD5lbjwvdHQ+ICh0aGUgPGk+YWN0dWFsPC9pPiBsb2NhbGUpLCBhbmQKKyAgICAgKiA8dHQ+ZW5fVVM8L3R0PiBtYXkgYmUgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIHRoYXQgZXhpc3RzICh0aGUKKyAgICAgKiA8aT52YWxpZDwvaT4gbG9jYWxlKS4KKyAgICAgKgorICAgICAqIDxwPk5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgYmUgaW1wbGVtZW50ZWQgaW4gSUNVIDMuMDsgSUNVIDIuOAorICAgICAqIGNvbnRhaW5zIGEgcGFydGlhbCBwcmV2aWV3IGltcGxlbWVudGF0aW9uLiAgVGhlICogPGk+YWN0dWFsPC9pPgorICAgICAqIGxvY2FsZSBpcyByZXR1cm5lZCBjb3JyZWN0bHksIGJ1dCB0aGUgPGk+dmFsaWQ8L2k+IGxvY2FsZSBpcworICAgICAqIG5vdCwgaW4gbW9zdCBjYXNlcy4KKyAgICAgKiBAcGFyYW0gdHlwZSB0eXBlIG9mIGluZm9ybWF0aW9uIHJlcXVlc3RlZCwgZWl0aGVyIHtAbGluaworICAgICAqIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNWQUxJRF9MT0NBTEV9IG9yIHtAbGluaworICAgICAqIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNBQ1RVQUxfTE9DQUxFfS4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmZvcm1hdGlvbiBzcGVjaWZpZWQgYnkgPGk+dHlwZTwvaT4sIG9yIG51bGwgaWYKKyAgICAgKiB0aGlzIG9iamVjdCB3YXMgbm90IGNvbnN0cnVjdGVkIGZyb20gbG9jYWxlIGRhdGEuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNWQUxJRF9MT0NBTEUKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZSNBQ1RVQUxfTE9DQUxFCisgICAgICogQGRyYWZ0IElDVSAyLjggKHJldGFpbikKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVUxvY2FsZSBnZXRMb2NhbGUoVUxvY2FsZS5UeXBlIHR5cGUpIHsKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gVUxvY2FsZS5BQ1RVQUxfTE9DQUxFID8KKyAgICAgICAgICAgIHRoaXMuYWN0dWFsTG9jYWxlIDogdGhpcy52YWxpZExvY2FsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2FsZXMgdGhhdCB3ZXJlIHVzZWQgdG8gY3JlYXRlIHRoaXMKKyAgICAgKiBvYmplY3QuICBJZiB0aGUgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YSwKKyAgICAgKiBib3RoIGFyZ3VtZW50cyBzaG91bGQgYmUgc2V0IHRvIG51bGwuICBPdGhlcndpc2UsIG5laXRoZXIKKyAgICAgKiBzaG91bGQgYmUgbnVsbC4gIFRoZSBhY3R1YWwgbG9jYWxlIG11c3QgYmUgYXQgdGhlIHNhbWUgbGV2ZWwgb3IKKyAgICAgKiBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4gIFRoaXMgbWV0aG9kIGlzIGludGVuZGVkCisgICAgICogZm9yIHVzZSBieSBmYWN0b3JpZXMgb3Igb3RoZXIgZW50aXRpZXMgdGhhdCBjcmVhdGUgb2JqZWN0cyBvZgorICAgICAqIHRoaXMgY2xhc3MuCisgICAgICogQHBhcmFtIHZhbGlkIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSBjb250YWluaW5nIGFueSByZXNvdXJjZQorICAgICAqIGRhdGEsIG9yIG51bGwKKyAgICAgKiBAcGFyYW0gYWN0dWFsIHRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMKKyAgICAgKiBvYmplY3QsIG9yIG51bGwKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBmaW5hbCB2b2lkIHNldExvY2FsZShVTG9jYWxlIHZhbGlkLCBVTG9jYWxlIGFjdHVhbCkgeworICAgICAgICAvLyBDaGFuZ2UgdGhlIGZvbGxvd2luZyB0byBhbiBhc3NlcnRpb24gbGF0ZXIKKyAgICAgICAgaWYgKCh2YWxpZCA9PSBudWxsKSAhPSAoYWN0dWFsID09IG51bGwpKSB7CisgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgfQorICAgICAgICAvLyBBbm90aGVyIGNoZWNrIHdlIGNvdWxkIGRvIGlzIHRoYXQgdGhlIGFjdHVhbCBsb2NhbGUgaXMgYXQKKyAgICAgICAgLy8gdGhlIHNhbWUgbGV2ZWwgb3IgbGVzcyBzcGVjaWZpYyB0aGFuIHRoZSB2YWxpZCBsb2NhbGUuCisgICAgICAgIHRoaXMudmFsaWRMb2NhbGUgPSB2YWxpZDsKKyAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgPSBhY3R1YWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlIGRhdGEsIG9yIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgdmFsaWRMb2NhbGU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbG9jYWxlIGNvbnRhaW5pbmcgZGF0YSB1c2VkIHRvIGNvbnN0cnVjdCB0aGlzIG9iamVjdCwgb3IKKyAgICAgKiBudWxsLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlIGFjdHVhbExvY2FsZTsKKworICAgIC8vIC0tLS0tLS0tIEVORCBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9CcmVha0l0ZXJhdG9yRmFjdG9yeS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtJdGVyYXRvckZhY3RvcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWQ4MDRmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtJdGVyYXRvckZhY3RvcnkuamF2YQpAQCAtMCwwICsxLDE4OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Bc3NlcnQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLkZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIEBhdXRob3IgUmFtCisgKgorICogVG8gY2hhbmdlIHRoaXMgZ2VuZXJhdGVkIGNvbW1lbnQgZWRpdCB0aGUgdGVtcGxhdGUgdmFyaWFibGUgInR5cGVjb21tZW50IjoKKyAqIFdpbmRvdz5QcmVmZXJlbmNlcz5KYXZhPlRlbXBsYXRlcy4KKyAqIFRvIGVuYWJsZSBhbmQgZGlzYWJsZSB0aGUgY3JlYXRpb24gb2YgdHlwZSBjb21tZW50cyBnbyB0bworICogV2luZG93PlByZWZlcmVuY2VzPkphdmE+Q29kZSBHZW5lcmF0aW9uLgorICovCitmaW5hbCBjbGFzcyBCcmVha0l0ZXJhdG9yRmFjdG9yeSBleHRlbmRzIEJyZWFrSXRlcmF0b3IuQnJlYWtJdGVyYXRvclNlcnZpY2VTaGltIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIEFTU0VSVCA9IGZhbHNlOworCisgICAgcHVibGljIE9iamVjdCByZWdpc3Rlckluc3RhbmNlKEJyZWFrSXRlcmF0b3IgaXRlciwgVUxvY2FsZSBsb2NhbGUsIGludCBraW5kKSB7CisgICAgICAgIGl0ZXIuc2V0VGV4dChuZXcgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKCIiKSk7CisgICAgICAgIHJldHVybiBzZXJ2aWNlLnJlZ2lzdGVyT2JqZWN0KGl0ZXIsIGxvY2FsZSwga2luZCk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3Qga2V5KSB7CisgICAgICAgIGlmIChzZXJ2aWNlLmlzRGVmYXVsdCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNlcnZpY2UudW5yZWdpc3RlckZhY3RvcnkoKEZhY3Rvcnkpa2V5KTsKKyAgICB9CisKKyAgICBwdWJsaWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNlcnZpY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gc2VydmljZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2VydmljZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gc2VydmljZS5nZXRBdmFpbGFibGVVTG9jYWxlcygpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIEJyZWFrSXRlcmF0b3IgY3JlYXRlQnJlYWtJdGVyYXRvcihVTG9jYWxlIGxvY2FsZSwgaW50IGtpbmQpIHsKKyAgICAvLyBUT0RPOiBjb252ZXJ0IHRvIFVMb2NhbGUgd2hlbiBzZXJ2aWNlIHN3aXRjaGVzIG92ZXIKKyAgICAgICAgaWYgKHNlcnZpY2UuaXNEZWZhdWx0KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVCcmVha0luc3RhbmNlKGxvY2FsZSwga2luZCk7CisgICAgICAgIH0KKyAgICAgICAgVUxvY2FsZVtdIGFjdHVhbExvYyA9IG5ldyBVTG9jYWxlWzFdOworICAgICAgICBCcmVha0l0ZXJhdG9yIGl0ZXIgPSAoQnJlYWtJdGVyYXRvcilzZXJ2aWNlLmdldChsb2NhbGUsIGtpbmQsIGFjdHVhbExvYyk7CisgICAgICAgIGl0ZXIuc2V0TG9jYWxlKGFjdHVhbExvY1swXSwgYWN0dWFsTG9jWzBdKTsgLy8gc2VydmljZXMgbWFrZSBubyBkaXN0aW5jdGlvbiBiZXR3ZWVuIGFjdHVhbCAmIHZhbGlkCisgICAgICAgIHJldHVybiBpdGVyOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEJGU2VydmljZSBleHRlbmRzIElDVUxvY2FsZVNlcnZpY2UgeworICAgICAgICBCRlNlcnZpY2UoKSB7CisgICAgICAgICAgICBzdXBlcigiQnJlYWtJdGVyYXRvciIpOworCisgICAgICAgICAgICBjbGFzcyBSQkJyZWFrSXRlcmF0b3JGYWN0b3J5IGV4dGVuZHMgSUNVUmVzb3VyY2VCdW5kbGVGYWN0b3J5IHsKKyAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgT2JqZWN0IGhhbmRsZUNyZWF0ZShVTG9jYWxlIGxvYywgaW50IGtpbmQsIElDVVNlcnZpY2Ugc2VydmljZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlQnJlYWtJbnN0YW5jZShsb2MsIGtpbmQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlZ2lzdGVyRmFjdG9yeShuZXcgUkJCcmVha0l0ZXJhdG9yRmFjdG9yeSgpKTsKKworICAgICAgICAgICAgbWFya0RlZmF1bHQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBzdGF0aWMgZmluYWwgSUNVTG9jYWxlU2VydmljZSBzZXJ2aWNlID0gbmV3IEJGU2VydmljZSgpOworCisgICAgLy8gS0lORF9OQU1FUyBhcmUgdXNlZCBpbiBzeW50aGVzaXppbmcgdGhlIHJlc291cmNlIG5hbWUgdGhhdCBob2xkcyB0aGUgc291cmNlCisgICAgLy8gICAgICAgICAgICBicmVhayBydWxlcy4gICBGb3Igb2xkLXN0eWxlIChJQ1UgMi44IGFuZCBwcmV2aW91cykgYnJlYWsgaXRlcmF0b3JzLgorICAgIC8vICAgICAgICAgICAgVGhlIHJlc291cmNlcyBhcmUgY29tLmlibS5pY3UuaW1wbC5kYXRhLkJyZWFrSXRlcmF0b3JSdWxlcywgYW5kIGhhdmUKKyAgICAvLyAgICAgICAgICAgIG5hbWVzIGxpa2UgIkNoYXJhY3RlckJyZWFrUnVsZXMiLCB3aGVyZSB0aGUgIkNoYXJhY3RlciIgcGFydCBvZiB0aGUKKyAgICAvLyAgICAgICAgICAgIG5hbWUgY29tZXMgZnJvbSBoZXJlICh0aGlzIGFycmF5KS4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBLSU5EX05BTUVTID0geworICAgICAgICAiQ2hhcmFjdGVyIiwgIldvcmQiLCAiTGluZSIsICJTZW50ZW5jZSIsICJUaXRsZSIKKyAgICB9OworCisgICAgLyoqIEtJTkRfTkFNRVNfMiBhcmUgdXNlZCBpbiBzeW50aGVzaXppbmcgdGhlIG5hbWVzIGZvcgorICAgICAqICB0aGUgcHJlY29tcGlsZWQgYnJlYWsgcnVsZXMgdXNlZCB3aXRoIHRoZSBuZXcgKElDVSAzLjApIFJCQkkuCisgICAgICogIFRoZSBmdWxseSBhc3NlbWJsZWQgbmFtZXMgbG9vayBsaWtlIGljdWR0MzBiX2NoYXIuYnJrLCB3aGljaCBpcyB0aGUKKyAgICAgKiAgZmlsZSBuYW1lIG9mIHRoZSBicmsgZmlsZSBhcyBwcm9kdWNlZCBieSB0aGUgSUNVNEMgYnVpbGQuCisgICAgICogIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEtJTkRfTkFNRVNfMiA9IHsKKyAgICAgICAgICAgICJjaGFyIiwgIndvcmQiLCAibGluZSIsICJzZW50IiwgInRpdGxlIgorICAgICAgICB9OworCisKKyAgICBwcml2YXRlIHN0YXRpYyBCcmVha0l0ZXJhdG9yIGNyZWF0ZUJyZWFrSW5zdGFuY2UoVUxvY2FsZSBsb2NhbGUsIGludCBraW5kKSB7CisgICAgICAgIFN0cmluZyBwcmVmaXggPSBLSU5EX05BTUVTW2tpbmRdOworICAgICAgICByZXR1cm4gY3JlYXRlQnJlYWtJbnN0YW5jZShsb2NhbGUsIGtpbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCArICJCcmVha1J1bGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4ICsgIkJyZWFrRGljdGlvbmFyeSIpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIEJyZWFrSXRlcmF0b3IgY3JlYXRlQnJlYWtJbnN0YW5jZShVTG9jYWxlIHdoZXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQga2luZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGVzTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRpY3Rpb25hcnlOYW1lKSB7CisKKyAgICAgICAgQnJlYWtJdGVyYXRvciBpdGVyID0gbnVsbDsKKyAgICAgICAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gSUNVTG9jYWxlRGF0YS5nZXRSZXNvdXJjZUJ1bmRsZSgiQnJlYWtJdGVyYXRvclJ1bGVzIiwgd2hlcmUpOworICAgICAgICBpZiAoYnVuZGxlID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oIk5vIElDVSBEYXRhIiwgIkJyZWFrSXRlcmF0b3JSdWxlcyIsIHdoZXJlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ1tdIGNsYXNzTmFtZXMgPSBidW5kbGUuZ2V0U3RyaW5nQXJyYXkoIkJyZWFrSXRlcmF0b3JDbGFzc2VzIik7CisgICAgICAgIFN0cmluZyBydWxlcyA9IGJ1bmRsZS5nZXRTdHJpbmcocnVsZXNOYW1lKTsKKyAgICAgICAgaWYgKGNsYXNzTmFtZXNba2luZF0uZXF1YWxzKCJSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIikpIHsKKyAgICAgICAgICAgIC8vIE9sZCBzdHlsZSAoMi44IGFuZCBwcmV2aW91cykgQnJlYWsgSXRlcmF0b3IuCisgICAgICAgICAgICAvLyBOb3QgdXNlZCBieSBkZWZhdWx0LCBidXQgaWYgc29tZW9uZSB3YW50cyB0byBzcGVjaWZ5IHRoZSBvbGQgY2xhc3MKKyAgICAgICAgICAgIC8vICAgaW4gc29tZSBsb2NhbGUncyByZXNvdXJjZXMsIGl0IHNob3VsZCBzdGlsbCB3b3JrLgorICAgICAgICAgICAgaXRlciA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZChydWxlcyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoY2xhc3NOYW1lc1traW5kXS5lcXVhbHMoIlJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfTmV3IikpIHsKKyAgICAgICAgICAgIC8vIENsYXNzIGZvciBuZXcgUkJCSSBlbmdpbmUuCisgICAgICAgICAgICAvLyBPcGVuIGEgc3RyZWFtIHRvIHRoZSAuYnJrIGZpbGUuICBQYXRoIHRvIHRoZSBicmsgZmlsZXMgaGFzIHRoaXMgZm9ybToKKyAgICAgICAgICAgIC8vICAgICAgZGF0YS9pY3VkdDMwYi9saW5lLmJyayAgICAgICgzMCBpcyB2ZXJzaW9uIG51bWJlcikKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGVzRmlsZU5hbWUgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlVORExFICsiLyIrIEtJTkRfTkFNRVNfMltraW5kXSArICIuYnJrIjsKKyAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBpcyA9IElDVURhdGEuZ2V0U3RyZWFtKHJ1bGVzRmlsZU5hbWUpOworICAgICAgICAgICAgICAgIGl0ZXIgPSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX05ldy5nZXRJbnN0YW5jZUZyb21Db21waWxlZFJ1bGVzKGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLnRvU3RyaW5nKCksIiIsIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGNsYXNzTmFtZXNba2luZF0uZXF1YWxzKCJEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIikpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gZGljdGlvbmFyeSA9IElDVURhdGEuZ2V0U3RyZWFtKGJ1bmRsZS5nZXRTdHJpbmcoZGljdGlvbmFyeU5hbWUpKTsKKy8vICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiYnVuZGxlOiAiICsgYnVuZGxlICsgIiBkbjogIiArIGRpY3Rpb25hcnlOYW1lKTsKKy8vICAgICAgICAgICAgICAgIE9iamVjdCB0ID0gYnVuZGxlLmdldE9iamVjdChkaWN0aW9uYXJ5TmFtZSk7CisvLyAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4odCk7CisvLyAgICAgICAgICAgICAgICBVUkwgdXJsID0gKFVSTCl0OworLy8gICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ1cmw6ICIgKyB1cmwpOworLy8gICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gZGljdGlvbmFyeSA9IHVybC5vcGVuU3RyZWFtKCk7CisvLyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInN0cmVhbTogIiArIGRpY3Rpb25hcnkpOworICAgICAgICAgICAgICAgIGl0ZXIgPSBuZXcgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcihydWxlcywgZGljdGlvbmFyeSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaWYgKEFTU0VSVCkgQXNzZXJ0LmZhaWwoZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChBU1NFUlQpIEFzc2VydC5mYWlsKGUpOworICAgICAgICAgICAgfQorICAgICAgICAvLyBUT0RPOiB3ZSBkb24ndCBoYXZlICdiYWQnIHJlc291cmNlIGRhdGEsIHNvIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbgorICAgICAgICAvLyBpbiBvdXIgY3VycmVudCB0ZXN0cy4KKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgaWYgKGl0ZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGl0ZXIgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQocnVsZXMpOworICAgICAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgLy8gVE9ETzogd2UgZG9uJ3QgaGF2ZSAnYmFkJyByZXNvdXJjZSBkYXRhLCBzbyB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4KKyAgICAgICAgLy8gaW4gb3VyIGN1cnJlbnQgdGVzdHMuCisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgYnJlYWsgaXRlcmF0b3IgY2xhc3MgXCIiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWVzW2tpbmRdICsgIlwiIik7CisgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisKKyAgICAgICAgLy8gVE9ETzogRGV0ZXJtaW5lIHZhbGlkIGFuZCBhY3R1YWwgbG9jYWxlIGNvcnJlY3RseS4KKyAgICAgICAgVUxvY2FsZSB1bG9jID0gVUxvY2FsZS5mb3JMb2NhbGUoYnVuZGxlLmdldExvY2FsZSgpKTsKKyAgICAgICAgaXRlci5zZXRMb2NhbGUodWxvYywgdWxvYyk7CisgICAgICAgIHJldHVybiBpdGVyOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0JyZWFrVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2E3NTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQnJlYWtUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMzgzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworCisvKioKKyAqIEluc2VydHMgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXJzIGF0IHdvcmQgYnJlYWtzLiBUbyByZXN0cmljdCBpdCB0byBwYXJ0aWN1bGFyIGNoYXJhY3RlcnMsIHVzZSBhIGZpbHRlci4KKyAqIFRPRE86IHRoaXMgaXMgYW4gaW50ZXJuYWwgY2xhc3MsIGFuZCBvbmx5IHRlbXBvcmFyeS4gUmVtb3ZlIGl0IG9uY2Ugd2UgaGF2ZSBcYiBub3RhdGlvbiBpbiBUcmFuc2xpdGVyYXRvci4KKyAqLworZmluYWwgY2xhc3MgQnJlYWtUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgYmk7CisgICAgcHJpdmF0ZSBTdHJpbmcgaW5zZXJ0aW9uOworICAgIHByaXZhdGUgaW50W10gYm91bmRhcmllcyA9IG5ldyBpbnRbNTBdOworICAgIHByaXZhdGUgaW50IGJvdW5kYXJ5Q291bnQgPSAwOworCisgICAgcHVibGljIEJyZWFrVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBVbmljb2RlRmlsdGVyIGZpbHRlciwgQnJlYWtJdGVyYXRvciBiaSwgU3RyaW5nIGluc2VydGlvbikgeworICAgICAgICBzdXBlcihJRCwgZmlsdGVyKTsKKyAgICAgICAgdGhpcy5iaSA9IGJpOworICAgICAgICB0aGlzLmluc2VydGlvbiA9IGluc2VydGlvbjsKKyAgICB9CisKKyAgICBwdWJsaWMgQnJlYWtUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIFVuaWNvZGVGaWx0ZXIgZmlsdGVyKSB7CisgICAgICAgIHRoaXMoSUQsIGZpbHRlciwgbnVsbCwgIiAiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEluc2VydGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGluc2VydGlvbjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRJbnNlcnRpb24oU3RyaW5nIGluc2VydGlvbikgeworICAgICAgICB0aGlzLmluc2VydGlvbiA9IGluc2VydGlvbjsKKyAgICB9CisKKyAgICBwdWJsaWMgQnJlYWtJdGVyYXRvciBnZXRCcmVha0l0ZXJhdG9yKCkgeworICAgICAgICAvLyBEZWZlciBpbml0aWFsaXphdGlvbiBvZiBCcmVha0l0ZXJhdG9yIGJlY2F1c2UgaXQgaXMgc2xvdywKKyAgICAgICAgLy8gdHlwaWNhbGx5IG92ZXIgMjAwMCBtcy4KKyAgICAgICAgaWYgKGJpID09IG51bGwpIGJpID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UobmV3IFVMb2NhbGUoInRoX1RIIikpOworICAgICAgICByZXR1cm4gYmk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0QnJlYWtJdGVyYXRvcihCcmVha0l0ZXJhdG9yIGJpKSB7CisgICAgICAgIHRoaXMuYmkgPSBiaTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IExFVFRFUl9PUl9NQVJLX01BU0sgPQorICAgICAgICAgICgxPDxDaGFyYWN0ZXIuVVBQRVJDQVNFX0xFVFRFUikKKyAgICAgICAgfCAoMTw8Q2hhcmFjdGVyLkxPV0VSQ0FTRV9MRVRURVIpCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5USVRMRUNBU0VfTEVUVEVSKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuTU9ESUZJRVJfTEVUVEVSKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuT1RIRVJfTEVUVEVSKQorICAgICAgICB8ICgxPDxDaGFyYWN0ZXIuQ09NQklOSU5HX1NQQUNJTkdfTUFSSykKKyAgICAgICAgfCAoMTw8Q2hhcmFjdGVyLk5PTl9TUEFDSU5HX01BUkspCisgICAgICAgIHwgKDE8PENoYXJhY3Rlci5FTkNMT1NJTkdfTUFSSykKKyAgICAgICAgOworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwgUG9zaXRpb24gcG9zLCBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgIGJvdW5kYXJ5Q291bnQgPSAwOworICAgICAgICBpbnQgYm91bmRhcnkgPSAwOworICAgICAgICBnZXRCcmVha0l0ZXJhdG9yKCk7IC8vIExhenktY3JlYXRlIGl0IGlmIG5lY2Vzc2FyeQorICAgICAgICBiaS5zZXRUZXh0KG5ldyBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yKHRleHQsIHBvcy5zdGFydCwgcG9zLmxpbWl0LCBwb3Muc3RhcnQpKTsKKyAgICAgICAgLy8gVE9ETzogZml4IGNsdW1zeSB3b3JrYXJvdW5kIHVzZWQgYmVsb3cuCisgICAgICAgIC8qCisgICAgICAgIGNoYXJbXSB0ZW1wQnVmZmVyID0gbmV3IGNoYXJbdGV4dC5sZW5ndGgoKV07CisgICAgICAgIHRleHQuZ2V0Q2hhcnMoMCwgdGV4dC5sZW5ndGgoKSwgdGVtcEJ1ZmZlciwgMCk7CisgICAgICAgIGJpLnNldFRleHQobmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKG5ldyBTdHJpbmcodGVtcEJ1ZmZlciksIHBvcy5zdGFydCwgcG9zLmxpbWl0LCBwb3Muc3RhcnQpKTsKKyAgICAgICAgKi8KKyAgICAgICAgLy8gZW5kIGRlYnVnZ2luZworCisgICAgICAgIC8vIFRvIG1ha2UgdGhpbmdzIG11Y2ggZWFzaWVyLCB3ZSB3aWxsIHN0YWNrIHRoZSBib3VuZGFyaWVzLCBhbmQgdGhlbiBpbnNlcnQgYXQgdGhlIGVuZC4KKyAgICAgICAgLy8gZ2VuZXJhbGx5LCB3ZSB3b24ndCBuZWVkIHRvbyBtYW55LCBzaW5jZSB3ZSB3aWxsIGJlIGZpbHRlcmVkLgorCisgICAgICAgIGZvcihib3VuZGFyeSA9IGJpLmZpcnN0KCk7IGJvdW5kYXJ5ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSAmJiBib3VuZGFyeSA8IHBvcy5saW1pdDsgYm91bmRhcnkgPSBiaS5uZXh0KCkpIHsKKyAgICAgICAgICAgIGlmIChib3VuZGFyeSA9PSAwKSBjb250aW51ZTsKKyAgICAgICAgICAgIC8vIEhBQ0s6IENoZWNrIHRvIHNlZSB0aGF0IHByZWNlZWRpbmcgaXRlbSB3YXMgYSBsZXR0ZXIKKworICAgICAgICAgICAgaW50IGNwID0gVVRGMTYuY2hhckF0KHRleHQsIGJvdW5kYXJ5LTEpOworICAgICAgICAgICAgaW50IHR5cGUgPSBVQ2hhcmFjdGVyLmdldFR5cGUoY3ApOworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oSW50ZWdlci50b1N0cmluZyhjcCwxNikgKyAiIChiZWZvcmUpOiAiICsgdHlwZSk7CisgICAgICAgICAgICBpZiAoKCgxPDx0eXBlKSAmIExFVFRFUl9PUl9NQVJLX01BU0spID09IDApIGNvbnRpbnVlOworCisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdCh0ZXh0LCBib3VuZGFyeSk7CisgICAgICAgICAgICB0eXBlID0gVUNoYXJhY3Rlci5nZXRUeXBlKGNwKTsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKEludGVnZXIudG9TdHJpbmcoY3AsMTYpICsgIiAoYWZ0ZXIpOiAiICsgdHlwZSk7CisgICAgICAgICAgICBpZiAoKCgxPDx0eXBlKSAmIExFVFRFUl9PUl9NQVJLX01BU0spID09IDApIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAoYm91bmRhcnlDb3VudCA+PSBib3VuZGFyaWVzLmxlbmd0aCkgeyAgICAgICAvLyByZWFsbG9jIGlmIG5lY2Vzc2FyeQorICAgICAgICAgICAgICAgIGludFtdIHRlbXAgPSBuZXcgaW50W2JvdW5kYXJpZXMubGVuZ3RoICogMl07CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShib3VuZGFyaWVzLCAwLCB0ZW1wLCAwLCBib3VuZGFyaWVzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgYm91bmRhcmllcyA9IHRlbXA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvdW5kYXJpZXNbYm91bmRhcnlDb3VudCsrXSA9IGJvdW5kYXJ5OworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oYm91bmRhcnkpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGRlbHRhID0gMDsKKyAgICAgICAgaW50IGxhc3RCb3VuZGFyeSA9IDA7CisKKyAgICAgICAgaWYgKGJvdW5kYXJ5Q291bnQgIT0gMCkgeyAvLyBpZiB3ZSBmb3VuZCBzb21ldGhpbmcsIGFkanVzdAorICAgICAgICAgICAgZGVsdGEgPSBib3VuZGFyeUNvdW50ICogaW5zZXJ0aW9uLmxlbmd0aCgpOworICAgICAgICAgICAgbGFzdEJvdW5kYXJ5ID0gYm91bmRhcmllc1tib3VuZGFyeUNvdW50LTFdOworCisgICAgICAgICAgICAvLyB3ZSBkbyB0aGlzIGZyb20gdGhlIGVuZCBiYWNrd2FyZHMsIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBrZWVwIHVwZGF0aW5nLgorCisgICAgICAgICAgICB3aGlsZSAoYm91bmRhcnlDb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBib3VuZGFyeSA9IGJvdW5kYXJpZXNbLS1ib3VuZGFyeUNvdW50XTsKKyAgICAgICAgICAgICAgICB0ZXh0LnJlcGxhY2UoYm91bmRhcnksIGJvdW5kYXJ5LCBpbnNlcnRpb24pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gTm93IGZpeCB1cCB0aGUgcmV0dXJuIHZhbHVlcworICAgICAgICBwb3MuY29udGV4dExpbWl0ICs9IGRlbHRhOworICAgICAgICBwb3MubGltaXQgKz0gZGVsdGE7CisgICAgICAgIHBvcy5zdGFydCA9IGluY3JlbWVudGFsID8gbGFzdEJvdW5kYXJ5ICsgZGVsdGEgOiBwb3MubGltaXQ7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgc3RhbmRhcmQgdmFyaWFudHMgd2l0aCB0aGUgc3lzdGVtLiAgQ2FsbGVkIGJ5CisgICAgICogVHJhbnNsaXRlcmF0b3IgZHVyaW5nIGluaXRpYWxpemF0aW9uLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICAvLyBmYWxzZSBtZWFucyB0aGF0IGl0IGlzIGludmlzaWJsZQorICAgICAgICBUcmFuc2xpdGVyYXRvciB0cmFucyA9IG5ldyBCcmVha1RyYW5zbGl0ZXJhdG9yKCJBbnktQnJlYWtJbnRlcm5hbCIsIG51bGwpOworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3Rlckluc3RhbmNlKHRyYW5zLCBmYWxzZSk7CisgICAgICAgIC8qCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUJyZWFrIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBCcmVha1RyYW5zbGl0ZXJhdG9yKCJBbnktQnJlYWsiLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgICovCisgICAgfQorCisgICAgLy8gSGFjaywganVzdCB0byBnZXQgYSByZWFsIGNoYXJhY3RlciBpdGVyYXRvci4KKworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yIGltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IKKyAgICB7CisgICAgICAgIHByaXZhdGUgUmVwbGFjZWFibGUgdGV4dDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgYmVnaW47CisgICAgICAgIHByaXZhdGUgaW50IGVuZDsKKyAgICAgICAgLy8gaW52YXJpYW50OiBiZWdpbiA8PSBwb3MgPD0gZW5kCisgICAgICAgIHByaXZhdGUgaW50IHBvczsKKworICAgICAgICAvKioKKyAgICAgICAgKiBDb25zdHJ1Y3RzIGFuIGl0ZXJhdG9yIHdpdGggYW4gaW5pdGlhbCBpbmRleCBvZiAwLgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvcihSZXBsYWNlYWJsZSB0ZXh0KQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzKHRleHQsIDApOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogQ29uc3RydWN0cyBhbiBpdGVyYXRvciB3aXRoIHRoZSBzcGVjaWZpZWQgaW5pdGlhbCBpbmRleC4KKyAgICAgICAgKgorICAgICAgICAqIEBwYXJhbSAgdGV4dCAgIFRoZSBTdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgICAgICAqIEBwYXJhbSAgcG9zICAgIEluaXRpYWwgaXRlcmF0b3IgcG9zaXRpb24KKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3IoUmVwbGFjZWFibGUgdGV4dCwgaW50IHBvcykKKyAgICAgICAgeworICAgICAgICB0aGlzKHRleHQsIDAsIHRleHQubGVuZ3RoKCksIHBvcyk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBDb25zdHJ1Y3RzIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGdpdmVuIHJhbmdlIG9mIHRoZSBnaXZlbiBzdHJpbmcsIHdpdGggdGhlCisgICAgICAgICogaW5kZXggc2V0IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICAgICoKKyAgICAgICAgKiBAcGFyYW0gIHRleHQgICBUaGUgU3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICAgICAgKiBAcGFyYW0gIGJlZ2luICBJbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyCisgICAgICAgICogQHBhcmFtICBlbmQgICAgSW5kZXggb2YgdGhlIGNoYXJhY3RlciBmb2xsb3dpbmcgdGhlIGxhc3QgY2hhcmFjdGVyCisgICAgICAgICogQHBhcmFtICBwb3MgICAgSW5pdGlhbCBpdGVyYXRvciBwb3NpdGlvbgorICAgICAgICAqLworICAgICAgICBwdWJsaWMgUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvcihSZXBsYWNlYWJsZSB0ZXh0LCBpbnQgYmVnaW4sIGludCBlbmQsIGludCBwb3MpIHsKKyAgICAgICAgICAgIGlmICh0ZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisKKyAgICAgICAgICAgIGlmIChiZWdpbiA8IDAgfHwgYmVnaW4gPiBlbmQgfHwgZW5kID4gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgc3Vic3RyaW5nIHJhbmdlIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChwb3MgPCBiZWdpbiB8fCBwb3MgPiBlbmQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHBvc2l0aW9uIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRoaXMuYmVnaW4gPSBiZWdpbjsKKyAgICAgICAgICAgIHRoaXMuZW5kID0gZW5kOworICAgICAgICAgICAgdGhpcy5wb3MgPSBwb3M7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBSZXNldCB0aGlzIGl0ZXJhdG9yIHRvIHBvaW50IHRvIGEgbmV3IHN0cmluZy4gIFRoaXMgcGFja2FnZS12aXNpYmxlCisgICAgICAgICogbWV0aG9kIGlzIHVzZWQgYnkgb3RoZXIgamF2YS50ZXh0IGNsYXNzZXMgdGhhdCB3YW50IHRvIGF2b2lkIGFsbG9jYXRpbmcKKyAgICAgICAgKiBuZXcgUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3RzIGV2ZXJ5IHRpbWUgdGhlaXIgc2V0VGV4dCBtZXRob2QKKyAgICAgICAgKiBpcyBjYWxsZWQuCisgICAgICAgICoKKyAgICAgICAgKiBAcGFyYW0gIHRleHQgICBUaGUgU3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgc2V0VGV4dChSZXBsYWNlYWJsZSB0ZXh0KSB7CisgICAgICAgICAgICBpZiAodGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICAgICAgdGhpcy5iZWdpbiA9IDA7CisgICAgICAgICAgICB0aGlzLmVuZCA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICB0aGlzLnBvcyA9IDA7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmZpcnN0KCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2ZpcnN0CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBjaGFyIGZpcnN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcG9zID0gYmVnaW47CisgICAgICAgICAgICByZXR1cm4gY3VycmVudCgpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5sYXN0KCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2xhc3QKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGNoYXIgbGFzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlbmQgIT0gYmVnaW4pIHsKKyAgICAgICAgICAgICAgICBwb3MgPSBlbmQgLSAxOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwb3MgPSBlbmQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY3VycmVudCgpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5zZXRJbmRleCgpIGZvciBTdHJpbmcuCisgICAgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNzZXRJbmRleAorICAgICAgICAqLworICAgICAgICBwdWJsaWMgY2hhciBzZXRJbmRleChpbnQgcCkKKyAgICAgICAgeworICAgICAgICBpZiAocCA8IGJlZ2luIHx8IHAgPiBlbmQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGluZGV4Iik7CisgICAgICAgIH0KKyAgICAgICAgICAgIHBvcyA9IHA7CisgICAgICAgICAgICByZXR1cm4gY3VycmVudCgpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5jdXJyZW50KCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2N1cnJlbnQKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGNoYXIgY3VycmVudCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChwb3MgPj0gYmVnaW4gJiYgcG9zIDwgZW5kKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRleHQuY2hhckF0KHBvcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IubmV4dCgpIGZvciBTdHJpbmcuCisgICAgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNuZXh0CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBjaGFyIG5leHQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocG9zIDwgZW5kIC0gMSkgeworICAgICAgICAgICAgICAgIHBvcysrOworICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0LmNoYXJBdChwb3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcG9zID0gZW5kOworICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5wcmV2aW91cygpIGZvciBTdHJpbmcuCisgICAgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNwcmV2aW91cworICAgICAgICAqLworICAgICAgICBwdWJsaWMgY2hhciBwcmV2aW91cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChwb3MgPiBiZWdpbikgeworICAgICAgICAgICAgICAgIHBvcy0tOworICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0LmNoYXJBdChwb3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmdldEJlZ2luSW5kZXgoKSBmb3IgU3RyaW5nLgorICAgICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjZ2V0QmVnaW5JbmRleAorICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGdldEJlZ2luSW5kZXgoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYmVnaW47CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLmdldEVuZEluZGV4KCkgZm9yIFN0cmluZy4KKyAgICAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2dldEVuZEluZGV4CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0RW5kSW5kZXgoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZW5kOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbmRleCgpIGZvciBTdHJpbmcuCisgICAgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNnZXRJbmRleAorICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGdldEluZGV4KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHBvczsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIENvbXBhcmVzIHRoZSBlcXVhbGl0eSBvZiB0d28gUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3RzLgorICAgICAgICAqIEBwYXJhbSBvYmogdGhlIFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0IHRvIGJlIGNvbXBhcmVkIHdpdGguCisgICAgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBvYmogaXMgdGhlIHNhbWUgYXMgdGhpcworICAgICAgICAqIFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0OyBmYWxzZSBvdGhlcndpc2UuCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodGhpcyA9PSBvYmopIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghKG9iaiBpbnN0YW5jZW9mIFJlcGxhY2VhYmxlQ2hhcmFjdGVySXRlcmF0b3IpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgPSAoUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvcikgb2JqOworCisgICAgICAgICAgICBpZiAoaGFzaENvZGUoKSAhPSB0aGF0Lmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXRleHQuZXF1YWxzKHRoYXQudGV4dCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocG9zICE9IHRoYXQucG9zIHx8IGJlZ2luICE9IHRoYXQuYmVnaW4gfHwgZW5kICE9IHRoYXQuZW5kKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBDb21wdXRlcyBhIGhhc2hjb2RlIGZvciB0aGlzIGl0ZXJhdG9yLgorICAgICAgICAqIEByZXR1cm4gQSBoYXNoIGNvZGUKKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBoYXNoQ29kZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0Lmhhc2hDb2RlKCkgXiBwb3MgXiBiZWdpbiBeIGVuZDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoaXMgaXRlcmF0b3IuCisgICAgICAgICogQHJldHVybiBBIGNvcHkgb2YgdGhpcworICAgICAgICAqLworICAgICAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkKKyAgICAgICAgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBSZXBsYWNlYWJsZUNoYXJhY3Rlckl0ZXJhdG9yIG90aGVyCisgICAgICAgICAgICAgICAgPSAoUmVwbGFjZWFibGVDaGFyYWN0ZXJJdGVyYXRvcikgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9DYW5vbmljYWxJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2Fub25pY2FsSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YjlkYzJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2Fub25pY2FsSXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDUzMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVVNlcmlhbGl6ZWRTZXQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIFRoaXMgY2xhc3MgYWxsb3dzIG9uZSB0byBpdGVyYXRlIHRocm91Z2ggYWxsIHRoZSBzdHJpbmdzIHRoYXQgYXJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgdG8gYSBnaXZlbgorICogc3RyaW5nLiBGb3IgZXhhbXBsZSwgaGVyZSBhcmUgc29tZSBzYW1wbGUgcmVzdWx0czoKKyAqIFJlc3VsdHMgZm9yOiB7QSBXSVRIIFJJTkcgQUJPVkV9e2R9e0RPVCBBQk9WRX17Q0VESUxMQX0KKyAqIDxwcmU+CisgMToge0F9e1JJTkcgQUJPVkV9e2R9e0RPVCBBQk9WRX17Q0VESUxMQX0KKyAyOiB7QX17UklORyBBQk9WRX17ZH17Q0VESUxMQX17RE9UIEFCT1ZFfQorIDM6IHtBfXtSSU5HIEFCT1ZFfXtkIFdJVEggRE9UIEFCT1ZFfXtDRURJTExBfQorIDQ6IHtBfXtSSU5HIEFCT1ZFfXtkIFdJVEggQ0VESUxMQX17RE9UIEFCT1ZFfQorIDU6IHtBIFdJVEggUklORyBBQk9WRX17ZH17RE9UIEFCT1ZFfXtDRURJTExBfQorIDY6IHtBIFdJVEggUklORyBBQk9WRX17ZH17Q0VESUxMQX17RE9UIEFCT1ZFfQorIDc6IHtBIFdJVEggUklORyBBQk9WRX17ZCBXSVRIIERPVCBBQk9WRX17Q0VESUxMQX0KKyA4OiB7QSBXSVRIIFJJTkcgQUJPVkV9e2QgV0lUSCBDRURJTExBfXtET1QgQUJPVkV9CisgOToge0FOR1NUUk9NIFNJR059e2R9e0RPVCBBQk9WRX17Q0VESUxMQX0KKzEwOiB7QU5HU1RST00gU0lHTn17ZH17Q0VESUxMQX17RE9UIEFCT1ZFfQorMTE6IHtBTkdTVFJPTSBTSUdOfXtkIFdJVEggRE9UIEFCT1ZFfXtDRURJTExBfQorMTI6IHtBTkdTVFJPTSBTSUdOfXtkIFdJVEggQ0VESUxMQX17RE9UIEFCT1ZFfQorICo8L3ByZT4KKyAqPGJyPk5vdGU6IHRoZSBjb2RlIGlzIGludGVuZGVkIGZvciB1c2Ugd2l0aCBzbWFsbCBzdHJpbmdzLCBhbmQgaXMgbm90IHN1aXRhYmxlIGZvciBsYXJnZXIgb25lcywKKyAqIHNpbmNlIGl0IGhhcyBub3QgYmVlbiBvcHRpbWl6ZWQgZm9yIHRoYXQgc2l0dWF0aW9uLgorICogQGF1dGhvciBNLiBEYXZpcworICogQHN0YWJsZSBJQ1UgMi40CisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIENhbm9uaWNhbEl0ZXJhdG9yIHsKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDYW5vbmljYWxJdGVyYXRvciBvYmplY3QKKyAgICAgKiBAcGFyYW0gc291cmNlIHN0cmluZyB0byBnZXQgcmVzdWx0cyBmb3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2Fub25pY2FsSXRlcmF0b3IoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICBzZXRTb3VyY2Uoc291cmNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBORkQgZm9ybSBvZiB0aGUgY3VycmVudCBzb3VyY2Ugd2UgYXJlIGl0ZXJhdGluZyBvdmVyLgorICAgICAqIEByZXR1cm4gZ2V0cyB0aGUgc291cmNlOiBOT1RFOiBpdCBpcyB0aGUgTkZEIGZvcm0gb2YgdGhlIHNvdXJjZSBvcmlnaW5hbGx5IHBhc3NlZCBpbgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U291cmNlKCkgeworICAgICAgcmV0dXJuIHNvdXJjZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldHMgdGhlIGl0ZXJhdG9yIHNvIHRoYXQgb25lIGNhbiBzdGFydCBhZ2FpbiBmcm9tIHRoZSBiZWdpbm5pbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKSB7CisgICAgICAgIGRvbmUgPSBmYWxzZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjdXJyZW50Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBjdXJyZW50W2ldID0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbmV4dCBjYW5vbmljYWxseSBlcXVpdmFsZW50IHN0cmluZy4KKyAgICAgKiA8YnI+PGI+V2FybmluZzogVGhlIHN0cmluZ3MgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIGluIGFueSBwYXJ0aWN1bGFyIG9yZGVyLjwvYj4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IHN0cmluZyB0aGF0IGlzIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQuIFRoZSB2YWx1ZSBudWxsIGlzIHJldHVybmVkIHdoZW4KKyAgICAgKiB0aGUgaXRlcmF0aW9uIGlzIGRvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBuZXh0KCkgeworICAgICAgICBpZiAoZG9uZSkgcmV0dXJuIG51bGw7CisKKyAgICAgICAgLy8gY29uc3RydWN0IHJldHVybiB2YWx1ZQorCisgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7IC8vIGRlbGV0ZSBvbGQgY29udGVudHMKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwaWVjZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQocGllY2VzW2ldW2N1cnJlbnRbaV1dKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcmVzdWx0ID0gYnVmZmVyLnRvU3RyaW5nKCk7CisKKyAgICAgICAgLy8gZmluZCBuZXh0IHZhbHVlIGZvciBuZXh0IHRpbWUKKworICAgICAgICBmb3IgKGludCBpID0gY3VycmVudC5sZW5ndGggLSAxOyA7IC0taSkgeworICAgICAgICAgICAgaWYgKGkgPCAwKSB7CisgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50W2ldKys7CisgICAgICAgICAgICBpZiAoY3VycmVudFtpXSA8IHBpZWNlc1tpXS5sZW5ndGgpIGJyZWFrOyAvLyBnb3Qgc2VxdWVuY2UKKyAgICAgICAgICAgIGN1cnJlbnRbaV0gPSAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGEgbmV3IHNvdXJjZSBmb3IgdGhpcyBpdGVyYXRvci4gQWxsb3dzIG9iamVjdCByZXVzZS4KKyAgICAgKiBAcGFyYW0gbmV3U291cmNlIHRoZSBzb3VyY2Ugc3RyaW5nIHRvIGl0ZXJhdGUgYWdhaW5zdC4gVGhpcyBhbGxvd3MgdGhlIHNhbWUgaXRlcmF0b3IgdG8gYmUgdXNlZAorICAgICAqIHdoaWxlIGNoYW5naW5nIHRoZSBzb3VyY2Ugc3RyaW5nLCBzYXZpbmcgb2JqZWN0IGNyZWF0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNvdXJjZShTdHJpbmcgbmV3U291cmNlKSB7CisgICAgICAgIHNvdXJjZSA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKG5ld1NvdXJjZSwgTm9ybWFsaXplci5ORkQpOworICAgICAgICBkb25lID0gZmFsc2U7CisKKyAgICAgICAgLy8gY2F0Y2ggZGVnZW5lcmF0ZSBjYXNlCisgICAgICAgIGlmIChuZXdTb3VyY2UubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcGllY2VzID0gbmV3IFN0cmluZ1sxXVtdOworICAgICAgICAgICAgY3VycmVudCA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICBwaWVjZXNbMF0gPSBuZXcgU3RyaW5nW117IiJ9OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gZmluZCB0aGUgc2VnbWVudHMKKyAgICAgICAgTGlzdCBzZWdtZW50TGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgaW50IGNwOworICAgICAgICBpbnQgc3RhcnQgPSAwOworCisgICAgICAgIC8vIGkgc2hvdWxkIGJlIHRoZSBlbmQgb2YgdGhlIGZpcnN0IGNvZGUgcG9pbnQKKyAgICAgICAgLy8gYnJlYWsgdXAgdGhlIHN0cmluZyBpbnRvIHNlZ2VtZW50cworCisgICAgICAgIGludCBpID0gVVRGMTYuZmluZE9mZnNldEZyb21Db2RlUG9pbnQoc291cmNlLCAxKTsKKworICAgICAgICBmb3IgKDsgaSA8IHNvdXJjZS5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzb3VyY2UsIGkpOworICAgICAgICAgICAgaWYgKE5vcm1hbGl6ZXJJbXBsLmlzQ2Fub25TYWZlU3RhcnQoY3ApKSB7CisgICAgICAgICAgICAgICAgc2VnbWVudExpc3QuYWRkKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsIGkpKTsgLy8gYWRkIHVwIHRvIGkKKyAgICAgICAgICAgICAgICBzdGFydCA9IGk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc2VnbWVudExpc3QuYWRkKHNvdXJjZS5zdWJzdHJpbmcoc3RhcnQsIGkpKTsgLy8gYWRkIGxhc3Qgb25lCisKKyAgICAgICAgLy8gYWxsb2NhdGUgdGhlIGFycmF5cywgYW5kIGZpbmQgdGhlIHN0cmluZ3MgdGhhdCBhcmUgQ0UgdG8gZWFjaCBzZWdtZW50CisgICAgICAgIHBpZWNlcyA9IG5ldyBTdHJpbmdbc2VnbWVudExpc3Quc2l6ZSgpXVtdOworICAgICAgICBjdXJyZW50ID0gbmV3IGludFtzZWdtZW50TGlzdC5zaXplKCldOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcGllY2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiU0VHTUVOVCIpOworICAgICAgICAgICAgcGllY2VzW2ldID0gZ2V0RXF1aXZhbGVudHMoKFN0cmluZykgc2VnbWVudExpc3QuZ2V0KGkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBwZXJtdXRhdGlvbi4KKyAgICAgKiA8YnI+PGI+V2FybmluZzogVGhlIHN0cmluZ3MgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIGluIGFueSBwYXJ0aWN1bGFyIG9yZGVyLjwvYj4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzdHJpbmcgdG8gZmluZCBwZXJtdXRhdGlvbnMgZm9yCisgICAgICogQHBhcmFtIHNraXBaZXJvcyBzZXQgdG8gdHJ1ZSB0byBza2lwIGNoYXJhY3RlcnMgd2l0aCBjYW5vbmljYWwgY29tYmluaW5nIGNsYXNzIHplcm8KKyAgICAgKiBAcGFyYW0gb3V0cHV0IHRoZSBzZXQgdG8gYWRkIHRoZSByZXN1bHRzIHRvCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHBlcm11dGUoU3RyaW5nIHNvdXJjZSwgYm9vbGVhbiBza2lwWmVyb3MsIFNldCBvdXRwdXQpIHsKKyAgICAgICAgLy8gVE9ETzogb3B0aW1pemUKKyAgICAgICAgLy9pZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiUGVybXV0ZTogIiArIHNvdXJjZSk7CisKKyAgICAgICAgLy8gb3B0aW1pemF0aW9uOgorICAgICAgICAvLyBpZiB6ZXJvIG9yIG9uZSBjaGFyYWN0ZXIsIGp1c3QgcmV0dXJuIGEgc2V0IHdpdGggaXQKKyAgICAgICAgLy8gd2UgY2hlY2sgZm9yIGxlbmd0aCA8IDIgdG8ga2VlcCBmcm9tIGNvdW50aW5nIGNvZGUgcG9pbnRzIGFsbCB0aGUgdGltZQorICAgICAgICBpZiAoc291cmNlLmxlbmd0aCgpIDw9IDIgJiYgVVRGMTYuY291bnRDb2RlUG9pbnQoc291cmNlKSA8PSAxKSB7CisgICAgICAgICAgICBvdXRwdXQuYWRkKHNvdXJjZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBvdGhlcndpc2UgaXRlcmF0ZSB0aHJvdWdoIHRoZSBzdHJpbmcsIGFuZCByZWN1cnNpdmVseSBwZXJtdXRlIGFsbCB0aGUgb3RoZXIgY2hhcmFjdGVycworICAgICAgICBTZXQgc3VicGVybXV0ZSA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzb3VyY2UubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoc291cmNlLCBpKTsKKworICAgICAgICAgICAgLy8gb3B0aW1pemF0aW9uOgorICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciBpcyBjYW5vbmljYWwgY29tYmluaW5nIGNsYXNzIHplcm8sCisgICAgICAgICAgICAvLyBkb24ndCBwZXJtdXRlIGl0CisgICAgICAgICAgICBpZiAoc2tpcFplcm9zICYmIGkgIT0gMCAmJiBVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKGNwKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlNraXBwaW5nICIgKyBVdGlsaXR5LmhleChVVEYxNi52YWx1ZU9mKHNvdXJjZSwgaSkpKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gc2VlIHdoYXQgdGhlIHBlcm11dGF0aW9ucyBvZiB0aGUgY2hhcmFjdGVycyBiZWZvcmUgYW5kIGFmdGVyIHRoaXMgb25lIGFyZQorICAgICAgICAgICAgc3VicGVybXV0ZS5jbGVhcigpOworICAgICAgICAgICAgcGVybXV0ZShzb3VyY2Uuc3Vic3RyaW5nKDAsaSkKKyAgICAgICAgICAgICAgICArIHNvdXJjZS5zdWJzdHJpbmcoaSArIFVURjE2LmdldENoYXJDb3VudChjcCkpLCBza2lwWmVyb3MsIHN1YnBlcm11dGUpOworCisgICAgICAgICAgICAvLyBwcmVmaXggdGhpcyBjaGFyYWN0ZXIgdG8gYWxsIG9mIHRoZW0KKyAgICAgICAgICAgIFN0cmluZyBjaFN0ciA9IFVURjE2LnZhbHVlT2Yoc291cmNlLCBpKTsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3VicGVybXV0ZS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBwaWVjZSA9IGNoU3RyICsgKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIC8vaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIiAgUGllY2U6ICIgKyBwaWVjZSk7CisgICAgICAgICAgICAgICAgb3V0cHV0LmFkZChwaWVjZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBGT1IgVEVTVElORworCisgICAgLyoKKyAgICAgKkByZXR1cm4gdGhlIHNldCBvZiAic2FmZSBzdGFydHMiLCBjaGFyYWN0ZXJzIHRoYXQgYXJlIGNsYXNzIHplcm8gQU5EIGFyZSBuZXZlciBub24taW5pdGlhbCBpbiBhIGRlY29tcG9zaXRpb24uCisgICAgICpAaW50ZXJuYWwKKyAgICAgKgorICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZVNldCBnZXRTYWZlU3RhcnQoKSB7CisgICAgICAgIHJldHVybiAoVW5pY29kZVNldCkgU0FGRV9TVEFSVC5jbG9uZSgpOworICAgIH0KKyAgICAqLworICAgIC8qCisgICAgICpAcmV0dXJuIHRoZSBzZXQgb2YgY2hhcmFjdGVycyB3aG9zZSBkZWNvbXBvc2l0aW9ucyBzdGFydCB3aXRoIHRoZSBnaXZlbiBjaGFyYWN0ZXIKKyAgICAgKkBpbnRlcm5hbAorICAgICAqCisgICAgcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IGdldFN0YXJ0cyhpbnQgY3ApIHsKKyAgICAgICAgVW5pY29kZVNldCByZXN1bHQgPSBBVF9TVEFSVC5nZXQoY3ApOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IEVNUFRZOworICAgICAgICByZXR1cm4gKFVuaWNvZGVTZXQpIHJlc3VsdC5jbG9uZSgpOworICAgIH0KKyAgICAqLworCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09IFBSSVZBVEVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLy8gZGVidWcKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIFBST0dSRVNTID0gZmFsc2U7IC8vIGRlYnVnIHByb2dyZXNzCisgICAgLy9wcml2YXRlIHN0YXRpYyBUcmFuc2xpdGVyYXRvciBOQU1FID0gUFJPR1JFU1MgPyBUcmFuc2xpdGVyYXRvci5nZXRJbnN0YW5jZSgibmFtZSIpIDogbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIFNLSVBfWkVST1MgPSB0cnVlOworCisgICAgLy8gZmllbGRzCisgICAgcHJpdmF0ZSBTdHJpbmcgc291cmNlOworICAgIHByaXZhdGUgYm9vbGVhbiBkb25lOworICAgIHByaXZhdGUgU3RyaW5nW11bXSBwaWVjZXM7CisgICAgcHJpdmF0ZSBpbnRbXSBjdXJyZW50OworICAgIC8vIE5vdGU6IEMgd2lsbCBuZWVkIHR3byBtb3JlIGZpZWxkcywgc2luY2UgYXJyYXlzIHRoZXJlIGRvbid0IGhhdmUgbGVuZ3RocworICAgIC8vIGludCBwaWVjZXNfbGVuZ3RoOworICAgIC8vIGludFtdIHBpZWNlc19sZW5ndGhzOworCisgICAgLy8gdHJhbnNpZW50IGZpZWxkcworICAgIHByaXZhdGUgdHJhbnNpZW50IFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKworICAgIC8vIHdlIGhhdmUgYSBzZWdtZW50LCBpbiBORkQuIEZpbmQgYWxsIHRoZSBzdHJpbmdzIHRoYXQgYXJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgdG8gaXQuCisgICAgcHJpdmF0ZSBTdHJpbmdbXSBnZXRFcXVpdmFsZW50cyhTdHJpbmcgc2VnbWVudCkgeworICAgICAgICBTZXQgcmVzdWx0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgU2V0IGJhc2ljID0gZ2V0RXF1aXZhbGVudHMyKHNlZ21lbnQpOworICAgICAgICBTZXQgcGVybXV0YXRpb25zID0gbmV3IEhhc2hTZXQoKTsKKworICAgICAgICAvLyBub3cgZ2V0IGFsbCB0aGUgcGVybXV0YXRpb25zCisgICAgICAgIC8vIGFkZCBvbmx5IHRoZSBvbmVzIHRoYXQgYXJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQKKyAgICAgICAgLy8gVE9ETzogb3B0aW1pemUgYnkgbm90IHBlcm11dGluZyBhbnkgY2xhc3MgemVyby4KKyAgICAgICAgSXRlcmF0b3IgaXQgPSBiYXNpYy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgIHBlcm11dGF0aW9ucy5jbGVhcigpOworICAgICAgICAgICAgcGVybXV0ZShpdGVtLCBTS0lQX1pFUk9TLCBwZXJtdXRhdGlvbnMpOworICAgICAgICAgICAgSXRlcmF0b3IgaXQyID0gcGVybXV0YXRpb25zLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBwb3NzaWJsZSA9IChTdHJpbmcpIGl0Mi5uZXh0KCk7CisKKy8qCisgICAgICAgICAgICAgICAgU3RyaW5nIGF0dGVtcHQgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShwb3NzaWJsZSwgTm9ybWFsaXplci5ERUNPTVAsIDApOworICAgICAgICAgICAgICAgIGlmIChhdHRlbXB0LmVxdWFscyhzZWdtZW50KSkgeworKi8KKyAgICAgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5jb21wYXJlKHBvc3NpYmxlLCBzZWdtZW50LDApPT0wKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIkFkZGluZyBQZXJtdXRhdGlvbjogIiArIFV0aWxpdHkuaGV4KHBvc3NpYmxlKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQocG9zc2libGUpOworCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIi1Ta2lwcGluZyBQZXJtdXRhdGlvbjogIiArIFV0aWxpdHkuaGV4KHBvc3NpYmxlKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gY29udmVydCBpbnRvIGEgU3RyaW5nW10gdG8gY2xlYW4gdXAgc3RvcmFnZQorICAgICAgICBTdHJpbmdbXSBmaW5hbFJlc3VsdCA9IG5ldyBTdHJpbmdbcmVzdWx0LnNpemUoKV07CisgICAgICAgIHJlc3VsdC50b0FycmF5KGZpbmFsUmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIGZpbmFsUmVzdWx0OworICAgIH0KKworCisgICAgcHJpdmF0ZSBTZXQgZ2V0RXF1aXZhbGVudHMyKFN0cmluZyBzZWdtZW50KSB7CisKKyAgICAgICAgU2V0IHJlc3VsdCA9IG5ldyBIYXNoU2V0KCk7CisKKyAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIkFkZGluZzogIiArIFV0aWxpdHkuaGV4KHNlZ21lbnQpKTsKKworICAgICAgICByZXN1bHQuYWRkKHNlZ21lbnQpOworICAgICAgICBTdHJpbmdCdWZmZXIgd29ya2luZ0J1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvLyBjeWNsZSB0aHJvdWdoIGFsbCB0aGUgY2hhcmFjdGVycworICAgICAgICBpbnQgY3A9MDsKKyAgICAgICAgaW50W10gcmFuZ2UgPSBuZXcgaW50WzJdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNlZ21lbnQubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworCisgICAgICAgICAgICAvLyBzZWUgaWYgYW55IGNoYXJhY3RlciBpcyBhdCB0aGUgc3RhcnQgb2Ygc29tZSBkZWNvbXBvc2l0aW9uCisgICAgICAgICAgICBjcCA9IFVURjE2LmNoYXJBdChzZWdtZW50LCBpKTsKKyAgICAgICAgICAgIFVTZXJpYWxpemVkU2V0IHN0YXJ0cyA9IG5ldyBVU2VyaWFsaXplZFNldCgpOworCisgICAgICAgICAgICBpZiAoIU5vcm1hbGl6ZXJJbXBsLmdldENhbm9uU3RhcnRTZXQoY3AsIHN0YXJ0cykpIHsKKyAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgaj0wOworICAgICAgICAgICAgLy8gaWYgc28sIHNlZSB3aGljaCBkZWNvbXBvc2l0aW9ucyBtYXRjaAorICAgICAgICAgICAgaW50IHJhbmdlQ291bnQgPSBzdGFydHMuY291bnRSYW5nZXMoKTsKKyAgICAgICAgICAgIGZvcihqID0gMDsgaiA8IHJhbmdlQ291bnQ7ICsraikgeworICAgICAgICAgICAgCXN0YXJ0cy5nZXRSYW5nZShqLCByYW5nZSk7CisgICAgICAgICAgICAgICAgaW50IGVuZD1yYW5nZVsxXTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBjcDIgPSByYW5nZVswXTsgY3AyIDw9IGVuZDsgKytjcDIpIHsKKwkgICAgICAgICAgICAgICAgU2V0IHJlbWFpbmRlciA9IGV4dHJhY3QoY3AyLCBzZWdtZW50LCBpLCB3b3JraW5nQnVmZmVyKTsKKwkgICAgICAgICAgICAgICAgaWYgKHJlbWFpbmRlciA9PSBudWxsKSBjb250aW51ZTsKKwkKKwkgICAgICAgICAgICAgICAgLy8gdGhlcmUgd2VyZSBzb21lIG1hdGNoZXMsIHNvIGFkZCBhbGwgdGhlIHBvc3NpYmlsaXRpZXMgdG8gdGhlIHNldC4KKwkgICAgICAgICAgICAgICAgU3RyaW5nIHByZWZpeD0gc2VnbWVudC5zdWJzdHJpbmcoMCxpKTsKKwkgICAgICAgICAgICAgICAgcHJlZml4ICs9IFVURjE2LnZhbHVlT2YoY3AyKTsKKwkgICAgICAgICAgICAgICAgLy9pbnQgZWwgPSAtMTsKKwkgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IHJlbWFpbmRlci5pdGVyYXRvcigpOworCSAgICAgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKwkgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpdGVtID0gKFN0cmluZykgaXRlci5uZXh0KCk7CisJICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdG9BZGQgPSBuZXcgU3RyaW5nKHByZWZpeCk7CisJICAgICAgICAgICAgICAgICAgICB0b0FkZCArPSBpdGVtOworCSAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCh0b0FkZCk7CisJICAgICAgICAgICAgICAgICAgICAvL2lmIChQUk9HUkVTUykgcHJpbnRmKCJBZGRpbmc6ICVzXG4iLCBVVG9TKFRyKCp0b0FkZCkpKTsKKwkgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAvKgorICAgICAgICBTZXQgcmVzdWx0ID0gbmV3IEhhc2hTZXQoKTsKKyAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIkFkZGluZzogIiArIE5BTUUudHJhbnNsaXRlcmF0ZShzZWdtZW50KSk7CisgICAgICAgIHJlc3VsdC5hZGQoc2VnbWVudCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciB3b3JraW5nQnVmZmVyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vIGN5Y2xlIHRocm91Z2ggYWxsIHRoZSBjaGFyYWN0ZXJzCisgICAgICAgIGludCBjcDsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNlZ21lbnQubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgLy8gc2VlIGlmIGFueSBjaGFyYWN0ZXIgaXMgYXQgdGhlIHN0YXJ0IG9mIHNvbWUgZGVjb21wb3NpdGlvbgorICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQoc2VnbWVudCwgaSk7CisgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRDYW5vblN0YXJ0U2V0KGMsZmlsbFNldCkKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgc3RhcnRzID0gQVRfU1RBUlQuZ2V0KGNwKTsKKyAgICAgICAgICAgIGlmIChzdGFydHMgPT0gbnVsbCkgY29udGludWU7CisgICAgICAgICAgICBVbmljb2RlU2V0SXRlcmF0b3IgdXNpID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcihzdGFydHMpOworICAgICAgICAgICAgLy8gaWYgc28sIHNlZSB3aGljaCBkZWNvbXBvc2l0aW9ucyBtYXRjaAorICAgICAgICAgICAgd2hpbGUgKHVzaS5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgY3AyID0gdXNpLmNvZGVwb2ludDsKKyAgICAgICAgICAgICAgICAvLyB3ZSBrbm93IHRoYXQgdGhlcmUgYXJlIG5vIHN0cmluZ3MgaW4gaXQKKyAgICAgICAgICAgICAgICAvLyBzbyB3ZSBkb24ndCBoYXZlIHRvIGNoZWNrIENoYXJhY3Rlckl0ZXJhdG9yLklTX1NUUklORworICAgICAgICAgICAgICAgIFNldCByZW1haW5kZXIgPSBleHRyYWN0KGNwMiwgc2VnbWVudCwgaSwgd29ya2luZ0J1ZmZlcik7CisgICAgICAgICAgICAgICAgaWYgKHJlbWFpbmRlciA9PSBudWxsKSBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIC8vIHRoZXJlIHdlcmUgc29tZSBtYXRjaGVzLCBzbyBhZGQgYWxsIHRoZSBwb3NzaWJpbGl0aWVzIHRvIHRoZSBzZXQuCisgICAgICAgICAgICAgICAgU3RyaW5nIHByZWZpeCA9IHNlZ21lbnQuc3Vic3RyaW5nKDAsIGkpICsgVVRGMTYudmFsdWVPZihjcDIpOworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gcmVtYWluZGVyLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaXRlbSA9IChTdHJpbmcpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIkFkZGluZzogIiArIE5BTUUudHJhbnNsaXRlcmF0ZShwcmVmaXggKyBpdGVtKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQocHJlZml4ICsgaXRlbSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICovCisgICAgfQorCisgICAgLyoqCisgICAgICogU2VlIGlmIHRoZSBkZWNvbXBvc2l0aW9uIG9mIGNwMiBpcyBhdCBzZWdtZW50IHN0YXJ0aW5nIGF0IHNlZ21lbnRQb3MKKyAgICAgKiAod2l0aCBjYW5vbmljYWwgcmVhcnJhbmdtZW50ISkKKyAgICAgKiBJZiBzbywgdGFrZSB0aGUgcmVtYWluZGVyLCBhbmQgcmV0dXJuIHRoZSBlcXVpdmFsZW50cworICAgICAqLworICAgIHByaXZhdGUgU2V0IGV4dHJhY3QoaW50IGNvbXAsIFN0cmluZyBzZWdtZW50LCBpbnQgc2VnbWVudFBvcywgU3RyaW5nQnVmZmVyIGJ1ZmZlcikgeworICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiIGV4dHJhY3Q6ICIgKyBVdGlsaXR5LmhleChVVEYxNi52YWx1ZU9mKGNvbXApKQorICAgICAgICAgICAgKyAiLCAiICsgVXRpbGl0eS5oZXgoc2VnbWVudC5zdWJzdHJpbmcoc2VnbWVudFBvcykpKTsKKworICAgICAgICAvL1N0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShVVEYxNi52YWx1ZU9mKGNvbXApLCBOb3JtYWxpemVyLkRFQ09NUCwgMCk7CisgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShjb21wLCBOb3JtYWxpemVyLk5GRCk7CisKKyAgICAgICAgLy8gU2VlIGlmIGl0IG1hdGNoZXMgdGhlIHN0YXJ0IG9mIHNlZ21lbnQgKGF0IHNlZ21lbnRQb3MpCisgICAgICAgIGJvb2xlYW4gb2sgPSBmYWxzZTsKKyAgICAgICAgaW50IGNwOworICAgICAgICBpbnQgZGVjb21wUG9zID0gMDsKKyAgICAgICAgaW50IGRlY29tcENwID0gVVRGMTYuY2hhckF0KGRlY29tcCwwKTsKKyAgICAgICAgZGVjb21wUG9zICs9IFVURjE2LmdldENoYXJDb3VudChkZWNvbXBDcCk7IC8vIGFkanVzdCBwb3NpdGlvbiB0byBza2lwIGZpcnN0IGNoYXIKKyAgICAgICAgLy9pbnQgZGVjb21wQ2xhc3MgPSBnZXRDbGFzcyhkZWNvbXBDcCk7CisgICAgICAgIGJ1ZmZlci5zZXRMZW5ndGgoMCk7IC8vIGluaXRpYWxpemUgd29ya2luZyBidWZmZXIsIHNoYXJlZCBhbW9uZyBjYWxsZWVzCisKKyAgICAgICAgZm9yIChpbnQgaSA9IHNlZ21lbnRQb3M7IGkgPCBzZWdtZW50Lmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHNlZ21lbnQsIGkpOworICAgICAgICAgICAgaWYgKGNwID09IGRlY29tcENwKSB7IC8vIGlmIGVxdWFsLCBlYXQgYW5vdGhlciBjcCBmcm9tIGRlY29tcAorICAgICAgICAgICAgICAgIGlmIChQUk9HUkVTUykgU3lzdGVtLm91dC5wcmludGxuKCIgIG1hdGNoZXM6ICIgKyBVdGlsaXR5LmhleChVVEYxNi52YWx1ZU9mKGNwKSkpOworICAgICAgICAgICAgICAgIGlmIChkZWNvbXBQb3MgPT0gZGVjb21wLmxlbmd0aCgpKSB7IC8vIGRvbmUsIGhhdmUgYWxsIGRlY29tcCBjaGFyYWN0ZXJzIQorICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKHNlZ21lbnQuc3Vic3RyaW5nKGkgKyBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSk7IC8vIGFkZCByZW1haW5pbmcgc2VnbWVudCBjaGFycworICAgICAgICAgICAgICAgICAgICBvayA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkZWNvbXBDcCA9IFVURjE2LmNoYXJBdChkZWNvbXAsIGRlY29tcFBvcyk7CisgICAgICAgICAgICAgICAgZGVjb21wUG9zICs9IFVURjE2LmdldENoYXJDb3VudChkZWNvbXBDcCk7CisgICAgICAgICAgICAgICAgLy9kZWNvbXBDbGFzcyA9IGdldENsYXNzKGRlY29tcENwKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIiAgYnVmZmVyOiAiICsgVXRpbGl0eS5oZXgoVVRGMTYudmFsdWVPZihjcCkpKTsKKyAgICAgICAgICAgICAgICAvLyBicnV0ZSBmb3JjZSBhcHByb2FjaAorICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWZmZXIsIGNwKTsKKyAgICAgICAgICAgICAgICAvKiBUT0RPOiBvcHRpbWl6ZQorICAgICAgICAgICAgICAgIC8vIHNpbmNlIHdlIGtub3cgdGhhdCB0aGUgY2xhc3NlcyBhcmUgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nLCBhZnRlciB6ZXJvCisgICAgICAgICAgICAgICAgLy8gZS5nLiAwIDUgNyA5IDAgMworICAgICAgICAgICAgICAgIC8vIHdlIGNhbiBkbyBhbiBvcHRpbWl6YXRpb24KKyAgICAgICAgICAgICAgICAvLyB0aGVyZSBhcmUgb25seSBhIGZldyBjYXNlcyB0aGF0IHdvcms6IHplcm8sIGxlc3MsIHNhbWUsIGdyZWF0ZXIKKyAgICAgICAgICAgICAgICAvLyBpZiBib3RoIGNsYXNzZXMgYXJlIHRoZSBzYW1lLCB3ZSBmYWlsCisgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGRlY29tcCBjbGFzcyA8IHRoZSBzZWdtZW50IGNsYXNzLCB3ZSBmYWlsCisKKyAgICAgICAgICAgICAgICBzZWdDbGFzcyA9IGdldENsYXNzKGNwKTsKKyAgICAgICAgICAgICAgICBpZiAoZGVjb21wQ2xhc3MgPD0gc2VnQ2xhc3MpIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFvaykgcmV0dXJuIG51bGw7IC8vIHdlIGZhaWxlZCwgY2hhcmFjdGVycyBsZWZ0IG92ZXIKKyAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oIk1hdGNoZXMiKTsKKyAgICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgoKSA9PSAwKSByZXR1cm4gU0VUX1dJVEhfTlVMTF9TVFJJTkc7IC8vIHN1Y2NlZWQsIGJ1dCBubyByZW1haW5kZXIKKyAgICAgICAgU3RyaW5nIHJlbWFpbmRlciA9IGJ1ZmZlci50b1N0cmluZygpOworCisgICAgICAgIC8vIGJydXRlIGZvcmNlIGFwcHJvYWNoCisgICAgICAgIC8vIHRvIGNoZWNrIHRvIG1ha2Ugc3VyZSByZXN1bHQgaXMgY2Fub25pY2FsbHkgZXF1aXZhbGVudAorICAgICAgICAvKgorICAgICAgICBTdHJpbmcgdHJpYWwgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShVVEYxNi52YWx1ZU9mKGNvbXApICsgcmVtYWluZGVyLCBOb3JtYWxpemVyLkRFQ09NUCwgMCk7CisgICAgICAgIGlmICghc2VnbWVudC5yZWdpb25NYXRjaGVzKHNlZ21lbnRQb3MsIHRyaWFsLCAwLCBzZWdtZW50Lmxlbmd0aCgpIC0gc2VnbWVudFBvcykpIHJldHVybiBudWxsOworICAgICAgICAqLworCisgICAgICAgIGlmICgwIT1Ob3JtYWxpemVyLmNvbXBhcmUoVVRGMTYudmFsdWVPZihjb21wKSArIHJlbWFpbmRlciwgc2VnbWVudC5zdWJzdHJpbmcoc2VnbWVudFBvcyksIDApKSByZXR1cm4gbnVsbDsKKworICAgICAgICAvLyBnZXQgdGhlIHJlbWFpbmluZyBjb21iaW5hdGlvbnMKKyAgICAgICAgcmV0dXJuIGdldEVxdWl2YWxlbnRzMihyZW1haW5kZXIpOworICAgIH0KKworICAgIC8qCisgICAgLy8gVE9ETzogZml4IG9uY2Ugd2UgaGF2ZSBhIGNvZGVwb2ludCBpbnRlcmZhY2UgdG8gZ2V0IHRoZSBjYW5vbmljYWwgY29tYmluaW5nIGNsYXNzCisgICAgLy8gVE9ETzogTmVlZCBwdWJsaWMgYWNjZXNzIHRvIGNhbm9uaWNhbCBjb21iaW5pbmcgY2xhc3MgaW4gVUNoYXJhY3RlciEKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0Q2xhc3MoaW50IGNwKSB7CisgICAgICAgIHJldHVybiBOb3JtYWxpemVyLmdldENsYXNzKChjaGFyKWNwKTsKKyAgICB9CisgICAgKi8KKworICAgLy8gPT09PT09PT09PT09PT09PT0gQlVJTERFUiA9PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gVE9ETzogRmxhdHRlbiB0aGlzIGRhdGEgc28gaXQgZG9lc24ndCBoYXZlIHRvIGJlIHJlY29uc3RydWN0ZWQgZWFjaCB0aW1lIQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVW5pY29kZVNldCBFTVBUWSA9IG5ldyBVbmljb2RlU2V0KCk7IC8vIGNvbnN0YW50LCBkb24ndCBjaGFuZ2UKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTZXQgU0VUX1dJVEhfTlVMTF9TVFJJTkcgPSBuZXcgSGFzaFNldCgpOyAvLyBjb25zdGFudCwgZG9uJ3QgY2hhbmdlCisgICAgc3RhdGljIHsKKyAgICAgICAgU0VUX1dJVEhfTlVMTF9TVFJJTkcuYWRkKCIiKTsKKyAgICB9CisKKyAgLy8gIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgU0FGRV9TVEFSVCA9IG5ldyBVbmljb2RlU2V0KCk7CisgIC8vICBwcml2YXRlIHN0YXRpYyBDaGFyTWFwIEFUX1NUQVJUID0gbmV3IENoYXJNYXAoKTsKKworICAgICAgICAvLyBUT0RPOiBXQVJOSU5HLCBOT1JNQUxJWkVSIGRvZXNuJ3QgaGF2ZSBzdXBwbGVtZW50YXJpZXMgeWV0ICEhOworICAgICAgICAvLyBDaGFuZ2UgRkZGRiB0byAxMEZGRkYgaW4gQywgYW5kIGluIEphdmEgd2hlbiBub3JtYWxpemVyIGlzIHVwZ3JhZGVkLgorICAvLyAgcHJpdmF0ZSBzdGF0aWMgaW50IExBU1RfVU5JQ09ERSA9IDB4MTBGRkZGOworICAgIC8qCisgICAgc3RhdGljIHsKKyAgICAgICAgYnVpbGREYXRhKCk7CisgICAgfQorICAgICovCisgICAgLyoKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGJ1aWxkRGF0YSgpIHsKKworICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigiR2V0dGluZyBTYWZlIFN0YXJ0Iik7CisgICAgICAgIGZvciAoaW50IGNwID0gMDsgY3AgPD0gTEFTVF9VTklDT0RFOyArK2NwKSB7CisgICAgICAgICAgICBpZiAoUFJPR1JFU1MgJiAoY3AgJiAweDdGRikgPT0gMCkgU3lzdGVtLm91dC5wcmludCgnLicpOworICAgICAgICAgICAgaW50IGNjID0gVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhjcCk7CisgICAgICAgICAgICBpZiAoY2MgPT0gMCkgU0FGRV9TVEFSVC5hZGQoY3ApOworICAgICAgICAgICAgLy8gd2lsbCBmaXggdG8gYmUgcmVhbGx5IHNhZmUgYmVsb3cKKyAgICAgICAgfQorICAgICAgICBpZiAoUFJPR1JFU1MpIFN5c3RlbS5vdXQucHJpbnRsbigpOworCisgICAgICAgIGlmIChQUk9HUkVTUykgU3lzdGVtLm91dC5wcmludGxuKCJHZXR0aW5nIENvbnRhaW5tZW50Iik7CisgICAgICAgIGZvciAoaW50IGNwID0gMDsgY3AgPD0gTEFTVF9VTklDT0RFOyArK2NwKSB7CisgICAgICAgICAgICBpZiAoUFJPR1JFU1MgJiAoY3AgJiAweDdGRikgPT0gMCkgU3lzdGVtLm91dC5wcmludCgnLicpOworCisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5pc05vcm1hbGl6ZWQoY3AsIE5vcm1hbGl6ZXIuTkZEKSkgY29udGludWU7CisKKyAgICAgICAgICAgIC8vU3RyaW5nIGlzdHIgPSBVVEYxNi52YWx1ZU9mKGNwKTsKKyAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLm5vcm1hbGl6ZShjcCwgTm9ybWFsaXplci5ORkQpOworICAgICAgICAgICAgLy9pZiAoZGVjb21wLmVxdWFscyhpc3RyKSkgY29udGludWU7CisKKyAgICAgICAgICAgIC8vIGFkZCBlYWNoIGNoYXJhY3RlciBpbiB0aGUgZGVjb21wb3NpdGlvbiB0byBjYW5CZUluCisKKyAgICAgICAgICAgIGludCBjb21wb25lbnQ7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY29tcC5sZW5ndGgoKTsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY29tcG9uZW50KSkgeworICAgICAgICAgICAgICAgIGNvbXBvbmVudCA9IFVURjE2LmNoYXJBdChkZWNvbXAsIGkpOworICAgICAgICAgICAgICAgIGlmIChpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgQVRfU1RBUlQuYWRkKGNvbXBvbmVudCwgY3ApOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhjb21wb25lbnQpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgU0FGRV9TVEFSVC5yZW1vdmUoY29tcG9uZW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKFBST0dSRVNTKSBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICB9CisgICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgaXMganVzdCBmb3IgYSBtYXAgZnJvbSBjaGFyYWN0ZXJzIHRvIGEgc2V0IG9mIGNoYXJhY3RlcnMKKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIENoYXJNYXAgeworICAgICAgICBNYXAgc3RvcmFnZSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIE11dGFibGVJbnQgcHJvYmUgPSBuZXcgTXV0YWJsZUludCgpOworICAgICAgICBib29sZWFuIGNvbnZlcnRlZCA9IGZhbHNlOworCisgICAgICAgIHB1YmxpYyB2b2lkIGFkZChpbnQgY3AsIGludCB3aGF0SXRJc0luKSB7CisgICAgICAgICAgICBVbmljb2RlU2V0IHJlc3VsdCA9IChVbmljb2RlU2V0KSBzdG9yYWdlLmdldChwcm9iZS5zZXQoY3ApKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICAgICAgc3RvcmFnZS5wdXQocHJvYmUsIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYWRkKHdoYXRJdElzSW4pOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0KGludCBjcCkgeworICAgICAgICAgICAgcmV0dXJuIChVbmljb2RlU2V0KSBzdG9yYWdlLmdldChwcm9iZS5zZXQoY3ApKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE11dGFibGVJbnQgeworICAgICAgICBwdWJsaWMgaW50IGNvbnRlbnRzOworICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeyByZXR1cm4gY29udGVudHM7IH0KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvdGhlcikgeworICAgICAgICAgICAgcmV0dXJuICgoTXV0YWJsZUludClvdGhlcikuY29udGVudHMgPT0gY29udGVudHM7CisgICAgICAgIH0KKyAgICAgICAgLy8gYWxsb3dzIGNoYWluaW5nCisgICAgICAgIHB1YmxpYyBNdXRhYmxlSW50IHNldChpbnQgY29udGVudHMpIHsKKyAgICAgICAgICAgIHRoaXMuY29udGVudHMgPSBjb250ZW50czsKKyAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgfQorICAgICovCisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXREZXRlY3Rvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldERldGVjdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE1M2RlOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXREZXRlY3Rvci5qYXZhCkBAIC0wLDAgKzEsNTM5IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKKworCisvKioKKyAqIDxjb2RlPkNoYXJzZXREZXRlY3RvcjwvY29kZT4gcHJvdmlkZXMgYSBmYWNpbGl0eSBmb3IgZGV0ZWN0aW5nIHRoZQorICogY2hhcnNldCBvciBlbmNvZGluZyBvZiBjaGFyYWN0ZXIgZGF0YSBpbiBhbiB1bmtub3duIGZvcm1hdC4KKyAqIFRoZSBpbnB1dCBkYXRhIGNhbiBlaXRoZXIgYmUgZnJvbSBhbiBpbnB1dCBzdHJlYW0gb3IgYW4gYXJyYXkgb2YgYnl0ZXMuCisgKiBUaGUgcmVzdWx0IG9mIHRoZSBkZXRlY3Rpb24gb3BlcmF0aW9uIGlzIGEgbGlzdCBvZiBwb3NzaWJseSBtYXRjaGluZworICogY2hhcnNldHMsIG9yLCBmb3Igc2ltcGxlIHVzZSwgeW91IGNhbiBqdXN0IGFzayBmb3IgYSBKYXZhIFJlYWRlciB0aGF0CisgKiB3aWxsIHdpbGwgd29yayBvdmVyIHRoZSBpbnB1dCBkYXRhLgorICogPHAvPgorICogQ2hhcmFjdGVyIHNldCBkZXRlY3Rpb24gaXMgYXQgYmVzdCBhbiBpbXByZWNpc2Ugb3BlcmF0aW9uLiAgVGhlIGRldGVjdGlvbgorICogcHJvY2VzcyB3aWxsIGF0dGVtcHQgdG8gaWRlbnRpZnkgdGhlIGNoYXJzZXQgdGhhdCBiZXN0IG1hdGNoZXMgdGhlIGNoYXJhY3RlcmlzdGljcworICogb2YgdGhlIGJ5dGUgZGF0YSwgYnV0IHRoZSBwcm9jZXNzIGlzIHBhcnRseSBzdGF0aXN0aWNhbCBpbiBuYXR1cmUsIGFuZAorICogdGhlIHJlc3VsdHMgY2FuIG5vdCBiZSBndWFyYW50ZWVkIHRvIGFsd2F5cyBiZSBjb3JyZWN0LgorICogPHAvPgorICogRm9yIGJlc3QgYWNjdXJhY3kgaW4gY2hhcnNldCBkZXRlY3Rpb24sIHRoZSBpbnB1dCBkYXRhIHNob3VsZCBiZSBwcmltYXJpbHkKKyAqIGluIGEgc2luZ2xlIGxhbmd1YWdlLCBhbmQgYSBtaW5pbXVtIG9mIGEgZmV3IGh1bmRyZWQgYnl0ZXMgd29ydGggb2YgcGxhaW4gdGV4dAorICogaW4gdGhlIGxhbmd1YWdlIGFyZSBuZWVkZWQuICBUaGUgZGV0ZWN0aW9uIHByb2Nlc3Mgd2lsbCBhdHRlbXB0IHRvCisgKiBpZ25vcmUgaHRtbCBvciB4bWwgc3R5bGUgbWFya3VwIHRoYXQgY291bGQgb3RoZXJ3aXNlIG9ic2N1cmUgdGhlIGNvbnRlbnQuCisgKiA8cC8+CisgKiBAZHJhZnQgSUNVIDMuNAorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBjbGFzcyBDaGFyc2V0RGV0ZWN0b3IgeworCisvLyAgIFF1ZXN0aW9uOiBTaG91bGQgd2UgaGF2ZSBnZXR0ZXJzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNldHRlcnMgZm9yIGludXQgdGV4dAorLy8gICBhbmQgZGVjbGFyZWQgZW5jb2Rpbmc/CisKKy8vICAgQSB0aG91Z2h0OiBJZiB3ZSB3ZXJlIHRvIGNyZWF0ZSBvdXIgb3duIHR5cGUgb2YgSmF2YSBSZWFkZXIsIHdlIGNvdWxkIGRlZmVyCisvLyAgIGZpZ3VyaW5nIG91dCBhbiBhY3R1YWwgY2hhcnNldCBmb3IgZGF0YSB0aGF0IHN0YXJ0cyBvdXQgd2l0aCB0b28gbXVjaCBFbmdsaXNoCisvLyAgIG9ubHkgQVNDSUkgdW50aWwgdGhlIHVzZXIgYWN0dWFsbHkgcmVhZCB0aHJvdWdoIHRvIHNvbWV0aGluZyB0aGF0IGRpZG4ndCBsb29rCisvLyAgIGxpa2UgNyBiaXQgRW5nbGlzaC4gIElmICBub3RoaW5nIGVsc2UgZXZlciBhcHBlYXJlZCwgd2Ugd291bGQgbmV2ZXIgbmVlZCB0bworLy8gICBhY3R1YWxseSBjaG9vc2UgdGhlICJyZWFsIiBjaGFyc2V0LiAgQWxsIGFzc3VtaW5nIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGp1c3QKKy8vICAgd2FudHMgdGhlIGRhdGEsIGFuZCBkb2Vzbid0IGNhcmUgYWJvdXQgYSBjaGFyIHNldCBuYW1lLgorCisgICAgLyoqCisgICAgICogICBDb25zdHJ1Y3RvcgorICAgICAqIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENoYXJzZXREZXRlY3RvcigpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRlY2xhcmVkIGVuY29kaW5nIGZvciBjaGFyc2V0IGRldGVjdGlvbi4KKyAgICAgKiAgVGhlIGRlY2xhcmVkIGVuY29kaW5nIG9mIGFuIGlucHV0IHRleHQgaXMgYW4gZW5jb2Rpbmcgb2J0YWluZWQKKyAgICAgKiAgZnJvbSBhbiBodHRwIGhlYWRlciBvciB4bWwgZGVjbGFyYXRpb24gb3Igc2ltaWxhciBzb3VyY2UgdGhhdAorICAgICAqICBjYW4gYmUgcHJvdmlkZWQgYXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byB0aGUgY2hhcnNldCBkZXRlY3Rvci4gIAorICAgICAqICBBIG1hdGNoIGJldHdlZW4gYSBkZWNsYXJlZCBlbmNvZGluZyBhbmQgYSBwb3NzaWJsZSBkZXRlY3RlZCBlbmNvZGluZworICAgICAqICB3aWxsIHJhaXNlIHRoZSBxdWFsaXR5IG9mIHRoYXQgZGV0ZWN0ZWQgZW5jb2RpbmcgYnkgYSBzbWFsbCBkZWx0YSwKKyAgICAgKiAgYW5kIHdpbGwgYWxzbyBhcHBlYXIgYXMgYSAicmVhc29uIiBmb3IgdGhlIG1hdGNoLgorICAgICAqIDxwLz4KKyAgICAgKiBBIGRlY2xhcmVkIGVuY29kaW5nIHRoYXQgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGlucHV0IGRhdGEgYmVpbmcKKyAgICAgKiBhbmFseXplZCB3aWxsIG5vdCBiZSBhZGRlZCB0byB0aGUgbGlzdCBvZiBwb3NzaWJsZSBlbmNvZGluZ3MuCisgICAgICogCisgICAgICogIEBwYXJhbSBlbmNvZGluZyBUaGUgZGVjbGFyZWQgZW5jb2RpbmcgCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDaGFyc2V0RGV0ZWN0b3Igc2V0RGVjbGFyZWRFbmNvZGluZyhTdHJpbmcgZW5jb2RpbmcpIHsKKyAgICAgICAgZkRlY2xhcmVkRW5jb2RpbmcgPSBlbmNvZGluZzsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgaW5wdXQgdGV4dCAoYnl0ZSkgZGF0YSB3aG9zZSBjaGFyc2V0IGlzIHRvIGJlIGRldGVjdGVkLgorICAgICAqIAorICAgICAqIEBwYXJhbSBpbiB0aGUgaW5wdXQgdGV4dCBvZiB1bmtub3duIGVuY29kaW5nCisgICAgICogCisgICAgICogQHJldHVybiBUaGlzIENoYXJzZXREZXRlY3RvcgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcnNldERldGVjdG9yIHNldFRleHQoYnl0ZSBbXSBpbikgeworICAgICAgICBmUmF3SW5wdXQgID0gaW47CisgICAgICAgIGZSYXdMZW5ndGggPSBpbi5sZW5ndGg7CisgICAgICAgIAorICAgICAgICBNdW5nZUlucHV0KCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtCdWZTaXplID0gODAwMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaW5wdXQgdGV4dCAoYnl0ZSkgZGF0YSB3aG9zZSBjaGFyc2V0IGlzIHRvIGJlIGRldGVjdGVkLgorICAgICAqICA8cC8+CisgICAgICogICBUaGUgaW5wdXQgc3RyZWFtIHRoYXQgc3VwcGxpZXMgdGhlIGNoYXJhY3RlciBkYXRhIG11c3QgaGF2ZSBtYXJrU3VwcG9ydGVkKCkKKyAgICAgKiAgID09IHRydWU7IHRoZSBjaGFyc2V0IGRldGVjdGlvbiBwcm9jZXNzIHdpbGwgcmVhZCBhIHNtYWxsIGFtb3VudCBvZiBkYXRhLAorICAgICAqICAgdGhlbiByZXR1cm4gdGhlIHN0cmVhbSB0byBpdHMgb3JpZ2luYWwgcG9zaXRpb24gdmlhCisgICAgICogICB0aGUgSW5wdXRTdHJlYW0ucmVzZXQoKSBvcGVyYXRpb24uICBUaGUgZXhhY3QgYW1vdW50IHRoYXQgd2lsbAorICAgICAqICAgYmUgcmVhZCBkZXBlbmRzIG9uIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIGRhdGEgaXRzZWxmLgorICAgICAqCisgICAgICogQHBhcmFtIGluIHRoZSBpbnB1dCB0ZXh0IG9mIHVua25vd24gZW5jb2RpbmcKKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIFRoaXMgQ2hhcnNldERldGVjdG9yCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIAorICAgIHB1YmxpYyBDaGFyc2V0RGV0ZWN0b3Igc2V0VGV4dChJbnB1dFN0cmVhbSBpbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZklucHV0U3RyZWFtID0gaW47CisgICAgICAgIGZJbnB1dFN0cmVhbS5tYXJrKGtCdWZTaXplKTsKKyAgICAgICAgZlJhd0lucHV0ID0gbmV3IGJ5dGVba0J1ZlNpemVdOyAgIC8vIEFsd2F5cyBtYWtlIGEgbmV3IGJ1ZmZlciBiZWNhdXNlIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBwcmV2aW91cyBvbmUgbWF5IGhhdmUgY29tZSBmcm9tIHRoZSBjYWxsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGluIHdoaWNoIGNhc2Ugd2UgY2FuJ3QgdG91Y2ggaXQuCisgICAgICAgIGZSYXdMZW5ndGggPSAwOworICAgICAgICBpbnQgcmVtYWluaW5nTGVuZ3RoID0ga0J1ZlNpemU7CisgICAgICAgIHdoaWxlIChyZW1haW5pbmdMZW5ndGggPiAwICkgeworICAgICAgICAgICAgLy8gcmVhZCgpIG1heSBnaXZlIGRhdGEgaW4gc21hbGxpc2ggY2h1bmtzLCBlc3AuIGZvciByZW1vdGUgc291cmNlcy4gIEhlbmNlLCB0aGlzIGxvb3AuCisgICAgICAgICAgICBpbnQgIGJ5dGVzUmVhZCA9IGZJbnB1dFN0cmVhbS5yZWFkKGZSYXdJbnB1dCwgZlJhd0xlbmd0aCwgcmVtYWluaW5nTGVuZ3RoKTsKKyAgICAgICAgICAgIGlmIChieXRlc1JlYWQgPD0gMCkgeworICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZSYXdMZW5ndGggKz0gYnl0ZXNSZWFkOworICAgICAgICAgICAgcmVtYWluaW5nTGVuZ3RoIC09IGJ5dGVzUmVhZDsKKyAgICAgICAgfQorICAgICAgICBmSW5wdXRTdHJlYW0ucmVzZXQoKTsKKyAgICAgICAgCisgICAgICAgIE11bmdlSW5wdXQoKTsgICAgICAgICAgICAgICAgICAgICAvLyBTdHJpcCBodG1sIG1hcmt1cCwgY29sbGVjdCBieXRlIHN0YXRzLgorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyc2V0IHRoYXQgYmVzdCBtYXRjaGVzIHRoZSBzdXBwbGllZCBpbnB1dCBkYXRhLgorICAgICAqIAorICAgICAqIE5vdGUgdGhvdWdoLCB0aGF0IGJlY2F1c2UgdGhlIGRldGVjdGlvbiAKKyAgICAgKiBvbmx5IGxvb2tzIGF0IHRoZSBzdGFydCBvZiB0aGUgaW5wdXQgZGF0YSwKKyAgICAgKiB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoYXQgdGhlIHJldHVybmVkIGNoYXJzZXQgd2lsbCBmYWlsIHRvIGhhbmRsZQorICAgICAqIHRoZSBmdWxsIHNldCBvZiBpbnB1dCBkYXRhLgorICAgICAqIDxwLz4KKyAgICAgKiBSYWlzZSBhbiBleGNlcHRpb24gaWYgCisgICAgICogIDx1bD4KKyAgICAgKiAgICA8bGk+bm8gY2hhcnNldCBhcHBlYXJzIHRvIG1hdGNoIHRoZSBkYXRhLjwvbGk+CisgICAgICogICAgPGxpPm5vIGlucHV0IHRleHQgaGFzIGJlZW4gcHJvdmlkZWQ8L2xpPgorICAgICAqICA8L3VsPgorICAgICAqCisgICAgICogQHJldHVybiBhIENoYXJzZXRNYXRjaCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBiZXN0IG1hdGNoaW5nIGNoYXJzZXQsIG9yCisgICAgICogICAgICAgICA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hlcy4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENoYXJzZXRNYXRjaCBkZXRlY3QoKSB7CisvLyAgIFRPRE86ICBBIGJldHRlciBpbXBsZW1lbnRhdGlvbiB3b3VsZCBiZSB0byBjb3B5IHRoZSBkZXRlY3QgbG9vcCBmcm9tCisvLyAgICAgICAgICBkZXRlY3RBbGwoKSwgYW5kIGN1dCBpdCBzaG9ydCBhcyBzb29uIGFzIGEgbWF0Y2ggd2l0aCBhIGhpZ2ggY29uZmlkZW5jZQorLy8gICAgICAgICAgaXMgZm91bmQuICBUaGlzIGlzIHNvbWV0aGluZyB0byBiZSBkb25lIGxhdGVyLCBhZnRlciB0aGluZ3MgYXJlIG90aGVyd2lzZQorLy8gICAgICAgICAgd29ya2luZy4KKyAgICAgICAgQ2hhcnNldE1hdGNoIG1hdGNoZXNbXSA9IGRldGVjdEFsbCgpOworICAgICAgICAKKyAgICAgICAgaWYgKG1hdGNoZXMgPT0gbnVsbCB8fCBtYXRjaGVzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG1hdGNoZXNbMF07CisgICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiAgUmV0dXJuIGFuIGFycmF5IG9mIGFsbCBjaGFyc2V0cyB0aGF0IGFwcGVhciB0byBiZSBwbGF1c2libGUKKyAgICAgKiAgbWF0Y2hlcyB3aXRoIHRoZSBpbnB1dCBkYXRhLiAgVGhlIGFycmF5IGlzIG9yZGVyZWQgd2l0aCB0aGUKKyAgICAgKiAgYmVzdCBxdWFsaXR5IG1hdGNoIGZpcnN0LgorICAgICAqIDxwLz4KKyAgICAgKiBSYWlzZSBhbiBleGNlcHRpb24gaWYgCisgICAgICogIDx1bD4KKyAgICAgKiAgICA8bGk+bm8gY2hhcnNldHMgYXBwZWFyIHRvIG1hdGNoIHRoZSBpbnB1dCBkYXRhLjwvbGk+CisgICAgICogICAgPGxpPm5vIGlucHV0IHRleHQgaGFzIGJlZW4gcHJvdmlkZWQ8L2xpPgorICAgICAqICA8L3VsPgorICAgICAqIAorICAgICAqIEByZXR1cm4gQW4gYXJyYXkgb2YgQ2hhcnNldE1hdGNoIG9iamVjdHMgcmVwcmVzZW50aW5nIHBvc3NpYmx5IG1hdGNoaW5nIGNoYXJzZXRzLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcnNldE1hdGNoW10gZGV0ZWN0QWxsKCkgeworICAgICAgICBDaGFyc2V0UmVjb2duaXplciBjc3I7CisgICAgICAgIGludCAgICAgICAgICAgICAgIGk7CisgICAgICAgIGludCAgICAgICAgICAgICAgIGRldGVjdFJlc3VsdHM7CisgICAgICAgIGludCAgICAgICAgICAgICAgIGNvbmZpZGVuY2U7CisgICAgICAgIEFycmF5TGlzdCAgICAgICAgIG1hdGNoZXMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgIAorICAgICAgICAvLyAgSXRlcmF0ZSBvdmVyIGFsbCBwb3NzaWJsZSBjaGFyc2V0cywgcmVtZW1iZXIgYWxsIHRoYXQKKyAgICAgICAgLy8gICAgZ2l2ZSBhIG1hdGNoIHF1YWxpdHkgPiAwLgorICAgICAgICBmb3IgKGk9MDsgaTxmQ1NSZWNvZ25pemVycy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgY3NyID0gKENoYXJzZXRSZWNvZ25pemVyKWZDU1JlY29nbml6ZXJzLmdldChpKTsKKyAgICAgICAgICAgIGRldGVjdFJlc3VsdHMgPSBjc3IubWF0Y2godGhpcyk7CisgICAgICAgICAgICBjb25maWRlbmNlID0gZGV0ZWN0UmVzdWx0cyAmIDB4MDAwMDAwZmY7CisgICAgICAgICAgICBpZiAoY29uZmlkZW5jZSA+IDApIHsKKyAgICAgICAgICAgICAgICBDaGFyc2V0TWF0Y2ggIG0gPSBuZXcgQ2hhcnNldE1hdGNoKHRoaXMsIGNzciwgY29uZmlkZW5jZSk7CisgICAgICAgICAgICAgICAgbWF0Y2hlcy5hZGQobSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgQ29sbGVjdGlvbnMuc29ydChtYXRjaGVzKTsgICAgICAvLyBDaGFyc2V0TWF0Y2ggY29tcGFyZXMgb24gY29uZmlkZW5jZQorICAgICAgICBDb2xsZWN0aW9ucy5yZXZlcnNlKG1hdGNoZXMpOyAgIC8vICBQdXQgYmVzdCBtYXRjaCBmaXJzdC4KKyAgICAgICAgQ2hhcnNldE1hdGNoIFtdIHJlc3VsdEFycmF5ID0gbmV3IENoYXJzZXRNYXRjaFttYXRjaGVzLnNpemUoKV07CisgICAgICAgIHJlc3VsdEFycmF5ID0gKENoYXJzZXRNYXRjaFtdKSBtYXRjaGVzLnRvQXJyYXkocmVzdWx0QXJyYXkpOworICAgICAgICByZXR1cm4gcmVzdWx0QXJyYXk7CisgICAgfQorCisgICAgCisgICAgLyoqCisgICAgICogQXV0b2RldGVjdCB0aGUgY2hhcnNldCBvZiBhbiBpbnB1dFN0cmVhbSwgYW5kIHJldHVybiBhIEphdmEgUmVhZGVyCisgICAgICogdG8gYWNjZXNzIHRoZSBjb252ZXJ0ZWQgaW5wdXQgZGF0YS4KKyAgICAgKiA8cC8+CisgICAgICogVGhpcyBpcyBhIGNvbnZlbmllbmNlIG1ldGhvZCB0aGF0IGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiAgIDxjb2RlPnRoaXMuc2V0RGVjbGFyZWRFbmNvZGluZyhkZWNsYXJlZEVuY29kaW5nKS5zZXRUZXh0KGluKS5kZXRlY3QoKS5nZXRSZWFkZXIoKTs8L2NvZGU+CisgICAgICogPHAvPgorICAgICAqICAgRm9yIHRoZSBpbnB1dCBzdHJlYW0gdGhhdCBzdXBwbGllcyB0aGUgY2hhcmFjdGVyIGRhdGEsIG1hcmtTdXBwb3J0ZWQoKQorICAgICAqICAgbXVzdCBiZSB0cnVlOyB0aGUgIGNoYXJzZXQgZGV0ZWN0aW9uIHdpbGwgcmVhZCBhIHNtYWxsIGFtb3VudCBvZiBkYXRhLAorICAgICAqICAgdGhlbiByZXR1cm4gdGhlIHN0cmVhbSB0byBpdHMgb3JpZ2luYWwgcG9zaXRpb24gdmlhCisgICAgICogICB0aGUgSW5wdXRTdHJlYW0ucmVzZXQoKSBvcGVyYXRpb24uICBUaGUgZXhhY3QgYW1vdW50IHRoYXQgd2lsbAorICAgICAqICAgIGJlIHJlYWQgZGVwZW5kcyBvbiB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBkYXRhIGl0c2VsZi4KKyAgICAgKjxwLz4KKyAgICAgKiBSYWlzZSBhbiBleGNlcHRpb24gaWYgbm8gY2hhcnNldHMgYXBwZWFyIHRvIG1hdGNoIHRoZSBpbnB1dCBkYXRhLgorICAgICAqIAorICAgICAqIEBwYXJhbSBpbiBUaGUgc291cmNlIG9mIHRoZSBieXRlIGRhdGEgaW4gdGhlIHVua25vd24gY2hhcnNldC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkZWNsYXJlZEVuY29kaW5nICBBIGRlY2xhcmVkIGVuY29kaW5nIGZvciB0aGUgZGF0YSwgaWYgYXZhaWxhYmxlLAorICAgICAqICAgICAgICAgICBvciBudWxsIG9yIGFuIGVtcHR5IHN0cmluZyBpZiBub25lIGlzIGF2YWlsYWJsZS4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFJlYWRlciBnZXRSZWFkZXIoSW5wdXRTdHJlYW0gaW4sIFN0cmluZyBkZWNsYXJlZEVuY29kaW5nKSB7CisgICAgICAgIGZEZWNsYXJlZEVuY29kaW5nID0gZGVjbGFyZWRFbmNvZGluZzsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzZXRUZXh0KGluKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQ2hhcnNldE1hdGNoIG1hdGNoID0gZGV0ZWN0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChtYXRjaCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBtYXRjaC5nZXRSZWFkZXIoKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdXRvZGV0ZWN0IHRoZSBjaGFyc2V0IG9mIGFuIGlucHV0U3RyZWFtLCBhbmQgcmV0dXJuIGEgU3RyaW5nCisgICAgICogY29udGFpbmluZyB0aGUgY29udmVydGVkIGlucHV0IGRhdGEuCisgICAgICogPHAvPgorICAgICAqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBtZXRob2QgdGhhdCBpcyBlcXVpdmFsZW50IHRvCisgICAgICogICA8Y29kZT50aGlzLnNldERlY2xhcmVkRW5jb2RpbmcoZGVjbGFyZWRFbmNvZGluZykuc2V0VGV4dChpbikuZGV0ZWN0KCkuZ2V0U3RyaW5nKCk7PC9jb2RlPgorICAgICAqPHAvPgorICAgICAqIFJhaXNlIGFuIGV4Y2VwdGlvbiBpZiBubyBjaGFyc2V0cyBhcHBlYXIgdG8gbWF0Y2ggdGhlIGlucHV0IGRhdGEuCisgICAgICogCisgICAgICogQHBhcmFtIGluIFRoZSBzb3VyY2Ugb2YgdGhlIGJ5dGUgZGF0YSBpbiB0aGUgdW5rbm93biBjaGFyc2V0LgorICAgICAqCisgICAgICogQHBhcmFtIGRlY2xhcmVkRW5jb2RpbmcgIEEgZGVjbGFyZWQgZW5jb2RpbmcgZm9yIHRoZSBkYXRhLCBpZiBhdmFpbGFibGUsCisgICAgICogICAgICAgICAgIG9yIG51bGwgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIG5vbmUgaXMgYXZhaWxhYmxlLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFN0cmluZyhieXRlW10gaW4sIFN0cmluZyBkZWNsYXJlZEVuY29kaW5nKQorICAgIHsKKyAgICAgICAgZkRlY2xhcmVkRW5jb2RpbmcgPSBkZWNsYXJlZEVuY29kaW5nOworICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgc2V0VGV4dChpbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIENoYXJzZXRNYXRjaCBtYXRjaCA9IGRldGVjdCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAobWF0Y2ggPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gbWF0Y2guZ2V0U3RyaW5nKC0xKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5hbWVzIG9mIGFsbCBjaGFyIHNldHMgdGhhdCBjYW4gYmUgcmVjb2duaXplZCBieSB0aGUgY2hhciBzZXQgZGV0ZWN0b3IuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIHRoZSBuYW1lcyBvZiBhbGwgY2hhcnNldHMgdGhhdCBjYW4gYmUgcmVjb2duaXplZAorICAgICAqIGJ5IHRoZSBjaGFyc2V0IGRldGVjdG9yLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIGdldEFsbERldGVjdGFibGVDaGFyc2V0cygpIHsKKyAgICAgICAgcmV0dXJuIGZDaGFyc2V0TmFtZXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3Qgd2hldGhlciBvciBub3QgaW5wdXQgZmlsdGVyaW5nIGlzIGVuYWJsZWQuCisgICAgICogCisgICAgICogQHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiBpbnB1dCB0ZXh0IHdpbGwgYmUgZmlsdGVyZWQuCisgICAgICogCisgICAgICogQHNlZSAjZW5hYmxlSW5wdXRGaWx0ZXIKKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaW5wdXRGaWx0ZXJFbmFibGVkKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmU3RyaXBUYWdzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBFbmFibGUgZmlsdGVyaW5nIG9mIGlucHV0IHRleHQuIElmIGZpbHRlcmluZyBpcyBlbmFibGVkLAorICAgICAqIHRleHQgd2l0aGluIGFuZ2xlIGJyYWNrZXRzICgiPCIgYW5kICI+Iikgd2lsbCBiZSByZW1vdmVkCisgICAgICogYmVmb3JlIGRldGVjdGlvbi4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZmlsdGVyIDxjb2RlPnRydWU8L2NvZGU+IHRvIGVuYWJsZSBpbnB1dCB0ZXh0IGZpbHRlcmluZy4KKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIFRoZSBwcmV2aW91cyBzZXR0aW5nLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlbmFibGVJbnB1dEZpbHRlcihib29sZWFuIGZpbHRlcikKKyAgICB7CisgICAgICAgIGJvb2xlYW4gcHJldmlvdXMgPSBmU3RyaXBUYWdzOworICAgICAgICAKKyAgICAgICAgZlN0cmlwVGFncyA9IGZpbHRlcjsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBwcmV2aW91czsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogIE11bmdlSW5wdXQgLSBhZnRlciBnZXR0aW5nIGEgc2V0IG9mIHJhdyBpbnB1dCBkYXRhIHRvIGJlIGFuYWx5emVkLCBwcmVwcm9jZXNzCisgICAgICogICAgICAgICAgICAgICBpdCBieSByZW1vdmluZyB3aGF0IGFwcGVhcnMgdG8gYmUgaHRtbCBtYXJrdXAuCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIE11bmdlSW5wdXQoKSB7CisgICAgICAgIGludCBzcmNpID0gMDsKKyAgICAgICAgaW50IGRzdGkgPSAwOworICAgICAgICBieXRlIGI7CisgICAgICAgIGJvb2xlYW4gIGluTWFya3VwID0gZmFsc2U7CisgICAgICAgIGludCAgICAgIG9wZW5UYWdzID0gMDsKKyAgICAgICAgaW50ICAgICAgYmFkVGFncyAgPSAwOworICAgICAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIGh0bWwgLyB4bWwgbWFya3VwIHN0cmlwcGluZy4KKyAgICAgICAgLy8gICAgIHF1aWNrIGFuZCBkaXJ0eSwgbm90IDEwMCUgYWNjdXJhdGUsIGJ1dCBob3BlZnVsbHkgZ29vZCBlbm91Z2gsIHN0YXRpc3RpY2FsbHkuCisgICAgICAgIC8vICAgICBkaXNjYXJkIGV2ZXJ5dGhpbmcgd2l0aGluIDwgYnJhY2tldHMgPgorICAgICAgICAvLyAgICAgQ291bnQgaG93IG1hbnkgdG90YWwgJzwnIGFuZCBpbGxlZ2FsIChuZXN0ZWQpICc8JyBvY2N1ciwgc28gd2UgY2FuIG1ha2Ugc29tZQorICAgICAgICAvLyAgICAgZ3Vlc3MgYXMgdG8gd2hldGhlciB0aGUgaW5wdXQgd2FzIGFjdHVhbGx5IG1hcmtlZCB1cCBhdCBhbGwuCisgICAgICAgIGlmIChmU3RyaXBUYWdzKSB7CisgICAgICAgICAgICBmb3IgKHNyY2k9MDsgc3JjaTxmUmF3TGVuZ3RoOyBzcmNpKyspIHsKKyAgICAgICAgICAgICAgICBiID0gZlJhd0lucHV0W3NyY2ldOworICAgICAgICAgICAgICAgIGlmIChiID09IChieXRlKSc8JykgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5NYXJrdXApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhZFRhZ3MrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbk1hcmt1cCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIG9wZW5UYWdzKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghIGluTWFya3VwKSB7CisgICAgICAgICAgICAgICAgICAgIGZJbnB1dEJ5dGVzW2RzdGkrK10gPSBiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoYiA9PSAoYnl0ZSknPicpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5NYXJrdXAgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZklucHV0TGVuID0gZHN0aTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIElmIGl0IGxvb2tzIGxpa2UgdGhpcyBpbnB1dCB3YXNuJ3QgbWFya2VkIHVwLCBvciBpZiBpdCBsb29rcyBsaWtlIGl0J3MKKyAgICAgICAgLy8gICAgZXNzZW50aWFsbHkgbm90aGluZyBidXQgbWFya3VwIGFiYW5kb24gdGhlIG1hcmt1cCBzdHJpcHBpbmcuCisgICAgICAgIC8vICAgIERldGVjdGlvbiB3aWxsIGhhdmUgdG8gd29yayBvbiB0aGUgdW5zdHJpcHBlZCBpbnB1dC4KKyAgICAgICAgLy8KKyAgICAgICAgaWYgKG9wZW5UYWdzPDUgfHwgb3BlblRhZ3MvNSA8IGJhZFRhZ3MgfHwgCisgICAgICAgICAgICAgICAgKGZJbnB1dExlbiA8IDEwMCAmJiBmUmF3TGVuZ3RoPjYwMCkpIHsKKyAgICAgICAgICAgIGludCBsaW1pdCA9IGZSYXdMZW5ndGg7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsaW1pdCA+IGtCdWZTaXplKSB7CisgICAgICAgICAgICAgICAgbGltaXQgPSBrQnVmU2l6ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChzcmNpPTA7IHNyY2k8bGltaXQ7IHNyY2krKykgeworICAgICAgICAgICAgICAgIGZJbnB1dEJ5dGVzW3NyY2ldID0gZlJhd0lucHV0W3NyY2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZklucHV0TGVuID0gc3JjaTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gVGFsbHkgdXAgdGhlIGJ5dGUgb2NjdXJlbmNlIHN0YXRpc3RpY3MuCisgICAgICAgIC8vICAgVGhlc2UgYXJlIGF2YWlsYWJsZSBmb3IgdXNlIGJ5IHRoZSB2YXJpb3VzIGRldGVjdG9ycy4KKyAgICAgICAgLy8KKyAgICAgICAgQXJyYXlzLmZpbGwoZkJ5dGVTdGF0cywgKHNob3J0KTApOworICAgICAgICBmb3IgKHNyY2k9MDsgc3JjaTxmSW5wdXRMZW47IHNyY2krKykgeworICAgICAgICAgICAgaW50IHZhbCA9IGZJbnB1dEJ5dGVzW3NyY2ldICYgMHgwMGZmOworICAgICAgICAgICAgZkJ5dGVTdGF0c1t2YWxdKys7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZDMUJ5dGVzID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAweDgwOyBpIDw9IDB4OUY7IGkgKz0gMSkgeworICAgICAgICAgICAgaWYgKGZCeXRlU3RhdHNbaV0gIT0gMCkgeworICAgICAgICAgICAgICAgIGZDMUJ5dGVzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICB9CisKKyAgICAvKioKKyAgICAgKiAgVGhlIGZvbGxvd2luZyBpdGVtcyBhcmUgYWNjZXNzZWQgYnkgaW5kaXZpZHVhbCBDaGFyc2V0UmVjb25naXplcnMgZHVyaW5nCisgICAgICogICAgIHRoZSByZWNvZ25pdGlvbiBwcm9jZXNzCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgYnl0ZVtdICAgICAgZklucHV0Qnl0ZXMgPSAgICAgICAvLyBUaGUgdGV4dCB0byBiZSBjaGVja2VkLiAgTWFya3VwIHdpbGwgaGF2ZSBiZWVuCisgICAgICAgICAgICAgICAgICAgbmV3IGJ5dGVba0J1ZlNpemVdOyAgLy8gICByZW1vdmVkIGlmIGFwcHJvcHJpYXRlLgorICAgIAorICAgIGludCAgICAgICAgIGZJbnB1dExlbjsgICAgICAgICAgLy8gTGVuZ3RoIG9mIHRoZSBieXRlIGRhdGEgaW4gZklucHV0VGV4dC4KKyAgICAKKyAgICBzaG9ydCAgICAgICBmQnl0ZVN0YXRzW10gPSAgICAgIC8vIGJ5dGUgZnJlcXVlbmN5IHN0YXRpc3RpY3MgZm9yIHRoZSBpbnB1dCB0ZXh0LgorICAgICAgICAgICAgICAgICAgIG5ldyBzaG9ydFsyNTZdOyAgLy8gICBWYWx1ZSBpcyBwZXJjZW50LCBub3QgYWJzb2x1dGUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIFZhbHVlIGlzIHJvdW5kZWQgdXAsIHNvIHplcm8gcmVhbGx5IG1lYW5zIHplcm8gb2NjdXJlbmNlcy4KKyAgICAKKyAgICBib29sZWFuICAgICBmQzFCeXRlcyA9ICAgICAgICAgIC8vIFRydWUgaWYgYW55IGJ5dGVzIGluIHRoZSByYW5nZSAweDgwIC0gMHg5RiBhcmUgaW4gdGhlIGlucHV0OworICAgICAgICAgICAgICAgICAgIGZhbHNlOworICAgIAorICAgIFN0cmluZyAgICAgIGZEZWNsYXJlZEVuY29kaW5nOworICAgIAorICAgIAorCisgICAgLy8KKyAgICAvLyAgU3R1ZmYgcHJpdmF0ZSB0byBDaGFyc2V0RGV0ZWN0b3IKKyAgICAvLworICAgIGJ5dGVbXSAgICAgICAgICAgICAgIGZSYXdJbnB1dDsgICAgIC8vIE9yaWdpbmFsLCB1bnRvdWNoZWQgaW5wdXQgYnl0ZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIElmIHVzZXIgZ2F2ZSB1cyBhIGJ5dGUgYXJyYXksIHRoaXMgaXMgaXQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIElmIHVzZXIgZ2F2ZSB1cyBhIHN0cmVhbSwgaXQncyByZWFkIHRvIGEgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGJ1ZmZlciBoZXJlLgorICAgIGludCAgICAgICAgICAgICAgICAgIGZSYXdMZW5ndGg7ICAgIC8vIExlbmd0aCBvZiBkYXRhIGluIGZSYXdJbnB1dCBhcnJheS4KKyAgICAKKyAgICBJbnB1dFN0cmVhbSAgICAgICAgICBmSW5wdXRTdHJlYW07ICAvLyBVc2VyJ3MgaW5wdXQgc3RyZWFtLCBvciBudWxsIGlmIHRoZSB1c2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBnYXZlIHVzIGEgYnl0ZSBhcnJheS4KKyAgICAgCisgICAgYm9vbGVhbiAgICAgICAgICAgICAgZlN0cmlwVGFncyA9ICAgLy8gSWYgdHJ1ZSwgc2V0VGV4dCgpIHdpbGwgc3RyaXAgdGFncyBmcm9tIGlucHV0IHRleHQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZTsKKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiAgTGlzdCBvZiByZWNvZ25pemVycyBmb3IgYWxsIGNoYXJzZXRzIGtub3duIHRvIHRoZSBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIEFycmF5TGlzdCBmQ1NSZWNvZ25pemVycyA9IGNyZWF0ZVJlY29nbml6ZXJzKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIFtdIGZDaGFyc2V0TmFtZXM7CisgICAgCisgICAvKioKKyAgICAgKiBDcmVhdGUgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZXMgb2YgdGhlIENoYXJzZXRSZWNvZ25pemVyIGNsYXNzZXMKKyAgICAgKiAKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBBcnJheUxpc3QgY3JlYXRlUmVjb2duaXplcnMoKSB7CisgICAgICAgIEFycmF5TGlzdCByZWNvZ25pemVycyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgCisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX1VURjgoKSk7CisgICAgICAgIAorICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19Vbmljb2RlLkNoYXJzZXRSZWNvZ19VVEZfMTZfQkUoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX1VuaWNvZGUuQ2hhcnNldFJlY29nX1VURl8xNl9MRSgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfVW5pY29kZS5DaGFyc2V0UmVjb2dfVVRGXzMyX0JFKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19Vbmljb2RlLkNoYXJzZXRSZWNvZ19VVEZfMzJfTEUoKSk7OworICAgICAgICAKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfbWJjcy5DaGFyc2V0UmVjb2dfc2ppcygpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfMjAyMi5DaGFyc2V0UmVjb2dfMjAyMkpQKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ18yMDIyLkNoYXJzZXRSZWNvZ18yMDIyQ04oKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nXzIwMjIuQ2hhcnNldFJlY29nXzIwMjJLUigpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfbWJjcy5DaGFyc2V0UmVjb2dfZXVjLkNoYXJzZXRSZWNvZ19nYl8xODAzMCgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfbWJjcy5DaGFyc2V0UmVjb2dfZXVjLkNoYXJzZXRSZWNvZ19ldWNfanAoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX21iY3MuQ2hhcnNldFJlY29nX2V1Yy5DaGFyc2V0UmVjb2dfZXVjX2tyKCkpOworICAgICAgICAKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV8xX2RhKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzFfZGUoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfMV9lbigpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV8xX2VzKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzFfZnIoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfMV9pdCgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV8xX25sKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzFfbm8oKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfMV9wdCgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV8xX3N2KCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzJfY3MoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfMl9odSgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV8yX3BsKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzJfcm8oKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfNV9ydSgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfODg1OV82X2FyKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzdfZWwoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfOF9JX2hlKCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ184ODU5XzhfaGUoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nX3dpbmRvd3NfMTI1MSgpKTsKKyAgICAgICAgcmVjb2duaXplcnMuYWRkKG5ldyBDaGFyc2V0UmVjb2dfc2Jjcy5DaGFyc2V0UmVjb2dfd2luZG93c18xMjU2KCkpOworICAgICAgICByZWNvZ25pemVycy5hZGQobmV3IENoYXJzZXRSZWNvZ19zYmNzLkNoYXJzZXRSZWNvZ19LT0k4X1IoKSk7CisgICAgICAgIHJlY29nbml6ZXJzLmFkZChuZXcgQ2hhcnNldFJlY29nX3NiY3MuQ2hhcnNldFJlY29nXzg4NTlfOV90cigpKTsKKyAgICAgICAgCisgICAgICAgIC8vIENyZWF0ZSBhbiBhcnJheSBvZiBhbGwgY2hhcnNldCBuYW1lcywgYXMgYSBzaWRlIGVmZmVjdC4KKyAgICAgICAgLy8gTmVlZGVkIGZvciB0aGUgZ2V0QWxsRGV0ZWN0YWJsZUNoYXJzZXRzKCkgQVBJLgorICAgICAgICBTdHJpbmdbXSBjaGFyc2V0TmFtZXMgPSBuZXcgU3RyaW5nIFtyZWNvZ25pemVycy5zaXplKCldOworICAgICAgICBpbnQgb3V0ID0gMDsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVjb2duaXplcnMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gKChDaGFyc2V0UmVjb2duaXplcilyZWNvZ25pemVycy5nZXQoaSkpLmdldE5hbWUoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG91dCA9PSAwIHx8ICEgbmFtZS5lcXVhbHMoY2hhcnNldE5hbWVzW291dCAtIDFdKSkgeworICAgICAgICAgICAgICAgIGNoYXJzZXROYW1lc1tvdXQrK10gPSBuYW1lOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmQ2hhcnNldE5hbWVzID0gbmV3IFN0cmluZ1tvdXRdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGNoYXJzZXROYW1lcywgMCwgZkNoYXJzZXROYW1lcywgMCwgb3V0KTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiByZWNvZ25pemVyczsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0TWF0Y2guamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRNYXRjaC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0NGJmNDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0TWF0Y2guamF2YQpAQCAtMCwwICsxLDI3OCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLmlvLlJlYWRlcjsKKworCisvKioKKyAqIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBhIGNoYXJzZXQgdGhhdCBoYXMgYmVlbiBpZGVudGlmaWVkIGJ5IGEgQ2hhcnNldERldGVjdG9yCisgKiBhcyBhIHBvc3NpYmxlIGVuY29kaW5nIGZvciBhIHNldCBvZiBpbnB1dCBkYXRhLiAgRnJvbSBhbiBpbnN0YW5jZSBvZiB0aGlzCisgKiBjbGFzcywgeW91IGNhbiBhc2sgZm9yIGEgY29uZmlkZW5jZSBsZXZlbCBpbiB0aGUgY2hhcnNldCBpZGVudGlmaWNhdGlvbiwKKyAqIG9yIGZvciBKYXZhIFJlYWRlciBvciBTdHJpbmcgdG8gYWNjZXNzIHRoZSBvcmlnaW5hbCBieXRlIGRhdGEgaW4gVW5pY29kZSBmb3JtLgorICogPHAvPgorICogSW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgYXJlIGNyZWF0ZWQgb25seSBieSBDaGFyc2V0RGV0ZWN0b3JzLgorICogPHAvPgorICogTm90ZTogIHRoaXMgY2xhc3MgaGFzIGEgbmF0dXJhbCBvcmRlcmluZyB0aGF0IGlzIGluY29uc2lzdGVudCB3aXRoIGVxdWFscy4KKyAqICAgICAgICBUaGUgbmF0dXJhbCBvcmRlcmluZyBpcyBiYXNlZCBvbiB0aGUgbWF0Y2ggY29uZmlkZW5jZSB2YWx1ZS4KKyAqCisgKiBAZHJhZnQgSUNVIDMuNAorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBjbGFzcyBDaGFyc2V0TWF0Y2ggaW1wbGVtZW50cyBDb21wYXJhYmxlIHsKKworICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIGphdmEuaW8uUmVhZGVyIGZvciByZWFkaW5nIHRoZSBVbmljb2RlIGNoYXJhY3RlciBkYXRhIGNvcnJlc3BvbmRpbmcKKyAgICAgKiB0byB0aGUgb3JpZ2luYWwgYnl0ZSBkYXRhIHN1cHBsaWVkIHRvIHRoZSBDaGFyc2V0IGRldGVjdCBvcGVyYXRpb24uCisgICAgICogPHAvPgorICAgICAqIENBVVRJT046ICBpZiB0aGUgc291cmNlIG9mIHRoZSBieXRlIGRhdGEgd2FzIGFuIElucHV0U3RyZWFtLCBhIFJlYWRlcgorICAgICAqIGNhbiBiZSBjcmVhdGVkIGZvciBvbmx5IG9uZSBtYXRjaGluZyBjaGFyIHNldCB1c2luZyB0aGlzIG1ldGhvZC4gIElmIG1vcmUgCisgICAgICogdGhhbiBvbmUgY2hhcnNldCBuZWVkcyB0byBiZSB0cmllZCwgdGhlIGNhbGxlciB3aWxsIG5lZWQgdG8gcmVzZXQKKyAgICAgKiB0aGUgSW5wdXRTdHJlYW0gYW5kIGNyZWF0ZSBJbnB1dFN0cmVhbVJlYWRlcnMgaXRzZWxmLCBiYXNlZCBvbiB0aGUgY2hhcnNldCBuYW1lLgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgUmVhZGVyIGZvciB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgZGF0YS4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFJlYWRlciBnZXRSZWFkZXIoKSB7CisgICAgICAgIElucHV0U3RyZWFtIGlucHV0U3RyZWFtID0gZklucHV0U3RyZWFtOworICAgICAgICAKKyAgICAgICAgaWYgKGlucHV0U3RyZWFtID09IG51bGwpIHsKKyAgICAgICAgICAgIGlucHV0U3RyZWFtID0gbmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKGZSYXdJbnB1dCwgMCwgZlJhd0xlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbnB1dFN0cmVhbS5yZXNldCgpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpbnB1dFN0cmVhbSwgZ2V0TmFtZSgpKTsKKyAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBKYXZhIFN0cmluZyBmcm9tIFVuaWNvZGUgY2hhcmFjdGVyIGRhdGEgY29ycmVzcG9uZGluZworICAgICAqIHRvIHRoZSBvcmlnaW5hbCBieXRlIGRhdGEgc3VwcGxpZWQgdG8gdGhlIENoYXJzZXQgZGV0ZWN0IG9wZXJhdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYSBTdHJpbmcgY3JlYXRlZCBmcm9tIHRoZSBjb252ZXJ0ZWQgaW5wdXQgZGF0YS4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRTdHJpbmcoKSAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geworICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKC0xKTsKKworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIEphdmEgU3RyaW5nIGZyb20gVW5pY29kZSBjaGFyYWN0ZXIgZGF0YSBjb3JyZXNwb25kaW5nCisgICAgICogdG8gdGhlIG9yaWdpbmFsIGJ5dGUgZGF0YSBzdXBwbGllZCB0byB0aGUgQ2hhcnNldCBkZXRlY3Qgb3BlcmF0aW9uLgorICAgICAqIFRoZSBsZW5ndGggb2YgdGhlIHJldHVybmVkIHN0cmluZyBpcyBsaW1pdGVkIHRvIHRoZSBzcGVjaWZpZWQgc2l6ZTsKKyAgICAgKiB0aGUgc3RyaW5nIHdpbGwgYmUgdHJ1bmN0YXRlZCB0byB0aGlzIGxlbmd0aCBpZiBuZWNlc3NhcnkuICBBIGxpbWl0IHZhbHVlIG9mCisgICAgICogemVybyBvciBsZXNzIGlzIGlnbm9yZWQsIGFuZCB0cmVhdGVkIGFzIG5vIGxpbWl0LgorICAgICAqCisgICAgICogQHBhcmFtIG1heExlbmd0aCBUaGUgbWF4aW1pdW0gbGVuZ3RoIG9mIHRoZSBTdHJpbmcgdG8gYmUgY3JlYXRlZCB3aGVuIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgc291cmNlIG9mIHRoZSBkYXRhIGlzIGFuIGlucHV0IHN0cmVhbSwgb3IgLTEgZm9yCisgICAgICogICAgICAgICAgICAgICAgICB1bmxpbWl0ZWQgbGVuZ3RoLgorICAgICAqIEByZXR1cm4gYSBTdHJpbmcgY3JlYXRlZCBmcm9tIHRoZSBjb252ZXJ0ZWQgaW5wdXQgZGF0YS4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRTdHJpbmcoaW50IG1heExlbmd0aCkgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgaWYgKGZJbnB1dFN0cmVhbSAhPSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBjaGFyW10gYnVmZmVyID0gbmV3IGNoYXJbMTAyNF07CisgICAgICAgICAgICBSZWFkZXIgcmVhZGVyID0gZ2V0UmVhZGVyKCk7CisgICAgICAgICAgICBpbnQgbWF4ID0gbWF4TGVuZ3RoIDwgMD8gSW50ZWdlci5NQVhfVkFMVUUgOiBtYXhMZW5ndGg7CisgICAgICAgICAgICBpbnQgYnl0ZXNSZWFkID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKChieXRlc1JlYWQgPSByZWFkZXIucmVhZChidWZmZXIsIDAsIE1hdGgubWluKG1heCwgMTAyNCkpKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgc2IuYXBwZW5kKGJ1ZmZlciwgMCwgYnl0ZXNSZWFkKTsKKyAgICAgICAgICAgICAgICBtYXggLT0gYnl0ZXNSZWFkOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZWFkZXIuY2xvc2UoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nKGZSYXdJbnB1dCwgZ2V0TmFtZSgpKTsgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCBhbiBpbmRpY2F0aW9uIG9mIHRoZSBjb25maWRlbmNlIGluIHRoZSBjaGFyc2V0IGRldGVjdGVkLgorICAgICAqIENvbmZpZGVuY2UgdmFsdWVzIHJhbmdlIGZyb20gMC0xMDAsIHdpdGggbGFyZ2VyIG51bWJlcnMgaW5kaWNhdGluZworICAgICAqIGEgYmV0dGVyIG1hdGNoIG9mIHRoZSBpbnB1dCBkYXRhIHRvIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlCisgICAgICogY2hhcnNldC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIGNvbmZpZGVuY2UgaW4gdGhlIGNoYXJzZXQgbWF0Y2gKKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRDb25maWRlbmNlKCkgeworICAgICAgICByZXR1cm4gZkNvbmZpZGVuY2U7CisgICAgfQorICAgIAorCisgICAgLyoqCisgICAgICogQml0IGZsYWcgaW5kaWNhdGluZyB0aGUgbWF0Y2ggaXMgYmFzZWQgb24gdGhlIHRoZSBlbmNvZGluZyBzY2hlbWUuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRNYXRjaFR5cGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgaW50IEVOQ09ESU5HX1NDSEVNRSAgICA9IDE7CisgICAgCisgICAgLyoqCisgICAgICogQml0IGZsYWcgaW5kaWNhdGluZyB0aGUgbWF0Y2ggaXMgYmFzZWQgb24gdGhlIHByZXNlbmNlIG9mIGEgQk9NLgorICAgICAqIAorICAgICAqIEBzZWUgI2dldE1hdGNoVHlwZQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBpbnQgQk9NICAgICAgICAgICAgICAgID0gMjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBCaXQgZmxhZyBpbmRpY2F0aW5nIGhlIG1hdGNoIGlzIGJhc2VkIG9uIHRoZSBkZWNsYXJlZCBlbmNvZGluZy4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNnZXRNYXRjaFR5cGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgaW50IERFQ0xBUkVEX0VOQ09ESU5HICA9IDQ7CisgICAgCisgICAgLyoqCisgICAgICogQml0IGZsYWcgaW5kaWNhdGluZyB0aGUgbWF0Y2ggaXMgYmFzZWQgb24gbGFuZ3VhZ2Ugc3RhdGlzdGljcy4KKyAgICAgKgorICAgICAqIEBzZWUgI2dldE1hdGNoVHlwZQorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBpbnQgTEFOR19TVEFUSVNUSUNTICAgID0gODsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gZmxhZ3MgaW5kaWNhdGluZyB3aGF0IGl0IHdhcyBhYm91dCB0aGUgaW5wdXQgZGF0YSAKKyAgICAgKiB0aGF0IGNhdXNlZCB0aGlzIGNoYXJzZXQgdG8gYmUgY29uc2lkZXJlZCBhcyBhIHBvc3NpYmxlIG1hdGNoLgorICAgICAqIFRoZSByZXN1bHQgaXMgYSBiaXRmaWVsZCBjb250YWluaW5nIHplcm8gb3IgbW9yZSBvZiB0aGUgZmxhZ3MKKyAgICAgKiBFTkNPRElOR19TQ0hFTUUsIEJPTSwgREVDTEFSRURfRU5DT0RJTkcsIGFuZCBMQU5HX1NUQVRJU1RJQ1MuCisgICAgICogQSByZXN1bHQgb2YgemVybyBtZWFucyBubyBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUuCisgICAgICogPHA+CisgICAgICogTm90ZTogY3VycmVudGx5LCB0aGlzIG1ldGhvZCBhbHdheXMgcmV0dXJucyB6ZXJvLgorICAgICAqIDxwPgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgdHlwZSBvZiBtYXRjaCBmb3VuZCBmb3IgdGhpcyBjaGFyc2V0LgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1hdGNoVHlwZSgpIHsKKy8vICAgICAgVE9ETzogY3JlYXRlIGEgbGlzdCBvZiBlbnVtLWxpa2UgY29uc3RhbnRzIGZvciBjb21tb24gY29tYmluYXRpb25zIG9mIHR5cGVzIG9mIG1hdGNoZXMuCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbmFtZSBvZiB0aGUgZGV0ZWN0ZWQgY2hhcnNldC4gIAorICAgICAqIFRoZSBuYW1lIHdpbGwgYmUgb25lIHRoYXQgY2FuIGJlIHVzZWQgd2l0aCBvdGhlciBBUElzIG9uIHRoZQorICAgICAqIHBsYXRmb3JtIHRoYXQgYWNjZXB0IGNoYXJzZXQgbmFtZXMuICBJdCBpcyB0aGUgIkNhbm9uaWNhbCBuYW1lIgorICAgICAqIGFzIGRlZmluZWQgYnkgdGhlIGNsYXNzIGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldDsgZm9yCisgICAgICogY2hhcnNldHMgdGhhdCBhcmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBJQU5BIGNoYXJzZXQgcmVnaXN0cnksCisgICAgICogdGhpcyBpcyB0aGUgTUlNRS1wcmVmZXJyZWQgcmVnaXN0ZXJkIG5hbWUuCisgICAgICoKKyAgICAgKiBAc2VlIGphdmEubmlvLmNoYXJzZXQuQ2hhcnNldAorICAgICAqIEBzZWUgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcgorICAgICAqCisgICAgICogQHJldHVybiBUaGUgbmFtZSBvZiB0aGUgY2hhcnNldC4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICByZXR1cm4gZlJlY29nbml6ZXIuZ2V0TmFtZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIElTTyBjb2RlIGZvciB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGRldGVjdGVkIGNoYXJzZXQuICAKKyAgICAgKgorICAgICAqIEByZXR1cm4gVGhlIElTTyBjb2RlIGZvciB0aGUgbGFuZ3VhZ2Ugb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlIGxhbmd1YWdlIGNhbm5vdCBiZSBkZXRlcm1pbmVkLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkgeworICAgICAgICByZXR1cm4gZlJlY29nbml6ZXIuZ2V0TGFuZ3VhZ2UoKTsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0byBvdGhlciBDaGFyc2V0TWF0Y2ggb2JqZWN0cy4KKyAgICAgKiBDb21wYXJpc29uIGlzIGJhc2VkIG9uIHRoZSBtYXRjaCBjb25maWRlbmNlIHZhbHVlLCB3aGljaCAKKyAgICAgKiAgIGFsbG93cyBDaGFyc2V0RGV0ZWN0b3IuZGV0ZWN0QWxsKCkgdG8gb3JkZXIgaXRzIHJlc3VsdHMuIAorICAgICAqCisgICAgICogQHBhcmFtIG8gdGhlIENoYXJzZXRNYXRjaCBvYmplY3QgdG8gY29tcGFyZSBhZ2FpbnN0LgorICAgICAqIEByZXR1cm4gIGEgbmVnYXRpdmUgaW50ZWdlciwgemVybywgb3IgYSBwb3NpdGl2ZSBpbnRlZ2VyIGFzIHRoZSAKKyAgICAgKiAgICAgICAgICBjb25maWRlbmNlIGxldmVsIG9mIHRoaXMgQ2hhcnNldE1hdGNoCisgICAgICoJCWlzIGxlc3MgdGhhbiwgZXF1YWwgdG8sIG9yIGdyZWF0ZXIgdGhhbiB0aGF0IG9mCisgICAgICogICAgICAgICAgdGhlIGFyZ3VtZW50LgorICAgICAqIEB0aHJvd3MgQ2xhc3NDYXN0RXhjZXB0aW9uIGlmIHRoZSBhcmd1bWVudCBpcyBub3QgYSBDaGFyc2V0TWF0Y2guCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyAoT2JqZWN0IG8pIHsKKyAgICAgICAgQ2hhcnNldE1hdGNoIG90aGVyID0gKENoYXJzZXRNYXRjaClvOworICAgICAgICBpbnQgY29tcGFyZVJlc3VsdCA9IDA7CisgICAgICAgIGlmICh0aGlzLmZDb25maWRlbmNlID4gb3RoZXIuZkNvbmZpZGVuY2UpIHsKKyAgICAgICAgICAgIGNvbXBhcmVSZXN1bHQgPSAxOworICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZkNvbmZpZGVuY2UgPCBvdGhlci5mQ29uZmlkZW5jZSkgeworICAgICAgICAgICAgY29tcGFyZVJlc3VsdCA9IC0xOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjb21wYXJlUmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiAgQ29uc3RydWN0b3IuICBJbXBsZW1lbnRhdGlvbiBpbnRlcm5hbAorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgQ2hhcnNldE1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQsIENoYXJzZXRSZWNvZ25pemVyIHJlYywgaW50IGNvbmYpIHsKKyAgICAgICAgZlJlY29nbml6ZXIgPSByZWM7CisgICAgICAgIGZDb25maWRlbmNlID0gY29uZjsKKyAgICAgICAgCisgICAgICAgIC8vIFRoZSByZWZlcmVuY2VzIHRvIHRoZSBvcmlnaW5hbCBhcGxpY2F0aW9uIGlucHV0IGRhdGEgbXVzdCBiZSBjb3BpZWQgb3V0CisgICAgICAgIC8vICAgb2YgdGhlIGNoYXJzZXQgcmVjb2duaXplciB0byBoZXJlLCBpbiBjYXNlIHRoZSBhcHBsaWNhdGlvbiByZXNldHMgdGhlCisgICAgICAgIC8vICAgcmVjb2duaXplciBiZWZvcmUgdXNpbmcgdGhpcyBDaGFyc2V0TWF0Y2guCisgICAgICAgIGlmIChkZXQuZklucHV0U3RyZWFtID09IG51bGwpIHsKKyAgICAgICAgICAgIC8vIFdlIG9ubHkgd2FudCB0aGUgZXhpc3RpbmcgaW5wdXQgYnl0ZSBkYXRhIGlmIGl0IGNhbWUgc3RyYWlnaHQgZnJvbSB0aGUgdXNlciwKKyAgICAgICAgICAgIC8vICAgbm90IGlmIGlzIGp1c3QgdGhlIGhlYWQgb2YgYSBzdHJlYW0uCisgICAgICAgICAgICBmUmF3SW5wdXQgICAgPSBkZXQuZlJhd0lucHV0OworICAgICAgICAgICAgZlJhd0xlbmd0aCAgID0gZGV0LmZSYXdMZW5ndGg7CisgICAgICAgIH07CisgICAgICAgIGZJbnB1dFN0cmVhbSA9IGRldC5mSW5wdXRTdHJlYW07CisgICAgfQorCisgICAgCisgICAgLy8KKyAgICAvLyAgIFByaXZhdGUgRGF0YQorICAgIC8vCisgICAgcHJpdmF0ZSBpbnQgICAgICAgICAgICAgICAgIGZDb25maWRlbmNlOworICAgIHByaXZhdGUgQ2hhcnNldFJlY29nbml6ZXIgICBmUmVjb2duaXplcjsKKyAgICBwcml2YXRlIGJ5dGVbXSAgICAgICAgICAgICAgZlJhd0lucHV0ID0gbnVsbDsgICAgIC8vIE9yaWdpbmFsLCB1bnRvdWNoZWQgaW5wdXQgYnl0ZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgSWYgdXNlciBnYXZlIHVzIGEgYnl0ZSBhcnJheSwgdGhpcyBpcyBpdC4KKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICAgICAgZlJhd0xlbmd0aDsgICAgICAgICAgIC8vIExlbmd0aCBvZiBkYXRhIGluIGZSYXdJbnB1dCBhcnJheS4KKworICAgIHByaXZhdGUgSW5wdXRTdHJlYW0gICAgICAgICBmSW5wdXRTdHJlYW0gPSBudWxsOyAgLy8gVXNlcidzIGlucHV0IHN0cmVhbSwgb3IgbnVsbCBpZiB0aGUgdXNlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBnYXZlIHVzIGEgYnl0ZSBhcnJheS4KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ18yMDIyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfMjAyMi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1ODUxYjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfMjAyMi5qYXZhCkBAIC0wLDAgKzEsMTYyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiAgY2xhc3MgQ2hhcnNldFJlY29nXzIwMjIgIHBhcnQgb2YgdGhlIElDVSBjaGFyc2V0IGRldGVjdGlvbiBpbWxlbWVudGF0aW9uLgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIGEgc3VwZXJjbGFzcyBmb3IgdGhlIGluZGl2aWR1YWwgZGV0ZWN0b3JzIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBlYWNoIG9mIHRoZSBkZXRlY3RhYmxlIG1lbWJlcnMgb2YgdGhlIElTTyAyMDIyIGZhbWlseQorICogICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBlbmNvZGluZ3MuCisgKiAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHNlcGFyYXRlIGNsYXNzZXMgYXJlIG5lc3RlZCB3aXRoaW4gdGhpcyBjbGFzcy4KKyAqIAorICogQGludGVybmFsCisgKi8KK2Fic3RyYWN0IGNsYXNzIENoYXJzZXRSZWNvZ18yMDIyIGV4dGVuZHMgQ2hhcnNldFJlY29nbml6ZXIgeworCisgICAgCisgICAgLyoqCisgICAgICogTWF0Y2hpbmcgZnVuY3Rpb24gc2hhcmVkIGFtb25nIHRoZSAyMDIyIGRldGVjdG9ycyBKUCwgQ04gYW5kIEtSCisgICAgICogQ291bnRzIHVwIHRoZSBudW1iZXIgb2YgbGVnYWwgYW4gdW5yZWNvZ25pemVkIGVzY2FwZSBzZXF1ZW5jZXMgaW4KKyAgICAgKiB0aGUgc2FtcGxlIG9mIHRleHQsIGFuZCBjb21wdXRlcyBhIHNjb3JlIGJhc2VkIG9uIHRoZSB0b3RhbCBudW1iZXIgJgorICAgICAqIHRoZSBwcm9wb3J0aW9uIHRoYXQgZml0IHRoZSBlbmNvZGluZy4KKyAgICAgKiAKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgYnl0ZSBidWZmZXIgY29udGFpbmluZyB0ZXh0IHRvIGFuYWx5c2UKKyAgICAgKiBAcGFyYW0gdGV4dExlbiAgdGhlIHNpemUgb2YgdGhlIHRleHQgaW4gdGhlIGJ5dGUuCisgICAgICogQHBhcmFtIGVzY2FwZVNlcXVlbmNlcyB0aGUgYnl0ZSBlc2NhcGUgc2VxdWVuY2VzIHRvIHRlc3QgZm9yLgorICAgICAqIEByZXR1cm4gbWF0Y2ggcXVhbGl0eSwgaW4gdGhlIHJhbmdlIG9mIDAtMTAwLgorICAgICAqLworICAgIGludCAgIG1hdGNoKGJ5dGUgW10gdGV4dCwgaW50IHRleHRMZW4sIGJ5dGUgW11bXSBlc2NhcGVTZXF1ZW5jZXMpIHsKKyAgICAgICAgaW50ICAgICBpLCBqOworICAgICAgICBpbnQgICAgIGVzY047CisgICAgICAgIGludCAgICAgaGl0cyAgID0gMDsKKyAgICAgICAgaW50ICAgICBtaXNzZXMgPSAwOworICAgICAgICBpbnQgICAgIHNoaWZ0cyA9IDA7CisgICAgICAgIGludCAgICAgcXVhbGl0eTsKKyAgICAgICAgc2NhbklucHV0OgorICAgICAgICAgICAgZm9yIChpPTA7IGk8dGV4dExlbjsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHRleHRbaV0gPT0gMHgxYikgeworICAgICAgICAgICAgICAgICAgICBjaGVja0VzY2FwZXM6CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGVzY049MDsgZXNjTjxlc2NhcGVTZXF1ZW5jZXMubGVuZ3RoOyBlc2NOKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlIFtdIHNlcSA9IGVzY2FwZVNlcXVlbmNlc1tlc2NOXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGo9MTsgajxzZXEubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlcVtqXSAhPSB0ZXh0W2kral0pICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBjaGVja0VzY2FwZXM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaXRzKys7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgKz0gc2VxLmxlbmd0aC0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIHNjYW5JbnB1dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIG1pc3NlcysrOyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAodGV4dFtpXSA9PSAweDBlIHx8IHRleHRbaV0gPT0gMHgwZikgeworICAgICAgICAgICAgICAgICAgICAvLyBTaGlmdCBpbi9vdXQKKyAgICAgICAgICAgICAgICAgICAgc2hpZnRzKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGhpdHMgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vCisgICAgICAgIC8vIEluaXRpYWwgcXVhbGl0eSBpcyBiYXNlZCBvbiByZWxhdGl2ZSBwcm9wb3J0aW9uIG9mIHJlY29uZ2l6ZWQgdnMuCisgICAgICAgIC8vICAgdW5yZWNvZ25pemVkIGVzY2FwZSBzZXF1ZW5jZXMuIAorICAgICAgICAvLyAgIEFsbCBnb29kOiAgcXVhbGl0eSA9IDEwMDsKKyAgICAgICAgLy8gICBoYWxmIG9yIGxlc3MgZ29vZDogcXVhbGl0eSA9IDA7CisgICAgICAgIC8vICAgbGluZWFyIGluYmV0d2Vlbi4KKyAgICAgICAgcXVhbGl0eSA9ICgxMDAqaGl0cyAtIDEwMCptaXNzZXMpIC8gKGhpdHMgKyBtaXNzZXMpOworICAgICAgICAKKyAgICAgICAgLy8gQmFjayBvZmYgcXVhbGl0eSBpZiB0aGVyZSB3ZXJlIHRvbyBmZXcgZXNjYXBlIHNlcXVlbmNlcyBzZWVuLgorICAgICAgICAvLyAgIEluY2x1ZGUgc2hpZnRzIGluIHRoaXMgY29tcHV0YXRpb24sIHNvIHRoYXQgS1IgZG9lcyBub3QgZ2V0IHBlbmFsaXplZAorICAgICAgICAvLyAgIGZvciBoYXZpbmcgb25seSBhIHNpbmdsZSBFc2NhcGUgc2VxdWVuY2UsIGJ1dCBtYW55IHNoaWZ0cy4KKyAgICAgICAgaWYgKGhpdHMrc2hpZnRzIDwgNSkgeworICAgICAgICAgICAgcXVhbGl0eSAtPSAoNS0oaGl0cytzaGlmdHMpKSoxMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHF1YWxpdHkgPCAwKSB7CisgICAgICAgICAgICBxdWFsaXR5ID0gMDsKKyAgICAgICAgfSAgICAgICAgCisgICAgICAgIHJldHVybiBxdWFsaXR5OworICAgIH0KKworICAgIAorIAorICAgIAorICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfMjAyMkpQIGV4dGVuZHMgQ2hhcnNldFJlY29nXzIwMjIgeworICAgICAgICBwcml2YXRlIGJ5dGUgW10gW10gZXNjYXBlU2VxdWVuY2VzID0geworICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDI4LCAweDQzfSwgICAvLyBLUyBYIDEwMDE6MTk5MgorICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDI4LCAweDQ0fSwgICAvLyBKSVMgWCAyMTItMTk5MAorICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDQwfSwgICAgICAgICAvLyBKSVMgQyA2MjI2LTE5NzgKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHg0MX0sICAgICAgICAgLy8gR0IgMjMxMi04MAorICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDQyfSwgICAgICAgICAvLyBKSVMgWCAyMDgtMTk4MworICAgICAgICAgICAgICAgIHsweDFiLCAweDI2LCAweDQwfSwgICAgICAgICAvLyBKSVMgWCAyMDggMTk5MCwgMTk5NworICAgICAgICAgICAgICAgIHsweDFiLCAweDI4LCAweDQyfSwgICAgICAgICAvLyBBU0NJSQorICAgICAgICAgICAgICAgIHsweDFiLCAweDI4LCAweDQ4fSwgICAgICAgICAvLyBKSVMtUm9tYW4KKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyOCwgMHg0OX0sICAgICAgICAgLy8gSGFsZi13aWR0aCBrYXRha2FuYQorICAgICAgICAgICAgICAgIHsweDFiLCAweDI4LCAweDRhfSwgICAgICAgICAvLyBKSVMtUm9tYW4KKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyZSwgMHg0MX0sICAgICAgICAgLy8gSVNPIDg4NTktMQorICAgICAgICAgICAgICAgIHsweDFiLCAweDJlLCAweDQ2fSAgICAgICAgICAvLyBJU08gODg1OS03CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuICJJU08tMjAyMi1KUCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCAgIG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQuZklucHV0Qnl0ZXMsIGRldC5mSW5wdXRMZW4sIGVzY2FwZVNlcXVlbmNlcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzIwMjJLUiBleHRlbmRzIENoYXJzZXRSZWNvZ18yMDIyIHsKKyAgICAgICAgcHJpdmF0ZSBieXRlIFtdIFtdIGVzY2FwZVNlcXVlbmNlcyA9IHsKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHgyOSwgMHg0M30gICAKKyAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuICJJU08tMjAyMi1LUiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCAgIG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQuZklucHV0Qnl0ZXMsIGRldC5mSW5wdXRMZW4sIGVzY2FwZVNlcXVlbmNlcyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ18yMDIyQ04gZXh0ZW5kcyBDaGFyc2V0UmVjb2dfMjAyMiB7CisgICAgICAgIHByaXZhdGUgYnl0ZSBbXSBbXSBlc2NhcGVTZXF1ZW5jZXMgPSB7CisgICAgICAgICAgICAgICAgezB4MWIsIDB4MjQsIDB4MjksIDB4NDF9LCAgIC8vIEdCIDIzMTItODAKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHgyOSwgMHg0N30sICAgLy8gQ05TIDExNjQzLTE5OTIgUGxhbmUgMQorICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDJBLCAweDQ4fSwgICAvLyBDTlMgMTE2NDMtMTk5MiBQbGFuZSAyCisgICAgICAgICAgICAgICAgezB4MWIsIDB4MjQsIDB4MjksIDB4NDV9LCAgIC8vIElTTy1JUi0xNjUKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHgyQiwgMHg0OX0sICAgLy8gQ05TIDExNjQzLTE5OTIgUGxhbmUgMworICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDJCLCAweDRBfSwgICAvLyBDTlMgMTE2NDMtMTk5MiBQbGFuZSA0CisgICAgICAgICAgICAgICAgezB4MWIsIDB4MjQsIDB4MkIsIDB4NEJ9LCAgIC8vIENOUyAxMTY0My0xOTkyIFBsYW5lIDUKKyAgICAgICAgICAgICAgICB7MHgxYiwgMHgyNCwgMHgyQiwgMHg0Q30sICAgLy8gQ05TIDExNjQzLTE5OTIgUGxhbmUgNgorICAgICAgICAgICAgICAgIHsweDFiLCAweDI0LCAweDJCLCAweDREfSwgICAvLyBDTlMgMTE2NDMtMTk5MiBQbGFuZSA3CisgICAgICAgICAgICAgICAgezB4MWIsIDB4NGV9LCAgICAgICAgICAgICAgIC8vIFNTMgorICAgICAgICAgICAgICAgIHsweDFiLCAweDRmfSwgICAgICAgICAgICAgICAvLyBTUzMKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgcmV0dXJuICJJU08tMjAyMi1DTiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBpbnQgICBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KSB7CisgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LmZJbnB1dEJ5dGVzLCBkZXQuZklucHV0TGVuLCBlc2NhcGVTZXF1ZW5jZXMpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIH0KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nX1VURjguamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ19VVEY4LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNiZWFmYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ19VVEY4LmphdmEKQEAgLTAsMCArMSw5OSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIENoYXJzZXQgcmVjb2duaXplciBmb3IgVVRGLTgKKyAqCisgKiBAaW50ZXJuYWwKKyAqLworY2xhc3MgQ2hhcnNldFJlY29nX1VURjggZXh0ZW5kcyBDaGFyc2V0UmVjb2duaXplciB7CisKKyAgICBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuICJVVEYtOCI7CisgICAgfQorCisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5DaGFyc2V0UmVjb2duaXplciNtYXRjaChjb20uaWJtLmljdS50ZXh0LkNoYXJzZXREZXRlY3RvcikKKyAgICAgKi8KKyAgICBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICBib29sZWFuICAgICBoYXNCT00gPSBmYWxzZTsKKyAgICAgICAgaW50ICAgICAgICAgbnVtVmFsaWQgPSAwOworICAgICAgICBpbnQgICAgICAgICBudW1JbnZhbGlkID0gMDsKKyAgICAgICAgYnl0ZSAgICAgICAgaW5wdXRbXSA9IGRldC5mUmF3SW5wdXQ7CisgICAgICAgIGludCAgICAgICAgIGk7CisgICAgICAgIGludCAgICAgICAgIHRyYWlsQnl0ZXMgPSAwOworICAgICAgICBpbnQgICAgICAgICBjb25maWRlbmNlOworICAgICAgICAKKyAgICAgICAgaWYgKGRldC5mUmF3TGVuZ3RoID49IDMgJiYgCisgICAgICAgICAgICAgICAgaW5wdXRbMF09PTB4ZWYgJiYgaW5wdXRbMV09PTB4YmIgJiBpbnB1dFsyXT09MHhiZikgeworICAgICAgICAgICAgaGFzQk9NID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gU2NhbiBmb3IgbXVsdGktYnl0ZSBzZXF1ZW5jZXMKKyAgICAgICAgZm9yIChpPTA7IGk8ZGV0LmZSYXdMZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaW50IGIgPSBpbnB1dFtpXTsKKyAgICAgICAgICAgIGlmICgoYiAmIDB4ODApID09IDApIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsgICAvLyBBU0NJSQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBIaSBiaXQgb24gY2hhciBmb3VuZC4gIEZpZ3VyZSBvdXQgaG93IGxvbmcgdGhlIHNlcXVlbmNlIHNob3VsZCBiZQorICAgICAgICAgICAgaWYgKChiICYgMHgwZTApID09IDB4MGMwKSB7CisgICAgICAgICAgICAgICAgdHJhaWxCeXRlcyA9IDE7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSBlbHNlIGlmICgoYiAmIDB4MGYwKSA9PSAweDBlMCkgeworICAgICAgICAgICAgICAgIHRyYWlsQnl0ZXMgPSAyOworICAgICAgICAgICAgfSBlbHNlIGlmICgoYiAmIDB4MGY4KSA9PSAweGYwKSB7CisgICAgICAgICAgICAgICAgdHJhaWxCeXRlcyA9IDM7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG51bUludmFsaWQrKzsKKyAgICAgICAgICAgICAgICBpZiAobnVtSW52YWxpZCA+IDUpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyYWlsQnl0ZXMgPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgd2UndmUgZ290IHRoZSByaWdodCBudW1iZXIgb2YgdHJhaWwgYnl0ZXMgaW4gdGhlIHNlcXVlbmNlCisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgIGlmIChpPj1kZXQuZlJhd0xlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYiA9IGlucHV0W2ldOworICAgICAgICAgICAgICAgIGlmICgoYiAmIDB4YzApICE9IDB4MDgwKSB7CisgICAgICAgICAgICAgICAgICAgIG51bUludmFsaWQrKzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgtLXRyYWlsQnl0ZXMgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBudW1WYWxpZCsrOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gQ29vayB1cCBzb21lIHNvcnQgb2YgY29uZmlkZW5jZSBzY29yZSwgYmFzZWQgb24gcHJlc2Vuc2Ugb2YgYSBCT00KKyAgICAgICAgLy8gICAgYW5kIHRoZSBleGlzdGVuY2Ugb2YgdmFsaWQgYW5kL29yIGludmFsaWQgbXVsdGktYnl0ZSBzZXF1ZW5jZXMuCisgICAgICAgIGNvbmZpZGVuY2UgPSAwOworICAgICAgICBpZiAoaGFzQk9NICYmIG51bUludmFsaWQ9PTApIHsKKyAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAxMDA7CisgICAgICAgIH0gZWxzZSBpZiAoaGFzQk9NICYmIG51bVZhbGlkID4gbnVtSW52YWxpZCoxMCkgeworICAgICAgICAgICAgY29uZmlkZW5jZSA9IDgwOworICAgICAgICB9IGVsc2UgaWYgKG51bVZhbGlkID4gMyAmJiBudW1JbnZhbGlkID09IDApIHsKKyAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAxMDA7ICAgICAgICAgICAgCisgICAgICAgIH0gZWxzZSBpZiAobnVtVmFsaWQgPiAwICYmIG51bUludmFsaWQgPT0gMCkgeworICAgICAgICAgICAgY29uZmlkZW5jZSA9IDgwOworICAgICAgICB9IGVsc2UgaWYgKG51bVZhbGlkID09IDAgJiYgbnVtSW52YWxpZCA9PSAwKSB7CisgICAgICAgICAgICAvLyBQbGFpbiBBU0NJSS4gIAorICAgICAgICAgICAgY29uZmlkZW5jZSA9IDEwOyAgICAgICAgICAgIAorICAgICAgICB9IGVsc2UgaWYgKG51bVZhbGlkID4gbnVtSW52YWxpZCoxMCkgeworICAgICAgICAgICAgLy8gUHJvYmFibHkgY29ycnVwdXQgdXRmLTggZGF0YS4gIFZhbGlkIHNlcXVlbmNlcyBhcmVuJ3QgbGlrZWx5IGJ5IGNoYW5jZS4KKyAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAyNTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY29uZmlkZW5jZTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ19Vbmljb2RlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfVW5pY29kZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkODgzNTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfVW5pY29kZS5qYXZhCkBAIC0wLDAgKzEsMTQ2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioKKyAqIFRoaXMgY2xhc3MgbWF0Y2hlcyBVVEYtMTYgYW5kIFVURi0zMiwgYm90aCBiaWctIGFuZCBsaXR0bGUtZW5kaWFuLiBUaGUKKyAqIEJPTSB3aWxsIGJlIHVzZWQgaWYgaXQgaXMgcHJlc2VudC4KKyAqIAorICogQGludGVybmFsCisgKi8KK2Fic3RyYWN0IGNsYXNzIENoYXJzZXRSZWNvZ19Vbmljb2RlIGV4dGVuZHMgQ2hhcnNldFJlY29nbml6ZXIgeworCisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5DaGFyc2V0UmVjb2duaXplciNnZXROYW1lKCkKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBTdHJpbmcgZ2V0TmFtZSgpOworCisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5DaGFyc2V0UmVjb2duaXplciNtYXRjaChjb20uaWJtLmljdS50ZXh0LkNoYXJzZXREZXRlY3RvcikKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCk7CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ19VVEZfMTZfQkUgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfVW5pY29kZQorICAgIHsKKyAgICAgICAgU3RyaW5nIGdldE5hbWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gIlVURi0xNkJFIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVbXSBpbnB1dCA9IGRldC5mUmF3SW5wdXQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICgoaW5wdXRbMF0gJiAweEZGKSA9PSAweEZFICYmIChpbnB1dFsxXSAmIDB4RkYpID09IDB4RkYpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBUT0RPOiBEbyBzb21lIHN0YXRhc3RpY3MgdG8gY2hlY2sgZm9yIHVuc2lnbmVkIFVURi0xNkJFCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nX1VURl8xNl9MRSBleHRlbmRzIENoYXJzZXRSZWNvZ19Vbmljb2RlCisgICAgeworICAgICAgICBTdHJpbmcgZ2V0TmFtZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiVVRGLTE2TEUiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgYnl0ZVtdIGlucHV0ID0gZGV0LmZSYXdJbnB1dDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKChpbnB1dFswXSAmIDB4RkYpID09IDB4RkYgJiYgKGlucHV0WzFdICYgMHhGRikgPT0gMHhGRSAmJiAoaW5wdXRbMl0gIT0gMHgwMCB8fCBpbnB1dFszXSAhPSAweDAwKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAxMDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRPRE86IERvIHNvbWUgc3RhdGFzdGljcyB0byBjaGVjayBmb3IgdW5zaWduZWQgVVRGLTE2TEUKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBDaGFyc2V0UmVjb2dfVVRGXzMyIGV4dGVuZHMgQ2hhcnNldFJlY29nX1VuaWNvZGUKKyAgICB7CisgICAgICAgIGFic3RyYWN0IGludCBnZXRDaGFyKGJ5dGVbXSBpbnB1dCwgaW50IGluZGV4KTsKKyAgICAgICAgCisgICAgICAgIGFic3RyYWN0IFN0cmluZyBnZXROYW1lKCk7CisgICAgICAgIAorICAgICAgICBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgYnl0ZVtdIGlucHV0ICAgPSBkZXQuZlJhd0lucHV0OworICAgICAgICAgICAgaW50IGxpbWl0ICAgICAgPSAoZGV0LmZSYXdMZW5ndGggLyA0KSAqIDQ7CisgICAgICAgICAgICBpbnQgbnVtVmFsaWQgICA9IDA7CisgICAgICAgICAgICBpbnQgbnVtSW52YWxpZCA9IDA7CisgICAgICAgICAgICBib29sZWFuIGhhc0JPTSA9IGZhbHNlOworICAgICAgICAgICAgaW50IGNvbmZpZGVuY2UgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaW5wdXRbMF0gPT0gMHgwMCAmJiBpbnB1dFsxXSA9PSAweDAwICYmIChpbnB1dFsyXSAmIDB4RkYpID09IDB4RkUgJiYgKGlucHV0WzNdICYgMHhGRikgPT0gMHhGRikgeworICAgICAgICAgICAgICAgIGhhc0JPTSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBsaW1pdDsgaSArPSA0KSB7CisgICAgICAgICAgICAgICAgaW50IGNoID0gZ2V0Q2hhcihpbnB1dCwgaSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGNoIDwgMCB8fCBjaCA+PSAweDEwRkZGRiB8fCAoY2ggPj0gMHhEODAwICYmIGNoIDw9IDB4REZGRikpIHsKKyAgICAgICAgICAgICAgICAgICAgbnVtSW52YWxpZCArPSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG51bVZhbGlkICs9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIENvb2sgdXAgc29tZSBzb3J0IG9mIGNvbmZpZGVuY2Ugc2NvcmUsIGJhc2VkIG9uIHByZXNlbnNlIG9mIGEgQk9NCisgICAgICAgICAgICAvLyAgICBhbmQgdGhlIGV4aXN0ZW5jZSBvZiB2YWxpZCBhbmQvb3IgaW52YWxpZCBtdWx0aS1ieXRlIHNlcXVlbmNlcy4KKyAgICAgICAgICAgIGlmIChoYXNCT00gJiYgbnVtSW52YWxpZD09MCkgeworICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAxMDA7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGhhc0JPTSAmJiBudW1WYWxpZCA+IG51bUludmFsaWQqMTApIHsKKyAgICAgICAgICAgICAgICBjb25maWRlbmNlID0gODA7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG51bVZhbGlkID4gMyAmJiBudW1JbnZhbGlkID09IDApIHsKKyAgICAgICAgICAgICAgICBjb25maWRlbmNlID0gMTAwOyAgICAgICAgICAgIAorICAgICAgICAgICAgfSBlbHNlIGlmIChudW1WYWxpZCA+IDAgJiYgbnVtSW52YWxpZCA9PSAwKSB7CisgICAgICAgICAgICAgICAgY29uZmlkZW5jZSA9IDgwOworICAgICAgICAgICAgfSBlbHNlIGlmIChudW1WYWxpZCA+IG51bUludmFsaWQqMTApIHsKKyAgICAgICAgICAgICAgICAvLyBQcm9iYWJseSBjb3JydXB1dCBVVEYtMzJCRSBkYXRhLiAgVmFsaWQgc2VxdWVuY2VzIGFyZW4ndCBsaWtlbHkgYnkgY2hhbmNlLgorICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAyNTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGNvbmZpZGVuY2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ19VVEZfMzJfQkUgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfVVRGXzMyCisgICAgeworICAgICAgICBpbnQgZ2V0Q2hhcihieXRlW10gaW5wdXQsIGludCBpbmRleCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChpbnB1dFtpbmRleCArIDBdICYgMHhGRikgPDwgMjQgfCAoaW5wdXRbaW5kZXggKyAxXSAmIDB4RkYpIDw8IDE2IHwKKyAgICAgICAgICAgICAgICAgICAoaW5wdXRbaW5kZXggKyAyXSAmIDB4RkYpIDw8ICA4IHwgKGlucHV0W2luZGV4ICsgM10gJiAweEZGKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nIGdldE5hbWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gIlVURi0zMkJFIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIAorICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfVVRGXzMyX0xFIGV4dGVuZHMgQ2hhcnNldFJlY29nX1VURl8zMgorICAgIHsKKyAgICAgICAgaW50IGdldENoYXIoYnl0ZVtdIGlucHV0LCBpbnQgaW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAoaW5wdXRbaW5kZXggKyAzXSAmIDB4RkYpIDw8IDI0IHwgKGlucHV0W2luZGV4ICsgMl0gJiAweEZGKSA8PCAxNiB8CisgICAgICAgICAgICAgICAgICAgKGlucHV0W2luZGV4ICsgMV0gJiAweEZGKSA8PCAgOCB8IChpbnB1dFtpbmRleCArIDBdICYgMHhGRik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJVVEYtMzJMRSI7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfbWJjcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nX21iY3MuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDYzODBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hhcnNldFJlY29nX21iY3MuamF2YQpAQCAtMCwwICsxLDQ1NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKKworLyoqCisgKiBDaGFyc2V0UmVjb2duaXplciBpbXBsZW1lbmF0aW9uIGZvciBBc2lhbiAgLSBkb3VibGUgb3IgbXVsdGktYnl0ZSAtIGNoYXJzZXRzLgorICogICAgICAgICAgICAgICAgICAgTWF0Y2ggaXMgZGV0ZXJtaW5lZCBtb3N0bHkgYnkgdGhlIGlucHV0IGRhdGEgYWRoZXJpbmcgdG8gdGhlCisgKiAgICAgICAgICAgICAgICAgICBlbmNvZGluZyBzY2hlbWUgZm9yIHRoZSBjaGFyc2V0LCBhbmQsIG9wdGlvbmFsbHksCisgKiAgICAgICAgICAgICAgICAgICBmcmVxdWVuY3ktb2Ytb2NjdXJlbmNlIG9mIGNoYXJhY3RlcnMuCisgKiA8cC8+CisgKiAgICAgICAgICAgICAgICAgICBJbnN0YW5jZXMgb2YgdGhpcyBjbGFzcyBhcmUgc2luZ2xldG9ucywgb25lIHBlciBlbmNvZGluZworICogICAgICAgICAgICAgICAgICAgYmVpbmcgcmVjb2duaXplZC4gIFRoZXkgYXJlIGNyZWF0ZWQgaW4gdGhlIG1haW4KKyAqICAgICAgICAgICAgICAgICAgIENoYXJzZXREZXRlY3RvciBjbGFzcyBhbmQga2VwdCBpbiB0aGUgZ2xvYmFsIGxpc3Qgb2YgYXZhaWxhYmxlCisgKiAgICAgICAgICAgICAgICAgICBlbmNvZGluZ3MgdG8gYmUgY2hlY2tlZC4gIFRoZSBzcGVjaWZpYyBlbmNvZGluZyBiZWluZyByZWNvZ25pemVkCisgKiAgICAgICAgICAgICAgICAgICBpcyBkZXRlcm1pbmVkIGJ5IHN1YmNsYXNzLgorICogCisgKiBAaW50ZXJuYWwgICAgICAgICAgICAgICAgICAKKyAqLworYWJzdHJhY3QgY2xhc3MgQ2hhcnNldFJlY29nX21iY3MgZXh0ZW5kcyBDaGFyc2V0UmVjb2duaXplciB7CisKKyAgICAKKyAgICAgCisgICAgLyoqCisgICAgICogR2V0IHRoZSBJQU5BIG5hbWUgb2YgdGhpcyBjaGFyc2V0LgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJzZXQgbmFtZS4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBTdHJpbmcgICAgICBnZXROYW1lKCkgOworICAgIAorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIG1hdGNoIG9mIHRoaXMgY2hhcnNldCB3aXRoIHRoZSBpbnB1dCB0ZXh0IGRhdGEKKyAgICAgKiAgICAgIHdoaWNoIGlzIG9idGFpbmVkIHZpYSB0aGUgQ2hhcnNldERldGVjdG9yIG9iamVjdC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZGV0ICBUaGUgQ2hhcnNldERldGVjdG9yLCB3aGljaCBjb250YWlucyB0aGUgaW5wdXQgdGV4dAorICAgICAqICAgICAgICAgICAgIHRvIGJlIGNoZWNrZWQgZm9yIGJlaW5nIGluIHRoaXMgY2hhcnNldC4KKyAgICAgKiBAcmV0dXJuICAgICBUd28gdmFsdWVzIHBhY2tlZCBpbnRvIG9uZSBpbnQgIChEYW1uIGphdmEsIGFueWhvdykKKyAgICAgKiAgICAgICAgICAgICA8YnIvPgorICAgICAqICAgICAgICAgICAgIGJpdHMgMC03OiAgdGhlIG1hdGNoIGNvbmZpZGVuY2UsIHJhbmdpbmcgZnJvbSAwLTEwMAorICAgICAqICAgICAgICAgICAgIDxici8+CisgICAgICogICAgICAgICAgICAgYml0cyA4LTE1OiBUaGUgbWF0Y2ggcmVhc29uLCBhbiBlbnVtLWxpa2UgdmFsdWUuCisgICAgICovCisgICAgaW50ICAgICAgICAgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCwgaW50IFtdIGNvbW1vbkNoYXJzKSB7CisgICAgICAgIGludCAgIHNpbmdsZUJ5dGVDaGFyQ291bnQgPSAwOworICAgICAgICBpbnQgICBkb3VibGVCeXRlQ2hhckNvdW50ID0gMDsKKyAgICAgICAgaW50ICAgY29tbW9uQ2hhckNvdW50ICAgICA9IDA7CisgICAgICAgIGludCAgIGJhZENoYXJDb3VudCAgICAgICAgPSAwOworICAgICAgICBpbnQgICB0b3RhbENoYXJDb3VudCAgICAgID0gMDsKKyAgICAgICAgaW50ICAgY29uZmlkZW5jZSAgICAgICAgICA9IDA7CisgICAgICAgIGl0ZXJhdGVkQ2hhciAgIGl0ZXIgICAgICAgPSBuZXcgaXRlcmF0ZWRDaGFyKCk7CisgICAgICAgIAorICAgICAgICBkZXRlY3RCbG9jazogeworICAgICAgICAgICAgZm9yIChpdGVyLnJlc2V0KCk7IG5leHRDaGFyKGl0ZXIsIGRldCk7KSB7CisgICAgICAgICAgICAgICAgdG90YWxDaGFyQ291bnQrKzsKKyAgICAgICAgICAgICAgICBpZiAoaXRlci5lcnJvcikgeworICAgICAgICAgICAgICAgICAgICBiYWRDaGFyQ291bnQrKzsgCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChpdGVyLmNoYXJWYWx1ZSA8PSAweGZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzaW5nbGVCeXRlQ2hhckNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGVCeXRlQ2hhckNvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29tbW9uQ2hhcnMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheXMuYmluYXJ5U2VhcmNoKGNvbW1vbkNoYXJzLCBpdGVyLmNoYXJWYWx1ZSkgPj0gMCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbkNoYXJDb3VudCsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYmFkQ2hhckNvdW50ID49IDIgJiYgYmFkQ2hhckNvdW50KjUgPj0gZG91YmxlQnl0ZUNoYXJDb3VudCkgeworICAgICAgICAgICAgICAgICAgICAvLyBCYWlsIG91dCBlYXJseSBpZiB0aGUgYnl0ZSBkYXRhIGlzIG5vdCBtYXRjaGluZyB0aGUgZW5jb2Rpbmcgc2NoZW1lLgorICAgICAgICAgICAgICAgICAgICBicmVhayBkZXRlY3RCbG9jazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChkb3VibGVCeXRlQ2hhckNvdW50ID09IDAgJiYgYmFkQ2hhckNvdW50PT0gMCkgeworICAgICAgICAgICAgICAgIC8vIE5vIG11bHRpLWJ5dGUgY2hhcnMuCisgICAgICAgICAgICAgICAgLy8gICBBU0NJSSBmaWxlPyAgSXQncyBwcm9iYWJseSBub3Qgb3VyIGVuY29kaW5nLAorICAgICAgICAgICAgICAgIC8vICAgYnV0IGlzIG5vdCBpbmNvbXBhdGlibGUgd2l0aCBvdXIgZW5jb2RpbmcsIHNvIGRvbid0IGdpdmUgaXQgYSB6ZXJvLgorICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UgPSAxMDsKKyAgICAgICAgICAgICAgICBicmVhayBkZXRlY3RCbG9jazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vICBObyBtYXRjaCBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgY2hhcmFjdGVycyB0aGF0IGRvbid0IGZpdCB0aGUgZW5jb2Rpbmcgc2NoZW1lLgorICAgICAgICAgICAgLy8gICAgKHNob3VsZCB3ZSBoYXZlIHplcm8gdG9sZXJhbmNlIGZvciB0aGVzZT8pCisgICAgICAgICAgICAvLworICAgICAgICAgICAgaWYgKGRvdWJsZUJ5dGVDaGFyQ291bnQgPCAyMCpiYWRDaGFyQ291bnQpIHsKKyAgICAgICAgICAgICAgICBjb25maWRlbmNlID0gMDsKKyAgICAgICAgICAgICAgICBicmVhayBkZXRlY3RCbG9jazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGNvbW1vbkNoYXJzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIG5vIHN0YXRpc3RpY3Mgb24gZnJlcXVlbnRseSBvY2N1cmluZyBjaGFyYWN0ZXJzLgorICAgICAgICAgICAgICAgIC8vICBBc3Nlc3MgY29uZmlkZW5jZSBwdXJlbHkgb24gaGF2aW5nIGEgcmVhc29uYWJsZSBudW1iZXIgb2YKKyAgICAgICAgICAgICAgICAvLyAgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzICh0aGUgbW9yZSB0aGUgYmV0dGVyCisgICAgICAgICAgICAgICAgY29uZmlkZW5jZSA9IDMwICsgZG91YmxlQnl0ZUNoYXJDb3VudCAtIDIwKmJhZENoYXJDb3VudDsKKyAgICAgICAgICAgICAgICBpZiAoY29uZmlkZW5jZSA+IDEwMCkgeworICAgICAgICAgICAgICAgICAgICBjb25maWRlbmNlID0gMTAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNlIHsKKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8vIEZyZXF1ZW5jeSBvZiBvY2N1cmVuY2Ugc3RhdGlzdGljcyBleGlzdC4KKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIGRvdWJsZSBtYXhWYWwgPSBNYXRoLmxvZygoZmxvYXQpZG91YmxlQnl0ZUNoYXJDb3VudCAvIDQpOworICAgICAgICAgICAgICAgIGRvdWJsZSBzY2FsZUZhY3RvciA9IDkwLjAgLyBtYXhWYWw7CisgICAgICAgICAgICAgICAgY29uZmlkZW5jZSA9IChpbnQpKE1hdGgubG9nKGNvbW1vbkNoYXJDb3VudCsxKSAqIHNjYWxlRmFjdG9yICsgMTApOworICAgICAgICAgICAgICAgIGNvbmZpZGVuY2UgPSBNYXRoLm1pbihjb25maWRlbmNlLCAxMDApOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgLy8gZW5kIG9mIGRldGVjdEJsb2NrOgorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGNvbmZpZGVuY2U7CisgICAgfQorICAgIAorICAgICAvLyAiQ2hhcmFjdGVyIiAgaXRlcmF0ZWQgY2hhcmFjdGVyIGNsYXNzLgorICAgICAvLyAgICBSZWNvZ25pemVycyBmb3Igc3BlY2lmaWMgbWJjcyBlbmNvZGluZ3MgbWFrZSB0aGVpciAiY2hhcmFjdGVycyIgYXZhaWxhYmxlCisgICAgIC8vICAgIGJ5IHByb3ZpZGluZyBhIG5leHRDaGFyKCkgZnVuY3Rpb24gdGhhdCBmaWxscyBpbiBhbiBpbnN0YW5jZSBvZiBpdGVyYXRlZENoYXIKKyAgICAgLy8gICAgd2l0aCB0aGUgbmV4dCBjaGFyIGZyb20gdGhlIGlucHV0LgorICAgICAvLyAgICBUaGUgcmV0dXJuZWQgY2hhcmFjdGVycyBhcmUgbm90IGNvbnZlcnRlZCB0byBVbmljb2RlLCBidXQgcmVtYWluIGFzIHRoZSByYXcKKyAgICAgLy8gICAgYnl0ZXMgKGNvbmNhdGVuYXRlZCBpbnRvIGFuIGludCkgZnJvbSB0aGUgY29kZXBhZ2UgZGF0YS4KKyAgICAgLy8KKyAgICAgLy8gIEZvciBBc2lhbiBjaGFyc2V0cywgdXNlIHRoZSByYXcgaW5wdXQgcmF0aGVyIHRoYW4gdGhlIGlucHV0IHRoYXQgaGFzIGJlZW4KKyAgICAgLy8gICBzdHJpcHBlZCBvZiBtYXJrdXAuICBEZXRlY3Rpb24gb25seSBjb25zaWRlcnMgbXVsdGktYnl0ZSBjaGFycywgZWZmZWN0aXZlbHkKKyAgICAgLy8gICBzdHJpcHBpbmcgbWFya3VwIGFueXdheSwgYW5kIGRvdWJsZSBieXRlIGNoYXJzIGRvIG9jY3VyIGluIG1hcmt1cCB0b28uCisgICAgIC8vCisgICAgIHN0YXRpYyBjbGFzcyBpdGVyYXRlZENoYXIgeworICAgICAgICAgaW50ICAgICAgICAgICAgIGNoYXJWYWx1ZSA9IDA7ICAgICAgICAgICAgIC8vIDEtNCBieXRlcyBmcm9tIHRoZSByYXcgaW5wdXQgZGF0YQorICAgICAgICAgaW50ICAgICAgICAgICAgIGluZGV4ICAgICA9IDA7CisgICAgICAgICBpbnQgICAgICAgICAgICAgbmV4dEluZGV4ID0gMDsKKyAgICAgICAgIGJvb2xlYW4gICAgICAgICBlcnJvciAgICAgPSBmYWxzZTsKKyAgICAgICAgIGJvb2xlYW4gICAgICAgICBkb25lICAgICAgPSBmYWxzZTsKKyAgICAgICAgIAorICAgICAgICAgdm9pZCByZXNldCgpIHsKKyAgICAgICAgICAgICBjaGFyVmFsdWUgPSAwOworICAgICAgICAgICAgIGluZGV4ICAgICA9IC0xOworICAgICAgICAgICAgIG5leHRJbmRleCA9IDA7CisgICAgICAgICAgICAgZXJyb3IgICAgID0gZmFsc2U7CisgICAgICAgICAgICAgZG9uZSAgICAgID0gZmFsc2U7CisgICAgICAgICB9CisgICAgICAgICAKKyAgICAgICAgIGludCBuZXh0Qnl0ZShDaGFyc2V0RGV0ZWN0b3IgZGV0KSB7CisgICAgICAgICAgICAgaWYgKG5leHRJbmRleCA+PSBkZXQuZlJhd0xlbmd0aCkgeworICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBpbnQgYnl0ZVZhbHVlID0gKGludClkZXQuZlJhd0lucHV0W25leHRJbmRleCsrXSAmIDB4MDBmZjsKKyAgICAgICAgICAgICByZXR1cm4gYnl0ZVZhbHVlOworICAgICAgICAgfSAgICAgICAKKyAgICAgfQorICAgICAKKyAgICAgLyoqCisgICAgICAqIEdldCB0aGUgbmV4dCBjaGFyYWN0ZXIgKGhvd2V2ZXIgbWFueSBieXRlcyBpdCBpcykgZnJvbSB0aGUgaW5wdXQgZGF0YQorICAgICAgKiAgICBTdWJjbGFzc2VzIGZvciBzcGVjaWZpYyBjaGFyc2V0IGVuY29kaW5ncyBtdXN0IGltcGxlbWVudCB0aGlzIGZ1bmN0aW9uCisgICAgICAqICAgIHRvIGdldCBjaGFyYWN0ZXJzIGFjY29yZGluZyB0byB0aGUgcnVsZXMgb2YgdGhlaXIgZW5jb2Rpbmcgc2NoZW1lLgorICAgICAgKiAKKyAgICAgICogIFRoaXMgZnVuY3Rpb24gaXMgbm90IGEgbWV0aG9kIG9mIGNsYXNzIGl0ZXJhdGVkQ2hhciBvbmx5IGJlY2F1c2UKKyAgICAgICogICB0aGF0IHdvdWxkIHJlcXVpcmUgYSBsb3Qgb2YgZXh0cmEgZGVyaXZlZCBjbGFzc2VzLCB3aGljaCBpcyBhd2t3YXJkLgorICAgICAgKiBAcGFyYW0gaXQgIFRoZSBpdGVyYXRlZENoYXIgInN0cnVjdCIgaW50byB3aGljaCB0aGUgcmV0dXJuZWQgY2hhciBpcyBwbGFjZWQuCisgICAgICAqIEBwYXJhbSBkZXQgVGhlIGNoYXJzZXQgZGV0ZWN0b3IsIHdoaWNoIGlzIG5lZWRlZCB0byBnZXQgYXQgdGhlIGlucHV0IGJ5dGUgZGF0YQorICAgICAgKiAgICAgICAgICAgIGJlaW5nIGl0ZXJhdGVkIG92ZXIuCisgICAgICAqIEByZXR1cm4gICAgVHJ1ZSBpZiBhIGNoYXJhY3RlciB3YXMgcmV0dXJuZWQsIGZhbHNlIGF0IGVuZCBvZiBpbnB1dC4KKyAgICAgICovCisgICAgIGFic3RyYWN0IGJvb2xlYW4gbmV4dENoYXIoaXRlcmF0ZWRDaGFyIGl0LCBDaGFyc2V0RGV0ZWN0b3IgZGV0KTsKKyAgICAgCisKKworICAgICAKKyAgICAgCisgICAgIC8qKgorICAgICAgKiAgIFNoaWZ0LUpJUyBjaGFyc2V0IHJlY29nbml6ZXIuICAgCisgICAgICAqCisgICAgICAqLworICAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nX3NqaXMgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfbWJjcyB7CisgICAgICAgICBzdGF0aWMgaW50IFtdIGNvbW1vbkNoYXJzID0gCisgICAgICAgICAgICAgLy8gVE9ETzogIFRoaXMgc2V0IG9mIGRhdGEgY29tZXMgZnJvbSB0aGUgY2hhcmFjdGVyIGZyZXF1ZW5jeS0KKyAgICAgICAgICAgICAvLyAgICAgICAgb2Ytb2NjdXJlbmNlIGFuYWx5c2lzIHRvb2wuICBUaGUgZGF0YSBuZWVkcyB0byBiZSBtb3ZlZAorICAgICAgICAgICAgIC8vICAgICAgICBpbnRvIGEgcmVzb3VyY2UgYW5kIGxvYWRlZCBmcm9tIHRoZXJlLgorICAgICAgICAgICAgICAgIHsweDgyY2MsIDB4ODJjNSwgMHg4MmEyLCAweDgxNWIsIDB4ODE0MSwgMHg4MmI1LCAweDgyYzksIDB4ODJiNywgMHg4MTQyLCAweDgyYzQsIAorICAgICAgICAgICAgICAgICAweDgyYzYsIDB4ODJjZCwgMHg4MmRjLCAweDgyZjAsIDB4ODJlOSwgMHg4MmM4LCAweDgyYWEsIDB4ODM5MywgMHg4MmJkLCAweDgzNTgsIAorICAgICAgICAgICAgICAgICAweDgyZWEsIDB4ODM0MywgMHg4MmE0LCAweDgyYTksIDB4ODM2NywgMHg4MmIxLCAweDgxNDUsIDB4ODJlMCwgMHg4MzhiLCAweDgzNGUsIAorICAgICAgICAgICAgICAgICAweDgyZTgsIDB4ODJlNywgMHg4MTQwLCAweDgzNjIsIDB4ODM4OSwgMHg4MmMxLCAweDgzOGEsIDB4ODJhYiwgMHg4Mzc2LCAweDgyYjMsIAorICAgICAgICAgICAgICAgICAweDgyZjEsIDB4ODJhMCwgMHg4MzY4LCAweDkzZmEsIDB4ODE3NSwgMHg4MTc2LCAweDgzNWUsIDB4ODJlNiwgMHg4MzU3LCAweDgyYWQsIAorICAgICAgICAgICAgICAgICAweDgzODEsIDB4ODJhNiwgMHg4MmI5LCAweDgyYmIsIDB4ODJiZSwgMHg4MzQxLCAweDgzNzQsIDB4ODJhZiwgMHg5MDU2LCAweDgyYTgsIAorICAgICAgICAgICAgICAgICAweDgyYzIsIDB4ODM1NCwgMHg4ZTY3LCAweDgzNzUsIDB4ODJjNywgMHg5NWYxLCAweDgzNTYsIDB4OTY3YiwgMHg5MmU4LCAweDgzNDUsIAorICAgICAgICAgICAgICAgICAweDgyY2UsIDB4ODM4NSwgMHg5NzcwLCAweDgyZGYsIDB4ODJkZCwgMHg4MzZmLCAweDgzNDIsIDB4OGNhNywgMHg4MzUyLCAweDgzN2QsIAorICAgICAgICAgICAgICAgICAweDgzOGQsIDB4ODM0NiwgMHg4MzRmLCAweDgzODAsIDB4ODJlZCwgMHg4ZDczLCAweDgzNDksIDB4ODM2NSwgMHg4ZmVlLCAweDk1YjYsIAorICAgICAgICAgICAgICAgICAweDgxNjksIDB4ODE2YSwgMHg4MzZhLCAweDhkZWMsIDB4ODJiZiwgMHg4MzRjLCAweDgzNjYsIDB4ODJlMiwgMHg4MzhjLCAweDk0NWN9OworICAgICAgICAgCisgICAgICAgICBib29sZWFuIG5leHRDaGFyKGl0ZXJhdGVkQ2hhciBpdCwgQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICAgICAgIGl0LmluZGV4ID0gaXQubmV4dEluZGV4OworICAgICAgICAgICAgIGl0LmVycm9yID0gZmFsc2U7CisgICAgICAgICAgICAgaW50IGZpcnN0Qnl0ZTsKKyAgICAgICAgICAgICBmaXJzdEJ5dGUgPSBpdC5jaGFyVmFsdWUgPSBpdC5uZXh0Qnl0ZShkZXQpOworICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPCAwKSB7CisgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8PSAweDdmIHx8IChmaXJzdEJ5dGU+MHhhMCAmJiBmaXJzdEJ5dGU8PTB4ZGYpKSB7CisgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICBpbnQgc2Vjb25kQnl0ZSA9IGl0Lm5leHRCeXRlKGRldCk7CisgICAgICAgICAgICAgaWYgKHNlY29uZEJ5dGUgPCAwKSAgeworICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgICAgICAgIAorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBpdC5jaGFyVmFsdWUgPSAoZmlyc3RCeXRlIDw8IDgpIHwgc2Vjb25kQnl0ZTsKKyAgICAgICAgICAgICBpZiAoISAoKHNlY29uZEJ5dGU+PTB4NDAgJiYgc2Vjb25kQnl0ZTw9MHg3ZikgfHwgKHNlY29uZEJ5dGU+PTB4ODAgJiYgc2Vjb25kQnl0ZTw9MHhmZikpKSB7CisgICAgICAgICAgICAgICAgIC8vIElsbGVnYWwgc2Vjb25kIGJ5dGUgdmFsdWUuCisgICAgICAgICAgICAgICAgIGl0LmVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICB9CisgICAgICAgICAKKyAgICAgICAgIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KSB7CisgICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgY29tbW9uQ2hhcnMpOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgICByZXR1cm4gIlNoaWZ0X0pJUyI7CisgICAgICAgICB9CisgICAgICAgICAKKyAgICAgfQorICAgICAKKyAgICAgCisgICAgIC8qKgorICAgICAgKiAgIEVVQyBjaGFyc2V0IHJlY29nbml6ZXJzLiAgT25lIGFic3RyYWN0IGNsYXNzIHRoYXQgcHJvdmlkZXMgdGhlIGNvbW1vbiBmdW5jdGlvbgorICAgICAgKiAgICAgICAgICAgICBmb3IgZ2V0dGluZyB0aGUgbmV4dCBjaGFyYWN0ZXIgYWNjb3JkaW5nIHRvIHRoZSBFVUMgZW5jb2Rpbmcgc2NoZW1lLAorICAgICAgKiAgICAgICAgICAgICBhbmQgbmVzdGVkIGRlcml2ZWQgY2xhc3NlcyBmb3IgRVVDX0tSLCBFVUNfSlAsIEVVQ19DTi4gICAKKyAgICAgICoKKyAgICAgICovCisgICAgIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfZXVjIGV4dGVuZHMgQ2hhcnNldFJlY29nX21iY3MgeworICAgICAgICAgCisgICAgICAgICAvKgorICAgICAgICAgICogIChub24tSmF2YWRvYykKKyAgICAgICAgICAqICBHZXQgdGhlIG5leHQgY2hhcmFjdGVyIHZhbHVlIGZvciBFVUMgYmFzZWQgZW5jb2RpbmdzLgorICAgICAgICAgICogIENoYXJhY3RlciAidmFsdWUiIGlzIHNpbXBseSB0aGUgcmF3IGJ5dGVzIHRoYXQgbWFrZSB1cCB0aGUgY2hhcmFjdGVyCisgICAgICAgICAgKiAgICAgcGFja2VkIGludG8gYW4gaW50LgorICAgICAgICAgICovCisgICAgICAgICBib29sZWFuIG5leHRDaGFyKGl0ZXJhdGVkQ2hhciBpdCwgQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICAgICAgIGl0LmluZGV4ID0gaXQubmV4dEluZGV4OworICAgICAgICAgICAgIGl0LmVycm9yID0gZmFsc2U7CisgICAgICAgICAgICAgaW50IGZpcnN0Qnl0ZSAgPSAwOworICAgICAgICAgICAgIGludCBzZWNvbmRCeXRlID0gMDsKKyAgICAgICAgICAgICBpbnQgdGhpcmRCeXRlICA9IDA7CisgICAgICAgICAgICAgaW50IGZvdXJ0aEJ5dGUgPSAwOworICAgICAgICAgICAgIAorICAgICAgICAgICAgIGJ1aWxkQ2hhcjogeworICAgICAgICAgICAgICAgICBmaXJzdEJ5dGUgPSBpdC5jaGFyVmFsdWUgPSBpdC5uZXh0Qnl0ZShkZXQpOyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAvLyBSYW4gb2ZmIHRoZSBlbmQgb2YgdGhlIGlucHV0IGRhdGEKKyAgICAgICAgICAgICAgICAgICAgIGl0LmRvbmUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYnVpbGRDaGFyOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPD0gMHg4ZCkgeworICAgICAgICAgICAgICAgICAgICAgLy8gc2luZ2xlIGJ5dGUgY2hhcgorICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYnVpbGRDaGFyOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICBzZWNvbmRCeXRlID0gaXQubmV4dEJ5dGUoZGV0KTsKKyAgICAgICAgICAgICAgICAgaXQuY2hhclZhbHVlID0gKGl0LmNoYXJWYWx1ZSA8PCA4KSB8IHNlY29uZEJ5dGU7CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICBpZiAoZmlyc3RCeXRlID49IDB4QTEgJiYgZmlyc3RCeXRlIDw9IDB4ZmUpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIFR3byBieXRlIENoYXIKKyAgICAgICAgICAgICAgICAgICAgIGlmIChzZWNvbmRCeXRlIDwgMHhhMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGl0LmVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGJ1aWxkQ2hhcjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBpZiAoZmlyc3RCeXRlID09IDB4OGUpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIENvZGUgU2V0IDIuCisgICAgICAgICAgICAgICAgICAgICAvLyAgIEluIEVVQy1KUCwgdG90YWwgY2hhciBzaXplIGlzIDIgYnl0ZXMsIG9ubHkgb25lIGJ5dGUgb2YgYWN0dWFsIGNoYXIgdmFsdWUuCisgICAgICAgICAgICAgICAgICAgICAvLyAgIEluIEVVQy1UVywgdG90YWwgY2hhciBzaXplIGlzIDQgYnl0ZXMsIHRocmVlIGJ5dGVzIGNvbnRyaWJ1dGUgdG8gY2hhciB2YWx1ZS4KKyAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0IGtub3cgd2hpY2ggd2UndmUgZ290LgorICAgICAgICAgICAgICAgICAgICAgLy8gVHJlYXQgaXQgbGlrZSBFVUMtSlAuICBJZiB0aGUgZGF0YSByZWFsbHkgd2FzIEVVQy1UVywgdGhlIGZvbGxvd2luZyB0d28KKyAgICAgICAgICAgICAgICAgICAgIC8vICAgYnl0ZXMgd2lsbCBsb29rIGxpa2UgYSB3ZWxsIGZvcm1lZCAyIGJ5dGUgY2hhci4gIAorICAgICAgICAgICAgICAgICAgICAgaWYgKHNlY29uZEJ5dGUgPCAweGExKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgaXQuZXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYnVpbGRDaGFyOyAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICBpZiAoZmlyc3RCeXRlID09IDB4OGYpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIENvZGUgc2V0IDMuCisgICAgICAgICAgICAgICAgICAgICAvLyBUaHJlZSBieXRlIHRvdGFsIGNoYXIgc2l6ZSwgdHdvIGJ5dGVzIG9mIGFjdHVhbCBjaGFyIHZhbHVlLgorICAgICAgICAgICAgICAgICAgICAgdGhpcmRCeXRlICAgID0gaXQubmV4dEJ5dGUoZGV0KTsKKyAgICAgICAgICAgICAgICAgICAgIGl0LmNoYXJWYWx1ZSA9IChpdC5jaGFyVmFsdWUgPDwgOCkgfCB0aGlyZEJ5dGU7CisgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcmRCeXRlIDwgMHhhMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGl0LmVycm9yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgCisgICAgICAgICAgICAgcmV0dXJuIChpdC5kb25lID09IGZhbHNlKTsKKyAgICAgICAgIH0KKyAgICAgICAgIAorICAgICAgICAgLyoqCisgICAgICAgICAgKiBUaGUgY2hhcnNldCByZWNvZ25pemUgZm9yIEVVQy1KUC4gIEEgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MKKyAgICAgICAgICAqICAgIGlzIGNyZWF0ZWQgYW5kIGtlcHQgYnkgdGhlIHB1YmxpYyBDaGFyc2V0RGV0ZWN0b3IgY2xhc3MKKyAgICAgICAgICAqLworICAgICAgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ19ldWNfanAgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfZXVjIHsKKyAgICAgICAgICAgICBzdGF0aWMgaW50IFtdIGNvbW1vbkNoYXJzID0gCisgICAgICAgICAgICAgICAgIC8vIFRPRE86ICBUaGlzIHNldCBvZiBkYXRhIGNvbWVzIGZyb20gdGhlIGNoYXJhY3RlciBmcmVxdWVuY3ktCisgICAgICAgICAgICAgICAgIC8vICAgICAgICBvZi1vY2N1cmVuY2UgYW5hbHlzaXMgdG9vbC4gIFRoZSBkYXRhIG5lZWRzIHRvIGJlIG1vdmVkCisgICAgICAgICAgICAgICAgIC8vICAgICAgICBpbnRvIGEgcmVzb3VyY2UgYW5kIGxvYWRlZCBmcm9tIHRoZXJlLgorICAgICAgICAgICAgICAgICAgICB7MHhhNGNlLCAweGE0YzcsIDB4YTRhNCwgMHhhMWJjLCAweGExYTIsIDB4YTRiNywgMHhhNGNiLCAweGE0YjksIDB4YTFhMywgMHhhNGM2LCAKKyAgICAgICAgICAgICAgICAgICAgIDB4YTRjOCwgMHhhNGNmLCAweGE0ZGUsIDB4YTRmMiwgMHhhNGViLCAweGE0Y2EsIDB4YTRhYywgMHhhNWYzLCAweGE0YmYsIDB4YTViOSwgCisgICAgICAgICAgICAgICAgICAgICAweGE0ZWMsIDB4YTVhNCwgMHhhNGE2LCAweGE0YWIsIDB4YTVjOCwgMHhhNGIzLCAweGExYTYsIDB4YTRlMiwgMHhhNWViLCAweGE1YWYsIAorICAgICAgICAgICAgICAgICAgICAgMHhhNGVhLCAweGE0ZTksIDB4YTFhMSwgMHhhNWMzLCAweGE1ZTksIDB4YTRjMywgMHhhNWVhLCAweGE0YWQsIDB4YTVkNywgMHhhNGI1LCAKKyAgICAgICAgICAgICAgICAgICAgIDB4YTRmMywgMHhhNGEyLCAweGE1YzksIDB4YzZmYywgMHhhMWQ2LCAweGExZDcsIDB4YTViZiwgMHhhNGU4LCAweGE1YjgsIDB4YTRhZiwgCisgICAgICAgICAgICAgICAgICAgICAweGE1ZTEsIDB4YTRhOCwgMHhhNGJiLCAweGE0YmQsIDB4YTRjMCwgMHhhNWEyLCAweGE1ZDUsIDB4YTRiMSwgMHhiZmI3LCAweGE0YWEsIAorICAgICAgICAgICAgICAgICAgICAgMHhhNGM0LCAweGE1YjUsIDB4YmJjOCwgMHhhNWQ2LCAweGE0YzksIDB4Y2FmMywgMHhhNWI3LCAweGNiZGMsIDB4YzRlYSwgMHhhNWE2LCAKKyAgICAgICAgICAgICAgICAgICAgIDB4YTRkMCwgMHhhNWU1LCAweGNkZDEsIDB4YTRlMSwgMHhhNGRmLCAweGE1ZDAsIDB4YTVhMywgMHhiOGE5LCAweGE1YjMsIDB4YTVkZSwgCisgICAgICAgICAgICAgICAgICAgICAweGE1ZWQsIDB4YTVhNywgMHhhNWIwLCAweGE1ZTAsIDB4YTRlZiwgMHhiOWQ0LCAweGE1YWEsIDB4YTVjNiwgMHhiZWYwLCAweGNhYjgsIAorICAgICAgICAgICAgICAgICAgICAgMHhhMWNhLCAweGExY2IsIDB4YTVjYiwgMHhiYWVlLCAweGE0YzEsIDB4YTVhZCwgMHhhNWM3LCAweGE0ZTQsIDB4YTVlYywgMHhjN2JkfTsKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuICJFVUMtSlAiOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkgeworICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LCBjb21tb25DaGFycyk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICAvKioKKyAgICAgICAgICAqIFRoZSBjaGFyc2V0IHJlY29nbml6ZSBmb3IgRVVDLUtSLiAgQSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcworICAgICAgICAgICogICAgaXMgY3JlYXRlZCBhbmQga2VwdCBieSB0aGUgcHVibGljIENoYXJzZXREZXRlY3RvciBjbGFzcworICAgICAgICAgICovCisgICAgICAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nX2V1Y19rciBleHRlbmRzIENoYXJzZXRSZWNvZ19ldWMgeworICAgICAgICAgICAgIHN0YXRpYyBpbnQgW10gY29tbW9uQ2hhcnMgPSAKKyAgICAgICAgICAgICAgICAgLy8gVE9ETzogIFRoaXMgc2V0IG9mIGRhdGEgY29tZXMgZnJvbSB0aGUgY2hhcmFjdGVyIGZyZXF1ZW5jeS0KKyAgICAgICAgICAgICAgICAgLy8gICAgICAgIG9mLW9jY3VyZW5jZSBhbmFseXNpcyB0b29sLiAgVGhlIGRhdGEgbmVlZHMgdG8gYmUgbW92ZWQKKyAgICAgICAgICAgICAgICAgLy8gICAgICAgIGludG8gYSByZXNvdXJjZSBhbmQgbG9hZGVkIGZyb20gdGhlcmUuCisgICAgICAgICAgICAgICAgICAgIHsweGMwY2MsIDB4YjRkOSwgMHhiNGMyLCAweGMwYzcsIDB4YmZhMSwgMHhjN2NmLCAweGIwYTEsIDB4YjBlZCwgMHhjN2QxLCAweGMxZjYsIAorICAgICAgICAgICAgICAgICAgICAgMHhjMGJiLCAweGI3Y2UsIDB4YjFlMiwgMHhiY2FkLCAweGMwYmEsIDB4YmJlNywgMHhjMWE0LCAweGMwZGEsIDB4YjViNSwgMHhiOGE2LCAKKyAgICAgICAgICAgICAgICAgICAgIDB4YmVlZSwgMHhiNGNmLCAweGJjZjYsIDB4YmRjMywgMHhiMWQ3LCAweGI0ZWIsIDB4YjhhZSwgMHhjMGNlLCAweGIzYWEsIDB4YmVjNiwgCisgICAgICAgICAgICAgICAgICAgICAweGMwZDYsIDB4YmFiOCwgMHhiNWU5LCAweGI2ZjMsIDB4YzdkOCwgMHhiMGNkLCAweGMwY2YsIDB4YmRiYSwgMHhjMGI4LCAweGIxYjksIAorICAgICAgICAgICAgICAgICAgICAgMHhjMWE2LCAweGI5ZmQsIDB4YmJmMywgMHhiMGQ0LCAweGI4ZTksIDB4YjhiOCwgMHhiMGZhLCAweGMwZmIsIDB4YmFjZSwgMHhjMWQ2LCAKKyAgICAgICAgICAgICAgICAgICAgIDB4YmZhOSwgMHhjMGZjLCAweGJmZWIsIDB4YjlhZSwgMHhjNmFlLCAweGJiZmQsIDB4YmNiYSwgMHhjMGE3LCAweGJmZjgsIDB4YjVjNywgCisgICAgICAgICAgICAgICAgICAgICAweGJmZTQsIDB4YmZlYywgMHhiZGM1LCAweGM3ZDIsIDB4YzdlNSwgMHhiMGZjLCAweGIxYjgsIDB4YmFmMSwgMHhiZWRmLCAweGM1Y2QsIAorICAgICAgICAgICAgICAgICAgICAgMHhiOGI2LCAweGJkYzAsIDB4YjdhZiwgMHhiNWJmLCAweGIzYmIsIDB4YzhhZCwgMHhjMGJkLCAweGIwYjMsIDB4YzRhMSwgMHhiN2MyLCAKKyAgICAgICAgICAgICAgICAgICAgIDB4YjlhYiwgMHhjMGFmLCAweGJlZjgsIDB4YjVhNSwgMHhiY2QyLCAweGI5Y2UsIDB4YzFkZiwgMHhiZmMwLCAweGMxZjgsIDB4YjBlNiwgCisgICAgICAgICAgICAgICAgICAgICAweGIxYzcsIDB4YmFkMCwgMHhiZWZhLCAweGMwZTUsIDB4YmVjOCwgMHhjMWI2LCAweGI4YmIsIDB4YjBmOCwgMHhiOWNjLCAweGIwYzV9OworICAgICAgICAgICAgIAorICAgICAgICAgICAgIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgICAgICByZXR1cm4gIkVVQy1LUiI7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIAorICAgICAgICAgICAgIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KSB7CisgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIGNvbW1vbkNoYXJzKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgIH0KKyAgICAgCisgICAgIC8qKgorICAgICAgKiAKKyAgICAgICogICBHQi0xODAzMCByZWNvZ25pemVyLiBVc2VzIHNpbXBsaWZpZWQgQ2hpbmVzZSBzdGF0aXN0aWNzLiAgIAorICAgICAgKgorICAgICAgKi8KKyAgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ19nYl8xODAzMCBleHRlbmRzIENoYXJzZXRSZWNvZ19tYmNzIHsKKyAgICAgICAgIAorICAgICAgICAgLyoKKyAgICAgICAgICAqICAobm9uLUphdmFkb2MpCisgICAgICAgICAgKiAgR2V0IHRoZSBuZXh0IGNoYXJhY3RlciB2YWx1ZSBmb3IgRVVDIGJhc2VkIGVuY29kaW5ncy4KKyAgICAgICAgICAqICBDaGFyYWN0ZXIgInZhbHVlIiBpcyBzaW1wbHkgdGhlIHJhdyBieXRlcyB0aGF0IG1ha2UgdXAgdGhlIGNoYXJhY3RlcgorICAgICAgICAgICogICAgIHBhY2tlZCBpbnRvIGFuIGludC4KKyAgICAgICAgICAqLworICAgICAgICAgYm9vbGVhbiBuZXh0Q2hhcihpdGVyYXRlZENoYXIgaXQsIENoYXJzZXREZXRlY3RvciBkZXQpIHsKKyAgICAgICAgICAgICBpdC5pbmRleCA9IGl0Lm5leHRJbmRleDsKKyAgICAgICAgICAgICBpdC5lcnJvciA9IGZhbHNlOworICAgICAgICAgICAgIGludCBmaXJzdEJ5dGUgID0gMDsKKyAgICAgICAgICAgICBpbnQgc2Vjb25kQnl0ZSA9IDA7CisgICAgICAgICAgICAgaW50IHRoaXJkQnl0ZSAgPSAwOworICAgICAgICAgICAgIGludCBmb3VydGhCeXRlID0gMDsKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICBidWlsZENoYXI6IHsKKyAgICAgICAgICAgICAgICAgZmlyc3RCeXRlID0gaXQuY2hhclZhbHVlID0gaXQubmV4dEJ5dGUoZGV0KTsgCisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICBpZiAoZmlyc3RCeXRlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgLy8gUmFuIG9mZiB0aGUgZW5kIG9mIHRoZSBpbnB1dCBkYXRhCisgICAgICAgICAgICAgICAgICAgICBpdC5kb25lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGJ1aWxkQ2hhcjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8PSAweDgwKSB7CisgICAgICAgICAgICAgICAgICAgICAvLyBzaW5nbGUgYnl0ZSBjaGFyCisgICAgICAgICAgICAgICAgICAgICBicmVhayBidWlsZENoYXI7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIHNlY29uZEJ5dGUgPSBpdC5uZXh0Qnl0ZShkZXQpOworICAgICAgICAgICAgICAgICBpdC5jaGFyVmFsdWUgPSAoaXQuY2hhclZhbHVlIDw8IDgpIHwgc2Vjb25kQnl0ZTsKKyAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPj0gMHg4MSAmJiBmaXJzdEJ5dGUgPD0gMHhGRSkgeworICAgICAgICAgICAgICAgICAgICAgLy8gVHdvIGJ5dGUgQ2hhcgorICAgICAgICAgICAgICAgICAgICAgaWYgKChzZWNvbmRCeXRlID49IDB4NDAgJiYgc2Vjb25kQnl0ZSA8PSAweDdFKSB8fCAoc2Vjb25kQnl0ZSA+PTgwICYmIHNlY29uZEJ5dGUgPD0weEZFKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGJ1aWxkQ2hhcjsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgLy8gRm91ciBieXRlIGNoYXIKKyAgICAgICAgICAgICAgICAgICAgIGlmIChzZWNvbmRCeXRlID49IDB4MzAgJiYgc2Vjb25kQnl0ZSA8PSAweDM5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcmRCeXRlID0gaXQubmV4dEJ5dGUoZGV0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcmRCeXRlID49IDB4ODEgJiYgdGhpcmRCeXRlIDw9IDB4RkUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91cnRoQnl0ZSA9IGl0Lm5leHRCeXRlKGRldCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm91cnRoQnl0ZSA+PSAweDMwICYmIGZvdXJ0aEJ5dGUgPD0gMHgzOSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXQuY2hhclZhbHVlID0gKGl0LmNoYXJWYWx1ZSA8PCAxNikgfCAodGhpcmRCeXRlIDw8IDgpIHwgZm91cnRoQnl0ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGJ1aWxkQ2hhcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgaXQuZXJyb3IgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYnVpbGRDaGFyOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICByZXR1cm4gKGl0LmRvbmUgPT0gZmFsc2UpOworICAgICAgICAgfQorICAgICAgICAgCisgICAgICAgICBzdGF0aWMgaW50IFtdIGNvbW1vbkNoYXJzID0gCisgICAgICAgICAgICAgLy8gVE9ETzogIFRoaXMgc2V0IG9mIGRhdGEgY29tZXMgZnJvbSB0aGUgY2hhcmFjdGVyIGZyZXF1ZW5jeS0KKyAgICAgICAgICAgICAvLyAgICAgICAgb2Ytb2NjdXJlbmNlIGFuYWx5c2lzIHRvb2wuICBUaGUgZGF0YSBuZWVkcyB0byBiZSBtb3ZlZAorICAgICAgICAgICAgIC8vICAgICAgICBpbnRvIGEgcmVzb3VyY2UgYW5kIGxvYWRlZCBmcm9tIHRoZXJlLgorICAgICAgICAgICAgIHsweGEzYWMsIDB4YjVjNCwgMHhhMWExLCAweGExYTQsIDB4YTFhMywgMHhjYWM3LCAweGQyYmIsIDB4YjRmMywgMHhkNGRhLCAweGQ2ZDAsIAorICAgICAgICAgICAgIDB4Y2FmZCwgMHhkM2QwLCAweGExZjMsIDB4YjJiYiwgMHhhM2JhLCAweGJiZmEsIDB4YzhjYiwgMHhhMWEyLCAweGQzYzMsIDB4ZDFhNywgCisgICAgICAgICAgICAgMHhjOGQ1LCAweGJlZGQsIDB4YjhmNiwgMHhkMGMyLCAweGNkZjgsIDB4ZDJhYSwgMHhiOWZhLCAweGMxY2IsIDB4YzljZiwgMHhhMWIwLCAKKyAgICAgICAgICAgICAweGExYjEsIDB4Y2VkMiwgMHhiY2ZlLCAweGNlYzQsIDB4ZDJkNCwgMHhjNGRjLCAweGMwYjQsIDB4ZDRjMiwgMHhjYWIxLCAweGQwZDAsIAorICAgICAgICAgICAgIDB4YmRjYywgMHhiZmM5LCAweGI2ZDQsIDB4YmNkYiwgMHhiMWJlLCAweGIzZjYsIDB4YjhiNCwgMHhjOWZhLCAweGIxYjgsIDB4YmNiYywgCisgICAgICAgICAgICAgMHhjZmMyLCAweGJhY2QsIDB4YmVjZCwgMHhiM2M5LCAweGQ1ZTIsIDB4YjhkZiwgMHhiN2Q2LCAweGM1Y2MsIDB4YmZjNiwgMHhiYmUxLCAKKyAgICAgICAgICAgICAweGNlYWEsIDB4YzhlNywgMHhjZmI1LCAweGExZjEsIDB4YzRlYSwgMHhiMWE4LCAweGI2YWYsIDB4YzBlZCwgMHhkM2ZkLCAweGI3YTIsIAorICAgICAgICAgICAgIDB4YzhhYiwgMHhiN2JkLCAweGNlZTUsIDB4YzJkYiwgMHhiYmE3LCAweGQwZDQsIDB4YjljOSwgMHhjM2M3LCAweGI5ZmQsIDB4Y2FkMCwgCisgICAgICAgICAgICAgMHhiNWUzLCAweGJiZDYsIDB4Y2ZkNiwgMHhjYWI1LCAweGQyYjIsIDB4YmZiNCwgMHhiNmUwLCAweGNjZWMsIDB4YzdmOCwgMHhkMGM1LCAKKyAgICAgICAgICAgICAweGNhZDYsIDB4YjlkOCwgMHhiNWJkLCAweGI3ZGQsIDB4YzZmNywgMHhjYWY1LCAweGEzYTEsIDB4YjdhOCwgMHhiOWFiLCAweGQyYjUsIAorICAgICAgICAgICAgIDB4Y2JmOSwgMHhjZGJjLCAweGM2ZTQsIDB4ZDNkYSwgMHhkMGExLCAweGQxYTEsIDB4ZDNjZSwgMHhiZmFhLCAweGI0ZTYsIDB4YzRiZiwgCisgICAgICAgICAgICAgMHhkN2Y3LCAweGI1ZTcsIDB4Y2RiMywgMHhjN2U5LCAweGQ3ZWUsIDB4YzZjMCwgMHhjZmRmLCAweGI1ZDgsIDB4YjVjMCwgMHhiZWFkLCAKKyAgICAgICAgICAgICAweGI0YzUsIDB4YzZiNywgMHhjNGRhLCAweGQwYzQsIDB4YjlhNCwgMHhkNGFhLCAweGMyYmMsIDB4YzNjMCwgMHhiYWYzLCAweGNhYmQsIAorICAgICAgICAgICAgIDB4YmNkMiwgMHhjZWYxLCAweGJkYWIsIDB4YTNhZCwgMHhhM2JmLCAweGIzYTQsIDB4YjlmYiwgMHhkNmFlLCAweGMxYmYsIDB4YmJkOCwgCisgICAgICAgICAgICAgMHhiOGYxLCAweGI2ZjgsIDB4YjZhOCwgMHhjZGUyLCAweGJhYzMsIDB4YjNjYywgMHhjY2Q4LCAweGQ3ZDQsIDB4Y2JiNX07CisgICAgICAgICAKKyAgICAgICAgIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgIHJldHVybiAiR0IxODAzMCI7CisgICAgICAgICB9CisgICAgICAgICAKKyAgICAgICAgIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KSB7CisgICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgY29tbW9uQ2hhcnMpOworICAgICAgICAgfQorICAgICB9CisgICAgIAorICAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ19zYmNzLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfc2Jjcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNDQ3ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2dfc2Jjcy5qYXZhCkBAIC0wLDAgKzEsMTA0OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogVGhpcyBjbGFzcyByZWNvZ25pemVzIHNpbmdsZS1ieXRlIGVuY29kaW5ncy4gQmVjYXVzZSB0aGUgZW5jb2Rpbmcgc2NoZW1lIGlzIHNvCisgKiBzaW1wbGUsIGxhbmd1YWdlIHN0YXRpc3RpY3MgYXJlIHVzZWQgdG8gZG8gdGhlIG1hdGNoaW5nLgorICogCisgKiBAaW50ZXJuYWwKKyAqLworYWJzdHJhY3QgY2xhc3MgQ2hhcnNldFJlY29nX3NiY3MgZXh0ZW5kcyBDaGFyc2V0UmVjb2duaXplciB7CisKKyAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICogQHNlZSBjb20uaWJtLmljdS50ZXh0LkNoYXJzZXRSZWNvZ25pemVyI2dldE5hbWUoKQorICAgICAqLworICAgIGFic3RyYWN0IFN0cmluZyBnZXROYW1lKCk7CisKKyAgICAvKiAobm9uLUphdmFkb2MpCisgICAgICogQHNlZSBjb20uaWJtLmljdS50ZXh0LkNoYXJzZXRSZWNvZ25pemVyI21hdGNoKGNvbS5pYm0uaWN1LnRleHQuQ2hhcnNldERldGVjdG9yKQorICAgICAqLworICAgIGFic3RyYWN0IGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KTsKKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgTkdyYW1QYXJzZXIKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOX0dSQU1fU0laRSA9IDM7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOX0dSQU1fTUFTSyA9IDB4RkZGRkZGOworCisgICAgICAgIHByaXZhdGUgaW50IGJ5dGVJbmRleCA9IDA7CisgICAgICAgIHByaXZhdGUgaW50IG5ncmFtID0gMDsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgaW50W10gbmdyYW1MaXN0OworICAgICAgICBwcml2YXRlIGJ5dGVbXSBieXRlTWFwOworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBpbnQgbmdyYW1Db3VudDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgaGl0Q291bnQ7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgTkdyYW1QYXJzZXIoaW50W10gdGhlTmdyYW1MaXN0LCBieXRlW10gdGhlQnl0ZU1hcCkKKyAgICAgICAgeworICAgICAgICAgICAgbmdyYW1MaXN0ID0gdGhlTmdyYW1MaXN0OworICAgICAgICAgICAgYnl0ZU1hcCAgID0gdGhlQnl0ZU1hcDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbmdyYW0gPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBuZ3JhbUNvdW50ID0gaGl0Q291bnQgPSAwOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKgorICAgICAgICAgKiBCaW5hcnkgc2VhcmNoIGZvciB2YWx1ZSBpbiB0YWJsZSwgd2hpY2ggbXVzdCBoYXZlIGV4YWN0bHkgNjQgZW50cmllcy4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgc3RhdGljIGludCBzZWFyY2goaW50W10gdGFibGUsIGludCB2YWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHRhYmxlW2luZGV4ICsgMzJdIDw9IHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gMzI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0YWJsZVtpbmRleCArIDE2XSA8PSB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGluZGV4ICs9IDE2OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGFibGVbaW5kZXggKyA4XSA8PSB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGluZGV4ICs9IDg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0YWJsZVtpbmRleCArIDRdIDw9IHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaW5kZXggKz0gNDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHRhYmxlW2luZGV4ICsgMl0gPD0gdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpbmRleCArPSAyOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGFibGVbaW5kZXggKyAxXSA8PSB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGluZGV4ICs9IDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0YWJsZVtpbmRleF0gPiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGluZGV4IC09IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbmRleCA8IDAgfHwgdGFibGVbaW5kZXhdICE9IHZhbHVlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gaW5kZXg7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgbG9va3VwKGludCB0aGlzTmdyYW0pCisgICAgICAgIHsKKyAgICAgICAgICAgIG5ncmFtQ291bnQgKz0gMTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNlYXJjaChuZ3JhbUxpc3QsIHRoaXNOZ3JhbSkgPj0gMCkgeworICAgICAgICAgICAgICAgIGhpdENvdW50ICs9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGFkZEJ5dGUoaW50IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIG5ncmFtID0gKChuZ3JhbSA8PCA4KSArIChiICYgMHhGRikpICYgTl9HUkFNX01BU0s7CisgICAgICAgICAgICBsb29rdXAobmdyYW0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIGludCBuZXh0Qnl0ZShDaGFyc2V0RGV0ZWN0b3IgZGV0KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoYnl0ZUluZGV4ID49IGRldC5mSW5wdXRMZW4pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBkZXQuZklucHV0Qnl0ZXNbYnl0ZUluZGV4KytdICYgMHhGRjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBwYXJzZShDaGFyc2V0RGV0ZWN0b3IgZGV0KQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgYjsKKyAgICAgICAgICAgIGJvb2xlYW4gaWdub3JlU3BhY2UgPSBmYWxzZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKChiID0gbmV4dEJ5dGUoZGV0KSkgPj0gMCkgeworICAgICAgICAgICAgICAgIGJ5dGUgbWIgPSBieXRlTWFwW2JdOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFRPRE86IDB4MjAgbWlnaHQgbm90IGJlIGEgc3BhY2UgaW4gYWxsIGNoYXJhY3RlciBzZXRzLi4uCisgICAgICAgICAgICAgICAgaWYgKG1iICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCEobWIgPT0gMHgyMCAmJiBpZ25vcmVTcGFjZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZEJ5dGUobWIpOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlnbm9yZVNwYWNlID0gKG1iID09IDB4MjApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gVE9ETzogSXMgdGhpcyBPSz8gVGhlIGJ1ZmZlciBjb3VsZCBoYXZlIGVuZGVkIGluIHRoZSBtaWRkbGUgb2YgYSB3b3JkLi4uCisgICAgICAgICAgICBhZGRCeXRlKDB4MjApOworCisgICAgICAgICAgICBkb3VibGUgcmF3UGVyY2VudCA9IChkb3VibGUpIGhpdENvdW50IC8gKGRvdWJsZSkgbmdyYW1Db3VudDsKKyAgICAgICAgICAgIAorLy8gICAgICAgICAgICBpZiAocmF3UGVyY2VudCA8PSAyLjApIHsKKy8vICAgICAgICAgICAgICAgIHJldHVybiAwOworLy8gICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFRPRE8gLSBUaGlzIGlzIGEgYml0IG9mIGEgaGFjayB0byB0YWtlIGNhcmUgb2YgYSBjYXNlCisgICAgICAgICAgICAvLyB3ZXJlIHdlIHdlcmUgZ2V0dGluZyBhIGNvbmZpZGVuY2Ugb2YgMTM1Li4uCisgICAgICAgICAgICBpZiAocmF3UGVyY2VudCA+IDAuMzMpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gOTg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiAoaW50KSAocmF3UGVyY2VudCAqIDMwMC4wKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBoYXZlQzFCeXRlcyA9IGZhbHNlOworICAgIAorICAgIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0LCBpbnRbXSBuZ3JhbXMsICBieXRlW10gYnl0ZU1hcCkKKyAgICB7CisgICAgICAgIE5HcmFtUGFyc2VyIHBhcnNlciA9IG5ldyBOR3JhbVBhcnNlcihuZ3JhbXMsIGJ5dGVNYXApOworICAgICAgICAKKyAgICAgICAgaGF2ZUMxQnl0ZXMgPSBkZXQuZkMxQnl0ZXM7CisgICAgICAgIAorICAgICAgICByZXR1cm4gcGFyc2VyLnBhcnNlKGRldCk7CisgICAgfQorICAgIAorICAgIGFic3RyYWN0IHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfODg1OV8xIGV4dGVuZHMgQ2hhcnNldFJlY29nX3NiY3MKKyAgICB7CisgICAgICAgIHByb3RlY3RlZCBzdGF0aWMgYnl0ZVtdIGJ5dGVNYXAgPSB7CisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDAwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEFBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCNSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QkEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhFMCwgKGJ5dGUpIDB4RTEsIChieXRlKSAweEUyLCAoYnl0ZSkgMHhFMywgKGJ5dGUpIDB4RTQsIChieXRlKSAweEU1LCAoYnl0ZSkgMHhFNiwgKGJ5dGUpIDB4RTcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTgsIChieXRlKSAweEU5LCAoYnl0ZSkgMHhFQSwgKGJ5dGUpIDB4RUIsIChieXRlKSAweEVDLCAoYnl0ZSkgMHhFRCwgKGJ5dGUpIDB4RUUsIChieXRlKSAweEVGLCAKKyAgICAgICAgICAgIChieXRlKSAweEYwLCAoYnl0ZSkgMHhGMSwgKGJ5dGUpIDB4RjIsIChieXRlKSAweEYzLCAoYnl0ZSkgMHhGNCwgKGJ5dGUpIDB4RjUsIChieXRlKSAweEY2LCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGOCwgKGJ5dGUpIDB4RjksIChieXRlKSAweEZBLCAoYnl0ZSkgMHhGQiwgKGJ5dGUpIDB4RkMsIChieXRlKSAweEZELCAoYnl0ZSkgMHhGRSwgKGJ5dGUpIDB4REYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LCAKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGMCwgKGJ5dGUpIDB4RjEsIChieXRlKSAweEYyLCAoYnl0ZSkgMHhGMywgKGJ5dGUpIDB4RjQsIChieXRlKSAweEY1LCAoYnl0ZSkgMHhGNiwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweEZDLCAoYnl0ZSkgMHhGRCwgKGJ5dGUpIDB4RkUsIChieXRlKSAweEZGLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaGF2ZUMxQnl0ZXM/ICJ3aW5kb3dzLTEyNTIiIDogIklTTy04ODU5LTEiOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ184ODU5XzFfZGEgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfODg1OV8xCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwNjE2NiwgMHgyMDYxNzQsIDB4MjA2NDY1LCAweDIwNjU2RSwgMHgyMDY1NzIsIDB4MjA2NjZGLCAweDIwNjg2MSwgMHgyMDY5MjAsIDB4MjA2RDY1LCAweDIwNkY2NywgMHgyMDcwRTUsIDB4MjA3MzY5LCAweDIwNzM3NCwgMHgyMDc0NjksIDB4MjA3NjY5LCAweDYxNjYyMCwgCisgICAgICAgICAgICAweDYxNkUyMCwgMHg2MTZFNjQsIDB4NjE3MjIwLCAweDYxNzQyMCwgMHg2NDY1MjAsIDB4NjQ2NTZFLCAweDY0NjU3MiwgMHg2NDY1NzQsIDB4NjUyMDczLCAweDY1NjQyMCwgMHg2NTY0NjUsIDB4NjU2RTIwLCAweDY1NkU2NCwgMHg2NTcyMjAsIDB4NjU3MjY1LCAweDY1NzMyMCwgCisgICAgICAgICAgICAweDY1NzQyMCwgMHg2NjZGNzIsIDB4Njc2NTIwLCAweDY3NjU2RSwgMHg2NzY1NzIsIDB4Njk2NzY1LCAweDY5NkMyMCwgMHg2OTZFNjcsIDB4NkI2NTIwLCAweDZCNkI2NSwgMHg2QzY1NzIsIDB4NkM2OTY3LCAweDZDNkM2NSwgMHg2RDY1NjQsIDB4NkU2NDY1LCAweDZFNjUyMCwgCisgICAgICAgICAgICAweDZFNjcyMCwgMHg2RTY3NjUsIDB4NkY2NzIwLCAweDZGNkQyMCwgMHg2RjcyMjAsIDB4NzBFNTIwLCAweDcyMjA2NCwgMHg3MjIwNjUsIDB4NzIyMDczLCAweDcyNjUyMCwgMHg3Mzc0NjUsIDB4NzQyMDczLCAweDc0NjUyMCwgMHg3NDY1NzIsIDB4NzQ2OTZDLCAweDc2NjU3MiwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiZGEiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgaW50IG1hdGNoKENoYXJzZXREZXRlY3RvciBkZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtYXRjaChkZXQsIG5ncmFtcywgYnl0ZU1hcCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9kZSBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTZFLCAweDIwNjE3NSwgMHgyMDYyNjUsIDB4MjA2NDYxLCAweDIwNjQ2NSwgMHgyMDY0NjksIDB4MjA2NTY5LCAweDIwNjc2NSwgMHgyMDY4NjEsIDB4MjA2OTZFLCAweDIwNkQ2OSwgMHgyMDczNjMsIDB4MjA3MzY1LCAweDIwNzU2RSwgMHgyMDc2NjUsIDB4MjA3NjZGLCAKKyAgICAgICAgICAgIDB4MjA3NzY1LCAweDIwN0E3NSwgMHg2MjY1NzIsIDB4NjM2ODIwLCAweDYzNjg2NSwgMHg2MzY4NzQsIDB4NjQ2MTczLCAweDY0NjU2RSwgMHg2NDY1NzIsIDB4NjQ2OTY1LCAweDY1MjA2NCwgMHg2NTIwNzMsIDB4NjU2OTZFLCAweDY1Njk3NCwgMHg2NTZFMjAsIDB4NjU3MjIwLCAKKyAgICAgICAgICAgIDB4NjU3MzIwLCAweDY3NjU2RSwgMHg2ODY1NkUsIDB4Njg3NDIwLCAweDY5NjM2OCwgMHg2OTY1MjAsIDB4Njk2RTIwLCAweDY5NkU2NSwgMHg2OTc0MjAsIDB4NkM2OTYzLCAweDZDNkM2NSwgMHg2RTIwNjEsIDB4NkUyMDY0LCAweDZFMjA3MywgMHg2RTY0MjAsIDB4NkU2NDY1LCAKKyAgICAgICAgICAgIDB4NkU2NTIwLCAweDZFNjcyMCwgMHg2RTY3NjUsIDB4NkU3NDY1LCAweDcyMjA2NCwgMHg3MjY0NjUsIDB4NzI2NTY5LCAweDczNjM2OCwgMHg3Mzc0NjUsIDB4NzQyMDY0LCAweDc0NjUyMCwgMHg3NDY1NkUsIDB4NzQ2NTcyLCAweDc1NkU2NCwgMHg3NTZFNjcsIDB4NzY2NTcyLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJkZSI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9lbiBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTIwLCAweDIwNjE2RSwgMHgyMDYyNjUsIDB4MjA2MzZGLCAweDIwNjY2RiwgMHgyMDY4NjEsIDB4MjA2ODY1LCAweDIwNjk2RSwgMHgyMDZENjEsIDB4MjA2RjY2LCAweDIwNzA3MiwgMHgyMDcyNjUsIDB4MjA3MzYxLCAweDIwNzM3NCwgMHgyMDc0NjgsIDB4MjA3NDZGLCAKKyAgICAgICAgICAgIDB4MjA3NzY4LCAweDYxNjk2NCwgMHg2MTZDMjAsIDB4NjE2RTIwLCAweDYxNkU2NCwgMHg2MTczMjAsIDB4NjE3NDIwLCAweDYxNzQ2NSwgMHg2MTc0NjksIDB4NjQyMDYxLCAweDY0MjA3NCwgMHg2NTIwNjEsIDB4NjUyMDczLCAweDY1MjA3NCwgMHg2NTY0MjAsIDB4NjU2RTc0LCAKKyAgICAgICAgICAgIDB4NjU3MjIwLCAweDY1NzMyMCwgMHg2NjZGNzIsIDB4Njg2MTc0LCAweDY4NjUyMCwgMHg2ODY1NzIsIDB4Njk2NDIwLCAweDY5NkUyMCwgMHg2OTZFNjcsIDB4Njk2RjZFLCAweDY5NzMyMCwgMHg2RTIwNjEsIDB4NkUyMDc0LCAweDZFNjQyMCwgMHg2RTY3MjAsIDB4NkU3NDIwLCAKKyAgICAgICAgICAgIDB4NkY2NjIwLCAweDZGNkUyMCwgMHg2RjcyMjAsIDB4NzI2NTIwLCAweDcyNzMyMCwgMHg3MzIwNjEsIDB4NzMyMDc0LCAweDczNjE2OSwgMHg3Mzc0MjAsIDB4NzQyMDc0LCAweDc0NjU3MiwgMHg3NDY4NjEsIDB4NzQ2ODY1LCAweDc0Njk2RiwgMHg3NDZGMjAsIDB4NzQ3MzIwLCAKKyAgICAgICAgfTsKKyAgICAgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJlbiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9lcyBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTIwLCAweDIwNjM2MSwgMHgyMDYzNkYsIDB4MjA2NDY1LCAweDIwNjU2QywgMHgyMDY1NkUsIDB4MjA2NTczLCAweDIwNjk2RSwgMHgyMDZDNjEsIDB4MjA2QzZGLCAweDIwNzA2MSwgMHgyMDcwNkYsIDB4MjA3MDcyLCAweDIwNzE3NSwgMHgyMDcyNjUsIDB4MjA3MzY1LCAKKyAgICAgICAgICAgIDB4MjA3NTZFLCAweDIwNzkyMCwgMHg2MTIwNjMsIDB4NjEyMDY0LCAweDYxMjA2NSwgMHg2MTIwNkMsIDB4NjEyMDcwLCAweDYxNjM2OSwgMHg2MTY0NkYsIDB4NjE2QzIwLCAweDYxNzIyMCwgMHg2MTczMjAsIDB4NjM2OUYzLCAweDYzNkY2RSwgMHg2NDY1MjAsIDB4NjQ2NTZDLCAKKyAgICAgICAgICAgIDB4NjQ2RjIwLCAweDY1MjA2NCwgMHg2NTIwNjUsIDB4NjUyMDZDLCAweDY1NkMyMCwgMHg2NTZFMjAsIDB4NjU2RTc0LCAweDY1NzMyMCwgMHg2NTczNzQsIDB4Njk2NTZFLCAweDY5RjM2RSwgMHg2QzYxMjAsIDB4NkM2RjczLCAweDZFMjA2NSwgMHg2RTc0NjUsIDB4NkYyMDY0LCAKKyAgICAgICAgICAgIDB4NkYyMDY1LCAweDZGNkUyMCwgMHg2RjcyMjAsIDB4NkY3MzIwLCAweDcwNjE3MiwgMHg3MTc1NjUsIDB4NzI2MTIwLCAweDcyNjU3MywgMHg3MzIwNjQsIDB4NzMyMDY1LCAweDczMjA3MCwgMHg3MzY1MjAsIDB4NzQ2NTIwLCAweDc0NkYyMCwgMHg3NTY1MjAsIDB4RjM2RTIwLCAKKyAgICAgICAgfTsKKyAgICAgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJlcyI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9mciBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTc1LCAweDIwNjM2RiwgMHgyMDY0NjEsIDB4MjA2NDY1LCAweDIwNjQ3NSwgMHgyMDY1NkUsIDB4MjA2NTc0LCAweDIwNkM2MSwgMHgyMDZDNjUsIDB4MjA3MDYxLCAweDIwNzA2RiwgMHgyMDcwNzIsIDB4MjA3MTc1LCAweDIwNzM2NSwgMHgyMDczNkYsIDB4MjA3NTZFLCAKKyAgICAgICAgICAgIDB4MjBFMDIwLCAweDYxNkU3NCwgMHg2MTc0NjksIDB4NjM2NTIwLCAweDYzNkY2RSwgMHg2NDY1MjAsIDB4NjQ2NTczLCAweDY0NzUyMCwgMHg2NTIwNjEsIDB4NjUyMDYzLCAweDY1MjA2NCwgMHg2NTIwNjUsIDB4NjUyMDZDLCAweDY1MjA3MCwgMHg2NTIwNzMsIDB4NjU2RTIwLCAKKyAgICAgICAgICAgIDB4NjU2RTc0LCAweDY1NzIyMCwgMHg2NTczMjAsIDB4NjU3NDIwLCAweDY1NzU3MiwgMHg2OTZGNkUsIDB4Njk3MzIwLCAweDY5NzQyMCwgMHg2QzYxMjAsIDB4NkM2NTIwLCAweDZDNjU3MywgMHg2RDY1NkUsIDB4NkUyMDY0LCAweDZFNjUyMCwgMHg2RTczMjAsIDB4NkU3NDIwLCAKKyAgICAgICAgICAgIDB4NkY2RTIwLCAweDZGNkU3NCwgMHg2Rjc1NzIsIDB4NzE3NTY1LCAweDcyMjA2QywgMHg3MjY1MjAsIDB4NzMyMDYxLCAweDczMjA2NCwgMHg3MzIwNjUsIDB4NzMyMDZDLCAweDczMjA3MCwgMHg3NDIwNjQsIDB4NzQ2NTIwLCAweDc0Njk2RiwgMHg3NTY1MjAsIDB4NzU3MjIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJmciI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9pdCBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTZDLCAweDIwNjM2OCwgMHgyMDYzNkYsIDB4MjA2NDY1LCAweDIwNjQ2OSwgMHgyMDY1MjAsIDB4MjA2OTZDLCAweDIwNjk2RSwgMHgyMDZDNjEsIDB4MjA3MDY1LCAweDIwNzA3MiwgMHgyMDc1NkUsIDB4NjEyMDYzLCAweDYxMjA2NCwgMHg2MTIwNzAsIDB4NjEyMDczLCAKKyAgICAgICAgICAgIDB4NjE3NDZGLCAweDYzNjg2NSwgMHg2MzZGNkUsIDB4NjQ2NTZDLCAweDY0NjkyMCwgMHg2NTIwNjEsIDB4NjUyMDYzLCAweDY1MjA2NCwgMHg2NTIwNjksIDB4NjUyMDZDLCAweDY1MjA3MCwgMHg2NTIwNzMsIDB4NjU2QzIwLCAweDY1NkM2QywgMHg2NTZFNzQsIDB4NjU3MjIwLCAKKyAgICAgICAgICAgIDB4Njg2NTIwLCAweDY5MjA2MSwgMHg2OTIwNjMsIDB4NjkyMDY0LCAweDY5MjA3MywgMHg2OTYxMjAsIDB4Njk2QzIwLCAweDY5NkUyMCwgMHg2OTZGNkUsIDB4NkM2MTIwLCAweDZDNjUyMCwgMHg2QzY5MjAsIDB4NkM2QzYxLCAweDZFNjUyMCwgMHg2RTY5MjAsIDB4NkU2RjIwLCAKKyAgICAgICAgICAgIDB4NkU3NDY1LCAweDZGMjA2MSwgMHg2RjIwNjQsIDB4NkYyMDY5LCAweDZGMjA3MywgMHg2RjZFMjAsIDB4NkY2RTY1LCAweDcwNjU3MiwgMHg3MjYxMjAsIDB4NzI2NTIwLCAweDczNjkyMCwgMHg3NDYxMjAsIDB4NzQ2NTIwLCAweDc0NjkyMCwgMHg3NDZGMjAsIDB4N0E2OTZGLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJpdCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9ubCBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTZDLCAweDIwNjI2NSwgMHgyMDY0NjEsIDB4MjA2NDY1LCAweDIwNjQ2OSwgMHgyMDY1NjUsIDB4MjA2NTZFLCAweDIwNjc2NSwgMHgyMDY4NjUsIDB4MjA2OTZFLCAweDIwNkQ2MSwgMHgyMDZENjUsIDB4MjA2RjcwLCAweDIwNzQ2NSwgMHgyMDc2NjEsIDB4MjA3NjY1LCAKKyAgICAgICAgICAgIDB4MjA3NjZGLCAweDIwNzc2NSwgMHgyMDdBNjksIDB4NjE2MTZFLCAweDYxNjE3MiwgMHg2MTZFMjAsIDB4NjE2RTY0LCAweDYxNzIyMCwgMHg2MTc0MjAsIDB4NjM2ODc0LCAweDY0NjUyMCwgMHg2NDY1NkUsIDB4NjQ2NTcyLCAweDY1MjA2MiwgMHg2NTIwNzYsIDB4NjU2NTZFLCAKKyAgICAgICAgICAgIDB4NjU2NTcyLCAweDY1NkUyMCwgMHg2NTcyMjAsIDB4NjU3MjczLCAweDY1NzQyMCwgMHg2NzY1NkUsIDB4Njg2NTc0LCAweDY5NjUyMCwgMHg2OTZFMjAsIDB4Njk2RTY3LCAweDY5NzMyMCwgMHg2RTIwNjIsIDB4NkUyMDY0LCAweDZFMjA2NSwgMHg2RTIwNjgsIDB4NkUyMDZGLCAKKyAgICAgICAgICAgIDB4NkUyMDc2LCAweDZFNjQ2NSwgMHg2RTY3MjAsIDB4NkY2RTY0LCAweDZGNkY3MiwgMHg2RjcwMjAsIDB4NkY3MjIwLCAweDczNjM2OCwgMHg3Mzc0NjUsIDB4NzQyMDY0LCAweDc0NjUyMCwgMHg3NDY1NkUsIDB4NzQ2NTcyLCAweDc2NjE2RSwgMHg3NjY1NzIsIDB4NzY2RjZGLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJubCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9ubyBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTc0LCAweDIwNjE3NiwgMHgyMDY0NjUsIDB4MjA2NTZFLCAweDIwNjU3MiwgMHgyMDY2NkYsIDB4MjA2ODYxLCAweDIwNjkyMCwgMHgyMDZENjUsIDB4MjA2RjY3LCAweDIwNzBFNSwgMHgyMDczNjUsIDB4MjA3MzZCLCAweDIwNzM2RiwgMHgyMDczNzQsIDB4MjA3NDY5LCAKKyAgICAgICAgICAgIDB4MjA3NjY5LCAweDIwRTUyMCwgMHg2MTZFNjQsIDB4NjE3MjIwLCAweDYxNzQyMCwgMHg2NDY1MjAsIDB4NjQ2NTZFLCAweDY0NjU3NCwgMHg2NTIwNzMsIDB4NjU2NDIwLCAweDY1NkUyMCwgMHg2NTZFNjUsIDB4NjU3MjIwLCAweDY1NzI2NSwgMHg2NTc0MjAsIDB4NjU3NDc0LCAKKyAgICAgICAgICAgIDB4NjY2RjcyLCAweDY3NjU2RSwgMHg2OTZCNkIsIDB4Njk2QzIwLCAweDY5NkU2NywgMHg2QjY1MjAsIDB4NkI2QjY1LCAweDZDNjUyMCwgMHg2QzZDNjUsIDB4NkQ2NTY0LCAweDZENjU2RSwgMHg2RTIwNzMsIDB4NkU2NTIwLCAweDZFNjcyMCwgMHg2RTY3NjUsIDB4NkU2RTY1LCAKKyAgICAgICAgICAgIDB4NkY2NzIwLCAweDZGNkQyMCwgMHg2RjcyMjAsIDB4NzBFNTIwLCAweDcyMjA3MywgMHg3MjY1MjAsIDB4NzM2RjZELCAweDczNzQ2NSwgMHg3NDIwNzMsIDB4NzQ2NTIwLCAweDc0NjU2RSwgMHg3NDY1NzIsIDB4NzQ2OTZDLCAweDc0NzQyMCwgMHg3NDc0NjUsIDB4NzY2NTcyLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJubyI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9wdCBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTIwLCAweDIwNjM2RiwgMHgyMDY0NjEsIDB4MjA2NDY1LCAweDIwNjQ2RiwgMHgyMDY1MjAsIDB4MjA2NTczLCAweDIwNkQ2MSwgMHgyMDZFNkYsIDB4MjA2RjIwLCAweDIwNzA2MSwgMHgyMDcwNkYsIDB4MjA3MDcyLCAweDIwNzE3NSwgMHgyMDcyNjUsIDB4MjA3MzY1LCAKKyAgICAgICAgICAgIDB4MjA3NTZELCAweDYxMjA2MSwgMHg2MTIwNjMsIDB4NjEyMDY0LCAweDYxMjA3MCwgMHg2MTY0NjUsIDB4NjE2NDZGLCAweDYxNkMyMCwgMHg2MTcyMjAsIDB4NjE3MjYxLCAweDYxNzMyMCwgMHg2MzZGNkQsIDB4NjM2RjZFLCAweDY0NjEyMCwgMHg2NDY1MjAsIDB4NjQ2RjIwLCAKKyAgICAgICAgICAgIDB4NjQ2RjczLCAweDY1MjA2MSwgMHg2NTIwNjQsIDB4NjU2RDIwLCAweDY1NkU3NCwgMHg2NTczMjAsIDB4NjU3Mzc0LCAweDY5NjEyMCwgMHg2OTYzNjEsIDB4NkQ2NTZFLCAweDZFNzQ2NSwgMHg2RTc0NkYsIDB4NkYyMDYxLCAweDZGMjA2MywgMHg2RjIwNjQsIDB4NkYyMDY1LCAKKyAgICAgICAgICAgIDB4NkYyMDcwLCAweDZGNzMyMCwgMHg3MDYxNzIsIDB4NzE3NTY1LCAweDcyNjEyMCwgMHg3MjY1NzMsIDB4NzMyMDYxLCAweDczMjA2NCwgMHg3MzIwNjUsIDB4NzMyMDcwLCAweDczNzQ2MSwgMHg3NDY1MjAsIDB4NzQ2RjIwLCAweDc1NjUyMCwgMHhFMzZGMjAsIDB4RTdFMzZGLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJwdCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMV9zdiBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzEKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTc0LCAweDIwNjE3NiwgMHgyMDY0NjUsIDB4MjA2NTZFLCAweDIwNjZGNiwgMHgyMDY4NjEsIDB4MjA2OTIwLCAweDIwNjk2RSwgMHgyMDZCNkYsIDB4MjA2RDY1LCAweDIwNkY2MywgMHgyMDcwRTUsIDB4MjA3MzZCLCAweDIwNzM2RiwgMHgyMDczNzQsIDB4MjA3NDY5LCAKKyAgICAgICAgICAgIDB4MjA3NjYxLCAweDIwNzY2OSwgMHgyMEU0NzIsIDB4NjE2NDY1LCAweDYxNkUyMCwgMHg2MTZFNjQsIDB4NjE3MjIwLCAweDYxNzQ3NCwgMHg2MzY4MjAsIDB4NjQ2NTIwLCAweDY0NjU2RSwgMHg2NDY1NzIsIDB4NjQ2NTc0LCAweDY1NjQyMCwgMHg2NTZFMjAsIDB4NjU3MjIwLCAKKyAgICAgICAgICAgIDB4NjU3NDIwLCAweDY2RjY3MiwgMHg2NzY1NkUsIDB4Njk2QzZDLCAweDY5NkU2NywgMHg2QjYxMjAsIDB4NkM2QzIwLCAweDZENjU2NCwgMHg2RTIwNzMsIDB4NkU2MTIwLCAweDZFNjQ2NSwgMHg2RTY3MjAsIDB4NkU2NzY1LCAweDZFNjk2RSwgMHg2RjYzNjgsIDB4NkY2RDIwLCAKKyAgICAgICAgICAgIDB4NkY2RTIwLCAweDcwRTUyMCwgMHg3MjIwNjEsIDB4NzIyMDczLCAweDcyNjEyMCwgMHg3MzZCNjEsIDB4NzM2RjZELCAweDc0MjA3MywgMHg3NDYxMjAsIDB4NzQ2NTIwLCAweDc0NjU3MiwgMHg3NDY5NkMsIDB4NzQ3NDIwLCAweDc2NjE3MiwgMHhFNDcyMjAsIDB4RjY3MjIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJzdiI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMiBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCMywgKGJ5dGUpIDB4MjAsIChieXRlKSAweEI1LCAoYnl0ZSkgMHhCNiwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweEI5LCAoYnl0ZSkgMHhCQSwgKGJ5dGUpIDB4QkIsIChieXRlKSAweEJDLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QkUsIChieXRlKSAweEJGLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCMSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEIzLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjUsIChieXRlKSAweEI2LCAoYnl0ZSkgMHhCNywgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjksIChieXRlKSAweEJBLCAoYnl0ZSkgMHhCQiwgKGJ5dGUpIDB4QkMsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCRSwgKGJ5dGUpIDB4QkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LCAKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGMCwgKGJ5dGUpIDB4RjEsIChieXRlKSAweEYyLCAoYnl0ZSkgMHhGMywgKGJ5dGUpIDB4RjQsIChieXRlKSAweEY1LCAoYnl0ZSkgMHhGNiwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweEZDLCAoYnl0ZSkgMHhGRCwgKGJ5dGUpIDB4RkUsIChieXRlKSAweERGLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4RkQsIChieXRlKSAweEZFLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGhhdmVDMUJ5dGVzPyAid2luZG93cy0xMjUwIiA6ICJJU08tODg1OS0yIjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMl9jcyBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzIKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTIwLCAweDIwNjI3OSwgMHgyMDY0NkYsIDB4MjA2QTY1LCAweDIwNkU2MSwgMHgyMDZFNjUsIDB4MjA2RjIwLCAweDIwNkY2NCwgMHgyMDcwNkYsIDB4MjA3MDcyLCAweDIwNzBGOCwgMHgyMDcyNkYsIDB4MjA3MzY1LCAweDIwNzM2RiwgMHgyMDczNzQsIDB4MjA3NDZGLCAKKyAgICAgICAgICAgIDB4MjA3NjIwLCAweDIwNzY3OSwgMHgyMDdBNjEsIDB4NjEyMDcwLCAweDYzNjUyMCwgMHg2MzY4MjAsIDB4NjUyMDcwLCAweDY1MjA3MywgMHg2NTIwNzYsIDB4NjU2RDIwLCAweDY1NkVFRCwgMHg2ODZGMjAsIDB4Njg2RjY0LCAweDY5NzM3NCwgMHg2QTY1MjAsIDB4NkI3NDY1LCAKKyAgICAgICAgICAgIDB4NkM2NTIwLCAweDZDNjkyMCwgMHg2RTYxMjAsIDB4NkVFOTIwLCAweDZFRUMyMCwgMHg2RUVEMjAsIDB4NkYyMDcwLCAweDZGNjQ2RSwgMHg2RjZBNjksIDB4NkY3Mzc0LCAweDZGNzUyMCwgMHg2Rjc2NjEsIDB4NzA2RjY0LCAweDcwNkY2QSwgMHg3MDcyNkYsIDB4NzBGODY1LCAKKyAgICAgICAgICAgIDB4NzM2NTIwLCAweDczNkY3NSwgMHg3Mzc0NjEsIDB4NzM3NDY5LCAweDczNzQ2RSwgMHg3NDY1NzIsIDB4NzQ2RUVELCAweDc0NkYyMCwgMHg3NTIwNzAsIDB4QkU2NTIwLCAweEUxNkVFRCwgMHhFOTY4NkYsIDB4RUQyMDcwLCAweEVEMjA3MywgMHhFRDZEMjAsIDB4Rjg2NTY0LCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJjcyI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMl9odSBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzIKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTIwLCAweDIwNjE3QSwgMHgyMDYyNjUsIDB4MjA2NTY3LCAweDIwNjU2QywgMHgyMDY2NjUsIDB4MjA2ODYxLCAweDIwNjg2RiwgMHgyMDY5NzMsIDB4MjA2QjY1LCAweDIwNkI2OSwgMHgyMDZCRjYsIDB4MjA2QzY1LCAweDIwNkQ2MSwgMHgyMDZENjUsIDB4MjA2RDY5LCAKKyAgICAgICAgICAgIDB4MjA2RTY1LCAweDIwNzM3QSwgMHgyMDc0NjUsIDB4MjBFOTczLCAweDYxMjA2MSwgMHg2MTIwNkIsIDB4NjEyMDZELCAweDYxMjA3MywgMHg2MTZCMjAsIDB4NjE2RTIwLCAweDYxN0EyMCwgMHg2MjYxNkUsIDB4NjI2NTZFLCAweDY1Njc3OSwgMHg2NTZCMjAsIDB4NjU2QzIwLCAKKyAgICAgICAgICAgIDB4NjU2QzY1LCAweDY1NkQyMCwgMHg2NTZFMjAsIDB4NjU3MjY1LCAweDY1NzQyMCwgMHg2NTc0NjUsIDB4NjU3NDc0LCAweDY3NzkyMCwgMHg2ODZGNjcsIDB4Njk2RTc0LCAweDY5NzMyMCwgMHg2QjIwNjEsIDB4NkJGNjdBLCAweDZENjU2NywgMHg2RDY5NkUsIDB4NkUyMDYxLCAKKyAgICAgICAgICAgIDB4NkU2MTZCLCAweDZFNjU2QiwgMHg2RTY1NkQsIDB4NkU3NDIwLCAweDZGNjc3OSwgMHg3MzIwNjEsIDB4NzM3QTY1LCAweDczN0E3NCwgMHg3MzdBRTEsIDB4NzNFOTY3LCAweDc0MjA2MSwgMHg3NDc0MjAsIDB4NzRFMTczLCAweDdBNjU3MiwgMHhFMTZFMjAsIDB4RTk3MzIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJodSI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMl9wbCBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzIKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MzdBLCAweDIwNjQ2RiwgMHgyMDY5MjAsIDB4MjA2QTY1LCAweDIwNkI2RiwgMHgyMDZENjEsIDB4MjA2RDY5LCAweDIwNkU2MSwgMHgyMDZFNjksIDB4MjA2RjY0LCAweDIwNzA2RiwgMHgyMDcwNzIsIDB4MjA3MzY5LCAweDIwNzcyMCwgMHgyMDc3NjksIDB4MjA3Nzc5LCAKKyAgICAgICAgICAgIDB4MjA3QTIwLCAweDIwN0E2MSwgMHg2MTIwNzAsIDB4NjEyMDc3LCAweDYxNkU2OSwgMHg2MzY4MjAsIDB4NjM3QTY1LCAweDYzN0E3OSwgMHg2NDZGMjAsIDB4NjQ3QTY5LCAweDY1MjA3MCwgMHg2NTIwNzMsIDB4NjUyMDc3LCAweDY1MjA3QSwgMHg2NTY3NkYsIDB4NjU2QTIwLCAKKyAgICAgICAgICAgIDB4NjU2RDIwLCAweDY1NkU2OSwgMHg2NzZGMjAsIDB4Njk2MTIwLCAweDY5NjUyMCwgMHg2OTY1NkEsIDB4NkI2MTIwLCAweDZCNjkyMCwgMHg2QjY5NjUsIDB4NkQ2OTY1LCAweDZFNjEyMCwgMHg2RTY5NjEsIDB4NkU2OTY1LCAweDZGMjA3MCwgMHg2Rjc3NjEsIDB4NkY3NzY5LCAKKyAgICAgICAgICAgIDB4NzA2RjZDLCAweDcwNzI2MSwgMHg3MDcyNkYsIDB4NzA3MjdBLCAweDcyN0E2NSwgMHg3MjdBNzksIDB4NzM2OUVBLCAweDczNkI2OSwgMHg3Mzc0NjEsIDB4Nzc2OTY1LCAweDc5NjM2OCwgMHg3OTZEMjAsIDB4N0E2NTIwLCAweDdBNjk2NSwgMHg3QTc5MjAsIDB4RjM3NzIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJwbCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfMl9ybyBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzIKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MTIwLCAweDIwNjE2MywgMHgyMDYzNjEsIDB4MjA2MzY1LCAweDIwNjM2RiwgMHgyMDYzNzUsIDB4MjA2NDY1LCAweDIwNjQ2OSwgMHgyMDZDNjEsIDB4MjA2RDYxLCAweDIwNzA2NSwgMHgyMDcwNzIsIDB4MjA3MzY1LCAweDIwNzNFMywgMHgyMDc1NkUsIDB4MjBCQTY5LCAKKyAgICAgICAgICAgIDB4MjBFRTZFLCAweDYxMjA2MywgMHg2MTIwNjQsIDB4NjE3MjY1LCAweDYxNzQyMCwgMHg2MTc0NjUsIDB4NjE3NTIwLCAweDYzNjE3MiwgMHg2MzZGNkUsIDB4NjM3NTIwLCAweDYzRTMyMCwgMHg2NDY1MjAsIDB4NjUyMDYxLCAweDY1MjA2MywgMHg2NTIwNjQsIDB4NjUyMDcwLCAKKyAgICAgICAgICAgIDB4NjUyMDczLCAweDY1NjEyMCwgMHg2NTY5MjAsIDB4NjU2QzY1LCAweDY1NkU3NCwgMHg2NTczNzQsIDB4NjkyMDYxLCAweDY5MjA2MywgMHg2OTIwNjQsIDB4NjkyMDcwLCAweDY5NjUyMCwgMHg2OTY5MjAsIDB4Njk2RTIwLCAweDZDNjEyMCwgMHg2QzY1MjAsIDB4NkM2RjcyLCAKKyAgICAgICAgICAgIDB4NkM3NTY5LCAweDZFNjUyMCwgMHg2RTc0NzIsIDB4NkY3MjIwLCAweDcwNjU2RSwgMHg3MjY1MjAsIDB4NzI2NTYxLCAweDcyNzUyMCwgMHg3M0UzMjAsIDB4NzQ2NTIwLCAweDc0NzI3NSwgMHg3NEUzMjAsIDB4NzU2OTIwLCAweDc1NkMyMCwgMHhCQTY5MjAsIDB4RUU2RTIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJybyI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfNSBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4RjEsIChieXRlKSAweEYyLCAoYnl0ZSkgMHhGMywgKGJ5dGUpIDB4RjQsIChieXRlKSAweEY1LCAoYnl0ZSkgMHhGNiwgKGJ5dGUpIDB4RjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweEZDLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4RkUsIChieXRlKSAweEZGLCAKKyAgICAgICAgICAgIChieXRlKSAweEQwLCAoYnl0ZSkgMHhEMSwgKGJ5dGUpIDB4RDIsIChieXRlKSAweEQzLCAoYnl0ZSkgMHhENCwgKGJ5dGUpIDB4RDUsIChieXRlKSAweEQ2LCAoYnl0ZSkgMHhENywgCisgICAgICAgICAgICAoYnl0ZSkgMHhEOCwgKGJ5dGUpIDB4RDksIChieXRlKSAweERBLCAoYnl0ZSkgMHhEQiwgKGJ5dGUpIDB4REMsIChieXRlKSAweERELCAoYnl0ZSkgMHhERSwgKGJ5dGUpIDB4REYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LCAKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhEMCwgKGJ5dGUpIDB4RDEsIChieXRlKSAweEQyLCAoYnl0ZSkgMHhEMywgKGJ5dGUpIDB4RDQsIChieXRlKSAweEQ1LCAoYnl0ZSkgMHhENiwgKGJ5dGUpIDB4RDcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RDgsIChieXRlKSAweEQ5LCAoYnl0ZSkgMHhEQSwgKGJ5dGUpIDB4REIsIChieXRlKSAweERDLCAoYnl0ZSkgMHhERCwgKGJ5dGUpIDB4REUsIChieXRlKSAweERGLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweEY3LCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4MjAsIChieXRlKSAweEZFLCAoYnl0ZSkgMHhGRiwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJJU08tODg1OS01IjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfNV9ydSBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzUKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjBEMjIwLCAweDIwRDJERSwgMHgyMEQ0REUsIDB4MjBEN0QwLCAweDIwRDgyMCwgMHgyMERBRDAsIDB4MjBEQURFLCAweDIwREREMCwgMHgyMERERDUsIDB4MjBERUQxLCAweDIwREZERSwgMHgyMERGRTAsIDB4MjBFMEQwLCAweDIwRTFERSwgMHgyMEUxRTIsIDB4MjBFMkRFLCAKKyAgICAgICAgICAgIDB4MjBFN0UyLCAweDIwRURFMiwgMHhEMERERDgsIDB4RDBFMkVDLCAweEQzREUyMCwgMHhENURCRUMsIDB4RDVEREQ4LCAweEQ1RTFFMiwgMHhENUUyMjAsIDB4RDgyMERGLCAweEQ4RDUyMCwgMHhEOEQ4MjAsIDB4RDhFRjIwLCAweERCRDVERCwgMHhEQkQ4MjAsIDB4REJFQ0RELCAKKyAgICAgICAgICAgIDB4REREMDIwLCAweERERDUyMCwgMHhEREQ4RDUsIDB4REREOEVGLCAweEREREUyMCwgMHhERERFRDIsIDB4REUyMEQyLCAweERFMjBERiwgMHhERTIwRTEsIDB4REVEMjIwLCAweERFRDJEMCwgMHhERUQzREUsIDB4REVEOTIwLCAweERFREJFQywgMHhERURDMjAsIDB4REVFMUUyLCAKKyAgICAgICAgICAgIDB4REZERURCLCAweERGRTBENSwgMHhERkUwRDgsIDB4REZFMERFLCAweEUwRDBEMiwgMHhFMEQ1RDQsIDB4RTFFMkQwLCAweEUxRTJEMiwgMHhFMUUyRDgsIDB4RTFFRjIwLCAweEUyRDVEQiwgMHhFMkRFMjAsIDB4RTJERUUwLCAweEUyRUMyMCwgMHhFN0UyREUsIDB4RUJFNTIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJydSI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfNiBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweEMxLCAoYnl0ZSkgMHhDMiwgKGJ5dGUpIDB4QzMsIChieXRlKSAweEM0LCAoYnl0ZSkgMHhDNSwgKGJ5dGUpIDB4QzYsIChieXRlKSAweEM3LCAKKyAgICAgICAgICAgIChieXRlKSAweEM4LCAoYnl0ZSkgMHhDOSwgKGJ5dGUpIDB4Q0EsIChieXRlKSAweENCLCAoYnl0ZSkgMHhDQywgKGJ5dGUpIDB4Q0QsIChieXRlKSAweENFLCAoYnl0ZSkgMHhDRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhEMCwgKGJ5dGUpIDB4RDEsIChieXRlKSAweEQyLCAoYnl0ZSkgMHhEMywgKGJ5dGUpIDB4RDQsIChieXRlKSAweEQ1LCAoYnl0ZSkgMHhENiwgKGJ5dGUpIDB4RDcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RDgsIChieXRlKSAweEQ5LCAoYnl0ZSkgMHhEQSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJJU08tODg1OS02IjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfNl9hciBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzYKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjBDN0U0LCAweDIwQzdFNiwgMHgyMEM4QzcsIDB4MjBEOUU0LCAweDIwRTFFQSwgMHgyMEU0RTQsIDB4MjBFNUU2LCAweDIwRThDNywgMHhDNzIwQzcsIDB4QzdDMTIwLCAweEM3Q0EyMCwgMHhDN0QxMjAsIDB4QzdFNDIwLCAweEM3RTRDMywgMHhDN0U0QzcsIDB4QzdFNEM4LCAKKyAgICAgICAgICAgIDB4QzdFNENBLCAweEM3RTRDQywgMHhDN0U0Q0QsIDB4QzdFNENGLCAweEM3RTREMywgMHhDN0U0RDksIDB4QzdFNEUyLCAweEM3RTRFNSwgMHhDN0U0RTgsIDB4QzdFNEVBLCAweEM3RTUyMCwgMHhDN0U2MjAsIDB4QzdFNkNBLCAweEM4MjBDNywgMHhDOTIwQzcsIDB4QzkyMEUxLCAKKyAgICAgICAgICAgIDB4QzkyMEU0LCAweEM5MjBFNSwgMHhDOTIwRTgsIDB4Q0EyMEM3LCAweENGMjBDNywgMHhDRkM5MjAsIDB4RDEyMEM3LCAweEQxQzkyMCwgMHhEMzIwQzcsIDB4RDkyMEM3LCAweEQ5RTRFOSwgMHhFMUVBMjAsIDB4RTQyMEM3LCAweEU0QzkyMCwgMHhFNEU5MjAsIDB4RTRFQTIwLCAKKyAgICAgICAgICAgIDB4RTUyMEM3LCAweEU1QzcyMCwgMHhFNUM5MjAsIDB4RTVFNjIwLCAweEU2MjBDNywgMHhFNzIwQzcsIDB4RTdDNzIwLCAweEU4QzdFNCwgMHhFOEU2MjAsIDB4RTkyMEM3LCAweEVBMjBDNywgMHhFQTIwRTUsIDB4RUEyMEU4LCAweEVBQzkyMCwgMHhFQUQxMjAsIDB4RUFFNjIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJhciI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfNyBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QTEsIChieXRlKSAweEEyLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweERDLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhERCwgKGJ5dGUpIDB4REUsIChieXRlKSAweERGLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4RkMsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhGRCwgKGJ5dGUpIDB4RkUsIAorICAgICAgICAgICAgKGJ5dGUpIDB4QzAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LCAKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGMCwgKGJ5dGUpIDB4RjEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhGMywgKGJ5dGUpIDB4RjQsIChieXRlKSAweEY1LCAoYnl0ZSkgMHhGNiwgKGJ5dGUpIDB4RjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweERDLCAoYnl0ZSkgMHhERCwgKGJ5dGUpIDB4REUsIChieXRlKSAweERGLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweEY3LCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4RkQsIChieXRlKSAweEZFLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGhhdmVDMUJ5dGVzPyAid2luZG93cy0xMjUzIiA6ICJJU08tODg1OS03IjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfN19lbCBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzcKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjBFMUVELCAweDIwRTFGMCwgMHgyMEUzRTksIDB4MjBFNEU5LCAweDIwRTVGMCwgMHgyMEU3MjAsIDB4MjBFQUUxLCAweDIwRUNFNSwgMHgyMEVERTEsIDB4MjBFRjIwLCAweDIwRjBFMSwgMHgyMEYwRUYsIDB4MjBGMEYxLCAweDIwRjNGNCwgMHgyMEYzRjUsIDB4MjBGNEU3LCAKKyAgICAgICAgICAgIDB4MjBGNEVGLCAweERGRTEyMCwgMHhFMTIwRTEsIDB4RTEyMEY0LCAweEUxRTkyMCwgMHhFMUVEMjAsIDB4RTFGMEZDLCAweEUxRjIyMCwgMHhFM0U5RTEsIDB4RTVFOTIwLCAweEU1RjIyMCwgMHhFNzIwRjQsIDB4RTdFRDIwLCAweEU3RjIyMCwgMHhFOTIwRjQsIDB4RTlFMTIwLCAKKyAgICAgICAgICAgIDB4RTlFQURFLCAweEU5RjIyMCwgMHhFQUUxRTksIDB4RUFFMUY0LCAweEVDRTUyMCwgMHhFRDIwRTEsIDB4RUQyMEU1LCAweEVEMjBGMCwgMHhFREUxMjAsIDB4RUZGMjIwLCAweEVGRjUyMCwgMHhGMEVGRjUsIDB4RjBGMUVGLCAweEYwRkMyMCwgMHhGMjIwRTEsIDB4RjIyMEU1LCAKKyAgICAgICAgICAgIDB4RjIyMEVBLCAweEYyMjBGMCwgMHhGMjIwRjQsIDB4RjNFNTIwLCAweEYzRTcyMCwgMHhGM0Y0RUYsIDB4RjRFMTIwLCAweEY0RTFFOSwgMHhGNEU3RUQsIDB4RjRFN0YyLCAweEY0RTlFQSwgMHhGNEVGMjAsIDB4RjRFRkY1LCAweEY0RjlFRCwgMHhGOUVEMjAsIDB4RkVFRDIwLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJlbCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfOCBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjUsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweEY3LCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGhhdmVDMUJ5dGVzPyAid2luZG93cy0xMjU1IiA6ICJJU08tODg1OS04IjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfOF9JX2hlIGV4dGVuZHMgQ2hhcnNldFJlY29nXzg4NTlfOAorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gbmdyYW1zID0geworICAgICAgICAgICAgMHgyMEUwRTUsIDB4MjBFMEU3LCAweDIwRTBFOSwgMHgyMEUwRkEsIDB4MjBFMUU5LCAweDIwRTFFRSwgMHgyMEU0RTAsIDB4MjBFNEU1LCAweDIwRTRFOSwgMHgyMEU0RUUsIDB4MjBFNEYyLCAweDIwRTRGOSwgMHgyMEU0RkEsIDB4MjBFQ0UwLCAweDIwRUNFNCwgMHgyMEVFRTAsIAorICAgICAgICAgICAgMHgyMEYyRUMsIDB4MjBGOUVDLCAweEUwRkEyMCwgMHhFNDIwRTAsIDB4RTQyMEUxLCAweEU0MjBFNCwgMHhFNDIwRUMsIDB4RTQyMEVFLCAweEU0MjBGOSwgMHhFNEU1RTAsIDB4RTVFMDIwLCAweEU1RUQyMCwgMHhFNUVGMjAsIDB4RTVGODIwLCAweEU1RkEyMCwgMHhFOTIwRTQsIAorICAgICAgICAgICAgMHhFOUU0MjAsIDB4RTlFNUZBLCAweEU5RTlFRCwgMHhFOUVEMjAsIDB4RTlFRjIwLCAweEU5RjgyMCwgMHhFOUZBMjAsIDB4RUMyMEUwLCAweEVDMjBFNCwgMHhFQ0UwMjAsIDB4RUNFNDIwLCAweEVEMjBFMCwgMHhFRDIwRTEsIDB4RUQyMEU0LCAweEVEMjBFQywgMHhFRDIwRUUsIAorICAgICAgICAgICAgMHhFRDIwRjksIDB4RUVFNDIwLCAweEVGMjBFNCwgMHhGMEU0MjAsIDB4RjBFOTIwLCAweEYwRTlFRCwgMHhGMkVDMjAsIDB4RjgyMEU0LCAweEY4RTlFRCwgMHhGOUVDMjAsIDB4RkEyMEUwLCAweEZBMjBFMSwgMHhGQTIwRTQsIDB4RkEyMEVDLCAweEZBMjBFRSwgMHhGQTIwRjksIAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gImhlIjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGludCBtYXRjaChDaGFyc2V0RGV0ZWN0b3IgZGV0KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbWF0Y2goZGV0LCBuZ3JhbXMsIGJ5dGVNYXApOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjbGFzcyBDaGFyc2V0UmVjb2dfODg1OV84X2hlIGV4dGVuZHMgQ2hhcnNldFJlY29nXzg4NTlfOAorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gbmdyYW1zID0geworICAgICAgICAgICAgMHgyMEUwRTUsIDB4MjBFMEVDLCAweDIwRTRFOSwgMHgyMEU0RUMsIDB4MjBFNEVFLCAweDIwRTRGMCwgMHgyMEU5RjAsIDB4MjBFQ0YyLCAweDIwRUNGOSwgMHgyMEVERTUsIDB4MjBFREU5LCAweDIwRUZFNSwgMHgyMEVGRTksIDB4MjBGOEU1LCAweDIwRjhFOSwgMHgyMEZBRTAsIAorICAgICAgICAgICAgMHgyMEZBRTUsIDB4MjBGQUU5LCAweEUwMjBFNCwgMHhFMDIwRUMsIDB4RTAyMEVELCAweEUwMjBGQSwgMHhFMEU0MjAsIDB4RTBFNUU0LCAweEUwRUMyMCwgMHhFMEVFMjAsIDB4RTEyMEU0LCAweEUxMjBFRCwgMHhFMTIwRkEsIDB4RTQyMEU0LCAweEU0MjBFOSwgMHhFNDIwRUMsIAorICAgICAgICAgICAgMHhFNDIwRUQsIDB4RTQyMEVGLCAweEU0MjBGOCwgMHhFNDIwRkEsIDB4RTRFQzIwLCAweEU1RTAyMCwgMHhFNUU0MjAsIDB4RTdFMDIwLCAweEU5RTAyMCwgMHhFOUUxMjAsIDB4RTlFNDIwLCAweEVDMjBFNCwgMHhFQzIwRUQsIDB4RUMyMEZBLCAweEVDRjIyMCwgMHhFQ0Y5MjAsIAorICAgICAgICAgICAgMHhFREU5RTksIDB4RURFOUYwLCAweEVERTlGOCwgMHhFRTIwRTQsIDB4RUUyMEVELCAweEVFMjBGQSwgMHhFRUUxMjAsIDB4RUVFNDIwLCAweEYyRTQyMCwgMHhGOTIwRTQsIDB4RjkyMEVELCAweEY5MjBGQSwgMHhGOUU0MjAsIDB4RkFFMDIwLCAweEZBRTQyMCwgMHhGQUU1RTksIAorICAgICAgICB9OworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFuZ3VhZ2UoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gImhlX1ZJU1VBTCI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBhYnN0cmFjdCBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfOSBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhBQSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjUsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEJBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LCAKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGMCwgKGJ5dGUpIDB4RjEsIChieXRlKSAweEYyLCAoYnl0ZSkgMHhGMywgKGJ5dGUpIDB4RjQsIChieXRlKSAweEY1LCAoYnl0ZSkgMHhGNiwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweEZDLCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4RkUsIChieXRlKSAweERGLCAKKyAgICAgICAgICAgIChieXRlKSAweEUwLCAoYnl0ZSkgMHhFMSwgKGJ5dGUpIDB4RTIsIChieXRlKSAweEUzLCAoYnl0ZSkgMHhFNCwgKGJ5dGUpIDB4RTUsIChieXRlKSAweEU2LCAoYnl0ZSkgMHhFNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhFOCwgKGJ5dGUpIDB4RTksIChieXRlKSAweEVBLCAoYnl0ZSkgMHhFQiwgKGJ5dGUpIDB4RUMsIChieXRlKSAweEVELCAoYnl0ZSkgMHhFRSwgKGJ5dGUpIDB4RUYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjAsIChieXRlKSAweEYxLCAoYnl0ZSkgMHhGMiwgKGJ5dGUpIDB4RjMsIChieXRlKSAweEY0LCAoYnl0ZSkgMHhGNSwgKGJ5dGUpIDB4RjYsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEY4LCAoYnl0ZSkgMHhGOSwgKGJ5dGUpIDB4RkEsIChieXRlKSAweEZCLCAoYnl0ZSkgMHhGQywgKGJ5dGUpIDB4RkQsIChieXRlKSAweEZFLCAoYnl0ZSkgMHhGRiwgCisgICAgICAgIH07CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGhhdmVDMUJ5dGVzPyAid2luZG93cy0xMjU0IiA6ICJJU08tODg1OS05IjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nXzg4NTlfOV90ciBleHRlbmRzIENoYXJzZXRSZWNvZ184ODU5XzkKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGludFtdIG5ncmFtcyA9IHsKKyAgICAgICAgICAgIDB4MjA2MjYxLCAweDIwNjI2OSwgMHgyMDYyNzUsIDB4MjA2NDYxLCAweDIwNjQ2NSwgMHgyMDY3NjUsIDB4MjA2ODYxLCAweDIwNjk2QywgMHgyMDZCNjEsIDB4MjA2QjZGLCAweDIwNkQ2MSwgMHgyMDZGNkMsIDB4MjA3MzYxLCAweDIwNzQ2MSwgMHgyMDc2NjUsIDB4MjA3OTYxLCAKKyAgICAgICAgICAgIDB4NjEyMDYyLCAweDYxNkIyMCwgMHg2MTZDNjEsIDB4NjE2RDYxLCAweDYxNkUyMCwgMHg2MTZFRkQsIDB4NjE3MjIwLCAweDYxNzI2MSwgMHg2MTcyRkQsIDB4NjE3M0ZELCAweDYxNzk2MSwgMHg2MjY5NzIsIDB4NjQ2MTIwLCAweDY0NjUyMCwgMHg2NDY5MjAsIDB4NjUyMDYyLCAKKyAgICAgICAgICAgIDB4NjUyMDZCLCAweDY1NjQ2OSwgMHg2NTZFMjAsIDB4NjU3MjIwLCAweDY1NzI2OSwgMHg2NTczNjksIDB4Njk2QzY1LCAweDY5NkUyMCwgMHg2OTZFNjksIDB4Njk3MjIwLCAweDZDNjE2RSwgMHg2QzYxNzIsIDB4NkM2NTIwLCAweDZDNjU3MiwgMHg2RTIwNjEsIDB4NkUyMDYyLCAKKyAgICAgICAgICAgIDB4NkUyMDZCLCAweDZFNjQ2MSwgMHg2RTY0NjUsIDB4NkU2NTIwLCAweDZFNjkyMCwgMHg2RTY5NkUsIDB4NkVGRDIwLCAweDcyNjk2RSwgMHg3MkZENkUsIDB4NzY2NTIwLCAweDc5NjEyMCwgMHg3OTZGNzIsIDB4RkQ2RTIwLCAweEZENkU2NCwgMHhGRDZFRkQsIDB4RkRGMEZELCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJ0ciI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nX3dpbmRvd3NfMTI1MSBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwRTIyMCwgMHgyMEUyRUUsIDB4MjBFNEVFLCAweDIwRTdFMCwgMHgyMEU4MjAsIDB4MjBFQUUwLCAweDIwRUFFRSwgMHgyMEVERTAsIDB4MjBFREU1LCAweDIwRUVFMSwgMHgyMEVGRUUsIDB4MjBFRkYwLCAweDIwRjBFMCwgMHgyMEYxRUUsIDB4MjBGMUYyLCAweDIwRjJFRSwgCisgICAgICAgICAgICAweDIwRjdGMiwgMHgyMEZERjIsIDB4RTBFREU4LCAweEUwRjJGQywgMHhFM0VFMjAsIDB4RTVFQkZDLCAweEU1RURFOCwgMHhFNUYxRjIsIDB4RTVGMjIwLCAweEU4MjBFRiwgMHhFOEU1MjAsIDB4RThFODIwLCAweEU4RkYyMCwgMHhFQkU1RUQsIDB4RUJFODIwLCAweEVCRkNFRCwgCisgICAgICAgICAgICAweEVERTAyMCwgMHhFREU1MjAsIDB4RURFOEU1LCAweEVERThGRiwgMHhFREVFMjAsIDB4RURFRUUyLCAweEVFMjBFMiwgMHhFRTIwRUYsIDB4RUUyMEYxLCAweEVFRTIyMCwgMHhFRUUyRTAsIDB4RUVFM0VFLCAweEVFRTkyMCwgMHhFRUVCRkMsIDB4RUVFQzIwLCAweEVFRjFGMiwgCisgICAgICAgICAgICAweEVGRUVFQiwgMHhFRkYwRTUsIDB4RUZGMEU4LCAweEVGRjBFRSwgMHhGMEUwRTIsIDB4RjBFNUU0LCAweEYxRjJFMCwgMHhGMUYyRTIsIDB4RjFGMkU4LCAweEYxRkYyMCwgMHhGMkU1RUIsIDB4RjJFRTIwLCAweEYyRUVGMCwgMHhGMkZDMjAsIDB4RjdGMkVFLCAweEZCRjUyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZVtdIGJ5dGVNYXAgPSB7CisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDAwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4OTAsIChieXRlKSAweDgzLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4ODMsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4OUEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHg5QywgKGJ5dGUpIDB4OUQsIChieXRlKSAweDlFLCAoYnl0ZSkgMHg5RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg5MCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHg5QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDlDLCAoYnl0ZSkgMHg5RCwgKGJ5dGUpIDB4OUUsIChieXRlKSAweDlGLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHhBMiwgKGJ5dGUpIDB4QTIsIChieXRlKSAweEJDLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QjQsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhCOCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEJBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCMywgKGJ5dGUpIDB4QjMsIChieXRlKSAweEI0LCAoYnl0ZSkgMHhCNSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweEI4LCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4QkEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCQywgKGJ5dGUpIDB4QkUsIChieXRlKSAweEJFLCAoYnl0ZSkgMHhCRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhFMCwgKGJ5dGUpIDB4RTEsIChieXRlKSAweEUyLCAoYnl0ZSkgMHhFMywgKGJ5dGUpIDB4RTQsIChieXRlKSAweEU1LCAoYnl0ZSkgMHhFNiwgKGJ5dGUpIDB4RTcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTgsIChieXRlKSAweEU5LCAoYnl0ZSkgMHhFQSwgKGJ5dGUpIDB4RUIsIChieXRlKSAweEVDLCAoYnl0ZSkgMHhFRCwgKGJ5dGUpIDB4RUUsIChieXRlKSAweEVGLCAKKyAgICAgICAgICAgIChieXRlKSAweEYwLCAoYnl0ZSkgMHhGMSwgKGJ5dGUpIDB4RjIsIChieXRlKSAweEYzLCAoYnl0ZSkgMHhGNCwgKGJ5dGUpIDB4RjUsIChieXRlKSAweEY2LCAoYnl0ZSkgMHhGNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhGOCwgKGJ5dGUpIDB4RjksIChieXRlKSAweEZBLCAoYnl0ZSkgMHhGQiwgKGJ5dGUpIDB4RkMsIChieXRlKSAweEZELCAoYnl0ZSkgMHhGRSwgKGJ5dGUpIDB4RkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LCAKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhGMCwgKGJ5dGUpIDB4RjEsIChieXRlKSAweEYyLCAoYnl0ZSkgMHhGMywgKGJ5dGUpIDB4RjQsIChieXRlKSAweEY1LCAoYnl0ZSkgMHhGNiwgKGJ5dGUpIDB4RjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RjgsIChieXRlKSAweEY5LCAoYnl0ZSkgMHhGQSwgKGJ5dGUpIDB4RkIsIChieXRlKSAweEZDLCAoYnl0ZSkgMHhGRCwgKGJ5dGUpIDB4RkUsIChieXRlKSAweEZGLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gICJ3aW5kb3dzLTEyNTEiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJydSI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY2xhc3MgQ2hhcnNldFJlY29nX3dpbmRvd3NfMTI1NiBleHRlbmRzIENoYXJzZXRSZWNvZ19zYmNzCisgICAgeworICAgICAgICBwcml2YXRlIHN0YXRpYyBpbnRbXSBuZ3JhbXMgPSB7CisgICAgICAgICAgICAweDIwQzdFMSwgMHgyMEM3RTQsIDB4MjBDOEM3LCAweDIwREFFMSwgMHgyMERERUQsIDB4MjBFMUUxLCAweDIwRTNFNCwgMHgyMEU2QzcsIDB4QzcyMEM3LCAweEM3QzEyMCwgMHhDN0NBMjAsIDB4QzdEMTIwLCAweEM3RTEyMCwgMHhDN0UxQzMsIDB4QzdFMUM3LCAweEM3RTFDOCwgCisgICAgICAgICAgICAweEM3RTFDQSwgMHhDN0UxQ0MsIDB4QzdFMUNELCAweEM3RTFDRiwgMHhDN0UxRDMsIDB4QzdFMURBLCAweEM3RTFERSwgMHhDN0UxRTMsIDB4QzdFMUU2LCAweEM3RTFFRCwgMHhDN0UzMjAsIDB4QzdFNDIwLCAweEM3RTRDQSwgMHhDODIwQzcsIDB4QzkyMEM3LCAweEM5MjBERCwgCisgICAgICAgICAgICAweEM5MjBFMSwgMHhDOTIwRTMsIDB4QzkyMEU2LCAweENBMjBDNywgMHhDRjIwQzcsIDB4Q0ZDOTIwLCAweEQxMjBDNywgMHhEMUM5MjAsIDB4RDMyMEM3LCAweERBMjBDNywgMHhEQUUxRUMsIDB4RERFRDIwLCAweEUxMjBDNywgMHhFMUM5MjAsIDB4RTFFQzIwLCAweEUxRUQyMCwgCisgICAgICAgICAgICAweEUzMjBDNywgMHhFM0M3MjAsIDB4RTNDOTIwLCAweEUzRTQyMCwgMHhFNDIwQzcsIDB4RTUyMEM3LCAweEU1QzcyMCwgMHhFNkM3RTEsIDB4RTZFNDIwLCAweEVDMjBDNywgMHhFRDIwQzcsIDB4RUQyMEUzLCAweEVEMjBFNiwgMHhFREM5MjAsIDB4RUREMTIwLCAweEVERTQyMCwgCisgICAgICAgIH07CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZVtdIGJ5dGVNYXAgPSB7CisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDAwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHg2MSwgKGJ5dGUpIDB4NjIsIChieXRlKSAweDYzLCAoYnl0ZSkgMHg2NCwgKGJ5dGUpIDB4NjUsIChieXRlKSAweDY2LCAoYnl0ZSkgMHg2NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg2OCwgKGJ5dGUpIDB4NjksIChieXRlKSAweDZBLCAoYnl0ZSkgMHg2QiwgKGJ5dGUpIDB4NkMsIChieXRlKSAweDZELCAoYnl0ZSkgMHg2RSwgKGJ5dGUpIDB4NkYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzAsIChieXRlKSAweDcxLCAoYnl0ZSkgMHg3MiwgKGJ5dGUpIDB4NzMsIChieXRlKSAweDc0LCAoYnl0ZSkgMHg3NSwgKGJ5dGUpIDB4NzYsIChieXRlKSAweDc3LCAKKyAgICAgICAgICAgIChieXRlKSAweDc4LCAoYnl0ZSkgMHg3OSwgKGJ5dGUpIDB4N0EsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDgxLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4ODMsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDg4LCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4OEEsIChieXRlKSAweDIwLCAoYnl0ZSkgMHg5QywgKGJ5dGUpIDB4OEQsIChieXRlKSAweDhFLCAoYnl0ZSkgMHg4RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg5MCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4OTgsIChieXRlKSAweDIwLCAoYnl0ZSkgMHg5QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDlDLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDlGLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEFBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhCNSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhDMCwgKGJ5dGUpIDB4QzEsIChieXRlKSAweEMyLCAoYnl0ZSkgMHhDMywgKGJ5dGUpIDB4QzQsIChieXRlKSAweEM1LCAoYnl0ZSkgMHhDNiwgKGJ5dGUpIDB4QzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4QzgsIChieXRlKSAweEM5LCAoYnl0ZSkgMHhDQSwgKGJ5dGUpIDB4Q0IsIChieXRlKSAweENDLCAoYnl0ZSkgMHhDRCwgKGJ5dGUpIDB4Q0UsIChieXRlKSAweENGLCAKKyAgICAgICAgICAgIChieXRlKSAweEQwLCAoYnl0ZSkgMHhEMSwgKGJ5dGUpIDB4RDIsIChieXRlKSAweEQzLCAoYnl0ZSkgMHhENCwgKGJ5dGUpIDB4RDUsIChieXRlKSAweEQ2LCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHhEOCwgKGJ5dGUpIDB4RDksIChieXRlKSAweERBLCAoYnl0ZSkgMHhEQiwgKGJ5dGUpIDB4REMsIChieXRlKSAweERELCAoYnl0ZSkgMHhERSwgKGJ5dGUpIDB4REYsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RTAsIChieXRlKSAweEUxLCAoYnl0ZSkgMHhFMiwgKGJ5dGUpIDB4RTMsIChieXRlKSAweEU0LCAoYnl0ZSkgMHhFNSwgKGJ5dGUpIDB4RTYsIChieXRlKSAweEU3LCAKKyAgICAgICAgICAgIChieXRlKSAweEU4LCAoYnl0ZSkgMHhFOSwgKGJ5dGUpIDB4RUEsIChieXRlKSAweEVCLCAoYnl0ZSkgMHhFQywgKGJ5dGUpIDB4RUQsIChieXRlKSAweEVFLCAoYnl0ZSkgMHhFRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4RjQsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweEY5LCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4RkIsIChieXRlKSAweEZDLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEZGLCAKKyAgICAgICAgfTsKKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gICJ3aW5kb3dzLTEyNTYiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJhciI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgc3RhdGljIGNsYXNzIENoYXJzZXRSZWNvZ19LT0k4X1IgZXh0ZW5kcyBDaGFyc2V0UmVjb2dfc2JjcworICAgIHsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgaW50W10gbmdyYW1zID0geworICAgICAgICAgICAgMHgyMEM0Q0YsIDB4MjBDOTIwLCAweDIwQ0JDMSwgMHgyMENCQ0YsIDB4MjBDRUMxLCAweDIwQ0VDNSwgMHgyMENGQzIsIDB4MjBEMENGLCAweDIwRDBEMiwgMHgyMEQyQzEsIDB4MjBEM0NGLCAweDIwRDNENCwgMHgyMEQ0Q0YsIDB4MjBENzIwLCAweDIwRDdDRiwgMHgyMERBQzEsIAorICAgICAgICAgICAgMHgyMERDRDQsIDB4MjBERUQ0LCAweEMxQ0VDOSwgMHhDMUQ0RDgsIDB4QzVDQ0Q4LCAweEM1Q0VDOSwgMHhDNUQzRDQsIDB4QzVENDIwLCAweEM3Q0YyMCwgMHhDOTIwRDAsIDB4QzlDNTIwLCAweEM5QzkyMCwgMHhDOUQxMjAsIDB4Q0NDNUNFLCAweENDQzkyMCwgMHhDQ0Q4Q0UsIAorICAgICAgICAgICAgMHhDRUMxMjAsIDB4Q0VDNTIwLCAweENFQzlDNSwgMHhDRUM5RDEsIDB4Q0VDRjIwLCAweENFQ0ZENywgMHhDRjIwRDAsIDB4Q0YyMEQzLCAweENGMjBENywgMHhDRkM3Q0YsIDB4Q0ZDQTIwLCAweENGQ0NEOCwgMHhDRkNEMjAsIDB4Q0ZEM0Q0LCAweENGRDcyMCwgMHhDRkQ3QzEsIAorICAgICAgICAgICAgMHhEMENGQ0MsIDB4RDBEMkM1LCAweEQwRDJDOSwgMHhEMEQyQ0YsIDB4RDJDMUQ3LCAweEQyQzVDNCwgMHhEM0QxMjAsIDB4RDNENEMxLCAweEQzRDRDOSwgMHhEM0Q0RDcsIDB4RDRDNUNDLCAweEQ0Q0YyMCwgMHhENENGRDIsIDB4RDREODIwLCAweEQ5QzgyMCwgMHhERUQ0Q0YsIAorICAgICAgICB9OworCisgICAgICAgIHByaXZhdGUgc3RhdGljIGJ5dGVbXSBieXRlTWFwID0geworICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgwMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4NjEsIChieXRlKSAweDYyLCAoYnl0ZSkgMHg2MywgKGJ5dGUpIDB4NjQsIChieXRlKSAweDY1LCAoYnl0ZSkgMHg2NiwgKGJ5dGUpIDB4NjcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NjgsIChieXRlKSAweDY5LCAoYnl0ZSkgMHg2QSwgKGJ5dGUpIDB4NkIsIChieXRlKSAweDZDLCAoYnl0ZSkgMHg2RCwgKGJ5dGUpIDB4NkUsIChieXRlKSAweDZGLCAKKyAgICAgICAgICAgIChieXRlKSAweDcwLCAoYnl0ZSkgMHg3MSwgKGJ5dGUpIDB4NzIsIChieXRlKSAweDczLCAoYnl0ZSkgMHg3NCwgKGJ5dGUpIDB4NzUsIChieXRlKSAweDc2LCAoYnl0ZSkgMHg3NywgCisgICAgICAgICAgICAoYnl0ZSkgMHg3OCwgKGJ5dGUpIDB4NzksIChieXRlKSAweDdBLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDYxLCAoYnl0ZSkgMHg2MiwgKGJ5dGUpIDB4NjMsIChieXRlKSAweDY0LCAoYnl0ZSkgMHg2NSwgKGJ5dGUpIDB4NjYsIChieXRlKSAweDY3LCAKKyAgICAgICAgICAgIChieXRlKSAweDY4LCAoYnl0ZSkgMHg2OSwgKGJ5dGUpIDB4NkEsIChieXRlKSAweDZCLCAoYnl0ZSkgMHg2QywgKGJ5dGUpIDB4NkQsIChieXRlKSAweDZFLCAoYnl0ZSkgMHg2RiwgCisgICAgICAgICAgICAoYnl0ZSkgMHg3MCwgKGJ5dGUpIDB4NzEsIChieXRlKSAweDcyLCAoYnl0ZSkgMHg3MywgKGJ5dGUpIDB4NzQsIChieXRlKSAweDc1LCAoYnl0ZSkgMHg3NiwgKGJ5dGUpIDB4NzcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4NzgsIChieXRlKSAweDc5LCAoYnl0ZSkgMHg3QSwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHhBMywgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAKKyAgICAgICAgICAgIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweEEzLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgCisgICAgICAgICAgICAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIChieXRlKSAweDIwLCAoYnl0ZSkgMHgyMCwgKGJ5dGUpIDB4MjAsIAorICAgICAgICAgICAgKGJ5dGUpIDB4QzAsIChieXRlKSAweEMxLCAoYnl0ZSkgMHhDMiwgKGJ5dGUpIDB4QzMsIChieXRlKSAweEM0LCAoYnl0ZSkgMHhDNSwgKGJ5dGUpIDB4QzYsIChieXRlKSAweEM3LCAKKyAgICAgICAgICAgIChieXRlKSAweEM4LCAoYnl0ZSkgMHhDOSwgKGJ5dGUpIDB4Q0EsIChieXRlKSAweENCLCAoYnl0ZSkgMHhDQywgKGJ5dGUpIDB4Q0QsIChieXRlKSAweENFLCAoYnl0ZSkgMHhDRiwgCisgICAgICAgICAgICAoYnl0ZSkgMHhEMCwgKGJ5dGUpIDB4RDEsIChieXRlKSAweEQyLCAoYnl0ZSkgMHhEMywgKGJ5dGUpIDB4RDQsIChieXRlKSAweEQ1LCAoYnl0ZSkgMHhENiwgKGJ5dGUpIDB4RDcsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RDgsIChieXRlKSAweEQ5LCAoYnl0ZSkgMHhEQSwgKGJ5dGUpIDB4REIsIChieXRlKSAweERDLCAoYnl0ZSkgMHhERCwgKGJ5dGUpIDB4REUsIChieXRlKSAweERGLCAKKyAgICAgICAgICAgIChieXRlKSAweEMwLCAoYnl0ZSkgMHhDMSwgKGJ5dGUpIDB4QzIsIChieXRlKSAweEMzLCAoYnl0ZSkgMHhDNCwgKGJ5dGUpIDB4QzUsIChieXRlKSAweEM2LCAoYnl0ZSkgMHhDNywgCisgICAgICAgICAgICAoYnl0ZSkgMHhDOCwgKGJ5dGUpIDB4QzksIChieXRlKSAweENBLCAoYnl0ZSkgMHhDQiwgKGJ5dGUpIDB4Q0MsIChieXRlKSAweENELCAoYnl0ZSkgMHhDRSwgKGJ5dGUpIDB4Q0YsIAorICAgICAgICAgICAgKGJ5dGUpIDB4RDAsIChieXRlKSAweEQxLCAoYnl0ZSkgMHhEMiwgKGJ5dGUpIDB4RDMsIChieXRlKSAweEQ0LCAoYnl0ZSkgMHhENSwgKGJ5dGUpIDB4RDYsIChieXRlKSAweEQ3LCAKKyAgICAgICAgICAgIChieXRlKSAweEQ4LCAoYnl0ZSkgMHhEOSwgKGJ5dGUpIDB4REEsIChieXRlKSAweERCLCAoYnl0ZSkgMHhEQywgKGJ5dGUpIDB4REQsIChieXRlKSAweERFLCAoYnl0ZSkgMHhERiwgCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gICJLT0k4LVIiOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU3RyaW5nIGdldExhbmd1YWdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJydSI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1hdGNoKGRldCwgbmdyYW1zLCBieXRlTWFwKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoYXJzZXRSZWNvZ25pemVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2duaXplci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4NGJiMjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGFyc2V0UmVjb2duaXplci5qYXZhCkBAIC0wLDAgKzEsNTUgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiBBYnN0cmFjdCBjbGFzcyBmb3IgcmVjb2duaXppbmcgYSBzaW5nbGUgY2hhcnNldC4KKyAqIFBhcnQgb2YgdGhlIGltcGxlbWVudGF0aW9uIG9mIElDVSdzIENoYXJzZXREZXRlY3Rvci4KKyAqIAorICogRWFjaCBzcGVjaWZpYyBjaGFyc2V0IHRoYXQgY2FuIGJlIHJlY29nbml6ZWQgd2lsbCBoYXZlIGFuIGluc3RhbmNlCisgKiBvZiBzb21lIHN1YmNsYXNzIG9mIHRoaXMgY2xhc3MuICBBbGwgaW50ZXJhY3Rpb24gYmV0d2VlbiB0aGUgb3ZlcmFsbAorICogQ2hhcnNldERldGVjdG9yIGFuZCB0aGUgc3R1ZmYgc3BlY2lmaWMgdG8gYW4gaW5kaXZpZHVhbCBjaGFyc2V0IGhhcHBlbnMKKyAqIHZpYSB0aGUgaW50ZXJmYWNlIHByb3ZpZGVkIGhlcmUuCisgKiAKKyAqIEluc3RhbmNlcyBvZiBDaGFyc2V0RGV0ZWN0b3IgRE8gTk9UIGhhdmUgb3IgbWFpbnRhaW4gCisgKiBzdGF0ZSBwZXJ0YWluaW5nIHRvIGEgc3BlY2lmaWMgbWF0Y2ggb3IgZGV0ZWN0IG9wZXJhdGlvbi4KKyAqIFRoZSBXSUxMIGJlIHNoYXJlZCBieSBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgQ2hhcnNldERldGVjdG9yLgorICogVGhleSBlbmNhcHN1bGF0ZSBjb25zdCBjaGFyc2V0LXNwZWNpZmljIGluZm9ybWF0aW9uLgorICogCisgKiBAaW50ZXJuYWwKKyAqLworYWJzdHJhY3QgY2xhc3MgQ2hhcnNldFJlY29nbml6ZXIgeworICAgIC8qKgorICAgICAqIEdldCB0aGUgSUFOQSBuYW1lIG9mIHRoaXMgY2hhcnNldC4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyc2V0IG5hbWUuCisgICAgICovCisgICAgYWJzdHJhY3QgU3RyaW5nICAgICAgZ2V0TmFtZSgpOworICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgSVNPIGxhbmd1YWdlIGNvZGUgZm9yIHRoaXMgY2hhcnNldC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsYW5ndWFnZSBjb2RlLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgbGFuZ3VhZ2UgY2Fubm90IGJlIGRldGVybWluZWQuCisgICAgICovCisgICAgcHVibGljICAgU3RyaW5nICAgICAgZ2V0TGFuZ3VhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIG1hdGNoIG9mIHRoaXMgY2hhcnNldCB3aXRoIHRoZSBpbnB1dCB0ZXh0IGRhdGEKKyAgICAgKiAgICAgIHdoaWNoIGlzIG9idGFpbmVkIHZpYSB0aGUgQ2hhcnNldERldGVjdG9yIG9iamVjdC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZGV0ICBUaGUgQ2hhcnNldERldGVjdG9yLCB3aGljaCBjb250YWlucyB0aGUgaW5wdXQgdGV4dAorICAgICAqICAgICAgICAgICAgIHRvIGJlIGNoZWNrZWQgZm9yIGJlaW5nIGluIHRoaXMgY2hhcnNldC4KKyAgICAgKiBAcmV0dXJuICAgICBUd28gdmFsdWVzIHBhY2tlZCBpbnRvIG9uZSBpbnQgIChEYW1uIGphdmEsIGFueWhvdykKKyAgICAgKiAgICAgICAgICAgICA8YnIvPgorICAgICAqICAgICAgICAgICAgIGJpdHMgMC03OiAgdGhlIG1hdGNoIGNvbmZpZGVuY2UsIHJhbmdpbmcgZnJvbSAwLTEwMAorICAgICAqICAgICAgICAgICAgIDxici8+CisgICAgICogICAgICAgICAgICAgYml0cyA4LTE1OiBUaGUgbWF0Y2ggcmVhc29uLCBhbiBlbnVtLWxpa2UgdmFsdWUuCisgICAgICovCisgICAgYWJzdHJhY3QgaW50ICAgICAgICAgbWF0Y2goQ2hhcnNldERldGVjdG9yIGRldCk7CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoaW5lc2VEYXRlRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGluZXNlRGF0ZUZvcm1hdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUwYWI2MzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9DaGluZXNlRGF0ZUZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsMTc0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBBIGNvbmNyZXRlIHtAbGluayBEYXRlRm9ybWF0fSBmb3Ige0BsaW5rIGNvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyfS4KKyAqIFRoaXMgY2xhc3MgaGFuZGxlcyBhIDxjb2RlPkNoaW5lc2VDYWxlbmRhcjwvY29kZT4tc3BlY2lmaWMgZmllbGQsCisgKiA8Y29kZT5DaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USDwvY29kZT4uICBJdCBhbHNvIHJlZGVmaW5lcyB0aGUKKyAqIGhhbmRsaW5nIG9mIHR3byBmaWVsZHMsIDxjb2RlPkVSQTwvY29kZT4gYW5kIDxjb2RlPllFQVI8L2NvZGU+LiAgVGhlCisgKiBmb3JtZXIgaXMgZGlzcGxheWVkIG51bWVyaWNhbGx5LCBpbnN0ZWFkIG9mIHN5bWJvbGljYWxseSwgc2luY2UgaXQgaXMKKyAqIHRoZSBudW1lcmljIGN5Y2xlIG51bWJlciBpbiA8Y29kZT5DaGluZXNlQ2FsZW5kYXI8L2NvZGU+LiAgVGhlIGxhdHRlciBpcworICogbnVtZXJpYywgYXMgYmVmb3JlLCBidXQgaGFzIG5vIHNwZWNpYWwgMi1kaWdpdCBZMksgYmVoYXZpb3IuCisgKgorICogPHA+V2l0aCByZWdhcmQgdG8gPGNvZGU+Q2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEg8L2NvZGU+LCB0aGlzCisgKiBjbGFzcyBoYW5kbGVzIHBhcnNpbmcgc3BlY2lhbGx5LiAgSWYgbm8gc3RyaW5nIHN5bWJvbCBpcyBmb3VuZCBhdCBhbGwsCisgKiB0aGlzIGlzIHRha2VuIGFzIGVxdWl2YWxlbnQgdG8gYW4gPGNvZGU+SVNfTEVBUF9NT05USDwvY29kZT4gdmFsdWUgb2YKKyAqIHplcm8uICBUaGlzIGFsbG93cyBmb3JtYXRzIHRvIGRpc3BsYXkgYSBzcGVjaWFsIHN0cmluZyAoZS5nLiwgIioiKSBmb3IKKyAqIGxlYXAgbW9udGhzLCBidXQgbm8gc3RyaW5nIGZvciBub3JtYWwgbW9udGhzLgorICoKKyAqIDxwPlN1bW1hcnkgb2YgZmllbGQgY2hhbmdlcyB2cy4ge0BsaW5rIFNpbXBsZURhdGVGb3JtYXR9OjxwcmU+CisgKiBTeW1ib2wgICBNZWFuaW5nICAgICAgICAgICAgICAgICBQcmVzZW50YXRpb24gICAgICAgIEV4YW1wbGUKKyAqIC0tLS0tLSAgIC0tLS0tLS0gICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLSAgICAgICAgLS0tLS0tLQorICogRyAgICAgICAgY3ljbGUgICAgICAgICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICA3OAorICogeSAgICAgICAgeWVhciBvZiBjeWNsZSAoMS4uNjApICAgKE51bWJlcikgICAgICAgICAgICAxNworICogbCAgICAgICAgaXMgbGVhcCBtb250aCAgICAgICAgICAgKFRleHQpICAgICAgICAgICAgICA0NjM3CisgKiA8L3ByZT4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuQ2hpbmVzZUNhbGVuZGFyCisgKiBAc2VlIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scworICogQGF1dGhvciBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBDaGluZXNlRGF0ZUZvcm1hdCBleHRlbmRzIFNpbXBsZURhdGVGb3JtYXQgeworICAgIC8vIEdlbmVyYXRlZCBieSBzZXJpYWx2ZXIgZnJvbSBKREsgMS40LjFfMDEKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTQ2MTAzMDA3NTMxMDQwOTk4OTlMOworICAgIAorICAgIC8vIFRPRE8gRmluaXNoIHRoZSBjb25zdHJ1Y3RvcnMKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIENoaW5lc2VEYXRlRm9ybWF0IGZyb20gYSBkYXRlIGZvcm1hdCBwYXR0ZXJuIGFuZCBsb2NhbGUKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgcHVibGljIENoaW5lc2VEYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgLy8gVE9ETzogY29udmVydCB0byB1c2UgVUxvY2FsZQorICAgICAgICBzdXBlcihwYXR0ZXJuLCBuZXcgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKGxvY2FsZSksIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIENoaW5lc2VEYXRlRm9ybWF0IGZyb20gYSBkYXRlIGZvcm1hdCBwYXR0ZXJuIGFuZCBsb2NhbGUKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICBwdWJsaWMgQ2hpbmVzZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgLy8gVE9ETzogY29udmVydCBDREZTIHRvIHVzZSBVTG9jYWxlCisgICAgICAgIC8vc3VwZXIocGF0dGVybiwgbmV3IENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyhsb2NhbGUudG9Mb2NhbGUoKSksIHRydWUpOworICAgICAgIHN1cGVyKHBhdHRlcm4sIG5ldyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMobG9jYWxlKSwgbG9jYWxlKTsKKyAgICB9CisKKy8vIE5PVEU6IFRoaXMgQVBJIHN0aWxsIGV4aXN0czsgd2UganVzdCBpbmhlcml0IGl0IGZyb20gU2ltcGxlRGF0ZUZvcm1hdAorLy8gYXMgb2YgSUNVIDMuMAorLy8gIC8qKgorLy8gICAqIEBzdGFibGUgSUNVIDIuMAorLy8gICAqLworLy8gIHByb3RlY3RlZCBTdHJpbmcgc3ViRm9ybWF0KGNoYXIgY2gsIGludCBjb3VudCwgaW50IGJlZ2luT2Zmc2V0LAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zLCBEYXRlRm9ybWF0U3ltYm9scyBmb3JtYXREYXRhLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyIGNhbCkgIHsKKy8vICAgICAgc3dpdGNoIChjaCkgeworLy8gICAgICBjYXNlICdHJzogLy8gJ0cnIC0gRVJBCisvLyAgICAgICAgICByZXR1cm4gemVyb1BhZGRpbmdOdW1iZXIoY2FsLmdldChDYWxlbmRhci5FUkEpLCAxLCA5KTsKKy8vICAgICAgY2FzZSAnbCc6IC8vICdsJyAtIElTX0xFQVBfTU9OVEgKKy8vICAgICAgICAgIHsKKy8vICAgICAgICAgICAgICBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMgc3ltYm9scyA9CisvLyAgICAgICAgICAgICAgICAgIChDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMpIGZvcm1hdERhdGE7CisvLyAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbHMuZ2V0TGVhcE1vbnRoKGNhbC5nZXQoCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpKTsKKy8vICAgICAgICAgIH0KKy8vICAgICAgZGVmYXVsdDoKKy8vICAgICAgICAgIHJldHVybiBzdXBlci5zdWJGb3JtYXQoY2gsIGNvdW50LCBiZWdpbk9mZnNldCwgcG9zLCBmb3JtYXREYXRhLCBjYWwpOworLy8gICAgICB9CisvLyAgfSAgICAKKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHN1YkZvcm1hdChTdHJpbmdCdWZmZXIgYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNoLCBpbnQgY291bnQsIGludCBiZWdpbk9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyIGNhbCkgeworICAgICAgICBzd2l0Y2ggKGNoKSB7CisgICAgICAgIGNhc2UgJ0cnOiAvLyAnRycgLSBFUkEKKyAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgY2FsLmdldChDYWxlbmRhci5FUkEpLCAxLCA5KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdsJzogLy8gJ2wnIC0gSVNfTEVBUF9NT05USAorICAgICAgICAgICAgYnVmLmFwcGVuZCgoKENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scykgZ2V0U3ltYm9scygpKS4KKyAgICAgICAgICAgICAgICAgICAgICAgZ2V0TGVhcE1vbnRoKGNhbC5nZXQoQ2hpbmVzZUNhbGVuZGFyLklTX0xFQVBfTU9OVEgpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHN1cGVyLnN1YkZvcm1hdChidWYsIGNoLCBjb3VudCwgYmVnaW5PZmZzZXQsIHBvcywgY2FsKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgLy8gVE9ETzogYWRkIGNvZGUgdG8gc2V0IEZpZWxkUG9zaXRpb24gZm9yICdHJyBhbmQgJ2wnIGZpZWxkcy4gVGhpcworICAgICAgICAvLyBpcyBhIERFU0lHTiBGTEFXIC0tIHN1YmNsYXNzZXMgc2hvdWxkbid0IGhhdmUgdG8gZHVwbGljYXRlIHRoZQorICAgICAgICAvLyBjb2RlIHRoYXQgaGFuZGxlcyB0aGlzIGF0IHRoZSBlbmQgb2YgU2ltcGxlRGF0ZUZvcm1hdC5zdWJGb3JtYXQuCisgICAgICAgIC8vIFRoZSBsb2dpYyBzaG91bGQgYmUgbW92ZWQgdXAgaW50byBTaW1wbGVEYXRlRm9ybWF0LmZvcm1hdC4KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IHN1YlBhcnNlKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQsIGNoYXIgY2gsIGludCBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gb2JleUNvdW50LCBib29sZWFuIGFsbG93TmVnYXRpdmUsIGJvb2xlYW5bXSBhbWJpZ3VvdXNZZWFyLCBDYWxlbmRhciBjYWwpIHsKKyAgICAgICAgaWYgKGNoICE9ICdHJyAmJiBjaCAhPSAnbCcgJiYgY2ggIT0gJ3knKSB7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuc3ViUGFyc2UodGV4dCwgc3RhcnQsIGNoLCBjb3VudCwgb2JleUNvdW50LCBhbGxvd05lZ2F0aXZlLCBhbWJpZ3VvdXNZZWFyLCBjYWwpOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2tpcCB3aGl0ZXNwYWNlCisgICAgICAgIHN0YXJ0ID0gVXRpbGl0eS5za2lwV2hpdGVzcGFjZSh0ZXh0LCBzdGFydCk7CisKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbihzdGFydCk7CisKKyAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICBjYXNlICdHJzogLy8gJ0cnIC0gRVJBCisgICAgICAgIGNhc2UgJ3knOiAvLyAneScgLSBZRUFSLCBidXQgd2l0aG91dCB0aGUgMi1kaWdpdCBZMksgYWRqdXN0bWVudAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIE51bWJlciBudW1iZXIgPSBudWxsOworICAgICAgICAgICAgICAgIGlmIChvYmV5Q291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChzdGFydCtjb3VudCkgPiB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLXN0YXJ0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0LnN1YnN0cmluZygwLCBzdGFydCtjb3VudCksIHBvcyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyRm9ybWF0LnBhcnNlKHRleHQsIHBvcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLXN0YXJ0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnQgdmFsdWUgPSBudW1iZXIuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KGNoID09ICdHJyA/IENhbGVuZGFyLkVSQSA6IENhbGVuZGFyLllFQVIsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgJ2wnOiAvLyAnbCcgLSBJU19MRUFQX01PTlRICisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPQorICAgICAgICAgICAgICAgICAgICAoQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKSBnZXRTeW1ib2xzKCk7CisgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9scy5pc0xlYXBNb250aCwgY2FsKTsKKyAgICAgICAgICAgICAgICAvLyBUcmVhdCB0aGUgYWJzZW5jZSBvZiBhbnkgbWF0Y2hpbmcgc3RyaW5nIGFzIHNldHRpbmcKKyAgICAgICAgICAgICAgICAvLyBJU19MRUFQX01PTlRIIHRvIGZhbHNlLgorICAgICAgICAgICAgICAgIGlmIChyZXN1bHQ8MCkgeworICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRILCAwKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICByZXR1cm4gMDsgLy8gVGhpcyBjYW4gbmV2ZXIgaGFwcGVuCisgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoaW5lc2VEYXRlRm9ybWF0U3ltYm9scy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjJjMjUxNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NoaW5lc2VEYXRlRm9ybWF0U3ltYm9scy5qYXZhCkBAIC0wLDAgKzEsOTYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuKjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIEEgc3ViY2xhc3Mgb2Yge0BsaW5rIERhdGVGb3JtYXRTeW1ib2xzfSBmb3Ige0BsaW5rIENoaW5lc2VEYXRlRm9ybWF0fS4KKyAqIFRoaXMgY2xhc3MgY29udGFpbnMgYWRkaXRpb25hbCBzeW1ib2xzIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisgKiA8Y29kZT5DaGluZXNlQ2FsZW5kYXIuSVNfTEVBUF9NT05USDwvY29kZT4gZmllbGQuCisgKgorICogQHNlZSBDaGluZXNlRGF0ZUZvcm1hdAorICogQHNlZSBjb20uaWJtLmljdS51dGlsLkNoaW5lc2VDYWxlbmRhcgorICogQGF1dGhvciBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMgZXh0ZW5kcyBEYXRlRm9ybWF0U3ltYm9scyB7CisgICAgLy8gR2VuZXJhdGVkIGJ5IHNlcmlhbHZlciBmcm9tIEpESyAxLjQuMV8wMQorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA2ODI3ODE2MTE5NzgzOTUyODkwTDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlLXByaXZhdGUgYXJyYXkgdGhhdCBDaGluZXNlRGF0ZUZvcm1hdCBuZWVkcyB0byBiZSBhYmxlIHRvCisgICAgICogcmVhZC4KKyAgICAgKi8KKyAgICBTdHJpbmcgaXNMZWFwTW9udGhbXTsgLy8gRG8gTk9UIGFkZCA9bnVsbCBpbml0aWFsaXplcgorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgdGhpcyhVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzIGZvciB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcihDaGluZXNlQ2FsZW5kYXIuY2xhc3MsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyBmb3IgdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoQ2hpbmVzZUNhbGVuZGFyLmNsYXNzLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIENoaW5lc2VEYXRlRm9ybWF0U3ltYm9scyBmb3IgdGhlIHByb3ZpZGVkIGNhbGVuZGFyIGFuZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGNhbCB0aGUgQ2FsZW5kYXIKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKENhbGVuZGFyIGNhbCwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcihjYWw9PW51bGw/bnVsbDpjYWwuZ2V0Q2xhc3MoKSwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBDaGluZXNlRGF0ZUZvcm1hdFN5bWJvbHMgZm9yIHRoZSBwcm92aWRlZCBjYWxlbmRhciBhbmQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBjYWwgdGhlIENhbGVuZGFyCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hpbmVzZURhdGVGb3JtYXRTeW1ib2xzKENhbGVuZGFyIGNhbCwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoY2FsID09IG51bGwgPyBudWxsIDogY2FsLmdldENsYXNzKCksIGxvY2FsZSk7CisgICAgfQorCisgICAgLy8gTmV3IEFQSQorICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGVhcE1vbnRoKGludCBpc0xlYXBNb250aCkgeworICAgICAgICByZXR1cm4gdGhpcy5pc0xlYXBNb250aFtpc0xlYXBNb250aF07CisgICAgfQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0aWFsaXplRGF0YShVTG9jYWxlIGxvYywgQ2FsZW5kYXJEYXRhIGNhbERhdGEpIHsKKyAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZURhdGEobG9jLCBjYWxEYXRhKTsKKyAgICAgICAgaXNMZWFwTW9udGggPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJpc0xlYXBNb250aCIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDUwZTNlNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMjg3NSBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvKioqCisgKiBpbXBvcnQgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yOworICogaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKyAqLworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5TdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEZWJ1ZzsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CisKKy8qKgorICogPHA+PGNvZGU+Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yPC9jb2RlPiBpcyBhbiBpdGVyYXRvciBjcmVhdGVkIGJ5CisgKiBhIFJ1bGVCYXNlZENvbGxhdG9yIHRvIHdhbGsgdGhyb3VnaCBhIHN0cmluZy4gVGhlIHJldHVybiByZXN1bHQgb2YKKyAqIGVhY2ggaXRlcmF0aW9uIGlzIGEgMzItYml0IGNvbGxhdGlvbiBlbGVtZW50IHRoYXQgZGVmaW5lcyB0aGUKKyAqIG9yZGVyaW5nIHByaW9yaXR5IG9mIHRoZSBuZXh0IGNoYXJhY3RlciBvciBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzCisgKiBpbiB0aGUgc291cmNlIHN0cmluZy48L3A+CisgKgorICogPHA+Rm9yIGlsbHVzdHJhdGlvbiwgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBpbiBTcGFuaXNoOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogImNhIiAtPiB0aGUgZmlyc3QgY29sbGF0aW9uIGVsZW1lbnQgaXMgY29sbGF0aW9uX2VsZW1lbnQoJ2MnKSBhbmQgc2Vjb25kCisgKiAgICAgICAgIGNvbGxhdGlvbiBlbGVtZW50IGlzIGNvbGxhdGlvbl9lbGVtZW50KCdhJykuCisgKgorICogU2luY2UgImNoIiBpbiBTcGFuaXNoIHNvcnRzIGFzIG9uZSBlbnRpdHksIHRoZSBiZWxvdyBleGFtcGxlIHJldHVybnMgb25lCisgKiBjb2xsYXRpb24gZWxlbWVudCBmb3IgdGhlIHR3byBjaGFyYWN0ZXJzICdjJyBhbmQgJ2gnCisgKgorICogImNoYSIgLT4gdGhlIGZpcnN0IGNvbGxhdGlvbiBlbGVtZW50IGlzIGNvbGxhdGlvbl9lbGVtZW50KCdjaCcpIGFuZCBzZWNvbmQKKyAqICAgICAgICAgIGNvbGxhdGlvbiBlbGVtZW50IGlzIGNvbGxhdGlvbl9lbGVtZW50KCdhJykuCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIEFuZCBpbiBHZXJtYW4sCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBTaW5jZSB0aGUgY2hhcmFjdGVyICcmIzIzMDsnIGlzIGEgY29tcG9zZWQgY2hhcmFjdGVyIG9mICdhJyBhbmQgJ2UnLCB0aGUKKyAqIGl0ZXJhdG9yIHJldHVybnMgdHdvIGNvbGxhdGlvbiBlbGVtZW50cyBmb3IgdGhlIHNpbmdsZSBjaGFyYWN0ZXIgJyYjMjMwOycKKyAqCisgKiAiJiMyMzA7YiIgLT4gdGhlIGZpcnN0IGNvbGxhdGlvbiBlbGVtZW50IGlzIGNvbGxhdGlvbl9lbGVtZW50KCdhJyksIHRoZQorICogICAgICAgICAgICAgIHNlY29uZCBjb2xsYXRpb24gZWxlbWVudCBpcyBjb2xsYXRpb25fZWxlbWVudCgnZScpLCBhbmQgdGhlCisgKiAgICAgICAgICAgICAgdGhpcmQgY29sbGF0aW9uIGVsZW1lbnQgaXMgY29sbGF0aW9uX2VsZW1lbnQoJ2InKS4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPC9wPgorICoKKyAqIDxwPkZvciBjb2xsYXRpb24gb3JkZXJpbmcgY29tcGFyaXNvbiwgdGhlIGNvbGxhdGlvbiBlbGVtZW50IHJlc3VsdHMKKyAqIGNhbiBub3QgYmUgY29tcGFyZWQgc2ltcGx5IGJ5IHVzaW5nIGJhc2ljIGFyaXRobWV0cmljIG9wZXJhdG9ycywKKyAqIGUuZy4gJmx0OywgPT0gb3IgJmd0OywgZnVydGhlciBwcm9jZXNzaW5nIGhhcyB0byBiZSBkb25lLiBEZXRhaWxzCisgKiBjYW4gYmUgZm91bmQgaW4gdGhlIElDVQorICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfU2VydmljZUFyY2hpdGVjdHVyZS5odG1sIj4KKyAqIHVzZXIgZ3VpZGU8L2E+LiBBbiBleGFtcGxlIG9mIHVzaW5nIHRoZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IKKyAqIGZvciBjb2xsYXRpb24gb3JkZXJpbmcgY29tcGFyaXNvbiBpcyB0aGUgY2xhc3MKKyAqIDxhIGhyZWY9U3RyaW5nU2VhcmNoLmh0bWw+IGNvbS5pYm0uaWN1LnRleHQuU3RyaW5nU2VhcmNoPC9hPi48L3A+CisgKgorICogPHA+VG8gY29uc3RydWN0IGEgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG9iamVjdCwgdXNlcnMKKyAqIGNhbGwgdGhlIG1ldGhvZCBnZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoKSBvbiBhCisgKiBSdWxlQmFzZWRDb2xsYXRvciB0aGF0IGRlZmluZXMgdGhlIGRlc2lyZWQgc29ydGluZyBvcmRlci48L3A+CisgKgorICogPHA+IEV4YW1wbGU6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAgU3RyaW5nIHRlc3RTdHJpbmcgPSAiVGhpcyBpcyBhIHRlc3QiOworICogIFJ1bGVCYXNlZENvbGxhdG9yIHJiYyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcigiJmFtcDthJmx0O2IiKTsKKyAqICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXRlcmF0b3IgPSByYmMuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRlc3RTdHJpbmcpOworICogIGludCBwcmltYXJ5T3JkZXIgPSBpdGVyYXRvci5JR05PUkFCTEU7CisgKiAgd2hpbGUgKHByaW1hcnlPcmRlciAhPSBpdGVyYXRvci5OVUxMT1JERVIpIHsKKyAqICAgICAgaW50IG9yZGVyID0gaXRlcmF0b3IubmV4dCgpOworICogICAgICBpZiAob3JkZXIgIT0gaXRlcmF0b3IuSUdOT1JBQkxFICYmCisgKiAgICAgICAgICBvcmRlciAhPSBpdGVyYXRvci5OVUxMT1JERVIpIHsKKyAqICAgICAgICAgIC8vIG9yZGVyIGlzIHZhbGlkLCBub3QgaWdub3JhYmxlIGFuZCB3ZSBoYXZlIG5vdCBwYXNzZWQgdGhlIGVuZAorICogICAgICAgICAgLy8gb2YgdGhlIGl0ZXJhdGlvbiwgd2UgZG8gc29tZXRoaW5nCisgKiAgICAgICAgICBwcmltYXJ5T3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9yZGVyKTsKKyAqICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTmV4dCBwcmltYXJ5IG9yZGVyIDB4IiArCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhwcmltYXJ5T3JkZXIpKTsKKyAqICAgICAgfQorICogIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPC9wPgorICogPHA+CisgKiBUaGlzIGNsYXNzIGlzIG5vdCBzdWJjbGFzc2FibGUKKyAqIDwvcD4KKyAqIEBzZWUgQ29sbGF0b3IKKyAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAqIEBzZWUgU3RyaW5nU2VhcmNoCisgKiBAYXV0aG9yIFN5biBXZWUgUXVlaworICogQHN0YWJsZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IKK3sKKyAgCisgICAgCisgICAgLy8gcHVibGljIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogPHA+VGhpcyBjb25zdGFudCBpcyByZXR1cm5lZCBieSB0aGUgaXRlcmF0b3IgaW4gdGhlIG1ldGhvZHMKKyAgICAgKiBuZXh0KCkgYW5kIHByZXZpb3VzKCkgd2hlbiB0aGUgZW5kIG9yIHRoZSBiZWdpbm5pbmcgb2YgdGhlCisgICAgICogc291cmNlIHN0cmluZyBoYXMgYmVlbiByZWFjaGVkLCBhbmQgdGhlcmUgYXJlIG5vIG1vcmUgdmFsaWQKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudHMgdG8gcmV0dXJuLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBhbiBleGFtcGxlIG9mIHVzZS48L3A+CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTlVMTE9SREVSID0gMHhmZmZmZmZmZjsKKworICAgIC8qKgorICAgICAqIDxwPlRoaXMgY29uc3RhbnQgaXMgcmV0dXJuZWQgYnkgdGhlIGl0ZXJhdG9yIGluIHRoZSBtZXRob2RzCisgICAgICogbmV4dCgpIGFuZCBwcmV2aW91cygpIHdoZW4gYSBjb2xsYXRpb24gZWxlbWVudCByZXN1bHQgaXMgdG8gYmUKKyAgICAgKiBpZ25vcmVkLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBhbiBleGFtcGxlIG9mIHVzZS48L3A+CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSUdOT1JBQkxFID0gMDsKKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIHB1YmxpYyBnZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIDxwPlJldHVybnMgdGhlIGNoYXJhY3RlciBvZmZzZXQgaW4gdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSBuZXh0IGNvbGxhdGlvbiBlbGVtZW50LiBJLmUuLCBnZXRPZmZzZXQoKQorICAgICAqIHJldHVybnMgdGhlIHBvc2l0aW9uIGluIHRoZSBzb3VyY2Ugc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisgICAgICogY29sbGF0aW9uIGVsZW1lbnQgdGhhdCB3aWxsIGJlIHJldHVybmVkIGJ5IHRoZSBuZXh0IGNhbGwgdG8KKyAgICAgKiBuZXh0KCkuIFRoaXMgdmFsdWUgY291bGQgYmUgYW55IG9mOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+IFRoZSBpbmRleCBvZiB0aGUgPGI+Zmlyc3Q8L2I+IGNoYXJhY3RlciBjb3JyZXNwb25kaW5nIHRvCisgICAgICogdGhlIG5leHQgY29sbGF0aW9uIGVsZW1lbnQuIChUaGlzIG1lYW5zIHRoYXQgaWYKKyAgICAgKiA8Y29kZT5zZXRPZmZzZXQob2Zmc2V0KTwvY29kZT4gc2V0cyB0aGUgaW5kZXggaW4gdGhlIG1pZGRsZSBvZgorICAgICAqIGEgY29udHJhY3Rpb24sIDxjb2RlPmdldE9mZnNldCgpPC9jb2RlPiByZXR1cm5zIHRoZSBpbmRleCBvZgorICAgICAqIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIGNvbnRyYWN0aW9uLCB3aGljaCBtYXkgbm90IGJlIGVxdWFsCisgICAgICogdG8gdGhlIG9yaWdpbmFsIG9mZnNldCB0aGF0IHdhcyBzZXQuIEhlbmNlIGNhbGxpbmcgZ2V0T2Zmc2V0KCkKKyAgICAgKiBpbW1lZGlhdGVseSBhZnRlciBzZXRPZmZzZXQob2Zmc2V0KSBkb2VzIG5vdCBndWFyYW50ZWUgdGhhdCB0aGUKKyAgICAgKiBvcmlnaW5hbCBvZmZzZXQgc2V0IHdpbGwgYmUgcmV0dXJuZWQuKQorICAgICAqIDxsaT4gSWYgbm9ybWFsaXphdGlvbiBpcyBvbiwgdGhlIGluZGV4IG9mIHRoZSA8Yj5pbW1lZGlhdGU8L2I+CisgICAgICogc3Vic2VxdWVudCBjaGFyYWN0ZXIsIG9yIGNvbXBvc2l0ZSBjaGFyYWN0ZXIgd2l0aCB0aGUgZmlyc3QKKyAgICAgKiBjaGFyYWN0ZXIsIGhhdmluZyBhIGNvbWJpbmluZyBjbGFzcyBvZiAwLgorICAgICAqIDxsaT4gVGhlIGxlbmd0aCBvZiB0aGUgc291cmNlIHN0cmluZywgaWYgaXRlcmF0aW9uIGhhcyByZWFjaGVkCisgICAgICogdGhlIGVuZC4KKyAgICAgKjwvdWw+CisgICAgICogPC9wPgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBvZmZzZXQgaW4gdGhlIHNvdXJjZSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byB0aGUKKyAgICAgKiAgICAgICAgIGNvbGxhdGlvbiBlbGVtZW50IHRoYXQgd2lsbCBiZSByZXR1cm5lZCBieSB0aGUgbmV4dCBjYWxsIHRvCisgICAgICogICAgICAgICBuZXh0KCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQoKQorICAgIHsKKyAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyAhPSAtMSkgeworICAgICAgICAgICAgaWYgKG1faXNGb3J3YXJkc18pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9GQ0RMaW1pdF87CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbV9GQ0RTdGFydF87CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fc291cmNlXy5nZXRJbmRleCgpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogPHA+IFJldHVybnMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFueSBleHBhbnNpb24gc2VxdWVuY2UgdGhhdCBlbmRzIHdpdGgKKyAgICAgKiB0aGUgc3BlY2lmaWVkIGNvbGxhdGlvbiBlbGVtZW50LiBJZiB0aGVyZSBpcyBubyBleHBhbnNpb24gd2l0aCB0aGlzCisgICAgICogY29sbGF0aW9uIGVsZW1lbnQgYXMgdGhlIGxhc3QgZWxlbWVudCwgcmV0dXJucyAxLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gY2UgYSBjb2xsYXRpb24gZWxlbWVudCByZXR1cm5lZCBieSBwcmV2aW91cygpIG9yIG5leHQoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbnkgZXhwYW5zaW9uIHNlcXVlbmNlIGVuZGluZworICAgICAqICAgICAgICAgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbGxhdGlvbiBlbGVtZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF4RXhwYW5zaW9uKGludCBjZSkKKyAgICB7CisgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgIGludCBsaW1pdCA9IG1fY29sbGF0b3JfLm1fZXhwYW5zaW9uRW5kQ0VfLmxlbmd0aDsKKyAgICAgICAgbG9uZyB1bnNpZ25lZGNlID0gY2UgJiAweEZGRkZGRkZGbDsKKyAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbGltaXQgLSAxKSB7CisgICAgICAgICAgICBpbnQgbWlkID0gc3RhcnQgKyAoKGxpbWl0IC0gc3RhcnQpID4+IDEpOworICAgICAgICAgICAgbG9uZyBtaWRjZSA9IG1fY29sbGF0b3JfLm1fZXhwYW5zaW9uRW5kQ0VfW21pZF0gJiAweEZGRkZGRkZGbDsKKyAgICAgICAgICAgIGlmICh1bnNpZ25lZGNlIDw9IG1pZGNlKSB7CisgICAgICAgICAgICAgICAgbGltaXQgPSBtaWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGFydCA9IG1pZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbnQgcmVzdWx0ID0gMTsKKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLm1fZXhwYW5zaW9uRW5kQ0VfW3N0YXJ0XSA9PSBjZSkgeworICAgICAgICAgICAgcmVzdWx0ID0gbV9jb2xsYXRvcl8ubV9leHBhbnNpb25FbmRDRU1heFNpemVfW3N0YXJ0XTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChsaW1pdCA8IG1fY29sbGF0b3JfLm1fZXhwYW5zaW9uRW5kQ0VfLmxlbmd0aCAmJgorICAgICAgICAgICAgICAgICBtX2NvbGxhdG9yXy5tX2V4cGFuc2lvbkVuZENFX1tsaW1pdF0gPT0gY2UpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1fY29sbGF0b3JfLm1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplX1tsaW1pdF07CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoKGNlICYgMHhGRkZGKSA9PSAweDAwQzApIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IDI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgb3RoZXIgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD4gUmVzZXRzIHRoZSBjdXJzb3IgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nLiBUaGUgbmV4dAorICAgICAqIGNhbGwgdG8gbmV4dCgpIG9yIHByZXZpb3VzKCkgd2lsbCByZXR1cm4gdGhlIGZpcnN0IGFuZCBsYXN0CisgICAgICogY29sbGF0aW9uIGVsZW1lbnQgaW4gdGhlIHN0cmluZywgcmVzcGVjdGl2ZWx5LjwvcD4KKyAgICAgKgorICAgICAqIDxwPklmIHRoZSBSdWxlQmFzZWRDb2xsYXRvciB1c2VkIGJ5IHRoaXMgaXRlcmF0b3IgaGFzIGhhZCBpdHMKKyAgICAgKiBhdHRyaWJ1dGVzIGNoYW5nZWQsIGNhbGxpbmcgcmVzZXQoKSB3aWxsIHJlaW5pdGlhbGl6ZSB0aGUKKyAgICAgKiBpdGVyYXRvciB0byB1c2UgdGhlIG5ldyBhdHRyaWJ1dGVzLjwvcD4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIG1fc291cmNlXy5zZXRUb1N0YXJ0KCk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5HZXQgdGhlIG5leHQgY29sbGF0aW9uIGVsZW1lbnQgaW4gdGhlIHNvdXJjZSBzdHJpbmcuPC9wPgorICAgICAqCisgICAgICogPHA+VGhpcyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIGEgc2VxdWVuY2Ugb2YgY29sbGF0aW9uIGVsZW1lbnRzCisgICAgICogdGhhdCB3ZXJlIGJ1aWx0IGZyb20gdGhlIHN0cmluZy4gQmVjYXVzZSB0aGVyZSBpc24ndAorICAgICAqIG5lY2Vzc2FyaWx5IGEgb25lLXRvLW9uZSBtYXBwaW5nIGZyb20gY2hhcmFjdGVycyB0byBjb2xsYXRpb24KKyAgICAgKiBlbGVtZW50cywgdGhpcyBkb2Vzbid0IG1lYW4gdGhlIHNhbWUgdGhpbmcgYXMgInJldHVybiB0aGUKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudCBbb3Igb3JkZXJpbmcgcHJpb3JpdHldIG9mIHRoZSBuZXh0IGNoYXJhY3RlcgorICAgICAqIGluIHRoZSBzdHJpbmciLjwvcD4KKyAgICAgKgorICAgICAqIDxwPlRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgY29sbGF0aW9uIGVsZW1lbnQgdGhhdCB0aGUKKyAgICAgKiBpdGVyYXRvciBpcyBjdXJyZW50bHkgcG9pbnRpbmcgdG8sIGFuZCB0aGVuIHVwZGF0ZXMgdGhlCisgICAgICogaW50ZXJuYWwgcG9pbnRlciB0byBwb2ludCB0byB0aGUgbmV4dCBlbGVtZW50LiAgUHJldmlvdXMoKQorICAgICAqIHVwZGF0ZXMgdGhlIHBvaW50ZXIgZmlyc3QsIGFuZCB0aGVuIHJldHVybnMgdGhlIGVsZW1lbnQuIFRoaXMKKyAgICAgKiBtZWFucyB0aGF0IHdoZW4geW91IGNoYW5nZSBkaXJlY3Rpb24gd2hpbGUgaXRlcmF0aW5nIChpLmUuLAorICAgICAqIGNhbGwgbmV4dCgpIGFuZCB0aGVuIGNhbGwgcHJldmlvdXMoKSwgb3IgY2FsbCBwcmV2aW91cygpIGFuZAorICAgICAqIHRoZW4gY2FsbCBuZXh0KCkpLCB5b3UnbGwgZ2V0IGJhY2sgdGhlIHNhbWUgZWxlbWVudCB0d2ljZS48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvbGxhdGlvbiBlbGVtZW50IG9yIE5VTExPUkRFUiBpZiB0aGUgZW5kIG9mIHRoZQorICAgICAqICAgICAgICAgaXRlcmF0aW9uIGhhcyBiZWVuIHJlYWNoZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCkKKyAgICB7CisgICAgICAgIG1faXNGb3J3YXJkc18gPSB0cnVlOworICAgICAgICBpZiAobV9DRUJ1ZmZlclNpemVfID4gMCkgeworICAgICAgICAgICAgaWYgKG1fQ0VCdWZmZXJPZmZzZXRfIDwgbV9DRUJ1ZmZlclNpemVfKSB7CisgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgYXJlIGV4cGFuc2lvbnMgbGVmdCBpbiB0aGUgYnVmZmVyLCB3ZSByZXR1cm4gaXQKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF8gKytdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMDsKKyAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gMDsKKyAgICAgICAgfQorIAorICAgICAgICBpbnQgY2hfaW50ID0gbmV4dENoYXIoKTsKKyAgICAgICAgCisgICAgICAgIGlmIChjaF9pbnQgPT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMT1JERVI7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjaCA9IChjaGFyKWNoX2ludDsKKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLm1faXNIaXJhZ2FuYTRfKSB7CisgICAgICAgICAgICBtX2lzQ29kZVBvaW50SGlyYWdhbmFfID0gKGNoID49IDB4MzA0MCAmJiBjaCA8PSAweDMwOWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIShjaCA+IDB4MzA5NCAmJiBjaCA8IDB4MzA5ZCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVzdWx0ID0gTlVMTE9SREVSOworICAgICAgICBpZiAoY2ggPD0gMHhGRikgeworICAgICAgICAgICAgLy8gRm9yIGxhdGluLTEgY2hhcmFjdGVycyB3ZSBuZXZlciBuZWVkIHRvIGZhbGwgYmFjayB0byB0aGUgVUNBCisgICAgICAgICAgICAvLyB0YWJsZSBiZWNhdXNlIGFsbCBvZiB0aGUgVUNBIGRhdGEgaXMgcmVwbGljYXRlZCBpbiB0aGUKKyAgICAgICAgICAgIC8vIGxhdGluT25lTWFwcGluZyBhcnJheQorICAgICAgICAgICAgcmVzdWx0ID0gbV9jb2xsYXRvcl8ubV90cmllXy5nZXRMYXRpbjFMaW5lYXJWYWx1ZShjaCk7CisgICAgICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXh0U3BlY2lhbChtX2NvbGxhdG9yXywgcmVzdWx0LCBjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBtX2NvbGxhdG9yXy5tX3RyaWVfLmdldExlYWRWYWx1ZShjaCk7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihJbnRlZ2VyLnRvSGV4U3RyaW5nKHJlc3VsdCkpOworICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmlzU3BlY2lhbChyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgLy8gc3Vycm9nYXRlIGxlYWRzIGFyZSBoYW5kbGVkIGFzIHNwZWNpYWwgY2VzCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV4dFNwZWNpYWwobV9jb2xsYXRvcl8sIHJlc3VsdCwgY2gpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBDRV9OT1RfRk9VTkRfICYmIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIGNvdWxkbid0IGZpbmQgYSBnb29kIENFIGluIHRoZSB0YWlsb3JpbmcKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBnb3QgaGVyZSwgdGhlIGNvZGVwb2ludCBNVVNUIGJlIG92ZXIgMHhGRiAtIHNvIHdlIGxvb2sKKyAgICAgICAgICAgICAgICAvLyBkaXJlY3RseSBpbiB0aGUgVUNBCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gUnVsZUJhc2VkQ29sbGF0b3IuVUNBXy5tX3RyaWVfLmdldExlYWRWYWx1ZShjaCk7CisgICAgICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmlzU3BlY2lhbChyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFVDQSBhbHNvIGdpdmVzIHVzIGEgc3BlY2lhbCBDRQorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXh0U3BlY2lhbChSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLCByZXN1bHQsIGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYocmVzdWx0ID09IENFX05PVF9GT1VORF8pIHsgCisgICAgICAgICAgICAvLyBtYXliZSB0aGVyZSBpcyBubyBVQ0EsIHVubGlrZWx5IGluIEphdmEsIGJ1dCBwb3J0ZWQgZm9yIGNvbnNpc3RlbmN5CisgICAgICAgICAgICByZXN1bHQgPSBuZXh0SW1wbGljaXQoY2gpOyAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkdldCB0aGUgcHJldmlvdXMgY29sbGF0aW9uIGVsZW1lbnQgaW4gdGhlIHNvdXJjZSBzdHJpbmcuPC9wPgorICAgICAqCisgICAgICogPHA+VGhpcyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIGEgc2VxdWVuY2Ugb2YgY29sbGF0aW9uIGVsZW1lbnRzCisgICAgICogdGhhdCB3ZXJlIGJ1aWx0IGZyb20gdGhlIHN0cmluZy4gQmVjYXVzZSB0aGVyZSBpc24ndAorICAgICAqIG5lY2Vzc2FyaWx5IGEgb25lLXRvLW9uZSBtYXBwaW5nIGZyb20gY2hhcmFjdGVycyB0byBjb2xsYXRpb24KKyAgICAgKiBlbGVtZW50cywgdGhpcyBkb2Vzbid0IG1lYW4gdGhlIHNhbWUgdGhpbmcgYXMgInJldHVybiB0aGUKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudCBbb3Igb3JkZXJpbmcgcHJpb3JpdHldIG9mIHRoZSBwcmV2aW91cworICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc3RyaW5nIi48L3A+CisgICAgICoKKyAgICAgKiA8cD5UaGlzIGZ1bmN0aW9uIHVwZGF0ZXMgdGhlIGl0ZXJhdG9yJ3MgaW50ZXJuYWwgcG9pbnRlciB0bworICAgICAqIHBvaW50IHRvIHRoZSBjb2xsYXRpb24gZWxlbWVudCBwcmVjZWRpbmcgdGhlIG9uZSBpdCdzIGN1cnJlbnRseQorICAgICAqIHBvaW50aW5nIHRvIGFuZCB0aGVuIHJldHVybnMgdGhhdCBlbGVtZW50LCB3aGlsZSBuZXh0KCkgcmV0dXJucworICAgICAqIHRoZSBjdXJyZW50IGVsZW1lbnQgYW5kIHRoZW4gdXBkYXRlcyB0aGUgcG9pbnRlci4gVGhpcyBtZWFucworICAgICAqIHRoYXQgd2hlbiB5b3UgY2hhbmdlIGRpcmVjdGlvbiB3aGlsZSBpdGVyYXRpbmcgKGkuZS4sIGNhbGwKKyAgICAgKiBuZXh0KCkgYW5kIHRoZW4gY2FsbCBwcmV2aW91cygpLCBvciBjYWxsIHByZXZpb3VzKCkgYW5kIHRoZW4KKyAgICAgKiBjYWxsIG5leHQoKSksIHlvdSdsbCBnZXQgYmFjayB0aGUgc2FtZSBlbGVtZW50IHR3aWNlLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvbGxhdGlvbiBlbGVtZW50LCBvciBOVUxMT1JERVIgd2hlbiB0aGUgc3RhcnQgb2YKKyAgICAgKiAgICAgICAgICAgICB0aGUgaXRlcmF0aW9uIGhhcyBiZWVuIHJlYWNoZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpCisgICAgeworICAgICAgICBpZiAobV9zb3VyY2VfLmdldEluZGV4KCkgPD0gMCAmJiBtX2lzRm9yd2FyZHNfKSB7CisgICAgICAgICAgICAvLyBpZiBpdGVyYXRvciBpcyBuZXcgb3IgcmVzZXQsIHdlIGNhbiBpbW1lZGlhdGUgcGVyZm9ybSAgYmFja3dhcmRzCisgICAgICAgICAgICAvLyBpdGVyYXRpb24gZXZlbiB3aGVuIHRoZSBvZmZzZXQgaXMgbm90IHJpZ2h0LgorICAgICAgICAgICAgbV9zb3VyY2VfLnNldFRvTGltaXQoKTsKKyAgICAgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICAgICAgfQorICAgICAgICBtX2lzRm9yd2FyZHNfID0gZmFsc2U7CisgICAgICAgIGludCByZXN1bHQgPSBOVUxMT1JERVI7CisgICAgICAgIGlmIChtX0NFQnVmZmVyU2l6ZV8gPiAwKSB7CisgICAgICAgICAgICBpZiAobV9DRUJ1ZmZlck9mZnNldF8gPiAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fQ0VCdWZmZXJfWy0tIG1fQ0VCdWZmZXJPZmZzZXRfXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDA7CisgICAgICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDA7CisgICAgICAgIH0KKyAgICAgICAgaW50IGNoX2ludCA9IHByZXZpb3VzQ2hhcigpOworICAgICAgICBpZiAoY2hfaW50ID09IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICByZXR1cm4gTlVMTE9SREVSOworICAgICAgICB9CisgICAgICAgIGNoYXIgY2ggPSAoY2hhciljaF9pbnQ7CisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5tX2lzSGlyYWdhbmE0XykgeworICAgICAgICAgICAgbV9pc0NvZGVQb2ludEhpcmFnYW5hXyA9IChjaCA+PSAweDMwNDAgJiYgY2ggPD0gMHgzMDlmKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9jb2xsYXRvcl8uaXNDb250cmFjdGlvbkVuZChjaCkgJiYgIWlzQmFja3dhcmRzU3RhcnQoKSkgeworICAgICAgICAgICAgcmVzdWx0ID0gcHJldmlvdXNTcGVjaWFsKG1fY29sbGF0b3JfLCBDRV9DT05UUkFDVElPTl8sIGNoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChjaCA8PSAweEZGKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9jb2xsYXRvcl8ubV90cmllXy5nZXRMYXRpbjFMaW5lYXJWYWx1ZShjaCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtX2NvbGxhdG9yXy5tX3RyaWVfLmdldExlYWRWYWx1ZShjaCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBwcmV2aW91c1NwZWNpYWwobV9jb2xsYXRvcl8sIHJlc3VsdCwgY2gpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBDRV9OT1RfRk9VTkRfKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc0JhY2t3YXJkc1N0YXJ0KCkKKyAgICAgICAgICAgICAgICAgICAgJiYgbV9jb2xsYXRvcl8uaXNDb250cmFjdGlvbkVuZChjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gQ0VfQ09OVFJBQ1RJT05fOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoUnVsZUJhc2VkQ29sbGF0b3IuVUNBXyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChSdWxlQmFzZWRDb2xsYXRvci5pc1NwZWNpYWwocmVzdWx0KSkgeworICAgICAgICAgICAgICAgICAgICBpZihSdWxlQmFzZWRDb2xsYXRvci5VQ0FfICE9IG51bGwpIHsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcHJldmlvdXNTcGVjaWFsKFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8sIHJlc3VsdCwgY2gpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKHJlc3VsdCA9PSBDRV9OT1RfRk9VTkRfKSB7CisgICAgICAgICAgICByZXN1bHQgPSBwcmV2aW91c0ltcGxpY2l0KGNoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcHJpbWFyeSBvcmRlciBvZiB0aGUgc3BlY2lmaWVkIGNvbGxhdGlvbiBlbGVtZW50LAorICAgICAqIGkuZS4gdGhlIGZpcnN0IDE2IGJpdHMuICBUaGlzIHZhbHVlIGlzIHVuc2lnbmVkLgorICAgICAqIEBwYXJhbSBjZSB0aGUgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBAcmV0dXJuIHRoZSBlbGVtZW50J3MgMTYgYml0cyBwcmltYXJ5IG9yZGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IHByaW1hcnlPcmRlcihpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gKGNlICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXykKKyAgICAgICAgICAgID4+PiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX1NISUZUXzsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZWNvbmRhcnkgb3JkZXIgb2YgdGhlIHNwZWNpZmllZCBjb2xsYXRpb24gZWxlbWVudCwKKyAgICAgKiBpLmUuIHRoZSAxNnRoIHRvIDIzdGggYml0cywgaW5jbHVzaXZlLiAgVGhpcyB2YWx1ZSBpcyB1bnNpZ25lZC4KKyAgICAgKiBAcGFyYW0gY2UgdGhlIGNvbGxhdGlvbiBlbGVtZW50CisgICAgICogQHJldHVybiB0aGUgZWxlbWVudCdzIDggYml0cyBzZWNvbmRhcnkgb3JkZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBzZWNvbmRhcnlPcmRlcihpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gKGNlICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU0VDT05EQVJZX01BU0tfKQorICAgICAgICAgICAgPj4gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU0VDT05EQVJZX1NISUZUXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRlcnRpYXJ5IG9yZGVyIG9mIHRoZSBzcGVjaWZpZWQgY29sbGF0aW9uIGVsZW1lbnQsIGkuZS4gdGhlIGxhc3QKKyAgICAgKiA4IGJpdHMuICBUaGlzIHZhbHVlIGlzIHVuc2lnbmVkLgorICAgICAqIEBwYXJhbSBjZSB0aGUgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBAcmV0dXJuIHRoZSBlbGVtZW50J3MgOCBiaXRzIHRlcnRpYXJ5IG9yZGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgdGVydGlhcnlPcmRlcihpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gY2UgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9URVJUSUFSWV9NQVNLXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4gU2V0cyB0aGUgaXRlcmF0b3IgdG8gcG9pbnQgdG8gdGhlIGNvbGxhdGlvbiBlbGVtZW50CisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUgY2hhcmFjdGVyIGF0IHRoZSBzcGVjaWZpZWQgb2Zmc2V0LiBUaGUKKyAgICAgKiB2YWx1ZSByZXR1cm5lZCBieSB0aGUgbmV4dCBjYWxsIHRvIG5leHQoKSB3aWxsIGJlIHRoZSBjb2xsYXRpb24KKyAgICAgKiBlbGVtZW50IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNoYXJhY3RlcnMgYXQgb2Zmc2V0LjwvcD4KKyAgICAgKgorICAgICAqIDxwPklmIG9mZnNldCBpcyBpbiB0aGUgbWlkZGxlIG9mIGEgY29udHJhY3RpbmcgY2hhcmFjdGVyCisgICAgICogc2VxdWVuY2UsIHRoZSBpdGVyYXRvciBpcyBhZGp1c3RlZCB0byB0aGUgc3RhcnQgb2YgdGhlCisgICAgICogY29udHJhY3Rpbmcgc2VxdWVuY2UuIFRoaXMgbWVhbnMgdGhhdCBnZXRPZmZzZXQoKSBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHJldHVybiB0aGUgc2FtZSB2YWx1ZSBzZXQgYnkgdGhpcyBtZXRob2QuPC9wPgorICAgICAqCisgICAgICogPHA+SWYgdGhlIGRlY29tcG9zaXRpb24gbW9kZSBpcyBvbiwgYW5kIG9mZnNldCBpcyBpbiB0aGUgbWlkZGxlCisgICAgICogb2YgYSBkZWNvbXBvc2libGUgcmFuZ2Ugb2Ygc291cmNlIHRleHQsIHRoZSBpdGVyYXRvciBtYXkgbm90CisgICAgICogcmV0dXJuIGEgY29ycmVjdCByZXN1bHQgZm9yIHRoZSBuZXh0IGZvcndhcmRzIG9yIGJhY2t3YXJkcworICAgICAqIGl0ZXJhdGlvbi4gIFRoZSB1c2VyIG11c3QgZW5zdXJlIHRoYXQgdGhlIG9mZnNldCBpcyBub3QgaW4gdGhlCisgICAgICogbWlkZGxlIG9mIGEgZGVjb21wb3NpYmxlIHJhbmdlLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIGNoYXJhY3RlciBvZmZzZXQgaW50byB0aGUgb3JpZ2luYWwgc291cmNlIHN0cmluZyB0bworICAgICAqICAgICAgICBzZXQuIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCBhbiBvZmZzZXQgaW50byB0aGUgY29ycmVzcG9uZGluZworICAgICAqICAgICAgICBzZXF1ZW5jZSBvZiBjb2xsYXRpb24gZWxlbWVudHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0T2Zmc2V0KGludCBvZmZzZXQpCisgICAgeworICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgob2Zmc2V0KTsKKyAgICAgICAgaW50IGNoX2ludCA9IG1fc291cmNlXy5jdXJyZW50KCk7CisgICAgICAgIGNoYXIgY2ggPSAoY2hhciljaF9pbnQ7CisgICAgICAgIGlmIChjaF9pbnQgIT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYgbV9jb2xsYXRvcl8uaXNVbnNhZmUoY2gpKSB7CisgICAgICAgICAgICAvLyBpZiBpdCBpcyB1bnNhZmUgd2UgbmVlZCB0byBjaGVjayBpZiBpdCBpcyBwYXJ0IG9mIGEgY29udHJhY3Rpb24KKyAgICAgICAgICAgIC8vIG9yIGEgc3Vycm9nYXRlIGNoYXJhY3RlcgorICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgLy8gaWYgaXQgaXMgYSBzdXJyb2dhdGUgcGFpciB3ZSBtb3ZlIHVwIG9uZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICBjaGFyIHByZXZjaCA9IChjaGFyKW1fc291cmNlXy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIGlmICghVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHByZXZjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG9mZnNldCk7IC8vIGdvIGJhY2sgdG8gdGhlIHNhbWUgaW5kZXgKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBjb3VsZCBiZSBwYXJ0IG9mIGEgY29udHJhY3Rpb24KKyAgICAgICAgICAgICAgICAvLyBiYWNrdXAgdG8gYSBzYWZlIHBvaW50IGFuZCBpdGVyYXRlIHRpbGwgd2UgcGFzcyBvZmZzZXQKKyAgICAgICAgICAgICAgICB3aGlsZSAobV9zb3VyY2VfLmdldEluZGV4KCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghbV9jb2xsYXRvcl8uaXNVbnNhZmUoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjaCA9IChjaGFyKW1fc291cmNlXy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgICAgICAgICAgICAgaW50IHByZXZvZmZzZXQgPSAwOworICAgICAgICAgICAgICAgIHdoaWxlIChtX3NvdXJjZV8uZ2V0SW5kZXgoKSA8PSBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJldm9mZnNldCA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChwcmV2b2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgICAgIC8vIGRpcmVjdGlvbiBjb2RlIHRvIHByZXZlbnQgbmV4dCBhbmQgcHJldmlvdXMgZnJvbSByZXR1cm5pbmcgYSAKKyAgICAgICAgLy8gY2hhcmFjdGVyIGlmIHdlIGFyZSBhbHJlYWR5IGF0IHRoZSBlbmRzCisgICAgICAgIG9mZnNldCA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICBpZiAob2Zmc2V0ID09IDAvKiBtX3NvdXJjZV8uZ2V0QmVnaW5JbmRleCgpICovKSB7CisgICAgICAgICAgICAvLyBwcmV2ZW50aW5nIHByZXZpb3VzKCkgZnJvbSByZXR1cm5pbmcgY2hhcmFjdGVycyBmcm9tIHRoZSBlbmQgb2YgCisgICAgICAgICAgICAvLyB0aGUgc3RyaW5nIGFnYWluIGlmIHdlIGFyZSBhdCB0aGUgYmVnaW5uaW5nCisgICAgICAgICAgICBtX2lzRm9yd2FyZHNfID0gZmFsc2U7IAorICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG9mZnNldCA9PSBtX3NvdXJjZV8uZ2V0TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIC8vIHByZXZlbnRpbmcgbmV4dCgpIGZyb20gcmV0dXJuaW5nIGNoYXJhY3RlcnMgZnJvbSB0aGUgc3RhcnQgb2YgCisgICAgICAgICAgICAvLyB0aGUgc3RyaW5nIGFnYWluIGlmIHdlIGFyZSBhdCB0aGUgZW5kCisgICAgICAgICAgICBtX2lzRm9yd2FyZHNfID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNldCBhIG5ldyBzb3VyY2Ugc3RyaW5nIGZvciBpdGVyYXRpb24sIGFuZCByZXNldCB0aGUgb2Zmc2V0CisgICAgICogdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBuZXcgc291cmNlIHN0cmluZyBmb3IgaXRlcmF0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nIHNvdXJjZSkKKyAgICB7CisgICAgICAgIG1fc3JjVXRpbEl0ZXJfLnNldFRleHQoc291cmNlKTsKKyAgICAgICAgbV9zb3VyY2VfID0gbV9zcmNVdGlsSXRlcl87CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+U2V0IGEgbmV3IHNvdXJjZSBzdHJpbmcgaXRlcmF0b3IgZm9yIGl0ZXJhdGlvbiwgYW5kIHJlc2V0IHRoZQorICAgICAqIG9mZnNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5UaGUgc291cmNlIGl0ZXJhdG9yJ3MgaW50ZWdyaXR5IHdpbGwgYmUgcHJlc2VydmVkIHNpbmNlIGEgbmV3IGNvcHkKKyAgICAgKiB3aWxsIGJlIGNyZWF0ZWQgZm9yIHVzZS48L3A+CisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgbmV3IHNvdXJjZSBzdHJpbmcgaXRlcmF0b3IgZm9yIGl0ZXJhdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFVDaGFyYWN0ZXJJdGVyYXRvciBzb3VyY2UpCisgICAgeworICAgICAgICBtX3NyY1V0aWxJdGVyXy5zZXRUZXh0KHNvdXJjZS5nZXRUZXh0KCkpOworICAgICAgICBtX3NvdXJjZV8gPSBtX3NyY1V0aWxJdGVyXzsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOyAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TZXQgYSBuZXcgc291cmNlIHN0cmluZyBpdGVyYXRvciBmb3IgaXRlcmF0aW9uLCBhbmQgcmVzZXQgdGhlCisgICAgICogb2Zmc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIG5ldyBzb3VyY2Ugc3RyaW5nIGl0ZXJhdG9yIGZvciBpdGVyYXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciBzb3VyY2UpCisgICAgeworICAgICAgICBtX3NvdXJjZV8gPSBuZXcgQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKHNvdXJjZSk7CisgICAgICAgIG1fc291cmNlXy5zZXRUb1N0YXJ0KCk7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgbWlzY2VsbGFuZW91cyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUZXN0cyB0aGF0IGFyZ3VtZW50IG9iamVjdCBpcyBlcXVhbHMgdG8gdGhpcyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuCisgICAgICogSXRlcmF0b3JzIGFyZSBlcXVhbCBpZiB0aGUgb2JqZWN0cyB1c2VzIHRoZSBzYW1lIFJ1bGVCYXNlZENvbGxhdG9yLAorICAgICAqIHRoZSBzYW1lIHNvdXJjZSB0ZXh0IGFuZCBoYXZlIHRoZSBzYW1lIGN1cnJlbnQgcG9zaXRpb24gaW4gaXRlcmF0aW9uLgorICAgICAqIEBwYXJhbSB0aGF0IG9iamVjdCB0byB0ZXN0IGlmIGl0IGlzIGVxdWFscyB0byB0aGlzCisgICAgICogICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KQorICAgIHsKKyAgICAgICAgaWYgKHRoYXQgPT0gdGhpcykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoYXQgaW5zdGFuY2VvZiBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IpIHsKKyAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciB0aGF0Y2VpdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKXRoYXQ7CisgICAgICAgICAgICBpZiAoIW1fY29sbGF0b3JfLmVxdWFscyh0aGF0Y2VpdGVyLm1fY29sbGF0b3JfKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGNoZWNrcyB0aGUgdGV4dCAKKyAgICAgICAgICAgIHJldHVybiBtX3NvdXJjZV8uZ2V0SW5kZXgoKSA9PSB0aGF0Y2VpdGVyLm1fc291cmNlXy5nZXRJbmRleCgpCisgICAgICAgICAgICAgICAgICAgJiYgbV9zb3VyY2VfLmdldFRleHQoKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXRjZWl0ZXIubV9zb3VyY2VfLmdldFRleHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5Db2xsYXRpb25FbGVtZW50SXRlcmF0b3IgY29uc3RydWN0b3IuIFRoaXMgdGFrZXMgYSBzb3VyY2UKKyAgICAgKiBzdHJpbmcgYW5kIGEgUnVsZUJhc2VkQ29sbGF0b3IuIFRoZSBpdGVyYXRvciB3aWxsIHdhbGsgdGhyb3VnaAorICAgICAqIHRoZSBzb3VyY2Ugc3RyaW5nIGJhc2VkIG9uIHRoZSBydWxlcyBkZWZpbmVkIGJ5IHRoZQorICAgICAqIGNvbGxhdG9yLiBJZiB0aGUgc291cmNlIHN0cmluZyBpcyBlbXB0eSwgTlVMTE9SREVSIHdpbGwgYmUKKyAgICAgKiByZXR1cm5lZCBvbiB0aGUgZmlyc3QgY2FsbCB0byBuZXh0KCkuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgdGhlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKFN0cmluZyBzb3VyY2UsIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKQorICAgIHsKKyAgICAgICAgbV9zcmNVdGlsSXRlcl8gPSBuZXcgU3RyaW5nVUNoYXJhY3Rlckl0ZXJhdG9yKHNvdXJjZSk7CisgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fc291cmNlXyA9IG1fc3JjVXRpbEl0ZXJfOworICAgICAgICBtX2NvbGxhdG9yXyA9IGNvbGxhdG9yOworICAgICAgICBtX0NFQnVmZmVyXyA9IG5ldyBpbnRbQ0VfQlVGRkVSX0lOSVRfU0laRV9dOworICAgICAgICBtX2J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fdXRpbFNwZWNpYWxCYWNrVXBfID0gbmV3IEJhY2t1cCgpOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbnN0cnVjdG9yLiBUaGlzIHRha2VzIGEgc291cmNlCisgICAgICogY2hhcmFjdGVyIGl0ZXJhdG9yIGFuZCBhIFJ1bGVCYXNlZENvbGxhdG9yLiBUaGUgaXRlcmF0b3Igd2lsbAorICAgICAqIHdhbGsgdGhyb3VnaCB0aGUgc291cmNlIHN0cmluZyBiYXNlZCBvbiB0aGUgcnVsZXMgZGVmaW5lZCBieQorICAgICAqIHRoZSBjb2xsYXRvci4gSWYgdGhlIHNvdXJjZSBzdHJpbmcgaXMgZW1wdHksIE5VTExPUkRFUiB3aWxsIGJlCisgICAgICogcmV0dXJuZWQgb24gdGhlIGZpcnN0IGNhbGwgdG8gbmV4dCgpLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHNvdXJjZSBzdHJpbmcgaXRlcmF0b3IuCisgICAgICogQHBhcmFtIGNvbGxhdG9yIHRoZSBSdWxlQmFzZWRDb2xsYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihDaGFyYWN0ZXJJdGVyYXRvciBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKQorICAgIHsKKyAgICAgICAgbV9zcmNVdGlsSXRlcl8gPSBuZXcgU3RyaW5nVUNoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fc291cmNlXyA9IG5ldyBDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIoc291cmNlKTsKKyAgICAgICAgbV9jb2xsYXRvcl8gPSBjb2xsYXRvcjsKKyAgICAgICAgbV9DRUJ1ZmZlcl8gPSBuZXcgaW50W0NFX0JVRkZFUl9JTklUX1NJWkVfXTsKKyAgICAgICAgbV9idWZmZXJfID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBtX3V0aWxTcGVjaWFsQmFja1VwXyA9IG5ldyBCYWNrdXAoKTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5Db2xsYXRpb25FbGVtZW50SXRlcmF0b3IgY29uc3RydWN0b3IuIFRoaXMgdGFrZXMgYSBzb3VyY2UKKyAgICAgKiBjaGFyYWN0ZXIgaXRlcmF0b3IgYW5kIGEgUnVsZUJhc2VkQ29sbGF0b3IuIFRoZSBpdGVyYXRvciB3aWxsCisgICAgICogd2FsayB0aHJvdWdoIHRoZSBzb3VyY2Ugc3RyaW5nIGJhc2VkIG9uIHRoZSBydWxlcyBkZWZpbmVkIGJ5CisgICAgICogdGhlIGNvbGxhdG9yLiBJZiB0aGUgc291cmNlIHN0cmluZyBpcyBlbXB0eSwgTlVMTE9SREVSIHdpbGwgYmUKKyAgICAgKiByZXR1cm5lZCBvbiB0aGUgZmlyc3QgY2FsbCB0byBuZXh0KCkuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIHN0cmluZyBpdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgdGhlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKFVDaGFyYWN0ZXJJdGVyYXRvciBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKQorICAgIHsKKyAgICAgICAgbV9zcmNVdGlsSXRlcl8gPSBuZXcgU3RyaW5nVUNoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fc3JjVXRpbEl0ZXJfLnNldFRleHQoc291cmNlLmdldFRleHQoKSk7CisgICAgICAgIG1fc291cmNlXyA9IG1fc3JjVXRpbEl0ZXJfOworICAgICAgICBtX2NvbGxhdG9yXyA9IGNvbGxhdG9yOworICAgICAgICBtX0NFQnVmZmVyXyA9IG5ldyBpbnRbQ0VfQlVGRkVSX0lOSVRfU0laRV9dOworICAgICAgICBtX2J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fdXRpbFNwZWNpYWxCYWNrVXBfID0gbmV3IEJhY2t1cCgpOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogdHJ1ZSBpZiBjdXJyZW50IGNvZGVwb2ludCB3YXMgSGlyYWdhbmEKKyAgICAgKi8KKyAgICBib29sZWFuIG1faXNDb2RlUG9pbnRIaXJhZ2FuYV87CisgICAgLyoqCisgICAgICogUG9zaXRpb24gaW4gdGhlIG9yaWdpbmFsIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoIGEgbm9uLUZDRCBzZXF1ZW5jZQorICAgICAqLworICAgIGludCBtX0ZDRFN0YXJ0XzsKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHRoZSBDRSBmcm9tIENFcyBidWZmZXIgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQuCisgICAgICogSW5pdGlhbCB2YWx1ZSBpcyAwLgorICAgICAqIEZvcndhcmRzIGl0ZXJhdGlvbiB3aWxsIGVuZCB3aXRoIG1fQ0VCdWZmZXJPZmZzZXRfID09IG1fQ0VCdWZmZXJTaXplXywKKyAgICAgKiBiYWNrd2FyZHMgd2lsbCBlbmQgd2l0aCBtX0NFQnVmZmVyT2Zmc2V0XyA9PSAwLgorICAgICAqIFRoZSBuZXh0L3ByZXZpb3VzIGFmdGVyIHdlIHJlYWNoIHRoZSBlbmQvYmVnaW5uaW5nIG9mIHRoZSBtX0NFQnVmZmVyXworICAgICAqIHdpbGwgY2F1c2UgdGhpcyB2YWx1ZSB0byBiZSByZXNldCB0byAwLgorICAgICAqLworICAgIGludCBtX0NFQnVmZmVyT2Zmc2V0XzsKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIHBvc2l0aW9uIHRvIHdoaWNoIHdlIGhhdmUgc3RvcmVkIHByb2Nlc3NlZCBDRXMuCisgICAgICogSW5pdGlhbCB2YWx1ZSBpcyAwLgorICAgICAqIFRoZSBuZXh0L3ByZXZpb3VzIGFmdGVyIHdlIHJlYWNoIHRoZSBlbmQvYmVnaW5uaW5nIG9mIHRoZSBtX0NFQnVmZmVyXworICAgICAqIHdpbGwgY2F1c2UgdGhpcyB2YWx1ZSB0byBiZSByZXNldCB0byAwLgorICAgICAqLworICAgIGludCBtX0NFQnVmZmVyU2l6ZV87CisgICAgc3RhdGljIGZpbmFsIGludCBDRV9OT1RfRk9VTkRfID0gMHhGMDAwMDAwMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IENFX0VYUEFOU0lPTl9UQUdfID0gMTsKKyAgICBzdGF0aWMgZmluYWwgaW50IENFX0NPTlRSQUNUSU9OX1RBR18gPSAyOworICAgIC8qKiAKKyAgICAgKiBDb2xsYXRlIERpZ2l0cyBBcyBOdW1iZXJzIChDT0RBTikgaW1wbGVtZW50YXRpb24KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IENFX0RJR0lUX1RBR18gPSAxMzsKKworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGNvbGxhdG9yIHVzZWQuCisgICAgICogSW50ZXJuYWwgdXNlLCBhbGwgZGF0YSBtZW1iZXJzIHdpbGwgYmUgcmVzZXQgdG8gdGhlIGRlZmF1bHQgdmFsdWVzCisgICAgICogQHBhcmFtIGNvbGxhdG9yIHRvIHNldAorICAgICAqLworICAgIHZvaWQgc2V0Q29sbGF0b3IoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpCisgICAgeworICAgICAgICBtX2NvbGxhdG9yXyA9IGNvbGxhdG9yOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0cyB0aGUgaXRlcmF0b3IgdG8gcG9pbnQgdG8gdGhlIGNvbGxhdGlvbiBlbGVtZW50IGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciAodGhlIHBhcmFtZXRlciBpcyBhIENIQVJBQ1RFUiBvZmZzZXQgaW4gdGhlCisgICAgICogb3JpZ2luYWwgc3RyaW5nLCBub3QgYW4gb2Zmc2V0IGludG8gaXRzIGNvcnJlc3BvbmRpbmcgc2VxdWVuY2Ugb2YKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudHMpLiBUaGUgdmFsdWUgcmV0dXJuZWQgYnkgdGhlIG5leHQgY2FsbCB0byBuZXh0KCkKKyAgICAgKiB3aWxsIGJlIHRoZSBjb2xsYXRpb24gZWxlbWVudCBjb3JyZXNwb25kaW5nIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24KKyAgICAgKiBpbiB0aGUgdGV4dC4gVW5saWtlIHRoZSBwdWJsaWMgbWV0aG9kIHNldE9mZnNldChpbnQpLCB0aGlzIG1ldGhvZCBkb2VzCisgICAgICogbm90IHRyeSB0byByZWFkanVzdCB0aGUgb2Zmc2V0IHRvIHRoZSBzdGFydCBvZiBhIGNvbnRyYWN0aW5nIHNlcXVlbmNlLgorICAgICAqIGdldE9mZnNldCgpIGlzIGd1YXJhbnRlZWQgdG8gcmV0dXJuIHRoZSBzYW1lIHZhbHVlIGFzIHdhcyBwYXNzZWQgdG8gYQorICAgICAqIHByZWNlZGluZyBjYWxsIHRvIHNldE9mZnNldCgpLjwvcD4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IG5ldyBjaGFyYWN0ZXIgb2Zmc2V0IGludG8gdGhlIG9yaWdpbmFsIHRleHQgdG8gc2V0LgorICAgICAqLworICAgIHZvaWQgc2V0RXhhY3RPZmZzZXQoaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChvZmZzZXQpOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIGl0ZXJhdG9yIGlzIGluIHRoZSBidWZmZXIgem9uZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBpdGVyYXRvciBpcyBpbiBidWZmZXIgem9uZSwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgYm9vbGVhbiBpc0luQnVmZmVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2J1ZmZlck9mZnNldF8gPiAwOworICAgIH0KKworICAgCisgICAgLyoqCisgICAgICogPHA+U2V0cyB0aGUgaXRlcmF0b3IgdG8gcG9pbnQgdG8gdGhlIGNvbGxhdGlvbiBlbGVtZW50IGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciAodGhlIHBhcmFtZXRlciBpcyBhIENIQVJBQ1RFUiBvZmZzZXQgaW4gdGhlCisgICAgICogb3JpZ2luYWwgc3RyaW5nLCBub3QgYW4gb2Zmc2V0IGludG8gaXRzIGNvcnJlc3BvbmRpbmcgc2VxdWVuY2Ugb2YKKyAgICAgKiBjb2xsYXRpb24gZWxlbWVudHMpLiBUaGUgdmFsdWUgcmV0dXJuZWQgYnkgdGhlIG5leHQgY2FsbCB0byBuZXh0KCkKKyAgICAgKiB3aWxsIGJlIHRoZSBjb2xsYXRpb24gZWxlbWVudCBjb3JyZXNwb25kaW5nIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24KKyAgICAgKiBpbiB0aGUgdGV4dC4gVW5saWtlIHRoZSBwdWJsaWMgbWV0aG9kIHNldE9mZnNldChpbnQpLCB0aGlzIG1ldGhvZCBkb2VzCisgICAgICogbm90IHRyeSB0byByZWFkanVzdCB0aGUgb2Zmc2V0IHRvIHRoZSBzdGFydCBvZiBhIGNvbnRyYWN0aW5nIHNlcXVlbmNlLgorICAgICAqIGdldE9mZnNldCgpIGlzIGd1YXJhbnRlZWQgdG8gcmV0dXJuIHRoZSBzYW1lIHZhbHVlIGFzIHdhcyBwYXNzZWQgdG8gYQorICAgICAqIHByZWNlZGluZyBjYWxsIHRvIHNldE9mZnNldCgpLjwvcD4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgbmV3IHNvdXJjZSBzdHJpbmcgaXRlcmF0b3IgZm9yIGl0ZXJhdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRvIHRoZSBzb3VyY2UKKyAgICAgKi8KKyAgICB2b2lkIHNldFRleHQoVUNoYXJhY3Rlckl0ZXJhdG9yIHNvdXJjZSwgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIG1fc3JjVXRpbEl0ZXJfLnNldFRleHQoc291cmNlLmdldFRleHQoKSk7CisgICAgICAgIG1fc291cmNlXyA9IG1fc3JjVXRpbEl0ZXJfOworICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgob2Zmc2V0KTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8vIHByaXZhdGUgaW5uZXIgY2xhc3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEJhY2t1cCBkYXRhIGNsYXNzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgQmFja3VwCisgICAgeworICAgICAgICAvLyBwcm90ZWN0ZWQgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogQmFja3VwIG5vbiBGQ0Qgc2VxdWVuY2UgbGltaXQKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBpbnQgbV9GQ0RMaW1pdF87CisgICAgICAgIC8qKgorICAgICAgICAgKiBCYWNrdXAgbm9uIEZDRCBzZXF1ZW5jZSBzdGFydAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBtX0ZDRFN0YXJ0XzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEJhY2t1cCBpZiBwcmV2aW91cyBDb2RlcG9pbnQgaXMgSGlyYWdhbmEgcXVhdGVuYXJ5CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBtX2lzQ29kZVBvaW50SGlyYWdhbmFfOworICAgICAgICAvKioKKyAgICAgICAgICogQmFja3VwIGJ1ZmZlciBwb3NpdGlvbgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBtX2J1ZmZlck9mZnNldF87CisgICAgICAgIC8qKgorICAgICAgICAgKiBCYWNrdXAgc291cmNlIGl0ZXJhdG9yIG9mZnNldAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBtX29mZnNldF87CisgICAgICAgIC8qKgorICAgICAgICAgKiBCYWNrdXAgYnVmZmVyIGNvbnRlbnRzCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nQnVmZmVyIG1fYnVmZmVyXzsKKworICAgICAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogRW1wdHkgY29uc3RydWN0b3IKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBCYWNrdXAoKQorICAgICAgICB7CisgICAgICAgICAgICBtX2J1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gZW5kIGlubmVyIGNsYXNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogRGlyZWN0aW9uIG9mIHRyYXZlbAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzRm9yd2FyZHNfOworICAgIC8qKgorICAgICAqIFNvdXJjZSBzdHJpbmcgaXRlcmF0b3IKKyAgICAgKi8KKyAgICBwcml2YXRlIFVDaGFyYWN0ZXJJdGVyYXRvciBtX3NvdXJjZV87CisgICAgLyoqCisgICAgICogVGhpcyBpcyBwb3NpdGlvbiB0byB0aGUgbV9idWZmZXJfLCAtMSBpZiBpdGVyYXRvciBpcyBub3QgaW4gbV9idWZmZXJfCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9idWZmZXJPZmZzZXRfOworICAgIC8qKgorICAgICAqIEJ1ZmZlciBmb3IgdGVtcG9yYXJ5IHN0b3JhZ2Ugb2Ygbm9ybWFsaXplZCBjaGFyYWN0ZXJzLCBkaXNjb250aWd1b3VzCisgICAgICogY2hhcmFjdGVycyBhbmQgVGhhaSBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbV9idWZmZXJfOworICAgIC8qKgorICAgICAqIFBvc2l0aW9uIGluIHRoZSBvcmlnaW5hbCBzdHJpbmcgdG8gY29udGludWUgZm9yd2FyZCBGQ0QgY2hlY2sgZnJvbS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX0ZDRExpbWl0XzsKKyAgICAvKioKKyAgICAgKiBUaGUgY29sbGF0b3IgdGhpcyBpdGVyYXRvciBpcyBiYXNlZCBvbgorICAgICAqLworICAgIHByaXZhdGUgUnVsZUJhc2VkQ29sbGF0b3IgbV9jb2xsYXRvcl87CisgICAgLyoqCisgICAgICogdHJ1ZSBpZiBIaXJhZ2FuYSBxdWF0ZW5hcnkgaXMgb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV9pc0hpcmFnYW5hNF87CisgICAgLyoqCisgICAgICogQ0UgYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9DRUJ1ZmZlcl9bXTsKKyAgICAvKioKKyAgICAgKiBJbiByZWFsaXR5IHdlIHNob3VsZCBub3QgaGF2ZSB0byBkZWFsIHdpdGggZXhwYW5zaW9uIHNlcXVlbmNlcyBsb25nZXIKKyAgICAgKiB0aGVuIDE2LiBIb3dldmVyIHRoaXMgdmFsdWUgY2FuIGJlIGNoYW5nZSBpZiBhIGJpZ2dlciBidWZmZXIgaXMgbmVlZGVkLgorICAgICAqIE5vdGUsIGlmIHRoZSBzaXplIGlzIGNoYW5nZSB0byB0b28gc21hbGwgYSBudW1iZXIsIEJJRyB0cm91YmxlLgorICAgICAqIFJlYXNvbmFibGUgc21hbGwgdmFsdWUgaXMgYXJvdW5kIDEwLCBpZiB0aGVyZSdzIG5vIEFyYWJpYyBvciBvdGhlcgorICAgICAqIGZ1bmt5IGNvbGxhdGlvbnMgdGhhdCBoYXZlIGxvbmcgZXhwYW5zaW9uIHNlcXVlbmNlLiBUaGlzIGlzIHRoZSBsb25nZXN0CisgICAgICogZXhwYW5zaW9uIHNlcXVlbmNlIHRoaXMgY2FuIGhhbmRsZSB3aXRob3V0IGJvbWJpbmcgb3V0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9CVUZGRVJfSU5JVF9TSVpFXyA9IDUxMjsKKyAgICAvKioKKyAgICAgKiBCYWNrdXAgc3RvcmFnZSBmb3Igc3BlY2lhbCBwcm9jZXNzaW5nIGlubmVyIGNhc2VzCisgICAgICovCisgICAgcHJpdmF0ZSBCYWNrdXAgbV91dGlsU3BlY2lhbEJhY2tVcF87CisgICAgLyoqCisgICAgICogQmFja3VwIHN0b3JhZ2UgaW4gc3BlY2lhbCBwcm9jZXNzaW5nIGVudHJ5IHN0YXRlCisgICAgICovCisgICAgcHJpdmF0ZSBCYWNrdXAgbV91dGlsU3BlY2lhbEVudHJ5QmFja1VwXzsKKyAgICAvKioKKyAgICAgKiBCYWNrdXAgc3RvcmFnZSBpbiBzcGVjaWFsIHByb2Nlc3NpbmcgZGlzY29udGlndW91cyBzdGF0ZQorICAgICAqLworICAgIHByaXZhdGUgQmFja3VwIG1fdXRpbFNwZWNpYWxEaXNjb250aWd1b3VzQmFja1VwXzsKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IgbV9zcmNVdGlsSXRlcl87CisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgbV91dGlsU3RyaW5nQnVmZmVyXzsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBtX3V0aWxTa2lwcGVkQnVmZmVyXzsKKyAgICBwcml2YXRlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBtX3V0aWxDb2xFSXRlcl87CisgICAgLyoqCisgICAgICogT25lIGNoYXJhY3RlciBiZWZvcmUgdGhlIGZpcnN0IG5vbi16ZXJvIGNvbWJpbmluZyBjbGFzcyBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRlVMTF9aRVJPX0NPTUJJTklOR19DTEFTU19GQVNUX0xJTUlUXyA9IDB4QzA7CisgICAgLyoqCisgICAgICogT25lIGNoYXJhY3RlciBiZWZvcmUgdGhlIGZpcnN0IGNoYXJhY3RlciB3aXRoIGxlYWRpbmcgbm9uLXplcm8gY29tYmluaW5nCisgICAgICogY2xhc3MKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEVBRF9aRVJPX0NPTUJJTklOR19DTEFTU19GQVNUX0xJTUlUXyA9IDB4MzAwOworICAgIC8qKgorICAgICAqIE1hc2sgZm9yIHRoZSBsYXN0IGJ5dGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9CWVRFX01BU0tfID0gMHhGRjsKKyAgICAvKioKKyAgICAgKiBTaGlmdCB2YWx1ZSBmb3IgdGhlIHNlY29uZCBsYXN0IGJ5dGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0VDT05EX0xBU1RfQllURV9TSElGVF8gPSA4OworCisgICAgLy8gc3BlY2lhbCBjZSB2YWx1ZXMgYW5kIHRhZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9FWFBBTlNJT05fID0gMHhGMTAwMDAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ09OVFJBQ1RJT05fID0gMHhGMjAwMDAwMDsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhlIGxhc3QgY2UgaGFzIGJlZW4gY29uc3VtZWQuIENvbXBhcmUgd2l0aCBOVUxMT1JERVIuCisgICAgICogTlVMTE9SREVSIGlzIHJldHVybmVkIGlmIGVycm9yIG9jY3Vycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTk9fTU9SRV9DRVNfID0gMHgwMDAxMDEwMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTk9fTU9SRV9DRVNfUFJJTUFSWV8gPSAweDAwMDEwMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9OT19NT1JFX0NFU19TRUNPTkRBUllfID0gMHgwMDAwMDEwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTk9fTU9SRV9DRVNfVEVSVElBUllfID0gMHgwMDAwMDAwMTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9OT1RfRk9VTkRfVEFHXyA9IDA7CisgICAgLyoqCisgICAgICogQ2hhcnNldCBwcm9jZXNzaW5nLCBub3QgeWV0IGltcGxlbWVudGVkCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NIQVJTRVRfVEFHXyA9IDQ7CisgICAgLyoqCisgICAgICogQUMwMC1EN0FGCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0hBTkdVTF9TWUxMQUJMRV9UQUdfID0gNjsKKyAgICAvKioKKyAgICAgKiBEODAwLURCRkYKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTEVBRF9TVVJST0dBVEVfVEFHXyA9IDc7CisgICAgLyoqCisgICAgICogREMwMC1ERkZGCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1RSQUlMX1NVUlJPR0FURV9UQUdfID0gODsKKyAgICAvKioKKyAgICAgKiAweDM0MDAtMHg0REI1LCAweDRFMDAtMHg5RkE1LCAweEY5MDAtMHhGQTJECisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NKS19JTVBMSUNJVF9UQUdfID0gOTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfSU1QTElDSVRfVEFHXyA9IDEwOworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfU1BFQ19QUk9DX1RBR18gPSAxMTsKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGEgMyBieXRlIHByaW1hcnkgd2l0aCBzdGFydGluZyBzZWNvbmRhcmllcyBhbmQgdGVydGlhcmllcy4KKyAgICAgKiBJdCBmaXRzIGluIGEgc2luZ2xlIDMyIGJpdCBDRSBhbmQgaXMgdXNlZCBpbnN0ZWFkIG9mIGV4cGFuc2lvbiB0byBzYXZlCisgICAgICogc3BhY2Ugd2l0aG91dCBhZmZlY3RpbmcgdGhlIHBlcmZvcm1hbmNlIChob3BlZnVsbHkpLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9MT05HX1BSSU1BUllfVEFHXyA9IDEyOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NFX1RBR1NfQ09VTlQgPSAxNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQllURV9DT01NT05fID0gMHgwNTsKKworICAgIC8vIGVuZCBzcGVjaWFsIGNlIHZhbHVlcyBhbmQgdGFncyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfU0JBU0VfID0gMHhBQzAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfTEJBU0VfID0gMHgxMTAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfVkJBU0VfID0gMHgxMTYxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfVEJBU0VfID0gMHgxMUE3OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfVkNPVU5UXyA9IDIxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIQU5HVUxfVENPVU5UXyA9IDI4OworCisgICAgLy8gQ0pLIHN0dWZmIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19CQVNFXyA9IDB4NEUwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0xJTUlUXyA9IDB4OUZGRisxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfQ09NUEFUX1VTRURfQkFTRV8gPSAweEZBMEU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENKS19DT01QQVRfVVNFRF9MSU1JVF8gPSAweEZBMkYgKyAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfQV9CQVNFXyA9IDB4MzQwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0FfTElNSVRfID0gMHg0REJGICsgMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0pLX0JfQkFTRV8gPSAweDIwMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSktfQl9MSU1JVF8gPSAweDJBNkRGICsgMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9OX0NKS19PRkZTRVRfID0gMHgxMTAwMDA7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHICA9ICBJQ1VEZWJ1Zy5lbmFibGVkKCJjb2xsYXRvciIpOworICAgIAorICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBpdGVyYXRvciBpbnRlcm5hbGx5CisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZUludGVybmFsU3RhdGUoKQorICAgIHsKKyAgICAgICAgbV9pc0NvZGVQb2ludEhpcmFnYW5hXyA9IGZhbHNlOworICAgICAgICBtX2J1ZmZlcl8uc2V0TGVuZ3RoKDApOworICAgICAgICBtX2J1ZmZlck9mZnNldF8gPSAtMTsKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSAwOworICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICBtX0ZDRExpbWl0XyA9IC0xOworICAgICAgICBtX0ZDRFN0YXJ0XyA9IG1fc291cmNlXy5nZXRMZW5ndGgoKTsKKyAgICAgICAgbV9pc0hpcmFnYW5hNF8gPSBtX2NvbGxhdG9yXy5tX2lzSGlyYWdhbmE0XzsKKyAgICAgICAgbV9pc0ZvcndhcmRzXyA9IHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQmFja3VwIHRoZSBjdXJyZW50IGludGVybmFsIHN0YXRlCisgICAgICogQHBhcmFtIGJhY2t1cCBvYmplY3QgdG8gc3RvcmUgdGhlIGRhdGEKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgYmFja3VwSW50ZXJuYWxTdGF0ZShCYWNrdXAgYmFja3VwKQorICAgIHsKKyAgICAgICAgYmFja3VwLm1fb2Zmc2V0XyA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICBiYWNrdXAubV9GQ0RMaW1pdF8gPSBtX0ZDRExpbWl0XzsKKyAgICAgICAgYmFja3VwLm1fRkNEU3RhcnRfID0gbV9GQ0RTdGFydF87CisgICAgICAgIGJhY2t1cC5tX2lzQ29kZVBvaW50SGlyYWdhbmFfID0gbV9pc0NvZGVQb2ludEhpcmFnYW5hXzsKKyAgICAgICAgYmFja3VwLm1fYnVmZmVyT2Zmc2V0XyA9IG1fYnVmZmVyT2Zmc2V0XzsKKyAgICAgICAgYmFja3VwLm1fYnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPj0gMCkgeworICAgICAgICAgICAgLy8gamRrIDEuMy4xIGRvZXMgbm90IGhhdmUgYXBwZW5kKFN0cmluZ0J1ZmZlcikgeWV0CisgICAgICAgICAgICBpZihJQ1VEZWJ1Zy5pc0pESzE0T3JIaWdoZXIpeworICAgICAgICAgICAgICAgIGJhY2t1cC5tX2J1ZmZlcl8uYXBwZW5kKG1fYnVmZmVyXyk7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBiYWNrdXAubV9idWZmZXJfLmFwcGVuZChtX2J1ZmZlcl8udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVcGRhdGUgdGhlIGl0ZXJhdG9yIGludGVybmFsbHkgd2l0aCBiYWNrZWQtdXAgc3RhdGUKKyAgICAgKiBAcGFyYW0gYmFja3VwIG9iamVjdCB0aGF0IHN0b3JlZCB0aGUgZGF0YQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVJbnRlcm5hbFN0YXRlKEJhY2t1cCBiYWNrdXApCisgICAgeworICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgoYmFja3VwLm1fb2Zmc2V0Xyk7CisgICAgICAgIG1faXNDb2RlUG9pbnRIaXJhZ2FuYV8gPSBiYWNrdXAubV9pc0NvZGVQb2ludEhpcmFnYW5hXzsKKyAgICAgICAgbV9idWZmZXJPZmZzZXRfID0gYmFja3VwLm1fYnVmZmVyT2Zmc2V0XzsKKyAgICAgICAgbV9GQ0RMaW1pdF8gPSBiYWNrdXAubV9GQ0RMaW1pdF87CisgICAgICAgIG1fRkNEU3RhcnRfID0gYmFja3VwLm1fRkNEU3RhcnRfOworICAgICAgICBtX2J1ZmZlcl8uc2V0TGVuZ3RoKDApOworICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfID49IDApIHsKKyAgICAgICAgICAgIC8vIGpkayAxLjMuMSBkb2VzIG5vdCBoYXZlIGFwcGVuZChTdHJpbmdCdWZmZXIpIHlldAorICAgICAgICAgICAgbV9idWZmZXJfLmFwcGVuZChiYWNrdXAubV9idWZmZXJfLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBmYXN0IGNvbWJpbmluZyBjbGFzcyByZXRyaWV2YWwgc3lzdGVtLgorICAgICAqIEBwYXJhbSBjaCBVVEYxNiBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIGNvbWJpbmluZyBjbGFzcyBvZiBjaAorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldENvbWJpbmluZ0NsYXNzKGludCBjaCkKKyAgICB7CisgICAgICAgIGlmIChjaCA+PSBMRUFEX1pFUk9fQ09NQklOSU5HX0NMQVNTX0ZBU1RfTElNSVRfICYmCisgICAgICAgICAgICBtX2NvbGxhdG9yXy5pc1Vuc2FmZSgoY2hhciljaCkgfHwgY2ggPiAweEZGRkYpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5nZXRDb21iaW5pbmdDbGFzcyhjaCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+SW5jcmVtZW50YWwgbm9ybWFsaXphdGlvbiwgdGhpcyBpcyBhbiBlc3NlbnRpYWwgb3B0aW1pemF0aW9uLgorICAgICAqIEFzc3VtaW5nIEZDRCBjaGVja3MgaGFzIGJlZW4gZG9uZSwgbm9ybWFsaXplIHRoZSBub24tRkNEIGNoYXJhY3RlcnMgaW50bworICAgICAqIHRoZSBidWZmZXIuCisgICAgICogU291cmNlIG9mZnNldHMgcG9pbnRzIHRvIHRoZSBjdXJyZW50IHByb2Nlc3NpbmcgY2hhcmFjdGVyLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgbm9ybWFsaXplKCkKKyAgICB7CisgICAgICAgIGludCBzaXplID0gbV9GQ0RMaW1pdF8gLSBtX0ZDRFN0YXJ0XzsKKyAgICAgICAgbV9idWZmZXJfLnNldExlbmd0aCgwKTsKKyAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG1fRkNEU3RhcnRfKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKChjaGFyKW1fc291cmNlXy5uZXh0KCkpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLmRlY29tcG9zZShtX2J1ZmZlcl8udG9TdHJpbmcoKSwgZmFsc2UpOworICAgICAgICBtX2J1ZmZlcl8uc2V0TGVuZ3RoKDApOworICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKGRlY29tcCk7CisgICAgICAgIG1fYnVmZmVyT2Zmc2V0XyA9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+SW5jcmVtZW50YWwgRkNEIGNoZWNrIGFuZCBub3JtYWxpemF0aW9uLiBHZXRzIHRoZSBuZXh0IGJhc2UgY2hhcmFjdGVyCisgICAgICogcG9zaXRpb24gYW5kIGRldGVybWluZXMgaWYgdGhlIGluLWJldHdlZW4gY2hhcmFjdGVycyBuZWVkcyBub3JtYWxpemF0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5XaGVuIGVudGVyaW5nLCB0aGUgc3RhdGUgaXMga25vd24gdG8gYmUgdGhpczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPldlIGFyZSB3b3JraW5nIG9uIHNvdXJjZSBzdHJpbmcsIG5vdCB0aGUgYnVmZmVyLgorICAgICAqIDxsaT5UaGUgbGVhZGluZyBjb21iaW5pbmcgY2xhc3MgZnJvbSB0aGUgY3VycmVudCBjaGFyYWN0ZXIgaXMgMCBvciB0aGUKKyAgICAgKiAgICAgdHJhaWxpbmcgY29tYmluaW5nIGNsYXNzIG9mIHRoZSBwcmV2aW91cyBjaGFyIHdhcyB6ZXJvLgorICAgICAqIDwvdWw+CisgICAgICogSW5jb21pbmcgc291cmNlIG9mZnNldHMgcG9pbnRzIHRvIHRoZSBjdXJyZW50IHByb2Nlc3NpbmcgY2hhcmFjdGVyLgorICAgICAqIFJldHVybiBzb3VyY2Ugb2Zmc2V0cyBwb2ludHMgdG8gdGhlIGN1cnJlbnQgcHJvY2Vzc2luZyBjaGFyYWN0ZXIuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBjaCBjdXJyZW50IGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSBvZmZzZXQgY3VycmVudCBjaGFyYWN0ZXIgb2Zmc2V0CisgICAgICogQHJldHVybiB0cnVlIGlmIEZDRENoZWNrIHBhc3NlcywgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIEZDRENoZWNrKGNoYXIgY2gsIGludCBvZmZzZXQpCisgICAgeworICAgICAgICBib29sZWFuIHJlc3VsdCA9IHRydWU7CisKKyAgICAgICAgLy8gR2V0IHRoZSB0cmFpbGluZyBjb21iaW5pbmcgY2xhc3Mgb2YgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAgICAvLyBJZiBpdCdzIHplcm8sIHdlIGFyZSBPSy4KKyAgICAgICAgbV9GQ0RTdGFydF8gPSBvZmZzZXQ7CisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChvZmZzZXQpOworICAgICAgICAvLyB0cmllIGFjY2VzcworICAgICAgICBjaGFyIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGNoKTsKKyAgICAgICAgaWYgKGZjZCAhPSAwICYmIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgIG1fc291cmNlXy5uZXh0KCk7CisgICAgICAgICAgICBjaCA9IChjaGFyKW1fc291cmNlXy5jdXJyZW50KCk7IAorICAgICAgICAgICAgLy8gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgaGFzIDAgZmNkCisgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNkZyb21TdXJyb2dhdGVQYWlyKGZjZCwgY2gpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmY2QgPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaW50IHByZXZUcmFpbENDID0gZmNkICYgTEFTVF9CWVRFX01BU0tfOworCisgICAgICAgIGlmIChwcmV2VHJhaWxDQyAhPSAwKSB7CisgICAgICAgICAgICAvLyBUaGUgY3VycmVudCBjaGFyIGhhcyBhIG5vbi16ZXJvIHRyYWlsaW5nIENDLiBTY2FuIGZvcndhcmQgdW50aWwKKyAgICAgICAgICAgIC8vIHdlIGZpbmQgYSBjaGFyIHdpdGggYSBsZWFkaW5nIGNjIG9mIHplcm8uCisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIG1fc291cmNlXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgaW50IGNoX2ludCA9IG1fc291cmNlXy5jdXJyZW50KCk7CisgICAgICAgICAgICAgICAgaWYgKGNoX2ludCA9PSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2ggPSAoY2hhciljaF9pbnQ7CisgICAgICAgICAgICAgICAgLy8gdHJpZSBhY2Nlc3MKKyAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk7CisgICAgICAgICAgICAgICAgaWYgKGZjZCAhPSAwICYmIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgY2ggPSAoY2hhciltX3NvdXJjZV8uY3VycmVudCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2RnJvbVN1cnJvZ2F0ZVBhaXIoZmNkLCBjaCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmY2QgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCBsZWFkQ0MgPSBmY2QgPj4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfOworICAgICAgICAgICAgICAgIGlmIChsZWFkQ0MgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgYmFzZSBjaGFyYWN0ZXIsIHdlIHN0b3AgdGhlIEZDRCBjaGVja3MKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGxlYWRDQyA8IHByZXZUcmFpbENDKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHByZXZUcmFpbENDID0gZmNkICYgTEFTVF9CWVRFX01BU0tfOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fRkNETGltaXRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChtX0ZDRFN0YXJ0Xyk7CisgICAgICAgIG1fc291cmNlXy5uZXh0KCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+TWV0aG9kIHRyaWVzIHRvIGZldGNoIHRoZSBuZXh0IGNoYXJhY3RlciB0aGF0IGlzIGluIGZjZCBmb3JtLjwvcD4KKyAgICAgKiA8cD5Ob3JtYWxpemF0aW9uIGlzIGRvbmUgaWYgcmVxdWlyZWQuPC9wPgorICAgICAqIDxwPk9mZnNldHMgYXJlIHJldHVybmVkIGF0IHRoZSBuZXh0IGNoYXJhY3Rlci48L3A+CisgICAgICogQHJldHVybiBuZXh0IGZjZCBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXh0Q2hhcigpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0OworCisgICAgICAgIC8vIGxvb3AgaGFuZGxlcyB0aGUgbmV4dCBjaGFyYWN0ZXIgd2hldGhlciBpdCBpcyBpbiB0aGUgYnVmZmVyIG9yIG5vdC4KKyAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA8IDApIHsKKyAgICAgICAgICAgIC8vIHdlJ3JlIHdvcmtpbmcgb24gdGhlIHNvdXJjZSBhbmQgbm90IG5vcm1hbGl6aW5nLiBmYXN0IHBhdGguCisgICAgICAgICAgICAvLyBub3RlIFRoYWkgcHJlLXZvd2VsIHJlb3JkZXJpbmcgdXNlcyBidWZmZXIgdG9vCisgICAgICAgICAgICByZXN1bHQgPSBtX3NvdXJjZV8uY3VycmVudCgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gd2UgYXJlIGluIHRoZSBidWZmZXIsIGJ1ZmZlciBvZmZzZXQgd2lsbCBuZXZlciBiZSAwIGhlcmUKKyAgICAgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPj0gbV9idWZmZXJfLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgLy8gTnVsbCBtYXJrZWQgZW5kIG9mIGJ1ZmZlciwgcmV2ZXJ0IHRvIHRoZSBzb3VyY2Ugc3RyaW5nIGFuZAorICAgICAgICAgICAgICAgIC8vIGxvb3AgYmFjayB0byB0b3AgdG8gdHJ5IGFnYWluIHRvIGdldCBhIGNoYXJhY3Rlci4KKyAgICAgICAgICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgobV9GQ0RMaW1pdF8pOworICAgICAgICAgICAgICAgIG1fYnVmZmVyT2Zmc2V0XyA9IC0xOworICAgICAgICAgICAgICAgIG1fYnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5leHRDaGFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbV9idWZmZXJfLmNoYXJBdChtX2J1ZmZlck9mZnNldF8gKyspOworICAgICAgICB9CisgICAgICAgIGludCBzdGFydG9mZnNldCA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICBpZiAocmVzdWx0IDwgRlVMTF9aRVJPX0NPTUJJTklOR19DTEFTU19GQVNUX0xJTUlUXworICAgICAgICAgICAgLy8gRmFzdCBmY2Qgc2FmZSBwYXRoLiB0cmFpbCBjb21iaW5pbmcgY2xhc3MgPT0gMC4KKyAgICAgICAgICAgIHx8IG1fY29sbGF0b3JfLmdldERlY29tcG9zaXRpb24oKSA9PSBDb2xsYXRvci5OT19ERUNPTVBPU0lUSU9OCisgICAgICAgICAgICB8fCBtX2J1ZmZlck9mZnNldF8gPj0gMCB8fCBtX0ZDRExpbWl0XyA+IHN0YXJ0b2Zmc2V0KSB7CisgICAgICAgICAgICAvLyBza2lwIHRoZSBmY2QgY2hlY2tzCisgICAgICAgICAgICBtX3NvdXJjZV8ubmV4dCgpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZXN1bHQgPCBMRUFEX1pFUk9fQ09NQklOSU5HX0NMQVNTX0ZBU1RfTElNSVRfKSB7CisgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHBlZWsgYXQgdGhlIG5leHQgY2hhcmFjdGVyIGluIG9yZGVyIHRvIHRlbGwgaWYgd2UgYXJlCisgICAgICAgICAgICAvLyBGQ0QKKyAgICAgICAgICAgIG1fc291cmNlXy5uZXh0KCk7CisgICAgICAgICAgICBpbnQgbmV4dCA9IG1fc291cmNlXy5jdXJyZW50KCk7CisgICAgICAgICAgICBpZiAobmV4dCA9PSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORQorICAgICAgICAgICAgICAgIHx8IG5leHQgPCBMRUFEX1pFUk9fQ09NQklOSU5HX0NMQVNTX0ZBU1RfTElNSVRfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsgLy8gZW5kIG9mIHNvdXJjZSBzdHJpbmcgYW5kIGlmIG5leHQgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgLy8gc3RhcnRzIHdpdGggYSBiYXNlIGNoYXJhY3RlciBpcyBhbHdheXMgZmNkLgorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gTmVlZCBhIG1vcmUgY29tcGxldGUgRkNEIGNoZWNrIGFuZCBwb3NzaWJsZSBub3JtYWxpemF0aW9uLgorICAgICAgICBpZiAoIUZDRENoZWNrKChjaGFyKXJlc3VsdCwgc3RhcnRvZmZzZXQpKSB7CisgICAgICAgICAgICBub3JtYWxpemUoKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1fYnVmZmVyXy5jaGFyQXQoMCk7CisgICAgICAgICAgICBtX2J1ZmZlck9mZnNldF8gPSAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+SW5jcmVtZW50YWwgbm9ybWFsaXphdGlvbiwgdGhpcyBpcyBhbiBlc3NlbnRpYWwgb3B0aW1pemF0aW9uLgorICAgICAqIEFzc3VtaW5nIEZDRCBjaGVja3MgaGFzIGJlZW4gZG9uZSwgbm9ybWFsaXplIHRoZSBub24tRkNEIGNoYXJhY3RlcnMgaW50bworICAgICAqIHRoZSBidWZmZXIuCisgICAgICogU291cmNlIG9mZnNldHMgcG9pbnRzIHRvIHRoZSBjdXJyZW50IHByb2Nlc3NpbmcgY2hhcmFjdGVyLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgbm9ybWFsaXplQmFja3dhcmRzKCkKKyAgICB7CisgICAgICAgIG5vcm1hbGl6ZSgpOworICAgICAgICBtX2J1ZmZlck9mZnNldF8gPSBtX2J1ZmZlcl8ubGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+SW5jcmVtZW50YWwgYmFja3dhcmRzIEZDRCBjaGVjayBhbmQgbm9ybWFsaXphdGlvbi4gR2V0cyB0aGUgcHJldmlvdXMKKyAgICAgKiBiYXNlIGNoYXJhY3RlciBwb3NpdGlvbiBhbmQgZGV0ZXJtaW5lcyBpZiB0aGUgaW4tYmV0d2VlbiBjaGFyYWN0ZXJzCisgICAgICogbmVlZHMgbm9ybWFsaXphdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICogPHA+V2hlbiBlbnRlcmluZywgdGhlIHN0YXRlIGlzIGtub3duIHRvIGJlIHRoaXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5XZSBhcmUgd29ya2luZyBvbiBzb3VyY2Ugc3RyaW5nLCBub3QgdGhlIGJ1ZmZlci4KKyAgICAgKiA8bGk+VGhlIHRyYWlsaW5nIGNvbWJpbmluZyBjbGFzcyBmcm9tIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpcyAwIG9yIHRoZQorICAgICAqICAgICBsZWFkaW5nIGNvbWJpbmluZyBjbGFzcyBvZiB0aGUgbmV4dCBjaGFyIHdhcyB6ZXJvLgorICAgICAqIDwvdWw+CisgICAgICogSW5wdXQgc291cmNlIG9mZnNldHMgcG9pbnRzIHRvIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIuCisgICAgICogUmV0dXJuIHNvdXJjZSBvZmZzZXRzIHBvaW50cyB0byB0aGUgY3VycmVudCBwcm9jZXNzaW5nIGNoYXJhY3Rlci4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHBhcmFtIG9mZnNldCBjdXJyZW50IGNoYXJhY3RlciBvZmZzZXQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgRkNEQ2hlY2sgcGFzc2VzLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gRkNEQ2hlY2tCYWNrd2FyZHMoY2hhciBjaCwgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgY2hhciBmY2QgPSAwOworICAgICAgICBtX0ZDRExpbWl0XyA9IG9mZnNldCArIDE7CisgICAgICAgIG1fc291cmNlXy5zZXRJbmRleChvZmZzZXQpOworICAgICAgICBpZiAoIVVURjE2LmlzU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgZmNkID0gTm9ybWFsaXplckltcGwuZ2V0RkNEMTYoY2gpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpICYmIG1fRkNETGltaXRfID4gMCkgeworICAgICAgICAgICAgLy8gbm90ZSB0cmFpbCBzdXJyb2dhdGUgY2hhcmFjdGVycyBnZXRzIDAgZmNkCisgICAgICAgICAgICBjaGFyIHRyYWlsY2ggPSBjaDsKKyAgICAgICAgICAgIGNoID0gKGNoYXIpbV9zb3VyY2VfLnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgIGZjZCA9IE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGNoKTsKKyAgICAgICAgICAgICAgICBpZiAoZmNkICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZmNkID0gTm9ybWFsaXplckltcGwuZ2V0RkNEMTZGcm9tU3Vycm9nYXRlUGFpcihmY2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWxjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZmNkID0gMDsgLy8gdW5wYWlyZWQgc3Vycm9nYXRlCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGVhZENDID0gZmNkID4+PiBTRUNPTkRfTEFTVF9CWVRFX1NISUZUXzsKKyAgICAgICAgLy8gVGhlIGN1cnJlbnQgY2hhciBoYXMgYSBub24temVybyBsZWFkaW5nIGNvbWJpbmluZyBjbGFzcy4KKyAgICAgICAgLy8gU2NhbiBiYWNrd2FyZCB1bnRpbCB3ZSBmaW5kIGEgY2hhciB3aXRoIGEgdHJhaWxpbmcgY2Mgb2YgemVyby4KKworICAgICAgICB3aGlsZSAobGVhZENDICE9IDApIHsKKyAgICAgICAgICAgIG9mZnNldCA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICAgICAgaWYgKG9mZnNldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaCA9IChjaGFyKW1fc291cmNlXy5wcmV2aW91cygpOworICAgICAgICAgICAgaWYgKCFVVEYxNi5pc1N1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNoKSAmJiBtX3NvdXJjZV8uZ2V0SW5kZXgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gY2g7CisgICAgICAgICAgICAgICAgY2ggPSAoY2hhciltX3NvdXJjZV8ucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChmY2QgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNkZyb21TdXJyb2dhdGVQYWlyKGZjZCwgdHJhaWwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZjZCA9IDA7IC8vIHVucGFpcmVkIHN1cnJvZ2F0ZQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHByZXZUcmFpbENDID0gZmNkICYgTEFTVF9CWVRFX01BU0tfOworICAgICAgICAgICAgaWYgKGxlYWRDQyA8IHByZXZUcmFpbENDKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsZWFkQ0MgPSBmY2QgPj4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfOworICAgICAgICB9CisKKyAgICAgICAgLy8gc3RvcmluZyBjaGFyYWN0ZXIgd2l0aCAwIGxlYWQgZmNkIG9yIHRoZSAxc3QgYWNjZW50IHdpdGggYSBiYXNlCisgICAgICAgIC8vIGNoYXJhY3RlciBiZWZvcmUgaXQKKyAgICAgICAgaWYgKGZjZCA9PSAwKSB7CisgICAgICAgICAgICBtX0ZDRFN0YXJ0XyA9IG9mZnNldDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fRkNEU3RhcnRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgIH0KKyAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG1fRkNETGltaXRfKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5NZXRob2QgdHJpZXMgdG8gZmV0Y2ggdGhlIHByZXZpb3VzIGNoYXJhY3RlciB0aGF0IGlzIGluIGZjZCBmb3JtLjwvcD4KKyAgICAgKiA8cD5Ob3JtYWxpemF0aW9uIGlzIGRvbmUgaWYgcmVxdWlyZWQuPC9wPgorICAgICAqIDxwPk9mZnNldHMgYXJlIHJldHVybmVkIGF0IHRoZSBjdXJyZW50IGNoYXJhY3Rlci48L3A+CisgICAgICogQHJldHVybiBwcmV2aW91cyBmY2QgY2hhcmFjdGVyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNDaGFyKCkKKyAgICB7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPj0gMCkgeworICAgICAgICAgICAgbV9idWZmZXJPZmZzZXRfIC0tOworICAgICAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA+PSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fYnVmZmVyXy5jaGFyQXQobV9idWZmZXJPZmZzZXRfKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIEF0IHRoZSBzdGFydCBvZiBidWZmZXIsIHJvdXRlIGJhY2sgdG8gc3RyaW5nLgorICAgICAgICAgICAgICAgIG1fYnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgaWYgKG1fRkNEU3RhcnRfID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbV9GQ0RTdGFydF8gPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KDApOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX0ZDRExpbWl0XyA9IG1fRkNEU3RhcnRfOworICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgobV9GQ0RTdGFydF8pOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGludCByZXN1bHQgPSBtX3NvdXJjZV8ucHJldmlvdXMoKTsKKyAgICAgICAgaW50IHN0YXJ0b2Zmc2V0ID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgIGlmIChyZXN1bHQgPCBMRUFEX1pFUk9fQ09NQklOSU5HX0NMQVNTX0ZBU1RfTElNSVRfCisgICAgICAgICAgICB8fCBtX2NvbGxhdG9yXy5nZXREZWNvbXBvc2l0aW9uKCkgPT0gQ29sbGF0b3IuTk9fREVDT01QT1NJVElPTgorICAgICAgICAgICAgfHwgbV9GQ0RTdGFydF8gPD0gc3RhcnRvZmZzZXQgfHwgbV9zb3VyY2VfLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICBpbnQgY2ggPSBtX3NvdXJjZV8ucHJldmlvdXMoKTsKKyAgICAgICAgaWYgKGNoIDwgRlVMTF9aRVJPX0NPTUJJTklOR19DTEFTU19GQVNUX0xJTUlUXykgeworICAgICAgICAgICAgLy8gaWYgcHJldmlvdXMgY2hhcmFjdGVyIGlzIEZDRAorICAgICAgICAgICAgbV9zb3VyY2VfLm5leHQoKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgLy8gTmVlZCBhIG1vcmUgY29tcGxldGUgRkNEIGNoZWNrIGFuZCBwb3NzaWJsZSBub3JtYWxpemF0aW9uLgorICAgICAgICBpZiAoIUZDRENoZWNrQmFja3dhcmRzKChjaGFyKXJlc3VsdCwgc3RhcnRvZmZzZXQpKSB7CisgICAgICAgICAgICBub3JtYWxpemVCYWNrd2FyZHMoKTsKKyAgICAgICAgICAgIG1fYnVmZmVyT2Zmc2V0XyAtLTsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1fYnVmZmVyXy5jaGFyQXQobV9idWZmZXJPZmZzZXRfKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGZjZCBjaGVja3MgYWx3YXkgcmVzZXQgbV9zb3VyY2VfIHRvIHRoZSBsaW1pdCBvZiB0aGUgRkNECisgICAgICAgICAgICBtX3NvdXJjZV8uc2V0SW5kZXgoc3RhcnRvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiBpdCBpcyBhdCB0aGUgc3RhcnQgb2Ygc291cmNlIGl0ZXJhdGlvbgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBpdGVyYXRvciBhdCB0aGUgc3RhcnQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBpc0JhY2t3YXJkc1N0YXJ0KCkKKyAgICB7CisgICAgICAgIHJldHVybiAobV9idWZmZXJPZmZzZXRfIDwgMCAmJiBtX3NvdXJjZV8uZ2V0SW5kZXgoKSA9PSAwKQorICAgICAgICAgICAgfHwgKG1fYnVmZmVyT2Zmc2V0XyA9PSAwICYmIG1fRkNEU3RhcnRfIDw9IDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiBpdGVyYXRvciBpcyBhdCB0aGUgZW5kIG9mIGl0cyBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBpdCBpcyBhdCB0aGUgZW5kLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gaXNFbmQoKQorICAgIHsKKyAgICAgICAgaWYgKG1fYnVmZmVyT2Zmc2V0XyA+PSAwKSB7CisgICAgICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfICE9IG1fYnVmZmVyXy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGF0IGVuZCBvZiBidWZmZXIuIGNoZWNrIGlmIGZjZCBpcyBhdCB0aGUgZW5kCisgICAgICAgICAgICAgICAgcmV0dXJuIG1fRkNETGltaXRfID09IG1fc291cmNlXy5nZXRMZW5ndGgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9zb3VyY2VfLmdldExlbmd0aCgpID09IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNwZWNpYWwgQ0UgbWFuYWdlbWVudCBmb3Igc3Vycm9nYXRlczwvcD4KKyAgICAgKiA8cD5MZWFkIHN1cnJvZ2F0ZSBpcyBlbmNvdW50ZXJlZC4gQ0UgdG8gYmUgcmV0cmlldmVkIGJ5IHVzaW5nIHRoZQorICAgICAqIGZvbGxvd2luZyBjb2RlIHVuaXQuIElmIG5leHQgY2hhcmFjdGVyIGlzIGEgdHJhaWwgc3Vycm9nYXRlLCBib3RoCisgICAgICogY2hhcmFjdGVycyB3aWxsIGJlIGNvbWJpbmVkIHRvIHJldHJpZXZlIHRoZSBDRSwgb3RoZXJ3aXNlIGNvbXBsZXRlbHkKKyAgICAgKiBpZ25vcmFibGUgKFVDQSBzcGVjaWZpY2F0aW9uKSBpcyByZXR1cm5lZC48L3A+CisgICAgICogQHBhcmFtIGNvbGxhdG9yIGNvbGxhdG9yIHRvIHVzZQorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IENFCisgICAgICogQHBhcmFtIHRyYWlsIGNoYXJhY3RlcgorICAgICAqIEByZXR1cm4gbmV4dCBDRSBmb3IgdGhlIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgbmV4dFN1cnJvZ2F0ZShSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciB0cmFpbCkKKyAgICB7CisgICAgICAgIGlmICghVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpIHsKKyAgICAgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbEJhY2tVcF8pOworICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsKKyAgICAgICAgfQorICAgICAgICAvLyBUT0RPOiBDRSBjb250YWluIHRoZSBkYXRhIGZyb20gdGhlIHByZXZpb3VzIENFICsgdGhlIG1hc2suCisgICAgICAgIC8vIEl0IHNob3VsZCBhdCBsZWFzdCBiZSB1bm1hc2tlZAorICAgICAgICBpbnQgcmVzdWx0ID0gY29sbGF0b3IubV90cmllXy5nZXRUcmFpbFZhbHVlKGNlLCB0cmFpbCk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBDRSBleHBhbnNpb24gb2Zmc2V0CisgICAgICogQHBhcmFtIGNvbGxhdG9yIGN1cnJlbnQgY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY2UgY2UgdG8gdGVzdAorICAgICAqIEByZXR1cm4gZXhwYW5zaW9uIG9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldEV4cGFuc2lvbk9mZnNldChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuICgoY2UgJiAweEZGRkZGMCkgPj4gNCkgLSBjb2xsYXRvci5tX2V4cGFuc2lvbk9mZnNldF87CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjb250cmFjdGlvbiBjZSBvZmZzZXQKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY3VycmVudCBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHJldHVybiBjb250cmFjdGlvbiBvZmZzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRDb250cmFjdGlvbk9mZnNldChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChjZSAmIDB4RkZGRkZGKSAtIGNvbGxhdG9yLm1fY29udHJhY3Rpb25PZmZzZXRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiBDRSBpcyBhIHNwZWNpYWwgdGFnIENFCisgICAgICogQHBhcmFtIGNlIHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIENFIGlzIGEgc3BlY2lhbCB0YWcgQ0UsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpc1NwZWNpYWxQcmVmaXhUYWcoaW50IGNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yLmlzU3BlY2lhbChjZSkgJiYKKyAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLmdldFRhZyhjZSkgPT0gQ0VfU1BFQ19QUk9DX1RBR187CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U3BlY2lhbCBwcm9jZXNzaW5nIGdldHRpbmcgYSBDRSB0aGF0IGlzIHByZWNlZGVkIGJ5IGEgY2VydGFpbgorICAgICAqIHByZWZpeC48L3A+CisgICAgICogPHA+VXNlZCBmb3Igb3B0aW1pemluZyBKYXBhbmVzZSBsZW5ndGggYW5kIGl0ZXJhdGlvbiBtYXJrcy4gV2hlbiBhCisgICAgICogc3BlY2lhbCBwcm9jZXNzaW5nIHRhZyBpcyBlbmNvdW50ZXJlZCwgaXRlcmF0ZSBiYWNrd2FyZHMgdG8gc2VlIGlmCisgICAgICogdGhlcmUncyBhIG1hdGNoLjwvcD4KKyAgICAgKiA8cD5Db250cmFjdGlvbiB0YWJsZXMgYXJlIHVzZWQsIHByZWZpeCBkYXRhIGlzIHN0b3JlZCBiYWNrd2FyZHMgaW4gdGhlCisgICAgICogdGFibGUuPC9wPgorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjb2xsYXRvciB0byB1c2UKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEBwYXJhbSBlbnRyeWJhY2t1cCBlbnRyeSBiYWNrdXAgaXRlcmF0b3Igc3RhdHVzCisgICAgICogQHJldHVybiBuZXh0IGNvbGxhdGlvbiBlbGVtZW50CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dFNwZWNpYWxQcmVmaXgoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrdXAgZW50cnliYWNrdXApCisgICAgeworICAgICAgICBiYWNrdXBJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShlbnRyeWJhY2t1cCk7CisgICAgICAgIHByZXZpb3VzQ2hhcigpOworICAgICAgICAvLyBXZSB3YW50IHRvIGxvb2sgYXQgdGhlIGNoYXJhY3RlciB3aGVyZSB3ZSBlbnRlcmVkCisKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgbG9vcCB3aWxsIHJ1biBvbmNlIHBlciBzb3VyY2Ugc3RyaW5nIGNoYXJhY3RlciwgZm9yIGFzCisgICAgICAgICAgICAvLyBsb25nIGFzIHdlIGFyZSBtYXRjaGluZyBhIHBvdGVudGlhbCBjb250cmFjdGlvbiBzZXF1ZW5jZQorICAgICAgICAgICAgLy8gRmlyc3Qgd2UgcG9zaXRpb24gb3Vyc2VsdmVzIGF0IHRoZSBiZWdpbmluZyBvZiBjb250cmFjdGlvbgorICAgICAgICAgICAgLy8gc2VxdWVuY2UKKyAgICAgICAgICAgIGludCBlbnRyeW9mZnNldCA9IGdldENvbnRyYWN0aW9uT2Zmc2V0KGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gZW50cnlvZmZzZXQ7CisgICAgICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyIHByZXZpb3VzID0gKGNoYXIpcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICB3aGlsZSAocHJldmlvdXMgPiBjb2xsYXRvci5tX2NvbnRyYWN0aW9uSW5kZXhfW29mZnNldF0pIHsKKyAgICAgICAgICAgICAgICAvLyBjb250cmFjdGlvbiBjaGFyYWN0ZXJzIGFyZSBvcmRlcmVkLCBza2lwIHNtYWxsZXIgY2hhcmFjdGVycworICAgICAgICAgICAgICAgIG9mZnNldCArKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHByZXZpb3VzID09IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgIC8vIEZvdW5kIHRoZSBzb3VyY2Ugc3RyaW5nIGNoYXIgaW4gdGhlIHRhYmxlLgorICAgICAgICAgICAgICAgIC8vIFBpY2sgdXAgdGhlIGNvcnJlc3BvbmRpbmcgQ0UgZnJvbSB0aGUgdGFibGUuCisgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBTb3VyY2Ugc3RyaW5nIGNoYXIgd2FzIG5vdCBpbiB0aGUgdGFibGUsIHByZWZpeCBub3QgZm91bmQKKyAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bZW50cnlvZmZzZXRdOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWlzU3BlY2lhbFByZWZpeFRhZyhjZSkpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgc291cmNlIHN0cmluZyBjaGFyIHdhcyBpbiB0aGUgY29udHJhY3Rpb24gdGFibGUsIGFuZAorICAgICAgICAgICAgICAgIC8vIHRoZSBjb3JyZXNwb25kaW5nIENFIGlzIG5vdCBhIHByZWZpeCBDRS4gV2UgZm91bmQgdGhlCisgICAgICAgICAgICAgICAgLy8gcHJlZml4LCBicmVhayBvdXQgb2YgbG9vcCwgdGhpcyBDRSB3aWxsIGVuZCB1cCBiZWluZworICAgICAgICAgICAgICAgIC8vIHJldHVybmVkLiBUaGlzIGlzIHRoZSBub3JtYWwgd2F5IG91dCBvZiBwcmVmaXggaGFuZGxpbmcKKyAgICAgICAgICAgICAgICAvLyB3aGVuIHRoZSBzb3VyY2UgYWN0dWFsbHkgY29udGFpbmVkIHRoZSBwcmVmaXguCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNlICE9IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgIC8vIHdlIGZvdW5kIHNvbWV0aGluZyBhbmQgd2UgY2FuIG1lcmlsbHkgY29udGludWUKKyAgICAgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbEJhY2tVcF8pOworICAgICAgICB9CisgICAgICAgIGVsc2UgeyAvLyBwcmVmaXggc2VhcmNoIHdhcyBhIGZhaWx1cmUsIHdlIGhhdmUgdG8gYmFja3VwIGFsbCB0aGUgd2F5IHRvCisgICAgICAgICAgICAvLyB0aGUgc3RhcnQKKyAgICAgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoZW50cnliYWNrdXApOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGNlIGlzIGEgY29udHJhY3Rpb24gdGFnCisgICAgICogQHBhcmFtIGNlIGNlIHRvIGNoZWNrCisgICAgICogQHJldHVybiB0cnVlIGlmIGNlIGlzIGEgY29udHJhY3Rpb24gdGFnLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNDb250cmFjdGlvblRhZyhpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKGNlKSAmJgorICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuZ2V0VGFnKGNlKSA9PSBDRV9DT05UUkFDVElPTl9UQUdfOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCB0byBjb3B5IHNraXBwZWQgY2hhcmFjdGVycyBpbnRvIHRoZSBidWZmZXIgYW5kIHNldHMgdGhlIGZjZAorICAgICAqIHBvc2l0aW9uLiBUbyBlbnN1cmUgdGhhdCB0aGUgc2tpcHBlZCBjaGFyYWN0ZXJzIGFyZSBjb25zaWRlcmVkIGxhdGVyLAorICAgICAqIHdlIG5lZWQgdG8gcGxhY2UgaXQgaW4gdGhlIGFwcHJvcHJpYXRlIHBvc2l0aW9uIGluIHRoZSBidWZmZXIgYW5kCisgICAgICogcmVhc3NpZ24gdGhlIHNvdXJjZSBpbmRleC4gc2ltcGxlIGNhc2UgaWYgaW5kZXggcmVzaWRlIGluIHN0cmluZywKKyAgICAgKiBzaW1wbHkgY29weSB0byBidWZmZXIgYW5kIGZjZHBvc2l0aW9uID0gcG9zLCBwb3MgPSBzdGFydCBvZiBidWZmZXIuCisgICAgICogaWYgcG9zIGluIG5vcm1hbGl6YXRpb24gYnVmZmVyLCB3ZSdsbCBpbnNlcnQgdGhlIGNvcHkgaW5mcm9udCBvZiBwb3MKKyAgICAgKiBhbmQgcG9pbnQgcG9zIHRvIHRoZSBzdGFydCBvZiB0aGUgYnVmZmVyLiB3aHkgYW0gaSBkb2luZyB0aGVzZSBjb3BpZXM/CisgICAgICogd2VsbCwgc28gdGhhdCB0aGUgd2hvbGUgY2h1bmsgb2YgY29kZXMgaW4gdGhlIGdldE5leHRDRSwKKyAgICAgKiB1Y29sX3Bydl9nZXRTcGVjaWFsQ0UgZG9lcyBub3QgcmVxdWlyZSBhbnkgY2hhbmdlcywgd2hpY2ggd2lsbCBiZQorICAgICAqIHJlYWxseSBwYWluZnVsLgorICAgICAqIEBwYXJhbSBza2lwcGVkIGNoYXJhY3RlciBidWZmZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0RGlzY29udGlndW91cyhTdHJpbmdCdWZmZXIgc2tpcHBlZCkKKyAgICB7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPj0gMCkgeworICAgICAgICAgICAgbV9idWZmZXJfLnJlcGxhY2UoMCwgbV9idWZmZXJPZmZzZXRfLCBza2lwcGVkLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9GQ0RMaW1pdF8gPSBtX3NvdXJjZV8uZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIG1fYnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKHNraXBwZWQudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICBtX2J1ZmZlck9mZnNldF8gPSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGZvciBmb3J3YXJkIGl0ZXJhdGlvbgorICAgICAqIEByZXR1cm4gY3VycmVudCBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBjdXJyZW50Q2hhcigpCisgICAgeworICAgICAgICBpZiAobV9idWZmZXJPZmZzZXRfIDwgMCkgeworICAgICAgICAgICAgbV9zb3VyY2VfLnByZXZpb3VzKCk7CisgICAgICAgICAgICByZXR1cm4gbV9zb3VyY2VfLm5leHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG1fYnVmZmVyT2Zmc2V0XyBpcyBuZXZlciAwIGluIG5vcm1hbCBjaXJjdW1zdGFuY2VzIGV4Y2VwdCBhZnRlciBhCisgICAgICAgIC8vIGRpc2NvbnRpZ3VvdXMgY29udHJhY3Rpb24gc2luY2UgaXQgaXMgYWx3YXlzIHJldHVybmVkIGFuZCBtb3ZlZAorICAgICAgICAvLyBieSAxIHdoZW4gd2UgZG8gbmV4dENoYXIoKQorICAgICAgICByZXR1cm4gbV9idWZmZXJfLmNoYXJBdChtX2J1ZmZlck9mZnNldF8gLSAxKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgdG8gZ2V0IHRoZSBkaXNjb250aWd1b3VzIGNvbGxhdGlvbiBlbGVtZW50IHdpdGhpbiB0aGUgc291cmNlLgorICAgICAqIE5vdGUgdGhpcyBmdW5jdGlvbiB3aWxsIHNldCB0aGUgcG9zaXRpb24gdG8gdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KKyAgICAgKiBQYXNzZWQgaW4gY2hhcmFjdGVyIG9mZnNldCBwb2ludHMgdG8gdGhlIHNlY29uZCBjb21iaW5pbmcgY2hhcmFjdGVyCisgICAgICogYWZ0ZXIgdGhlIHN0YXJ0IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY3VycmVudCBjb2xsYXRvciB1c2VkCisgICAgICogQHBhcmFtIGVudHJ5b2Zmc2V0IGluZGV4IHRvIHRoZSBzdGFydCBjaGFyYWN0ZXIgaW4gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHJldHVybiBkaXNjb250aWd1b3VzIGNvbGxhdGlvbiBlbGVtZW50IG9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHREaXNjb250aWd1b3VzKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBpbnQgZW50cnlvZmZzZXQpCisgICAgeworICAgICAgICBpbnQgb2Zmc2V0ID0gZW50cnlvZmZzZXQ7CisgICAgICAgIGJvb2xlYW4gbXVsdGljb250cmFjdGlvbiA9IGZhbHNlOworICAgICAgICAvLyBzaW5jZSBpdCB3aWxsIGJlIHN0dWZmZWQgaW50byB0aGlzIGl0ZXJhdG9yIGFuZCByYW4gb3ZlciBhZ2FpbgorICAgICAgICBpZiAobV91dGlsU2tpcHBlZEJ1ZmZlcl8gPT0gbnVsbCkgeworICAgICAgICAgICAgbV91dGlsU2tpcHBlZEJ1ZmZlcl8gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX3V0aWxTa2lwcGVkQnVmZmVyXy5zZXRMZW5ndGgoMCk7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjaCA9IChjaGFyKWN1cnJlbnRDaGFyKCk7CisgICAgICAgIG1fdXRpbFNraXBwZWRCdWZmZXJfLmFwcGVuZCgoY2hhciljdXJyZW50Q2hhcigpKTsKKyAgICAgICAgLy8gYWNjZW50IGFmdGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIKKyAgICAgICAgaWYgKG1fdXRpbFNwZWNpYWxEaXNjb250aWd1b3VzQmFja1VwXyA9PSBudWxsKSB7CisgICAgICAgICAgICBtX3V0aWxTcGVjaWFsRGlzY29udGlndW91c0JhY2tVcF8gPSBuZXcgQmFja3VwKCk7CisgICAgICAgIH0KKyAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsRGlzY29udGlndW91c0JhY2tVcF8pOworICAgICAgICBjaGFyIG5leHRjaCA9IGNoOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgY2ggPSBuZXh0Y2g7CisgICAgICAgICAgICBpbnQgY2hfaW50ID0gbmV4dENoYXIoKTsKKyAgICAgICAgICAgIG5leHRjaCA9IChjaGFyKWNoX2ludDsKKyAgICAgICAgICAgIGlmIChjaF9pbnQgPT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUKKyAgICAgICAgICAgICAgICB8fCBnZXRDb21iaW5pbmdDbGFzcyhuZXh0Y2gpID09IDApIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBhcmUgbm8gbW9yZSBhY2NlbnRzIHRvIG1vdmUgYXJvdW5kCisgICAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSB0byBzaGlmdCBwcmV2aW91c0NoYXIsIHNpbmNlIHdlIGFyZSByZXNldHRpbmcKKyAgICAgICAgICAgICAgICAvLyB0aGUgb2Zmc2V0IGxhdGVyCisgICAgICAgICAgICAgICAgaWYgKG11bHRpY29udHJhY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoX2ludCAhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFyKCk7IC8vIGJhY2t0cmFjaworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHNldERpc2NvbnRpZ3VvdXMobV91dGlsU2tpcHBlZEJ1ZmZlcl8pOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgb2Zmc2V0ICsrOyAvLyBza2lwIHRoZSBjb21iaW5pbmcgY2xhc3Mgb2Zmc2V0CisgICAgICAgICAgICB3aGlsZSAobmV4dGNoID4gY29sbGF0b3IubV9jb250cmFjdGlvbkluZGV4X1tvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0ICsrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgY2UgPSBDRV9OT1RfRk9VTkRfOworICAgICAgICAgICAgaWYgKG5leHRjaCAhPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uSW5kZXhfW29mZnNldF0KKyAgICAgICAgICAgICAgICAgICAgfHwgZ2V0Q29tYmluaW5nQ2xhc3MobmV4dGNoKSA9PSBnZXRDb21iaW5pbmdDbGFzcyhjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdW5tYXRjaGVkIG9yIGJsb2NrZWQgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgbV91dGlsU2tpcHBlZEJ1ZmZlcl8uYXBwZW5kKG5leHRjaCk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bb2Zmc2V0XTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNlID09IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGlzQ29udHJhY3Rpb25UYWcoY2UpKSB7CisgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIG11bHRpLWNvbnRyYWN0aW9uCisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gZ2V0Q29udHJhY3Rpb25PZmZzZXQoY29sbGF0b3IsIGNlKTsKKyAgICAgICAgICAgICAgICBpZiAoY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdICE9IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgICAgICAgICAgbXVsdGljb250cmFjdGlvbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJhY2t1cEludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbERpc2NvbnRpZ3VvdXNCYWNrVXBfKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXREaXNjb250aWd1b3VzKG1fdXRpbFNraXBwZWRCdWZmZXJfKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxEaXNjb250aWd1b3VzQmFja1VwXyk7CisgICAgICAgIC8vIGJhY2t1cCBpcyBvbmUgZm9yd2FyZCBvZiB0aGUgYmFzZSBjaGFyYWN0ZXIsIHdlIG5lZWQgdG8gbW92ZSBiYWNrCisgICAgICAgIC8vIG9uZSBtb3JlCisgICAgICAgIHByZXZpb3VzQ2hhcigpOworICAgICAgICByZXR1cm4gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tlbnRyeW9mZnNldF07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmV4dCBjb250cmFjdGlvbiBjZQorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjb2xsYXRvciB0byB1c2UKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEBwYXJhbSBlbnRyeWJhY2t1cCBlbnRyeSBiYWNrdXAgaXRlcmF0b3Igc3RhdHVzCisgICAgICogQHJldHVybiBjZSBvZiB0aGUgbmV4dCBjb250cmFjdGlvbgorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHRDb250cmFjdGlvbihSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlKQorICAgIHsKKyAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgIGludCBlbnRyeWNlID0gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tnZXRDb250cmFjdGlvbk9mZnNldChjb2xsYXRvciwgY2UpXTsgLy9DRV9OT1RfRk9VTkRfOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGVudHJ5b2Zmc2V0ID0gZ2V0Q29udHJhY3Rpb25PZmZzZXQoY29sbGF0b3IsIGNlKTsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBlbnRyeW9mZnNldDsKKworICAgICAgICAgICAgaWYgKGlzRW5kKCkpIHsKKyAgICAgICAgICAgICAgICBjZSA9IGNvbGxhdG9yLm1fY29udHJhY3Rpb25DRV9bb2Zmc2V0XTsKKyAgICAgICAgICAgICAgICBpZiAoY2UgPT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgICAgICAgICAvLyBiYWNrIHVwIHRoZSBzb3VyY2Ugb3ZlciBhbGwgdGhlIGNoYXJzIHdlIHNjYW5uZWQgZ29pbmcKKyAgICAgICAgICAgICAgICAgICAgLy8gaW50byB0aGlzIGNvbnRyYWN0aW9uLgorICAgICAgICAgICAgICAgICAgICBjZSA9IGVudHJ5Y2U7CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbEJhY2tVcF8pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gZ2V0IHRoZSBkaXNjb250aWd1b3MgbWF4aW11bSBjb21iaW5pbmcgY2xhc3MKKyAgICAgICAgICAgIGludCBtYXhDQyA9IChjb2xsYXRvci5tX2NvbnRyYWN0aW9uSW5kZXhfW29mZnNldF0gJiAweEZGKTsKKyAgICAgICAgICAgIC8vIGNoZWNrcyBpZiBhbGwgY2hhcmFjdGVycyBoYXZlIHRoZSBzYW1lIGNvbWJpbmluZyBjbGFzcworICAgICAgICAgICAgYnl0ZSBhbGxTYW1lID0gKGJ5dGUpKGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSA+PiA4KTsKKyAgICAgICAgICAgIGNoYXIgY2ggPSAoY2hhciluZXh0Q2hhcigpOworICAgICAgICAgICAgb2Zmc2V0ICsrOworICAgICAgICAgICAgd2hpbGUgKGNoID4gY29sbGF0b3IubV9jb250cmFjdGlvbkluZGV4X1tvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgLy8gY29udHJhY3Rpb24gY2hhcmFjdGVycyBhcmUgb3JkZXJlZCwgc2tpcCBhbGwgc21hbGxlcgorICAgICAgICAgICAgICAgIG9mZnNldCArKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNoID09IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgIC8vIEZvdW5kIHRoZSBzb3VyY2Ugc3RyaW5nIGNoYXIgaW4gdGhlIGNvbnRyYWN0aW9uIHRhYmxlLgorICAgICAgICAgICAgICAgIC8vICBQaWNrIHVwIHRoZSBjb3JyZXNwb25kaW5nIENFIGZyb20gdGhlIHRhYmxlLgorICAgICAgICAgICAgICAgIGNlID0gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tvZmZzZXRdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gU291cmNlIHN0cmluZyBjaGFyIHdhcyBub3QgaW4gY29udHJhY3Rpb24gdGFibGUuCisgICAgICAgICAgICAgICAgLy8gVW5sZXNzIGl0IGlzIGEgZGlzY29udGlndW91cyBjb250cmFjdGlvbiwgd2UgYXJlIGRvbmUKKyAgICAgICAgICAgICAgICBpbnQgbWlzcyA9IGNoOworICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaCkpIHsgLy8gaW4gb3JkZXIgdG8gZG8gdGhlIHByb3BlciBkZXRlY3Rpb24sIHdlCisgICAgICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gc2VlIGlmIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIHN1cHBsZW1lbnRhcnkKKyAgICAgICAgICAgICAgICAgICAgbWlzcyA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGNoLCAoY2hhcikgbmV4dENoYXIoKSk7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IHNDQzsKKyAgICAgICAgICAgICAgICBpZiAobWF4Q0MgPT0gMCB8fCAoc0NDID0gZ2V0Q29tYmluaW5nQ2xhc3MobWlzcykpID09IDAKKyAgICAgICAgICAgICAgICAgICAgfHwgc0NDID4gbWF4Q0MgfHwgKGFsbFNhbWUgIT0gMCAmJiBzQ0MgPT0gbWF4Q0MpIHx8CisgICAgICAgICAgICAgICAgICAgIGlzRW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQ29udHJhY3Rpb24gY2FuIG5vdCBiZSBkaXNjb250aWd1b3VzLCBiYWNrIHVwIGJ5IG9uZQorICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYobWlzcyA+IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2VudHJ5b2Zmc2V0XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIENvbnRyYWN0aW9uIGlzIHBvc3NpYmx5IGRpc2NvbnRpZ3VvdXMuCisgICAgICAgICAgICAgICAgICAgIC8vIGZpbmQgdGhlIG5leHQgY2hhcmFjdGVyIGlmIGNoIGlzIG5vdCBhIGJhc2UgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgIGludCBjaF9pbnQgPSBuZXh0Q2hhcigpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2hfaW50ICE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjaGFyIG5leHRjaCA9IChjaGFyKWNoX2ludDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGdldENvbWJpbmluZ0NsYXNzKG5leHRjaCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihtaXNzID4gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9ICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmFzZSBjaGFyYWN0ZXIgbm90IHBhcnQgb2YgZGlzY29udGlndW91cyBjb250cmFjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2VudHJ5b2Zmc2V0XTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlID0gbmV4dERpc2NvbnRpZ3VvdXMoY29sbGF0b3IsIGVudHJ5b2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNlID09IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgICAgICAvLyBzb3VyY2UgZGlkIG5vdCBtYXRjaCB0aGUgY29udHJhY3Rpb24sIHJldmVydCBiYWNrIG9yaWdpbmFsCisgICAgICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgY2UgPSBlbnRyeWNlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBzb3VyY2Ugd2FzIGEgY29udHJhY3Rpb24KKyAgICAgICAgICAgIGlmICghaXNDb250cmFjdGlvblRhZyhjZSkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY2NvbnRpbnVlIGxvb3BpbmcgdG8gY2hlY2sgZm9yIHRoZSByZW1haW5pbmcgY29udHJhY3Rpb24uCisgICAgICAgICAgICBpZiAoY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tlbnRyeW9mZnNldF0gIT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgICAgIC8vIHRoZXJlIGFyZSBmdXJ0aGVyIGNvbnRyYWN0aW9ucyB0byBiZSBwZXJmb3JtZWQsIHNvIHdlIHN0b3JlCisgICAgICAgICAgICAgICAgLy8gdGhlIHNvLWZhciBjb21wbGV0ZWQgY2UsIHNvIHRoYXQgaWYgd2UgZmFpbCBpbiB0aGUgbmV4dAorICAgICAgICAgICAgICAgIC8vIHJvdW5kIHdlIGp1c3QgcmV0dXJuIHRoaXMgb25lLgorICAgICAgICAgICAgICAgIGVudHJ5Y2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2VudHJ5b2Zmc2V0XTsKKyAgICAgICAgICAgICAgICBiYWNrdXBJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgICAgICAgICBpZiAobV91dGlsU3BlY2lhbEJhY2tVcF8ubV9idWZmZXJPZmZzZXRfID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsU3BlY2lhbEJhY2tVcF8ubV9idWZmZXJPZmZzZXRfIC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsU3BlY2lhbEJhY2tVcF8ubV9vZmZzZXRfIC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmV4dCBjZSBmb3IgbG9uZyBwcmltYXJpZXMsIHN0dWZmcyB0aGUgcmVzdCBvZiB0aGUgY29sbGF0aW9uCisgICAgICogZWxlbWVudHMgaW50byB0aGUgY2UgYnVmZmVyCisgICAgICogQHBhcmFtIGNlIGN1cnJlbnQgY2UKKyAgICAgKiBAcmV0dXJuIG5leHQgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXh0TG9uZ1ByaW1hcnkoaW50IGNlKQorICAgIHsKKyAgICAgICAgbV9DRUJ1ZmZlcl9bMV0gPSAoKGNlICYgMHhGRikgPDwgMjQpCisgICAgICAgICAgICB8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX0NPTlRJTlVBVElPTl9NQVJLRVJfOworICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDE7CisgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDI7CisgICAgICAgIG1fQ0VCdWZmZXJfWzBdID0gKChjZSAmIDB4RkZGRjAwKSA8PCA4KSB8IChDRV9CWVRFX0NPTU1PTl8gPDwgOCkgfAorICAgICAgICAgICAgQ0VfQllURV9DT01NT05fOworICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bMF07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIGV4cGFuc2lvbgorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHJldHVybiBudW1iZXIgb2YgZXhwYW5zaW9uCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0RXhwYW5zaW9uQ291bnQoaW50IGNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNlICYgMHhGOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG5leHQgZXhwYW5zaW9uIGNlIGFuZCBzdHVmZnMgdGhlIHJlc3Qgb2YgdGhlIGNvbGxhdGlvbiBlbGVtZW50cworICAgICAqIGludG8gdGhlIGNlIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNlIGN1cnJlbnQgY2UKKyAgICAgKiBAcmV0dXJuIG5leHQgZXhwYW5zaW9uIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dEV4cGFuc2lvbihSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlKQorICAgIHsKKyAgICAgICAgLy8gTk9URTogd2UgY2FuIGVuY291bnRlciBib3RoIGNvbnRpbnVhdGlvbnMgYW5kIGV4cGFuc2lvbnMgaW4gYW4KKyAgICAgICAgLy8gZXhwYW5zaW9uIQorICAgICAgICAvLyBJIGhhdmUgdG8gZGVjaWRlIHdoZXJlIGNvbnRpbnVhdGlvbnMgYXJlIGdvaW5nIHRvIGJlIGRlYWx0IHdpdGgKKyAgICAgICAgaW50IG9mZnNldCA9IGdldEV4cGFuc2lvbk9mZnNldChjb2xsYXRvciwgY2UpOworICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSBnZXRFeHBhbnNpb25Db3VudChjZSk7CisgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gMTsKKyAgICAgICAgbV9DRUJ1ZmZlcl9bMF0gPSBjb2xsYXRvci5tX2V4cGFuc2lvbl9bb2Zmc2V0XTsKKyAgICAgICAgaWYgKG1fQ0VCdWZmZXJTaXplXyAhPSAwKSB7CisgICAgICAgICAgICAvLyBpZiB0aGVyZSBhcmUgbGVzcyB0aGFuIDE2IGVsZW1lbnRzIGluIGV4cGFuc2lvbgorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBtX0NFQnVmZmVyU2l6ZV87IGkgKyspIHsKKyAgICAgICAgICAgICAgICBtX0NFQnVmZmVyX1tpXSA9IGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tvZmZzZXQgKyBpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGNlIGFyZSB0ZXJtaW5hdGVkCisgICAgICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAxOworICAgICAgICAgICAgd2hpbGUgKGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tvZmZzZXRdICE9IDApIHsKKyAgICAgICAgICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0KKyAgICAgICAgICAgICAgICAgICAgY29sbGF0b3IubV9leHBhbnNpb25fWysrIG9mZnNldF07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gaW4gY2FzZSBvZiBvbmUgZWxlbWVudCBleHBhbnNpb24sIHdlIAorICAgICAgICAvLyB3YW50IHRvIGltbWVkaWF0ZWx5IHJldHVybiBDRXBvcworICAgICAgICBpZiAobV9DRUJ1ZmZlclNpemVfID09IDEpIHsKKyAgICAgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDA7CisgICAgICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fQ0VCdWZmZXJfWzBdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBuZXh0IGRpZ2l0IGNlCisgICAgICogQHBhcmFtIGNvbGxhdG9yIGN1cnJlbnQgY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEBwYXJhbSBjcCBjdXJyZW50IGNvZGVwb2ludAorICAgICAqIEByZXR1cm4gbmV4dCBkaWdpdCBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHREaWdpdChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlLCBpbnQgY3ApCisgICAgeworICAgICAgICAvLyBXZSBkbyBhIGNoZWNrIHRvIHNlZSBpZiB3ZSB3YW50IHRvIGNvbGxhdGUgZGlnaXRzIGFzIG51bWJlcnM7IAorICAgICAgICAvLyBpZiBzbyB3ZSBnZW5lcmF0ZSBhIGN1c3RvbSBjb2xsYXRpb24ga2V5LiBPdGhlcndpc2Ugd2UgcHVsbCBvdXQgCisgICAgICAgIC8vIHRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhlIGV4cGFuc2lvbiB0YWJsZS4KKworICAgICAgICBpZiAobV9jb2xsYXRvcl8ubV9pc051bWVyaWNDb2xsYXRpb25fKXsKKyAgICAgICAgICAgIGludCBjb2xsYXRlVmFsID0gMDsKKyAgICAgICAgICAgIGludCB0cmFpbGluZ1plcm9JbmRleCA9IDA7CisgICAgICAgICAgICBib29sZWFuIG5vblplcm9WYWxSZWFjaGVkID0gZmFsc2U7CisKKyAgICAgICAgICAgIC8vIEkganVzdCBuZWVkIGEgdGVtcG9yYXJ5IHBsYWNlIHRvIHN0b3JlIG15IGdlbmVyYXRlZCBDRXMuCisgICAgICAgICAgICAvLyBpY3U0YyB1c2VzIGEgdW5zaWduZWQgYnl0ZSBhcnJheSwgaSdsbCB1c2UgYSBzdHJpbmdidWZmZXIgaGVyZQorICAgICAgICAgICAgLy8gdG8gYXZvaWQgZGVhbGluZyB3aXRoIHRoZSBzaWduIHByb2JsZW1zIGFuZCBhcnJheSBhbGxvY2F0aW9uCisgICAgICAgICAgICAvLyBjbGVhciBhbmQgc2V0IGluaXRpYWwgc3RyaW5nIGJ1ZmZlciBsZW5ndGgKKyAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0TGVuZ3RoKDMpOworICAgICAgICAKKyAgICAgICAgICAgIC8vIFdlIHBhcnNlIHRoZSBzb3VyY2Ugc3RyaW5nIHVudGlsIHdlIGhpdCBhIGNoYXIgdGhhdCdzIE5PVCBhIAorICAgICAgICAgICAgLy8gZGlnaXQuCisgICAgICAgICAgICAvLyBVc2UgdGhpcyB1X2NoYXJEaWdpdFZhbHVlLiBUaGlzIG1pZ2h0IGJlIHNsb3cgYmVjYXVzZSB3ZSBoYXZlIAorICAgICAgICAgICAgLy8gdG8gaGFuZGxlIHN1cnJvZ2F0ZXMuLi4KKyAgICAgICAgICAgIGludCBkaWdWYWwgPSBVQ2hhcmFjdGVyLmRpZ2l0KGNwKTsgCisgICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIGFycml2ZWQgaGVyZSwgd2UgaGF2ZSBhbHJlYWR5IHByb2Nlc3NlZCBwb3NzaWJsZSAKKyAgICAgICAgICAgIC8vIHN1cHBsZW1lbnRhcmllcyB0aGF0IHRyaWdlcmVkIHRoZSBkaWdpdCB0YWcgLQorICAgICAgICAgICAgLy8gYWxsIHN1cHBsZW1lbnRhcmllcyBhcmUgbWFya2VkIGluIHRoZSBVQ0EuCisgICAgICAgICAgICAvLyBXZSAgcGFkIGEgemVybyBpbiBmcm9udCBvZiB0aGUgZmlyc3QgZWxlbWVudCBhbnl3YXlzLiAKKyAgICAgICAgICAgIC8vIFRoaXMgdGFrZXMgY2FyZSBvZiB0aGUgKHByb2JhYmx5KSBtb3N0IGNvbW1vbiBjYXNlIHdoZXJlIAorICAgICAgICAgICAgLy8gcGVvcGxlIGFyZSBzb3J0aW5nIHRoaW5ncyBmb2xsb3dlZCBieSBhIHNpbmdsZSBkaWdpdAorICAgICAgICAgICAgaW50IGRpZ0luZHggPSAxOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBzcGFjZS4KKyAgICAgICAgICAgICAgICBpZiAoZGlnSW5keCA+PSAoKG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkgLSAyKSA8PCAxKSkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldExlbmd0aChtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gU2tpcHBpbmcgb3ZlciBsZWFkaW5nIHplcm9lcy4gICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChkaWdWYWwgIT0gMCB8fCBub25aZXJvVmFsUmVhY2hlZCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZGlnVmFsICE9IDAgJiYgIW5vblplcm9WYWxSZWFjaGVkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBub25aZXJvVmFsUmVhY2hlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gICAgCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIHBhcnNlIHRoZSBkaWdpdCBzdHJpbmcgaW50byBiYXNlIDEwMCBudW1iZXJzIAorICAgICAgICAgICAgICAgICAgICAvLyAodGhpcyBmaXRzIGludG8gYSBieXRlKS4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2Ugb25seSBhZGQgdG8gdGhlIGJ1ZmZlciBpbiB0d29zLCB0aHVzIGlmIHdlIGFyZSAKKyAgICAgICAgICAgICAgICAgICAgLy8gcGFyc2luZyBhbiBvZGQgY2hhcmFjdGVyLCB0aGF0IHNlcnZlcyBhcyB0aGUgCisgICAgICAgICAgICAgICAgICAgIC8vICd0ZW5zJyBkaWdpdCB3aGlsZSB0aGUgaWYgd2UgYXJlIHBhcnNpbmcgYW4gZXZlbiAKKyAgICAgICAgICAgICAgICAgICAgLy8gb25lLCB0aGF0IGlzIHRoZSAnb25lcycgZGlnaXQuIFdlIGR1bXBlZCB0aGUgCisgICAgICAgICAgICAgICAgICAgIC8vIHBhcnNlZCBiYXNlIDEwMCB2YWx1ZSAoY29sbGF0ZVZhbCkgaW50byBhIGJ1ZmZlci4gCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIG11bHRpcGx5IGVhY2ggY29sbGF0ZVZhbCBieSAyICh0byBnaXZlIHVzIHJvb20pIAorICAgICAgICAgICAgICAgICAgICAvLyBhbmQgYWRkIDUgKHRvIGF2b2lkIG92ZXJsYXBwaW5nIG1hZ2ljIENFIGJ5dGUgCisgICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlcykuIFRoZSBsYXN0IGJ5dGUgd2Ugc3VidHJhY3QgMSB0byBlbnN1cmUgaXQgaXMgCisgICAgICAgICAgICAgICAgICAgIC8vIGxlc3MgdGhhbiBhbGwgdGhlIG90aGVyIGJ5dGVzLgorICAgICAgICAgICAgICAgICAgICBpZiAoZGlnSW5keCAlIDIgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29sbGF0ZVZhbCArPSBkaWdWYWw7ICAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgcmVtb3ZlcyB0cmFpbGluZyB6ZXJvZXMuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sbGF0ZVZhbCA9PSAwICYmIHRyYWlsaW5nWmVyb0luZGV4ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbGluZ1plcm9JbmRleCA9ICgoZGlnSW5keCAtIDEpID4+PiAxKSArIDI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0cmFpbGluZ1plcm9JbmRleCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhaWxpbmdaZXJvSW5kZXggPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5zZXRDaGFyQXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZGlnSW5keCAtIDEpID4+PiAxKSArIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSgoY29sbGF0ZVZhbCA8PCAxKSArIDYpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhdGVWYWwgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgZHJvcCB0aGUgY29sbGF0aW9uIHZhbHVlIGludG8gdGhlIGJ1ZmZlciBzbyBpZiAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gZG8gYSAiZnJvbnQgcGF0Y2giIHdlIGRvbid0IGhhdmUgdG8gCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayB0byBzZWUgaWYgd2UncmUgaGl0dGluZyB0aGUgbGFzdCBlbGVtZW50LgorICAgICAgICAgICAgICAgICAgICAgICAgY29sbGF0ZVZhbCA9IGRpZ1ZhbCAqIDEwOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5zZXRDaGFyQXQoKGRpZ0luZHggPj4+IDEpICsgMiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoKGNvbGxhdGVWYWwgPDwgMSkgKyA2KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGlnSW5keCArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBHZXQgbmV4dCBjaGFyYWN0ZXIuCisgICAgICAgICAgICAgICAgaWYgKCFpc0VuZCgpKXsKKyAgICAgICAgICAgICAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgICAgIGludCBjaGFyMzIgPSBuZXh0Q2hhcigpOworICAgICAgICAgICAgICAgICAgICBjaGFyIGNoID0gKGNoYXIpY2hhcjMyOworICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSl7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gKGNoYXIpbmV4dENoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyMzIgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCwgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvQmFja09uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZGlnVmFsID0gVUNoYXJhY3Rlci5kaWdpdChjaGFyMzIpOworICAgICAgICAgICAgICAgICAgICBpZiAoZGlnVmFsID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXNldHRpbmcgcG9zaXRpb24gdG8gcG9pbnQgdG8gdGhlIG5leHQgdW5wcm9jZXNzZWQgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGFyLiBXZSBvdmVyc2hvdCBpdCB3aGVuIGRvaW5nIG91ciB0ZXN0L3NldCBmb3IgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBudW1iZXJzLgorICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICAgICBpZiAobm9uWmVyb1ZhbFJlYWNoZWQgPT0gZmFsc2UpeworICAgICAgICAgICAgICAgIGRpZ0luZHggPSAyOworICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0Q2hhckF0KDIsIChjaGFyKTYpOworICAgICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgICAgIGludCBlbmRJbmRleCA9IHRyYWlsaW5nWmVyb0luZGV4ICE9IDAgPyB0cmFpbGluZ1plcm9JbmRleCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKGRpZ0luZHggPj4+IDEpICsgMjsgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGRpZ0luZHggJSAyICE9IDApeworICAgICAgICAgICAgICAgIC8vIFdlIG1pc3NlZCBhIHZhbHVlLiBTaW5jZSBkaWdJbmR4IGlzbid0IGV2ZW4sIHN0dWNrIHRvbyBtYW55IAorICAgICAgICAgICAgICAgIC8vIHZhbHVlcyBpbnRvIHRoZSBidWZmZXIgKHRoaXMgaXMgd2hhdCB3ZSBnZXQgZm9yIHBhZGRpbmcgdGhlIAorICAgICAgICAgICAgICAgIC8vIGZpcnN0IGJ5dGUgd2l0aCBhIHplcm8pLiAiRnJvbnQtcGF0Y2giIG5vdyBieSBwdXNoaW5nIGFsbCAKKyAgICAgICAgICAgICAgICAvLyBueWJibGVzIGZvcndhcmQuCisgICAgICAgICAgICAgICAgLy8gRG9pbmcgaXQgdGhpcyB3YXkgZW5zdXJlcyB0aGF0IGF0IGxlYXN0IDUwJSBvZiB0aGUgdGltZSAKKyAgICAgICAgICAgICAgICAvLyAoc3RhdGlzdGljYWxseSBzcGVha2luZykgd2UnbGwgb25seSBiZSBkb2luZyBhIHNpbmdsZSBwYXNzIAorICAgICAgICAgICAgICAgIC8vIGFuZCBvcHRpbWl6ZXMgZm9yIHN0cmluZ3Mgd2l0aCBzaW5nbGUgZGlnaXRzLiBJJ20ganVzdCAKKyAgICAgICAgICAgICAgICAvLyBhc3N1bWluZyB0aGF0J3MgdGhlIG1vcmUgY29tbW9uIGNhc2UuCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDI7IGkgPCBlbmRJbmRleDsgaSArKyl7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0Q2hhckF0KGksIAorICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKCgoKCgobV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoaSkgLSA2KSA+Pj4gMSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAxMCkgKiAxMCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICgoKG1fdXRpbFN0cmluZ0J1ZmZlcl8uY2hhckF0KGkgKyAxKSAtIDYpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Pj4gMSkgLyAxMCkgPDwgMSkgKyA2KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC0tIGRpZ0luZHg7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgLy8gU3VidHJhY3Qgb25lIG9mZiBvZiB0aGUgbGFzdCBieXRlLiAKKyAgICAgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0Q2hhckF0KGVuZEluZGV4IC0gMSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKG1fdXRpbFN0cmluZ0J1ZmZlcl8uY2hhckF0KGVuZEluZGV4IC0gMSkgLSAxKSk7ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBXZSB3YW50IHRvIHNraXAgb3ZlciB0aGUgZmlyc3QgdHdvIHNsb3RzIGluIHRoZSBidWZmZXIuIAorICAgICAgICAgICAgLy8gVGhlIGZpcnN0IHNsb3QgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBoZWFkZXIgYnl0ZSBDT0RBTl9QTEFDRUhPTERFUi4gCisgICAgICAgICAgICAvLyBUaGUgc2Vjb25kIHNsb3QgaXMgZm9yIHRoZSBzaWduL2V4cG9uZW50IGJ5dGU6IAorICAgICAgICAgICAgLy8gMHg4MCArIChkZWNpbWFsUG9zLzIpICYgN2YuCisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgwLCAoY2hhcilSdWxlQmFzZWRDb2xsYXRvci5DT0RBTl9QTEFDRUhPTERFUik7CisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgxLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoMHg4MCArICgoZGlnSW5keCA+Pj4gMSkgJiAweDdGKSkpOworICAgICAgICAKKyAgICAgICAgICAgIC8vIE5vdyB0cmFuc2ZlciB0aGUgY29sbGF0aW9uIGtleSB0byBvdXIgY29sbEl0ZXJhdGUgc3RydWN0LgorICAgICAgICAgICAgLy8gVGhlIHRvdGFsIHNpemUgZm9yIG91ciBjb2xsYXRpb24ga2V5IGlzIGVuZEluZHggYnVtcGVkIHVwIHRvIHRoZSBuZXh0IGxhcmdlc3QgZXZlbiB2YWx1ZSBkaXZpZGVkIGJ5IHR3by4KKyAgICAgICAgICAgIGNlID0gKCgobV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoMCkgPDwgOCkKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJpbWFyeSB3ZWlnaHQgCisgICAgICAgICAgICAgICAgICAgICAgIHwgbV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoMSkpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9TSElGVF8pCisgICAgICAgICAgICAgICAgICAgICAgIC8vICBTZWNvbmRhcnkgd2VpZ2h0IAorICAgICAgICAgICAgICAgICAgICAgICB8IChSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0NPTU1PTl8gCisgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NFQ09OREFSWV9TSElGVF8pIAorICAgICAgICAgICAgICAgICAgICAgICB8IFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfQ09NTU9OXzsgLy8gVGVydGlhcnkgd2VpZ2h0LgorICAgICAgICAgICAgaW50IGkgPSAyOyAvLyBSZXNldCB0aGUgaW5kZXggaW50byB0aGUgYnVmZmVyLgorICAgICAgICAgICAgCisgICAgICAgICAgICBtX0NFQnVmZmVyX1swXSA9IGNlOworICAgICAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMTsKKyAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gMTsKKyAgICAgICAgICAgIHdoaWxlIChpIDwgZW5kSW5kZXgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IHByaW1XZWlnaHQgPSBtX3V0aWxTdHJpbmdCdWZmZXJfLmNoYXJBdChpICsrKSA8PCA4OworICAgICAgICAgICAgICAgIGlmIChpIDwgZW5kSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbVdlaWdodCB8PSBtX3V0aWxTdHJpbmdCdWZmZXJfLmNoYXJBdChpICsrKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlclNpemVfICsrXSAKKyAgICAgICAgICAgICAgICAgICAgPSAocHJpbVdlaWdodCA8PCBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX1NISUZUXykgCisgICAgICAgICAgICAgICAgICAgICAgfCBSdWxlQmFzZWRDb2xsYXRvci5DRV9DT05USU5VQVRJT05fTUFSS0VSXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBjZTsKKyAgICAgICAgfSAKKyAgICAgICAgCisgICAgICAgIC8vIG5vIG51bWVyaWMgbW9kZSwgd2UnbGwganVzdCBzd2l0Y2ggdG8gd2hhdGV2ZXIgd2Ugc3Rhc2hlZCBhbmQgCisgICAgICAgIC8vIGNvbnRpbnVlCisgICAgICAgIC8vIGZpbmQgdGhlIG9mZnNldCB0byBleHBhbnNpb24gdGFibGUKKyAgICAgICAgcmV0dXJuIGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tnZXRFeHBhbnNpb25PZmZzZXQoY29sbGF0b3IsIGNlKV07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmV4dCBpbXBsaWNpdCBjZSBmb3IgY29kZXBvaW50cworICAgICAqIEBwYXJhbSBjb2RlcG9pbnQgY3VycmVudCBjb2RlcG9pbnQKKyAgICAgKiBAcmV0dXJuIGltcGxpY2l0IGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dEltcGxpY2l0KGludCBjb2RlcG9pbnQpCisgICAgeworICAgICAgICBpZiAoIVVDaGFyYWN0ZXIuaXNMZWdhbChjb2RlcG9pbnQpKSB7CisgICAgICAgICAgICAvLyBzeW53ZWUgdG8gY2hlY2sgd2l0aCB2bGFkaW1pciBvbiB0aGUgcmFuZ2Ugb2YgaXNOb25DaGFyKCkKKyAgICAgICAgICAgIC8vIGlsbGVnYWwgY29kZSB2YWx1ZSwgdXNlIGNvbXBsZXRlbHkgaWdub3JlYWJsZSEKKyAgICAgICAgICAgIHJldHVybiBJR05PUkFCTEU7CisgICAgICAgIH0KKyAgICAgICAgaW50IHJlc3VsdCA9IFJ1bGVCYXNlZENvbGxhdG9yLmltcENFR2VuXy5nZXRJbXBsaWNpdEZyb21Db2RlUG9pbnQoY29kZXBvaW50KTsKKyAgICAgICAgbV9DRUJ1ZmZlcl9bMF0gPSAocmVzdWx0ICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXykKKyAgICAgICAgICAgICAgICAgICAgICAgICB8IDB4MDAwMDA1MDU7CisgICAgICAgIG1fQ0VCdWZmZXJfWzFdID0gKChyZXN1bHQgJiAweDAwMDBGRkZGKSA8PCAxNikgfCAweDAwMDAwMEMwOworICAgICAgICBtX0NFQnVmZmVyT2Zmc2V0XyA9IDE7CisgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IDI7CisgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1swXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9sbG93aW5nIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG5leHRTdXJyb2dhdGUoY2hhciBjaCkKKyAgICB7CisgICAgICAgIGludCBjaF9pbnQgPSBuZXh0Q2hhcigpOworICAgICAgICBjaGFyIG5leHRjaCA9IChjaGFyKWNoX2ludDsKKyAgICAgICAgaWYgKGNoX2ludCAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmCisgICAgICAgICAgICBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKG5leHRjaCkpIHsKKyAgICAgICAgICAgIGludCBjb2RlcG9pbnQgPSBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShjaCwgbmV4dGNoKTsKKyAgICAgICAgICAgIHJldHVybiBuZXh0SW1wbGljaXQoY29kZXBvaW50KTsKKyAgICAgICAgfQorICAgICAgICBpZiAobmV4dGNoICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHByZXZpb3VzQ2hhcigpOyAvLyByZXZlcnRzIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHBvc2l0aW9uCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsgLy8gY29tcGxldGVseSBpZ25vcmFibGUKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGNlIGZvciBhIGhhbmd1bCBjaGFyYWN0ZXIsIHRoaXMgaXMgYW4gaW1wbGljaXQKKyAgICAgKiBjYWxjdWxhdGlvbgorICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBoYW5ndWwgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBuZXh0SGFuZ3VsKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBjaGFyIGNoKQorICAgIHsKKyAgICAgICAgY2hhciBMID0gKGNoYXIpKGNoIC0gSEFOR1VMX1NCQVNFXyk7CisKKyAgICAgICAgLy8gZGl2aWRlIGludG8gcGllY2VzCisgICAgICAgIC8vIGRvIGl0IGluIHRoaXMgb3JkZXIgc2luY2Ugc29tZSBjb21waWxlcnMgY2FuIGRvICUgYW5kIC8gaW4gb25lCisgICAgICAgIC8vIG9wZXJhdGlvbgorICAgICAgICBjaGFyIFQgPSAoY2hhcikoTCAlIEhBTkdVTF9UQ09VTlRfKTsKKyAgICAgICAgTCAvPSBIQU5HVUxfVENPVU5UXzsKKyAgICAgICAgY2hhciBWID0gKGNoYXIpKEwgJSBIQU5HVUxfVkNPVU5UXyk7CisgICAgICAgIEwgLz0gSEFOR1VMX1ZDT1VOVF87CisKKyAgICAgICAgLy8gb2Zmc2V0IHRoZW0KKyAgICAgICAgTCArPSBIQU5HVUxfTEJBU0VfOworICAgICAgICBWICs9IEhBTkdVTF9WQkFTRV87CisgICAgICAgIFQgKz0gSEFOR1VMX1RCQVNFXzsKKworICAgICAgICAvLyByZXR1cm4gdGhlIGZpcnN0IENFLCBidXQgZmlyc3QgcHV0IHRoZSByZXN0IGludG8gdGhlIGV4cGFuc2lvbgorICAgICAgICAvLyBidWZmZXIKKyAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMDsKKyAgICAgICAgaWYgKCFjb2xsYXRvci5tX2lzSmFtb1NwZWNpYWxfKSB7IC8vIEZBU1QgUEFUSAorICAgICAgICAgICAgbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlclNpemVfICsrXSA9CisgICAgICAgICAgICAgICAgY29sbGF0b3IubV90cmllXy5nZXRMZWFkVmFsdWUoTCk7CisgICAgICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0KKyAgICAgICAgICAgICAgICBjb2xsYXRvci5tX3RyaWVfLmdldExlYWRWYWx1ZShWKTsKKworICAgICAgICAgICAgaWYgKFQgIT0gSEFOR1VMX1RCQVNFXykgeworICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gPQorICAgICAgICAgICAgICAgICAgICBjb2xsYXRvci5tX3RyaWVfLmdldExlYWRWYWx1ZShUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gMTsKKyAgICAgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1swXTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIEphbW8gaXMgU3BlY2lhbAorICAgICAgICAgICAgLy8gU2luY2UgSGFuZ3VscyBwYXNzIHRoZSBGQ0QgY2hlY2ssIGl0IGlzIGd1YXJhbnRlZWQgdGhhdCB3ZQorICAgICAgICAgICAgLy8gd29uJ3QgYmUgaW4gdGhlIG5vcm1hbGl6YXRpb24gYnVmZmVyIGlmIHNvbWV0aGluZyBsaWtlIHRoaXMKKyAgICAgICAgICAgIC8vIGhhcHBlbnMKKyAgICAgICAgICAgIC8vIE1vdmUgSmFtb3MgaW50byBub3JtYWxpemF0aW9uIGJ1ZmZlcgorICAgICAgICAgICAgbV9idWZmZXJfLmFwcGVuZCgoY2hhcilMKTsKKyAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoKGNoYXIpVik7CisgICAgICAgICAgICBpZiAoVCAhPSBIQU5HVUxfVEJBU0VfKSB7CisgICAgICAgICAgICAgICAgbV9idWZmZXJfLmFwcGVuZCgoY2hhcilUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fRkNETGltaXRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgICAgICBtX0ZDRFN0YXJ0XyA9IG1fRkNETGltaXRfIC0gMTsKKyAgICAgICAgICAgIC8vIEluZGljYXRlIHdoZXJlIHRvIGNvbnRpbnVlIGluIG1haW4gaW5wdXQgc3RyaW5nIGFmdGVyCisgICAgICAgICAgICAvLyBleGhhdXN0aW5nIHRoZSBidWZmZXIKKyAgICAgICAgICAgIHJldHVybiBJR05PUkFCTEU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TcGVjaWFsIENFIG1hbmFnZW1lbnQuIEV4cGFuc2lvbnMsIGNvbnRyYWN0aW9ucyBldGMuLi48L3A+CisgICAgICogQHBhcmFtIGNvbGxhdG9yIGNhbiBiZSBwbGFpbiBVQ0EKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEBwYXJhbSBjaCBjdXJyZW50IGNoYXJhY3RlcgorICAgICAqIEByZXR1cm4gbmV4dCBzcGVjaWFsIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV4dFNwZWNpYWwoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIGludCBjb2RlcG9pbnQgPSBjaDsKKyAgICAgICAgQmFja3VwIGVudHJ5YmFja3VwID0gbV91dGlsU3BlY2lhbEVudHJ5QmFja1VwXzsKKyAgICAgICAgLy8gdGhpcyBpcyB0byBoYW5kbGUgcmVjdXJzaXZlIGxvb3BpbmcKKyAgICAgICAgaWYgKGVudHJ5YmFja3VwICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1fdXRpbFNwZWNpYWxFbnRyeUJhY2tVcF8gPSBudWxsOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZW50cnliYWNrdXAgPSBuZXcgQmFja3VwKCk7CisgICAgICAgIH0KKyAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShlbnRyeWJhY2t1cCk7CisgICAgICAgIHRyeSB7IC8vIGZvcmNlcyBpdCB0byBhc3NpZ24gbV91dGlsU3BlY2lhbEVudHJ5QmFja3VwXworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGxvb3Agd2lsbCByZXBlYXQgb25seSBpbiB0aGUgY2FzZSBvZiBjb250cmFjdGlvbnMsCisgICAgICAgICAgICAgICAgLy8gc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgc3dpdGNoKFJ1bGVCYXNlZENvbGxhdG9yLmdldFRhZyhjZSkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIENFX05PVF9GT1VORF9UQUdfOgorICAgICAgICAgICAgICAgICAgICAvLyBpbXBvc3NpYmxlIGNhc2UgZm9yIGljdTRqCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjZTsKKyAgICAgICAgICAgICAgICBjYXNlIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NVUlJPR0FURV9UQUdfOgorICAgICAgICAgICAgICAgICAgICBpZiAoaXNFbmQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBiYWNrdXBJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgICAgICAgICAgICAgY2hhciB0cmFpbCA9IChjaGFyKW5leHRDaGFyKCk7CisgICAgICAgICAgICAgICAgICAgIGNlID0gbmV4dFN1cnJvZ2F0ZShjb2xsYXRvciwgY2UsIHRyYWlsKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIHRoZSBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHN1cnJvZ2F0ZSB3YXMgbm90IHRhaWxvcmVkIHdlIGdvIG9uZSBtb3JlIHJvdW5kCisgICAgICAgICAgICAgICAgICAgIGNvZGVwb2ludCA9CisgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShjaCwgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENFX1NQRUNfUFJPQ19UQUdfOgorICAgICAgICAgICAgICAgICAgICBjZSA9IG5leHRTcGVjaWFsUHJlZml4KGNvbGxhdG9yLCBjZSwgZW50cnliYWNrdXApOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENFX0NPTlRSQUNUSU9OX1RBR186CisgICAgICAgICAgICAgICAgICAgIGNlID0gbmV4dENvbnRyYWN0aW9uKGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfTE9OR19QUklNQVJZX1RBR186CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0TG9uZ1ByaW1hcnkoY2UpOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfRVhQQU5TSU9OX1RBR186CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0RXhwYW5zaW9uKGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICAgICAgY2FzZSBDRV9ESUdJVF9UQUdfOgorICAgICAgICAgICAgICAgICAgICBjZSA9IG5leHREaWdpdChjb2xsYXRvciwgY2UsIGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAvLyB2YXJpb3VzIGltcGxpY2l0cyBvcHRpbWl6YXRpb24KKyAgICAgICAgICAgICAgICBjYXNlIENFX0NKS19JTVBMSUNJVF9UQUdfOgorICAgICAgICAgICAgICAgICAgICAvLyAweDM0MDAtMHg0REI1LCAweDRFMDAtMHg5RkE1LCAweEY5MDAtMHhGQTJECisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0SW1wbGljaXQoY29kZXBvaW50KTsKKyAgICAgICAgICAgICAgICBjYXNlIENFX0lNUExJQ0lUX1RBR186IC8vIGV2ZXJ5dGhpbmcgdGhhdCBpcyBub3QgZGVmaW5lZAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dEltcGxpY2l0KGNvZGVwb2ludCk7CisgICAgICAgICAgICAgICAgY2FzZSBDRV9UUkFJTF9TVVJST0dBVEVfVEFHXzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsgLy8gREMwMC1ERkZGIGJyb2tlbiBzdXJyb2dhdGUKKyAgICAgICAgICAgICAgICBjYXNlIENFX0xFQURfU1VSUk9HQVRFX1RBR186ICAvLyBEODAwLURCRkYKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5leHRTdXJyb2dhdGUoY2gpOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfSEFOR1VMX1NZTExBQkxFX1RBR186IC8vIEFDMDAtRDdBRgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dEhhbmd1bChjb2xsYXRvciwgY2gpOworICAgICAgICAgICAgICAgIGNhc2UgQ0VfQ0hBUlNFVF9UQUdfOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90IHlldCBpbXBsZW1lbnRlZCBwcm9iYWJseSBhZnRlciAxLjgKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENFX05PVF9GT1VORF87CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgY2UgPSBJR05PUkFCTEU7CisgICAgICAgICAgICAgICAgICAgIC8vIHN5bndlZSB0b2RvLCB0aHJvdyBleGNlcHRpb24gb3Igc29tZXRoaW5nIGhlcmUuCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKGNlKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgbV91dGlsU3BlY2lhbEVudHJ5QmFja1VwXyA9IGVudHJ5YmFja3VwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsIHByb2Nlc3NpbmcgaXMgZ2V0dGluZyBhIENFIHRoYXQgaXMgcHJlY2VkZWQgYnkgYSBjZXJ0YWluIHByZWZpeC4KKyAgICAgKiBDdXJyZW50bHkgdGhpcyBpcyBvbmx5IG5lZWRlZCBmb3Igb3B0aW1pemluZyBKYXBhbmVzZSBsZW5ndGggYW5kCisgICAgICogaXRlcmF0aW9uIG1hcmtzLiBXaGVuIHdlIGVuY291dGVyIGEgc3BlY2lhbCBwcm9jZXNzaW5nIHRhZywgd2UgZ28KKyAgICAgKiBiYWNrd2FyZHMgYW5kIHRyeSB0byBzZWUgaWYgd2UgaGF2ZSBhIG1hdGNoLiBDb250cmFjdGlvbiB0YWJsZXMgYXJlIHVzZWQKKyAgICAgKiAtIHNvIHRoZSB3aG9sZSBwcm9jZXNzIGlzIG5vdCB1bmxpa2UgY29udHJhY3Rpb24uIHByZWZpeCBkYXRhIGlzIHN0b3JlZAorICAgICAqIGJhY2t3YXJkcyBpbiB0aGUgdGFibGUuCisgICAgICogQHBhcmFtIGNvbGxhdG9yIGN1cnJlbnQgY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjZQorICAgICAqIEByZXR1cm4gcHJldmlvdXMgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmV2aW91c1NwZWNpYWxQcmVmaXgoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSkKKyAgICB7CisgICAgICAgIGJhY2t1cEludGVybmFsU3RhdGUobV91dGlsU3BlY2lhbEJhY2tVcF8pOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgLy8gcG9zaXRpb24gb3Vyc2VsdmVzIGF0IHRoZSBiZWdpbmluZyBvZiBjb250cmFjdGlvbiBzZXF1ZW5jZQorICAgICAgICAgICAgaW50IG9mZnNldCA9IGdldENvbnRyYWN0aW9uT2Zmc2V0KGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICBpbnQgZW50cnlvZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyIHByZXZjaCA9IChjaGFyKXByZXZpb3VzQ2hhcigpOworICAgICAgICAgICAgd2hpbGUgKHByZXZjaCA+IGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSkgeworICAgICAgICAgICAgICAgIC8vIHNpbmNlIGNvbnRyYWN0aW9uIGNvZGVwb2ludHMgYXJlIG9yZGVyZWQsIHdlIHNraXAgYWxsIHRoYXQKKyAgICAgICAgICAgICAgICAvLyBhcmUgc21hbGxlcgorICAgICAgICAgICAgICAgIG9mZnNldCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwcmV2Y2ggPT0gY29sbGF0b3IubV9jb250cmFjdGlvbkluZGV4X1tvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIGNvbXBsZXRlbHkgaWdub3JhYmxlIGNvZGUgcG9pbnQgaW4gdGhlIG1pZGRsZQorICAgICAgICAgICAgICAgIC8vIG9mIGEgcHJlZml4LCB3ZSBuZWVkIHRvIGFjdCBhcyBpZiBpdCdzIG5vdCB0aGVyZSBhc3N1bXB0aW9uOgorICAgICAgICAgICAgICAgIC8vICdyZWFsJyBub25jaGFyYWN0ZXJzICgqZmZmZSwgKmZmZmYsIGZkZDAtZmRlZiBhcmUgc2V0IHRvCisgICAgICAgICAgICAgICAgLy8gemVybykKKyAgICAgICAgICAgICAgICAvLyBsb25lIHN1cnJvZ2F0ZXMgY2Fubm90IGJlIHNldCB0byB6ZXJvIGFzIGl0IHdvdWxkIGJyZWFrCisgICAgICAgICAgICAgICAgLy8gb3RoZXIgcHJvY2Vzc2luZworICAgICAgICAgICAgICAgIGludCBpc1plcm9DRSA9IGNvbGxhdG9yLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKHByZXZjaCk7CisgICAgICAgICAgICAgICAgLy8gaXQncyBlYXN5IGZvciBCTVAgY29kZSBwb2ludHMKKyAgICAgICAgICAgICAgICBpZiAoaXNaZXJvQ0UgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShwcmV2Y2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgfHwgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHByZXZjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMsIHdlIGhhdmUgdG8gY2hlY2sgdGhlIG5leHQgb25lCisgICAgICAgICAgICAgICAgICAgIC8vIHNpdHVhdGlvbnMgd2hlcmUgd2UgYXJlIGdvaW5nIHRvIGlnbm9yZQorICAgICAgICAgICAgICAgICAgICAvLyAxLiBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZzogc2NoYXIgaXMgYSBsb25lIHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAgICAgICAvLyAyLiBzY2hhciBpcyBhIGxvbmUgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgICAgIC8vIDMuIHNjaGFyIGlzIGEgdHJhaWwgc3Vycm9nYXRlIGluIGEgdmFsaWQgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgICAgIC8vICAgIHNlcXVlbmNlIHRoYXQgaXMgZXhwbGljaXRseSBzZXQgdG8gemVyby4KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0JhY2t3YXJkc1N0YXJ0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgbGVhZCA9IChjaGFyKXByZXZpb3VzQ2hhcigpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShsZWFkKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzWmVyb0NFID0gY29sbGF0b3IubV90cmllXy5nZXRMZWFkVmFsdWUobGVhZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmdldFRhZyhpc1plcm9DRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1VSUk9HQVRFX1RBR18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZpbmFsQ0UgPSBjb2xsYXRvci5tX3RyaWVfLmdldFRyYWlsVmFsdWUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNaZXJvQ0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbmFsQ0UgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBhIHJlYWwsIGFzc2lnbmVkIGNvbXBsZXRlbHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yYWJsZSBjb2RlIHBvaW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRDaGFyKCk7IC8vIHJldmVydCB0byBvcmlnaW5hbCBvZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb25lIHN1cnJvZ2F0ZSwgY29tcGxldGVseSBpZ25vcmFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHRDaGFyKCk7IC8vIHJldmVydCB0byBvcmlnaW5hbCBvZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb25lIHN1cnJvZ2F0ZSBhdCB0aGUgYmVnZ2luaW5nLCBjb21wbGV0ZWx5IGlnbm9yYWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gY2hhciB3YXMgbm90IGluIHRoZSB0YWJsZS4gcHJlZml4IG5vdCBmb3VuZAorICAgICAgICAgICAgICAgIGNlID0gY29sbGF0b3IubV9jb250cmFjdGlvbkNFX1tlbnRyeW9mZnNldF07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghaXNTcGVjaWFsUHJlZml4VGFnKGNlKSkgeworICAgICAgICAgICAgICAgIC8vIGNoYXIgd2FzIGluIHRoZSBjb250cmFjdGlvbiB0YWJsZSwgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGNlCisgICAgICAgICAgICAgICAgLy8gaXMgbm90IGEgcHJlZml4IGNlLiAgV2UgZm91bmQgdGhlIHByZWZpeCwgYnJlYWsgb3V0IG9mIGxvb3AsCisgICAgICAgICAgICAgICAgLy8gdGhpcyBjZSB3aWxsIGVuZCB1cCBiZWluZyByZXR1cm5lZC4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgcmV0dXJuIGNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB0aGUgcHJldmlvdXMgY29udHJhY3Rpb24gY2UuIFRvIGVuc3VyZSB0aGF0IHRoZSBiYWNrd2FyZHMgYW5kCisgICAgICogZm9yd2FyZHMgaXRlcmF0aW9uIG1hdGNoZXMsIHdlIHRha2UgdGhlIGN1cnJlbnQgcmVnaW9uIG9mIG1vc3QgcG9zc2libGUKKyAgICAgKiBtYXRjaCBhbmQgcGFzcyBpdCB0aHJvdWdoIHRoZSBmb3J3YXJkIGl0ZXJhdGlvbi4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0CisgICAgICogdGhlIG9ic3RpbmF0ZSBwcm9ibGVtIG9mIG92ZXJsYXBwaW5nIGNvbnRyYWN0aW9ucyB3aWxsIG5vdCBvY2N1ci4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY3VycmVudCBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBwcmV2aW91cyBjb250cmFjdGlvbiBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IHByZXZpb3VzQ29udHJhY3Rpb24oUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIGludCBjZSwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uc2V0TGVuZ3RoKDApOworICAgICAgICAvLyBzaW5jZSB3ZSBtaWdodCBlbmNvdW50ZXIgbm9ybWFsaXplZCBjaGFyYWN0ZXJzIChmcm9tIHRoZSB0aGFpCisgICAgICAgIC8vIHByb2Nlc3NpbmcpIHdlIGNhbid0IHVzZSBwZWVrQ2hhcmFjdGVyKCkgaGVyZS4KKyAgICAgICAgY2hhciBwcmV2Y2ggPSAoY2hhcilwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgYm9vbGVhbiBhdFN0YXJ0ID0gZmFsc2U7CisgICAgICAgIC8vIFRPRE86IGFkZHJlc3MgdGhlIGNvbW1lbnQgYWJvdmUgLSBtYXliZSBub3cgd2UgKmNhbiogdXNlIHBlZWtDaGFyYWN0ZXIKKyAgICAgICAgLy93aGlsZSAoY29sbGF0b3IuaXNVbnNhZmUoY2gpIHx8IGlzVGhhaVByZVZvd2VsKHByZXZjaCkpIHsKKyAgICAgICAgd2hpbGUgKGNvbGxhdG9yLmlzVW5zYWZlKGNoKSkgeworICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5pbnNlcnQoMCwgY2gpOworICAgICAgICAgICAgY2ggPSBwcmV2Y2g7CisgICAgICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAgICAgYXRTdGFydCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmV2Y2ggPSAoY2hhcilwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWF0U3RhcnQpIHsKKyAgICAgICAgICAgIC8vIHVuZG8gdGhlIHByZXZpb3VzQ2hhcigpIGlmIHdlIGRpZG4ndCByZWFjaCB0aGUgYmVnaW5uaW5nIAorICAgICAgICAgICAgbmV4dENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBhZGRzIHRoZSBpbml0aWFsIGJhc2UgY2hhcmFjdGVyIHRvIHRoZSBzdHJpbmcKKyAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5pbnNlcnQoMCwgY2gpOworCisgICAgICAgIC8vIGEgbmV3IGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIGlzIHVzZWQgdG8gc2ltcGx5IHRoaW5ncywgc2luY2UKKyAgICAgICAgLy8gdXNpbmcgdGhlIGN1cnJlbnQgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3Igd2lsbCBtZWFuIHRoYXQgdGhlCisgICAgICAgIC8vIGZvcndhcmQgYW5kIGJhY2t3YXJkcyBpdGVyYXRpb24gd2lsbCBzaGFyZSBhbmQgY2hhbmdlIHRoZSBzYW1lCisgICAgICAgIC8vIGJ1ZmZlcnMuIGl0IGlzIGdvaW5nIHRvIGJlIHBhaW5mdWwuCisgICAgICAgIGludCBvcmlnaW5hbGRlY29tcCA9IGNvbGxhdG9yLmdldERlY29tcG9zaXRpb24oKTsKKyAgICAgICAgLy8gZm9yIGZhc3RlciBhY2Nlc3MsIHNpbmNlIHN0cmluZyB3b3VsZCBoYXZlIGJlZW4gbm9ybWFsaXplZCBhYm92ZQorICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT04pOworICAgICAgICBpZiAobV91dGlsQ29sRUl0ZXJfID09IG51bGwpIHsKKyAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXyA9IG5ldyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsYXRvcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX3V0aWxDb2xFSXRlcl8ubV9jb2xsYXRvcl8gPSBjb2xsYXRvcjsKKyAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRUZXh0KG1fdXRpbFN0cmluZ0J1ZmZlcl8udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgY2UgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICB3aGlsZSAoY2UgIT0gTlVMTE9SREVSKSB7CisgICAgICAgICAgICBpZiAobV9DRUJ1ZmZlclNpemVfID09IG1fQ0VCdWZmZXJfLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGluY3JlYXNpbmcgY2VidWZmZXIgc2l6ZQorICAgICAgICAgICAgICAgICAgICBpbnQgdGVtcGJ1ZmZlcltdID0gbmV3IGludFttX0NFQnVmZmVyXy5sZW5ndGggKyA1MF07CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV9DRUJ1ZmZlcl8sIDAsIHRlbXBidWZmZXIsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9DRUJ1ZmZlcl8ubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgbV9DRUJ1ZmZlcl8gPSB0ZW1wYnVmZmVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCggTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoREVCVUcpeworICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTE9SREVSOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gPSBjZTsKKyAgICAgICAgICAgIGNlID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKG9yaWdpbmFsZGVjb21wKTsKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSBtX0NFQnVmZmVyU2l6ZV8gLSAxOworICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF9dOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHByZXZpb3VzIGxvbmcgcHJpbWFyeSBjZXMKKyAgICAgKiBAcGFyYW0gY2UgbG9uZyBwcmltYXJ5IGNlCisgICAgICogQHJldHVybiBwcmV2aW91cyBsb25nIHByaW1hcnkgY2VzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNMb25nUHJpbWFyeShpbnQgY2UpCisgICAgeworICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0KKyAgICAgICAgICAgICgoY2UgJiAweEZGRkYwMCkgPDwgOCkgfCAoQ0VfQllURV9DT01NT05fIDw8IDgpIHwgQ0VfQllURV9DT01NT05fOworICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0gKChjZSAmIDB4RkYpIDw8IDI0KQorICAgICAgICAgICAgfCBSdWxlQmFzZWRDb2xsYXRvci5DRV9DT05USU5VQVRJT05fTUFSS0VSXzsKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSBtX0NFQnVmZmVyU2l6ZV8gLSAxOworICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF9dOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHByZXZpb3VzIGV4cGFuc2lvbiBjZXMKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY3VycmVudCBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHJldHVybiBwcmV2aW91cyBleHBhbnNpb24gY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmV2aW91c0V4cGFuc2lvbihSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlKQorICAgIHsKKyAgICAgICAgLy8gZmluZCB0aGUgb2Zmc2V0IHRvIGV4cGFuc2lvbiB0YWJsZQorICAgICAgICBpbnQgb2Zmc2V0ID0gZ2V0RXhwYW5zaW9uT2Zmc2V0KGNvbGxhdG9yLCBjZSk7CisgICAgICAgIG1fQ0VCdWZmZXJTaXplXyA9IGdldEV4cGFuc2lvbkNvdW50KGNlKTsKKyAgICAgICAgaWYgKG1fQ0VCdWZmZXJTaXplXyAhPSAwKSB7CisgICAgICAgICAgICAvLyBsZXNzIHRoYW4gMTYgZWxlbWVudHMgaW4gZXhwYW5zaW9uCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fQ0VCdWZmZXJTaXplXzsgaSArKykgeworICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW2ldID0gY29sbGF0b3IubV9leHBhbnNpb25fW29mZnNldCArIGldOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBudWxsIHRlcm1pbmF0ZWQgY2VzCisgICAgICAgICAgICB3aGlsZSAoY29sbGF0b3IubV9leHBhbnNpb25fW29mZnNldCArIG1fQ0VCdWZmZXJTaXplX10gIT0gMCkgeworICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplX10gPQorICAgICAgICAgICAgICAgICAgICBjb2xsYXRvci5tX2V4cGFuc2lvbl9bb2Zmc2V0ICsgbV9DRUJ1ZmZlclNpemVfXTsKKyAgICAgICAgICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSBtX0NFQnVmZmVyU2l6ZV8gLSAxOworICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF9dOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXR0aW5nIHRoZSBkaWdpdCBjb2xsYXRpb24gZWxlbWVudHMKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gY2UgY3VycmVudCBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEBwYXJhbSBjaCBjdXJyZW50IGNvZGUgcG9pbnQKKyAgICAgKiBAcmV0dXJuIGRpZ2l0IGNvbGxhdGlvbiBlbGVtZW50CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNEaWdpdChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgaW50IGNlLCBjaGFyIGNoKQorICAgIHsKKyAgICAgICAgLy8gV2UgZG8gYSBjaGVjayB0byBzZWUgaWYgd2Ugd2FudCB0byBjb2xsYXRlIGRpZ2l0cyBhcyBudW1iZXJzOyBpZiBzbyB3ZSBnZW5lcmF0ZQorICAgICAgICAvLyAgYSBjdXN0b20gY29sbGF0aW9uIGtleS4gT3RoZXJ3aXNlIHdlIHB1bGwgb3V0IHRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhlIGV4cGFuc2lvbiB0YWJsZS4KKyAgICAgICAgaWYgKG1fY29sbGF0b3JfLm1faXNOdW1lcmljQ29sbGF0aW9uXyl7CisgICAgICAgICAgICBpbnQgbGVhZGluZ1plcm9JbmRleCA9IDA7CisgICAgICAgICAgICBpbnQgY29sbGF0ZVZhbCA9IDA7CisgICAgICAgICAgICBib29sZWFuIG5vblplcm9WYWxSZWFjaGVkID0gZmFsc2U7CisKKyAgICAgICAgICAgIC8vIGNsZWFyIGFuZCBzZXQgaW5pdGlhbCBzdHJpbmcgYnVmZmVyIGxlbmd0aAorICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5zZXRMZW5ndGgoMyk7CisgICAgICAgIAorICAgICAgICAgICAgLy8gV2UgcGFyc2UgdGhlIHNvdXJjZSBzdHJpbmcgdW50aWwgd2UgaGl0IGEgY2hhciB0aGF0J3MgTk9UIGEgZGlnaXQKKyAgICAgICAgICAgIC8vIFVzZSB0aGlzIHVfY2hhckRpZ2l0VmFsdWUuIFRoaXMgbWlnaHQgYmUgc2xvdyBiZWNhdXNlIHdlIGhhdmUgdG8gCisgICAgICAgICAgICAvLyBoYW5kbGUgc3Vycm9nYXRlcy4uLgorICAgICAgICAgICAgaW50IGNoYXIzMiA9IGNoOworICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpc0JhY2t3YXJkc1N0YXJ0KCkpeworICAgICAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSAoY2hhcilwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShsZWFkKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hhcjMyID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkobGVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBnb0ZvcndhcmRPbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBpbnQgZGlnVmFsID0gVUNoYXJhY3Rlci5kaWdpdChjaGFyMzIpOworICAgICAgICAgICAgaW50IGRpZ0luZHggPSAwOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBzcGFjZS4KKyAgICAgICAgICAgICAgICBpZiAoZGlnSW5keCA+PSAoKG1fdXRpbFN0cmluZ0J1ZmZlcl8ubGVuZ3RoKCkgLSAyKSA8PCAxKSkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldExlbmd0aChtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gU2tpcHBpbmcgb3ZlciAidHJhaWxpbmciIHplcm9lcyBidXQgd2Ugc3RpbGwgYWRkIHRvIGRpZ0luZHguCisgICAgICAgICAgICAgICAgaWYgKGRpZ1ZhbCAhPSAwIHx8IG5vblplcm9WYWxSZWFjaGVkKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkaWdWYWwgIT0gMCAmJiAhbm9uWmVyb1ZhbFJlYWNoZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vblplcm9WYWxSZWFjaGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBXZSBwYXJzZSB0aGUgZGlnaXQgc3RyaW5nIGludG8gYmFzZSAxMDAgbnVtYmVycyAodGhpcyAKKyAgICAgICAgICAgICAgICAgICAgLy8gZml0cyBpbnRvIGEgYnl0ZSkuCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIG9ubHkgYWRkIHRvIHRoZSBidWZmZXIgaW4gdHdvcywgdGh1cyBpZiB3ZSBhcmUgCisgICAgICAgICAgICAgICAgICAgIC8vIHBhcnNpbmcgYW4gb2RkIGNoYXJhY3RlciwgdGhhdCBzZXJ2ZXMgYXMgdGhlICd0ZW5zJyAKKyAgICAgICAgICAgICAgICAgICAgLy8gZGlnaXQgd2hpbGUgdGhlIGlmIHdlIGFyZSBwYXJzaW5nIGFuIGV2ZW4gb25lLCB0aGF0IGlzIAorICAgICAgICAgICAgICAgICAgICAvLyB0aGUgJ29uZXMnIGRpZ2l0LiBXZSBkdW1wZWQgdGhlIHBhcnNlZCBiYXNlIDEwMCB2YWx1ZSAKKyAgICAgICAgICAgICAgICAgICAgLy8gKGNvbGxhdGVWYWwpIGludG8gYSBidWZmZXIuIFdlIG11bHRpcGx5IGVhY2ggY29sbGF0ZVZhbCAKKyAgICAgICAgICAgICAgICAgICAgLy8gYnkgMiAodG8gZ2l2ZSB1cyByb29tKSBhbmQgYWRkIDUgKHRvIGF2b2lkIG92ZXJsYXBwaW5nIAorICAgICAgICAgICAgICAgICAgICAvLyBtYWdpYyBDRSBieXRlIHZhbHVlcykuIFRoZSBsYXN0IGJ5dGUgd2Ugc3VidHJhY3QgMSB0byAKKyAgICAgICAgICAgICAgICAgICAgLy8gZW5zdXJlIGl0IGlzIGxlc3MgdGhhbiBhbGwgdGhlIG90aGVyIGJ5dGVzLiAKKyAgICAgICAgICAgICAgICAgICAgLy8gU2luY2Ugd2UncmUgZG9pbmcgaW4gdGhpcyByZXZlcnNlIHdlIHdhbnQgdG8gcHV0IHRoZSAKKyAgICAgICAgICAgICAgICAgICAgLy8gZmlyc3QgZGlnaXQgZW5jb3VudGVyZWQgaW50byB0aGUgb25lcyBwbGFjZSBhbmQgdGhlIAorICAgICAgICAgICAgICAgICAgICAvLyBzZWNvbmQgZGlnaXQgZW5jb3VudGVyZWQgaW50byB0aGUgdGVucyBwbGFjZS4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ0luZHggJSAyID09IDEpeworICAgICAgICAgICAgICAgICAgICAgICAgY29sbGF0ZVZhbCArPSBkaWdWYWwgKiAxMDsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHJlbW92ZXMgbGVhZGluZyB6ZXJvZXMuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sbGF0ZVZhbCA9PSAwICYmIGxlYWRpbmdaZXJvSW5kZXggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhZGluZ1plcm9JbmRleCA9ICgoZGlnSW5keCAtIDEpID4+PiAxKSArIDI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChsZWFkaW5nWmVyb0luZGV4ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWFkaW5nWmVyb0luZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgoKGRpZ0luZHggLSAxKSA+Pj4gMSkgKyAyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSgoY29sbGF0ZVZhbCA8PCAxKSArIDYpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhdGVWYWwgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgY29sbGF0ZVZhbCA9IGRpZ1ZhbDsgICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGlnSW5keCArKzsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghaXNCYWNrd2FyZHNTdGFydCgpKXsKKyAgICAgICAgICAgICAgICAgICAgYmFja3VwSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgICAgIGNoYXIzMiA9IHByZXZpb3VzQ2hhcigpOworICAgICAgICAgICAgICAgICAgICBjaCA9IChjaGFyKWNoOworICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0JhY2t3YXJkc1N0YXJ0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSAoY2hhcilwcmV2aW91c0NoYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGxlYWQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIzMiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWQsIGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKG1fdXRpbFNwZWNpYWxCYWNrVXBfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGRpZ1ZhbCA9IFVDaGFyYWN0ZXIuZGlnaXQoY2hhcjMyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRpZ1ZhbCA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZShtX3V0aWxTcGVjaWFsQmFja1VwXyk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobm9uWmVyb1ZhbFJlYWNoZWQgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICBkaWdJbmR4ID0gMjsKKyAgICAgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgyLCAoY2hhcik2KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGRpZ0luZHggJSAyICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoY29sbGF0ZVZhbCA9PSAwICYmIGxlYWRpbmdaZXJvSW5kZXggPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHJlbW92ZXMgdGhlIGxlYWRpbmcgMCBpbiBhIG9kZCBudW1iZXIgc2VxdWVuY2Ugb2YgCisgICAgICAgICAgICAgICAgICAgIC8vIG51bWJlcnMgZS5nLiBhdmVyeTAwMQorICAgICAgICAgICAgICAgICAgICBsZWFkaW5nWmVyb0luZGV4ID0gKChkaWdJbmR4IC0gMSkgPj4+IDEpICsgMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgbm90IGEgbGVhZGluZyAwLCB3ZSBhZGQgaXQgaW4KKyAgICAgICAgICAgICAgICAgICAgbV91dGlsU3RyaW5nQnVmZmVyXy5zZXRDaGFyQXQoKGRpZ0luZHggPj4+IDEpICsgMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSgoY29sbGF0ZVZhbCA8PCAxKSArIDYpKTsKKyAgICAgICAgICAgICAgICAgICAgZGlnSW5keCArKzsgCisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgZW5kSW5kZXggPSBsZWFkaW5nWmVyb0luZGV4ICE9IDAgPyBsZWFkaW5nWmVyb0luZGV4IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoZGlnSW5keCA+Pj4gMSkgKyAyKSA7ICAKKyAgICAgICAgICAgIGRpZ0luZHggPSAoKGVuZEluZGV4IC0gMikgPDwgMSkgKyAxOyAvLyByZW1vdmluZyBpbml0aWFsIHplcm9zICAgICAgICAgCisgICAgICAgICAgICAvLyBTdWJ0cmFjdCBvbmUgb2ZmIG9mIHRoZSBsYXN0IGJ5dGUuIAorICAgICAgICAgICAgLy8gUmVhbGx5IHRoZSBmaXJzdCBieXRlIGhlcmUsIGJ1dCBpdCdzIHJldmVyc2VkLi4uCisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShtX3V0aWxTdHJpbmdCdWZmZXJfLmNoYXJBdCgyKSAtIDEpKTsgICAgICAgICAgCisgICAgICAgICAgICAvLyBXZSB3YW50IHRvIHNraXAgb3ZlciB0aGUgZmlyc3QgdHdvIHNsb3RzIGluIHRoZSBidWZmZXIuIAorICAgICAgICAgICAgLy8gVGhlIGZpcnN0IHNsb3QgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBoZWFkZXIgYnl0ZSBDT0RBTl9QTEFDRUhPTERFUi4gCisgICAgICAgICAgICAvLyBUaGUgc2Vjb25kIHNsb3QgaXMgZm9yIHRoZSBzaWduL2V4cG9uZW50IGJ5dGU6IAorICAgICAgICAgICAgLy8gMHg4MCArIChkZWNpbWFsUG9zLzIpICYgN2YuCisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgwLCAoY2hhcilSdWxlQmFzZWRDb2xsYXRvci5DT0RBTl9QTEFDRUhPTERFUik7CisgICAgICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLnNldENoYXJBdCgxLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKSgweDgwICsgKChkaWdJbmR4ID4+PiAxKSAmIDB4N0YpKSk7CisgICAgICAgIAorICAgICAgICAgICAgLy8gTm93IHRyYW5zZmVyIHRoZSBjb2xsYXRpb24ga2V5IHRvIG91ciBjb2xsSXRlcmF0ZSBzdHJ1Y3QuCisgICAgICAgICAgICAvLyBUaGUgdG90YWwgc2l6ZSBmb3Igb3VyIGNvbGxhdGlvbiBrZXkgaXMgZW5kSW5keCBidW1wZWQgdXAgdG8gdGhlIAorICAgICAgICAgICAgLy8gbmV4dCBsYXJnZXN0IGV2ZW4gdmFsdWUgZGl2aWRlZCBieSB0d28uCisgICAgICAgICAgICBtX0NFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICAgICAgbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlclNpemVfICsrXSAKKyAgICAgICAgICAgICAgICAgICAgICAgID0gKCgobV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoMCkgPDwgOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQcmltYXJ5IHdlaWdodCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fdXRpbFN0cmluZ0J1ZmZlcl8uY2hhckF0KDEpKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfU0hJRlRfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlY29uZGFyeSB3ZWlnaHQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoUnVsZUJhc2VkQ29sbGF0b3IuQllURV9DT01NT05fIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NFQ09OREFSWV9TSElGVF8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGVydGlhcnkgd2VpZ2h0LiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfQ09NTU9OXzsgCisgICAgICAgICAgICAgaW50IGkgPSBlbmRJbmRleCAtIDE7IC8vIFJlc2V0IHRoZSBpbmRleCBpbnRvIHRoZSBidWZmZXIuCisgICAgICAgICAgICAgd2hpbGUgKGkgPj0gMikgeworICAgICAgICAgICAgICAgIGludCBwcmltV2VpZ2h0ID0gbV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoaSAtLSkgPDwgODsKKyAgICAgICAgICAgICAgICBpZiAoaSA+PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW1XZWlnaHQgfD0gbV91dGlsU3RyaW5nQnVmZmVyXy5jaGFyQXQoaSAtLSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gCisgICAgICAgICAgICAgICAgICAgID0gKHByaW1XZWlnaHQgPDwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9TSElGVF8pIAorICAgICAgICAgICAgICAgICAgICAgIHwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfQ09OVElOVUFUSU9OX01BUktFUl87CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gbV9DRUJ1ZmZlclNpemVfIC0gMTsKKyAgICAgICAgICAgICByZXR1cm4gbV9DRUJ1ZmZlcl9bbV9DRUJ1ZmZlck9mZnNldF9dOworICAgICAgICAgfQorICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgcmV0dXJuIGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tnZXRFeHBhbnNpb25PZmZzZXQoY29sbGF0b3IsIGNlKV07CisgICAgICAgICB9CisgICAgfSAKKworICAgIC8qKgorICAgICAqIFJldHVybnMgcHJldmlvdXMgaGFuZ3VsIGNlcworICAgICAqIEBwYXJhbSBjb2xsYXRvciBjdXJyZW50IGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBwcmV2aW91cyBoYW5ndWwgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmV2aW91c0hhbmd1bChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciwgY2hhciBjaCkKKyAgICB7CisgICAgICAgIGNoYXIgTCA9IChjaGFyKShjaCAtIEhBTkdVTF9TQkFTRV8pOworICAgICAgICAvLyB3ZSBkbyBpdCBpbiB0aGlzIG9yZGVyIHNpbmNlIHNvbWUgY29tcGlsZXJzIGNhbiBkbyAlIGFuZCAvIGluIG9uZQorICAgICAgICAvLyBvcGVyYXRpb24KKyAgICAgICAgY2hhciBUID0gKGNoYXIpKEwgJSBIQU5HVUxfVENPVU5UXyk7CisgICAgICAgIEwgLz0gSEFOR1VMX1RDT1VOVF87CisgICAgICAgIGNoYXIgViA9IChjaGFyKShMICUgSEFOR1VMX1ZDT1VOVF8pOworICAgICAgICBMIC89IEhBTkdVTF9WQ09VTlRfOworCisgICAgICAgIC8vIG9mZnNldCB0aGVtCisgICAgICAgIEwgKz0gSEFOR1VMX0xCQVNFXzsKKyAgICAgICAgViArPSBIQU5HVUxfVkJBU0VfOworICAgICAgICBUICs9IEhBTkdVTF9UQkFTRV87CisKKyAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMDsKKyAgICAgICAgaWYgKCFjb2xsYXRvci5tX2lzSmFtb1NwZWNpYWxfKSB7CisgICAgICAgICAgICBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyU2l6ZV8gKytdID0KKyAgICAgICAgICAgICAgICBjb2xsYXRvci5tX3RyaWVfLmdldExlYWRWYWx1ZShMKTsKKyAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gPQorICAgICAgICAgICAgICAgIGNvbGxhdG9yLm1fdHJpZV8uZ2V0TGVhZFZhbHVlKFYpOworICAgICAgICAgICAgaWYgKFQgIT0gSEFOR1VMX1RCQVNFXykgeworICAgICAgICAgICAgICAgIG1fQ0VCdWZmZXJfW21fQ0VCdWZmZXJTaXplXyArK10gPQorICAgICAgICAgICAgICAgICAgICBjb2xsYXRvci5tX3RyaWVfLmdldExlYWRWYWx1ZShUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fQ0VCdWZmZXJPZmZzZXRfID0gbV9DRUJ1ZmZlclNpemVfIC0gMTsKKyAgICAgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1ttX0NFQnVmZmVyT2Zmc2V0X107CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBTaW5jZSBIYW5ndWxzIHBhc3MgdGhlIEZDRCBjaGVjaywgaXQgaXMgZ3VhcmFudGVlZCB0aGF0IHdlIHdvbid0CisgICAgICAgICAgICAvLyBiZSBpbiB0aGUgbm9ybWFsaXphdGlvbiBidWZmZXIgaWYgc29tZXRoaW5nIGxpa2UgdGhpcyBoYXBwZW5zCisgICAgICAgICAgICAvLyBNb3ZlIEphbW9zIGludG8gbm9ybWFsaXphdGlvbiBidWZmZXIKKyAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoTCk7CisgICAgICAgICAgICBtX2J1ZmZlcl8uYXBwZW5kKFYpOworICAgICAgICAgICAgaWYgKFQgIT0gSEFOR1VMX1RCQVNFXykgeworICAgICAgICAgICAgICAgIG1fYnVmZmVyXy5hcHBlbmQoVCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1fRkNEU3RhcnRfID0gbV9zb3VyY2VfLmdldEluZGV4KCk7CisgICAgICAgICAgICBtX0ZDRExpbWl0XyA9IG1fRkNEU3RhcnRfICsgMTsKKyAgICAgICAgICAgIHJldHVybiBJR05PUkFCTEU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGltcGxpY2l0IGNvZGVwb2ludCBjZXMKKyAgICAgKiBAcGFyYW0gY29kZXBvaW50IGN1cnJlbnQgY29kZXBvaW50CisgICAgICogQHJldHVybiBpbXBsaWNpdCBjb2RlcG9pbnQgY2VzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNJbXBsaWNpdChpbnQgY29kZXBvaW50KQorICAgIHsKKyAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzTGVnYWwoY29kZXBvaW50KSkgeworICAgICAgICAgICAgcmV0dXJuIElHTk9SQUJMRTsgLy8gaWxsZWdhbCBjb2RlIHZhbHVlLCBjb21wbGV0ZWx5IGlnbm9yZWFibGUhCisgICAgICAgIH0KKyAgICAgICAgaW50IHJlc3VsdCA9IFJ1bGVCYXNlZENvbGxhdG9yLmltcENFR2VuXy5nZXRJbXBsaWNpdEZyb21Db2RlUG9pbnQoY29kZXBvaW50KTsKKyAgICAgICAgbV9DRUJ1ZmZlclNpemVfID0gMjsKKyAgICAgICAgbV9DRUJ1ZmZlck9mZnNldF8gPSAxOworICAgICAgICBtX0NFQnVmZmVyX1swXSA9IChyZXN1bHQgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfKQorICAgICAgICAgICAgICAgICAgICAgICAgIHwgMHgwMDAwMDUwNTsKKyAgICAgICAgbV9DRUJ1ZmZlcl9bMV0gPSAoKHJlc3VsdCAmIDB4MDAwMEZGRkYpIDw8IDE2KSB8IDB4MDAwMDAwQzA7CisgICAgICAgIHJldHVybiBtX0NFQnVmZmVyX1sxXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBwcmV2aW91cyBzdXJyb2dhdGUgY2UKKyAgICAgKiBAcGFyYW0gY2ggY3VycmVudCBjaGFyYWN0ZXIKKyAgICAgKiBAcmV0dXJuIHByZXZpb3VzIHN1cnJvZ2F0ZSBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IHByZXZpb3VzU3Vycm9nYXRlKGNoYXIgY2gpCisgICAgeworICAgICAgICBpZiAoaXNCYWNrd2FyZHNTdGFydCgpKSB7CisgICAgICAgICAgICAvLyB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBzdHJpbmcsIHdyb25nIHBsYWNlIHRvIGJlIGF0CisgICAgICAgICAgICByZXR1cm4gSUdOT1JBQkxFOworICAgICAgICB9CisgICAgICAgIGNoYXIgcHJldmNoID0gKGNoYXIpcHJldmlvdXNDaGFyKCk7CisgICAgICAgIC8vIEhhbmRsZXMgSGFuIGFuZCBTdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgaGVyZS4KKyAgICAgICAgaWYgKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShwcmV2Y2gpKSB7CisgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNJbXBsaWNpdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkocHJldmNoLCBjaCkpOworICAgICAgICB9CisgICAgICAgIGlmIChwcmV2Y2ggIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgbmV4dENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSUdOT1JBQkxFOyAvLyBjb21wbGV0ZWx5IGlnbm9yYWJsZQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNwZWNpYWwgQ0UgbWFuYWdlbWVudC4gRXhwYW5zaW9ucywgY29udHJhY3Rpb25zIGV0Yy4uLjwvcD4KKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgY2FuIGJlIHBsYWluIFVDQQorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHBhcmFtIGNoIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiBwcmV2aW91cyBzcGVjaWFsIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJldmlvdXNTcGVjaWFsKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBpbnQgY2UsIGNoYXIgY2gpCisgICAgeworICAgICAgICB3aGlsZSh0cnVlKSB7CisgICAgICAgICAgICAvLyB0aGUgb25seSBjZXMgdGhhdCBsb29wcyBhcmUgdGhhaSwgc3BlY2lhbCBwcmVmaXggYW5kCisgICAgICAgICAgICAvLyBjb250cmFjdGlvbnMKKyAgICAgICAgICAgIHN3aXRjaCAoUnVsZUJhc2VkQ29sbGF0b3IuZ2V0VGFnKGNlKSkgeworICAgICAgICAgICAgY2FzZSBDRV9OT1RfRk9VTkRfVEFHXzogIC8vIHRoaXMgdGFnIGFsd2F5cyByZXR1cm5zCisgICAgICAgICAgICAgICAgcmV0dXJuIGNlOworICAgICAgICAgICAgY2FzZSBSdWxlQmFzZWRDb2xsYXRvci5DRV9TVVJST0dBVEVfVEFHXzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNzZW50aWFseSBhIGRpc2VuZ2FnZWQgbGVhZCBzdXJyb2dhdGUuIGEgYnJva2VuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlcXVlbmNlIHdhcyBlbmNvdW50ZXJlZCBhbmQgdGhpcyBpcyBhbiBlcnJvcgorICAgICAgICAgICAgICAgIHJldHVybiBJR05PUkFCTEU7CisgICAgICAgICAgICBjYXNlIENFX1NQRUNfUFJPQ19UQUdfOgorICAgICAgICAgICAgICAgIGNlID0gcHJldmlvdXNTcGVjaWFsUHJlZml4KGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENFX0NPTlRSQUNUSU9OX1RBR186CisgICAgICAgICAgICAgICAgLy8gbWF5IGxvb3AgZm9yIGZpcnN0IGNoYXJhY3RlciBlLmcuICIweDBmNzEiIGZvciBlbmdsaXNoCisgICAgICAgICAgICAgICAgaWYgKGlzQmFja3dhcmRzU3RhcnQoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBzdGFydCBvZiBzdHJpbmcgb3IgdGhpcyBpcyBub3QgdGhlIGVuZCBvZiBhbnkgY29udHJhY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgY2UgPSBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDb250cmFjdGlvbk9mZnNldChjb2xsYXRvciwgY2UpXTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0NvbnRyYWN0aW9uKGNvbGxhdG9yLCBjZSwgY2gpOyAvLyBlbHNlCisgICAgICAgICAgICBjYXNlIENFX0xPTkdfUFJJTUFSWV9UQUdfOgorICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0xvbmdQcmltYXJ5KGNlKTsKKyAgICAgICAgICAgIGNhc2UgQ0VfRVhQQU5TSU9OX1RBR186IC8vIGFsd2F5cyByZXR1cm5zCisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzRXhwYW5zaW9uKGNvbGxhdG9yLCBjZSk7CisgICAgICAgICAgICBjYXNlIENFX0RJR0lUX1RBR186CisgICAgICAgICAgICAgICAgY2UgPSBwcmV2aW91c0RpZ2l0KGNvbGxhdG9yLCBjZSwgY2gpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDRV9IQU5HVUxfU1lMTEFCTEVfVEFHXzogLy8gQUMwMC1EN0FGCisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzSGFuZ3VsKGNvbGxhdG9yLCBjaCk7CisgICAgICAgICAgICBjYXNlIENFX0xFQURfU1VSUk9HQVRFX1RBR186ICAvLyBEODAwLURCRkYKKyAgICAgICAgICAgICAgICByZXR1cm4gSUdOT1JBQkxFOyAvLyBicm9rZW4gc3Vycm9nYXRlIHNlcXVlbmNlCisgICAgICAgICAgICBjYXNlIENFX1RSQUlMX1NVUlJPR0FURV9UQUdfOiAvLyBEQzAwLURGRkYKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNTdXJyb2dhdGUoY2gpOworICAgICAgICAgICAgY2FzZSBDRV9DSktfSU1QTElDSVRfVEFHXzoKKyAgICAgICAgICAgICAgICAvLyAweDM0MDAtMHg0REI1LCAweDRFMDAtMHg5RkE1LCAweEY5MDAtMHhGQTJECisgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzSW1wbGljaXQoY2gpOworICAgICAgICAgICAgY2FzZSBDRV9JTVBMSUNJVF9UQUdfOiAvLyBldmVyeXRoaW5nIHRoYXQgaXMgbm90IGRlZmluZWQKKyAgICAgICAgICAgICAgICAvLyBVQ0EgaXMgZmlsbGVkIHdpdGggdGhlc2UuIFRhaWxvcmluZ3MgYXJlIE5PVF9GT1VORAorICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c0ltcGxpY2l0KGNoKTsKKyAgICAgICAgICAgIGNhc2UgQ0VfQ0hBUlNFVF9UQUdfOiAvLyB0aGlzIHRhZyBhbHdheXMgcmV0dXJucworICAgICAgICAgICAgICAgIHJldHVybiBDRV9OT1RfRk9VTkRfOworICAgICAgICAgICAgZGVmYXVsdDogLy8gdGhpcyB0YWcgYWx3YXlzIHJldHVybnMKKyAgICAgICAgICAgICAgICBjZSA9IElHTk9SQUJMRTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghUnVsZUJhc2VkQ29sbGF0b3IuaXNTcGVjaWFsKGNlKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHRVQgSU1QTElDSVQgUFJJTUFSWSBXRUlHSFRTCisgICAgICogQHBhcmFtIGNwIGNvZGVwb2ludAorICAgICAqIEBwYXJhbSB2YWx1ZSBpcyBsZWZ0IGp1c3RpZmllZCBwcmltYXJ5IGtleQorICAgICAqLworLy8gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldEltcGxpY2l0UHJpbWFyeShpbnQgY3ApCisvLyAgICB7CisvLyAgICAgICAgY3AgPSBzd2FwQ0pLKGNwKTsKKy8vCisvLyAgICAgICAgLy9pZiAoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiQ0pLIHN3YXBwZWQ6ICIgKyBVdGlsaXR5LmhleChjcCkpOworLy8gICAgICAgIC8vIHdlIG5vdyBoYXZlIGEgcmFuZ2Ugb2YgbnVtYmVycyBmcm9tIDAgdG8gMjFGRkZGLgorLy8gICAgICAgIC8vIHdlIG11c3Qgc2tpcCBhbGwgMDAsIDAxLCAwMiBieXRlcywgc28gbW9zdCBieXRlcyBoYXZlIDI1MyB2YWx1ZXMKKy8vICAgICAgICAvLyB3ZSBtdXN0IGxlYXZlIGEgZ2FwIG9mIDAxIGJldHdlZW4gYWxsIHZhbHVlcyBvZiB0aGUgbGFzdCBieXRlLCBzbworLy8gICAgICAgIC8vIHRoZSBsYXN0IGJ5dGUgaGFzIDEyNiB2YWx1ZXMgKDMgYnl0ZSBjYXNlKQorLy8gICAgICAgIC8vIHdlIHNoaWZ0IHNvIHRoYXQgSEFOIGFsbCBoYXMgdGhlIHNhbWUgZmlyc3QgcHJpbWFyeSwgZm9yCisvLyAgICAgICAgLy8gY29tcHJlc3Npb24uCisvLyAgICAgICAgLy8gZm9yIHRoZSA0IGJ5dGUgY2FzZSwgd2UgbWFrZSB0aGUgZ2FwIGFzIGxhcmdlIGFzIHdlIGNhbiBmaXQuCisvLyAgICAgICAgLy8gVGhyZWUgYnl0ZSBmb3JtcyBhcmUgRUMgeHggeHgsIEVEIHh4IHh4LCBFRSB4eCB4eCAod2l0aCBhIGdhcCBvZiAxKQorLy8gICAgICAgIC8vIEZvdXIgYnl0ZSBmb3JtcyAobW9zdCBzdXBwbGVtZW50YXJpZXMpIGFyZSBFRiB4eCB4eCB4eCAod2l0aCBhIGdhcAorLy8gICAgICAgIC8vIG9mIExBU1QyX01VTFRJUExJRVIgPT0gMTQpCisvLworLy8gICAgICAgIGludCBsYXN0MCA9IGNwIC0gUnVsZUJhc2VkQ29sbGF0b3IuSU1QTElDSVRfNEJZVEVfQk9VTkRBUllfOworLy8gICAgICAgIGlmIChsYXN0MCA8IDApIHsKKy8vICAgICAgICAgICAgaW50IGxhc3QxID0gY3AgLyBSdWxlQmFzZWRDb2xsYXRvci5MQVNUX0NPVU5UXzsKKy8vICAgICAgICAgICAgbGFzdDAgPSBjcCAlIFJ1bGVCYXNlZENvbGxhdG9yLkxBU1RfQ09VTlRfOworLy8KKy8vICAgICAgICAgICAgaW50IGxhc3QyID0gbGFzdDEgLyBSdWxlQmFzZWRDb2xsYXRvci5PVEhFUl9DT1VOVF87CisvLyAgICAgICAgICAgIGxhc3QxICU9IFJ1bGVCYXNlZENvbGxhdG9yLk9USEVSX0NPVU5UXzsKKy8vICAgICAgICAgICAgcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yLklNUExJQ0lUX0JBU0VfM0JZVEVfICsgKGxhc3QyIDw8IDI0KQorLy8gICAgICAgICAgICAgICAgICAgKyAobGFzdDEgPDwgMTYpCisvLyAgICAgICAgICAgICAgICAgICArICgobGFzdDAgKiBSdWxlQmFzZWRDb2xsYXRvci5MQVNUX01VTFRJUExJRVJfKSA8PCA4KTsKKy8vICAgICAgICB9CisvLyAgICAgICAgZWxzZSB7CisvLyAgICAgICAgICAgIGludCBsYXN0MSA9IGxhc3QwIC8gUnVsZUJhc2VkQ29sbGF0b3IuTEFTVF9DT1VOVDJfOworLy8gICAgICAgICAgICBsYXN0MCAlPSBSdWxlQmFzZWRDb2xsYXRvci5MQVNUX0NPVU5UMl87CisvLworLy8gICAgICAgICAgICBpbnQgbGFzdDIgPSBsYXN0MSAvIFJ1bGVCYXNlZENvbGxhdG9yLk9USEVSX0NPVU5UXzsKKy8vICAgICAgICAgICAgbGFzdDEgJT0gUnVsZUJhc2VkQ29sbGF0b3IuT1RIRVJfQ09VTlRfOworLy8KKy8vICAgICAgICAgICAgaW50IGxhc3QzID0gbGFzdDIgLyBSdWxlQmFzZWRDb2xsYXRvci5PVEhFUl9DT1VOVF87CisvLyAgICAgICAgICAgIGxhc3QyICU9IFJ1bGVCYXNlZENvbGxhdG9yLk9USEVSX0NPVU5UXzsKKy8vICAgICAgICAgICAgcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yLklNUExJQ0lUX0JBU0VfNEJZVEVfICsgKGxhc3QzIDw8IDI0KQorLy8gICAgICAgICAgICAgICAgICAgKyAobGFzdDIgPDwgMTYpICsgKGxhc3QxIDw8IDgpCisvLyAgICAgICAgICAgICAgICAgICArIChsYXN0MCAqIFJ1bGVCYXNlZENvbGxhdG9yLkxBU1QyX01VTFRJUExJRVJfKTsKKy8vICAgICAgICB9CisvLyAgICB9CisKKy8vICAgIC8qKgorLy8gICAgICogU3dhcHBpbmcgQ0pLIGNoYXJhY3RlcnMgZm9yIGltcGxpY2l0IGNlcworLy8gICAgICogQHBhcmFtIGNwIGNvZGVwb2ludCBDSksKKy8vICAgICAqIEByZXR1cm4gc3dhcHBlZCByZXN1bHQKKy8vICAgICAqLworLy8gICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHN3YXBDSksoaW50IGNwKQorLy8gICAgeworLy8gICAgICAgIGlmIChjcCA+PSBDSktfQkFTRV8pIHsKKy8vICAgICAgICAgICAgaWYgKGNwIDwgQ0pLX0xJTUlUXykgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuIGNwIC0gQ0pLX0JBU0VfOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGlmIChjcCA8IENKS19DT01QQVRfVVNFRF9CQVNFXykgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuIGNwICsgTk9OX0NKS19PRkZTRVRfOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGlmIChjcCA8IENKS19DT01QQVRfVVNFRF9MSU1JVF8pIHsKKy8vICAgICAgICAgICAgICAgIHJldHVybiBjcCAtIENKS19DT01QQVRfVVNFRF9CQVNFXyArIChDSktfTElNSVRfIC0gQ0pLX0JBU0VfKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgICAgICBpZiAoY3AgPCBDSktfQl9CQVNFXykgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuIGNwICsgTk9OX0NKS19PRkZTRVRfOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIGlmIChjcCA8IENKS19CX0xJTUlUXykgeworLy8gICAgICAgICAgICAgICAgcmV0dXJuIGNwOyAvLyBub24tQk1QLUNKSworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIHJldHVybiBjcCArIE5PTl9DSktfT0ZGU0VUXzsgLy8gbm9uLUNKSworLy8gICAgICAgIH0KKy8vICAgICAgICBpZiAoY3AgPCBDSktfQV9CQVNFXykgeworLy8gICAgICAgICAgICByZXR1cm4gY3AgKyBOT05fQ0pLX09GRlNFVF87CisvLyAgICAgICAgfQorLy8gICAgICAgIGlmIChjcCA8IENKS19BX0xJTUlUXykgeworLy8gICAgICAgICAgICByZXR1cm4gY3AgLSBDSktfQV9CQVNFXyArIChDSktfTElNSVRfIC0gQ0pLX0JBU0VfKQorLy8gICAgICAgICAgICAgICAgICAgKyAoQ0pLX0NPTVBBVF9VU0VEX0xJTUlUXyAtIENKS19DT01QQVRfVVNFRF9CQVNFXyk7CisvLyAgICAgICAgfQorLy8gICAgICAgIHJldHVybiBjcCArIE5PTl9DSktfT0ZGU0VUXzsgLy8gbm9uLUNKSworLy8gICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBHZXRzIGEgY2hhcmFjdGVyIGZyb20gdGhlIHNvdXJjZSBzdHJpbmcgYXQgYSBnaXZlbiBvZmZzZXQuCisgICAgICogSGFuZGxlcyBib3RoIG5vcm1hbCBhbmQgaXRlcmF0aXZlIGNhc2VzLgorICAgICAqIE5vIGVycm9yIGNoZWNraW5nIGFuZCBkb2VzIG5vdCBhY2Nlc3MgdGhlIG5vcm1hbGl6YXRpb24gYnVmZmVyIAorICAgICAqIC0gY2FsbGVyIGJld2FyZSEKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IG9mZnNldCBmcm9tIGN1cnJlbnQgcG9zaXRpb24gd2hpY2ggY2hhcmFjdGVyIGlzIHRvIGJlIAorICAgICAqICAgICAgICAgICAgICAgcmV0cmlldmVkCisgICAgICogQHJldHVybiBjaGFyYWN0ZXIgYXQgY3VycmVudCBwb3NpdGlvbiArIG9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgY2hhciBwZWVrQ2hhcmFjdGVyKGludCBvZmZzZXQpIAorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCAhPSAwKSB7CisgICAgICAgICAgICBpbnQgY3VycmVudG9mZnNldCA9IG1fc291cmNlXy5nZXRJbmRleCgpOworICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KGN1cnJlbnRvZmZzZXQgKyBvZmZzZXQpOworICAgICAgICAgICAgY2hhciByZXN1bHQgPSAoY2hhciltX3NvdXJjZV8uY3VycmVudCgpOworICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KGN1cnJlbnRvZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gKGNoYXIpbV9zb3VyY2VfLmN1cnJlbnQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBNb3ZlcyBiYWNrIDEgcG9zaXRpb24gaW4gdGhlIHNvdXJjZSBzdHJpbmcuIFRoaXMgaXMgc2xpZ2h0bHkgbGVzcyAKKyAgICAgKiBjb21wbGljYXRlZCB0aGFuIHByZXZpb3VzQ2hhciBpbiB0aGF0IGl0IGRvZXNuJ3Qgbm9ybWFsaXplIHdoaWxlIAorICAgICAqIG1vdmluZyBiYWNrLiBCb3VuZGFyeSBjaGVja3MgYXJlIG5vdCBwZXJmb3JtZWQuCisgICAgICogVGhpcyBtZXRob2QgaXMgdG8gYmUgdXNlZCB3aXRoIGNhdXRpb24sIHdpdGggdGhlIGFzc3VtcHRpb24gdGhhdCAKKyAgICAgKiBtb3ZpbmcgYmFjayBvbmUgcG9zaXRpb24gd2lsbCBub3QgZXhjZWVkIHRoZSBzb3VyY2UgbGltaXRzLgorICAgICAqIFVzZSBvbmx5IHdpdGggbmV4dENoYXIoKSBhbmQgbmV2ZXIgY2FsbCB0aGlzIEFQSSB0d2ljZSBpbiBhIHJvdyB3aXRob3V0CisgICAgICogbmV4dENoYXIoKSBpbiB0aGUgbWlkZGxlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBnb0JhY2tPbmUoKSAKKyAgICB7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPj0gMCkgeworICAgICAgICAgICAgbV9idWZmZXJPZmZzZXRfIC0tOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG1fc291cmNlXy5nZXRJbmRleCgpIC0gMSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTW92ZXMgZm9yd2FyZCAxIHBvc2l0aW9uIGluIHRoZSBzb3VyY2Ugc3RyaW5nLiBUaGlzIGlzIHNsaWdodGx5IGxlc3MgCisgICAgICogY29tcGxpY2F0ZWQgdGhhbiBuZXh0Q2hhciBpbiB0aGF0IGl0IGRvZXNuJ3Qgbm9ybWFsaXplIHdoaWxlIAorICAgICAqIG1vdmluZyBiYWNrLiBCb3VuZGFyeSBjaGVja3MgYXJlIG5vdCBwZXJmb3JtZWQuCisgICAgICogVGhpcyBtZXRob2QgaXMgdG8gYmUgdXNlZCB3aXRoIGNhdXRpb24sIHdpdGggdGhlIGFzc3VtcHRpb24gdGhhdCAKKyAgICAgKiBtb3ZpbmcgYmFjayBvbmUgcG9zaXRpb24gd2lsbCBub3QgZXhjZWVkIHRoZSBzb3VyY2UgbGltaXRzLgorICAgICAqIFVzZSBvbmx5IHdpdGggcHJldmlvdXNDaGFyKCkgYW5kIG5ldmVyIGNhbGwgdGhpcyBBUEkgdHdpY2UgaW4gYSByb3cgCisgICAgICogd2l0aG91dCBwcmV2aW91c0NoYXIoKSBpbiB0aGUgbWlkZGxlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBnb0ZvcndhcmRPbmUoKSAKKyAgICB7CisgICAgICAgIGlmIChtX2J1ZmZlck9mZnNldF8gPCAwKSB7CisgICAgICAgICAgICAvLyB3ZSdyZSB3b3JraW5nIG9uIHRoZSBzb3VyY2UgYW5kIG5vdCBub3JtYWxpemluZy4gZmFzdCBwYXRoLgorICAgICAgICAgICAgLy8gbm90ZSBUaGFpIHByZS12b3dlbCByZW9yZGVyaW5nIHVzZXMgYnVmZmVyIHRvbworICAgICAgICAgICAgbV9zb3VyY2VfLnNldEluZGV4KG1fc291cmNlXy5nZXRJbmRleCgpICsgMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyB3ZSBhcmUgaW4gdGhlIGJ1ZmZlciwgYnVmZmVyIG9mZnNldCB3aWxsIG5ldmVyIGJlIDAgaGVyZQorICAgICAgICAgICAgbV9idWZmZXJPZmZzZXRfICsrOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uS2V5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25LZXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YjE3MWM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uS2V5LmphdmEKQEAgLTAsMCArMSw2NDcgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiA8cD5BIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT4gcmVwcmVzZW50cyBhIDxjb2RlPlN0cmluZzwvY29kZT4KKyAqIHVuZGVyIHRoZSBydWxlcyBvZiBhIHNwZWNpZmljIDxjb2RlPkNvbGxhdG9yPC9jb2RlPgorICogb2JqZWN0LiBDb21wYXJpbmcgdHdvIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT5zIHJldHVybnMgdGhlCisgKiByZWxhdGl2ZSBvcmRlciBvZiB0aGUgPGNvZGU+U3RyaW5nPC9jb2RlPnMgdGhleSByZXByZXNlbnQuPC9wPgorICoKKyAqIDxwPlNpbmNlIHRoZSBydWxlIHNldCBvZiA8Y29kZT5Db2xsYXRvcjwvY29kZT5zIGNhbiBkaWZmZXIsIHRoZQorICogc29ydCBvcmRlcnMgb2YgdGhlIHNhbWUgc3RyaW5nIHVuZGVyIHR3byBkaWZmZXJlbnQKKyAqIDxjb2RlPkNvbGxhdG9yPC9jb2RlPnMgbWlnaHQgZGlmZmVyLiAgSGVuY2UgY29tcGFyaW5nCisgKiA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+cyBnZW5lcmF0ZWQgZnJvbSBkaWZmZXJlbnQKKyAqIDxjb2RlPkNvbGxhdG9yPC9jb2RlPnMgY2FuIGdpdmUgaW5jb3JyZWN0IHJlc3VsdHMuPC9wPgorIAorICogPHA+Qm90aCB0aGUgbWV0aG9kCisgKiA8Y29kZT5Db2xsYXRpb25LZXkuY29tcGFyZVRvKENvbGxhdGlvbktleSk8L2NvZGU+IGFuZCB0aGUgbWV0aG9kCisgKiA8Y29kZT5Db2xsYXRvci5jb21wYXJlKFN0cmluZywgU3RyaW5nKTwvY29kZT4gY29tcGFyZSB0d28gc3RyaW5ncworICogYW5kIHJldHVybnMgdGhlaXIgcmVsYXRpdmUgb3JkZXIuICBUaGUgcGVyZm9ybWFuY2UgY2hhcmFjdGVyaWN0aWNzCisgKiBvZiB0aGVzZSB0d28gYXBwcm9hY2hlcyBjYW4gZGlmZmVyLjwvcD4KKyAqCisgKiA8cD5EdXJpbmcgdGhlIGNvbnN0cnVjdGlvbiBvZiBhIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT4sIHRoZQorICogZW50aXJlIHNvdXJjZSBzdHJpbmcgaXMgZXhhbWluZWQgYW5kIHByb2Nlc3NlZCBpbnRvIGEgc2VyaWVzIG9mCisgKiBiaXRzIHRlcm1pbmF0ZWQgYnkgYSBudWxsLCB0aGF0IGFyZSBzdG9yZWQgaW4gdGhlIDxjb2RlPkNvbGxhdGlvbktleTwvY29kZT4uIAorICogV2hlbiA8Y29kZT5Db2xsYXRpb25LZXkuY29tcGFyZVRvKENvbGxhdGlvbktleSk8L2NvZGU+IGV4ZWN1dGVzLCBpdAorICogcGVyZm9ybXMgYml0d2lzZSBjb21wYXJpc29uIG9uIHRoZSBiaXQgc2VxdWVuY2VzLiAgVGhpcyBjYW4gaW5jdXJzCisgKiBzdGFydHVwIGNvc3Qgd2hlbiBjcmVhdGluZyB0aGUgPGNvZGU+Q29sbGF0aW9uS2V5PC9jb2RlPiwgYnV0IG9uY2UKKyAqIHRoZSBrZXkgaXMgY3JlYXRlZCwgYmluYXJ5IGNvbXBhcmlzb25zIGFyZSBmYXN0LiAgVGhpcyBhcHByb2FjaCBpcworICogcmVjb21tZW5kZWQgd2hlbiB0aGUgc2FtZSBzdHJpbmdzIGFyZSB0byBiZSBjb21wYXJlZCBvdmVyIGFuZCBvdmVyCisgKiBhZ2Fpbi48L3A+CisgKgorICogPHA+T24gdGhlIG90aGVyIGhhbmQsIGltcGxlbWVudGF0aW9ucyBvZgorICogPGNvZGU+Q29sbGF0b3IuY29tcGFyZShTdHJpbmcsIFN0cmluZyk8L2NvZGU+IGNhbiBleGFtaW5lIGFuZAorICogcHJvY2VzcyB0aGUgc3RyaW5ncyBvbmx5IHVudGlsIHRoZSBmaXJzdCBjaGFyYWN0ZXJzIGRpZmZlcmluZyBpbgorICogb3JkZXIuICBUaGlzIGFwcHJvYWNoIGlzIHJlY29tbWVuZGVkIGlmIHRoZSBzdHJpbmdzIGFyZSB0byBiZQorICogY29tcGFyZWQgb25seSBvbmNlLjwvcD4KKyAqIAorICogPHA+TW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcG9zaXRpb24gb2YgdGhlIGJpdCBzZXF1ZW5jZSBjYW4KKyAqIGJlIGZvdW5kIGluIHRoZSAKKyAqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX1NlcnZpY2VBcmNoaXRlY3R1cmUuaHRtbCI+CisgKiB1c2VyIGd1aWRlPC9hPi48L3A+CisgKgorICogPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyA8Y29kZT5Db2xsYXRpb25LZXk8L2NvZGU+cyBjYW4gYmUgdXNlZAorICogdG8gc29ydCBhIGxpc3Qgb2YgPGNvZGU+U3RyaW5nPC9jb2RlPnMuPC9wPgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogLy8gQ3JlYXRlIGFuIGFycmF5IG9mIENvbGxhdGlvbktleXMgZm9yIHRoZSBTdHJpbmdzIHRvIGJlIHNvcnRlZC4KKyAqIENvbGxhdG9yIG15Q29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICogQ29sbGF0aW9uS2V5W10ga2V5cyA9IG5ldyBDb2xsYXRpb25LZXlbM107CisgKiBrZXlzWzBdID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoIlRvbSIpOworICoga2V5c1sxXSA9IG15Q29sbGF0b3IuZ2V0Q29sbGF0aW9uS2V5KCJEaWNrIik7CisgKiBrZXlzWzJdID0gbXlDb2xsYXRvci5nZXRDb2xsYXRpb25LZXkoIkhhcnJ5Iik7CisgKiBzb3J0KCBrZXlzICk7CisgKiA8YnI+CisgKiAvLy4uLgorICogPGJyPgorICogLy8gSW5zaWRlIGJvZHkgb2Ygc29ydCByb3V0aW5lLCBjb21wYXJlIGtleXMgdGhpcyB3YXkKKyAqIGlmKCBrZXlzW2ldLmNvbXBhcmVUbygga2V5c1tqXSApID4gMCApCisgKiAgICAvLyBzd2FwIGtleXNbaV0gYW5kIGtleXNbal0KKyAqIDxicj4KKyAqIC8vLi4uCisgKiA8YnI+CisgKiAvLyBGaW5hbGx5LCB3aGVuIHdlJ3ZlIHJldHVybmVkIGZyb20gc29ydC4KKyAqIFN5c3RlbS5vdXQucHJpbnRsbigga2V5c1swXS5nZXRTb3VyY2VTdHJpbmcoKSApOworICogU3lzdGVtLm91dC5wcmludGxuKCBrZXlzWzFdLmdldFNvdXJjZVN0cmluZygpICk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIGtleXNbMl0uZ2V0U291cmNlU3RyaW5nKCkgKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPC9wPgorICogPHA+CisgKiBUaGlzIGNsYXNzIGlzIG5vdCBzdWJjbGFzc2FibGUKKyAqIDwvcD4KKyAqIEBzZWUgQ29sbGF0b3IKKyAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAqIEBhdXRob3IgU3luIFdlZSBRdWVrCisgKiBAc3RhYmxlIElDVSAyLjggCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb2xsYXRpb25LZXkgaW1wbGVtZW50cyBDb21wYXJhYmxlIAoreworICAgIC8vIHB1YmxpYyBpbm5lciBjbGFzc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKiogCisgICAgICogT3B0aW9ucyB0aGF0IHVzZWQgaW4gdGhlIEFQSSBDb2xsYXRpb25LZXkuZ2V0Qm91bmQoKSBmb3IgZ2V0dGluZyBhIAorICAgICAqIENvbGxhdGlvbktleSBiYXNlZCBvbiB0aGUgYm91bmQgbW9kZSByZXF1ZXN0ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBCb3VuZE1vZGUgCisgICAgeworICAgICAgICAvKgorICAgICAgICAgKiBkbyBub3QgY2hhbmdlIHRoZSB2YWx1ZXMgYXNzaWduZWQgdG8gdGhlIG1lbWJlcnMgb2YgdGhpcyBlbnVtLiAKKyAgICAgICAgICogVW5kZXJseWluZyBjb2RlIGRlcGVuZHMgb24gdGhlbSBoYXZpbmcgdGhlc2UgbnVtYmVycyAgCisgICAgICAgICAqLworICAgICAgICAgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogTG93ZXIgYm91bmQKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT1dFUiA9IDA7CisKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBVcHBlciBib3VuZCB0aGF0IHdpbGwgbWF0Y2ggc3RyaW5ncyBvZiBleGFjdCBzaXplCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVVBQRVIgPSAxOworCisgICAgICAgIC8qKiAKKyAgICAgICAgICogVXBwZXIgYm91bmQgdGhhdCB3aWxsIG1hdGNoIGFsbCB0aGUgc3RyaW5ncyB0aGF0IGhhdmUgdGhlIHNhbWUgCisgICAgICAgICAqIGluaXRpYWwgc3Vic3RyaW5nIGFzIHRoZSBnaXZlbiBzdHJpbmcKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVUFBFUl9MT05HID0gMjsKKworICAgICAgICAvKioKKyAgICAgICAgICogTnVtYmVyIG9mIGJvdW5kIG1vZGUKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT1VOVCA9IDM7CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogUHJpdmF0ZSBDb25zdHJ1Y3RvcgorICAgICAgICAgKi8KKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICBwcml2YXRlIEJvdW5kTW9kZSgpe307CisgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgIH07CisgICAgCisgICAgLy8gcHVibGljIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIENvbGxhdGlvbktleSBjb25zdHJ1Y3Rvci4KKyAgICAgKiBUaGlzIGNvbnN0cnVjdG9yIGlzIGdpdmVuIHB1YmxpYyBhY2Nlc3MsIHVubGlrZSB0aGUgSkRLIHZlcnNpb24sIHRvCisgICAgICogYWxsb3cgYWNjZXNzIHRvIHVzZXJzIGV4dGVuZGluZyB0aGUgQ29sbGF0b3IgY2xhc3MuIFNlZSAKKyAgICAgKiB7QGxpbmsgQ29sbGF0b3IjZ2V0Q29sbGF0aW9uS2V5KFN0cmluZyl9LiAKKyAgICAgKiBAcGFyYW0gc291cmNlIHN0cmluZyB0aGlzIENvbGxhdGlvbktleSBpcyB0byByZXByZXNlbnQKKyAgICAgKiBAcGFyYW0ga2V5IGFycmF5IG9mIGJ5dGVzIHRoYXQgcmVwcmVzZW50IHRoZSBjb2xsYXRpb24gb3JkZXIgb2YgYXJndW1lbnQKKyAgICAgKiAgICAgICAgICAgIHNvdXJjZSB0ZXJtaW5hdGVkIGJ5IGEgbnVsbAorICAgICAqIEBzZWUgQ29sbGF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGF0aW9uS2V5KFN0cmluZyBzb3VyY2UsIGJ5dGUga2V5W10pCisgICAgeworICAgICAgICBtX3NvdXJjZV8gPSBzb3VyY2U7CisgICAgICAgIG1fa2V5XyA9IGtleTsKKyAgICAgICAgbV9oYXNoQ29kZV8gPSAwOworICAgICAgICBtX2xlbmd0aF8gPSAtMTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29sbGF0aW9uS2V5IGNvbnN0cnVjdG9yIHRoYXQgZm9yY2VzIGtleSB0byByZWxlYXNlIGl0cyBpbnRlcm5hbCBieXRlIAorICAgICAqIGFycmF5IGZvciBhZG9wdGlvbi4ga2V5IHdpbGwgaGF2ZSBhIG51bGwgYnl0ZSBhcnJheSBhZnRlciB0aGlzIAorICAgICAqIGNvbnN0cnVjdGlvbi4KKyAgICAgKiBAcGFyYW0gc291cmNlIHN0cmluZyB0aGlzIENvbGxhdGlvbktleSBpcyB0byByZXByZXNlbnQKKyAgICAgKiBAcGFyYW0ga2V5IFJhd0NvbGxhdGlvbktleSBvYmplY3QgdGhhdCByZXByZXNlbnRzIHRoZSBjb2xsYXRpb24gb3JkZXIgb2YgCisgICAgICogICAgICAgICAgICBhcmd1bWVudCBzb3VyY2UuIAorICAgICAqIEBzZWUgQ29sbGF0b3IKKyAgICAgKiBAc2VlIFJhd0NvbGxhdGlvbktleQorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGF0aW9uS2V5KFN0cmluZyBzb3VyY2UsIFJhd0NvbGxhdGlvbktleSBrZXkpCisgICAgeworICAgICAgICBtX3NvdXJjZV8gPSBzb3VyY2U7CisgICAgICAgIG1fa2V5XyA9IGtleS5yZWxlYXNlQnl0ZXMoKTsKKyAgICAgICAgbV9oYXNoQ29kZV8gPSAwOworICAgICAgICBtX2xlbmd0aF8gPSAtMTsKKyAgICB9CisgICAgCisgICAgLy8gcHVibGljIGdldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc291cmNlIHN0cmluZyB0aGF0IHRoaXMgQ29sbGF0aW9uS2V5IHJlcHJlc2VudHMuCisgICAgICogQHJldHVybiBzb3VyY2Ugc3RyaW5nIHRoYXQgdGhpcyBDb2xsYXRpb25LZXkgcmVwcmVzZW50cworICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U291cmNlU3RyaW5nKCkgCisgICAgeworICAgICAgICByZXR1cm4gbV9zb3VyY2VfOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkR1cGxpY2F0ZXMgYW5kIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoaXMgQ29sbGF0aW9uS2V5IGFzIGEgc2VxdWVuY2UgCisgICAgICogb2YgYmlnLWVuZGlhbiBieXRlcyB0ZXJtaW5hdGVkIGJ5IGEgbnVsbC48L3A+IAorICAgICAqCisgICAgICogPHA+SWYgdHdvIENvbGxhdGlvbktleXMgY2FuIGJlIGxlZ2l0aW1hdGVseSBjb21wYXJlZCwgdGhlbiBvbmUgY2FuCisgICAgICogY29tcGFyZSB0aGUgYnl0ZSBhcnJheXMgb2YgZWFjaCB0byBvYnRhaW4gdGhlIHNhbWUgcmVzdWx0LCBlLmcuCisgICAgICogPHByZT4KKyAgICAgKiBieXRlIGtleTFbXSA9IGNvbGxhdGlvbmtleTEudG9CeXRlQXJyYXkoKTsKKyAgICAgKiBieXRlIGtleTJbXSA9IGNvbGxhdGlvbmtleTIudG9CeXRlQXJyYXkoKTsKKyAgICAgKiBpbnQga2V5LCB0YXJnZXRrZXk7CisgICAgICogaW50IGkgPSAwOworICAgICAqIGRvIHsKKyAgICAgKiAgICAgICBrZXkgPSBrZXkxW2ldICYgMHhGRjsKKyAgICAgKiAgICAgdGFyZ2V0a2V5ID0ga2V5MltpXSAmIDB4RkY7CisgICAgICogICAgIGlmIChrZXkgJmx0OyB0YXJnZXRrZXkpIHsKKyAgICAgKiAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RyaW5nIDEgaXMgbGVzcyB0aGFuIHN0cmluZyAyIik7CisgICAgICogICAgICAgICByZXR1cm47CisgICAgICogICAgIH0KKyAgICAgKiAgICAgaWYgKHRhcmdldGtleSAmbHQ7IGtleSkgeworICAgICAqICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdHJpbmcgMSBpcyBtb3JlIHRoYW4gc3RyaW5nIDIiKTsKKyAgICAgKiAgICAgfQorICAgICAqICAgICBpICsrOworICAgICAqIH0gd2hpbGUgKGtleSAhPSAwICYmIHRhcmdldEtleSAhPSAwKTsKKyAgICAgKgorICAgICAqIFN5c3RlbS5vdXQucHJpbnRsbigiU3RyaW5ncyBhcmUgZXF1YWwuIik7CisgICAgICogPC9wcmU+CisgICAgICogPC9wPiAgCisgICAgICogQHJldHVybiBDb2xsYXRpb25LZXkgdmFsdWUgaW4gYSBzZXF1ZW5jZSBvZiBiaWctZW5kaWFuIGJ5dGUgYnl0ZXMgCisgICAgICogICAgICAgICB0ZXJtaW5hdGVkIGJ5IGEgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYnl0ZVtdIHRvQnl0ZUFycmF5KCkgCisgICAgeworICAgICAgICBpbnQgbGVuZ3RoID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmIChtX2tleV9bbGVuZ3RoXSA9PSAwKSB7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGVuZ3RoICsrOworICAgICAgICB9CisgICAgICAgIGxlbmd0aCArKzsKKyAgICAgICAgYnl0ZSByZXN1bHRbXSA9IG5ldyBieXRlW2xlbmd0aF07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV9rZXlfLCAwLCByZXN1bHQsIDAsIGxlbmd0aCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLy8gcHVibGljIG90aGVyIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAKKyAgICAgCisgICAgLyoqCisgICAgICogPHA+Q29tcGFyZSB0aGlzIENvbGxhdGlvbktleSB0byBhbm90aGVyIENvbGxhdGlvbktleS4gIFRoZQorICAgICAqIGNvbGxhdGlvbiBydWxlcyBvZiB0aGUgQ29sbGF0b3IgdGhhdCBjcmVhdGVkIHRoaXMga2V5IGFyZQorICAgICAqIGFwcGxpZWQuPC9wPgorICAgICAqCisgICAgICogPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBDb21wYXJpc29uIGJldHdlZW4gQ29sbGF0aW9uS2V5cworICAgICAqIGNyZWF0ZWQgYnkgZGlmZmVyZW50IENvbGxhdG9ycyBtaWdodCByZXR1cm4gaW5jb3JyZWN0CisgICAgICogcmVzdWx0cy4gIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGFyZ2V0IENvbGxhdGlvbktleQorICAgICAqIEByZXR1cm4gYW4gaW50ZWdlciB2YWx1ZS4gIElmIHRoZSB2YWx1ZSBpcyBsZXNzIHRoYW4gemVybyB0aGlzIENvbGxhdGlvbktleQorICAgICAqICAgICAgICAgaXMgbGVzcyB0aGFuIHRoYW4gdGFyZ2V0LCBpZiB0aGUgdmFsdWUgaXMgemVybyB0aGV5IGFyZSBlcXVhbCwgYW5kCisgICAgICogICAgICAgICBpZiB0aGUgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHplcm8gdGhpcyBDb2xsYXRpb25LZXkgaXMgZ3JlYXRlciAKKyAgICAgKiAgICAgICAgIHRoYW4gdGFyZ2V0LgorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFyZ3VtZW50IGlzIG51bGwuCisgICAgICogQHNlZSBDb2xsYXRvciNjb21wYXJlKFN0cmluZywgU3RyaW5nKQorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhDb2xsYXRpb25LZXkgdGFyZ2V0KQorICAgIHsKKyAgICBmb3IgKGludCBpID0gMDs7ICsraSkgeworICAgICAgICBpbnQgbCA9IG1fa2V5X1tpXSYweGZmOworICAgICAgICBpbnQgciA9IHRhcmdldC5tX2tleV9baV0mMHhmZjsKKyAgICAgICAgaWYgKGwgPCByKSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfSBlbHNlIGlmIChsID4gcikgeworICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfSBlbHNlIGlmIChsID09IDApIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+Q29tcGFyZSB0aGlzIENvbGxhdGlvbktleSB3aXRoIHRoZSBzcGVjaWZpZWQgT2JqZWN0LiAgVGhlCisgICAgICogY29sbGF0aW9uIHJ1bGVzIG9mIHRoZSBDb2xsYXRvciB0aGF0IGNyZWF0ZWQgdGhpcyBrZXkgYXJlCisgICAgICogYXBwbGllZC48L3A+CisgICAgICogCisgICAgICogPHA+U2VlIG5vdGUgaW4gY29tcGFyZVRvKENvbGxhdGlvbktleSkgZm9yIHdhcm5pbmdzIGFib3V0IHBvc3NpYmxlCisgICAgICogaW5jb3JyZWN0IHJlc3VsdHMuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIG9iaiB0aGUgT2JqZWN0IHRvIGJlIGNvbXBhcmVkIHRvLgorICAgICAqIEByZXR1cm4gUmV0dXJucyBhIG5lZ2F0aXZlIGludGVnZXIsIHplcm8sIG9yIGEgcG9zaXRpdmUgaW50ZWdlciAKKyAgICAgKiAgICAgICAgIHJlc3BlY3RpdmVseSBpZiB0aGlzIENvbGxhdGlvbktleSBpcyBsZXNzIHRoYW4sIGVxdWFsIHRvLCBvciAKKyAgICAgKiAgICAgICAgIGdyZWF0ZXIgdGhhbiB0aGUgZ2l2ZW4gT2JqZWN0LgorICAgICAqIEBleGNlcHRpb24gQ2xhc3NDYXN0RXhjZXB0aW9uIGlzIHRocm93biB3aGVuIHRoZSBhcmd1bWVudCBpcyBub3QgCisgICAgICogICAgICAgICAgICBhIENvbGxhdGlvbktleS4gIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biB3aGVuIHRoZSBhcmd1bWVudCAKKyAgICAgKiAgICAgICAgICAgIGlzIG51bGwuCisgICAgICogQHNlZSAjY29tcGFyZVRvKENvbGxhdGlvbktleSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IG9iaikgCisgICAgeworICAgICAgIHJldHVybiBjb21wYXJlVG8oKENvbGxhdGlvbktleSlvYmopOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkNvbXBhcmUgdGhpcyBDb2xsYXRpb25LZXkgYW5kIHRoZSBzcGVjaWZpZWQgT2JqZWN0IGZvcgorICAgICAqIGVxdWFsaXR5LiAgVGhlIGNvbGxhdGlvbiBydWxlcyBvZiB0aGUgQ29sbGF0b3IgdGhhdCBjcmVhdGVkCisgICAgICogdGhpcyBrZXkgYXJlIGFwcGxpZWQuPC9wPgorICAgICAqCisgICAgICogPHA+U2VlIG5vdGUgaW4gY29tcGFyZVRvKENvbGxhdGlvbktleSkgZm9yIHdhcm5pbmdzIGFib3V0CisgICAgICogcG9zc2libGUgaW5jb3JyZWN0IHJlc3VsdHMuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgb2JqZWN0IHRvIGNvbXBhcmUgdG8uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28ga2V5cyBjb21wYXJlIGFzIGVxdWFsLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHNlZSAjY29tcGFyZVRvKENvbGxhdGlvbktleSkKKyAgICAgKiBAZXhjZXB0aW9uIENsYXNzQ2FzdEV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgaXMgbm90IAorICAgICAqICAgICAgICAgICAgYSBDb2xsYXRpb25LZXkuICBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiB0aGUgYXJndW1lbnQgCisgICAgICogICAgICAgICAgICBpcyBudWxsLgorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRhcmdldCkgCisgICAgeworICAgICAgICBpZiAoISh0YXJnZXQgaW5zdGFuY2VvZiBDb2xsYXRpb25LZXkpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBlcXVhbHMoKENvbGxhdGlvbktleSl0YXJnZXQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBDb21wYXJlIHRoaXMgQ29sbGF0aW9uS2V5IGFuZCB0aGUgYXJndW1lbnQgdGFyZ2V0IENvbGxhdGlvbktleSBmb3IgCisgICAgICogZXF1YWxpdHkuCisgICAgICogVGhlIGNvbGxhdGlvbiAKKyAgICAgKiBydWxlcyBvZiB0aGUgQ29sbGF0b3Igb2JqZWN0IHdoaWNoIGNyZWF0ZWQgdGhlc2Ugb2JqZWN0cyBhcmUgYXBwbGllZC4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogU2VlIG5vdGUgaW4gY29tcGFyZVRvKENvbGxhdGlvbktleSkgZm9yIHdhcm5pbmdzIG9mIGluY29ycmVjdCByZXN1bHRzCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGhlIENvbGxhdGlvbktleSB0byBjb21wYXJlIHRvLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0d28gb2JqZWN0cyBhcmUgZXF1YWwsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biB3aGVuIHRoZSBhcmd1bWVudCBpcyBudWxsLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhDb2xsYXRpb25LZXkgdGFyZ2V0KSAKKyAgICB7CisgICAgICAgIGlmICh0aGlzID09IHRhcmdldCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRhcmdldCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgQ29sbGF0aW9uS2V5IG90aGVyID0gKENvbGxhdGlvbktleSl0YXJnZXQ7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmIChtX2tleV9baV0gIT0gb3RoZXIubV9rZXlfW2ldKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1fa2V5X1tpXSA9PSAwKSB7CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaSArKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5SZXR1cm5zIGEgaGFzaCBjb2RlIGZvciB0aGlzIENvbGxhdGlvbktleS4gVGhlIGhhc2ggdmFsdWUgaXMgY2FsY3VsYXRlZCAKKyAgICAgKiBvbiB0aGUga2V5IGl0c2VsZiwgbm90IHRoZSBTdHJpbmcgZnJvbSB3aGljaCB0aGUga2V5IHdhcyBjcmVhdGVkLiBUaHVzIAorICAgICAqIGlmIHggYW5kIHkgYXJlIENvbGxhdGlvbktleXMsIHRoZW4geC5oYXNoQ29kZSh4KSA9PSB5Lmhhc2hDb2RlKCkgCisgICAgICogaWYgeC5lcXVhbHMoeSkgaXMgdHJ1ZS4gVGhpcyBhbGxvd3MgbGFuZ3VhZ2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24gaW4gYSAKKyAgICAgKiBoYXNoIHRhYmxlLgorICAgICAqIDwvcD4KKyAgICAgKiBAcmV0dXJuIHRoZSBoYXNoIHZhbHVlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSAKKyAgICB7CisgICAgICAgIGlmIChtX2hhc2hDb2RlXyA9PSAwKSB7CisgICAgICAgICAgICBpZiAobV9rZXlfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtX2hhc2hDb2RlXyA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgc2l6ZSA9IG1fa2V5Xy5sZW5ndGggPj4gMTsKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIga2V5ID0gbmV3IFN0cmluZ0J1ZmZlcihzaXplKTsKKyAgICAgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKG1fa2V5X1tpXSAhPSAwICYmIG1fa2V5X1tpICsgMV0gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBrZXkuYXBwZW5kKChjaGFyKSgobV9rZXlfW2ldIDw8IDgpIHwgbV9rZXlfW2kgKyAxXSkpOworICAgICAgICAgICAgICAgICAgICBpICs9IDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtX2tleV9baV0gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBrZXkuYXBwZW5kKChjaGFyKShtX2tleV9baV0gPDwgOCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX2hhc2hDb2RlXyA9IGtleS50b1N0cmluZygpLmhhc2hDb2RlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1faGFzaENvZGVfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBQcm9kdWNlIGEgYm91bmQgZm9yIHRoZSBzb3J0IG9yZGVyIG9mIGEgZ2l2ZW4gY29sbGF0aW9uIGtleSBhbmQgYSAKKyAgICAgKiBzdHJlbmd0aCBsZXZlbC4gVGhpcyBBUEkgZG9lcyBub3QgYXR0ZW1wdCB0byBmaW5kIGEgYm91bmQgZm9yIHRoZSAKKyAgICAgKiBDb2xsYXRpb25LZXkgU3RyaW5nIHJlcHJlc2VudGF0aW9uLCBoZW5jZSBudWxsIHdpbGwgYmUgcmV0dXJuZWQgaW4gaXRzIAorICAgICAqIHBsYWNlLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBSZXN1bHRpbmcgYm91bmRzIGNhbiBiZSB1c2VkIHRvIHByb2R1Y2UgYSByYW5nZSBvZiBzdHJpbmdzIHRoYXQgYXJlCisgICAgICogYmV0d2VlbiB1cHBlciBhbmQgbG93ZXIgYm91bmRzLiBGb3IgZXhhbXBsZSwgaWYgYm91bmRzIGFyZSBwcm9kdWNlZAorICAgICAqIGZvciBhIHNvcnRrZXkgb2Ygc3RyaW5nICJzbWl0aCIsIHN0cmluZ3MgYmV0d2VlbiB1cHBlciBhbmQgbG93ZXIgCisgICAgICogYm91bmRzIHdpdGggcHJpbWFyeSBzdHJlbmd0aCB3b3VsZCBpbmNsdWRlICJTbWl0aCIsICJTTUlUSCIsICJzTWlUaCIuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoZXJlIGFyZSB0d28gdXBwZXIgYm91bmRzIHRoYXQgY2FuIGJlIHByb2R1Y2VkLiBJZiBCb3VuZE1vZGUuVVBQRVIKKyAgICAgKiBpcyBwcm9kdWNlZCwgc3RyaW5ncyBtYXRjaGVkIHdvdWxkIGJlIGFzIGFib3ZlLiBIb3dldmVyLCBpZiBhIGJvdW5kCisgICAgICogaXMgcHJvZHVjZWQgdXNpbmcgQm91bmRNb2RlLlVQUEVSX0xPTkcgaXMgdXNlZCwgdGhlIGFib3ZlIGV4YW1wbGUgd2lsbAorICAgICAqIGFsc28gbWF0Y2ggIlNtaXRoc29uaWFuIiBhbmQgc2ltaWxhci4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogRm9yIG1vcmUgb24gdXNhZ2UsIHNlZSBleGFtcGxlIGluIHRlc3QgcHJvY2VkdXJlIAorICAgICAqIDxhIGhyZWY9Imh0dHA6Ly9kZXYuaWN1LXByb2plY3Qub3JnL2NnaS1iaW4vdmlld2N2cy5jZ2kvfmNoZWNrb3V0fi9pY3U0ai9zcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQVBJVGVzdC5qYXZhIj4KKyAgICAgKiBzcmMvY29tL2libS9pY3UvZGV2L3Rlc3QvY29sbGF0b3IvQ29sbGF0aW9uQVBJVGVzdC9UZXN0Qm91bmRzLgorICAgICAqIDwvYT4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogQ29sbGF0aW9uIGtleXMgcHJvZHVjZWQgbWF5IGJlIGNvbXBhcmVkIHVzaW5nIHRoZSA8VFQ+Y29tcGFyZTwvVFQ+IEFQSS4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIGJvdW5kVHlwZSBNb2RlIG9mIGJvdW5kIHJlcXVpcmVkLiBJdCBjYW4gYmUgQm91bmRNb2RlLkxPV0VSLCB3aGljaCAKKyAgICAgKiAgICAgICAgICAgICAgcHJvZHVjZXMgYSBsb3dlciBpbmNsdXNpdmUgYm91bmQsIEJvdW5kTW9kZS5VUFBFUiwgdGhhdCAKKyAgICAgKiAgICAgICAgICAgICAgcHJvZHVjZXMgdXBwZXIgYm91bmQgdGhhdCBtYXRjaGVzIHN0cmluZ3Mgb2YgdGhlIHNhbWUgCisgICAgICogICAgICAgICAgICAgIGxlbmd0aCBvciBCb3VuZE1vZGUuVVBQRVJfTE9ORyB0aGF0IG1hdGNoZXMgc3RyaW5ncyB0aGF0IAorICAgICAqICAgICAgICAgICAgICBoYXZlIHRoZSBzYW1lIHN0YXJ0aW5nIHN1YnN0cmluZyBhcyB0aGUgc291cmNlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gbm9PZkxldmVscyBTdHJlbmd0aCBsZXZlbHMgcmVxdWlyZWQgaW4gdGhlIHJlc3VsdGluZyBib3VuZCAKKyAgICAgKiAgICAgICAgICAgICAgICAgKGZvciBtb3N0IHVzZXMsIHRoZSByZWNvbW1lbmRlZCB2YWx1ZSBpcyBQUklNQVJZKS4gVGhpcworICAgICAqICAgICAgICAgICAgICAgICBzdHJlbmd0aCBzaG91bGQgYmUgbGVzcyB0aGFuIHRoZSBtYXhpbXVtIHN0cmVuZ3RoIG9mIAorICAgICAqICAgICAgICAgICAgICAgICB0aGlzIENvbGxhdGlvbktleS4KKyAgICAgKiAgICAgICAgICAgICAgICAgU2VlIHVzZXJzIGd1aWRlIGZvciBleHBsYW5hdGlvbiBvbiB0aGUgc3RyZW5ndGggbGV2ZWxzIGEgCisgICAgICogICAgICAgICAgICAgICAgIGNvbGxhdGlvbiBrZXkgY2FuIGhhdmUuIAorICAgICAqIEByZXR1cm4gdGhlIHJlc3VsdCBib3VuZGVkIENvbGxhdGlvbktleSB3aXRoIGEgdmFsaWQgc29ydCBvcmRlciBidXQgCisgICAgICogICAgICAgICBhIG51bGwgU3RyaW5nIHJlcHJlc2VudGF0aW9uLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIHRoZSBzdHJlbmd0aCBsZXZlbCAKKyAgICAgKiAgICAgICAgICAgIHJlcXVlc3RlZCBpcyBoaWdoZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgc3RyZW5ndGggaW4gdGhpcworICAgICAqICAgICAgICAgICAgQ29sbGF0aW9uS2V5LiAKKyAgICAgKiAgICAgICAgICAgIEluIHRoZSBjYXNlIG9mIGFuIEV4Y2VwdGlvbiwgaW5mb3JtYXRpb24gCisgICAgICogICAgICAgICAgICBhYm91dCB0aGUgbWF4aW11bSBzdHJlbmd0aCB0byB1c2Ugd2lsbCBiZSByZXR1cm5lZCBpbiB0aGUgCisgICAgICogICAgICAgICAgICBFeGNlcHRpb24uIFRoZSB1c2VyIGNhbiB0aGVuIGNhbGwgZ2V0Qm91bmQoKSBhZ2FpbiB3aXRoIHRoZSAKKyAgICAgKiAgICAgICAgICAgIGFwcHJvcHJpYXRlIHN0cmVuZ3RoLgorICAgICAqIEBzZWUgQ29sbGF0aW9uS2V5CisgICAgICogQHNlZSBDb2xsYXRpb25LZXkuQm91bmRNb2RlCisgICAgICogQHNlZSBDb2xsYXRvciNQUklNQVJZCisgICAgICogQHNlZSBDb2xsYXRvciNTRUNPTkRBUlkKKyAgICAgKiBAc2VlIENvbGxhdG9yI1RFUlRJQVJZCisgICAgICogQHNlZSBDb2xsYXRvciNRVUFURVJOQVJZCisgICAgICogQHNlZSBDb2xsYXRvciNJREVOVElDQUwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGF0aW9uS2V5IGdldEJvdW5kKGludCBib3VuZFR5cGUsIGludCBub09mTGV2ZWxzKSAKKyAgICB7CisgICAgICAgIC8vIFNjYW4gdGhlIHN0cmluZyB1bnRpbCB3ZSBza2lwIGVub3VnaCBvZiB0aGUga2V5IE9SIHJlYWNoIHRoZSBlbmQgb2YgCisgICAgICAgIC8vIHRoZSBrZXkKKyAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgICAgIGludCBrZXlzdHJlbmd0aCA9IENvbGxhdG9yLlBSSU1BUlk7CisgICAgICAgIAorICAgICAgICBpZiAobm9PZkxldmVscyA+IENvbGxhdG9yLlBSSU1BUlkpIHsKKyAgICAgICAgICAgIHdoaWxlIChvZmZzZXQgPCBtX2tleV8ubGVuZ3RoICYmIG1fa2V5X1tvZmZzZXRdICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAobV9rZXlfW29mZnNldCArK10gCisgICAgICAgICAgICAgICAgICAgICAgICA9PSBSdWxlQmFzZWRDb2xsYXRvci5TT1JUX0xFVkVMX1RFUk1JTkFUT1JfKSB7CisgICAgICAgICAgICAgICAgICAgIGtleXN0cmVuZ3RoICsrOworICAgICAgICAgICAgICAgICAgICBub09mTGV2ZWxzIC0tOworICAgICAgICAgICAgICAgICAgICBpZiAobm9PZkxldmVscyA9PSBDb2xsYXRvci5QUklNQVJZIAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgb2Zmc2V0ID09IG1fa2V5Xy5sZW5ndGggfHwgbV9rZXlfW29mZnNldF0gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0IC0tOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobm9PZkxldmVscyA+IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNvdXJjZSBjb2xsYXRpb24ga2V5IGhhcyBvbmx5ICIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBrZXlzdHJlbmd0aCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgc3RyZW5ndGggbGV2ZWwuIENhbGwgZ2V0Qm91bmQoKSBhZ2FpbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHdpdGggbm9PZkxldmVscyA8ICIgKyBrZXlzdHJlbmd0aCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFJFQUQgTUU6IHRoaXMgY29kZSBhc3N1bWVzIHRoYXQgdGhlIHZhbHVlcyBmb3IgQm91bmRNb2RlIHZhcmlhYmxlcyAKKyAgICAgICAgLy8gd2lsbCBub3QgY2hhbmdlcy4gVGhleSBhcmUgc2V0IHNvIHRoYXQgdGhlIGVudW0gdmFsdWUgY29ycmVzcG9uZHMgdG8gCisgICAgICAgIC8vIHRoZSBudW1iZXIgb2YgZXh0cmEgYnl0ZXMgZWFjaCBib3VuZCB0eXBlIG5lZWRzLgorICAgICAgICBieXRlIHJlc3VsdGtleVtdID0gbmV3IGJ5dGVbb2Zmc2V0ICsgYm91bmRUeXBlICsgMV07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobV9rZXlfLCAwLCByZXN1bHRrZXksIDAsIG9mZnNldCk7CisgICAgICAgIHN3aXRjaCAoYm91bmRUeXBlKSB7CisgICAgICAgICAgICBjYXNlIEJvdW5kTW9kZS5MT1dFUjogLy8gPSAwCisgICAgICAgICAgICAgICAgLy8gTG93ZXIgYm91bmQganVzdCBnZXRzIHRlcm1pbmF0ZWQuIE5vIGV4dHJhIGJ5dGVzCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEJvdW5kTW9kZS5VUFBFUjogLy8gPSAxCisgICAgICAgICAgICAgICAgLy8gVXBwZXIgYm91bmQgbmVlZHMgb25lIGV4dHJhIGJ5dGUKKyAgICAgICAgICAgICAgICByZXN1bHRrZXlbb2Zmc2V0ICsrXSA9IDI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEJvdW5kTW9kZS5VUFBFUl9MT05HOiAvLyA9IDIKKyAgICAgICAgICAgICAgICAvLyBVcHBlciBsb25nIGJvdW5kIG5lZWRzIHR3byBleHRyYSBieXRlcworICAgICAgICAgICAgICAgIHJlc3VsdGtleVtvZmZzZXQgKytdID0gKGJ5dGUpMHhGRjsKKyAgICAgICAgICAgICAgICByZXN1bHRrZXlbb2Zmc2V0ICsrXSA9IChieXRlKTB4RkY7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSWxsZWdhbCBib3VuZFR5cGUgYXJndW1lbnQiKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRrZXlbb2Zmc2V0ICsrXSA9IDA7CisgICAgICAgIHJldHVybiBuZXcgQ29sbGF0aW9uS2V5KG51bGwsIHJlc3VsdGtleSk7CisgICAgfQorCisKKyAgICAKKyAgICAvKiogCisgICAgICogPHA+CisgICAgICogTWVyZ2VzIHRoaXMgQ29sbGF0aW9uS2V5IHdpdGggYW5vdGhlci4gT25seSB0aGUgc29ydGluZyBvcmRlciBvZiB0aGUgCisgICAgICogQ29sbGF0aW9uS2V5cyB3aWxsIGJlIG1lcmdlZC4gVGhpcyBBUEkgZG9lcyBub3QgYXR0ZW1wdCB0byBtZXJnZSB0aGUgCisgICAgICogU3RyaW5nIHJlcHJlc2VudGF0aW9ucyBvZiB0aGUgQ29sbGF0aW9uS2V5cywgaGVuY2UgbnVsbCB3aWxsIGJlIHJldHVybmVkCisgICAgICogYXMgdGhlIFN0cmluZyByZXByZXNlbnRhdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhlIHN0cmVuZ3RoIGxldmVscyBhcmUgbWVyZ2VkIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZyBjb3VudGVycGFydHMgCisgICAgICogKFBSSU1BUklFUyB3aXRoIFBSSU1BUklFUywgU0VDT05EQVJJRVMgd2l0aCBTRUNPTkRBUklFUyBldGMuKS4gCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoZSBtZXJnZWQgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZXN1bHQgQ29sbGF0aW9uS2V5IHdpbGwgYmUgYQorICAgICAqIGNvbmNhdGVuYXRpb24gb2YgdGhlIFN0cmluZyByZXByZXNlbnRhdGlvbnMgb2YgdGhlIDIgc291cmNlIAorICAgICAqIENvbGxhdGlvbktleXMuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIEJldHdlZW4gdGhlIHZhbHVlcyBmcm9tIHRoZSBzYW1lIGxldmVsIGEgc2VwYXJhdG9yIGlzIGluc2VydGVkLgorICAgICAqIGV4YW1wbGUgKHVuY29tcHJlc3NlZCk6CisgICAgICogPHByZT4gCisgICAgICogMTkxQjFEIDAxIDA1MDUwNSAwMSA5MTA1MDUgMDAgYW5kIDFGMjEyMyAwMSAwNTA1MDUgMDEgOTEwNTA1IDAwCisgICAgICogd2lsbCBiZSBtZXJnZWQgYXMgCisgICAgICogMTkxQjFEIDAyIDFGMjEyMzAxIDA1MDUwNSAwMiAwNTA1MDUgMDEgOTEwNTA1IDAyIDkxMDUwNSAwMAorICAgICAqIDwvcHJlPgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIGFsbG93cyBmb3IgY29uY2F0ZW5hdGluZyBvZiBmaXJzdCBhbmQgbGFzdCBuYW1lcyBmb3Igc29ydGluZywgYW1vbmcgCisgICAgICogb3RoZXIgdGhpbmdzLgorICAgICAqIDwvcD4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHNvdXJjZSBDb2xsYXRpb25LZXkgdG8gbWVyZ2Ugd2l0aCAKKyAgICAgKiBAcmV0dXJuIGEgQ29sbGF0aW9uS2V5IHRoYXQgY29udGFpbnMgdGhlIHZhbGlkIG1lcmdlZCBzb3J0aW5nIG9yZGVyIAorICAgICAqICAgICAgICAgd2l0aCBhIG51bGwgU3RyaW5nIHJlcHJlc2VudGF0aW9uLCAKKyAgICAgKiAgICAgICAgIGkuZS4gPHR0Pm5ldyBDb2xsYXRpb25LZXkobnVsbCwgbWVyZ2Vfc29ydF9vcmRlcik8L3R0PgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biBpZiBzb3VyY2UgQ29sbGF0aW9uS2V5CisgICAgICogICAgICAgICAgICBhcmd1bWVudCBpcyBudWxsIG9yIG9mIDAgbGVuZ3RoLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBDb2xsYXRpb25LZXkgbWVyZ2UoQ29sbGF0aW9uS2V5IHNvdXJjZSkKKyAgICB7CisgICAgICAgIC8vIGNoZWNrIGFyZ3VtZW50cworICAgICAgICBpZiAoc291cmNlID09IG51bGwgfHwgc291cmNlLmdldExlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvbktleSBhcmd1bWVudCBjYW4gbm90IGJlIG51bGwgb3Igb2YgMCBsZW5ndGgiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBnZXRMZW5ndGgoKTsgLy8gZ2V0cyB0aGUgbGVuZ3RoIG9mIHRoaXMgc29ydCBrZXkKKyAgICAgICAgaW50IHNvdXJjZWxlbmd0aCA9IHNvdXJjZS5nZXRMZW5ndGgoKTsKKyAgICAgICAgLy8gMSBleHRyYSBmb3IgdGhlIGxhc3Qgc3RyZW5ndGggdGhhdCBoYXMgbm8gc2VwZXJhdG9ycworICAgICAgICBieXRlIHJlc3VsdFtdID0gbmV3IGJ5dGVbbV9sZW5ndGhfICsgc291cmNlbGVuZ3RoICsgMl07CisgICAgCisgICAgICAgIC8vIG1lcmdlIHRoZSBzb3J0IGtleXMgd2l0aCB0aGUgc2FtZSBudW1iZXIgb2YgbGV2ZWxzCisgICAgICAgIGludCByaW5kZXggPSAwOworICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICBpbnQgc291cmNlaW5kZXggPSAwOworICAgICAgICB3aGlsZSAodHJ1ZSkgeyAKKyAgICAgICAgICAgIC8vIHdoaWxlIGJvdGggaGF2ZSBhbm90aGVyIGxldmVsCisgICAgICAgICAgICAvLyBjb3B5IGxldmVsIGZyb20gc3JjMSBub3QgaW5jbHVkaW5nIDAwIG9yIDAxCisgICAgICAgICAgICAvLyB1bnNpZ25lZCBpc3N1ZXMKKyAgICAgICAgICAgIHdoaWxlIChtX2tleV9baW5kZXhdIDwgMCB8fCBtX2tleV9baW5kZXhdID49IE1FUkdFX1NFUEVSQVRPUl8pIHsKKyAgICAgICAgICAgICAgICByZXN1bHRbcmluZGV4ICsrXSA9IG1fa2V5X1tpbmRleCArK107CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBhZGQgYSAwMiBtZXJnZSBzZXBhcmF0b3IKKyAgICAgICAgICAgIHJlc3VsdFtyaW5kZXggKytdID0gTUVSR0VfU0VQRVJBVE9SXzsKKyAgICAKKyAgICAgICAgICAgIC8vIGNvcHkgbGV2ZWwgZnJvbSBzcmMyIG5vdCBpbmNsdWRpbmcgMDAgb3IgMDEKKyAgICAgICAgICAgIHdoaWxlIChzb3VyY2UubV9rZXlfW3NvdXJjZWluZGV4XSA8IDAgCisgICAgICAgICAgICAgICAgICAgfHwgc291cmNlLm1fa2V5X1tzb3VyY2VpbmRleF0gPj0gTUVSR0VfU0VQRVJBVE9SXykgeworICAgICAgICAgICAgICAgIHJlc3VsdFtyaW5kZXggKytdID0gc291cmNlLm1fa2V5X1tzb3VyY2VpbmRleCArK107CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvLyBpZiBib3RoIHNvcnQga2V5cyBoYXZlIGFub3RoZXIgbGV2ZWwsIHRoZW4gYWRkIGEgMDEgbGV2ZWwgCisgICAgICAgICAgICAvLyBzZXBhcmF0b3IgYW5kIGNvbnRpbnVlCisgICAgICAgICAgICBpZiAobV9rZXlfW2luZGV4XSA9PSBSdWxlQmFzZWRDb2xsYXRvci5TT1JUX0xFVkVMX1RFUk1JTkFUT1JfCisgICAgICAgICAgICAgICAgJiYgc291cmNlLm1fa2V5X1tzb3VyY2VpbmRleF0gCisgICAgICAgICAgICAgICAgICAgICAgICA9PSBSdWxlQmFzZWRDb2xsYXRvci5TT1JUX0xFVkVMX1RFUk1JTkFUT1JfKSB7CisgICAgICAgICAgICAgICAgKysgaW5kZXg7CisgICAgICAgICAgICAgICAgKysgc291cmNlaW5kZXg7CisgICAgICAgICAgICAgICAgcmVzdWx0W3JpbmRleCArK10gPSBSdWxlQmFzZWRDb2xsYXRvci5TT1JUX0xFVkVMX1RFUk1JTkFUT1JfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gaGVyZSwgYXQgbGVhc3Qgb25lIHNvcnQga2V5IGlzIGZpbmlzaGVkIG5vdywgYnV0IHRoZSBvdGhlciBvbmUKKyAgICAgICAgLy8gbWlnaHQgaGF2ZSBzb21lIGNvbnRlbnRzIGxlZnQgZnJvbSBjb250YWluaW5nIG1vcmUgbGV2ZWxzOworICAgICAgICAvLyB0aGF0IGNvbnRlbnRzIGlzIGp1c3QgYXBwZW5kZWQgdG8gdGhlIHJlc3VsdAorICAgICAgICBpZiAobV9rZXlfW2luZGV4XSAhPSAwKSB7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1fa2V5XywgaW5kZXgsIHJlc3VsdCwgcmluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2xlbmd0aF8gLSBpbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc291cmNlLm1fa2V5X1tzb3VyY2VpbmRleF0gIT0gMCkgeworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzb3VyY2UubV9rZXlfLCBzb3VyY2VpbmRleCwgcmVzdWx0LCByaW5kZXgsICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLm1fbGVuZ3RoXyAtIHNvdXJjZWluZGV4KTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdID0gMDsKKyAgICAKKyAgICAgICAgLy8gdHJ1c3QgdGhhdCBuZWl0aGVyIHNvcnQga2V5IGNvbnRhaW5lZCBpbGxlZ2FsbHkgZW1iZWRkZWQgemVybyBieXRlcworICAgICAgICByZXR1cm4gbmV3IENvbGxhdGlvbktleShudWxsLCByZXN1bHQpOworICAgIH0KKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFNlcXVlbmNlIG9mIGJ5dGVzIHRoYXQgcmVwcmVzZW50cyB0aGUgc29ydCBrZXkKKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgbV9rZXlfW107CisgICAgCisgICAgLyoqCisgICAgICogU291cmNlIHN0cmluZyB0aGlzIENvbGxhdGlvbktleSByZXByZXNlbnRzCisgICAgICovICAgIAorICAgIHByaXZhdGUgU3RyaW5nIG1fc291cmNlXzsKKworICAgIC8qKgorICAgICAqIEhhc2ggY29kZSBmb3IgdGhlIGtleQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1faGFzaENvZGVfOworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxlbmd0aCBvZiB0aGlzIENvbGxhdGlvbktleQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fbGVuZ3RoXzsKKyAgICAvKioKKyAgICAgKiBDb2xsYXRpb24ga2V5IG1lcmdlIHNlcGVyYXRvcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNRVJHRV9TRVBFUkFUT1JfID0gMjsKKyAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGVuZ3RoIG9mIHRoZSBDb2xsYXRpb25LZXkKKyAgICAgKiBAcmV0dXJuIGxlbmd0aCBvZiB0aGUgQ29sbGF0aW9uS2V5CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0TGVuZ3RoKCkKKyAgICB7CisgICAgICAgIGlmIChtX2xlbmd0aF8gPj0gMCkgeworICAgICAgICAgICAgcmV0dXJuIG1fbGVuZ3RoXzsKKyAgICAgICAgfQorICAgICAgICBpbnQgbGVuZ3RoID0gbV9rZXlfLmxlbmd0aDsKKyAgICAgICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKyspIHsKKyAgICAgICAgICAgIGlmIChtX2tleV9baW5kZXhdID09IDApIHsKKyAgICAgICAgICAgICAgICBsZW5ndGggPSBpbmRleDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgbV9sZW5ndGhfID0gbGVuZ3RoOworICAgICAgICByZXR1cm4gbV9sZW5ndGhfOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2YjYxNjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsMzg2MiBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworIAoraW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVHJpZUJ1aWxkZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JbnRUcmllQnVpbGRlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRyaWVJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlckNhdGVnb3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTm9ybWFsaXplckltcGw7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5SYW5nZVZhbHVlSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworLyoqCisqIENsYXNzIGZvciBidWlsZGluZyBhIGNvbGxhdG9yIGZyb20gYSBsaXN0IG9mIGNvbGxhdGlvbiBydWxlcy4KKyogVGhpcyBjbGFzcyBpcyB1c2VzIENvbGxhdGlvblJ1bGVQYXJzZXIKKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIHJlbGVhc2UgMi4yLCBKdW5lIDExIDIwMDIKKyogQGRyYWZ0IDIuMgorKi8KK2ZpbmFsIGNsYXNzIENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyCit7ICAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IKKyAgICAgKiBAcGFyYW0gcnVsZXMgY29sbGF0aW9uIHJ1bGVzCisgICAgICogQGV4Y2VwdGlvbiBQYXJzZUV4Y2VwdGlvbiB0aHJvd24gd2hlbiBhcmd1bWVudCBydWxlcyBoYXZlIGFuIGludmFsaWQgCisgICAgICogICAgICAgICAgICBzeW50YXggCisgICAgICovCisgICAgQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIoU3RyaW5nIHJ1bGVzKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICB7CisgICAgICAgIG1fcGFyc2VyXyA9IG5ldyBDb2xsYXRpb25SdWxlUGFyc2VyKHJ1bGVzKTsKKyAgICAgICAgbV9wYXJzZXJfLmFzc2VtYmxlVG9rZW5MaXN0KCk7CisgICAgICAgIG1fdXRpbENvbEVJdGVyXyA9IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8uZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIik7CisgICAgfQorICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBpbm5lciBjbGFzc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqIAorICAgICAqIEludmVyc2UgVUNBIHdyYXBwZXIKKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgSW52ZXJzZVVDQSAKKyAgICB7CisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIEludmVyc2VVQ0EoKSAKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQXJyYXkgbGlzdCBvZiBjaGFyYWN0ZXJzCisgICAgICAgICAqLworICAgICAgICBpbnQgbV90YWJsZV9bXTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFycmF5IGxpc3Qgb2YgY29udGludWF0aW9uIGNoYXJhY3RlcnMKKyAgICAgICAgICovCisgICAgICAgIGNoYXIgbV9jb250aW51YXRpb25zX1tdOworICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVDQSB2ZXJzaW9uIG9mIGludmVyc2UgVUNBIHRhYmxlCisgICAgICAgICAqLworICAgICAgICBWZXJzaW9uSW5mbyBtX1VDQV92ZXJzaW9uXzsKKyAgICAgICAgCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHByZXZpb3VzIGludmVyc2UgY2VzIG9mIHRoZSBhcmd1bWVudCBjZXMKKyAgICAgKiBAcGFyYW0gY2UgY2UgdG8gdGVzdAorICAgICAqIEBwYXJhbSBjb250Y2UgY29udGludWF0aW9uIGNlIHRvIHRlc3QKKyAgICAgKiBAcGFyYW0gc3RyZW5ndGggY29sbGF0aW9uIHN0cmVuZ3RoCisgICAgICogQHBhcmFtIHByZXZyZXN1bHQgYW4gYXJyYXkgdG8gc3RvcmUgdGhlIHJldHVybiByZXN1bHRzIHByZXZpb3VzIAorICAgICAgICAgKiAgICAgICAgICAgICAgICAgICBpbnZlcnNlIGNlIGFuZCBwcmV2aW91cyBpbnZlcnNlIGNvbnRpbnVhdGlvbiBjZQorICAgICAgICAgKiBAcmV0dXJuIHJlc3VsdCBvZiB0aGUgaW52ZXJzZSBjZSAKKyAgICAgKi8KKyAgICBmaW5hbCBpbnQgZ2V0SW52ZXJzZVByZXZDRShpbnQgY2UsIGludCBjb250Y2UsIGludCBzdHJlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgaW50IHByZXZyZXN1bHRbXSkgCisgICAgeworICAgICAgICBpbnQgcmVzdWx0ID0gZmluZEludmVyc2VDRShjZSwgY29udGNlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAgIHByZXZyZXN1bHRbMF0gPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSOworICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNlICY9IFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXTsKKyAgICAgICAgY29udGNlICY9IFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXTsKKyAgICAgICAgCisgICAgICAgICAgICBwcmV2cmVzdWx0WzBdID0gY2U7CisgICAgICAgIHByZXZyZXN1bHRbMV0gPSBjb250Y2U7CisgICAgICAgIAorICAgICAgICB3aGlsZSAoKHByZXZyZXN1bHRbMF0gICYgU1RSRU5HVEhfTUFTS19bc3RyZW5ndGhdKSA9PSBjZSAKKyAgICAgICAgICAgJiYgKHByZXZyZXN1bHRbMV0gICYgU1RSRU5HVEhfTUFTS19bc3RyZW5ndGhdKT09IGNvbnRjZQorICAgICAgICAgICAmJiByZXN1bHQgPiAwKSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBjb25kaXRpb24gc2hvdWxkIHByZXZlbnQgZmFsbGluZyBvZmYgdGhlIGVkZ2Ugb2YgdGhlIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd29ybGQgCisgICAgICAgICAgICAgICAgLy8gaGVyZSwgd2UgZW5kIHVwIGluIGEgc2luZ3VsYXJpdHkgLSB6ZXJvCisgICAgICAgICAgICAgICAgcHJldnJlc3VsdFswXSA9IG1fdGFibGVfWzMgKiAoLS0gcmVzdWx0KV07CisgICAgICAgICAgICAgICAgcHJldnJlc3VsdFsxXSA9IG1fdGFibGVfWzMgKiByZXN1bHQgKyAxXTsKKyAgICAgICAgICAgfQorICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmaW5hbCBpbnQgZ2V0Q0VTdHJlbmd0aERpZmZlcmVuY2UoaW50IENFLCBpbnQgY29udENFLCAKKyAgICAgICAgICAgICAgICBpbnQgcHJldkNFLCBpbnQgcHJldkNvbnRDRSkgeworICAgICAgICAgICAgaW50IHN0cmVuZ3RoID0gQ29sbGF0b3IuVEVSVElBUlk7CisgICAgICAgICAgICB3aGlsZSgKKyAgICAgICAgICAgICgocHJldkNFICYgU1RSRU5HVEhfTUFTS19bc3RyZW5ndGhdKSAhPSAoQ0UgJiBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF0pIAorICAgICAgICAgICAgfHwgKHByZXZDb250Q0UgJiBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF0pICE9IChjb250Q0UgJiBTVFJFTkdUSF9NQVNLX1tzdHJlbmd0aF0pKQorICAgICAgICAgICAgJiYgKHN0cmVuZ3RoICE9IDApKSB7CisgICAgICAgICAgICAgICAgc3RyZW5ndGgtLTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzdHJlbmd0aDsgICAgICAgICAgICAgICAgCisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIGludCBjb21wYXJlQ0VzKGludCBzb3VyY2UwLCBpbnQgc291cmNlMSwgaW50IHRhcmdldDAsIGludCB0YXJnZXQxKSB7CisgICAgICAgICAgICBpbnQgczEgPSBzb3VyY2UwLCBzMiwgdDEgPSB0YXJnZXQwLCB0MjsKKyAgICAgICAgICAgIGlmKFJ1bGVCYXNlZENvbGxhdG9yLmlzQ29udGludWF0aW9uKHNvdXJjZTEpKSB7CisgICAgICAgICAgICAgICAgczIgPSBzb3VyY2UxOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzMiA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihSdWxlQmFzZWRDb2xsYXRvci5pc0NvbnRpbnVhdGlvbih0YXJnZXQxKSkgeworICAgICAgICAgICAgICAgIHQyID0gdGFyZ2V0MTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdDIgPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgcyA9IDAsIHQgPSAwOworICAgICAgICAgICAgaWYoczEgPT0gdDEgJiYgczIgPT0gdDIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHMgPSAoczEgJiAweEZGRkYwMDAwKXwoKHMyICYgMHhGRkZGMDAwMCk+PjE2KTsgCisgICAgICAgICAgICB0ID0gKHQxICYgMHhGRkZGMDAwMCl8KCh0MiAmIDB4RkZGRjAwMDApPj4xNik7CisgICAgICAgICAgICBpZihzID09IHQpIHsKKyAgICAgICAgICAgICAgICBzID0gKHMxICYgMHgwMDAwRkYwMCkgfCAoczIgJiAweDAwMDBGRjAwKT4+ODsKKyAgICAgICAgICAgICAgICB0ID0gKHQxICYgMHgwMDAwRkYwMCkgfCAodDIgJiAweDAwMDBGRjAwKT4+ODsKKyAgICAgICAgICAgICAgICBpZihzID09IHQpIHsKKyAgICAgICAgICAgICAgICAgICAgcyA9IChzMSAmIDB4MDAwMDAwRkYpPDw4IHwgKHMyICYgMHgwMDAwMDBGRik7CisgICAgICAgICAgICAgICAgICAgIHQgPSAodDEgJiAweDAwMDAwMEZGKTw8OCB8ICh0MiAmIDB4MDAwMDAwRkYpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gVXRpbGl0eS5jb21wYXJlVW5zaWduZWQocywgdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVdGlsaXR5LmNvbXBhcmVVbnNpZ25lZChzLCB0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBVdGlsaXR5LmNvbXBhcmVVbnNpZ25lZChzLCB0KTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBGaW5kaW5nIHRoZSBpbnZlcnNlIENFIG9mIHRoZSBhcmd1bWVudCBDRXMKKyAgICAgICAgICogQHBhcmFtIGNlIENFIHRvIGJlIHRlc3RlZAorICAgICAgICAgKiBAcGFyYW0gY29udGNlIGNvbnRpbnVhdGlvbiBDRQorICAgICAgICAgKiBAcmV0dXJuIGludmVyc2UgQ0UKKyAgICAgICAgICovCisgICAgICAgIGludCBmaW5kSW52ZXJzZUNFKGludCBjZSwgaW50IGNvbnRjZSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBib3R0b20gPSAwOworICAgICAgICAgICAgaW50IHRvcCA9IG1fdGFibGVfLmxlbmd0aCAvIDM7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKGJvdHRvbSA8IHRvcCAtIDEpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAodG9wICsgYm90dG9tKSA+PiAxOworICAgICAgICAgICAgICAgIGludCBmaXJzdCA9IG1fdGFibGVfWzMgKiByZXN1bHRdOworICAgICAgICAgICAgICAgIGludCBzZWNvbmQgPSBtX3RhYmxlX1szICogcmVzdWx0ICsgMV07CisgICAgICAgICAgICAgICAgaW50IGNvbXBhcmlzb24gPSBjb21wYXJlQ0VzKGZpcnN0LCBzZWNvbmQsIGNlLCBjb250Y2UpOworICAgICAgICAgICAgICAgIGlmIChjb21wYXJpc29uID4gMCkgeworICAgICAgICAgICAgICAgICAgICB0b3AgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChjb21wYXJpc29uIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBib3R0b20gPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICBlbHNlIHsgCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHRpbmcgZ2FwIG9mZnNldHMgaW4gdGhlIGludmVyc2UgVUNBCisgICAgICogQHBhcmFtIGxpc3RoZWFkZXIgcGFyc2VkIHRva2VuIGxpc3RzCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gdGhyb3duIHdoZW4gZXJyb3Igb2NjdXJzIHdoaWxlIGZpbmRpbmcgdGhlIAorICAgICAqICAgICAgICAgICAgY29sbGF0aW9uIGdhcHMKKyAgICAgKi8KKyAgICB2b2lkIGdldEludmVyc2VHYXBQb3NpdGlvbnMoQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbkxpc3RIZWFkZXIgCisgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIpCisgICAgICAgIHRocm93cyBFeGNlcHRpb24gCisgICAgeworICAgICAgICAvLyByZXNldCBhbGwgdGhlIGdhcHMKKyAgICAgICAgQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbiB0b2tlbiA9IGxpc3RoZWFkZXIubV9maXJzdF87CisgICAgICAgIGludCB0b2tlbnN0cmVuZ3RoID0gdG9rZW4ubV9zdHJlbmd0aF87CisgICAgCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgaSArKykgeworICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1szICogaV0gPSAwOworICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1szICogaSArIDFdID0gMDsKKyAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMyAqIGkgKyAyXSA9IDA7CisgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzMgKiBpXSA9IDA7CisgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzMgKiBpICsgMV0gPSAwOworICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1szICogaSArIDJdID0gMDsKKyAgICAgICAgbGlzdGhlYWRlci5tX251bVN0cl9baV0gPSAwOworICAgICAgICBsaXN0aGVhZGVyLm1fZlN0clRva2VuX1tpXSA9IG51bGw7CisgICAgICAgIGxpc3RoZWFkZXIubV9sU3RyVG9rZW5fW2ldID0gbnVsbDsKKyAgICAgICAgbGlzdGhlYWRlci5tX3Bvc19baV0gPSAtMTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoKGxpc3RoZWFkZXIubV9iYXNlQ0VfID4+PiAyNCkgCisgICAgICAgICAgICAgICAgPj0gUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uUFJJTUFSWV9JTVBMSUNJVF9NSU5fCisgICAgICAgICYmIChsaXN0aGVhZGVyLm1fYmFzZUNFXyA+Pj4gMjQpCisgICAgICAgICAgICAgICAgPD0gUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uUFJJTUFSWV9JTVBMSUNJVF9NQVhfKSAKKyAgICAgICAgeyAKKyAgICAgICAgICAgICAgICAvLyBpbXBsaWNpdHMgLQorICAgICAgICAgICAgbGlzdGhlYWRlci5tX3Bvc19bMF0gPSAwOworICAgICAgICAgICAgaW50IHQxID0gbGlzdGhlYWRlci5tX2Jhc2VDRV87CisgICAgICAgICAgICBpbnQgdDIgPSBsaXN0aGVhZGVyLm1fYmFzZUNvbnRDRV87CisgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1swXSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1sxXSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzJdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgICAgICBpbnQgcHJpbWFyeUNFID0gdDEgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfIHwgKHQyICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXykgPj4+IDE2OworICAgICAgICAgICAgcHJpbWFyeUNFID0gUnVsZUJhc2VkQ29sbGF0b3IuaW1wQ0VHZW5fLmdldEltcGxpY2l0RnJvbVJhdyhSdWxlQmFzZWRDb2xsYXRvci5pbXBDRUdlbl8uZ2V0UmF3RnJvbUltcGxpY2l0KHByaW1hcnlDRSkrMSk7CisKKyAgICAgICAgICAgIHQxID0gcHJpbWFyeUNFICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXyB8IDB4MDUwNTsKKyAgICAgICAgICAgIHQyID0gKHByaW1hcnlDRSA8PCAxNikgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfIHwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfQ09OVElOVUFUSU9OX01BUktFUl87CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICBpZiAobGlzdGhlYWRlci5tX2Jhc2VDRV8gPCAweEVGMDAwMDAwKSB7CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgLy8gZmlyc3QgaW1wbGljaXRzIGhhdmUgdGhyZWUgYnl0ZSBwcmltYXJpZXMsIHdpdGggYSBnYXAgb2YKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAvLyBvbmUgc28gd2UgZXNlbnRpYWxseSBuZWVkIHRvIGFkZCAyIHRvIHRoZSB0b3AgYnl0ZSBpbiAKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAvLyBsaXN0aGVhZGVyLm1fYmFzZUNvbnRDRV8KKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICB0MiArPSAweDAyMDAwMDAwOworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIC8vIHNlY29uZCBpbXBsaWNpdHMgaGF2ZSBmb3VyIGJ5dGUgcHJpbWFyaWVzLCB3aXRoIGEgZ2FwIG9mCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgLy8gSU1QTElDSVRfTEFTVDJfTVVMVElQTElFUl8KKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAvLyBOb3csIHRoaXMgZ3V5IGlzIG5vdCByZWFsbHkgYWNjZXNzaWJsZSBoZXJlLCBzbyB1bnRpbCB3ZSAKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAvLyBmaW5kIGEgYmV0dGVyIHdheSB0byBwYXNzIGl0IGFyb3VuZCwgYXNzdW1lIHRoYXQgdGhlIGdhcCBpcyAxCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgdDIgKz0gMHgwMDAyMDAwMDsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzBdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzFdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMl0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSBpZiAobGlzdGhlYWRlci5tX2luZGlyZWN0XyA9PSB0cnVlIAorICAgICAgICAgICAgICAgICAgICAgJiYgbGlzdGhlYWRlci5tX25leHRDRV8gIT0gMCkgeworICAgICAgICBsaXN0aGVhZGVyLm1fcG9zX1swXSA9IDA7CisgICAgICAgIGludCB0MSA9IGxpc3RoZWFkZXIubV9iYXNlQ0VfOworICAgICAgICBpbnQgdDIgPSBsaXN0aGVhZGVyLm1fYmFzZUNvbnRDRV87CisgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzBdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZKTsKKyAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMV0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzJdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIHQxID0gbGlzdGhlYWRlci5tX25leHRDRV87CisgICAgICAgIHQyID0gbGlzdGhlYWRlci5tX25leHRDb250Q0VfOworICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1swXSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzFdID0gbWVyZ2VDRSh0MSwgdDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5TRUNPTkRBUlkpOworICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1syXSA9IG1lcmdlQ0UodDEsIHQyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmICh0b2tlbnN0cmVuZ3RoIDwgQ0VfQkFTSUNfU1RSRU5HVEhfTElNSVRfKSB7CisgICAgICAgICAgICBsaXN0aGVhZGVyLm1fcG9zX1t0b2tlbnN0cmVuZ3RoXSAKKyAgICAgICAgICAgICAgICA9IGdldEludmVyc2VOZXh0KGxpc3RoZWFkZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgIHRva2Vuc3RyZW5ndGgpOworICAgICAgICAgICAgaWYgKGxpc3RoZWFkZXIubV9wb3NfW3Rva2Vuc3RyZW5ndGhdID49IDApIHsKKyAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZlN0clRva2VuX1t0b2tlbnN0cmVuZ3RoXSA9IHRva2VuOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgQ0UgbXVzdCBiZSBpbXBsaWNpdCwgc2luY2UgaXQncyBub3QgaW4gdGhlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRhYmxlIAorICAgICAgICAgICAgICAgIC8vIEVycm9yCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiSW50ZXJuYWwgcHJvZ3JhbSBlcnJvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAodG9rZW4gIT0gbnVsbCAmJiB0b2tlbi5tX3N0cmVuZ3RoXyA+PSB0b2tlbnN0cmVuZ3RoKSAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAodG9rZW5zdHJlbmd0aCA8IENFX0JBU0lDX1NUUkVOR1RIX0xJTUlUXykgeworICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9sU3RyVG9rZW5fW3Rva2Vuc3RyZW5ndGhdID0gdG9rZW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRva2VuID0gdG9rZW4ubV9uZXh0XzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0b2tlbnN0cmVuZ3RoIDwgQ0VfQkFTSUNfU1RSRU5HVEhfTElNSVRfIC0gMSkgeworICAgICAgICAgICAgLy8gY2hlY2sgaWYgcHJldmlvdXMgaW50ZXJ2YWwgaXMgdGhlIHNhbWUgYW5kIG1lcmdlIHRoZSAKKyAgICAgICAgICAgIC8vIGludGVydmFscyBpZiBpdCBpcyBzbworICAgICAgICAgICAgaWYgKGxpc3RoZWFkZXIubV9wb3NfW3Rva2Vuc3RyZW5ndGhdIAorICAgICAgICAgICAgICAgID09IGxpc3RoZWFkZXIubV9wb3NfW3Rva2Vuc3RyZW5ndGggKyAxXSkgeworICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9mU3RyVG9rZW5fW3Rva2Vuc3RyZW5ndGhdIAorICAgICAgICAgICAgICAgID0gbGlzdGhlYWRlci5tX2ZTdHJUb2tlbl9bdG9rZW5zdHJlbmd0aCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAxXTsKKyAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZlN0clRva2VuX1t0b2tlbnN0cmVuZ3RoICsgMV0gPSBudWxsOworICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9sU3RyVG9rZW5fW3Rva2Vuc3RyZW5ndGggKyAxXSA9IG51bGw7CisgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX3Bvc19bdG9rZW5zdHJlbmd0aCArIDFdID0gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodG9rZW4gIT0gbnVsbCkgeworICAgICAgICAgICAgdG9rZW5zdHJlbmd0aCA9IHRva2VuLm1fc3RyZW5ndGhfOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgc3QgPSAwOyBzdCA8IDM7IHN0ICsrKSB7CisgICAgICAgICAgICBpbnQgcG9zID0gbGlzdGhlYWRlci5tX3Bvc19bc3RdOworICAgICAgICAgICAgaWYgKHBvcyA+PSAwKSB7CisgICAgICAgICAgICBpbnQgdDEgPSBtX3RhYmxlX1szICogcG9zXTsKKyAgICAgICAgICAgIGludCB0MiA9IG1fdGFibGVfWzMgKiBwb3MgKyAxXTsKKyAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfWzMgKiBzdF0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNIaV9bMyAqIHN0ICsgMV0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpX1szICogc3QgKyAyXSA9ICh0MSAmIDB4M2YpIDw8IDI0IAorICAgICAgICAgICAgICAgIHwgKHQyICYgMHgzZikgPDwgMTY7CisgICAgICAgICAgICAvL3BvcyAtLTsKKyAgICAgICAgICAgIC8vdDEgPSBtX3RhYmxlX1szICogcG9zXTsKKyAgICAgICAgICAgIC8vdDIgPSBtX3RhYmxlX1szICogcG9zICsgMV07CisgICAgICAgICAgICB0MSA9IGxpc3RoZWFkZXIubV9iYXNlQ0VfOworICAgICAgICAgICAgdDIgPSBsaXN0aGVhZGVyLm1fYmFzZUNvbnRDRV87CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fWzMgKiBzdF0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlBSSU1BUlkpOworICAgICAgICAgICAgbGlzdGhlYWRlci5tX2dhcHNMb19bMyAqIHN0ICsgMV0gPSBtZXJnZUNFKHQxLCB0MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvX1szICogc3QgKyAyXSA9ICh0MSAmIDB4M2YpIDw8IDI0IAorICAgICAgICAgICAgICAgIHwgKHQyICYgMHgzZikgPDwgMTY7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIG5leHQgQ0UgaW4gdGhlIGludmVyc2UgdGFibGUKKyAgICAgKiBAcGFyYW0gbGlzdGhlYWRlciB0b2tlbiBsaXN0IGhlYWRlcgorICAgICAqIEBwYXJhbSBzdHJlbmd0aCBjb2xsYXRpb24gc3RyZW5ndGgKKyAgICAgKiBAcmV0dXJuIG5leHQgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBnZXRJbnZlcnNlTmV4dChDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuTGlzdEhlYWRlciAKKyAgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIsIAorICAgICAgICAgICAgICAgICAgICAgaW50IHN0cmVuZ3RoKSAKKyAgICB7CisgICAgICAgIGludCBjZSA9IGxpc3RoZWFkZXIubV9iYXNlQ0VfOworICAgICAgICBpbnQgc2Vjb25kY2UgPSBsaXN0aGVhZGVyLm1fYmFzZUNvbnRDRV87IAorICAgICAgICBpbnQgcmVzdWx0ID0gZmluZEludmVyc2VDRShjZSwgc2Vjb25kY2UpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNlICY9IFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXTsKKyAgICAgICAgc2Vjb25kY2UgJj0gU1RSRU5HVEhfTUFTS19bc3RyZW5ndGhdOworICAgICAgICAKKyAgICAgICAgaW50IG5leHRjZSA9IGNlOworICAgICAgICBpbnQgbmV4dGNvbnRjZSA9IHNlY29uZGNlOworICAgICAgICAKKyAgICAgICAgd2hpbGUoKG5leHRjZSAmIFNUUkVOR1RIX01BU0tfW3N0cmVuZ3RoXSkgPT0gY2UgCisgICAgICAgICAgJiYgKG5leHRjb250Y2UgICYgU1RSRU5HVEhfTUFTS19bc3RyZW5ndGhdKSA9PSBzZWNvbmRjZSkgeworICAgICAgICBuZXh0Y2UgPSBtX3RhYmxlX1szICogKCsrIHJlc3VsdCldOworICAgICAgICBuZXh0Y29udGNlID0gbV90YWJsZV9bMyAqIHJlc3VsdCArIDFdOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgbGlzdGhlYWRlci5tX25leHRDRV8gPSBuZXh0Y2U7CisgICAgICAgIGxpc3RoZWFkZXIubV9uZXh0Q29udENFXyA9IG5leHRjb250Y2U7CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICB9CisKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEludmVyc2UgVUNBLCBpbnN0YW50aWF0ZSBvbmx5IHdoZW4gcmVxdWlyZWQKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgSW52ZXJzZVVDQSBJTlZFUlNFX1VDQV87IAorICAgIAorICAgIC8qKgorICAgICAqIFVDQSBhbmQgSW52ZXJzZSBVQ0EgdmVyc2lvbiBkbyBub3QgbWF0Y2gKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSU5WX1VDQV9WRVJTSU9OX01JU01BVENIXyA9CisgICAgIlVDQSB2ZXJzaW9ucyBvZiBVQ0EgYW5kIGludmVyc2UgVUNBIHNob3VsZCBtYXRjaCI7CisgICAgICAgICAgIAorICAgIC8qKgorICAgICAqIFVDQSBhbmQgSW52ZXJzZSBVQ0EgdmVyc2lvbiBkbyBub3QgbWF0Y2gKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVUNBX05PVF9JTlNUQU5USUFURURfID0KKyAgICAiVUNBIGlzIG5vdCBpbnN0YW50aWF0ZWQhIjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXppbmcgdGhlIGludmVyc2UgVUNBCisgICAgICovCisgICAgc3RhdGljIHsKKyAgICAgICAgSW52ZXJzZVVDQSB0ZW1wID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgdGVtcCA9IENvbGxhdG9yUmVhZGVyLmdldEludmVyc2VVQ0EoKTsKKyAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgfQorICAgICAgICAvKgorICAgICAgdHJ5CisgICAgICB7CisgICAgICBTdHJpbmcgaW52ZGF0ID0gIi9jb20vaWJtL2ljdS9pbXBsL2RhdGEvaW52dWNhLmljdSI7CisgICAgICBJbnB1dFN0cmVhbSBpID0gQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuY2xhc3MuZ2V0UmVzb3VyY2VBc1N0cmVhbShpbnZkYXQpOworICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaSwgMTEwMDAwKTsKKyAgICAgIElOVkVSU0VfVUNBXyA9IENvbGxhdG9yUmVhZGVyLnJlYWRJbnZlcnNlVUNBKGIpOworICAgICAgYi5jbG9zZSgpOworICAgICAgaS5jbG9zZSgpOworICAgICAgfQorICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKQorICAgICAgeworICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgIH0KKyAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIGlmKHRlbXAgIT0gbnVsbCAmJiBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmKCF0ZW1wLm1fVUNBX3ZlcnNpb25fLmVxdWFscyhSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLm1fVUNBX3ZlcnNpb25fKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKElOVl9VQ0FfVkVSU0lPTl9NSVNNQVRDSF8pOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oVUNBX05PVF9JTlNUQU5USUFURURfKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgSU5WRVJTRV9VQ0FfID0gdGVtcDsKKyAgICB9CisgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhbmQgc2V0cyB0aGUgY29sbGF0aW9uIHJ1bGVzIGluIHRoZSBhcmd1bWVudCBjb2xsYXRvcgorICAgICAqIEBwYXJhbSBjb2xsYXRvciB0byBzZXQKKyAgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBpbnRlcm5hbCBwcm9ncmFtIGVycm9yIG9jY3VycworICAgICAqLworICAgIHZvaWQgc2V0UnVsZXMoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIGlmIChtX3BhcnNlcl8ubV9yZXN1bHRMZW5ndGhfID4gMCB8fCBtX3BhcnNlcl8ubV9yZW1vdmVTZXRfICE9IG51bGwpIHsgCisgICAgICAgIC8vIHdlIGhhdmUgYSBzZXQgb2YgcnVsZXMsIGxldCdzIG1ha2Ugc29tZXRoaW5nIG9mIGl0IAorICAgICAgICBhc3NlbWJsZVRhaWxvcmluZ1RhYmxlKGNvbGxhdG9yKTsKKyAgICB9IAorICAgIGVsc2UgeyAvLyBubyBydWxlcywgYnV0IG5vIGVycm9yIGVpdGhlciBtdXN0IGJlIG9ubHkgb3B0aW9ucworICAgICAgICAvLyBXZSB3aWxsIGluaXQgdGhlIGNvbGxhdG9yIGZyb20gVUNBICAgCisgICAgICAgIGNvbGxhdG9yLnNldFdpdGhVQ0FUYWJsZXMoKTsKKyAgICB9CisgICAgICAgIC8vIEFuZCBzZXQgb25seSB0aGUgb3B0aW9ucworICAgICAgICBtX3BhcnNlcl8uc2V0RGVmYXVsdE9wdGlvbnNJbkNvbGxhdG9yKGNvbGxhdG9yKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNvcHlSYW5nZUZyb21VQ0EoQnVpbGRUYWJsZSB0LCBpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgaW50IHUgPSAwOworICAgICAgICBmb3IgKHUgPSBzdGFydDsgdSA8PSBlbmQ7IHUgKyspIHsKKyAgICAgICAgICAgIC8vIGlmICgoQ0UgPSB1Y21wZTMyX2dldCh0Lm1fbWFwcGluZywgdSkpID09IFVDT0xfTk9UX0ZPVU5ECisgICAgICAgICAgICBpbnQgQ0UgPSB0Lm1fbWFwcGluZ18uZ2V0VmFsdWUodSk7CisgICAgICAgICAgICBpZiAoQ0UgPT0gQ0VfTk9UX0ZPVU5EXyAKKyAgICAgICAgICAgICAgICAvLyB0aGlzIHRlc3QgaXMgZm9yIGNvbnRyYWN0aW9ucyB0aGF0IGFyZSBtaXNzaW5nIHRoZSBzdGFydGluZyAKKyAgICAgICAgICAgICAgICAvLyBlbGVtZW50LiBMb29rcyBsaWtlIGxhdGluLTEgc2hvdWxkIGJlIGRvbmUgYmVmb3JlIAorICAgICAgICAgICAgICAgIC8vIGFzc2VtYmxpbmcgdGhlIHRhYmxlLCBldmVuIGlmIGl0IHJlc3VsdHMgaW4gbW9yZSBmYWxzZSAKKyAgICAgICAgICAgICAgICAvLyBjbG9zdXJlIGVsZW1lbnRzCisgICAgICAgICAgICAgICAgfHwgKGlzQ29udHJhY3Rpb25UYWJsZUVsZW1lbnQoQ0UpIAorICAgICAgICAgICAgJiYgZ2V0Q0UodC5tX2NvbnRyYWN0aW9uc18sIENFLCAwKSA9PSBDRV9OT1RfRk9VTkRfKSkgeworICAgICAgICAgICAgICAgIC8vbV91dGlsRWxlbWVudF8ubV91Y2hhcnNfID0gc3RyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV91Y2hhcnNfID0gVUNoYXJhY3Rlci50b1N0cmluZyh1KTsKKyAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX2NQb2ludHNfID0gbV91dGlsRWxlbWVudF8ubV91Y2hhcnNfOworICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fcHJlZml4XyA9IDA7CisgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRUxlbmd0aF8gPSAwOworICAgICAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRUZXh0KG1fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXyk7CisgICAgICAgICAgICAgICAgd2hpbGUgKENFICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgQ0UgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoQ0UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRXNfW21fdXRpbEVsZW1lbnRfLm1fQ0VMZW5ndGhfICsrXSAKKyAgICAgICAgICAgICAgICA9IENFOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFkZEFuRWxlbWVudCh0LCBtX3V0aWxFbGVtZW50Xyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiAyLiAgRWxpbWluYXRlIHRoZSBuZWdhdGl2ZSBsaXN0cyBieSBkb2luZyB0aGUgZm9sbG93aW5nIGZvciBlYWNoIAorICAgICAqIG5vbi1udWxsIG5lZ2F0aXZlIGxpc3Q6IAorICAgICAqIG8gICBpZiBwcmV2aW91c0NFKGJhc2VDRSwgc3Ryb25nZXN0TikgIT0gc29tZSBMaXN0SGVhZGVyIFgncyBiYXNlQ0UsIAorICAgICAqIGNyZWF0ZSBuZXcgTGlzdEhlYWRlciBYIAorICAgICAqIG8gICByZXZlcnNlIHRoZSBsaXN0LCBhZGQgdG8gdGhlIGVuZCBvZiBYJ3MgcG9zaXRpdmUgbGlzdC4gUmVzZXQgdGhlIAorICAgICAqIHN0cmVuZ3RoIG9mIHRoZSBmaXJzdCBpdGVtIHlvdSBhZGQsIGJhc2VkIG9uIHRoZSBzdHJvbmdlciBzdHJlbmd0aCAKKyAgICAgKiBsZXZlbHMgb2YgdGhlIHR3byBsaXN0cy4gCisgICAgICogCisgICAgICogMy4gIEZvciBlYWNoIExpc3RIZWFkZXIgd2l0aCBhIG5vbi1udWxsIHBvc2l0aXZlIGxpc3Q6IAorICAgICAqIG8gICBGaW5kIGFsbCBjaGFyYWN0ZXIgc3RyaW5ncyB3aXRoIENFcyBiZXR3ZWVuIHRoZSBiYXNlQ0UgYW5kIHRoZSAKKyAgICAgKiBuZXh0L3ByZXZpb3VzIENFLCBhdCB0aGUgc3RyZW5ndGggb2YgdGhlIGZpcnN0IHRva2VuLiBBZGQgdGhlc2UgdG8gdGhlIAorICAgICAqIHRhaWxvcmluZy4gCisgICAgICogICAgID8gVGhhdCBpcywgaWYgVUNBIGhhcyAuLi4gIHggPDw8IFggPDwgeCcgPDw8IFgnIDwgeSAuLi4sIGFuZCB0aGUgCisgICAgICogICAgICAgdGFpbG9yaW5nIGhhcyAmIHggPCB6Li4uIAorICAgICAqICAgICA/IFRoZW4gd2UgY2hhbmdlIHRoZSB0YWlsb3JpbmcgdG8gJiB4ICA8PDwgWCA8PCB4JyA8PDwgWCcgPCB6IC4uLiAKKyAgICAgKiAKKyAgICAgKiBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoaXMgcGFydCBzaG91bGQgYmUgZG9uZSBldmVuIHdoaWxlIGNvbnN0cnVjdGluZyBsaXN0CisgICAgICogVGhlIHByb2JsZW0gaXMgdGhhdCBpdCBpcyB1bmtub3duIHdoYXQgaXMgZ29pbmcgdG8gYmUgdGhlIHN0cm9uZ2VzdCAKKyAgICAgKiB3ZWlnaHQuCisgICAgICogU28gd2UgbWlnaHQgYXMgd2VsbCBkbyBpdCBoZXJlCisgICAgICogbyAgIEFsbG9jYXRlIENFcyBmb3IgZWFjaCB0b2tlbiBpbiB0aGUgbGlzdCwgYmFzZWQgb24gdGhlIHRvdGFsIG51bWJlciBOIAorICAgICAqIG9mIHRoZSBsYXJnZXN0IGxldmVsIGRpZmZlcmVuY2UsIGFuZCB0aGUgZ2FwIEcgYmV0d2VlbiBiYXNlQ0UgYW5kIG5leHRDRSAKKyAgICAgKiBhdCB0aGF0IGxldmVsLiBUaGUgcmVsYXRpb24gKiBiZXR3ZWVuIHRoZSBsYXN0IGl0ZW0gYW5kIG5leHRDRSBpcyB0aGUgCisgICAgICogc2FtZSBhcyB0aGUgc3Ryb25nZXN0IHN0cmVuZ3RoLiAKKyAgICAgKiBvICAgRXhhbXBsZTogYmFzZUNFIDwgYSA8PCBiIDw8PCBxIDw8IGMgPCBkIDwgZSAqIG5leHRDRShYLDEpIAorICAgICAqICAgICA/IFRoZXJlIGFyZSAzIHByaW1hcnkgaXRlbXM6IGEsIGQsIGUuIEZpdCB0aGVtIGludG8gdGhlIHByaW1hcnkgZ2FwLiAKKyAgICAgKiAgICAgVGhlbiBmaXQgYiBhbmQgYyBpbnRvIHRoZSBzZWNvbmRhcnkgZ2FwIGJldHdlZW4gYSBhbmQgZCwgdGhlbiBmaXQgcSAKKyAgICAgKiAgICAgaW50byB0aGUgdGVydGlhcnkgZ2FwIGJldHdlZW4gYiBhbmQgYy4gCisgICAgICogbyAgIEV4YW1wbGU6IGJhc2VDRSA8PCBiIDw8PCBxIDw8IGMgKiBuZXh0Q0UoWCwyKSAKKyAgICAgKiAgICAgPyBUaGVyZSBhcmUgMiBzZWNvbmRhcnkgaXRlbXM6IGIsIGMuIEZpdCB0aGVtIGludG8gdGhlIHNlY29uZGFyeSBnYXAuIAorICAgICAqICAgICAgIFRoZW4gZml0IHEgaW50byB0aGUgdGVydGlhcnkgZ2FwIGJldHdlZW4gYiBhbmQgYy4gCisgICAgICogbyAgIFdoZW4gaW5jcmVtZW50aW5nIHByaW1hcnkgdmFsdWVzLCB3ZSB3aWxsIG5vdCBjcm9zcyBoaWdoIGJ5dGUgCisgICAgICogICAgIGJvdW5kYXJpZXMgZXhjZXB0IHdoZXJlIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUtYnl0ZSBwcmltYXJ5LiBUaGF0IGlzIAorICAgICAqICAgICB0byBlbnN1cmUgdGhhdCB0aGUgc2NyaXB0IHJlb3JkZXJpbmcgd2lsbCBjb250aW51ZSB0byB3b3JrLiAKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgdGhlIHJ1bGUgYmFzZWQgY29sbGF0b3IgdG8gdXBkYXRlCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gdGhyb3duIHdoZW4gaW50ZXJuYWwgcHJvZ3JhbSBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICB2b2lkIGFzc2VtYmxlVGFpbG9yaW5nVGFibGUoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9wYXJzZXJfLm1fcmVzdWx0TGVuZ3RoXzsgaSArKykgeworICAgICAgICAvLyBub3cgd2UgbmVlZCB0byBnZW5lcmF0ZSB0aGUgQ0VzICAKKyAgICAgICAgLy8gV2Ugc3R1ZmYgdGhlIGluaXRpYWwgdmFsdWUgaW4gdGhlIGJ1ZmZlcnMsIGFuZCBpbmNyZWFzZSB0aGUgCisgICAgICAgICAgICAvLyBhcHByb3ByaWF0ZSBidWZmZXIgYWNjb3JkaW5nIHRvIHN0cmVuZ3RoCisgICAgICAgICAgICBpZiAgKG1fcGFyc2VyXy5tX2xpc3RIZWFkZXJfW2ldLm1fZmlyc3RfICE9IG51bGwpIHsgCisgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgYXJlIGFueSBlbGVtZW50cworICAgICAgICAgICAgICAgIC8vIGR1ZSB0byB0aGUgd2F5IHBhcnNlciB3b3Jrcywgc3Vic2VxdWVudCB0YWlsb3JpbmdzCisgICAgICAgICAgICAgICAgLy8gbWF5IHJlbW92ZSBhbGwgdGhlIGVsZW1lbnRzIGZyb20gYSBzZXF1ZW5jZSwgdGhlcmVmb3JlCisgICAgICAgICAgICAgICAgLy8gbGVhdmluZyBhbiBlbXB0eSB0YWlsb3Jpbmcgc2VxdWVuY2UuCisgICAgICAgIGluaXRCdWZmZXJzKG1fcGFyc2VyXy5tX2xpc3RIZWFkZXJfW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfICE9IG51bGwpIHsgCisgICAgICAgICAgICAvLyBzdHVmZiB0aGUgdmFyaWFibGUgdG9wIHZhbHVlCisgICAgICAgIG1fcGFyc2VyXy5tX29wdGlvbnNfLm1fdmFyaWFibGVUb3BWYWx1ZV8gCisgICAgICAgID0gbV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfLm1fQ0VfWzBdID4+PiAxNjsKKyAgICAgICAgLy8gcmVtb3ZlIGl0IGZyb20gdGhlIGxpc3QKKyAgICAgICAgaWYgKG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfIAorICAgICAgICAgICAgICAgID09IG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXykgeyAvLyBmaXJzdCBpbiBsaXN0CisgICAgICAgIG1fcGFyc2VyXy5tX3ZhcmlhYmxlVG9wXy5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfIAorICAgICAgICAgICAgPSBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9uZXh0XzsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfLm1fbGlzdEhlYWRlcl8ubV9sYXN0XyAKKyAgICAgICAgPT0gbV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfKSB7IAorICAgICAgICAgICAgICAgIC8vIGZpcnN0IGluIGxpc3QKKyAgICAgICAgbV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfLm1fbGlzdEhlYWRlcl8ubV9sYXN0XyAKKyAgICAgICAgICAgID0gbV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfLm1fcHJldmlvdXNfOyAgICAKKyAgICAgICAgfQorICAgICAgICBpZiAobV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfLm1fbmV4dF8gIT0gbnVsbCkgeworICAgICAgICBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9uZXh0Xy5tX3ByZXZpb3VzXyAKKyAgICAgICAgICAgID0gbV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfLm1fcHJldmlvdXNfOworICAgICAgICB9CisgICAgICAgIGlmIChtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9wcmV2aW91c18gIT0gbnVsbCkgeworICAgICAgICBtX3BhcnNlcl8ubV92YXJpYWJsZVRvcF8ubV9wcmV2aW91c18ubV9uZXh0XyAKKyAgICAgICAgICAgID0gbV9wYXJzZXJfLm1fdmFyaWFibGVUb3BfLm1fbmV4dF87CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIEJ1aWxkVGFibGUgdCA9IG5ldyBCdWlsZFRhYmxlKG1fcGFyc2VyXyk7CisgICAgICAgIAorICAgICAgICAvLyBBZnRlciB0aGlzLCB3ZSBoYXZlIGFzc2lnbmVkIENFIHZhbHVlcyB0byBhbGwgcmVndWxhciBDRXMgbm93IHdlIAorICAgIC8vIHdpbGwgZ28gdGhyb3VnaCBsaXN0IG9uY2UgbW9yZSBhbmQgcmVzb2x2ZSBleHBhbnNpb25zLCBtYWtlIAorICAgIC8vIFVDQUVsZW1lbnRzIHN0cnVjdHMgYW5kIGFkZCB0aGVtIHRvIHRhYmxlICAgICAgICAgICAgICAgCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX3BhcnNlcl8ubV9yZXN1bHRMZW5ndGhfOyBpICsrKSB7CisgICAgICAgIC8vIG5vdyB3ZSBuZWVkIHRvIGdlbmVyYXRlIHRoZSBDRXMgCisgICAgICAgIC8vIFdlIHN0dWZmIHRoZSBpbml0aWFsIHZhbHVlIGluIHRoZSBidWZmZXJzLCBhbmQgaW5jcmVhc2UgdGhlIAorICAgICAgICAvLyBhcHByb3ByaWF0ZSBidWZmZXIgYWNjb3JkaW5nIHRvIHN0cmVuZ3RoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgIGNyZWF0ZUVsZW1lbnRzKHQsIG1fcGFyc2VyXy5tX2xpc3RIZWFkZXJfW2ldKTsKKyAgICB9CisgICAgICAgIAorICAgICAgICBtX3V0aWxFbGVtZW50Xy5jbGVhcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAKKyAgICAvLyBhZGQgbGF0aW4tMSBzdHVmZgorICAgICAgICBjb3B5UmFuZ2VGcm9tVUNBKHQsIDAsIDB4RkYpOworICAgIAorICAgICAgICAvLyBhZGQgc3R1ZmYgZm9yIGNvcHlpbmcgCisgICAgICAgIGlmKG1fcGFyc2VyXy5tX2NvcHlTZXRfICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIGZvcihpID0gMDsgaSA8IG1fcGFyc2VyXy5tX2NvcHlTZXRfLmdldFJhbmdlQ291bnQoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgY29weVJhbmdlRnJvbVVDQSh0LCBtX3BhcnNlcl8ubV9jb3B5U2V0Xy5nZXRSYW5nZVN0YXJ0KGkpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VyXy5tX2NvcHlTZXRfLmdldFJhbmdlRW5kKGkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gY29weSBjb250cmFjdGlvbnMgZnJvbSB0aGUgVUNBIC0gdGhpcyBpcyBmZWx0IG1vc3RseSBmb3IgY3lyaWxsaWMKKyAgICBjaGFyIGNvbnRzW10gPSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OVFJBQ1RJT05TXzsKKyAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgd2hpbGUgKGNvbnRzW29mZnNldF0gIT0gMCkgeworICAgICAgICAvLyB0YWlsb3JlZENFID0gdWNtcGUzMl9nZXQodC5tX21hcHBpbmcsICpjb250cyk7CisgICAgICAgICAgICBpbnQgdGFpbG9yZWRDRSA9IHQubV9tYXBwaW5nXy5nZXRWYWx1ZShjb250c1tvZmZzZXRdKTsKKyAgICAgICAgaWYgKHRhaWxvcmVkQ0UgIT0gQ0VfTk9UX0ZPVU5EXykgeyAgICAgICAgIAorICAgICAgICBib29sZWFuIG5lZWRUb0FkZCA9IHRydWU7CisgICAgICAgIGlmIChpc0NvbnRyYWN0aW9uVGFibGVFbGVtZW50KHRhaWxvcmVkQ0UpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc1RhaWxvcmVkKHQubV9jb250cmFjdGlvbnNfLCB0YWlsb3JlZENFLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHMsIG9mZnNldCArIDEpID09IHRydWUpIHsKKyAgICAgICAgICAgIG5lZWRUb0FkZCA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYobV9wYXJzZXJfLm1fcmVtb3ZlU2V0XyAhPSBudWxsICYmIG1fcGFyc2VyXy5tX3JlbW92ZVNldF8uY29udGFpbnMoY29udHNbb2Zmc2V0XSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbmVlZFRvQWRkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKG5lZWRUb0FkZCA9PSB0cnVlKSB7IAorICAgICAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGFkZCBpZiB0aGlzIGNvbnRyYWN0aW9uIGlzIG5vdCB0YWlsb3JlZC4KKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fcHJlZml4XyA9IDA7CisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX3ByZWZpeENoYXJzXyA9IG51bGw7CisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX2NQb2ludHNfID0gbV91dGlsRWxlbWVudF8ubV91Y2hhcnNfOworICAgICAgICAgICAgICAgICAgICBzdHIuZGVsZXRlKDAsIHN0ci5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoY29udHNbb2Zmc2V0XSk7CisgICAgICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoY29udHNbb2Zmc2V0ICsgMV0pOworICAgICAgICAgICAgaWYgKGNvbnRzW29mZnNldCArIDJdICE9IDApIHsKKyAgICAgICAgICAgIHN0ci5hcHBlbmQoY29udHNbb2Zmc2V0ICsgMl0pOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV91Y2hhcnNfID0gc3RyLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VMZW5ndGhfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQobV91dGlsRWxlbWVudF8ubV91Y2hhcnNfKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBDRSA9IG1fdXRpbENvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQ0UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VzX1ttX3V0aWxFbGVtZW50Xy5tX0NFTGVuZ3RoXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICArK10gPSBDRTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGFkZEFuRWxlbWVudCh0LCBtX3V0aWxFbGVtZW50Xyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYobV9wYXJzZXJfLm1fcmVtb3ZlU2V0XyAhPSBudWxsICYmIG1fcGFyc2VyXy5tX3JlbW92ZVNldF8uY29udGFpbnMoY29udHNbb2Zmc2V0XSkpIHsKKyAgICAgICAgICAgICAgICBjb3B5UmFuZ2VGcm9tVUNBKHQsIGNvbnRzW29mZnNldF0sIGNvbnRzW29mZnNldF0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIG9mZnNldCArPSAzOworICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEFkZCBjb21wbGV0ZWx5IGlnbm9yYWJsZSBlbGVtZW50cworICAgICAgICBwcm9jZXNzVUNBQ29tcGxldGVJZ25vcmFibGVzKHQpOworICAgICAgICAKKyAgICAgICAgLy8gY2Fub25pY2FsIGNsb3N1cmUgCisgICAgICAgIGNhbm9uaWNhbENsb3N1cmUodCk7CisgIAorICAgIC8vIHN0aWxsIG5lZWQgdG8gcHJvZHVjZSBjb21wYXRpYmlsaXR5IGNsb3N1cmUKKyAgICBhc3NlbWJsZVRhYmxlKHQsIGNvbGxhdG9yKTsgIAorICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIGlubmVyIGNsYXNzZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIENFR2VuZXJhdG9yIAorICAgIHsKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICBXZWlnaHRSYW5nZSBtX3Jhbmdlc19bXTsKKyAgICBpbnQgbV9yYW5nZXNMZW5ndGhfOworICAgIGludCBtX2J5dGVTaXplXzsgCisgICAgICAgIGludCBtX3N0YXJ0XzsgCisgICAgICAgIGludCBtX2xpbWl0XzsKKyAgICBpbnQgbV9tYXhDb3VudF87CisgICAgaW50IG1fY291bnRfOworICAgIGludCBtX2N1cnJlbnRfOworICAgIGludCBtX2ZMb3dfOyAvLyBmb3JiaWRkZW4gTG93IAorICAgIGludCBtX2ZIaWdoXzsgLy8gZm9yYmlkZGVuIEhpZ2ggCisgICAgICAgIAorICAgICAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICBDRUdlbmVyYXRvcigpIAorICAgICAgICB7CisgICAgICAgICAgICBtX3Jhbmdlc18gPSBuZXcgV2VpZ2h0UmFuZ2VbN107ICAgICAgCisgICAgICAgICAgICBmb3IgKGludCBpID0gNjsgaSA+PSAwOyBpIC0tKSB7CisgICAgICAgICAgICAgICAgbV9yYW5nZXNfW2ldID0gbmV3IFdlaWdodFJhbmdlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgV2VpZ2h0UmFuZ2UgaW1wbGVtZW50cyBDb21wYXJhYmxlCisgICAgeworICAgICAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQ29tcGFyZXMgdGhpcyBvYmplY3Qgd2l0aCB0YXJnZXQKKyAgICAgICAgICogQHBhcmFtIHRhcmdldCBvYmplY3QgdG8gY29tcGFyZSB3aXRoCisgICAgICAgICAqIEByZXR1cm4gMCBpZiBlcXVhbHMsIDEgaWYgdGhpcyBpcyA+IHRhcmdldCwgLTEgb3RoZXJ3aXNlCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhPYmplY3QgdGFyZ2V0KSAKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRoaXMgPT0gdGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgdHN0YXJ0ID0gKChXZWlnaHRSYW5nZSl0YXJnZXQpLm1fc3RhcnRfOyAgIAorICAgICAgICAgICAgaWYgKG1fc3RhcnRfID09IHRzdGFydCkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1fc3RhcnRfID4gdHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbml0aWFsaXplIAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgY2xlYXIoKQorICAgICAgICB7CisgICAgICAgICAgICBtX3N0YXJ0XyA9IDA7CisgICAgICAgICAgICBtX2VuZF8gPSAwOworICAgICAgICAgICAgbV9sZW5ndGhfID0gMDsgCisgICAgICAgICAgICBtX2NvdW50XyA9IDA7CisgICAgICAgICAgICBtX2xlbmd0aDJfID0gMDsKKyAgICAgICAgICAgIG1fY291bnQyXyA9IDA7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgaW50IG1fc3RhcnRfOworICAgICAgICBpbnQgbV9lbmRfOworICAgIGludCBtX2xlbmd0aF87IAorICAgICAgICBpbnQgbV9jb3VudF87CisgICAgaW50IG1fbGVuZ3RoMl87CisgICAgaW50IG1fY291bnQyXzsKKyAgICAgICAgCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIFdlaWdodFJhbmdlKCkKKyAgICAgICAgeworICAgICAgICAgICAgY2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvcHkgY29uc3RydWN0b3IuCisgICAgICAgICAqIENsb25lYWJsZSBpcyB0cm91Ymxlc29tZSwgbmVlZHMgdG8gY2hlY2sgZm9yIGV4Y2VwdGlvbgorICAgICAgICAgKiBAcGFyYW0gc291cmNlIHRvIGNsb25lCisgICAgICAgICAqLworICAgICAgICBXZWlnaHRSYW5nZShXZWlnaHRSYW5nZSBzb3VyY2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fc3RhcnRfID0gc291cmNlLm1fc3RhcnRfOworICAgICAgICAgICAgbV9lbmRfID0gc291cmNlLm1fZW5kXzsKKyAgICAgICAgICAgIG1fbGVuZ3RoXyA9IHNvdXJjZS5tX2xlbmd0aF87IAorICAgICAgICAgICAgbV9jb3VudF8gPSBzb3VyY2UubV9jb3VudF87CisgICAgICAgICAgICBtX2xlbmd0aDJfID0gc291cmNlLm1fbGVuZ3RoMl87CisgICAgICAgICAgICBtX2NvdW50Ml8gPSBzb3VyY2UubV9jb3VudDJfOworICAgICAgICB9CisgICAgfTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBNYXhKYW1vRXhwYW5zaW9uVGFibGUKKyAgICB7CisgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICBWZWN0b3IgbV9lbmRFeHBhbnNpb25DRV87CisgICAgLy8gdmVjdG9yIG9mIGJvb2xlYW5zCisgICAgVmVjdG9yIG1faXNWXzsKKyAgICBieXRlIG1fbWF4TFNpemVfOworICAgIGJ5dGUgbV9tYXhWU2l6ZV87CisgICAgYnl0ZSBtX21heFRTaXplXzsKKyAgICAgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICBNYXhKYW1vRXhwYW5zaW9uVGFibGUoKQorICAgIHsKKyAgICAgICAgbV9lbmRFeHBhbnNpb25DRV8gPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIG1faXNWXyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgbV9lbmRFeHBhbnNpb25DRV8uYWRkKG5ldyBJbnRlZ2VyKDApKTsKKyAgICAgICAgbV9pc1ZfLmFkZChuZXcgQm9vbGVhbihmYWxzZSkpOworICAgICAgICAgICAgbV9tYXhMU2l6ZV8gPSAxOworICAgICAgICAgICAgbV9tYXhWU2l6ZV8gPSAxOworICAgICAgICAgICAgbV9tYXhUU2l6ZV8gPSAxOworICAgIH0KKyAgICAgICAgCisgICAgICAgIE1heEphbW9FeHBhbnNpb25UYWJsZShNYXhKYW1vRXhwYW5zaW9uVGFibGUgdGFibGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fZW5kRXhwYW5zaW9uQ0VfID0gKFZlY3Rvcil0YWJsZS5tX2VuZEV4cGFuc2lvbkNFXy5jbG9uZSgpOworICAgICAgICAgICAgbV9pc1ZfID0gKFZlY3Rvcil0YWJsZS5tX2lzVl8uY2xvbmUoKTsKKyAgICAgICAgICAgIG1fbWF4TFNpemVfID0gdGFibGUubV9tYXhMU2l6ZV87CisgICAgICAgICAgICBtX21heFZTaXplXyA9IHRhYmxlLm1fbWF4VlNpemVfOworICAgICAgICAgICAgbV9tYXhUU2l6ZV8gPSB0YWJsZS5tX21heFRTaXplXzsKKyAgICAgICAgfQorICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgTWF4RXhwYW5zaW9uVGFibGUgCisgICAgeworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICBNYXhFeHBhbnNpb25UYWJsZSgpIAorICAgIHsKKyAgICAgICAgbV9lbmRFeHBhbnNpb25DRV8gPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIG1fZXhwYW5zaW9uQ0VTaXplXyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgbV9lbmRFeHBhbnNpb25DRV8uYWRkKG5ldyBJbnRlZ2VyKDApKTsKKyAgICAgICAgbV9leHBhbnNpb25DRVNpemVfLmFkZChuZXcgQnl0ZSgoYnl0ZSkwKSk7CisgICAgfQorICAgICAgICAKKyAgICAgICAgTWF4RXhwYW5zaW9uVGFibGUoTWF4RXhwYW5zaW9uVGFibGUgdGFibGUpIAorICAgICAgICB7CisgICAgICAgICAgICBtX2VuZEV4cGFuc2lvbkNFXyA9IChWZWN0b3IpdGFibGUubV9lbmRFeHBhbnNpb25DRV8uY2xvbmUoKTsKKyAgICAgICAgICAgIG1fZXhwYW5zaW9uQ0VTaXplXyA9IChWZWN0b3IpdGFibGUubV9leHBhbnNpb25DRVNpemVfLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIFZlY3RvciBtX2VuZEV4cGFuc2lvbkNFXzsKKyAgICBWZWN0b3IgbV9leHBhbnNpb25DRVNpemVfOworICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQmFzaWNDb250cmFjdGlvblRhYmxlIAorICAgIHsKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgQmFzaWNDb250cmFjdGlvblRhYmxlKCkKKyAgICB7CisgICAgICAgIG1fQ0VzXyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgbV9jb2RlUG9pbnRzXyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICBTdHJpbmdCdWZmZXIgbV9jb2RlUG9pbnRzXzsKKyAgICBWZWN0b3IgbV9DRXNfOworICAgIH07CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ29udHJhY3Rpb25UYWJsZSAKKyAgICB7CisgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgIC8qKgorICAgICAqIEJ1aWxkcyBhIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIGJ1aWxkdGFibGUKKyAgICAgKi8KKyAgICBDb250cmFjdGlvblRhYmxlKEludFRyaWVCdWlsZGVyIG1hcHBpbmcpIAorICAgIHsKKyAgICAgICAgbV9tYXBwaW5nXyA9IG1hcHBpbmc7CisgICAgICAgIG1fZWxlbWVudHNfID0gbmV3IFZlY3RvcigpOworICAgICAgICBtX0NFc18gPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIG1fY29kZVBvaW50c18gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIG1fb2Zmc2V0c18gPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIG1fY3VycmVudFRhZ18gPSBDRV9OT1RfRk9VTkRfVEFHXzsKKyAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQ29waWVzIGEgY29udHJhY3Rpb24gdGFibGUuCisgICAgICAgICAqIE5vdCBhbGwgZGF0YSB3aWxsIGJlIGNvcGllZCBpbnRvIHRoZWlyIG93biBvYmplY3QuCisgICAgICAgICAqIEBwYXJhbSB0YWJsZQorICAgICAgICAgKi8KKyAgICAgICAgQ29udHJhY3Rpb25UYWJsZShDb250cmFjdGlvblRhYmxlIHRhYmxlKSAKKyAgICAgICAgeworICAgICAgICAgICAgbV9tYXBwaW5nXyA9IHRhYmxlLm1fbWFwcGluZ187CisgICAgICAgICAgICBtX2VsZW1lbnRzXyA9IChWZWN0b3IpdGFibGUubV9lbGVtZW50c18uY2xvbmUoKTsKKyAgICAgICAgICAgIG1fY29kZVBvaW50c18gPSBuZXcgU3RyaW5nQnVmZmVyKHRhYmxlLm1fY29kZVBvaW50c18udG9TdHJpbmcoKSk7CisgICAgICAgICAgICBtX0NFc18gPSAoVmVjdG9yKXRhYmxlLm1fQ0VzXy5jbG9uZSgpOworICAgICAgICAgICAgbV9vZmZzZXRzXyA9IChWZWN0b3IpdGFibGUubV9vZmZzZXRzXy5jbG9uZSgpOworICAgICAgICAgICAgbV9jdXJyZW50VGFnXyA9IHRhYmxlLm1fY3VycmVudFRhZ187CisgICAgICAgIH0KKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBWZWN0b3Igb2YgQmFzaWNDb250cmFjdGlvblRhYmxlCisgICAgICovCisgICAgICAgIFZlY3RvciBtX2VsZW1lbnRzXzsKKyAgICAgICAgSW50VHJpZUJ1aWxkZXIgbV9tYXBwaW5nXzsKKyAgICAgICAgU3RyaW5nQnVmZmVyIG1fY29kZVBvaW50c187CisgICAgVmVjdG9yIG1fQ0VzXzsKKyAgICBWZWN0b3IgbV9vZmZzZXRzXzsKKyAgICBpbnQgbV9jdXJyZW50VGFnXzsKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgQnVpbGRUYWJsZSBpbXBsZW1lbnRzIFRyaWVCdWlsZGVyLkRhdGFNYW5pcHVsYXRlCisgICAgeworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICogRm9yIGNvbnN0cnVjdGlvbiBvZiB0aGUgVHJpZSB0YWJsZXMuCisgICAgICogSGFzIHRvIGJlIGxhYmVsZWQgcHVibGljCisgICAgICogQHBhcmFtIHRhYmxlIGJ1aWxkIHRhYmxlCisgICAgICogQHBhcmFtIGNwCisgICAgICogQHBhcmFtIG9mZnNldAorICAgICAqIEByZXR1cm4gZGF0YSBvZmZzZXQgb3IgMCAKKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGb2xkZWRWYWx1ZShpbnQgY3AsIGludCBvZmZzZXQpCisgICAgeworICAgICAgICBpbnQgbGltaXQgPSBjcCArIDB4NDAwOworICAgICAgICB3aGlsZSAoY3AgPCBsaW1pdCkgeworICAgICAgICBpbnQgdmFsdWUgPSBtX21hcHBpbmdfLmdldFZhbHVlKGNwKTsKKyAgICAgICAgYm9vbGVhbiBpbkJsb2NrWmVybyA9IG1fbWFwcGluZ18uaXNJblplcm9CbG9jayhjcCk7CisgICAgICAgIGludCB0YWcgPSBnZXRDRVRhZyh2YWx1ZSk7CisgICAgICAgIGlmIChpbkJsb2NrWmVybyA9PSB0cnVlKSB7CisgICAgICAgICAgICBjcCArPSBUcmllQnVpbGRlci5EQVRBX0JMT0NLX0xFTkdUSDsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSBpZiAoIShpc1NwZWNpYWwodmFsdWUpICYmICh0YWcgPT0gQ0VfSU1QTElDSVRfVEFHXyAKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IHRhZyA9PSBDRV9OT1RfRk9VTkRfVEFHXykpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoZXNlIGFyZSB2YWx1ZXMgdGhhdCBhcmUgc3RhcnRpbmcgaW4gZWl0aGVyIFVDQSAKKyAgICAgICAgICAgICAgICAgICAgLy8gKElNUExJQ0lUX1RBRykgb3IgaW4gdGhlIHRhaWxvcmluZ3MgKE5PVF9GT1VORF9UQUcpLiAKKyAgICAgICAgICAgICAgICAgICAgLy8gUHJlc2VuY2Ugb2YgdGhlc2UgdGFncyBtZWFucyB0aGF0IHRoZXJlIGlzIG5vdGhpbmcgaW4gCisgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgcG9zaXRpb24gYW5kIHRoYXQgaXQgc2hvdWxkIGJlIHNraXBwZWQuCisgICAgICAgICAgICByZXR1cm4gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXyAKKyAgICAgICAgICAgIHwgKENFX1NVUlJPR0FURV9UQUdfIDw8IDI0KSB8IG9mZnNldDsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICArKyBjcDsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRhYmxlCisgICAgICogQHJldHVybiBidWlsZCB0YWJsZQorICAgICAqLworICAgIEJ1aWxkVGFibGUoQ29sbGF0aW9uUnVsZVBhcnNlciBwYXJzZXIpIAorICAgIHsKKyAgICAgICAgbV9jb2xsYXRvcl8gPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoKTsKKyAgICAgICAgbV9jb2xsYXRvcl8uc2V0V2l0aFVDQURhdGEoKTsKKyAgICAgICAgTWF4RXhwYW5zaW9uVGFibGUgbWF4ZXQgPSBuZXcgTWF4RXhwYW5zaW9uVGFibGUoKTsKKyAgICAgICAgTWF4SmFtb0V4cGFuc2lvblRhYmxlIG1heGpldCA9IG5ldyBNYXhKYW1vRXhwYW5zaW9uVGFibGUoKTsKKyAgICAgICAgbV9vcHRpb25zXyA9IHBhcnNlci5tX29wdGlvbnNfOworICAgICAgICBtX2V4cGFuc2lvbnNfID0gbmV3IFZlY3RvcigpOworICAgICAgICAvLyBEbyB5b3VyIG93biBtYWxsb2NzIGZvciB0aGUgc3RydWN0dXJlLCBhcnJheSBhbmQgaGF2ZSBsaW5lYXIgCisgICAgICAgIC8vIExhdGluIDEKKyAgICAgICAgICAgIGludCB0cmllaW5pdGlhbHZhbHVlID0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXworICAgICAgICB8IChDRV9OT1RfRk9VTkRfVEFHXyA8PCAyNCk7CisgICAgICAgIC8vIHRlbXBvcmFyeSBmaXggZm9yIGpiMzgyMiwgMHgxMDAwMDAgLT4gMzAwMDAKKyAgICAgICAgbV9tYXBwaW5nXyA9IG5ldyBJbnRUcmllQnVpbGRlcihudWxsLCAweDMwMDAwLCB0cmllaW5pdGlhbHZhbHVlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZWluaXRpYWx2YWx1ZSwgdHJ1ZSk7IAorICAgICAgICBtX3ByZWZpeExvb2t1cF8gPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIC8vIHVoYXNoX29wZW4ocHJlZml4TG9va3VwSGFzaCwgcHJlZml4TG9va3VwQ29tcCk7CisgICAgICAgIG1fY29udHJhY3Rpb25zXyA9IG5ldyBDb250cmFjdGlvblRhYmxlKG1fbWFwcGluZ18pOworICAgICAgICAvLyBjb3B5IFVDQSdzIG1heGV4cGFuc2lvbiBhbmQgbWVyZ2UgYXMgd2UgZ28gYWxvbmcKKyAgICAgICAgbV9tYXhFeHBhbnNpb25zXyA9IG1heGV0OworICAgICAgICAvLyBhZGRpbmcgYW4gZXh0cmEgaW5pdGlhbCB2YWx1ZSBmb3IgZWFzaWVyIG1hbmlwdWxhdGlvbiAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IAorICAgICAgICAgaSA8IFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8ubV9leHBhbnNpb25FbmRDRV8ubGVuZ3RoOyBpICsrKSB7CisgICAgICAgIG1heGV0Lm1fZW5kRXhwYW5zaW9uQ0VfLmFkZChuZXcgSW50ZWdlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLm1fZXhwYW5zaW9uRW5kQ0VfW2ldKSk7CisgICAgICAgIG1heGV0Lm1fZXhwYW5zaW9uQ0VTaXplXy5hZGQobmV3IEJ5dGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLm1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplX1tpXSkpOworICAgICAgICB9CisgICAgICAgIG1fbWF4SmFtb0V4cGFuc2lvbnNfID0gbWF4amV0OworICAgICAgICAKKyAgICAgICAgbV91bnNhZmVDUF8gPSBuZXcgYnl0ZVtVTlNBRkVDUF9UQUJMRV9TSVpFX107CisgICAgICAgIG1fY29udHJFbmRDUF8gPSBuZXcgYnl0ZVtVTlNBRkVDUF9UQUJMRV9TSVpFX107CisgICAgICAgIEFycmF5cy5maWxsKG1fdW5zYWZlQ1BfLCAoYnl0ZSkwKTsKKyAgICAgICAgQXJyYXlzLmZpbGwobV9jb250ckVuZENQXywgKGJ5dGUpMCk7CisgICAgfQorICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogRHVwbGljYXRpbmcgYSBCdWlsZFRhYmxlLgorICAgICAgICAgKiBOb3QgYWxsIGRhdGEgd2lsbCBiZSBkdXBsaWNhdGVkIGludG8gdGhlaXIgb3duIG9iamVjdC4KKyAgICAgICAgICogQHBhcmFtIHRhYmxlIHRvIGNsb25lCisgICAgICAgICAqLworICAgICAgICBCdWlsZFRhYmxlKEJ1aWxkVGFibGUgdGFibGUpIAorICAgICAgICB7CisgICAgICAgICAgICBtX2NvbGxhdG9yXyA9IHRhYmxlLm1fY29sbGF0b3JfOworICAgICAgICAgICAgbV9tYXBwaW5nXyA9IG5ldyBJbnRUcmllQnVpbGRlcih0YWJsZS5tX21hcHBpbmdfKTsKKyAgICAgICAgICAgIG1fZXhwYW5zaW9uc18gPSAoVmVjdG9yKXRhYmxlLm1fZXhwYW5zaW9uc18uY2xvbmUoKTsKKyAgICAgICAgICAgIG1fY29udHJhY3Rpb25zXyA9IG5ldyBDb250cmFjdGlvblRhYmxlKHRhYmxlLm1fY29udHJhY3Rpb25zXyk7CisgICAgICAgICAgICBtX2NvbnRyYWN0aW9uc18ubV9tYXBwaW5nXyA9IG1fbWFwcGluZ187CisgICAgICAgICAgICBtX29wdGlvbnNfID0gdGFibGUubV9vcHRpb25zXzsKKyAgICAgICAgICAgIG1fbWF4RXhwYW5zaW9uc18gPSBuZXcgTWF4RXhwYW5zaW9uVGFibGUodGFibGUubV9tYXhFeHBhbnNpb25zXyk7CisgICAgICAgICAgICBtX21heEphbW9FeHBhbnNpb25zXyAKKyAgICAgICAgPSBuZXcgTWF4SmFtb0V4cGFuc2lvblRhYmxlKHRhYmxlLm1fbWF4SmFtb0V4cGFuc2lvbnNfKTsKKyAgICAgICAgICAgIG1fdW5zYWZlQ1BfID0gbmV3IGJ5dGVbdGFibGUubV91bnNhZmVDUF8ubGVuZ3RoXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGFibGUubV91bnNhZmVDUF8sIDAsIG1fdW5zYWZlQ1BfLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Vuc2FmZUNQXy5sZW5ndGgpOworICAgICAgICAgICAgbV9jb250ckVuZENQXyA9IG5ldyBieXRlW3RhYmxlLm1fY29udHJFbmRDUF8ubGVuZ3RoXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGFibGUubV9jb250ckVuZENQXywgMCwgbV9jb250ckVuZENQXywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jb250ckVuZENQXy5sZW5ndGgpOworICAgICAgICB9CisgICAgICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICBSdWxlQmFzZWRDb2xsYXRvciBtX2NvbGxhdG9yXzsKKyAgICAgICAgSW50VHJpZUJ1aWxkZXIgbV9tYXBwaW5nXzsgCisgICAgICAgIFZlY3RvciBtX2V4cGFuc2lvbnNfOyAKKyAgICAgICAgQ29udHJhY3Rpb25UYWJsZSBtX2NvbnRyYWN0aW9uc187CisgICAgLy8gVUNBVGFibGVIZWFkZXIgaW1hZ2U7CisgICAgQ29sbGF0aW9uUnVsZVBhcnNlci5PcHRpb25TZXQgbV9vcHRpb25zXzsKKyAgICBNYXhFeHBhbnNpb25UYWJsZSBtX21heEV4cGFuc2lvbnNfOworICAgIE1heEphbW9FeHBhbnNpb25UYWJsZSBtX21heEphbW9FeHBhbnNpb25zXzsKKyAgICBieXRlIG1fdW5zYWZlQ1BfW107CisgICAgYnl0ZSBtX2NvbnRyRW5kQ1BfW107CisgICAgSGFzaHRhYmxlIG1fcHJlZml4TG9va3VwXzsKKyAgICB9OyAKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBFbGVtZW50cworICAgIHsKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgU3RyaW5nIG1fcHJlZml4Q2hhcnNfOworICAgIGludCBtX3ByZWZpeF87CisgICAgU3RyaW5nIG1fdWNoYXJzXzsKKyAgICAvKioKKyAgICAgKiBXb3JraW5nIHN0cmluZworICAgICAqLworICAgIFN0cmluZyBtX2NQb2ludHNfOyAgICAKKyAgICAvKioKKyAgICAgKiBPZmZzZXQgdG8gdGhlIHdvcmtpbmcgc3RyaW5nCisgICAgICovCisgICAgaW50IG1fY1BvaW50c09mZnNldF87CisgICAgLyoqIAorICAgICAqIFRoZXNlIGFyZSBjb2xsYXRpb24gZWxlbWVudHMgLSB0aGVyZSBjb3VsZCBiZSBtb3JlIHRoYW4gb25lIC0gaW4gCisgICAgICogY2FzZSBvZiBleHBhbnNpb24gCisgICAgICovICAgIAorICAgIGludCBtX0NFc19bXTsgICAgICAKKyAgICAgICAgaW50IG1fQ0VMZW5ndGhfOworICAgIC8qKiAKKyAgICAgKiBUaGlzIGlzIHRoZSB2YWx1ZSBlbGVtZW50IG1hcHMgaW4gb3JpZ2luYWwgdGFibGUgICAKKyAgICAgKi8KKyAgICBpbnQgbV9tYXBDRV87ICAgICAgICAgCisgICAgaW50IG1fc2l6ZVByaW1fW107CisgICAgaW50IG1fc2l6ZVNlY19bXTsKKyAgICBpbnQgbV9zaXplVGVyX1tdOworICAgIGJvb2xlYW4gbV92YXJpYWJsZVRvcF87CisgICAgYm9vbGVhbiBtX2Nhc2VCaXRfOworICAgICAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yCisgICAgICovCisgICAgRWxlbWVudHMoKQorICAgIHsKKyAgICAgICAgbV9zaXplUHJpbV8gPSBuZXcgaW50WzEyOF07ICAgIAorICAgICAgICBtX3NpemVTZWNfID0gbmV3IGludFsxMjhdOyAgICAKKyAgICAgICAgbV9zaXplVGVyXyA9IG5ldyBpbnRbMTI4XTsgICAgCisgICAgICAgICAgICBtX0NFc18gPSBuZXcgaW50WzI1Nl07CisgICAgICAgICAgICBtX0NFTGVuZ3RoXyA9IDA7CisgICAgfQorCisgICAgICAgIC8qKgorICAgICAqIFBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvcgorICAgICAqLworICAgIEVsZW1lbnRzKEVsZW1lbnRzIGVsZW1lbnQpCisgICAgeworICAgICAgICAgICAgbV9wcmVmaXhDaGFyc18gPSBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfOworICAgICAgICAgICAgbV9wcmVmaXhfID0gZWxlbWVudC5tX3ByZWZpeF87CisgICAgICAgICAgICBtX3VjaGFyc18gPSBlbGVtZW50Lm1fdWNoYXJzXzsKKyAgICAgICAgICAgIG1fY1BvaW50c18gPSBlbGVtZW50Lm1fY1BvaW50c187ICAgIAorICAgICAgICAgICAgbV9jUG9pbnRzT2Zmc2V0XyA9IGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XzsgICAgCisgICAgICAgICAgICBtX0NFc18gPSBlbGVtZW50Lm1fQ0VzXzsKKyAgICAgICAgICAgIG1fQ0VMZW5ndGhfID0gZWxlbWVudC5tX0NFTGVuZ3RoXzsKKyAgICAgICAgICAgIG1fbWFwQ0VfID0gZWxlbWVudC5tX21hcENFXzsKKyAgICAgICAgbV9zaXplUHJpbV8gPSBlbGVtZW50Lm1fc2l6ZVByaW1fOworICAgICAgICBtX3NpemVTZWNfID0gZWxlbWVudC5tX3NpemVTZWNfOworICAgICAgICBtX3NpemVUZXJfID0gZWxlbWVudC5tX3NpemVUZXJfOworICAgICAgICBtX3ZhcmlhYmxlVG9wXyA9IGVsZW1lbnQubV92YXJpYWJsZVRvcF87CisgICAgICAgIG1fY2FzZUJpdF8gPSBlbGVtZW50Lm1fY2FzZUJpdF87CisgICAgfQorCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbml0aWFsaXppbmcgdGhlIGVsZW1lbnRzCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBjbGVhcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fcHJlZml4Q2hhcnNfID0gbnVsbDsKKyAgICAgICAgICAgIG1fcHJlZml4XyA9IDA7CisgICAgICAgICAgICBtX3VjaGFyc18gPSBudWxsOworICAgICAgICAgICAgbV9jUG9pbnRzXyA9IG51bGw7ICAgIAorICAgICAgICAgICAgbV9jUG9pbnRzT2Zmc2V0XyA9IDA7ICAKKyAgICAgICAgICAgIG1fQ0VMZW5ndGhfID0gMDsKKyAgICAgICAgICAgIG1fbWFwQ0VfID0gMDsKKyAgICAgICAgICAgIEFycmF5cy5maWxsKG1fc2l6ZVByaW1fLCAwKTsKKyAgICAgICAgICAgIEFycmF5cy5maWxsKG1fc2l6ZVNlY18sIDApOworICAgICAgICAgICAgQXJyYXlzLmZpbGwobV9zaXplVGVyXywgMCk7CisgICAgICAgICAgICBtX3ZhcmlhYmxlVG9wXyA9IGZhbHNlOworICAgICAgICAgICAgbV9jYXNlQml0XyA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBIYXNoY29kZSBjYWxjdWxhdGlvbiBmb3IgdG9rZW4KKyAgICAgICAgICogQHJldHVybiB0aGUgaGFzaGNvZGUKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKQorICAgICAgICB7CisgICAgICAgIFN0cmluZyBzdHIgPSBtX2NQb2ludHNfLnN1YnN0cmluZyhtX2NQb2ludHNPZmZzZXRfKTsKKyAgICAgICAgcmV0dXJuIHN0ci5oYXNoQ29kZSgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogRXF1YWxzIGNhbGN1bGF0aW9uCisgICAgICogQHBhcmFtIHRhcmdldCBvYmplY3QgdG8gY29tcGFyZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0YXJnZXQgaXMgdGhlIHNhbWUgYXMgdGhpcyBvYmplY3QKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRhcmdldCkKKyAgICB7CisgICAgICAgIGlmICh0YXJnZXQgPT0gdGhpcykgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudHMpIHsKKyAgICAgICAgRWxlbWVudHMgdCA9IChFbGVtZW50cyl0YXJnZXQ7CisgICAgICAgIGludCBzaXplID0gbV9jUG9pbnRzXy5sZW5ndGgoKSAtIG1fY1BvaW50c09mZnNldF87CisgICAgICAgIGlmIChzaXplID09IHQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIHQubV9jUG9pbnRzT2Zmc2V0XykgeworICAgICAgICAgICAgcmV0dXJuIHQubV9jUG9pbnRzXy5yZWdpb25NYXRjaGVzKHQubV9jUG9pbnRzT2Zmc2V0XywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2NQb2ludHNfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY1BvaW50c09mZnNldF8sIHNpemUpOworICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIH07CisKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIE1heGltdW0gc3RyZW5ndGggdXNlZCBpbiBDRSBidWlsZGluZworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9CQVNJQ19TVFJFTkdUSF9MSU1JVF8gPSAzOworICAgIC8qKgorICAgICAqIE1heGltdW0gY29sbGF0aW9uIHN0cmVuZ3RoCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1NUUkVOR1RIX0xJTUlUXyA9IDE2OworICAgIC8qKgorICAgICAqIFN0cmVuZ3RoIG1hc2sgYXJyYXksIHVzZWQgaW4gaW52ZXJzZSBVQ0EKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RSRU5HVEhfTUFTS19bXSA9IHsweEZGRkYwMDAwLCAweEZGRkZGRjAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGfTsKKyAgICAvKioKKyAgICAgKiBDRSB0YWcgZm9yIG5vdCBmb3VuZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9OT1RfRk9VTkRfID0gMHhGMDAwMDAwMDsKKyAgICAvKioKKyAgICAgKiBDRSB0YWcgZm9yIG5vdCBmb3VuZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9OT1RfRk9VTkRfVEFHXyA9IDA7CisgICAgLyoqCisgICAgICogVGhpcyBjb2RlIHBvaW50IHJlc3VsdHMgaW4gYW4gZXhwYW5zaW9uIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9FWFBBTlNJT05fVEFHXyA9IDE7CisgICAgLyoqIAorICAgICAqIFN0YXJ0IG9mIGEgY29udHJhY3Rpb24gCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NPTlRSQUNUSU9OX1RBR18gPSAyOworICAgIC8qKiAKKyAgICAgKiBUaGFpIGNoYXJhY3RlciAtIGRvIHRoZSByZW9yZGVyaW5nIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9USEFJX1RBR18gPSAzOyAgICAgICAgICAgIAorICAgIC8qKiAKKyAgICAgKiBDaGFyc2V0IHByb2Nlc3NpbmcsIG5vdCB5ZXQgaW1wbGVtZW50ZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ0hBUlNFVF9UQUdfID0gNDsgICAgICAgICAKKyAgICAvKiogCisgICAgICogTGVhZCBzdXJyb2dhdGUgdGhhdCBpcyB0YWlsb3JlZCBhbmQgZG9lc24ndCBzdGFydCBhIGNvbnRyYWN0aW9uIAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9TVVJST0dBVEVfVEFHXyA9IDU7CisgICAgLyoqIAorICAgICAqIEFDMDAtRDdBRgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9IQU5HVUxfU1lMTEFCTEVfVEFHXyA9IDY7CisgICAgLyoqIAorICAgICAqIEQ4MDAtREJGRgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9MRUFEX1NVUlJPR0FURV9UQUdfID0gNzsKKyAgICAvKiogCisgICAgICogREMwMC1ERkZGCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1RSQUlMX1NVUlJPR0FURV9UQUdfID0gODsgCisgICAgLyoqIAorICAgICAqIDB4MzQwMC0weDREQjUsIDB4NEUwMC0weDlGQTUsIDB4RjkwMC0weEZBMkQKKyAgICAgKi8gICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX0NKS19JTVBMSUNJVF9UQUdfID0gOTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfSU1QTElDSVRfVEFHXyA9IDEwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9TUEVDX1BST0NfVEFHXyA9IDExOworICAgIC8qKiAKKyAgICAgKiBUaGlzIGlzIGEgdGhyZWUgYnl0ZSBwcmltYXJ5IHdpdGggc3RhcnRpbmcgc2Vjb25kYXJpZXMgYW5kIHRlcnRpYXJpZXMuCisgICAgICogSXQgZml0cyBpbiBhIHNpbmdsZSAzMiBiaXQgQ0UgYW5kIGlzIHVzZWQgaW5zdGVhZCBvZiBleHBhbnNpb24gdG8gc2F2ZQorICAgICAqIHNwYWNlIHdpdGhvdXQgYWZmZWN0aW5nIHRoZSBwZXJmb3JtYW5jZSAoaG9wZWZ1bGx5KSAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfTE9OR19QUklNQVJZX1RBR18gPSAxMjsgIAorICAgIC8qKiAKKyAgICAgKiBVbnNhZmUgVUNoYXIgaGFzaCB0YWJsZSB0YWJsZSBzaXplLiBTaXplIGlzIDMyIGJ5dGVzIGZvciAxIGJpdCBmb3IgZWFjaCAKKyAgICAgKiBsYXRpbiAxIGNoYXIgKyBzb21lIHBvd2VyIG9mIHR3byBmb3IgaGFzaGluZyB0aGUgcmVzdCBvZiB0aGUgY2hhcnMuIAorICAgICAqIFNpemUgaW4gYnl0ZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFVOU0FGRUNQX1RBQkxFX1NJWkVfID0gMTA1NjsKKyAgICAvKiogCisgICAgICogTWFzayB2YWx1ZSBkb3duIHRvICJzb21lIHBvd2VyIG9mIHR3byIgLTEuIE51bWJlciBvZiBiaXRzLCBub3QgbnVtIG9mIAorICAgICAqIGJ5dGVzLiAgICAgICAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5TQUZFQ1BfVEFCTEVfTUFTS18gPSAweDFmZmY7CisgICAgLyoqCisgICAgICogQ2FzZSB2YWx1ZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVVBQRVJfQ0FTRV8gPSAweDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNSVhFRF9DQVNFXyA9IDB4NDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExPV0VSX0NBU0VfID0gMHgwMDsKKyAgICAvKioKKyAgICAgKiBJbml0aWFsIHRhYmxlIHNpemUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5JVF9UQUJMRV9TSVpFXyA9IDEwMjg7CisgICAgLyoqCisgICAgICogSGVhZGVyIHNpemUsIGNvcGllZCBmcm9tIElDVTRDLCB0byBiZSBjaGFuZ2VkIHdoZW4gdGhhdCB2YWx1ZSBjaGFuZ2VzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFQURFUl9TSVpFXyA9IDB4QzQ7CisgICAgLyoqCisgICAgICogQ29udHJhY3Rpb24gdGFibGUgbmV3IGVsZW1lbnQgaW5kaWNhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTlRSQUNUSU9OX1RBQkxFX05FV19FTEVNRU5UXyA9IDB4RkZGRkZGOworICAgIC8qKgorICAgICAqIFBhcnNlciBmb3IgdGhlIHJ1bGVzCisgICAgICovCisgICAgcHJpdmF0ZSBDb2xsYXRpb25SdWxlUGFyc2VyIG1fcGFyc2VyXzsKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IFVDQSBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvcgorICAgICAqLworICAgIHByaXZhdGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG1fdXRpbENvbEVJdGVyXzsKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGRhdGEgbWVtYmVycworICAgICAqLworICAgIHByaXZhdGUgQ0VHZW5lcmF0b3IgbV91dGlsR2Vuc19bXSA9IHtuZXcgQ0VHZW5lcmF0b3IoKSwgbmV3IENFR2VuZXJhdG9yKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDRUdlbmVyYXRvcigpfTsKKyAgICBwcml2YXRlIGludCBtX3V0aWxDRUJ1ZmZlcl9bXSA9IG5ldyBpbnRbQ0VfQkFTSUNfU1RSRU5HVEhfTElNSVRfXTsKKyAgICBwcml2YXRlIGludCBtX3V0aWxJbnRCdWZmZXJfW10gPSBuZXcgaW50W0NFX1NUUkVOR1RIX0xJTUlUX107CisgICAgcHJpdmF0ZSBFbGVtZW50cyBtX3V0aWxFbGVtZW50XyA9IG5ldyBFbGVtZW50cygpOworICAgIHByaXZhdGUgRWxlbWVudHMgbV91dGlsRWxlbWVudDJfID0gbmV3IEVsZW1lbnRzKCk7CisgICAgcHJpdmF0ZSBDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuIG1fdXRpbFRva2VuXyAKKyAgICA9IG5ldyBDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuKCk7CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQ291bnRCdWZmZXJfW10gPSBuZXcgaW50WzZdOyAgICAgCisgICAgcHJpdmF0ZSBsb25nIG1fdXRpbExvbmdCdWZmZXJfW10gPSBuZXcgbG9uZ1s1XTsKKyAgICBwcml2YXRlIFdlaWdodFJhbmdlIG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW10gPSAKKyAgICB7bmV3IFdlaWdodFJhbmdlKCksIG5ldyBXZWlnaHRSYW5nZSgpLCAKKyAgICAgbmV3IFdlaWdodFJhbmdlKCksIG5ldyBXZWlnaHRSYW5nZSgpLCAKKyAgICAgbmV3IFdlaWdodFJhbmdlKCl9OyAKKyAgICBwcml2YXRlIFdlaWdodFJhbmdlIG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfW10gPSAKKyAgICB7bmV3IFdlaWdodFJhbmdlKCksIG5ldyBXZWlnaHRSYW5nZSgpLCAKKyAgICAgbmV3IFdlaWdodFJhbmdlKCksIG5ldyBXZWlnaHRSYW5nZSgpLCAKKyAgICAgbmV3IFdlaWdodFJhbmdlKCl9OyAKKyAgICBwcml2YXRlIFdlaWdodFJhbmdlIG1fdXRpbFdlaWdodFJhbmdlXyA9IG5ldyBXZWlnaHRSYW5nZSgpOworICAgIHByaXZhdGUgY2hhciBtX3V0aWxDaGFyQnVmZmVyX1tdID0gbmV3IGNoYXJbMjU2XTsKKyAgICBwcml2YXRlIENhbm9uaWNhbEl0ZXJhdG9yIG1fdXRpbENhbkl0ZXJfID0gbmV3IENhbm9uaWNhbEl0ZXJhdG9yKCIiKTsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBtX3V0aWxTdHJpbmdCdWZmZXJfID0gbmV3IFN0cmluZ0J1ZmZlcigiIik7CisgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbGlzdGhlYWRlciBwYXJzZWQgcnVsZSB0b2tlbnMKKyAgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBpbnRlcm5hbCBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaW5pdEJ1ZmZlcnMoQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbkxpc3RIZWFkZXIgbGlzdGhlYWRlcikgCisgICAgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbiB0b2tlbiA9IGxpc3RoZWFkZXIubV9sYXN0XzsKKyAgICAgICAgQXJyYXlzLmZpbGwobV91dGlsSW50QnVmZmVyXywgMCwgQ0VfU1RSRU5HVEhfTElNSVRfLCAwKTsKKyAgICAgICAgCisgICAgdG9rZW4ubV90b0luc2VydF8gPSAxOworICAgIG1fdXRpbEludEJ1ZmZlcl9bdG9rZW4ubV9zdHJlbmd0aF9dID0gMTsKKyAgICB3aGlsZSAodG9rZW4ubV9wcmV2aW91c18gIT0gbnVsbCkgeworICAgICAgICBpZiAodG9rZW4ubV9wcmV2aW91c18ubV9zdHJlbmd0aF8gPCB0b2tlbi5tX3N0cmVuZ3RoXykgeyAKKyAgICAgICAgICAgICAgICAvLyBnb2luZyB1cAorICAgICAgICBtX3V0aWxJbnRCdWZmZXJfW3Rva2VuLm1fc3RyZW5ndGhfXSA9IDA7CisgICAgICAgIG1fdXRpbEludEJ1ZmZlcl9bdG9rZW4ubV9wcmV2aW91c18ubV9zdHJlbmd0aF9dICsrOworICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSBpZiAodG9rZW4ubV9wcmV2aW91c18ubV9zdHJlbmd0aF8gPiB0b2tlbi5tX3N0cmVuZ3RoXykgeyAKKyAgICAgICAgICAgICAgICAvLyBnb2luZyBkb3duCisgICAgICAgIG1fdXRpbEludEJ1ZmZlcl9bdG9rZW4ubV9wcmV2aW91c18ubV9zdHJlbmd0aF9dID0gMTsKKyAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICBtX3V0aWxJbnRCdWZmZXJfW3Rva2VuLm1fc3RyZW5ndGhfXSArKzsKKyAgICAgICAgfQorICAgICAgICB0b2tlbiA9IHRva2VuLm1fcHJldmlvdXNfOworICAgICAgICB0b2tlbi5tX3RvSW5zZXJ0XyA9IG1fdXRpbEludEJ1ZmZlcl9bdG9rZW4ubV9zdHJlbmd0aF9dOworICAgIH0gCisgICAgICAgIAorICAgIHRva2VuLm1fdG9JbnNlcnRfID0gbV91dGlsSW50QnVmZmVyX1t0b2tlbi5tX3N0cmVuZ3RoX107CisgICAgSU5WRVJTRV9VQ0FfLmdldEludmVyc2VHYXBQb3NpdGlvbnMobGlzdGhlYWRlcik7CisgICAgICAgIAorICAgIHRva2VuID0gbGlzdGhlYWRlci5tX2ZpcnN0XzsKKyAgICBpbnQgZnN0cmVuZ3RoID0gQ29sbGF0b3IuSURFTlRJQ0FMOworICAgIGludCBpbml0c3RyZW5ndGggPSBDb2xsYXRvci5JREVOVElDQUw7CisgICAgICAgIAorICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5QUklNQVJZXSA9IG1lcmdlQ0UobGlzdGhlYWRlci5tX2Jhc2VDRV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9iYXNlQ29udENFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRvci5QUklNQVJZKTsKKyAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuU0VDT05EQVJZXSA9IG1lcmdlQ0UobGlzdGhlYWRlci5tX2Jhc2VDRV8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGhlYWRlci5tX2Jhc2VDb250Q0VfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuVEVSVElBUlldID0gbWVyZ2VDRShsaXN0aGVhZGVyLm1fYmFzZUNFXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9iYXNlQ29udENFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3IuVEVSVElBUlkpOworICAgIHdoaWxlICh0b2tlbiAhPSBudWxsKSB7CisgICAgICAgIGZzdHJlbmd0aCA9IHRva2VuLm1fc3RyZW5ndGhfOworICAgICAgICBpZiAoZnN0cmVuZ3RoIDwgaW5pdHN0cmVuZ3RoKSB7CisgICAgICAgIGluaXRzdHJlbmd0aCA9IGZzdHJlbmd0aDsKKyAgICAgICAgaWYgKGxpc3RoZWFkZXIubV9wb3NfW2ZzdHJlbmd0aF0gPT0gLTEpIHsKKyAgICAgICAgICAgIHdoaWxlIChsaXN0aGVhZGVyLm1fcG9zX1tmc3RyZW5ndGhdID09IC0xICYmIGZzdHJlbmd0aCA+IDApIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZzdHJlbmd0aC0tOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxpc3RoZWFkZXIubV9wb3NfW2ZzdHJlbmd0aF0gPT0gLTEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkludGVybmFsIHByb2dyYW0gZXJyb3IiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaW5pdHN0cmVuZ3RoID09IENvbGxhdG9yLlRFUlRJQVJZKSB7IAorICAgICAgICAgICAgICAgICAgICAvLyBzdGFydGluZyB3aXRoIHRlcnRpYXJ5CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuUFJJTUFSWV0gCisgICAgICAgICAgICA9IGxpc3RoZWFkZXIubV9nYXBzTG9fW2ZzdHJlbmd0aCAqIDNdOworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlNFQ09OREFSWV0gCisgICAgICAgICAgICA9IGxpc3RoZWFkZXIubV9nYXBzTG9fW2ZzdHJlbmd0aCAqIDMgKyAxXTsKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5URVJUSUFSWV0gPSBnZXRDRUdlbmVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEdlbnNfW0NvbGxhdG9yLlRFUlRJQVJZXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0hpXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiwgZnN0cmVuZ3RoKTsgCisgICAgICAgIH0gCisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaW5pdHN0cmVuZ3RoID09IENvbGxhdG9yLlNFQ09OREFSWSkgeyAKKyAgICAgICAgICAgICAgICAgICAgLy8gc2Vjb25kYXJpZXMKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5QUklNQVJZXSAKKyAgICAgICAgICAgID0gbGlzdGhlYWRlci5tX2dhcHNMb19bZnN0cmVuZ3RoICogM107CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuU0VDT05EQVJZXSAKKyAgICAgICAgICAgID0gZ2V0Q0VHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEdlbnNfW0NvbGxhdG9yLlNFQ09OREFSWV0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0aGVhZGVyLm1fZ2Fwc0xvXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIGZzdHJlbmd0aCk7CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuVEVSVElBUlldIAorICAgICAgICAgICAgPSBnZXRTaW1wbGVDRUdlbmVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEdlbnNfW0NvbGxhdG9yLlRFUlRJQVJZXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiwgQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeyAKKyAgICAgICAgICAgICAgICAgICAgLy8gcHJpbWFyaWVzIAorICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlBSSU1BUlldIAorICAgICAgICAgICAgPSBnZXRDRUdlbmVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEdlbnNfW0NvbGxhdG9yLlBSSU1BUlldLCAKKyAgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzTG9fLCAKKyAgICAgICAgICAgICAgICAgICAgIGxpc3RoZWFkZXIubV9nYXBzSGlfLCAKKyAgICAgICAgICAgICAgICAgICAgIHRva2VuLCBmc3RyZW5ndGgpOworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlNFQ09OREFSWV0gCisgICAgICAgICAgICA9IGdldFNpbXBsZUNFR2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxHZW5zX1tDb2xsYXRvci5TRUNPTkRBUlldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIENvbGxhdG9yLlNFQ09OREFSWSk7CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuVEVSVElBUlldIAorICAgICAgICAgICAgPSBnZXRTaW1wbGVDRUdlbmVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsR2Vuc19bQ29sbGF0b3IuVEVSVElBUlldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4sIENvbGxhdG9yLlRFUlRJQVJZKTsKKyAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgIGlmICh0b2tlbi5tX3N0cmVuZ3RoXyA9PSBDb2xsYXRvci5URVJUSUFSWSkgeworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlRFUlRJQVJZXSAKKyAgICAgICAgICAgID0gZ2V0TmV4dEdlbmVyYXRlZChtX3V0aWxHZW5zX1tDb2xsYXRvci5URVJUSUFSWV0pOworICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRva2VuLm1fc3RyZW5ndGhfID09IENvbGxhdG9yLlNFQ09OREFSWSkgeworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlNFQ09OREFSWV0gCisgICAgICAgICAgICA9IGdldE5leHRHZW5lcmF0ZWQobV91dGlsR2Vuc19bQ29sbGF0b3IuU0VDT05EQVJZXSk7CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bQ29sbGF0b3IuVEVSVElBUlldIAorICAgICAgICAgICAgPSBnZXRTaW1wbGVDRUdlbmVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEdlbnNfW0NvbGxhdG9yLlRFUlRJQVJZXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiwgQ29sbGF0b3IuVEVSVElBUlkpOworICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRva2VuLm1fc3RyZW5ndGhfID09IENvbGxhdG9yLlBSSU1BUlkpIHsKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5QUklNQVJZXSAKKyAgICAgICAgICAgID0gZ2V0TmV4dEdlbmVyYXRlZCgKKyAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsR2Vuc19bQ29sbGF0b3IuUFJJTUFSWV0pOworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfW0NvbGxhdG9yLlNFQ09OREFSWV0gCisgICAgICAgICAgICA9IGdldFNpbXBsZUNFR2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsR2Vuc19bQ29sbGF0b3IuU0VDT05EQVJZXSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbiwgQ29sbGF0b3IuU0VDT05EQVJZKTsKKyAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1tDb2xsYXRvci5URVJUSUFSWV0gCisgICAgICAgICAgICA9IGdldFNpbXBsZUNFR2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsR2Vuc19bQ29sbGF0b3IuVEVSVElBUlldLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLCBDb2xsYXRvci5URVJUSUFSWSk7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBkb0NFKG1fdXRpbENFQnVmZmVyXywgdG9rZW4pOworICAgICAgICB0b2tlbiA9IHRva2VuLm1fbmV4dF87CisgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbmV4dCBnZW5lcmF0ZWQgY2UKKyAgICAgKiBAcGFyYW0gZyBjZSBnZW5lcmF0b3IKKyAgICAgKiBAcmV0dXJuIG5leHQgZ2VuZXJhdGVkIGNlIAorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldE5leHRHZW5lcmF0ZWQoQ0VHZW5lcmF0b3IgZykgCisgICAgeworICAgICAgICBnLm1fY3VycmVudF8gPSBuZXh0V2VpZ2h0KGcpOworICAgICAgICByZXR1cm4gZy5tX2N1cnJlbnRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBnIENFR2VuZXJhdG9yCisgICAgICogQHBhcmFtIHRva2VuIHJ1bGUgdG9rZW4KKyAgICAgKiBAcGFyYW0gZnN0cmVuZ3RoIAorICAgICAqIEByZXR1cm4gY2UgZ2VuZXJhdG9yCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gdGhyb3duIHdoZW4gaW50ZXJuYWwgZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0U2ltcGxlQ0VHZW5lcmF0b3IoQ0VHZW5lcmF0b3IgZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbiB0b2tlbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0cmVuZ3RoKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICBpbnQgaGlnaCwgbG93LCBjb3VudCA9IDE7CisgICAgICAgIGludCBtYXhieXRlID0gKHN0cmVuZ3RoID09IENvbGxhdG9yLlRFUlRJQVJZKSA/IDB4M0YgOiAweEZGOworCisgICAgaWYgKHN0cmVuZ3RoID09IENvbGxhdG9yLlNFQ09OREFSWSkgeworICAgICAgICBsb3cgPSBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fVE9QXzJfIDw8IDI0OworICAgICAgICBoaWdoID0gMHhGRkZGRkZGRjsKKyAgICAgICAgY291bnQgPSAweEZGIC0gUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX1RPUF8yXzsKKyAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgbG93ID0gUnVsZUJhc2VkQ29sbGF0b3IuQllURV9DT01NT05fIDw8IDI0OyAvLzB4MDUwMDAwMDA7CisgICAgICAgIGhpZ2ggPSAweDQwMDAwMDAwOworICAgICAgICBjb3VudCA9IDB4NDAgLSBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0NPTU1PTl87CisgICAgfQorICAgIAorICAgIGlmICh0b2tlbi5tX25leHRfICE9IG51bGwgJiYgdG9rZW4ubV9uZXh0Xy5tX3N0cmVuZ3RoXyA9PSBzdHJlbmd0aCkgeworICAgICAgICBjb3VudCA9IHRva2VuLm1fbmV4dF8ubV90b0luc2VydF87CisgICAgfSAKKyAgICAKKyAgICBnLm1fcmFuZ2VzTGVuZ3RoXyA9IGFsbG9jYXRlV2VpZ2h0cyhsb3csIGhpZ2gsIGNvdW50LCBtYXhieXRlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZy5tX3Jhbmdlc18pOworICAgIGcubV9jdXJyZW50XyA9IFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfQ09NTU9OXyA8PCAyNDsKKyAgICAKKyAgICBpZiAoZy5tX3Jhbmdlc0xlbmd0aF8gPT0gMCkgeworICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJJbnRlcm5hbCBwcm9ncmFtIGVycm9yIik7CisgICAgfQorICAgIHJldHVybiBnLm1fY3VycmVudF87CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tYmluZXMgMiBjZSBpbnRvIG9uZSB3aXRoIHJlc3BlY3QgdG8gdGhlIGFyZ3VtZW50IHN0cmVuZ3RoCisgICAgICogQHBhcmFtIGNlMSBmaXJzdCBjZQorICAgICAqIEBwYXJhbSBjZTIgc2Vjb25kIGNlCisgICAgICogQHBhcmFtIHN0cmVuZ3RoIHN0cmVuZ3RoIHRvIHVzZQorICAgICAqIEByZXR1cm4gY29tYmluZWQgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbWVyZ2VDRShpbnQgY2UxLCBpbnQgY2UyLCBpbnQgc3RyZW5ndGgpIAorICAgIHsKKyAgICAgICAgaW50IG1hc2sgPSBSdWxlQmFzZWRDb2xsYXRvci5DRV9URVJUSUFSWV9NQVNLXzsKKyAgICAgICAgaWYgKHN0cmVuZ3RoID09IENvbGxhdG9yLlNFQ09OREFSWSkgeworICAgICAgICAgICAgbWFzayA9IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NFQ09OREFSWV9NQVNLXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzdHJlbmd0aCA9PSBDb2xsYXRvci5QUklNQVJZKSB7CisgICAgICAgICAgICBtYXNrID0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXzsKKyAgICAgICAgfQorICAgICAgICBjZTEgJj0gbWFzazsKKyAgICAgICAgY2UyICY9IG1hc2s7CisgICAgICAgIHN3aXRjaCAoc3RyZW5ndGgpIAorICAgICAgICB7CisgICAgICAgICAgICBjYXNlIENvbGxhdG9yLlBSSU1BUlk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGNlMSB8IGNlMiA+Pj4gMTY7CisgICAgICAgICAgICBjYXNlIENvbGxhdG9yLlNFQ09OREFSWToKKyAgICAgICAgICAgICAgICByZXR1cm4gY2UxIDw8IDE2IHwgY2UyIDw8IDg7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBjZTEgPDwgMjQgfCBjZTIgPDwgMTY7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIGcgQ0VHZW5lcmF0b3IKKyAgICAgKiBAcGFyYW0gbG93cyBsb3cgZ2FwIGFycmF5CisgICAgICogQHBhcmFtIGhpZ2hzIGhpZ2ggZ2FwIGFycmF5CisgICAgICogQHBhcmFtIHRva2VuIHJ1bGUgdG9rZW4KKyAgICAgKiBAcGFyYW0gZnN0cmVuZ3RoIAorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIGludGVybmFsIGVycm9yIG9jY3VycworICAgICAqLworICAgIHByaXZhdGUgaW50IGdldENFR2VuZXJhdG9yKENFR2VuZXJhdG9yIGcsIGludCBsb3dzW10sIGludCBoaWdoc1tdLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuIHRva2VuLCBpbnQgZnN0cmVuZ3RoKSAKKyAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgIGludCBzdHJlbmd0aCA9IHRva2VuLm1fc3RyZW5ndGhfOworICAgIGludCBsb3cgPSBsb3dzW2ZzdHJlbmd0aCAqIDMgKyBzdHJlbmd0aF07CisgICAgaW50IGhpZ2ggPSBoaWdoc1tmc3RyZW5ndGggKiAzICsgc3RyZW5ndGhdOworICAgIGludCBtYXhieXRlID0gMDsKKyAgICBpZihzdHJlbmd0aCA9PSBDb2xsYXRvci5URVJUSUFSWSkgeworICAgICAgICBtYXhieXRlID0gMHgzRjsKKyAgICB9IGVsc2UgaWYoc3RyZW5ndGggPT0gQ29sbGF0b3IuUFJJTUFSWSkgeworICAgICAgICBtYXhieXRlID0gMHhGRTsKKyAgICB9IGVsc2UgeworICAgICAgICBtYXhieXRlID0gMHhGRjsKKyAgICB9CisgICAgCisgICAgaW50IGNvdW50ID0gdG9rZW4ubV90b0luc2VydF87CisgICAgCisgICAgaWYgKFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKGxvdywgaGlnaCkgPj0gMCAKKyAgICAgICAgICAgICYmIHN0cmVuZ3RoID4gQ29sbGF0b3IuUFJJTUFSWSkgeworICAgICAgICBpbnQgcyA9IHN0cmVuZ3RoOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBzIC0tOworICAgICAgICBpZiAobG93c1tmc3RyZW5ndGggKiAzICsgc10gIT0gaGlnaHNbZnN0cmVuZ3RoICogMyArIHNdKSB7CisgICAgICAgICAgICBpZiAoc3RyZW5ndGggPT0gQ29sbGF0b3IuU0VDT05EQVJZKSB7CisgICAgICAgICAgICBsb3cgPSBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fVE9QXzJfIDw8IDI0OworICAgICAgICAgICAgaGlnaCA9IDB4RkZGRkZGRkY7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvdyA9IDB4MDIwMDAwMDA7IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBuZWVkcyB0byBiZSBjaGVja2VkIC0gd2hhdCBpZiBsb3cgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdCBnb29kLi4uCisgICAgICAgICAgICBoaWdoID0gMHg0MDAwMDAwMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChzIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbigiSW50ZXJuYWwgcHJvZ3JhbSBlcnJvciIpOworICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IAorICAgIGlmIChsb3cgPT0gMCkgeworICAgICAgICBsb3cgPSAweDAxMDAwMDAwOworICAgIH0KKyAgICBpZiAoc3RyZW5ndGggPT0gQ29sbGF0b3IuU0VDT05EQVJZKSB7IC8vIHNpbWlsYXIgYXMgc2ltcGxlIAorICAgICAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQobG93LCAKKyAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX0JPVFRPTV8yXyA8PCAyNCkgPj0gMAorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKGxvdywgCisgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkNPTU1PTl9UT1BfMl8gPDwgMjQpIDwgMCkgeworICAgICAgICBsb3cgPSBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fVE9QXzJfIDw8IDI0OworICAgICAgICAgICAgfQorICAgICAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQoaGlnaCwgCisgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkNPTU1PTl9CT1RUT01fMl8gPDwgMjQpID4gMCAKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmNvbXBhcmVVbnNpZ25lZChoaWdoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX1RPUF8yXyA8PCAyNCkgPCAwKSB7CisgICAgICAgIGhpZ2ggPSBSdWxlQmFzZWRDb2xsYXRvci5DT01NT05fVE9QXzJfIDw8IDI0OworICAgICAgICB9IAorICAgICAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQobG93LCAKKyAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX0JPVFRPTV8yXyA8PCAyNCkgPCAwKSB7CisgICAgICAgIGcubV9yYW5nZXNMZW5ndGhfID0gYWxsb2NhdGVXZWlnaHRzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfVU5TSElGVEVEX01JTl8gPDwgMjQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2gsIGNvdW50LCBtYXhieXRlLCBnLm1fcmFuZ2VzXyk7CisgICAgICAgIGcubV9jdXJyZW50XyA9IG5leHRXZWlnaHQoZyk7CisgICAgICAgIC8vZy5tX2N1cnJlbnRfID0gUnVsZUJhc2VkQ29sbGF0b3IuQ09NTU9OX0JPVFRPTV8yXyA8PCAyNDsKKyAgICAgICAgcmV0dXJuIGcubV9jdXJyZW50XzsKKyAgICAgICAgfQorICAgIH0gCisgICAgCisgICAgZy5tX3Jhbmdlc0xlbmd0aF8gPSBhbGxvY2F0ZVdlaWdodHMobG93LCBoaWdoLCBjb3VudCwgbWF4Ynl0ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcubV9yYW5nZXNfKTsKKyAgICBpZiAoZy5tX3Jhbmdlc0xlbmd0aF8gPT0gMCkgeworICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCJJbnRlcm5hbCBwcm9ncmFtIGVycm9yIik7CisgICAgfQorICAgIGcubV9jdXJyZW50XyA9IG5leHRXZWlnaHQoZyk7CisgICAgcmV0dXJuIGcubV9jdXJyZW50XzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gY2VwYXJ0cyBsaXN0IG9mIGNvbGxhdGlvbiBlbGVtZW50cyBwYXJ0cworICAgICAqIEBwYXJhbSB0b2tlbiBydWxlIHRva2VuCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gdGhyb3duIHdoZW4gZm9ybWluZyBjYXNlIGJpdHMgZm9yIGV4cGFuc2lvbnMgZmFpbHMKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZG9DRShpbnQgY2VwYXJ0c1tdLCBDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuIHRva2VuKSAKKyAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyB0aGlzIG9uZSBtYWtlcyB0aGUgdGFibGUgYW5kIHN0dWZmCisgICAgLy8gaW50IG5vb2ZieXRlc1tdID0gbmV3IGludFszXTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7IGkgKyspIHsKKyAgICAgICAgLy8gbm9vZmJ5dGVzW2ldID0gY291bnRCeXRlcyhjZXBhcnRzW2ldKTsKKyAgICAgICAgICAgIG1fdXRpbEludEJ1ZmZlcl9baV0gPSBjb3VudEJ5dGVzKGNlcGFydHNbaV0pOworICAgIH0KKyAgICAKKyAgICAvLyBIZXJlIHdlIGhhdmUgdG8gcGFjayBDRXMgZnJvbSBwYXJ0cworICAgIGludCBjZWkgPSAwOworICAgIGludCB2YWx1ZSA9IDA7CisgICAgCisgICAgd2hpbGUgKChjZWkgPDwgMSkgPCBtX3V0aWxJbnRCdWZmZXJfWzBdIHx8IGNlaSA8IG1fdXRpbEludEJ1ZmZlcl9bMV0gCisgICAgICAgICAgICAgICB8fCBjZWkgPCBtX3V0aWxJbnRCdWZmZXJfWzJdKSB7CisgICAgICAgIGlmIChjZWkgPiAwKSB7CisgICAgICAgIHZhbHVlID0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfQ09OVElOVUFUSU9OX01BUktFUl87CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgIHZhbHVlID0gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKChjZWkgPDwgMSkgPCBtX3V0aWxJbnRCdWZmZXJfWzBdKSB7CisgICAgICAgIHZhbHVlIHw9ICgoY2VwYXJ0c1swXSA+PiAoMzIgLSAoKGNlaSArIDEpIDw8IDQpKSkgJiAweEZGRkYpIAorICAgICAgICAgICAgICAgICAgICAgIDw8IDE2OworICAgICAgICB9CisgICAgICAgIGlmIChjZWkgPCBtX3V0aWxJbnRCdWZmZXJfWzFdKSB7CisgICAgICAgIHZhbHVlIHw9ICgoY2VwYXJ0c1sxXSA+PiAoMzIgLSAoKGNlaSArIDEpIDw8IDMpKSkgJiAweEZGKSA8PCA4OworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKGNlaSA8IG1fdXRpbEludEJ1ZmZlcl9bMl0pIHsKKyAgICAgICAgdmFsdWUgfD0gKChjZXBhcnRzWzJdID4+ICgzMiAtICgoY2VpKzEpIDw8IDMpKSkgJiAweDNGKTsKKyAgICAgICAgfQorICAgICAgICB0b2tlbi5tX0NFX1tjZWldID0gdmFsdWU7CisgICAgICAgIGNlaSArKzsKKyAgICB9CisgICAgaWYgKGNlaSA9PSAwKSB7IC8vIHRvdGFsbHkgaWdub3JhYmxlCisgICAgICAgIHRva2VuLm1fQ0VMZW5ndGhfID0gMTsKKyAgICAgICAgdG9rZW4ubV9DRV9bMF0gPSAwOworICAgIH0gCisgICAgZWxzZSB7IC8vIHRoZXJlIGlzIGF0IGxlYXN0IHNvbWV0aGluZworICAgICAgICB0b2tlbi5tX0NFTGVuZ3RoXyA9IGNlaTsKKyAgICB9CisgICAgICAgICAgCisgICAgLy8gQ2FzZSBiaXRzIGhhbmRsaW5nIGZvciBleHBhbnNpb24KKyAgICBpbnQgc3RhcnRvZnRva2VucnVsZSA9IHRva2VuLm1fc291cmNlXyAmIDB4RkY7CisgICAgaWYgKCh0b2tlbi5tX3NvdXJjZV8gPj4+IDI0KSA+IDEpIHsKKyAgICAgICAgLy8gRG8gaXQgbWFudWFsbHkKKyAgICAgICAgaW50IGxlbmd0aCA9IHRva2VuLm1fc291cmNlXyA+Pj4gMjQ7CisgICAgICAgIFN0cmluZyB0b2tlbnN0ciA9IHRva2VuLm1fcnVsZXNfLnN1YnN0cmluZyhzdGFydG9mdG9rZW5ydWxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydG9mdG9rZW5ydWxlICsgbGVuZ3RoKTsKKyAgICAgICAgdG9rZW4ubV9DRV9bMF0gfD0gZ2V0Q2FzZUJpdHModG9rZW5zdHIpOworICAgIH0gCisgICAgZWxzZSB7CisgICAgICAgIC8vIENvcHkgaXQgZnJvbSB0aGUgVUNBCisgICAgICAgIGludCBjYXNlQ0UgCisgICAgICAgID0gZ2V0Rmlyc3RDRSh0b2tlbi5tX3J1bGVzXy5jaGFyQXQoc3RhcnRvZnRva2VucnVsZSkpOworICAgICAgICB0b2tlbi5tX0NFX1swXSB8PSAoY2FzZUNFICYgMHhDMCk7CisgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvdW50IHRoZSBudW1iZXIgb2Ygbm9uLXplcm8gYnl0ZXMgdXNlZCBpbiB0aGUgY2UKKyAgICAgKiBAcGFyYW0gY2UgCisgICAgICogQHJldHVybiBudW1iZXIgb2Ygbm9uLXplcm8gYnl0ZXMgdXNlZCBpbiBjZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBjb3VudEJ5dGVzKGludCBjZSkgICAKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIGludCBtYXNrID0gMHhGRkZGRkZGRjsgICAKKyAgICBpbnQgcmVzdWx0ID0gMDsgICAgICAgICAgICAgIAorICAgIHdoaWxlIChtYXNrICE9IDApIHsgICAgICAgICAgICAKKyAgICAgICAgaWYgKChjZSAmIG1hc2spICE9IDApIHsgCisgICAgICAgIHJlc3VsdCArKzsgICAgICAgICAgICAKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBtYXNrID4+Pj0gODsgICAgICAgICAgICAgICAgIAorICAgIH0gICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBXZSBhcmUgcmVhZHkgdG8gY3JlYXRlIGNvbGxhdGlvbiBlbGVtZW50cworICAgICAqIEBwYXJhbSB0IGJ1aWxkIHRhYmxlIHRvIGluc2VydAorICAgICAqIEBwYXJhbSBsaCBydWxlIHRva2VuIGxpc3QgaGVhZGVyCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gdGhyb3duIHdoZW4gaW50ZXJuYWwgcHJvZ3JhbSBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlRWxlbWVudHMoQnVpbGRUYWJsZSB0LCAKKyAgICAgICAgICAgICAgICBDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuTGlzdEhlYWRlciBsaCkKKyAgICB7CisgICAgQ29sbGF0aW9uUnVsZVBhcnNlci5Ub2tlbiB0b2sgPSBsaC5tX2ZpcnN0XzsKKyAgICBtX3V0aWxFbGVtZW50Xy5jbGVhcigpOworICAgIHdoaWxlICh0b2sgIT0gbnVsbCkgeworICAgICAgICAvLyBmaXJzdCwgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBleHBhbnNpb25zCisgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBleHBhbnNpb25zLCB3ZSBuZWVkIHRvIGRvIGEgbGl0dGxlIGJpdCBtb3JlIAorICAgICAgICAvLyBwcm9jZXNzaW5nIHNpbmNlIHBhcnRzIG9mIGV4cGFuc2lvbiBjYW4gYmUgdGFpbG9yZWQsIHdoaWxlIAorICAgICAgICAvLyBvdGhlcnMgYXJlIG5vdAorICAgICAgICBpZiAodG9rLm1fZXhwYW5zaW9uXyAhPSAwKSB7CisgICAgICAgIGludCBsZW4gPSB0b2subV9leHBhbnNpb25fID4+PiAyNDsKKyAgICAgICAgaW50IGN1cnJlbnRTZXF1ZW5jZUxlbiA9IGxlbjsKKyAgICAgICAgaW50IGV4cE9mZnNldCA9IHRvay5tX2V4cGFuc2lvbl8gJiAweDAwRkZGRkZGOworICAgICAgICBtX3V0aWxUb2tlbl8ubV9zb3VyY2VfID0gY3VycmVudFNlcXVlbmNlTGVuIHwgZXhwT2Zmc2V0OworICAgICAgICBtX3V0aWxUb2tlbl8ubV9ydWxlc18gPSBtX3BhcnNlcl8ubV9zb3VyY2VfOworICAgIAorICAgICAgICB3aGlsZSAobGVuID4gMCkgeworICAgICAgICAgICAgY3VycmVudFNlcXVlbmNlTGVuID0gbGVuOworICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnRTZXF1ZW5jZUxlbiA+IDApIHsKKyAgICAgICAgICAgIG1fdXRpbFRva2VuXy5tX3NvdXJjZV8gPSAoY3VycmVudFNlcXVlbmNlTGVuIDw8IDI0KSAKKyAgICAgICAgICAgICAgICB8IGV4cE9mZnNldDsKKyAgICAgICAgICAgIENvbGxhdGlvblJ1bGVQYXJzZXIuVG9rZW4gZXhwdCA9IAorICAgICAgICAgICAgICAgIChDb2xsYXRpb25SdWxlUGFyc2VyLlRva2VuKQorICAgICAgICAgICAgICAgIG1fcGFyc2VyXy5tX2hhc2hUYWJsZV8uZ2V0KG1fdXRpbFRva2VuXyk7CisgICAgICAgICAgICBpZiAoZXhwdCAhPSBudWxsIAorICAgICAgICAgICAgICAgICYmIGV4cHQubV9zdHJlbmd0aF8gCisgICAgICAgICAgICAgICAgIT0gQ29sbGF0aW9uUnVsZVBhcnNlci5UT0tFTl9SRVNFVF8pIHsgCisgICAgICAgICAgICAgICAgLy8gZXhwYW5zaW9uIGlzIHRhaWxvcmVkCisgICAgICAgICAgICAgICAgaW50IG5vT2ZDRXNUb0NvcHkgPSBleHB0Lm1fQ0VMZW5ndGhfOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbm9PZkNFc1RvQ29weTsgaiArKykgeworICAgICAgICAgICAgICAgIHRvay5tX2V4cENFX1t0b2subV9leHBDRUxlbmd0aF8gKyBqXSAKKyAgICAgICAgICAgICAgICAgICAgPSBleHB0Lm1fQ0VfW2pdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0b2subV9leHBDRUxlbmd0aF8gKz0gbm9PZkNFc1RvQ29weTsKKyAgICAgICAgICAgICAgICAvLyBuZXZlciB0cnkgdG8gYWRkIGNvZGVwb2ludHMgYW5kIENFcy4KKyAgICAgICAgICAgICAgICAvLyBGb3Igc29tZSBvZGQgcmVhc29uLCBpdCB3b24ndCB3b3JrLgorICAgICAgICAgICAgICAgIGV4cE9mZnNldCArPSBjdXJyZW50U2VxdWVuY2VMZW47IC8vbm9PZkNFc1RvQ29weTsKKyAgICAgICAgICAgICAgICBsZW4gLT0gY3VycmVudFNlcXVlbmNlTGVuOyAvL25vT2ZDRXNUb0NvcHk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY3VycmVudFNlcXVlbmNlTGVuIC0tOworICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGN1cnJlbnRTZXF1ZW5jZUxlbiA9PSAwKSB7IAorICAgICAgICAgICAgLy8gY291bGRuJ3QgZmluZCBhbnkgdGFpbG9yZWQgc3Vic2VxdWVuY2UsIHdpbGwgaGF2ZSB0byAKKyAgICAgICAgICAgIC8vIGdldCBvbmUgZnJvbSBVQ0EuIGZpcnN0LCBnZXQgdGhlIFVDaGFycyBmcm9tIHRoZSAKKyAgICAgICAgICAgIC8vIHJ1bGVzIHRoZW4gcGljayBDRXMgb3V0IHVudGlsIHRoZXJlIGlzIG5vIG1vcmUgYW5kIAorICAgICAgICAgICAgLy8gc3R1ZmYgdGhlbSBpbnRvIGV4cGFuc2lvbgorICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQobV9wYXJzZXJfLm1fc291cmNlXy5zdWJzdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBPZmZzZXQsIGV4cE9mZnNldCArIDEpKTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgaW50IG9yZGVyID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAob3JkZXIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0b2subV9leHBDRV9bdG9rLm1fZXhwQ0VMZW5ndGhfICsrXSA9IG9yZGVyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXhwT2Zmc2V0ICsrOworICAgICAgICAgICAgbGVuIC0tOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICB0b2subV9leHBDRUxlbmd0aF8gPSAwOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIHNldCB0aGUgdWNhZWxlbWVudCB3aXRoIG9idGFpbmVkIHZhbHVlcworICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRUxlbmd0aF8gPSB0b2subV9DRUxlbmd0aF8gKyB0b2subV9leHBDRUxlbmd0aF87CisgICAgICAgICAgICAKKyAgICAgICAgLy8gY29weSBDRXMKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0b2subV9DRV8sIDAsIG1fdXRpbEVsZW1lbnRfLm1fQ0VzXywgMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvay5tX0NFTGVuZ3RoXyk7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodG9rLm1fZXhwQ0VfLCAwLCBtX3V0aWxFbGVtZW50Xy5tX0NFc18sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2subV9DRUxlbmd0aF8sIHRvay5tX2V4cENFTGVuZ3RoXyk7CisgICAgCisgICAgICAgIC8vIGNvcHkgVUNoYXJzIAorICAgICAgICAvLyBXZSBrZXB0IHByZWZpeCBhbmQgc291cmNlIGtpbmQgb2YgdG9nZXRoZXIsIGFzIGl0IGlzIGEga2luZCBvZiBhIAorICAgICAgICAvLyBjb250cmFjdGlvbi4gCisgICAgICAgIC8vIEhvd2V2ZXIsIG5vdyB3ZSBoYXZlIHRvIHNsaWNlIHRoZSBwcmVmaXggb2ZmIHRoZSBtYWluIHRoaW5nIC0gCisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fcHJlZml4XyA9IDA7Ly8gZWwubV9wcmVmaXhDaGFyc187CisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c09mZnNldF8gPSAwOyAvL2VsLm1fdWNoYXJzXzsKKyAgICAgICAgaWYgKHRvay5tX3ByZWZpeF8gIT0gMCkgeyAKKyAgICAgICAgLy8gd2Ugd2lsbCBqdXN0IGNvcHkgdGhlIHByZWZpeCBoZXJlLCBhbmQgYWRqdXN0IGFjY29yZGluZ2x5IGluIAorICAgICAgICAvLyB0aGUgYWRkUHJlZml4IGZ1bmN0aW9uIGluIHVjb2xfZWxtLiBUaGUgcmVhc29uIGlzIHRoYXQgd2UgCisgICAgICAgIC8vIG5lZWQgdG8gYWRkIGJvdGggY29tcG9zZWQgQU5EIGRlY29tcG9zZWQgZWxlbWVudHMgdG8gdGhlIAorICAgICAgICAvLyB1bnNhZmUgdGFibGUuCisgICAgICAgIGludCBzaXplID0gdG9rLm1fcHJlZml4XyA+PiAyNDsKKyAgICAgICAgaW50IG9mZnNldCA9IHRvay5tX3ByZWZpeF8gJiAweDAwRkZGRkZGOworICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX3ByZWZpeENoYXJzXyAKKyAgICAgICAgICAgID0gbV9wYXJzZXJfLm1fc291cmNlXy5zdWJzdHJpbmcob2Zmc2V0LCBvZmZzZXQgKyBzaXplKTsKKyAgICAgICAgc2l6ZSA9ICh0b2subV9zb3VyY2VfID4+IDI0KSAtICh0b2subV9wcmVmaXhfID4+IDI0KTsgCisgICAgICAgIG9mZnNldCA9ICh0b2subV9zb3VyY2VfICYgMHgwMEZGRkZGRikgKyAodG9rLm1fcHJlZml4XyA+PiAyNCk7CisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXyAKKyAgICAgICAgICAgID0gbV9wYXJzZXJfLm1fc291cmNlXy5zdWJzdHJpbmcob2Zmc2V0LCBvZmZzZXQgKyBzaXplKTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fcHJlZml4Q2hhcnNfID0gbnVsbDsKKyAgICAgICAgaW50IG9mZnNldCA9IHRvay5tX3NvdXJjZV8gJiAweDAwRkZGRkZGOworICAgICAgICBpbnQgc2l6ZSA9IHRvay5tX3NvdXJjZV8gPj4+IDI0OworICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX3VjaGFyc18gPSBtX3BhcnNlcl8ubV9zb3VyY2VfLnN1YnN0cmluZyhvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArIHNpemUpOworICAgICAgICB9CisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c18gPSBtX3V0aWxFbGVtZW50Xy5tX3VjaGFyc187CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV91dGlsRWxlbWVudF8ubV9jUG9pbnRzXy5sZW5ndGgoKSAKKyAgICAgICAgICAgICAtIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c09mZnNldF87IGkgKyspIHsKKyAgICAgICAgaWYgKGlzSmFtbyhtX3V0aWxFbGVtZW50Xy5tX2NQb2ludHNfLmNoYXJBdChpKSkpIHsKKyAgICAgICAgICAgIHQubV9jb2xsYXRvcl8ubV9pc0phbW9TcGVjaWFsXyA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qKioKKyAgICAKKyAgICAgICAgICAgIC8vIENhc2UgYml0cyBoYW5kbGluZyAKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VzX1swXSAmPSAweEZGRkZGRjNGOyAKKyAgICAgICAgLy8gQ2xlYW4gdGhlIGNhc2UgYml0cyBmaWVsZAorICAgICAgICAgICAgaWYgKG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c18ubGVuZ3RoKCkgCisgICAgICAgICAgICAgICAgLSBtX3V0aWxFbGVtZW50Xy5tX2NQb2ludHNPZmZzZXRfID4gMSkgeworICAgICAgICAvLyBEbyBpdCBtYW51YWxseQorICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX0NFc19bMF0gCisgICAgICAgIHw9IGdldENhc2VCaXRzKG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c18pOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAvLyBDb3B5IGl0IGZyb20gdGhlIFVDQQorICAgICAgICBpbnQgY2FzZUNFID0gZ2V0Rmlyc3RDRShtX3V0aWxFbGVtZW50Xy5tX2NQb2ludHNfLmNoYXJBdCgwKSk7CisgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VzX1swXSB8PSAoY2FzZUNFICYgMHhDMCk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAqKiovCisgICAgICAgIC8vIGFuZCB0aGVuLCBhZGQgaXQKKyAgICAgICAgYWRkQW5FbGVtZW50KHQsIG1fdXRpbEVsZW1lbnRfKTsKKyAgICAgICAgdG9rID0gdG9rLm1fbmV4dF87CisgICAgfSAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUZXN0aW5nIGlmIHRoZSBzdHJpbmcgYXJndW1lbnQgaGFzIGNhc2UKKyAgICAgKiBAcGFyYW0gc3JjIHN0cmluZworICAgICAqIEByZXR1cm4gdGhlIGNhc2UgZm9yIHRoaXMgY2hhciBhcnJheQorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIHRocm93biB3aGVuIGludGVybmFsIHByb2dyYW0gZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0Q2FzZUJpdHMoU3RyaW5nIHNyYykgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICBpbnQgdUNvdW50ID0gMDsgCisgICAgaW50IGxDb3VudCA9IDA7CisgICAgc3JjID0gTm9ybWFsaXplci5kZWNvbXBvc2Uoc3JjLCB0cnVlKTsKKyAgICBtX3V0aWxDb2xFSXRlcl8uc2V0VGV4dChzcmMpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3JjLmxlbmd0aCgpOyBpKyspIHsKKyAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQoc3JjLnN1YnN0cmluZyhpLCBpICsgMSkpOworICAgICAgICBpbnQgb3JkZXIgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuaXNDb250aW51YXRpb24ob3JkZXIpKSB7CisgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oIkludGVybmFsIHByb2dyYW0gZXJyb3IiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKG9yZGVyICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfQ0FTRV9CSVRfTUFTS18pCisgICAgICAgID09IFVQUEVSX0NBU0VfKSB7CisgICAgICAgIHVDb3VudCArKzsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgIGNoYXIgY2ggPSBzcmMuY2hhckF0KGkpOworICAgICAgICBpZiAoVUNoYXJhY3Rlci5pc0xvd2VyQ2FzZShjaCkpIHsKKyAgICAgICAgICAgIGxDb3VudCArKzsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAodG9TbWFsbEthbmEoY2gpID09IGNoICYmIHRvTGFyZ2VLYW5hKGNoKSAhPSBjaCkgeworICAgICAgICAgICAgbENvdW50ICsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIGlmICh1Q291bnQgIT0gMCAmJiBsQ291bnQgIT0gMCkgeworICAgICAgICByZXR1cm4gTUlYRURfQ0FTRV87CisgICAgfSAKKyAgICBlbHNlIGlmICh1Q291bnQgIT0gMCkgeworICAgICAgICByZXR1cm4gVVBQRVJfQ0FTRV87CisgICAgfSAKKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIExPV0VSX0NBU0VfOworICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVydHMgYSBjaGFyIHRvIHRoZSB1cHBlcmNhc2UgS2FuYQorICAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gY29udmVydAorICAgICAqIEByZXR1cm4gdGhlIGNvbnZlcnRlZCBLYW5hIGNoYXJhY3RlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgdG9MYXJnZUthbmEoY2hhciBjaCkgCisgICAgeworICAgIGlmICgweDMwNDIgPCBjaCAmJiBjaCA8IDB4MzBlZikgeyAvLyBLYW5hIHJhbmdlIAorICAgICAgICBzd2l0Y2ggKGNoIC0gMHgzMDAwKSB7CisgICAgICAgIGNhc2UgMHg0MTogCisgICAgICAgIGNhc2UgMHg0MzogCisgICAgICAgIGNhc2UgMHg0NTogCisgICAgICAgIGNhc2UgMHg0NzogCisgICAgICAgIGNhc2UgMHg0OTogCisgICAgICAgIGNhc2UgMHg2MzogCisgICAgICAgIGNhc2UgMHg4MzogCisgICAgICAgIGNhc2UgMHg4NTogCisgICAgICAgIGNhc2UgMHg4RToKKyAgICAgICAgY2FzZSAweEExOiAKKyAgICAgICAgY2FzZSAweEEzOiAKKyAgICAgICAgY2FzZSAweEE1OiAKKyAgICAgICAgY2FzZSAweEE3OiAKKyAgICAgICAgY2FzZSAweEE5OiAKKyAgICAgICAgY2FzZSAweEMzOiAKKyAgICAgICAgY2FzZSAweEUzOiAKKyAgICAgICAgY2FzZSAweEU1OiAKKyAgICAgICAgY2FzZSAweEVFOgorICAgICAgICBjaCArKzsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMHhGNToKKyAgICAgICAgY2ggPSAweDMwQUI7CisgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDB4RjY6CisgICAgICAgIGNoID0gMHgzMEIxOworICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gY2g7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnRzIGEgY2hhciB0byB0aGUgbG93ZXJjYXNlIEthbmEKKyAgICAgKiBAcGFyYW0gY2ggY2hhcmFjdGVyIHRvIGNvbnZlcnQKKyAgICAgKiBAcmV0dXJuIHRoZSBjb252ZXJ0ZWQgS2FuYSBjaGFyYWN0ZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIHRvU21hbGxLYW5hKGNoYXIgY2gpIAorICAgIHsKKyAgICBpZiAoMHgzMDQyIDwgY2ggJiYgY2ggPCAweDMwZWYpIHsgLy8gS2FuYSByYW5nZQorICAgICAgICBzd2l0Y2ggKGNoIC0gMHgzMDAwKSB7CisgICAgICAgIGNhc2UgMHg0MjogCisgICAgICAgIGNhc2UgMHg0NDogCisgICAgICAgIGNhc2UgMHg0NjogCisgICAgICAgIGNhc2UgMHg0ODogCisgICAgICAgIGNhc2UgMHg0QTogCisgICAgICAgIGNhc2UgMHg2NDogCisgICAgICAgIGNhc2UgMHg4NDogCisgICAgICAgIGNhc2UgMHg4NjogCisgICAgICAgIGNhc2UgMHg4RjoKKyAgICAgICAgY2FzZSAweEEyOiAKKyAgICAgICAgY2FzZSAweEE0OiAKKyAgICAgICAgY2FzZSAweEE2OiAKKyAgICAgICAgY2FzZSAweEE4OiAKKyAgICAgICAgY2FzZSAweEFBOiAKKyAgICAgICAgY2FzZSAweEM0OiAKKyAgICAgICAgY2FzZSAweEU0OiAKKyAgICAgICAgY2FzZSAweEU2OiAKKyAgICAgICAgY2FzZSAweEVGOgorICAgICAgICBjaCAtLTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMHhBQjoKKyAgICAgICAgY2ggPSAweDMwRjU7CisgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDB4QjE6CisgICAgICAgIGNoID0gMHgzMEY2OworICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gY2g7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBzaG91bGQgYmUgY29ubmVjdGVkIHRvIHNwZWNpYWwgSmFtbyBoYW5kbGluZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXRGaXJzdENFKGNoYXIgY2gpIAorICAgIHsKKyAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQoVUNoYXJhY3Rlci50b1N0cmluZyhjaCkpOworICAgIHJldHVybiBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogVGhpcyBhZGRzIGEgcmVhZCBlbGVtZW50LCB3aGlsZSB0ZXN0aW5nIGZvciBleGlzdGVuY2UgCisgICAgICogQHBhcmFtIHQgYnVpbGQgdGFibGUKKyAgICAgKiBAcGFyYW0gZWxlbWVudCAKKyAgICAgKiBAcmV0dXJuIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgYWRkQW5FbGVtZW50KEJ1aWxkVGFibGUgdCwgRWxlbWVudHMgZWxlbWVudCkgCisgICAgeworICAgICAgICBWZWN0b3IgZXhwYW5zaW9ucyA9IHQubV9leHBhbnNpb25zXzsKKyAgICAgICAgZWxlbWVudC5tX21hcENFXyA9IDA7CisgICAgICAgIAorICAgICAgICBpZiAoZWxlbWVudC5tX0NFTGVuZ3RoXyA9PSAxKSB7CisgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gZWxlbWVudC5tX0NFc19bMF07CisKKyAgICAgICAgfSBlbHNlIHsgICAgIAorICAgICAgICAvLyB1bmZvcnR1bmF0ZWx5LCBpdCBsb29rcyBsaWtlIHdlIGhhdmUgdG8gbG9vayBmb3IgYSBsb25nIHByaW1hcnkgCisgICAgICAgIC8vIGhlcmUgc2luY2UgaW4gY2Fub25pY2FsIGNsb3N1cmUgd2UgYXJlIGdvaW5nIHRvIGhpdCBzb21lIGxvbmcgCisgICAgICAgIC8vIHByaW1hcmllcyBmcm9tIHRoZSBmaXJzdCBwaGFzZSwgYW5kIHRoZXkgd2lsbCBjb21lIGJhY2sgYXMgCisgICAgICAgIC8vIGNvbnRpbnVhdGlvbnMvZXhwYW5zaW9ucyBkZXN0cm95aW5nIHRoZSBlZmZlY3Qgb2YgdGhlIHByZXZpb3VzIAorICAgICAgICAvLyBvcGl0aW1pemF0aW9uLiBBIGxvbmcgcHJpbWFyeSBpcyBhIHRocmVlIGJ5dGUgcHJpbWFyeSB3aXRoIAorICAgICAgICAvLyBzdGFydGluZyBzZWNvbmRhcmllcyBhbmQgdGVydGlhcmllcy4gSXQgY2FuIGFwcGVhciBpbiBsb25nIHJ1bnMgCisgICAgICAgIC8vIG9mIG9ubHkgcHJpbWFyeSBkaWZmZXJlbmNlcyAobGlrZSBlYXN0IEFzaWFuIHRhaWxvcmluZ3MpIGFsc28sIAorICAgICAgICAvLyBpdCBzaG91bGQgbm90IGJlIGFuIGV4cGFuc2lvbiwgYXMgZXhwYW5zaW9ucyB3b3VsZCBicmVhayB3aXRoIAorICAgICAgICAvLyB0aGlzCisgICAgICAgIGlmIChlbGVtZW50Lm1fQ0VMZW5ndGhfID09IDIgLy8gYSB0d28gQ0UgZXhwYW5zaW9uIAorICAgICAgICAmJiBSdWxlQmFzZWRDb2xsYXRvci5pc0NvbnRpbnVhdGlvbihlbGVtZW50Lm1fQ0VzX1sxXSkgCisgICAgICAgICYmIChlbGVtZW50Lm1fQ0VzX1sxXSAKKyAgICAgICAgICAgICYgKH4oMHhGRiA8PCAyNCB8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX0NPTlRJTlVBVElPTl9NQVJLRVJfKSkpIAorICAgICAgICA9PSAwIC8vIHRoYXQgaGFzIG9ubHkgcHJpbWFyaWVzIGluIGNvbnRpbnVhdGlvbgorICAgICAgICAmJiAoKChlbGVtZW50Lm1fQ0VzX1swXSA+PiA4KSAmIDB4RkYpIAorICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQllURV9DT01NT05fKSAKKyAgICAgICAgLy8gYSBjb21tb24gc2Vjb25kYXJ5CisgICAgICAgICYmICgoZWxlbWVudC5tX0NFc19bMF0gJiAweEZGKSAKKyAgICAgICAgICAgID09IFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfQ09NTU9OXykgLy8gYW5kIGEgY29tbW9uIHRlcnRpYXJ5CisgICAgICAgICkgeworICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXyAKKyAgICAgICAgICAgIC8vIGEgbG9uZyBwcmltYXJ5IHNwZWNpYWwKKyAgICAgICAgICAgIHwgKENFX0xPTkdfUFJJTUFSWV9UQUdfIDw8IDI0KSAKKyAgICAgICAgICAgIC8vIGZpcnN0IGFuZCBzZWNvbmQgYnl0ZSBvZiBwcmltYXJ5CisgICAgICAgICAgICB8ICgoZWxlbWVudC5tX0NFc19bMF0gPj4gOCkgJiAweEZGRkYwMCkgCisgICAgICAgICAgICAvLyB0aGlyZCBieXRlIG9mIHByaW1hcnkKKyAgICAgICAgICAgIHwgKChlbGVtZW50Lm1fQ0VzX1sxXSA+PiAyNCkgJiAweEZGKTsgICAKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gb21pdHRpbmcgZXhwYW5zaW9uIG9mZnNldCBpbiBidWlsZGVyCisgICAgICAgICAgICAgICAgLy8gKEhFQURFUl9TSVpFXyA+PiAyKQorICAgICAgICBpbnQgZXhwYW5zaW9uID0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXyAKKyAgICAgICAgICAgIHwgKENFX0VYUEFOU0lPTl9UQUdfIAorICAgICAgICAgICAgICAgPDwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfVEFHX1NISUZUXykgCisgICAgICAgICAgICB8IChhZGRFeHBhbnNpb24oZXhwYW5zaW9ucywgZWxlbWVudC5tX0NFc19bMF0pCisgICAgICAgICAgICAgICA8PCA0KSAmIDB4RkZGRkYwOworICAgIAorICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IGVsZW1lbnQubV9DRUxlbmd0aF87IGkgKyspIHsKKyAgICAgICAgICAgIGFkZEV4cGFuc2lvbihleHBhbnNpb25zLCBlbGVtZW50Lm1fQ0VzX1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVsZW1lbnQubV9DRUxlbmd0aF8gPD0gMHhGKSB7CisgICAgICAgICAgICBleHBhbnNpb24gfD0gZWxlbWVudC5tX0NFTGVuZ3RoXzsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhZGRFeHBhbnNpb24oZXhwYW5zaW9ucywgMCk7CisgICAgICAgIH0KKyAgICAgICAgZWxlbWVudC5tX21hcENFXyA9IGV4cGFuc2lvbjsKKyAgICAgICAgc2V0TWF4RXhwYW5zaW9uKGVsZW1lbnQubV9DRXNfW2VsZW1lbnQubV9DRUxlbmd0aF8gLSAxXSwKKyAgICAgICAgICAgICAgICAoYnl0ZSllbGVtZW50Lm1fQ0VMZW5ndGhfLCAKKyAgICAgICAgICAgICAgICB0Lm1fbWF4RXhwYW5zaW9uc18pOworICAgICAgICBpZiAoaXNKYW1vKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoMCkpKXsKKyAgICAgICAgICAgIHQubV9jb2xsYXRvcl8ubV9pc0phbW9TcGVjaWFsXyA9IHRydWU7CisgICAgICAgICAgICBzZXRNYXhKYW1vRXhwYW5zaW9uKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoMCksCisgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9DRXNfW2VsZW1lbnQubV9DRUxlbmd0aF8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIDFdLAorICAgICAgICAgICAgICAgICAgICAoYnl0ZSllbGVtZW50Lm1fQ0VMZW5ndGhfLAorICAgICAgICAgICAgICAgICAgICB0Lm1fbWF4SmFtb0V4cGFuc2lvbnNfKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gV2UgdHJlYXQgZGlnaXRzIGRpZmZlcmVudGx5IC0gdGhleSBhcmUgInViZXIgc3BlY2lhbCIgYW5kIHNob3VsZCBiZQorICAgICAgICAvLyBwcm9jZXNzZWQgZGlmZmVyZW50bHkgaWYgbnVtZXJpYyBjb2xsYXRpb24gaXMgb24uIAorICAgICAgICBpbnQgdW5pQ2hhciA9IDA7CisgICAgICAgIGlmICgoZWxlbWVudC5tX3VjaGFyc18ubGVuZ3RoKCkgPT0gMikgCisgICAgICAgICAgICAmJiBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoZWxlbWVudC5tX3VjaGFyc18uY2hhckF0KDApKSkgeworICAgICAgICAgICAgdW5pQ2hhciA9IFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX3VjaGFyc18uY2hhckF0KDApLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV91Y2hhcnNfLmNoYXJBdCgxKSk7ICAgICAgCisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQubV91Y2hhcnNfLmxlbmd0aCgpID09IDEpIHsKKyAgICAgICAgICAgIHVuaUNoYXIgPSBlbGVtZW50Lm1fdWNoYXJzXy5jaGFyQXQoMCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIEhlcmUsIHdlIGVpdGhlciBoYXZlIG9uZSBub3JtYWwgQ0UgT1IgbWFwQ0UgaXMgc2V0LiBUaGVyZWZvcmUsIHdlIAorICAgICAgICAvLyBzdHVmZiBvbmx5IG9uZSBlbGVtZW50IHRvIHRoZSBleHBhbnNpb24gYnVmZmVyLiBXaGVuIHdlIGVuY291bnRlciBhIAorICAgICAgICAvLyBkaWdpdCBhbmQgd2UgZG9uJ3QgZG8gbnVtZXJpYyBjb2xsYXRpb24sIHdlIHdpbGwganVzdCBwaWNrIHRoZSBDRSAKKyAgICAgICAgLy8gd2UgaGF2ZSBhbmQgYnJlYWsgb3V0IG9mIGNhc2UgKHNlZSB1Y29sLmNwcCB1Y29sX3Bydl9nZXRTcGVjaWFsQ0UgCisgICAgICAgIC8vICYmIHVjb2xfcHJ2X2dldFNwZWNpYWxQcmV2Q0UpLiBJZiB3ZSBwaWNrZWQgYSBzcGVjaWFsLCBmdXJ0aGVyIAorICAgICAgICAvLyBwcm9jZXNzaW5nIHdpbGwgb2NjdXIuIElmIGl0J3MgYSBzaW1wbGUgQ0UsIHdlJ2xsIHJldHVybiBkdWUKKyAgICAgICAgLy8gdG8gaG93IHRoZSBsb29wIGlzIGNvbnN0cnVjdGVkLgorICAgICAgICBpZiAodW5pQ2hhciAhPSAwICYmIFVDaGFyYWN0ZXIuaXNEaWdpdCh1bmlDaGFyKSkgeworICAgICAgICAgICAgLy8gcHJlcGFyZSB0aGUgZWxlbWVudAorICAgICAgICAgICAgaW50IGV4cGFuc2lvbiA9IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18gCisgICAgICAgIHwgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9ESUdJVF9UQUdfCisgICAgICAgICAgIDw8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1RBR19TSElGVF8pIHwgMTsgCisgICAgICAgICAgICBpZiAoZWxlbWVudC5tX21hcENFXyAhPSAwKSB7IAorICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGFuIGV4cGFuc2lvbiwgd2UnbGwgcGljayBpdCBoZXJlCisgICAgICAgICAgICAgICAgZXhwYW5zaW9uIHw9IChhZGRFeHBhbnNpb24oZXhwYW5zaW9ucywgZWxlbWVudC5tX21hcENFXykgPDwgNCk7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZXhwYW5zaW9uIHw9IChhZGRFeHBhbnNpb24oZXhwYW5zaW9ucywgZWxlbWVudC5tX0NFc19bMF0pIDw8IDQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxlbWVudC5tX21hcENFXyA9IGV4cGFuc2lvbjsKKyAgICAgICAgfQorICAgIAorICAgIC8vIGhlcmUgd2Ugd2FudCB0byBhZGQgdGhlIHByZWZpeCBzdHJ1Y3R1cmUuCisgICAgLy8gSSB3aWxsIHRyeSB0byBwcm9jZXNzIGl0IGFzIGEgcmV2ZXJzZSBjb250cmFjdGlvbiwgaWYgcG9zc2libGUuCisgICAgLy8gcHJlZml4IGJ1ZmZlciBpcyBhbHJlYWR5IHJldmVyc2VkLgorICAgIAorICAgIGlmIChlbGVtZW50Lm1fcHJlZml4Q2hhcnNfICE9IG51bGwgJiYKKyAgICAgICAgICAgIGVsZW1lbnQubV9wcmVmaXhDaGFyc18ubGVuZ3RoKCkgLSBlbGVtZW50Lm1fcHJlZml4XyA+IDApIHsKKyAgICAgICAgLy8gV2Uga2VlcCB0aGUgc2VlbiBwcmVmaXggc3RhcnRlciBlbGVtZW50cyBpbiBhIGhhc2h0YWJsZSB3ZSBuZWVkIAorICAgICAgICAgICAgLy8gaXQgdG8gYmUgYWJsZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSBzaW1wbGUgY29kZXBvaW50cyBhbmQgCisgICAgICAgICAgICAvLyBwcmVmaXggc3RhcnRlcnMuIEFsc28sIHdlIG5lZWQgdG8gdXNlIGl0IGZvciBjYW5vbmljYWwgY2xvc3VyZS4KKyAgICAgICAgbV91dGlsRWxlbWVudDJfLm1fY2FzZUJpdF8gPSBlbGVtZW50Lm1fY2FzZUJpdF87CisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8ubV9DRUxlbmd0aF8gPSBlbGVtZW50Lm1fQ0VMZW5ndGhfOworICAgICAgICAgICAgbV91dGlsRWxlbWVudDJfLm1fQ0VzXyA9IGVsZW1lbnQubV9DRXNfOworICAgICAgICAgICAgbV91dGlsRWxlbWVudDJfLm1fbWFwQ0VfID0gZWxlbWVudC5tX21hcENFXzsKKyAgICAgICAgICAgIC8vbV91dGlsRWxlbWVudDJfLm1fcHJlZml4Q2hhcnNfID0gZWxlbWVudC5tX3ByZWZpeENoYXJzXzsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX3NpemVQcmltXyA9IGVsZW1lbnQubV9zaXplUHJpbV87CisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8ubV9zaXplU2VjXyA9IGVsZW1lbnQubV9zaXplU2VjXzsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX3NpemVUZXJfID0gZWxlbWVudC5tX3NpemVUZXJfOworICAgICAgICAgICAgbV91dGlsRWxlbWVudDJfLm1fdmFyaWFibGVUb3BfID0gZWxlbWVudC5tX3ZhcmlhYmxlVG9wXzsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX3ByZWZpeF8gPSBlbGVtZW50Lm1fcHJlZml4XzsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX3ByZWZpeENoYXJzXyA9IE5vcm1hbGl6ZXIuY29tcG9zZShlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLCBmYWxzZSk7CisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8ubV91Y2hhcnNfID0gZWxlbWVudC5tX3VjaGFyc187CisgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8ubV9jUG9pbnRzXyA9IGVsZW1lbnQubV9jUG9pbnRzXzsKKyAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX2NQb2ludHNPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIAorICAgICAgICBpZiAodC5tX3ByZWZpeExvb2t1cF8gIT0gbnVsbCkgeworICAgICAgICBFbGVtZW50cyB1Q0UgPSAoRWxlbWVudHMpdC5tX3ByZWZpeExvb2t1cF8uZ2V0KGVsZW1lbnQpOworICAgICAgICBpZiAodUNFICE9IG51bGwpIHsgCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZXJlIGlzIGFscmVhZHkgYSBzZXQgb2YgY29kZSBwb2ludHMgaGVyZQorICAgICAgICAgICAgZWxlbWVudC5tX21hcENFXyA9IGFkZFByZWZpeCh0LCB1Q0UubV9tYXBDRV8sIGVsZW1lbnQpOworICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeyAvLyBubyBjb2RlIHBvaW50cywgc28gdGhpcyBzcG90IGlzIGNsZWFuCisgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfID0gYWRkUHJlZml4KHQsIENFX05PVF9GT1VORF8sIGVsZW1lbnQpOworICAgICAgICAgICAgdUNFID0gbmV3IEVsZW1lbnRzKGVsZW1lbnQpOworICAgICAgICAgICAgdUNFLm1fY1BvaW50c18gPSB1Q0UubV91Y2hhcnNfOworICAgICAgICAgICAgdC5tX3ByZWZpeExvb2t1cF8ucHV0KHVDRSwgdUNFKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobV91dGlsRWxlbWVudDJfLm1fcHJlZml4Q2hhcnNfLmxlbmd0aCgpIAorICAgICAgICAgICAgIT0gZWxlbWVudC5tX3ByZWZpeENoYXJzXy5sZW5ndGgoKSAtIGVsZW1lbnQubV9wcmVmaXhfCisgICAgICAgICAgICAgICAgICAgIHx8ICFtX3V0aWxFbGVtZW50Ml8ubV9wcmVmaXhDaGFyc18ucmVnaW9uTWF0Y2hlcygwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9wcmVmaXhDaGFyc18sIGVsZW1lbnQubV9wcmVmaXhfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnQyXy5tX3ByZWZpeENoYXJzXy5sZW5ndGgoKSkpIHsKKyAgICAgICAgICAgIC8vIGRvIGl0IQorICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8ubV9tYXBDRV8gPSBhZGRQcmVmaXgodCwgZWxlbWVudC5tX21hcENFXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Ml8pOworICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gV2UgbmVlZCB0byB1c2UgdGhlIGNhbm9uaWNhbCBpdGVyYXRvciBoZXJlCisgICAgLy8gdGhlIHdheSB3ZSBkbyBpdCBpcyB0byBnZW5lcmF0ZSB0aGUgY2Fub25pY2FsbHkgZXF1aXZhbGVudCBzdHJpbmdzIAorICAgIC8vIGZvciB0aGUgY29udHJhY3Rpb24gYW5kIHRoZW4gYWRkIHRoZSBzZXF1ZW5jZXMgdGhhdCBwYXNzIEZDRCBjaGVjaworICAgIGlmIChlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCkgLSBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gPiAxIAorICAgICAgICAmJiAhKGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyA9PSAyIAorICAgICAgICAgJiYgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoMCkpIAorICAgICAgICAgJiYgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KDEpKSkpIHsgCisgICAgICAgICAgICAvLyB0aGlzIGlzIGEgY29udHJhY3Rpb24sIHdlIHNob3VsZCBjaGVjayB3aGV0aGVyIGEgY29tcG9zZWQgZm9ybSAKKyAgICAgICAgICAgIC8vIHNob3VsZCBhbHNvIGJlIGluY2x1ZGVkCisgICAgICAgIG1fdXRpbENhbkl0ZXJfLnNldFNvdXJjZShlbGVtZW50Lm1fY1BvaW50c18pOworICAgICAgICBTdHJpbmcgc291cmNlID0gbV91dGlsQ2FuSXRlcl8ubmV4dCgpOworICAgICAgICB3aGlsZSAoc291cmNlICE9IG51bGwgJiYgc291cmNlLmxlbmd0aCgpID4gMCkgeworICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKHNvdXJjZSwgTm9ybWFsaXplci5GQ0QsMCkgCisgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuTk8pIHsKKyAgICAgICAgICAgIGVsZW1lbnQubV91Y2hhcnNfID0gc291cmNlOworICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfID0gZWxlbWVudC5tX3VjaGFyc187CisgICAgICAgICAgICBmaW5hbGl6ZUFkZGl0aW9uKHQsIGVsZW1lbnQpOworICAgICAgICB9CisgICAgICAgIHNvdXJjZSA9IG1fdXRpbENhbkl0ZXJfLm5leHQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQubV9tYXBDRV87CisgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBmaW5hbGl6ZUFkZGl0aW9uKHQsIGVsZW1lbnQpOyAgCisgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGRzIGFuIGV4cGFuc2lvbiBjZSB0byB0aGUgZXhwYW5zaW9uIHZlY3RvcgorICAgICAqIEBwYXJhbSBleHBhbnNpb25zIHZlY3RvciB0byBhZGQgdG8KKyAgICAgKiBAcGFyYW0gdmFsdWUgb2YgdGhlIGV4cGFuc2lvbgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgdGhlIG5ldyBlbGVtZW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGFkZEV4cGFuc2lvbihWZWN0b3IgZXhwYW5zaW9ucywgaW50IHZhbHVlKSAKKyAgICB7CisgICAgZXhwYW5zaW9ucy5hZGQobmV3IEludGVnZXIodmFsdWUpKTsKKyAgICByZXR1cm4gZXhwYW5zaW9ucy5zaXplKCkgLSAxOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBMb29rcyBmb3IgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFsbCBleHBhbnNpb24gc2VxdWVuY2VzIGVuZGluZyB3aXRoIHRoZSAKKyAgICAgKiBzYW1lIGNvbGxhdGlvbiBlbGVtZW50LiBUaGUgc2l6ZSByZXF1aXJlZCBmb3IgbWF4ZXhwYW5zaW9uIGFuZCBtYXhzaXplIAorICAgICAqIGlzIHJldHVybmVkIGlmIHRoZSBhcnJheXMgYXJlIHRvbyBzbWFsbC4KKyAgICAgKiBAcGFyYW0gZW5kZXhwYW5zaW9uIHRoZSBsYXN0IGV4cGFuc2lvbiBjb2xsYXRpb24gZWxlbWVudCB0byBiZSBhZGRlZAorICAgICAqIEBwYXJhbSBleHBhbnNpb25zaXplIHNpemUgb2YgdGhlIGV4cGFuc2lvbgorICAgICAqIEBwYXJhbSBtYXhleHBhbnNpb24gZGF0YSBzdHJ1Y3R1cmUgdG8gc3RvcmUgdGhlIG1heGltdW0gZXhwYW5zaW9uIGRhdGEuCisgICAgICogQHJldHVybnMgc2l6ZSBvZiB0aGUgbWF4ZXhwYW5zaW9uIGFuZCBtYXhzaXplIHVzZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHNldE1heEV4cGFuc2lvbihpbnQgZW5kZXhwYW5zaW9uLCBieXRlIGV4cGFuc2lvbnNpemUsCisgICAgICAgICAgICAgICAgICAgICAgIE1heEV4cGFuc2lvblRhYmxlIG1heGV4cGFuc2lvbikKKyAgICB7CisgICAgaW50IHN0YXJ0ID0gMDsKKyAgICBpbnQgbGltaXQgPSBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uc2l6ZSgpOworICAgICAgICBsb25nIHVuc2lnbmVkID0gKGxvbmcpZW5kZXhwYW5zaW9uOworICAgICAgICB1bnNpZ25lZCAmPSAweEZGRkZGRkZGbDsKKyAgICAKKyAgICAvLyB1c2luZyBiaW5hcnkgc2VhcmNoIHRvIGRldGVybWluZSBpZiBsYXN0IGV4cGFuc2lvbiBlbGVtZW50IGlzIAorICAgIC8vIGFscmVhZHkgaW4gdGhlIGFycmF5IAorICAgIGludCByZXN1bHQgPSAtMTsKKyAgICB3aGlsZSAoc3RhcnQgPCBsaW1pdCAtIDEpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaW50IG1pZCA9IHN0YXJ0ICsgKChsaW1pdCAtIHN0YXJ0KSA+PiAxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGxvbmcgdW5zaWduZWRjZSA9ICgoSW50ZWdlciltYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uZ2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlkKSkuaW50VmFsdWUoKTsgCisgICAgICAgICAgICB1bnNpZ25lZGNlICY9IDB4RkZGRkZGRkZsOworICAgICAgICBpZiAodW5zaWduZWQgPD0gdW5zaWduZWRjZSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBsaW1pdCA9IG1pZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgc3RhcnQgPSBtaWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIH0gCisgICAgICAgICAgCisgICAgaWYgKCgoSW50ZWdlciltYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uZ2V0KHN0YXJ0KSkuaW50VmFsdWUoKSAKKyAgICAgICAgPT0gZW5kZXhwYW5zaW9uKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgcmVzdWx0ID0gc3RhcnQ7ICAKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBlbHNlIGlmICgoKEludGVnZXIpbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLmdldChsaW1pdCkpLmludFZhbHVlKCkgCisgICAgICAgICA9PSBlbmRleHBhbnNpb24pIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICByZXN1bHQgPSBsaW1pdDsgICAgICAKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBpZiAocmVzdWx0ID4gLTEpIHsKKyAgICAgICAgLy8gZm91bmQgdGhlIGNlIGluIGV4cGFuc2lvbiwgd2UnbGwganVzdCBtb2RpZnkgdGhlIHNpemUgaWYgaXQgCisgICAgICAgIC8vIGlzIHNtYWxsZXIKKyAgICAgICAgT2JqZWN0IGN1cnJlbnRzaXplID0gbWF4ZXhwYW5zaW9uLm1fZXhwYW5zaW9uQ0VTaXplXy5nZXQocmVzdWx0KTsKKyAgICAgICAgaWYgKCgoQnl0ZSljdXJyZW50c2l6ZSkuYnl0ZVZhbHVlKCkgPCBleHBhbnNpb25zaXplKSB7CisgICAgICAgIG1heGV4cGFuc2lvbi5tX2V4cGFuc2lvbkNFU2l6ZV8uc2V0KHJlc3VsdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJ5dGUoZXhwYW5zaW9uc2l6ZSkpOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAvLyB3ZSdsbCBuZWVkIHRvIHNxdWVlemUgdGhlIHZhbHVlIGludG8gdGhlIGFycmF5LiBpbml0aWFsIAorICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbi4gc2hpZnRpbmcgdGhlIHN1YmFycmF5IGRvd24gYnkgMQorICAgICAgICBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uaW5zZXJ0RWxlbWVudEF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoZW5kZXhwYW5zaW9uKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICsgMSk7CisgICAgICAgIG1heGV4cGFuc2lvbi5tX2V4cGFuc2lvbkNFU2l6ZV8uaW5zZXJ0RWxlbWVudEF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQnl0ZShleHBhbnNpb25zaXplKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKyAxKTsKKyAgICB9CisgICAgcmV0dXJuIG1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5zaXplKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGFsbCBqYW1vIGV4cGFuc2lvbiBzZXF1ZW5jZXMgZW5kaW5nIHdpdGggdGhlIAorICAgICAqIHNhbWUgY29sbGF0aW9uIGVsZW1lbnQuIFRoZSBzaXplIHJlcXVpcmVkIGZvciBtYXhleHBhbnNpb24gYW5kIG1heHNpemUgCisgICAgICogaXMgcmV0dXJuZWQgaWYgdGhlIGFycmF5cyBhcmUgdG9vIHNtYWxsLgorICAgICAqIEBwYXJhbSBjaCB0aGUgamFtbyBjb2RlcG9pbnQKKyAgICAgKiBAcGFyYW0gZW5kZXhwYW5zaW9uIHRoZSBsYXN0IGV4cGFuc2lvbiBjb2xsYXRpb24gZWxlbWVudCB0byBiZSBhZGRlZAorICAgICAqIEBwYXJhbSBleHBhbnNpb25zaXplIHNpemUgb2YgdGhlIGV4cGFuc2lvbgorICAgICAqIEBwYXJhbSBtYXhleHBhbnNpb24gZGF0YSBzdHJ1Y3R1cmUgdG8gc3RvcmUgdGhlIG1heGltdW0gZXhwYW5zaW9uIGRhdGEuCisgICAgICogQHJldHVybnMgc2l6ZSBvZiB0aGUgbWF4ZXhwYW5zaW9uIGFuZCBtYXhzaXplIHVzZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHNldE1heEphbW9FeHBhbnNpb24oY2hhciBjaCwgaW50IGVuZGV4cGFuc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBleHBhbnNpb25zaXplLAorICAgICAgICAgICAgICAgICAgICAgICBNYXhKYW1vRXhwYW5zaW9uVGFibGUgbWF4ZXhwYW5zaW9uKQorICAgIHsKKyAgICBib29sZWFuIGlzViA9IHRydWU7CisgICAgaWYgKGNoID49IDB4MTEwMCAmJiBjaCA8PSAweDExMTIpIHsKKyAgICAgICAgLy8gZGV0ZXJtaW5lcyBMIGZvciBKYW1vLCBkb2Vzbid0IG5lZWQgdG8gc3RvcmUgdGhpcyBzaW5jZSBpdCBpcyAKKyAgICAgICAgLy8gbmV2ZXIgYXQgdGhlIGVuZCBvZiBhIGV4cGFuc2lvbgorICAgICAgICBpZiAobWF4ZXhwYW5zaW9uLm1fbWF4TFNpemVfIDwgZXhwYW5zaW9uc2l6ZSkgeworICAgICAgICBtYXhleHBhbnNpb24ubV9tYXhMU2l6ZV8gPSBleHBhbnNpb25zaXplOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uc2l6ZSgpOworICAgIH0KKyAgICAKKyAgICBpZiAoY2ggPj0gMHgxMTYxICYmIGNoIDw9IDB4MTE3NSkgeworICAgICAgICAvLyBkZXRlcm1pbmVzIFYgZm9yIEphbW8KKyAgICAgICAgaWYgKG1heGV4cGFuc2lvbi5tX21heFZTaXplXyA8IGV4cGFuc2lvbnNpemUpIHsKKyAgICAgICAgbWF4ZXhwYW5zaW9uLm1fbWF4VlNpemVfID0gZXhwYW5zaW9uc2l6ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpZiAoY2ggPj0gMHgxMUE4ICYmIGNoIDw9IDB4MTFDMikgeworICAgICAgICBpc1YgPSBmYWxzZTsKKyAgICAgICAgLy8gZGV0ZXJtaW5lcyBUIGZvciBKYW1vCisgICAgICAgIGlmIChtYXhleHBhbnNpb24ubV9tYXhUU2l6ZV8gPCBleHBhbnNpb25zaXplKSB7CisgICAgICAgIG1heGV4cGFuc2lvbi5tX21heFRTaXplXyA9IGV4cGFuc2lvbnNpemU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAgICAgaW50IHBvcyA9IG1heGV4cGFuc2lvbi5tX2VuZEV4cGFuc2lvbkNFXy5zaXplKCk7ICAgIAorICAgIHdoaWxlIChwb3MgPiAwKSB7CisgICAgICAgIHBvcyAtLTsKKyAgICAgICAgaWYgKCgoSW50ZWdlciltYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uZ2V0KHBvcykpLmludFZhbHVlKCkgCisgICAgICAgID09IGVuZGV4cGFuc2lvbikgeworICAgICAgICByZXR1cm4gbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLnNpemUoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uYWRkKG5ldyBJbnRlZ2VyKGVuZGV4cGFuc2lvbikpOworICAgIG1heGV4cGFuc2lvbi5tX2lzVl8uYWRkKG5ldyBCb29sZWFuKGlzVikpOworICAgICAgICAgIAorICAgIHJldHVybiBtYXhleHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uc2l6ZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGRzIGEgcHJlZml4IHRvIHRoZSB0YWJsZQorICAgICAqIEBwYXJhbSB0IGJ1aWxkIHRhYmxlIHRvIHVwZGF0ZQorICAgICAqIEBwYXJhbSBDRSBjb2xsYXRpb24gZWxlbWVudCB0byBhZGQKKyAgICAgKiBAcGFyYW0gZWxlbWVudCBydWxlIGVsZW1lbnQgdG8gYWRkCisgICAgICogQHJldHVybiBtb2RpZmllZCBjZQorICAgICAqLworICAgIHByaXZhdGUgaW50IGFkZFByZWZpeChCdWlsZFRhYmxlIHQsIGludCBDRSwgRWxlbWVudHMgZWxlbWVudCkgCisgICAgeworICAgIC8vIGN1cnJlbnRseSB0aGUgbG9uZ2VzdCBwcmVmaXggd2UncmUgc3VwcG9ydGluZyBpbiBKYXBhbmVzZSBpcyB0d28gCisgICAgLy8gY2hhcmFjdGVycyBsb25nLiBBbHRob3VnaCB0aGlzIHRhYmxlIGNvdWxkIHF1aXRlIGVhc2lseSBtaW1pYyAKKyAgICAvLyBjb21wbGV0ZSBjb250cmFjdGlvbiBzdHVmZiB0aGVyZSBpcyBubyBnb29kIHJlYXNvbiB0byBtYWtlIGEgZ2VuZXJhbCAKKyAgICAvLyBzb2x1dGlvbiwgYXMgaXQgd291bGQgcmVxdWlyZSBzb21lIGVycm9yIHByb25lIG1lc3NpbmcuCisgICAgQ29udHJhY3Rpb25UYWJsZSBjb250cmFjdGlvbnMgPSB0Lm1fY29udHJhY3Rpb25zXzsKKyAgICBTdHJpbmcgb2xkQ1AgPSBlbGVtZW50Lm1fY1BvaW50c187CisgICAgaW50IG9sZENQT2Zmc2V0ID0gZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfOworICAgICAgICAKKyAgICBjb250cmFjdGlvbnMubV9jdXJyZW50VGFnXyA9IENFX1NQRUNfUFJPQ19UQUdfOworICAgIC8vIGhlcmUsIHdlIHdpbGwgbm9ybWFsaXplICYgYWRkIHByZWZpeCB0byB0aGUgdGFibGUuCisgICAgaW50IHNpemUgPSBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLmxlbmd0aCgpIC0gZWxlbWVudC5tX3ByZWZpeF87CisgICAgZm9yIChpbnQgaiA9IDE7IGogPCBzaXplOyBqICsrKSB7ICAgCisgICAgICAgIC8vIEZpcnN0IGFkZCBORkQgcHJlZml4IGNoYXJzIHRvIHVuc2FmZSBDUCBoYXNoIHRhYmxlIAorICAgICAgICAvLyBVbmxlc3MgaXQgaXMgYSB0cmFpbCBzdXJyb2dhdGUsIHdoaWNoIGlzIGhhbmRsZWQgYWxnb3JpdG1pY2FsbHkgCisgICAgICAgIC8vIGFuZCBzaG91bGRuJ3QgdGFrZSB1cCBzcGFjZSBpbiB0aGUgdGFibGUuCisgICAgICAgIGNoYXIgY2ggPSBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLmNoYXJBdChqICsgZWxlbWVudC5tX3ByZWZpeF8pOworICAgICAgICBpZiAoIVVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgIHVuc2FmZUNQU2V0KHQubV91bnNhZmVDUF8sIGNoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLy8gU3RyaW5nQnVmZmVyIHJldmVyc2VkID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBtX3V0aWxTdHJpbmdCdWZmZXJfLmRlbGV0ZSgwLCBtX3V0aWxTdHJpbmdCdWZmZXJfLmxlbmd0aCgpKTsKKyAgICBmb3IgKGludCBqID0gMDsgaiA8IHNpemU7IGogKyspIHsgCisgICAgICAgIC8vIHByZWZpeGVzIGFyZSBnb2luZyB0byBiZSBsb29rZWQgdXAgYmFja3dhcmRzCisgICAgICAgIC8vIHRoZXJlZm9yZSwgd2Ugd2lsbCBwcm9tcHRseSByZXZlcnNlIHRoZSBwcmVmaXggYnVmZmVyLi4uCisgICAgICAgIGludCBvZmZzZXQgPSBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLmxlbmd0aCgpIC0gaiAtIDE7CisgICAgICAgIG1fdXRpbFN0cmluZ0J1ZmZlcl8uYXBwZW5kKGVsZW1lbnQubV9wcmVmaXhDaGFyc18uY2hhckF0KG9mZnNldCkpOworICAgIH0KKyAgICBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfID0gbV91dGlsU3RyaW5nQnVmZmVyXy50b1N0cmluZygpOworICAgIGVsZW1lbnQubV9wcmVmaXhfID0gMDsKKyAgICAKKyAgICAvLyB0aGUgZmlyc3QgY29kZXBvaW50IGlzIGFsc28gdW5zYWZlLCBhcyBpdCBmb3JtcyBhICdjb250cmFjdGlvbicgd2l0aCAKKyAgICAvLyB0aGUgcHJlZml4CisgICAgaWYgKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoMCkpKSB7CisgICAgICAgIHVuc2FmZUNQU2V0KHQubV91bnNhZmVDUF8sIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoMCkpOworICAgIH0KKyAgICAgICAgCisgICAgZWxlbWVudC5tX2NQb2ludHNfID0gZWxlbWVudC5tX3ByZWZpeENoYXJzXzsKKyAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gPSBlbGVtZW50Lm1fcHJlZml4XzsKKyAgICAKKyAgICAvLyBBZGQgdGhlIGxhc3QgY2hhciBvZiB0aGUgY29udHJhY3Rpb24gdG8gdGhlIGNvbnRyYWN0aW9uLWVuZCBoYXNoIAorICAgIC8vIHRhYmxlLiB1bmxlc3MgaXQgaXMgYSB0cmFpbCBzdXJyb2dhdGUsIHdoaWNoIGlzIGhhbmRsZWQgCisgICAgLy8gYWxnb3JpdGhtaWNhbGx5IGFuZCBzaG91bGRuJ3QgYmUgaW4gdGhlIHRhYmxlCisgICAgaWYgKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKAorICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIDEpKSkgeworICAgICAgICBDb250ckVuZENQU2V0KHQubV9jb250ckVuZENQXywgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCkgLSAxKSk7CisgICAgfQorICAgIC8vIEZpcnN0IHdlIG5lZWQgdG8gY2hlY2sgaWYgY29udHJhY3Rpb25zIHN0YXJ0cyB3aXRoIGEgc3Vycm9nYXRlCisgICAgLy8gaW50IGNwID0gVVRGMTYuY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzXywgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKTsKKyAgICAKKyAgICAvLyBJZiB0aGVyZSBhcmUgYW55IEphbW9zIGluIHRoZSBjb250cmFjdGlvbiwgd2Ugc2hvdWxkIHR1cm4gb24gc3BlY2lhbCAKKyAgICAvLyBwcm9jZXNzaW5nIGZvciBKYW1vcworICAgIGlmIChpc0phbW8oZWxlbWVudC5tX3ByZWZpeENoYXJzXy5jaGFyQXQoZWxlbWVudC5tX3ByZWZpeF8pKSkgeworICAgICAgICB0Lm1fY29sbGF0b3JfLm1faXNKYW1vU3BlY2lhbF8gPSB0cnVlOworICAgIH0KKyAgICAvLyB0aGVuIHdlIG5lZWQgdG8gZGVhbCB3aXRoIGl0IAorICAgIC8vIHdlIGNvdWxkIGFyZWFkeSBoYXZlIHNvbWV0aGluZyBpbiB0YWJsZSAtIG9yIHdlIG1pZ2h0IG5vdCAKKyAgICBpZiAoIWlzUHJlZml4KENFKSkgeyAKKyAgICAgICAgLy8gaWYgaXQgd2Fzbid0IGNvbnRyYWN0aW9uLCB3ZSB3b3VsZG4ndCBlbmQgdXAgaGVyZQorICAgICAgICBpbnQgZmlyc3RDb250cmFjdGlvbk9mZnNldCA9IGFkZENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OVFJBQ1RJT05fVEFCTEVfTkVXX0VMRU1FTlRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikwLCBDRSk7CisgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICBDRV9OT1RfRk9VTkRfKTsKKyAgICAgICAgYWRkQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9wcmVmaXhDaGFyc18uY2hhckF0KGVsZW1lbnQubV9wcmVmaXhfKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDRSk7CisgICAgICAgIGFkZENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZmlyc3RDb250cmFjdGlvbk9mZnNldCwgKGNoYXIpMHhGRkZGLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIENFKTsKKyAgICAgICAgQ0UgPSBjb25zdHJ1Y3RTcGVjaWFsQ0UoQ0VfU1BFQ19QUk9DX1RBR18sIGZpcnN0Q29udHJhY3Rpb25PZmZzZXQpOworICAgIH0gCisgICAgZWxzZSB7IAorICAgICAgICAvLyB3ZSBhcmUgYWRkaW5nIHRvIGV4aXN0aW5nIGNvbnRyYWN0aW9uIAorICAgICAgICAvLyB0aGVyZSB3ZXJlIGFscmVhZHkgc29tZSBlbGVtZW50cyBpbiB0aGUgdGFibGUsIHNvIHdlIG5lZWQgdG8gYWRkIAorICAgICAgICAvLyBhIG5ldyBjb250cmFjdGlvbiAKKyAgICAgICAgLy8gVHdvIHRoaW5ncyBjYW4gaGFwcGVuIGhlcmU6IGVpdGhlciB0aGUgY29kZXBvaW50IGlzIGFscmVhZHkgaW4gCisgICAgICAgIC8vIHRoZSB0YWJsZSwgb3IgaXQgaXMgbm90CisgICAgICAgIGNoYXIgY2ggPSBlbGVtZW50Lm1fcHJlZml4Q2hhcnNfLmNoYXJBdChlbGVtZW50Lm1fcHJlZml4Xyk7CisgICAgICAgIGludCBwb3NpdGlvbiA9IGZpbmRDUChjb250cmFjdGlvbnMsIENFLCBjaCk7CisgICAgICAgIGlmIChwb3NpdGlvbiA+IDApIHsgICAgICAgCisgICAgICAgIC8vIGlmIGl0IGlzIHdlIGp1c3QgY29udGludWUgZG93biB0aGUgY2hhaW4gCisgICAgICAgIGludCBlQ0UgPSBnZXRDRShjb250cmFjdGlvbnMsIENFLCBwb3NpdGlvbik7CisgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIGVDRSk7CisgICAgICAgIHNldENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgQ0UsIHBvc2l0aW9uLCBjaCwgbmV3Q0UpOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsgICAgICAgICAgICAgICAgICAKKyAgICAgICAgLy8gaWYgaXQgaXNuJ3QsIHdlIHdpbGwgaGF2ZSB0byBjcmVhdGUgYSBuZXcgc2VxdWVuY2UgCisgICAgICAgIHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIENFX05PVF9GT1VORF8pOworICAgICAgICBpbnNlcnRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIENFLCBjaCwgZWxlbWVudC5tX21hcENFXyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZWxlbWVudC5tX2NQb2ludHNfID0gb2xkQ1A7CisgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfID0gb2xkQ1BPZmZzZXQ7CisgICAgCisgICAgcmV0dXJuIENFOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGFyZ3VtZW50IGNlIGlzIGEgY29udHJhY3Rpb24KKyAgICAgKiBAcGFyYW0gQ0UgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgYXJndW1lbnQgY2UgaXMgYSBjb250cmFjdGlvbgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNDb250cmFjdGlvbihpbnQgQ0UpIAorICAgIHsKKyAgICByZXR1cm4gaXNTcGVjaWFsKENFKSAmJiAoZ2V0Q0VUYWcoQ0UpID09IENFX0NPTlRSQUNUSU9OX1RBR18pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGFyZ3VtZW50IGNlIGhhcyBhIHByZWZpeAorICAgICAqIEBwYXJhbSBDRSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBhcmd1bWVudCBjZSBoYXMgYSBwcmVmaXgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzUHJlZml4KGludCBDRSkgCisgICAgeworICAgIHJldHVybiBpc1NwZWNpYWwoQ0UpICYmIChnZXRDRVRhZyhDRSkgPT0gQ0VfU1BFQ19QUk9DX1RBR18pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGFyZ3VtZW50IGNlIGlzIHNwZWNpYWwKKyAgICAgKiBAcGFyYW0gQ0UgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgYXJndW1lbnQgY2UgaXMgc3BlY2lhbAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNTcGVjaWFsKGludCBDRSkgCisgICAgeworICAgIHJldHVybiAoQ0UgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9TUEVDSUFMX0ZMQUdfKSA9PSAweEYwMDAwMDAwOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGFyZ3VtZW50IGNlIGhhcyBhIHByZWZpeAorICAgICAqIEBwYXJhbSBDRSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBhcmd1bWVudCBjZSBoYXMgYSBwcmVmaXgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgZ2V0Q0VUYWcoaW50IENFKSAKKyAgICB7CisgICAgcmV0dXJuIChDRSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1RBR19NQVNLXykgPj4+IAorICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5DRV9UQUdfU0hJRlRfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjZSBhdCBwb3NpdGlvbiBpbiBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBwb3NpdGlvbiBvZmZzZXQgdG8gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHJldHVybiBjZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRDRShDb250cmFjdGlvblRhYmxlIHRhYmxlLCBpbnQgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgaW50IHBvc2l0aW9uKSAKKyAgICB7CisgICAgZWxlbWVudCAmPSAweEZGRkZGRjsKKyAgICAgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHRibCA9IGdldEJhc2ljQ29udHJhY3Rpb25UYWJsZSh0YWJsZSwgZWxlbWVudCk7CisgICAgICAgIAorICAgICAgICBpZiAodGJsID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBDRV9OT1RfRk9VTkRfOworICAgICAgICB9CisgICAgaWYgKHBvc2l0aW9uID4gdGJsLm1fQ0VzXy5zaXplKCkgfHwgcG9zaXRpb24gPT0gLTEpIHsKKyAgICAgICAgcmV0dXJuIENFX05PVF9GT1VORF87CisgICAgfSAKKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuICgoSW50ZWdlcil0YmwubV9DRXNfLmdldChwb3NpdGlvbikpLmludFZhbHVlKCk7CisgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB1bnNhZmUgY2hhcmFjdGVyCisgICAgICogQHBhcmFtIHRhYmxlIHVuc2FmZSB0YWJsZQorICAgICAqIEBwYXJhbSBjIGNoYXJhY3RlciB0byBiZSBhZGRlZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgdW5zYWZlQ1BTZXQoYnl0ZSB0YWJsZVtdLCBjaGFyIGMpIAorICAgIHsKKyAgICBpbnQgaGFzaCA9IGM7CisgICAgaWYgKGhhc2ggPj0gKFVOU0FGRUNQX1RBQkxFX1NJWkVfIDw8IDMpKSB7CisgICAgICAgIGlmIChoYXNoID49IDB4ZDgwMCAmJiBoYXNoIDw9IDB4ZjhmZikgeworICAgICAgICAvLyBQYXJ0IG9mIGEgc3Vycm9nYXRlLCBvciBpbiBwcml2YXRlIHVzZSBhcmVhLiAKKyAgICAgICAgLy8gVGhlc2UgZG9uJ3QgZ28gaW4gdGhlIHRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaGFzaCA9IChoYXNoICYgVU5TQUZFQ1BfVEFCTEVfTUFTS18pICsgMjU2OworICAgIH0KKyAgICB0YWJsZVtoYXNoID4+IDNdIHw9ICgxIDw8IChoYXNoICYgNykpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjb250cmFjdGlvbiBlbmQgY2hhcmFjdGVyCisgICAgICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uIGVuZCB0YWJsZQorICAgICAqIEBwYXJhbSBjIGNoYXJhY3RlciB0byBiZSBhZGRlZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgQ29udHJFbmRDUFNldChieXRlIHRhYmxlW10sIGNoYXIgYykgCisgICAgeworICAgIGludCBoYXNoID0gYzsKKyAgICBpZiAoaGFzaCA+PSAoVU5TQUZFQ1BfVEFCTEVfU0laRV8gPDwgMykpIHsKKyAgICAgICAgaGFzaCA9IChoYXNoICYgVU5TQUZFQ1BfVEFCTEVfTUFTS18pICsgMjU2OworICAgIH0KKyAgICB0YWJsZVtoYXNoID4+IDNdIHw9ICgxIDw8IChoYXNoICYgNykpOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogQWRkcyBtb3JlIGNvbnRyYWN0aW9ucyBpbiB0YWJsZS4gSWYgZWxlbWVudCBpcyBub24gZXhpc3RhbnQsIGl0IGNyZWF0ZXMgCisgICAgICogb24uIFJldHVybnMgZWxlbWVudCBoYW5kbGUgCisgICAgICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIGVsZW1lbnQgb2Zmc2V0IHRvIHRoZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBjb2RlUG9pbnQgY29kZXBvaW50IHRvIGFkZAorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqIEByZXR1cm4gY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgYWRkQ29udHJhY3Rpb24oQ29udHJhY3Rpb25UYWJsZSB0YWJsZSwgaW50IGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNvZGVQb2ludCwgaW50IHZhbHVlKSAKKyAgICB7CisgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHRibCA9IGdldEJhc2ljQ29udHJhY3Rpb25UYWJsZSh0YWJsZSwgZWxlbWVudCk7CisgICAgaWYgKHRibCA9PSBudWxsKSB7CisgICAgICAgIHRibCA9IGFkZEFDb250cmFjdGlvbkVsZW1lbnQodGFibGUpOworICAgICAgICBlbGVtZW50ID0gdGFibGUubV9lbGVtZW50c18uc2l6ZSgpIC0gMTsKKyAgICB9IAorICAgIAorICAgIHRibC5tX0NFc18uYWRkKG5ldyBJbnRlZ2VyKHZhbHVlKSk7CisgICAgdGJsLm1fY29kZVBvaW50c18uYXBwZW5kKGNvZGVQb2ludCk7CisgICAgcmV0dXJuIGNvbnN0cnVjdFNwZWNpYWxDRSh0YWJsZS5tX2N1cnJlbnRUYWdfLCBlbGVtZW50KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGEgY29udHJhY3Rpb24gZWxlbWVudCB0byB0aGUgdGFibGUKKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUgdG8gdXBkYXRlCisgICAgICogQHJldHVybiBjb250cmFjdGlvbiAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBCYXNpY0NvbnRyYWN0aW9uVGFibGUgYWRkQUNvbnRyYWN0aW9uRWxlbWVudCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJhY3Rpb25UYWJsZSB0YWJsZSkgCisgICAgeworICAgIEJhc2ljQ29udHJhY3Rpb25UYWJsZSByZXN1bHQgPSBuZXcgQmFzaWNDb250cmFjdGlvblRhYmxlKCk7CisgICAgdGFibGUubV9lbGVtZW50c18uYWRkKHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgc3BlY2lhbCBjZQorICAgICAqIEBwYXJhbSB0YWcgc3BlY2lhbCB0YWcKKyAgICAgKiBAcGFyYW0gY2UgCisgICAgICogQHJldHVybiBhIGNvbnRyYWN0aW9uIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGNvbnN0cnVjdFNwZWNpYWxDRShpbnQgdGFnLCBpbnQgQ0UpIAorICAgIHsKKyAgICByZXR1cm4gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXyAKKyAgICAgICAgfCAodGFnIDw8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1RBR19TSElGVF8pIHwgKENFICYgMHhGRkZGRkYpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIGFuZCBpbnNlcnRzIHRoZSBlbGVtZW50IHRoYXQgaGFzIGEgY29udHJhY3Rpb24KKyAgICAgKiBAcGFyYW0gY29udHJhY3Rpb24gdGFibGUgCisgICAgICogQHBhcmFtIGVsZW1lbnQgY29udHJhY3RpbmcgZWxlbWVudAorICAgICAqIEBwYXJhbSBleGlzdGluZ0NFCisgICAgICogQHJldHVybiBjb250cmFjdGlvbiBjZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBwcm9jZXNzQ29udHJhY3Rpb24oQ29udHJhY3Rpb25UYWJsZSBjb250cmFjdGlvbnMsIAorICAgICAgICAgICAgICAgICAgICAgIEVsZW1lbnRzIGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgIGludCBleGlzdGluZ0NFKSAKKyAgICB7CisgICAgaW50IGZpcnN0Q29udHJhY3Rpb25PZmZzZXQgPSAwOworICAgIC8vIGVuZCBvZiByZWN1cnNpb24gCisgICAgaWYgKGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyA9PSAxKSB7CisgICAgICAgIGlmIChpc0NvbnRyYWN0aW9uVGFibGVFbGVtZW50KGV4aXN0aW5nQ0UpIAorICAgICAgICAmJiBnZXRDRVRhZyhleGlzdGluZ0NFKSA9PSBjb250cmFjdGlvbnMubV9jdXJyZW50VGFnXykgeworICAgICAgICBjaGFuZ2VDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGV4aXN0aW5nQ0UsIChjaGFyKTAsIAorICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX21hcENFXyk7CisgICAgICAgIGNoYW5nZUNvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZXhpc3RpbmdDRSwgKGNoYXIpMHhGRkZGLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9tYXBDRV8pOworICAgICAgICByZXR1cm4gZXhpc3RpbmdDRTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgIC8vIGNhbid0IGRvIGp1c3QgdGhhdC4gZXhpc3RpbmdDZSBtaWdodCBiZSBhIGNvbnRyYWN0aW9uLCAKKyAgICAgICAgLy8gbWVhbmluZyB0aGF0IHdlIG5lZWQgdG8gZG8gYW5vdGhlciBzdGVwCisgICAgICAgIHJldHVybiBlbGVtZW50Lm1fbWFwQ0VfOyAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyB0aGlzIHJlY3Vyc2lvbiBjdXJyZW50bHkgZmVlZHMgb24gdGhlIG9ubHkgZWxlbWVudCB3ZSBoYXZlLi4uIAorICAgIC8vIFdlIHdpbGwgaGF2ZSB0byBjb3B5IGl0IGluIG9yZGVyIHRvIGFjY29tb2RhdGUgZm9yIGJvdGggYmFja3dhcmQgCisgICAgLy8gYW5kIGZvcndhcmQgY3ljbGVzCisgICAgLy8gd2UgZW5jb3VudGVyZWQgZWl0aGVyIGFuIGVtcHR5IHNwYWNlIG9yIGEgbm9uLWNvbnRyYWN0aW9uIGVsZW1lbnQgCisgICAgLy8gdGhpcyBtZWFucyB3ZSBhcmUgY29uc3RydWN0aW5nIGEgbmV3IGNvbnRyYWN0aW9uIHNlcXVlbmNlIAorICAgIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyArKzsKKyAgICBpZiAoIWlzQ29udHJhY3Rpb25UYWJsZUVsZW1lbnQoZXhpc3RpbmdDRSkpIHsgCisgICAgICAgIC8vIGlmIGl0IHdhc24ndCBjb250cmFjdGlvbiwgd2Ugd291bGRuJ3QgZW5kIHVwIGhlcmUKKyAgICAgICAgZmlyc3RDb250cmFjdGlvbk9mZnNldCA9IGFkZENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OVFJBQ1RJT05fVEFCTEVfTkVXX0VMRU1FTlRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikwLCBleGlzdGluZ0NFKTsKKyAgICAgICAgaW50IG5ld0NFID0gcHJvY2Vzc0NvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgIENFX05PVF9GT1VORF8pOworICAgICAgICBhZGRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGZpcnN0Q29udHJhY3Rpb25PZmZzZXQsIAorICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgIG5ld0NFKTsKKyAgICAgICAgYWRkQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0LCAKKyAgICAgICAgICAgICAgIChjaGFyKTB4RkZGRiwgZXhpc3RpbmdDRSk7CisgICAgICAgIGV4aXN0aW5nQ0UgPSBjb25zdHJ1Y3RTcGVjaWFsQ0UoY29udHJhY3Rpb25zLm1fY3VycmVudFRhZ18sIAorICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RDb250cmFjdGlvbk9mZnNldCk7CisgICAgfSAKKyAgICBlbHNlIHsgCisgICAgICAgIC8vIHdlIGFyZSBhZGRpbmcgdG8gZXhpc3RpbmcgY29udHJhY3Rpb24KKyAgICAgICAgLy8gdGhlcmUgd2VyZSBhbHJlYWR5IHNvbWUgZWxlbWVudHMgaW4gdGhlIHRhYmxlLCBzbyB3ZSBuZWVkIHRvIGFkZCAKKyAgICAgICAgLy8gYSBuZXcgY29udHJhY3Rpb24gCisgICAgICAgIC8vIFR3byB0aGluZ3MgY2FuIGhhcHBlbiBoZXJlOiBlaXRoZXIgdGhlIGNvZGVwb2ludCBpcyBhbHJlYWR5IGluIAorICAgICAgICAvLyB0aGUgdGFibGUsIG9yIGl0IGlzIG5vdAorICAgICAgICBpbnQgcG9zaXRpb24gPSBmaW5kQ1AoY29udHJhY3Rpb25zLCBleGlzdGluZ0NFLCAKKyAgICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKSk7CisgICAgICAgIGlmIChwb3NpdGlvbiA+IDApIHsgICAgICAgCisgICAgICAgIC8vIGlmIGl0IGlzIHdlIGp1c3QgY29udGludWUgZG93biB0aGUgY2hhaW4gCisgICAgICAgIGludCBlQ0UgPSBnZXRDRShjb250cmFjdGlvbnMsIGV4aXN0aW5nQ0UsIHBvc2l0aW9uKTsKKyAgICAgICAgaW50IG5ld0NFID0gcHJvY2Vzc0NvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZWxlbWVudCwgZUNFKTsKKyAgICAgICAgc2V0Q29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBleGlzdGluZ0NFLCBwb3NpdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyksIAorICAgICAgICAgICAgICAgICAgIG5ld0NFKTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7ICAKKyAgICAgICAgLy8gaWYgaXQgaXNuJ3QsIHdlIHdpbGwgaGF2ZSB0byBjcmVhdGUgYSBuZXcgc2VxdWVuY2UgCisgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0VfTk9UX0ZPVU5EXyk7CisgICAgICAgIGluc2VydENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZXhpc3RpbmdDRSwgCisgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyksIAorICAgICAgICAgICAgICAgICAgbmV3Q0UpOworICAgICAgICB9CisgICAgfQorICAgIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyAtLTsKKyAgICByZXR1cm4gZXhpc3RpbmdDRTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIENFIGJlbG9uZ3MgdG8gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIENFIGNvbGxhdGlvbiBlbGVtZW50IHRvIHRlc3QKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgQ0UgYmVsb25ncyB0byB0aGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzQ29udHJhY3Rpb25UYWJsZUVsZW1lbnQoaW50IENFKSAKKyAgICB7IAorICAgIHJldHVybiBpc1NwZWNpYWwoQ0UpIAorICAgICAgICAmJiAoZ2V0Q0VUYWcoQ0UpID09IENFX0NPTlRSQUNUSU9OX1RBR18KKyAgICAgICAgfHwgZ2V0Q0VUYWcoQ0UpID09IENFX1NQRUNfUFJPQ19UQUdfKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY29kZXBvaW50IAorICAgICAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBlbGVtZW50IG9mZnNldCB0byB0aGUgY29udHJhY3Rpb24gZWxlbWVudCBpbiB0aGUgdGFibGUKKyAgICAgKiBAcGFyYW0gY29kZVBvaW50IGNvZGUgcG9pbnQgdG8gbG9vayBmb3IKKyAgICAgKiBAcmV0dXJuIHRoZSBvZmZzZXQgdG8gdGhlIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZmluZENQKENvbnRyYWN0aW9uVGFibGUgdGFibGUsIGludCBlbGVtZW50LCAKKyAgICAgICAgICAgICAgICAgIGNoYXIgY29kZVBvaW50KSAKKyAgICB7CisgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHRibCA9IGdldEJhc2ljQ29udHJhY3Rpb25UYWJsZSh0YWJsZSwgZWxlbWVudCk7CisgICAgaWYgKHRibCA9PSBudWxsKSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgCisgICAgaW50IHBvc2l0aW9uID0gMDsKKyAgICB3aGlsZSAoY29kZVBvaW50ID4gdGJsLm1fY29kZVBvaW50c18uY2hhckF0KHBvc2l0aW9uKSkgeworICAgICAgICBwb3NpdGlvbiArKzsKKyAgICAgICAgaWYgKHBvc2l0aW9uID4gdGJsLm1fY29kZVBvaW50c18ubGVuZ3RoKCkpIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorICAgIGlmIChjb2RlUG9pbnQgPT0gdGJsLm1fY29kZVBvaW50c18uY2hhckF0KHBvc2l0aW9uKSkgeworICAgICAgICByZXR1cm4gcG9zaXRpb247CisgICAgfSAKKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjb250cmFjdGlvbiBlbGVtZW50IG91dCBvZiB0aGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRvIHRoZSBlbGVtZW50IGluIHRoZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEByZXR1cm4gYmFzaWMgY29udHJhY3Rpb24gZWxlbWVudCBhdCBvZmZzZXQgaW4gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQmFzaWNDb250cmFjdGlvblRhYmxlIGdldEJhc2ljQ29udHJhY3Rpb25UYWJsZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyYWN0aW9uVGFibGUgdGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0KSAKKyAgICB7CisgICAgICAgIG9mZnNldCAmPSAweEZGRkZGRjsKKyAgICAgICAgaWYgKG9mZnNldCA9PSAweEZGRkZGRikgeworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIHJldHVybiAoQmFzaWNDb250cmFjdGlvblRhYmxlKXRhYmxlLm1fZWxlbWVudHNfLmdldChvZmZzZXQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGFuZ2VzIHRoZSBjb250cmFjdGlvbiBlbGVtZW50CisgICAgICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIGVsZW1lbnQgb2Zmc2V0IHRvIHRoZSBlbGVtZW50IGluIHRoZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBjb2RlUG9pbnQgY29kZXBvaW50IAorICAgICAqIEBwYXJhbSBuZXdDRSBuZXcgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBAcmV0dXJuIGJhc2ljIGNvbnRyYWN0aW9uIGVsZW1lbnQgYXQgb2Zmc2V0IGluIHRoZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBjaGFuZ2VDb250cmFjdGlvbihDb250cmFjdGlvblRhYmxlIHRhYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVsZW1lbnQsIGNoYXIgY29kZVBvaW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5ld0NFKSAKKyAgICB7CisgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHRibCA9IGdldEJhc2ljQ29udHJhY3Rpb25UYWJsZSh0YWJsZSwgZWxlbWVudCk7ICAgIAorICAgIGlmICh0YmwgPT0gbnVsbCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgaW50IHBvc2l0aW9uID0gMDsKKyAgICB3aGlsZSAoY29kZVBvaW50ID4gdGJsLm1fY29kZVBvaW50c18uY2hhckF0KHBvc2l0aW9uKSkgeworICAgICAgICBwb3NpdGlvbiArKzsKKyAgICAgICAgaWYgKHBvc2l0aW9uID4gdGJsLm1fY29kZVBvaW50c18ubGVuZ3RoKCkpIHsKKyAgICAgICAgcmV0dXJuIENFX05PVF9GT1VORF87CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGNvZGVQb2ludCA9PSB0YmwubV9jb2RlUG9pbnRzXy5jaGFyQXQocG9zaXRpb24pKSB7CisgICAgICAgIHRibC5tX0NFc18uc2V0KHBvc2l0aW9uLCBuZXcgSW50ZWdlcihuZXdDRSkpOworICAgICAgICByZXR1cm4gZWxlbWVudCAmIDB4RkZGRkZGOworICAgIH0gCisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBDRV9OT1RfRk9VTkRfOworICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIFNldHMgYSBwYXJ0IG9mIGNvbnRyYWN0aW9uIHNlcXVlbmNlIGluIHRhYmxlLiBJZiBlbGVtZW50IGlzIG5vbiAKKyAgICAgKiBleGlzdGFudCwgaXQgY3JlYXRlcyBvbi4gUmV0dXJucyBlbGVtZW50IGhhbmRsZS4KKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gZWxlbWVudCBvZmZzZXQgdG8gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIG9mZnNldAorICAgICAqIEBwYXJhbSBjb2RlUG9pbnQgY29udHJhY3Rpb24gY2hhcmFjdGVyCisgICAgICogQHBhcmFtIHZhbHVlIGNlIHZhbHVlCisgICAgICogQHJldHVybiBuZXcgY29udHJhY3Rpb24gY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgc2V0Q29udHJhY3Rpb24oQ29udHJhY3Rpb25UYWJsZSB0YWJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbGVtZW50LCBpbnQgb2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjb2RlUG9pbnQsIGludCB2YWx1ZSkgCisgICAgeworICAgICAgICBlbGVtZW50ICY9IDB4RkZGRkZGOworICAgIEJhc2ljQ29udHJhY3Rpb25UYWJsZSB0YmwgPSBnZXRCYXNpY0NvbnRyYWN0aW9uVGFibGUodGFibGUsIGVsZW1lbnQpOyAgICAKKyAgICBpZiAodGJsID09IG51bGwpIHsKKyAgICAgICAgdGJsID0gYWRkQUNvbnRyYWN0aW9uRWxlbWVudCh0YWJsZSk7CisgICAgICAgIGVsZW1lbnQgPSB0YWJsZS5tX2VsZW1lbnRzXy5zaXplKCkgLSAxOworICAgIH0KKyAgICAKKyAgICB0YmwubV9DRXNfLnNldChvZmZzZXQsIG5ldyBJbnRlZ2VyKHZhbHVlKSk7CisgICAgdGJsLm1fY29kZVBvaW50c18uc2V0Q2hhckF0KG9mZnNldCwgY29kZVBvaW50KTsKKyAgICByZXR1cm4gY29uc3RydWN0U3BlY2lhbENFKHRhYmxlLm1fY3VycmVudFRhZ18sIGVsZW1lbnQpOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogSW5zZXJ0cyBhIHBhcnQgb2YgY29udHJhY3Rpb24gc2VxdWVuY2UgaW4gdGFibGUuIFNlcXVlbmNlcyBiZWhpbmQgdGhlIAorICAgICAqIG9mZnNldCBhcmUgbW92ZWQgYmFjay4gSWYgZWxlbWVudCBpcyBub24gZXhpc3RlbnQsIGl0IGNyZWF0ZXMgb24uIAorICAgICAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbgorICAgICAqIEBwYXJhbSBlbGVtZW50IG9mZnNldCB0byB0aGUgdGFibGUgY29udHJhY3Rpb24KKyAgICAgKiBAcGFyYW0gY29kZVBvaW50IGNvZGUgcG9pbnQKKyAgICAgKiBAcGFyYW0gdmFsdWUgY29sbGF0aW9uIGVsZW1lbnQgdmFsdWUKKyAgICAgKiBAcmV0dXJuIGNvbnRyYWN0aW9uIGNvbGxhdGlvbiBlbGVtZW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGluc2VydENvbnRyYWN0aW9uKENvbnRyYWN0aW9uVGFibGUgdGFibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZWxlbWVudCwgY2hhciBjb2RlUG9pbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmFsdWUpIAorICAgIHsKKyAgICBlbGVtZW50ICY9IDB4RkZGRkZGOworICAgIEJhc2ljQ29udHJhY3Rpb25UYWJsZSB0YmwgPSBnZXRCYXNpY0NvbnRyYWN0aW9uVGFibGUodGFibGUsIGVsZW1lbnQpOworICAgIGlmICh0YmwgPT0gbnVsbCkgeworICAgICAgICB0YmwgPSBhZGRBQ29udHJhY3Rpb25FbGVtZW50KHRhYmxlKTsKKyAgICAgICAgZWxlbWVudCA9IHRhYmxlLm1fZWxlbWVudHNfLnNpemUoKSAtIDE7CisgICAgfQorICAgIAorICAgIGludCBvZmZzZXQgPSAwOworICAgIHdoaWxlICh0YmwubV9jb2RlUG9pbnRzXy5jaGFyQXQob2Zmc2V0KSA8IGNvZGVQb2ludCAKKyAgICAgICAgICAgJiYgb2Zmc2V0IDwgdGJsLm1fY29kZVBvaW50c18ubGVuZ3RoKCkpIHsKKyAgICAgICAgb2Zmc2V0ICsrOworICAgIH0KKyAgICAKKyAgICB0YmwubV9DRXNfLmluc2VydEVsZW1lbnRBdChuZXcgSW50ZWdlcih2YWx1ZSksIG9mZnNldCk7CisgICAgdGJsLm1fY29kZVBvaW50c18uaW5zZXJ0KG9mZnNldCwgY29kZVBvaW50KTsKKyAgICAKKyAgICByZXR1cm4gY29uc3RydWN0U3BlY2lhbENFKHRhYmxlLm1fY3VycmVudFRhZ18sIGVsZW1lbnQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBGaW5hbGl6ZSBhZGRpdGlvbgorICAgICAqIEBwYXJhbSB0IGJ1aWxkIHRhYmxlCisgICAgICogQHBhcmFtIGVsZW1lbnQgdG8gYWRkCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IGZpbmFsaXplQWRkaXRpb24oQnVpbGRUYWJsZSB0LCBFbGVtZW50cyBlbGVtZW50KSAKKyAgICB7CisgICAgaW50IENFID0gQ0VfTk9UX0ZPVU5EXzsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgYWRkIGEgY29tcGxldGVseSBpZ25vcmFibGUgZWxlbWVudCB0byB0aGUgIAorICAgICAgICAvLyB1bnNhZmUgdGFibGUsIHNvIHRoYXQgYmFja3dhcmQgaXRlcmF0aW9uIHdpbGwgc2tpcCAKKyAgICAgICAgLy8gb3ZlciBpdCB3aGVuIHRyZWF0aW5nIGNvbnRyYWN0aW9ucy4gCisgICAgICAgIGlmIChlbGVtZW50Lm1fbWFwQ0VfID09IDApIHsgCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKTsgaSArKykgeyAKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChpKTsKKyAgICAgICAgICAgICAgICBpZiAoIVVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7IAorICAgICAgICAgICAgICAgICAgICB1bnNhZmVDUFNldCh0Lm1fdW5zYWZlQ1BfLCBjaCk7IAorICAgICAgICAgICAgICAgIH0gCisgICAgICAgICAgICB9IAorICAgICAgICB9IAorCisgICAgaWYgKGVsZW1lbnQubV9jUG9pbnRzXy5sZW5ndGgoKSAtIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XyA+IDEpIHsgCisgICAgICAgIC8vIHdlJ3JlIGFkZGluZyBhIGNvbnRyYWN0aW9uCisgICAgICAgIGludCBjcCA9IFVURjE2LmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c18sIGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0Xyk7CisgICAgICAgIENFID0gdC5tX21hcHBpbmdfLmdldFZhbHVlKGNwKTsKKyAgICAgICAgQ0UgPSBhZGRDb250cmFjdGlvbih0LCBDRSwgZWxlbWVudCk7CisgICAgfSAKKyAgICBlbHNlIHsgCisgICAgICAgIC8vIGVhc3kgY2FzZQorICAgICAgICBDRSA9IHQubV9tYXBwaW5nXy5nZXRWYWx1ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKSk7CisgICAgICAgIAorICAgICAgICBpZiAoQ0UgIT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICBpZihpc0NvbnRyYWN0aW9uVGFibGVFbGVtZW50KENFKSkgeyAKKyAgICAgICAgICAgIC8vIGFkZGluZyBhIG5vbiBjb250cmFjdGlvbiBlbGVtZW50ICh0aGFpLCBleHBhbnNpb24sIAorICAgICAgICAgICAgLy8gc2luZ2xlKSB0byBhbHJlYWR5IGV4aXN0aW5nIGNvbnRyYWN0aW9uIAorICAgICAgICAgICAgaWYgKCFpc1ByZWZpeChlbGVtZW50Lm1fbWFwQ0VfKSkgeyAKKyAgICAgICAgICAgIC8vIHdlIGNhbm5vdCByZWVudGVyIHByZWZpeCBlbGVtZW50cyAtIGFzIHdlIGFyZSBnb2luZyAKKyAgICAgICAgICAgIC8vIHRvIGNyZWF0ZSBhIGRlYWQgbG9vcAorICAgICAgICAgICAgLy8gT25seSBleHBhbnNpb25zIGFuZCByZWd1bGFyIENFcyBjYW4gZ28gaGVyZS4uLiAKKyAgICAgICAgICAgIC8vIENvbnRyYWN0aW9ucyB3aWxsIG5ldmVyIGhhcHBlbiBpbiB0aGlzIHBsYWNlCisgICAgICAgICAgICBzZXRDb250cmFjdGlvbih0Lm1fY29udHJhY3Rpb25zXywgQ0UsIDAsIChjaGFyKTAsIAorICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fbWFwQ0VfKTsKKyAgICAgICAgICAgIC8vIFRoaXMgbG9vcCBoYXMgdG8gY2hhbmdlIHRoZSBDRSBhdCB0aGUgZW5kIG9mIAorICAgICAgICAgICAgLy8gY29udHJhY3Rpb24gUkVETyEKKyAgICAgICAgICAgIGNoYW5nZUxhc3RDRSh0Lm1fY29udHJhY3Rpb25zXywgQ0UsIGVsZW1lbnQubV9tYXBDRV8pOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHQubV9tYXBwaW5nXy5zZXRWYWx1ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfKSwgCisgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX21hcENFXyk7CisgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgIHQubV9tYXBwaW5nXy5zZXRWYWx1ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX21hcENFXyk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIENFOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogTm90ZSByZWdhcmRpbmcgc3Vycm9nYXRlIGhhbmRsaW5nOiBXZSBhcmUgaW50ZXJlc3RlZCBvbmx5IGluIHRoZSBzaW5nbGUKKyAgICAgKiBvciBsZWFkaW5nIHN1cnJvZ2F0ZXMgaW4gYSBjb250cmFjdGlvbi4gSWYgYSBzdXJyb2dhdGUgaXMgc29tZXdoZXJlIGVsc2UKKyAgICAgKiBpbiB0aGUgY29udHJhY3Rpb24sIGl0IGlzIGdvaW5nIHRvIGJlIGhhbmRsZWQgYXMgYSBwYWlyIG9mIGNvZGUgdW5pdHMsCisgICAgICogYXMgaXQgZG9lc24ndCBhZmZlY3QgdGhlIHBlcmZvcm1hbmNlIEFORCBoYW5kbGluZyBzdXJyb2dhdGVzIHNwZWNpYWxseQorICAgICAqIHdvdWxkIGNvbXBsaWNhdGUgY29kZSB3YXkgdG9vIG11Y2guCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGFkZENvbnRyYWN0aW9uKEJ1aWxkVGFibGUgdCwgaW50IENFLCBFbGVtZW50cyBlbGVtZW50KSAKKyAgICB7CisgICAgQ29udHJhY3Rpb25UYWJsZSBjb250cmFjdGlvbnMgPSB0Lm1fY29udHJhY3Rpb25zXzsKKyAgICBjb250cmFjdGlvbnMubV9jdXJyZW50VGFnXyA9IENFX0NPTlRSQUNUSU9OX1RBR187CisgICAgCisgICAgLy8gRmlyc3Qgd2UgbmVlZCB0byBjaGVjayBpZiBjb250cmFjdGlvbnMgc3RhcnRzIHdpdGggYSBzdXJyb2dhdGUKKyAgICBpbnQgY3AgPSBVVEYxNi5jaGFyQXQoZWxlbWVudC5tX2NQb2ludHNfLCAwKTsKKyAgICBpbnQgY3BzaXplID0gMTsKKyAgICBpZiAoVUNoYXJhY3Rlci5pc1N1cHBsZW1lbnRhcnkoY3ApKSB7CisgICAgICAgIGNwc2l6ZSA9IDI7CisgICAgfQorICAgIGlmIChjcHNpemUgPCBlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCkpIHsgCisgICAgICAgIC8vIFRoaXMgaXMgYSByZWFsIGNvbnRyYWN0aW9uLCBpZiB0aGVyZSBhcmUgb3RoZXIgY2hhcmFjdGVycyBhZnRlciAKKyAgICAgICAgLy8gdGhlIGZpcnN0CisgICAgICAgIGludCBzaXplID0gZWxlbWVudC5tX2NQb2ludHNfLmxlbmd0aCgpIC0gZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfOworICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8IHNpemU7IGogKyspIHsgICAKKyAgICAgICAgLy8gRmlyc3QgYWRkIGNvbnRyYWN0aW9uIGNoYXJzIHRvIHVuc2FmZSBDUCBoYXNoIHRhYmxlIAorICAgICAgICAvLyBVbmxlc3MgaXQgaXMgYSB0cmFpbCBzdXJyb2dhdGUsIHdoaWNoIGlzIGhhbmRsZWQgCisgICAgICAgIC8vIGFsZ29yaXRtaWNhbGx5IGFuZCBzaG91bGRuJ3QgdGFrZSB1cCBzcGFjZSBpbiB0aGUgdGFibGUuCisgICAgICAgIGlmICghVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gKyBqKSkpIHsKKyAgICAgICAgICAgIHVuc2FmZUNQU2V0KHQubV91bnNhZmVDUF8sIAorICAgICAgICAgICAgICAgIGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gKyBqKSk7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBBZGQgdGhlIGxhc3QgY2hhciBvZiB0aGUgY29udHJhY3Rpb24gdG8gdGhlIGNvbnRyYWN0aW9uLWVuZCAKKyAgICAgICAgLy8gaGFzaCB0YWJsZS4gdW5sZXNzIGl0IGlzIGEgdHJhaWwgc3Vycm9nYXRlLCB3aGljaCBpcyBoYW5kbGVkIAorICAgICAgICAvLyBhbGdvcml0aG1pY2FsbHkgYW5kIHNob3VsZG4ndCBiZSBpbiB0aGUgdGFibGUKKyAgICAgICAgaWYgKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGVsZW1lbnQubV9jUG9pbnRzXy5jaGFyQXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmxlbmd0aCgpIC0xKSkpIHsKKyAgICAgICAgQ29udHJFbmRDUFNldCh0Lm1fY29udHJFbmRDUF8sIAorICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18ubGVuZ3RoKCkgLTEpKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBJZiB0aGVyZSBhcmUgYW55IEphbW9zIGluIHRoZSBjb250cmFjdGlvbiwgd2Ugc2hvdWxkIHR1cm4gb24gCisgICAgICAgIC8vIHNwZWNpYWwgcHJvY2Vzc2luZyBmb3IgSmFtb3MKKyAgICAgICAgaWYgKGlzSmFtbyhlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XykpKSB7CisgICAgICAgIHQubV9jb2xsYXRvcl8ubV9pc0phbW9TcGVjaWFsXyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgLy8gdGhlbiB3ZSBuZWVkIHRvIGRlYWwgd2l0aCBpdCAKKyAgICAgICAgLy8gd2UgY291bGQgYXJlYWR5IGhhdmUgc29tZXRoaW5nIGluIHRhYmxlIC0gb3Igd2UgbWlnaHQgbm90IAorICAgICAgICBlbGVtZW50Lm1fY1BvaW50c09mZnNldF8gKz0gY3BzaXplOworICAgICAgICBpZiAoIWlzQ29udHJhY3Rpb24oQ0UpKSB7IAorICAgICAgICAvLyBpZiBpdCB3YXNuJ3QgY29udHJhY3Rpb24sIHdlIHdvdWxkbid0IGVuZCB1cCBoZXJlCisgICAgICAgIGludCBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0ID0gYWRkQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09OVFJBQ1RJT05fVEFCTEVfTkVXX0VMRU1FTlRfLCAoY2hhcikwLCBDRSk7CisgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0VfTk9UX0ZPVU5EXyk7CisgICAgICAgIGFkZENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZmlyc3RDb250cmFjdGlvbk9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgICAgICBuZXdDRSk7CisgICAgICAgIGFkZENvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgZmlyc3RDb250cmFjdGlvbk9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpMHhGRkZGLCBDRSk7CisgICAgICAgIENFID0gY29uc3RydWN0U3BlY2lhbENFKENFX0NPTlRSQUNUSU9OX1RBR18sIAorICAgICAgICAgICAgICAgICAgICBmaXJzdENvbnRyYWN0aW9uT2Zmc2V0KTsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7IAorICAgICAgICAvLyB3ZSBhcmUgYWRkaW5nIHRvIGV4aXN0aW5nIGNvbnRyYWN0aW9uIAorICAgICAgICAvLyB0aGVyZSB3ZXJlIGFscmVhZHkgc29tZSBlbGVtZW50cyBpbiB0aGUgdGFibGUsIHNvIHdlIG5lZWQgdG8gCisgICAgICAgIC8vIGFkZCBhIG5ldyBjb250cmFjdGlvbgorICAgICAgICAvLyBUd28gdGhpbmdzIGNhbiBoYXBwZW4gaGVyZTogZWl0aGVyIHRoZSBjb2RlcG9pbnQgaXMgYWxyZWFkeSAKKyAgICAgICAgLy8gaW4gdGhlIHRhYmxlLCBvciBpdCBpcyBub3QgCisgICAgICAgIGludCBwb3NpdGlvbiA9IGZpbmRDUChjb250cmFjdGlvbnMsIENFLCAKKyAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50Lm1fY1BvaW50c18uY2hhckF0KGVsZW1lbnQubV9jUG9pbnRzT2Zmc2V0XykpOworICAgICAgICBpZiAocG9zaXRpb24gPiAwKSB7ICAgICAgIAorICAgICAgICAgICAgLy8gaWYgaXQgaXMgd2UganVzdCBjb250aW51ZSBkb3duIHRoZSBjaGFpbgorICAgICAgICAgICAgaW50IGVDRSA9IGdldENFKGNvbnRyYWN0aW9ucywgQ0UsIHBvc2l0aW9uKTsKKyAgICAgICAgICAgIGludCBuZXdDRSA9IHByb2Nlc3NDb250cmFjdGlvbihjb250cmFjdGlvbnMsIGVsZW1lbnQsIGVDRSk7CisgICAgICAgICAgICBzZXRDb250cmFjdGlvbihjb250cmFjdGlvbnMsIENFLCBwb3NpdGlvbiwgCisgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgICAgICBuZXdDRSk7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gaWYgaXQgaXNuJ3QsIHdlIHdpbGwgaGF2ZSB0byBjcmVhdGUgYSBuZXcgc2VxdWVuY2UgCisgICAgICAgICAgICBpbnQgbmV3Q0UgPSBwcm9jZXNzQ29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBlbGVtZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIENFX05PVF9GT1VORF8pOworICAgICAgICAgICAgaW5zZXJ0Q29udHJhY3Rpb24oY29udHJhY3Rpb25zLCBDRSwgCisgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5tX2NQb2ludHNfLmNoYXJBdChlbGVtZW50Lm1fY1BvaW50c09mZnNldF8pLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3Q0UpOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxlbWVudC5tX2NQb2ludHNPZmZzZXRfIC09IGNwc2l6ZTsKKyAgICAgICAgdC5tX21hcHBpbmdfLnNldFZhbHVlKGNwLCBDRSk7CisgICAgfSAKKyAgICBlbHNlIGlmICghaXNDb250cmFjdGlvbihDRSkpIHsgCisgICAgICAgIC8vIHRoaXMgaXMganVzdCBhIHN1cnJvZ2F0ZSwgYW5kIHRoZXJlIGlzIG5vIGNvbnRyYWN0aW9uIAorICAgICAgICB0Lm1fbWFwcGluZ18uc2V0VmFsdWUoY3AsIGVsZW1lbnQubV9tYXBDRV8pOworICAgIH0gCisgICAgZWxzZSB7IAorICAgICAgICAvLyBmaWxsIG91dCB0aGUgZmlyc3Qgc3RhZ2Ugb2YgdGhlIGNvbnRyYWN0aW9uIHdpdGggdGhlIHN1cnJvZ2F0ZSAKKyAgICAgICAgLy8gQ0UgCisgICAgICAgIGNoYW5nZUNvbnRyYWN0aW9uKGNvbnRyYWN0aW9ucywgQ0UsIChjaGFyKTAsIGVsZW1lbnQubV9tYXBDRV8pOworICAgICAgICBjaGFuZ2VDb250cmFjdGlvbihjb250cmFjdGlvbnMsIENFLCAoY2hhcikweEZGRkYsIGVsZW1lbnQubV9tYXBDRV8pOworICAgIH0KKyAgICByZXR1cm4gQ0U7CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiB0aGlzIGlzIGZvciBhZGRpbmcgbm9uIGNvbnRyYWN0aW9ucyAKKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gZWxlbWVudCBvZmZzZXQgdG8gdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIHZhbHVlIGNvbGxhdGlvbiBlbGVtZW50IHZhbHVlCisgICAgICogQHJldHVybiBuZXcgY29sbGF0aW9uIGVsZW1lbnQgCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGNoYW5nZUxhc3RDRShDb250cmFjdGlvblRhYmxlIHRhYmxlLCBpbnQgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmFsdWUpIAorICAgIHsKKyAgICBCYXNpY0NvbnRyYWN0aW9uVGFibGUgdGJsID0gZ2V0QmFzaWNDb250cmFjdGlvblRhYmxlKHRhYmxlLCBlbGVtZW50KTsKKyAgICBpZiAodGJsID09IG51bGwpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAgIHRibC5tX0NFc18uc2V0KHRibC5tX0NFc18uc2l6ZSgpIC0gMSwgbmV3IEludGVnZXIodmFsdWUpKTsKKyAgICByZXR1cm4gY29uc3RydWN0U3BlY2lhbENFKHRhYmxlLm1fY3VycmVudFRhZ18sIGVsZW1lbnQgJiAweEZGRkZGRik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdpdmVuIGEgc2V0IG9mIHJhbmdlcyBjYWxjdWxhdGVkIGJ5IGFsbG9jV2VpZ2h0cygpLCBpdGVyYXRlIHRocm91Z2ggdGhlIAorICAgICAqIHdlaWdodHMuIFNldHMgdGhlIG5leHQgd2VpZ2h0IGluIGNlZ2VuZXJhdG9yLm1fY3VycmVudF8uCisgICAgICogQHBhcmFtIGNlZ2VuZXJhdG9yIG9iamVjdCB0aGF0IGNvbnRhaW5zIHJhbmdlcyB3ZWlnaHQgcmFuZ2UgYXJyYXkgYW5kCisgICAgICogICAgICAgIGl0cyByYW5nZUNvdW50CisgICAgICogQHJldHVybiB0aGUgbmV4dCB3ZWlnaHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbmV4dFdlaWdodChDRUdlbmVyYXRvciBjZWdlbmVyYXRvcikgCisgICAgeworICAgICAgICBpZiAoY2VnZW5lcmF0b3IubV9yYW5nZXNMZW5ndGhfID4gMCkgeworICAgICAgICAgICAgLy8gZ2V0IG1heEJ5dGUgZnJvbSB0aGUgLmNvdW50IGZpZWxkCisgICAgICAgICAgICBpbnQgbWF4Qnl0ZSA9IGNlZ2VuZXJhdG9yLm1fcmFuZ2VzX1swXS5tX2NvdW50XzsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgbmV4dCB3ZWlnaHQgCisgICAgICAgICAgICBpbnQgd2VpZ2h0ID0gY2VnZW5lcmF0b3IubV9yYW5nZXNfWzBdLm1fc3RhcnRfOworICAgICAgICAgICAgaWYgKHdlaWdodCA9PSBjZWdlbmVyYXRvci5tX3Jhbmdlc19bMF0ubV9lbmRfKSB7CisgICAgICAgICAgICAgICAgLy8gdGhpcyByYW5nZSBpcyBmaW5pc2hlZCwgcmVtb3ZlIGl0IGFuZCBtb3ZlIHRoZSBmb2xsb3dpbmcgCisgICAgICAgICAgICAgICAgLy8gb25lcyB1cCAKKyAgICAgICAgICAgICAgICBjZWdlbmVyYXRvci5tX3Jhbmdlc0xlbmd0aF8gLS07CisgICAgICAgICAgICAgICAgaWYgKGNlZ2VuZXJhdG9yLm1fcmFuZ2VzTGVuZ3RoXyA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShjZWdlbmVyYXRvci5tX3Jhbmdlc18sIDEsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlZ2VuZXJhdG9yLm1fcmFuZ2VzXywgMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VnZW5lcmF0b3IubV9yYW5nZXNMZW5ndGhfKTsKKyAgICAgICAgICAgICAgICAgICAgY2VnZW5lcmF0b3IubV9yYW5nZXNfWzBdLm1fY291bnRfID0gbWF4Qnl0ZTsgCisgICAgICAgICAgICAgICAgICAgIC8vIGtlZXAgbWF4Qnl0ZSBpbiByYW5nZXNbMF0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gaW5jcmVtZW50IHRoZSB3ZWlnaHQgZm9yIHRoZSBuZXh0IHZhbHVlCisgICAgICAgICAgICAgICAgY2VnZW5lcmF0b3IubV9yYW5nZXNfWzBdLm1fc3RhcnRfIAorICAgICAgICAgICAgPSBpbmNXZWlnaHQod2VpZ2h0LCBjZWdlbmVyYXRvci5tX3Jhbmdlc19bMF0ubV9sZW5ndGgyXywgCisgICAgICAgICAgICAgICAgbWF4Qnl0ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gd2VpZ2h0OworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW5jcmVtZW50IHRoZSBjb2xsYXRpb24gd2VpZ2h0CisgICAgICogQHBhcmFtIHdlaWdodCB0byBpbmNyZW1lbnQKKyAgICAgKiBAcGFyYW0gbGVuZ3RoCisgICAgICogQHBhcmFtIG1heEJ5dGUKKyAgICAgKiBAcmV0dXJuIG5ldyBpbmNyZW1lbnRlZCB3ZWlnaHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgaW5jV2VpZ2h0KGludCB3ZWlnaHQsIGludCBsZW5ndGgsIGludCBtYXhCeXRlKSAKKyAgICB7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgYiA9IGdldFdlaWdodEJ5dGUod2VpZ2h0LCBsZW5ndGgpOworICAgICAgICAgICAgaWYgKGIgPCBtYXhCeXRlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNldFdlaWdodEJ5dGUod2VpZ2h0LCBsZW5ndGgsIGIgKyAxKTsKKyAgICAgICAgICAgIH0gCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyByb2xsIG92ZXIsIHNldCB0aGlzIGJ5dGUgdG8gQllURV9GSVJTVF9UQUlMT1JFRF8gYW5kIAorICAgICAgICAgICAgICAgIC8vIGluY3JlbWVudCB0aGUgcHJldmlvdXMgb25lCisgICAgICAgICAgICAgICAgd2VpZ2h0ID0gc2V0V2VpZ2h0Qnl0ZSh3ZWlnaHQsIGxlbmd0aCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0ZJUlNUX1RBSUxPUkVEXyk7CisgICAgICAgICAgICAgICAgLS0gbGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHdlaWdodCBieXRlCisgICAgICogQHBhcmFtIHdlaWdodAorICAgICAqIEBwYXJhbSBpbmRleAorICAgICAqIEByZXR1cm4gYnl0ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRXZWlnaHRCeXRlKGludCB3ZWlnaHQsIGludCBpbmRleCkgCisgICAgeworICAgICAgICByZXR1cm4gKHdlaWdodCA+PiAoKDQgLSBpbmRleCkgPDwgMykpICYgMHhmZjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSB3ZWlnaHQgYnl0ZSBpbiB0YWJsZQorICAgICAqIEBwYXJhbSB3ZWlnaHQgCisgICAgICogQHBhcmFtIGluZGV4CisgICAgICogQHBhcmFtIGIgYnl0ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBzZXRXZWlnaHRCeXRlKGludCB3ZWlnaHQsIGludCBpbmRleCwgaW50IGIpIAorICAgIHsKKyAgICAgICAgaW5kZXggPDw9IDM7CisgICAgICAgIC8vIDB4ZmZmZmZmZmYgZXhjZXB0IGEgMDAgImhvbGUiIGZvciB0aGUgaW5kZXgtdGggYnl0ZQorICAgICAgICBpbnQgbWFzayA9IDB4ZmZmZmZmZmYgPj4+IGluZGV4OworICAgICAgICBpbmRleCA9IDMyIC0gaW5kZXg7CisgICAgICAgIG1hc2sgfD0gMHhmZmZmZmYwMCA8PCBpbmRleDsKKyAgICAgICAgcmV0dXJuICh3ZWlnaHQgJiBtYXNrKSB8IChiIDw8IGluZGV4KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2FsbCBnZXRXZWlnaHRSYW5nZXMgYW5kIHRoZW4gZGV0ZXJtaW5lIGhldXJpc3RpY2FsbHkgd2hpY2ggcmFuZ2VzIHRvIAorICAgICAqIHVzZSBmb3IgYSBnaXZlbiBudW1iZXIgb2Ygd2VpZ2h0cyBiZXR3ZWVuIChleGNsdWRpbmcpIHR3byBsaW1pdHMKKyAgICAgKiBAcGFyYW0gbG93ZXJsaW1pdAorICAgICAqIEBwYXJhbSB1cHBlcmxpbWl0CisgICAgICogQHBhcmFtIG4KKyAgICAgKiBAcGFyYW0gbWF4Qnl0ZQorICAgICAqIEBwYXJhbSByYW5nZXMKKyAgICAgKiBAcmV0dXJuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgYWxsb2NhdGVXZWlnaHRzKGludCBsb3dlckxpbWl0LCBpbnQgdXBwZXJMaW1pdCwgaW50IG4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXhCeXRlLCBXZWlnaHRSYW5nZSByYW5nZXNbXSkgCisgICAgeworICAgICAgICAvLyBudW1iZXIgb2YgdXNhYmxlIGJ5dGUgdmFsdWVzIDMuLm1heEJ5dGUKKyAgICAgICAgaW50IGNvdW50Qnl0ZXMgPSBtYXhCeXRlIC0gUnVsZUJhc2VkQ29sbGF0b3IuQllURV9GSVJTVF9UQUlMT1JFRF8gKyAxOworICAgICAgICAvLyBbMF0gdW51c2VkLCBbNV0gdG8gbWFrZSBpbmRleCBjaGVja3MgdW5uZWNlc3NhcnksIG1fdXRpbENvdW50QnVmZmVyXworICAgICAgICAvLyBjb3VudEJ5dGVzIHRvIHRoZSBwb3dlciBvZiBpbmRleCwgbV91dGlsTG9uZ0J1ZmZlcl8gZm9yIHVuc2lnbmVkbmVzcworICAgICAgICAvLyBnY2MgcmVxdWlyZXMgZXhwbGljaXQgaW5pdGlhbGl6YXRpb24gCisgICAgICAgIG1fdXRpbExvbmdCdWZmZXJfWzBdID0gMTsKKyAgICAgICAgbV91dGlsTG9uZ0J1ZmZlcl9bMV0gPSBjb3VudEJ5dGVzOworICAgICAgICBtX3V0aWxMb25nQnVmZmVyX1syXSA9IG1fdXRpbExvbmdCdWZmZXJfWzFdICogY291bnRCeXRlczsKKyAgICAgICAgbV91dGlsTG9uZ0J1ZmZlcl9bM10gPSBtX3V0aWxMb25nQnVmZmVyX1syXSAqIGNvdW50Qnl0ZXM7CisgICAgICAgIG1fdXRpbExvbmdCdWZmZXJfWzRdID0gbV91dGlsTG9uZ0J1ZmZlcl9bM10gKiBjb3VudEJ5dGVzOworICAgICAgICBpbnQgcmFuZ2VDb3VudCA9IGdldFdlaWdodFJhbmdlcyhsb3dlckxpbWl0LCB1cHBlckxpbWl0LCBtYXhCeXRlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRCeXRlcywgcmFuZ2VzKTsKKyAgICAgICAgaWYgKHJhbmdlQ291bnQgPD0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgLy8gd2hhdCBpcyB0aGUgbWF4aW11bSBudW1iZXIgb2Ygd2VpZ2h0cyB3aXRoIHRoZXNlIHJhbmdlcz8KKyAgICAgICAgbG9uZyBtYXhDb3VudCA9IDA7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmFuZ2VDb3VudDsgKysgaSkgeworICAgICAgICAgICAgbWF4Q291bnQgKz0gKGxvbmcpcmFuZ2VzW2ldLm1fY291bnRfIAorICAgICAgICAqIG1fdXRpbExvbmdCdWZmZXJfWzQgLSByYW5nZXNbaV0ubV9sZW5ndGhfXTsKKyAgICAgICAgfQorICAgICAgICBpZiAobWF4Q291bnQgPCBuKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAvLyBzZXQgdGhlIGxlbmd0aDIgYW5kIGNvdW50MiBmaWVsZHMKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYW5nZUNvdW50OyArKyBpKSB7CisgICAgICAgICAgICByYW5nZXNbaV0ubV9sZW5ndGgyXyA9IHJhbmdlc1tpXS5tX2xlbmd0aF87CisgICAgICAgICAgICByYW5nZXNbaV0ubV9jb3VudDJfID0gcmFuZ2VzW2ldLm1fY291bnRfOworICAgICAgICB9CisgICAgICAgIC8vIHRyeSB1bnRpbCB3ZSBmaW5kIHN1aXRhYmx5IGxhcmdlIHJhbmdlcworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgLy8gZ2V0IHRoZSBzbWFsbGVzdCBudW1iZXIgb2YgYnl0ZXMgaW4gYSByYW5nZQorICAgICAgICAgICAgaW50IG1pbkxlbmd0aCA9IHJhbmdlc1swXS5tX2xlbmd0aDJfOworICAgICAgICAgICAgLy8gc3VtIHVwIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdGhhdCBmaXQgaW50byByYW5nZXMgb2YgZWFjaCBieXRlIAorICAgICAgICAgICAgLy8gbGVuZ3RoCisgICAgICAgICAgICBBcnJheXMuZmlsbChtX3V0aWxDb3VudEJ1ZmZlcl8sIDApOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYW5nZUNvdW50OyArKyBpKSB7CisgICAgICAgICAgICAgICAgbV91dGlsQ291bnRCdWZmZXJfW3Jhbmdlc1tpXS5tX2xlbmd0aDJfXSArPSByYW5nZXNbaV0ubV9jb3VudDJfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gbm93IHRyeSB0byBhbGxvY2F0ZSBuIGVsZW1lbnRzIGluIHRoZSBhdmFpbGFibGUgc2hvcnQgcmFuZ2VzIAorICAgICAgICAgICAgaWYgKG4gPD0gbV91dGlsQ291bnRCdWZmZXJfW21pbkxlbmd0aF0gCisgICAgICAgICsgbV91dGlsQ291bnRCdWZmZXJfW21pbkxlbmd0aCArIDFdKSB7CisgICAgICAgICAgICAgICAgLy8gdHJpdmlhbCBjYXNlcywgdXNlIHRoZSBmaXJzdCBmZXcgcmFuZ2VzCisgICAgICAgICAgICAgICAgbWF4Q291bnQgPSAwOworICAgICAgICAgICAgICAgIHJhbmdlQ291bnQgPSAwOworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4Q291bnQgKz0gcmFuZ2VzW3JhbmdlQ291bnRdLm1fY291bnQyXzsKKyAgICAgICAgICAgICAgICAgICAgKysgcmFuZ2VDb3VudDsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChuID4gbWF4Q291bnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGVsc2UgaWYgKG4gPD0gcmFuZ2VzWzBdLm1fY291bnQyXyAqIGNvdW50Qnl0ZXMpIHsKKyAgICAgICAgICAgICAgICAvLyBlYXN5IGNhc2UsIGp1c3QgbWFrZSB0aGlzIG9uZSByYW5nZSBsYXJnZSBlbm91Z2ggYnkgCisgICAgICAgICAgICAgICAgLy8gbGVuZ3RoZW5pbmcgaXQgb25jZSBtb3JlLCBwb3NzaWJseSBzcGxpdCBpdAorICAgICAgICAgICAgICAgIHJhbmdlQ291bnQgPSAxOworICAgICAgICAgICAgICAgIC8vIGNhbGN1bGF0ZSBob3cgdG8gc3BsaXQgdGhlIHJhbmdlIGJldHdlZW4gbWF4TGVuZ3RoLTEgCisgICAgICAgICAgICAgICAgLy8gKGNvdW50MSkgYW5kIG1heExlbmd0aCAoY291bnQyKSAKKyAgICAgICAgICAgICAgICBsb25nIHBvd2VyXzEgCisgICAgICAgICAgICA9IG1fdXRpbExvbmdCdWZmZXJfW21pbkxlbmd0aCAtIHJhbmdlc1swXS5tX2xlbmd0aF9dOworICAgICAgICAgICAgICAgIGxvbmcgcG93ZXIgPSBwb3dlcl8xICogY291bnRCeXRlczsKKyAgICAgICAgICAgICAgICBpbnQgY291bnQyID0gKGludCkoKG4gKyBwb3dlciAtIDEpIC8gcG93ZXIpOworICAgICAgICAgICAgICAgIGludCBjb3VudDEgPSByYW5nZXNbMF0ubV9jb3VudF8gLSBjb3VudDI7CisgICAgICAgICAgICAgICAgLy8gc3BsaXQgdGhlIHJhbmdlCisgICAgICAgICAgICAgICAgaWYgKGNvdW50MSA8IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gbGVuZ3RoZW4gdGhlIGVudGlyZSByYW5nZSB0byBtYXhMZW5ndGggCisgICAgICAgICAgICAgICAgICAgIGxlbmd0aGVuUmFuZ2UocmFuZ2VzLCAwLCBtYXhCeXRlLCBjb3VudEJ5dGVzKTsKKyAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyByZWFsbHkgc3BsaXQgdGhlIHJhbmdlCisgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIG5ldyByYW5nZSB3aXRoIHRoZSBlbmQgYW5kIGluaXRpYWwgYW5kIGN1cnJlbnQgCisgICAgICAgICAgICAgICAgICAgIC8vIGxlbmd0aCBvZiB0aGUgb2xkIG9uZQorICAgICAgICAgICAgICAgICAgICByYW5nZUNvdW50ID0gMjsKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VzWzFdLm1fZW5kXyA9IHJhbmdlc1swXS5tX2VuZF87CisgICAgICAgICAgICAgICAgICAgIHJhbmdlc1sxXS5tX2xlbmd0aF8gPSByYW5nZXNbMF0ubV9sZW5ndGhfOworICAgICAgICAgICAgICAgICAgICByYW5nZXNbMV0ubV9sZW5ndGgyXyA9IG1pbkxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBlbmQgb2YgdGhlIGZpcnN0IHJhbmdlIGFjY29yZGluZyB0byBjb3VudDEKKyAgICAgICAgICAgICAgICAgICAgaW50IGkgPSByYW5nZXNbMF0ubV9sZW5ndGhfOworICAgICAgICAgICAgICAgICAgICBpbnQgYiA9IGdldFdlaWdodEJ5dGUocmFuZ2VzWzBdLm1fc3RhcnRfLCBpKSArIGNvdW50MSAtIDE7CisgICAgICAgICAgICAgICAgICAgIC8vIHJhbmdlc1swXS5jb3VudCBhbmQgY291bnQxIG1heSBiZSA+Y291bnRCeXRlcyBmcm9tIAorICAgICAgICAgICAgICAgICAgICAvLyBtZXJnaW5nIGFkamFjZW50IHJhbmdlczsgYiA+IG1heEJ5dGUgaXMgcG9zc2libGUKKyAgICAgICAgICAgICAgICAgICAgaWYgKGIgPD0gbWF4Qnl0ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2VzWzBdLm1fZW5kXyA9IHNldFdlaWdodEJ5dGUocmFuZ2VzWzBdLm1fc3RhcnRfLCBpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIpOworICAgICAgICAgICAgICAgICAgICB9IAorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlc1swXS5tX2VuZF8gPSBzZXRXZWlnaHRCeXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNXZWlnaHQocmFuZ2VzWzBdLm1fc3RhcnRfLCBpIC0gMSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJ5dGUpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgYiAtIGNvdW50Qnl0ZXMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgYnl0ZXMgaW4gdGhlIGVuZCB3ZWlnaHQgYXQgbGVuZ3RoICsgMS4ubGVuZ3RoMiAKKyAgICAgICAgICAgICAgICAgICAgLy8gdG8gbWF4Qnl0ZQorICAgICAgICAgICAgICAgICAgICBiID0gKG1heEJ5dGUgPDwgMjQpIHwgKG1heEJ5dGUgPDwgMTYpIHwgKG1heEJ5dGUgPDwgOCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHwgbWF4Qnl0ZTsgLy8gdGhpcyB1c2VkIHRvIGJlIDB4ZmZmZmZmZmYgCisgICAgICAgICAgICAgICAgICAgIHJhbmdlc1swXS5tX2VuZF8gPSB0cnVuY2F0ZVdlaWdodChyYW5nZXNbMF0ubV9lbmRfLCBpKSAKKyAgICAgICAgICAgIHwgKGIgPj4+IChpIDw8IDMpKSAKKyAgICAgICAgICAgICYgKGIgPDwgKCg0IC0gbWluTGVuZ3RoKSA8PCAzKSk7CisgICAgICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgc3RhcnQgb2YgdGhlIHNlY29uZCByYW5nZSB0byBpbW1lZGlhdGVseSBmb2xsb3cgCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBlbmQgb2YgdGhlIGZpcnN0IG9uZQorICAgICAgICAgICAgICAgICAgICByYW5nZXNbMV0ubV9zdGFydF8gPSBpbmNXZWlnaHQocmFuZ2VzWzBdLm1fZW5kXywgbWluTGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJ5dGUpOworICAgICAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIGNvdW50IHZhbHVlcyAoaW5mb3JtYXRpb25hbCkKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VzWzBdLm1fY291bnRfID0gY291bnQxOworICAgICAgICAgICAgICAgICAgICByYW5nZXNbMV0ubV9jb3VudF8gPSBjb3VudDI7CisgICAgCisgICAgICAgICAgICAgICAgICAgIHJhbmdlc1swXS5tX2NvdW50Ml8gPSAoaW50KShjb3VudDEgKiBwb3dlcl8xKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBiZSAqY291bnRCeXRlcyB3aGVuIGxlbmd0aGVuZWQgCisgICAgICAgICAgICAgICAgICAgIHJhbmdlc1sxXS5tX2NvdW50Ml8gPSAoaW50KShjb3VudDIgKiBwb3dlcl8xKTsgCisgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIGxlbmd0aGVuIHRoZSBzZWNvbmQgcmFuZ2UgdG8gbWF4TGVuZ3RoCisgICAgICAgICAgICAgICAgICAgIGxlbmd0aGVuUmFuZ2UocmFuZ2VzLCAxLCBtYXhCeXRlLCBjb3VudEJ5dGVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBubyBnb29kIG1hdGNoLCBsZW5ndGhlbiBhbGwgbWluTGVuZ3RoIHJhbmdlcyBhbmQgaXRlcmF0ZSAKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgcmFuZ2VzW2ldLm1fbGVuZ3RoMl8gPT0gbWluTGVuZ3RoOyArKyBpKSB7CisgICAgICAgICAgICAgICAgbGVuZ3RoZW5SYW5nZShyYW5nZXMsIGksIG1heEJ5dGUsIGNvdW50Qnl0ZXMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGlmIChyYW5nZUNvdW50ID4gMSkgeworICAgICAgICAgICAgLy8gc29ydCB0aGUgcmFuZ2VzIGJ5IHdlaWdodCB2YWx1ZXMgCisgICAgICAgICAgICBBcnJheXMuc29ydChyYW5nZXMsIDAsIHJhbmdlQ291bnQpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIHNldCBtYXhCeXRlIGluIHJhbmdlc1swXSBmb3IgdWNvbF9uZXh0V2VpZ2h0KCkKKyAgICAgICAgcmFuZ2VzWzBdLm1fY291bnRfID0gbWF4Qnl0ZTsKKyAgICAKKyAgICAgICAgcmV0dXJuIHJhbmdlQ291bnQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFVwZGF0ZXMgdGhlIHJhbmdlIGxlbmd0aAorICAgICAqIEBwYXJhbSByYW5nZSB3ZWlnaHQgcmFuZ2UgYXJyYXkKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRvIHdlaWdodCByYW5nZSBhcnJheQorICAgICAqIEBwYXJhbSBtYXhCeXRlCisgICAgICogQHBhcmFtIGNvdW50Qnl0ZXMKKyAgICAgKiBAcmV0dXJuIG5ldyBsZW5ndGgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbGVuZ3RoZW5SYW5nZShXZWlnaHRSYW5nZSByYW5nZVtdLCBpbnQgb2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF4Qnl0ZSwgaW50IGNvdW50Qnl0ZXMpIAorICAgIHsKKyAgICAgICAgaW50IGxlbmd0aCA9IHJhbmdlW29mZnNldF0ubV9sZW5ndGgyXyArIDE7CisgICAgICAgIHJhbmdlW29mZnNldF0ubV9zdGFydF8gPSBzZXRXZWlnaHRUcmFpbChyYW5nZVtvZmZzZXRdLm1fc3RhcnRfLCBsZW5ndGgsIAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQllURV9GSVJTVF9UQUlMT1JFRF8pOworICAgICAgICByYW5nZVtvZmZzZXRdLm1fZW5kXyA9IHNldFdlaWdodFRyYWlsKHJhbmdlW29mZnNldF0ubV9lbmRfLCBsZW5ndGgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJ5dGUpOworICAgICAgICByYW5nZVtvZmZzZXRdLm1fY291bnQyXyAqPSBjb3VudEJ5dGVzOworICAgICAgICByYW5nZVtvZmZzZXRdLm1fbGVuZ3RoMl8gPSBsZW5ndGg7CisgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHdlaWdodCAKKyAgICAgKiBAcGFyYW0gd2VpZ2h0CisgICAgICogQHBhcmFtIGxlbmd0aAorICAgICAqIEBwYXJhbSB0cmFpbAorICAgICAqIEByZXR1cm4gbmV3IHdlaWdodAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBzZXRXZWlnaHRUcmFpbChpbnQgd2VpZ2h0LCBpbnQgbGVuZ3RoLCBpbnQgdHJhaWwpIAorICAgIHsKKyAgICAgICAgbGVuZ3RoID0gKDQgLSBsZW5ndGgpIDw8IDM7CisgICAgICAgIHJldHVybiAod2VpZ2h0ICYgKDB4ZmZmZmZmMDAgPDwgbGVuZ3RoKSkgfCAodHJhaWwgPDwgbGVuZ3RoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogdGFrZSB0d28gQ0Ugd2VpZ2h0cyBhbmQgY2FsY3VsYXRlIHRoZQorICAgICAqIHBvc3NpYmxlIHJhbmdlcyBvZiB3ZWlnaHRzIGJldHdlZW4gdGhlIHR3byBsaW1pdHMsIGV4Y2x1ZGluZyB0aGVtCisgICAgICogZm9yIHdlaWdodHMgd2l0aCB1cCB0byA0IGJ5dGVzIHRoZXJlIGFyZSB1cCB0byAyKjQtMT03IHJhbmdlcworICAgICAqIEBwYXJhbSBsb3dlcmxpbWl0CisgICAgICogQHBhcmFtIHVwcGVybGltaXQKKyAgICAgKiBAcGFyYW0gbWF4Qnl0ZQorICAgICAqIEBwYXJhbSBjb3VudEJ5dGVzCisgICAgICogQHBhcmFtIHJhbmdlcworICAgICAqIEByZXR1cm4gd2VpZ2h0IHJhbmdlcworICAgICAqLworICAgIHByaXZhdGUgaW50IGdldFdlaWdodFJhbmdlcyhpbnQgbG93ZXJMaW1pdCwgaW50IHVwcGVyTGltaXQsIGludCBtYXhCeXRlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50Qnl0ZXMsIFdlaWdodFJhbmdlIHJhbmdlc1tdKSAKKyAgICB7CisgICAgICAgIC8vIGFzc3VtZSB0aGF0IGJvdGggbG93ZXJMaW1pdCAmIHVwcGVyTGltaXQgYXJlIG5vdCAwIAorICAgICAgICAvLyBnZXQgdGhlIGxlbmd0aHMgb2YgdGhlIGxpbWl0cyAKKyAgICAgICAgaW50IGxvd2VyTGVuZ3RoID0gbGVuZ3RoT2ZXZWlnaHQobG93ZXJMaW1pdCk7CisgICAgICAgIGludCB1cHBlckxlbmd0aCA9IGxlbmd0aE9mV2VpZ2h0KHVwcGVyTGltaXQpOworICAgICAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQobG93ZXJMaW1pdCwgdXBwZXJMaW1pdCkgPj0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgLy8gY2hlY2sgdGhhdCBuZWl0aGVyIGlzIGEgcHJlZml4IG9mIHRoZSBvdGhlcgorICAgICAgICBpZiAobG93ZXJMZW5ndGggPCB1cHBlckxlbmd0aCkgeworICAgICAgICAgICAgaWYgKGxvd2VyTGltaXQgPT0gdHJ1bmNhdGVXZWlnaHQodXBwZXJMaW1pdCwgbG93ZXJMZW5ndGgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gaWYgdGhlIHVwcGVyIGxpbWl0IGlzIGEgcHJlZml4IG9mIHRoZSBsb3dlciBsaW1pdCB0aGVuIHRoZSBlYXJsaWVyIAorICAgICAgICAvLyB0ZXN0IGxvd2VyTGltaXQgPj0gdXBwZXJMaW1pdCBoYXMgY2F1Z2h0IGl0CisgICAgICAgIC8vIHJlc2V0IGxvY2FsIHZhcmlhYmxlcworICAgICAgICAvLyBXaXRoIHRoZSBsaW1pdCBsZW5ndGhzIG9mIDEuLjQsIHRoZXJlIGFyZSB1cCB0byA3IHJhbmdlcyBmb3IgCisgICAgICAgIC8vIGFsbG9jYXRpb246CisgICAgICAgIC8vIHJhbmdlICAgICBtaW5pbXVtIGxlbmd0aAorICAgICAgICAvLyBsb3dlcls0XSAgNAorICAgICAgICAvLyBsb3dlclszXSAgMworICAgICAgICAvLyBsb3dlclsyXSAgMgorICAgICAgICAvLyBtaWRkbGUgICAgMQorICAgICAgICAvLyB1cHBlclsyXSAgMgorICAgICAgICAvLyB1cHBlclszXSAgMworICAgICAgICAvLyB1cHBlcls0XSAgNAorICAgICAgICAvLyBXZSBhcmUgbm93IGdvaW5nIHRvIGNhbGN1bGF0ZSB1cCB0byA3IHJhbmdlcy4KKyAgICAgICAgLy8gU29tZSBvZiB0aGVtIHdpbGwgdHlwaWNhbGx5IG92ZXJsYXAsIHNvIHdlIHdpbGwgdGhlbiBoYXZlIHRvIG1lcmdlIAorICAgICAgICAvLyBhbmQgZWxpbWluYXRlIHJhbmdlcy4KKyAgICAgICAgCisgICAgICAgIC8vIFdlIGhhdmUgdG8gY2xlYW4gY3J1ZnQgZnJvbSBwcmV2aW91cyBpbnZvY2F0aW9ucworICAgICAgICAvLyBiZWZvcmUgZG9pbmcgYW55dGhpbmcuIEMrKyBhbHJlYWR5IGRvZXMgdGhhdAorICAgICAgICBmb3IoaW50IGxlbmd0aCA9IDA7IGxlbmd0aCA8IDU7IGxlbmd0aCsrKSB7CisgICAgICAgICAgICBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLmNsZWFyKCk7CisgICAgICAgICAgICBtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLmNsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgbV91dGlsV2VpZ2h0UmFuZ2VfLmNsZWFyKCk7CisgICAgICAgIAorICAgICAgICBpbnQgd2VpZ2h0ID0gbG93ZXJMaW1pdDsKKyAgICAgICAgZm9yIChpbnQgbGVuZ3RoID0gbG93ZXJMZW5ndGg7IGxlbmd0aCA+PSAyOyAtLSBsZW5ndGgpIHsKKyAgICAgICAgICAgIG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0uY2xlYXIoKTsKKyAgICAgICAgICAgIGludCB0cmFpbCA9IGdldFdlaWdodEJ5dGUod2VpZ2h0LCBsZW5ndGgpOworICAgICAgICAgICAgaWYgKHRyYWlsIDwgbWF4Qnl0ZSkgeworICAgICAgICAgICAgICAgIG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9zdGFydF8gCisgICAgICAgICAgICA9IGluY1dlaWdodFRyYWlsKHdlaWdodCwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fZW5kXyAKKyAgICAgICAgICAgID0gc2V0V2VpZ2h0VHJhaWwod2VpZ2h0LCBsZW5ndGgsIG1heEJ5dGUpOworICAgICAgICAgICAgICAgIG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9sZW5ndGhfID0gbGVuZ3RoOworICAgICAgICAgICAgICAgIG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9jb3VudF8gPSBtYXhCeXRlIC0gdHJhaWw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3ZWlnaHQgPSB0cnVuY2F0ZVdlaWdodCh3ZWlnaHQsIGxlbmd0aCAtIDEpOworICAgICAgICB9CisgICAgICAgIG1fdXRpbFdlaWdodFJhbmdlXy5tX3N0YXJ0XyA9IGluY1dlaWdodFRyYWlsKHdlaWdodCwgMSk7CisgICAgCisgICAgICAgIHdlaWdodCA9IHVwcGVyTGltaXQ7CisgICAgICAgIC8vIFswXSBhbmQgWzFdIGFyZSBub3QgdXNlZCAtIHRoaXMgc2ltcGxpZmllcyBpbmRleGluZywgCisgICAgICAgIC8vIG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfCisgICAgICAgIAorICAgICAgICBmb3IgKGludCBsZW5ndGggPSB1cHBlckxlbmd0aDsgbGVuZ3RoID49IDI7IGxlbmd0aCAtLSkgeworICAgICAgICAgICAgaW50IHRyYWlsID0gZ2V0V2VpZ2h0Qnl0ZSh3ZWlnaHQsIGxlbmd0aCk7CisgICAgICAgICAgICBpZiAodHJhaWwgPiBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0ZJUlNUX1RBSUxPUkVEXykgeworICAgICAgICAgICAgICAgIG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9zdGFydF8gCisgICAgICAgICAgICA9IHNldFdlaWdodFRyYWlsKHdlaWdodCwgbGVuZ3RoLCAKKyAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkJZVEVfRklSU1RfVEFJTE9SRURfKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fZW5kXyAKKyAgICAgICAgICAgID0gZGVjV2VpZ2h0VHJhaWwod2VpZ2h0LCBsZW5ndGgpOworICAgICAgICAgICAgICAgIG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9sZW5ndGhfID0gbGVuZ3RoOworICAgICAgICAgICAgICAgIG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9jb3VudF8gPSB0cmFpbAorICAgICAgICAgICAgLSBSdWxlQmFzZWRDb2xsYXRvci5CWVRFX0ZJUlNUX1RBSUxPUkVEXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdlaWdodCA9IHRydW5jYXRlV2VpZ2h0KHdlaWdodCwgbGVuZ3RoIC0gMSk7CisgICAgICAgIH0KKyAgICAgICAgbV91dGlsV2VpZ2h0UmFuZ2VfLm1fZW5kXyA9IGRlY1dlaWdodFRyYWlsKHdlaWdodCwgMSk7CisgICAgCisgICAgICAgIC8vIHNldCB0aGUgbWlkZGxlIHJhbmdlCisgICAgICAgIG1fdXRpbFdlaWdodFJhbmdlXy5tX2xlbmd0aF8gPSAxOworICAgICAgICBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQobV91dGlsV2VpZ2h0UmFuZ2VfLm1fZW5kXywgbV91dGlsV2VpZ2h0UmFuZ2VfLm1fc3RhcnRfKSA+PSAwKSB7CisgICAgICAgIC8vaWYgKG1fdXRpbFdlaWdodFJhbmdlXy5tX2VuZF8gPj0gbV91dGlsV2VpZ2h0UmFuZ2VfLm1fc3RhcnRfKSB7CisgICAgICAgICAgICBtX3V0aWxXZWlnaHRSYW5nZV8ubV9jb3VudF8gCisgICAgICAgID0gKChtX3V0aWxXZWlnaHRSYW5nZV8ubV9lbmRfIC0gbV91dGlsV2VpZ2h0UmFuZ2VfLm1fc3RhcnRfKSAKKyAgICAgICAgICAgPj4+IDI0KSArIDE7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gZWxpbWluYXRlIG92ZXJsYXBzCisgICAgICAgICAgICAvLyByZW1vdmUgdGhlIG1pZGRsZSByYW5nZQorICAgICAgICAgICAgbV91dGlsV2VpZ2h0UmFuZ2VfLm1fY291bnRfID0gMDsKKyAgICAgICAgICAgIC8vIHJlZHVjZSBvciByZW1vdmUgdGhlIGxvd2VyIHJhbmdlcyB0aGF0IGdvIGJleW9uZCB1cHBlckxpbWl0CisgICAgICAgICAgICBmb3IgKGludCBsZW5ndGggPSA0OyBsZW5ndGggPj0gMjsgLS0gbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9jb3VudF8gPiAwIAorICAgICAgICAgICAgICAgICAgICAmJiBtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fY291bnRfID4gMCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fc3RhcnRfOworICAgICAgICAgICAgICAgICAgICBpbnQgZW5kID0gbV91dGlsTG93ZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5tX2VuZF87CisgICAgICAgICAgICAgICAgICAgIGlmIChlbmQgPj0gc3RhcnQgfHwgaW5jV2VpZ2h0KGVuZCwgbGVuZ3RoLCBtYXhCeXRlKSAKKyAgICAgICAgICAgID09IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb3dlciBhbmQgdXBwZXIgcmFuZ2VzIGNvbGxpZGUgb3IgYXJlIGRpcmVjdGx5IAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRqYWNlbnQ6IG1lcmdlIHRoZXNlIHR3byBhbmQgcmVtb3ZlIGFsbCBzaG9ydGVyIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFuZ2VzCisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9zdGFydF87CisgICAgICAgICAgICAgICAgICAgICAgICBlbmQgPSBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fZW5kXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9lbmRfOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWVyZ2luZyBkaXJlY3RseSBhZGphY2VudCByYW5nZXMgbmVlZHMgdG8gc3VidHJhY3QgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgMC8xIGdhcHMgaW4gYmV0d2VlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0IG1heSByZXN1bHQgaW4gYSByYW5nZSB3aXRoIGNvdW50PmNvdW50Qnl0ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbExvd2VyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9jb3VudF8gCisgICAgICAgICAgICAgICAgPSBnZXRXZWlnaHRCeXRlKGVuZCwgbGVuZ3RoKQorICAgICAgICAgICAgICAgIC0gZ2V0V2VpZ2h0Qnl0ZShzdGFydCwgbGVuZ3RoKSArIDEgCisgICAgICAgICAgICAgICAgKyBjb3VudEJ5dGVzICogKGdldFdlaWdodEJ5dGUoZW5kLCBsZW5ndGggLSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgLSBnZXRXZWlnaHRCeXRlKHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoIC0gMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsVXBwZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5tX2NvdW50XyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoLS0gbGVuZ3RoID49IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fY291bnRfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0ubV9jb3VudF8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLy8gY29weSB0aGUgcmFuZ2VzLCBzaG9ydGVzdCBmaXJzdCwgaW50byB0aGUgcmVzdWx0IGFycmF5IAorICAgICAgICBpbnQgcmFuZ2VDb3VudCA9IDA7CisgICAgICAgIGlmIChtX3V0aWxXZWlnaHRSYW5nZV8ubV9jb3VudF8gPiAwKSB7CisgICAgICAgICAgICByYW5nZXNbMF0gPSBuZXcgV2VpZ2h0UmFuZ2UobV91dGlsV2VpZ2h0UmFuZ2VfKTsKKyAgICAgICAgICAgIHJhbmdlQ291bnQgPSAxOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGxlbmd0aCA9IDI7IGxlbmd0aCA8PSA0OyArKyBsZW5ndGgpIHsKKyAgICAgICAgICAgIC8vIGNvcHkgdXBwZXIgZmlyc3Qgc28gdGhhdCBsYXRlciB0aGUgbWlkZGxlIHJhbmdlIGlzIG1vcmUgbGlrZWx5IAorICAgICAgICAgICAgLy8gdGhlIGZpcnN0IG9uZSB0byB1c2UKKyAgICAgICAgICAgIGlmIChtX3V0aWxVcHBlcldlaWdodFJhbmdlX1tsZW5ndGhdLm1fY291bnRfID4gMCkgeworICAgICAgICAgICAgICAgIHJhbmdlc1tyYW5nZUNvdW50XSAKKyAgICAgICAgICAgID0gbmV3IFdlaWdodFJhbmdlKG1fdXRpbFVwcGVyV2VpZ2h0UmFuZ2VfW2xlbmd0aF0pOworICAgICAgICAgICAgICAgICsrIHJhbmdlQ291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobV91dGlsTG93ZXJXZWlnaHRSYW5nZV9bbGVuZ3RoXS5tX2NvdW50XyA+IDApIHsKKyAgICAgICAgICAgICAgICByYW5nZXNbcmFuZ2VDb3VudF0gCisgICAgICAgICAgICA9IG5ldyBXZWlnaHRSYW5nZShtX3V0aWxMb3dlcldlaWdodFJhbmdlX1tsZW5ndGhdKTsKKyAgICAgICAgICAgICAgICArKyByYW5nZUNvdW50OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByYW5nZUNvdW50OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUcnVuY2F0ZXMgdGhlIHdlaWdodCB3aXRoIGxlbmd0aAorICAgICAqIEBwYXJhbSB3ZWlnaHQKKyAgICAgKiBAcGFyYW0gbGVuZ3RoCisgICAgICogQHJldHVybiB0cnVuY2F0ZWQgd2VpZ2h0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IHRydW5jYXRlV2VpZ2h0KGludCB3ZWlnaHQsIGludCBsZW5ndGgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIHdlaWdodCAmICgweGZmZmZmZmZmIDw8ICgoNCAtIGxlbmd0aCkgPDwgMykpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBMZW5ndGggb2YgdGhlIHdlaWdodAorICAgICAqIEBwYXJhbSB3ZWlnaHQKKyAgICAgKiBAcmV0dXJuIGxlbmd0aCBvZiB0aGUgd2VpZ2h0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGxlbmd0aE9mV2VpZ2h0KGludCB3ZWlnaHQpIAorICAgIHsKKyAgICAgICAgaWYgKCh3ZWlnaHQgJiAweGZmZmZmZikgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0gCisgICAgICAgIGVsc2UgaWYgKCh3ZWlnaHQgJiAweGZmZmYpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9IAorICAgICAgICBlbHNlIGlmICgod2VpZ2h0ICYgMHhmZikgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgIH0gCisgICAgICAgIHJldHVybiA0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBJbmNyZW1lbnQgdGhlIHdlaWdodCB0cmFpbAorICAgICAqIEBwYXJhbSB3ZWlnaHQgCisgICAgICogQHBhcmFtIGxlbmd0aAorICAgICAqIEByZXR1cm4gbmV3IHdlaWdodAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBpbmNXZWlnaHRUcmFpbChpbnQgd2VpZ2h0LCBpbnQgbGVuZ3RoKSAKKyAgICB7CisgICAgICAgIHJldHVybiB3ZWlnaHQgKyAoMSA8PCAoKDQtbGVuZ3RoKSA8PCAzKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjcmVtZW50IHRoZSB3ZWlnaHQgdHJhaWwKKyAgICAgKiBAcGFyYW0gd2VpZ2h0IAorICAgICAqIEBwYXJhbSBsZW5ndGgKKyAgICAgKiBAcmV0dXJuIG5ldyB3ZWlnaHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZGVjV2VpZ2h0VHJhaWwoaW50IHdlaWdodCwgaW50IGxlbmd0aCkgCisgICAgeworICAgICAgICByZXR1cm4gd2VpZ2h0IC0gKDEgPDwgKCg0IC0gbGVuZ3RoKSA8PCAzKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNvZGVwb2ludCAKKyAgICAgKiBAcGFyYW0gdGFibGUgY29udHJhY3Rpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gY29kZVBvaW50IGNvZGUgcG9pbnQgdG8gbG9vayBmb3IKKyAgICAgKiBAcmV0dXJuIHRoZSBvZmZzZXQgdG8gdGhlIGNvZGUgcG9pbnQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZmluZENQKEJhc2ljQ29udHJhY3Rpb25UYWJsZSB0YmwsIGNoYXIgY29kZVBvaW50KSAKKyAgICB7CisgICAgICAgIGludCBwb3NpdGlvbiA9IDA7CisgICAgICAgIHdoaWxlIChjb2RlUG9pbnQgPiB0YmwubV9jb2RlUG9pbnRzXy5jaGFyQXQocG9zaXRpb24pKSB7CisgICAgICAgIHBvc2l0aW9uICsrOworICAgICAgICBpZiAocG9zaXRpb24gPiB0YmwubV9jb2RlUG9pbnRzXy5sZW5ndGgoKSkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY29kZVBvaW50ID09IHRibC5tX2NvZGVQb2ludHNfLmNoYXJBdChwb3NpdGlvbikpIHsKKyAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbjsKKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5kcyBhIGNvbnRyYWN0aW9uIGNlCisgICAgICogQHBhcmFtIHRhYmxlCisgICAgICogQHBhcmFtIGVsZW1lbnQKKyAgICAgKiBAcGFyYW0gY2gKKyAgICAgKiBAcmV0dXJuIGNlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRDRShDb250cmFjdGlvblRhYmxlIHRhYmxlLCBpbnQgZWxlbWVudCwgY2hhciBjaCkgCisgICAgeworICAgICAgICBpZiAodGFibGUgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIENFX05PVF9GT1VORF87CisgICAgICAgIH0KKyAgICAgICAgQmFzaWNDb250cmFjdGlvblRhYmxlIHRibCA9IGdldEJhc2ljQ29udHJhY3Rpb25UYWJsZSh0YWJsZSwgZWxlbWVudCk7CisgICAgICAgIGlmICh0YmwgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIENFX05PVF9GT1VORF87CisgICAgICAgIH0KKyAgICAgICAgaW50IHBvc2l0aW9uID0gZmluZENQKHRibCwgY2gpOworICAgICAgICBpZiAocG9zaXRpb24gPiB0YmwubV9DRXNfLnNpemUoKSB8fCBwb3NpdGlvbiA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiBDRV9OT1RfRk9VTkRfOworICAgICAgICB9IAorICAgICAgICByZXR1cm4gKChJbnRlZ2VyKXRibC5tX0NFc18uZ2V0KHBvc2l0aW9uKSkuaW50VmFsdWUoKTsKKyAgICB9ICAgIAorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGUgc3RyaW5nIGlzIHRhaWxvcmVkIGluIHRoZSBjb250cmFjdGlvbgorICAgICAqIEBwYXJhbSB0YWJsZSBjb250cmFjdGlvbiB0YWJsZQorICAgICAqIEBwYXJhbSBlbGVtZW50IAorICAgICAqIEBwYXJhbSBhcnJheSBjaGFyYWN0ZXIgYXJyYXkgdG8gY2hlY2sKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGFycmF5IG9mZnNldAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBpdCBpcyB0YWlsb3JlZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNUYWlsb3JlZChDb250cmFjdGlvblRhYmxlIHRhYmxlLCBpbnQgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYXJyYXlbXSwgaW50IG9mZnNldCkgCisgICAgeworICAgICAgICB3aGlsZSAoYXJyYXlbb2Zmc2V0XSAhPSAwKSB7CisgICAgICAgICAgICBlbGVtZW50ID0gZmluZENFKHRhYmxlLCBlbGVtZW50LCBhcnJheVtvZmZzZXRdKTsKKyAgICAgICAgICAgIGlmIChlbGVtZW50ID09IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWlzQ29udHJhY3Rpb25UYWJsZUVsZW1lbnQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9mZnNldCArKzsKKyAgICAgICAgfQorICAgICAgICBpZiAoZ2V0Q0UodGFibGUsIGVsZW1lbnQsIDApICE9IENFX05PVF9GT1VORF8pIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9IAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsgCisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQXNzZW1ibGUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAcGFyYW0gdCBidWlsZCB0YWJsZQorICAgICAqIEBwYXJhbSBjb2xsYXRvciB0byB1cGRhdGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgYXNzZW1ibGVUYWJsZShCdWlsZFRhYmxlIHQsIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKSAKKyAgICB7CisgICAgICAgIEludFRyaWVCdWlsZGVyIG1hcHBpbmcgPSB0Lm1fbWFwcGluZ187CisgICAgICAgIFZlY3RvciBleHBhbnNpb25zID0gdC5tX2V4cGFuc2lvbnNfOworICAgICAgICBDb250cmFjdGlvblRhYmxlIGNvbnRyYWN0aW9ucyA9IHQubV9jb250cmFjdGlvbnNfOworICAgICAgICBNYXhFeHBhbnNpb25UYWJsZSBtYXhleHBhbnNpb24gPSB0Lm1fbWF4RXhwYW5zaW9uc187CisgICAgICAgIAorICAgICAgICAvLyBjb250cmFjdGlvbiBvZmZzZXQgaGFzIHRvIGJlIGluIHNpbmNlIHdlIGFyZSBidWlsZGluZyBvbiB0aGUgCisgICAgICAgIC8vIFVDQSBjb250cmFjdGlvbnMgCisgICAgICAgIC8vIGludCBiZWZvcmVDb250cmFjdGlvbnMgPSAoSEVBREVSX1NJWkVfIAorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICArIHBhZGRlZHNpemUoZXhwYW5zaW9ucy5zaXplKCkgPDwgMikpID4+PiAxOworICAgICAgICBjb2xsYXRvci5tX2NvbnRyYWN0aW9uT2Zmc2V0XyA9IDA7CisgICAgICAgIGludCBjb250cmFjdGlvbnNTaXplID0gY29uc3RydWN0VGFibGUoY29udHJhY3Rpb25zKTsKKyAgICAgICAgCisgICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgb3BlcmF0aW9uIGRlcGVuZHMgb24gdGhlIHRyaWUgZGF0YS4gVGhlcmVmb3JlLCB3ZSBoYXZlIAorICAgICAgICAvLyB0byBkbyBpdCBiZWZvcmUgdGhlIHRyaWUgaXMgY29tcGFjdGVkIAorICAgICAgICAvLyBzZXRzIGphbW8gZXhwYW5zaW9ucworICAgICAgICBnZXRNYXhFeHBhbnNpb25KYW1vKG1hcHBpbmcsIG1heGV4cGFuc2lvbiwgdC5tX21heEphbW9FeHBhbnNpb25zXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsYXRvci5tX2lzSmFtb1NwZWNpYWxfKTsKKyAgICAgICAgCisgICAgICAgIC8vIFRPRE86IExBVElOMSBhcnJheSBpcyBub3cgaW4gdGhlIHV0cmllIC0gaXQgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSAKKyAgICAgICAgLy8gdGhlIGNhbGN1bGF0aW9uCisgICAgICAgIHNldEF0dHJpYnV0ZXMoY29sbGF0b3IsIHQubV9vcHRpb25zXyk7CisgICAgICAgIC8vIGNvcHkgZXhwYW5zaW9ucworICAgICAgICBpbnQgc2l6ZSA9IGV4cGFuc2lvbnMuc2l6ZSgpOworICAgICAgICBjb2xsYXRvci5tX2V4cGFuc2lvbl8gPSBuZXcgaW50W3NpemVdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIGNvbGxhdG9yLm1fZXhwYW5zaW9uX1tpXSA9ICgoSW50ZWdlcilleHBhbnNpb25zLmdldChpKSkuaW50VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBjb250cmFjdGlvbnMgYmxvY2sgCisgICAgICAgIGlmIChjb250cmFjdGlvbnNTaXplICE9IDApIHsKKyAgICAgICAgICAgIC8vIGNvcHkgY29udHJhY3Rpb24gaW5kZXggCisgICAgICAgICAgICBjb2xsYXRvci5tX2NvbnRyYWN0aW9uSW5kZXhfID0gbmV3IGNoYXJbY29udHJhY3Rpb25zU2l6ZV07CisgICAgICAgICAgICBjb250cmFjdGlvbnMubV9jb2RlUG9pbnRzXy5nZXRDaGFycygwLCBjb250cmFjdGlvbnNTaXplLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhdG9yLm1fY29udHJhY3Rpb25JbmRleF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisgICAgICAgICAgICAvLyBjb3B5IGNvbnRyYWN0aW9uIGNvbGxhdGlvbiBlbGVtZW50cworICAgICAgICAgICAgY29sbGF0b3IubV9jb250cmFjdGlvbkNFXyA9IG5ldyBpbnRbY29udHJhY3Rpb25zU2l6ZV07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvbnRyYWN0aW9uc1NpemU7IGkgKyspIHsKKyAgICAgICAgICAgICAgICBjb2xsYXRvci5tX2NvbnRyYWN0aW9uQ0VfW2ldID0gKChJbnRlZ2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udHJhY3Rpb25zLm1fQ0VzXy5nZXQoaSkpLmludFZhbHVlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gY29weSBtYXBwaW5nIHRhYmxlCisgICAgICAgIGNvbGxhdG9yLm1fdHJpZV8gPSBtYXBwaW5nLnNlcmlhbGl6ZSh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5EYXRhTWFuaXB1bGF0ZS5nZXRJbnN0YW5jZSgpKTsKKyAgICAgICAgLy8gY29weSBtYXggZXhwYW5zaW9uIHRhYmxlCisgICAgICAgIC8vIG5vdCBjb3B5aW5nIHRoZSBmaXJzdCBlbGVtZW50IHdoaWNoIGlzIGEgZHVtbXkKKyAgICAgICAgLy8gdG8gYmUgaW4gc3luY2ggd2l0aCBpY3U0YydzIGJ1aWxkZXIsIHdlIGNvbnRpbnVlIHRvIHVzZSB0aGUgCisgICAgICAgIC8vIGV4cGFuc2lvbiBvZmZzZXQKKyAgICAgICAgLy8gb21pdHRpbmcgZXhwYW5zaW9uIG9mZnNldCBpbiBidWlsZGVyCisgICAgICAgIGNvbGxhdG9yLm1fZXhwYW5zaW9uT2Zmc2V0XyA9IDA7IAorICAgICAgICBzaXplID0gbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLnNpemUoKTsKKyAgICAgICAgY29sbGF0b3IubV9leHBhbnNpb25FbmRDRV8gPSBuZXcgaW50W3NpemUgLSAxXTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICAgICAgICBjb2xsYXRvci5tX2V4cGFuc2lvbkVuZENFX1tpIC0gMV0gPSAoKEludGVnZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgbWF4ZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLmdldChpKSkuaW50VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5tX2V4cGFuc2lvbkVuZENFTWF4U2l6ZV8gPSBuZXcgYnl0ZVtzaXplIC0gMV07CisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgc2l6ZTsgaSArKykgeworICAgICAgICAgICAgY29sbGF0b3IubV9leHBhbnNpb25FbmRDRU1heFNpemVfW2kgLSAxXSAKKyAgICAgICAgPSAoKEJ5dGUpbWF4ZXhwYW5zaW9uLm1fZXhwYW5zaW9uQ0VTaXplXy5nZXQoaSkpLmJ5dGVWYWx1ZSgpOworICAgICAgICB9CisgICAgICAgIC8vIFVuc2FmZSBjaGFycyB0YWJsZS4gIEZpbmlzaCBpdCBvZmYsIHRoZW4gY29weSBpdC4KKyAgICAgICAgdW5zYWZlQ1BBZGRDQ05aKHQpOworICAgICAgICAvLyBPciBpbiB1bnNhZmViaXRzIGZyb20gVUNBLCBtYWtpbmcgYSBjb21iaW5lZCB0YWJsZS4KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBVTlNBRkVDUF9UQUJMRV9TSVpFXzsgaSArKykgeyAgICAKKyAgICAgICAgdC5tX3Vuc2FmZUNQX1tpXSB8PSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfLm1fdW5zYWZlX1tpXTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5tX3Vuc2FmZV8gPSB0Lm1fdW5zYWZlQ1BfOworICAgIAorICAgICAgICAvLyBGaW5pc2ggYnVpbGRpbmcgQ29udHJhY3Rpb24gRW5kaW5nIGNoYXJzIGhhc2ggdGFibGUgYW5kIHRoZW4gY29weSBpdCAKKyAgICAgICAgLy8gb3V0LgorICAgICAgICAvLyBPciBpbiB1bnNhZmViaXRzIGZyb20gVUNBLCBtYWtpbmcgYSBjb21iaW5lZCB0YWJsZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFVOU0FGRUNQX1RBQkxFX1NJWkVfOyBpICsrKSB7ICAgIAorICAgICAgICB0Lm1fY29udHJFbmRDUF9baV0gfD0gUnVsZUJhc2VkQ29sbGF0b3IuVUNBXy5tX2NvbnRyYWN0aW9uRW5kX1tpXTsKKyAgICAgICAgfQorICAgICAgICBjb2xsYXRvci5tX2NvbnRyYWN0aW9uRW5kXyA9IHQubV9jb250ckVuZENQXzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGlzIGNvbGxhdG9yIHRvIHVzZSB0aGUgYWxsIG9wdGlvbnMgYW5kIHRhYmxlcyBpbiBVQ0EuIAorICAgICAqIEBwYXJhbSBjb2xsYXRvciB3aGljaCBhdHRyaWJ1dGUgaXMgdG8gYmUgc2V0IAorICAgICAqIEBwYXJhbSBvcHRpb24gdG8gc2V0IHdpdGgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIHNldEF0dHJpYnV0ZXMoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25SdWxlUGFyc2VyLk9wdGlvblNldCBvcHRpb24pCisgICAgeworICAgICAgICBjb2xsYXRvci5sYXRpbk9uZUZhaWxlZF8gPSB0cnVlOworICAgICAgICBjb2xsYXRvci5tX2Nhc2VGaXJzdF8gPSBvcHRpb24ubV9jYXNlRmlyc3RfOworICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKG9wdGlvbi5tX2RlY29tcG9zaXRpb25fKTsKKyAgICAgICAgY29sbGF0b3Iuc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKAorICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5tX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyk7CisgICAgICAgIGNvbGxhdG9yLnNldENhc2VMZXZlbChvcHRpb24ubV9pc0Nhc2VMZXZlbF8pOworICAgICAgICBjb2xsYXRvci5zZXRGcmVuY2hDb2xsYXRpb24ob3B0aW9uLm1faXNGcmVuY2hDb2xsYXRpb25fKTsKKyAgICAgICAgY29sbGF0b3IubV9pc0hpcmFnYW5hNF8gPSBvcHRpb24ubV9pc0hpcmFnYW5hNF87CisgICAgICAgIGNvbGxhdG9yLnNldFN0cmVuZ3RoKG9wdGlvbi5tX3N0cmVuZ3RoXyk7CisgICAgICAgIGNvbGxhdG9yLm1fdmFyaWFibGVUb3BWYWx1ZV8gPSBvcHRpb24ubV92YXJpYWJsZVRvcFZhbHVlXzsgICAgCisgICAgICAgIGNvbGxhdG9yLmxhdGluT25lRmFpbGVkXyA9IGZhbHNlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RpbmcgdGhlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHBhcmFtIHRhYmxlIGNvbnRyYWN0aW9uIHRhYmxlCisgICAgICogQHJldHVybiAKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBjb25zdHJ1Y3RUYWJsZShDb250cmFjdGlvblRhYmxlIHRhYmxlKSAKKyAgICB7CisgICAgICAgIC8vIFNlZSBob3cgbXVjaCBtZW1vcnkgd2UgbmVlZCAKKyAgICAgICAgaW50IHRzaXplID0gdGFibGUubV9lbGVtZW50c18uc2l6ZSgpOworICAgICAgICBpZiAodHNpemUgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgdGFibGUubV9vZmZzZXRzXy5jbGVhcigpOworICAgICAgICBpbnQgcG9zaXRpb24gPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRzaXplOyBpICsrKSB7CisgICAgICAgICAgICB0YWJsZS5tX29mZnNldHNfLmFkZChuZXcgSW50ZWdlcihwb3NpdGlvbikpOworICAgICAgICAgICAgcG9zaXRpb24gKz0gKChCYXNpY0NvbnRyYWN0aW9uVGFibGUpCisgICAgICAgICAgICAgdGFibGUubV9lbGVtZW50c18uZ2V0KGkpKS5tX0NFc18uc2l6ZSgpOworICAgICAgICB9CisgICAgICAgIHRhYmxlLm1fQ0VzXy5jbGVhcigpOworICAgICAgICB0YWJsZS5tX2NvZGVQb2ludHNfLmRlbGV0ZSgwLCB0YWJsZS5tX2NvZGVQb2ludHNfLmxlbmd0aCgpKTsKKyAgICAgICAgLy8gTm93IHN0dWZmIHRoZSB0aGluZ3MgaW4KKyAgICAgICAgU3RyaW5nQnVmZmVyIGNwUG9pbnRlciA9IHRhYmxlLm1fY29kZVBvaW50c187CisgICAgICAgIFZlY3RvciBDRVBvaW50ZXIgPSB0YWJsZS5tX0NFc187CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdHNpemU7IGkgKyspIHsKKyAgICAgICAgICAgIEJhc2ljQ29udHJhY3Rpb25UYWJsZSBiY3QgPSAoQmFzaWNDb250cmFjdGlvblRhYmxlKQorICAgICAgICB0YWJsZS5tX2VsZW1lbnRzXy5nZXQoaSk7CisgICAgICAgICAgICBpbnQgc2l6ZSA9IGJjdC5tX0NFc18uc2l6ZSgpOworICAgICAgICAgICAgY2hhciBjY01heCA9IDA7CisgICAgICAgICAgICBjaGFyIGNjTWluID0gMjU1OworICAgICAgICAgICAgaW50IG9mZnNldCA9IENFUG9pbnRlci5zaXplKCk7CisgICAgICAgICAgICBDRVBvaW50ZXIuYWRkKGJjdC5tX0NFc18uZ2V0KDApKTsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAxOyBqIDwgc2l6ZTsgaiArKykgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBiY3QubV9jb2RlUG9pbnRzXy5jaGFyQXQoaik7CisgICAgICAgICAgICAgICAgY2hhciBjYyA9IChjaGFyKShVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKGNoKSAmIDB4RkYpOworICAgICAgICAgICAgICAgIGlmIChjYyA+IGNjTWF4KSB7CisgICAgICAgICAgICAgICAgICAgIGNjTWF4ID0gY2M7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjYyA8IGNjTWluKSB7CisgICAgICAgICAgICAgICAgICAgIGNjTWluID0gY2M7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNwUG9pbnRlci5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgIENFUG9pbnRlci5hZGQoYmN0Lm1fQ0VzXy5nZXQoaikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3BQb2ludGVyLmluc2VydChvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoKChjY01pbiA9PSBjY01heCkgPyAxIDogMCA8PCA4KSB8IGNjTWF4KSk7CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IHNpemU7IGogKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNDb250cmFjdGlvblRhYmxlRWxlbWVudCgoKEludGVnZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBDRVBvaW50ZXIuZ2V0KG9mZnNldCArIGopKS5pbnRWYWx1ZSgpKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgY2UgPSAoKEludGVnZXIpQ0VQb2ludGVyLmdldChvZmZzZXQgKyBqKSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgQ0VQb2ludGVyLnNldChvZmZzZXQgKyBqLCAKKyAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKGNvbnN0cnVjdFNwZWNpYWxDRShnZXRDRVRhZyhjZSksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChJbnRlZ2VyKXRhYmxlLm1fb2Zmc2V0c18uZ2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29udHJhY3Rpb25PZmZzZXQoY2UpKSkuaW50VmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMHgxMEZGRkY7IGkgKyspIHsKKyAgICAgICAgICAgIGludCBDRSA9IHRhYmxlLm1fbWFwcGluZ18uZ2V0VmFsdWUoaSk7CisgICAgICAgICAgICBpZiAoaXNDb250cmFjdGlvblRhYmxlRWxlbWVudChDRSkpIHsKKyAgICAgICAgICAgICAgICBDRSA9IGNvbnN0cnVjdFNwZWNpYWxDRShnZXRDRVRhZyhDRSksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoSW50ZWdlcil0YWJsZS5tX29mZnNldHNfLmdldCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbnRyYWN0aW9uT2Zmc2V0KENFKSkpLmludFZhbHVlKCkpOworICAgICAgICAgICAgICAgIHRhYmxlLm1fbWFwcGluZ18uc2V0VmFsdWUoaSwgQ0UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3NpdGlvbjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IGNvbnRyYWN0aW9uIG9mZnNldAorICAgICAqIEBwYXJhbSBjZSBjb2xsYXRpb24gZWxlbWVudCAKKyAgICAgKiBAcmV0dXJuIGNvbnRyYWN0aW9uIG9mZnNldAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBnZXRDb250cmFjdGlvbk9mZnNldChpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gY2UgJiAweEZGRkZGRjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbWF4aW11bSBKYW1vIGV4cGFuc2lvbgorICAgICAqIEBwYXJhbSB0YWJsZSB0cmllIHRhYmxlCisgICAgICogQHBhcmFtIG1heGV4cGFuc2lvbiBtYXhpbXVtIGV4cGFuc2lvbiB0YWJsZQorICAgICAqIEBwYXJhbSBtYXhqYW1vZXhwYW5zaW9uIG1heGltdW0gamFtbyBleHBhbnNpb24gdGFibGUKKyAgICAgKiBAcGFyYW0gamFtb3NwZWNpYWwgaXMgamFtbyBzcGVjaWFsPworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZ2V0TWF4RXhwYW5zaW9uSmFtbyhJbnRUcmllQnVpbGRlciBtYXBwaW5nLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF4RXhwYW5zaW9uVGFibGUgbWF4ZXhwYW5zaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhKYW1vRXhwYW5zaW9uVGFibGUgCisgICAgICAgICAgICAgICAgICAgICAgICBtYXhqYW1vZXhwYW5zaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGphbW9zcGVjaWFsKQorICAgIHsKKyAgICAgICAgaW50IFZCQVNFICA9IDB4MTE2MTsKKyAgICAgICAgaW50IFRCQVNFICA9IDB4MTFBODsKKyAgICAgICAgaW50IFZDT1VOVCA9IDIxOworICAgICAgICBpbnQgVENPVU5UID0gMjg7CisgICAgICAgIGludCB2ID0gVkJBU0UgKyBWQ09VTlQgLSAxOworICAgICAgICBpbnQgdCA9IFRCQVNFICsgVENPVU5UIC0gMTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh2ID49IFZCQVNFKSB7CisgICAgICAgICAgICBpbnQgY2UgPSBtYXBwaW5nLmdldFZhbHVlKHYpOworICAgICAgICAgICAgaWYgKChjZSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18pIAorICAgICAgICAhPSBSdWxlQmFzZWRDb2xsYXRvci5DRV9TUEVDSUFMX0ZMQUdfKSB7CisgICAgICAgICAgICAgICAgc2V0TWF4RXhwYW5zaW9uKGNlLCAoYnl0ZSkyLCBtYXhleHBhbnNpb24pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdiAtLTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd2hpbGUgKHQgPj0gVEJBU0UpCisgICAgICAgIHsKKyAgICAgICAgaW50IGNlID0gbWFwcGluZy5nZXRWYWx1ZSh0KTsKKyAgICAgICAgaWYgKChjZSAmIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1NQRUNJQUxfRkxBR18pIAorICAgICAgICAgICAgIT0gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU1BFQ0lBTF9GTEFHXykgeworICAgICAgICAgICAgc2V0TWF4RXhwYW5zaW9uKGNlLCAoYnl0ZSkzLCBtYXhleHBhbnNpb24pOworICAgICAgICB9CisgICAgICAgIHQgLS07CisgICAgICAgIH0KKyAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBkb2NzLCA5OSUgb2YgdGhlIHRpbWUsIHRoZSBKYW1vIHdpbGwgbm90IGJlIHNwZWNpYWwgCisgICAgICAgIGlmIChqYW1vc3BlY2lhbCkgeworICAgICAgICAgICAgLy8gZ2V0cyB0aGUgbWF4IGV4cGFuc2lvbiBpbiBhbGwgdW5pY29kZSBjaGFyYWN0ZXJzCisgICAgICAgICAgICBpbnQgY291bnQgPSBtYXhqYW1vZXhwYW5zaW9uLm1fZW5kRXhwYW5zaW9uQ0VfLnNpemUoKTsKKyAgICAgICAgICAgIGJ5dGUgbWF4VFNpemUgPSAoYnl0ZSkobWF4amFtb2V4cGFuc2lvbi5tX21heExTaXplXyArIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhqYW1vZXhwYW5zaW9uLm1fbWF4VlNpemVfICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4amFtb2V4cGFuc2lvbi5tX21heFRTaXplXyk7CisgICAgICAgICAgICBieXRlIG1heFZTaXplID0gKGJ5dGUpKG1heGphbW9leHBhbnNpb24ubV9tYXhMU2l6ZV8gKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4amFtb2V4cGFuc2lvbi5tX21heFZTaXplXyk7CisgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKGNvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgICAgIGlmICgoKEJvb2xlYW4pbWF4amFtb2V4cGFuc2lvbi5tX2lzVl8uZ2V0KGNvdW50KSkuYm9vbGVhblZhbHVlKCkKKyAgICAgICAgICAgID09IHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0TWF4RXhwYW5zaW9uKCgoSW50ZWdlcikKKyAgICAgICAgICAgICAgICAgICAgIG1heGphbW9leHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uZ2V0KGNvdW50KSkuaW50VmFsdWUoKSwgCisgICAgICAgICAgICAgICAgICAgIG1heFZTaXplLCBtYXhleHBhbnNpb24pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0TWF4RXhwYW5zaW9uKCgoSW50ZWdlcikKKyAgICAgICAgICAgICAgICAgICAgIG1heGphbW9leHBhbnNpb24ubV9lbmRFeHBhbnNpb25DRV8uZ2V0KGNvdW50KSkuaW50VmFsdWUoKSwgCisgICAgICAgICAgICAgICAgICAgIG1heFRTaXplLCBtYXhleHBhbnNpb24pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiogIAorICAgICAqIFRvIHRoZSBVbnNhZmVDUCBoYXNoIHRhYmxlLCBhZGQgYWxsIGNoYXJzIHdpdGggY29tYmluaW5nIGNsYXNzICE9IDAgICAgIAorICAgICAqIEBwYXJhbSB0IGJ1aWxkIHRhYmxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCB1bnNhZmVDUEFkZENDTlooQnVpbGRUYWJsZSB0KSAKKyAgICB7CisgICAgCisgICAgICAgIGZvciAoY2hhciBjID0gMDsgYyA8IDB4ZmZmZjsgYyArKykgeworICAgICAgICAgICAgY2hhciBmY2QgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjKTsKKyAgICAgICAgICAgIGlmIChmY2QgPj0gMHgxMDAgfHwgLy8gaWYgdGhlIGxlYWRpbmcgY29tYmluaW5nIGNsYXNzKGMpID4gMCB8fAorICAgICAgICAgICAgICAgIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykgJiYgZmNkICE9IDApKSB7CisgICAgICAgICAgICAgICAgLy8gYyBpcyBhIGxlYWRpbmcgc3Vycm9nYXRlIHdpdGggc29tZSBGQ0QgZGF0YQorICAgICAgICAgICAgICAgIHVuc2FmZUNQU2V0KHQubV91bnNhZmVDUF8sIGMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgCisgICAgICAgIGlmICh0Lm1fcHJlZml4TG9va3VwXyAhPSBudWxsKSB7CisgICAgICAgICAgICBFbnVtZXJhdGlvbiBlbHMgPSB0Lm1fcHJlZml4TG9va3VwXy5lbGVtZW50cygpOworICAgICAgICAgICAgd2hpbGUgKGVscy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIEVsZW1lbnRzIGUgPSAoRWxlbWVudHMpZWxzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgLy8gY29kZXBvaW50cyBoZXJlIGFyZSBpbiB0aGUgTkZEIGZvcm0uIFdlIG5lZWQgdG8gYWRkIHRoZQorICAgICAgICAgICAgICAgIC8vIGZpcnN0IGNvZGUgcG9pbnQgb2YgdGhlIE5GQyBmb3JtIHRvIHVuc2FmZSwgYmVjYXVzZSAKKyAgICAgICAgICAgICAgICAvLyBzdHJjb2xsIG5lZWRzIHRvIGJhY2t1cCBvdmVyIHRoZW0uCisgICAgICAgICAgICAgICAgLy8gd2VpdjogVGhpcyBpcyB3cm9uZyEgU2VlIHRoZSBjb21tZW50IGFib3ZlLgorICAgICAgICAgICAgICAgIC8vU3RyaW5nIGRlY29tcCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKGUubV9jUG9pbnRzXywgdHJ1ZSk7CisgICAgICAgICAgICAgICAgLy91bnNhZmVDUFNldCh0Lm1fdW5zYWZlQ1BfLCBkZWNvbXAuY2hhckF0KDApKTsKKyAgICAgICAgICAgICAgICAvLyBpdCBzaG91bGQgYmU6CisgICAgICAgICAgICAgICAgU3RyaW5nIGNvbXAgPSBOb3JtYWxpemVyLmNvbXBvc2UoZS5tX2NQb2ludHNfLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdW5zYWZlQ1BTZXQodC5tX3Vuc2FmZUNQXywgY29tcC5jaGFyQXQoMCkpOworICAgICAgICAgICAgfSAKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgY2xvc3VyZQorICAgICAqIEBwYXJhbSB0IGJ1aWxkIHRhYmxlCisgICAgICogQHBhcmFtIGNvbGxhdG9yIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHBhcmFtIGNvbEVsIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yCisgICAgICogQHBhcmFtIHN0YXJ0IAorICAgICAqIEBwYXJhbSBsaW1pdAorICAgICAqIEBwYXJhbSB0eXBlIGNoYXJhY3RlciB0eXBlCisgICAgICogQHJldHVybiAKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZW51bUNhdGVnb3J5UmFuZ2VDbG9zdXJlQ2F0ZWdvcnkoQnVpbGRUYWJsZSB0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgY29sRWwsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IHR5cGUpIAorICAgIHsKKyAgICAgICAgaWYgKHR5cGUgIT0gVUNoYXJhY3RlckNhdGVnb3J5LlVOQVNTSUdORUQgCisgICAgICAgICAgICAmJiB0eXBlICE9IFVDaGFyYWN0ZXJDYXRlZ29yeS5QUklWQVRFX1VTRSkgeyAKKyAgICAgICAgICAgIC8vIGlmIHRoZSByYW5nZSBpcyBhc3NpZ25lZCAtIHdlIG1pZ2h0IG9tbWl0IG1vcmUgY2F0ZWdvcmllcyBsYXRlcgorICAgICAgICAgICAgCisgICAgICAgICAgICBmb3IgKGludCB1MzIgPSBzdGFydDsgdTMyIDwgbGltaXQ7IHUzMiArKykgeworICAgICAgICAgICAgICAgIGludCBub09mRGVjID0gTm9ybWFsaXplckltcGwuZ2V0RGVjb21wb3NpdGlvbih1MzIsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDaGFyQnVmZmVyXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDI1Nik7CisgICAgICAgICAgICAgICAgaWYgKG5vT2ZEZWMgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIHBvc2l0aXZlLCB0aGF0IG1lYW5zIHRoZXJlIGlzIG5vIGRlY29tcG9zaXRpb24KKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNvbXAgPSBVQ2hhcmFjdGVyLnRvU3RyaW5nKHUzMik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBuZXcgU3RyaW5nKG1fdXRpbENoYXJCdWZmZXJfLCAwLCBub09mRGVjKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjb2xsYXRvci5lcXVhbHMoY29tcCwgZGVjb21wKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9jUG9pbnRzXyA9IGRlY29tcDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fcHJlZml4XyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBFbGVtZW50cyBwcmVmaXggCisgICAgICAgICAgICAgICAgPSAoRWxlbWVudHMpdC5tX3ByZWZpeExvb2t1cF8uZ2V0KG1fdXRpbEVsZW1lbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVmaXggPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c18gPSBjb21wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fcHJlZml4XyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9wcmVmaXhDaGFyc18gPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbEVsLnNldFRleHQoZGVjb21wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2UgPSBjb2xFbC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRUxlbmd0aF8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VzX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VMZW5ndGhfICsrXSAKKyAgICAgICAgICAgICAgICAgICAgPSBjZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2UgPSBjb2xFbC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c18gPSBjb21wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fcHJlZml4XyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9wcmVmaXhDaGFyc18gPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fQ0VMZW5ndGhfID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxFbGVtZW50Xy5tX0NFc19bMF0gPSBwcmVmaXgubV9tYXBDRV87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBjaGFyYWN0ZXIgdXNlcyBhIHByZWZpeC4gV2UgaGF2ZSB0byBhZGQgaXQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gdGhlIHVuc2FmZSB0YWJsZSwgYXMgaXQgZGVjb21wb3NlZCBmb3JtIGlzIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgaW4uIEluIEphcGFuZXNlLCB0aGlzIGhhcHBlbnMgZm9yIFx1MzA5ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAmIFx1MzBmZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNpbmNlIHVuc2FmZUNQU2V0IGlzIHN0YXRpYyBpbiB1Y29sX2VsbSwgd2UgYXJlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdvaW5nIHRvIHdyYXAgaXQgdXAgaW4gdGhlIHVuc2FmZUNQQWRkQ0NOWiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYWRkQW5FbGVtZW50KHQsIG1fdXRpbEVsZW1lbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIGlmIGEgY2hhcmFjdGVyIGlzIGEgSmFtbworICAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gdGVzdAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBjaCBpcyBhIEphbW8sIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNKYW1vKGNoYXIgY2gpCisgICAgeyAKKyAgICByZXR1cm4gKGNoID49IDB4MTEwMCAmJiBjaCA8PSAweDExMTIpIAorICAgICAgICB8fCAoY2ggPj0gMHgxMTc1ICYmIGNoIDw9IDB4MTE2MSkgCisgICAgICAgIHx8IChjaCA+PSAweDExQTggJiYgY2ggPD0gMHgxMUMyKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUHJvZHVjZXMgY2Fub25pY2FsIGNsb3N1cmUKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgY2Fub25pY2FsQ2xvc3VyZShCdWlsZFRhYmxlIHQpIAorICAgIHsKKyAgICAgICAgQnVpbGRUYWJsZSB0ZW1wID0gbmV3IEJ1aWxkVGFibGUodCk7CisgICAgICAgIGFzc2VtYmxlVGFibGUodGVtcCwgdGVtcC5tX2NvbGxhdG9yXyk7CisgICAgICAgIC8vIHByb2R1Y2UgY2Fub25pY2FsIGNsb3N1cmUgCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjb2xlaXRlciAKKyAgICAgICAgPSB0ZW1wLm1fY29sbGF0b3JfLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7CisgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvciB0eXBlaXRlciA9IFVDaGFyYWN0ZXIuZ2V0VHlwZUl0ZXJhdG9yKCk7CisgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IGVsZW1lbnQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgd2hpbGUgKHR5cGVpdGVyLm5leHQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgIGVudW1DYXRlZ29yeVJhbmdlQ2xvc3VyZUNhdGVnb3J5KHQsIHRlbXAubV9jb2xsYXRvcl8sIGNvbGVpdGVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnN0YXJ0LCBlbGVtZW50LmxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LnZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgcHJvY2Vzc1VDQUNvbXBsZXRlSWdub3JhYmxlcyhCdWlsZFRhYmxlIHQpIAorICAgIHsKKyAgICAgICAgVHJpZUl0ZXJhdG9yIHRyaWVpdGVyYXRvciAKKyAgICAgICAgPSBuZXcgVHJpZUl0ZXJhdG9yKFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8ubV90cmllXyk7CisgICAgICAgIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IGVsZW1lbnQgPSBuZXcgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQoKTsKKyAgICAgICAgd2hpbGUgKHRyaWVpdGVyYXRvci5uZXh0KGVsZW1lbnQpKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBlbGVtZW50LnN0YXJ0OworICAgICAgICAgICAgaW50IGxpbWl0ID0gZWxlbWVudC5saW1pdDsKKyAgICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlID09IDApIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAoc3RhcnQgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgQ0UgPSB0Lm1fbWFwcGluZ18uZ2V0VmFsdWUoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICBpZiAoQ0UgPT0gQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9wcmVmaXhfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXyA9IFVDaGFyYWN0ZXIudG9TdHJpbmcoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9jUG9pbnRzXyA9IG1fdXRpbEVsZW1lbnRfLm1fdWNoYXJzXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEVsZW1lbnRfLm1fY1BvaW50c09mZnNldF8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRUxlbmd0aF8gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRWxlbWVudF8ubV9DRXNfWzBdID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZEFuRWxlbWVudCh0LCBtX3V0aWxFbGVtZW50Xyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uUnVsZVBhcnNlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0aW9uUnVsZVBhcnNlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMDRkNGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRpb25SdWxlUGFyc2VyLmphdmEKQEAgLTAsMCArMSwyMDcwIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworLyoqCisqIENsYXNzIGZvciBwYXJzaW5nIGNvbGxhdGlvbiBydWxlcywgcHJvZHVjZXMgYSBsaXN0IG9mIHRva2VucyB0aGF0IHdpbGwgYmUKKyogdHVybmVkIGludG8gY29sbGF0aW9uIGVsZW1lbnRzCisqIEBhdXRob3IgU3luIFdlZSBRdWVrCisqIEBzaW5jZSByZWxlYXNlIDIuMiwgSnVuZSA3IDIwMDIKKyogQGRyYWZ0IDIuMgorKi8KK2ZpbmFsIGNsYXNzIENvbGxhdGlvblJ1bGVQYXJzZXIKK3sKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIDxwPlJ1bGVCYXNlZENvbGxhdG9yIGNvbnN0cnVjdG9yIHRoYXQgdGFrZXMgdGhlIHJ1bGVzLgorICAgICAqIFBsZWFzZSBzZWUgUnVsZUJhc2VkQ29sbGF0b3IgY2xhc3MgZGVzY3JpcHRpb24gZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUKKyAgICAgKiBjb2xsYXRpb24gcnVsZSBzeW50YXguPC9wPgorICAgICAqIEBzZWUgamF2YS51dGlsLkxvY2FsZQorICAgICAqIEBwYXJhbSBydWxlcyB0aGUgY29sbGF0aW9uIHJ1bGVzIHRvIGJ1aWxkIHRoZSBjb2xsYXRpb24gdGFibGUgZnJvbS4KKyAgICAgKiBAZXhjZXB0aW9uIFBhcnNlRXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IHJ1bGVzIGhhdmUgYW4gaW52YWxpZAorICAgICAqICAgICAgICAgICAgc3ludGF4LgorICAgICAqIEBkcmFmdCAyLjIKKyAgICAgKi8KKyAgICBDb2xsYXRpb25SdWxlUGFyc2VyKFN0cmluZyBydWxlcykgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgICBleHRyYWN0U2V0c0Zyb21SdWxlcyhydWxlcyk7CisgICAgICAgIG1fc291cmNlXyA9IG5ldyBTdHJpbmdCdWZmZXIoTm9ybWFsaXplci5kZWNvbXBvc2UocnVsZXMsIGZhbHNlKS50cmltKCkpOworICAgICAgICBtX3J1bGVzXyA9IG1fc291cmNlXy50b1N0cmluZygpOworICAgICAgICBtX2N1cnJlbnRfID0gMDsKKyAgICAgICAgbV9leHRyYUN1cnJlbnRfID0gbV9zb3VyY2VfLmxlbmd0aCgpOworICAgICAgICBtX3ZhcmlhYmxlVG9wXyA9IG51bGw7CisgICAgICAgIG1fcGFyc2VkVG9rZW5fID0gbmV3IFBhcnNlZFRva2VuKCk7CisgICAgICAgIG1faGFzaFRhYmxlXyA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgbV9vcHRpb25zXyA9IG5ldyBPcHRpb25TZXQoUnVsZUJhc2VkQ29sbGF0b3IuVUNBXyk7CisgICAgICAgIG1fbGlzdEhlYWRlcl8gPSBuZXcgVG9rZW5MaXN0SGVhZGVyWzUxMl07CisgICAgICAgIG1fcmVzdWx0TGVuZ3RoXyA9IDA7CisgICAgICAgIC8vIGNhbGwgYXNzZW1ibGVUb2tlbkxpc3QoKSBtYW51YWxseSwgc28gdGhhdCB3ZSBjYW4KKyAgICAgICAgLy8gaW5pdCBhIHBhcnNlciBhbmQgbWFudWFsbHkgcGFyc2UgdG9rZW5zCisgICAgICAgIC8vYXNzZW1ibGVUb2tlbkxpc3QoKTsKKyAgICB9CisKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgaW5uZXIgY2xhc3NlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29sbGF0aW9uIG9wdGlvbnMgc2V0CisgICAgICovCisgICAgc3RhdGljIGNsYXNzIE9wdGlvblNldAorICAgIHsKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbml0aWFsaXplcyB0aGUgb3B0aW9uIHNldCB3aXRoIHRoZSBhcmd1bWVudCBjb2xsYXRvcnMKKyAgICAgICAgICogQHBhcmFtIGNvbGxhdG9yIG9wdGlvbiB0byB1c2UKKyAgICAgICAgICovCisgICAgICAgIE9wdGlvblNldChSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvcikKKyAgICAgICAgeworICAgICAgICAgICAgbV92YXJpYWJsZVRvcFZhbHVlXyA9IGNvbGxhdG9yLm1fdmFyaWFibGVUb3BWYWx1ZV87CisgICAgICAgICAgICBtX2lzRnJlbmNoQ29sbGF0aW9uXyA9IGNvbGxhdG9yLmlzRnJlbmNoQ29sbGF0aW9uKCk7CisgICAgICAgICAgICBtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGNvbGxhdG9yLmlzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKCk7CisgICAgICAgICAgICBtX2Nhc2VGaXJzdF8gPSBjb2xsYXRvci5tX2Nhc2VGaXJzdF87CisgICAgICAgICAgICBtX2lzQ2FzZUxldmVsXyA9IGNvbGxhdG9yLmlzQ2FzZUxldmVsKCk7CisgICAgICAgICAgICBtX2RlY29tcG9zaXRpb25fID0gY29sbGF0b3IuZ2V0RGVjb21wb3NpdGlvbigpOworICAgICAgICAgICAgbV9zdHJlbmd0aF8gPSBjb2xsYXRvci5nZXRTdHJlbmd0aCgpOworICAgICAgICAgICAgbV9pc0hpcmFnYW5hNF8gPSBjb2xsYXRvci5tX2lzSGlyYWdhbmE0XzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBpbnQgbV92YXJpYWJsZVRvcFZhbHVlXzsKKyAgICAgICAgYm9vbGVhbiBtX2lzRnJlbmNoQ29sbGF0aW9uXzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEF0dHJpYnV0ZSBmb3IgaGFuZGxpbmcgdmFyaWFibGUgZWxlbWVudHMKKyAgICAgICAgICovCisgICAgICAgIGJvb2xlYW4gbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisgICAgICAgIC8qKgorICAgICAgICAgKiB3aG8gZ29lcyBmaXJzdCwgbG93ZXIgY2FzZSBvciB1cHBlcmNhc2UKKyAgICAgICAgICovCisgICAgICAgIGludCBtX2Nhc2VGaXJzdF87CisgICAgICAgIC8qKgorICAgICAgICAgKiBkbyB3ZSBoYXZlIGFuIGV4dHJhIGNhc2UgbGV2ZWwKKyAgICAgICAgICovCisgICAgICAgIGJvb2xlYW4gbV9pc0Nhc2VMZXZlbF87CisgICAgICAgIC8qKgorICAgICAgICAgKiBhdHRyaWJ1dGUgZm9yIG5vcm1hbGl6YXRpb24KKyAgICAgICAgICovCisgICAgICAgIGludCBtX2RlY29tcG9zaXRpb25fOworICAgICAgICAvKioKKyAgICAgICAgICogYXR0cmlidXRlIGZvciBzdHJlbmd0aAorICAgICAgICAgKi8KKyAgICAgICAgaW50IG1fc3RyZW5ndGhfOworICAgICAgICAvKioKKyAgICAgICAgICogYXR0cmlidXRlIGZvciBzcGVjaWFsIEhpcmFnYW5hCisgICAgICAgICAqLworICAgICAgICBib29sZWFuIG1faXNIaXJhZ2FuYTRfOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBMaXN0IG9mIHRva2VucyB1c2VkIGJ5IHRoZSBjb2xsYXRpb24gcnVsZXMKKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgVG9rZW5MaXN0SGVhZGVyCisgICAgeworICAgICAgICBUb2tlbiBtX2ZpcnN0XzsKKyAgICAgICAgVG9rZW4gbV9sYXN0XzsKKyAgICAgICAgVG9rZW4gbV9yZXNldF87CisgICAgICAgIGJvb2xlYW4gbV9pbmRpcmVjdF87CisgICAgICAgIGludCBtX2Jhc2VDRV87CisgICAgICAgIGludCBtX2Jhc2VDb250Q0VfOworICAgICAgICBpbnQgbV9uZXh0Q0VfOworICAgICAgICBpbnQgbV9uZXh0Q29udENFXzsKKyAgICAgICAgaW50IG1fcHJldmlvdXNDRV87CisgICAgICAgIGludCBtX3ByZXZpb3VzQ29udENFXzsKKyAgICAgICAgaW50IG1fcG9zX1tdID0gbmV3IGludFtDb2xsYXRvci5JREVOVElDQUwgKyAxXTsKKyAgICAgICAgaW50IG1fZ2Fwc0xvX1tdID0gbmV3IGludFszICogKENvbGxhdG9yLlRFUlRJQVJZICsgMSldOworICAgICAgICBpbnQgbV9nYXBzSGlfW10gPSBuZXcgaW50WzMgKiAoQ29sbGF0b3IuVEVSVElBUlkgKyAxKV07CisgICAgICAgIGludCBtX251bVN0cl9bXSA9IG5ldyBpbnRbMyAqIChDb2xsYXRvci5URVJUSUFSWSArIDEpXTsKKyAgICAgICAgVG9rZW4gbV9mU3RyVG9rZW5fW10gPSBuZXcgVG9rZW5bQ29sbGF0b3IuVEVSVElBUlkgKyAxXTsKKyAgICAgICAgVG9rZW4gbV9sU3RyVG9rZW5fW10gPSBuZXcgVG9rZW5bQ29sbGF0b3IuVEVSVElBUlkgKyAxXTsKKyAgICB9OworCisgICAgLyoqCisgICAgICogVG9rZW4gd3JhcHBlciBmb3IgY29sbGF0aW9uIHJ1bGVzCisgICAgICovCisgICAgc3RhdGljIGNsYXNzIFRva2VuCisgICAgeworICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICBpbnQgbV9DRV9bXTsKKyAgICAgICBpbnQgbV9DRUxlbmd0aF87CisgICAgICAgaW50IG1fZXhwQ0VfW107CisgICAgICAgaW50IG1fZXhwQ0VMZW5ndGhfOworICAgICAgIGludCBtX3NvdXJjZV87CisgICAgICAgaW50IG1fZXhwYW5zaW9uXzsKKyAgICAgICBpbnQgbV9wcmVmaXhfOworICAgICAgIGludCBtX3N0cmVuZ3RoXzsKKyAgICAgICBpbnQgbV90b0luc2VydF87CisgICAgICAgaW50IG1fcG9sYXJpdHlfOyAvLyAxIGZvciA8LCA8PCwgPDw8LCAsIDsgYW5kIDAgZm9yID4sID4+LCA+Pj4KKyAgICAgICBUb2tlbkxpc3RIZWFkZXIgbV9saXN0SGVhZGVyXzsKKyAgICAgICBUb2tlbiBtX3ByZXZpb3VzXzsKKyAgICAgICBUb2tlbiBtX25leHRfOworICAgICAgIFN0cmluZ0J1ZmZlciBtX3J1bGVzXzsKKyAgICAgICBjaGFyIG1fZmxhZ3NfOworCisgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIFRva2VuKCkKKyAgICAgICB7CisgICAgICAgICAgIG1fQ0VfID0gbmV3IGludFsxMjhdOworICAgICAgICAgICBtX2V4cENFXyA9IG5ldyBpbnRbMTI4XTsKKyAgICAgICAgICAgLy8gVE9ETzogdGhpcyBzaG91bGQgYWxzbyBoYW5kbGUgcmV2ZXJzZQorICAgICAgICAgICBtX3BvbGFyaXR5XyA9IFRPS0VOX1BPTEFSSVRZX1BPU0lUSVZFXzsKKyAgICAgICAgICAgbV9uZXh0XyA9IG51bGw7CisgICAgICAgICAgIG1fcHJldmlvdXNfID0gbnVsbDsKKyAgICAgICAgICAgbV9DRUxlbmd0aF8gPSAwOworICAgICAgICAgICBtX2V4cENFTGVuZ3RoXyA9IDA7CisgICAgICAgfQorCisgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgIC8qKgorICAgICAgICAqIEhhc2hjb2RlIGNhbGN1bGF0aW9uIGZvciB0b2tlbgorICAgICAgICAqIEByZXR1cm4gdGhlIGhhc2hjb2RlCisgICAgICAgICovCisgICAgICAgcHVibGljIGludCBoYXNoQ29kZSgpCisgICAgICAgeworICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgaW50IGxlbiA9IChtX3NvdXJjZV8gJiAweEZGMDAwMDAwKSA+Pj4gMjQ7CisgICAgICAgICAgIGludCBpbmMgPSAoKGxlbiAtIDMyKSAvIDMyKSArIDE7CisKKyAgICAgICAgICAgaW50IHN0YXJ0ID0gbV9zb3VyY2VfICYgMHgwMEZGRkZGRjsKKyAgICAgICAgICAgaW50IGxpbWl0ID0gc3RhcnQgKyBsZW47CisKKyAgICAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiAzNykgKyBtX3J1bGVzXy5jaGFyQXQoc3RhcnQpOworICAgICAgICAgICAgICAgc3RhcnQgKz0gaW5jOworICAgICAgICAgICB9CisgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogRXF1YWxzIGNhbGN1bGF0aW9uCisgICAgICAgICogQHBhcmFtIHRhcmdldCBvYmplY3QgdG8gY29tcGFyZQorICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0YXJnZXQgaXMgdGhlIHNhbWUgYXMgdGhpcyBvYmplY3QKKyAgICAgICAgKi8KKyAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRhcmdldCkKKyAgICAgICB7CisgICAgICAgICAgIGlmICh0YXJnZXQgPT0gdGhpcykgeworICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIFRva2VuKSB7CisgICAgICAgICAgICAgICBUb2tlbiB0ID0gKFRva2VuKXRhcmdldDsKKyAgICAgICAgICAgICAgIGludCBzc3RhcnQgPSBtX3NvdXJjZV8gJiAweDAwRkZGRkZGOworICAgICAgICAgICAgICAgaW50IHRzdGFydCA9IHQubV9zb3VyY2VfICYgMHgwMEZGRkZGRjsKKyAgICAgICAgICAgICAgIGludCBzbGltaXQgPSAobV9zb3VyY2VfICYgMHhGRjAwMDAwMCkgPj4gMjQ7CisgICAgICAgICAgICAgICBpbnQgdGxpbWl0ID0gKG1fc291cmNlXyAmIDB4RkYwMDAwMDApID4+IDI0OworCisgICAgICAgICAgICAgICBpbnQgZW5kID0gc3N0YXJ0ICsgc2xpbWl0IC0gMTsKKworICAgICAgICAgICAgICAgaWYgKG1fc291cmNlXyA9PSAwIHx8IHQubV9zb3VyY2VfID09IDApIHsKKyAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBpZiAoc2xpbWl0ICE9IHRsaW1pdCkgeworICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmIChtX3NvdXJjZV8gPT0gdC5tX3NvdXJjZV8pIHsKKyAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgd2hpbGUgKHNzdGFydCA8IGVuZAorICAgICAgICAgICAgICAgICAgICAgICYmIG1fcnVsZXNfLmNoYXJBdChzc3RhcnQpID09IHQubV9ydWxlc18uY2hhckF0KHRzdGFydCkpCisgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgKysgc3N0YXJ0OworICAgICAgICAgICAgICAgICAgICsrIHRzdGFydDsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGlmIChtX3J1bGVzXy5jaGFyQXQoc3N0YXJ0KSA9PSB0Lm1fcnVsZXNfLmNoYXJBdCh0c3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgIH0KKyAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfTsKKworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0b3IgdGhhdCB0aGUgdG9rZW4gaXMgcmVzZXR0ZWQgeWV0LCBpZSAmIGluIHRoZSBydWxlcworICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fUkVTRVRfID0gMHhERUFEQkVFRjsKKworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIG51bWJlciBvZiB0b2tlbnMKKyAgICAgKi8KKyAgICBpbnQgbV9yZXN1bHRMZW5ndGhfOworICAgIC8qKgorICAgICAqIExpc3Qgb2YgcGFyc2VkIHRva2VucworICAgICAqLworICAgIFRva2VuTGlzdEhlYWRlciBtX2xpc3RIZWFkZXJfW107CisgICAgLyoqCisgICAgICogVmFyaWFibGUgdG9wIHRva2VuCisgICAgICovCisgICAgVG9rZW4gbV92YXJpYWJsZVRvcF87CisgICAgLyoqCisgICAgICogQ29sbGF0aW9uIG9wdGlvbnMKKyAgICAgKi8KKyAgICBPcHRpb25TZXQgbV9vcHRpb25zXzsKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemVkIGNvbGxhdGlvbiBydWxlcyB3aXRoIHNvbWUgZXh0cmEgY2hhcmFjdGVycworICAgICAqLworICAgIFN0cmluZ0J1ZmZlciBtX3NvdXJjZV87CisgICAgLyoqCisgICAgICogSGFzaCB0YWJsZSB0byBrZWVwIGFsbCB0b2tlbnMKKyAgICAgKi8KKyAgICBIYXNodGFibGUgbV9oYXNoVGFibGVfOworCisgICAgLy8gcGFja2FnZSBwcml2YXRlIG1ldGhvZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHZvaWQgc2V0RGVmYXVsdE9wdGlvbnNJbkNvbGxhdG9yKFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yKQorICAgIHsKKyAgICAgICAgY29sbGF0b3IubV9kZWZhdWx0U3RyZW5ndGhfID0gbV9vcHRpb25zXy5tX3N0cmVuZ3RoXzsKKyAgICAgICAgY29sbGF0b3IubV9kZWZhdWx0RGVjb21wb3NpdGlvbl8gPSBtX29wdGlvbnNfLm1fZGVjb21wb3NpdGlvbl87CisgICAgICAgIGNvbGxhdG9yLm1fZGVmYXVsdElzRnJlbmNoQ29sbGF0aW9uXyA9IG1fb3B0aW9uc18ubV9pc0ZyZW5jaENvbGxhdGlvbl87CisgICAgICAgIGNvbGxhdG9yLm1fZGVmYXVsdElzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX29wdGlvbnNfLm1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfOworICAgICAgICBjb2xsYXRvci5tX2RlZmF1bHRJc0Nhc2VMZXZlbF8gPSBtX29wdGlvbnNfLm1faXNDYXNlTGV2ZWxfOworICAgICAgICBjb2xsYXRvci5tX2RlZmF1bHRDYXNlRmlyc3RfID0gbV9vcHRpb25zXy5tX2Nhc2VGaXJzdF87CisgICAgICAgIGNvbGxhdG9yLm1fZGVmYXVsdElzSGlyYWdhbmE0XyA9IG1fb3B0aW9uc18ubV9pc0hpcmFnYW5hNF87CisgICAgICAgIGNvbGxhdG9yLm1fZGVmYXVsdFZhcmlhYmxlVG9wVmFsdWVfID0gbV9vcHRpb25zXy5tX3ZhcmlhYmxlVG9wVmFsdWVfOworICAgIH0KKworICAgIC8vIHByaXZhdGUgaW5uZXIgY2xhc3NlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGEgdG9rZW4gdGhhdCBoYXMgYmVlbiBwYXJzZWQgYnV0IG5vdCB5ZXQgcHJvY2Vzc2VkLiBVc2VkIHRvCisgICAgICogcmVkdWNlIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIGluIHRoZSBwYXJzZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBQYXJzZWRUb2tlbgorICAgIHsKKyAgICAgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEVtcHR5IGNvbnN0cnVjdG9yCisgICAgICAgICAqLworICAgICAgICBQYXJzZWRUb2tlbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fY2hhcnNMZW5fID0gMDsKKyAgICAgICAgICAgIG1fY2hhcnNPZmZzZXRfID0gMDsKKyAgICAgICAgICAgIG1fZXh0ZW5zaW9uTGVuXyA9IDA7CisgICAgICAgICAgICBtX2V4dGVuc2lvbk9mZnNldF8gPSAwOworICAgICAgICAgICAgbV9wcmVmaXhMZW5fID0gMDsKKyAgICAgICAgICAgIG1fcHJlZml4T2Zmc2V0XyA9IDA7CisgICAgICAgICAgICBtX2ZsYWdzXyA9IDA7CisgICAgICAgICAgICBtX3N0cmVuZ3RoXyA9IFRPS0VOX1VOU0VUXzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIGludCBtX3N0cmVuZ3RoXzsKKyAgICAgICAgaW50IG1fY2hhcnNPZmZzZXRfOworICAgICAgICBpbnQgbV9jaGFyc0xlbl87CisgICAgICAgIGludCBtX2V4dGVuc2lvbk9mZnNldF87CisgICAgICAgIGludCBtX2V4dGVuc2lvbkxlbl87CisgICAgICAgIGludCBtX3ByZWZpeE9mZnNldF87CisgICAgICAgIGludCBtX3ByZWZpeExlbl87CisgICAgICAgIGNoYXIgbV9mbGFnc187CisgICAgICAgIGNoYXIgbV9pbmRpcmVjdEluZGV4XzsKKyAgICB9OworCisgICAgLyoqCisgICAgICogQm91bmRhcnkgd3JhcHBlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBJbmRpcmVjdEJvdW5kYXJpZXMKKyAgICB7CisgICAgICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBJbmRpcmVjdEJvdW5kYXJpZXMoaW50IHN0YXJ0Y2VbXSwgaW50IGxpbWl0Y2VbXSkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gU2V0IHZhbHVlcyBmb3IgdGhlIHRvcCAtIFRPRE86IG9uY2Ugd2UgaGF2ZSB2YWx1ZXMgZm9yIGFsbCB0aGUKKyAgICAgICAgICAgIC8vIGluZGlyZWN0cywgd2UgYXJlIGdvaW5nIHRvIGluaXRhbGl6ZSBoZXJlLgorICAgICAgICAgICAgbV9zdGFydENFXyA9IHN0YXJ0Y2VbMF07CisgICAgICAgICAgICBtX3N0YXJ0Q29udENFXyA9IHN0YXJ0Y2VbMV07CisgICAgICAgICAgICBpZiAobGltaXRjZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgbV9saW1pdENFXyA9IGxpbWl0Y2VbMF07CisgICAgICAgICAgICAgICAgbV9saW1pdENvbnRDRV8gPSBsaW1pdGNlWzFdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9saW1pdENFXyA9IDA7CisgICAgICAgICAgICAgICAgbV9saW1pdENvbnRDRV8gPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIGludCBtX3N0YXJ0Q0VfOworICAgICAgICBpbnQgbV9zdGFydENvbnRDRV87CisgICAgICAgIGludCBtX2xpbWl0Q0VfOworICAgICAgICBpbnQgbV9saW1pdENvbnRDRV87CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENvbGxhdGlvbiBvcHRpb24gcnVsZSB0YWcKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBUb2tlbk9wdGlvbgorICAgIHsKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIFRva2VuT3B0aW9uKFN0cmluZyBuYW1lLCBpbnQgYXR0cmlidXRlLCBTdHJpbmcgc3Vib3B0aW9uc1tdLAorICAgICAgICAgICAgICAgICAgICBpbnQgc3Vib3B0aW9uYXR0cmlidXRldmFsdWVbXSkKKyAgICAgICAgeworICAgICAgICAgICAgbV9uYW1lXyA9IG5hbWU7CisgICAgICAgICAgICBtX2F0dHJpYnV0ZV8gPSBhdHRyaWJ1dGU7CisgICAgICAgICAgICBtX3N1Yk9wdGlvbnNfID0gc3Vib3B0aW9uczsKKyAgICAgICAgICAgIG1fc3ViT3B0aW9uQXR0cmlidXRlVmFsdWVzXyA9IHN1Ym9wdGlvbmF0dHJpYnV0ZXZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gcGFja2FnZSBwcml2YXRlIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIHByaXZhdGUgU3RyaW5nIG1fbmFtZV87CisgICAgICAgIHByaXZhdGUgaW50IG1fYXR0cmlidXRlXzsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbV9zdWJPcHRpb25zX1tdOworICAgICAgICBwcml2YXRlIGludCBtX3N1Yk9wdGlvbkF0dHJpYnV0ZVZhbHVlc19bXTsKKyAgICB9OworCisgICAgLy8gcHJpdmF0ZSB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEN1cnJlbnQgcGFyc2VkIHRva2VuCisgICAgICovCisgICAgcHJpdmF0ZSBQYXJzZWRUb2tlbiBtX3BhcnNlZFRva2VuXzsKKyAgICAvKioKKyAgICAgKiBDb2xsYXRpb24gcnVsZQorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIG1fcnVsZXNfOworICAgIHByaXZhdGUgaW50IG1fY3VycmVudF87CisgICAgLyoqCisgICAgICogRW5kIG9mIHRoZSBvcHRpb24gd2hpbGUgcmVhZGluZy4KKyAgICAgKiBOZWVkIGl0IGZvciBVbmljb2RlU2V0IHJlYWRpbmcgc3VwcG9ydC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX29wdGlvbkVuZF87CisgICAgLyoqCisgICAgICogQ3VycmVudCBvZmZzZXQgaW4gbV9zb3VyY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3NvdXJjZUxpbWl0XzsKKyAgICAvKioKKyAgICAgKiBPZmZzZXQgdG8gbV9zb3VyY2VfIG9mciB0aGUgZXh0cmEgZXhwYW5zaW9uIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2V4dHJhQ3VycmVudF87CisKKyAgICAvKioKKyAgICAgKiBVbmljb2RlU2V0IHRoYXQgY29udGFpbnMgY29kZSBwb2ludHMgdG8gYmUgY29waWVkIGZyb20gdGhlIFVDQQorICAgICAqLworICAgIFVuaWNvZGVTZXQgbV9jb3B5U2V0XzsKKworICAgIC8qKgorICAgICAqIFVuaWNvZGVTZXQgdGhhdCBjb250YWlucyBjb2RlIHBvaW50cyBmb3Igd2hpY2ggd2Ugd2FudCB0byByZW1vdmUKKyAgICAgKiBVQ0EgY29udHJhY3Rpb25zLiBJdCBpbXBsaWVzIGNvcHlpbmcgb2YgdGhlc2UgY29kZSBwb2ludHMgZnJvbQorICAgICAqIHRoZSBVQ0EuCisgICAgICovCisgICAgVW5pY29kZVNldCBtX3JlbW92ZVNldF87CisgICAgLyoqCisgICAgICogVGhpcyBpcyBzcGFjZSBmb3IgdGhlIGV4dHJhIHN0cmluZ3MgdGhhdCBuZWVkIHRvIGJlIHVucXVvdGVkIGR1cmluZyB0aGUKKyAgICAgKiBwYXJzaW5nIG9mIHRoZSBydWxlcworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT0tFTl9FWFRSQV9SVUxFX1NQQUNFX1NJWkVfID0gMjA0ODsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0b3IgdGhhdCB0aGUgdG9rZW4gaXMgbm90IHNldCB5ZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fVU5TRVRfID0gMHhGRkZGRkZGRjsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0b3IgdGhhdCB0aGUgcnVsZSBpcyBpbiB0aGUgPiBwb2xhcml0eSwgaWUgZXZlcnl0aGluZyBvbiB0aGUKKyAgICAgKiByaWdodCBvZiB0aGUgcnVsZSBpcyBsZXNzIHRoYW4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fUE9MQVJJVFlfTkVHQVRJVkVfID0gMDsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0b3IgdGhhdCB0aGUgcnVsZSBpcyBpbiB0aGUgPCBwb2xhcml0eSwgaWUgZXZlcnl0aGluZyBvbiB0aGUKKyAgICAgKiByaWdodCBvZiB0aGUgcnVsZSBpcyBncmVhdGVyIHRoYW4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fUE9MQVJJVFlfUE9TSVRJVkVfID0gMTsKKyAgICAvKioKKyAgICAgKiBGbGFnIG1hc2sgdG8gZGV0ZXJtaW5lIGlmIHRvcCBpcyBzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fVE9QX01BU0tfID0gMHgwNDsKKyAgICAvKioKKyAgICAgKiBGbGFnIG1hc2sgdG8gZGV0ZXJtaW5lIGlmIHZhcmlhYmxlIHRvcCBpcyBzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fVkFSSUFCTEVfVE9QX01BU0tfID0gMHgwODsKKyAgICAvKioKKyAgICAgKiBGbGFnIG1hc2sgdG8gZGV0ZXJtaW5lIGlmIGEgYmVmb3JlIGF0dHJpYnV0ZSBpcyBzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fQkVGT1JFXyA9IDB4MDM7CisgICAgLyoqCisgICAgICogRm9yIHVzZSBpbiBwYXJzaW5nIHRva2VuIG9wdGlvbnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fU1VDQ0VTU19NQVNLXyA9IDB4MTA7CisKKyAgICAvKioKKyAgICAgKiBUaGVzZSB2YWx1ZXMgYXJlIHVzZWQgZm9yIGZpbmRpbmcgQ0UgdmFsdWVzIGZvciBpbmRpcmVjdCBwb3NpdGlvbmluZy4KKyAgICAgKiBJbmRpcmVjdCBwb3NpdGlvbmluZyBpcyBhIG1lY2hhbmlzbSBmb3IgYWxsb3dpbmcgcmVzZXRzIG9uIHN5bWJvbGljCisgICAgICogdmFsdWVzLiBJdCBvbmx5IHdvcmtzIGZvciByZXNldHMgYW5kIHlvdSBjYW5ub3QgdGFpbG9yIGluZGlyZWN0IG5hbWVzLgorICAgICAqIEFuIGluZGlyZWN0IG5hbWUgY2FuIGRlZmluZSBlaXRoZXIgYW4gYW5jaG9yIHBvaW50IG9yIGEgcmFuZ2UuIEFuIGFuY2hvcgorICAgICAqIHBvaW50IGJlaGF2ZXMgaW4gZXhhY3RseSB0aGUgc2FtZSB3YXkgYXMgYSBjb2RlIHBvaW50IGluIHJlc2V0IHdvdWxkLAorICAgICAqIGV4Y2VwdCB0aGF0IGl0IGNhbm5vdCBiZSB0YWlsb3JlZC4gQSByYW5nZSAod2UgY3VycmVudGx5IG9ubHkga25vdyBmb3IKKyAgICAgKiB0aGUgW3RvcF0gcmFuZ2Ugd2lsbCBleHBsaWNpdGx5IHNldCB0aGUgdXBwZXIgYm91bmQgZm9yIGdlbmVyYXRlZCBDRXMsCisgICAgICogdGh1cyBhbGxvd2luZyBmb3IgYmV0dGVyIGNvbnRyb2wgb3ZlciBob3cgbWFueSBDRXMgY2FuIGJlIHNxdWVlemVkCisgICAgICogYmV0d2VlbiBpbiB0aGUgcmFuZ2Ugd2l0aG91dCBwZXJmb3JtYW5jZSBwZW5hbHR5LiBJbiB0aGF0IHJlc3BlY3QsIHdlIHVzZQorICAgICAqIFt0b3BdIGZvciB0YWlsb3Jpbmcgb2YgbG9jYWxlcyB0aGF0IHVzZSBDSksgY2hhcmFjdGVycy4gT3RoZXIgaW5kaXJlY3QKKyAgICAgKiB2YWx1ZXMgYXJlIGN1cnJlbnRseSBhIHB1cmUgY29udmVuaWVuY2UsIHRoZXkgY2FuIGJlIHVzZWQgdG8gYXNzdXJlIHRoYXQKKyAgICAgKiB0aGUgQ0VzIHdpbGwgYmUgYWx3YXlzIHBvc2l0aW9uZWQgaW4gdGhlIHNhbWUgcGxhY2UgcmVsYXRpdmUgdG8gYSBwb2ludAorICAgICAqIHdpdGgga25vd24gcHJvcGVydGllcyAoZS5nLiBmaXJzdCBwcmltYXJ5IGlnbm9yYWJsZSkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSW5kaXJlY3RCb3VuZGFyaWVzIElORElSRUNUX0JPVU5EQVJJRVNfW107CisKKyAgICAvKioKKyAgICAgKiBJbnZlcnNlIFVDQSBjb25zdGFudHMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5WRVJTRV9TSVpFX01BU0tfID0gMHhGRkYwMDAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5WRVJTRV9PRkZTRVRfTUFTS18gPSAweDAwMEZGRkZGOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJTlZFUlNFX1NISUZUX1ZBTFVFXyA9IDIwOworCisgICAgLyoqCisgICAgICogQ29sbGF0aW9uIG9wdGlvbiB0YWdzCisgICAgICogW2xhc3QgdmFyaWFibGVdIGxhc3QgdmFyaWFibGUgdmFsdWUKKyAgICAgKiBbbGFzdCBwcmltYXJ5IGlnbm9yYWJsZV0gbGFyZ2VzdCBDRSBmb3IgcHJpbWFyeSBpZ25vcmFibGUKKyAgICAgKiBbbGFzdCBzZWNvbmRhcnkgaWdub3JhYmxlXSBsYXJnZXN0IENFIGZvciBzZWNvbmRhcnkgaWdub3JhYmxlCisgICAgICogW2xhc3QgdGVydGlhcnkgaWdub3JhYmxlXSBsYXJnZXN0IENFIGZvciB0ZXJ0aWFyeSBpZ25vcmFibGUKKyAgICAgKiBbdG9wXSBndWFyYW50ZWVkIHRvIGJlIGFib3ZlIGFsbCBpbXBsaWNpdCBDRXMsIGZvciBub3cgYW5kIGluIHRoZSBmdXR1cmUgKGluIDEuOCkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBUb2tlbk9wdGlvbiBSVUxFU19PUFRJT05TX1tdOworCisgICAgc3RhdGljCisgICAgeworICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTXyA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXNbMTVdOworICAgICAgICAvLyBVQ09MX1JFU0VUX1RPUF9WQUxVRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1swXSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5MQVNUX05PTl9WQVJJQUJMRV8sCisgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9JTVBMSUNJVF8pOworICAgICAgICAvLyBVQ09MX0ZJUlNUX1BSSU1BUllfSUdOT1JBQkxFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzFdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfUFJJTUFSWV9JR05PUkFCTEVfLAorICAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgLy8gVUNPTF9MQVNUX1BSSU1BUllfSUdOT1JBQkxFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzJdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uTEFTVF9QUklNQVJZX0lHTk9SQUJMRV8sCisgICAgICAgICAgICAgICAgICAgIG51bGwpOworCisgICAgICAgIC8vIFVDT0xfRklSU1RfU0VDT05EQVJZX0lHTk9SQUJMRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1szXSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfU0VDT05EQVJZX0lHTk9SQUJMRV8sCisgICAgICAgICAgICAgICAgICAgbnVsbCk7CisgICAgICAgIC8vIFVDT0xfTEFTVF9TRUNPTkRBUllfSUdOT1JBQkxFCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzRdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5MQVNUX1NFQ09OREFSWV9JR05PUkFCTEVfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0ZJUlNUX1RFUlRJQVJZX0lHTk9SQUJMRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1s1XSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfVEVSVElBUllfSUdOT1JBQkxFXywKKyAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgLy8gVUNPTF9MQVNUX1RFUlRJQVJZX0lHTk9SQUJMRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1s2XSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uTEFTVF9URVJUSUFSWV9JR05PUkFCTEVfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0ZJUlNUX1ZBUklBQkxFOworICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1s3XSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfVkFSSUFCTEVfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0xBU1RfVkFSSUFCTEUKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bOF0gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzKAorICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkxBU1RfVkFSSUFCTEVfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0ZJUlNUX05PTl9WQVJJQUJMRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1s5XSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfTk9OX1ZBUklBQkxFXywKKyAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgLy8gVUNPTF9MQVNUX05PTl9WQVJJQUJMRQorICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1sxMF0gPSBuZXcgSW5kaXJlY3RCb3VuZGFyaWVzKAorICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkxBU1RfTk9OX1ZBUklBQkxFXywKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9JTVBMSUNJVF8pOworICAgICAgICAvLyBVQ09MX0ZJUlNUX0lNUExJQ0lUCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzExXSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfSU1QTElDSVRfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0xBU1RfSU1QTElDSVQKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bMTJdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5MQVNUX0lNUExJQ0lUXywKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5GSVJTVF9UUkFJTElOR18pOworICAgICAgICAvLyBVQ09MX0ZJUlNUX1RSQUlMSU5HCisgICAgICAgIElORElSRUNUX0JPVU5EQVJJRVNfWzEzXSA9IG5ldyBJbmRpcmVjdEJvdW5kYXJpZXMoCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfVFJBSUxJTkdfLAorICAgICAgICAgICAgICAgICAgIG51bGwpOworICAgICAgICAvLyBVQ09MX0xBU1RfVFJBSUxJTkcKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bMTRdID0gbmV3IEluZGlyZWN0Qm91bmRhcmllcygKKyAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5MQVNUX1RSQUlMSU5HXywKKyAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICAgICAgSU5ESVJFQ1RfQk9VTkRBUklFU19bMTRdLm1fbGltaXRDRV8KKyAgICAgICAgICAgICAgICAgPSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5QUklNQVJZX1NQRUNJQUxfTUlOXyA8PCAyNDsKKworICAgICAgICBSVUxFU19PUFRJT05TXyA9IG5ldyBUb2tlbk9wdGlvblsxOV07CisgICAgICAgIFN0cmluZyBvcHRpb25bXSA9IHsibm9uLWlnbm9yYWJsZSIsICJzaGlmdGVkIn07CisgICAgICAgIGludCB2YWx1ZVtdID0ge1J1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk5PTl9JR05PUkFCTEVfLAorICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5TSElGVEVEX307CisgICAgICAgIFJVTEVTX09QVElPTlNfWzBdID0gbmV3IFRva2VuT3B0aW9uKCJhbHRlcm5hdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkFMVEVSTkFURV9IQU5ETElOR18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24sIHZhbHVlKTsKKyAgICAgICAgb3B0aW9uID0gbmV3IFN0cmluZ1sxXTsKKyAgICAgICAgb3B0aW9uWzBdID0gIjIiOworICAgICAgICB2YWx1ZSA9IG5ldyBpbnRbMV07CisgICAgICAgIHZhbHVlWzBdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fOworICAgICAgICBSVUxFU19PUFRJT05TX1sxXSA9IG5ldyBUb2tlbk9wdGlvbigiYmFja3dhcmRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5GUkVOQ0hfQ09MTEFUSU9OXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiwgdmFsdWUpOworICAgICAgICBTdHJpbmcgb2Zmb25vcHRpb25bXSA9IG5ldyBTdHJpbmdbMl07CisgICAgICAgIG9mZm9ub3B0aW9uWzBdID0gIm9mZiI7CisgICAgICAgIG9mZm9ub3B0aW9uWzFdID0gIm9uIjsKKyAgICAgICAgaW50IG9mZm9udmFsdWVbXSA9IG5ldyBpbnRbMl07CisgICAgICAgIG9mZm9udmFsdWVbMF0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PRkZfOworICAgICAgICBvZmZvbnZhbHVlWzFdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fOworICAgICAgICBSVUxFU19PUFRJT05TX1syXSA9IG5ldyBUb2tlbk9wdGlvbigiY2FzZUxldmVsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5DQVNFX0xFVkVMXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZm9ub3B0aW9uLCBvZmZvbnZhbHVlKTsKKyAgICAgICAgb3B0aW9uID0gbmV3IFN0cmluZ1szXTsKKyAgICAgICAgb3B0aW9uWzBdID0gImxvd2VyIjsKKyAgICAgICAgb3B0aW9uWzFdID0gInVwcGVyIjsKKyAgICAgICAgb3B0aW9uWzJdID0gIm9mZiI7CisgICAgICAgIHZhbHVlID0gbmV3IGludFszXTsKKyAgICAgICAgdmFsdWVbMF0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5MT1dFUl9GSVJTVF87CisgICAgICAgIHZhbHVlWzFdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuVVBQRVJfRklSU1RfOworICAgICAgICB2YWx1ZVsyXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9GRl87CisgICAgICAgIFJVTEVTX09QVElPTlNfWzNdID0gbmV3IFRva2VuT3B0aW9uKCJjYXNlRmlyc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkNBU0VfRklSU1RfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLCB2YWx1ZSk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzRdID0gbmV3IFRva2VuT3B0aW9uKCJub3JtYWxpemF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTk9STUFMSVpBVElPTl9NT0RFXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZvbm9wdGlvbiwgb2Zmb252YWx1ZSk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzVdID0gbmV3IFRva2VuT3B0aW9uKCJoaXJhZ2FuYVEiLAorICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5ISVJBR0FOQV9RVUFURVJOQVJZX01PREVfLAorICAgICAgICAgICAgICAgICAgICAgICAgIG9mZm9ub3B0aW9uLCBvZmZvbnZhbHVlKTsKKyAgICAgICAgb3B0aW9uID0gbmV3IFN0cmluZ1s1XTsKKyAgICAgICAgb3B0aW9uWzBdID0gIjEiOworICAgICAgICBvcHRpb25bMV0gPSAiMiI7CisgICAgICAgIG9wdGlvblsyXSA9ICIzIjsKKyAgICAgICAgb3B0aW9uWzNdID0gIjQiOworICAgICAgICBvcHRpb25bNF0gPSAiSSI7CisgICAgICAgIHZhbHVlID0gbmV3IGludFs1XTsKKyAgICAgICAgdmFsdWVbMF0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5QUklNQVJZXzsKKyAgICAgICAgdmFsdWVbMV0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5TRUNPTkRBUllfOworICAgICAgICB2YWx1ZVsyXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlRFUlRJQVJZXzsKKyAgICAgICAgdmFsdWVbM10gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5RVUFURVJOQVJZXzsKKyAgICAgICAgdmFsdWVbNF0gPSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5JREVOVElDQUxfOworICAgICAgICBSVUxFU19PUFRJT05TX1s2XSA9IG5ldyBUb2tlbk9wdGlvbigic3RyZW5ndGgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuU1RSRU5HVEhfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24sIHZhbHVlKTsKKyAgICAgICAgUlVMRVNfT1BUSU9OU19bN10gPSBuZXcgVG9rZW5PcHRpb24oInZhcmlhYmxlIHRvcCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkxJTUlUXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsKTsKKyAgICAgICAgUlVMRVNfT1BUSU9OU19bOF0gPSBuZXcgVG9rZW5PcHRpb24oInJlYXJyYW5nZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkxJTUlUXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsKTsKKyAgICAgICAgb3B0aW9uID0gbmV3IFN0cmluZ1szXTsKKyAgICAgICAgb3B0aW9uWzBdID0gIjEiOworICAgICAgICBvcHRpb25bMV0gPSAiMiI7CisgICAgICAgIG9wdGlvblsyXSA9ICIzIjsKKyAgICAgICAgdmFsdWUgPSBuZXcgaW50WzNdOworICAgICAgICB2YWx1ZVswXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlBSSU1BUllfOworICAgICAgICB2YWx1ZVsxXSA9IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlNFQ09OREFSWV87CisgICAgICAgIHZhbHVlWzJdID0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuVEVSVElBUllfOworICAgICAgICBSVUxFU19PUFRJT05TX1s5XSA9IG5ldyBUb2tlbk9wdGlvbigiYmVmb3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiwgdmFsdWUpOworICAgICAgICBSVUxFU19PUFRJT05TX1sxMF0gPSBuZXcgVG9rZW5PcHRpb24oInRvcCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkxJTUlUXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsKTsKKyAgICAgICAgU3RyaW5nIGZpcnN0bGFzdG9wdGlvbltdID0gbmV3IFN0cmluZ1s3XTsKKyAgICAgICAgZmlyc3RsYXN0b3B0aW9uWzBdID0gInByaW1hcnkiOworICAgICAgICBmaXJzdGxhc3RvcHRpb25bMV0gPSAic2Vjb25kYXJ5IjsKKyAgICAgICAgZmlyc3RsYXN0b3B0aW9uWzJdID0gInRlcnRpYXJ5IjsKKyAgICAgICAgZmlyc3RsYXN0b3B0aW9uWzNdID0gInZhcmlhYmxlIjsKKyAgICAgICAgZmlyc3RsYXN0b3B0aW9uWzRdID0gInJlZ3VsYXIiOworICAgICAgICBmaXJzdGxhc3RvcHRpb25bNV0gPSAiaW1wbGljaXQiOworICAgICAgICBmaXJzdGxhc3RvcHRpb25bNl0gPSAidHJhaWxpbmciOworCisgICAgICAgIGludCBmaXJzdGxhc3R2YWx1ZVtdID0gbmV3IGludFs3XTsKKyAgICAgICAgQXJyYXlzLmZpbGwoZmlyc3RsYXN0dmFsdWUsIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlBSSU1BUllfKTsKKworICAgICAgICBSVUxFU19PUFRJT05TX1sxMV0gPSBuZXcgVG9rZW5PcHRpb24oImZpcnN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0bGFzdG9wdGlvbiwgZmlyc3RsYXN0dmFsdWUpOworICAgICAgICBSVUxFU19PUFRJT05TX1sxMl0gPSBuZXcgVG9rZW5PcHRpb24oImxhc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RsYXN0b3B0aW9uLCBmaXJzdGxhc3R2YWx1ZSk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzEzXSA9IG5ldyBUb2tlbk9wdGlvbigib3B0aW1pemUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzE0XSA9IG5ldyBUb2tlbk9wdGlvbigic3VwcHJlc3NDb250cmFjdGlvbnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCk7CisgICAgICAgIFJVTEVTX09QVElPTlNfWzE1XSA9IG5ldyBUb2tlbk9wdGlvbigidW5kZWZpbmVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwpOworICAgICAgICBSVUxFU19PUFRJT05TX1sxNl0gPSBuZXcgVG9rZW5PcHRpb24oInNjcmlwdE9yZGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwpOworICAgICAgICBSVUxFU19PUFRJT05TX1sxN10gPSBuZXcgVG9rZW5PcHRpb24oImNoYXJzZXRuYW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuTElNSVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwpOworICAgICAgICBSVUxFU19PUFRJT05TX1sxOF0gPSBuZXcgVG9rZW5PcHRpb24oImNoYXJzZXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5MSU1JVF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCk7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFV0aWxpdHkgZGF0YSBtZW1iZXJzCisgICAgICovCisgICAgcHJpdmF0ZSBUb2tlbiBtX3V0aWxUb2tlbl8gPSBuZXcgVG9rZW4oKTsKKyAgICBwcml2YXRlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBtX1VDQUNvbEVJdGVyXworICAgICAgICAgICAgICAgICAgICAgID0gUnVsZUJhc2VkQ29sbGF0b3IuVUNBXy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoIiIpOworICAgIHByaXZhdGUgaW50IG1fdXRpbENFQnVmZmVyX1tdID0gbmV3IGludFsyXTsKKworICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBc3NlbWJsZXMgdGhlIHRva2VuIGxpc3QKKyAgICAgKiBAcGFyYW0KKyAgICAgKiBAZXhjZXB0aW9uIFBhcnNlRXhjZXB0aW9uIHRocm93biB3aGVuIHJ1bGVzIHN5bnRheCBmYWlscworICAgICAqLworICAgIGludCBhc3NlbWJsZVRva2VuTGlzdCgpIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgVG9rZW4gbGFzdFRva2VuID0gbnVsbDsKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9zdHJlbmd0aF8gPSBUT0tFTl9VTlNFVF87CisgICAgICAgIGludCBzb3VyY2VsaW1pdCA9IG1fc291cmNlXy5sZW5ndGgoKTsKKyAgICAgICAgaW50IGV4cGFuZE5leHQgPSAwOworCisgICAgICAgIHdoaWxlIChtX2N1cnJlbnRfIDwgc291cmNlbGltaXQpIHsKKyAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fcHJlZml4T2Zmc2V0XyA9IDA7CisgICAgICAgICAgICBpZiAocGFyc2VOZXh0VG9rZW4obGFzdFRva2VuID09IG51bGwpIDwgMCkgeworICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyIHNwZWNzID0gbV9wYXJzZWRUb2tlbl8ubV9mbGFnc187CisgICAgICAgICAgICBib29sZWFuIHZhcmlhYmxlVG9wID0gKChzcGVjcyAmIFRPS0VOX1ZBUklBQkxFX1RPUF9NQVNLXykgIT0gMCk7CisgICAgICAgICAgICBib29sZWFuIHRvcCA9ICgoc3BlY3MgJiBUT0tFTl9UT1BfTUFTS18pICE9IDApOworICAgICAgICAgICAgaW50IGxhc3RTdHJlbmd0aCA9IFRPS0VOX1VOU0VUXzsKKyAgICAgICAgICAgIGlmIChsYXN0VG9rZW4gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxhc3RTdHJlbmd0aCA9IGxhc3RUb2tlbi5tX3N0cmVuZ3RoXzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fdXRpbFRva2VuXy5tX3NvdXJjZV8gPSBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA8PCAyNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XzsKKyAgICAgICAgICAgIG1fdXRpbFRva2VuXy5tX3J1bGVzXyA9IG1fc291cmNlXzsKKyAgICAgICAgICAgIC8vIDQgTG9va3VwIGVhY2ggc291cmNlIGluIHRoZSBDaGFyc1RvVG9rZW4gbWFwLCBhbmQgZmluZCBhCisgICAgICAgICAgICAvLyBzb3VyY2V0b2tlbgorICAgICAgICAgICAgVG9rZW4gc291cmNlVG9rZW4gPSAoVG9rZW4pbV9oYXNoVGFibGVfLmdldChtX3V0aWxUb2tlbl8pOworICAgICAgICAgICAgaWYgKG1fcGFyc2VkVG9rZW5fLm1fc3RyZW5ndGhfICE9IFRPS0VOX1JFU0VUXykgeworICAgICAgICAgICAgICAgIGlmIChsYXN0VG9rZW4gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIG1lYW5zIHRoYXQgcnVsZXMgaGF2ZW4ndCBzdGFydGVkIHByb3Blcmx5CisgICAgICAgICAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9zb3VyY2VfLnRvU3RyaW5nKCksIDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyAgNiBPdGhlcndpc2UgKHdoZW4gcmVsYXRpb24gIT0gcmVzZXQpCisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgc291cmNlVG9rZW4gaXMgbnVsbCwgY3JlYXRlIG5ldyBvbmUKKyAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4gPSBuZXcgVG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fcnVsZXNfID0gbV9zb3VyY2VfOworICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3NvdXJjZV8gPSBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA8PCAyNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF87CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fcHJlZml4XyA9IG1fcGFyc2VkVG9rZW5fLm1fcHJlZml4TGVuXyA8PCAyNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9wcmVmaXhPZmZzZXRfOworICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiB0aGlzIHNob3VsZCBhbHNvIGhhbmRsZSByZXZlcnNlCisgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fcG9sYXJpdHlfID0gVE9LRU5fUE9MQVJJVFlfUE9TSVRJVkVfOworICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX25leHRfID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fcHJldmlvdXNfID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9DRUxlbmd0aF8gPSAwOworICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2V4cENFTGVuZ3RoXyA9IDA7CisgICAgICAgICAgICAgICAgICAgIG1faGFzaFRhYmxlXy5wdXQoc291cmNlVG9rZW4sIHNvdXJjZVRva2VuKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGNvdWxkIGhhdmUgZmlzaGVkIG91dCBhIHJlc2V0IGhlcmUKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfICE9IFRPS0VOX1JFU0VUXworICAgICAgICAgICAgICAgICAgICAgICAgJiYgbGFzdFRva2VuICE9IHNvdXJjZVRva2VuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UgcmVtb3ZlIHNvdXJjZVRva2VuIGZyb20gd2hlcmUgaXQgd2FzLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuLm1fbmV4dF8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbi5tX25leHRfLm1fc3RyZW5ndGhfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+IHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbmV4dF8ubV9zdHJlbmd0aF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc291cmNlVG9rZW4ubV9zdHJlbmd0aF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbmV4dF8ubV9wcmV2aW91c18KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHNvdXJjZVRva2VuLm1fcHJldmlvdXNfOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2xhc3RfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmV2aW91c18ubV9uZXh0XworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHNvdXJjZVRva2VuLm1fbmV4dF87CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc291cmNlVG9rZW4ubV9uZXh0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbmV4dF8gPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmV2aW91c18gPSBudWxsOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfID0gbV9wYXJzZWRUb2tlbl8ubV9zdHJlbmd0aF87CisgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXyA9IGxhc3RUb2tlbi5tX2xpc3RIZWFkZXJfOworCisgICAgICAgICAgICAgICAgLy8gMS4gIEZpbmQgdGhlIHN0cm9uZ2VzdCBzdHJlbmd0aCBpbiBlYWNoIGxpc3QsIGFuZCBzZXQKKyAgICAgICAgICAgICAgICAvLyBzdHJvbmdlc3RQIGFuZCBzdHJvbmdlc3ROIGFjY29yZGluZ2x5IGluIHRoZSBoZWFkZXJzLgorICAgICAgICAgICAgICAgIGlmIChsYXN0U3RyZW5ndGggPT0gVE9LRU5fUkVTRVRfCisgICAgICAgICAgICAgICAgICAgIHx8IHNvdXJjZVRva2VuLm1fbGlzdEhlYWRlcl8ubV9maXJzdF8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiBMQVNUIGlzIGEgcmVzZXQgaW5zZXJ0IHNvdXJjZVRva2VuIGluIHRoZSBsaXN0LgorICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2ZpcnN0XyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfID0gc291cmNlVG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fbGFzdF8gPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsgLy8gd2UgbmVlZCB0byBmaW5kIGEgcGxhY2UgZm9yIHVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgd2UnbGwgZ2V0IGluIGZyb250IG9mIHRoZSBzYW1lIHN0cmVuZ3RoCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2ZpcnN0Xy5tX3N0cmVuZ3RoXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw9IHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9uZXh0XworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbmV4dF8ubV9wcmV2aW91c18gPSBzb3VyY2VUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfID0gc291cmNlVG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9wcmV2aW91c18gPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFRva2VuID0gc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2ZpcnN0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobGFzdFRva2VuLm1fbmV4dF8gIT0gbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBsYXN0VG9rZW4ubV9uZXh0Xy5tX3N0cmVuZ3RoXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4gc291cmNlVG9rZW4ubV9zdHJlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFRva2VuID0gbGFzdFRva2VuLm1fbmV4dF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0VG9rZW4ubV9uZXh0XyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RUb2tlbi5tX25leHRfLm1fcHJldmlvdXNfID0gc291cmNlVG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fbGFzdF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc291cmNlVG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fcHJldmlvdXNfID0gbGFzdFRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbmV4dF8gPSBsYXN0VG9rZW4ubV9uZXh0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VG9rZW4ubV9uZXh0XyA9IHNvdXJjZVRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UgKHdoZW4gTEFTVCBpcyBub3QgYSByZXNldCkKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgcG9sYXJpdHkgKExBU1QpID09IHBvbGFyaXR5KHJlbGF0aW9uKSwgaW5zZXJ0CisgICAgICAgICAgICAgICAgICAgIC8vIHNvdXJjZVRva2VuIGFmdGVyIExBU1QsIG90aGVyd2lzZSBpbnNlcnQgYmVmb3JlLgorICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIGluc2VydGluZyBhZnRlciBvciBiZWZvcmUsIHNlYXJjaCB0byB0aGUgbmV4dAorICAgICAgICAgICAgICAgICAgICAvLyBwb3NpdGlvbiB3aXRoIHRoZSBzYW1lIHN0cmVuZ3RoIGluIHRoYXQgZGlyZWN0aW9uLgorICAgICAgICAgICAgICAgICAgICAvLyAoVGhpcyBpcyBjYWxsZWQgcG9zdHBvbmUgaW5zZXJ0aW9uKS4KKyAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZVRva2VuICE9IGxhc3RUb2tlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RUb2tlbi5tX3BvbGFyaXR5XyA9PSBzb3VyY2VUb2tlbi5tX3BvbGFyaXR5XykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChsYXN0VG9rZW4ubV9uZXh0XyAhPSBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGxhc3RUb2tlbi5tX25leHRfLm1fc3RyZW5ndGhfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+IHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RUb2tlbiA9IGxhc3RUb2tlbi5tX25leHRfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXyA9IGxhc3RUb2tlbjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFzdFRva2VuLm1fbmV4dF8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VG9rZW4ubV9uZXh0Xy5tX3ByZXZpb3VzXyA9IHNvdXJjZVRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9saXN0SGVhZGVyXy5tX2xhc3RfID0gc291cmNlVG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbmV4dF8gPSBsYXN0VG9rZW4ubV9uZXh0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VG9rZW4ubV9uZXh0XyA9IHNvdXJjZVRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGxhc3RUb2tlbi5tX3ByZXZpb3VzXyAhPSBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGxhc3RUb2tlbi5tX3ByZXZpb3VzXy5tX3N0cmVuZ3RoXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPiBzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VG9rZW4gPSBsYXN0VG9rZW4ubV9wcmV2aW91c187CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fbmV4dF8gPSBsYXN0VG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RUb2tlbi5tX3ByZXZpb3VzXyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RUb2tlbi5tX3ByZXZpb3VzXy5tX25leHRfID0gc291cmNlVG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fZmlyc3RfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gc291cmNlVG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuLm1fcHJldmlvdXNfID0gbGFzdFRva2VuLm1fcHJldmlvdXNfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RUb2tlbi5tX3ByZXZpb3VzXyA9IHNvdXJjZVRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAvLyByZXBlYXRlZCBvbmUgdGhpbmcgdHdpY2UgaW4gcnVsZXMsIHN0YXkgd2l0aCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0cm9uZ2VyIHN0cmVuZ3RoCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFzdFN0cmVuZ3RoIDwgc291cmNlVG9rZW4ubV9zdHJlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXyA9IGxhc3RTdHJlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBpZiB0aGUgdG9rZW4gd2FzIGEgdmFyaWFibGUgdG9wLCB3ZSdyZSBnb25uYSBwdXQgaXQgaW4KKyAgICAgICAgICAgICAgICBpZiAodmFyaWFibGVUb3AgPT0gdHJ1ZSAmJiBtX3ZhcmlhYmxlVG9wXyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlVG9wID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIG1fdmFyaWFibGVUb3BfID0gc291cmNlVG9rZW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIFRyZWF0IHRoZSBleHBhbnNpb25zLgorICAgICAgICAgICAgICAgIC8vIFRoZXJlIGFyZSB0d28gdHlwZXMgb2YgZXhwYW5zaW9uczogZXhwbGljaXQgKHggLyB5KSBhbmQKKyAgICAgICAgICAgICAgICAvLyByZXNldCBiYXNlZCBwcm9wYWdhdGluZyBleHBhbnNpb25zCisgICAgICAgICAgICAgICAgLy8gKCZhYmMgKiBkICogZSA8PT4gJmFiICogZCAvIGMgKiBlIC8gYykKKyAgICAgICAgICAgICAgICAvLyBpZiBib3RoIG9mIHRoZW0gYXJlIGluIGVmZmVjdCBmb3IgYSB0b2tlbiwgdGhleSBhcmUgY29tYmluZWQuCisgICAgICAgICAgICAgICBzb3VyY2VUb2tlbi5tX2V4cGFuc2lvbl8gPSBtX3BhcnNlZFRva2VuXy5tX2V4dGVuc2lvbkxlbl8gPDwgMjQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25PZmZzZXRfOworICAgICAgICAgICAgICAgaWYgKGV4cGFuZE5leHQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXyA9PSBSdWxlQmFzZWRDb2xsYXRvci5QUklNQVJZKSB7CisgICAgICAgICAgICAgICAgICAgICAgIC8vIHByaW1hcnkgc3RyZW5ndGgga2lsbHMgb2ZmIHRoZSBpbXBsaWNpdCBleHBhbnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kTmV4dCA9IDA7CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNvdXJjZVRva2VuLm1fZXhwYW5zaW9uXyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIG5vIGV4cGFuc2lvbiwgaW1wbGljaXQgaXMganVzdCBhZGRlZCB0bworICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgdG9rZW4KKyAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9leHBhbnNpb25fID0gZXhwYW5kTmV4dDsKKyAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZXJlIGlzIGJvdGggZXhwbGljaXQgYW5kIGltcGxpY2l0IGV4cGFuc2lvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBtYWtlIGEgY29tYmluYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gZXhwYW5kTmV4dCAmIDB4RkZGRkZGOworICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSA9IGV4cGFuZE5leHQgPj4+IDI0OworICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2l6ZSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZChtX3NvdXJjZV8uc3Vic3RyaW5nKHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKyBzaXplKSk7CisgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBtX3BhcnNlZFRva2VuXy5tX2V4dGVuc2lvbk9mZnNldF87CisgICAgICAgICAgICAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQobV9zb3VyY2VfLnN1YnN0cmluZyhzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKyBtX3BhcnNlZFRva2VuXy5tX2V4dGVuc2lvbkxlbl8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4ubV9leHBhbnNpb25fID0gKHNpemUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25MZW5fKSA8PCAyNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX2V4dHJhQ3VycmVudF87CisgICAgICAgICAgICAgICAgICAgICAgIG1fZXh0cmFDdXJyZW50XyArPSBzaXplICsgbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25MZW5fOworICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAvLyBpZiB0aGUgcHJldmlvdXMgdG9rZW4gd2FzIGEgcmVzZXQgYmVmb3JlLCB0aGUgc3RyZW5ndGggb2YgdGhpcworICAgICAgICAgICAgICAgLy8gdG9rZW4gbXVzdCBtYXRjaCB0aGUgc3RyZW5ndGggb2YgYmVmb3JlLiBPdGhlcndpc2Ugd2UgaGF2ZSBhbgorICAgICAgICAgICAgICAgLy8gdW5kZWZpbmVkIHNpdHVhdGlvbi4KKyAgICAgICAgICAgICAgIC8vIEluIG90aGVyIHdvcmRzLCB3ZSBjdXJyZW50bHkgaGF2ZSBhIGNsdWRnZSB3aGljaCB3ZSB1c2UgdG8KKyAgICAgICAgICAgICAgIC8vIHJlcHJlc2VudCAmYSA+PiB4LiBUaGlzIGlzIHdyaXR0ZW4gYXMgJltiZWZvcmUgMl1hIDw8IHguCisgICAgICAgICAgICAgICBpZigobGFzdFRva2VuLm1fZmxhZ3NfICYgVE9LRU5fQkVGT1JFXykgIT0gMCkgeworICAgICAgICAgICAgICAgICAgIGludCBiZWZvcmVTdHJlbmd0aCA9IChsYXN0VG9rZW4ubV9mbGFnc18gJiBUT0tFTl9CRUZPUkVfKSAtIDE7CisgICAgICAgICAgICAgICAgICAgaWYoYmVmb3JlU3RyZW5ndGggIT0gc291cmNlVG9rZW4ubV9zdHJlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3NvdXJjZV8udG9TdHJpbmcoKSwgbV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAobGFzdFRva2VuICE9IG51bGwgJiYgbGFzdFN0cmVuZ3RoID09IFRPS0VOX1JFU0VUXykgeworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgcHJldmlvdXMgdG9rZW4gd2FzIGFsc28gYSByZXNldCwgdGhpcyBtZWFucyB0aGF0CisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgdHdvIGNvbnNlY3V0aXZlIHJlc2V0cyBhbmQgd2Ugd2FudCB0byByZW1vdmUgdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIHByZXZpb3VzIG9uZSBpZiBlbXB0eQorICAgICAgICAgICAgICAgICAgICBpZiAobV9yZXN1bHRMZW5ndGhfID4gMCAmJiBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoXyAtIDFdLm1fZmlyc3RfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcmVzdWx0TGVuZ3RoXyAtLTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGEgcmVzZXQsIGJ1dCBpdCBtaWdodCBzdGlsbCBiZSBzb21ld2hlcmUgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIHRhaWxvcmluZywgaW4gc2hvcnRlciBmb3JtCisgICAgICAgICAgICAgICAgICAgIGludCBzZWFyY2hDaGFyc0xlbiA9IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc2VhcmNoQ2hhcnNMZW4gPiAxICYmIHNvdXJjZVRva2VuID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaENoYXJzTGVuIC0tOworICAgICAgICAgICAgICAgICAgICAgICAgLy8ga2V5ID0gc2VhcmNoQ2hhcnNMZW4gPDwgMjQgfCBjaGFyc09mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFRva2VuXy5tX3NvdXJjZV8gPSBzZWFyY2hDaGFyc0xlbiA8PCAyNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbFRva2VuXy5tX3J1bGVzXyA9IG1fc291cmNlXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuID0gKFRva2VuKW1faGFzaFRhYmxlXy5nZXQobV91dGlsVG9rZW5fKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kTmV4dCA9IChtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBzZWFyY2hDaGFyc0xlbikgPDwgMjQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IChtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2VhcmNoQ2hhcnNMZW4pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgoc3BlY3MgJiBUT0tFTl9CRUZPUkVfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0b3AgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlJ3JlIGRvaW5nIGJlZm9yZSAmIHRoZXJlIGlzIG5vIGluZGlyZWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RyZW5ndGggPSAoc3BlY3MgJiBUT0tFTl9CRUZPUkVfKSAtIDE7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4gIT0gbnVsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHNvdXJjZVRva2VuLm1fc3RyZW5ndGhfICE9IFRPS0VOX1JFU0VUXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBiZWZvcmUgdGhhdCBpcyBhbHJlYWR5IG9yZGVyZWQgaW4gdGhlIFVDQQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0gc28gd2UgbmVlZCB0byBnZXQgdGhlIHByZXZpb3VzIHdpdGggZ29vZCBzdHJlbmd0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXyA+IHN0cmVuZ3RoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHNvdXJjZVRva2VuLm1fcHJldmlvdXNfICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4gPSBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGVyZSwgZWl0aGVyIHdlIGhpdCB0aGUgc3RyZW5ndGggb3IgTlVMTAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbi5tX3N0cmVuZ3RoXyA9PSBzdHJlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlVG9rZW4ubV9wcmV2aW91c18gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4gPSBzb3VyY2VUb2tlbi5tX3ByZXZpb3VzXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgLy8gc3RhcnQgb2YgbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fcmVzZXRfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAvLyB3ZSBoaXQgTlVMTCwgd2Ugc2hvdWxkIGJlIGRvaW5nIHRoZSBlbHNlIHBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2VUb2tlbi5tX2xpc3RIZWFkZXJfLm1fcmVzZXRfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbiA9IGdldFZpcmdpbkJlZm9yZShzb3VyY2VUb2tlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVRva2VuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZ2V0VmlyZ2luQmVmb3JlKHNvdXJjZVRva2VuLCBzdHJlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIGJvdGggYmVmb3JlIGFuZCBpbmRpcmVjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgdG9wID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10gPSBuZXcgVG9rZW5MaXN0SGVhZGVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NFXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NvbnRDRV8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1faW5kaXJlY3RfID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gZG8gc2xpZ2h0bHkgbW9yZSB3b3JrLiB3ZSBuZWVkIHRvIGdldCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJhc2VDRSB1c2luZyB0aGUgaW52ZXJzZSBVQ0EgJiBnZXRQcmV2aW91cy4gVGhlIG5leHQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJvdW5kIGlzIG5vdCBzZXQsIGFuZCB3aWxsIGJlIGRlY2lkZWQgaW4gdWNvbF9ibGQKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdHJlbmd0aCA9IChzcGVjcyAmIFRPS0VOX0JFRk9SRV8pIC0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBiYXNlQ0UgPSBJTkRJUkVDVF9CT1VOREFSSUVTX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4X10ubV9zdGFydENFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBiYXNlQ29udENFID0gSU5ESVJFQ1RfQk9VTkRBUklFU19bCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4X10ubV9zdGFydENvbnRDRV87CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2VbXSA9IG5ldyBpbnRbMl07CisgICAgICAgICAgICAgICAgICAgICAgICBpZigoYmFzZUNFID4+PiAyNCA+PSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5QUklNQVJZX0lNUExJQ0lUX01JTl8pCisgICAgICAgICAgICAgICAgICAgICAgICAmJiAoYmFzZUNFID4+PiAyNCA8PSAgUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uUFJJTUFSWV9JTVBMSUNJVF9NQVhfKSkgeyAvKiBpbXBsaWNpdHMgLSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcmltYXJ5ID0gYmFzZUNFICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXyB8IChiYXNlQ29udENFICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXykgPj4gMTY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJhdyA9IFJ1bGVCYXNlZENvbGxhdG9yLmltcENFR2VuXy5nZXRSYXdGcm9tSW1wbGljaXQocHJpbWFyeSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByaW1hcnlDRSA9IFJ1bGVCYXNlZENvbGxhdG9yLmltcENFR2VuXy5nZXRJbXBsaWNpdEZyb21SYXcocmF3LTEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlWzBdID0gcHJpbWFyeUNFICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXyB8IDB4MDUwNTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZVsxXSA9IChwcmltYXJ5Q0UgPDwgMTYpICYgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXyB8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX0NPTlRJTlVBVElPTl9NQVJLRVJfOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5JbnZlcnNlVUNBIGludnVjYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IENvbGxhdGlvblBhcnNlZFJ1bGVCdWlsZGVyLklOVkVSU0VfVUNBXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZ1Y2EuZ2V0SW52ZXJzZVByZXZDRShiYXNlQ0UsIGJhc2VDb250Q0UsIHN0cmVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2UpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNFXyA9IGNlWzBdOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNvbnRDRV8gPSBjZVsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX25leHRDRV8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbmV4dENvbnRDRV8gPSAwOworCisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbiA9IG5ldyBUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kTmV4dCA9IGluaXRBUmVzZXQoMCwgc291cmNlVG9rZW4pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIDUgSWYgdGhlIHJlbGF0aW9uIGlzIGEgcmVzZXQ6CisgICAgICAgICAgICAgICAgLy8gSWYgc291cmNlVG9rZW4gaXMgbnVsbAorICAgICAgICAgICAgICAgIC8vIENyZWF0ZSBuZXcgbGlzdCwgY3JlYXRlIG5ldyBzb3VyY2VUb2tlbiwgbWFrZSB0aGUgYmFzZUNFCisgICAgICAgICAgICAgICAgLy8gZnJvbSBzb3VyY2UsIHB1dCB0aGUgc291cmNlVG9rZW4gaW4gTGlzdEhlYWRlciBvZiB0aGUgbmV3CisgICAgICAgICAgICAgICAgLy8gbGlzdAorICAgICAgICAgICAgICAgIGlmIChzb3VyY2VUb2tlbiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dID0gbmV3IFRva2VuTGlzdEhlYWRlcigpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIDMgQ29uc2lkZXIgZWFjaCBpdGVtOiByZWxhdGlvbiwgc291cmNlLCBhbmQgZXhwYW5zaW9uOgorICAgICAgICAgICAgICAgICAgICAvLyBlLmcuIC4uLjwgeCAvIHkgLi4uCisgICAgICAgICAgICAgICAgICAgIC8vIEZpcnN0IGNvbnZlcnQgYWxsIGV4cGFuc2lvbnMgaW50byBub3JtYWwgZm9ybS4KKyAgICAgICAgICAgICAgICAgICAgLy8gRXhhbXBsZXM6CisgICAgICAgICAgICAgICAgICAgIC8vIElmICJ4eSIgZG9lc24ndCBvY2N1ciBlYXJsaWVyIGluIHRoZSBsaXN0IG9yIGluIHRoZSBVQ0EsCisgICAgICAgICAgICAgICAgICAgIC8vIGNvbnZlcnQgJnh5ICogYyAqIGQgKiAuLi4gaW50byAmeCAqIGMveSAqIGQgKiAuLi4KKyAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogcmVzZXQgdmFsdWVzIGNhbiBuZXZlciBoYXZlIGV4cGFuc2lvbnMsIGFsdGhvdWdoCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZXkgY2FuIGNhdXNlIHRoZSB2ZXJ5IG5leHQgaXRlbSB0byBoYXZlIG9uZS4gVGhleSBtYXkKKyAgICAgICAgICAgICAgICAgICAgLy8gYmUgY29udHJhY3Rpb25zLCBpZiB0aGV5IGFyZSBmb3VuZCBlYXJsaWVyIGluIHRoZSBsaXN0LgorICAgICAgICAgICAgICAgICAgICBpZiAodG9wID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgY29sZWl0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgID0gUnVsZUJhc2VkQ29sbGF0b3IuVUNBXy5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLnN1YnN0cmluZyhtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fKSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBDRSA9IGNvbGVpdGVyLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldCB0byB0aGUgY2hhcmFjdGVyIGluIHRoZSBmdWxsIHJ1bGUgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZXhwYW5kID0gY29sZWl0ZXIuZ2V0T2Zmc2V0KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IFNlY29uZENFID0gY29sZWl0ZXIubmV4dCgpOworCisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ0VfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBDRSAmIDB4RkZGRkZGM0Y7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoUnVsZUJhc2VkQ29sbGF0b3IuaXNDb250aW51YXRpb24oU2Vjb25kQ0UpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNvbnRDRV8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBTZWNvbmRDRTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDb250Q0VfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX25leHRDRV8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbmV4dENvbnRDRV8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fcHJldmlvdXNDRV8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fcHJldmlvdXNDb250Q0VfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2luZGlyZWN0XyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlVG9rZW4gPSBuZXcgVG9rZW4oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZE5leHQgPSBpbml0QVJlc2V0KGV4cGFuZCwgc291cmNlVG9rZW4pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAvLyB0b3AgPT0gVFJVRQorICAgICAgICAgICAgICAgICAgICAgICAgdG9wID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NFXyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NvbnRDRV8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1faW5kaXJlY3RfID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluZGlyZWN0Qm91bmRhcmllcyBpYiA9IElORElSRUNUX0JPVU5EQVJJRVNfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF9dOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNFXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBpYi5tX3N0YXJ0Q0VfOworICAgICAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNvbnRDRV8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBpYi5tX3N0YXJ0Q29udENFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX25leHRDRV8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaWIubV9saW1pdENFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX25leHRDb250Q0VfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gaWIubV9saW1pdENvbnRDRV87CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VUb2tlbiA9IG5ldyBUb2tlbigpOworICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kTmV4dCA9IGluaXRBUmVzZXQoMCwgc291cmNlVG9rZW4pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeyAvLyByZXNldCB0byBzb21ldGhpbmcgYWxyZWFkeSBpbiBydWxlcworICAgICAgICAgICAgICAgICAgICB0b3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyA3IEFmdGVyIGFsbCB0aGlzLCBzZXQgTEFTVCB0byBwb2ludCB0byBzb3VyY2VUb2tlbiwgYW5kIGdvdG8KKyAgICAgICAgICAgIC8vIHN0ZXAgMy4KKyAgICAgICAgICAgIGxhc3RUb2tlbiA9IHNvdXJjZVRva2VuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fcmVzdWx0TGVuZ3RoXyA+IDAKKyAgICAgICAgICAgICYmIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfIC0gMV0ubV9maXJzdF8gPT0gbnVsbCkgeworICAgICAgICAgICAgbV9yZXN1bHRMZW5ndGhfIC0tOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX3Jlc3VsdExlbmd0aF87CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyBhbmQgdGhyb3dzIGEgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcGFyYW0gcnVsZXMgY29sbGF0aW9uIHJ1bGUgdGhhdCBmYWlsZWQKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGZhaWxlZCBvZmZzZXQgaW4gcnVsZXMKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHdpdGggZmFpbHVyZSBpbmZvcm1hdGlvbgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgdGhyb3dQYXJzZUV4Y2VwdGlvbihTdHJpbmcgcnVsZXMsIGludCBvZmZzZXQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyBmb3IgcHJlLWNvbnRleHQKKyAgICAgICAgU3RyaW5nIHByZWNvbnRleHQgPSBydWxlcy5zdWJzdHJpbmcoMCwgb2Zmc2V0KTsKKyAgICAgICAgU3RyaW5nIHBvc3Rjb250ZXh0ID0gcnVsZXMuc3Vic3RyaW5nKG9mZnNldCwgcnVsZXMubGVuZ3RoKCkpOworICAgICAgICBTdHJpbmdCdWZmZXIgZXJyb3IgPSBuZXcgU3RyaW5nQnVmZmVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBhcnNlIGVycm9yIG9jY3VycmVkIGluIHJ1bGUgYXQgb2Zmc2V0ICIpOworICAgICAgICBlcnJvci5hcHBlbmQob2Zmc2V0KTsKKyAgICAgICAgZXJyb3IuYXBwZW5kKCJcbiBhZnRlciB0aGUgcHJlZml4IFwiIik7CisgICAgICAgIGVycm9yLmFwcGVuZChwcmVjb250ZXh0KTsKKyAgICAgICAgZXJyb3IuYXBwZW5kKCJcIiBiZWZvcmUgdGhlIHN1ZmZpeCBcIiIpOworICAgICAgICBlcnJvci5hcHBlbmQocG9zdGNvbnRleHQpOworICAgICAgICB0aHJvdyBuZXcgUGFyc2VFeGNlcHRpb24oZXJyb3IudG9TdHJpbmcoKSwgb2Zmc2V0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gZG9TZXRUb3AoKSB7CisgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfID0gbV9leHRyYUN1cnJlbnRfOworICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKChjaGFyKTB4RkZGRSk7CisgICAgICAgIEluZGlyZWN0Qm91bmRhcmllcyBpYiA9CisgICAgICAgICAgICAgICAgICBJTkRJUkVDVF9CT1VOREFSSUVTX1ttX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfXTsKKyAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgoY2hhcikoaWIubV9zdGFydENFXyA+PiAxNikpOworICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKChjaGFyKShpYi5tX3N0YXJ0Q0VfICYgMHhGRkZGKSk7CisgICAgICAgIG1fZXh0cmFDdXJyZW50XyArPSAzOworICAgICAgICBpZiAoSU5ESVJFQ1RfQk9VTkRBUklFU19bbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0ubV9zdGFydENvbnRDRV8gPT0gMCkgeworICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPSAzOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgoY2hhcikoSU5ESVJFQ1RfQk9VTkRBUklFU19bCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXS5tX3N0YXJ0Q29udENFXyA+PiAxNikpOworICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgoY2hhcikoSU5ESVJFQ1RfQk9VTkRBUklFU19bCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9pbmRpcmVjdEluZGV4XworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXS5tX3N0YXJ0Q29udENFXyAmIDB4RkZGRikpOworICAgICAgICAgICAgbV9leHRyYUN1cnJlbnRfICs9IDI7CisgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA9IDU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0NoYXJOZXdMaW5lKGNoYXIgYykgeworICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgY2FzZSAweDAwMEE6IC8qIExGICovCisgICAgICAgIGNhc2UgMHgwMDBEOiAvKiBDUiAqLworICAgICAgICBjYXNlIDB4MDAwQzogLyogRkYgKi8KKyAgICAgICAgY2FzZSAweDAwODU6IC8qIE5FTCAqLworICAgICAgICBjYXNlIDB4MjAyODogLyogTFMgKi8KKyAgICAgICAgY2FzZSAweDIwMjk6IC8qIFBTICovCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHRpbmcgdGhlIG5leHQgdG9rZW4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydG9mcnVsZXMKKyAgICAgKiAgICAgICAgICAgIGZsYWcgaW5kaWNhdGluZyBpZiB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIHJ1bGVzCisgICAgICogQHJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBydWxlcworICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24KKyAgICAgKiAgICAgICAgICAgICAgICB0aHJvd24gd2hlbiBydWxlIHBhcnNpbmcgZmFpbHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwYXJzZU5leHRUb2tlbihib29sZWFuIHN0YXJ0b2ZydWxlcykgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyBwYXJzaW5nIHBhcnQKKyAgICAgICAgYm9vbGVhbiB2YXJpYWJsZXRvcCA9IGZhbHNlOworICAgICAgICBib29sZWFuIHRvcCA9IGZhbHNlOworICAgICAgICBib29sZWFuIGluY2hhcnMgPSB0cnVlOworICAgICAgICBib29sZWFuIGlucXVvdGUgPSBmYWxzZTsKKyAgICAgICAgYm9vbGVhbiB3YXNpbnF1b3RlID0gZmFsc2U7CisgICAgICAgIGJ5dGUgYmVmb3JlID0gMDsKKyAgICAgICAgYm9vbGVhbiBpc2VzY2FwZWQgPSBmYWxzZTsKKyAgICAgICAgaW50IC8qbmV3Y2hhcnNsZW4gPSAwLCovIG5ld2V4dGVuc2lvbmxlbiA9IDA7CisgICAgICAgIGludCAvKmNoYXJzb2Zmc2V0ID0gMCwqLyBleHRlbnNpb25vZmZzZXQgPSAwOworICAgICAgICBpbnQgbmV3c3RyZW5ndGggPSBUT0tFTl9VTlNFVF87CisKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPSAwOworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IDA7CisgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fcHJlZml4T2Zmc2V0XyA9IDA7CisgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fcHJlZml4TGVuXyA9IDA7CisgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF8gPSAwOworCisgICAgICAgIGludCBsaW1pdCA9IG1fcnVsZXNfLmxlbmd0aCgpOworICAgICAgICB3aGlsZSAobV9jdXJyZW50XyA8IGxpbWl0KSB7CisgICAgICAgICAgICBjaGFyIGNoID0gbV9zb3VyY2VfLmNoYXJBdChtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgIGlmIChpbnF1b3RlKSB7CisgICAgICAgICAgICAgICAgaWYgKGNoID09IDB4MDAyNykgeyAvLyAnXCcnCisgICAgICAgICAgICAgICAgICAgIGlucXVvdGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPT0gMCkgfHwgaW5jaGFycykgeworICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfID0gbV9leHRyYUN1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyArKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdleHRlbnNpb25sZW4gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCA9IG1fZXh0cmFDdXJyZW50XzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiArKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGlzZXNjYXBlZCkgeworICAgICAgICAgICAgICAgIGlzZXNjYXBlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCA9PSBUT0tFTl9VTlNFVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgbV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjaCAhPSAwICYmIG1fY3VycmVudF8gIT0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluY2hhcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gPSBtX2N1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3ZXh0ZW5zaW9ubGVuID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQgPSBtX2N1cnJlbnRfOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU2V0cyB0aGUgc3RyZW5ndGggZm9yIHRoaXMgZW50cnkKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAzRCA6IC8vICc9JworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoICE9IFRPS0VOX1VOU0VUXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKG5ld3N0cmVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2Ugc3RhcnQgd2l0aCBzdHJlbmd0aCwgd2UnbGwgcmVzZXQgdG8gdG9wCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRvZnJ1bGVzID09IHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfID0gNTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AgPSBkb1NldFRvcCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKFRPS0VOX1JFU0VUXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld3N0cmVuZ3RoID0gQ29sbGF0b3IuSURFTlRJQ0FMOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDJDIDogLy8gJywnCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggIT0gVE9LRU5fVU5TRVRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvRW5kUGFyc2VOZXh0VG9rZW4obmV3c3RyZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBzdGFydCB3aXRoIHN0cmVuZ3RoLCB3ZSdsbCByZXNldCB0byB0b3AKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydG9mcnVsZXMgPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF8gPSA1OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCA9IGRvU2V0VG9wKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvRW5kUGFyc2VOZXh0VG9rZW4oVE9LRU5fUkVTRVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3c3RyZW5ndGggPSBDb2xsYXRvci5URVJUSUFSWTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAzQiA6IC8vICc7JworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoICE9IFRPS0VOX1VOU0VUXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKG5ld3N0cmVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2Ugc3RhcnQgd2l0aCBzdHJlbmd0aCwgd2UnbGwgcmVzZXQgdG8gdG9wCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRvZnJ1bGVzID09IHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfID0gNTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AgPSBkb1NldFRvcCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKFRPS0VOX1JFU0VUXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld3N0cmVuZ3RoID0gQ29sbGF0b3IuU0VDT05EQVJZOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDNDIDogLy8gJzwnCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggIT0gVE9LRU5fVU5TRVRfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvRW5kUGFyc2VOZXh0VG9rZW4obmV3c3RyZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBzdGFydCB3aXRoIHN0cmVuZ3RoLCB3ZSdsbCByZXNldCB0byB0b3AKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydG9mcnVsZXMgPT0gdHJ1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF8gPSA1OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCA9IGRvU2V0VG9wKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvRW5kUGFyc2VOZXh0VG9rZW4oVE9LRU5fUkVTRVRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVmb3JlIHRoaXMsIGRvIGEgc2NhbiB0byB2ZXJpZnkgd2hldGhlciB0aGlzIGlzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbm90aGVyIHN0cmVuZ3RoCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9zb3VyY2VfLmNoYXJBdChtX2N1cnJlbnRfICsgMSkgPT0gMHgwMDNDKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9zb3VyY2VfLmNoYXJBdChtX2N1cnJlbnRfICsgMSkgPT0gMHgwMDNDKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8gKys7IC8vIHRocmVlIGluIGEgcm93IQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdzdHJlbmd0aCA9IENvbGxhdG9yLlRFUlRJQVJZOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgLy8gdHdvIGluIGEgcm93CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3N0cmVuZ3RoID0gQ29sbGF0b3IuU0VDT05EQVJZOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAvLyBqdXN0IG9uZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3N0cmVuZ3RoID0gQ29sbGF0b3IuUFJJTUFSWTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAyNiA6IC8vICcmJworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoICE9IFRPS0VOX1VOU0VUXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKG5ld3N0cmVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3c3RyZW5ndGggPSBUT0tFTl9SRVNFVF87IC8vIFBhdHRlcm5FbnRyeTo6UkVTRVQgPSAwCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwNWIgOiAvLyAnWycKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9wdGlvbnMgLSByZWFkIGFuIG9wdGlvbiwgYW5hbHl6ZSBpdAorICAgICAgICAgICAgICAgICAgICAgICAgbV9vcHRpb25FbmRfID0gbV9ydWxlc18uaW5kZXhPZigweDAwNWQsIG1fY3VycmVudF8pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fb3B0aW9uRW5kXyAhPSAtMSkgeyAvLyAnXScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlIHJlc3VsdCA9IHJlYWRBbmRTZXRPcHRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfID0gbV9vcHRpb25FbmRfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocmVzdWx0ICYgVE9LRU5fVE9QX01BU0tfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCA9PSBUT0tFTl9SRVNFVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcCA9IGRvU2V0VG9wKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmVmb3JlICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgY29tYmluYXRpb24gb2YgYmVmb3JlIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluZGlyZWN0aW9uIGxpa2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAnJltiZWZvcmUgMl1bZmlyc3QgcmVndWxhcl08YicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKChjaGFyKTB4MDAyZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgoY2hhciliZWZvcmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXh0cmFDdXJyZW50XyArPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fICs9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvRW5kUGFyc2VOZXh0VG9rZW4obmV3c3RyZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wLCBiZWZvcmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgbV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoKHJlc3VsdCAmIFRPS0VOX1ZBUklBQkxFX1RPUF9NQVNLXykgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3c3RyZW5ndGggIT0gVE9LRU5fUkVTRVRfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBuZXdzdHJlbmd0aCAhPSBUT0tFTl9VTlNFVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxldG9wID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2V4dHJhQ3VycmVudF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKChjaGFyKTB4RkZGRik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvRW5kUGFyc2VOZXh0VG9rZW4obmV3c3RyZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdleHRlbnNpb25sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGV0b3AsIGJlZm9yZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgocmVzdWx0ICYgVE9LRU5fQkVGT1JFXykgIT0gMCl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCA9PSBUT0tFTl9SRVNFVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZSA9IChieXRlKShyZXN1bHQgJiBUT0tFTl9CRUZPUkVfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG1fY3VycmVudF8pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDJGIDogLy8gJy8nCisgICAgICAgICAgICAgICAgICAgICAgICB3YXNpbnF1b3RlID0gZmFsc2U7IC8vIGlmIHdlIHdlcmUgY29weWluZyBzb3VyY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycywgd2Ugd2FudCB0byBzdG9wIG5vdworICAgICAgICAgICAgICAgICAgICAgICAgaW5jaGFycyA9IGZhbHNlOyAvLyB3ZSdyZSBub3cgcHJvY2Vzc2luZyBleHBhbnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDA1QyA6IC8vIGJhY2sgc2xhc2ggZm9yIGVzY2FwZWQgY2hhcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzZXNjYXBlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgLy8gZm91bmQgYSBxdW90ZSwgd2UncmUgZ29ubmEgc3RhcnQgY29weWluZworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAyNyA6IC8vJ1wnJworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoID09IFRPS0VOX1VOU0VUXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHF1b3RlIGlzIGlsbGVnYWwgdW50aWwgd2UgaGF2ZSBhIHN0cmVuZ3RoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgbV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpbnF1b3RlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmNoYXJzKSB7IC8vIHdlJ3JlIGRvaW5nIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2FzaW5xdW90ZSA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IG1fZXh0cmFDdXJyZW50XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZChtX3NvdXJjZV8uc3Vic3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyAtIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKz0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fICsrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8vIHdlJ3JlIGRvaW5nIGFuIGV4cGFuc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3YXNpbnF1b3RlID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCA9IG1fZXh0cmFDdXJyZW50XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld2V4dGVuc2lvbmxlbiAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc291cmNlXy5hcHBlbmQobV9zb3VyY2VfLnN1YnN0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8gLSBuZXdleHRlbnNpb25sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXh0cmFDdXJyZW50XyArPSBuZXdleHRlbnNpb25sZW47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2V4dGVuc2lvbmxlbiArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHdhc2lucXVvdGUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gbV9zb3VyY2VfLmNoYXJBdChtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSAweDAwMjcpIHsgLy8gY29weSB0aGUgZG91YmxlIHF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9leHRyYUN1cnJlbnRfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucXVvdGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAvLyAnQCcgaXMgZnJlbmNoIG9ubHkgaWYgdGhlIHN0cmVuZ3RoIGlzIG5vdCBjdXJyZW50bHkgc2V0CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIGl0IGlzLCBpdCdzIGp1c3QgYSByZWd1bGFyIGNoYXJhY3RlciBpbiBjb2xsYXRpb24KKyAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwNDAgOiAvLyAnQCcKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdzdHJlbmd0aCA9PSBUT0tFTl9VTlNFVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX29wdGlvbnNfLm1faXNGcmVuY2hDb2xsYXRpb25fID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDdDIDogLy98CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIG1lYW5zIHdlIGhhdmUgYWN0dWFsbHkgYmVlbiByZWFkaW5nIHByZWZpeCBwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSB3YW50IHRvIHN0b3JlIHJlYWQgY2hhcmFjdGVycyB0byB0aGUgcHJlZml4IHBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBjb250aW51ZSByZWFkaW5nIHRoZSBjaGFyYWN0ZXJzIChwcm9wZXIgd2F5CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3b3VsZCBiZSB0byByZXN0YXJ0IHJlYWRpbmcgdGhlIGNoYXJzLCBidXQgaW4gdGhhdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FzZSB3ZSB3b3VsZCBoYXZlIHRvIGNvbXBsaWNhdGUgdGhlIHRva2VuIGhhc2hlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoaWNoIEkgZG8gbm90IGludGVuZCB0byBwbGF5IHdpdGguIEluc3RlYWQsIHdlIHdpbGwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvIHByZWZpeGVzIHdoZW4gcHJlZml4ZXMgYXJlIGR1ZSAoYmVmb3JlIGFkZGluZyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRzKS4KKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fcHJlZml4T2Zmc2V0XworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fcHJlZml4TGVuXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmNoYXJzKSB7IC8vIHdlJ3JlIGRvaW5nIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2FzaW5xdW90ZSA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IG1fZXh0cmFDdXJyZW50XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHByZWZpeCA9IG1fc291cmNlXy5zdWJzdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfIC0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2N1cnJlbnRfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZChwcmVmaXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKz0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fICsrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgd2FzaW5xdW90ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCA9IG1fc291cmNlXy5jaGFyQXQobV9jdXJyZW50Xyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2tpcCB3aGl0ZXNwYWNlIGJldHdlZW4gJ3wnIGFuZCB0aGUgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjaCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMHgwMDIzOiAvLyAnIycgLy8gdGhpcyBpcyBhIGNvbW1lbnQsIHNraXAgZXZlcnl0aGluZyB0aHJvdWdoIHRoZSBlbmQgb2YgbGluZQorICAgICAgICAgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY3VycmVudF8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBtX3NvdXJjZV8uY2hhckF0KG1fY3VycmVudF8pOworICAgICAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoIWlzQ2hhck5ld0xpbmUoY2gpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAyMTogLy8gJyEnIC8vIGlnbm9yaW5nIGphdmEgc2V0IHRoYWkgcmVvcmRlcmluZworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3N0cmVuZ3RoID09IFRPS0VOX1VOU0VUXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG1fY3VycmVudF8pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzU3BlY2lhbENoYXIoY2gpICYmIChpbnF1b3RlID09IGZhbHNlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG1fY3VycmVudF8pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09IDB4MDAwMCAmJiBtX2N1cnJlbnRfICsgMSA9PSBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluY2hhcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IG1fY3VycmVudF87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3ZXh0ZW5zaW9ubGVuID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ub2Zmc2V0ID0gbV9jdXJyZW50XzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZXh0ZW5zaW9ubGVuICsrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAod2FzaW5xdW90ZSkgeworICAgICAgICAgICAgICAgIGlmIChjaCAhPSAweDI3KSB7CisgICAgICAgICAgICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgIG1fZXh0cmFDdXJyZW50XyArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2N1cnJlbnRfICsrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkb0VuZFBhcnNlTmV4dFRva2VuKG5ld3N0cmVuZ3RoLCB0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbm9mZnNldCwgbmV3ZXh0ZW5zaW9ubGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXRvcCwgYmVmb3JlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbmQgdGhlIG5leHQgcGFyc2UgdG9rZW4KKyAgICAgKiBAcGFyYW0gbmV3c3RyZW5ndGggbmV3IHN0cmVuZ3RoCisgICAgICogQHJldHVybiBvZmZzZXQgaW4gcnVsZXMsIC0xIGZvciBlbmQgb2YgcnVsZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBkb0VuZFBhcnNlTmV4dFRva2VuKGludCBuZXdzdHJlbmd0aCwgLyppbnQgbmV3Y2hhcnNsZW4sKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdG9wLCAvKmludCBjaGFyc29mZnNldCwqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGV4dGVuc2lvbm9mZnNldCwgaW50IG5ld2V4dGVuc2lvbmxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdmFyaWFibGV0b3AsIGludCBiZWZvcmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICB7CisgICAgICAgIGlmIChuZXdzdHJlbmd0aCA9PSBUT0tFTl9VTlNFVF8pIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPT0gMCAmJiB0b3AgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgIHRocm93UGFyc2VFeGNlcHRpb24obV9ydWxlc18sIG1fY3VycmVudF8pOworICAgICAgICB9CisKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9zdHJlbmd0aF8gPSBuZXdzdHJlbmd0aDsKKyAgICAgICAgLy9tX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IGNoYXJzb2Zmc2V0OworICAgICAgICAvL21fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fID0gbmV3Y2hhcnNsZW47CisgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fZXh0ZW5zaW9uT2Zmc2V0XyA9IGV4dGVuc2lvbm9mZnNldDsKKyAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25MZW5fID0gbmV3ZXh0ZW5zaW9ubGVuOworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2ZsYWdzXyA9IChjaGFyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgodmFyaWFibGV0b3AgPyBUT0tFTl9WQVJJQUJMRV9UT1BfTUFTS18gOiAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKHRvcCA/IFRPS0VOX1RPUF9NQVNLXyA6IDApIHwgYmVmb3JlKTsKKyAgICAgICAgcmV0dXJuIG1fY3VycmVudF87CisgICAgfQorCisgICAgLyoqCisgICAgICogVG9rZW4gYmVmb3JlIHRoaXMgZWxlbWVudAorICAgICAqIEBwYXJhbSBzb3VyY2V0b2tlbgorICAgICAqIEBwYXJhbSBzdHJlbmd0aCBjb2xsYXRpb24gc3RyZW5ndGgKKyAgICAgKiBAcmV0dXJuIHRoZSB0b2tlbiBiZWZvcmUgc291cmNlIHRva2VuCisgICAgICogQGV4Y2VwdGlvbiBQYXJzZUV4Y2VwdGlvbiB0aHJvd24gd2hlbiBydWxlcyBoYXZlIHRoZSB3cm9uZyBzeW50YXgKKyAgICAgKi8KKyAgICBwcml2YXRlIFRva2VuIGdldFZpcmdpbkJlZm9yZShUb2tlbiBzb3VyY2V0b2tlbiwgaW50IHN0cmVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgLy8gdGhpcyBpcyBhIHZpcmdpbiBiZWZvcmUgLSB3ZSBuZWVkIHRvIGZpc2ggdGhlIGFuY2hvciBmcm9tIHRoZSBVQ0EKKyAgICAgICAgaWYgKHNvdXJjZXRva2VuICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBzb3VyY2V0b2tlbi5tX3NvdXJjZV8gJiAweEZGRkZGRjsKKyAgICAgICAgICAgIG1fVUNBQ29sRUl0ZXJfLnNldFRleHQobV9zb3VyY2VfLnN1YnN0cmluZyhvZmZzZXQsIG9mZnNldCArIDEpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fVUNBQ29sRUl0ZXJfLnNldFRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc291cmNlXy5zdWJzdHJpbmcobV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfICsgMSkpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGJhc2VjZSA9IG1fVUNBQ29sRUl0ZXJfLm5leHQoKSAmIDB4RkZGRkZGM0Y7CisgICAgICAgIGludCBiYXNlY29udGNlID0gbV9VQ0FDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICBpZiAoYmFzZWNvbnRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICBiYXNlY29udGNlID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIGludCBjaCA9IDA7CisKKworICAgICAgICBpZigoYmFzZWNlID4+PiAyNCA+PSBSdWxlQmFzZWRDb2xsYXRvci5VQ0FfQ09OU1RBTlRTXy5QUklNQVJZX0lNUExJQ0lUX01JTl8pCisgICAgICAgICAgICAgICAgJiYgKGJhc2VjZSA+Pj4gMjQgPD0gIFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLlBSSU1BUllfSU1QTElDSVRfTUFYXykpIHsgLyogaW1wbGljaXRzIC0gKi8KKworICAgICAgICAgICAgaW50IHByaW1hcnkgPSBiYXNlY2UgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfIHwgKGJhc2Vjb250Y2UgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfKSA+PiAxNjsKKyAgICAgICAgICAgIGludCByYXcgPSBSdWxlQmFzZWRDb2xsYXRvci5pbXBDRUdlbl8uZ2V0UmF3RnJvbUltcGxpY2l0KHByaW1hcnkpOworICAgICAgICAgICAgY2ggPSBSdWxlQmFzZWRDb2xsYXRvci5pbXBDRUdlbl8uZ2V0Q29kZVBvaW50RnJvbVJhdyhyYXctMSk7CisgICAgICAgICAgICBpbnQgcHJpbWFyeUNFID0gUnVsZUJhc2VkQ29sbGF0b3IuaW1wQ0VHZW5fLmdldEltcGxpY2l0RnJvbVJhdyhyYXctMSk7CisgICAgICAgICAgICBtX3V0aWxDRUJ1ZmZlcl9bMF0gPSBwcmltYXJ5Q0UgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfIHwgMHgwNTA1OworICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfWzFdID0gKHByaW1hcnlDRSA8PCAxNikgJiBSdWxlQmFzZWRDb2xsYXRvci5DRV9QUklNQVJZX01BU0tfIHwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfQ09OVElOVUFUSU9OX01BUktFUl87CisKKyAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfID0gbV9leHRyYUN1cnJlbnRfOworICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgnXHVGRkZFJyk7CisgICAgICAgICAgICBtX3NvdXJjZV8uYXBwZW5kKChjaGFyKWNoKTsKKyAgICAgICAgICAgIG1fZXh0cmFDdXJyZW50XyArPSAyOworICAgICAgICAgICAgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8rKzsKKworICAgICAgICAgICAgbV91dGlsVG9rZW5fLm1fc291cmNlXyA9IChtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA8PCAyNCkKKyAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF87CisgICAgICAgICAgICBtX3V0aWxUb2tlbl8ubV9ydWxlc18gPSBtX3NvdXJjZV87CisgICAgICAgICAgICBzb3VyY2V0b2tlbiA9IChUb2tlbiltX2hhc2hUYWJsZV8uZ2V0KG1fdXRpbFRva2VuXyk7CisKKyAgICAgICAgICAgIGlmKHNvdXJjZXRva2VuID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10gPSBuZXcgVG9rZW5MaXN0SGVhZGVyKCk7CisgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNFXworICAgICAgICAgICAgICAgICAgICA9IG1fdXRpbENFQnVmZmVyX1swXSAmIDB4RkZGRkZGM0Y7CisgICAgICAgICAgICAgICAgaWYgKFJ1bGVCYXNlZENvbGxhdG9yLmlzQ29udGludWF0aW9uKG1fdXRpbENFQnVmZmVyX1sxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNvbnRDRV8KKyAgICAgICAgICAgICAgICAgICAgPSBtX3V0aWxDRUJ1ZmZlcl9bMV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ29udENFXyA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX25leHRDRV8gPSAwOworICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX25leHRDb250Q0VfID0gMDsKKyAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9wcmV2aW91c0NFXyA9IDA7CisgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fcHJldmlvdXNDb250Q0VfID0gMDsKKyAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9pbmRpcmVjdF8gPSBmYWxzZTsKKworICAgICAgICAgICAgICAgIHNvdXJjZXRva2VuID0gbmV3IFRva2VuKCk7CisgICAgICAgICAgICAgICAgaW5pdEFSZXNldCgtMSwgc291cmNldG9rZW4pOworICAgICAgICAgICAgfQorCisgICAgICAgIH0gZWxzZSB7CisKKyAgICAgICAgICAgIC8vIGZpcnN0IGNlIGFuZCBzZWNvbmQgY2UgbV91dGlsQ0VCdWZmZXJfCisgICAgICAgICAgICBpbnQgaW52cG9zID0gQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuSU5WRVJTRV9VQ0FfLmdldEludmVyc2VQcmV2Q0UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlY2UsIGJhc2Vjb250Y2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlbmd0aCwgbV91dGlsQ0VCdWZmZXJfKTsKKyAgICAgICAgICAgIC8vIHdlIGdvdCB0aGUgcHJldmlvdXMgQ0UuIE5vdyB3ZSBuZWVkIHRvIHNlZSBpZiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCisgICAgICAgICAgICAvLyB0aGUgdHdvIENFcyBpcyByZWFsbHkgb2YgdGhlIHJlcXVlc3RlZCBzdHJlbmd0aC4KKyAgICAgICAgICAgIC8vIGlmIGl0J3MgYSBiaWdnZXIgZGlmZmVyZW5jZSAod2UgYXNrZWQgZm9yIHNlY29uZGFyeSBhbmQgZ290IHByaW1hcnkpLCB3ZQorICAgICAgICAgICAgLy8gbmVlZCB0byBtb2RpZnkgdGhlIENFLgorICAgICAgICAgICAgaWYoQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuSU5WRVJTRV9VQ0FfLmdldENFU3RyZW5ndGhEaWZmZXJlbmNlKGJhc2VjZSwgYmFzZWNvbnRjZSwgbV91dGlsQ0VCdWZmZXJfWzBdLCBtX3V0aWxDRUJ1ZmZlcl9bMV0pIDwgc3RyZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAvLyBhZGp1c3QgdGhlIHN0cmVuZ3RoCisgICAgICAgICAgICAgICAgLy8gbm93IHdlIGFyZSBpbiB0aGUgc2l0dWF0aW9uIHdoZXJlIG91ciBiYXNlQ0Ugc2hvdWxkIGFjdHVhbGx5IGJlIG1vZGlmaWVkIGluCisgICAgICAgICAgICAgICAgLy8gb3JkZXIgdG8gZ2V0IHRoZSBDRSBpbiB0aGUgcmlnaHQgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgaWYoc3RyZW5ndGggPT0gQ29sbGF0b3IuU0VDT05EQVJZKSB7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1swXSA9IGJhc2VjZSAtIDB4MDIwMDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBzdHJlbmd0aCA9PSBVQ09MX1RFUlRJQVJZCisgICAgICAgICAgICAgICAgICAgIG1fdXRpbENFQnVmZmVyX1swXSA9IGJhc2VjZSAtIDB4MDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKFJ1bGVCYXNlZENvbGxhdG9yLmlzQ29udGludWF0aW9uKGJhc2Vjb250Y2UpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKHN0cmVuZ3RoID09IENvbGxhdG9yLlNFQ09OREFSWSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfWzFdID0gYmFzZWNvbnRjZSAtIDB4MDIwMDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gc3RyZW5ndGggPT0gVUNPTF9URVJUSUFSWQorICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQ0VCdWZmZXJfWzFdID0gYmFzZWNvbnRjZSAtIDB4MDI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKy8qCisgICAgICAgICAgICAvLyB0aGUgY29kZSBiZWxvdyByZWxpZXMgb24gZ2V0dGluZyBhIGNvZGUgcG9pbnQgZnJvbSB0aGUgaW52ZXJzZSB0YWJsZSwgaW4gb3JkZXIgdG8gYmUKKyAgICAgICAgICAgIC8vIGFibGUgdG8gbWVyZ2UgdGhlIHNpdHVhdGlvbnMgbGlrZSAmeCA8IDkgJltiZWZvcmUgMV1hIDwgZC4gVGhpcyB3b24ndCB3b3JrOgorICAgICAgICAgICAgLy8gMS4gVGhlcmUgYXJlIG1hbnkgY29kZSBwb2ludHMgdGhhdCBoYXZlIHRoZSBzYW1lIENFCisgICAgICAgICAgICAvLyAyLiBUaGUgQ0UgdG8gY29kZXBvaW50IHRhYmxlICh0aGluZ3MgcG9pbnRlZCB0byBieSBDRVRhYmxlWzMqaW52UG9zKzJdIGFyZSBicm9rZW4uCisgICAgICAgICAgICAvLyBBbHNvLCBpbiBjYXNlIHdoZW4gdGhlcmUgaXMgbm8gZXF1aXZhbGVudCBzdHJlbmd0aCBiZWZvcmUgYW4gZWxlbWVudCwgd2UgaGF2ZSB0byBhY3R1YWxseQorICAgICAgICAgICAgLy8gY29uc3RydWN0IG9uZS4gRm9yIGV4YW1wbGUsICZbYmVmb3JlIDJdYSA8PCB4IHdvbid0IHJlc3VsdCBpbiB4IDw8IGEsIGJlY2F1c2UgdGhlIGVsZW1lbnQKKyAgICAgICAgICAgIC8vIGJlZm9yZSBhIGlzIGEgcHJpbWFyeSBkaWZmZXJlbmNlLgorICAgICAgICAgICAgY2ggPSBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5JTlZFUlNFX1VDQV8ubV90YWJsZV9bMyAqIGludnBvcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgMl07CisgICAgICAgICAgICBpZiAoKGNoICYgIElOVkVSU0VfU0laRV9NQVNLXykgIT0gMCkgeworICAgICAgICAgICAgICAgIGludCBvZmZzZXQgPSBjaCAmIElOVkVSU0VfT0ZGU0VUX01BU0tfOworICAgICAgICAgICAgICAgIGNoID0gQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuSU5WRVJTRV9VQ0FfLm1fY29udGludWF0aW9uc19bCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9zb3VyY2VfLmFwcGVuZCgoY2hhciljaCk7CisgICAgICAgICAgICBtX2V4dHJhQ3VycmVudF8gKys7CisgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XyA9IG1fZXh0cmFDdXJyZW50XyAtIDE7CisgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA9IDE7CisKKyAgICAgICAgICAgIC8vIFdlIGdvdCBhbiBVQ0EgYmVmb3JlLiBIb3dldmVyLCB0aGlzIG1pZ2h0IGhhdmUgYmVlbiB0YWlsb3JlZC4KKyAgICAgICAgICAgIC8vIGV4YW1wbGU6CisgICAgICAgICAgICAvLyAmXHUzMGNhID0gXHUzMDZhCisgICAgICAgICAgICAvLyAmW2JlZm9yZSAzXVx1MzA2YTw8PFx1MzA2YXxcdTMwOWQKKworICAgICAgICAgICAgbV91dGlsVG9rZW5fLm1fc291cmNlXyA9IChtX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyA8PCAyNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfOworICAgICAgICAgICAgbV91dGlsVG9rZW5fLm1fcnVsZXNfID0gbV9zb3VyY2VfOworICAgICAgICAgICAgc291cmNldG9rZW4gPSAoVG9rZW4pbV9oYXNoVGFibGVfLmdldChtX3V0aWxUb2tlbl8pOworKi8KKworICAgICAgICAgICAgLy8gaGVyZSBpcyBob3cgaXQgc2hvdWxkIGJlLiBUaGUgc2l0dWF0aW9uIHN1Y2ggYXMgJltiZWZvcmUgMV1hIDwgeCwgc2hvdWxkIGJlCisgICAgICAgICAgICAvLyByZXNvbHZlZCBleGFjdGx5IGFzIGlmIHdlIHdyb3RlICZhID4geC4KKyAgICAgICAgICAgIC8vIHRoZXJlZm9yZSwgSSBkb24ndCByZWFsbHkgY2FyZSBpZiB0aGUgVUNBIHZhbHVlIGJlZm9yZSBhIGhhcyBiZWVuIGNoYW5nZWQuCisgICAgICAgICAgICAvLyBIb3dldmVyLCBJIGRvIGNhcmUgaWYgdGhlIHN0cmVuZ3RoIGJldHdlZW4gbXkgZWxlbWVudCBhbmQgdGhlIHByZXZpb3VzIGVsZW1lbnQKKyAgICAgICAgICAgIC8vIGlzIGJpZ2dlciB0aGVuIEkgd2FudGVkLiBTbywgaWYgQ0UgPCBiYXNlQ0UgYW5kIEkgd2FudGVkICZbYmVmb3JlIDJdLCB0aGVuIGknbGwKKyAgICAgICAgICAgIC8vIGhhdmUgdG8gY29uc3RydWN0IHRoZSBiYXNlIENFLgorCisgICAgICAgICAgICAvLyBpZiB3ZSBmb3VuZCBhIHRhaWxvcmVkIHRoaW5nLCB3ZSBoYXZlIHRvIHVzZSB0aGUgVUNBIHZhbHVlIGFuZAorICAgICAgICAgICAgLy8gY29uc3RydWN0IGEgbmV3IHJlc2V0IHRva2VuIHdpdGggY29uc3RydWN0ZWQgbmFtZQorICAgICAgICAgICAgLy9pZiAoc291cmNldG9rZW4gIT0gbnVsbCAmJiBzb3VyY2V0b2tlbi5tX3N0cmVuZ3RoXyAhPSBUT0tFTl9SRVNFVF8pIHsKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXIgdG8gd2hpY2ggd2Ugd2FudCB0byBhbmNob3IgaXMgYWxyZWFkeSB0YWlsb3JlZC4KKyAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGNvbnN0cnVjdCBhIG5ldyB0b2tlbiB3aGljaCB3aWxsIGJlIHRoZSBhbmNob3IgcG9pbnQKKyAgICAgICAgICAgICAgICAvL21fc291cmNlXy5zZXRDaGFyQXQobV9leHRyYUN1cnJlbnRfIC0gMSwgJ1x1RkZGRScpOworICAgICAgICAgICAgICAgIC8vbV9zb3VyY2VfLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgLy9tX2V4dHJhQ3VycmVudF8gKys7CisgICAgICAgICAgICAgICAgLy9tX3BhcnNlZFRva2VuXy5tX2NoYXJzTGVuXyArKzsKKyAgICAgICAgICAgICAgICAvLyBncmFiIGJlZm9yZQorICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfIC09IDEwOworICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fICs9IDEwOworICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXSA9IG5ldyBUb2tlbkxpc3RIZWFkZXIoKTsKKyAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9iYXNlQ0VfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX3V0aWxDRUJ1ZmZlcl9bMF0gJiAweEZGRkZGRjNGOworICAgICAgICAgICAgICAgIGlmIChSdWxlQmFzZWRDb2xsYXRvci5pc0NvbnRpbnVhdGlvbihtX3V0aWxDRUJ1ZmZlcl9bMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX2Jhc2VDb250Q0VfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV91dGlsQ0VCdWZmZXJfWzFdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fYmFzZUNvbnRDRV8gPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9uZXh0Q0VfID0gMDsKKyAgICAgICAgICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9uZXh0Q29udENFXyA9IDA7CisgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fcHJldmlvdXNDRV8gPSAwOworICAgICAgICAgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX3ByZXZpb3VzQ29udENFXyA9IDA7CisgICAgICAgICAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1faW5kaXJlY3RfID0gZmFsc2U7CisgICAgICAgICAgICAgICAgc291cmNldG9rZW4gPSBuZXcgVG9rZW4oKTsKKyAgICAgICAgICAgICAgICBpbml0QVJlc2V0KC0xLCBzb3VyY2V0b2tlbik7CisgICAgICAgICAgICAvL30KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc291cmNldG9rZW47CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvY2Vzc2luZyBEZXNjcmlwdGlvbi4KKyAgICAgKiAxLiBCdWlsZCBhIG1fbGlzdEhlYWRlcl8uIEVhY2ggbGlzdCBoYXMgYSBoZWFkZXIsIHdoaWNoIGNvbnRhaW5zIHR3byBsaXN0cworICAgICAqIChwb3NpdGl2ZSBhbmQgbmVnYXRpdmUpLCBhIHJlc2V0IHRva2VuLCBhIGJhc2VDRSwgbmV4dENFLCBhbmQKKyAgICAgKiBwcmV2aW91c0NFLiBUaGUgbGlzdHMgYW5kIHJlc2V0IG1heSBiZSBudWxsLgorICAgICAqIDIuIEFzIHlvdSBwcm9jZXNzLCB5b3Uga2VlcCBhIExBU1QgcG9pbnRlciB0aGF0IHBvaW50cyB0byB0aGUgbGFzdCB0b2tlbgorICAgICAqIHlvdSBoYW5kbGVkLgorICAgICAqIEBwYXJhbSBleHBhbmQgc3RyaW5nIG9mZnNldCwgLTEgZm9yIG51bGwgc3RyaW5ncworICAgICAqIEBwYXJhbSB0YXJnZXRUb2tlbiB0b2tlbiB0byB1cGRhdGUKKyAgICAgKiBAcmV0dXJuIGV4cGFuZG5leHQgb2Zmc2V0CisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbiB0aHJvd24gd2hlbiBydWxlcyBzeW50YXggZmFpbGVkCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgaW5pdEFSZXNldChpbnQgZXhwYW5kLCBUb2tlbiB0YXJnZXRUb2tlbikgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgeworICAgICAgICBpZiAobV9yZXN1bHRMZW5ndGhfID09IG1fbGlzdEhlYWRlcl8ubGVuZ3RoIC0gMSkgeworICAgICAgICAgICAgLy8gVW5mb3J0dW5hdGVseSwgdGhpcyB3b24ndCB3b3JrLCBhcyB3ZSBzdG9yZSBhZGRyZXNzZXMgb2YgbGhzIGluCisgICAgICAgICAgICAvLyB0b2tlbgorICAgICAgICAgICAgVG9rZW5MaXN0SGVhZGVyIHRlbXBbXSA9IG5ldyBUb2tlbkxpc3RIZWFkZXJbbV9yZXN1bHRMZW5ndGhfIDw8IDFdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShtX2xpc3RIZWFkZXJfLCAwLCB0ZW1wLCAwLCBtX3Jlc3VsdExlbmd0aF8gKyAxKTsKKyAgICAgICAgICAgIG1fbGlzdEhlYWRlcl8gPSB0ZW1wOworICAgICAgICB9CisgICAgICAgIC8vIGRvIHRoZSByZXNldCB0aGluZworICAgICAgICB0YXJnZXRUb2tlbi5tX3J1bGVzXyA9IG1fc291cmNlXzsKKyAgICAgICAgdGFyZ2V0VG9rZW4ubV9zb3VyY2VfID0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPDwgMjQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX3BhcnNlZFRva2VuXy5tX2NoYXJzT2Zmc2V0XzsKKyAgICAgICAgdGFyZ2V0VG9rZW4ubV9leHBhbnNpb25fID0gbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25MZW5fIDw8IDI0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9wYXJzZWRUb2tlbl8ubV9leHRlbnNpb25PZmZzZXRfOworICAgICAgICAvLyBrZWVwIHRoZSBmbGFncyBhcm91bmQgc28gdGhhdCB3ZSBrbm93IGFib3V0IGJlZm9yZQorICAgICAgICB0YXJnZXRUb2tlbi5tX2ZsYWdzXyA9IG1fcGFyc2VkVG9rZW5fLm1fZmxhZ3NfOworCisgICAgICAgIGlmIChtX3BhcnNlZFRva2VuXy5tX3ByZWZpeE9mZnNldF8gIT0gMCkgeworICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gLSAxKTsKKyAgICAgICAgfQorCisgICAgICAgIHRhcmdldFRva2VuLm1fcHJlZml4XyA9IDA7CisgICAgICAgIC8vIFRPRE86IHRoaXMgc2hvdWxkIGFsc28gaGFuZGxlIHJldmVyc2UKKyAgICAgICAgdGFyZ2V0VG9rZW4ubV9wb2xhcml0eV8gPSBUT0tFTl9QT0xBUklUWV9QT1NJVElWRV87CisgICAgICAgIHRhcmdldFRva2VuLm1fc3RyZW5ndGhfID0gVE9LRU5fUkVTRVRfOworICAgICAgICB0YXJnZXRUb2tlbi5tX25leHRfID0gbnVsbDsKKyAgICAgICAgdGFyZ2V0VG9rZW4ubV9wcmV2aW91c18gPSBudWxsOworICAgICAgICB0YXJnZXRUb2tlbi5tX0NFTGVuZ3RoXyA9IDA7CisgICAgICAgIHRhcmdldFRva2VuLm1fZXhwQ0VMZW5ndGhfID0gMDsKKyAgICAgICAgdGFyZ2V0VG9rZW4ubV9saXN0SGVhZGVyXyA9IG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXTsKKyAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fZmlyc3RfID0gbnVsbDsKKyAgICAgICAgbV9saXN0SGVhZGVyX1ttX3Jlc3VsdExlbmd0aF9dLm1fbGFzdF8gPSBudWxsOworICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9maXJzdF8gPSBudWxsOworICAgICAgICBtX2xpc3RIZWFkZXJfW21fcmVzdWx0TGVuZ3RoX10ubV9sYXN0XyA9IG51bGw7CisgICAgICAgIG1fbGlzdEhlYWRlcl9bbV9yZXN1bHRMZW5ndGhfXS5tX3Jlc2V0XyA9IHRhcmdldFRva2VuOworCisgICAgICAgIC8qIDMgQ29uc2lkZXIgZWFjaCBpdGVtOiByZWxhdGlvbiwgc291cmNlLCBhbmQgZXhwYW5zaW9uOgorICAgICAgICAgKiBlLmcuIC4uLjwgeCAvIHkgLi4uCisgICAgICAgICAqIEZpcnN0IGNvbnZlcnQgYWxsIGV4cGFuc2lvbnMgaW50byBub3JtYWwgZm9ybS4gRXhhbXBsZXM6CisgICAgICAgICAqIElmICJ4eSIgZG9lc24ndCBvY2N1ciBlYXJsaWVyIGluIHRoZSBsaXN0IG9yIGluIHRoZSBVQ0EsIGNvbnZlcnQKKyAgICAgICAgICogJnh5ICogYyAqIGQgKiAuLi4gaW50byAmeCAqIGMveSAqIGQgKiAuLi4KKyAgICAgICAgICogTm90ZTogcmVzZXQgdmFsdWVzIGNhbiBuZXZlciBoYXZlIGV4cGFuc2lvbnMsIGFsdGhvdWdoIHRoZXkgY2FuCisgICAgICAgICAqIGNhdXNlIHRoZSB2ZXJ5IG5leHQgaXRlbSB0byBoYXZlIG9uZS4gVGhleSBtYXkgYmUgY29udHJhY3Rpb25zLCBpZgorICAgICAgICAgKiB0aGV5IGFyZSBmb3VuZCBlYXJsaWVyIGluIHRoZSBsaXN0LgorICAgICAgICAgKi8KKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGlmIChleHBhbmQgPiAwKSB7CisgICAgICAgICAgICAvLyBjaGVjayB0byBzZWUgaWYgdGhlcmUgaXMgYW4gZXhwYW5zaW9uCisgICAgICAgICAgICBpZiAobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8gPiAxKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0VG9rZW4ubV9zb3VyY2VfID0gKChleHBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gbV9wYXJzZWRUb2tlbl8ubV9jaGFyc09mZnNldF8gKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfOworICAgICAgICAgICAgICAgIHJlc3VsdCA9ICgobV9wYXJzZWRUb2tlbl8ubV9jaGFyc0xlbl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfIC0gZXhwYW5kKSA8PCAyNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4cGFuZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG1fcmVzdWx0TGVuZ3RoXyArKzsKKyAgICAgICAgbV9oYXNoVGFibGVfLnB1dCh0YXJnZXRUb2tlbiwgdGFyZ2V0VG9rZW4pOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiBhbiBjaGFyYWN0ZXIgaXMgc3BlY2lhbAorICAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gdGVzdAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGlzIHNwZWNpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzU3BlY2lhbENoYXIoY2hhciBjaCkKKyAgICB7CisgICAgICAgIHJldHVybiAoY2ggPD0gMHgwMDJGICYmIGNoID49IDB4MDAyMCkgfHwgKGNoIDw9IDB4MDAzRiAmJiBjaCA+PSAweDAwM0EpCisgICAgICAgICAgICAgICB8fCAoY2ggPD0gMHgwMDYwICYmIGNoID49IDB4MDA1QikKKyAgICAgICAgICAgICAgIHx8IChjaCA8PSAweDAwN0UgJiYgY2ggPj0gMHgwMDdEKSB8fCBjaCA9PSAweDAwN0I7CisgICAgfQorCisgICAgcHJpdmF0ZQorICAgIFVuaWNvZGVTZXQgcmVhZEFuZFNldFVuaWNvZGVTZXQoU3RyaW5nIHNvdXJjZSwgaW50IHN0YXJ0KSB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICB7CisgICAgICB3aGlsZShzb3VyY2UuY2hhckF0KHN0YXJ0KSAhPSAnWycpIHsgLyogYWR2YW5jZSB3aGlsZSB3ZSBmaW5kIHRoZSBmaXJzdCAnWycgKi8KKyAgICAgICAgc3RhcnQrKzsKKyAgICAgIH0KKyAgICAgIC8vIG5vdyB3ZSBuZWVkIHRvIGdldCBhIGJhbGFuY2VkIHNldCBvZiAnW10nLiBUaGUgcHJvYmxlbSBpcyB0aGF0IGEgc2V0IGNhbiBoYXZlCisgICAgICAvLyBtYW55LCBhbmQgKmVuZCBwb2ludCB0byB0aGUgZmlyc3QgY2xvc2luZyAnWycKKyAgICAgIGludCBub09wZW5CcmFjZXMgPSAxOworICAgICAgaW50IGN1cnJlbnQgPSAxOyAvLyBza2lwIHRoZSBvcGVuaW5nIGJyYWNlCisgICAgICB3aGlsZShzdGFydCtjdXJyZW50IDwgc291cmNlLmxlbmd0aCgpICYmIG5vT3BlbkJyYWNlcyAhPSAwKSB7CisgICAgICAgIGlmKHNvdXJjZS5jaGFyQXQoc3RhcnQrY3VycmVudCkgPT0gJ1snKSB7CisgICAgICAgICAgbm9PcGVuQnJhY2VzKys7CisgICAgICAgIH0gZWxzZSBpZihzb3VyY2UuY2hhckF0KHN0YXJ0K2N1cnJlbnQpID09ICddJykgeyAvLyBjbG9zaW5nIGJyYWNlCisgICAgICAgICAgbm9PcGVuQnJhY2VzLS07CisgICAgICAgIH0KKyAgICAgICAgY3VycmVudCsrOworICAgICAgfQorICAgICAgLy9pbnQgbmV4dEJyYWNlID0gLTE7CisKKyAgICAgIGlmKG5vT3BlbkJyYWNlcyAhPSAwIHx8ICgvKm5leHRCcmFjZSA9Ki8gc291cmNlLmluZGV4T2YoIl0iLCBzdGFydCtjdXJyZW50KSAvKiddJyovKSA9PSAtMSkgeworICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBzdGFydCk7CisgICAgICB9CisgICAgICByZXR1cm4gbmV3IFVuaWNvZGVTZXQoc291cmNlLnN1YnN0cmluZyhzdGFydCwgc3RhcnQrY3VycmVudCkpOyAvL3VzZXRfb3BlblBhdHRlcm4oc3RhcnQsIGN1cnJlbnQpOworICAgIH0KKworCisgICAgLyoqIGluIEMsIG9wdGlvbmFyZyBpcyBwYXNzZWQgYnkgcmVmZXJlbmNlIHRvIGZ1bmN0aW9uLgorICAgICAqICBXZSB1c2UgYSBwcml2YXRlIGludCB0byBzaW11bGF0ZSB0aGlzLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fb3B0aW9uYXJnXyA9IDA7CisKKyAgICBwcml2YXRlIGludCByZWFkT3B0aW9uKFN0cmluZyBydWxlcywgaW50IHN0YXJ0LCBpbnQgb3B0aW9uZW5kKQorICAgIHsKKyAgICAgICAgbV9vcHRpb25hcmdfID0gMDsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICB3aGlsZSAoaSA8IFJVTEVTX09QVElPTlNfLmxlbmd0aCkgeworICAgICAgICAgICAgU3RyaW5nIG9wdGlvbiA9IFJVTEVTX09QVElPTlNfW2ldLm1fbmFtZV87CisgICAgICAgICAgICBpbnQgb3B0aW9ubGVuZ3RoID0gb3B0aW9uLmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKHJ1bGVzLmxlbmd0aCgpID4gc3RhcnQgKyBvcHRpb25sZW5ndGgKKyAgICAgICAgICAgICAgICAmJiBvcHRpb24uZXF1YWxzSWdub3JlQ2FzZShydWxlcy5zdWJzdHJpbmcoc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArIG9wdGlvbmxlbmd0aCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKG9wdGlvbmVuZCAtIHN0YXJ0ID4gb3B0aW9ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIG1fb3B0aW9uYXJnXyA9IHN0YXJ0ICsgb3B0aW9ubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAvLyBzdGFydCBvZiB0aGUgb3B0aW9ucywgc2tpcCBzcGFjZQorICAgICAgICAgICAgICAgICAgICB3aGlsZSAobV9vcHRpb25hcmdfIDwgb3B0aW9uZW5kICYmIFVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKHJ1bGVzLmNoYXJBdChtX29wdGlvbmFyZ18pKSkKKyAgICAgICAgICAgICAgICAgICAgeyAgIC8vIGVhdCB3aGl0ZXNwYWNlCisgICAgICAgICAgICAgICAgICAgICAgICBtX29wdGlvbmFyZ18gKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpICsrOworICAgICAgICB9CisgICAgICAgIGlmKGkgPT0gUlVMRVNfT1BUSU9OU18ubGVuZ3RoKSB7CisgICAgICAgICAgICBpID0gLTE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGk7CisgICAgfQorICAgIC8qKgorICAgICAqIFJlYWRzIGFuZCBzZXQgY29sbGF0aW9uIG9wdGlvbnMKKyAgICAgKiBAcGFyYW0gb3B0aW9uZW5kIG9mZnNldCB0byB0aGUgZW5kIG9mIHRoZSBvcHRpb24gaW4gcnVsZXMKKyAgICAgKiBAcmV0dXJuIFRPS0VOX1NVQ0NFU1MgaWYgb3B0aW9uIGlzIHNldCBjb3JyZWN0LCAwIG90aGVyd2lzZQorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gdGhyb3duIHdoZW4gb3B0aW9ucyBpbiBydWxlcyBhcmUgd3JvbmcKKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgcmVhZEFuZFNldE9wdGlvbigpIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gbV9jdXJyZW50XyArIDE7IC8vIHNraXAgb3BlbmluZyAnWycKKyAgICAgICAgaW50IGkgPSByZWFkT3B0aW9uKG1fcnVsZXNfLCBzdGFydCwgbV9vcHRpb25FbmRfKTsKKworICAgICAgICBpbnQgb3B0aW9uYXJnID0gbV9vcHRpb25hcmdfOworCisgICAgICAgIGlmIChpIDwgMCkgeworICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGkgPCA3KSB7CisgICAgICAgICAgICBpZiAob3B0aW9uYXJnICE9IDApIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IFJVTEVTX09QVElPTlNfW2ldLm1fc3ViT3B0aW9uc18ubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaiArKykgeworICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN1Ym5hbWUgPSBSVUxFU19PUFRJT05TX1tpXS5tX3N1Yk9wdGlvbnNfW2pdOworICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUgPSBvcHRpb25hcmcgKyBzdWJuYW1lLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgaWYgKG1fcnVsZXNfLmxlbmd0aCgpID4gc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICYmIHN1Ym5hbWUuZXF1YWxzSWdub3JlQ2FzZShtX3J1bGVzXy5zdWJzdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFyZywgc2l6ZSkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgc2V0T3B0aW9ucyhtX29wdGlvbnNfLCBSVUxFU19PUFRJT05TX1tpXS5tX2F0dHJpYnV0ZV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJVTEVTX09QVElPTlNfW2ldLm1fc3ViT3B0aW9uQXR0cmlidXRlVmFsdWVzX1tqXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRPS0VOX1NVQ0NFU1NfTUFTS187CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgb3B0aW9uYXJnKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChpID09IDcpIHsgLy8gdmFyaWFibGUgdG9wCisgICAgICAgICAgICByZXR1cm4gVE9LRU5fU1VDQ0VTU19NQVNLXyB8IFRPS0VOX1ZBUklBQkxFX1RPUF9NQVNLXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChpID09IDgpIHsgLy8gcmVhcmFuZ2UKKyAgICAgICAgICAgIHJldHVybiBUT0tFTl9TVUNDRVNTX01BU0tfOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGkgPT0gOSkgeyAvLyBiZWZvcmUKKyAgICAgICAgICAgIGlmIChvcHRpb25hcmcgIT0gMCkgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgUlVMRVNfT1BUSU9OU19baV0ubV9zdWJPcHRpb25zXy5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqICsrKSB7CisgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3VibmFtZSA9IFJVTEVTX09QVElPTlNfW2ldLm1fc3ViT3B0aW9uc19bal07CisgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSA9IG9wdGlvbmFyZyArIHN1Ym5hbWUubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICBpZiAobV9ydWxlc18ubGVuZ3RoKCkgPiBzaXplCisgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc3VibmFtZS5lcXVhbHNJZ25vcmVDYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3J1bGVzXy5zdWJzdHJpbmcob3B0aW9uYXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFyZyArIHN1Ym5hbWUubGVuZ3RoKCkpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoYnl0ZSkoVE9LRU5fU1VDQ0VTU19NQVNLXworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUlVMRVNfT1BUSU9OU19baV0ubV9zdWJPcHRpb25BdHRyaWJ1dGVWYWx1ZXNfW2pdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aHJvd1BhcnNlRXhjZXB0aW9uKG1fcnVsZXNfLCBvcHRpb25hcmcpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGkgPT0gMTApIHsgIC8vIHRvcCwgd2UgYXJlIGdvaW5nIHRvIGhhdmUgYW4gYXJyYXkgd2l0aAorICAgICAgICAgICAgLy8gc3RydWN0dXJlcyBvZiBsaW1pdCBDRXMgaW5kZXggdG8gdGhpcyBhcnJheSB3aWxsIGJlCisgICAgICAgICAgICAvLyBzcmMtPnBhcnNlZFRva2VuLmluZGlyZWN0SW5kZXgKKyAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1faW5kaXJlY3RJbmRleF8gPSAwOworICAgICAgICAgICAgcmV0dXJuIFRPS0VOX1NVQ0NFU1NfTUFTS18gfCBUT0tFTl9UT1BfTUFTS187CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoaSA8IDEzKSB7IC8vIGZpcnN0LCBsYXN0CisgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IFJVTEVTX09QVElPTlNfW2ldLm1fc3ViT3B0aW9uc18ubGVuZ3RoOyBqICsrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHN1Ym5hbWUgPSBSVUxFU19PUFRJT05TX1tpXS5tX3N1Yk9wdGlvbnNfW2pdOworICAgICAgICAgICAgICAgIGludCBzaXplID0gb3B0aW9uYXJnICsgc3VibmFtZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBpZiAobV9ydWxlc18ubGVuZ3RoKCkgPiBzaXplCisgICAgICAgICAgICAgICAgICAgICYmIHN1Ym5hbWUuZXF1YWxzSWdub3JlQ2FzZShtX3J1bGVzXy5zdWJzdHJpbmcob3B0aW9uYXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUpKSkgeworICAgICAgICAgICAgICAgICAgICBtX3BhcnNlZFRva2VuXy5tX2luZGlyZWN0SW5kZXhfID0gKGNoYXIpKGkgLSAxMCArIChqIDw8IDEpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRPS0VOX1NVQ0NFU1NfTUFTS18gfCBUT0tFTl9UT1BfTUFTS187CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgb3B0aW9uYXJnKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmKGkgPT0gMTMgfHwgaSA9PSAxNCkgeyAvLyBjb3B5IGFuZCByZW1vdmUgYXJlIGhhbmRsZWQgYmVmb3JlIG5vcm1hbGl6YXRpb24KKyAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gbW92ZSBlbmQgaGVyZQorICAgICAgICAgICAgaW50IG5vT3BlbkJyYWNlcyA9IDE7CisgICAgICAgICAgICBtX2N1cnJlbnRfKys7IC8vIHNraXAgb3BlbmluZyBicmFjZQorICAgICAgICAgICAgd2hpbGUobV9jdXJyZW50XyA8IG1fc291cmNlXy5sZW5ndGgoKSAmJiBub09wZW5CcmFjZXMgIT0gMCkgeworICAgICAgICAgICAgICAgIGlmKG1fc291cmNlXy5jaGFyQXQobV9jdXJyZW50XykgPT0gJ1snKSB7CisgICAgICAgICAgICAgICAgICBub09wZW5CcmFjZXMrKzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYobV9zb3VyY2VfLmNoYXJBdChtX2N1cnJlbnRfKSA9PSAnXScpIHsgLy8gY2xvc2luZyBicmFjZQorICAgICAgICAgICAgICAgICAgbm9PcGVuQnJhY2VzLS07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fY3VycmVudF8rKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fb3B0aW9uRW5kXyA9IG1fY3VycmVudF8tMTsKKyAgICAgICAgICAgIHJldHVybiBUT0tFTl9TVUNDRVNTX01BU0tfOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhyb3dQYXJzZUV4Y2VwdGlvbihtX3J1bGVzXywgb3B0aW9uYXJnKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gVE9LRU5fU1VDQ0VTU19NQVNLXzsgLy8gd2Ugd2lsbCBuZXZlciByZWFjaCBoZXJlLgorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBjb2xsYXRpb24gb3B0aW9uCisgICAgICogQHBhcmFtIG9wdGlvbnNldCBvcHRpb24gc2V0IHRvIHNldAorICAgICAqIEBwYXJhbSBhdHRyaWJ1dGUgdHlwZSB0byBzZXQKKyAgICAgKiBAcGFyYW0gdmFsdWUgYXR0cmlidXRlIHZhbHVlCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNldE9wdGlvbnMoT3B0aW9uU2V0IG9wdGlvbnNldCwgaW50IGF0dHJpYnV0ZSwgaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChhdHRyaWJ1dGUpIHsKKyAgICAgICAgICAgIGNhc2UgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkhJUkFHQU5BX1FVQVRFUk5BUllfTU9ERV8gOgorICAgICAgICAgICAgICAgIG9wdGlvbnNldC5tX2lzSGlyYWdhbmE0XworICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gKHZhbHVlID09IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9OXyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5GUkVOQ0hfQ09MTEFUSU9OXyA6CisgICAgICAgICAgICAgICAgb3B0aW9uc2V0Lm1faXNGcmVuY2hDb2xsYXRpb25fCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gKHZhbHVlID09IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9OXyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZS5BTFRFUk5BVEVfSEFORExJTkdfIDoKKyAgICAgICAgICAgICAgICBvcHRpb25zZXQubV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAodmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuU0hJRlRFRF8pOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGUuQ0FTRV9GSVJTVF8gOgorICAgICAgICAgICAgICAgIG9wdGlvbnNldC5tX2Nhc2VGaXJzdF8gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLkNBU0VfTEVWRUxfIDoKKyAgICAgICAgICAgICAgICBvcHRpb25zZXQubV9pc0Nhc2VMZXZlbF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAodmFsdWUgPT0gUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlVmFsdWUuT05fKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLk5PUk1BTElaQVRJT05fTU9ERV8gOgorICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PTl8pIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBDb2xsYXRvci5DQU5PTklDQUxfREVDT01QT1NJVElPTjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3B0aW9uc2V0Lm1fZGVjb21wb3NpdGlvbl8gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUnVsZUJhc2VkQ29sbGF0b3IuQXR0cmlidXRlLlNUUkVOR1RIXyA6CisgICAgICAgICAgICAgICAgb3B0aW9uc2V0Lm1fc3RyZW5ndGhfID0gdmFsdWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0IDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgVW5pY29kZVNldCBnZXRUYWlsb3JlZFNldCgpIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgYm9vbGVhbiBzdGFydE9mUnVsZXMgPSB0cnVlOworICAgICAgICBVbmljb2RlU2V0IHRhaWxvcmVkID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm47CisgICAgICAgIENhbm9uaWNhbEl0ZXJhdG9yIGl0ID0gbmV3IENhbm9uaWNhbEl0ZXJhdG9yKCIiKTsKKworICAgICAgICBtX3BhcnNlZFRva2VuXy5tX3N0cmVuZ3RoXyA9IFRPS0VOX1VOU0VUXzsKKyAgICAgICAgaW50IHNvdXJjZWxpbWl0ID0gbV9zb3VyY2VfLmxlbmd0aCgpOworICAgICAgICAvL2ludCBleHBhbmROZXh0ID0gMDsKKworICAgICAgICB3aGlsZSAobV9jdXJyZW50XyA8IHNvdXJjZWxpbWl0KSB7CisgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fcHJlZml4T2Zmc2V0XyA9IDA7CisgICAgICAgIGlmIChwYXJzZU5leHRUb2tlbihzdGFydE9mUnVsZXMpIDwgMCkgeworICAgICAgICAgICAgLy8gd2UgaGF2ZSByZWFjaGVkIHRoZSBlbmQKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIHN0YXJ0T2ZSdWxlcyA9IGZhbHNlOworICAgICAgICAvLyBUaGUgaWRlYSBpcyB0byB0b2tlbml6ZSB0aGUgcnVsZSBzZXQuIEZvciBlYWNoIG5vbi1yZXNldCB0b2tlbiwKKyAgICAgICAgLy8gd2UgYWRkIGFsbCB0aGUgY2Fub25pY2FseSBlcXVpdmFsZW50IEZDRCBzZXF1ZW5jZXMKKyAgICAgICAgICAgIGlmKG1fcGFyc2VkVG9rZW5fLm1fc3RyZW5ndGhfICE9IFRPS0VOX1JFU0VUXykgeworICAgICAgICAgICAgICAgIGl0LnNldFNvdXJjZShtX3NvdXJjZV8uc3Vic3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfLAorICAgICAgICAgICAgICAgICAgICAgIG1fcGFyc2VkVG9rZW5fLm1fY2hhcnNPZmZzZXRfK21fcGFyc2VkVG9rZW5fLm1fY2hhcnNMZW5fKSk7CisgICAgICAgICAgICAgICAgcGF0dGVybiA9IGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICB3aGlsZShwYXR0ZXJuICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICBpZihOb3JtYWxpemVyLnF1aWNrQ2hlY2socGF0dGVybiwgTm9ybWFsaXplci5GQ0QsMCkgIT0gTm9ybWFsaXplci5OTykgeworICAgICAgICAgICAgICAgICAgICAgICAgdGFpbG9yZWQuYWRkKHBhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gPSBpdC5uZXh0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0YWlsb3JlZDsKKyAgICB9CisKKyAgICBmaW5hbCBwcml2YXRlIHZvaWQgZXh0cmFjdFNldHNGcm9tUnVsZXMoU3RyaW5nIHJ1bGVzKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24geworICAgICAgaW50IG9wdGlvbk51bWJlciA9IC0xOworICAgICAgaW50IHNldFN0YXJ0ID0gMDsKKyAgICAgIGludCBpID0gMDsKKyAgICAgIHdoaWxlKGkgPCBydWxlcy5sZW5ndGgoKSkgeworICAgICAgICBpZihydWxlcy5jaGFyQXQoaSkgPT0gMHgwMDVCKSB7CisgICAgICAgICAgb3B0aW9uTnVtYmVyID0gcmVhZE9wdGlvbihydWxlcywgaSsxLCBydWxlcy5sZW5ndGgoKSk7CisgICAgICAgICAgc2V0U3RhcnQgPSBtX29wdGlvbmFyZ187CisgICAgICAgICAgaWYob3B0aW9uTnVtYmVyID09IDEzKSB7IC8qIGNvcHkgLSBwYXJ0cyBvZiBVQ0EgdG8gdGFpbG9yaW5nICovCisgICAgICAgICAgICBVbmljb2RlU2V0IG5ld1NldCA9IHJlYWRBbmRTZXRVbmljb2RlU2V0KHJ1bGVzLCBzZXRTdGFydCk7CisgICAgICAgICAgICAgIGlmKG1fY29weVNldF8gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1fY29weVNldF8gPSBuZXdTZXQ7CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9jb3B5U2V0Xy5hZGRBbGwobmV3U2V0KTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgIH0gZWxzZSBpZihvcHRpb25OdW1iZXIgPT0gMTQpIHsKKyAgICAgICAgICAgIFVuaWNvZGVTZXQgbmV3U2V0ID0gcmVhZEFuZFNldFVuaWNvZGVTZXQocnVsZXMsIHNldFN0YXJ0KTsKKyAgICAgICAgICAgICAgaWYobV9yZW1vdmVTZXRfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtX3JlbW92ZVNldF8gPSBuZXdTZXQ7CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9yZW1vdmVTZXRfLmFkZEFsbChuZXdTZXQpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGkrKzsKKyAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMDM2MzJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3IuamF2YQpAQCAtMCwwICsxLDEwNDQgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5Db21wYXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEZWJ1ZzsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworLyoqCisqIDxwPkNvbGxhdG9yIHBlcmZvcm1zIGxvY2FsZS1zZW5zaXRpdmUgc3RyaW5nIGNvbXBhcmlzb24uIEEgY29uY3JldGUKKyogc3ViY2xhc3MsIFJ1bGVCYXNlZENvbGxhdG9yLCBhbGxvd3MgY3VzdG9taXphdGlvbiBvZiB0aGUgY29sbGF0aW9uCisqIG9yZGVyaW5nIGJ5IHRoZSB1c2Ugb2YgcnVsZSBzZXRzLjwvcD4KKyoKKyogPHA+Rm9sbG93aW5nIHRoZSA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmc+VW5pY29kZQorKiBDb25zb3J0aXVtPC9hPidzIHNwZWNpZmljYXRpb25zIGZvciB0aGUKKyogPGEgaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxMC8iPiBVbmljb2RlIENvbGxhdGlvbgorKiBBbGdvcml0aG0gKFVDQSk8L2E+LCB0aGVyZSBhcmUgNSBkaWZmZXJlbnQgbGV2ZWxzIG9mIHN0cmVuZ3RoIHVzZWQKKyogaW4gY29tcGFyaXNvbnM6CisqCisqIDx1bD4KKyogPGxpPlBSSU1BUlkgc3RyZW5ndGg6IFR5cGljYWxseSwgdGhpcyBpcyB1c2VkIHRvIGRlbm90ZSBkaWZmZXJlbmNlcyBiZXR3ZWVuCisqICAgICBiYXNlIGNoYXJhY3RlcnMgKGZvciBleGFtcGxlLCAiYSIgJmx0OyAiYiIpLgorKiAgICAgSXQgaXMgdGhlIHN0cm9uZ2VzdCBkaWZmZXJlbmNlLiBGb3IgZXhhbXBsZSwgZGljdGlvbmFyaWVzIGFyZSBkaXZpZGVkCisqICAgICBpbnRvIGRpZmZlcmVudCBzZWN0aW9ucyBieSBiYXNlIGNoYXJhY3Rlci4KKyogPGxpPlNFQ09OREFSWSBzdHJlbmd0aDogQWNjZW50cyBpbiB0aGUgY2hhcmFjdGVycyBhcmUgY29uc2lkZXJlZCBzZWNvbmRhcnkKKyogICAgIGRpZmZlcmVuY2VzIChmb3IgZXhhbXBsZSwgImFzIiAmbHQ7ICImYWdyYXZlO3MiICZsdDsgImF0IikuIE90aGVyCisqICAgICBkaWZmZXJlbmNlcworKiAgICAgYmV0d2VlbiBsZXR0ZXJzIGNhbiBhbHNvIGJlIGNvbnNpZGVyZWQgc2Vjb25kYXJ5IGRpZmZlcmVuY2VzLCBkZXBlbmRpbmcKKyogICAgIG9uIHRoZSBsYW5ndWFnZS4gQSBzZWNvbmRhcnkgZGlmZmVyZW5jZSBpcyBpZ25vcmVkIHdoZW4gdGhlcmUgaXMgYQorKiAgICAgcHJpbWFyeSBkaWZmZXJlbmNlIGFueXdoZXJlIGluIHRoZSBzdHJpbmdzLgorKiA8bGk+VEVSVElBUlkgc3RyZW5ndGg6IFVwcGVyIGFuZCBsb3dlciBjYXNlIGRpZmZlcmVuY2VzIGluIGNoYXJhY3RlcnMgYXJlCisqICAgICBkaXN0aW5ndWlzaGVkIGF0IHRlcnRpYXJ5IHN0cmVuZ3RoIChmb3IgZXhhbXBsZSwgImFvIiAmbHQ7ICJBbyIgJmx0OworKiAgICAgImEmb2dyYXZlOyIpLiBJbiBhZGRpdGlvbiwgYSB2YXJpYW50IG9mIGEgbGV0dGVyIGRpZmZlcnMgZnJvbSB0aGUgYmFzZQorKiAgICAgZm9ybSBvbiB0aGUgdGVydGlhcnkgc3RyZW5ndGggKHN1Y2ggYXMgIkEiIGFuZCAiJiM5Mzk4OyIpLiBBbm90aGVyCisqICAgICBleGFtcGxlIGlzIHRoZQorKiAgICAgZGlmZmVyZW5jZSBiZXR3ZWVuIGxhcmdlIGFuZCBzbWFsbCBLYW5hLiBBIHRlcnRpYXJ5IGRpZmZlcmVuY2UgaXMgaWdub3JlZAorKiAgICAgd2hlbiB0aGVyZSBpcyBhIHByaW1hcnkgb3Igc2Vjb25kYXJ5IGRpZmZlcmVuY2UgYW55d2hlcmUgaW4gdGhlIHN0cmluZ3MuCisqIDxsaT5RVUFURVJOQVJZIHN0cmVuZ3RoOiBXaGVuIHB1bmN0dWF0aW9uIGlzIGlnbm9yZWQKKyogICAgIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX0NvbmNlcHRzLmh0bWwjSWdub3JpbmdfUHVuY3R1YXRpb24iPgorKiAgICAgKHNlZSBJZ25vcmluZyBQdW5jdHVhdGlvbnMgaW4gdGhlIHVzZXIgZ3VpZGUpPC9hPiBhdCBQUklNQVJZIHRvIFRFUlRJQVJZCisqICAgICBzdHJlbmd0aCwgYW4gYWRkaXRpb25hbCBzdHJlbmd0aCBsZXZlbCBjYW4KKyogICAgIGJlIHVzZWQgdG8gZGlzdGluZ3Vpc2ggd29yZHMgd2l0aCBhbmQgd2l0aG91dCBwdW5jdHVhdGlvbiAoZm9yIGV4YW1wbGUsCisqICAgICAiYWIiICZsdDsgImEtYiIgJmx0OyAiYUIiKS4KKyogICAgIFRoaXMgZGlmZmVyZW5jZSBpcyBpZ25vcmVkIHdoZW4gdGhlcmUgaXMgYSBQUklNQVJZLCBTRUNPTkRBUlkgb3IgVEVSVElBUlkKKyogICAgIGRpZmZlcmVuY2UuIFRoZSBRVUFURVJOQVJZIHN0cmVuZ3RoIHNob3VsZCBvbmx5IGJlIHVzZWQgaWYgaWdub3JpbmcKKyogICAgIHB1bmN0dWF0aW9uIGlzIHJlcXVpcmVkLgorKiA8bGk+SURFTlRJQ0FMIHN0cmVuZ3RoOgorKiAgICAgV2hlbiBhbGwgb3RoZXIgc3RyZW5ndGhzIGFyZSBlcXVhbCwgdGhlIElERU5USUNBTCBzdHJlbmd0aCBpcyB1c2VkIGFzIGEKKyogICAgIHRpZWJyZWFrZXIuIFRoZSBVbmljb2RlIGNvZGUgcG9pbnQgdmFsdWVzIG9mIHRoZSBORkQgZm9ybSBvZiBlYWNoIHN0cmluZworKiAgICAgYXJlIGNvbXBhcmVkLCBqdXN0IGluIGNhc2UgdGhlcmUgaXMgbm8gZGlmZmVyZW5jZS4KKyogICAgIEZvciBleGFtcGxlLCBIZWJyZXcgY2FudGVsbGF0aW9uIG1hcmtzIGFyZSBvbmx5IGRpc3Rpbmd1aXNoZWQgYXQgdGhpcworKiAgICAgc3RyZW5ndGguIFRoaXMgc3RyZW5ndGggc2hvdWxkIGJlIHVzZWQgc3BhcmluZ2x5LCBhcyBvbmx5IGNvZGUgcG9pbnQKKyogICAgIHZhbHVlIGRpZmZlcmVuY2VzIGJldHdlZW4gdHdvIHN0cmluZ3MgaXMgYW4gZXh0cmVtZWx5IHJhcmUgb2NjdXJyZW5jZS4KKyogICAgIFVzaW5nIHRoaXMgc3RyZW5ndGggc3Vic3RhbnRpYWxseSBkZWNyZWFzZXMgdGhlIHBlcmZvcm1hbmNlIGZvciBib3RoCisqICAgICBjb21wYXJpc29uIGFuZCBjb2xsYXRpb24ga2V5IGdlbmVyYXRpb24gQVBJcy4gVGhpcyBzdHJlbmd0aCBhbHNvCisqICAgICBpbmNyZWFzZXMgdGhlIHNpemUgb2YgdGhlIGNvbGxhdGlvbiBrZXkuCisqIDwvdWw+CisqCisqIFVubGlrZSB0aGUgSkRLLCBJQ1U0SidzIENvbGxhdG9yIGRlYWxzIG9ubHkgd2l0aCAyIGRlY29tcG9zaXRpb24gbW9kZXMsCisqIHRoZSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBtb2RlIGFuZCBvbmUgdGhhdCBkb2VzIG5vdCB1c2UgYW55IGRlY29tcG9zaXRpb24uCisqIFRoZSBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gbW9kZSwgamF2YS50ZXh0LkNvbGxhdG9yLkZVTExfREVDT01QT1NJVElPTgorKiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUuIElmIHRoZSBjYW5vbmljYWwKKyogZGVjb21wb3NpdGlvbiBtb2RlIGlzIHNldCwgdGhlIENvbGxhdG9yIGhhbmRsZXMgdW4tbm9ybWFsaXplZCB0ZXh0IHByb3Blcmx5LAorKiBwcm9kdWNpbmcgdGhlIHNhbWUgcmVzdWx0cyBhcyBpZiB0aGUgdGV4dCB3ZXJlIG5vcm1hbGl6ZWQgaW4gTkZELiBJZgorKiBjYW5vbmljYWwgZGVjb21wb3NpdGlvbiBpcyB0dXJuZWQgb2ZmLCBpdCBpcyB0aGUgdXNlcidzIHJlc3BvbnNpYmlsaXR5IHRvCisqIGVuc3VyZSB0aGF0IGFsbCB0ZXh0IGlzIGFscmVhZHkgaW4gdGhlIGFwcHJvcHJpYXRlIGZvcm0gYmVmb3JlIHBlcmZvcm1pbmcKKyogYSBjb21wYXJpc29uIG9yIGJlZm9yZSBnZXR0aW5nIGEgQ29sbGF0aW9uS2V5LjwvcD4KKyoKKyogPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbGxhdGlvbiBzZXJ2aWNlIHNlZSB0aGUKKyogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfSW50cm8uaHRtbCI+dXNlcnMKKyogZ3VpZGU8L2E+LjwvcD4KKyoKKyogPHA+RXhhbXBsZXMgb2YgdXNlCisqIDxwcmU+CisqIC8vIEdldCB0aGUgQ29sbGF0b3IgZm9yIFVTIEVuZ2xpc2ggYW5kIHNldCBpdHMgc3RyZW5ndGggdG8gUFJJTUFSWQorKiBDb2xsYXRvciB1c0NvbGxhdG9yID0gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoTG9jYWxlLlVTKTsKKyogdXNDb2xsYXRvci5zZXRTdHJlbmd0aChDb2xsYXRvci5QUklNQVJZKTsKKyogaWYgKHVzQ29sbGF0b3IuY29tcGFyZSgiYWJjIiwgIkFCQyIpID09IDApIHsKKyogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RyaW5ncyBhcmUgZXF1aXZhbGVudCIpOworKiB9CisqCisqIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBzaG93cyBob3cgdG8gY29tcGFyZSB0d28gc3RyaW5ncyB1c2luZyB0aGUKKyogQ29sbGF0b3IgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyoKKyogLy8gQ29tcGFyZSB0d28gc3RyaW5ncyBpbiB0aGUgZGVmYXVsdCBsb2NhbGUKKyogQ29sbGF0b3IgbXlDb2xsYXRvciA9IENvbGxhdG9yLmdldEluc3RhbmNlKCk7CisqIG15Q29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihOT19ERUNPTVBPU0lUSU9OKTsKKyogaWYgKG15Q29sbGF0b3IuY29tcGFyZSgiJmFncmF2ZTsmIzkyO3UwMzI1IiwgImEmIzkyO3UwMzI1JiM3Njg7IikgIT0gMCkgeworKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCImYWdyYXZlOyYjOTI7dTAzMjUgaXMgbm90IGVxdWFscyB0byBhJiM5Mjt1MDMyNSYjNzY4OyB3aXRob3V0IGRlY29tcG9zaXRpb24iKTsKKyogICAgIG15Q29sbGF0b3Iuc2V0RGVjb21wb3NpdGlvbihDQU5PTklDQUxfREVDT01QT1NJVElPTik7CisqICAgICBpZiAobXlDb2xsYXRvci5jb21wYXJlKCImYWdyYXZlOyYjOTI7dTAzMjUiLCAiYSYjOTI7dTAzMjUmIzc2ODsiKSAhPSAwKSB7CisqICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvcjogJmFncmF2ZTsmIzkyO3UwMzI1IHNob3VsZCBiZSBlcXVhbHMgdG8gYSYjOTI7dTAzMjUmIzc2ODsgd2l0aCBkZWNvbXBvc2l0aW9uIik7CisqICAgICB9CisqICAgICBlbHNlIHsKKyogICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiZhZ3JhdmU7JiM5Mjt1MDMyNSBpcyBlcXVhbHMgdG8gYSYjOTI7dTAzMjUmIzc2ODsgd2l0aCBkZWNvbXBvc2l0aW9uIik7CisqICAgICB9CisqIH0KKyogZWxzZSB7CisqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVycm9yOiAmYWdyYXZlOyYjOTI7dTAzMjUgc2hvdWxkIGJlIG5vdCBlcXVhbHMgdG8gYSYjOTI7dTAzMjUmIzc2ODsgd2l0aG91dCBkZWNvbXBvc2l0aW9uIik7CisqIH0KKyogPC9wcmU+CisqIDwvcD4KKyogQHNlZSBSdWxlQmFzZWRDb2xsYXRvcgorKiBAc2VlIENvbGxhdGlvbktleQorKiBAYXV0aG9yIFN5biBXZWUgUXVlaworKiBAc3RhYmxlIElDVSAyLjgKKyovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQ29sbGF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yLCBDbG9uZWFibGUKK3sKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogU3Ryb25nZXN0IGNvbGxhdG9yIHN0cmVuZ3RoIHZhbHVlLiBUeXBpY2FsbHkgdXNlZCB0byBkZW5vdGUgZGlmZmVyZW5jZXMKKyAgICAgKiBiZXR3ZWVuIGJhc2UgY2hhcmFjdGVycy4gU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZXhwbGFuYXRpb24uCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNnZXRTdHJlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFBSSU1BUlkgPSAwOworCisgICAgLyoqCisgICAgICogU2Vjb25kIGxldmVsIGNvbGxhdG9yIHN0cmVuZ3RoIHZhbHVlLgorICAgICAqIEFjY2VudHMgaW4gdGhlIGNoYXJhY3RlcnMgYXJlIGNvbnNpZGVyZWQgc2Vjb25kYXJ5IGRpZmZlcmVuY2VzLgorICAgICAqIE90aGVyIGRpZmZlcmVuY2VzIGJldHdlZW4gbGV0dGVycyBjYW4gYWxzbyBiZSBjb25zaWRlcmVkIHNlY29uZGFyeQorICAgICAqIGRpZmZlcmVuY2VzLCBkZXBlbmRpbmcgb24gdGhlIGxhbmd1YWdlLgorICAgICAqIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGV4cGxhbmF0aW9uLgorICAgICAqIEBzZWUgI3NldFN0cmVuZ3RoCisgICAgICogQHNlZSAjZ2V0U3RyZW5ndGgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTRUNPTkRBUlkgPSAxOworCisgICAgLyoqCisgICAgICogVGhpcmQgbGV2ZWwgY29sbGF0b3Igc3RyZW5ndGggdmFsdWUuCisgICAgICogVXBwZXIgYW5kIGxvd2VyIGNhc2UgZGlmZmVyZW5jZXMgaW4gY2hhcmFjdGVycyBhcmUgZGlzdGluZ3Vpc2hlZCBhdCB0aGlzCisgICAgICogc3RyZW5ndGggbGV2ZWwuIEluIGFkZGl0aW9uLCBhIHZhcmlhbnQgb2YgYSBsZXR0ZXIgZGlmZmVycyBmcm9tIHRoZSBiYXNlCisgICAgICogZm9ybSBvbiB0aGUgdGVydGlhcnkgbGV2ZWwuCisgICAgICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZXhwbGFuYXRpb24uCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNnZXRTdHJlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRFUlRJQVJZID0gMjsKKworICAgIC8qKgorICAgICAqIEZvdXJ0aCBsZXZlbCBjb2xsYXRvciBzdHJlbmd0aCB2YWx1ZS4KKyAgICAgKiBXaGVuIHB1bmN0dWF0aW9uIGlzIGlnbm9yZWQKKyAgICAgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9Db25jZXB0cy5odG1sI0lnbm9yaW5nX1B1bmN0dWF0aW9uIj4KKyAgICAgKiAoc2VlIElnbm9yaW5nIFB1bmN0dWF0aW9ucyBpbiB0aGUgdXNlciBndWlkZSk8L2E+IGF0IFBSSU1BUlkgdG8gVEVSVElBUlkKKyAgICAgKiBzdHJlbmd0aCwgYW4gYWRkaXRpb25hbCBzdHJlbmd0aCBsZXZlbCBjYW4KKyAgICAgKiBiZSB1c2VkIHRvIGRpc3Rpbmd1aXNoIHdvcmRzIHdpdGggYW5kIHdpdGhvdXQgcHVuY3R1YXRpb24uCisgICAgICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZXhwbGFuYXRpb24uCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNnZXRTdHJlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFFVQVRFUk5BUlkgPSAzOworCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogU21hbGxlc3QgQ29sbGF0b3Igc3RyZW5ndGggdmFsdWUuIFdoZW4gYWxsIG90aGVyIHN0cmVuZ3RocyBhcmUgZXF1YWwsCisgICAgICogdGhlIElERU5USUNBTCBzdHJlbmd0aCBpcyB1c2VkIGFzIGEgdGllYnJlYWtlci4gVGhlIFVuaWNvZGUgY29kZSBwb2ludAorICAgICAqIHZhbHVlcyBvZiB0aGUgTkZEIGZvcm0gb2YgZWFjaCBzdHJpbmcgYXJlIGNvbXBhcmVkLCBqdXN0IGluIGNhc2UgdGhlcmUKKyAgICAgKiBpcyBubyBkaWZmZXJlbmNlLgorICAgICAqIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGV4cGxhbmF0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoaXMgdmFsdWUgaXMgZGlmZmVyZW50IGZyb20gSkRLJ3MKKyAgICAgKiA8L3A+CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSURFTlRJQ0FMID0gMTU7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIEphdmEgQVBJcyBvbmx5LiAgSXQKKyAgICAgKiBzaG91bGQgbm90IGJlIHVzZWQsIElERU5USUNBTCBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkLiAgSUNVJ3MKKyAgICAgKiBjb2xsYXRpb24gZG9lcyBub3Qgc3VwcG9ydCBKYXZhJ3MgRlVMTF9ERUNPTVBPU0lUSU9OIG1vZGUuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBGVUxMX0RFQ09NUE9TSVRJT04gPSBJREVOVElDQUw7CisKKyAgICAvKioKKyAgICAgKiA8cD5EZWNvbXBvc2l0aW9uIG1vZGUgdmFsdWUuIFdpdGggTk9fREVDT01QT1NJVElPTiBzZXQsIFN0cmluZ3MKKyAgICAgKiB3aWxsIG5vdCBiZSBkZWNvbXBvc2VkIGZvciBjb2xsYXRpb24uIFRoaXMgaXMgdGhlIGRlZmF1bHQKKyAgICAgKiBkZWNvbXBvc2l0aW9uIHNldHRpbmcgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQgYnkgdGhlIGxvY2FsZQorICAgICAqIHVzZWQgdG8gY3JlYXRlIHRoZSBDb2xsYXRvci48L3A+CisgICAgICoKKyAgICAgKiA8cD48c3Ryb25nPk5vdGU8L3N0cm9uZz4gdGhpcyB2YWx1ZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgSkRLJ3MuPC9wPgorICAgICAqIEBzZWUgI0NBTk9OSUNBTF9ERUNPTVBPU0lUSU9OCisgICAgICogQHNlZSAjZ2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBzZWUgI3NldERlY29tcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBOT19ERUNPTVBPU0lUSU9OID0gMTY7CisKKyAgICAvKioKKyAgICAgKiA8cD5EZWNvbXBvc2l0aW9uIG1vZGUgdmFsdWUuIFdpdGggQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04gc2V0LAorICAgICAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgY2Fub25pY2FsIHZhcmlhbnRzIGFjY29yZGluZyB0byB0aGUgVW5pY29kZSBzdGFuZGFyZAorICAgICAqIHdpbGwgYmUgZGVjb21wb3NlZCBmb3IgY29sbGF0aW9uLjwvcD4KKyAgICAgKgorICAgICAqIDxwPkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OIGNvcnJlc3BvbmRzIHRvIE5vcm1hbGl6YXRpb24gRm9ybSBEIGFzCisgICAgICogZGVzY3JpYmVkIGluIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvIj4KKyAgICAgKiBVbmljb2RlIFRlY2huaWNhbCBSZXBvcnQgIzE1PC9hPi4KKyAgICAgKiA8L3A+CisgICAgICogQHNlZSAjTk9fREVDT01QT1NJVElPTgorICAgICAqIEBzZWUgI2dldERlY29tcG9zaXRpb24KKyAgICAgKiBAc2VlICNzZXREZWNvbXBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04gPSAxNzsKKworICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBwdWJsaWMgc2V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogPHA+U2V0cyB0aGlzIENvbGxhdG9yJ3Mgc3RyZW5ndGggcHJvcGVydHkuIFRoZSBzdHJlbmd0aCBwcm9wZXJ0eQorICAgICAqIGRldGVybWluZXMgdGhlIG1pbmltdW0gbGV2ZWwgb2YgZGlmZmVyZW5jZSBjb25zaWRlcmVkIHNpZ25pZmljYW50CisgICAgICogZHVyaW5nIGNvbXBhcmlzb24uPC9wPgorICAgICAqCisgICAgICogPHA+VGhlIGRlZmF1bHQgc3RyZW5ndGggZm9yIHRoZSBDb2xsYXRvciBpcyBURVJUSUFSWSwgdW5sZXNzIHNwZWNpZmllZAorICAgICAqIG90aGVyd2lzZSBieSB0aGUgbG9jYWxlIHVzZWQgdG8gY3JlYXRlIHRoZSBDb2xsYXRvci48L3A+CisgICAgICoKKyAgICAgKiA8cD5TZWUgdGhlIENvbGxhdG9yIGNsYXNzIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlIG9mIHVzZS48L3A+CisgICAgICogQHBhcmFtIG5ld1N0cmVuZ3RoIHRoZSBuZXcgc3RyZW5ndGggdmFsdWUuCisgICAgICogQHNlZSAjZ2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNQUklNQVJZCisgICAgICogQHNlZSAjU0VDT05EQVJZCisgICAgICogQHNlZSAjVEVSVElBUlkKKyAgICAgKiBAc2VlICNRVUFURVJOQVJZCisgICAgICogQHNlZSAjSURFTlRJQ0FMCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIG5ldyBzdHJlbmd0aCB2YWx1ZSBpcyBub3Qgb25lCisgICAgICogICAgICAgICAgICAgICAgb2YgUFJJTUFSWSwgU0VDT05EQVJZLCBURVJUSUFSWSwgUVVBVEVSTkFSWSBvciBJREVOVElDQUwuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U3RyZW5ndGgoaW50IG5ld1N0cmVuZ3RoKQorICAgIHsKKyAgICAgICAgaWYgKChuZXdTdHJlbmd0aCAhPSBQUklNQVJZKSAmJgorICAgICAgICAgICAgKG5ld1N0cmVuZ3RoICE9IFNFQ09OREFSWSkgJiYKKyAgICAgICAgICAgIChuZXdTdHJlbmd0aCAhPSBURVJUSUFSWSkgJiYKKyAgICAgICAgICAgIChuZXdTdHJlbmd0aCAhPSBRVUFURVJOQVJZKSAmJgorICAgICAgICAgICAgKG5ld1N0cmVuZ3RoICE9IElERU5USUNBTCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkluY29ycmVjdCBjb21wYXJpc29uIGxldmVsLiIpOworICAgICAgICB9CisgICAgICAgIG1fc3RyZW5ndGhfID0gbmV3U3RyZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0IHRoZSBkZWNvbXBvc2l0aW9uIG1vZGUgb2YgdGhpcyBDb2xsYXRvci4gIFNldHRpbmcgdGhpcworICAgICAqIGRlY29tcG9zaXRpb24gcHJvcGVydHkgd2l0aCBDQU5PTklDQUxfREVDT01QT1NJVElPTiBhbGxvd3MgdGhlCisgICAgICogQ29sbGF0b3IgdG8gaGFuZGxlIHVuLW5vcm1hbGl6ZWQgdGV4dCBwcm9wZXJseSwgcHJvZHVjaW5nIHRoZQorICAgICAqIHNhbWUgcmVzdWx0cyBhcyBpZiB0aGUgdGV4dCB3ZXJlIG5vcm1hbGl6ZWQuIElmCisgICAgICogTk9fREVDT01QT1NJVElPTiBpcyBzZXQsIGl0IGlzIHRoZSB1c2VyJ3MgcmVzcG9uc2liaWxpdHkgdG8KKyAgICAgKiBpbnN1cmUgdGhhdCBhbGwgdGV4dCBpcyBhbHJlYWR5IGluIHRoZSBhcHByb3ByaWF0ZSBmb3JtIGJlZm9yZQorICAgICAqIGEgY29tcGFyaXNvbiBvciBiZWZvcmUgZ2V0dGluZyBhIENvbGxhdGlvbktleS4gQWRqdXN0aW5nCisgICAgICogZGVjb21wb3NpdGlvbiBtb2RlIGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3QgYmV0d2VlbiBmYXN0ZXIgYW5kCisgICAgICogbW9yZSBjb21wbGV0ZSBjb2xsYXRpb24gYmVoYXZpb3IuPC9wPgorICAgICAqCisgICAgICogPHA+U2luY2UgYSBncmVhdCBtYW55IG9mIHRoZSB3b3JsZCdzIGxhbmd1YWdlcyBkbyBub3QgcmVxdWlyZQorICAgICAqIHRleHQgbm9ybWFsaXphdGlvbiwgbW9zdCBsb2NhbGVzIHNldCBOT19ERUNPTVBPU0lUSU9OIGFzIHRoZQorICAgICAqIGRlZmF1bHQgZGVjb21wb3NpdGlvbiBtb2RlLjwvcD4KKyAgICAgKgorICAgICAqIFRoZSBkZWZhdWx0IGRlY29tcG9zaXRvbiBtb2RlIGZvciB0aGUgQ29sbGF0b3IgaXMKKyAgICAgKiBOT19ERUNPTVBPU0lUT04sIHVubGVzcyBzcGVjaWZpZWQgb3RoZXJ3aXNlIGJ5IHRoZSBsb2NhbGUgdXNlZAorICAgICAqIHRvIGNyZWF0ZSB0aGUgQ29sbGF0b3IuPC9wPgorICAgICAqCisgICAgICogPHA+U2VlIGdldERlY29tcG9zaXRpb24gZm9yIGEgZGVzY3JpcHRpb24gb2YgZGVjb21wb3NpdGlvbgorICAgICAqIG1vZGUuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGRlY29tcG9zaXRpb24gdGhlIG5ldyBkZWNvbXBvc2l0aW9uIG1vZGUKKyAgICAgKiBAc2VlICNnZXREZWNvbXBvc2l0aW9uCisgICAgICogQHNlZSAjTk9fREVDT01QT1NJVElPTgorICAgICAqIEBzZWUgI0NBTk9OSUNBTF9ERUNPTVBPU0lUSU9OCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gSWYgdGhlIGdpdmVuIHZhbHVlIGlzIG5vdCBhIHZhbGlkCisgICAgICogICAgICAgICAgICBkZWNvbXBvc2l0aW9uIG1vZGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGVjb21wb3NpdGlvbihpbnQgZGVjb21wb3NpdGlvbikKKyAgICB7CisgICAgICAgIGlmICgoZGVjb21wb3NpdGlvbiAhPSBOT19ERUNPTVBPU0lUSU9OKSAmJgorICAgICAgICAgICAgKGRlY29tcG9zaXRpb24gIT0gQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04pKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJXcm9uZyBkZWNvbXBvc2l0aW9uIG1vZGUuIik7CisgICAgICAgIH0KKyAgICAgICAgbV9kZWNvbXBvc2l0aW9uXyA9IGRlY29tcG9zaXRpb247CisgICAgfQorCisgICAgLy8gcHVibGljIGdldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIENvbGxhdG9yIGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBUaGUgZGVmYXVsdCBsb2NhbGUgaXMgZGV0ZXJtaW5lZCBieSBqYXZhLnV0aWwuTG9jYWxlLmdldERlZmF1bHQoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBDb2xsYXRvciBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIChmb3IgZXhhbXBsZSwgZW5fVVMpIGlmIGl0CisgICAgICogICAgICAgICBpcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4gT3RoZXJ3aXNlIGlmIHRoZXJlIGlzIG5vIENvbGxhdG9yCisgICAgICogICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgbG9jYWxlLCB0aGUgZGVmYXVsdCBVQ0EgY29sbGF0b3IKKyAgICAgKiAgICAgICAgIHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogQHNlZSBqYXZhLnV0aWwuTG9jYWxlI2dldERlZmF1bHQoKQorICAgICAqIEBzZWUgI2dldEluc3RhbmNlKExvY2FsZSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbGxhdG9yIGdldEluc3RhbmNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xvbmUgdGhlIGNvbGxhdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqIEByZXR1cm4gYSBjbG9uZSBvZiB0aGlzIGNvbGxhdG9yLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB0aHJvd3MgQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24geworICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvLyBiZWdpbiByZWdpc3RyeSBzdHVmZgorCisgICAgLyoqCisgICAgICogQSBmYWN0b3J5IHVzZWQgd2l0aCByZWdpc3RlckZhY3RvcnkgdG8gcmVnaXN0ZXIgbXVsdGlwbGUgY29sbGF0b3JzIGFuZCBwcm92aWRlCisgICAgICogZGlzcGxheSBuYW1lcyBmb3IgdGhlbS4gIElmIHN0YW5kYXJkIGxvY2FsZSBkaXNwbGF5IG5hbWVzIGFyZSBzdWZmaWNpZW50LCAKKyAgICAgKiBDb2xsYXRvciBpbnN0YW5jZXMgbWF5IGJlIHJlZ2lzdGVyZWQgaW5zdGVhZC4KKyAgICAgKiA8cD48Yj5Ob3RlOjwvYj4gYXMgb2YgSUNVNEogMy4yLCB0aGUgZGVmYXVsdCBBUEkgZm9yIENvbGxhdG9yRmFjdG9yeSB1c2VzCisgICAgICogVUxvY2FsZSBpbnN0ZWFkIG9mIExvY2FsZS4gIEluc3RlYWQgb2Ygb3ZlcnJpZGluZyBjcmVhdGVDb2xsYXRvcihMb2NhbGUpLAorICAgICAqIG5ldyBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIG92ZXJyaWRlIGNyZWF0ZUNvbGxhdG9yKFVMb2NhbGUpLiAgTm90ZSB0aGF0CisgICAgICogb25lIG9mIHRoZXNlIHR3byBtZXRob2RzIDxiPk1VU1Q8L2I+IGJlIG92ZXJyaWRkZW4gb3IgZWxzZSBhbiBpbmZpbml0ZQorICAgICAqIGxvb3Agd2lsbCBvY2N1ci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGFic3RyYWN0IGNsYXNzIENvbGxhdG9yRmFjdG9yeSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIGZhY3Rvcnkgd2lsbCBiZSB2aXNpYmxlLiAgRGVmYXVsdCBpcyB0cnVlLgorICAgICAgICAgKiBJZiBub3QgdmlzaWJsZSwgdGhlIGxvY2FsZXMgc3VwcG9ydGVkIGJ5IHRoaXMgZmFjdG9yeSB3aWxsIG5vdAorICAgICAgICAgKiBiZSBsaXN0ZWQgYnkgZ2V0QXZhaWxhYmxlTG9jYWxlcy4KKyAgICAgICAgICoKKyAgICAgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgZmFjdG9yeSBpcyB2aXNpYmxlCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gdmlzaWJsZSgpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiBhbiBpbnN0YW5jZSBvZiB0aGUgYXBwcm9wcmlhdGUgY29sbGF0b3IuICBJZiB0aGUgbG9jYWxlCisgICAgICAgICAqIGlzIG5vdCBzdXBwb3J0ZWQsIHJldHVybiBudWxsLgorICAgICAgICAgKiA8Yj5Ob3RlOjwvYj4gYXMgb2YgSUNVNEogMy4yLCBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIG92ZXJyaWRlCisgICAgICAgICAqIHRoaXMgbWV0aG9kIGluc3RlYWQgb2YgY3JlYXRlQ29sbGF0b3IoTG9jYWxlKS4KKyAgICAgICAgICogQHBhcmFtIGxvYyB0aGUgbG9jYWxlIGZvciB3aGljaCB0aGlzIGNvbGxhdG9yIGlzIHRvIGJlIGNyZWF0ZWQuCisgICAgICAgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgY29sbGF0b3IuCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIENvbGxhdG9yIGNyZWF0ZUNvbGxhdG9yKFVMb2NhbGUgbG9jKSB7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ29sbGF0b3IobG9jLnRvTG9jYWxlKCkpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiBhbiBpbnN0YW5jZSBvZiB0aGUgYXBwcm9wcmlhdGUgY29sbGF0b3IuICBJZiB0aGUgbG9jYWxlCisgICAgICAgICAqIGlzIG5vdCBzdXBwb3J0ZWQsIHJldHVybiBudWxsLgorICAgICAgICAgKiA8cD48Yj5Ob3RlOjwvYj4gYXMgb2YgSUNVNEogMy4yLCBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIG92ZXJyaWRlCisgICAgICAgICAqIGNyZWF0ZUNvbGxhdG9yKFVMb2NhbGUpIGluc3RlYWQgb2YgdGhpcyBtZXRob2QsIGFuZCBpbmhlcml0IHRoaXMKKyAgICAgICAgICogbWV0aG9kJ3MgaW1wbGVtZW50YXRpb24uICBUaGlzIG1ldGhvZCBpcyBubyBsb25nZXIgYWJzdHJhY3QKKyAgICAgICAgICogYW5kIGluc3RlYWQgZGVsZWdhdGVzIHRvIGNyZWF0ZUNvbGxhdG9yKFVMb2NhbGUpLgorICAgICAgICAgKiBAcGFyYW0gbG9jIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoaXMgY29sbGF0b3IgaXMgdG8gYmUgY3JlYXRlZC4KKyAgICAgICAgICogQHJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBjb2xsYXRvci4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICAgcHVibGljIENvbGxhdG9yIGNyZWF0ZUNvbGxhdG9yKExvY2FsZSBsb2MpIHsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVDb2xsYXRvcihVTG9jYWxlLmZvckxvY2FsZShsb2MpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGNvbGxhdG9yIGZvciB0aGUgb2JqZWN0TG9jYWxlLCBsb2NhbGl6ZWQgZm9yIHRoZSBkaXNwbGF5TG9jYWxlLgorICAgICAgICAgKiBJZiBvYmplY3RMb2NhbGUgaXMgbm90IHZpc2libGUgb3Igbm90IGRlZmluZWQgYnkgdGhlIGZhY3RvcnksIHJldHVybiBudWxsLgorICAgICAgICAgKiBAcGFyYW0gb2JqZWN0TG9jYWxlIHRoZSBsb2NhbGUgaWRlbnRpZnlpbmcgdGhlIGNvbGxhdG9yCisgICAgICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIGNvbGxhdG9yIHNob3VsZCBiZSBsb2NhbGl6ZWQKKyAgICAgICAgICogQHJldHVybiB0aGUgZGlzcGxheSBuYW1lCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShMb2NhbGUgb2JqZWN0TG9jYWxlLCBMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lKFVMb2NhbGUuZm9yTG9jYWxlKG9iamVjdExvY2FsZSksIFVMb2NhbGUuZm9yTG9jYWxlKGRpc3BsYXlMb2NhbGUpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGNvbGxhdG9yIGZvciB0aGUgb2JqZWN0TG9jYWxlLCBsb2NhbGl6ZWQgZm9yIHRoZSBkaXNwbGF5TG9jYWxlLgorICAgICAgICAgKiBJZiBvYmplY3RMb2NhbGUgaXMgbm90IHZpc2libGUgb3Igbm90IGRlZmluZWQgYnkgdGhlIGZhY3RvcnksIHJldHVybiBudWxsLgorICAgICAgICAgKiBAcGFyYW0gb2JqZWN0TG9jYWxlIHRoZSBsb2NhbGUgaWRlbnRpZnlpbmcgdGhlIGNvbGxhdG9yCisgICAgICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIGNvbGxhdG9yIHNob3VsZCBiZSBsb2NhbGl6ZWQKKyAgICAgICAgICogQHJldHVybiB0aGUgZGlzcGxheSBuYW1lCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShVTG9jYWxlIG9iamVjdExvY2FsZSwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgICAgICBpZiAodmlzaWJsZSgpKSB7CisgICAgICAgICAgICAgICAgU2V0IHN1cHBvcnRlZCA9IGdldFN1cHBvcnRlZExvY2FsZUlEcygpOworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gb2JqZWN0TG9jYWxlLmdldEJhc2VOYW1lKCk7CisgICAgICAgICAgICAgICAgaWYgKHN1cHBvcnRlZC5jb250YWlucyhuYW1lKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0TG9jYWxlLmdldERpc3BsYXlOYW1lKGRpc3BsYXlMb2NhbGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiBhbiB1bm1vZGlmaWFibGUgY29sbGVjdGlvbiBvZiB0aGUgbG9jYWxlIG5hbWVzIGRpcmVjdGx5IAorICAgICAgICAgKiBzdXBwb3J0ZWQgYnkgdGhpcyBmYWN0b3J5LgorICAgICAgICAgKgorICAgICAgICAgKiBAcmV0dXJuIHRoZSBzZXQgb2Ygc3VwcG9ydGVkIGxvY2FsZSBJRHMuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGFic3RyYWN0IFNldCBnZXRTdXBwb3J0ZWRMb2NhbGVJRHMoKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogRW1wdHkgZGVmYXVsdCBjb25zdHJ1Y3Rvci4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgQ29sbGF0b3JGYWN0b3J5KCkgeworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGFic3RyYWN0IGNsYXNzIFNlcnZpY2VTaGltIHsKKyAgICAgICAgYWJzdHJhY3QgQ29sbGF0b3IgZ2V0SW5zdGFuY2UoVUxvY2FsZSBsKTsKKyAgICAgICAgYWJzdHJhY3QgT2JqZWN0IHJlZ2lzdGVySW5zdGFuY2UoQ29sbGF0b3IgYywgVUxvY2FsZSBsKTsKKyAgICAgICAgYWJzdHJhY3QgT2JqZWN0IHJlZ2lzdGVyRmFjdG9yeShDb2xsYXRvckZhY3RvcnkgZik7CisgICAgICAgIGFic3RyYWN0IGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3Qgayk7CisgICAgICAgIGFic3RyYWN0IExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKTsgLy8gVE9ETyByZW1vdmUKKyAgICAgICAgYWJzdHJhY3QgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgIGFic3RyYWN0IFN0cmluZyBnZXREaXNwbGF5TmFtZShVTG9jYWxlIG9sLCBVTG9jYWxlIGRsKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU2VydmljZVNoaW0gc2hpbTsKKyAgICBwcml2YXRlIHN0YXRpYyBTZXJ2aWNlU2hpbSBnZXRTaGltKCkgeworICAgICAgICAvLyBOb3RlOiB0aGlzIGluc3RhbnRpYXRpb24gaXMgc2FmZSBvbiBsb29zZS1tZW1vcnktbW9kZWwgY29uZmlndXJhdGlvbnMKKyAgICAgICAgLy8gZGVzcGl0ZSBsYWNrIG9mIHN5bmNocm9uaXphdGlvbiwgc2luY2UgdGhlIHNoaW0gaW5zdGFuY2UgaGFzIG5vIHN0YXRlLS0KKyAgICAgICAgLy8gaXQncyBhbGwgaW4gdGhlIGNsYXNzIGluaXQuICBUaGUgd29yc3QgcHJvYmxlbSBpcyB3ZSBtaWdodCBpbnN0YW50aWF0ZQorICAgICAgICAvLyB0d28gc2hpbSBpbnN0YW5jZXMsIGJ1dCB0aGV5J2xsIHNoYXJlIHRoZSBzYW1lIHN0YXRlIHNvIHRoYXQncyBvay4KKyAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDbGFzcyBjbHMgPSBDbGFzcy5mb3JOYW1lKCJjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yU2VydmljZVNoaW0iKTsKKyAgICAgICAgICAgICAgICBzaGltID0gKFNlcnZpY2VTaGltKWNscy5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICAgICAgaWYoREVCVUcpeworICAgICAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNoaW07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgQ29sbGF0b3IgZm9yIHRoZSBkZXNpcmVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBkZXNpcmVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIENvbGxhdG9yIGZvciB0aGUgZGVzaXJlZCBsb2NhbGUgaWYgaXQgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkuCisgICAgICogICAgICAgICBPdGhlcndpc2UgaWYgdGhlcmUgaXMgbm8gQ29sbGF0b3IKKyAgICAgKiAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBsb2NhbGUsIGEgZGVmYXVsdCBVQ0EgY29sbGF0b3Igd2lsbAorICAgICAqICAgICAgICAgYmUgcmV0dXJuZWQuCisgICAgICogQHNlZSBqYXZhLnV0aWwuTG9jYWxlCisgICAgICogQHNlZSBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGUKKyAgICAgKiBAc2VlICNnZXRJbnN0YW5jZShMb2NhbGUpCisgICAgICogQHNlZSAjZ2V0SW5zdGFuY2UoKQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBDb2xsYXRvciBnZXRJbnN0YW5jZShVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAvLyBmZXRjaGluZyBmcm9tIHNlcnZpY2UgY2FjaGUgaXMgZmFzdGVyIHRoYW4gaW5zdGFudGlhdGlvbgorICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLmdldEluc3RhbmNlKGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgQ29sbGF0b3IgZm9yIHRoZSBkZXNpcmVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBkZXNpcmVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIENvbGxhdG9yIGZvciB0aGUgZGVzaXJlZCBsb2NhbGUgaWYgaXQgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkuCisgICAgICogICAgICAgICBPdGhlcndpc2UgaWYgdGhlcmUgaXMgbm8gQ29sbGF0b3IKKyAgICAgKiAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBsb2NhbGUsIGEgZGVmYXVsdCBVQ0EgY29sbGF0b3Igd2lsbAorICAgICAqICAgICAgICAgYmUgcmV0dXJuZWQuCisgICAgICogQHNlZSBqYXZhLnV0aWwuTG9jYWxlCisgICAgICogQHNlZSBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGUKKyAgICAgKiBAc2VlICNnZXRJbnN0YW5jZShVTG9jYWxlKQorICAgICAqIEBzZWUgI2dldEluc3RhbmNlKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbGxhdG9yIGdldEluc3RhbmNlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGEgY29sbGF0b3IgYXMgdGhlIGRlZmF1bHQgY29sbGF0b3IgZm9yIHRoZSBwcm92aWRlZCBsb2NhbGUuICBUaGUKKyAgICAgKiBjb2xsYXRvciBzaG91bGQgbm90IGJlIG1vZGlmaWVkIGFmdGVyIGl0IGlzIHJlZ2lzdGVyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29sbGF0b3IgdGhlIGNvbGxhdG9yIHRvIHJlZ2lzdGVyCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGZvciB3aGljaCB0aGlzIGlzIHRoZSBkZWZhdWx0IGNvbGxhdG9yCisgICAgICogQHJldHVybiBhbiBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoZSByZWdpc3RlcmVkIGNvbGxhdG9yLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCByZWdpc3Rlckluc3RhbmNlKENvbGxhdG9yIGNvbGxhdG9yLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLnJlZ2lzdGVySW5zdGFuY2UoY29sbGF0b3IsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBjb2xsYXRvciBmYWN0b3J5LgorICAgICAqCisgICAgICogQHBhcmFtIGZhY3RvcnkgdGhlIGZhY3RvcnkgdG8gcmVnaXN0ZXIKKyAgICAgKiBAcmV0dXJuIGFuIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIHVucmVnaXN0ZXIgdGhlIHJlZ2lzdGVyZWQgZmFjdG9yeS4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IHJlZ2lzdGVyRmFjdG9yeShDb2xsYXRvckZhY3RvcnkgZmFjdG9yeSkgeworICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLnJlZ2lzdGVyRmFjdG9yeShmYWN0b3J5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGEgY29sbGF0b3IgcHJldmlvdXNseSByZWdpc3RlcmVkIHVzaW5nIHJlZ2lzdGVySW5zdGFuY2UuCisgICAgICogQHBhcmFtIHJlZ2lzdHJ5S2V5IHRoZSBvYmplY3QgcHJldmlvdXNseSByZXR1cm5lZCBieSByZWdpc3Rlckluc3RhbmNlLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29sbGF0b3Igd2FzIHN1Y2Nlc3NmdWxseSB1bnJlZ2lzdGVyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IHJlZ2lzdHJ5S2V5KSB7CisgICAgICAgIGlmIChzaGltID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2hpbS51bnJlZ2lzdGVyKHJlZ2lzdHJ5S2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBsb2NhbGVzLCBhcyBMb2NhbGUgb2JqZWN0cywgZm9yIHdoaWNoIGNvbGxhdG9ycworICAgICAqIGFyZSBpbnN0YWxsZWQuICBOb3RlIHRoYXQgTG9jYWxlIG9iamVjdHMgZG8gbm90IHN1cHBvcnQgUkZDIDMwNjYuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBsb2NhbGVzIGluIHdoaWNoIGNvbGxhdG9ycyBhcmUgaW5zdGFsbGVkLgorICAgICAqIFRoaXMgbGlzdCBpbmNsdWRlcyBhbnkgdGhhdCBoYXZlIGJlZW4gcmVnaXN0ZXJlZCwgaW4gYWRkaXRpb24gdG8KKyAgICAgKiB0aG9zZSB0aGF0IGFyZSBpbnN0YWxsZWQgd2l0aCBJQ1U0Si4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIC8vIFRPRE8gbWFrZSB0aGlzIHdyYXAgZ2V0QXZhaWxhYmxlVUxvY2FsZXMgbGF0ZXIKKyAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzaGltLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBsb2NhbGVzLCBhcyBVTG9jYWxlIG9iamVjdHMsIGZvciB3aGljaCBjb2xsYXRvcnMKKyAgICAgKiBhcmUgaW5zdGFsbGVkLiAgVUxvY2FsZSBvYmplY3RzIHN1cHBvcnQgUkZDIDMwNjYuCisgICAgICogQHJldHVybiB0aGUgbGlzdCBvZiBsb2NhbGVzIGluIHdoaWNoIGNvbGxhdG9ycyBhcmUgaW5zdGFsbGVkLgorICAgICAqIFRoaXMgbGlzdCBpbmNsdWRlcyBhbnkgdGhhdCBoYXZlIGJlZW4gcmVnaXN0ZXJlZCwgaW4gYWRkaXRpb24gdG8KKyAgICAgKiB0aG9zZSB0aGF0IGFyZSBpbnN0YWxsZWQgd2l0aCBJQ1U0Si4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzaGltLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoZSBsaXN0IG9mIGtleXdvcmRzIGZvciB0aGlzIHNlcnZpY2UuICBUaGlzIG11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGgKKyAgICAgKiB0aGUgcmVzb3VyY2UgZGF0YS4KKyAgICAgKiBAc2luY2UgSUNVIDMuMAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIEtFWVdPUkRTID0geyAiY29sbGF0aW9uIiB9OworCisgICAgLyoqCisgICAgICogVGhlIHJlc291cmNlIG5hbWUgZm9yIHRoaXMgc2VydmljZS4gIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCB0aGUgc2FtZSBhcworICAgICAqIHRoZSBrZXl3b3JkIGZvciB0aGlzIHNlcnZpY2UuCisgICAgICogQHNpbmNlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkVTT1VSQ0UgPSAiY29sbGF0aW9ucyI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcmVzb3VyY2UgYnVuZGxlIGJhc2UgbmFtZSBmb3IgdGhpcyBzZXJ2aWNlLgorICAgICAqICpzaW5jZSBJQ1UgMy4wCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJBU0UgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQ09MTEFUSU9OX0JBU0VfTkFNRTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBhcnJheSBvZiBhbGwgcG9zc2libGUga2V5d29yZHMgdGhhdCBhcmUgcmVsZXZhbnQgdG8KKyAgICAgKiBjb2xsYXRpb24uIEF0IHRoaXMgcG9pbnQsIHRoZSBvbmx5IHJlY29nbml6ZWQga2V5d29yZCBmb3IgdGhpcworICAgICAqIHNlcnZpY2UgaXMgImNvbGxhdGlvbiIuCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiB2YWxpZCBjb2xsYXRpb24ga2V5d29yZHMuCisgICAgICogQHNlZSAjZ2V0S2V5d29yZFZhbHVlcworICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBnZXRLZXl3b3JkcygpIHsKKyAgICAgICAgcmV0dXJuIEtFWVdPUkRTOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIGtleXdvcmQsIHJldHVybiBhbiBhcnJheSBvZiBhbGwgdmFsdWVzIGZvcgorICAgICAqIHRoYXQga2V5d29yZCB0aGF0IGFyZSBjdXJyZW50bHkgaW4gdXNlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIG9uZSBvZiB0aGUga2V5d29yZHMgcmV0dXJuZWQgYnkgZ2V0S2V5d29yZHMuCisgICAgICogQHNlZSAjZ2V0S2V5d29yZHMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nW10gZ2V0S2V5d29yZFZhbHVlcyhTdHJpbmcga2V5d29yZCkgeworICAgICAgICBpZiAoIWtleXdvcmQuZXF1YWxzKEtFWVdPUkRTWzBdKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBrZXl3b3JkOiAiICsga2V5d29yZCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEtleXdvcmRWYWx1ZXMoQkFTRSwgUkVTT1VSQ0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgbG9jYWxlIGZvciB0aGUgZ2l2ZW4KKyAgICAgKiByZXF1ZXN0ZWQgbG9jYWxlLCB3aXRoIHJlc3BlY3QgdG8gZ2l2ZW4ga2V5d29yZCwgZm9yIHRoZQorICAgICAqIGNvbGxhdGlvbiBzZXJ2aWNlLiAgSWYgdHdvIGxvY2FsZXMgcmV0dXJuIHRoZSBzYW1lIHJlc3VsdCwgdGhlbgorICAgICAqIGNvbGxhdG9ycyBpbnN0YW50aWF0ZWQgZm9yIHRoZXNlIGxvY2FsZXMgd2lsbCBiZWhhdmUKKyAgICAgKiBlcXVpdmFsZW50bHkuICBUaGUgY29udmVyc2UgaXMgbm90IGFsd2F5cyB0cnVlOyB0d28gY29sbGF0b3JzCisgICAgICogbWF5IGluIGZhY3QgYmUgZXF1aXZhbGVudCwgYnV0IHJldHVybiBkaWZmZXJlbnQgcmVzdWx0cywgZHVlIHRvCisgICAgICogaW50ZXJuYWwgZGV0YWlscy4gIFRoZSByZXR1cm4gcmVzdWx0IGhhcyBubyBvdGhlciBtZWFuaW5nIHRoYW4KKyAgICAgKiB0aGF0IHN0YXRlZCBhYm92ZSwgYW5kIGltcGxpZXMgbm90aGluZyBhcyB0byB0aGUgcmVsYXRpb25zaGlwCisgICAgICogYmV0d2VlbiB0aGUgdHdvIGxvY2FsZXMuICBUaGlzIGlzIGludGVuZGVkIGZvciB1c2UgYnkKKyAgICAgKiBhcHBsaWNhdGlvbnMgd2hvIHdpc2ggdG8gY2FjaGUgY29sbGF0b3JzLCBvciBvdGhlcndpc2UgcmV1c2UKKyAgICAgKiBjb2xsYXRvcnMgd2hlbiBwb3NzaWJsZS4gIFRoZSBmdW5jdGlvbmFsIGVxdWl2YWxlbnQgbWF5IGNoYW5nZQorICAgICAqIG92ZXIgdGltZS4gIEZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIHRoZSA8YQorICAgICAqIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9sb2NhbGUuaHRtbCNzZXJ2aWNlcyI+CisgICAgICogTG9jYWxlcyBhbmQgU2VydmljZXM8L2E+IHNlY3Rpb24gb2YgdGhlIElDVSBVc2VyIEd1aWRlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIGEgcGFydGljdWxhciBrZXl3b3JkIGFzIGVudW1lcmF0ZWQgYnkKKyAgICAgKiBnZXRLZXl3b3Jkcy4KKyAgICAgKiBAcGFyYW0gbG9jSUQgVGhlIHJlcXVlc3RlZCBsb2NhbGUKKyAgICAgKiBAcGFyYW0gaXNBdmFpbGFibGUgSWYgbm9uLW51bGwsIGlzQXZhaWxhYmxlWzBdIHdpbGwgcmVjZWl2ZSBhbmQKKyAgICAgKiBvdXRwdXQgYm9vbGVhbiB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIHdhcworICAgICAqICdhdmFpbGFibGUnIHRvIHRoZSBjb2xsYXRpb24gc2VydmljZS4gVGhlIGxvY2FsZSBpcyBkZWZpbmVkIGFzCisgICAgICogJ2F2YWlsYWJsZScgaWYgaXQgcGh5c2ljYWxseSBleGlzdHMgd2l0aGluIHRoZSBjb2xsYXRpb24gbG9jYWxlCisgICAgICogZGF0YS4gIElmIG5vbi1udWxsLCBpc0F2YWlsYWJsZSBtdXN0IGhhdmUgbGVuZ3RoID49IDEuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoU3RyaW5nIGtleXdvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgbG9jSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNBdmFpbGFibGVbXSkgeworICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCQVNFLCBSRVNPVVJDRSwga2V5d29yZCwgbG9jSUQsIGlzQXZhaWxhYmxlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudCBsb2NhbGUgZm9yIHRoZSBnaXZlbgorICAgICAqIHJlcXVlc3RlZCBsb2NhbGUsIHdpdGggcmVzcGVjdCB0byBnaXZlbiBrZXl3b3JkLCBmb3IgdGhlCisgICAgICogY29sbGF0aW9uIHNlcnZpY2UuCisgICAgICogQHBhcmFtIGtleXdvcmQgYSBwYXJ0aWN1bGFyIGtleXdvcmQgYXMgZW51bWVyYXRlZCBieQorICAgICAqIGdldEtleXdvcmRzLgorICAgICAqIEBwYXJhbSBsb2NJRCBUaGUgcmVxdWVzdGVkIGxvY2FsZQorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsZQorICAgICAqIEBzZWUgI2dldEZ1bmN0aW9uYWxFcXVpdmFsZW50KFN0cmluZyxVTG9jYWxlLGJvb2xlYW5bXSkKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBnZXRGdW5jdGlvbmFsRXF1aXZhbGVudChTdHJpbmcga2V5d29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2NJRCkgeworICAgICAgICByZXR1cm4gZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoa2V5d29yZCwgbG9jSUQsIG51bGwpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5hbWUgb2YgdGhlIGNvbGxhdG9yIGZvciB0aGUgb2JqZWN0TG9jYWxlLCBsb2NhbGl6ZWQgZm9yIHRoZSBkaXNwbGF5TG9jYWxlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUgdGhlIGxvY2FsZSBvZiB0aGUgY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGZvciB0aGUgY29sbGF0b3IncyBkaXNwbGF5IG5hbWUKKyAgICAgKiBAcmV0dXJuIHRoZSBkaXNwbGF5IG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShMb2NhbGUgb2JqZWN0TG9jYWxlLCBMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLmdldERpc3BsYXlOYW1lKFVMb2NhbGUuZm9yTG9jYWxlKG9iamVjdExvY2FsZSksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUuZm9yTG9jYWxlKGRpc3BsYXlMb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5hbWUgb2YgdGhlIGNvbGxhdG9yIGZvciB0aGUgb2JqZWN0TG9jYWxlLCBsb2NhbGl6ZWQgZm9yIHRoZSBkaXNwbGF5TG9jYWxlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUgdGhlIGxvY2FsZSBvZiB0aGUgY29sbGF0b3IKKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGZvciB0aGUgY29sbGF0b3IncyBkaXNwbGF5IG5hbWUKKyAgICAgKiBAcmV0dXJuIHRoZSBkaXNwbGF5IG5hbWUKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgb2JqZWN0TG9jYWxlLCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5nZXREaXNwbGF5TmFtZShvYmplY3RMb2NhbGUsIGRpc3BsYXlMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbmFtZSBvZiB0aGUgY29sbGF0b3IgZm9yIHRoZSBvYmplY3RMb2NhbGUsIGxvY2FsaXplZCBmb3IgdGhlIGN1cnJlbnQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUgdGhlIGxvY2FsZSBvZiB0aGUgY29sbGF0b3IKKyAgICAgKiBAcmV0dXJuIHRoZSBkaXNwbGF5IG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShMb2NhbGUgb2JqZWN0TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRTaGltKCkuZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5mb3JMb2NhbGUob2JqZWN0TG9jYWxlKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbmFtZSBvZiB0aGUgY29sbGF0b3IgZm9yIHRoZSBvYmplY3RMb2NhbGUsIGxvY2FsaXplZCBmb3IgdGhlIGN1cnJlbnQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUgdGhlIGxvY2FsZSBvZiB0aGUgY29sbGF0b3IKKyAgICAgKiBAcmV0dXJuIHRoZSBkaXNwbGF5IG5hbWUKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgb2JqZWN0TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRTaGltKCkuZ2V0RGlzcGxheU5hbWUob2JqZWN0TG9jYWxlLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UmV0dXJucyB0aGlzIENvbGxhdG9yJ3Mgc3RyZW5ndGggcHJvcGVydHkuIFRoZSBzdHJlbmd0aCBwcm9wZXJ0eQorICAgICAqIGRldGVybWluZXMgdGhlIG1pbmltdW0gbGV2ZWwgb2YgZGlmZmVyZW5jZSBjb25zaWRlcmVkIHNpZ25pZmljYW50LgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBTZWUgdGhlIENvbGxhdG9yIGNsYXNzIGRlc2NyaXB0aW9uIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogPC9wPgorICAgICAqIEByZXR1cm4gdGhpcyBDb2xsYXRvcidzIGN1cnJlbnQgc3RyZW5ndGggcHJvcGVydHkuCisgICAgICogQHNlZSAjc2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNQUklNQVJZCisgICAgICogQHNlZSAjU0VDT05EQVJZCisgICAgICogQHNlZSAjVEVSVElBUlkKKyAgICAgKiBAc2VlICNRVUFURVJOQVJZCisgICAgICogQHNlZSAjSURFTlRJQ0FMCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXRTdHJlbmd0aCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9zdHJlbmd0aF87CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogR2V0IHRoZSBkZWNvbXBvc2l0aW9uIG1vZGUgb2YgdGhpcyBDb2xsYXRvci4gRGVjb21wb3NpdGlvbiBtb2RlCisgICAgICogZGV0ZXJtaW5lcyBob3cgVW5pY29kZSBjb21wb3NlZCBjaGFyYWN0ZXJzIGFyZSBoYW5kbGVkLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBTZWUgdGhlIENvbGxhdG9yIGNsYXNzIGRlc2NyaXB0aW9uIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogPC9wPgorICAgICAqIEByZXR1cm4gdGhlIGRlY29tcG9zaXRpb24gbW9kZQorICAgICAqIEBzZWUgI3NldERlY29tcG9zaXRpb24KKyAgICAgKiBAc2VlICNOT19ERUNPTVBPU0lUSU9OCisgICAgICogQHNlZSAjQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT04KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldERlY29tcG9zaXRpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZGVjb21wb3NpdGlvbl87CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogQ29tcGFyZXMgdGhlIHNvdXJjZSB0ZXh0IFN0cmluZyB0byB0aGUgdGFyZ2V0IHRleHQgU3RyaW5nIGFjY29yZGluZyB0bworICAgICAqIHRoaXMgQ29sbGF0b3IncyBydWxlcywgc3RyZW5ndGggYW5kIGRlY29tcG9zaXRpb24gbW9kZS4KKyAgICAgKiBSZXR1cm5zIGFuIGludGVnZXIgbGVzcyB0aGFuLAorICAgICAqIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiB6ZXJvIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBzb3VyY2UgU3RyaW5nIGlzCisgICAgICogbGVzcyB0aGFuLCBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gdGhlIHRhcmdldCBTdHJpbmcuIFNlZSB0aGUgQ29sbGF0b3IKKyAgICAgKiBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHNvdXJjZSBTdHJpbmcuCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IFN0cmluZy4KKyAgICAgKiBAcmV0dXJuIFJldHVybnMgYW4gaW50ZWdlciB2YWx1ZS4gVmFsdWUgaXMgbGVzcyB0aGFuIHplcm8gaWYgc291cmNlIGlzCisgICAgICogICAgICAgICBsZXNzIHRoYW4gdGFyZ2V0LCB2YWx1ZSBpcyB6ZXJvIGlmIHNvdXJjZSBhbmQgdGFyZ2V0IGFyZSBlcXVhbCwKKyAgICAgKiAgICAgICAgIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvIGlmIHNvdXJjZSBpcyBncmVhdGVyIHRoYW4gdGFyZ2V0LgorICAgICAqIEBzZWUgQ29sbGF0aW9uS2V5CisgICAgICogQHNlZSAjZ2V0Q29sbGF0aW9uS2V5CisgICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiB0aHJvd24gaWYgZWl0aGVyIGFyZ3VtZW50cyBpcyBudWxsLgorICAgICAqICAgICAgICAgICAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biBpZiBlaXRoZXIgc291cmNlIG9yIHRhcmdldCBpcworICAgICAqICAgICAgICAgICAgbm90IG9mIHRoZSBjbGFzcyBTdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlKE9iamVjdCBzb3VyY2UsIE9iamVjdCB0YXJnZXQpCisgICAgeworICAgICAgICBpZiAoIShzb3VyY2UgaW5zdGFuY2VvZiBTdHJpbmcpIHx8ICEodGFyZ2V0IGluc3RhbmNlb2YgU3RyaW5nKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQXJndW1lbnRzIGhhdmUgdG8gYmUgb2YgdHlwZSBTdHJpbmciKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY29tcGFyZSgoU3RyaW5nKXNvdXJjZSwgKFN0cmluZyl0YXJnZXQpOworICAgIH0KKworICAgIC8vIHB1YmxpYyBvdGhlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgY29tcGFyaW5nIHRoZSBlcXVhbGl0eSBvZiB0d28gdGV4dCBTdHJpbmdzIHVzaW5nCisgICAgICogdGhpcyBDb2xsYXRvcidzIHJ1bGVzLCBzdHJlbmd0aCBhbmQgZGVjb21wb3NpdGlvbiBtb2RlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHNvdXJjZSBzdHJpbmcgdG8gYmUgY29tcGFyZWQuCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IHN0cmluZyB0byBiZSBjb21wYXJlZC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHN0cmluZ3MgYXJlIGVxdWFsIGFjY29yZGluZyB0byB0aGUgY29sbGF0aW9uCisgICAgICogICAgICAgICBydWxlcywgb3RoZXJ3aXNlIGZhbHNlLgorICAgICAqIEBzZWUgI2NvbXBhcmUKKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIHRocm93biBpZiBlaXRoZXIgYXJndW1lbnRzIGlzIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQpCisgICAgeworICAgICAgICByZXR1cm4gKGNvbXBhcmUoc291cmNlLCB0YXJnZXQpID09IDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhbiBVbmljb2RlU2V0IHRoYXQgY29udGFpbnMgYWxsIHRoZSBjaGFyYWN0ZXJzIGFuZCBzZXF1ZW5jZXMKKyAgICAgKiB0YWlsb3JlZCBpbiB0aGlzIGNvbGxhdG9yLgorICAgICAqIEByZXR1cm4gYSBwb2ludGVyIHRvIGEgVW5pY29kZVNldCBvYmplY3QgY29udGFpbmluZyBhbGwgdGhlCisgICAgICogICAgICAgICBjb2RlIHBvaW50cyBhbmQgc2VxdWVuY2VzIHRoYXQgbWF5IHNvcnQgZGlmZmVyZW50bHkgdGhhbgorICAgICAqICAgICAgICAgaW4gdGhlIFVDQS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRUYWlsb3JlZFNldCgpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVTZXQoMCwgMHgxMEZGRkYpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIENvbXBhcmVzIHRoZSBzb3VyY2UgdGV4dCBTdHJpbmcgdG8gdGhlIHRhcmdldCB0ZXh0IFN0cmluZyBhY2NvcmRpbmcgdG8KKyAgICAgKiB0aGlzIENvbGxhdG9yJ3MgcnVsZXMsIHN0cmVuZ3RoIGFuZCBkZWNvbXBvc2l0aW9uIG1vZGUuCisgICAgICogUmV0dXJucyBhbiBpbnRlZ2VyIGxlc3MgdGhhbiwKKyAgICAgKiBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gemVybyBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgc291cmNlIFN0cmluZyBpcworICAgICAqIGxlc3MgdGhhbiwgZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHRoZSB0YXJnZXQgU3RyaW5nLiBTZWUgdGhlIENvbGxhdG9yCisgICAgICogY2xhc3MgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUgb2YgdXNlLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2UgU3RyaW5nLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGhlIHRhcmdldCBTdHJpbmcuCisgICAgICogQHJldHVybiBSZXR1cm5zIGFuIGludGVnZXIgdmFsdWUuIFZhbHVlIGlzIGxlc3MgdGhhbiB6ZXJvIGlmIHNvdXJjZSBpcworICAgICAqICAgICAgICAgbGVzcyB0aGFuIHRhcmdldCwgdmFsdWUgaXMgemVybyBpZiBzb3VyY2UgYW5kIHRhcmdldCBhcmUgZXF1YWwsCisgICAgICogICAgICAgICB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gemVybyBpZiBzb3VyY2UgaXMgZ3JlYXRlciB0aGFuIHRhcmdldC4KKyAgICAgKiBAc2VlIENvbGxhdGlvbktleQorICAgICAqIEBzZWUgI2dldENvbGxhdGlvbktleQorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gdGhyb3duIGlmIGVpdGhlciBhcmd1bWVudHMgaXMgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGNvbXBhcmUoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCk7CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBUcmFuc2Zvcm1zIHRoZSBTdHJpbmcgaW50byBhIENvbGxhdGlvbktleSBzdWl0YWJsZSBmb3IgZWZmaWNpZW50CisgICAgICogcmVwZWF0ZWQgY29tcGFyaXNvbi4gIFRoZSByZXN1bHRpbmcga2V5IGRlcGVuZHMgb24gdGhlIGNvbGxhdG9yJ3MKKyAgICAgKiBydWxlcywgc3RyZW5ndGggYW5kIGRlY29tcG9zaXRpb24gbW9kZS4KKyAgICAgKiA8L3A+CisgICAgICogPHA+U2VlIHRoZSBDb2xsYXRpb25LZXkgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L3A+CisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc3RyaW5nIHRvIGJlIHRyYW5zZm9ybWVkIGludG8gYSBDb2xsYXRpb25LZXkuCisgICAgICogQHJldHVybiB0aGUgQ29sbGF0aW9uS2V5IGZvciB0aGUgZ2l2ZW4gU3RyaW5nIGJhc2VkIG9uIHRoaXMgQ29sbGF0b3IncworICAgICAqICAgICAgICAgY29sbGF0aW9uIHJ1bGVzLiBJZiB0aGUgc291cmNlIFN0cmluZyBpcyBudWxsLCBhIG51bGwKKyAgICAgKiAgICAgICAgIENvbGxhdGlvbktleSBpcyByZXR1cm5lZC4KKyAgICAgKiBAc2VlIENvbGxhdGlvbktleQorICAgICAqIEBzZWUgI2NvbXBhcmUoU3RyaW5nLCBTdHJpbmcpCisgICAgICogQHNlZSAjZ2V0UmF3Q29sbGF0aW9uS2V5CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IENvbGxhdGlvbktleSBnZXRDb2xsYXRpb25LZXkoU3RyaW5nIHNvdXJjZSk7CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgc2ltcGxlciBmb3JtIG9mIGEgQ29sbGF0aW9uS2V5IGZvciB0aGUgU3RyaW5nIHNvdXJjZSBmb2xsb3dpbmcKKyAgICAgKiB0aGUgcnVsZXMgb2YgdGhpcyBDb2xsYXRvciBhbmQgc3RvcmVzIHRoZSByZXN1bHQgaW50byB0aGUgdXNlciBwcm92aWRlZCAKKyAgICAgKiBhcmd1bWVudCBrZXkuIAorICAgICAqIElmIGtleSBoYXMgYSBpbnRlcm5hbCBieXRlIGFycmF5IG9mIGxlbmd0aCB0aGF0J3MgdG9vIHNtYWxsIGZvciB0aGUgCisgICAgICogcmVzdWx0LCB0aGUgaW50ZXJuYWwgYnl0ZSBhcnJheSB3aWxsIGJlIGdyb3duIHRvIHRoZSBleGFjdCByZXF1aXJlZCAKKyAgICAgKiBzaXplLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHRleHQgU3RyaW5nIHRvIGJlIHRyYW5zZm9ybWVkIGludG8gYSBSYXdDb2xsYXRpb25LZXkgIAorICAgICAqIEByZXR1cm4gSWYga2V5IGlzIG51bGwsIGEgbmV3IGluc3RhbmNlIG9mIFJhd0NvbGxhdGlvbktleSB3aWxsIGJlIAorICAgICAqICAgICAgICAgY3JlYXRlZCBhbmQgcmV0dXJuZWQsIG90aGVyd2lzZSB0aGUgdXNlciBwcm92aWRlZCBrZXkgd2lsbCBiZSAKKyAgICAgKiAgICAgICAgIHJldHVybmVkLgorICAgICAqIEBzZWUgI2NvbXBhcmUoU3RyaW5nLCBTdHJpbmcpCisgICAgICogQHNlZSAjZ2V0Q29sbGF0aW9uS2V5IAorICAgICAqIEBzZWUgUmF3Q29sbGF0aW9uS2V5CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFJhd0NvbGxhdGlvbktleSBnZXRSYXdDb2xsYXRpb25LZXkoU3RyaW5nIHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5IGtleSk7CisKKyAgICAvKiogCisgICAgICogPHA+CisgICAgICogVmFyaWFibGUgdG9wIGlzIGEgdHdvIGJ5dGUgcHJpbWFyeSB2YWx1ZSB3aGljaCBjYXVzZXMgYWxsIHRoZSBjb2RlcG9pbnRzIAorICAgICAqIHdpdGggcHJpbWFyeSB2YWx1ZXMgdGhhdCBhcmUgbGVzcyBvciBlcXVhbCB0aGFuIHRoZSB2YXJpYWJsZSB0b3AgdG8gYmUgCisgICAgICogc2hpZnRlZCB3aGVuIGFsdGVybmF0ZSBoYW5kbGluZyBpcyBzZXQgdG8gU0hJRlRFRC4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogU2V0cyB0aGUgdmFyaWFibGUgdG9wIHRvIGEgY29sbGF0aW9uIGVsZW1lbnQgdmFsdWUgb2YgYSBzdHJpbmcgc3VwcGxpZWQuCisgICAgICogPC9wPiAKKyAgICAgKiBAcGFyYW0gdmFyVG9wIG9uZSBvciBtb3JlIChpZiBjb250cmFjdGlvbikgY2hhcmFjdGVycyB0byB3aGljaCB0aGUgCisgICAgICogICAgICAgICAgICAgICB2YXJpYWJsZSB0b3Agc2hvdWxkIGJlIHNldAorICAgICAqIEByZXR1cm4gYSBpbnQgdmFsdWUgY29udGFpbmluZyB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIHRvcCBpbiB1cHBlciAxNgorICAgICAqICAgICAgICAgYml0cy4gTG93ZXIgMTYgYml0cyBhcmUgdW5kZWZpbmVkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlzIHRocm93biBpZiB2YXJUb3AgYXJndW1lbnQgaXMgbm90IAorICAgICAqICAgICAgICAgICAgYSB2YWxpZCB2YXJpYWJsZSB0b3AgZWxlbWVudC4gQSB2YXJpYWJsZSB0b3AgZWxlbWVudCBpcyAKKyAgICAgKiAgICAgICAgICAgIGludmFsaWQgd2hlbiBpdCBpcyBhIGNvbnRyYWN0aW9uIHRoYXQgZG9lcyBub3QgZXhpc3QgaW4gdGhlCisgICAgICogICAgICAgICAgICBDb2xsYXRpb24gb3JkZXIgb3Igd2hlbiB0aGUgUFJJTUFSWSBzdHJlbmd0aCBjb2xsYXRpb24gCisgICAgICogICAgICAgICAgICBlbGVtZW50IGZvciB0aGUgdmFyaWFibGUgdG9wIGhhcyBtb3JlIHRoYW4gdHdvIGJ5dGVzCisgICAgICogQHNlZSAjZ2V0VmFyaWFibGVUb3AKKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yI3NldEFsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgc2V0VmFyaWFibGVUb3AoU3RyaW5nIHZhclRvcCk7CisgICAgCisgICAgLyoqIAorICAgICAqIEdldHMgdGhlIHZhcmlhYmxlIHRvcCB2YWx1ZSBvZiBhIENvbGxhdG9yLiAKKyAgICAgKiBMb3dlciAxNiBiaXRzIGFyZSB1bmRlZmluZWQgYW5kIHNob3VsZCBiZSBpZ25vcmVkLgorICAgICAqIEByZXR1cm4gdGhlIHZhcmlhYmxlIHRvcCB2YWx1ZSBvZiBhIENvbGxhdG9yLgorICAgICAqIEBzZWUgI3NldFZhcmlhYmxlVG9wCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRWYXJpYWJsZVRvcCgpOworICAgIAorICAgIC8qKiAKKyAgICAgKiBTZXRzIHRoZSB2YXJpYWJsZSB0b3AgdG8gYSBjb2xsYXRpb24gZWxlbWVudCB2YWx1ZSBzdXBwbGllZC4KKyAgICAgKiBWYXJpYWJsZSB0b3AgaXMgc2V0IHRvIHRoZSB1cHBlciAxNiBiaXRzLiAKKyAgICAgKiBMb3dlciAxNiBiaXRzIGFyZSBpZ25vcmVkLgorICAgICAqIEBwYXJhbSB2YXJUb3AgQ29sbGF0aW9uIGVsZW1lbnQgdmFsdWUsIGFzIHJldHVybmVkIGJ5IHNldFZhcmlhYmxlVG9wIG9yIAorICAgICAqICAgICAgICAgICAgICAgZ2V0VmFyaWFibGVUb3AKKyAgICAgKiBAc2VlICNnZXRWYXJpYWJsZVRvcAorICAgICAqIEBzZWUgI3NldFZhcmlhYmxlVG9wCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0VmFyaWFibGVUb3AoaW50IHZhclRvcCk7CisKKyAgICAvKiogCisgICAgICogR2V0IHRoZSB2ZXJzaW9uIG9mIHRoaXMgY29sbGF0b3Igb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhlIHZlcnNpb24gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFZlcnNpb25JbmZvIGdldFZlcnNpb24oKTsKKyAgICAgICAgCisgICAgLyoqIAorICAgICAqIEdldCB0aGUgVUNBIHZlcnNpb24gb2YgdGhpcyBjb2xsYXRvciBvYmplY3QuCisgICAgICogQHJldHVybiB0aGUgdmVyc2lvbiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sbGF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgVmVyc2lvbkluZm8gZ2V0VUNBVmVyc2lvbigpOworICAgICAgICAKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogRW1wdHkgZGVmYXVsdCBjb25zdHJ1Y3RvciB0byBtYWtlIGphdmFkb2NzIGhhcHB5CisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHJvdGVjdGVkIENvbGxhdG9yKCkKKyAgICB7CisgICAgfQorICAgIAorICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29sbGF0aW9uIHN0cmVuZ3RoCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9zdHJlbmd0aF8gPSBURVJUSUFSWTsKKworICAgIC8qKgorICAgICAqIERlY29tcG9zaXRpb24gbW9kZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fZGVjb21wb3NpdGlvbl8gPSBDQU5PTklDQUxfREVDT01QT1NJVElPTjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIERFQlVHID0gSUNVRGVidWcuZW5hYmxlZCgiY29sbGF0b3IiKTsKKyAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8vIGVuZCByZWdpc3RyeSBzdHVmZgorCisgICAgLy8gLS0tLS0tLS0gQkVHSU4gVUxvY2FsZSBib2lsZXJwbGF0ZSAtLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsb2NhbGUgdGhhdCB3YXMgdXNlZCB0byBjcmVhdGUgdGhpcyBvYmplY3QsIG9yIG51bGwuCisgICAgICogVGhpcyBtYXkgbWF5IGRpZmZlciBmcm9tIHRoZSBsb2NhbGUgcmVxdWVzdGVkIGF0IHRoZSB0aW1lIG9mCisgICAgICogdGhpcyBvYmplY3QncyBjcmVhdGlvbi4gIEZvciBleGFtcGxlLCBpZiBhbiBvYmplY3QgaXMgY3JlYXRlZAorICAgICAqIGZvciBsb2NhbGUgPHR0PmVuX1VTX0NBTElGT1JOSUE8L3R0PiwgdGhlIGFjdHVhbCBkYXRhIG1heSBiZQorICAgICAqIGRyYXduIGZyb20gPHR0PmVuPC90dD4gKHRoZSA8aT5hY3R1YWw8L2k+IGxvY2FsZSksIGFuZAorICAgICAqIDx0dD5lbl9VUzwvdHQ+IG1heSBiZSB0aGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgdGhhdCBleGlzdHMgKHRoZQorICAgICAqIDxpPnZhbGlkPC9pPiBsb2NhbGUpLgorICAgICAqCisgICAgICogPHA+Tm90ZTogVGhpcyBtZXRob2Qgd2lsbCBiZSBpbXBsZW1lbnRlZCBpbiBJQ1UgMy4wOyBJQ1UgMi44CisgICAgICogY29udGFpbnMgYSBwYXJ0aWFsIHByZXZpZXcgaW1wbGVtZW50YXRpb24uICBUaGUgKiA8aT5hY3R1YWw8L2k+CisgICAgICogbG9jYWxlIGlzIHJldHVybmVkIGNvcnJlY3RseSwgYnV0IHRoZSA8aT52YWxpZDwvaT4gbG9jYWxlIGlzCisgICAgICogbm90LCBpbiBtb3N0IGNhc2VzLgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgaW5mb3JtYXRpb24gcmVxdWVzdGVkLCBlaXRoZXIge0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRX0gb3Ige0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEV9LgorICAgICAqIEByZXR1cm4gdGhlIGluZm9ybWF0aW9uIHNwZWNpZmllZCBieSA8aT50eXBlPC9pPiwgb3IgbnVsbCBpZgorICAgICAqIHRoaXMgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YS4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVTG9jYWxlIGdldExvY2FsZShVTG9jYWxlLlR5cGUgdHlwZSkgeworICAgICAgICByZXR1cm4gdHlwZSA9PSBVTG9jYWxlLkFDVFVBTF9MT0NBTEUgPworICAgICAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgOiB0aGlzLnZhbGlkTG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYWxlcyB0aGF0IHdlcmUgdXNlZCB0byBjcmVhdGUgdGhpcworICAgICAqIG9iamVjdC4gIElmIHRoZSBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLAorICAgICAqIGJvdGggYXJndW1lbnRzIHNob3VsZCBiZSBzZXQgdG8gbnVsbC4gIE90aGVyd2lzZSwgbmVpdGhlcgorICAgICAqIHNob3VsZCBiZSBudWxsLiAgVGhlIGFjdHVhbCBsb2NhbGUgbXVzdCBiZSBhdCB0aGUgc2FtZSBsZXZlbCBvcgorICAgICAqIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLiAgVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQKKyAgICAgKiBmb3IgdXNlIGJ5IGZhY3RvcmllcyBvciBvdGhlciBlbnRpdGllcyB0aGF0IGNyZWF0ZSBvYmplY3RzIG9mCisgICAgICogdGhpcyBjbGFzcy4KKyAgICAgKiBAcGFyYW0gdmFsaWQgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlCisgICAgICogZGF0YSwgb3IgbnVsbAorICAgICAqIEBwYXJhbSBhY3R1YWwgdGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcworICAgICAqIG9iamVjdCwgb3IgbnVsbAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0TG9jYWxlKFVMb2NhbGUgdmFsaWQsIFVMb2NhbGUgYWN0dWFsKSB7CisgICAgICAgIC8vIENoYW5nZSB0aGUgZm9sbG93aW5nIHRvIGFuIGFzc2VydGlvbiBsYXRlcgorICAgICAgICBpZiAoKHZhbGlkID09IG51bGwpICE9IChhY3R1YWwgPT0gbnVsbCkpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgICAgIC8vIEFub3RoZXIgY2hlY2sgd2UgY291bGQgZG8gaXMgdGhhdCB0aGUgYWN0dWFsIGxvY2FsZSBpcyBhdAorICAgICAgICAvLyB0aGUgc2FtZSBsZXZlbCBvciBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4KKyAgICAgICAgdGhpcy52YWxpZExvY2FsZSA9IHZhbGlkOworICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA9IGFjdHVhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UgZGF0YSwgb3IgbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSB2YWxpZExvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMgb2JqZWN0LCBvcgorICAgICAqIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgYWN0dWFsTG9jYWxlOworCisgICAgLy8gLS0tLS0tLS0gRU5EIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbGxhdG9yUmVhZGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvclJlYWRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyYmM5NzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvclJlYWRlci5qYXZhCkBAIC0wLDAgKzEsNjYyIEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUJpbmFyeTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkludFRyaWU7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5JbnZlcnNlVUNBOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuUnVsZUJhc2VkQ29sbGF0b3IuVUNBQ29uc3RhbnRzOworCisvKioKKyogPHA+SW50ZXJuYWwgcmVhZGVyIGNsYXNzIGZvciBJQ1UgZGF0YSBmaWxlIHVjYS5pY3UgY29udGFpbmluZyAKKyogVW5pY29kZSBDb2xsYXRpb24gQWxnb3JpdGhtIGRhdGEuPC9wPiAKKyogPHA+VGhpcyBjbGFzcyBzaW1wbHkgcmVhZHMgdWNhLmljdSwgYXV0aGVudGljYXRlcyB0aGF0IGl0IGlzIGEgdmFsaWQKKyogSUNVIGRhdGEgZmlsZSBhbmQgc3BsaXQgaXRzIGNvbnRlbnRzIHVwIGludG8gYmxvY2tzIG9mIGRhdGEgZm9yIHVzZSBpbgorKiA8YSBocmVmPUNvbGxhdG9yLmh0bWw+Y29tLmlibS5pY3UudGV4dC5Db2xsYXRvcjwvYT4uCisqIDwvcD4gCisqIDxwPnVjYS5pY3Ugd2hpY2ggaXMgaW4gYmlnLWVuZGlhbiBmb3JtYXQgaXMgamFyZWQgdG9nZXRoZXIgd2l0aCB0aGlzIAorKiBwYWNrYWdlLjwvcD4KKyogQGF1dGhvciBTeW4gV2VlIFF1ZWsKKyogQHNpbmNlIHJlbGVhc2UgMi4yLCBBcHJpbCAxOCAyMDAyCisqIEBkcmFmdCAyLjIKKyovCisKK2ZpbmFsIGNsYXNzIENvbGxhdG9yUmVhZGVyCit7ICAgICAgICAgIAorICAgIHN0YXRpYyBjaGFyW10gcmVhZChSdWxlQmFzZWRDb2xsYXRvciByYmMsIFVDQUNvbnN0YW50cyB1Y2FjKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBJbnB1dFN0cmVhbSBpID0gSUNVRGF0YS5nZXRSZXF1aXJlZFN0cmVhbShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQlVORExFKyIvdWNhZGF0YS5pY3UiKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaSwgOTAwMDApOworICAgICAgICBDb2xsYXRvclJlYWRlciByZWFkZXIgPSBuZXcgQ29sbGF0b3JSZWFkZXIoYik7CisgICAgICAgIGNoYXJbXSByZXN1bHQgPSByZWFkZXIucmVhZEltcChyYmMsIHVjYWMpOworICAgICAgICBiLmNsb3NlKCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyB2b2lkIGluaXRSQkMoUnVsZUJhc2VkQ29sbGF0b3IgcmJjLCBieXRlW10gZGF0YSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgZmluYWwgaW50IE1JTl9CSU5BUllfREFUQV9TSVpFXyA9ICg0MiArIDI1KSA8PCAyOworICAgICAgICAKKyAgICAgICAgSW5wdXRTdHJlYW0gaSA9IG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShkYXRhKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaSk7CisgICAgICAgIENvbGxhdG9yUmVhZGVyIHJlYWRlciA9IG5ldyBDb2xsYXRvclJlYWRlcihiLCBmYWxzZSk7CisgICAgICAgIGlmIChkYXRhLmxlbmd0aCA+IE1JTl9CSU5BUllfREFUQV9TSVpFXykgeworICAgICAgICAgICAgcmVhZGVyLnJlYWRJbXAocmJjLCBudWxsKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlYWRlci5yZWFkSGVhZGVyKHJiYyk7CisgICAgICAgICAgICByZWFkZXIucmVhZE9wdGlvbnMocmJjKTsKKyAgICAgICAgICAgIC8vIGR1cGxpY2F0aW5nIFVDQV8ncyBkYXRhCisgICAgICAgICAgICByYmMuc2V0V2l0aFVDQVRhYmxlcygpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBJbnZlcnNlVUNBIGdldEludmVyc2VVQ0EoKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBJbnZlcnNlVUNBIHJlc3VsdCA9IG51bGw7CisgICAgICAgIElucHV0U3RyZWFtIGkgPSBJQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKElDVVJlc291cmNlQnVuZGxlLklDVV9CVU5ETEUrIi9pbnZ1Y2EuaWN1Iik7CisvLyAgICAgICAgdHJ5ICAgIHsKKy8vICAgICAgICAgICAgU3RyaW5nIGludmRhdCA9ICIvY29tL2libS9pY3UvaW1wbC9kYXRhL2ludnVjYS5pY3UiOworLy8gICAgICAgICAgICBJbnB1dFN0cmVhbSBpID0gQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuY2xhc3MuZ2V0UmVzb3VyY2VBc1N0cmVhbShpbnZkYXQpOworICAgICAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaSwgMTEwMDAwKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IENvbGxhdG9yUmVhZGVyLnJlYWRJbnZlcnNlVUNBKGIpOworICAgICAgICAgICAgYi5jbG9zZSgpOworICAgICAgICAgICAgaS5jbG9zZSgpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKy8vICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSk7CisvLyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiA8cD5Qcm90ZWN0ZWQgY29uc3RydWN0b3IuPC9wPgorICAgICogQHBhcmFtIGlucHV0U3RyZWFtIElDVSBjb2xsYXRvciBmaWxlIGlucHV0IHN0cmVhbQorICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvdyBpZiBkYXRhIGZpbGUgZmFpbHMgYXV0aGVudGljYXRpb24gCisgICAgKiBAZHJhZnQgMi4xCisgICAgKi8KKyAgICBwcml2YXRlIENvbGxhdG9yUmVhZGVyKElucHV0U3RyZWFtIGlucHV0U3RyZWFtKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIHRoaXMoaW5wdXRTdHJlYW0sIHRydWUpOworICAgICAgICAvKgorICAgICAgICBieXRlW10gVW5pY29kZVZlcnNpb24gPSBJQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgREFUQV9GT1JNQVRfSURfLCBVQ0FfQVVUSEVOVElDQVRFXyk7CisgICAgICAgIC8vIHdlaXY6IGNoZWNrIHRoYXQgd2UgaGF2ZSB0aGUgY29ycmVjdCBVbmljb2RlIHZlcnNpb24gaW4gCisgICAgICAgIC8vIGJpbmFyeSBmaWxlcworICAgICAgICBWZXJzaW9uSW5mbyBVQ0RWZXJzaW9uID0gVUNoYXJhY3Rlci5nZXRVbmljb2RlVmVyc2lvbigpOworICAgICAgICBpZihVbmljb2RlVmVyc2lvblswXSAhPSBVQ0RWZXJzaW9uLmdldE1ham9yKCkgCisgICAgICAgIHx8IFVuaWNvZGVWZXJzaW9uWzFdICE9IFVDRFZlcnNpb24uZ2V0TWlub3IoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKFdST05HX1VOSUNPREVfVkVSU0lPTl9FUlJPUl8pOworICAgICAgICB9CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXyA9IG5ldyBEYXRhSW5wdXRTdHJlYW0oaW5wdXRTdHJlYW0pOworICAgICAgICAqLworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIDxwPlByb3RlY3RlZCBjb25zdHJ1Y3Rvci48L3A+CisgICAgKiBAcGFyYW0gaW5wdXRTdHJlYW0gSUNVIHVwcm9wcy5pY3UgZmlsZSBpbnB1dCBzdHJlYW0KKyAgICAqIEBwYXJhbSByZWFkSUNVSGVhZGVyIGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhlIElDVSBoZWFkZXIgaGFzIHRvIGJlIHJlYWQKKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3cgaWYgZGF0YSBmaWxlIGZhaWxzIGF1dGhlbnRpY2F0aW9uIAorICAgICogQGRyYWZ0IDIuMQorICAgICovCisgICAgcHJpdmF0ZSBDb2xsYXRvclJlYWRlcihJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSwgYm9vbGVhbiByZWFkSUNVSGVhZGVyKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgaWYgKHJlYWRJQ1VIZWFkZXIpIHsKKyAgICAgICAgICAgIGJ5dGVbXSBVbmljb2RlVmVyc2lvbiA9IElDVUJpbmFyeS5yZWFkSGVhZGVyKGlucHV0U3RyZWFtLCBEQVRBX0ZPUk1BVF9JRF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNBX0FVVEhFTlRJQ0FURV8pOworICAgICAgICAgICAgLy8gd2VpdjogY2hlY2sgdGhhdCB3ZSBoYXZlIHRoZSBjb3JyZWN0IFVuaWNvZGUgdmVyc2lvbiBpbiAKKyAgICAgICAgICAgIC8vIGJpbmFyeSBmaWxlcworICAgICAgICAgICAgVmVyc2lvbkluZm8gVUNEVmVyc2lvbiA9IFVDaGFyYWN0ZXIuZ2V0VW5pY29kZVZlcnNpb24oKTsKKyAgICAgICAgICAgIGlmKFVuaWNvZGVWZXJzaW9uWzBdICE9IFVDRFZlcnNpb24uZ2V0TWFqb3IoKSAKKyAgICAgICAgICAgIHx8IFVuaWNvZGVWZXJzaW9uWzFdICE9IFVDRFZlcnNpb24uZ2V0TWlub3IoKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbihXUk9OR19VTklDT0RFX1ZFUlNJT05fRVJST1JfKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8gPSBuZXcgRGF0YUlucHV0U3RyZWFtKGlucHV0U3RyZWFtKTsKKyAgICB9CisgIAorICAgIC8vIHByb3RlY3RlZCBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIAorICAgIC8qKgorICAgICogUmVhZCBhbmQgYnJlYWsgdXAgdGhlIGhlYWRlciBzdHJlYW0gb2YgZGF0YSBwYXNzZWQgaW4gYXMgYXJndW1lbnRzIGludG8gCisgICAgKiBtZWFuaW5nZnVsIENvbGxhdG9yIGRhdGEuCisgICAgKiBAcGFyYW0gcmJjIFJ1bGVCYXNlZENvbGxhdG9yIHRvIHBvcHVsYXRlIHdpdGggaGVhZGVyIGluZm9ybWF0aW9uCisgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIHRocm93biB3aGVuIHRoZXJlJ3MgYSBkYXRhIGVycm9yLgorICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRIZWFkZXIoUnVsZUJhc2VkQ29sbGF0b3IgcmJjKSB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIG1fc2l6ZV8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAvLyBhbGwgdGhlIG9mZnNldHMgYXJlIGluIGJ5dGVzCisgICAgICAgICAgLy8gdG8gZ2V0IHRoZSBhZGRyZXNzIGFkZCB0byB0aGUgaGVhZGVyIGFkZHJlc3MgYW5kIGNhc3QgcHJvcGVybHkgCisgICAgICAgICAgLy8gRGVmYXVsdCBvcHRpb25zIGludCBvcHRpb25zCisgICAgICAgIG1faGVhZGVyU2l6ZV8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAvLyBzdGFydCBvZiBvcHRpb25zCisgICAgICAgIGludCByZWFkY291bnQgPSA4OyAvLyBmb3Igc2l6ZSBhbmQgaGVhZGVyc2l6ZQorICAgICAgICAvLyBzdHJ1Y3R1cmUgd2hpY2ggaG9sZHMgdmFsdWVzIGZvciBpbmRpcmVjdCBwb3NpdGlvbmluZyBhbmQgaW1wbGljaXQgCisgICAgICAgIC8vIHJhbmdlcworICAgICAgICAgIGludCBVQ0FDb25zdCA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7IAorICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgLy8gdGhpcyBvbmUgaXMgbmVlZGVkIG9ubHkgZm9yIFVDQSwgdG8gY29weSB0aGUgYXBwcm9wcmlhdGUgCisgICAgICAgIC8vIGNvbnRyYWN0aW9ucworICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcCg0KTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgICAgLy8gcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UKKyAgICAgICAgICBtX2RhdGFJbnB1dFN0cmVhbV8uc2tpcEJ5dGVzKDQpOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgICAvLyBjb25zdCB1aW50OF90ICptYXBwaW5nUG9zaXRpb247IAorICAgICAgICAgIGludCBtYXBwaW5nID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgICAgLy8gdWludDMyX3QgKmV4cGFuc2lvbjsgCisgICAgICAgICAgcmJjLm1fZXhwYW5zaW9uT2Zmc2V0XyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OyAKKyAgICAgICAgICAvLyBVQ2hhciAqY29udHJhY3Rpb25JbmRleDsgICAgIAorICAgICAgICAgIHJiYy5tX2NvbnRyYWN0aW9uT2Zmc2V0XyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OyAKKyAgICAgICAgICAvLyB1aW50MzJfdCAqY29udHJhY3Rpb25DRXM7CisgICAgICAgICAgaW50IGNvbnRyYWN0aW9uQ0UgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICByZWFkY291bnQgKz0gNDsgICAKKyAgICAgICAgICAvLyBuZWVkZWQgZm9yIHZhcmlvdXMgY2xvc3VyZXMgaW50IGNvbnRyYWN0aW9uU2l6ZSAKKyAgICAgICAgICBpbnQgY29udHJhY3Rpb25TaXplID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7ICAKKyAgICAgICAgICAvLyBhcnJheSBvZiBsYXN0IGNvbGxhdGlvbiBlbGVtZW50IGluIGV4cGFuc2lvbgorICAgICAgICAgIGludCBleHBhbnNpb25FbmRDRSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OyAgCisgICAgICAgICAgLy8gYXJyYXkgb2YgbWF4aW11bSBleHBhbnNpb24gc2l6ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBleHBhbnNpb24KKyAgICAgICAgLy8gY29sbGF0aW9uIGVsZW1lbnRzIHdpdGggbGFzdCBlbGVtZW50IGluIGV4cGFuc2lvbkVuZENFCisgICAgICAgICAgaW50IGV4cGFuc2lvbkVuZENFTWF4U2l6ZSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OyAgICAgCisgICAgICAgICAgLy8gc2l6ZSBvZiBlbmRFeHBhbnNpb25DRSBpbnQgZXhwYW5zaW9uRW5kQ0VTaXplCisgICAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcyg0KTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7IAorICAgICAgICAgIC8vIGhhc2ggdGFibGUgb2YgdW5zYWZlIGNvZGUgcG9pbnRzIAorICAgICAgICAgIGludCB1bnNhZmUgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICByZWFkY291bnQgKz0gNDsgICAgICAgICAgICAKKyAgICAgICAgICAvLyBoYXNoIHRhYmxlIG9mIGZpbmFsIGNvZGUgcG9pbnRzIGluIGNvbnRyYWN0aW9ucy4KKyAgICAgICAgICBpbnQgY29udHJhY3Rpb25FbmQgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgICAvLyBpbnQgQ0Vjb3VudCA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcyg0KTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgICAgLy8gaXMgamFtb1NwZWNpYWwKKyAgICAgICAgICByYmMubV9pc0phbW9TcGVjaWFsXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQm9vbGVhbigpOworICAgICAgICByZWFkY291bnQgKys7IAorICAgICAgICAvLyBwYWRkaW5nCisgICAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcygzKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDM7CisgICAgICAgIHJiYy5tX3ZlcnNpb25fID0gcmVhZFZlcnNpb24obV9kYXRhSW5wdXRTdHJlYW1fKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIHJiYy5tX1VDQV92ZXJzaW9uXyA9IHJlYWRWZXJzaW9uKG1fZGF0YUlucHV0U3RyZWFtXyk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICByYmMubV9VQ0RfdmVyc2lvbl8gPSByZWFkVmVyc2lvbihtX2RhdGFJbnB1dFN0cmVhbV8pOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgICAvLyBieXRlIGNoYXJzZXROYW1lW10gPSBuZXcgYnl0ZVszMl07IC8vIGZvciBjaGFyc2V0IENFcworICAgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMoMzIpOworICAgICAgICByZWFkY291bnQgKz0gMzI7CisgICAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXBCeXRlcyg1Nik7IC8vIGZvciBmdXR1cmUgdXNlCisgICAgICAgIHJlYWRjb3VudCArPSA1NjsgCisgICAgICAgIGlmIChtX2hlYWRlclNpemVfIDwgcmVhZGNvdW50KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludGVybmFsIEVycm9yOiBIZWFkZXIgc2l6ZSBlcnJvciIpOworICAgICAgICB9CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMobV9oZWFkZXJTaXplXyAtIHJlYWRjb3VudCk7CisgICAgICAgIAorICAgICAgICAgIGlmIChyYmMubV9jb250cmFjdGlvbk9mZnNldF8gPT0gMCkgeyAvLyBjb250cmFjdGlvbiBjYW4gYmUgbnVsbAorICAgICAgICAgICAgICByYmMubV9jb250cmFjdGlvbk9mZnNldF8gPSBtYXBwaW5nOworICAgICAgICAgICAgICBjb250cmFjdGlvbkNFID0gbWFwcGluZzsKKyAgICAgICAgICB9CisgICAgICAgIG1fb3B0aW9uU2l6ZV8gPSByYmMubV9leHBhbnNpb25PZmZzZXRfIC0gbV9oZWFkZXJTaXplXzsKKyAgICAgICAgICBtX2V4cGFuc2lvblNpemVfID0gcmJjLm1fY29udHJhY3Rpb25PZmZzZXRfIC0gcmJjLm1fZXhwYW5zaW9uT2Zmc2V0XzsKKyAgICAgICAgICBtX2NvbnRyYWN0aW9uSW5kZXhTaXplXyA9IGNvbnRyYWN0aW9uQ0UgLSByYmMubV9jb250cmFjdGlvbk9mZnNldF87CisgICAgICAgICAgbV9jb250cmFjdGlvbkNFU2l6ZV8gPSBtYXBwaW5nIC0gY29udHJhY3Rpb25DRTsKKyAgICAgICAgICBtX3RyaWVTaXplXyA9IGV4cGFuc2lvbkVuZENFIC0gbWFwcGluZzsKKyAgICAgICAgICBtX2V4cGFuc2lvbkVuZENFU2l6ZV8gPSBleHBhbnNpb25FbmRDRU1heFNpemUgLSBleHBhbnNpb25FbmRDRTsKKyAgICAgICAgICBtX2V4cGFuc2lvbkVuZENFTWF4U2l6ZVNpemVfID0gdW5zYWZlIC0gZXhwYW5zaW9uRW5kQ0VNYXhTaXplOworICAgICAgICAgIG1fdW5zYWZlU2l6ZV8gPSBjb250cmFjdGlvbkVuZCAtIHVuc2FmZTsKKyAgICAgICAgbV9VQ0FWYWx1ZXNTaXplXyA9IG1fc2l6ZV8gLSBVQ0FDb25zdDsgLy8gVUNBIHZhbHVlLCB3aWxsIGJlIGhhbmRsZWQgbGF0ZXIKKyAgICAgICAgLy8gdHJlYXQgaXQgYXMgbm9ybWFsIGNvbGxhdG9yIGZpcnN0CisgICAgICAgIC8vIGZvciBub3JtYWwgY29sbGF0b3IgdGhlcmUgaXMgbm8gVUNBIGNvbnRyYWN0aW9uCisgICAgICAgIG1fY29udHJhY3Rpb25FbmRTaXplXyA9IG1fc2l6ZV8gLSBjb250cmFjdGlvbkVuZDsgICAgCisgICAgICAgIAorICAgICAgICAgIHJiYy5tX2NvbnRyYWN0aW9uT2Zmc2V0XyA+Pj0gMTsgLy8gY2FzdGluZyB0byBpbnRzCisgICAgICAgICAgcmJjLm1fZXhwYW5zaW9uT2Zmc2V0XyA+Pj0gMjsgLy8gY2FzdGluZyB0byBjaGFycworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZWFkIGFuZCBicmVhayB1cCB0aGUgY29sbGF0aW9uIG9wdGlvbnMgcGFzc2VkIGluIHRoZSBzdHJlYW0gb2YgZGF0YQorICAgICAqIGFuZCB1cGRhdGUgdGhlIGFyZ3VtZW50IENvbGxhdG9yIHdpdGggdGhlIHJlc3VsdHMKKyAgICAgKiBAcGFyYW0gcmJjIFJ1bGVCYXNlZENvbGxhdG9yIHRvIHBvcHVsYXRlCisgICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiB0aGVyZSdzIGEgZGF0YSBlcnJvci4KKyAgICAgKiBAZHJhZnQgMi4yCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRPcHRpb25zKFJ1bGVCYXNlZENvbGxhdG9yIHJiYykgdGhyb3dzIElPRXhjZXB0aW9uCisgICAgeworICAgICAgICBpbnQgcmVhZGNvdW50ID0gMDsKKyAgICAgICAgcmJjLm1fZGVmYXVsdFZhcmlhYmxlVG9wVmFsdWVfID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIHJiYy5tX2RlZmF1bHRJc0ZyZW5jaENvbGxhdGlvbl8gPSAobV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PTl8pOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgcmJjLm1fZGVmYXVsdElzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAobV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKSA9PSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLlNISUZURURfKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIHJiYy5tX2RlZmF1bHRDYXNlRmlyc3RfID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIHJiYy5tX2RlZmF1bHRJc0Nhc2VMZXZlbF8gPSAobV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PTl8pOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgaW50IHZhbHVlID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgcmVhZGNvdW50ICs9IDQ7CisgICAgICAgIGlmICh2YWx1ZSA9PSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PTl8pIHsKKyAgICAgICAgICAgIHZhbHVlID0gQ29sbGF0b3IuQ0FOT05JQ0FMX0RFQ09NUE9TSVRJT047CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB2YWx1ZSA9IENvbGxhdG9yLk5PX0RFQ09NUE9TSVRJT047CisgICAgICAgIH0KKyAgICAgICAgcmJjLm1fZGVmYXVsdERlY29tcG9zaXRpb25fID0gdmFsdWU7CisgICAgICAgIHJiYy5tX2RlZmF1bHRTdHJlbmd0aF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgcmJjLm1fZGVmYXVsdElzSGlyYWdhbmE0XyA9IChtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IFJ1bGVCYXNlZENvbGxhdG9yLkF0dHJpYnV0ZVZhbHVlLk9OXyk7CisgICAgICAgIHJlYWRjb3VudCArPSA0OworICAgICAgICByYmMubV9kZWZhdWx0SXNOdW1lcmljQ29sbGF0aW9uXyA9IChtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBSdWxlQmFzZWRDb2xsYXRvci5BdHRyaWJ1dGVWYWx1ZS5PTl8pOworICAgICAgICByZWFkY291bnQgKz0gNDsKKyAgICAgICAgbV9kYXRhSW5wdXRTdHJlYW1fLnNraXAoNjApOyAvLyByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZQorICAgICAgICByZWFkY291bnQgKz0gNjA7CisgICAgICAgIG1fZGF0YUlucHV0U3RyZWFtXy5za2lwQnl0ZXMobV9vcHRpb25TaXplXyAtIHJlYWRjb3VudCk7CisgICAgICAgIGlmIChtX29wdGlvblNpemVfIDwgcmVhZGNvdW50KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludGVybmFsIEVycm9yOiBPcHRpb24gc2l6ZSBlcnJvciIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogUmVhZCBhbmQgYnJlYWsgdXAgdGhlIHN0cmVhbSBvZiBkYXRhIHBhc3NlZCBpbiBhcyBhcmd1bWVudHMgaW50byAKKyAgICAqIG1lYW5pbmdmdWwgQ29sbGF0b3IgZGF0YS4KKyAgICAqIEBwYXJhbSByYmMgUnVsZUJhc2VkQ29sbGF0b3IgdG8gcG9wdWxhdGUKKyAgICAqIEBwYXJhbSBVQ0FDb25zdCBvYmplY3QgdG8gZmlsbCB1cCB3aXRoIFVDQSBjb25zdGFudHMgaWYgd2UgYXJlIHJlYWRpbmcgCisgICAgKiAgICAgICAgICAgICAgICAgdGhlIFVDQSBjb2xsYXRvciwgaWYgbm90IHVzZSBhIG51bGwKKyAgICAqIEByZXR1cm4gVUNBQ29udHJhY3Rpb25zIGFycmF5IGZpbGxlZCB1cCB3aXRoIHRoZSBVQ0EgY29udHJhY3Rpb25zIGlmIHdlCisgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIGFyZSByZWFkaW5nIHRoZSBVQ0EgY29sbGF0b3IKKyAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gdGhlcmUncyBhIGRhdGEgZXJyb3IuCisgICAgKiBAZHJhZnQgMi4yCisgICAgKi8KKyAgICBwcml2YXRlIGNoYXJbXSByZWFkSW1wKFJ1bGVCYXNlZENvbGxhdG9yIHJiYywgCisgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLlVDQUNvbnN0YW50cyBVQ0FDb25zdCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgIHJlYWRIZWFkZXIocmJjKTsKKyAgICAgICAgLy8gaGVhZGVyIHNpemUgaGFzIGJlZW4gY2hlY2tlZCBieSByZWFkSGVhZGVyCisgICAgICAgIGludCByZWFkY291bnQgPSBtX2hlYWRlclNpemVfOyAKKyAgICAgICAgLy8gb3B0aW9uIHNpemUgaGFzIGJlZW4gY2hlY2tlZCBieSByZWFkT3B0aW9ucworICAgICAgICByZWFkT3B0aW9ucyhyYmMpOworICAgICAgICByZWFkY291bnQgKz0gbV9vcHRpb25TaXplXzsKKyAgICAgICAgbV9leHBhbnNpb25TaXplXyA+Pj0gMjsKKyAgICAgICAgcmJjLm1fZXhwYW5zaW9uXyA9IG5ldyBpbnRbbV9leHBhbnNpb25TaXplX107CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9leHBhbnNpb25TaXplXzsgaSArKykgeworICAgICAgICAgICAgcmJjLm1fZXhwYW5zaW9uX1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgIH0KKyAgICAgICAgcmVhZGNvdW50ICs9IChtX2V4cGFuc2lvblNpemVfIDw8IDIpOworICAgICAgICBpZiAobV9jb250cmFjdGlvbkluZGV4U2l6ZV8gPiAwKSB7IAorICAgICAgICAgICAgbV9jb250cmFjdGlvbkluZGV4U2l6ZV8gPj49IDE7CisgICAgICAgICAgICByYmMubV9jb250cmFjdGlvbkluZGV4XyA9IG5ldyBjaGFyW21fY29udHJhY3Rpb25JbmRleFNpemVfXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9jb250cmFjdGlvbkluZGV4U2l6ZV87IGkgKyspIHsKKyAgICAgICAgICAgICAgICByYmMubV9jb250cmFjdGlvbkluZGV4X1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQ2hhcigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVhZGNvdW50ICs9IChtX2NvbnRyYWN0aW9uSW5kZXhTaXplXyA8PCAxKTsKKyAgICAgICAgICAgIG1fY29udHJhY3Rpb25DRVNpemVfID4+PSAyOworICAgICAgICAgICAgcmJjLm1fY29udHJhY3Rpb25DRV8gPSBuZXcgaW50W21fY29udHJhY3Rpb25DRVNpemVfXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9jb250cmFjdGlvbkNFU2l6ZV87IGkgKyspIHsKKyAgICAgICAgICAgICAgICByYmMubV9jb250cmFjdGlvbkNFX1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZWFkY291bnQgKz0gKG1fY29udHJhY3Rpb25DRVNpemVfIDw8IDIpOworICAgICAgICB9CisgICAgICAgIHJiYy5tX3RyaWVfID0gbmV3IEludFRyaWUobV9kYXRhSW5wdXRTdHJlYW1fLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yLkRhdGFNYW5pcHVsYXRlLmdldEluc3RhbmNlKCkpOworICAgICAgICBpZiAoIXJiYy5tX3RyaWVfLmlzTGF0aW4xTGluZWFyKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiRGF0YSBjb3JydXB0ZWQsICIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiQ29sbGF0b3IgVHJpZXMgZXhwZWN0ZWQgdG8gaGF2ZSBsaW5lYXIgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgImxhdGluIG9uZSBkYXRhIGFycmF5cyIpOworICAgICAgICB9CisgICAgICAgIHJlYWRjb3VudCArPSByYmMubV90cmllXy5nZXRTZXJpYWxpemVkRGF0YVNpemUoKTsKKyAgICAgICAgbV9leHBhbnNpb25FbmRDRVNpemVfID4+PSAyOworICAgICAgICByYmMubV9leHBhbnNpb25FbmRDRV8gPSBuZXcgaW50W21fZXhwYW5zaW9uRW5kQ0VTaXplX107CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9leHBhbnNpb25FbmRDRVNpemVfOyBpICsrKSB7CisgICAgICAgICAgICByYmMubV9leHBhbnNpb25FbmRDRV9baV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICB9CisgICAgICAgIHJlYWRjb3VudCArPSAobV9leHBhbnNpb25FbmRDRVNpemVfIDw8IDIpOworICAgICAgICByYmMubV9leHBhbnNpb25FbmRDRU1heFNpemVfID0gbmV3IGJ5dGVbbV9leHBhbnNpb25FbmRDRU1heFNpemVTaXplX107CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9leHBhbnNpb25FbmRDRU1heFNpemVTaXplXzsgaSArKykgeworICAgICAgICAgICAgcmJjLm1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplX1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQnl0ZSgpOworICAgICAgICB9CisgICAgICAgIHJlYWRjb3VudCArPSBtX2V4cGFuc2lvbkVuZENFTWF4U2l6ZVNpemVfOworICAgICAgICByYmMubV91bnNhZmVfID0gbmV3IGJ5dGVbbV91bnNhZmVTaXplX107CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV91bnNhZmVTaXplXzsgaSArKykgeworICAgICAgICAgICAgcmJjLm1fdW5zYWZlX1tpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQnl0ZSgpOworICAgICAgICB9CisgICAgICAgIHJlYWRjb3VudCArPSBtX3Vuc2FmZVNpemVfOworICAgICAgICBpZiAoVUNBQ29uc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gd2UgYXJlIHJlYWRpbmcgdGhlIFVDQQorICAgICAgICAgICAgLy8gdW5mb3J0dW5hdGVseSB0aGUgVUNBIG9mZnNldCBpbiBhbnkgY29sbGF0b3IgZGF0YSBpcyBub3QgMCBhbmQKKyAgICAgICAgICAgIC8vIG9ubHkgcmVmZXJzIHRvIHRoZSBVQ0EgZGF0YQorICAgICAgICAgICAgbV9jb250cmFjdGlvbkVuZFNpemVfIC09IG1fVUNBVmFsdWVzU2l6ZV87ICAgICAgIAorICAgICAgICB9CisgICAgICAgIHJiYy5tX2NvbnRyYWN0aW9uRW5kXyA9IG5ldyBieXRlW21fY29udHJhY3Rpb25FbmRTaXplX107CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9jb250cmFjdGlvbkVuZFNpemVfOyBpICsrKSB7CisgICAgICAgICAgICByYmMubV9jb250cmFjdGlvbkVuZF9baV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEJ5dGUoKTsKKyAgICAgICAgfQorICAgICAgICByZWFkY291bnQgKz0gbV9jb250cmFjdGlvbkVuZFNpemVfOworICAgICAgICBpZiAoVUNBQ29uc3QgIT0gbnVsbCkgeworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfVEVSVElBUllfSUdOT1JBQkxFX1swXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgaW50IHJlYWRVQ0FDb25zdGNvdW50ID0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX1RFUlRJQVJZX0lHTk9SQUJMRV9bMV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX1RFUlRJQVJZX0lHTk9SQUJMRV9bMF0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX1RFUlRJQVJZX0lHTk9SQUJMRV9bMV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9QUklNQVJZX0lHTk9SQUJMRV9bMF0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9QUklNQVJZX0lHTk9SQUJMRV9bMV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9TRUNPTkRBUllfSUdOT1JBQkxFX1swXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX1NFQ09OREFSWV9JR05PUkFCTEVfWzFdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9TRUNPTkRBUllfSUdOT1JBQkxFX1swXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfU0VDT05EQVJZX0lHTk9SQUJMRV9bMV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX1BSSU1BUllfSUdOT1JBQkxFX1swXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOworICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfUFJJTUFSWV9JR05PUkFCTEVfWzFdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfVkFSSUFCTEVfWzBdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgICAgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX1ZBUklBQkxFX1sxXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7CisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9WQVJJQUJMRV9bMF0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX1ZBUklBQkxFX1sxXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfTk9OX1ZBUklBQkxFX1swXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9OT05fVkFSSUFCTEVfWzFdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkxBU1RfTk9OX1ZBUklBQkxFX1swXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX05PTl9WQVJJQUJMRV9bMV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuUkVTRVRfVE9QX1ZBTFVFX1swXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5SRVNFVF9UT1BfVkFMVUVfWzFdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX0lNUExJQ0lUX1swXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5GSVJTVF9JTVBMSUNJVF9bMV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9JTVBMSUNJVF9bMF0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuTEFTVF9JTVBMSUNJVF9bMV0gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuRklSU1RfVFJBSUxJTkdfWzBdID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LkZJUlNUX1RSQUlMSU5HX1sxXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX1RSQUlMSU5HX1swXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5MQVNUX1RSQUlMSU5HX1sxXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OyAKKyAgICAgICAgICAgIFVDQUNvbnN0LlBSSU1BUllfVE9QX01JTl8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuUFJJTUFSWV9JTVBMSUNJVF9NSU5fID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5QUklNQVJZX0lNUExJQ0lUX01BWF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIFVDQUNvbnN0LlBSSU1BUllfVFJBSUxJTkdfTUlOXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuUFJJTUFSWV9UUkFJTElOR19NQVhfID0gbV9kYXRhSW5wdXRTdHJlYW1fLnJlYWRJbnQoKTsgICAKKyAgICAgICAgICAgIHJlYWRVQ0FDb25zdGNvdW50ICs9IDQ7CisgICAgICAgICAgICBVQ0FDb25zdC5QUklNQVJZX1NQRUNJQUxfTUlOXyA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkSW50KCk7ICAgCisgICAgICAgICAgICByZWFkVUNBQ29uc3Rjb3VudCArPSA0OworICAgICAgICAgICAgVUNBQ29uc3QuUFJJTUFSWV9TUEVDSUFMX01BWF8gPSBtX2RhdGFJbnB1dFN0cmVhbV8ucmVhZEludCgpOyAgIAorICAgICAgICAgICAgcmVhZFVDQUNvbnN0Y291bnQgKz0gNDsKKyAgICAgICAgICAgIGludCByZXN1bHRzaXplID0gKG1fVUNBVmFsdWVzU2l6ZV8gLSByZWFkVUNBQ29uc3Rjb3VudCkgPj4gMTsKKyAgICAgICAgICAgIGNoYXIgcmVzdWx0W10gPSBuZXcgY2hhcltyZXN1bHRzaXplXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVzdWx0c2l6ZTsgaSArKykgeworICAgICAgICAgICAgICAgIHJlc3VsdFtpXSA9IG1fZGF0YUlucHV0U3RyZWFtXy5yZWFkQ2hhcigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVhZGNvdW50ICs9IG1fVUNBVmFsdWVzU2l6ZV87CisgICAgICAgICAgICBpZiAocmVhZGNvdW50ICE9IG1fc2l6ZV8pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludGVybmFsIEVycm9yOiBEYXRhIGZpbGUgc2l6ZSBlcnJvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVhZGNvdW50ICE9IG1fc2l6ZV8pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJT0V4Y2VwdGlvbigiSW50ZXJuYWwgRXJyb3I6IERhdGEgZmlsZSBzaXplIGVycm9yIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlYWRzIGluIHRoZSBpbnZlcnNlIHVjYSBkYXRhCisgICAgICogQHBhcmFtIGlucHV0IGlucHV0IHN0cmVhbSB3aXRoIHRoZSBpbnZlcnNlIHVjYSBkYXRhCisgICAgICogQHJldHVybiBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgaW52ZXJzZSB1Y2EgZGF0YQorICAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gdGhyb3duIHdoZW4gZXJyb3Igb2NjdXJzIHdoaWxlIHJlYWRpbmcgdGhlIAorICAgICAqICAgICAgICAgICAgaW52ZXJzZSB1Y2EKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBDb2xsYXRpb25QYXJzZWRSdWxlQnVpbGRlci5JbnZlcnNlVUNBIHJlYWRJbnZlcnNlVUNBKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gaW5wdXRTdHJlYW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICB7CisgICAgICAgICBieXRlW10gVW5pY29kZVZlcnNpb24gPSBJQ1VCaW5hcnkucmVhZEhlYWRlcihpbnB1dFN0cmVhbSwgSU5WRVJTRV9VQ0FfREFUQV9GT1JNQVRfSURfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOVkVSU0VfVUNBX0FVVEhFTlRJQ0FURV8pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIC8vIHdlaXY6IGNoZWNrIHRoYXQgd2UgaGF2ZSB0aGUgY29ycmVjdCBVbmljb2RlIHZlcnNpb24gaW4gCisgICAgICAgIC8vIGJpbmFyeSBmaWxlcworICAgICAgICBWZXJzaW9uSW5mbyBVQ0RWZXJzaW9uID0gVUNoYXJhY3Rlci5nZXRVbmljb2RlVmVyc2lvbigpOworICAgICAgICBpZihVbmljb2RlVmVyc2lvblswXSAhPSBVQ0RWZXJzaW9uLmdldE1ham9yKCkgCisgICAgICAgIHx8IFVuaWNvZGVWZXJzaW9uWzFdICE9IFVDRFZlcnNpb24uZ2V0TWlub3IoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKFdST05HX1VOSUNPREVfVkVSU0lPTl9FUlJPUl8pOworICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuSW52ZXJzZVVDQSByZXN1bHQgPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIuSW52ZXJzZVVDQSgpOworICAgICAgICBEYXRhSW5wdXRTdHJlYW0gaW5wdXQgPSBuZXcgRGF0YUlucHV0U3RyZWFtKGlucHV0U3RyZWFtKTsgICAgICAgIAorICAgICAgICBpbnB1dC5yZWFkSW50KCk7IC8vIGJ5dGVzaXplCisgICAgICAgIGludCB0YWJsZXNpemUgPSBpbnB1dC5yZWFkSW50KCk7IC8vIGluIGludCBzaXplCisgICAgICAgIGludCBjb250c2l6ZSA9IGlucHV0LnJlYWRJbnQoKTsgIC8vIGluIGNoYXIgc2l6ZQorICAgICAgICBpbnB1dC5yZWFkSW50KCk7IC8vIHRhYmxlIGluIGJ5dGVzCisgICAgICAgIGlucHV0LnJlYWRJbnQoKTsgLy8gY29udHMgaW4gYnl0ZXMKKyAgICAgICAgcmVzdWx0Lm1fVUNBX3ZlcnNpb25fID0gcmVhZFZlcnNpb24oaW5wdXQpOworICAgICAgICBpbnB1dC5za2lwQnl0ZXMoOCk7IC8vIHNraXAgcGFkZGluZworICAgICAgICAKKyAgICAgICAgaW50IHNpemUgPSB0YWJsZXNpemUgKiAzOyAvLyBvbmUgY29sdW1uIGZvciBlYWNoIHN0cmVuZ3RoCisgICAgICAgIHJlc3VsdC5tX3RhYmxlXyA9IG5ldyBpbnRbc2l6ZV07CisgICAgICAgIHJlc3VsdC5tX2NvbnRpbnVhdGlvbnNfID0gbmV3IGNoYXJbY29udHNpemVdOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpICsrKSB7CisgICAgICAgICAgICByZXN1bHQubV90YWJsZV9baV0gPSBpbnB1dC5yZWFkSW50KCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb250c2l6ZTsgaSArKykgeworICAgICAgICAgICAgcmVzdWx0Lm1fY29udGludWF0aW9uc19baV0gPSBpbnB1dC5yZWFkQ2hhcigpOworICAgICAgICB9CisgICAgICAgIGlucHV0LmNsb3NlKCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlYWRzIGZvdXIgYnl0ZXMgZnJvbSB0aGUgaW5wdXQgYW5kIHJldHVybnMgYSBWZXJzaW9uSW5mbworICAgICAqIG9iamVjdC4gVXNlIGl0IHRvIHJlYWQgZGlmZmVyZW50IGNvbGxhdG9yIHZlcnNpb25zLgorICAgICAqIEBwYXJhbSBpbnB1dCBhbHJlYWR5IGluc3RhbnRpYXRlZCBEYXRhSW5wdXRTdHJlYW0sIHBvc2l0aW9uZWQgCisgICAgICogICAgICAgICAgICAgIGF0IHRoZSBzdGFydCBvZiBmb3VyIHZlcnNpb24gYnl0ZXMKKyAgICAgKiBAcmV0dXJuIGEgcmVhZHkgVmVyc2lvbkluZm8gb2JqZWN0CisgICAgICogQHRocm93cyBJT0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBlcnJvciBvY2N1cnMgd2hpbGUgcmVhZGluZyAgCisgICAgICogICAgICAgICAgICB2ZXJzaW9uIGJ5dGVzCisgICAgICovCisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBWZXJzaW9uSW5mbyByZWFkVmVyc2lvbihEYXRhSW5wdXRTdHJlYW0gaW5wdXQpIAorICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBieXRlW10gdmVyc2lvbiA9IG5ldyBieXRlWzRdOworICAgICAgICB2ZXJzaW9uWzBdID0gaW5wdXQucmVhZEJ5dGUoKTsKKyAgICAgICAgdmVyc2lvblsxXSA9IGlucHV0LnJlYWRCeXRlKCk7CisgICAgICAgIHZlcnNpb25bMl0gPSBpbnB1dC5yZWFkQnl0ZSgpOworICAgICAgICB2ZXJzaW9uWzNdID0gaW5wdXQucmVhZEJ5dGUoKTsKKyAgICAgICAgCisgICAgICAgIFZlcnNpb25JbmZvIHJlc3VsdCA9IAorICAgICAgICBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgKKyAgICAgICAgICAgIChpbnQpdmVyc2lvblswXSwgKGludCl2ZXJzaW9uWzFdLCAKKyAgICAgICAgICAgIChpbnQpdmVyc2lvblsyXSwgKGludCl2ZXJzaW9uWzNdKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8vIHByaXZhdGUgaW5uZXIgY2xhc3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvLyBwcml2YXRlIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogQXV0aGVudGljYXRlIHVjYSBkYXRhIGZvcm1hdCB2ZXJzaW9uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZSBVQ0FfQVVUSEVOVElDQVRFXyAKKyAgICAgICAgICAgICAgICA9IG5ldyBJQ1VCaW5hcnkuQXV0aGVudGljYXRlKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhVmVyc2lvbkFjY2VwdGFibGUoYnl0ZSB2ZXJzaW9uW10pCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZlcnNpb25bMF0gPT0gREFUQV9GT1JNQVRfVkVSU0lPTl9bMF0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHZlcnNpb25bMV0gPj0gREFUQV9GT1JNQVRfVkVSU0lPTl9bMV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvbyBoYXJzaCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8mJiB2ZXJzaW9uWzFdID09IERBVEFfRk9STUFUX1ZFUlNJT05fWzFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vJiYgdmVyc2lvblsyXSA9PSBEQVRBX0ZPUk1BVF9WRVJTSU9OX1syXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8mJiB2ZXJzaW9uWzNdID09IERBVEFfRk9STUFUX1ZFUlNJT05fWzNdOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogQXV0aGVudGljYXRlIHVjYSBkYXRhIGZvcm1hdCB2ZXJzaW9uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSUNVQmluYXJ5LkF1dGhlbnRpY2F0ZSBJTlZFUlNFX1VDQV9BVVRIRU5USUNBVEVfIAorICAgICAgICAgICAgICAgID0gbmV3IElDVUJpbmFyeS5BdXRoZW50aWNhdGUoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0RhdGFWZXJzaW9uQWNjZXB0YWJsZShieXRlIHZlcnNpb25bXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmVyc2lvblswXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IElOVkVSU0VfVUNBX0RBVEFfRk9STUFUX1ZFUlNJT05fWzBdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB2ZXJzaW9uWzFdIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPj0gSU5WRVJTRV9VQ0FfREFUQV9GT1JNQVRfVkVSU0lPTl9bMV07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfTsKKyAgCisgICAgLyoqCisgICAgKiBEYXRhIGlucHV0IHN0cmVhbSBmb3IgdWNhLmljdSAKKyAgICAqLworICAgIHByaXZhdGUgRGF0YUlucHV0U3RyZWFtIG1fZGF0YUlucHV0U3RyZWFtXzsKKyAgIAorICAgIC8qKgorICAgICogRmlsZSBmb3JtYXQgdmVyc2lvbiBhbmQgaWQgdGhhdCB0aGlzIGNsYXNzIHVuZGVyc3RhbmRzLgorICAgICogTm8gZ3VhcmFudGVlcyBhcmUgbWFkZSBpZiBhIG9sZGVyIHZlcnNpb24gaXMgdXNlZAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBEQVRBX0ZPUk1BVF9WRVJTSU9OX1tdID0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoYnl0ZSkweDIsIChieXRlKTB4MiwgKGJ5dGUpMHgwLCAoYnl0ZSkweDB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgREFUQV9GT1JNQVRfSURfW10gPSB7KGJ5dGUpMHg1NSwgKGJ5dGUpMHg0MywgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKTB4NmYsIChieXRlKTB4NmN9OworICAgIC8qKgorICAgICogSW52ZXJzZSBVQ0EgZmlsZSBmb3JtYXQgdmVyc2lvbiBhbmQgaWQgdGhhdCB0aGlzIGNsYXNzIHVuZGVyc3RhbmRzLgorICAgICogTm8gZ3VhcmFudGVlcyBhcmUgbWFkZSBpZiBhIG9sZGVyIHZlcnNpb24gaXMgdXNlZAorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBJTlZFUlNFX1VDQV9EQVRBX0ZPUk1BVF9WRVJTSU9OX1tdID0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoYnl0ZSkweDIsIChieXRlKTB4MSwgKGJ5dGUpMHgwLCAoYnl0ZSkweDB9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgSU5WRVJTRV9VQ0FfREFUQV9GT1JNQVRfSURfW10gPSB7KGJ5dGUpMHg0OSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDZlLCAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkweDc2LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKTB4NDN9OworICAgIC8qKgorICAgICogQ29ycnVwdGVkIGVycm9yIHN0cmluZworICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPUlJVUFRFRF9EQVRBX0VSUk9SXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEYXRhIGNvcnJ1cHRlZCBpbiBDb2xsYXRpb24gZGF0YSBmaWxlIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgKiBXcm9uZyB1bmljb2RlIHZlcnNpb24gZXJyb3Igc3RyaW5nCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgV1JPTkdfVU5JQ09ERV9WRVJTSU9OX0VSUk9SXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmljb2RlIHZlcnNpb24gaW4gYmluYXJ5IGltYWdlIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIGN1cnJlbnQgVW5pY29kZSB2ZXJzaW9uIjsKKworICAgIC8qKgorICAgICAqIFNpemUgb2YgZXhwYW5zaW9uIHRhYmxlIGluIGJ5dGVzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9leHBhbnNpb25TaXplXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIGNvbnRyYWN0aW9uIGluZGV4IHRhYmxlIGluIGJ5dGVzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9jb250cmFjdGlvbkluZGV4U2l6ZV87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiBjb250cmFjdGlvbiB0YWJsZSBpbiBieXRlcworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fY29udHJhY3Rpb25DRVNpemVfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIFRyaWUgaW4gYnl0ZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3RyaWVTaXplXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSB0YWJsZSB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGNvbGxhdGlvbiBlbGVtZW50cworICAgICAqIHRoYXQgZW5kIHdpdGggYW4gZXhwYW5zaW9uIAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fZXhwYW5zaW9uRW5kQ0VTaXplXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSB0YWJsZSB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBtYXhpbXVtIHNpemUgb2YgCisgICAgICogY29sbGF0aW9uIGVsZW1lbnRzIHRoYXQgZW5kIHdpdGggYSBwYXJ0aWN1bGFyIGV4cGFuc2lvbiBDRSBjb3JyZXNwb25kaW5nCisgICAgICogdG8gdGhlIG9uZXMgaW4gZXhwYW5zaW9uRW5kQ0UKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2V4cGFuc2lvbkVuZENFTWF4U2l6ZVNpemVfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIG9wdGlvbiB0YWJsZSB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb2xsYXRpb24KKyAgICAgKiBvcHRpb25zCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9vcHRpb25TaXplXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSB3aG9sZSBkYXRhIGZpbGUgbWludXNpbmcgdGhlIElDVSBoZWFkZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3NpemVfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIGNvbGxhdGlvbiBkYXRhIGhlYWRlcgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1faGVhZGVyU2l6ZV87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgdGFibGUgdGhhdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgIlVuc2FmZSIgCisgICAgICogY29kZXBvaW50cworICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdW5zYWZlU2l6ZV87CisgICAgLyoqCisgICAgICogU2l6ZSBvZiB0aGUgdGFibGUgdGhhdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBjb2RlcG9pbnRzIHRoYXQgZW5kcworICAgICAqIHdpdGggYSBjb250cmFjdGlvbgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fY29udHJhY3Rpb25FbmRTaXplXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSB0YWJsZSB0aGF0IGNvbnRhaW5zIFVDQSBjb250cmFjdGlvbiBpbmZvcm1hdGlvbgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fVUNBVmFsdWVzU2l6ZV87CisgICAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3JTZXJ2aWNlU2hpbS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29sbGF0b3JTZXJ2aWNlU2hpbS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllMmY0NDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db2xsYXRvclNlcnZpY2VTaGltLmphdmEKQEAgLTAsMCArMSwxMzUgQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZS5Mb2NhbGVLZXlGYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2UuRmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Db2xsYXRvci5Db2xsYXRvckZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CisKK2ZpbmFsIGNsYXNzIENvbGxhdG9yU2VydmljZVNoaW0gZXh0ZW5kcyBDb2xsYXRvci5TZXJ2aWNlU2hpbSB7CisKKyAgICBDb2xsYXRvciBnZXRJbnN0YW5jZShVTG9jYWxlIGxvY2FsZSkgeworICAgIC8vIHVzZSBzZXJ2aWNlIGNhY2hlLCBpdCdzIGZhc3RlciB0aGFuIGluc3RhbnRpYXRpb24KKy8vICAgICAgICAgIGlmIChzZXJ2aWNlLmlzRGVmYXVsdCgpKSB7CisvLyAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSdWxlQmFzZWRDb2xsYXRvcihsb2NhbGUpOworLy8gICAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVTG9jYWxlW10gYWN0dWFsTG9jID0gbmV3IFVMb2NhbGVbMV07CisgICAgICAgICAgICBDb2xsYXRvciBjb2xsID0gKENvbGxhdG9yKXNlcnZpY2UuZ2V0KGxvY2FsZSwgYWN0dWFsTG9jKTsKKyAgICAgICAgICAgIGlmIChjb2xsID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgbG9jYXRlIENvbGxhdG9yIGRhdGEiLCAiIiwgIiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY29sbCA9IChDb2xsYXRvcikgY29sbC5jbG9uZSgpOworICAgICAgICAgICAgY29sbC5zZXRMb2NhbGUoYWN0dWFsTG9jWzBdLCBhY3R1YWxMb2NbMF0pOyAvLyBzZXJ2aWNlcyBtYWtlIG5vIGRpc3RpbmN0aW9uIGJldHdlZW4gYWN0dWFsICYgdmFsaWQKKyAgICAgICAgICAgIHJldHVybiBjb2xsOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgfQorICAgIH0KKworICAgIE9iamVjdCByZWdpc3Rlckluc3RhbmNlKENvbGxhdG9yIGNvbGxhdG9yLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gc2VydmljZS5yZWdpc3Rlck9iamVjdChjb2xsYXRvciwgbG9jYWxlKTsKKyAgICB9CisKKyAgICBPYmplY3QgcmVnaXN0ZXJGYWN0b3J5KENvbGxhdG9yRmFjdG9yeSBmKSB7CisgICAgICAgIGNsYXNzIENGYWN0b3J5IGV4dGVuZHMgTG9jYWxlS2V5RmFjdG9yeSB7CisgICAgICAgICAgICBDb2xsYXRvckZhY3RvcnkgZGVsZWdhdGU7CisKKyAgICAgICAgICAgIENGYWN0b3J5KENvbGxhdG9yRmFjdG9yeSBmKSB7CisgICAgICAgICAgICAgICAgc3VwZXIoZi52aXNpYmxlKCkpOyAKKyAgICAgICAgICAgICAgICB0aGlzLmRlbGVnYXRlID0gZjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIE9iamVjdCBoYW5kbGVDcmVhdGUoVUxvY2FsZSBsb2MsIGludCBraW5kLCBJQ1VTZXJ2aWNlIHNlcnZpY2UpIHsKKyAgICAgICAgICAgICAgICBPYmplY3QgY29sbCA9IGRlbGVnYXRlLmNyZWF0ZUNvbGxhdG9yKGxvYyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgICAgICAgICAgVUxvY2FsZSBvYmplY3RMb2NhbGUgPSBuZXcgVUxvY2FsZShpZCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRlbGVnYXRlLmdldERpc3BsYXlOYW1lKG9iamVjdExvY2FsZSwgZGlzcGxheUxvY2FsZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBTZXQgZ2V0U3VwcG9ydGVkSURzKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBkZWxlZ2F0ZS5nZXRTdXBwb3J0ZWRMb2NhbGVJRHMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShuZXcgQ0ZhY3RvcnkoZikpOworICAgIH0KKworICAgIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3QgcmVnaXN0cnlLZXkpIHsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UudW5yZWdpc3RlckZhY3RvcnkoKEZhY3RvcnkpcmVnaXN0cnlLZXkpOworICAgIH0KKworICAgIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIC8vIFRPRE8gcmV3cml0ZSB0aGlzIHRvIGp1c3Qgd3JhcCBnZXRBdmFpbGFibGVVTG9jYWxlcyBsYXRlcgorICAgICAgICBpZiAoc2VydmljZS5pc0RlZmF1bHQoKSkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzZXJ2aWNlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSB7CisgICAgICAgIGlmIChzZXJ2aWNlLmlzRGVmYXVsdCgpKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzZXJ2aWNlLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgfQorCisgICAgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgb2JqZWN0TG9jYWxlLCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgU3RyaW5nIGlkID0gb2JqZWN0TG9jYWxlLmdldE5hbWUoKTsKKyAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0RGlzcGxheU5hbWUoaWQsIGRpc3BsYXlMb2NhbGUpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIENTZXJ2aWNlIGV4dGVuZHMgSUNVTG9jYWxlU2VydmljZSB7CisgICAgICAgIENTZXJ2aWNlKCkgeworICAgICAgICAgICAgc3VwZXIoIkNvbGxhdG9yIik7CisKKyAgICAgICAgICAgIGNsYXNzIENvbGxhdG9yRmFjdG9yeSBleHRlbmRzIElDVVJlc291cmNlQnVuZGxlRmFjdG9yeSB7CisgICAgICAgICAgICAgICAgQ29sbGF0b3JGYWN0b3J5KCkgeworICAgICAgICAgICAgICAgICAgICBzdXBlcihJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQ09MTEFUSU9OX0JBU0VfTkFNRSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVDcmVhdGUoVUxvY2FsZSB1bG9jLCBpbnQga2luZCwgSUNVU2VydmljZSBzZXJ2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUnVsZUJhc2VkQ29sbGF0b3IodWxvYyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRmFjdG9yeShuZXcgQ29sbGF0b3JGYWN0b3J5KCkpOworICAgICAgICAgICAgbWFya0RlZmF1bHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBPYmplY3QgaGFuZGxlRGVmYXVsdChLZXkga2V5LCBTdHJpbmdbXSBhY3R1YWxJRFJldHVybikgeworICAgICAgICAgICAgaWYgKGFjdHVhbElEUmV0dXJuICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhY3R1YWxJRFJldHVyblswXSA9ICJyb290IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSdWxlQmFzZWRDb2xsYXRvcihVTG9jYWxlLlJPT1QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgSUNVTG9jYWxlU2VydmljZSBzZXJ2aWNlID0gbmV3IENTZXJ2aWNlKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Db21wb3NlZENoYXJJdGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db21wb3NlZENoYXJJdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjI1NTNmYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0NvbXBvc2VkQ2hhckl0ZXIuamF2YQpAQCAtMCwwICsxLDE2NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworCisvKioKKyAqIDx0dD5Db21wb3NlZENoYXJJdGVyPC90dD4gaXMgYW4gaXRlcmF0b3IgY2xhc3MgdGhhdCByZXR1cm5zIGFsbAorICogb2YgdGhlIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMgZGVmaW5lZCBpbiB0aGUgVW5pY29kZSBzdGFuZGFyZCwgYWxvbmcKKyAqIHdpdGggdGhlaXIgZGVjb21wb3NlZCBmb3Jtcy4gIFRoaXMgaXMgb2Z0ZW4gdXNlZnVsIHdoZW4gYnVpbGRpbmcKKyAqIGRhdGEgdGFibGVzICg8aT5lLmcuPC9pPiBjb2xsYXRpb24gdGFibGVzKSB3aGljaCBuZWVkIHRvIHRyZWF0IGNvbXBvc2VkCisgKiBhbmQgZGVjb21wb3NlZCBjaGFyYWN0ZXJzIGVxdWl2YWxlbnRseS4KKyAqIDxwPgorICogRm9yIGV4YW1wbGUsIGltYWdpbmUgdGhhdCB5b3UgaGF2ZSBidWlsdCBhIGNvbGxhdGlvbiB0YWJsZSB3aXRoIG9yZGVyaW5nCisgKiBydWxlcyBmb3IgdGhlIHtAbGluayBOb3JtYWxpemVyI0RFQ09NUCBjYW5vbmljYWxseSBkZWNvbXBvc2VkfSBmb3JtcyBvZiBhbGwKKyAqIGNoYXJhY3RlcnMgdXNlZCBpbiBhIHBhcnRpY3VsYXIgbGFuZ3VhZ2UuICBXaGVuIHlvdSBwcm9jZXNzIGlucHV0IHRleHQgdXNpbmcKKyAqIHRoaXMgdGFibGUsIHRoZSB0ZXh0IG11c3QgZmlyc3QgYmUgZGVjb21wb3NlZCBzbyB0aGF0IGl0IG1hdGNoZXMgdGhlIGZvcm0KKyAqIHVzZWQgaW4gdGhlIHRhYmxlLiAgVGhpcyBjYW4gaW1wb3NlIGEgcGVyZm9ybWFuY2UgcGVuYWx0eSB0aGF0IG1heSBiZQorICogdW5hY2NlcHRhYmxlIGluIHNvbWUgc2l0dWF0aW9ucy4KKyAqIDxwPgorICogWW91IGNhbiBhdm9pZCB0aGlzIHByb2JsZW0gYnkgZW5zdXJpbmcgdGhhdCB0aGUgY29sbGF0aW9uIHRhYmxlIGNvbnRhaW5zCisgKiBydWxlcyBmb3IgYm90aCB0aGUgZGVjb21wb3NlZCA8aT5hbmQ8L2k+IGNvbXBvc2VkIHZlcnNpb25zIG9mIGVhY2ggY2hhcmFjdGVyLgorICogVG8gZG8gc28sIHVzZSBhIDx0dD5Db21wb3NlZENoYXJJdGVyPC90dD4gdG8gaXRlcmF0ZSB0aHJvdWdoIGFsbCBvZiB0aGUKKyAqIGNvbXBvc2VkIGNoYXJhY3RlcnMgaW4gVW5pY29kZS4gIElmIHRoZSBkZWNvbXBvc2l0aW9uIGZvciB0aGF0IGNoYXJhY3RlcgorICogY29uc2lzdHMgc29sZWx5IG9mIGNoYXJhY3RlcnMgdGhhdCBhcmUgbGlzdGVkIGluIHlvdXIgcnVsZXNldCwgeW91IGNhbgorICogYWRkIGEgbmV3IHJ1bGUgZm9yIHRoZSBjb21wb3NlZCBjaGFyYWN0ZXIgdGhhdCBtYWtlcyBpdCBlcXVpdmFsZW50IHRvCisgKiBpdHMgZGVjb21wb3NpdGlvbiBzZXF1ZW5jZS4KKyAqIDxwPgorICogTm90ZSB0aGF0IDx0dD5Db21wb3NlZENoYXJJdGVyPC90dD4gaXRlcmF0ZXMgb3ZlciBhIDxlbT5zdGF0aWM8L2VtPiB0YWJsZQorICogb2YgdGhlIGNvbXBvc2VkIGNoYXJhY3RlcnMgaW4gVW5pY29kZS4gIElmIHlvdSB3YW50IHRvIGl0ZXJhdGUgb3ZlciB0aGUKKyAqIGNvbXBvc2VkIGNoYXJhY3RlcnMgaW4gYSBwYXJ0aWN1bGFyIHN0cmluZywgdXNlIHtAbGluayBOb3JtYWxpemVyfSBpbnN0ZWFkLgorICogPHA+CisgKiBXaGVuIGNvbnN0cnVjdGluZyBhIDx0dD5Db21wb3NlZENoYXJJdGVyPC90dD4gdGhlcmUgaXMgb25lCisgKiBvcHRpb25hbCBmZWF0dXJlIHRoYXQgeW91IGNhbiBlbmFibGUgb3IgZGlzYWJsZToKKyAqIDx1bD4KKyAqICAgPGxpPntAbGluayBOb3JtYWxpemVyI0lHTk9SRV9IQU5HVUx9IC0gRG8gbm90IGl0ZXJhdGUgb3ZlciB0aGUgSGFuZ3VsCisgKiAgICAgICAgICBjaGFyYWN0ZXJzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIEphbW8gZGVjb21wb3NpdGlvbnMuCisgKiAgICAgICAgICBUaGlzIG9wdGlvbiBpcyBvZmYgYnkgZGVmYXVsdCAoPGk+aS5lLjwvaT4gSGFuZ3VsIHByb2Nlc3NpbmcgaXMgZW5hYmxlZCkKKyAqICAgICAgICAgIHNpbmNlIHRoZSBVbmljb2RlIHN0YW5kYXJkIHNwZWNpZmllcyB0aGF0IEhhbmd1bCB0byBKYW1vIAorICogICAgICAgICAgaXMgYSBjYW5vbmljYWwgZGVjb21wb3NpdGlvbi4KKyAqIDwvdWw+CisgKiA8cD4KKyAqIDx0dD5Db21wb3NlZENoYXJJdGVyPC90dD4gaXMgY3VycmVudGx5IGJhc2VkIG9uIHZlcnNpb24gMi4xLjggb2YgdGhlCisgKiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnIiB0YXJnZXQ9InVuaWNvZGUiPlVuaWNvZGUgU3RhbmRhcmQ8L2E+LgorICogSXQgd2lsbCBiZSB1cGRhdGVkIGFzIGxhdGVyIHZlcnNpb25zIG9mIFVuaWNvZGUgYXJlIHJlbGVhc2VkLgorICogQGRlcHJlY2F0ZWQgSUNVIDIuMgorICovCisvLy9DTE9WRVI6T0ZGCitwdWJsaWMgZmluYWwgY2xhc3MgQ29tcG9zZWRDaGFySXRlciB7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgdGhhdCBpbmRpY2F0ZXMgdGhlIGl0ZXJhdGlvbiBoYXMgY29tcGxldGVkLgorICAgICAqIHtAbGluayAjbmV4dH0gcmV0dXJucyB0aGlzIHZhbHVlIHdoZW4gdGhlcmUgYXJlIG5vIG1vcmUgY29tcG9zZWQgY2hhcmFjdGVycworICAgICAqIG92ZXIgd2hpY2ggdG8gaXRlcmF0ZS4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCAgY2hhciBET05FID0gKGNoYXIpIE5vcm1hbGl6ZXIuRE9ORTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgPHR0PkNvbXBvc2VkQ2hhckl0ZXI8L3R0Pi4gIFRoZSBpdGVyYXRvciB3aWxsIHJldHVybgorICAgICAqIGFsbCBVbmljb2RlIGNoYXJhY3RlcnMgd2l0aCBjYW5vbmljYWwgZGVjb21wb3NpdGlvbnMsIGluY2x1ZGluZyBLb3JlYW4KKyAgICAgKiBIYW5ndWwgY2hhcmFjdGVycy4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIENvbXBvc2VkQ2hhckl0ZXIoKSB7CisgICAgICAgIGNvbXBhdCA9IGZhbHNlOworICAgICAgICBvcHRpb25zID0wOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbm9uLWRlZmF1bHQgPHR0PkNvbXBvc2VkQ2hhckl0ZXI8L3R0PiB3aXRoIG9wdGlvbmFsIGJlaGF2aW9yLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjb21wYXQgICAgPHR0PmZhbHNlPC90dD4gZm9yIGNhbm9uaWNhbCBkZWNvbXBvc2l0aW9ucyBvbmx5OworICAgICAqICAgICAgICAgICAgICAgICAgPHR0PnRydWU8L3R0PiBmb3IgYm90aCBjYW5vbmljYWwgYW5kIGNvbXBhdGliaWxpdHkKKyAgICAgKiAgICAgICAgICAgICAgICAgIGRlY29tcG9zaXRpb25zLgorICAgICAqCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBPcHRpb25hbCBkZWNvbXBvc2l0aW9uIGZlYXR1cmVzLiAgQ3VycmVudGx5LCB0aGUgb25seQorICAgICAqICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkIG9wdGlvbiBpcyB7QGxpbmsgTm9ybWFsaXplciNJR05PUkVfSEFOR1VMfSwgd2hpY2gKKyAgICAgKiAgICAgICAgICAgICAgICAgIGNhdXNlcyB0aGlzIDx0dD5Db21wb3NlZENoYXJJdGVyPC90dD4gbm90IHRvIGl0ZXJhdGUKKyAgICAgKiAgICAgICAgICAgICAgICAgIG92ZXIgdGhlIEhhbmd1bCBjaGFyYWN0ZXJzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nCisgICAgICogICAgICAgICAgICAgICAgICBKYW1vIGRlY29tcG9zaXRpb25zLgorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcG9zZWRDaGFySXRlcihib29sZWFuIGNvbXBhdCwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgdGhpcy5jb21wYXQgPSBjb21wYXQ7CisgICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGVyZSBhbnkgcHJlY29tcG9zZWQgVW5pY29kZSBjaGFyYWN0ZXJzIG5vdCB5ZXQgcmV0dXJuZWQKKyAgICAgKiBieSB7QGxpbmsgI25leHR9LgorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNOZXh0KCkgeworICAgICAgICBpZiAobmV4dENoYXIgPT0gTm9ybWFsaXplci5ET05FKSAgeworICAgICAgICAgICAgZmluZE5leHRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5leHRDaGFyICE9IE5vcm1hbGl6ZXIuRE9ORTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbmV4dCBwcmVjb21wb3NlZCBVbmljb2RlIGNoYXJhY3Rlci4KKyAgICAgKiBSZXBlYXRlZCBjYWxscyB0byA8dHQ+bmV4dDwvdHQ+IHJldHVybiBhbGwgb2YgdGhlIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMgZGVmaW5lZAorICAgICAqIGJ5IFVuaWNvZGUsIGluIGFzY2VuZGluZyBvcmRlci4gIEFmdGVyIGFsbCBwcmVjb21wb3NlZCBjaGFyYWN0ZXJzIGhhdmUKKyAgICAgKiBiZWVuIHJldHVybmVkLCB7QGxpbmsgI2hhc05leHR9IHdpbGwgcmV0dXJuIDx0dD5mYWxzZTwvdHQ+IGFuZCBmdXJ0aGVyIGNhbGxzCisgICAgICogdG8gPHR0Pm5leHQ8L3R0PiB3aWxsIHJldHVybiB7QGxpbmsgI0RPTkV9LgorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBuZXh0KCkgeworICAgICAgICBpZiAobmV4dENoYXIgPT0gTm9ybWFsaXplci5ET05FKSAgeworICAgICAgICAgICAgZmluZE5leHRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgY3VyQ2hhciA9IG5leHRDaGFyOworICAgICAgICBuZXh0Q2hhciA9IE5vcm1hbGl6ZXIuRE9ORTsKKyAgICAgICAgcmV0dXJuIChjaGFyKSBjdXJDaGFyOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBVbmljb2RlIGRlY29tcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGRlY29tcG9zaXRpb24gb2YgdGhlIHByZWNvbXBvc2VkIGNoYXJhY3RlciBtb3N0CisgICAgICogcmVjZW50bHkgcmV0dXJuZWQgYnkge0BsaW5rICNuZXh0fS4gIFRoZSByZXN1bHRpbmcgZGVjb21wb3NpdGlvbiBpcworICAgICAqIGFmZmVjdGVkIGJ5IHRoZSBzZXR0aW5ncyBvZiB0aGUgb3B0aW9ucyBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGRlY29tcG9zaXRpb24oKSB7CisgICAgICAgIC8vIHRoZSBkZWNvbXBvc2l0aW9uIGJ1ZmZlciBjb250YWlucyB0aGUgZGVjb21wb3NpdGlvbiBvZiAKKyAgICAgICAgLy8gY3VycmVudCBjaGFyIHNvIGp1c3QgcmV0dXJuIGl0CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGRlY29tcEJ1ZiwwLCBidWZMZW4pOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgZmluZE5leHRDaGFyKCkgeworICAgICAgICBpbnQgYz1jdXJDaGFyKzE7CisgICAgICAgIGZvcig7Oyl7CisgICAgICAgICAgIGlmKGMgPCAweEZGRkYpeworICAgICAgICAgICAgICAgYnVmTGVuID0gTm9ybWFsaXplckltcGwuZ2V0RGVjb21wb3NpdGlvbihjLGNvbXBhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb21wQnVmLDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29tcEJ1Zi5sZW5ndGgpOworICAgICAgICAgICAgICAgaWYoYnVmTGVuPjApeworICAgICAgICAgICAgICAgICAgICAvLyB0aGUgY3VyQ2hhciBjYW4gYmUgZGVjb21wb3NlZC4uLiBzbyBpdCBpcyBhIGNvbXBvc2VkIGNoYXIKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FjaGUgdGhlIHJlc3VsdCAgICAgCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgYysrOworICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgIGM9Tm9ybWFsaXplci5ET05FOworICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBuZXh0Q2hhcj1jOyAgCisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50IG9wdGlvbnM7CisgICAgcHJpdmF0ZSBib29sZWFuIGNvbXBhdDsKKyAgICBwcml2YXRlIGNoYXJbXSBkZWNvbXBCdWYgPSBuZXcgY2hhclsxMDBdOworICAgIHByaXZhdGUgaW50IGJ1Zkxlbj0wOworICAgIHByaXZhdGUgaW50IGN1ckNoYXIgPSAwOworICAgIHByaXZhdGUgaW50IG5leHRDaGFyID0gTm9ybWFsaXplci5ET05FOworICAgIAorCit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29tcG91bmRUcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ29tcG91bmRUcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM1ZTA3ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Db21wb3VuZFRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw1MTUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eUV4dGVuc2lvbnM7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgaXMgY29tcG9zZWQgb2YgdHdvIG9yIG1vcmUgb3RoZXIKKyAqIHRyYW5zbGl0ZXJhdG9yIG9iamVjdHMgbGlua2VkIHRvZ2V0aGVyLiAgRm9yIGV4YW1wbGUsIGlmIG9uZQorICogdHJhbnNsaXRlcmF0b3IgdHJhbnNsaXRlcmF0ZXMgZnJvbSBzY3JpcHQgQSB0byBzY3JpcHQgQiwgYW5kCisgKiBhbm90aGVyIHRyYW5zbGl0ZXJhdGVzIGZyb20gc2NyaXB0IEIgdG8gc2NyaXB0IEMsIHRoZSB0d28gbWF5IGJlCisgKiBjb21iaW5lZCB0byBmb3JtIGEgbmV3IHRyYW5zbGl0ZXJhdG9yIGZyb20gQSB0byBDLgorICoKKyAqIDxwPkNvbXBvc2VkIHRyYW5zbGl0ZXJhdG9ycyBtYXkgbm90IGJlaGF2ZSBhcyBleHBlY3RlZC4gIEZvcgorICogZXhhbXBsZSwgaW52ZXJzZXMgbWF5IG5vdCBjb21iaW5lIHRvIGZvcm0gdGhlIGlkZW50aXR5CisgKiB0cmFuc2xpdGVyYXRvci4gIFNlZSB0aGUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3Ige0BsaW5rCisgKiBUcmFuc2xpdGVyYXRvcn0gZm9yIGRldGFpbHMuCisgKgorICogPHA+Q29weXJpZ2h0ICZjb3B5OyBJQk0gQ29ycG9yYXRpb24gMTk5OS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICogQGludGVybmFsCisgKi8KK2NsYXNzIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICBwcml2YXRlIFRyYW5zbGl0ZXJhdG9yW10gdHJhbnM7CisKKyAgICBwcml2YXRlIGludCBudW1Bbm9ueW1vdXNSQlRzID0gMDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LTIwMDEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgY29tcG91bmQgdHJhbnNsaXRlcmF0b3IgZ2l2ZW4gYW4gYXJyYXkgb2YKKyAgICAgKiB0cmFuc2xpdGVyYXRvcnMuICBUaGUgYXJyYXkgb2YgdHJhbnNsaXRlcmF0b3JzIG1heSBiZSBvZiBhbnkKKyAgICAgKiBsZW5ndGgsIGluY2x1ZGluZyB6ZXJvIG9yIG9uZSwgaG93ZXZlciwgdXNlZnVsIGNvbXBvdW5kCisgICAgICogdHJhbnNsaXRlcmF0b3JzIGhhdmUgYXQgbGVhc3QgdHdvIGNvbXBvbmVudHMuCisgICAgICogQHBhcmFtIHRyYW5zbGl0ZXJhdG9ycyBhcnJheSBvZiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4KKyAgICAgKiBvYmplY3RzCisgICAgICogQHBhcmFtIGZpbHRlciB0aGUgZmlsdGVyLiAgQW55IGNoYXJhY3RlciBmb3Igd2hpY2gKKyAgICAgKiA8dHQ+ZmlsdGVyLmNvbnRhaW5zKCk8L3R0PiByZXR1cm5zIDx0dD5mYWxzZTwvdHQ+IHdpbGwgbm90IGJlCisgICAgICogYWx0ZXJlZCBieSB0aGlzIHRyYW5zbGl0ZXJhdG9yLiAgSWYgPHR0PmZpbHRlcjwvdHQ+IGlzCisgICAgICogPHR0Pm51bGw8L3R0PiB0aGVuIG5vIGZpbHRlcmluZyBpcyBhcHBsaWVkLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFRyYW5zbGl0ZXJhdG9yW10gdHJhbnNsaXRlcmF0b3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIgZmlsdGVyKSB7CisgICAgICAgIHN1cGVyKGpvaW5JRHModHJhbnNsaXRlcmF0b3JzKSwgZmlsdGVyKTsKKyAgICAgICAgdHJhbnMgPSBuZXcgVHJhbnNsaXRlcmF0b3JbdHJhbnNsaXRlcmF0b3JzLmxlbmd0aF07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodHJhbnNsaXRlcmF0b3JzLCAwLCB0cmFucywgMCwgdHJhbnMubGVuZ3RoKTsKKyAgICAgICAgY29tcHV0ZU1heGltdW1Db250ZXh0TGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIG5ldyBjb21wb3VuZCB0cmFuc2xpdGVyYXRvciBnaXZlbiBhbiBhcnJheSBvZgorICAgICAqIHRyYW5zbGl0ZXJhdG9ycy4gIFRoZSBhcnJheSBvZiB0cmFuc2xpdGVyYXRvcnMgbWF5IGJlIG9mIGFueQorICAgICAqIGxlbmd0aCwgaW5jbHVkaW5nIHplcm8gb3Igb25lLCBob3dldmVyLCB1c2VmdWwgY29tcG91bmQKKyAgICAgKiB0cmFuc2xpdGVyYXRvcnMgaGF2ZSBhdCBsZWFzdCB0d28gY29tcG9uZW50cy4KKyAgICAgKiBAcGFyYW0gdHJhbnNsaXRlcmF0b3JzIGFycmF5IG9mIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPgorICAgICAqIG9iamVjdHMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihUcmFuc2xpdGVyYXRvcltdIHRyYW5zbGl0ZXJhdG9ycykgeworICAgICAgICB0aGlzKHRyYW5zbGl0ZXJhdG9ycywgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIG5ldyBjb21wb3VuZCB0cmFuc2xpdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gSUQgY29tcG91bmQgSUQKKyAgICAgKiBAcGFyYW0gZGlyZWN0aW9uIGVpdGhlciBUcmFuc2xpdGVyYXRvci5GT1JXQVJEIG9yIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UKKyAgICAgKiBAcGFyYW0gZmlsdGVyIGEgZ2xvYmFsIGZpbHRlciBmb3IgdGhpcyBjb21wb3VuZCB0cmFuc2xpdGVyYXRvcgorICAgICAqIG9yIG51bGwKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIGludCBkaXJlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZUZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgc3VwZXIoSUQsIGZpbHRlcik7CisgICAgICAgIGluaXQoSUQsIGRpcmVjdGlvbiwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIG5ldyBjb21wb3VuZCB0cmFuc2xpdGVyYXRvciB3aXRoIG5vIGZpbHRlci4KKyAgICAgKiBAcGFyYW0gSUQgY29tcG91bmQgSUQKKyAgICAgKiBAcGFyYW0gZGlyZWN0aW9uIGVpdGhlciBUcmFuc2xpdGVyYXRvci5GT1JXQVJEIG9yIFRyYW5zbGl0ZXJhdG9yLlJFVkVSU0UKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIGludCBkaXJlY3Rpb24pIHsKKyAgICAgICAgdGhpcyhJRCwgZGlyZWN0aW9uLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGZvcndhcmQgY29tcG91bmQgdHJhbnNsaXRlcmF0b3Igd2l0aCBubyBmaWx0ZXIuCisgICAgICogQHBhcmFtIElEIGNvbXBvdW5kIElECisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElEKSB7CisgICAgICAgIHRoaXMoSUQsIEZPUldBUkQsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhY2thZ2UgcHJpdmF0ZSBjb25zdHJ1Y3RvciBmb3IgVHJhbnNsaXRlcmF0b3IgZnJvbSBhIHZlY3RvciBvZgorICAgICAqIHRyYW5zbGl0ZXJhdG9ycy4gIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGZpeGluZyB1cCB0aGUKKyAgICAgKiBJRC4KKyAgICAgKi8KKyAgICBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKFZlY3RvciBsaXN0KSB7CisgICAgICAgIHRoaXMobGlzdCwgMCk7CisgICAgfQorCisgICAgQ29tcG91bmRUcmFuc2xpdGVyYXRvcihWZWN0b3IgbGlzdCwgaW50IG51bUFub255bW91c1JCVHMpIHsKKyAgICAgICAgc3VwZXIoIiIsIG51bGwpOworICAgICAgICB0cmFucyA9IG51bGw7CisgICAgICAgIGluaXQobGlzdCwgRk9SV0FSRCwgZmFsc2UpOworICAgICAgICB0aGlzLm51bUFub255bW91c1JCVHMgPSBudW1Bbm9ueW1vdXNSQlRzOworICAgICAgICAvLyBhc3N1bWUgY2FsbGVyIHdpbGwgZml4dXAgSUQKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5pc2ggY29uc3RydWN0aW5nIGEgdHJhbnNsaXRlcmF0b3I6IG9ubHkgdG8gYmUgY2FsbGVkIGJ5CisgICAgICogY29uc3RydWN0b3JzLiAgQmVmb3JlIGNhbGxpbmcgaW5pdCgpLCBzZXQgdHJhbnMgYW5kIGZpbHRlciB0byBOVUxMLgorICAgICAqIEBwYXJhbSBpZCB0aGUgaWQgY29udGFpbmluZyAnOyctc2VwYXJhdGVkIGVudHJpZXMKKyAgICAgKiBAcGFyYW0gZGlyZWN0aW9uIGVpdGhlciBGT1JXQVJEIG9yIFJFVkVSU0UKKyAgICAgKiBAcGFyYW0gaWRTcGxpdFBvaW50IHRoZSBpbmRleCBpbnRvIGlkIGF0IHdoaWNoIHRoZQorICAgICAqIHNwbGl0VHJhbnMgc2hvdWxkIGJlIGluc2VydGVkLCBpZiB0aGVyZSBpcyBvbmUsIG9yCisgICAgICogLTEgaWYgdGhlcmUgaXMgbm9uZS4KKyAgICAgKiBAcGFyYW0gc3BsaXRUcmFucyBhIHRyYW5zbGl0ZXJhdG9yIHRvIGJlIGluc2VydGVkCisgICAgICogYmVmb3JlIHRoZSBlbnRyeSBhdCBvZmZzZXQgaWRTcGxpdFBvaW50IGluIHRoZSBpZCBzdHJpbmcuICBNYXkgYmUKKyAgICAgKiBOVUxMIHRvIGluc2VydCBubyBlbnRyeS4KKyAgICAgKiBAcGFyYW0gZml4UmV2ZXJzZUlEIGlmIFRSVUUsIHRoZW4gcmVjb25zdHJ1Y3QgdGhlIElEIG9mIHJldmVyc2UKKyAgICAgKiBlbnRyaWVzIGJ5IGNhbGxpbmcgZ2V0SUQoKSBvZiBjb21wb25lbnQgZW50cmllcy4gIFNvbWUgY29uc3RydWN0b3JzCisgICAgICogZG8gbm90IHJlcXVpcmUgdGhpcyBiZWNhdXNlIHRoZXkgYXBwbHkgYSBmYWNhZGUgSUQgYW55d2F5LgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0KFN0cmluZyBpZCwKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgZGlyZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZml4UmV2ZXJzZUlEKSB7CisgICAgICAgIC8vIGFzc2VydCh0cmFucyA9PSAwKTsKKworICAgICAgICBWZWN0b3IgbGlzdCA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgVW5pY29kZVNldFtdIGNvbXBvdW5kRmlsdGVyID0gbmV3IFVuaWNvZGVTZXRbMV07CisgICAgICAgIFN0cmluZ0J1ZmZlciByZWdlbklEID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpZiAoIVRyYW5zbGl0ZXJhdG9ySURQYXJzZXIucGFyc2VDb21wb3VuZElEKGlkLCBkaXJlY3Rpb24sCisgICAgICAgICAgICAgICAgIHJlZ2VuSUQsIGxpc3QsIGNvbXBvdW5kRmlsdGVyKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBJRCAiICsgaWQpOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5pbnN0YW50aWF0ZUxpc3QobGlzdCk7CisKKyAgICAgICAgaW5pdChsaXN0LCBkaXJlY3Rpb24sIGZpeFJldmVyc2VJRCk7CisKKyAgICAgICAgaWYgKGNvbXBvdW5kRmlsdGVyWzBdICE9IG51bGwpIHsKKyAgICAgICAgICAgIHNldEZpbHRlcihjb21wb3VuZEZpbHRlclswXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5pc2ggY29uc3RydWN0aW5nIGEgdHJhbnNsaXRlcmF0b3I6IG9ubHkgdG8gYmUgY2FsbGVkIGJ5CisgICAgICogY29uc3RydWN0b3JzLiAgQmVmb3JlIGNhbGxpbmcgaW5pdCgpLCBzZXQgdHJhbnMgYW5kIGZpbHRlciB0byBOVUxMLgorICAgICAqIEBwYXJhbSBsaXN0IGEgdmVjdG9yIG9mIHRyYW5zbGl0ZXJhdG9yIG9iamVjdHMgdG8gYmUgYWRvcHRlZC4gIEl0CisgICAgICogc2hvdWxkIE5PVCBiZSBlbXB0eS4gIFRoZSBsaXN0IHNob3VsZCBiZSBpbiBkZWNsYXJlZCBvcmRlci4gIFRoYXQKKyAgICAgKiBpcywgaXQgc2hvdWxkIGJlIGluIHRoZSBGT1JXQVJEIG9yZGVyOyBpZiBkaXJlY3Rpb24gaXMgUkVWRVJTRSB0aGVuCisgICAgICogdGhlIGxpc3Qgb3JkZXIgd2lsbCBiZSByZXZlcnNlZC4KKyAgICAgKiBAcGFyYW0gZGlyZWN0aW9uIGVpdGhlciBGT1JXQVJEIG9yIFJFVkVSU0UKKyAgICAgKiBAcGFyYW0gZml4UmV2ZXJzZUlEIGlmIFRSVUUsIHRoZW4gcmVjb25zdHJ1Y3QgdGhlIElEIG9mIHJldmVyc2UKKyAgICAgKiBlbnRyaWVzIGJ5IGNhbGxpbmcgZ2V0SUQoKSBvZiBjb21wb25lbnQgZW50cmllcy4gIFNvbWUgY29uc3RydWN0b3JzCisgICAgICogZG8gbm90IHJlcXVpcmUgdGhpcyBiZWNhdXNlIHRoZXkgYXBwbHkgYSBmYWNhZGUgSUQgYW55d2F5LgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0KFZlY3RvciBsaXN0LAorICAgICAgICAgICAgICAgICAgICAgIGludCBkaXJlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBmaXhSZXZlcnNlSUQpIHsKKyAgICAgICAgLy8gYXNzZXJ0KHRyYW5zID09IDApOworCisgICAgICAgIC8vIEFsbG9jYXRlIGFycmF5CisgICAgICAgIGludCBjb3VudCA9IGxpc3Quc2l6ZSgpOworICAgICAgICB0cmFucyA9IG5ldyBUcmFuc2xpdGVyYXRvcltjb3VudF07CisKKyAgICAgICAgLy8gTW92ZSB0aGUgdHJhbnNsaXRlcmF0b3JzIGZyb20gdGhlIHZlY3RvciBpbnRvIGFuIGFycmF5LgorICAgICAgICAvLyBSZXZlcnNlIHRoZSBvcmRlciBpZiBuZWNlc3NhcnkuCisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICBpbnQgaiA9IChkaXJlY3Rpb24gPT0gRk9SV0FSRCkgPyBpIDogY291bnQgLSAxIC0gaTsKKyAgICAgICAgICAgIHRyYW5zW2ldID0gKFRyYW5zbGl0ZXJhdG9yKSBsaXN0LmVsZW1lbnRBdChqKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHRoZSBkaXJlY3Rpb24gaXMgVVRSQU5TX1JFVkVSU0UgdGhlbiB3ZSBtYXkgbmVlZCB0byBmaXggdGhlCisgICAgICAgIC8vIElELgorICAgICAgICBpZiAoZGlyZWN0aW9uID09IFJFVkVSU0UgJiYgZml4UmV2ZXJzZUlEKSB7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgbmV3SUQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld0lELmFwcGVuZChJRF9ERUxJTSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5ld0lELmFwcGVuZCh0cmFuc1tpXS5nZXRJRCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNldElEKG5ld0lELnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgY29tcHV0ZU1heGltdW1Db250ZXh0TGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBJRHMgb2YgdGhlIGdpdmVuIGxpc3Qgb2YgdHJhbnNsaXRlcmF0b3JzLCBjb25jYXRlbmF0ZWQKKyAgICAgKiB3aXRoICc7JyBkZWxpbWl0aW5nIHRoZW0uICBFcXVpdmFsZW50IHRvIHRoZSBwZXJsaXNoIGV4cHJlc3Npb24KKyAgICAgKiBqb2luKCc7JywgbWFwKCRfLmdldElEKCksIHRyYW5zbGl0ZXJhdG9ycykuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGpvaW5JRHMoVHJhbnNsaXRlcmF0b3JbXSB0cmFuc2xpdGVyYXRvcnMpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGlkID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8dHJhbnNsaXRlcmF0b3JzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICBpZC5hcHBlbmQoJzsnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlkLmFwcGVuZCh0cmFuc2xpdGVyYXRvcnNbaV0uZ2V0SUQoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGlkLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRyYW5zbGl0ZXJhdG9ycyBpbiB0aGlzIGNoYWluLgorICAgICAqIEByZXR1cm4gbnVtYmVyIG9mIHRyYW5zbGl0ZXJhdG9ycyBpbiB0aGlzIGNoYWluLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Q291bnQoKSB7CisgICAgICAgIHJldHVybiB0cmFucy5sZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdHJhbnNsaXRlcmF0b3IgYXQgdGhlIGdpdmVuIGluZGV4IGluIHRoaXMgY2hhaW4uCisgICAgICogQHBhcmFtIGluZGV4IGluZGV4IGludG8gY2hhaW4sIGZyb20gMCB0byA8Y29kZT5nZXRDb3VudCgpIC0gMTwvY29kZT4KKyAgICAgKiBAcmV0dXJuIHRyYW5zbGl0ZXJhdG9yIGF0IHRoZSBnaXZlbiBpbmRleAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRUcmFuc2xpdGVyYXRvcihpbnQgaW5kZXgpIHsKKyAgICAgICAgcmV0dXJuIHRyYW5zW2luZGV4XTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgYyB0byBidWYsIHVubGVzcyBidWYgaXMgZW1wdHkgb3IgYnVmIGFscmVhZHkgZW5kcyBpbiBjLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgX3NtYXJ0QXBwZW5kKFN0cmluZ0J1ZmZlciBidWYsIGNoYXIgYykgeworICAgICAgICBpZiAoYnVmLmxlbmd0aCgpICE9IDAgJiYKKyAgICAgICAgICAgIGJ1Zi5jaGFyQXQoYnVmLmxlbmd0aCgpIC0gMSkgIT0gYykgeworICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIFRyYW5zbGl0ZXJhdG9yOgorICAgICAqIENyZWF0ZSBhIHJ1bGUgc3RyaW5nIHRoYXQgY2FuIGJlIHBhc3NlZCB0byBjcmVhdGVGcm9tUnVsZXMoKQorICAgICAqIHRvIHJlY3JlYXRlIHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICogQHBhcmFtIGVzY2FwZVVucHJpbnRhYmxlIGlmIFRSVUUgdGhlbiBjb252ZXJ0IHVucHJpbnRhYmxlCisgICAgICogY2hhcmFjdGVyIHRvIHRoZWlyIGhleCBlc2NhcGUgcmVwcmVzZW50YXRpb25zLCBcXHV4eHh4IG9yCisgICAgICogXFxVeHh4eHh4eHguICBVbnByaW50YWJsZSBjaGFyYWN0ZXJzIGFyZSB0aG9zZSBvdGhlciB0aGFuCisgICAgICogVSswMDBBLCBVKzAwMjAuLlUrMDA3RS4KKyAgICAgKiBAcmV0dXJuIHRoZSBydWxlIHN0cmluZworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9SdWxlcyhib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIC8vIFdlIGRvIE5PVCBjYWxsIHRvUnVsZXMoKSBvbiBvdXIgY29tcG9uZW50IHRyYW5zbGl0ZXJhdG9ycywgaW4KKyAgICAgICAgLy8gZ2VuZXJhbC4gIElmIHdlIGhhdmUgc2V2ZXJhbCBydWxlLWJhc2VkIHRyYW5zbGl0ZXJhdG9ycywgdGhpcworICAgICAgICAvLyB5aWVsZHMgYSBjb25jYXRlbmF0aW9uIG9mIHRoZSBydWxlcyAtLSBub3Qgd2hhdCB3ZSB3YW50LiAgV2UgZG8KKyAgICAgICAgLy8gaGFuZGxlIGNvbXBvdW5kIFJCVCB0cmFuc2xpdGVyYXRvcnMgc3BlY2lhbGx5IC0tIHRob3NlIGZvciB3aGljaAorICAgICAgICAvLyBjb21wb3VuZFJCVEluZGV4ID49IDAuICBGb3IgdGhlIHRyYW5zbGl0ZXJhdG9yIGF0IGNvbXBvdW5kUkJUSW5kZXgsCisgICAgICAgIC8vIHdlIGRvIGNhbGwgdG9SdWxlcygpIHJlY3Vyc2l2ZWx5LgorICAgICAgICBTdHJpbmdCdWZmZXIgcnVsZXNTb3VyY2UgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGlmIChudW1Bbm9ueW1vdXNSQlRzID49IDEgJiYgZ2V0RmlsdGVyKCkgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gSWYgd2UgYXJlIGEgY29tcG91bmQgUkJUIGFuZCBpZiB3ZSBoYXZlIGEgZ2xvYmFsCisgICAgICAgICAgICAvLyBmaWx0ZXIsIHRoZW4gZW1pdCBpdCBhdCB0aGUgdG9wLgorICAgICAgICAgICAgcnVsZXNTb3VyY2UuYXBwZW5kKCI6OiIpLmFwcGVuZChnZXRGaWx0ZXIoKS50b1BhdHRlcm4oZXNjYXBlVW5wcmludGFibGUpKS5hcHBlbmQoSURfREVMSU0pOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGk9MDsgaTx0cmFucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIHJ1bGU7CisKKyAgICAgICAgICAgIC8vIEFub255bW91cyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcnMgKGlubGluZSBydWxlcyBhbmQKKyAgICAgICAgICAgIC8vIDo6QkVHSU4vOjpFTkQgYmxvY2tzKSBhcmUgZ2l2ZW4gSURzIHRoYXQgYmVnaW4gd2l0aAorICAgICAgICAgICAgLy8gIiVQYXNzIjogdXNlIHRvUnVsZXMoKSB0byB3cml0ZSBhbGwgdGhlIHJ1bGVzIHRvIHRoZSBvdXRwdXQKKyAgICAgICAgICAgIC8vIChhbmQgaW5zZXJ0ICI6Ok51bGw7IiBpZiB3ZSBoYXZlIHR3byBpbiBhIHJvdykKKyAgICAgICAgICAgIGlmICh0cmFuc1tpXS5nZXRJRCgpLnN0YXJ0c1dpdGgoIiVQYXNzIikpIHsKKyAgICAgICAgICAgICAgICBydWxlID0gdHJhbnNbaV0udG9SdWxlcyhlc2NhcGVVbnByaW50YWJsZSk7CisgICAgICAgICAgICAgICAgaWYgKG51bUFub255bW91c1JCVHMgPiAxICYmIGkgPiAwICYmIHRyYW5zW2kgLSAxXS5nZXRJRCgpLnN0YXJ0c1dpdGgoIiVQYXNzIikpCisgICAgICAgICAgICAgICAgICAgIHJ1bGUgPSAiOjpOdWxsOyIgKyBydWxlOworCisgICAgICAgICAgICAvLyB3ZSBhbHNvIHVzZSB0b1J1bGVzKCkgb24gQ29tcG91bmRUcmFuc2xpdGVyYXRvcnMgKHdoaWNoIHdlCisgICAgICAgICAgICAvLyBjaGVjayBmb3IgYnkgbG9va2luZyBmb3IgYSBzZW1pY29sb24gaW4gdGhlIElEKS0tIHRoaXMgZ2V0cworICAgICAgICAgICAgLy8gdGhlIGxpc3Qgb2YgdGhlaXIgY2hpbGQgdHJhbnNsaXRlcmF0b3JzIG91dHB1dCBpbiB0aGUgcmlnaHQKKyAgICAgICAgICAgIC8vIGZvcm1hdAorICAgICAgICAgICAgfSBlbHNlIGlmICh0cmFuc1tpXS5nZXRJRCgpLmluZGV4T2YoJzsnKSA+PSAwKSB7CisgICAgICAgICAgICAgICAgcnVsZSA9IHRyYW5zW2ldLnRvUnVsZXMoZXNjYXBlVW5wcmludGFibGUpOworCisgICAgICAgICAgICAvLyBmb3IgZXZlcnl0aGluZyBlbHNlLCB1c2UgYmFzZVRvUnVsZXMoKQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBydWxlID0gdHJhbnNbaV0uYmFzZVRvUnVsZXMoZXNjYXBlVW5wcmludGFibGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgX3NtYXJ0QXBwZW5kKHJ1bGVzU291cmNlLCAnXG4nKTsKKyAgICAgICAgICAgIHJ1bGVzU291cmNlLmFwcGVuZChydWxlKTsKKyAgICAgICAgICAgIF9zbWFydEFwcGVuZChydWxlc1NvdXJjZSwgSURfREVMSU0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBydWxlc1NvdXJjZS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIG1vZGlmaWVkIGJ5IHRoaXMKKyAgICAgKiBUcmFuc2xpdGVyYXRvciwgaWdub3JpbmcgdGhlIGVmZmVjdCBvZiBvdXIgZmlsdGVyLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByb3RlY3RlZCBVbmljb2RlU2V0IGhhbmRsZUdldFNvdXJjZVNldCgpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8dHJhbnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHNldC5hZGRBbGwodHJhbnNbaV0uZ2V0U291cmNlU2V0KCkpOworICAgICAgICAgICAgLy8gVGFrZSB0aGUgZXhhbXBsZSBvZiBIaXJhZ2FuYS1MYXRpbi4gIFRoaXMgaXMgcmVhbGx5CisgICAgICAgICAgICAvLyBIaXJhZ2FuYS1LYXRha2FuYTsgS2F0YWthbmEtTGF0aW4uICBUaGUgc291cmNlIHNldCBvZgorICAgICAgICAgICAgLy8gdGhlc2UgdHdvIGlzIHJvdWdobHkgWzpIaXJhZ2FuYTpdIGFuZCBbOkthdGFrYW5hOl0uCisgICAgICAgICAgICAvLyBCdXQgdGhlIHNvdXJjZSBzZXQgZm9yIHRoZSBlbnRpcmUgdHJhbnNsaXRlcmF0b3IgaXMKKyAgICAgICAgICAgIC8vIGFjdHVhbGx5IFs6SGlyYWdhbmE6XSBPTkxZIC0tIHRoYXQgaXMsIHRoZSBmaXJzdAorICAgICAgICAgICAgLy8gbm9uLWVtcHR5IHNvdXJjZSBzZXQuCisKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBoZXVyaXN0aWMsIGFuZCBub3QgMTAwJSByZWxpYWJsZS4KKyAgICAgICAgICAgIGlmICghc2V0LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIGdlbmVyYXRlZCBhcworICAgICAqIHJlcGxhY2VtZW50IHRleHQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRUYXJnZXRTZXQoKSB7CisgICAgICAgIFVuaWNvZGVTZXQgc2V0ID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRyYW5zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGlzIGEgaGV1cmlzdGljLCBhbmQgbm90IDEwMCUgcmVsaWFibGUuCisgICAgICAgICAgICBzZXQuYWRkQWxsKHRyYW5zW2ldLmdldFRhcmdldFNldCgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2V0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIGluZGV4LCBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgIC8qIENhbGwgZWFjaCB0cmFuc2xpdGVyYXRvciB3aXRoIHRoZSBzYW1lIHN0YXJ0IHZhbHVlIGFuZAorICAgICAgICAgKiBpbml0aWFsIGN1cnNvciBpbmRleCwgYnV0IHdpdGggdGhlIGxpbWl0IGluZGV4IGFzIG1vZGlmaWVkCisgICAgICAgICAqIGJ5IHByZWNlZGluZyB0cmFuc2xpdGVyYXRvcnMuICBUaGUgY3Vyc29yIGluZGV4IG11c3QgYmUKKyAgICAgICAgICogcmVzZXQgZm9yIGVhY2ggdHJhbnNsaXRlcmF0b3IgdG8gZ2l2ZSBlYWNoIGEgY2hhbmNlIHRvCisgICAgICAgICAqIHRyYW5zbGl0ZXJhdGUgdGhlIHRleHQuICBUaGUgaW5pdGlhbCBjdXJzb3IgaW5kZXggaXMga25vd24KKyAgICAgICAgICogdG8gc3RpbGwgcG9pbnQgdG8gdGhlIHNhbWUgcGxhY2UgYWZ0ZXIgZWFjaCB0cmFuc2xpdGVyYXRvcgorICAgICAgICAgKiBpcyBjYWxsZWQgYmVjYXVzZSBlYWNoIHRyYW5zbGl0ZXJhdG9yIHdpbGwgbm90IGNoYW5nZSB0aGUKKyAgICAgICAgICogdGV4dCBiZXR3ZWVuIHN0YXJ0IGFuZCB0aGUgaW5pdGlhbCB2YWx1ZSBvZiBjdXJzb3IuCisgICAgICAgICAqCisgICAgICAgICAqIElNUE9SVEFOVDogQWZ0ZXIgdGhlIGZpcnN0IHRyYW5zbGl0ZXJhdG9yLCBlYWNoIHN1YnNlcXVlbnQKKyAgICAgICAgICogdHJhbnNsaXRlcmF0b3Igb25seSBnZXRzIHRvIHRyYW5zbGl0ZXJhdGUgdGV4dCBjb21taXR0ZWQgYnkKKyAgICAgICAgICogcHJlY2VkaW5nIHRyYW5zbGl0ZXJhdG9yczsgdGhhdCBpcywgdGhlIGN1cnNvciAob3V0cHV0CisgICAgICAgICAqIHZhbHVlKSBvZiB0cmFuc2xpdGVyYXRvciBpIGJlY29tZXMgdGhlIGxpbWl0IChpbnB1dCB2YWx1ZSkKKyAgICAgICAgICogb2YgdHJhbnNsaXRlcmF0b3IgaSsxLiAgRmluYWxseSwgdGhlIG92ZXJhbGwgbGltaXQgaXMgZml4ZWQKKyAgICAgICAgICogdXAgYmVmb3JlIHdlIHJldHVybi4KKyAgICAgICAgICoKKyAgICAgICAgICogQXNzdW1wdGlvbnMgd2UgbWFrZSBoZXJlOgorICAgICAgICAgKiAoMSkgY29udGV4dFN0YXJ0IDw9IHN0YXJ0IDw9IGxpbWl0IDw9IGNvbnRleHRMaW1pdCA8PSB0ZXh0Lmxlbmd0aCgpCisgICAgICAgICAqICgyKSBzdGFydCA8PSBzdGFydCcgPD0gbGltaXQnICA7Y3Vyc29yIGRvZXNuJ3QgbW92ZSBiYWNrCisgICAgICAgICAqICgzKSBzdGFydCA8PSBsaW1pdCcgICAgICAgICAgICA7dGV4dCBiZWZvcmUgY3Vyc29yIHVuY2hhbmdlZAorICAgICAgICAgKiAtIHN0YXJ0JyBpcyB0aGUgdmFsdWUgb2Ygc3RhcnQgYWZ0ZXIgY2FsbGluZyBoYW5kbGVLVAorICAgICAgICAgKiAtIGxpbWl0JyBpcyB0aGUgdmFsdWUgb2YgbGltaXQgYWZ0ZXIgY2FsbGluZyBoYW5kbGVLVAorICAgICAgICAgKi8KKworICAgICAgICAvKioKKyAgICAgICAgICogRXhhbXBsZTogMyB0cmFuc2xpdGVyYXRvcnMuICBUaGlzIGV4YW1wbGUgaWxsdXN0cmF0ZXMgdGhlCisgICAgICAgICAqIG1lY2hhbmljcyB3ZSBuZWVkIHRvIGltcGxlbWVudC4gIEMsIFMsIGFuZCBMIGFyZSB0aGUgY29udGV4dFN0YXJ0LAorICAgICAgICAgKiBzdGFydCwgYW5kIGxpbWl0LiAgZ2wgaXMgdGhlIGdsb2JhbExpbWl0LiAgY29udGV4dExpbWl0IGlzCisgICAgICAgICAqIGVxdWFsIHRvIGxpbWl0IHRocm91Z2hvdXQuCisgICAgICAgICAqCisgICAgICAgICAqIDEuIGgtdSwgY2hhbmdlcyBoZXggdG8gVW5pY29kZQorICAgICAgICAgKgorICAgICAgICAgKiAgICA0ICA3ICBhICBkICAwICAgICAgNCAgNyAgYQorICAgICAgICAgKiAgICBhYmMvdTAwNjEvdSAgICA9PiAgYWJjYS91CisgICAgICAgICAqICAgIEMgIFMgICAgICAgTCAgICAgICBDICAgUyBMICAgZ2w9Zi0+YQorICAgICAgICAgKgorICAgICAgICAgKiAyLiB1cHVwLCBjaGFuZ2VzICJ4IiB0byAiWFgiCisgICAgICAgICAqCisgICAgICAgICAqICAgIDQgIDcgIGEgICAgICAgNCAgNyAgYQorICAgICAgICAgKiAgICBhYmNhL3UgICAgPT4gIGFiY0FBL3UKKyAgICAgICAgICogICAgQyAgU0wgICAgICAgICBDICAgIFMKKyAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgIEwgICAgZ2w9YS0+YgorICAgICAgICAgKiAzLiB1LWgsIGNoYW5nZXMgVW5pY29kZSB0byBoZXgKKyAgICAgICAgICoKKyAgICAgICAgICogICAgNCAgNyAgYSAgICAgICAgNCAgNyAgYSAgZCAgMCAgMworICAgICAgICAgKiAgICBhYmNBQS91ICAgID0+ICBhYmMvdTAwNDEvdTAwNDEvdQorICAgICAgICAgKiAgICBDICBTIEwgICAgICAgICBDICAgICAgICAgICAgICBTCisgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwgICBnbD1iLT4xNQorICAgICAgICAgKiA0LiByZXR1cm4KKyAgICAgICAgICoKKyAgICAgICAgICogICAgNCAgNyAgYSAgZCAgMCAgMworICAgICAgICAgKiAgICBhYmMvdTAwNDEvdTAwNDEvdQorICAgICAgICAgKiAgICBDIFMgTAorICAgICAgICAgKi8KKworICAgICAgICBpZiAodHJhbnMubGVuZ3RoIDwgMSkgeworICAgICAgICAgICAgaW5kZXguc3RhcnQgPSBpbmRleC5saW1pdDsKKyAgICAgICAgICAgIHJldHVybjsgLy8gU2hvcnQgY2lyY3VpdCBmb3IgZW1wdHkgY29tcG91bmQgdHJhbnNsaXRlcmF0b3JzCisgICAgICAgIH0KKworICAgICAgICAvLyBjb21wb3VuZExpbWl0IGlzIHRoZSBsaW1pdCB2YWx1ZSBmb3IgdGhlIGVudGlyZSBjb21wb3VuZAorICAgICAgICAvLyBvcGVyYXRpb24uICBXZSBvdmVyd3JpdGUgaW5kZXgubGltaXQgd2l0aCB0aGUgcHJldmlvdXMKKyAgICAgICAgLy8gaW5kZXguc3RhcnQuICBBZnRlciBlYWNoIHRyYW5zbGl0ZXJhdGlvbiwgd2UgdXBkYXRlCisgICAgICAgIC8vIGNvbXBvdW5kTGltaXQgZm9yIGluc2VydGlvbnMgb3IgZGVsZXRpb25zIHRoYXQgaGF2ZSBoYXBwZW5lZC4KKyAgICAgICAgaW50IGNvbXBvdW5kTGltaXQgPSBpbmRleC5saW1pdDsKKworICAgICAgICAvLyBjb21wb3VuZFN0YXJ0IGlzIHRoZSBzdGFydCBmb3IgdGhlIGVudGlyZSBjb21wb3VuZAorICAgICAgICAvLyBvcGVyYXRpb24uCisgICAgICAgIGludCBjb21wb3VuZFN0YXJ0ID0gaW5kZXguc3RhcnQ7CisKKyAgICAgICAgaW50IGRlbHRhID0gMDsgLy8gZGVsdGEgaW4gbGVuZ3RoCisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGxvZyA9IG51bGw7CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgbG9nID0gbmV3IFN0cmluZ0J1ZmZlcigiQ29tcG91bmRUcmFuc2xpdGVyYXRvcnsiICsgZ2V0SUQoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmNyZW1lbnRhbCA/ICJ9aTogSU49IiA6ICJ9OiBJTj0iKSk7CisgICAgICAgICAgICBVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dChsb2csIHRleHQsIGluZGV4KTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihVdGlsaXR5LmVzY2FwZShsb2cudG9TdHJpbmcoKSkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gR2l2ZSBlYWNoIHRyYW5zbGl0ZXJhdG9yIGEgY3JhY2sgYXQgdGhlIHJ1biBvZiBjaGFyYWN0ZXJzLgorICAgICAgICAvLyBTZWUgY29tbWVudHMgYXQgdGhlIHRvcCBvZiB0aGUgbWV0aG9kIGZvciBtb3JlIGRldGFpbC4KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRyYW5zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbmRleC5zdGFydCA9IGNvbXBvdW5kU3RhcnQ7IC8vIFJlc2V0IHN0YXJ0CisgICAgICAgICAgICBpbnQgbGltaXQgPSBpbmRleC5saW1pdDsKKworICAgICAgICAgICAgaWYgKGluZGV4LnN0YXJ0ID09IGluZGV4LmxpbWl0KSB7CisgICAgICAgICAgICAgICAgLy8gU2hvcnQgY2lyY3VpdCBmb3IgZW1wdHkgcmFuZ2UKKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb21wb3VuZFRyYW5zbGl0ZXJhdG9yWyIgKyBpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIuLiIgKyAodHJhbnMubGVuZ3RoLTEpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmNyZW1lbnRhbCA/ICJdaTogIiA6ICJdOiAiKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5RXh0ZW5zaW9ucy5mb3JtYXRJbnB1dCh0ZXh0LCBpbmRleCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAoTk9USElORyBUTyBETykiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgIGxvZy5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgbG9nLmFwcGVuZCgiQ29tcG91bmRUcmFuc2xpdGVyYXRvclsiICsgaSArICI9IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc1tpXS5nZXRJRCgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmNyZW1lbnRhbCA/ICJdaTogIiA6ICJdOiAiKSk7CisgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQobG9nLCB0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyYW5zW2ldLmZpbHRlcmVkVHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgaW5jcmVtZW50YWwpOworCisgICAgICAgICAgICAvLyBJbiBhIHByb3Blcmx5IHdyaXR0ZW4gdHJhbnNsaXRlcmF0b3IsIHN0YXJ0ID09IGxpbWl0IGFmdGVyCisgICAgICAgICAgICAvLyBoYW5kbGVUcmFuc2xpdGVyYXRlKCkgcmV0dXJucyB3aGVuIGluY3JlbWVudGFsIGlzIGZhbHNlLgorICAgICAgICAgICAgLy8gQ2F0Y2ggY2FzZXMgd2hlcmUgdGhlIHN1YmNsYXNzIGRvZXNuJ3QgZG8gdGhpcywgYW5kIHRocm93CisgICAgICAgICAgICAvLyBhbiBleGNlcHRpb24uICAoSnVzdCBwaW5uaW5nIHN0YXJ0IHRvIGxpbWl0IGlzIGEgYmFkIGlkZWEsCisgICAgICAgICAgICAvLyBiZWNhdXNlIHdoYXQncyBwcm9iYWJseSBoYXBwZW5pbmcgaXMgdGhhdCB0aGUgc3ViY2xhc3MKKyAgICAgICAgICAgIC8vIGlzbid0IHRyYW5zbGl0ZXJhdGluZyBhbGwgdGhlIHdheSB0byB0aGUgZW5kLCBhbmQgaXQgc2hvdWxkCisgICAgICAgICAgICAvLyBpbiBub24taW5jcmVtZW50YWwgbW9kZS4pCisgICAgICAgICAgICBpZiAoIWluY3JlbWVudGFsICYmIGluZGV4LnN0YXJ0ICE9IGluZGV4LmxpbWl0KSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkVSUk9SOiBJbmNvbXBsZXRlIG5vbi1pbmNyZW1lbnRhbCB0cmFuc2xpdGVyYXRpb24gYnkgIiArIHRyYW5zW2ldLmdldElEKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICBsb2cuYXBwZW5kKCIgPT4gIik7CisgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQobG9nLCB0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFV0aWxpdHkuZXNjYXBlKGxvZy50b1N0cmluZygpKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEN1bXVsYXRpdmUgZGVsdGEgZm9yIGluc2VydGlvbnMvZGVsZXRpb25zCisgICAgICAgICAgICBkZWx0YSArPSBpbmRleC5saW1pdCAtIGxpbWl0OworCisgICAgICAgICAgICBpZiAoaW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgICAgICAvLyBJbiB0aGUgaW5jcmVtZW50YWwgY2FzZSwgb25seSBhbGxvdyBzdWJzZXF1ZW50CisgICAgICAgICAgICAgICAgLy8gdHJhbnNsaXRlcmF0b3JzIHRvIG1vZGlmeSB3aGF0IGhhcyBhbHJlYWR5IGJlZW4KKyAgICAgICAgICAgICAgICAvLyBjb21wbGV0ZWx5IHByb2Nlc3NlZCBieSBwcmlvciB0cmFuc2xpdGVyYXRvcnMuICBJbiB0aGUKKyAgICAgICAgICAgICAgICAvLyBub24taW5jcm1lbnRhbCBjYXNlLCBhbGxvdyBlYWNoIHRyYW5zbGl0ZXJhdG9yIHRvCisgICAgICAgICAgICAgICAgLy8gcHJvY2VzcyB0aGUgZW50aXJlIHRleHQuCisgICAgICAgICAgICAgICAgaW5kZXgubGltaXQgPSBpbmRleC5zdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGNvbXBvdW5kTGltaXQgKz0gZGVsdGE7CisKKyAgICAgICAgLy8gU3RhcnQgaXMgZ29vZCB3aGVyZSBpdCBpcyAtLSB3aGVyZSB0aGUgbGFzdCB0cmFuc2xpdGVyYXRvciBsZWZ0CisgICAgICAgIC8vIGl0LiAgTGltaXQgbmVlZHMgdG8gYmUgcHV0IGJhY2sgd2hlcmUgaXQgd2FzLCBtb2R1bG8KKyAgICAgICAgLy8gYWRqdXN0bWVudHMgZm9yIGRlbGV0aW9ucy9pbnNlcnRpb25zLgorICAgICAgICBpbmRleC5saW1pdCA9IGNvbXBvdW5kTGltaXQ7CisKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBsb2cuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgbG9nLmFwcGVuZCgiQ29tcG91bmRUcmFuc2xpdGVyYXRvcnsiICsgZ2V0SUQoKSArCisgICAgICAgICAgICAgICAgICAgICAgIChpbmNyZW1lbnRhbCA/ICJ9aTogT1VUPSIgOiAifTogT1VUPSIpKTsKKyAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KGxvZywgdGV4dCwgaW5kZXgpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFV0aWxpdHkuZXNjYXBlKGxvZy50b1N0cmluZygpKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGFuZCBzZXQgdGhlIGxlbmd0aCBvZiB0aGUgbG9uZ2VzdCBjb250ZXh0IHJlcXVpcmVkIGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICogVGhpcyBpcyA8ZW0+cHJlY2VkaW5nPC9lbT4gY29udGV4dC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgY29tcHV0ZU1heGltdW1Db250ZXh0TGVuZ3RoKCkgeworICAgICAgICBpbnQgbWF4ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRyYW5zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpbnQgbGVuID0gdHJhbnNbaV0uZ2V0TWF4aW11bUNvbnRleHRMZW5ndGgoKTsKKyAgICAgICAgICAgIGlmIChsZW4gPiBtYXgpIHsKKyAgICAgICAgICAgICAgICBtYXggPSBsZW47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc2V0TWF4aW11bUNvbnRleHRMZW5ndGgobWF4KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9DdXJyZW5jeUZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ3VycmVuY3lGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTQxZGY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvQ3VycmVuY3lGb3JtYXQuamF2YQpAQCAtMCwwICsxLDYzIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDQtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQXV0aG9yOiBBbGFuIExpdQorKiBDcmVhdGVkOiBBcHJpbCAyMCwgMjAwNAorKiBTaW5jZTogSUNVIDMuMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeUFtb3VudDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogVGVtcG9yYXJ5IGludGVybmFsIGNvbmNyZXRlIHN1YmNsYXNzIG9mIE1lYXN1cmVGb3JtYXQgaW1wbGVtZW50aW5nCisgKiBwYXJzaW5nIGFuZCBmb3JtYXR0aW5nIG9mIEN1cnJlbmN5QW1vdW50IG9iamVjdHMuICBUaGlzIGNsYXNzIGlzCisgKiBsaWtlbHkgdG8gYmUgcmVkZXNpZ25lZCBhbmQgcmV3cml0dGVuIGluIHRoZSBuZWFyIGZ1dHVyZS4KKyAqCisgKiA8cD5UaGlzIGNsYXNzIGN1cnJlbnRseSBkZWxlZ2F0ZXMgdG8gRGVjaW1hbEZvcm1hdCBmb3IgcGFyc2luZyBhbmQKKyAqIGZvcm1hdHRpbmcuCisgKgorICogQHNlZSBjb20uaWJtLmljdS50ZXh0LlVGb3JtYXQKKyAqIEBzZWUgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0CisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAaW50ZXJuYWwKKyAqLworY2xhc3MgQ3VycmVuY3lGb3JtYXQgZXh0ZW5kcyBNZWFzdXJlRm9ybWF0IHsKKyAgICAvLyBHZW5lcmF0ZWQgYnkgc2VyaWFsdmVyIGZyb20gSkRLIDEuNC4xXzAxCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC05MzE2NzkzNjM2OTI1MDQ2MzRMOworICAgIAorICAgIHByaXZhdGUgTnVtYmVyRm9ybWF0IGZtdDsKKworICAgIHB1YmxpYyBDdXJyZW5jeUZvcm1hdChVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZShsb2NhbGUudG9Mb2NhbGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgRm9ybWF0LmZvcm1hdCgpLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS50ZXh0LkZpZWxkUG9zaXRpb24pCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoT2JqZWN0IG9iaiwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDdXJyZW5jeUFtb3VudCBjdXJyZW5jeSA9IChDdXJyZW5jeUFtb3VudCkgb2JqOworICAgICAgICAgICAgZm10LnNldEN1cnJlbmN5KGN1cnJlbmN5LmdldEN1cnJlbmN5KCkpOworICAgICAgICAgICAgcmV0dXJuIGZtdC5mb3JtYXQoY3VycmVuY3kuZ2V0TnVtYmVyKCksIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHR5cGU6ICIgKyBvYmouZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgRm9ybWF0LnBhcnNlT2JqZWN0KCkuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I3BhcnNlT2JqZWN0KGphdmEubGFuZy5TdHJpbmcsIGphdmEudGV4dC5QYXJzZVBvc2l0aW9uKQorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgcGFyc2VPYmplY3QoU3RyaW5nIHNvdXJjZSwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgcmV0dXJuIGZtdC5wYXJzZUN1cnJlbmN5KHNvdXJjZSwgcG9zKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9EYXRlRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EYXRlRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWFiMTRhNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXQuamF2YQpAQCAtMCwwICsxLDExNTcgQEAKKy8qCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLy9pbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVGb3JtYXQ7CisKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCisvKioKKyAqIERhdGVGb3JtYXQgaXMgYW4gYWJzdHJhY3QgY2xhc3MgZm9yIGRhdGUvdGltZSBmb3JtYXR0aW5nIHN1YmNsYXNzZXMgd2hpY2gKKyAqIGZvcm1hdHMgYW5kIHBhcnNlcyBkYXRlcyBvciB0aW1lIGluIGEgbGFuZ3VhZ2UtaW5kZXBlbmRlbnQgbWFubmVyLgorICogVGhlIGRhdGUvdGltZSBmb3JtYXR0aW5nIHN1YmNsYXNzLCBzdWNoIGFzIFNpbXBsZURhdGVGb3JtYXQsIGFsbG93cyBmb3IKKyAqIGZvcm1hdHRpbmcgKGkuZS4sIGRhdGUgLT4gdGV4dCksIHBhcnNpbmcgKHRleHQgLT4gZGF0ZSksIGFuZAorICogbm9ybWFsaXphdGlvbi4gIFRoZSBkYXRlIGlzIHJlcHJlc2VudGVkIGFzIGEgPGNvZGU+RGF0ZTwvY29kZT4gb2JqZWN0IG9yCisgKiBhcyB0aGUgbWlsbGlzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MCwgMDA6MDA6MDAgR01ULgorICoKKyAqIDxwPkRhdGVGb3JtYXQgcHJvdmlkZXMgbWFueSBjbGFzcyBtZXRob2RzIGZvciBvYnRhaW5pbmcgZGVmYXVsdCBkYXRlL3RpbWUKKyAqIGZvcm1hdHRlcnMgYmFzZWQgb24gdGhlIGRlZmF1bHQgb3IgYSBnaXZlbiBsb2FjbGUgYW5kIGEgbnVtYmVyIG9mIGZvcm1hdHRpbmcKKyAqIHN0eWxlcy4gVGhlIGZvcm1hdHRpbmcgc3R5bGVzIGluY2x1ZGUgRlVMTCwgTE9ORywgTUVESVVNLCBhbmQgU0hPUlQuIE1vcmUKKyAqIGRldGFpbCBhbmQgZXhhbXBsZXMgb2YgdXNpbmcgdGhlc2Ugc3R5bGVzIGFyZSBwcm92aWRlZCBpbiB0aGUgbWV0aG9kCisgKiBkZXNjcmlwdGlvbnMuCisgKgorICogPHA+RGF0ZUZvcm1hdCBoZWxwcyB5b3UgdG8gZm9ybWF0IGFuZCBwYXJzZSBkYXRlcyBmb3IgYW55IGxvY2FsZS4KKyAqIFlvdXIgY29kZSBjYW4gYmUgY29tcGxldGVseSBpbmRlcGVuZGVudCBvZiB0aGUgbG9jYWxlIGNvbnZlbnRpb25zIGZvcgorICogbW9udGhzLCBkYXlzIG9mIHRoZSB3ZWVrLCBvciBldmVuIHRoZSBjYWxlbmRhciBmb3JtYXQ6IGx1bmFyIHZzLiBzb2xhci4KKyAqCisgKiA8cD5UbyBmb3JtYXQgYSBkYXRlIGZvciB0aGUgY3VycmVudCBMb2NhbGUsIHVzZSBvbmUgb2YgdGhlCisgKiBzdGF0aWMgZmFjdG9yeSBtZXRob2RzOgorICogPHByZT4KKyAqICBteVN0cmluZyA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCkuZm9ybWF0KG15RGF0ZSk7CisgKiA8L3ByZT4KKyAqIDxwPklmIHlvdSBhcmUgZm9ybWF0dGluZyBtdWx0aXBsZSBudW1iZXJzLCBpdCBpcworICogbW9yZSBlZmZpY2llbnQgdG8gZ2V0IHRoZSBmb3JtYXQgYW5kIHVzZSBpdCBtdWx0aXBsZSB0aW1lcyBzbyB0aGF0CisgKiB0aGUgc3lzdGVtIGRvZXNuJ3QgaGF2ZSB0byBmZXRjaCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2FsCisgKiBsYW5ndWFnZSBhbmQgY291bnRyeSBjb252ZW50aW9ucyBtdWx0aXBsZSB0aW1lcy4KKyAqIDxwcmU+CisgKiAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKCk7CisgKiAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKSB7CisgKiAgICBvdXRwdXQucHJpbnRsbihkZi5mb3JtYXQobXlEYXRlW2ldKSArICI7ICIpOworICogIH0KKyAqIDwvcHJlPgorICogPHA+VG8gZm9ybWF0IGEgbnVtYmVyIGZvciBhIGRpZmZlcmVudCBMb2NhbGUsIHNwZWNpZnkgaXQgaW4gdGhlCisgKiBjYWxsIHRvIGdldERhdGVJbnN0YW5jZSgpLgorICogPHByZT4KKyAqICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCBMb2NhbGUuRlJBTkNFKTsKKyAqIDwvcHJlPgorICogPHA+WW91IGNhbiB1c2UgYSBEYXRlRm9ybWF0IHRvIHBhcnNlIGFsc28uCisgKiA8cHJlPgorICogIG15RGF0ZSA9IGRmLnBhcnNlKG15U3RyaW5nKTsKKyAqIDwvcHJlPgorICogPHA+VXNlIGdldERhdGVJbnN0YW5jZSB0byBnZXQgdGhlIG5vcm1hbCBkYXRlIGZvcm1hdCBmb3IgdGhhdCBjb3VudHJ5LgorICogVGhlcmUgYXJlIG90aGVyIHN0YXRpYyBmYWN0b3J5IG1ldGhvZHMgYXZhaWxhYmxlLgorICogVXNlIGdldFRpbWVJbnN0YW5jZSB0byBnZXQgdGhlIHRpbWUgZm9ybWF0IGZvciB0aGF0IGNvdW50cnkuCisgKiBVc2UgZ2V0RGF0ZVRpbWVJbnN0YW5jZSB0byBnZXQgYSBkYXRlIGFuZCB0aW1lIGZvcm1hdC4gWW91IGNhbiBwYXNzIGluIAorICogZGlmZmVyZW50IG9wdGlvbnMgdG8gdGhlc2UgZmFjdG9yeSBtZXRob2RzIHRvIGNvbnRyb2wgdGhlIGxlbmd0aCBvZiB0aGUKKyAqIHJlc3VsdDsgZnJvbSBTSE9SVCB0byBNRURJVU0gdG8gTE9ORyB0byBGVUxMLiBUaGUgZXhhY3QgcmVzdWx0IGRlcGVuZHMKKyAqIG9uIHRoZSBsb2NhbGUsIGJ1dCBnZW5lcmFsbHk6CisgKiA8dWw+PGxpPlNIT1JUIGlzIGNvbXBsZXRlbHkgbnVtZXJpYywgc3VjaCBhcyAxMi4xMy41MiBvciAzOjMwcG0KKyAqIDxsaT5NRURJVU0gaXMgbG9uZ2VyLCBzdWNoIGFzIEphbiAxMiwgMTk1MgorICogPGxpPkxPTkcgaXMgbG9uZ2VyLCBzdWNoIGFzIEphbnVhcnkgMTIsIDE5NTIgb3IgMzozMDozMnBtCisgKiA8bGk+RlVMTCBpcyBwcmV0dHkgY29tcGxldGVseSBzcGVjaWZpZWQsIHN1Y2ggYXMKKyAqIFR1ZXNkYXksIEFwcmlsIDEyLCAxOTUyIEFEIG9yIDM6MzA6NDJwbSBQU1QuCisgKiA8L3VsPgorICoKKyAqIDxwPllvdSBjYW4gYWxzbyBzZXQgdGhlIHRpbWUgem9uZSBvbiB0aGUgZm9ybWF0IGlmIHlvdSB3aXNoLgorICogSWYgeW91IHdhbnQgZXZlbiBtb3JlIGNvbnRyb2wgb3ZlciB0aGUgZm9ybWF0IG9yIHBhcnNpbmcsCisgKiAob3Igd2FudCB0byBnaXZlIHlvdXIgdXNlcnMgbW9yZSBjb250cm9sKSwKKyAqIHlvdSBjYW4gdHJ5IGNhc3RpbmcgdGhlIERhdGVGb3JtYXQgeW91IGdldCBmcm9tIHRoZSBmYWN0b3J5IG1ldGhvZHMKKyAqIHRvIGEgU2ltcGxlRGF0ZUZvcm1hdC4gVGhpcyB3aWxsIHdvcmsgZm9yIHRoZSBtYWpvcml0eQorICogb2YgY291bnRyaWVzOyBqdXN0IHJlbWVtYmVyIHRvIHB1dCBpdCBpbiBhIHRyeSBibG9jayBpbiBjYXNlIHlvdQorICogZW5jb3VudGVyIGFuIHVudXN1YWwgb25lLgorICoKKyAqIDxwPllvdSBjYW4gYWxzbyB1c2UgZm9ybXMgb2YgdGhlIHBhcnNlIGFuZCBmb3JtYXQgbWV0aG9kcyB3aXRoCisgKiBQYXJzZVBvc2l0aW9uIGFuZCBGaWVsZFBvc2l0aW9uIHRvCisgKiBhbGxvdyB5b3UgdG8KKyAqIDx1bD48bGk+cHJvZ3Jlc3NpdmVseSBwYXJzZSB0aHJvdWdoIHBpZWNlcyBvZiBhIHN0cmluZy4KKyAqIDxsaT5hbGlnbiBhbnkgcGFydGljdWxhciBmaWVsZCwgb3IgZmluZCBvdXQgd2hlcmUgaXQgaXMgZm9yIHNlbGVjdGlvbgorICogb24gdGhlIHNjcmVlbi4KKyAqIDwvdWw+CisgKgorICogPGg0PlN5bmNocm9uaXphdGlvbjwvaDQ+CisgKgorICogRGF0ZSBmb3JtYXRzIGFyZSBub3Qgc3luY2hyb25pemVkLiBJdCBpcyByZWNvbW1lbmRlZCB0byBjcmVhdGUgc2VwYXJhdGUgCisgKiBmb3JtYXQgaW5zdGFuY2VzIGZvciBlYWNoIHRocmVhZC4gSWYgbXVsdGlwbGUgdGhyZWFkcyBhY2Nlc3MgYSBmb3JtYXQgCisgKiBjb25jdXJyZW50bHksIGl0IG11c3QgYmUgc3luY2hyb25pemVkIGV4dGVybmFsbHkuIAorICoKKyAqIEBzZWUgICAgICAgICAgVUZvcm1hdAorICogQHNlZSAgICAgICAgICBOdW1iZXJGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdAorICogQHNlZSAgICAgICAgICBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZQorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzLCBDaGVuLUxpZWggSHVhbmcsIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIERhdGVGb3JtYXQgZXh0ZW5kcyBVRm9ybWF0IHsKKworICAgIC8qKgorICAgICAqIFRoZSBjYWxlbmRhciB0aGF0IDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IHVzZXMgdG8gcHJvZHVjZSB0aGUgdGltZSBmaWVsZAorICAgICAqIHZhbHVlcyBuZWVkZWQgdG8gaW1wbGVtZW50IGRhdGUgYW5kIHRpbWUgZm9ybWF0dGluZy4gIFN1YmNsYXNzZXMgc2hvdWxkCisgICAgICogaW5pdGlhbGl6ZSB0aGlzIHRvIGEgY2FsZW5kYXIgYXBwcm9wcmlhdGUgZm9yIHRoZSBsb2NhbGUgYXNzb2NpYXRlZCB3aXRoCisgICAgICogdGhpcyA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIENhbGVuZGFyIGNhbGVuZGFyOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBmb3JtYXR0ZXIgdGhhdCA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiB1c2VzIHRvIGZvcm1hdCBudW1iZXJzCisgICAgICogaW4gZGF0ZXMgYW5kIHRpbWVzLiAgU3ViY2xhc3NlcyBzaG91bGQgaW5pdGlhbGl6ZSB0aGlzIHRvIGEgbnVtYmVyIGZvcm1hdAorICAgICAqIGFwcHJvcHJpYXRlIGZvciB0aGUgbG9jYWxlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+LgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgTnVtYmVyRm9ybWF0IG51bWJlckZvcm1hdDsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdHJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0VSQX0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgRVJBX0ZJRUxEID0gMDsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICd5JyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1lFQVJ9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFlFQVJfRklFTEQgPSAxOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ00nIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjTU9OVEh9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1PTlRIX0ZJRUxEID0gMjsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdkJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0RBVEV9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBVEVfRklFTEQgPSAzOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ2snIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjSE9VUl9PRl9EQVl9IGZpZWxkLgorICAgICAqIEhPVVJfT0ZfREFZMV9GSUVMRCBpcyB1c2VkIGZvciB0aGUgb25lLWJhc2VkIDI0LWhvdXIgY2xvY2suCisgICAgICogRm9yIGV4YW1wbGUsIDIzOjU5ICsgMDE6MDAgcmVzdWx0cyBpbiAyNDo1OS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSX09GX0RBWTFfRklFTEQgPSA0OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0gnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjSE9VUl9PRl9EQVl9IGZpZWxkLgorICAgICAqIEhPVVJfT0ZfREFZMF9GSUVMRCBpcyB1c2VkIGZvciB0aGUgemVyby1iYXNlZCAyNC1ob3VyIGNsb2NrLgorICAgICAqIEZvciBleGFtcGxlLCAyMzo1OSArIDAxOjAwIHJlc3VsdHMgaW4gMDA6NTkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUl9PRl9EQVkwX0ZJRUxEID0gNTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdtJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI01JTlVURX0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUlOVVRFX0ZJRUxEID0gNjsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdzJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1NFQ09ORH0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0VDT05EX0ZJRUxEID0gNzsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdTJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI01JTExJU0VDT05EfSBmaWVsZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZSQUNUSU9OQUxfU0VDT05EX0ZJRUxEID0gODsKKworICAgIC8qKgorICAgICAqIEFsaWFzIGZvciBGUkFDVElPTkFMX1NFQ09ORF9GSUVMRC4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMy4wIHVzZSBGUkFDVElPTkFMX1NFQ09ORF9GSUVMRC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNSUxMSVNFQ09ORF9GSUVMRCA9IEZSQUNUSU9OQUxfU0VDT05EX0ZJRUxEOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0UnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjREFZX09GX1dFRUt9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9XRUVLX0ZJRUxEID0gOTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdEJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0RBWV9PRl9ZRUFSfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVlfT0ZfWUVBUl9GSUVMRCA9IDEwOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ0YnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjREFZX09GX1dFRUtfSU5fTU9OVEh9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9XRUVLX0lOX01PTlRIX0ZJRUxEID0gMTE7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAndycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNXRUVLX09GX1lFQVJ9IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFdFRUtfT0ZfWUVBUl9GSUVMRCA9IDEyOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ1cnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjV0VFS19PRl9NT05USH0gZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VFS19PRl9NT05USF9GSUVMRCA9IDEzOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ2EnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjQU1fUE19IGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEFNX1BNX0ZJRUxEID0gMTQ7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnaCcgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNIT1VSfSBmaWVsZC4KKyAgICAgKiBIT1VSMV9GSUVMRCBpcyB1c2VkIGZvciB0aGUgb25lLWJhc2VkIDEyLWhvdXIgY2xvY2suCisgICAgICogRm9yIGV4YW1wbGUsIDExOjMwIFBNICsgMSBob3VyIHJlc3VsdHMgaW4gMTI6MzAgQU0uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUjFfRklFTEQgPSAxNTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdLJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI0hPVVJ9IGZpZWxkLgorICAgICAqIEhPVVIwX0ZJRUxEIGlzIHVzZWQgZm9yIHRoZSB6ZXJvLWJhc2VkIDEyLWhvdXIgY2xvY2suCisgICAgICogRm9yIGV4YW1wbGUsIDExOjMwIFBNICsgMSBob3VyIHJlc3VsdHMgaW4gMDA6MzAgQU0uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUjBfRklFTEQgPSAxNjsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICd6JyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1pPTkVfT0ZGU0VUfSBhbmQKKyAgICAgKiB7QGxpbmsgQ2FsZW5kYXIjRFNUX09GRlNFVH0gZmllbGRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFRJTUVaT05FX0ZJRUxEID0gMTc7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnWScgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNZRUFSX1dPWX0gZmllbGQuCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBZRUFSX1dPWV9GSUVMRCA9IDE4OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ2UnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjRE9XX0xPQ0FMfSBmaWVsZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERPV19MT0NBTF9GSUVMRCA9IDE5OworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ3UnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjRVhURU5ERURfWUVBUn0gZmllbGQuCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBFWFRFTkRFRF9ZRUFSX0ZJRUxEID0gMjA7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnZycgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNKVUxJQU5fREFZfSBmaWVsZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEpVTElBTl9EQVlfRklFTEQgPSAyMTsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICdBJyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI01JTExJU0VDT05EU19JTl9EQVl9IGZpZWxkLgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUlMTElTRUNPTkRTX0lOX0RBWV9GSUVMRCA9IDIyOworCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ1onIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjWk9ORV9PRkZTRVR9IGFuZAorICAgICAqIHtAbGluayBDYWxlbmRhciNEU1RfT0ZGU0VUfSBmaWVsZHMuCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBUSU1FWk9ORV9SRkNfRklFTEQgPSAyMzsKKworICAgIC8qKgorICAgICAqIEZpZWxkUG9zaXRpb24gc2VsZWN0b3IgZm9yICd2JyBmaWVsZCBhbGlnbm1lbnQsCisgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUge0BsaW5rIENhbGVuZGFyI1pPTkVfT0ZGU0VUfSBhbmQKKyAgICAgKiB7QGxpbmsgQ2FsZW5kYXIjRFNUX09GRlNFVH0gZmllbGRzLiAgVGhpcyBkaXNwbGF5cyB0aGUgZ2VuZXJpYyB6b25lCisgICAgICogbmFtZSwgaWYgYXZhaWxhYmxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVElNRVpPTkVfR0VORVJJQ19GSUVMRCA9IDI0OworIAorCisgICAgCisgICAgLyoqCisgICAgICogRmllbGRQb3NpdGlvbiBzZWxlY3RvciBmb3IgJ2MnIGZpZWxkIGFsaWdubWVudCwKKyAgICAgKiBjb3JyZXNwb25kaW5nIHRvIHRoZSB7QGxpbmsgQ2FsZW5kYXIjREFZX09GX1dFRUt9IGZpZWxkLiAKKyAgICAgKiBUaGlzIGRpc3BsYXlzIHRoZSBzdGFuZCBhbG9uZSBkYXkgbmFtZSwgaWYgYXZhaWxhYmxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU1RBTkRBTE9ORV9EQVlfRklFTEQgPSAyNTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBGaWVsZFBvc2l0aW9uIHNlbGVjdG9yIGZvciAnTCcgZmllbGQgYWxpZ25tZW50LAorICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHtAbGluayBDYWxlbmRhciNNT05USH0gZmllbGQuICAKKyAgICAgKiBUaGlzIGRpc3BsYXlzIHRoZSBzdGFuZCBhbG9uZSBtb250aCBuYW1lLCBpZiBhdmFpbGFibGUuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTVEFOREFMT05FX01PTlRIX0ZJRUxEID0gMjY7CisgICAgCisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIEZpZWxkUG9zaXRpb24gc2VsZWN0b3JzIGZvciBEYXRlRm9ybWF0LgorICAgICAqIFZhbGlkIHNlbGVjdG9ycyByYW5nZSBmcm9tIDAgdG8gRklFTERfQ09VTlQtMS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZJRUxEX0NPVU5UID0gMjc7IC8vIG11c3QgPT0gRGF0ZUZvcm1hdFN5bWJvbHMucGF0dGVybkNoYXJzLmxlbmd0aCgpCisKKyAgICAvLyBQcm9jbGFpbSBzZXJpYWwgY29tcGF0aWJpbGl0eSB3aXRoIDEuMSBGQ1MKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA3MjE4MzIyMzA2NjQ5OTUzNzg4TDsKKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBGb3JtYXQuCisgICAgICogRm9ybWF0cyBhIHRpbWUgb2JqZWN0IGludG8gYSB0aW1lIHN0cmluZy4gRXhhbXBsZXMgb2YgdGltZSBvYmplY3RzCisgICAgICogYXJlIGEgdGltZSB2YWx1ZSBleHByZXNzZWQgaW4gbWlsbGlzZWNvbmRzIGFuZCBhIERhdGUgb2JqZWN0LgorICAgICAqIEBwYXJhbSBvYmogbXVzdCBiZSBhIE51bWJlciBvciBhIERhdGUgb3IgYSBDYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyB0aGUgc3RyaW5nIGJ1ZmZlciBmb3IgdGhlIHJldHVybmluZyB0aW1lIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXR0ZWQgdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGZpZWxkUG9zaXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZAorICAgICAqIHdpdGhpbiB0aGUgcmV0dXJuZWQgc3RyaW5nLgorICAgICAqIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsCisgICAgICogaWYgZGVzaXJlZC4gT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLiBGb3IKKyAgICAgKiBleGFtcGxlLCBnaXZlbiBhIHRpbWUgdGV4dCAiMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQRFQiLAorICAgICAqIGlmIHRoZSBnaXZlbiBmaWVsZFBvc2l0aW9uIGlzIERhdGVGb3JtYXQuWUVBUl9GSUVMRCwgdGhlCisgICAgICogYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogMCBhbmQgNCwgcmVzcGVjdGl2ZWx5LgorICAgICAqIE5vdGljZSB0aGF0IGlmIHRoZSBzYW1lIHRpbWUgZmllbGQgYXBwZWFycworICAgICAqIG1vcmUgdGhhbiBvbmNlIGluIGEgcGF0dGVybiwgdGhlIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgZm9yIHRoZSBmaXJzdAorICAgICAqIG9jY3VyZW5jZSBvZiB0aGF0IHRpbWUgZmllbGQuIEZvciBpbnN0YW5jZSwgZm9ybWF0dGluZyBhIERhdGUgdG8KKyAgICAgKiB0aGUgdGltZSBzdHJpbmcgIjEgUE0gUERUIChQYWNpZmljIERheWxpZ2h0IFRpbWUpIiB1c2luZyB0aGUgcGF0dGVybgorICAgICAqICJoIGEgeiAoenp6eikiIGFuZCB0aGUgYWxpZ25tZW50IGZpZWxkIERhdGVGb3JtYXQuVElNRVpPTkVfRklFTEQsCisgICAgICogdGhlIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDUgYW5kIDgsIHJlc3BlY3RpdmVseSwgZm9yIHRoZSBmaXJzdCBvY2N1cmVuY2Ugb2YgdGhlIHRpbWV6b25lCisgICAgICogcGF0dGVybiBjaGFyYWN0ZXIgJ3onLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdCBvYmosIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbikKKyAgICB7CisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBDYWxlbmRhcikKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQoIChDYWxlbmRhcilvYmosIHRvQXBwZW5kVG8sIGZpZWxkUG9zaXRpb24gKTsKKyAgICAgICAgZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgRGF0ZSkKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQoIChEYXRlKW9iaiwgdG9BcHBlbmRUbywgZmllbGRQb3NpdGlvbiApOworICAgICAgICBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBOdW1iZXIpCisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KCBuZXcgRGF0ZSgoKE51bWJlcilvYmopLmxvbmdWYWx1ZSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdG9BcHBlbmRUbywgZmllbGRQb3NpdGlvbiApOworICAgICAgICBlbHNlIAorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2Fubm90IGZvcm1hdCBnaXZlbiBPYmplY3QgYXMgYSBEYXRlIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyBhIGRhdGUgaW50byBhIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGNhbCBhIENhbGVuZGFyIHNldCB0byB0aGUgZGF0ZSBhbmQgdGltZSB0byBiZSBmb3JtYXR0ZWQKKyAgICAgKiBpbnRvIGEgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyB0aGUgc3RyaW5nIGJ1ZmZlciBmb3IgdGhlIHJldHVybmluZyBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSBmaWVsZFBvc2l0aW9uIGtlZXBzIHRyYWNrIG9mIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmllbGQKKyAgICAgKiB3aXRoaW4gdGhlIHJldHVybmVkIHN0cmluZy4KKyAgICAgKiBPbiBpbnB1dDogYW4gYWxpZ25tZW50IGZpZWxkLAorICAgICAqIGlmIGRlc2lyZWQuIE9uIG91dHB1dDogdGhlIG9mZnNldHMgb2YgdGhlIGFsaWdubWVudCBmaWVsZC4gRm9yCisgICAgICogZXhhbXBsZSwgZ2l2ZW4gYSB0aW1lIHRleHQgIjE5OTYuMDcuMTAgQUQgYXQgMTU6MDg6NTYgUERUIiwKKyAgICAgKiBpZiB0aGUgZ2l2ZW4gZmllbGRQb3NpdGlvbiBpcyBEYXRlRm9ybWF0LllFQVJfRklFTEQsIHRoZQorICAgICAqIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDAgYW5kIDQsIHJlc3BlY3RpdmVseS4KKyAgICAgKiBOb3RpY2UgdGhhdCBpZiB0aGUgc2FtZSB0aW1lIGZpZWxkIGFwcGVhcnMKKyAgICAgKiBtb3JlIHRoYW4gb25jZSBpbiBhIHBhdHRlcm4sIHRoZSBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IGZvciB0aGUgZmlyc3QKKyAgICAgKiBvY2N1cmVuY2Ugb2YgdGhhdCB0aW1lIGZpZWxkLiBGb3IgaW5zdGFuY2UsIGZvcm1hdHRpbmcgYSBEYXRlIHRvCisgICAgICogdGhlIHRpbWUgc3RyaW5nICIxIFBNIFBEVCAoUGFjaWZpYyBEYXlsaWdodCBUaW1lKSIgdXNpbmcgdGhlIHBhdHRlcm4KKyAgICAgKiAiaCBhIHogKHp6enopIiBhbmQgdGhlIGFsaWdubWVudCBmaWVsZCBEYXRlRm9ybWF0LlRJTUVaT05FX0ZJRUxELAorICAgICAqIHRoZSBiZWdpbiBpbmRleCBhbmQgZW5kIGluZGV4IG9mIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgdG8KKyAgICAgKiA1IGFuZCA4LCByZXNwZWN0aXZlbHksIGZvciB0aGUgZmlyc3Qgb2NjdXJlbmNlIG9mIHRoZSB0aW1lem9uZQorICAgICAqIHBhdHRlcm4gY2hhcmFjdGVyICd6Jy4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXR0ZWQgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nQnVmZmVyIGZvcm1hdChDYWxlbmRhciBjYWwsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIGEgRGF0ZSBpbnRvIGEgZGF0ZS90aW1lIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gZGF0ZSBhIERhdGUgdG8gYmUgZm9ybWF0dGVkIGludG8gYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSB0b0FwcGVuZFRvIHRoZSBzdHJpbmcgYnVmZmVyIGZvciB0aGUgcmV0dXJuaW5nIGRhdGUvdGltZSBzdHJpbmcuCisgICAgICogQHBhcmFtIGZpZWxkUG9zaXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZAorICAgICAqIHdpdGhpbiB0aGUgcmV0dXJuZWQgc3RyaW5nLgorICAgICAqIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsCisgICAgICogaWYgZGVzaXJlZC4gT24gb3V0cHV0OiB0aGUgb2Zmc2V0cyBvZiB0aGUgYWxpZ25tZW50IGZpZWxkLiBGb3IKKyAgICAgKiBleGFtcGxlLCBnaXZlbiBhIHRpbWUgdGV4dCAiMTk5Ni4wNy4xMCBBRCBhdCAxNTowODo1NiBQRFQiLAorICAgICAqIGlmIHRoZSBnaXZlbiBmaWVsZFBvc2l0aW9uIGlzIERhdGVGb3JtYXQuWUVBUl9GSUVMRCwgdGhlCisgICAgICogYmVnaW4gaW5kZXggYW5kIGVuZCBpbmRleCBvZiBmaWVsZFBvc2l0aW9uIHdpbGwgYmUgc2V0IHRvCisgICAgICogMCBhbmQgNCwgcmVzcGVjdGl2ZWx5LgorICAgICAqIE5vdGljZSB0aGF0IGlmIHRoZSBzYW1lIHRpbWUgZmllbGQgYXBwZWFycworICAgICAqIG1vcmUgdGhhbiBvbmNlIGluIGEgcGF0dGVybiwgdGhlIGZpZWxkUG9zaXRpb24gd2lsbCBiZSBzZXQgZm9yIHRoZSBmaXJzdAorICAgICAqIG9jY3VyZW5jZSBvZiB0aGF0IHRpbWUgZmllbGQuIEZvciBpbnN0YW5jZSwgZm9ybWF0dGluZyBhIERhdGUgdG8KKyAgICAgKiB0aGUgdGltZSBzdHJpbmcgIjEgUE0gUERUIChQYWNpZmljIERheWxpZ2h0IFRpbWUpIiB1c2luZyB0aGUgcGF0dGVybgorICAgICAqICJoIGEgeiAoenp6eikiIGFuZCB0aGUgYWxpZ25tZW50IGZpZWxkIERhdGVGb3JtYXQuVElNRVpPTkVfRklFTEQsCisgICAgICogdGhlIGJlZ2luIGluZGV4IGFuZCBlbmQgaW5kZXggb2YgZmllbGRQb3NpdGlvbiB3aWxsIGJlIHNldCB0bworICAgICAqIDUgYW5kIDgsIHJlc3BlY3RpdmVseSwgZm9yIHRoZSBmaXJzdCBvY2N1cmVuY2Ugb2YgdGhlIHRpbWV6b25lCisgICAgICogcGF0dGVybiBjaGFyYWN0ZXIgJ3onLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdHRlZCBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KERhdGUgZGF0ZSwgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKSB7CisgICAgICAgIC8vIFVzZSBvdXIgQ2FsZW5kYXIgb2JqZWN0CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoZGF0ZSk7CisgICAgICAgIHJldHVybiBmb3JtYXQoY2FsZW5kYXIsIHRvQXBwZW5kVG8sIGZpZWxkUG9zaXRpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYSBEYXRlIGludG8gYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB0aW1lIHZhbHVlIHRvIGJlIGZvcm1hdHRlZCBpbnRvIGEgdGltZSBzdHJpbmcuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0dGVkIHRpbWUgc3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0KERhdGUgZGF0ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBmb3JtYXQoZGF0ZSwgbmV3IFN0cmluZ0J1ZmZlcig2NCksbmV3IEZpZWxkUG9zaXRpb24oMCkpLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBkYXRlL3RpbWUgc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgIFRoZSBkYXRlL3RpbWUgc3RyaW5nIHRvIGJlIHBhcnNlZAorICAgICAqCisgICAgICogQHJldHVybiAgICAgIEEgRGF0ZSwgb3IgbnVsbCBpZiB0aGUgaW5wdXQgY291bGQgbm90IGJlIHBhcnNlZAorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgUGFyc2VFeGNlcHRpb24gIElmIHRoZSBnaXZlbiBzdHJpbmcgY2Fubm90IGJlIHBhcnNlZCBhcyBhIGRhdGUuCisgICAgICoKKyAgICAgKiBAc2VlICNwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERhdGUgcGFyc2UoU3RyaW5nIHRleHQpIHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgRGF0ZSByZXN1bHQgPSBwYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgPT0gMCkgLy8gSUNVNEoKKyAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUV4Y2VwdGlvbigiVW5wYXJzZWFibGUgZGF0ZTogXCIiICsgdGV4dCArICJcIiIgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5nZXRFcnJvckluZGV4KCkpOyAvLyBJQ1U0SgorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgZGF0ZS90aW1lIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIHBhcnNlIHBvc2l0aW9uLgorICAgICAqIEZvciBleGFtcGxlLCBhIHRpbWUgdGV4dCAiMDcvMTAvOTYgNDo1IFBNLCBQRFQiIHdpbGwgYmUgcGFyc2VkCisgICAgICogaW50byBhIENhbGVuZGFyIHRoYXQgaXMgZXF1aXZhbGVudCB0byBEYXRlKDgzNzAzOTkyODA0NikuICBUaGUKKyAgICAgKiBjYWxsZXIgc2hvdWxkIGNsZWFyIHRoZSBjYWxlbmRhciBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZCwKKyAgICAgKiB1bmxlc3MgZXhpc3RpbmcgZmllbGQgaW5mb3JtYXRpb24gaXMgdG8gYmUga2VwdC4KKyAgICAgKgorICAgICAqIDxwPiBCeSBkZWZhdWx0LCBwYXJzaW5nIGlzIGxlbmllbnQ6IElmIHRoZSBpbnB1dCBpcyBub3QgaW4gdGhlIGZvcm0gdXNlZAorICAgICAqIGJ5IHRoaXMgb2JqZWN0J3MgZm9ybWF0IG1ldGhvZCBidXQgY2FuIHN0aWxsIGJlIHBhcnNlZCBhcyBhIGRhdGUsIHRoZW4KKyAgICAgKiB0aGUgcGFyc2Ugc3VjY2VlZHMuICBDbGllbnRzIG1heSBpbnNpc3Qgb24gc3RyaWN0IGFkaGVyZW5jZSB0byB0aGUKKyAgICAgKiBmb3JtYXQgYnkgY2FsbGluZyBzZXRMZW5pZW50KGZhbHNlKS4KKyAgICAgKgorICAgICAqIEBzZWUgI3NldExlbmllbnQoYm9vbGVhbikKKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0ICBUaGUgZGF0ZS90aW1lIHN0cmluZyB0byBiZSBwYXJzZWQKKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgaW50byB3aGljaCBwYXJzZWQgZGF0YSB3aWxsIGJlIHN0b3JlZC4KKyAgICAgKiAgICAgICAgICAgICAgSW4gZ2VuZXJhbCwgdGhpcyBzaG91bGQgYmUgY2xlYXJlZCBiZWZvcmUgY2FsbGluZyB0aGlzCisgICAgICogICAgICAgICAgICAgIG1ldGhvZC4gIElmIHRoaXMgcGFyc2UgZmFpbHMsIHRoZSBjYWxlbmRhciBtYXkgc3RpbGwKKyAgICAgKiAgICAgICAgICAgICAgaGF2ZSBiZWVuIG1vZGlmaWVkLgorICAgICAqCisgICAgICogQHBhcmFtIHBvcyAgIE9uIGlucHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggdG8gc3RhcnQgcGFyc2luZzsgb24KKyAgICAgKiAgICAgICAgICAgICAgb3V0cHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggcGFyc2luZyB0ZXJtaW5hdGVkLCBvciB0aGUKKyAgICAgKiAgICAgICAgICAgICAgc3RhcnQgcG9zaXRpb24gaWYgdGhlIHBhcnNlIGZhaWxlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwYXJzZShTdHJpbmcgdGV4dCwgQ2FsZW5kYXIgY2FsLCBQYXJzZVBvc2l0aW9uIHBvcyk7CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGRhdGUvdGltZSBzdHJpbmcgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBwYXJzZSBwb3NpdGlvbi4gIEZvcgorICAgICAqIGV4YW1wbGUsIGEgdGltZSB0ZXh0ICIwNy8xMC85NiA0OjUgUE0sIFBEVCIgd2lsbCBiZSBwYXJzZWQgaW50byBhIERhdGUKKyAgICAgKiB0aGF0IGlzIGVxdWl2YWxlbnQgdG8gRGF0ZSg4MzcwMzk5MjgwNDYpLgorICAgICAqCisgICAgICogPHA+IEJ5IGRlZmF1bHQsIHBhcnNpbmcgaXMgbGVuaWVudDogSWYgdGhlIGlucHV0IGlzIG5vdCBpbiB0aGUgZm9ybSB1c2VkCisgICAgICogYnkgdGhpcyBvYmplY3QncyBmb3JtYXQgbWV0aG9kIGJ1dCBjYW4gc3RpbGwgYmUgcGFyc2VkIGFzIGEgZGF0ZSwgdGhlbgorICAgICAqIHRoZSBwYXJzZSBzdWNjZWVkcy4gIENsaWVudHMgbWF5IGluc2lzdCBvbiBzdHJpY3QgYWRoZXJlbmNlIHRvIHRoZQorICAgICAqIGZvcm1hdCBieSBjYWxsaW5nIHNldExlbmllbnQoZmFsc2UpLgorICAgICAqCisgICAgICogQHNlZSAjc2V0TGVuaWVudChib29sZWFuKQorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgIFRoZSBkYXRlL3RpbWUgc3RyaW5nIHRvIGJlIHBhcnNlZAorICAgICAqCisgICAgICogQHBhcmFtIHBvcyAgIE9uIGlucHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggdG8gc3RhcnQgcGFyc2luZzsgb24KKyAgICAgKiAgICAgICAgICAgICAgb3V0cHV0LCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggcGFyc2luZyB0ZXJtaW5hdGVkLCBvciB0aGUKKyAgICAgKiAgICAgICAgICAgICAgc3RhcnQgcG9zaXRpb24gaWYgdGhlIHBhcnNlIGZhaWxlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBBIERhdGUsIG9yIG51bGwgaWYgdGhlIGlucHV0IGNvdWxkIG5vdCBiZSBwYXJzZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBwYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gcG9zLmdldEluZGV4KCk7CisgICAgICAgIGNhbGVuZGFyLmNsZWFyKCk7CisgICAgICAgIHBhcnNlKHRleHQsIGNhbGVuZGFyLCBwb3MpOworICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgIT0gc3RhcnQpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldFRpbWUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBvY2N1cnMgaWYgdGhlIGNhbGVuZGFyIGlzIG5vbi1sZW5pZW50IGFuZCB0aGVyZSBpcworICAgICAgICAgICAgICAgIC8vIGFuIG91dC1vZi1yYW5nZSBmaWVsZC4gIFdlIGRvbid0IGtub3cgd2hpY2ggZmllbGQgd2FzCisgICAgICAgICAgICAgICAgLy8gaWxsZWdhbCBzbyB3ZSBzZXQgdGhlIGVycm9yIGluZGV4IHRvIHRoZSBzdGFydC4KKyAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgoc3RhcnQpOworICAgICAgICAgICAgICAgIHBvcy5zZXRFcnJvckluZGV4KHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGRhdGUvdGltZSBzdHJpbmcgaW50byBhbiBPYmplY3QuICBUaGlzIGNvbnZlbmllbmNlIG1ldGhvZCBzaW1wbHkKKyAgICAgKiBjYWxscyBwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pLgorICAgICAqCisgICAgICogQHNlZSAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgcGFyc2VPYmplY3QgKFN0cmluZyBzb3VyY2UsIFBhcnNlUG9zaXRpb24gcG9zKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlKHNvdXJjZSwgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgZnVsbCBzdHlsZSBwYXR0ZXJuLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZVTEwgPSAwOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIGxvbmcgc3R5bGUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT05HID0gMTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBtZWRpdW0gc3R5bGUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRURJVU0gPSAyOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIHNob3J0IHN0eWxlIHBhdHRlcm4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hPUlQgPSAzOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIGRlZmF1bHQgc3R5bGUgcGF0dGVybi4gIEl0cyB2YWx1ZSBpcyBNRURJVU0uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVCA9IE1FRElVTTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGRlZmF1bHQgZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIHRpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldCgtMSwgREVGQVVMVCwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJoOm1tIGEiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHJldHVybiBhIHRpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoaW50IHN0eWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldCgtMSwgc3R5bGUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB0aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgImg6bW0gYSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSB0aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKGludCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUgYUxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoLTEsIHN0eWxlLCBVTG9jYWxlLmZvckxvY2FsZShhTG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJoOm1tIGEiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgZ2l2ZW4gdWxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgdGltZSBmb3JtYXR0ZXIuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKGludCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoLTEsIHN0eWxlLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUgZm9ybWF0dGVyIHdpdGggdGhlIGRlZmF1bHQgZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGRhdGUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldChERUZBVUxULCAtMSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGUKKyAgICAgKiBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJNL2QveXkiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGRhdGUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoaW50IHN0eWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldChzdHlsZSwgLTEsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0eWxlIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgIk0vZC95eSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZUluc3RhbmNlKGludCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbGUgYUxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoc3R5bGUsIC0xLCBVTG9jYWxlLmZvckxvY2FsZShhTG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZQorICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdHlsZSB0aGUgZ2l2ZW4gZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJNL2QveXkiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgZ2l2ZW4gdWxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZSBmb3JtYXR0ZXIuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZUluc3RhbmNlKGludCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoc3R5bGUsIC0xLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUvdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUgZGVmYXVsdCBmb3JtYXR0aW5nIHN0eWxlCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0KERFRkFVTFQsIERFRkFVTFQsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlL3RpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGRhdGUgYW5kIHRpbWUKKyAgICAgKiBmb3JtYXR0aW5nIHN0eWxlcyBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgdGhlIGdpdmVuIGRhdGUgZm9ybWF0dGluZyBzdHlsZS4gRm9yIGV4YW1wbGUsCisgICAgICogU0hPUlQgZm9yICJNL2QveXkiIGluIHRoZSBVUyBsb2NhbGUuCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSB0aGUgZ2l2ZW4gdGltZSBmb3JtYXR0aW5nIHN0eWxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBTSE9SVCBmb3IgImg6bW0gYSIgaW4gdGhlIFVTIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQgZGF0ZVN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aW1lU3R5bGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0KGRhdGVTdHlsZSwgdGltZVN0eWxlLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZGF0ZS90aW1lIGZvcm1hdHRlciB3aXRoIHRoZSBnaXZlbiBmb3JtYXR0aW5nIHN0eWxlcworICAgICAqIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgdGhlIGdpdmVuIGRhdGUgZm9ybWF0dGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIHRoZSBnaXZlbiB0aW1lIGZvcm1hdHRpbmcgc3R5bGUuCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIERhdGVGb3JtYXQKKyAgICAgICAgZ2V0RGF0ZVRpbWVJbnN0YW5jZShpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlLCBMb2NhbGUgYUxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXQoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIFVMb2NhbGUuZm9yTG9jYWxlKGFMb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkYXRlL3RpbWUgZm9ybWF0dGVyIHdpdGggdGhlIGdpdmVuIGZvcm1hdHRpbmcgc3R5bGVzCisgICAgICogZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSB0aGUgZ2l2ZW4gZGF0ZSBmb3JtYXR0aW5nIHN0eWxlLgorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgdGhlIGdpdmVuIHRpbWUgZm9ybWF0dGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEByZXR1cm4gYSBkYXRlL3RpbWUgZm9ybWF0dGVyLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBEYXRlRm9ybWF0CisgICAgICAgIGdldERhdGVUaW1lSW5zdGFuY2UoaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSwgVUxvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0KGRhdGVTdHlsZSwgdGltZVN0eWxlLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhIGRlZmF1bHQgZGF0ZS90aW1lIGZvcm1hdHRlciB0aGF0IHVzZXMgdGhlIFNIT1JUIHN0eWxlIGZvciBib3RoIHRoZQorICAgICAqIGRhdGUgYW5kIHRoZSB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgRGF0ZUZvcm1hdCBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoU0hPUlQsIFNIT1JUKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBzZXQgb2YgbG9jYWxlcyBmb3Igd2hpY2ggRGF0ZUZvcm1hdHMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBzZXQgb2YgbG9jYWxlcyBmb3Igd2hpY2ggRGF0ZUZvcm1hdHMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgc2V0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIERhdGVGb3JtYXRzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQHJldHVybiB0aGUgc2V0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIERhdGVGb3JtYXRzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpCisgICAgeworICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjYWxlbmRhciB0byBiZSB1c2VkIGJ5IHRoaXMgZGF0ZSBmb3JtYXQuICBJbml0aWFsbHksIHRoZSBkZWZhdWx0CisgICAgICogY2FsZW5kYXIgZm9yIHRoZSBzcGVjaWZpZWQgb3IgZGVmYXVsdCBsb2NhbGUgaXMgdXNlZC4KKyAgICAgKiBAcGFyYW0gbmV3Q2FsZW5kYXIgdGhlIG5ldyBDYWxlbmRhciB0byBiZSB1c2VkIGJ5IHRoZSBkYXRlIGZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENhbGVuZGFyKENhbGVuZGFyIG5ld0NhbGVuZGFyKQorICAgIHsKKyAgICAgICAgdGhpcy5jYWxlbmRhciA9IG5ld0NhbGVuZGFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGNhbGVuZGFyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRhdGUvdGltZSBmb3JtYXR0ZXIuCisgICAgICogQHJldHVybiB0aGUgY2FsZW5kYXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGF0ZS90aW1lIGZvcm1hdHRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FsZW5kYXIgZ2V0Q2FsZW5kYXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbGVuZGFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFsbG93cyB5b3UgdG8gc2V0IHRoZSBudW1iZXIgZm9ybWF0dGVyLgorICAgICAqIEBwYXJhbSBuZXdOdW1iZXJGb3JtYXQgdGhlIGdpdmVuIG5ldyBOdW1iZXJGb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TnVtYmVyRm9ybWF0KE51bWJlckZvcm1hdCBuZXdOdW1iZXJGb3JtYXQpCisgICAgeworICAgICAgICB0aGlzLm51bWJlckZvcm1hdCA9IG5ld051bWJlckZvcm1hdDsKKyAgICAgICAgLypJbiBvcmRlciB0byBwYXJzZSBTdHJpbmcgbGlrZSAiMTEuMTAuMjAwMSIgdG8gRGF0ZVRpbWUgY29ycmVjdGx5IAorICAgICAgICAgIGluIExvY2FsZSgiZnIiLCJDSCIpIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQuc2V0UGFyc2VJbnRlZ2VyT25seSh0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBudW1iZXIgZm9ybWF0dGVyIHdoaWNoIHRoaXMgZGF0ZS90aW1lIGZvcm1hdHRlciB1c2VzIHRvCisgICAgICogZm9ybWF0IGFuZCBwYXJzZSBhIHRpbWUuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIGZvcm1hdHRlciB3aGljaCB0aGlzIGRhdGUvdGltZSBmb3JtYXR0ZXIgdXNlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyRm9ybWF0IGdldE51bWJlckZvcm1hdCgpCisgICAgeworICAgICAgICByZXR1cm4gbnVtYmVyRm9ybWF0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHRpbWUgem9uZSBmb3IgdGhlIGNhbGVuZGFyIG9mIHRoaXMgRGF0ZUZvcm1hdCBvYmplY3QuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIG5ldyB0aW1lIHpvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGltZVpvbmUoVGltZVpvbmUgem9uZSkKKyAgICB7CisgICAgICAgIGNhbGVuZGFyLnNldFRpbWVab25lKHpvbmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRpbWUgem9uZS4KKyAgICAgKiBAcmV0dXJuIHRoZSB0aW1lIHpvbmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjYWxlbmRhciBvZiBEYXRlRm9ybWF0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBUaW1lWm9uZSBnZXRUaW1lWm9uZSgpCisgICAgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuZ2V0VGltZVpvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWZ5IHdoZXRoZXIgb3Igbm90IGRhdGUvdGltZSBwYXJzaW5nIGlzIHRvIGJlIGxlbmllbnQuICBXaXRoCisgICAgICogbGVuaWVudCBwYXJzaW5nLCB0aGUgcGFyc2VyIG1heSB1c2UgaGV1cmlzdGljcyB0byBpbnRlcnByZXQgaW5wdXRzIHRoYXQKKyAgICAgKiBkbyBub3QgcHJlY2lzZWx5IG1hdGNoIHRoaXMgb2JqZWN0J3MgZm9ybWF0LiAgV2l0aCBzdHJpY3QgcGFyc2luZywKKyAgICAgKiBpbnB1dHMgbXVzdCBtYXRjaCB0aGlzIG9iamVjdCdzIGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gbGVuaWVudCB3aGVuIHRydWUsIHBhcnNpbmcgaXMgbGVuaWVudAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciNzZXRMZW5pZW50CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TGVuaWVudChib29sZWFuIGxlbmllbnQpCisgICAgeworICAgICAgICBjYWxlbmRhci5zZXRMZW5pZW50KGxlbmllbnQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlbGwgd2hldGhlciBkYXRlL3RpbWUgcGFyc2luZyBpcyB0byBiZSBsZW5pZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTGVuaWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gY2FsZW5kYXIuaXNMZW5pZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIGhhc2hDb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8vIHR1cm4gb2ZmIGNvZGUgY292ZXJhZ2Ugc2luY2UgYWxsIHN1YmNsYXNzZXMgb3ZlcnJpZGUgdGhpcworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIHJldHVybiBudW1iZXJGb3JtYXQuaGFzaENvZGUoKTsKKyAgICAgICAgLy8ganVzdCBlbm91Z2ggZmllbGRzIGZvciBhIHJlYXNvbmFibGUgZGlzdHJpYnV0aW9uCisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIGVxdWFscworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmICh0aGlzID09IG9iaikgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCB8fCBnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIERhdGVGb3JtYXQgb3RoZXIgPSAoRGF0ZUZvcm1hdCkgb2JqOworICAgICAgICByZXR1cm4gKGNhbGVuZGFyLmlzRXF1aXZhbGVudFRvKG90aGVyLmNhbGVuZGFyKSAmJgorICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdC5lcXVhbHMob3RoZXIubnVtYmVyRm9ybWF0KSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgRGF0ZUZvcm1hdCBvdGhlciA9IChEYXRlRm9ybWF0KSBzdXBlci5jbG9uZSgpOworICAgICAgICBvdGhlci5jYWxlbmRhciA9IChDYWxlbmRhcikgY2FsZW5kYXIuY2xvbmUoKTsKKyAgICAgICAgb3RoZXIubnVtYmVyRm9ybWF0ID0gKE51bWJlckZvcm1hdCkgbnVtYmVyRm9ybWF0LmNsb25lKCk7CisgICAgICAgIHJldHVybiBvdGhlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgRGF0ZUZvcm1hdCB3aXRoIHRoZSBnaXZlbiB0aW1lIGFuZC9vciBkYXRlIHN0eWxlIGluIHRoZSBnaXZlbgorICAgICAqIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIGEgdmFsdWUgZnJvbSAwIHRvIDMgaW5kaWNhdGluZyB0aGUgdGltZSBmb3JtYXQsCisgICAgICogb3IgLTEgdG8gaW5kaWNhdGUgbm8gZGF0ZQorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgYSB2YWx1ZSBmcm9tIDAgdG8gMyBpbmRpY2F0aW5nIHRoZSB0aW1lIGZvcm1hdCwKKyAgICAgKiBvciAtMSB0byBpbmRpY2F0ZSBubyB0aW1lCisgICAgICogQHBhcmFtIGxvYyB0aGUgbG9jYWxlIGZvciB0aGUgZm9ybWF0CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgRGF0ZUZvcm1hdCBnZXQoaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSwgVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgaWYgKHRpbWVTdHlsZSA8IC0xIHx8IHRpbWVTdHlsZSA+IDMpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgdGltZSBzdHlsZSAiICsgdGltZVN0eWxlKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGF0ZVN0eWxlIDwgLTEgfHwgZGF0ZVN0eWxlID4gMykgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBkYXRlIHN0eWxlICIgKyBkYXRlU3R5bGUpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDYWxlbmRhciBjYWwgPSBDYWxlbmRhci5nZXRJbnN0YW5jZShsb2MpOworICAgICAgICAgICAgRGF0ZUZvcm1hdCByZXN1bHQgPSBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGxvYyk7CisJICAgIHJlc3VsdC5zZXRMb2NhbGUoY2FsLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSksCisJCQkgICAgIGNhbC5nZXRMb2NhbGUoVUxvY2FsZS5BQ1RVQUxfTE9DQUxFKSk7CisJICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICAvLyBjb3ZlcmFnZSByZXF1aXJlcyBzZXBhcmF0ZSBydW4gd2l0aCBubyBkYXRhLCBzbyBza2lwCisgICAgICAgICAgICByZXR1cm4gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk0vZC95eSBoOm1tIGEiKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IGRhdGUgZm9ybWF0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBEYXRlRm9ybWF0KCkge30KKworICAgIC8vfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gUHVibGljIHN0YXRpYyBpbnRlcmZhY2UgZm9yIGNyZWF0aW5nIGN1c3RvbiBEYXRlRm9ybWF0cyBmb3IgZGlmZmVyZW50CisgICAgLy8gdHlwZXMgb2YgQ2FsZW5kYXJzLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHtAbGluayBEYXRlRm9ybWF0fSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgZGF0ZXMgaW4KKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtIHNwZWNpZmllZCBieSA8Y29kZT5jYWw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgc3lzdGVtIGZvciB3aGljaCBhIGRhdGUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIFRoZSB0eXBlIG9mIGRhdGUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIGRhdGUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUsIExvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIGRhdGVTdHlsZSwgLTEsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB7QGxpbmsgRGF0ZUZvcm1hdH0gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IGRhdGVzIGluCisgICAgICogdGhlIGNhbGVuZGFyIHN5c3RlbSBzcGVjaWZpZWQgYnkgPGNvZGU+Y2FsPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSBkYXRlIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSBUaGUgdHlwZSBvZiBkYXRlIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBkYXRlIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCBkYXRlU3R5bGUsIFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBkYXRlU3R5bGUsIC0xLCBsb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB7QGxpbmsgRGF0ZUZvcm1hdH0gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IHRpbWVzIGluCisgICAgICogdGhlIGNhbGVuZGFyIHN5c3RlbSBzcGVjaWZpZWQgYnkgPGNvZGU+Y2FsPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gV2hlbiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbW92ZWQgaW50byB0aGUgY29yZSBKREssIHRoaXMgbWV0aG9kCisgICAgICogd2lsbCBwcm9iYWJseSBiZSByZXBsYWNlZCBieSBhIG5ldyBvdmVybG9hZCBvZiB7QGxpbmsgRGF0ZUZvcm1hdCNnZXRJbnN0YW5jZX0uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGNhbCAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gZm9yIHdoaWNoIGEgdGltZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgVGhlIHR5cGUgb2YgdGltZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB3aGljaCB0aGUgdGltZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdCNnZXRUaW1lSW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0VGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IHRpbWVTdHlsZSwgTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXREYXRlVGltZUluc3RhbmNlKGNhbCwgLTEsIHRpbWVTdHlsZSwgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHtAbGluayBEYXRlRm9ybWF0fSBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBmb3JtYXQgdGltZXMgaW4KKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtIHNwZWNpZmllZCBieSA8Y29kZT5jYWw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBXaGVuIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBtb3ZlZCBpbnRvIHRoZSBjb3JlIEpESywgdGhpcyBtZXRob2QKKyAgICAgKiB3aWxsIHByb2JhYmx5IGJlIHJlcGxhY2VkIGJ5IGEgbmV3IG92ZXJsb2FkIG9mIHtAbGluayBEYXRlRm9ybWF0I2dldEluc3RhbmNlfS4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSB0aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSBUaGUgdHlwZSBvZiB0aW1lIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSB0aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHNlZSBEYXRlRm9ybWF0I2dldFRpbWVJbnN0YW5jZQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldFRpbWVJbnN0YW5jZShDYWxlbmRhciBjYWwsIGludCB0aW1lU3R5bGUsIFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCAtMSwgdGltZVN0eWxlLCBsb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSB7QGxpbmsgRGF0ZUZvcm1hdH0gb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IGRhdGVzIGFuZCB0aW1lcyBpbgorICAgICAqIHRoZSBjYWxlbmRhciBzeXN0ZW0gc3BlY2lmaWVkIGJ5IDxjb2RlPmNhbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFdoZW4gdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG1vdmVkIGludG8gdGhlIGNvcmUgSkRLLCB0aGlzIG1ldGhvZAorICAgICAqIHdpbGwgcHJvYmFibHkgYmUgcmVwbGFjZWQgYnkgYSBuZXcgb3ZlcmxvYWQgb2Yge0BsaW5rIERhdGVGb3JtYXQjZ2V0SW5zdGFuY2V9LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBjYWwgICBUaGUgY2FsZW5kYXIgc3lzdGVtIGZvciB3aGljaCBhIGRhdGUvdGltZSBmb3JtYXQgaXMgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgVGhlIHR5cGUgb2YgZGF0ZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSBUaGUgdHlwZSBvZiB0aW1lIGZvcm1hdCBkZXNpcmVkLiAgVGhpcyBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rIERhdGVGb3JtYXQjU0hPUlR9LCB7QGxpbmsgRGF0ZUZvcm1hdCNNRURJVU19LAorICAgICAqICAgICAgICAgICAgICBldGMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoZSBkYXRlL3RpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQjZ2V0RGF0ZVRpbWVJbnN0YW5jZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IGRhdGVTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGltZVN0eWxlLCBMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhbC5nZXREYXRlVGltZUZvcm1hdChkYXRlU3R5bGUsIHRpbWVTdHlsZSwgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEge0BsaW5rIERhdGVGb3JtYXR9IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBkYXRlcyBhbmQgdGltZXMgaW4KKyAgICAgKiB0aGUgY2FsZW5kYXIgc3lzdGVtIHNwZWNpZmllZCBieSA8Y29kZT5jYWw8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBXaGVuIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBtb3ZlZCBpbnRvIHRoZSBjb3JlIEpESywgdGhpcyBtZXRob2QKKyAgICAgKiB3aWxsIHByb2JhYmx5IGJlIHJlcGxhY2VkIGJ5IGEgbmV3IG92ZXJsb2FkIG9mIHtAbGluayBEYXRlRm9ybWF0I2dldEluc3RhbmNlfS4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgVGhlIGNhbGVuZGFyIHN5c3RlbSBmb3Igd2hpY2ggYSBkYXRlL3RpbWUgZm9ybWF0IGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZVN0eWxlIFRoZSB0eXBlIG9mIGRhdGUgZm9ybWF0IGRlc2lyZWQuICBUaGlzIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgRGF0ZUZvcm1hdCNTSE9SVH0sIHtAbGluayBEYXRlRm9ybWF0I01FRElVTX0sCisgICAgICogICAgICAgICAgICAgIGV0Yy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aW1lU3R5bGUgVGhlIHR5cGUgb2YgdGltZSBmb3JtYXQgZGVzaXJlZC4gIFRoaXMgY2FuIGJlCisgICAgICogICAgICAgICAgICAgIHtAbGluayBEYXRlRm9ybWF0I1NIT1JUfSwge0BsaW5rIERhdGVGb3JtYXQjTUVESVVNfSwKKyAgICAgKiAgICAgICAgICAgICAgZXRjLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB3aGljaCB0aGUgZGF0ZS90aW1lIGZvcm1hdCBpcyBkZXNpcmVkLgorICAgICAqCisgICAgICogQHNlZSBEYXRlRm9ybWF0I2dldERhdGVUaW1lSW5zdGFuY2UKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IGRhdGVTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGltZVN0eWxlLCBVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjYWwuZ2V0RGF0ZVRpbWVGb3JtYXQoZGF0ZVN0eWxlLCB0aW1lU3R5bGUsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcmxvYWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0SW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREYXRlVGltZUluc3RhbmNlKGNhbCwgU0hPUlQsIFNIT1JULCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHB1YmxpYyBEYXRlRm9ybWF0IGdldEluc3RhbmNlKENhbGVuZGFyIGNhbCwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGVUaW1lSW5zdGFuY2UoY2FsLCBTSE9SVCwgU0hPUlQsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcmxvYWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgcHVibGljIERhdGVGb3JtYXQgZ2V0SW5zdGFuY2UoQ2FsZW5kYXIgY2FsKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShjYWwsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgZGF0ZVN0eWxlKSB7CisgICAgICAgIHJldHVybiBnZXREYXRlSW5zdGFuY2UoY2FsLCBkYXRlU3R5bGUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXRUaW1lSW5zdGFuY2UoQ2FsZW5kYXIgY2FsLCBpbnQgdGltZVN0eWxlKSB7CisgICAgICAgIHJldHVybiBnZXRUaW1lSW5zdGFuY2UoY2FsLCB0aW1lU3R5bGUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVybG9hZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUluc3RhbmNlKENhbGVuZGFyIGNhbCwgaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGF0ZVRpbWVJbnN0YW5jZShjYWwsIGRhdGVTdHlsZSwgdGltZVN0eWxlLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGF0ZUZvcm1hdFN5bWJvbHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXRTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDdiZTEyNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RhdGVGb3JtYXRTeW1ib2xzLmphdmEKQEAgLTAsMCArMSwxNzU0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVGV4dFRyaWVNYXA7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuWm9uZU1ldGE7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuU29mdENhY2hlOworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworLyoqCisgKiA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gaXMgYSBwdWJsaWMgY2xhc3MgZm9yIGVuY2Fwc3VsYXRpbmcKKyAqIGxvY2FsaXphYmxlIGRhdGUtdGltZSBmb3JtYXR0aW5nIGRhdGEsIHN1Y2ggYXMgdGhlIG5hbWVzIG9mIHRoZQorICogbW9udGhzLCB0aGUgbmFtZXMgb2YgdGhlIGRheXMgb2YgdGhlIHdlZWssIGFuZCB0aGUgdGltZSB6b25lIGRhdGEuCisgKiA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiBhbmQgPGNvZGU+U2ltcGxlRGF0ZUZvcm1hdDwvY29kZT4gYm90aCB1c2UKKyAqIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiB0byBlbmNhcHN1bGF0ZSB0aGlzIGluZm9ybWF0aW9uLgorICoKKyAqIDxwPgorICogVHlwaWNhbGx5IHlvdSBzaG91bGRuJ3QgdXNlIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBkaXJlY3RseS4KKyAqIFJhdGhlciwgeW91IGFyZSBlbmNvdXJhZ2VkIHRvIGNyZWF0ZSBhIGRhdGUtdGltZSBmb3JtYXR0ZXIgd2l0aCB0aGUKKyAqIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGNsYXNzJ3MgZmFjdG9yeSBtZXRob2RzOiA8Y29kZT5nZXRUaW1lSW5zdGFuY2U8L2NvZGU+LAorICogPGNvZGU+Z2V0RGF0ZUluc3RhbmNlPC9jb2RlPiwgb3IgPGNvZGU+Z2V0RGF0ZVRpbWVJbnN0YW5jZTwvY29kZT4uCisgKiBUaGVzZSBtZXRob2RzIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvcgorICogdGhlIGZvcm1hdHRlciBzbyB0aGF0IHlvdSBkb24ndCBoYXZlIHRvLiBBZnRlciB0aGUKKyAqIGZvcm1hdHRlciBpcyBjcmVhdGVkLCB5b3UgbWF5IG1vZGlmeSBpdHMgZm9ybWF0IHBhdHRlcm4gdXNpbmcgdGhlCisgKiA8Y29kZT5zZXRQYXR0ZXJuPC9jb2RlPiBtZXRob2QuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0CisgKiBjcmVhdGluZyBmb3JtYXR0ZXJzIHVzaW5nIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+J3MgZmFjdG9yeSBtZXRob2RzLAorICogc2VlIHtAbGluayBEYXRlRm9ybWF0fS4KKyAqCisgKiA8cD4KKyAqIElmIHlvdSBkZWNpZGUgdG8gY3JlYXRlIGEgZGF0ZS10aW1lIGZvcm1hdHRlciB3aXRoIGEgc3BlY2lmaWMKKyAqIGZvcm1hdCBwYXR0ZXJuIGZvciBhIHNwZWNpZmljIGxvY2FsZSwgeW91IGNhbiBkbyBzbyB3aXRoOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogbmV3IFNpbXBsZURhdGVGb3JtYXQoYVBhdHRlcm4sIG5ldyBEYXRlRm9ybWF0U3ltYm9scyhhTG9jYWxlKSkuCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD4KKyAqIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBvYmplY3RzIGFyZSBjbG9uYWJsZS4gV2hlbiB5b3Ugb2J0YWluCisgKiBhIDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBvYmplY3QsIGZlZWwgZnJlZSB0byBtb2RpZnkgdGhlCisgKiBkYXRlLXRpbWUgZm9ybWF0dGluZyBkYXRhLiBGb3IgaW5zdGFuY2UsIHlvdSBjYW4gcmVwbGFjZSB0aGUgbG9jYWxpemVkCisgKiBkYXRlLXRpbWUgZm9ybWF0IHBhdHRlcm4gY2hhcmFjdGVycyB3aXRoIHRoZSBvbmVzIHRoYXQgeW91IGZlZWwgZWFzeQorICogdG8gcmVtZW1iZXIuIE9yIHlvdSBjYW4gY2hhbmdlIHRoZSByZXByZXNlbnRhdGl2ZSBjaXRpZXMKKyAqIHRvIHlvdXIgZmF2b3JpdGUgb25lcy4KKyAqCisgKiA8cD4KKyAqIE5ldyA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gc3ViY2xhc3NlcyBtYXkgYmUgYWRkZWQgdG8gc3VwcG9ydAorICogPGNvZGU+U2ltcGxlRGF0ZUZvcm1hdDwvY29kZT4gZm9yIGRhdGUtdGltZSBmb3JtYXR0aW5nIGZvciBhZGRpdGlvbmFsIGxvY2FsZXMuCisKKyAqIEBzZWUgICAgICAgICAgRGF0ZUZvcm1hdAorICogQHNlZSAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0CisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmUKKyAqIEBhdXRob3IgICAgICAgQ2hlbi1MaWVoIEh1YW5nCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIERhdGVGb3JtYXRTeW1ib2xzIGltcGxlbWVudHMgU2VyaWFsaXphYmxlLCBDbG9uZWFibGUgeworCisgICAgLy8gVE9ETyBtYWtlIHN1cmUgbG9jYWwgcGF0dGVybiBjaGFyIHN0cmluZyBpcyAxOCBjaGFyYWN0ZXJzIGxvbmcsCisgICAgLy8gdGhhdCBpcywgdGhhdCBpdCBlbmNvbXBhc3NlcyB0aGUgbmV3ICd1JyBjaGFyIGZvcgorICAgIC8vIEVYVEVOREVEX1lFQVIuICBUd28gb3B0aW9uczogMS4gTWFrZSBzdXJlIHJlc291cmNlIGRhdGEgaXMKKyAgICAvLyBjb3JyZWN0OyAyLiBNYWtlIGNvZGUgYWRkIGluICd1JyBhdCBlbmQgaWYgbGVuID09IDE3LgorCisgICAgLy8gQ29uc3RhbnRzIGZvciBjb250ZXh0CisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIGNvbnRleHQuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT1JNQVQgPSAwOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIGNvbnRleHQuCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVEFOREFMT05FID0gMTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBjb250ZXh0LgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRFRfQ09OVEVYVF9DT1VOVCA9IDI7CisKKyAgICAvLyBDb25zdGFudHMgZm9yIHdpZHRoCisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3Igd2lkdGguCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBQkJSRVZJQVRFRCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3Igd2lkdGguCisgICAgICogQGRyYWZ0IElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXSURFID0gMTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciB3aWR0aC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5BUlJPVyA9IDI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3Igd2lkdGguCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBEVF9XSURUSF9DT1VOVCA9IDM7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3QgYnkgbG9hZGluZyBmb3JtYXQgZGF0YSBmcm9tCisgICAgICogcmVzb3VyY2VzIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAdGhyb3dzICBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogICAgICAgICAgaWYgdGhlIHJlc291cmNlcyBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIGNhbm5vdCBiZQorICAgICAqICAgICAgICAgIGZvdW5kIG9yIGNhbm5vdCBiZSBsb2FkZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXRTeW1ib2xzKCkKKyAgICB7CisgICAgICAgIGluaXRpYWxpemVEYXRhKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCAiIik7IC8vIFRPRE86IHR5cGU/CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIERhdGVGb3JtYXRTeW1ib2xzIG9iamVjdCBieSBsb2FkaW5nIGZvcm1hdCBkYXRhIGZyb20KKyAgICAgKiByZXNvdXJjZXMgZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAdGhyb3dzICBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uCisgICAgICogICAgICAgICAgaWYgdGhlIHJlc291cmNlcyBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUgY2Fubm90IGJlCisgICAgICogICAgICAgICAgZm91bmQgb3IgY2Fubm90IGJlIGxvYWRlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIGluaXRpYWxpemVEYXRhKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSksICIiKTsgLy8gVE9ETzogdHlwZT8KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3QgYnkgbG9hZGluZyBmb3JtYXQgZGF0YSBmcm9tCisgICAgICogcmVzb3VyY2VzIGZvciB0aGUgZ2l2ZW4gdWxvY2FsZS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgIGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiAgICAgICAgICBpZiB0aGUgcmVzb3VyY2VzIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBjYW5ub3QgYmUKKyAgICAgKiAgICAgICAgICBmb3VuZCBvciBjYW5ub3QgYmUgbG9hZGVkLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXRTeW1ib2xzKFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgaW5pdGlhbGl6ZURhdGEobG9jYWxlLCAiIik7IC8vIFRPRE86IHR5cGU/CisgICAgfQorCisgICAgLyoqCisgICAgICogRXJhIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiQUQiIGFuZCAiQkMiLiAgQW4gYXJyYXkgb2YgMiBzdHJpbmdzLAorICAgICAqIGluZGV4ZWQgYnkgPGNvZGU+Q2FsZW5kYXIuQkM8L2NvZGU+IGFuZCA8Y29kZT5DYWxlbmRhci5BRDwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBlcmFzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogRXJhIG5hbWUgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJBbm5vIERvbWluaSIgYW5kICJCZWZvcmUgQ2hyaXN0Ii4gIEFuIGFycmF5IG9mIDIgc3RyaW5ncywKKyAgICAgKiBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLkJDPC9jb2RlPiBhbmQgPGNvZGU+Q2FsZW5kYXIuQUQ8L2NvZGU+LgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgZXJhTmFtZXNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBNb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbnVhcnkiLCAiRmVicnVhcnkiLCBldGMuICBBbiBhcnJheQorICAgICAqIG9mIDEzIHN0cmluZ3MgKHNvbWUgY2FsZW5kYXJzIGhhdmUgMTMgbW9udGhzKSwgaW5kZXhlZCBieQorICAgICAqIDxjb2RlPkNhbGVuZGFyLkpBTlVBUlk8L2NvZGU+LCA8Y29kZT5DYWxlbmRhci5GRUJSVUFSWTwvY29kZT4sIGV0Yy4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIG1vbnRoc1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFNob3J0IG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFuIiwgIkZlYiIsIGV0Yy4gIEFuIGFycmF5IG9mCisgICAgICogMTMgc3RyaW5ncyAoc29tZSBjYWxlbmRhcnMgaGF2ZSAxMyBtb250aHMpLCBpbmRleGVkIGJ5CisgICAgICogPGNvZGU+Q2FsZW5kYXIuSkFOVUFSWTwvY29kZT4sIDxjb2RlPkNhbGVuZGFyLkZFQlJVQVJZPC9jb2RlPiwgZXRjLgorCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBzaG9ydE1vbnRoc1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIE5hcnJvdyBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkoiLCAiRiIsIGV0Yy4gIEFuIGFycmF5IG9mCisgICAgICogMTMgc3RyaW5ncyAoc29tZSBjYWxlbmRhcnMgaGF2ZSAxMyBtb250aHMpLCBpbmRleGVkIGJ5CisgICAgICogPGNvZGU+Q2FsZW5kYXIuSkFOVUFSWTwvY29kZT4sIDxjb2RlPkNhbGVuZGFyLkZFQlJVQVJZPC9jb2RlPiwgZXRjLgorCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBuYXJyb3dNb250aHNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFsb25lIG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFudWFyeSIsICJGZWJydWFyeSIsIGV0Yy4gIEFuIGFycmF5CisgICAgICogb2YgMTMgc3RyaW5ncyAoc29tZSBjYWxlbmRhcnMgaGF2ZSAxMyBtb250aHMpLCBpbmRleGVkIGJ5CisgICAgICogPGNvZGU+Q2FsZW5kYXIuSkFOVUFSWTwvY29kZT4sIDxjb2RlPkNhbGVuZGFyLkZFQlJVQVJZPC9jb2RlPiwgZXRjLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgc3RhbmRhbG9uZU1vbnRoc1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFN0YW5kYWxvbmUgc2hvcnQgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW4iLCAiRmViIiwgZXRjLiAgQW4gYXJyYXkgb2YKKyAgICAgKiAxMyBzdHJpbmdzIChzb21lIGNhbGVuZGFycyBoYXZlIDEzIG1vbnRocyksIGluZGV4ZWQgYnkKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5KQU5VQVJZPC9jb2RlPiwgPGNvZGU+Q2FsZW5kYXIuRkVCUlVBUlk8L2NvZGU+LCBldGMuCisKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIHN0YW5kYWxvbmVTaG9ydE1vbnRoc1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFN0YW5kYWxvbmUgbmFycm93IG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSiIsICJGIiwgZXRjLiAgQW4gYXJyYXkgb2YKKyAgICAgKiAxMyBzdHJpbmdzIChzb21lIGNhbGVuZGFycyBoYXZlIDEzIG1vbnRocyksIGluZGV4ZWQgYnkKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5KQU5VQVJZPC9jb2RlPiwgPGNvZGU+Q2FsZW5kYXIuRkVCUlVBUlk8L2NvZGU+LCBldGMuCisKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIHN0YW5kYWxvbmVOYXJyb3dNb250aHNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBXZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuZGF5IiwgIk1vbmRheSIsIGV0Yy4gIEFuIGFycmF5CisgICAgICogb2YgOCBzdHJpbmdzLCBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIFRoZSBlbGVtZW50IDxjb2RlPndlZWtkYXlzWzBdPC9jb2RlPiBpcyBpZ25vcmVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBTdHJpbmcgd2Vla2RheXNbXSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBTaG9ydCB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuIiwgIk1vbiIsIGV0Yy4gIEFuIGFycmF5CisgICAgICogb2YgOCBzdHJpbmdzLCBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIFRoZSBlbGVtZW50IDxjb2RlPnNob3J0V2Vla2RheXNbMF08L2NvZGU+IGlzIGlnbm9yZWQuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBzaG9ydFdlZWtkYXlzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogTmFycm93IHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTIiwgIk0iLCBldGMuICBBbiBhcnJheQorICAgICAqIG9mIDggc3RyaW5ncywgaW5kZXhlZCBieSA8Y29kZT5DYWxlbmRhci5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPkNhbGVuZGFyLk1PTkRBWTwvY29kZT4sIGV0Yy4KKyAgICAgKiBUaGUgZWxlbWVudCA8Y29kZT5uYXJyb3dXZWVrZGF5c1swXTwvY29kZT4gaXMgaWdub3JlZC4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIG5hcnJvd1dlZWtkYXlzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogU3RhbmRhbG9uZSB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuZGF5IiwgIk1vbmRheSIsIGV0Yy4gIEFuIGFycmF5CisgICAgICogb2YgOCBzdHJpbmdzLCBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIFRoZSBlbGVtZW50IDxjb2RlPnN0YW5kYWxvbmVXZWVrZGF5c1swXTwvY29kZT4gaXMgaWdub3JlZC4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIHN0YW5kYWxvbmVXZWVrZGF5c1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFN0YW5kYWxvbmUgc2hvcnQgd2Vla2RheSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIlN1biIsICJNb24iLCBldGMuICBBbiBhcnJheQorICAgICAqIG9mIDggc3RyaW5ncywgaW5kZXhlZCBieSA8Y29kZT5DYWxlbmRhci5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPkNhbGVuZGFyLk1PTkRBWTwvY29kZT4sIGV0Yy4KKyAgICAgKiBUaGUgZWxlbWVudCA8Y29kZT5zdGFuZGFsb25lU2hvcnRXZWVrZGF5c1swXTwvY29kZT4gaXMgaWdub3JlZC4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIHN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzW10gPSBudWxsOworCisgICAgLyoqCisgICAgICogU3RhbmRhbG9uZSBuYXJyb3cgd2Vla2RheSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIlMiLCAiTSIsIGV0Yy4gIEFuIGFycmF5CisgICAgICogb2YgOCBzdHJpbmdzLCBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLgorICAgICAqIFRoZSBlbGVtZW50IDxjb2RlPnN0YW5kYWxvbmVOYXJyb3dXZWVrZGF5c1swXTwvY29kZT4gaXMgaWdub3JlZC4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgU3RyaW5nIHN0YW5kYWxvbmVOYXJyb3dXZWVrZGF5c1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEFNIGFuZCBQTSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFNIiBhbmQgIlBNIi4gIEFuIGFycmF5IG9mCisgICAgICogMiBzdHJpbmdzLCBpbmRleGVkIGJ5IDxjb2RlPkNhbGVuZGFyLkFNPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5QTTwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyBhbXBtc1tdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIExvY2FsaXplZCBuYW1lcyBvZiB0aW1lIHpvbmVzIGluIHRoaXMgbG9jYWxlLiAgVGhpcyBpcyBhCisgICAgICogdHdvLWRpbWVuc2lvbmFsIGFycmF5IG9mIHN0cmluZ3Mgb2Ygc2l6ZSA8ZW0+bjwvZW0+IGJ5IDxlbT5tPC9lbT4sCisgICAgICogd2hlcmUgPGVtPm08L2VtPiBpcyBhdCBsZWFzdCA1IGFuZCB1cCB0byA4LiAgRWFjaCBvZiB0aGUgPGVtPm48L2VtPiByb3dzIGlzIGFuCisgICAgICogZW50cnkgY29udGFpbmluZyB0aGUgbG9jYWxpemVkIG5hbWVzIGZvciBhIHNpbmdsZSA8Y29kZT5UaW1lWm9uZTwvY29kZT4uCisgICAgICogRWFjaCBzdWNoIHJvdyBjb250YWlucyAod2l0aCA8Y29kZT5pPC9jb2RlPiByYW5naW5nIGZyb20KKyAgICAgKiAwLi48ZW0+bjwvZW0+LTEpOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGNvZGU+em9uZVN0cmluZ3NbaV1bMF08L2NvZGU+IC0gdGltZSB6b25lIElEPC9saT4KKyAgICAgKiA8bGk+PGNvZGU+em9uZVN0cmluZ3NbaV1bMV08L2NvZGU+IC0gbG9uZyBuYW1lIG9mIHpvbmUgaW4gc3RhbmRhcmQKKyAgICAgKiB0aW1lPC9saT4KKyAgICAgKiA8bGk+PGNvZGU+em9uZVN0cmluZ3NbaV1bMl08L2NvZGU+IC0gc2hvcnQgbmFtZSBvZiB6b25lIGluCisgICAgICogc3RhbmRhcmQgdGltZTwvbGk+CisgICAgICogPGxpPjxjb2RlPnpvbmVTdHJpbmdzW2ldWzNdPC9jb2RlPiAtIGxvbmcgbmFtZSBvZiB6b25lIGluIGRheWxpZ2h0CisgICAgICogc2F2aW5ncyB0aW1lPC9saT4KKyAgICAgKiA8bGk+PGNvZGU+em9uZVN0cmluZ3NbaV1bNF08L2NvZGU+IC0gc2hvcnQgbmFtZSBvZiB6b25lIGluIGRheWxpZ2h0CisgICAgICogc2F2aW5ncyB0aW1lPC9saT4KKyAgICAgKiA8bGk+VGhlIHJlbWFpbmRlciB2YXJpZXMgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlcmUgaXMgZGF0YSAKKyAgICAgKiBvbiBjaXR5IG5hbWUgb3IgZ2VuZXJpYyB0aW1lLiAgVGhlIGNpdHkgbmFtZSwgaWYgYXZhaWxhYmxlLCBjb21lcworICAgICAqIGZpcnN0LiAgVGhlIGxvbmcgYW5kIHNob3J0IGdlbmVyaWMgdGltZXMsIGlmIGF2YWlsYWJsZSwgY29tZSBuZXh0LAorICAgICAqIGluIHRoYXQgb3JkZXIuIFRoZSBsZW5ndGggb2YgdGhlIGFycmF5IChtKSBjYW4gYmUgZXhhbWluZWQgdG8gCisgICAgICogZGV0ZXJtaW5lIHdoaWNoIG9wdGlvbmFsIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZS48L2xpPgorICAgICAqIDwvdWw+CisgICAgICogVGhlIHpvbmUgSUQgaXMgPGVtPm5vdDwvZW0+IGxvY2FsaXplZDsgaXQgY29ycmVzcG9uZHMgdG8gdGhlIElECisgICAgICogdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGEgc3lzdGVtIHRpbWUgem9uZSBvYmplY3QuICBBbGwgb3RoZXIgZW50cmllcworICAgICAqIGFyZSBsb2NhbGl6ZWQgbmFtZXMuICBJZiBhIHpvbmUgZG9lcyBub3QgaW1wbGVtZW50IGRheWxpZ2h0IHNhdmluZ3MKKyAgICAgKiB0aW1lLCB0aGUgZGF5bGlnaHQgc2F2aW5ncyB0aW1lIG5hbWVzIGFyZSBpZ25vcmVkLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZQorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICAgcHJpdmF0ZSBTdHJpbmcgem9uZVN0cmluZ3NbXVtdID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFVubG9jYWxpemVkIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlcnMuIEZvciBleGFtcGxlOiAneScsICdkJywgZXRjLgorICAgICAqIEFsbCBsb2NhbGVzIHVzZSB0aGUgc2FtZSB1bmxvY2FsaXplZCBwYXR0ZXJuIGNoYXJhY3RlcnMuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyAgcGF0dGVybkNoYXJzID0gIkd5TWRrSG1zU0VERndXYWhLellldWdBWnZjTCI7CisKKyAgICAvKioKKyAgICAgKiBMb2NhbGl6ZWQgZGF0ZS10aW1lIHBhdHRlcm4gY2hhcmFjdGVycy4gRm9yIGV4YW1wbGUsIGEgbG9jYWxlIG1heQorICAgICAqIHdpc2ggdG8gdXNlICd1JyByYXRoZXIgdGhhbiAneScgdG8gcmVwcmVzZW50IHllYXJzIGluIGl0cyBkYXRlIGZvcm1hdAorICAgICAqIHBhdHRlcm4gc3RyaW5ncy4KKyAgICAgKiBUaGlzIHN0cmluZyBtdXN0IGJlIGV4YWN0bHkgMTggY2hhcmFjdGVycyBsb25nLCB3aXRoIHRoZSBpbmRleCBvZgorICAgICAqIHRoZSBjaGFyYWN0ZXJzIGRlc2NyaWJlZCBieSA8Y29kZT5EYXRlRm9ybWF0LkVSQV9GSUVMRDwvY29kZT4sCisgICAgICogPGNvZGU+RGF0ZUZvcm1hdC5ZRUFSX0ZJRUxEPC9jb2RlPiwgZXRjLiAgVGh1cywgaWYgdGhlIHN0cmluZyB3ZXJlCisgICAgICogIlh6Li4uIiwgdGhlbiBsb2NhbGl6ZWQgcGF0dGVybnMgd291bGQgdXNlICdYJyBmb3IgZXJhIGFuZCAneicgZm9yIHllYXIuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIFN0cmluZyAgbG9jYWxQYXR0ZXJuQ2hhcnMgPSBudWxsOworCisgICAgLyogdXNlIHNlcmlhbFZlcnNpb25VSUQgZnJvbSBKREsgMS4xLjQgZm9yIGludGVyb3BlcmFiaWxpdHkgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNTk4Nzk3MzU0NTU0OTQyNDcwMkw7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGVyYSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFEIiBhbmQgIkJDIi4KKyAgICAgKiBAcmV0dXJuIHRoZSBlcmEgc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0RXJhcygpIHsKKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShlcmFzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGVyYSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFEIiBhbmQgIkJDIi4KKyAgICAgKiBAcGFyYW0gbmV3RXJhcyB0aGUgbmV3IGVyYSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVyYXMoU3RyaW5nW10gbmV3RXJhcykgeworICAgICAgICBlcmFzID0gZHVwbGljYXRlKG5ld0VyYXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgZXJhIG5hbWUgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJBbm5vIERvbWluaSIgYW5kICJCZWZvcmUgQ2hyaXN0Ii4KKyAgICAgKiBAcmV0dXJuIHRoZSBlcmEgc3RyaW5ncy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRFcmFOYW1lcygpIHsKKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShlcmFOYW1lcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBlcmEgbmFtZSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkFubm8gRG9taW5pIiBhbmQgIkJlZm9yZSBDaHJpc3QiLgorICAgICAqIEBwYXJhbSBuZXdFcmFOYW1lcyB0aGUgbmV3IGVyYSBzdHJpbmdzLgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RXJhTmFtZXMoU3RyaW5nW10gbmV3RXJhTmFtZXMpIHsKKyAgICAgICAgZXJhTmFtZXMgPSBkdXBsaWNhdGUobmV3RXJhTmFtZXMpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBHZXRzIG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFudWFyeSIsICJGZWJydWFyeSIsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBtb250aCBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRNb250aHMoKSB7CisgICAgICAgIHJldHVybiBkdXBsaWNhdGUobW9udGhzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIG1vbnRoIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiSmFudWFyeSIsICJGZWJydWFyeSIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gY29udGV4dCAgICBUaGUgbW9udGggY29udGV4dCwgRk9STUFUIG9yIFNUQU5EQUxPTkUuCisgICAgICogQHBhcmFtIHdpZHRoICAgICAgVGhlIHdpZHRoIG9yIHRoZSByZXR1cm5lZCBtb250aCBzdHJpbmcsCisgICAgICogICAgICAgICAgICAgICAgICAgZWl0aGVyIFdJREUsIEFCQlJFVklBVEVELCBvciBOQVJST1cuCisgICAgICogQHJldHVybiB0aGUgbW9udGggc3RyaW5ncy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRNb250aHMoaW50IGNvbnRleHQsIGludCB3aWR0aCkgeworICAgICAgICBTdHJpbmcgW10gcmV0dXJuVmFsdWUgPSBudWxsOworICAgICAgICBzd2l0Y2ggKGNvbnRleHQpIHsKKyAgICAgICAgICAgY2FzZSBGT1JNQVQgOgorICAgICAgICAgICAgICBzd2l0Y2god2lkdGgpIHsKKyAgICAgICAgICAgICAgICAgY2FzZSBXSURFIDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBtb250aHM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIEFCQlJFVklBVEVEIDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBzaG9ydE1vbnRoczsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgTkFSUk9XIDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBuYXJyb3dNb250aHM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICBjYXNlIFNUQU5EQUxPTkUgOgorICAgICAgICAgICAgICBzd2l0Y2god2lkdGgpIHsKKyAgICAgICAgICAgICAgICAgY2FzZSBXSURFIDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBzdGFuZGFsb25lTW9udGhzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBBQkJSRVZJQVRFRCA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc3RhbmRhbG9uZVNob3J0TW9udGhzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBOQVJST1cgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHN0YW5kYWxvbmVOYXJyb3dNb250aHM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkdXBsaWNhdGUocmV0dXJuVmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW51YXJ5IiwgIkZlYnJ1YXJ5IiwgZXRjLgorICAgICAqIEBwYXJhbSBuZXdNb250aHMgdGhlIG5ldyBtb250aCBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1vbnRocyhTdHJpbmdbXSBuZXdNb250aHMpIHsKKyAgICAgICAgbW9udGhzID0gZHVwbGljYXRlKG5ld01vbnRocyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbnVhcnkiLCAiRmVicnVhcnkiLCBldGMuCisgICAgICogQHBhcmFtIG5ld01vbnRocyB0aGUgbmV3IG1vbnRoIHN0cmluZ3MuCisgICAgICogQHBhcmFtIGNvbnRleHQgICAgVGhlIGZvcm1hdHRpbmcgY29udGV4dCwgRk9STUFUIG9yIFNUQU5EQUxPTkUuCisgICAgICogQHBhcmFtIHdpZHRoICAgICAgVGhlIHdpZHRoIG9mIHRoZSBtb250aCBzdHJpbmcsCisgICAgICogICAgICAgICAgICAgICAgICAgZWl0aGVyIFdJREUsIEFCQlJFVklBVEVELCBvciBOQVJST1cuCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNb250aHMoU3RyaW5nW10gbmV3TW9udGhzLCBpbnQgY29udGV4dCwgaW50IHdpZHRoKSB7CisgICAgICAgIHN3aXRjaCAoY29udGV4dCkgeworICAgICAgICAgICBjYXNlIEZPUk1BVCA6CisgICAgICAgICAgICAgIHN3aXRjaCh3aWR0aCkgeworICAgICAgICAgICAgICAgICBjYXNlIFdJREUgOgorICAgICAgICAgICAgICAgICAgICBtb250aHMgPSBkdXBsaWNhdGUobmV3TW9udGhzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgQUJCUkVWSUFURUQgOgorICAgICAgICAgICAgICAgICAgICBzaG9ydE1vbnRocyA9IGR1cGxpY2F0ZShuZXdNb250aHMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBOQVJST1cgOgorICAgICAgICAgICAgICAgICAgICBuYXJyb3dNb250aHMgPSBkdXBsaWNhdGUobmV3TW9udGhzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgIGNhc2UgU1RBTkRBTE9ORSA6CisgICAgICAgICAgICAgIHN3aXRjaCh3aWR0aCkgeworICAgICAgICAgICAgICAgICBjYXNlIFdJREUgOgorICAgICAgICAgICAgICAgICAgICBzdGFuZGFsb25lTW9udGhzID0gZHVwbGljYXRlKG5ld01vbnRocyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIEFCQlJFVklBVEVEIDoKKyAgICAgICAgICAgICAgICAgICAgc3RhbmRhbG9uZVNob3J0TW9udGhzID0gZHVwbGljYXRlKG5ld01vbnRocyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIE5BUlJPVyA6CisgICAgICAgICAgICAgICAgICAgIHN0YW5kYWxvbmVOYXJyb3dNb250aHMgPSBkdXBsaWNhdGUobmV3TW9udGhzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyBzaG9ydCBtb250aCBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIkphbiIsICJGZWIiLCBldGMuCisgICAgICogQHJldHVybiB0aGUgc2hvcnQgbW9udGggc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0U2hvcnRNb250aHMoKSB7CisgICAgICAgIHJldHVybiBkdXBsaWNhdGUoc2hvcnRNb250aHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgc2hvcnQgbW9udGggc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJKYW4iLCAiRmViIiwgZXRjLgorICAgICAqIEBwYXJhbSBuZXdTaG9ydE1vbnRocyB0aGUgbmV3IHNob3J0IG1vbnRoIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2hvcnRNb250aHMoU3RyaW5nW10gbmV3U2hvcnRNb250aHMpIHsKKyAgICAgICAgc2hvcnRNb250aHMgPSBkdXBsaWNhdGUobmV3U2hvcnRNb250aHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgd2Vla2RheSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIlN1bmRheSIsICJNb25kYXkiLCBldGMuCisgICAgICogQHJldHVybiB0aGUgd2Vla2RheSBzdHJpbmdzLiBVc2UgPGNvZGU+Q2FsZW5kYXIuU1VOREFZPC9jb2RlPiwKKyAgICAgKiA8Y29kZT5DYWxlbmRhci5NT05EQVk8L2NvZGU+LCBldGMuIHRvIGluZGV4IHRoZSByZXN1bHQgYXJyYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldFdlZWtkYXlzKCkgeworICAgICAgICByZXR1cm4gZHVwbGljYXRlKHdlZWtkYXlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW5kYXkiLCAiTW9uZGF5IiwgZXRjLgorICAgICAqIEByZXR1cm4gdGhlIHdlZWtkYXkgc3RyaW5ncy4gVXNlIDxjb2RlPkNhbGVuZGFyLlNVTkRBWTwvY29kZT4sCisgICAgICogPGNvZGU+Q2FsZW5kYXIuTU9OREFZPC9jb2RlPiwgZXRjLiB0byBpbmRleCB0aGUgcmVzdWx0IGFycmF5LgorICAgICAqIEBwYXJhbSBjb250ZXh0ICAgIEZvcm1hdHRpbmcgY29udGV4dCwgZWl0aGVyIEZPUk1BVCBvciBTVEFOREFMT05FLgorICAgICAqIEBwYXJhbSB3aWR0aCAgICAgIFdpZHRoIG9mIHN0cmluZ3MgdG8gYmUgcmV0dXJuZWQsIGVpdGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgIFdJREUsIEFCQlJFVklBVEVELCBvciBOQVJST1cKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRXZWVrZGF5cyhpbnQgY29udGV4dCwgaW50IHdpZHRoKSB7CisgICAgICAgIFN0cmluZyBbXSByZXR1cm5WYWx1ZSA9IG51bGw7CisgICAgICAgIHN3aXRjaCAoY29udGV4dCkgeworICAgICAgICAgICBjYXNlIEZPUk1BVCA6CisgICAgICAgICAgICAgIHN3aXRjaCh3aWR0aCkgeworICAgICAgICAgICAgICAgICBjYXNlIFdJREUgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHdlZWtkYXlzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBBQkJSRVZJQVRFRCA6CisgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gc2hvcnRXZWVrZGF5czsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgTkFSUk9XIDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSBuYXJyb3dXZWVrZGF5czsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgIGNhc2UgU1RBTkRBTE9ORSA6CisgICAgICAgICAgICAgIHN3aXRjaCh3aWR0aCkgeworICAgICAgICAgICAgICAgICBjYXNlIFdJREUgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHN0YW5kYWxvbmVXZWVrZGF5czsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgQUJCUkVWSUFURUQgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBOQVJST1cgOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHN0YW5kYWxvbmVOYXJyb3dXZWVrZGF5czsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShyZXR1cm5WYWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuZGF5IiwgIk1vbmRheSIsIGV0Yy4KKyAgICAgKiBAcGFyYW0gbmV3V2Vla2RheXMgVGhlIG5ldyB3ZWVrZGF5IHN0cmluZ3MuCisgICAgICogQHBhcmFtIGNvbnRleHQgICAgIFRoZSBmb3JtYXR0aW5nIGNvbnRleHQsIEZPUk1BVCBvciBTVEFOREFMT05FLgorICAgICAqIEBwYXJhbSB3aWR0aCAgICAgICBUaGUgd2lkdGggb2YgdGhlIHN0cmluZ3MsCisgICAgICogICAgICAgICAgICAgICAgICAgIGVpdGhlciBXSURFLCBBQkJSRVZJQVRFRCwgb3IgTkFSUk9XLgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0V2Vla2RheXMoU3RyaW5nW10gbmV3V2Vla2RheXMsIGludCBjb250ZXh0LCBpbnQgd2lkdGgpIHsKKyAgICAgICAgc3dpdGNoIChjb250ZXh0KSB7CisgICAgICAgICAgIGNhc2UgRk9STUFUIDoKKyAgICAgICAgICAgICAgc3dpdGNoKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgV0lERSA6CisgICAgICAgICAgICAgICAgICAgIHdlZWtkYXlzID0gZHVwbGljYXRlKG5ld1dlZWtkYXlzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgQUJCUkVWSUFURUQgOgorICAgICAgICAgICAgICAgICAgICBzaG9ydFdlZWtkYXlzID0gZHVwbGljYXRlKG5ld1dlZWtkYXlzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNhc2UgTkFSUk9XIDoKKyAgICAgICAgICAgICAgICAgICAgbmFycm93V2Vla2RheXMgPSBkdXBsaWNhdGUobmV3V2Vla2RheXMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgY2FzZSBTVEFOREFMT05FIDoKKyAgICAgICAgICAgICAgc3dpdGNoKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgV0lERSA6CisgICAgICAgICAgICAgICAgICAgIHN0YW5kYWxvbmVXZWVrZGF5cyA9IGR1cGxpY2F0ZShuZXdXZWVrZGF5cyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIEFCQlJFVklBVEVEIDoKKyAgICAgICAgICAgICAgICAgICAgc3RhbmRhbG9uZVNob3J0V2Vla2RheXMgPSBkdXBsaWNhdGUobmV3V2Vla2RheXMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgY2FzZSBOQVJST1cgOgorICAgICAgICAgICAgICAgICAgICBzdGFuZGFsb25lTmFycm93V2Vla2RheXMgPSBkdXBsaWNhdGUobmV3V2Vla2RheXMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgd2Vla2RheSBzdHJpbmdzLiBGb3IgZXhhbXBsZTogIlN1bmRheSIsICJNb25kYXkiLCBldGMuCisgICAgICogQHBhcmFtIG5ld1dlZWtkYXlzIHRoZSBuZXcgd2Vla2RheSBzdHJpbmdzLiBUaGUgYXJyYXkgc2hvdWxkCisgICAgICogYmUgaW5kZXhlZCBieSA8Y29kZT5DYWxlbmRhci5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPkNhbGVuZGFyLk1PTkRBWTwvY29kZT4sIGV0Yy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRXZWVrZGF5cyhTdHJpbmdbXSBuZXdXZWVrZGF5cykgeworICAgICAgICB3ZWVrZGF5cyA9IGR1cGxpY2F0ZShuZXdXZWVrZGF5cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBzaG9ydCB3ZWVrZGF5IHN0cmluZ3MuIEZvciBleGFtcGxlOiAiU3VuIiwgIk1vbiIsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBzaG9ydCB3ZWVrZGF5IHN0cmluZ3MuIFVzZSA8Y29kZT5DYWxlbmRhci5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPkNhbGVuZGFyLk1PTkRBWTwvY29kZT4sIGV0Yy4gdG8gaW5kZXggdGhlIHJlc3VsdCBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0U2hvcnRXZWVrZGF5cygpIHsKKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShzaG9ydFdlZWtkYXlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHNob3J0IHdlZWtkYXkgc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJTdW4iLCAiTW9uIiwgZXRjLgorICAgICAqIEBwYXJhbSBuZXdTaG9ydFdlZWtkYXlzIHRoZSBuZXcgc2hvcnQgd2Vla2RheSBzdHJpbmdzLiBUaGUgYXJyYXkgc2hvdWxkCisgICAgICogYmUgaW5kZXhlZCBieSA8Y29kZT5DYWxlbmRhci5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPkNhbGVuZGFyLk1PTkRBWTwvY29kZT4sIGV0Yy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTaG9ydFdlZWtkYXlzKFN0cmluZ1tdIG5ld1Nob3J0V2Vla2RheXMpIHsKKyAgICAgICAgc2hvcnRXZWVrZGF5cyA9IGR1cGxpY2F0ZShuZXdTaG9ydFdlZWtkYXlzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGFtcG0gc3RyaW5ncy4gRm9yIGV4YW1wbGU6ICJBTSIgYW5kICJQTSIuCisgICAgICogQHJldHVybiB0aGUgd2Vla2RheSBzdHJpbmdzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRBbVBtU3RyaW5ncygpIHsKKyAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZShhbXBtcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBhbXBtIHN0cmluZ3MuIEZvciBleGFtcGxlOiAiQU0iIGFuZCAiUE0iLgorICAgICAqIEBwYXJhbSBuZXdBbXBtcyB0aGUgbmV3IGFtcG0gc3RyaW5ncy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRBbVBtU3RyaW5ncyhTdHJpbmdbXSBuZXdBbXBtcykgeworICAgICAgICBhbXBtcyA9IGR1cGxpY2F0ZShuZXdBbXBtcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aW1lem9uZSBzdHJpbmdzLgorICAgICAqIEByZXR1cm4gdGhlIHRpbWV6b25lIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdW10gZ2V0Wm9uZVN0cmluZ3MoKSB7CisgICAgICAgIFN0cmluZ1tdW10gc3RyaW5ncyA9IHpvbmVTdHJpbmdzOworICAgICAgICBpZihzdHJpbmdzID09IG51bGwpeworICAgICAgICAgICAgLy8gZ2V0IHRoZSBkZWZhdWx0IHpvbmUgc3RyaW5ncworICAgICAgICAgICAgWm9uZUl0ZW1JbmZvIHppaSA9IGdldERlZmF1bHRab25lSXRlbUluZm8oKTsKKyAgICAgICAgICAgIHN0cmluZ3MgPSB6aWkudHpTdHJpbmdzOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkdXBsaWNhdGUoc3RyaW5ncyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aW1lem9uZSBzdHJpbmdzLgorICAgICAqIEBwYXJhbSBuZXdab25lU3RyaW5ncyB0aGUgbmV3IHRpbWV6b25lIHN0cmluZ3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Wm9uZVN0cmluZ3MoU3RyaW5nW11bXSBuZXdab25lU3RyaW5ncykgeworICAgICAgICB6b25lU3RyaW5ncyA9IGR1cGxpY2F0ZShuZXdab25lU3RyaW5ncyk7CisgICAgICAgIC8vIG5lZWQgdG8gdXBkYXRlIGxvY2FsIHpvbmUgaXRlbSBpbmZvCisgICAgICAgIGxvY2FsWm9uZUl0ZW1JbmZvID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGxvY2FsaXplZCBkYXRlLXRpbWUgcGF0dGVybiBjaGFyYWN0ZXJzLiBGb3IgZXhhbXBsZTogJ3UnLCAndCcsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgZGF0ZS10aW1lIHBhdHRlcm4gY2hhcmFjdGVycy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldExvY2FsUGF0dGVybkNoYXJzKCkgeworICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhsb2NhbFBhdHRlcm5DaGFycyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBsb2NhbGl6ZWQgZGF0ZS10aW1lIHBhdHRlcm4gY2hhcmFjdGVycy4gRm9yIGV4YW1wbGU6ICd1JywgJ3QnLCBldGMuCisgICAgICogQHBhcmFtIG5ld0xvY2FsUGF0dGVybkNoYXJzIHRoZSBuZXcgbG9jYWxpemVkIGRhdGUtdGltZQorICAgICAqIHBhdHRlcm4gY2hhcmFjdGVycy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRMb2NhbFBhdHRlcm5DaGFycyhTdHJpbmcgbmV3TG9jYWxQYXR0ZXJuQ2hhcnMpIHsKKyAgICAgICAgbG9jYWxQYXR0ZXJuQ2hhcnMgPSBuZXdMb2NhbFBhdHRlcm5DaGFyczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgQ2xvbmVhYmxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMgb3RoZXIgPSAoRGF0ZUZvcm1hdFN5bWJvbHMpc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIGNvcHlNZW1iZXJzKHRoaXMsIG90aGVyKTsKKyAgICAgICAgICAgIHJldHVybiBvdGhlcjsKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBoYXNoQ29kZS4KKyAgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoZSBEYXRlRm9ybWF0U3ltYm9scyBvYmplY3QuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgaW50IGhhc2hjb2RlID0gMDsKKyAgICAgICAgaGFzaGNvZGUgXj0gcmVxdWVzdGVkTG9jYWxlLnRvU3RyaW5nKCkuaGFzaENvZGUoKTsKKyAgICAgICAgU3RyaW5nW11bXSB0elN0cmluZ3MgPSB6b25lU3RyaW5nczsKKyAgICAgICAgaWYgKHR6U3RyaW5ncyA9PSBudWxsKXsKKyAgICAgICAgICAgIFpvbmVJdGVtSW5mbyB6aWkgPSBnZXREZWZhdWx0Wm9uZUl0ZW1JbmZvKCk7CisgICAgICAgICAgICB0elN0cmluZ3MgPSB6aWkudHpTdHJpbmdzOworICAgICAgICB9CisgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCB0elN0cmluZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgCWZvciAoaW50IGogPSAwOyBqIDwgdHpTdHJpbmdzW2ldLmxlbmd0aDsgaisrKSB7CisgICAgICAgIAkJaWYgKHR6U3RyaW5nc1tpXVtqXSAhPSBudWxsKSB7CisgICAgICAgICAgICAJCWhhc2hjb2RlIF49IHR6U3RyaW5nc1tpXVtqXS5oYXNoQ29kZSgpOworICAgICAgICAJCX0KKyAgICAgICAgCX0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaGFzaGNvZGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgZXF1YWxzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopCisgICAgeworICAgICAgICBpZiAodGhpcyA9PSBvYmopIHJldHVybiB0cnVlOworICAgICAgICBpZiAob2JqID09IG51bGwgfHwgZ2V0Q2xhc3MoKSAhPSBvYmouZ2V0Q2xhc3MoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICBEYXRlRm9ybWF0U3ltYm9scyB0aGF0ID0gKERhdGVGb3JtYXRTeW1ib2xzKSBvYmo7CisgICAgICAgIHJldHVybiAoVXRpbGl0eS5hcnJheUVxdWFscyhlcmFzLCB0aGF0LmVyYXMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhlcmFOYW1lcywgdGhhdC5lcmFOYW1lcykKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKG1vbnRocywgdGhhdC5tb250aHMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhzaG9ydE1vbnRocywgdGhhdC5zaG9ydE1vbnRocykKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKG5hcnJvd01vbnRocywgdGhhdC5uYXJyb3dNb250aHMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhzdGFuZGFsb25lTW9udGhzLCB0aGF0LnN0YW5kYWxvbmVNb250aHMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhzdGFuZGFsb25lU2hvcnRNb250aHMsIHRoYXQuc3RhbmRhbG9uZVNob3J0TW9udGhzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoc3RhbmRhbG9uZU5hcnJvd01vbnRocywgdGhhdC5zdGFuZGFsb25lTmFycm93TW9udGhzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMod2Vla2RheXMsIHRoYXQud2Vla2RheXMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhzaG9ydFdlZWtkYXlzLCB0aGF0LnNob3J0V2Vla2RheXMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhuYXJyb3dXZWVrZGF5cywgdGhhdC5uYXJyb3dXZWVrZGF5cykKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKHN0YW5kYWxvbmVXZWVrZGF5cywgdGhhdC5zdGFuZGFsb25lV2Vla2RheXMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhzdGFuZGFsb25lU2hvcnRXZWVrZGF5cywgdGhhdC5zdGFuZGFsb25lU2hvcnRXZWVrZGF5cykKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKHN0YW5kYWxvbmVOYXJyb3dXZWVrZGF5cywgdGhhdC5zdGFuZGFsb25lTmFycm93V2Vla2RheXMpCisgICAgICAgICAgICAgICAgJiYgVXRpbGl0eS5hcnJheUVxdWFscyhhbXBtcywgdGhhdC5hbXBtcykKKyAgICAgICAgICAgICAgICAmJiBhcnJheU9mQXJyYXlFcXVhbHMoem9uZVN0cmluZ3MsIHRoYXQuem9uZVN0cmluZ3MpCisgICAgICAgICAgICAgICAgLy8gZ2V0RGlwbGF5TmFtZSBtYXBzIGRlcHJlY2F0ZWQgY291bnRyeSBhbmQgbGFuZ3VhZ2UgY29kZXMgdG8gdGhlIGN1cnJlbnQgb25lcworICAgICAgICAgICAgICAgIC8vIHRvbyBiYWQgdGhlcmUgaXMgbm8gd2F5IHRvIGdldCB0aGUgY3VycmVudCBjb2RlcyEKKyAgICAgICAgICAgICAgICAvLyBJIHRob3VnaHQgY2Fub2xpY2FsaXplKCkgd291bGQgbWFwIHRoZSBjb2RlcyBidXQgLi4gYWxhcyEgaXQgZG9lc24ndC4KKyAgICAgICAgICAgICAgICAmJiByZXF1ZXN0ZWRMb2NhbGUuZ2V0RGlzcGxheU5hbWUoKS5lcXVhbHModGhhdC5yZXF1ZXN0ZWRMb2NhbGUuZ2V0RGlzcGxheU5hbWUoKSkKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKGxvY2FsUGF0dGVybkNoYXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5sb2NhbFBhdHRlcm5DaGFycykpOworICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09cHJpdmF0ZXM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGRlZmluaW5nIHRpbWV6b25lIG9mZnNldHMuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBtaWxsaXNQZXJIb3VyID0gNjAqNjAqMTAwMDsKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZGVzaXJlZExvY2FsZQorICAgICAqIEBwYXJhbSB0eXBlCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0aWFsaXplRGF0YShVTG9jYWxlIGRlc2lyZWRMb2NhbGUsIFN0cmluZyB0eXBlKQorICAgIHsKKyAgICAgICAgQ2FsZW5kYXJEYXRhIGNhbERhdGEgPSBuZXcgQ2FsZW5kYXJEYXRhKGRlc2lyZWRMb2NhbGUsIHR5cGUpOworICAgICAgICBpbml0aWFsaXplRGF0YShkZXNpcmVkTG9jYWxlLCBjYWxEYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gZGVzaXJlZExvY2FsZQorICAgICAqIEBwYXJhbSBjYWxEYXRhCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0aWFsaXplRGF0YShVTG9jYWxlIGRlc2lyZWRMb2NhbGUsIENhbGVuZGFyRGF0YSBjYWxEYXRhKQorICAgIHsKKworICAgICAgICAvLyBGSVhNRTogY2FjaGUgb25seSBSZXNvdXJjZUJ1bmRsZS4gSGVuY2UgZXZlcnkgdGltZSwgd2lsbCBkbworICAgICAgICAvLyBnZXRPYmplY3QoKS4gVGhpcyB3b24ndCBiZSBuZWNlc3NhcnkgaWYgdGhlIFJlc291cmNlIGl0c2VsZgorICAgICAgICAvLyBpcyBjYWNoZWQuCisgICAgICAgIGVyYXMgPSBjYWxEYXRhLmdldEVyYXMoImFiYnJldmlhdGVkIik7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgZXJhTmFtZXMgPSBjYWxEYXRhLmdldEVyYXMoIndpZGUiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgZXJhTmFtZXMgPSBjYWxEYXRhLmdldEVyYXMoImFiYnJldmlhdGVkIik7CisgICAgICAgIH0KKworICAgICAgICBtb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgIndpZGUiKTsKKyAgICAgICAgc2hvcnRNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgImFiYnJldmlhdGVkIik7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgbmFycm93TW9udGhzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgibW9udGhOYW1lcyIsICJuYXJyb3ciKTsKKyAgICAgICAgfSAKKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgIG5hcnJvd01vbnRocyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoIm1vbnRoTmFtZXMiLCAiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgIHN0YW5kYWxvbmVNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgInN0YW5kLWFsb25lIiwgIndpZGUiKTsKKyAgICAgICAgfSAKKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgIHN0YW5kYWxvbmVNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgImZvcm1hdCIsICJ3aWRlIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICBzdGFuZGFsb25lU2hvcnRNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgInN0YW5kLWFsb25lIiwgImFiYnJldmlhdGVkIik7CisgICAgICAgIH0gCisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICBzdGFuZGFsb25lU2hvcnRNb250aHMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJtb250aE5hbWVzIiwgImZvcm1hdCIsICJhYmJyZXZpYXRlZCIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgc3RhbmRhbG9uZU5hcnJvd01vbnRocyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoIm1vbnRoTmFtZXMiLCAic3RhbmQtYWxvbmUiLCAibmFycm93Iik7CisgICAgICAgIH0gCisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICBzdGFuZGFsb25lTmFycm93TW9udGhzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgibW9udGhOYW1lcyIsICJmb3JtYXQiLCAibmFycm93Iik7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgICBzdGFuZGFsb25lTmFycm93TW9udGhzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgibW9udGhOYW1lcyIsICJmb3JtYXQiLCAiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nW10gbFdlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAid2lkZSIpOworICAgICAgICB3ZWVrZGF5cyA9IG5ldyBTdHJpbmdbOF07CisgICAgICAgIHdlZWtkYXlzWzBdID0gIiI7ICAvLyAxLWJhc2VkCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobFdlZWtkYXlzLCAwLCB3ZWVrZGF5cywgMSwgbFdlZWtkYXlzLmxlbmd0aCk7CisKKyAgICAgICAgU3RyaW5nW10gc1dlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgc2hvcnRXZWVrZGF5cyA9IG5ldyBTdHJpbmdbOF07CisgICAgICAgIHNob3J0V2Vla2RheXNbMF0gPSAiIjsgIC8vIDEtYmFzZWQKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShzV2Vla2RheXMsIDAsIHNob3J0V2Vla2RheXMsIDEsIHNXZWVrZGF5cy5sZW5ndGgpOworCisgICAgICAgIFN0cmluZyBbXSBuV2Vla2RheXMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICBuV2Vla2RheXMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJkYXlOYW1lcyIsICJuYXJyb3ciKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgbldlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiYWJicmV2aWF0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICBuYXJyb3dXZWVrZGF5cyA9IG5ldyBTdHJpbmdbOF07CisgICAgICAgIG5hcnJvd1dlZWtkYXlzWzBdID0gIiI7ICAvLyAxLWJhc2VkCisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobldlZWtkYXlzLCAwLCBuYXJyb3dXZWVrZGF5cywgMSwgbldlZWtkYXlzLmxlbmd0aCk7CisKKyAgICAgICAgU3RyaW5nIFtdIHNhV2Vla2RheXMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICBzYVdlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAic3RhbmQtYWxvbmUiLCAid2lkZSIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICBzYVdlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiZm9ybWF0IiwgIndpZGUiKTsKKyAgICAgICAgfQorICAgICAgICBzdGFuZGFsb25lV2Vla2RheXMgPSBuZXcgU3RyaW5nWzhdOworICAgICAgICBzdGFuZGFsb25lV2Vla2RheXNbMF0gPSAiIjsgIC8vIDEtYmFzZWQKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShzYVdlZWtkYXlzLCAwLCBzdGFuZGFsb25lV2Vla2RheXMsIDEsIHNhV2Vla2RheXMubGVuZ3RoKTsKKworICAgICAgICBTdHJpbmcgW10gc3NXZWVrZGF5cyA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgIHNzV2Vla2RheXMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJkYXlOYW1lcyIsICJzdGFuZC1hbG9uZSIsICJhYmJyZXZpYXRlZCIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICBzc1dlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiZm9ybWF0IiwgImFiYnJldmlhdGVkIik7CisgICAgICAgIH0KKyAgICAgICAgc3RhbmRhbG9uZVNob3J0V2Vla2RheXMgPSBuZXcgU3RyaW5nWzhdOworICAgICAgICBzdGFuZGFsb25lU2hvcnRXZWVrZGF5c1swXSA9ICIiOyAgLy8gMS1iYXNlZAorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNzV2Vla2RheXMsIDAsIHN0YW5kYWxvbmVTaG9ydFdlZWtkYXlzLCAxLCBzc1dlZWtkYXlzLmxlbmd0aCk7CisKKyAgICAgICAgU3RyaW5nIFtdIHNuV2Vla2RheXMgPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICBzbldlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAic3RhbmQtYWxvbmUiLCAibmFycm93Iik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgIHNuV2Vla2RheXMgPSBjYWxEYXRhLmdldFN0cmluZ0FycmF5KCJkYXlOYW1lcyIsICJmb3JtYXQiLCAibmFycm93Iik7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlMSkgeworICAgICAgICAgICAgICBzbldlZWtkYXlzID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiZGF5TmFtZXMiLCAiZm9ybWF0IiwgImFiYnJldmlhdGVkIik7CisgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzdGFuZGFsb25lTmFycm93V2Vla2RheXMgPSBuZXcgU3RyaW5nWzhdOworICAgICAgICBzdGFuZGFsb25lTmFycm93V2Vla2RheXNbMF0gPSAiIjsgIC8vIDEtYmFzZWQKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShzbldlZWtkYXlzLCAwLCBzdGFuZGFsb25lTmFycm93V2Vla2RheXMsIDEsIHNuV2Vla2RheXMubGVuZ3RoKTsKKworICAgICAgICBhbXBtcyA9IGNhbERhdGEuZ2V0U3RyaW5nQXJyYXkoIkFtUG1NYXJrZXJzIik7CisKKy8qICBUSEUgRk9MTE9XSU5HIERPRVNOJ1QgV09SSzsgQSBDT1VOVFJZIExPQ0FMRSBXSVRIIE9ORSBaT05FIEJMT0NLUyBUSEUgTEFOR1VBR0UgTE9DQUxFCisgICAgICAgIC8vIFRoZXNlIHJlYWxseSBkbyB1c2UgcmIgYW5kIG5vdCBjYWxEYXRhCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBkZXNpcmVkTG9jYWxlKTsKKyAgICAgICAgLy8gaGFjayBhcm91bmQgY2xhc3MgY2FzdCBwcm9ibGVtCisgICAgICAgIC8vIHpvbmVTdHJpbmdzID0gKFN0cmluZ1tdW10pcmIuZ2V0T2JqZWN0KCJ6b25lU3RyaW5ncyIpOworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB6b25lT2JqZWN0ID0gcmIuZ2V0KCJ6b25lU3RyaW5ncyIpOworICAgICAgICB6b25lU3RyaW5ncyA9IG5ldyBTdHJpbmdbem9uZU9iamVjdC5nZXRTaXplKCldW107CisgICAgICAgIGZvcihpbnQgaSA9MDsgaTwgem9uZU9iamVjdC5nZXRTaXplKCk7IGkrKyl7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB6b25lQXJyID0gem9uZU9iamVjdC5nZXQoaSk7CisgICAgICAgICAgICBTdHJpbmdbXSBzdHJpbmdzID0gbmV3IFN0cmluZ1t6b25lQXJyLmdldFNpemUoKV07CisgICAgICAgICAgICBmb3IoaW50IGo9MDsgajx6b25lQXJyLmdldFNpemUoKTsgaisrKXsKKyAgICAgICAgICAgICAgICBzdHJpbmdzW2pdPXpvbmVBcnIuZ2V0KGopLmdldFN0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgem9uZVN0cmluZ3NbaV0gPSBzdHJpbmdzOworICAgICAgICB9CisqLyAgICAgICAgCisgICAgICAgIHJlcXVlc3RlZExvY2FsZSA9IGRlc2lyZWRMb2NhbGU7CisgICAgIAorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgZGVzaXJlZExvY2FsZSk7CisgICAgICAgIGxvY2FsUGF0dGVybkNoYXJzID0gcmIuZ2V0U3RyaW5nKCJsb2NhbFBhdHRlcm5DaGFycyIpOworCisgICAgICAgIC8vIFRPRE86IG9idGFpbiBjb3JyZWN0IGFjdHVhbC92YWxpZCBsb2NhbGUgbGF0ZXIKKyAgICAgICAgVUxvY2FsZSB1bG9jID0gcmIuZ2V0VUxvY2FsZSgpOworICAgICAgICBzZXRMb2NhbGUodWxvYywgdWxvYyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBhcnJheU9mQXJyYXlFcXVhbHMoT2JqZWN0W11bXSBhYTEsIE9iamVjdFtdW11hYTIpIHsKKyAgICAgICAgaWYgKGFhMSA9PSBhYTIpIHsgLy8gYm90aCBhcmUgbnVsbAorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFhMSA9PSBudWxsIHx8IGFhMiA9PSBudWxsKSB7IC8vIG9uZSBpcyBudWxsIGFuZCB0aGUgb3RoZXIgaXMgbm90CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFhMS5sZW5ndGggIT0gYWEyLmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGJvb2xlYW4gZXF1YWwgPSB0cnVlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFhMS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZXF1YWwgPSBVdGlsaXR5LmFycmF5RXF1YWxzKGFhMVtpXSwgYWEyW2ldKTsKKyAgICAgICAgICAgIGlmICghZXF1YWwpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXF1YWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFja2FnZSBwcml2YXRlOiB1c2VkIGJ5IFNpbXBsZURhdGVGb3JtYXQuCisgICAgICogR2V0cyB0aGUgc3RyaW5nIGZvciB0aGUgc3BlY2lmaWVkIHRpbWUgem9uZS4KKyAgICAgKiBAcGFyYW0gemlkIFRoZSB0aW1lIHpvbmUgSUQKKyAgICAgKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSBvZiB6b25lIHN0cmluZworICAgICAqIEByZXR1cm4gVGhlIHpvbmUgc3RyaW5nLCBvciBudWxsIGlmIG5vdCBhdmFpbGFibGUuCisgICAgICovCisgICAgU3RyaW5nIGdldFpvbmVTdHJpbmcoU3RyaW5nIHppZCwgaW50IHR5cGUpIHsKKyAgICAgICAgLy8gVHJ5IGxvY2FsIHpvbmUgaXRlbSBpbmZvIGZpcnN0CisgICAgICAgIFN0cmluZyB6b25lU3RyaW5nID0gZ2V0Wm9uZVN0cmluZyhnZXRMb2NhbFpvbmVJdGVtSW5mbygpLCB6aWQsIHR5cGUpOworICAgICAgICBpZiAoem9uZVN0cmluZyA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBGYWxsYmFjayB0byB0aGUgZGVmYXVsdCBpbmZvCisgICAgICAgICAgICB6b25lU3RyaW5nID0gZ2V0Wm9uZVN0cmluZyhnZXREZWZhdWx0Wm9uZUl0ZW1JbmZvKCksIHppZCwgdHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHpvbmVTdHJpbmc7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgem9uZSBzdHJpbmcgZnJvbSB0aGUgc3BlY2lmaWVkIHpvbmUgaXRlbSBpbmZvCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0Wm9uZVN0cmluZyhab25lSXRlbUluZm8gemluZm8sIFN0cmluZyB6aWQsIGludCB0eXBlKSB7CisgICAgICAgIGlmICh6aW5mbyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IChTdHJpbmdbXSl6aW5mby50emlkTWFwLmdldCh6aWQpOworICAgICAgICBpZiAobmFtZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gZ2V0IG5hbWUgZm9yIHRoZSB0eXBlCisgICAgICAgICAgICBpbnQgaW5kZXggPSAtMTsKKyAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgY2FzZSBUSU1FWk9ORV9MT05HX1NUQU5EQVJEOgorICAgICAgICAgICAgICAgIGluZGV4ID0gMTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVElNRVpPTkVfU0hPUlRfU1RBTkRBUkQ6CisgICAgICAgICAgICAgICAgaW5kZXggPSAyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBUSU1FWk9ORV9MT05HX0RBWUxJR0hUOgorICAgICAgICAgICAgICAgIGluZGV4ID0gMzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVElNRVpPTkVfU0hPUlRfREFZTElHSFQ6CisgICAgICAgICAgICAgICAgaW5kZXggPSA0OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBUSU1FWk9ORV9FWEVNUExBUl9DSVRZOgorICAgICAgICAgICAgICAgIGlmIChuYW1lcy5sZW5ndGggPT0gNiB8fCBuYW1lcy5sZW5ndGggPT0gOCkgeworICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBUSU1FWk9ORV9MT05HX0dFTkVSSUM6CisgICAgICAgICAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA9PSA4KSB7CisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gNjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBUSU1FWk9ORV9TSE9SVF9HRU5FUklDOgorICAgICAgICAgICAgICAgIGlmIChuYW1lcy5sZW5ndGggPT0gOCkgeworICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDc7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggPSA2OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpbmRleCA8IG5hbWVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuYW1lc1tpbmRleF07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgY2xhc3MgWm9uZUl0ZW17CisgICAgICAgIFN0cmluZyB2YWx1ZTsKKyAgICAgICAgaW50IHR5cGU7CisgICAgICAgIFN0cmluZyB6aWQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFja2FnZSBwcml2YXRlOiB1c2VkIGJ5IFNpbXBsZURhdGVmb3JtYXQKKyAgICAgKiBHZXRzIHRoZSBab25lSXRlbSBpbnN0YW5jZSB3aGljaCBoYXMgem9uZSBzdHJpbmdzCisgICAgICogd2hpY2ggbWF0Y2hlcyB0aGUgc3BlY2lmaWVkIHRleHQuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHRleHQgd2hpY2ggY29udGFpbnMgYSB6b25lIHN0cmluZworICAgICAqIEBwYXJhbSBzdGFydCBUaGUgc3RhcnQgcG9zaXRpb24gb2Ygem9uZSBzdHJpbmcgaW4gdGhlIHRleHQKKyAgICAgKiBAcmV0dXJuIEEgWm9uSXRlbSBpbnN0YW5jZSBmb3IgdGhlIGxvbmdlc3QgbWF0Y2hpbmcgem9uZQorICAgICAqIHN0cmluZy4KKyAgICAgKi8KKyAgICBab25lSXRlbSBmaW5kWm9uZUlEVHlwZVZhbHVlKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnQpeworICAgICAgICBab25lSXRlbSBpdGVtID0gbnVsbDsKKyAgICAgICAgaW50IHRleHRMZW5ndGggPSB0ZXh0Lmxlbmd0aCgpIC0gc3RhcnQ7CisgICAgICAgIGlmIChsYXN0Wm9uZUl0ZW0gIT0gbnVsbCAmJiB0ZXh0TGVuZ3RoID09IGxhc3Rab25lSXRlbS52YWx1ZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgaWYgKHRleHQucmVnaW9uTWF0Y2hlcyh0cnVlLCBzdGFydCwgbGFzdFpvbmVJdGVtLnZhbHVlLCAwLCB0ZXh0TGVuZ3RoKSkgeworICAgICAgICAgICAgICAgIGl0ZW0gPSBuZXcgWm9uZUl0ZW0oKTsKKyAgICAgICAgICAgICAgICBpdGVtLnR5cGUgPSBsYXN0Wm9uZUl0ZW0udHlwZTsKKyAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gbGFzdFpvbmVJdGVtLnZhbHVlOworICAgICAgICAgICAgICAgIGl0ZW0uemlkID0gbGFzdFpvbmVJdGVtLnppZDsKKyAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFpvbmVJdGVtSW5mbyB6aW5mbyA9IGdldExvY2FsWm9uZUl0ZW1JbmZvKCk7CisgICAgICAgIGlmICh6aW5mbyAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBsb29rIHVwIHRoZSB6b25lIHN0cmluZyBpbiBsb2NhbFpvbmVJdGVtSW5mbyBmaXJzdAorICAgICAgICAgICAgaXRlbSA9IChab25lSXRlbSl6aW5mby50elN0cmluZ01hcC5nZXQodGV4dCwgc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gbG9vayB1cCB0aGUgem9uZSBzdHJpbmcgaW4gZGVmYXVsdCBab25lSXRlbUluZm8gZm9yIHRoZSBsb2NhbGUKKyAgICAgICAgemluZm8gPSBnZXREZWZhdWx0Wm9uZUl0ZW1JbmZvKCk7CisgICAgICAgIFpvbmVJdGVtIGl0ZW1Gb3JMb2NhbGUgPSAoWm9uZUl0ZW0pemluZm8udHpTdHJpbmdNYXAuZ2V0KHRleHQsIHN0YXJ0KTsKKyAgICAgICAgaWYgKGl0ZW1Gb3JMb2NhbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gd2Ugd2FudCB0byB1c2UgbG9uZ2VyIG1hdGNoCisgICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsIHx8IGl0ZW1Gb3JMb2NhbGUudmFsdWUubGVuZ3RoKCkgPiBpdGVtLnZhbHVlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgaXRlbSA9IGl0ZW1Gb3JMb2NhbGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXRlbSAhPSBudWxsICYmIHRleHRMZW5ndGggPT0gaXRlbS52YWx1ZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgLy8gY2xvbmUgdGhlIGxhc3QgbWF0Y2ggZm9yIG5leHQgdGltZQorICAgICAgICAgICAgLy8gb25seSB3aGVuIHRoZSBzdWJzdHJpbmcgY29tcGxldGVseSBtYXRjaGVzCisgICAgICAgICAgICAvLyB3aXRoIHRoZSB2YWx1ZSByZXNvbHZlZAorICAgICAgICAgICAgbGFzdFpvbmVJdGVtID0gbmV3IFpvbmVJdGVtKCk7CisgICAgICAgICAgICBsYXN0Wm9uZUl0ZW0udHlwZSA9IGl0ZW0udHlwZTsKKyAgICAgICAgICAgIGxhc3Rab25lSXRlbS52YWx1ZSA9IGl0ZW0udmFsdWU7CisgICAgICAgICAgICBsYXN0Wm9uZUl0ZW0uemlkID0gaXRlbS56aWQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGl0ZW07CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBjbGFzcyBob2xkcyB6b25lIHN0cmluZ3MgYW5kIHNlYXJjaGFibGUgaW5kaWNlCisgICAgICovCisgICAgcHJpdmF0ZSBjbGFzcyBab25lSXRlbUluZm8geworICAgICAgICBTdHJpbmdbXVtdIHR6U3RyaW5nczsKKyAgICAgICAgSGFzaE1hcCB0emlkTWFwOworICAgICAgICBUZXh0VHJpZU1hcCB0elN0cmluZ01hcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIGNhY2hlIGZvciBab25lSXRlbUluZm8gb2JqZWN0cywgc2hhcmVkIGJ5IGNsYXNzIGluc3RhbmNlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTb2Z0Q2FjaGUgem9uZUl0ZW1JbmZvQ2FjaGUgPSBuZXcgU29mdENhY2hlKCk7CisKKyAgICAvKioKKyAgICAgKiBBIFpvbmVJdGVtSW5mbyBpbnN0YW5jZSB3aGljaCBob2xkcyBjdXN0b20gdGltZXpvbmUgc3RyaW5ncworICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IFpvbmVJdGVtSW5mbyBsb2NhbFpvbmVJdGVtSW5mbzsKKworICAgIC8qKgorICAgICAqIFNpbmdsZSBlbnRyeSBjYWNoZSBmb3IgZmluZFpvbmVUeXBlVmFsdWUoKQorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IFpvbmVJdGVtIGxhc3Rab25lSXRlbTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIFpvbmVJdGVtSW5mbyBpbnN0YW5jZSBmb3IgdGhlIGxvY2FsZSB1c2VkIGJ5IHRoaXMgb2JqZWN0LgorICAgICAqIElmIGl0IGRvZXMgbm90IGV4aXN0LCBjcmVhdGUgbmV3IG9uZSBhbmQgcmVnaXN0ZXIgaW4gdGhlIHN0YXRpYyBjYWNoZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFpvbmVJdGVtSW5mbyBnZXREZWZhdWx0Wm9uZUl0ZW1JbmZvKCkgeworICAgICAgICBab25lSXRlbUluZm8gemlpID0gKFpvbmVJdGVtSW5mbyl6b25lSXRlbUluZm9DYWNoZS5nZXQocmVxdWVzdGVkTG9jYWxlKTsKKyAgICAgICAgaWYgKHppaSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gemlpOworICAgICAgICB9CisgICAgICAgIHppaSA9IGdldFpvbmVJdGVtSW5mbyhnZXREZWZhdWx0Wm9uZVN0cmluZ3MocmVxdWVzdGVkTG9jYWxlKSk7CisgICAgICAgIC8vIEFkZCBmYWxsYmFjayBkaXNwbGF5IG5hbWVzCisgICAgICAgIFN0cmluZ1tdIHpvbmVJRHMgPSBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB6b25lSURzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBPYmplY3QgbyA9IHppaS50emlkTWFwLmdldCh6b25lSURzW2ldKTsKKyAgICAgICAgICAgIGlmIChvICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBBbHJlYWR5IGhhcyBuYW1lcworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gWm9uZU1ldGEuZGlzcGxheUZhbGxiYWNrKHpvbmVJRHNbaV0sIG51bGwsIHJlcXVlc3RlZExvY2FsZSk7CisgICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIFN0cmluZ1tdIHN0cmluZ3MgPSBuZXcgU3RyaW5nWzhdOworICAgICAgICAgICAgICAgIHN0cmluZ3NbNV0gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB6aWkudHppZE1hcC5wdXQoem9uZUlEc1tpXSwgc3RyaW5ncyk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgWm9uZUl0ZW0gaXRlbSA9IG5ldyBab25lSXRlbSgpOworICAgICAgICAgICAgICAgIGl0ZW0uemlkID0gem9uZUlEc1tpXTsKKyAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gdmFsdWU7CisgICAgICAgICAgICAgICAgaXRlbS50eXBlID0gVElNRVpPTkVfRVhFTVBMQVJfQ0lUWTsKKyAgICAgICAgICAgICAgICB6aWkudHpTdHJpbmdNYXAucHV0KGl0ZW0udmFsdWUsIGl0ZW0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHpvbmVJdGVtSW5mb0NhY2hlLnB1dChyZXF1ZXN0ZWRMb2NhbGUsIHppaSk7CisgICAgICAgIHJldHVybiB6aWk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgYXJyYXkgb2Ygem9uZSBzdHJpbmdzIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXVtdIGdldERlZmF1bHRab25lU3RyaW5ncyhVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBBcnJheUxpc3QgdG1wTGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgSGFzaFNldCB0bXBTZXQgPSBuZXcgSGFzaFNldCgpOworICAgICAgICBmb3IgKFVMb2NhbGUgdGVtcExvY2FsZSA9IGxvY2FsZTsgdGVtcExvY2FsZSAhPSBudWxsOyB0ZW1wTG9jYWxlID0gdGVtcExvY2FsZS5nZXRGYWxsYmFjaygpKSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIHRlbXBMb2NhbGUpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgem9uZVN0cmluZ3NCdW5kbGUgPSBidW5kbGUuZ2V0V2l0aEZhbGxiYWNrKCJ6b25lU3RyaW5ncyIpOworICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IHpvbmVTdHJpbmdzQnVuZGxlLmdldFNpemUoKTsgaSsrKXsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB6b25lVGFibGUgPSB6b25lU3RyaW5nc0J1bmRsZS5nZXQoaSk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IFV0aWxpdHkucmVwbGFjZUFsbCh6b25lVGFibGUuZ2V0S2V5KCksICI6IiwgIi8iKTsKKyAgICAgICAgICAgICAgICAvLyBoYWNrIGZvciB0aGUgcm9vdCB6b25lIHN0cmluZ3MKKyAgICAgICAgICAgICAgICBpZihrZXkubGVuZ3RoKCkgPT0gMHx8IHpvbmVUYWJsZS5nZXRUeXBlKCkgIT0gSUNVUmVzb3VyY2VCdW5kbGUuVEFCTEUpeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHRtcFNldC5jb250YWlucyhrZXkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgYWRkIGlmIHdlIGRvbid0IGhhdmUgYWxyZWFkeQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nW10gc3RyaW5ncyA9IG5ldyBTdHJpbmdbOF07CisgICAgICAgICAgICAgICAgc3RyaW5nc1swXSA9IGtleTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBzdHJpbmdzWzFdID0gem9uZVRhYmxlLmdldFN0cmluZ1dpdGhGYWxsYmFjayhMT05HX1NUQU5EQVJEKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhyb3cgYXdheSB0aGUgZXhjZXB0aW9uICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NbMl0gPSB6b25lVGFibGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKFNIT1JUX1NUQU5EQVJEKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhyb3cgYXdheSB0aGUgZXhjZXB0aW9uICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NbM10gPSB6b25lVGFibGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKExPTkdfREFZTElHSFQpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBhd2F5IHRoZSBleGNlcHRpb24gICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nc1s0XSA9IHpvbmVUYWJsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soU0hPUlRfREFZTElHSFQpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICAvLyAgdGhyb3cgYXdheSB0aGUgZXhjZXB0aW9uICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY2l0eSA9IHpvbmVUYWJsZS5nZXRTdHJpbmdXaXRoRmFsbGJhY2soRVhFTVBMQVJfQ0lUWSk7CisgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NbNV0gPSBab25lTWV0YS5kaXNwbGF5RmFsbGJhY2soa2V5LCBjaXR5LCB0ZW1wTG9jYWxlKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhyb3cgYXdheSB0aGUgZXhjZXB0aW9uICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NbNl0gPSB6b25lVGFibGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKExPTkdfR0VORVJJQyk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRocm93IGF3YXkgdGhlIGV4Y2VwdGlvbiAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NbN10gPSB6b25lVGFibGUuZ2V0U3RyaW5nV2l0aEZhbGxiYWNrKFNIT1JUX0dFTkVSSUMpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBhd2F5IHRoZSBleGNlcHRpb24gICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdG1wTGlzdC5hZGQoc3RyaW5ncyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nW11bXSBhcnJheSA9IG5ldyBTdHJpbmdbdG1wTGlzdC5zaXplKCldWzhdOworICAgICAgICB0bXBMaXN0LnRvQXJyYXkoYXJyYXkpOworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgYXJyYXkgb2Ygem9uZSBzdHJpbmdzIGZvciB0aGUgY3VzdG9tIHpvbmUgc3RyaW5ncworICAgICAqLworICAgIHByaXZhdGUgWm9uZUl0ZW1JbmZvIGdldExvY2FsWm9uZUl0ZW1JbmZvKCkgeworICAgICAgICBpZiAobG9jYWxab25lSXRlbUluZm8gPT0gbnVsbCAmJiB6b25lU3RyaW5ncyAhPSBudWxsKSB7CisgICAgICAgICAgICBsb2NhbFpvbmVJdGVtSW5mbyA9IGdldFpvbmVJdGVtSW5mbyh6b25lU3RyaW5ncyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxvY2FsWm9uZUl0ZW1JbmZvOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBuZXcgWm9uZUl0ZW1JbmZvIGluc3RhbmNlIGZyb20gdGhlIGFycmF5IG9mIHRpbWUgem9uZQorICAgICAqIHN0cmluZ3MuCisgICAgICovCisgICAgcHJpdmF0ZSBab25lSXRlbUluZm8gZ2V0Wm9uZUl0ZW1JbmZvKFN0cmluZ1tdW10gc3RyaW5ncykgeworICAgICAgICBab25lSXRlbUluZm8gemlpID0gbmV3IFpvbmVJdGVtSW5mbygpOworICAgICAgICB6aWkudHpTdHJpbmdzID0gc3RyaW5nczsKKyAgICAgICAgemlpLnR6aWRNYXAgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICB6aWkudHpTdHJpbmdNYXAgPSBuZXcgVGV4dFRyaWVNYXAodHJ1ZSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RyaW5ncy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgU3RyaW5nIHppZCA9IHN0cmluZ3NbaV1bMF07CisgICAgICAgICAgICBpZiAoemlkICE9IG51bGwgJiYgemlkLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIHppaS50emlkTWFwLnB1dCh6aWQsIHN0cmluZ3NbaV0pOworICAgICAgICAgICAgICAgIGludCBuYW1lQ291bnQgPSBzdHJpbmdzW2ldLmxlbmd0aCA8IDggPyBzdHJpbmdzW2ldLmxlbmd0aCA6IDg7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPCBuYW1lQ291bnQ7IGorKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3RyaW5nc1tpXVtqXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXAgem9uZVN0cmluZ3MgYXJyYXkgaW5kZXggdG8gdGltZXpvbmUgbmFtZSB0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdHlwZSA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFRJTUVaT05FX0xPTkdfU1RBTkRBUkQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFRJTUVaT05FX1NIT1JUX1NUQU5EQVJEOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSBUSU1FWk9ORV9MT05HX0RBWUxJR0hUOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSBUSU1FWk9ORV9TSE9SVF9EQVlMSUdIVDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZUNvdW50ID09IDYgfHwgbmFtZUNvdW50ID09IDgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFRJTUVaT05FX0VYRU1QTEFSX0NJVFk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFRJTUVaT05FX0xPTkdfR0VORVJJQzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVDb3VudCA9PSA4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSBUSU1FWk9ORV9MT05HX0dFTkVSSUM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IFRJTUVaT05FX1NIT1JUX0dFTkVSSUM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSBUSU1FWk9ORV9TSE9SVF9HRU5FUklDOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBuZXZlciBvY2N1cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgWm9uZUl0ZW0gaXRlbSA9IG5ldyBab25lSXRlbSgpOworICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS56aWQgPSB6aWQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gc3RyaW5nc1tpXVtqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICB6aWkudHpTdHJpbmdNYXAucHV0KHN0cmluZ3NbaV1bal0sIGl0ZW0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB6aWk7CisgICAgfQorCisgICAgLyoqCisgICAgICogc2F2ZSB0aGUgaW5wdXQgbG9jYWxlCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlIHJlcXVlc3RlZExvY2FsZTsgCisgCisgICAgLyoqCisgICAgICogVGhlIHRyYW5zbGF0aW9uIHR5cGUgb2YgdGhlIHRyYW5zbGF0ZWQgem9uZSBzdHJpbmdzCisgICAgICogQGludGVybmFsIElDVSAzLjYKKyAgICAgKi8KKyAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nICAgU0hPUlRfR0VORVJJQyAgPSAic2ciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSE9SVF9TVEFOREFSRCA9ICJzcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIT1JUX0RBWUxJR0hUID0gInNkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE9OR19HRU5FUklDICAgPSAibGciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMT05HX1NUQU5EQVJEICA9ICJscyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExPTkdfREFZTElHSFQgID0gImxkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhFTVBMQVJfQ0lUWSAgPSAiZWMiOworICAgIC8qKgorICAgICAqIFRoZSB0cmFuc2xhdGlvbiB0eXBlIG9mIHRoZSB0cmFuc2xhdGVkIHpvbmUgc3RyaW5ncworICAgICAqIEBpbnRlcm5hbCBJQ1UgMy42CisgICAgICovCisgICAgIHN0YXRpYyBmaW5hbCBpbnQgICBUSU1FWk9ORV9TSE9SVF9HRU5FUklDICA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgICBUSU1FWk9ORV9TSE9SVF9TVEFOREFSRCA9IDEsCisgICAgICAgICAgICAgICAgICAgICAgICBUSU1FWk9ORV9TSE9SVF9EQVlMSUdIVCA9IDIsCisgICAgICAgICAgICAgICAgICAgICAgICBUSU1FWk9ORV9MT05HX0dFTkVSSUMgICA9IDMsCisgICAgICAgICAgICAgICAgICAgICAgICBUSU1FWk9ORV9MT05HX1NUQU5EQVJEICA9IDQsCisgICAgICAgICAgICAgICAgICAgICAgICBUSU1FWk9ORV9MT05HX0RBWUxJR0hUICA9IDUsCisgICAgICAgICAgICAgICAgICAgICAgICBUSU1FWk9ORV9FWEVNUExBUl9DSVRZICA9IDYsCisgICAgICAgICAgICAgICAgICAgICAgICBUSU1FWk9ORV9DT1VOVCAgICAgICAgICA9IDc7CisKKyAgICAgLyoqCisgICAgICogUGFja2FnZSBwcml2YXRlOiB1c2VkIGJ5IFNpbXBsZURhdGVGb3JtYXQKKyAgICAgKiBHZXRzIHRoZSBpbmRleCBmb3IgdGhlIGdpdmVuIHRpbWUgem9uZSBJRCB0byBvYnRhaW4gdGhlIHRpbWV6b25lCisgICAgICogc3RyaW5ncyBmb3IgZm9ybWF0dGluZy4gVGhlIHRpbWUgem9uZSBJRCBpcyBqdXN0IGZvciBwcm9ncmFtbWF0aWMKKyAgICAgKiBsb29rdXAuIE5PVCBMT0NBTElaRUQhISEKKyAgICAgKiBAcGFyYW0gSUQgdGhlIGdpdmVuIHRpbWUgem9uZSBJRC4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZ2l2ZW4gdGltZSB6b25lIElELiAgUmV0dXJucyAtMSBpZgorICAgICAqIHRoZSBnaXZlbiB0aW1lIHpvbmUgSUQgY2FuJ3QgYmUgbG9jYXRlZCBpbiB0aGUgRGF0ZUZvcm1hdFN5bWJvbHMgb2JqZWN0LgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5TaW1wbGVUaW1lWm9uZQorICAgICAqLworICAgIGZpbmFsIGludCBnZXRab25lSW5kZXgoU3RyaW5nIElEKSB7CisgICAgICAgIGludCByZXN1bHQgPSBfZ2V0Wm9uZUluZGV4KElEKTsKKyAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIC8vIERvIGEgc2VhcmNoIHRocm91Z2ggdGhlIGVxdWl2YWxlbmN5IGdyb3VwIGZvciB0aGUgZ2l2ZW4gSUQKKyAgICAgICAgaW50IG4gPSBab25lTWV0YS5jb3VudEVxdWl2YWxlbnRJRHMoSUQpOworICAgICAgICBpZiAobiA+IDEpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZXF1aXZJRCA9IFpvbmVNZXRhLmdldEVxdWl2YWxlbnRJRChJRCwgaSk7CisgICAgICAgICAgICAgICAgaWYgKCFlcXVpdklELmVxdWFscyhJRCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVxdWl2UmVzdWx0ID0gX2dldFpvbmVJbmRleChlcXVpdklEKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVxdWl2UmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcXVpdlJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIExvb2t1cCB0aGUgZ2l2ZW4gSUQuICBEbyBOT1QgZG8gYW4gZXF1aXZhbGVuY3kgc2VhcmNoLgorICAgICAqLworICAgIHByaXZhdGUgaW50IF9nZXRab25lSW5kZXgoU3RyaW5nIElEKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaW5kZXg9MDsgaW5kZXg8em9uZVN0cmluZ3MubGVuZ3RoOyBpbmRleCsrKSB7CisgICAgICAgICAgICBpZiAoSUQuZXF1YWxzSWdub3JlQ2FzZSh6b25lU3RyaW5nc1tpbmRleF1bMF0pKSByZXR1cm4gaW5kZXg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsb25lcyBhbiBhcnJheSBvZiBTdHJpbmdzLgorICAgICAqIEBwYXJhbSBzcmNBcnJheSB0aGUgc291cmNlIGFycmF5IHRvIGJlIGNsb25lZC4KKyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgZ2l2ZW4gc291cmNlIGFycmF5LgorICAgICAqIEByZXR1cm4gYSBjbG9uZWQgYXJyYXkuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdbXSBkdXBsaWNhdGUoU3RyaW5nW10gc3JjQXJyYXkpCisgICAgeworICAgICAgICByZXR1cm4gKFN0cmluZ1tdKXNyY0FycmF5LmNsb25lKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCBTdHJpbmdbXVtdIGR1cGxpY2F0ZShTdHJpbmdbXVtdIHNyY0FycmF5KQorICAgIHsKKyAgICAgICAgU3RyaW5nW11bXSBhQ29weSA9IG5ldyBTdHJpbmdbc3JjQXJyYXkubGVuZ3RoXVtdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNyY0FycmF5Lmxlbmd0aDsgKytpKQorICAgICAgICAgICAgYUNvcHlbaV0gPSBkdXBsaWNhdGUoc3JjQXJyYXlbaV0pOworICAgICAgICByZXR1cm4gYUNvcHk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xvbmVzIGFsbCB0aGUgZGF0YSBtZW1iZXJzIGZyb20gdGhlIHNvdXJjZSBEYXRlRm9ybWF0U3ltYm9scyB0bworICAgICAqIHRoZSB0YXJnZXQgRGF0ZUZvcm1hdFN5bWJvbHMuIFRoaXMgaXMgb25seSBmb3Igc3ViY2xhc3Nlcy4KKyAgICAgKiBAcGFyYW0gc3JjIHRoZSBzb3VyY2UgRGF0ZUZvcm1hdFN5bWJvbHMuCisgICAgICogQHBhcmFtIGRzdCB0aGUgdGFyZ2V0IERhdGVGb3JtYXRTeW1ib2xzLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBjb3B5TWVtYmVycyhEYXRlRm9ybWF0U3ltYm9scyBzcmMsIERhdGVGb3JtYXRTeW1ib2xzIGRzdCkKKyAgICB7CisgICAgICAgIGRzdC5lcmFzID0gZHVwbGljYXRlKHNyYy5lcmFzKTsKKyAgICAgICAgZHN0LmVyYU5hbWVzID0gZHVwbGljYXRlKHNyYy5lcmFOYW1lcyk7CisgICAgICAgIGRzdC5tb250aHMgPSBkdXBsaWNhdGUoc3JjLm1vbnRocyk7CisgICAgICAgIGRzdC5zaG9ydE1vbnRocyA9IGR1cGxpY2F0ZShzcmMuc2hvcnRNb250aHMpOworICAgICAgICBkc3QubmFycm93TW9udGhzID0gZHVwbGljYXRlKHNyYy5uYXJyb3dNb250aHMpOworICAgICAgICBkc3Quc3RhbmRhbG9uZU1vbnRocyA9IGR1cGxpY2F0ZShzcmMuc3RhbmRhbG9uZU1vbnRocyk7CisgICAgICAgIGRzdC5zdGFuZGFsb25lU2hvcnRNb250aHMgPSBkdXBsaWNhdGUoc3JjLnN0YW5kYWxvbmVTaG9ydE1vbnRocyk7CisgICAgICAgIGRzdC5zdGFuZGFsb25lTmFycm93TW9udGhzID0gZHVwbGljYXRlKHNyYy5zdGFuZGFsb25lTmFycm93TW9udGhzKTsKKyAgICAgICAgZHN0LndlZWtkYXlzID0gZHVwbGljYXRlKHNyYy53ZWVrZGF5cyk7CisgICAgICAgIGRzdC5zaG9ydFdlZWtkYXlzID0gZHVwbGljYXRlKHNyYy5zaG9ydFdlZWtkYXlzKTsKKyAgICAgICAgZHN0Lm5hcnJvd1dlZWtkYXlzID0gZHVwbGljYXRlKHNyYy5uYXJyb3dXZWVrZGF5cyk7CisgICAgICAgIGRzdC5zdGFuZGFsb25lV2Vla2RheXMgPSBkdXBsaWNhdGUoc3JjLnN0YW5kYWxvbmVXZWVrZGF5cyk7CisgICAgICAgIGRzdC5zdGFuZGFsb25lU2hvcnRXZWVrZGF5cyA9IGR1cGxpY2F0ZShzcmMuc3RhbmRhbG9uZVNob3J0V2Vla2RheXMpOworICAgICAgICBkc3Quc3RhbmRhbG9uZU5hcnJvd1dlZWtkYXlzID0gZHVwbGljYXRlKHNyYy5zdGFuZGFsb25lTmFycm93V2Vla2RheXMpOworICAgICAgICBkc3QuYW1wbXMgPSBkdXBsaWNhdGUoc3JjLmFtcG1zKTsKKyAgICAgICAgaWYgKHNyYy56b25lU3RyaW5ncyAhPSBudWxsKSB7CisgICAgICAgICAgICBkc3Quem9uZVN0cmluZ3MgPSBkdXBsaWNhdGUoc3JjLnpvbmVTdHJpbmdzKTsKKyAgICAgICAgfQorICAgICAgICBkc3QucmVxdWVzdGVkTG9jYWxlID0gbmV3IFVMb2NhbGUoc3JjLnJlcXVlc3RlZExvY2FsZS50b1N0cmluZygpKTsKKyAgICAgICAgZHN0LmxvY2FsUGF0dGVybkNoYXJzID0gbmV3IFN0cmluZyAoc3JjLmxvY2FsUGF0dGVybkNoYXJzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgZXF1YWxpdHkgb2YgdGhlIHR3byBhcnJheXMgb2YgU3RyaW5nLgorICAgICAqIEBwYXJhbSBjdXJyZW50IHRoaXMgU3RyaW5nIGFycmF5LgorICAgICAqIEBwYXJhbSBvdGhlciB0aGF0IFN0cmluZyBhcnJheS4KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gZXF1YWxzKFN0cmluZ1tdIGN1cnJlbnQsIFN0cmluZ1tdIG90aGVyKQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ID0gY3VycmVudC5sZW5ndGg7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQorICAgICAgICAgICAgaWYgKCFjdXJyZW50W2ldLmVxdWFscyhvdGhlcltpXSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgICovCisKKyAgICAvL35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworICAgIC8qKgorICAgICAqIEdldCB0aGUge0BsaW5rIERhdGVGb3JtYXRTeW1ib2xzfSBvYmplY3QgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBmb3JtYXQgYQorICAgICAqIGNhbGVuZGFyIHN5c3RlbSdzIGRhdGVzIGluIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPjxicj4KKyAgICAgKiBXaGVuIGNyZWF0aW5nIGEgbmV3IENhbGVuZGFyIHN1YmNsYXNzLCB5b3UgbXVzdCBjcmVhdGUgdGhlCisgICAgICoge0BsaW5rIFJlc291cmNlQnVuZGxlIFJlc291cmNlQnVuZGxlfQorICAgICAqIGNvbnRhaW5pbmcgaXRzIHtAbGluayBEYXRlRm9ybWF0U3ltYm9scyBEYXRlRm9ybWF0U3ltYm9sc30gaW4gYSBzcGVjaWZpYyBwbGFjZS4KKyAgICAgKiBUaGUgcmVzb3VyY2UgYnVuZGxlIG5hbWUgaXMgYmFzZWQgb24gdGhlIGNhbGVuZGFyJ3MgZnVsbHktc3BlY2lmaWVkCisgICAgICogY2xhc3MgbmFtZSwgd2l0aCAiLnJlc291cmNlcyIgaW5zZXJ0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgcGFja2FnZSBuYW1lCisgICAgICogKGp1c3QgYmVmb3JlIHRoZSBjbGFzcyBuYW1lKSBhbmQgIlN5bWJvbHMiIGFwcGVuZGVkIHRvIHRoZSBlbmQuCisgICAgICogRm9yIGV4YW1wbGUsIHRoZSBidW5kbGUgY29ycmVzcG9uZGluZyB0byAiY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhciIKKyAgICAgKiBpcyAiY29tLmlibS5pY3UuaW1wbC5kYXRhLkhlYnJld0NhbGVuZGFyU3ltYm9scyIuCisgICAgICogPHA+CisgICAgICogV2l0aGluIHRoZSBSZXNvdXJjZUJ1bmRsZSwgdGhpcyBtZXRob2Qgc2VhcmNoZXMgZm9yIGZpdmUga2V5czoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPkRheU5hbWVzPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBzdHJpbmdzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb3NzaWJsZQorICAgICAqICAgICAgdmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZC4gIEV2ZW4gdGhvdWdoCisgICAgICogICAgICA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gc3RhcnRzIHdpdGggPGNvZGU+U1VOREFZPC9jb2RlPiA9IDEsCisgICAgICogICAgICBUaGlzIGFycmF5IGlzIDAtYmFzZWQ7IHRoZSBuYW1lIGZvciBTdW5kYXkgZ29lcyBpbiB0aGUKKyAgICAgKiAgICAgIGZpcnN0IHBvc2l0aW9uLCBhdCBpbmRleCAwLiAgSWYgdGhpcyBrZXkgaXMgbm90IGZvdW5kCisgICAgICogICAgICBpbiB0aGUgYnVuZGxlLCB0aGUgZGF5IG5hbWVzIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgICAgKiAgICAgIGRlZmF1bHQgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvciB0aGUgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKgorICAgICAqIDxsaT48Yj5EYXlBYmJyZXZpYXRpb25zPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBkYXkgbmFtZXMgY29ycmVzcG9uZGluZworICAgICAqICAgICAgdG8gdGhlIHZhbHVlcyBpbiB0aGUgIkRheU5hbWVzIiBhcnJheS4gIElmIHRoaXMga2V5CisgICAgICogICAgICBpcyBub3QgZm91bmQgaW4gdGhlIHJlc291cmNlIGJ1bmRsZSwgdGhlICJEYXlOYW1lcyIKKyAgICAgKiAgICAgIHZhbHVlcyBhcmUgdXNlZCBpbnN0ZWFkLiAgSWYgbmVpdGhlciBrZXkgaXMgZm91bmQsCisgICAgICogICAgICB0aGUgZGF5IGFiYnJldmlhdGlvbnMgYXJlIGluaGVyaXRlZCBmcm9tIHRoZSBkZWZhdWx0CisgICAgICogICAgICA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gZm9yIHRoZSBsb2NhbGUuCisgICAgICoKKyAgICAgKiA8bGk+PGI+TW9udGhOYW1lczwvYj4gLQorICAgICAqICAgICAgQW4gYXJyYXkgb2Ygc3RyaW5ncyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9zc2libGUKKyAgICAgKiAgICAgIHZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQuICBJZiB0aGlzIGtleSBpcyBub3QgZm91bmQKKyAgICAgKiAgICAgIGluIHRoZSBidW5kbGUsIHRoZSBtb250aCBuYW1lcyBhcmUgaW5oZXJpdGVkIGZyb20gdGhlCisgICAgICogICAgICBkZWZhdWx0IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBmb3IgdGhlIHJlcXVlc3RlZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiA8bGk+PGI+TW9udGhBYmJyZXZpYXRpb25zPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBkYXkgbmFtZXMgY29ycmVzcG9uZGluZworICAgICAqICAgICAgdG8gdGhlIHZhbHVlcyBpbiB0aGUgIk1vbnRoTmFtZXMiIGFycmF5LiAgSWYgdGhpcyBrZXkKKyAgICAgKiAgICAgIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLCB0aGUgIk1vbnRoTmFtZXMiCisgICAgICogICAgICB2YWx1ZXMgYXJlIHVzZWQgaW5zdGVhZC4gIElmIG5laXRoZXIga2V5IGlzIGZvdW5kLAorICAgICAqICAgICAgdGhlIGRheSBhYmJyZXZpYXRpb25zIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUgZGVmYXVsdAorICAgICAqICAgICAgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvciB0aGUgbG9jYWxlLgorICAgICAqCisgICAgICogPGxpPjxiPkVyYXM8L2I+IC0KKyAgICAgKiAgICAgIEFuIGFycmF5IG9mIHN0cmluZ3MgY29ycmVzcG9uZGluZyB0byBlYWNoIHBvc3NpYmxlCisgICAgICogICAgICB2YWx1ZSBvZiB0aGUgPGNvZGU+RVJBPC9jb2RlPiBmaWVsZC4gIElmIHRoaXMga2V5IGlzIG5vdCBmb3VuZAorICAgICAqICAgICAgaW4gdGhlIGJ1bmRsZSwgdGhlIGVyYSBuYW1lcyBhcmUgaW5oZXJpdGVkIGZyb20gdGhlCisgICAgICogICAgICBkZWZhdWx0IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBmb3IgdGhlIHJlcXVlc3RlZCBsb2NhbGUuCisgICAgICogPC91bD4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgICAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gd2hvc2UgZGF0ZSBmb3JtYXQgc3ltYm9scyBhcmUgZGVzaXJlZC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlICAgIFRoZSBsb2NhbGUgd2hvc2Ugc3ltYm9scyBhcmUgZGVzaXJlZC4KKyAgICAgKgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdFN5bWJvbHMjRGF0ZUZvcm1hdFN5bWJvbHMoamF2YS51dGlsLkxvY2FsZSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIgY2FsLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIGluaXRpYWxpemVEYXRhKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSksIGNhbC5nZXRUeXBlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUge0BsaW5rIERhdGVGb3JtYXRTeW1ib2xzfSBvYmplY3QgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBmb3JtYXQgYQorICAgICAqIGNhbGVuZGFyIHN5c3RlbSdzIGRhdGVzIGluIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPjxicj4KKyAgICAgKiBXaGVuIGNyZWF0aW5nIGEgbmV3IENhbGVuZGFyIHN1YmNsYXNzLCB5b3UgbXVzdCBjcmVhdGUgdGhlCisgICAgICoge0BsaW5rIFJlc291cmNlQnVuZGxlIFJlc291cmNlQnVuZGxlfQorICAgICAqIGNvbnRhaW5pbmcgaXRzIHtAbGluayBEYXRlRm9ybWF0U3ltYm9scyBEYXRlRm9ybWF0U3ltYm9sc30gaW4gYSBzcGVjaWZpYyBwbGFjZS4KKyAgICAgKiBUaGUgcmVzb3VyY2UgYnVuZGxlIG5hbWUgaXMgYmFzZWQgb24gdGhlIGNhbGVuZGFyJ3MgZnVsbHktc3BlY2lmaWVkCisgICAgICogY2xhc3MgbmFtZSwgd2l0aCAiLnJlc291cmNlcyIgaW5zZXJ0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgcGFja2FnZSBuYW1lCisgICAgICogKGp1c3QgYmVmb3JlIHRoZSBjbGFzcyBuYW1lKSBhbmQgIlN5bWJvbHMiIGFwcGVuZGVkIHRvIHRoZSBlbmQuCisgICAgICogRm9yIGV4YW1wbGUsIHRoZSBidW5kbGUgY29ycmVzcG9uZGluZyB0byAiY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhciIKKyAgICAgKiBpcyAiY29tLmlibS5pY3UuaW1wbC5kYXRhLkhlYnJld0NhbGVuZGFyU3ltYm9scyIuCisgICAgICogPHA+CisgICAgICogV2l0aGluIHRoZSBSZXNvdXJjZUJ1bmRsZSwgdGhpcyBtZXRob2Qgc2VhcmNoZXMgZm9yIGZpdmUga2V5czoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPkRheU5hbWVzPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBzdHJpbmdzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb3NzaWJsZQorICAgICAqICAgICAgdmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZC4gIEV2ZW4gdGhvdWdoCisgICAgICogICAgICA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gc3RhcnRzIHdpdGggPGNvZGU+U1VOREFZPC9jb2RlPiA9IDEsCisgICAgICogICAgICBUaGlzIGFycmF5IGlzIDAtYmFzZWQ7IHRoZSBuYW1lIGZvciBTdW5kYXkgZ29lcyBpbiB0aGUKKyAgICAgKiAgICAgIGZpcnN0IHBvc2l0aW9uLCBhdCBpbmRleCAwLiAgSWYgdGhpcyBrZXkgaXMgbm90IGZvdW5kCisgICAgICogICAgICBpbiB0aGUgYnVuZGxlLCB0aGUgZGF5IG5hbWVzIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgICAgKiAgICAgIGRlZmF1bHQgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvciB0aGUgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKgorICAgICAqIDxsaT48Yj5EYXlBYmJyZXZpYXRpb25zPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBkYXkgbmFtZXMgY29ycmVzcG9uZGluZworICAgICAqICAgICAgdG8gdGhlIHZhbHVlcyBpbiB0aGUgIkRheU5hbWVzIiBhcnJheS4gIElmIHRoaXMga2V5CisgICAgICogICAgICBpcyBub3QgZm91bmQgaW4gdGhlIHJlc291cmNlIGJ1bmRsZSwgdGhlICJEYXlOYW1lcyIKKyAgICAgKiAgICAgIHZhbHVlcyBhcmUgdXNlZCBpbnN0ZWFkLiAgSWYgbmVpdGhlciBrZXkgaXMgZm91bmQsCisgICAgICogICAgICB0aGUgZGF5IGFiYnJldmlhdGlvbnMgYXJlIGluaGVyaXRlZCBmcm9tIHRoZSBkZWZhdWx0CisgICAgICogICAgICA8Y29kZT5EYXRlRm9ybWF0U3ltYm9sczwvY29kZT4gZm9yIHRoZSBsb2NhbGUuCisgICAgICoKKyAgICAgKiA8bGk+PGI+TW9udGhOYW1lczwvYj4gLQorICAgICAqICAgICAgQW4gYXJyYXkgb2Ygc3RyaW5ncyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9zc2libGUKKyAgICAgKiAgICAgIHZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQuICBJZiB0aGlzIGtleSBpcyBub3QgZm91bmQKKyAgICAgKiAgICAgIGluIHRoZSBidW5kbGUsIHRoZSBtb250aCBuYW1lcyBhcmUgaW5oZXJpdGVkIGZyb20gdGhlCisgICAgICogICAgICBkZWZhdWx0IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBmb3IgdGhlIHJlcXVlc3RlZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiA8bGk+PGI+TW9udGhBYmJyZXZpYXRpb25zPC9iPiAtCisgICAgICogICAgICBBbiBhcnJheSBvZiBhYmJyZXZpYXRlZCBkYXkgbmFtZXMgY29ycmVzcG9uZGluZworICAgICAqICAgICAgdG8gdGhlIHZhbHVlcyBpbiB0aGUgIk1vbnRoTmFtZXMiIGFycmF5LiAgSWYgdGhpcyBrZXkKKyAgICAgKiAgICAgIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLCB0aGUgIk1vbnRoTmFtZXMiCisgICAgICogICAgICB2YWx1ZXMgYXJlIHVzZWQgaW5zdGVhZC4gIElmIG5laXRoZXIga2V5IGlzIGZvdW5kLAorICAgICAqICAgICAgdGhlIGRheSBhYmJyZXZpYXRpb25zIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUgZGVmYXVsdAorICAgICAqICAgICAgPGNvZGU+RGF0ZUZvcm1hdFN5bWJvbHM8L2NvZGU+IGZvciB0aGUgbG9jYWxlLgorICAgICAqCisgICAgICogPGxpPjxiPkVyYXM8L2I+IC0KKyAgICAgKiAgICAgIEFuIGFycmF5IG9mIHN0cmluZ3MgY29ycmVzcG9uZGluZyB0byBlYWNoIHBvc3NpYmxlCisgICAgICogICAgICB2YWx1ZSBvZiB0aGUgPGNvZGU+RVJBPC9jb2RlPiBmaWVsZC4gIElmIHRoaXMga2V5IGlzIG5vdCBmb3VuZAorICAgICAqICAgICAgaW4gdGhlIGJ1bmRsZSwgdGhlIGVyYSBuYW1lcyBhcmUgaW5oZXJpdGVkIGZyb20gdGhlCisgICAgICogICAgICBkZWZhdWx0IDxjb2RlPkRhdGVGb3JtYXRTeW1ib2xzPC9jb2RlPiBmb3IgdGhlIHJlcXVlc3RlZCBsb2NhbGUuCisgICAgICogPC91bD4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gY2FsICAgICAgIFRoZSBjYWxlbmRhciBzeXN0ZW0gd2hvc2UgZGF0ZSBmb3JtYXQgc3ltYm9scyBhcmUgZGVzaXJlZC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlICAgIFRoZSB1bG9jYWxlIHdob3NlIHN5bWJvbHMgYXJlIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXRTeW1ib2xzI0RhdGVGb3JtYXRTeW1ib2xzKGphdmEudXRpbC5Mb2NhbGUpCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIgY2FsLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBpbml0aWFsaXplRGF0YShsb2NhbGUsIGNhbC5nZXRUeXBlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFZhcmlhbnQgb2YgRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIsIExvY2FsZSkgdGhhdCB0YWtlcyB0aGUgQ2FsZW5kYXIgY2xhc3MKKyAgICAgKiBpbnN0ZWFkIG9mIGEgQ2FsYW5kYXIgaW5zdGFuY2UuCisgICAgICogQHNlZSAjRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIsIExvY2FsZSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoQ2xhc3MgY2FsZW5kYXJDbGFzcywgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzKGNhbGVuZGFyQ2xhc3MsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFZhcmlhbnQgb2YgRGF0ZUZvcm1hdFN5bWJvbHMoQ2FsZW5kYXIsIFVMb2NhbGUpIHRoYXQgdGFrZXMgdGhlIENhbGVuZGFyIGNsYXNzCisgICAgICogaW5zdGVhZCBvZiBhIENhbGFuZGFyIGluc3RhbmNlLgorICAgICAqIEBzZWUgI0RhdGVGb3JtYXRTeW1ib2xzKENhbGVuZGFyLCBMb2NhbGUpCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoQ2xhc3MgY2FsZW5kYXJDbGFzcywgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgU3RyaW5nIGZ1bGxOYW1lID0gY2FsZW5kYXJDbGFzcy5nZXROYW1lKCk7CisgICAgICAgIGludCBsYXN0RG90ID0gZnVsbE5hbWUubGFzdEluZGV4T2YoJy4nKTsKKyAgICAgICAgU3RyaW5nIGNsYXNzTmFtZSA9IGZ1bGxOYW1lLnN1YnN0cmluZyhsYXN0RG90KzEpOworICAgICAgICBTdHJpbmcgY2FsVHlwZSA9IFV0aWxpdHkucmVwbGFjZUFsbChjbGFzc05hbWUsICJDYWxlbmRhciIsICIiKS50b0xvd2VyQ2FzZSgpOworICAgICAgICAKKyAgICAgICAgaW5pdGlhbGl6ZURhdGEobG9jYWxlLCBjYWxUeXBlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGZXRjaCBhIGN1c3RvbSBjYWxlbmRhcidzIERhdGVGb3JtYXRTeW1ib2xzIG91dCBvZiB0aGUgZ2l2ZW4gcmVzb3VyY2UKKyAgICAgKiBidW5kbGUuICBTeW1ib2xzIHRoYXQgYXJlIG5vdCBvdmVycmlkZGVuIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgICAgKiBkZWZhdWx0IERhdGVGb3JtYXRTeW1ib2xzIGZvciB0aGUgbG9jYWxlLgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdFN5bWJvbHMjRGF0ZUZvcm1hdFN5bWJvbHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdFN5bWJvbHMoUmVzb3VyY2VCdW5kbGUgYnVuZGxlLCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMoYnVuZGxlLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGZXRjaCBhIGN1c3RvbSBjYWxlbmRhcidzIERhdGVGb3JtYXRTeW1ib2xzIG91dCBvZiB0aGUgZ2l2ZW4gcmVzb3VyY2UKKyAgICAgKiBidW5kbGUuICBTeW1ib2xzIHRoYXQgYXJlIG5vdCBvdmVycmlkZGVuIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgICAgKiBkZWZhdWx0IERhdGVGb3JtYXRTeW1ib2xzIGZvciB0aGUgbG9jYWxlLgorICAgICAqIEBzZWUgRGF0ZUZvcm1hdFN5bWJvbHMjRGF0ZUZvcm1hdFN5bWJvbHMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyhSZXNvdXJjZUJ1bmRsZSBidW5kbGUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIGluaXRpYWxpemVEYXRhKGxvY2FsZSwgCisgICAgICAgICAgICBuZXcgQ2FsZW5kYXJEYXRhKChJQ1VSZXNvdXJjZUJ1bmRsZSlidW5kbGUsIG51bGwpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBSZXNvdXJjZUJ1bmRsZSBjb250YWluaW5nIHRoZSBkYXRlIGZvcm1hdCBpbmZvcm1hdGlvbiBmb3IKKyAgICAgKiBhIHNwZWNpZmllZCBjYWxlbmRhciBzdWJjbGFzcyBpbiBhIGdpdmVuIGxvY2FsZS4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgcmVzb3VyY2UgYnVuZGxlIG5hbWUgaXMgYmFzZWQgb24gdGhlIGNhbGVuZGFyJ3MgZnVsbHktc3BlY2lmaWVkCisgICAgICogY2xhc3MgbmFtZSwgd2l0aCAiLnJlc291cmNlcyIgaW5zZXJ0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgcGFja2FnZSBuYW1lCisgICAgICogKGp1c3QgYmVmb3JlIHRoZSBjbGFzcyBuYW1lKSBhbmQgIlN5bWJvbHMiIGFwcGVuZGVkIHRvIHRoZSBlbmQuCisgICAgICogRm9yIGV4YW1wbGUsIHRoZSBidW5kbGUgY29ycmVzcG9uZGluZyB0byAiY29tLmlibS5pY3UudXRpbC5IZWJyZXdDYWxlbmRhciIKKyAgICAgKiBpcyAiY29tLmlibS5pY3UuaW1wbC5kYXRhLkhlYnJld0NhbGVuZGFyU3ltYm9scyIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBSZXNvdXJjZUJ1bmRsZSBnZXREYXRlRm9ybWF0QnVuZGxlKENsYXNzIGNhbGVuZGFyQ2xhc3MsIExvY2FsZSBsb2NhbGUpCisgICAgICAgIHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24geworICAgICAgICByZXR1cm4gZ2V0RGF0ZUZvcm1hdEJ1bmRsZShjYWxlbmRhckNsYXNzLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEZpbmQgdGhlIFJlc291cmNlQnVuZGxlIGNvbnRhaW5pbmcgdGhlIGRhdGUgZm9ybWF0IGluZm9ybWF0aW9uIGZvcgorICAgICAqIGEgc3BlY2lmaWVkIGNhbGVuZGFyIHN1YmNsYXNzIGluIGEgZ2l2ZW4gbG9jYWxlLgorICAgICAqIDxwPgorICAgICAqIFRoZSByZXNvdXJjZSBidW5kbGUgbmFtZSBpcyBiYXNlZCBvbiB0aGUgY2FsZW5kYXIncyBmdWxseS1zcGVjaWZpZWQKKyAgICAgKiBjbGFzcyBuYW1lLCB3aXRoICIucmVzb3VyY2VzIiBpbnNlcnRlZCBhdCB0aGUgZW5kIG9mIHRoZSBwYWNrYWdlIG5hbWUKKyAgICAgKiAoanVzdCBiZWZvcmUgdGhlIGNsYXNzIG5hbWUpIGFuZCAiU3ltYm9scyIgYXBwZW5kZWQgdG8gdGhlIGVuZC4KKyAgICAgKiBGb3IgZXhhbXBsZSwgdGhlIGJ1bmRsZSBjb3JyZXNwb25kaW5nIHRvICJjb20uaWJtLmljdS51dGlsLkhlYnJld0NhbGVuZGFyIgorICAgICAqIGlzICJjb20uaWJtLmljdS5pbXBsLmRhdGEuSGVicmV3Q2FsZW5kYXJTeW1ib2xzIi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgUmVzb3VyY2VCdW5kbGUgZ2V0RGF0ZUZvcm1hdEJ1bmRsZShDbGFzcyBjYWxlbmRhckNsYXNzLCBVTG9jYWxlIGxvY2FsZSkKKyAgICAgICAgdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICAvLyBGaW5kIHRoZSBjYWxlbmRhcidzIGNsYXNzIG5hbWUsIHdoaWNoIHdlJ3JlIGdvaW5nIHRvIHVzZSB0byBjb25zdHJ1Y3QgdGhlCisgICAgICAgIC8vIHJlc291cmNlIGJ1bmRsZSBuYW1lLgorICAgICAgICBTdHJpbmcgZnVsbE5hbWUgPSBjYWxlbmRhckNsYXNzLmdldE5hbWUoKTsKKyAgICAgICAgaW50IGxhc3REb3QgPSBmdWxsTmFtZS5sYXN0SW5kZXhPZignLicpOworICAgICAgICBTdHJpbmcgY2xhc3NOYW1lID0gZnVsbE5hbWUuc3Vic3RyaW5nKGxhc3REb3QrMSk7CisKKyAgICAgICAgU3RyaW5nIGJ1bmRsZU5hbWUgPSBjbGFzc05hbWUgKyAiU3ltYm9scyI7CisKKyAgICAgICAgVVJlc291cmNlQnVuZGxlIHJlc3VsdCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoYnVuZGxlTmFtZSwgbG9jYWxlKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIC8vIGNvdmVyYWdlIHJlcXVpcmVzIHRlc3Qgd2l0aG91dCBkYXRhLCBzbyBza2lwCisgICAgICAgICAgICAvL2lmICghKGNhbCBpbnN0YW5jZW9mIEdyZWdvcmlhbkNhbGVuZGFyKSkgeworICAgICAgICAgICAgaWYgKCEoR3JlZ29yaWFuQ2FsZW5kYXIuY2xhc3MuaXNBc3NpZ25hYmxlRnJvbShjYWxlbmRhckNsYXNzKSkpIHsKKyAgICAgICAgICAgICAgICAvLyBPayBmb3Igc3ltYm9scyB0byBiZSBtaXNzaW5nIGZvciBhIEdyZWdvcmlhbiBjYWxlbmRhciwgYnV0CisgICAgICAgICAgICAgICAgLy8gbm90IGZvciBhbnkgb3RoZXIgdHlwZS4KKyAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBWYXJpYW50IG9mIGdldERhdGVGb3JtYXRCdW5kbGUoamF2YS5sYW5nLkNsYXNzLCBqYXZhLnV0aWwuTG9jYWxlKSB0aGF0IHRha2VzCisgICAgICogYSBDYWxlbmRhciBpbnN0YW5jZSBpbnN0ZWFkIG9mIGEgQ2FsZW5kYXIgY2xhc3MuCisgICAgICogQHNlZSAjZ2V0RGF0ZUZvcm1hdEJ1bmRsZShqYXZhLmxhbmcuQ2xhc3MsIGphdmEudXRpbC5Mb2NhbGUpCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBnZXREYXRlRm9ybWF0QnVuZGxlKENhbGVuZGFyIGNhbCwgTG9jYWxlIGxvY2FsZSkKKyAgICAgICAgdGhyb3dzIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBnZXREYXRlRm9ybWF0QnVuZGxlKGNhbC5nZXRDbGFzcygpLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVmFyaWFudCBvZiBnZXREYXRlRm9ybWF0QnVuZGxlKGphdmEubGFuZy5DbGFzcywgamF2YS51dGlsLkxvY2FsZSkgdGhhdCB0YWtlcworICAgICAqIGEgQ2FsZW5kYXIgaW5zdGFuY2UgaW5zdGVhZCBvZiBhIENhbGVuZGFyIGNsYXNzLgorICAgICAqIEBzZWUgI2dldERhdGVGb3JtYXRCdW5kbGUoamF2YS5sYW5nLkNsYXNzLCBqYXZhLnV0aWwuTG9jYWxlKQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBSZXNvdXJjZUJ1bmRsZSBnZXREYXRlRm9ybWF0QnVuZGxlKENhbGVuZGFyIGNhbCwgVUxvY2FsZSBsb2NhbGUpCisgICAgICAgIHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24geworICAgICAgICByZXR1cm4gZ2V0RGF0ZUZvcm1hdEJ1bmRsZShjYWwuZ2V0Q2xhc3MoKSwgbG9jYWxlKTsKKyAgICB9CisgICAgCisgICAgLy8gLS0tLS0tLS0gQkVHSU4gVUxvY2FsZSBib2lsZXJwbGF0ZSAtLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsb2NhbGUgdGhhdCB3YXMgdXNlZCB0byBjcmVhdGUgdGhpcyBvYmplY3QsIG9yIG51bGwuCisgICAgICogVGhpcyBtYXkgbWF5IGRpZmZlciBmcm9tIHRoZSBsb2NhbGUgcmVxdWVzdGVkIGF0IHRoZSB0aW1lIG9mCisgICAgICogdGhpcyBvYmplY3QncyBjcmVhdGlvbi4gIEZvciBleGFtcGxlLCBpZiBhbiBvYmplY3QgaXMgY3JlYXRlZAorICAgICAqIGZvciBsb2NhbGUgPHR0PmVuX1VTX0NBTElGT1JOSUE8L3R0PiwgdGhlIGFjdHVhbCBkYXRhIG1heSBiZQorICAgICAqIGRyYXduIGZyb20gPHR0PmVuPC90dD4gKHRoZSA8aT5hY3R1YWw8L2k+IGxvY2FsZSksIGFuZAorICAgICAqIDx0dD5lbl9VUzwvdHQ+IG1heSBiZSB0aGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgdGhhdCBleGlzdHMgKHRoZQorICAgICAqIDxpPnZhbGlkPC9pPiBsb2NhbGUpLgorICAgICAqCisgICAgICogPHA+Tm90ZTogVGhpcyBtZXRob2Qgd2lsbCBiZSBpbXBsZW1lbnRlZCBpbiBJQ1UgMy4wOyBJQ1UgMi44CisgICAgICogY29udGFpbnMgYSBwYXJ0aWFsIHByZXZpZXcgaW1wbGVtZW50YXRpb24uICBUaGUgKiA8aT5hY3R1YWw8L2k+CisgICAgICogbG9jYWxlIGlzIHJldHVybmVkIGNvcnJlY3RseSwgYnV0IHRoZSA8aT52YWxpZDwvaT4gbG9jYWxlIGlzCisgICAgICogbm90LCBpbiBtb3N0IGNhc2VzLgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgaW5mb3JtYXRpb24gcmVxdWVzdGVkLCBlaXRoZXIge0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRX0gb3Ige0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEV9LgorICAgICAqIEByZXR1cm4gdGhlIGluZm9ybWF0aW9uIHNwZWNpZmllZCBieSA8aT50eXBlPC9pPiwgb3IgbnVsbCBpZgorICAgICAqIHRoaXMgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YS4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVTG9jYWxlIGdldExvY2FsZShVTG9jYWxlLlR5cGUgdHlwZSkgeworICAgICAgICByZXR1cm4gdHlwZSA9PSBVTG9jYWxlLkFDVFVBTF9MT0NBTEUgPworICAgICAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgOiB0aGlzLnZhbGlkTG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYWxlcyB0aGF0IHdlcmUgdXNlZCB0byBjcmVhdGUgdGhpcworICAgICAqIG9iamVjdC4gIElmIHRoZSBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLAorICAgICAqIGJvdGggYXJndW1lbnRzIHNob3VsZCBiZSBzZXQgdG8gbnVsbC4gIE90aGVyd2lzZSwgbmVpdGhlcgorICAgICAqIHNob3VsZCBiZSBudWxsLiAgVGhlIGFjdHVhbCBsb2NhbGUgbXVzdCBiZSBhdCB0aGUgc2FtZSBsZXZlbCBvcgorICAgICAqIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLiAgVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQKKyAgICAgKiBmb3IgdXNlIGJ5IGZhY3RvcmllcyBvciBvdGhlciBlbnRpdGllcyB0aGF0IGNyZWF0ZSBvYmplY3RzIG9mCisgICAgICogdGhpcyBjbGFzcy4KKyAgICAgKiBAcGFyYW0gdmFsaWQgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlCisgICAgICogZGF0YSwgb3IgbnVsbAorICAgICAqIEBwYXJhbSBhY3R1YWwgdGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcworICAgICAqIG9iamVjdCwgb3IgbnVsbAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0TG9jYWxlKFVMb2NhbGUgdmFsaWQsIFVMb2NhbGUgYWN0dWFsKSB7CisgICAgICAgIC8vIENoYW5nZSB0aGUgZm9sbG93aW5nIHRvIGFuIGFzc2VydGlvbiBsYXRlcgorICAgICAgICBpZiAoKHZhbGlkID09IG51bGwpICE9IChhY3R1YWwgPT0gbnVsbCkpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgICAgIC8vIEFub3RoZXIgY2hlY2sgd2UgY291bGQgZG8gaXMgdGhhdCB0aGUgYWN0dWFsIGxvY2FsZSBpcyBhdAorICAgICAgICAvLyB0aGUgc2FtZSBsZXZlbCBvciBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4KKyAgICAgICAgdGhpcy52YWxpZExvY2FsZSA9IHZhbGlkOworICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA9IGFjdHVhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UgZGF0YSwgb3IgbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSB2YWxpZExvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMgb2JqZWN0LCBvcgorICAgICAqIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgYWN0dWFsTG9jYWxlOworCisgICAgLy8gLS0tLS0tLS0gRU5EIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40OTljOGU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjaW1hbEZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsNDUxMyBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLnRleHQuQ2hvaWNlRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5GaWVsZFBvc2l0aW9uOworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOworaW1wb3J0IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3lBbW91bnQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGlzIGEgY29uY3JldGUgc3ViY2xhc3Mgb2YKKyAqIHtAbGluayBOdW1iZXJGb3JtYXR9IHRoYXQgZm9ybWF0cyBkZWNpbWFsIG51bWJlcnMuIEl0IGhhcyBhIHZhcmlldHkgb2YKKyAqIGZlYXR1cmVzIGRlc2lnbmVkIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gcGFyc2UgYW5kIGZvcm1hdCBudW1iZXJzIGluIGFueQorICogbG9jYWxlLCBpbmNsdWRpbmcgc3VwcG9ydCBmb3IgV2VzdGVybiwgQXJhYmljLCBvciBJbmRpYyBkaWdpdHMuICBJdCBhbHNvCisgKiBzdXBwb3J0cyBkaWZmZXJlbnQgZmxhdm9ycyBvZiBudW1iZXJzLCBpbmNsdWRpbmcgaW50ZWdlcnMgKCIxMjMiKSwKKyAqIGZpeGVkLXBvaW50IG51bWJlcnMgKCIxMjMuNCIpLCBzY2llbnRpZmljIG5vdGF0aW9uICgiMS4yM0U0IiksIHBlcmNlbnRhZ2VzCisgKiAoIjEyJSIpLCBhbmQgY3VycmVuY3kgYW1vdW50cyAoIiQxMjMiKS4gIEFsbCBvZiB0aGVzZSBmbGF2b3JzIGNhbiBiZSBlYXNpbHkKKyAqIGxvY2FsaXplZC4KKyAqCisgKiA8cD48c3Ryb25nPlRoaXMgaXMgYW4gZW5oYW5jZWQgdmVyc2lvbiBvZiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiB0aGF0CisgKiBpcyBiYXNlZCBvbiB0aGUgc3RhbmRhcmQgdmVyc2lvbiBpbiB0aGUgSkRLLiAgTmV3IG9yIGNoYW5nZWQgZnVuY3Rpb25hbGl0eQorICogaXMgbGFiZWxlZAorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPiBvcgorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+Q0hBTkdFRDwvZm9udD48L3N0cm9uZz4uPC9zdHJvbmc+CisgKgorICogPHA+VG8gb2J0YWluIGEge0BsaW5rIE51bWJlckZvcm1hdH0gZm9yIGEgc3BlY2lmaWMgbG9jYWxlIChpbmNsdWRpbmcgdGhlCisgKiBkZWZhdWx0IGxvY2FsZSkgY2FsbCBvbmUgb2YgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPidzIGZhY3RvcnkgbWV0aG9kcyBzdWNoCisgKiBhcyB7QGxpbmsgTnVtYmVyRm9ybWF0I2dldEluc3RhbmNlfS4gRG8gbm90IGNhbGwgdGhlIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+CisgKiBjb25zdHJ1Y3RvcnMgZGlyZWN0bHksIHVubGVzcyB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcsIHNpbmNlIHRoZQorICoge0BsaW5rIE51bWJlckZvcm1hdH0gZmFjdG9yeSBtZXRob2RzIG1heSByZXR1cm4gc3ViY2xhc3NlcyBvdGhlciB0aGFuCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPi4gSWYgeW91IG5lZWQgdG8gY3VzdG9taXplIHRoZSBmb3JtYXQgb2JqZWN0LCBkbworICogc29tZXRoaW5nIGxpa2UgdGhpczoKKyAqCisgKiA8YmxvY2txdW90ZT48cHJlPgorICogTnVtYmVyRm9ybWF0IGYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobG9jKTsKKyAqIGlmIChmIGluc3RhbmNlb2YgRGVjaW1hbEZvcm1hdCkgeworICogICAgICgoRGVjaW1hbEZvcm1hdCkgZikuc2V0RGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duKHRydWUpOworICogfTwvcHJlPjwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD48c3Ryb25nPkV4YW1wbGUgVXNhZ2U8L3N0cm9uZz4KKyAqCisgKiA8YmxvY2txdW90ZT48cHJlPgorICogPHN0cm9uZz4vLyBQcmludCBvdXQgYSBudW1iZXIgdXNpbmcgdGhlIGxvY2FsaXplZCBudW1iZXIsIGN1cnJlbmN5LAorICogLy8gYW5kIHBlcmNlbnQgZm9ybWF0IGZvciBlYWNoIGxvY2FsZTwvc3Ryb25nPgorICogTG9jYWxlW10gbG9jYWxlcyA9IE51bWJlckZvcm1hdC5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgKiBkb3VibGUgbXlOdW1iZXIgPSAtMTIzNC41NjsKKyAqIE51bWJlckZvcm1hdCBmb3JtYXQ7CisgKiBmb3IgKGludCBqPTA7IGo8MzsgKytqKSB7CisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGT1JNQVQiKTsKKyAqICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAqICAgICAgICAgaWYgKGxvY2FsZXNbaV0uZ2V0Q291bnRyeSgpLmxlbmd0aCgpID09IDApIHsKKyAqICAgICAgICAgICAgLy8gU2tpcCBsYW5ndWFnZS1vbmx5IGxvY2FsZXMKKyAqICAgICAgICAgICAgY29udGludWU7CisgKiAgICAgICAgIH0KKyAqICAgICAgICAgU3lzdGVtLm91dC5wcmludChsb2NhbGVzW2ldLmdldERpc3BsYXlOYW1lKCkpOworICogICAgICAgICBzd2l0Y2ggKGopIHsKKyAqICAgICAgICAgY2FzZSAwOgorICogICAgICAgICAgICAgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGxvY2FsZXNbaV0pOyBicmVhazsKKyAqICAgICAgICAgY2FzZSAxOgorICogICAgICAgICAgICAgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UobG9jYWxlc1tpXSk7IGJyZWFrOworICogICAgICAgICBkZWZhdWx0OgorICogICAgICAgICAgICAgZm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZShsb2NhbGVzW2ldKTsgYnJlYWs7CisgKiAgICAgICAgIH0KKyAqICAgICAgICAgdHJ5IHsKKyAqICAgICAgICAgICAgIC8vIEFzc3VtZSBmb3JtYXQgaXMgYSBEZWNpbWFsRm9ybWF0CisgKiAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCI6ICIgKyAoKERlY2ltYWxGb3JtYXQpIGZvcm1hdCkudG9QYXR0ZXJuKCkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIC0+ICIgKyBmb3JtLmZvcm1hdChteU51bWJlcikpOworICogICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkge30KKyAqICAgICAgICAgdHJ5IHsKKyAqICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIC0+ICIgKyBmb3JtYXQucGFyc2UoZm9ybS5mb3JtYXQobXlOdW1iZXIpKSk7CisgKiAgICAgICAgIH0gY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGUpIHt9CisgKiAgICAgfQorICogfTwvcHJlPjwvYmxvY2txdW90ZT4KKyAqCisgKiA8aDQ+UGF0dGVybnM8L2g0PgorICoKKyAqIDxwPkEgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gY29uc2lzdHMgb2YgYSA8ZW0+cGF0dGVybjwvZW0+IGFuZCBhIHNldCBvZgorICogPGVtPnN5bWJvbHM8L2VtPi4gIFRoZSBwYXR0ZXJuIG1heSBiZSBzZXQgZGlyZWN0bHkgdXNpbmcKKyAqIHtAbGluayAjYXBwbHlQYXR0ZXJufSwgb3IgaW5kaXJlY3RseSB1c2luZyBvdGhlciBBUEkgbWV0aG9kcyB3aGljaAorICogbWFuaXB1bGF0ZSBhc3BlY3RzIG9mIHRoZSBwYXR0ZXJuLCBzdWNoIGFzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlZ2VyCisgKiBkaWdpdHMuICBUaGUgc3ltYm9scyBhcmUgc3RvcmVkIGluIGEge0BsaW5rIERlY2ltYWxGb3JtYXRTeW1ib2xzfQorICogb2JqZWN0LiAgV2hlbiB1c2luZyB0aGUge0BsaW5rIE51bWJlckZvcm1hdH0gZmFjdG9yeSBtZXRob2RzLCB0aGUKKyAqIHBhdHRlcm4gYW5kIHN5bWJvbHMgYXJlIHJlYWQgZnJvbSBJQ1UncyBsb2NhbGUgZGF0YS4KKyAqIAorICogPGg0PlNwZWNpYWwgUGF0dGVybiBDaGFyYWN0ZXJzPC9oND4KKyAqCisgKiA8cD5NYW55IGNoYXJhY3RlcnMgaW4gYSBwYXR0ZXJuIGFyZSB0YWtlbiBsaXRlcmFsbHk7IHRoZXkgYXJlIG1hdGNoZWQgZHVyaW5nCisgKiBwYXJzaW5nIGFuZCBvdXRwdXQgdW5jaGFuZ2VkIGR1cmluZyBmb3JtYXR0aW5nLiAgU3BlY2lhbCBjaGFyYWN0ZXJzLCBvbiB0aGUKKyAqIG90aGVyIGhhbmQsIHN0YW5kIGZvciBvdGhlciBjaGFyYWN0ZXJzLCBzdHJpbmdzLCBvciBjbGFzc2VzIG9mIGNoYXJhY3RlcnMuCisgKiBGb3IgZXhhbXBsZSwgdGhlICcjJyBjaGFyYWN0ZXIgaXMgcmVwbGFjZWQgYnkgYSBsb2NhbGl6ZWQgZGlnaXQuICBPZnRlbiB0aGUKKyAqIHJlcGxhY2VtZW50IGNoYXJhY3RlciBpcyB0aGUgc2FtZSBhcyB0aGUgcGF0dGVybiBjaGFyYWN0ZXI7IGluIHRoZSBVLlMuIGxvY2FsZSwKKyAqIHRoZSAnLCcgZ3JvdXBpbmcgY2hhcmFjdGVyIGlzIHJlcGxhY2VkIGJ5ICcsJy4gIEhvd2V2ZXIsIHRoZSByZXBsYWNlbWVudCBpcworICogc3RpbGwgaGFwcGVuaW5nLCBhbmQgaWYgdGhlIHN5bWJvbHMgYXJlIG1vZGlmaWVkLCB0aGUgZ3JvdXBpbmcgY2hhcmFjdGVyCisgKiBjaGFuZ2VzLiAgU29tZSBzcGVjaWFsIGNoYXJhY3RlcnMgYWZmZWN0IHRoZSBiZWhhdmlvciBvZiB0aGUgZm9ybWF0dGVyIGJ5CisgKiB0aGVpciBwcmVzZW5jZTsgZm9yIGV4YW1wbGUsIGlmIHRoZSBwZXJjZW50IGNoYXJhY3RlciBpcyBzZWVuLCB0aGVuIHRoZQorICogdmFsdWUgaXMgbXVsdGlwbGllZCBieSAxMDAgYmVmb3JlIGJlaW5nIGRpc3BsYXllZC4KKyAqCisgKiA8cD5UbyBpbnNlcnQgYSBzcGVjaWFsIGNoYXJhY3RlciBpbiBhIHBhdHRlcm4gYXMgYSBsaXRlcmFsLCB0aGF0IGlzLCB3aXRob3V0CisgKiBhbnkgc3BlY2lhbCBtZWFuaW5nLCB0aGUgY2hhcmFjdGVyIG11c3QgYmUgcXVvdGVkLiAgVGhlcmUgYXJlIHNvbWUgZXhjZXB0aW9ucyB0bworICogdGhpcyB3aGljaCBhcmUgbm90ZWQgYmVsb3cuCisgKgorICogPHA+VGhlIGNoYXJhY3RlcnMgbGlzdGVkIGhlcmUgYXJlIHVzZWQgaW4gbm9uLWxvY2FsaXplZCBwYXR0ZXJucy4gIExvY2FsaXplZAorICogcGF0dGVybnMgdXNlIHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgdGFrZW4gZnJvbSB0aGlzIGZvcm1hdHRlcidzCisgKiB7QGxpbmsgRGVjaW1hbEZvcm1hdFN5bWJvbHN9IG9iamVjdCBpbnN0ZWFkLCBhbmQgdGhlc2UgY2hhcmFjdGVycyBsb3NlCisgKiB0aGVpciBzcGVjaWFsIHN0YXR1cy4gIFR3byBleGNlcHRpb25zIGFyZSB0aGUgY3VycmVuY3kgc2lnbiBhbmQgcXVvdGUsIHdoaWNoCisgKiBhcmUgbm90IGxvY2FsaXplZC4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqIDx0YWJsZSBib3JkZXI9MCBjZWxsc3BhY2luZz0zIGNlbGxwYWRkaW5nPTAgc3VtbWFyeT0iQ2hhcnQgc2hvd2luZyBzeW1ib2wsCisgKiAgbG9jYXRpb24sIGxvY2FsaXplZCwgYW5kIG1lYW5pbmcuIj4KKyAqICAgPHRyIGJnY29sb3I9IiNjY2NjZmYiPgorICogICAgIDx0aCBhbGlnbj1sZWZ0PlN5bWJvbAorICogICAgIDx0aCBhbGlnbj1sZWZ0PkxvY2F0aW9uCisgKiAgICAgPHRoIGFsaWduPWxlZnQ+TG9jYWxpemVkPworICogICAgIDx0aCBhbGlnbj1sZWZ0Pk1lYW5pbmcKKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPjA8L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+RGlnaXQKKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPjEtOTwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD48c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiAgICAgICAgICcxJyB0aHJvdWdoICc5JyBpbmRpY2F0ZSByb3VuZGluZy4KKyAqICAgPHRyIHZhbGlnbj10b3A+CisgKiAgICAgPHRkPjxjb2RlPkA8L2NvZGU+CisgKiAgICAgPHRkPk51bWJlcgorICogICAgIDx0ZD5ObworICogICAgIDx0ZD48c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiAgICAgICAgIFNpZ25pZmljYW50IGRpZ2l0CisgKiAgIDx0ciB2YWxpZ249dG9wIGJnY29sb3I9IiNlZWVlZmYiPgorICogICAgIDx0ZD48Y29kZT4jPC9jb2RlPgorICogICAgIDx0ZD5OdW1iZXIKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPkRpZ2l0LCB6ZXJvIHNob3dzIGFzIGFic2VudAorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+LjwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5EZWNpbWFsIHNlcGFyYXRvciBvciBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvcgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+LTwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5NaW51cyBzaWduCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT4sPC9jb2RlPgorICogICAgIDx0ZD5OdW1iZXIKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPkdyb3VwaW5nIHNlcGFyYXRvcgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+RTwvY29kZT4KKyAqICAgICA8dGQ+TnVtYmVyCisgKiAgICAgPHRkPlllcworICogICAgIDx0ZD5TZXBhcmF0ZXMgbWFudGlzc2EgYW5kIGV4cG9uZW50IGluIHNjaWVudGlmaWMgbm90YXRpb24uCisgKiAgICAgICAgIDxlbT5OZWVkIG5vdCBiZSBxdW90ZWQgaW4gcHJlZml4IG9yIHN1ZmZpeC48L2VtPgorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+KzwvY29kZT4KKyAqICAgICA8dGQ+RXhwb25lbnQKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPjxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqICAgICAgICAgUHJlZml4IHBvc2l0aXZlIGV4cG9uZW50cyB3aXRoIGxvY2FsaXplZCBwbHVzIHNpZ24uCisgKiAgICAgICAgIDxlbT5OZWVkIG5vdCBiZSBxdW90ZWQgaW4gcHJlZml4IG9yIHN1ZmZpeC48L2VtPgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+OzwvY29kZT4KKyAqICAgICA8dGQ+U3VicGF0dGVybiBib3VuZGFyeQorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+U2VwYXJhdGVzIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBzdWJwYXR0ZXJucworICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+JTwvY29kZT4KKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeAorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+TXVsdGlwbHkgYnkgMTAwIGFuZCBzaG93IGFzIHBlcmNlbnRhZ2UKKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPiYjOTI7dTIwMzA8L2NvZGU+CisgKiAgICAgPHRkPlByZWZpeCBvciBzdWZmaXgKKyAqICAgICA8dGQ+WWVzCisgKiAgICAgPHRkPk11bHRpcGx5IGJ5IDEwMDAgYW5kIHNob3cgYXMgcGVyIG1pbGxlCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT4mIzE2NDs8L2NvZGU+ICg8Y29kZT4mIzkyO3UwMEE0PC9jb2RlPikKKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeAorICogICAgIDx0ZD5ObworICogICAgIDx0ZD5DdXJyZW5jeSBzaWduLCByZXBsYWNlZCBieSBjdXJyZW5jeSBzeW1ib2wuICBJZgorICogICAgICAgICBkb3VibGVkLCByZXBsYWNlZCBieSBpbnRlcm5hdGlvbmFsIGN1cnJlbmN5IHN5bWJvbC4KKyAqICAgICAgICAgSWYgcHJlc2VudCBpbiBhIHBhdHRlcm4sIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvcgorICogICAgICAgICBpcyB1c2VkIGluc3RlYWQgb2YgdGhlIGRlY2ltYWwgc2VwYXJhdG9yLgorICogICA8dHIgdmFsaWduPXRvcCBiZ2NvbG9yPSIjZWVlZWZmIj4KKyAqICAgICA8dGQ+PGNvZGU+JzwvY29kZT4KKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeAorICogICAgIDx0ZD5ObworICogICAgIDx0ZD5Vc2VkIHRvIHF1b3RlIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBhIHByZWZpeCBvciBzdWZmaXgsCisgKiAgICAgICAgIGZvciBleGFtcGxlLCA8Y29kZT4iJyMnIyI8L2NvZGU+IGZvcm1hdHMgMTIzIHRvCisgKiAgICAgICAgIDxjb2RlPiIjMTIzIjwvY29kZT4uICBUbyBjcmVhdGUgYSBzaW5nbGUgcXVvdGUKKyAqICAgICAgICAgaXRzZWxmLCB1c2UgdHdvIGluIGEgcm93OiA8Y29kZT4iIyBvJydjbG9jayI8L2NvZGU+LgorICogICA8dHIgdmFsaWduPXRvcD4KKyAqICAgICA8dGQ+PGNvZGU+KjwvY29kZT4KKyAqICAgICA8dGQ+UHJlZml4IG9yIHN1ZmZpeCBib3VuZGFyeQorICogICAgIDx0ZD5ZZXMKKyAqICAgICA8dGQ+PHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogICAgICAgICBQYWQgZXNjYXBlLCBwcmVjZWRlcyBwYWQgY2hhcmFjdGVyCisgKiA8L3RhYmxlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPkEgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gcGF0dGVybiBjb250YWlucyBhIHBvc3RpdmUgYW5kIG5lZ2F0aXZlCisgKiBzdWJwYXR0ZXJuLCBmb3IgZXhhbXBsZSwgIiMsIyMwLjAwOygjLCMjMC4wMCkiLiAgRWFjaCBzdWJwYXR0ZXJuIGhhcyBhCisgKiBwcmVmaXgsIGEgbnVtZXJpYyBwYXJ0LCBhbmQgYSBzdWZmaXguICBJZiB0aGVyZSBpcyBubyBleHBsaWNpdCBuZWdhdGl2ZQorICogc3VicGF0dGVybiwgdGhlIG5lZ2F0aXZlIHN1YnBhdHRlcm4gaXMgdGhlIGxvY2FsaXplZCBtaW51cyBzaWduIHByZWZpeGVkIHRvIHRoZQorICogcG9zaXRpdmUgc3VicGF0dGVybi4gVGhhdCBpcywgIjAuMDAiIGFsb25lIGlzIGVxdWl2YWxlbnQgdG8gIjAuMDA7LTAuMDAiLiAgSWYgdGhlcmUKKyAqIGlzIGFuIGV4cGxpY2l0IG5lZ2F0aXZlIHN1YnBhdHRlcm4sIGl0IHNlcnZlcyBvbmx5IHRvIHNwZWNpZnkgdGhlIG5lZ2F0aXZlCisgKiBwcmVmaXggYW5kIHN1ZmZpeDsgdGhlIG51bWJlciBvZiBkaWdpdHMsIG1pbmltYWwgZGlnaXRzLCBhbmQgb3RoZXIKKyAqIGNoYXJhY3RlcmlzdGljcyBhcmUgaWdub3JlZCBpbiB0aGUgbmVnYXRpdmUgc3VicGF0dGVybi4gVGhhdCBtZWFucyB0aGF0CisgKiAiIywjIzAuMCM7KCMpIiBoYXMgcHJlY2lzZWx5IHRoZSBzYW1lIHJlc3VsdCBhcyAiIywjIzAuMCM7KCMsIyMwLjAjKSIuCisgKgorICogPHA+VGhlIHByZWZpeGVzLCBzdWZmaXhlcywgYW5kIHZhcmlvdXMgc3ltYm9scyB1c2VkIGZvciBpbmZpbml0eSwgZGlnaXRzLAorICogdGhvdXNhbmRzIHNlcGFyYXRvcnMsIGRlY2ltYWwgc2VwYXJhdG9ycywgZXRjLiBtYXkgYmUgc2V0IHRvIGFyYml0cmFyeQorICogdmFsdWVzLCBhbmQgdGhleSB3aWxsIGFwcGVhciBwcm9wZXJseSBkdXJpbmcgZm9ybWF0dGluZy4gIEhvd2V2ZXIsIGNhcmUgbXVzdAorICogYmUgdGFrZW4gdGhhdCB0aGUgc3ltYm9scyBhbmQgc3RyaW5ncyBkbyBub3QgY29uZmxpY3QsIG9yIHBhcnNpbmcgd2lsbCBiZQorICogdW5yZWxpYWJsZS4gIEZvciBleGFtcGxlLCBlaXRoZXIgdGhlIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBwcmVmaXhlcyBvciB0aGUKKyAqIHN1ZmZpeGVzIG11c3QgYmUgZGlzdGluY3QgZm9yIHtAbGluayAjcGFyc2V9IHRvIGJlIGFibGUKKyAqIHRvIGRpc3Rpbmd1aXNoIHBvc2l0aXZlIGZyb20gbmVnYXRpdmUgdmFsdWVzLiAgQW5vdGhlciBleGFtcGxlIGlzIHRoYXQgdGhlCisgKiBkZWNpbWFsIHNlcGFyYXRvciBhbmQgdGhvdXNhbmRzIHNlcGFyYXRvciBzaG91bGQgYmUgZGlzdGluY3QgY2hhcmFjdGVycywgb3IKKyAqIHBhcnNpbmcgd2lsbCBiZSBpbXBvc3NpYmxlLgorICoKKyAqIDxwPlRoZSA8ZW0+Z3JvdXBpbmcgc2VwYXJhdG9yPC9lbT4gaXMgYSBjaGFyYWN0ZXIgdGhhdCBzZXBhcmF0ZXMgY2x1c3RlcnMgb2YKKyAqIGludGVnZXIgZGlnaXRzIHRvIG1ha2UgbGFyZ2UgbnVtYmVycyBtb3JlIGxlZ2libGUuICBJdCBjb21tb25seSB1c2VkIGZvcgorICogdGhvdXNhbmRzLCBidXQgaW4gc29tZSBsb2NhbGVzIGl0IHNlcGFyYXRlcyB0ZW4tdGhvdXNhbmRzLiAgVGhlIDxlbT5ncm91cGluZworICogc2l6ZTwvZW0+IGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4gdGhlIGdyb3VwaW5nIHNlcGFyYXRvcnMsIHN1Y2ggYXMgMworICogZm9yICIxMDAsMDAwLDAwMCIgb3IgNCBmb3IgIjEgMDAwMCAwMDAwIi4gVGhlcmUgYXJlIGFjdHVhbGx5IHR3byBkaWZmZXJlbnQKKyAqIGdyb3VwaW5nIHNpemVzOiBPbmUgdXNlZCBmb3IgdGhlIGxlYXN0IHNpZ25pZmljYW50IGludGVnZXIgZGlnaXRzLCB0aGUKKyAqIDxlbT5wcmltYXJ5IGdyb3VwaW5nIHNpemU8L2VtPiwgYW5kIG9uZSB1c2VkIGZvciBhbGwgb3RoZXJzLCB0aGUKKyAqIDxlbT5zZWNvbmRhcnkgZ3JvdXBpbmcgc2l6ZTwvZW0+LiAgSW4gbW9zdCBsb2NhbGVzIHRoZXNlIGFyZSB0aGUgc2FtZSwgYnV0CisgKiBzb21ldGltZXMgdGhleSBhcmUgZGlmZmVyZW50LiBGb3IgZXhhbXBsZSwgaWYgdGhlIHByaW1hcnkgZ3JvdXBpbmcgaW50ZXJ2YWwKKyAqIGlzIDMsIGFuZCB0aGUgc2Vjb25kYXJ5IGlzIDIsIHRoZW4gdGhpcyBjb3JyZXNwb25kcyB0byB0aGUgcGF0dGVybgorICogIiMsIyMsIyMwIiwgYW5kIHRoZSBudW1iZXIgMTIzNDU2Nzg5IGlzIGZvcm1hdHRlZCBhcyAiMTIsMzQsNTYsNzg5Ii4gIElmIGEKKyAqIHBhdHRlcm4gY29udGFpbnMgbXVsdGlwbGUgZ3JvdXBpbmcgc2VwYXJhdG9ycywgdGhlIGludGVydmFsIGJldHdlZW4gdGhlIGxhc3QKKyAqIG9uZSBhbmQgdGhlIGVuZCBvZiB0aGUgaW50ZWdlciBkZWZpbmVzIHRoZSBwcmltYXJ5IGdyb3VwaW5nIHNpemUsIGFuZCB0aGUKKyAqIGludGVydmFsIGJldHdlZW4gdGhlIGxhc3QgdHdvIGRlZmluZXMgdGhlIHNlY29uZGFyeSBncm91cGluZyBzaXplLiBBbGwgb3RoZXJzCisgKiBhcmUgaWdub3JlZCwgc28gIiMsIyMsIyMjLCMjIyMiID09ICIjIyMsIyMjLCMjIyMiID09ICIjIywjLCMjIywjIyMjIi4KKyAqCisgKiA8cD5JbGxlZ2FsIHBhdHRlcm5zLCBzdWNoIGFzICIjLiMuIyIgb3IgIiMuIyMjLCMjIyIsIHdpbGwgY2F1c2UKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHRvIHRocm93IGFuIHtAbGluayBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb259CisgKiB3aXRoIGEgbWVzc2FnZSB0aGF0IGRlc2NyaWJlcyB0aGUgcHJvYmxlbS4KKyAqCisgKiA8aDQ+UGF0dGVybiBCTkY8L2g0PgorICoKKyAqIDxwcmU+CisgKiBwYXR0ZXJuICAgIDo9IHN1YnBhdHRlcm4gKCc7JyBzdWJwYXR0ZXJuKT8KKyAqIHN1YnBhdHRlcm4gOj0gcHJlZml4PyBudW1iZXIgZXhwb25lbnQ/IHN1ZmZpeD8KKyAqIG51bWJlciAgICAgOj0gKGludGVnZXIgKCcuJyBmcmFjdGlvbik/KSB8IHNpZ0RpZ2l0cworICogcHJlZml4ICAgICA6PSAnJiM5Mjt1MDAwMCcuLicmIzkyO3VGRkZEJyAtIHNwZWNpYWxDaGFyYWN0ZXJzCisgKiBzdWZmaXggICAgIDo9ICcmIzkyO3UwMDAwJy4uJyYjOTI7dUZGRkQnIC0gc3BlY2lhbENoYXJhY3RlcnMKKyAqIGludGVnZXIgICAgOj0gJyMnKiAnMCcqICcwJworICogZnJhY3Rpb24gICA6PSAnMCcqICcjJyoKKyAqIHNpZ0RpZ2l0cyAgOj0gJyMnKiAnQCcgJ0AnKiAnIycqCisgKiBleHBvbmVudCAgIDo9ICdFJyAnKyc/ICcwJyogJzAnCisgKiBwYWRTcGVjICAgIDo9ICcqJyBwYWRDaGFyCisgKiBwYWRDaGFyICAgIDo9ICcmIzkyO3UwMDAwJy4uJyYjOTI7dUZGRkQnIC0gcXVvdGUKKyAqICYjMzI7CisgKiBOb3RhdGlvbjoKKyAqICAgWCogICAgICAgMCBvciBtb3JlIGluc3RhbmNlcyBvZiBYCisgKiAgIFg/ICAgICAgIDAgb3IgMSBpbnN0YW5jZXMgb2YgWAorICogICBYfFkgICAgICBlaXRoZXIgWCBvciBZCisgKiAgIEMuLkQgICAgIGFueSBjaGFyYWN0ZXIgZnJvbSBDIHVwIHRvIEQsIGluY2x1c2l2ZQorICogICBTLVQgICAgICBjaGFyYWN0ZXJzIGluIFMsIGV4Y2VwdCB0aG9zZSBpbiBUCisgKiA8L3ByZT4KKyAqIFRoZSBmaXJzdCBzdWJwYXR0ZXJuIGlzIGZvciBwb3NpdGl2ZSBudW1iZXJzLiBUaGUgc2Vjb25kIChvcHRpb25hbCkKKyAqIHN1YnBhdHRlcm4gaXMgZm9yIG5lZ2F0aXZlIG51bWJlcnMuCisgKiAKKyAqIDxwPk5vdCBpbmRpY2F0ZWQgaW4gdGhlIEJORiBzeW50YXggYWJvdmU6CisgKgorICogPHVsPjxsaT5UaGUgZ3JvdXBpbmcgc2VwYXJhdG9yICcsJyBjYW4gb2NjdXIgaW5zaWRlIHRoZSBpbnRlZ2VyIGFuZAorICogc2lnRGlnaXRzIGVsZW1lbnRzLCBiZXR3ZWVuIGFueSB0d28gcGF0dGVybiBjaGFyYWN0ZXJzIG9mIHRoYXQKKyAqIGVsZW1lbnQsIGFzIGxvbmcgYXMgdGhlIGludGVnZXIgb3Igc2lnRGlnaXRzIGVsZW1lbnQgaXMgbm90CisgKiBmb2xsb3dlZCBieSB0aGUgZXhwb25lbnQgZWxlbWVudC4KKyAqCisgKiA8bGk+PGZvbnQgY29sb3I9cmVkIGZhY2U9aGVsdmV0aWNhPjxzdHJvbmc+TkVXPC9zdHJvbmc+PC9mb250PgorICogICAgIFR3byBncm91cGluZyBpbnRlcnZhbHMgYXJlIHJlY29nbml6ZWQ6IFRoYXQgYmV0d2VlbiB0aGUKKyAqICAgICBkZWNpbWFsIHBvaW50IGFuZCB0aGUgZmlyc3QgZ3JvdXBpbmcgc3ltYm9sLCBhbmQgdGhhdAorICogICAgIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBzZWNvbmQgZ3JvdXBpbmcgc3ltYm9scy4gVGhlc2UKKyAqICAgICBpbnRlcnZhbHMgYXJlIGlkZW50aWNhbCBpbiBtb3N0IGxvY2FsZXMsIGJ1dCBpbiBzb21lCisgKiAgICAgbG9jYWxlcyB0aGV5IGRpZmZlci4gRm9yIGV4YW1wbGUsIHRoZSBwYXR0ZXJuCisgKiAgICAgJnF1b3Q7IywjIywjIyMmcXVvdDsgZm9ybWF0cyB0aGUgbnVtYmVyIDEyMzQ1Njc4OSBhcworICogICAgICZxdW90OzEyLDM0LDU2LDc4OSZxdW90Oy48L2xpPgorICogCisgKiA8bGk+CisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiBUaGUgcGFkIHNwZWNpZmllciA8Y29kZT5wYWRTcGVjPC9jb2RlPiBtYXkgYXBwZWFyIGJlZm9yZSB0aGUgcHJlZml4LAorICogYWZ0ZXIgdGhlIHByZWZpeCwgYmVmb3JlIHRoZSBzdWZmaXgsIGFmdGVyIHRoZSBzdWZmaXgsIG9yIG5vdCBhdCBhbGwuCisgKgorICogPGxpPgorICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICogSW4gcGxhY2Ugb2YgJzAnLCB0aGUgZGlnaXRzICcxJyB0aHJvdWdoICc5JyBtYXkgYmUgdXNlZCB0bworICogaW5kaWNhdGUgYSByb3VuZGluZyBpbmNyZW1lbnQuCisgKiA8L3VsPgorICoKKyAqIDxoND5QYXJzaW5nPC9oND4KKyAqCisgKiA8cD48Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBwYXJzZXMgYWxsIFVuaWNvZGUgY2hhcmFjdGVycyB0aGF0IHJlcHJlc2VudAorICogZGVjaW1hbCBkaWdpdHMsIGFzIGRlZmluZWQgYnkge0BsaW5rIFVDaGFyYWN0ZXIjZGlnaXR9LiAgSW4gYWRkaXRpb24sCisgKiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBhbHNvIHJlY29nbml6ZXMgYXMgZGlnaXRzIHRoZSB0ZW4gY29uc2VjdXRpdmUKKyAqIGNoYXJhY3RlcnMgc3RhcnRpbmcgd2l0aCB0aGUgbG9jYWxpemVkIHplcm8gZGlnaXQgZGVmaW5lZCBpbiB0aGUKKyAqIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9sc30gb2JqZWN0LiAgRHVyaW5nIGZvcm1hdHRpbmcsIHRoZQorICoge0BsaW5rIERlY2ltYWxGb3JtYXRTeW1ib2xzfS1iYXNlZCBkaWdpdHMgYXJlIG91dHB1dC4KKyAqCisgKiA8cD5EdXJpbmcgcGFyc2luZywgZ3JvdXBpbmcgc2VwYXJhdG9ycyBhcmUgaWdub3JlZC4KKyAqCisgKiA8cD5JZiB7QGxpbmsgI3BhcnNlKFN0cmluZywgUGFyc2VQb3NpdGlvbil9IGZhaWxzIHRvIHBhcnNlCisgKiBhIHN0cmluZywgaXQgcmV0dXJucyA8Y29kZT5udWxsPC9jb2RlPiBhbmQgbGVhdmVzIHRoZSBwYXJzZSBwb3NpdGlvbgorICogdW5jaGFuZ2VkLiAgVGhlIGNvbnZlbmllbmNlIG1ldGhvZCB7QGxpbmsgI3BhcnNlKFN0cmluZyl9CisgKiBpbmRpY2F0ZXMgcGFyc2UgZmFpbHVyZSBieSB0aHJvd2luZyBhIHtAbGluayBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb259LgorICoKKyAqIDxoND5Gb3JtYXR0aW5nPC9oND4KKyAqCisgKiA8cD5Gb3JtYXR0aW5nIGlzIGd1aWRlZCBieSBzZXZlcmFsIHBhcmFtZXRlcnMsIGFsbCBvZiB3aGljaCBjYW4gYmUKKyAqIHNwZWNpZmllZCBlaXRoZXIgdXNpbmcgYSBwYXR0ZXJuIG9yIHVzaW5nIHRoZSBBUEkuICBUaGUgZm9sbG93aW5nCisgKiBkZXNjcmlwdGlvbiBhcHBsaWVzIHRvIGZvcm1hdHMgdGhhdCBkbyBub3QgdXNlIDxhIGhyZWY9IiNzY2kiPnNjaWVudGlmaWMKKyAqIG5vdGF0aW9uPC9hPiBvciA8YSBocmVmPSIjc2lnZGlnIj5zaWduaWZpY2FudCBkaWdpdHM8L2E+LgorICoKKyAqIDx1bD48bGk+SWYgdGhlIG51bWJlciBvZiBhY3R1YWwgaW50ZWdlciBkaWdpdHMgZXhjZWVkcyB0aGUKKyAqIDxlbT5tYXhpbXVtIGludGVnZXIgZGlnaXRzPC9lbT4sIHRoZW4gb25seSB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQKKyAqIGRpZ2l0cyBhcmUgc2hvd24uICBGb3IgZXhhbXBsZSwgMTk5NyBpcyBmb3JtYXR0ZWQgYXMgIjk3IiBpZiB0aGUKKyAqIG1heGltdW0gaW50ZWdlciBkaWdpdHMgaXMgc2V0IHRvIDIuCisgKgorICogPGxpPklmIHRoZSBudW1iZXIgb2YgYWN0dWFsIGludGVnZXIgZGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUKKyAqIDxlbT5taW5pbXVtIGludGVnZXIgZGlnaXRzPC9lbT4sIHRoZW4gbGVhZGluZyB6ZXJvcyBhcmUgYWRkZWQuICBGb3IKKyAqIGV4YW1wbGUsIDE5OTcgaXMgZm9ybWF0dGVkIGFzICIwMTk5NyIgaWYgdGhlIG1pbmltdW0gaW50ZWdlciBkaWdpdHMKKyAqIGlzIHNldCB0byA1LgorICoKKyAqIDxsaT5JZiB0aGUgbnVtYmVyIG9mIGFjdHVhbCBmcmFjdGlvbiBkaWdpdHMgZXhjZWVkcyB0aGUgPGVtPm1heGltdW0KKyAqIGZyYWN0aW9uIGRpZ2l0czwvZW0+LCB0aGVuIGhhbGYtZXZlbiByb3VuZGluZyBpdCBwZXJmb3JtZWQgdG8gdGhlCisgKiBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cy4gIEZvciBleGFtcGxlLCAwLjEyNSBpcyBmb3JtYXR0ZWQgYXMgIjAuMTIiCisgKiBpZiB0aGUgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMgaXMgMi4gIFRoaXMgYmVoYXZpb3IgY2FuIGJlIGNoYW5nZWQKKyAqIGJ5IHNwZWNpZnlpbmcgYSByb3VuZGluZyBpbmNyZW1lbnQgYW5kIGEgcm91bmRpbmcgbW9kZS4KKyAqCisgKiA8bGk+SWYgdGhlIG51bWJlciBvZiBhY3R1YWwgZnJhY3Rpb24gZGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUKKyAqIDxlbT5taW5pbXVtIGZyYWN0aW9uIGRpZ2l0czwvZW0+LCB0aGVuIHRyYWlsaW5nIHplcm9zIGFyZSBhZGRlZC4KKyAqIEZvciBleGFtcGxlLCAwLjEyNSBpcyBmb3JtYXR0ZWQgYXMgIjAuMTI1MCIgaWYgdGhlIG1pbWltdW0gZnJhY3Rpb24KKyAqIGRpZ2l0cyBpcyBzZXQgdG8gNC4KKyAqCisgKiA8bGk+VHJhaWxpbmcgZnJhY3Rpb25hbCB6ZXJvcyBhcmUgbm90IGRpc3BsYXllZCBpZiB0aGV5IG9jY3VyCisgKiA8ZW0+ajwvZW0+IHBvc2l0aW9ucyBhZnRlciB0aGUgZGVjaW1hbCwgd2hlcmUgPGVtPmo8L2VtPiBpcyBsZXNzCisgKiB0aGFuIHRoZSBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cy4gRm9yIGV4YW1wbGUsIDAuMTAwMDQgaXMKKyAqIGZvcm1hdHRlZCBhcyAiMC4xIiBpZiB0aGUgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMgaXMgZm91ciBvciBsZXNzLgorICogPC91bD4KKyAqIAorICogPHA+PHN0cm9uZz5TcGVjaWFsIFZhbHVlczwvc3Ryb25nPgorICoKKyAqIDxwPjxjb2RlPk5hTjwvY29kZT4gaXMgcmVwcmVzZW50ZWQgYXMgYSBzaW5nbGUgY2hhcmFjdGVyLCB0eXBpY2FsbHkKKyAqIDxjb2RlPiYjOTI7dUZGRkQ8L2NvZGU+LiAgVGhpcyBjaGFyYWN0ZXIgaXMgZGV0ZXJtaW5lZCBieSB0aGUKKyAqIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9sc30gb2JqZWN0LiAgVGhpcyBpcyB0aGUgb25seSB2YWx1ZSBmb3Igd2hpY2gKKyAqIHRoZSBwcmVmaXhlcyBhbmQgc3VmZml4ZXMgYXJlIG5vdCB1c2VkLgorICoKKyAqIDxwPkluZmluaXR5IGlzIHJlcHJlc2VudGVkIGFzIGEgc2luZ2xlIGNoYXJhY3RlciwgdHlwaWNhbGx5CisgKiA8Y29kZT4mIzkyO3UyMjFFPC9jb2RlPiwgd2l0aCB0aGUgcG9zaXRpdmUgb3IgbmVnYXRpdmUgcHJlZml4ZXMgYW5kIHN1ZmZpeGVzCisgKiBhcHBsaWVkLiAgVGhlIGluZmluaXR5IGNoYXJhY3RlciBpcyBkZXRlcm1pbmVkIGJ5IHRoZQorICoge0BsaW5rIERlY2ltYWxGb3JtYXRTeW1ib2xzfSBvYmplY3QuCisgKgorICogPGEgbmFtZT0ic2NpIj48aDQ+U2NpZW50aWZpYyBOb3RhdGlvbjwvaDQ+PC9hPgorICoKKyAqIDxwPk51bWJlcnMgaW4gc2NpZW50aWZpYyBub3RhdGlvbiBhcmUgZXhwcmVzc2VkIGFzIHRoZSBwcm9kdWN0IG9mIGEgbWFudGlzc2EKKyAqIGFuZCBhIHBvd2VyIG9mIHRlbiwgZm9yIGV4YW1wbGUsIDEyMzQgY2FuIGJlIGV4cHJlc3NlZCBhcyAxLjIzNCB4IDEwPHN1cD4zPC9zdXA+LiBUaGUKKyAqIG1hbnRpc3NhIGlzIHR5cGljYWxseSBpbiB0aGUgaGFsZi1vcGVuIGludGVydmFsIFsxLjAsIDEwLjApIG9yIHNvbWV0aW1lcyBbMC4wLCAxLjApLAorICogYnV0IGl0IG5lZWQgbm90IGJlLiAgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gc3VwcG9ydHMgYXJiaXRyYXJ5IG1hbnRpc3Nhcy4KKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGNhbiBiZSBpbnN0cnVjdGVkIHRvIHVzZSBzY2llbnRpZmljCisgKiBub3RhdGlvbiB0aHJvdWdoIHRoZSBBUEkgb3IgdGhyb3VnaCB0aGUgcGF0dGVybi4gIEluIGEgcGF0dGVybiwgdGhlIGV4cG9uZW50CisgKiBjaGFyYWN0ZXIgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgZGlnaXQgY2hhcmFjdGVycyBpbmRpY2F0ZXMKKyAqIHNjaWVudGlmaWMgbm90YXRpb24uICBFeGFtcGxlOiAiMC4jIyNFMCIgZm9ybWF0cyB0aGUgbnVtYmVyIDEyMzQgYXMKKyAqICIxLjIzNEUzIi4KKyAqCisgKiA8dWw+CisgKiA8bGk+VGhlIG51bWJlciBvZiBkaWdpdCBjaGFyYWN0ZXJzIGFmdGVyIHRoZSBleHBvbmVudCBjaGFyYWN0ZXIgZ2l2ZXMgdGhlCisgKiBtaW5pbXVtIGV4cG9uZW50IGRpZ2l0IGNvdW50LiAgVGhlcmUgaXMgbm8gbWF4aW11bS4gIE5lZ2F0aXZlIGV4cG9uZW50cyBhcmUKKyAqIGZvcm1hdHRlZCB1c2luZyB0aGUgbG9jYWxpemVkIG1pbnVzIHNpZ24sIDxlbT5ub3Q8L2VtPiB0aGUgcHJlZml4IGFuZCBzdWZmaXgKKyAqIGZyb20gdGhlIHBhdHRlcm4uICBUaGlzIGFsbG93cyBwYXR0ZXJucyBzdWNoIGFzICIwLiMjI0UwIG0vcyIuICBUbyBwcmVmaXgKKyAqIHBvc2l0aXZlIGV4cG9uZW50cyB3aXRoIGEgbG9jYWxpemVkIHBsdXMgc2lnbiwgc3BlY2lmeSAnKycgYmV0d2VlbiB0aGUKKyAqIGV4cG9uZW50IGFuZCB0aGUgZGlnaXRzOiAiMC4jIyNFKzAiIHdpbGwgcHJvZHVjZSBmb3JtYXRzICIxRSsxIiwgIjFFKzAiLAorICogIjFFLTEiLCBldGMuICAoSW4gbG9jYWxpemVkIHBhdHRlcm5zLCB1c2UgdGhlIGxvY2FsaXplZCBwbHVzIHNpZ24gcmF0aGVyIHRoYW4KKyAqICcrJy4pCisgKgorICogPGxpPlRoZSBtaW5pbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyBpcyBhY2hpZXZlZCBieSBhZGp1c3RpbmcgdGhlCisgKiBleHBvbmVudC4gIEV4YW1wbGU6IDAuMDAxMjMgZm9ybWF0dGVkIHdpdGggIjAwLiMjI0UwIiB5aWVsZHMgIjEyLjNFLTQiLiAgVGhpcworICogb25seSBoYXBwZW5zIGlmIHRoZXJlIGlzIG5vIG1heGltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzLiAgSWYgdGhlcmUgaXMgYQorICogbWF4aW11bSwgdGhlbiB0aGUgbWluaW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgaXMgZml4ZWQgYXQgb25lLgorICoKKyAqIDxsaT5UaGUgbWF4aW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMsIGlmIHByZXNlbnQsIHNwZWNpZmllcyB0aGUgZXhwb25lbnQKKyAqIGdyb3VwaW5nLiAgVGhlIG1vc3QgY29tbW9uIHVzZSBvZiB0aGlzIGlzIHRvIGdlbmVyYXRlIDxlbT5lbmdpbmVlcmluZworICogbm90YXRpb248L2VtPiwgaW4gd2hpY2ggdGhlIGV4cG9uZW50IGlzIGEgbXVsdGlwbGUgb2YgdGhyZWUsIGUuZy4sCisgKiAiIyMwLiMjI0UwIi4gIFRoZSBudW1iZXIgMTIzNDUgaXMgZm9ybWF0dGVkIHVzaW5nICIjIzAuIyMjI0UwIiBhcyAiMTIuMzQ1RTMiLgorICoKKyAqIDxsaT5XaGVuIHVzaW5nIHNjaWVudGlmaWMgbm90YXRpb24sIHRoZSBmb3JtYXR0ZXIgY29udHJvbHMgdGhlCisgKiBkaWdpdCBjb3VudHMgdXNpbmcgc2lnbmlmaWNhbnQgZGlnaXRzIGxvZ2ljLiAgVGhlIG1heGltdW0gbnVtYmVyIG9mCisgKiBzaWduaWZpY2FudCBkaWdpdHMgbGltaXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgaW50ZWdlciBhbmQgZnJhY3Rpb24KKyAqIGRpZ2l0cyB0aGF0IHdpbGwgYmUgc2hvd24gaW4gdGhlIG1hbnRpc3NhOyBpdCBkb2VzIG5vdCBhZmZlY3QKKyAqIHBhcnNpbmcuICBGb3IgZXhhbXBsZSwgMTIzNDUgZm9ybWF0dGVkIHdpdGggIiMjMC4jI0UwIiBpcyAiMTIuM0UzIi4KKyAqIFNlZSB0aGUgc2VjdGlvbiBvbiBzaWduaWZpY2FudCBkaWdpdHMgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiA8bGk+VGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgc2hvd24gaXMgZGV0ZXJtaW5lZCBhcworICogZm9sbG93czogSWYgYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkgcmV0dXJucyBmYWxzZSwgdGhlbiB0aGUKKyAqIG1pbmltdW0gbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBzaG93biBpcyBvbmUsIGFuZCB0aGUgbWF4aW11bQorICogbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBzaG93biBpcyB0aGUgc3VtIG9mIHRoZSA8ZW0+bWluaW11bQorICogaW50ZWdlcjwvZW0+IGFuZCA8ZW0+bWF4aW11bSBmcmFjdGlvbjwvZW0+IGRpZ2l0cywgYW5kIGlzCisgKiB1bmFmZmVjdGVkIGJ5IHRoZSBtYXhpbXVtIGludGVnZXIgZGlnaXRzLiAgSWYgdGhpcyBzdW0gaXMgemVybywKKyAqIHRoZW4gYWxsIHNpZ25pZmljYW50IGRpZ2l0cyBhcmUgc2hvd24uICBJZgorICogYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkgcmV0dXJucyB0cnVlLCB0aGVuIHRoZSBzaWduaWZpY2FudCBkaWdpdAorICogY291bnRzIGFyZSBzcGVjaWZpZWQgYnkgZ2V0TWluaW11bVNpZ25pZmljYW50RGlnaXRzKCkgYW5kCisgKiBnZXRNYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMoKS4gIEluIHRoaXMgY2FzZSwgdGhlIG51bWJlciBvZgorICogaW50ZWdlciBkaWdpdHMgaXMgZml4ZWQgYXQgb25lLCBhbmQgdGhlcmUgaXMgbm8gZXhwb25lbnQgZ3JvdXBpbmcuCisgKgorICogPGxpPkV4cG9uZW50aWFsIHBhdHRlcm5zIG1heSBub3QgY29udGFpbiBncm91cGluZyBzZXBhcmF0b3JzLgorICogPC91bD4KKyAqCisgKiA8YSBuYW1lPSJzaWdkaWciPjxoND4KKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqIFNpZ25pZmljYW50IERpZ2l0czwvaDQ+PC9hPgorICoKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGhhcyB0d28gd2F5cyBvZiBjb250cm9sbGluZyBob3cgbWFueQorICogZGlnaXRzIGFyZSBzaG93czogKGEpIHNpZ25pZmljYW50IGRpZ2l0cyBjb3VudHMsIG9yIChiKSBpbnRlZ2VyIGFuZAorICogZnJhY3Rpb24gZGlnaXQgY291bnRzLiAgSW50ZWdlciBhbmQgZnJhY3Rpb24gZGlnaXQgY291bnRzIGFyZQorICogZGVzY3JpYmVkIGFib3ZlLiAgV2hlbiBhIGZvcm1hdHRlciBpcyB1c2luZyBzaWduaWZpY2FudCBkaWdpdHMKKyAqIGNvdW50cywgdGhlIG51bWJlciBvZiBpbnRlZ2VyIGFuZCBmcmFjdGlvbiBkaWdpdHMgaXMgbm90IHNwZWNpZmllZAorICogZGlyZWN0bHksIGFuZCB0aGUgZm9ybWF0dGVyIHNldHRpbmdzIGZvciB0aGVzZSBjb3VudHMgYXJlIGlnbm9yZWQuCisgKiBJbnN0ZWFkLCB0aGUgZm9ybWF0dGVyIHVzZXMgaG93ZXZlciBtYW55IGludGVnZXIgYW5kIGZyYWN0aW9uCisgKiBkaWdpdHMgYXJlIHJlcXVpcmVkIHRvIGRpc3BsYXkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc2lnbmlmaWNhbnQKKyAqIGRpZ2l0cy4gIEV4YW1wbGVzOgorICoKKyAqIDxibG9ja3F1b3RlPgorICogPHRhYmxlIGJvcmRlcj0wIGNlbGxzcGFjaW5nPTMgY2VsbHBhZGRpbmc9MD4KKyAqICAgPHRyIGJnY29sb3I9IiNjY2NjZmYiPgorICogICAgIDx0aCBhbGlnbj1sZWZ0PlBhdHRlcm4KKyAqICAgICA8dGggYWxpZ249bGVmdD5NaW5pbXVtIHNpZ25pZmljYW50IGRpZ2l0cworICogICAgIDx0aCBhbGlnbj1sZWZ0Pk1heGltdW0gc2lnbmlmaWNhbnQgZGlnaXRzCisgKiAgICAgPHRoIGFsaWduPWxlZnQ+TnVtYmVyCisgKiAgICAgPHRoIGFsaWduPWxlZnQ+T3V0cHV0IG9mIGZvcm1hdCgpCisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT5AQEA8L2NvZGU+CisgKiAgICAgPHRkPjMKKyAqICAgICA8dGQ+MworICogICAgIDx0ZD4xMjM0NQorICogICAgIDx0ZD48Y29kZT4xMjMwMDwvY29kZT4KKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPkBAQDwvY29kZT4KKyAqICAgICA8dGQ+MworICogICAgIDx0ZD4zCisgKiAgICAgPHRkPjAuMTIzNDUKKyAqICAgICA8dGQ+PGNvZGU+MC4xMjM8L2NvZGU+CisgKiAgIDx0ciB2YWxpZ249dG9wPgorICogICAgIDx0ZD48Y29kZT5AQCMjPC9jb2RlPgorICogICAgIDx0ZD4yCisgKiAgICAgPHRkPjQKKyAqICAgICA8dGQ+My4xNDE1OQorICogICAgIDx0ZD48Y29kZT4zLjE0MjwvY29kZT4KKyAqICAgPHRyIHZhbGlnbj10b3AgYmdjb2xvcj0iI2VlZWVmZiI+CisgKiAgICAgPHRkPjxjb2RlPkBAIyM8L2NvZGU+CisgKiAgICAgPHRkPjIKKyAqICAgICA8dGQ+NAorICogICAgIDx0ZD4xLjIzMDA0CisgKiAgICAgPHRkPjxjb2RlPjEuMjM8L2NvZGU+CisgKiA8L3RhYmxlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDx1bD4KKyAqIDxsaT5TaWduaWZpY2FudCBkaWdpdCBjb3VudHMgbWF5IGJlIGV4cHJlc3NlZCB1c2luZyBwYXR0ZXJucyB0aGF0CisgKiBzcGVjaWZ5IGEgbWluaW11bSBhbmQgbWF4aW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzLiAgVGhlc2UKKyAqIGFyZSBpbmRpY2F0ZWQgYnkgdGhlIDxjb2RlPidAJzwvY29kZT4gYW5kIDxjb2RlPicjJzwvY29kZT4KKyAqIGNoYXJhY3RlcnMuICBUaGUgbWluaW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIGlzIHRoZSBudW1iZXIKKyAqIG9mIDxjb2RlPidAJzwvY29kZT4gY2hhcmFjdGVycy4gIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzaWduaWZpY2FudAorICogZGlnaXRzIGlzIHRoZSBudW1iZXIgb2YgPGNvZGU+J0AnPC9jb2RlPiBjaGFyYWN0ZXJzIHBsdXMgdGhlIG51bWJlcgorICogb2YgPGNvZGU+JyMnPC9jb2RlPiBjaGFyYWN0ZXJzIGZvbGxvd2luZyBvbiB0aGUgcmlnaHQuICBGb3IKKyAqIGV4YW1wbGUsIHRoZSBwYXR0ZXJuIDxjb2RlPiJAQEAiPC9jb2RlPiBpbmRpY2F0ZXMgZXhhY3RseSAzCisgKiBzaWduaWZpY2FudCBkaWdpdHMuICBUaGUgcGF0dGVybiA8Y29kZT4iQCMjIjwvY29kZT4gaW5kaWNhdGVzIGZyb20KKyAqIDEgdG8gMyBzaWduaWZpY2FudCBkaWdpdHMuICBUcmFpbGluZyB6ZXJvIGRpZ2l0cyB0byB0aGUgcmlnaHQgb2YKKyAqIHRoZSBkZWNpbWFsIHNlcGFyYXRvciBhcmUgc3VwcHJlc3NlZCBhZnRlciB0aGUgbWluaW11bSBudW1iZXIgb2YKKyAqIHNpZ25pZmljYW50IGRpZ2l0cyBoYXZlIGJlZW4gc2hvd24uICBGb3IgZXhhbXBsZSwgdGhlIHBhdHRlcm4KKyAqIDxjb2RlPiJAIyMiPC9jb2RlPiBmb3JtYXRzIHRoZSBudW1iZXIgMC4xMjAzIGFzCisgKiA8Y29kZT4iMC4xMiI8L2NvZGU+LgorICoKKyAqIDxsaT5JZiBhIHBhdHRlcm4gdXNlcyBzaWduaWZpY2FudCBkaWdpdHMsIGl0IG1heSBub3QgY29udGFpbiBhCisgKiBkZWNpbWFsIHNlcGFyYXRvciwgbm9yIHRoZSA8Y29kZT4nMCc8L2NvZGU+IHBhdHRlcm4gY2hhcmFjdGVyLgorICogUGF0dGVybnMgc3VjaCBhcyA8Y29kZT4iQDAwIjwvY29kZT4gb3IgPGNvZGU+IkAuIyMjIjwvY29kZT4gYXJlCisgKiBkaXNhbGxvd2VkLgorICoKKyAqIDxsaT5BbnkgbnVtYmVyIG9mIDxjb2RlPicjJzwvY29kZT4gY2hhcmFjdGVycyBtYXkgYmUgcHJlcGVuZGVkIHRvCisgKiB0aGUgbGVmdCBvZiB0aGUgbGVmdG1vc3QgPGNvZGU+J0AnPC9jb2RlPiBjaGFyYWN0ZXIuICBUaGVzZSBoYXZlIG5vCisgKiBlZmZlY3Qgb24gdGhlIG1pbmltdW0gYW5kIG1heGltdW0gc2lnbmlmaWNhbnQgZGlnaXRzIGNvdW50cywgYnV0CisgKiBtYXkgYmUgdXNlZCB0byBwb3NpdGlvbiBncm91cGluZyBzZXBhcmF0b3JzLiAgRm9yIGV4YW1wbGUsCisgKiA8Y29kZT4iIywjQCMiPC9jb2RlPiBpbmRpY2F0ZXMgYSBtaW5pbXVtIG9mIG9uZSBzaWduaWZpY2FudCBkaWdpdHMsCisgKiBhIG1heGltdW0gb2YgdHdvIHNpZ25pZmljYW50IGRpZ2l0cywgYW5kIGEgZ3JvdXBpbmcgc2l6ZSBvZiB0aHJlZS4KKyAqCisgKiA8bGk+SW4gb3JkZXIgdG8gZW5hYmxlIHNpZ25pZmljYW50IGRpZ2l0cyBmb3JtYXR0aW5nLCB1c2UgYSBwYXR0ZXJuCisgKiBjb250YWluaW5nIHRoZSA8Y29kZT4nQCc8L2NvZGU+IHBhdHRlcm4gY2hhcmFjdGVyLiAgQWx0ZXJuYXRpdmVseSwKKyAqIGNhbGwge0BsaW5rICNzZXRTaWduaWZpY2FudERpZ2l0c1VzZWQgc2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkKHRydWUpfS4KKyAqCisgKiA8bGk+SW4gb3JkZXIgdG8gZGlzYWJsZSBzaWduaWZpY2FudCBkaWdpdHMgZm9ybWF0dGluZywgdXNlIGEKKyAqIHBhdHRlcm4gdGhhdCBkb2VzIG5vdCBjb250YWluIHRoZSA8Y29kZT4nQCc8L2NvZGU+IHBhdHRlcm4KKyAqIGNoYXJhY3Rlci4gQWx0ZXJuYXRpdmVseSwgY2FsbCB7QGxpbmsgI3NldFNpZ25pZmljYW50RGlnaXRzVXNlZAorICogc2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkKGZhbHNlKX0uCisgKgorICogPGxpPlRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIGhhcyBubyBlZmZlY3Qgb24gcGFyc2luZy4KKyAqCisgKiA8bGk+U2lnbmlmaWNhbnQgZGlnaXRzIG1heSBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggZXhwb25lbnRpYWwgbm90YXRpb24uIFN1Y2gKKyAqIHBhdHRlcm5zIGFyZSBlcXVpdmFsZW50IHRvIGEgbm9ybWFsIGV4cG9uZW50aWFsIHBhdHRlcm4gd2l0aCBhIG1pbmltdW0gYW5kCisgKiBtYXhpbXVtIGludGVnZXIgZGlnaXQgY291bnQgb2Ygb25lLCBhIG1pbmltdW0gZnJhY3Rpb24gZGlnaXQgY291bnQgb2YKKyAqIDxjb2RlPmdldE1pbmltdW1TaWduaWZpY2FudERpZ2l0cygpIC0gMTwvY29kZT4sIGFuZCBhIG1heGltdW0gZnJhY3Rpb24gZGlnaXQKKyAqIGNvdW50IG9mIDxjb2RlPmdldE1heGltdW1TaWduaWZpY2FudERpZ2l0cygpIC0gMTwvY29kZT4uIEZvciBleGFtcGxlLCB0aGUKKyAqIHBhdHRlcm4gPGNvZGU+IkBAIyMjRTAiPC9jb2RlPiBpcyBlcXVpdmFsZW50IHRvIDxjb2RlPiIwLjAjIyNFMCI8L2NvZGU+LgorICoKKyAqIDxsaT5JZiBzaWduZmljYW50IGRpZ2l0cyBhcmUgaW4gdXNlLCB0aGVuIHRoZSBpbnRlZ2VyIGFuZCBmcmFjdGlvbgorICogZGlnaXQgY291bnRzLCBhcyBzZXQgdmlhIHRoZSBBUEksIGFyZSBpZ25vcmVkLiAgSWYgc2lnbmlmaWNhbnQKKyAqIGRpZ2l0cyBhcmUgbm90IGluIHVzZSwgdGhlbiB0aGUgc2lnbmZpY2FudCBkaWdpdCBjb3VudHMsIGFzIHNldCB2aWEKKyAqIHRoZSBBUEksIGFyZSBpZ25vcmVkLgorICoKKyAqIDwvdWw+CisgKiAKKyAqIDxoND4KKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAqIFBhZGRpbmc8L2g0PgorICoKKyAqIDxwPjxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IHN1cHBvcnRzIHBhZGRpbmcgdGhlIHJlc3VsdCBvZgorICoge0BsaW5rICNmb3JtYXR9IHRvIGEgc3BlY2lmaWMgd2lkdGguICBQYWRkaW5nIG1heSBiZSBzcGVjaWZpZWQgZWl0aGVyCisgKiB0aHJvdWdoIHRoZSBBUEkgb3IgdGhyb3VnaCB0aGUgcGF0dGVybiBzeW50YXguICBJbiBhIHBhdHRlcm4gdGhlIHBhZCBlc2NhcGUKKyAqIGNoYXJhY3RlciwgZm9sbG93ZWQgYnkgYSBzaW5nbGUgcGFkIGNoYXJhY3RlciwgY2F1c2VzIHBhZGRpbmcgdG8gYmUgcGFyc2VkCisgKiBhbmQgZm9ybWF0dGVkLiAgVGhlIHBhZCBlc2NhcGUgY2hhcmFjdGVyIGlzICcqJyBpbiB1bmxvY2FsaXplZCBwYXR0ZXJucywgYW5kCisgKiBjYW4gYmUgbG9jYWxpemVkIHVzaW5nIHtAbGluayBEZWNpbWFsRm9ybWF0U3ltYm9scyNzZXRQYWRFc2NhcGV9LiAgRm9yCisgKiBleGFtcGxlLCA8Y29kZT4iJCp4IywjIzAuMDAiPC9jb2RlPiBmb3JtYXRzIDEyMyB0byA8Y29kZT4iJHh4MTIzLjAwIjwvY29kZT4sCisgKiBhbmQgMTIzNCB0byA8Y29kZT4iJDEsMjM0LjAwIjwvY29kZT4uCisgKgorICogPHVsPgorICogPGxpPldoZW4gcGFkZGluZyBpcyBpbiBlZmZlY3QsIHRoZSB3aWR0aCBvZiB0aGUgcG9zaXRpdmUgc3VicGF0dGVybiwKKyAqIGluY2x1ZGluZyBwcmVmaXggYW5kIHN1ZmZpeCwgZGV0ZXJtaW5lcyB0aGUgZm9ybWF0IHdpZHRoLiAgRm9yIGV4YW1wbGUsIGluCisgKiB0aGUgcGF0dGVybiA8Y29kZT4iKiAjMCBvJydjbG9jayI8L2NvZGU+LCB0aGUgZm9ybWF0IHdpZHRoIGlzIDEwLgorICoKKyAqIDxsaT5UaGUgd2lkdGggaXMgY291bnRlZCBpbiAxNi1iaXQgY29kZSB1bml0cyAoSmF2YSA8Y29kZT5jaGFyPC9jb2RlPnMpLgorICoKKyAqIDxsaT5Tb21lIHBhcmFtZXRlcnMgd2hpY2ggdXN1YWxseSBkbyBub3QgbWF0dGVyIGhhdmUgbWVhbmluZyB3aGVuIHBhZGRpbmcgaXMKKyAqIHVzZWQsIGJlY2F1c2UgdGhlIHBhdHRlcm4gd2lkdGggaXMgc2lnbmlmaWNhbnQgd2l0aCBwYWRkaW5nLiAgSW4gdGhlIHBhdHRlcm4KKyAqICIqICMjLCMjLCMsIyMwLiMjIiwgdGhlIGZvcm1hdCB3aWR0aCBpcyAxNC4gIFRoZSBpbml0aWFsIGNoYXJhY3RlcnMgIiMjLCMjLCIKKyAqIGRvIG5vdCBhZmZlY3QgdGhlIGdyb3VwaW5nIHNpemUgb3IgbWF4aW11bSBpbnRlZ2VyIGRpZ2l0cywgYnV0IHRoZXkgZG8gYWZmZWN0CisgKiB0aGUgZm9ybWF0IHdpZHRoLgorICoKKyAqIDxsaT5QYWRkaW5nIG1heSBiZSBpbnNlcnRlZCBhdCBvbmUgb2YgZm91ciBsb2NhdGlvbnM6IGJlZm9yZSB0aGUgcHJlZml4LAorICogYWZ0ZXIgdGhlIHByZWZpeCwgYmVmb3JlIHRoZSBzdWZmaXgsIG9yIGFmdGVyIHRoZSBzdWZmaXguICBJZiBwYWRkaW5nIGlzCisgKiBzcGVjaWZpZWQgaW4gYW55IG90aGVyIGxvY2F0aW9uLCB7QGxpbmsgI2FwcGx5UGF0dGVybn0gdGhyb3dzIGFuIHtAbGluaworICogSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9ufS4gIElmIHRoZXJlIGlzIG5vIHByZWZpeCwgYmVmb3JlIHRoZQorICogcHJlZml4IGFuZCBhZnRlciB0aGUgcHJlZml4IGFyZSBlcXVpdmFsZW50LCBsaWtld2lzZSBmb3IgdGhlIHN1ZmZpeC4KKyAqCisgKiA8bGk+V2hlbiBzcGVjaWZpZWQgaW4gYSBwYXR0ZXJuLCB0aGUgMTYtYml0IDxjb2RlPmNoYXI8L2NvZGU+IGltbWVkaWF0ZWx5CisgKiBmb2xsb3dpbmcgdGhlIHBhZCBlc2NhcGUgaXMgdGhlIHBhZCBjaGFyYWN0ZXIuIFRoaXMgbWF5IGJlIGFueSBjaGFyYWN0ZXIsCisgKiBpbmNsdWRpbmcgYSBzcGVjaWFsIHBhdHRlcm4gY2hhcmFjdGVyLiBUaGF0IGlzLCB0aGUgcGFkIGVzY2FwZQorICogPGVtPmVzY2FwZXM8L2VtPiB0aGUgZm9sbG93aW5nIGNoYXJhY3Rlci4gSWYgdGhlcmUgaXMgbm8gY2hhcmFjdGVyIGFmdGVyCisgKiB0aGUgcGFkIGVzY2FwZSwgdGhlbiB0aGUgcGF0dGVybiBpcyBpbGxlZ2FsLgorICoKKyAqIDwvdWw+CisgKgorICogPHA+CisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgKiA8c3Ryb25nPlJvdW5kaW5nPC9zdHJvbmc+CisgKgorICogPHA+PGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gc3VwcG9ydHMgcm91bmRpbmcgdG8gYSBzcGVjaWZpYyBpbmNyZW1lbnQuICBGb3IKKyAqIGV4YW1wbGUsIDEyMzAgcm91bmRlZCB0byB0aGUgbmVhcmVzdCA1MCBpcyAxMjUwLiAgMS4yMzQgcm91bmRlZCB0byB0aGUKKyAqIG5lYXJlc3QgMC42NSBpcyAxLjMuICBUaGUgcm91bmRpbmcgaW5jcmVtZW50IG1heSBiZSBzcGVjaWZpZWQgdGhyb3VnaCB0aGUgQVBJCisgKiBvciBpbiBhIHBhdHRlcm4uICBUbyBzcGVjaWZ5IGEgcm91bmRpbmcgaW5jcmVtZW50IGluIGEgcGF0dGVybiwgaW5jbHVkZSB0aGUKKyAqIGluY3JlbWVudCBpbiB0aGUgcGF0dGVybiBpdHNlbGYuICAiIywjNTAiIHNwZWNpZmllcyBhIHJvdW5kaW5nIGluY3JlbWVudCBvZgorICogNTAuICAiIywjIzAuMDUiIHNwZWNpZmllcyBhIHJvdW5kaW5nIGluY3JlbWVudCBvZiAwLjA1LgorICoKKyAqIDx1bD4KKyAqIDxsaT5Sb3VuZGluZyBvbmx5IGFmZmVjdHMgdGhlIHN0cmluZyBwcm9kdWNlZCBieSBmb3JtYXR0aW5nLiAgSXQgZG9lcworICogbm90IGFmZmVjdCBwYXJzaW5nIG9yIGNoYW5nZSBhbnkgbnVtZXJpY2FsIHZhbHVlcy4KKyAqCisgKiA8bGk+QSA8ZW0+cm91bmRpbmcgbW9kZTwvZW0+IGRldGVybWluZXMgaG93IHZhbHVlcyBhcmUgcm91bmRlZDsgc2VlIHRoZQorICoge0BsaW5rIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbH0gZG9jdW1lbnRhdGlvbiBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUKKyAqIG1vZGVzLiAgUm91bmRpbmcgaW5jcmVtZW50cyBzcGVjaWZpZWQgaW4gcGF0dGVybnMgdXNlIHRoZSBkZWZhdWx0IG1vZGUsCisgKiB7QGxpbmsgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI1JPVU5EX0hBTEZfRVZFTn0uCisgKgorICogPGxpPlNvbWUgbG9jYWxlcyB1c2Ugcm91bmRpbmcgaW4gdGhlaXIgY3VycmVuY3kgZm9ybWF0cyB0byByZWZsZWN0IHRoZQorICogc21hbGxlc3QgY3VycmVuY3kgZGVub21pbmF0aW9uLgorICoKKyAqIDxsaT5JbiBhIHBhdHRlcm4sIGRpZ2l0cyAnMScgdGhyb3VnaCAnOScgc3BlY2lmeSByb3VuZGluZywgYnV0IG90aGVyd2lzZQorICogYmVoYXZlIGlkZW50aWNhbGx5IHRvIGRpZ2l0ICcwJy4KKyAqIDwvdWw+CisgKgorICogPGg0PlN5bmNocm9uaXphdGlvbjwvaDQ+CisgKgorICogPHA+PGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gb2JqZWN0cyBhcmUgbm90IHN5bmNocm9uaXplZC4gIE11bHRpcGxlCisgKiB0aHJlYWRzIHNob3VsZCBub3QgYWNjZXNzIG9uZSBmb3JtYXR0ZXIgY29uY3VycmVudGx5LgorICoKKyAqIEBzZWUgICAgICAgICAgamF2YS50ZXh0LkZvcm1hdAorICogQHNlZSAgICAgICAgICBOdW1iZXJGb3JtYXQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQGF1dGhvciAgICAgICBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBEZWNpbWFsRm9ybWF0IGV4dGVuZHMgTnVtYmVyRm9ybWF0IHsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXQgdXNpbmcgdGhlIGRlZmF1bHQgcGF0dGVybiBhbmQgc3ltYm9scworICAgICAqIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUuIFRoaXMgaXMgYSBjb252ZW5pZW50IHdheSB0byBvYnRhaW4gYQorICAgICAqIERlY2ltYWxGb3JtYXQgd2hlbiBpbnRlcm5hdGlvbmFsaXphdGlvbiBpcyBub3QgdGhlIG1haW4gY29uY2Vybi4KKyAgICAgKiA8cD4KKyAgICAgKiBUbyBvYnRhaW4gc3RhbmRhcmQgZm9ybWF0cyBmb3IgYSBnaXZlbiBsb2NhbGUsIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzCisgICAgICogb24gTnVtYmVyRm9ybWF0IHN1Y2ggYXMgZ2V0TnVtYmVySW5zdGFuY2UuIFRoZXNlIGZhY3RvcmllcyB3aWxsCisgICAgICogcmV0dXJuIHRoZSBtb3N0IGFwcHJvcHJpYXRlIHN1Yi1jbGFzcyBvZiBOdW1iZXJGb3JtYXQgZm9yIGEgZ2l2ZW4KKyAgICAgKiBsb2NhbGUuCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXROdW1iZXJJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEN1cnJlbmN5SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRQZXJjZW50SW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGVjaW1hbEZvcm1hdCgpIHsKKyAgICAgICAgLy8gW05FV10KKyAgICAgICAgVUxvY2FsZSBkZWYgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBnZXRQYXR0ZXJuKGRlZiwgMCk7CisgICAgICAgIC8vIEFsd2F5cyBhcHBseVBhdHRlcm4gYWZ0ZXIgdGhlIHN5bWJvbHMgYXJlIHNldAorICAgICAgICB0aGlzLnN5bWJvbHMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoZGVmKTsKKyAgICAgICAgc2V0Q3VycmVuY3koQ3VycmVuY3kuZ2V0SW5zdGFuY2UoZGVmKSk7CisgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuLCBmYWxzZSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0IGZyb20gdGhlIGdpdmVuIHBhdHRlcm4gYW5kIHRoZSBzeW1ib2xzCisgICAgICogZm9yIHRoZSBkZWZhdWx0IGxvY2FsZS4gVGhpcyBpcyBhIGNvbnZlbmllbnQgd2F5IHRvIG9idGFpbiBhCisgICAgICogRGVjaW1hbEZvcm1hdCB3aGVuIGludGVybmF0aW9uYWxpemF0aW9uIGlzIG5vdCB0aGUgbWFpbiBjb25jZXJuLgorICAgICAqIDxwPgorICAgICAqIFRvIG9idGFpbiBzdGFuZGFyZCBmb3JtYXRzIGZvciBhIGdpdmVuIGxvY2FsZSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMKKyAgICAgKiBvbiBOdW1iZXJGb3JtYXQgc3VjaCBhcyBnZXROdW1iZXJJbnN0YW5jZS4gVGhlc2UgZmFjdG9yaWVzIHdpbGwKKyAgICAgKiByZXR1cm4gdGhlIG1vc3QgYXBwcm9wcmlhdGUgc3ViLWNsYXNzIG9mIE51bWJlckZvcm1hdCBmb3IgYSBnaXZlbgorICAgICAqIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBBIG5vbi1sb2NhbGl6ZWQgcGF0dGVybiBzdHJpbmcuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGdpdmVuIHBhdHRlcm4gaXMgaW52YWxpZC4KKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldE51bWJlckluc3RhbmNlCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0Q3VycmVuY3lJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldFBlcmNlbnRJbnN0YW5jZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0KFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIC8vIEFsd2F5cyBhcHBseVBhdHRlcm4gYWZ0ZXIgdGhlIHN5bWJvbHMgYXJlIHNldAorICAgICAgICBVTG9jYWxlIGRlZiA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB0aGlzLnN5bWJvbHMgPSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoZGVmKTsKKyAgICAgICAgc2V0Q3VycmVuY3koQ3VycmVuY3kuZ2V0SW5zdGFuY2UoZGVmKSk7CisgICAgICAgIGFwcGx5UGF0dGVybiggcGF0dGVybiwgZmFsc2UgKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQgc3ltYm9scy4KKyAgICAgKiBVc2UgdGhpcyBjb25zdHJ1Y3RvciB3aGVuIHlvdSBuZWVkIHRvIGNvbXBsZXRlbHkgY3VzdG9taXplIHRoZQorICAgICAqIGJlaGF2aW9yIG9mIHRoZSBmb3JtYXQuCisgICAgICogPHA+CisgICAgICogVG8gb2J0YWluIHN0YW5kYXJkIGZvcm1hdHMgZm9yIGEgZ2l2ZW4KKyAgICAgKiBsb2NhbGUsIHVzZSB0aGUgZmFjdG9yeSBtZXRob2RzIG9uIE51bWJlckZvcm1hdCBzdWNoIGFzCisgICAgICogZ2V0SW5zdGFuY2Ugb3IgZ2V0Q3VycmVuY3lJbnN0YW5jZS4gSWYgeW91IG5lZWQgb25seSBtaW5vciBhZGp1c3RtZW50cworICAgICAqIHRvIGEgc3RhbmRhcmQgZm9ybWF0LCB5b3UgY2FuIG1vZGlmeSB0aGUgZm9ybWF0IHJldHVybmVkIGJ5CisgICAgICogYSBOdW1iZXJGb3JtYXQgZmFjdG9yeSBtZXRob2QuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBub24tbG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nCisgICAgICogQHBhcmFtIHN5bWJvbHMgdGhlIHNldCBvZiBzeW1ib2xzIHRvIGJlIHVzZWQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gcGF0dGVybiBpcyBpbnZhbGlkCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjZ2V0SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXROdW1iZXJJbnN0YW5jZQorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I2dldEN1cnJlbmN5SW5zdGFuY2UKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNnZXRQZXJjZW50SW5zdGFuY2UKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIERlY2ltYWxGb3JtYXRTeW1ib2xzIHN5bWJvbHMpIHsKKyAgICAgICAgLy8gQWx3YXlzIGFwcGx5UGF0dGVybiBhZnRlciB0aGUgc3ltYm9scyBhcmUgc2V0CisgICAgICAgIHRoaXMuc3ltYm9scyA9IChEZWNpbWFsRm9ybWF0U3ltYm9scykgc3ltYm9scy5jbG9uZSgpOworICAgICAgICBzZXRDdXJyZW5jeUZvclN5bWJvbHMoKTsKKyAgICAgICAgYXBwbHlQYXR0ZXJuKCBwYXR0ZXJuLCBmYWxzZSApOworICAgIH0KKworCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoZG91YmxlIG51bWJlciwgU3RyaW5nQnVmZmVyIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24pCisgICAgeworICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgoMCk7CisgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0RW5kSW5kZXgoMCk7CisKKyAgICAgICAgaWYgKERvdWJsZS5pc05hTihudW1iZXIpKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5JTlRFR0VSX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3ltYm9scy5nZXROYU4oKSk7CisKKyAgICAgICAgICAgIGlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LklOVEVHRVJfRklFTEQpIHsKKyAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEVuZEluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFkZFBhZGRpbmcocmVzdWx0LCBmaWVsZFBvc2l0aW9uLCAwLCAwKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvKiBEZXRlY3Rpbmcgd2hldGhlciBhIGRvdWJsZSBpcyBuZWdhdGl2ZSBpcyBlYXN5IHdpdGggdGhlIGV4Y2VwdGlvbiBvZgorICAgICAgICAgKiB0aGUgdmFsdWUgLTAuMC4gIFRoaXMgaXMgYSBkb3VibGUgd2hpY2ggaGFzIGEgemVybyBtYW50aXNzYSAoYW5kCisgICAgICAgICAqIGV4cG9uZW50KSwgYnV0IGEgbmVnYXRpdmUgc2lnbiBiaXQuICBJdCBpcyBzZW1hbnRpY2FsbHkgZGlzdGluY3QgZnJvbQorICAgICAgICAgKiBhIHplcm8gd2l0aCBhIHBvc2l0aXZlIHNpZ24gYml0LCBhbmQgdGhpcyBkaXN0aW5jdGlvbiBpcyBpbXBvcnRhbnQKKyAgICAgICAgICogdG8gY2VydGFpbiBraW5kcyBvZiBjb21wdXRhdGlvbnMuICBIb3dldmVyLCBpdCdzIGEgbGl0dGxlIHRyaWNreSB0bworICAgICAgICAgKiBkZXRlY3QsIHNpbmNlICgtMC4wID09IDAuMCkgYW5kICEoLTAuMCA8IDAuMCkuICBIb3cgdGhlbiwgeW91IG1heQorICAgICAgICAgKiBhc2ssIGRvZXMgaXQgYmVoYXZlIGRpc3RpbmN0bHkgZnJvbSArMC4wPyAgV2VsbCwgMS8oLTAuMCkgPT0KKyAgICAgICAgICogLUluZmluaXR5LiAgUHJvcGVyIGRldGVjdGlvbiBvZiAtMC4wIGlzIG5lZWRlZCB0byBkZWFsIHdpdGggdGhlCisgICAgICAgICAqIGlzc3VlcyByYWlzZWQgYnkgYnVncyA0MTA2NjU4LCA0MTA2NjY3LCBhbmQgNDE0NzcwNi4gIExpdSA3LzYvOTguCisgICAgICAgICAqLworICAgICAgICBib29sZWFuIGlzTmVnYXRpdmUgPSAobnVtYmVyIDwgMC4wKSB8fCAobnVtYmVyID09IDAuMCAmJiAxL251bWJlciA8IDAuMCk7CisgICAgICAgIGlmIChpc05lZ2F0aXZlKSBudW1iZXIgPSAtbnVtYmVyOworCisgICAgICAgIC8vIERvIHRoaXMgQkVGT1JFIGNoZWNraW5nIHRvIHNlZSBpZiB2YWx1ZSBpcyBpbmZpbml0ZSEKKyAgICAgICAgaWYgKG11bHRpcGxpZXIgIT0gMSkgbnVtYmVyICo9IG11bHRpcGxpZXI7CisKKyAgICAgICAgLy8gQXBwbHkgcm91bmRpbmcgYWZ0ZXIgbXVsdGlwbGllcgorICAgICAgICBpZiAocm91bmRpbmdEb3VibGUgPiAwLjApIHsKKyAgICAgICAgICAgIC8vIG51bWJlciA9IHJvdW5kaW5nRG91YmxlCisgICAgICAgICAgICAvLyAgKiByb3VuZChudW1iZXIgLyByb3VuZGluZ0RvdWJsZSwgcm91bmRpbmdNb2RlLCBpc05lZ2F0aXZlKTsKKyAgICAgICAgICAgIGRvdWJsZSBuZXdOdW1iZXIgPSByb3VuZChudW1iZXIsIHJvdW5kaW5nRG91YmxlLCByb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwsIHJvdW5kaW5nTW9kZSwgaXNOZWdhdGl2ZSk7CisgICAgICAgICAgICBpZiAobmV3TnVtYmVyID09IDAuMCAmJiBudW1iZXIgIT0gbmV3TnVtYmVyKSBpc05lZ2F0aXZlID0gZmFsc2U7IC8vIGlmIHdlIHRvdWNoZWQgaXQsIHRoZW4gbWFrZSB6ZXJvIGJlIHplcm8uCisgICAgICAgICAgICBudW1iZXIgPSBuZXdOdW1iZXI7CisgICAgICAgIH0KKworICAgICAgICBpZiAoRG91YmxlLmlzSW5maW5pdGUobnVtYmVyKSkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHByZWZpeExlbiA9IGFwcGVuZEFmZml4KHJlc3VsdCwgaXNOZWdhdGl2ZSwgdHJ1ZSk7CisKKyAgICAgICAgICAgIGlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LklOVEVHRVJfRklFTEQpIHsKKyAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzeW1ib2xzLmdldEluZmluaXR5KCkpOworCisgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5JTlRFR0VSX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgc3VmZml4TGVuID0gYXBwZW5kQWZmaXgocmVzdWx0LCBpc05lZ2F0aXZlLCBmYWxzZSk7CisKKyAgICAgICAgICAgIGFkZFBhZGRpbmcocmVzdWx0LCBmaWVsZFBvc2l0aW9uLCBwcmVmaXhMZW4sIHN1ZmZpeExlbik7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBhcmUgZ3VhcmFudGVlZCBhIG5vbm5lZ2F0aXZlIGZpbml0ZQorICAgICAgICAvLyBudW1iZXIuCisgICAgICAgIHN5bmNocm9uaXplZChkaWdpdExpc3QpIHsKKyAgICAgICAgICAgIGRpZ2l0TGlzdC5zZXQobnVtYmVyLCBwcmVjaXNpb24oZmFsc2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAhdXNlRXhwb25lbnRpYWxOb3RhdGlvbiAmJiAhYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkpOworICAgICAgICAgICAgcmV0dXJuIHN1YmZvcm1hdChyZXN1bHQsIGZpZWxkUG9zaXRpb24sIGlzTmVnYXRpdmUsIGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUm91bmQgYSBkb3VibGUgdmFsdWUgdG8gdGhlIG5lYXJlc3QgbXVsdGlwbGUgb2YgdGhlIGdpdmVuCisgICAgICogcm91bmRpbmcgaW5jcmVtZW50LCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIG1vZGUuICBUaGlzIGlzCisgICAgICogZXF1aXZhbGVudCB0byByb3VuZGluZyB2YWx1ZS9yb3VuZGluZ0luYyB0byB0aGUgbmVhcmVzdAorICAgICAqIGludGVnZXIsIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gbW9kZSwgYW5kIHJldHVybmluZyB0aGF0CisgICAgICogaW50ZWdlciAqIHJvdW5kaW5nSW5jLgorICAgICAqIE5vdGUgdGhpcyBpcyBjaGFuZ2VkIGZyb20gdGhlIHZlcnNpb24gaW4gMi40LCBzaW5jZSBkaXZpc2lvbiBvZiBkb3VibGVzCisgICAgICogaGF2ZSBpbmFjY3VyYWNpZXMuIGppdHRlcmJ1ZyAxODcxLgorICAgICAqIEBwYXJhbSBudW1iZXIgdGhlIGFic29sdXRlIHZhbHVlIG9mIHRoZSBudW1iZXIgdG8gYmUgcm91bmRlZAorICAgICAqIEBwYXJhbSByb3VuZGluZ0luYyB0aGUgcm91bmRpbmcgaW5jcmVtZW50CisgICAgICogQHBhcmFtIHJvdW5kaW5nSW5jUmVjaXByb2NhbCBpZiBub24temVybywgaXMgdGhlIAorICAgICAqIEBwYXJhbSBtb2RlIGEgQmlnRGVjaW1hbCByb3VuZGluZyBtb2RlCisgICAgICogQHBhcmFtIGlzTmVnYXRpdmUgdHJ1ZSBpZiB0aGUgbnVtYmVyIHRvIGJlIHJvdW5kZWQgaXMgbmVnYXRpdmUKKyAgICAgKiBAcmV0dXJuIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiB0aGUgcm91bmRlZCByZXN1bHQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBkb3VibGUgcm91bmQoZG91YmxlIG51bWJlciwgZG91YmxlIHJvdW5kaW5nSW5jLCAKKyAgICAJCWRvdWJsZSByb3VuZGluZ0luY1JlY2lwcm9jYWwsIGludCBtb2RlLCBib29sZWFuIGlzTmVnYXRpdmUpIHsKKyAgICAJCisgICAgCWRvdWJsZSBkaXYgPSByb3VuZGluZ0luY1JlY2lwcm9jYWwgPT0gMC4wIAorICAgIAkJPyBudW1iZXIgLyByb3VuZGluZ0luYworICAgIAkgICAgOiBudW1iZXIgKiByb3VuZGluZ0luY1JlY2lwcm9jYWw7CisgICAgCQorICAgIAkvLyBkbyB0aGUgYWJzb2x1dGUgY2FzZXMgZmlyc3QKKyAgICAJCisgICAgCXN3aXRjaCAobW9kZSkgeworICAgIAljYXNlIEJpZ0RlY2ltYWwuUk9VTkRfQ0VJTElORzoKKyAgICAJCWRpdiA9IChpc05lZ2F0aXZlID8gTWF0aC5mbG9vcihkaXYgKyBlcHNpbG9uKSA6IE1hdGguY2VpbChkaXYgLSBlcHNpbG9uKSk7CisgICAgCQlicmVhazsKKyAgICAJY2FzZSBCaWdEZWNpbWFsLlJPVU5EX0ZMT09SOgorICAgIAkJZGl2ID0gKGlzTmVnYXRpdmUgPyBNYXRoLmNlaWwoZGl2IC0gZXBzaWxvbikgOiBNYXRoLmZsb29yKGRpdiArIGVwc2lsb24pKTsKKyAgICAJCWJyZWFrOworICAgIAljYXNlIEJpZ0RlY2ltYWwuUk9VTkRfRE9XTjoKKyAgICAJCWRpdiA9IChNYXRoLmZsb29yKGRpdiArIGVwc2lsb24pKTsKKyAgICAJCWJyZWFrOworICAgIAljYXNlIEJpZ0RlY2ltYWwuUk9VTkRfVVA6CisgICAgCQlkaXYgPSAoTWF0aC5jZWlsKGRpdiAtIGVwc2lsb24pKTsKKyAgICAJCWJyZWFrOworICAgIAljYXNlIEJpZ0RlY2ltYWwuUk9VTkRfVU5ORUNFU1NBUlk6CisgICAgCQlpZiAoZGl2ICE9IE1hdGguZmxvb3IoZGl2KSkgeworICAgIAkJCXRocm93IG5ldyBBcml0aG1ldGljRXhjZXB0aW9uKCJSb3VuZGluZyBuZWNlc3NhcnkiKTsKKyAgICAJCX0KKyAgICAJCXJldHVybiBudW1iZXI7CisgICAgCWRlZmF1bHQ6CisgICAgCQkKKyAgICAJCS8vIEhhbmRsZSBjb21wbGV4IGNhc2VzLCB3aGVyZSB0aGUgY2hvaWNlIGRlcGVuZHMgb24gdGhlIGNsb3NlciB2YWx1ZS4KKyAgICAJCQorICAgIAkJLy8gV2UgZmlndXJlIG91dCB0aGUgZGlzdGFuY2VzIHRvIHRoZSB0d28gcG9zc2libGUgdmFsdWVzLCBjZWlsaW5nIGFuZCBmbG9vci4KKyAgICAJCS8vIFdlIHRoZW4gZ28gZm9yIHRoZSBkaWZmIHRoYXQgaXMgc21hbGxlci4KKyAgICAJCS8vIE9ubHkgaWYgdGhleSBhcmUgZXF1YWwgZG9lcyB0aGUgbW9kZSBtYXR0ZXIuCisJICAgIAkJCisJICAgIAlkb3VibGUgY2VpbCA9IE1hdGguY2VpbChkaXYpOworCSAgICAJZG91YmxlIGNlaWxkaWZmID0gY2VpbCAtIGRpdjsgLy8gKGNlaWwgKiByb3VuZGluZ0luYykgLSBudW1iZXI7CisJICAgIAlkb3VibGUgZmxvb3IgPSBNYXRoLmZsb29yKGRpdik7CisJICAgIAlkb3VibGUgZmxvb3JkaWZmID0gZGl2IC0gZmxvb3I7IC8vIG51bWJlciAtIChmbG9vciAqIHJvdW5kaW5nSW5jKTsKKwkgICAgCQorCSAgICAJLy8gTm90ZSB0aGF0IHRoZSBkaWZmIHZhbHVlcyB3ZXJlIHRob3NlIG1hcHBlZCBiYWNrIHRvIHRoZSAibm9ybWFsIiBzcGFjZQorCSAgICAJLy8gYnkgdXNpbmcgdGhlIHJvdW5kaW5nSW5jLiBJIGRvbid0IGhhdmUgYWNjZXNzIHRvIHRoZSBvcmlnaW5hbCBhdXRob3Igb2YgdGhlIGNvZGUKKwkgICAgCS8vIGJ1dCBzdXNwZWN0IHRoYXQgdGhhdCB3YXMgdG8gcHJvZHVjZSBiZXR0ZXIgcmVzdWx0IGluIGVkZ2UgY2FzZXMgYmVjYXVzZSBvZiBtYWNoaW5lCisJICAgIAkvLyBwcmVjaXNpb24sIHJhdGhlciB0aGFuIHNpbXBseSB1c2luZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuLCBzYXksIGNlaWwgYW5kIGRpdi4KKwkgICAgCS8vIEhvd2V2ZXIsIGl0IGRpZG4ndCB3b3JrIGluIGFsbCBjYXNlcy4gQW0gdHJ5aW5nIGluc3RlYWQgdXNpbmcgYW4gZXBzaWxvbiB2YWx1ZS4KKwkgICAgCQorCSAgICAJc3dpdGNoIChtb2RlKSB7CisJICAgIAljYXNlIEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9FVkVOOgorCSAgICAJCS8vIFdlIHNob3VsZCBiZSBhYmxlIHRvIGp1c3QgcmV0dXJuIE1hdGgucmludChhKSwgYnV0IHRoaXMKKwkgICAgCQkvLyBkb2Vzbid0IHdvcmsgaW4gc29tZSBWTXMuCisJICAgIAkJLy8gaWYgb25lIGlzIHNtYWxsZXIgdGhhbiB0aGUgb3RoZXIsIHRha2UgdGhlIGNvcnJlc3BvbmRpbmcgc2lkZQorCSAgICAJCWlmIChmbG9vcmRpZmYgKyBlcHNpbG9uIDwgY2VpbGRpZmYpIHsKKwkgICAgCQkJZGl2ID0gZmxvb3I7CisJICAgIAkJfSBlbHNlIGlmIChjZWlsZGlmZiArIGVwc2lsb24gPCBmbG9vcmRpZmYpIHsKKwkgICAgCQkJZGl2ID0gY2VpbDsKKwkgICAgCQl9IGVsc2UgeyAvLyB0aGV5IGFyZSBlcXVhbCwgc28gd2Ugd2FudCB0byByb3VuZCB0byB3aGljaGV2ZXIgaXMgZXZlbgorCSAgICAJCQlkb3VibGUgdGVzdEZsb29yID0gZmxvb3IgLyAyOworCSAgICAJCQlkaXYgPSAodGVzdEZsb29yID09IE1hdGguZmxvb3IodGVzdEZsb29yKSkgPyBmbG9vciA6IGNlaWw7CisJICAgIAkJfQorCSAgICAJCWJyZWFrOworCSAgICAJY2FzZSBCaWdEZWNpbWFsLlJPVU5EX0hBTEZfRE9XTjoKKwkgICAgCQlkaXYgPSAoKGZsb29yZGlmZiA8PSBjZWlsZGlmZiArIGVwc2lsb24pID8gZmxvb3IgOiBjZWlsKTsKKwkgICAgCQlicmVhazsKKwkgICAgCWNhc2UgQmlnRGVjaW1hbC5ST1VORF9IQUxGX1VQOgorCSAgICAJCWRpdiA9ICgoY2VpbGRpZmYgPD0gZmxvb3JkaWZmICsgZXBzaWxvbikgPyBjZWlsIDogZmxvb3IpOworCSAgICAJCWJyZWFrOworCSAgICAJZGVmYXVsdDoKKwkgICAgCQl0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHJvdW5kaW5nIG1vZGU6ICIgKyBtb2RlKTsKKwkgICAgCX0KKyAgICAJfQorICAgIAludW1iZXIgPSByb3VuZGluZ0luY1JlY2lwcm9jYWwgPT0gMC4wCisgICAgCQk/IGRpdiAqIHJvdW5kaW5nSW5jCisgICAgCQk6IGRpdiAvIHJvdW5kaW5nSW5jUmVjaXByb2NhbDsKKyAgICAJcmV0dXJuIG51bWJlcjsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZG91YmxlIGVwc2lsb24gPSAwLjAwMDAwMDAwMDAxOworCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQobG9uZyBudW1iZXIsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBmaWVsZFBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KDApOworICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEVuZEluZGV4KDApOworCisgICAgICAgIC8vIElmIHdlIGFyZSB0byBkbyByb3VuZGluZywgd2UgbmVlZCB0byBtb3ZlIGludG8gdGhlIEJpZ0RlY2ltYWwKKyAgICAgICAgLy8gZG9tYWluIGluIG9yZGVyIHRvIGRvIGRpdmlkZS9tdWx0aXBseSBjb3JyZWN0bHkuCisgICAgICAgIC8vIFtORVddCisgICAgICAgIGlmIChyb3VuZGluZ0luY3JlbWVudElDVSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KEJpZ0RlY2ltYWwudmFsdWVPZihudW1iZXIpLCByZXN1bHQsIGZpZWxkUG9zaXRpb24pOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBpc05lZ2F0aXZlID0gKG51bWJlciA8IDApOworICAgICAgICBpZiAoaXNOZWdhdGl2ZSkgbnVtYmVyID0gLW51bWJlcjsKKworICAgICAgICAvLyBJbiBnZW5lcmFsLCBsb25nIHZhbHVlcyBhbHdheXMgcmVwcmVzZW50IHJlYWwgZmluaXRlIG51bWJlcnMsIHNvCisgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgdG8gY2hlY2sgZm9yICsvLSBJbmZpbml0eSBvciBOYU4uICBIb3dldmVyLCB0aGVyZQorICAgICAgICAvLyBpcyBvbmUgY2FzZSB3ZSBoYXZlIHRvIGJlIGNhcmVmdWwgb2Y6ICBUaGUgbXVsdGlwbGllciBjYW4gcHVzaAorICAgICAgICAvLyBhIG51bWJlciBuZWFyIE1JTl9WQUxVRSBvciBNQVhfVkFMVUUgb3V0c2lkZSB0aGUgbGVnYWwgcmFuZ2UuICBXZQorICAgICAgICAvLyBjaGVjayBmb3IgdGhpcyBiZWZvcmUgbXVsdGlwbHlpbmcsIGFuZCBpZiBpdCBoYXBwZW5zIHdlIHVzZSBCaWdJbnRlZ2VyCisgICAgICAgIC8vIGluc3RlYWQuCisgICAgICAgIC8vIFtORVddCisgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDEpIHsKKyAgICAgICAgICAgIGJvb2xlYW4gdG9vQmlnID0gZmFsc2U7CisgICAgICAgICAgICBpZiAobnVtYmVyIDwgMCkgeyAvLyBUaGlzIGNhbiBvbmx5IGhhcHBlbiBpZiBudW1iZXIgPT0gTG9uZy5NSU5fVkFMVUUKKyAgICAgICAgICAgICAgICBsb25nIGN1dG9mZiA9IExvbmcuTUlOX1ZBTFVFIC8gbXVsdGlwbGllcjsKKyAgICAgICAgICAgICAgICB0b29CaWcgPSAobnVtYmVyIDwgY3V0b2ZmKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9uZyBjdXRvZmYgPSBMb25nLk1BWF9WQUxVRSAvIG11bHRpcGxpZXI7CisgICAgICAgICAgICAgICAgdG9vQmlnID0gKG51bWJlciA+IGN1dG9mZik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodG9vQmlnKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdChCaWdJbnRlZ2VyLnZhbHVlT2YoaXNOZWdhdGl2ZSA/IC1udW1iZXIgOiBudW1iZXIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LCBmaWVsZFBvc2l0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG51bWJlciAqPSBtdWx0aXBsaWVyOworICAgICAgICBzeW5jaHJvbml6ZWQoZGlnaXRMaXN0KSB7CisgICAgICAgICAgICBkaWdpdExpc3Quc2V0KG51bWJlciwgcHJlY2lzaW9uKHRydWUpKTsKKyAgICAgICAgICAgIHJldHVybiBzdWJmb3JtYXQocmVzdWx0LCBmaWVsZFBvc2l0aW9uLCBpc05lZ2F0aXZlLCB0cnVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBGb3JtYXQgYSBCaWdJbnRlZ2VyIG51bWJlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChCaWdJbnRlZ2VyIG51bWJlciwgU3RyaW5nQnVmZmVyIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24pIHsKKyAgICAgICAgLy8gSWYgd2UgYXJlIHRvIGRvIHJvdW5kaW5nLCB3ZSBuZWVkIHRvIG1vdmUgaW50byB0aGUgQmlnRGVjaW1hbAorICAgICAgICAvLyBkb21haW4gaW4gb3JkZXIgdG8gZG8gZGl2aWRlL211bHRpcGx5IGNvcnJlY3RseS4KKyAgICAgICAgaWYgKHJvdW5kaW5nSW5jcmVtZW50SUNVICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQobmV3IEJpZ0RlY2ltYWwobnVtYmVyKSwgcmVzdWx0LCBmaWVsZFBvc2l0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtdWx0aXBsaWVyICE9IDEpIHsKKyAgICAgICAgICAgIG51bWJlciA9IG51bWJlci5tdWx0aXBseShCaWdJbnRlZ2VyLnZhbHVlT2YobXVsdGlwbGllcikpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBhcmUgZ3VhcmFudGVlZCBhIG5vbm5lZ2F0aXZlIGZpbml0ZQorICAgICAgICAvLyBudW1iZXIuCisgICAgICAgIHN5bmNocm9uaXplZChkaWdpdExpc3QpIHsKKyAgICAgICAgICAgIGRpZ2l0TGlzdC5zZXQobnVtYmVyLCBwcmVjaXNpb24odHJ1ZSkpOworICAgICAgICAgICAgcmV0dXJuIHN1YmZvcm1hdChyZXN1bHQsIGZpZWxkUG9zaXRpb24sIG51bWJlci5zaWdudW0oKSA8IDAsIGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRm9ybWF0IGEgQmlnRGVjaW1hbCBudW1iZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoamF2YS5tYXRoLkJpZ0RlY2ltYWwgbnVtYmVyLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbikgeworICAgICAgICBpZiAobXVsdGlwbGllciAhPSAxKSB7CisgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIubXVsdGlwbHkoamF2YS5tYXRoLkJpZ0RlY2ltYWwudmFsdWVPZihtdWx0aXBsaWVyKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocm91bmRpbmdJbmNyZW1lbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyLmRpdmlkZShyb3VuZGluZ0luY3JlbWVudCwgMCwgcm91bmRpbmdNb2RlKQorICAgICAgICAgICAgICAgICAgICAubXVsdGlwbHkocm91bmRpbmdJbmNyZW1lbnQpOworICAgICAgICB9CisKKyAgICAgICAgc3luY2hyb25pemVkKGRpZ2l0TGlzdCkgeworICAgICAgICAgICAgZGlnaXRMaXN0LnNldChudW1iZXIsIHByZWNpc2lvbihmYWxzZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICF1c2VFeHBvbmVudGlhbE5vdGF0aW9uICYmICFhcmVTaWduaWZpY2FudERpZ2l0c1VzZWQoKSk7CisgICAgICAgICAgICByZXR1cm4gc3ViZm9ybWF0KHJlc3VsdCwgZmllbGRQb3NpdGlvbiwgbnVtYmVyLnNpZ251bSgpIDwgMCwgZmFsc2UpOworICAgICAgICB9ICAgICAgICAKKyAgICB9CisvLyNlbmRpZgorICAgIAorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBGb3JtYXQgYSBCaWdEZWNpbWFsIG51bWJlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChCaWdEZWNpbWFsIG51bWJlciwgU3RyaW5nQnVmZmVyIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24pIHsKKyAgICAgICAgLyogVGhpcyBtZXRob2QgaXMganVzdCBhIGNvcHkgb2YgdGhlIGNvcnJlc3BvbmRpbmcgamF2YS5tYXRoLkJpZ0RlY2ltYWwKKyAgICAgICAgICogbWV0aG9kIGZvciBub3cuICBJdCBpc24ndCB2ZXJ5IGVmZmljaWVudCBzaW5jZSBpdCBtdXN0IGNyZWF0ZSBhCisgICAgICAgICAqIGNvbnZlcnNpb24gb2JqZWN0IHRvIGRvIG1hdGggb24gdGhlIHJvdW5kaW5nIGluY3JlbWVudC4gIEluIHRoZQorICAgICAgICAgKiBmdXR1cmUgd2UgbWF5IHRyeSB0byBjbGVhbiB0aGlzIHVwLCBvciBldmVuIGJldHRlciwgbGltaXQgb3VyIHN1cHBvcnQKKyAgICAgICAgICogdG8ganVzdCBvbmUgZmxhdm9yIG9mIEJpZ0RlY2ltYWwuCisgICAgICAgICAqLworICAgICAgICBpZiAobXVsdGlwbGllciAhPSAxKSB7CisgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIubXVsdGlwbHkoQmlnRGVjaW1hbC52YWx1ZU9mKG11bHRpcGxpZXIpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyb3VuZGluZ0luY3JlbWVudElDVSAhPSBudWxsKSB7CisgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIuZGl2aWRlKHJvdW5kaW5nSW5jcmVtZW50SUNVLCAwLCByb3VuZGluZ01vZGUpCisgICAgICAgICAgICAgICAgICAgIC5tdWx0aXBseShyb3VuZGluZ0luY3JlbWVudElDVSk7CisgICAgICAgIH0KKworICAgICAgICBzeW5jaHJvbml6ZWQoZGlnaXRMaXN0KSB7CisgICAgICAgICAgICBkaWdpdExpc3Quc2V0KG51bWJlciwgcHJlY2lzaW9uKGZhbHNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIXVzZUV4cG9uZW50aWFsTm90YXRpb24gJiYgIWFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpKTsKKyAgICAgICAgICAgIHJldHVybiBzdWJmb3JtYXQocmVzdWx0LCBmaWVsZFBvc2l0aW9uLCBudW1iZXIuc2lnbnVtKCkgPCAwLCBmYWxzZSk7CisgICAgICAgIH0gICAgICAgIAorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIGEgZ3JvdXBpbmcgc2VwYXJhdG9yIGJlbG9uZ3MgYXQgdGhlIGdpdmVuCisgICAgICogcG9zaXRpb24sIGJhc2VkIG9uIHdoZXRoZXIgZ3JvdXBpbmcgaXMgaW4gdXNlIGFuZCB0aGUgdmFsdWVzIG9mCisgICAgICogdGhlIHByaW1hcnkgYW5kIHNlY29uZGFyeSBncm91cGluZyBpbnRlcnZhbC4KKyAgICAgKiBAcGFyYW0gcG9zIHRoZSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgdG8gdGhlIHJpZ2h0IG9mCisgICAgICogdGhlIGN1cnJlbnQgcG9zaXRpb24uICBaZXJvIGluZGljYXRlcyB0aGUgcG9zaXRpb24gYWZ0ZXIgdGhlCisgICAgICogcmlnaHRtb3N0IGludGVnZXIgZGlnaXQuCisgICAgICogQHJldHVybiB0cnVlIGlmIGEgZ3JvdXBpbmcgY2hhcmFjdGVyIGJlbG9uZ3MgYXQgdGhlIGN1cnJlbnQKKyAgICAgKiBwb3NpdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNHcm91cGluZ1Bvc2l0aW9uKGludCBwb3MpIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgaWYgKGlzR3JvdXBpbmdVc2VkKCkgJiYgKHBvcyA+IDApICYmIChncm91cGluZ1NpemUgPiAwKSkgeworICAgICAgICAgICAgaWYgKChncm91cGluZ1NpemUyID4gMCkgJiYgKHBvcyA+IGdyb3VwaW5nU2l6ZSkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAoKHBvcyAtIGdyb3VwaW5nU2l6ZSkgJSBncm91cGluZ1NpemUyKSA9PSAwOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBwb3MgJSBncm91cGluZ1NpemUgPT0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cyB0byBkaXNwbGF5LCBvciB0aGUgdG90YWwKKyAgICAgKiBudW1iZXIgb2YgZGlnaXRzIGZvciBzaWduaWZpY2FudCBkaWdpdCBmb3JtYXRzIGFuZCBleHBvbmVudGlhbAorICAgICAqIGZvcm1hdHMuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcHJlY2lzaW9uKGJvb2xlYW4gaXNJbnRlZ3JhbCkgeworICAgICAgICBpZiAoYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRNYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMoKTsKKyAgICAgICAgfSBlbHNlIGlmICh1c2VFeHBvbmVudGlhbE5vdGF0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0TWluaW11bUludGVnZXJEaWdpdHMoKSArIGdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGlzSW50ZWdyYWwgPyAwIDogZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wbGV0ZSB0aGUgZm9ybWF0dGluZyBvZiBhIGZpbml0ZSBudW1iZXIuICBPbiBlbnRyeSwgdGhlIGRpZ2l0TGlzdCBtdXN0CisgICAgICogYmUgZmlsbGVkIGluIHdpdGggdGhlIGNvcnJlY3QgZGlnaXRzLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIHN1YmZvcm1hdChTdHJpbmdCdWZmZXIgcmVzdWx0LCBGaWVsZFBvc2l0aW9uIGZpZWxkUG9zaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNOZWdhdGl2ZSwgYm9vbGVhbiBpc0ludGVnZXIpCisgICAgeworICAgICAgICAvLyBOT1RFOiBUaGlzIGlzbid0IHJlcXVpcmVkIGFueW1vcmUgYmVjYXVzZSBEaWdpdExpc3QgdGFrZXMgY2FyZSBvZiB0aGlzLgorICAgICAgICAvLworICAgICAgICAvLyAgLy8gVGhlIG5lZ2F0aXZlIG9mIHRoZSBleHBvbmVudCByZXByZXNlbnRzIHRoZSBudW1iZXIgb2YgbGVhZGluZworICAgICAgICAvLyAgLy8gemVyb3MgYmV0d2VlbiB0aGUgZGVjaW1hbCBhbmQgdGhlIGZpcnN0IG5vbi16ZXJvIGRpZ2l0LCBmb3IKKyAgICAgICAgLy8gIC8vIGEgdmFsdWUgPCAwLjEgKGUuZy4sIGZvciAwLjAwMTIzLCAtZkV4cG9uZW50ID09IDIpLiAgSWYgdGhpcworICAgICAgICAvLyAgLy8gaXMgbW9yZSB0aGFuIHRoZSBtYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cywgdGhlbiB3ZSBoYXZlIGFuIHVuZGVyZmxvdworICAgICAgICAvLyAgLy8gZm9yIHRoZSBwcmludGVkIHJlcHJlc2VudGF0aW9uLiAgV2UgcmVjb2duaXplIHRoaXMgaGVyZSBhbmQgc2V0CisgICAgICAgIC8vICAvLyB0aGUgRGlnaXRMaXN0IHJlcHJlc2VudGF0aW9uIHRvIHplcm8gaW4gdGhpcyBzaXR1YXRpb24uCisgICAgICAgIC8vCisgICAgICAgIC8vICBpZiAoLWRpZ2l0TGlzdC5kZWNpbWFsQXQgPj0gZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkpCisgICAgICAgIC8vICB7CisgICAgICAgIC8vICAgICAgZGlnaXRMaXN0LmNvdW50ID0gMDsKKyAgICAgICAgLy8gIH0KKworICAgICAgICBpbnQgaTsKKyAgICAgICAgY2hhciB6ZXJvID0gc3ltYm9scy5nZXRaZXJvRGlnaXQoKTsKKyAgICAgICAgaW50IHplcm9EZWx0YSA9IHplcm8gLSAnMCc7IC8vICcwJyBpcyB0aGUgRGlnaXRMaXN0IHJlcHJlc2VudGF0aW9uIG9mIHplcm8KKyAgICAgICAgY2hhciBncm91cGluZyA9IHN5bWJvbHMuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKTsKKyAgICAgICAgY2hhciBkZWNpbWFsID0gaXNDdXJyZW5jeUZvcm1hdCA/CisgICAgICAgICAgICBzeW1ib2xzLmdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpIDoKKyAgICAgICAgICAgIHN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICBib29sZWFuIHVzZVNpZ0RpZyA9IGFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpOworICAgICAgICBpbnQgbWF4SW50RGlnID0gZ2V0TWF4aW11bUludGVnZXJEaWdpdHMoKTsKKyAgICAgICAgaW50IG1pbkludERpZyA9IGdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCk7CisKKyAgICAgICAgLyogUGVyIGJ1ZyA0MTQ3NzA2LCBEZWNpbWFsRm9ybWF0IG11c3QgcmVzcGVjdCB0aGUgc2lnbiBvZiBudW1iZXJzIHdoaWNoCisgICAgICAgICAqIGZvcm1hdCBhcyB6ZXJvLiAgVGhpcyBhbGxvd3Mgc2Vuc2libGUgY29tcHV0YXRpb25zIGFuZCBwcmVzZXJ2ZXMKKyAgICAgICAgICogcmVsYXRpb25zIHN1Y2ggYXMgc2lnbnVtKDEveCkgPSBzaWdudW0oeCksIHdoZXJlIHggaXMgK0luZmluaXR5IG9yCisgICAgICAgICAqIC1JbmZpbml0eS4gIFByaW9yIHRvIHRoaXMgZml4LCB3ZSBhbHdheXMgZm9ybWF0dGVkIHplcm8gdmFsdWVzIGFzIGlmCisgICAgICAgICAqIHRoZXkgd2VyZSBwb3NpdGl2ZS4gIExpdSA3LzYvOTguCisgICAgICAgICAqLworICAgICAgICBpZiAoZGlnaXRMaXN0LmlzWmVybygpKQorICAgICAgICB7CisgICAgICAgICAgICBkaWdpdExpc3QuZGVjaW1hbEF0ID0gMDsgLy8gTm9ybWFsaXplCisgICAgICAgIH0KKworICAgICAgICBpbnQgcHJlZml4TGVuID0gYXBwZW5kQWZmaXgocmVzdWx0LCBpc05lZ2F0aXZlLCB0cnVlKTsKKworICAgICAgICBpZiAodXNlRXhwb25lbnRpYWxOb3RhdGlvbikKKyAgICAgICAgeworICAgICAgICAgICAgLy8gUmVjb3JkIGZpZWxkIGluZm9ybWF0aW9uIGZvciBjYWxsZXIuCisgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5JTlRFR0VSX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleCgtMSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuRlJBQ1RJT05fRklFTEQpIHsKKyAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgoLTEpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgbWluRnJhY0RpZyA9IDA7CisgICAgICAgICAgICBpZiAodXNlU2lnRGlnKSB7CisgICAgICAgICAgICAgICAgbWF4SW50RGlnID0gbWluSW50RGlnID0gMTsKKyAgICAgICAgICAgICAgICBtaW5GcmFjRGlnID0gZ2V0TWluaW11bVNpZ25pZmljYW50RGlnaXRzKCkgLSAxOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtaW5GcmFjRGlnID0gZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCk7CisgICAgICAgICAgICAgICAgaWYgKG1heEludERpZyA+IE1BWF9TQ0lFTlRJRklDX0lOVEVHRVJfRElHSVRTKSB7CisgICAgICAgICAgICAgICAgICAgIG1heEludERpZyA9IDE7CisgICAgICAgICAgICAgICAgICAgIGlmIChtYXhJbnREaWcgPCBtaW5JbnREaWcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heEludERpZyA9IG1pbkludERpZzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobWF4SW50RGlnID4gbWluSW50RGlnKSB7CisgICAgICAgICAgICAgICAgICAgIG1pbkludERpZyA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAgICAgICAgICAgIAorCisgICAgICAgICAgICAvLyBNaW5pbXVtIGludGVnZXIgZGlnaXRzIGFyZSBoYW5kbGVkIGluIGV4cG9uZW50aWFsIGZvcm1hdCBieQorICAgICAgICAgICAgLy8gYWRqdXN0aW5nIHRoZSBleHBvbmVudC4gIEZvciBleGFtcGxlLCAwLjAxMjM0IHdpdGggMyBtaW5pbXVtCisgICAgICAgICAgICAvLyBpbnRlZ2VyIGRpZ2l0cyBpcyAiMTIzLjRFLTQiLgorCisgICAgICAgICAgICAvLyBNYXhpbXVtIGludGVnZXIgZGlnaXRzIGFyZSBpbnRlcnByZXRlZCBhcyBpbmRpY2F0aW5nIHRoZQorICAgICAgICAgICAgLy8gcmVwZWF0aW5nIHJhbmdlLiAgVGhpcyBpcyB1c2VmdWwgZm9yIGVuZ2luZWVyaW5nIG5vdGF0aW9uLCBpbgorICAgICAgICAgICAgLy8gd2hpY2ggdGhlIGV4cG9uZW50IGlzIHJlc3RyaWN0ZWQgdG8gYSBtdWx0aXBsZSBvZiAzLiAgRm9yCisgICAgICAgICAgICAvLyBleGFtcGxlLCAwLjAxMjM0IHdpdGggMyBtYXhpbXVtIGludGVnZXIgZGlnaXRzIGlzICIxMi4zNGUtMyIuCisgICAgICAgICAgICAvLyBJZiBtYXhpbXVtIGludGVnZXIgZGlnaXRzIGFyZSBkZWZpbmVkIGFuZCBhcmUgbGFyZ2VyIHRoYW4KKyAgICAgICAgICAgIC8vIG1pbmltdW0gaW50ZWdlciBkaWdpdHMsIHRoZW4gbWluaW11bSBpbnRlZ2VyIGRpZ2l0cyBhcmUKKyAgICAgICAgICAgIC8vIGlnbm9yZWQuCisKKyAgICAgICAgICAgIGludCBleHBvbmVudCA9IGRpZ2l0TGlzdC5kZWNpbWFsQXQ7CisgICAgICAgICAgICBpZiAobWF4SW50RGlnID4gMSAmJiBtYXhJbnREaWcgIT0gbWluSW50RGlnKSB7CisgICAgICAgICAgICAgICAgLy8gQSBleHBvbmVudCBpbmNyZW1lbnQgaXMgZGVmaW5lZDsgYWRqdXN0IHRvIGl0LgorICAgICAgICAgICAgICAgIGV4cG9uZW50ID0gKGV4cG9uZW50ID4gMCkgPyAoZXhwb25lbnQgLSAxKSAvIG1heEludERpZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAoZXhwb25lbnQgLyBtYXhJbnREaWcpIC0gMTsKKyAgICAgICAgICAgICAgICBleHBvbmVudCAqPSBtYXhJbnREaWc7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIE5vIGV4cG9uZW50IGluY3JlbWVudCBpcyBkZWZpbmVkOyB1c2UgbWluaW11bSBpbnRlZ2VyIGRpZ2l0cy4KKyAgICAgICAgICAgICAgICAvLyBJZiBub25lIGlzIHNwZWNpZmllZCwgYXMgaW4gIiNFMCIsIGdlbmVyYXRlIDEgaW50ZWdlciBkaWdpdC4KKyAgICAgICAgICAgICAgICBleHBvbmVudCAtPSAobWluSW50RGlnID4gMCB8fCBtaW5GcmFjRGlnID4gMCkKKyAgICAgICAgICAgICAgICAgICAgPyBtaW5JbnREaWcgOiAxOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBXZSBub3cgb3V0cHV0IGEgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzLCBhbmQgbW9yZSBpZiB0aGVyZQorICAgICAgICAgICAgLy8gYXJlIG1vcmUgZGlnaXRzLCB1cCB0byB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzLiAgV2UKKyAgICAgICAgICAgIC8vIHBsYWNlIHRoZSBkZWNpbWFsIHBvaW50IGFmdGVyIHRoZSAiaW50ZWdlciIgZGlnaXRzLCB3aGljaAorICAgICAgICAgICAgLy8gYXJlIHRoZSBmaXJzdCAoZGVjaW1hbEF0IC0gZXhwb25lbnQpIGRpZ2l0cy4KKyAgICAgICAgICAgIGludCBtaW5pbXVtRGlnaXRzID0gbWluSW50RGlnICsgbWluRnJhY0RpZzsKKyAgICAgICAgICAgIC8vIFRoZSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgaXMgaGFuZGxlZCBzcGVjaWFsbHkgaWYgdGhlIG51bWJlcgorICAgICAgICAgICAgLy8gaXMgemVybywgc2luY2UgdGhlbiB0aGVyZSBtYXkgYmUgbm8gZGlnaXRzLgorICAgICAgICAgICAgaW50IGludGVnZXJEaWdpdHMgPSBkaWdpdExpc3QuaXNaZXJvKCkgPyBtaW5JbnREaWcgOgorICAgICAgICAgICAgICAgIGRpZ2l0TGlzdC5kZWNpbWFsQXQgLSBleHBvbmVudDsKKyAgICAgICAgICAgIGludCB0b3RhbERpZ2l0cyA9IGRpZ2l0TGlzdC5jb3VudDsKKyAgICAgICAgICAgIGlmIChtaW5pbXVtRGlnaXRzID4gdG90YWxEaWdpdHMpIHRvdGFsRGlnaXRzID0gbWluaW11bURpZ2l0czsKKyAgICAgICAgICAgIGlmIChpbnRlZ2VyRGlnaXRzID4gdG90YWxEaWdpdHMpIHRvdGFsRGlnaXRzID0gaW50ZWdlckRpZ2l0czsKKworICAgICAgICAgICAgZm9yIChpPTA7IGk8dG90YWxEaWdpdHM7ICsraSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoaSA9PSBpbnRlZ2VyRGlnaXRzKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gUmVjb3JkIGZpZWxkIGluZm9ybWF0aW9uIGZvciBjYWxsZXIuCisgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LklOVEVHRVJfRklFTEQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0RW5kSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZGVjaW1hbCk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gUmVjb3JkIGZpZWxkIGluZm9ybWF0aW9uIGZvciBjYWxsZXIuCisgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LkZSQUNUSU9OX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChpIDwgZGlnaXRMaXN0LmNvdW50KSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShkaWdpdExpc3QuZGlnaXRzW2ldICsgemVyb0RlbHRhKSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgIHplcm8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvL0ZvciBJQ1UgY29tcGF0aWJpbGl0eSBhbmQgZm9ybWF0IDAgdG8gMEUwIHdpdGggcGF0dGVybiAiI0UwIiBbUmljaGFyZC9HQ0xdCisgICAgICAgICAgICBpZiAoZGlnaXRMaXN0LmlzWmVybygpICYmICh0b3RhbERpZ2l0cyA9PTApKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh6ZXJvKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gUmVjb3JkIGZpZWxkIGluZm9ybWF0aW9uCisgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5JTlRFR0VSX0ZJRUxEKSB7CisgICAgICAgICAgICAgICAgaWYgKGZpZWxkUG9zaXRpb24uZ2V0RW5kSW5kZXgoKSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5GUkFDVElPTl9GSUVMRCkgeworICAgICAgICAgICAgICAgIGlmIChmaWVsZFBvc2l0aW9uLmdldEJlZ2luSW5kZXgoKSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0RW5kSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gVGhlIGV4cG9uZW50IGlzIG91dHB1dCB1c2luZyB0aGUgcGF0dGVybi1zcGVjaWZpZWQgbWluaW11bQorICAgICAgICAgICAgLy8gZXhwb25lbnQgZGlnaXRzLiAgVGhlcmUgaXMgbm8gbWF4aW11bSBsaW1pdCB0byB0aGUgZXhwb25lbnQKKyAgICAgICAgICAgIC8vIGRpZ2l0cywgc2luY2UgdHJ1bmNhdGluZyB0aGUgZXhwb25lbnQgd291bGQgcmVzdWx0IGluIGFuCisgICAgICAgICAgICAvLyB1bmFjY2VwdGFibGUgaW5hY2N1cmFjeS4KKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3ltYm9scy5nZXRFeHBvbmVudFNlcGFyYXRvcigpKTsKKworICAgICAgICAgICAgLy8gRm9yIHplcm8gdmFsdWVzLCB3ZSBmb3JjZSB0aGUgZXhwb25lbnQgdG8gemVyby4gIFdlCisgICAgICAgICAgICAvLyBtdXN0IGRvIHRoaXMgaGVyZSwgYW5kIG5vdCBlYXJsaWVyLCBiZWNhdXNlIHRoZSB2YWx1ZQorICAgICAgICAgICAgLy8gaXMgdXNlZCB0byBkZXRlcm1pbmUgaW50ZWdlciBkaWdpdCBjb3VudCBhYm92ZS4KKyAgICAgICAgICAgIGlmIChkaWdpdExpc3QuaXNaZXJvKCkpIGV4cG9uZW50ID0gMDsKKworICAgICAgICAgICAgYm9vbGVhbiBuZWdhdGl2ZUV4cG9uZW50ID0gZXhwb25lbnQgPCAwOworICAgICAgICAgICAgaWYgKG5lZ2F0aXZlRXhwb25lbnQpIHsKKyAgICAgICAgICAgICAgICBleHBvbmVudCA9IC1leHBvbmVudDsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHN5bWJvbHMuZ2V0TWludXNTaWduKCkpOworICAgICAgICAgICAgfSBlbHNlIGlmIChleHBvbmVudFNpZ25BbHdheXNTaG93bikgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3ltYm9scy5nZXRQbHVzU2lnbigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRpZ2l0TGlzdC5zZXQoZXhwb25lbnQpOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCBleHBEaWcgPSBtaW5FeHBvbmVudERpZ2l0czsKKyAgICAgICAgICAgICAgICBpZiAodXNlRXhwb25lbnRpYWxOb3RhdGlvbiAmJiBleHBEaWcgPCAxKSB7CisgICAgICAgICAgICAgICAgICAgIGV4cERpZyA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAoaT1kaWdpdExpc3QuZGVjaW1hbEF0OyBpPGV4cERpZzsgKytpKSByZXN1bHQuYXBwZW5kKHplcm8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpPTA7IGk8ZGlnaXRMaXN0LmRlY2ltYWxBdDsgKytpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGkgPCBkaWdpdExpc3QuY291bnQpID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKGRpZ2l0TGlzdC5kaWdpdHNbaV0gKyB6ZXJvRGVsdGEpIDogemVybyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICAvLyBSZWNvcmQgZmllbGQgaW5mb3JtYXRpb24gZm9yIGNhbGxlci4KKyAgICAgICAgICAgIGlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LklOVEVHRVJfRklFTEQpIHsKKyAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEJlZ2luSW5kZXgocmVzdWx0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IHNpZ0NvdW50ID0gMDsKKyAgICAgICAgICAgIGludCBtaW5TaWdEaWcgPSBnZXRNaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMoKTsKKyAgICAgICAgICAgIGludCBtYXhTaWdEaWcgPSBnZXRNYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMoKTsKKyAgICAgICAgICAgIGlmICghdXNlU2lnRGlnKSB7CisgICAgICAgICAgICAgICAgbWluU2lnRGlnID0gMDsKKyAgICAgICAgICAgICAgICBtYXhTaWdEaWcgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gT3V0cHV0IHRoZSBpbnRlZ2VyIHBvcnRpb24uICBIZXJlICdjb3VudCcgaXMgdGhlIHRvdGFsCisgICAgICAgICAgICAvLyBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgd2Ugd2lsbCBkaXNwbGF5LCBpbmNsdWRpbmcgYm90aAorICAgICAgICAgICAgLy8gbGVhZGluZyB6ZXJvcyByZXF1aXJlZCB0byBzYXRpc2Z5IGdldE1pbmltdW1JbnRlZ2VyRGlnaXRzLAorICAgICAgICAgICAgLy8gYW5kIGFjdHVhbCBkaWdpdHMgcHJlc2VudCBpbiB0aGUgbnVtYmVyLgorICAgICAgICAgICAgaW50IGNvdW50ID0gdXNlU2lnRGlnID8KKyAgICAgICAgICAgICAgICBNYXRoLm1heCgxLCBkaWdpdExpc3QuZGVjaW1hbEF0KSA6IG1pbkludERpZzsKKyAgICAgICAgICAgIGlmIChkaWdpdExpc3QuZGVjaW1hbEF0ID4gMCAmJiBjb3VudCA8IGRpZ2l0TGlzdC5kZWNpbWFsQXQpIHsKKyAgICAgICAgICAgICAgICBjb3VudCA9IGRpZ2l0TGlzdC5kZWNpbWFsQXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpIGlzIHNtYWxsZXIKKyAgICAgICAgICAgIC8vIHRoYW4gdGhlIHJlYWwgbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzLiAgSWYgdGhpcyBpcyBzbywgd2UKKyAgICAgICAgICAgIC8vIG91dHB1dCB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgbWF4IGludGVnZXIgZGlnaXRzLiAgRm9yIGV4YW1wbGUsCisgICAgICAgICAgICAvLyB0aGUgdmFsdWUgMTk5NyBwcmludGVkIHdpdGggMiBtYXggaW50ZWdlciBkaWdpdHMgaXMganVzdCAiOTciLgorCisgICAgICAgICAgICBpbnQgZGlnaXRJbmRleCA9IDA7IC8vIEluZGV4IGludG8gZGlnaXRMaXN0LmZEaWdpdHNbXQorICAgICAgICAgICAgaWYgKGNvdW50ID4gbWF4SW50RGlnICYmIG1heEludERpZyA+PSAwKSB7CisgICAgICAgICAgICAgICAgY291bnQgPSBtYXhJbnREaWc7CisgICAgICAgICAgICAgICAgZGlnaXRJbmRleCA9IGRpZ2l0TGlzdC5kZWNpbWFsQXQgLSBjb3VudDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IHNpemVCZWZvcmVJbnRlZ2VyUGFydCA9IHJlc3VsdC5sZW5ndGgoKTsKKyAgICAgICAgICAgIGZvciAoaT1jb3VudC0xOyBpPj0wOyAtLWkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGkgPCBkaWdpdExpc3QuZGVjaW1hbEF0ICYmIGRpZ2l0SW5kZXggPCBkaWdpdExpc3QuY291bnQgJiYKKyAgICAgICAgICAgICAgICAgICAgc2lnQ291bnQgPCBtYXhTaWdEaWcpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gT3V0cHV0IGEgcmVhbCBkaWdpdAorICAgICAgICAgICAgICAgICAgICBieXRlIGQgPSBkaWdpdExpc3QuZGlnaXRzW2RpZ2l0SW5kZXgrK107CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpKGQgKyB6ZXJvRGVsdGEpKTsKKyAgICAgICAgICAgICAgICAgICAgKytzaWdDb3VudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gT3V0cHV0IGEgemVybyAobGVhZGluZyBvciB0cmFpbGluZykKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh6ZXJvKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNpZ0NvdW50ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytzaWdDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIE91dHB1dCBncm91cGluZyBzZXBhcmF0b3IgaWYgbmVjZXNzYXJ5LgorICAgICAgICAgICAgICAgIGlmIChpc0dyb3VwaW5nUG9zaXRpb24oaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChncm91cGluZyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBSZWNvcmQgZmllbGQgaW5mb3JtYXRpb24gZm9yIGNhbGxlci4KKyAgICAgICAgICAgIGlmIChmaWVsZFBvc2l0aW9uLmdldEZpZWxkKCkgPT0gTnVtYmVyRm9ybWF0LklOVEVHRVJfRklFTEQpIHsKKyAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEVuZEluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIERldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0aGVyZSBhcmUgYW55IHByaW50YWJsZSBmcmFjdGlvbmFsCisgICAgICAgICAgICAvLyBkaWdpdHMuICBJZiB3ZSd2ZSB1c2VkIHVwIHRoZSBkaWdpdHMgd2Uga25vdyB0aGVyZSBhcmVuJ3QuCisgICAgICAgICAgICBib29sZWFuIGZyYWN0aW9uUHJlc2VudCA9ICghaXNJbnRlZ2VyICYmIGRpZ2l0SW5kZXggPCBkaWdpdExpc3QuY291bnQpIHx8CisgICAgICAgICAgICAgICAgKHVzZVNpZ0RpZyA/IChzaWdDb3VudCA8IG1pblNpZ0RpZykgOiAoZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgPiAwKSk7CisKKyAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGZyYWN0aW9uIHByZXNlbnQsIGFuZCB3ZSBoYXZlbid0IHByaW50ZWQgYW55CisgICAgICAgICAgICAvLyBpbnRlZ2VyIGRpZ2l0cywgdGhlbiBwcmludCBhIHplcm8uICBPdGhlcndpc2Ugd2Ugd29uJ3QgcHJpbnQKKyAgICAgICAgICAgIC8vIF9hbnlfIGRpZ2l0cywgYW5kIHdlIHdvbid0IGJlIGFibGUgdG8gcGFyc2UgdGhpcyBzdHJpbmcuCisgICAgICAgICAgICBpZiAoIWZyYWN0aW9uUHJlc2VudCAmJiByZXN1bHQubGVuZ3RoKCkgPT0gc2l6ZUJlZm9yZUludGVnZXJQYXJ0KQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoemVybyk7CisKKyAgICAgICAgICAgIC8vIE91dHB1dCB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaWYgd2UgYWx3YXlzIGRvIHNvLgorICAgICAgICAgICAgaWYgKGRlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93biB8fCBmcmFjdGlvblByZXNlbnQpCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChkZWNpbWFsKTsKKworICAgICAgICAgICAgLy8gUmVjb3JkIGZpZWxkIGluZm9ybWF0aW9uIGZvciBjYWxsZXIuCisgICAgICAgICAgICBpZiAoZmllbGRQb3NpdGlvbi5nZXRGaWVsZCgpID09IE51bWJlckZvcm1hdC5GUkFDVElPTl9GSUVMRCkgeworICAgICAgICAgICAgICAgIGZpZWxkUG9zaXRpb24uc2V0QmVnaW5JbmRleChyZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb3VudCA9IHVzZVNpZ0RpZyA/IEludGVnZXIuTUFYX1ZBTFVFIDogZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCk7CisgICAgICAgICAgICBpZiAodXNlU2lnRGlnICYmIChzaWdDb3VudCA9PSBtYXhTaWdEaWcgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaWdDb3VudCA+PSBtaW5TaWdEaWcgJiYgZGlnaXRJbmRleCA9PSBkaWdpdExpc3QuY291bnQpKSkgeworICAgICAgICAgICAgICAgIGNvdW50ID0gMDsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaT0wOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIC8vIEhlcmUgaXMgd2hlcmUgd2UgZXNjYXBlIGZyb20gdGhlIGxvb3AuICBXZSBlc2NhcGUKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSd2ZSBvdXRwdXQgdGhlIG1heGltdW0gZnJhY3Rpb24gZGlnaXRzCisgICAgICAgICAgICAgICAgLy8gKHNwZWNpZmllZCBpbiB0aGUgZm9yIGV4cHJlc3Npb24gYWJvdmUpLiAgV2UgYWxzbworICAgICAgICAgICAgICAgIC8vIHN0b3Agd2hlbiB3ZSd2ZSBvdXRwdXQgdGhlIG1pbmltdW0gZGlnaXRzIGFuZAorICAgICAgICAgICAgICAgIC8vIGVpdGhlcjogd2UgaGF2ZSBhbiBpbnRlZ2VyLCBzbyB0aGVyZSBpcyBubworICAgICAgICAgICAgICAgIC8vIGZyYWN0aW9uYWwgc3R1ZmYgdG8gZGlzcGxheSwgb3Igd2UncmUgb3V0IG9mCisgICAgICAgICAgICAgICAgLy8gc2lnbmlmaWNhbnQgZGlnaXRzLgorICAgICAgICAgICAgICAgIGlmICghdXNlU2lnRGlnICYmIGkgPj0gZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgKGlzSW50ZWdlciB8fCBkaWdpdEluZGV4ID49IGRpZ2l0TGlzdC5jb3VudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gT3V0cHV0IGxlYWRpbmcgZnJhY3Rpb25hbCB6ZXJvcy4gIFRoZXNlIGFyZSB6ZXJvcworICAgICAgICAgICAgICAgIC8vIHRoYXQgY29tZSBhZnRlciB0aGUgZGVjaW1hbCBidXQgYmVmb3JlIGFueQorICAgICAgICAgICAgICAgIC8vIHNpZ25pZmljYW50IGRpZ2l0cy4gIFRoZXNlIGFyZSBvbmx5IG91dHB1dCBpZgorICAgICAgICAgICAgICAgIC8vIGFicyhudW1iZXIgYmVpbmcgZm9ybWF0dGVkKSA8IDEuMC4KKyAgICAgICAgICAgICAgICBpZiAoLTEtaSA+IChkaWdpdExpc3QuZGVjaW1hbEF0LTEpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoemVybyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIE91dHB1dCBhIGRpZ2l0LCBpZiB3ZSBoYXZlIGFueSBwcmVjaXNpb24gbGVmdCwgb3IgYQorICAgICAgICAgICAgICAgIC8vIHplcm8gaWYgd2UgZG9uJ3QuICBXZSBkb24ndCB3YW50IHRvIG91dHB1dCBub2lzZSBkaWdpdHMuCisgICAgICAgICAgICAgICAgaWYgKCFpc0ludGVnZXIgJiYgZGlnaXRJbmRleCA8IGRpZ2l0TGlzdC5jb3VudCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChjaGFyKShkaWdpdExpc3QuZGlnaXRzW2RpZ2l0SW5kZXgrK10gKyB6ZXJvRGVsdGEpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHplcm8pOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIElmIHdlIHJlYWNoIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzaWduaWZpY2FudAorICAgICAgICAgICAgICAgIC8vIGRpZ2l0cywgb3IgaWYgd2Ugb3V0cHV0IGFsbCB0aGUgcmVhbCBkaWdpdHMgYW5kCisgICAgICAgICAgICAgICAgLy8gcmVhY2ggdGhlIG1pbmltdW0sIHRoZW4gd2UgYXJlIGRvbmUuCisgICAgICAgICAgICAgICAgKytzaWdDb3VudDsKKyAgICAgICAgICAgICAgICBpZiAodXNlU2lnRGlnICYmCisgICAgICAgICAgICAgICAgICAgIChzaWdDb3VudCA9PSBtYXhTaWdEaWcgfHwKKyAgICAgICAgICAgICAgICAgICAgIChkaWdpdEluZGV4ID09IGRpZ2l0TGlzdC5jb3VudCAmJiBzaWdDb3VudCA+PSBtaW5TaWdEaWcpKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFJlY29yZCBmaWVsZCBpbmZvcm1hdGlvbiBmb3IgY2FsbGVyLgorICAgICAgICAgICAgaWYgKGZpZWxkUG9zaXRpb24uZ2V0RmllbGQoKSA9PSBOdW1iZXJGb3JtYXQuRlJBQ1RJT05fRklFTEQpIHsKKyAgICAgICAgICAgICAgICBmaWVsZFBvc2l0aW9uLnNldEVuZEluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgc3VmZml4TGVuID0gYXBwZW5kQWZmaXgocmVzdWx0LCBpc05lZ2F0aXZlLCBmYWxzZSk7CisKKyAgICAgICAgLy8gW05FV10KKyAgICAgICAgYWRkUGFkZGluZyhyZXN1bHQsIGZpZWxkUG9zaXRpb24sIHByZWZpeExlbiwgc3VmZml4TGVuKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyBbTkVXXQorICAgIHByaXZhdGUgZmluYWwgdm9pZCBhZGRQYWRkaW5nKFN0cmluZ0J1ZmZlciByZXN1bHQsIEZpZWxkUG9zaXRpb24gZmllbGRQb3NpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJlZml4TGVuLCBpbnQgc3VmZml4TGVuKSB7CisgICAgICAgIGlmIChmb3JtYXRXaWR0aCA+IDApIHsKKyAgICAgICAgICAgIGludCBsZW4gPSBmb3JtYXRXaWR0aCAtIHJlc3VsdC5sZW5ndGgoKTsKKyAgICAgICAgICAgIGlmIChsZW4gPiAwKSB7CisgICAgICAgICAgICAgICAgY2hhcltdIHBhZGRpbmcgPSBuZXcgY2hhcltsZW5dOworICAgICAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxsZW47ICsraSkgeworICAgICAgICAgICAgICAgICAgICBwYWRkaW5nW2ldID0gcGFkOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHBhZFBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgY2FzZSBQQURfQUZURVJfUFJFRklYOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuaW5zZXJ0KHByZWZpeExlbiwgcGFkZGluZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgUEFEX0JFRk9SRV9QUkVGSVg6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pbnNlcnQoMCwgcGFkZGluZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgUEFEX0JFRk9SRV9TVUZGSVg6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pbnNlcnQocmVzdWx0Lmxlbmd0aCgpIC0gc3VmZml4TGVuLCBwYWRkaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBQQURfQUZURVJfU1VGRklYOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHBhZGRpbmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHBhZFBvc2l0aW9uID09IFBBRF9CRUZPUkVfUFJFRklYIHx8CisgICAgICAgICAgICAgICAgICAgIHBhZFBvc2l0aW9uID09IFBBRF9BRlRFUl9QUkVGSVgpIHsKKyAgICAgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRCZWdpbkluZGV4KGZpZWxkUG9zaXRpb24uZ2V0QmVnaW5JbmRleCgpICsgbGVuKTsKKyAgICAgICAgICAgICAgICAgICAgZmllbGRQb3NpdGlvbi5zZXRFbmRJbmRleChmaWVsZFBvc2l0aW9uLmdldEVuZEluZGV4KCkgKyBsZW4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPkNIQU5HRUQ8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUGFyc2UgdGhlIGdpdmVuIHN0cmluZywgcmV0dXJuaW5nIGEgPGNvZGU+TnVtYmVyPC9jb2RlPiBvYmplY3QgdG8KKyAgICAgKiByZXByZXNlbnQgdGhlIHBhcnNlZCB2YWx1ZS4gIDxjb2RlPkRvdWJsZTwvY29kZT4gb2JqZWN0cyBhcmUgcmV0dXJuZWQgdG8KKyAgICAgKiByZXByZXNlbnQgbm9uLWludGVncmFsIHZhbHVlcyB3aGljaCBjYW5ub3QgYmUgc3RvcmVkIGluIGEKKyAgICAgKiA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPi4gIFRoZXNlIGFyZSA8Y29kZT5OYU48L2NvZGU+LCBpbmZpbml0eSwKKyAgICAgKiAtaW5maW5pdHksIGFuZCAtMC4wLiAgQWxsIG90aGVyIHZhbHVlcyBhcmUgcmV0dXJuZWQgYXMgPGNvZGU+TG9uZzwvY29kZT4sCisgICAgICogPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4sIG9yIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHZhbHVlcywgaW4gdGhhdCBvcmRlcgorICAgICAqIG9mIHByZWZlcmVuY2UuICBJZiB0aGUgcGFyc2UgZmFpbHMsIG51bGwgaXMgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyB0byBiZSBwYXJzZWQKKyAgICAgKiBAcGFyYW0gcGFyc2VQb3NpdGlvbiBkZWZpbmVzIHRoZSBwb3NpdGlvbiB3aGVyZSBwYXJzaW5nIGlzIHRvIGJlZ2luLAorICAgICAqIGFuZCB1cG9uIHJldHVybiwgdGhlIHBvc2l0aW9uIHdoZXJlIHBhcnNpbmcgbGVmdCBvZmYuICBJZiB0aGUgcG9zaXRpb24KKyAgICAgKiBoYXMgbm90IGNoYW5nZWQgdXBvbiByZXR1cm4sIHRoZW4gcGFyc2luZyBmYWlsZWQuCisgICAgICogQHJldHVybiBhIDxjb2RlPk51bWJlcjwvY29kZT4gb2JqZWN0IHdpdGggdGhlIHBhcnNlZCB2YWx1ZSBvcgorICAgICAqIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSBwYXJzZSBmYWlsZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyIHBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24pIHsKKyAgICAgICByZXR1cm4gKE51bWJlcikgcGFyc2UodGV4dCwgcGFyc2VQb3NpdGlvbiwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBQYXJzZXMgdGV4dCBmcm9tIHRoZSBnaXZlbiBzdHJpbmcgYXMgYSBDdXJyZW5jeUFtb3VudC4gIFVubGlrZQorICAgICAqIHRoZSBwYXJzZSgpIG1ldGhvZCwgdGhpcyBtZXRob2Qgd2lsbCBhdHRlbXB0IHRvIHBhcnNlIGEgZ2VuZXJpYworICAgICAqIGN1cnJlbmN5IG5hbWUsIHNlYXJjaGluZyBmb3IgYSBtYXRjaCBvZiB0aGlzIG9iamVjdCdzIGxvY2FsZSdzCisgICAgICogY3VycmVuY3kgZGlzcGxheSBuYW1lcywgb3IgZm9yIGEgMy1sZXR0ZXIgSVNPIGN1cnJlbmN5IGNvZGUuCisgICAgICogVGhpcyBtZXRob2Qgd2lsbCBmYWlsIGlmIHRoaXMgZm9ybWF0IGlzIG5vdCBhIGN1cnJlbmN5IGZvcm1hdCwKKyAgICAgKiB0aGF0IGlzLCBpZiBpdCBkb2VzIG5vdCBjb250YWluIHRoZSBjdXJyZW5jeSBwYXR0ZXJuIHN5bWJvbAorICAgICAqIChVKzAwQTQpIGluIGl0cyBwcmVmaXggb3Igc3VmZml4LgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwb3MgaW5wdXQtb3V0cHV0IHBvc2l0aW9uOyBvbiBpbnB1dCwgdGhlIHBvc2l0aW9uIHdpdGhpbgorICAgICAqIHRleHQgdG8gbWF0Y2g7IG11c3QgaGF2ZSAwIDw9IHBvcy5nZXRJbmRleCgpIDwgdGV4dC5sZW5ndGgoKTsKKyAgICAgKiBvbiBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUgbGFzdCBtYXRjaGVkIGNoYXJhY3Rlci4gSWYKKyAgICAgKiB0aGUgcGFyc2UgZmFpbHMsIHRoZSBwb3NpdGlvbiBpbiB1bmNoYW5nZWQgdXBvbiBvdXRwdXQuCisgICAgICogQHJldHVybiBhIEN1cnJlbmN5QW1vdW50LCBvciBudWxsIHVwb24gZmFpbHVyZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIEN1cnJlbmN5QW1vdW50IHBhcnNlQ3VycmVuY3koU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiAoQ3VycmVuY3lBbW91bnQpIHBhcnNlKHRleHQsIHBvcywgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2VzIHRoZSBnaXZlbiB0ZXh0IGFzIGVpdGhlciBhIE51bWJlciBvciBhIEN1cnJlbmN5QW1vdW50LgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBzdHJpbmcgdG8gcGFyc2UKKyAgICAgKiBAcGFyYW0gcGFyc2VQb3NpdGlvbiBpbnB1dC1vdXRwdXQgcG9zaXRpb247IG9uIGlucHV0LCB0aGUKKyAgICAgKiBwb3NpdGlvbiB3aXRoaW4gdGV4dCB0byBtYXRjaDsgbXVzdCBoYXZlIDAgPD0gcG9zLmdldEluZGV4KCkgPAorICAgICAqIHRleHQubGVuZ3RoKCk7IG9uIG91dHB1dCwgdGhlIHBvc2l0aW9uIGFmdGVyIHRoZSBsYXN0IG1hdGNoZWQKKyAgICAgKiBjaGFyYWN0ZXIuIElmIHRoZSBwYXJzZSBmYWlscywgdGhlIHBvc2l0aW9uIGluIHVuY2hhbmdlZCB1cG9uCisgICAgICogb3V0cHV0LgorICAgICAqIEBwYXJhbSBwYXJzZUN1cnJlbmN5IGlmIHRydWUsIGEgQ3VycmVuY3lBbW91bnQgaXMgcGFyc2VkIGFuZAorICAgICAqIHJldHVybmVkOyBvdGhlcndpc2UgYSBOdW1iZXIgaXMgcGFyc2VkIGFuZCByZXR1cm5lZAorICAgICAqIEByZXR1cm4gYSBOdW1iZXIgb3IgQ3VycmVuY3lBbW91bnQgb3IgbnVsbAorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0IHBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24sIGJvb2xlYW4gcGFyc2VDdXJyZW5jeSkgeworICAgICAgICBpbnQgYmFja3VwOworICAgICAgICBpbnQgaSA9IGJhY2t1cCA9IHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKTsKKworICAgICAgICAvLyBIYW5kbGUgTmFOIGFzIGEgc3BlY2lhbCBjYXNlOgorCisgICAgICAgIC8vIFNraXAgcGFkZGluZyBjaGFyYWN0ZXJzLCBpZiBhcm91bmQgcHJlZml4CisgICAgICAgIGlmIChmb3JtYXRXaWR0aCA+IDAgJiYgKHBhZFBvc2l0aW9uID09IFBBRF9CRUZPUkVfUFJFRklYIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZFBvc2l0aW9uID09IFBBRF9BRlRFUl9QUkVGSVgpKSB7CisgICAgICAgICAgICBpID0gc2tpcFBhZGRpbmcodGV4dCwgaSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRleHQucmVnaW9uTWF0Y2hlcyhpLCBzeW1ib2xzLmdldE5hTigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIHN5bWJvbHMuZ2V0TmFOKCkubGVuZ3RoKCkpKSB7CisgICAgICAgICAgICBpICs9IHN5bWJvbHMuZ2V0TmFOKCkubGVuZ3RoKCk7CisgICAgICAgICAgICAvLyBTa2lwIHBhZGRpbmcgY2hhcmFjdGVycywgaWYgYXJvdW5kIHN1ZmZpeAorICAgICAgICAgICAgaWYgKGZvcm1hdFdpZHRoID4gMCAmJiAocGFkUG9zaXRpb24gPT0gUEFEX0JFRk9SRV9TVUZGSVggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZFBvc2l0aW9uID09IFBBRF9BRlRFUl9TVUZGSVgpKSB7CisgICAgICAgICAgICAgICAgaSA9IHNraXBQYWRkaW5nKHRleHQsIGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChpKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgRG91YmxlKERvdWJsZS5OYU4pOworICAgICAgICB9CisKKyAgICAgICAgLy8gTmFOIHBhcnNlIGZhaWxlZDsgc3RhcnQgb3ZlcgorICAgICAgICBpID0gYmFja3VwOworCisgICAgICAgIGJvb2xlYW5bXSBzdGF0dXMgPSBuZXcgYm9vbGVhbltTVEFUVVNfTEVOR1RIXTsKKyAgICAgICAgQ3VycmVuY3lbXSBjdXJyZW5jeSA9IHBhcnNlQ3VycmVuY3kgPyBuZXcgQ3VycmVuY3lbMV0gOiBudWxsOworICAgICAgICBpZiAoIXN1YnBhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIGRpZ2l0TGlzdCwgZmFsc2UsIHN0YXR1cywgY3VycmVuY3kpKSB7CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KGJhY2t1cCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIE51bWJlciBuID0gbnVsbDsKKworICAgICAgICAvLyBIYW5kbGUgaW5maW5pdHkKKyAgICAgICAgaWYgKHN0YXR1c1tTVEFUVVNfSU5GSU5JVEVdKSB7CisgICAgICAgICAgICBuID0gbmV3IERvdWJsZShzdGF0dXNbU1RBVFVTX1BPU0lUSVZFXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBEb3VibGUuUE9TSVRJVkVfSU5GSU5JVFkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogRG91YmxlLk5FR0FUSVZFX0lORklOSVRZKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEhhbmRsZSAtMC4wCisgICAgICAgIGVsc2UgaWYgKCFzdGF0dXNbU1RBVFVTX1BPU0lUSVZFXSAmJiBkaWdpdExpc3QuaXNaZXJvKCkpIHsKKyAgICAgICAgICAgIG4gPSBuZXcgRG91YmxlKC0wLjApOworICAgICAgICB9CisKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBEbyBhcyBtdWNoIG9mIHRoZSBtdWx0aXBsaWVyIGNvbnZlcnNpb24gYXMgcG9zc2libGUgd2l0aG91dAorICAgICAgICAgICAgLy8gbG9zaW5nIGFjY3VyYWN5LgorICAgICAgICAgICAgaW50IG11bHQgPSBtdWx0aXBsaWVyOyAvLyBEb24ndCBtb2RpZnkgdGhpcy5tdWx0aXBsaWVyCisgICAgICAgICAgICB3aGlsZSAobXVsdCAlIDEwID09IDApIHsKKyAgICAgICAgICAgICAgICAtLWRpZ2l0TGlzdC5kZWNpbWFsQXQ7CisgICAgICAgICAgICAgICAgbXVsdCAvPSAxMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSGFuZGxlIGludGVncmFsIHZhbHVlcworICAgICAgICAgICAgaWYgKG11bHQgPT0gMSAmJiBkaWdpdExpc3QuaXNJbnRlZ3JhbCgpKSB7CisgICAgICAgICAgICAgICAgLy8gaGFjayBxdWljayBsb25nCisgICAgICAgIGlmIChkaWdpdExpc3QuZGVjaW1hbEF0IDwgMTIpIHsgLy8gcXVpY2sgY2hlY2sgZm9yIGxvbmcKKyAgICAgICAgICAgIGxvbmcgbCA9IDA7CisgICAgICAgICAgICBpZiAoZGlnaXRMaXN0LmNvdW50ID4gMCkgeworICAgICAgICAgICAgaW50IG54ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChueCA8IGRpZ2l0TGlzdC5jb3VudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwgPSBsICogMTAgKyAoY2hhcilkaWdpdExpc3QuZGlnaXRzW254KytdIC0gJzAnOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG54KysgPCBkaWdpdExpc3QuZGVjaW1hbEF0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbCAqPSAxMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RhdHVzW1NUQVRVU19QT1NJVElWRV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsID0gLWw7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbiA9IG5ldyBMb25nKGwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBCaWdJbnRlZ2VyIGJpZyA9IGRpZ2l0TGlzdC5nZXRCaWdJbnRlZ2VyKHN0YXR1c1tTVEFUVVNfUE9TSVRJVkVdKTsKKyAgICAgICAgICAgICAgICAgICAgbiA9IChiaWcuYml0TGVuZ3RoKCkgPCA2NCkgPworICAgICAgICAgICAgICAgICAgICAgICAgKE51bWJlcikgbmV3IExvbmcoYmlnLmxvbmdWYWx1ZSgpKSA6IChOdW1iZXIpIGJpZzsKKyAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBIYW5kbGUgbm9uLWludGVncmFsIHZhbHVlcworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgQmlnRGVjaW1hbCBiaWcgPSBkaWdpdExpc3QuZ2V0QmlnRGVjaW1hbElDVShzdGF0dXNbU1RBVFVTX1BPU0lUSVZFXSk7CisgICAgICAgICAgICAgICAgbiA9IGJpZzsKKyAgICAgICAgICAgICAgICBpZiAobXVsdCAhPSAxKSB7CisgICAgICAgICAgICAgICAgICAgIG4gPSBiaWcuZGl2aWRlKEJpZ0RlY2ltYWwudmFsdWVPZihtdWx0KSwKKyAgICAgICAgICAgICAgICAgICAgCQlCaWdEZWNpbWFsLlJPVU5EX0hBTEZfRVZFTik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gQXNzZW1ibGUgaW50byBDdXJyZW5jeUFtb3VudCBpZiBuZWNlc3NhcnkKKyAgICAgICAgcmV0dXJuIHBhcnNlQ3VycmVuY3kgPyAoT2JqZWN0KSBuZXcgQ3VycmVuY3lBbW91bnQobiwgY3VycmVuY3lbMF0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKE9iamVjdCkgbjsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVFVTX0lORklOSVRFID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVFVTX1BPU0lUSVZFID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVFVTX0xFTkdUSCAgID0gMjsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPkNIQU5HRUQ8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUGFyc2UgdGhlIGdpdmVuIHRleHQgaW50byBhIG51bWJlci4gIFRoZSB0ZXh0IGlzIHBhcnNlZCBiZWdpbm5pbmcgYXQKKyAgICAgKiBwYXJzZVBvc2l0aW9uLCB1bnRpbCBhbiB1bnBhcnNlYWJsZSBjaGFyYWN0ZXIgaXMgc2Vlbi4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgc3RyaW5nIHRvIHBhcnNlLgorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIFRoZSBwb3NpdGlvbiBhdCB3aGljaCB0byBiZWluZyBwYXJzaW5nLiAgVXBvbgorICAgICAqIHJldHVybiwgdGhlIGZpcnN0IHVucGFyc2VhYmxlIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gZGlnaXRzIFRoZSBEaWdpdExpc3QgdG8gc2V0IHRvIHRoZSBwYXJzZWQgdmFsdWUuCisgICAgICogQHBhcmFtIGlzRXhwb25lbnQgSWYgdHJ1ZSwgcGFyc2UgYW4gZXhwb25lbnQuICBUaGlzIG1lYW5zIG5vCisgICAgICogaW5maW5pdGUgdmFsdWVzIGFuZCBpbnRlZ2VyIG9ubHkuCisgICAgICogQHBhcmFtIHN0YXR1cyBVcG9uIHJldHVybiBjb250YWlucyBib29sZWFuIHN0YXR1cyBmbGFncyBpbmRpY2F0aW5nCisgICAgICogd2hldGhlciB0aGUgdmFsdWUgd2FzIGluZmluaXRlIGFuZCB3aGV0aGVyIGl0IHdhcyBwb3NpdGl2ZS4KKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgcmV0dXJuIHZhbHVlIGZvciBwYXJzZWQgY3VycmVuY3ksIGZvciBnZW5lcmljCisgICAgICogY3VycmVuY3kgcGFyc2luZyBtb2RlLCBvciBudWxsIGZvciBub3JtYWwgcGFyc2luZy4gSW4gZ2VuZXJpYworICAgICAqIGN1cnJlbmN5IHBhcnNpbmcgbW9kZSwgYW55IGN1cnJlbmN5IGlzIHBhcnNlZCwgbm90IGp1c3QgdGhlCisgICAgICogY3VycmVuY3kgdGhhdCB0aGlzIGZvcm1hdHRlciBpcyBzZXQgdG8uCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIHN1YnBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24sCisgICAgICAgICAgICAgICAgICAgRGlnaXRMaXN0IGRpZ2l0cywgYm9vbGVhbiBpc0V4cG9uZW50LAorICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3RhdHVzW10sIEN1cnJlbmN5IGN1cnJlbmN5W10pCisgICAgeworICAgICAgICBpbnQgcG9zaXRpb24gPSBwYXJzZVBvc2l0aW9uLmdldEluZGV4KCk7CisgICAgICAgIGludCBvbGRTdGFydCA9IHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKTsKKworICAgICAgICAvLyBNYXRjaCBwYWRkaW5nIGJlZm9yZSBwcmVmaXgKKyAgICAgICAgaWYgKGZvcm1hdFdpZHRoID4gMCAmJiBwYWRQb3NpdGlvbiA9PSBQQURfQkVGT1JFX1BSRUZJWCkgeworICAgICAgICAgICAgcG9zaXRpb24gPSBza2lwUGFkZGluZyh0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIH0KKworICAgICAgICAvLyBNYXRjaCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgcHJlZml4ZXM7IHByZWZlciBsb25nZXN0IG1hdGNoLgorICAgICAgICBpbnQgcG9zTWF0Y2ggPSBjb21wYXJlQWZmaXgodGV4dCwgcG9zaXRpb24sIGZhbHNlLCB0cnVlLCBjdXJyZW5jeSk7CisgICAgICAgIGludCBuZWdNYXRjaCA9IGNvbXBhcmVBZmZpeCh0ZXh0LCBwb3NpdGlvbiwgdHJ1ZSwgdHJ1ZSwgY3VycmVuY3kpOworICAgICAgICBpZiAocG9zTWF0Y2ggPj0gMCAmJiBuZWdNYXRjaCA+PSAwKSB7CisgICAgICAgICAgICBpZiAocG9zTWF0Y2ggPiBuZWdNYXRjaCkgeworICAgICAgICAgICAgICAgIG5lZ01hdGNoID0gLTE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG5lZ01hdGNoID4gcG9zTWF0Y2gpIHsKKyAgICAgICAgICAgICAgICBwb3NNYXRjaCA9IC0xOworICAgICAgICAgICAgfSAgCisgICAgICAgIH0KKyAgICAgICAgaWYgKHBvc01hdGNoID49IDApIHsKKyAgICAgICAgICAgIHBvc2l0aW9uICs9IHBvc01hdGNoOworICAgICAgICB9IGVsc2UgaWYgKG5lZ01hdGNoID49IDApIHsKKyAgICAgICAgICAgIHBvc2l0aW9uICs9IG5lZ01hdGNoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRFcnJvckluZGV4KHBvc2l0aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1hdGNoIHBhZGRpbmcgYWZ0ZXIgcHJlZml4CisgICAgICAgIGlmIChmb3JtYXRXaWR0aCA+IDAgJiYgcGFkUG9zaXRpb24gPT0gUEFEX0FGVEVSX1BSRUZJWCkgeworICAgICAgICAgICAgcG9zaXRpb24gPSBza2lwUGFkZGluZyh0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIH0KKworICAgICAgICAvLyBwcm9jZXNzIGRpZ2l0cyBvciBJbmYsIGZpbmQgZGVjaW1hbCBwb3NpdGlvbgorICAgICAgICBzdGF0dXNbU1RBVFVTX0lORklOSVRFXSA9IGZhbHNlOworICAgICAgICBpZiAoIWlzRXhwb25lbnQgJiYgdGV4dC5yZWdpb25NYXRjaGVzKHBvc2l0aW9uLHN5bWJvbHMuZ2V0SW5maW5pdHkoKSwwLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzLmdldEluZmluaXR5KCkubGVuZ3RoKCkpKQorICAgICAgICB7CisgICAgICAgICAgICBwb3NpdGlvbiArPSBzeW1ib2xzLmdldEluZmluaXR5KCkubGVuZ3RoKCk7CisgICAgICAgICAgICBzdGF0dXNbU1RBVFVTX0lORklOSVRFXSA9IHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBXZSBub3cgaGF2ZSBhIHN0cmluZyBvZiBkaWdpdHMsIHBvc3NpYmx5IHdpdGggZ3JvdXBpbmcgc3ltYm9scywKKyAgICAgICAgICAgIC8vIGFuZCBkZWNpbWFsIHBvaW50cy4gIFdlIHdhbnQgdG8gcHJvY2VzcyB0aGVzZSBpbnRvIGEgRGlnaXRMaXN0LgorICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBwdXQgYSBidW5jaCBvZiBsZWFkaW5nIHplcm9zIGludG8gdGhlIERpZ2l0TGlzdAorICAgICAgICAgICAgLy8gdGhvdWdoLCBzbyB3ZSBrZWVwIHRyYWNrIG9mIHRoZSBsb2NhdGlvbiBvZiB0aGUgZGVjaW1hbCBwb2ludCwKKyAgICAgICAgICAgIC8vIHB1dCBvbmx5IHNpZ25pZmljYW50IGRpZ2l0cyBpbnRvIHRoZSBEaWdpdExpc3QsIGFuZCBhZGp1c3QgdGhlCisgICAgICAgICAgICAvLyBleHBvbmVudCBhcyBuZWVkZWQuCisKKyAgICAgICAgICAgIGRpZ2l0cy5kZWNpbWFsQXQgPSBkaWdpdHMuY291bnQgPSAwOworICAgICAgICAgICAgY2hhciB6ZXJvID0gc3ltYm9scy5nZXRaZXJvRGlnaXQoKTsKKyAgICAgICAgICAgIGNoYXIgZGVjaW1hbCA9IGlzQ3VycmVuY3lGb3JtYXQgPworICAgICAgICAgICAgc3ltYm9scy5nZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoKSA6IHN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICAgICAgY2hhciBncm91cGluZyA9IHN5bWJvbHMuZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgIFN0cmluZyBleHBvbmVudFNlcCA9IHN5bWJvbHMuZ2V0RXhwb25lbnRTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gc2F3RGVjaW1hbCA9IGZhbHNlOworICAgICAgICAgICAgYm9vbGVhbiBzYXdFeHBvbmVudCA9IGZhbHNlOworICAgICAgICAgICAgYm9vbGVhbiBzYXdEaWdpdCA9IGZhbHNlOworICAgICAgICAgICAgaW50IGV4cG9uZW50ID0gMDsgLy8gU2V0IHRvIHRoZSBleHBvbmVudCB2YWx1ZSwgaWYgYW55CisgICAgICAgICAgICBpbnQgZGlnaXQgPSAwOworCisgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIHRyYWNrIGRpZ2l0Q291bnQgb3Vyc2VsdmVzLCBiZWNhdXNlIGRpZ2l0cy5jb3VudCB3aWxsCisgICAgICAgICAgICAvLyBwaW4gd2hlbiB0aGUgbWF4aW11bSBhbGxvd2FibGUgZGlnaXRzIGlzIHJlYWNoZWQuCisgICAgICAgICAgICBpbnQgZGlnaXRDb3VudCA9IDA7CisKKyAgICAgICAgICAgIGludCBiYWNrdXAgPSAtMTsKKyAgICAgICAgICAgIGZvciAoOyBwb3NpdGlvbiA8IHRleHQubGVuZ3RoKCk7ICsrcG9zaXRpb24pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2hhciBjaCA9IHRleHQuY2hhckF0KHBvc2l0aW9uKTsKKworICAgICAgICAgICAgICAgIC8qIFdlIHJlY29nbml6ZSBhbGwgZGlnaXQgcmFuZ2VzLCBub3Qgb25seSB0aGUgTGF0aW4gZGlnaXQgcmFuZ2UKKyAgICAgICAgICAgICAgICAgKiAnMCcuLic5Jy4gIFdlIGRvIHNvIGJ5IHVzaW5nIHRoZSBVQ2hhcmFjdGVyLmRpZ2l0KCkgbWV0aG9kLAorICAgICAgICAgICAgICAgICAqIHdoaWNoIGNvbnZlcnRzIGEgdmFsaWQgVW5pY29kZSBkaWdpdCB0byB0aGUgcmFuZ2UgMC4uOS4KKyAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAqIFRoZSBjaGFyYWN0ZXIgJ2NoJyBtYXkgYmUgYSBkaWdpdC4gIElmIHNvLCBwbGFjZSBpdHMgdmFsdWUKKyAgICAgICAgICAgICAgICAgKiBmcm9tIDAgdG8gOSBpbiAnZGlnaXQnLiAgRmlyc3QgdHJ5IHVzaW5nIHRoZSBsb2NhbGUgZGlnaXQsCisgICAgICAgICAgICAgICAgICogd2hpY2ggbWF5IG9yIE1BWSBOT1QgYmUgYSBzdGFuZGFyZCBVbmljb2RlIGRpZ2l0IHJhbmdlLiAgSWYKKyAgICAgICAgICAgICAgICAgKiB0aGlzIGZhaWxzLCB0cnkgdXNpbmcgdGhlIHN0YW5kYXJkIFVuaWNvZGUgZGlnaXQgcmFuZ2VzIGJ5CisgICAgICAgICAgICAgICAgICogY2FsbGluZyBVQ2hhcmFjdGVyLmRpZ2l0KCkuICBJZiB0aGlzIGFsc28gZmFpbHMsIGRpZ2l0IHdpbGwKKyAgICAgICAgICAgICAgICAgKiBoYXZlIGEgdmFsdWUgb3V0c2lkZSB0aGUgcmFuZ2UgMC4uOS4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBkaWdpdCA9IGNoIC0gemVybzsKKyAgICAgICAgICAgICAgICBpZiAoZGlnaXQgPCAwIHx8IGRpZ2l0ID4gOSkgZGlnaXQgPSBVQ2hhcmFjdGVyLmRpZ2l0KGNoLCAxMCk7CisKKyAgICAgICAgICAgICAgICBpZiAoZGlnaXQgPT0gMCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIENhbmNlbCBvdXQgYmFja3VwIHNldHRpbmcgKHNlZSBncm91cGluZyBoYW5kbGVyIGJlbG93KQorICAgICAgICAgICAgICAgICAgICBiYWNrdXAgPSAtMTsgLy8gRG8gdGhpcyBCRUZPUkUgY29udGludWUgc3RhdGVtZW50IGJlbG93ISEhCisgICAgICAgICAgICAgICAgICAgIHNhd0RpZ2l0ID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgbGVhZGluZyB6ZXJvcworICAgICAgICAgICAgICAgICAgICBpZiAoZGlnaXRzLmNvdW50ID09IDApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSBsZWFkaW5nIHplcm9zIGluIGludGVnZXIgcGFydCBvZiBudW1iZXIuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNhd0RlY2ltYWwpIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIHNlZW4gdGhlIGRlY2ltYWwsIGJ1dCBubyBzaWduaWZpY2FudCBkaWdpdHMgeWV0LAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3ZSBhY2NvdW50IGZvciBsZWFkaW5nIHplcm9zIGJ5IGRlY3JlbWVudGluZyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpZ2l0cy5kZWNpbWFsQXQgaW50byBuZWdhdGl2ZSB2YWx1ZXMuCisgICAgICAgICAgICAgICAgICAgICAgICAtLWRpZ2l0cy5kZWNpbWFsQXQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2RpZ2l0Q291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBkaWdpdHMuYXBwZW5kKChjaGFyKShkaWdpdCArICcwJykpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRpZ2l0ID4gMCAmJiBkaWdpdCA8PSA5KSAvLyBbc2ljXSBkaWdpdD09MCBoYW5kbGVkIGFib3ZlCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBzYXdEaWdpdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICsrZGlnaXRDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgZGlnaXRzLmFwcGVuZCgoY2hhcikoZGlnaXQgKyAnMCcpKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBDYW5jZWwgb3V0IGJhY2t1cCBzZXR0aW5nIChzZWUgZ3JvdXBpbmcgaGFuZGxlciBiZWxvdykKKyAgICAgICAgICAgICAgICAgICAgYmFja3VwID0gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFpc0V4cG9uZW50ICYmIGNoID09IGRlY2ltYWwpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBvbmx5IHBhcnNpbmcgaW50ZWdlcnMsIG9yIGlmIHdlIEFMUkVBRFkgc2F3IHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBkZWNpbWFsLCB0aGVuIGRvbid0IHBhcnNlIHRoaXMgb25lLgorICAgICAgICAgICAgICAgICAgICBpZiAoaXNQYXJzZUludGVnZXJPbmx5KCkgfHwgc2F3RGVjaW1hbCkgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGRpZ2l0cy5kZWNpbWFsQXQgPSBkaWdpdENvdW50OyAvLyBOb3QgZGlnaXRzLmNvdW50IQorICAgICAgICAgICAgICAgICAgICBzYXdEZWNpbWFsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoIWlzRXhwb25lbnQgJiYgY2ggPT0gZ3JvdXBpbmcgJiYgaXNHcm91cGluZ1VzZWQoKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzYXdEZWNpbWFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBJZ25vcmUgZ3JvdXBpbmcgY2hhcmFjdGVycywgaWYgd2UgYXJlIHVzaW5nIHRoZW0sIGJ1dCByZXF1aXJlCisgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgdGhleSBiZSBmb2xsb3dlZCBieSBhIGRpZ2l0LiAgT3RoZXJ3aXNlIHdlIGJhY2t1cCBhbmQKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVwcm9jZXNzIHRoZW0uCisgICAgICAgICAgICAgICAgICAgIGJhY2t1cCA9IHBvc2l0aW9uOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmICghaXNFeHBvbmVudCAmJiAhc2F3RXhwb25lbnQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LnJlZ2lvbk1hdGNoZXMocG9zaXRpb24sIGV4cG9uZW50U2VwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBleHBvbmVudFNlcC5sZW5ndGgoKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBQYXJzZSBzaWduLCBpZiBwcmVzZW50CisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gbmVnRXhwID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGludCBwb3MgPSBwb3NpdGlvbiArIGV4cG9uZW50U2VwLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBpZiAocG9zIDwgdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSB0ZXh0LmNoYXJBdChwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09IHN5bWJvbHMuZ2V0UGx1c1NpZ24oKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSBzeW1ib2xzLmdldE1pbnVzU2lnbigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVnRXhwID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIERpZ2l0TGlzdCBleHBvbmVudERpZ2l0cyA9IG5ldyBEaWdpdExpc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgZXhwb25lbnREaWdpdHMuY291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAocG9zIDwgdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZGlnaXQgPSB0ZXh0LmNoYXJBdChwb3MpIC0gemVybzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaWdpdCA8IDAgfHwgZGlnaXQgPiA5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbid0IHBhcnNlICJbMUUwXSIgd2hlbiBwYXR0ZXJuIGlzICIwLiMjI0UwO1swLiMjI0UwXSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNob3VsZCB1cGRhdGUgcmVhc3NpZ24gdGhlIHZhbHVlIG9mICdjaCcgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlOiAgZGlnaXQgPSBDaGFyYWN0ZXIuZGlnaXQoY2gsIDEwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZ2l0ID0gVUNoYXJhY3Rlci5kaWdpdCh0ZXh0LmNoYXJBdChwb3MpLCAxMCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlnaXQgPj0gMCAmJiBkaWdpdCA8PSA5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb25lbnREaWdpdHMuYXBwZW5kKChjaGFyKShkaWdpdCArICcwJykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4cG9uZW50RGlnaXRzLmNvdW50ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXhwb25lbnREaWdpdHMuZGVjaW1hbEF0ID0gZXhwb25lbnREaWdpdHMuY291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBleHBvbmVudCA9IChpbnQpIGV4cG9uZW50RGlnaXRzLmdldExvbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZWdFeHApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvbmVudCA9IC1leHBvbmVudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gcG9zOyAvLyBBZHZhbmNlIHBhc3QgdGhlIGV4cG9uZW50CisgICAgICAgICAgICAgICAgICAgICAgICBzYXdFeHBvbmVudCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBicmVhazsgLy8gV2hldGhlciB3ZSBmYWlsIG9yIHN1Y2NlZWQsIHdlIGV4aXQgdGhpcyBsb29wCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChiYWNrdXAgIT0gLTEpIHBvc2l0aW9uID0gYmFja3VwOworCisgICAgICAgICAgICAvLyBJZiB0aGVyZSB3YXMgbm8gZGVjaW1hbCBwb2ludCB3ZSBoYXZlIGFuIGludGVnZXIKKyAgICAgICAgICAgIGlmICghc2F3RGVjaW1hbCkgZGlnaXRzLmRlY2ltYWxBdCA9IGRpZ2l0Q291bnQ7IC8vIE5vdCBkaWdpdHMuY291bnQhCisKKyAgICAgICAgICAgIC8vIEFkanVzdCBmb3IgZXhwb25lbnQsIGlmIGFueQorICAgICAgICAgICAgZGlnaXRzLmRlY2ltYWxBdCArPSBleHBvbmVudDsKKworICAgICAgICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgdGV4dCBzdHJpbmcgd2FzIHJlY29nbml6ZWQuICBGb3IgZXhhbXBsZSwgcGFyc2UKKyAgICAgICAgICAgIC8vICJ4IiB3aXRoIHBhdHRlcm4gIiMwLjAwIiAocmV0dXJuIGluZGV4IGFuZCBlcnJvciBpbmRleCBib3RoIDApCisgICAgICAgICAgICAvLyBwYXJzZSAiJCIgd2l0aCBwYXR0ZXJuICIkIzAuMDAiLiAocmV0dXJuIGluZGV4IDAgYW5kIGVycm9yIGluZGV4CisgICAgICAgICAgICAvLyAxKS4KKyAgICAgICAgICAgIGlmICghc2F3RGlnaXQgJiYgZGlnaXRDb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChvbGRTdGFydCk7CisgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRFcnJvckluZGV4KG9sZFN0YXJ0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBNYXRjaCBwYWRkaW5nIGJlZm9yZSBzdWZmaXgKKyAgICAgICAgaWYgKGZvcm1hdFdpZHRoID4gMCAmJiBwYWRQb3NpdGlvbiA9PSBQQURfQkVGT1JFX1NVRkZJWCkgeworICAgICAgICAgICAgcG9zaXRpb24gPSBza2lwUGFkZGluZyh0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIH0KKworICAgICAgICAvLyBNYXRjaCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgc3VmZml4ZXM7IHByZWZlciBsb25nZXN0IG1hdGNoLgorICAgICAgICBpZiAocG9zTWF0Y2ggPj0gMCkgeworICAgICAgICAgICAgcG9zTWF0Y2ggPSBjb21wYXJlQWZmaXgodGV4dCwgcG9zaXRpb24sIGZhbHNlLCBmYWxzZSwgY3VycmVuY3kpOworICAgICAgICB9CisgICAgICAgIGlmIChuZWdNYXRjaCA+PSAwKSB7CisgICAgICAgICAgICBuZWdNYXRjaCA9IGNvbXBhcmVBZmZpeCh0ZXh0LCBwb3NpdGlvbiwgdHJ1ZSwgZmFsc2UsIGN1cnJlbmN5KTsKKyAgICAgICAgfQorICAgICAgICBpZiAocG9zTWF0Y2ggPj0gMCAmJiBuZWdNYXRjaCA+PSAwKSB7CisgICAgICAgICAgICBpZiAocG9zTWF0Y2ggPiBuZWdNYXRjaCkgeworICAgICAgICAgICAgICAgIG5lZ01hdGNoID0gLTE7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG5lZ01hdGNoID4gcG9zTWF0Y2gpIHsKKyAgICAgICAgICAgICAgICBwb3NNYXRjaCA9IC0xOworICAgICAgICAgICAgfSAgCisgICAgICAgIH0KKworICAgICAgICAvLyBGYWlsIGlmIG5laXRoZXIgb3IgYm90aAorICAgICAgICBpZiAoKHBvc01hdGNoID49IDApID09IChuZWdNYXRjaCA+PSAwKSkgeworICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRFcnJvckluZGV4KHBvc2l0aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHBvc2l0aW9uICs9IChwb3NNYXRjaD49MCA/IHBvc01hdGNoIDogbmVnTWF0Y2gpOworCisgICAgICAgIC8vIE1hdGNoIHBhZGRpbmcgYWZ0ZXIgc3VmZml4CisgICAgICAgIGlmIChmb3JtYXRXaWR0aCA+IDAgJiYgcGFkUG9zaXRpb24gPT0gUEFEX0FGVEVSX1NVRkZJWCkgeworICAgICAgICAgICAgcG9zaXRpb24gPSBza2lwUGFkZGluZyh0ZXh0LCBwb3NpdGlvbik7CisgICAgICAgIH0KKworICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KHBvc2l0aW9uKTsKKworICAgICAgICBzdGF0dXNbU1RBVFVTX1BPU0lUSVZFXSA9IChwb3NNYXRjaCA+PSAwKTsKKworICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID09IG9sZFN0YXJ0KSB7CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgocG9zaXRpb24pOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFN0YXJ0aW5nIGF0IHBvc2l0aW9uLCBhZHZhbmNlIHBhc3QgYSBydW4gb2YgcGFkIGNoYXJhY3RlcnMsIGlmIGFueS4KKyAgICAgKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYWZ0ZXIgcG9zaXRpb24gdGhhdCBpcyBub3QgYSBwYWQKKyAgICAgKiBjaGFyYWN0ZXIuICBSZXN1bHQgaXMgPj0gcG9zaXRpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgc2tpcFBhZGRpbmcoU3RyaW5nIHRleHQsIGludCBwb3NpdGlvbikgeworICAgICAgICB3aGlsZSAocG9zaXRpb24gPCB0ZXh0Lmxlbmd0aCgpICYmIHRleHQuY2hhckF0KHBvc2l0aW9uKSA9PSBwYWQpIHsKKyAgICAgICAgICAgICsrcG9zaXRpb247CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBvc2l0aW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVuZ3RoIG1hdGNoZWQgYnkgdGhlIGdpdmVuIGFmZml4LCBvciAtMSBpZiBub25lLgorICAgICAqIFJ1bnMgb2Ygd2hpdGUgc3BhY2UgaW4gdGhlIGFmZml4LCBtYXRjaCBydW5zIG9mIHdoaXRlIHNwYWNlIGluCisgICAgICogdGhlIGlucHV0LiAgUGF0dGVybiB3aGl0ZSBzcGFjZSBhbmQgaW5wdXQgd2hpdGUgc3BhY2UgYXJlCisgICAgICogZGV0ZXJtaW5lZCBkaWZmZXJlbnRseTsgc2VlIGNvZGUuCisgICAgICogQHBhcmFtIHRleHQgaW5wdXQgdGV4dAorICAgICAqIEBwYXJhbSBwb3Mgb2Zmc2V0IGludG8gaW5wdXQgYXQgd2hpY2ggdG8gYmVnaW4gbWF0Y2hpbmcKKyAgICAgKiBAcGFyYW0gaXNOZWdhdGl2ZQorICAgICAqIEBwYXJhbSBpc1ByZWZpeAorICAgICAqIEBwYXJhbSBjdXJyZW5jeSByZXR1cm4gdmFsdWUgZm9yIHBhcnNlZCBjdXJyZW5jeSwgZm9yIGdlbmVyaWMKKyAgICAgKiBjdXJyZW5jeSBwYXJzaW5nIG1vZGUsIG9yIG51bGwgZm9yIG5vcm1hbCBwYXJzaW5nLiBJbiBnZW5lcmljCisgICAgICogY3VycmVuY3kgcGFyc2luZyBtb2RlLCBhbnkgY3VycmVuY3kgaXMgcGFyc2VkLCBub3QganVzdCB0aGUKKyAgICAgKiBjdXJyZW5jeSB0aGF0IHRoaXMgZm9ybWF0dGVyIGlzIHNldCB0by4KKyAgICAgKiBAcmV0dXJuIGxlbmd0aCBvZiBpbnB1dCB0aGF0IG1hdGNoZXMsIG9yIC0xIGlmIG1hdGNoIGZhaWx1cmUKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBjb21wYXJlQWZmaXgoU3RyaW5nIHRleHQsIGludCBwb3MsIGJvb2xlYW4gaXNOZWdhdGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc1ByZWZpeCwgQ3VycmVuY3lbXSBjdXJyZW5jeSkgeworICAgICAgICBpZiAoY3VycmVuY3kgIT0gbnVsbCB8fCBjdXJyZW5jeUNob2ljZSAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoaXNQcmVmaXgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNvbXBsZXhBZmZpeChpc05lZ2F0aXZlID8gbmVnUHJlZml4UGF0dGVybiA6IHBvc1ByZWZpeFBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCwgcG9zLCBjdXJyZW5jeSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ29tcGxleEFmZml4KGlzTmVnYXRpdmUgPyBuZWdTdWZmaXhQYXR0ZXJuIDogcG9zU3VmZml4UGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LCBwb3MsIGN1cnJlbmN5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc1ByZWZpeCkgeworICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVTaW1wbGVBZmZpeChpc05lZ2F0aXZlID8gbmVnYXRpdmVQcmVmaXggOiBwb3NpdGl2ZVByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCwgcG9zKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlU2ltcGxlQWZmaXgoaXNOZWdhdGl2ZSA/IG5lZ2F0aXZlU3VmZml4IDogcG9zaXRpdmVTdWZmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQsIHBvcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBtYXRjaGVkIGJ5IHRoZSBnaXZlbiBhZmZpeCwgb3IgLTEgaWYgbm9uZS4KKyAgICAgKiBSdW5zIG9mIHdoaXRlIHNwYWNlIGluIHRoZSBhZmZpeCwgbWF0Y2ggcnVucyBvZiB3aGl0ZSBzcGFjZSBpbgorICAgICAqIHRoZSBpbnB1dC4gIFBhdHRlcm4gd2hpdGUgc3BhY2UgYW5kIGlucHV0IHdoaXRlIHNwYWNlIGFyZQorICAgICAqIGRldGVybWluZWQgZGlmZmVyZW50bHk7IHNlZSBjb2RlLgorICAgICAqIEBwYXJhbSBhZmZpeCBwYXR0ZXJuIHN0cmluZywgdGFrZW4gYXMgYSBsaXRlcmFsCisgICAgICogQHBhcmFtIGlucHV0IGlucHV0IHRleHQKKyAgICAgKiBAcGFyYW0gcG9zIG9mZnNldCBpbnRvIGlucHV0IGF0IHdoaWNoIHRvIGJlZ2luIG1hdGNoaW5nCisgICAgICogQHJldHVybiBsZW5ndGggb2YgaW5wdXQgdGhhdCBtYXRjaGVzLCBvciAtMSBpZiBtYXRjaCBmYWlsdXJlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGNvbXBhcmVTaW1wbGVBZmZpeChTdHJpbmcgYWZmaXgsIFN0cmluZyBpbnB1dCwgaW50IHBvcykgeworICAgICAgICBpbnQgc3RhcnQgPSBwb3M7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxhZmZpeC5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChhZmZpeCwgaSk7CisgICAgICAgICAgICBpbnQgbGVuID0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgLy8gV2UgbWF5IGhhdmUgYSBwYXR0ZXJuIGxpa2U6IFx1MjAwRiBcdTAwMjAKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgYW5kIGlucHV0IHRleHQgbGlrZTogXHUyMDBGIFx1MDAyMAorICAgICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCBVKzIwMEYgYW5kIFUrMDAyMCBhcmUgUnVsZVdoaXRlU3BhY2UgYnV0IG9ubHkKKyAgICAgICAgICAgICAgICAvLyBVKzAwMjAgaXMgVVdoaXRlU3BhY2UuICBTbyB3ZSBoYXZlIHRvIGZpcnN0IGRvIGEgZGlyZWN0CisgICAgICAgICAgICAgICAgLy8gbWF0Y2ggb2YgdGhlIHJ1biBvZiBSVUxFIHdoaXRlc3BhY2UgaW4gdGhlIHBhdHRlcm4sCisgICAgICAgICAgICAgICAgLy8gdGhlbiBtYXRjaCBhbnkgZXh0cmEgY2hhcmFjdGVycy4KKyAgICAgICAgICAgICAgICBib29sZWFuIGxpdGVyYWxNYXRjaCA9IGZhbHNlOworICAgICAgICAgICAgICAgIHdoaWxlIChwb3MgPCBpbnB1dC5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5jaGFyQXQoaW5wdXQsIHBvcykgPT0gYykgeworICAgICAgICAgICAgICAgICAgICBsaXRlcmFsTWF0Y2ggPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBpICs9IGxlbjsKKyAgICAgICAgICAgICAgICAgICAgcG9zICs9IGxlbjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gYWZmaXgubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQoYWZmaXgsIGkpOworICAgICAgICAgICAgICAgICAgICBsZW4gPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgICAgIGlmICghVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIEFkdmFuY2Ugb3ZlciBydW4gaW4gYWZmaXgKKyAgICAgICAgICAgICAgICBpID0gc2tpcFJ1bGVXaGl0ZVNwYWNlKGFmZml4LCBpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBBZHZhbmNlIG92ZXIgcnVuIGluIGlucHV0IHRleHQKKyAgICAgICAgICAgICAgICAvLyBNdXN0IHNlZSBhdCBsZWFzdCBvbmUgd2hpdGUgc3BhY2UgY2hhciBpbiBpbnB1dCwKKyAgICAgICAgICAgICAgICAvLyB1bmxlc3Mgd2UndmUgYWxyZWFkeSBtYXRjaGVkIHNvbWUgY2hhcmFjdGVycyBsaXRlcmFsbHkuCisgICAgICAgICAgICAgICAgaW50IHMgPSBwb3M7CisgICAgICAgICAgICAgICAgcG9zID0gc2tpcFVXaGl0ZVNwYWNlKGlucHV0LCBwb3MpOworICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gcyAmJiAhbGl0ZXJhbE1hdGNoKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChwb3MgPCBpbnB1dC5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICBVVEYxNi5jaGFyQXQoaW5wdXQsIHBvcykgPT0gYykgeworICAgICAgICAgICAgICAgICAgICBpICs9IGxlbjsKKyAgICAgICAgICAgICAgICAgICAgcG9zICs9IGxlbjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3MgLSBzdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTa2lwIG92ZXIgYSBydW4gb2YgemVybyBvciBtb3JlIGlzUnVsZVdoaXRlU3BhY2UoKSBjaGFyYWN0ZXJzIGF0CisgICAgICogcG9zIGluIHRleHQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHNraXBSdWxlV2hpdGVTcGFjZShTdHJpbmcgdGV4dCwgaW50IHBvcykgeworICAgICAgICB3aGlsZSAocG9zIDwgdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQodGV4dCwgcG9zKTsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvcyArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTa2lwIG92ZXIgYSBydW4gb2YgemVybyBvciBtb3JlIGlzVVdoaXRlU3BhY2UoKSBjaGFyYWN0ZXJzIGF0IHBvcworICAgICAqIGluIHRleHQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHNraXBVV2hpdGVTcGFjZShTdHJpbmcgdGV4dCwgaW50IHBvcykgeworICAgICAgICB3aGlsZSAocG9zIDwgdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQodGV4dCwgcG9zKTsKKyAgICAgICAgICAgIGlmICghVUNoYXJhY3Rlci5pc1VXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3MgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZW5ndGggbWF0Y2hlZCBieSB0aGUgZ2l2ZW4gYWZmaXgsIG9yIC0xIGlmIG5vbmUuCisgICAgICogQHBhcmFtIGFmZml4UGF0IHBhdHRlcm4gc3RyaW5nCisgICAgICogQHBhcmFtIHRleHQgaW5wdXQgdGV4dAorICAgICAqIEBwYXJhbSBwb3Mgb2Zmc2V0IGludG8gaW5wdXQgYXQgd2hpY2ggdG8gYmVnaW4gbWF0Y2hpbmcKKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgcmV0dXJuIHZhbHVlIGZvciBwYXJzZWQgY3VycmVuY3ksIGZvciBnZW5lcmljCisgICAgICogY3VycmVuY3kgcGFyc2luZyBtb2RlLCBvciBudWxsIGZvciBub3JtYWwgcGFyc2luZy4gSW4gZ2VuZXJpYworICAgICAqIGN1cnJlbmN5IHBhcnNpbmcgbW9kZSwgYW55IGN1cnJlbmN5IGlzIHBhcnNlZCwgbm90IGp1c3QgdGhlCisgICAgICogY3VycmVuY3kgdGhhdCB0aGlzIGZvcm1hdHRlciBpcyBzZXQgdG8uCisgICAgICogQHJldHVybiBsZW5ndGggb2YgaW5wdXQgdGhhdCBtYXRjaGVzLCBvciAtMSBpZiBtYXRjaCBmYWlsdXJlCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgY29tcGFyZUNvbXBsZXhBZmZpeChTdHJpbmcgYWZmaXhQYXQsIFN0cmluZyB0ZXh0LCBpbnQgcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VycmVuY3lbXSBjdXJyZW5jeSkgeworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxhZmZpeFBhdC5sZW5ndGgoKSAmJiBwb3MgPj0gMDsgKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBhZmZpeFBhdC5jaGFyQXQoaSsrKTsKKyAgICAgICAgICAgIGlmIChjID09IFFVT1RFKSB7CisgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICBpbnQgaiA9IGFmZml4UGF0LmluZGV4T2YoUVVPVEUsIGkpOworICAgICAgICAgICAgICAgICAgICBpZiAoaiA9PSBpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBtYXRjaCh0ZXh0LCBwb3MsIFFVT1RFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBqKzE7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChqID4gaSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gbWF0Y2godGV4dCwgcG9zLCBhZmZpeFBhdC5zdWJzdHJpbmcoaSwgaikpOworICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGorMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpPGFmZml4UGF0Lmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZmaXhQYXQuY2hhckF0KGkpPT1RVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IG1hdGNoKHRleHQsIHBvcywgUVVPVEUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb29wIGFnYWluCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVW50ZXJtaW5hdGVkIHF1b3RlOyBzaG91bGQgYmUgY2F1Z2h0IGJ5IGFwcGx5CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBwYXR0ZXJuLgorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICBjYXNlIENVUlJFTkNZX1NJR046CisgICAgICAgICAgICAgICAgLy8gSWYgY3VycmVuY3kgIT0gbnVsbCwgdGhlbiBwZXJmb3JtIGdlbmVyaWMgY3VycmVuY3kgbWF0Y2hpbmcuCisgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBkbyBjdXJyZW5jeSBjaG9pY2UgcGFyc2luZy4KKyAgICAgICAgICAgICAgICAvL2Fzc2VydChjdXJyZW5jeSAhPSBudWxsIHx8CisgICAgICAgICAgICAgICAgLy8gICAgICAgKGdldEN1cnJlbmN5KCkgIT0gbnVsbCAmJiBjdXJyZW5jeUNob2ljZSAhPSBudWxsKSk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBpbnRsID0gaTxhZmZpeFBhdC5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICBhZmZpeFBhdC5jaGFyQXQoaSkgPT0gQ1VSUkVOQ1lfU0lHTjsKKworICAgICAgICAgICAgICAgIC8vIFBhcnNlIGdlbmVyaWMgY3VycmVuY3kgLS0gYW55dGhpbmcgZm9yIHdoaWNoIHdlCisgICAgICAgICAgICAgICAgLy8gaGF2ZSBhIGRpc3BsYXkgbmFtZSwgb3IgYW55IDMtbGV0dGVyIElTTyBjb2RlLgorICAgICAgICAgICAgICAgIGlmIChjdXJyZW5jeSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRyeSB0byBwYXJzZSBkaXNwbGF5IG5hbWUgZm9yIG91ciBsb2NhbGU7IGZpcnN0CisgICAgICAgICAgICAgICAgICAgIC8vIGRldGVybWluZSBvdXIgbG9jYWxlLgorICAgICAgICAgICAgICAgICAgICBVTG9jYWxlIHVsb2MgPSBnZXRMb2NhbGUoVUxvY2FsZS5WQUxJRF9MT0NBTEUpOworICAgICAgICAgICAgICAgICAgICBpZiAodWxvYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhcHBseVBhdHRlcm4gaGFzIGJlZW4gY2FsbGVkOyB1c2UgdGhlIHN5bWJvbHMKKyAgICAgICAgICAgICAgICAgICAgICAgIHVsb2MgPSBzeW1ib2xzLmdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gRGVsZWdhdGUgcGFyc2Ugb2YgZGlzcGxheSBuYW1lID0+IElTTyBjb2RlIHRvIEN1cnJlbmN5CisgICAgICAgICAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKHBvcyk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpc28gPSBDdXJyZW5jeS5wYXJzZSh1bG9jLCB0ZXh0LCBwcG9zKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBJZiBwYXJzZSBzdWNjZWVkcywgcG9wdWxhdGUgY3VycmVuY3lbMF0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzbyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeVswXSA9IEN1cnJlbmN5LmdldEluc3RhbmNlKGlzbyk7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbnRsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBtYXRjaCh0ZXh0LCBwb3MsIGdldEN1cnJlbmN5KCkuZ2V0Q3VycmVuY3lDb2RlKCkpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwcG9zID0gbmV3IFBhcnNlUG9zaXRpb24ocG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIE51bWJlciBuID0gKi9jdXJyZW5jeUNob2ljZS5wYXJzZSh0ZXh0LCBwcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IChwcG9zLmdldEluZGV4KCkgPT0gcG9zKSA/IC0xIDogcHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgY2FzZSBQQVRURVJOX1BFUkNFTlQ6CisgICAgICAgICAgICAgICAgYyA9IHN5bWJvbHMuZ2V0UGVyY2VudCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQQVRURVJOX1BFUl9NSUxMRToKKyAgICAgICAgICAgICAgICBjID0gc3ltYm9scy5nZXRQZXJNaWxsKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBBVFRFUk5fTUlOVVM6CisgICAgICAgICAgICAgICAgYyA9IHN5bWJvbHMuZ2V0TWludXNTaWduKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3MgPSBtYXRjaCh0ZXh0LCBwb3MsIGMpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgaSA9IHNraXBSdWxlV2hpdGVTcGFjZShhZmZpeFBhdCwgaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcG9zOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1hdGNoIGEgc2luZ2xlIGNoYXJhY3RlciBhdCB0ZXh0W3Bvc10gYW5kIHJldHVybiB0aGUgaW5kZXggb2YgdGhlCisgICAgICogbmV4dCBjaGFyYWN0ZXIgdXBvbiBzdWNjZXNzLiAgUmV0dXJuIC0xIG9uIGZhaWx1cmUuICBJZgorICAgICAqIGlzUnVsZVdoaXRlU3BhY2UoY2gpIHRoZW4gbWF0Y2ggYSBydW4gb2Ygd2hpdGUgc3BhY2UgaW4gdGV4dC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IG1hdGNoKFN0cmluZyB0ZXh0LCBpbnQgcG9zLCBpbnQgY2gpIHsKKyAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGNoKSkgeworICAgICAgICAgICAgLy8gQWR2YW5jZSBvdmVyIHJ1biBvZiB3aGl0ZSBzcGFjZSBpbiBpbnB1dCB0ZXh0CisgICAgICAgICAgICAvLyBNdXN0IHNlZSBhdCBsZWFzdCBvbmUgd2hpdGUgc3BhY2UgY2hhciBpbiBpbnB1dAorICAgICAgICAgICAgaW50IHMgPSBwb3M7CisgICAgICAgICAgICBwb3MgPSBza2lwVVdoaXRlU3BhY2UodGV4dCwgcG9zKTsKKyAgICAgICAgICAgIGlmIChwb3MgPT0gcykgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChwb3MgPj0gMCAmJiBVVEYxNi5jaGFyQXQodGV4dCwgcG9zKSA9PSBjaCkgPworICAgICAgICAgICAgKHBvcyArIFVURjE2LmdldENoYXJDb3VudChjaCkpIDogLTE7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWF0Y2ggYSBzdHJpbmcgYXQgdGV4dFtwb3NdIGFuZCByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBuZXh0CisgICAgICogY2hhcmFjdGVyIHVwb24gc3VjY2Vzcy4gIFJldHVybiAtMSBvbiBmYWlsdXJlLiAgTWF0Y2ggYSBydW4gb2YKKyAgICAgKiB3aGl0ZSBzcGFjZSBpbiBzdHIgd2l0aCBhIHJ1biBvZiB3aGl0ZSBzcGFjZSBpbiB0ZXh0LgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgbWF0Y2goU3RyaW5nIHRleHQsIGludCBwb3MsIFN0cmluZyBzdHIpIHsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHN0ci5sZW5ndGgoKSAmJiBwb3MgPj0gMDsgKSB7CisgICAgICAgICAgICBpbnQgY2ggPSBVVEYxNi5jaGFyQXQoc3RyLCBpKTsKKyAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNoKTsKKyAgICAgICAgICAgIHBvcyA9IG1hdGNoKHRleHQsIHBvcywgY2gpOworICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGNoKSkgeworICAgICAgICAgICAgICAgIGkgPSBza2lwUnVsZVdoaXRlU3BhY2Uoc3RyLCBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcG9zOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSBkZWNpbWFsIGZvcm1hdCBzeW1ib2xzIHVzZWQgYnkgdGhpcyBmb3JtYXQuCisgICAgICogQHJldHVybiBkZXNpcmVkIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0U3ltYm9scyBnZXREZWNpbWFsRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIGRvbid0IGFsbG93IG11bHRpcGxlIHJlZmVyZW5jZXMKKyAgICAgICAgICAgIHJldHVybiAoRGVjaW1hbEZvcm1hdFN5bWJvbHMpIHN5bWJvbHMuY2xvbmUoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGZvbykgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIHNob3VsZCBuZXZlciBoYXBwZW4KKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZGVjaW1hbCBmb3JtYXQgc3ltYm9scyB1c2VkIGJ5IHRoaXMgZm9ybWF0LiAgVGhlCisgICAgICogZm9ybWF0IHVzZXMgYSBjb3B5IG9mIHRoZSBwcm92aWRlZCBzeW1ib2xzLgorICAgICAqIEBwYXJhbSBuZXdTeW1ib2xzIGRlc2lyZWQgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoRGVjaW1hbEZvcm1hdFN5bWJvbHMgbmV3U3ltYm9scykgeworICAgICAgICBzeW1ib2xzID0gKERlY2ltYWxGb3JtYXRTeW1ib2xzKSBuZXdTeW1ib2xzLmNsb25lKCk7CisgICAgICAgIHNldEN1cnJlbmN5Rm9yU3ltYm9scygpOworICAgICAgICBleHBhbmRBZmZpeGVzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXBkYXRlIHRoZSBjdXJyZW5jeSBvYmplY3QgdG8gbWF0Y2ggdGhlIHN5bWJvbHMuICBUaGlzIG1ldGhvZAorICAgICAqIGlzIHVzZWQgb25seSB3aGVuIHRoZSBjYWxsZXIgaGFzIHBhc3NlZCBpbiBhIHN5bWJvbHMgb2JqZWN0CisgICAgICogdGhhdCBtYXkgbm90IGJlIHRoZSBkZWZhdWx0IG9iamVjdCBmb3IgaXRzIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0Q3VycmVuY3lGb3JTeW1ib2xzKCkgeworICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgVXBkYXRlIHRoZSBhZmZpeCBzdHJpbmdzIGFjY3JvZGluZyB0byBzeW1ib2xzIGluIG9yZGVyIHRvIGtlZXAKKyAgICAgICAgICB0aGUgYWZmaXggc3RyaW5ncyB1cCB0byBkYXRlLgorICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIC8vIFdpdGggdGhlIGludHJvZHVjdGlvbiBvZiB0aGUgQ3VycmVuY3kgb2JqZWN0LCB0aGUgY3VycmVuY3kKKyAgICAgICAgLy8gc3ltYm9scyBpbiB0aGUgREZTIG9iamVjdCBhcmUgaWdub3JlZC4gIEZvciBiYWNrd2FyZAorICAgICAgICAvLyBjb21wYXRpYmlsaXR5LCB3ZSBjaGVjayBhbnkgZXhwbGljaXRseSBzZXQgREZTIG9iamVjdC4gIElmIGl0CisgICAgICAgIC8vIGlzIGEgZGVmYXVsdCBzeW1ib2xzIG9iamVjdCBmb3IgaXRzIGxvY2FsZSwgd2UgY2hhbmdlIHRoZQorICAgICAgICAvLyBjdXJyZW5jeSBvYmplY3QgdG8gb25lIGZvciB0aGF0IGxvY2FsZS4gIElmIGl0IGlzIGN1c3RvbSwKKyAgICAgICAgLy8gd2Ugc2V0IHRoZSBjdXJyZW5jeSB0byBudWxsLgorICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBkZWYgPQorICAgICAgICAgICAgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKHN5bWJvbHMuZ2V0TG9jYWxlKCkpOworICAgICAgICAKKyAgICAgICAgaWYgKHN5bWJvbHMuZ2V0Q3VycmVuY3lTeW1ib2woKS5lcXVhbHMoCisgICAgICAgICAgICAgICAgZGVmLmdldEN1cnJlbmN5U3ltYm9sKCkpICYmCisgICAgICAgICAgICBzeW1ib2xzLmdldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbCgpLmVxdWFscygKKyAgICAgICAgICAgICAgICBkZWYuZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCkpKSB7CisgICAgICAgICAgICBzZXRDdXJyZW5jeShDdXJyZW5jeS5nZXRJbnN0YW5jZShzeW1ib2xzLmdldExvY2FsZSgpKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzZXRDdXJyZW5jeShudWxsKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgcG9zaXRpdmUgcHJlZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiArMTIzLCAkMTIzLCBzRnIxMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBvc2l0aXZlUHJlZml4ICgpIHsKKyAgICAgICAgcmV0dXJuIHBvc2l0aXZlUHJlZml4OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgcG9zaXRpdmUgcHJlZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiArMTIzLCAkMTIzLCBzRnIxMjMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQb3NpdGl2ZVByZWZpeCAoU3RyaW5nIG5ld1ZhbHVlKSB7CisgICAgICAgIHBvc2l0aXZlUHJlZml4ID0gbmV3VmFsdWU7CisgICAgICAgIHBvc1ByZWZpeFBhdHRlcm4gPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbmVnYXRpdmUgcHJlZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiAtMTIzLCAoJDEyMykgKHdpdGggbmVnYXRpdmUgc3VmZml4KSwgc0ZyLTEyMworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmVnYXRpdmVQcmVmaXggKCkgeworICAgICAgICByZXR1cm4gbmVnYXRpdmVQcmVmaXg7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBuZWdhdGl2ZSBwcmVmaXguCisgICAgICogPFA+RXhhbXBsZXM6IC0xMjMsICgkMTIzKSAod2l0aCBuZWdhdGl2ZSBzdWZmaXgpLCBzRnItMTIzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmVnYXRpdmVQcmVmaXggKFN0cmluZyBuZXdWYWx1ZSkgeworICAgICAgICBuZWdhdGl2ZVByZWZpeCA9IG5ld1ZhbHVlOworICAgICAgICBuZWdQcmVmaXhQYXR0ZXJuID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHBvc2l0aXZlIHN1ZmZpeC4KKyAgICAgKiA8UD5FeGFtcGxlOiAxMjMlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRQb3NpdGl2ZVN1ZmZpeCAoKSB7CisgICAgICAgIHJldHVybiBwb3NpdGl2ZVN1ZmZpeDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHBvc2l0aXZlIHN1ZmZpeC4KKyAgICAgKiA8UD5FeGFtcGxlOiAxMjMlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UG9zaXRpdmVTdWZmaXggKFN0cmluZyBuZXdWYWx1ZSkgeworICAgICAgICBwb3NpdGl2ZVN1ZmZpeCA9IG5ld1ZhbHVlOworICAgICAgICBwb3NTdWZmaXhQYXR0ZXJuID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5lZ2F0aXZlIHN1ZmZpeC4KKyAgICAgKiA8UD5FeGFtcGxlczogLTEyMyUsICgkMTIzKSAod2l0aCBwb3NpdGl2ZSBzdWZmaXhlcykKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5lZ2F0aXZlU3VmZml4ICgpIHsKKyAgICAgICAgcmV0dXJuIG5lZ2F0aXZlU3VmZml4OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgcG9zaXRpdmUgc3VmZml4LgorICAgICAqIDxQPkV4YW1wbGVzOiAxMjMlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmVnYXRpdmVTdWZmaXggKFN0cmluZyBuZXdWYWx1ZSkgeworICAgICAgICBuZWdhdGl2ZVN1ZmZpeCA9IG5ld1ZhbHVlOworICAgICAgICBuZWdTdWZmaXhQYXR0ZXJuID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG11bHRpcGxpZXIgZm9yIHVzZSBpbiBwZXJjZW50LCBwZXJtaWxsLCBldGMuCisgICAgICogRm9yIGEgcGVyY2VudGFnZSwgc2V0IHRoZSBzdWZmaXhlcyB0byBoYXZlICIlIiBhbmQgdGhlIG11bHRpcGxpZXIgdG8gYmUgMTAwLgorICAgICAqIChGb3IgQXJhYmljLCB1c2UgYXJhYmljIHBlcmNlbnQgc3ltYm9sKS4KKyAgICAgKiBGb3IgYSBwZXJtaWxsLCBzZXQgdGhlIHN1ZmZpeGVzIHRvIGhhdmUgIlx1MjAzMSIgYW5kIHRoZSBtdWx0aXBsaWVyIHRvIGJlIDEwMDAuCisgICAgICogPFA+RXhhbXBsZXM6IHdpdGggMTAwLCAxLjIzIC0+ICIxMjMiLCBhbmQgIjEyMyIgLT4gMS4yMworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TXVsdGlwbGllciAoKSB7CisgICAgICAgIHJldHVybiBtdWx0aXBsaWVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbXVsdGlwbGllciBmb3IgdXNlIGluIHBlcmNlbnQsIHBlcm1pbGwsIGV0Yy4KKyAgICAgKiBGb3IgYSBwZXJjZW50YWdlLCBzZXQgdGhlIHN1ZmZpeGVzIHRvIGhhdmUgIiUiIGFuZCB0aGUgbXVsdGlwbGllciB0byBiZSAxMDAuCisgICAgICogKEZvciBBcmFiaWMsIHVzZSBhcmFiaWMgcGVyY2VudCBzeW1ib2wpLgorICAgICAqIEZvciBhIHBlcm1pbGwsIHNldCB0aGUgc3VmZml4ZXMgdG8gaGF2ZSAiXHUyMDMxIiBhbmQgdGhlIG11bHRpcGxpZXIgdG8gYmUgMTAwMC4KKyAgICAgKiA8UD5FeGFtcGxlczogd2l0aCAxMDAsIDEuMjMgLT4gIjEyMyIsIGFuZCAiMTIzIiAtPiAxLjIzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TXVsdGlwbGllciAoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIGlmIChuZXdWYWx1ZSA8PSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJCYWQgbXVsdGlwbGllcjogIiArIG5ld1ZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBtdWx0aXBsaWVyID0gbmV3VmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEdldCB0aGUgcm91bmRpbmcgaW5jcmVtZW50LgorICAgICAqIEByZXR1cm4gQSBwb3NpdGl2ZSByb3VuZGluZyBpbmNyZW1lbnQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHJvdW5kaW5nCisgICAgICogaXMgbm90IGluIGVmZmVjdC4KKyAgICAgKiBAc2VlICNzZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nTW9kZQorICAgICAqIEBzZWUgI3NldFJvdW5kaW5nTW9kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICBwdWJsaWMgamF2YS5tYXRoLkJpZ0RlY2ltYWwgZ2V0Um91bmRpbmdJbmNyZW1lbnQoKSB7CisgICAgICAgIGlmIChyb3VuZGluZ0luY3JlbWVudElDVSA9PSBudWxsKSByZXR1cm4gbnVsbDsKKyAgICAgICAgcmV0dXJuIHJvdW5kaW5nSW5jcmVtZW50SUNVLnRvQmlnRGVjaW1hbCgpOworICAgIH0KKy8vI2Vsc2UKKy8vIyMgICAgcHVibGljIEJpZ0RlY2ltYWwgZ2V0Um91bmRpbmdJbmNyZW1lbnQoKSB7CisvLyMjICAgIAlpZiAocm91bmRpbmdJbmNyZW1lbnRJQ1UgPT0gbnVsbCkgcmV0dXJuIG51bGw7CisvLyMjICAgICAgICByZXR1cm4gbmV3IEJpZ0RlY2ltYWwocm91bmRpbmdJbmNyZW1lbnRJQ1UudG9TdHJpbmcoKSk7CisvLyMjICAgIH0KKy8vI2VuZGlmCisgICAgCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIHJvdW5kaW5nIGluY3JlbWVudC4gIFRoaXMgbWV0aG9kIGFsc28gY29udHJvbHMgd2hldGhlcgorICAgICAqIHJvdW5kaW5nIGlzIGVuYWJsZWQuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIEEgcG9zaXRpdmUgcm91bmRpbmcgaW5jcmVtZW50LCBvciA8Y29kZT5udWxsPC9jb2RlPiBvcgorICAgICAqIDxjb2RlPkJpZ0RlY2ltYWwoMC4wKTwvY29kZT4gdG8gZGlzYWJsZSByb3VuZGluZy4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiA8Y29kZT5uZXdWYWx1ZTwvY29kZT4gaXMgPCAwLjAKKyAgICAgKiBAc2VlICNnZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nTW9kZQorICAgICAqIEBzZWUgI3NldFJvdW5kaW5nTW9kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJvdW5kaW5nSW5jcmVtZW50KGphdmEubWF0aC5CaWdEZWNpbWFsIG5ld1ZhbHVlKSB7CisgICAgICAgIGlmIChuZXdWYWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICBzZXRSb3VuZGluZ0luY3JlbWVudCgoQmlnRGVjaW1hbCludWxsKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNldFJvdW5kaW5nSW5jcmVtZW50KG5ldyBCaWdEZWNpbWFsKG5ld1ZhbHVlKSk7CisgICAgICAgIH0KKyAgICB9CisvLyNlbmRpZgorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgcm91bmRpbmcgaW5jcmVtZW50LiAgVGhpcyBtZXRob2QgYWxzbyBjb250cm9scyB3aGV0aGVyCisgICAgICogcm91bmRpbmcgaXMgZW5hYmxlZC4KKyAgICAgKiBAcGFyYW0gbmV3VmFsdWUgQSBwb3NpdGl2ZSByb3VuZGluZyBpbmNyZW1lbnQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IG9yCisgICAgICogPGNvZGU+QmlnRGVjaW1hbCgwLjApPC9jb2RlPiB0byBkaXNhYmxlIHJvdW5kaW5nLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIDxjb2RlPm5ld1ZhbHVlPC9jb2RlPiBpcyA8IDAuMAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nSW5jcmVtZW50CisgICAgICogQHNlZSAjZ2V0Um91bmRpbmdNb2RlCisgICAgICogQHNlZSAjc2V0Um91bmRpbmdNb2RlCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSb3VuZGluZ0luY3JlbWVudChCaWdEZWNpbWFsIG5ld1ZhbHVlKSB7CisgICAgICAgIGludCBpID0gbmV3VmFsdWUgPT0gbnVsbAorICAgICAgICAgICAgPyAwIDogbmV3VmFsdWUuY29tcGFyZVRvKEJpZ0RlY2ltYWwuWkVSTyk7CisgICAgICAgIGlmIChpIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCByb3VuZGluZyBpbmNyZW1lbnQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICBzZXRJbnRlcm5hbFJvdW5kaW5nSW5jcmVtZW50KG51bGwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2V0SW50ZXJuYWxSb3VuZGluZ0luY3JlbWVudChuZXdWYWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgc2V0Um91bmRpbmdEb3VibGUoKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIHJvdW5kaW5nIGluY3JlbWVudC4gIFRoaXMgbWV0aG9kIGFsc28gY29udHJvbHMgd2hldGhlcgorICAgICAqIHJvdW5kaW5nIGlzIGVuYWJsZWQuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIEEgcG9zaXRpdmUgcm91bmRpbmcgaW5jcmVtZW50LCBvciAwLjAgdG8gZGlzYWJsZQorICAgICAqIHJvdW5kaW5nLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIDxjb2RlPm5ld1ZhbHVlPC9jb2RlPiBpcyA8IDAuMAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nSW5jcmVtZW50CisgICAgICogQHNlZSAjZ2V0Um91bmRpbmdNb2RlCisgICAgICogQHNlZSAjc2V0Um91bmRpbmdNb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Um91bmRpbmdJbmNyZW1lbnQoZG91YmxlIG5ld1ZhbHVlKSB7CisgICAgICAgIGlmIChuZXdWYWx1ZSA8IDAuMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCByb3VuZGluZyBpbmNyZW1lbnQiKTsKKyAgICAgICAgfQorICAgICAgICByb3VuZGluZ0RvdWJsZSA9IG5ld1ZhbHVlOworICAgICAgICByb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwgPSAwLjBkOworICAgICAgICBpZiAobmV3VmFsdWUgPT0gMC4wZCkgeworICAgICAgICAgICAgc2V0Um91bmRpbmdJbmNyZW1lbnQoKEJpZ0RlY2ltYWwpbnVsbCk7ICAgICAgIAkKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJvdW5kaW5nRG91YmxlID0gbmV3VmFsdWU7CisgICAgICAgICAgICBpZiAocm91bmRpbmdEb3VibGUgPCAxLjBkKSB7CisgICAgICAgICAgICAgICAgZG91YmxlIHJhd1JvdW5kZWRSZWNpcHJvY2FsID0gMS4wZC9yb3VuZGluZ0RvdWJsZTsKKyAgICAgICAgICAgICAgICBzZXRSb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwocmF3Um91bmRlZFJlY2lwcm9jYWwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2V0SW50ZXJuYWxSb3VuZGluZ0luY3JlbWVudChuZXcgQmlnRGVjaW1hbChuZXdWYWx1ZSkpOworICAgICAgICB9CisgICAgfQorCisKKyAgICBwcml2YXRlIHZvaWQgc2V0Um91bmRpbmdEb3VibGVSZWNpcHJvY2FsKGRvdWJsZSByYXdSb3VuZGVkUmVjaXByb2NhbCkgeworICAgICAgICByb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwgPSBNYXRoLnJpbnQocmF3Um91bmRlZFJlY2lwcm9jYWwpOworICAgICAgICBpZiAoTWF0aC5hYnMocmF3Um91bmRlZFJlY2lwcm9jYWwgLSByb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwpID4gcm91bmRpbmdJbmNyZW1lbnRFcHNpbG9uKSB7CisgICAgICAgICAgICByb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwgPSAwLjBkOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgcm91bmRpbmdJbmNyZW1lbnRFcHNpbG9uID0gMC4wMDAwMDAwMDE7CisgICAgCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEdldCB0aGUgcm91bmRpbmcgbW9kZS4KKyAgICAgKiBAcmV0dXJuIEEgcm91bmRpbmcgbW9kZSwgYmV0d2VlbiA8Y29kZT5CaWdEZWNpbWFsLlJPVU5EX1VQPC9jb2RlPgorICAgICAqIGFuZCA8Y29kZT5CaWdEZWNpbWFsLlJPVU5EX1VOTkVDRVNTQVJZPC9jb2RlPi4KKyAgICAgKiBAc2VlICNzZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nSW5jcmVtZW50CisgICAgICogQHNlZSAjc2V0Um91bmRpbmdNb2RlCisgICAgICogQHNlZSBqYXZhLm1hdGguQmlnRGVjaW1hbAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Um91bmRpbmdNb2RlKCkgeworICAgICAgICByZXR1cm4gcm91bmRpbmdNb2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIHJvdW5kaW5nIG1vZGUuICBUaGlzIGhhcyBubyBlZmZlY3QgdW5sZXNzIHRoZSByb3VuZGluZworICAgICAqIGluY3JlbWVudCBpcyBncmVhdGVyIHRoYW4gemVyby4KKyAgICAgKiBAcGFyYW0gcm91bmRpbmdNb2RlIEEgcm91bmRpbmcgbW9kZSwgYmV0d2VlbgorICAgICAqIDxjb2RlPkJpZ0RlY2ltYWwuUk9VTkRfVVA8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPkJpZ0RlY2ltYWwuUk9VTkRfVU5ORUNFU1NBUlk8L2NvZGU+LgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIDxjb2RlPnJvdW5kaW5nTW9kZTwvY29kZT4KKyAgICAgKiBpcyB1bnJlY29nbml6ZWQuCisgICAgICogQHNlZSAjc2V0Um91bmRpbmdJbmNyZW1lbnQKKyAgICAgKiBAc2VlICNnZXRSb3VuZGluZ0luY3JlbWVudAorICAgICAqIEBzZWUgI2dldFJvdW5kaW5nTW9kZQorICAgICAqIEBzZWUgamF2YS5tYXRoLkJpZ0RlY2ltYWwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSb3VuZGluZ01vZGUoaW50IHJvdW5kaW5nTW9kZSkgeworICAgICAgICBpZiAocm91bmRpbmdNb2RlIDwgQmlnRGVjaW1hbC5ST1VORF9VUAorICAgICAgICAgICAgfHwgcm91bmRpbmdNb2RlID4gQmlnRGVjaW1hbC5ST1VORF9VTk5FQ0VTU0FSWSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCByb3VuZGluZyBtb2RlOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgcm91bmRpbmdNb2RlKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnJvdW5kaW5nTW9kZSA9IHJvdW5kaW5nTW9kZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogR2V0IHRoZSB3aWR0aCB0byB3aGljaCB0aGUgb3V0cHV0IG9mIDxjb2RlPmZvcm1hdCgpPC9jb2RlPiBpcyBwYWRkZWQuCisgICAgICogVGhlIHdpZHRoIGlzIGNvdW50ZWQgaW4gMTYtYml0IGNvZGUgdW5pdHMuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0IHdpZHRoLCBvciB6ZXJvIGlmIG5vIHBhZGRpbmcgaXMgaW4gZWZmZWN0CisgICAgICogQHNlZSAjc2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlICNnZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNzZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNnZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI3NldFBhZFBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGb3JtYXRXaWR0aCgpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdFdpZHRoOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIHdpZHRoIHRvIHdoaWNoIHRoZSBvdXRwdXQgb2YgPGNvZGU+Zm9ybWF0KCk8L2NvZGU+IGlzIHBhZGRlZC4KKyAgICAgKiBUaGUgd2lkdGggaXMgY291bnRlZCBpbiAxNi1iaXQgY29kZSB1bml0cy4KKyAgICAgKiBUaGlzIG1ldGhvZCBhbHNvIGNvbnRyb2xzIHdoZXRoZXIgcGFkZGluZyBpcyBlbmFibGVkLgorICAgICAqIEBwYXJhbSB3aWR0aCB0aGUgd2lkdGggdG8gd2hpY2ggdG8gcGFkIHRoZSByZXN1bHQgb2YKKyAgICAgKiA8Y29kZT5mb3JtYXQoKTwvY29kZT4sIG9yIHplcm8gdG8gZGlzYWJsZSBwYWRkaW5nCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgPGNvZGU+d2lkdGg8L2NvZGU+IGlzIDwgMAorICAgICAqIEBzZWUgI2dldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSAjZ2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHNlZSAjc2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHNlZSAjZ2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNzZXRQYWRQb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdFdpZHRoKGludCB3aWR0aCkgeworICAgICAgICBpZiAod2lkdGggPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGZvcm1hdCB3aWR0aCIpOworICAgICAgICB9CisgICAgICAgIGZvcm1hdFdpZHRoID0gd2lkdGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEdldCB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcGFkIHRvIHRoZSBmb3JtYXQgd2lkdGguICBUaGUgZGVmYXVsdCBpcyAnICcuCisgICAgICogQHJldHVybiB0aGUgcGFkIGNoYXJhY3RlcgorICAgICAqIEBzZWUgI3NldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSAjZ2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlICNzZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNnZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI3NldFBhZFBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0UGFkQ2hhcmFjdGVyKCkgeworICAgICAgICByZXR1cm4gcGFkOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIHRvIHBhZCB0byB0aGUgZm9ybWF0IHdpZHRoLiAgSWYgcGFkZGluZworICAgICAqIGlzIG5vdCBlbmFibGVkLCB0aGVuIHRoaXMgd2lsbCB0YWtlIGVmZmVjdCBpZiBwYWRkaW5nIGlzIGxhdGVyCisgICAgICogZW5hYmxlZC4KKyAgICAgKiBAcGFyYW0gcGFkQ2hhciB0aGUgcGFkIGNoYXJhY3RlcgorICAgICAqIEBzZWUgI3NldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSAjZ2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlICNnZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc2VlICNnZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI3NldFBhZFBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGFkQ2hhcmFjdGVyKGNoYXIgcGFkQ2hhcikgeworICAgICAgICBwYWQgPSBwYWRDaGFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBHZXQgdGhlIHBvc2l0aW9uIGF0IHdoaWNoIHBhZGRpbmcgd2lsbCB0YWtlIHBsYWNlLiAgVGhpcyBpcyB0aGUgbG9jYXRpb24KKyAgICAgKiBhdCB3aGljaCBwYWRkaW5nIHdpbGwgYmUgaW5zZXJ0ZWQgaWYgdGhlIHJlc3VsdCBvZiA8Y29kZT5mb3JtYXQoKTwvY29kZT4KKyAgICAgKiBpcyBzaG9ydGVyIHRoYW4gdGhlIGZvcm1hdCB3aWR0aC4KKyAgICAgKiBAcmV0dXJuIHRoZSBwYWQgcG9zaXRpb24sIG9uZSBvZiA8Y29kZT5QQURfQkVGT1JFX1BSRUZJWDwvY29kZT4sCisgICAgICogPGNvZGU+UEFEX0FGVEVSX1BSRUZJWDwvY29kZT4sIDxjb2RlPlBBRF9CRUZPUkVfU1VGRklYPC9jb2RlPiwgb3IKKyAgICAgKiA8Y29kZT5QQURfQUZURVJfU1VGRklYPC9jb2RlPi4KKyAgICAgKiBAc2VlICNzZXRGb3JtYXRXaWR0aAorICAgICAqIEBzZWUgI2dldEZvcm1hdFdpZHRoCisgICAgICogQHNlZSAjc2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHNlZSAjZ2V0UGFkQ2hhcmFjdGVyCisgICAgICogQHNlZSAjc2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1BSRUZJWAorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1NVRkZJWAorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9TVUZGSVgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFBhZFBvc2l0aW9uKCkgeworICAgICAgICByZXR1cm4gcGFkUG9zaXRpb247CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFNldCB0aGUgcG9zaXRpb24gYXQgd2hpY2ggcGFkZGluZyB3aWxsIHRha2UgcGxhY2UuICBUaGlzIGlzIHRoZSBsb2NhdGlvbgorICAgICAqIGF0IHdoaWNoIHBhZGRpbmcgd2lsbCBiZSBpbnNlcnRlZCBpZiB0aGUgcmVzdWx0IG9mIDxjb2RlPmZvcm1hdCgpPC9jb2RlPgorICAgICAqIGlzIHNob3J0ZXIgdGhhbiB0aGUgZm9ybWF0IHdpZHRoLiAgVGhpcyBoYXMgbm8gZWZmZWN0IHVubGVzcyBwYWRkaW5nIGlzCisgICAgICogZW5hYmxlZC4KKyAgICAgKiBAcGFyYW0gcGFkUG9zIHRoZSBwYWQgcG9zaXRpb24sIG9uZSBvZiA8Y29kZT5QQURfQkVGT1JFX1BSRUZJWDwvY29kZT4sCisgICAgICogPGNvZGU+UEFEX0FGVEVSX1BSRUZJWDwvY29kZT4sIDxjb2RlPlBBRF9CRUZPUkVfU1VGRklYPC9jb2RlPiwgb3IKKyAgICAgKiA8Y29kZT5QQURfQUZURVJfU1VGRklYPC9jb2RlPi4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGFkIHBvc2l0aW9uIGluCisgICAgICogdW5yZWNvZ25pemVkCisgICAgICogQHNlZSAjc2V0Rm9ybWF0V2lkdGgKKyAgICAgKiBAc2VlICNnZXRGb3JtYXRXaWR0aAorICAgICAqIEBzZWUgI3NldFBhZENoYXJhY3RlcgorICAgICAqIEBzZWUgI2dldFBhZENoYXJhY3RlcgorICAgICAqIEBzZWUgI2dldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjUEFEX0JFRk9SRV9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQUZURVJfUFJFRklYCisgICAgICogQHNlZSAjUEFEX0JFRk9SRV9TVUZGSVgKKyAgICAgKiBAc2VlICNQQURfQUZURVJfU1VGRklYCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGFkUG9zaXRpb24oaW50IHBhZFBvcykgeworICAgICAgICBpZiAocGFkUG9zIDwgUEFEX0JFRk9SRV9QUkVGSVggfHwgcGFkUG9zID4gUEFEX0FGVEVSX1NVRkZJWCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBwYWQgcG9zaXRpb24iKTsKKyAgICAgICAgfQorICAgICAgICBwYWRQb3NpdGlvbiA9IHBhZFBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJuIHdoZXRoZXIgb3Igbm90IHNjaWVudGlmaWMgbm90YXRpb24gaXMgdXNlZC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBvYmplY3QgZm9ybWF0cyBhbmQgcGFyc2VzIHNjaWVudGlmaWMgbm90YXRpb24KKyAgICAgKiBAc2VlICNzZXRTY2llbnRpZmljTm90YXRpb24KKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtRXhwb25lbnREaWdpdHMKKyAgICAgKiBAc2VlICNzZXRNaW5pbXVtRXhwb25lbnREaWdpdHMKKyAgICAgKiBAc2VlICNpc0V4cG9uZW50U2lnbkFsd2F5c1Nob3duCisgICAgICogQHNlZSAjc2V0RXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1NjaWVudGlmaWNOb3RhdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHVzZUV4cG9uZW50aWFsTm90YXRpb247CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFNldCB3aGV0aGVyIG9yIG5vdCBzY2llbnRpZmljIG5vdGF0aW9uIGlzIHVzZWQuICBXaGVuIHNjaWVudGlmaWMgbm90YXRpb24KKyAgICAgKiBpcyB1c2VkLCB0aGUgZWZmZWN0aXZlIG1heGltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIGlzIDw9IDguICBJZiB0aGUKKyAgICAgKiBtYXhpbXVtIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cyBpcyBzZXQgdG8gbW9yZSB0aGFuIDgsIHRoZSBlZmZlY3RpdmUKKyAgICAgKiBtYXhpbXVtIHdpbGwgYmUgMS4gIFRoaXMgYWxsb3dzIHRoaXMgY2FsbCB0byBnZW5lcmF0ZSBhICdkZWZhdWx0JyBzY2llbnRpZmljCisgICAgICogbnVtYmVyIGZvcm1hdCB3aXRob3V0IGFkZGl0aW9uYWwgY2hhbmdlcy4KKyAgICAgKiBAcGFyYW0gdXNlU2NpZW50aWZpYyB0cnVlIGlmIHRoaXMgb2JqZWN0IGZvcm1hdHMgYW5kIHBhcnNlcyBzY2llbnRpZmljCisgICAgICogbm90YXRpb24KKyAgICAgKiBAc2VlICNpc1NjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2dldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI3NldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI2lzRXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc2VlICNzZXRFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNjaWVudGlmaWNOb3RhdGlvbihib29sZWFuIHVzZVNjaWVudGlmaWMpIHsKKyAgICAgICAgdXNlRXhwb25lbnRpYWxOb3RhdGlvbiA9IHVzZVNjaWVudGlmaWM7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybiB0aGUgbWluaW11bSBleHBvbmVudCBkaWdpdHMgdGhhdCB3aWxsIGJlIHNob3duLgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gZXhwb25lbnQgZGlnaXRzIHRoYXQgd2lsbCBiZSBzaG93bgorICAgICAqIEBzZWUgI3NldFNjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2lzU2NpZW50aWZpY05vdGF0aW9uCisgICAgICogQHNlZSAjc2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjaXNFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqIEBzZWUgI3NldEV4cG9uZW50U2lnbkFsd2F5c1Nob3duCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJ5dGUgZ2V0TWluaW11bUV4cG9uZW50RGlnaXRzKCkgeworICAgICAgICByZXR1cm4gbWluRXhwb25lbnREaWdpdHM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBTZXQgdGhlIG1pbmltdW0gZXhwb25lbnQgZGlnaXRzIHRoYXQgd2lsbCBiZSBzaG93bi4gIFRoaXMgaGFzIG5vCisgICAgICogZWZmZWN0IHVubGVzcyBzY2llbnRpZmljIG5vdGF0aW9uIGlzIGluIHVzZS4KKyAgICAgKiBAcGFyYW0gbWluRXhwRGlnIGEgdmFsdWUgPj0gMSBpbmRpY2F0aW5nIHRoZSBmZXdlc3QgZXhwb25lbnQgZGlnaXRzCisgICAgICogdGhhdCB3aWxsIGJlIHNob3duCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgPGNvZGU+bWluRXhwRGlnPC9jb2RlPiA8IDEKKyAgICAgKiBAc2VlICNzZXRTY2llbnRpZmljTm90YXRpb24KKyAgICAgKiBAc2VlICNpc1NjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2dldE1pbmltdW1FeHBvbmVudERpZ2l0cworICAgICAqIEBzZWUgI2lzRXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc2VlICNzZXRFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbmltdW1FeHBvbmVudERpZ2l0cyhieXRlIG1pbkV4cERpZykgeworICAgICAgICBpZiAobWluRXhwRGlnIDwgMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRXhwb25lbnQgZGlnaXRzIG11c3QgYmUgPj0gMSIpOworICAgICAgICB9CisgICAgICAgIG1pbkV4cG9uZW50RGlnaXRzID0gbWluRXhwRGlnOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZXhwb25lbnQgc2lnbiBpcyBhbHdheXMgc2hvd24uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBleHBvbmVudCBpcyBhbHdheXMgcHJlZml4ZWQgd2l0aCBlaXRoZXIgdGhlCisgICAgICogbG9jYWxpemVkIG1pbnVzIHNpZ24gb3IgdGhlIGxvY2FsaXplZCBwbHVzIHNpZ24sIGZhbHNlIGlmIG9ubHkgbmVnYXRpdmUKKyAgICAgKiBleHBvbmVudHMgYXJlIHByZWZpeGVkIHdpdGggdGhlIGxvY2FsaXplZCBtaW51cyBzaWduLgorICAgICAqIEBzZWUgI3NldFNjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2lzU2NpZW50aWZpY05vdGF0aW9uCisgICAgICogQHNlZSAjc2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjZ2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjc2V0RXhwb25lbnRTaWduQWx3YXlzU2hvd24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0V4cG9uZW50U2lnbkFsd2F5c1Nob3duKCkgeworICAgICAgICByZXR1cm4gZXhwb25lbnRTaWduQWx3YXlzU2hvd247CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFNldCB3aGV0aGVyIHRoZSBleHBvbmVudCBzaWduIGlzIGFsd2F5cyBzaG93bi4gIFRoaXMgaGFzIG5vIGVmZmVjdAorICAgICAqIHVubGVzcyBzY2llbnRpZmljIG5vdGF0aW9uIGlzIGluIHVzZS4KKyAgICAgKiBAcGFyYW0gZXhwU2lnbkFsd2F5cyB0cnVlIGlmIHRoZSBleHBvbmVudCBpcyBhbHdheXMgcHJlZml4ZWQgd2l0aCBlaXRoZXIKKyAgICAgKiB0aGUgbG9jYWxpemVkIG1pbnVzIHNpZ24gb3IgdGhlIGxvY2FsaXplZCBwbHVzIHNpZ24sIGZhbHNlIGlmIG9ubHkKKyAgICAgKiBuZWdhdGl2ZSBleHBvbmVudHMgYXJlIHByZWZpeGVkIHdpdGggdGhlIGxvY2FsaXplZCBtaW51cyBzaWduLgorICAgICAqIEBzZWUgI3NldFNjaWVudGlmaWNOb3RhdGlvbgorICAgICAqIEBzZWUgI2lzU2NpZW50aWZpY05vdGF0aW9uCisgICAgICogQHNlZSAjc2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjZ2V0TWluaW11bUV4cG9uZW50RGlnaXRzCisgICAgICogQHNlZSAjaXNFeHBvbmVudFNpZ25BbHdheXNTaG93bgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEV4cG9uZW50U2lnbkFsd2F5c1Nob3duKGJvb2xlYW4gZXhwU2lnbkFsd2F5cykgeworICAgICAgICBleHBvbmVudFNpZ25BbHdheXNTaG93biA9IGV4cFNpZ25BbHdheXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBncm91cGluZyBzaXplLiBHcm91cGluZyBzaXplIGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4KKyAgICAgKiBncm91cGluZyBzZXBhcmF0b3JzIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYSBudW1iZXIuICBGb3IgZXhhbXBsZSwKKyAgICAgKiBpbiB0aGUgbnVtYmVyICIxMjMsNDU2Ljc4IiwgdGhlIGdyb3VwaW5nIHNpemUgaXMgMy4KKyAgICAgKiBAc2VlICNzZXRHcm91cGluZ1NpemUKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNpc0dyb3VwaW5nVXNlZAorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMjZ2V0R3JvdXBpbmdTZXBhcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEdyb3VwaW5nU2l6ZSAoKSB7CisgICAgICAgIHJldHVybiBncm91cGluZ1NpemU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBncm91cGluZyBzaXplLiBHcm91cGluZyBzaXplIGlzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGJldHdlZW4KKyAgICAgKiBncm91cGluZyBzZXBhcmF0b3JzIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYSBudW1iZXIuICBGb3IgZXhhbXBsZSwKKyAgICAgKiBpbiB0aGUgbnVtYmVyICIxMjMsNDU2Ljc4IiwgdGhlIGdyb3VwaW5nIHNpemUgaXMgMy4KKyAgICAgKiBAc2VlICNnZXRHcm91cGluZ1NpemUKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNzZXRHcm91cGluZ1VzZWQKKyAgICAgKiBAc2VlIERlY2ltYWxGb3JtYXRTeW1ib2xzI3NldEdyb3VwaW5nU2VwYXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0R3JvdXBpbmdTaXplIChpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgZ3JvdXBpbmdTaXplID0gKGJ5dGUpbmV3VmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZWNvbmRhcnkgZ3JvdXBpbmcgc2l6ZS4gSW4gc29tZSBsb2NhbGVzIG9uZQorICAgICAqIGdyb3VwaW5nIGludGVydmFsIGlzIHVzZWQgZm9yIHRoZSBsZWFzdCBzaWduaWZpY2FudCBpbnRlZ2VyCisgICAgICogZGlnaXRzICh0aGUgcHJpbWFyeSBncm91cGluZyBzaXplKSwgYW5kIGFub3RoZXIgaXMgdXNlZCBmb3IgYWxsCisgICAgICogb3RoZXJzICh0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUpLiAgQSBmb3JtYXR0ZXIgc3VwcG9ydGluZyBhCisgICAgICogc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUgd2lsbCByZXR1cm4gYSBwb3NpdGl2ZSBpbnRlZ2VyIHVuZXF1YWwKKyAgICAgKiB0byB0aGUgcHJpbWFyeSBncm91cGluZyBzaXplIHJldHVybmVkIGJ5CisgICAgICogPGNvZGU+Z2V0R3JvdXBpbmdTaXplKCk8L2NvZGU+LiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBwcmltYXJ5CisgICAgICogZ3JvdXBpbmcgc2l6ZSBpcyA0LCBhbmQgdGhlIHNlY29uZGFyeSBncm91cGluZyBzaXplIGlzIDIsIHRoZW4KKyAgICAgKiB0aGUgbnVtYmVyIDEyMzQ1Njc4OSBmb3JtYXRzIGFzICIxLDIzLDQ1LDY3ODkiLCBhbmQgdGhlIHBhdHRlcm4KKyAgICAgKiBhcHBlYXJzIGFzICIjLCMjLCMjIzAiLgorICAgICAqIFtORVddCisgICAgICogQHJldHVybiB0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUsIG9yIGEgdmFsdWUgbGVzcyB0aGFuCisgICAgICogb25lIGlmIHRoZXJlIGlzIG5vbmUKKyAgICAgKiBAc2VlICNzZXRTZWNvbmRhcnlHcm91cGluZ1NpemUKKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNpc0dyb3VwaW5nVXNlZAorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdFN5bWJvbHMjZ2V0R3JvdXBpbmdTZXBhcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSAoKSB7CisgICAgICAgIHJldHVybiBncm91cGluZ1NpemUyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc2Vjb25kYXJ5IGdyb3VwaW5nIHNpemUuIElmIHNldCB0byBhIHZhbHVlIGxlc3MgdGhhbiAxLAorICAgICAqIHRoZW4gc2Vjb25kYXJ5IGdyb3VwaW5nIGlzIHR1cm5lZCBvZmYsIGFuZCB0aGUgcHJpbWFyeSBncm91cGluZworICAgICAqIHNpemUgaXMgdXNlZCBmb3IgYWxsIGludGVydmFscywgbm90IGp1c3QgdGhlIGxlYXN0IHNpZ25pZmljYW50LgorICAgICAqIFtORVddCisgICAgICogQHNlZSAjZ2V0U2Vjb25kYXJ5R3JvdXBpbmdTaXplCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjc2V0R3JvdXBpbmdVc2VkCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0U3ltYm9scyNzZXRHcm91cGluZ1NlcGFyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlY29uZGFyeUdyb3VwaW5nU2l6ZSAoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIGdyb3VwaW5nU2l6ZTIgPSAoYnl0ZSluZXdWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbGxvd3MgeW91IHRvIGdldCB0aGUgYmVoYXZpb3Igb2YgdGhlIGRlY2ltYWwgc2VwYXJhdG9yIHdpdGggaW50ZWdlcnMuCisgICAgICogKFRoZSBkZWNpbWFsIHNlcGFyYXRvciB3aWxsIGFsd2F5cyBhcHBlYXIgd2l0aCBkZWNpbWFscy4pCisgICAgICogPFA+RXhhbXBsZTogRGVjaW1hbCBPTjogMTIzNDUgLT4gMTIzNDUuOyBPRkY6IDEyMzQ1IC0+IDEyMzQ1CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNEZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oKSB7CisgICAgICAgIHJldHVybiBkZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd247CisgICAgfQorCisgICAgLyoqCisgICAgICogQWxsb3dzIHlvdSB0byBzZXQgdGhlIGJlaGF2aW9yIG9mIHRoZSBkZWNpbWFsIHNlcGFyYXRvciB3aXRoIGludGVnZXJzLgorICAgICAqIChUaGUgZGVjaW1hbCBzZXBhcmF0b3Igd2lsbCBhbHdheXMgYXBwZWFyIHdpdGggZGVjaW1hbHMuKQorICAgICAqCisgICAgICogPHA+VGhpcyBvbmx5IGFmZmVjdHMgZm9ybWF0dGluZywgYW5kIG9ubHkgd2hlcmUKKyAgICAgKiB0aGVyZSBtaWdodCBiZSBubyBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQsIGUuZy4sCisgICAgICogaWYgdHJ1ZSwgIDM0NTYuMDAgLT4gIjMsNDU2LiIKKyAgICAgKiBpZiBmYWxzZSwgMzQ1Ni4wMCAtPiAiMzQ1NiIKKyAgICAgKiBUaGlzIGlzIGluZGVwZW5kZW50IG9mIHBhcnNpbmcuICBJZiB5b3Ugd2FudCBwYXJzaW5nIHRvIHN0b3AgYXQgdGhlIGRlY2ltYWwKKyAgICAgKiBwb2ludCwgdXNlIHNldFBhcnNlSW50ZWdlck9ubHkuCisgICAgICoKKyAgICAgKiA8UD5FeGFtcGxlOiBEZWNpbWFsIE9OOiAxMjM0NSAtPiAxMjM0NS47IE9GRjogMTIzNDUgLT4gMTIzNDUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oYm9vbGVhbiBuZXdWYWx1ZSkgeworICAgICAgICBkZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24gPSBuZXdWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCBvdmVycmlkZTsgbm8gY2hhbmdlIGluIHNlbWFudGljcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGVjaW1hbEZvcm1hdCBvdGhlciA9IChEZWNpbWFsRm9ybWF0KSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgb3RoZXIuc3ltYm9scyA9IChEZWNpbWFsRm9ybWF0U3ltYm9scykgc3ltYm9scy5jbG9uZSgpOworICAgICAgICAgICAgcmV0dXJuIG90aGVyOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIGVxdWFscworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKQorICAgIHsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghc3VwZXIuZXF1YWxzKG9iaikpIHJldHVybiBmYWxzZTsgLy8gc3VwZXIgZG9lcyBjbGFzcyBjaGVjaworCisgICAgICAgIERlY2ltYWxGb3JtYXQgb3RoZXIgPSAoRGVjaW1hbEZvcm1hdCkgb2JqOworICAgICAgICAvKiBBZGQgdGhlIGNvbXBhcmlzb24gb2YgdGhlIGZvdXIgbmV3IGFkZGVkIGZpZWxkcyAsdGhleSBhcmUKKyAgICAgICAgICogcG9zUHJlZml4UGF0dGVybiwgcG9zU3VmZml4UGF0dGVybiwgbmVnUHJlZml4UGF0dGVybiwgbmVnU3VmZml4UGF0dGVybi4KKyAgICAgICAgICogW1JpY2hhcmQvR0NMXQorICAgICAgICAgKi8KKyAgICAgICAgcmV0dXJuIChwb3NQcmVmaXhQYXR0ZXJuICE9IG51bGwgJiYKKyAgICAgICAgICAgICAgICAgICAgcG9zUHJlZml4UGF0dGVybi5lcXVhbHMob3RoZXIucG9zUHJlZml4UGF0dGVybikpCisgICAgICAgICAgICAmJiAocG9zU3VmZml4UGF0dGVybiAhPSBudWxsICYmCisgICAgICAgICAgICAgICAgICAgIHBvc1N1ZmZpeFBhdHRlcm4uZXF1YWxzKG90aGVyLnBvc1N1ZmZpeFBhdHRlcm4pKQorICAgICAgICAgICAgJiYgKG5lZ1ByZWZpeFBhdHRlcm4gIT0gbnVsbCAmJgorICAgICAgICAgICAgICAgICAgICBuZWdQcmVmaXhQYXR0ZXJuLmVxdWFscyhvdGhlci5uZWdQcmVmaXhQYXR0ZXJuKSkKKyAgICAgICAgICAgICYmIChuZWdTdWZmaXhQYXR0ZXJuICE9IG51bGwgJiYKKyAgICAgICAgICAgICAgICAgICAgbmVnU3VmZml4UGF0dGVybi5lcXVhbHMob3RoZXIubmVnU3VmZml4UGF0dGVybikpCisgICAgICAgICAgICAmJiBtdWx0aXBsaWVyID09IG90aGVyLm11bHRpcGxpZXIKKyAgICAgICAgICAgICYmIGdyb3VwaW5nU2l6ZSA9PSBvdGhlci5ncm91cGluZ1NpemUKKyAgICAgICAgICAgICYmIGdyb3VwaW5nU2l6ZTIgPT0gb3RoZXIuZ3JvdXBpbmdTaXplMgorICAgICAgICAgICAgJiYgZGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duID09IG90aGVyLmRlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bgorICAgICAgICAgICAgJiYgdXNlRXhwb25lbnRpYWxOb3RhdGlvbiA9PSBvdGhlci51c2VFeHBvbmVudGlhbE5vdGF0aW9uCisgICAgICAgICAgICAmJiAoIXVzZUV4cG9uZW50aWFsTm90YXRpb24gfHwKKyAgICAgICAgICAgICAgICBtaW5FeHBvbmVudERpZ2l0cyA9PSBvdGhlci5taW5FeHBvbmVudERpZ2l0cykKKyAgICAgICAgICAgICYmIHVzZVNpZ25pZmljYW50RGlnaXRzID09IG90aGVyLnVzZVNpZ25pZmljYW50RGlnaXRzCisgICAgICAgICAgICAmJiAoIXVzZVNpZ25pZmljYW50RGlnaXRzIHx8CisgICAgICAgICAgICAgICAgbWluU2lnbmlmaWNhbnREaWdpdHMgPT0gb3RoZXIubWluU2lnbmlmaWNhbnREaWdpdHMgJiYKKyAgICAgICAgICAgICAgICBtYXhTaWduaWZpY2FudERpZ2l0cyA9PSBvdGhlci5tYXhTaWduaWZpY2FudERpZ2l0cykKKyAgICAgICAgICAgICYmIHN5bWJvbHMuZXF1YWxzKG90aGVyLnN5bWJvbHMpOworICAgIH0KKworLy8gICAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUb1N0cmluZyhTdHJpbmdCdWZmZXIgYnVmKSB7CisvLyAgICAgICAgICBidWYuYXBwZW5kKCJcbnBvc1ByZWZpeFBhdHRlcm46ICciICsgcG9zUHJlZml4UGF0dGVybiArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoInBvc2l0aXZlUHJlZml4OiAnIiArIHBvc2l0aXZlUHJlZml4ICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgicG9zU3VmZml4UGF0dGVybjogJyIgKyBwb3NTdWZmaXhQYXR0ZXJuICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgicG9zaXRpdmVTdWZmaXg6ICciICsgcG9zaXRpdmVTdWZmaXggKyAiJ1xuIik7CisvLyAgICAgICAgICBidWYuYXBwZW5kKCJuZWdQcmVmaXhQYXR0ZXJuOiAnIiArIGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eS5mb3JtYXQxRm9yU291cmNlKG5lZ1ByZWZpeFBhdHRlcm4pICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgibmVnYXRpdmVQcmVmaXg6ICciICsgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5LmZvcm1hdDFGb3JTb3VyY2UobmVnYXRpdmVQcmVmaXgpICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgibmVnU3VmZml4UGF0dGVybjogJyIgKyBuZWdTdWZmaXhQYXR0ZXJuICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgibmVnYXRpdmVTdWZmaXg6ICciICsgbmVnYXRpdmVTdWZmaXggKyAiJ1xuIik7CisvLyAgICAgICAgICBidWYuYXBwZW5kKCJtdWx0aXBsaWVyOiAnIiArIG11bHRpcGxpZXIgKyAiJ1xuIik7CisvLyAgICAgICAgICBidWYuYXBwZW5kKCJncm91cGluZ1NpemU6ICciICsgZ3JvdXBpbmdTaXplICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgiZ3JvdXBpbmdTaXplMjogJyIgKyBncm91cGluZ1NpemUyICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgiZGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duOiAnIiArIGRlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93biArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoInVzZUV4cG9uZW50aWFsTm90YXRpb246ICciICsgdXNlRXhwb25lbnRpYWxOb3RhdGlvbiArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoIm1pbkV4cG9uZW50RGlnaXRzOiAnIiArIG1pbkV4cG9uZW50RGlnaXRzICsgIidcbiIpOworLy8gICAgICAgICAgYnVmLmFwcGVuZCgidXNlU2lnbmlmaWNhbnREaWdpdHM6ICciICsgdXNlU2lnbmlmaWNhbnREaWdpdHMgKyAiJ1xuIik7CisvLyAgICAgICAgICBidWYuYXBwZW5kKCJtaW5TaWduaWZpY2FudERpZ2l0czogJyIgKyBtaW5TaWduaWZpY2FudERpZ2l0cyArICInXG4iKTsKKy8vICAgICAgICAgIGJ1Zi5hcHBlbmQoIm1heFNpZ25pZmljYW50RGlnaXRzOiAnIiArIG1heFNpZ25pZmljYW50RGlnaXRzICsgIidcbiIpOyAgICAgICAgICAgCisvLyAgICAgICAgICBidWYuYXBwZW5kKCJzeW1ib2xzOiAnIiArIHN5bWJvbHMgKyAiJyIpOworLy8gICAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgaGFzaENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gc3VwZXIuaGFzaENvZGUoKSAqIDM3ICsgcG9zaXRpdmVQcmVmaXguaGFzaENvZGUoKTsKKyAgICAgICAgLy8ganVzdCBlbm91Z2ggZmllbGRzIGZvciBhIHJlYXNvbmFibGUgZGlzdHJpYnV0aW9uCisgICAgfQorCisgICAgLyoqCisgICAgICogU3ludGhlc2l6ZXMgYSBwYXR0ZXJuIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgc3RhdGUKKyAgICAgKiBvZiB0aGlzIEZvcm1hdCBvYmplY3QuCisgICAgICogQHNlZSAjYXBwbHlQYXR0ZXJuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oKSB7CisgICAgICAgIHJldHVybiB0b1BhdHRlcm4oIGZhbHNlICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3ludGhlc2l6ZXMgYSBsb2NhbGl6ZWQgcGF0dGVybiBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoZSBjdXJyZW50CisgICAgICogc3RhdGUgb2YgdGhpcyBGb3JtYXQgb2JqZWN0LgorICAgICAqIEBzZWUgI2FwcGx5UGF0dGVybgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9Mb2NhbGl6ZWRQYXR0ZXJuKCkgeworICAgICAgICByZXR1cm4gdG9QYXR0ZXJuKCB0cnVlICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRXhwYW5kIHRoZSBhZmZpeCBwYXR0ZXJuIHN0cmluZ3MgaW50byB0aGUgZXhwYW5kZWQgYWZmaXggc3RyaW5ncy4gIElmIGFueQorICAgICAqIGFmZml4IHBhdHRlcm4gc3RyaW5nIGlzIG51bGwsIGRvIG5vdCBleHBhbmQgaXQuICBUaGlzIG1ldGhvZCBzaG91bGQgYmUKKyAgICAgKiBjYWxsZWQgYW55IHRpbWUgdGhlIHN5bWJvbHMgb3IgdGhlIGFmZml4IHBhdHRlcm5zIGNoYW5nZSBpbiBvcmRlciB0byBrZWVwCisgICAgICogdGhlIGV4cGFuZGVkIGFmZml4IHN0cmluZ3MgdXAgdG8gZGF0ZS4KKyAgICAgKi8KKyAgICAvL0J1ZyA0MjEyMDcyIFtSaWNoYXJkL0dDTF0KKyAgICBwcml2YXRlIHZvaWQgZXhwYW5kQWZmaXhlcygpIHsKKyAgICAgICAgLy8gZXhwYW5kQWZmaXgoKSB3aWxsIHNldCBjdXJyZW5jeUNob2ljZSB0byBhIG5vbi1udWxsIHZhbHVlIGlmCisgICAgICAgIC8vIGFwcHJvcHJpYXRlIEFORCBpZiBpdCBpcyBudWxsLgorICAgICAgICBjdXJyZW5jeUNob2ljZSA9IG51bGw7CisKKyAgICAgICAgLy8gUmV1c2Ugb25lIFN0cmluZ0J1ZmZlciBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGlmIChwb3NQcmVmaXhQYXR0ZXJuICE9IG51bGwpIHsKKyAgICAgICAgICAgIGV4cGFuZEFmZml4KHBvc1ByZWZpeFBhdHRlcm4sIGJ1ZmZlciwgZmFsc2UpOworICAgICAgICAgICAgcG9zaXRpdmVQcmVmaXggPSBidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocG9zU3VmZml4UGF0dGVybiAhPSBudWxsKSB7CisgICAgICAgICAgICBleHBhbmRBZmZpeChwb3NTdWZmaXhQYXR0ZXJuLCBidWZmZXIsIGZhbHNlKTsKKyAgICAgICAgICAgIHBvc2l0aXZlU3VmZml4ID0gYnVmZmVyLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5lZ1ByZWZpeFBhdHRlcm4gIT0gbnVsbCkgeworICAgICAgICAgICAgZXhwYW5kQWZmaXgobmVnUHJlZml4UGF0dGVybiwgYnVmZmVyLCBmYWxzZSk7CisgICAgICAgICAgICBuZWdhdGl2ZVByZWZpeCA9IGJ1ZmZlci50b1N0cmluZygpOworICAgICAgICB9CisgICAgICAgIGlmIChuZWdTdWZmaXhQYXR0ZXJuICE9IG51bGwpIHsKKyAgICAgICAgICAgIGV4cGFuZEFmZml4KG5lZ1N1ZmZpeFBhdHRlcm4sIGJ1ZmZlciwgZmFsc2UpOworICAgICAgICAgICAgbmVnYXRpdmVTdWZmaXggPSBidWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEV4cGFuZCBhbiBhZmZpeCBwYXR0ZXJuIGludG8gYW4gYWZmaXggc3RyaW5nLiAgQWxsIGNoYXJhY3RlcnMgaW4KKyAgICAgKiB0aGUgcGF0dGVybiBhcmUgbGl0ZXJhbCB1bmxlc3MgYnJhY2tldGVkIGJ5IFFVT1RFcy4gIFRoZQorICAgICAqIGZvbGxvd2luZyBjaGFyYWN0ZXJzIG91dHNpZGUgUVVPVEUgYXJlIHJlY29nbml6ZWQ6CisgICAgICogUEFUVEVSTl9QRVJDRU5ULCBQQVRURVJOX1BFUl9NSUxMRSwgUEFUVEVSTl9NSU5VUywgYW5kCisgICAgICogQ1VSUkVOQ1lfU0lHTi4gIElmIENVUlJFTkNZX1NJR04gaXMgZG91YmxlZCwgaXQgaXMgaW50ZXJwcmV0ZWQgYXMKKyAgICAgKiBhbiBpbnRlcm5hdGlvbmFsIGN1cnJlbmN5IHNpZ24uICBBbnkgb3RoZXIgY2hhcmFjdGVyIG91dHNpZGUKKyAgICAgKiBRVU9URSByZXByZXNlbnRzIGl0c2VsZi4gIFF1b3RlZCB0ZXh0IG11c3QgYmUgd2VsbC1mb3JtZWQuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGluIHR3byBkaXN0aW5jdCB3YXlzLiAgRmlyc3QsIGl0IGlzIHVzZWQgdG8gZXhwYW5kCisgICAgICogdGhlIHN0b3JlZCBhZmZpeCBwYXR0ZXJucyBpbnRvIGFjdHVhbCBhZmZpeGVzLiAgRm9yIHRoaXMgdXNhZ2UsIGRvRm9ybWF0CisgICAgICogbXVzdCBiZSBmYWxzZS4gIFNlY29uZCwgaXQgaXMgdXNlZCB0byBleHBhbmQgdGhlIHN0b3JlZCBhZmZpeCBwYXR0ZXJucworICAgICAqIGdpdmVuIGEgc3BlY2lmaWMgbnVtYmVyIChkb0Zvcm1hdCA9PSB0cnVlKSwgZm9yIHRob3NlIHJhcmUgY2FzZXMgaW4KKyAgICAgKiB3aGljaCBhIGN1cnJlbmN5IGZvcm1hdCByZWZlcmVuY2VzIGEgQ2hvaWNlRm9ybWF0IChlLmcuLCBlbl9JTiBkaXNwbGF5CisgICAgICogbmFtZSBmb3IgSU5SKS4gIFRoZSBudW1iZXIgaXRzZWxmIGlzIHRha2VuIGZyb20gZGlnaXRMaXN0LgorICAgICAqCisgICAgICogV2hlbiB1c2VkIGluIHRoZSBmaXJzdCB3YXksIHRoaXMgbWV0aG9kIGhhcyBhIHNpZGUgZWZmZWN0OiBJdCBzZXRzCisgICAgICogY3VycmVuY3lDaG9pY2UgdG8gYSBDaG9pY2VGb3JtYXQgb2JqZWN0LCBpZiB0aGUgY3VycmVuY3kncyBkaXNwbGF5IG5hbWUKKyAgICAgKiBpbiB0aGlzIGxvY2FsZSBpcyBhIENob2ljZUZvcm1hdCBwYXR0ZXJuICh2ZXJ5IHJhcmUpLiAgSXQgb25seSBkb2VzIHRoaXMKKyAgICAgKiBpZiBjdXJyZW5jeUNob2ljZSBpcyBudWxsIHRvIHN0YXJ0IHdpdGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgbm9uLW51bGwsIHBvc3NpYmx5IGVtcHR5IHBhdHRlcm4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIGEgc2NyYXRjaCBTdHJpbmdCdWZmZXI7IGl0cyBjb250ZW50cyB3aWxsIGJlIGxvc3QKKyAgICAgKiBAcGFyYW0gZG9Gb3JtYXQgaWYgZmFsc2UsIHRoZW4gdGhlIHBhdHRlcm4gd2lsbCBiZSBleHBhbmRlZCwgYW5kIGlmIGEKKyAgICAgKiBjdXJyZW5jeSBzeW1ib2wgaXMgZW5jb3VudGVyZWQgdGhhdCBleHBhbmRzIHRvIGEgQ2hvaWNlRm9ybWF0LCB0aGUKKyAgICAgKiBjdXJyZW5jeUNob2ljZSBtZW1iZXIgdmFyaWFibGUgd2lsbCBiZSBpbml0aWFsaXplZCBpZiBpdCBpcyBudWxsLiAgSWYKKyAgICAgKiBkb0Zvcm1hdCBpcyB0cnVlLCB0aGVuIGl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgY3VycmVuY3lDaG9pY2UgaGFzIGJlZW4KKyAgICAgKiBjcmVhdGVkLCBhbmQgaXQgd2lsbCBiZSB1c2VkIHRvIGZvcm1hdCB0aGUgdmFsdWUgaW4gZGlnaXRMaXN0LgorICAgICAqIEByZXR1cm4gdGhlIGV4cGFuZGVkIGVxdWl2YWxlbnQgb2YgcGF0dGVybgorICAgICAqLworICAgIC8vQnVnIDQyMTIwNzIgW1JpY2hhcmQvR0NMXQorICAgIHByaXZhdGUgdm9pZCBleHBhbmRBZmZpeChTdHJpbmcgcGF0dGVybiwgU3RyaW5nQnVmZmVyIGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkb0Zvcm1hdCkgeworICAgICAgICBidWZmZXIuc2V0TGVuZ3RoKDApOworICAgICAgICBmb3IgKGludCBpPTA7IGk8cGF0dGVybi5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBwYXR0ZXJuLmNoYXJBdChpKyspOworICAgICAgICAgICAgaWYgKGMgPT0gUVVPVEUpIHsKKyAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgIGludCBqID0gcGF0dGVybi5pbmRleE9mKFFVT1RFLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGogPT0gaSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChRVU9URSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpID0gaisxOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaiA+IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQocGF0dGVybi5zdWJzdHJpbmcoaSwgaikpOworICAgICAgICAgICAgICAgICAgICAgICAgaSA9IGorMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpPHBhdHRlcm4ubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmNoYXJBdChpKT09UVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKFFVT1RFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9vcCBhZ2FpbgorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVudGVybWluYXRlZCBxdW90ZTsgc2hvdWxkIGJlIGNhdWdodCBieSBhcHBseQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGF0dGVybi4KKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgY2FzZSBDVVJSRU5DWV9TSUdOOgorICAgICAgICAgICAgICAgIC8vIEFzIG9mIElDVSAyLjIgd2UgdXNlIHRoZSBjdXJyZW5jeSBvYmplY3QsIGFuZAorICAgICAgICAgICAgICAgIC8vIGlnbm9yZSB0aGUgY3VycmVuY3kgc3ltYm9scyBpbiB0aGUgREZTLCB1bmxlc3MKKyAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIGEgbnVsbCBjdXJyZW5jeSBvYmplY3QuICBUaGlzIG9jY3VycyBpZgorICAgICAgICAgICAgICAgIC8vIHJlc3VycmVjdGluZyBhIHByZS0yLjIgb2JqZWN0IG9yIGlmIHRoZSB1c2VyCisgICAgICAgICAgICAgICAgLy8gc2V0cyBhIGN1c3RvbSBERlMuCisgICAgICAgICAgICAgICAgYm9vbGVhbiBpbnRsID0gaTxwYXR0ZXJuLmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uY2hhckF0KGkpID09IENVUlJFTkNZX1NJR047CisgICAgICAgICAgICAgICAgaWYgKGludGwpIHsKKyAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IG51bGw7CisgICAgICAgICAgICAgICAgQ3VycmVuY3kgY3VycmVuY3kgPSBnZXRDdXJyZW5jeSgpOworICAgICAgICAgICAgICAgIGlmIChjdXJyZW5jeSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaW50bCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc0Nob2ljZUZvcm1hdFtdID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgICAgICAgICAgICAgICAgICBzID0gY3VycmVuY3kuZ2V0TmFtZShzeW1ib2xzLmdldFVMb2NhbGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1cnJlbmN5LlNZTUJPTF9OQU1FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDaG9pY2VGb3JtYXQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ2hvaWNlRm9ybWF0WzBdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHdvIG1vZGVzIGhlcmU6IElmIGRvRm9ybWF0IGlzIGZhbHNlLCB3ZSBzZXQgdXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjdXJyZW5jeUNob2ljZS4gIElmIGRvRm9ybWF0IGlzIHRydWUsIHdlIHVzZSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmV2aW91c2x5IGNyZWF0ZWQgY3VycmVuY3lDaG9pY2UgdG8gZm9ybWF0IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlIGluIGRpZ2l0TGlzdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWRvRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjdXJyZW5jeSBpcyBoYW5kbGVkIGJ5IGEgQ2hvaWNlRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVuIHdlJ3JlIG5vdCBnb2luZyB0byB1c2UgdGhlIGV4cGFuZGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBhdHRlcm5zLiAgSW5zdGFudGlhdGUgdGhlIENob2ljZUZvcm1hdCBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVuY3lDaG9pY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVuY3lDaG9pY2UgPSBuZXcgQ2hvaWNlRm9ybWF0KHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGNvdWxkIGFsbW9zdCByZXR1cm4gbnVsbCBvciAiIiBoZXJlLCBzaW5jZSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXhwYW5kZWQgYWZmaXhlcyBhcmUgYWxtb3N0IG5vdCB1c2VkIGF0IGFsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGlzIHNpdHVhdGlvbi4gIEhvd2V2ZXIsIG9uZSBtZXRob2QgLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG9QYXR0ZXJuKCkgLS0gc3RpbGwgZG9lcyB1c2UgdGhlIGV4cGFuZGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFmZml4ZXMsIGluIG9yZGVyIHRvIHNldCB1cCBhIHBhZGRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGF0dGVybi4gIFdlIHVzZSB0aGUgQ1VSUkVOQ1lfU0lHTiBhcyBhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBsYWNlaG9sZGVyLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzID0gU3RyaW5nLnZhbHVlT2YoQ1VSUkVOQ1lfU0lHTik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigwKTsgLy8gaWdub3JlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW5jeUNob2ljZS5mb3JtYXQoZGlnaXRMaXN0LmdldERvdWJsZSgpLCBidWZmZXIsIHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBjdXJyZW5jeS5nZXRDdXJyZW5jeUNvZGUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHMgPSBpbnRsID8gc3ltYm9scy5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKQorICAgICAgICAgICAgICAgICAgICAgICAgOiBzeW1ib2xzLmdldEN1cnJlbmN5U3ltYm9sKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQocyk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBjYXNlIFBBVFRFUk5fUEVSQ0VOVDoKKyAgICAgICAgICAgICAgICBjID0gc3ltYm9scy5nZXRQZXJjZW50KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBBVFRFUk5fUEVSX01JTExFOgorICAgICAgICAgICAgICAgIGMgPSBzeW1ib2xzLmdldFBlck1pbGwoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUEFUVEVSTl9NSU5VUzoKKyAgICAgICAgICAgICAgICBjID0gc3ltYm9scy5nZXRNaW51c1NpZ24oKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoYyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgYW4gYWZmaXggdG8gdGhlIGdpdmVuIFN0cmluZ0J1ZmZlci4KKyAgICAgKiBAcGFyYW0gYnVmIGJ1ZmZlciB0byBhcHBlbmQgdG8KKyAgICAgKiBAcGFyYW0gaXNOZWdhdGl2ZQorICAgICAqIEBwYXJhbSBpc1ByZWZpeAorICAgICAqLworICAgIHByaXZhdGUgaW50IGFwcGVuZEFmZml4KFN0cmluZ0J1ZmZlciBidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc05lZ2F0aXZlLCBib29sZWFuIGlzUHJlZml4KSB7CisgICAgICAgIGlmIChjdXJyZW5jeUNob2ljZSAhPSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmcgYWZmaXhQYXQgPSBudWxsOworICAgICAgICAgICAgaWYgKGlzUHJlZml4KSB7CisgICAgICAgICAgICAgICAgYWZmaXhQYXQgPSBpc05lZ2F0aXZlID8gbmVnUHJlZml4UGF0dGVybiA6IHBvc1ByZWZpeFBhdHRlcm47CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFmZml4UGF0ID0gaXNOZWdhdGl2ZSA/IG5lZ1N1ZmZpeFBhdHRlcm4gOiBwb3NTdWZmaXhQYXR0ZXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGFmZml4QnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgZXhwYW5kQWZmaXgoYWZmaXhQYXQsIGFmZml4QnVmLCB0cnVlKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYWZmaXhCdWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICByZXR1cm4gYWZmaXhCdWYubGVuZ3RoKCk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgYWZmaXggPSBudWxsOworICAgICAgICBpZiAoaXNQcmVmaXgpIHsKKyAgICAgICAgICAgIGFmZml4ID0gaXNOZWdhdGl2ZSA/IG5lZ2F0aXZlUHJlZml4IDogcG9zaXRpdmVQcmVmaXg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhZmZpeCA9IGlzTmVnYXRpdmUgPyBuZWdhdGl2ZVN1ZmZpeCA6IHBvc2l0aXZlU3VmZml4OworICAgICAgICB9CisgICAgICAgIGJ1Zi5hcHBlbmQoYWZmaXgpOworICAgICAgICByZXR1cm4gYWZmaXgubGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIGFuIGFmZml4IHBhdHRlcm4gdG8gdGhlIGdpdmVuIFN0cmluZ0J1ZmZlci4gIExvY2FsaXplIHVucXVvdGVkCisgICAgICogc3BlY2lhbHMuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGFwcGVuZEFmZml4UGF0dGVybihTdHJpbmdCdWZmZXIgYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc05lZ2F0aXZlLCBib29sZWFuIGlzUHJlZml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBsb2NhbGl6ZWQpIHsKKyAgICAgICAgU3RyaW5nIGFmZml4UGF0ID0gbnVsbDsKKyAgICAgICAgaWYgKGlzUHJlZml4KSB7CisgICAgICAgICAgICBhZmZpeFBhdCA9IGlzTmVnYXRpdmUgPyBuZWdQcmVmaXhQYXR0ZXJuIDogcG9zUHJlZml4UGF0dGVybjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFmZml4UGF0ID0gaXNOZWdhdGl2ZSA/IG5lZ1N1ZmZpeFBhdHRlcm4gOiBwb3NTdWZmaXhQYXR0ZXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gV2hlbiB0aGVyZSBpcyBhIG51bGwgYWZmaXggcGF0dGVybiwgd2UgdXNlIHRoZSBhZmZpeCBpdHNlbGYuCisgICAgICAgIGlmIChhZmZpeFBhdCA9PSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmcgYWZmaXggPSBudWxsOworICAgICAgICAgICAgaWYgKGlzUHJlZml4KSB7CisgICAgICAgICAgICAgICAgYWZmaXggPSBpc05lZ2F0aXZlID8gbmVnYXRpdmVQcmVmaXggOiBwb3NpdGl2ZVByZWZpeDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYWZmaXggPSBpc05lZ2F0aXZlID8gbmVnYXRpdmVTdWZmaXggOiBwb3NpdGl2ZVN1ZmZpeDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIERvIHRoaXMgY3J1ZGVseSBmb3Igbm93OiAgV3JhcCBldmVyeXRoaW5nIGluIHF1b3Rlcy4KKyAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoUVVPVEUpOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGFmZml4Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gYWZmaXguY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGlmIChjaCA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKFFVT1RFKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghbG9jYWxpemVkKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKGFmZml4UGF0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBpLCBqOworICAgICAgICAgICAgZm9yIChpPTA7IGk8YWZmaXhQYXQubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGNoYXIgY2ggPSBhZmZpeFBhdC5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICAgICAgICAgIGNhc2UgUVVPVEU6CisgICAgICAgICAgICAgICAgICAgIGogPSBhZmZpeFBhdC5pbmRleE9mKFFVT1RFLCBpKzEpOworICAgICAgICAgICAgICAgICAgICBpZiAoaiA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk1hbGZvcm1lZCBhZmZpeCBwYXR0ZXJuOiAiICsgYWZmaXhQYXQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5hcHBlbmQoYWZmaXhQYXQuc3Vic3RyaW5nKGksIGorMSkpOworICAgICAgICAgICAgICAgICAgICBpID0gajsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgY2FzZSBQQVRURVJOX1BFUl9NSUxMRToKKyAgICAgICAgICAgICAgICAgICAgY2ggPSBzeW1ib2xzLmdldFBlck1pbGwoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBQQVRURVJOX1BFUkNFTlQ6CisgICAgICAgICAgICAgICAgICAgIGNoID0gc3ltYm9scy5nZXRQZXJjZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgUEFUVEVSTl9NSU5VUzoKKyAgICAgICAgICAgICAgICAgICAgY2ggPSBzeW1ib2xzLmdldE1pbnVzU2lnbigpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5DSEFOR0VEPC9mb250Pjwvc3Ryb25nPgorICAgICAqIERvZXMgdGhlIHJlYWwgd29yayBvZiBnZW5lcmF0aW5nIGEgcGF0dGVybi4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBsb2NhbGl6ZWQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgY2hhciB6ZXJvID0gbG9jYWxpemVkID8gc3ltYm9scy5nZXRaZXJvRGlnaXQoKSA6IFBBVFRFUk5fWkVST19ESUdJVDsKKyAgICAgICAgY2hhciBkaWdpdCA9IGxvY2FsaXplZCA/IHN5bWJvbHMuZ2V0RGlnaXQoKSA6IFBBVFRFUk5fRElHSVQ7CisgICAgICAgIGNoYXIgc2lnRGlnaXQgPSAwOworICAgICAgICBib29sZWFuIHVzZVNpZ0RpZyA9IGFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpOworICAgICAgICBpZiAodXNlU2lnRGlnKSB7CisgICAgICAgICAgICBzaWdEaWdpdCA9IGxvY2FsaXplZCA/IHN5bWJvbHMuZ2V0U2lnbmlmaWNhbnREaWdpdCgpIDogUEFUVEVSTl9TSUdOSUZJQ0FOVF9ESUdJVDsKKyAgICAgICAgfQorICAgICAgICBjaGFyIGdyb3VwID0gbG9jYWxpemVkID8gc3ltYm9scy5nZXRHcm91cGluZ1NlcGFyYXRvcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBQQVRURVJOX0dST1VQSU5HX1NFUEFSQVRPUjsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGludCByb3VuZGluZ0RlY2ltYWxQb3MgPSAwOyAvLyBQb3Mgb2YgZGVjaW1hbCBpbiByb3VuZGluZ0RpZ2l0cworICAgICAgICBTdHJpbmcgcm91bmRpbmdEaWdpdHMgPSBudWxsOworICAgICAgICBpbnQgcGFkUG9zID0gKGZvcm1hdFdpZHRoID4gMCkgPyBwYWRQb3NpdGlvbiA6IC0xOworICAgICAgICBTdHJpbmcgcGFkU3BlYyA9IChmb3JtYXRXaWR0aCA+IDApCisgICAgICAgICAgICA/IG5ldyBTdHJpbmdCdWZmZXIoMikuCisgICAgICAgICAgICAgICAgYXBwZW5kKGxvY2FsaXplZCA/IHN5bWJvbHMuZ2V0UGFkRXNjYXBlKCkgOiBQQVRURVJOX1BBRF9FU0NBUEUpLgorICAgICAgICAgICAgICAgIGFwcGVuZChwYWQpLnRvU3RyaW5nKCkKKyAgICAgICAgICAgIDogbnVsbDsKKyAgICAgICAgaWYgKHJvdW5kaW5nSW5jcmVtZW50SUNVICE9IG51bGwpIHsKKyAgICAgICAgICAgIGkgPSByb3VuZGluZ0luY3JlbWVudElDVS5zY2FsZSgpOworICAgICAgICAgICAgcm91bmRpbmdEaWdpdHMgPSByb3VuZGluZ0luY3JlbWVudElDVS5tb3ZlUG9pbnRSaWdodChpKS50b1N0cmluZygpOworICAgICAgICAgICAgcm91bmRpbmdEZWNpbWFsUG9zID0gcm91bmRpbmdEaWdpdHMubGVuZ3RoKCkgLSBpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IHBhcnQ9MDsgcGFydDwyOyArK3BhcnQpIHsKKyAgICAgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGludCBwYXJ0U3RhcnQgPSByZXN1bHQubGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAocGFkUG9zID09IFBBRF9CRUZPUkVfUFJFRklYKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwYWRTcGVjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIFVzZSBvcmlnaW5hbCBzeW1ib2xzIHJlYWQgZnJvbSByZXNvdXJjZXMgaW4gcGF0dGVybgorICAgICAgICAgICAgICogZWcuIHVzZSAiXHUwMEE0IiBpbnN0ZWFkIG9mICIkIiBpbiBMb2NhbGUuVVMgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBhcHBlbmRBZmZpeFBhdHRlcm4ocmVzdWx0LCBwYXJ0IT0wLCB0cnVlLCBsb2NhbGl6ZWQpOworICAgICAgICAgICAgaWYgKHBhZFBvcyA9PSBQQURfQUZURVJfUFJFRklYKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwYWRTcGVjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBzdWIwU3RhcnQgPSByZXN1bHQubGVuZ3RoKCk7CisgICAgICAgICAgICBpbnQgZyA9IGlzR3JvdXBpbmdVc2VkKCkgPyBNYXRoLm1heCgwLCBncm91cGluZ1NpemUpIDogMDsKKyAgICAgICAgICAgIGlmIChnID4gMCAmJiBncm91cGluZ1NpemUyID4gMCAmJiBncm91cGluZ1NpemUyICE9IGdyb3VwaW5nU2l6ZSkgeworICAgICAgICAgICAgICAgIGcgKz0gZ3JvdXBpbmdTaXplMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBtYXhEaWcgPSAwLCBtaW5EaWcgPSAwLCBtYXhTaWdEaWcgPSAwOworICAgICAgICAgICAgaWYgKHVzZVNpZ0RpZykgeworICAgICAgICAgICAgICAgIG1pbkRpZyA9IGdldE1pbmltdW1TaWduaWZpY2FudERpZ2l0cygpOworICAgICAgICAgICAgICAgIG1heERpZyA9IG1heFNpZ0RpZyA9IGdldE1heGltdW1TaWduaWZpY2FudERpZ2l0cygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtaW5EaWcgPSBnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpOworICAgICAgICAgICAgICAgIG1heERpZyA9IGdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodXNlRXhwb25lbnRpYWxOb3RhdGlvbikgeworICAgICAgICAgICAgICAgIGlmIChtYXhEaWcgPiBNQVhfU0NJRU5USUZJQ19JTlRFR0VSX0RJR0lUUykgeworICAgICAgICAgICAgICAgICAgICBtYXhEaWcgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAodXNlU2lnRGlnKSB7CisgICAgICAgICAgICAgICAgbWF4RGlnID0gTWF0aC5tYXgobWF4RGlnLCBnKzEpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtYXhEaWcgPSBNYXRoLm1heChNYXRoLm1heChnLCBnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cygpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZGluZ0RlY2ltYWxQb3MpICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaSA9IG1heERpZzsgaSA+IDA7IC0taSkgeworICAgICAgICAgICAgICAgIGlmICghdXNlRXhwb25lbnRpYWxOb3RhdGlvbiAmJiBpPG1heERpZyAmJgorICAgICAgICAgICAgICAgICAgICBpc0dyb3VwaW5nUG9zaXRpb24oaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChncm91cCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh1c2VTaWdEaWcpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gICNALEAjIyMgICAobWF4U2lnRGlnID09IDUsIG1pblNpZ0RpZyA9PSAyKQorICAgICAgICAgICAgICAgICAgICAvLyAgNjUgNDMyMSAgICgxLWJhc2VkIHBvcywgY291bnQgZnJvbSB0aGUgcmlnaHQpCisgICAgICAgICAgICAgICAgICAgIC8vIFVzZSAjIGlmIHBvcyA+IG1heFNpZ0RpZyBvciAxIDw9IHBvcyA8PSAobWF4U2lnRGlnIC0gbWluU2lnRGlnKQorICAgICAgICAgICAgICAgICAgICAvLyBVc2UgQCBpZiAobWF4U2lnRGlnIC0gbWluU2lnRGlnKSA8IHBvcyA8PSBtYXhTaWdEaWcKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgobWF4U2lnRGlnID49IGkgJiYgaSA+IChtYXhTaWdEaWcgLSBtaW5EaWcpKSA/IHNpZ0RpZ2l0IDogZGlnaXQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChyb3VuZGluZ0RpZ2l0cyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcG9zID0gcm91bmRpbmdEZWNpbWFsUG9zIC0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPj0gMCAmJiBwb3MgPCByb3VuZGluZ0RpZ2l0cy5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpIChyb3VuZGluZ0RpZ2l0cy5jaGFyQXQocG9zKSAtICcwJyArIHplcm8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGk8PW1pbkRpZyA/IHplcm8gOiBkaWdpdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCF1c2VTaWdEaWcpIHsKKyAgICAgICAgICAgICAgICBpZiAoZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgPiAwIHx8IGRlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bikgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGxvY2FsaXplZCA/IHN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVRURVJOX0RFQ0lNQUxfU0VQQVJBVE9SKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IHBvcyA9IHJvdW5kaW5nRGVjaW1hbFBvczsKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAocm91bmRpbmdEaWdpdHMgIT0gbnVsbCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgcG9zIDwgcm91bmRpbmdEaWdpdHMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocG9zIDwgMCA/IHplcm8gOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikgKHJvdW5kaW5nRGlnaXRzLmNoYXJBdChwb3MpIC0gJzAnICsgemVybykpOworICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGk8Z2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKCkgPyB6ZXJvIDogZGlnaXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh1c2VFeHBvbmVudGlhbE5vdGF0aW9uKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChsb2NhbGl6ZWQgPyBzeW1ib2xzLmdldEV4cG9uZW50U2VwYXJhdG9yKCkgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFUVEVSTl9FWFBPTkVOVCk7CisgICAgICAgICAgICAgICAgaWYgKGV4cG9uZW50U2lnbkFsd2F5c1Nob3duKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQobG9jYWxpemVkID8gc3ltYm9scy5nZXRQbHVzU2lnbigpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVRURVJOX1BMVVNfU0lHTik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPG1pbkV4cG9uZW50RGlnaXRzOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh6ZXJvKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocGFkU3BlYyAhPSBudWxsICYmICF1c2VFeHBvbmVudGlhbE5vdGF0aW9uKSB7CisgICAgICAgICAgICAgICAgaW50IGFkZCA9IGZvcm1hdFdpZHRoIC0gcmVzdWx0Lmxlbmd0aCgpICsgc3ViMFN0YXJ0CisgICAgICAgICAgICAgICAgICAgIC0gKChwYXJ0ID09IDApCisgICAgICAgICAgICAgICAgICAgICAgID8gcG9zaXRpdmVQcmVmaXgubGVuZ3RoKCkgKyBwb3NpdGl2ZVN1ZmZpeC5sZW5ndGgoKQorICAgICAgICAgICAgICAgICAgICAgICA6IG5lZ2F0aXZlUHJlZml4Lmxlbmd0aCgpICsgbmVnYXRpdmVTdWZmaXgubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIHdoaWxlIChhZGQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pbnNlcnQoc3ViMFN0YXJ0LCBkaWdpdCk7CisgICAgICAgICAgICAgICAgICAgICsrbWF4RGlnOworICAgICAgICAgICAgICAgICAgICAtLWFkZDsKKyAgICAgICAgICAgICAgICAgICAgLy8gT25seSBhZGQgYSBncm91cGluZyBzZXBhcmF0b3IgaWYgd2UgaGF2ZSBhdCBsZWFzdAorICAgICAgICAgICAgICAgICAgICAvLyAyIGFkZGl0aW9uYWwgY2hhcmFjdGVycyB0byBiZSBhZGRlZCwgc28gd2UgZG9uJ3QKKyAgICAgICAgICAgICAgICAgICAgLy8gZW5kIHVwIHdpdGggIiwjIyMiLgorICAgICAgICAgICAgICAgICAgICBpZiAoYWRkPjEgJiYgaXNHcm91cGluZ1Bvc2l0aW9uKG1heERpZykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pbnNlcnQoc3ViMFN0YXJ0LCBncm91cCk7CisgICAgICAgICAgICAgICAgICAgICAgICAtLWFkZDsgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwYWRQb3MgPT0gUEFEX0JFRk9SRV9TVUZGSVgpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHBhZFNwZWMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogVXNlIG9yaWdpbmFsIHN5bWJvbHMgcmVhZCBmcm9tIHJlc291cmNlcyBpbiBwYXR0ZXJuCisgICAgICAgICAgICAgKiBlZy4gdXNlICJcdTAwQTQiIGluc3RlYWQgb2YgIiQiIGluIExvY2FsZS5VUyBbUmljaGFyZC9HQ0xdCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGFwcGVuZEFmZml4UGF0dGVybihyZXN1bHQsIHBhcnQhPTAsIGZhbHNlLCBsb2NhbGl6ZWQpOworICAgICAgICAgICAgaWYgKHBhZFBvcyA9PSBQQURfQUZURVJfU1VGRklYKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwYWRTcGVjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwYXJ0ID09IDApIHsKKyAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmVTdWZmaXguZXF1YWxzKHBvc2l0aXZlU3VmZml4KSAmJgorICAgICAgICAgICAgICAgICAgICBuZWdhdGl2ZVByZWZpeC5lcXVhbHMoc3ltYm9scy5nZXRNaW51c1NpZ24oKSArIHBvc2l0aXZlUHJlZml4KSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGxvY2FsaXplZCA/IHN5bWJvbHMuZ2V0UGF0dGVyblNlcGFyYXRvcigpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVRURVJOX1NFUEFSQVRPUik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBseSB0aGUgZ2l2ZW4gcGF0dGVybiB0byB0aGlzIEZvcm1hdCBvYmplY3QuICBBIHBhdHRlcm4gaXMgYQorICAgICAqIHNob3J0LWhhbmQgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIHZhcmlvdXMgZm9ybWF0dGluZyBwcm9wZXJ0aWVzLgorICAgICAqIFRoZXNlIHByb3BlcnRpZXMgY2FuIGFsc28gYmUgY2hhbmdlZCBpbmRpdmlkdWFsbHkgdGhyb3VnaCB0aGUKKyAgICAgKiB2YXJpb3VzIHNldHRlciBtZXRob2RzLgorICAgICAqIDxwPgorICAgICAqIFRoZXJlIGlzIG5vIGxpbWl0IHRvIGludGVnZXIgZGlnaXRzIGFyZSBzZXQKKyAgICAgKiBieSB0aGlzIHJvdXRpbmUsIHNpbmNlIHRoYXQgaXMgdGhlIHR5cGljYWwgZW5kLXVzZXIgZGVzaXJlOworICAgICAqIHVzZSBzZXRNYXhpbXVtSW50ZWdlciBpZiB5b3Ugd2FudCB0byBzZXQgYSByZWFsIHZhbHVlLgorICAgICAqIEZvciBuZWdhdGl2ZSBudW1iZXJzLCB1c2UgYSBzZWNvbmQgcGF0dGVybiwgc2VwYXJhdGVkIGJ5IGEgc2VtaWNvbG9uCisgICAgICogPFA+RXhhbXBsZSAiIywjMDAuMCMiIC0+IDEsMjM0LjU2CisgICAgICogPFA+VGhpcyBtZWFucyBhIG1pbmltdW0gb2YgMiBpbnRlZ2VyIGRpZ2l0cywgMSBmcmFjdGlvbiBkaWdpdCwgYW5kCisgICAgICogYSBtYXhpbXVtIG9mIDIgZnJhY3Rpb24gZGlnaXRzLgorICAgICAqIDxwPkV4YW1wbGU6ICIjLCMwMC4wIzsoIywjMDAuMCMpIiBmb3IgbmVnYXRpdmVzIGluIHBhcmVudGhlc2VzLgorICAgICAqIDxwPkluIG5lZ2F0aXZlIHBhdHRlcm5zLCB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBjb3VudHMgYXJlIGlnbm9yZWQ7CisgICAgICogdGhlc2UgYXJlIHByZXN1bWVkIHRvIGJlIHNldCBpbiB0aGUgcG9zaXRpdmUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBseVBhdHRlcm4oIFN0cmluZyBwYXR0ZXJuICkgeworICAgICAgICBhcHBseVBhdHRlcm4oIHBhdHRlcm4sIGZhbHNlICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwbHkgdGhlIGdpdmVuIHBhdHRlcm4gdG8gdGhpcyBGb3JtYXQgb2JqZWN0LiAgVGhlIHBhdHRlcm4KKyAgICAgKiBpcyBhc3N1bWVkIHRvIGJlIGluIGEgbG9jYWxpemVkIG5vdGF0aW9uLiBBIHBhdHRlcm4gaXMgYQorICAgICAqIHNob3J0LWhhbmQgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIHZhcmlvdXMgZm9ybWF0dGluZyBwcm9wZXJ0aWVzLgorICAgICAqIFRoZXNlIHByb3BlcnRpZXMgY2FuIGFsc28gYmUgY2hhbmdlZCBpbmRpdmlkdWFsbHkgdGhyb3VnaCB0aGUKKyAgICAgKiB2YXJpb3VzIHNldHRlciBtZXRob2RzLgorICAgICAqIDxwPgorICAgICAqIFRoZXJlIGlzIG5vIGxpbWl0IHRvIGludGVnZXIgZGlnaXRzIGFyZSBzZXQKKyAgICAgKiBieSB0aGlzIHJvdXRpbmUsIHNpbmNlIHRoYXQgaXMgdGhlIHR5cGljYWwgZW5kLXVzZXIgZGVzaXJlOworICAgICAqIHVzZSBzZXRNYXhpbXVtSW50ZWdlciBpZiB5b3Ugd2FudCB0byBzZXQgYSByZWFsIHZhbHVlLgorICAgICAqIEZvciBuZWdhdGl2ZSBudW1iZXJzLCB1c2UgYSBzZWNvbmQgcGF0dGVybiwgc2VwYXJhdGVkIGJ5IGEgc2VtaWNvbG9uCisgICAgICogPFA+RXhhbXBsZSAiIywjMDAuMCMiIC0+IDEsMjM0LjU2CisgICAgICogPFA+VGhpcyBtZWFucyBhIG1pbmltdW0gb2YgMiBpbnRlZ2VyIGRpZ2l0cywgMSBmcmFjdGlvbiBkaWdpdCwgYW5kCisgICAgICogYSBtYXhpbXVtIG9mIDIgZnJhY3Rpb24gZGlnaXRzLgorICAgICAqIDxwPkV4YW1wbGU6ICIjLCMwMC4wIzsoIywjMDAuMCMpIiBmb3IgbmVnYXRpdmVzIGluIHBhcmFudGhlc2VzLgorICAgICAqIDxwPkluIG5lZ2F0aXZlIHBhdHRlcm5zLCB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBjb3VudHMgYXJlIGlnbm9yZWQ7CisgICAgICogdGhlc2UgYXJlIHByZXN1bWVkIHRvIGJlIHNldCBpbiB0aGUgcG9zaXRpdmUgcGF0dGVybi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBseUxvY2FsaXplZFBhdHRlcm4oIFN0cmluZyBwYXR0ZXJuICkgeworICAgICAgICBhcHBseVBhdHRlcm4oIHBhdHRlcm4sIHRydWUgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5DSEFOR0VEPC9mb250Pjwvc3Ryb25nPgorICAgICAqIERvZXMgdGhlIHJlYWwgd29yayBvZiBhcHBseWluZyBhIHBhdHRlcm4uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGFwcGx5UGF0dGVybihTdHJpbmcgcGF0dGVybiwgYm9vbGVhbiBsb2NhbGl6ZWQpIHsKKyAgICAgICAgY2hhciB6ZXJvRGlnaXQgICAgICAgICA9IFBBVFRFUk5fWkVST19ESUdJVDsgLy8gJzAnCisgICAgICAgIGNoYXIgc2lnRGlnaXQgICAgICAgICAgPSBQQVRURVJOX1NJR05JRklDQU5UX0RJR0lUOyAvLyAnQCcKKyAgICAgICAgY2hhciBncm91cGluZ1NlcGFyYXRvciA9IFBBVFRFUk5fR1JPVVBJTkdfU0VQQVJBVE9SOworICAgICAgICBjaGFyIGRlY2ltYWxTZXBhcmF0b3IgID0gUEFUVEVSTl9ERUNJTUFMX1NFUEFSQVRPUjsKKyAgICAgICAgY2hhciBwZXJjZW50ICAgICAgICAgICA9IFBBVFRFUk5fUEVSQ0VOVDsKKyAgICAgICAgY2hhciBwZXJNaWxsICAgICAgICAgICA9IFBBVFRFUk5fUEVSX01JTExFOworICAgICAgICBjaGFyIGRpZ2l0ICAgICAgICAgICAgID0gUEFUVEVSTl9ESUdJVDsgLy8gJyMnCisgICAgICAgIGNoYXIgc2VwYXJhdG9yICAgICAgICAgPSBQQVRURVJOX1NFUEFSQVRPUjsKKyAgICAgICAgU3RyaW5nIGV4cG9uZW50ICAgICAgICA9IFBBVFRFUk5fRVhQT05FTlQ7CisgICAgICAgIGNoYXIgcGx1cyAgICAgICAgICAgICAgPSBQQVRURVJOX1BMVVNfU0lHTjsKKyAgICAgICAgY2hhciBwYWRFc2NhcGUgICAgICAgICA9IFBBVFRFUk5fUEFEX0VTQ0FQRTsKKyAgICAgICAgY2hhciBtaW51cyAgICAgICAgICAgICA9IFBBVFRFUk5fTUlOVVM7IC8vQnVnIDQyMTIwNzIgW1JpY2hhcmQvR0NMXQorICAgICAgICBpZiAobG9jYWxpemVkKSB7CisgICAgICAgICAgICB6ZXJvRGlnaXQgICAgICAgICA9IHN5bWJvbHMuZ2V0WmVyb0RpZ2l0KCk7CisgICAgICAgICAgICBzaWdEaWdpdCAgICAgICAgICA9IHN5bWJvbHMuZ2V0U2lnbmlmaWNhbnREaWdpdCgpOworICAgICAgICAgICAgZ3JvdXBpbmdTZXBhcmF0b3IgPSBzeW1ib2xzLmdldEdyb3VwaW5nU2VwYXJhdG9yKCk7CisgICAgICAgICAgICBkZWNpbWFsU2VwYXJhdG9yICA9IHN5bWJvbHMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpOworICAgICAgICAgICAgcGVyY2VudCAgICAgICAgICAgPSBzeW1ib2xzLmdldFBlcmNlbnQoKTsKKyAgICAgICAgICAgIHBlck1pbGwgICAgICAgICAgID0gc3ltYm9scy5nZXRQZXJNaWxsKCk7CisgICAgICAgICAgICBkaWdpdCAgICAgICAgICAgICA9IHN5bWJvbHMuZ2V0RGlnaXQoKTsKKyAgICAgICAgICAgIHNlcGFyYXRvciAgICAgICAgID0gc3ltYm9scy5nZXRQYXR0ZXJuU2VwYXJhdG9yKCk7CisgICAgICAgICAgICBleHBvbmVudCAgICAgICAgICA9IHN5bWJvbHMuZ2V0RXhwb25lbnRTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgIHBsdXMgICAgICAgICAgICAgID0gc3ltYm9scy5nZXRQbHVzU2lnbigpOworICAgICAgICAgICAgcGFkRXNjYXBlICAgICAgICAgPSBzeW1ib2xzLmdldFBhZEVzY2FwZSgpOworICAgICAgICAgICAgbWludXMgICAgICAgICAgICAgPSBzeW1ib2xzLmdldE1pbnVzU2lnbigpOyAvL0J1ZyA0MjEyMDcyIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgfQorICAgICAgICBjaGFyIG5pbmVEaWdpdCA9IChjaGFyKSAoemVyb0RpZ2l0ICsgOSk7CisKKyAgICAgICAgYm9vbGVhbiBnb3ROZWdhdGl2ZSA9IGZhbHNlOworCisgICAgICAgIGludCBwb3MgPSAwOworICAgICAgICAvLyBQYXJ0IDAgaXMgdGhlIHBvc2l0aXZlIHBhdHRlcm4uICBQYXJ0IDEsIGlmIHByZXNlbnQsIGlzIHRoZSBuZWdhdGl2ZQorICAgICAgICAvLyBwYXR0ZXJuLgorICAgICAgICBmb3IgKGludCBwYXJ0PTA7IHBhcnQ8MiAmJiBwb3M8cGF0dGVybi5sZW5ndGgoKTsgKytwYXJ0KSB7CisgICAgICAgICAgICAvLyBUaGUgc3VicGFydCByYW5nZXMgZnJvbSAwIHRvIDQ6IDA9cGF0dGVybiBwcm9wZXIsIDE9cHJlZml4LAorICAgICAgICAgICAgLy8gMj1zdWZmaXgsIDM9cHJlZml4IGluIHF1b3RlLCA0PXN1ZmZpeCBpbiBxdW90ZS4gIFN1YnBhcnQgMCBpcworICAgICAgICAgICAgLy8gYmV0d2VlbiB0aGUgcHJlZml4IGFuZCBzdWZmaXgsIGFuZCBjb25zaXN0cyBvZiBwYXR0ZXJuCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzLiAgSW4gdGhlIHByZWZpeCBhbmQgc3VmZml4LCBwZXJjZW50LCBwZXJtaWxsZSwgYW5kCisgICAgICAgICAgICAvLyBjdXJyZW5jeSBzeW1ib2xzIGFyZSByZWNvZ25pemVkIGFuZCB0cmFuc2xhdGVkLgorICAgICAgICAgICAgaW50IHN1YnBhcnQgPSAxLCBzdWIwU3RhcnQgPSAwLCBzdWIwTGltaXQgPSAwLCBzdWIyTGltaXQgPSAwOworCisgICAgICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0aGF0IHdlIGRvbid0IGNoYW5nZSBhbnkgZmllbGRzIG9mIHRoaXMgb2JqZWN0CisgICAgICAgICAgICAvLyBwcmVtYXR1cmVseS4gIFdlIHNldCB0aGUgZm9sbG93aW5nIHZhcmlhYmxlcyBmb3IgdGhlIG11bHRpcGxpZXIsCisgICAgICAgICAgICAvLyBncm91cGluZywgZXRjLiwgYW5kIHRoZW4gb25seSBjaGFuZ2UgdGhlIGFjdHVhbCBvYmplY3QgZmllbGRzIGlmCisgICAgICAgICAgICAvLyBldmVyeXRoaW5nIHBhcnNlcyBjb3JyZWN0bHkuICBUaGlzIGFsc28gbGV0cyB1cyByZWdpc3RlcgorICAgICAgICAgICAgLy8gdGhlIGRhdGEgZnJvbSBwYXJ0IDAgYW5kIGlnbm9yZSB0aGUgcGFydCAxLCBleGNlcHQgZm9yIHRoZQorICAgICAgICAgICAgLy8gcHJlZml4IGFuZCBzdWZmaXguCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcHJlZml4ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN1ZmZpeCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIGludCBkZWNpbWFsUG9zID0gLTE7CisgICAgICAgICAgICBpbnQgbXVsdGlwbGllciA9IDE7CisgICAgICAgICAgICBpbnQgZGlnaXRMZWZ0Q291bnQgPSAwLCB6ZXJvRGlnaXRDb3VudCA9IDAsIGRpZ2l0UmlnaHRDb3VudCA9IDAsIHNpZ0RpZ2l0Q291bnQgPSAwOworICAgICAgICAgICAgYnl0ZSBncm91cGluZ0NvdW50ID0gLTE7CisgICAgICAgICAgICBieXRlIGdyb3VwaW5nQ291bnQyID0gLTE7CisgICAgICAgICAgICBpbnQgcGFkUG9zID0gLTE7CisgICAgICAgICAgICBjaGFyIHBhZENoYXIgPSAwOworICAgICAgICAgICAgaW50IGluY3JlbWVudFBvcyA9IC0xOworICAgICAgICAgICAgbG9uZyBpbmNyZW1lbnRWYWwgPSAwOworICAgICAgICAgICAgYnl0ZSBleHBEaWdpdHMgPSAtMTsKKyAgICAgICAgICAgIGJvb2xlYW4gZXhwU2lnbkFsd2F5cyA9IGZhbHNlOworICAgICAgICAgICAgYm9vbGVhbiBpc0N1cnJlbmN5ID0gZmFsc2U7CisKKyAgICAgICAgICAgIC8vIFRoZSBhZmZpeCBpcyBlaXRoZXIgdGhlIHByZWZpeCBvciB0aGUgc3VmZml4LgorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGFmZml4ID0gcHJlZml4OworCisgICAgICAgICAgICBpbnQgc3RhcnQgPSBwb3M7CisKKyAgICAgICAgUEFSVExPT1A6CisgICAgICAgICAgICBmb3IgKDsgcG9zIDwgcGF0dGVybi5sZW5ndGgoKTsgKytwb3MpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gcGF0dGVybi5jaGFyQXQocG9zKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHN1YnBhcnQpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6IC8vIFBhdHRlcm4gcHJvcGVyIHN1YnBhcnQgKGJldHdlZW4gcHJlZml4ICYgc3VmZml4KQorICAgICAgICAgICAgICAgICAgICAvLyBQcm9jZXNzIHRoZSBkaWdpdHMsIGRlY2ltYWwsIGFuZCBncm91cGluZyBjaGFyYWN0ZXJzLiAgV2UKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVjb3JkIGZpdmUgcGllY2VzIG9mIGluZm9ybWF0aW9uLiAgV2UgZXhwZWN0IHRoZSBkaWdpdHMKKyAgICAgICAgICAgICAgICAgICAgLy8gdG8gb2NjdXIgaW4gdGhlIHBhdHRlcm4gIyMjIzAwLjAwIyMjIywgYW5kIHdlIHJlY29yZCB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gbnVtYmVyIG9mIGxlZnQgZGlnaXRzLCB6ZXJvIChjZW50cmFsKSBkaWdpdHMsIGFuZCByaWdodAorICAgICAgICAgICAgICAgICAgICAvLyBkaWdpdHMuICBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgZ3JvdXBpbmcgY2hhcmFjdGVyIGlzCisgICAgICAgICAgICAgICAgICAgIC8vIHJlY29yZGVkIChzaG91bGQgYmUgc29tZXdoZXJlIHdpdGhpbiB0aGUgZmlyc3QgdHdvIGJsb2NrcworICAgICAgICAgICAgICAgICAgICAvLyBvZiBjaGFyYWN0ZXJzKSwgYXMgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBkZWNpbWFsIHBvaW50LAorICAgICAgICAgICAgICAgICAgICAvLyBpZiBhbnkgKHNob3VsZCBiZSBpbiB0aGUgemVybyBkaWdpdHMpLiAgSWYgdGhlcmUgaXMgbm8KKyAgICAgICAgICAgICAgICAgICAgLy8gZGVjaW1hbCBwb2ludCwgdGhlbiB0aGVyZSBzaG91bGQgYmUgbm8gcmlnaHQgZGlnaXRzLgorICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gZGlnaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh6ZXJvRGlnaXRDb3VudCA+IDAgfHwgc2lnRGlnaXRDb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2RpZ2l0UmlnaHRDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytkaWdpdExlZnRDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChncm91cGluZ0NvdW50ID49IDAgJiYgZGVjaW1hbFBvcyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2dyb3VwaW5nQ291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKGNoID49IHplcm9EaWdpdCAmJiBjaCA8PSBuaW5lRGlnaXQpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ggPT0gc2lnRGlnaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaWdpdFJpZ2h0Q291bnQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybkVycm9yKCJVbmV4cGVjdGVkICciICsgY2ggKyAnXCcnLCBwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PSBzaWdEaWdpdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc2lnRGlnaXRDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyt6ZXJvRGlnaXRDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggIT0gemVyb0RpZ2l0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwID0gZGlnaXRMZWZ0Q291bnQgKyB6ZXJvRGlnaXRDb3VudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBkaWdpdFJpZ2h0Q291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmNyZW1lbnRQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGluY3JlbWVudFBvcyA8IHApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRWYWwgKj0gMTA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytpbmNyZW1lbnRQb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRQb3MgPSBwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlbWVudFZhbCArPSBjaCAtIHplcm9EaWdpdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBpbmdDb3VudCA+PSAwICYmIGRlY2ltYWxQb3MgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytncm91cGluZ0NvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IGdyb3VwaW5nU2VwYXJhdG9yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MgdGhlIExvY2FsaXplZCBwYXR0ZXJuIGxpa2UgIidGci4gJyMnIyMwLjA1OydGci4tJyMnIyMwLjA1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAoTG9jYWxlPSJDSCIsIGdyb3VwaW5nU2VwYXJhdG9yID09IFFVT1RFKSAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gUVVPVEUgJiYgKHBvcysxKSA8IHBhdHRlcm4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGFmdGVyID0gcGF0dGVybi5jaGFyQXQocG9zKzEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKGFmdGVyID09IGRpZ2l0IHx8IChhZnRlciA+PSB6ZXJvRGlnaXQgJiYgYWZ0ZXIgPD0gbmluZURpZ2l0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQSBxdW90ZSBvdXRzaWRlIHF1b3RlcyBpbmRpY2F0ZXMgZWl0aGVyIHRoZSBvcGVuaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHF1b3RlIG9yIHR3byBxdW90ZXMsIHdoaWNoIGlzIGEgcXVvdGUgbGl0ZXJhbC4gIFRoYXQgaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgdGhlIGZpcnN0IHF1b3RlIGluICdkbycgb3IgbycnY2xvY2suCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhZnRlciA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggdG8gYXBwZW5kKGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwaW5nQ291bnQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VicGFydCA9IDM7IC8vIHF1b3RlZCBwcmVmaXggc3VicGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJhbnNpdGlvbiB0byBzdWZmaXggc3VicGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJwYXJ0ID0gMjsgLy8gc3VmZml4IHN1YnBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWZmaXggPSBzdWZmaXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YjBMaW1pdCA9IHBvcy0tOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZWNpbWFsUG9zID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIkdyb3VwaW5nIHNlcGFyYXRvciBhZnRlciBkZWNpbWFsIiwgcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBncm91cGluZ0NvdW50MiA9IGdyb3VwaW5nQ291bnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBncm91cGluZ0NvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSBkZWNpbWFsU2VwYXJhdG9yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVjaW1hbFBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybkVycm9yKCJNdWx0aXBsZSBkZWNpbWFsIHNlcGFyYXRvcnMiLCBwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEludGVudGlvbmFsbHkgaW5jb3Jwb3JhdGUgdGhlIGRpZ2l0UmlnaHRDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIGl0IGlzIGlsbGVnYWwgZm9yIHRoaXMgdG8gYmUgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhdCB0aGlzIHBvaW50LiAgV2UgY2hlY2sgcGF0dGVybiBzeW50YXggYmVsb3cuCisgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsUG9zID0gZGlnaXRMZWZ0Q291bnQgKyB6ZXJvRGlnaXRDb3VudCArIGRpZ2l0UmlnaHRDb3VudDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnJlZ2lvbk1hdGNoZXMocG9zLCBleHBvbmVudCwgMCwgZXhwb25lbnQubGVuZ3RoKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4cERpZ2l0cyA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiTXVsdGlwbGUgZXhwb25lbnRpYWwgc3ltYm9scyIsIHBhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ3JvdXBpbmdDb3VudCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiR3JvdXBpbmcgc2VwYXJhdG9yIGluIGV4cG9uZW50aWFsIiwgcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyArPSBleHBvbmVudC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3IgcG9zaXRpdmUgcHJlZml4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA8IHBhdHRlcm4ubGVuZ3RoKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgcGF0dGVybi5jaGFyQXQocG9zKSA9PSBwbHVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cFNpZ25BbHdheXMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXNlIGxvb2thaGVhZCB0byBwYXJzZSBvdXQgdGhlIGV4cG9uZW50aWFsIHBhcnQgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGF0dGVybiwgdGhlbiBqdW1wIGludG8gc3VmZml4IHN1YnBhcnQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwRGlnaXRzID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAocG9zIDwgcGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmNoYXJBdChwb3MpID09IHplcm9EaWdpdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2V4cERpZ2l0czsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEuIFJlcXVpcmUgYXQgbGVhc3Qgb25lIG1hbnRpc3NhIHBhdHRlcm4gZGlnaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAyLiBEaXNhbGxvdyAiIysgQCIgaW4gbWFudGlzc2EKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAzLiBSZXF1aXJlIGF0IGxlYXN0IG9uZSBleHBvbmVudCBwYXR0ZXJuIGRpZ2l0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgoZGlnaXRMZWZ0Q291bnQgKyB6ZXJvRGlnaXRDb3VudCkgPCAxICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2lnRGlnaXRDb3VudCArIGRpZ2l0UmlnaHRDb3VudCkgPCAxKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2lnRGlnaXRDb3VudCA+IDAgJiYgZGlnaXRMZWZ0Q291bnQgPiAwKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBEaWdpdHMgPCAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiTWFsZm9ybWVkIGV4cG9uZW50aWFsIiwgcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJhbnNpdGlvbiB0byBzdWZmaXggc3VicGFydAorICAgICAgICAgICAgICAgICAgICAgICAgc3VicGFydCA9IDI7IC8vIHN1ZmZpeCBzdWJwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICBhZmZpeCA9IHN1ZmZpeDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1YjBMaW1pdCA9IHBvcy0tOyAvLyBiYWNrdXA6IGZvcigpIHdpbGwgaW5jcmVtZW50CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDE6IC8vIFByZWZpeCBzdWJwYXJ0CisgICAgICAgICAgICAgICAgY2FzZSAyOiAvLyBTdWZmaXggc3VicGFydAorICAgICAgICAgICAgICAgICAgICAvLyBQcm9jZXNzIHRoZSBwcmVmaXggLyBzdWZmaXggY2hhcmFjdGVycworICAgICAgICAgICAgICAgICAgICAvLyBQcm9jZXNzIHVucXVvdGVkIGNoYXJhY3RlcnMgc2VlbiBpbiBwcmVmaXggb3Igc3VmZml4CisgICAgICAgICAgICAgICAgICAgIC8vIHN1YnBhcnQuCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBTZXZlcmFsIHN5bnRheCBjaGFyYWN0ZXJzIGltcGxpY2l0bHkgYmVnaW5zIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBuZXh0IHN1YnBhcnQgaWYgd2UgYXJlIGluIHRoZSBwcmVmaXg7IG90aGVyd2lzZQorICAgICAgICAgICAgICAgICAgICAvLyB0aGV5IGFyZSBpbGxlZ2FsIGlmIHVucXVvdGVkLgorICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gZGlnaXQgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoID09IGdyb3VwaW5nU2VwYXJhdG9yIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBjaCA9PSBkZWNpbWFsU2VwYXJhdG9yIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAoY2ggPj0gemVyb0RpZ2l0ICYmIGNoIDw9IG5pbmVEaWdpdCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoID09IHNpZ0RpZ2l0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbnkgb2YgdGhlc2UgY2hhcmFjdGVycyBpbXBsaWNpdGx5IGJlZ2lucyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5leHQgc3VicGFydCBpZiB3ZSBhcmUgaW4gdGhlIHByZWZpeAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnBhcnQgPT0gMSkgeyAvLyBwcmVmaXggc3VicGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnBhcnQgPSAwOyAvLyBwYXR0ZXJuIHByb3BlciBzdWJwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViMFN0YXJ0ID0gcG9zLS07IC8vIFJlcHJvY2VzcyB0aGlzIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qQnVnIDQyMTIwNzIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MgdGhlIExvY2FsaXplZCBwYXR0ZXJuIGxpa2UgIidGci4gJyMnIyMwLjA1OydGci4tJyMnIyMwLjA1IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExvY2FsZT0iQ0giLCBncm91cGluZ1NlcGFyYXRvciA9PSBRVU9URSkgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQSBxdW90ZSBvdXRzaWRlIHF1b3RlcyBpbmRpY2F0ZXMgZWl0aGVyIHRoZSBvcGVuaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcXVvdGUgb3IgdHdvIHF1b3Rlcywgd2hpY2ggaXMgYSBxdW90ZSBsaXRlcmFsLiAgVGhhdCBpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIHRoZSBmaXJzdCBxdW90ZSBpbiAnZG8nIG9yIG8nJ2Nsb2NrLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocG9zKzEpIDwgcGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuLmNoYXJBdChwb3MrMSkgPT0gUVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmZml4LmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VicGFydCArPSAyOyAvLyBvcGVuIHF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybkVycm9yKCJVbnF1b3RlZCBzcGVjaWFsIGNoYXJhY3RlciAnIiArIGNoICsgJ1wnJywgcGF0dGVybik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gQ1VSUkVOQ1lfU0lHTikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXNlIGxvb2thaGVhZCB0byBkZXRlcm1pbmUgaWYgdGhlIGN1cnJlbmN5IHNpZ24gaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvdWJsZWQgb3Igbm90LgorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkb3VibGVkID0gKHBvcyArIDEpIDwgcGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uY2hhckF0KHBvcyArIDEpID09IENVUlJFTkNZX1NJR047CisgICAgICAgICAgICAgICAgICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgICAgICAgICAgICAgICAgVG8gbWVldCB0aGUgbmVlZCBvZiBleHBhbmRBZmZpeChTdHJpbmcsIFN0aXJuZ0J1ZmZlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICBbUmljaGFyZC9HQ0xdCisgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvdWJsZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3BvczsgLy8gU2tpcCBvdmVyIHRoZSBkb3VibGVkIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmZml4LmFwcGVuZChjaCk7IC8vIGFwcGVuZCB0d286IG9uZSBoZXJlLCBvbmUgYmVsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlzQ3VycmVuY3kgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIGFwcGVuZChjaCkKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQSBxdW90ZSBvdXRzaWRlIHF1b3RlcyBpbmRpY2F0ZXMgZWl0aGVyIHRoZSBvcGVuaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBxdW90ZSBvciB0d28gcXVvdGVzLCB3aGljaCBpcyBhIHF1b3RlIGxpdGVyYWwuICBUaGF0IGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSB0aGUgZmlyc3QgcXVvdGUgaW4gJ2RvJyBvciBvJydjbG9jay4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocG9zKzEpIDwgcGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uY2hhckF0KHBvcysxKSA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmZml4LmFwcGVuZChjaCk7IC8vIGFwcGVuZCB0d286IG9uZSBoZXJlLCBvbmUgYmVsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VicGFydCArPSAyOyAvLyBvcGVuIHF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggdG8gYXBwZW5kKGNoKQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IHNlcGFyYXRvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG9uJ3QgYWxsb3cgc2VwYXJhdG9ycyBpbiB0aGUgcHJlZml4LCBhbmQgZG9uJ3QgYWxsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlcGFyYXRvcnMgaW4gdGhlIHNlY29uZCBwYXR0ZXJuIChwYXJ0ID09IDEpLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnBhcnQgPT0gMSB8fCBwYXJ0ID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIlVucXVvdGVkIHNwZWNpYWwgY2hhcmFjdGVyICciICsgY2ggKyAnXCcnLCBwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHN1YjJMaW1pdCA9IHBvcysrOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgUEFSVExPT1A7IC8vIEdvIHRvIG5leHQgcGFydAorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IHBlcmNlbnQgfHwgY2ggPT0gcGVyTWlsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmV4dCBoYW5kbGUgY2hhcmFjdGVycyB3aGljaCBhcmUgYXBwZW5kZWQgZGlyZWN0bHkuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobXVsdGlwbGllciAhPSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybkVycm9yKCJUb28gbWFueSBwZXJjZW50L3Blcm1pbGxlIGNoYXJhY3RlcnMiLCBwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpZXIgPSAoY2ggPT0gcGVyY2VudCkgPyAxMDAgOiAxMDAwOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29udmVydCB0byBub24tbG9jYWxpemVkIHBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgICAgIGNoID0gKGNoID09IHBlcmNlbnQpID8gUEFUVEVSTl9QRVJDRU5UIDogUEFUVEVSTl9QRVJfTUlMTEU7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggdG8gYXBwZW5kKGNoKQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09IG1pbnVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRvIG5vbi1sb2NhbGl6ZWQgcGF0dGVybgorICAgICAgICAgICAgICAgICAgICAgICAgY2ggPSBQQVRURVJOX01JTlVTOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIGFwcGVuZChjaCkKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSBwYWRFc2NhcGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYWRQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FcnJvcigiTXVsdGlwbGUgcGFkIHNwZWNpZmllcnMiLCBwYXR0ZXJuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocG9zKzEpID09IHBhdHRlcm4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIkludmFsaWQgcGFkIHNwZWNpZmllciIsIHBhdHRlcm4pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcGFkUG9zID0gcG9zKys7IC8vIEFkdmFuY2UgcGFzdCBwYWQgY2hhcgorICAgICAgICAgICAgICAgICAgICAgICAgcGFkQ2hhciA9IHBhdHRlcm4uY2hhckF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhZmZpeC5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIDM6IC8vIFByZWZpeCBzdWJwYXJ0LCBpbiBxdW90ZQorICAgICAgICAgICAgICAgIGNhc2UgNDogLy8gU3VmZml4IHN1YnBhcnQsIGluIHF1b3RlCisgICAgICAgICAgICAgICAgICAgIC8vIEEgcXVvdGUgd2l0aGluIHF1b3RlcyBpbmRpY2F0ZXMgZWl0aGVyIHRoZSBjbG9zaW5nCisgICAgICAgICAgICAgICAgICAgIC8vIHF1b3RlIG9yIHR3byBxdW90ZXMsIHdoaWNoIGlzIGEgcXVvdGUgbGl0ZXJhbC4gIFRoYXQgaXMsCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgdGhlIHNlY29uZCBxdW90ZSBpbiAnZG8nIG9yICdkb24nJ3QnLgorICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gUVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocG9zKzEpIDwgcGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uY2hhckF0KHBvcysxKSA9PSBRVU9URSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcG9zOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZmZpeC5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJwYXJ0IC09IDI7IC8vIGNsb3NlIHF1b3RlCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggdG8gYXBwZW5kKGNoKQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIE5PVEU6IEluIElDVSAyLjIgdGhlcmUgd2FzIGNvZGUgaGVyZSB0byBwYXJzZSBxdW90ZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gcGVyY2VudCBhbmQgcGVybWlsbGUgY2hhcmFjdGVycyBfd2l0aGluIHF1b3Rlc18gYW5kIGdpdmUKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlbSBzcGVjaWFsIG1lYW5pbmcuICBUaGlzIGlzIGluY29ycmVjdCwgc2luY2UgcXVvdGVkCisgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgYXJlIGxpdGVyYWxzIHdpdGhvdXQgc3BlY2lhbCBtZWFuaW5nLgorICAgICAgICAgICAgICAgICAgICBhZmZpeC5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHN1YnBhcnQgPT0gMyB8fCBzdWJwYXJ0ID09IDQpIHsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIlVudGVybWluYXRlZCBxdW90ZSIsIHBhdHRlcm4pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc3ViMExpbWl0ID09IDApIHsKKyAgICAgICAgICAgICAgICBzdWIwTGltaXQgPSBwYXR0ZXJuLmxlbmd0aCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc3ViMkxpbWl0ID09IDApIHsKKyAgICAgICAgICAgICAgICBzdWIyTGltaXQgPSBwYXR0ZXJuLmxlbmd0aCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBIYW5kbGUgcGF0dGVybnMgd2l0aCBubyAnMCcgcGF0dGVybiBjaGFyYWN0ZXIuICBUaGVzZSBwYXR0ZXJucworICAgICAgICAgICAgICogYXJlIGxlZ2FsLCBidXQgbXVzdCBiZSByZWNvZGlmaWVkIHRvIG1ha2Ugc2Vuc2UuICAiIyMuIyMjIiAtPgorICAgICAgICAgICAgICogIiMwLiMjIyIuICAiLiMjIyIgLT4gIi4wIyMiLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFdlIGFsbG93IHBhdHRlcm5zIG9mIHRoZSBmb3JtICIjIyMjIiB0byBwcm9kdWNlIGEgemVyb0RpZ2l0Q291bnQKKyAgICAgICAgICAgICAqIG9mIHplcm8gKGdvdCB0aGF0Pyk7IGFsdGhvdWdoIHRoaXMgc2VlbXMgbGlrZSBpdCBtaWdodCBtYWtlIGl0CisgICAgICAgICAgICAgKiBwb3NzaWJsZSBmb3IgZm9ybWF0KCkgdG8gcHJvZHVjZSBlbXB0eSBzdHJpbmdzLCBmb3JtYXQoKSBjaGVja3MKKyAgICAgICAgICAgICAqIGZvciB0aGlzIGNvbmRpdGlvbiBhbmQgb3V0cHV0cyBhIHplcm8gZGlnaXQgaW4gdGhpcyBzaXR1YXRpb24uCisgICAgICAgICAgICAgKiBIYXZpbmcgYSB6ZXJvRGlnaXRDb3VudCBvZiB6ZXJvIHlpZWxkcyBhIG1pbmltdW0gaW50ZWdlciBkaWdpdHMKKyAgICAgICAgICAgICAqIG9mIHplcm8sIHdoaWNoIGFsbG93cyBwcm9wZXIgcm91bmQtdHJpcCBwYXR0ZXJucy4gIFdlIGRvbid0IHdhbnQKKyAgICAgICAgICAgICAqICIjIiB0byBiZWNvbWUgIiMwIiB3aGVuIHRvUGF0dGVybigpIGlzIGNhbGxlZCAoZXZlbiB0aG91Z2ggdGhhdCdzCisgICAgICAgICAgICAgKiB3aGF0IGl0IHJlYWxseSBpcywgc2VtYW50aWNhbGx5KS4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKHplcm9EaWdpdENvdW50ID09IDAgJiYgc2lnRGlnaXRDb3VudCA9PSAwICYmCisgICAgICAgICAgICAgICAgZGlnaXRMZWZ0Q291bnQgPiAwICYmIGRlY2ltYWxQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgIC8vIEhhbmRsZSAiIyMjLiMjIyIgYW5kICIjIyMuIiBhbmQgIi4jIyMiCisgICAgICAgICAgICAgICAgaW50IG4gPSBkZWNpbWFsUG9zOworICAgICAgICAgICAgICAgIGlmIChuID09IDApICsrbjsgLy8gSGFuZGxlICIuIyMjIgorICAgICAgICAgICAgICAgIGRpZ2l0UmlnaHRDb3VudCA9IGRpZ2l0TGVmdENvdW50IC0gbjsKKyAgICAgICAgICAgICAgICBkaWdpdExlZnRDb3VudCA9IG4gLSAxOworICAgICAgICAgICAgICAgIHplcm9EaWdpdENvdW50ID0gMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gRG8gc3ludGF4IGNoZWNraW5nIG9uIHRoZSBkaWdpdHMsIGRlY2ltYWwgcG9pbnRzLCBhbmQgcXVvdGVzLgorICAgICAgICAgICAgaWYgKChkZWNpbWFsUG9zIDwgMCAmJiBkaWdpdFJpZ2h0Q291bnQgPiAwICYmIHNpZ0RpZ2l0Q291bnQgPT0gMCkgfHwKKyAgICAgICAgICAgICAgICAoZGVjaW1hbFBvcyA+PSAwICYmCisgICAgICAgICAgICAgICAgIChzaWdEaWdpdENvdW50ID4gMCB8fAorICAgICAgICAgICAgICAgICAgZGVjaW1hbFBvcyA8IGRpZ2l0TGVmdENvdW50IHx8CisgICAgICAgICAgICAgICAgICBkZWNpbWFsUG9zID4gKGRpZ2l0TGVmdENvdW50ICsgemVyb0RpZ2l0Q291bnQpKSkgfHwKKyAgICAgICAgICAgICAgICBncm91cGluZ0NvdW50ID09IDAgfHwgZ3JvdXBpbmdDb3VudDIgPT0gMCB8fAorICAgICAgICAgICAgICAgIChzaWdEaWdpdENvdW50ID4gMCAmJiB6ZXJvRGlnaXRDb3VudCA+IDApIHx8CisgICAgICAgICAgICAgICAgc3VicGFydCA+IDIpIHsgLy8gc3VicGFydCA+IDIgPT0gdW5tYXRjaGVkIHF1b3RlCisgICAgICAgICAgICAgICAgcGF0dGVybkVycm9yKCJNYWxmb3JtZWQgcGF0dGVybiIsIHBhdHRlcm4pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgcGFkIGlzIGF0IGxlZ2FsIHBvc2l0aW9uIGJlZm9yZSBvciBhZnRlciBhZmZpeC4KKyAgICAgICAgICAgIGlmIChwYWRQb3MgPj0gMCkgeworICAgICAgICAgICAgICAgIGlmIChwYWRQb3MgPT0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFkUG9zID0gUEFEX0JFRk9SRV9QUkVGSVg7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYWRQb3MrMiA9PSBzdWIwU3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFkUG9zID0gUEFEX0FGVEVSX1BSRUZJWDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhZFBvcyA9PSBzdWIwTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFkUG9zID0gUEFEX0JFRk9SRV9TVUZGSVg7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYWRQb3MrMiA9PSBzdWIyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFkUG9zID0gUEFEX0FGVEVSX1NVRkZJWDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuRXJyb3IoIklsbGVnYWwgcGFkIHBvc2l0aW9uIiwgcGF0dGVybik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAocGFydCA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gU2V0IG5lZ2F0aXZlIGFmZml4ZXMgdGVtcG9yYXJpbHkgdG8gbWF0Y2ggdGhlIHBvc2l0aXZlCisgICAgICAgICAgICAgICAgLy8gYWZmaXhlcy4gIEZpeCB0aGlzIHVwIGxhdGVyIGFmdGVyIHByb2Nlc3NpbmcgYm90aCBwYXJ0cy4KKyAgICAgICAgICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgICAgICAgICBUbyBtZWV0IHRoZSBuZWVkIG9mIGV4cGFuZEFmZml4KFN0cmluZywgU3Rpcm5nQnVmZmVyKQorICAgICAgICAgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgcG9zUHJlZml4UGF0dGVybiA9IG5lZ1ByZWZpeFBhdHRlcm4gPSBwcmVmaXgudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBwb3NTdWZmaXhQYXR0ZXJuID0gbmVnU3VmZml4UGF0dGVybiA9IHN1ZmZpeC50b1N0cmluZygpOworCisgICAgICAgICAgICAgICAgdXNlRXhwb25lbnRpYWxOb3RhdGlvbiA9IChleHBEaWdpdHMgPj0gMCk7CisgICAgICAgICAgICAgICAgaWYgKHVzZUV4cG9uZW50aWFsTm90YXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgbWluRXhwb25lbnREaWdpdHMgPSBleHBEaWdpdHM7CisgICAgICAgICAgICAgICAgICAgIGV4cG9uZW50U2lnbkFsd2F5c1Nob3duID0gZXhwU2lnbkFsd2F5czsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaXNDdXJyZW5jeUZvcm1hdCA9IGlzQ3VycmVuY3k7CisgICAgICAgICAgICAgICAgaW50IGRpZ2l0VG90YWxDb3VudCA9IGRpZ2l0TGVmdENvdW50ICsgemVyb0RpZ2l0Q291bnQgKyBkaWdpdFJpZ2h0Q291bnQ7CisgICAgICAgICAgICAgICAgLy8gVGhlIGVmZmVjdGl2ZURlY2ltYWxQb3MgaXMgdGhlIHBvc2l0aW9uIHRoZSBkZWNpbWFsIGlzIGF0IG9yCisgICAgICAgICAgICAgICAgLy8gd291bGQgYmUgYXQgaWYgdGhlcmUgaXMgbm8gZGVjaW1hbC4gIE5vdGUgdGhhdCBpZgorICAgICAgICAgICAgICAgIC8vIGRlY2ltYWxQb3M8MCwgdGhlbiBkaWdpdFRvdGFsQ291bnQgPT0gZGlnaXRMZWZ0Q291bnQgKworICAgICAgICAgICAgICAgIC8vIHplcm9EaWdpdENvdW50LgorICAgICAgICAgICAgICAgIGludCBlZmZlY3RpdmVEZWNpbWFsUG9zID0gZGVjaW1hbFBvcyA+PSAwID8gZGVjaW1hbFBvcyA6IGRpZ2l0VG90YWxDb3VudDsKKyAgICAgICAgICAgICAgICBib29sZWFuIHVzZVNpZ0RpZyA9IChzaWdEaWdpdENvdW50ID4gMCk7CisgICAgICAgICAgICAgICAgc2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkKHVzZVNpZ0RpZyk7CisgICAgICAgICAgICAgICAgaWYgKHVzZVNpZ0RpZykgeworICAgICAgICAgICAgICAgICAgICBzZXRNaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMoc2lnRGlnaXRDb3VudCk7CisgICAgICAgICAgICAgICAgICAgIHNldE1heGltdW1TaWduaWZpY2FudERpZ2l0cyhzaWdEaWdpdENvdW50ICsgZGlnaXRSaWdodENvdW50KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbnQgbWluSW50ID0gZWZmZWN0aXZlRGVjaW1hbFBvcyAtIGRpZ2l0TGVmdENvdW50OworICAgICAgICAgICAgICAgICAgICBzZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhtaW5JbnQpOworICAgICAgICAgICAgICAgICAgICAvKlVwcGVyIGxpbWl0IG9uIGludGVnZXIgYW5kIGZyYWN0aW9uIGRpZ2l0cyBmb3IgYSBKYXZhIGRvdWJsZQorICAgICAgICAgICAgICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgc2V0TWF4aW11bUludGVnZXJEaWdpdHModXNlRXhwb25lbnRpYWxOb3RhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgPyBkaWdpdExlZnRDb3VudCArIG1pbkludCA6IERPVUJMRV9JTlRFR0VSX0RJR0lUUyk7CisgICAgICAgICAgICAgICAgICAgIHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhkZWNpbWFsUG9zID49IDAKKyAgICAgICAgICAgICAgICAgICAgICAgID8gKGRpZ2l0VG90YWxDb3VudCAtIGRlY2ltYWxQb3MpIDogMCk7CisgICAgICAgICAgICAgICAgICAgIHNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cyhkZWNpbWFsUG9zID49IDAKKyAgICAgICAgICAgICAgICAgICAgICAgID8gKGRpZ2l0TGVmdENvdW50ICsgemVyb0RpZ2l0Q291bnQgLSBkZWNpbWFsUG9zKSA6IDApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXRHcm91cGluZ1VzZWQoZ3JvdXBpbmdDb3VudCA+IDApOworICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBpbmdTaXplID0gKGdyb3VwaW5nQ291bnQgPiAwKSA/IGdyb3VwaW5nQ291bnQgOiAwOworICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBpbmdTaXplMiA9IChncm91cGluZ0NvdW50MiA+IDAgJiYgZ3JvdXBpbmdDb3VudDIgIT0gZ3JvdXBpbmdDb3VudCkKKyAgICAgICAgICAgICAgICAgICAgPyBncm91cGluZ0NvdW50MiA6IDA7CisgICAgICAgICAgICAgICAgdGhpcy5tdWx0aXBsaWVyID0gbXVsdGlwbGllcjsKKyAgICAgICAgICAgICAgICBzZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oZGVjaW1hbFBvcyA9PSAwCisgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWNpbWFsUG9zID09IGRpZ2l0VG90YWxDb3VudCk7CisgICAgICAgICAgICAgICAgaWYgKHBhZFBvcyA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHBhZFBvc2l0aW9uID0gcGFkUG9zOworICAgICAgICAgICAgICAgICAgICBmb3JtYXRXaWR0aCA9IHN1YjBMaW1pdCAtIHN1YjBTdGFydDsgLy8gdG8gYmUgZml4ZWQgdXAgYmVsb3cKKyAgICAgICAgICAgICAgICAgICAgcGFkID0gcGFkQ2hhcjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBmb3JtYXRXaWR0aCA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpbmNyZW1lbnRWYWwgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBCaWdEZWNpbWFsIHNjYWxlIGNhbm5vdCBiZSBuZWdhdGl2ZSAoZXZlbiB0aG91Z2gKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBtYWtlcyBwZXJmZWN0IHNlbnNlKSwgc28gd2UgbmVlZCB0byBoYW5kbGUgdGhpcy4KKyAgICAgICAgICAgICAgICAgICAgaW50IHNjYWxlID0gaW5jcmVtZW50UG9zIC0gZWZmZWN0aXZlRGVjaW1hbFBvczsKKyAgICAgICAgICAgICAgICAgICAgcm91bmRpbmdJbmNyZW1lbnRJQ1UgPQorICAgICAgICAgICAgICAgICAgICAJQmlnRGVjaW1hbC52YWx1ZU9mKGluY3JlbWVudFZhbCwgc2NhbGUgPiAwID8gc2NhbGUgOiAwKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNjYWxlIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcm91bmRpbmdJbmNyZW1lbnRJQ1UgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kaW5nSW5jcmVtZW50SUNVLm1vdmVQb2ludFJpZ2h0KC1zY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc2V0Um91bmRpbmdEb3VibGUoKTsKKyAgICAgICAgICAgICAgICAgICAgcm91bmRpbmdNb2RlID0gQmlnRGVjaW1hbC5ST1VORF9IQUxGX0VWRU47CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0Um91bmRpbmdJbmNyZW1lbnQoKEJpZ0RlY2ltYWwpbnVsbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgICAgICAgICBUbyBtZWV0IHRoZSBuZWVkIG9mIGV4cGFuZEFmZml4KFN0cmluZywgU3Rpcm5nQnVmZmVyKQorICAgICAgICAgICAgICAgICAgW1JpY2hhcmQvR0NMXQorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgbmVnUHJlZml4UGF0dGVybiA9IHByZWZpeC50b1N0cmluZygpOworICAgICAgICAgICAgICAgIG5lZ1N1ZmZpeFBhdHRlcm4gPSBzdWZmaXgudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBnb3ROZWdhdGl2ZSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKkJ1ZyA0MTQwMDA5CisgICAgICAgICAgUHJvY2VzcyB0aGUgZW1wdHkgcGF0dGVybgorICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgaWYgKHBhdHRlcm4ubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcG9zUHJlZml4UGF0dGVybiA9IHBvc1N1ZmZpeFBhdHRlcm4gPSAiIjsKKyAgICAgICAgICAgIHNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKDApOworICAgICAgICAgICAgc2V0TWF4aW11bUludGVnZXJEaWdpdHMoRE9VQkxFX0lOVEVHRVJfRElHSVRTKTsKKyAgICAgICAgICAgIHNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygwKTsKKyAgICAgICAgICAgIHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhET1VCTEVfRlJBQ1RJT05fRElHSVRTKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gSWYgdGhlcmUgd2FzIG5vIG5lZ2F0aXZlIHBhdHRlcm4sIG9yIGlmIHRoZSBuZWdhdGl2ZSBwYXR0ZXJuIGlzCisgICAgICAgIC8vIGlkZW50aWNhbCB0byB0aGUgcG9zaXRpdmUgcGF0dGVybiwgdGhlbiBwcmVwZW5kIHRoZSBtaW51cyBzaWduIHRvIHRoZQorICAgICAgICAvLyBwb3NpdGl2ZSBwYXR0ZXJuIHRvIGZvcm0gdGhlIG5lZ2F0aXZlIHBhdHRlcm4uCisgICAgICAgIC8qQnVnIDQyMTIwNzIKKyAgICAgICAgICBUbyBtZWV0IHRoZSBuZWVkIG9mIGV4cGFuZEFmZml4KFN0cmluZywgU3Rpcm5nQnVmZmVyKQorICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgaWYgKCFnb3ROZWdhdGl2ZSB8fAorICAgICAgICAgICAgKG5lZ1ByZWZpeFBhdHRlcm4uZXF1YWxzKHBvc1ByZWZpeFBhdHRlcm4pCisgICAgICAgICAgICAgJiYgbmVnU3VmZml4UGF0dGVybi5lcXVhbHMocG9zU3VmZml4UGF0dGVybikpKSB7CisgICAgICAgICAgICBuZWdTdWZmaXhQYXR0ZXJuID0gcG9zU3VmZml4UGF0dGVybjsKKyAgICAgICAgICAgIG5lZ1ByZWZpeFBhdHRlcm4gPSBQQVRURVJOX01JTlVTICsgcG9zUHJlZml4UGF0dGVybjsKKyAgICAgICAgfQorICAgICAgICAvKkJ1ZyA0MjEyMDcyCisgICAgICAgICAgVXBkYXRlIHRoZSBhZmZpeCBzdHJpbmdzIGFjY3JvZGluZyB0byBzeW1ib2xzIGluIG9yZGVyIHRvIGtlZXAKKyAgICAgICAgICB0aGUgYWZmaXggc3RyaW5ncyB1cCB0byBkYXRlLgorICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgZXhwYW5kQWZmaXhlcygpOworCisgICAgICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgdGhlIGFjdHVhbCBwcmVmaXggYW5kIHN1ZmZpeCwgZml4IHVwIGZvcm1hdFdpZHRoCisgICAgICAgIGlmIChmb3JtYXRXaWR0aCA+IDApIHsKKyAgICAgICAgICAgIGZvcm1hdFdpZHRoICs9IHBvc2l0aXZlUHJlZml4Lmxlbmd0aCgpICsgcG9zaXRpdmVTdWZmaXgubGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNldExvY2FsZShudWxsLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDZW50cmFsaXplcyB0aGUgc2V0dGluZyBvZiB0aGUgcm91bmRpbmdEb3VibGUgYW5kIHJvdW5kaW5nRG91YmxlUmVjaXByb2NhbC4KKyAgICAgKi8KKwlwcml2YXRlIHZvaWQgc2V0Um91bmRpbmdEb3VibGUoKSB7CisJCWlmIChyb3VuZGluZ0luY3JlbWVudElDVSA9PSBudWxsKSB7CisgICAgICAgICAgICByb3VuZGluZ0RvdWJsZSA9IDAuMGQ7CisgICAgICAgICAgICByb3VuZGluZ0RvdWJsZVJlY2lwcm9jYWwgPSAwLjBkOwkJCQorCQl9IGVsc2UgeworCQkJcm91bmRpbmdEb3VibGUgPSByb3VuZGluZ0luY3JlbWVudElDVS5kb3VibGVWYWx1ZSgpOworCQkJc2V0Um91bmRpbmdEb3VibGVSZWNpcHJvY2FsKEJpZ0RlY2ltYWwuT05FLmRpdmlkZShyb3VuZGluZ0luY3JlbWVudElDVSxCaWdEZWNpbWFsLlJPVU5EX0hBTEZfRVZFTikuZG91YmxlVmFsdWUoKSk7CisJCX0KKwl9CisKKyAgICBwcml2YXRlIHZvaWQgcGF0dGVybkVycm9yKFN0cmluZyBtc2csIFN0cmluZyBwYXR0ZXJuKSB7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24obXNnICsgIiBpbiBwYXR0ZXJuIFwiIiArIHBhdHRlcm4gKyAnIicpOworICAgIH0KKworICAgIC8qUmV3cml0ZSB0aGUgZm9sbG93aW5nIDQgInNldCIgbWV0aG9kcworICAgICAgVXBwZXIgbGltaXQgb24gaW50ZWdlciBhbmQgZnJhY3Rpb24gZGlnaXRzIGZvciBhIEphdmEgZG91YmxlIAorICAgICAgW1JpY2hhcmQvR0NMXQorICAgICovCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiBUaGlzIG92ZXJyaWRlIGxpbWl0cyB0aGUgaW50ZWdlciBkaWdpdCBjb3VudCB0byAzMDkuCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjc2V0TWF4aW11bUludGVnZXJEaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgc3VwZXIuc2V0TWF4aW11bUludGVnZXJEaWdpdHMoTWF0aC5taW4obmV3VmFsdWUsIERPVUJMRV9JTlRFR0VSX0RJR0lUUykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gVGhpcyBvdmVycmlkZSBsaW1pdHMgdGhlIGludGVnZXIgZGlnaXQgY291bnQgdG8gMzA5LgorICAgICAqIEBzZWUgTnVtYmVyRm9ybWF0I3NldE1pbmltdW1JbnRlZ2VyRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWluaW11bUludGVnZXJEaWdpdHMoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIHN1cGVyLnNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKE1hdGgubWluKG5ld1ZhbHVlLCBET1VCTEVfSU5URUdFUl9ESUdJVFMpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtaW5pbXVtIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgdGhhdCB3aWxsIGJlCisgICAgICogZGlzcGxheWVkLiBUaGlzIHZhbHVlIGhhcyBubyBlZmZlY3QgdW5sZXNzIGFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpCisgICAgICogcmV0dXJucyB0cnVlLgorICAgICAqIEByZXR1cm4gdGhlIGZld2VzdCBzaWduaWZpY2FudCBkaWdpdHMgdGhhdCB3aWxsIGJlIHNob3duCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMoKSB7CisgICAgICAgIHJldHVybiBtaW5TaWduaWZpY2FudERpZ2l0czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgdGhhdCB3aWxsIGJlCisgICAgICogZGlzcGxheWVkLiBUaGlzIHZhbHVlIGhhcyBubyBlZmZlY3QgdW5sZXNzIGFyZVNpZ25pZmljYW50RGlnaXRzVXNlZCgpCisgICAgICogcmV0dXJucyB0cnVlLgorICAgICAqIEByZXR1cm4gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgZGlnaXRzIHRoYXQgd2lsbCBiZSBzaG93bgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBpcyBhIGRyYWZ0IEFQSSBhbmQgbWlnaHQgY2hhbmdlIGluIGEgZnV0dXJlIHJlbGVhc2Ugb2YgSUNVLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF4aW11bVNpZ25pZmljYW50RGlnaXRzKCkgeworICAgICAgICByZXR1cm4gbWF4U2lnbmlmaWNhbnREaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWluaW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIHRoYXQgd2lsbCBiZQorICAgICAqIGRpc3BsYXllZC4gIElmIDxjb2RlPm1pbjwvY29kZT4gaXMgbGVzcyB0aGFuIG9uZSB0aGVuIGl0IGlzIHNldAorICAgICAqIHRvIG9uZS4gIElmIHRoZSBtYXhpbXVtIHNpZ25pZmljYW50IGRpZ2l0cyBjb3VudCBpcyBsZXNzIHRoYW4KKyAgICAgKiA8Y29kZT5taW48L2NvZGU+LCB0aGVuIGl0IGlzIHNldCB0byA8Y29kZT5taW48L2NvZGU+LiBUaGlzCisgICAgICogdmFsdWUgaGFzIG5vIGVmZmVjdCB1bmxlc3MgYXJlU2lnbmlmaWNhbnREaWdpdHNVc2VkKCkgcmV0dXJucyB0cnVlLgorICAgICAqIEBwYXJhbSBtaW4gdGhlIGZld2VzdCBzaWduaWZpY2FudCBkaWdpdHMgdG8gYmUgc2hvd24gCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWluaW11bVNpZ25pZmljYW50RGlnaXRzKGludCBtaW4pIHsKKyAgICAgICAgaWYgKG1pbiA8IDEpIHsKKyAgICAgICAgICAgIG1pbiA9IDE7ICAgCisgICAgICAgIH0KKyAgICAgICAgLy8gcGluIG1heCBzaWcgZGlnIHRvID49IG1pbgorICAgICAgICBpbnQgbWF4ID0gTWF0aC5tYXgobWF4U2lnbmlmaWNhbnREaWdpdHMsIG1pbik7CisgICAgICAgIG1pblNpZ25pZmljYW50RGlnaXRzID0gbWluOworICAgICAgICBtYXhTaWduaWZpY2FudERpZ2l0cyA9IG1heDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgdGhhdCB3aWxsIGJlCisgICAgICogZGlzcGxheWVkLiAgSWYgPGNvZGU+bWF4PC9jb2RlPiBpcyBsZXNzIHRoYW4gb25lIHRoZW4gaXQgaXMgc2V0CisgICAgICogdG8gb25lLiAgSWYgdGhlIG1pbmltdW0gc2lnbmlmaWNhbnQgZGlnaXRzIGNvdW50IGlzIGdyZWF0ZXIKKyAgICAgKiB0aGFuIDxjb2RlPm1heDwvY29kZT4sIHRoZW4gaXQgaXMgc2V0IHRvIDxjb2RlPm1heDwvY29kZT4uIFRoaXMKKyAgICAgKiB2YWx1ZSBoYXMgbm8gZWZmZWN0IHVubGVzcyBhcmVTaWduaWZpY2FudERpZ2l0c1VzZWQoKSByZXR1cm5zIHRydWUuCisgICAgICogQHBhcmFtIG1heCB0aGUgbW9zdCBzaWduaWZpY2FudCBkaWdpdHMgdG8gYmUgc2hvd24gCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWF4aW11bVNpZ25pZmljYW50RGlnaXRzKGludCBtYXgpIHsKKyAgICAgICAgaWYgKG1heCA8IDEpIHsKKyAgICAgICAgICAgIG1heCA9IDE7CisgICAgICAgIH0KKyAgICAgICAgLy8gcGluIG1pbiBzaWcgZGlnIHRvIDEuLm1heAorICAgICAgICBpbnQgbWluID0gTWF0aC5taW4obWluU2lnbmlmaWNhbnREaWdpdHMsIG1heCk7CisgICAgICAgIG1pblNpZ25pZmljYW50RGlnaXRzID0gbWluOworICAgICAgICBtYXhTaWduaWZpY2FudERpZ2l0cyA9IG1heDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgc2lnbmlmaWNhbnQgZGlnaXRzIGFyZSBpbiB1c2Ugb3IgZmFsc2UgaWYKKyAgICAgKiBpbnRlZ2VyIGFuZCBmcmFjdGlvbiBkaWdpdCBjb3VudHMgYXJlIGluIHVzZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgc2lnbmlmaWNhbnQgZGlnaXRzIGFyZSBpbiB1c2UKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgaXMgYSBkcmFmdCBBUEkgYW5kIG1pZ2h0IGNoYW5nZSBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIElDVS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBhcmVTaWduaWZpY2FudERpZ2l0c1VzZWQoKSB7CisgICAgICAgIHJldHVybiB1c2VTaWduaWZpY2FudERpZ2l0czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHdoZXRoZXIgc2lnbmlmaWNhbnQgZGlnaXRzIGFyZSBpbiB1c2UsIG9yIGludGVnZXIgYW5kCisgICAgICogZnJhY3Rpb24gZGlnaXQgY291bnRzIGFyZSBpbiB1c2UuCisgICAgICogQHBhcmFtIHVzZVNpZ25pZmljYW50RGlnaXRzIHRydWUgdG8gdXNlIHNpZ25pZmljYW50IGRpZ2l0cywgb3IKKyAgICAgKiBmYWxzZSB0byB1c2UgaW50ZWdlciBhbmQgZnJhY3Rpb24gZGlnaXQgY291bnRzCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIGlzIGEgZHJhZnQgQVBJIGFuZCBtaWdodCBjaGFuZ2UgaW4gYSBmdXR1cmUgcmVsZWFzZSBvZiBJQ1UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2lnbmlmaWNhbnREaWdpdHNVc2VkKGJvb2xlYW4gdXNlU2lnbmlmaWNhbnREaWdpdHMpIHsKKyAgICAgICAgdGhpcy51c2VTaWduaWZpY2FudERpZ2l0cyA9IHVzZVNpZ25pZmljYW50RGlnaXRzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIDx0dD5DdXJyZW5jeTwvdHQ+IG9iamVjdCB1c2VkIHRvIGRpc3BsYXkgY3VycmVuY3kKKyAgICAgKiBhbW91bnRzLiAgVGhpcyB0YWtlcyBlZmZlY3QgaW1tZWRpYXRlbHksIGlmIHRoaXMgZm9ybWF0IGlzIGEKKyAgICAgKiBjdXJyZW5jeSBmb3JtYXQuICBJZiB0aGlzIGZvcm1hdCBpcyBub3QgYSBjdXJyZW5jeSBmb3JtYXQsIHRoZW4KKyAgICAgKiB0aGUgY3VycmVuY3kgb2JqZWN0IGlzIHVzZWQgaWYgYW5kIHdoZW4gdGhpcyBvYmplY3QgYmVjb21lcyBhCisgICAgICogY3VycmVuY3kgZm9ybWF0IHRocm91Z2ggdGhlIGFwcGxpY2F0aW9uIG9mIGEgbmV3IHBhdHRlcm4uCisgICAgICogQHBhcmFtIHRoZUN1cnJlbmN5IG5ldyBjdXJyZW5jeSBvYmplY3QgdG8gdXNlLiAgTXVzdCBub3QgYmUKKyAgICAgKiBudWxsLgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEN1cnJlbmN5KEN1cnJlbmN5IHRoZUN1cnJlbmN5KSB7CisgICAgICAgIC8vIElmIHdlIGFyZSBhIGN1cnJlbmN5IGZvcm1hdCwgdGhlbiBtb2RpZnkgb3VyIGFmZml4ZXMgdG8KKyAgICAgICAgLy8gZW5jb2RlIHRoZSBjdXJyZW5jeSBzeW1ib2wgZm9yIHRoZSBnaXZlbiBjdXJyZW5jeSBpbiBvdXIKKyAgICAgICAgLy8gbG9jYWxlLCBhbmQgYWRqdXN0IHRoZSBkZWNpbWFsIGRpZ2l0cyBhbmQgcm91bmRpbmcgZm9yIHRoZQorICAgICAgICAvLyBnaXZlbiBjdXJyZW5jeS4KKworICAgICAgICBzdXBlci5zZXRDdXJyZW5jeSh0aGVDdXJyZW5jeSk7CisgICAgICAgIGlmICh0aGVDdXJyZW5jeSAhPSBudWxsKSB7CisgICAgICAgICAgICBib29sZWFuW10gaXNDaG9pY2VGb3JtYXQgPSBuZXcgYm9vbGVhblsxXTsKKyAgICAgICAgICAgIFN0cmluZyBzID0gdGhlQ3VycmVuY3kuZ2V0TmFtZShzeW1ib2xzLmdldFVMb2NhbGUoKSwKKyAgICAgICAgICAgICAgICAgICAgQ3VycmVuY3kuU1lNQk9MX05BTUUsCisgICAgICAgICAgICAgICAgICAgIGlzQ2hvaWNlRm9ybWF0KTsKKyAgICAgICAgICAgICAgICBzeW1ib2xzLnNldEN1cnJlbmN5U3ltYm9sKHMpOworICAgICAgICAgICAgICAgIHN5bWJvbHMuc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKHRoZUN1cnJlbmN5LmdldEN1cnJlbmN5Q29kZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpc0N1cnJlbmN5Rm9ybWF0KSB7CisgICAgICAgICAgICBpZiAodGhlQ3VycmVuY3kgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHNldFJvdW5kaW5nSW5jcmVtZW50KHRoZUN1cnJlbmN5LmdldFJvdW5kaW5nSW5jcmVtZW50KCkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCBkID0gdGhlQ3VycmVuY3kuZ2V0RGVmYXVsdEZyYWN0aW9uRGlnaXRzKCk7CisgICAgICAgICAgICAgICAgc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKGQpOworICAgICAgICAgICAgICAgIHNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV4cGFuZEFmZml4ZXMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbmN5IGluIGVmZmVjdCBmb3IgdGhpcyBmb3JtYXR0ZXIuICBTdWJjbGFzc2VzCisgICAgICogc2hvdWxkIG92ZXJyaWRlIHRoaXMgbWV0aG9kIGFzIG5lZWRlZC4gIFVubGlrZSBnZXRDdXJyZW5jeSgpLAorICAgICAqIHRoaXMgbWV0aG9kIHNob3VsZCBuZXZlciByZXR1cm4gbnVsbC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ3VycmVuY3kgZ2V0RWZmZWN0aXZlQ3VycmVuY3koKSB7CisgICAgICAgIEN1cnJlbmN5IGMgPSBnZXRDdXJyZW5jeSgpOworICAgICAgICBpZiAoYyA9PSBudWxsKSB7CisgICAgICAgICAgICBjID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2Uoc3ltYm9scy5nZXRJbnRlcm5hdGlvbmFsQ3VycmVuY3lTeW1ib2woKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gVGhpcyBvdmVycmlkZSBsaW1pdHMgdGhlIGZyYWN0aW9uIGRpZ2l0IGNvdW50IHRvIDM0MC4KKyAgICAgKiBAc2VlIE51bWJlckZvcm1hdCNzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoaW50IG5ld1ZhbHVlKSB7CisgICAgICAgIHN1cGVyLnNldE1heGltdW1GcmFjdGlvbkRpZ2l0cyhNYXRoLm1pbihuZXdWYWx1ZSwgRE9VQkxFX0ZSQUNUSU9OX0RJR0lUUykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBmcmFjdGlvbiBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuIFRoaXMgb3ZlcnJpZGUgbGltaXRzIHRoZSBmcmFjdGlvbiBkaWdpdCBjb3VudCB0byAzNDAuCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBzdXBlci5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoTWF0aC5taW4obmV3VmFsdWUsIERPVUJMRV9GUkFDVElPTl9ESUdJVFMpKTsKKyAgICB9CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisJcHJpdmF0ZSB2b2lkIHdyaXRlT2JqZWN0KE9iamVjdE91dHB1dFN0cmVhbSBzdHJlYW0pIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiB7CisvLyBEb3VnLCBkbyB3ZSBuZWVkIHRoaXMgYW55bW9yZT8KKy8vICAgICAgICAgICAgaWYgKHJvdW5kaW5nSW5jcmVtZW50SUNVICE9IG51bGwpIHsKKy8vICAgICAgICAgICAgICAgIHJvdW5kaW5nSW5jcmVtZW50ID0gcm91bmRpbmdJbmNyZW1lbnRJQ1UudG9CaWdEZWNpbWFsKCk7CisvLyAgICAgICAgICAgIH0KKwkJCisgICAgICAgICAgICBzdHJlYW0uZGVmYXVsdFdyaXRlT2JqZWN0KCk7CisJfQorLy8jZW5kaWYKKwkJCisgICAgLyoqCisgICAgICogRmlyc3QsIHJlYWQgdGhlIGRlZmF1bHQgc2VyaWFsaXphYmxlIGZpZWxkcyBmcm9tIHRoZSBzdHJlYW0uICBUaGVuCisgICAgICogaWYgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPiBpcyBsZXNzIHRoYW4gMSwgaW5kaWNhdGluZyB0aGF0CisgICAgICogdGhlIHN0cmVhbSB3YXMgd3JpdHRlbiBieSBKREsgMS4xLCBpbml0aWFsaXplIDxjb2RlPnVzZUV4cG9uZW50aWFsTm90YXRpb248L2NvZGU+CisgICAgICogdG8gZmFsc2UsIHNpbmNlIGl0IHdhcyBub3QgcHJlc2VudCBpbiBKREsgMS4xLgorICAgICAqIEZpbmFsbHksIHNldCBzZXJpYWxWZXJzaW9uT25TdHJlYW0gYmFjayB0byB0aGUgbWF4aW11bSBhbGxvd2VkIHZhbHVlIHNvIHRoYXQKKyAgICAgKiBkZWZhdWx0IHNlcmlhbGl6YXRpb24gd2lsbCB3b3JrIHByb3Blcmx5IGlmIHRoaXMgb2JqZWN0IGlzIHN0cmVhbWVkIG91dCBhZ2Fpbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24KKyAgICB7CisgICAgICAgIHN0cmVhbS5kZWZhdWx0UmVhZE9iamVjdCgpOworICAgICAgICAvKkJ1ZyA0MTg1NzYxIHZhbGlkYXRlIGZpZWxkcworICAgICAgICAgIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgLy8gV2Ugb25seSBuZWVkIHRvIGNoZWNrIHRoZSBtYXhpbXVtIGNvdW50cyBiZWNhdXNlIE51bWJlckZvcm1hdAorICAgICAgICAvLyAucmVhZE9iamVjdCBoYXMgYWxyZWFkeSBlbnN1cmVkIHRoYXQgdGhlIG1heGltdW0gaXMgZ3JlYXRlciB0aGFuIHRoZQorICAgICAgICAvLyBtaW5pbXVtIGNvdW50LgorICAgICAgICAvKkNvbW1lbnRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHByZXZpb3VzIHZlcnNpb24sIGFuZCByZXNlcnZlZCBmb3IgZnVydGhlciB1c2UKKyAgICAgICAgaWYgKGdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgPiBET1VCTEVfSU5URUdFUl9ESUdJVFMgfHwKKyAgICAgICAgICAgIGdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpID4gRE9VQkxFX0ZSQUNUSU9OX0RJR0lUUykgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPYmplY3RFeGNlcHRpb24oIkRpZ2l0IGNvdW50IG91dCBvZiByYW5nZSIpOworICAgICAgICB9Ki8KKyAgICAgICAgLyogVHJ1bmNhdGUgdGhlIG1heGltdW1JbnRlZ2VyRGlnaXRzIHRvIERPVUJMRV9JTlRFR0VSX0RJR0lUUyBhbmQgbWF4aW11bUZyYWN0aW9uRGlnaXRzCisgICAgICAgICAqIHRvIERPVUJMRV9GUkFDVElPTl9ESUdJVFMKKyAgICAgICAgICovCisgICAgICAgIGlmIChnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cygpID4gRE9VQkxFX0lOVEVHRVJfRElHSVRTKSB7CisgICAgICAgICAgICAgc2V0TWF4aW11bUludGVnZXJEaWdpdHMoRE9VQkxFX0lOVEVHRVJfRElHSVRTKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKCkgPiBET1VCTEVfRlJBQ1RJT05fRElHSVRTKSB7CisgICAgICAgICAgICBzZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoRE9VQkxFX0ZSQUNUSU9OX0RJR0lUUyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlcmlhbFZlcnNpb25PblN0cmVhbSA8IDIpIHsKKyAgICAgICAgICAgIGV4cG9uZW50U2lnbkFsd2F5c1Nob3duID0gZmFsc2U7CisgICAgICAgICAgICBzZXRJbnRlcm5hbFJvdW5kaW5nSW5jcmVtZW50KG51bGwpOworICAgICAgICAgICAgc2V0Um91bmRpbmdEb3VibGUoKTsKKyAgICAgICAgICAgIHJvdW5kaW5nTW9kZSA9IEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9FVkVOOworICAgICAgICAgICAgZm9ybWF0V2lkdGggPSAwOworICAgICAgICAgICAgcGFkID0gJyAnOworICAgICAgICAgICAgcGFkUG9zaXRpb24gPSBQQURfQkVGT1JFX1BSRUZJWDsKKyAgICAgICAgICAgIGlmIChzZXJpYWxWZXJzaW9uT25TdHJlYW0gPCAxKSB7CisgICAgICAgICAgICAgICAgLy8gRGlkbid0IGhhdmUgZXhwb25lbnRpYWwgZmllbGRzCisgICAgICAgICAgICAgICAgdXNlRXhwb25lbnRpYWxOb3RhdGlvbiA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChzZXJpYWxWZXJzaW9uT25TdHJlYW0gPCAzKSB7CisgICAgICAgICAgICAvLyBWZXJzaW9ucyBwcmlvciB0byAzIGRvIG5vdCBzdG9yZSBhIGN1cnJlbmN5IG9iamVjdC4KKyAgICAgICAgICAgIC8vIENyZWF0ZSBvbmUgdG8gbWF0Y2ggdGhlIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdC4KKyAgICAgICAgICAgIHNldEN1cnJlbmN5Rm9yU3ltYm9scygpOworICAgICAgICB9CisgICAgICAgIHNlcmlhbFZlcnNpb25PblN0cmVhbSA9IGN1cnJlbnRTZXJpYWxWZXJzaW9uOworICAgICAgICBkaWdpdExpc3QgPSBuZXcgRGlnaXRMaXN0KCk7CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgICAgIGlmIChyb3VuZGluZ0luY3JlbWVudCAhPSBudWxsKSB7CisgICAgICAgIAlzZXRJbnRlcm5hbFJvdW5kaW5nSW5jcmVtZW50KG5ldyBCaWdEZWNpbWFsKHJvdW5kaW5nSW5jcmVtZW50KSk7CisgICAgICAgIAlzZXRSb3VuZGluZ0RvdWJsZSgpOworICAgICAgICB9ICAgCisvLyNlbmRpZgorICAgIH0KKworCisJcHJpdmF0ZSB2b2lkIHNldEludGVybmFsUm91bmRpbmdJbmNyZW1lbnQoQmlnRGVjaW1hbCB2YWx1ZSkgeworCQlyb3VuZGluZ0luY3JlbWVudElDVSA9IHZhbHVlOworLy8jaWZuZGVmIEZPVU5EQVRJT04KKwkJcm91bmRpbmdJbmNyZW1lbnQgPSB2YWx1ZSA9PSBudWxsID8gbnVsbCA6IHZhbHVlLnRvQmlnRGVjaW1hbCgpOworLy8jZW5kaWYKKwl9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBJTlNUQU5DRSBWQVJJQUJMRVMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgdHJhbnNpZW50IERpZ2l0TGlzdCBkaWdpdExpc3QgPSBuZXcgRGlnaXRMaXN0KCk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3ltYm9sIHVzZWQgYXMgYSBwcmVmaXggd2hlbiBmb3JtYXR0aW5nIHBvc2l0aXZlIG51bWJlcnMsIGUuZy4gIisiLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldFBvc2l0aXZlUHJlZml4CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgIHBvc2l0aXZlUHJlZml4ID0gIiI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3ltYm9sIHVzZWQgYXMgYSBzdWZmaXggd2hlbiBmb3JtYXR0aW5nIHBvc2l0aXZlIG51bWJlcnMuCisgICAgICogVGhpcyBpcyBvZnRlbiBhbiBlbXB0eSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0UG9zaXRpdmVTdWZmaXgKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyAgcG9zaXRpdmVTdWZmaXggPSAiIjsKKworICAgIC8qKgorICAgICAqIFRoZSBzeW1ib2wgdXNlZCBhcyBhIHByZWZpeCB3aGVuIGZvcm1hdHRpbmcgbmVnYXRpdmUgbnVtYmVycywgZS5nLiAiLSIuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TmVnYXRpdmVQcmVmaXgKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyAgbmVnYXRpdmVQcmVmaXggPSAiLSI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3ltYm9sIHVzZWQgYXMgYSBzdWZmaXggd2hlbiBmb3JtYXR0aW5nIG5lZ2F0aXZlIG51bWJlcnMuCisgICAgICogVGhpcyBpcyBvZnRlbiBhbiBlbXB0eSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TmVnYXRpdmVTdWZmaXgKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyAgbmVnYXRpdmVTdWZmaXggPSAiIjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgcHJlZml4IHBhdHRlcm4gZm9yIG5vbi1uZWdhdGl2ZSBudW1iZXJzLiAgVGhpcyB2YXJpYWJsZSBjb3JyZXNwb25kcworICAgICAqIHRvIDxjb2RlPnBvc2l0aXZlUHJlZml4PC9jb2RlPi4KKyAgICAgKgorICAgICAqIDxwPlRoaXMgcGF0dGVybiBpcyBleHBhbmRlZCBieSB0aGUgbWV0aG9kIDxjb2RlPmV4cGFuZEFmZml4KCk8L2NvZGU+IHRvCisgICAgICogPGNvZGU+cG9zaXRpdmVQcmVmaXg8L2NvZGU+IHRvIHVwZGF0ZSB0aGUgbGF0dGVyIHRvIHJlZmxlY3QgY2hhbmdlcyBpbgorICAgICAqIDxjb2RlPnN5bWJvbHM8L2NvZGU+LiAgSWYgdGhpcyB2YXJpYWJsZSBpcyA8Y29kZT5udWxsPC9jb2RlPiB0aGVuCisgICAgICogPGNvZGU+cG9zaXRpdmVQcmVmaXg8L2NvZGU+IGlzIHRha2VuIGFzIGEgbGl0ZXJhbCB2YWx1ZSB0aGF0IGRvZXMgbm90CisgICAgICogY2hhbmdlIHdoZW4gPGNvZGU+c3ltYm9sczwvY29kZT4gY2hhbmdlcy4gIFRoaXMgdmFyaWFibGUgaXMgYWx3YXlzCisgICAgICogPGNvZGU+bnVsbDwvY29kZT4gZm9yIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IG9iamVjdHMgb2xkZXIgdGhhbgorICAgICAqIHN0cmVhbSB2ZXJzaW9uIDIgcmVzdG9yZWQgZnJvbSBzdHJlYW0uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgLy9bUmljaGFyZC9HQ0xdCisgICAgcHJpdmF0ZSBTdHJpbmcgcG9zUHJlZml4UGF0dGVybjsKKworICAgIC8qKgorICAgICAqIFRoZSBzdWZmaXggcGF0dGVybiBmb3Igbm9uLW5lZ2F0aXZlIG51bWJlcnMuICBUaGlzIHZhcmlhYmxlIGNvcnJlc3BvbmRzCisgICAgICogdG8gPGNvZGU+cG9zaXRpdmVTdWZmaXg8L2NvZGU+LiAgVGhpcyB2YXJpYWJsZSBpcyBhbmFsb2dvdXMgdG8KKyAgICAgKiA8Y29kZT5wb3NQcmVmaXhQYXR0ZXJuPC9jb2RlPjsgc2VlIHRoYXQgdmFyaWFibGUgZm9yIGZ1cnRoZXIKKyAgICAgKiBkb2N1bWVudGF0aW9uLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIC8vW1JpY2hhcmQvR0NMXQorICAgIHByaXZhdGUgU3RyaW5nIHBvc1N1ZmZpeFBhdHRlcm47CisKKyAgICAvKioKKyAgICAgKiBUaGUgcHJlZml4IHBhdHRlcm4gZm9yIG5lZ2F0aXZlIG51bWJlcnMuICBUaGlzIHZhcmlhYmxlIGNvcnJlc3BvbmRzCisgICAgICogdG8gPGNvZGU+bmVnYXRpdmVQcmVmaXg8L2NvZGU+LiAgVGhpcyB2YXJpYWJsZSBpcyBhbmFsb2dvdXMgdG8KKyAgICAgKiA8Y29kZT5wb3NQcmVmaXhQYXR0ZXJuPC9jb2RlPjsgc2VlIHRoYXQgdmFyaWFibGUgZm9yIGZ1cnRoZXIKKyAgICAgKiBkb2N1bWVudGF0aW9uLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIC8vW1JpY2hhcmQvR0NMXQorICAgIHByaXZhdGUgU3RyaW5nIG5lZ1ByZWZpeFBhdHRlcm47CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3VmZml4IHBhdHRlcm4gZm9yIG5lZ2F0aXZlIG51bWJlcnMuICBUaGlzIHZhcmlhYmxlIGNvcnJlc3BvbmRzCisgICAgICogdG8gPGNvZGU+bmVnYXRpdmVTdWZmaXg8L2NvZGU+LiAgVGhpcyB2YXJpYWJsZSBpcyBhbmFsb2dvdXMgdG8KKyAgICAgKiA8Y29kZT5wb3NQcmVmaXhQYXR0ZXJuPC9jb2RlPjsgc2VlIHRoYXQgdmFyaWFibGUgZm9yIGZ1cnRoZXIKKyAgICAgKiBkb2N1bWVudGF0aW9uLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIC8vW1JpY2hhcmQvR0NMXQorICAgIHByaXZhdGUgU3RyaW5nIG5lZ1N1ZmZpeFBhdHRlcm47CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXR0ZXIgZm9yIENob2ljZUZvcm1hdC1iYXNlZCBjdXJyZW5jeSBuYW1lcy4gIElmIHRoaXMgZmllbGQKKyAgICAgKiBpcyBub3QgbnVsbCwgdGhlbiBkZWxlZ2F0ZSB0byBpdCB0byBmb3JtYXQgY3VycmVuY3kgc3ltYm9scy4KKyAgICAgKiBAc2luY2UgSUNVIDIuNgorICAgICAqLworICAgIHByaXZhdGUgQ2hvaWNlRm9ybWF0IGN1cnJlbmN5Q2hvaWNlOworCisgICAgLyoqCisgICAgICogVGhlIG11bHRpcGxpZXIgZm9yIHVzZSBpbiBwZXJjZW50LCBwZXJtaWxsLCBldGMuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TXVsdGlwbGllcgorICAgICAqLworICAgIHByaXZhdGUgaW50ICAgICBtdWx0aXBsaWVyID0gMTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGRpZ2l0cyBiZXR3ZWVuIGdyb3VwaW5nIHNlcGFyYXRvcnMgaW4gdGhlIGludGVnZXIKKyAgICAgKiBwb3J0aW9uIG9mIGEgbnVtYmVyLiAgTXVzdCBiZSBncmVhdGVyIHRoYW4gMCBpZgorICAgICAqIDxjb2RlPk51bWJlckZvcm1hdC5ncm91cGluZ1VzZWQ8L2NvZGU+IGlzIHRydWUuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0R3JvdXBpbmdTaXplCisgICAgICogQHNlZSBOdW1iZXJGb3JtYXQjaXNHcm91cGluZ1VzZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgICAgZ3JvdXBpbmdTaXplID0gMzsgIC8vIGludmFyaWFudCwgPiAwIGlmIHVzZVRob3VzYW5kcworCisgICAgLyoqCisgICAgICogVGhlIHNlY29uZGFyeSBncm91cGluZyBzaXplLiAgVGhpcyBpcyBvbmx5IHVzZWQgZm9yIEhpbmRpCisgICAgICogbnVtZXJhbHMsIHdoaWNoIHVzZSBhIHByaW1hcnkgZ3JvdXBpbmcgb2YgMyBhbmQgYSBzZWNvbmRhcnkKKyAgICAgKiBncm91cGluZyBvZiAyLCBlLmcuLCAiMTIsMzQsNTY3Ii4gIElmIHRoaXMgdmFsdWUgaXMgbGVzcyB0aGFuCisgICAgICogMSwgdGhlbiBzZWNvbmRhcnkgZ3JvdXBpbmcgaXMgZXF1YWwgdG8gdGhlIHByaW1hcnkgZ3JvdXBpbmcuCisgICAgICogW05FV10KKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgICAgZ3JvdXBpbmdTaXplMiA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogSWYgdHJ1ZSwgZm9yY2VzIHRoZSBkZWNpbWFsIHNlcGFyYXRvciB0byBhbHdheXMgYXBwZWFyIGluIGEgZm9ybWF0dGVkCisgICAgICogbnVtYmVyLCBldmVuIGlmIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIG51bWJlciBpcyB6ZXJvLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2lzRGVjaW1hbFNlcGFyYXRvckFsd2F5c1Nob3duCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGRlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93biA9IGZhbHNlOworICAgIAorICAgIC8qKgorICAgICAqIFRydWUgaWYgdGhpcyBvYmplY3QgcmVwcmVzZW50cyBhIGN1cnJlbmN5IGZvcm1hdC4gIFRoaXMgZGV0ZXJtaW5lcworICAgICAqIHdoZXRoZXIgdGhlIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yIGlzIHVzZWQgaW5zdGVhZCBvZiB0aGUgbm9ybWFsIG9uZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIGlzQ3VycmVuY3lGb3JtYXQgPSBmYWxzZTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgPGNvZGU+RGVjaW1hbEZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdCB1c2VkIGJ5IHRoaXMgZm9ybWF0LgorICAgICAqIEl0IGNvbnRhaW5zIHRoZSBzeW1ib2xzIHVzZWQgdG8gZm9ybWF0IG51bWJlcnMsIGUuZy4gdGhlIGdyb3VwaW5nIHNlcGFyYXRvciwKKyAgICAgKiBkZWNpbWFsIHNlcGFyYXRvciwgYW5kIHNvIG9uLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI3NldERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICogQHNlZSBEZWNpbWFsRm9ybWF0U3ltYm9scworICAgICAqLworICAgIHByaXZhdGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMgc3ltYm9scyA9IG51bGw7IC8vIExJVSBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoKTsKKworICAgIC8qKgorICAgICAqIFRydWUgdG8gdXNlIHNpZ25pZmljYW50IGRpZ2l0cyByYXRoZXIgdGhhbiBpbnRlZ2VyIGFuZCBmcmFjdGlvbgorICAgICAqIGRpZ2l0IGNvdW50cy4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gdXNlU2lnbmlmaWNhbnREaWdpdHMgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgdG8gc2hvdy4gIE11c3QgYmUgPj0gMQorICAgICAqIGFuZCA8PSBtYXhTaWduaWZpY2FudERpZ2l0cy4gIElnbm9yZWQgdW5sZXNzCisgICAgICogdXNlU2lnbmlmaWNhbnREaWdpdHMgPT0gdHJ1ZS4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtaW5TaWduaWZpY2FudERpZ2l0cyA9IDE7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIHRvIHNob3cuICBNdXN0IGJlID49CisgICAgICogbWluU2lnbmZpY2FudERpZ2l0cy4gIElnbm9yZWQgdW5sZXNzIHVzZVNpZ25pZmljYW50RGlnaXRzID09CisgICAgICogdHJ1ZS4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtYXhTaWduaWZpY2FudERpZ2l0cyA9IDY7CisKKyAgICAvKioKKyAgICAgKiBUcnVlIHRvIGZvcmNlIHRoZSB1c2Ugb2YgZXhwb25lbnRpYWwgKGkuZS4gc2NpZW50aWZpYykgbm90YXRpb24gd2hlbiBmb3JtYXR0aW5nCisgICAgICogbnVtYmVycy4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgdGhlIEpESyAxLjIgcHVibGljIEFQSSBwcm92aWRlcyBubyB3YXkgdG8gc2V0IHRoaXMgZmllbGQsCisgICAgICogZXZlbiB0aG91Z2ggaXQgaXMgc3VwcG9ydGVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBhbmQgdGhlIHN0cmVhbSBmb3JtYXQuCisgICAgICogVGhlIGludGVudCBpcyB0aGF0IHRoaXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgQVBJIGluIHRoZSBmdXR1cmUuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIHVzZUV4cG9uZW50aWFsTm90YXRpb247ICAvLyBOZXdseSBwZXJzaXN0ZW50IGluIEpESyAxLjIKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgdXNlZCB0byBkaXNwbGF5IHRoZSBleHBvbmVudCB3aGVuIGEgbnVtYmVyIGlzCisgICAgICogZm9ybWF0dGVkIGluIGV4cG9uZW50aWFsIG5vdGF0aW9uLiAgVGhpcyBmaWVsZCBpcyBpZ25vcmVkIGlmCisgICAgICogPGNvZGU+dXNlRXhwb25lbnRpYWxOb3RhdGlvbjwvY29kZT4gaXMgbm90IHRydWUuCisgICAgICogPHA+CisgICAgICogTm90ZSB0aGF0IHRoZSBKREsgMS4yIHB1YmxpYyBBUEkgcHJvdmlkZXMgbm8gd2F5IHRvIHNldCB0aGlzIGZpZWxkLAorICAgICAqIGV2ZW4gdGhvdWdoIGl0IGlzIHN1cHBvcnRlZCBieSB0aGUgaW1wbGVtZW50YXRpb24gYW5kIHRoZSBzdHJlYW0gZm9ybWF0LgorICAgICAqIFRoZSBpbnRlbnQgaXMgdGhhdCB0aGlzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIEFQSSBpbiB0aGUgZnV0dXJlLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgYnl0ZSAgICBtaW5FeHBvbmVudERpZ2l0czsgICAgICAgLy8gTmV3bHkgcGVyc2lzdGVudCBpbiBKREsgMS4yCisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogSWYgdHJ1ZSwgdGhlIGV4cG9uZW50IGlzIGFsd2F5cyBwcmVmaXhlZCB3aXRoIGVpdGhlciB0aGUgcGx1cworICAgICAqIHNpZ24gb3IgdGhlIG1pbnVzIHNpZ24uICBPdGhlcndpc2UsIG9ubHkgbmVnYXRpdmUgZXhwb25lbnRzIGFyZQorICAgICAqIHByZWZpeGVkIHdpdGggdGhlIG1pbnVzIHNpZ24uICBUaGlzIGhhcyBubyBlZmZlY3QgdW5sZXNzCisgICAgICogPGNvZGU+dXNlRXhwb25lbnRpYWxOb3RhdGlvbjwvY29kZT4gaXMgdHJ1ZS4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MgTnVtYmVyRm9ybWF0CisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGV4cG9uZW50U2lnbkFsd2F5c1Nob3duID0gZmFsc2U7CisKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSB2YWx1ZSB0byB3aGljaCBudW1iZXJzIGFyZSByb3VuZGVkIGR1cmluZyBmb3JtYXR0aW5nLiAgRm9yIGV4YW1wbGUsCisgICAgICogaWYgdGhlIHJvdW5kaW5nIGluY3JlbWVudCBpcyAwLjA1LCB0aGVuIDEzLjM3MSB3b3VsZCBiZSBmb3JtYXR0ZWQgYXMKKyAgICAgKiAxMy4zNTAsIGFzc3VtaW5nIDMgZnJhY3Rpb24gZGlnaXRzLiAgSGFzIHRoZSB2YWx1ZSA8Y29kZT5udWxsPC9jb2RlPiBpZgorICAgICAqIHJvdW5kaW5nIGlzIG5vdCBpbiBlZmZlY3QsIG9yIGEgcG9zaXRpdmUgdmFsdWUgaWYgcm91bmRpbmcgaXMgaW4gZWZmZWN0LgorICAgICAqIERlZmF1bHQgdmFsdWUgPGNvZGU+bnVsbDwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzIE51bWJlckZvcm1hdAorICAgICAqLworICAgIC8vIE5vdGU6IHRoaXMgaXMga2VwdCBpbiBzeW5jIHdpdGggcm91bmRpbmdJbmNyZW1lbnRJQ1UuCisgICAgLy8gaXQgaXMgb25seSBrZXB0IGFyb3VuZCB0byBhdm9pZCBhIGNvbnZlcnNpb24gd2hlbiBmb3JtYXR0aW5nIGEgamF2YS5tYXRoLkJpZ0RlY2ltYWwKKyAgICBwcml2YXRlIGphdmEubWF0aC5CaWdEZWNpbWFsIHJvdW5kaW5nSW5jcmVtZW50ID0gbnVsbDsKKy8vI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogVGhlIHZhbHVlIHRvIHdoaWNoIG51bWJlcnMgYXJlIHJvdW5kZWQgZHVyaW5nIGZvcm1hdHRpbmcuICBGb3IgZXhhbXBsZSwKKyAgICAgKiBpZiB0aGUgcm91bmRpbmcgaW5jcmVtZW50IGlzIDAuMDUsIHRoZW4gMTMuMzcxIHdvdWxkIGJlIGZvcm1hdHRlZCBhcworICAgICAqIDEzLjM1MCwgYXNzdW1pbmcgMyBmcmFjdGlvbiBkaWdpdHMuICBIYXMgdGhlIHZhbHVlIDxjb2RlPm51bGw8L2NvZGU+IGlmCisgICAgICogcm91bmRpbmcgaXMgbm90IGluIGVmZmVjdCwgb3IgYSBwb3NpdGl2ZSB2YWx1ZSBpZiByb3VuZGluZyBpcyBpbiBlZmZlY3QuCisgICAgICogRGVmYXVsdCB2YWx1ZSA8Y29kZT5udWxsPC9jb2RlPi4KKyAgICAgKiBXQVJOSU5HOiB0aGUgcm91bmRpbmdJbmNyZW1lbnQgdmFsdWUgaXMgdGhlIG9uZSBzZXJpYWxpemVkLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgQWxwaGFXb3JrcyBOdW1iZXJGb3JtYXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBCaWdEZWNpbWFsIHJvdW5kaW5nSW5jcmVtZW50SUNVID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBUaGUgcm91bmRpbmcgaW5jcmVtZW50IGFzIGEgZG91YmxlLiAgSWYgdGhpcyB2YWx1ZSBpcyA8PSAwLCB0aGVuIG5vCisgICAgICogcm91bmRpbmcgaXMgZG9uZS4gIFRoaXMgdmFsdWUgaXMKKyAgICAgKiA8Y29kZT5yb3VuZGluZ0luY3JlbWVudElDVS5kb3VibGVWYWx1ZSgpPC9jb2RlPi4gIERlZmF1bHQgdmFsdWUgMC4wLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGRvdWJsZSByb3VuZGluZ0RvdWJsZSA9IDAuMDsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBJZiB0aGUgcm91bmRpbmdEb3VibGUgaXMgdGhlIHJlY2lwcm9jYWwgb2YgYW4gaW50ZWdlciAodGhlIG1vc3QgY29tbW9uIGNhc2UhKSwKKyAgICAgKiB0aGlzIGlzIHNldCB0byBiZSB0aGF0IGludGVnZXIuIE90aGVyd2lzZSBpdCBpcyAwLjAuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgZG91YmxlIHJvdW5kaW5nRG91YmxlUmVjaXByb2NhbCA9IDAuMDsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBUaGUgcm91bmRpbmcgbW9kZS4gIFRoaXMgdmFsdWUgY29udHJvbHMgYW55IHJvdW5kaW5nIG9wZXJhdGlvbnMgd2hpY2gKKyAgICAgKiBvY2N1ciB3aGVuIGFwcGx5aW5nIGEgcm91bmRpbmcgaW5jcmVtZW50IG9yIHdoZW4gcmVkdWNpbmcgdGhlIG51bWJlciBvZgorICAgICAqIGZyYWN0aW9uIGRpZ2l0cyB0byBzYXRpc2Z5IGEgbWF4aW11bSBmcmFjdGlvbiBkaWdpdHMgbGltaXQuICBUaGUgdmFsdWUKKyAgICAgKiBtYXkgYXNzdW1lIGFueSBvZiB0aGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gcm91bmRpbmcgbW9kZSB2YWx1ZXMuCisgICAgICogRGVmYXVsdCB2YWx1ZSA8Y29kZT5CaWdEZWNpbWFsLlJPVU5EX0hBTEZfRVZFTjwvY29kZT4uCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzIE51bWJlckZvcm1hdAorICAgICAqLworICAgIHByaXZhdGUgaW50IHJvdW5kaW5nTW9kZSA9IEJpZ0RlY2ltYWwuUk9VTkRfSEFMRl9FVkVOOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSBwYWRkZWQgZm9ybWF0IHdpZHRoLCBvciB6ZXJvIGlmIHRoZXJlIGlzIG5vIHBhZGRpbmcuICBNdXN0CisgICAgICogYmUgPj0gMC4gIERlZmF1bHQgdmFsdWUgemVyby4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MgTnVtYmVyRm9ybWF0CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZm9ybWF0V2lkdGggPSAwOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSBjaGFyYWN0ZXIgdXNlZCB0byBwYWQgdGhlIHJlc3VsdCBvZiBmb3JtYXQgdG8KKyAgICAgKiA8Y29kZT5mb3JtYXRXaWR0aDwvY29kZT4sIGlmIHBhZGRpbmcgaXMgaW4gZWZmZWN0LiAgRGVmYXVsdCB2YWx1ZSAnICcuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzaW5jZSBBbHBoYVdvcmtzIE51bWJlckZvcm1hdAorICAgICAqLworICAgIHByaXZhdGUgY2hhciBwYWQgPSAnICc7CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogVGhlIHBvc2l0aW9uIGluIHRoZSBzdHJpbmcgYXQgd2hpY2ggdGhlIDxjb2RlPnBhZDwvY29kZT4gY2hhcmFjdGVyCisgICAgICogd2lsbCBiZSBpbnNlcnRlZCwgaWYgcGFkZGluZyBpcyBpbiBlZmZlY3QuICBNdXN0IGhhdmUgYSB2YWx1ZSBmcm9tCisgICAgICogPGNvZGU+UEFEX0JFRk9SRV9QUkVGSVg8L2NvZGU+IHRvIDxjb2RlPlBBRF9BRlRFUl9TVUZGSVg8L2NvZGU+LgorICAgICAqIERlZmF1bHQgdmFsdWUgPGNvZGU+UEFEX0JFRk9SRV9QUkVGSVg8L2NvZGU+LgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgQWxwaGFXb3JrcyBOdW1iZXJGb3JtYXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwYWRQb3NpdGlvbiA9IFBBRF9CRUZPUkVfUFJFRklYOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBzdGF0aWMgZmluYWwgaW50IGN1cnJlbnRTZXJpYWxWZXJzaW9uID0gMzsKKworICAgIC8qKgorICAgICAqIFRoZSBpbnRlcm5hbCBzZXJpYWwgdmVyc2lvbiB3aGljaCBzYXlzIHdoaWNoIHZlcnNpb24gd2FzIHdyaXR0ZW4KKyAgICAgKiBQb3NzaWJsZSB2YWx1ZXMgYXJlOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+MDwvYj4gKGRlZmF1bHQpOiB2ZXJzaW9ucyBiZWZvcmUgSkRLIDEuMgorICAgICAqIDxsaT48Yj4xPC9iPjogdmVyc2lvbiBmcm9tIEpESyAxLjIgYW5kIGxhdGVyLCB3aGljaCBpbmNsdWRlcyB0aGUgdHdvIG5ldyBmaWVsZHMKKyAgICAgKiAgICAgIDxjb2RlPnVzZUV4cG9uZW50aWFsTm90YXRpb248L2NvZGU+IGFuZCA8Y29kZT5taW5FeHBvbmVudERpZ2l0czwvY29kZT4uCisgICAgICogPGxpPjxiPjI8L2I+OiB2ZXJzaW9uIG9uIEFscGhhV29ya3MsIHdoaWNoIGFkZHMgcm91bmRpbmdNb2RlLCBmb3JtYXRXaWR0aCwKKyAgICAgKiAgICAgIHBhZCwgcGFkUG9zaXRpb24sIGV4cG9uZW50U2lnbkFsd2F5c1Nob3duLCByb3VuZGluZ0luY3JlbWVudC4KKyAgICAgKiA8bGk+PGI+MzwvYj46IElDVSAyLjIuICBBZGRzIGN1cnJlbmN5IG9iamVjdC4KKyAgICAgKiA8L3VsPgorICAgICAqIEBzZXJpYWwgKi8KKyAgICBwcml2YXRlIGludCBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENPTlNUQU5UUworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIENvbnN0YW50IGZvciA8Y29kZT5nZXRQYWRQb3NpdGlvbigpPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5zZXRQYWRQb3NpdGlvbigpPC9jb2RlPiBzcGVjaWZ5aW5nIHBhZCBjaGFyYWN0ZXJzIGluc2VydGVkIGJlZm9yZQorICAgICAqIHRoZSBwcmVmaXguCisgICAgICogQHNlZSAjc2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNnZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1NVRkZJWAorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9TVUZGSVgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQURfQkVGT1JFX1BSRUZJWCA9IDA7CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogQ29uc3RhbnQgZm9yIDxjb2RlPmdldFBhZFBvc2l0aW9uKCk8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPnNldFBhZFBvc2l0aW9uKCk8L2NvZGU+IHNwZWNpZnlpbmcgcGFkIGNoYXJhY3RlcnMgaW5zZXJ0ZWQgYWZ0ZXIKKyAgICAgKiB0aGUgcHJlZml4LgorICAgICAqIEBzZWUgI3NldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjZ2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1BSRUZJWAorICAgICAqIEBzZWUgI1BBRF9CRUZPUkVfU1VGRklYCisgICAgICogQHNlZSAjUEFEX0FGVEVSX1NVRkZJWAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBBRF9BRlRFUl9QUkVGSVggID0gMTsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBDb25zdGFudCBmb3IgPGNvZGU+Z2V0UGFkUG9zaXRpb24oKTwvY29kZT4gYW5kCisgICAgICogPGNvZGU+c2V0UGFkUG9zaXRpb24oKTwvY29kZT4gc3BlY2lmeWluZyBwYWQgY2hhcmFjdGVycyBpbnNlcnRlZCBiZWZvcmUKKyAgICAgKiB0aGUgc3VmZml4LgorICAgICAqIEBzZWUgI3NldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjZ2V0UGFkUG9zaXRpb24KKyAgICAgKiBAc2VlICNQQURfQkVGT1JFX1BSRUZJWAorICAgICAqIEBzZWUgI1BBRF9BRlRFUl9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQUZURVJfU1VGRklYCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFEX0JFRk9SRV9TVUZGSVggPSAyOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIENvbnN0YW50IGZvciA8Y29kZT5nZXRQYWRQb3NpdGlvbigpPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5zZXRQYWRQb3NpdGlvbigpPC9jb2RlPiBzcGVjaWZ5aW5nIHBhZCBjaGFyYWN0ZXJzIGluc2VydGVkIGFmdGVyCisgICAgICogdGhlIHN1ZmZpeC4KKyAgICAgKiBAc2VlICNzZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgI2dldFBhZFBvc2l0aW9uCisgICAgICogQHNlZSAjUEFEX0JFRk9SRV9QUkVGSVgKKyAgICAgKiBAc2VlICNQQURfQUZURVJfUFJFRklYCisgICAgICogQHNlZSAjUEFEX0JFRk9SRV9TVUZGSVgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQURfQUZURVJfU1VGRklYICA9IDM7CisKKyAgICAvLyBDb25zdGFudHMgZm9yIGNoYXJhY3RlcnMgdXNlZCBpbiBwcm9ncmFtbWF0aWMgKHVubG9jYWxpemVkKSBwYXR0ZXJucy4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fWkVST19ESUdJVCAgICAgICAgID0gJzAnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUEFUVEVSTl9HUk9VUElOR19TRVBBUkFUT1IgPSAnLCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciAgICAgICBQQVRURVJOX0RFQ0lNQUxfU0VQQVJBVE9SICA9ICcuJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fRElHSVQgICAgICAgICAgICAgID0gJyMnOworICAgICAgICAgICAgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUEFUVEVSTl9TSUdOSUZJQ0FOVF9ESUdJVCAgPSAnQCc7CisgICAgICAgICAgICBzdGF0aWMgZmluYWwgU3RyaW5nICAgICBQQVRURVJOX0VYUE9ORU5UICAgICAgICAgICA9ICJFIjsgLy8gW05FV10KKyAgICAgICAgICAgIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fUExVU19TSUdOICAgICAgICAgID0gJysnOyAvLyBbTkVXXQorCisgICAgLy8gQWZmaXgKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fUEVSX01JTExFICAgICAgICAgID0gJ1x1MjAzMCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciAgICAgICBQQVRURVJOX1BFUkNFTlQgICAgICAgICAgICA9ICclJzsKKyAgICAgICAgICAgIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fUEFEX0VTQ0FQRSAgICAgICAgID0gJyonOyAvLyBbTkVXXQorICAgIC8qQnVnIDQyMTIwNzIKKyAgICAgIFRvIG1lZXQgdGhlIG5lZWQgb2YgZXhwYW5kQWZmaXgoU3RyaW5nLCBTdGlybmdCdWZmZXIpCisgICAgICBbUmljaGFyZC9HQ0xdCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFBBVFRFUk5fTUlOVVMgICAgICAgICAgICAgID0gJy0nOyAvL1tSaWNoYXJkL0dDTF0KKworICAgIC8vIE90aGVyICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgICAgICAgUEFUVEVSTl9TRVBBUkFUT1IgICAgICAgICAgPSAnOyc7CisKKyAgICAvLyBQYWQgZXNjYXBlIGlzIHBhY2thZ2UgcHJpdmF0ZSB0byBhbGxvdyBhY2Nlc3MgYnkgRGVjaW1hbEZvcm1hdFN5bWJvbHMuCisgICAgLy8gQWxzbyBwbHVzIHNpZ24uICBBbHNvIGV4cG9uZW50LgorCisgICAgLyoqCisgICAgICogVGhlIENVUlJFTkNZX1NJR04gaXMgdGhlIHN0YW5kYXJkIFVuaWNvZGUgc3ltYm9sIGZvciBjdXJyZW5jeS4gIEl0CisgICAgICogaXMgdXNlZCBpbiBwYXR0ZXJucyBhbmQgc3Vic3RpdHVlZCB3aXRoIGVpdGhlciB0aGUgY3VycmVuY3kgc3ltYm9sLAorICAgICAqIG9yIGlmIGl0IGlzIGRvdWJsZWQsIHdpdGggdGhlIGludGVybmF0aW9uYWwgY3VycmVuY3kgc3ltYm9sLiAgSWYgdGhlCisgICAgICogQ1VSUkVOQ1lfU0lHTiBpcyBzZWVuIGluIGEgcGF0dGVybiwgdGhlbiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaXMKKyAgICAgKiByZXBsYWNlZCB3aXRoIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvci4KKyAgICAgKgorICAgICAqIFRoZSBDVVJSRU5DWV9TSUdOIGlzIG5vdCBsb2NhbGl6ZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciAgICAgICBDVVJSRU5DWV9TSUdOID0gJ1x1MDBBNCc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyICAgICAgIFFVT1RFID0gJ1wnJzsKKyAgICAKKyAgICAvKiBVcHBlciBsaW1pdCBvbiBpbnRlZ2VyIGFuZCBmcmFjdGlvbiBkaWdpdHMgZm9yIGEgSmF2YSBkb3VibGUKKyAgICAgICBbUmljaGFyZC9HQ0xdCisgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IERPVUJMRV9JTlRFR0VSX0RJR0lUUyAgPSAzMDk7CisgICAgc3RhdGljIGZpbmFsIGludCBET1VCTEVfRlJBQ1RJT05fRElHSVRTID0gMzQwOworCisgICAgLyoqCisgICAgICogV2hlbiBzb21lb25lIHR1cm5zIG9uIHNjaWVudGlmaWMgbW9kZSwgd2UgYXNzdW1lIHRoYXQgbW9yZSB0aGFuIHRoaXMKKyAgICAgKiBudW1iZXIgb2YgZGlnaXRzIGlzIGR1ZSB0byBmbGlwcGluZyBmcm9tIHNvbWUgb3RoZXIgbW9kZSB0aGF0IGRpZG4ndAorICAgICAqIHJlc3RyaWN0IHRoZSBtYXhpbXVtLCBhbmQgc28gd2UgZm9yY2UgMSBpbnRlZ2VyIGRpZ2l0LiAgV2UgZG9uJ3QgYm90aGVyCisgICAgICogdG8gdHJhY2sgYW5kIHNlZSBpZiBzb21lb25lIGlzIHVzaW5nIGV4cG9uZW50aWFsIG5vdGF0aW9uIHdpdGggbW9yZSB0aGFuCisgICAgICogdGhpcyBudW1iZXIsIGl0IHdvdWxkbid0IG1ha2Ugc2Vuc2UgYW55d2F5LCBhbmQgdGhpcyBpcyBqdXN0IHRvIG1ha2Ugc3VyZQorICAgICAqIHRoYXQgc29tZW9uZSB0dXJuaW5nIG9uIHNjaWVudGlmaWMgbW9kZSB3aXRoIGRlZmF1bHQgc2V0dGluZ3MgZG9lc24ndAorICAgICAqIGVuZCB1cCB3aXRoIGxvdHMgb2YgemVyb2VzLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1NDSUVOVElGSUNfSU5URUdFUl9ESUdJVFMgPSA4OworCisvLyNpZmRlZiBGT1VOREFUSU9OCisvLyMjCS8vIHdlJ3JlIG5vdCBjb21wYXRpYmxlIHdpdGggb3RoZXIgdmVyc2lvbnMsIHNpbmNlIHdlIGhhdmUgbm8gamF2YS5tYXRoLkJpZ0RlY2ltYWwgZmllbGQKKy8vIyMJcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMjsKKy8vI2Vsc2UKKyAgICAvLyBQcm9jbGFpbSBKREsgMS4xIHNlcmlhbCBjb21wYXRpYmlsaXR5LgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDg2NDQxMzM3NjU1MTQ2NTAxOEw7CisvLyNlbmRpZgorfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjaW1hbEZvcm1hdFN5bWJvbHMuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXRTeW1ib2xzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTk1YjVlMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0RlY2ltYWxGb3JtYXRTeW1ib2xzLmphdmEKQEAgLTAsMCArMSw5NTIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ3VycmVuY3k7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEudGV4dC5DaG9pY2VGb3JtYXQ7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIFRoaXMgY2xhc3MgcmVwcmVzZW50cyB0aGUgc2V0IG9mIHN5bWJvbHMgKHN1Y2ggYXMgdGhlIGRlY2ltYWwgc2VwYXJhdG9yLCB0aGUKKyAqIGdyb3VwaW5nIHNlcGFyYXRvciwgYW5kIHNvIG9uKSBuZWVkZWQgYnkgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4gdG8gZm9ybWF0CisgKiBudW1iZXJzLiA8Y29kZT5EZWNpbWFsRm9ybWF0PC9jb2RlPiBjcmVhdGVzIGZvciBpdHNlbGYgYW4gaW5zdGFuY2Ugb2YKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXRTeW1ib2xzPC9jb2RlPiBmcm9tIGl0cyBsb2NhbGUgZGF0YS4gIElmIHlvdSBuZWVkIHRvCisgKiBjaGFuZ2UgYW55IG9mIHRoZXNlIHN5bWJvbHMsIHlvdSBjYW4gZ2V0IHRoZQorICogPGNvZGU+RGVjaW1hbEZvcm1hdFN5bWJvbHM8L2NvZGU+IG9iamVjdCBmcm9tIHlvdXIgPGNvZGU+RGVjaW1hbEZvcm1hdDwvY29kZT4KKyAqIGFuZCBtb2RpZnkgaXQuCisgKgorICogPHA+PHN0cm9uZz5UaGlzIGlzIGFuIGVuaGFuY2VkIHZlcnNpb24gb2YgPGNvZGU+RGVjaW1hbEZvcm1hdFN5bWJvbHM8L2NvZGU+IHRoYXQKKyAqIGlzIGJhc2VkIG9uIHRoZSBzdGFuZGFyZCB2ZXJzaW9uIGluIHRoZSBKREsuICBOZXcgb3IgY2hhbmdlZCBmdW5jdGlvbmFsaXR5CisgKiBpcyBsYWJlbGVkCisgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+Ljwvc3Ryb25nPgorICoKKyAqIEBzZWUgICAgICAgICAgamF2YS51dGlsLkxvY2FsZQorICogQHNlZSAgICAgICAgICBEZWNpbWFsRm9ybWF0CisgKiBAYXV0aG9yICAgICAgIE1hcmsgRGF2aXMKKyAqIEBhdXRob3IgICAgICAgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCisKK2ZpbmFsIHB1YmxpYyBjbGFzcyBEZWNpbWFsRm9ybWF0U3ltYm9scyBpbXBsZW1lbnRzIENsb25lYWJsZSwgU2VyaWFsaXphYmxlIHsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIERlY2ltYWxGb3JtYXRTeW1ib2xzIG9iamVjdCBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEZWNpbWFsRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgaW5pdGlhbGl6ZSggVUxvY2FsZS5nZXREZWZhdWx0KCkgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgZm9yIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXRTeW1ib2xzKCBMb2NhbGUgbG9jYWxlICkgeworICAgICAgICBpbml0aWFsaXplKCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgRGVjaW1hbEZvcm1hdFN5bWJvbHMgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIERlY2ltYWxGb3JtYXRTeW1ib2xzKCBVTG9jYWxlIGxvY2FsZSApIHsKKyAgICAgICAgaW5pdGlhbGl6ZSggbG9jYWxlICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgemVyby4gRGlmZmVyZW50IGZvciBBcmFiaWMsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRaZXJvRGlnaXQoKSB7CisgICAgICAgIHJldHVybiB6ZXJvRGlnaXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgemVyby4KKyAgICAgKiBAcGFyYW0gemVyb0RpZ2l0IHRoZSB6ZXJvIGNoYXJhY3Rlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRaZXJvRGlnaXQoY2hhciB6ZXJvRGlnaXQpIHsKKyAgICAgICAgdGhpcy56ZXJvRGlnaXQgPSB6ZXJvRGlnaXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgdXNlZCB0byByZXByZXNlbnQgYSBzaWduaWZpY2FudCBkaWdpdCBpbiBhIHBhdHRlcm4uCisgICAgICogQHJldHVybiB0aGUgc2lnbmlmaWNhbnQgZGlnaXQgcGF0dGVybiBjaGFyYWN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFNpZ25pZmljYW50RGlnaXQoKSB7CisgICAgICAgIHJldHVybiBzaWdEaWdpdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIHRvIHJlcHJlc2VudCBhIHNpZ25pZmljYW50IGRpZ2l0IGluIGEgcGF0dGVybi4KKyAgICAgKiBAcGFyYW0gc2lnRGlnaXQgdGhlIHNpZ25pZmljYW50IGRpZ2l0IHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTaWduaWZpY2FudERpZ2l0KGNoYXIgc2lnRGlnaXQpIHsKKyAgICAgICAgdGhpcy5zaWdEaWdpdCA9IHNpZ0RpZ2l0OworICAgIH0gICAgCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgdGhvdXNhbmRzIHNlcGFyYXRvci4gRGlmZmVyZW50IGZvciBGcmVuY2gsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSB0aG91c2FuZHMgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0R3JvdXBpbmdTZXBhcmF0b3IoKSB7CisgICAgICAgIHJldHVybiBncm91cGluZ1NlcGFyYXRvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciB0aG91c2FuZHMgc2VwYXJhdG9yLiBEaWZmZXJlbnQgZm9yIEZyZW5jaCwgZXRjLgorICAgICAqIEBwYXJhbSBncm91cGluZ1NlcGFyYXRvciB0aGUgdGhvdXNhbmRzIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEdyb3VwaW5nU2VwYXJhdG9yKGNoYXIgZ3JvdXBpbmdTZXBhcmF0b3IpIHsKKyAgICAgICAgdGhpcy5ncm91cGluZ1NlcGFyYXRvciA9IGdyb3VwaW5nU2VwYXJhdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIGRlY2ltYWwgc2lnbi4gRGlmZmVyZW50IGZvciBGcmVuY2gsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBkZWNpbWFsIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldERlY2ltYWxTZXBhcmF0b3IoKSB7CisgICAgICAgIHJldHVybiBkZWNpbWFsU2VwYXJhdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIGRlY2ltYWwgc2lnbi4gRGlmZmVyZW50IGZvciBGcmVuY2gsIGV0Yy4KKyAgICAgKiBAcGFyYW0gZGVjaW1hbFNlcGFyYXRvciB0aGUgZGVjaW1hbCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWNpbWFsU2VwYXJhdG9yKGNoYXIgZGVjaW1hbFNlcGFyYXRvcikgeworICAgICAgICB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgPSBkZWNpbWFsU2VwYXJhdG9yOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIG1pbGxlIHBlcmNlbnQgc2lnbi4gRGlmZmVyZW50IGZvciBBcmFiaWMsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaWxsZSBwZXJjZW50IGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFBlck1pbGwoKSB7CisgICAgICAgIHJldHVybiBwZXJNaWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIG1pbGxlIHBlcmNlbnQgc2lnbi4gRGlmZmVyZW50IGZvciBBcmFiaWMsIGV0Yy4KKyAgICAgKiBAcGFyYW0gcGVyTWlsbCB0aGUgbWlsbGUgcGVyY2VudCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQZXJNaWxsKGNoYXIgcGVyTWlsbCkgeworICAgICAgICB0aGlzLnBlck1pbGwgPSBwZXJNaWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIHBlcmNlbnQgc2lnbi4gRGlmZmVyZW50IGZvciBBcmFiaWMsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBwZXJjZW50IGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFBlcmNlbnQoKSB7CisgICAgICAgIHJldHVybiBwZXJjZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIHBlcmNlbnQgc2lnbi4gRGlmZmVyZW50IGZvciBBcmFiaWMsIGV0Yy4KKyAgICAgKiBAcGFyYW0gcGVyY2VudCB0aGUgcGVyY2VudCBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQZXJjZW50KGNoYXIgcGVyY2VudCkgeworICAgICAgICB0aGlzLnBlcmNlbnQgPSBwZXJjZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIGEgZGlnaXQgaW4gYSBwYXR0ZXJuLgorICAgICAqIEByZXR1cm4gdGhlIGRpZ2l0IHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0RGlnaXQoKSB7CisgICAgICAgIHJldHVybiBkaWdpdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNoYXJhY3RlciB1c2VkIGZvciBhIGRpZ2l0IGluIGEgcGF0dGVybi4KKyAgICAgKiBAcGFyYW0gZGlnaXQgdGhlIGRpZ2l0IHBhdHRlcm4gY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGlnaXQoY2hhciBkaWdpdCkgeworICAgICAgICB0aGlzLmRpZ2l0ID0gZGlnaXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgc3VicGF0dGVybnMKKyAgICAgKiBpbiBhIHBhdHRlcm4uCisgICAgICogQHJldHVybiB0aGUgcGF0dGVybiBzZXBhcmF0b3IgY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0UGF0dGVyblNlcGFyYXRvcigpIHsKKyAgICAgICAgcmV0dXJuIHBhdHRlcm5TZXBhcmF0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgc3VicGF0dGVybnMKKyAgICAgKiBpbiBhIHBhdHRlcm4uCisgICAgICogQHBhcmFtIHBhdHRlcm5TZXBhcmF0b3IgdGhlIHBhdHRlcm4gc2VwYXJhdG9yIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhdHRlcm5TZXBhcmF0b3IoY2hhciBwYXR0ZXJuU2VwYXJhdG9yKSB7CisgICAgICAgIHRoaXMucGF0dGVyblNlcGFyYXRvciA9IHBhdHRlcm5TZXBhcmF0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgaW5maW5pdHkuIEFsbW9zdCBhbHdheXMgbGVmdAorICAgICAqIHVuY2hhbmdlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBJbmZpbml0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICAgLy9CdWcgNDE5NDE3MyBbUmljaGFyZC9HQ0xdCisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEluZmluaXR5KCkgeworICAgICAgICByZXR1cm4gaW5maW5pdHk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgaW5maW5pdHkuIEFsbW9zdCBhbHdheXMgbGVmdAorICAgICAqIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gaW5maW5pdHkgdGhlIEluZmluaXR5IFN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZmluaXR5KFN0cmluZyBpbmZpbml0eSkgeworICAgICAgICB0aGlzLmluZmluaXR5ID0gaW5maW5pdHk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBTdHJpbmcgdXNlZCB0byByZXByZXNlbnQgTmFOLiBBbG1vc3QgYWx3YXlzIGxlZnQKKyAgICAgKiB1bmNoYW5nZWQuCisgICAgICogQHJldHVybiB0aGUgTmFOIFN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgICAvL0J1ZyA0MTk0MTczIFtSaWNoYXJkL0dDTF0KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hTigpIHsKKyAgICAgICAgcmV0dXJuIE5hTjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIFN0cmluZyB1c2VkIHRvIHJlcHJlc2VudCBOYU4uIEFsbW9zdCBhbHdheXMgbGVmdAorICAgICAqIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gTmFOIHRoZSBOYU4gU3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmFOKFN0cmluZyBOYU4pIHsKKyAgICAgICAgdGhpcy5OYU4gPSBOYU47CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgdXNlZCB0byByZXByZXNlbnQgbWludXMgc2lnbi4gSWYgbm8gZXhwbGljaXQKKyAgICAgKiBuZWdhdGl2ZSBmb3JtYXQgaXMgc3BlY2lmaWVkLCBvbmUgaXMgZm9ybWVkIGJ5IHByZWZpeGluZworICAgICAqIG1pbnVzU2lnbiB0byB0aGUgcG9zaXRpdmUgZm9ybWF0LgorICAgICAqIEByZXR1cm4gdGhlIG1pbnVzIHNpZ24gY2hhcmFjdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0TWludXNTaWduKCkgeworICAgICAgICByZXR1cm4gbWludXNTaWduOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcmVwcmVzZW50IG1pbnVzIHNpZ24uIElmIG5vIGV4cGxpY2l0CisgICAgICogbmVnYXRpdmUgZm9ybWF0IGlzIHNwZWNpZmllZCwgb25lIGlzIGZvcm1lZCBieSBwcmVmaXhpbmcKKyAgICAgKiBtaW51c1NpZ24gdG8gdGhlIHBvc2l0aXZlIGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gbWludXNTaWduIHRoZSBtaW51cyBzaWduIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbnVzU2lnbihjaGFyIG1pbnVzU2lnbikgeworICAgICAgICB0aGlzLm1pbnVzU2lnbiA9IG1pbnVzU2lnbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICogQHJldHVybiB0aGUgbG9jYWwgY3VycmVuY3kgU3RyaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0Q3VycmVuY3lTeW1ib2woKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGN1cnJlbmN5U3ltYm9sOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc3RyaW5nIGRlbm90aW5nIHRoZSBsb2NhbCBjdXJyZW5jeS4KKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgdGhlIGxvY2FsIGN1cnJlbmN5IFN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW5jeVN5bWJvbChTdHJpbmcgY3VycmVuY3kpCisgICAgeworICAgICAgICBjdXJyZW5jeVN5bWJvbCA9IGN1cnJlbmN5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW50ZXJuYXRpb25hbCBzdHJpbmcgZGVub3RpbmcgdGhlIGxvY2FsIGN1cnJlbmN5LgorICAgICAqIEByZXR1cm4gdGhlIGludGVybmF0aW9uYWwgc3RyaW5nIGRlbm90aW5nIHRoZSBsb2NhbCBjdXJyZW5jeQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKCkKKyAgICB7CisgICAgICAgIHJldHVybiBpbnRsQ3VycmVuY3lTeW1ib2w7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnRlcm5hdGlvbmFsIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICogQHBhcmFtIGN1cnJlbmN5IHRoZSBpbnRlcm5hdGlvbmFsIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3kuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sKFN0cmluZyBjdXJyZW5jeSkKKyAgICB7CisgICAgICAgIGludGxDdXJyZW5jeVN5bWJvbCA9IGN1cnJlbmN5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbmN5IHN5bWJvbCwgZm9yIEpESyAxLjQgY29tcGF0aWJpbGl0eSBvbmx5LgorICAgICAqIElDVSBjbGllbnRzIHNob3VsZCB1c2UgdGhlIEN1cnJlbmN5IEFQSSBkaXJlY3RseS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW5jeSB1c2VkLCBvciBudWxsCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ3VycmVuY3kgZ2V0Q3VycmVuY3koKSB7CisgICAgICAgIHJldHVybiBjdXJyZW5jeTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSUNVIGRvZXMgbm90IHVzZSB0aGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZm9yIHRoZSAKKyAgICAgKiBjdXJyZW5jeSBhbnkgbW9yZS4gIFRoaXMgQVBJIGlzIHByZXNlbnQKKyAgICAgKiBmb3IgQVBJIGNvbXBhdGliaWxpdHkgb25seS4KKyAgICAgKgorICAgICAqIFRoaXMgYWxzbyBzZXRzIHRoZSBjdXJyZW5jeSBzeW1ib2wgYXR0cmlidXRlIHRvIHRoZSBjdXJyZW5jeSdzIHN5bWJvbAorICAgICAqIGluIHRoZSBEZWNpbWFsRm9ybWF0U3ltYm9scycgbG9jYWxlLCBhbmQgdGhlIGludGVybmF0aW9uYWwgY3VycmVuY3kKKyAgICAgKiBzeW1ib2wgYXR0cmlidXRlIHRvIHRoZSBjdXJyZW5jeSdzIElTTyA0MjE3IGN1cnJlbmN5IGNvZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgdGhlIG5ldyBjdXJyZW5jeSB0byBiZSB1c2VkCisgICAgICogQHRocm93cyBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiA8Y29kZT5jdXJyZW5jeTwvY29kZT4gaXMgbnVsbAorICAgICAqIEBzZWUgI3NldEN1cnJlbmN5U3ltYm9sCisgICAgICogQHNlZSAjc2V0SW50ZXJuYXRpb25hbEN1cnJlbmN5U3ltYm9sCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEN1cnJlbmN5KEN1cnJlbmN5IGN1cnJlbmN5KSB7CisgICAgICAgIGlmIChjdXJyZW5jeSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmN1cnJlbmN5ID0gY3VycmVuY3k7CisgICAgICAgIGludGxDdXJyZW5jeVN5bWJvbCA9IGN1cnJlbmN5LmdldEN1cnJlbmN5Q29kZSgpOworICAgICAgICBjdXJyZW5jeVN5bWJvbCA9IGN1cnJlbmN5LmdldFN5bWJvbChsb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yLgorICAgICAqIEByZXR1cm4gdGhlIG1vbmV0YXJ5IGRlY2ltYWwgc2VwYXJhdG9yIGNoYXJhY3RlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldE1vbmV0YXJ5RGVjaW1hbFNlcGFyYXRvcigpCisgICAgeworICAgICAgICByZXR1cm4gbW9uZXRhcnlTZXBhcmF0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvci4KKyAgICAgKiBAcGFyYW0gc2VwIHRoZSBtb25ldGFyeSBkZWNpbWFsIHNlcGFyYXRvciBjaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNb25ldGFyeURlY2ltYWxTZXBhcmF0b3IoY2hhciBzZXApCisgICAgeworICAgICAgICBtb25ldGFyeVNlcGFyYXRvciA9IHNlcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJuIHRoZSBzdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSB0aGUgbWFudGlzc2EgZnJvbSB0aGUgZXhwb25lbnQuCisgICAgICogRXhhbXBsZXM6ICJ4MTBeIiBmb3IgMS4yM3gxMF40LCAiRSIgZm9yIDEuMjNFNC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgZXhwb25lbnQgc3ltYm9sLCB1c2VkIGluIGxvY2FsaXplZCBwYXR0ZXJucworICAgICAqIGFuZCBmb3JtYXR0ZWQgc3RyaW5ncworICAgICAqIEBzZWUgI3NldEV4cG9uZW50U2VwYXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRFeHBvbmVudFNlcGFyYXRvcigpCisgICAgeworICAgICAgICByZXR1cm4gZXhwb25lbnRTZXBhcmF0b3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFNldCB0aGUgc3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgdGhlIG1hbnRpc3NhIGZyb20gdGhlIGV4cG9uZW50LgorICAgICAqIEV4YW1wbGVzOiAieDEwXiIgZm9yIDEuMjN4MTBeNCwgIkUiIGZvciAxLjIzRTQuCisgICAgICogQHBhcmFtIGV4cCB0aGUgbG9jYWxpemVkIGV4cG9uZW50IHN5bWJvbCwgdXNlZCBpbiBsb2NhbGl6ZWQgcGF0dGVybnMKKyAgICAgKiBhbmQgZm9ybWF0dGVkIHN0cmluZ3MKKyAgICAgKiBAc2VlICNnZXRFeHBvbmVudFNlcGFyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEV4cG9uZW50U2VwYXJhdG9yKFN0cmluZyBleHApCisgICAgeworICAgICAgICBleHBvbmVudFNlcGFyYXRvciA9IGV4cDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJuIHRoZSBsb2NhbGl6ZWQgcGx1cyBzaWduLgorICAgICAqIEByZXR1cm4gdGhlIHBsdXMgc2lnbiwgdXNlZCBpbiBsb2NhbGl6ZWQgcGF0dGVybnMgYW5kIGZvcm1hdHRlZAorICAgICAqIHN0cmluZ3MKKyAgICAgKiBAc2VlICNzZXRQbHVzU2lnbgorICAgICAqIEBzZWUgI3NldE1pbnVzU2lnbgorICAgICAqIEBzZWUgI2dldE1pbnVzU2lnbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGdldFBsdXNTaWduKCkgeworICAgICAgICByZXR1cm4gcGx1c1NpZ247CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFNldCB0aGUgbG9jYWxpemVkIHBsdXMgc2lnbi4KKyAgICAgKiBAcGFyYW0gcGx1cyB0aGUgcGx1cyBzaWduLCB1c2VkIGluIGxvY2FsaXplZCBwYXR0ZXJucyBhbmQgZm9ybWF0dGVkCisgICAgICogc3RyaW5ncworICAgICAqIEBzZWUgI2dldFBsdXNTaWduCisgICAgICogQHNlZSAjc2V0TWludXNTaWduCisgICAgICogQHNlZSAjZ2V0TWludXNTaWduCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGx1c1NpZ24oY2hhciBwbHVzKSB7CisgICAgICAgIHBsdXNTaWduID0gcGx1czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJuIHRoZSBjaGFyYWN0ZXIgdXNlZCB0byBwYWQgbnVtYmVycyBvdXQgdG8gYSBzcGVjaWZpZWQgd2lkdGguICBUaGlzCisgICAgICogaXMgbm90IHRoZSBwYWQgY2hhcmFjdGVyIGl0c2VsZjsgcmF0aGVyLCBpdCBpcyB0aGUgc3BlY2lhbCBwYXR0ZXJuCisgICAgICogY2hhcmFjdGVyIDxlbT5wcmVjZWRpbmc8L2VtPiB0aGUgcGFkIGNoYXJhY3Rlci4gIEluIHRoZSBwYXR0ZXJuCisgICAgICogIipfIywjIzAiLCAnKicgaXMgdGhlIHBhZCBlc2NhcGUsIGFuZCAnXycgaXMgdGhlIHBhZCBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIAorICAgICAqIEBzZWUgI3NldFBhZEVzY2FwZQorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdCNnZXRGb3JtYXRXaWR0aAorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdCNnZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdCNnZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBnZXRQYWRFc2NhcGUoKSB7CisgICAgICAgIHJldHVybiBwYWRFc2NhcGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFNldCB0aGUgY2hhcmFjdGVyIHVzZWQgdG8gcGFkIG51bWJlcnMgb3V0IHRvIGEgc3BlY2lmaWVkIHdpZHRoLiAgVGhpcyBpcworICAgICAqIG5vdCB0aGUgcGFkIGNoYXJhY3RlciBpdHNlbGY7IHJhdGhlciwgaXQgaXMgdGhlIHNwZWNpYWwgcGF0dGVybiBjaGFyYWN0ZXIKKyAgICAgKiA8ZW0+cHJlY2VkaW5nPC9lbT4gdGhlIHBhZCBjaGFyYWN0ZXIuICBJbiB0aGUgcGF0dGVybiAiKl8jLCMjMCIsICcqJyBpcworICAgICAqIHRoZSBwYWQgZXNjYXBlLCBhbmQgJ18nIGlzIHRoZSBwYWQgY2hhcmFjdGVyLgorICAgICAqIEBzZWUgI2dldFBhZEVzY2FwZQorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdCNzZXRGb3JtYXRXaWR0aAorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdCNzZXRQYWRQb3NpdGlvbgorICAgICAqIEBzZWUgRGVjaW1hbEZvcm1hdCNzZXRQYWRDaGFyYWN0ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYWRFc2NhcGUoY2hhciBjKSB7CisgICAgICAgIHBhZEVzY2FwZSA9IGM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlIGZvciB3aGljaCB0aGlzIG9iamVjdCB3YXMgY29uc3RydWN0ZWQuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlIGZvciB3aGljaCB0aGlzIG9iamVjdCB3YXMgY29uc3RydWN0ZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTG9jYWxlIGdldExvY2FsZSgpIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoaXMgb2JqZWN0IHdhcyBjb25zdHJ1Y3RlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHRoaXMgb2JqZWN0IHdhcyBjb25zdHJ1Y3RlZAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFVMb2NhbGUgZ2V0VUxvY2FsZSgpIHsKKyAgICAgICAgcmV0dXJuIHVsb2NhbGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3RhbmRhcmQgb3ZlcnJpZGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiAoRGVjaW1hbEZvcm1hdFN5bWJvbHMpIHN1cGVyLmNsb25lKCk7CisgICAgICAgICAgICAvLyBvdGhlciBmaWVsZHMgYXJlIGJpdC1jb3BpZWQKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBlcXVhbHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICh0aGlzID09IG9iaikgcmV0dXJuIHRydWU7CisgICAgICAgIERlY2ltYWxGb3JtYXRTeW1ib2xzIG90aGVyID0gKERlY2ltYWxGb3JtYXRTeW1ib2xzKSBvYmo7CisgICAgICAgIHJldHVybiAoemVyb0RpZ2l0ID09IG90aGVyLnplcm9EaWdpdCAmJgorICAgICAgICBncm91cGluZ1NlcGFyYXRvciA9PSBvdGhlci5ncm91cGluZ1NlcGFyYXRvciAmJgorICAgICAgICBkZWNpbWFsU2VwYXJhdG9yID09IG90aGVyLmRlY2ltYWxTZXBhcmF0b3IgJiYKKyAgICAgICAgcGVyY2VudCA9PSBvdGhlci5wZXJjZW50ICYmCisgICAgICAgIHBlck1pbGwgPT0gb3RoZXIucGVyTWlsbCAmJgorICAgICAgICBkaWdpdCA9PSBvdGhlci5kaWdpdCAmJgorICAgICAgICBtaW51c1NpZ24gPT0gb3RoZXIubWludXNTaWduICYmCisgICAgICAgIHBhdHRlcm5TZXBhcmF0b3IgPT0gb3RoZXIucGF0dGVyblNlcGFyYXRvciAmJgorICAgICAgICBpbmZpbml0eS5lcXVhbHMob3RoZXIuaW5maW5pdHkpICYmCisgICAgICAgIE5hTi5lcXVhbHMob3RoZXIuTmFOKSAmJgorICAgICAgICBjdXJyZW5jeVN5bWJvbC5lcXVhbHMob3RoZXIuY3VycmVuY3lTeW1ib2wpICYmCisgICAgICAgIGludGxDdXJyZW5jeVN5bWJvbC5lcXVhbHMob3RoZXIuaW50bEN1cnJlbmN5U3ltYm9sKSAmJgorICAgICAgICBwYWRFc2NhcGUgPT0gb3RoZXIucGFkRXNjYXBlICYmIC8vIFtORVddCisgICAgICAgIHBsdXNTaWduID09IG90aGVyLnBsdXNTaWduICYmIC8vIFtORVddCisgICAgICAgIGV4cG9uZW50U2VwYXJhdG9yLmVxdWFscyhvdGhlci5leHBvbmVudFNlcGFyYXRvcikgJiYgLy8gW05FV10KKyAgICAgICAgbW9uZXRhcnlTZXBhcmF0b3IgPT0gb3RoZXIubW9uZXRhcnlTZXBhcmF0b3IpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIGhhc2hDb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSB6ZXJvRGlnaXQ7CisgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAzNyArIGdyb3VwaW5nU2VwYXJhdG9yOworICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzcgKyBkZWNpbWFsU2VwYXJhdG9yOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplcyB0aGUgc3ltYm9scyBmcm9tIHRoZSBMb2NhbGVFbGVtZW50cyByZXNvdXJjZSBidW5kbGUuCisgICAgICogTm90ZTogVGhlIG9yZ2FuaXphdGlvbiBvZiBMb2NhbGVFbGVtZW50cyBiYWRseSBuZWVkcyB0byBiZQorICAgICAqIGNsZWFuZWQgdXAuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXRpYWxpemUoIFVMb2NhbGUgbG9jYWxlICkgeworICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZS50b0xvY2FsZSgpOworICAgICAgICB0aGlzLnVsb2NhbGUgPSBsb2NhbGU7CisKKyAgICAgICAgLyogdHJ5IHRoZSBjYWNoZSBmaXJzdCAqLworICAgICAgICBTdHJpbmdbXVtdIGRhdGEgPSAoU3RyaW5nW11bXSkgY2FjaGVkTG9jYWxlRGF0YS5nZXQobG9jYWxlKTsKKyAgICAgICAgU3RyaW5nW10gbnVtYmVyRWxlbWVudHM7CisgICAgICAgIGlmIChkYXRhID09IG51bGwpIHsgIC8qIGNhY2hlIG1pc3MgKi8KKyAgICAgICAgICAgIGRhdGEgPSBuZXcgU3RyaW5nWzFdW107CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuCisgICAgICAgICAgICAgICAgZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgbG9jYWxlKTsKKyAgICAgICAgICAgIGRhdGFbMF0gPSByYi5nZXRTdHJpbmdBcnJheSgiTnVtYmVyRWxlbWVudHMiKTsKKyAgICAgICAgICAgIC8qIHVwZGF0ZSBjYWNoZSAqLworICAgICAgICAgICAgY2FjaGVkTG9jYWxlRGF0YS5wdXQobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgfQorICAgICAgICBudW1iZXJFbGVtZW50cyA9IGRhdGFbMF07CisgICAgICAgIAorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS4KKyAgICAgICAgICAgIGdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIGxvY2FsZSk7CisgICAgICAgIAorICAgICAgICAvLyBUT0RPOiBEZXRlcm1pbmUgYWN0dWFsIGFuZCB2YWxpZCBsb2NhbGUgY29ycmVjdGx5LgorICAgICAgICBVTG9jYWxlIHVsb2MgPSByLmdldFVMb2NhbGUoKTsKKyAgICAgICAgc2V0TG9jYWxlKHVsb2MsIHVsb2MpOworCisgICAgLy8ge2RsZn0gY2xlYW4gdXAgYmVsb3cgbm93IHRoYXQgd2UgaGF2ZSBvdXIgb3duIHJlc291cmNlIGRhdGEKKyAgICAgICAgZGVjaW1hbFNlcGFyYXRvciA9IG51bWJlckVsZW1lbnRzWzBdLmNoYXJBdCgwKTsKKyAgICAgICAgZ3JvdXBpbmdTZXBhcmF0b3IgPSBudW1iZXJFbGVtZW50c1sxXS5jaGFyQXQoMCk7CisgICAgICAgIC8vIFRlbXBvcmFyeSBoYWNrIHRvIHN1cHBvcnQgb2xkIEpESyAxLjEgcmVzb3VyY2VzCisvLyAgICAgICAgcGF0dGVyblNlcGFyYXRvciA9IG51bWJlckVsZW1lbnRzWzJdLmxlbmd0aCgpID4gMCA/CisvLyAgICAgICAgICAgIG51bWJlckVsZW1lbnRzWzJdLmNoYXJBdCgwKSA6ICc7JzsKKyAgICAgICAgcGF0dGVyblNlcGFyYXRvciA9IG51bWJlckVsZW1lbnRzWzJdLmNoYXJBdCgwKTsKKyAgICAgICAgcGVyY2VudCA9IG51bWJlckVsZW1lbnRzWzNdLmNoYXJBdCgwKTsKKyAgICAgICAgemVyb0RpZ2l0ID0gbnVtYmVyRWxlbWVudHNbNF0uY2hhckF0KDApOyAvL2RpZmZlcmVudCBmb3IgQXJhYmljLGV0Yy4KKyAgICAgICAgZGlnaXQgPSBudW1iZXJFbGVtZW50c1s1XS5jaGFyQXQoMCk7CisgICAgICAgIG1pbnVzU2lnbiA9IG51bWJlckVsZW1lbnRzWzZdLmNoYXJBdCgwKTsKKyAgICAgICAgCisgICAgICAgIC8vIFRlbXBvcmFyeSBoYWNrIHRvIHN1cHBvcnQgSkRLIHZlcnNpb25zIGJlZm9yZSAxLjEuNiAoPykKKy8vICAgICAgICBleHBvbmVudFNlcGFyYXRvciA9IG51bWJlckVsZW1lbnRzLmxlbmd0aCA+PSA5ID8KKy8vICAgICAgICAgICAgbnVtYmVyRWxlbWVudHNbN10gOiBEZWNpbWFsRm9ybWF0LlBBVFRFUk5fRVhQT05FTlQ7CisvLyAgICAgICAgcGVyTWlsbCA9IG51bWJlckVsZW1lbnRzLmxlbmd0aCA+PSA5ID8KKy8vICAgICAgICAgICAgbnVtYmVyRWxlbWVudHNbOF0uY2hhckF0KDApIDogJ1x1MjAzMCc7CisvLyAgICAgICAgaW5maW5pdHkgID0gbnVtYmVyRWxlbWVudHMubGVuZ3RoID49IDEwID8KKy8vICAgICAgICAgICAgbnVtYmVyRWxlbWVudHNbOV0gOiAiXHUyMjFlIjsKKy8vICAgICAgICBOYU4gPSBudW1iZXJFbGVtZW50cy5sZW5ndGggPj0gMTEgPworLy8gICAgICAgICAgICBudW1iZXJFbGVtZW50c1sxMF0gOiAiXHVmZmZkIjsKKyAgICAgICAgZXhwb25lbnRTZXBhcmF0b3IgPSBudW1iZXJFbGVtZW50c1s3XTsKKyAgICAgICAgcGVyTWlsbCA9IG51bWJlckVsZW1lbnRzWzhdLmNoYXJBdCgwKTsKKyAgICAgICAgaW5maW5pdHkgPSBudW1iZXJFbGVtZW50c1s5XTsKKyAgICAgICAgTmFOID0gbnVtYmVyRWxlbWVudHNbMTBdOworICAgICAgICAKKyAgICAgICAgcGx1c1NpZ24gID1udW1iZXJFbGVtZW50c1sxMV0uY2hhckF0KDApOworICAgICAgICBwYWRFc2NhcGUgPSBEZWNpbWFsRm9ybWF0LlBBVFRFUk5fUEFEX0VTQ0FQRTsKKyAgICAgICAgc2lnRGlnaXQgID0gRGVjaW1hbEZvcm1hdC5QQVRURVJOX1NJR05JRklDQU5UX0RJR0lUOworICAgICAgICAKKyAgICAgICAgLy8gT2J0YWluIGN1cnJlbmN5IGRhdGEgZnJvbSB0aGUgY3VycmVuY3kgQVBJLiAgVGhpcyBpcyBzdHJpY3RseQorICAgICAgICAvLyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eTsgd2UgZG9uJ3QgdXNlIERlY2ltYWxGb3JtYXRTeW1ib2xzCisgICAgICAgIC8vIGZvciBjdXJyZW5jeSBkYXRhIGFueW1vcmUuCisgICAgICAgIFN0cmluZyBjdXJybmFtZSA9IG51bGw7CisgICAgICAgIGN1cnJlbmN5ID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgaWYgKGN1cnJlbmN5ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludGxDdXJyZW5jeVN5bWJvbCA9IGN1cnJlbmN5LmdldEN1cnJlbmN5Q29kZSgpOworICAgICAgICAgICAgYm9vbGVhbltdIGlzQ2hvaWNlRm9ybWF0ID0gbmV3IGJvb2xlYW5bMV07CisgICAgICAgICAgICBjdXJybmFtZSA9IGN1cnJlbmN5LmdldE5hbWUobG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VycmVuY3kuU1lNQk9MX05BTUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Nob2ljZUZvcm1hdCk7CisgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgQ2hvaWNlRm9ybWF0IGN1cnJlbmN5LCB0aGVuIGZvcm1hdCBhbgorICAgICAgICAgICAgLy8gYXJiaXRyYXJ5IHZhbHVlOyBwaWNrIHNvbWV0aGluZyAhPSAxOyBtb3JlIGNvbW1vbi4KKyAgICAgICAgICAgIGN1cnJlbmN5U3ltYm9sID0gaXNDaG9pY2VGb3JtYXRbMF0KKyAgICAgICAgICAgICAgICA/IG5ldyBDaG9pY2VGb3JtYXQoY3Vycm5hbWUpLmZvcm1hdCgyLjApCisgICAgICAgICAgICAgICAgOiBjdXJybmFtZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludGxDdXJyZW5jeVN5bWJvbCA9ICJYWFgiOworICAgICAgICAgICAgY3VycmVuY3lTeW1ib2wgPSAiXHUwMEE0IjsgLy8gJ09YJyBjdXJyZW5jeSBzeW1ib2wKKyAgICAgICAgfQorICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIGN1cnJlbmN5IGRlY2ltYWwsIHVzZSBpdC4KKyAgICAgICAgbW9uZXRhcnlTZXBhcmF0b3IgPQorICAgICAgICAgICAgbnVtYmVyRWxlbWVudHNbMF0uY2hhckF0KDApOworICAgICAgICAvL21vbmV0YXJ5U2VwYXJhdG9yID0gbnVtYmVyRWxlbWVudHNbMTFdLmNoYXJBdCgwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkIHRoZSBkZWZhdWx0IHNlcmlhbGl6YWJsZSBmaWVsZHMsIHRoZW4gaWYgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPgorICAgICAqIGlzIGxlc3MgdGhhbiAxLCBpbml0aWFsaXplIDxjb2RlPm1vbmV0YXJ5U2VwYXJhdG9yPC9jb2RlPiB0byBiZQorICAgICAqIHRoZSBzYW1lIGFzIDxjb2RlPmRlY2ltYWxTZXBhcmF0b3I8L2NvZGU+IGFuZCA8Y29kZT5leHBvbmVudGlhbDwvY29kZT4KKyAgICAgKiB0byBiZSAnRScuCisgICAgICogRmluYWxseSwgc2V0IHNlcmlhbFZlcnNpb25PblN0cmVhbSBiYWNrIHRvIHRoZSBtYXhpbXVtIGFsbG93ZWQgdmFsdWUgc28gdGhhdAorICAgICAqIGRlZmF1bHQgc2VyaWFsaXphdGlvbiB3aWxsIHdvcmsgcHJvcGVybHkgaWYgdGhpcyBvYmplY3QgaXMgc3RyZWFtZWQgb3V0IGFnYWluLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCByZWFkT2JqZWN0KE9iamVjdElucHV0U3RyZWFtIHN0cmVhbSkKKyAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICAvLyBUT0RPOiBpdCBsb29rcyB0byBtZSB7ZGxmfSB0aGF0IHRoZSBzZXJpYWxpemF0aW9uIGNvZGUgd2FzIG5ldmVyIHVwZGF0ZWQKKyAgICAgICAgLy8gdG8gaGFuZGxlIHRoZSBhY3R1YWwvdmFsaWQgdWxvY2FsZSBmaWVsZHMuCisKKyAgICAgICAgc3RyZWFtLmRlZmF1bHRSZWFkT2JqZWN0KCk7CisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSBkYXRhIGZvciB0aGVzZSBvbGQgc2VyaWFsaXplZCBmb3JtcyBhbnkgbW9yZQorICAgICAgICBpZiAoc2VyaWFsVmVyc2lvbk9uU3RyZWFtIDwgMSkgeworICAgICAgICAgICAgLy8gRGlkbid0IGhhdmUgbW9uZXRhcnlTZXBhcmF0b3Igb3IgZXhwb25lbnRpYWwgZmllbGQ7CisgICAgICAgICAgICAvLyB1c2UgZGVmYXVsdHMuCisgICAgICAgICAgICBtb25ldGFyeVNlcGFyYXRvciA9IGRlY2ltYWxTZXBhcmF0b3I7CisgICAgICAgICAgICBleHBvbmVudGlhbCA9ICdFJzsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2VyaWFsVmVyc2lvbk9uU3RyZWFtIDwgMikgeworICAgICAgICAgICAgcGFkRXNjYXBlID0gRGVjaW1hbEZvcm1hdC5QQVRURVJOX1BBRF9FU0NBUEU7CisgICAgICAgICAgICBwbHVzU2lnbiA9IERlY2ltYWxGb3JtYXQuUEFUVEVSTl9QTFVTX1NJR047CisgICAgICAgICAgICBleHBvbmVudFNlcGFyYXRvciA9IFN0cmluZy52YWx1ZU9mKGV4cG9uZW50aWFsKTsKKyAgICAgICAgICAgIC8vIEFsdGhvdWdoIHdlIHJlYWQgdGhlIGV4cG9uZW50aWFsIGZpZWxkIG9uIHN0cmVhbSB0byBjcmVhdGUgdGhlCisgICAgICAgICAgICAvLyBleHBvbmVudFNlcGFyYXRvciwgd2UgZG9uJ3QgZG8gdGhlIHJldmVyc2UsIHNpbmNlIHNjaWVudGlmaWMKKyAgICAgICAgICAgIC8vIG5vdGF0aW9uIGlzbid0IHN1cHBvcnRlZCBieSB0aGUgb2xkIGNsYXNzZXMsIGV2ZW4gdGhvdWdoIHRoZQorICAgICAgICAgICAgLy8gc3ltYm9sIGlzIHRoZXJlLgorICAgICAgICB9CisgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICBpZiAoc2VyaWFsVmVyc2lvbk9uU3RyZWFtIDwgMykgeworICAgICAgICAgICAgLy8gUmVzdXJyZWN0ZWQgb2JqZWN0cyBmcm9tIG9sZCBzdHJlYW1zIHdpbGwgaGF2ZSBubworICAgICAgICAgICAgLy8gbG9jYWxlLiAgVGhlcmUgaXMgbm8gMTAwJSBmaXggZm9yIHRoaXMuICBBCisgICAgICAgICAgICAvLyA5MCUgZml4IGlzIHRvIGNvbnN0cnVjdCBhIG1hcHBpbmcgb2YgZGF0YSBiYWNrIHRvCisgICAgICAgICAgICAvLyBsb2NhbGUsIHBlcmhhcHMgYSBoYXNoIG9mIGFsbCBvdXIgbWVtYmVycy4gIFRoaXMgaXMKKyAgICAgICAgICAgIC8vIGV4cGVuc2l2ZSBhbmQgZG9lc24ndCBzZWVtIHdvcnRoIGl0LgorICAgICAgICAgICAgbG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2VyaWFsVmVyc2lvbk9uU3RyZWFtIDwgNCkgeworICAgICAgICAgICAgLy8gdXNlIHNhbWUgZGVmYXVsdCBiZWhhdmlvciBhcyBmb3IgdmVyc2lvbnMgd2l0aCBubyBMb2NhbGUKKyAgICAgICAgICAgIHVsb2NhbGUgPSBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpOworICAgICAgICB9CisgICAgICAgIHNlcmlhbFZlcnNpb25PblN0cmVhbSA9IGN1cnJlbnRTZXJpYWxWZXJzaW9uOworCisJLy8gcmVjcmVhdGUKKwljdXJyZW5jeSA9IEN1cnJlbmN5LmdldEluc3RhbmNlKGludGxDdXJyZW5jeVN5bWJvbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgZm9yIHplcm8uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0WmVyb0RpZ2l0CisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICB6ZXJvRGlnaXQ7CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCBmb3IgdGhvdXNhbmRzIHNlcGFyYXRvci4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRHcm91cGluZ1NlcGFyYXRvcgorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgZ3JvdXBpbmdTZXBhcmF0b3I7CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCBmb3IgZGVjaW1hbCBzaWduLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldERlY2ltYWxTZXBhcmF0b3IKKyAgICAgKi8KKyAgICBwcml2YXRlICBjaGFyICAgIGRlY2ltYWxTZXBhcmF0b3I7CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCBmb3IgbWlsbGUgcGVyY2VudCBzaWduLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldFBlck1pbGwKKyAgICAgKi8KKyAgICBwcml2YXRlICBjaGFyICAgIHBlck1pbGw7CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCBmb3IgcGVyY2VudCBzaWduLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRQZXJjZW50CisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBwZXJjZW50OworCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgZm9yIGEgZGlnaXQgaW4gYSBwYXR0ZXJuLgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldERpZ2l0CisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBkaWdpdDsKKworICAgIC8qKgorICAgICAqIENoYXJhY3RlciB1c2VkIGZvciBhIHNpZ25pZmljYW50IGRpZ2l0IGluIGEgcGF0dGVybi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRTaWduaWZpY2FudERpZ2l0CisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBzaWdEaWdpdDsKKworICAgIC8qKgorICAgICAqIENoYXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBzdWJwYXR0ZXJucworICAgICAqIGluIGEgcGF0dGVybi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRQYXR0ZXJuU2VwYXJhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBwYXR0ZXJuU2VwYXJhdG9yOworCisgICAgLyoqCisgICAgICogQ2hhcmFjdGVyIHVzZWQgdG8gcmVwcmVzZW50IGluZmluaXR5LgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRJbmZpbml0eQorICAgICAqLworICAgIHByaXZhdGUgIFN0cmluZyAgaW5maW5pdHk7CisKKyAgICAvKioKKyAgICAgKiBDaGFyYWN0ZXIgdXNlZCB0byByZXByZXNlbnQgTmFOLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXROYU4KKyAgICAgKi8KKyAgICBwcml2YXRlICBTdHJpbmcgIE5hTjsKKworICAgIC8qKgorICAgICAqIENoYXJhY3RlciB1c2VkIHRvIHJlcHJlc2VudCBtaW51cyBzaWduLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNaW51c1NpZ24KKyAgICAgKi8KKyAgICBwcml2YXRlICBjaGFyICAgIG1pbnVzU2lnbjsKKworICAgIC8qKgorICAgICAqIFN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3ksIGUuZy4gIiQiLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRDdXJyZW5jeVN5bWJvbAorICAgICAqLworICAgIHByaXZhdGUgIFN0cmluZyAgY3VycmVuY3lTeW1ib2w7CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hdGlvbmFsIHN0cmluZyBkZW5vdGluZyB0aGUgbG9jYWwgY3VycmVuY3ksIGUuZy4gIlVTRCIuCisgICAgICogQHNlcmlhbAorICAgICAqIEBzZWUgI2dldEludGVybmF0aW9uYWxDdXJyZW5jeVN5bWJvbAorICAgICAqLworICAgIHByaXZhdGUgIFN0cmluZyAgaW50bEN1cnJlbmN5U3ltYm9sOworCisgICAgLyoqCisgICAgICogVGhlIGRlY2ltYWwgc2VwYXJhdG9yIHVzZWQgd2hlbiBmb3JtYXR0aW5nIGN1cnJlbmN5IHZhbHVlcy4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TW9uZXRhcnlEZWNpbWFsU2VwYXJhdG9yCisgICAgICovCisgICAgcHJpdmF0ZSAgY2hhciAgICBtb25ldGFyeVNlcGFyYXRvcjsgLy8gRmllbGQgbmV3IGluIEpESyAxLjEuNgorCisgICAgLyoqCisgICAgICogVGhlIGNoYXJhY3RlciB1c2VkIHRvIGRpc3Rpbmd1aXNoIHRoZSBleHBvbmVudCBpbiBhIG51bWJlciBmb3JtYXR0ZWQKKyAgICAgKiBpbiBleHBvbmVudGlhbCBub3RhdGlvbiwgZS5nLiAnRScgZm9yIGEgbnVtYmVyIHN1Y2ggYXMgIjEuMjNFNDUiLgorICAgICAqIDxwPgorICAgICAqIE5vdGUgdGhhdCB0aGlzIGZpZWxkIGhhcyBiZWVuIHN1cGVyc2VkZWQgYnkgPGNvZGU+ZXhwb25lbnRTZXBhcmF0b3I8L2NvZGU+LgorICAgICAqIEl0IGlzIHJldGFpbmVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorICAgICAqCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgIGNoYXIgICAgZXhwb25lbnRpYWw7ICAgICAgIC8vIEZpZWxkIG5ldyBpbiBKREsgMS4xLjYKKworICAgIC8qKgorICAgICAqIFRoZSBzdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSB0aGUgbWFudGlzc2EgZnJvbSB0aGUgZXhwb25lbnQuCisgICAgICogRXhhbXBsZXM6ICJ4MTBeIiBmb3IgMS4yM3gxMF40LCAiRSIgZm9yIDEuMjNFNC4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgdGhpcyBzdXBlcnNlZGVzIHRoZSA8Y29kZT5leHBvbmVudGlhbDwvY29kZT4gZmllbGQuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBleHBvbmVudFNlcGFyYXRvcjsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBUaGUgY2hhcmFjdGVyIHVzZWQgdG8gaW5kaWNhdGUgYSBwYWRkaW5nIGNoYXJhY3RlciBpbiBhIGZvcm1hdCwKKyAgICAgKiBlLmcuLCAnKicgaW4gYSBwYXR0ZXJuIHN1Y2ggYXMgIiQqXyMsIyMwLjAwIi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MKKyAgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgcGFkRXNjYXBlOworCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFRoZSBjaGFyYWN0ZXIgdXNlZCB0byBpbmRpY2F0ZSBhIHBsdXMgc2lnbi4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEFscGhhV29ya3MKKyAgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgcGx1c1NpZ247CisKKyAgICAvKioKKyAgICAgKiBUaGUgbG9jYWxlIGZvciB3aGljaCB0aGlzIG9iamVjdCB3YXMgY29uc3RydWN0ZWQuICBTZXQgdG8gdGhlCisgICAgICogZGVmYXVsdCBsb2NhbGUgZm9yIG9iamVjdHMgcmVzdXJyZWN0ZWQgZnJvbSBvbGQgc3RyZWFtcy4KKyAgICAgKiBAc2luY2UgSUNVIDIuMgorICAgICAqLworICAgIHByaXZhdGUgTG9jYWxlIGxvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSByZXF1ZXN0ZWQgVUxvY2FsZS4gIFdlIGtlZXAgdGhlIG9sZCBsb2NhbGUgZm9yIHNlcmlhbGl6YXRpb24gY29tcGF0aWJpbGl0eS4KKyAgICAgKiBAc2luY2UgSURVIDMuMgorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSB1bG9jYWxlOworCisgICAgLy8gUHJvY2xhaW0gSkRLIDEuMSBGQ1MgY29tcGF0aWJpbGl0eQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDU3NzI3OTYyNDMzOTczNTAzMDBMOworCisgICAgLy8gVGhlIGludGVybmFsIHNlcmlhbCB2ZXJzaW9uIHdoaWNoIHNheXMgd2hpY2ggdmVyc2lvbiB3YXMgd3JpdHRlbgorICAgIC8vIC0gMCAoZGVmYXVsdCkgZm9yIHZlcnNpb24gdXAgdG8gSkRLIDEuMS41CisgICAgLy8gLSAxIGZvciB2ZXJzaW9uIGZyb20gSkRLIDEuMS42LCB3aGljaCBpbmNsdWRlcyB0d28gbmV3IGZpZWxkczoKKyAgICAvLyAgICAgbW9uZXRhcnlTZXBhcmF0b3IgYW5kIGV4cG9uZW50aWFsLgorICAgIC8vIC0gMiBmb3IgdmVyc2lvbiBmcm9tIEFscGhhV29ya3MsIHdoaWNoIGluY2x1ZGVzIDMgbmV3IGZpZWxkczoKKyAgICAvLyAgICAgcGFkRXNjYXBlLCBleHBvbmVudFNlcGFyYXRvciwgYW5kIHBsdXNTaWduLgorICAgIC8vIC0gMyBmb3IgSUNVIDIuMiwgd2hpY2ggaW5jbHVkZXMgdGhlIGxvY2FsZSBmaWVsZAorICAgIC8vIC0gNCBmb3IgSUNVIDMuMiwgd2hpY2ggaW5jbHVkZXMgdGhlIFVMb2NhbGUgZmllbGQKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgY3VycmVudFNlcmlhbFZlcnNpb24gPSA0OworICAgIAorICAgIC8qKgorICAgICAqIERlc2NyaWJlcyB0aGUgdmVyc2lvbiBvZiA8Y29kZT5EZWNpbWFsRm9ybWF0U3ltYm9sczwvY29kZT4gcHJlc2VudCBvbiB0aGUgc3RyZWFtLgorICAgICAqIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj4wPC9iPiAob3IgdW5pbml0aWFsaXplZCk6IHZlcnNpb25zIHByaW9yIHRvIEpESyAxLjEuNi4KKyAgICAgKgorICAgICAqIDxsaT48Yj4xPC9iPjogVmVyc2lvbnMgd3JpdHRlbiBieSBKREsgMS4xLjYgb3IgbGF0ZXIsIHdoaWNoIGluY2x1ZGVzCisgICAgICogICAgICB0d28gbmV3IGZpZWxkczogPGNvZGU+bW9uZXRhcnlTZXBhcmF0b3I8L2NvZGU+IGFuZCA8Y29kZT5leHBvbmVudGlhbDwvY29kZT4uCisgICAgICogPGxpPjxiPjI8L2I+OiBWZXJzaW9uIGZvciBBbHBoYVdvcmtzLiAgQWRkcyBwYWRFc2NhcGUsIGV4cG9uZW50U2VwYXJhdG9yLAorICAgICAqICAgICAgYW5kIHBsdXNTaWduLgorICAgICAqIDwvdWw+CisgICAgICogV2hlbiBzdHJlYW1pbmcgb3V0IGEgPGNvZGU+RGVjaW1hbEZvcm1hdFN5bWJvbHM8L2NvZGU+LCB0aGUgbW9zdCByZWNlbnQgZm9ybWF0CisgICAgICogKGNvcnJlc3BvbmRpbmcgdG8gdGhlIGhpZ2hlc3QgYWxsb3dhYmxlIDxjb2RlPnNlcmlhbFZlcnNpb25PblN0cmVhbTwvY29kZT4pCisgICAgICogaXMgYWx3YXlzIHdyaXR0ZW4uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgc2VyaWFsVmVyc2lvbk9uU3RyZWFtID0gY3VycmVudFNlcmlhbFZlcnNpb247CisKKyAgICAvKioKKyAgICAgKiBjYWNoZSB0byBob2xkIHRoZSBOdW1iZXJFbGVtZW50cyBvZiBhIExvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBIYXNodGFibGUgY2FjaGVkTG9jYWxlRGF0YSA9IG5ldyBIYXNodGFibGUoMyk7CisgCisgICAgLy8gLS0tLS0tLS0gQkVHSU4gVUxvY2FsZSBib2lsZXJwbGF0ZSAtLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsb2NhbGUgdGhhdCB3YXMgdXNlZCB0byBjcmVhdGUgdGhpcyBvYmplY3QsIG9yIG51bGwuCisgICAgICogVGhpcyBtYXkgbWF5IGRpZmZlciBmcm9tIHRoZSBsb2NhbGUgcmVxdWVzdGVkIGF0IHRoZSB0aW1lIG9mCisgICAgICogdGhpcyBvYmplY3QncyBjcmVhdGlvbi4gIEZvciBleGFtcGxlLCBpZiBhbiBvYmplY3QgaXMgY3JlYXRlZAorICAgICAqIGZvciBsb2NhbGUgPHR0PmVuX1VTX0NBTElGT1JOSUE8L3R0PiwgdGhlIGFjdHVhbCBkYXRhIG1heSBiZQorICAgICAqIGRyYXduIGZyb20gPHR0PmVuPC90dD4gKHRoZSA8aT5hY3R1YWw8L2k+IGxvY2FsZSksIGFuZAorICAgICAqIDx0dD5lbl9VUzwvdHQ+IG1heSBiZSB0aGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgdGhhdCBleGlzdHMgKHRoZQorICAgICAqIDxpPnZhbGlkPC9pPiBsb2NhbGUpLgorICAgICAqCisgICAgICogPHA+Tm90ZTogVGhpcyBtZXRob2Qgd2lsbCBiZSBpbXBsZW1lbnRlZCBpbiBJQ1UgMy4wOyBJQ1UgMi44CisgICAgICogY29udGFpbnMgYSBwYXJ0aWFsIHByZXZpZXcgaW1wbGVtZW50YXRpb24uICBUaGUgKiA8aT5hY3R1YWw8L2k+CisgICAgICogbG9jYWxlIGlzIHJldHVybmVkIGNvcnJlY3RseSwgYnV0IHRoZSA8aT52YWxpZDwvaT4gbG9jYWxlIGlzCisgICAgICogbm90LCBpbiBtb3N0IGNhc2VzLgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgaW5mb3JtYXRpb24gcmVxdWVzdGVkLCBlaXRoZXIge0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRX0gb3Ige0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEV9LgorICAgICAqIEByZXR1cm4gdGhlIGluZm9ybWF0aW9uIHNwZWNpZmllZCBieSA8aT50eXBlPC9pPiwgb3IgbnVsbCBpZgorICAgICAqIHRoaXMgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YS4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVTG9jYWxlIGdldExvY2FsZShVTG9jYWxlLlR5cGUgdHlwZSkgeworICAgICAgICByZXR1cm4gdHlwZSA9PSBVTG9jYWxlLkFDVFVBTF9MT0NBTEUgPworICAgICAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgOiB0aGlzLnZhbGlkTG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYWxlcyB0aGF0IHdlcmUgdXNlZCB0byBjcmVhdGUgdGhpcworICAgICAqIG9iamVjdC4gIElmIHRoZSBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLAorICAgICAqIGJvdGggYXJndW1lbnRzIHNob3VsZCBiZSBzZXQgdG8gbnVsbC4gIE90aGVyd2lzZSwgbmVpdGhlcgorICAgICAqIHNob3VsZCBiZSBudWxsLiAgVGhlIGFjdHVhbCBsb2NhbGUgbXVzdCBiZSBhdCB0aGUgc2FtZSBsZXZlbCBvcgorICAgICAqIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLiAgVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQKKyAgICAgKiBmb3IgdXNlIGJ5IGZhY3RvcmllcyBvciBvdGhlciBlbnRpdGllcyB0aGF0IGNyZWF0ZSBvYmplY3RzIG9mCisgICAgICogdGhpcyBjbGFzcy4KKyAgICAgKiBAcGFyYW0gdmFsaWQgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlCisgICAgICogZGF0YSwgb3IgbnVsbAorICAgICAqIEBwYXJhbSBhY3R1YWwgdGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcworICAgICAqIG9iamVjdCwgb3IgbnVsbAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0TG9jYWxlKFVMb2NhbGUgdmFsaWQsIFVMb2NhbGUgYWN0dWFsKSB7CisgICAgICAgIC8vIENoYW5nZSB0aGUgZm9sbG93aW5nIHRvIGFuIGFzc2VydGlvbiBsYXRlcgorICAgICAgICBpZiAoKHZhbGlkID09IG51bGwpICE9IChhY3R1YWwgPT0gbnVsbCkpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgICAgIC8vIEFub3RoZXIgY2hlY2sgd2UgY291bGQgZG8gaXMgdGhhdCB0aGUgYWN0dWFsIGxvY2FsZSBpcyBhdAorICAgICAgICAvLyB0aGUgc2FtZSBsZXZlbCBvciBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4KKyAgICAgICAgdGhpcy52YWxpZExvY2FsZSA9IHZhbGlkOworICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA9IGFjdHVhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UgZGF0YSwgb3IgbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSB2YWxpZExvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMgb2JqZWN0LCBvcgorICAgICAqIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgYWN0dWFsTG9jYWxlOworCisgICAgLy8gbm90IHNlcmlhbGl6ZWQsIHJlY29uc3RydWN0ZWQgZnJvbSBpbnRsQ3VycmVuY3lDb2RlCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgQ3VycmVuY3kgY3VycmVuY3k7CisKKyAgICAvLyAtLS0tLS0tLSBFTkQgVUxvY2FsZSBib2lsZXJwbGF0ZSAtLS0tLS0tLQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjb21wRGF0YS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGVjb21wRGF0YS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZhYjdjNDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EZWNvbXBEYXRhLmphdmEKQEAgLTAsMCArMSw3NDUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqID4gVEhJUyBGSUxFIFdBUyBNQUNISU5FIEdFTkVSQVRFRCA8CisqID4gICAgICAgRE8gTk9UIEVESVQgQlkgSEFORCAgICAgICA8CisqID4gICAgICBSVU4gVE9PTCBUTyBSRUdFTkVSQVRFICAgICA8CisqIFRvb2w6IGNvbS5pYm0uaWN1LnRleHQuTm9ybWFsaXplcgorKiBDcmVhdGlvbiBkYXRlOiBUdWUgSnVsIDE4IDExOjA1OjI4IFBEVCAyMDAwCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC4qOworCitjbGFzcyBEZWNvbXBEYXRhIHsKKyAgICBzdGF0aWMgZmluYWwgaW50IE1BWF9DQU5PTklDQUwgPSAyMTc1NDsKKyAgICBzdGF0aWMgZmluYWwgaW50IE1BWF9DT01QQVQgPSAxMTE3NzsKKyAgICBzdGF0aWMgZmluYWwgaW50IERFQ09NUF9NQVNLID0gMzI3Njc7CisgICAgc3RhdGljIGZpbmFsIGludCBERUNPTVBfUkVDVVJTRSA9IDMyNzY4OworICAgIHN0YXRpYyBmaW5hbCBzaG9ydCBCQVNFID0gMDsKKworICAgIHN0YXRpYyBmaW5hbCBDb21wYWN0Q2hhckFycmF5IG9mZnNldHMgPSBuZXcgQ29tcGFjdENoYXJBcnJheSgKKyAgICAgICAgIlwwMDBcdTA4MDBcdUE1QTVcMDA1XDAwMCBAYFx1MDA4MFx1MDBBMFx1MDBDMFx1MDBFMFwwMDBcdTAxMDBcdTAxMjBcdTAxNDAiKworICAgICAgICAiXHUwMTYwXHUwMTgwXDAwMFwwMDBcMDAwXHUwMUEwXHUwMUMwXHUwMUUwXDAwMFwwMDBcdTAyMDBcdTAyMjBcdTAyNDBcdTAyNjAiKworICAgICAgICAiXHUwMjgwXHUwMkEwXHUwMkMwXHUwMkUwXHUwMzAwXHUwMzIwXDAwMFwwMDBcdTAzNDBcdTAzNjBcdUE1QTVcMDA0XDAwMCIrCisgICAgICAgICJcdTAzODBcdUE1QTVcMDA0XDAwMFx1MDNBMFwwMDBcdTAzQzBcMDAwXDAwMFx1MDNFMFx1QTVBNVwwMjJcMDAwXHUwNDAwIisKKyAgICAgICAgIlx1MDQyMFwwMDBcMDAwXDAwMFx1MDQ0MFwwMDBcMDAwXHUwNDYwXHUwNDgwXHVBNUE1XDAwN1wwMDBcdTA0QTBcMDAwXHUwNEMwIisKKyAgICAgICAgIlwwMDBcdTA0RTBcMDAwXDAwMFwwMDBcdTA1MDBcMDAwXDAwMFwwMDBcdTA1MjBcMDAwXDAwMFwwMDBcdTA1NDBcMDAwXDAwMCIrCisgICAgICAgICJcMDAwXHUwNTYwXDAwMFwwMDBcdTA1ODBcMDAwXDAwMFwwMDBcdTA1QTBcdTA1QzBcMDAwXHUwNUUwXDAwMFx1MDYwMFx1MDYyMCIrCisgICAgICAgICJcdTA2NDBcdTA2NjBcMDAwXDAwMFwwMDBcdTA2ODBcdUE1QTVuXDAwMFx1MDZBMFx1MDZDMFx1MDZFMFx1MDcwMFx1MDcyMCIrCisgICAgICAgICJcdTA3NDBcdTA3NjBcdTA3ODBcdTA3QTBcdTA3QzBcdTA3RTBcdTA4MDBcdTA4MjBcdTA4NDBcdTA4NjBcdTA4ODBcdTA4QTAiKworICAgICAgICAiXHUwOEMwXHUwOEUwXHUwOTAwXHUwOTIwXHUwOTQwXDAwMFwwMDBcdTA5NjBcdTA5ODBcdTA5QTBcdTA5QzBcdTA5RTBcdTBBMDAiKworICAgICAgICAiXHUwQTIwXDAwMFx1MEE0MFx1MEE2MFx1MEE4MFx1MEFBMFx1MEFDMFx1MEFFMFwwMDBcdTBCMDBcMDAwXHUwQjIwXHVBNUE1IisKKyAgICAgICAgIlwwMTFcMDAwXHUwQjQwXHUwQjYwXHUwQjgwXHUwQkEwXHUwQkMwXHVBNUE1TFwwMDBcdTBCRTBcMDAwXDAwMFx1MEMwMCIrCisgICAgICAgICJcdTBDMjBcdTBDNDBcdTBDNjBcdTBDODBcdTBDQTBcdTBDQzBcdTBDRTBcMDAwXHUwRDAwXHUwRDIwXHUwRDQwXHUwRDYwIisKKyAgICAgICAgIlx1MEQ4MFx1MERBMFx1MERDMFx1MERFMFwwMDBcdTBFMDBcdTBFMjBcdTBFNDBcdTBFNjBcMDAwXDAwMFwwMDBcdTBFODAiKworICAgICAgICAiXHUwRUEwXHUwRUMwXHUwRUUwXHUwRjAwXHUwRjIwXHUwRjQwXHUwRjYwXHUwRjgwXHUwRkEwXHUwRkMwXHUwRkUwXHUxMDAwIisKKyAgICAgICAgIlx1MTAyMFx1MTA0MFx1MTA2MFx1QTVBNVx1MDYyOFwwMDBcdTEwODBcdTEwQTBcdTEwQzBcdTEwRTBcdTExMDBcdTExMjAiKworICAgICAgICAiXHUxMTQwXHUxMTYwXHUxMTgwXHUxMUEwXHVBNUE1XDAwNlwwMDBcdTExQzBcdTExRTBcdTEyMDBcdTEyMjBcdTEyNDBcdTEyNjAiKworICAgICAgICAiXHUxMjgwXHUxMkEwXHUxMkMwXHUxMkUwXHUxMzAwXHUxMzIwXHUxMzQwXHUxMzYwXHUxMzgwXHUxM0EwXHUxM0MwXHUxM0UwIisKKyAgICAgICAgIlx1MTQwMFx1MTQyMFx1MTQ0MFx1MTQ2MFx1MTQ4MFx1MTRBMFwwMDBcdTE0QzBcdTE0RTBcdTE1MDBcdTE1MjBcdTE1NDAiKworICAgICAgICAiXHUxNTYwXHUxNTgwXHUxNUEwXHUxNUMwXHUxNUUwXHUxNjAwXHUxNjIwXHUxNjQwXHUxNjYwXHUxNjgwIgorICAgICAgICAsCisgICAgICAgICJcMDAwXHUxNkEwXHVBNUE1IFwwMDBcMDA1XHVBNUE1XDAwN1wwMDBcMDEyXDAwMFwwMjFcdUE1QTVcMDA0XDAwMFwwMjYiKworICAgICAgICAiXDAwMFwwMDBcMDM1ISYtXDAwMFwwMDAyOT1cMDAwQ09bXDAwMFx1MkJBRVx1MkJCNlx1MkJCRVx1MkJDNlx1MkJDRVx1MkJENiIrCisgICAgICAgICJcMDAwXHUyQkRFXHUyQkU2XHUyQkVFXHUyQkY2XHUyQkZFXHUyQzA2XHUyQzBFXHUyQzE2XHUyQzFFXDAwMFx1MkMyNlx1MkMyRSIrCisgICAgICAgICJcdTJDMzZcdTJDM0VcdTJDNDZcdTJDNEVcMDAwXDAwMFx1MkM1Nlx1MkM1RVx1MkM2Nlx1MkM2RVx1MkM3NlwwMDBcMDAwIisKKyAgICAgICAgIlx1MkM3RVx1MkM4Nlx1MkM4RVx1MkM5Nlx1MkM5RVx1MkNBNlwwMDBcdTJDQUVcdTJDQjZcdTJDQkVcdTJDQzZcdTJDQ0UiKworICAgICAgICAiXHUyQ0Q2XHUyQ0RFXHUyQ0U2XHUyQ0VFXDAwMFx1MkNGNlx1MkNGRVx1MkQwNlx1MkQwRVx1MkQxNlx1MkQxRVwwMDBcMDAwIisKKyAgICAgICAgIlx1MkQyNlx1MkQyRVx1MkQzNlx1MkQzRVx1MkQ0NlwwMDBcdTJENEVcdTJENTZcdTJENUVcdTJENjZcdTJENkVcdTJENzYiKworICAgICAgICAiXHUyRDdFXHUyRDg2XHUyRDhFXHUyRDk2XHUyRDlFXHUyREE2XHUyREFFXHUyREI2XHUyREJFXHUyREM2XHUyRENFXDAwMCIrCisgICAgICAgICJcMDAwXHUyREQ2XHUyRERFXHUyREU2XHUyREVFXHUyREY2XHUyREZFXHUyRTA2XHUyRTBFXHUyRTE2XHUyRTFFXHUyRTI2IisKKyAgICAgICAgIlx1MkUyRVx1MkUzNlx1MkUzRVx1MkU0Nlx1MkU0RVx1MkU1Nlx1MkU1RVx1MkU2Nlx1MkU2RVwwMDBcMDAwXHUyRTc2XHUyRTdFIisKKyAgICAgICAgIlx1MkU4Nlx1MkU4RVx1MkU5Nlx1MkU5RVx1MkVBNlx1MkVBRVx1MkVCNlwwMDBmblx1MkVCRVx1MkVDNlx1MkVDRVx1MkVENiIrCisgICAgICAgICJcMDAwXHUyRURFXHUyRUU2XHUyRUVFXHUyRUY2XHUyRUZFXHUyRjA2dn5cMDAwXDAwMFx1MkYwRVx1MkYxNlx1MkYxRVx1MkYyNiIrCisgICAgICAgICJcdTJGMkVcdTJGMzZcdTAwODZcMDAwXDAwMFx1MkYzRVx1MkY0Nlx1MkY0RVx1MkY1Nlx1MkY1RVx1MkY2NlwwMDBcMDAwIisKKyAgICAgICAgIlx1MkY2RVx1MkY3Nlx1MkY3RVx1MkY4Nlx1MkY4RVx1MkY5Nlx1MkY5RVx1MkZBNlx1MkZBRVx1MkZCNlx1MkZCRVx1MkZDNiIrCisgICAgICAgICJcdTJGQ0VcdTJGRDZcdTJGREVcdTJGRTZcdTJGRUVcdTJGRjZcMDAwXDAwMFx1MkZGRVx1MzAwNlx1MzAwRVx1MzAxNlx1MzAxRSIrCisgICAgICAgICJcdTMwMjZcdTMwMkVcdTMwMzZcdTMwM0VcdTMwNDZcdTMwNEVcdTMwNTZcdTMwNUVcdTMwNjZcdTMwNkVcdTMwNzZcdTMwN0UiKworICAgICAgICAiXHUzMDg2XHUzMDhFXHUzMDk2XHUzMDlFXHUzMEE2XHUzMEFFXHUwMDhEXHUzMEI2XHUzMEJFXHVBNUE1XDAxNVwwMDBcdTMwQzYiKworICAgICAgICAiXHUzMENFXHVBNUE1XDAyM1wwMDBcdTAwOTNcdTAwOUZcdTAwQUJcdTAwQjZcdTAwQkVcdTAwQzZcdTAwQ0VcdTAwRDZcdTAwREUiKworICAgICAgICAiXHUzMEQ2XHUzMERFXHUzMEU2XHUzMEVFXHUzMEY2XHUzMEZFXHUzMTA2XHUzMTBFXHUzMTE3XHUzMTIzXHUzMTJGXHUzMTNCIisKKyAgICAgICAgIlx1MzE0N1x1MzE1M1x1MzE1Rlx1MzE2QlwwMDBcdTMxNzdcdTMxODNcdTMxOEZcdTMxOUJcdTMxQTZcdTMxQUVcMDAwXDAwMCIrCisgICAgICAgICJcdTMxQjZcdTMxQkVcdTMxQzZcdTMxQ0VcdTMxRDZcdTMxREVcdTMxRTdcdTMxRjNcdTMxRkVcdTMyMDZcdTMyMEVcdTAwOTIiKworICAgICAgICAiXHUwMDlFXHUwMEFBXHUzMjE2XHUzMjFFXDAwMFwwMDBcdTMyMjZcdTMyMkVcdTMyMzdcdTMyNDNcdTMyNEVcdTMyNTZcdTMyNUUiKworICAgICAgICAiXHUzMjY2XHUzMjZFXHUzMjc2XHUzMjdFXHUzMjg2XHUzMjhFXHUzMjk2XHUzMjlFXHUzMkE2XHUzMkFFXHUzMkI2XHUzMkJFIisKKyAgICAgICAgIlx1MzJDNlx1MzJDRVx1MzJENlx1MzJERVx1MzJFNlx1MzJFRVx1MzJGNlx1MzJGRVx1MzMwNlx1MzMwRVx1MzMxNlx1MzMxRSIrCisgICAgICAgICJcdTMzMjZcdTMzMkVcdTMzMzZcdTMzM0VcdTMzNDZcMDAwXDAwMFx1MzM0RVx1MzM1Nlx1QTVBNVwwMDZcMDAwXHUzMzVFIisKKyAgICAgICAgIlx1MzM2Nlx1MzM2RVx1MzM3Nlx1MzM3Rlx1MzM4Qlx1MzM5N1x1MzNBM1x1MzNBRVx1MzNCNlx1MzNCRlx1MzNDQlx1MzNENiIrCisgICAgICAgICJcdTMzREVcdUE1QTVcMDM0XDAwMFx1MDBFNVx1MDBFOXFcdTAwRURcdTAwRjFcdTAwRjVcdTAwRjlcdTAwRkRcdTAxMDEiKworICAgICAgICAiXHVBNUE1XDAzN1wwMDBcdTAxMDZcdTAxMEVcdTAxMTZcdTAxMUVcdTAxMjZcdTAxMkVcMDAwXDAwMFx1MDEzNX1cdTAwOEQiKworICAgICAgICAiXHUwMTM5XHUwMTNEXHVBNUE1XDAzM1wwMDBcdTMzRTVcdTMzRTlcMDAwXHUzM0VEXHUzM0YyXHVBNUE1L1wwMDBcdTMzRjkiKworICAgICAgICAiXHVBNUE1XDAwNVwwMDBcdTAxNDJcMDAwXDAwMFwwMDBcdTMzRkRcdUE1QTVcMDA1XDAwMCZcdUI0MDJcdTM0MEFcdTM0MTEiKworICAgICAgICAiXHUzNDE2XHUzNDFFXHUzNDI2XDAwMFx1MzQyRVwwMDBcdTM0MzZcdTM0M0VcdTM0NDdcdUE1QTVcMDMxXDAwMFx1MzQ1MiIrCisgICAgICAgICJcdTM0NUFcdTM0NjJcdTM0NkFcdTM0NzJcdTM0N0FcdTM0ODNcdUE1QTVcMDMxXDAwMFx1MzQ4RVx1MzQ5Nlx1MzQ5RVx1MzRBNiIrCisgICAgICAgICJcdTM0QUVcMDAwXHUwMTQ5XHUwMTREXHUwMTUxXHVCNEI2XHVCNEJFXHUwMTU1XHUwMTU5XHVBNUE1XDAzMVwwMDBcdTAxNUQiKworICAgICAgICAiXHUwMTYxXHUwMTY1XHVBNUE1XDAxNVwwMDBcdTM0QzZcdTM0Q0VcMDAwXHUzNEQ2XDAwMFwwMDBcMDAwXHUzNERFXHVBNUE1IisKKyAgICAgICAgIlwwMDRcMDAwXHUzNEU2XHUzNEVFXHUzNEY2XHVBNUE1XDAxMlwwMDBcdTM0RkVcdUE1QTVcMDM3XDAwMFx1MzUwNlx1QTVBNSIrCisgICAgICAgICJcMDI2XDAwMFx1MzUwRVx1MzUxNlwwMDBcdTM1MUVcMDAwXDAwMFwwMDBcdTM1MjZcdUE1QTVcMDA0XDAwMFx1MzUyRVx1MzUzNiIrCisgICAgICAgICJcdTM1M0VcdUE1QTVcMDI3XDAwMFx1MzU0Nlx1MzU0RVx1QTVBNVwwMTFcMDAwXHUzNTU2XHUzNTVFXHVBNUE1XDAxNVwwMDAiKworICAgICAgICAiXHUzNTY2XHUzNTZFXHUzNTc2XHUzNTdFXDAwMFwwMDBcdTM1ODZcdTM1OEVcMDAwXDAwMFx1MzU5Nlx1MzU5RVx1MzVBNiIrCisgICAgICAgICJcdTM1QUVcdTM1QjZcdTM1QkVcMDAwXDAwMFx1MzVDNlx1MzVDRVx1MzVENlx1MzVERVx1MzVFNlx1MzVFRVwwMDBcMDAwIisKKyAgICAgICAgIlx1MzVGNlx1MzVGRVx1MzYwNlx1MzYwRVx1MzYxNlx1MzYxRVx1MzYyNlx1MzYyRVx1MzYzNlx1MzYzRVx1MzY0Nlx1MzY0RSIrCisgICAgICAgICJcMDAwXDAwMFx1MzY1Nlx1MzY1RVx1QTVBNVwwMTVcMDAwXHUwMTZBXHVBNUE1XDAzMlwwMDBcdTM2NjZcdTM2NkVcdTM2NzYiKworICAgICAgICAiXHUzNjdFXHUzNjg2XHVBNUE1LlwwMDBcdTAxNzJcdTAxN0FcdTAxODJcdTAxOEFcdUE1QTVcMDA3XDAwMFx1MzY4RVwwMDAiKworICAgICAgICAiXHUzNjk2XHVBNUE1XDAyMFwwMDBcdTM2OUVcdUE1QTVcMDI1XDAwMFx1MzZBNlx1QTVBNVwwMDdcMDAwXHUzNkFFXDAwMCIrCisgICAgICAgICJcMDAwXHUzNkI2XHVBNUE1I1wwMDBcdTM2QkVcdTM2QzZcdTM2Q0VcdTM2RDZcdTM2REVcdTM2RTZcdTM2RUVcdTM2RjYiKworICAgICAgICAiXHVBNUE1XDAxM1wwMDBcdTM2RkVcdTM3MDZcdUE1QTVcMDE3XDAwMFx1MzcwRVx1MzcxNlwwMDBcdTM3MUVcdUE1QTVcMDIzIisKKyAgICAgICAgIlwwMDBcdTM3MjZcMDAwXDAwMFx1MzcyRVx1QTVBNVwwNDJcMDAwXHUzNzM2XHUzNzNFXHUzNzQ2XDAwMFwwMDBcdTM3NEUiKworICAgICAgICAiXHVBNUE1XDAxMVwwMDBcdTM3NTZcMDAwXDAwMFx1Mzc1RVx1Mzc2Nlx1QTVBNVwwMTdcMDAwXHUzNzZFXHUzNzc2XHVBNUE1IisKKyAgICAgICAgIlwwMjZcMDAwXHUzNzdFXHVBNUE1XDAyNVwwMDBcdTM3ODZcdTM3OEVcdTM3OTZcdUE1QTVcMDMzXDAwMFx1Mzc5RVx1QTVBNSIrCisgICAgICAgICJcMDI3XDAwMFx1MzdBNlx1QTVBNVwwMDZcMDAwXHUzN0FFXHUzN0I2XDAwMFx1MzdCRVx1MzdDN1x1QTVBNVwwMzZcMDAwIisKKyAgICAgICAgIlx1MzdEMlx1MzdEQVx1MzdFMlx1QTVBNS1cMDAwXHUzN0VBXDAwMFx1MzdGMlx1MzdGQlx1MzgwNlx1QTVBNVwwMjRcMDAwIisKKyAgICAgICAgIlx1MDE5Mlx1QTVBNVwwMzdcMDAwXHUwMTlBXHVBNUE1KFwwMDBcdTAxQTJcdTAxQUFcdUE1QTVcMDE2XDAwMFx1MDFCMSIrCisgICAgICAgICJcdUE1QTVcMDI2XDAwMFx1MzgwRVx1QTVBNVwwMTFcMDAwXHUzODE2XHVBNUE1XDAwNFwwMDBcdTM4MUVcdUE1QTVcMDA0IisKKyAgICAgICAgIlwwMDBcdTM4MjZcdUE1QTVcMDA0XDAwMFx1MzgyRVx1QTVBNVwwMTRcMDAwXHUzODM2XHVBNUE1XDAxMVwwMDBcdTM4M0UiKworICAgICAgICAiXDAwMFx1Mzg0Nlx1Mzg0RVx1MDFCN1x1Mzg1Nlx1MDFDM1x1QTVBNVwwMDdcMDAwXHUzODVFXHVBNUE1XDAyMVwwMDBcdTM4NjYiKworICAgICAgICAiXHVBNUE1XDAxMVwwMDBcdTM4NkVcdUE1QTVcMDA0XDAwMFx1Mzg3Nlx1QTVBNVwwMDRcMDAwXHUzODdFXHVBNUE1XDAwNCIrCisgICAgICAgICJcMDAwXHUzODg2XHVBNUE1XDAxNFwwMDBcdTM4OEVcdUE1QTVcMDE0XDAwMFx1Mzg5Nlx1QTVBNVwwMzFcMDAwXHUzODlFIisKKyAgICAgICAgIlx1MzhBNlx1MzhBRVx1MzhCNlx1MzhCRVx1MzhDNlx1MzhDRVx1MzhENlx1MzhERlx1MzhFQlx1MzhGNlx1MzhGRVx1MzkwNiIrCisgICAgICAgICJcdTM5MEVcdTM5MTZcdTM5MUVcdTM5MjZcdTM5MkVcdTM5MzZcdTM5M0VcdTM5NDdcdTM5NTNcdTM5NUZcdTM5NkJcdTM5NzYiKworICAgICAgICAiXHUzOTdFXHUzOTg2XHUzOThFXHUzOTk3XHUzOUEzXHUzOUFFXHUzOUI2XHUzOUJFXHUzOUM2XHUzOUNFXHUzOUQ2XHUzOURFIisKKyAgICAgICAgIlx1MzlFNlx1MzlFRVx1MzlGNlx1MzlGRVx1M0EwNlx1M0EwRVx1M0ExNlx1M0ExRVx1M0EyNlx1M0EyRlx1M0EzQlx1M0E0NiIrCisgICAgICAgICJcdTNBNEVcdTNBNTZcdTNBNUVcdTNBNjZcdTNBNkVcdTNBNzZcdTNBN0VcdTNBODdcdTNBOTNcdTNBOUVcdTNBQTZcdTNBQUUiKworICAgICAgICAiXHUzQUI2XHUzQUJFXHUzQUM2XHUzQUNFXHUzQUQ2XHUzQURFXHUzQUU2XHUzQUVFXHUzQUY2XHUzQUZFXHUzQjA2XHUzQjBFIisKKyAgICAgICAgIlx1M0IxNlx1M0IxRVx1M0IyNlx1M0IyRlx1M0IzQlx1M0I0N1x1M0I1M1x1M0I1Rlx1M0I2Qlx1M0I3N1x1M0I4M1x1M0I4RSIrCisgICAgICAgICJcdTNCOTZcdTNCOUVcdTNCQTZcdTNCQUVcdTNCQjZcdTNCQkVcdTNCQzZcdTNCQ0ZcdTNCREJcdTNCRTZcdTNCRUVcdTNCRjYiKworICAgICAgICAiXHUzQkZFXHUzQzA2XHUzQzBFXHUzQzE3XHUzQzIzXHUzQzJGXHUzQzNCXHUzQzQ3XHUzQzUzXHUzQzVFXHUzQzY2XHUzQzZFIisKKyAgICAgICAgIlx1M0M3Nlx1M0M3RVx1M0M4Nlx1M0M4RVx1M0M5Nlx1M0M5RVx1M0NBNlx1M0NBRVx1M0NCNlx1M0NCRVx1M0NDNlx1M0NDRiIrCisgICAgICAgICJcdTNDREJcdTNDRTdcdTNDRjNcdTNDRkVcdTNEMDZcdTNEMEVcdTNEMTZcdTNEMUVcdTNEMjZcdTNEMkVcdTNEMzZcdTNEM0UiKworICAgICAgICAiXHUzRDQ2XHUzRDRFXHUzRDU2XHUzRDVFXHUzRDY2XHUzRDZFXHUzRDc2XHUzRDdFXHUzRDg2XHUzRDhFXHUzRDk2XHUzRDlFIisKKyAgICAgICAgIlx1M0RBNlx1M0RBRVx1M0RCNlx1M0RCRVx1M0RDNlx1M0RDRVx1M0RENlx1M0RERVx1M0RFNlx1MDFDRVx1QkRFRVx1QTVBNSIrCisgICAgICAgICJcMDA0XDAwMFx1M0RGNlx1M0RGRVx1M0UwNlx1M0UwRVx1M0UxN1x1M0UyM1x1M0UyRlx1M0UzQlx1M0U0N1x1M0U1M1x1M0U1RiIrCisgICAgICAgICJcdTNFNkJcdTNFNzdcdTNFODNcdTNFOEZcdTNFOUJcdTNFQTdcdTNFQjNcdTNFQkZcdTNFQ0JcdTNFRDdcdTNFRTNcdTNFRUYiKworICAgICAgICAiXHUzRUZCXHUzRjA2XHUzRjBFXHUzRjE2XHUzRjFFXHUzRjI2XHUzRjJFXHUzRjM3XHUzRjQzXHUzRjRGXHUzRjVCXHUzRjY3IisKKyAgICAgICAgIlx1M0Y3M1x1M0Y3Rlx1M0Y4Qlx1M0Y5N1x1M0ZBM1x1M0ZBRVx1M0ZCNlx1M0ZCRVx1M0ZDNlx1M0ZDRVx1M0ZENlx1M0ZERSIrCisgICAgICAgICJcdTNGRTZcdTNGRUZcdTNGRkJcdTQwMDdcdTQwMTNcdTQwMUZcdTQwMkJcdTQwMzdcdTQwNDNcdTQwNEZcdTQwNUJcdTQwNjciKworICAgICAgICAiXHU0MDczXHU0MDdGXHU0MDhCXHU0MDk3XHU0MEEzXHU0MEFGXHU0MEJCXHU0MEM3XHU0MEQzXHU0MERFXHU0MEU2XHU0MEVFIisKKyAgICAgICAgIlx1NDBGNlx1NDBGRlx1NDEwQlx1NDExN1x1NDEyM1x1NDEyRlx1NDEzQlx1NDE0N1x1NDE1M1x1NDE1Rlx1NDE2Qlx1NDE3NiIrCisgICAgICAgICJcdTQxN0VcdTQxODZcdTQxOEVcdTQxOTZcdTQxOUVcdTQxQTZcdTQxQUVcdUE1QTVcMDA2XDAwMFx1NDFCNlx1NDFCRVx1NDFDNyIrCisgICAgICAgICJcdTQxRDNcdTQxREZcdTQxRUJcdTQxRjdcdTQyMDNcdTQyMEVcdTQyMTZcdTQyMUZcdTQyMkJcdTQyMzdcdTQyNDNcdTQyNEYiKworICAgICAgICAiXHU0MjVCXHU0MjY2XHU0MjZFXHU0Mjc3XHU0MjgzXHU0MjhGXHU0MjlCXDAwMFwwMDBcdTQyQTZcdTQyQUVcdTQyQjdcdTQyQzMiKworICAgICAgICAiXHU0MkNGXHU0MkRCXDAwMFwwMDBcdTQyRTZcdTQyRUVcdTQyRjdcdTQzMDNcdTQzMEZcdTQzMUJcdTQzMjdcdTQzMzNcdTQzM0UiKworICAgICAgICAiXHU0MzQ2XHU0MzRGXHU0MzVCXHU0MzY3XHU0MzczXHU0MzdGXHU0MzhCXHU0Mzk2XHU0MzlFXHU0M0E3XHU0M0IzXHU0M0JGIisKKyAgICAgICAgIlx1NDNDQlx1NDNEN1x1NDNFM1x1NDNFRVx1NDNGNlx1NDNGRlx1NDQwQlx1NDQxN1x1NDQyM1x1NDQyRlx1NDQzQlx1NDQ0NiIrCisgICAgICAgICJcdTQ0NEVcdTQ0NTdcdTQ0NjNcdTQ0NkZcdTQ0N0JcMDAwXDAwMFx1NDQ4Nlx1NDQ4RVx1NDQ5N1x1NDRBM1x1NDRBRlx1NDRCQiIrCisgICAgICAgICJcMDAwXDAwMFx1NDRDNlx1NDRDRVx1NDREN1x1NDRFM1x1NDRFRlx1NDRGQlx1NDUwN1x1NDUxM1wwMDBcdTQ1MUVcMDAwIisKKyAgICAgICAgIlx1NDUyN1wwMDBcdTQ1MzNcMDAwXHU0NTNGXHU0NTRBXHU0NTUyXHU0NTVCXHU0NTY3XHU0NTczXHU0NTdGXHU0NThCXHU0NTk3IisKKyAgICAgICAgIlx1NDVBMlx1NDVBQVx1NDVCM1x1NDVCRlx1NDVDQlx1NDVEN1x1NDVFM1x1NDVFRlx1NDVGQVx1NDYwMlx1NDYwQVx1NDYxMiIrCisgICAgICAgICJcdTQ2MUFcdTQ2MjJcdTQ2MkFcdTQ2MzJcdTQ2M0FcdTQ2NDJcdTQ2NEFcdTQ2NTJcdTQ2NUFcdTQ2NjJcMDAwXDAwMFx1NDY2QiIrCisgICAgICAgICJcdTQ2NzdcdTQ2ODBcdTQ2OTRcdTQ2QThcdTQ2QkNcdTQ2RDBcdTQ2RTRcdTQ2RkJcdTQ3MDdcdTQ3MTBcdTQ3MjRcdTQ3MzgiKworICAgICAgICAiXHU0NzRDXHU0NzYwXHU0Nzc0XHU0NzhCXHU0Nzk3XHU0N0EwXHU0N0I0XHU0N0M4XHU0N0RDXHU0N0YwXHU0ODA0XHU0ODFCIisKKyAgICAgICAgIlx1NDgyN1x1NDgzMFx1NDg0NFx1NDg1OFx1NDg2Q1x1NDg4MFx1NDg5NFx1NDhBQlx1NDhCN1x1NDhDMFx1NDhENFx1NDhFOCIrCisgICAgICAgICJcdTQ4RkNcdTQ5MTBcdTQ5MjRcdTQ5M0JcdTQ5NDdcdTQ5NTBcdTQ5NjRcdTQ5NzhcdTQ5OENcdTQ5QTBcdTQ5QjRcdTQ5Q0EiKworICAgICAgICAiXHU0OUQyXHU0OURCXHU0OUU2XHU0OUVGXDAwMFx1NDlGQVx1NEEwM1x1NEEwRVx1NEExNlx1NEExRVx1NEEyNlx1NEEyRSIrCisgICAgICAgICJcdTAxRDZcdTRBMzVcdTAxRDZcdTAxREVcdUNBM0FcdTRBNDNcdTRBNEVcdTRBNTdcMDAwXHU0QTYyXHU0QTZCXHU0QTc2IisKKyAgICAgICAgIlx1NEE3RVx1NEE4Nlx1NEE4RVx1NEE5Nlx1Q0E5RVx1Q0FBNlx1Q0FBRVx1NEFCNlx1NEFCRVx1NEFDN1x1NEFEM1wwMDAiKworICAgICAgICAiXDAwMFx1NEFERVx1NEFFN1x1NEFGMlx1NEFGQVx1NEIwMlx1NEIwQVwwMDBcdUNCMTJcdUNCMUFcdUNCMjJcdTRCMkFcdTRCMzIiKworICAgICAgICAiXHU0QjNCXHU0QjQ3XHU0QjUyXHU0QjVBXHU0QjYyXHU0QjZCXHU0Qjc2XHU0QjdFXHU0Qjg2XHU0QjhFXHU0Qjk2XHVDQjlFIisKKyAgICAgICAgIlx1Q0JBNlx1NEJBRFwwMDBcMDAwXHU0QkIzXHU0QkJFXHU0QkM3XDAwMFx1NEJEMlx1NEJEQlx1NEJFNlx1NEJFRVx1NEJGNiIrCisgICAgICAgICJcdTRCRkVcdTRDMDZcdUNDMERcdTAxRTZcMDAwXHVDQzExXHVDQzE1XHVBNUE1XDAxMVwwMDVcdUE1QTVcMDA2XDAwMFx1MDFFRCIrCisgICAgICAgICJcdUE1QTVcMDA1XDAwMFx1MDFGMlx1QTVBNVwwMTRcMDAwXHUwMUY5XHUwMUZFXHUwMUZCXHVBNUE1XDAxMFwwMDBcMDA1IisKKyAgICAgICAgIlwwMDBcMDAwXDAwMFx1MDIwNlx1MDIwRlwwMDBcdTAyMUFcdTAyMjNcdUE1QTVcMDA0XDAwMFx1MDIyRVwwMDBcdTAyMzYiKworICAgICAgICAiXHVBNUE1XDAxMVwwMDBcdTAyM0VcdTAyNDZcdUE1QTUmXDAwMFx1MDI0RFwwMDBcMDAwXDAwMElcdTAyNTFcdTAyNTVcdTAyNTkiKworICAgICAgICAiXHUwMjVEXHUwMjYxXHUwMjY1XHUwMjY5XHUwMjZEXHUwMjcxXHUwMjc1XHUwMDg5XHUwMjREOVwwMzUhSVx1MDI1MVx1MDI1NSIrCisgICAgICAgICJcdTAyNTlcdTAyNURcdTAyNjFcdTAyNjVcdTAyNjlcdTAyNkRcdTAyNzFcdTAyNzVcdUE1QTVcMDMxXDAwMFx1MDI3QVx1QTVBNSIrCisgICAgICAgICJcMDI3XDAwMFx1MDI4M1x1MDI4Rlx1MDI5OVx1MDI5RVwwMDBcdTAyQTdcdTAyQjNcdTAyQkRcMDAwXHUwMkMyXHUwMkM5IisKKyAgICAgICAgIlx1MDJDRFx1MDJDRFx1MDJDRFx1MDBFNVx1MDJEMWVldX1cMDAwXHUwMENEXHUwMkQ2XDAwMFwwMDBcdTAyRERcdTAyRTEiKworICAgICAgICAiXHUwMjc5XHUwMjc5XHUwMjc5XDAwMFwwMDBcdTAyRTZcdTAyRUZcdTAyRkFcMDAwXHUwMDk1XDAwMFx1NEMxOVwwMDBcdTAwOTUiKworICAgICAgICAiXDAwMFx1NEMxRFx1NEMyMlx1MDMwMVx1MDI5OVwwMDBcdTAzMDVcdTAyRjFcdTAyQzVcMDAwXHUwMkU5PVx1MDMwOVx1MDMwRCIrCisgICAgICAgICJcdTAzMTFcdTAzMTVtXHVBNUE1XDAzMVwwMDBcdTAzMUJcdTAzMjdcdTAzMzNcdTAzM0ZcdTAzNEJcdTAzNTdcdTAzNjMiKworICAgICAgICAiXHUwMzZGXHUwMzdCXHUwMzg3XHUwMzkzXHUwMzlGQmVcdTAzQUFcdTAzQjNcdTAzQkVcdTAzQzFcdTAzQzZcdTAzQ0ZcdTAzRDgiKworICAgICAgICAiXHUwM0VFXHUwM0YxXHUwM0Y2XHUwM0ZGdVx1MDI5OVx1MDA5MVx1MDJFOW1cdTA0MEFcdTA0MTNcdTA0MUVcdTA0MjFcdTA0MjYiKworICAgICAgICAiXHUwNDJGXHUwNDM4XHUwNDRFXHUwMTM5XHUwNDU2XHUwNDVGfVx1MDI4OVx1MDBBOVx1MDQ2OVx1QTVBNVwwMzJcMDAwIisKKyAgICAgICAgIlx1NEMyQVx1NEMzMlx1QTVBNVwwMjJcMDAwXHU0QzNBXHVBNUE1XDAzNlwwMDBcdTRDNDJcdTRDNEFcdTRDNTJcdUE1QTUiKworICAgICAgICAiXDAyNFwwMDBcdTRDNUFcdUE1QTVcMDA0XDAwMFx1NEM2MlwwMDBcMDAwXHU0QzZBXHVBNUE1XDAyN1wwMDBcdTRDNzJcMDAwIisKKyAgICAgICAgIlx1NEM3QVx1QTVBNVwwMDVcMDAwXHUwNDZFXHUwNDc3XDAwMFx1MDQ4Mlx1MDQ4Qlx1QTVBNVwwMjBcMDAwXHU0QzgyXDAwMCIrCisgICAgICAgICJcMDAwXHU0QzhBXDAwMFwwMDBcdTRDOTJcMDAwXHU0QzlBXHVBNUE1XDAyNlwwMDBcdTRDQTJcMDAwXHU0Q0FBXHVBNUE1IisKKyAgICAgICAgIlwwMTJcMDAwXHU0Q0IyXHU0Q0JBXHU0Q0MyXHU0Q0NBXHU0Q0QyXDAwMFwwMDBcdTRDREFcdTRDRTJcMDAwXDAwMFx1NENFQSIrCisgICAgICAgICJcdTRDRjJcdUE1QTVcMDA2XDAwMFx1NENGQVx1NEQwMlwwMDBcMDAwXHU0RDBBXHU0RDEyXDAwMFwwMDBcdTREMUFcdTREMjIiKworICAgICAgICAiXHVBNUE1XDA0MlwwMDBcdTREMkFcdTREMzJcdTREM0FcdTRENDJcdUE1QTVcMDIwXDAwMFx1NEQ0QVx1NEQ1Mlx1NEQ1QSIrCisgICAgICAgICJcdTRENjJcdUE1QTVcMDA2XDAwMFx1NEQ2QVx1NEQ3Mlx1NEQ3QVx1NEQ4Mlx1QTVBNVwwMzNcMDAwXHU0RDg5XHU0RDhEIisKKyAgICAgICAgIlx1QTVBNVwwMjVcMDAwOVwwMzUhSVx1MDI1MVx1MDI1NVx1MDI1OVx1MDI1RFx1MDI2MVx1MDQ5Nlx1MDQ5RVx1MDRBNiIrCisgICAgICAgICJcdTA0QUVcdTA0QjZcdTA0QkVcdTA0QzZcdTA0Q0VcdTA0RDZcdTA0REVcdTA0RTZcdTA0RUZcdTA0RkJcdTA1MDdcdTA1MTMiKworICAgICAgICAiXHUwNTFGXHUwNTJCXHUwNTM3XHUwNTQzXHUwNTRGXHUwNTU4XHUwNTZDXHUwNTgwXHUwNTk0XHUwNUE4XHUwNUJDXHUwNUQwIisKKyAgICAgICAgIlx1MDVFNFx1MDVGOFx1MDYwQ1x1MDYyMFx1MDYzNlx1MDYzRVx1MDY0Nlx1MDY0RVx1MDY1Nlx1MDY1RVx1MDY2Nlx1MDY2RSIrCisgICAgICAgICJcdTA2NzZcdTA2N0ZcdTA2OEJcdTA2OTdcdTA2QTNcdTA2QUZcdTA2QkJcdTA2QzdcdTA2RDNcdTA2REZcdTA2RUJcdTA2RjciKworICAgICAgICAiXHUwNzAzXHUwNzBGXHUwNzFCXHUwNzI3XHUwNzMzXHUwNzNGXHUwNzRCXHUwNzU3XHUwNzYzXHUwNzZGXHUwNzdCXHUwNzg3IisKKyAgICAgICAgIlx1MDc5M1x1MDc5Rlx1MDdBQlx1MDdCN1x1MDdDM1x1MDdDRlx1MDdEQlx1MDdFN1x1MDdGM1x1MDdGRlx1MDgwQlx1MDgxNyIrCisgICAgICAgICJcdTA4MjNcdTA4MkZcdTA4MzlcdTAzMDFcdTAyOTlcdTAwOTFcdTAyRjFcdTAyQzVcdTA4M0RcdTAyQ0RlaVx1MDg0MXUiKworICAgICAgICAiXHUwMkU5XHUwMENEXHUwODQ1XHUwMkREXHUwMkUxXHUwMjc5XHUwMkU1XHUwMkVEXHUwODQ5XHUwM0MxXHUwODREXHUwM0YxIisKKyAgICAgICAgIlx1MDg1MVx1MDA5NVwwMjFcdTA3MTFcdTAyODlcdTAwQTlcdTAzMDVcdTA3NDFcdTAyQzlcdTAwRTVtcVx1MDc3RH1cdTA0NjkiKworICAgICAgICAiXHUwMDg5PVx1MDdCOVx1MDdDNVx1MDBFRFx1MDA4RFx1MDdFOVx1MDJCOVx1MDQyMVx1MDBGRFx1MDEzOVx1MDEwMVx1MDBBMSIrCisgICAgICAgICJcdTAyNERcdUE1QTU0XDAwMFx1MDg1NVx1QTVBNVwwMjNcMDAwXHUwODU5XHVBNUE1XDAxNFwwMDBcdTA4NURcdTA4NjEiKworICAgICAgICAiXHUwODY1XHUwODY5XHUwODZEXHUwODcxXHUwODc1XHUwODc5XHUwODdEXHUwODgxXHUwODg1XHUwODg5XHUwODhEXHUwODkxIisKKyAgICAgICAgIlx1MDg5NVx1MDg5OVx1MDg5RFx1MDhBMVx1MDhBNVx1MDhBOVx1MDhBRFx1MDhCMVx1MDhCNVx1MDhCOVx1MDhCRFx1MDhDMSIrCisgICAgICAgICJcdTA4QzVcdTA4QzlcdTA4Q0RcdTA4RDFcdTA4RDVcdTA4RDlcdTA4RERcdTA4RTFcdTA4RTVcdTA4RTlcdTA4RURcdTA4RjEiKworICAgICAgICAiXHUwOEY1XHUwOEY5XHUwOEZEXHUwOTAxXHUwOTA1XHUwOTA5XHUwOTBEXHUwOTExXHUwOTE1XHUwOTE5XHUwOTFEXHUwOTIxIisKKyAgICAgICAgIlx1MDkyNVx1MDkyOVx1MDkyRFx1MDkzMVx1MDkzNVx1MDkzOVx1MDkzRFx1MDk0MVx1MDk0NVx1MDk0OVx1MDk0RFx1MDk1MSIrCisgICAgICAgICJcdTA5NTVcdTA5NTlcdTA5NURcdTA5NjFcdTA5NjVcdTA5NjlcdTA5NkRcdTA5NzFcdTA5NzVcdTA5NzlcdTA5N0RcdTA5ODEiKworICAgICAgICAiXHUwOTg1XHUwOTg5XHUwOThEXHUwOTkxXHUwOTk1XHUwOTk5XHUwOTlEXHUwOUExXHUwOUE1XHUwOUE5XHUwOUFEXHUwOUIxIisKKyAgICAgICAgIlx1MDlCNVx1MDlCOVx1MDlCRFx1MDlDMVx1MDlDNVx1MDlDOVx1MDlDRFx1MDlEMVx1MDlENVx1MDlEOVx1MDlERFx1MDlFMSIrCisgICAgICAgICJcdTA5RTVcdTA5RTlcdTA5RURcdTA5RjFcdTA5RjVcdTA5RjlcdTA5RkRcdTBBMDFcdTBBMDVcdTBBMDlcdTBBMERcdTBBMTEiKworICAgICAgICAiXHUwQTE1XHUwQTE5XHUwQTFEXHUwQTIxXHUwQTI1XHUwQTI5XHUwQTJEXHUwQTMxXHUwQTM1XHUwQTM5XHUwQTNEXHUwQTQxIisKKyAgICAgICAgIlx1MEE0NVx1MEE0OVx1MEE0RFx1MEE1MVx1MEE1NVx1MEE1OVx1MEE1RFx1MEE2MVx1MEE2NVx1MEE2OVx1MEE2RFx1MEE3MSIrCisgICAgICAgICJcdTBBNzVcdTBBNzlcdTBBN0RcdTBBODFcdTBBODVcdTBBODlcdTBBOERcdTBBOTFcdTBBOTVcdTBBOTlcdTBBOURcdTBBQTEiKworICAgICAgICAiXHUwQUE1XHUwQUE5XHUwQUFEXHUwQUIxXHUwQUI1XHUwQUI5XHUwQUJEXHUwQUMxXHUwQUM1XHUwQUM5XHUwQUNEXHUwQUQxIisKKyAgICAgICAgIlx1MEFENVx1MEFEOVx1MEFERFx1MEFFMVx1MEFFNVx1MEFFOVx1MEFFRFx1MEFGMVx1MEFGNVx1MEFGOVx1MEFGRFx1MEIwMSIrCisgICAgICAgICJcdTBCMDVcdTBCMDlcdTBCMERcdTBCMTFcdTBCMTVcdTBCMTlcdTBCMURcdTBCMjFcdTBCMjVcdTBCMjlcdTBCMkRcdTBCMzEiKworICAgICAgICAiXHUwQjM1XHUwQjM5XHUwQjNEXHUwQjQxXHUwQjQ1XHUwQjQ5XHUwQjREXHUwQjUxXHUwQjU1XHUwQjU5XHUwQjVEXHUwQjYxIisKKyAgICAgICAgIlx1MEI2NVx1MEI2OVx1MEI2RFx1MEI3MVx1MEI3NVx1MEI3OVx1MEI3RFx1MEI4MVx1MEI4NVx1MEI4OVx1MEI4RFx1MEI5MSIrCisgICAgICAgICJcdTBCOTVcdTBCOTlcdTBCOURcdTBCQTFcdTBCQTVcdTBCQTlcdTBCQURcdTBCQjFcdUE1QTVcMDEyXDAwMFwwMDVcdUE1QTUiKworICAgICAgICAiNVwwMDBcdTBCQjVcMDAwXHUwOEI5XHUwQkI5XHUwQkJEXHVBNUE1XDAyMVwwMDBcdTREOTJcMDAwXHU0RDlBXDAwMFx1NERBMiIrCisgICAgICAgICJcMDAwXHU0REFBXDAwMFx1NERCMlwwMDBcdTREQkFcMDAwXHU0REMyXDAwMFx1NERDQVwwMDBcdTRERDJcMDAwXHU0RERBIisKKyAgICAgICAgIlwwMDBcdTRERTJcMDAwXHU0REVBXDAwMFwwMDBcdTRERjJcMDAwXHU0REZBXDAwMFx1NEUwMlx1QTVBNVwwMDZcMDAwXHU0RTBBIisKKyAgICAgICAgIlx1NEUxMlwwMDBcdTRFMUFcdTRFMjJcMDAwXHU0RTJBXHU0RTMyXDAwMFx1NEUzQVx1NEU0MlwwMDBcdTRFNEFcdTRFNTIiKworICAgICAgICAiXHVBNUE1XDAyNlwwMDBcdTRFNUFcdUE1QTVcMDA2XDAwMFx1MEJDMlx1MEJDQVwwMDBcdTRFNjJcdUE1QTVcMDE1XDAwMCIrCisgICAgICAgICJcdTRFNkFcMDAwXHU0RTcyXDAwMFx1NEU3QVwwMDBcdTRFODJcMDAwXHU0RThBXDAwMFx1NEU5MlwwMDBcdTRFOUFcMDAwIisKKyAgICAgICAgIlx1NEVBMlwwMDBcdTRFQUFcMDAwXHU0RUIyXDAwMFx1NEVCQVwwMDBcdTRFQzJcMDAwXDAwMFx1NEVDQVwwMDBcdTRFRDIiKworICAgICAgICAiXDAwMFx1NEVEQVx1QTVBNVwwMDZcMDAwXHU0RUUyXHU0RUVBXDAwMFx1NEVGMlx1NEVGQVwwMDBcdTRGMDJcdTRGMEFcMDAwIisKKyAgICAgICAgIlx1NEYxMlx1NEYxQVwwMDBcdTRGMjJcdTRGMkFcdUE1QTVcMDI2XDAwMFx1NEYzMlwwMDBcMDAwXHU0RjNBXHU0RjQyXHU0RjRBIisKKyAgICAgICAgIlx1NEY1MlwwMDBcMDAwXDAwMFx1NEY1QVx1QTVBNVwwMjJcMDAwXHUwQkQxXHUwQkQ1XHUwQkQ5XHUwQkREXHUwQkUxXHUwQkU1IisKKyAgICAgICAgIlx1MEJFOVx1MEJFRFx1MEJGMVx1MEJGNVx1MEJGOVx1MEJGRFx1MEMwMVx1MEMwNVx1MEMwOVx1MEMwRFx1MEMxMVx1MEMxNSIrCisgICAgICAgICJcdTBDMTlcdTBDMURcdTBDMjFcdTBDMjVcdTBDMjlcdTBDMkRcdTBDMzFcdTBDMzVcdTBDMzlcdTBDM0RcdTBDNDFcdTBDNDUiKworICAgICAgICAiXHUwQzQ5XHUwQzREXHUwQzUxXHUwQzU1XHUwQzU5XHUwQzVEXHUwQzYxXHUwQzY1XHUwQzY5XHUwQzZEXHUwQzcxXHUwQzc1IisKKyAgICAgICAgIlx1MEM3OVx1MEM3RFx1MEM4MVx1MEM4NVx1MEM4OVx1MEM4RFx1MEM5MVx1MEM5NVx1MEM5OVx1MEM5RFx1MENBMVx1MENBNSIrCisgICAgICAgICJcdTBDQTlcdTBDQURcdTBDQjFcdTBDQjVcdTBDQjlcdTBDQkRcdTBDQzFcdTBDQzVcdTBDQzlcdTBDQ0RcdTBDRDFcdTBDRDUiKworICAgICAgICAiXHUwQ0Q5XHUwQ0REXHUwQ0UxXHUwQ0U1XHUwQ0U5XHUwQ0VEXHUwQ0YxXHUwQ0Y1XHUwQ0Y5XHUwQ0ZEXHUwRDAxXHUwRDA1IisKKyAgICAgICAgIlx1MEQwOVx1MEQwRFx1MEQxMVx1MEQxNVx1MEQxOVx1MEQxRFx1MEQyMVx1MEQyNVx1MEQyOVx1MEQyRFx1MEQzMVx1MEQzNSIrCisgICAgICAgICJcdTBEMzlcdTBEM0RcdTBENDFcdTBENDVcMDAwXDAwMFwwMDBcdTA4NURcdTA4NzVcdTBENDlcdTBENERcdTBENTFcdTBENTUiKworICAgICAgICAiXHUwRDU5XHUwRDVEXHUwODZEXHUwRDYxXHUwRDY1XHUwRDY5XHUwRDZEXHUwODdEXHUwRDczXHUwRDdGXHUwRDhCXHUwRDk3IisKKyAgICAgICAgIlx1MERBM1x1MERBRlx1MERCQlx1MERDN1x1MEREM1x1MERERlx1MERFQlx1MERGN1x1MEUwM1x1MEUwRlx1MEUxOFx1MEUyQyIrCisgICAgICAgICJcdTBFNDBcdTBFNTRcdTBFNjhcdTBFN0NcdTBFOTBcdTBFQTRcdTBFQjhcdTBFQ0NcdTBFRTBcdTBFRjRcdTBGMDhcdTBGMUMiKworICAgICAgICAiXHUwRjMwXDAwMFwwMDBcMDAwXHUwRjQ3XHUwRjUzXHUwRjVGXHUwRjZCXHUwRjc3XHUwRjgzXHUwRjhGXHUwRjlCXHUwRkE3IisKKyAgICAgICAgIlx1MEZCM1x1MEZCRlx1MEZDQlx1MEZEN1x1MEZFM1x1MEZFRlx1MEZGQlx1MTAwN1x1MTAxM1x1MTAxRlx1MTAyQlx1MTAzNyIrCisgICAgICAgICJcdTEwNDNcdTEwNEZcdTEwNUJcdTEwNjdcdTEwNzNcdTEwN0ZcdTEwOEJcdTEwOTdcdTEwQTNcdTEwQUZcdTEwQkJcdTEwQzciKworICAgICAgICAiXHUxMEQzXHUxMERGXHUxMEVCXHVBNUE1XDAzNFwwMDBcdTBCRDFcdTBCRERcdTBCRTlcdTBCRjFcdTBDMTFcdTBDMTVcdTBDMjEiKworICAgICAgICAiXHUwQzI5XHUwQzJEXHUwQzM1XHUwQzM5XHUwQzNEXHUwQzQxXHUwQzQ1XHUwRTFFXHUwRTMyXHUwRTQ2XHUwRTVBXHUwRTZFIisKKyAgICAgICAgIlx1MEU4Mlx1MEU5Nlx1MEVBQVx1MEVCRVx1MEVEMlx1MEVFNlx1MEVGQVx1MEYwRVx1MEM0Nlx1QTVBNVwwMDRcMDAwXHUwODVEIisKKyAgICAgICAgIlx1MDg3NVx1MEQ0OVx1MEQ0RFx1MEY3OVx1MEY4NVx1MEY5MVx1MDg4OVx1MEZBOVx1MDhCOVx1MDk4MVx1MDlCMVx1MDlBRCIrCisgICAgICAgICJcdTA5ODVcdTBBRjVcdTA4RDlcdTA5NzlcdTEwMTVcdTEwMjFcdTEwMkRcdTEwMzlcdTEwNDVcdTEwNTFcdTEwNURcdTEwNjkiKworICAgICAgICAiXHUxMEY1XHUxMEY5XHUwOEYxXHUxMEZEXHUxMTAxXHUxMTA1XHUxMTA5XHUxMTBEXHUxMEQ1XHUxMTExXHUxMTE1XHUwRDUxIisKKyAgICAgICAgIlx1MEQ1NVx1MEQ1OVx1MTExOVx1MTExRFx1MTEyMVx1MTEyNVx1MTA4RFx1MTA5OVx1MTBBNVx1MTBCMVx1MTBCRFx1MTEyOSIrCisgICAgICAgICJcdUE1QTVcMDE3XDAwMFx1MTEyRVx1MTEzNlx1MTEzRVx1MTE0Nlx1MTE0RVx1MTE1Nlx1MTE1RVx1MTE2Nlx1MTE2RVx1MTE3NyIrCisgICAgICAgICJcdTExODNcdTExOEZcdUE1QTVcMDA0XDAwMFx1MTE5OVx1MTE5RFx1MTFBMVx1MTFBNVx1MTFBOVx1MTFBRFx1MTFCMVx1MTFCNSIrCisgICAgICAgICJcdTExQjlcdTExQkRcdTExQzFcdTExQzVcdTExQzlcdTExQ0RcdTExRDFcdTExRDVcdTExRDlcdTExRERcdTExRTFcdTExRTUiKworICAgICAgICAiXHUxMUU5XHUxMUVEXHUxMUYxXHUxMUY1XHUxMUY5XHUxMUZEXHUxMjAxXHUxMjA1XHUxMjA5XHUxMjBEXHUxMjExXHUxMjE1IisKKyAgICAgICAgIlx1MTIxOVx1MTIxRFx1MTIyMVx1MTIyNVx1MTIyOVx1MTIyRFx1MTIzMVx1MTIzNVx1MTIzOVx1MTIzRFx1MTI0MVx1MTI0NSIrCisgICAgICAgICJcdTEyNDlcdTEyNERcdTEyNTFcMDAwXHUxMjU0XHUxMjZDXHUxMjgwXHUxMjlCXHUxMkE0XHUxMkJGXHUxMkNCXHUxMkQ0IisKKyAgICAgICAgIlx1MTJGMFx1MTMwN1x1MTMxM1x1MTMxRlx1MTMyOFx1MTMzQ1x1MTM1MFx1MTM2NFx1MTM3OFx1MTM4Q1x1MTNBMFx1MTNCNCIrCisgICAgICAgICJcdTEzRDJcdTEzRDhcdTEzRjRcdTE0MTBcdTEzRTBcdTE0MjhcdTE0NDRcdTE0NjBcdTE0NzdcdTE0ODNcdTE0OENcdTE0QTAiKworICAgICAgICAiXHUxNEI0XHUxNENDXHUxNEU3XHUxNEYzXHUxNEZDXHUxNTEzXHUxNTFGXHUxNDNBXHUxNTJBXHUxNTMzXHUxNTNGXHUxNTQ4IisKKyAgICAgICAgIlx1MTU2NFx1MTU3OFx1MTU5MFx1MTVBQ1x1MTVDM1x1MTVDRlx1MTVEOFx1MTVGNFx1MTYwOFx1MTYyN1x1MTYzMFx1MTY0QiIrCisgICAgICAgICJcdTE2NTRcdTE2NkJcdTE2NzRcdTE2ODhcdTE2QTBcdTE2QjRcdTE2Q0NcdTE2RTJcdTE2RThcdTE3MDNcdTE3MEZcdTE3MTgiKworICAgICAgICAiXHUxNzJGXHUxNzNCXHUxNzQ3XHUxNzUwXHUxNzY4XHUxNzdFXHUxNzg0XHUxN0EzXHUxN0FDXHUxM0ZDXHUxN0M0XHUxN0RCIisKKyAgICAgICAgIlx1MTdFN1x1MTdGMFx1MTgwNlx1MTgwQ1x1MTgyMFx1MTgzQVx1MTg0MFx1MTQxQlx1MTg1RVx1MTg2Nlx1MTg2RVx1MTg3NiIrCisgICAgICAgICJcdTE4N0VcdTE4ODZcdTE4OEVcdTE4OTZcdTE4OUVcdTE4QTZcdTE4QUZcdTE4QkJcdTE4QzdcdTE4RDNcdTE4REZcdTE4RUIiKworICAgICAgICAiXHUxOEY3XHUxOTAzXHUxOTBGXHUxOTFCXHUxOTI3XHUxOTMzXHUxOTNGXHUxOTRCXHUxOTU3XHUxOTYzXHUxOTZFXHUxOTc2IisKKyAgICAgICAgIlx1MTk3Rlx1MTk4QVx1MTk5Mlx1QTVBNVwwMDRcMDAwXHUxOTlBXHUxOUEyXHUxOUFBXHUxOUIyXHUxOUI4XHUxOUNFXHUxOUQ2IisKKyAgICAgICAgIlx1MTlERVx1MTlFNlx1MTlFRVx1MTlGNlx1MDJGRVx1MTlGRVx1MUEwN1x1MUExMFx1MUEyNlx1MUEyRVx1MUEzNlx1MUEzRSIrCisgICAgICAgICJcdTFBNDZcdTFBNEVcdTFBNTZcdTFBNUZcdTFBNkJcdTFBNzdcdTFBODNcdTFBOEVcdTFBOTZcdTFBOUVcdTFBQTZcdTFBQUUiKworICAgICAgICAiXHUxQUI2XHUxQUJFXHUxQUM2XHUxQUNFXHUxQUQ2XHUxQURGXHUxQUVCXHUxQUUyXHUxQUY3XHUxQjAzXHUxQjBGXHUxQjA2IisKKyAgICAgICAgIlx1MUIxQlx1MUIyN1x1MUIzMFx1MTk2Nlx1MUI0N1x1MUI1M1x1MUI1Rlx1MUI2Qlx1MUI3NFx1MUI4Q1x1MUJBQVx1MDA4QSIrCisgICAgICAgICJcdTFCQjJcdTFCQkFcdTFCQzJcdTFCQ0FcdTFCRDJcdTFCREFcdTFCRTJcdTFCRUFcdTFCRjJcdTFCRkFcdTFDMDJcdTFDMEEiKworICAgICAgICAiXHUxQzEyXHUxQzFBXHUxQzIyXHUxQzJBXHUxQzMwXHUxQzQ2XHUxQzRFXHUxQzU2XHUxQzVDXHUxQzczXHUxQzdFXHUxQzg2IisKKyAgICAgICAgIlx1MUM4RVx1MUM5Nlx1MUM5RVx1MUNBNlx1MUNBRVx1MUNCNlx1MUE5Mlx1MUNCRVx1MUNDN1x1MUNEMlx1MUNEQVx1MUNFMyIrCisgICAgICAgICJcdTFDRUZcdTFDRkFcdTFEMDBcdTFEMTdcdTFEMjJcdTFEMkFcdTFEMzJcdTFEM0FcMDAwXDAwMFx1MUQ0Mlx1MUQ0QVx1MUQ1MiIrCisgICAgICAgICJcdTFENUFcdTFENjJcdTFENkFcdTFENzJcdTFEN0FcdTFEODJcdTFEOEJcdTFEOTdcdTFEQTNcdTFEQUZcdTFEQkJcdTFEQzciKworICAgICAgICAiXHUxREQzXHUxRERGXHUxREVCXHUxREY3XHUxRTAzXHUxRTBGXHUxRTFCXHUxRTI3XHUxRTMzXHUxRTNGXHUxRTRCXHUxRTU3IisKKyAgICAgICAgIlx1MUU2M1x1MUU2Rlx1MUU3Qlx1MUU4N1wwMDBcdTRGNjFcdTRGNjVcdTRGNjlcdTRGNkRcdTRGNzFcdTRGNzVcdTRGNzkiKworICAgICAgICAiXHU0RjdEXHU0RjgxXHU0Rjg1XHU0Rjg5XHU0RjhEXHU0RjkxXHU0Rjk1XHU0Rjk5XHU0RjlEXHU0RkExXHU0RkE1XHU0RkE5IisKKyAgICAgICAgIlx1NEZBRFx1NEZCMVx1NEZCNVx1NEZCOVx1NEZCRFx1NEZDMVx1NEZDNVx1NEZDOVx1NEZDRFx1NEZEMVx1NEZENVx1NEZEOSIrCisgICAgICAgICJcdTRGRERcdTRGRTFcdTRGRTVcdTRGRTlcdTRGRURcdTRGRjFcdTRGRjVcdTRGRjlcdTRGRkRcdTUwMDFcdTUwMDVcdTUwMDkiKworICAgICAgICAiXHU1MDBEXHU1MDExXHU1MDE1XHU1MDE5XHU1MDFEXHU1MDIxXHU1MDI1XHU1MDI5XHU1MDJEXHU1MDMxXHU1MDM1XHU1MDM5IisKKyAgICAgICAgIlx1NTAzRFx1NTA0MVx1NTA0NVx1NTA0OVx1NTA0RFx1NTA1MVx1NTA1NVx1NTA1OVx1NTA1RFx1NTA2MVx1NTA2NVx1NTA2OSIrCisgICAgICAgICJcdTUwNkRcdTUwNzFcdTUwNzVcdTUwNzlcdTUwN0RcdTUwODFcdTUwODVcdTUwODlcdTUwOERcdTUwOTFcdTUwOTVcdTUwOTkiKworICAgICAgICAiXHU1MDlEXHU1MEExXHU1MEE1XHU1MEE5XHU1MEFEXHU1MEIxXHU1MEI1XHU1MEI5XHU1MEJEXHU1MEMxXHU1MEM1XHU1MEM5IisKKyAgICAgICAgIlx1NTBDRFx1NTBEMVx1NTBENVx1NTBEOVx1NTBERFx1NTBFMVx1NTBFNVx1NTBFOVx1NTBFRFx1NTBGMVx1NTBGNVx1NTBGOSIrCisgICAgICAgICJcdTUwRkRcdTUxMDFcdTUxMDVcdTUxMDlcdTUxMERcdTUxMTFcdTUxMTVcdTUxMTlcdTUxMURcdTUxMjFcdTUxMjVcdTUxMjkiKworICAgICAgICAiXHU1MTJEXHU1MTMxXHU1MTM1XHU1MTM5XHU1MTNEXHU1MTQxXHU1MTQ1XHU1MTQ5XHU1MTREXHU1MTUxXHU1MTU1XHU1MTU5IisKKyAgICAgICAgIlx1NTE1RFx1NTE2MVx1NTE2NVx1NTE2OVx1NTE2RFx1NTE3MVx1NTE3NVx1NTE3OVx1NTE3RFx1NTE4MVx1NTE4NVx1NTE4OSIrCisgICAgICAgICJcdTUxOERcdTUxOTFcdTUxOTVcdTUxOTlcdTUxOURcdTUxQTFcdTUxQTVcdTUxQTlcdTUxQURcdTUxQjFcdTUxQjVcdTUxQjkiKworICAgICAgICAiXHU1MUJEXHU1MUMxXHU1MUM1XHU1MUM5XHU1MUNEXHU1MUQxXHU1MUQ1XHU1MUQ5XHU1MUREXHU1MUUxXHU1MUU1XHU1MUU5IisKKyAgICAgICAgIlx1NTFFRFx1NTFGMVx1NTFGNVx1NTFGOVx1NTFGRFx1NTIwMVx1NTIwNVx1NTIwOVx1NTIwRFx1NTIxMVx1NTIxNVx1NTIxOSIrCisgICAgICAgICJcdTUyMURcdTUyMjFcdTUyMjVcdTUyMjlcdTUyMkRcdTUyMzFcdTUyMzVcdTUyMzlcdTUyM0RcdTUyNDFcdTUyNDVcdTUyNDkiKworICAgICAgICAiXHU1MjREXHU1MjUxXHU1MjU1XHU1MjU5XHU1MjVEXHU1MjYxXHU1MjY1XHU1MjY5XHU1MjZEXHU1MjcxXHU1Mjc1XHU1Mjc5IisKKyAgICAgICAgIlx1NTI3RFx1NTI4MVx1NTI4NVx1NTI4OVx1NTI4RFx1NTI5MVx1NTI5NVx1NTI5OVx1NTI5RFx1NTJBMVx1NTJBNVx1NTJBOSIrCisgICAgICAgICJcdTUyQURcdTUyQjFcdTUyQjVcdTUyQjlcdTUyQkRcdTUyQzFcdTUyQzVcdTUyQzlcdTUyQ0RcdTUyRDFcdTUyRDVcdTUyRDkiKworICAgICAgICAiXHU1MkREXHU1MkUxXHU1MkU1XHU1MkU5XHU1MkVEXHU1MkYxXHU1MkY1XHU1MkY5XHU1MkZEXHU1MzAxXHU1MzA1XHU1MzA5IisKKyAgICAgICAgIlx1NTMwRFx1NTMxMVx1NTMxNVx1NTMxOVx1NTMxRFx1NTMyMVx1NTMyNVx1NTMyOVx1NTMyRFx1NTMzMVx1NTMzNVx1NTMzOSIrCisgICAgICAgICJcdTUzM0RcdTUzNDFcdTUzNDVcdTUzNDlcdTUzNERcdTUzNTFcdTUzNTVcdTUzNTlcdTUzNURcdTUzNjFcdTUzNjVcdTUzNjkiKworICAgICAgICAiXHU1MzZEXHU1MzcxXHU1Mzc1XHU1Mzc5XHU1MzdEXHU1MzgxXHU1Mzg1XHU1Mzg5XHU1MzhEXHU1MzkxXHU1Mzk1XDAwMCIrCisgICAgICAgICJcMDAwXHU1Mzk5XDAwMFx1NTM5RFwwMDBcMDAwXHU1M0ExXHU1M0E1XHU1M0E5XHU1M0FEXHU1M0IxXHU1M0I1XHU1M0I5IisKKyAgICAgICAgIlx1NTNCRFx1NTNDMVx1NTNDNVwwMDBcdTUzQzlcMDAwXHU1M0NEXDAwMFwwMDBcdTUzRDFcdTUzRDVcMDAwXDAwMFwwMDAiKworICAgICAgICAiXHU1M0Q5XHU1M0REXHU1M0UxXHU1M0U1XHVBNUE1XDAyMlwwMDBcdTFFOTJcdTFFOUFcdTFFQTJcdTFFOTdcdTFFQUJcdTFFQjYiKworICAgICAgICAiXHUxRUI2XHVBNUE1XDAxNFwwMDBcdTFFQkVcdTFFQzZcdTFFQ0VcdTFFRDZcdTFFREVcdUE1QTVcMDA1XDAwMFx1NTNFQSIrCisgICAgICAgICJcMDAwXHU1M0YyXHUxRUU1XHUwMzA5XHUwMzE1XHUxRUU5XHUxRUVEXHUxRUYxXHUxRUY1XHUxRUY5XHUxRUZEXHUwMjY1IisKKyAgICAgICAgIlx1NTNGQVx1NTQwMlx1NTQwQlx1NTQxN1x1NTQyMlx1NTQyQVx1NTQzMlx1NTQzQVx1NTQ0Mlx1NTQ0QVx1NTQ1Mlx1NTQ1QSIrCisgICAgICAgICJcdTU0NjJcMDAwXHU1NDZBXHU1NDcyXHU1NDdBXHU1NDgyXHU1NDhBXDAwMFx1NTQ5MlwwMDBcdTU0OUFcdTU0QTJcMDAwIisKKyAgICAgICAgIlx1NTRBQVx1NTRCMlwwMDBcdTU0QkFcdTU0QzJcdTU0Q0FcdTU0RDJcdTU0REFcdTU0RTJcdTU0RUFcdTU0RjJcdTU0RkEiKworICAgICAgICAiXHUxRjAyXHUxRjA5XHUxRjA5XHVBNUE1XDAwNFx1MUYwRFx1QTVBNVwwMDRcdTFGMTFcdUE1QTVcMDA0XHUxRjE1XHVBNUE1IisKKyAgICAgICAgIlwwMDRcdTFGMTlcdUE1QTVcMDA0XHUxRjFEXHVBNUE1XDAwNFx1MUYyMVx1QTVBNVwwMDRcdTFGMjVcdUE1QTVcMDA0XHUxRjI5IisKKyAgICAgICAgIlx1QTVBNVwwMDRcdTFGMkRcdUE1QTVcMDA0XHUxRjMxXHVBNUE1XDAwNFx1MUYzNVx1QTVBNVwwMDRcdTFGMzlcdTFGM0QiKworICAgICAgICAiXHUxRjNEXHUxRjQxXHUxRjQxXHUxRjQ1XHUxRjQ1XHUxRjQ5XHUxRjQ5XHUxRjREXHUxRjREXHUxRjUxXHUxRjUxXHVBNUE1IisKKyAgICAgICAgIlwwMDRcdTFGNTVcdUE1QTVcMDA0XHUxRjU5XHVBNUE1XDAwNFx1MUY1RFx1QTVBNVwwMDRcdTFGNjFcdTFGNjVcdTFGNjUiKworICAgICAgICAiXHVBNUE1XDAwNFx1MUY2OVx1MUY2RVx1MUY2RVx1QTVBNVwwMDRcdTFGNzVcdUE1QTVcMDA0XHUxRjc5XHUxRjdEXHUxRjdEIisKKyAgICAgICAgIlx1MUY4Mlx1MUY4Mlx1QTVBNSFcMDAwXHVBNUE1XDAwNFx1MUY4OVx1MDE4MVx1MDE4MVx1MUY4RFx1MUY4RFx1MUY5MSIrCisgICAgICAgICJcdTFGOTFcdTAxODJcdTFGOTVcdTFGOTVcdTFGOTlcdTFGOTlcdTFGOURcdTFGOURcdUE1QTVcMDA0XHUxRkExXHUxRkE1IisKKyAgICAgICAgIlx1MUZBNVx1MUZBQlx1MUZBQlx1MUZCN1x1MUZCN1x1MUZDM1x1MUZDM1x1MUZDRlx1MUZDRlx1MUZEQlx1MUZEQlx1MUZFNyIrCisgICAgICAgICJcdTFGRTdcdTFGRjNcdTFGRjNcdTFGRjNcdTFGRkZcdTFGRkZcdTFGRkZcdUE1QTVcMDA0XHUyMDA5XHUyMDBGXHUyMDFCIisKKyAgICAgICAgIlx1MjAyN1x1MUZGRlx1MjAzM1x1MjAzRVx1MjA0Nlx1MjA0RVx1MjA1Nlx1MjA1RVx1MjA2Nlx1MjA2RVx1MjA3Nlx1MjA3RSIrCisgICAgICAgICJcdTIwODZcdTIwOEVcdTIwOTZcdTIwOUVcdTIwQTZcdTIwQUVcdTIwQjZcdTIwQkVcdTIwQzZcdTIwQzJcdTIwQ0VcdTIwRDYiKworICAgICAgICAiXHUyMERFXHUyMEU2XHUyMEVFXHUyMEY2XHUyMEZFXHUyMTA2XHUyMTBFXHUyMTE2XHUyMTFFXHUyMTI2XHUyMTJFXHUyMTM2IisKKyAgICAgICAgIlx1MjEzRVx1MjE0Nlx1MjE0RVx1MjE1Nlx1MjE1RVx1MjE2Nlx1MjE2RVx1MjE3Nlx1MjE3RVx1MjE4Nlx1MjE4RVx1MjE5NiIrCisgICAgICAgICJcdTIxOUVcdTIxQTZcdTIxQUVcdTIxQjZcdTIxQkVcdTIxQzZcdTIxQ0VcdTIxRDZcdTIxREVcdTIxRTZcdTIxRUVcdTIxRjYiKworICAgICAgICAiXHUyMUZFXHUyMjA2XHUyMjBFXHUyMjE2XHUyMjFFXHUyMjI2XHUyMjJFXHUyMjM2XHUyMENBXHUyMEQyXHUyMjNFXHUyMjQ2IisKKyAgICAgICAgIlx1MjAyRVx1MjI0RVx1MjI1Nlx1MjI1RVx1MjI2Nlx1MjI2RVx1MjI3Nlx1MjI3RVx1MjI4Nlx1MjI4RVx1MjI5Nlx1MjBCQSIrCisgICAgICAgICJcdTIyOUVcdTIyQTZcdTIyMzJcdTIyQUVcdTIyOUFcdTIyQjZcdTIyQkVcdTIyQzZcdTIyQ0ZcdTIyREJcdTIyRTdcdTIyRjMiKworICAgICAgICAiXHUyMkZGXHUyMzBCXHUyMzE3XHUyMzIzXHUyMDI3XHUyMzJGXHUxRkZGXHUyMDMzXHUyMzNBXHUyMzQyXHUyMDU2XHUyMzRBIisKKyAgICAgICAgIlx1MjA1RVx1MjA2Nlx1MjM1Mlx1MjM1QVx1MjA4Nlx1MjM2Mlx1MjA4RVx1MjA5Nlx1MjM2QVx1MjM3Mlx1MjBBNlx1MjM3QSIrCisgICAgICAgICJcdTIwQUVcdTIwQjZcdTIxOTZcdTIxOUVcdTIxQjZcdTIxQkVcdTIxQzZcdTIxRTZcdTIxRUVcdTIxRjZcdTIxRkVcdTIyMUUiKworICAgICAgICAiXHUyMjI2XHUyMjJFXHUyMzgyXHUyMjNFXHUyMzhBXHUyMzkyXHUyMjY2XHUyMzlBXHUyMjZFXHUyMjc2XHUyMkM2XHUyM0EyIisKKyAgICAgICAgIlx1MjNBQVx1MjIzMlx1MjNCMlx1MjJBRVx1MjI5QVx1MjAwRlx1MjAxQlx1MjNCQlx1MjAyN1x1MjNDN1x1MjAzRVx1MjA0NiIrCisgICAgICAgICJcdTIwNEVcdTIwNTZcdTIzRDJcdTIwNkVcdTIwNzZcdTIwN0VcdTIwODZcdTIzREFcdTIwQTZcdTIwQkVcdTIwQzZcdTIwQzIiKworICAgICAgICAiXHUyMENFXHUyMEQ2XHUyMEU2XHUyMEVFXHUyMEY2XHUyMEZFXHUyMTA2XHUyMTBFXHUyM0UyXHUyMTE2XHUyMTFFXHUyMTI2IisKKyAgICAgICAgIlx1MjEyRVx1MjEzNlx1MjEzRVx1MjE0RVx1MjE1Nlx1MjE1RVx1MjE2Nlx1MjE2RVx1MjE3Nlx1MjE3RVx1MjE4Nlx1MjE4RSIrCisgICAgICAgICJcdTIxQTZcdTIxQUVcdTIxQ0VcdTIxRDZcdTIxREVcdTIxRTZcdTIxRUVcdTIyMDZcdTIyMEVcdTIyMTZcdTIyMUVcdTIzRUEiKworICAgICAgICAiXHUyMjM2XHUyMENBXHUyMEQyXHUyMjNFXHUyMjRFXHUyMjU2XHUyMjVFXHUyMjY2XHUyM0YyXHUyMjdFXHUyMjg2XHUyM0ZBIisKKyAgICAgICAgIlx1MjBCQVx1MjI5RVx1MjJBNlx1MjIzMlx1MjI3QVx1MjAyN1x1MjNDN1x1MjA1Nlx1MjNEMlx1MjA4Nlx1MjNEQVx1MjBBNiIrCisgICAgICAgICJcdTI0MDJcdTIxMDZcdTI0MEFcdTI0MTJcdTI0MUFcdTIxRTZcdTIxRUVcdTIyMUVcdTIyNjZcdTIzRjJcdTIyMzJcdTIyN0EiKworICAgICAgICAiXHUyNDIzXHUyNDJGXHUyNDNCXHUyNDQ2XHUyNDRFXHUyNDU2XHUyNDVFXHUyNDY2XHUyNDZFXHUyNDc2XHUyNDdFXHUyNDg2IisKKyAgICAgICAgIlx1MjQ4RVx1MjQ5Nlx1MjAyMlx1MjQ5RVx1MjAxNlx1MjRBNlx1MjJBQVx1MjRBRVx1MjRCNlx1MjRCRVx1MjRDNlx1MjRDRSIrCisgICAgICAgICJcdTI0RDZcdTI0REVcdTI0MTJcdTI0RTZcdTI0RUVcdTI0RjZcdTI0RkVcdTI0NDZcdTI0NEVcdTI0NTZcdTI0NUVcdTI0NjYiKworICAgICAgICAiXHUyNDZFXHUyNDc2XHUyNDdFXHUyNDg2XHUyNDhFXHUyNDk2XHUyMDIyXHUyNDlFXHUyMDE2XHUyNEE2XHUyMkFBXHUyNEFFIisKKyAgICAgICAgIlx1MjRCNlx1MjRCRVx1MjRDNlx1MjRDRVx1MjRENlx1MjRERVx1MjQxMlx1MjRFNlx1MjRFRVx1MjRGNlx1MjRGRVx1MjRDRSIrCisgICAgICAgICJcdTI0RDZcdTI0REVcdTI0MTJcdTI0MEFcdTI0MUFcdTIxNDZcdTIwRUVcdTIwRjZcdTIwRkVcdTI0Q0VcdTI0RDZcdTI0REUiKworICAgICAgICAiXHUyMTQ2XHUyMTRFXHUyNTA2XHUyNTA2XHVBNUE1XDAyMlwwMDBcdTI1MEZcdTI1MUJcdTI1MUJcdTI1MjdcdTI1MzNcdTI1M0YiKworICAgICAgICAiXHUyNTRCXHUyNTU3XHUyMEM3XHUyMEM3XHUyNTYzXHUyNTZGXHUyNTdCXHUyNTg3XHUyNTkzXHUyNTlGXHUyNTlGXHUyNUFCIisKKyAgICAgICAgIlx1MjVCN1x1MjVCN1x1MjVDM1x1MjVDM1x1MjVDRlx1MjVEQlx1MjVEQlx1MjVFN1x1MjVGM1x1MjVGM1x1MjVGRlx1MjVGRiIrCisgICAgICAgICJcdTI2MEJcdTI2MTdcdTI2MTdcdTI2MjNcdTI2MjNcdTI2MkZcdTI2M0JcdTI2NDdcdTI2NTNcdTI2NTNcdTI2NUZcdTI2NkIiKworICAgICAgICAiXHUyNjc3XHUyNjgzXHUyNjhGXHUyNjhGXHUyNjlCXHUyNkE3XHUyNkIzXHUyNkJGXHUyNkNCXHUyNkQ3XHUyNkQ3XHUyNkUzIisKKyAgICAgICAgIlx1MjZFM1x1MjZFRlx1MjZFRlx1MjZGQlx1MjBDQlx1MjcwN1x1MjcxM1x1MjIzN1x1MjBEM1x1MjcxRlwwMDBcMDAwXHUyNzJCIisKKyAgICAgICAgIlx1MjczN1x1Mjc0M1x1Mjc0Rlx1Mjc1Qlx1Mjc2N1x1Mjc2N1x1Mjc3M1x1Mjc3Rlx1Mjc4Qlx1Mjc5N1x1Mjc5N1x1MjdBMyIrCisgICAgICAgICJcdTI3QUZcdTI3QkJcdTI3QzdcdTI3RDNcdTI3REZcdTI3RUJcdTI3RjdcdTI4MDNcdTI4MEZcdTI4MUJcdTI4MjdcdTI4MzMiKworICAgICAgICAiXHUyODNGXHUyODRCXHUyODU3XHUyMjlGXHUyODYzXHUyODZGXHUyODdCXHUyODg3XHUyODkzXHUyNjlCXHUyNkIzXHUyODlGIisKKyAgICAgICAgIlx1MjhBQlx1MjhCN1x1MjhDM1x1MjhDRlx1MjhEQlx1MjhDRlx1MjhCN1x1MjhFN1x1MjhGM1x1MjhGRlx1MjkwQlx1MjkxNyIrCisgICAgICAgICJcdTI4REJcdTI2NDdcdTI1Q0ZcdTI5MjNcdTI5MkZcdUE1QTUoXDAwMFx1MjkzQlx1Mjk0N1x1Mjk1MFx1Mjk2NFx1Mjk3OCIrCisgICAgICAgICJcdTI5OENcdTI5QTBcdTI5QjRcdTI5QzhcdTI5REZcdTI5RThcdTJBMzRcdUE1QTVcMDI0XDAwMFx1MDFGQVx1MkE1OVx1MkE1RCIrCisgICAgICAgICJcdTJBNjFcdTJBNjFcdTAyNzFcdTAyNzVcdTJBNjVcdTJBNjlcdTJBNkRcdTJBNzFcdTJBNzVcdTJBNzlcdTJBN0RcdTJBODEiKworICAgICAgICAiXHUyQTg1XHUyQTg5XHUyQThEXHUyQTkxXHUyQTk1XHUyQTk5XHVBNUE1XDAwNFwwMDBcdUE1QTVcMDA0XHUwMjM2XHUyQTYxIisKKyAgICAgICAgIlx1MkE2MVx1MkE2MVx1MkE5RFx1MkFBMVx1MDFGOVwwMDBcdTJBQTVcdTJBQTlcdTAyM0RcdTAyMkRcdTJBNTlcdTAyNzEiKworICAgICAgICAiXHUwMjc1XHUyQTY1XHUyQTY5XHUyQTZEXHUyQTcxXHUyQUFEXHUyQUIxXHUyQUI1XHUwMjY1XHUyQUI5XHUyQUJEXHUyQUMxIisKKyAgICAgICAgIlx1MDI2RFwwMDBcdTJBQzVcdTJBQzlcdTJBQ0RcdTJBRDFcdUE1QTVcMDA0XDAwMFx1MkFENlx1MkFERVx1MjJDRVwwMDAiKworICAgICAgICAiXHUyMkRBXDAwMFx1MjJFNlx1MjQyMlx1MjJGMlx1MjQyRVx1MjJGRVx1MjQzQVx1MjMwQVx1MkFFNlx1MkFFRVx1MkFGNiIrCisgICAgICAgICJcdTJBRkRcdTJCMDJcdTJCMDJcdTJCMEFcdTJCMEFcdTJCMTJcdTJCMTJcdTJCMUFcdTJCMUFcdUE1QTVcMDA0XHUxRkFBIisKKyAgICAgICAgIlx1MDE3MVx1MDE3MVx1QTVBNVwwMDRcdTIwM0RcdTJCMjFcdTJCMjFcdUE1QTVcMDA0XHUyMDZEXHVBNUE1XDAwNFx1MjA5RCIrCisgICAgICAgICJcdUE1QTVcMDA0XHUyMDE1XHVBNUE1XDAwNFx1MjAyMVx1QTVBNVwwMDRcdTIwNTFcdTI5ODVcdTI5ODVcdTIyQjVcdTIyQjUiKworICAgICAgICAiXHUyMkJEXHUyMkJEXHUyMzI5XHUyMzI5XHVBNUE1XDAwNFx1MjBFRFx1QTVBNVwwMDRcdTI0MTFcdUE1QTVcMDA0XHUyMTBEIisKKyAgICAgICAgIlx1QTVBNVwwMDRcdTIxMURcdUE1QTVcMDA0XHUyMTNEXHVBNUE1XDAwNFx1MjE0RFx1QTVBNVwwMDRcdTIxNTVcdUE1QTUiKworICAgICAgICAiXDAwNFx1MjE2NVx1QTVBNVwwMDRcdTIxNzVcdUE1QTVcMDA0XHUyMUE1XHVBNUE1XDAwNFx1MjFDNVx1QTVBNVwwMDRcdTIxRTkiKworICAgICAgICAiXHVBNUE1XDAwNFx1MjAyRFx1QTVBNVwwMDRcdTIyNERcdUE1QTVcMDA0XHUyMjdEXHUwMTc5XHUwMTc5XHUxRkE1XHUxRkE1IisKKyAgICAgICAgIlx1QTVBNVwwMDRcdTAxODlcdTJCMjdcdTJCMjdcdTJCMzNcdTJCMzNcdTJCM0ZcdTJCM0ZcdTJBNDZcdTJBNDZcdUE1QTUiKworICAgICAgICAiXDAwNFwwMDBcdTAyMkRcdTJCNDlcdTJBQURcdTJBQzlcdTJBQ0RcdTJBQjFcdTJCNERcdTAyNzFcdTAyNzVcdTJBQjVcdTAyNjUiKworICAgICAgICAiXHUyQTlEXHUyQUI5XHUwMUY5XHUwMjg1XHUwMjREOVwwMzUhSVx1MDI1MVx1MDI1NVx1MDI1OVx1MDI1RFx1MDI2MVx1MkFBOSIrCisgICAgICAgICJcdTJBQTVcdTJBQkRcdTAyNkRcdTJBQzFcdTAyM0RcdTJBRDFcdTA4MzlcdTAzMDFcdTAyOTlcdTAwOTFcdTAyRjFcdTAyQzUiKworICAgICAgICAiXHUwODNEXHUwMkNEZWlcdTA4NDF1XHUwMkU5XHUwMENEXHUwODQ1XHUwMkREXHUwMkUxXHUwMjc5XHUwMkU1XHUwMkVEIisKKyAgICAgICAgIlx1MDg0OVx1MDNDMVx1MDg0RFx1MDNGMVx1MDg1MVx1MDA5NVx1MkI1MVx1MkFDNVx1MkI1NVx1MkI1OVx1MkE2MVx1MkI1RCIrCisgICAgICAgICJcMDIxXHUwNzExXHUwMjg5XHUwMEE5XHUwMzA1XHUwNzQxXHUwMkM5XHUwMEU1bXFcdTA3N0R9XHUwNDY5XHUwMDg5PVx1MDdCOSIrCisgICAgICAgICJcdTA3QzVcdTAwRURcdTAwOERcdTA3RTlcdTAyQjlcdTA0MjFcdTAwRkRcdTAxMzlcdTAxMDFcdTAwQTFcdTJBNjVcdTJCNjEiKworICAgICAgICAiXHUyQTY5XHUyQjY1XDAwMFwwMDBcdTJCNjlcdTJBOERcdTJBOTFcdTJBQTFcdTJCNkRcdTEyNTFcdTEyNzlcdTE1RjlcdTJCNzEiKworICAgICAgICAiXHUxNjE5XHUxMkNEXHUyQjc1XHUxM0E1XHUxNzVEXHUxMzMxXHUxMjYxXHUxMTk5XHUxMTlEXHUxMUExXHUxMUE1XHUxMUE5IisKKyAgICAgICAgIlx1MTFBRFx1MTFCMVx1MTFCNVx1MTFCOVx1MTFCRFx1MTFDMVx1MTFDNVx1MTFDOVx1MTFDRFx1MTFEMVx1MTFENVx1MTFEOSIrCisgICAgICAgICJcdTExRERcdTExRTFcdTExRTVcdTExRTlcdTExRURcdTExRjFcdTExRjVcdTExRjlcdTExRkRcdTEyMDFcdTEyMDVcdTEyMDkiKworICAgICAgICAiXHUxMjBEXHUxMjExXHUxMjE1XHUxMjE5XHUxMjFEXHUxMjIxXHUxMjI1XHUxMjI5XHUxMjJEXHUxMjMxXHUxMjM1XHUxMjM5IisKKyAgICAgICAgIlx1MTIzRFx1MTI0MVx1MTI0NVx1MTI4NVx1MEJDNVx1MEJDRFx1MEM5RFx1MEJEMVx1MEJENVx1MEJEOVx1MEJERFx1MEJFMSIrCisgICAgICAgICJcdTBCRTVcdTBCRTlcdTBCRURcdTBCRjFcdTBCRjVcdTBCRjlcdTBCRkRcdTBDMDFcdTBDMDVcdTBDMDlcdTBDMERcdTBDMTEiKworICAgICAgICAiXHUwQzE1XHUwQzE5XHUwQzFEXHUwQzIxXHUwQzI1XHUwQzI5XHUwQzJEXHUwQzMxXHUwQzM1XHUwQzM5XHUwQzNEXHUwQzQxIisKKyAgICAgICAgIlx1MEM0NVwwMDBcMDAwXDAwMFx1MEM0OVx1MEM0RFx1MEM1MVx1MEM1NVx1MEM1OVx1MEM1RFwwMDBcMDAwXHUwQzYxXHUwQzY1IisKKyAgICAgICAgIlx1MEM2OVx1MEM2RFx1MEM3MVx1MEM3NVwwMDBcMDAwXHUwQzc5XHUwQzdEXHUwQzgxXHUwQzg1XHUwQzg5XHUwQzhEXDAwMCIrCisgICAgICAgICJcMDAwXHUwQzkxXHUwQzk1XHUwQzk5XDAwMFwwMDBcMDAwXHUyQjc5XHUyQjdEXHUyQjgxXDAyNlx1MkI4NVx1MkI4OVx1MkI4RCIrCisgICAgICAgICJcMDAwXHUyQjkxXHUyQjk1XHUyQjk5XHUyQjlEXHUyQkExXHUyQkE1XHUyQkE5XHVBNUE1XDAyMVwwMDAiCisgICAgICAgICk7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIGNvbnRlbnRzID0gCisgICAgICAgICJcdUZGRkYgIFx1MDMwOGEgXHUwMzA0MjMgXHUwMzAxXHUwM0JDIFx1MDMyNzFvMVx1MjA0NDQxXHUyMDQ0MjNcdTIwNDQiKworICAgICAgICAiNElKaWpMXHUwMEI3bFx1MDBCN1x1MDJCQ25zRFpcdTAzMENEelx1MDMwQ2R6XHUwMzBDTEpMamxqTkpOam5qaFx1MDI2NiIrCisgICAgICAgICJyXHUwMjc5XHUwMjdCXHUwMjgxd3kgXHUwMzA2IFx1MDMwNyBcdTAzMEEgXHUwMzI4IFx1MDMwMyBcdTAzMEJcdTAyNjMiKworICAgICAgICAieFx1MDI5NSBcdTAzNDVcdTAzQjJcdTAzQjhcdTAzQTVcdTAzQzZcdTAzQzBcdTAzQkFcdTAzQzFcdTAzQzJcdTA1NjVcdTA1ODIiKworICAgICAgICAiXHUwNjI3XHUwNjc0XHUwNjQ4XHUwNjc0XHUwNkM3XHUwNjc0XHUwNjRBXHUwNjc0XHUwRTREXHUwRTMyXHUwRUNEXHUwRUIyIisKKyAgICAgICAgIlx1MEVBQlx1MEU5OVx1MEVBQlx1MEVBMVx1MEYwQlx1MEZCMlx1MEY3MVx1MEY4MFx1MEZCM1x1MEY3MVx1MEY4MGFcdTAyQkUiKworICAgICAgICAiIFx1MDMxMyBcdTAzNDIgXHUwMzE0XHUyMDEwIFx1MDMzMy4uLlx1MjAzMlx1MjAzMlx1MjAzMlx1MjAzMlx1MjAzMlx1MjAzNSIrCisgICAgICAgICJcdTIwMzVcdTIwMzVcdTIwMzVcdTIwMzUhISBcdTAzMDU/ISE/MDU2Nzg5K1x1MjIxMj0oKVJzYS9jYS9zQ1x1MDBCMEMiKworICAgICAgICAiYy9vYy91XHUwMTkwXHUwMEIwRmdIXHUwMTI3Tm9QUVNNVEVMVE1CZVx1MDVEMFx1MDVEMVx1MDVEMlx1MDVEMzFcdTIwNDQiKworICAgICAgICAiMzJcdTIwNDQzMVx1MjA0NDUyXHUyMDQ0NTNcdTIwNDQ1NFx1MjA0NDUxXHUyMDQ0NjVcdTIwNDQ2MVx1MjA0NDgzXHUyMDQ0IisKKyAgICAgICAgIjg1XHUyMDQ0ODdcdTIwNDQ4SUlJSUlJVlZJVklJVklJSVwwMDBJWFhJWElJaWlpaWlpdnZpdmlpdmlpaVwwMDBpeHhpeCIrCisgICAgICAgICJpaW1cdTIyMkJcdTIyMkJcdTIyMkJcdTIyMkJcdTIyMkJcdTIyMkVcdTIyMkVcdTIyMkVcdTIyMkVcdTIyMkUxMDExMTIiKworICAgICAgICAiMTMxNDE1MTYxNzE4MTkyMCgxKSgyKSgzKSg0KSg1KSg2KSg3KSg4KSg5KSgxMClcMDAwKDExKVwwMDAoMTIpXDAwMCgxIisKKyAgICAgICAgIjMpXDAwMCgxNClcMDAwKDE1KVwwMDAoMTYpXDAwMCgxNylcMDAwKDE4KVwwMDAoMTkpXDAwMCgyMClcMDAwMS4yLjMuNCIrCisgICAgICAgICIuNS42LjcuOC45LjEwLjExLjEyLjEzLjE0LjE1LjE2LjE3LjE4LjE5LjIwLihhKShiKShjKShkKShlKShmKShnKShoKSgiKworICAgICAgICAiaSkoaikoaykobCkobSkobikobykocCkocSkocikocykodCkodSkodikodykoeCkoeSkoeilBR0tPVVdZXHU2QkNEXHU5RjlGIisKKyAgICAgICAgIlx1NEUwMFx1NEUyOFx1NEUzNlx1NEUzRlx1NEU1OVx1NEU4NVx1NEU4Q1x1NEVBMFx1NEVCQVx1NTEzRlx1NTE2NVx1NTE2QiIrCisgICAgICAgICJcdTUxODJcdTUxOTZcdTUxQUJcdTUxRTBcdTUxRjVcdTUyMDBcdTUyOUJcdTUyRjlcdTUzMTVcdTUzMUFcdTUzMzhcdTUzNDEiKworICAgICAgICAiXHU1MzVDXHU1MzY5XHU1MzgyXHU1M0I2XHU1M0M4XHU1M0UzXHU1NkQ3XHU1NzFGXHU1OEVCXHU1OTAyXHU1OTBBXHU1OTE1IisKKyAgICAgICAgIlx1NTkyN1x1NTk3M1x1NUI1MFx1NUI4MFx1NUJGOFx1NUMwRlx1NUMyMlx1NUMzOFx1NUM2RVx1NUM3MVx1NUREQlx1NURFNSIrCisgICAgICAgICJcdTVERjFcdTVERkVcdTVFNzJcdTVFN0FcdTVFN0ZcdTVFRjRcdTVFRkVcdTVGMEJcdTVGMTNcdTVGNTBcdTVGNjFcdTVGNzMiKworICAgICAgICAiXHU1RkMzXHU2MjA4XHU2MjM2XHU2MjRCXHU2NTJGXHU2NTM0XHU2NTg3XHU2NTk3XHU2NUE0XHU2NUI5XHU2NUUwXHU2NUU1IisKKyAgICAgICAgIlx1NjZGMFx1NjcwOFx1NjcyOFx1NkIyMFx1NkI2Mlx1NkI3OVx1NkJCM1x1NkJDQlx1NkJENFx1NkJEQlx1NkMwRlx1NkMxNCIrCisgICAgICAgICJcdTZDMzRcdTcwNkJcdTcyMkFcdTcyMzZcdTcyM0JcdTcyM0ZcdTcyNDdcdTcyNTlcdTcyNUJcdTcyQUNcdTczODRcdTczODkiKworICAgICAgICAiXHU3NERDXHU3NEU2XHU3NTE4XHU3NTFGXHU3NTI4XHU3NTMwXHU3NThCXHU3NTkyXHU3Njc2XHU3NjdEXHU3NkFFXHU3NkJGIisKKyAgICAgICAgIlx1NzZFRVx1NzdEQlx1NzdFMlx1NzdGM1x1NzkzQVx1NzlCOFx1NzlCRVx1N0E3NFx1N0FDQlx1N0FGOVx1N0M3M1x1N0NGOCIrCisgICAgICAgICJcdTdGMzZcdTdGNTFcdTdGOEFcdTdGQkRcdTgwMDFcdTgwMENcdTgwMTJcdTgwMzNcdTgwN0ZcdTgwODlcdTgxRTNcdTgxRUEiKworICAgICAgICAiXHU4MUYzXHU4MUZDXHU4MjBDXHU4MjFCXHU4MjFGXHU4MjZFXHU4MjcyXHU4Mjc4XHU4NjREXHU4NjZCXHU4ODQwXHU4ODRDIisKKyAgICAgICAgIlx1ODg2M1x1ODk3RVx1ODk4Qlx1ODlEMlx1OEEwMFx1OEMzN1x1OEM0Nlx1OEM1NVx1OEM3OFx1OEM5RFx1OEQ2NFx1OEQ3MCIrCisgICAgICAgICJcdThEQjNcdThFQUJcdThFQ0FcdThGOUJcdThGQjBcdThGQjVcdTkwOTFcdTkxNDlcdTkxQzZcdTkxQ0NcdTkxRDFcdTk1NzciKworICAgICAgICAiXHU5NTgwXHU5NjFDXHU5NkI2XHU5NkI5XHU5NkU4XHU5NzUxXHU5NzVFXHU5NzYyXHU5NzY5XHU5N0NCXHU5N0VEXHU5N0YzIisKKyAgICAgICAgIlx1OTgwMVx1OThBOFx1OThEQlx1OThERlx1OTk5Nlx1OTk5OVx1OTlBQ1x1OUFBOFx1OUFEOFx1OUFERlx1OUIyNVx1OUIyRiIrCisgICAgICAgICJcdTlCMzJcdTlCM0NcdTlCNUFcdTlDRTVcdTlFNzVcdTlFN0ZcdTlFQTVcdTlFQkJcdTlFQzNcdTlFQ0RcdTlFRDFcdTlFRjkiKworICAgICAgICAiXHU5RUZEXHU5RjBFXHU5RjEzXHU5RjIwXHU5RjNCXHU5RjRBXHU5RjUyXHU5RjhEXHU5RjlDXHU5RkEwXHUzMDEyXHU1MzQ0IisKKyAgICAgICAgIlx1NTM0NSBcdTMwOTkgXHUzMDlBXHUxMTAwXHUxMTAxXHUxMUFBXHUxMTAyXHUxMUFDXHUxMUFEXHUxMTAzXHUxMTA0XHUxMTA1IisKKyAgICAgICAgIlx1MTFCMFx1MTFCMVx1MTFCMlx1MTFCM1x1MTFCNFx1MTFCNVx1MTExQVx1MTEwNlx1MTEwN1x1MTEwOFx1MTEyMVx1MTEwOSIrCisgICAgICAgICJcdTExMEFcdTExMEJcdTExMENcdTExMERcdTExMEVcdTExMEZcdTExMTBcdTExMTFcdTExMTJcdTExNjFcdTExNjJcdTExNjMiKworICAgICAgICAiXHUxMTY0XHUxMTY1XHUxMTY2XHUxMTY3XHUxMTY4XHUxMTY5XHUxMTZBXHUxMTZCXHUxMTZDXHUxMTZEXHUxMTZFXHUxMTZGIisKKyAgICAgICAgIlx1MTE3MFx1MTE3MVx1MTE3Mlx1MTE3M1x1MTE3NFx1MTE3NVx1MTE2MFx1MTExNFx1MTExNVx1MTFDN1x1MTFDOFx1MTFDQyIrCisgICAgICAgICJcdTExQ0VcdTExRDNcdTExRDdcdTExRDlcdTExMUNcdTExRERcdTExREZcdTExMURcdTExMUVcdTExMjBcdTExMjJcdTExMjMiKworICAgICAgICAiXHUxMTI3XHUxMTI5XHUxMTJCXHUxMTJDXHUxMTJEXHUxMTJFXHUxMTJGXHUxMTMyXHUxMTM2XHUxMTQwXHUxMTQ3XHUxMTRDIisKKyAgICAgICAgIlx1MTFGMVx1MTFGMlx1MTE1N1x1MTE1OFx1MTE1OVx1MTE4NFx1MTE4NVx1MTE4OFx1MTE5MVx1MTE5Mlx1MTE5NFx1MTE5RSIrCisgICAgICAgICJcdTExQTFcdTRFMDlcdTU2REJcdTRFMEFcdTRFMkRcdTRFMEJcdTc1MzJcdTRFMTlcdTRFMDFcdTU5MjlcdTU3MzAoXHUxMTAwIisKKyAgICAgICAgIikoXHUxMTAyKShcdTExMDMpKFx1MTEwNSkoXHUxMTA2KShcdTExMDcpKFx1MTEwOSkoXHUxMTBCKShcdTExMEMpKFx1MTEwRSIrCisgICAgICAgICIpKFx1MTEwRikoXHUxMTEwKShcdTExMTEpKFx1MTExMikoXHUxMTAwXHUxMTYxKVwwMDAoXHUxMTAyXHUxMTYxKVwwMDAiKworICAgICAgICAiKFx1MTEwM1x1MTE2MSlcMDAwKFx1MTEwNVx1MTE2MSlcMDAwKFx1MTEwNlx1MTE2MSlcMDAwKFx1MTEwN1x1MTE2MSlcMDAwIisKKyAgICAgICAgIihcdTExMDlcdTExNjEpXDAwMChcdTExMEJcdTExNjEpXDAwMChcdTExMENcdTExNjEpXDAwMChcdTExMEVcdTExNjEpXDAwMCIrCisgICAgICAgICIoXHUxMTBGXHUxMTYxKVwwMDAoXHUxMTEwXHUxMTYxKVwwMDAoXHUxMTExXHUxMTYxKVwwMDAoXHUxMTEyXHUxMTYxKVwwMDAiKworICAgICAgICAiKFx1MTEwQ1x1MTE2RSlcMDAwKFx1NEUwMCkoXHU0RThDKShcdTRFMDkpKFx1NTZEQikoXHU0RTk0KShcdTUxNkQpKFx1NEUwMyIrCisgICAgICAgICIpKFx1NTE2QikoXHU0RTVEKShcdTUzNDEpKFx1NjcwOCkoXHU3MDZCKShcdTZDMzQpKFx1NjcyOCkoXHU5MUQxKShcdTU3MUYiKworICAgICAgICAiKShcdTY1RTUpKFx1NjgyQSkoXHU2NzA5KShcdTc5M0UpKFx1NTQwRCkoXHU3Mjc5KShcdThDQTEpKFx1Nzk1RCkoXHU1MkI0IisKKyAgICAgICAgIikoXHU0RUUzKShcdTU0N0MpKFx1NUI2NikoXHU3NkUzKShcdTRGMDEpKFx1OENDNykoXHU1MzU0KShcdTc5NkQpKFx1NEYxMSIrCisgICAgICAgICIpKFx1ODFFQSkoXHU4MUYzKVx1NzlEOFx1NzUzN1x1OTA2OVx1NTEyQVx1NTM3MFx1NkNFOFx1OTgwNVx1NTE5OVx1NkI2MyIrCisgICAgICAgICJcdTVERTZcdTUzRjNcdTUzM0JcdTVCOTdcdTU5MUMxXHU2NzA4Mlx1NjcwODNcdTY3MDg0XHU2NzA4NVx1NjcwODZcdTY3MDgiKworICAgICAgICAiN1x1NjcwODhcdTY3MDg5XHU2NzA4MTBcdTY3MDgxMVx1NjcwODEyXHU2NzA4XHUzMEEyXHUzMEE0XHUzMEE2XHUzMEE4IisKKyAgICAgICAgIlx1MzBBQVx1MzBBQlx1MzBBRFx1MzBBRlx1MzBCMVx1MzBCM1x1MzBCNVx1MzBCN1x1MzBCOVx1MzBCQlx1MzBCRFx1MzBCRiIrCisgICAgICAgICJcdTMwQzFcdTMwQzRcdTMwQzZcdTMwQzhcdTMwQ0FcdTMwQ0JcdTMwQ0NcdTMwQ0RcdTMwQ0VcdTMwQ0ZcdTMwRDJcdTMwRDUiKworICAgICAgICAiXHUzMEQ4XHUzMERCXHUzMERFXHUzMERGXHUzMEUwXHUzMEUxXHUzMEUyXHUzMEU0XHUzMEU2XHUzMEU4XHUzMEU5XHUzMEVBIisKKyAgICAgICAgIlx1MzBFQlx1MzBFQ1x1MzBFRFx1MzBFRlx1MzBGMFx1MzBGMVx1MzBGMlx1MzBBMlx1MzBDRlx1MzA5QVx1MzBGQ1x1MzBDOCIrCisgICAgICAgICJcMDAwXHUzMEEyXHUzMEVCXHUzMEQ1XHUzMEExXDAwMFx1MzBBMlx1MzBGM1x1MzBEOFx1MzA5QVx1MzBBMlwwMDBcdTMwQTIiKworICAgICAgICAiXHUzMEZDXHUzMEVCXHUzMEE0XHUzMENCXHUzMEYzXHUzMEFGXHUzMDk5XDAwMFx1MzBBNFx1MzBGM1x1MzBDMVx1MzBBNiIrCisgICAgICAgICJcdTMwQTlcdTMwRjNcdTMwQThcdTMwQjlcdTMwQUZcdTMwRkNcdTMwQzhcdTMwOTlcMDAwXHUzMEE4XHUzMEZDXHUzMEFCIisKKyAgICAgICAgIlx1MzBGQ1wwMDBcdTMwQUFcdTMwRjNcdTMwQjlcdTMwQUFcdTMwRkNcdTMwRTBcdTMwQUJcdTMwQTRcdTMwRUFcdTMwQUIiKworICAgICAgICAiXHUzMEU5XHUzMEMzXHUzMEM4XDAwMFx1MzBBQlx1MzBFRFx1MzBFQVx1MzBGQ1wwMDBcdTMwQUJcdTMwOTlcdTMwRURcdTMwRjMiKworICAgICAgICAiXDAwMFx1MzBBQlx1MzA5OVx1MzBGM1x1MzBERVwwMDBcdTMwQURcdTMwOTlcdTMwQUJcdTMwOTlcMDAwXHUzMEFEXHUzMDk5IisKKyAgICAgICAgIlx1MzBDQlx1MzBGQ1wwMDBcdTMwQURcdTMwRTVcdTMwRUFcdTMwRkNcMDAwXHUzMEFEXHUzMDk5XHUzMEVCXHUzMEJGXHUzMDk5IisKKyAgICAgICAgIlx1MzBGQ1wwMDBcdTMwQURcdTMwRURcdTMwQURcdTMwRURcdTMwQUZcdTMwOTlcdTMwRTlcdTMwRTBcMDAwXHUzMEFEXHUzMEVEIisKKyAgICAgICAgIlx1MzBFMVx1MzBGQ1x1MzBDOFx1MzBFQlwwMDBcdTMwQURcdTMwRURcdTMwRUZcdTMwQzNcdTMwQzhcMDAwXHUzMEFGXHUzMDk5IisKKyAgICAgICAgIlx1MzBFOVx1MzBFMFx1MzBDOFx1MzBGM1wwMDBcdTMwQUZcdTMwRUJcdTMwQkJcdTMwOTlcdTMwQTRcdTMwRURcMDAwXHUzMEFGIisKKyAgICAgICAgIlx1MzBFRFx1MzBGQ1x1MzBDRFwwMDBcdTMwQjFcdTMwRkNcdTMwQjlcdTMwQjNcdTMwRUJcdTMwQ0FcdTMwQjNcdTMwRkMiKworICAgICAgICAiXHUzMERCXHUzMDlBXDAwMFx1MzBCNVx1MzBBNFx1MzBBRlx1MzBFQlwwMDBcdTMwQjVcdTMwRjNcdTMwQzFcdTMwRkNcdTMwRTAiKworICAgICAgICAiXDAwMFx1MzBCN1x1MzBFQVx1MzBGM1x1MzBBRlx1MzA5OVwwMDBcdTMwQkJcdTMwRjNcdTMwQzFcdTMwQkJcdTMwRjNcdTMwQzgiKworICAgICAgICAiXHUzMEJGXHUzMDk5XHUzMEZDXHUzMEI5XDAwMFx1MzBDNlx1MzA5OVx1MzBCN1x1MzBDOFx1MzA5OVx1MzBFQlx1MzBDQSIrCisgICAgICAgICJcdTMwQ0VcdTMwQ0VcdTMwQzNcdTMwQzhcdTMwQ0ZcdTMwQTRcdTMwQzRcdTMwQ0ZcdTMwOUFcdTMwRkNcdTMwQkJcdTMwRjMiKworICAgICAgICAiXHUzMEM4XDAwMFx1MzBDRlx1MzA5QVx1MzBGQ1x1MzBDNFwwMDBcdTMwQ0ZcdTMwOTlcdTMwRkNcdTMwRUNcdTMwRUJcMDAwIisKKyAgICAgICAgIlx1MzBEMlx1MzA5QVx1MzBBMlx1MzBCOVx1MzBDOFx1MzBFQlwwMDBcdTMwRDJcdTMwOUFcdTMwQUZcdTMwRUJcMDAwXHUzMEQyIisKKyAgICAgICAgIlx1MzA5QVx1MzBCM1x1MzBEMlx1MzA5OVx1MzBFQlx1MzBENVx1MzBBMVx1MzBFOVx1MzBDM1x1MzBDOFx1MzA5OVwwMDAiKworICAgICAgICAiXHUzMEQ1XHUzMEEzXHUzMEZDXHUzMEM4XDAwMFx1MzBENVx1MzA5OVx1MzBDM1x1MzBCN1x1MzBBN1x1MzBFQlwwMDBcdTMwRDUiKworICAgICAgICAiXHUzMEU5XHUzMEYzXHUzMEQ4XHUzMEFGXHUzMEJGXHUzMEZDXHUzMEVCXDAwMFx1MzBEOFx1MzA5QVx1MzBCRFx1MzBEOCIrCisgICAgICAgICJcdTMwOUFcdTMwQ0JcdTMwRDJcMDAwXHUzMEQ4XHUzMEVCXHUzMEM0XHUzMEQ4XHUzMDlBXHUzMEYzXHUzMEI5XDAwMFx1MzBEOCIrCisgICAgICAgICJcdTMwOUFcdTMwRkNcdTMwQjdcdTMwOTlcMDAwXHUzMEQ4XHUzMDk5XHUzMEZDXHUzMEJGXDAwMFx1MzBEQlx1MzA5QVx1MzBBNCIrCisgICAgICAgICJcdTMwRjNcdTMwQzhcMDAwXHUzMERCXHUzMDk5XHUzMEVCXHUzMEM4XDAwMFx1MzBEQlx1MzBGM1x1MzBEQlx1MzA5QVx1MzBGMyIrCisgICAgICAgICJcdTMwQzhcdTMwOTlcMDAwXHUzMERCXHUzMEZDXHUzMEVCXHUzMERCXHUzMEZDXHUzMEYzXHUzMERFXHUzMEE0XHUzMEFGIisKKyAgICAgICAgIlx1MzBFRFwwMDBcdTMwREVcdTMwQTRcdTMwRUJcdTMwREVcdTMwQzNcdTMwQ0ZcdTMwREVcdTMwRUJcdTMwQUZcdTMwREUiKworICAgICAgICAiXHUzMEYzXHUzMEI3XHUzMEU3XHUzMEYzXDAwMFx1MzBERlx1MzBBRlx1MzBFRFx1MzBGM1wwMDBcdTMwREZcdTMwRUFcdTMwREYiKworICAgICAgICAiXHUzMEVBXHUzMENGXHUzMDk5XHUzMEZDXHUzMEVCXDAwMFx1MzBFMVx1MzBBQlx1MzA5OVx1MzBFMVx1MzBBQlx1MzA5OSIrCisgICAgICAgICJcdTMwQzhcdTMwRjNcMDAwXHUzMEU0XHUzMEZDXHUzMEM4XHUzMDk5XDAwMFx1MzBFNFx1MzBGQ1x1MzBFQlx1MzBFNlx1MzBBMiIrCisgICAgICAgICJcdTMwRjNcdTMwRUFcdTMwQzNcdTMwQzhcdTMwRUJcMDAwXHUzMEVBXHUzMEU5XHUzMEVCXHUzMEQyXHUzMDlBXHUzMEZDIisKKyAgICAgICAgIlwwMDBcdTMwRUJcdTMwRkNcdTMwRDVcdTMwOTlcdTMwRUJcMDAwXHUzMEVDXHUzMEUwXHUzMEVDXHUzMEYzXHUzMEM4XHUzMEIxIisKKyAgICAgICAgIlx1MzA5OVx1MzBGM1wwMDAwXHU3MEI5MVx1NzBCOTJcdTcwQjkzXHU3MEI5NFx1NzBCOTVcdTcwQjk2XHU3MEI5N1x1NzBCOSIrCisgICAgICAgICI4XHU3MEI5OVx1NzBCOTEwXHU3MEI5MTFcdTcwQjkxMlx1NzBCOTEzXHU3MEI5MTRcdTcwQjkxNVx1NzBCOTE2XHU3MEI5IisKKyAgICAgICAgIjE3XHU3MEI5MThcdTcwQjkxOVx1NzBCOTIwXHU3MEI5MjFcdTcwQjkyMlx1NzBCOTIzXHU3MEI5MjRcdTcwQjloUGFkYSIrCisgICAgICAgICJBVWJhcm9WcGNcdTVFNzNcdTYyMTBcdTY2MkRcdTU0OENcdTU5MjdcdTZCNjNcdTY2MEVcdTZDQkJcdTY4MkFcdTVGMEYiKworICAgICAgICAiXHU0RjFBXHU3OTNFXDAwMHBBbkFcdTAzQkNBbUFrQUtCR0JjYWxrY2FsXDAwMHBGbkZcdTAzQkNGXHUwM0JDZ21na2dIIisKKyAgICAgICAgInprSHpNSHpHSHpUSHpcdTAzQkNsbWxkbGtsZm1ubVx1MDNCQ21tbWNta21tbTJjbTJrbTJtbTNjbTNrbTNtXHUyMjE1cyIrCisgICAgICAgICJtXHUyMjE1czJcMDAwa1BhTVBhR1BhcmFkcmFkXHUyMjE1c1wwMDByYWRcdTIyMTVzMlwwMDBwc1x1MDNCQ3Ntc3BWblYiKworICAgICAgICAiXHUwM0JDVm1Wa1ZNVnBXbldcdTAzQkNXbVdrV01Xa1x1MDNBOU1cdTAzQTlhLm0uXDAwMEJxY2NjZENcdTIyMTVrZ1wwMDAiKworICAgICAgICAiQ28uZEJHeWhhSFBpbktLS01rdGxubG9nbHhtYm1pbG1vbFBIcC5tLlwwMDBQUE1QUnNyU3ZXYjFcdTY1RTUyXHU2NUU1IisKKyAgICAgICAgIjNcdTY1RTU0XHU2NUU1NVx1NjVFNTZcdTY1RTU3XHU2NUU1OFx1NjVFNTlcdTY1RTUxMFx1NjVFNTExXHU2NUU1MTJcdTY1RTUiKworICAgICAgICAiMTNcdTY1RTUxNFx1NjVFNTE1XHU2NUU1MTZcdTY1RTUxN1x1NjVFNTE4XHU2NUU1MTlcdTY1RTUyMFx1NjVFNTIxXHU2NUU1IisKKyAgICAgICAgIjIyXHU2NUU1MjNcdTY1RTUyNFx1NjVFNTI1XHU2NUU1MjZcdTY1RTUyN1x1NjVFNTI4XHU2NUU1MjlcdTY1RTUzMFx1NjVFNSIrCisgICAgICAgICIzMVx1NjVFNWZmZmlmbGZmbHN0XHUwNTc0XHUwNTc2XHUwNTc0XHUwNTY1XHUwNTc0XHUwNTZCXHUwNTdFXHUwNTc2XHUwNTc0IisKKyAgICAgICAgIlx1MDU2RFx1MDVFMlx1MDVENFx1MDVEQlx1MDVEQ1x1MDVERFx1MDVFOFx1MDVFQVx1MDVEMFx1MDVEQ1x1MDY3MVx1MDY3QiIrCisgICAgICAgICJcdTA2N0VcdTA2ODBcdTA2N0FcdTA2N0ZcdTA2NzlcdTA2QTRcdTA2QTZcdTA2ODRcdTA2ODNcdTA2ODZcdTA2ODdcdTA2OEQiKworICAgICAgICAiXHUwNjhDXHUwNjhFXHUwNjg4XHUwNjk4XHUwNjkxXHUwNkE5XHUwNkFGXHUwNkIzXHUwNkIxXHUwNkJBXHUwNkJCXHUwNkQ1IisKKyAgICAgICAgIlx1MDY1NFx1MDZDMVx1MDZCRVx1MDZEMlx1MDZEMlx1MDY1NFx1MDZBRFx1MDZDNlx1MDZDOFx1MDZDQlx1MDZDNVx1MDZDOSIrCisgICAgICAgICJcdTA2RDBcdTA2NDlcdTA2NEFcdTA2NTRcdTA2MjdcdTA2NEFcdTA2NTRcdTA2RDVcdTA2NEFcdTA2NTRcdTA2NDhcdTA2NEEiKworICAgICAgICAiXHUwNjU0XHUwNkM3XHUwNjRBXHUwNjU0XHUwNkM2XHUwNjRBXHUwNjU0XHUwNkM4XHUwNjRBXHUwNjU0XHUwNkQwXHUwNjRBIisKKyAgICAgICAgIlx1MDY1NFx1MDY0OVx1MDZDQ1x1MDY0QVx1MDY1NFx1MDYyQ1x1MDY0QVx1MDY1NFx1MDYyRFx1MDY0QVx1MDY1NFx1MDY0NSIrCisgICAgICAgICJcdTA2NEFcdTA2NTRcdTA2NEFcdTA2MjhcdTA2MkNcdTA2MjhcdTA2MkRcdTA2MjhcdTA2MkVcdTA2MjhcdTA2NDVcdTA2MjgiKworICAgICAgICAiXHUwNjQ5XHUwNjI4XHUwNjRBXHUwNjJBXHUwNjJDXHUwNjJBXHUwNjJEXHUwNjJBXHUwNjJFXHUwNjJBXHUwNjQ1XHUwNjJBIisKKyAgICAgICAgIlx1MDY0OVx1MDYyQVx1MDY0QVx1MDYyQlx1MDYyQ1x1MDYyQlx1MDY0NVx1MDYyQlx1MDY0OVx1MDYyQlx1MDY0QVx1MDYyQyIrCisgICAgICAgICJcdTA2MkRcdTA2MkNcdTA2NDVcdTA2MkRcdTA2NDVcdTA2MkVcdTA2MkNcdTA2MkVcdTA2MkRcdTA2MkVcdTA2NDVcdTA2MzMiKworICAgICAgICAiXHUwNjJDXHUwNjMzXHUwNjJEXHUwNjMzXHUwNjJFXHUwNjMzXHUwNjQ1XHUwNjM1XHUwNjJEXHUwNjM1XHUwNjQ1XHUwNjM2IisKKyAgICAgICAgIlx1MDYyQ1x1MDYzNlx1MDYyRFx1MDYzNlx1MDYyRVx1MDYzNlx1MDY0NVx1MDYzN1x1MDYyRFx1MDYzN1x1MDY0NVx1MDYzOCIrCisgICAgICAgICJcdTA2NDVcdTA2MzlcdTA2MkNcdTA2MzlcdTA2NDVcdTA2M0FcdTA2MkNcdTA2M0FcdTA2NDVcdTA2NDFcdTA2MkNcdTA2NDEiKworICAgICAgICAiXHUwNjJEXHUwNjQxXHUwNjJFXHUwNjQxXHUwNjQ1XHUwNjQxXHUwNjQ5XHUwNjQxXHUwNjRBXHUwNjQyXHUwNjJEXHUwNjQyIisKKyAgICAgICAgIlx1MDY0NVx1MDY0Mlx1MDY0OVx1MDY0Mlx1MDY0QVx1MDY0M1x1MDYyN1x1MDY0M1x1MDYyQ1x1MDY0M1x1MDYyRFx1MDY0MyIrCisgICAgICAgICJcdTA2MkVcdTA2NDNcdTA2NDRcdTA2NDNcdTA2NDVcdTA2NDNcdTA2NDlcdTA2NDNcdTA2NEFcdTA2NDRcdTA2MkNcdTA2NDQiKworICAgICAgICAiXHUwNjJEXHUwNjQ0XHUwNjJFXHUwNjQ0XHUwNjQ1XHUwNjQ0XHUwNjQ5XHUwNjQ0XHUwNjRBXHUwNjQ1XHUwNjJDXHUwNjQ1IisKKyAgICAgICAgIlx1MDY0NVx1MDY0NVx1MDY0OVx1MDY0Nlx1MDYyQ1x1MDY0Nlx1MDYyRFx1MDY0Nlx1MDYyRVx1MDY0Nlx1MDY0NVx1MDY0NiIrCisgICAgICAgICJcdTA2NDlcdTA2NDZcdTA2NEFcdTA2NDdcdTA2MkNcdTA2NDdcdTA2NDVcdTA2NDdcdTA2NDlcdTA2NDdcdTA2NEFcdTA2NEEiKworICAgICAgICAiXHUwNjJEXHUwNjRBXHUwNjJFXHUwNjRBXHUwNjQ5XHUwNjMwXHUwNjcwXHUwNjMxXHUwNjcwXHUwNjQ5XHUwNjcwIFx1MDY0QyIrCisgICAgICAgICJcdTA2NTEgXHUwNjREXHUwNjUxIFx1MDY0RVx1MDY1MSBcdTA2NEZcdTA2NTEgXHUwNjUwXHUwNjUxIFx1MDY1MVx1MDY3MCIrCisgICAgICAgICJcdTA2NEFcdTA2NTRcdTA2MzFcdTA2NEFcdTA2NTRcdTA2MzJcdTA2NEFcdTA2NTRcdTA2NDZcdTA2MjhcdTA2MzFcdTA2MjgiKworICAgICAgICAiXHUwNjMyXHUwNjI4XHUwNjQ2XHUwNjJBXHUwNjMxXHUwNjJBXHUwNjMyXHUwNjJBXHUwNjQ2XHUwNjJCXHUwNjMxXHUwNjJCIisKKyAgICAgICAgIlx1MDYzMlx1MDYyQlx1MDY0Nlx1MDY0NVx1MDYyN1x1MDY0Nlx1MDYzMVx1MDY0Nlx1MDYzMlx1MDY0Nlx1MDY0Nlx1MDY0QSIrCisgICAgICAgICJcdTA2MzFcdTA2NEFcdTA2MzJcdTA2NEFcdTA2NDZcdTA2NEFcdTA2NTRcdTA2MkVcdTA2NEFcdTA2NTRcdTA2NDdcdTA2MjgiKworICAgICAgICAiXHUwNjQ3XHUwNjJBXHUwNjQ3XHUwNjM1XHUwNjJFXHUwNjQ0XHUwNjQ3XHUwNjQ2XHUwNjQ3XHUwNjQ3XHUwNjcwXHUwNjJCIisKKyAgICAgICAgIlx1MDY0N1x1MDYzM1x1MDY0N1x1MDYzNFx1MDY0NVx1MDYzNFx1MDY0N1x1MDY0MFx1MDY0RVx1MDY1MVx1MDY0MFx1MDY0RiIrCisgICAgICAgICJcdTA2NTFcdTA2NDBcdTA2NTBcdTA2NTFcdTA2MzdcdTA2NDlcdTA2MzdcdTA2NEFcdTA2MzlcdTA2NDlcdTA2MzlcdTA2NEEiKworICAgICAgICAiXHUwNjNBXHUwNjQ5XHUwNjNBXHUwNjRBXHUwNjMzXHUwNjQ5XHUwNjMzXHUwNjRBXHUwNjM0XHUwNjQ5XHUwNjM0XHUwNjRBIisKKyAgICAgICAgIlx1MDYyRFx1MDY0OVx1MDYyQ1x1MDY0OVx1MDYyRVx1MDY0OVx1MDYzNVx1MDY0OVx1MDYzNVx1MDY0QVx1MDYzNlx1MDY0OSIrCisgICAgICAgICJcdTA2MzZcdTA2NEFcdTA2MzRcdTA2MkNcdTA2MzRcdTA2MkRcdTA2MzRcdTA2MkVcdTA2MzRcdTA2MzFcdTA2MzNcdTA2MzEiKworICAgICAgICAiXHUwNjM1XHUwNjMxXHUwNjM2XHUwNjMxXHUwNjI3XHUwNjRCXHUwNjJBXHUwNjJDXHUwNjQ1XHUwNjJBXHUwNjJEXHUwNjJDIisKKyAgICAgICAgIlx1MDYyQVx1MDYyRFx1MDY0NVx1MDYyQVx1MDYyRVx1MDY0NVx1MDYyQVx1MDY0NVx1MDYyQ1x1MDYyQVx1MDY0NVx1MDYyRCIrCisgICAgICAgICJcdTA2MkFcdTA2NDVcdTA2MkVcdTA2MkRcdTA2NDVcdTA2NEFcdTA2MkRcdTA2NDVcdTA2NDlcdTA2MzNcdTA2MkRcdTA2MkMiKworICAgICAgICAiXHUwNjMzXHUwNjJDXHUwNjJEXHUwNjMzXHUwNjJDXHUwNjQ5XHUwNjMzXHUwNjQ1XHUwNjJEXHUwNjMzXHUwNjQ1XHUwNjJDIisKKyAgICAgICAgIlx1MDYzM1x1MDY0NVx1MDY0NVx1MDYzNVx1MDYyRFx1MDYyRFx1MDYzNVx1MDY0NVx1MDY0NVx1MDYzNFx1MDYyRFx1MDY0NSIrCisgICAgICAgICJcdTA2MzRcdTA2MkNcdTA2NEFcdTA2MzRcdTA2NDVcdTA2MkVcdTA2MzRcdTA2NDVcdTA2NDVcdTA2MzZcdTA2MkRcdTA2NDkiKworICAgICAgICAiXHUwNjM2XHUwNjJFXHUwNjQ1XHUwNjM3XHUwNjQ1XHUwNjJEXHUwNjM3XHUwNjQ1XHUwNjQ1XHUwNjM3XHUwNjQ1XHUwNjRBIisKKyAgICAgICAgIlx1MDYzOVx1MDYyQ1x1MDY0NVx1MDYzOVx1MDY0NVx1MDY0NVx1MDYzOVx1MDY0NVx1MDY0OVx1MDYzQVx1MDY0NVx1MDY0NSIrCisgICAgICAgICJcdTA2M0FcdTA2NDVcdTA2NEFcdTA2M0FcdTA2NDVcdTA2NDlcdTA2NDFcdTA2MkVcdTA2NDVcdTA2NDJcdTA2NDVcdTA2MkQiKworICAgICAgICAiXHUwNjQyXHUwNjQ1XHUwNjQ1XHUwNjQ0XHUwNjJEXHUwNjQ1XHUwNjQ0XHUwNjJEXHUwNjRBXHUwNjQ0XHUwNjJEXHUwNjQ5IisKKyAgICAgICAgIlx1MDY0NFx1MDYyQ1x1MDYyQ1x1MDY0NFx1MDYyRVx1MDY0NVx1MDY0NFx1MDY0NVx1MDYyRFx1MDY0NVx1MDYyRFx1MDYyQyIrCisgICAgICAgICJcdTA2NDVcdTA2MkRcdTA2NEFcdTA2NDVcdTA2MkNcdTA2MkRcdTA2NDVcdTA2MkVcdTA2NDVcdTA2NDVcdTA2MkNcdTA2MkUiKworICAgICAgICAiXHUwNjQ3XHUwNjQ1XHUwNjJDXHUwNjQ3XHUwNjQ1XHUwNjQ1XHUwNjQ2XHUwNjJEXHUwNjQ1XHUwNjQ2XHUwNjJEXHUwNjQ5IisKKyAgICAgICAgIlx1MDY0Nlx1MDYyQ1x1MDY0NVx1MDY0Nlx1MDYyQ1x1MDY0OVx1MDY0Nlx1MDY0NVx1MDY0QVx1MDY0Nlx1MDY0NVx1MDY0OSIrCisgICAgICAgICJcdTA2NEFcdTA2NDVcdTA2NDVcdTA2MjhcdTA2MkVcdTA2NEFcdTA2MkFcdTA2MkNcdTA2NEFcdTA2MkFcdTA2MkNcdTA2NDkiKworICAgICAgICAiXHUwNjJBXHUwNjJFXHUwNjRBXHUwNjJBXHUwNjJFXHUwNjQ5XHUwNjJBXHUwNjQ1XHUwNjRBXHUwNjJBXHUwNjQ1XHUwNjQ5IisKKyAgICAgICAgIlx1MDYyQ1x1MDY0NVx1MDY0QVx1MDYyQ1x1MDYyRFx1MDY0OVx1MDYyQ1x1MDY0NVx1MDY0OVx1MDYzM1x1MDYyRVx1MDY0OSIrCisgICAgICAgICJcdTA2MzVcdTA2MkRcdTA2NEFcdTA2MzRcdTA2MkRcdTA2NEFcdTA2MzZcdTA2MkRcdTA2NEFcdTA2NDRcdTA2MkNcdTA2NEEiKworICAgICAgICAiXHUwNjQ0XHUwNjQ1XHUwNjRBXHUwNjRBXHUwNjJDXHUwNjRBXHUwNjRBXHUwNjQ1XHUwNjRBXHUwNjQ1XHUwNjQ1XHUwNjRBIisKKyAgICAgICAgIlx1MDY0Mlx1MDY0NVx1MDY0QVx1MDY0Nlx1MDYyRFx1MDY0QVx1MDYzOVx1MDY0NVx1MDY0QVx1MDY0M1x1MDY0NVx1MDY0QSIrCisgICAgICAgICJcdTA2NDZcdTA2MkNcdTA2MkRcdTA2NDVcdTA2MkVcdTA2NEFcdTA2NDRcdTA2MkNcdTA2NDVcdTA2NDNcdTA2NDVcdTA2NDUiKworICAgICAgICAiXHUwNjJDXHUwNjJEXHUwNjRBXHUwNjJEXHUwNjJDXHUwNjRBXHUwNjQ1XHUwNjJDXHUwNjRBXHUwNjQxXHUwNjQ1XHUwNjRBIisKKyAgICAgICAgIlx1MDYyOFx1MDYyRFx1MDY0QVx1MDYzM1x1MDYyRVx1MDY0QVx1MDY0Nlx1MDYyQ1x1MDY0QVx1MDYzNVx1MDY0NFx1MDZEMiIrCisgICAgICAgICJcdTA2NDJcdTA2NDRcdTA2RDJcdTA2MjdcdTA2NDRcdTA2NDRcdTA2NDdcMDAwXHUwNjI3XHUwNjQzXHUwNjI4XHUwNjMxIisKKyAgICAgICAgIlwwMDBcdTA2NDVcdTA2MkRcdTA2NDVcdTA2MkZcMDAwXHUwNjM1XHUwNjQ0XHUwNjM5XHUwNjQ1XDAwMFx1MDYzMVx1MDYzMyIrCisgICAgICAgICJcdTA2NDhcdTA2NDRcMDAwXHUwNjM5XHUwNjQ0XHUwNjRBXHUwNjQ3XDAwMFx1MDY0OFx1MDYzM1x1MDY0NFx1MDY0NVwwMDAiKworICAgICAgICAiXHUwNjM1XHUwNjQ0XHUwNjQ5XHUwNjM1XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDY0NFx1MDY0NyBcdTA2MzlcdTA2NDQiKworICAgICAgICAiXHUwNjRBXHUwNjQ3IFx1MDY0OFx1MDYzM1x1MDY0NFx1MDY0NVwwMDBcdTA2MkNcdTA2NDQgXHUwNjJDXHUwNjQ0XHUwNjI3IisKKyAgICAgICAgIlx1MDY0NFx1MDY0N1wwMDBcdTIwMTRcdTIwMTNfe31cdTMwMTRcdTMwMTVcdTMwMTBcdTMwMTFcdTMwMEFcdTMwMEJcdTMwMDgiKworICAgICAgICAiXHUzMDA5XHUzMDBDXHUzMDBEXHUzMDBFXHUzMDBGLFx1MzAwMTs6IyYqLTw+XDEzNCQlQCBcdTA2NEJcdTA2NDBcdTA2NEIiKworICAgICAgICAiXHUwNjQwXHUwNjUxIFx1MDY1Mlx1MDY0MFx1MDY1Mlx1MDYyMVx1MDYyN1x1MDY1M1x1MDYyN1x1MDY1NFx1MDY0OFx1MDY1NCIrCisgICAgICAgICJcdTA2MjdcdTA2NTVcdTA2MjlcdTA2NDRcdTA2MjdcdTA2NTNcdTA2NDRcdTA2MjdcdTA2NTRcdTA2NDRcdTA2MjdcdTA2NTUiKworICAgICAgICAiXDA0MidbXV5gfH5cdTMwMDJcdTMwRkJcdTMwQTVcdTMwRTNcdTAwQTJcdTAwQTNcdTAwQUNcdTAwQTZcdTAwQTVcdTIwQTkiKworICAgICAgICAiXHUyNTAyXHUyMTkwXHUyMTkxXHUyMTkyXHUyMTkzXHUyNUEwXHUyNUNCQVx1MDMwMEFcdTAzMDFBXHUwMzAyQVx1MDMwMyIrCisgICAgICAgICJBXHUwMzA4QVx1MDMwQUNcdTAzMjdFXHUwMzAwRVx1MDMwMUVcdTAzMDJFXHUwMzA4SVx1MDMwMElcdTAzMDFJXHUwMzAyIisKKyAgICAgICAgIklcdTAzMDhOXHUwMzAzT1x1MDMwME9cdTAzMDFPXHUwMzAyT1x1MDMwM09cdTAzMDhVXHUwMzAwVVx1MDMwMVVcdTAzMDIiKworICAgICAgICAiVVx1MDMwOFlcdTAzMDFhXHUwMzAwYVx1MDMwMWFcdTAzMDJhXHUwMzAzYVx1MDMwOGFcdTAzMEFjXHUwMzI3ZVx1MDMwMCIrCisgICAgICAgICJlXHUwMzAxZVx1MDMwMmVcdTAzMDhpXHUwMzAwaVx1MDMwMWlcdTAzMDJpXHUwMzA4blx1MDMwM29cdTAzMDBvXHUwMzAxIisKKyAgICAgICAgIm9cdTAzMDJvXHUwMzAzb1x1MDMwOHVcdTAzMDB1XHUwMzAxdVx1MDMwMnVcdTAzMDh5XHUwMzAxeVx1MDMwOEFcdTAzMDQiKworICAgICAgICAiYVx1MDMwNEFcdTAzMDZhXHUwMzA2QVx1MDMyOGFcdTAzMjhDXHUwMzAxY1x1MDMwMUNcdTAzMDJjXHUwMzAyQ1x1MDMwNyIrCisgICAgICAgICJjXHUwMzA3Q1x1MDMwQ2NcdTAzMENEXHUwMzBDZFx1MDMwQ0VcdTAzMDRlXHUwMzA0RVx1MDMwNmVcdTAzMDZFXHUwMzA3IisKKyAgICAgICAgImVcdTAzMDdFXHUwMzI4ZVx1MDMyOEVcdTAzMENlXHUwMzBDR1x1MDMwMmdcdTAzMDJHXHUwMzA2Z1x1MDMwNkdcdTAzMDciKworICAgICAgICAiZ1x1MDMwN0dcdTAzMjdnXHUwMzI3SFx1MDMwMmhcdTAzMDJJXHUwMzAzaVx1MDMwM0lcdTAzMDRpXHUwMzA0SVx1MDMwNiIrCisgICAgICAgICJpXHUwMzA2SVx1MDMyOGlcdTAzMjhJXHUwMzA3Slx1MDMwMmpcdTAzMDJLXHUwMzI3a1x1MDMyN0xcdTAzMDFsXHUwMzAxIisKKyAgICAgICAgIkxcdTAzMjdsXHUwMzI3TFx1MDMwQ2xcdTAzMENOXHUwMzAxblx1MDMwMU5cdTAzMjduXHUwMzI3Tlx1MDMwQ25cdTAzMEMiKworICAgICAgICAiT1x1MDMwNG9cdTAzMDRPXHUwMzA2b1x1MDMwNk9cdTAzMEJvXHUwMzBCUlx1MDMwMXJcdTAzMDFSXHUwMzI3clx1MDMyNyIrCisgICAgICAgICJSXHUwMzBDclx1MDMwQ1NcdTAzMDFzXHUwMzAxU1x1MDMwMnNcdTAzMDJTXHUwMzI3c1x1MDMyN1NcdTAzMENzXHUwMzBDIisKKyAgICAgICAgIlRcdTAzMjd0XHUwMzI3VFx1MDMwQ3RcdTAzMENVXHUwMzAzdVx1MDMwM1VcdTAzMDR1XHUwMzA0VVx1MDMwNnVcdTAzMDYiKworICAgICAgICAiVVx1MDMwQXVcdTAzMEFVXHUwMzBCdVx1MDMwQlVcdTAzMjh1XHUwMzI4V1x1MDMwMndcdTAzMDJZXHUwMzAyeVx1MDMwMiIrCisgICAgICAgICJZXHUwMzA4Wlx1MDMwMXpcdTAzMDFaXHUwMzA3elx1MDMwN1pcdTAzMEN6XHUwMzBDT1x1MDMxQm9cdTAzMUJVXHUwMzFCIisKKyAgICAgICAgInVcdTAzMUJBXHUwMzBDYVx1MDMwQ0lcdTAzMENpXHUwMzBDT1x1MDMwQ29cdTAzMENVXHUwMzBDdVx1MDMwQ1VcdTAzMDgiKworICAgICAgICAiXHUwMzA0dVx1MDMwOFx1MDMwNFVcdTAzMDhcdTAzMDF1XHUwMzA4XHUwMzAxVVx1MDMwOFx1MDMwQ3VcdTAzMDhcdTAzMEMiKworICAgICAgICAiVVx1MDMwOFx1MDMwMHVcdTAzMDhcdTAzMDBBXHUwMzA4XHUwMzA0YVx1MDMwOFx1MDMwNEFcdTAzMDdcdTAzMDRhXHUwMzA3IisKKyAgICAgICAgIlx1MDMwNFx1MDBDNlx1MDMwNFx1MDBFNlx1MDMwNEdcdTAzMENnXHUwMzBDS1x1MDMwQ2tcdTAzMENPXHUwMzI4b1x1MDMyOCIrCisgICAgICAgICJPXHUwMzI4XHUwMzA0b1x1MDMyOFx1MDMwNFx1MDFCN1x1MDMwQ1x1MDI5Mlx1MDMwQ2pcdTAzMENHXHUwMzAxZ1x1MDMwMSIrCisgICAgICAgICJOXHUwMzAwblx1MDMwMEFcdTAzMEFcdTAzMDFhXHUwMzBBXHUwMzAxXHUwMEM2XHUwMzAxXHUwMEU2XHUwMzAxXHUwMEQ4IisKKyAgICAgICAgIlx1MDMwMVx1MDBGOFx1MDMwMUFcdTAzMEZhXHUwMzBGQVx1MDMxMWFcdTAzMTFFXHUwMzBGZVx1MDMwRkVcdTAzMTFlXHUwMzExIisKKyAgICAgICAgIklcdTAzMEZpXHUwMzBGSVx1MDMxMWlcdTAzMTFPXHUwMzBGb1x1MDMwRk9cdTAzMTFvXHUwMzExUlx1MDMwRnJcdTAzMEYiKworICAgICAgICAiUlx1MDMxMXJcdTAzMTFVXHUwMzBGdVx1MDMwRlVcdTAzMTF1XHUwMzExU1x1MDMyNnNcdTAzMjZUXHUwMzI2dFx1MDMyNiIrCisgICAgICAgICJIXHUwMzBDaFx1MDMwQ0FcdTAzMDdhXHUwMzA3RVx1MDMyN2VcdTAzMjdPXHUwMzA4XHUwMzA0b1x1MDMwOFx1MDMwNE8iKworICAgICAgICAiXHUwMzAzXHUwMzA0b1x1MDMwM1x1MDMwNE9cdTAzMDdvXHUwMzA3T1x1MDMwN1x1MDMwNG9cdTAzMDdcdTAzMDRZXHUwMzA0IisKKyAgICAgICAgInlcdTAzMDRcdTAzMDBcdTAzMDFcdTAzMTNcdTAzMDhcdTAzMDFcdTAyQjk7XHUwMEE4XHUwMzAxXHUwMzkxXHUwMzAxXHUwMEI3IisKKyAgICAgICAgIlx1MDM5NVx1MDMwMVx1MDM5N1x1MDMwMVx1MDM5OVx1MDMwMVx1MDM5Rlx1MDMwMVx1MDNBNVx1MDMwMVx1MDNBOVx1MDMwMSIrCisgICAgICAgICJcdTAzQjlcdTAzMDhcdTAzMDFcdTAzOTlcdTAzMDhcdTAzQTVcdTAzMDhcdTAzQjFcdTAzMDFcdTAzQjVcdTAzMDFcdTAzQjciKworICAgICAgICAiXHUwMzAxXHUwM0I5XHUwMzAxXHUwM0M1XHUwMzA4XHUwMzAxXHUwM0I5XHUwMzA4XHUwM0M1XHUwMzA4XHUwM0JGXHUwMzAxIisKKyAgICAgICAgIlx1MDNDNVx1MDMwMVx1MDNDOVx1MDMwMVx1MDNEMlx1MDMwMVx1MDNEMlx1MDMwOFx1MDQxNVx1MDMwMFx1MDQxNVx1MDMwOCIrCisgICAgICAgICJcdTA0MTNcdTAzMDFcdTA0MDZcdTAzMDhcdTA0MUFcdTAzMDFcdTA0MThcdTAzMDBcdTA0MjNcdTAzMDZcdTA0MThcdTAzMDYiKworICAgICAgICAiXHUwNDM4XHUwMzA2XHUwNDM1XHUwMzAwXHUwNDM1XHUwMzA4XHUwNDMzXHUwMzAxXHUwNDU2XHUwMzA4XHUwNDNBXHUwMzAxIisKKyAgICAgICAgIlx1MDQzOFx1MDMwMFx1MDQ0M1x1MDMwNlx1MDQ3NFx1MDMwRlx1MDQ3NVx1MDMwRlx1MDQxNlx1MDMwNlx1MDQzNlx1MDMwNiIrCisgICAgICAgICJcdTA0MTBcdTAzMDZcdTA0MzBcdTAzMDZcdTA0MTBcdTAzMDhcdTA0MzBcdTAzMDhcdTA0MTVcdTAzMDZcdTA0MzVcdTAzMDYiKworICAgICAgICAiXHUwNEQ4XHUwMzA4XHUwNEQ5XHUwMzA4XHUwNDE2XHUwMzA4XHUwNDM2XHUwMzA4XHUwNDE3XHUwMzA4XHUwNDM3XHUwMzA4IisKKyAgICAgICAgIlx1MDQxOFx1MDMwNFx1MDQzOFx1MDMwNFx1MDQxOFx1MDMwOFx1MDQzOFx1MDMwOFx1MDQxRVx1MDMwOFx1MDQzRVx1MDMwOCIrCisgICAgICAgICJcdTA0RThcdTAzMDhcdTA0RTlcdTAzMDhcdTA0MkRcdTAzMDhcdTA0NERcdTAzMDhcdTA0MjNcdTAzMDRcdTA0NDNcdTAzMDQiKworICAgICAgICAiXHUwNDIzXHUwMzA4XHUwNDQzXHUwMzA4XHUwNDIzXHUwMzBCXHUwNDQzXHUwMzBCXHUwNDI3XHUwMzA4XHUwNDQ3XHUwMzA4IisKKyAgICAgICAgIlx1MDQyQlx1MDMwOFx1MDQ0Qlx1MDMwOFx1MDYyN1x1MDY1M1x1MDYyN1x1MDY1NFx1MDY0OFx1MDY1NFx1MDYyN1x1MDY1NSIrCisgICAgICAgICJcdTA2NEFcdTA2NTRcdTA2RDVcdTA2NTRcdTA2QzFcdTA2NTRcdTA2RDJcdTA2NTRcdTA5MjhcdTA5M0NcdTA5MzBcdTA5M0MiKworICAgICAgICAiXHUwOTMzXHUwOTNDXHUwOTE1XHUwOTNDXHUwOTE2XHUwOTNDXHUwOTE3XHUwOTNDXHUwOTFDXHUwOTNDXHUwOTIxXHUwOTNDIisKKyAgICAgICAgIlx1MDkyMlx1MDkzQ1x1MDkyQlx1MDkzQ1x1MDkyRlx1MDkzQ1x1MDlDN1x1MDlCRVx1MDlDN1x1MDlEN1x1MDlBMVx1MDlCQyIrCisgICAgICAgICJcdTA5QTJcdTA5QkNcdTA5QUZcdTA5QkNcdTBBMzJcdTBBM0NcdTBBMzhcdTBBM0NcdTBBMTZcdTBBM0NcdTBBMTdcdTBBM0MiKworICAgICAgICAiXHUwQTFDXHUwQTNDXHUwQTJCXHUwQTNDXHUwQjQ3XHUwQjU2XHUwQjQ3XHUwQjNFXHUwQjQ3XHUwQjU3XHUwQjIxXHUwQjNDIisKKyAgICAgICAgIlx1MEIyMlx1MEIzQ1x1MEI5Mlx1MEJEN1x1MEJDNlx1MEJCRVx1MEJDN1x1MEJCRVx1MEJDNlx1MEJEN1x1MEM0Nlx1MEM1NiIrCisgICAgICAgICJcdTBDQkZcdTBDRDVcdTBDQzZcdTBDRDVcdTBDQzZcdTBDRDZcdTBDQzZcdTBDQzJcdTBDQzZcdTBDQzJcdTBDRDVcdTBENDYiKworICAgICAgICAiXHUwRDNFXHUwRDQ3XHUwRDNFXHUwRDQ2XHUwRDU3XHUwREQ5XHUwRENBXHUwREQ5XHUwRENGXHUwREQ5XHUwRENGXHUwRENBIisKKyAgICAgICAgIlx1MEREOVx1MERERlx1MEY0Mlx1MEZCN1x1MEY0Q1x1MEZCN1x1MEY1MVx1MEZCN1x1MEY1Nlx1MEZCN1x1MEY1Qlx1MEZCNyIrCisgICAgICAgICJcdTBGNDBcdTBGQjVcdTBGNzFcdTBGNzJcdTBGNzFcdTBGNzRcdTBGQjJcdTBGODBcdTBGQjNcdTBGODBcdTBGNzFcdTBGODAiKworICAgICAgICAiXHUwRjkyXHUwRkI3XHUwRjlDXHUwRkI3XHUwRkExXHUwRkI3XHUwRkE2XHUwRkI3XHUwRkFCXHUwRkI3XHUwRjkwXHUwRkI1IisKKyAgICAgICAgIlx1MTAyNVx1MTAyRUFcdTAzMjVhXHUwMzI1Qlx1MDMwN2JcdTAzMDdCXHUwMzIzYlx1MDMyM0JcdTAzMzFiXHUwMzMxQyIrCisgICAgICAgICJcdTAzMjdcdTAzMDFjXHUwMzI3XHUwMzAxRFx1MDMwN2RcdTAzMDdEXHUwMzIzZFx1MDMyM0RcdTAzMzFkXHUwMzMxRFx1MDMyNyIrCisgICAgICAgICJkXHUwMzI3RFx1MDMyRGRcdTAzMkRFXHUwMzA0XHUwMzAwZVx1MDMwNFx1MDMwMEVcdTAzMDRcdTAzMDFlXHUwMzA0XHUwMzAxIisKKyAgICAgICAgIkVcdTAzMkRlXHUwMzJERVx1MDMzMGVcdTAzMzBFXHUwMzI3XHUwMzA2ZVx1MDMyN1x1MDMwNkZcdTAzMDdmXHUwMzA3RyIrCisgICAgICAgICJcdTAzMDRnXHUwMzA0SFx1MDMwN2hcdTAzMDdIXHUwMzIzaFx1MDMyM0hcdTAzMDhoXHUwMzA4SFx1MDMyN2hcdTAzMjciKworICAgICAgICAiSFx1MDMyRWhcdTAzMkVJXHUwMzMwaVx1MDMzMElcdTAzMDhcdTAzMDFpXHUwMzA4XHUwMzAxS1x1MDMwMWtcdTAzMDFLIisKKyAgICAgICAgIlx1MDMyM2tcdTAzMjNLXHUwMzMxa1x1MDMzMUxcdTAzMjNsXHUwMzIzTFx1MDMyM1x1MDMwNGxcdTAzMjNcdTAzMDRMXHUwMzMxIisKKyAgICAgICAgImxcdTAzMzFMXHUwMzJEbFx1MDMyRE1cdTAzMDFtXHUwMzAxTVx1MDMwN21cdTAzMDdNXHUwMzIzbVx1MDMyM05cdTAzMDciKworICAgICAgICAiblx1MDMwN05cdTAzMjNuXHUwMzIzTlx1MDMzMW5cdTAzMzFOXHUwMzJEblx1MDMyRE9cdTAzMDNcdTAzMDFvXHUwMzAzIisKKyAgICAgICAgIlx1MDMwMU9cdTAzMDNcdTAzMDhvXHUwMzAzXHUwMzA4T1x1MDMwNFx1MDMwMG9cdTAzMDRcdTAzMDBPXHUwMzA0XHUwMzAxIisKKyAgICAgICAgIm9cdTAzMDRcdTAzMDFQXHUwMzAxcFx1MDMwMVBcdTAzMDdwXHUwMzA3Ulx1MDMwN3JcdTAzMDdSXHUwMzIzclx1MDMyMyIrCisgICAgICAgICJSXHUwMzIzXHUwMzA0clx1MDMyM1x1MDMwNFJcdTAzMzFyXHUwMzMxU1x1MDMwN3NcdTAzMDdTXHUwMzIzc1x1MDMyM1MiKworICAgICAgICAiXHUwMzAxXHUwMzA3c1x1MDMwMVx1MDMwN1NcdTAzMENcdTAzMDdzXHUwMzBDXHUwMzA3U1x1MDMyM1x1MDMwN3NcdTAzMjMiKworICAgICAgICAiXHUwMzA3VFx1MDMwN3RcdTAzMDdUXHUwMzIzdFx1MDMyM1RcdTAzMzF0XHUwMzMxVFx1MDMyRHRcdTAzMkRVXHUwMzI0IisKKyAgICAgICAgInVcdTAzMjRVXHUwMzMwdVx1MDMzMFVcdTAzMkR1XHUwMzJEVVx1MDMwM1x1MDMwMXVcdTAzMDNcdTAzMDFVXHUwMzA0XHUwMzA4IisKKyAgICAgICAgInVcdTAzMDRcdTAzMDhWXHUwMzAzdlx1MDMwM1ZcdTAzMjN2XHUwMzIzV1x1MDMwMHdcdTAzMDBXXHUwMzAxd1x1MDMwMSIrCisgICAgICAgICJXXHUwMzA4d1x1MDMwOFdcdTAzMDd3XHUwMzA3V1x1MDMyM3dcdTAzMjNYXHUwMzA3eFx1MDMwN1hcdTAzMDh4XHUwMzA4IisKKyAgICAgICAgIllcdTAzMDd5XHUwMzA3Wlx1MDMwMnpcdTAzMDJaXHUwMzIzelx1MDMyM1pcdTAzMzF6XHUwMzMxaFx1MDMzMXRcdTAzMDgiKworICAgICAgICAid1x1MDMwQXlcdTAzMEFcdTAxN0ZcdTAzMDdBXHUwMzIzYVx1MDMyM0FcdTAzMDlhXHUwMzA5QVx1MDMwMlx1MDMwMWFcdTAzMDIiKworICAgICAgICAiXHUwMzAxQVx1MDMwMlx1MDMwMGFcdTAzMDJcdTAzMDBBXHUwMzAyXHUwMzA5YVx1MDMwMlx1MDMwOUFcdTAzMDJcdTAzMDMiKworICAgICAgICAiYVx1MDMwMlx1MDMwM0FcdTAzMjNcdTAzMDJhXHUwMzIzXHUwMzAyQVx1MDMwNlx1MDMwMWFcdTAzMDZcdTAzMDFBXHUwMzA2IisKKyAgICAgICAgIlx1MDMwMGFcdTAzMDZcdTAzMDBBXHUwMzA2XHUwMzA5YVx1MDMwNlx1MDMwOUFcdTAzMDZcdTAzMDNhXHUwMzA2XHUwMzAzIisKKyAgICAgICAgIkFcdTAzMjNcdTAzMDZhXHUwMzIzXHUwMzA2RVx1MDMyM2VcdTAzMjNFXHUwMzA5ZVx1MDMwOUVcdTAzMDNlXHUwMzAzRSIrCisgICAgICAgICJcdTAzMDJcdTAzMDFlXHUwMzAyXHUwMzAxRVx1MDMwMlx1MDMwMGVcdTAzMDJcdTAzMDBFXHUwMzAyXHUwMzA5ZVx1MDMwMiIrCisgICAgICAgICJcdTAzMDlFXHUwMzAyXHUwMzAzZVx1MDMwMlx1MDMwM0VcdTAzMjNcdTAzMDJlXHUwMzIzXHUwMzAySVx1MDMwOWlcdTAzMDkiKworICAgICAgICAiSVx1MDMyM2lcdTAzMjNPXHUwMzIzb1x1MDMyM09cdTAzMDlvXHUwMzA5T1x1MDMwMlx1MDMwMW9cdTAzMDJcdTAzMDFPIisKKyAgICAgICAgIlx1MDMwMlx1MDMwMG9cdTAzMDJcdTAzMDBPXHUwMzAyXHUwMzA5b1x1MDMwMlx1MDMwOU9cdTAzMDJcdTAzMDNvXHUwMzAyIisKKyAgICAgICAgIlx1MDMwM09cdTAzMjNcdTAzMDJvXHUwMzIzXHUwMzAyT1x1MDMxQlx1MDMwMW9cdTAzMUJcdTAzMDFPXHUwMzFCXHUwMzAwIisKKyAgICAgICAgIm9cdTAzMUJcdTAzMDBPXHUwMzFCXHUwMzA5b1x1MDMxQlx1MDMwOU9cdTAzMUJcdTAzMDNvXHUwMzFCXHUwMzAzT1x1MDMxQiIrCisgICAgICAgICJcdTAzMjNvXHUwMzFCXHUwMzIzVVx1MDMyM3VcdTAzMjNVXHUwMzA5dVx1MDMwOVVcdTAzMUJcdTAzMDF1XHUwMzFCXHUwMzAxIisKKyAgICAgICAgIlVcdTAzMUJcdTAzMDB1XHUwMzFCXHUwMzAwVVx1MDMxQlx1MDMwOXVcdTAzMUJcdTAzMDlVXHUwMzFCXHUwMzAzdVx1MDMxQiIrCisgICAgICAgICJcdTAzMDNVXHUwMzFCXHUwMzIzdVx1MDMxQlx1MDMyM1lcdTAzMDB5XHUwMzAwWVx1MDMyM3lcdTAzMjNZXHUwMzA5eVx1MDMwOSIrCisgICAgICAgICJZXHUwMzAzeVx1MDMwM1x1MDNCMVx1MDMxM1x1MDNCMVx1MDMxNFx1MDNCMVx1MDMxM1x1MDMwMFx1MDNCMVx1MDMxNFx1MDMwMCIrCisgICAgICAgICJcdTAzQjFcdTAzMTNcdTAzMDFcdTAzQjFcdTAzMTRcdTAzMDFcdTAzQjFcdTAzMTNcdTAzNDJcdTAzQjFcdTAzMTRcdTAzNDIiKworICAgICAgICAiXHUwMzkxXHUwMzEzXHUwMzkxXHUwMzE0XHUwMzkxXHUwMzEzXHUwMzAwXHUwMzkxXHUwMzE0XHUwMzAwXHUwMzkxXHUwMzEzIisKKyAgICAgICAgIlx1MDMwMVx1MDM5MVx1MDMxNFx1MDMwMVx1MDM5MVx1MDMxM1x1MDM0Mlx1MDM5MVx1MDMxNFx1MDM0Mlx1MDNCNVx1MDMxMyIrCisgICAgICAgICJcdTAzQjVcdTAzMTRcdTAzQjVcdTAzMTNcdTAzMDBcdTAzQjVcdTAzMTRcdTAzMDBcdTAzQjVcdTAzMTNcdTAzMDFcdTAzQjUiKworICAgICAgICAiXHUwMzE0XHUwMzAxXHUwMzk1XHUwMzEzXHUwMzk1XHUwMzE0XHUwMzk1XHUwMzEzXHUwMzAwXHUwMzk1XHUwMzE0XHUwMzAwIisKKyAgICAgICAgIlx1MDM5NVx1MDMxM1x1MDMwMVx1MDM5NVx1MDMxNFx1MDMwMVx1MDNCN1x1MDMxM1x1MDNCN1x1MDMxNFx1MDNCN1x1MDMxMyIrCisgICAgICAgICJcdTAzMDBcdTAzQjdcdTAzMTRcdTAzMDBcdTAzQjdcdTAzMTNcdTAzMDFcdTAzQjdcdTAzMTRcdTAzMDFcdTAzQjdcdTAzMTMiKworICAgICAgICAiXHUwMzQyXHUwM0I3XHUwMzE0XHUwMzQyXHUwMzk3XHUwMzEzXHUwMzk3XHUwMzE0XHUwMzk3XHUwMzEzXHUwMzAwXHUwMzk3IisKKyAgICAgICAgIlx1MDMxNFx1MDMwMFx1MDM5N1x1MDMxM1x1MDMwMVx1MDM5N1x1MDMxNFx1MDMwMVx1MDM5N1x1MDMxM1x1MDM0Mlx1MDM5NyIrCisgICAgICAgICJcdTAzMTRcdTAzNDJcdTAzQjlcdTAzMTNcdTAzQjlcdTAzMTRcdTAzQjlcdTAzMTNcdTAzMDBcdTAzQjlcdTAzMTRcdTAzMDAiKworICAgICAgICAiXHUwM0I5XHUwMzEzXHUwMzAxXHUwM0I5XHUwMzE0XHUwMzAxXHUwM0I5XHUwMzEzXHUwMzQyXHUwM0I5XHUwMzE0XHUwMzQyIisKKyAgICAgICAgIlx1MDM5OVx1MDMxM1x1MDM5OVx1MDMxNFx1MDM5OVx1MDMxM1x1MDMwMFx1MDM5OVx1MDMxNFx1MDMwMFx1MDM5OVx1MDMxMyIrCisgICAgICAgICJcdTAzMDFcdTAzOTlcdTAzMTRcdTAzMDFcdTAzOTlcdTAzMTNcdTAzNDJcdTAzOTlcdTAzMTRcdTAzNDJcdTAzQkZcdTAzMTMiKworICAgICAgICAiXHUwM0JGXHUwMzE0XHUwM0JGXHUwMzEzXHUwMzAwXHUwM0JGXHUwMzE0XHUwMzAwXHUwM0JGXHUwMzEzXHUwMzAxXHUwM0JGIisKKyAgICAgICAgIlx1MDMxNFx1MDMwMVx1MDM5Rlx1MDMxM1x1MDM5Rlx1MDMxNFx1MDM5Rlx1MDMxM1x1MDMwMFx1MDM5Rlx1MDMxNFx1MDMwMCIrCisgICAgICAgICJcdTAzOUZcdTAzMTNcdTAzMDFcdTAzOUZcdTAzMTRcdTAzMDFcdTAzQzVcdTAzMTNcdTAzQzVcdTAzMTRcdTAzQzVcdTAzMTMiKworICAgICAgICAiXHUwMzAwXHUwM0M1XHUwMzE0XHUwMzAwXHUwM0M1XHUwMzEzXHUwMzAxXHUwM0M1XHUwMzE0XHUwMzAxXHUwM0M1XHUwMzEzIisKKyAgICAgICAgIlx1MDM0Mlx1MDNDNVx1MDMxNFx1MDM0Mlx1MDNBNVx1MDMxNFx1MDNBNVx1MDMxNFx1MDMwMFx1MDNBNVx1MDMxNFx1MDMwMSIrCisgICAgICAgICJcdTAzQTVcdTAzMTRcdTAzNDJcdTAzQzlcdTAzMTNcdTAzQzlcdTAzMTRcdTAzQzlcdTAzMTNcdTAzMDBcdTAzQzlcdTAzMTQiKworICAgICAgICAiXHUwMzAwXHUwM0M5XHUwMzEzXHUwMzAxXHUwM0M5XHUwMzE0XHUwMzAxXHUwM0M5XHUwMzEzXHUwMzQyXHUwM0M5XHUwMzE0IisKKyAgICAgICAgIlx1MDM0Mlx1MDNBOVx1MDMxM1x1MDNBOVx1MDMxNFx1MDNBOVx1MDMxM1x1MDMwMFx1MDNBOVx1MDMxNFx1MDMwMFx1MDNBOSIrCisgICAgICAgICJcdTAzMTNcdTAzMDFcdTAzQTlcdTAzMTRcdTAzMDFcdTAzQTlcdTAzMTNcdTAzNDJcdTAzQTlcdTAzMTRcdTAzNDJcdTAzQjEiKworICAgICAgICAiXHUwMzAwXHUwM0IxXHUwMzAxXHUwM0I1XHUwMzAwXHUwM0I1XHUwMzAxXHUwM0I3XHUwMzAwXHUwM0I3XHUwMzAxXHUwM0I5IisKKyAgICAgICAgIlx1MDMwMFx1MDNCOVx1MDMwMVx1MDNCRlx1MDMwMFx1MDNCRlx1MDMwMVx1MDNDNVx1MDMwMFx1MDNDNVx1MDMwMVx1MDNDOSIrCisgICAgICAgICJcdTAzMDBcdTAzQzlcdTAzMDFcdTAzQjFcdTAzMTNcdTAzNDVcdTAzQjFcdTAzMTRcdTAzNDVcdTAzQjFcdTAzMTNcdTAzMDAiKworICAgICAgICAiXHUwMzQ1XDAwMFx1MDNCMVx1MDMxNFx1MDMwMFx1MDM0NVwwMDBcdTAzQjFcdTAzMTNcdTAzMDFcdTAzNDVcMDAwXHUwM0IxIisKKyAgICAgICAgIlx1MDMxNFx1MDMwMVx1MDM0NVwwMDBcdTAzQjFcdTAzMTNcdTAzNDJcdTAzNDVcMDAwXHUwM0IxXHUwMzE0XHUwMzQyXHUwMzQ1IisKKyAgICAgICAgIlwwMDBcdTAzOTFcdTAzMTNcdTAzNDVcdTAzOTFcdTAzMTRcdTAzNDVcdTAzOTFcdTAzMTNcdTAzMDBcdTAzNDVcMDAwXHUwMzkxIisKKyAgICAgICAgIlx1MDMxNFx1MDMwMFx1MDM0NVwwMDBcdTAzOTFcdTAzMTNcdTAzMDFcdTAzNDVcMDAwXHUwMzkxXHUwMzE0XHUwMzAxXHUwMzQ1IisKKyAgICAgICAgIlwwMDBcdTAzOTFcdTAzMTNcdTAzNDJcdTAzNDVcMDAwXHUwMzkxXHUwMzE0XHUwMzQyXHUwMzQ1XDAwMFx1MDNCN1x1MDMxMyIrCisgICAgICAgICJcdTAzNDVcdTAzQjdcdTAzMTRcdTAzNDVcdTAzQjdcdTAzMTNcdTAzMDBcdTAzNDVcMDAwXHUwM0I3XHUwMzE0XHUwMzAwIisKKyAgICAgICAgIlx1MDM0NVwwMDBcdTAzQjdcdTAzMTNcdTAzMDFcdTAzNDVcMDAwXHUwM0I3XHUwMzE0XHUwMzAxXHUwMzQ1XDAwMFx1MDNCNyIrCisgICAgICAgICJcdTAzMTNcdTAzNDJcdTAzNDVcMDAwXHUwM0I3XHUwMzE0XHUwMzQyXHUwMzQ1XDAwMFx1MDM5N1x1MDMxM1x1MDM0NVx1MDM5NyIrCisgICAgICAgICJcdTAzMTRcdTAzNDVcdTAzOTdcdTAzMTNcdTAzMDBcdTAzNDVcMDAwXHUwMzk3XHUwMzE0XHUwMzAwXHUwMzQ1XDAwMFx1MDM5NyIrCisgICAgICAgICJcdTAzMTNcdTAzMDFcdTAzNDVcMDAwXHUwMzk3XHUwMzE0XHUwMzAxXHUwMzQ1XDAwMFx1MDM5N1x1MDMxM1x1MDM0Mlx1MDM0NSIrCisgICAgICAgICJcMDAwXHUwMzk3XHUwMzE0XHUwMzQyXHUwMzQ1XDAwMFx1MDNDOVx1MDMxM1x1MDM0NVx1MDNDOVx1MDMxNFx1MDM0NVx1MDNDOSIrCisgICAgICAgICJcdTAzMTNcdTAzMDBcdTAzNDVcMDAwXHUwM0M5XHUwMzE0XHUwMzAwXHUwMzQ1XDAwMFx1MDNDOVx1MDMxM1x1MDMwMVx1MDM0NSIrCisgICAgICAgICJcMDAwXHUwM0M5XHUwMzE0XHUwMzAxXHUwMzQ1XDAwMFx1MDNDOVx1MDMxM1x1MDM0Mlx1MDM0NVwwMDBcdTAzQzlcdTAzMTQiKworICAgICAgICAiXHUwMzQyXHUwMzQ1XDAwMFx1MDNBOVx1MDMxM1x1MDM0NVx1MDNBOVx1MDMxNFx1MDM0NVx1MDNBOVx1MDMxM1x1MDMwMCIrCisgICAgICAgICJcdTAzNDVcMDAwXHUwM0E5XHUwMzE0XHUwMzAwXHUwMzQ1XDAwMFx1MDNBOVx1MDMxM1x1MDMwMVx1MDM0NVwwMDBcdTAzQTkiKworICAgICAgICAiXHUwMzE0XHUwMzAxXHUwMzQ1XDAwMFx1MDNBOVx1MDMxM1x1MDM0Mlx1MDM0NVwwMDBcdTAzQTlcdTAzMTRcdTAzNDJcdTAzNDUiKworICAgICAgICAiXDAwMFx1MDNCMVx1MDMwNlx1MDNCMVx1MDMwNFx1MDNCMVx1MDMwMFx1MDM0NVx1MDNCMVx1MDM0NVx1MDNCMVx1MDMwMSIrCisgICAgICAgICJcdTAzNDVcdTAzQjFcdTAzNDJcdTAzQjFcdTAzNDJcdTAzNDVcdTAzOTFcdTAzMDZcdTAzOTFcdTAzMDRcdTAzOTFcdTAzMDAiKworICAgICAgICAiXHUwMzkxXHUwMzAxXHUwMzkxXHUwMzQ1XHUwM0I5XHUwMEE4XHUwMzQyXHUwM0I3XHUwMzAwXHUwMzQ1XHUwM0I3XHUwMzQ1IisKKyAgICAgICAgIlx1MDNCN1x1MDMwMVx1MDM0NVx1MDNCN1x1MDM0Mlx1MDNCN1x1MDM0Mlx1MDM0NVx1MDM5NVx1MDMwMFx1MDM5NVx1MDMwMSIrCisgICAgICAgICJcdTAzOTdcdTAzMDBcdTAzOTdcdTAzMDFcdTAzOTdcdTAzNDVcdTFGQkZcdTAzMDBcdTFGQkZcdTAzMDFcdTFGQkZcdTAzNDIiKworICAgICAgICAiXHUwM0I5XHUwMzA2XHUwM0I5XHUwMzA0XHUwM0I5XHUwMzA4XHUwMzAwXHUwM0I5XHUwMzA4XHUwMzAxXHUwM0I5XHUwMzQyIisKKyAgICAgICAgIlx1MDNCOVx1MDMwOFx1MDM0Mlx1MDM5OVx1MDMwNlx1MDM5OVx1MDMwNFx1MDM5OVx1MDMwMFx1MDM5OVx1MDMwMVx1MUZGRSIrCisgICAgICAgICJcdTAzMDBcdTFGRkVcdTAzMDFcdTFGRkVcdTAzNDJcdTAzQzVcdTAzMDZcdTAzQzVcdTAzMDRcdTAzQzVcdTAzMDhcdTAzMDAiKworICAgICAgICAiXHUwM0M1XHUwMzA4XHUwMzAxXHUwM0MxXHUwMzEzXHUwM0MxXHUwMzE0XHUwM0M1XHUwMzQyXHUwM0M1XHUwMzA4XHUwMzQyIisKKyAgICAgICAgIlx1MDNBNVx1MDMwNlx1MDNBNVx1MDMwNFx1MDNBNVx1MDMwMFx1MDNBNVx1MDMwMVx1MDNBMVx1MDMxNFx1MDBBOFx1MDMwMCIrCisgICAgICAgICJcdTAwQThcdTAzMDFgXHUwM0M5XHUwMzAwXHUwMzQ1XHUwM0M5XHUwMzQ1XHUwM0M5XHUwMzAxXHUwMzQ1XHUwM0M5XHUwMzQyIisKKyAgICAgICAgIlx1MDNDOVx1MDM0Mlx1MDM0NVx1MDM5Rlx1MDMwMFx1MDM5Rlx1MDMwMVx1MDNBOVx1MDMwMFx1MDNBOVx1MDMwMVx1MDNBOSIrCisgICAgICAgICJcdTAzNDVcdTAwQjRcdTIwMDJcdTIwMDNcdTAzQTlLQVx1MDMwQVx1MjE5MFx1MDMzOFx1MjE5Mlx1MDMzOFx1MjE5NFx1MDMzOCIrCisgICAgICAgICJcdTIxRDBcdTAzMzhcdTIxRDRcdTAzMzhcdTIxRDJcdTAzMzhcdTIyMDNcdTAzMzhcdTIyMDhcdTAzMzhcdTIyMEJcdTAzMzgiKworICAgICAgICAiXHUyMjIzXHUwMzM4XHUyMjI1XHUwMzM4XHUyMjNDXHUwMzM4XHUyMjQzXHUwMzM4XHUyMjQ1XHUwMzM4XHUyMjQ4XHUwMzM4IisKKyAgICAgICAgIj1cdTAzMzhcdTIyNjFcdTAzMzhcdTIyNERcdTAzMzg8XHUwMzM4Plx1MDMzOFx1MjI2NFx1MDMzOFx1MjI2NVx1MDMzOCIrCisgICAgICAgICJcdTIyNzJcdTAzMzhcdTIyNzNcdTAzMzhcdTIyNzZcdTAzMzhcdTIyNzdcdTAzMzhcdTIyN0FcdTAzMzhcdTIyN0JcdTAzMzgiKworICAgICAgICAiXHUyMjgyXHUwMzM4XHUyMjgzXHUwMzM4XHUyMjg2XHUwMzM4XHUyMjg3XHUwMzM4XHUyMkEyXHUwMzM4XHUyMkE4XHUwMzM4IisKKyAgICAgICAgIlx1MjJBOVx1MDMzOFx1MjJBQlx1MDMzOFx1MjI3Q1x1MDMzOFx1MjI3RFx1MDMzOFx1MjI5MVx1MDMzOFx1MjI5Mlx1MDMzOCIrCisgICAgICAgICJcdTIyQjJcdTAzMzhcdTIyQjNcdTAzMzhcdTIyQjRcdTAzMzhcdTIyQjVcdTAzMzhcdTMwMDhcdTMwMDlcdTMwNEJcdTMwOTkiKworICAgICAgICAiXHUzMDREXHUzMDk5XHUzMDRGXHUzMDk5XHUzMDUxXHUzMDk5XHUzMDUzXHUzMDk5XHUzMDU1XHUzMDk5XHUzMDU3XHUzMDk5IisKKyAgICAgICAgIlx1MzA1OVx1MzA5OVx1MzA1Qlx1MzA5OVx1MzA1RFx1MzA5OVx1MzA1Rlx1MzA5OVx1MzA2MVx1MzA5OVx1MzA2NFx1MzA5OSIrCisgICAgICAgICJcdTMwNjZcdTMwOTlcdTMwNjhcdTMwOTlcdTMwNkZcdTMwOTlcdTMwNkZcdTMwOUFcdTMwNzJcdTMwOTlcdTMwNzJcdTMwOUEiKworICAgICAgICAiXHUzMDc1XHUzMDk5XHUzMDc1XHUzMDlBXHUzMDc4XHUzMDk5XHUzMDc4XHUzMDlBXHUzMDdCXHUzMDk5XHUzMDdCXHUzMDlBIisKKyAgICAgICAgIlx1MzA0Nlx1MzA5OVx1MzA5RFx1MzA5OVx1MzBBQlx1MzA5OVx1MzBBRFx1MzA5OVx1MzBBRlx1MzA5OVx1MzBCMVx1MzA5OSIrCisgICAgICAgICJcdTMwQjNcdTMwOTlcdTMwQjVcdTMwOTlcdTMwQjdcdTMwOTlcdTMwQjlcdTMwOTlcdTMwQkJcdTMwOTlcdTMwQkRcdTMwOTkiKworICAgICAgICAiXHUzMEJGXHUzMDk5XHUzMEMxXHUzMDk5XHUzMEM0XHUzMDk5XHUzMEM2XHUzMDk5XHUzMEM4XHUzMDk5XHUzMENGXHUzMDk5IisKKyAgICAgICAgIlx1MzBDRlx1MzA5QVx1MzBEMlx1MzA5OVx1MzBEMlx1MzA5QVx1MzBENVx1MzA5OVx1MzBENVx1MzA5QVx1MzBEOFx1MzA5OSIrCisgICAgICAgICJcdTMwRDhcdTMwOUFcdTMwREJcdTMwOTlcdTMwREJcdTMwOUFcdTMwQTZcdTMwOTlcdTMwRUZcdTMwOTlcdTMwRjBcdTMwOTkiKworICAgICAgICAiXHUzMEYxXHUzMDk5XHUzMEYyXHUzMDk5XHUzMEZEXHUzMDk5XHU4QzQ4XHU2NkY0XHU4RUNBXHU4Q0M4XHU2RUQxXHU0RTMyIisKKyAgICAgICAgIlx1NTNFNVx1OUY5Q1x1OUY5Q1x1NTk1MVx1OTFEMVx1NTU4N1x1NTk0OFx1NjFGNlx1NzY2OVx1N0Y4NVx1ODYzRlx1ODdCQSIrCisgICAgICAgICJcdTg4RjhcdTkwOEZcdTZBMDJcdTZEMUJcdTcwRDlcdTczREVcdTg0M0RcdTkxNkFcdTk5RjFcdTRFODJcdTUzNzVcdTZCMDQiKworICAgICAgICAiXHU3MjFCXHU4NjJEXHU5RTFFXHU1RDUwXHU2RkVCXHU4NUNEXHU4OTY0XHU2MkM5XHU4MUQ4XHU4ODFGXHU1RUNBXHU2NzE3IisKKyAgICAgICAgIlx1NkQ2QVx1NzJGQ1x1OTBDRVx1NEY4Nlx1NTFCN1x1NTJERVx1NjRDNFx1NkFEM1x1NzIxMFx1NzZFN1x1ODAwMVx1ODYwNiIrCisgICAgICAgICJcdTg2NUNcdThERUZcdTk3MzJcdTlCNkZcdTlERkFcdTc4OENcdTc5N0ZcdTdEQTBcdTgzQzlcdTkzMDRcdTlFN0ZcdThBRDYiKworICAgICAgICAiXHU1OERGXHU1RjA0XHU3QzYwXHU4MDdFXHU3MjYyXHU3OENBXHU4Q0MyXHU5NkY3XHU1OEQ4XHU1QzYyXHU2QTEzXHU2RERBIisKKyAgICAgICAgIlx1NkYwRlx1N0QyRlx1N0UzN1x1OTZGQlx1NTJEMlx1ODA4Qlx1NTFEQ1x1NTFDQ1x1N0ExQ1x1N0RCRVx1ODNGMVx1OTY3NSIrCisgICAgICAgICJcdThCODBcdTYyQ0ZcdTZBMDJcdThBRkVcdTRFMzlcdTVCRTdcdTYwMTJcdTczODdcdTc1NzBcdTUzMTdcdTc4RkJcdTRGQkYiKworICAgICAgICAiXHU1RkE5XHU0RTBEXHU2Q0NDXHU2NTc4XHU3RDIyXHU1M0MzXHU1ODVFXHU3NzAxXHU4NDQ5XHU4QUFBXHU2QkJBXHU4RkIwIisKKyAgICAgICAgIlx1NkM4OFx1NjJGRVx1ODJFNVx1NjNBMFx1NzU2NVx1NEVBRVx1NTE2OVx1NTFDOVx1Njg4MVx1N0NFN1x1ODI2Rlx1OEFEMiIrCisgICAgICAgICJcdTkxQ0ZcdTUyRjVcdTU0NDJcdTU5NzNcdTVFRUNcdTY1QzVcdTZGRkVcdTc5MkFcdTk1QURcdTlBNkFcdTlFOTdcdTlFQ0UiKworICAgICAgICAiXHU1MjlCXHU2NkM2XHU2Qjc3XHU4RjYyXHU1RTc0XHU2MTkwXHU2MjAwXHU2NDlBXHU2RjIzXHU3MTQ5XHU3NDg5XHU3OUNBIisKKyAgICAgICAgIlx1N0RGNFx1ODA2Rlx1OEYyNlx1ODRFRVx1OTAyM1x1OTM0QVx1NTIxN1x1NTJBM1x1NTRCRFx1NzBDOFx1ODhDMlx1OEFBQSIrCisgICAgICAgICJcdTVFQzlcdTVGRjVcdTYzN0JcdTZCQUVcdTdDM0VcdTczNzVcdTRFRTRcdTU2RjlcdTVCRTdcdTVEQkFcdTYwMUNcdTczQjIiKworICAgICAgICAiXHU3NDY5XHU3RjlBXHU4MDQ2XHU5MjM0XHU5NkY2XHU5NzQ4XHU5ODE4XHU0RjhCXHU3OUFFXHU5MUI0XHU5NkI4XHU2MEUxIisKKyAgICAgICAgIlx1NEU4Nlx1NTBEQVx1NUJFRVx1NUMzRlx1NjU5OVx1NkEwMlx1NzFDRVx1NzY0Mlx1ODRGQ1x1OTA3Q1x1OUY4RFx1NjY4OCIrCisgICAgICAgICJcdTk2MkVcdTUyODlcdTY3N0JcdTY3RjNcdTZENDFcdTZFOUNcdTc0MDlcdTc1NTlcdTc4NkJcdTdEMTBcdTk4NUVcdTUxNkQiKworICAgICAgICAiXHU2MjJFXHU5Njc4XHU1MDJCXHU1RDE5XHU2REVBXHU4RjJBXHU1RjhCXHU2MTQ0XHU2ODE3XHU3Mzg3XHU5Njg2XHU1MjI5IisKKyAgICAgICAgIlx1NTQwRlx1NUM2NVx1NjYxM1x1Njc0RVx1NjhBOFx1NkNFNVx1NzQwNlx1NzVFMlx1N0Y3OVx1ODhDRlx1ODhFMVx1OTFDQyIrCisgICAgICAgICJcdTk2RTJcdTUzM0ZcdTZFQkFcdTU0MURcdTcxRDBcdTc0OThcdTg1RkFcdTk2QTNcdTlDNTdcdTlFOUZcdTY3OTdcdTZEQ0IiKworICAgICAgICAiXHU4MUU4XHU3QUNCXHU3QjIwXHU3QzkyXHU3MkMwXHU3MDk5XHU4QjU4XHU0RUMwXHU4MzM2XHU1MjNBXHU1MjA3XHU1RUE2IisKKyAgICAgICAgIlx1NjJEM1x1N0NENlx1NUI4NVx1NkQxRVx1NjZCNFx1OEYzQlx1ODg0Q1x1OTY0RFx1ODk4Qlx1NUVEM1x1NTE0MFx1NTVDMCIrCisgICAgICAgICJcdTU4NUFcdTY2NzRcdTUxREVcdTczMkFcdTc2Q0FcdTc5M0NcdTc5NUVcdTc5NjVcdTc5OEZcdTk3NTZcdTdDQkVcdTdGQkQiKworICAgICAgICAiXHU4NjEyXHU4QUY4XHU5MDM4XHU5MEZEXHU5OEVGXHU5OEZDXHU5OTI4XHU5REI0XHUwNUQ5XHUwNUI0XHUwNUYyXHUwNUI3IisKKyAgICAgICAgIlx1MDVFOVx1MDVDMVx1MDVFOVx1MDVDMlx1MDVFOVx1MDVCQ1x1MDVDMVx1MDVFOVx1MDVCQ1x1MDVDMlx1MDVEMFx1MDVCNyIrCisgICAgICAgICJcdTA1RDBcdTA1QjhcdTA1RDBcdTA1QkNcdTA1RDFcdTA1QkNcdTA1RDJcdTA1QkNcdTA1RDNcdTA1QkNcdTA1RDRcdTA1QkMiKworICAgICAgICAiXHUwNUQ1XHUwNUJDXHUwNUQ2XHUwNUJDXHUwNUQ4XHUwNUJDXHUwNUQ5XHUwNUJDXHUwNURBXHUwNUJDXHUwNURCXHUwNUJDIisKKyAgICAgICAgIlx1MDVEQ1x1MDVCQ1x1MDVERVx1MDVCQ1x1MDVFMFx1MDVCQ1x1MDVFMVx1MDVCQ1x1MDVFM1x1MDVCQ1x1MDVFNFx1MDVCQyIrCisgICAgICAgICJcdTA1RTZcdTA1QkNcdTA1RTdcdTA1QkNcdTA1RThcdTA1QkNcdTA1RTlcdTA1QkNcdTA1RUFcdTA1QkNcdTA1RDVcdTA1QjkiKworICAgICAgICAiXHUwNUQxXHUwNUJGXHUwNURCXHUwNUJGXHUwNUU0XHUwNUJGIgorICAgIDsKKworICAgIHN0YXRpYyBmaW5hbCBDb21wYWN0Qnl0ZUFycmF5IGNhbm9uQ2xhc3MgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheSgKKyAgICAgICAgIlwwMDBcdTAyMDBcdUE1QTVcMDA2XDAwMFx1MDA4MFwwMDBcMDAwXHUwMTAwXDAwMFx1MDE4MFx1MDIwMFx1MDI4MFx1MDMwMCIrCisgICAgICAgICJcMDAwXDAwMFwwMDBcdTAzODBcdUE1QTVcMDA0XHUwNDAwXHUwNDgwXHUwNTAwXHUwNDgwXHUwNDgwXHUwNTgwXHUwNjAwIisKKyAgICAgICAgIlx1MDY4MFx1MDcwMFx1MDc4MFx1MDgwMFx1QTVBNVwwMTZcMDAwXHUwODgwXDAwMFx1MDkwMFx1QTVBNVwwMTdcMDAwXHUwOTgwIisKKyAgICAgICAgIlx1QTVBNVwwMzZcMDAwXHUwQTAwXHUwQTgwXHVBNUE1XHUwMTk0XDAwMFx1MEIwMFx1QTVBNVwwMDVcMDAwXHUwQjgwXDAwMCIrCisgICAgICAgICJcMDAwXDAwMCIKKyAgICAgICAgLAorICAgICAgICAiXDAwMFx1MEMwMFx1QTU4MFx1MDBBNVx1MTVFNlx1RThBNVx1MDREQ1x1RThEOFx1QTUwNVx1RENDQVx1Q0FBNVx1MDREQyIrCisgICAgICAgICJcdUNBQ0FcdUE1MEJcdURDQTVcdTA1MDFcdUE1MDRcdURDQTVcdTA4RTZcdUYwRTZcdURDRENcdURDRTZcdUU2RTZcdURDREMiKworICAgICAgICAiXHVBNTExXHUwMEVBXHVFQUU5XHVBNTIwXHUwMEE1XHUwNEU2XHVBNThBXHUwMERDXHVBNTA0XHVFNkRDXHVFNkU2XHVFNkRFIisKKyAgICAgICAgIlx1RENBNVx1MDZFNlx1MDBBNVx1MDVEQ1x1RTZFNlx1RENFNlx1RTZERVx1RTRFNlx1MEEwQlx1MEMwRFx1MEUwRlx1MTAxMSIrCisgICAgICAgICJcdTEyMTNcMDI0XHUxNTE2XDAyN1wwMzBcdTE5MDBcdUU2QTVcdTg2MDBcdTFCMUNcdTFEMUVcdTFGMjBcdTIxMjJcdUU2RTYiKworICAgICAgICAiXHVEQ0E1XHUxQTAwXHUyM0E1XHU2NTAwXHVBNTA3XHVFNjAwXHUwMEE1XHUwNEU2XHVEQ0U2XDAwMFx1RTZFNlx1MDBEQyIrCisgICAgICAgICJcdUU2RTZcdURDQTVcdTIzMDBcdTI0QTVcdTFFMDBcdUU2RENcdUU2RTZcdURDRTZcdUU2RENcdURDRENcdUU2RENcdURDRTYiKworICAgICAgICAiXHVEQ0U2XHVFNkU2XHVEQ0U2XHVEQ0U2XHVEQ0U2XHVEQ0U2XHVFNkE1XHU3MTAwXHUwN0E1XHUxMDAwXHUwOTAwXDAwMCIrCisgICAgICAgICJcdUU2RENcdUU2RTZcdUE1NjdcMDA3XHVBNTEwXDAxMVx1QTU3RlwwMTFcdUE1N0ZcMDExXHVBNTA3VFx1NUJBNVx1NzMwMCIrCisgICAgICAgICJcdTA5QTVcdTZEMDBcdTY3NjdcdTA5QTVcdTBEMDBcdUE1MDRcdTZCQTVcdTZDMDBcdTc2NzZcdUE1MEVcdTAwQTVcdTA0N0EiKworICAgICAgICAiXHVBNTRDXHUwMERDXHVEQ0E1XHUxQjAwXHVEQzAwXHVEQzAwXHVEOEE1XHUzNzAwXHU4MTgyXHUwMDg0XHVBNTA1XHUwMEE1IisKKyAgICAgICAgIlx1MDQ4MlwwMDBcdTgyMDBcdUU2RTZcdTA5MDBcdUU2RTZcdUE1M0VcdTAwRENcdUE1NzBcMDA3XDAxMVx1QTU5OFwwMTEiKworICAgICAgICAiXHVBNTU2XHUwMEU0XHVBNUE2XHUwMEU2XHVFNjAxXHUwMUE1XHUwNEU2XHUwMTAxXHUwMUU2XHVFNkE1XHUwNDAwXHVFNkE1IisKKyAgICAgICAgIlx1NDgwMFx1REFFNFx1RThERVx1RTBFMFx1QTU2OVwwMTBcdTA4QTVcdTgzMDBcdTFBQTVcdTgxMDBcdUE1MDRcdUU2QTUiKworICAgICAgICAiXHU1QzAwIgorICAgICAgICApOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI4NjAzMTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw1ODggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CitpbXBvcnQgamF2YS51dGlsLlN0YWNrOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiBBIHN1YmNsYXNzIG9mIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkIHRoYXQgYWRkcyB0aGUgYWJpbGl0eSB0byB1c2UgYSBkaWN0aW9uYXJ5CisgKiB0byBmdXJ0aGVyIHN1YmRpdmlkZSByYW5nZXMgb2YgdGV4dCBiZXlvbmQgd2hhdCBpcyBwb3NzaWJsZSB1c2luZyBqdXN0IHRoZQorICogc3RhdGUtdGFibGUtYmFzZWQgYWxnb3JpdGhtLiAgVGhpcyBpcyBuZWNlc3NhcnksIGZvciBleGFtcGxlLCB0byBoYW5kbGUKKyAqIHdvcmQgYW5kIGxpbmUgYnJlYWtpbmcgaW4gVGhhaSwgd2hpY2ggZG9lc24ndCB1c2Ugc3BhY2VzIGJldHdlZW4gd29yZHMuICBUaGUKKyAqIHN0YXRlLXRhYmxlLWJhc2VkIGFsZ29yaXRobSB1c2VkIGJ5IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkIGlzIHVzZWQgdG8gZGl2aWRlCisgKiB1cCB0ZXh0IGFzIGZhciBhcyBwb3NzaWJsZSwgYW5kIHRoZW4gY29udGlndW91cyByYW5nZXMgb2YgbGV0dGVycyBhcmUKKyAqIHJlcGVhdGVkbHkgY29tcGFyZWQgYWdhaW5zdCBhIGxpc3Qgb2Yga25vd24gd29yZHMgKGkuZS4sIHRoZSBkaWN0aW9uYXJ5KQorICogdG8gZGl2aWRlIHRoZW0gdXAgaW50byB3b3Jkcy4KKyAqCisgKiBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIHVzZXMgdGhlIHNhbWUgcnVsZSBsYW5ndWFnZSBhcyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCwKKyAqIGJ1dCBhZGRzIG9uZSBtb3JlIHNwZWNpYWwgc3Vic3RpdHV0aW9uIG5hbWU6IF9kaWN0aW9uYXJ5Xy4gIFRoaXMgc3Vic3RpdHV0aW9uCisgKiBuYW1lIGlzIHVzZWQgdG8gaWRlbnRpZnkgY2hhcmFjdGVycyBpbiB3b3JkcyBpbiB0aGUgZGljdGlvbmFyeS4gIFRoZSBpZGVhIGlzIHRoYXQKKyAqIGlmIHRoZSBpdGVyYXRvciBwYXNzZXMgb3ZlciBhIGNodW5rIG9mIHRleHQgdGhhdCBpbmNsdWRlcyB0d28gb3IgbW9yZSBjaGFyYWN0ZXJzCisgKiBpbiBhIHJvdyB0aGF0IGFyZSBpbmNsdWRlZCBpbiBfZGljdGlvbmFyeV8sIGl0IGdvZXMgYmFjayB0aHJvdWdoIHRoYXQgcmFuZ2UgYW5kCisgKiBkZXJpdmVzIGFkZGl0aW9uYWwgYnJlYWsgcG9zaXRpb25zIChpZiBwb3NzaWJsZSkgdXNpbmcgdGhlIGRpY3Rpb25hcnkuCisgKgorICogRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciBpcyBhbHNvIGNvbnN0cnVjdGVkIHdpdGggdGhlIGZpbGVuYW1lIG9mIGEgZGljdGlvbmFyeQorICogZmlsZS4gIEl0IHVzZXMgQ2xhc3MuZ2V0UmVzb3VyY2UoKSB0byBsb2NhdGUgdGhlIGRpY3Rpb25hcnkgZmlsZS4gIFRoZQorICogZGljdGlvbmFyeSBmaWxlIGlzIGluIGEgc2VyaWFsaXplZCBiaW5hcnkgZm9ybWF0LiAgV2UgaGF2ZSBhIHZlcnkgcHJpbWl0aXZlIChhbmQKKyAqIHNsb3cpIEJ1aWxkRGljdGlvbmFyeUZpbGUgdXRpbGl0eSBmb3IgY3JlYXRpbmcgZGljdGlvbmFyeSBmaWxlcywgYnV0IGFyZW4ndAorICogY3VycmVudGx5IG1ha2luZyBpdCBwdWJsaWMuICBDb250YWN0IHVzIGZvciBoZWxwLgorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvciBleHRlbmRzIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkIHsKKworICAgIC8qKgorICAgICAqIGEgbGlzdCBvZiBrbm93biB3b3JkcyB0aGF0IGlzIHVzZWQgdG8gZGl2aWRlIHVwIGNvbnRpZ3VvdXMgcmFuZ2VzIG9mIGxldHRlcnMsCisgICAgICogc3RvcmVkIGluIGEgY29tcHJlc3NlZCwgaW5kZXhlZCwgZm9ybWF0IHRoYXQgb2ZmZXJzIGZhc3QgYWNjZXNzCisgICAgICovCisgICAgcHJpdmF0ZSBCcmVha0RpY3Rpb25hcnkgZGljdGlvbmFyeTsKKworICAgIC8qKgorICAgICAqIGEgbGlzdCBvZiBmbGFncyBpbmRpY2F0aW5nIHdoaWNoIGNoYXJhY3RlciBjYXRlZ29yaWVzIGFyZSBjb250YWluZWQgaW4KKyAgICAgKiB0aGUgZGljdGlvbmFyeSBmaWxlICh0aGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIHJhbmdlcyBvZiBjaGFyYWN0ZXJzCisgICAgICogdG8gYXBwbHkgdGhlIGRpY3Rpb25hcnkgdG8pCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuW10gY2F0ZWdvcnlGbGFnczsKKworICAgIC8qKgorICAgICAqIGEgdGVtcG9yYXJ5IGhpZGluZyBwbGFjZSBmb3IgdGhlIG51bWJlciBvZiBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMgaW4gdGhlCisgICAgICogbGFzdCByYW5nZSBwYXNzZWQgb3ZlciBieSBuZXh0KCkKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBkaWN0aW9uYXJ5Q2hhckNvdW50OworCisgICAgLyoqCisgICAgICogd2hlbiBhIHJhbmdlIG9mIGNoYXJhY3RlcnMgaXMgZGl2aWRlZCB1cCB1c2luZyB0aGUgZGljdGlvbmFyeSwgdGhlIGJyZWFrCisgICAgICogcG9zaXRpb25zIHRoYXQgYXJlIGRpc2NvdmVyZWQgYXJlIHN0b3JlZCBoZXJlLCBwcmV2ZW50aW5nIHVzIGZyb20gaGF2aW5nCisgICAgICogdG8gdXNlIGVpdGhlciB0aGUgZGljdGlvbmFyeSBvciB0aGUgc3RhdGUgdGFibGUgYWdhaW4gdW50aWwgdGhlIGl0ZXJhdG9yCisgICAgICogbGVhdmVzIHRoaXMgcmFuZ2Ugb2YgdGV4dAorICAgICAqLworICAgIHByaXZhdGUgaW50W10gY2FjaGVkQnJlYWtQb3NpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBpZiBjYWNoZWRCcmVha1Bvc2l0aW9ucyBpcyBub3QgbnVsbCwgdGhpcyBpbmRpY2F0ZXMgd2hpY2ggaXRlbSBpbiB0aGUKKyAgICAgKiBjYWNoZSB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gcmVmZXJzIHRvCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcG9zaXRpb25JbkNhY2hlOworCisgICAgLyoqCisgICAgICogU3BlY2lhbCB2YXJpYWJsZSBuYW1lIGZvciBjaGFyYWN0ZXJzIGluIHdvcmRzIGluIGRpY3Rpb25hcnkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRElDVElPTkFSWV9WQVIgPSAiX2RpY3Rpb25hcnlfIjsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBTYW1lIGFzIHRoZSBkZXNjcmlwdGlvbiBwYXJhbWV0ZXIgb24gUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQsCisgICAgICogZXhjZXB0IGZvciB0aGUgc3BlY2lhbCBtZWFuaW5nIG9mIERJQ1RJT05BUllfVkFSLiAgVGhpcyBwYXJhbWV0ZXIgaXMganVzdAorICAgICAqIHBhc3NlZCB0aHJvdWdoIHRvIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkJ3MgY29uc3RydWN0b3IuCisgICAgICogQHBhcmFtIGRpY3Rpb25hcnlTdHJlYW0gdGhlIHN0cmVhbSBjb250YWluaW5nIHRoZSBkaWN0aW9uYXJ5IGRhdGEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcihTdHJpbmcgZGVzY3JpcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gZGljdGlvbmFyeVN0cmVhbSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgc3VwZXIoZGVzY3JpcHRpb24pOworICAgICAgICBkaWN0aW9uYXJ5ID0gbmV3IEJyZWFrRGljdGlvbmFyeShkaWN0aW9uYXJ5U3RyZWFtKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgQnVpbGRlciB0aGF0IGlzIGN1c3RvbWl6ZWQgdG8gYnVpbGQgYSBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yLgorICAgICAqIFRoaXMgaXMgdGhlIHNhbWUgYXMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQuQnVpbGRlciwgZXhjZXB0IGZvciB0aGUgZXh0cmEgY29kZQorICAgICAqIHRvIGhhbmRsZSB0aGUgRElDVElPTkFSWV9WQVIgdGFnLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByb3RlY3RlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZC5CdWlsZGVyIG1ha2VCdWlsZGVyKCkgeworICAgICAgICByZXR1cm4gbmV3IEJ1aWxkZXIoKTsKKyAgICB9CisgICAgCisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIHB1YmxpYyB2b2lkIHdyaXRlVGFibGVzVG9GaWxlKEZpbGVPdXRwdXRTdHJlYW0gZmlsZSwgYm9vbGVhbiBsaXR0bGVFbmRpYW4pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyLndyaXRlVGFibGVzVG9GaWxlKGZpbGUsIGxpdHRsZUVuZGlhbik7CisgICAgICAgIAorICAgICAgICBEYXRhT3V0cHV0U3RyZWFtIG91dCA9IG5ldyBEYXRhT3V0cHV0U3RyZWFtKGZpbGUpOworICAgICAgICAKKyAgICAgICAgLy8gLS0tIHdyaXRlIGluZGV4IHRvIGZpZWxkcyAodGhlcmUncyBvbmx5IG9uZSBlbnRyeSwgYnV0IHRoaXMgYWxsb3dzIHN1YmNsYXNzaW5nIG9mIHRoaXMgY2xhc3MpCisgICAgICAgIHdyaXRlU3dhcHBlZEludCgoc2hvcnQpOCwgb3V0LCBsaXR0bGVFbmRpYW4pOworICAgICAgICB3cml0ZVN3YXBwZWRJbnQoKHNob3J0KShjYXRlZ29yeUZsYWdzLmxlbmd0aCArIDMgJiAweDBmKSwgb3V0LCBsaXR0bGVFbmRpYW4pOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYXRlZ29yeUZsYWdzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb3V0LndyaXRlQm9vbGVhbihjYXRlZ29yeUZsYWdzW2ldKTsKKyAgICAgICAgc3dpdGNoIChjYXRlZ29yeUZsYWdzLmxlbmd0aCAlIDQpIHsKKyAgICAgICAgICAgIGNhc2UgMTogb3V0LndyaXRlKDApOworICAgICAgICAgICAgY2FzZSAyOiBvdXQud3JpdGUoMCk7CisgICAgICAgICAgICBjYXNlIDM6IG91dC53cml0ZSgwKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6IGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoQ2hhcmFjdGVySXRlcmF0b3IgbmV3VGV4dCkgeworICAgICAgICBzdXBlci5zZXRUZXh0KG5ld1RleHQpOworICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9ucyA9IG51bGw7CisgICAgICAgIGRpY3Rpb25hcnlDaGFyQ291bnQgPSAwOworICAgICAgICBwb3NpdGlvbkluQ2FjaGUgPSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogKGkuZS4sIHRoZSBDaGFyYWN0ZXJJdGVyYXRvcidzIHN0YXJ0aW5nIG9mZnNldCkuCisgICAgICogQHJldHVybiBUaGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBmaXJzdCgpIHsKKyAgICAgICAgY2FjaGVkQnJlYWtQb3NpdGlvbnMgPSBudWxsOworICAgICAgICBkaWN0aW9uYXJ5Q2hhckNvdW50ID0gMDsKKyAgICAgICAgcG9zaXRpb25JbkNhY2hlID0gMDsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmZpcnN0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiAoaS5lLiwgdGhlIENoYXJhY3Rlckl0ZXJhdG9yJ3MgZW5kaW5nIG9mZnNldCkuCisgICAgICogQHJldHVybiBUaGUgdGV4dCdzIHBhc3QtdGhlLWVuZCBvZmZzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBsYXN0KCkgeworICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9ucyA9IG51bGw7CisgICAgICAgIGRpY3Rpb25hcnlDaGFyQ291bnQgPSAwOworICAgICAgICBwb3NpdGlvbkluQ2FjaGUgPSAwOworICAgICAgICByZXR1cm4gc3VwZXIubGFzdCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBvbmUgc3RlcCBiYWNrd2FyZHMuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlIHRoZQorICAgICAqIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpIHsKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IGdldFRleHQoKTsKKworICAgICAgICAvLyBpZiB3ZSBoYXZlIGNhY2hlZCBicmVhayBwb3NpdGlvbnMgYW5kIHdlJ3JlIHN0aWxsIGluIHRoZSByYW5nZQorICAgICAgICAvLyBjb3ZlcmVkIGJ5IHRoZW0sIGp1c3QgbW92ZSBvbmUgc3RlcCBiYWNrd2FyZCBpbiB0aGUgY2FjaGUKKyAgICAgICAgaWYgKGNhY2hlZEJyZWFrUG9zaXRpb25zICE9IG51bGwgJiYgcG9zaXRpb25JbkNhY2hlID4gMCkgeworICAgICAgICAgICAgLS1wb3NpdGlvbkluQ2FjaGU7CisgICAgICAgICAgICB0ZXh0LnNldEluZGV4KGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV0pOworICAgICAgICAgICAgcmV0dXJuIGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV07CisgICAgICAgIH0KKworICAgICAgICAvLyBvdGhlcndpc2UsIGR1bXAgdGhlIGNhY2hlIGFuZCB1c2UgdGhlIGluaGVyaXRlZCBwcmV2aW91cygpIG1ldGhvZCB0byBtb3ZlCisgICAgICAgIC8vIGJhY2t3YXJkLiAgVGhpcyBtYXkgZmlsbCB1cCB0aGUgY2FjaGUgd2l0aCBuZXcgYnJlYWsgcG9zaXRpb25zLCBpbiB3aGljaAorICAgICAgICAvLyBjYXNlIHdlIGhhdmUgdG8gbWFyayBvdXIgcG9zaXRpb24gaW4gdGhlIGNhY2hlCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY2FjaGVkQnJlYWtQb3NpdGlvbnMgPSBudWxsOworICAgICAgICAgICAgaW50IHJlc3VsdCA9IHN1cGVyLnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAoY2FjaGVkQnJlYWtQb3NpdGlvbnMgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBwb3NpdGlvbkluQ2FjaGUgPSBjYWNoZWRCcmVha1Bvc2l0aW9ucy5sZW5ndGggLSAyOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uCisgICAgICogYmVmb3JlIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNldCBUaGUgcG9zaXRpb24gdG8gYmVnaW4gc2VhcmNoaW5nIGZyb20KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBiZWZvcmUgIm9mZnNldCIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHByZWNlZGluZyhpbnQgb2Zmc2V0KSB7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBnZXRUZXh0KCk7CisgICAgICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgdGV4dCk7CisKKyAgICAgICAgLy8gaWYgd2UgaGF2ZSBubyBjYWNoZWQgYnJlYWsgcG9zaXRpb25zLCBvciAib2Zmc2V0IiBpcyBvdXRzaWRlIHRoZQorICAgICAgICAvLyByYW5nZSBjb3ZlcmVkIGJ5IHRoZSBjYWNoZSwgd2UgY2FuIGp1c3QgY2FsbCB0aGUgaW5oZXJpdGVkIHJvdXRpbmUKKyAgICAgICAgLy8gKHdoaWNoIHdpbGwgZXZlbnR1YWxseSBjYWxsIG90aGVyIHJvdXRpbmVzIGluIHRoaXMgY2xhc3MgdGhhdCBtYXkKKyAgICAgICAgLy8gcmVmcmVzaCB0aGUgY2FjaGUpCisgICAgICAgIGlmIChjYWNoZWRCcmVha1Bvc2l0aW9ucyA9PSBudWxsIHx8IG9mZnNldCA8PSBjYWNoZWRCcmVha1Bvc2l0aW9uc1swXSB8fAorICAgICAgICAgICAgICAgIG9mZnNldCA+IGNhY2hlZEJyZWFrUG9zaXRpb25zW2NhY2hlZEJyZWFrUG9zaXRpb25zLmxlbmd0aCAtIDFdKSB7CisgICAgICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9ucyA9IG51bGw7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIucHJlY2VkaW5nKG9mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBvbiB0aGUgb3RoZXIgaGFuZCwgaWYgIm9mZnNldCIgaXMgd2l0aGluIHRoZSByYW5nZSBjb3ZlcmVkIGJ5IHRoZSBjYWNoZSwKKyAgICAgICAgLy8gdGhlbiBhbGwgd2UgaGF2ZSB0byBkbyBpcyBzZWFyY2ggdGhlIGNhY2hlIGZvciB0aGUgbGFzdCBicmVhayBwb3NpdGlvbgorICAgICAgICAvLyBiZWZvcmUgIm9mZnNldCIKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBwb3NpdGlvbkluQ2FjaGUgPSAwOworICAgICAgICAgICAgd2hpbGUgKHBvc2l0aW9uSW5DYWNoZSA8IGNhY2hlZEJyZWFrUG9zaXRpb25zLmxlbmd0aAorICAgICAgICAgICAgICAgICAgICYmIG9mZnNldCA+IGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV0pCisgICAgICAgICAgICAgICAgKytwb3NpdGlvbkluQ2FjaGU7CisgICAgICAgICAgICAtLXBvc2l0aW9uSW5DYWNoZTsKKyAgICAgICAgICAgIHRleHQuc2V0SW5kZXgoY2FjaGVkQnJlYWtQb3NpdGlvbnNbcG9zaXRpb25JbkNhY2hlXSk7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5nZXRJbmRleCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGFmdGVyCisgICAgICogdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiB0byBiZWdpbiBzZWFyY2hpbmcgZm9yd2FyZCBmcm9tCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IGFmdGVyICJvZmZzZXQiCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBmb2xsb3dpbmcoaW50IG9mZnNldCkgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gZ2V0VGV4dCgpOworICAgICAgICBjaGVja09mZnNldChvZmZzZXQsIHRleHQpOworCisgICAgICAgIC8vIGlmIHdlIGhhdmUgbm8gY2FjaGVkIGJyZWFrIHBvc2l0aW9ucywgb3IgaWYgIm9mZnNldCIgaXMgb3V0c2lkZSB0aGUKKyAgICAgICAgLy8gcmFuZ2UgY292ZXJlZCBieSB0aGUgY2FjaGUsIHRoZW4gZHVtcCB0aGUgY2FjaGUgYW5kIGNhbGwgb3VyCisgICAgICAgIC8vIGluaGVyaXRlZCBmb2xsb3dpbmcoKSBtZXRob2QuICBUaGlzIHdpbGwgY2FsbCBvdGhlciBtZXRob2RzIGluIHRoaXMKKyAgICAgICAgLy8gY2xhc3MgdGhhdCBtYXkgcmVmcmVzaCB0aGUgY2FjaGUuCisgICAgICAgIGlmIChjYWNoZWRCcmVha1Bvc2l0aW9ucyA9PSBudWxsIHx8IG9mZnNldCA8IGNhY2hlZEJyZWFrUG9zaXRpb25zWzBdIHx8CisgICAgICAgICAgICAgICAgb2Zmc2V0ID49IGNhY2hlZEJyZWFrUG9zaXRpb25zW2NhY2hlZEJyZWFrUG9zaXRpb25zLmxlbmd0aCAtIDFdKSB7CisgICAgICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9ucyA9IG51bGw7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuZm9sbG93aW5nKG9mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBvbiB0aGUgb3RoZXIgaGFuZCwgaWYgIm9mZnNldCIgaXMgd2l0aGluIHRoZSByYW5nZSBjb3ZlcmVkIGJ5IHRoZQorICAgICAgICAvLyBjYWNoZSwgdGhlbiBqdXN0IHNlYXJjaCB0aGUgY2FjaGUgZm9yIHRoZSBmaXJzdCBicmVhayBwb3NpdGlvbgorICAgICAgICAvLyBhZnRlciAib2Zmc2V0IgorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHBvc2l0aW9uSW5DYWNoZSA9IDA7CisgICAgICAgICAgICB3aGlsZSAocG9zaXRpb25JbkNhY2hlIDwgY2FjaGVkQnJlYWtQb3NpdGlvbnMubGVuZ3RoCisgICAgICAgICAgICAgICAgICAgJiYgb2Zmc2V0ID49IGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV0pCisgICAgICAgICAgICAgICAgKytwb3NpdGlvbkluQ2FjaGU7CisgICAgICAgICAgICB0ZXh0LnNldEluZGV4KGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV0pOworICAgICAgICAgICAgcmV0dXJuIHRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIGltcGxlbWVudGF0aW9uIGZ1bmN0aW9uIGZvciBuZXh0KCkuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVOZXh0KCkgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gZ2V0VGV4dCgpOworCisgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBubyBjYWNoZWQgYnJlYWsgcG9zaXRpb25zLCBvciBpZiB3ZSd2ZSBqdXN0IG1vdmVkCisgICAgICAgIC8vIG9mZiB0aGUgZW5kIG9mIHRoZSByYW5nZSBjb3ZlcmVkIGJ5IHRoZSBjYWNoZSwgd2UgaGF2ZSB0byBkdW1wCisgICAgICAgIC8vIGFuZCBwb3NzaWJseSByZWdlbmVyYXRlIHRoZSBjYWNoZQorICAgICAgICBpZiAoY2FjaGVkQnJlYWtQb3NpdGlvbnMgPT0gbnVsbCB8fCBwb3NpdGlvbkluQ2FjaGUgPT0gY2FjaGVkQnJlYWtQb3NpdGlvbnMubGVuZ3RoIC0gMSkgeworCisgICAgICAgICAgICAvLyBzdGFydCBieSB1c2luZyB0aGUgaW5oZXJpdGVkIGhhbmRsZU5leHQoKSB0byBmaW5kIGEgdGVudGF0aXZlIHJldHVybgorICAgICAgICAgICAgLy8gdmFsdWUuICAgZGljdGlvbmFyeUNoYXJDb3VudCB0ZWxscyB1cyBob3cgbWFueSBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMKKyAgICAgICAgICAgIC8vIHdlIHBhc3NlZCBvdmVyIG9uIG91ciB3YXkgdG8gdGhlIHRlbnRhdGl2ZSByZXR1cm4gdmFsdWUKKyAgICAgICAgICAgIGludCBzdGFydFBvcyA9IHRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIGRpY3Rpb25hcnlDaGFyQ291bnQgPSAwOworICAgICAgICAgICAgaW50IHJlc3VsdCA9IHN1cGVyLmhhbmRsZU5leHQoKTsKKworICAgICAgICAgICAgLy8gaWYgd2UgcGFzc2VkIG92ZXIgbW9yZSB0aGFuIG9uZSBkaWN0aW9uYXJ5IGNoYXJhY3RlciwgdGhlbiB3ZSB1c2UKKyAgICAgICAgICAgIC8vIGRpdmlkZVVwRGljdGlvbmFyeVJhbmdlKCkgdG8gcmVnZW5lcmF0ZSB0aGUgY2FjaGVkIGJyZWFrIHBvc2l0aW9ucworICAgICAgICAgICAgLy8gZm9yIHRoZSBuZXcgcmFuZ2UKKyAgICAgICAgICAgIGlmIChkaWN0aW9uYXJ5Q2hhckNvdW50ID4gMSAmJiByZXN1bHQgLSBzdGFydFBvcyA+IDEpIHsKKyAgICAgICAgICAgICAgICBkaXZpZGVVcERpY3Rpb25hcnlSYW5nZShzdGFydFBvcywgcmVzdWx0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB0aGUgdmFsdWUgd2UgZ290IGJhY2sgZnJvbSB0aGUgaW5oZXJpdGVkIGZ1Y3Rpb24KKyAgICAgICAgICAgIC8vIGlzIG91ciByZXR1cm4gdmFsdWUsIGFuZCB3ZSBjYW4gZHVtcCB0aGUgY2FjaGUKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNhY2hlZEJyZWFrUG9zaXRpb25zID0gbnVsbDsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIGNhY2hlIG9mIGJyZWFrIHBvc2l0aW9ucyBoYXMgYmVlbiByZWdlbmVyYXRlZCAob3IgZXhpc3RlZCBhbGwKKyAgICAgICAgLy8gYWxvbmcpLCB0aGVuIGp1c3QgYWR2YW5jZSB0byB0aGUgbmV4dCBicmVhayBwb3NpdGlvbiBpbiB0aGUgY2FjaGUKKyAgICAgICAgLy8gYW5kIHJldHVybiBpdAorICAgICAgICBpZiAoY2FjaGVkQnJlYWtQb3NpdGlvbnMgIT0gbnVsbCkgeworICAgICAgICAgICAgKytwb3NpdGlvbkluQ2FjaGU7CisgICAgICAgICAgICB0ZXh0LnNldEluZGV4KGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV0pOworICAgICAgICAgICAgcmV0dXJuIGNhY2hlZEJyZWFrUG9zaXRpb25zW3Bvc2l0aW9uSW5DYWNoZV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC05OTk5OyAgIC8vIFNIT1VMRCBORVZFUiBHRVQgSEVSRSEKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMb29rcyB1cCBhIGNoYXJhY3RlciBjYXRlZ29yeSBmb3IgYSBjaGFyYWN0ZXIuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBsb29rdXBDYXRlZ29yeShjaGFyIGMpIHsKKyAgICAgICAgLy8gdGhpcyBvdmVycmlkZSBvZiBsb29rdXBDYXRlZ29yeSgpIGV4aXN0cyBvbmx5IHRvIGtlZXAgdHJhY2sgb2Ygd2hldGhlciB3ZSd2ZQorICAgICAgICAvLyBwYXNzZWQgb3ZlciBhbnkgZGljdGlvbmFyeSBjaGFyYWN0ZXJzLiAgSXQgY2FsbHMgdGhlIGluaGVyaXRlZCBsb29rdXBDYXRlZ29yeSgpCisgICAgICAgIC8vIHRvIGRvIHRoZSByZWFsIHdvcmssIGFuZCB0aGVuIGNoZWNrcyB3aGV0aGVyIGl0cyByZXR1cm4gdmFsdWUgaXMgb25lIG9mIHRoZQorICAgICAgICAvLyBjYXRlZ29yaWVzIHJlcHJlc2VudGVkIGluIHRoZSBkaWN0aW9uYXJ5LiAgSWYgaXQgaXMsIGJ1bXAgdGhlIGRpY3Rpb25hcnktCisgICAgICAgIC8vIGNoYXJhY3RlciBjb3VudC4KKyAgICAgICAgaW50IHJlc3VsdCA9IHN1cGVyLmxvb2t1cENhdGVnb3J5KGMpOworICAgICAgICBpZiAocmVzdWx0ICE9IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkLklHTk9SRSAmJiBjYXRlZ29yeUZsYWdzW3Jlc3VsdF0pIHsKKyAgICAgICAgICAgICsrZGljdGlvbmFyeUNoYXJDb3VudDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgaW1wbGVtZW50cyB0aGUgZGljdGlvbmFyeS1iYXNlZAorICAgICAqIGFsZ29yaXRobS4gIEdpdmVuIHRoZSBlbmRwb2ludHMgb2YgYSByYW5nZSBvZiB0ZXh0LCBpdCB1c2VzIHRoZQorICAgICAqIGRpY3Rpb25hcnkgdG8gZGV0ZXJtaW5lIHRoZSBwb3NpdGlvbnMgb2YgYW55IGJvdW5kYXJpZXMgaW4gdGhpcworICAgICAqIHJhbmdlLiAgSXQgc3RvcmVzIGFsbCB0aGUgYm91bmRhcnkgcG9zaXRpb25zIGl0IGRpc2NvdmVycyBpbgorICAgICAqIGNhY2hlZEJyZWFrUG9zaXRpb25zIHNvIHRoYXQgd2Ugb25seSBoYXZlIHRvIGRvIHRoaXMgd29yayBvbmNlCisgICAgICogZm9yIGVhY2ggdGltZSB3ZSBlbnRlciB0aGUgcmFuZ2UuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGRpdmlkZVVwRGljdGlvbmFyeVJhbmdlKGludCBzdGFydFBvcywgaW50IGVuZFBvcykgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gZ2V0VGV4dCgpOworCisgICAgICAgIC8vIHRoZSByYW5nZSB3ZSdyZSBkaXZpZGluZyBtYXkgYmVnaW4gb3IgZW5kIHdpdGggbm9uLWRpY3Rpb25hcnkgY2hhcmFjdGVycworICAgICAgICAvLyAoaS5lLiwgZm9yIGxpbmUgYnJlYWtpbmcsIHdlIG1heSBoYXZlIGxlYWRpbmcgb3IgdHJhaWxpbmcgcHVuY3R1YXRpb24KKyAgICAgICAgLy8gdGhhdCBuZWVkcyB0byBiZSBrZXB0IHdpdGggdGhlIHdvcmQpLiAgU2VlayBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlCisgICAgICAgIC8vIHJhbmdlIHRvIHRoZSBmaXJzdCBkaWN0aW9uYXJ5IGNoYXJhY3RlcgorICAgICAgICB0ZXh0LnNldEluZGV4KHN0YXJ0UG9zKTsKKyAgICAgICAgY2hhciBjID0gdGV4dC5jdXJyZW50KCk7CisgICAgICAgIGludCBjYXRlZ29yeSA9IGxvb2t1cENhdGVnb3J5KGMpOworICAgICAgICB3aGlsZSAoY2F0ZWdvcnkgPT0gSUdOT1JFIHx8ICFjYXRlZ29yeUZsYWdzW2NhdGVnb3J5XSkgeworICAgICAgICAgICAgYyA9IHRleHQubmV4dCgpOworICAgICAgICAgICAgY2F0ZWdvcnkgPSBsb29rdXBDYXRlZ29yeShjKTsKKyAgICAgICAgfQorLy9TeXN0ZW0ub3V0LnByaW50bG4oIlxuRGl2aWRpbmcgdXAgcmFuZ2UgZnJvbSAiICsgKHRleHQuZ2V0SW5kZXgoKSArIDEpICsgIiB0byAiICsgZW5kUG9zKTsKKworICAgICAgICAvLyBpbml0aWFsaXplLiAgV2UgbWFpbnRhaW4gdHdvIHN0YWNrczogY3VycmVudEJyZWFrUG9zaXRpb25zIGNvbnRhaW5zCisgICAgICAgIC8vIHRoZSBsaXN0IG9mIGJyZWFrIHBvc2l0aW9ucyB0aGF0IHdpbGwgYmUgcmV0dXJuZWQgaWYgd2Ugc3VjY2Vzc2Z1bGx5CisgICAgICAgIC8vIGZpbmlzaCB0cmF2ZXJzaW5nIHRoZSB3aG9sZSByYW5nZSBub3cuICBwb3NzaWJsZUJyZWFrUG9zaXRpb25zIGxpc3RzCisgICAgICAgIC8vIGFsbCBvdGhlciBwb3NzaWJsZSB3b3JkIGVuZHMgd2UndmUgcGFzc2VkIGFsb25nIHRoZSB3YXkuICAoV2hlbmV2ZXIKKyAgICAgICAgLy8gd2UgcmVhY2ggYW4gZXJyb3IgW2Egc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGNhbid0IGJlZ2luIGFueSB3b3JkCisgICAgICAgIC8vIGluIHRoZSBkaWN0aW9uYXJ5XSwgd2UgYmFjayB1cCwgcG9zc2libHkgZGVsZXRlIHNvbWUgYnJlYWtzIGZyb20KKyAgICAgICAgLy8gY3VycmVudEJyZWFrUG9zaXRpb25zLCBtb3ZlIGEgYnJlYWsgZnJvbSBwb3NzaWJsZUJyZWFrUG9zaXRpb25zCisgICAgICAgIC8vIHRvIGN1cnJlbnRCcmVha1Bvc2l0aW9ucywgYW5kIHN0YXJ0IG92ZXIgZnJvbSB0aGVyZS4gIFRoaXMgcHJvY2VzcworICAgICAgICAvLyBjb250aW51ZXMgaW4gdGhpcyB3YXkgdW50aWwgd2UgZWl0aGVyIHN1Y2Nlc3NmdWxseSBtYWtlIGl0IGFsbCB0aGUgd2F5CisgICAgICAgIC8vIGFjcm9zcyB0aGUgcmFuZ2UsIG9yIGV4aGF1c3QgYWxsIG9mIG91ciBjb21iaW5hdGlvbnMgb2YgYnJlYWsKKyAgICAgICAgLy8gcG9zaXRpb25zLikKKyAgICAgICAgU3RhY2sgY3VycmVudEJyZWFrUG9zaXRpb25zID0gbmV3IFN0YWNrKCk7CisgICAgICAgIFN0YWNrIHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMgPSBuZXcgU3RhY2soKTsKKyAgICAgICAgVmVjdG9yIHdyb25nQnJlYWtQb3NpdGlvbnMgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgLy8gdGhlIGRpY3Rpb25hcnkgaXMgaW1wbGVtZW50ZWQgYXMgYSB0cmllLCB3aGljaCBpcyB0cmVhdGVkIGFzIGEgc3RhdGUKKyAgICAgICAgLy8gbWFjaGluZS4gIC0xIHJlcHJlc2VudHMgdGhlIGVuZCBvZiBhIGxlZ2FsIHdvcmQuICBFdmVyeSB3b3JkIGluIHRoZQorICAgICAgICAvLyBkaWN0aW9uYXJ5IGlzIHJlcHJlc2VudGVkIGJ5IGEgcGF0aCBmcm9tIHRoZSByb290IG5vZGUgdG8gLTEuICBBIHBhdGgKKyAgICAgICAgLy8gdGhhdCBlbmRzIGluIHN0YXRlIDAgaXMgYW4gaWxsZWdhbCBjb21iaW5hdGlvbiBvZiBjaGFyYWN0ZXJzLgorICAgICAgICBpbnQgc3RhdGUgPSAwOworCisgICAgICAgIC8vIHRoZXNlIHR3byB2YXJpYWJsZXMgYXJlIHVzZWQgZm9yIGVycm9yIGhhbmRsaW5nLiAgV2Uga2VlcCB0cmFjayBvZiB0aGUKKyAgICAgICAgLy8gZmFydGhlc3Qgd2UndmUgZ290dGVuIHRocm91Z2ggdGhlIHJhbmdlIGJlaW5nIGRpdmlkZWQsIGFuZCB0aGUgY29tYmluYXRpb24KKyAgICAgICAgLy8gb2YgYnJlYWtzIHRoYXQgZ290IHVzIHRoYXQgZmFyLiAgSWYgd2UgdXNlIHVwIGFsbCBwb3NzaWJsZSBicmVhaworICAgICAgICAvLyBjb21iaW5hdGlvbnMsIHRoZSB0ZXh0IGNvbnRhaW5zIGFuIGVycm9yIG9yIGEgd29yZCB0aGF0J3Mgbm90IGluIHRoZQorICAgICAgICAvLyBkaWN0aW9uYXJ5LiAgSW4gdGhpcyBjYXNlLCB3ZSAiYmxlc3MiIHRoZSBicmVhayBwb3NpdGlvbnMgdGhhdCBnb3QgdXMgdGhlCisgICAgICAgIC8vIGZhcnRoZXN0IGFzIHJlYWwgYnJlYWsgcG9zaXRpb25zLCBhbmQgdGhlbiBzdGFydCBvdmVyIGZyb20gc2NyYXRjaCB3aXRoCisgICAgICAgIC8vIHRoZSBjaGFyYWN0ZXIgd2hlcmUgdGhlIGVycm9yIG9jY3VycmVkLgorICAgICAgICBpbnQgZmFydGhlc3RFbmRQb2ludCA9IHRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgU3RhY2sgYmVzdEJyZWFrUG9zaXRpb25zID0gbnVsbDsKKworICAgICAgICAvLyBpbml0aWFsaXplICh3ZSBhbHdheXMgZXhpdCB0aGUgbG9vcCB3aXRoIGEgYnJlYWsgc3RhdGVtZW50KQorICAgICAgICBjID0gdGV4dC5jdXJyZW50KCk7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisvL1N5c3RlbS5vdXQucHJpbnQoImMgPSAiICsgSW50ZWdlci50b1N0cmluZyhjLCAxNikgKyAiLCBwb3MgPSAiICsgdGV4dC5nZXRJbmRleCgpKTsKKworICAgICAgICAgICAgLy8gaWYgd2UgY2FuIHRyYW5zaXRpb24gdG8gc3RhdGUgIi0xIiBmcm9tIG91ciBjdXJyZW50IHN0YXRlLCB3ZSdyZQorICAgICAgICAgICAgLy8gb24gdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgbGVnYWwgd29yZC4gIFB1c2ggdGhhdCBwb3NpdGlvbiBvbnRvCisgICAgICAgICAgICAvLyB0aGUgcG9zc2libGUtYnJlYWstcG9zaXRpb25zIHN0YWNrCisgICAgICAgICAgICBpZiAoZGljdGlvbmFyeS5hdChzdGF0ZSwgMCkgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBwb3NzaWJsZUJyZWFrUG9zaXRpb25zLnB1c2gobmV3IEludGVnZXIodGV4dC5nZXRJbmRleCgpKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGxvb2sgdXAgdGhlIG5ldyBzdGF0ZSB0byB0cmFuc2l0aW9uIHRvIGluIHRoZSBkaWN0aW9uYXJ5CisgICAgICAgICAgICBzdGF0ZSA9IChkaWN0aW9uYXJ5LmF0KHN0YXRlLCBjKSkgJiAweEZGRkY7CisvL1N5c3RlbS5vdXQucHJpbnQoIiwgc3RhdGUgPSAiICsgc3RhdGUpOworCisgICAgICAgICAgICAvLyBpZiB0aGUgY2hhcmFjdGVyIHdlJ3JlIHNpdHRpbmcgb24gY2F1c2VzIHVzIHRvIHRyYW5zaXRpb24gdG8KKyAgICAgICAgICAgIC8vIHRoZSAiZW5kIG9mIHdvcmQiIHN0YXRlLCB0aGVuIGl0IHdhcyBhIG5vbi1kaWN0aW9uYXJ5IGNoYXJhY3RlcgorICAgICAgICAgICAgLy8gYW5kIHdlJ3ZlIHN1Y2Nlc3NmdWxseSB0cmF2ZXJzZWQgdGhlIHdob2xlIHJhbmdlLiAgRHJvcCBvdXQKKyAgICAgICAgICAgIC8vIG9mIHRoZSBsb29wLgorICAgICAgICAgICAgaWYgKHN0YXRlID09IC8qLTEqLyAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50QnJlYWtQb3NpdGlvbnMucHVzaChuZXcgSW50ZWdlcih0ZXh0LmdldEluZGV4KCkpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciB3ZSdyZSBzaXR0aW5nIG9uIGNhdXNlcyB1cyB0byB0cmFuc2l0aW9uIHRvCisgICAgICAgICAgICAvLyB0aGUgZXJyb3Igc3RhdGUsIG9yIGlmIHdlJ3ZlIGdvbmUgb2ZmIHRoZSBlbmQgb2YgdGhlIHJhbmdlCisgICAgICAgICAgICAvLyB3aXRob3V0IHRyYW5zaXRpb25pbmcgdG8gdGhlICJlbmQgb2Ygd29yZCIgc3RhdGUsIHdlJ3ZlIGhpdAorICAgICAgICAgICAgLy8gYW4gZXJyb3IuLi4KKyAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlID09IDAgfHwgdGV4dC5nZXRJbmRleCgpID49IGVuZFBvcykgeworCisgICAgICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyB0aGUgZmFydGhlc3Qgd2UndmUgZ290dGVuLCB0YWtlIG5vdGUgb2YgaXQgaW4KKyAgICAgICAgICAgICAgICAvLyBjYXNlIHRoZXJlJ3MgYW4gZXJyb3IgaW4gdGhlIHRleHQKKyAgICAgICAgICAgICAgICBpZiAodGV4dC5nZXRJbmRleCgpID4gZmFydGhlc3RFbmRQb2ludCkgeworICAgICAgICAgICAgICAgICAgICBmYXJ0aGVzdEVuZFBvaW50ID0gdGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgICAgICBiZXN0QnJlYWtQb3NpdGlvbnMgPSAoU3RhY2spKGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5jbG9uZSgpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyB3cm9uZ0JyZWFrUG9zaXRpb25zIGlzIGEgbGlzdCBvZiBhbGwgYnJlYWsgcG9zaXRpb25zIHdlJ3ZlIHRyaWVkIHN0YXJ0aW5nCisgICAgICAgICAgICAgICAgLy8gdGhhdCBkaWRuJ3QgYWxsb3cgdXMgdG8gdHJhdmVyc2UgYWxsIHRoZSB3YXkgdGhyb3VnaCB0aGUgdGV4dC4gIEV2ZXJ5IHRpbWUKKyAgICAgICAgICAgICAgICAvLyB3ZSBwb3AgYSBicmVhayBwb3NpdGlvbiBvZmYgb2YgY3VycmVudEJyZWFrUG9zaXRpb25zLCB3ZSBwdXQgaXQgaW50bworICAgICAgICAgICAgICAgIC8vIHdyb25nQnJlYWtQb3NpdGlvbnMgdG8gYXZvaWQgdHJ5aW5nIGl0IGFnYWluIGxhdGVyLiAgSWYgd2UgbWFrZSBpdCB0byB0aGlzCisgICAgICAgICAgICAgICAgLy8gc3BvdCwgd2UncmUgZWl0aGVyIGdvaW5nIHRvIGJhY2sgdXAgdG8gYSBicmVhayBpbiBwb3NzaWJsZUJyZWFrUG9zaXRpb25zCisgICAgICAgICAgICAgICAgLy8gYW5kIHRyeSBzdGFydGluZyBvdmVyIGZyb20gdGhlcmUsIG9yIHdlJ3ZlIGV4aGF1c3RlZCBhbGwgcG9zc2libGUgYnJlYWsKKyAgICAgICAgICAgICAgICAvLyBwb3NpdGlvbnMgYW5kIGFyZSBnb2luZyB0byBkbyB0aGUgZmFsbGJhY2sgcHJvY2VkdXJlLiAgVGhpcyBsb29wIHByZXZlbnRzCisgICAgICAgICAgICAgICAgLy8gdXMgZnJvbSBtZXNzaW5nIHdpdGggYW55dGhpbmcgaW4gcG9zc2libGVCcmVha1Bvc2l0aW9ucyB0aGF0IGRpZG4ndCB3b3JrIGFzCisgICAgICAgICAgICAgICAgLy8gYSBzdGFydGluZyBwb2ludCB0aGUgbGFzdCB0aW1lIHdlIHRyaWVkIGl0ICh0aGlzIGlzIHRvIHByZXZlbnQgYSBidW5jaCBvZgorICAgICAgICAgICAgICAgIC8vIHJlcGV0aXRpdmUgY2hlY2tzIGZyb20gc2xvd2luZyBkb3duIHNvbWUgZXh0cmVtZSBjYXNlcykKKyAgICAgICAgICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBJbnRlZ2VyIG5ld1N0YXJ0aW5nU3BvdCA9IG51bGw7CisgICAgICAgICAgICAgICAgd2hpbGUgKCFwb3NzaWJsZUJyZWFrUG9zaXRpb25zLmlzRW1wdHkoKSAmJiB3cm9uZ0JyZWFrUG9zaXRpb25zLmNvbnRhaW5zKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMucGVlaygpKSkgeworICAgICAgICAgICAgICAgICAgICBwb3NzaWJsZUJyZWFrUG9zaXRpb25zLnBvcCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHdlJ3ZlIHVzZWQgdXAgYWxsIHBvc3NpYmxlIGJyZWFrLXBvc2l0aW9uIGNvbWJpbmF0aW9ucywgdGhlcmUncworICAgICAgICAgICAgICAgIC8vIGFuIGVycm9yIG9yIGFuIHVua25vd24gd29yZCBpbiB0aGUgdGV4dC4gIEluIHRoaXMgY2FzZSwgd2Ugc3RhcnQKKyAgICAgICAgICAgICAgICAvLyBvdmVyLCB0cmVhdGluZyB0aGUgZmFydGhlc3QgY2hhcmFjdGVyIHdlJ3ZlIHJlYWNoZWQgYXMgdGhlIGJlZ2lubmluZworICAgICAgICAgICAgICAgIC8vIG9mIHRoZSByYW5nZSwgYW5kICJibGVzc2luZyIgdGhlIGJyZWFrIHBvc2l0aW9ucyB0aGF0IGdvdCB1cyB0aGF0CisgICAgICAgICAgICAgICAgLy8gZmFyIGFzIHJlYWwgYnJlYWsgcG9zaXRpb25zCisgICAgICAgICAgICAgICAgaWYgKHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChiZXN0QnJlYWtQb3NpdGlvbnMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEJyZWFrUG9zaXRpb25zID0gYmVzdEJyZWFrUG9zaXRpb25zOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhcnRoZXN0RW5kUG9pbnQgPCBlbmRQb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LnNldEluZGV4KGZhcnRoZXN0RW5kUG9pbnQgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChjdXJyZW50QnJlYWtQb3NpdGlvbnMuc2l6ZSgpID09IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKChJbnRlZ2VyKShjdXJyZW50QnJlYWtQb3NpdGlvbnMucGVlaygpKSkuaW50VmFsdWUoKSAhPSB0ZXh0LmdldEluZGV4KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHRleHQuZ2V0SW5kZXgoKSAhPSBzdGFydFBvcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5wdXNoKG5ldyBJbnRlZ2VyKHRleHQuZ2V0SW5kZXgoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50QnJlYWtQb3NpdGlvbnMucHVzaChuZXcgSW50ZWdlcih0ZXh0LmdldEluZGV4KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHdlIHN0aWxsIGhhdmUgbW9yZSBicmVhayBwb3NpdGlvbnMgd2UgY2FuIHRyeSwgdGhlbiBwcm9tb3RlIHRoZQorICAgICAgICAgICAgICAgIC8vIGxhc3QgYnJlYWsgaW4gcG9zc2libGVCcmVha1Bvc2l0aW9ucyBpbnRvIGN1cnJlbnRCcmVha1Bvc2l0aW9ucywKKyAgICAgICAgICAgICAgICAvLyBhbmQgZ2V0IHJpZCBvZiBhbGwgZW50cmllcyBpbiBjdXJyZW50QnJlYWtQb3NpdGlvbnMgdGhhdCBjb21lIGFmdGVyCisgICAgICAgICAgICAgICAgLy8gaXQuICBUaGVuIGJhY2sgdXAgdG8gdGhhdCBwb3NpdGlvbiBhbmQgc3RhcnQgb3ZlciBmcm9tIHRoZXJlIChpLmUuLAorICAgICAgICAgICAgICAgIC8vIHRyZWF0IHRoYXQgcG9zaXRpb24gYXMgdGhlIGJlZ2lubmluZyBvZiBhIG5ldyB3b3JkKQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyIHRlbXAgPSAoSW50ZWdlcilwb3NzaWJsZUJyZWFrUG9zaXRpb25zLnBvcCgpOworICAgICAgICAgICAgICAgICAgICBPYmplY3QgdGVtcDIgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIWN1cnJlbnRCcmVha1Bvc2l0aW9ucy5pc0VtcHR5KCkgJiYgdGVtcC5pbnRWYWx1ZSgpIDwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgoSW50ZWdlciljdXJyZW50QnJlYWtQb3NpdGlvbnMucGVlaygpKS5pbnRWYWx1ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wMiA9IGN1cnJlbnRCcmVha1Bvc2l0aW9ucy5wb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdyb25nQnJlYWtQb3NpdGlvbnMuYWRkRWxlbWVudCh0ZW1wMik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY3VycmVudEJyZWFrUG9zaXRpb25zLnB1c2godGVtcCk7CisgICAgICAgICAgICAgICAgICAgIHRleHQuc2V0SW5kZXgoKChJbnRlZ2VyKWN1cnJlbnRCcmVha1Bvc2l0aW9ucy5wZWVrKCkpLmludFZhbHVlKCkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHJlLXN5bmMgImMiIGZvciB0aGUgbmV4dCBnby1yb3VuZCwgYW5kIGRyb3Agb3V0IG9mIHRoZSBsb29wIGlmCisgICAgICAgICAgICAgICAgLy8gd2UndmUgbWFkZSBpdCBvZmYgdGhlIGVuZCBvZiB0aGUgcmFuZ2UKKyAgICAgICAgICAgICAgICBjID0gdGV4dC5jdXJyZW50KCk7CisgICAgICAgICAgICAgICAgc3RhdGUgPSAwOworICAgICAgICAgICAgICAgIGlmICh0ZXh0LmdldEluZGV4KCkgPj0gZW5kUG9zKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgd2UgZGlkbid0IGhpdCBhbnkgZXhjZXB0aW9uYWwgY29uZGl0aW9ucyBvbiB0aGlzIGxhc3QgaXRlcmF0aW9uLAorICAgICAgICAgICAgLy8ganVzdCBhZHZhbmNlIHRvIHRoZSBuZXh0IGNoYXJhY3RlciBhbmQgbG9vcAorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYyA9IHRleHQubmV4dCgpOworICAgICAgICAgICAgfQorLy9TeXN0ZW0ub3V0LnByaW50KCIsIHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMgPSB7ICIpOyBmb3IgKGludCBpID0gMDsgaSA8IHBvc3NpYmxlQnJlYWtQb3NpdGlvbnMuc2l6ZSgpOyBpKyspIFN5c3RlbS5vdXQucHJpbnQocG9zc2libGVCcmVha1Bvc2l0aW9ucy5lbGVtZW50QXQoaSkgKyAiICIpOyBTeXN0ZW0ub3V0LnByaW50KCJ9Iik7CisvL1N5c3RlbS5vdXQucHJpbnQoIiwgY3VycmVudEJyZWFrUG9zaXRpb25zID0geyAiKTsgZm9yIChpbnQgaSA9IDA7IGkgPCBjdXJyZW50QnJlYWtQb3NpdGlvbnMuc2l6ZSgpOyBpKyspIFN5c3RlbS5vdXQucHJpbnQoY3VycmVudEJyZWFrUG9zaXRpb25zLmVsZW1lbnRBdChpKSArICIgIik7IFN5c3RlbS5vdXQucHJpbnRsbigifSIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZHVtcCB0aGUgbGFzdCBicmVhayBwb3NpdGlvbiBpbiB0aGUgbGlzdCwgYW5kIHJlcGxhY2UgaXQgd2l0aCB0aGUgYWN0dWFsCisgICAgICAgIC8vIGVuZCBvZiB0aGUgcmFuZ2UgKHdoaWNoIG1heSBiZSB0aGUgc2FtZSBjaGFyYWN0ZXIsIG9yIG1heSBiZSBmdXJ0aGVyIG9uCisgICAgICAgIC8vIGJlY2F1c2UgdGhlIHJhbmdlIGFjdHVhbGx5IGVuZGVkIHdpdGggbm9uLWRpY3Rpb25hcnkgY2hhcmFjdGVycyB3ZSB3YW50IHRvCisgICAgICAgIC8vIGtlZXAgd2l0aCB0aGUgd29yZCkKKyAgICAgICAgaWYgKCFjdXJyZW50QnJlYWtQb3NpdGlvbnMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBjdXJyZW50QnJlYWtQb3NpdGlvbnMucG9wKCk7CisgICAgICAgIH0KKyAgICAgICAgY3VycmVudEJyZWFrUG9zaXRpb25zLnB1c2gobmV3IEludGVnZXIoZW5kUG9zKSk7CisKKyAgICAgICAgLy8gY3JlYXRlIGEgcmVndWxhciBhcnJheSB0byBob2xkIHRoZSBicmVhayBwb3NpdGlvbnMgYW5kIGNvcHkKKyAgICAgICAgLy8gdGhlIGJyZWFrIHBvc2l0aW9ucyBmcm9tIHRoZSBzdGFjayB0byB0aGUgYXJyYXkgKGluIGFkZGl0aW9uLAorICAgICAgICAvLyBvdXIgc3RhcnRpbmcgcG9zaXRpb24gZ29lcyBpbnRvIHRoaXMgYXJyYXkgYXMgYSBicmVhayBwb3NpdGlvbikuCisgICAgICAgIC8vIFRoaXMgYXJyYXkgYmVjb21lcyB0aGUgY2FjaGUgb2YgYnJlYWsgcG9zaXRpb25zIHVzZWQgYnkgbmV4dCgpCisgICAgICAgIC8vIGFuZCBwcmV2aW91cygpLCBzbyB0aGlzIGlzIHdoZXJlIHdlIGFjdHVhbGx5IHJlZnJlc2ggdGhlIGNhY2hlLgorICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9ucyA9IG5ldyBpbnRbY3VycmVudEJyZWFrUG9zaXRpb25zLnNpemUoKSArIDFdOworICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9uc1swXSA9IHN0YXJ0UG9zOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY3VycmVudEJyZWFrUG9zaXRpb25zLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBjYWNoZWRCcmVha1Bvc2l0aW9uc1tpICsgMV0gPSAoKEludGVnZXIpY3VycmVudEJyZWFrUG9zaXRpb25zLmVsZW1lbnRBdChpKSkuaW50VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICBwb3NpdGlvbkluQ2FjaGUgPSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBCdWlsZGVyIGNsYXNzIGZvciBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIGluaGVyaXRzIGFsbW9zdCBhbGwgb2YKKyAgICAgKiBpdHMgZnVuY3Rpb25hbGl0eSBmcm9tIHRoZSBCdWlsZGVyIGNsYXNzIGZvciBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCwgYnV0CisgICAgICogZXh0ZW5kcyBpdCB3aXRoIGV4dHJhIGxvZ2ljIHRvIGhhbmRsZSB0aGUgRElDVElPTkFSWV9WQVIgdG9rZW4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgY2xhc3MgQnVpbGRlciBleHRlbmRzIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkLkJ1aWxkZXIgeworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBIFVuaWNvZGVTZXQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNoYXJhY3RlcnMgcmVwcmVzZW50ZWQgaW4gdGhlIGRpY3Rpb25hcnkKKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgVW5pY29kZVNldCBkaWN0aW9uYXJ5Q2hhcnMgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBwcml2YXRlIFN0cmluZyBkaWN0aW9uYXJ5RXhwcmVzc2lvbiA9ICIiOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBObyBzcGVjaWFsIGluaXRpYWxpemF0aW9uCisgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgQnVpbGRlcigpIHsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBXZSBvdmVycmlkZSBoYW5kbGVTcGVjaWFsU3Vic3RpdHV0aW9uKCkgdG8gYWRkIGxvZ2ljIHRvIGhhbmRsZQorICAgICAgICAgKiB0aGUgJGRpY3Rpb25hcnkgdGFnLiAgSWYgd2Ugc2VlIGEgc3Vic3RpdHV0aW9uIG5hbWVkIERJQ1RJT05BUllfVkFSLAorICAgICAgICAgKiBwYXJzZSB0aGUgc3Vic3RpdHV0aW9uIGV4cHJlc3Npb24gYW5kIHN0b3JlIHRoZSByZXN1bHQgaW4KKyAgICAgICAgICogZGljdGlvbmFyeUNoYXJzLgorICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlU3BlY2lhbFN1YnN0aXR1dGlvbihTdHJpbmcgcmVwbGFjZSwgU3RyaW5nIHJlcGxhY2VXaXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydFBvcywgU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICBzdXBlci5oYW5kbGVTcGVjaWFsU3Vic3RpdHV0aW9uKHJlcGxhY2UsIHJlcGxhY2VXaXRoLCBzdGFydFBvcywgZGVzY3JpcHRpb24pOworCisgICAgICAgICAgICBpZiAocmVwbGFjZS5lcXVhbHMoRElDVElPTkFSWV9WQVIpKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlcGxhY2VXaXRoLmNoYXJBdCgwKSA9PSAnKCcpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IoIkRpY3Rpb25hcnkgZ3JvdXAgY2FuJ3QgYmUgZW5jbG9zZWQgaW4gKCIsIHN0YXJ0UG9zLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGRpY3Rpb25hcnlFeHByZXNzaW9uID0gcmVwbGFjZVdpdGg7CisgICAgICAgICAgICAgICAgZGljdGlvbmFyeUNoYXJzID0gbmV3IFVuaWNvZGVTZXQocmVwbGFjZVdpdGgsIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgb3RoZXIgaGFsZiBvZiB0aGUgbG9naWMgdG8gaGFuZGxlIHRoZSBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMgaGFwcGVucyBoZXJlLgorICAgICAgICAgKiBBZnRlciB0aGUgaW5oZXJpdGVkIGJ1aWxkZXIgaGFzIGRlcml2ZWQgdGhlIHJlYWwgY2hhcmFjdGVyIGNhdGVnb3JpZXMsIHdlCisgICAgICAgICAqIHNldCB1cCB0aGUgY2F0ZWdvcnlGbGFncyBhcnJheSBpbiB0aGUgaXRlcmF0b3IuICBUaGlzIGFycmF5IGNvbnRhaW5zICJ0cnVlIgorICAgICAgICAgKiBmb3IgZXZlcnkgY2hhcmFjdGVyIGNhdGVnb3J5IHRoYXQgaW5jbHVkZXMgYSBkaWN0aW9uYXJ5IGNoYXJhY3Rlci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGJ1aWxkQ2hhckNhdGVnb3JpZXMoVmVjdG9yIHRlbXBSdWxlTGlzdCkgeworICAgICAgICAgICAgc3VwZXIuYnVpbGRDaGFyQ2F0ZWdvcmllcyh0ZW1wUnVsZUxpc3QpOworCisgICAgICAgICAgICBjYXRlZ29yeUZsYWdzID0gbmV3IGJvb2xlYW5bY2F0ZWdvcmllcy5zaXplKCldOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgVW5pY29kZVNldCBjcyA9IChVbmljb2RlU2V0KWNhdGVnb3JpZXMuZWxlbWVudEF0KGkpOworCisgICAgICAgICAgICAgICAgY3MucmV0YWluQWxsKGRpY3Rpb25hcnlDaGFycyk7CisgICAgICAgICAgICAgICAgaWYgKCFjcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlGbGFnc1tpXSA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBhY3R1YWxseSBjYWxsZWQgYnkgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5idWlsZENoYXJDYXRlZ29yaWVzKCksCisgICAgICAgIC8vIHdoaWNoIGlzIGNhbGxlZCBieSB0aGUgZnVuY3Rpb24gYWJvdmUuICBUaGlzIGdpdmVzIHVzIGEgd2F5IHRvIGNyZWF0ZSBhIHNlcGFyYXRlCisgICAgICAgIC8vIGNoYXJhY3RlciBjYXRlZ29yeSBmb3IgdGhlIGRpY3Rpb25hcnkgY2hhcmFjdGVycyBldmVuIHdoZW4gUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAgICAvLyBpc24ndCBtYWtpbmcgYSBkaXN0aW5jdGlvbgorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBtdW5nZUV4cHJlc3Npb25MaXN0KEhhc2h0YWJsZSBleHByZXNzaW9ucykgeworICAgICAgICAgICAgZXhwcmVzc2lvbnMucHV0KGRpY3Rpb25hcnlFeHByZXNzaW9uLCBkaWN0aW9uYXJ5Q2hhcnMpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGlnaXRMaXN0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9EaWdpdExpc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NjkxOGMzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRGlnaXRMaXN0LmphdmEKQEAgLTAsMCArMSw4MDAgQEAKKy8vIyNoZWFkZXIKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKKworLyoqCisgKiA8Y29kZT5EaWdpdExpc3Q8L2NvZGU+IGhhbmRsZXMgdGhlIHRyYW5zY29kaW5nIGJldHdlZW4gbnVtZXJpYyB2YWx1ZXMgYW5kCisgKiBzdHJpbmdzIG9mIGNoYXJhY3RlcnMuICBJdCBvbmx5IHJlcHJlc2VudHMgbm9uLW5lZ2F0aXZlIG51bWJlcnMuICBUaGUKKyAqIGRpdmlzaW9uIG9mIGxhYm9yIGJldHdlZW4gPGNvZGU+RGlnaXRMaXN0PC9jb2RlPiBhbmQKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGlzIHRoYXQgPGNvZGU+RGlnaXRMaXN0PC9jb2RlPiBoYW5kbGVzIHRoZSByYWRpeAorICogMTAgcmVwcmVzZW50YXRpb24gaXNzdWVzIGFuZCBudW1lcmljIGNvbnZlcnNpb24sIGluY2x1ZGluZyByb3VuZGluZzsKKyAqIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+IGhhbmRsZXMgdGhlIGxvY2FsZS1zcGVjaWZpYyBpc3N1ZXMgc3VjaCBhcworICogcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHJlcHJlc2VudGF0aW9uLCBkaWdpdCBncm91cGluZywgZGVjaW1hbCBwb2ludCwKKyAqIGN1cnJlbmN5LCBhbmQgc28gb24uCisgKgorICogPHA+QSA8Y29kZT5EaWdpdExpc3Q8L2NvZGU+IGlzIGEgcmVwcmVzZW50YXRpb24gb2YgYSBmaW5pdGUgbnVtZXJpYyB2YWx1ZS4KKyAqIDxjb2RlPkRpZ2l0TGlzdDwvY29kZT4gb2JqZWN0cyBkbyBub3QgcmVwcmVzZW50IDxjb2RlPk5hTjwvY29kZT4gb3IgaW5maW5pdGUKKyAqIHZhbHVlcy4gIEEgPGNvZGU+RGlnaXRMaXN0PC9jb2RlPiB2YWx1ZSBjYW4gYmUgY29udmVydGVkIHRvIGEKKyAqIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHdpdGhvdXQgbG9zcyBvZiBwcmVjaXNpb24uICBDb252ZXJzaW9uIHRvIG90aGVyCisgKiBudW1lcmljIGZvcm1hdHMgbWF5IGludm9sdmUgbG9zcyBvZiBwcmVjaXNpb24sIGRlcGVuZGluZyBvbiB0aGUgc3BlY2lmaWMKKyAqIHZhbHVlLgorICoKKyAqIDxwPlRoZSA8Y29kZT5EaWdpdExpc3Q8L2NvZGU+IHJlcHJlc2VudGF0aW9uIGNvbnNpc3RzIG9mIGEgc3RyaW5nIG9mCisgKiBjaGFyYWN0ZXJzLCB3aGljaCBhcmUgdGhlIGRpZ2l0cyByYWRpeCAxMCwgZnJvbSAnMCcgdG8gJzknLiAgSXQgYWxzbyBoYXMgYQorICogYmFzZSAxMCBleHBvbmVudCBhc3NvY2lhdGVkIHdpdGggaXQuICBUaGUgdmFsdWUgcmVwcmVzZW50ZWQgYnkgYQorICogPGNvZGU+RGlnaXRMaXN0PC9jb2RlPiBvYmplY3QgY2FuIGJlIGNvbXB1dGVkIGJ5IG11bGl0cGx5aW5nIHRoZSBmcmFjdGlvbgorICogPGVtPmY8L2VtPiwgd2hlcmUgMCA8PSA8ZW0+ZjwvZW0+IDwgMSwgZGVyaXZlZCBieSBwbGFjaW5nIGFsbCB0aGUgZGlnaXRzIG9mCisgKiB0aGUgbGlzdCB0byB0aGUgcmlnaHQgb2YgdGhlIGRlY2ltYWwgcG9pbnQsIGJ5IDEwXmV4cG9uZW50LgorICoKKyAqIEBzZWUgamF2YS51dGlsLkxvY2FsZQorICogQHNlZSBqYXZhLnRleHQuRm9ybWF0CisgKiBAc2VlIE51bWJlckZvcm1hdAorICogQHNlZSBEZWNpbWFsRm9ybWF0CisgKiBAc2VlIGphdmEudGV4dC5DaG9pY2VGb3JtYXQKKyAqIEBzZWUgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQKKyAqIEB2ZXJzaW9uICAgICAgMS4xOCAwOC8xMi85OAorICogQGF1dGhvciAgICAgICBNYXJrIERhdmlzLCBBbGFuIExpdQorICogKi8KK2ZpbmFsIGNsYXNzIERpZ2l0TGlzdCB7CisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cyBpbiBhbiBJRUVFIDc1NCBkb3VibGUsIHRoYXQKKyAgICAgKiBpcywgaW4gYSBKYXZhIGRvdWJsZS4gIFRoaXMgbXVzdCBub3QgYmUgaW5jcmVhc2VkLCBvciBnYXJiYWdlIGRpZ2l0cworICAgICAqIHdpbGwgYmUgZ2VuZXJhdGVkLCBhbmQgc2hvdWxkIG5vdCBiZSBkZWNyZWFzZWQsIG9yIGFjY3VyYWN5IHdpbGwgYmUgbG9zdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVhfTE9OR19ESUdJVFMgPSAxOTsgLy8gPT0gTG9uZy50b1N0cmluZyhMb25nLk1BWF9WQUxVRSkubGVuZ3RoKCkKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBEQkxfRElHID0gMTc7CisKKyAgICAvKioKKyAgICAgKiBUaGVzZSBkYXRhIG1lbWJlcnMgYXJlIGludGVudGlvbmFsbHkgcHVibGljIGFuZCBjYW4gYmUgc2V0IGRpcmVjdGx5LgorICAgICAqCisgICAgICogVGhlIHZhbHVlIHJlcHJlc2VudGVkIGlzIGdpdmVuIGJ5IHBsYWNpbmcgdGhlIGRlY2ltYWwgcG9pbnQgYmVmb3JlCisgICAgICogZGlnaXRzW2RlY2ltYWxBdF0uICBJZiBkZWNpbWFsQXQgaXMgPCAwLCB0aGVuIGxlYWRpbmcgemVyb3MgYmV0d2VlbgorICAgICAqIHRoZSBkZWNpbWFsIHBvaW50IGFuZCB0aGUgZmlyc3Qgbm9uemVybyBkaWdpdCBhcmUgaW1wbGllZC4gIElmIGRlY2ltYWxBdAorICAgICAqIGlzID4gY291bnQsIHRoZW4gdHJhaWxpbmcgemVyb3MgYmV0d2VlbiB0aGUgZGlnaXRzW2NvdW50LTFdIGFuZCB0aGUKKyAgICAgKiBkZWNpbWFsIHBvaW50IGFyZSBpbXBsaWVkLgorICAgICAqCisgICAgICogRXF1aXZhbGVudGx5LCB0aGUgcmVwcmVzZW50ZWQgdmFsdWUgaXMgZ2l2ZW4gYnkgZiAqIDEwXmRlY2ltYWxBdC4gIEhlcmUKKyAgICAgKiBmIGlzIGEgdmFsdWUgMC4xIDw9IGYgPCAxIGFycml2ZWQgYXQgYnkgcGxhY2luZyB0aGUgZGlnaXRzIGluIERpZ2l0cyB0bworICAgICAqIHRoZSByaWdodCBvZiB0aGUgZGVjaW1hbC4KKyAgICAgKgorICAgICAqIERpZ2l0TGlzdCBpcyBub3JtYWxpemVkLCBzbyBpZiBpdCBpcyBub24temVybywgZmlnaXRzWzBdIGlzIG5vbi16ZXJvLiAgV2UKKyAgICAgKiBkb24ndCBhbGxvdyBkZW5vcm1hbGl6ZWQgbnVtYmVycyBiZWNhdXNlIG91ciBleHBvbmVudCBpcyBlZmZlY3RpdmVseSBvZgorICAgICAqIHVubGltaXRlZCBtYWduaXR1ZGUuICBUaGUgY291bnQgdmFsdWUgY29udGFpbnMgdGhlIG51bWJlciBvZiBzaWduaWZpY2FudAorICAgICAqIGRpZ2l0cyBwcmVzZW50IGluIGRpZ2l0c1tdLgorICAgICAqCisgICAgICogWmVybyBpcyByZXByZXNlbnRlZCBieSBhbnkgRGlnaXRMaXN0IHdpdGggY291bnQgPT0gMCBvciB3aXRoIGVhY2ggZGlnaXRzW2ldCisgICAgICogZm9yIGFsbCBpIDw9IGNvdW50ID09ICcwJy4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGRlY2ltYWxBdCA9IDA7CisgICAgcHVibGljIGludCBjb3VudCA9IDA7CisgICAgcHVibGljIGJ5dGVbXSBkaWdpdHMgPSBuZXcgYnl0ZVtNQVhfTE9OR19ESUdJVFNdOworCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGVuc3VyZUNhcGFjaXR5KGludCBkaWdpdENhcGFjaXR5LCBpbnQgZGlnaXRzVG9Db3B5KSB7CisgICAgICAgIGlmIChkaWdpdENhcGFjaXR5ID4gZGlnaXRzLmxlbmd0aCkgeworICAgICAgICAgICAgYnl0ZVtdIG5ld0RpZ2l0cyA9IG5ldyBieXRlW2RpZ2l0Q2FwYWNpdHkgKiAyXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZGlnaXRzLCAwLCBuZXdEaWdpdHMsIDAsIGRpZ2l0c1RvQ29weSk7CisgICAgICAgICAgICBkaWdpdHMgPSBuZXdEaWdpdHM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcmVwcmVzZW50ZWQgbnVtYmVyIGlzIHplcm8uCisgICAgICovCisgICAgYm9vbGVhbiBpc1plcm8oKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpIGlmIChkaWdpdHNbaV0gIT0gJzAnKSByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworLy8gVW51c2VkIGFzIG9mIElDVSAyLjYgLSBhbGFuCisvLyAgICAvKioKKy8vICAgICAqIENsZWFycyBvdXQgdGhlIGRpZ2l0cy4KKy8vICAgICAqIFVzZSBiZWZvcmUgYXBwZW5kaW5nIHRoZW0uCisvLyAgICAgKiBUeXBpY2FsbHksIHlvdSBzZXQgYSBzZXJpZXMgb2YgZGlnaXRzIHdpdGggYXBwZW5kLCB0aGVuIGF0IHRoZSBwb2ludAorLy8gICAgICogeW91IGhpdCB0aGUgZGVjaW1hbCBwb2ludCwgeW91IHNldCBteURpZ2l0TGlzdC5kZWNpbWFsQXQgPSBteURpZ2l0TGlzdC5jb3VudDsKKy8vICAgICAqIHRoZW4gZ28gb24gYXBwZW5kaW5nIGRpZ2l0cy4KKy8vICAgICAqLworLy8gICAgcHVibGljIHZvaWQgY2xlYXIgKCkgeworLy8gICAgICAgIGRlY2ltYWxBdCA9IDA7CisvLyAgICAgICAgY291bnQgPSAwOworLy8gICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kcyBkaWdpdHMgdG8gdGhlIGxpc3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwZW5kIChpbnQgZGlnaXQpIHsKKyAgICAgICAgZW5zdXJlQ2FwYWNpdHkoY291bnQrMSwgY291bnQpOworICAgICAgICBkaWdpdHNbY291bnQrK10gPSAoYnl0ZSkgZGlnaXQ7CisgICAgfQorICAgIC8qKgorICAgICAqIFV0aWxpdHkgcm91dGluZSB0byBnZXQgdGhlIHZhbHVlIG9mIHRoZSBkaWdpdCBsaXN0CisgICAgICogSWYgKGNvdW50ID09IDApIHRoaXMgdGhyb3dzIGEgTnVtYmVyRm9ybWF0RXhjZXB0aW9uLCB3aGljaAorICAgICAqIG1pbWljcyBMb25nLnBhcnNlTG9uZygpLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBkb3VibGUgZ2V0RG91YmxlKCkgeworICAgICAgICBpZiAoY291bnQgPT0gMCkgcmV0dXJuIDAuMDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHRlbXAgPSBuZXcgU3RyaW5nQnVmZmVyKGNvdW50KTsKKyAgICAgICAgdGVtcC5hcHBlbmQoJy4nKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB0ZW1wLmFwcGVuZCgoY2hhcikoZGlnaXRzW2ldKSk7CisgICAgICAgIHRlbXAuYXBwZW5kKCdFJyk7CisgICAgICAgIHRlbXAuYXBwZW5kKEludGVnZXIudG9TdHJpbmcoZGVjaW1hbEF0KSk7CisgICAgICAgIHJldHVybiBEb3VibGUudmFsdWVPZih0ZW1wLnRvU3RyaW5nKCkpLmRvdWJsZVZhbHVlKCk7CisgICAgICAgIC8vIGxvbmcgdmFsdWUgPSBMb25nLnBhcnNlTG9uZyh0ZW1wLnRvU3RyaW5nKCkpOworICAgICAgICAvLyByZXR1cm4gKHZhbHVlICogTWF0aC5wb3coMTAsIGRlY2ltYWxBdCAtIGNvdW50KSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXRpbGl0eSByb3V0aW5lIHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIGRpZ2l0IGxpc3QuCisgICAgICogSWYgKGNvdW50ID09IDApIHRoaXMgcmV0dXJucyAwLCB1bmxpa2UgTG9uZy5wYXJzZUxvbmcoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgbG9uZyBnZXRMb25nKCkgeworICAgICAgICAvLyBmb3Igbm93LCBzaW1wbGUgaW1wbGVtZW50YXRpb247IGxhdGVyLCBkbyBwcm9wZXIgSUVFRSBuYXRpdmUgc3R1ZmYKKworICAgICAgICBpZiAoY291bnQgPT0gMCkgcmV0dXJuIDA7CisKKyAgICAgICAgLy8gV2UgaGF2ZSB0byBjaGVjayBmb3IgdGhpcywgYmVjYXVzZSB0aGlzIGlzIHRoZSBvbmUgTkVHQVRJVkUgdmFsdWUKKyAgICAgICAgLy8gd2UgcmVwcmVzZW50LiAgSWYgd2UgdHJpZWQgdG8ganVzdCBwYXNzIHRoZSBkaWdpdHMgb2ZmIHRvIHBhcnNlTG9uZywKKyAgICAgICAgLy8gd2UnZCBnZXQgYSBwYXJzZSBmYWlsdXJlLgorICAgICAgICBpZiAoaXNMb25nTUlOX1ZBTFVFKCkpIHJldHVybiBMb25nLk1JTl9WQUxVRTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgdGVtcCA9IG5ldyBTdHJpbmdCdWZmZXIoY291bnQpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY2ltYWxBdDsgKytpKQorICAgICAgICB7CisgICAgICAgICAgICB0ZW1wLmFwcGVuZCgoaSA8IGNvdW50KSA/IChjaGFyKShkaWdpdHNbaV0pIDogJzAnKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gTG9uZy5wYXJzZUxvbmcodGVtcC50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSA8Y29kZT5CaWdJbnRlZ2VyPC9jb2RlPiByZXByZXNlbnRpbmcgdGhlIHZhbHVlIHN0b3JlZCBpbiB0aGlzCisgICAgICogPGNvZGU+RGlnaXRMaXN0PC9jb2RlPi4gIFRoaXMgbWV0aG9kIGFzc3VtZXMgdGhhdCB0aGlzIG9iamVjdCBjb250YWlucworICAgICAqIGFuIGludGVncmFsIHZhbHVlOyBpZiBub3QsIGl0IHdpbGwgcmV0dXJuIGFuIGluY29ycmVjdCB2YWx1ZS4KKyAgICAgKiBbYm5mXQorICAgICAqIEBwYXJhbSBpc1Bvc2l0aXZlIGRldGVybWluZXMgdGhlIHNpZ24gb2YgdGhlIHJldHVybmVkIHJlc3VsdAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoaXMgb2JqZWN0IGFzIGEgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4KKyAgICAgKi8KKyAgICBwdWJsaWMgQmlnSW50ZWdlciBnZXRCaWdJbnRlZ2VyKGJvb2xlYW4gaXNQb3NpdGl2ZSkgeworICAgICAgICBpZiAoaXNaZXJvKCkpIHJldHVybiBCaWdJbnRlZ2VyLnZhbHVlT2YoMCk7CisgICAgICAgIGlmIChmYWxzZSkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHN0cmluZ1JlcCA9IG5ldyBTdHJpbmdCdWZmZXIoY291bnQpOworICAgICAgICAgICAgaWYgKCFpc1Bvc2l0aXZlKSB7CisgICAgICAgICAgICAgICAgc3RyaW5nUmVwLmFwcGVuZCgnLScpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBzdHJpbmdSZXAuYXBwZW5kKChjaGFyKSBkaWdpdHNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGQgPSBkZWNpbWFsQXQ7CisgICAgICAgICAgICB3aGlsZSAoZC0tID4gY291bnQpIHsKKyAgICAgICAgICAgICAgICBzdHJpbmdSZXAuYXBwZW5kKCcwJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIoc3RyaW5nUmVwLnRvU3RyaW5nKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGxlbiA9IGRlY2ltYWxBdCA+IGNvdW50ID8gZGVjaW1hbEF0IDogY291bnQ7CisgICAgICAgICAgICBpZiAoIWlzUG9zaXRpdmUpIHsKKyAgICAgICAgICAgICAgICBsZW4gKz0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoYXJbXSB0ZXh0ID0gbmV3IGNoYXJbbGVuXTsKKyAgICAgICAgICAgIGludCBuID0gMDsKKyAgICAgICAgICAgIGlmICghaXNQb3NpdGl2ZSkgeworICAgICAgICAgICAgICAgIHRleHRbMF0gPSAnLSc7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHRleHRbaSsxXSA9IChjaGFyKWRpZ2l0c1tpXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbiA9IGNvdW50KzE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICB0ZXh0W2ldID0gKGNoYXIpZGlnaXRzW2ldOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuID0gY291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBpID0gbjsgaSA8IHRleHQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB0ZXh0W2ldID0gJzAnOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihuZXcgU3RyaW5nKHRleHQpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIGdldFN0cmluZ1JlcChib29sZWFuIGlzUG9zaXRpdmUpIHsKKyAgICAgICAgaWYgKGlzWmVybygpKSByZXR1cm4gIjAiOworICAgICAgICBTdHJpbmdCdWZmZXIgc3RyaW5nUmVwID0gbmV3IFN0cmluZ0J1ZmZlcihjb3VudCsxKTsKKyAgICAgICAgaWYgKCFpc1Bvc2l0aXZlKSB7CisgICAgICAgICAgICBzdHJpbmdSZXAuYXBwZW5kKCctJyk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGQgPSBkZWNpbWFsQXQ7CisgICAgICAgIGlmIChkIDwgMCkgeworICAgICAgICAgICAgc3RyaW5nUmVwLmFwcGVuZCgnLicpOworICAgICAgICAgICAgd2hpbGUgKGQgPCAwKSB7CisgICAgICAgICAgICAgICAgc3RyaW5nUmVwLmFwcGVuZCgnMCcpOworICAgICAgICAgICAgICAgICsrZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGQgPSAtMTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgaWYgKGQgPT0gaSkgeworICAgICAgICAgICAgICAgIHN0cmluZ1JlcC5hcHBlbmQoJy4nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0cmluZ1JlcC5hcHBlbmQoKGNoYXIpIGRpZ2l0c1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKGQtLSA+IGNvdW50KSB7CisgICAgICAgICAgICBzdHJpbmdSZXAuYXBwZW5kKCcwJyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0cmluZ1JlcC50b1N0cmluZygpOworICAgIH0KKyAgICAKKy8vI2lmbmRlZiBGT1VOREFUSU9OICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IHJlcHJlc2VudGluZyB0aGUgdmFsdWUgc3RvcmVkIGluIHRoaXMKKyAgICAgKiA8Y29kZT5EaWdpdExpc3Q8L2NvZGU+LgorICAgICAqIFtibmZdCisgICAgICogQHBhcmFtIGlzUG9zaXRpdmUgZGV0ZXJtaW5lcyB0aGUgc2lnbiBvZiB0aGUgcmV0dXJuZWQgcmVzdWx0CisgICAgICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhpcyBvYmplY3QgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPgorICAgICAqLworICAgIHB1YmxpYyBqYXZhLm1hdGguQmlnRGVjaW1hbCBnZXRCaWdEZWNpbWFsKGJvb2xlYW4gaXNQb3NpdGl2ZSkgeworICAgICAgICBpZiAoaXNaZXJvKCkpIHJldHVybiBqYXZhLm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKDApOworICAgICAgIHJldHVybiBuZXcgamF2YS5tYXRoLkJpZ0RlY2ltYWwoZ2V0U3RyaW5nUmVwKGlzUG9zaXRpdmUpKTsKKyAgICB9CisvLyNlbmRpZgorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIDxjb2RlPklDVSBCaWdEZWNpbWFsPC9jb2RlPiByZXByZXNlbnRpbmcgdGhlIHZhbHVlIHN0b3JlZCBpbiB0aGlzCisgICAgICogPGNvZGU+RGlnaXRMaXN0PC9jb2RlPi4KKyAgICAgKiBbYm5mXQorICAgICAqIEBwYXJhbSBpc1Bvc2l0aXZlIGRldGVybWluZXMgdGhlIHNpZ24gb2YgdGhlIHJldHVybmVkIHJlc3VsdAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoaXMgb2JqZWN0IGFzIGEgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4KKyAgICAgKi8KKyAgICBwdWJsaWMgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIGdldEJpZ0RlY2ltYWxJQ1UoYm9vbGVhbiBpc1Bvc2l0aXZlKSB7CisgICAgICAgIGlmIChpc1plcm8oKSkgcmV0dXJuIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbC52YWx1ZU9mKDApOworICAgICAgIHJldHVybiBuZXcgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKGdldFN0cmluZ1JlcChpc1Bvc2l0aXZlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoaXMgb2JqZWN0cyByZXByZXNlbnRlZCB2YWx1ZSBpcyBhbiBpbnRlZ2VyLgorICAgICAqIFtibmZdCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSByZXByZXNlbnRlZCB2YWx1ZSBvZiB0aGlzIG9iamVjdCBpcyBhbiBpbnRlZ2VyCisgICAgICovCisgICAgYm9vbGVhbiBpc0ludGVncmFsKCkgeworICAgICAgICAvLyBUcmltIHRyYWlsaW5nIHplcm9zLiAgVGhpcyBkb2VzIG5vdCBjaGFuZ2UgdGhlIHJlcHJlc2VudGVkIHZhbHVlLgorICAgICAgICB3aGlsZSAoY291bnQgPiAwICYmIGRpZ2l0c1tjb3VudCAtIDFdID09IChieXRlKScwJykgLS1jb3VudDsKKyAgICAgICAgcmV0dXJuIGNvdW50ID09IDAgfHwgZGVjaW1hbEF0ID49IGNvdW50OworICAgIH0KKworLy8gVW51c2VkIGFzIG9mIElDVSAyLjYgLSBhbGFuCisvLyAgICAvKioKKy8vICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBudW1iZXIgcmVwcmVzZW50ZWQgYnkgdGhpcyBvYmplY3QgY2FuIGZpdCBpbnRvCisvLyAgICAgKiBhIGxvbmcuCisvLyAgICAgKi8KKy8vICAgIGJvb2xlYW4gZml0c0ludG9Mb25nKGJvb2xlYW4gaXNQb3NpdGl2ZSkKKy8vICAgIHsKKy8vICAgICAgICAvLyBGaWd1cmUgb3V0IGlmIHRoZSByZXN1bHQgd2lsbCBmaXQgaW4gYSBsb25nLiAgV2UgaGF2ZSB0bworLy8gICAgICAgIC8vIGZpcnN0IGxvb2sgZm9yIG5vbnplcm8gZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50OworLy8gICAgICAgIC8vIHRoZW4gY2hlY2sgdGhlIHNpemUuICBJZiB0aGUgZGlnaXQgY291bnQgaXMgMTggb3IgbGVzcywgdGhlbgorLy8gICAgICAgIC8vIHRoZSB2YWx1ZSBjYW4gZGVmaW5pdGVseSBiZSByZXByZXNlbnRlZCBhcyBhIGxvbmcuICBJZiBpdCBpcyAxOQorLy8gICAgICAgIC8vIHRoZW4gaXQgbWF5IGJlIHRvbyBsYXJnZS4KKy8vCisvLyAgICAgICAgLy8gVHJpbSB0cmFpbGluZyB6ZXJvcy4gIFRoaXMgZG9lcyBub3QgY2hhbmdlIHRoZSByZXByZXNlbnRlZCB2YWx1ZS4KKy8vICAgICAgICB3aGlsZSAoY291bnQgPiAwICYmIGRpZ2l0c1tjb3VudCAtIDFdID09IChieXRlKScwJykgLS1jb3VudDsKKy8vCisvLyAgICAgICAgaWYgKGNvdW50ID09IDApIHsKKy8vICAgICAgICAgICAgLy8gUG9zaXRpdmUgemVybyBmaXRzIGludG8gYSBsb25nLCBidXQgbmVnYXRpdmUgemVybyBjYW4gb25seQorLy8gICAgICAgICAgICAvLyBiZSByZXByZXNlbnRlZCBhcyBhIGRvdWJsZS4gLSBidWcgNDE2Mjg1MgorLy8gICAgICAgICAgICByZXR1cm4gaXNQb3NpdGl2ZTsKKy8vICAgICAgICB9CisvLworLy8gICAgICAgIGlmIChkZWNpbWFsQXQgPCBjb3VudCB8fCBkZWNpbWFsQXQgPiBNQVhfTE9OR19ESUdJVFMpIHJldHVybiBmYWxzZTsKKy8vCisvLyAgICAgICAgaWYgKGRlY2ltYWxBdCA8IE1BWF9MT05HX0RJR0lUUykgcmV0dXJuIHRydWU7CisvLworLy8gICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2UgaGF2ZSBkZWNpbWFsQXQgPT0gY291bnQsIGFuZCBjb3VudCA9PSBNQVhfTE9OR19ESUdJVFMuCisvLyAgICAgICAgLy8gVGhlIG51bWJlciB3aWxsIG92ZXJmbG93IGlmIGl0IGlzIGxhcmdlciB0aGFuIDkyMjMzNzIwMzY4NTQ3NzU4MDcKKy8vICAgICAgICAvLyBvciBzbWFsbGVyIHRoYW4gLTkyMjMzNzIwMzY4NTQ3NzU4MDguCisvLyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpCisvLyAgICAgICAgeworLy8gICAgICAgICAgICBieXRlIGRpZyA9IGRpZ2l0c1tpXSwgbWF4ID0gTE9OR19NSU5fUkVQW2ldOworLy8gICAgICAgICAgICBpZiAoZGlnID4gbWF4KSByZXR1cm4gZmFsc2U7CisvLyAgICAgICAgICAgIGlmIChkaWcgPCBtYXgpIHJldHVybiB0cnVlOworLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgZmlyc3QgY291bnQgZGlnaXRzIG1hdGNoLiAgSWYgZGVjaW1hbEF0IGlzIGxlc3MKKy8vICAgICAgICAvLyB0aGFuIGNvdW50LCB0aGVuIHRoZSByZW1haW5pbmcgZGlnaXRzIGFyZSB6ZXJvLCBhbmQgd2UgcmV0dXJuIHRydWUuCisvLyAgICAgICAgaWYgKGNvdW50IDwgZGVjaW1hbEF0KSByZXR1cm4gdHJ1ZTsKKy8vCisvLyAgICAgICAgLy8gTm93IHdlIGhhdmUgYSByZXByZXNlbnRhdGlvbiBvZiBMb25nLk1JTl9WQUxVRSwgd2l0aG91dCB0aGUgbGVhZGluZworLy8gICAgICAgIC8vIG5lZ2F0aXZlIHNpZ24uICBJZiB0aGlzIHJlcHJlc2VudHMgYSBwb3NpdGl2ZSB2YWx1ZSwgdGhlbiBpdCBkb2VzCisvLyAgICAgICAgLy8gbm90IGZpdDsgb3RoZXJ3aXNlIGl0IGZpdHMuCisvLyAgICAgICAgcmV0dXJuICFpc1Bvc2l0aXZlOworLy8gICAgfQorCisvLyBVbnVzZWQgYXMgb2YgSUNVIDIuNiAtIGFsYW4KKy8vICAgIC8qKgorLy8gICAgICogU2V0IHRoZSBkaWdpdCBsaXN0IHRvIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIGRvdWJsZSB2YWx1ZS4KKy8vICAgICAqIFRoaXMgbWV0aG9kIHN1cHBvcnRzIGZpeGVkLXBvaW50IG5vdGF0aW9uLgorLy8gICAgICogQHBhcmFtIHNvdXJjZSBWYWx1ZSB0byBiZSBjb252ZXJ0ZWQ7IG11c3Qgbm90IGJlIEluZiwgLUluZiwgTmFuLAorLy8gICAgICogb3IgYSB2YWx1ZSA8PSAwLgorLy8gICAgICogQHBhcmFtIG1heGltdW1GcmFjdGlvbkRpZ2l0cyBUaGUgbW9zdCBmcmFjdGlvbmFsIGRpZ2l0cyB3aGljaCBzaG91bGQKKy8vICAgICAqIGJlIGNvbnZlcnRlZC4KKy8vICAgICAqLworLy8gICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGRvdWJsZSBzb3VyY2UsIGludCBtYXhpbXVtRnJhY3Rpb25EaWdpdHMpCisvLyAgICB7CisvLyAgICAgICAgc2V0KHNvdXJjZSwgbWF4aW11bUZyYWN0aW9uRGlnaXRzLCB0cnVlKTsKKy8vICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZGlnaXQgbGlzdCB0byBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBkb3VibGUgdmFsdWUuCisgICAgICogVGhpcyBtZXRob2Qgc3VwcG9ydHMgYm90aCBmaXhlZC1wb2ludCBhbmQgZXhwb25lbnRpYWwgbm90YXRpb24uCisgICAgICogQHBhcmFtIHNvdXJjZSBWYWx1ZSB0byBiZSBjb252ZXJ0ZWQ7IG11c3Qgbm90IGJlIEluZiwgLUluZiwgTmFuLAorICAgICAqIG9yIGEgdmFsdWUgPD0gMC4KKyAgICAgKiBAcGFyYW0gbWF4aW11bURpZ2l0cyBUaGUgbW9zdCBmcmFjdGlvbmFsIG9yIHRvdGFsIGRpZ2l0cyB3aGljaCBzaG91bGQKKyAgICAgKiBiZSBjb252ZXJ0ZWQuCisgICAgICogQHBhcmFtIGZpeGVkUG9pbnQgSWYgdHJ1ZSwgdGhlbiBtYXhpbXVtRGlnaXRzIGlzIHRoZSBtYXhpbXVtCisgICAgICogZnJhY3Rpb25hbCBkaWdpdHMgdG8gYmUgY29udmVydGVkLiAgSWYgZmFsc2UsIHRvdGFsIGRpZ2l0cy4KKyAgICAgKi8KKyAgICBmaW5hbCB2b2lkIHNldChkb3VibGUgc291cmNlLCBpbnQgbWF4aW11bURpZ2l0cywgYm9vbGVhbiBmaXhlZFBvaW50KQorICAgIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSAwKSBzb3VyY2UgPSAwOworICAgICAgICAvLyBHZW5lcmF0ZSBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBmb3JtIERERERELCBERERERC5ERERERCwgb3IKKyAgICAgICAgLy8gRERERERFKy8tREREREQuCisgICAgICAgIFN0cmluZyByZXAgPSBEb3VibGUudG9TdHJpbmcoc291cmNlKTsKKworICAgICAgICBzZXQocmVwLCBNQVhfTE9OR19ESUdJVFMpOworCisgICAgICAgIGlmIChmaXhlZFBvaW50KSB7CisgICAgICAgICAgICAvLyBUaGUgbmVnYXRpdmUgb2YgdGhlIGV4cG9uZW50IHJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBsZWFkaW5nCisgICAgICAgICAgICAvLyB6ZXJvcyBiZXR3ZWVuIHRoZSBkZWNpbWFsIGFuZCB0aGUgZmlyc3Qgbm9uLXplcm8gZGlnaXQsIGZvcgorICAgICAgICAgICAgLy8gYSB2YWx1ZSA8IDAuMSAoZS5nLiwgZm9yIDAuMDAxMjMsIC1kZWNpbWFsQXQgPT0gMikuICBJZiB0aGlzCisgICAgICAgICAgICAvLyBpcyBtb3JlIHRoYW4gdGhlIG1heGltdW0gZnJhY3Rpb24gZGlnaXRzLCB0aGVuIHdlIGhhdmUgYW4gdW5kZXJmbG93CisgICAgICAgICAgICAvLyBmb3IgdGhlIHByaW50ZWQgcmVwcmVzZW50YXRpb24uCisgICAgICAgICAgICBpZiAoLWRlY2ltYWxBdCA+IG1heGltdW1EaWdpdHMpIHsKKyAgICAgICAgICAgICAgICBjb3VudCA9IDA7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfSBlbHNlIGlmICgtZGVjaW1hbEF0ID09IG1heGltdW1EaWdpdHMpIHsKKyAgICAgICAgICAgICAgICBpZiAoc2hvdWxkUm91bmRVcCgwKSkgeworICAgICAgICAgICAgICAgICAgICBjb3VudCA9IDE7CisgICAgICAgICAgICAgICAgICAgICsrZGVjaW1hbEF0OworICAgICAgICAgICAgICAgICAgICBkaWdpdHNbMF0gPSAoYnl0ZSknMSc7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY291bnQgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBlbHNlIGZhbGwgdGhyb3VnaAorICAgICAgICB9CisKKyAgICAgICAgLy8gRWxpbWluYXRlIHRyYWlsaW5nIHplcm9zLgorICAgICAgICB3aGlsZSAoY291bnQgPiAxICYmIGRpZ2l0c1tjb3VudCAtIDFdID09ICcwJykKKyAgICAgICAgICAgIC0tY291bnQ7CisKKyAgICAgICAgLy8gRWxpbWluYXRlIGRpZ2l0cyBiZXlvbmQgbWF4aW11bSBkaWdpdHMgdG8gYmUgZGlzcGxheWVkLgorICAgICAgICAvLyBSb3VuZCB1cCBpZiBhcHByb3ByaWF0ZS4KKyAgICAgICAgcm91bmQoZml4ZWRQb2ludCA/IChtYXhpbXVtRGlnaXRzICsgZGVjaW1hbEF0KSA6IG1heGltdW1EaWdpdHMgPT0gMCA/IC0xIDogbWF4aW11bURpZ2l0cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGZvcm0gREREREQsIERERERELkRERERELAorICAgICAqIG9yIERERERERSsvLURERERELCBzZXQgdGhpcyBvYmplY3QncyB2YWx1ZSB0byBpdC4gIElnbm9yZQorICAgICAqIGFueSBsZWFkaW5nICctJy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0KFN0cmluZyByZXAsIGludCBtYXhDb3VudCkgeworICAgICAgICBkZWNpbWFsQXQgPSAtMTsKKyAgICAgICAgY291bnQgPSAwOworICAgICAgICBpbnQgZXhwb25lbnQgPSAwOworICAgICAgICAvLyBOdW1iZXIgb2YgemVyb3MgYmV0d2VlbiBkZWNpbWFsIHBvaW50IGFuZCBmaXJzdCBub24temVybyBkaWdpdCBhZnRlcgorICAgICAgICAvLyBkZWNpbWFsIHBvaW50LCBmb3IgbnVtYmVycyA8IDEuCisgICAgICAgIGludCBsZWFkaW5nWmVyb3NBZnRlckRlY2ltYWwgPSAwOworICAgICAgICBib29sZWFuIG5vblplcm9EaWdpdFNlZW4gPSBmYWxzZTsKKyAgICAgICAgLy8gU2tpcCBvdmVyIGxlYWRpbmcgJy0nCisgICAgICAgIGludCBpPTA7CisgICAgICAgIGlmIChyZXAuY2hhckF0KGkpID09ICctJykgeworICAgICAgICAgICAgKytpOworICAgICAgICB9CisgICAgICAgIGZvciAoOyBpIDwgcmVwLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHJlcC5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA9PSAnLicpIHsKKyAgICAgICAgICAgICAgICBkZWNpbWFsQXQgPSBjb3VudDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnZScgfHwgYyA9PSAnRScpIHsKKyAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgLy8gSW50ZWdlci5wYXJzZUludCBkb2Vzbid0IGhhbmRsZSBsZWFkaW5nICcrJyBzaWducworICAgICAgICAgICAgICAgIGlmIChyZXAuY2hhckF0KGkpID09ICcrJykgeworICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGV4cG9uZW50ID0gSW50ZWdlci52YWx1ZU9mKHJlcC5zdWJzdHJpbmcoaSkpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvdW50IDwgbWF4Q291bnQpIHsKKyAgICAgICAgICAgICAgICBpZiAoIW5vblplcm9EaWdpdFNlZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgbm9uWmVyb0RpZ2l0U2VlbiA9IChjICE9ICcwJyk7CisgICAgICAgICAgICAgICAgICAgIGlmICghbm9uWmVyb0RpZ2l0U2VlbiAmJiBkZWNpbWFsQXQgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrbGVhZGluZ1plcm9zQWZ0ZXJEZWNpbWFsOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG5vblplcm9EaWdpdFNlZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgZW5zdXJlQ2FwYWNpdHkoY291bnQrMSwgY291bnQpOworICAgICAgICAgICAgICAgICAgICBkaWdpdHNbY291bnQrK10gPSAoYnl0ZSljOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZGVjaW1hbEF0ID09IC0xKSB7CisgICAgICAgICAgICBkZWNpbWFsQXQgPSBjb3VudDsKKyAgICAgICAgfQorICAgICAgICBkZWNpbWFsQXQgKz0gZXhwb25lbnQgLSBsZWFkaW5nWmVyb3NBZnRlckRlY2ltYWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdHJ1bmNhdGluZyB0aGUgcmVwcmVzZW50YXRpb24gdG8gdGhlIGdpdmVuIG51bWJlcgorICAgICAqIG9mIGRpZ2l0cyB3aWxsIHJlc3VsdCBpbiBhbiBpbmNyZW1lbnQgdG8gdGhlIGxhc3QgZGlnaXQuICBUaGlzCisgICAgICogbWV0aG9kIGltcGxlbWVudHMgaGFsZi1ldmVuIHJvdW5kaW5nLCB0aGUgZGVmYXVsdCByb3VuZGluZyBtb2RlLgorICAgICAqIFtibmZdCisgICAgICogQHBhcmFtIG1heGltdW1EaWdpdHMgdGhlIG51bWJlciBvZiBkaWdpdHMgdG8ga2VlcCwgZnJvbSAwIHRvCisgICAgICogPGNvZGU+Y291bnQtMTwvY29kZT4uICBJZiAwLCB0aGVuIGFsbCBkaWdpdHMgYXJlIHJvdW5kZWQgYXdheSwgYW5kCisgICAgICogdGhpcyBtZXRob2QgcmV0dXJucyB0cnVlIGlmIGEgb25lIHNob3VsZCBiZSBnZW5lcmF0ZWQgKGUuZy4sIGZvcm1hdHRpbmcKKyAgICAgKiAwLjA5IHdpdGggIiMuIyIpLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBkaWdpdCA8Y29kZT5tYXhpbXVtRGlnaXRzLTE8L2NvZGU+IHNob3VsZCBiZQorICAgICAqIGluY3JlbWVudGVkCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIHNob3VsZFJvdW5kVXAoaW50IG1heGltdW1EaWdpdHMpIHsKKyAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgYm9vbGVhbiBpbmNyZW1lbnQgPSBmYWxzZTsKKyAgICAgICAgLy8gSW1wbGVtZW50IElFRUUgaGFsZi1ldmVuIHJvdW5kaW5nCisgICAgICAgIC8qQnVnIDQyNDMxMDgKKyAgICAgICAgICBmb3JtYXQoMC4wKSBnaXZlcyAiMC4xIiBpZiBwcmVjZWRlZCBieSBwYXJzZSgiOTkuOTkiKSBbUmljaGFyZC9HQ0xdCisgICAgICAgICovCisgICAgICAgIGlmIChtYXhpbXVtRGlnaXRzIDwgY291bnQpIHsKKyAgICAgICAgICAgIGlmIChkaWdpdHNbbWF4aW11bURpZ2l0c10gPiAnNScpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlnaXRzW21heGltdW1EaWdpdHNdID09ICc1JyApIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpPW1heGltdW1EaWdpdHMrMTsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkaWdpdHNbaV0gIT0gJzAnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbWF4aW11bURpZ2l0cyA+IDAgJiYgKGRpZ2l0c1ttYXhpbXVtRGlnaXRzLTFdICUgMiAhPSAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUm91bmQgdGhlIHJlcHJlc2VudGF0aW9uIHRvIHRoZSBnaXZlbiBudW1iZXIgb2YgZGlnaXRzLgorICAgICAqIEBwYXJhbSBtYXhpbXVtRGlnaXRzIFRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgdG8gYmUgc2hvd24uCisgICAgICogVXBvbiByZXR1cm4sIGNvdW50IHdpbGwgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIG1heGltdW1EaWdpdHMuCisgICAgICogVGhpcyBub3cgcGVyZm9ybXMgcm91bmRpbmcgd2hlbiBtYXhpbXVtRGlnaXRzIGlzIDAsIGZvcm1lcmx5IGl0IGRpZCBub3QuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcm91bmQoaW50IG1heGltdW1EaWdpdHMpIHsgICAgICAgIAorICAgICAgICAvLyBFbGltaW5hdGUgZGlnaXRzIGJleW9uZCBtYXhpbXVtIGRpZ2l0cyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICAgIC8vIFJvdW5kIHVwIGlmIGFwcHJvcHJpYXRlLgorICAgICAgICAvLyBbYm5mXSByZXdyaXR0ZW4gdG8gZml4IDQxNzk4MTgKKyAgICAgICAgaWYgKG1heGltdW1EaWdpdHMgPj0gMCAmJiBtYXhpbXVtRGlnaXRzIDwgY291bnQpIHsKKyAgICAgICAgICAgIGlmIChzaG91bGRSb3VuZFVwKG1heGltdW1EaWdpdHMpKSB7CisgICAgICAgICAgICAgICAgLy8gUm91bmRpbmcgdXAgaW52b2x2ZXMgaW5jcmVtZW50aW5nIGRpZ2l0cyBmcm9tIExTRCB0byBNU0QuCisgICAgICAgICAgICAgICAgLy8gSW4gbW9zdCBjYXNlcyB0aGlzIGlzIHNpbXBsZSwgYnV0IGluIGEgd29yc3QgY2FzZSBzaXR1YXRpb24KKyAgICAgICAgICAgICAgICAvLyAoOTk5OS4uOTkpIHdlIGhhdmUgdG8gYWRqdXN0IHRoZSBkZWNpbWFsQXQgdmFsdWUuCisgICAgICAgICAgICAgICAgZm9yICg7OykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC0tbWF4aW11bURpZ2l0czsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1heGltdW1EaWdpdHMgPCAwKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIGFsbCA5J3MsIHNvIHdlIGluY3JlbWVudCB0byBhIHNpbmdsZSBkaWdpdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2Ygb25lIGFuZCBhZGp1c3QgdGhlIGV4cG9uZW50LgorICAgICAgICAgICAgICAgICAgICAgICAgZGlnaXRzWzBdID0gKGJ5dGUpICcxJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrZGVjaW1hbEF0OworICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bURpZ2l0cyA9IDA7IC8vIEFkanVzdCB0aGUgY291bnQKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgKytkaWdpdHNbbWF4aW11bURpZ2l0c107CisgICAgICAgICAgICAgICAgICAgIGlmIChkaWdpdHNbbWF4aW11bURpZ2l0c10gPD0gJzknKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgLy8gZGlnaXRzW21heGltdW1EaWdpdHNdID0gJzAnOyAvLyBVbm5lY2Vzc2FyeSBzaW5jZSB3ZSdsbCB0cnVuY2F0ZSB0aGlzCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICsrbWF4aW11bURpZ2l0czsgLy8gSW5jcmVtZW50IGZvciB1c2UgYXMgY291bnQKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ID0gbWF4aW11bURpZ2l0czsKKyAgICAgICAgICAgIC8qQnVnIDQyMTc2NjEgRGVjaW1hbEZvcm1hdCBmb3JtYXRzIDEuMDAxIHRvICIxLjAwIiBpbnN0ZWFkIG9mICIxIgorICAgICAgICAgICAgICBFbGltaW5hdGUgdHJhaWxpbmcgemVyb3MuIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgICAgICovCisgICAgICAgICAgICB3aGlsZSAoY291bnQgPiAxICYmIGRpZ2l0c1tjb3VudC0xXSA9PSAnMCcpIHsKKyAgICAgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgfSAvL1tSaWNoYXJkL0dDTF0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFV0aWxpdHkgcm91dGluZSB0byBzZXQgdGhlIHZhbHVlIG9mIHRoZSBkaWdpdCBsaXN0IGZyb20gYSBsb25nCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGxvbmcgc291cmNlKQorICAgIHsKKyAgICAgICAgc2V0KHNvdXJjZSwgMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkaWdpdCBsaXN0IHRvIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIGxvbmcgdmFsdWUuCisgICAgICogQHBhcmFtIHNvdXJjZSBWYWx1ZSB0byBiZSBjb252ZXJ0ZWQ7IG11c3QgYmUgPj0gMCBvciA9PQorICAgICAqIExvbmcuTUlOX1ZBTFVFLgorICAgICAqIEBwYXJhbSBtYXhpbXVtRGlnaXRzIFRoZSBtb3N0IGRpZ2l0cyB3aGljaCBzaG91bGQgYmUgY29udmVydGVkLgorICAgICAqIElmIG1heGltdW1EaWdpdHMgaXMgbG93ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cworICAgICAqIGluIHNvdXJjZSwgdGhlIHJlcHJlc2VudGF0aW9uIHdpbGwgYmUgcm91bmRlZC4gIElnbm9yZWQgaWYgPD0gMC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXQobG9uZyBzb3VyY2UsIGludCBtYXhpbXVtRGlnaXRzKQorICAgIHsKKyAgICAgICAgLy8gVGhpcyBtZXRob2QgZG9lcyBub3QgZXhwZWN0IGEgbmVnYXRpdmUgbnVtYmVyLiBIb3dldmVyLAorICAgICAgICAvLyAic291cmNlIiBjYW4gYmUgYSBMb25nLk1JTl9WQUxVRSAoLTkyMjMzNzIwMzY4NTQ3NzU4MDgpLAorICAgICAgICAvLyBpZiB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCBpcyBhIExvbmcuTUlOX1ZBTFVFLiAgSW4gdGhhdAorICAgICAgICAvLyBjYXNlLCBpdCB3aWxsIGJlIGZvcm1hdHRlZCBhcyAtTG9uZy5NSU5fVkFMVUUsIGEgbnVtYmVyCisgICAgICAgIC8vIHdoaWNoIGlzIG91dHNpZGUgdGhlIGxlZ2FsIHJhbmdlIG9mIGEgbG9uZywgYnV0IHdoaWNoIGNhbgorICAgICAgICAvLyBiZSByZXByZXNlbnRlZCBieSBEaWdpdExpc3QuCisgICAgICAgIC8vIFtORVddIEZhc3RlciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBpZiAoc291cmNlIDw9IDApIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2UgPT0gTG9uZy5NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgICAgICBkZWNpbWFsQXQgPSBjb3VudCA9IE1BWF9MT05HX0RJR0lUUzsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KExPTkdfTUlOX1JFUCwgMCwgZGlnaXRzLCAwLCBjb3VudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBkZWNpbWFsQXQgPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaW50IGxlZnQgPSBNQVhfTE9OR19ESUdJVFM7CisgICAgICAgICAgICBpbnQgcmlnaHQ7CisgICAgICAgICAgICB3aGlsZSAoc291cmNlID4gMCkgeworICAgICAgICAgICAgICAgIGRpZ2l0c1stLWxlZnRdID0gKGJ5dGUpICgoKGxvbmcpICcwJykgKyAoc291cmNlICUgMTApKTsKKyAgICAgICAgICAgICAgICBzb3VyY2UgLz0gMTA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkZWNpbWFsQXQgPSBNQVhfTE9OR19ESUdJVFMtbGVmdDsKKyAgICAgICAgICAgIC8vIERvbid0IGNvcHkgdHJhaWxpbmcgemVyb3MKKyAgICAgICAgICAgIC8vIHdlIGFyZSBndWFyYW50ZWVkIHRoYXQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG5vbi16ZXJvIGRpZ2l0LAorICAgICAgICAgICAgLy8gc28gd2UgZG9uJ3QgaGF2ZSB0byBjaGVjayBsb3dlciBib3VuZHMKKyAgICAgICAgICAgIGZvciAocmlnaHQgPSBNQVhfTE9OR19ESUdJVFMgLSAxOyBkaWdpdHNbcmlnaHRdID09IChieXRlKSAnMCc7IC0tcmlnaHQpIHt9CisgICAgICAgICAgICBjb3VudCA9IHJpZ2h0IC0gbGVmdCArIDE7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGRpZ2l0cywgbGVmdCwgZGlnaXRzLCAwLCBjb3VudCk7CisgICAgICAgIH0gICAgICAgIAorICAgICAgICBpZiAobWF4aW11bURpZ2l0cyA+IDApIHJvdW5kKG1heGltdW1EaWdpdHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZGlnaXQgbGlzdCB0byBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBCaWdJbnRlZ2VyIHZhbHVlLgorICAgICAqIFtibmZdCisgICAgICogQHBhcmFtIHNvdXJjZSBWYWx1ZSB0byBiZSBjb252ZXJ0ZWQKKyAgICAgKiBAcGFyYW0gbWF4aW11bURpZ2l0cyBUaGUgbW9zdCBkaWdpdHMgd2hpY2ggc2hvdWxkIGJlIGNvbnZlcnRlZC4KKyAgICAgKiBJZiBtYXhpbXVtRGlnaXRzIGlzIGxvd2VyIHRoYW4gdGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMKKyAgICAgKiBpbiBzb3VyY2UsIHRoZSByZXByZXNlbnRhdGlvbiB3aWxsIGJlIHJvdW5kZWQuICBJZ25vcmVkIGlmIDw9IDAuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KEJpZ0ludGVnZXIgc291cmNlLCBpbnQgbWF4aW11bURpZ2l0cykgeworICAgICAgICBTdHJpbmcgc3RyaW5nRGlnaXRzID0gc291cmNlLnRvU3RyaW5nKCk7CisKKyAgICAgICAgY291bnQgPSBkZWNpbWFsQXQgPSBzdHJpbmdEaWdpdHMubGVuZ3RoKCk7CisKKyAgICAgICAgLy8gRG9uJ3QgY29weSB0cmFpbGluZyB6ZXJvcworICAgICAgICB3aGlsZSAoY291bnQgPiAxICYmIHN0cmluZ0RpZ2l0cy5jaGFyQXQoY291bnQgLSAxKSA9PSAnMCcpIC0tY291bnQ7CisKKyAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgICAgIGlmIChzdHJpbmdEaWdpdHMuY2hhckF0KDApID09ICctJykgeworICAgICAgICAgICAgKytvZmZzZXQ7CisgICAgICAgICAgICAtLWNvdW50OworICAgICAgICAgICAgLS1kZWNpbWFsQXQ7CisgICAgICAgIH0KKworICAgICAgICBlbnN1cmVDYXBhY2l0eShjb3VudCwgMCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgZGlnaXRzW2ldID0gKGJ5dGUpIHN0cmluZ0RpZ2l0cy5jaGFyQXQoaSArIG9mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAobWF4aW11bURpZ2l0cyA+IDApIHJvdW5kKG1heGltdW1EaWdpdHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVybmFsIG1ldGhvZCB0aGF0IHNldHMgdGhpcyBkaWdpdCBsaXN0IHRvIHJlcHJlc2VudCB0aGUKKyAgICAgKiBnaXZlbiB2YWx1ZS4gIFRoZSB2YWx1ZSBpcyBnaXZlbiBhcyBhIFN0cmluZyBvZiB0aGUgZm9ybWF0CisgICAgICogcmV0dXJuZWQgYnkgQmlnRGVjaW1hbC4KKyAgICAgKiBAcGFyYW0gc3RyaW5nRGlnaXRzIHZhbHVlIHRvIGJlIHJlcHJlc2VudGVkIHdpdGggdGhlIGZvbGxvd2luZworICAgICAqIHN5bnRheCwgZXhwcmVzc2VkIGFzIGEgcmVndWxhciBleHByZXNzaW9uOiAtP1xkKi4/XGQqCisgICAgICogTXVzdCBub3QgYmUgYW4gZW1wdHkgc3RyaW5nLgorICAgICAqIEBwYXJhbSBtYXhpbXVtRGlnaXRzIFRoZSBtb3N0IGRpZ2l0cyB3aGljaCBzaG91bGQgYmUgY29udmVydGVkLgorICAgICAqIElmIG1heGltdW1EaWdpdHMgaXMgbG93ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cworICAgICAqIGluIHNvdXJjZSwgdGhlIHJlcHJlc2VudGF0aW9uIHdpbGwgYmUgcm91bmRlZC4gIElnbm9yZWQgaWYgPD0gMC4KKyAgICAgKiBAcGFyYW0gZml4ZWRQb2ludCBJZiB0cnVlLCB0aGVuIG1heGltdW1EaWdpdHMgaXMgdGhlIG1heGltdW0KKyAgICAgKiBmcmFjdGlvbmFsIGRpZ2l0cyB0byBiZSBjb252ZXJ0ZWQuICBJZiBmYWxzZSwgdG90YWwgZGlnaXRzLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXRCaWdEZWNpbWFsRGlnaXRzKFN0cmluZyBzdHJpbmdEaWdpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heGltdW1EaWdpdHMsIGJvb2xlYW4gZml4ZWRQb2ludCkgeworLy98ICAgICAgICAvLyBGaW5kIHRoZSBmaXJzdCBub24temVybyBkaWdpdCwgdGhlIGRlY2ltYWwsIGFuZCB0aGUgbGFzdCBub24temVybyBkaWdpdC4KKy8vfCAgICAgICAgaW50IGZpcnN0PS0xLCBsYXN0PXN0cmluZ0RpZ2l0cy5sZW5ndGgoKS0xLCBkZWNpbWFsPS0xOworLy98ICAgICAgICBmb3IgKGludCBpPTA7IChmaXJzdDwwIHx8IGRlY2ltYWw8MCkgJiYgaTw9bGFzdDsgKytpKSB7CisvL3wgICAgICAgICAgICBjaGFyIGMgPSBzdHJpbmdEaWdpdHMuY2hhckF0KGkpOworLy98ICAgICAgICAgICAgaWYgKGMgPT0gJy4nKSB7CisvL3wgICAgICAgICAgICAgICAgZGVjaW1hbCA9IGk7CisvL3wgICAgICAgICAgICB9IGVsc2UgaWYgKGZpcnN0IDwgMCAmJiAoYyA+PSAnMScgJiYgYyA8PSAnOScpKSB7CisvL3wgICAgICAgICAgICAgICAgZmlyc3QgPSBpOworLy98ICAgICAgICAgICAgfQorLy98ICAgICAgICB9CisvL3wKKy8vfCAgICAgICAgaWYgKGZpcnN0IDwgMCkgeworLy98ICAgICAgICAgICAgY2xlYXIoKTsKKy8vfCAgICAgICAgICAgIHJldHVybjsKKy8vfCAgICAgICAgfQorLy98CisvL3wgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgbm9uLXplcm8gZGlnaXQsIHNvIHRoZQorLy98ICAgICAgICAvLyBmb2xsb3dpbmcgbG9vcCBpcyBzYWZlLgorLy98ICAgICAgICBmb3IgKDs7KSB7CisvL3wgICAgICAgICAgICBjaGFyIGMgPSBzdHJpbmdEaWdpdHMuY2hhckF0KGxhc3QpOworLy98ICAgICAgICAgICAgaWYgKGMgIT0gJzAnICYmIGMgIT0gJy4nKSB7CisvL3wgICAgICAgICAgICAgICAgYnJlYWs7CisvL3wgICAgICAgICAgICB9CisvL3wgICAgICAgICAgICAtLWxhc3Q7CisvL3wgICAgICAgIH0KKy8vfAorLy98ICAgICAgICBpZiAoZGVjaW1hbCA8IDApIHsKKy8vfCAgICAgICAgICAgIGRlY2ltYWwgPSBzdHJpbmdEaWdpdHMubGVuZ3RoKCk7CisvL3wgICAgICAgIH0KKy8vfAorLy98ICAgICAgICBjb3VudCA9IGxhc3QgLSBmaXJzdDsKKy8vfCAgICAgICAgaWYgKGRlY2ltYWwgPCBmaXJzdCB8fCBkZWNpbWFsID4gbGFzdCkgeworLy98ICAgICAgICAgICAgKytjb3VudDsKKy8vfCAgICAgICAgfQorLy98ICAgICAgICBkZWNpbWFsQXQgPSBkZWNpbWFsIC0gZmlyc3Q7CisvL3wgICAgICAgIGlmIChkZWNpbWFsQXQgPCAwKSB7CisvL3wgICAgICAgICAgICArK2RlY2ltYWxBdDsKKy8vfCAgICAgICAgfQorLy98CisvL3wgICAgICAgIGVuc3VyZUNhcGFjaXR5KGNvdW50LCAwKTsKKy8vfCAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisvL3wgICAgICAgICAgICBkaWdpdHNbaV0gPSAoYnl0ZSkgc3RyaW5nRGlnaXRzLmNoYXJBdChmaXJzdCsrKTsKKy8vfCAgICAgICAgICAgIGlmIChmaXJzdCA9PSBkZWNpbWFsKSB7CisvL3wgICAgICAgICAgICAgICAgKytmaXJzdDsKKy8vfCAgICAgICAgICAgIH0KKy8vfCAgICAgICAgfQorCisgICAgICAgIC8vIFRoZSBtYXhEaWdpdHMgaGVyZSBjb3VsZCBhbHNvIGJlIEludGVnZXIuTUFYX1ZBTFVFCisgICAgICAgIHNldChzdHJpbmdEaWdpdHMsIHN0cmluZ0RpZ2l0cy5sZW5ndGgoKSk7CisKKyAgICAgICAgLy8gRWxpbWluYXRlIGRpZ2l0cyBiZXlvbmQgbWF4aW11bSBkaWdpdHMgdG8gYmUgZGlzcGxheWVkLgorICAgICAgICAvLyBSb3VuZCB1cCBpZiBhcHByb3ByaWF0ZS4KKyAgICAvLyB7ZGxmfSBTb21lIGNhbGxlcnMgZGVwZW5kIG9uIHBhc3NpbmcgJzAnIHRvIHJvdW5kIHRvIG1lYW4gJ2Rvbid0IHJvdW5kJywgYnV0CisgICAgLy8gcmF0aGVyIHRoYW4gcGFzcyB0aGF0IGluZm9ybWF0aW9uIGV4cGxpY2l0bHksIHdlIHJlbHkgb24gc29tZSBtYWdpYyB3aXRoIG1heGltdW1EaWdpdHMKKyAgICAvLyBhbmQgZGVjaW1hbEF0LiAgVW5mb3J0dW5hdGVseSwgdGhpcyBpcyBubyBnb29kLCBiZWNhdXNlIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSBtYXhpbXVtRGlnaXRzCisgICAgLy8gaXMgemVybyBhbmQgd2UgZG8gd2FudCB0byByb3VuZCwgZS5nLiBCaWdEZWNpbWFsIHZhbHVlcyAtMSA8IHggPCAxLiAgU28gc2luY2Ugcm91bmQKKyAgICAvLyBjaGFuZ2VkIHRvIHBlcmZvcm0gcm91bmRpbmcgd2hlbiB0aGUgYXJndW1lbnQgaXMgMCwgd2Ugbm93IGZvcmNlIHRoZSBhcmd1bWVudAorICAgIC8vIHRvIC0xIGluIHRoZSBzaXR1YXRpb25zIHdoZXJlIGl0IG1hdHRlcnMuCisgICAgICAgIHJvdW5kKGZpeGVkUG9pbnQgPyAobWF4aW11bURpZ2l0cyArIGRlY2ltYWxBdCkgOiBtYXhpbXVtRGlnaXRzID09IDAgPyAtMSA6IG1heGltdW1EaWdpdHMpOworICAgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRpZ2l0IGxpc3QgdG8gYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gQmlnRGVjaW1hbCB2YWx1ZS4KKyAgICAgKiBbYm5mXQorICAgICAqIEBwYXJhbSBzb3VyY2UgVmFsdWUgdG8gYmUgY29udmVydGVkCisgICAgICogQHBhcmFtIG1heGltdW1EaWdpdHMgVGhlIG1vc3QgZGlnaXRzIHdoaWNoIHNob3VsZCBiZSBjb252ZXJ0ZWQuCisgICAgICogSWYgbWF4aW11bURpZ2l0cyBpcyBsb3dlciB0aGFuIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzCisgICAgICogaW4gc291cmNlLCB0aGUgcmVwcmVzZW50YXRpb24gd2lsbCBiZSByb3VuZGVkLiAgSWdub3JlZCBpZiA8PSAwLgorICAgICAqIEBwYXJhbSBmaXhlZFBvaW50IElmIHRydWUsIHRoZW4gbWF4aW11bURpZ2l0cyBpcyB0aGUgbWF4aW11bQorICAgICAqIGZyYWN0aW9uYWwgZGlnaXRzIHRvIGJlIGNvbnZlcnRlZC4gIElmIGZhbHNlLCB0b3RhbCBkaWdpdHMuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGphdmEubWF0aC5CaWdEZWNpbWFsIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heGltdW1EaWdpdHMsIGJvb2xlYW4gZml4ZWRQb2ludCkgeworICAgICAgICBzZXRCaWdEZWNpbWFsRGlnaXRzKHNvdXJjZS50b1N0cmluZygpLCBtYXhpbXVtRGlnaXRzLCBmaXhlZFBvaW50KTsKKyAgICB9CisvLyNlbmRpZgorCisgICAgLyoKKyAgICAgKiBTZXQgdGhlIGRpZ2l0IGxpc3QgdG8gYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gQmlnRGVjaW1hbCB2YWx1ZS4KKyAgICAgKiBbYm5mXQorICAgICAqIEBwYXJhbSBzb3VyY2UgVmFsdWUgdG8gYmUgY29udmVydGVkCisgICAgICogQHBhcmFtIG1heGltdW1EaWdpdHMgVGhlIG1vc3QgZGlnaXRzIHdoaWNoIHNob3VsZCBiZSBjb252ZXJ0ZWQuCisgICAgICogSWYgbWF4aW11bURpZ2l0cyBpcyBsb3dlciB0aGFuIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzCisgICAgICogaW4gc291cmNlLCB0aGUgcmVwcmVzZW50YXRpb24gd2lsbCBiZSByb3VuZGVkLiAgSWdub3JlZCBpZiA8PSAwLgorICAgICAqIEBwYXJhbSBmaXhlZFBvaW50IElmIHRydWUsIHRoZW4gbWF4aW11bURpZ2l0cyBpcyB0aGUgbWF4aW11bQorICAgICAqIGZyYWN0aW9uYWwgZGlnaXRzIHRvIGJlIGNvbnZlcnRlZC4gIElmIGZhbHNlLCB0b3RhbCBkaWdpdHMuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXhpbXVtRGlnaXRzLCBib29sZWFuIGZpeGVkUG9pbnQpIHsKKyAgICAgICAgc2V0QmlnRGVjaW1hbERpZ2l0cyhzb3VyY2UudG9TdHJpbmcoKSwgbWF4aW11bURpZ2l0cywgZml4ZWRQb2ludCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgRGlnaXRMaXN0IHJlcHJlc2VudHMgTG9uZy5NSU5fVkFMVUU7CisgICAgICogZmFsc2UsIG90aGVyd2lzZS4gIFRoaXMgaXMgcmVxdWlyZWQgc28gdGhhdCBnZXRMb25nKCkgd29ya3MuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzTG9uZ01JTl9WQUxVRSgpCisgICAgeworICAgICAgICBpZiAoZGVjaW1hbEF0ICE9IGNvdW50IHx8IGNvdW50ICE9IE1BWF9MT05HX0RJR0lUUykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZGlnaXRzW2ldICE9IExPTkdfTUlOX1JFUFtpXSkgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgYnl0ZVtdIExPTkdfTUlOX1JFUDsKKworICAgIHN0YXRpYworICAgIHsKKyAgICAgICAgLy8gU3RvcmUgdGhlIHJlcHJlc2VudGF0aW9uIG9mIExPTkdfTUlOIHdpdGhvdXQgdGhlIGxlYWRpbmcgJy0nCisgICAgICAgIFN0cmluZyBzID0gTG9uZy50b1N0cmluZyhMb25nLk1JTl9WQUxVRSk7CisgICAgICAgIExPTkdfTUlOX1JFUCA9IG5ldyBieXRlW01BWF9MT05HX0RJR0lUU107CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IE1BWF9MT05HX0RJR0lUUzsgKytpKQorICAgICAgICB7CisgICAgICAgICAgICBMT05HX01JTl9SRVBbaV0gPSAoYnl0ZSlzLmNoYXJBdChpICsgMSk7CisgICAgICAgIH0KKyAgICB9CisKKy8vIFVudXNlZCAtLSBBbGFuIDIwMDMtMDUKKy8vICAgIC8qKgorLy8gICAgICogUmV0dXJuIHRoZSBmbG9vciBvZiB0aGUgbG9nIGJhc2UgMTAgb2YgYSBnaXZlbiBkb3VibGUuCisvLyAgICAgKiBUaGlzIG1ldGhvZCBjb21wZW5zYXRlcyBmb3IgaW5hY2N1cmFjaWVzIHdoaWNoIGFyaXNlIG5hdHVyYWxseSB3aGVuCisvLyAgICAgKiBjb21wdXRpbmcgbG9ncywgYW5kIGFsd2F5cyBnaXZlIHRoZSBjb3JyZWN0IHZhbHVlLiAgVGhlIHBhcmFtZXRlcgorLy8gICAgICogbXVzdCBiZSBwb3NpdGl2ZSBhbmQgZmluaXRlLgorLy8gICAgICovCisvLyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgbG9nMTAoZG91YmxlIGQpCisvLyAgICB7CisvLyAgICAgICAgLy8gVGhlIHJlYXNvbiB0aGlzIHJvdXRpbmUgaXMgbmVlZGVkIGlzIHRoYXQgc2ltcGx5IHRha2luZyB0aGUKKy8vICAgICAgICAvLyBsb2cgYW5kIGRpdmlkaW5nIGJ5IGxvZzEwIHlpZWxkcyBhIHJlc3VsdCB3aGljaCBtYXkgYmUgb2ZmCisvLyAgICAgICAgLy8gYnkgMSBkdWUgdG8gcm91bmRpbmcgZXJyb3JzLiAgRm9yIGV4YW1wbGUsIHRoZSBuYWl2ZSBsb2cxMAorLy8gICAgICAgIC8vIG9mIDEuMGUzMDAgdGFrZW4gdGhpcyB3YXkgaXMgMjk5LCByYXRoZXIgdGhhbiAzMDAuCisvLyAgICAgICAgZG91YmxlIGxvZzEwID0gTWF0aC5sb2coZCkgLyBMT0cxMDsKKy8vICAgICAgICBpbnQgaWxvZzEwID0gKGludClNYXRoLmZsb29yKGxvZzEwKTsKKy8vICAgICAgICAvLyBQb3NpdGl2ZSBsb2dzIGNvdWxkIGJlIHRvbyBzbWFsbCwgZS5nLiAwLjk5IGluc3RlYWQgb2YgMS4wCisvLyAgICAgICAgaWYgKGxvZzEwID4gMCAmJiBkID49IE1hdGgucG93KDEwLCBpbG9nMTAgKyAxKSkKKy8vICAgICAgICB7CisvLyAgICAgICAgICAgICsraWxvZzEwOworLy8gICAgICAgIH0KKy8vICAgICAgICAvLyBOZWdhdGl2ZSBsb2dzIGNvdWxkIGJlIHRvbyBiaWcsIGUuZy4gLTAuOTkgaW5zdGVhZCBvZiAtMS4wCisvLyAgICAgICAgZWxzZSBpZiAobG9nMTAgPCAwICYmIGQgPCBNYXRoLnBvdygxMCwgaWxvZzEwKSkKKy8vICAgICAgICB7CisvLyAgICAgICAgICAgIC0taWxvZzEwOworLy8gICAgICAgIH0KKy8vICAgICAgICByZXR1cm4gaWxvZzEwOworLy8gICAgfQorLy8KKy8vICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGRvdWJsZSBMT0cxMCA9IE1hdGgubG9nKDEwLjApOworCisgICAgLy8gKFRoZSBmb2xsb3dpbmcgYm9pbGVycGxhdGUgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vdCBjYWxsZWQsCisgICAgLy8gYW5kIGNhbm5vdCBiZSBjYWxsZWQgYnkgdGVzdHMgc2luY2UgdGhpcyBjbGFzcyBpcworICAgIC8vIHBhY2thZ2UtcHJpdmF0ZS4gIFRoZSBtZXRob2RzIG1heSBiZSB1c2VmdWwgaW4gdGhlIGZ1dHVyZSwgc28KKyAgICAvLyB3ZSBkbyBub3QgZGVsZXRlIHRoZW0uICAyMDAzLTA2LTExIElDVSAyLjYgQWxhbikKKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgLyoqCisgICAgICogZXF1YWxpdHkgdGVzdCBiZXR3ZWVuIHR3byBkaWdpdCBsaXN0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAodGhpcyA9PSBvYmopICAgICAgICAgICAgICAgICAgICAgIC8vIHF1aWNrIGNoZWNrCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKCEob2JqIGluc3RhbmNlb2YgRGlnaXRMaXN0KSkgICAgICAgICAvLyAoMSkgc2FtZSBvYmplY3Q/CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIERpZ2l0TGlzdCBvdGhlciA9IChEaWdpdExpc3QpIG9iajsKKyAgICAgICAgaWYgKGNvdW50ICE9IG90aGVyLmNvdW50IHx8CisgICAgICAgIGRlY2ltYWxBdCAhPSBvdGhlci5kZWNpbWFsQXQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykKKyAgICAgICAgICAgIGlmIChkaWdpdHNbaV0gIT0gb3RoZXIuZGlnaXRzW2ldKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIHRoZSBoYXNoIGNvZGUgZm9yIHRoZSBkaWdpdCBsaXN0LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIGludCBoYXNoY29kZSA9IGRlY2ltYWxBdDsKKworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspCisgICAgICAgICAgICBoYXNoY29kZSA9IGhhc2hjb2RlICogMzcgKyBkaWdpdHNbaV07CisKKyAgICAgICAgcmV0dXJuIGhhc2hjb2RlOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgaWYgKGlzWmVybygpKSByZXR1cm4gIjAiOworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiMC4iKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNvdW50OyArK2kpIGJ1Zi5hcHBlbmQoKGNoYXIpZGlnaXRzW2ldKTsKKyAgICAgICAgYnVmLmFwcGVuZCgieDEwXiIpOworICAgICAgICBidWYuYXBwZW5kKGRlY2ltYWxBdCk7CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Fc2NhcGVUcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRXNjYXBlVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42OWU0Y2MwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvRXNjYXBlVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDIwMCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMTEvMTkvMjAwMSAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgY29udmVydHMgVW5pY29kZSBjaGFyYWN0ZXJzIHRvIGFuIGVzY2FwZQorICogZm9ybS4gIEV4YW1wbGVzIG9mIGVzY2FwZSBmb3JtcyBhcmUgIlUrNEUwMSIgYW5kICImI3gxMEZGRkY7Ii4KKyAqIEVzY2FwZSBmb3JtcyBoYXZlIGEgcHJlZml4IGFuZCBzdWZmaXgsIGVpdGhlciBvZiB3aGljaCBtYXkgYmUKKyAqIGVtcHR5LCBhIHJhZGl4LCB0eXBpY2FsbHkgMTYgb3IgMTAsIGEgbWluaW11bSBkaWdpdCBjb3VudCwKKyAqIHR5cGljYWxseSAxLCA0LCBvciA4LCBhbmQgYSBib29sZWFuIHRoYXQgc3BlY2lmaWVzIHdoZXRoZXIKKyAqIHN1cHBsZW1lbnRhbCBjaGFyYWN0ZXJzIGFyZSBoYW5kbGVkIGFzIDMyLWJpdCBjb2RlIHBvaW50cyBvciBhcyB0d28KKyAqIDE2LWJpdCBjb2RlIHVuaXRzLiAgTW9zdCBlc2NhcGUgZm9ybXMgaGFuZGxlIDMyLWJpdCBjb2RlIHBvaW50cywKKyAqIGJ1dCBzb21lLCBzdWNoIGFzIHRoZSBKYXZhIGZvcm0sIGludGVudGlvbmFsbHkgYnJlYWsgdGhlbSBpbnRvIHR3bworICogc3Vycm9nYXRlIHBhaXJzLCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyAqCisgKiA8cD5Tb21lIGVzY2FwZSBmb3JtcyBhY3R1YWxseSBoYXZlIHR3byBkaWZmZXJlbnQgcGF0dGVybnMsIG9uZSBmb3IKKyAqIEJNUCBjaGFyYWN0ZXJzICgwLi5GRkZGKSBhbmQgb25lIGZvciBzdXBwbGVtZW50cyAoPkZGRkYpLiAgVG8KKyAqIGhhbmRsZSB0aGlzLCBhIHNlY29uZCBFc2NhcGVUcmFuc2xpdGVyYXRvciBtYXkgYmUgZGVmaW5lZCB0aGF0CisgKiBzcGVjaWZpZXMgdGhlIHBhdHRlcm4gdG8gYmUgcHJvZHVjZWQgZm9yIHN1cHBsZW1lbnRhbHMuICBBbiBleGFtcGxlCisgKiBvZiBhIGZvcm0gdGhhdCByZXF1aXJlcyB0aGlzIGlzIHRoZSBDIGZvcm0sIHdoaWNoIHVzZXMgIlxcdUZGRkYiCisgKiBmb3IgQk1QIGNoYXJhY3RlcnMgYW5kICJcXFUwMDEwRkZGRiIgZm9yIHN1cHBsZW1lbnRhbHMuCisgKgorICogPHA+VGhpcyBjbGFzcyBpcyBwYWNrYWdlIHByaXZhdGUuICBJdCByZWdpc3RlcnMgc2V2ZXJhbCBzdGFuZGFyZAorICogdmFyaWFudHMgd2l0aCB0aGUgc3lzdGVtIHdoaWNoIGFyZSB0aGVuIGFjY2Vzc2VkIHZpYSB0aGVpciBJRHMuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBFc2NhcGVUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKworICAgIC8qKgorICAgICAqIFRoZSBwcmVmaXggb2YgdGhlIGVzY2FwZSBmb3JtOyBtYXkgYmUgZW1wdHksIGJ1dCB1c3VhbGx5IGlzbid0LgorICAgICAqIE1heSBub3QgYmUgbnVsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwcmVmaXg7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcHJlZml4IG9mIHRoZSBlc2NhcGUgZm9ybTsgb2Z0ZW4gZW1wdHkuICBNYXkgbm90IGJlIG51bGwuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgc3VmZml4OworCisgICAgLyoqCisgICAgICogVGhlIHJhZGl4IHRvIGRpc3BsYXkgdGhlIG51bWJlciBpbi4gIFR5cGljYWxseSAxNiBvciAxMC4gIE11c3QKKyAgICAgKiBiZSBpbiB0aGUgcmFuZ2UgMiB0byAzNi4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCByYWRpeDsKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMuICBUeXBpY2FsbHkgMSwgNCwgb3IgOC4gIFZhbHVlcworICAgICAqIGxlc3MgdGhhbiAxIGFyZSBlcXVpdmFsZW50IHRvIDEuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbWluRGlnaXRzOworCisgICAgLyoqCisgICAgICogSWYgdHJ1ZSwgc3VwcGxlbWVudGFscyBhcmUgaGFuZGxlZCBhcyAzMi1iaXQgY29kZSBwb2ludHMuICBJZgorICAgICAqIGZhbHNlLCB0aGV5IGFyZSBoYW5kbGVkIGFzIHR3byAxNi1iaXQgY29kZSB1bml0cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZ3Jva1N1cHBsZW1lbnRhbHM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZm9ybSB0byBiZSB1c2VkIGZvciBzdXBwbGVtZW50YWxzLiAgSWYgdGhpcyBpcyBudWxsIHRoZW4KKyAgICAgKiB0aGUgc2FtZSBmb3JtIGlzIHVzZWQgZm9yIEJNUCBjaGFyYWN0ZXJzIGFuZCBzdXBwbGVtZW50YWxzLiAgSWYKKyAgICAgKiB0aGlzIGlzIG5vdCBudWxsIGFuZCBpZiBncm9rU3VwcGxlbWVudGFscyBpcyB0cnVlIHRoZW4gdGhlCisgICAgICogcHJlZml4LCBzdWZmaXgsIHJhZGl4LCBhbmQgbWluRGlnaXRzIG9mIHRoaXMgb2JqZWN0IGFyZSB1c2VkCisgICAgICogZm9yIHN1cHBsZW1lbnRhbHMuCisgICAgICovCisgICAgcHJpdmF0ZSBFc2NhcGVUcmFuc2xpdGVyYXRvciBzdXBwbGVtZW50YWxIYW5kbGVyOworCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIHN0YW5kYXJkIHZhcmlhbnRzIHdpdGggdGhlIHN5c3RlbS4gIENhbGxlZCBieQorICAgICAqIFRyYW5zbGl0ZXJhdG9yIGR1cmluZyBpbml0aWFsaXphdGlvbi4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKyAgICAgICAgLy8gVW5pY29kZTogIlUrMTBGRkZGIiBoZXgsIG1pbj00LCBtYXg9NgorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkFueS1IZXgvVW5pY29kZSIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNjYXBlVHJhbnNsaXRlcmF0b3IoIkFueS1IZXgvVW5pY29kZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVSsiLCAiIiwgMTYsIDQsIHRydWUsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIC8vIEphdmE6ICJcXHVGRkZGIiBoZXgsIG1pbj00LCBtYXg9NAorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkFueS1IZXgvSmF2YSIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNjYXBlVHJhbnNsaXRlcmF0b3IoIkFueS1IZXgvSmF2YSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFx1IiwgIiIsIDE2LCA0LCBmYWxzZSwgbnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgLy8gQzogIlxcdUZGRkYiIGhleCwgbWluPTQsIG1heD00OyBcXFUwMDEwRkZGRiBoZXgsIG1pbj04LCBtYXg9OAorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkFueS1IZXgvQyIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNjYXBlVHJhbnNsaXRlcmF0b3IoIkFueS1IZXgvQyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFx1IiwgIiIsIDE2LCA0LCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICBuZXcgRXNjYXBlVHJhbnNsaXRlcmF0b3IoIiIsICJcXFUiLCAiIiwgMTYsIDgsIHRydWUsIG51bGwpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICAvLyBYTUw6ICImI3gxMEZGRkY7IiBoZXgsIG1pbj0xLCBtYXg9NgorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkFueS1IZXgvWE1MIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc2NhcGVUcmFuc2xpdGVyYXRvcigiQW55LUhleC9YTUwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiYjeCIsICI7IiwgMTYsIDEsIHRydWUsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICAvLyBYTUwxMDogIiYxMTE0MTExOyIgZGVjLCBtaW49MSwgbWF4PTcgKG5vdCByZWFsbHkgIkFueS1IZXgiKQorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkFueS1IZXgvWE1MMTAiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJBbnktSGV4L1hNTDEwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICImIyIsICI7IiwgMTAsIDEsIHRydWUsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICAvLyBQZXJsOiAiXFx4ezI2M0F9IiBoZXgsIG1pbj0xLCBtYXg9NgorICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoIkFueS1IZXgvUGVybCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNjYXBlVHJhbnNsaXRlcmF0b3IoIkFueS1IZXgvUGVybCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFx4eyIsICJ9IiwgMTYsIDEsIHRydWUsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICAvLyBHZW5lcmljCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LUhleCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNjYXBlVHJhbnNsaXRlcmF0b3IoIkFueS1IZXgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcdSIsICIiLCAxNiwgNCwgZmFsc2UsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIGVzY2FwZSB0cmFuc2xpdGVyYXRvciB3aXRoIHRoZSBnaXZlbiBJRCBhbmQKKyAgICAgKiBwYXJhbWV0ZXJzLiAgU2VlIHRoZSBjbGFzcyBtZW1iZXIgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4KKyAgICAgKi8KKyAgICBFc2NhcGVUcmFuc2xpdGVyYXRvcihTdHJpbmcgSUQsIFN0cmluZyBwcmVmaXgsIFN0cmluZyBzdWZmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJhZGl4LCBpbnQgbWluRGlnaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZ3Jva1N1cHBsZW1lbnRhbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgRXNjYXBlVHJhbnNsaXRlcmF0b3Igc3VwcGxlbWVudGFsSGFuZGxlcikgeworICAgICAgICBzdXBlcihJRCwgbnVsbCk7CisgICAgICAgIHRoaXMucHJlZml4ID0gcHJlZml4OworICAgICAgICB0aGlzLnN1ZmZpeCA9IHN1ZmZpeDsKKyAgICAgICAgdGhpcy5yYWRpeCA9IHJhZGl4OworICAgICAgICB0aGlzLm1pbkRpZ2l0cyA9IG1pbkRpZ2l0czsKKyAgICAgICAgdGhpcy5ncm9rU3VwcGxlbWVudGFscyA9IGdyb2tTdXBwbGVtZW50YWxzOworICAgICAgICB0aGlzLnN1cHBsZW1lbnRhbEhhbmRsZXIgPSBzdXBwbGVtZW50YWxIYW5kbGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIHBvcywgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICBpbnQgc3RhcnQgPSBwb3Muc3RhcnQ7CisgICAgICAgIGludCBsaW1pdCA9IHBvcy5saW1pdDsKKworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcihwcmVmaXgpOworICAgICAgICBpbnQgcHJlZml4TGVuID0gcHJlZml4Lmxlbmd0aCgpOworICAgICAgICBib29sZWFuIHJlZG9QcmVmaXggPSBmYWxzZTsKKworICAgICAgICB3aGlsZSAoc3RhcnQgPCBsaW1pdCkgeworICAgICAgICAgICAgaW50IGMgPSBncm9rU3VwcGxlbWVudGFscyA/IHRleHQuY2hhcjMyQXQoc3RhcnQpIDogdGV4dC5jaGFyQXQoc3RhcnQpOworICAgICAgICAgICAgaW50IGNoYXJMZW4gPSBncm9rU3VwcGxlbWVudGFscyA/IFVURjE2LmdldENoYXJDb3VudChjKSA6IDE7CisKKyAgICAgICAgICAgIGlmICgoYyAmIDB4RkZGRjAwMDApICE9IDAgJiYgc3VwcGxlbWVudGFsSGFuZGxlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHN1cHBsZW1lbnRhbEhhbmRsZXIucHJlZml4KTsKKyAgICAgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZE51bWJlcihidWYsIGMsIHN1cHBsZW1lbnRhbEhhbmRsZXIucmFkaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcGxlbWVudGFsSGFuZGxlci5taW5EaWdpdHMpOworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3VwcGxlbWVudGFsSGFuZGxlci5zdWZmaXgpOworICAgICAgICAgICAgICAgIHJlZG9QcmVmaXggPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAocmVkb1ByZWZpeCkgeworICAgICAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHByZWZpeCk7CisgICAgICAgICAgICAgICAgICAgIHJlZG9QcmVmaXggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKHByZWZpeExlbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kTnVtYmVyKGJ1ZiwgYywgcmFkaXgsIG1pbkRpZ2l0cyk7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChzdWZmaXgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZXh0LnJlcGxhY2Uoc3RhcnQsIHN0YXJ0ICsgY2hhckxlbiwgYnVmLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgc3RhcnQgKz0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgbGltaXQgKz0gYnVmLmxlbmd0aCgpIC0gY2hhckxlbjsKKyAgICAgICAgfQorCisgICAgICAgIHBvcy5jb250ZXh0TGltaXQgKz0gbGltaXQgLSBwb3MubGltaXQ7CisgICAgICAgIHBvcy5saW1pdCA9IGxpbWl0OworICAgICAgICBwb3Muc3RhcnQgPSBzdGFydDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9GdW5jdGlvblJlcGxhY2VyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9GdW5jdGlvblJlcGxhY2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmY2NmYzYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0Z1bmN0aW9uUmVwbGFjZXIuamF2YQpAQCAtMCwwICsxLDg0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMi0yMDAzLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uCisqICAgYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwMS8xNC8yMDAyICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiBBIHJlcGxhY2VyIHRoYXQgY2FsbHMgYSB0cmFuc2xpdGVyYXRvciB0byBnZW5lcmF0ZSBpdHMgb3V0cHV0IHRleHQuCisgKiBUaGUgaW5wdXQgdGV4dCB0byB0aGUgdHJhbnNsaXRlcmF0b3IgaXMgdGhlIG91dHB1dCBvZiBhbm90aGVyCisgKiBVbmljb2RlUmVwbGFjZXIgb2JqZWN0LiAgVGhhdCBpcywgdGhpcyByZXBsYWNlciB3cmFwcyBhbm90aGVyCisgKiByZXBsYWNlciB3aXRoIGEgdHJhbnNsaXRlcmF0b3IuCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2NsYXNzIEZ1bmN0aW9uUmVwbGFjZXIgaW1wbGVtZW50cyBVbmljb2RlUmVwbGFjZXIgeworCisgICAgLyoqCisgICAgICogVGhlIHRyYW5zbGl0ZXJhdG9yLiAgTXVzdCBub3QgYmUgbnVsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0OworCisgICAgLyoqCisgICAgICogVGhlIHJlcGxhY2VyIG9iamVjdC4gIFRoaXMgZ2VuZXJhdGVzIHRleHQgdGhhdCBpcyB0aGVuCisgICAgICogcHJvY2Vzc2VkIGJ5ICd0cmFuc2xpdCcuICBNdXN0IG5vdCBiZSBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgVW5pY29kZVJlcGxhY2VyIHJlcGxhY2VyOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgcmVwbGFjZXIgdGhhdCB0YWtlcyB0aGUgb3V0cHV0IG9mIHRoZSBnaXZlbgorICAgICAqIHJlcGxhY2VyLCBwYXNzZXMgaXQgdGhyb3VnaCB0aGUgZ2l2ZW4gdHJhbnNsaXRlcmF0b3IsIGFuZCBlbWl0cworICAgICAqIHRoZSByZXN1bHQgYXMgb3V0cHV0LgorICAgICAqLworICAgIHB1YmxpYyBGdW5jdGlvblJlcGxhY2VyKFRyYW5zbGl0ZXJhdG9yIHRoZVRyYW5zbGl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVSZXBsYWNlciB0aGVSZXBsYWNlcikgeworICAgICAgICB0cmFuc2xpdCA9IHRoZVRyYW5zbGl0OworICAgICAgICByZXBsYWNlciA9IHRoZVJlcGxhY2VyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaWNvZGVSZXBsYWNlciBBUEkKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHJlcGxhY2UoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgIGludFtdIGN1cnNvcikgeworCisgICAgICAgIC8vIEZpcnN0IGRlbGVnYXRlIHRvIHN1Ym9yZGluYXRlIHJlcGxhY2VyCisgICAgICAgIGludCBsZW4gPSByZXBsYWNlci5yZXBsYWNlKHRleHQsIHN0YXJ0LCBsaW1pdCwgY3Vyc29yKTsKKyAgICAgICAgbGltaXQgPSBzdGFydCArIGxlbjsKKworICAgICAgICAvLyBOb3cgdHJhbnNsaXRlcmF0ZQorICAgICAgICBsaW1pdCA9IHRyYW5zbGl0LnRyYW5zbGl0ZXJhdGUodGV4dCwgc3RhcnQsIGxpbWl0KTsKKworICAgICAgICByZXR1cm4gbGltaXQgLSBzdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmljb2RlUmVwbGFjZXIgQVBJCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1JlcGxhY2VyUGF0dGVybihib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBydWxlID0gbmV3IFN0cmluZ0J1ZmZlcigiJiIpOworICAgICAgICBydWxlLmFwcGVuZCh0cmFuc2xpdC5nZXRJRCgpKTsKKyAgICAgICAgcnVsZS5hcHBlbmQoIiggIik7CisgICAgICAgIHJ1bGUuYXBwZW5kKHJlcGxhY2VyLnRvUmVwbGFjZXJQYXR0ZXJuKGVzY2FwZVVucHJpbnRhYmxlKSk7CisgICAgICAgIHJ1bGUuYXBwZW5kKCIgKSIpOworICAgICAgICByZXR1cm4gcnVsZS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaW9uIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgb3V0cHV0IGJ5IHRoaXMgb2JqZWN0CisgICAgICogaW50byB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSB0b1VuaW9uVG8gdGhlIHNldCBpbnRvIHdoaWNoIHRvIHVuaW9uIHRoZSBvdXRwdXQgY2hhcmFjdGVycworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZFJlcGxhY2VtZW50U2V0VG8oVW5pY29kZVNldCB0b1VuaW9uVG8pIHsKKyAgICAgICAgdG9VbmlvblRvLmFkZEFsbCh0cmFuc2xpdC5nZXRUYXJnZXRTZXQoKSk7CisgICAgfQorfQorCisvL2VvZgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvSUROQS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvSUROQS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhZmZkMTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9JRE5BLmphdmEKQEAgLTAsMCArMSw5NDggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVRGF0YTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworCisvKioKKyAqCisgKiBJRE5BIEFQSSBpbXBsZW1lbnRzIHRoZSBJRE5BIHByb3RvY29sIGFzIGRlZmluZWQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzM0OTAudHh0Ij5JRE5BIFJGQzwvYT4uCisgKiBUaGUgZHJhZnQgZGVmaW5lcyAyIG9wZXJhdGlvbnM6IFRvQVNDSUkgYW5kIFRvVW5pY29kZS4gRG9tYWluIGxhYmVscyAKKyAqIGNvbnRhaW5pbmcgbm9uLUFTQ0lJIGNvZGUgcG9pbnRzIGFyZSByZXF1aXJlZCB0byBiZSBwcm9jZXNzZWQgYnkKKyAqIFRvQVNDSUkgb3BlcmF0aW9uIGJlZm9yZSBwYXNzaW5nIGl0IHRvIHJlc29sdmVyIGxpYnJhcmllcy4gRG9tYWluIG5hbWVzCisgKiB0aGF0IGFyZSBvYnRhaW5lZCBmcm9tIHJlc29sdmVyIGxpYnJhcmllcyBhcmUgcmVxdWlyZWQgdG8gYmUgcHJvY2Vzc2VkIGJ5CisgKiBUb1VuaWNvZGUgb3BlcmF0aW9uIGJlZm9yZSBkaXNwbGF5aW5nIHRoZSBkb21haW4gbmFtZSB0byB0aGUgdXNlci4KKyAqIElETkEgcmVxdWlyZXMgdGhhdCBpbXBsZW1lbnRhdGlvbnMgcHJvY2VzcyBpbnB1dCBzdHJpbmdzIHdpdGggCisgKiA8YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzNDkxLnR4dCI+TmFtZXByZXA8L2E+LCAKKyAqIHdoaWNoIGlzIGEgcHJvZmlsZSBvZiA8YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzNDU0LnR4dCI+U3RyaW5ncHJlcDwvYT4gLCAKKyAqIGFuZCB0aGVuIHdpdGggPGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzQ5Mi50eHQiPlB1bnljb2RlPC9hPi4gCisgKiBJbXBsZW1lbnRhdGlvbnMgb2YgSUROQSBNVVNUIGZ1bGx5IGltcGxlbWVudCBOYW1lcHJlcCBhbmQgUHVueWNvZGU7IAorICogbmVpdGhlciBOYW1lcHJlcCBub3IgUHVueWNvZGUgYXJlIG9wdGlvbmFsLgorICogVGhlIGlucHV0IGFuZCBvdXRwdXQgb2YgVG9BU0NJSSBhbmQgVG9Vbmljb2RlIG9wZXJhdGlvbnMgYXJlIFVuaWNvZGUgCisgKiBhbmQgYXJlIGRlc2lnbmVkIHRvIGJlIGNoYWluYWJsZSwgaS5lLiwgYXBwbHlpbmcgVG9BU0NJSSBvciBUb1VuaWNvZGUgb3BlcmF0aW9ucworICogbXVsdGlwbGUgdGltZXMgdG8gYW4gaW5wdXQgc3RyaW5nIHdpbGwgeWllbGQgdGhlIHNhbWUgcmVzdWx0IGFzIGFwcGx5aW5nIHRoZSBvcGVyYXRpb24KKyAqIG9uY2UuCisgKiBUb1VuaWNvZGUoVG9Vbmljb2RlKFRvVW5pY29kZS4uLihUb1VuaWNvZGUoc3RyaW5nKSkpKSA9PSBUb1VuaWNvZGUoc3RyaW5nKSAKKyAqIFRvQVNDSUkoVG9BU0NJSShUb0FTQ0lJLi4uKFRvQVNDSUkoc3RyaW5nKSkpID09IFRvQVNDSUkoc3RyaW5nKS4KKyAqIAorICogQGF1dGhvciBSYW0gVmlzd2FuYWRoYQorICogQHN0YWJsZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBJRE5BIHsKKworICAgIC8qIElETkEgQUNFIFByZWZpeCBpcyAieG4tLSIgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyW10gQUNFX1BSRUZJWCA9IG5ldyBjaGFyW117IDB4MDA3OCwweDAwNkUsMHgwMDJkLDB4MDAyZCB9IDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQUNFX1BSRUZJWF9MRU5HVEggID0gNDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfTEFCRUxfTEVOR1RIICAgPSA2MzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSFlQSEVOICAgICAgICAgICAgID0gMHgwMDJEOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDQVBJVEFMX0EgICAgICAgICAgPSAweDAwNDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENBUElUQUxfWiAgICAgICAgICA9IDB4MDA1QTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9XRVJfQ0FTRV9ERUxUQSAgID0gMHgwMDIwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGVUxMX1NUT1AgICAgICAgICAgPSAweDAwMkU7CisKKyAgICAvKiogCisgICAgICogT3B0aW9uIHRvIHByb2hpYml0IHByb2Nlc3Npbmcgb2YgdW5hc3NpZ25lZCBjb2RlcG9pbnRzIGluIHRoZSBpbnB1dCBhbmQKKyAgICAgKiBkbyBub3QgY2hlY2sgaWYgdGhlIGlucHV0IGNvbmZvcm1zIHRvIFNURC0zIEFTQ0lJIHJ1bGVzLgorICAgICAqIAorICAgICAqIEBzZWUgICNjb252ZXJ0VG9BU0NJSSAjY29udmVydFRvVW5pY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFRkFVTFQgICAgICAgICAgICAgPSAweDAwMDA7CisgICAgLyoqIAorICAgICAqIE9wdGlvbiB0byBhbGxvdyBwcm9jZXNzaW5nIG9mIHVuYXNzaWduZWQgY29kZXBvaW50cyBpbiB0aGUgaW5wdXQKKyAgICAgKiAKKyAgICAgKiBAc2VlICAjY29udmVydFRvQVNDSUkgI2NvbnZlcnRUb1VuaWNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTExPV19VTkFTU0lHTkVEICAgID0gMHgwMDAxOworICAgIC8qKiAKKyAgICAgKiBPcHRpb24gdG8gY2hlY2sgaWYgaW5wdXQgY29uZm9ybXMgdG8gU1RELTMgQVNDSUkgcnVsZXMKKyAgICAgKiAKKyAgICAgKiBAc2VlICNjb252ZXJ0VG9BU0NJSSAjY29udmVydFRvVW5pY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVTRV9TVEQzX1JVTEVTICAgICAgPSAweDAwMDI7CisgICAgCisgICAgLy8gc3RhdGljIGZpbmFsIHNpbmdsZXRvbiBvYmplY3QgdGhhdCBpcyBpbml0aWFsaXplZAorICAgIC8vIGF0IGNsYXNzIGluaXRpYWxpemF0aW9uIHRpbWUsIGhlbmNlIGd1YXJhbnRlZWQgdG8KKyAgICAvLyBiZSBpbml0aWFsaXplZCBhbmQgdGhyZWFkIHNhZmUKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBJRE5BIHNpbmdsZXRvbiAgPSBuZXcgSUROQSgpOworICAgIAorICAgIC8vIFRoZSBOYW1lUHJlcCBwcm9maWxlIG9iamVjdAorICAgIHByaXZhdGUgU3RyaW5nUHJlcCBuYW1lUHJlcDsKKyAgICAKKyAgICAvKiBwcml2YXRlIGNvbnN0cnVjdG9yIHRvIHByZXZlbnQgY29uc3RydWN0aW9uIG9mIHRoZSBvYmplY3QgKi8KKyAgICBwcml2YXRlIElETkEoKXsKKyAgICAgICAgdHJ5eworICAgICAgICAgICBJbnB1dFN0cmVhbSBzdHJlYW0gPSBJQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKElDVVJlc291cmNlQnVuZGxlLklDVV9CVU5ETEUrIi91aWRuYS5zcHAiKTsKKyAgICAgICAgICAgbmFtZVByZXAgPSBuZXcgU3RyaW5nUHJlcChzdHJlYW0pOworICAgICAgICAgICBzdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgfWNhdGNoIChJT0V4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oZS50b1N0cmluZygpLCIiLCIiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIHN0YXJ0c1dpdGhQcmVmaXgoU3RyaW5nQnVmZmVyIHNyYyl7CisgICAgICAgIGJvb2xlYW4gc3RhcnRzV2l0aFByZWZpeCA9IHRydWU7CisKKyAgICAgICAgaWYoc3JjLmxlbmd0aCgpIDwgQUNFX1BSRUZJWF9MRU5HVEgpeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGZvcihpbnQgaT0wOyBpPEFDRV9QUkVGSVhfTEVOR1RIO2krKyl7CisgICAgICAgICAgICBpZih0b0FTQ0lJTG93ZXIoc3JjLmNoYXJBdChpKSkgIT0gQUNFX1BSRUZJWFtpXSl7CisgICAgICAgICAgICAgICAgc3RhcnRzV2l0aFByZWZpeCA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGFydHNXaXRoUHJlZml4OworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNoYXIgdG9BU0NJSUxvd2VyKGNoYXIgY2gpeworICAgICAgICBpZihDQVBJVEFMX0EgPD0gY2ggJiYgY2ggPD0gQ0FQSVRBTF9aKXsKKyAgICAgICAgICAgIHJldHVybiAoY2hhcikoY2ggKyBMT1dFUl9DQVNFX0RFTFRBKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2g7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nQnVmZmVyIHRvQVNDSUlMb3dlcihTdHJpbmdCdWZmZXIgc3JjKXsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGRlc3QgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvcihpbnQgaT0wOyBpPHNyYy5sZW5ndGgoKTtpKyspeworICAgICAgICAgICAgZGVzdC5hcHBlbmQodG9BU0NJSUxvd2VyKHNyYy5jaGFyQXQoaSkpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGVzdDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgY29tcGFyZUNhc2VJbnNlbnNpdGl2ZUFTQ0lJKFN0cmluZ0J1ZmZlciBzMSwgU3RyaW5nQnVmZmVyIHMyKXsKKyAgICAgICAgY2hhciBjMSxjMjsKKyAgICAgICAgaW50IHJjOworICAgICAgICBmb3IoaW50IGkgPTA7Lyogbm8gY29uZGl0aW9uICovO2krKykgeworICAgICAgICAgICAgLyogSWYgd2UgcmVhY2ggdGhlIGVuZHMgb2YgYm90aCBzdHJpbmdzIHRoZW4gdGhleSBtYXRjaCAqLworICAgICAgICAgICAgaWYoaSA9PSBzMS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjMSA9IHMxLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGMyID0gczIuY2hhckF0KGkpOworICAgICAgICAKKyAgICAgICAgICAgIC8qIENhc2UtaW5zZW5zaXRpdmUgY29tcGFyaXNvbiAqLworICAgICAgICAgICAgaWYoYzEhPWMyKSB7CisgICAgICAgICAgICAgICAgcmM9dG9BU0NJSUxvd2VyKGMxKS10b0FTQ0lJTG93ZXIoYzIpOworICAgICAgICAgICAgICAgIGlmKHJjIT0wKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0U2VwYXJhdG9ySW5kZXgoY2hhcltdIHNyYyxpbnQgc3RhcnQsIGludCBsaW1pdCl7CisgICAgICAgIGZvcig7IHN0YXJ0PGxpbWl0O3N0YXJ0KyspeworICAgICAgICAgICAgaWYoaXNMYWJlbFNlcGFyYXRvcihzcmNbc3RhcnRdKSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHdlIGhhdmUgbm90IGZvdW5kIHRoZSBzZXBhcmF0b3IganVzdCByZXR1cm4gbGVuZ3RoCisgICAgICAgIHJldHVybiBzdGFydDsKKyAgICB9CisgICAgCisgICAgLyoKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0U2VwYXJhdG9ySW5kZXgoVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIpeworICAgICAgICBpbnQgY3VycmVudEluZGV4ID0gaXRlci5nZXRJbmRleCgpOworICAgICAgICBpbnQgc2VwYXJhdG9ySW5kZXggPSAwOworICAgICAgICBpbnQgY2g7CisgICAgICAgIHdoaWxlKChjaD1pdGVyLm5leHQoKSkhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICBpZihpc0xhYmVsU2VwYXJhdG9yKGNoKSl7CisgICAgICAgICAgICAgICAgc2VwYXJhdG9ySW5kZXggPSBpdGVyLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgaXRlci5zZXRJbmRleChjdXJyZW50SW5kZXgpOworICAgICAgICAgICAgICAgIHJldHVybiBzZXBhcmF0b3JJbmRleDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyByZXNldCBpbmRleAorICAgICAgICBpdGVyLnNldEluZGV4KGN1cnJlbnRJbmRleCk7CisgICAgICAgIC8vIHdlIGhhdmUgbm90IGZvdW5kIHRoZSBzZXBhcmF0b3IganVzdCByZXR1cm4gdGhlIGxlbmd0aAorICAgICAgIAorICAgIH0KKyAgICAqLworICAgIAorCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0xESENoYXIoaW50IGNoKXsKKyAgICAgICAgLy8gaGlnaCBydW5uZXIgY2FzZQorICAgICAgICBpZihjaD4weDAwN0EpeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIC8vW1xcdTAwMkQgXFx1MDAzMC1cXHUwMDM5IFxcdTAwNDEtXFx1MDA1QSBcXHUwMDYxLVxcdTAwN0FdCisgICAgICAgIGlmKCAoY2g9PTB4MDAyRCkgfHwgCisgICAgICAgICAgICAoMHgwMDMwIDw9IGNoICYmIGNoIDw9IDB4MDAzOSkgfHwKKyAgICAgICAgICAgICgweDAwNDEgPD0gY2ggJiYgY2ggPD0gMHgwMDVBKSB8fAorICAgICAgICAgICAgKDB4MDA2MSA8PSBjaCAmJiBjaCA8PSAweDAwN0EpCisgICAgICAgICAgKXsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQXNjZXJ0YWluIGlmIHRoZSBnaXZlbiBjb2RlIHBvaW50IGlzIGEgbGFiZWwgc2VwYXJhdG9yIGFzIAorICAgICAqIGRlZmluZWQgYnkgdGhlIElETkEgUkZDCisgICAgICogCisgICAgICogQHBhcmFtIGNoIFRoZSBjb2RlIHBvaW50IHRvIGJlIGFzY2VydGFpbmVkCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjaGFyIGlzIGEgbGFiZWwgc2VwYXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0xhYmVsU2VwYXJhdG9yKGludCBjaCl7CisgICAgICAgIHN3aXRjaChjaCl7CisgICAgICAgICAgICBjYXNlIDB4MDAyZToKKyAgICAgICAgICAgIGNhc2UgMHgzMDAyOgorICAgICAgICAgICAgY2FzZSAweEZGMEU6CisgICAgICAgICAgICBjYXNlIDB4RkY2MToKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgCisgICAgICAgIH0KKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBUb0FTQ0lJIG9wZXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBJRE5BIFJGQy4KKyAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBkb25lIG9uIDxiPnNpbmdsZSBsYWJlbHM8L2I+IGJlZm9yZSBzZW5kaW5nIGl0IHRvIHNvbWV0aGluZyB0aGF0IGV4cGVjdHMKKyAgICAgKiBBU0NJSSBuYW1lcy4gQSBsYWJlbCBpcyBhbiBpbmRpdmlkdWFsIHBhcnQgb2YgYSBkb21haW4gbmFtZS4gTGFiZWxzIGFyZSB1c3VhbGx5CisgICAgICogc2VwYXJhdGVkIGJ5IGRvdHM7IGUuZy4iICJ3d3cuZXhhbXBsZS5jb20iIGlzIGNvbXBvc2VkIG9mIDMgbGFiZWxzIAorICAgICAqICJ3d3ciLCJleGFtcGxlIiwgYW5kICJjb20iLgorICAgICAqCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgaW5wdXQgc3RyaW5nIHRvIGJlIHByb2Nlc3NlZAorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIFN0cmluZ0J1ZmZlciB0aGUgY29udmVydGVkIFN0cmluZworICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8gICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydFRvQVNDSUkoU3RyaW5nIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHNyYyk7CisgICAgICAgIHJldHVybiBjb252ZXJ0VG9BU0NJSShpdGVyLG9wdGlvbnMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdGhlIFRvQVNDSUkgb3BlcmF0aW9uIGFzIGRlZmluZWQgaW4gdGhlIElETkEgUkZDLgorICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGRvbmUgb24gPGI+c2luZ2xlIGxhYmVsczwvYj4gYmVmb3JlIHNlbmRpbmcgaXQgdG8gc29tZXRoaW5nIHRoYXQgZXhwZWN0cworICAgICAqIEFTQ0lJIG5hbWVzLiBBIGxhYmVsIGlzIGFuIGluZGl2aWR1YWwgcGFydCBvZiBhIGRvbWFpbiBuYW1lLiBMYWJlbHMgYXJlIHVzdWFsbHkKKyAgICAgKiBzZXBhcmF0ZWQgYnkgZG90czsgZS5nLiIgInd3dy5leGFtcGxlLmNvbSIgaXMgY29tcG9zZWQgb2YgMyBsYWJlbHMgCisgICAgICogInd3dyIsImV4YW1wbGUiLCBhbmQgImNvbSIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBpbnB1dCBzdHJpbmcgYXMgU3RyaW5nQnVmZmVyIHRvIGJlIHByb2Nlc3NlZAorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIFN0cmluZ0J1ZmZlciB0aGUgY29udmVydGVkIFN0cmluZworICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0VG9BU0NJSShTdHJpbmdCdWZmZXIgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc3JjKTsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0FTQ0lJKGl0ZXIsb3B0aW9ucyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgVG9BU0NJSSBvcGVyYXRpb24gYXMgZGVmaW5lZCBpbiB0aGUgSUROQSBSRkMuCisgICAgICogVGhpcyBvcGVyYXRpb24gaXMgZG9uZSBvbiA8Yj5zaW5nbGUgbGFiZWxzPC9iPiBiZWZvcmUgc2VuZGluZyBpdCB0byBzb21ldGhpbmcgdGhhdCBleHBlY3RzCisgICAgICogQVNDSUkgbmFtZXMuIEEgbGFiZWwgaXMgYW4gaW5kaXZpZHVhbCBwYXJ0IG9mIGEgZG9tYWluIG5hbWUuIExhYmVscyBhcmUgdXN1YWxseQorICAgICAqIHNlcGFyYXRlZCBieSBkb3RzOyBlLmcuIiAid3d3LmV4YW1wbGUuY29tIiBpcyBjb21wb3NlZCBvZiAzIGxhYmVscyAKKyAgICAgKiAid3d3IiwiZXhhbXBsZSIsIGFuZCAiY29tIi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGlucHV0IHN0cmluZyBhcyBVQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgcHJvY2Vzc2VkCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgLSBJRE5BLkRFRkFVTFQgICAgICAgICAgICAgIFVzZSBkZWZhdWx0IG9wdGlvbnMsIGkuZS4sIGRvIG5vdCBwcm9jZXNzIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBub3QgdXNlIFNURDMgQVNDSUkgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGZvdW5kIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhjZXB0aW9uLgorICAgICAqCisgICAgICogIC0gSUROQS5BTExPV19VTkFTU0lHTkVEICAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gU3RyaW5nQnVmZmVyIHRoZSBjb252ZXJ0ZWQgU3RyaW5nCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRUb0FTQ0lJKFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIGludCBvcHRpb25zKQorICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIAorICAgICAgICBib29sZWFuW10gY2FzZUZsYWdzID0gbnVsbDsKKyAgICAKKyAgICAgICAgLy8gdGhlIHNvdXJjZSBjb250YWlucyBhbGwgYXNjaWkgY29kZXBvaW50cworICAgICAgICBib29sZWFuIHNyY0lzQVNDSUkgID0gdHJ1ZTsKKyAgICAgICAgLy8gYXNzdW1lIHRoZSBzb3VyY2UgY29udGFpbnMgYWxsIExESCBjb2RlcG9pbnRzCisgICAgICAgIGJvb2xlYW4gc3JjSXNMREggPSB0cnVlOyAKKworICAgICAgICAvL2dldCB0aGUgb3B0aW9ucworICAgICAgICBib29sZWFuIHVzZVNURDNBU0NJSVJ1bGVzID0gKChvcHRpb25zICYgVVNFX1NURDNfUlVMRVMpICE9IDApOworICAgICAgICBpbnQgY2g7CisgICAgICAgIC8vIHN0ZXAgMQorICAgICAgICB3aGlsZSgoY2ggPSBzcmMubmV4dCgpKSE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsKKyAgICAgICAgICAgIGlmKGNoPiAweDdmKXsKKyAgICAgICAgICAgICAgICBzcmNJc0FTQ0lJID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW50IGZhaWxQb3MgPSAtMTsKKyAgICAgICAgc3JjLnNldFRvU3RhcnQoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHByb2Nlc3NPdXQgPSBudWxsOworICAgICAgICAvLyBzdGVwIDIgaXMgcGVyZm9ybWVkIG9ubHkgaWYgdGhlIHNvdXJjZSBjb250YWlucyBub24gQVNDSUkKKyAgICAgICAgaWYoIXNyY0lzQVNDSUkpeworICAgICAgICAgICAgLy8gc3RlcCAyCisgICAgICAgICAgICBwcm9jZXNzT3V0ID0gc2luZ2xldG9uLm5hbWVQcmVwLnByZXBhcmUoc3JjLCBvcHRpb25zKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBwcm9jZXNzT3V0ID0gbmV3IFN0cmluZ0J1ZmZlcihzcmMuZ2V0VGV4dCgpKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgcG9MZW4gPSBwcm9jZXNzT3V0Lmxlbmd0aCgpOworICAgICAgICAKKyAgICAgICAgaWYocG9MZW49PTApeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiRm91bmQgemVybyBsZW5ndGggbGFibGUgYWZ0ZXIgTmFtZVByZXAuIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uWkVST19MRU5HVEhfTEFCRUwpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciBkZXN0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAKKyAgICAgICAgLy8gcmVzZXQgdGhlIHZhcmlhYmxlIHRvIHZlcmlmeSBpZiBvdXRwdXQgb2YgcHJlcGFyZSBpcyBBU0NJSSBvciBub3QKKyAgICAgICAgc3JjSXNBU0NJSSA9IHRydWU7CisgICAgICAgIAorICAgICAgICAvLyBzdGVwIDMgJiA0CisgICAgICAgIGZvcihpbnQgaj0wO2o8cG9MZW47aisrICl7CisgICAgICAgICAgICBjaD1wcm9jZXNzT3V0LmNoYXJBdChqKTsKKyAgICAgICAgICAgIGlmKGNoID4gMHg3Ril7CisgICAgICAgICAgICAgICAgc3JjSXNBU0NJSSA9IGZhbHNlOworICAgICAgICAgICAgfWVsc2UgaWYoaXNMREhDaGFyKGNoKT09ZmFsc2UpeworICAgICAgICAgICAgICAgIC8vIGhlcmUgd2UgZG8gbm90IGFzc2VtYmxlIHN1cnJvZ2F0ZXMKKyAgICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSBrbm93IHRoYXQgTERIIGNvZGUgcG9pbnRzCisgICAgICAgICAgICAgICAgLy8gYXJlIGluIHRoZSBBU0NJSSByYW5nZSBvbmx5CisgICAgICAgICAgICAgICAgc3JjSXNMREggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmYWlsUG9zID0gajsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBpZih1c2VTVEQzQVNDSUlSdWxlcyA9PSB0cnVlKXsKKyAgICAgICAgICAgIC8vIHZlcmlmeSAzYSBhbmQgM2IKKyAgICAgICAgICAgIGlmKCBzcmNJc0xESCA9PSBmYWxzZSAvKiBzb3VyY2UgY29udGFpbnMgc29tZSBub24tTERIIGNoYXJhY3RlcnMgKi8KKyAgICAgICAgICAgICAgICB8fCBwcm9jZXNzT3V0LmNoYXJBdCgwKSA9PSAgSFlQSEVOIAorICAgICAgICAgICAgICAgIHx8IHByb2Nlc3NPdXQuY2hhckF0KHByb2Nlc3NPdXQubGVuZ3RoKCktMSkgPT0gSFlQSEVOKXsKKworICAgICAgICAgICAgICAgIC8qIHBvcHVsYXRlIHRoZSBwYXJzZUVycm9yIHN0cnVjdCAqLworICAgICAgICAgICAgICAgIGlmKHNyY0lzTERIPT1mYWxzZSl7CisgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCAiVGhlIGlucHV0IGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlIFNURCAzIEFTQ0lJIHJ1bGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uU1REM19BU0NJSV9SVUxFU19FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0LnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmFpbFBvcz4wKSA/IChmYWlsUG9zLTEpIDogZmFpbFBvcyk7CisgICAgICAgICAgICAgICAgfWVsc2UgaWYocHJvY2Vzc091dC5jaGFyQXQoMCkgPT0gSFlQSEVOKXsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIGlucHV0IGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlIFNURCAzIEFTQ0lJIHJ1bGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uU1REM19BU0NJSV9SVUxFU19FUlJPUixwcm9jZXNzT3V0LnRvU3RyaW5nKCksMCk7CisgICAgIAorICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIGlucHV0IGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlIFNURCAzIEFTQ0lJIHJ1bGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uU1REM19BU0NJSV9SVUxFU19FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0LnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvTGVuPjApID8gcG9MZW4tMSA6IHBvTGVuKTsKKworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihzcmNJc0FTQ0lJKXsKKyAgICAgICAgICAgIGRlc3QgPSAgcHJvY2Vzc091dDsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAvLyBzdGVwIDUgOiB2ZXJpZnkgdGhlIHNlcXVlbmNlIGRvZXMgbm90IGJlZ2luIHdpdGggQUNFIHByZWZpeAorICAgICAgICAgICAgaWYoIXN0YXJ0c1dpdGhQcmVmaXgocHJvY2Vzc091dCkpeworCisgICAgICAgICAgICAgICAgLy9zdGVwIDY6IGVuY29kZSB0aGUgc2VxdWVuY2Ugd2l0aCBwdW55Y29kZQorICAgICAgICAgICAgICAgIGNhc2VGbGFncyA9IG5ldyBib29sZWFuW3BvTGVuXTsKKworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBwdW55b3V0ID0gUHVueWNvZGUuZW5jb2RlKHByb2Nlc3NPdXQsY2FzZUZsYWdzKTsKKworICAgICAgICAgICAgICAgIC8vIGNvbnZlcnQgYWxsIGNvZGVwb2ludHMgdG8gbG93ZXIgY2FzZSBBU0NJSQorICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBsb3dlck91dCA9IHRvQVNDSUlMb3dlcihwdW55b3V0KTsKKworICAgICAgICAgICAgICAgIC8vU3RlcCA3OiBwcmVwZW5kIHRoZSBBQ0UgcHJlZml4CisgICAgICAgICAgICAgICAgZGVzdC5hcHBlbmQoQUNFX1BSRUZJWCwwLEFDRV9QUkVGSVhfTEVOR1RIKTsKKyAgICAgICAgICAgICAgICAvL1N0ZXAgNjogY29weSB0aGUgY29udGVudHMgaW4gYjIgaW50byBkZXN0CisgICAgICAgICAgICAgICAgZGVzdC5hcHBlbmQobG93ZXJPdXQpOworICAgICAgICAgICAgfWVsc2V7CisKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3Qgc3RhcnQgd2l0aCB0aGUgQUNFIFByZWZpeC4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQUNFX1BSRUZJWF9FUlJPUixwcm9jZXNzT3V0LnRvU3RyaW5nKCksMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYoZGVzdC5sZW5ndGgoKSA+IE1BWF9MQUJFTF9MRU5HVEgpeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIGxhYmVscyBpbiB0aGUgaW5wdXQgYXJlIHRvbyBsb25nLiBMZW5ndGggPiA2NC4iLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uTEFCRUxfVE9PX0xPTkdfRVJST1IsZGVzdC50b1N0cmluZygpLDApOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkZXN0OworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIHRoZSBJRE5Ub0FTQ0lJIG9wZXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBJRE5BIFJGQy4KKyAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBkb25lIG9uIGNvbXBsZXRlIGRvbWFpbiBuYW1lcywgZS5nOiAid3d3LmV4YW1wbGUuY29tIi4gCisgICAgICogSXQgaXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIG9wZXJhdGlvbiBjYW4gZmFpbC4gSWYgaXQgZmFpbHMsIHRoZW4gdGhlIGlucHV0IAorICAgICAqIGRvbWFpbiBuYW1lIGNhbm5vdCBiZSB1c2VkIGFzIGFuIEludGVybmF0aW9uYWxpemVkIERvbWFpbiBOYW1lIGFuZCB0aGUgYXBwbGljYXRpb24KKyAgICAgKiBzaG91bGQgaGF2ZSBtZXRob2RzIGRlZmluZWQgdG8gZGVhbCB3aXRoIHRoZSBmYWlsdXJlLgorICAgICAqIAorICAgICAqIDxiPk5vdGU6PC9iPiBJRE5BIFJGQyBzcGVjaWZpZXMgdGhhdCBhIGNvbmZvcm1hbnQgYXBwbGljYXRpb24gc2hvdWxkIGRpdmlkZSBhIGRvbWFpbiBuYW1lCisgICAgICogaW50byBzZXBhcmF0ZSBsYWJlbHMsIGRlY2lkZSB3aGV0aGVyIHRvIGFwcGx5IGFsbG93VW5hc3NpZ25lZCBhbmQgdXNlU1REM0FTQ0lJUnVsZXMgb24gZWFjaCwgCisgICAgICogYW5kIHRoZW4gY29udmVydC4gVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBvZmZlciB0aGF0IGxldmVsIG9mIGdyYW51bGFyaXR5LiBUaGUgb3B0aW9ucyBvbmNlICAKKyAgICAgKiBzZXQgd2lsbCBhcHBseSB0byBhbGwgbGFiZWxzIGluIHRoZSBkb21haW4gbmFtZQorICAgICAqCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgaW5wdXQgc3RyaW5nIGFzIFVDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBwcm9jZXNzZWQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAtIElETkEuREVGQVVMVCAgICAgICAgICAgICAgVXNlIGRlZmF1bHQgb3B0aW9ucywgaS5lLiwgZG8gbm90IHByb2Nlc3MgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIG5vdCB1c2UgU1REMyBBU0NJSSBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgZm91bmQgdGhlIG9wZXJhdGlvbiBmYWlscyB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VFeGNlcHRpb24uCisgICAgICoKKyAgICAgKiAgLSBJRE5BLkFMTE9XX1VOQVNTSUdORUQgICAgIFVuYXNzaWduZWQgdmFsdWVzIGNhbiBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgZm9yIHF1ZXJ5IG9wZXJhdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCwgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgKiAgLSBJRE5BLlVTRV9TVEQzX1JVTEVTICAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiBTdHJpbmdCdWZmZXIgdGhlIGNvbnZlcnRlZCBTdHJpbmcKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydElETlRvQVNDSUkoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICByZXR1cm4gY29udmVydElETlRvQVNDSUkoc3JjLmdldFRleHQoKSwgb3B0aW9ucyk7ICAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgdGhlIElETlRvQVNDSUkgb3BlcmF0aW9uIGFzIGRlZmluZWQgaW4gdGhlIElETkEgUkZDLgorICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGRvbmUgb24gY29tcGxldGUgZG9tYWluIG5hbWVzLCBlLmc6ICJ3d3cuZXhhbXBsZS5jb20iLiAKKyAgICAgKiBJdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHRoaXMgb3BlcmF0aW9uIGNhbiBmYWlsLiBJZiBpdCBmYWlscywgdGhlbiB0aGUgaW5wdXQgCisgICAgICogZG9tYWluIG5hbWUgY2Fubm90IGJlIHVzZWQgYXMgYW4gSW50ZXJuYXRpb25hbGl6ZWQgRG9tYWluIE5hbWUgYW5kIHRoZSBhcHBsaWNhdGlvbgorICAgICAqIHNob3VsZCBoYXZlIG1ldGhvZHMgZGVmaW5lZCB0byBkZWFsIHdpdGggdGhlIGZhaWx1cmUuCisgICAgICogCisgICAgICogPGI+Tm90ZTo8L2I+IElETkEgUkZDIHNwZWNpZmllcyB0aGF0IGEgY29uZm9ybWFudCBhcHBsaWNhdGlvbiBzaG91bGQgZGl2aWRlIGEgZG9tYWluIG5hbWUKKyAgICAgKiBpbnRvIHNlcGFyYXRlIGxhYmVscywgZGVjaWRlIHdoZXRoZXIgdG8gYXBwbHkgYWxsb3dVbmFzc2lnbmVkIGFuZCB1c2VTVEQzQVNDSUlSdWxlcyBvbiBlYWNoLCAKKyAgICAgKiBhbmQgdGhlbiBjb252ZXJ0LiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG9mZmVyIHRoYXQgbGV2ZWwgb2YgZ3JhbnVsYXJpdHkuIFRoZSBvcHRpb25zIG9uY2UgIAorICAgICAqIHNldCB3aWxsIGFwcGx5IHRvIGFsbCBsYWJlbHMgaW4gdGhlIGRvbWFpbiBuYW1lCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBpbnB1dCBzdHJpbmcgYXMgYSBTdHJpbmdCdWZmZXIgdG8gYmUgcHJvY2Vzc2VkCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgLSBJRE5BLkRFRkFVTFQgICAgICAgICAgICAgIFVzZSBkZWZhdWx0IG9wdGlvbnMsIGkuZS4sIGRvIG5vdCBwcm9jZXNzIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBub3QgdXNlIFNURDMgQVNDSUkgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGZvdW5kIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhjZXB0aW9uLgorICAgICAqCisgICAgICogIC0gSUROQS5BTExPV19VTkFTU0lHTkVEICAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gU3RyaW5nQnVmZmVyIHRoZSBjb252ZXJ0ZWQgU3RyaW5nCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRJRE5Ub0FTQ0lJKFN0cmluZ0J1ZmZlciBzcmMsIGludCBvcHRpb25zKQorICAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgICAgIHJldHVybiBjb252ZXJ0SUROVG9BU0NJSShzcmMudG9TdHJpbmcoKSwgb3B0aW9ucyk7ICAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgdGhlIElETlRvQVNDSUkgb3BlcmF0aW9uIGFzIGRlZmluZWQgaW4gdGhlIElETkEgUkZDLgorICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGRvbmUgb24gY29tcGxldGUgZG9tYWluIG5hbWVzLCBlLmc6ICJ3d3cuZXhhbXBsZS5jb20iLiAKKyAgICAgKiBJdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHRoaXMgb3BlcmF0aW9uIGNhbiBmYWlsLiBJZiBpdCBmYWlscywgdGhlbiB0aGUgaW5wdXQgCisgICAgICogZG9tYWluIG5hbWUgY2Fubm90IGJlIHVzZWQgYXMgYW4gSW50ZXJuYXRpb25hbGl6ZWQgRG9tYWluIE5hbWUgYW5kIHRoZSBhcHBsaWNhdGlvbgorICAgICAqIHNob3VsZCBoYXZlIG1ldGhvZHMgZGVmaW5lZCB0byBkZWFsIHdpdGggdGhlIGZhaWx1cmUuCisgICAgICogCisgICAgICogPGI+Tm90ZTo8L2I+IElETkEgUkZDIHNwZWNpZmllcyB0aGF0IGEgY29uZm9ybWFudCBhcHBsaWNhdGlvbiBzaG91bGQgZGl2aWRlIGEgZG9tYWluIG5hbWUKKyAgICAgKiBpbnRvIHNlcGFyYXRlIGxhYmVscywgZGVjaWRlIHdoZXRoZXIgdG8gYXBwbHkgYWxsb3dVbmFzc2lnbmVkIGFuZCB1c2VTVEQzQVNDSUlSdWxlcyBvbiBlYWNoLCAKKyAgICAgKiBhbmQgdGhlbiBjb252ZXJ0LiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG9mZmVyIHRoYXQgbGV2ZWwgb2YgZ3JhbnVsYXJpdHkuIFRoZSBvcHRpb25zIG9uY2UgIAorICAgICAqIHNldCB3aWxsIGFwcGx5IHRvIGFsbCBsYWJlbHMgaW4gdGhlIGRvbWFpbiBuYW1lCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgcHJvY2Vzc2VkCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgLSBJRE5BLkRFRkFVTFQgICAgICAgICAgICAgIFVzZSBkZWZhdWx0IG9wdGlvbnMsIGkuZS4sIGRvIG5vdCBwcm9jZXNzIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBub3QgdXNlIFNURDMgQVNDSUkgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGZvdW5kIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhjZXB0aW9uLgorICAgICAqCisgICAgICogIC0gSUROQS5BTExPV19VTkFTU0lHTkVEICAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gU3RyaW5nQnVmZmVyIHRoZSBjb252ZXJ0ZWQgU3RyaW5nCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRJRE5Ub0FTQ0lJKFN0cmluZyBzcmMsaW50IG9wdGlvbnMpCisgICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworCisgICAgICAgIGNoYXJbXSBzcmNBcnIgPSBzcmMudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50IHNlcEluZGV4PTA7CisgICAgICAgIGludCBvbGRTZXBJbmRleD0wOworICAgICAgICBmb3IoOzspeworICAgICAgICAgICAgc2VwSW5kZXggPSBnZXRTZXBhcmF0b3JJbmRleChzcmNBcnIsc2VwSW5kZXgsc3JjQXJyLmxlbmd0aCk7CisgICAgICAgICAgICBTdHJpbmcgbGFiZWwgPSBuZXcgU3RyaW5nKHNyY0FycixvbGRTZXBJbmRleCxzZXBJbmRleC1vbGRTZXBJbmRleCk7CisgICAgICAgICAgICAvL21ha2Ugc3VyZSB0aGlzIGlzIG5vdCBhIHJvb3QgbGFiZWwgc2VwYXJhdG9yLgorICAgICAgICAgICAgaWYoIShsYWJlbC5sZW5ndGgoKT09MCAmJiBzZXBJbmRleD09c3JjQXJyLmxlbmd0aCkpeworICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKGxhYmVsKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNvbnZlcnRUb0FTQ0lJKGl0ZXIsb3B0aW9ucykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoc2VwSW5kZXg9PXNyY0Fyci5sZW5ndGgpeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBpbmNyZW1lbnQgdGhlIHNlcEluZGV4IHRvIHNraXAgcGFzdCB0aGUgc2VwYXJhdG9yCisgICAgICAgICAgICBzZXBJbmRleCsrOworICAgICAgICAgICAgb2xkU2VwSW5kZXggPSBzZXBJbmRleDsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGNoYXIpRlVMTF9TVE9QKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgVG9Vbmljb2RlIG9wZXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBJRE5BIFJGQy4KKyAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBkb25lIG9uIDxiPnNpbmdsZSBsYWJlbHM8L2I+IGJlZm9yZSBzZW5kaW5nIGl0IHRvIHNvbWV0aGluZyB0aGF0IGV4cGVjdHMKKyAgICAgKiBVbmljb2RlIG5hbWVzLiBBIGxhYmVsIGlzIGFuIGluZGl2aWR1YWwgcGFydCBvZiBhIGRvbWFpbiBuYW1lLiBMYWJlbHMgYXJlIHVzdWFsbHkKKyAgICAgKiBzZXBhcmF0ZWQgYnkgZG90czsgZm9yIGUuZy4iICJ3d3cuZXhhbXBsZS5jb20iIGlzIGNvbXBvc2VkIG9mIDMgbGFiZWxzIAorICAgICAqICJ3d3ciLCJleGFtcGxlIiwgYW5kICJjb20iLgorICAgICAqIAorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGlucHV0IHN0cmluZyB0byBiZSBwcm9jZXNzZWQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAtIElETkEuREVGQVVMVCAgICAgICAgICAgICAgVXNlIGRlZmF1bHQgb3B0aW9ucywgaS5lLiwgZG8gbm90IHByb2Nlc3MgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIG5vdCB1c2UgU1REMyBBU0NJSSBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgZm91bmQgdGhlIG9wZXJhdGlvbiBmYWlscyB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VFeGNlcHRpb24uCisgICAgICoKKyAgICAgKiAgLSBJRE5BLkFMTE9XX1VOQVNTSUdORUQgICAgIFVuYXNzaWduZWQgdmFsdWVzIGNhbiBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgZm9yIHF1ZXJ5IG9wZXJhdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCwgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgKiAgLSBJRE5BLlVTRV9TVEQzX1JVTEVTICAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiBTdHJpbmdCdWZmZXIgdGhlIGNvbnZlcnRlZCBTdHJpbmcKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydFRvVW5pY29kZShTdHJpbmcgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc3JjKTsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRUb1VuaWNvZGUoaXRlcixvcHRpb25zKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBUb1VuaWNvZGUgb3BlcmF0aW9uIGFzIGRlZmluZWQgaW4gdGhlIElETkEgUkZDLgorICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGRvbmUgb24gPGI+c2luZ2xlIGxhYmVsczwvYj4gYmVmb3JlIHNlbmRpbmcgaXQgdG8gc29tZXRoaW5nIHRoYXQgZXhwZWN0cworICAgICAqIFVuaWNvZGUgbmFtZXMuIEEgbGFiZWwgaXMgYW4gaW5kaXZpZHVhbCBwYXJ0IG9mIGEgZG9tYWluIG5hbWUuIExhYmVscyBhcmUgdXN1YWxseQorICAgICAqIHNlcGFyYXRlZCBieSBkb3RzOyBmb3IgZS5nLiIgInd3dy5leGFtcGxlLmNvbSIgaXMgY29tcG9zZWQgb2YgMyBsYWJlbHMgCisgICAgICogInd3dyIsImV4YW1wbGUiLCBhbmQgImNvbSIuCisgICAgICogCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgaW5wdXQgc3RyaW5nIGFzIFN0cmluZ0J1ZmZlciB0byBiZSBwcm9jZXNzZWQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAtIElETkEuREVGQVVMVCAgICAgICAgICAgICAgVXNlIGRlZmF1bHQgb3B0aW9ucywgaS5lLiwgZG8gbm90IHByb2Nlc3MgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIG5vdCB1c2UgU1REMyBBU0NJSSBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgZm91bmQgdGhlIG9wZXJhdGlvbiBmYWlscyB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VFeGNlcHRpb24uCisgICAgICoKKyAgICAgKiAgLSBJRE5BLkFMTE9XX1VOQVNTSUdORUQgICAgIFVuYXNzaWduZWQgdmFsdWVzIGNhbiBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgZm9yIHF1ZXJ5IG9wZXJhdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCwgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgKiAgLSBJRE5BLlVTRV9TVEQzX1JVTEVTICAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiBTdHJpbmdCdWZmZXIgdGhlIGNvbnZlcnRlZCBTdHJpbmcKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydFRvVW5pY29kZShTdHJpbmdCdWZmZXIgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2Uoc3JjKTsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRUb1VuaWNvZGUoaXRlcixvcHRpb25zKTsKKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBUb1VuaWNvZGUgb3BlcmF0aW9uIGFzIGRlZmluZWQgaW4gdGhlIElETkEgUkZDLgorICAgICAqIFRoaXMgb3BlcmF0aW9uIGlzIGRvbmUgb24gPGI+c2luZ2xlIGxhYmVsczwvYj4gYmVmb3JlIHNlbmRpbmcgaXQgdG8gc29tZXRoaW5nIHRoYXQgZXhwZWN0cworICAgICAqIFVuaWNvZGUgbmFtZXMuIEEgbGFiZWwgaXMgYW4gaW5kaXZpZHVhbCBwYXJ0IG9mIGEgZG9tYWluIG5hbWUuIExhYmVscyBhcmUgdXN1YWxseQorICAgICAqIHNlcGFyYXRlZCBieSBkb3RzOyBmb3IgZS5nLiIgInd3dy5leGFtcGxlLmNvbSIgaXMgY29tcG9zZWQgb2YgMyBsYWJlbHMgCisgICAgICogInd3dyIsImV4YW1wbGUiLCBhbmQgImNvbSIuCisgICAgICogCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgaW5wdXQgc3RyaW5nIGFzIFVDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBwcm9jZXNzZWQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAtIElETkEuREVGQVVMVCAgICAgICAgICAgICAgVXNlIGRlZmF1bHQgb3B0aW9ucywgaS5lLiwgZG8gbm90IHByb2Nlc3MgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIG5vdCB1c2UgU1REMyBBU0NJSSBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgZm91bmQgdGhlIG9wZXJhdGlvbiBmYWlscyB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VFeGNlcHRpb24uCisgICAgICoKKyAgICAgKiAgLSBJRE5BLkFMTE9XX1VOQVNTSUdORUQgICAgIFVuYXNzaWduZWQgdmFsdWVzIGNhbiBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgZm9yIHF1ZXJ5IG9wZXJhdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCwgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgKiAgLSBJRE5BLlVTRV9TVEQzX1JVTEVTICAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiBTdHJpbmdCdWZmZXIgdGhlIGNvbnZlcnRlZCBTdHJpbmcKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydFRvVW5pY29kZShVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgCisgICAgICAgIGJvb2xlYW5bXSBjYXNlRmxhZ3MgPSBudWxsOworICAgICAgICAKKyAgICAgICAgLy8gdGhlIHNvdXJjZSBjb250YWlucyBhbGwgYXNjaWkgY29kZXBvaW50cworICAgICAgICBib29sZWFuIHNyY0lzQVNDSUkgID0gdHJ1ZTsKKyAgICAgICAgLy8gYXNzdW1lIHRoZSBzb3VyY2UgY29udGFpbnMgYWxsIExESCBjb2RlcG9pbnRzCisgICAgICAgIGJvb2xlYW4gc3JjSXNMREggPSB0cnVlOyAKKyAgICAgICAgCisgICAgICAgIC8vZ2V0IHRoZSBvcHRpb25zCisgICAgICAgIGJvb2xlYW4gdXNlU1REM0FTQ0lJUnVsZXMgPSAoKG9wdGlvbnMgJiBVU0VfU1REM19SVUxFUykgIT0gMCk7CisgICAgICAgIAorICAgICAgICBpbnQgZmFpbFBvcyA9IC0xOworICAgICAgICBpbnQgY2g7CisgICAgICAgIGludCBzYXZlSW5kZXggPSBzcmMuZ2V0SW5kZXgoKTsKKyAgICAgICAgLy8gc3RlcCAxOiBmaW5kIG91dCBpZiBhbGwgdGhlIGNvZGVwb2ludHMgaW4gc3JjIGFyZSBBU0NJSSAgCisgICAgICAgIHdoaWxlKChjaD1zcmMubmV4dCgpKSE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsKKyAgICAgICAgICAgIGlmKGNoPjB4N0YpeworICAgICAgICAgICAgICAgIHNyY0lzQVNDSUkgPSBmYWxzZTsKKyAgICAgICAgICAgIH1lbHNlIGlmKChzcmNJc0xESCA9IGlzTERIQ2hhcihjaCkpPT1mYWxzZSl7CisgICAgICAgICAgICAgICAgZmFpbFBvcyA9IHNyYy5nZXRJbmRleCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciBwcm9jZXNzT3V0OworICAgICAgICAKKyAgICAgICAgaWYoc3JjSXNBU0NJSSA9PSBmYWxzZSl7CisgICAgICAgICAgICAvLyBzdGVwIDI6IHByb2Nlc3MgdGhlIHN0cmluZworICAgICAgICAgICAgc3JjLnNldEluZGV4KHNhdmVJbmRleCk7CisgICAgICAgICAgICBwcm9jZXNzT3V0ID0gc2luZ2xldG9uLm5hbWVQcmVwLnByZXBhcmUoc3JjLG9wdGlvbnMpOworCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgLy9qdXN0IHBvaW50IHRvIHNvdXJjZQorICAgICAgICAgICAgcHJvY2Vzc091dCA9IG5ldyBTdHJpbmdCdWZmZXIoc3JjLmdldFRleHQoKSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gVE9ETzoKKyAgICAgICAgLy8gVGhlIFJGQyBzdGF0ZXMgdGhhdCAKKyAgICAgICAgLy8gPHF1b3RlPgorICAgICAgICAvLyBUb1VuaWNvZGUgbmV2ZXIgZmFpbHMuIElmIGFueSBzdGVwIGZhaWxzLCB0aGVuIHRoZSBvcmlnaW5hbCBpbnB1dAorICAgICAgICAvLyBpcyByZXR1cm5lZCBpbW1lZGlhdGVseSBpbiB0aGF0IHN0ZXAuCisgICAgICAgIC8vIDwvcXVvdGU+CisgICAgICAgIAorICAgICAgICAvL3N0ZXAgMzogdmVyaWZ5IEFDRSBQcmVmaXgKKyAgICAgICAgaWYoc3RhcnRzV2l0aFByZWZpeChwcm9jZXNzT3V0KSl7CisKKyAgICAgICAgICAgIC8vc3RlcCA0OiBSZW1vdmUgdGhlIEFDRSBQcmVmaXgKKyAgICAgICAgICAgIFN0cmluZyB0ZW1wID0gcHJvY2Vzc091dC5zdWJzdHJpbmcoQUNFX1BSRUZJWF9MRU5HVEgscHJvY2Vzc091dC5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgIC8vc3RlcCA1OiBEZWNvZGUgdXNpbmcgcHVueWNvZGUKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBkZWNvZGVPdXQgPSBQdW55Y29kZS5kZWNvZGUobmV3IFN0cmluZ0J1ZmZlcih0ZW1wKSxjYXNlRmxhZ3MpOworICAgICAgICAKKyAgICAgICAgICAgIC8vc3RlcCA2OkFwcGx5IHRvQVNDSUkKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FTQ0lJT3V0ID0gY29udmVydFRvQVNDSUkoZGVjb2RlT3V0LCBvcHRpb25zKTsKKworICAgICAgICAgICAgLy9zdGVwIDc6IHZlcmlmeQorICAgICAgICAgICAgaWYoY29tcGFyZUNhc2VJbnNlbnNpdGl2ZUFTQ0lJKHByb2Nlc3NPdXQsIHRvQVNDSUlPdXQpICE9MCl7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIHZlcmlmaWNhdGlvbiBzdGVwIHByZXNjcmliZWQgYnkgdGhlIFJGQyAzNDkxIGZhaWxlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5WRVJJRklDQVRJT05fRVJST1IpOyAKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy9zdGVwIDg6IHJldHVybiBvdXRwdXQgb2Ygc3RlcCA1CisgICAgICAgICAgICByZXR1cm4gZGVjb2RlT3V0OworICAgICAgICAgICAgCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgLy8gdmVyaWZ5IHRoYXQgU1REMyBBU0NJSSBydWxlcyBhcmUgc2F0aXNmaWVkCisgICAgICAgICAgICBpZih1c2VTVEQzQVNDSUlSdWxlcyA9PSB0cnVlKXsKKyAgICAgICAgICAgICAgICBpZiggc3JjSXNMREggPT0gZmFsc2UgLyogc291cmNlIGNvbnRhaW5zIHNvbWUgbm9uLUxESCBjaGFyYWN0ZXJzICovCisgICAgICAgICAgICAgICAgICAgIHx8IHByb2Nlc3NPdXQuY2hhckF0KDApID09ICBIWVBIRU4gCisgICAgICAgICAgICAgICAgICAgIHx8IHByb2Nlc3NPdXQuY2hhckF0KHByb2Nlc3NPdXQubGVuZ3RoKCktMSkgPT0gSFlQSEVOKXsKKyAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYoc3JjSXNMREg9PWZhbHNlKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBTVEQgMyBBU0NJSSBydWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IscHJvY2Vzc091dC50b1N0cmluZygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmYWlsUG9zPjApID8gKGZhaWxQb3MtMSkgOiBmYWlsUG9zKTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYocHJvY2Vzc091dC5jaGFyQXQoMCkgPT0gSFlQSEVOKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBTVEQgMyBBU0NJSSBydWxlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLlNURDNfQVNDSUlfUlVMRVNfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dC50b1N0cmluZygpLDApOworICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiVGhlIGlucHV0IGRvZXMgbm90IGNvbmZvcm0gdG8gdGhlIFNURCAzIEFTQ0lJIHJ1bGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uU1REM19BU0NJSV9SVUxFU19FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0LnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc091dC5sZW5ndGgoKSk7CisgICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBqdXN0IHJldHVybiB0aGUgc291cmNlCisgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcihzcmMuZ2V0VGV4dCgpKTsKKyAgICAgICAgfSAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyB0aGUgSUROVG9Vbmljb2RlIG9wZXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBJRE5BIFJGQy4KKyAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBkb25lIG9uIGNvbXBsZXRlIGRvbWFpbiBuYW1lcywgZS5nOiAid3d3LmV4YW1wbGUuY29tIi4gCisgICAgICoKKyAgICAgKiA8Yj5Ob3RlOjwvYj4gSUROQSBSRkMgc3BlY2lmaWVzIHRoYXQgYSBjb25mb3JtYW50IGFwcGxpY2F0aW9uIHNob3VsZCBkaXZpZGUgYSBkb21haW4gbmFtZQorICAgICAqIGludG8gc2VwYXJhdGUgbGFiZWxzLCBkZWNpZGUgd2hldGhlciB0byBhcHBseSBhbGxvd1VuYXNzaWduZWQgYW5kIHVzZVNURDNBU0NJSVJ1bGVzIG9uIGVhY2gsIAorICAgICAqIGFuZCB0aGVuIGNvbnZlcnQuIFRoaXMgZnVuY3Rpb24gZG9lcyBub3Qgb2ZmZXIgdGhhdCBsZXZlbCBvZiBncmFudWxhcml0eS4gVGhlIG9wdGlvbnMgb25jZSAgCisgICAgICogc2V0IHdpbGwgYXBwbHkgdG8gYWxsIGxhYmVscyBpbiB0aGUgZG9tYWluIG5hbWUKKyAgICAgKgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGlucHV0IHN0cmluZyBhcyBVQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgcHJvY2Vzc2VkCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgLSBJRE5BLkRFRkFVTFQgICAgICAgICAgICAgIFVzZSBkZWZhdWx0IG9wdGlvbnMsIGkuZS4sIGRvIG5vdCBwcm9jZXNzIHVuYXNzaWduZWQgY29kZSBwb2ludHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBub3QgdXNlIFNURDMgQVNDSUkgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGZvdW5kIHRoZSBvcGVyYXRpb24gZmFpbHMgd2l0aCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlRXhjZXB0aW9uLgorICAgICAqCisgICAgICogIC0gSUROQS5BTExPV19VTkFTU0lHTkVEICAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gU3RyaW5nQnVmZmVyIHRoZSBjb252ZXJ0ZWQgU3RyaW5nCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nQnVmZmVyIGNvbnZlcnRJRE5Ub1VuaWNvZGUoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIHJldHVybiBjb252ZXJ0SUROVG9Vbmljb2RlKHNyYy5nZXRUZXh0KCksIG9wdGlvbnMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgdGhlIElETlRvVW5pY29kZSBvcGVyYXRpb24gYXMgZGVmaW5lZCBpbiB0aGUgSUROQSBSRkMuCisgICAgICogVGhpcyBvcGVyYXRpb24gaXMgZG9uZSBvbiBjb21wbGV0ZSBkb21haW4gbmFtZXMsIGUuZzogInd3dy5leGFtcGxlLmNvbSIuIAorICAgICAqCisgICAgICogPGI+Tm90ZTo8L2I+IElETkEgUkZDIHNwZWNpZmllcyB0aGF0IGEgY29uZm9ybWFudCBhcHBsaWNhdGlvbiBzaG91bGQgZGl2aWRlIGEgZG9tYWluIG5hbWUKKyAgICAgKiBpbnRvIHNlcGFyYXRlIGxhYmVscywgZGVjaWRlIHdoZXRoZXIgdG8gYXBwbHkgYWxsb3dVbmFzc2lnbmVkIGFuZCB1c2VTVEQzQVNDSUlSdWxlcyBvbiBlYWNoLCAKKyAgICAgKiBhbmQgdGhlbiBjb252ZXJ0LiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG9mZmVyIHRoYXQgbGV2ZWwgb2YgZ3JhbnVsYXJpdHkuIFRoZSBvcHRpb25zIG9uY2UgIAorICAgICAqIHNldCB3aWxsIGFwcGx5IHRvIGFsbCBsYWJlbHMgaW4gdGhlIGRvbWFpbiBuYW1lCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBpbnB1dCBzdHJpbmcgYXMgU3RyaW5nQnVmZmVyIHRvIGJlIHByb2Nlc3NlZAorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIFN0cmluZ0J1ZmZlciB0aGUgY29udmVydGVkIFN0cmluZworICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBjb252ZXJ0SUROVG9Vbmljb2RlKFN0cmluZ0J1ZmZlciBzcmMsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICByZXR1cm4gY29udmVydElETlRvVW5pY29kZShzcmMudG9TdHJpbmcoKSwgb3B0aW9ucyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyB0aGUgSUROVG9Vbmljb2RlIG9wZXJhdGlvbiBhcyBkZWZpbmVkIGluIHRoZSBJRE5BIFJGQy4KKyAgICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBkb25lIG9uIGNvbXBsZXRlIGRvbWFpbiBuYW1lcywgZS5nOiAid3d3LmV4YW1wbGUuY29tIi4gCisgICAgICoKKyAgICAgKiA8Yj5Ob3RlOjwvYj4gSUROQSBSRkMgc3BlY2lmaWVzIHRoYXQgYSBjb25mb3JtYW50IGFwcGxpY2F0aW9uIHNob3VsZCBkaXZpZGUgYSBkb21haW4gbmFtZQorICAgICAqIGludG8gc2VwYXJhdGUgbGFiZWxzLCBkZWNpZGUgd2hldGhlciB0byBhcHBseSBhbGxvd1VuYXNzaWduZWQgYW5kIHVzZVNURDNBU0NJSVJ1bGVzIG9uIGVhY2gsIAorICAgICAqIGFuZCB0aGVuIGNvbnZlcnQuIFRoaXMgZnVuY3Rpb24gZG9lcyBub3Qgb2ZmZXIgdGhhdCBsZXZlbCBvZiBncmFudWxhcml0eS4gVGhlIG9wdGlvbnMgb25jZSAgCisgICAgICogc2V0IHdpbGwgYXBwbHkgdG8gYWxsIGxhYmVscyBpbiB0aGUgZG9tYWluIG5hbWUKKyAgICAgKgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGlucHV0IHN0cmluZyB0byBiZSBwcm9jZXNzZWQKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAtIElETkEuREVGQVVMVCAgICAgICAgICAgICAgVXNlIGRlZmF1bHQgb3B0aW9ucywgaS5lLiwgZG8gbm90IHByb2Nlc3MgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIG5vdCB1c2UgU1REMyBBU0NJSSBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgZm91bmQgdGhlIG9wZXJhdGlvbiBmYWlscyB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VFeGNlcHRpb24uCisgICAgICoKKyAgICAgKiAgLSBJRE5BLkFMTE9XX1VOQVNTSUdORUQgICAgIFVuYXNzaWduZWQgdmFsdWVzIGNhbiBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgZm9yIHF1ZXJ5IG9wZXJhdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCwgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBVbmljb2RlIGNvZGUgcG9pbnRzLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgKiAgLSBJRE5BLlVTRV9TVEQzX1JVTEVTICAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiBTdHJpbmdCdWZmZXIgdGhlIGNvbnZlcnRlZCBTdHJpbmcKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgY29udmVydElETlRvVW5pY29kZShTdHJpbmcgc3JjLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgICAgIAorICAgICAgICBjaGFyW10gc3JjQXJyID0gc3JjLnRvQ2hhckFycmF5KCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBzZXBJbmRleD0wOworICAgICAgICBpbnQgb2xkU2VwSW5kZXg9MDsKKyAgICAgICAgZm9yKDs7KXsKKyAgICAgICAgICAgIHNlcEluZGV4ID0gZ2V0U2VwYXJhdG9ySW5kZXgoc3JjQXJyLHNlcEluZGV4LHNyY0Fyci5sZW5ndGgpOworICAgICAgICAgICAgU3RyaW5nIGxhYmVsID0gbmV3IFN0cmluZyhzcmNBcnIsb2xkU2VwSW5kZXgsc2VwSW5kZXgtb2xkU2VwSW5kZXgpOworICAgICAgICAgICAgaWYobGFiZWwubGVuZ3RoKCk9PTAgJiYgc2VwSW5kZXghPXNyY0Fyci5sZW5ndGggKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJGb3VuZCB6ZXJvIGxlbmd0aCBsYWJsZSBhZnRlciBOYW1lUHJlcC4iLFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5aRVJPX0xFTkdUSF9MQUJFTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgaXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShsYWJlbCk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNvbnZlcnRUb1VuaWNvZGUoaXRlcixvcHRpb25zKSk7CisgICAgICAgICAgICBpZihzZXBJbmRleD09c3JjQXJyLmxlbmd0aCl7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpbmNyZW1lbnQgdGhlIHNlcEluZGV4IHRvIHNraXAgcGFzdCB0aGUgc2VwYXJhdG9yCisgICAgICAgICAgICBzZXBJbmRleCsrOworICAgICAgICAgICAgb2xkU2VwSW5kZXggPXNlcEluZGV4OworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgoY2hhcilGVUxMX1NUT1ApOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIElETiBzdHJpbmdzIGZvciBlcXVpdmFsZW5jZS4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHNwbGl0cyB0aGUgZG9tYWluIG5hbWVzIGludG8gbGFiZWxzIGFuZCBjb21wYXJlcyB0aGVtLgorICAgICAqIEFjY29yZGluZyB0byBJRE4gUkZDLCB3aGVuZXZlciB0d28gbGFiZWxzIGFyZSBjb21wYXJlZCwgdGhleSBhcmUgCisgICAgICogY29uc2lkZXJlZCBlcXVhbCBpZiBhbmQgb25seSBpZiB0aGVpciBBU0NJSSBmb3JtcyAob2J0YWluZWQgYnkgCisgICAgICogYXBwbHlpbmcgdG9BU0NJSSkgbWF0Y2ggdXNpbmcgYW4gY2FzZS1pbnNlbnNpdGl2ZSBBU0NJSSBjb21wYXJpc29uLgorICAgICAqIFR3byBkb21haW4gbmFtZXMgYXJlIGNvbnNpZGVyZWQgYSBtYXRjaCBpZiBhbmQgb25seSBpZiBhbGwgbGFiZWxzIAorICAgICAqIG1hdGNoIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBsYWJlbCBzZXBhcmF0b3JzIG1hdGNoLgorICAgICAqIAorICAgICAqIEBwYXJhbSBzMSAgICAgICAgRmlyc3QgSUROIHN0cmluZyBhcyBTdHJpbmdCdWZmZXIKKyAgICAgKiBAcGFyYW0gczIgICAgICAgIFNlY29uZCBJRE4gc3RyaW5nIGFzIFN0cmluZ0J1ZmZlcgorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICBVbmFzc2lnbmVkIHZhbHVlcyBjYW4gYmUgY29udmVydGVkIHRvIEFTQ0lJIGZvciBxdWVyeSBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIHRoZSB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBpbiB0aGUgaW5wdXQgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgdHJlYXRlZCBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICogIC0gSUROQS5VU0VfU1REM19SVUxFUyAgICAgIFVzZSBTVEQzIEFTQ0lJIHJ1bGVzIGZvciBob3N0IG5hbWUgc3ludGF4IHJlc3RyaWN0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0IGFuZCB0aGUgaW5wdXQgZG9lcyBub3Qgc2F0aXNmeSBTVEQzIHJ1bGVzLCAgCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3BlcmF0aW9uIHdpbGwgZmFpbCB3aXRoIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHJldHVybiAwIGlmIHRoZSBzdHJpbmdzIGFyZSBlcXVhbCwgPiAwIGlmIHMxID4gczIgYW5kIDwgMCBpZiBzMSA8IHMyCisgICAgICogQHRocm93cyBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIC8vICBUT0RPOiBvcHRpbWl6ZQorICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbXBhcmUoU3RyaW5nQnVmZmVyIHMxLCBTdHJpbmdCdWZmZXIgczIsIGludCBvcHRpb25zKQorICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICBpZihzMT09bnVsbCB8fCBzMiA9PSBudWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk9uZSBvZiB0aGUgc291cmNlIGJ1ZmZlcnMgaXMgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMU91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKHMxLnRvU3RyaW5nKCksb3B0aW9ucyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMk91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKHMyLnRvU3RyaW5nKCksIG9wdGlvbnMpOworICAgICAgICByZXR1cm4gY29tcGFyZUNhc2VJbnNlbnNpdGl2ZUFTQ0lJKHMxT3V0LHMyT3V0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0d28gSUROIHN0cmluZ3MgZm9yIGVxdWl2YWxlbmNlLgorICAgICAqIFRoaXMgZnVuY3Rpb24gc3BsaXRzIHRoZSBkb21haW4gbmFtZXMgaW50byBsYWJlbHMgYW5kIGNvbXBhcmVzIHRoZW0uCisgICAgICogQWNjb3JkaW5nIHRvIElETiBSRkMsIHdoZW5ldmVyIHR3byBsYWJlbHMgYXJlIGNvbXBhcmVkLCB0aGV5IGFyZSAKKyAgICAgKiBjb25zaWRlcmVkIGVxdWFsIGlmIGFuZCBvbmx5IGlmIHRoZWlyIEFTQ0lJIGZvcm1zIChvYnRhaW5lZCBieSAKKyAgICAgKiBhcHBseWluZyB0b0FTQ0lJKSBtYXRjaCB1c2luZyBhbiBjYXNlLWluc2Vuc2l0aXZlIEFTQ0lJIGNvbXBhcmlzb24uCisgICAgICogVHdvIGRvbWFpbiBuYW1lcyBhcmUgY29uc2lkZXJlZCBhIG1hdGNoIGlmIGFuZCBvbmx5IGlmIGFsbCBsYWJlbHMgCisgICAgICogbWF0Y2ggcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGxhYmVsIHNlcGFyYXRvcnMgbWF0Y2guCisgICAgICogCisgICAgICogQHBhcmFtIHMxICAgICAgICBGaXJzdCBJRE4gc3RyaW5nIAorICAgICAqIEBwYXJhbSBzMiAgICAgICAgU2Vjb25kIElETiBzdHJpbmcKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqICAtIElETkEuREVGQVVMVCAgICAgICAgICAgICAgVXNlIGRlZmF1bHQgb3B0aW9ucywgaS5lLiwgZG8gbm90IHByb2Nlc3MgdW5hc3NpZ25lZCBjb2RlIHBvaW50cworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIG5vdCB1c2UgU1REMyBBU0NJSSBydWxlcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgZm91bmQgdGhlIG9wZXJhdGlvbiBmYWlscyB3aXRoIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VFeGNlcHRpb24uCisgICAgICoKKyAgICAgKiAgLSBJRE5BLkFMTE9XX1VOQVNTSUdORUQgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICBVc2UgU1REMyBBU0NJSSBydWxlcyBmb3IgaG9zdCBuYW1lIHN5bnRheCByZXN0cmljdGlvbnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIHNldCBhbmQgdGhlIGlucHV0IGRvZXMgbm90IHNhdGlzZnkgU1REMyBydWxlcywgIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBQYXJzZUV4Y2VwdGlvbgorICAgICAqIEByZXR1cm4gMCBpZiB0aGUgc3RyaW5ncyBhcmUgZXF1YWwsID4gMCBpZiBzMSA+IHMyIGFuZCA8IDAgaWYgczEgPCBzMgorICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICAvLyAgVE9ETzogb3B0aW1pemUKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKFN0cmluZyBzMSwgU3RyaW5nIHMyLCBpbnQgb3B0aW9ucykKKyAgICAgICAgdGhyb3dzIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbnsKKyAgICAgICAgaWYoczE9PW51bGwgfHwgczIgPT0gbnVsbCl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPbmUgb2YgdGhlIHNvdXJjZSBidWZmZXJzIGlzIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgczFPdXQgPSBjb252ZXJ0SUROVG9BU0NJSShzMSwgb3B0aW9ucyk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzMk91dCA9IGNvbnZlcnRJRE5Ub0FTQ0lJKHMyLCBvcHRpb25zKTsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVDYXNlSW5zZW5zaXRpdmVBU0NJSShzMU91dCxzMk91dCk7CisgICAgfQorICAgIC8qKgorICAgICAqIENvbXBhcmUgdHdvIElETiBzdHJpbmdzIGZvciBlcXVpdmFsZW5jZS4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHNwbGl0cyB0aGUgZG9tYWluIG5hbWVzIGludG8gbGFiZWxzIGFuZCBjb21wYXJlcyB0aGVtLgorICAgICAqIEFjY29yZGluZyB0byBJRE4gUkZDLCB3aGVuZXZlciB0d28gbGFiZWxzIGFyZSBjb21wYXJlZCwgdGhleSBhcmUgCisgICAgICogY29uc2lkZXJlZCBlcXVhbCBpZiBhbmQgb25seSBpZiB0aGVpciBBU0NJSSBmb3JtcyAob2J0YWluZWQgYnkgCisgICAgICogYXBwbHlpbmcgdG9BU0NJSSkgbWF0Y2ggdXNpbmcgYW4gY2FzZS1pbnNlbnNpdGl2ZSBBU0NJSSBjb21wYXJpc29uLgorICAgICAqIFR3byBkb21haW4gbmFtZXMgYXJlIGNvbnNpZGVyZWQgYSBtYXRjaCBpZiBhbmQgb25seSBpZiBhbGwgbGFiZWxzIAorICAgICAqIG1hdGNoIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBsYWJlbCBzZXBhcmF0b3JzIG1hdGNoLgorICAgICAqIAorICAgICAqIEBwYXJhbSBzMSAgICAgICAgRmlyc3QgSUROIHN0cmluZyBhcyBVQ2hhcmFjdGVySXRlcmF0b3IKKyAgICAgKiBAcGFyYW0gczIgICAgICAgIFNlY29uZCBJRE4gc3RyaW5nIGFzIFVDaGFyYWN0ZXJJdGVyYXRvcgorICAgICAqIEBwYXJhbSBvcHRpb25zICAgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogIC0gSUROQS5ERUZBVUxUICAgICAgICAgICAgICBVc2UgZGVmYXVsdCBvcHRpb25zLCBpLmUuLCBkbyBub3QgcHJvY2VzcyB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZG8gbm90IHVzZSBTVEQzIEFTQ0lJIHJ1bGVzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGFyZSBmb3VuZCB0aGUgb3BlcmF0aW9uIGZhaWxzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUV4Y2VwdGlvbi4KKyAgICAgKgorICAgICAqICAtIElETkEuQUxMT1dfVU5BU1NJR05FRCAgICAgVW5hc3NpZ25lZCB2YWx1ZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBBU0NJSSBmb3IgcXVlcnkgb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhpcyBvcHRpb24gaXMgc2V0LCB0aGUgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBhcmUgaW4gdGhlIGlucHV0IAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIFVuaWNvZGUgY29kZSBwb2ludHMuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAqICAtIElETkEuVVNFX1NURDNfUlVMRVMgICAgICAgVXNlIFNURDMgQVNDSUkgcnVsZXMgZm9yIGhvc3QgbmFtZSBzeW50YXggcmVzdHJpY3Rpb25zCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgYW5kIHRoZSBpbnB1dCBkb2VzIG5vdCBzYXRpc2Z5IFNURDMgcnVsZXMsICAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAcmV0dXJuIDAgaWYgdGhlIHN0cmluZ3MgYXJlIGVxdWFsLCA+IDAgaWYgaTEgPiBpMiBhbmQgPCAwIGlmIGkxIDwgaTIKKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgLy8gIFRPRE86IG9wdGltaXplCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShVQ2hhcmFjdGVySXRlcmF0b3IgczEsIFVDaGFyYWN0ZXJJdGVyYXRvciBzMiwgaW50IG9wdGlvbnMpCisgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIGlmKHMxPT1udWxsIHx8IHMyID09IG51bGwpeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiT25lIG9mIHRoZSBzb3VyY2UgYnVmZmVycyBpcyBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nQnVmZmVyIHMxT3V0ID0gY29udmVydElETlRvQVNDSUkoczEuZ2V0VGV4dCgpLCBvcHRpb25zKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHMyT3V0ID0gY29udmVydElETlRvQVNDSUkoczIuZ2V0VGV4dCgpLCBvcHRpb25zKTsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVDYXNlSW5zZW5zaXRpdmVBU0NJSShzMU91dCxzMk91dCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0xvd2VyY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTcxM2E3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L0xvd2VyY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2FzZVByb3BzOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvcjsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgcGVyZm9ybXMgbG9jYWxlLXNlbnNpdGl2ZSB0b0xvd2VyKCkKKyAqIGNhc2UgbWFwcGluZy4KKyAqLworY2xhc3MgTG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvcnsKKworICAgIC8qKgorICAgICAqIFBhY2thZ2UgYWNjZXNzaWJsZSBJRC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIF9JRCA9ICJBbnktTG93ZXIiOworICAgIAorICAgIC8vIFRPRE86IEFkZCB2YXJpYW50cyBmb3IgdHIsIGF6LCBsdCwgZGVmYXVsdCA9IGRlZmF1bHQgbG9jYWxlCisKKyAgICAvKioKKyAgICAgKiBTeXN0ZW0gcmVnaXN0cmF0aW9uIGhvb2suCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXIoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShfSUQsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IoVUxvY2FsZS5VUyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyU3BlY2lhbEludmVyc2UoIkxvd2VyIiwgIlVwcGVyIiwgdHJ1ZSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBVTG9jYWxlIGxvY2FsZTsKKworICAgIHByaXZhdGUgVUNhc2VQcm9wcyBjc3A7CisgICAgcHJpdmF0ZSBSZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvciBpdGVyOworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIHJlc3VsdDsKKyAgICBwcml2YXRlIGludFtdIGxvY0NhY2hlOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworCisgICAgcHVibGljIExvd2VyY2FzZVRyYW5zbGl0ZXJhdG9yKFVMb2NhbGUgbG9jKSB7CisgICAgICAgIHN1cGVyKF9JRCwgbnVsbCk7CisgICAgICAgIGxvY2FsZSA9IGxvYzsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNzcD1VQ2FzZVByb3BzLmdldFNpbmdsZXRvbigpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBjc3A9bnVsbDsKKyAgICAgICAgfQorICAgICAgICBpdGVyPW5ldyBSZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvcigpOworICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludFtdIGxvY0NhY2hlID0gbmV3IGludFsxXTsKKyAgICAgICAgbG9jQ2FjaGVbMF09MDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgaWYoY3NwPT1udWxsKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZihvZmZzZXRzLnN0YXJ0ID49IG9mZnNldHMubGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSAKKworICAgICAgICBpdGVyLnNldFRleHQodGV4dCk7CisgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgoMCk7CisgICAgICAgIGludCBjLCBkZWx0YTsKKworICAgICAgICAvLyBXYWxrIHRocm91Z2ggb3JpZ2luYWwgc3RyaW5nCisgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgY2FzZSBjaGFuZ2UsIG1vZGlmeSBjb3JyZXNwb25kaW5nIHBvc2l0aW9uIGluIHJlcGxhY2VhYmxlCisKKyAgICAgICAgaXRlci5zZXRJbmRleChvZmZzZXRzLnN0YXJ0KTsKKyAgICAgICAgaXRlci5zZXRMaW1pdChvZmZzZXRzLmxpbWl0KTsKKyAgICAgICAgaXRlci5zZXRDb250ZXh0TGltaXRzKG9mZnNldHMuY29udGV4dFN0YXJ0LCBvZmZzZXRzLmNvbnRleHRMaW1pdCk7CisgICAgICAgIHdoaWxlKChjPWl0ZXIubmV4dENhc2VNYXBDUCgpKT49MCkgeworICAgICAgICAgICAgYz1jc3AudG9GdWxsTG93ZXIoYywgaXRlciwgcmVzdWx0LCBsb2NhbGUsIGxvY0NhY2hlKTsKKworICAgICAgICAgICAgaWYoaXRlci5kaWRSZWFjaExpbWl0KCkgJiYgaXNJbmNyZW1lbnRhbCkgeworICAgICAgICAgICAgICAgIC8vIHRoZSBjYXNlIG1hcHBpbmcgZnVuY3Rpb24gdHJpZWQgdG8gbG9vayBiZXlvbmQgdGhlIGNvbnRleHQgbGltaXQKKyAgICAgICAgICAgICAgICAvLyB3YWl0IGZvciBtb3JlIGlucHV0CisgICAgICAgICAgICAgICAgb2Zmc2V0cy5zdGFydD1pdGVyLmdldENhc2VNYXBDUFN0YXJ0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBkZWNvZGUgdGhlIHJlc3VsdCAqLworICAgICAgICAgICAgaWYoYzwwKSB7CisgICAgICAgICAgICAgICAgLyogYyBtYXBwZWQgdG8gaXRzZWxmLCBubyBjaGFuZ2UgKi8KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZihjPD1VQ2FzZVByb3BzLk1BWF9TVFJJTkdfTEVOR1RIKSB7CisgICAgICAgICAgICAgICAgLyogcmVwbGFjZSBieSB0aGUgbWFwcGluZyBzdHJpbmcgKi8KKyAgICAgICAgICAgICAgICBkZWx0YT1pdGVyLnJlcGxhY2UocmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIHJlcGxhY2UgYnkgc2luZ2xlLWNvZGUgcG9pbnQgbWFwcGluZyAqLworICAgICAgICAgICAgICAgIGRlbHRhPWl0ZXIucmVwbGFjZShVVEYxNi52YWx1ZU9mKGMpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYoZGVsdGEhPTApIHsKKyAgICAgICAgICAgICAgICBvZmZzZXRzLmxpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgICAgIG9mZnNldHMuY29udGV4dExpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG9mZnNldHMuc3RhcnQgPSBvZmZzZXRzLmxpbWl0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L01lYXN1cmVGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L01lYXN1cmVGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTZhZDNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTWVhc3VyZUZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsNTggQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IEFwcmlsIDIwLCAyMDA0CisqIFNpbmNlOiBJQ1UgMy4wCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIEEgZm9ybWF0dGVyIGZvciBNZWFzdXJlIG9iamVjdHMuICBUaGlzIGlzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MuCisgKgorICogPHA+VG8gZm9ybWF0IG9yIHBhcnNlIGEgTWVhc3VyZSBvYmplY3QsIGZpcnN0IGNyZWF0ZSBhIGZvcm1hdHRlcgorICogb2JqZWN0IHVzaW5nIGEgTWVhc3VyZUZvcm1hdCBmYWN0b3J5IG1ldGhvZC4gIFRoZW4gdXNlIHRoYXQKKyAqIG9iamVjdCdzIGZvcm1hdCBhbmQgcGFyc2UgbWV0aG9kcy4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuVUZvcm1hdAorICogQGF1dGhvciBBbGFuIExpdQorICogQGRyYWZ0IElDVSAzLjAKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTWVhc3VyZUZvcm1hdCBleHRlbmRzIFVGb3JtYXQgeworICAgIC8vIEdlbmVyYXRlZCBieSBzZXJpYWx2ZXIgZnJvbSBKREsgMS40LjFfMDEKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTcxODIwMjE0MDE3MDE3NzgyNDBMOworCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIE1lYXN1cmVGb3JtYXQoKSB7fTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBmb3JtYXR0ZXIgZm9yIEN1cnJlbmN5QW1vdW50IG9iamVjdHMgaW4gdGhlIGdpdmVuCisgICAgICogbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgZGVzaXJlZCBsb2NhbGUKKyAgICAgKiBAcmV0dXJuIGEgZm9ybWF0dGVyIG9iamVjdAorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBNZWFzdXJlRm9ybWF0IGdldEN1cnJlbmN5Rm9ybWF0KFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBuZXcgQ3VycmVuY3lGb3JtYXQobG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBmb3JtYXR0ZXIgZm9yIEN1cnJlbmN5QW1vdW50IG9iamVjdHMgaW4gdGhlIGRlZmF1bHQKKyAgICAgKiBsb2NhbGUuCisgICAgICogQHJldHVybiBhIGZvcm1hdHRlciBvYmplY3QKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTWVhc3VyZUZvcm1hdCBnZXRDdXJyZW5jeUZvcm1hdCgpIHsKKyAgICAgICAgcmV0dXJuIGdldEN1cnJlbmN5Rm9ybWF0KFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9NZXNzYWdlRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9NZXNzYWdlRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM4MjdhNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L01lc3NhZ2VGb3JtYXQuamF2YQpAQCAtMCwwICsxLDE3MTYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoYykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBdXRob3I6IEFsYW4gTGl1CisqIENyZWF0ZWQ6IEFwcmlsIDYsIDIwMDQKKyogU2luY2U6IElDVSAzLjAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW52YWxpZE9iamVjdEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEudGV4dC5DaG9pY2VGb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0LkZvcm1hdDsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJ1bGVCYXNlZE51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKKy8qKgorICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gcHJvdmlkZXMgYSBtZWFucyB0byBwcm9kdWNlIGNvbmNhdGVuYXRlZAorICogbWVzc2FnZXMgaW4gbGFuZ3VhZ2UtbmV1dHJhbCB3YXkuIFVzZSB0aGlzIHRvIGNvbnN0cnVjdCBtZXNzYWdlcworICogZGlzcGxheWVkIGZvciBlbmQgdXNlcnMuCisgKgorICogPHA+CisgKiA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiB0YWtlcyBhIHNldCBvZiBvYmplY3RzLCBmb3JtYXRzIHRoZW0sIHRoZW4KKyAqIGluc2VydHMgdGhlIGZvcm1hdHRlZCBzdHJpbmdzIGludG8gdGhlIHBhdHRlcm4gYXQgdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4KKyAqIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IGRpZmZlcnMgZnJvbSB0aGUgb3RoZXIgPGNvZGU+Rm9ybWF0PC9jb2RlPgorICogY2xhc3NlcyBpbiB0aGF0IHlvdSBjcmVhdGUgYSA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiBvYmplY3Qgd2l0aCBvbmUKKyAqIG9mIGl0cyBjb25zdHJ1Y3RvcnMgKG5vdCB3aXRoIGEgPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+IHN0eWxlIGZhY3RvcnkKKyAqIG1ldGhvZCkuIFRoZSBmYWN0b3J5IG1ldGhvZHMgYXJlbid0IG5lY2Vzc2FyeSBiZWNhdXNlIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+CisgKiBpdHNlbGYgZG9lc24ndCBpbXBsZW1lbnQgbG9jYWxlIHNwZWNpZmljIGJlaGF2aW9yLiBBbnkgbG9jYWxlIHNwZWNpZmljCisgKiBiZWhhdmlvciBpcyBkZWZpbmVkIGJ5IHRoZSBwYXR0ZXJuIHRoYXQgeW91IHByb3ZpZGUgYXMgd2VsbCBhcyB0aGUKKyAqIHN1YmZvcm1hdHMgdXNlZCBmb3IgaW5zZXJ0ZWQgYXJndW1lbnRzLgorICoKKyAqIDxoND48YSBuYW1lPSJwYXR0ZXJucyI+UGF0dGVybnMgYW5kIFRoZWlyIEludGVycHJldGF0aW9uPC9hPjwvaDQ+CisgKgorICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gdXNlcyBwYXR0ZXJucyBvZiB0aGUgZm9sbG93aW5nIGZvcm06CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogPGk+TWVzc2FnZUZvcm1hdFBhdHRlcm46PC9pPgorICogICAgICAgICA8aT5TdHJpbmc8L2k+CisgKiAgICAgICAgIDxpPk1lc3NhZ2VGb3JtYXRQYXR0ZXJuPC9pPiA8aT5Gb3JtYXRFbGVtZW50PC9pPiA8aT5TdHJpbmc8L2k+CisgKgorICogPGk+Rm9ybWF0RWxlbWVudDo8L2k+CisgKiAgICAgICAgIHsgPGk+QXJndW1lbnRJbmRleDwvaT4gfQorICogICAgICAgICB7IDxpPkFyZ3VtZW50SW5kZXg8L2k+ICwgPGk+Rm9ybWF0VHlwZTwvaT4gfQorICogICAgICAgICB7IDxpPkFyZ3VtZW50SW5kZXg8L2k+ICwgPGk+Rm9ybWF0VHlwZTwvaT4gLCA8aT5Gb3JtYXRTdHlsZTwvaT4gfQorICoKKyAqIDxpPkZvcm1hdFR5cGU6IG9uZSBvZiA8L2k+CisgKiAgICAgICAgIG51bWJlciBkYXRlIHRpbWUgY2hvaWNlCisgKgorICogPGk+Rm9ybWF0U3R5bGU6PC9pPgorICogICAgICAgICBzaG9ydAorICogICAgICAgICBtZWRpdW0KKyAqICAgICAgICAgbG9uZworICogICAgICAgICBmdWxsCisgKiAgICAgICAgIGludGVnZXIKKyAqICAgICAgICAgY3VycmVuY3kKKyAqICAgICAgICAgcGVyY2VudAorICogICAgICAgICA8aT5TdWJmb3JtYXRQYXR0ZXJuPC9pPgorICoKKyAqIDxpPlN0cmluZzo8L2k+CisgKiAgICAgICAgIDxpPlN0cmluZ1BhcnQ8c3ViPm9wdDwvc3ViPjwvaT4KKyAqICAgICAgICAgPGk+U3RyaW5nPC9pPiA8aT5TdHJpbmdQYXJ0PC9pPgorICoKKyAqIDxpPlN0cmluZ1BhcnQ6PC9pPgorICogICAgICAgICAnJworICogICAgICAgICAnIDxpPlF1b3RlZFN0cmluZzwvaT4gJworICogICAgICAgICA8aT5VbnF1b3RlZFN0cmluZzwvaT4KKyAqCisgKiA8aT5TdWJmb3JtYXRQYXR0ZXJuOjwvaT4KKyAqICAgICAgICAgPGk+U3ViZm9ybWF0UGF0dGVyblBhcnQ8c3ViPm9wdDwvc3ViPjwvaT4KKyAqICAgICAgICAgPGk+U3ViZm9ybWF0UGF0dGVybjwvaT4gPGk+U3ViZm9ybWF0UGF0dGVyblBhcnQ8L2k+CisgKgorICogPGk+U3ViRm9ybWF0UGF0dGVyblBhcnQ6PC9pPgorICogICAgICAgICAnIDxpPlF1b3RlZFBhdHRlcm48L2k+ICcKKyAqICAgICAgICAgPGk+VW5xdW90ZWRQYXR0ZXJuPC9pPgorICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPgorICogV2l0aGluIGEgPGk+U3RyaW5nPC9pPiwgPGNvZGU+IicnIjwvY29kZT4gcmVwcmVzZW50cyBhIHNpbmdsZQorICogcXVvdGUuIEEgPGk+UXVvdGVkU3RyaW5nPC9pPiBjYW4gY29udGFpbiBhcmJpdHJhcnkgY2hhcmFjdGVycworICogZXhjZXB0IHNpbmdsZSBxdW90ZXM7IHRoZSBzdXJyb3VuZGluZyBzaW5nbGUgcXVvdGVzIGFyZSByZW1vdmVkLgorICogQW4gPGk+VW5xdW90ZWRTdHJpbmc8L2k+IGNhbiBjb250YWluIGFyYml0cmFyeSBjaGFyYWN0ZXJzCisgKiBleGNlcHQgc2luZ2xlIHF1b3RlcyBhbmQgbGVmdCBjdXJseSBicmFja2V0cy4gVGh1cywgYSBzdHJpbmcgdGhhdAorICogc2hvdWxkIHJlc3VsdCBpbiB0aGUgZm9ybWF0dGVkIG1lc3NhZ2UgIid7MH0nIiBjYW4gYmUgd3JpdHRlbiBhcworICogPGNvZGU+IicnJ3snMH0nJyI8L2NvZGU+IG9yIDxjb2RlPiInJyd7MH0nJyciPC9jb2RlPi4KKyAqIDxwPgorICogV2l0aGluIGEgPGk+U3ViZm9ybWF0UGF0dGVybjwvaT4sIGRpZmZlcmVudCBydWxlcyBhcHBseS4KKyAqIEEgPGk+UXVvdGVkUGF0dGVybjwvaT4gY2FuIGNvbnRhaW4gYXJiaXRyYXJ5IGNoYXJhY3RlcnMKKyAqIGV4Y2VwdCBzaW5nbGUgcXVvdGVzOyBidXQgdGhlIHN1cnJvdW5kaW5nIHNpbmdsZSBxdW90ZXMgYXJlCisgKiA8c3Ryb25nPm5vdDwvc3Ryb25nPiByZW1vdmVkLCBzbyB0aGV5IG1heSBiZSBpbnRlcnByZXRlZCBieSB0aGUKKyAqIHN1YmZvcm1hdC4gRm9yIGV4YW1wbGUsIDxjb2RlPiJ7MSxudW1iZXIsJCcjJywjI30iPC9jb2RlPiB3aWxsCisgKiBwcm9kdWNlIGEgbnVtYmVyIGZvcm1hdCB3aXRoIHRoZSBwb3VuZC1zaWduIHF1b3RlZCwgd2l0aCBhIHJlc3VsdAorICogc3VjaCBhczogIiQjMzEsNDUiLgorICogQW4gPGk+VW5xdW90ZWRQYXR0ZXJuPC9pPiBjYW4gY29udGFpbiBhcmJpdHJhcnkgY2hhcmFjdGVycworICogZXhjZXB0IHNpbmdsZSBxdW90ZXMsIGJ1dCBjdXJseSBicmFjZXMgd2l0aGluIGl0IG11c3QgYmUgYmFsYW5jZWQuCisgKiBGb3IgZXhhbXBsZSwgPGNvZGU+ImFiIHswfSBkZSI8L2NvZGU+IGFuZCA8Y29kZT4iYWIgJ30nIGRlIjwvY29kZT4KKyAqIGFyZSB2YWxpZCBzdWJmb3JtYXQgcGF0dGVybnMsIGJ1dCA8Y29kZT4iYWIgezAnfScgZGUiPC9jb2RlPiBhbmQKKyAqIDxjb2RlPiJhYiB9IGRlIjwvY29kZT4gYXJlIG5vdC4KKyAqIDxwPgorICogPGRsPjxkdD48Yj5XYXJuaW5nOjwvYj48ZGQ+VGhlIHJ1bGVzIGZvciB1c2luZyBxdW90ZXMgd2l0aGluIG1lc3NhZ2UKKyAqIGZvcm1hdCBwYXR0ZXJucyB1bmZvcnR1bmF0ZWx5IGhhdmUgc2hvd24gdG8gYmUgc29tZXdoYXQgY29uZnVzaW5nLgorICogSW4gcGFydGljdWxhciwgaXQgaXNuJ3QgYWx3YXlzIG9idmlvdXMgdG8gbG9jYWxpemVycyB3aGV0aGVyIHNpbmdsZQorICogcXVvdGVzIG5lZWQgdG8gYmUgZG91YmxlZCBvciBub3QuIE1ha2Ugc3VyZSB0byBpbmZvcm0gbG9jYWxpemVycyBhYm91dAorICogdGhlIHJ1bGVzLCBhbmQgdGVsbCB0aGVtIChmb3IgZXhhbXBsZSwgYnkgdXNpbmcgY29tbWVudHMgaW4gcmVzb3VyY2UKKyAqIGJ1bmRsZSBzb3VyY2UgZmlsZXMpIHdoaWNoIHN0cmluZ3Mgd2lsbCBiZSBwcm9jZXNzZWQgYnkgTWVzc2FnZUZvcm1hdC4KKyAqIE5vdGUgdGhhdCBsb2NhbGl6ZXJzIG1heSBuZWVkIHRvIHVzZSBzaW5nbGUgcXVvdGVzIGluIHRyYW5zbGF0ZWQKKyAqIHN0cmluZ3Mgd2hlcmUgdGhlIG9yaWdpbmFsIHZlcnNpb24gZG9lc24ndCBoYXZlIHRoZW0uCisgKiA8YnI+Tm90ZSBhbHNvIHRoYXQgdGhlIHNpbXBsZXN0IHdheSB0byBhdm9pZCB0aGUgcHJvYmxlbSBpcyB0bworICogdXNlIHRoZSByZWFsIGFwb3N0cm9waGUgKHNpbmdsZSBxdW90ZSkgY2hhcmFjdGVyIFx1MjAxOSAoJykgZm9yCisgKiBodW1hbi1yZWFkYWJsZSB0ZXh0LCBhbmQgdG8gdXNlIHRoZSBBU0NJSSBhcG9zdHJvcGhlIChcdTAwMjcgJyApCisgKiBvbmx5IGluIHByb2dyYW0gc3ludGF4LCBsaWtlIHF1b3RpbmcgaW4gTWVzc2FnZUZvcm1hdC4KKyAqIFNlZSB0aGUgYW5ub3RhdGlvbnMgZm9yIFUrMDAyNyBBcG9zdHJvcGhlIGluIFRoZSBVbmljb2RlIFN0YW5kYXJkLjwvcD4KKyAqIDwvZGw+CisgKiA8cD4KKyAqIFRoZSA8aT5Bcmd1bWVudEluZGV4PC9pPiB2YWx1ZSBpcyBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHdyaXR0ZW4KKyAqIHVzaW5nIHRoZSBkaWdpdHMgJzAnIHRocm91Z2ggJzknLCBhbmQgcmVwcmVzZW50cyBhbiBpbmRleCBpbnRvIHRoZQorICogPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQgdG8gdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcworICogb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZCBieSB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgKiA8cD4KKyAqIFRoZSA8aT5Gb3JtYXRUeXBlPC9pPiBhbmQgPGk+Rm9ybWF0U3R5bGU8L2k+IHZhbHVlcyBhcmUgdXNlZCB0byBjcmVhdGUKKyAqIGEgPGNvZGU+Rm9ybWF0PC9jb2RlPiBpbnN0YW5jZSBmb3IgdGhlIGZvcm1hdCBlbGVtZW50LiBUaGUgZm9sbG93aW5nCisgKiB0YWJsZSBzaG93cyBob3cgdGhlIHZhbHVlcyBtYXAgdG8gRm9ybWF0IGluc3RhbmNlcy4gQ29tYmluYXRpb25zIG5vdAorICogc2hvd24gaW4gdGhlIHRhYmxlIGFyZSBpbGxlZ2FsLiBBIDxpPlN1YmZvcm1hdFBhdHRlcm48L2k+IG11c3QKKyAqIGJlIGEgdmFsaWQgcGF0dGVybiBzdHJpbmcgZm9yIHRoZSBGb3JtYXQgc3ViY2xhc3MgdXNlZC4KKyAqIDxwPgorICogPHRhYmxlIGJvcmRlcj0xPgorICogICAgPHRyPgorICogICAgICAgPHRoPkZvcm1hdCBUeXBlCisgKiAgICAgICA8dGg+Rm9ybWF0IFN0eWxlCisgKiAgICAgICA8dGg+U3ViZm9ybWF0IENyZWF0ZWQKKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZCBjb2xzcGFuPTI+PGk+KG5vbmUpPC9pPgorICogICAgICAgPHRkPjxjb2RlPm51bGw8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQgcm93c3Bhbj01Pjxjb2RlPm51bWJlcjwvY29kZT4KKyAqICAgICAgIDx0ZD48aT4obm9uZSk8L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+TnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5pbnRlZ2VyPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UoZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPmN1cnJlbmN5PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5wZXJjZW50PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPk51bWJlckZvcm1hdC5nZXRQZXJjZW50SW5zdGFuY2UoZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IERlY2ltYWxGb3JtYXQoc3ViZm9ybWF0UGF0dGVybiwgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGdldExvY2FsZSgpKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQgcm93c3Bhbj02Pjxjb2RlPmRhdGU8L2NvZGU+CisgKiAgICAgICA8dGQ+PGk+KG5vbmUpPC9pPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPnNob3J0PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5tZWRpdW08L2NvZGU+CisgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+bG9uZzwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5mdWxsPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IFNpbXBsZURhdGVGb3JtYXQoc3ViZm9ybWF0UGF0dGVybiwgZ2V0TG9jYWxlKCkpCisgKiAgICA8dHI+CisgKiAgICAgICA8dGQgcm93c3Bhbj02Pjxjb2RlPnRpbWU8L2NvZGU+CisgKiAgICAgICA8dGQ+PGk+KG5vbmUpPC9pPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxjb2RlPnNob3J0PC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5tZWRpdW08L2NvZGU+CisgKiAgICAgICA8dGQ+PGNvZGU+RGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCBnZXRMb2NhbGUoKSk8L2NvZGU+CisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+bG9uZzwvY29kZT4KKyAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkxPTkcsIGdldExvY2FsZSgpKTwvY29kZT4KKyAqICAgIDx0cj4KKyAqICAgICAgIDx0ZD48Y29kZT5mdWxsPC9jb2RlPgorICogICAgICAgPHRkPjxjb2RlPkRhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgZ2V0TG9jYWxlKCkpPC9jb2RlPgorICogICAgPHRyPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IFNpbXBsZURhdGVGb3JtYXQoc3ViZm9ybWF0UGF0dGVybiwgZ2V0TG9jYWxlKCkpCisgKiAgICA8dHI+CisgKiAgICAgICA8dGQ+PGNvZGU+Y2hvaWNlPC9jb2RlPgorICogICAgICAgPHRkPjxpPlN1YmZvcm1hdFBhdHRlcm48L2k+CisgKiAgICAgICA8dGQ+PGNvZGU+bmV3IENob2ljZUZvcm1hdChzdWJmb3JtYXRQYXR0ZXJuKTwvY29kZT4KKyAqIDwvdGFibGU+CisgKiA8cD4KKyAqCisgKiA8aDQ+VXNhZ2UgSW5mb3JtYXRpb248L2g0PgorICoKKyAqIDxwPgorICogSGVyZSBhcmUgc29tZSBleGFtcGxlcyBvZiB1c2FnZToKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE9iamVjdFtdIGFyZ3VtZW50cyA9IHsKKyAqICAgICBuZXcgSW50ZWdlcig3KSwKKyAqICAgICBuZXcgRGF0ZShTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSksCisgKiAgICAgImEgZGlzdHVyYmFuY2UgaW4gdGhlIEZvcmNlIgorICogfTsKKyAqCisgKiBTdHJpbmcgcmVzdWx0ID0gTWVzc2FnZUZvcm1hdC5mb3JtYXQoCisgKiAgICAgIkF0IHsxLHRpbWV9IG9uIHsxLGRhdGV9LCB0aGVyZSB3YXMgezJ9IG9uIHBsYW5ldCB7MCxudW1iZXIsaW50ZWdlcn0uIiwKKyAqICAgICBhcmd1bWVudHMpOworICoKKyAqIDxlbT5vdXRwdXQ8L2VtPjogQXQgMTI6MzAgUE0gb24gSnVsIDMsIDIwNTMsIHRoZXJlIHdhcyBhIGRpc3R1cmJhbmNlCisgKiAgICAgICAgICAgaW4gdGhlIEZvcmNlIG9uIHBsYW5ldCA3LgorICoKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogVHlwaWNhbGx5LCB0aGUgbWVzc2FnZSBmb3JtYXQgd2lsbCBjb21lIGZyb20gcmVzb3VyY2VzLCBhbmQgdGhlCisgKiBhcmd1bWVudHMgd2lsbCBiZSBkeW5hbWljYWxseSBzZXQgYXQgcnVudGltZS4KKyAqCisgKiA8cD4KKyAqIEV4YW1wbGUgMjoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE9iamVjdFtdIHRlc3RBcmdzID0ge25ldyBMb25nKDMpLCAiTXlEaXNrIn07CisgKgorICogTWVzc2FnZUZvcm1hdCBmb3JtID0gbmV3IE1lc3NhZ2VGb3JtYXQoCisgKiAgICAgIlRoZSBkaXNrIFwiezF9XCIgY29udGFpbnMgezB9IGZpbGUocykuIik7CisgKgorICogU3lzdGVtLm91dC5wcmludGxuKGZvcm0uZm9ybWF0KHRlc3RBcmdzKSk7CisgKgorICogLy8gb3V0cHV0LCB3aXRoIGRpZmZlcmVudCB0ZXN0QXJncworICogPGVtPm91dHB1dDwvZW0+OiBUaGUgZGlzayAiTXlEaXNrIiBjb250YWlucyAwIGZpbGUocykuCisgKiA8ZW0+b3V0cHV0PC9lbT46IFRoZSBkaXNrICJNeURpc2siIGNvbnRhaW5zIDEgZmlsZShzKS4KKyAqIDxlbT5vdXRwdXQ8L2VtPjogVGhlIGRpc2sgIk15RGlzayIgY29udGFpbnMgMSwyNzMgZmlsZShzKS4KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPgorICogRm9yIG1vcmUgc29waGlzdGljYXRlZCBwYXR0ZXJucywgeW91IGNhbiB1c2UgYSA8Y29kZT5DaG9pY2VGb3JtYXQ8L2NvZGU+IHRvIGdldAorICogb3V0cHV0IHN1Y2ggYXM6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBNZXNzYWdlRm9ybWF0IGZvcm0gPSBuZXcgTWVzc2FnZUZvcm1hdCgiVGhlIGRpc2sgXCJ7MX1cIiBjb250YWlucyB7MH0uIik7CisgKiBkb3VibGVbXSBmaWxlbGltaXRzID0gezAsMSwyfTsKKyAqIFN0cmluZ1tdIGZpbGVwYXJ0ID0geyJubyBmaWxlcyIsIm9uZSBmaWxlIiwiezAsbnVtYmVyfSBmaWxlcyJ9OworICogQ2hvaWNlRm9ybWF0IGZpbGVmb3JtID0gbmV3IENob2ljZUZvcm1hdChmaWxlbGltaXRzLCBmaWxlcGFydCk7CisgKiBmb3JtLnNldEZvcm1hdEJ5QXJndW1lbnRJbmRleCgwLCBmaWxlZm9ybSk7CisgKgorICogT2JqZWN0W10gdGVzdEFyZ3MgPSB7bmV3IExvbmcoMTIzNzMpLCAiTXlEaXNrIn07CisgKgorICogU3lzdGVtLm91dC5wcmludGxuKGZvcm0uZm9ybWF0KHRlc3RBcmdzKSk7CisgKgorICogLy8gb3V0cHV0LCB3aXRoIGRpZmZlcmVudCB0ZXN0QXJncworICogb3V0cHV0OiBUaGUgZGlzayAiTXlEaXNrIiBjb250YWlucyBubyBmaWxlcy4KKyAqIG91dHB1dDogVGhlIGRpc2sgIk15RGlzayIgY29udGFpbnMgb25lIGZpbGUuCisgKiBvdXRwdXQ6IFRoZSBkaXNrICJNeURpc2siIGNvbnRhaW5zIDEsMjczIGZpbGVzLgorICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBZb3UgY2FuIGVpdGhlciBkbyB0aGlzIHByb2dyYW1tYXRpY2FsbHksIGFzIGluIHRoZSBhYm92ZSBleGFtcGxlLAorICogb3IgYnkgdXNpbmcgYSBwYXR0ZXJuIChzZWUKKyAqIHtAbGluayBDaG9pY2VGb3JtYXR9CisgKiBmb3IgbW9yZSBpbmZvcm1hdGlvbikgYXMgaW46CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBmb3JtLmFwcGx5UGF0dGVybigKKyAqICAgICJUaGVyZSB7MCxjaG9pY2UsMCNhcmUgbm8gZmlsZXN8MSNpcyBvbmUgZmlsZXwxJmx0O2FyZSB7MCxudW1iZXIsaW50ZWdlcn0gZmlsZXN9LiIpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8cD4KKyAqIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gQXMgd2Ugc2VlIGFib3ZlLCB0aGUgc3RyaW5nIHByb2R1Y2VkCisgKiBieSBhIDxjb2RlPkNob2ljZUZvcm1hdDwvY29kZT4gaW4gPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gaXMgdHJlYXRlZCBzcGVjaWFsbHk7CisgKiBvY2N1cmFuY2VzIG9mICd7JyBhcmUgdXNlZCB0byBpbmRpY2F0ZWQgc3ViZm9ybWF0cywgYW5kIGNhdXNlIHJlY3Vyc2lvbi4KKyAqIElmIHlvdSBjcmVhdGUgYm90aCBhIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IGFuZCA8Y29kZT5DaG9pY2VGb3JtYXQ8L2NvZGU+CisgKiBwcm9ncmFtbWF0aWNhbGx5IChpbnN0ZWFkIG9mIHVzaW5nIHRoZSBzdHJpbmcgcGF0dGVybnMpLCB0aGVuIGJlIGNhcmVmdWwgbm90IHRvCisgKiBwcm9kdWNlIGEgZm9ybWF0IHRoYXQgcmVjdXJzZXMgb24gaXRzZWxmLCB3aGljaCB3aWxsIGNhdXNlIGFuIGluZmluaXRlIGxvb3AuCisgKiA8cD4KKyAqIFdoZW4gYSBzaW5nbGUgYXJndW1lbnQgaXMgcGFyc2VkIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzdHJpbmcsIHRoZSBsYXN0IG1hdGNoCisgKiB3aWxsIGJlIHRoZSBmaW5hbCByZXN1bHQgb2YgdGhlIHBhcnNpbmcuICBGb3IgZXhhbXBsZSwKKyAqIDxwcmU+CisgKiBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoInswLG51bWJlciwjLiMjfSwgezAsbnVtYmVyLCMuI30iKTsKKyAqIE9iamVjdFtdIG9ianMgPSB7bmV3IERvdWJsZSgzLjE0MTUpfTsKKyAqIFN0cmluZyByZXN1bHQgPSBtZi5mb3JtYXQoIG9ianMgKTsKKyAqIC8vIHJlc3VsdCBub3cgZXF1YWxzICIzLjE0LCAzLjEiCisgKiBvYmpzID0gbnVsbDsKKyAqIG9ianMgPSBtZi5wYXJzZShyZXN1bHQsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAqIC8vIG9ianMgbm93IGVxdWFscyB7bmV3IERvdWJsZSgzLjEpfQorICogPC9wcmU+CisgKiA8cD4KKyAqIExpa2V3aXNlLCBwYXJzaW5nIHdpdGggYSBNZXNzYWdlRm9ybWF0IG9iamVjdCB1c2luZyBwYXR0ZXJucyBjb250YWluaW5nCisgKiBtdWx0aXBsZSBvY2N1cmFuY2VzIG9mIHRoZSBzYW1lIGFyZ3VtZW50IHdvdWxkIHJldHVybiB0aGUgbGFzdCBtYXRjaC4gIEZvcgorICogZXhhbXBsZSwKKyAqIDxwcmU+CisgKiBNZXNzYWdlRm9ybWF0IG1mID0gbmV3IE1lc3NhZ2VGb3JtYXQoInswfSwgezB9LCB7MH0iKTsKKyAqIFN0cmluZyBmb3JQYXJzaW5nID0gIngsIHksIHoiOworICogT2JqZWN0W10gb2JqcyA9IG1mLnBhcnNlKGZvclBhcnNpbmcsIG5ldyBQYXJzZVBvc2l0aW9uKDApKTsKKyAqIC8vIHJlc3VsdCBub3cgZXF1YWxzIHtuZXcgU3RyaW5nKCJ6Iil9CisgKiA8L3ByZT4KKyAqCisgKiA8aDQ+PGEgbmFtZT0ic3luY2hyb25pemF0aW9uIj5TeW5jaHJvbml6YXRpb248L2E+PC9oND4KKyAqCisgKiA8cD4KKyAqIE1lc3NhZ2UgZm9ybWF0cyBhcmUgbm90IHN5bmNocm9uaXplZC4KKyAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSBzZXBhcmF0ZSBmb3JtYXQgaW5zdGFuY2VzIGZvciBlYWNoIHRocmVhZC4KKyAqIElmIG11bHRpcGxlIHRocmVhZHMgYWNjZXNzIGEgZm9ybWF0IGNvbmN1cnJlbnRseSwgaXQgbXVzdCBiZSBzeW5jaHJvbml6ZWQKKyAqIGV4dGVybmFsbHkuCisgKgorICogQHNlZSAgICAgICAgICBqYXZhLnV0aWwuTG9jYWxlCisgKiBAc2VlICAgICAgICAgIEZvcm1hdAorICogQHNlZSAgICAgICAgICBOdW1iZXJGb3JtYXQKKyAqIEBzZWUgICAgICAgICAgRGVjaW1hbEZvcm1hdAorICogQHNlZSAgICAgICAgICBDaG9pY2VGb3JtYXQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcworICogQHN0YWJsZSBJQ1UgMy4wCisgKi8KK3B1YmxpYyBjbGFzcyBNZXNzYWdlRm9ybWF0IGV4dGVuZHMgVUZvcm1hdCB7CisKKyAgICAvLyBHZW5lcmF0ZWQgYnkgc2VyaWFsdmVyIGZyb20gSkRLIDEuNC4xXzAxCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDcxMzYyMTI1NDU4NDczNzg2NTFMOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIE1lc3NhZ2VGb3JtYXQgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBhbmQgdGhlCisgICAgICogc3BlY2lmaWVkIHBhdHRlcm4uCisgICAgICogVGhlIGNvbnN0cnVjdG9yIGZpcnN0IHNldHMgdGhlIGxvY2FsZSwgdGhlbiBwYXJzZXMgdGhlIHBhdHRlcm4gYW5kCisgICAgICogY3JlYXRlcyBhIGxpc3Qgb2Ygc3ViZm9ybWF0cyBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBjb250YWluZWQgaW4gaXQuCisgICAgICogUGF0dGVybnMgYW5kIHRoZWlyIGludGVycHJldGF0aW9uIGFyZSBzcGVjaWZpZWQgaW4gdGhlCisgICAgICogPGEgaHJlZj0iI3BhdHRlcm5zIj5jbGFzcyBkZXNjcmlwdGlvbjwvYT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgcGF0dGVybiBmb3IgdGhpcyBtZXNzYWdlIGZvcm1hdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGlzIGludmFsaWQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgTWVzc2FnZUZvcm1hdChTdHJpbmcgcGF0dGVybikgeworICAgICAgICB0aGlzLnVsb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgYXBwbHlQYXR0ZXJuKHBhdHRlcm4pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBNZXNzYWdlRm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBhbmQKKyAgICAgKiBwYXR0ZXJuLgorICAgICAqIFRoZSBjb25zdHJ1Y3RvciBmaXJzdCBzZXRzIHRoZSBsb2NhbGUsIHRoZW4gcGFyc2VzIHRoZSBwYXR0ZXJuIGFuZAorICAgICAqIGNyZWF0ZXMgYSBsaXN0IG9mIHN1YmZvcm1hdHMgZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgY29udGFpbmVkIGluIGl0LgorICAgICAqIFBhdHRlcm5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbiBhcmUgc3BlY2lmaWVkIGluIHRoZQorICAgICAqIDxhIGhyZWY9IiNwYXR0ZXJucyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+LgorICAgICAqCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4gZm9yIHRoaXMgbWVzc2FnZSBmb3JtYXQKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgZm9yIHRoaXMgbWVzc2FnZSBmb3JtYXQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybiBpcyBpbnZhbGlkCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIE1lc3NhZ2VGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgTWVzc2FnZUZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUgYW5kCisgICAgICogcGF0dGVybi4KKyAgICAgKiBUaGUgY29uc3RydWN0b3IgZmlyc3Qgc2V0cyB0aGUgbG9jYWxlLCB0aGVuIHBhcnNlcyB0aGUgcGF0dGVybiBhbmQKKyAgICAgKiBjcmVhdGVzIGEgbGlzdCBvZiBzdWJmb3JtYXRzIGZvciB0aGUgZm9ybWF0IGVsZW1lbnRzIGNvbnRhaW5lZCBpbiBpdC4KKyAgICAgKiBQYXR0ZXJucyBhbmQgdGhlaXIgaW50ZXJwcmV0YXRpb24gYXJlIHNwZWNpZmllZCBpbiB0aGUKKyAgICAgKiA8YSBocmVmPSIjcGF0dGVybnMiPmNsYXNzIGRlc2NyaXB0aW9uPC9hPi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuIGZvciB0aGlzIG1lc3NhZ2UgZm9ybWF0CisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGZvciB0aGlzIG1lc3NhZ2UgZm9ybWF0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4gaXMgaW52YWxpZAorICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBNZXNzYWdlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzLnVsb2NhbGUgPSBsb2NhbGU7CisgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzLgorICAgICAqIFRoaXMgYWZmZWN0cyBzdWJzZXF1ZW50IGNhbGxzIHRvIHRoZSB7QGxpbmsgI2FwcGx5UGF0dGVybiBhcHBseVBhdHRlcm59CisgICAgICogYW5kIHtAbGluayAjdG9QYXR0ZXJuIHRvUGF0dGVybn0gbWV0aG9kcyBhcyB3ZWxsIGFzIHRvIHRoZQorICAgICAqIDxjb2RlPmZvcm1hdDwvY29kZT4gYW5kCisgICAgICoge0BsaW5rICNmb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yIGZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3J9IG1ldGhvZHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TG9jYWxlKExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc2V0TG9jYWxlKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgb3IgY29tcGFyaW5nIHN1YmZvcm1hdHMuCisgICAgICogVGhpcyBhZmZlY3RzIHN1YnNlcXVlbnQgY2FsbHMgdG8gdGhlIHtAbGluayAjYXBwbHlQYXR0ZXJuIGFwcGx5UGF0dGVybn0KKyAgICAgKiBhbmQge0BsaW5rICN0b1BhdHRlcm4gdG9QYXR0ZXJufSBtZXRob2RzIGFzIHdlbGwgYXMgdG8gdGhlCisgICAgICogPGNvZGU+Zm9ybWF0PC9jb2RlPiBhbmQKKyAgICAgKiB7QGxpbmsgI2Zvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3IgZm9ybWF0VG9DaGFyYWN0ZXJJdGVyYXRvcn0gbWV0aG9kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgb3IgY29tcGFyaW5nIHN1YmZvcm1hdHMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRMb2NhbGUoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgLyogU2F2ZSB0aGUgcGF0dGVybiwgYW5kIHRoZW4gcmVhcHBseSBzbyB0aGF0ICovCisgICAgICAgIC8qIHdlIHBpY2sgdXAgYW55IGNoYW5nZXMgaW4gbG9jYWxlIHNwZWNpZmljICovCisgICAgICAgIC8qIGVsZW1lbnRzICovCisgICAgICAgIFN0cmluZyBleGlzdGluZ1BhdHRlcm4gPSB0b1BhdHRlcm4oKTsgICAgICAgICAgICAgICAgICAgICAgIC8qaWJtLjM1NTAqLworICAgICAgICB0aGlzLnVsb2NhbGUgPSBsb2NhbGU7CisgICAgICAgIGFwcGx5UGF0dGVybihleGlzdGluZ1BhdHRlcm4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qaWJtLjM1NTAqLworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxvY2FsZSB0aGF0J3MgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzLgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cworICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBMb2NhbGUgZ2V0TG9jYWxlKCkgeworICAgICAgICByZXR1cm4gdWxvY2FsZS50b0xvY2FsZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxvY2FsZSB0aGF0J3MgdXNlZCB3aGVuIGNyZWF0aW5nIG9yIGNvbXBhcmluZyBzdWJmb3JtYXRzLgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlIHVzZWQgd2hlbiBjcmVhdGluZyBvciBjb21wYXJpbmcgc3ViZm9ybWF0cworICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBVTG9jYWxlIGdldFVMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiB1bG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBhdHRlcm4gdXNlZCBieSB0aGlzIG1lc3NhZ2UgZm9ybWF0LgorICAgICAqIFRoZSBtZXRob2QgcGFyc2VzIHRoZSBwYXR0ZXJuIGFuZCBjcmVhdGVzIGEgbGlzdCBvZiBzdWJmb3JtYXRzCisgICAgICogZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgY29udGFpbmVkIGluIGl0LgorICAgICAqIFBhdHRlcm5zIGFuZCB0aGVpciBpbnRlcnByZXRhdGlvbiBhcmUgc3BlY2lmaWVkIGluIHRoZQorICAgICAqIDxhIGhyZWY9IiNwYXR0ZXJucyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+LgorICAgICAqIAorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuIGZvciB0aGlzIG1lc3NhZ2UgZm9ybWF0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4gaXMgaW52YWxpZAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFwcGx5UGF0dGVybihTdHJpbmcgcGF0dGVybikgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyW10gc2VnbWVudHMgPSBuZXcgU3RyaW5nQnVmZmVyWzRdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzZWdtZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHNlZ21lbnRzW2ldID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IHBhcnQgPSAwOworICAgICAgICAgICAgaW50IGZvcm1hdE51bWJlciA9IDA7CisgICAgICAgICAgICBib29sZWFuIGluUXVvdGUgPSBmYWxzZTsKKyAgICAgICAgICAgIGludCBicmFjZVN0YWNrID0gMDsKKyAgICAgICAgICAgIG1heE9mZnNldCA9IC0xOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYXR0ZXJuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGNoID0gcGF0dGVybi5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKHBhcnQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJ1wnJykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgKyAxIDwgcGF0dGVybi5sZW5ndGgoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHBhdHRlcm4uY2hhckF0KGkrMSkgPT0gJ1wnJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnRzW3BhcnRdLmFwcGVuZChjaCk7ICAvLyBoYW5kbGUgZG91YmxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5RdW90ZSA9ICFpblF1b3RlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09ICd7JyAmJiAhaW5RdW90ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcGFydCA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50c1twYXJ0XS5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlICBpZiAoaW5RdW90ZSkgeyAgLy8ganVzdCBjb3B5IHF1b3RlcyBpbiBwYXJ0cworICAgICAgICAgICAgICAgICAgICBzZWdtZW50c1twYXJ0XS5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJ1wnJykgeworICAgICAgICAgICAgICAgICAgICAgICAgaW5RdW90ZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlICcsJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJ0IDwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0ICs9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudHNbcGFydF0uYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlICd7JzoKKyAgICAgICAgICAgICAgICAgICAgICAgICsrYnJhY2VTdGFjazsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnRzW3BhcnRdLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnfSc6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnJhY2VTdGFjayA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFrZUZvcm1hdChpLCBmb3JtYXROdW1iZXIsIHNlZ21lbnRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXROdW1iZXIrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1icmFjZVN0YWNrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnRzW3BhcnRdLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnXCcnOgorICAgICAgICAgICAgICAgICAgICAgICAgaW5RdW90ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBmYWxsIHRocm91Z2gsIHNvIHdlIGtlZXAgcXVvdGVzIGluIG90aGVyIHBhcnRzCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50c1twYXJ0XS5hcHBlbmQoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYnJhY2VTdGFjayA9PSAwICYmIHBhcnQgIT0gMCkgeworICAgICAgICAgICAgICAgIG1heE9mZnNldCA9IC0xOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlVubWF0Y2hlZCBicmFjZXMgaW4gdGhlIHBhdHRlcm4uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLnBhdHRlcm4gPSBzZWdtZW50c1swXS50b1N0cmluZygpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHBhdHRlcm4gcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBtZXNzYWdlIGZvcm1hdC4KKyAgICAgKiBUaGUgc3RyaW5nIGlzIGNvbnN0cnVjdGVkIGZyb20gaW50ZXJuYWwgaW5mb3JtYXRpb24gYW5kIHRoZXJlZm9yZQorICAgICAqIGRvZXMgbm90IG5lY2Vzc2FyaWx5IGVxdWFsIHRoZSBwcmV2aW91c2x5IGFwcGxpZWQgcGF0dGVybi4gCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgcGF0dGVybiByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIG1lc3NhZ2UgZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oKSB7CisgICAgICAgIC8vIGxhdGVyLCBtYWtlIHRoaXMgbW9yZSBleHRlbnNpYmxlCisgICAgICAgIGludCBsYXN0T2Zmc2V0ID0gMDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbWF4T2Zmc2V0OyArK2kpIHsKKyAgICAgICAgICAgIGNvcHlBbmRGaXhRdW90ZXMocGF0dGVybiwgbGFzdE9mZnNldCwgb2Zmc2V0c1tpXSxyZXN1bHQpOworICAgICAgICAgICAgbGFzdE9mZnNldCA9IG9mZnNldHNbaV07CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd7Jyk7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGFyZ3VtZW50TnVtYmVyc1tpXSk7CisgICAgICAgICAgICBpZiAoZm9ybWF0c1tpXSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gZG8gbm90aGluZywgc3RyaW5nIGZvcm1hdAorICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldIGluc3RhbmNlb2YgRGVjaW1hbEZvcm1hdCkgeworICAgICAgICAgICAgICAgIGlmIChmb3JtYXRzW2ldLmVxdWFscyhOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UodWxvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIixudW1iZXIiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKHVsb2NhbGUpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsbnVtYmVyLGN1cnJlbmN5Iik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldLmVxdWFscyhOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKHVsb2NhbGUpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsbnVtYmVyLHBlcmNlbnQiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2UodWxvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIixudW1iZXIsaW50ZWdlciIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIixudW1iZXIsIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChEZWNpbWFsRm9ybWF0KWZvcm1hdHNbaV0pLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0gaW5zdGFuY2VvZiBTaW1wbGVEYXRlRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCx1bG9jYWxlKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLGRhdGUiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsdWxvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIixkYXRlLHNob3J0Iik7CisvLyBUaGlzIGNvZGUgd2lsbCBuZXZlciBiZSBleGVjdXRlZCBbYWxhbl0KKy8vICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0c1tpXS5lcXVhbHMoRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULHVsb2NhbGUpKSkgeworLy8gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIixkYXRlLG1lZGl1bSIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0c1tpXS5lcXVhbHMoRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLHVsb2NhbGUpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsZGF0ZSxsb25nIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldLmVxdWFscyhEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsdWxvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIixkYXRlLGZ1bGwiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuREVGQVVMVCx1bG9jYWxlKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiLHRpbWUiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0uZXF1YWxzKERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsdWxvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIix0aW1lLHNob3J0Iik7CisvLyBUaGlzIGNvZGUgd2lsbCBuZXZlciBiZSBleGVjdXRlZCBbYWxhbl0KKy8vICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0c1tpXS5lcXVhbHMoRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULHVsb2NhbGUpKSkgeworLy8gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIix0aW1lLG1lZGl1bSIpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0c1tpXS5lcXVhbHMoRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLHVsb2NhbGUpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsdGltZSxsb25nIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldLmVxdWFscyhEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsdWxvY2FsZSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIix0aW1lLGZ1bGwiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsZGF0ZSwiICsgKChTaW1wbGVEYXRlRm9ybWF0KWZvcm1hdHNbaV0pLnRvUGF0dGVybigpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdHNbaV0gaW5zdGFuY2VvZiBDaG9pY2VGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIsY2hvaWNlLCIgKyAoKENob2ljZUZvcm1hdClmb3JtYXRzW2ldKS50b1BhdHRlcm4oKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vcmVzdWx0LmFwcGVuZCgiLCB1bmtub3duIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7CisgICAgICAgIH0KKyAgICAgICAgY29weUFuZEZpeFF1b3RlcyhwYXR0ZXJuLCBsYXN0T2Zmc2V0LCBwYXR0ZXJuLmxlbmd0aCgpLCByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZm9ybWF0cyB0byB1c2UgZm9yIHRoZSB2YWx1ZXMgcGFzc2VkIGludG8KKyAgICAgKiA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgcmV0dXJuZWQgZnJvbSA8Y29kZT5wYXJzZTwvY29kZT4KKyAgICAgKiBtZXRob2RzLiBUaGUgaW5kaWNlcyBvZiBlbGVtZW50cyBpbiA8Y29kZT5uZXdGb3JtYXRzPC9jb2RlPgorICAgICAqIGNvcnJlc3BvbmQgdG8gdGhlIGFyZ3VtZW50IGluZGljZXMgdXNlZCBpbiB0aGUgcHJldmlvdXNseSBzZXQKKyAgICAgKiBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBUaGUgb3JkZXIgb2YgZm9ybWF0cyBpbiA8Y29kZT5uZXdGb3JtYXRzPC9jb2RlPiB0aHVzIGNvcnJlc3BvbmRzIHRvCisgICAgICogdGhlIG9yZGVyIG9mIGVsZW1lbnRzIGluIHRoZSA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IHBhc3NlZAorICAgICAqIHRvIHRoZSA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgdGhlIHJlc3VsdCBhcnJheSByZXR1cm5lZAorICAgICAqIGJ5IHRoZSA8Y29kZT5wYXJzZTwvY29kZT4gbWV0aG9kcy4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiBhbiBhcmd1bWVudCBpbmRleCBpcyB1c2VkIGZvciBtb3JlIHRoYW4gb25lIGZvcm1hdCBlbGVtZW50CisgICAgICogaW4gdGhlIHBhdHRlcm4gc3RyaW5nLCB0aGVuIHRoZSBjb3JyZXNwb25kaW5nIG5ldyBmb3JtYXQgaXMgdXNlZAorICAgICAqIGZvciBhbGwgc3VjaCBmb3JtYXQgZWxlbWVudHMuIElmIGFuIGFyZ3VtZW50IGluZGV4IGlzIG5vdCB1c2VkCisgICAgICogZm9yIGFueSBmb3JtYXQgZWxlbWVudCBpbiB0aGUgcGF0dGVybiBzdHJpbmcsIHRoZW4gdGhlCisgICAgICogY29ycmVzcG9uZGluZyBuZXcgZm9ybWF0IGlzIGlnbm9yZWQuIElmIGZld2VyIGZvcm1hdHMgYXJlIHByb3ZpZGVkCisgICAgICogdGhhbiBuZWVkZWQsIHRoZW4gb25seSB0aGUgZm9ybWF0cyBmb3IgYXJndW1lbnQgaW5kaWNlcyBsZXNzCisgICAgICogdGhhbiA8Y29kZT5uZXdGb3JtYXRzLmxlbmd0aDwvY29kZT4gYXJlIHJlcGxhY2VkLgorICAgICAqCisgICAgICogQHBhcmFtIG5ld0Zvcm1hdHMgdGhlIG5ldyBmb3JtYXRzIHRvIHVzZQorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgPGNvZGU+bmV3Rm9ybWF0czwvY29kZT4gaXMgbnVsbAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXgoRm9ybWF0W10gbmV3Rm9ybWF0cykgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBtYXhPZmZzZXQ7IGkrKykgeworICAgICAgICAgICAgaW50IGogPSBhcmd1bWVudE51bWJlcnNbaV07CisgICAgICAgICAgICBpZiAoaiA8IG5ld0Zvcm1hdHMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgZm9ybWF0c1tpXSA9IG5ld0Zvcm1hdHNbal07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBmb3JtYXRzIHRvIHVzZSBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBpbiB0aGUKKyAgICAgKiBwcmV2aW91c2x5IHNldCBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBUaGUgb3JkZXIgb2YgZm9ybWF0cyBpbiA8Y29kZT5uZXdGb3JtYXRzPC9jb2RlPiBjb3JyZXNwb25kcyB0bworICAgICAqIHRoZSBvcmRlciBvZiBmb3JtYXQgZWxlbWVudHMgaW4gdGhlIHBhdHRlcm4gc3RyaW5nLgorICAgICAqIDxwPgorICAgICAqIElmIG1vcmUgZm9ybWF0cyBhcmUgcHJvdmlkZWQgdGhhbiBuZWVkZWQgYnkgdGhlIHBhdHRlcm4gc3RyaW5nLAorICAgICAqIHRoZSByZW1haW5pbmcgb25lcyBhcmUgaWdub3JlZC4gSWYgZmV3ZXIgZm9ybWF0cyBhcmUgcHJvdmlkZWQKKyAgICAgKiB0aGFuIG5lZWRlZCwgdGhlbiBvbmx5IHRoZSBmaXJzdCA8Y29kZT5uZXdGb3JtYXRzLmxlbmd0aDwvY29kZT4KKyAgICAgKiBmb3JtYXRzIGFyZSByZXBsYWNlZC4KKyAgICAgKiA8cD4KKyAgICAgKiBTaW5jZSB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIGEgcGF0dGVybiBzdHJpbmcgb2Z0ZW4KKyAgICAgKiBjaGFuZ2VzIGR1cmluZyBsb2NhbGl6YXRpb24sIGl0IGlzIGdlbmVyYWxseSBiZXR0ZXIgdG8gdXNlIHRoZQorICAgICAqIHtAbGluayAjc2V0Rm9ybWF0c0J5QXJndW1lbnRJbmRleCBzZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4fQorICAgICAqIG1ldGhvZCwgd2hpY2ggYXNzdW1lcyBhbiBvcmRlciBvZiBmb3JtYXRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisgICAgICogb3JkZXIgb2YgZWxlbWVudHMgaW4gdGhlIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgcGFzc2VkIHRvCisgICAgICogdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcyBvciB0aGUgcmVzdWx0IGFycmF5IHJldHVybmVkIGJ5CisgICAgICogdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICAgICAqCisgICAgICogQHBhcmFtIG5ld0Zvcm1hdHMgdGhlIG5ldyBmb3JtYXRzIHRvIHVzZQorICAgICAqIEBleGNlcHRpb24gTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgPGNvZGU+bmV3Rm9ybWF0czwvY29kZT4gaXMgbnVsbAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdHMoRm9ybWF0W10gbmV3Rm9ybWF0cykgeworICAgICAgICBpbnQgcnVuc1RvQ29weSA9IG5ld0Zvcm1hdHMubGVuZ3RoOworICAgICAgICBpZiAocnVuc1RvQ29weSA+IG1heE9mZnNldCArIDEpIHsKKyAgICAgICAgICAgIHJ1bnNUb0NvcHkgPSBtYXhPZmZzZXQgKyAxOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVuc1RvQ29weTsgaSsrKSB7CisgICAgICAgICAgICBmb3JtYXRzW2ldID0gbmV3Rm9ybWF0c1tpXTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGZvcm1hdCB0byB1c2UgZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgd2l0aGluIHRoZQorICAgICAqIHByZXZpb3VzbHkgc2V0IHBhdHRlcm4gc3RyaW5nIHRoYXQgdXNlIHRoZSBnaXZlbiBhcmd1bWVudAorICAgICAqIGluZGV4LgorICAgICAqIFRoZSBhcmd1bWVudCBpbmRleCBpcyBwYXJ0IG9mIHRoZSBmb3JtYXQgZWxlbWVudCBkZWZpbml0aW9uIGFuZAorICAgICAqIHJlcHJlc2VudHMgYW4gaW5kZXggaW50byB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQKKyAgICAgKiB0byB0aGUgPGNvZGU+Zm9ybWF0PC9jb2RlPiBtZXRob2RzIG9yIHRoZSByZXN1bHQgYXJyYXkgcmV0dXJuZWQKKyAgICAgKiBieSB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgICAgICogPHA+CisgICAgICogSWYgdGhlIGFyZ3VtZW50IGluZGV4IGlzIHVzZWQgZm9yIG1vcmUgdGhhbiBvbmUgZm9ybWF0IGVsZW1lbnQKKyAgICAgKiBpbiB0aGUgcGF0dGVybiBzdHJpbmcsIHRoZW4gdGhlIG5ldyBmb3JtYXQgaXMgdXNlZCBmb3IgYWxsIHN1Y2gKKyAgICAgKiBmb3JtYXQgZWxlbWVudHMuIElmIHRoZSBhcmd1bWVudCBpbmRleCBpcyBub3QgdXNlZCBmb3IgYW55IGZvcm1hdAorICAgICAqIGVsZW1lbnQgaW4gdGhlIHBhdHRlcm4gc3RyaW5nLCB0aGVuIHRoZSBuZXcgZm9ybWF0IGlzIGlnbm9yZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXJndW1lbnRJbmRleCB0aGUgYXJndW1lbnQgaW5kZXggZm9yIHdoaWNoIHRvIHVzZSB0aGUgbmV3IGZvcm1hdAorICAgICAqIEBwYXJhbSBuZXdGb3JtYXQgdGhlIG5ldyBmb3JtYXQgdG8gdXNlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Rm9ybWF0QnlBcmd1bWVudEluZGV4KGludCBhcmd1bWVudEluZGV4LCBGb3JtYXQgbmV3Rm9ybWF0KSB7CisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IG1heE9mZnNldDsgaisrKSB7CisgICAgICAgICAgICBpZiAoYXJndW1lbnROdW1iZXJzW2pdID09IGFyZ3VtZW50SW5kZXgpIHsKKyAgICAgICAgICAgICAgICBmb3JtYXRzW2pdID0gbmV3Rm9ybWF0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZm9ybWF0IHRvIHVzZSBmb3IgdGhlIGZvcm1hdCBlbGVtZW50IHdpdGggdGhlIGdpdmVuCisgICAgICogZm9ybWF0IGVsZW1lbnQgaW5kZXggd2l0aGluIHRoZSBwcmV2aW91c2x5IHNldCBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBUaGUgZm9ybWF0IGVsZW1lbnQgaW5kZXggaXMgdGhlIHplcm8tYmFzZWQgbnVtYmVyIG9mIHRoZSBmb3JtYXQKKyAgICAgKiBlbGVtZW50IGNvdW50aW5nIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiA8cD4KKyAgICAgKiBTaW5jZSB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIGEgcGF0dGVybiBzdHJpbmcgb2Z0ZW4KKyAgICAgKiBjaGFuZ2VzIGR1cmluZyBsb2NhbGl6YXRpb24sIGl0IGlzIGdlbmVyYWxseSBiZXR0ZXIgdG8gdXNlIHRoZQorICAgICAqIHtAbGluayAjc2V0Rm9ybWF0QnlBcmd1bWVudEluZGV4IHNldEZvcm1hdEJ5QXJndW1lbnRJbmRleH0KKyAgICAgKiBtZXRob2QsIHdoaWNoIGFjY2Vzc2VzIGZvcm1hdCBlbGVtZW50cyBiYXNlZCBvbiB0aGUgYXJndW1lbnQKKyAgICAgKiBpbmRleCB0aGV5IHNwZWNpZnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZm9ybWF0RWxlbWVudEluZGV4IHRoZSBpbmRleCBvZiBhIGZvcm1hdCBlbGVtZW50IHdpdGhpbiB0aGUgcGF0dGVybgorICAgICAqIEBwYXJhbSBuZXdGb3JtYXQgdGhlIGZvcm1hdCB0byB1c2UgZm9yIHRoZSBzcGVjaWZpZWQgZm9ybWF0IGVsZW1lbnQKKyAgICAgKiBAZXhjZXB0aW9uIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBmb3JtYXRFbGVtZW50SW5kZXggaXMgZXF1YWwgdG8gb3IKKyAgICAgKiAgICAgICAgICAgIGxhcmdlciB0aGFuIHRoZSBudW1iZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIHRoZSBwYXR0ZXJuIHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdChpbnQgZm9ybWF0RWxlbWVudEluZGV4LCBGb3JtYXQgbmV3Rm9ybWF0KSB7CisgICAgICAgIGZvcm1hdHNbZm9ybWF0RWxlbWVudEluZGV4XSA9IG5ld0Zvcm1hdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBmb3JtYXRzIHVzZWQgZm9yIHRoZSB2YWx1ZXMgcGFzc2VkIGludG8KKyAgICAgKiA8Y29kZT5mb3JtYXQ8L2NvZGU+IG1ldGhvZHMgb3IgcmV0dXJuZWQgZnJvbSA8Y29kZT5wYXJzZTwvY29kZT4KKyAgICAgKiBtZXRob2RzLiBUaGUgaW5kaWNlcyBvZiBlbGVtZW50cyBpbiB0aGUgcmV0dXJuZWQgYXJyYXkKKyAgICAgKiBjb3JyZXNwb25kIHRvIHRoZSBhcmd1bWVudCBpbmRpY2VzIHVzZWQgaW4gdGhlIHByZXZpb3VzbHkgc2V0CisgICAgICogcGF0dGVybiBzdHJpbmcuCisgICAgICogVGhlIG9yZGVyIG9mIGZvcm1hdHMgaW4gdGhlIHJldHVybmVkIGFycmF5IHRodXMgY29ycmVzcG9uZHMgdG8KKyAgICAgKiB0aGUgb3JkZXIgb2YgZWxlbWVudHMgaW4gdGhlIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgcGFzc2VkCisgICAgICogdG8gdGhlIDxjb2RlPmZvcm1hdDwvY29kZT4gbWV0aG9kcyBvciB0aGUgcmVzdWx0IGFycmF5IHJldHVybmVkCisgICAgICogYnkgdGhlIDxjb2RlPnBhcnNlPC9jb2RlPiBtZXRob2RzLgorICAgICAqIDxwPgorICAgICAqIElmIGFuIGFyZ3VtZW50IGluZGV4IGlzIHVzZWQgZm9yIG1vcmUgdGhhbiBvbmUgZm9ybWF0IGVsZW1lbnQKKyAgICAgKiBpbiB0aGUgcGF0dGVybiBzdHJpbmcsIHRoZW4gdGhlIGZvcm1hdCB1c2VkIGZvciB0aGUgbGFzdCBzdWNoCisgICAgICogZm9ybWF0IGVsZW1lbnQgaXMgcmV0dXJuZWQgaW4gdGhlIGFycmF5LiBJZiBhbiBhcmd1bWVudCBpbmRleAorICAgICAqIGlzIG5vdCB1c2VkIGZvciBhbnkgZm9ybWF0IGVsZW1lbnQgaW4gdGhlIHBhdHRlcm4gc3RyaW5nLCB0aGVuCisgICAgICogbnVsbCBpcyByZXR1cm5lZCBpbiB0aGUgYXJyYXkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXRzIHVzZWQgZm9yIHRoZSBhcmd1bWVudHMgd2l0aGluIHRoZSBwYXR0ZXJuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIEZvcm1hdFtdIGdldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXgoKSB7CisgICAgICAgIGludCBtYXhpbXVtQXJndW1lbnROdW1iZXIgPSAtMTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbWF4T2Zmc2V0OyBpKyspIHsKKyAgICAgICAgICAgIGlmIChhcmd1bWVudE51bWJlcnNbaV0gPiBtYXhpbXVtQXJndW1lbnROdW1iZXIpIHsKKyAgICAgICAgICAgICAgICBtYXhpbXVtQXJndW1lbnROdW1iZXIgPSBhcmd1bWVudE51bWJlcnNbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgRm9ybWF0W10gcmVzdWx0QXJyYXkgPSBuZXcgRm9ybWF0W21heGltdW1Bcmd1bWVudE51bWJlciArIDFdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBtYXhPZmZzZXQ7IGkrKykgeworICAgICAgICAgICAgcmVzdWx0QXJyYXlbYXJndW1lbnROdW1iZXJzW2ldXSA9IGZvcm1hdHNbaV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdEFycmF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGZvcm1hdHMgdXNlZCBmb3IgdGhlIGZvcm1hdCBlbGVtZW50cyBpbiB0aGUKKyAgICAgKiBwcmV2aW91c2x5IHNldCBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBUaGUgb3JkZXIgb2YgZm9ybWF0cyBpbiB0aGUgcmV0dXJuZWQgYXJyYXkgY29ycmVzcG9uZHMgdG8KKyAgICAgKiB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIHRoZSBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiA8cD4KKyAgICAgKiBTaW5jZSB0aGUgb3JkZXIgb2YgZm9ybWF0IGVsZW1lbnRzIGluIGEgcGF0dGVybiBzdHJpbmcgb2Z0ZW4KKyAgICAgKiBjaGFuZ2VzIGR1cmluZyBsb2NhbGl6YXRpb24sIGl0J3MgZ2VuZXJhbGx5IGJldHRlciB0byB1c2UgdGhlCisgICAgICoge0BsaW5rICNnZXRGb3JtYXRzQnlBcmd1bWVudEluZGV4IGdldEZvcm1hdHNCeUFyZ3VtZW50SW5kZXh9CisgICAgICogbWV0aG9kLCB3aGljaCBhc3N1bWVzIGFuIG9yZGVyIG9mIGZvcm1hdHMgY29ycmVzcG9uZGluZyB0byB0aGUKKyAgICAgKiBvcmRlciBvZiBlbGVtZW50cyBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBwYXNzZWQgdG8KKyAgICAgKiB0aGUgPGNvZGU+Zm9ybWF0PC9jb2RlPiBtZXRob2RzIG9yIHRoZSByZXN1bHQgYXJyYXkgcmV0dXJuZWQgYnkKKyAgICAgKiB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IG1ldGhvZHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXRzIHVzZWQgZm9yIHRoZSBmb3JtYXQgZWxlbWVudHMgaW4gdGhlIHBhdHRlcm4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRm9ybWF0W10gZ2V0Rm9ybWF0cygpIHsKKyAgICAgICAgRm9ybWF0W10gcmVzdWx0QXJyYXkgPSBuZXcgRm9ybWF0W21heE9mZnNldCArIDFdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZvcm1hdHMsIDAsIHJlc3VsdEFycmF5LCAwLCBtYXhPZmZzZXQgKyAxKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdEFycmF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBhbmQgYXBwZW5kcyB0aGUgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4ncworICAgICAqIHBhdHRlcm4sIHdpdGggZm9ybWF0IGVsZW1lbnRzIHJlcGxhY2VkIGJ5IHRoZSBmb3JtYXR0ZWQgb2JqZWN0cywgdG8gdGhlCisgICAgICogcHJvdmlkZWQgPGNvZGU+U3RyaW5nQnVmZmVyPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgdGV4dCBzdWJzdGl0dXRlZCBmb3IgdGhlIGluZGl2aWR1YWwgZm9ybWF0IGVsZW1lbnRzIGlzIGRlcml2ZWQgZnJvbQorICAgICAqIHRoZSBjdXJyZW50IHN1YmZvcm1hdCBvZiB0aGUgZm9ybWF0IGVsZW1lbnQgYW5kIHRoZQorICAgICAqIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gZWxlbWVudCBhdCB0aGUgZm9ybWF0IGVsZW1lbnQncyBhcmd1bWVudCBpbmRleAorICAgICAqIGFzIGluZGljYXRlZCBieSB0aGUgZmlyc3QgbWF0Y2hpbmcgbGluZSBvZiB0aGUgZm9sbG93aW5nIHRhYmxlLiBBbgorICAgICAqIGFyZ3VtZW50IGlzIDxpPnVuYXZhaWxhYmxlPC9pPiBpZiA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGlzCisgICAgICogPGNvZGU+bnVsbDwvY29kZT4gb3IgaGFzIGZld2VyIHRoYW4gYXJndW1lbnRJbmRleCsxIGVsZW1lbnRzLgorICAgICAqIDxwPgorICAgICAqIDx0YWJsZSBib3JkZXI9MT4KKyAgICAgKiAgICA8dHI+CisgICAgICogICAgICAgPHRoPlN1YmZvcm1hdAorICAgICAqICAgICAgIDx0aD5Bcmd1bWVudAorICAgICAqICAgICAgIDx0aD5Gb3JtYXR0ZWQgVGV4dAorICAgICAqICAgIDx0cj4KKyAgICAgKiAgICAgICA8dGQ+PGk+YW55PC9pPgorICAgICAqICAgICAgIDx0ZD48aT51bmF2YWlsYWJsZTwvaT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+InsiICsgYXJndW1lbnRJbmRleCArICJ9IjwvY29kZT4KKyAgICAgKiAgICA8dHI+CisgICAgICogICAgICAgPHRkPjxpPmFueTwvaT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+bnVsbDwvY29kZT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+Im51bGwiPC9jb2RlPgorICAgICAqICAgIDx0cj4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+aW5zdGFuY2VvZiBDaG9pY2VGb3JtYXQ8L2NvZGU+CisgICAgICogICAgICAgPHRkPjxpPmFueTwvaT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+c3ViZm9ybWF0LmZvcm1hdChhcmd1bWVudCkuaW5kZXhPZigneycpID49IDAgPzxicj4KKyAgICAgKiAgICAgICAgICAgKG5ldyBNZXNzYWdlRm9ybWF0KHN1YmZvcm1hdC5mb3JtYXQoYXJndW1lbnQpLCBnZXRMb2NhbGUoKSkpLmZvcm1hdChhcmd1bWVudCkgOgorICAgICAqICAgICAgICAgICBzdWJmb3JtYXQuZm9ybWF0KGFyZ3VtZW50KTwvY29kZT4KKyAgICAgKiAgICA8dHI+CisgICAgICogICAgICAgPHRkPjxjb2RlPiE9IG51bGw8L2NvZGU+CisgICAgICogICAgICAgPHRkPjxpPmFueTwvaT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+c3ViZm9ybWF0LmZvcm1hdChhcmd1bWVudCk8L2NvZGU+CisgICAgICogICAgPHRyPgorICAgICAqICAgICAgIDx0ZD48Y29kZT5udWxsPC9jb2RlPgorICAgICAqICAgICAgIDx0ZD48Y29kZT5pbnN0YW5jZW9mIE51bWJlcjwvY29kZT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+TnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGdldExvY2FsZSgpKS5mb3JtYXQoYXJndW1lbnQpPC9jb2RlPgorICAgICAqICAgIDx0cj4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+bnVsbDwvY29kZT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+aW5zdGFuY2VvZiBEYXRlPC9jb2RlPgorICAgICAqICAgICAgIDx0ZD48Y29kZT5EYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5TSE9SVCwgRGF0ZUZvcm1hdC5TSE9SVCwgZ2V0TG9jYWxlKCkpLmZvcm1hdChhcmd1bWVudCk8L2NvZGU+CisgICAgICogICAgPHRyPgorICAgICAqICAgICAgIDx0ZD48Y29kZT5udWxsPC9jb2RlPgorICAgICAqICAgICAgIDx0ZD48Y29kZT5pbnN0YW5jZW9mIFN0cmluZzwvY29kZT4KKyAgICAgKiAgICAgICA8dGQ+PGNvZGU+YXJndW1lbnQ8L2NvZGU+CisgICAgICogICAgPHRyPgorICAgICAqICAgICAgIDx0ZD48Y29kZT5udWxsPC9jb2RlPgorICAgICAqICAgICAgIDx0ZD48aT5hbnk8L2k+CisgICAgICogICAgICAgPHRkPjxjb2RlPmFyZ3VtZW50LnRvU3RyaW5nKCk8L2NvZGU+CisgICAgICogPC90YWJsZT4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiA8Y29kZT5wb3M8L2NvZGU+IGlzIG5vbi1udWxsLCBhbmQgcmVmZXJzIHRvCisgICAgICogPGNvZGU+RmllbGQuQVJHVU1FTlQ8L2NvZGU+LCB0aGUgbG9jYXRpb24gb2YgdGhlIGZpcnN0IGZvcm1hdHRlZAorICAgICAqIHN0cmluZyB3aWxsIGJlIHJldHVybmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGFyZ3VtZW50cyBhbiBhcnJheSBvZiBvYmplY3RzIHRvIGJlIGZvcm1hdHRlZCBhbmQgc3Vic3RpdHV0ZWQuCisgICAgICogQHBhcmFtIHJlc3VsdCB3aGVyZSB0ZXh0IGlzIGFwcGVuZGVkLgorICAgICAqIEBwYXJhbSBwb3MgT24gaW5wdXQ6IGFuIGFsaWdubWVudCBmaWVsZCwgaWYgZGVzaXJlZC4KKyAgICAgKiAgICAgICAgICAgIE9uIG91dHB1dDogdGhlIG9mZnNldHMgb2YgdGhlIGFsaWdubWVudCBmaWVsZC4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbiBhcmd1bWVudCBpbiB0aGUKKyAgICAgKiAgICAgICAgICAgIDxjb2RlPmFyZ3VtZW50czwvY29kZT4gYXJyYXkgaXMgbm90IG9mIHRoZSB0eXBlCisgICAgICogICAgICAgICAgICBleHBlY3RlZCBieSB0aGUgZm9ybWF0IGVsZW1lbnQocykgdGhhdCB1c2UgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZ0J1ZmZlciBmb3JtYXQoT2JqZWN0W10gYXJndW1lbnRzLCBTdHJpbmdCdWZmZXIgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN1YmZvcm1hdChhcmd1bWVudHMsIHJlc3VsdCwgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgTWVzc2FnZUZvcm1hdCB3aXRoIHRoZSBnaXZlbiBwYXR0ZXJuIGFuZCB1c2VzIGl0CisgICAgICogdG8gZm9ybWF0IHRoZSBnaXZlbiBhcmd1bWVudHMuIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDxibG9ja3F1b3RlPgorICAgICAqICAgICA8Y29kZT4obmV3IHtAbGluayAjTWVzc2FnZUZvcm1hdChTdHJpbmcpIE1lc3NhZ2VGb3JtYXR9KHBhdHRlcm4pKS57QGxpbmsgI2Zvcm1hdChqYXZhLmxhbmcuT2JqZWN0W10sIGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEudGV4dC5GaWVsZFBvc2l0aW9uKSBmb3JtYXR9KGFyZ3VtZW50cywgbmV3IFN0cmluZ0J1ZmZlcigpLCBudWxsKS50b1N0cmluZygpPC9jb2RlPgorICAgICAqIDwvYmxvY2txdW90ZT4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGlzIGludmFsaWQsCisgICAgICogICAgICAgICAgICBvciBpZiBhbiBhcmd1bWVudCBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheQorICAgICAqICAgICAgICAgICAgaXMgbm90IG9mIHRoZSB0eXBlIGV4cGVjdGVkIGJ5IHRoZSBmb3JtYXQgZWxlbWVudChzKQorICAgICAqICAgICAgICAgICAgdGhhdCB1c2UgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBPYmplY3RbXSBhcmd1bWVudHMpIHsKKyAgICAgICAgTWVzc2FnZUZvcm1hdCB0ZW1wID0gbmV3IE1lc3NhZ2VGb3JtYXQocGF0dGVybik7CisgICAgICAgIHJldHVybiB0ZW1wLmZvcm1hdChhcmd1bWVudHMpOworICAgIH0KKworICAgIC8vIE92ZXJyaWRlcworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBhbmQgYXBwZW5kcyB0aGUgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4ncworICAgICAqIHBhdHRlcm4sIHdpdGggZm9ybWF0IGVsZW1lbnRzIHJlcGxhY2VkIGJ5IHRoZSBmb3JtYXR0ZWQgb2JqZWN0cywgdG8gdGhlCisgICAgICogcHJvdmlkZWQgPGNvZGU+U3RyaW5nQnVmZmVyPC9jb2RlPi4KKyAgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiA8YmxvY2txdW90ZT4KKyAgICAgKiAgICAgPGNvZGU+e0BsaW5rICNmb3JtYXQoamF2YS5sYW5nLk9iamVjdFtdLCBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbikgZm9ybWF0fSgoT2JqZWN0W10pIGFyZ3VtZW50cywgcmVzdWx0LCBwb3MpPC9jb2RlPgorICAgICAqIDwvYmxvY2txdW90ZT4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhcmd1bWVudHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB0byBiZSBmb3JtYXR0ZWQgYW5kIHN1YnN0aXR1dGVkLgorICAgICAqIEBwYXJhbSByZXN1bHQgd2hlcmUgdGV4dCBpcyBhcHBlbmRlZC4KKyAgICAgKiBAcGFyYW0gcG9zIE9uIGlucHV0OiBhbiBhbGlnbm1lbnQgZmllbGQsIGlmIGRlc2lyZWQuCisgICAgICogICAgICAgICAgICBPbiBvdXRwdXQ6IHRoZSBvZmZzZXRzIG9mIHRoZSBhbGlnbm1lbnQgZmllbGQuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgYW4gYXJndW1lbnQgaW4gdGhlCisgICAgICogICAgICAgICAgICA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IGlzIG5vdCBvZiB0aGUgdHlwZQorICAgICAqICAgICAgICAgICAgZXhwZWN0ZWQgYnkgdGhlIGZvcm1hdCBlbGVtZW50KHMpIHRoYXQgdXNlIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmdCdWZmZXIgZm9ybWF0KE9iamVjdCBhcmd1bWVudHMsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpCisgICAgeworICAgICAgICByZXR1cm4gc3ViZm9ybWF0KChPYmplY3RbXSkgYXJndW1lbnRzLCByZXN1bHQsIHBvcyk7CisgICAgfQorCisvLyBUT0RPIERvIG5vdCByZW1vdmUsIHRoaXMgaXMgQVBJIGluIEpESyB0aGF0IHdlIG5lZWQgdG8gaW1wbGVtZW50CisvLyAgICAvKioKKy8vICAgICAqIEZvcm1hdHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBhbmQgaW5zZXJ0cyB0aGVtIGludG8gdGhlCisvLyAgICAgKiA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPidzIHBhdHRlcm4sIHByb2R1Y2luZyBhbgorLy8gICAgICogPGNvZGU+QXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPi4KKy8vICAgICAqIFlvdSBjYW4gdXNlIHRoZSByZXR1cm5lZCA8Y29kZT5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+CisvLyAgICAgKiB0byBidWlsZCB0aGUgcmVzdWx0aW5nIFN0cmluZywgYXMgd2VsbCBhcyB0byBkZXRlcm1pbmUgaW5mb3JtYXRpb24KKy8vICAgICAqIGFib3V0IHRoZSByZXN1bHRpbmcgU3RyaW5nLgorLy8gICAgICogPHA+CisvLyAgICAgKiBUaGUgdGV4dCBvZiB0aGUgcmV0dXJuZWQgPGNvZGU+QXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBpcworLy8gICAgICogdGhlIHNhbWUgdGhhdCB3b3VsZCBiZSByZXR1cm5lZCBieQorLy8gICAgICogPGJsb2NrcXVvdGU+CisvLyAgICAgKiAgICAgPGNvZGU+e0BsaW5rICNmb3JtYXQoamF2YS5sYW5nLk9iamVjdFtdLCBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbikgZm9ybWF0fShhcmd1bWVudHMsIG5ldyBTdHJpbmdCdWZmZXIoKSwgbnVsbCkudG9TdHJpbmcoKTwvY29kZT4KKy8vICAgICAqIDwvYmxvY2txdW90ZT4KKy8vICAgICAqIDxwPgorLy8gICAgICogSW4gYWRkaXRpb24sIHRoZSA8Y29kZT5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IGNvbnRhaW5zIGF0CisvLyAgICAgKiBsZWFzdCBhdHRyaWJ1dGVzIGluZGljYXRpbmcgd2hlcmUgdGV4dCB3YXMgZ2VuZXJhdGVkIGZyb20gYW4KKy8vICAgICAqIGFyZ3VtZW50IGluIHRoZSA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5LiBUaGUga2V5cyBvZiB0aGVzZSBhdHRyaWJ1dGVzIGFyZSBvZgorLy8gICAgICogdHlwZSA8Y29kZT5NZXNzYWdlRm9ybWF0LkZpZWxkPC9jb2RlPiwgdGhlaXIgdmFsdWVzIGFyZQorLy8gICAgICogPGNvZGU+SW50ZWdlcjwvY29kZT4gb2JqZWN0cyBpbmRpY2F0aW5nIHRoZSBpbmRleCBpbiB0aGUgPGNvZGU+YXJndW1lbnRzPC9jb2RlPgorLy8gICAgICogYXJyYXkgb2YgdGhlIGFyZ3VtZW50IGZyb20gd2hpY2ggdGhlIHRleHQgd2FzIGdlbmVyYXRlZC4KKy8vICAgICAqIDxwPgorLy8gICAgICogVGhlIGF0dHJpYnV0ZXMvdmFsdWUgZnJvbSB0aGUgdW5kZXJseWluZyA8Y29kZT5Gb3JtYXQ8L2NvZGU+CisvLyAgICAgKiBpbnN0YW5jZXMgdGhhdCA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiB1c2VzIHdpbGwgYWxzbyBiZQorLy8gICAgICogcGxhY2VkIGluIHRoZSByZXN1bHRpbmcgPGNvZGU+QXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPi4KKy8vICAgICAqIFRoaXMgYWxsb3dzIHlvdSB0byBub3Qgb25seSBmaW5kIHdoZXJlIGFuIGFyZ3VtZW50IGlzIHBsYWNlZCBpbiB0aGUKKy8vICAgICAqIHJlc3VsdGluZyBTdHJpbmcsIGJ1dCBhbHNvIHdoaWNoIGZpZWxkcyBpdCBjb250YWlucyBpbiB0dXJuLgorLy8gICAgICoKKy8vICAgICAqIEBwYXJhbSBhcmd1bWVudHMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB0byBiZSBmb3JtYXR0ZWQgYW5kIHN1YnN0aXR1dGVkLgorLy8gICAgICogQHJldHVybiBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IgZGVzY3JpYmluZyB0aGUgZm9ybWF0dGVkIHZhbHVlLgorLy8gICAgICogQGV4Y2VwdGlvbiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGlzIG51bGwuCisvLyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbiBhcmd1bWVudCBpbiB0aGUKKy8vICAgICAqICAgICAgICAgICAgPGNvZGU+YXJndW1lbnRzPC9jb2RlPiBhcnJheSBpcyBub3Qgb2YgdGhlIHR5cGUKKy8vICAgICAqICAgICAgICAgICAgZXhwZWN0ZWQgYnkgdGhlIGZvcm1hdCBlbGVtZW50KHMpIHRoYXQgdXNlIGl0LgorLy8gICAgICovCisvLyAgICBwdWJsaWMgQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIGZvcm1hdFRvQ2hhcmFjdGVySXRlcmF0b3IoT2JqZWN0IGFyZ3VtZW50cykgeworLy8gICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisvLyAgICAgICAgQXJyYXlMaXN0IGl0ZXJhdG9ycyA9IG5ldyBBcnJheUxpc3QoKTsKKy8vCisvLyAgICAgICAgaWYgKGFyZ3VtZW50cyA9PSBudWxsKSB7CisvLyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigKKy8vICAgICAgICAgICAgICAgICAgICJmb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yIG11c3QgYmUgcGFzc2VkIG5vbi1udWxsIG9iamVjdCIpOworLy8gICAgICAgIH0KKy8vICAgICAgICBzdWJmb3JtYXQoKE9iamVjdFtdKSBhcmd1bWVudHMsIHJlc3VsdCwgbnVsbCwgaXRlcmF0b3JzKTsKKy8vICAgICAgICBpZiAoaXRlcmF0b3JzLnNpemUoKSA9PSAwKSB7CisvLyAgICAgICAgICAgIHJldHVybiBjcmVhdGVBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IoIiIpOworLy8gICAgICAgIH0KKy8vICAgICAgICByZXR1cm4gY3JlYXRlQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yKAorLy8gICAgICAgICAgICAgICAgICAgICAoQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yW10paXRlcmF0b3JzLnRvQXJyYXkoCisvLyAgICAgICAgICAgICAgICAgICAgIG5ldyBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3JbaXRlcmF0b3JzLnNpemUoKV0pKTsKKy8vICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlcyB0aGUgc3RyaW5nLgorICAgICAqCisgICAgICogPHA+Q2F2ZWF0czogVGhlIHBhcnNlIG1heSBmYWlsIGluIGEgbnVtYmVyIG9mIGNpcmN1bXN0YW5jZXMuCisgICAgICogRm9yIGV4YW1wbGU6CisgICAgICogPHVsPgorICAgICAqIDxsaT5JZiBvbmUgb2YgdGhlIGFyZ3VtZW50cyBkb2VzIG5vdCBvY2N1ciBpbiB0aGUgcGF0dGVybi4KKyAgICAgKiA8bGk+SWYgdGhlIGZvcm1hdCBvZiBhbiBhcmd1bWVudCBsb3NlcyBpbmZvcm1hdGlvbiwgc3VjaCBhcworICAgICAqICAgICB3aXRoIGEgY2hvaWNlIGZvcm1hdCB3aGVyZSBhIGxhcmdlIG51bWJlciBmb3JtYXRzIHRvICJtYW55Ii4KKyAgICAgKiA8bGk+RG9lcyBub3QgeWV0IGhhbmRsZSByZWN1cnNpb24gKHdoZXJlCisgICAgICogICAgIHRoZSBzdWJzdGl0dXRlZCBzdHJpbmdzIGNvbnRhaW4ge259IHJlZmVyZW5jZXMuKQorICAgICAqIDxsaT5XaWxsIG5vdCBhbHdheXMgZmluZCBhIG1hdGNoIChvciB0aGUgY29ycmVjdCBtYXRjaCkKKyAgICAgKiAgICAgaWYgc29tZSBwYXJ0IG9mIHRoZSBwYXJzZSBpcyBhbWJpZ3VvdXMuCisgICAgICogICAgIEZvciBleGFtcGxlLCBpZiB0aGUgcGF0dGVybiAiezF9LHsyfSIgaXMgdXNlZCB3aXRoIHRoZQorICAgICAqICAgICBzdHJpbmcgYXJndW1lbnRzIHsiYSxiIiwgImMifSwgaXQgd2lsbCBmb3JtYXQgYXMgImEsYixjIi4KKyAgICAgKiAgICAgV2hlbiB0aGUgcmVzdWx0IGlzIHBhcnNlZCwgaXQgd2lsbCByZXR1cm4geyJhIiwgImIsYyJ9LgorICAgICAqIDxsaT5JZiBhIHNpbmdsZSBhcmd1bWVudCBpcyBwYXJzZWQgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIHN0cmluZywKKyAgICAgKiAgICAgdGhlbiB0aGUgbGF0ZXIgcGFyc2Ugd2lucy4KKyAgICAgKiA8L3VsPgorICAgICAqIFdoZW4gdGhlIHBhcnNlIGZhaWxzLCB1c2UgUGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkgdG8gZmluZCBvdXQKKyAgICAgKiB3aGVyZSBpbiB0aGUgc3RyaW5nIGRpZCB0aGUgcGFyc2luZyBmYWlsZWQuICBUaGUgcmV0dXJuZWQgZXJyb3IKKyAgICAgKiBpbmRleCBpcyB0aGUgc3RhcnRpbmcgb2Zmc2V0IG9mIHRoZSBzdWItcGF0dGVybnMgdGhhdCB0aGUgc3RyaW5nCisgICAgICogaXMgY29tcGFyaW5nIHdpdGguICBGb3IgZXhhbXBsZSwgaWYgdGhlIHBhcnNpbmcgc3RyaW5nICJBQUEgezB9IEJCQiIKKyAgICAgKiBpcyBjb21wYXJpbmcgYWdhaW5zdCB0aGUgcGF0dGVybiAiQUFEIHswfSBCQkIiLCB0aGUgZXJyb3IgaW5kZXggaXMKKyAgICAgKiAwLiBXaGVuIGFuIGVycm9yIG9jY3VycywgdGhlIGNhbGwgdG8gdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gbnVsbC4KKyAgICAgKiBJZiB0aGUgc291cmNlIGlzIG51bGwsIHJldHVybiBhbiBlbXB0eSBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0W10gcGFyc2UoU3RyaW5nIHNvdXJjZSwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICBPYmplY3RbXSBlbXB0eSA9IHt9OworICAgICAgICAgICAgcmV0dXJuIGVtcHR5OworICAgICAgICB9CisKKyAgICAgICAgaW50IG1heGltdW1Bcmd1bWVudE51bWJlciA9IC0xOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBtYXhPZmZzZXQ7IGkrKykgeworICAgICAgICAgICAgaWYgKGFyZ3VtZW50TnVtYmVyc1tpXSA+IG1heGltdW1Bcmd1bWVudE51bWJlcikgeworICAgICAgICAgICAgICAgIG1heGltdW1Bcmd1bWVudE51bWJlciA9IGFyZ3VtZW50TnVtYmVyc1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBPYmplY3RbXSByZXN1bHRBcnJheSA9IG5ldyBPYmplY3RbbWF4aW11bUFyZ3VtZW50TnVtYmVyICsgMV07CisKKyAgICAgICAgaW50IHBhdHRlcm5PZmZzZXQgPSAwOworICAgICAgICBpbnQgc291cmNlT2Zmc2V0ID0gcG9zLmdldEluZGV4KCk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gdGVtcFN0YXR1cyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBtYXhPZmZzZXQ7ICsraSkgeworICAgICAgICAgICAgLy8gbWF0Y2ggdXAgdG8gZm9ybWF0CisgICAgICAgICAgICBpbnQgbGVuID0gb2Zmc2V0c1tpXSAtIHBhdHRlcm5PZmZzZXQ7CisgICAgICAgICAgICBpZiAobGVuID09IDAgfHwgcGF0dGVybi5yZWdpb25NYXRjaGVzKHBhdHRlcm5PZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgc291cmNlT2Zmc2V0LCBsZW4pKSB7CisgICAgICAgICAgICAgICAgc291cmNlT2Zmc2V0ICs9IGxlbjsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuT2Zmc2V0ICs9IGxlbjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcG9zLnNldEVycm9ySW5kZXgoc291cmNlT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsgLy8gbGVhdmUgaW5kZXggYXMgaXMgdG8gc2lnbmFsIGVycm9yCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG5vdyB1c2UgZm9ybWF0CisgICAgICAgICAgICBpZiAoZm9ybWF0c1tpXSA9PSBudWxsKSB7ICAgLy8gc3RyaW5nIGZvcm1hdAorICAgICAgICAgICAgICAgIC8vIGlmIGF0IGVuZCwgdXNlIGxvbmdlc3QgcG9zc2libGUgbWF0Y2gKKyAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UgdXNlcyBmaXJzdCBtYXRjaCB0byBpbnRlcnZlbmluZyBzdHJpbmcKKyAgICAgICAgICAgICAgICAvLyBkb2VzIE5PVCByZWN1cnNpdmVseSB0cnkgYWxsIHBvc3NpYmlsaXRpZXMKKyAgICAgICAgICAgICAgICBpbnQgdGVtcExlbmd0aCA9IChpICE9IG1heE9mZnNldCkgPyBvZmZzZXRzW2krMV0gOiBwYXR0ZXJuLmxlbmd0aCgpOworCisgICAgICAgICAgICAgICAgaW50IG5leHQ7CisgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm5PZmZzZXQgPj0gdGVtcExlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBuZXh0ID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBuZXh0ID0gc291cmNlLmluZGV4T2YoIHBhdHRlcm4uc3Vic3RyaW5nKHBhdHRlcm5PZmZzZXQsdGVtcExlbmd0aCksIHNvdXJjZU9mZnNldCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG5leHQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRFcnJvckluZGV4KHNvdXJjZU9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOyAvLyBsZWF2ZSBpbmRleCBhcyBpcyB0byBzaWduYWwgZXJyb3IKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyVmFsdWU9IHNvdXJjZS5zdWJzdHJpbmcoc291cmNlT2Zmc2V0LG5leHQpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXN0clZhbHVlLmVxdWFscygieyIrYXJndW1lbnROdW1iZXJzW2ldKyJ9IikpCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRBcnJheVthcmd1bWVudE51bWJlcnNbaV1dCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzb3VyY2Uuc3Vic3RyaW5nKHNvdXJjZU9mZnNldCxuZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgc291cmNlT2Zmc2V0ID0gbmV4dDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRlbXBTdGF0dXMuc2V0SW5kZXgoc291cmNlT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICByZXN1bHRBcnJheVthcmd1bWVudE51bWJlcnNbaV1dCisgICAgICAgICAgICAgICAgICAgID0gZm9ybWF0c1tpXS5wYXJzZU9iamVjdChzb3VyY2UsdGVtcFN0YXR1cyk7CisgICAgICAgICAgICAgICAgaWYgKHRlbXBTdGF0dXMuZ2V0SW5kZXgoKSA9PSBzb3VyY2VPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcG9zLnNldEVycm9ySW5kZXgoc291cmNlT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIGxlYXZlIGluZGV4IGFzIGlzIHRvIHNpZ25hbCBlcnJvcgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzb3VyY2VPZmZzZXQgPSB0ZW1wU3RhdHVzLmdldEluZGV4KCk7IC8vIHVwZGF0ZQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGludCBsZW4gPSBwYXR0ZXJuLmxlbmd0aCgpIC0gcGF0dGVybk9mZnNldDsKKyAgICAgICAgaWYgKGxlbiA9PSAwIHx8IHBhdHRlcm4ucmVnaW9uTWF0Y2hlcyhwYXR0ZXJuT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgc291cmNlT2Zmc2V0LCBsZW4pKSB7CisgICAgICAgICAgICBwb3Muc2V0SW5kZXgoc291cmNlT2Zmc2V0ICsgbGVuKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBvcy5zZXRFcnJvckluZGV4KHNvdXJjZU9mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsgLy8gbGVhdmUgaW5kZXggYXMgaXMgdG8gc2lnbmFsIGVycm9yCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdEFycmF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlcyB0ZXh0IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgZ2l2ZW4gc3RyaW5nIHRvIHByb2R1Y2UgYW4gb2JqZWN0CisgICAgICogYXJyYXkuCisgICAgICogVGhlIG1ldGhvZCBtYXkgbm90IHVzZSB0aGUgZW50aXJlIHRleHQgb2YgdGhlIGdpdmVuIHN0cmluZy4KKyAgICAgKiA8cD4KKyAgICAgKiBTZWUgdGhlIHtAbGluayAjcGFyc2UoU3RyaW5nLCBQYXJzZVBvc2l0aW9uKX0gbWV0aG9kIGZvciBtb3JlIGluZm9ybWF0aW9uCisgICAgICogb24gbWVzc2FnZSBwYXJzaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZSBBIDxjb2RlPlN0cmluZzwvY29kZT4gd2hvc2UgYmVnaW5uaW5nIHNob3VsZCBiZSBwYXJzZWQuCisgICAgICogQHJldHVybiBBbiA8Y29kZT5PYmplY3Q8L2NvZGU+IGFycmF5IHBhcnNlZCBmcm9tIHRoZSBzdHJpbmcuCisgICAgICogQGV4Y2VwdGlvbiBQYXJzZUV4Y2VwdGlvbiBpZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzcGVjaWZpZWQgc3RyaW5nCisgICAgICogICAgICAgICAgICBjYW5ub3QgYmUgcGFyc2VkLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXSBwYXJzZShTdHJpbmcgc291cmNlKSB0aHJvd3MgUGFyc2VFeGNlcHRpb24geworICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcyAgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgT2JqZWN0W10gcmVzdWx0ID0gcGFyc2Uoc291cmNlLCBwb3MpOworICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgPT0gMCkgIC8vIHVuY2hhbmdlZCwgcmV0dXJuZWQgb2JqZWN0IGlzIG51bGwKKyAgICAgICAgICAgIHRocm93IG5ldyBQYXJzZUV4Y2VwdGlvbigiTWVzc2FnZUZvcm1hdCBwYXJzZSBlcnJvciEiLCBwb3MuZ2V0RXJyb3JJbmRleCgpKTsKKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlcyB0ZXh0IGZyb20gYSBzdHJpbmcgdG8gcHJvZHVjZSBhbiBvYmplY3QgYXJyYXkuCisgICAgICogPHA+CisgICAgICogVGhlIG1ldGhvZCBhdHRlbXB0cyB0byBwYXJzZSB0ZXh0IHN0YXJ0aW5nIGF0IHRoZSBpbmRleCBnaXZlbiBieQorICAgICAqIDxjb2RlPnBvczwvY29kZT4uCisgICAgICogSWYgcGFyc2luZyBzdWNjZWVkcywgdGhlbiB0aGUgaW5kZXggb2YgPGNvZGU+cG9zPC9jb2RlPiBpcyB1cGRhdGVkCisgICAgICogdG8gdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciB1c2VkIChwYXJzaW5nIGRvZXMgbm90IG5lY2Vzc2FyaWx5CisgICAgICogdXNlIGFsbCBjaGFyYWN0ZXJzIHVwIHRvIHRoZSBlbmQgb2YgdGhlIHN0cmluZyksIGFuZCB0aGUgcGFyc2VkCisgICAgICogb2JqZWN0IGFycmF5IGlzIHJldHVybmVkLiBUaGUgdXBkYXRlZCA8Y29kZT5wb3M8L2NvZGU+IGNhbiBiZSB1c2VkIHRvCisgICAgICogaW5kaWNhdGUgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB0aGUgbmV4dCBjYWxsIHRvIHRoaXMgbWV0aG9kLgorICAgICAqIElmIGFuIGVycm9yIG9jY3VycywgdGhlbiB0aGUgaW5kZXggb2YgPGNvZGU+cG9zPC9jb2RlPiBpcyBub3QKKyAgICAgKiBjaGFuZ2VkLCB0aGUgZXJyb3IgaW5kZXggb2YgPGNvZGU+cG9zPC9jb2RlPiBpcyBzZXQgdG8gdGhlIGluZGV4IG9mCisgICAgICogdGhlIGNoYXJhY3RlciB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQsIGFuZCBudWxsIGlzIHJldHVybmVkLgorICAgICAqIDxwPgorICAgICAqIFNlZSB0aGUge0BsaW5rICNwYXJzZShTdHJpbmcsIFBhcnNlUG9zaXRpb24pfSBtZXRob2QgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyAgICAgKiBvbiBtZXNzYWdlIHBhcnNpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlIEEgPGNvZGU+U3RyaW5nPC9jb2RlPiwgcGFydCBvZiB3aGljaCBzaG91bGQgYmUgcGFyc2VkLgorICAgICAqIEBwYXJhbSBwb3MgQSA8Y29kZT5QYXJzZVBvc2l0aW9uPC9jb2RlPiBvYmplY3Qgd2l0aCBpbmRleCBhbmQgZXJyb3IKKyAgICAgKiAgICAgICAgICAgIGluZGV4IGluZm9ybWF0aW9uIGFzIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgKiBAcmV0dXJuIEFuIDxjb2RlPk9iamVjdDwvY29kZT4gYXJyYXkgcGFyc2VkIGZyb20gdGhlIHN0cmluZy4gSW4gY2FzZSBvZgorICAgICAqICAgICAgICAgZXJyb3IsIHJldHVybnMgbnVsbC4KKyAgICAgKiBAZXhjZXB0aW9uIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIDxjb2RlPnBvczwvY29kZT4gaXMgbnVsbC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IHBhcnNlT2JqZWN0KFN0cmluZyBzb3VyY2UsIFBhcnNlUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBwYXJzZShzb3VyY2UsIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIGNvcHkgb2YgdGhpcyBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgY2xvbmUgb2YgdGhpcyBpbnN0YW5jZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICBNZXNzYWdlRm9ybWF0IG90aGVyID0gKE1lc3NhZ2VGb3JtYXQpIHN1cGVyLmNsb25lKCk7CisKKyAgICAgICAgLy8gY2xvbmUgYXJyYXlzLiBDYW4ndCBkbyB3aXRoIHV0aWxpdHkgYmVjYXVzZSBvZiBidWcgaW4gQ2xvbmVhYmxlCisgICAgICAgIG90aGVyLmZvcm1hdHMgPSAoRm9ybWF0W10pIGZvcm1hdHMuY2xvbmUoKTsgLy8gc2hhbGxvdyBjbG9uZQorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZvcm1hdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChmb3JtYXRzW2ldICE9IG51bGwpCisgICAgICAgICAgICAgICAgb3RoZXIuZm9ybWF0c1tpXSA9IChGb3JtYXQpZm9ybWF0c1tpXS5jbG9uZSgpOworICAgICAgICB9CisgICAgICAgIC8vIGZvciBwcmltaXRpdmVzIG9yIGltbXV0YWJsZXMsIHNoYWxsb3cgY2xvbmUgaXMgZW5vdWdoCisgICAgICAgIG90aGVyLm9mZnNldHMgPSAoaW50W10pIG9mZnNldHMuY2xvbmUoKTsKKyAgICAgICAgb3RoZXIuYXJndW1lbnROdW1iZXJzID0gKGludFtdKSBhcmd1bWVudE51bWJlcnMuY2xvbmUoKTsKKworICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogRXF1YWxpdHkgY29tcGFyaXNvbiBiZXR3ZWVuIHR3byBtZXNzYWdlIGZvcm1hdCBvYmplY3RzCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSAgICAgICAgICAgICAgICAgICAgICAvLyBxdWljayBjaGVjaworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCB8fCBnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBNZXNzYWdlRm9ybWF0IG90aGVyID0gKE1lc3NhZ2VGb3JtYXQpIG9iajsKKyAgICAgICAgcmV0dXJuIChtYXhPZmZzZXQgPT0gb3RoZXIubWF4T2Zmc2V0CisgICAgICAgICAgICAgICAgJiYgcGF0dGVybi5lcXVhbHMob3RoZXIucGF0dGVybikKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5Lm9iamVjdEVxdWFscyh1bG9jYWxlLCBvdGhlci51bG9jYWxlKSAgIC8vIGRvZXMgbnVsbCBjaGVjaworICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMob2Zmc2V0cyxvdGhlci5vZmZzZXRzKQorICAgICAgICAgICAgICAgICYmIFV0aWxpdHkuYXJyYXlFcXVhbHMoYXJndW1lbnROdW1iZXJzLG90aGVyLmFyZ3VtZW50TnVtYmVycykKKyAgICAgICAgICAgICAgICAmJiBVdGlsaXR5LmFycmF5RXF1YWxzKGZvcm1hdHMsb3RoZXIuZm9ybWF0cykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhlIG1lc3NhZ2UgZm9ybWF0IG9iamVjdC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gcGF0dGVybi5oYXNoQ29kZSgpOyAvLyBlbm91Z2ggZm9yIHJlYXNvbmFibGUgZGlzdHJpYnV0aW9uCisgICAgfQorCisvLyBUT0RPIERvIG5vdCByZW1vdmUsIHRoaXMgaXMgQVBJIGluIEpESyB0aGF0IHdlIG5lZWQgdG8gaW1wbGVtZW50CisvLyAgICAvKioKKy8vICAgICAqIERlZmluZXMgY29uc3RhbnRzIHRoYXQgYXJlIHVzZWQgYXMgYXR0cmlidXRlIGtleXMgaW4gdGhlCisvLyAgICAgKiA8Y29kZT5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IHJldHVybmVkCisvLyAgICAgKiBmcm9tIDxjb2RlPk1lc3NhZ2VGb3JtYXQuZm9ybWF0VG9DaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4uCisvLyAgICAgKiBAZHJhZnQgSUNVIDMuMAorLy8gICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisvLyAgICAgKi8KKy8vICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRmllbGQgZXh0ZW5kcyBGb3JtYXQuRmllbGQgeworLy8gICAgICAgIC8qKgorLy8gICAgICAgICAqIENyZWF0ZXMgYSBGaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS4KKy8vICAgICAgICAgKgorLy8gICAgICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZQorLy8gICAgICAgICAqLworLy8gICAgICAgIHByb3RlY3RlZCBGaWVsZChTdHJpbmcgbmFtZSkgeworLy8gICAgICAgICAgICBzdXBlcihuYW1lKTsKKy8vICAgICAgICB9CisvLworLy8gICAgICAgIC8qKgorLy8gICAgICAgICAqIFJlc29sdmVzIGluc3RhbmNlcyBiZWluZyBkZXNlcmlhbGl6ZWQgdG8gdGhlIHByZWRlZmluZWQgY29uc3RhbnRzLgorLy8gICAgICAgICAqCisvLyAgICAgICAgICogQHRocm93cyBJbnZhbGlkT2JqZWN0RXhjZXB0aW9uIGlmIHRoZSBjb25zdGFudCBjb3VsZCBub3QgYmUKKy8vICAgICAgICAgKiAgICAgICAgIHJlc29sdmVkLgorLy8gICAgICAgICAqIEByZXR1cm4gcmVzb2x2ZWQgTWVzc2FnZUZvcm1hdC5GaWVsZCBjb25zdGFudAorLy8gICAgICAgICAqLworLy8gICAgICAgIHByb3RlY3RlZCBPYmplY3QgcmVhZFJlc29sdmUoKSB0aHJvd3MgSW52YWxpZE9iamVjdEV4Y2VwdGlvbiB7CisvLyAgICAgICAgICAgIGlmICh0aGlzLmdldENsYXNzKCkgIT0gTWVzc2FnZUZvcm1hdC5GaWVsZC5jbGFzcykgeworLy8gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPYmplY3RFeGNlcHRpb24oInN1YmNsYXNzIGRpZG4ndCBjb3JyZWN0bHkgaW1wbGVtZW50IHJlYWRSZXNvbHZlIik7CisvLyAgICAgICAgICAgIH0KKy8vCisvLyAgICAgICAgICAgIHJldHVybiBBUkdVTUVOVDsKKy8vICAgICAgICB9CisvLworLy8gICAgICAgIC8vCisvLyAgICAgICAgLy8gVGhlIGNvbnN0YW50cworLy8gICAgICAgIC8vCisvLworLy8gICAgICAgIC8qKgorLy8gICAgICAgICAqIENvbnN0YW50IGlkZW50aWZ5aW5nIGEgcG9ydGlvbiBvZiBhIG1lc3NhZ2UgdGhhdCB3YXMgZ2VuZXJhdGVkCisvLyAgICAgICAgICogZnJvbSBhbiBhcmd1bWVudCBwYXNzZWQgaW50byA8Y29kZT5mb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPi4KKy8vICAgICAgICAgKiBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXkgd2lsbCBiZSBhbiA8Y29kZT5JbnRlZ2VyPC9jb2RlPgorLy8gICAgICAgICAqIGluZGljYXRpbmcgdGhlIGluZGV4IGluIHRoZSA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IG9mIHRoZQorLy8gICAgICAgICAqIGFyZ3VtZW50IGZyb20gd2hpY2ggdGhlIHRleHQgd2FzIGdlbmVyYXRlZC4KKy8vICAgICAgICAgKi8KKy8vICAgICAgICBwdWJsaWMgZmluYWwgc3RhdGljIEZpZWxkIEFSR1VNRU5UID0KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpZWxkKCJtZXNzYWdlIGFyZ3VtZW50IGZpZWxkIik7CisvLyAgICB9CisKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT1wcml2YXRlcz09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoZSBsb2NhbGUgdG8gdXNlIGZvciBmb3JtYXR0aW5nIG51bWJlcnMgYW5kIGRhdGVzLgorICAgICAqIFRoaXMgaXMgbm8gbG9uZ2VyIHVzZWQsIGFuZCBoZXJlIG9ubHkgZm9yIHNlcmlhbGl6YXRpb24gY29tcGF0aWJpbGl0eS4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBMb2NhbGUgbG9jYWxlOworCisgICAgLyoqCisgICAgICogVGhlIGxvY2FsZSB0byB1c2UgZm9yIGZvcm1hdHRpbmcgbnVtYmVycyBhbmQgZGF0ZXMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSB1bG9jYWxlOworCisgICAgLyoqCisgICAgICogVGhlIHN0cmluZyB0aGF0IHRoZSBmb3JtYXR0ZWQgdmFsdWVzIGFyZSB0byBiZSBwbHVnZ2VkIGludG8uICBJbiBvdGhlciB3b3JkcywgdGhpcworICAgICAqIGlzIHRoZSBwYXR0ZXJuIHN1cHBsaWVkIG9uIGNvbnN0cnVjdGlvbiB3aXRoIGFsbCBvZiB0aGUge30gZXhwcmVzc2lvbnMgdGFrZW4gb3V0LgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXR0ZXJuID0gIiI7CisKKyAgICAvKiogVGhlIGluaXRpYWxseSBleHBlY3RlZCBudW1iZXIgb2Ygc3ViZm9ybWF0cyBpbiB0aGUgZm9ybWF0ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOSVRJQUxfRk9STUFUUyA9IDEwOworCisgICAgLyoqCisgICAgICogQW4gYXJyYXkgb2YgZm9ybWF0dGVycywgd2hpY2ggYXJlIHVzZWQgdG8gZm9ybWF0IHRoZSBhcmd1bWVudHMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgRm9ybWF0W10gZm9ybWF0cyA9IG5ldyBGb3JtYXRbSU5JVElBTF9GT1JNQVRTXTsKKworICAgIC8qKgorICAgICAqIFRoZSBwb3NpdGlvbnMgd2hlcmUgdGhlIHJlc3VsdHMgb2YgZm9ybWF0dGluZyBlYWNoIGFyZ3VtZW50IGFyZSB0byBiZSBpbnNlcnRlZAorICAgICAqIGludG8gdGhlIHBhdHRlcm4uCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgaW50W10gb2Zmc2V0cyA9IG5ldyBpbnRbSU5JVElBTF9GT1JNQVRTXTsKKworICAgIC8qKgorICAgICAqIFRoZSBhcmd1bWVudCBudW1iZXJzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBmb3JtYXR0ZXIuICAoVGhlIGZvcm1hdHRlcnMgYXJlIHN0b3JlZAorICAgICAqIGluIHRoZSBvcmRlciB0aGV5IG9jY3VyIGluIHRoZSBwYXR0ZXJuLCBub3QgaW4gdGhlIG9yZGVyIGluIHdoaWNoIHRoZSBhcmd1bWVudHMKKyAgICAgKiBhcmUgc3BlY2lmaWVkLikKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRbXSBhcmd1bWVudE51bWJlcnMgPSBuZXcgaW50W0lOSVRJQUxfRk9STUFUU107CisKKyAgICAvKioKKyAgICAgKiBPbmUgbGVzcyB0aGFuIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiA8Y29kZT5vZmZzZXRzPC9jb2RlPi4gIENhbiBhbHNvIGJlIHRob3VnaHQgb2YKKyAgICAgKiBhcyB0aGUgaW5kZXggb2YgdGhlIGhpZ2hlc3QtbnVtYmVyZWQgZWxlbWVudCBpbiA8Y29kZT5vZmZzZXRzPC9jb2RlPiB0aGF0IGlzIGJlaW5nIHVzZWQuCisgICAgICogQWxsIG9mIHRoZXNlIGFycmF5cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBudW1iZXIgb2YgZWxlbWVudHMgYmVpbmcgdXNlZCBhcyA8Y29kZT5vZmZzZXRzPC9jb2RlPgorICAgICAqIGRvZXMsIGFuZCBzbyB0aGlzIHZhcmlhYmxlIHN1ZmZpY2VzIHRvIHRlbGwgdXMgaG93IG1hbnkgZW50cmllcyBhcmUgaW4gYWxsIG9mIHRoZW0uCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1heE9mZnNldCA9IC0xOworCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgcm91dGluZSB1c2VkIGJ5IGZvcm1hdC4gSWYgPGNvZGU+Y2hhcmFjdGVySXRlcmF0b3JzPC9jb2RlPiBpcworICAgICAqIG5vbi1udWxsLCBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3Igd2lsbCBiZSBjcmVhdGVkIGZyb20gdGhlCisgICAgICogc3ViZm9ybWF0cyBhcyBuZWNlc3NhcnkuIElmIDxjb2RlPmNoYXJhY3Rlckl0ZXJhdG9yczwvY29kZT4gaXMgbnVsbAorICAgICAqIGFuZCA8Y29kZT5mcDwvY29kZT4gaXMgbm9uLW51bGwgYW5kIGlkZW50aWZpZXMKKyAgICAgKiA8Y29kZT5GaWVsZC5NRVNTQUdFX0FSR1VNRU5UPC9jb2RlPiwgdGhlIGxvY2F0aW9uIG9mCisgICAgICogdGhlIGZpcnN0IHJlcGxhY2VkIGFyZ3VtZW50IHdpbGwgYmUgc2V0IGluIGl0LgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgYW4gYXJndW1lbnQgaW4gdGhlCisgICAgICogICAgICAgICAgICA8Y29kZT5hcmd1bWVudHM8L2NvZGU+IGFycmF5IGlzIG5vdCBvZiB0aGUgdHlwZQorICAgICAqICAgICAgICAgICAgZXhwZWN0ZWQgYnkgdGhlIGZvcm1hdCBlbGVtZW50KHMpIHRoYXQgdXNlIGl0LgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIHN1YmZvcm1hdChPYmplY3RbXSBhcmd1bWVudHMsIFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gZnAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyosIExpc3QgY2hhcmFjdGVySXRlcmF0b3JzKi8pIHsKKyAgICAgICAgLy8gbm90ZTogdGhpcyBpbXBsZW1lbnRhdGlvbiBhc3N1bWVzIGEgZmFzdCBzdWJzdHJpbmcgJiBpbmRleC4KKyAgICAgICAgLy8gaWYgdGhpcyBpcyBub3QgdHJ1ZSwgd291bGQgYmUgYmV0dGVyIHRvIGFwcGVuZCBjaGFycyBvbmUgYnkgb25lLgorICAgICAgICBpbnQgbGFzdE9mZnNldCA9IDA7CisgICAgICAgIGludCBsYXN0ID0gcmVzdWx0Lmxlbmd0aCgpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBtYXhPZmZzZXQ7ICsraSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChwYXR0ZXJuLnN1YnN0cmluZyhsYXN0T2Zmc2V0LCBvZmZzZXRzW2ldKSk7CisgICAgICAgICAgICBsYXN0T2Zmc2V0ID0gb2Zmc2V0c1tpXTsKKyAgICAgICAgICAgIGludCBhcmd1bWVudE51bWJlciA9IGFyZ3VtZW50TnVtYmVyc1tpXTsKKyAgICAgICAgICAgIGlmIChhcmd1bWVudHMgPT0gbnVsbCB8fCBhcmd1bWVudE51bWJlciA+PSBhcmd1bWVudHMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgieyIgKyBhcmd1bWVudE51bWJlciArICJ9Iik7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpbnQgYXJnUmVjdXJzaW9uID0gKChyZWN1cnNpb25Qcm90ZWN0aW9uID4+IChhcmd1bWVudE51bWJlcioyKSkgJiAweDMpOworICAgICAgICAgICAgaWYgKGZhbHNlKSB7IC8vIGlmIChhcmdSZWN1cnNpb24gPT0gMyl7CisgICAgICAgICAgICAgICAgLy8gcHJldmVudCBsb29wISEhCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnXHVGRkZEJyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIE9iamVjdCBvYmogPSBhcmd1bWVudHNbYXJndW1lbnROdW1iZXJdOworICAgICAgICAgICAgICAgIFN0cmluZyBhcmcgPSBudWxsOworICAgICAgICAgICAgICAgIEZvcm1hdCBzdWJGb3JtYXR0ZXIgPSBudWxsOworICAgICAgICAgICAgICAgIGlmIChvYmogPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBhcmcgPSAibnVsbCI7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXRzW2ldICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgc3ViRm9ybWF0dGVyID0gZm9ybWF0c1tpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN1YkZvcm1hdHRlciBpbnN0YW5jZW9mIENob2ljZUZvcm1hdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYXJnID0gZm9ybWF0c1tpXS5mb3JtYXQob2JqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcmcuaW5kZXhPZigneycpID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJGb3JtYXR0ZXIgPSBuZXcgTWVzc2FnZUZvcm1hdChhcmcsIHVsb2NhbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iaiA9IGFyZ3VtZW50czsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBOdW1iZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9ybWF0IG51bWJlciBpZiBjYW4KKyAgICAgICAgICAgICAgICAgICAgc3ViRm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKHVsb2NhbGUpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgRGF0ZSkgeworICAgICAgICAgICAgICAgICAgICAvLyBmb3JtYXQgYSBEYXRlIGlmIGNhbgorICAgICAgICAgICAgICAgICAgICBzdWJGb3JtYXR0ZXIgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXQuU0hPUlQsIERhdGVGb3JtYXQuU0hPUlQsIHVsb2NhbGUpOy8vZml4CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgYXJnID0gKFN0cmluZykgb2JqOworCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYXJnID0gb2JqLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChhcmcgPT0gbnVsbCkgYXJnID0gIm51bGwiOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2UgYXJlIGluIHR3byBzdGF0ZXMsIGVpdGhlciBzdWJGb3JtYXR0ZXIKKyAgICAgICAgICAgICAgICAvLyBpcyBub24tbnVsbCBpbmRpY2F0aW5nIHdlIHNob3VsZCBmb3JtYXQgb2JqIHVzaW5nIGl0LAorICAgICAgICAgICAgICAgIC8vIG9yIGFyZyBpcyBub24tbnVsbCBhbmQgd2Ugc2hvdWxkIHVzZSBpdCBhcyB0aGUgdmFsdWUuCisKKy8vIFRPRE8gRG8gbm90IHJlbW92ZSwgdGhpcyBpcyBBUEkgaW4gSkRLIHRoYXQgd2UgbmVlZCB0byBpbXBsZW1lbnQKKy8vICAgICAgICAgICAgICAgIGlmIChjaGFyYWN0ZXJJdGVyYXRvcnMgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgICAgIC8vIElmIGNoYXJhY3Rlckl0ZXJhdG9ycyBpcyBub24tbnVsbCwgaXQgaW5kaWNhdGVzIHdlIG5lZWQKKy8vICAgICAgICAgICAgICAgICAgICAvLyB0byBnZXQgdGhlIENoYXJhY3Rlckl0ZXJhdG9yIGZyb20gdGhlIGNoaWxkIGZvcm1hdHRlci4KKy8vICAgICAgICAgICAgICAgICAgICBpZiAobGFzdCAhPSByZXN1bHQubGVuZ3RoKCkpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVySXRlcmF0b3JzLmFkZCgKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcihyZXN1bHQuc3Vic3RyaW5nCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhc3QpKSk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgPSByZXN1bHQubGVuZ3RoKCk7CisvLyAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgICAgIGlmIChzdWJGb3JtYXR0ZXIgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3Igc3ViSXRlcmF0b3IgPQorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YkZvcm1hdHRlci5mb3JtYXRUb0NoYXJhY3Rlckl0ZXJhdG9yKG9iaik7CisvLworLy8gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQocmVzdWx0LCBzdWJJdGVyYXRvcik7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0ICE9IHJlc3VsdC5sZW5ndGgoKSkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVySXRlcmF0b3JzLmFkZCgKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IoCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViSXRlcmF0b3IsIEZpZWxkLkFSR1VNRU5ULAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKGFyZ3VtZW50TnVtYmVyKSkpOworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCA9IHJlc3VsdC5sZW5ndGgoKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBudWxsOworLy8gICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICBpZiAoYXJnICE9IG51bGwgJiYgYXJnLmxlbmd0aCgpID4gMCkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGFyZyk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3Rlckl0ZXJhdG9ycy5hZGQoCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcigKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnLCBGaWVsZC5BUkdVTUVOVCwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoYXJndW1lbnROdW1iZXIpKSk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgPSByZXN1bHQubGVuZ3RoKCk7CisvLyAgICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN1YkZvcm1hdHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBzdWJGb3JtYXR0ZXIuZm9ybWF0KG9iaik7CisgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICBsYXN0ID0gcmVzdWx0Lmxlbmd0aCgpOyAvLyBVc2VsZXNzPyBbYWxhbl0KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChhcmcpOworLy8gVE9ETyBEbyBub3QgcmVtb3ZlLCB0aGlzIGlzIEpESyBBUEkgd2UgbmVlZCB0byBpbXBsZW1lbnQuCisvLyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCAmJiBmcCAhPSBudWxsICYmIEZpZWxkLkFSR1VNRU5ULmVxdWFscygKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwLmdldEZpZWxkQXR0cmlidXRlKCkpKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGZwLnNldEJlZ2luSW5kZXgobGFzdCk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIGZwLnNldEVuZEluZGV4KHJlc3VsdC5sZW5ndGgoKSk7CisvLyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsYXN0ID0gcmVzdWx0Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXN1bHQuYXBwZW5kKHBhdHRlcm4uc3Vic3RyaW5nKGxhc3RPZmZzZXQsIHBhdHRlcm4ubGVuZ3RoKCkpKTsKKy8vIFRPRE8gRG8gbm90IHJlbW92ZSwgdGhpcyBpcyBKREsgQVBJIHdlIG5lZWQgdG8gaW1wbGVtZW50LgorLy8gICAgICAgIGlmIChjaGFyYWN0ZXJJdGVyYXRvcnMgIT0gbnVsbCAmJiBsYXN0ICE9IHJlc3VsdC5sZW5ndGgoKSkgeworLy8gICAgICAgICAgICBjaGFyYWN0ZXJJdGVyYXRvcnMuYWRkKGNyZWF0ZUF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcigKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuc3Vic3RyaW5nKGxhc3QpKSk7CisvLyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworLy8gVE9ETyBEbyBub3QgcmVtb3ZlLCB0aGlzIGlzIEpESyBBUEkgd2UgbmVlZCB0byBpbXBsZW1lbnQuCisvLyAgICAvKioKKy8vICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBhcHBlbmQgYWxsIHRoZSBjaGFyYWN0ZXJzIGluCisvLyAgICAgKiA8Y29kZT5pdGVyYXRvcjwvY29kZT4gdG8gdGhlIFN0cmluZ0J1ZmZlciA8Y29kZT5yZXN1bHQ8L2NvZGU+LgorLy8gICAgICovCisvLyAgICBwcml2YXRlIHZvaWQgYXBwZW5kKFN0cmluZ0J1ZmZlciByZXN1bHQsIENoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yKSB7CisvLyAgICAgICAgaWYgKGl0ZXJhdG9yLmZpcnN0KCkgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworLy8gICAgICAgICAgICBjaGFyIGFDaGFyOworLy8KKy8vICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChpdGVyYXRvci5maXJzdCgpKTsKKy8vICAgICAgICAgICAgd2hpbGUgKChhQ2hhciA9IGl0ZXJhdG9yLm5leHQoKSkgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworLy8gICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChhQ2hhcik7CisvLyAgICAgICAgICAgIH0KKy8vICAgICAgICB9CisvLyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSB0eXBlTGlzdCA9CisgICAgICAgIHsiIiwgIm51bWJlciIsICJkYXRlIiwgInRpbWUiLCAiY2hvaWNlIiwgInNwZWxsb3V0IiwgIm9yZGluYWwiLCAiZHVyYXRpb24ifTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgCisgICAgICAgIFRZUEVfRU1QVFkgPSAwLAorICAgICAgICBUWVBFX05VTUJFUiA9IDEsCisgICAgICAgIFRZUEVfREFURSA9IDIsCisgICAgICAgIFRZUEVfVElNRSA9IDMsCisgICAgICAgIFRZUEVfQ0hPSUNFID0gNCwKKyAgICAgICAgVFlQRV9TUEVMTE9VVCA9IDUsCisgICAgICAgIFRZUEVfT1JESU5BTCA9IDYsCisgICAgICAgIFRZUEVfRFVSQVRJT04gPSA3OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gbW9kaWZpZXJMaXN0ID0KKyAgICAgICAgeyIiLCAiY3VycmVuY3kiLCAicGVyY2VudCIsICJpbnRlZ2VyIn07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50CisgICAgICAgIE1PRElGSUVSX0VNUFRZID0gMCwKKyAgICAgICAgTU9ESUZJRVJfQ1VSUkVOQ1kgPSAxLAorICAgICAgICBNT0RJRklFUl9QRVJDRU5UID0gMiwKKyAgICAgICAgTU9ESUZJRVJfSU5URUdFUiA9IDM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBkYXRlTW9kaWZpZXJMaXN0ID0KKyAgICAgICAgeyIiLCAic2hvcnQiLCAibWVkaXVtIiwgImxvbmciLCAiZnVsbCJ9OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludAorICAgICAgICBEQVRFX01PRElGSUVSX0VNUFRZID0gMCwKKyAgICAgICAgREFURV9NT0RJRklFUl9TSE9SVCA9IDEsCisgICAgICAgIERBVEVfTU9ESUZJRVJfTUVESVVNID0gMiwKKyAgICAgICAgREFURV9NT0RJRklFUl9MT05HID0gMywKKyAgICAgICAgREFURV9NT0RJRklFUl9GVUxMID0gNDsKKworICAgIHByaXZhdGUgdm9pZCBtYWtlRm9ybWF0KGludCBwb3NpdGlvbiwgaW50IG9mZnNldE51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXJbXSBzZWdtZW50cykKKyAgICB7CisgICAgICAgIC8vIGdldCB0aGUgYXJndW1lbnQgbnVtYmVyCisgICAgICAgIGludCBhcmd1bWVudE51bWJlcjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGFyZ3VtZW50TnVtYmVyID0gSW50ZWdlci5wYXJzZUludChzZWdtZW50c1sxXS50b1N0cmluZygpKTsgLy8gYWx3YXlzIHVubG9jYWxpemVkIQorICAgICAgICB9IGNhdGNoIChOdW1iZXJGb3JtYXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiY2FuJ3QgcGFyc2UgYXJndW1lbnQgbnVtYmVyICIgKyBzZWdtZW50c1sxXSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFyZ3VtZW50TnVtYmVyIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigibmVnYXRpdmUgYXJndW1lbnQgbnVtYmVyICIgKyBhcmd1bWVudE51bWJlcik7CisgICAgICAgIH0KKworICAgICAgICAvLyByZXNpemUgZm9ybWF0IGluZm9ybWF0aW9uIGFycmF5cyBpZiBuZWNlc3NhcnkKKyAgICAgICAgaWYgKG9mZnNldE51bWJlciA+PSBmb3JtYXRzLmxlbmd0aCkgeworICAgICAgICAgICAgaW50IG5ld0xlbmd0aCA9IGZvcm1hdHMubGVuZ3RoICogMjsKKyAgICAgICAgICAgIEZvcm1hdFtdIG5ld0Zvcm1hdHMgPSBuZXcgRm9ybWF0W25ld0xlbmd0aF07CisgICAgICAgICAgICBpbnRbXSBuZXdPZmZzZXRzID0gbmV3IGludFtuZXdMZW5ndGhdOworICAgICAgICAgICAgaW50W10gbmV3QXJndW1lbnROdW1iZXJzID0gbmV3IGludFtuZXdMZW5ndGhdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShmb3JtYXRzLCAwLCBuZXdGb3JtYXRzLCAwLCBtYXhPZmZzZXQgKyAxKTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkob2Zmc2V0cywgMCwgbmV3T2Zmc2V0cywgMCwgbWF4T2Zmc2V0ICsgMSk7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGFyZ3VtZW50TnVtYmVycywgMCwgbmV3QXJndW1lbnROdW1iZXJzLCAwLCBtYXhPZmZzZXQgKyAxKTsKKyAgICAgICAgICAgIGZvcm1hdHMgPSBuZXdGb3JtYXRzOworICAgICAgICAgICAgb2Zmc2V0cyA9IG5ld09mZnNldHM7CisgICAgICAgICAgICBhcmd1bWVudE51bWJlcnMgPSBuZXdBcmd1bWVudE51bWJlcnM7CisgICAgICAgIH0KKyAgICAgICAgaW50IG9sZE1heE9mZnNldCA9IG1heE9mZnNldDsKKyAgICAgICAgbWF4T2Zmc2V0ID0gb2Zmc2V0TnVtYmVyOworICAgICAgICBvZmZzZXRzW29mZnNldE51bWJlcl0gPSBzZWdtZW50c1swXS5sZW5ndGgoKTsKKyAgICAgICAgYXJndW1lbnROdW1iZXJzW29mZnNldE51bWJlcl0gPSBhcmd1bWVudE51bWJlcjsKKworICAgICAgICAvLyBub3cgZ2V0IHRoZSBmb3JtYXQKKyAgICAgICAgRm9ybWF0IG5ld0Zvcm1hdCA9IG51bGw7CisgICAgICAgIHN3aXRjaCAoZmluZEtleXdvcmQoc2VnbWVudHNbMl0udG9TdHJpbmcoKSwgdHlwZUxpc3QpKSB7CisgICAgICAgIGNhc2UgVFlQRV9FTVBUWToKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRZUEVfTlVNQkVSOgorICAgICAgICAgICAgc3dpdGNoIChmaW5kS2V5d29yZChzZWdtZW50c1szXS50b1N0cmluZygpLCBtb2RpZmllckxpc3QpKSB7CisgICAgICAgICAgICBjYXNlIE1PRElGSUVSX0VNUFRZOgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSh1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTU9ESUZJRVJfQ1VSUkVOQ1k6CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2UodWxvY2FsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE1PRElGSUVSX1BFUkNFTlQ6CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldFBlcmNlbnRJbnN0YW5jZSh1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTU9ESUZJRVJfSU5URUdFUjoKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogLy8gcGF0dGVybgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IG5ldyBEZWNpbWFsRm9ybWF0KHNlZ21lbnRzWzNdLnRvU3RyaW5nKCksIG5ldyBEZWNpbWFsRm9ybWF0U3ltYm9scyh1bG9jYWxlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUWVBFX0RBVEU6CisgICAgICAgICAgICBzd2l0Y2ggKGZpbmRLZXl3b3JkKHNlZ21lbnRzWzNdLnRvU3RyaW5nKCksIGRhdGVNb2RpZmllckxpc3QpKSB7CisgICAgICAgICAgICBjYXNlIERBVEVfTU9ESUZJRVJfRU1QVFk6CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgREFURV9NT0RJRklFUl9TSE9SVDoKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LlNIT1JULCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgREFURV9NT0RJRklFUl9NRURJVU06CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoRGF0ZUZvcm1hdC5ERUZBVUxULCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgREFURV9NT0RJRklFUl9MT05HOgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZUluc3RhbmNlKERhdGVGb3JtYXQuTE9ORywgdWxvY2FsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERBVEVfTU9ESUZJRVJfRlVMTDoKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZShEYXRlRm9ybWF0LkZVTEwsIHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChzZWdtZW50c1szXS50b1N0cmluZygpLCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRZUEVfVElNRToKKyAgICAgICAgICAgIHN3aXRjaCAoZmluZEtleXdvcmQoc2VnbWVudHNbM10udG9TdHJpbmcoKSwgZGF0ZU1vZGlmaWVyTGlzdCkpIHsKKyAgICAgICAgICAgIGNhc2UgREFURV9NT0RJRklFUl9FTVBUWToKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkRFRkFVTFQsIHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEQVRFX01PRElGSUVSX1NIT1JUOgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuU0hPUlQsIHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEQVRFX01PRElGSUVSX01FRElVTToKKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZShEYXRlRm9ybWF0LkRFRkFVTFQsIHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBEQVRFX01PRElGSUVSX0xPTkc6CisgICAgICAgICAgICAgICAgbmV3Rm9ybWF0ID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoRGF0ZUZvcm1hdC5MT05HLCB1bG9jYWxlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgREFURV9NT0RJRklFUl9GVUxMOgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKERhdGVGb3JtYXQuRlVMTCwgdWxvY2FsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KHNlZ21lbnRzWzNdLnRvU3RyaW5nKCksIHVsb2NhbGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVFlQRV9DSE9JQ0U6CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IG5ldyBDaG9pY2VGb3JtYXQoc2VnbWVudHNbM10udG9TdHJpbmcoKSk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIG1heE9mZnNldCA9IG9sZE1heE9mZnNldDsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2hvaWNlIFBhdHRlcm4gaW5jb3JyZWN0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUWVBFX1NQRUxMT1VUOiAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgcmJuZiA9IG5ldyBSdWxlQmFzZWROdW1iZXJGb3JtYXQodWxvY2FsZSwgUnVsZUJhc2VkTnVtYmVyRm9ybWF0LlNQRUxMT1VUKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcnVsZXNldCA9IHNlZ21lbnRzWzNdLnRvU3RyaW5nKCkudHJpbSgpOworICAgICAgICAgICAgICAgIGlmIChydWxlc2V0Lmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJibmYuc2V0RGVmYXVsdFJ1bGVTZXQocnVsZXNldCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3YXJuIGludmFsaWQgcnVsZXNldAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5ld0Zvcm1hdCA9IHJibmY7CisgICAgICAgICAgICB9IAorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVFlQRV9PUkRJTkFMOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCByYm5mID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdCh1bG9jYWxlLCBSdWxlQmFzZWROdW1iZXJGb3JtYXQuT1JESU5BTCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGVzZXQgPSBzZWdtZW50c1szXS50b1N0cmluZygpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICBpZiAocnVsZXNldC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICByYm5mLnNldERlZmF1bHRSdWxlU2V0KHJ1bGVzZXQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2FybiBpbnZhbGlkIHJ1bGVzZXQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSByYm5mOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFRZUEVfRFVSQVRJT046CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHJibmYgPSBuZXcgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KHVsb2NhbGUsIFJ1bGVCYXNlZE51bWJlckZvcm1hdC5EVVJBVElPTik7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGVzZXQgPSBzZWdtZW50c1szXS50b1N0cmluZygpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICBpZiAocnVsZXNldC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICByYm5mLnNldERlZmF1bHRSdWxlU2V0KHJ1bGVzZXQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2FybiBpbnZhbGlkIHJ1bGVzZXQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXdGb3JtYXQgPSByYm5mOworICAgICAgICAgICAgfSAKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgbWF4T2Zmc2V0ID0gb2xkTWF4T2Zmc2V0OworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidW5rbm93biBmb3JtYXQgdHlwZSBhdCAiKTsKKyAgICAgICAgfQorICAgICAgICBmb3JtYXRzW29mZnNldE51bWJlcl0gPSBuZXdGb3JtYXQ7CisgICAgICAgIHNlZ21lbnRzWzFdLnNldExlbmd0aCgwKTsgICAvLyB0aHJvdyBhd2F5IG90aGVyIHNlZ21lbnRzCisgICAgICAgIHNlZ21lbnRzWzJdLnNldExlbmd0aCgwKTsKKyAgICAgICAgc2VnbWVudHNbM10uc2V0TGVuZ3RoKDApOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBmaW5kS2V5d29yZChTdHJpbmcgcywgU3RyaW5nW10gbGlzdCkgeworICAgICAgICBzID0gcy50cmltKCkudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAocy5lcXVhbHMobGlzdFtpXSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgY29weUFuZEZpeFF1b3RlcyhTdHJpbmcgc291cmNlLCBpbnQgc3RhcnQsIGludCBlbmQsIFN0cmluZ0J1ZmZlciB0YXJnZXQpIHsKKyAgICAgICAgLy8gYWRkZWQgJ2dvdExCJyBsb2dpYyBmcm9tIElDVTRDIC0gcXVlc3Rpb25hYmxlIFthbGFuXQorICAgICAgICBib29sZWFuIGdvdExCID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gc291cmNlLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjaCA9PSAneycpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKCIneyciKTsKKyAgICAgICAgICAgICAgICBnb3RMQiA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09ICd9JykgeworICAgICAgICAgICAgICAgIGlmIChnb3RMQikgeworICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgICAgICAgICAgZ290TEIgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKCInfSciKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKCInJyIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFmdGVyIHJlYWRpbmcgYW4gb2JqZWN0IGZyb20gdGhlIGlucHV0IHN0cmVhbSwgZG8gYSBzaW1wbGUgdmVyaWZpY2F0aW9uCisgICAgICogdG8gbWFpbnRhaW4gY2xhc3MgaW52YXJpYW50cy4KKyAgICAgKiBAdGhyb3dzIEludmFsaWRPYmplY3RFeGNlcHRpb24gaWYgdGhlIG9iamVjdHMgcmVhZCBmcm9tIHRoZSBzdHJlYW0gaXMgaW52YWxpZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbSBpbikgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKyAgICAgICAgaW4uZGVmYXVsdFJlYWRPYmplY3QoKTsKKyAgICAgICAgYm9vbGVhbiBpc1ZhbGlkID0gbWF4T2Zmc2V0ID49IC0xCisgICAgICAgICAgICAgICAgJiYgZm9ybWF0cy5sZW5ndGggPiBtYXhPZmZzZXQKKyAgICAgICAgICAgICAgICAmJiBvZmZzZXRzLmxlbmd0aCA+IG1heE9mZnNldAorICAgICAgICAgICAgICAgICYmIGFyZ3VtZW50TnVtYmVycy5sZW5ndGggPiBtYXhPZmZzZXQ7CisgICAgICAgIGlmIChpc1ZhbGlkKSB7CisgICAgICAgICAgICBpbnQgbGFzdE9mZnNldCA9IHBhdHRlcm4ubGVuZ3RoKCkgKyAxOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IG1heE9mZnNldDsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgICAgICAgICBpZiAoKG9mZnNldHNbaV0gPCAwKSB8fCAob2Zmc2V0c1tpXSA+IGxhc3RPZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdE9mZnNldCA9IG9mZnNldHNbaV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghaXNWYWxpZCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRPYmplY3RFeGNlcHRpb24oIkNvdWxkIG5vdCByZWNvbnN0cnVjdCBNZXNzYWdlRm9ybWF0IGZyb20gY29ycnVwdCBzdHJlYW0uIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHVsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgdWxvY2FsZSA9IFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFNJTkdMRV9RVU9URSA9ICdcJyc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBDVVJMWV9CUkFDRV9MRUZUID0gJ3snOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ1VSTFlfQlJBQ0VfUklHSFQgPSAnfSc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVEVfSU5JVElBTCA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUQVRFX1NJTkdMRV9RVU9URSA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNUQVRFX0lOX1FVT1RFID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU1RBVEVfTVNHX0VMRU1FTlQgPSAzOworCisgICAgLyoqCisgICAgICogQ29udmVydCBhbiAnYXBvc3Ryb3BoZS1mcmllbmRseScgcGF0dGVybiBpbnRvIGEgc3RhbmRhcmQKKyAgICAgKiBwYXR0ZXJuLiAgU3RhbmRhcmQgcGF0dGVybnMgdHJlYXQgYWxsIGFwb3N0cm9waGVzIGFzCisgICAgICogcXVvdGVzLCB3aGljaCBpcyBwcm9ibGVtYXRpYyBpbiBzb21lIGxhbmd1YWdlcywgZS5nLiAKKyAgICAgKiBGcmVuY2gsIHdoZXJlIGFwb3N0cm9waGUgaXMgY29tbW9ubHkgdXNlZC4gIFRoaXMgdXRpbGl0eQorICAgICAqIGFzc3VtZXMgdGhhdCBvbmx5IGFuIHVucGFpcmVkIGFwb3N0cm9waGUgaW1tZWRpYXRlbHkgYmVmb3JlCisgICAgICogYSBicmFjZSBpcyBhIHRydWUgcXVvdGUuICBPdGhlciB1bnBhaXJlZCBhcG9zdHJvcGhlcyBhcmUgcGFpcmVkLAorICAgICAqIGFuZCB0aGUgcmVzdWx0aW5nIHN0YW5kYXJkIHBhdHRlcm4gc3RyaW5nIGlzIHJldHVybmVkLgorICAgICAqCisgICAgICogPHA+PGI+Tm90ZTwvYj4gaXQgaXMgbm90IGd1YXJhbnRlZWQgdGhhdCB0aGUgcmV0dXJuZWQgcGF0dGVybgorICAgICAqIGlzIGluZGVlZCBhIHZhbGlkIHBhdHRlcm4uICBUaGUgb25seSBlZmZlY3QgaXMgdG8gY29udmVydAorICAgICAqIGJldHdlZW4gcGF0dGVybnMgaGF2aW5nIGRpZmZlcmVudCBxdW90aW5nIHNlbWFudGljcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSAnYXBvc3Ryb3BoZS1mcmllbmRseScgcGF0dHRlcm4gdG8gY29udmVydAorICAgICAqIEByZXR1cm4gdGhlIHN0YW5kYXJkIGVxdWl2YWxlbnQgb2YgdGhlIG9yaWdpbmFsIHBhdHRlcm4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1dG9RdW90ZUFwb3N0cm9waGUoU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIocGF0dGVybi5sZW5ndGgoKSoyKTsKKyAgICAgICAgaW50IHN0YXRlID0gU1RBVEVfSU5JVElBTDsKKyAgICAgICAgaW50IGJyYWNlQ291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMCwgaiA9IHBhdHRlcm4ubGVuZ3RoKCk7IGkgPCBqOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHBhdHRlcm4uY2hhckF0KGkpOworICAgICAgICAgICAgc3dpdGNoIChzdGF0ZSkgeworICAgICAgICAgICAgY2FzZSBTVEFURV9JTklUSUFMOgorICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgU0lOR0xFX1FVT1RFOgorICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX1NJTkdMRV9RVU9URTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDVVJMWV9CUkFDRV9MRUZUOgorICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX01TR19FTEVNRU5UOworICAgICAgICAgICAgICAgICAgICArK2JyYWNlQ291bnQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU1RBVEVfU0lOR0xFX1FVT1RFOgorICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgU0lOR0xFX1FVT1RFOgorICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX0lOSVRJQUw7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ1VSTFlfQlJBQ0VfTEVGVDoKKyAgICAgICAgICAgICAgICBjYXNlIENVUkxZX0JSQUNFX1JJR0hUOgorICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUQVRFX0lOX1FVT1RFOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gU1RBVEVfSU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTVEFURV9JTl9RVU9URToKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFNJTkdMRV9RVU9URToKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBTVEFURV9JTklUSUFMOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFNUQVRFX01TR19FTEVNRU5UOgorICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgQ1VSTFlfQlJBQ0VfTEVGVDoKKyAgICAgICAgICAgICAgICAgICAgKyticmFjZUNvdW50OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENVUkxZX0JSQUNFX1JJR0hUOgorICAgICAgICAgICAgICAgICAgICBpZiAoLS1icmFjZUNvdW50ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gU1RBVEVfSU5JVElBTDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiAvLyBOZXZlciBoYXBwZW5zLgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsKKyAgICAgICAgfQorICAgICAgICAvLyBFbmQgb2Ygc2NhbgorICAgICAgICBpZiAoc3RhdGUgPT0gU1RBVEVfU0lOR0xFX1FVT1RFIHx8IHN0YXRlID09IFNUQVRFX0lOX1FVT1RFKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKFNJTkdMRV9RVU9URSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoYnVmKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9ORlJ1bGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L05GUnVsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc1NDA3NTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlJ1bGUuamF2YQpAQCAtMCwwICsxLDEzMzcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworaW1wb3J0IGphdmEudGV4dC4qOworCisvKioKKyAqIEEgY2xhc3MgcmVwcmVzbnRpbmcgYSBzaW5nbGUgcnVsZSBpbiBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdC4gIEEgcnVsZQorICogaW5zZXJ0cyBpdHMgdGV4dCBpbnRvIHRoZSByZXN1bHQgc3RyaW5nIGFuZCB0aGVuIHBhc3NlcyBjb250cm9sIHRvIGl0cworICogc3Vic3RpdHV0aW9ucywgd2hpY2ggZG8gdGhlIHNhbWUgdGhpbmcuCisgKi8KK2ZpbmFsIGNsYXNzIE5GUnVsZSB7CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogU3BlY2lhbCBiYXNlIHZhbHVlIHVzZWQgdG8gaWRlbnRpZnkgYSBuZWdhdGl2ZS1udW1iZXIgcnVsZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE5FR0FUSVZFX05VTUJFUl9SVUxFID0gLTE7CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsIGJhc2UgdmFsdWUgdXNlZCB0byBpZGVudGlmeSBhbiBpbXByb3BlciBmcmFjdGlvbiAoeC54KSBydWxlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU1QUk9QRVJfRlJBQ1RJT05fUlVMRSA9IC0yOworCisgICAgLyoqCisgICAgICogU3BlY2lhbCBiYXNlIHZhbHVlIHVzZWQgdG8gaWRlbnRpZnkgYSBwcm9wZXIgZnJhY3Rpb24gKDAueCkgcnVsZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFBST1BFUl9GUkFDVElPTl9SVUxFID0gLTM7CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsIGJhc2UgdmFsdWUgdXNlZCB0byBpZGVudGlmeSBhIG1hc3RlciBydWxlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFTVEVSX1JVTEUgPSAtNDsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSdzIGJhc2UgdmFsdWUKKyAgICAgKi8KKyAgICBwcml2YXRlIGxvbmcgYmFzZVZhbHVlOworCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUncyByYWRpeCAodGhlIHJhZGl4IHRvIHRoZSBwb3dlciBvZiB0aGUgZXhwb25lbnQgZXF1YWxzCisgICAgICogdGhlIHJ1bGUncyBkaXZpc29yKQorICAgICAqLworICAgIHByaXZhdGUgaW50IHJhZGl4ID0gMTA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSdzIGV4cG9uZW50ICh0aGUgcmFkeCByYXNlZCB0byB0aGUgcG93ZXIgb2YgdGhlIGV4cG9uc250CisgICAgICogZXF1YWxzIHRoZSBydWxlJ3MgZGl2aXNvcikKKyAgICAgKi8KKyAgICBwcml2YXRlIHNob3J0IGV4cG9uZW50ID0gMDsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlJ3MgcnVsZSB0ZXh0LiAgV2hlbiBmb3JtYXR0aW5nIGEgbnVtYmVyLCB0aGUgcnVsZSdzIHRleHQKKyAgICAgKiBpcyBpbnNlcnRlZCBpbnRvIHRoZSByZXN1bHQgc3RyaW5nLCBhbmQgdGhlbiB0aGUgdGV4dCBmcm9tIGFueQorICAgICAqIHN1YnN0aXR1dGlvbnMgaXMgaW5zZXJ0ZWQgaW50byB0aGUgcmVzdWx0IHN0cmluZworICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHJ1bGVUZXh0ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlJ3MgZmlyc3Qgc3Vic3RpdHV0aW9uICh0aGUgb25lIHdpdGggdGhlIGxvd2VyIG9mZnNldAorICAgICAqIGludG8gdGhlIHJ1bGUgdGV4dCkKKyAgICAgKi8KKyAgICBwcml2YXRlIE5GU3Vic3RpdHV0aW9uIHN1YjEgPSBudWxsOworCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUncyBzZWNvbmQgc3Vic3RpdHV0aW9uICh0aGUgb25lIHdpdGggdGhlIGhpZ2hlciBvZmZzZXQKKyAgICAgKiBpbnRvIHRoZSBydWxlIHRleHQpCisgICAgICovCisgICAgcHJpdmF0ZSBORlN1YnN0aXR1dGlvbiBzdWIyID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBvd25zIHRoaXMgcnVsZQorICAgICAqLworICAgIHByaXZhdGUgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciA9IG51bGw7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBvbmUgb3IgbW9yZSBydWxlcyBiYXNlZCBvbiB0aGUgZGVzY3JpcHRpb24gcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIHJ1bGUocykuCisgICAgICogQHBhcmFtIG93bmVyIFRoZSBydWxlIHNldCBjb250YWluaW5nIHRoZSBuZXcgcnVsZShzKS4KKyAgICAgKiBAcGFyYW0gcHJlZGVjZXNzb3IgVGhlIHJ1bGUgdGhhdCBwcmVjZWRlcyB0aGUgbmV3IG9uZShzKSBpbiAib3duZXIiJ3MKKyAgICAgKiBydWxlIGxpc3QKKyAgICAgKiBAcGFyYW0gb3duZXJzT3duZXIgVGhlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0aGF0IG93bnMgdGhlCisgICAgICogcnVsZSBzZXQgdGhhdCBvd25zIHRoZSBuZXcgcnVsZShzKQorICAgICAqIEByZXR1cm4gQW4gaW5zdGFuY2Ugb2YgTkZSdWxlLCBvciBhbiBhcnJheSBvZiBORlJ1bGVzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBPYmplY3QgbWFrZVJ1bGVzKFN0cmluZyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlU2V0ICAgICAgICAgICAgIG93bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGUgICAgICAgICAgICAgICAgcHJlZGVjZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBvd25lcnNPd25lcikgeworICAgICAgICAvLyB3ZSBrbm93IHdlJ3JlIG1ha2luZyBhdCBsZWFzdCBvbmUgcnVsZSwgc28gZ28gYWhlYWQgYW5kCisgICAgICAgIC8vIG5ldyBpdCB1cCBhbmQgaW5pdGlhbGl6ZSBpdHMgYmFzZXZhbHVlIGFuZCBkaXZpc29yCisgICAgICAgIC8vICh0aGlzIGFsc28gc3RyaXBzIHRoZSBydWxlIGRlc2NyaXB0b3IsIGlmIGFueSwgb2ZmIHRoZQorICAgICAgICAvLyBkZXNjcmlwdG9uIHN0cmluZykKKyAgICAgICAgTkZSdWxlIHJ1bGUxID0gbmV3IE5GUnVsZShvd25lcnNPd25lcik7CisgICAgICAgIGRlc2NyaXB0aW9uID0gcnVsZTEucGFyc2VSdWxlRGVzY3JpcHRvcihkZXNjcmlwdGlvbik7CisKKyAgICAgICAgLy8gY2hlY2sgdGhlIGRlc2NyaXB0aW9uIHRvIHNlZSB3aGV0aGVyIHRoZXJlJ3MgdGV4dCBlbmNsb3NlZAorICAgICAgICAvLyBpbiBicmFja2V0cworICAgICAgICBpbnQgYnJhY2sxID0gZGVzY3JpcHRpb24uaW5kZXhPZigiWyIpOworICAgICAgICBpbnQgYnJhY2syID0gZGVzY3JpcHRpb24uaW5kZXhPZigiXSIpOworCisgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBkb2Vzbid0IGNvbnRhaW4gYSBtYXRjaGVkIHBhaXIgb2YgYnJhY2tldHMsCisgICAgICAgIC8vIG9yIGlmIGl0J3Mgb2YgYSB0eXBlIHRoYXQgZG9lc24ndCByZWNvZ25pemUgYnJhY2tldGVkIHRleHQsCisgICAgICAgIC8vIHRoZW4gbGVhdmUgdGhlIGRlc2NyaXB0aW9uIGFsb25lLCBpbml0aWFsaXplIHRoZSBydWxlJ3MKKyAgICAgICAgLy8gcnVsZSB0ZXh0IGFuZCBzdWJzdGl0dXRpb25zLCBhbmQgcmV0dXJuIHRoYXQgcnVsZQorICAgICAgICBpZiAoYnJhY2sxID09IC0xIHx8IGJyYWNrMiA9PSAtMSB8fCBicmFjazEgPiBicmFjazIKKyAgICAgICAgICAgIHx8IHJ1bGUxLmdldEJhc2VWYWx1ZSgpID09IFBST1BFUl9GUkFDVElPTl9SVUxFCisgICAgICAgICAgICB8fCBydWxlMS5nZXRCYXNlVmFsdWUoKSA9PSBORUdBVElWRV9OVU1CRVJfUlVMRSkgeworICAgICAgICAgICAgcnVsZTEucnVsZVRleHQgPSBkZXNjcmlwdGlvbjsKKyAgICAgICAgICAgIHJ1bGUxLmV4dHJhY3RTdWJzdGl0dXRpb25zKG93bmVyLCBwcmVkZWNlc3Nvciwgb3duZXJzT3duZXIpOworICAgICAgICAgICAgcmV0dXJuIHJ1bGUxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGRvZXMgY29udGFpbiBhIG1hdGNoZWQgcGFpciBvZiBicmFja2V0cywKKyAgICAgICAgICAgIC8vIHRoZW4gaXQncyByZWFsbHkgc2hvcnRoYW5kIGZvciB0d28gcnVsZXMgKHdpdGggb25lIGV4Y2VwdGlvbikKKyAgICAgICAgICAgIE5GUnVsZSBydWxlMiA9IG51bGw7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc2J1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAgICAgLy8gd2UnbGwgYWN0dWFsbHkgb25seSBzcGxpdCB0aGUgcnVsZSBpbnRvIHR3byBydWxlcyBpZiBpdHMKKyAgICAgICAgICAgIC8vIGJhc2UgdmFsdWUgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiBpdHMgZGl2aXNvciAob3IgaXQncyBvbmUKKyAgICAgICAgICAgIC8vIG9mIHRoZSBzcGVjaWFsIHJ1bGVzKQorICAgICAgICAgICAgaWYgKChydWxlMS5iYXNlVmFsdWUgPiAwCisgICAgICAgICAgICAgICAgICYmIHJ1bGUxLmJhc2VWYWx1ZSAlIChNYXRoLnBvdyhydWxlMS5yYWRpeCwgcnVsZTEuZXhwb25lbnQpKSA9PSAwKQorICAgICAgICAgICAgICAgIHx8IHJ1bGUxLmJhc2VWYWx1ZSA9PSBJTVBST1BFUl9GUkFDVElPTl9SVUxFCisgICAgICAgICAgICAgICAgfHwgcnVsZTEuYmFzZVZhbHVlID09IE1BU1RFUl9SVUxFKSB7CisKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCBwYXNzZXMgdGhhdCB0ZXN0LCBuZXcgdXAgdGhlIHNlY29uZCBydWxlLiAgSWYgdGhlCisgICAgICAgICAgICAgICAgLy8gcnVsZSBzZXQgYm90aCBydWxlcyB3aWxsIGJlbG9uZyB0byBpcyBhIGZyYWN0aW9uIHJ1bGUKKyAgICAgICAgICAgICAgICAvLyBzZXQsIHRoZXkgYm90aCBoYXZlIHRoZSBzYW1lIGJhc2UgdmFsdWU7IG90aGVyd2lzZSwKKyAgICAgICAgICAgICAgICAvLyBpbmNyZW1lbnQgdGhlIG9yaWdpbmFsIHJ1bGUncyBiYXNlIHZhbHVlICgicnVsZTEiIGFjdHVhbGx5CisgICAgICAgICAgICAgICAgLy8gZ29lcyBTRUNPTkQgaW4gdGhlIHJ1bGUgc2V0J3MgcnVsZSBsaXN0KQorICAgICAgICAgICAgICAgIHJ1bGUyID0gbmV3IE5GUnVsZShvd25lcnNPd25lcik7CisgICAgICAgICAgICAgICAgaWYgKHJ1bGUxLmJhc2VWYWx1ZSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGUyLmJhc2VWYWx1ZSA9IHJ1bGUxLmJhc2VWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFvd25lci5pc0ZyYWN0aW9uU2V0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrcnVsZTEuYmFzZVZhbHVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGJlZ2FuIHdpdGggIngueCIgYW5kIGNvbnRhaW5zIGJyYWNrZXRlZAorICAgICAgICAgICAgICAgIC8vIHRleHQsIGl0IGRlc2NyaWJlcyBib3RoIHRoZSBpbXByb3BlciBmcmFjdGlvbiBydWxlIGFuZAorICAgICAgICAgICAgICAgIC8vIHRoZSBwcm9wZXIgZnJhY3Rpb24gcnVsZQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJ1bGUxLmJhc2VWYWx1ZSA9PSBJTVBST1BFUl9GUkFDVElPTl9SVUxFKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGUyLmJhc2VWYWx1ZSA9IFBST1BFUl9GUkFDVElPTl9SVUxFOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBiZWdhbiB3aXRoICJ4LjAiIGFuZCBjb250YWlucyBicmFja2V0ZWQKKyAgICAgICAgICAgICAgICAvLyB0ZXh0LCBpdCBkZXNjcmliZXMgYm90aCB0aGUgbWFzdGVyIHJ1bGUgYW5kIHRoZQorICAgICAgICAgICAgICAgIC8vIGltcHJvcGVyIGZyYWN0aW9uIHJ1bGUKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChydWxlMS5iYXNlVmFsdWUgPT0gTUFTVEVSX1JVTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgcnVsZTIuYmFzZVZhbHVlID0gcnVsZTEuYmFzZVZhbHVlOworICAgICAgICAgICAgICAgICAgICBydWxlMS5iYXNlVmFsdWUgPSBJTVBST1BFUl9GUkFDVElPTl9SVUxFOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGJvdGggcnVsZXMgaGF2ZSB0aGUgc2FtZSByYWRpeCBhbmQgZXhwb25lbnQgKGkuZS4sIHRoZQorICAgICAgICAgICAgICAgIC8vIHNhbWUgZGl2aXNvcikKKyAgICAgICAgICAgICAgICBydWxlMi5yYWRpeCA9IHJ1bGUxLnJhZGl4OworICAgICAgICAgICAgICAgIHJ1bGUyLmV4cG9uZW50ID0gcnVsZTEuZXhwb25lbnQ7CisKKyAgICAgICAgICAgICAgICAvLyBydWxlMidzIHJ1bGUgdGV4dCBvbWl0cyB0aGUgc3R1ZmYgaW4gYnJhY2tldHM6IGluaXRhbGl6ZQorICAgICAgICAgICAgICAgIC8vIGl0cyBydWxlIHRleHQgYW5kIHN1YnN0aXR1dGlvbnMgYWNjb3JkaW5nbHkKKyAgICAgICAgICAgICAgICBzYnVmLmFwcGVuZChkZXNjcmlwdGlvbi5zdWJzdHJpbmcoMCwgYnJhY2sxKSk7CisgICAgICAgICAgICAgICAgaWYgKGJyYWNrMiArIDEgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBzYnVmLmFwcGVuZChkZXNjcmlwdGlvbi5zdWJzdHJpbmcoYnJhY2syICsgMSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBydWxlMi5ydWxlVGV4dCA9IHNidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBydWxlMi5leHRyYWN0U3Vic3RpdHV0aW9ucyhvd25lciwgcHJlZGVjZXNzb3IsIG93bmVyc093bmVyKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gcnVsZTEncyB0ZXh0IGluY2x1ZGVzIHRoZSB0ZXh0IGluIHRoZSBicmFja2V0cyBidXQgb21pdHMKKyAgICAgICAgICAgIC8vIHRoZSBicmFja2V0cyB0aGVtc2VsdmVzOiBpbml0aWFsaXplIF9pdHNfIHJ1bGUgdGV4dCBhbmQKKyAgICAgICAgICAgIC8vIHN1YnN0aXR1dGlvbnMgYWNjb3JkaW5nbHkKKyAgICAgICAgICAgIHNidWYuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgc2J1Zi5hcHBlbmQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKDAsIGJyYWNrMSkpOworICAgICAgICAgICAgc2J1Zi5hcHBlbmQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKGJyYWNrMSArIDEsIGJyYWNrMikpOworICAgICAgICAgICAgaWYgKGJyYWNrMiArIDEgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHNidWYuYXBwZW5kKGRlc2NyaXB0aW9uLnN1YnN0cmluZyhicmFjazIgKyAxKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBydWxlMS5ydWxlVGV4dCA9IHNidWYudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIHJ1bGUxLmV4dHJhY3RTdWJzdGl0dXRpb25zKG93bmVyLCBwcmVkZWNlc3Nvciwgb3duZXJzT3duZXIpOworCisgICAgICAgICAgICAvLyBpZiB3ZSBvbmx5IGhhdmUgb25lIHJ1bGUsIHJldHVybiBpdDsgaWYgd2UgaGF2ZSB0d28sIHJldHVybgorICAgICAgICAgICAgLy8gYSB0d28tZWxlbWVudCBhcnJheSBjb250YWluaW5nIHRoZW0gKG5vdGljZSB0aGF0IHJ1bGUyIGdvZXMKKyAgICAgICAgICAgIC8vIEJFRk9SRSBydWxlMSBpbiB0aGUgbGlzdDogaW4gYWxsIGNhc2VzLCBydWxlMiBPTUlUUyB0aGUKKyAgICAgICAgICAgIC8vIG1hdGVyaWFsIGluIHRoZSBicmFja2V0cyBhbmQgcnVsZTEgSU5DTFVERVMgdGhlIG1hdGVyaWFsCisgICAgICAgICAgICAvLyBpbiB0aGUgYnJhY2tldHMpCisgICAgICAgICAgICBpZiAocnVsZTIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBydWxlMTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBORlJ1bGVbXSB7IHJ1bGUyLCBydWxlMSB9OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTm9taW5hbCBjb25zdHJ1Y3RvciBmb3IgTkZSdWxlLiAgTW9zdCBvZiB0aGUgd29yayBvZiBjb25zdHJ1Y3RpbmcKKyAgICAgKiBhbiBORlJ1bGUgaXMgYWN0dWFsbHkgcGVyZm9ybWVkIGJ5IG1ha2VSdWxlcygpLgorICAgICAqLworICAgIHB1YmxpYyBORlJ1bGUoUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlcikgeworICAgICAgICB0aGlzLmZvcm1hdHRlciA9IGZvcm1hdHRlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHBhcnNlcyB0aGUgcnVsZSdzIHJ1bGUgZGVzY3JpcHRvciAoaS5lLiwgdGhlIGJhc2UKKyAgICAgKiB2YWx1ZSBhbmQvb3Igb3RoZXIgdG9rZW5zIHRoYXQgcHJlY2VkZSB0aGUgcnVsZSdzIHJ1bGUgdGV4dAorICAgICAqIGluIHRoZSBkZXNjcmlwdGlvbikgYW5kIHNldHMgdGhlIHJ1bGUncyBiYXNlIHZhbHVlLCByYWRpeCwgYW5kCisgICAgICogZXhwb25lbnQgYWNjb3JkaW5nIHRvIHRoZSBkZXNjcmlwdG9yLiAgKElmIHRoZSBkZXNjcmlwdGlvbiBkb2Vzbid0CisgICAgICogaW5jbHVkZSBhIHJ1bGUgZGVzY3JpcHRvciwgdGhlbiB0aGlzIGZ1bmN0aW9uIHNldHMgZXZlcnl0aGluZyB0bworICAgICAqIGRlZmF1bHQgdmFsdWVzIGFuZCB0aGUgcnVsZSBzZXQgc2V0cyB0aGUgcnVsZSdzIHJlYWwgYmFzZSB2YWx1ZSkuCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9uIFRoZSBydWxlJ3MgZGVzY3JpcHRpb24KKyAgICAgKiBAcmV0dXJuIElmICJkZXNjcmlwdGlvbiIgaW5jbHVkZWQgYSBydWxlIGRlc2NyaXB0b3IsIHRoaXMgaXMKKyAgICAgKiAiZGVzY3JpcHRpb24iIHdpdGggdGhlIGRlc2NyaXB0b3IgYW5kIGFueSB0cmFpbGluZyB3aGl0ZXNwYWNlCisgICAgICogc3RyaXBwZWQgb2ZmLiAgT3RoZXJ3aXNlOyBpdCdzICJkZXNjcmlwdG9yIiB1bmNoYW5nZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXJzZVJ1bGVEZXNjcmlwdG9yKFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBTdHJpbmcgZGVzY3JpcHRvcjsKKworICAgICAgICAvLyB0aGUgZGVzY3JpcHRpb24gY29uc2lzdHMgb2YgYSBydWxlIGRlc2NyaXB0b3IgYW5kIGEgcnVsZSBib2R5LAorICAgICAgICAvLyBzZXBhcmF0ZWQgYnkgYSBjb2xvbi4gIFRoZSBydWxlIGRlc2NyaXB0b3IgaXMgb3B0aW9uYWwuICBJZgorICAgICAgICAvLyBpdCdzIG9taXR0ZWQsIGp1c3Qgc2V0IHRoZSBiYXNlIHZhbHVlIHRvIDAuCisgICAgICAgIGludCBwID0gZGVzY3JpcHRpb24uaW5kZXhPZigiOiIpOworICAgICAgICBpZiAocCA9PSAtMSkgeworICAgICAgICAgICAgc2V0QmFzZVZhbHVlKDApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gY29weSB0aGUgZGVzY3JpcHRvciBvdXQgaW50byBpdHMgb3duIHN0cmluZyBhbmQgc3RyaXAgaXQsCisgICAgICAgICAgICAvLyBhbG9uZyB3aXRoIGFueSB0cmFpbGluZyB3aGl0ZXNwYWNlLCBvdXQgb2YgdGhlIG9yaWdpbmFsCisgICAgICAgICAgICAvLyBkZXNjcmlwdGlvbgorICAgICAgICAgICAgZGVzY3JpcHRvciA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZygwLCBwKTsKKyAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgIHdoaWxlIChwIDwgZGVzY3JpcHRpb24ubGVuZ3RoKCkgJiYgVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoZGVzY3JpcHRpb24uY2hhckF0KHApKSkKKyAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZyhwKTsKKworICAgICAgICAgICAgLy8gY2hlY2sgZmlyc3QgdG8gc2VlIGlmIHRoZSBydWxlIGRlc2NyaXB0b3IgbWF0Y2hlcyB0aGUgdG9rZW4KKyAgICAgICAgICAgIC8vIGZvciBvbmUgb2YgdGhlIHNwZWNpYWwgcnVsZXMuICBJZiBpdCBkb2VzLCBzZXQgdGhlIGJhc2UKKyAgICAgICAgICAgIC8vIHZhbHVlIHRvIHRoZSBjb3JyZWN0IGlkZW50ZmllciB2YWx1ZQorICAgICAgICAgICAgaWYgKGRlc2NyaXB0b3IuZXF1YWxzKCIteCIpKSB7CisgICAgICAgICAgICAgICAgc2V0QmFzZVZhbHVlKE5FR0FUSVZFX05VTUJFUl9SVUxFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGRlc2NyaXB0b3IuZXF1YWxzKCJ4LngiKSkgeworICAgICAgICAgICAgICAgIHNldEJhc2VWYWx1ZShJTVBST1BFUl9GUkFDVElPTl9SVUxFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGRlc2NyaXB0b3IuZXF1YWxzKCIwLngiKSkgeworICAgICAgICAgICAgICAgIHNldEJhc2VWYWx1ZShQUk9QRVJfRlJBQ1RJT05fUlVMRSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChkZXNjcmlwdG9yLmVxdWFscygieC4wIikpIHsKKyAgICAgICAgICAgICAgICBzZXRCYXNlVmFsdWUoTUFTVEVSX1JVTEUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB0aGUgcnVsZSBkZXNjcmlwdG9yIGJlZ2lucyB3aXRoIGEgZGlnaXQsIGl0J3MgYSBkZXNjcmlwdG9yCisgICAgICAgICAgICAvLyBmb3IgYSBub3JtYWwgcnVsZQorICAgICAgICAgICAgZWxzZSBpZiAoZGVzY3JpcHRvci5jaGFyQXQoMCkgPj0gJzAnICYmIGRlc2NyaXB0b3IuY2hhckF0KDApIDw9ICc5JykgeworICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0ZW1wVmFsdWUgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgcCA9IDA7CisgICAgICAgICAgICAgICAgY2hhciBjID0gJyAnOworCisgICAgICAgICAgICAgICAgLy8gYmVnaW4gcGFyc2luZyB0aGUgZGVzY3JpcHRvcjogY29weSBkaWdpdHMKKyAgICAgICAgICAgICAgICAvLyBpbnRvICJ0ZW1wVmFsdWUiLCBza2lwIHBlcmlvZHMsIGNvbW1hcywgYW5kIHNwYWNlcywKKyAgICAgICAgICAgICAgICAvLyBzdG9wIG9uIGEgc2xhc2ggb3IgPiBzaWduIChvciBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcpLAorICAgICAgICAgICAgICAgIC8vIGFuZCB0aHJvdyBhbiBleGNlcHRpb24gb24gYW55IG90aGVyIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIHdoaWxlIChwIDwgZGVzY3JpcHRvci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBjID0gZGVzY3JpcHRvci5jaGFyQXQocCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjID49ICcwJyAmJiBjIDw9ICc5JykgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFZhbHVlLmFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjID09ICcvJyB8fCBjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykgfHwgYyA9PSAnLCcgfHwgYyA9PSAnLicpIHsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgY2hhcmFjdGVyIGluIHJ1bGUgZGVzY3JpcHRvciIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyB0ZW1wVmFsdWUgbm93IGNvbnRhaW5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZQorICAgICAgICAgICAgICAgIC8vIHJ1bGUncyBiYXNlIHZhbHVlIHdpdGggdGhlIHB1bmN0dWF0aW9uIHN0cmlwcGVkIG91dC4KKyAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIHJ1bGUncyBiYXNlIHZhbHVlIGFjY29yZGluZ2x5CisgICAgICAgICAgICAgICAgc2V0QmFzZVZhbHVlKExvbmcucGFyc2VMb25nKHRlbXBWYWx1ZS50b1N0cmluZygpKSk7CisKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBzdG9wcGVkIHRoZSBwcmV2aW91cyBsb29wIG9uIGEgc2xhc2gsIHdlJ3JlCisgICAgICAgICAgICAgICAgLy8gbm93IHBhcnNpbmcgdGhlIHJ1bGUncyByYWRpeC4gIEFnYWluLCBhY2N1bXVsYXRlIGRpZ2l0cworICAgICAgICAgICAgICAgIC8vIGluIHRlbXBWYWx1ZSwgc2tpcCBwdW5jdHVhdGlvbiwgc3RvcCBvbiBhID4gbWFyaywgYW5kCisgICAgICAgICAgICAgICAgLy8gdGhyb3cgYW4gZXhjZXB0aW9uIG9uIGFueXRoaW5nIGVsc2UKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnLycpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFZhbHVlLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAocCA8IGRlc2NyaXB0b3IubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBkZXNjcmlwdG9yLmNoYXJBdChwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID49ICcwJyAmJiBjIDw9ICc5JykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBWYWx1ZS5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjID09ICc+JykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykgfHwgYyA9PSAnLCcgfHwgYyA9PSAnLicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgY2hhcmFjdGVyIGlzIHJ1bGUgZGVzY3JpcHRvciIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gdGVtcFZhbHVlIG5vdyBjb250YWluJ3MgdGhlIHJ1bGUncyByYWRpeC4gIFNldCBpdAorICAgICAgICAgICAgICAgICAgICAvLyBhY2NvcmRpbmdseSwgYW5kIHJlY2FsY3VsYXRlIHRoZSBydWxlJ3MgZXhwb25lbnQKKyAgICAgICAgICAgICAgICAgICAgcmFkaXggPSBJbnRlZ2VyLnBhcnNlSW50KHRlbXBWYWx1ZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJhZGl4ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJ1bGUgY2FuJ3QgaGF2ZSByYWRpeCBvZiAwIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZXhwb25lbnQgPSBleHBlY3RlZEV4cG9uZW50KCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gaWYgd2Ugc3RvcHBlZCB0aGUgcHJldmlvdXMgbG9vcCBvbiBhID4gc2lnbiwgdGhlbiBjb250aW51ZQorICAgICAgICAgICAgICAgIC8vIGZvciBhcyBsb25nIGFzIHdlIHN0aWxsIHNlZSA+IHNpZ25zLiAgRm9yIGVhY2ggb25lLAorICAgICAgICAgICAgICAgIC8vIGRlY3JlbWVudCB0aGUgZXhwb25lbnQgKHVubGVzcyB0aGUgZXhwb25lbnQgaXMgYWxyZWFkeSAwKS4KKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSBzZWUgYW5vdGhlciBjaGFyYWN0ZXIgYmVmb3JlIHJlYWNoaW5nIHRoZSBlbmQgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgZGVzY3JpcHRvciwgdGhhdCdzIGFsc28gYSBzeW50YXggZXJyb3IuCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nKSB7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChwIDwgZGVzY3JpcHRvci5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGRlc2NyaXB0b3IuY2hhckF0KHApOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJz4nICYmIGV4cG9uZW50ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tZXhwb25lbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgY2hhcmFjdGVyIGluIHJ1bGUgZGVzY3JpcHRvciIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gZmluYWxseSwgaWYgdGhlIHJ1bGUgYm9keSBiZWdpbnMgd2l0aCBhbiBhcG9zdHJvcGhlLCBzdHJpcCBpdCBvZmYKKyAgICAgICAgLy8gKHRoaXMgaXMgZ2VuZXJhbGx5IHVzZWQgdG8gcHV0IHdoaXRlc3BhY2UgYXQgdGhlIGJlZ2lubmluZyBvZgorICAgICAgICAvLyBhIHJ1bGUncyBydWxlIHRleHQpCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5sZW5ndGgoKSA+IDAgJiYgZGVzY3JpcHRpb24uY2hhckF0KDApID09ICdcJycpIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24uc3Vic3RyaW5nKDEpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIHRoZSBkZXNjcmlwdGlvbiB3aXRoIGFsbCB0aGUgc3R1ZmYgd2UndmUganVzdCB3YWRlZCB0aHJvdWdoCisgICAgICAgIC8vIHN0cmlwcGVkIG9mZiB0aGUgZnJvbnQuICBJdCBub3cgY29udGFpbnMganVzdCB0aGUgcnVsZSBib2R5LgorICAgICAgICByZXR1cm4gZGVzY3JpcHRpb247CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VhcmNoZXMgdGhlIHJ1bGUncyBydWxlIHRleHQgZm9yIHRoZSBzdWJzdGl0dXRpb24gdG9rZW5zLAorICAgICAqIGNyZWF0ZXMgdGhlIHN1YnN0aXR1dGlvbnMsIGFuZCByZW1vdmVzIHRoZSBzdWJzdGl0dXRpb24gdG9rZW5zCisgICAgICogZnJvbSB0aGUgcnVsZSdzIHJ1bGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gb3duZXIgVGhlIHJ1bGUgc2V0IGNvbnRhaW5pbmcgdGhpcyBydWxlCisgICAgICogQHBhcmFtIHByZWRlY2Vzc29yIFRoZSBydWxlIHByZXNlZGluZyB0aGlzIG9uZSBpbiAib3duZXJzIiBydWxlIGxpc3QKKyAgICAgKiBAcGFyYW0gb3duZXJzT3duZXIgVGhlIFJ1bGVCYXNlZEZvcm1hdCB0aGF0IG93bnMgdGhpcyBydWxlCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGV4dHJhY3RTdWJzdGl0dXRpb25zKE5GUnVsZVNldCAgICAgICAgICAgICBvd25lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlICAgICAgICAgICAgICAgIHByZWRlY2Vzc29yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgb3duZXJzT3duZXIpIHsKKyAgICAgICAgc3ViMSA9IGV4dHJhY3RTdWJzdGl0dXRpb24ob3duZXIsIHByZWRlY2Vzc29yLCBvd25lcnNPd25lcik7CisgICAgICAgIHN1YjIgPSBleHRyYWN0U3Vic3RpdHV0aW9uKG93bmVyLCBwcmVkZWNlc3Nvciwgb3duZXJzT3duZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlYXJjaGVzIHRoZSBydWxlJ3MgcnVsZSB0ZXh0IGZvciB0aGUgZmlyc3Qgc3Vic3RpdHV0aW9uIHRva2VuLAorICAgICAqIGNyZWF0ZXMgYSBzdWJzdGl0dXRpb24gYmFzZWQgb24gaXQsIGFuZCByZW1vdmVzIHRoZSB0b2tlbiBmcm9tCisgICAgICogdGhlIHJ1bGUncyBydWxlIHRleHQuCisgICAgICogQHBhcmFtIG93bmVyIFRoZSBydWxlIHNldCBjb250YWluaW5nIHRoaXMgcnVsZQorICAgICAqIEBwYXJhbSBwcmVkZWNlc3NvciBUaGUgcnVsZSBwcmVjZWRpbmcgdGhpcyBvbmUgaW4gdGhlIHJ1bGUgc2V0J3MKKyAgICAgKiBydWxlIGxpc3QKKyAgICAgKiBAcGFyYW0gb3duZXJzT3duZXIgVGhlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0aGF0IG93bnMgdGhpcyBydWxlCisgICAgICogQHJldHVybiBUaGUgbmV3bHktY3JlYXRlZCBzdWJzdGl0dXRpb24uICBUaGlzIGlzIG5ldmVyIG51bGw7IGlmCisgICAgICogdGhlIHJ1bGUgdGV4dCBkb2Vzbid0IGNvbnRhaW4gYW55IHN1YnN0aXR1dGlvbiB0b2tlbnMsIHRoaXMgd2lsbAorICAgICAqIGJlIGEgTnVsbFN1YnN0aXR1dGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIE5GU3Vic3RpdHV0aW9uIGV4dHJhY3RTdWJzdGl0dXRpb24oTkZSdWxlU2V0ICAgICAgICAgICAgIG93bmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGUgICAgICAgICAgICAgICAgcHJlZGVjZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBvd25lcnNPd25lcikgeworICAgICAgICBORlN1YnN0aXR1dGlvbiByZXN1bHQgPSBudWxsOworICAgICAgICBpbnQgc3ViU3RhcnQ7CisgICAgICAgIGludCBzdWJFbmQ7CisKKyAgICAgICAgLy8gc2VhcmNoIHRoZSBydWxlJ3MgcnVsZSB0ZXh0IGZvciB0aGUgZmlyc3QgdHdvIGNoYXJhY3RlcnMgb2YKKyAgICAgICAgLy8gYSBzdWJzdGl0dXRpb24gdG9rZW4KKyAgICAgICAgc3ViU3RhcnQgPSBpbmRleE9mQW55KG5ldyBTdHJpbmdbXSB7ICI8PCIsICI8JSIsICI8IyIsICI8MCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPj4iLCAiPiUiLCAiPiMiLCAiPjAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj0lIiwgIj0jIiwgIj0wIiB9ICk7CisKKyAgICAgICAgLy8gaWYgd2UgZGlkbid0IGZpbmQgb25lLCBjcmVhdGUgYSBudWxsIHN1YnN0aXR1dGlvbiBwb3NpdGlvbmVkCisgICAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIHJ1bGUgdGV4dAorICAgICAgICBpZiAoc3ViU3RhcnQgPT0gLTEpIHsKKyAgICAgICAgICAgIHJldHVybiBORlN1YnN0aXR1dGlvbi5tYWtlU3Vic3RpdHV0aW9uKHJ1bGVUZXh0Lmxlbmd0aCgpLCB0aGlzLCBwcmVkZWNlc3NvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyLCBvd25lcnNPd25lciwgIiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gc3BlY2lhbC1jYXNlIHRoZSAiPj4+IiB0b2tlbiwgc2luY2Ugc2VhcmNoaW5nIGZvciB0aGUgPiBhdCB0aGUKKyAgICAgICAgLy8gZW5kIHdpbGwgYWN0dWFsbHkgZmluZCB0aGUgPiBpbiB0aGUgbWlkZGxlCisgICAgICAgIGlmIChydWxlVGV4dC5zdWJzdHJpbmcoc3ViU3RhcnQpLnN0YXJ0c1dpdGgoIj4+PiIpKSB7CisgICAgICAgICAgICBzdWJFbmQgPSBzdWJTdGFydCArIDI7CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSB0aGUgc3Vic3RpdHV0aW9uIHRva2VuIGVuZHMgd2l0aCB0aGUgc2FtZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgIC8vIGl0IGJlZ2FuIHdpdGgKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IHJ1bGVUZXh0LmNoYXJBdChzdWJTdGFydCk7CisgICAgICAgICAgICBzdWJFbmQgPSBydWxlVGV4dC5pbmRleE9mKGMsIHN1YlN0YXJ0ICsgMSk7CisgICAgICAgICAgICAvLyBzcGVjaWFsIGNhc2UgZm9yICc8JWZvbzw8JworICAgICAgICAgICAgaWYgKGMgPT0gJzwnICYmIHN1YkVuZCAhPSAtMSAmJiBzdWJFbmQgPCBydWxlVGV4dC5sZW5ndGgoKSAtIDEgJiYgcnVsZVRleHQuY2hhckF0KHN1YkVuZCsxKSA9PSBjKSB7CisgICAgICAgICAgICAgICAgLy8gb3JkaW5hbHMgdXNlICI9IywjIzA9PSVhYmJyZXY9IiBhcyB0aGVpciBydWxlLiAgTm90aWNlIHRoYXQgdGhlICc9PScgaW4gdGhlIG1pZGRsZQorICAgICAgICAgICAgICAgIC8vIG9jY3VycyBiZWNhdXNlIG9mIHRoZSBqdXh0YXBvc2l0aW9uIG9mIHR3byBkaWZmZXJlbnQgcnVsZXMuICBUaGUgY2hlY2sgZm9yICc8JyBpcyBhIGhhY2sKKyAgICAgICAgICAgICAgICAvLyB0byBnZXQgYXJvdW5kIHRoaXMuICBIYXZpbmcgdGhlIGR1cGxpY2F0ZSBhdCB0aGUgZnJvbnQgd291bGQgY2F1c2UgcHJvYmxlbXMgd2l0aAorICAgICAgICAgICAgICAgIC8vIHJ1bGVzIGxpa2UgIjw8JSIgdG8gZm9ybWF0LCBzYXksIHBlcmNlbnRzLi4uCisgICAgICAgICAgICAgICAgKytzdWJFbmQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB3ZSBkb24ndCBmaW5kIHRoZSBlbmQgb2YgdGhlIHRva2VuIChpLmUuLCBpZiB3ZSdyZSBvbiBhIHNpbmdsZSwKKyAgICAgICAgLy8gdW5tYXRjaGVkIHRva2VuIGNoYXJhY3RlciksIGNyZWF0ZSBhIG51bGwgc3Vic3RpdHV0aW9uIHBvc2l0aW9uZWQKKyAgICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgcnVsZQorICAgICAgICBpZiAoc3ViRW5kID09IC0xKSB7CisgICAgICAgICAgICByZXR1cm4gTkZTdWJzdGl0dXRpb24ubWFrZVN1YnN0aXR1dGlvbihydWxlVGV4dC5sZW5ndGgoKSwgdGhpcywgcHJlZGVjZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvd25lciwgb3duZXJzT3duZXIsICIiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHdlIGdldCBoZXJlLCB3ZSBoYXZlIGEgcmVhbCBzdWJzdGl0dXRpb24gdG9rZW4gKG9yIGF0IGxlYXN0CisgICAgICAgIC8vIHNvbWUgdGV4dCBib3VuZGVkIGJ5IHN1YnN0aXR1dGlvbiB0b2tlbiBjaGFyYWN0ZXJzKS4gIFVzZQorICAgICAgICAvLyBtYWtlU3Vic3RpdHV0aW9uKCkgdG8gY3JlYXRlIHRoZSByaWdodCBraW5kIG9mIHN1YnN0aXR1dGlvbgorICAgICAgICByZXN1bHQgPSBORlN1YnN0aXR1dGlvbi5tYWtlU3Vic3RpdHV0aW9uKHN1YlN0YXJ0LCB0aGlzLCBwcmVkZWNlc3Nvciwgb3duZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3duZXJzT3duZXIsIHJ1bGVUZXh0LnN1YnN0cmluZyhzdWJTdGFydCwgc3ViRW5kICsgMSkpOworCisgICAgICAgIC8vIHJlbW92ZSB0aGUgc3Vic3RpdHV0aW9uIGZyb20gdGhlIHJ1bGUgdGV4dAorICAgICAgICBydWxlVGV4dCA9IHJ1bGVUZXh0LnN1YnN0cmluZygwLCBzdWJTdGFydCkgKyBydWxlVGV4dC5zdWJzdHJpbmcoc3ViRW5kICsgMSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgcnVsZSdzIGJhc2UgdmFsdWUsIGFuZCBjYXVzZXMgdGhlIHJhZGl4IGFuZCBleHBvbmVudAorICAgICAqIHRvIGJlIHJlY2FsY3VsYXRlZC4gIFRoaXMgaXMgdXNlZCBkdXJpbmcgY29uc3RydWN0aW9uIHdoZW4gd2UKKyAgICAgKiBkb24ndCBrbm93IHRoZSBydWxlJ3MgYmFzZSB2YWx1ZSB1bnRpbCBhZnRlciBpdCdzIGJlZW4KKyAgICAgKiBjb25zdHJ1Y3RlZC4gIEl0IHNob3VsZCBub3QgYmUgdXNlZCBhdCBhbnkgb3RoZXIgdGltZS4KKyAgICAgKiBAcGFyYW0gVGhlIG5ldyBiYXNlIHZhbHVlIGZvciB0aGUgcnVsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRCYXNlVmFsdWUobG9uZyBuZXdCYXNlVmFsdWUpIHsKKyAgICAgICAgLy8gc2V0IHRoZSBiYXNlIHZhbHVlCisgICAgICAgIGJhc2VWYWx1ZSA9IG5ld0Jhc2VWYWx1ZTsKKworICAgICAgICAvLyBpZiB0aGlzIGlzbid0IGEgc3BlY2lhbCBydWxlLCByZWNhbGN1bGF0ZSB0aGUgcmFkaXggYW5kIGV4cG9uZW50CisgICAgICAgIC8vICh0aGUgcmFkaXggYWx3YXlzIGRlZmF1bHRzIHRvIDEwOyBpZiBpdCdzIHN1cHBvc2VkIHRvIGJlIHNvbWV0aGluZworICAgICAgICAvLyBlbHNlLCBpdCdzIGNsZWFuZWQgdXAgYnkgdGhlIGNhbGxlciBhbmQgdGhlIGV4cG9uZW50IGlzCisgICAgICAgIC8vIHJlY2FsY3VsYXRlZCBhZ2Fpbi0tIHRoZSBvbmx5IGZ1bmN0aW9uIHRoYXQgZG9lcyB0aGlzIGlzCisgICAgICAgIC8vIE5GUnVsZS5wYXJzZVJ1bGVEZXNjcmlwdG9yKCkgKQorICAgICAgICBpZiAoYmFzZVZhbHVlID49IDEpIHsKKyAgICAgICAgICAgIHJhZGl4ID0gMTA7CisgICAgICAgICAgICBleHBvbmVudCA9IGV4cGVjdGVkRXhwb25lbnQoKTsKKworICAgICAgICAgICAgLy8gdGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBvbiBhIGZ1bGx5LWNvbnN0cnVjdGVkIHJ1bGUgd2hvc2UKKyAgICAgICAgICAgIC8vIGRlc2NyaXB0aW9uIGRpZG4ndCBzcGVjaWZ5IGEgYmFzZSB2YWx1ZS4gIFRoaXMgbWVhbnMgaXQKKyAgICAgICAgICAgIC8vIGhhcyBzdWJzdGl0dXRpb25zLCBhbmQgc29tZSBzdWJzdGl0dXRpb25zIGhvbGQgb24gdG8gY29waWVzCisgICAgICAgICAgICAvLyBvZiB0aGUgcnVsZSdzIGRpdmlzb3IuICBGaXggdGhlaXIgY29waWVzIG9mIHRoZSBkaXZpc29yLgorICAgICAgICAgICAgaWYgKHN1YjEgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN1YjEuc2V0RGl2aXNvcihyYWRpeCwgZXhwb25lbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN1YjIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN1YjIuc2V0RGl2aXNvcihyYWRpeCwgZXhwb25lbnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB0aGlzIGlzIGEgc3BlY2lhbCBydWxlLCBpdHMgcmFkaXggYW5kIGV4cG9uZW50IGFyZSBiYXNpY2FsbHkKKyAgICAgICAgICAgIC8vIGlnbm9yZWQuICBTZXQgdGhlbSB0byAic2FmZSIgZGVmYXVsdCB2YWx1ZXMKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJhZGl4ID0gMTA7CisgICAgICAgICAgICBleHBvbmVudCA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGNhbGN1bGF0ZXMgdGhlIHJ1bGUncyBleHBvbmVudCBiYXNlZCBvbiBpdHMgcmFkaXggYW5kIGJhc2UKKyAgICAgKiB2YWx1ZS4gIFRoaXMgd2lsbCBiZSB0aGUgaGlnaGVzdCBwb3dlciB0aGUgcmFkaXggY2FuIGJlIHJhaXNlZCB0bworICAgICAqIGFuZCBzdGlsbCBwcm9kdWNlIGEgcmVzdWx0IGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgYmFzZSB2YWx1ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHNob3J0IGV4cGVjdGVkRXhwb25lbnQoKSB7CisgICAgICAgIC8vIHNpbmNlIHRoZSBsb2cgb2YgMCwgb3IgdGhlIGxvZyBiYXNlIDAgb2Ygc29tZXRoaW5nLCBjYXVzZXMgYW4KKyAgICAgICAgLy8gZXJyb3IsIGRlY2xhcmUgdGhlIGV4cG9uZW50IGluIHRoZXNlIGNhc2VzIHRvIGJlIDAgKHdlIGFsc28KKyAgICAgICAgLy8gZGVhbCB3aXRoIHRoZSBzcGVjaWFsLXJ1bGUgaWRlbnRpZmllcnMgaGVyZSkKKyAgICAgICAgaWYgKHJhZGl4ID09IDAgfHwgYmFzZVZhbHVlIDwgMSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKworICAgICAgICAvLyB3ZSBnZXQgcm91bmRpbmcgZXJyb3IgaW4gc29tZSBjYXNlcy0tIGZvciBleGFtcGxlLCBsb2cgMTAwMCAvIGxvZyAxMAorICAgICAgICAvLyBnaXZlcyB1cyAxLjk5OTk5OTk5OTYgaW5zdGVhZCBvZiAyLiAgVGhlIGV4dHJhIGxvZ2ljIGhlcmUgaXMgdG8gdGFrZQorICAgICAgICAvLyB0aGF0IGludG8gYWNjb3VudAorICAgICAgICBzaG9ydCB0ZW1wUmVzdWx0ID0gKHNob3J0KShNYXRoLmxvZyhiYXNlVmFsdWUpIC8gTWF0aC5sb2cocmFkaXgpKTsKKyAgICAgICAgaWYgKE1hdGgucG93KHJhZGl4LCB0ZW1wUmVzdWx0ICsgMSkgPD0gYmFzZVZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gKHNob3J0KSh0ZW1wUmVzdWx0ICsgMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdGVtcFJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNlYXJjaGVzIHRoZSBydWxlJ3MgcnVsZSB0ZXh0IGZvciBhbnkgb2YgdGhlIHNwZWNpZmllZCBzdHJpbmdzLgorICAgICAqIEBwYXJhbSBzdHJpbmdzIEFuIGFycmF5IG9mIHN0cmluZ3MgdG8gc2VhcmNoIHRoZSBydWxlJ3MgcnVsZQorICAgICAqIHRleHQgZm9yCisgICAgICogQHJldHVybiBUaGUgaW5kZXggb2YgdGhlIGZpcnN0IG1hdGNoIGluIHRoZSBydWxlJ3MgcnVsZSB0ZXh0CisgICAgICogKGkuZS4sIHRoZSBmaXJzdCBzdWJzdHJpbmcgaW4gdGhlIHJ1bGUncyBydWxlIHRleHQgdGhhdCBtYXRjaGVzCisgICAgICogX2FueV8gb2YgdGhlIHN0cmluZ3MgaW4gInN0cmluZ3MiKS4gIElmIG5vbmUgb2YgdGhlIHN0cmluZ3MgaW4KKyAgICAgKiAic3RyaW5ncyIgaXMgZm91bmQgaW4gdGhlIHJ1bGUncyBydWxlIHRleHQsIHJldHVybnMgLTEuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgaW5kZXhPZkFueShTdHJpbmdbXSBzdHJpbmdzKSB7CisgICAgICAgIGludCBwb3M7CisgICAgICAgIGludCByZXN1bHQgPSAtMTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHJpbmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBwb3MgPSBydWxlVGV4dC5pbmRleE9mKHN0cmluZ3NbaV0pOworICAgICAgICAgICAgaWYgKHBvcyAhPSAtMSAmJiAocmVzdWx0ID09IC0xIHx8IHBvcyA8IHJlc3VsdCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBwb3M7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUZXN0cyB0d28gcnVsZXMgZm9yIGVxdWFsaXR5LgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBydWxlIHRvIGNvbXBhcmUgdGhpcyBvbmUgYWdhaW5zdAorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGUgdHdvIHJ1bGVzIGFyZSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICBpZiAodGhhdCBpbnN0YW5jZW9mIE5GUnVsZSkgeworICAgICAgICAgICAgTkZSdWxlIHRoYXQyID0gKE5GUnVsZSl0aGF0OworCisgICAgICAgICAgICByZXR1cm4gYmFzZVZhbHVlID09IHRoYXQyLmJhc2VWYWx1ZQorICAgICAgICAgICAgICAgICYmIHJhZGl4ID09IHRoYXQyLnJhZGl4CisgICAgICAgICAgICAgICAgJiYgZXhwb25lbnQgPT0gdGhhdDIuZXhwb25lbnQKKyAgICAgICAgICAgICAgICAmJiBydWxlVGV4dC5lcXVhbHModGhhdDIucnVsZVRleHQpCisgICAgICAgICAgICAgICAgJiYgc3ViMS5lcXVhbHModGhhdDIuc3ViMSkKKyAgICAgICAgICAgICAgICAmJiBzdWIyLmVxdWFscyh0aGF0Mi5zdWIyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHJ1bGUuICBUaGlzIHdvbid0CisgICAgICogbmVjZXNzYXJpbHkgYmUgdGhlIHNhbWUgYXMgdGhlIGRlc2NyaXB0aW9uIHRoYXQgdGhpcyBydWxlCisgICAgICogd2FzIGNyZWF0ZWQgd2l0aCwgYnV0IGl0IHdpbGwgcHJvZHVjZSB0aGUgc2FtZSByZXN1bHQuCisgICAgICogQHJldHVybiBBIHRleHR1YWwgZGVzY3JpcHRpb24gb2YgdGhlIHJ1bGUKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vIHN0YXJ0IHdpdGggdGhlIHJ1bGUgZGVzY3JpcHRvci4gIFNwZWNpYWwtY2FzZSB0aGUgc3BlY2lhbCBydWxlcworICAgICAgICBpZiAoYmFzZVZhbHVlID09IE5FR0FUSVZFX05VTUJFUl9SVUxFKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIteDogIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoYmFzZVZhbHVlID09IElNUFJPUEVSX0ZSQUNUSU9OX1JVTEUpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIngueDogIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoYmFzZVZhbHVlID09IFBST1BFUl9GUkFDVElPTl9SVUxFKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIwLng6ICIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGJhc2VWYWx1ZSA9PSBNQVNURVJfUlVMRSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgieC4wOiAiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZvciBhIG5vcm1hbCBydWxlLCB3cml0ZSBvdXQgaXRzIGJhc2UgdmFsdWUsIGFuZCBpZiB0aGUgcmFkaXggaXMKKyAgICAgICAgLy8gc29tZXRoaW5nIG90aGVyIHRoYW4gMTAsIHdyaXRlIG91dCB0aGUgcmFkaXggKHdpdGggdGhlIHByZWNlZGluZworICAgICAgICAvLyBzbGFzaCwgb2YgY291cnNlKS4gIFRoZW4gY2FsY3VsYXRlIHRoZSBleHBlY3RlZCBleHBvbmVudCBhbmQgaWYKKyAgICAgICAgLy8gaWYgaXNuJ3QgdGhlIHNhbWUgYXMgdGhlIGFjdHVhbCBleHBvbmVudCwgd3JpdGUgYW4gYXBwcm9wcmlhdGUKKyAgICAgICAgLy8gbnVtYmVyIG9mID4gc2lnbnMuICBGaW5hbGx5LCB0ZXJtaW5hdGUgdGhlIHdob2xlIHRoaW5nIHdpdGgKKyAgICAgICAgLy8gYSBjb2xvbi4KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFN0cmluZy52YWx1ZU9mKGJhc2VWYWx1ZSkpOworICAgICAgICAgICAgaWYgKHJhZGl4ICE9IDEwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLycpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoU3RyaW5nLnZhbHVlT2YocmFkaXgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBudW1DYXJldHMgPSBleHBlY3RlZEV4cG9uZW50KCkgLSBleHBvbmVudDsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ2FyZXRzOyBpKyspCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnPicpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiOiAiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBydWxlIHRleHQgYmVnaW5zIHdpdGggYSBzcGFjZSwgd3JpdGUgYW4gYXBvc3Ryb3BoZQorICAgICAgICAvLyAod2hpdGVzcGFjZSBhZnRlciB0aGUgcnVsZSBkZXNjcmlwdG9yIGlzIGlnbm9yZWQ7IHRoZQorICAgICAgICAvLyBhcG9zdHJvcGhlIGlzIHVzZWQgdG8gbWFrZSB0aGUgd2hpdGVzcGFjZSBzaWduaWZpY2FudCkKKyAgICAgICAgaWYgKHJ1bGVUZXh0LnN0YXJ0c1dpdGgoIiAiKSAmJiAoc3ViMSA9PSBudWxsIHx8IHN1YjEuZ2V0UG9zKCkgIT0gMCkpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIlwnIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBub3csIHdyaXRlIHRoZSBydWxlJ3MgcnVsZSB0ZXh0LCBpbnNlcnRpbmcgYXBwcm9wcmlhdGUKKyAgICAgICAgLy8gc3Vic3RpdHV0aW9uIHRva2VucyBpbiB0aGUgYXBwcm9wcmlhdGUgcGxhY2VzCisgICAgICAgIFN0cmluZ0J1ZmZlciBydWxlVGV4dENvcHkgPSBuZXcgU3RyaW5nQnVmZmVyKHJ1bGVUZXh0KTsKKyAgICAgICAgcnVsZVRleHRDb3B5Lmluc2VydChzdWIyLmdldFBvcygpLCBzdWIyLnRvU3RyaW5nKCkpOworICAgICAgICBydWxlVGV4dENvcHkuaW5zZXJ0KHN1YjEuZ2V0UG9zKCksIHN1YjEudG9TdHJpbmcoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQocnVsZVRleHRDb3B5LnRvU3RyaW5nKCkpOworCisgICAgICAgIC8vIGFuZCBmaW5hbGx5LCB0b3AgdGhlIHdob2xlIHRoaW5nIG9mZiB3aXRoIGEgc2VtaWNvbG9uIGFuZAorICAgICAgICAvLyByZXR1cm4gdGhlIHJlc3VsdAorICAgICAgICByZXN1bHQuYXBwZW5kKCc7Jyk7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29ycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHJ1bGUncyBiYXNlIHZhbHVlCisgICAgICogQHJldHVybiBUaGUgcnVsZSdzIGJhc2UgdmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgbG9uZyBnZXRCYXNlVmFsdWUoKSB7CisgICAgICAgIHJldHVybiBiYXNlVmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcnVsZSdzIGRpdmlzb3IgKHRoZSB2YWx1ZSB0aGF0IGNvdHJvbHMgdGhlIGJlaGF2aW9yCisgICAgICogb2YgaXRzIHN1YnN0aXR1dGlvbnMpCisgICAgICogQHJldHVybiBUaGUgcnVsZSdzIGRpdmlzb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGdldERpdmlzb3IoKSB7CisgICAgICAgIHJldHVybiBNYXRoLnBvdyhyYWRpeCwgZXhwb25lbnQpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyB0aGUgbnVtYmVyLCBhbmQgaW5zZXJ0cyB0aGUgcmVzdWx0aW5nIHRleHQgaW50bworICAgICAqIHRvSW5zZXJ0SW50by4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHBhcmFtIHRvSW5zZXJ0SW50byBUaGUgc3RyaW5nIHdoZXJlIHRoZSByZXN1bHRhbnQgdGV4dCBzaG91bGQKKyAgICAgKiBiZSBpbnNlcnRlZAorICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIGluIHRvSW5zZXJ0SW50byB3aGVyZSB0aGUgcmVzdWx0YW50IHRleHQKKyAgICAgKiBzaG91bGQgYmUgaW5zZXJ0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb0Zvcm1hdChsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICAvLyBmaXJzdCwgaW5zZXJ0IHRoZSBydWxlJ3MgcnVsZSB0ZXh0IGludG8gdG9JbnNlcnRJbnRvIGF0IHRoZQorICAgICAgICAvLyBzcGVjaWZpZWQgcG9zaXRpb24sIHRoZW4gaW5zZXJ0IHRoZSByZXN1bHRzIG9mIHRoZSBzdWJzdGl0dXRpb25zCisgICAgICAgIC8vIGludG8gdGhlIHJpZ2h0IHBsYWNlcyBpbiB0b0luc2VydEludG8gKG5vdGljZSB3ZSBkbyB0aGUKKyAgICAgICAgLy8gc3Vic3RpdHV0aW9ucyBpbiByZXZlcnNlIG9yZGVyIHNvIHRoYXQgdGhlIG9mZnNldHMgZG9uJ3QgZ2V0CisgICAgICAgIC8vIG1lc3NlZCB1cCkKKyAgICAgICAgdG9JbnNlcnRJbnRvLmluc2VydChwb3MsIHJ1bGVUZXh0KTsKKyAgICAgICAgc3ViMi5kb1N1YnN0aXR1dGlvbihudW1iZXIsIHRvSW5zZXJ0SW50bywgcG9zKTsKKyAgICAgICAgc3ViMS5kb1N1YnN0aXR1dGlvbihudW1iZXIsIHRvSW5zZXJ0SW50bywgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIHRoZSBudW1iZXIsIGFuZCBpbnNlcnRzIHRoZSByZXN1bHRpbmcgdGV4dCBpbnRvCisgICAgICogdG9JbnNlcnRJbnRvLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcGFyYW0gdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgd2hlcmUgdGhlIHJlc3VsdGFudCB0ZXh0IHNob3VsZAorICAgICAqIGJlIGluc2VydGVkCisgICAgICogQHBhcmFtIHBvcyBUaGUgcG9zaXRpb24gaW4gdG9JbnNlcnRJbnRvIHdoZXJlIHRoZSByZXN1bHRhbnQgdGV4dAorICAgICAqIHNob3VsZCBiZSBpbnNlcnRlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvRm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0luc2VydEludG8sIGludCBwb3MpIHsKKyAgICAgICAgLy8gZmlyc3QsIGluc2VydCB0aGUgcnVsZSdzIHJ1bGUgdGV4dCBpbnRvIHRvSW5zZXJ0SW50byBhdCB0aGUKKyAgICAgICAgLy8gc3BlY2lmaWVkIHBvc2l0aW9uLCB0aGVuIGluc2VydCB0aGUgcmVzdWx0cyBvZiB0aGUgc3Vic3RpdHV0aW9ucworICAgICAgICAvLyBpbnRvIHRoZSByaWdodCBwbGFjZXMgaW4gdG9JbnNlcnRJbnRvCisgICAgICAgIC8vIFthZ2Fpbiwgd2UgaGF2ZSB0d28gY29waWVzIG9mIHRoaXMgcm91dGluZSB0aGF0IGRvIHRoZSBzYW1lIHRoaW5nCisgICAgICAgIC8vIHNvIHRoYXQgd2UgZG9uJ3Qgc2FjcmlmaWNlIHByZWNpc2lvbiBpbiBhIGxvbmcgYnkgY2FzdGluZyBpdAorICAgICAgICAvLyB0byBhIGRvdWJsZV0KKyAgICAgICAgdG9JbnNlcnRJbnRvLmluc2VydChwb3MsIHJ1bGVUZXh0KTsKKyAgICAgICAgc3ViMi5kb1N1YnN0aXR1dGlvbihudW1iZXIsIHRvSW5zZXJ0SW50bywgcG9zKTsKKyAgICAgICAgc3ViMS5kb1N1YnN0aXR1dGlvbihudW1iZXIsIHRvSW5zZXJ0SW50bywgcG9zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGJ5IHRoZSBvd25pbmcgcnVsZSBzZXQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gaW52b2tlIHRoZQorICAgICAqIHJvbGxiYWNrIHJ1bGUgKGkuZS4sIHdoZXRoZXIgdGhpcyBydWxlIG9yIHRoZSBvbmUgdGhhdCBwcmVjZWRlcworICAgICAqIGl0IGluIHRoZSBydWxlIHNldCdzIGxpc3Qgc2hvdWxkIGJlIHVzZWQgdG8gZm9ybWF0IHRoZSBudW1iZXIpCisgICAgICogQHBhcmFtIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiBUcnVlIGlmIHRoZSBydWxlIHNldCBzaG91bGQgdXNlIHRoZSBydWxlIHRoYXQgcHJlY2VkZXMKKyAgICAgKiB0aGlzIG9uZSBpbiBpdHMgbGlzdDsgZmFsc2UgaWYgaXQgc2hvdWxkIHVzZSB0aGlzIHJ1bGUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBzaG91bGRSb2xsQmFjayhkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIC8vIHdlIHJvbGwgYmFjayBpZiB0aGUgcnVsZSBjb250YWlucyBhIG1vZHVsdXMgc3Vic3RpdHV0aW9uLAorICAgICAgICAvLyB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCBpcyBhbiBldmVuIG11bHRpcGxlIG9mIHRoZSBydWxlJ3MKKyAgICAgICAgLy8gZGl2aXNvciwgYW5kIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZSBpcyBOT1QgYW4gZXZlbiBtdWx0aXBsZQorICAgICAgICAvLyBvZiBpdHMgZGl2aXNvcgorICAgICAgICAvLyBJbiBvdGhlciB3b3JkcywgaWYgdGhlIG9yaWdpbmFsIGRlc2NyaXB0aW9uIGhhZAorICAgICAgICAvLyAgICAxMDA6IDw8IGh1bmRyZWRbID4+XTsKKyAgICAgICAgLy8gdGhhdCBleHBhbmRzIGludG8KKyAgICAgICAgLy8gICAgMTAwOiA8PCBodW5kcmVkOworICAgICAgICAvLyAgICAxMDE6IDw8IGh1bmRyZWQgPj47CisgICAgICAgIC8vIGludGVybmFsbHkuICBCdXQgd2hlbiB3ZSdyZSBmb3JtYXR0aW5nIDIwMCwgaWYgd2UgdXNlIHRoZSBydWxlCisgICAgICAgIC8vIGF0IDEwMSwgd2hpY2ggd291bGQgbm9ybWFsbHkgYXBwbHksIHdlIGdldCAidHdvIGh1bmRyZWQgemVybyIuCisgICAgICAgIC8vIFRvIHByZXZlbnQgdGhpcywgd2Ugcm9sbCBiYWNrIGFuZCB1c2UgdGhlIHJ1bGUgYXQgMTAwIGluc3RlYWQuCisgICAgICAgIC8vIFRoaXMgaXMgdGhlIGxvZ2ljIHRoYXQgbWFrZXMgdGhpcyBoYXBwZW46IHRoZSBydWxlIGF0IDEwMSBoYXMKKyAgICAgICAgLy8gYSBtb2R1bHVzIHN1YnN0aXR1dGlvbiwgaXRzIGJhc2UgdmFsdWUgaXNuJ3QgYW4gZXZlbiBtdWx0aXBsZQorICAgICAgICAvLyBvZiAxMDAsIGFuZCB0aGUgdmFsdWUgd2UncmUgdHJ5aW5nIHRvIGZvcm1hdCBfaXNfIGFuIGV2ZW4KKyAgICAgICAgLy8gbXVsdGlwbGUgb2YgMTAwLiAgVGhpcyBpcyBjYWxsZWQgdGhlICJyb2xsYmFjayBydWxlLiIKKyAgICAgICAgaWYgKChzdWIxLmlzTW9kdWx1c1N1YnN0aXR1dGlvbigpKSB8fCAoc3ViMi5pc01vZHVsdXNTdWJzdGl0dXRpb24oKSkpIHsKKyAgICAgICAgICAgIHJldHVybiAobnVtYmVyICUgTWF0aC5wb3cocmFkaXgsIGV4cG9uZW50KSkgPT0gMAorICAgICAgICAgICAgICAgICYmIChiYXNlVmFsdWUgJSBNYXRoLnBvdyhyYWRpeCwgZXhwb25lbnQpKSAhPSAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gcGFyc2luZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEF0dGVtcHRzIHRvIHBhcnNlIHRoZSBzdHJpbmcgd2l0aCB0aGlzIHJ1bGUuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyBiZWluZyBwYXJzZWQKKyAgICAgKiBAcGFyYW0gcGFyc2VQb3NpdGlvbiBPbiBlbnRyeSwgdGhlIHZhbHVlIGlzIGlnbm9yZWQgYW5kIGFzc3VtZWQgdG8KKyAgICAgKiBiZSAwLiBPbiBleGl0LCB0aGlzIGhhcyBiZWVuIHVwZGF0ZWQgd2l0aCB0aGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0CisgICAgICogY2hhcmFjdGVyIG5vdCBjb25zdW1lZCBieSBtYXRjaGluZyB0aGUgdGV4dCBhZ2FpbnN0IHRoaXMgcnVsZQorICAgICAqIChpZiB0aGlzIHJ1bGUgZG9lc24ndCBtYXRjaCB0aGUgdGV4dCBhdCBhbGwsIHRoZSBwYXJzZSBwb3NpdGlvbgorICAgICAqIGlmIGxlZnQgdW5jaGFuZ2VkIChwcmVzdW1hYmx5IGF0IDApIGFuZCB0aGUgZnVuY3Rpb24gcmV0dXJucworICAgICAqIG5ldyBMb25nKDApKS4KKyAgICAgKiBAcGFyYW0gaXNGcmFjdGlvblJ1bGUgVHJ1ZSBpZiB0aGlzIHJ1bGUgaXMgY29udGFpbmVkIHdpdGhpbiBhCisgICAgICogZnJhY3Rpb24gcnVsZSBzZXQuICBUaGlzIGlzIG9ubHkgdXNlZCBpZiB0aGUgcnVsZSBoYXMgbm8KKyAgICAgKiBzdWJzdGl0dXRpb25zLgorICAgICAqIEByZXR1cm4gSWYgdGhpcyBydWxlIG1hdGNoZWQgdGhlIHRleHQsIHRoaXMgaXMgdGhlIHJ1bGUncyBiYXNlIHZhbHVlCisgICAgICogY29tYmluZWQgYXBwcm9wcmlhdGVseSB3aXRoIHRoZSByZXN1bHRzIG9mIHBhcnNpbmcgdGhlIHN1YnN0aXR1dGlvbnMuCisgICAgICogSWYgbm90aGluZyBtYXRjaGVkLCB0aGlzIGlzIG5ldyBMb25nKDApIGFuZCB0aGUgcGFyc2UgcG9zaXRpb24gaXMKKyAgICAgKiBsZWZ0IHVuY2hhbmdlZC4gIFRoZSByZXN1bHQgd2lsbCBiZSBhbiBpbnN0YW5jZSBvZiBMb25nIGlmIHRoZQorICAgICAqIHJlc3VsdCBpcyBhbiBpbnRlZ2VyIGFuZCBEb3VibGUgb3RoZXJ3aXNlLiAgVGhlIHJlc3VsdCBpcyBuZXZlciBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgZG9QYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBib29sZWFuIGlzRnJhY3Rpb25SdWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdXBwZXJCb3VuZCkgeworCisgICAgICAgIC8vIGludGVybmFsbHkgd2Ugb3BlcmF0ZSBvbiBhIGNvcHkgb2YgdGhlIHN0cmluZyBiZWluZyBwYXJzZWQKKyAgICAgICAgLy8gKGJlY2F1c2Ugd2UncmUgZ29pbmcgdG8gY2hhbmdlIGl0KSBhbmQgdXNlIG91ciBvd24gUGFyc2VQb3NpdGlvbgorICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIFN0cmluZyB3b3JrVGV4dCA9IG5ldyBTdHJpbmcodGV4dCk7CisKKyAgICAgICAgLy8gY2hlY2sgdG8gc2VlIHdoZXRoZXIgdGhlIHRleHQgYmVmb3JlIHRoZSBmaXJzdCBzdWJzdGl0dXRpb24KKyAgICAgICAgLy8gbWF0Y2hlcyB0aGUgdGV4dCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmcgYmVpbmcKKyAgICAgICAgLy8gcGFyc2VkLiAgSWYgaXQgZG9lcywgc3RyaXAgdGhhdCBvZmYgdGhlIGZyb250IG9mIHdvcmtUZXh0OworICAgICAgICAvLyBvdGhlcndpc2UsIGR1bXAgb3V0IHdpdGggYSBtaXNtYXRjaAorICAgICAgICB3b3JrVGV4dCA9IHN0cmlwUHJlZml4KHdvcmtUZXh0LCBydWxlVGV4dC5zdWJzdHJpbmcoMCwgc3ViMS5nZXRQb3MoKSksIHBwKTsKKyAgICAgICAgaW50IHByZWZpeExlbmd0aCA9IHRleHQubGVuZ3RoKCkgLSB3b3JrVGV4dC5sZW5ndGgoKTsKKworICAgICAgICBpZiAocHAuZ2V0SW5kZXgoKSA9PSAwICYmIHN1YjEuZ2V0UG9zKCkgIT0gMCkgeworICAgICAgICAgICAgLy8gY29tbWVudGVkIG91dCBiZWNhdXNlIFBhcnNlUG9zaXRpb24gZG9lc24ndCBoYXZlIGVycm9yIGluZGV4IGluIDEuMS54CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgocHAuZ2V0RXJyb3JJbmRleCgpKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTG9uZygwKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRoaXMgaXMgdGhlIGZ1biBwYXJ0LiAgVGhlIGJhc2ljIGd1dHMgb2YgdGhlIHJ1bGUtbWF0Y2hpbmcKKyAgICAgICAgLy8gbG9naWMgaXMgbWF0Y2hUb0RlbGltaXRlcigpLCB3aGljaCBpcyBjYWxsZWQgdHdpY2UuICBUaGUgZmlyc3QKKyAgICAgICAgLy8gdGltZSBpdCBzZWFyY2hlcyB0aGUgaW5wdXQgc3RyaW5nIGZvciB0aGUgcnVsZSB0ZXh0IEJFVFdFRU4KKyAgICAgICAgLy8gdGhlIHN1YnN0aXR1dGlvbnMgYW5kIHRyaWVzIHRvIG1hdGNoIHRoZSBpbnRlcnZlbmluZyB0ZXh0CisgICAgICAgIC8vIGluIHRoZSBpbnB1dCBzdHJpbmcgd2l0aCB0aGUgZmlyc3Qgc3Vic3RpdHV0aW9uLiAgSWYgdGhhdAorICAgICAgICAvLyBzdWNjZWVkcywgaXQgdGhlbiBjYWxscyBpdCBhZ2FpbiwgdGhpcyB0aW1lIHRvIGxvb2sgZm9yIHRoZQorICAgICAgICAvLyBydWxlIHRleHQgYWZ0ZXIgdGhlIHNlY29uZCBzdWJzdGl0dXRpb24gYW5kIHRvIG1hdGNoIHRoZQorICAgICAgICAvLyBpbnRlcnZlbmluZyBpbnB1dCB0ZXh0IGFnYWluc3QgdGhlIHNlY29uZCBzdWJzdGl0dXRpb24uCisgICAgICAgIC8vCisgICAgICAgIC8vIEZvciBleGFtcGxlLCBzYXkgd2UgaGF2ZSBhIHJ1bGUgdGhhdCBsb29rcyBsaWtlIHRoaXM6CisgICAgICAgIC8vICAgIGZpcnN0IDw8IG1pZGRsZSA+PiBsYXN0OworICAgICAgICAvLyBhbmQgaW5wdXQgdGV4dCB0aGF0IGxvb2tzIGxpa2UgdGhpczoKKyAgICAgICAgLy8gICAgZmlyc3Qgb25lIG1pZGRsZSB0d28gbGFzdAorICAgICAgICAvLyBGaXJzdCB3ZSB1c2Ugc3RyaXBQcmVmaXgoKSB0byBtYXRjaCAiZmlyc3QgIiBpbiBib3RoIHBsYWNlcyBhbmQKKyAgICAgICAgLy8gc3RyaXAgaXQgb2ZmIHRoZSBmcm9udCwgbGVhdmluZworICAgICAgICAvLyAgICBvbmUgbWlkZGxlIHR3byBsYXN0CisgICAgICAgIC8vIFRoZW4gd2UgdXNlIG1hdGNoVG9EZWxpbWl0ZXIoKSB0byBtYXRjaCAiIG1pZGRsZSAiIGFuZCB0cnkgdG8KKyAgICAgICAgLy8gbWF0Y2ggIm9uZSIgYWdhaW5zdCBhIHN1YnN0aXR1dGlvbi4gIElmIGl0J3Mgc3VjY2Vzc2Z1bCwgd2Ugbm93CisgICAgICAgIC8vIGhhdmUKKyAgICAgICAgLy8gICAgdHdvIGxhc3QKKyAgICAgICAgLy8gV2UgdXNlIG1hdGNoVG9EZWxpbWl0ZXIoKSBhIHNlY29uZCB0aW1lIHRvIG1hdGNoICIgbGFzdCIgYW5kCisgICAgICAgIC8vIHRyeSB0byBtYXRjaCAidHdvIiBhZ2FpbnN0IGEgc3Vic3RpdHV0aW9uLiAgSWYgInR3byIgbWF0Y2hlcworICAgICAgICAvLyB0aGUgc3Vic3RpdHV0aW9uLCB3ZSBoYXZlIGEgc3VjY2Vzc2Z1bCBwYXJzZS4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gU2luY2UgaXQncyBwb3NzaWJsZSBpbiBtYW55IGNhc2VzIHRvIGZpbmQgbXVsdGlwbGUgaW5zdGFuY2VzCisgICAgICAgIC8vIG9mIGVhY2ggb2YgdGhlc2UgcGllY2VzIG9mIHJ1bGUgdGV4dCBpbiB0aGUgaW5wdXQgc3RyaW5nLAorICAgICAgICAvLyB3ZSBuZWVkIHRvIHRyeSBhbGwgdGhlIHBvc3NpYmxlIGNvbWJpbmF0aW9ucyBvZiB0aGVzZQorICAgICAgICAvLyBsb2NhdGlvbnMuICBUaGlzIHByZXZlbnRzIHVzIGZyb20gcHJlbWF0dXJlbHkgZGVjbGFyaW5nIGEgbWlzbWF0Y2gsCisgICAgICAgIC8vIGFuZCBtYWtlcyBzdXJlIHdlIG1hdGNoIGFzIG11Y2ggaW5wdXQgdGV4dCBhcyB3ZSBjYW4uCisgICAgICAgIGludCBoaWdoV2F0ZXJNYXJrID0gMDsKKyAgICAgICAgZG91YmxlIHJlc3VsdCA9IDA7CisgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgIGRvdWJsZSB0ZW1wQmFzZVZhbHVlID0gTWF0aC5tYXgoMCwgYmFzZVZhbHVlKTsKKworICAgICAgICBkbyB7CisgICAgICAgICAgICAvLyBvdXIgcGFydGlhbCBwYXJzZSByZXN1bHQgc3RhcnRzIG91dCBhcyB0aGlzIHJ1bGUncyBiYXNlCisgICAgICAgICAgICAvLyB2YWx1ZS4gIElmIGl0IGZpbmRzIGEgc3VjY2Vzc2Z1bCBtYXRjaCwgbWF0Y2hUb0RlbGltaXRlcigpCisgICAgICAgICAgICAvLyB3aWxsIGNvbXBvc2UgdGhpcyBpbiBzb21lIHdheSB3aXRoIHdoYXQgaXQgZ2V0cyBiYWNrIGZyb20KKyAgICAgICAgICAgIC8vIHRoZSBzdWJzdGl0dXRpb24sIGdpdmluZyB1cyBhIG5ldyBwYXJ0aWFsIHBhcnNlIHJlc3VsdAorICAgICAgICAgICAgcHAuc2V0SW5kZXgoMCk7CisgICAgICAgICAgICBkb3VibGUgcGFydGlhbFJlc3VsdCA9IG1hdGNoVG9EZWxpbWl0ZXIod29ya1RleHQsIHN0YXJ0LCB0ZW1wQmFzZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVUZXh0LnN1YnN0cmluZyhzdWIxLmdldFBvcygpLCBzdWIyLmdldFBvcygpKSwgcHAsIHN1YjEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJCb3VuZCkuZG91YmxlVmFsdWUoKTsKKworICAgICAgICAgICAgLy8gaWYgd2UgZ290IGEgc3VjY2Vzc2Z1bCBtYXRjaCAob3Igd2VyZSB0cnlpbmcgdG8gbWF0Y2ggYQorICAgICAgICAgICAgLy8gbnVsbCBzdWJzdGl0dXRpb24pLCBwcCBpcyBub3cgcG9pbnRpbmcgYXQgdGhlIGZpcnN0IHVubWF0Y2hlZAorICAgICAgICAgICAgLy8gY2hhcmFjdGVyLiAgVGFrZSBub3RlIG9mIHRoYXQsIGFuZCB0cnkgbWF0Y2hUb0RlbGltaXRlcigpCisgICAgICAgICAgICAvLyBvbiB0aGUgaW5wdXQgdGV4dCBhZ2FpbgorICAgICAgICAgICAgaWYgKHBwLmdldEluZGV4KCkgIT0gMCB8fCBzdWIxLmlzTnVsbFN1YnN0aXR1dGlvbigpKSB7CisgICAgICAgICAgICAgICAgc3RhcnQgPSBwcC5nZXRJbmRleCgpOworCisgICAgICAgICAgICAgICAgU3RyaW5nIHdvcmtUZXh0MiA9IHdvcmtUZXh0LnN1YnN0cmluZyhwcC5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBwMiA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworCisgICAgICAgICAgICAgICAgLy8gdGhlIHNlY29uZCBtYXRjaFRvRGVsaW1pdGVyKCkgd2lsbCBjb21wb3NlIG91ciBwcmV2aW91cworICAgICAgICAgICAgICAgIC8vIHBhcnRpYWwgcmVzdWx0IHdpdGggd2hhdGV2ZXIgaXQgZ2V0cyBiYWNrIGZyb20gaXRzCisgICAgICAgICAgICAgICAgLy8gc3Vic3RpdHV0aW9uIGlmIHRoZXJlJ3MgYSBzdWNjZXNzZnVsIG1hdGNoLCBnaXZpbmcgdXMKKyAgICAgICAgICAgICAgICAvLyBhIHJlYWwgcmVzdWx0CisgICAgICAgICAgICAgICAgcGFydGlhbFJlc3VsdCA9IG1hdGNoVG9EZWxpbWl0ZXIod29ya1RleHQyLCAwLCBwYXJ0aWFsUmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVUZXh0LnN1YnN0cmluZyhzdWIyLmdldFBvcygpKSwgcHAyLCBzdWIyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwcGVyQm91bmQpLmRvdWJsZVZhbHVlKCk7CisKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBnb3QgYSBzdWNjZXNzZnVsIG1hdGNoIG9uIHRoaXMgc2Vjb25kCisgICAgICAgICAgICAgICAgLy8gbWF0Y2hUb0RlbGltaXRlcigpIGNhbGwsIHVwZGF0ZSB0aGUgaGlnaC13YXRlciBtYXJrCisgICAgICAgICAgICAgICAgLy8gYW5kIHJlc3VsdCAoaWYgbmVjZXNzYXJ5KQorICAgICAgICAgICAgICAgIGlmIChwcDIuZ2V0SW5kZXgoKSAhPSAwIHx8IHN1YjIuaXNOdWxsU3Vic3RpdHV0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZpeExlbmd0aCArIHBwLmdldEluZGV4KCkgKyBwcDIuZ2V0SW5kZXgoKSA+IGhpZ2hXYXRlck1hcmspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hXYXRlck1hcmsgPSBwcmVmaXhMZW5ndGggKyBwcC5nZXRJbmRleCgpICsgcHAyLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBwYXJ0aWFsUmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBQYXJzZVBvc2l0aW9uIGRvZXNuJ3QgaGF2ZSBlcnJvciBpbmRleCBpbiAxLjEueAorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIGludCB0ZW1wID0gcHAyLmdldEVycm9ySW5kZXgoKSArIHN1YjEuZ2V0UG9zKCkgKyBwcC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXA+IHBhcnNlUG9zaXRpb24uZ2V0RXJyb3JJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRFcnJvckluZGV4KHRlbXApOworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgUGFyc2VQb3NpdGlvbiBkb2Vzbid0IGhhdmUgZXJyb3IgaW5kZXggaW4gMS4xLngKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIGludCB0ZW1wID0gc3ViMS5nZXRQb3MoKSArIHBwLmdldEVycm9ySW5kZXgoKTsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBpZiAodGVtcCA+IHBhcnNlUG9zaXRpb24uZ2V0RXJyb3JJbmRleCgpKSB7CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0RXJyb3JJbmRleCh0ZW1wKTsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBrZWVwIHRyeWluZyB0byBtYXRjaCB0aGluZ3MgdW50aWwgdGhlIG91dGVyIG1hdGNoVG9EZWxpbWl0ZXIoKQorICAgICAgICAgICAgLy8gY2FsbCBmYWlscyB0byBtYWtlIGEgbWF0Y2ggKGVhY2ggdGltZSwgaXQgcGlja3MgdXAgd2hlcmUgaXQKKyAgICAgICAgICAgIC8vIGxlZnQgb2ZmIHRoZSBwcmV2aW91cyB0aW1lKQorICAgICAgICB9IHdoaWxlIChzdWIxLmdldFBvcygpICE9IHN1YjIuZ2V0UG9zKCkgJiYgcHAuZ2V0SW5kZXgoKSA+IDAgJiYgcHAuZ2V0SW5kZXgoKQorICAgICAgICAgICAgICAgICA8IHdvcmtUZXh0Lmxlbmd0aCgpICYmIHBwLmdldEluZGV4KCkgIT0gc3RhcnQpOworCisgICAgICAgIC8vIHVwZGF0ZSB0aGUgY2FsbGVyJ3MgUGFyc2VQb3NpdGlvbiB3aXRoIG91ciBoaWdoLXdhdGVyIG1hcmsKKyAgICAgICAgLy8gKGkuZS4sIGl0IG5vdyBwb2ludHMgYXQgdGhlIGZpcnN0IGNoYXJhY3RlciB0aGlzIGZ1bmN0aW9uCisgICAgICAgIC8vIGRpZG4ndCBtYXRjaC0tIHRoZSBQYXJzZVBvc2l0aW9uIGlzIHRoZXJlZm9yZSB1bmNoYW5nZWQgaWYKKyAgICAgICAgLy8gd2UgZGlkbid0IG1hdGNoIGFueXRoaW5nKQorICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KGhpZ2hXYXRlck1hcmspOworICAgICAgICAvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgUGFyc2VQb3NpdGlvbiBkb2Vzbid0IGhhdmUgZXJyb3IgaW5kZXggaW4gMS4xLngKKyAgICAgICAgLy8gICAgICAgIGlmIChoaWdoV2F0ZXJNYXJrID4gMCkgeworICAgICAgICAvLyAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0RXJyb3JJbmRleCgwKTsKKyAgICAgICAgLy8gICAgICAgIH0KKworICAgICAgICAvLyB0aGlzIGlzIGEgaGFjayBmb3Igb25lIHVudXN1YWwgY29uZGl0aW9uOiBOb3JtYWxseSwgd2hldGhlciB0aGlzCisgICAgICAgIC8vIHJ1bGUgYmVsb25nIHRvIGEgZnJhY3Rpb24gcnVsZSBzZXQgb3Igbm90IGlzIGhhbmRsZWQgYnkgaXRzCisgICAgICAgIC8vIHN1YnN0aXR1dGlvbnMuICBCdXQgaWYgdGhhdCBydWxlIEhBUyBOTyBzdWJzdGl0dXRpb25zLCB0aGVuCisgICAgICAgIC8vIHdlIGhhdmUgdG8gYWNjb3VudCBmb3IgaXQgaGVyZS4gIEJ5IGRlZmluaXRpb24sIGlmIHRoZSBtYXRjaGluZworICAgICAgICAvLyBydWxlIGluIGEgZnJhY3Rpb24gcnVsZSBzZXQgaGFzIG5vIHN1YnN0aXR1dGlvbnMsIGl0cyBudW1lcmF0b3IKKyAgICAgICAgLy8gaXMgMSwgYW5kIHNvIHRoZSByZXN1bHQgaXMgdGhlIHJlY2lwcm9jYWwgb2YgaXRzIGJhc2UgdmFsdWUuCisgICAgICAgIGlmIChpc0ZyYWN0aW9uUnVsZSAmJiBoaWdoV2F0ZXJNYXJrID4gMCAmJiBzdWIxLmlzTnVsbFN1YnN0aXR1dGlvbigpKSB7CisgICAgICAgICAgICByZXN1bHQgPSAxIC8gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gcmV0dXJuIHRoZSByZXN1bHQgYXMgYSBMb25nIGlmIHBvc3NpYmxlLCBvciBhcyBhIERvdWJsZQorICAgICAgICBpZiAocmVzdWx0ID09IChsb25nKXJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBMb25nKChsb25nKXJlc3VsdCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IERvdWJsZShyZXN1bHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGJ5IHBhcnNlKCkgdG8gbWF0Y2ggdGhlIHRleHQgYmVpbmcgcGFyc2VkCisgICAgICogYWdhaW5zdCBhIHBvc3NpYmxlIHByZWZpeCBzdHJpbmcuICBUaGlzIGZ1bmN0aW9uCisgICAgICogbWF0Y2hlcyBjaGFyYWN0ZXJzIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nIGJlaW5nIHBhcnNlZAorICAgICAqIHRvIGNoYXJhY3RlcnMgZnJvbSB0aGUgcHJvc3BlY3RpdmUgcHJlZml4LiAgSWYgdGhleSBtYXRjaCwgcHAgaXMKKyAgICAgKiB1cGRhdGVkIHRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIgbm90IG1hdGNoZWQsIGFuZCB0aGUgcmVzdWx0IGlzCisgICAgICogdGhlIHVucGFyc2VkIHBhcnQgb2YgdGhlIHN0cmluZy4gIElmIHRoZXkgZG9uJ3QgbWF0Y2gsIHRoZSB3aG9sZQorICAgICAqIHN0cmluZyBpcyByZXR1cm5lZCwgYW5kIHBwIGlzIGxlZnQgdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBzdHJpbmcgYmVpbmcgcGFyc2VkCisgICAgICogQHBhcmFtIHByZWZpeCBUaGUgdGV4dCB0byBtYXRjaCBhZ2FpbnN0CisgICAgICogQHBhcmFtIHBwIE9uIGVudHJ5LCBpZ25vcmVkIGFuZCBhc3N1bWVkIHRvIGJlIDAuICBPbiBleGl0LCBwb2ludHMKKyAgICAgKiB0byB0aGUgZmlyc3QgdW5tYXRjaGVkIGNoYXJhY3RlciAoYXNzdW1pbmcgdGhlIHdob2xlIHByZWZpeCBtYXRjaGVkKSwKKyAgICAgKiBvciBpcyB1bmNoYW5nZWQgKGlmIHRoZSB3aG9sZSBwcmVmaXggZGlkbid0IG1hdGNoKS4KKyAgICAgKiBAcmV0dXJuIElmIHRoaW5ncyBtYXRjaCwgdGhpcyBpcyB0aGUgdW5wYXJzZWQgcGFydCBvZiAidGV4dCI7CisgICAgICogaWYgdGhleSBkaWRuJ3QgbWF0Y2gsIHRoaXMgaXMgInRleHQiLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHN0cmlwUHJlZml4KFN0cmluZyB0ZXh0LCBTdHJpbmcgcHJlZml4LCBQYXJzZVBvc2l0aW9uIHBwKSB7CisgICAgICAgIC8vIGlmIHRoZSBwcmVmaXggdGV4dCBpcyBlbXB0eSwgZHVtcCBvdXQgd2l0aG91dCBkb2luZyBhbnl0aGluZworICAgICAgICBpZiAocHJlZml4Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB1c2UgcHJlZml4TGVuZ3RoKCkgdG8gbWF0Y2ggdGhlIGJlZ2lubmluZyBvZgorICAgICAgICAgICAgLy8gInRleHQiIGFnYWluc3QgInByZWZpeCIuICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlCisgICAgICAgICAgICAvLyBudW1iZXIgb2YgY2hhcmFjdGVycyBmcm9tICJ0ZXh0IiB0aGF0IG1hdGNoZWQgKG9yIDAgaWYKKyAgICAgICAgICAgIC8vIHdlIGRpZG4ndCBtYXRjaCB0aGUgd2hvbGUgcHJlZml4KQorICAgICAgICAgICAgaW50IHBmbCA9IHByZWZpeExlbmd0aCh0ZXh0LCBwcmVmaXgpOworICAgICAgICAgICAgaWYgKHBmbCAhPSAwKSB7CisgICAgICAgICAgICAgICAgLy8gaWYgd2UgZ290IGEgc3VjY2Vzc2Z1bCBtYXRjaCwgdXBkYXRlIHRoZSBwYXJzZSBwb3NpdGlvbgorICAgICAgICAgICAgICAgIC8vIGFuZCBzdHJpcCB0aGUgcHJlZml4IG9mZiBvZiAidGV4dCIKKyAgICAgICAgICAgICAgICBwcC5zZXRJbmRleChwcC5nZXRJbmRleCgpICsgcGZsKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcocGZsKTsKKworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGRpZG4ndCBnZXQgYSBzdWNjZXNzZnVsIG1hdGNoLCBsZWF2ZSBldmVyeXRoaW5nIGFsb25lCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVXNlZCBieSBwYXJzZSgpIHRvIG1hdGNoIGEgc3Vic3RpdHV0aW9uIGFuZCBhbnkgZm9sbG93aW5nIHRleHQuCisgICAgICogInRleHQiIGlzIHNlYXJjaGVkIGZvciBpbnN0YW5jZXMgb2YgImRlbGltaXRlciIuICBGb3IgZWFjaCBpbnN0YW5jZQorICAgICAqIG9mIGRlbGltaXRlciwgdGhlIGludGVydmVuaW5nIHRleHQgaXMgdGVzdGVkIHRvIHNlZSB3aGV0aGVyIGl0CisgICAgICogbWF0Y2hlcyB0aGUgc3Vic3RpdHV0aW9uLiAgVGhlIGxvbmdlc3QgbWF0Y2ggd2lucy4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgc3RyaW5nIGJlaW5nIHBhcnNlZAorICAgICAqIEBwYXJhbSBzdGFydFBvcyBUaGUgcG9zaXRpb24gaW4gInRleHQiIHdoZXJlIHdlIHNob3VsZCBzdGFydCBsb29raW5nCisgICAgICogZm9yICJkZWxpbWl0ZXIiLgorICAgICAqIEBwYXJhbSBiYXNlVmFsdWUgQSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCAob2Z0ZW4gdGhlIHJ1bGUncyBiYXNlIHZhbHVlKSwKKyAgICAgKiB3aGljaCBpcyBjb21iaW5lZCB3aXRoIHRoZSByZXN1bHQgZnJvbSBtYXRjaGluZyB0aGUgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIGRlbGltaXRlciBUaGUgc3RyaW5nIHRvIHNlYXJjaCAidGV4dCIgZm9yLgorICAgICAqIEBwYXJhbSBwcCBJZ25vcmVkIGFuZCBwcmVzdW1lZCB0byBiZSAwIG9uIGVudHJ5LiAgSWYgdGhlcmUncyBhIG1hdGNoLAorICAgICAqIG9uIGV4aXQgdGhpcyB3aWxsIHBvaW50IHRvIHRoZSBmaXJzdCB1bm1hdGNoZWQgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBzdWIgSWYgd2UgZmluZCAiZGVsaW1pdGVyIiBpbiAidGV4dCIsIHRoaXMgc3Vic3RpdHV0aW9uIGlzIHVzZWQKKyAgICAgKiB0byBtYXRjaCB0aGUgdGV4dCBiZXR3ZWVuIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZyBhbmQgdGhlCisgICAgICogcG9zaXRpb24gb2YgImRlbGltaXRlci4iICAoSWYgImRlbGltaXRlciIgaXMgdGhlIGVtcHR5IHN0cmluZywgdGhlbgorICAgICAqIHRoaXMgZnVuY3Rpb24ganVzdCBtYXRjaGVzIGFnYWluc3QgdGhpcyBzdWJzdGl0dXRpb24gYW5kIHVwZGF0ZXMKKyAgICAgKiBldmVyeXRoaW5nIGFjY29yZGluZ2x5LikKKyAgICAgKiBAcGFyYW0gdXBwZXJCb3VuZCBXaGVuIG1hdGNoaW5nIHRoZSBzdWJzdGl0dXRpb24sIGl0IHdpbGwgb25seQorICAgICAqIGNvbnNpZGVyIHJ1bGVzIHdpdGggYmFzZSB2YWx1ZXMgbG93ZXIgdGhhbiB0aGlzIHZhbHVlLgorICAgICAqIEByZXR1cm4gSWYgdGhlcmUncyBhIG1hdGNoLCB0aGlzIGlzIHRoZSByZXN1bHQgb2YgY29tcG9zaW5nCisgICAgICogYmFzZVZhbHVlIHdpdGggdGhlIHJlc3VsdCBvZiBtYXRjaGluZyB0aGUgc3Vic3RpdHV0aW9uLiAgT3RoZXJ3aXNlLAorICAgICAqIHRoaXMgaXMgbmV3IExvbmcoMCkuICBJdCdzIG5ldmVyIG51bGwuICBJZiB0aGUgcmVzdWx0IGlzIGFuIGludGVnZXIsCisgICAgICogdGhpcyB3aWxsIGJlIGFuIGluc3RhbmNlIG9mIExvbmc7IG90aGVyd2lzZSwgaXQncyBhbiBpbnN0YW5jZSBvZgorICAgICAqIERvdWJsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIE51bWJlciBtYXRjaFRvRGVsaW1pdGVyKFN0cmluZyB0ZXh0LCBpbnQgc3RhcnRQb3MsIGRvdWJsZSBiYXNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVsaW1pdGVyLCBQYXJzZVBvc2l0aW9uIHBwLCBORlN1YnN0aXR1dGlvbiBzdWIsIGRvdWJsZSB1cHBlckJvdW5kKSB7CisgICAgICAgIC8vIGlmICJkZWxpbWl0ZXIiIGNvbnRhaW5zIHJlYWwgKGkuZS4sIG5vbi1pZ25vcmFibGUpIHRleHQsIHNlYXJjaAorICAgICAgICAvLyBpdCBmb3IgImRlbGltaXRlciIgYmVnaW5uaW5nIGF0ICJzdGFydCIuICBJZiB0aGF0IHN1Y2NlZWRzLCB0aGVuCisgICAgICAgIC8vIHVzZSAic3ViIidzIGRvUGFyc2UoKSBtZXRob2QgdG8gbWF0Y2ggdGhlIHRleHQgYmVmb3JlIHRoZQorICAgICAgICAvLyBpbnN0YW5jZSBvZiAiZGVsaW1pdGVyIiB3ZSBqdXN0IGZvdW5kLgorICAgICAgICBpZiAoIWFsbElnbm9yYWJsZShkZWxpbWl0ZXIpKSB7CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHRlbXBQUCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgTnVtYmVyIHRlbXBSZXN1bHQ7CisKKyAgICAgICAgICAgIC8vIHVzZSBmaW5kVGV4dCgpIHRvIHNlYXJjaCBmb3IgImRlbGltaXRlciIuICBJdCByZXR1cm5zIGEgdHdvLQorICAgICAgICAgICAgLy8gZWxlbWVudCBhcnJheTogZWxlbWVudCAwIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgbWF0Y2gsIGFuZAorICAgICAgICAgICAgLy8gZWxlbWVudCAxIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0aGF0IG1hdGNoZWQKKyAgICAgICAgICAgIC8vICJkZWxpbWl0ZXIiLgorICAgICAgICAgICAgaW50W10gdGVtcCA9IGZpbmRUZXh0KHRleHQsIGRlbGltaXRlciwgc3RhcnRQb3MpOworICAgICAgICAgICAgaW50IGRQb3MgPSB0ZW1wWzBdOworICAgICAgICAgICAgaW50IGRMZW4gPSB0ZW1wWzFdOworCisgICAgICAgICAgICAvLyBpZiBmaW5kVGV4dCgpIHN1Y2NlZWRlZCwgaXNvbGF0ZSB0aGUgdGV4dCBwcmVjZWRpbmcgdGhlCisgICAgICAgICAgICAvLyBtYXRjaCwgYW5kIHVzZSAic3ViIiB0byBtYXRjaCB0aGF0IHRleHQKKyAgICAgICAgICAgIHdoaWxlIChkUG9zID49IDApIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3ViVGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIGRQb3MpOworICAgICAgICAgICAgICAgIGlmIChzdWJUZXh0Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gc3ViLmRvUGFyc2Uoc3ViVGV4dCwgdGVtcFBQLCBiYXNlVmFsdWUsIHVwcGVyQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXIubGVuaWVudFBhcnNlRW5hYmxlZCgpKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgc3Vic3RpdHV0aW9uIGNvdWxkIG1hdGNoIGFsbCB0aGUgdGV4dCB1cCB0bworICAgICAgICAgICAgICAgICAgICAvLyB3aGVyZSB3ZSBmb3VuZCAiZGVsaW1pdGVyIiwgdGhlbiB0aGlzIGZ1bmN0aW9uIGhhcworICAgICAgICAgICAgICAgICAgICAvLyBhIHN1Y2Nlc3NmdWwgbWF0Y2guICBCdW1wIHRoZSBjYWxsZXIncyBwYXJzZSBwb3NpdGlvbgorICAgICAgICAgICAgICAgICAgICAvLyB0byBwb2ludCB0byB0aGUgZmlyc3QgY2hhcmFjdGVyIGFmdGVyIHRoZSB0ZXh0CisgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgbWF0Y2hlcyAiZGVsaW1pdGVyIiwgYW5kIHJldHVybiB0aGUgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGdvdCBmcm9tIHBhcnNpbmcgdGhlIHN1YnN0aXR1dGlvbi4KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBQUC5nZXRJbmRleCgpID09IGRQb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBwLnNldEluZGV4KGRQb3MgKyBkTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZW1wUmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBQYXJzZVBvc2l0aW9uIGRvZXNuJ3QgaGF2ZSBlcnJvciBpbmRleCBpbiAxLjEueAorICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlbXBQUC5nZXRFcnJvckluZGV4KCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBwLnNldEVycm9ySW5kZXgodGVtcFBQLmdldEVycm9ySW5kZXgoKSk7CisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHAuc2V0RXJyb3JJbmRleCh0ZW1wUFAuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGRpZG4ndCBtYXRjaCB0aGUgc3Vic3RpdHV0aW9uLCBzZWFyY2ggZm9yIGFub3RoZXIKKyAgICAgICAgICAgICAgICAvLyBjb3B5IG9mICJkZWxpbWl0ZXIiIGluICJ0ZXh0IiBhbmQgcmVwZWF0IHRoZSBsb29wIGlmCisgICAgICAgICAgICAgICAgLy8gd2UgZmluZCBpdAorICAgICAgICAgICAgICAgIHRlbXBQUC5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICB0ZW1wID0gZmluZFRleHQodGV4dCwgZGVsaW1pdGVyLCBkUG9zICsgZExlbik7CisgICAgICAgICAgICAgICAgZFBvcyA9IHRlbXBbMF07CisgICAgICAgICAgICAgICAgZExlbiA9IHRlbXBbMV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpZiB3ZSBtYWtlIGl0IGhlcmUsIHRoaXMgd2FzIGFuIHVuc3VjY2Vzc2Z1bCBtYXRjaCwgYW5kIHdlCisgICAgICAgICAgICAvLyBsZWF2ZSBwcCB1bmNoYW5nZWQgYW5kIHJldHVybiAwCisgICAgICAgICAgICBwcC5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTG9uZygwKTsKKworICAgICAgICAgICAgLy8gaWYgImRlbGltaXRlciIgaXMgZW1wdHksIG9yIGNvbnNpc3RzIG9ubHkgb2YgaWdub3JhYmxlIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIC8vIChpLmUuLCBpcyBzZW1hbnRpY2FsbHkgZW1wdHkpLCB0aHdlIHdlIG9idmlvdXNseSBjYW4ndCBzZWFyY2gKKyAgICAgICAgICAgIC8vIGZvciAiZGVsaW1pdGVyIi4gIEluc3RlYWQsIGp1c3QgdXNlICJzdWIiIHRvIHBhcnNlIGFzIG11Y2ggb2YKKyAgICAgICAgICAgIC8vICJ0ZXh0IiBhcyBwb3NzaWJsZS4KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gdGVtcFBQID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICBOdW1iZXIgcmVzdWx0ID0gbmV3IExvbmcoMCk7CisgICAgICAgICAgICBOdW1iZXIgdGVtcFJlc3VsdDsKKworICAgICAgICAgICAgLy8gdHJ5IHRvIG1hdGNoIHRoZSB3aG9sZSBzdHJpbmcgYWdhaW5zdCB0aGUgc3Vic3RpdHV0aW9uCisgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gc3ViLmRvUGFyc2UodGV4dCwgdGVtcFBQLCBiYXNlVmFsdWUsIHVwcGVyQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyLmxlbmllbnRQYXJzZUVuYWJsZWQoKSk7CisgICAgICAgICAgICBpZiAodGVtcFBQLmdldEluZGV4KCkgIT0gMCB8fCBzdWIuaXNOdWxsU3Vic3RpdHV0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGVyZSdzIGEgc3VjY2Vzc2Z1bCBtYXRjaCAob3IgaXQncyBhIG51bGwKKyAgICAgICAgICAgICAgICAvLyBzdWJzdGl0dXRpb24pLCB1cGRhdGUgcHAgdG8gcG9pbnQgdG8gdGhlIGZpcnN0CisgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyIHdlIGRpZG4ndCBtYXRjaCwgYW5kIHBhc3MgdGhlIHJlc3VsdCBmcm9tCisgICAgICAgICAgICAgICAgLy8gc3ViLmRvUGFyc2UoKSBvbiB0aHJvdWdoIHRvIHRoZSBjYWxsZXIKKyAgICAgICAgICAgICAgICBwcC5zZXRJbmRleCh0ZW1wUFAuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgaWYgKHRlbXBSZXN1bHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0ZW1wUmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBQYXJzZVBvc2l0aW9uIGRvZXNuJ3QgaGF2ZSBlcnJvciBpbmRleCBpbiAxLjEueAorICAgICAgICAgICAgLy8gICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIHBwLnNldEVycm9ySW5kZXgodGVtcFBQLmdldEVycm9ySW5kZXgoKSk7CisgICAgICAgICAgICAvLyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gYW5kIGlmIHdlIGdldCB0byBoZXJlLCB0aGVuIG5vdGhpbmcgbWF0Y2hlZCwgc28gd2UgcmV0dXJuCisgICAgICAgICAgICAvLyAwIGFuZCBsZWF2ZSBwcCBhbG9uZQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFVzZWQgYnkgc3RyaXBQcmVmaXgoKSB0byBtYXRjaCBjaGFyYWN0ZXJzLiAgSWYgbGVuaWVudCBwYXJzZSBtb2RlCisgICAgICogaXMgb2ZmLCB0aGlzIGp1c3QgY2FsbHMgc3RhcnRzV2l0aCgpLiAgSWYgbGVuaWVudCBwYXJzZSBtb2RlIGlzIG9uLAorICAgICAqIHRoaXMgZnVuY3Rpb24gdXNlcyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3JzIHRvIG1hdGNoIGNoYXJhY3RlcnMgaW4KKyAgICAgKiB0aGUgc3RyaW5ncyAob25seSBwcmltYXJ5LW9yZGVyIGRpZmZlcmVuY2VzIGFyZSBzaWduaWZpY2FudCBpbgorICAgICAqIGRldGVybWluaW5nIHdoZXRoZXIgdGhlcmUncyBhIG1hdGNoKS4KKyAgICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmcgYmVpbmcgdGVzdGVkCisgICAgICogQHBhcmFtIHByZWZpeCBUaGUgdGV4dCB3ZSdyZSBob3BpbmcgdG8gc2VlIGF0IHRoZSBiZWdpbm5pbmcKKyAgICAgKiBvZiAic3RyIgorICAgICAqIEByZXR1cm4gSWYgInByZWZpeCIgaXMgZm91bmQgYXQgdGhlIGJlZ2lubmluZyBvZiAic3RyIiwgdGhpcworICAgICAqIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiAic3RyIiB0aGF0IHdlcmUgbWF0Y2hlZCAodGhpcworICAgICAqIGlzbid0IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBsZW5ndGggb2YgInByZWZpeCIgd2hlbiBtYXRjaGluZworICAgICAqIHRleHQgd2l0aCBhIGNvbGxhdG9yKS4gIElmIHRoZXJlJ3Mgbm8gbWF0Y2gsIHRoaXMgaXMgMC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwcmVmaXhMZW5ndGgoU3RyaW5nIHN0ciwgU3RyaW5nIHByZWZpeCkgeworICAgICAgICAvLyBpZiB3ZSdyZSBsb29raW5nIGZvciBhbiBlbXB0eSBwcmVmaXgsIGl0IG9idmlvdXNseSBtYXRjaGVzCisgICAgICAgIC8vIHplcm8gY2hhcmFjdGVycy4gIEp1c3QgZ28gYWhlYWQgYW5kIHJldHVybiAwLgorICAgICAgICBpZiAocHJlZml4Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgLy8gZ28gdGhyb3VnaCBhbGwgdGhpcyBncmllZiBpZiB3ZSdyZSBpbiBsZW5pZW50LXBhcnNlIG1vZGUKKyAgICAgICAgaWYgKGZvcm1hdHRlci5sZW5pZW50UGFyc2VFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIC8vIGdldCB0aGUgZm9ybWF0dGVyJ3MgY29sbGF0b3IgYW5kIHVzZSBpdCB0byBjcmVhdGUgdHdvCisgICAgICAgICAgICAvLyBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvcnMsIG9uZSBvdmVyIHRoZSB0YXJnZXQgc3RyaW5nCisgICAgICAgICAgICAvLyBhbmQgYW5vdGhlciBvdmVyIHRoZSBwcmVmaXggKHJpZ2h0IG5vdywgd2UnbGwgdGhyb3cgYW4KKyAgICAgICAgICAgIC8vIGV4Y2VwdGlvbiBpZiB0aGUgY29sbGF0b3Igd2UgZ2V0IGJhY2sgZnJvbSB0aGUgZm9ybWF0dGVyCisgICAgICAgICAgICAvLyBpc24ndCBhIFJ1bGVCYXNlZENvbGxhdG9yLCBiZWNhdXNlIFJ1bGVCYXNlZENvbGxhdG9yIGRlZmluZXMKKyAgICAgICAgICAgIC8vIHRoZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b2VyIHByb3RvY29sLiAgSG9wZWZ1bGx5LCB0aGlzCisgICAgICAgICAgICAvLyB3aWxsIGNoYW5nZSBzb21lZGF5LikKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBQcmV2aW91cyBjb2RlIHdhcyBtYXRjaGluZyAiZmlmdHktIiBhZ2FpbnN0ICIgZmlmdHkiIGFuZCBsZWF2aW5nCisgICAgICAgICAgICAvLyB0aGUgbnVtYmVyICIgZmlmdHktNyIgdG8gcGFyc2UgYXMgNDMgKDUwIC0gNykuCisgICAgICAgICAgICAvLyBBbHNvIGl0IHNlZW1zIHRoYXQgaWYgd2UgY29uc3VtZSB0aGUgZW50aXJlIHByZWZpeCwgdGhhdCdzIG9rIGV2ZW4KKyAgICAgICAgICAgIC8vIGlmIHdlJ3ZlIGNvbnN1bWVkIHRoZSBlbnRpcmUgc3RyaW5nLCBzbyBJIHN3aXRjaGVkIHRoZSBsb2dpYyB0bworICAgICAgICAgICAgLy8gcmVmbGVjdCB0aGlzLgorICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSAoUnVsZUJhc2VkQ29sbGF0b3IpZm9ybWF0dGVyLmdldENvbGxhdG9yKCk7CisgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Igc3RySXRlciA9IGNvbGxhdG9yLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzdHIpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIHByZWZpeEl0ZXIgPSBjb2xsYXRvci5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IocHJlZml4KTsKKworICAgICAgICAgICAgLy8gbWF0Y2ggY29sbGF0aW9uIGVsZW1lbnRzIGJldHdlZW4gdGhlIHN0cmluZ3MKKyAgICAgICAgICAgIGludCBvU3RyID0gc3RySXRlci5uZXh0KCk7CisgICAgICAgICAgICBpbnQgb1ByZWZpeCA9IHByZWZpeEl0ZXIubmV4dCgpOworCisgICAgICAgICAgICB3aGlsZSAob1ByZWZpeCAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgLy8gc2tpcCBvdmVyIGlnbm9yYWJsZSBjaGFyYWN0ZXJzIGluIHRoZSB0YXJnZXQgc3RyaW5nCisgICAgICAgICAgICAgICAgd2hpbGUgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob1N0cikgPT0gMCAmJiBvU3RyICE9CisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgb1N0ciA9IHN0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHNraXAgb3ZlciBpZ25vcmFibGUgY2hhcmFjdGVycyBpbiB0aGUgcHJlZml4CisgICAgICAgICAgICAgICAgd2hpbGUgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob1ByZWZpeCkgPT0gMCAmJiBvUHJlZml4ICE9CisgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgb1ByZWZpeCA9IHByZWZpeEl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHNraXBwaW5nIG92ZXIgaWdub3JhYmxlcyBicm91Z2h0IHRvIHRoZSBlbmQgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgcHJlZml4LCB3ZSBESUQgbWF0Y2g6IGRyb3Agb3V0IG9mIHRoZSBsb29wCisgICAgICAgICAgICAgICAgaWYgKG9QcmVmaXggPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpZiBza2lwcGluZyBvdmVyIGlnbm9yYWJsZXMgYnJvdWdodCB1cyB0byB0aGUgZW5kCisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHRhcmdldCBzdHJpbmcsIHdlIGRpZG4ndCBtYXRjaCBhbmQgcmV0dXJuIDAKKyAgICAgICAgICAgICAgICBpZiAob1N0ciA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIG1hdGNoIGNvbGxhdGlvbiBlbGVtZW50cyBmcm9tIHRoZSB0d28gc3RyaW5ncworICAgICAgICAgICAgICAgIC8vIChjb25zaWRlcmluZyBvbmx5IHByaW1hcnkgZGlmZmVyZW5jZXMpLiAgSWYgd2UKKyAgICAgICAgICAgICAgICAvLyBnZXQgYSBtaXNtYXRjaCwgZHVtcCBvdXQgYW5kIHJldHVybiAwCisgICAgICAgICAgICAgICAgaWYgKENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob1N0cikgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICBwcmltYXJ5T3JkZXIob1ByZWZpeCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgYWR2YW5jZSB0byB0aGUgbmV4dCBjaGFyYWN0ZXIgaW4gZWFjaCBzdHJpbmcKKyAgICAgICAgICAgICAgICAvLyBhbmQgbG9vcCAod2UgZHJvcCBvdXQgb2YgdGhlIGxvb3Agd2hlbiB3ZSBleGhhdXN0CisgICAgICAgICAgICAgICAgLy8gY29sbGF0aW9uIGVsZW1lbnRzIGluIHRoZSBwcmVmaXgpCisKKyAgICAgICAgICAgICAgICBvU3RyID0gc3RySXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgb1ByZWZpeCA9IHByZWZpeEl0ZXIubmV4dCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyB3ZSBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCBqZGsgMS4xIGFueSBsb25nZXIKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBzdHJJdGVyLmdldE9mZnNldCgpOworICAgICAgICAgICAgaWYgKG9TdHIgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgIC0tcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIC8vIEpESyAxLjItc3BlY2lmaWMgQVBJIGNhbGwKKyAgICAgICAgICAgICAgLy8gcmV0dXJuIHN0ckl0ZXIuZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAvLyBKREsgMS4xIEhBQ0sgKHRha2Ugb3V0IGZvciAxLjItc3BlY2lmaWMgY29kZSkKKworICAgICAgICAgICAgICAvLyBpZiB3ZSBtYWtlIGl0IHRvIGhlcmUsIHdlIGhhdmUgYSBzdWNjZXNzZnVsIG1hdGNoLiAgTm93IHdlCisgICAgICAgICAgICAgIC8vIGhhdmUgdG8gZmluZCBvdXQgSE9XIE1BTlkgY2hhcmFjdGVycyBmcm9tIHRoZSB0YXJnZXQgc3RyaW5nCisgICAgICAgICAgICAgIC8vIG1hdGNoZWQgdGhlIHByZWZpeCAodGhlcmUgaXNuJ3QgbmVjZXNzYXJpbHkgYSBvbmUtdG8tb25lCisgICAgICAgICAgICAgIC8vIG1hcHBpbmcgYmV0d2VlbiBjb2xsYXRpb24gZWxlbWVudHMgYW5kIGNoYXJhY3RlcnMpLgorICAgICAgICAgICAgICAvLyBJbiBKREsgMS4yLCB0aGVyZSdzIGEgc2ltcGxlIGdldE9mZnNldCgpIGNhbGwgd2UgY2FuIHVzZS4KKyAgICAgICAgICAgICAgLy8gSW4gSkRLIDEuMSwgb24gdGhlIG90aGVyIGhhbmQsIHdlIGhhdmUgdG8gZ28gdGhyb3VnaCBzb21lCisgICAgICAgICAgICAgIC8vIHVnbHkgY29udG9ydGlvbnMuICBGaXJzdCwgdXNlIHRoZSBjb2xsYXRvciB0byBjb21wYXJlIHRoZQorICAgICAgICAgICAgICAvLyBzYW1lIG51bWJlciBvZiBjaGFyYWN0ZXJzIGZyb20gdGhlIHByZWZpeCBhbmQgdGFyZ2V0IHN0cmluZy4KKyAgICAgICAgICAgICAgLy8gSWYgdGhleSdyZSBlcXVhbCwgd2UncmUgZG9uZS4KKyAgICAgICAgICAgICAgY29sbGF0b3Iuc2V0U3RyZW5ndGgoQ29sbGF0b3IuUFJJTUFSWSk7CisgICAgICAgICAgICAgIGlmIChzdHIubGVuZ3RoKCkgPj0gcHJlZml4Lmxlbmd0aCgpCisgICAgICAgICAgICAgICYmIGNvbGxhdG9yLmVxdWFscyhzdHIuc3Vic3RyaW5nKDAsIHByZWZpeC5sZW5ndGgoKSksIHByZWZpeCkpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHByZWZpeC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIC8vIGlmIHRoZXkncmUgbm90IGVxdWFsLCB0aGVuIHdlIGhhdmUgdG8gY29tcGFyZSBzdWNjZXNzaXZlbHkKKyAgICAgICAgICAgICAgLy8gbGFyZ2VyIGFuZCBsYXJnZXIgc3Vic3RyaW5ncyBvZiB0aGUgdGFyZ2V0IHN0cmluZyB1bnRpbCB3ZQorICAgICAgICAgICAgICAvLyBnZXQgdG8gb25lIHRoYXQgbWF0Y2hlcyB0aGUgcHJlZml4LiAgQXQgdGhhdCBwb2ludCwgd2Uga25vdworICAgICAgICAgICAgICAvLyBob3cgbWFueSBjaGFyYWN0ZXJzIG1hdGNoZWQgdGhlIHByZWZpeCwgYW5kIHdlIGNhbiByZXR1cm4uCisgICAgICAgICAgICAgIGludCBwID0gMTsKKyAgICAgICAgICAgICAgd2hpbGUgKHAgPD0gc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgIGlmIChjb2xsYXRvci5lcXVhbHMoc3RyLnN1YnN0cmluZygwLCBwKSwgcHJlZml4KSkgeworICAgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAvLyBTSE9VTEtEIE5FVkVSIEdFVCBIRVJFISEhCisgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICovCisKKyAgICAgICAgICAgIC8vIElmIGxlbmllbnQgcGFyc2luZyBpcyB0dXJuZWQgb2ZmLCBmb3JnZXQgYWxsIHRoYXQgY3JhcCBhYm92ZS4KKyAgICAgICAgICAgIC8vIEp1c3QgdXNlIFN0cmluZy5zdGFydHNXaXRoKCkgYW5kIGJlIGRvbmUgd2l0aCBpdC4KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzdHIuc3RhcnRzV2l0aChwcmVmaXgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWZpeC5sZW5ndGgoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWFyY2hlcyBhIHN0cmluZyBmb3IgYW5vdGhlciBzdHJpbmcuICBJZiBsZW5pZW50IHBhcnNpbmcgaXMgb2ZmLAorICAgICAqIHRoaXMganVzdCBjYWxscyBpbmRleE9mKCkuICBJZiBsZW5pZW50IHBhcnNpbmcgaXMgb24sIHRoaXMgZnVuY3Rpb24KKyAgICAgKiB1c2VzIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciB0byBtYXRjaCBjaGFyYWN0ZXJzLCBhbmQgb25seQorICAgICAqIHByaW1hcnktb3JkZXIgZGlmZmVyZW5jZXMgYXJlIHNpZ25pZmljYW50IGluIGRldGVybWluaW5nIHdoZXRoZXIKKyAgICAgKiB0aGVyZSdzIGEgbWF0Y2guCisgICAgICogQHBhcmFtIHN0ciBUaGUgc3RyaW5nIHRvIHNlYXJjaAorICAgICAqIEBwYXJhbSBrZXkgVGhlIHN0cmluZyB0byBzZWFyY2ggInN0ciIgZm9yCisgICAgICogQHJldHVybiBBIHR3by1lbGVtZW50IGFycmF5IG9mIGludHMuICBFbGVtZW50IDAgaXMgdGhlIHBvc2l0aW9uCisgICAgICogb2YgdGhlIG1hdGNoLCBvciAtMSBpZiB0aGVyZSB3YXMgbm8gbWF0Y2guICBFbGVtZW50IDEgaXMgdGhlCisgICAgICogbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gInN0ciIgdGhhdCBtYXRjaGVkICh3aGljaCBpc24ndCBuZWNlc3NhcmlseQorICAgICAqIHRoZSBzYW1lIGFzIHRoZSBsZW5ndGggb2YgImtleSIpCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRbXSBmaW5kVGV4dChTdHJpbmcgc3RyLCBTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiBmaW5kVGV4dChzdHIsIGtleSwgMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VhcmNoZXMgYSBzdHJpbmcgZm9yIGFub3RoZXIgc3RyaW5nLiAgSWYgbGVuaWVudCBwYXJzaW5nIGlzIG9mZiwKKyAgICAgKiB0aGlzIGp1c3QgY2FsbHMgaW5kZXhPZigpLiAgSWYgbGVuaWVudCBwYXJzaW5nIGlzIG9uLCB0aGlzIGZ1bmN0aW9uCisgICAgICogdXNlcyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgdG8gbWF0Y2ggY2hhcmFjdGVycywgYW5kIG9ubHkKKyAgICAgKiBwcmltYXJ5LW9yZGVyIGRpZmZlcmVuY2VzIGFyZSBzaWduaWZpY2FudCBpbiBkZXRlcm1pbmluZyB3aGV0aGVyCisgICAgICogdGhlcmUncyBhIG1hdGNoLgorICAgICAqIEBwYXJhbSBzdHIgVGhlIHN0cmluZyB0byBzZWFyY2gKKyAgICAgKiBAcGFyYW0ga2V5IFRoZSBzdHJpbmcgdG8gc2VhcmNoICJzdHIiIGZvcgorICAgICAqIEBwYXJhbSBzdGFydGluZ0F0IFRoZSBpbmRleCBpbnRvICJzdHIiIHdoZXJlIHRoZSBzZWFyY2ggaXMgdG8KKyAgICAgKiBiZWdpbgorICAgICAqIEByZXR1cm4gQSB0d28tZWxlbWVudCBhcnJheSBvZiBpbnRzLiAgRWxlbWVudCAwIGlzIHRoZSBwb3NpdGlvbgorICAgICAqIG9mIHRoZSBtYXRjaCwgb3IgLTEgaWYgdGhlcmUgd2FzIG5vIG1hdGNoLiAgRWxlbWVudCAxIGlzIHRoZQorICAgICAqIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluICJzdHIiIHRoYXQgbWF0Y2hlZCAod2hpY2ggaXNuJ3QgbmVjZXNzYXJpbHkKKyAgICAgKiB0aGUgc2FtZSBhcyB0aGUgbGVuZ3RoIG9mICJrZXkiKQorICAgICAqLworICAgIHByaXZhdGUgaW50W10gZmluZFRleHQoU3RyaW5nIHN0ciwgU3RyaW5nIGtleSwgaW50IHN0YXJ0aW5nQXQpIHsKKyAgICAgICAgLy8gaWYgbGVuaWVudCBwYXJzaW5nIGlzIHR1cm5lZCBvZmYsIHRoaXMgaXMgZWFzeToganVzdCBjYWxsCisgICAgICAgIC8vIFN0cmluZy5pbmRleE9mKCkgYW5kIHdlJ3JlIGRvbmUKKyAgICAgICAgaWYgKCFmb3JtYXR0ZXIubGVuaWVudFBhcnNlRW5hYmxlZCgpKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IGludFtdIHsgc3RyLmluZGV4T2Yoa2V5LCBzdGFydGluZ0F0KSwga2V5Lmxlbmd0aCgpIH07CisKKyAgICAgICAgICAgIC8vIGJ1dCBpZiBsZW5pZW50IHBhcnNpbmcgaXMgdHVybmVkIE9OLCB3ZSd2ZSBnb3Qgc29tZSB3b3JrCisgICAgICAgICAgICAvLyBhaGVhZCBvZiB1cworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAvLyBKREsgMS4xIEhBQ0sgKHRha2Ugb3V0IG9mIDEuMi1zcGVjaWZpYyBjb2RlKQorCisgICAgICAgICAgICAvLyBpbiBKREsgMS4yLCBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgcHJvdmlkZXMgdXMgd2l0aCBhbgorICAgICAgICAgICAgLy8gQVBJIHRvIG1hcCBiZXR3ZWVuIGNoYXJhY3RlciBvZmZzZXRzIGFuZCBjb2xsYXRpb24gZWxlbWVudHMKKyAgICAgICAgICAgIC8vIGFuZCB3ZSBjYW4gZG8gdGhpcyBieSBtYXJjaGluZyB0aHJvdWdoIHRoZSBzdHJpbmcgY29tcGFyaW5nCisgICAgICAgICAgICAvLyBjb2xsYXRpb24gZWxlbWVudHMuICBXZSBjYW4ndCBkbyB0aGF0IGluIEpESyAxLjEuICBJbnN0ZWQsCisgICAgICAgICAgICAvLyB3ZSBoYXZlIHRvIGdvIHRocm91Z2ggdGhpcyBob3JyaWJsZSBzbG93IG1lc3M6CisgICAgICAgICAgICBpbnQgcCA9IHN0YXJ0aW5nQXQ7CisgICAgICAgICAgICBpbnQga2V5TGVuID0gMDsKKworICAgICAgICAgICAgLy8gYmFzaWNhbGx5IGp1c3QgaXNvbGF0ZSBzbWFsbGVyIGFuZCBzbWFsbGVyIHN1YnN0cmluZ3Mgb2YKKyAgICAgICAgICAgIC8vIHRoZSB0YXJnZXQgc3RyaW5nIChlYWNoIHJ1bm5pbmcgdG8gdGhlIGVuZCBvZiB0aGUgc3RyaW5nLAorICAgICAgICAgICAgLy8gYW5kIHdpdGggdGhlIGZpcnN0IG9uZSBydW5uaW5nIGZyb20gc3RhcnRpbmdBdCB0byB0aGUgZW5kKQorICAgICAgICAgICAgLy8gYW5kIHRoZW4gdXNlIHByZWZpeExlbmd0aCgpIHRvIHNlZSBpZiB0aGUgc2VhcmNoIGtleSBpcyBhdAorICAgICAgICAgICAgLy8gdGhlIGJlZ2lubmluZyBvZiBlYWNoIHN1YnN0cmluZy4gIFRoaXMgaXMgZXhjcnVjaWF0aW5nbHkKKyAgICAgICAgICAgIC8vIHNsb3csIGJ1dCBpdCB3aWxsIGxvY2F0ZSB0aGUga2V5IGFuZCB0ZWxsIHVzZSBob3cgbG9uZyB0aGUKKyAgICAgICAgICAgIC8vIG1hdGNoaW5nIHRleHQgd2FzLgorICAgICAgICAgICAgd2hpbGUgKHAgPCBzdHIubGVuZ3RoKCkgJiYga2V5TGVuID09IDApIHsKKyAgICAgICAgICAgICAgICBrZXlMZW4gPSBwcmVmaXhMZW5ndGgoc3RyLnN1YnN0cmluZyhwKSwga2V5KTsKKyAgICAgICAgICAgICAgICBpZiAoa2V5TGVuICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBpbnRbXSB7IHAsIGtleUxlbiB9OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBpZiB3ZSBtYWtlIGl0IHRvIGhlcmUsIHdlIGRpZG4ndCBmaW5kIGl0LiAgUmV0dXJuIC0xIGZvciB0aGUKKyAgICAgICAgICAgIC8vIGxvY2F0aW9uLiAgVGhlIGxlbmd0aCBzaG91bGQgYmUgaWdub3JlZCwgYnV0IHNldCBpdCB0byAwLAorICAgICAgICAgICAgLy8gd2hpY2ggc2hvdWxkIGJlICJzYWZlIgorICAgICAgICAgICAgcmV0dXJuIG5ldyBpbnRbXSB7IC0xLCAwIH07CisKKyAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgLy8gSkRLIDEuMiB2ZXJzaW9uIG9mIHRoaXMgcm91dGluZQorICAgICAgICAgICAgLy9SdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcilmb3JtYXR0ZXIuZ2V0Q29sbGF0b3IoKTsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvL0NvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBzdHJJdGVyID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHN0cik7CisgICAgICAgICAgICAvL0NvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBrZXlJdGVyID0gY29sbGF0b3IuZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKGtleSk7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy9pbnQga2V5U3RhcnQgPSAtMTsKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvL3N0ci5zZXRPZmZzZXQoc3RhcnRpbmdBdCk7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy9pbnQgb1N0ciA9IHN0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgLy9pbnQgb0tleSA9IGtleUl0ZXIubmV4dCgpOworICAgICAgICAgICAgLy93aGlsZSAob0tleSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAvLyAgICB3aGlsZSAob1N0ciAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSICYmCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9TdHIpID09IDApCisgICAgICAgICAgICAvLyAgICAgICAgb1N0ciA9IHN0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vICAgIHdoaWxlIChvS2V5ICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIgJiYKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIob0tleSkgPT0gMCkKKyAgICAgICAgICAgIC8vICAgICAgICBvS2V5ID0ga2V5SXRlci5uZXh0KCk7CisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gICAgaWYgKG9TdHIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgLy8gICAgICAgIHJldHVybiBuZXcgaW50W10geyAtMSwgMCB9OworICAgICAgICAgICAgLy8gICAgfQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vICAgIGlmIChvS2V5ID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIC8vICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8vICAgIH0KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAgICBpZiAoQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihvU3RyKSA9PQorICAgICAgICAgICAgLy8gICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG9LZXkpKSB7CisgICAgICAgICAgICAvLyAgICAgICAga2V5U3RhcnQgPSBzdHJJdGVyLmdldE9mZnNldCgpOworICAgICAgICAgICAgLy8gICAgICAgIG9TdHIgPSBzdHJJdGVyLm5leHQoKTsKKyAgICAgICAgICAgIC8vICAgICAgICBvS2V5ID0ga2V5SXRlci5uZXh0KCk7CisgICAgICAgICAgICAvLyAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gICAgICAgIGlmIChrZXlTdGFydCAhPSAtMSkgeworICAgICAgICAgICAgLy8gICAgICAgICAgICBrZXlTdGFydCA9IC0xOworICAgICAgICAgICAgLy8gICAgICAgICAgICBrZXlJdGVyLnJlc2V0KCk7CisgICAgICAgICAgICAvLyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgb1N0ciA9IHN0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgLy8gICAgICAgIH0KKyAgICAgICAgICAgIC8vICAgIH0KKyAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vaWYgKG9LZXkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgLy8gICAgcmV0dXJuIG5ldyBpbnRbXSB7IGtleVN0YXJ0LCBzdHJJdGVyLmdldE9mZnNldCgpIC0ga2V5U3RhcnQgfTsKKyAgICAgICAgICAgIC8vfSBlbHNlIHsKKyAgICAgICAgICAgIC8vICAgIHJldHVybiBuZXcgaW50W10geyAtMSwgMCB9OworICAgICAgICAgICAgLy99CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgdG8gc2VlIHdoZXRoZXIgYSBzdHJpbmcgY29uc2lzdHMgZW50aXJlbHkgb2YgaWdub3JhYmxlCisgICAgICogY2hhcmFjdGVycy4KKyAgICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmcgdG8gdGVzdC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHN0cmluZyBpcyBlbXB0eSBvZiBjb25zaXN0cyBlbnRpcmVseSBvZgorICAgICAqIGNoYXJhY3RlcnMgdGhhdCB0aGUgbnVtYmVyIGZvcm1hdHRlcidzIGNvbGxhdG9yIHNheXMgYXJlCisgICAgICogaWdub3JhYmxlIGF0IHRoZSBwcmltYXJ5LW9yZGVyIGxldmVsLiAgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBhbGxJZ25vcmFibGUoU3RyaW5nIHN0cikgeworICAgICAgICAvLyBpZiB0aGUgc3RyaW5nIGlzIGVtcHR5LCB3ZSBjYW4ganVzdCByZXR1cm4gdHJ1ZQorICAgICAgICBpZiAoc3RyLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgbGVuaWVudCBwYXJzaW5nIGlzIHR1cm5lZCBvbiwgd2FsayB0aHJvdWdoIHRoZSBzdHJpbmcgd2l0aAorICAgICAgICAvLyBhIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIGFuZCBtYWtlIHN1cmUgZWFjaCBjb2xsYXRpb24KKyAgICAgICAgLy8gZWxlbWVudCBpcyAwIChpZ25vcmFibGUpIGF0IHRoZSBwcmltYXJ5IGxldmVsCisgICAgICAgIGlmIChmb3JtYXR0ZXIubGVuaWVudFBhcnNlRW5hYmxlZCgpKSB7CisgICAgICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsYXRvciA9IChSdWxlQmFzZWRDb2xsYXRvcikoZm9ybWF0dGVyLmdldENvbGxhdG9yKCkpOworICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ZXIgPSBjb2xsYXRvci5nZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc3RyKTsKKworICAgICAgICAgICAgaW50IG8gPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIHdoaWxlIChvICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIKKyAgICAgICAgICAgICAgICAgICAmJiBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IucHJpbWFyeU9yZGVyKG8pID09IDApIHsKKyAgICAgICAgICAgICAgICBvID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbyA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSOworICAgICAgICAgICAgLy8gaWYgbGVuaWVudCBwYXJzaW5nIGlzIHR1cm5lZCBvZmYsIHRoZXJlIGlzIG5vIHN1Y2ggdGhpbmcgYXMKKyAgICAgICAgICAgIC8vIGFuIGlnbm9yYWJsZSBjaGFyYWN0ZXI6IHJldHVybiB0cnVlIG9ubHkgaWYgdGhlIHN0cmluZyBpcyBlbXB0eQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTkZSdWxlU2V0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlJ1bGVTZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xYmE4MjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTkZSdWxlU2V0LmphdmEKQEAgLTAsMCArMSw3ODggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKK2ltcG9ydCBqYXZhLnRleHQuKjsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvKioKKyAqIEEgY29sbGVjdGlvbiBvZiBydWxlcyB1c2VkIGJ5IGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRvIGZvcm1hdCBhbmQKKyAqIHBhcnNlIG51bWJlcnMuICBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgYSBSdWxlU2V0IHRvIHNlbGVjdCBhbgorICogYXBwcm9wcmlhdGUgcnVsZSBmb3IgZm9ybWF0dGluZyBhIHBhcnRpY3VsYXIgbnVtYmVyIGFuZCBkaXNwYXRjaAorICogY29udHJvbCB0byBpdCwgYW5kIHRvIGFyYml0cmF0ZSBiZXR3ZWVuIGRpZmZlcmVudCBydWxlcyB3aGVuIHBhcnNpbmcKKyAqIGEgbnVtYmVyLgorICovCisKK2ZpbmFsIGNsYXNzIE5GUnVsZVNldCB7CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGRhdGEgbWVtYmVycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSBydWxlIHNldCdzIG5hbWUKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUgc2V0J3MgcmVndWxhciBydWxlcworICAgICAqLworICAgIHByaXZhdGUgTkZSdWxlW10gcnVsZXM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSBzZXQncyBuZWdhdGl2ZS1udW1iZXIgcnVsZQorICAgICAqLworICAgIHByaXZhdGUgTkZSdWxlIG5lZ2F0aXZlTnVtYmVyUnVsZSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSBzZXQncyBmcmFjdGlvbiBydWxlczogZWxlbWVudCAwIGlzIHRoZSBwcm9wZXIgZnJhY3Rpb24KKyAgICAgKiAoMC54KSBydWxlLCBlbGVtZW50IDEgaXMgdGhlIGltcHJvcGVyIGZyYWN0aW9uICh4LngpIHJ1bGUsIGFuZAorICAgICAqIGVsZW1lbnQgMiBpcyB0aGUgbWFzdGVyICh4LjApIHJ1bGUuCisgICAgICovCisgICAgcHJpdmF0ZSBORlJ1bGVbXSBmcmFjdGlvblJ1bGVzID0gbmV3IE5GUnVsZVszXTsKKworICAgIC8qKgorICAgICAqIFRydWUgaWYgdGhlIHJ1bGUgc2V0IGlzIGEgZnJhY3Rpb24gcnVsZSBzZXQuICBBIGZyYWN0aW9uIHJ1bGUgc2V0CisgICAgICogaXMgYSBydWxlIHNldCB0aGF0IGlzIHVzZWQgdG8gZm9ybWF0IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgYQorICAgICAqIG51bWJlci4gIEl0IGlzIGNhbGxlZCBmcm9tIGEgPj4gc3Vic3RpdHV0aW9uIGluIGFub3RoZXIgcnVsZSBzZXQncworICAgICAqIGZyYWN0aW9uIHJ1bGUsIGFuZCBpcyBvbmx5IGNhbGxlZCB1cG9uIHRvIGZvcm1hdCB2YWx1ZXMgYmV0d2VlbgorICAgICAqIDAgYW5kIDEuICBBIGZyYWN0aW9uIHJ1bGUgc2V0IGhhcyBkaWZmZXJlbnQgcnVsZS1zZWxlY3Rpb24KKyAgICAgKiBiZWhhdmlvciB0aGFuIGEgcmVndWxhciBydWxlIHNldC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNGcmFjdGlvblJ1bGVTZXQgPSBmYWxzZTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBVc2VkIHRvIGxpbWl0IHJlY3Vyc2lvbiBmb3IgYmFkIHJ1bGUgc2V0cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCByZWN1cnNpb25Db3VudCA9IDA7CisKKyAgICAvKioKKyAgICAgICogTGltaXQgb2YgcmVjdXJzaW9uLgorICAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUkVDVVJTSU9OX0xJTUlUID0gNTA7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoKKyAgICAgKiBDb25zdHJ1Y3RzIGEgcnVsZSBzZXQuCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9ucyBBbiBhcnJheSBvZiBTdHJpbmdzIHJlcHJlc2VudGluZyBydWxlIHNldAorICAgICAqIGRlc2NyaXB0aW9ucy4gIE9uIGV4aXQsIHRoaXMgcnVsZSBzZXQncyBlbnRyeSBpbiB0aGUgYXJyYXkgd2lsbAorICAgICAqIGhhdmUgYmVlbiBzdHJpcHBlZCBvZiBpdHMgcnVsZSBzZXQgbmFtZSBhbmQgYW55IHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBpbnRvICJkZXNjcmlwdGlvbnMiIG9mIHRoZSBkZXNjcmlwdGlvbgorICAgICAqIGZvciB0aGUgcnVsZSB0byBiZSBjb25zdHJ1Y3RlZAorICAgICAqLworICAgIHB1YmxpYyBORlJ1bGVTZXQoU3RyaW5nW10gZGVzY3JpcHRpb25zLCBpbnQgaW5kZXgpIHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24geworICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbnNbaW5kZXhdOworCisgICAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCgpID09IDApIHsKKyAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkVtcHR5IHJ1bGUgc2V0IGRlc2NyaXB0aW9uIik7CisgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBiZWdpbnMgd2l0aCBhIHJ1bGUgc2V0IG5hbWUgKHRoZSBydWxlIHNldAorICAgICAgICAvLyBuYW1lIGNhbiBiZSBvbWl0dGVkIGluIGZvcm1hdHRlciBkZXNjcmlwdGlvbnMgdGhhdCBjb25zaXN0CisgICAgICAgIC8vIG9mIG9ubHkgb25lIHJ1bGUgc2V0KSwgY29weSBpdCBvdXQgaW50byBvdXIgIm5hbWUiIG1lbWJlcgorICAgICAgICAvLyBhbmQgZGVsZXRlIGl0IGZyb20gdGhlIGRlc2NyaXB0aW9uCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5jaGFyQXQoMCkgPT0gJyUnKSB7CisgICAgICAgICAgICBpbnQgcG9zID0gZGVzY3JpcHRpb24uaW5kZXhPZignOicpOworICAgICAgICAgICAgaWYgKHBvcyA9PSAtMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJ1bGUgc2V0IG5hbWUgZG9lc24ndCBlbmQgaW4gY29sb24iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbmFtZSA9IGRlc2NyaXB0aW9uLnN1YnN0cmluZygwLCBwb3MpOworICAgICAgICAgICAgICAgIHdoaWxlIChwb3MgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSAmJiBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShkZXNjcmlwdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhckF0KCsrcG9zKSkpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi5zdWJzdHJpbmcocG9zKTsKKyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbnNbaW5kZXhdID0gZGVzY3JpcHRpb247CisgICAgICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGRvZXNuJ3QgYmVnaW4gd2l0aCBhIHJ1bGUgc2V0IG5hbWUsIGl0cworICAgICAgICAvLyBuYW1lIGlzICIlZGVmYXVsdCIKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5hbWUgPSAiJWRlZmF1bHQiOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkVtcHR5IHJ1bGUgc2V0IGRlc2NyaXB0aW9uIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBhbGwgb2YgdGhlIG90aGVyIG1lbWJlcnMgb2YgTkZSdWxlU2V0IGFyZSBpbml0aWFsaXplZAorICAgICAgICAvLyBieSBwYXJzZVJ1bGVzKCkKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgdGhlIHN1Ym9yZGluYXRlIGRhdGEgc3RydWN0dXJlcyB1c2VkIGJ5IHRoaXMgb2JqZWN0LgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgY29uc3RydWN0b3IKKyAgICAgKiBhZnRlciBhbGwgdGhlIHJ1bGUgc2V0cyBoYXZlIGJlZW4gY3JlYXRlZCB0byBhY3R1YWxseSBwYXJzZQorICAgICAqIHRoZSBkZXNjcmlwdGlvbiBhbmQgYnVpbGQgcnVsZXMgZnJvbSBpdC4gIFNpbmNlIGFueSBydWxlIHNldAorICAgICAqIGNhbiByZWZlciB0byBhbnkgb3RoZXIgcnVsZSBzZXQsIHdlIGhhdmUgdG8gaGF2ZSBjcmVhdGVkIGFsbCBvZgorICAgICAqIHRoZW0gYmVmb3JlIHdlIGNhbiBjcmVhdGUgYW55dGhpbmcgZWxzZS4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIHRleHR1YWwgZGVzY3JpcHRpb24gb2YgdGhpcyBydWxlIHNldAorICAgICAqIEBwYXJhbSBvd25lciBUaGUgZm9ybWF0dGVyIHRoYXQgb3ducyB0aGlzIHJ1bGUgc2V0CisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFyc2VSdWxlcyhTdHJpbmcgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgb3duZXIpIHsKKyAgICAgICAgLy8gc3RhcnQgYnkgY3JlYXRpbmcgYSBWZWN0b3Igd2hvc2UgZWxlbWVudHMgYXJlIFN0cmluZ3MgY29udGFpbmluZworICAgICAgICAvLyB0aGUgZGVzY3JpcHRpb25zIG9mIHRoZSBydWxlcyAob25lIHJ1bGUgcGVyIGVsZW1lbnQpLiAgVGhlIHJ1bGVzCisgICAgICAgIC8vIGFyZSBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucyAodGhlcmUncyBubyBlc2NhcGUgZmFjaWxpdHk6IEFMTAorICAgICAgICAvLyBzZW1pY29sb25zIGFyZSBydWxlIGRlbGltaXRlcnMpCisgICAgICAgIFZlY3RvciBydWxlRGVzY3JpcHRpb25zID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIGludCBvbGRQID0gMDsKKyAgICAgICAgaW50IHAgPSBkZXNjcmlwdGlvbi5pbmRleE9mKCc7Jyk7CisgICAgICAgIHdoaWxlIChvbGRQICE9IC0xKSB7CisgICAgICAgICAgICBpZiAocCAhPSAtMSkgeworICAgICAgICAgICAgICAgIHJ1bGVEZXNjcmlwdGlvbnMuYWRkRWxlbWVudChkZXNjcmlwdGlvbi5zdWJzdHJpbmcob2xkUCwgcCkpOworICAgICAgICAgICAgICAgIG9sZFAgPSBwICsgMTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKG9sZFAgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBydWxlRGVzY3JpcHRpb25zLmFkZEVsZW1lbnQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKG9sZFApKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2xkUCA9IHA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwID0gZGVzY3JpcHRpb24uaW5kZXhPZignOycsIHAgKyAxKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG5vdyBnbyBiYWNrIHRocm91Z2ggYW5kIGJ1aWxkIGEgdmVjdG9yIG9mIHRoZSBydWxlcyB0aGVtc2VsdmVzCisgICAgICAgIC8vICh0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBkZXNjcmlwdGlvbiBsaXN0IGlzbid0IG5lY2Vzc2FyaWx5CisgICAgICAgIC8vIHRoZSBudW1iZXIgb2YgcnVsZXMtLSBzb21lIGRlc2NyaXB0aW9ucyBtYXkgZXhwZW5kIGludG8gdHdvIHJ1bGVzKQorICAgICAgICBWZWN0b3IgdGVtcFJ1bGVzID0gbmV3IFZlY3RvcigpOworCisgICAgICAgIC8vIHdlIGtlZXAgdHJhY2sgb2YgdGhlIHJ1bGUgYmVmb3JlIHRoZSBvbmUgd2UncmUgY3VycmVudGx5IHdvcmtpbmcKKyAgICAgICAgLy8gb24gc29sZWx5IHRvIHN1cHBvcnQgPj4+IHN1YnN0aXR1dGlvbnMKKyAgICAgICAgTkZSdWxlIHByZWRlY2Vzc29yID0gbnVsbDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlRGVzY3JpcHRpb25zLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAvLyBtYWtlUnVsZXMgKGEgZmFjdG9yeSBtZXRob2Qgb24gTkZSdWxlKSB3aWxsIHJldHVybiBlaXRoZXIKKyAgICAgICAgICAgIC8vIGEgc2luZ2xlIHJ1bGUgb3IgYW4gYXJyYXkgb2YgcnVsZXMuICBFaXRoZXIgd2F5LCBhZGQgdGhlbQorICAgICAgICAgICAgLy8gdG8gb3VyIHJ1bGUgdmVjdG9yCisgICAgICAgICAgICBPYmplY3QgdGVtcCA9IE5GUnVsZS5tYWtlUnVsZXMoKFN0cmluZylydWxlRGVzY3JpcHRpb25zLmVsZW1lbnRBdChpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLCBwcmVkZWNlc3Nvciwgb3duZXIpOworCisgICAgICAgICAgICBpZiAodGVtcCBpbnN0YW5jZW9mIE5GUnVsZSkgeworICAgICAgICAgICAgICAgIHRlbXBSdWxlcy5hZGRFbGVtZW50KHRlbXApOworICAgICAgICAgICAgICAgIHByZWRlY2Vzc29yID0gKE5GUnVsZSl0ZW1wOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAodGVtcCBpbnN0YW5jZW9mIE5GUnVsZVtdKSB7CisgICAgICAgICAgICAgICAgTkZSdWxlW10gcnVsZXNUb0FkZCA9IChORlJ1bGVbXSl0ZW1wOworCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBydWxlc1RvQWRkLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBSdWxlcy5hZGRFbGVtZW50KHJ1bGVzVG9BZGRbal0pOworICAgICAgICAgICAgICAgICAgICBwcmVkZWNlc3NvciA9IHJ1bGVzVG9BZGRbal07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIG5vdyB3ZSBjYW4gYmFnIHRoZSBkZXNjcmlwdGlvbiBsaXN0CisgICAgICAgIHJ1bGVEZXNjcmlwdGlvbnMgPSBudWxsOworCisgICAgICAgIC8vIGZvciBydWxlcyB0aGF0IGRpZG4ndCBzcGVjaWZ5IGEgYmFzZSB2YWx1ZSwgdGhlaXIgYmFzZSB2YWx1ZXMKKyAgICAgICAgLy8gd2VyZSBpbml0aWFsaXplZCB0byAwLiAgTWFrZSBhbm90aGVyIHBhc3MgdGhyb3VnaCB0aGUgbGlzdCBhbmQKKyAgICAgICAgLy8gc2V0IGFsbCB0aG9zZSBydWxlcycgYmFzZSB2YWx1ZXMuICBXZSBhbHNvIHJlbW92ZSBhbnkgc3BlY2lhbAorICAgICAgICAvLyBydWxlcyBmcm9tIHRoZSBsaXN0IGFuZCBwdXQgdGhlbSBpbnRvIHRoZWlyIG93biBtZW1iZXIgdmFyaWFibGVzCisgICAgICAgIGxvbmcgZGVmYXVsdEJhc2VWYWx1ZSA9IDA7CisKKyAgICAgICAgLy8gKHRoaXMgaXNuJ3QgYSBmb3IgbG9vcCBiZWNhdXNlIHdlIG1pZ2h0IGJlIGRlbGV0aW5nIGl0ZW1zIGZyb20KKyAgICAgICAgLy8gdGhlIHZlY3Rvci0tIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHdlIG9ubHkgaW5jcmVtZW50IGkgd2hlbgorICAgICAgICAvLyB3ZSBfZGlkbid0XyBkZWxldGUgYXl0aGluZyBmcm9tIHRoZSB2ZWN0b3IpCisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgd2hpbGUgKGkgPCB0ZW1wUnVsZXMuc2l6ZSgpKSB7CisgICAgICAgICAgICBORlJ1bGUgcnVsZSA9IChORlJ1bGUpdGVtcFJ1bGVzLmVsZW1lbnRBdChpKTsKKworICAgICAgICAgICAgc3dpdGNoICgoaW50KXJ1bGUuZ2V0QmFzZVZhbHVlKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBpZiB0aGUgcnVsZSdzIGJhc2UgdmFsdWUgaXMgMCwgZmlsbCBpbiBhIGRlZmF1bHQKKyAgICAgICAgICAgICAgICAvLyBiYXNlIHZhbHVlICh0aGlzIHdpbGwgYmUgMSBwbHVzIHRoZSBwcmVjZWRpbmcKKyAgICAgICAgICAgICAgICAvLyBydWxlJ3MgYmFzZSB2YWx1ZSBmb3IgcmVndWxhciBydWxlIHNldHMsIGFuZCB0aGUKKyAgICAgICAgICAgICAgICAvLyBzYW1lIGFzIHRoZSBwcmVjZWRpbmcgcnVsZSdzIGJhc2UgdmFsdWUgaW4gZnJhY3Rpb24KKyAgICAgICAgICAgICAgICAvLyBydWxlIHNldHMpCisgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICBydWxlLnNldEJhc2VWYWx1ZShkZWZhdWx0QmFzZVZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0ZyYWN0aW9uUnVsZVNldCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytkZWZhdWx0QmFzZVZhbHVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCdzIHRoZSBuZWdhdGl2ZS1udW1iZXIgcnVsZSwgY29weSBpdCBpbnRvIGl0cyBvd24KKyAgICAgICAgICAgICAgICAvLyBkYXRhIG1lbWJlciBhbmQgZGVsZXRlIGl0IGZyb20gdGhlIGxpc3QKKyAgICAgICAgICAgICAgICBjYXNlIE5GUnVsZS5ORUdBVElWRV9OVU1CRVJfUlVMRToKKyAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmVOdW1iZXJSdWxlID0gcnVsZTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFJ1bGVzLnJlbW92ZUVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCdzIHRoZSBpbXByb3BlciBmcmFjdGlvbiBydWxlLCBjb3B5IGl0IGludG8gdGhlCisgICAgICAgICAgICAgICAgLy8gY29ycmVjdCBlbGVtZW50IG9mIGZyYWN0aW9uUnVsZXMKKyAgICAgICAgICAgICAgICBjYXNlIE5GUnVsZS5JTVBST1BFUl9GUkFDVElPTl9SVUxFOgorICAgICAgICAgICAgICAgICAgICBmcmFjdGlvblJ1bGVzWzBdID0gcnVsZTsKKyAgICAgICAgICAgICAgICAgICAgdGVtcFJ1bGVzLnJlbW92ZUVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCdzIHRoZSBwcm9wZXIgZnJhY3Rpb24gcnVsZSwgY29weSBpdCBpbnRvIHRoZQorICAgICAgICAgICAgICAgIC8vIGNvcnJlY3QgZWxlbWVudCBvZiBmcmFjdGlvblJ1bGVzCisgICAgICAgICAgICAgICAgY2FzZSBORlJ1bGUuUFJPUEVSX0ZSQUNUSU9OX1JVTEU6CisgICAgICAgICAgICAgICAgICAgIGZyYWN0aW9uUnVsZXNbMV0gPSBydWxlOworICAgICAgICAgICAgICAgICAgICB0ZW1wUnVsZXMucmVtb3ZlRWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vIGlmIGl0J3MgdGhlIG1hc3RlciBydWxlLCBjb3B5IGl0IGludG8gdGhlCisgICAgICAgICAgICAgICAgLy8gY29ycmVjdCBlbGVtZW50IG9mIGZyYWN0aW9uUnVsZXMKKyAgICAgICAgICAgICAgICBjYXNlIE5GUnVsZS5NQVNURVJfUlVMRToKKyAgICAgICAgICAgICAgICAgICAgZnJhY3Rpb25SdWxlc1syXSA9IHJ1bGU7CisgICAgICAgICAgICAgICAgICAgIHRlbXBSdWxlcy5yZW1vdmVFbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgLy8gaWYgaXQncyBhIHJlZ3VsYXIgcnVsZSB0aGF0IGFscmVhZHkga25vd3MgaXRzIGJhc2UgdmFsdWUsCisgICAgICAgICAgICAgICAgLy8gY2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBydWxlcyBhcmUgaW4gb3JkZXIsIGFuZCB1cGRhdGUKKyAgICAgICAgICAgICAgICAvLyB0aGUgZGVmYXVsdCBiYXNlIHZhbHVlIGZvciB0aGUgbmV4dCBydWxlCisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJ1bGUuZ2V0QmFzZVZhbHVlKCkgPCBkZWZhdWx0QmFzZVZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJSdWxlcyBhcmUgbm90IGluIG9yZGVyLCBiYXNlOiAiICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5nZXRCYXNlVmFsdWUoKSArICIgPCAiICsgZGVmYXVsdEJhc2VWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEJhc2VWYWx1ZSA9IHJ1bGUuZ2V0QmFzZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghaXNGcmFjdGlvblJ1bGVTZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrZGVmYXVsdEJhc2VWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gZmluYWxseSwgd2UgY2FuIGNvcHkgdGhlIHJ1bGVzIGZyb20gdGhlIHZlY3RvciBpbnRvIGEKKyAgICAgICAgLy8gZml4ZWQtbGVuZ3RoIGFycmF5CisgICAgICAgIHJ1bGVzID0gbmV3IE5GUnVsZVt0ZW1wUnVsZXMuc2l6ZSgpXTsKKyAgICAgICAgdGVtcFJ1bGVzLmNvcHlJbnRvKChPYmplY3RbXSlydWxlcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmxhZ3MgdGhpcyBydWxlIHNldCBhcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LiAgVGhpcyBmdW5jdGlvbiBpcworICAgICAqIGNhbGxlZCBkdXJpbmcgdGhlIGNvbnN0cnVjdGlvbiBwcm9jZXNzIG9uY2Ugd2Uga25vdyB0aGlzIHJ1bGUKKyAgICAgKiBzZXQgaXMgYSBmcmFjdGlvbiBydWxlIHNldC4gIFdlIGRvbid0IGtub3cgYSBydWxlIHNldCBpcyBhCisgICAgICogZnJhY3Rpb24gcnVsZSBzZXQgdW50aWwgd2Ugc2VlIGl0IHVzZWQgc29tZXdoZXJlLiAgVGhpcyBmdW5jdGlvbgorICAgICAqIGlzIG5vdCBhZCBtdXN0IG5vdCBiZSBjYWxsZWQgYXQgYW55IHRpbWUgb3RoZXIgdGhhbiBkdXJpbmcKKyAgICAgKiBjb25zdHJ1Y3Rpb24gb2YgYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbWFrZUludG9GcmFjdGlvblJ1bGVTZXQoKSB7CisgICAgICAgIGlzRnJhY3Rpb25SdWxlU2V0ID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0d28gcnVsZSBzZXRzIGZvciBlcXVhbGl0eS4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgb3RoZXIgcnVsZSBzZXQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHR3byBydWxlIHNldHMgYXJlIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICAvLyBpZiBkaWZmZXJlbnQgY2xhc3NlcywgdGhleSdyZSBub3QgZXF1YWwKKyAgICAgICAgaWYgKCEodGhhdCBpbnN0YW5jZW9mIE5GUnVsZVNldCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgY29tcGFyZSB0aGUgbWVtYmVycyBvbmUgYnkgb25lLi4uCisgICAgICAgICAgICBORlJ1bGVTZXQgdGhhdDIgPSAoTkZSdWxlU2V0KXRoYXQ7CisKKyAgICAgICAgICAgIGlmICghbmFtZS5lcXVhbHModGhhdDIubmFtZSkKKyAgICAgICAgfHwgIVV0aWxpdHkub2JqZWN0RXF1YWxzKG5lZ2F0aXZlTnVtYmVyUnVsZSwgdGhhdDIubmVnYXRpdmVOdW1iZXJSdWxlKQorICAgICAgICB8fCAhVXRpbGl0eS5vYmplY3RFcXVhbHMoZnJhY3Rpb25SdWxlc1swXSwgdGhhdDIuZnJhY3Rpb25SdWxlc1swXSkKKyAgICAgICAgfHwgIVV0aWxpdHkub2JqZWN0RXF1YWxzKGZyYWN0aW9uUnVsZXNbMV0sIHRoYXQyLmZyYWN0aW9uUnVsZXNbMV0pCisgICAgICAgIHx8ICFVdGlsaXR5Lm9iamVjdEVxdWFscyhmcmFjdGlvblJ1bGVzWzJdLCB0aGF0Mi5mcmFjdGlvblJ1bGVzWzJdKQorICAgICAgICB8fCBydWxlcy5sZW5ndGggIT0gdGhhdDIucnVsZXMubGVuZ3RoCisgICAgICAgICAgICAgICAgfHwgaXNGcmFjdGlvblJ1bGVTZXQgIT0gdGhhdDIuaXNGcmFjdGlvblJ1bGVTZXQpIHsKKworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gLi4udGhlbiBjb21wYXJlIHRoZSBydWxlIGxpc3RzLi4uCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFydWxlc1tpXS5lcXVhbHModGhhdDIucnVsZXNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIC4uLmFuZCBpZiB3ZSBtYWtlIGl0IGhlcmUsIHRuZXkncmUgZXF1YWwKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBCdWlsZHMgYSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIG9mIGEgcnVsZSBzZXQuCisgICAgICogQHJldHVybiBBIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgYSBydWxlIHNldC4gIFRoaXMgd29uJ3QKKyAgICAgKiBuZWNlc3NhcmlseSBiZSB0aGUgc2FtZSBkZXNjcmlwdGlvbiB0aGF0IHRoZSBydWxlIHNldCB3YXMKKyAgICAgKiBjb25zdHJ1Y3RlZCB3aXRoLCBidXQgaXQgd2lsbCBwcm9kdWNlIHRoZSBzYW1lIHJlc3VsdHMuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvLyB0aGUgcnVsZSBzZXQgbmFtZSBnb2VzIGZpcnN0Li4uCisgICAgICAgIHJlc3VsdC5hcHBlbmQobmFtZSArICI6XG4iKTsKKworICAgICAgICAvLyBmb2xsb3dlZCBieSB0aGUgcmVndWxhciBydWxlcy4uLgorICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgICAgIiArIHJ1bGVzW2ldLnRvU3RyaW5nKCkgKyAiXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZvbGxvd2VkIGJ5IHRoZSBzcGVjaWFsIHJ1bGVzIChpZiB0aGV5IGV4aXN0KQorICAgICAgICBpZiAobmVnYXRpdmVOdW1iZXJSdWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiAgICAiICsgbmVnYXRpdmVOdW1iZXJSdWxlLnRvU3RyaW5nKCkgKyAiXG4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZnJhY3Rpb25SdWxlc1swXSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCIgICAgIiArIGZyYWN0aW9uUnVsZXNbMF0udG9TdHJpbmcoKSArICJcbiIpOworICAgICAgICB9CisgICAgICAgIGlmIChmcmFjdGlvblJ1bGVzWzFdICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIiAgICAiICsgZnJhY3Rpb25SdWxlc1sxXS50b1N0cmluZygpICsgIlxuIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZyYWN0aW9uUnVsZXNbMl0gIT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgiICAgICIgKyBmcmFjdGlvblJ1bGVzWzJdLnRvU3RyaW5nKCkgKyAiXG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29ycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFNheXMgd2hldGhlciB0aGlzIHJ1bGUgc2V0IGlzIGEgZnJhY3Rpb24gcnVsZSBzZXQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgcnVsZSBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0OyBmYWxzZSBpZiBpdCBpc24ndAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzRnJhY3Rpb25TZXQoKSB7CisgICAgICAgIHJldHVybiBpc0ZyYWN0aW9uUnVsZVNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBydWxlIHNldCdzIG5hbWUKKyAgICAgKiBAcmV0dXJuIFRoZSBydWxlIHNldCdzIG5hbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgIHJldHVybiBuYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBydWxlIHNldCBpcyBwdWJsaWMuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBydWxlIHNldCBpcyBwdWJsaWMKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1B1YmxpYygpIHsKKyAgICByZXR1cm4gIW5hbWUuc3RhcnRzV2l0aCgiJSUiKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgYSBsb25nLiAgU2VsZWN0cyBhbiBhcHByb3ByaWF0ZSBydWxlIGFuZCBkaXNwYXRjaGVzCisgICAgICogY29udHJvbCB0byBpdC4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHBhcmFtIHRvSW5zZXJ0SW50byBUaGUgc3RyaW5nIHdoZXJlIHRoZSByZXN1bHQgaXMgdG8gYmUgcGxhY2VkCisgICAgICogQHBhcmFtIHBvcyBUaGUgcG9zaXRpb24gaW4gdG9JbnNlcnRJbnRvIHdoZXJlIHRoZSByZXN1bHQgb2YKKyAgICAgKiB0aGlzIG9wZXJhdGlvbiBpcyB0byBiZSBpbnNlcnRlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGZvcm1hdChsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICBORlJ1bGUgYXBwbGljYWJsZVJ1bGUgPSBmaW5kTm9ybWFsUnVsZShudW1iZXIpOworCisgICAgICAgIGlmICgrK3JlY3Vyc2lvbkNvdW50ID49IFJFQ1VSU0lPTl9MSU1JVCkgeworICAgICAgICAgICAgcmVjdXJzaW9uQ291bnQgPSAwOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiUmVjdXJzaW9uIGxpbWl0IGV4Y2VlZGVkIHdoZW4gYXBwbHlpbmcgcnVsZVNldCAiICsgbmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgYXBwbGljYWJsZVJ1bGUuZG9Gb3JtYXQobnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisgICAgICAgIC0tcmVjdXJzaW9uQ291bnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyBhIGRvdWJsZS4gIFNlbGVjdHMgYW4gYXBwcm9wcmlhdGUgcnVsZSBhbmQgZGlzcGF0Y2hlcworICAgICAqIGNvbnRyb2wgdG8gaXQuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEBwYXJhbSB0b0luc2VydEludG8gVGhlIHN0cmluZyB3aGVyZSB0aGUgcmVzdWx0IGlzIHRvIGJlIHBsYWNlZAorICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIGluIHRvSW5zZXJ0SW50byB3aGVyZSB0aGUgcmVzdWx0IG9mCisgICAgICogdGhpcyBvcGVyYXRpb24gaXMgdG8gYmUgaW5zZXJ0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBmb3JtYXQoZG91YmxlIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICBORlJ1bGUgYXBwbGljYWJsZVJ1bGUgPSBmaW5kUnVsZShudW1iZXIpOworCisgICAgICAgIGlmICgrK3JlY3Vyc2lvbkNvdW50ID49IFJFQ1VSU0lPTl9MSU1JVCkgeworICAgICAgICAgICAgcmVjdXJzaW9uQ291bnQgPSAwOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiUmVjdXJzaW9uIGxpbWl0IGV4Y2VlZGVkIHdoZW4gYXBwbHlpbmcgcnVsZVNldCAiICsgbmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgYXBwbGljYWJsZVJ1bGUuZG9Gb3JtYXQobnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisgICAgICAgIC0tcmVjdXJzaW9uQ291bnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VsZWN0cyBhbiBhcHJvcHJpYXRlIHJ1bGUgZm9yIGZvcm1hdHRpbmcgdGhlIG51bWJlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gVGhlIHJ1bGUgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBmb3JtYXQgaXQKKyAgICAgKi8KKyAgICBwcml2YXRlIE5GUnVsZSBmaW5kUnVsZShkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIC8vIGlmIHRoaXMgaXMgYSBmcmFjdGlvbiBydWxlIHNldCwgdXNlIGZpbmRGcmFjdGlvblJ1bGVTZXRSdWxlKCkKKyAgICAgICAgaWYgKGlzRnJhY3Rpb25SdWxlU2V0KSB7CisgICAgICAgICAgICByZXR1cm4gZmluZEZyYWN0aW9uUnVsZVNldFJ1bGUobnVtYmVyKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBudW1iZXIgaXMgbmVnYXRpdmUsIHJldHVybiB0aGUgbmVnYXRpdmUgbnVtYmVyIHJ1bGUKKyAgICAgICAgLy8gKGlmIHRoZXJlIGlzbid0IGEgbmVnYXRpdmUtbnVtYmVyIHJ1bGUsIHdlIHByZXRlbmQgaXQncyBhCisgICAgICAgIC8vIHBvc2l0aXZlIG51bWJlcikKKyAgICAgICAgaWYgKG51bWJlciA8IDApIHsKKyAgICAgICAgICAgIGlmIChuZWdhdGl2ZU51bWJlclJ1bGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZWdhdGl2ZU51bWJlclJ1bGU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG51bWJlciA9IC1udW1iZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB0aGUgbnVtYmVyIGlzbid0IGFuIGludGVnZXIsIHdlIHVzZSBvbmUgZiB0aGUgZnJhY3Rpb24gcnVsZXMuLi4KKyAgICAgICAgaWYgKG51bWJlciAhPSBNYXRoLmZsb29yKG51bWJlcikpIHsKKyAgICAgICAgICAgIC8vIGlmIHRoZSBudW1iZXIgaXMgYmV0d2VlbiAwIGFuZCAxLCByZXR1cm4gdGhlIHByb3BlcgorICAgICAgICAgICAgLy8gZnJhY3Rpb24gcnVsZQorICAgICAgICAgICAgaWYgKG51bWJlciA8IDEgJiYgZnJhY3Rpb25SdWxlc1sxXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZyYWN0aW9uUnVsZXNbMV07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgcmV0dXJuIHRoZSBpbXByb3BlciBmcmFjdGlvbiBydWxlCisgICAgICAgICAgICBlbHNlIGlmIChmcmFjdGlvblJ1bGVzWzBdICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnJhY3Rpb25SdWxlc1swXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZXJlJ3MgYSBtYXN0ZXIgcnVsZSwgdXNlIGl0IHRvIGZvcm1hdCB0aGUgbnVtYmVyCisgICAgICAgIGlmIChmcmFjdGlvblJ1bGVzWzJdICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmcmFjdGlvblJ1bGVzWzJdOworCisgICAgICAgIC8vIGFuZCBpZiB3ZSBoYXZlbid0IHlldCByZXR1cm5lZCBhIHJ1bGUsIHVzZSBmaW5kTm9ybWFsUnVsZSgpCisgICAgICAgIC8vIHRvIGZpbmQgdGhlIGFwcGxpY2FibGUgcnVsZQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZpbmROb3JtYWxSdWxlKChsb25nKU1hdGgucm91bmQobnVtYmVyKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJZiB0aGUgdmFsdWUgcGFzc2VkIHRvIGZpbmRSdWxlKCkgaXMgYSBwb3NpdGl2ZSBpbnRlZ2VyLCBmaW5kUnVsZSgpCisgICAgICogdXNlcyB0aGlzIGZ1bmN0aW9uIHRvIHNlbGVjdCB0aGUgYXBwcm9wcmlhdGUgcnVsZS4gIFRoZSByZXN1bHQgd2lsbAorICAgICAqIGdlbmVyYWxseSBiZSB0aGUgcnVsZSB3aXRoIHRoZSBoaWdoZXN0IGJhc2UgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsCisgICAgICogdG8gdGhlIG51bWJlci4gIFRoZXJlIGlzIG9uZSBleGNlcHRpb24gdG8gdGhpczogSWYgdGhhdCBydWxlIGhhcworICAgICAqIHR3byBzdWJzdGl0dXRpb25zIGFuZCBhIGJhc2UgdmFsdWUgdGhhdCBpcyBub3QgYW4gZXZlbiBtdWx0aXBsZSBvZgorICAgICAqIGl0cyBkaXZpc29yLCBhbmQgdGhlIG51bWJlciBpdHNlbGYgSVMgYW4gZXZlbiBtdWx0aXBsZSBvZiB0aGUgcnVsZSdzCisgICAgICogZGl2aXNvciwgdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmUgdGhlIHJ1bGUgdGhhdCBwcmVjZWRlZCB0aGUgb3JpZ2luYWwKKyAgICAgKiByZXN1bHQgaW4gdGhlIHJ1bGUgbGlzdC4gIChUaGlzIGJlaGF2aW9yIGlzIGtub3duIGFzIHRoZSAicm9sbGJhY2sKKyAgICAgKiBydWxlIiwgYW5kIGlzIHVzZWQgdG8gaGFuZGxlIG9wdGlvbmFsIHRleHQ6IGEgcnVsZSB3aXRoIG9wdGlvbmFsCisgICAgICogdGV4dCBpcyByZXByZXNlbnRlZCBpbnRlcm5hbGx5IGFzIHR3byBydWxlcywgYW5kIHRoZSByb2xsYmFjayBydWxlCisgICAgICogc2VsZWN0cyBhcHByb3ByaWF0ZSBiZXR3ZWVuIHRoZW0uICBUaGlzIGF2b2lkcyB0aGluZ3MgbGlrZSAidHdvCisgICAgICogaHVuZHJlZCB6ZXJvIi4pCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gVGhlIHJ1bGUgdG8gdXNlIHRvIGZvcm1hdCB0aGlzIG51bWJlcgorICAgICAqLworICAgIHByaXZhdGUgTkZSdWxlIGZpbmROb3JtYWxSdWxlKGxvbmcgbnVtYmVyKSB7CisgICAgICAgIC8vIGlmIHRoaXMgaXMgYSBmcmFjdGlvbiBydWxlIHNldCwgdXNlIGZpbmRGcmFjdGlvblJ1bGVTZXRSdWxlKCkKKyAgICAgICAgLy8gdG8gZmluZCB0aGUgcnVsZSAod2Ugc2hvdWxkIG9ubHkgZ28gaW50byB0aGlzIGNsYXVzZSBpZiB0aGUKKyAgICAgICAgLy8gdmFsdWUgaXMgMCkKKyAgICAgICAgaWYgKGlzRnJhY3Rpb25SdWxlU2V0KSB7CisgICAgICAgICAgICByZXR1cm4gZmluZEZyYWN0aW9uUnVsZVNldFJ1bGUobnVtYmVyKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBudW1iZXIgaXMgbmVnYXRpdmUsIHJldHVybiB0aGUgbmVnYXRpdmUtbnVtYmVyIHJ1bGUKKyAgICAgICAgLy8gKGlmIHRoZXJlIGlzbid0IG9uZSwgcHJldGVuZCB0aGUgbnVtYmVyIGlzIHBvc2l0aXZlKQorICAgICAgICBpZiAobnVtYmVyIDwgMCkgeworICAgICAgICAgICAgaWYgKG5lZ2F0aXZlTnVtYmVyUnVsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5lZ2F0aXZlTnVtYmVyUnVsZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbnVtYmVyID0gLW51bWJlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIHdlIGhhdmUgdG8gcmVwZWF0IHRoZSBwcmVjZWRpbmcgdHdvIGNoZWNrcywgZXZlbiB0aG91Z2ggd2UKKyAgICAgICAgLy8gZG8gdGhlbSBpbiBmaW5kUnVsZSgpLCBiZWNhdXNlIHRoZSB2ZXJzaW9uIG9mIGZvcm1hdCgpIHRoYXQKKyAgICAgICAgLy8gdGFrZXMgYSBsb25nIGJ5cGFzc2VzIGZpbmRSdWxlKCkgYW5kIGdvZXMgc3RyYWlnaHQgdG8gdGhpcworICAgICAgICAvLyBmdW5jdGlvbi4gIFRoaXMgZnVuY3Rpb24gZG9lcyBza2lwIHRoZSBmcmFjdGlvbiBydWxlcyBzaW5jZQorICAgICAgICAvLyB3ZSBrbm93IHRoZSB2YWx1ZSBpcyBhbiBpbnRlZ2VyIChpdCBhbHNvIHNraXBzIHRoZSBtYXN0ZXIKKyAgICAgICAgLy8gcnVsZSwgc2luY2UgaXQncyBjb25zaWRlcmVkIGEgZnJhY3Rpb24gcnVsZS4gIFNraXBwaW5nIHRoZQorICAgICAgICAvLyBtYXN0ZXIgcnVsZSBpbiB0aGlzIGZ1bmN0aW9uIGlzIGFsc28gaG93IHdlIGF2b2lkIGluZmluaXRlCisgICAgICAgIC8vIHJlY3Vyc2lvbikKKworICAgICAgICAvLyBiaW5hcnktc2VhcmNoIHRoZSBydWxlIGxpc3QgZm9yIHRoZSBhcHBsaWNhYmxlIHJ1bGUKKyAgICAgICAgLy8gKGEgcnVsZSBpcyB1c2VkIGZvciBhbGwgdmFsdWVzIGZyb20gaXRzIGJhc2UgdmFsdWUgdG8KKyAgICAgICAgLy8gdGhlIG5leHQgcnVsZSdzIGJhc2UgdmFsdWUpCisgICAgICAgIGludCBsbyA9IDA7CisgICAgICAgIGludCBoaSA9IHJ1bGVzLmxlbmd0aDsKKyAgICBpZiAoaGkgPiAwKSB7CisgICAgICAgIHdoaWxlIChsbyA8IGhpKSB7CisgICAgICAgIGludCBtaWQgPSAobG8gKyBoaSkgLyAyOworICAgICAgICBpZiAocnVsZXNbbWlkXS5nZXRCYXNlVmFsdWUoKSA9PSBudW1iZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBydWxlc1ttaWRdOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHJ1bGVzW21pZF0uZ2V0QmFzZVZhbHVlKCkgPiBudW1iZXIpIHsKKyAgICAgICAgICAgIGhpID0gbWlkOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbG8gPSBtaWQgKyAxOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGhpID09IDApIHsgLy8gYmFkIHJ1bGUgc2V0CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlRoZSBydWxlIHNldCAiICsgbmFtZSArICIgY2Fubm90IGZvcm1hdCB0aGUgdmFsdWUgIiArIG51bWJlcik7CisgICAgICAgIH0KKyAgICAgICAgTkZSdWxlIHJlc3VsdCA9IHJ1bGVzW2hpIC0gMV07CisKKyAgICAgICAgLy8gdXNlIHNob3VsZFJvbGxCYWNrKCkgdG8gc2VlIHdoZXRoZXIgd2UgbmVlZCB0byBpbnZva2UgdGhlCisgICAgICAgIC8vIHJvbGxiYWNrIHJ1bGUgKHNlZSBzaG91bGRSb2xsQmFjaygpJ3MgZG9jdW1lbnRhdGlvbiBmb3IKKyAgICAgICAgLy8gYW4gZXhwbGFuYXRpb24gb2YgdGhlIHJvbGxiYWNrIHJ1bGUpLiAgSWYgd2UgZG8sIHJvbGwgYmFjaworICAgICAgICAvLyBvbmUgcnVsZSBhbmQgcmV0dXJuIHRoYXQgb25lIGluc3RlYWQgb2YgdGhlIG9uZSB3ZSdkIG5vcm1hbGx5CisgICAgICAgIC8vIHJldHVybgorICAgICAgICBpZiAocmVzdWx0LnNob3VsZFJvbGxCYWNrKG51bWJlcikpIHsKKyAgICAgICAgaWYgKGhpID09IDEpIHsgLy8gYmFkIHJ1bGUgc2V0CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJUaGUgcnVsZSBzZXQgIiArIG5hbWUgKyAiIGNhbm5vdCByb2xsIGJhY2sgZnJvbSB0aGUgcnVsZSAnIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICsgIiciKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQgPSBydWxlc1toaSAtIDJdOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIC8vIGVsc2UgdXNlIHRoZSBtYXN0ZXIgcnVsZQorICAgIHJldHVybiBmcmFjdGlvblJ1bGVzWzJdOworICAgIH0KKworICAgIC8qKgorICAgICAqIElmIHRoaXMgcnVsZSBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LCB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgYnkKKyAgICAgKiBmaW5kUnVsZSgpIHRvIHNlbGVjdCB0aGUgbW9zdCBhcHByb3ByaWF0ZSBydWxlIGZvciBmb3JtYXR0aW5nCisgICAgICogdGhlIG51bWJlci4gIEJhc2ljYWxseSwgdGhlIGJhc2UgdmFsdWUgb2YgZWFjaCBydWxlIGluIHRoZSBydWxlCisgICAgICogc2V0IGlzIHRyZWF0ZWQgYXMgdGhlIGRlbm9taW5hdG9yIG9mIGEgZnJhY3Rpb24uICBXaGljaGV2ZXIKKyAgICAgKiBkZW5vbWluYXRvciBjYW4gcHJvZHVjZSB0aGUgZnJhY3Rpb24gY2xvc2VzdCBpbiB2YWx1ZSB0byB0aGUKKyAgICAgKiBudW1iZXIgcGFzc2VkIGluIGlzIHRoZSByZXN1bHQuICBJZiB0aGVyZSdzIGEgdGllLCB0aGUgZWFybGllcgorICAgICAqIG9uZSBpbiB0aGUgbGlzdCB3aW5zLiAgKElmIHRoZXJlIGFyZSB0d28gcnVsZXMgaW4gYSByb3cgd2l0aCB0aGUKKyAgICAgKiBzYW1lIGJhc2UgdmFsdWUsIHRoZSBmaXJzdCBvbmUgaXMgdXNlZCB3aGVuIHRoZSBudW1lcmF0b3Igb2YgdGhlCisgICAgICogZnJhY3Rpb24gd291bGQgYmUgMSwgYW5kIHRoZSBzZWNvbmQgcnVsZSBpcyB1c2VkIHRoZSByZXN0IG9mIHRoZQorICAgICAqIHRpbWUuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCAod2hpY2ggd2lsbCBhbHdheXMgYmUKKyAgICAgKiBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEpCisgICAgICogQHJldHVybiBUaGUgcnVsZSB0byB1c2UgdG8gZm9ybWF0IHRoaXMgbnVtYmVyCisgICAgICovCisgICAgcHJpdmF0ZSBORlJ1bGUgZmluZEZyYWN0aW9uUnVsZVNldFJ1bGUoZG91YmxlIG51bWJlcikgeworICAgICAgICAvLyB0aGUgb2J2aW91cyB3YXkgdG8gZG8gdGhpcyAobXVsdGlwbHkgdGhlIHZhbHVlIGJlaW5nIGZvcm1hdHRlZAorICAgICAgICAvLyBieSBlYWNoIHJ1bGUncyBiYXNlIHZhbHVlIHVudGlsIHlvdSBnZXQgYW4gaW50ZWdyYWwgcmVzdWx0KQorICAgICAgICAvLyBkb2Vzbid0IHdvcmsgYmVjYXVzZSBvZiByb3VuZGluZyBlcnJvci4gIFRoaXMgbWV0aG9kIGlzIG1vcmUKKyAgICAgICAgLy8gYWNjdXJhdGUKKworICAgICAgICAvLyBmaW5kIHRoZSBsZWFzdCBjb21tb24gbXVsdGlwbGUgb2YgdGhlIHJ1bGVzJyBiYXNlIHZhbHVlcworICAgICAgICAvLyBhbmQgbXVsdGlwbHkgdGhpcyBieSB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZC4gIFRoaXMgaXMKKyAgICAgICAgLy8gYWxsIHRoZSBwcmVjaXNpb24gd2UgbmVlZCwgYW5kIHdlIGNhbiBkbyBhbGwgb2YgdGhlIHJlc3QKKyAgICAgICAgLy8gb2YgdGhlIG1hdGggdXNpbmcgaW50ZWdlciBhcml0aG1ldGljCisgICAgICAgIGxvbmcgbGVhc3RDb21tb25NdWx0aXBsZSA9IHJ1bGVzWzBdLmdldEJhc2VWYWx1ZSgpOworICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBsZWFzdENvbW1vbk11bHRpcGxlID0gbGNtKGxlYXN0Q29tbW9uTXVsdGlwbGUsIHJ1bGVzW2ldLmdldEJhc2VWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgICAgICBsb25nIG51bWVyYXRvciA9IChsb25nKShNYXRoLnJvdW5kKG51bWJlciAqIGxlYXN0Q29tbW9uTXVsdGlwbGUpKTsKKworICAgICAgICAvLyBmb3IgZWFjaCBydWxlLCBkbyB0aGUgZm9sbG93aW5nLi4uCisgICAgICAgIGxvbmcgdGVtcERpZmZlcmVuY2U7CisgICAgICAgIGxvbmcgZGlmZmVyZW5jZSA9IExvbmcuTUFYX1ZBTFVFOworICAgICAgICBpbnQgd2lubmVyID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgLy8gIm51bWVyYXRvciIgaXMgdGhlIG51bWVyYXRvciBvZiB0aGUgZnJhY3Rpb24gaXMgdGhlCisgICAgICAgICAgICAvLyBkZW5vbWluYXRvciBpcyB0aGUgTENELiAgVGhlIG51bWVyYXRvciBpZiB0aGUgdGhlIHJ1bGUncworICAgICAgICAgICAgLy8gYmFzZSB2YWx1ZSBpcyB0aGUgZGVub21pYXRvciBpcyAibnVtZXJhdG9yIiB0aW1lcyB0aGUKKyAgICAgICAgICAgIC8vIGJhc2UgdmFsdWUgZGl2aWRlZCBieXRoZSBMQ0QuICBIZXJlIHdlIGNoZWNrIHRvIHNlZSBpZgorICAgICAgICAgICAgLy8gdGhhdCdzIGFuIGludGVnZXIsIGFuZCBpZiBub3QsIGhvdyBjbG9zZSBpdCBpcyB0byBiZWluZworICAgICAgICAgICAgLy8gYW4gaW50ZWdlci4KKyAgICAgICAgICAgIHRlbXBEaWZmZXJlbmNlID0gbnVtZXJhdG9yICogcnVsZXNbaV0uZ2V0QmFzZVZhbHVlKCkgJSBsZWFzdENvbW1vbk11bHRpcGxlOworCisgICAgICAgICAgICAvLyBub3JtYWxpemUgdGhlIHJlc3VsdCBvZiB0aGUgYWJvdmUgY2FsY3VsYXRpb246IHdlIHdhbnQKKyAgICAgICAgICAgIC8vIHRoZSBudW1lcmF0b3IncyBkaXN0YW5jZSBmcm9tIHRoZSBDTE9TRVNUIG11bHRpcGxlCisgICAgICAgICAgICAvLyBvZiB0aGUgTENECisgICAgICAgICAgICBpZiAobGVhc3RDb21tb25NdWx0aXBsZSAtIHRlbXBEaWZmZXJlbmNlIDwgdGVtcERpZmZlcmVuY2UpIHsKKyAgICAgICAgICAgICAgICB0ZW1wRGlmZmVyZW5jZSA9IGxlYXN0Q29tbW9uTXVsdGlwbGUgLSB0ZW1wRGlmZmVyZW5jZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhpcyBpcyBhcyBjbG9zZSBhcyB3ZSd2ZSBjb21lLCBrZWVwIHRyYWNrIG9mIGhvdyBjbG9zZQorICAgICAgICAgICAgLy8gdGhhdCBpcywgYW5kIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgcnVsZSB0aGF0IGRpZCBpdC4gIElmCisgICAgICAgICAgICAvLyB3ZSd2ZSBzY29yZWQgYSBkaXJlY3QgaGl0LCB3ZSBkb24ndCBoYXZlIHRvIGxvb2sgYXQgYW55IG1vcmUKKyAgICAgICAgICAgIC8vIHJ1bGVzCisgICAgICAgICAgICBpZiAodGVtcERpZmZlcmVuY2UgPCBkaWZmZXJlbmNlKSB7CisgICAgICAgICAgICAgICAgZGlmZmVyZW5jZSA9IHRlbXBEaWZmZXJlbmNlOworICAgICAgICAgICAgICAgIHdpbm5lciA9IGk7CisgICAgICAgICAgICAgICAgaWYgKGRpZmZlcmVuY2UgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB3ZSBoYXZlIHR3byBzdWNjZXNzaXZlIHJ1bGVzIHRoYXQgYm90aCBoYXZlIHRoZSB3aW5uaW5nIGJhc2UKKyAgICAgICAgLy8gdmFsdWUsIHRoZW4gdGhlIGZpcnN0IG9uZSAodGhlIG9uZSB3ZSBmb3VuZCBhYm92ZSkgaXMgdXNlZCBpZgorICAgICAgICAvLyB0aGUgbnVtZXJhdG9yIG9mIHRoZSBmcmFjdGlvbiBpcyAxIGFuZCB0aGUgc2Vjb25kIG9uZSBpcyB1c2VkIGlmCisgICAgICAgIC8vIHRoZSBudW1lcmF0b3Igb2YgdGhlIGZyYWN0aW9uIGlzIGFueXRoaW5nIGVsc2UgKHRoaXMgbGV0cyB1cworICAgICAgICAvLyBkbyB0aGluZ3MgbGlrZSAib25lIHRoaXJkIi8idHdvIHRoaXJkcyIgd2l0aG91dCBoYXZlaW5nIHRvIGRlZmluZQorICAgICAgICAvLyBhIHdob2xlIGJ1bmNoIG9mIGV4dHJhIHJ1bGUgc2V0cykKKyAgICAgICAgaWYgKHdpbm5lciArIDEgPCBydWxlcy5sZW5ndGgKKyAgICAgICAgICAgICAgICAmJiBydWxlc1t3aW5uZXIgKyAxXS5nZXRCYXNlVmFsdWUoKSA9PSBydWxlc1t3aW5uZXJdLmdldEJhc2VWYWx1ZSgpKSB7CisgICAgICAgICAgICBpZiAoTWF0aC5yb3VuZChudW1iZXIgKiBydWxlc1t3aW5uZXJdLmdldEJhc2VWYWx1ZSgpKSA8IDEKKyAgICAgICAgICAgICAgICAgICAgfHwgTWF0aC5yb3VuZChudW1iZXIgKiBydWxlc1t3aW5uZXJdLmdldEJhc2VWYWx1ZSgpKSA+PSAyKSB7CisgICAgICAgICAgICAgICAgKyt3aW5uZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBmaW5hbGx5LCByZXR1cm4gdGhlIHdpbm5pbmcgcnVsZQorICAgICAgICByZXR1cm4gcnVsZXNbd2lubmVyXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGVzIHRoZSBsZWFzdCBjb21tb24gbXVsdGlwbGUgb2YgeCBhbmQgeS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIGxjbShsb25nIHgsIGxvbmcgeSkgeworICAgICAgICAvLyBiaW5hcnkgZ2NkIGFsZ29yaXRobSBmcm9tIEtudXRoLCAiVGhlIEFydCBvZiBDb21wdXRlciBQcm9ncmFtbWluZywiCisgICAgICAgIC8vIHZvbC4gMiwgMXN0IGVkLiwgcHAuIDI5OC0yOTkKKyAgICAgICAgbG9uZyB4MSA9IHg7CisgICAgICAgIGxvbmcgeTEgPSB5OworCisgICAgICAgIGludCBwMiA9IDA7CisgICAgICAgIHdoaWxlICgoeDEgJiAxKSA9PSAwICYmICh5MSAmIDEpID09IDApIHsKKyAgICAgICAgICAgICsrcDI7CisgICAgICAgICAgICB4MSA+Pj0gMTsKKyAgICAgICAgICAgIHkxID4+PSAxOworICAgICAgICB9CisKKyAgICAgICAgbG9uZyB0OworICAgICAgICBpZiAoKHgxICYgMSkgPT0gMSkgeworICAgICAgICAgICAgdCA9IC15MTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHQgPSB4MTsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlICh0ICE9IDApIHsKKyAgICAgICAgICAgIHdoaWxlICgodCAmIDEpID09IDApIHsKKyAgICAgICAgICAgICAgICB0ID4+PSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHQgPiAwKSB7CisgICAgICAgICAgICAgICAgeDEgPSB0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB5MSA9IC10OworICAgICAgICAgICAgfQorICAgICAgICAgICAgdCA9IHgxIC0geTE7CisgICAgICAgIH0KKyAgICAgICAgbG9uZyBnY2QgPSB4MSA8PCBwMjsKKworICAgICAgICAvLyB4ICogeSA9PSBnY2QoeCwgeSkgKiBsY20oeCwgeSkKKyAgICAgICAgcmV0dXJuIHggLyBnY2QgKiB5OworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUGFyc2VzIGEgc3RyaW5nLiAgTWF0Y2hlcyB0aGUgc3RyaW5nIHRvIGJlIHBhcnNlZCBhZ2FpbnN0IGVhY2gKKyAgICAgKiBvZiBpdHMgcnVsZXMgKHdpdGggYSBiYXNlIHZhbHVlIGxlc3MgdGhhbiB1cHBlckJvdW5kKSBhbmQgcmV0dXJucworICAgICAqIHRoZSB2YWx1ZSBwcm9kdWNlZCBieSB0aGUgcnVsZSB0aGF0IG1hdGNoZWQgdGhlIG1vc3QgY2hhcmN0ZXJzCisgICAgICogaW4gdGhlIHNvdXJjZSBzdHJpbmcuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIFRoZSBpbml0aWFsIHBvc2l0aW9uIGlzIGlnbm9yZWQgYW5kIGFzc3VtZWQKKyAgICAgKiB0byBiZSAwLiAgT24gZXhpdCwgdGhpcyBvYmplY3QgaGFzIGJlZW4gdXBkYXRlZCB0byBwb2ludCB0byB0aGUKKyAgICAgKiBmaXJzdCBjaGFyYWN0ZXIgcG9zaXRpb24gdGhpcyBydWxlIHNldCBkaWRuJ3QgY29uc3VtZS4KKyAgICAgKiBAcGFyYW0gdXBwZXJCb3VuZCBMaW1pdHMgdGhlIHJ1bGVzIHRoYXQgY2FuIGJlIGFsbG93ZWQgdG8gbWF0Y2guCisgICAgICogT25seSBydWxlcyB3aG9zZSBiYXNlIHZhbHVlcyBhcmUgc3RyaWN0bHkgbGVzcyB0aGFuIHVwcGVyQm91bmQKKyAgICAgKiBhcmUgY29uc2lkZXJlZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBudW1lcmljYWwgcmVzdWx0IG9mIHBhcnNpbmcgdGhpcyBzdHJpbmcuICBUaGlzIHdpbGwKKyAgICAgKiBiZSB0aGUgbWF0Y2hpbmcgcnVsZSdzIGJhc2UgdmFsdWUsIGNvbXBvc2VkIGFwcHJvcHJpYXRlbHkgd2l0aAorICAgICAqIHRoZSByZXN1bHRzIG9mIG1hdGNoaW5nIGFueSBvZiBpdHMgc3Vic3RpdHV0aW9ucy4gIFRoZSBvYmplY3QKKyAgICAgKiB3aWxsIGJlIGFuIGluc3RhbmNlIG9mIExvbmcgaWYgaXQncyBhbiBpbnRlZ3JhbCB2YWx1ZTsgb3RoZXJ3aXNlLAorICAgICAqIGl0IHdpbGwgYmUgYW4gaW5zdGFuY2Ugb2YgRG91YmxlLiAgVGhpcyBmdW5jdGlvbiBhbHdheXMgcmV0dXJucworICAgICAqIGEgdmFsaWQgb2JqZWN0OiBJZiBub3RoaW5nIG1hdGNoZWQgdGhlIGlucHV0IHN0cmluZyBhdCBhbGwsCisgICAgICogdGhpcyBmdW5jdGlvbiByZXR1cm5zIG5ldyBMb25nKDApLCBhbmQgdGhlIHBhcnNlIHBvc2l0aW9uIGlzCisgICAgICogbGVmdCB1bmNoYW5nZWQuCisgICAgICovCisgICAgcHVibGljIE51bWJlciBwYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBkb3VibGUgdXBwZXJCb3VuZCkgeworICAgICAgICAvLyB0cnkgbWF0Y2hpbmcgZWFjaCBydWxlIGluIHRoZSBydWxlIHNldCBhZ2FpbnN0IHRoZSB0ZXh0IGJlaW5nCisgICAgICAgIC8vIHBhcnNlZC4gIFdoaWNoZXZlciBvbmUgbWF0Y2hlcyB0aGUgbW9zdCBjaGFyYWN0ZXJzIGlzIHRoZSBvbmUKKyAgICAgICAgLy8gdGhhdCBkZXRlcm1pbmVzIHRoZSB2YWx1ZSB3ZSByZXR1cm4uCisKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBoaWdoV2F0ZXJNYXJrID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIE51bWJlciByZXN1bHQgPSBuZXcgTG9uZygwKTsKKyAgICAgICAgTnVtYmVyIHRlbXBSZXN1bHQgPSBudWxsOworCisgICAgICAgIC8vIGR1bXAgb3V0IGlmIHRoZXJlJ3Mgbm8gdGV4dCB0byBwYXJzZQorICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gc3RhcnQgYnkgdHJ5aW5nIHRoZSBuZWhhdGl2ZSBudW1iZXIgcnVsZSAoaWYgdGhlcmUgaXMgb25lKQorICAgICAgICBpZiAobmVnYXRpdmVOdW1iZXJSdWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRlbXBSZXN1bHQgPSBuZWdhdGl2ZU51bWJlclJ1bGUuZG9QYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uLCBmYWxzZSwgdXBwZXJCb3VuZCk7CisgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID4gaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVtcFJlc3VsdDsKKyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICB9CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGVycm9yLWluZGV4IEFQSSBvbiBQYXJzZVBvc2l0aW9uIGlzbid0IHRoZXJlIGluIDEuMS54CisvLyAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0RXJyb3JJbmRleCgpKSB7CisvLyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGhlbiB0cnkgZWFjaCBvZiB0aGUgZnJhY3Rpb24gcnVsZXMKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChmcmFjdGlvblJ1bGVzW2ldICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gZnJhY3Rpb25SdWxlc1tpXS5kb1BhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIGZhbHNlLCB1cHBlckJvdW5kKTsKKyAgICAgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID4gaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRlbXBSZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGhpZ2hXYXRlck1hcmsuc2V0SW5kZXgocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgICAgICB9CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGVycm9yLWluZGV4IEFQSSBvbiBQYXJzZVBvc2l0aW9uIGlzbid0IHRoZXJlIGluIDEuMS54CisvLyAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0RXJyb3JJbmRleCgpKSB7CisvLyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGZpbmFsbHksIGdvIHRocm91Z2ggdGhlIHJlZ3VsYXIgcnVsZXMgb25lIGF0IGEgdGltZS4gIFdlIHN0YXJ0CisgICAgICAgIC8vIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgYmVjYXVzZSB3ZSB3YW50IHRvIHRyeSBtYXRjaGluZyB0aGUgbW9zdAorICAgICAgICAvLyBzaWdpZmljYW50IHJ1bGUgZmlyc3QgKHRoaXMgaGVscHMgZW5zdXJlIHRoYXQgd2UgcGFyc2UKKyAgICAgICAgLy8gImZpdmUgdGhvdXNhbmQgdGhyZWUgaHVuZHJlZCBzaXgiIGFzCisgICAgICAgIC8vICIoZml2ZSB0aG91c2FuZCkgKHRocmVlIGh1bmRyZWQpIChzaXgpIiByYXRoZXIgdGhhbgorICAgICAgICAvLyAiKChmaXZlIHRob3VzYW5kIHRocmVlKSBodW5kcmVkKSAoc2l4KSIpLiAgU2tpcCBydWxlcyB3aG9zZQorICAgICAgICAvLyBiYXNlIHZhbHVlcyBhcmUgaGlnaGVyIHRoYW4gdGhlIHVwcGVyIGJvdW5kIChhZ2FpbiwgdGhpcyBoZWxwcworICAgICAgICAvLyBsaW1pdCBhbWJpZ3VpdHkgYnkgbWFraW5nIHN1cmUgdGhlIHJ1bGVzIHRoYXQgbWF0Y2ggYSBydWxlJ3MKKyAgICAgICAgLy8gYXJlIGxlc3Mgc2lnbmlmaWNhbnQgdGhhbiB0aGUgcnVsZSBjb250YWluaW5nIHRoZSBzdWJzdGl0dXRpb25zKS8KKyAgICAgICAgZm9yIChpbnQgaSA9IHJ1bGVzLmxlbmd0aCAtIDE7IGkgPj0gMCAmJiBoaWdoV2F0ZXJNYXJrLmdldEluZGV4KCkgPCB0ZXh0Lmxlbmd0aCgpOyBpLS0pIHsKKyAgICAgICAgICAgIGlmICghaXNGcmFjdGlvblJ1bGVTZXQgJiYgcnVsZXNbaV0uZ2V0QmFzZVZhbHVlKCkgPj0gdXBwZXJCb3VuZCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gcnVsZXNbaV0uZG9QYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uLCBpc0ZyYWN0aW9uUnVsZVNldCwgdXBwZXJCb3VuZCk7CisgICAgICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID4gaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGVtcFJlc3VsdDsKKyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICB9CisvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhlIGVycm9yLWluZGV4IEFQSSBvbiBQYXJzZVBvc2l0aW9uIGlzbid0IHRoZXJlIGluIDEuMS54CisvLyAgICAgICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0RXJyb3JJbmRleCgpKSB7CisvLyAgICAgICAgICAgICAgICBoaWdoV2F0ZXJNYXJrLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICB9CisKKyAgICAgICAgLy8gZmluYWxseSwgdXBkYXRlIHRoZSBwYXJzZSBwb3N0aW9uIHdlIHdlcmUgcGFzc2VkIHRvIHBvaW50IHRvIHRoZQorICAgICAgICAvLyBmaXJzdCBjaGFyYWN0ZXIgd2UgZGlkbid0IHVzZSwgYW5kIHJldHVybiB0aGUgcmVzdWx0IHRoYXQKKyAgICAgICAgLy8gY3BvcnJlc3BvbmRzIHRvIHRoYXQgc3RyaW5nIG9mIGNoYXJhY3RlcnMKKyAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChoaWdoV2F0ZXJNYXJrLmdldEluZGV4KCkpOworLy8gY29tbWVudGVkIG91dCBiZWNhdXNlIHRoZSBlcnJvci1pbmRleCBBUEkgb24gUGFyc2VQb3NpdGlvbiBpc24ndCB0aGVyZSBpbiAxLjEueAorLy8gICAgICAgIGlmIChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgPT0gMCkgeworLy8gICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgoaGlnaFdhdGVyTWFyay5nZXRFcnJvckluZGV4KCkpOworLy8gICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L05GU3Vic3RpdHV0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlN1YnN0aXR1dGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE0NTFlOTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9ORlN1YnN0aXR1dGlvbi5qYXZhCkBAIC0wLDAgKzEsMTkzMyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC4qOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIE5GU3Vic3RpdHV0aW9uIChhYnN0cmFjdCBiYXNlIGNsYXNzKQorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorICogQW4gYWJzdHJhY3QgY2xhc3MgZGVmaW5pbmcgcHJvdG9jb2wgZm9yIHN1YnN0aXR1dGlvbnMuICBBIHN1YnN0aXR1dGlvbgorICogaXMgYSBzZWN0aW9uIG9mIGEgcnVsZSB0aGF0IGluc2VydHMgdGV4dCBpbnRvIHRoZSBydWxlJ3MgcnVsZSB0ZXh0CisgKiBiYXNlZCBvbiBzb21lIHBhcnQgb2YgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuCisgKiBAYXV0aG9yIFJpY2hhcmQgR2lsbGFtCisgKi8KK2Fic3RyYWN0IGNsYXNzIE5GU3Vic3RpdHV0aW9uIHsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTIwMDQgSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZGF0YSBtZW1iZXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHN1YnN0aXR1dGlvbidzIHBvc2l0aW9uIGluIHRoZSBydWxlIHRleHQgb2YgdGhlIHJ1bGUgdGhhdCBvd25zIGl0CisgICAgICovCisgICAgaW50IHBvczsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlIHNldCB0aGlzIHN1YnN0aXR1dGlvbiB1c2VzIHRvIGZvcm1hdCBpdHMgcmVzdWx0LCBvciBudWxsLgorICAgICAqIChFaXRoZXIgdGhpcyBvciBudW1iZXJGb3JtYXQgaGFzIHRvIGJlIG5vbi1udWxsLikKKyAgICAgKi8KKyAgICBORlJ1bGVTZXQgcnVsZVNldCA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgRGVjaW1hbEZvcm1hdCB0aGlzIHN1YnN0aXR1dGlvbiB1c2VzIHRvIGZvcm1hdCBpdHMgcmVzdWx0LAorICAgICAqIG9yIG51bGwuICAoRWl0aGVyIHRoaXMgb3IgcnVsZVNldCBoYXMgdG8gYmUgbm9uLW51bGwuKQorICAgICAqLworICAgIERlY2ltYWxGb3JtYXQgbnVtYmVyRm9ybWF0ID0gbnVsbDsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgdGhlIGRlc2NyaXB0aW9uLCBjcmVhdGVzIHRoZSByaWdodCBraW5kIG9mIHN1YnN0aXR1dGlvbiwKKyAgICAgKiBhbmQgaW5pdGlhbGl6ZXMgaXQgYmFzZWQgb24gdGhlIGRlc2NyaXB0aW9uLgorICAgICAqIEBwYXJhbSBwb3MgVGhlIHN1YnN0aXR1dGlvbidzIHBvc2l0aW9uIGluIHRoZSBydWxlIHRleHQgb2YgdGhlCisgICAgICogcnVsZSB0aGF0IG93bnMgaXQuCisgICAgICogQHBhcmFtIHJ1bGUgVGhlIHJ1bGUgY29udGFpbmluZyB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBydWxlUHJlZGVjZXNzb3IgVGhlIHJ1bGUgcHJlY2VkaW5nIHRoZSBvbmUgdGhhdCBjb250YWlucworICAgICAqIHRoaXMgc3Vic3RpdHV0aW9uIGluIHRoZSBydWxlIHNldCdzIHJ1bGUgbGlzdCAodGhpcyBpcyB1c2VkCisgICAgICogb25seSBmb3IgPj4+IHN1YnN0aXR1dGlvbnMpLgorICAgICAqIEBwYXJhbSBydWxlU2V0IFRoZSBydWxlIHNldCBjb250YWluaW5nIHRoZSBydWxlIGNvbnRhaW5pbmcgdGhpcworICAgICAqIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBmb3JtYXR0ZXIgVGhlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0aGF0IHVsdGltYXRlbHkgb3ducworICAgICAqIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9uIFRoZSBkZXNjcmlwdGlvbiB0byBwYXJzZSB0byBidWlsZCB0aGUgc3Vic3RpdHV0aW9uCisgICAgICogKHRoaXMgaXMganVzdCB0aGUgc3Vic3RyaW5nIG9mIHRoZSBydWxlJ3MgZGVzY3JpcHRpb24gY29udGFpbmluZworICAgICAqIHRoZSBzdWJzdGl0dXRpb24gdG9rZW4gaXRzZWxmKQorICAgICAqIEByZXR1cm4gQSBuZXcgc3Vic3RpdHV0aW9uIGNvbnN0cnVjdGVkIGFjY29yZGluZyB0byB0aGUgZGVzY3JpcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE5GU3Vic3RpdHV0aW9uIG1ha2VTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlIHJ1bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZSBydWxlUHJlZGVjZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGlzIGVtcHR5LCByZXR1cm4gYSBOdW1tU3Vic3RpdHV0aW9uCisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IE51bGxTdWJzdGl0dXRpb24ocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaCAoZGVzY3JpcHRpb24uY2hhckF0KDApKSB7CisgICAgICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gYmVnaW5zIHdpdGggJzwnLi4uCisgICAgICAgIGNhc2UgJzwnOgorICAgICAgICAgICAgLy8gdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZSBydWxlIGlzIGEgbmVnYXRpdmUgbnVtYmVyCisgICAgICAgICAgICAvLyBydWxlCisgICAgICAgICAgICBpZiAocnVsZS5nZXRCYXNlVmFsdWUoKSA9PSBORlJ1bGUuTkVHQVRJVkVfTlVNQkVSX1JVTEUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCI8PCBub3QgYWxsb3dlZCBpbiBuZWdhdGl2ZS1udW1iZXIgcnVsZSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB0aGUgcnVsZSBpcyBhIGZyYWN0aW9uIHJ1bGUsIHJldHVybiBhbgorICAgICAgICAgICAgLy8gSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uCisgICAgICAgICAgICBlbHNlIGlmIChydWxlLmdldEJhc2VWYWx1ZSgpID09IE5GUnVsZS5JTVBST1BFUl9GUkFDVElPTl9SVUxFCisgICAgICAgICAgICAgICAgICAgICB8fCBydWxlLmdldEJhc2VWYWx1ZSgpID09IE5GUnVsZS5QUk9QRVJfRlJBQ1RJT05fUlVMRQorICAgICAgICAgICAgICAgICAgICAgfHwgcnVsZS5nZXRCYXNlVmFsdWUoKSA9PSBORlJ1bGUuTUFTVEVSX1JVTEUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEludGVncmFsUGFydFN1YnN0aXR1dGlvbihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB0aGUgcnVsZSBzZXQgY29udGFpbmluZyB0aGUgcnVsZSBpcyBhIGZyYWN0aW9uCisgICAgICAgICAgICAvLyBydWxlIHNldCwgcmV0dXJuIGEgTnVtZXJhdG9yU3Vic3RpdHV0aW9uCisgICAgICAgICAgICBlbHNlIGlmIChydWxlU2V0LmlzRnJhY3Rpb25TZXQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTnVtZXJhdG9yU3Vic3RpdHV0aW9uKHBvcywgcnVsZS5nZXRCYXNlVmFsdWUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXIuZ2V0RGVmYXVsdFJ1bGVTZXQoKSwgZm9ybWF0dGVyLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgcmV0dXJuIGEgTXVsdGlwbGllclN1YnN0aXR1dGlvbgorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNdWx0aXBsaWVyU3Vic3RpdHV0aW9uKHBvcywgcnVsZS5nZXREaXZpc29yKCksIHJ1bGVTZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gYmVnaW5zIHdpdGggJz4nLi4uCisgICAgICAgIGNhc2UgJz4nOgorICAgICAgICAgICAgLy8gaWYgdGhlIHJ1bGUgaXMgYSBuZWdhdGl2ZS1udW1iZXIgcnVsZSwgcmV0dXJuCisgICAgICAgICAgICAvLyBhbiBBYnNvbHV0ZVZhbHVlU3Vic3RpdHV0aW9uCisgICAgICAgICAgICBpZiAocnVsZS5nZXRCYXNlVmFsdWUoKSA9PSBORlJ1bGUuTkVHQVRJVkVfTlVNQkVSX1JVTEUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24ocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhlIHJ1bGUgaXMgYSBmcmFjdGlvbiBydWxlLCByZXR1cm4gYQorICAgICAgICAgICAgLy8gRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24KKyAgICAgICAgICAgIGVsc2UgaWYgKHJ1bGUuZ2V0QmFzZVZhbHVlKCkgPT0gTkZSdWxlLklNUFJPUEVSX0ZSQUNUSU9OX1JVTEUKKyAgICAgICAgICAgICAgICAgICAgIHx8IHJ1bGUuZ2V0QmFzZVZhbHVlKCkgPT0gTkZSdWxlLlBST1BFUl9GUkFDVElPTl9SVUxFCisgICAgICAgICAgICAgICAgICAgICB8fCBydWxlLmdldEJhc2VWYWx1ZSgpID09IE5GUnVsZS5NQVNURVJfUlVMRSkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24ocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhlIHJ1bGUgc2V0IG93bmluZyB0aGUgcnVsZSBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LAorICAgICAgICAgICAgLy8gdGhyb3cgYW4gZXhjZXB0aW9uCisgICAgICAgICAgICBlbHNlIGlmIChydWxlU2V0LmlzRnJhY3Rpb25TZXQoKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIj4+IG5vdCBhbGxvd2VkIGluIGZyYWN0aW9uIHJ1bGUgc2V0Iik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgcmV0dXJuIGEgTW9kdWx1c1N1YnN0aXR1dGlvbgorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2R1bHVzU3Vic3RpdHV0aW9uKHBvcywgcnVsZS5nZXREaXZpc29yKCksIHJ1bGVQcmVkZWNlc3NvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVNldCwgZm9ybWF0dGVyLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBiZWdpbnMgd2l0aCAnPScsIGFsd2F5cyByZXR1cm4gYQorICAgICAgICAgICAgLy8gU2FtZVZhbHVlU3Vic3RpdHV0aW9uCisgICAgICAgIGNhc2UgJz0nOgorICAgICAgICAgICAgcmV0dXJuIG5ldyBTYW1lVmFsdWVTdWJzdGl0dXRpb24ocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgLy8gYW5kIGlmIGl0J3MgYW55dGhpbmcgZWxzZSwgdGhyb3cgYW4gZXhjZXB0aW9uCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIHN1YnN0aXR1dGlvbiBjaGFyYWN0ZXIiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEJhc2UgY29uc3RydWN0b3IgZm9yIHN1YnN0aXR1dGlvbnMuICBUaGlzIGNvbnN0cnVjdG9yIHNldHMgdXAgdGhlCisgICAgICogZmllbGRzIHdoaWNoIGFyZSBjb21tb24gdG8gYWxsIHN1YnN0aXR1dGlvbnMuCisgICAgICogQHBhcmFtIHBvcyBUaGUgc3Vic3RpdHV0aW9uJ3MgcG9zaXRpb24gaW4gdGhlIG93bmluZyBydWxlJ3MgcnVsZQorICAgICAqIHRleHQKKyAgICAgKiBAcGFyYW0gcnVsZVNldCBUaGUgcnVsZSBzZXQgdGhhdCBvd25zIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIGZvcm1hdHRlciBUaGUgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgb3ducyB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBUaGUgc3Vic3RpdHV0aW9uIGRlc2NyaXB0b3IgKGkuZS4sIHRoZSB0ZXh0CisgICAgICogaW5zaWRlIHRoZSB0b2tlbiBjaGFyYWN0ZXJzKQorICAgICAqLworICAgIE5GU3Vic3RpdHV0aW9uKGludCBwb3MsCisgICAgICAgICAgICAgICAgICAgTkZSdWxlU2V0IHJ1bGVTZXQsCisgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgLy8gaW5pdGlhbGl6ZSB0aGUgc3Vic3RpdHV0aW9uJ3MgcG9zaXRpb24gaW4gaXRzIHBhcmVudCBydWxlCisgICAgICAgIHRoaXMucG9zID0gcG9zOworCisgICAgICAgIC8vIHRoZSBkZXNjcmlwdGlvbiBzaG91bGQgYmVnaW4gYW5kIGVuZCB3aXRoIHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICAgICAgLy8gSWYgaXQgZG9lc24ndCB0aGF0J3MgYSBzeW50YXggZXJyb3IuICBPdGhlcndpc2UsCisgICAgICAgIC8vIG1ha2VTdWJzdGl0dXRpb24oKSB3YXMgdGhlIG9ubHkgdGhpbmcgdGhhdCBuZWVkZWQgdG8ga25vdworICAgICAgICAvLyBhYm91dCB0aGVzZSBjaGFyYWN0ZXJzLCBzbyBzdHJpcCB0aGVtIG9mZgorICAgICAgICBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoKCkgPj0gMiAmJiBkZXNjcmlwdGlvbi5jaGFyQXQoMCkgPT0gZGVzY3JpcHRpb24uY2hhckF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLmxlbmd0aCgpIC0gMSkpIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24uc3Vic3RyaW5nKDEsIGRlc2NyaXB0aW9uLmxlbmd0aCgpIC0gMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZGVzY3JpcHRpb24ubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBzdWJzdGl0dXRpb24gc3ludGF4Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gd2FzIGp1c3QgdHdvIHBhaXJlZCB0b2tlbiBjaGFyYWN0ZXJzCisgICAgICAgIC8vIChpLmUuLCAiPDwiIG9yICI+PiIpLCBpdCB1c2VzIHRoZSBydWxlIHNldCBpdCBiZWxvbmdzIHRvIHRvCisgICAgICAgIC8vIGZvcm1hdCBpdHMgcmVzdWx0CisgICAgICAgIGlmIChkZXNjcmlwdGlvbi5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICB0aGlzLnJ1bGVTZXQgPSBydWxlU2V0OworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIGRlc2NyaXB0aW9uIGNvbnRhaW5zIGEgcnVsZSBzZXQgbmFtZSwgdGhhdCdzIHRoZSBydWxlCisgICAgICAgIC8vIHNldCB3ZSB1c2UgdG8gZm9ybWF0IHRoZSByZXN1bHQ6IGdldCBhIHJlZmVyZW5jZSB0byB0aGUKKyAgICAgICAgLy8gbmFtZXMgcnVsZSBzZXQKKyAgICAgICAgZWxzZSBpZiAoZGVzY3JpcHRpb24uY2hhckF0KDApID09ICclJykgeworICAgICAgICAgICAgdGhpcy5ydWxlU2V0ID0gZm9ybWF0dGVyLmZpbmRSdWxlU2V0KGRlc2NyaXB0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBiZWdpbnMgd2l0aCAwIG9yICMsIHRyZWF0IGl0IGFzIGEKKyAgICAgICAgLy8gRGVjaW1hbEZvcm1hdCBwYXR0ZXJuLCBhbmQgaW5pdGlhbGl6ZSBhIERlY2ltYWxGb3JtYXQgd2l0aAorICAgICAgICAvLyB0aGF0IHBhdHRlcm4gKHRoZW4gc2V0IGl0IHRvIHVzZSB0aGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMKKyAgICAgICAgLy8gYmVsb25naW5nIHRvIG91ciBmb3JtYXR0ZXIpCisgICAgICAgIGVsc2UgaWYgKGRlc2NyaXB0aW9uLmNoYXJBdCgwKSA9PSAnIycgfHwgZGVzY3JpcHRpb24uY2hhckF0KDApID09ICcwJykgeworICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQgPSBuZXcgRGVjaW1hbEZvcm1hdChkZXNjcmlwdGlvbik7CisgICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdC5zZXREZWNpbWFsRm9ybWF0U3ltYm9scyhmb3JtYXR0ZXIuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB0aGUgZGVzY3JpcHRpb24gaXMgIj4+PiIsIHRoaXMgc3Vic3RpdHV0aW9uIGJ5cGFzc2VzIHRoZQorICAgICAgICAvLyB1c3VhbCBydWxlLXNlYXJjaCBwcm9jZXNzIGFuZCBhbHdheXMgdXNlcyB0aGUgcnVsZSB0aGF0IHByZWNlZGVzCisgICAgICAgIC8vIGl0IGluIGl0cyBvd24gcnVsZSBzZXQncyBydWxlIGxpc3QgKHRoaXMgaXMgdXNlZCBmb3IgcGxhY2UtdmFsdWUKKyAgICAgICAgLy8gbm90YXRpb25zOiBmb3JtYXRzIHdoZXJlIHlvdSB3YW50IHRvIHNlZSBhIHBhcnRpY3VsYXIgcGFydCBvZgorICAgICAgICAvLyBhIG51bWJlciBldmVuIHdoZW4gaXQncyAwKQorICAgICAgICBlbHNlIGlmIChkZXNjcmlwdGlvbi5jaGFyQXQoMCkgPT0gJz4nKSB7CisgICAgICAgICAgICB0aGlzLnJ1bGVTZXQgPSBydWxlU2V0OyAvLyB3YXMgbnVsbCwgdGhhaSBydWxlcyBhZGRlZCB0byBjb250cm9sIHNwYWNlCisgICAgICAgICAgICB0aGlzLm51bWJlckZvcm1hdCA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBhbmQgb2YgdGhlIGRlc2NyaXB0aW9uIGlzIG5vbmUgb2YgdGhlc2UgdGhpbmdzLCBpdCdzIGEgc3ludGF4IGVycm9yCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBzdWJzdGl0dXRpb24gc3ludGF4Iik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQncyB0aGUgc3Vic3RpdHV0aW9uJ3MgZGl2aXNvci4gIFVzZWQgYnkgTkZSdWxlLnNldEJhc2VWYWx1ZSgpLgorICAgICAqIEEgbm8tb3AgZm9yIGFsbCBzdWJzdGl0dXRpb25zIGV4Y2VwdCBtdWx0aXBsaWVyIGFuZCBtb2R1bHVzCisgICAgICogc3Vic3RpdHV0aW9ucy4KKyAgICAgKiBAcGFyYW0gcmFkaXggVGhlIHJhZGl4IG9mIHRoZSBkaXZpc29yCisgICAgICogQHBhcmFtIGV4cG9uZW50IFRoZSBleHBvbmVudCBvZiB0aGUgZGl2aXNvcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERpdmlzb3IoaW50IHJhZGl4LCBpbnQgZXhwb25lbnQpIHsKKyAgICAgICAgLy8gYSBuby1vcCBmb3IgYWxsIHN1YnN0aXR1dGlvbnMgZXhjZXB0IG11bHRpcGxpZXIgYW5kIG1vZHVsdXMgc3Vic3RpdHV0aW9ucworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBib2lsZXJwbGF0ZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHR3byBzdWJzdGl0dXRpb25zIGZvciBlcXVhbGl0eQorICAgICAqIEBwYXJhbSBUaGUgc3Vic3RpdHV0aW9uIHRvIGNvbXBhcmUgdGhpcyBvbmUgdG8KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHR3byBzdWJzdGl0dXRpb25zIGFyZSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICAvLyBjb21wYXJlIGNsYXNzIGFuZCBhbGwgb2YgdGhlIGZpZWxkcyBhbGwgc3Vic3RpdHV0aW9ucyBoYXZlCisgICAgICAgIC8vIGluIGNvbW1vbgorICAgICAgICBpZiAodGhpcy5nZXRDbGFzcygpID09IHRoYXQuZ2V0Q2xhc3MoKSkgeworICAgICAgICAgICAgTkZTdWJzdGl0dXRpb24gdGhhdDIgPSAoTkZTdWJzdGl0dXRpb24pdGhhdDsKKworICAgICAgICAgICAgcmV0dXJuIHBvcyA9PSB0aGF0Mi5wb3MKKyAgICAgICAgICAgICAgICAmJiAocnVsZVNldCA9PSBudWxsID8gdGhhdDIucnVsZVNldCA9PSBudWxsIDogdHJ1ZSkgLy8gY2FuJ3QgY29tcGFyZSB0cmVlIHN0cnVjdHVyZSwgbm8gLmVxdWFscyBvciByZWN1cnNlCisgICAgICAgICAgICAgICAgJiYgKG51bWJlckZvcm1hdCA9PSBudWxsID8gKHRoYXQyLm51bWJlckZvcm1hdCA9PSBudWxsKSA6IG51bWJlckZvcm1hdC5lcXVhbHModGhhdDIubnVtYmVyRm9ybWF0KSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0ZXh0dWFsIGRlc2NyaXB0aW9uIG9mIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBAcmV0dXJuIEEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiB0aGUgc3Vic3RpdHV0aW9uLiAgVGhpcyBtaWdodAorICAgICAqIG5vdCBiZSBpZGVudGljYWwgdG8gdGhlIGRlc2NyaXB0aW9uIGl0IHdhcyBjcmVhdGVkIGZyb20sIGJ1dAorICAgICAqIGl0J2xsIHByb2R1Y2UgdGhlIHNhbWUgcmVzdWx0LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIC8vIHVzZSB0b2tlbkNoYXIoKSB0byBnZXQgdGhlIGNoYXJhY3RlciBhdCB0aGUgYmVnaW5uaW5nIGFuZAorICAgICAgICAvLyBlbmQgb2YgdGhlIHN1YnN0aXR1dGlvbiB0b2tlbi4gIEluIGJldHdlZW4gdGhlbSB3aWxsIGdvCisgICAgICAgIC8vIGVpdGhlciB0aGUgbmFtZSBvZiB0aGUgcnVsZSBzZXQgaXQgdXNlcywgb3IgdGhlIHBhdHRlcm4gb2YKKyAgICAgICAgLy8gdGhlIERlY2ltYWxGb3JtYXQgaXQgdXNlcworICAgICAgICBpZiAocnVsZVNldCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gdG9rZW5DaGFyKCkgKyBydWxlU2V0LmdldE5hbWUoKSArIHRva2VuQ2hhcigpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRva2VuQ2hhcigpICsgbnVtYmVyRm9ybWF0LnRvUGF0dGVybigpICsgdG9rZW5DaGFyKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm1zIGEgbWF0aGVtYXRpY2FsIG9wZXJhdGlvbiBvbiB0aGUgbnVtYmVyLCBmb3JtYXRzIGl0IHVzaW5nCisgICAgICogZWl0aGVyIHJ1bGVTZXQgb3IgZGVjaW1hbEZvcm1hdCwgYW5kIGluc2VydHMgdGhlIHJlc3VsdCBpbnRvCisgICAgICogdG9JbnNlcnRJbnRvLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHBhcmFtIHRvSW5zZXJ0SW50byBUaGUgc3RyaW5nIHdlIGluc2VydCB0aGUgcmVzdWx0IGludG8KKyAgICAgKiBAcGFyYW0gcG9zIFRoZSBwb3NpdGlvbiBpbiB0b0luc2VydEludG8gd2hlcmUgdGhlIG93bmluZyBydWxlJ3MKKyAgICAgKiBydWxlIHRleHQgYmVnaW5zICh0aGlzIHZhbHVlIGlzIGFkZGVkIHRvIHRoaXMgc3Vic3RpdHV0aW9uJ3MKKyAgICAgKiBwb3NpdGlvbiB0byBkZXRlcm1pbmUgZXhhY3RseSB3aGVyZSB0byBpbnNlcnQgdGhlIG5ldyB0ZXh0KQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvU3Vic3RpdHV0aW9uKGxvbmcgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9JbnNlcnRJbnRvLCBpbnQgcG9zKSB7CisgICAgICAgIGlmIChydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIHBlcmZvcm0gYSB0cmFuc2Zvcm1hdGlvbiBvbiB0aGUgbnVtYmVyIHRoYXQgaXMgZGVwZW5kZW50CisgICAgICAgICAgICAvLyBvbiB0aGUgdHlwZSBvZiBzdWJzdGl0dXRpb24gdGhpcyBpcywgdGhlbiBqdXN0IGNhbGwgaXRzCisgICAgICAgICAgICAvLyBydWxlIHNldCdzIGZvcm1hdCgpIG1ldGhvZCB0byBmb3JtYXQgdGhlIHJlc3VsdAorICAgICAgICAgICAgbG9uZyBudW1iZXJUb0Zvcm1hdCA9IHRyYW5zZm9ybU51bWJlcihudW1iZXIpOworCisgICAgICAgICAgICBydWxlU2V0LmZvcm1hdChudW1iZXJUb0Zvcm1hdCwgdG9JbnNlcnRJbnRvLCBwb3MgKyB0aGlzLnBvcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBvciBwZXJmb3JtIHRoZSB0cmFuc2Zvcm1hdGlvbiBvbiB0aGUgbnVtYmVyIChwcmVzZXJ2aW5nCisgICAgICAgICAgICAvLyB0aGUgcmVzdWx0J3MgZnJhY3Rpb25hbCBwYXJ0IGlmIHRoZSBmb3JtYXR0ZXIgaXQgc2V0CisgICAgICAgICAgICAvLyB0byBzaG93IGl0KSwgdGhlbiB1c2UgdGhhdCBmb3JtYXR0ZXIncyBmb3JtYXQoKSBtZXRob2QKKyAgICAgICAgICAgIC8vIHRvIGZvcm1hdCB0aGUgcmVzdWx0CisgICAgICAgICAgICBkb3VibGUgbnVtYmVyVG9Gb3JtYXQgPSB0cmFuc2Zvcm1OdW1iZXIoKGRvdWJsZSludW1iZXIpOworICAgICAgICAgICAgaWYgKG51bWJlckZvcm1hdC5nZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgbnVtYmVyVG9Gb3JtYXQgPSBNYXRoLmZsb29yKG51bWJlclRvRm9ybWF0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdG9JbnNlcnRJbnRvLmluc2VydChwb3MgKyB0aGlzLnBvcywgbnVtYmVyRm9ybWF0LmZvcm1hdChudW1iZXJUb0Zvcm1hdCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUGVyZm9ybXMgYSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIG9uIHRoZSBudW1iZXIsIGZvcm1hdHMgaXQgdXNpbmcKKyAgICAgKiBlaXRoZXIgcnVsZVNldCBvciBkZWNpbWFsRm9ybWF0LCBhbmQgaW5zZXJ0cyB0aGUgcmVzdWx0IGludG8KKyAgICAgKiB0b0luc2VydEludG8uCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAcGFyYW0gdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgd2UgaW5zZXJ0IHRoZSByZXN1bHQgaW50bworICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIGluIHRvSW5zZXJ0SW50byB3aGVyZSB0aGUgb3duaW5nIHJ1bGUncworICAgICAqIHJ1bGUgdGV4dCBiZWdpbnMgKHRoaXMgdmFsdWUgaXMgYWRkZWQgdG8gdGhpcyBzdWJzdGl0dXRpb24ncworICAgICAqIHBvc2l0aW9uIHRvIGRldGVybWluZSBleGFjdGx5IHdoZXJlIHRvIGluc2VydCB0aGUgbmV3IHRleHQpCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9TdWJzdGl0dXRpb24oZG91YmxlIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICAvLyBwZXJmb3JtIGEgdHJhbnNmb3JtYXRpb24gb24gdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgdGhhdAorICAgICAgICAvLyBpcyBkZXBlbmRlbnQgb24gdGhlIHR5cGUgb2Ygc3Vic3RpdHV0aW9uIHRoaXMgaXMKKyAgICAgICAgZG91YmxlIG51bWJlclRvRm9ybWF0ID0gdHJhbnNmb3JtTnVtYmVyKG51bWJlcik7CisKKyAgICAgICAgLy8gaWYgdGhlIHJlc3VsdCBpcyBhbiBpbnRlZ2VyLCBmcm9tIGhlcmUgb24gb3V0IHdlIHdvcmsgaW4gaW50ZWdlcgorICAgICAgICAvLyBzcGFjZSAoc2F2aW5nIHRpbWUgYW5kIG1lbW9yeSBhbmQgcHJlc2VydmluZyBhY2N1cmFjeSkKKyAgICAgICAgaWYgKG51bWJlclRvRm9ybWF0ID09IE1hdGguZmxvb3IobnVtYmVyVG9Gb3JtYXQpICYmIHJ1bGVTZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgcnVsZVNldC5mb3JtYXQoKGxvbmcpbnVtYmVyVG9Gb3JtYXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworCisgICAgICAgICAgICAvLyBpZiB0aGUgcmVzdWx0IGlzbid0IGFuIGludGVnZXIsIHRoZW4gY2FsbCBlaXRoZXIgb3VyIHJ1bGUgc2V0J3MKKyAgICAgICAgICAgIC8vIGZvcm1hdCgpIG1ldGhvZCBvciBvdXIgRGVjaW1hbEZvcm1hdCdzIGZvcm1hdCgpIG1ldGhvZCB0bworICAgICAgICAgICAgLy8gZm9ybWF0IHRoZSByZXN1bHQKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBydWxlU2V0LmZvcm1hdChudW1iZXJUb0Zvcm1hdCwgdG9JbnNlcnRJbnRvLCBwb3MgKyB0aGlzLnBvcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRvSW5zZXJ0SW50by5pbnNlcnQocG9zICsgdGhpcy5wb3MsIG51bWJlckZvcm1hdC5mb3JtYXQobnVtYmVyVG9Gb3JtYXQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXMgb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0byBwZXJmb3JtIHNvbWUga2luZCBvZgorICAgICAqIG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gb24gdGhlIG51bWJlci4gIFRoZSByZXN1bHQgb2YgdGhpcyBvcGVyYXRpb24KKyAgICAgKiBpcyBmb3JtYXR0ZWQgdXNpbmcgdGhlIHJ1bGUgc2V0IG9yIERlY2ltYWxGb3JtYXQgdGhhdCB0aGlzCisgICAgICogc3Vic3RpdHV0aW9uIHJlZmVycyB0bywgYW5kIHRoZSByZXN1bHQgaXMgaW5zZXJ0ZWQgaW50byB0aGUgcmVzdWx0CisgICAgICogc3RyaW5nLgorICAgICAqIEBwYXJhbSBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gVGhlIHJlc3VsdCBvZiBwZXJmb3JtaW5nIHRoZSBvcHJlcmF0aW9uIG9uIHRoZSBudW1iZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpOworCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIHRvIHBlcmZvcm0gc29tZSBraW5kIG9mCisgICAgICogbWF0aGVtYXRpY2FsIG9wZXJhdGlvbiBvbiB0aGUgbnVtYmVyLiAgVGhlIHJlc3VsdCBvZiB0aGlzIG9wZXJhdGlvbgorICAgICAqIGlzIGZvcm1hdHRlZCB1c2luZyB0aGUgcnVsZSBzZXQgb3IgRGVjaW1hbEZvcm1hdCB0aGF0IHRoaXMKKyAgICAgKiBzdWJzdGl0dXRpb24gcmVmZXJzIHRvLCBhbmQgdGhlIHJlc3VsdCBpcyBpbnNlcnRlZCBpbnRvIHRoZSByZXN1bHQKKyAgICAgKiBzdHJpbmcuCisgICAgICogQHBhcmFtIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiBUaGUgcmVzdWx0IG9mIHBlcmZvcm1pbmcgdGhlIG9wcmVyYXRpb24gb24gdGhlIG51bWJlcgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBkb3VibGUgdHJhbnNmb3JtTnVtYmVyKGRvdWJsZSBudW1iZXIpOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQYXJzZXMgYSBzdHJpbmcgdXNpbmcgdGhlIHJ1bGUgc2V0IG9yIERlY2ltYWxGb3JtYXQgYmVsb25naW5nCisgICAgICogdG8gdGhpcyBzdWJzdGl0dXRpb24uICBJZiB0aGVyZSdzIGEgbWF0Y2gsIGEgbWF0aGVtYXRpY2FsCisgICAgICogb3BlcmF0aW9uICh0aGUgaW52ZXJzZSBvZiB0aGUgb25lIHVzZWQgaW4gZm9ybWF0dGluZykgaXMKKyAgICAgKiBwZXJmb3JtZWQgb24gdGhlIHJlc3VsdCBvZiB0aGUgcGFyc2UgYW5kIHRoZSB2YWx1ZSBwYXNzZWQgaW4KKyAgICAgKiBhbmQgcmV0dXJuZWQgYXMgdGhlIHJlc3VsdC4gIFRoZSBwYXJzZSBwb3NpdGlvbiBpcyB1cGRhdGVkIHRvCisgICAgICogcG9pbnQgdG8gdGhlIGZpcnN0IHVubWF0Y2hlZCBjaGFyYWN0ZXIgaW4gdGhlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgc3RyaW5nIHRvIHBhcnNlCisgICAgICogQHBhcmFtIHBhcnNlUG9zaXRpb24gT24gZW50cnksIGlnbm9yZWQsIGJ1dCBhc3N1bWVkIHRvIGJlIDAuCisgICAgICogT24gZXhpdCwgdGhpcyBpcyB1cGRhdGVkIHRvIHBvaW50IHRvIHRoZSBmaXJzdCB1bm1hdGNoZWQKKyAgICAgKiBjaGFyYWN0ZXIgKG9yIDAgaWYgdGhlIHN1YnN0aXR1dGlvbiBkaWRuJ3QgbWF0Y2gpCisgICAgICogQHBhcmFtIGJhc2VWYWx1ZSBBIHBhcnRpYWwgcGFyc2UgcmVzdWx0IHRoYXQgc2hvdWxkIGJlCisgICAgICogY29tYmluZWQgd2l0aCB0aGUgcmVzdWx0IG9mIHRoaXMgcGFyc2UKKyAgICAgKiBAcGFyYW0gdXBwZXJCb3VuZCBXaGVuIHNlYXJjaGluZyB0aGUgcnVsZSBzZXQgZm9yIGEgcnVsZQorICAgICAqIG1hdGNoaW5nIHRoZSBzdHJpbmcgcGFzc2VkIGluLCBvbmx5IHJ1bGVzIHdpdGggYmFzZSB2YWx1ZXMKKyAgICAgKiBsb3dlciB0aGFuIHRoaXMgYXJlIGNvbnNpZGVyZWQKKyAgICAgKiBAcGFyYW0gbGVuaWVudFBhcnNlIElmIHRydWUgYW5kIG1hdGNoaW5nIGFnYWluc3QgcnVsZXMgZmFpbHMsCisgICAgICogdGhlIHN1YnN0aXR1dGlvbiB3aWxsIGFsc28gdHJ5IG1hdGNoaW5nIHRoZSB0ZXh0IGFnYWluc3QKKyAgICAgKiBudW1lcmFscyB1c2luZyBhIGRlZmF1bHQtY29zdHJ1Y3RlZCBOdW1iZXJGb3JtYXQuICBJZiBmYWxzZSwKKyAgICAgKiBubyBleHRyYSB3b3JrIGlzIGRvbmUuICAoVGhpcyB2YWx1ZSBpcyBmYWxzZSB3aGVuZXZlciB0aGUKKyAgICAgKiBmb3JtYXR0ZXIgaXNuJ3QgaW4gbGVuaWVudC1wYXJzZSBtb2RlLCBidXQgaXMgYWxzbyBmYWxzZQorICAgICAqIHVuZGVyIHNvbWUgY29uZGl0aW9ucyBldmVuIHdoZW4gdGhlIGZvcm1hdHRlciBfaXNfIGluCisgICAgICogbGVuaWVudC1wYXJzZSBtb2RlLikKKyAgICAgKiBAcmV0dXJuIElmIHRoZXJlJ3MgYSBtYXRjaCwgdGhpcyBpcyB0aGUgcmVzdWx0IG9mIGNvbXBvc2luZworICAgICAqIGJhc2VWYWx1ZSB3aXRoIHdoYXRldmVyIHdhcyByZXR1cm5lZCBmcm9tIG1hdGNoaW5nIHRoZQorICAgICAqIGNoYXJhY3RlcnMuICBUaGlzIHdpbGwgYmUgZWl0aGVyIGEgTG9uZyBvciBhIERvdWJsZS4gIElmIHRoZXJlJ3MKKyAgICAgKiBubyBtYXRjaCB0aGlzIGlzIG5ldyBMb25nKDApIChub3QgbnVsbCksIGFuZCBwYXJzZVBvc2l0aW9uCisgICAgICogaXMgbGVmdCB1bmNoYW5nZWQuCisgICAgICovCisgICAgcHVibGljIE51bWJlciBkb1BhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24sIGRvdWJsZSBiYXNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB1cHBlckJvdW5kLCBib29sZWFuIGxlbmllbnRQYXJzZSkgeworICAgICAgICBOdW1iZXIgdGVtcFJlc3VsdDsKKworICAgICAgICAvLyBmaWd1cmUgb3V0IHRoZSBoaWdoZXN0IGJhc2UgdmFsdWUgYSBydWxlIGNhbiBoYXZlIGFuZCBtYXRjaAorICAgICAgICAvLyB0aGUgdGV4dCBiZWluZyBwYXJzZWQgKHRoaXMgdmFyaWVzIGFjY29yZGluZyB0byB0aGUgdHlwZSBvZgorICAgICAgICAvLyBzdWJzdGl0dXRpb25zOiBtdWx0aXBsaWVyLCBtb2R1bHVzLCBhbmQgbnVtZXJhdG9yIHN1YnN0aXR1dGlvbnMKKyAgICAgICAgLy8gcmVzdHJpY3QgdGhlIHNlYXJjaCB0byBydWxlcyB3aXRoIGJhc2UgdmFsdWVzIGxvd2VyIHRoYW4gdGhlaXIKKyAgICAgICAgLy8gb3duOyBzYW1lLXZhbHVlIHN1YnN0aXR1dGlvbnMgbGVhdmUgdGhlIHVwcGVyIGJvdW5kIHdoZXJldmVyCisgICAgICAgIC8vIGl0IHdhcywgYW5kIHRoZSBvdGhlcnMgYWxsb3cgYW55IHJ1bGUgdG8gbWF0Y2gKKyAgICAgICAgdXBwZXJCb3VuZCA9IGNhbGNVcHBlckJvdW5kKHVwcGVyQm91bmQpOworCisgICAgICAgIC8vIHVzZSBvdXIgcnVsZSBzZXQgdG8gcGFyc2UgdGhlIHRleHQuICBJZiB0aGF0IGZhaWxzIGFuZAorICAgICAgICAvLyBsZW5pZW50IHBhcnNpbmcgaXMgZW5hYmxlZCAodGhpcyBpcyBhbHdheXMgZmFsc2UgaWYgdGhlCisgICAgICAgIC8vIGZvcm1hdHRlcidzIGxlbmllbnQtcGFyc2luZyBtb2RlIGlzIG9mZiwgYnV0IGl0IG1heSBhbHNvCisgICAgICAgIC8vIGJlIGZhbHNlIGV2ZW4gd2hlbiB0aGUgZm9ybWF0dGVyJ3MgbGVuaWVudC1wYXJzZSBtb2RlIGlzCisgICAgICAgIC8vIG9uKSwgdGhlbiBhbHNvIHRyeSBwYXJzaW5nIHRoZSB0ZXh0IHVzaW5nIGEgZGVmYXVsdC0KKyAgICAgICAgLy8gY29uc3RydWN0ZWQgTnVtYmVyRm9ybWF0CisgICAgICAgIGlmIChydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRlbXBSZXN1bHQgPSBydWxlU2V0LnBhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIHVwcGVyQm91bmQpOworICAgICAgICAgICAgaWYgKGxlbmllbnRQYXJzZSAmJiAhcnVsZVNldC5pc0ZyYWN0aW9uU2V0KCkgJiYgcGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpID09IDApIHsKKyAgICAgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkucGFyc2UodGV4dCwgcGFyc2VQb3NpdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIC4uLm9yIHVzZSBvdXIgRGVjaW1hbEZvcm1hdCB0byBwYXJzZSB0aGUgdGV4dAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVtcFJlc3VsdCA9IG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBwYXJzZSB3YXMgc3VjY2Vzc2Z1bCwgd2UndmUgYWxyZWFkeSBhZHZhbmNlZCB0aGUgY2FsbGVyJ3MKKyAgICAgICAgLy8gcGFyc2UgcG9zaXRpb24gKHRoaXMgaXMgdGhlIG9uZSBmdW5jdGlvbiB0aGF0IGRvZXNuJ3QgaGF2ZSBvbmUKKyAgICAgICAgLy8gb2YgaXRzIG93bikuICBEZXJpdmUgYSBwYXJzZSByZXN1bHQgYW5kIHJldHVybiBpdCBhcyBhIExvbmcsCisgICAgICAgIC8vIGlmIHBvc3NpYmxlLCBvciBhIERvdWJsZQorICAgICAgICBpZiAocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpICE9IDApIHsKKyAgICAgICAgICAgIGRvdWJsZSByZXN1bHQgPSB0ZW1wUmVzdWx0LmRvdWJsZVZhbHVlKCk7CisKKyAgICAgICAgICAgIC8vIGNvbXBvc2VSdWxlVmFsdWUoKSBwcm9kdWNlcyBhIGZ1bGwgcGFyc2UgcmVzdWx0IGZyb20KKyAgICAgICAgICAgIC8vIHRoZSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbiBmcm9tCisgICAgICAgICAgICAvLyB0aGUgY2FsbGVyICh0aGlzIGlzIGVpdGhlciB0aGUgb3duaW5nIHJ1bGUncyBiYXNlIHZhbHVlCisgICAgICAgICAgICAvLyBvciB0aGUgcGFydGlhbCByZXN1bHQgb2J0YWluZWQgZnJvbSBjb21wb3NpbmcgdGhlCisgICAgICAgICAgICAvLyBvd25pbmcgcnVsZSdzIGJhc2UgdmFsdWUgd2l0aCBpdHMgb3RoZXIgc3Vic3RpdHV0aW9uJ3MKKyAgICAgICAgICAgIC8vIHBhcnNlIHJlc3VsdCkgYW5kIHRoZSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCBvYnRhaW5lZCBieQorICAgICAgICAgICAgLy8gbWF0Y2hpbmcgdGhlIHN1YnN0aXR1dGlvbiAod2hpY2ggd2lsbCBiZSB0aGUgc2FtZSB2YWx1ZQorICAgICAgICAgICAgLy8gdGhlIGNhbGxlciB3b3VsZCBnZXQgYnkgcGFyc2luZyBqdXN0IHRoaXMgcGFydCBvZiB0aGUKKyAgICAgICAgICAgIC8vIHRleHQgd2l0aCBSdWxlQmFzZWROdW1iZXJGb3JtYXQucGFyc2UoKSApLiAgSG93IHRoZSB0d28KKyAgICAgICAgICAgIC8vIHZhbHVlcyBhcmUgdXNlZCB0byBkZXJpdmUgdGhlIGZ1bGwgcGFyc2UgcmVzdWx0IGRlcGVuZHMKKyAgICAgICAgICAgIC8vIG9uIHRoZSB0eXBlcyBvZiBzdWJzdGl0dXRpb25zOiBGb3IgYSByZWd1bGFyIHJ1bGUsIHRoZQorICAgICAgICAgICAgLy8gdWx0aW1hdGUgcmVzdWx0IGlzIGl0cyBtdWx0aXBsaWVyIHN1YnN0aXR1dGlvbidzIHJlc3VsdAorICAgICAgICAgICAgLy8gdGltZXMgdGhlIHJ1bGUncyBkaXZpc29yIChvciB0aGUgcnVsZSdzIGJhc2UgdmFsdWUpIHBsdXMKKyAgICAgICAgICAgIC8vIHRoZSBtb2R1bHVzIHN1YnN0aXR1dGlvbidzIHJlc3VsdCAod2hpY2ggd2lsbCBhY3R1YWxseQorICAgICAgICAgICAgLy8gc3VwZXJzZWRlIHBhcnQgb2YgdGhlIHJ1bGUncyBiYXNlIHZhbHVlKS4gIEZvciBhIG5lZ2F0aXZlLQorICAgICAgICAgICAgLy8gbnVtYmVyIHJ1bGUsIHRoZSByZXN1bHQgaXMgdGhlIG5lZ2F0aXZlIG9mIGl0cyBzdWJzdGl0dXRpb24ncworICAgICAgICAgICAgLy8gcmVzdWx0LiAgRm9yIGEgZnJhY3Rpb24gcnVsZSwgaXQncyB0aGUgc3VtIG9mIGl0cyB0d28KKyAgICAgICAgICAgIC8vIHN1YnN0aXR1dGlvbiByZXN1bHRzLiAgRm9yIGEgcnVsZSBpbiBhIGZyYWN0aW9uIHJ1bGUgc2V0LAorICAgICAgICAgICAgLy8gaXQncyB0aGUgbnVtZXJhdG9yIHN1YnN0aXR1dGlvbidzIHJlc3VsdCBkaXZpZGVkIGJ5CisgICAgICAgICAgICAvLyB0aGUgcnVsZSdzIGJhc2UgdmFsdWUuICBSZXN1bHRzIGZyb20gc2FtZS12YWx1ZSBzdWJzdGl0dXRpb25zCisgICAgICAgICAgICAvLyBwcm9wYWdhdGUgYmFjayB1cGFyZCwgYW5kIG51bGwgc3Vic3RpdHV0aW9ucyBkb24ndCBhZmZlY3QKKyAgICAgICAgICAgIC8vIHRoZSByZXN1bHQuCisgICAgICAgICAgICByZXN1bHQgPSBjb21wb3NlUnVsZVZhbHVlKHJlc3VsdCwgYmFzZVZhbHVlKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gKGxvbmcpcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBMb25nKChsb25nKXJlc3VsdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRG91YmxlKHJlc3VsdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBwYXJzZSB3YXMgVU5zdWNjZXNzZnVsLCByZXR1cm4gMAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRlbXBSZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXJpdmVzIGEgbmV3IHZhbHVlIGZyb20gdGhlIHR3byB2YWx1ZXMgcGFzc2VkIGluLiAgVGhlIHR3byB2YWx1ZXMKKyAgICAgKiBhcmUgdHlwaWNhbGx5IGVpdGhlciB0aGUgYmFzZSB2YWx1ZXMgb2YgdHdvIHJ1bGVzICh0aGUgb25lIGNvbnRhaW5pbmcKKyAgICAgKiB0aGUgc3Vic3RpdHV0aW9uIGFuZCB0aGUgb25lIG1hdGNoaW5nIHRoZSBzdWJzdGl0dXRpb24pIG9yIHBhcnRpYWwKKyAgICAgKiBwYXJzZSByZXN1bHRzIGRlcml2ZWQgaW4gc29tZSBvdGhlciB3YXkuICBUaGUgb3BlcmF0aW9uIGlzIGdlbmVyYWxseQorICAgICAqIHRoZSBpbnZlcnNlIG9mIHRoZSBvcGVyYXRpb24gcGVyZm9ybWVkIGJ5IHRyYW5zZm9ybU51bWJlcigpLgorICAgICAqIEBwYXJhbSBuZXdSdWxlVmFsdWUgVGhlIHZhbHVlIHByb2R1Y2VkIGJ5IG1hdGNoaW5nIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIG9sZFJ1bGVWYWx1ZSBUaGUgdmFsdWUgdGhhdCB3YXMgcGFzc2VkIHRvIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBieSB0aGUgcnVsZSB0aGF0IG93bnMgaXQKKyAgICAgKiBAcmV0dXJuIEEgdGhpcmQgdmFsdWUgZGVyaXZlZCBmcm9tIHRoZSBvdGhlciB0d28sIHJlcHJlc2VudGluZyBhCisgICAgICogcGFydGlhbCBwYXJzZSByZXN1bHQKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGVzIGFuIHVwcGVyIGJvdW5kIHdoZW4gc2VhcmNoaW5nIGZvciBhIHJ1bGUgdGhhdCBtYXRjaGVzCisgICAgICogdGhpcyBzdWJzdGl0dXRpb24uICBSdWxlcyB3aXRoIGJhc2UgdmFsdWVzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbAorICAgICAqIHRvIHVwcGVyQm91bmQgYXJlIG5vdCBjb25zaWRlcmVkLgorICAgICAqIEBwYXJhbSBvbGRVcHBlckJvdW5kIFRoZSBjdXJyZW50IHVwcGVyLWJvdW5kIHNldHRpbmcuICBUaGUgbmV3CisgICAgICogdXBwZXIgYm91bmQgY2FuJ3QgYmUgYW55IGhpZ2hlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgZG91YmxlIGNhbGNVcHBlckJvdW5kKGRvdWJsZSBvbGRVcHBlckJvdW5kKTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaW1wbGUgYWNjZXNzb3JzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc3Vic3RpdHV0aW9uJ3MgcG9zaXRpb24gaW4gdGhlIHJ1bGUgdGhhdCBvd25zIGl0LgorICAgICAqIEByZXR1cm4gVGhlIHN1YnN0aXR1dGlvbidzIHBvc2l0aW9uIGluIHRoZSBydWxlIHRoYXQgb3ducyBpdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFBvcygpIHsKKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjaGFyYWN0ZXIgdXNlZCBpbiB0aGUgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZgorICAgICAqIHN1YnN0aXR1dGlvbnMgb2YgdGhpcyB0eXBlLiAgVXNlZCBieSB0b1N0cmluZygpLgorICAgICAqIEByZXR1cm4gVGhpcyBzdWJzdGl0dXRpb24ncyB0b2tlbiBjaGFyYWN0ZXIuCisgICAgICovCisgICAgYWJzdHJhY3QgY2hhciB0b2tlbkNoYXIoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGlzIGEgbnVsbCBzdWJzdGl0dXRpb24uICAoV2UgZGlkbid0IGRvIHRoaXMKKyAgICAgKiB3aXRoIGluc3RhbmNlb2YgcGFydGlhbGx5IGJlY2F1c2UgaXQgY2F1c2VzIHNvdXJjZSBmaWxlcyB0bworICAgICAqIHByb2xpZmVyYXRlIGFuZCBwYXJ0aWFsbHkgYmVjYXVzZSB3ZSBoYXZlIHRvIHBvcnQgdGhpcyB0byBDKysuKQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIG9iamVjdCBpcyBhbiBpbnN0YW5jZSBvZiBOdWxsU3Vic3RpdHV0aW9uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNOdWxsU3Vic3RpdHV0aW9uKCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgaXMgYSBtb2R1bHVzIHN1YnN0aXR1dGlvbi4gIChXZSBkaWRuJ3QgZG8gdGhpcworICAgICAqIHdpdGggaW5zdGFuY2VvZiBwYXJ0aWFsbHkgYmVjYXVzZSBpdCBjYXVzZXMgc291cmNlIGZpbGVzIHRvCisgICAgICogcHJvbGlmZXJhdGUgYW5kIHBhcnRpYWxseSBiZWNhdXNlIHdlIGhhdmUgdG8gcG9ydCB0aGlzIHRvIEMrKy4pCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgb2JqZWN0IGlzIGFuIGluc3RhbmNlIG9mIE1vZHVsdXNTdWJzdGl0dXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc01vZHVsdXNTdWJzdGl0dXRpb24oKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gU2FtZVZhbHVlU3Vic3RpdHV0aW9uCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IHBhc3NlcyB0aGUgdmFsdWUgcGFzc2VkIHRvIGl0IHRocm91Z2ggdW5jaGFuZ2VkLgorICogUmVwcmVzZW50ZWQgYnkgPT0gaW4gcnVsZSBkZXNjcmlwdGlvbnMuCisgKi8KK2NsYXNzIFNhbWVWYWx1ZVN1YnN0aXR1dGlvbiBleHRlbmRzIE5GU3Vic3RpdHV0aW9uIHsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTE5OTggSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RydWN0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIFNhbWVWYWx1ZVN1YnN0dXRpb24uICBUaGlzIGZ1bmN0aW9uIGp1c3QgdXNlcyB0aGUKKyAgICAgKiBzdXBlcmNsYXNzIGNvbnN0cnVjdG9yLCBidXQgaXQgcGVyZm9ybXMgYSBjaGVjayB0aGF0IHRoaXMKKyAgICAgKiBzdWJzdGl0dXRpb24gZG9lc24ndCBjYWxsIHRoZSBydWxlIHNldCB0aGF0IG93bnMgaXQsIHNpbmNlIHRoYXQKKyAgICAgKiB3b3VsZCBsZWFkIHRvIGluZmluaXRlIHJlY3Vyc2lvbi4KKyAgICAgKi8KKyAgICBTYW1lVmFsdWVTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlU2V0IHJ1bGVTZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmb3JtYXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgICAgICBpZiAoZGVzY3JpcHRpb24uZXF1YWxzKCI9PSIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCI9PSBpcyBub3QgYSBsZWdhbCB0b2tlbiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGZvcm1hdHRpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zICJudW1iZXIiIHVuY2hhbmdlZC4KKyAgICAgKiBAcmV0dXJuICJudW1iZXIiCisgICAgICovCisgICAgcHVibGljIGxvbmcgdHJhbnNmb3JtTnVtYmVyKGxvbmcgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBudW1iZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyAibnVtYmVyIiB1bmNoYW5nZWQuCisgICAgICogQHJldHVybiAibnVtYmVyIgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgdHJhbnNmb3JtTnVtYmVyKGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlcjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gcGFyc2luZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgbmV3UnVsZVZhbHVlIGFuZCBpZ25vcmVzIG9sZFJ1bGVWYWx1ZS4gKFRoZSB2YWx1ZSB3ZSBnb3QKKyAgICAgKiBtYXRjaGluZyB0aGUgc3Vic3RpdHV0aW9uIHN1cGVyc2VkZXMgdGhlIHZhbHVlIG9mIHRoZSBydWxlCisgICAgICogdGhhdCBvd25zIHRoZSBzdWJzdGl0dXRpb24uKQorICAgICAqIEBwYXJhbSBuZXdSdWxlVmFsdWUgVGhlIHZhbHVlIHJlc3VsdGluZyBmcm9tIG1hdGNoaW5nIHRoZSBzdWJzdGl0dWlvbgorICAgICAqIEBwYXJhbSBvbGRSdWxlVmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBydWxlIGNvbnRhaW5pbmcgdGhlCisgICAgICogc3Vic3RpdHV0aW9uLgorICAgICAqIEByZXR1cm4gbmV3UnVsZVZhbHVlCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIG5ld1J1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTYW1lVmFsdWVTdWJzdGl0dXRpb24gZG9lc24ndCBjaGFuZ2UgdGhlIHVwcGVyIGJvdW5kLgorICAgICAqIEBwYXJhbSBvbGRVcHBlckJvdW5kIFRoZSBjdXJyZW50IHVwcGVyIGJvdW5kLgorICAgICAqIEByZXR1cm4gb2xkVXBwZXJCb3VuZAorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgY2FsY1VwcGVyQm91bmQoZG91YmxlIG9sZFVwcGVyQm91bmQpIHsKKyAgICAgICAgcmV0dXJuIG9sZFVwcGVyQm91bmQ7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHNpbXBsZSBhY2Nlc3NvcgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSB0b2tlbiBjaGFyYWN0ZXIgZm9yIGEgU2FtZVZhbHVlU3Vic3RpdHV0aW9uIGlzID0uCisgICAgICogQHJldHVybiAnPScKKyAgICAgKi8KKyAgICBjaGFyIHRva2VuQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICc9JzsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gTXVsdGlwbGllclN1YnN0aXR1dGlvbgorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorICogQSBzdWJzdGl0dXRpb24gdGhhdCBkaXZpZGVzIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIGJ5IHRoZSBydWxlJ3MKKyAqIGRpdmlzb3IgYW5kIGZvcm1hdHMgdGhlIHF1b3RpZW50LiAgUmVwcmVzZW50ZWQgYnkgJmx0OyZsdDsgaW4gbm9ybWFsCisgKiBydWxlcy4KKyAqLworY2xhc3MgTXVsdGlwbGllclN1YnN0aXR1dGlvbiBleHRlbmRzIE5GU3Vic3RpdHV0aW9uIHsKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTE5OTggSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZGF0YSBtZW1iZXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIGRpdmlzb3Igb2YgdGhlIHJ1bGUgdGhhdCBvd25zIHRoaXMgc3Vic3RpdHV0aW9uLgorICAgICAqLworICAgIGRvdWJsZSBkaXZpc29yOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBNdWx0aXBsaWVyU3Vic3RpdHV0aW9uLiAgVGhpcyB1c2VzIHRoZSBzdXBlcmNsYXNzCisgICAgICogY29uc3RydWN0b3IgdG8gaW5pdGlhbGl6ZSBtb3N0IG1lbWJlcnMsIGJ1dCB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqIGFsc28gbWFpbnRhaW5zIGl0cyBvd24gY29weSBvZiBpdHMgcnVsZSdzIGRpdmlzb3IuCisgICAgICogQHBhcmFtIHBvcyBUaGUgc3Vic3RpdHV0aW9uJ3MgcG9zaXRpb24gaW4gaXRzIHJ1bGUncyBydWxlIHRleHQKKyAgICAgKiBAcGFyYW0gZGl2aXNvciBUaGUgb3duaW5nIHJ1bGUncyBkaXZpc29yCisgICAgICogQHJ1bGVTZXQgVGhlIHJ1bGVTZXQgdGhpcyBzdWJzdGl0dXRpb24gdXNlcyB0byBmb3JtYXQgaXRzIHJlc3VsdAorICAgICAqIEBmb3JtYXR0ZXIgVGhlIGZvcm1hdHRlciB0aGF0IG93bnMgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBAZGVzY3JpcHRpb24gVGhlIGRlc2NyaXB0aW9uIGRlc2NyaWJpbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKi8KKyAgICBNdWx0aXBsaWVyU3Vic3RpdHV0aW9uKGludCBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGl2aXNvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworCisgICAgICAgIC8vIHRoZSBvd25pbmcgcnVsZSdzIGRpdmlzb3IgYWZmZWN0cyB0aGUgYmVoYXZpb3Igb2YgdGhpcworICAgICAgICAvLyBzdWJzdGl0dXRpb24uICBSYXRoZXIgdGhhbiBrZWVwaW5nIGEgYmFjay1wb2ludGVyIHRvIHRoZQorICAgICAgICAvLyBydWxlLCB3ZSBrZWVwIGEgY29weSBvZiB0aGUgZGl2aXNvcgorICAgICAgICB0aGlzLmRpdmlzb3IgPSBkaXZpc29yOworCisgICAgaWYgKGRpdmlzb3IgPT0gMCkgeyAvLyB0aGlzIHdpbGwgY2F1c2UgcmVjdXJzaW9uCisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlN1YnN0aXR1dGlvbiB3aXRoIGJhZCBkaXZpc29yICgiICsgZGl2aXNvciArICIpICIgKyBkZXNjcmlwdGlvbi5zdWJzdHJpbmcoMCwgcG9zKSArIAorICAgICAgICAgICAgICAgICAgICAgIiB8ICIgKyBkZXNjcmlwdGlvbi5zdWJzdHJpbmcocG9zKSk7CisgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHN1YnN0aXR1dGlvbidzIGRpdmlzb3IgYmFzZWQgb24gdGhlIHZhbHVlcyBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHJhZGl4IFRoZSByYWRpeCBvZiB0aGUgZGl2aXNvci4KKyAgICAgKiBAcGFyYW0gZXhwb25lbnQgVGhlIGV4cG9uZW50IG9mIHRoZSBkaXZpc29yLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERpdmlzb3IoaW50IHJhZGl4LCBpbnQgZXhwb25lbnQpIHsKKyAgICAgICAgZGl2aXNvciA9IE1hdGgucG93KHJhZGl4LCBleHBvbmVudCk7CisKKyAgICBpZiAoZGl2aXNvciA9PSAwKSB7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIlN1YnN0aXR1dGlvbiB3aXRoIGRpdmlzb3IgMCIpOworICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBdWdtZW50cyB0aGUgc3VwZXJjbGFzcydzIGVxdWFscygpIGZ1bmN0aW9uIGJ5IGNvbXBhcmluZyBkaXZpc29ycy4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgb3RoZXIgc3Vic3RpdHV0aW9uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28gc3Vic3RpdHV0aW9ucyBhcmUgZnVuY3Rpb25hbGx5IGVxdWFsCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KSB7CisgICAgICAgIGlmIChzdXBlci5lcXVhbHModGhhdCkpIHsKKyAgICAgICAgICAgIE11bHRpcGxpZXJTdWJzdGl0dXRpb24gdGhhdDIgPSAoTXVsdGlwbGllclN1YnN0aXR1dGlvbil0aGF0OworCisgICAgICAgICAgICByZXR1cm4gZGl2aXNvciA9PSB0aGF0Mi5kaXZpc29yOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGZvcm1hdHRpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBEaXZpZGVzIHRoZSBudW1iZXIgYnkgdGhlIHJ1bGUncyBkaXZpc29yIGFuZCByZXR1cm5zIHRoZSBxdW90aWVudC4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gIm51bWJlciIgZGl2aWRlZCBieSB0aGUgcnVsZSdzIGRpdmlzb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIChsb25nKU1hdGguZmxvb3IobnVtYmVyIC8gZGl2aXNvcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGl2aWRlcyB0aGUgbnVtYmVyIGJ5IHRoZSBydWxlJ3MgZGl2aXNvciBhbmQgcmV0dXJucyB0aGUgcXVvdGllbnQuCisgICAgICogVGhpcyBpcyBhbiBpbnRlZ3JhbCBxdW90aWVudCBpZiB3ZSdyZSBmaWxsaW5nIGluIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiB1c2luZyBhbm90aGVyIHJ1bGUgc2V0LCBidXQgaXQncyB0aGUgZnVsbCBxdW90aWVudCAoaW50ZWdyYWwgYW5kCisgICAgICogZnJhY3Rpb25hbCBwYXJ0cykgaWYgd2UncmUgZmlsbGluZyBpbiB0aGUgc3Vic3RpdHV0aW9uIHVzaW5nCisgICAgICogYSBEZWNpbWFsRm9ybWF0LiAgKFRoaXMgYWxsb3dzIHRoaW5ncyBzdWNoIGFzICIxLjIgbWlsbGlvbiIuKQorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcmV0dXJuICJudW1iZXIiIGRpdmlkZWQgYnkgdGhlIHJ1bGUncyBkaXZpc29yCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSB0cmFuc2Zvcm1OdW1iZXIoZG91YmxlIG51bWJlcikgeworICAgICAgICBpZiAocnVsZVNldCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyIC8gZGl2aXNvcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bWJlciAvIGRpdmlzb3IpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIG5ld1J1bGVWYWx1ZSB0aW1lcyB0aGUgZGl2aXNvci4gIElnbm9yZXMgb2xkUnVsZVZhbHVlLgorICAgICAqIChUaGUgcmVzdWx0IG9mIG1hdGNoaW5nIGEgPDwgc3Vic3RpdHV0aW9uIHN1cGVyc2VkZXMgdGhlIGJhc2UKKyAgICAgKiB2YWx1ZSBvZiB0aGUgcnVsZSB0aGF0IGNvbnRhaW5zIGl0LikKKyAgICAgKiBAcGFyYW0gbmV3UnVsZVZhbHVlIFRoZSByZXN1bHQgb2YgbWF0Y2hpbmcgdGhlIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBvbGRSdWxlVmFsdWUgVGhlIGJhc2UgdmFsdWUgb2YgdGhlIHJ1bGUgY29udGFpbmluZyB0aGUKKyAgICAgKiBzdWJzdGl0dXRpb24KKyAgICAgKiBAcmV0dXJuIG5ld1J1bGVWYWx1ZSAqIGRpdmlzb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSkgeworICAgICAgICByZXR1cm4gbmV3UnVsZVZhbHVlICogZGl2aXNvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB1cHBlciBib3VuZCBkb3duIHRvIHRoZSBydWxlJ3MgZGl2aXNvci4KKyAgICAgKiBAcGFyYW0gb2xkVXBwZXJCb3VuZCBJZ25vcmVkLgorICAgICAqIEByZXR1cm4gVGhlIHJ1bGUncyBkaXZpc29yLgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgY2FsY1VwcGVyQm91bmQoZG91YmxlIG9sZFVwcGVyQm91bmQpIHsKKyAgICAgICAgcmV0dXJuIGRpdmlzb3I7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHNpbXBsZSBhY2Nlc3NvcgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSB0b2tlbiBjaGFyYWN0ZXIgZm9yIGEgbXVsdGlwbGllciBzdWJzdGl0dXRpb24gaXMgJmx0Oy4KKyAgICAgKiBAcmV0dXJuICcmbHQ7JworICAgICAqLworICAgIGNoYXIgdG9rZW5DaGFyKCkgeworICAgICAgICByZXR1cm4gJzwnOworICAgIH0KK30KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBNb2R1bHVzU3Vic3RpdHV0aW9uCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IGRpdmlkZXMgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgYnkgdGhlIGl0cyBydWxlJ3MKKyAqIGRpdmlzb3IgYW5kIGZvcm1hdHMgdGhlIHJlbWFpbmRlci4gIFJlcHJlc2VudGVkIGJ5ICImZ3Q7Jmd0OyIgaW4gYQorICogcmVndWxhciBydWxlLgorICovCitjbGFzcyBNb2R1bHVzU3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgZGl2aXNvciBvZiB0aGUgcnVsZSBvd25pbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKi8KKyAgICBkb3VibGUgZGl2aXNvcjsKKworICAgIC8qKgorICAgICAqIElmIHRoaXMgaXMgYSAmZ3Q7Jmd0OyZndDsgc3Vic3RpdHV0aW9uLCB0aGUgcnVsZSB0byB1c2UgdG8gZm9ybWF0CisgICAgICogdGhlIHN1YnN0aXR1dGlvbiB2YWx1ZS4gIE90aGVyd2lzZSwgbnVsbC4KKyAgICAgKi8KKyAgICBORlJ1bGUgcnVsZVRvVXNlOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBNb2R1bHVzU3Vic3R1dGlvbi4gIEluIGFkZGl0aW9uIHRvIHRoZSBpbmhlcml0ZWQKKyAgICAgKiBtZW1iZXJzLCBhIE1vZHVsdXNTdWJzdGl0dXRpb24ga2VlcHMgdHJhY2sgb2YgdGhlIGRpdmlzb3Igb2YgdGhlCisgICAgICogcnVsZSB0aGF0IG93bnMgaXQsIGFuZCBtYXkgYWxzbyBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBydWxlCisgICAgICogdGhhdCBwcmVjZWRlcyB0aGUgcnVsZSBjb250YWluaW5nIHRoaXMgc3Vic3RpdHV0aW9uIGluIHRoZSBydWxlCisgICAgICogc2V0J3MgcnVsZSBsaXN0LgorICAgICAqIEBwYXJhbSBwb3MgVGhlIHN1YnN0aXR1dGlvbidzIHBvc2l0aW9uIGluIGl0cyBydWxlJ3MgcnVsZSB0ZXh0CisgICAgICogQHBhcmFtIGRpdmlzb3IgVGhlIGRpdmlzb3Igb2YgdGhlIHJ1bGUgdGhhdCBvd25zIHRoaXMgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIHJ1bGVQcmVkZWNlc3NvciBUaGUgcnVsZSB0aGF0IHByZWNlZGVzIHRoaXMgc3Vic3RpdHV0aW9uJ3MKKyAgICAgKiBydWxlIGluIGl0cyBydWxlIHNldCdzIHJ1bGUgbGlzdAorICAgICAqIEBwYXJhbSBmb3JtYXR0ZXIgVGhlIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBvd25pbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIGRlc2NyaXB0aW9uIGZvciB0aGlzIHN1YnN0aXR1dGlvbgorICAgICAqLworICAgIE1vZHVsdXNTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkaXZpc29yLAorICAgICAgICAgICAgICAgICAgICAgICAgTkZSdWxlIHJ1bGVQcmVkZWNlc3NvciwKKyAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworCisgICAgICAgIC8vIHRoZSBvd25pbmcgcnVsZSdzIGRpdmlzb3IgY29udHJvbHMgdGhlIGJlaGF2aW9yIG9mIHRoaXMKKyAgICAgICAgLy8gc3Vic3RpdHV0aW9uOiByYXRoZXIgdGhhbiBrZWVwaW5nIGEgYmFja3BvaW50ZXIgdG8gdGhlIHJ1bGUsCisgICAgICAgIC8vIHdlIGtlZXAgYSBjb3B5IG9mIHRoZSBkaXZpc29yCisgICAgICAgIHRoaXMuZGl2aXNvciA9IGRpdmlzb3I7CisKKyAgICBpZiAoZGl2aXNvciA9PSAwKSB7IC8vIHRoaXMgd2lsbCBjYXVzZSByZWN1cnNpb24KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiU3Vic3RpdHV0aW9uIHdpdGggYmFkIGRpdmlzb3IgKCIgKyBkaXZpc29yICsgIikgIisgZGVzY3JpcHRpb24uc3Vic3RyaW5nKDAsIHBvcykgKyAKKyAgICAgICAgICAgICAgICAgICAgICIgfCAiICsgZGVzY3JpcHRpb24uc3Vic3RyaW5nKHBvcykpOworICAgIH0KKworICAgICAgICAvLyB0aGUgPj4+IHRva2VuIGRvZXNuJ3QgYWx0ZXIgaG93IHRoaXMgc3Vic3RpdHVpb24gY2FsY3VsYXRlcyB0aGUKKyAgICAgICAgLy8gdmFsdWVzIGl0IHVzZXMgZm9yIGZvcm1hdHRpbmcgYW5kIHBhcnNpbmcsIGJ1dCBpdCBjaGFuZ2VzCisgICAgICAgIC8vIHdoYXQncyBkb25lIHdpdGggdGhhdCB2YWx1ZSBhZnRlciBpdCdzIG9idGFpbmVkOiA+Pj4gc2hvcnQtCisgICAgICAgIC8vIGNpcmN1aXRzIHRoZSBydWxlLXNlYXJjaCBwcm9jZXNzIGFuZCBnb2VzIHN0cmFpZ2h0IHRvIHRoZQorICAgICAgICAvLyBzcGVjaWZpZWQgcnVsZSB0byBmb3JtYXQgdGhlIHN1YnN0aXR1dGlvbiB2YWx1ZQorICAgICAgICBpZiAoZGVzY3JpcHRpb24uZXF1YWxzKCI+Pj4iKSkgeworICAgICAgICAgICAgcnVsZVRvVXNlID0gcnVsZVByZWRlY2Vzc29yOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcnVsZVRvVXNlID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2VzIHRoZSBzdWJzdGl0dXRpb24ncyBkaXZpc29yIGNvbmZvcm0gdG8gdGhhdCBvZiB0aGUgcnVsZQorICAgICAqIHRoYXQgb3ducyBpdC4gIFVzZWQgd2hlbiB0aGUgZGl2aXNvciBpcyBkZXRlcm1pbmVkIGFmdGVyIGNyZWF0aW9uLgorICAgICAqIEBwYXJhbSByYWRpeCBUaGUgcmFkaXggb2YgdGhlIGRpdnNvci4KKyAgICAgKiBAcGFyYW0gZXhwb25lbnQgVGhlIGV4cG9uZW50IG9mIHRoZSBkaXZpc29yLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERpdmlzb3IoaW50IHJhZGl4LCBpbnQgZXhwb25lbnQpIHsKKyAgICAgICAgZGl2aXNvciA9IE1hdGgucG93KHJhZGl4LCBleHBvbmVudCk7CisKKyAgICBpZiAoZGl2aXNvciA9PSAwKSB7IC8vIHRoaXMgd2lsbCBjYXVzZSByZWN1cnNpb24KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiU3Vic3RpdHV0aW9uIHdpdGggYmFkIGRpdmlzb3IiKTsKKyAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGJvaWxlcnBsYXRlCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQXVnbWVudHMgdGhlIGluaGVyaXRlZCBlcXVhbHMoKSBmdW5jdGlvbiBieSBjb21wYXJpbmcgZGl2aXNvcnMgYW5kCisgICAgICogcnVsZVRvVXNlLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBvdGhlciBzdWJzdGl0dXRpb24KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHR3byBzdWJzdGl0dXRpb25zIGFyZSBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICBpZiAoc3VwZXIuZXF1YWxzKHRoYXQpKSB7CisgICAgICAgICAgICBNb2R1bHVzU3Vic3RpdHV0aW9uIHRoYXQyID0gKE1vZHVsdXNTdWJzdGl0dXRpb24pdGhhdDsKKworICAgICAgICAgICAgcmV0dXJuIGRpdmlzb3IgPT0gdGhhdDIuZGl2aXNvcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogSWYgdGhpcyBpcyBhICZndDsmZ3Q7Jmd0OyBzdWJzdGl0dXRpb24sIHVzZSBydWxlVG9Vc2UgdG8gZmlsbCBpbgorICAgICAqIHRoZSBzdWJzdGl0dXRpb24uICBPdGhlcndpc2UsIGp1c3QgdXNlIHRoZSBzdXBlcmNsYXNzIGZ1bmN0aW9uLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgdG8gaW5zZXJ0IHRoZSByZXN1bHQgb2YgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBpbnRvCisgICAgICogQHBhcmFtIHBvcyBUaGUgcG9zaXRpb24gb2YgdGhlIHJ1bGUgdGV4dCBpbiB0b0luc2VydEludG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1N1YnN0aXR1dGlvbihsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICAvLyBpZiB0aGlzIGlzbid0IGEgPj4+IHN1YnN0aXR1dGlvbiwganVzdCB1c2UgdGhlIGluaGVyaXRlZCB2ZXJzaW9uCisgICAgICAgIC8vIG9mIHRoaXMgZnVuY3Rpb24gKHdoaWNoIHVzZXMgZWl0aGVyIGEgcnVsZSBzZXQgb3IgYSBEZWNpbWFsRm9ybWF0CisgICAgICAgIC8vIHRvIGZvcm1hdCBpdHMgc3Vic3RpdHV0aW9uIHZhbHVlKQorICAgICAgICBpZiAocnVsZVRvVXNlID09IG51bGwpIHsKKyAgICAgICAgICAgIHN1cGVyLmRvU3Vic3RpdHV0aW9uKG51bWJlciwgdG9JbnNlcnRJbnRvLCBwb3MpOworCisgICAgICAgIC8vIGEgPj4+IHN1YnN0aXR1dGlvbiBnb2VzIHN0cmFpZ2h0IHRvIGEgcGFydGljdWxhciBydWxlIHRvCisgICAgICAgIC8vIGZvcm1hdCB0aGUgc3Vic3RpdHV0aW9uIHZhbHVlCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb25nIG51bWJlclRvRm9ybWF0ID0gdHJhbnNmb3JtTnVtYmVyKG51bWJlcik7CisgICAgICAgICAgICBydWxlVG9Vc2UuZG9Gb3JtYXQobnVtYmVyVG9Gb3JtYXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSWYgdGhpcyBpcyBhICZndDsmZ3Q7Jmd0OyBzdWJzdGl0dXRpb24sIHVzZSBydWxlVG9Vc2UgdG8gZmlsbCBpbgorICAgICAqIHRoZSBzdWJzdGl0dXRpb24uICBPdGhlcndpc2UsIGp1c3QgdXNlIHRoZSBzdXBlcmNsYXNzIGZ1bmN0aW9uLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgdG8gaW5zZXJ0IHRoZSByZXN1bHQgb2YgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKiBpbnRvCisgICAgICogQHBhcmFtIHBvcyBUaGUgcG9zaXRpb24gb2YgdGhlIHJ1bGUgdGV4dCBpbiB0b0luc2VydEludG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1N1YnN0aXR1dGlvbihkb3VibGUgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9JbnNlcnRJbnRvLCBpbnQgcG9zKSB7CisgICAgICAgIC8vIGlmIHRoaXMgaXNuJ3QgYSA+Pj4gc3Vic3RpdHV0aW9uLCBqdXN0IHVzZSB0aGUgaW5oZXJpdGVkIHZlcnNpb24KKyAgICAgICAgLy8gb2YgdGhpcyBmdW5jdGlvbiAod2hpY2ggdXNlcyBlaXRoZXIgYSBydWxlIHNldCBvciBhIERlY2ltYWxGb3JtYXQKKyAgICAgICAgLy8gdG8gZm9ybWF0IGl0cyBzdWJzdGl0dXRpb24gdmFsdWUpCisgICAgICAgIGlmIChydWxlVG9Vc2UgPT0gbnVsbCkgeworICAgICAgICAgICAgc3VwZXIuZG9TdWJzdGl0dXRpb24obnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisKKyAgICAgICAgLy8gYSA+Pj4gc3Vic3RpdHV0aW9uIGdvZXMgc3RyYWlnaHQgdG8gYSBwYXJ0aWN1bGFyIHJ1bGUgdG8KKyAgICAgICAgLy8gZm9ybWF0IHRoZSBzdWJzdGl0dXRpb24gdmFsdWUKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRvdWJsZSBudW1iZXJUb0Zvcm1hdCA9IHRyYW5zZm9ybU51bWJlcihudW1iZXIpOworCisgICAgICAgICAgICBydWxlVG9Vc2UuZG9Gb3JtYXQobnVtYmVyVG9Gb3JtYXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGl2aWRlcyB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCBieSB0aGUgcnVsZSdzIGRpdmlzb3IgYW5kCisgICAgICogcmV0dXJucyB0aGUgcmVtYWluZGVyLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcmV0dXJuICJudW1iZXIiIG1vZCBkaXZpc29yCisgICAgICovCisgICAgcHVibGljIGxvbmcgdHJhbnNmb3JtTnVtYmVyKGxvbmcgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiAobG9uZylNYXRoLmZsb29yKG51bWJlciAlIGRpdmlzb3IpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERpdmlkZXMgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgYnkgdGhlIHJ1bGUncyBkaXZpc29yIGFuZAorICAgICAqIHJldHVybnMgdGhlIHJlbWFpbmRlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiAibnVtYmVyIiBtb2QgZGl2aXNvcgorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgdHJhbnNmb3JtTnVtYmVyKGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IobnVtYmVyICUgZGl2aXNvcik7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBJZiB0aGlzIGlzIGEgJmd0OyZndDsmZ3Q7IHN1YnN0aXR1dGlvbiwgbWF0Y2ggb25seSBhZ2FpbnN0IHJ1bGVUb1VzZS4KKyAgICAgKiBPdGhlcndpc2UsIHVzZSB0aGUgc3VwZXJjbGFzcyBmdW5jdGlvbi4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgc3RyaW5nIHRvIHBhcnNlCisgICAgICogQHBhcmFtIHBhcnNlUG9zaXRpb24gSWdub3JlZCBvbiBlbnRyeSwgdXBkYXRlZCBvbiBleGl0IHRvIHBvaW50IHRvCisgICAgICogdGhlIGZpcnN0IHVubWF0Y2hlZCBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIGJhc2VWYWx1ZSBUaGUgcGFydGlhbCBwYXJzZSByZXN1bHQgcHJpb3IgdG8gY2FsbGluZyB0aGlzCisgICAgICogcm91dGluZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyIGRvUGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbiwgZG91YmxlIGJhc2VWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB1cHBlckJvdW5kLCBib29sZWFuIGxlbmllbnRQYXJzZSkgeworICAgICAgICAvLyBpZiB0aGlzIGlzbid0IGEgPj4+IHN1YnN0aXR1dGlvbiwgd2UgY2FuIGp1c3QgdXNlIHRoZQorICAgICAgICAvLyBpbmhlcml0ZWQgcGFyc2UoKSByb3V0aW5lIHRvIGRvIHRoZSBwYXJzaW5nCisgICAgICAgIGlmIChydWxlVG9Vc2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmRvUGFyc2UodGV4dCwgcGFyc2VQb3NpdGlvbiwgYmFzZVZhbHVlLCB1cHBlckJvdW5kLCBsZW5pZW50UGFyc2UpOworCisgICAgICAgIC8vIGJ1dCBpZiBpdCBJUyBhID4+PiBzdWJzdGl0dXRpb24sIHdlIGhhdmUgdG8gZG8gaXQgaGVyZTogd2UKKyAgICAgICAgLy8gdXNlIHRoZSBzcGVjaWZpYyBydWxlJ3MgZG9QYXJzZSgpIG1ldGhvZCwgYW5kIHRoZW4gd2UgaGF2ZSB0bworICAgICAgICAvLyBkbyBzb21lIG9mIHRoZSBvdGhlciB3b3JrIG9mIE5GUnVsZVNldC5wYXJzZSgpCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBOdW1iZXIgdGVtcFJlc3VsdCA9IHJ1bGVUb1VzZS5kb1BhcnNlKHRleHQsIHBhcnNlUG9zaXRpb24sIGZhbHNlLCB1cHBlckJvdW5kKTsKKworICAgICAgICAgICAgaWYgKHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgZG91YmxlIHJlc3VsdCA9IHRlbXBSZXN1bHQuZG91YmxlVmFsdWUoKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNvbXBvc2VSdWxlVmFsdWUocmVzdWx0LCBiYXNlVmFsdWUpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gKGxvbmcpcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTG9uZygobG9uZylyZXN1bHQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRG91YmxlKHJlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGVtcFJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGhpZ2hlc3QgbXVsdGlwbGUgb2YgdGhlIHJ1bGUncyBkaXZpc29yIHRoYXQgaXRzIGxlc3MKKyAgICAgKiB0aGFuIG9yIGVxdWFsIHRvIG9sZFJ1bGVWYWx1ZSwgcGx1cyBuZXdSdWxlVmFsdWUuICAoVGhlIHJlc3VsdAorICAgICAqIGlzIHRoZSBzdW0gb2YgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb24gcGx1cyB0aGUKKyAgICAgKiBiYXNlIHZhbHVlb2YgdGhlIHJ1bGUgY29udGFpbmluZyB0aGUgc3Vic3RpdHV0aW9uLCBidXQgaWYgdGhlCisgICAgICogb3duaW5nIHJ1bGUncyBiYXNlIHZhbHVlIGlzbid0IGFuIGV2ZW4gbXVsdGlwbGUgb2YgaXRzIGRpdmlzb3IsCisgICAgICogd2UgaGF2ZSB0byByb3VuZCBpdCBkb3duIHRvIGEgbXVsdGlwbGUgb2YgdGhlIGRpdmlzb3IsIG9yIHdlCisgICAgICogZ2V0IHVud2FudGVkIGRpZ2l0cyBpbiB0aGUgcmVzdWx0LikKKyAgICAgKiBAcGFyYW0gbmV3UnVsZVZhbHVlIFRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIG9sZFJ1bGVWYWx1ZSBUaGUgYmFzZSB2YWx1ZSBvZiB0aGUgcnVsZSBjb250YWluaW5nIHRoZQorICAgICAqIHN1YnN0aXR1dGlvbgorICAgICAqIEByZXR1cm4gKG9sZFJ1bGVWYWx1ZSAtIChvbGRSdWxlVmFsdWUgJSBkaXZpc29yKSkgKyBuZXdSdWxlVmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSkgeworICAgICAgICByZXR1cm4gKG9sZFJ1bGVWYWx1ZSAtIChvbGRSdWxlVmFsdWUgJSBkaXZpc29yKSkgKyBuZXdSdWxlVmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdXBwZXIgYm91bmQgZG93biB0byB0aGUgb3duaW5nIHJ1bGUncyBkaXZpc29yCisgICAgICogQHBhcmFtIG9sZFVwcGVyQm91bmQgSWdub3JlZAorICAgICAqIEByZXR1cm4gVGhlIG93bmluZyBydWxlJ3MgZHZpc29yCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjYWxjVXBwZXJCb3VuZChkb3VibGUgb2xkVXBwZXJCb3VuZCkgeworICAgICAgICByZXR1cm4gZGl2aXNvcjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29ycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZS4gIFRoaXMgX2lzXyBhIE1vZHVsdXNTdWJzdGl0dXRpb24uCisgICAgICogQHJldHVybiB0cnVlCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2R1bHVzU3Vic3RpdHV0aW9uKCkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgdG9rZW4gY2hhcmFjdGVyIG9mIGEgTW9kdWx1c1N1YnN0aXR1dGlvbiBpcyAmZ3Q7LgorICAgICAqIEByZXR1cm4gJyZndDsnCisgICAgICovCisgICAgY2hhciB0b2tlbkNoYXIoKSB7CisgICAgICAgIHJldHVybiAnPic7CisgICAgfQorfQorCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIEludGVncmFsUGFydFN1YnN0aXR1dGlvbgorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorICogQSBzdWJzdGl0dXRpb24gdGhhdCBmb3JtYXRzIHRoZSBudW1iZXIncyBpbnRlZ3JhbCBwYXJ0LiAgVGhpcyBpcworICogcmVwcmVzZW50ZWQgYnkgJmx0OyZsdDsgaW4gYSBmcmFjdGlvbiBydWxlLgorICovCitjbGFzcyBJbnRlZ3JhbFBhcnRTdWJzdGl0dXRpb24gZXh0ZW5kcyBORlN1YnN0aXR1dGlvbiB7CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uLiAgVGhpcyBqdXN0IGNhbGxzCisgICAgICogdGhlIHN1cGVyY2xhc3MgY29uc3RydWN0b3IuCisgICAgICovCisgICAgSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uKGludCBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgc3VwZXIocG9zLCBydWxlU2V0LCBmb3JtYXR0ZXIsIGRlc2NyaXB0aW9uKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlcidzIGludGVncmFsIHBhcnQuIChGb3IgYSBsb25nLCB0aGF0J3MganVzdCB0aGUKKyAgICAgKiBudW1iZXIgdW5jaGFuZ2VkLikKKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiAibnVtYmVyIiB1bmNoYW5nZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIG51bWJlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIncyBpbnRlZ3JhbCBwYXJ0LgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIGludGVncmFsIHBhcnQgb2YgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcmV0dXJuIGZsb29yKG51bWJlcikKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bWJlcik7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzdW0gb2YgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb24gYW5kIHRoZQorICAgICAqIG93bmluZyBydWxlJ3MgYmFzZSB2YWx1ZS4gIChUaGUgb3duaW5nIHJ1bGUsIGF0IGJlc3QsIGhhcyBhbgorICAgICAqIGludGVncmFsLXBhcnQgc3Vic3RpdHV0aW9uIGFuZCBhIGZyYWN0aW9uYWwtcGFydCBzdWJzdGl0dXRpb24sCisgICAgICogc28gd2UgY2FuIHNhZmVseSBqdXN0IGFkZCB0aGVtLikKKyAgICAgKiBAcGFyYW0gbmV3UnVsZVZhbHVlIFRoZSByZXN1bHQgb2YgbWF0Y2hpbmcgdGhlIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBvbGRSdWxlVmFsdWUgVGhlIHBhcnRpYWwgcmVzdWx0IG9mIHRoZSBwYXJzZSBwcmlvciB0bworICAgICAqIGNhbGxpbmcgdGhpcyBmdW5jdGlvbgorICAgICAqIEByZXR1cm4gb2xkUnVsZVZhbHVlICsgbmV3UnVsZVZhbHVlCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIG5ld1J1bGVWYWx1ZSArIG9sZFJ1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbiBJbnRlZ3JhbFBhcnRTdWJzdGl0dXRpb24gc2V0cyB0aGUgdXBwZXIgYm91bmQgYmFjayB1cCBzbyBhbGwKKyAgICAgKiBwb3RlbnRpYWxseSBtYXRjaGluZyBydWxlcyBhcmUgY29uc2lkZXJlZC4KKyAgICAgKiBAcGFyYW0gb2xkVXBwZXJCb3VuZCBJZ25vcmVkCisgICAgICogQHJldHVybiBEb3VibGUuTUFYX1ZBTFVFCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjYWxjVXBwZXJCb3VuZChkb3VibGUgb2xkVXBwZXJCb3VuZCkgeworICAgICAgICByZXR1cm4gRG91YmxlLk1BWF9WQUxVRTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29yCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQW4gSW50ZWdyYWxQYXJ0U3Vic3RpdHV0aW9uJ3MgdG9rZW4gY2hhcmFjdGVyIGlzICZsdDsKKyAgICAgKiBAcmV0dXJuICcmbHQ7JworICAgICAqLworICAgIGNoYXIgdG9rZW5DaGFyKCkgeworICAgICAgICByZXR1cm4gJzwnOworICAgIH0KK30KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBGcmFjdGlvbmFsUGFydFN1YnN0aXR1dGlvbgorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorICogQSBzdWJzdGl0dXRpb24gdGhhdCBmb3JtYXRzIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgYSBudW1iZXIuICBUaGlzIGlzCisgKiByZXByZXNlbnRlZCBieSAmZ3Q7Jmd0OyBpbiBhIGZyYWN0aW9uIHJ1bGUuCisgKi8KK2NsYXNzIEZyYWN0aW9uYWxQYXJ0U3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiB0cnVlIGlmIHRoaXMgc3Vic3RpdHV0aW9uIHNob3VsZCBoYXZlIHRoZSBkZWZhdWx0ICJieSBkaWdpdHMiCisgICAgICogYmVoYXZpb3IsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBieURpZ2l0cyA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogdHJ1ZSBpZiB3ZSBhdXRvbWF0aWNhbGx5IGluc2VydCBzcGFjZXMgdG8gc2VwYXJhdGUgbmFtZXMgb2YgZGlnaXRzCisgICAgICogc2V0IHRvIGZhbHNlIGJ5ICc+Pj4nIGluIGZyYWN0aW9uIHJ1bGVzLCB1c2VkIGJ5IFRoYWkuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIHVzZVNwYWNlcyA9IHRydWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbGFyZ2VzdCBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50IHRoYXQgdGhpcworICAgICAqIG9iamVjdCB3aWxsIHNob3cgaW4gImJ5IGRpZ2l0cyIgbW9kZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhERUNJTUFMRElHSVRTID0gMTg7IC8vIDgKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24uICBUaGlzIG9iamVjdCBrZWVwcyBhIGZsYWcKKyAgICAgKiB0ZWxsaW5nIHdoZXRoZXIgaXQgc2hvdWxkIGZvcm1hdCBieSBkaWdpdHMgb3Igbm90LiAgSW4gYWRkaXRpb24sCisgICAgICogaXQgbWFya3MgdGhlIHJ1bGUgc2V0IGl0IGNhbGxzIChpZiBhbnkpIGFzIGEgZnJhY3Rpb24gcnVsZSBzZXQuCisgICAgICovCisgICAgRnJhY3Rpb25hbFBhcnRTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGVTZXQgcnVsZVNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworLy8gICAgYm9vbGVhbiBjaGV2cm9uID0gZGVzY3JpcHRpb24uc3RhcnRzV2l0aCgiPj4iKSB8fCBydWxlU2V0ID09IHRoaXMucnVsZVNldDsKKy8vICAgICAgaWYgKGNoZXZyb24gfHwgcnVsZVNldCA9PSB0aGlzLnJ1bGVTZXQpIHsKKworICAgICAgICBpZiAoZGVzY3JpcHRpb24uZXF1YWxzKCI+PiIpIHx8IGRlc2NyaXB0aW9uLmVxdWFscygiPj4+IikgfHwgcnVsZVNldCA9PSB0aGlzLnJ1bGVTZXQpIHsKKyAgICAgICAgICAgIGJ5RGlnaXRzID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChkZXNjcmlwdGlvbi5lcXVhbHMoIj4+PiIpKSB7CisgICAgICAgICAgICAgIHVzZVNwYWNlcyA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5ydWxlU2V0Lm1ha2VJbnRvRnJhY3Rpb25SdWxlU2V0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIElmIGluICJieSBkaWdpdHMiIG1vZGUsIGZpbGxzIGluIHRoZSBzdWJzdGl0dXRpb24gb25lIGRlY2ltYWwgZGlnaXQKKyAgICAgKiBhdCBhIHRpbWUgdXNpbmcgdGhlIHJ1bGUgc2V0IGNvbnRhaW5pbmcgdGhpcyBzdWJzdGl0dXRpb24uCisgICAgICogT3RoZXJ3aXNlLCB1c2VzIHRoZSBzdXBlcmNsYXNzIGZ1bmN0aW9uLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQKKyAgICAgKiBAcGFyYW0gdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgdG8gaW5zZXJ0IHRoZSByZXN1bHQgb2YgZm9ybWF0dGluZworICAgICAqIHRoZSBzdWJzdGl0dXRpb24gaW50bworICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIG9mIHRoZSBvd25pbmcgcnVsZSdzIHJ1bGUgdGV4dCBpbgorICAgICAqIHRvSW5zZXJ0SW50bworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvU3Vic3RpdHV0aW9uKGRvdWJsZSBudW1iZXIsIFN0cmluZ0J1ZmZlciB0b0luc2VydEludG8sIGludCBwb3MpIHsKKyAgICAgICAgLy8gaWYgd2UncmUgbm90IGluICJieURpZ2l0cyIgbW9kZSwganVzdCB1c2UgdGhlIGluaGVyaXRlZAorICAgICAgICAvLyBkb1N1YnN0aXR1dGlvbigpIHJvdXRpbmUKKyAgICAgICAgaWYgKCFieURpZ2l0cykgeworICAgICAgICAgICAgc3VwZXIuZG9TdWJzdGl0dXRpb24obnVtYmVyLCB0b0luc2VydEludG8sIHBvcyk7CisKKyAgICAgICAgLy8gaWYgd2UncmUgaW4gImJ5RGlnaXRzIiBtb2RlLCB0cmFuc2Zvcm0gdGhlIHZhbHVlIGludG8gYW4gaW50ZWdlcgorICAgICAgICAvLyBieSBtb3ZpbmcgdGhlIGRlY2ltYWwgcG9pbnQgZWlnaHQgcGxhY2VzIHRvIHRoZSByaWdodCBhbmQKKyAgICAgICAgLy8gcHVsbGluZyBkaWdpdHMgb2ZmIHRoZSByaWdodCBvbmUgYXQgYSB0aW1lLCBmb3JtYXR0aW5nIGVhY2ggZGlnaXQKKyAgICAgICAgLy8gYXMgYW4gaW50ZWdlciB1c2luZyB0aGlzIHN1YnN0aXR1dGlvbidzIG93bmluZyBydWxlIHNldAorICAgICAgICAvLyAodGhpcyBpcyBzbG93ZXIsIGJ1dCBtb3JlIGFjY3VyYXRlLCB0aGFuIGRvaW5nIGl0IGZyb20gdGhlCisgICAgICAgIC8vIG90aGVyIGVuZCkKKyAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICBpbnQgbnVtYmVyVG9Gb3JtYXQgPSAoaW50KU1hdGgucm91bmQodHJhbnNmb3JtTnVtYmVyKG51bWJlcikgKiBNYXRoLnBvdygKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAsIE1BWERFQ0lNQUxESUdJVFMpKTsKKy8vICAgICAgICBsb25nIG51bWJlclRvRm9ybWF0ID0gKGxvbmcpTWF0aC5yb3VuZCh0cmFuc2Zvcm1OdW1iZXIobnVtYmVyKSAqIE1hdGgucG93KDEwLCBNQVhERUNJTUFMRElHSVRTKSk7CisKKyAgICAgICAgLy8ganVzdCBwcmludCB0byBzdHJpbmcgYW5kIHRoZW4gdXNlIHRoYXQKKyAgICAgICAgRGlnaXRMaXN0IGRsID0gbmV3IERpZ2l0TGlzdCgpOworICAgICAgICBkbC5zZXQobnVtYmVyLCAyMCwgdHJ1ZSk7CisKKyAgICAgICAgICAgIC8vIHRoaXMgZmxhZyBrZWVwcyB1cyBmcm9tIGZvcm1hdHRpbmcgdHJhaWxpbmcgemVyb3MuICBJdCBzdGFydHMKKyAgICAgICAgICAgIC8vIG91dCBmYWxzZSBiZWNhdXNlIHdlJ3JlIHB1bGxpbmcgZnJvbSB0aGUgcmlnaHQsIGFuZCBzd2l0Y2hlcworICAgICAgICAgICAgLy8gdG8gdHJ1ZSB0aGUgZmlyc3QgdGltZSB3ZSBlbmNvdW50ZXIgYSBub24temVybyBkaWdpdAorLy8gICAgICAgICAgICAgIGJvb2xlYW4gZG9aZXJvcyA9IGZhbHNlOworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjbGFzczogIiArIGdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigibnVtYmVyOiAiICsgbnVtYmVyICsgIiB0cmFuc2Zvcm1lZDogIiArIHRyYW5zZm9ybU51bWJlcihudW1iZXIpKTsKKy8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZm9ybWF0dGluZyAiICsgbnVtYmVyVG9Gb3JtYXQpOworLy8gICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTUFYREVDSU1BTERJR0lUUzsgaSsrKSB7CisvLyAgICAgICAgICAgICAgICAgIGludCBkaWdpdCA9IChpbnQpKG51bWJlclRvRm9ybWF0ICUgMTApOworLy8gICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAjOiAnIiArIG51bWJlclRvRm9ybWF0ICsgIiciICsgIiBkaWdpdCAnIiArIGRpZ2l0ICsgIiciKTsKKy8vICAgICAgICAgICAgICAgICAgaWYgKGRpZ2l0ICE9IDAgfHwgZG9aZXJvcykgeworLy8gICAgICAgICAgICAgICAgICAgICAgaWYgKGRvWmVyb3MgJiYgdXNlU3BhY2VzKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbnNlcnRJbnRvLmluc2VydChwb3MgKyB0aGlzLnBvcywgJyAnKTsKKy8vICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICAgIGRvWmVyb3MgPSB0cnVlOworLy8gICAgICAgICAgICAgICAgICAgICAgcnVsZVNldC5mb3JtYXQoZGlnaXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworLy8gICAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICAgIG51bWJlclRvRm9ybWF0IC89IDEwOworLy8gICAgICAgICAgICAgIH0KKworICAgICAgICBib29sZWFuIHBhZCA9IGZhbHNlOworICAgICAgICB3aGlsZSAoZGwuY291bnQgPiBNYXRoLm1heCgwLCBkbC5kZWNpbWFsQXQpKSB7CisgICAgICAgIGlmIChwYWQgJiYgdXNlU3BhY2VzKSB7CisgICAgICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcyArIHRoaXMucG9zLCAnICcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcGFkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBydWxlU2V0LmZvcm1hdChkbC5kaWdpdHNbLS1kbC5jb3VudF0gLSAnMCcsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChkbC5kZWNpbWFsQXQgPCAwKSB7CisgICAgICAgIGlmIChwYWQgJiYgdXNlU3BhY2VzKSB7CisgICAgICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcyArIHRoaXMucG9zLCAnICcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcGFkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBydWxlU2V0LmZvcm1hdCgwLCB0b0luc2VydEludG8sIHBvcyArIHRoaXMucG9zKTsKKyAgICAgICAgKytkbC5kZWNpbWFsQXQ7CisgICAgICAgIH0KKyAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBudW1iZXIsIHdoaWNoIHdpbGwgYWx3YXlzIGJlCisgICAgICogemVybyBpZiBpdCdzIGEgbG9uZy4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiAwCisgICAgICovCisgICAgcHVibGljIGxvbmcgdHJhbnNmb3JtTnVtYmVyKGxvbmcgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGZyYWN0aW9uYWwgcGFydCBvZiB0aGUgbnVtYmVyLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHJldHVybiBudW1iZXIgLSBmbG9vcihudW1iZXIpCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSB0cmFuc2Zvcm1OdW1iZXIoZG91YmxlIG51bWJlcikgeworICAgICAgICByZXR1cm4gbnVtYmVyIC0gTWF0aC5mbG9vcihudW1iZXIpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogSWYgaW4gImJ5IGRpZ2l0cyIgbW9kZSwgcGFyc2VzIHRoZSBzdHJpbmcgYXMgaWYgaXQgd2VyZSBhIHN0cmluZworICAgICAqIG9mIGluZGl2aWR1YWwgZGlnaXRzOyBvdGhlcndpc2UsIHVzZXMgdGhlIHN1cGVyY2xhc3MgZnVuY3Rpb24uCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIElnbm9yZWQgb24gZW50cnksIGJ1dCB1cGRhdGVkIG9uIGV4aXQgdG8gcG9pbnQKKyAgICAgKiB0byB0aGUgZmlyc3QgdW5tYXRjaGVkIGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSBiYXNlVmFsdWUgVGhlIHBhcnRpYWwgcGFyc2UgcmVzdWx0IHByaW9yIHRvIGVudGVyaW5nIHRoaXMKKyAgICAgKiBmdW5jdGlvbgorICAgICAqIEBwYXJhbSB1cHBlckJvdW5kIE9ubHkgY29uc2lkZXIgcnVsZXMgd2l0aCBiYXNlIHZhbHVlcyBsb3dlciB0aGFuCisgICAgICogdGhpcyB3aGVuIGZpbGxpbmcgaW4gdGhlIHN1YnN0aXR1dGlvbgorICAgICAqIEBwYXJhbSBsZW5pZW50UGFyc2UgSWYgdHJ1ZSwgdHJ5IG1hdGNoaW5nIHRoZSB0ZXh0IGFzIG51bWVyYWxzIGlmCisgICAgICogbWF0Y2hpbmcgYXMgd29yZHMgZG9lc24ndCB3b3JrCisgICAgICogQHJldHVybiBJZiB0aGUgbWF0Y2ggd2FzIHN1Y2Nlc3NmdWwsIHRoZSBjdXJyZW50IHBhcnRpYWwgcGFyc2UKKyAgICAgKiByZXN1bHQ7IG90aGVyd2lzZSBuZXcgTG9uZygwKS4gIFRoZSByZXN1bHQgaXMgZWl0aGVyIGEgTG9uZyBvcgorICAgICAqIGEgRG91YmxlLgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgZG9QYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBkb3VibGUgYmFzZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHVwcGVyQm91bmQsIGJvb2xlYW4gbGVuaWVudFBhcnNlKSB7CisgICAgICAgIC8vIGlmIHdlJ3JlIG5vdCBpbiBieURpZ2l0cyBtb2RlLCB3ZSBjYW4ganVzdCB1c2UgdGhlIGluaGVyaXRlZAorICAgICAgICAvLyBkb1BhcnNlKCkKKyAgICAgICAgaWYgKCFieURpZ2l0cykgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmRvUGFyc2UodGV4dCwgcGFyc2VQb3NpdGlvbiwgYmFzZVZhbHVlLCAwLCBsZW5pZW50UGFyc2UpOworCisgICAgICAgIC8vIGlmIHdlIEFSRSBpbiBieURpZ2l0cyBtb2RlLCBwYXJzZSB0aGUgdGV4dCBvbmUgZGlnaXQgYXQgYSB0aW1lCisgICAgICAgIC8vIHVzaW5nIHRoaXMgc3Vic3RpdHV0aW9uJ3Mgb3duaW5nIHJ1bGUgc2V0ICh3ZSBkbyB0aGlzIGJ5IHNldHRpbmcKKyAgICAgICAgLy8gdXBwZXJCb3VuZCB0byAxMCB3aGVuIGNhbGxpbmcgZG9QYXJzZSgpICkgdW50aWwgd2UgcmVhY2gKKyAgICAgICAgLy8gbm9ubWF0Y2hpbmcgdGV4dAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3RyaW5nIHdvcmtUZXh0ID0gbmV3IFN0cmluZyh0ZXh0KTsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gd29ya1BvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDEpOworICAgICAgICAgICAgZG91YmxlIHJlc3VsdCA9IDA7CisgICAgICAgIGludCBkaWdpdDsKKy8vICAgICAgICAgICAgICBkb3VibGUgcDEwID0gMC4xOworCisvLyAgICAgICAgICAgICAgd2hpbGUgKHdvcmtUZXh0Lmxlbmd0aCgpID4gMCAmJiB3b3JrUG9zLmdldEluZGV4KCkgIT0gMCkgeworLy8gICAgICAgICAgICAgICAgICB3b3JrUG9zLnNldEluZGV4KDApOworLy8gICAgICAgICAgICAgICAgICBkaWdpdCA9IHJ1bGVTZXQucGFyc2Uod29ya1RleHQsIHdvcmtQb3MsIDEwKS5pbnRWYWx1ZSgpOworLy8gICAgICAgICAgICAgICAgICBpZiAobGVuaWVudFBhcnNlICYmIHdvcmtQb3MuZ2V0SW5kZXgoKSA9PSAwKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICBkaWdpdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLnBhcnNlKHdvcmtUZXh0LCB3b3JrUG9zKS5pbnRWYWx1ZSgpOworLy8gICAgICAgICAgICAgICAgICB9CisKKy8vICAgICAgICAgICAgICAgICAgaWYgKHdvcmtQb3MuZ2V0SW5kZXgoKSAhPSAwKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gZGlnaXQgKiBwMTA7CisvLyAgICAgICAgICAgICAgICAgICAgICBwMTAgLz0gMTA7CisvLyAgICAgICAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSArIHdvcmtQb3MuZ2V0SW5kZXgoKSk7CisvLyAgICAgICAgICAgICAgICAgICAgICB3b3JrVGV4dCA9IHdvcmtUZXh0LnN1YnN0cmluZyh3b3JrUG9zLmdldEluZGV4KCkpOworLy8gICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHdvcmtUZXh0Lmxlbmd0aCgpID4gMCAmJiB3b3JrVGV4dC5jaGFyQXQoMCkgPT0gJyAnKSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya1RleHQgPSB3b3JrVGV4dC5zdWJzdHJpbmcoMSk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgKyAxKTsKKy8vICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgIH0KKworCisgICAgICAgIERpZ2l0TGlzdCBkbCA9IG5ldyBEaWdpdExpc3QoKTsKKyAgICAgICAgICAgIHdoaWxlICh3b3JrVGV4dC5sZW5ndGgoKSA+IDAgJiYgd29ya1Bvcy5nZXRJbmRleCgpICE9IDApIHsKKyAgICAgICAgICAgICAgICB3b3JrUG9zLnNldEluZGV4KDApOworICAgICAgICAgICAgICAgIGRpZ2l0ID0gcnVsZVNldC5wYXJzZSh3b3JrVGV4dCwgd29ya1BvcywgMTApLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgaWYgKGxlbmllbnRQYXJzZSAmJiB3b3JrUG9zLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBkaWdpdCA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSgpLnBhcnNlKHdvcmtUZXh0LCB3b3JrUG9zKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICh3b3JrUG9zLmdldEluZGV4KCkgIT0gMCkgeworICAgICAgICAgICAgZGwuYXBwZW5kKCcwJytkaWdpdCk7CisKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgKyB3b3JrUG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgICAgICAgICB3b3JrVGV4dCA9IHdvcmtUZXh0LnN1YnN0cmluZyh3b3JrUG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAod29ya1RleHQubGVuZ3RoKCkgPiAwICYmIHdvcmtUZXh0LmNoYXJBdCgwKSA9PSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtUZXh0ID0gd29ya1RleHQuc3Vic3RyaW5nKDEpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gZGwuY291bnQgPT0gMCA/IDAgOiBkbC5nZXREb3VibGUoKTsKKworICAgICAgICAgICAgcmVzdWx0ID0gY29tcG9zZVJ1bGVWYWx1ZShyZXN1bHQsIGJhc2VWYWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IERvdWJsZShyZXN1bHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc3VtIG9mIHRoZSB0d28gcGFydGlhbCBwYXJzZSByZXN1bHRzLgorICAgICAqIEBwYXJhbSBuZXdSdWxlVmFsdWUgVGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gb2xkUnVsZVZhbHVlIFRoZSBwYXJ0aWFsIHBhcnNlIHJlc3VsdCBwcmlvciB0byBjYWxsaW5nCisgICAgICogdGhpcyBmdW5jdGlvbgorICAgICAqIEByZXR1cm4gbmV3UnVsZVZhbHVlICsgb2xkUnVsZVZhbHVlCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIG5ld1J1bGVWYWx1ZSArIG9sZFJ1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3QgdXNlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNhbGNVcHBlckJvdW5kKGRvdWJsZSBvbGRVcHBlckJvdW5kKSB7CisgICAgICAgIHJldHVybiAwOyAgIC8vIHRoaXMgdmFsdWUgaXMgaWdub3JlZAorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaW1wbGUgYWNjZXNzb3IKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgdG9rZW4gY2hhcmFjdGVyIGZvciBhIEZyYWN0aW9uYWxQYXJ0U3Vic3RpdHV0aW9uIGlzICZndDsuCisgICAgICogQHJldHVybiAnJmd0OycKKyAgICAgKi8KKyAgICBjaGFyIHRva2VuQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICc+JzsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gQWJzb2x1dGVWYWx1ZVN1YnN0aXR1dGlvbgorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAvKioKKyAgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IGZvcm1hdHMgdGhlIGFic29sdXRlIHZhbHVlIG9mIHRoZSBudW1iZXIuCisgICogVGhpcyBzdWJzdGl0aW9uIGlzIHJlcHJlc2VudGVkIGJ5ICZndDsmZ3Q7IGluIGEgbmVnYXRpdmUtbnVtYmVyIHJ1bGUuCisgICovCitjbGFzcyBBYnNvbHV0ZVZhbHVlU3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24uICBUaGlzIGp1c3QgdXNlcyB0aGUKKyAgICAgKiBzdXBlcmNsYXNzIGNvbnN0cnVjdG9yLgorICAgICAqLworICAgIEFic29sdXRlVmFsdWVTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIG51bWJlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gYWJzKG51bWJlcikKKyAgICAgKi8KKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIE1hdGguYWJzKG51bWJlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIG51bWJlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEByZXR1cm4gYWJzKG51bWJlcikKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBNYXRoLmFicyhudW1iZXIpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYWRkdGl2ZSBpbnZlcnNlIG9mIHRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUKKyAgICAgKiBzdWJzdGl0dXRpb24gKHRoaXMgc3VwZXJzZWRlcyB0aGUgZWFybGllciBwYXJ0aWFsIHJlc3VsdCkKKyAgICAgKiBAcGFyYW0gbmV3UnVsZVZhbHVlIFRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgc3Vic3RpdHV0aW9uCisgICAgICogQHBhcmFtIG9sZFJ1bGVWYWx1ZSBUaGUgcGFydGlhbCBwYXJzZSByZXN1bHQgcHJpb3IgdG8gY2FsbGluZworICAgICAqIHRoaXMgZnVuY3Rpb24KKyAgICAgKiBAcmV0dXJuIC1uZXdSdWxlVmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNvbXBvc2VSdWxlVmFsdWUoZG91YmxlIG5ld1J1bGVWYWx1ZSwgZG91YmxlIG9sZFJ1bGVWYWx1ZSkgeworICAgICAgICByZXR1cm4gLW5ld1J1bGVWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB1cHBlciBib3VuZCBiZWNrIHVwIHRvIGNvbnNpZGVyIGFsbCBydWxlcworICAgICAqIEBwYXJhbSBvbGRVcHBlckJvdW5kIElnbm9yZWQuCisgICAgICogQHJldHVybiBEb3VibGUuTUFYX1ZBTFVFCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBjYWxjVXBwZXJCb3VuZChkb3VibGUgb2xkVXBwZXJCb3VuZCkgeworICAgICAgICByZXR1cm4gRG91YmxlLk1BWF9WQUxVRTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29yCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHRva2VuIGNoYXJhY3RlciBmb3IgYW4gQWJzb2x1dGVWYWx1ZVN1YnN0aXR1dGlvbiBpcyAmZ3Q7CisgICAgICogQHJldHVybiAnJmd0OycKKyAgICAgKi8KKyAgICBjaGFyIHRva2VuQ2hhcigpIHsKKyAgICAgICAgcmV0dXJuICc+JzsKKyAgICB9Cit9CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gTnVtZXJhdG9yU3Vic3RpdHV0aW9uCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisgKiBBIHN1YnN0aXR1dGlvbiB0aGF0IG11bHRpcGxpZXMgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgKHdoaWNoIGlzCisgKiBiZXR3ZWVuIDAgYW5kIDEpIGJ5IHRoZSBiYXNlIHZhbHVlIG9mIHRoZSBydWxlIHRoYXQgb3ducyBpdCBhbmQKKyAqIGZvcm1hdHMgdGhlIHJlc3VsdC4gIEl0IGlzIHJlcHJlc2VudGVkIGJ5ICZsdDsmbHQ7IGluIHRoZSBydWxlcworICogaW4gYSBmcmFjdGlvbiBydWxlIHNldC4KKyAqLworY2xhc3MgTnVtZXJhdG9yU3Vic3RpdHV0aW9uIGV4dGVuZHMgTkZTdWJzdGl0dXRpb24geworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQdXRzIGEgY29weXJpZ2h0IGluIHRoZSAuY2xhc3MgZmlsZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBjb3B5cmlnaHROb3RpY2UKKyAgICAgICAgPSAiQ29weXJpZ2h0IFx1MDBhOTE5OTctMTk5OCBJQk0gQ29ycC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVub21pbmF0b3Igb2YgdGhlIGZyYWN0aW9uIHdlJ3JlIGZpbmRpbmcgdGhlIG51bWVyYXRvciBmb3IuCisgICAgICogKFRoZSBiYXNlIHZhbHVlIG9mIHRoZSBydWxlIHRoYXQgb3ducyB0aGlzIHN1YnN0aXR1dGlvbi4pCisgICAgICovCisgICAgZG91YmxlIGRlbm9taW5hdG9yOworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB3ZSBmb3JtYXQgbGVhZGluZyB6ZXJvcyAodGhpcyBpcyBhIGhhY2sgZm9yIEhlYnJldyBzcGVsbG91dCkKKyAgICAgKi8KKyAgICBib29sZWFuIHdpdGhaZXJvczsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgTnVtYmVyYXRvclN1YnN0aXR1dGlvbi4gIEluIGFkZGl0aW9uIHRvIHRoZSBpbmhlcml0ZWQKKyAgICAgKiBmaWVsZHMsIGEgTnVtZXJhdG9yU3Vic3RpdHV0aW9uIGtlZXBzIHRyYWNrIG9mIGEgZGVub21pbmF0b3IsIHdoaWNoCisgICAgICogaXMgbWVyZWx5IHRoZSBiYXNlIHZhbHVlIG9mIHRoZSBydWxlIHRoYXQgb3ducyBpdC4KKyAgICAgKi8KKyAgICBOdW1lcmF0b3JTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlbm9taW5hdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICBORlJ1bGVTZXQgcnVsZVNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIHN1cGVyKHBvcywgcnVsZVNldCwgZm9ybWF0dGVyLCBmaXhkZXNjKGRlc2NyaXB0aW9uKSk7CisKKyAgICAgICAgLy8gdGhpcyBzdWJzdGl0dXRpb24ncyBiZWhhdmlvciBkZXBlbmRzIG9uIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZQorICAgICAgICAvLyBSYXRoZXIgdGhhbiBrZWVwaW5nIGEgYmFja3BvaW50ZXIgdG8gdGhlIHJ1bGUsIHdlIGNvcHkgaXRzCisgICAgICAgIC8vIGJhc2UgdmFsdWUgaGVyZQorICAgICAgICB0aGlzLmRlbm9taW5hdG9yID0gZGVub21pbmF0b3I7CisgICAgICAgIAorICAgICAgICB0aGlzLndpdGhaZXJvcyA9IGRlc2NyaXB0aW9uLmVuZHNXaXRoKCI8PCIpOworICAgIH0KKworICAgIHN0YXRpYyBTdHJpbmcgZml4ZGVzYyhTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uLmVuZHNXaXRoKCI8PCIpIAorICAgICAgICAgICAgPyBkZXNjcmlwdGlvbi5zdWJzdHJpbmcoMCxkZXNjcmlwdGlvbi5sZW5ndGgoKS0xKSAKKyAgICAgICAgICAgIDogZGVzY3JpcHRpb247CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGJvaWxlcnBsYXRlCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGVzdHMgdHdvIE51bWVyYXRvclN1YnN0aXR1dGlvbnMgZm9yIGVxdWFsaXR5CisgICAgICogQHBhcmFtIHRoYXQgVGhlIG90aGVyIE51bWVyYXRvclN1YnN0aXR1dGlvbgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdHdvIG9iamVjdHMgYXJlIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KSB7CisgICAgICAgIGlmIChzdXBlci5lcXVhbHModGhhdCkpIHsKKyAgICAgICAgICAgIE51bWVyYXRvclN1YnN0aXR1dGlvbiB0aGF0MiA9IChOdW1lcmF0b3JTdWJzdGl0dXRpb24pdGhhdDsKKyAgICAgICAgICAgIHJldHVybiBkZW5vbWluYXRvciA9PSB0aGF0Mi5kZW5vbWluYXRvcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBmb3JtYXR0aW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUGVyZm9ybXMgYSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIG9uIHRoZSBudW1iZXIsIGZvcm1hdHMgaXQgdXNpbmcKKyAgICAgKiBlaXRoZXIgcnVsZVNldCBvciBkZWNpbWFsRm9ybWF0LCBhbmQgaW5zZXJ0cyB0aGUgcmVzdWx0IGludG8KKyAgICAgKiB0b0luc2VydEludG8uCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAcGFyYW0gdG9JbnNlcnRJbnRvIFRoZSBzdHJpbmcgd2UgaW5zZXJ0IHRoZSByZXN1bHQgaW50bworICAgICAqIEBwYXJhbSBwb3MgVGhlIHBvc2l0aW9uIGluIHRvSW5zZXJ0SW50byB3aGVyZSB0aGUgb3duaW5nIHJ1bGUncworICAgICAqIHJ1bGUgdGV4dCBiZWdpbnMgKHRoaXMgdmFsdWUgaXMgYWRkZWQgdG8gdGhpcyBzdWJzdGl0dXRpb24ncworICAgICAqIHBvc2l0aW9uIHRvIGRldGVybWluZSBleGFjdGx5IHdoZXJlIHRvIGluc2VydCB0aGUgbmV3IHRleHQpCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9TdWJzdGl0dXRpb24oZG91YmxlIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgICAgICAvLyBwZXJmb3JtIGEgdHJhbnNmb3JtYXRpb24gb24gdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQgdGhhdAorICAgICAgICAvLyBpcyBkZXBlbmRlbnQgb24gdGhlIHR5cGUgb2Ygc3Vic3RpdHV0aW9uIHRoaXMgaXMKKyAgICAgICAgU3RyaW5nIHMgPSB0b0luc2VydEludG8udG9TdHJpbmcoKTsKKyAgICAgICAgZG91YmxlIG51bWJlclRvRm9ybWF0ID0gdHJhbnNmb3JtTnVtYmVyKG51bWJlcik7CisKKyAgICAgICAgaWYgKHdpdGhaZXJvcyAmJiBydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBsZWFkaW5nIHplcm9zIGluIHRoZSBkZWNpbWFsIGV4cGFuc2lvbiB0aGVuIGVtaXQgdGhlbQorICAgICAgICAgICAgbG9uZyBuZiA9IChsb25nKW51bWJlclRvRm9ybWF0OworICAgICAgICAgICAgaW50IGxlbiA9IHRvSW5zZXJ0SW50by5sZW5ndGgoKTsKKyAgICAgICAgICAgIHdoaWxlICgobmYgKj0gMTApIDwgZGVub21pbmF0b3IpIHsKKyAgICAgICAgICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcyArIHRoaXMucG9zLCAnICcpOworICAgICAgICAgICAgICAgIHJ1bGVTZXQuZm9ybWF0KDAsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcG9zICs9IHRvSW5zZXJ0SW50by5sZW5ndGgoKSAtIGxlbjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSByZXN1bHQgaXMgYW4gaW50ZWdlciwgZnJvbSBoZXJlIG9uIG91dCB3ZSB3b3JrIGluIGludGVnZXIKKyAgICAgICAgLy8gc3BhY2UgKHNhdmluZyB0aW1lIGFuZCBtZW1vcnkgYW5kIHByZXNlcnZpbmcgYWNjdXJhY3kpCisgICAgICAgIGlmIChudW1iZXJUb0Zvcm1hdCA9PSBNYXRoLmZsb29yKG51bWJlclRvRm9ybWF0KSAmJiBydWxlU2V0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJ1bGVTZXQuZm9ybWF0KChsb25nKW51bWJlclRvRm9ybWF0LCB0b0luc2VydEludG8sIHBvcyArIHRoaXMucG9zKTsKKworICAgICAgICAgICAgLy8gaWYgdGhlIHJlc3VsdCBpc24ndCBhbiBpbnRlZ2VyLCB0aGVuIGNhbGwgZWl0aGVyIG91ciBydWxlIHNldCdzCisgICAgICAgICAgICAvLyBmb3JtYXQoKSBtZXRob2Qgb3Igb3VyIERlY2ltYWxGb3JtYXQncyBmb3JtYXQoKSBtZXRob2QgdG8KKyAgICAgICAgICAgIC8vIGZvcm1hdCB0aGUgcmVzdWx0CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAocnVsZVNldCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcnVsZVNldC5mb3JtYXQobnVtYmVyVG9Gb3JtYXQsIHRvSW5zZXJ0SW50bywgcG9zICsgdGhpcy5wb3MpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0b0luc2VydEludG8uaW5zZXJ0KHBvcyArIHRoaXMucG9zLCBudW1iZXJGb3JtYXQuZm9ybWF0KG51bWJlclRvRm9ybWF0KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIHRpbWVzIHRoZSBkZW5vbWluYXRvci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkCisgICAgICogQHJldHVybiBudW1iZXIgKiBkZW5vbWluYXRvcgorICAgICAqLworICAgIHB1YmxpYyBsb25nIHRyYW5zZm9ybU51bWJlcihsb25nIG51bWJlcikgeworICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChudW1iZXIgKiBkZW5vbWluYXRvcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCB0aW1lcyB0aGUgZGVub21pbmF0b3IuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZAorICAgICAqIEByZXR1cm4gbnVtYmVyICogZGVub21pbmF0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG51bWJlciAqIGRlbm9taW5hdG9yKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gcGFyc2luZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIERpc3BhdGNoZXMgdG8gdGhlIGluaGVyaXRlZCB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24sIGJ1dCBtYWtlcworICAgICAqIHN1cmUgdGhhdCBsZW5pZW50UGFyc2UgaXMgb2ZmLgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgZG9QYXJzZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uLCBkb3VibGUgYmFzZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHVwcGVyQm91bmQsIGJvb2xlYW4gbGVuaWVudFBhcnNlKSB7CisgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbCB0byBkbyB0aGUgcGFyc2luZyBoZXJlLAorICAgICAgICAvLyBidXQgd2UgaGF2ZSB0byB0dXJuIGxlbmllbnQgcGFyc2luZyBvZmYtLSBpZiB3ZSBsZWF2ZSBpdCBvbiwKKyAgICAgICAgLy8gaXQgU0VSSU9VU0xZIG1lc3NlcyB1cCB0aGUgYWxnb3JpdGhtCisKKyAgICAgICAgLy8gaWYgd2l0aFplcm9zIGlzIHRydWUsIHdlIG5lZWQgdG8gY291bnQgdGhlIHplcm9zCisgICAgICAgIC8vIGFuZCB1c2UgdGhhdCB0byBhZGp1c3QgdGhlIHBhcnNlIHJlc3VsdAorICAgICAgICBpbnQgemVyb0NvdW50ID0gMDsKKyAgICAgICAgaWYgKHdpdGhaZXJvcykgeworICAgICAgICAgICAgU3RyaW5nIHdvcmtUZXh0ID0gbmV3IFN0cmluZyh0ZXh0KTsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gd29ya1BvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDEpOworICAgICAgICAgICAgaW50IGRpZ2l0OworCisgICAgICAgICAgICB3aGlsZSAod29ya1RleHQubGVuZ3RoKCkgPiAwICYmIHdvcmtQb3MuZ2V0SW5kZXgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgd29ya1Bvcy5zZXRJbmRleCgwKTsKKyAgICAgICAgICAgICAgICBkaWdpdCA9IHJ1bGVTZXQucGFyc2Uod29ya1RleHQsIHdvcmtQb3MsIDEpLmludFZhbHVlKCk7IC8vIHBhcnNlIHplcm8gb3Igbm90aGluZyBhdCBhbGwKKyAgICAgICAgICAgICAgICBpZiAod29ya1Bvcy5nZXRJbmRleCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgZmFpbGVkLCBlaXRoZXIgdGhlcmUgd2VyZSBubyBtb3JlIHplcm9zLCBvciB0aGUgbnVtYmVyIHdhcyBmb3JtYXR0ZWQgd2l0aCBkaWdpdHMKKyAgICAgICAgICAgICAgICAgICAgLy8gZWl0aGVyIHdheSwgd2UncmUgZG9uZQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICArK3plcm9Db3VudDsKKyAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSArIHdvcmtQb3MuZ2V0SW5kZXgoKSk7CisgICAgICAgICAgICAgICAgd29ya1RleHQgPSB3b3JrVGV4dC5zdWJzdHJpbmcod29ya1Bvcy5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAod29ya1RleHQubGVuZ3RoKCkgPiAwICYmIHdvcmtUZXh0LmNoYXJBdCgwKSA9PSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgd29ya1RleHQgPSB3b3JrVGV4dC5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgICAgIHBhcnNlUG9zaXRpb24uc2V0SW5kZXgocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpICsgMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpKTsgLy8gYXJyZ2ghCisgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEluZGV4KDApOworICAgICAgICB9CisKKyAgICAgICAgLy8gd2UndmUgcGFyc2VkIG9mZiB0aGUgemVyb3MsIG5vdyBsZXQncyBwYXJzZSB0aGUgcmVzdCBmcm9tIG91ciBjdXJyZW50IHBvc2l0aW9uCisgICAgICAgIE51bWJlciByZXN1bHQgPSAgc3VwZXIuZG9QYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uLCB3aXRoWmVyb3MgPyAxIDogYmFzZVZhbHVlLCB1cHBlckJvdW5kLCBmYWxzZSk7CisKKyAgICAgICAgaWYgKHdpdGhaZXJvcykgeworICAgICAgICAgICAgLy8gYW55IGJhc2UgdmFsdWUgd2lsbCBkbyBpbiB0aGlzIGNhc2UuICBpcyB0aGVyZSBhIHdheSB0bworICAgICAgICAgICAgLy8gZm9yY2UgdGhpcyB0byBub3QgYm90aGVyIHRyeWluZyBhbGwgdGhlIGJhc2UgdmFsdWVzPworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBjb21wdXRlIHRoZSAnZWZmZWN0aXZlJyBiYXNlIGFuZCBwcmVzY2FsZSB0aGUgdmFsdWUgZG93bgorICAgICAgICAgICAgbG9uZyBuID0gcmVzdWx0LmxvbmdWYWx1ZSgpOworICAgICAgICAgICAgbG9uZyBkID0gMTsKKyAgICAgICAgICAgIGludCBwb3cgPSAwOworICAgICAgICAgICAgd2hpbGUgKGQgPD0gbikgeworICAgICAgICAgICAgICAgIGQgKj0gMTA7CisgICAgICAgICAgICAgICAgKytwb3c7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBub3cgYWRkIHRoZSB6ZXJvcworICAgICAgICAgICAgd2hpbGUgKHplcm9Db3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBkICo9IDEwOworICAgICAgICAgICAgICAgIC0temVyb0NvdW50OworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gZCBpcyBub3cgb3VyIHRydWUgZGVub21pbmF0b3IKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBEb3VibGUobi8oZG91YmxlKWQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEaXZpZGVzIHRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgc3Vic3RpdHV0aW9uIGJ5IHRoZSBwYXJ0aWFsCisgICAgICogcGFyc2UgcmVzdWx0LgorICAgICAqIEBwYXJhbSBuZXdSdWxlVmFsdWUgVGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBzdWJzdGl0dXRpb24KKyAgICAgKiBAcGFyYW0gb2xkUnVsZVZhbHVlIFRoZSBvd25pbmcgcnVsZSdzIGJhc2UgdmFsdWUKKyAgICAgKiBAcmV0dXJuIG5ld1J1bGVWYWx1ZSAvIG9sZFJ1bGVWYWx1ZQorICAgICAqLworICAgIHB1YmxpYyBkb3VibGUgY29tcG9zZVJ1bGVWYWx1ZShkb3VibGUgbmV3UnVsZVZhbHVlLCBkb3VibGUgb2xkUnVsZVZhbHVlKSB7CisgICAgICAgIHJldHVybiBuZXdSdWxlVmFsdWUgLyBvbGRSdWxlVmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdXBlciBib3VuZCBkb3duIHRvIHRoaXMgcnVsZSdzIGJhc2UgdmFsdWUKKyAgICAgKiBAcGFyYW0gb2xkVXBwZXJCb3VuZCBJZ25vcmVkCisgICAgICogQHJldHVybiBUaGUgYmFzZSB2YWx1ZSBvZiB0aGUgcnVsZSBvd25pbmcgdGhpcyBzdWJzdGl0dXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgZG91YmxlIGNhbGNVcHBlckJvdW5kKGRvdWJsZSBvbGRVcHBlckJvdW5kKSB7CisgICAgICAgIHJldHVybiBkZW5vbWluYXRvcjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc2ltcGxlIGFjY2Vzc29yCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHRva2VuIGNoYXJhY3RlciBmb3IgYSBOdW1lcmF0b3JTdWJzdGl0dXRpb24gaXMgJmx0OworICAgICAqIEByZXR1cm4gJyZsdDsnCisgICAgICovCisgICAgY2hhciB0b2tlbkNoYXIoKSB7CisgICAgICAgIHJldHVybiAnPCc7CisgICAgfQorfQorCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIE51bGxTdWJzdGl0dXRpb24KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisvKioKKyAqIEEgc3Vic3RpdHV0aW9uIHdoaWNoIGRvZXMgbm90aGluZy4gIFRoaXMgY2xhc3MgZXhpc3RzIGp1c3QgdG8gc2ltcGxpZnkKKyAqIHRoZSBsb2dpYyBpbiBzb21lIG90aGVyIHJvdXRpbmVzIHNvIHRoYXQgdGhleSBkb24ndCBoYXZlIHRvIHdvcnJ5CisgKiBhYm91dCBob3cgbWFueSBzdWJzdGl0dXRpb25zIGEgcnVsZSBoYXMuCisgKi8KK2NsYXNzIE51bGxTdWJzdGl0dXRpb24gZXh0ZW5kcyBORlN1YnN0aXR1dGlvbiB7CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFB1dHMgYSBjb3B5cmlnaHQgaW4gdGhlIC5jbGFzcyBmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGNvcHlyaWdodE5vdGljZQorICAgICAgICA9ICJDb3B5cmlnaHQgXHUwMGE5MTk5Ny0xOTk4IElCTSBDb3JwLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNvbnN0cnVjdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBOdWxsU3Vic3RpdHV0aW9uLiAgVGhpcyBqdXN0IGRlbGVnYXRlcyB0byB0aGUgc3VwZXJjbGFzcworICAgICAqIGNvbnN0cnVjdG9yLCBidXQgdGhlIG9ubHkgdmFsdWUgd2UgcmVhbGx5IGNhcmUgYWJvdXQgaXMgdGhlIHBvc2l0aW9uLgorICAgICAqLworICAgIE51bGxTdWJzdGl0dXRpb24oaW50IHBvcywKKyAgICAgICAgICAgICAgICAgICAgIE5GUnVsZVNldCBydWxlU2V0LAorICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwKKyAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICBzdXBlcihwb3MsIHJ1bGVTZXQsIGZvcm1hdHRlciwgZGVzY3JpcHRpb24pOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBib2lsZXJwbGF0ZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIE9ubHkgY2hlY2tzIGZvciBjbGFzcyBlcXVhbGl0eQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICByZXR1cm4gc3VwZXIuZXF1YWxzKHRoYXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE51bGxTdWJzdGl0dXRpb25zIGRvbid0IHNob3cgdXAgaW4gdGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24KKyAgICAgKiBvZiBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiAiIjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gZm9ybWF0dGluZworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIERvZXMgbm90aGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1N1YnN0aXR1dGlvbihsb25nIG51bWJlciwgU3RyaW5nQnVmZmVyIHRvSW5zZXJ0SW50bywgaW50IHBvcykgeworICAgIH0KKworICAgIC8qKgorICAgICAqIERvZXMgbm90aGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb1N1YnN0aXR1dGlvbihkb3VibGUgbnVtYmVyLCBTdHJpbmdCdWZmZXIgdG9JbnNlcnRJbnRvLCBpbnQgcG9zKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogTmV2ZXIgY2FsbGVkLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgbG9uZyB0cmFuc2Zvcm1OdW1iZXIobG9uZyBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogTmV2ZXIgY2FsbGVkLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgZG91YmxlIHRyYW5zZm9ybU51bWJlcihkb3VibGUgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwYXJzaW5nCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcGFydGlhbCBwYXJzZSByZXN1bHQgdW5jaGFuZ2VkCisgICAgICovCisgICAgcHVibGljIE51bWJlciBkb1BhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24sIGRvdWJsZSBiYXNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdXBwZXJCb3VuZCwgYm9vbGVhbiBsZW5pZW50UGFyc2UpIHsKKyAgICAgICAgaWYgKGJhc2VWYWx1ZSA9PSAobG9uZyliYXNlVmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTG9uZygobG9uZyliYXNlVmFsdWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBEb3VibGUoYmFzZVZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE5ldmVyIGNhbGxlZC4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHVibGljIGRvdWJsZSBjb21wb3NlUnVsZVZhbHVlKGRvdWJsZSBuZXdSdWxlVmFsdWUsIGRvdWJsZSBvbGRSdWxlVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogTmV2ZXIgY2FsbGVkLgorICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwdWJsaWMgZG91YmxlIGNhbGNVcHBlckJvdW5kKGRvdWJsZSBvbGRVcHBlckJvdW5kKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaW1wbGUgYWNjZXNzb3JzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlICh0aGlzIF9pc18gYSBOdWxsU3Vic3RpdHV0aW9uKS4KKyAgICAgKiBAcmV0dXJuIHRydWUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc051bGxTdWJzdGl0dXRpb24oKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIE5ldmVyIGNhbGxlZC4KKyAgICAgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgY2hhciB0b2tlbkNoYXIoKSB7CisgICAgICAgIHJldHVybiAnICc7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9OYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9OYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjU2N2NlZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L05hbWVVbmljb2RlVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDE3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJOYW1lOworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCBwZXJmb3JtcyBuYW1lIHRvIGNoYXJhY3RlciBtYXBwaW5nLgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBOYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgY2hhciBvcGVuRGVsaW1pdGVyOworICAgIGNoYXIgY2xvc2VEZWxpbWl0ZXI7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIF9JRCA9ICJOYW1lLUFueSI7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIE9QRU5fUEFUICAgID0gIlxcTn57fiI7CisgICAgc3RhdGljIGZpbmFsIGNoYXIgICBPUEVOX0RFTElNICA9ICdcXCc7IC8vIGZpcnN0IGNoYXIgb2YgT1BFTl9QQVQKKyAgICBzdGF0aWMgZmluYWwgY2hhciAgIENMT1NFX0RFTElNID0gJ30nOworICAgIHN0YXRpYyBmaW5hbCBjaGFyICAgU1BBQ0UgICAgICAgPSAnICc7CisKKworICAgIC8qKgorICAgICAqIFN5c3RlbSByZWdpc3RyYXRpb24gaG9vay4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KF9JRCwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yKG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHVibGljIE5hbWVVbmljb2RlVHJhbnNsaXRlcmF0b3IoVW5pY29kZUZpbHRlciBmaWx0ZXIpIHsKKyAgICAgICAgc3VwZXIoX0lELCBmaWx0ZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIG9mZnNldHMsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworCisgICAgICAgIGludCBtYXhMZW4gPSBVQ2hhcmFjdGVyTmFtZS5nZXRJbnN0YW5jZSgpLmdldE1heENoYXJOYW1lTGVuZ3RoKCkgKyAxOyAvLyBhbGxvdyBmb3IgdGVtcG9yYXJ5IHRyYWlsaW5nIHNwYWNlCisKKyAgICAgICAgU3RyaW5nQnVmZmVyIG5hbWUgPSBuZXcgU3RyaW5nQnVmZmVyKG1heExlbik7CisKKyAgICAgICAgLy8gR2V0IHRoZSBsZWdhbCBjaGFyYWN0ZXIgc2V0CisgICAgICAgIFVuaWNvZGVTZXQgbGVnYWwgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICBVQ2hhcmFjdGVyTmFtZS5nZXRJbnN0YW5jZSgpLmdldENoYXJOYW1lQ2hhcmFjdGVycyhsZWdhbCk7CisKKyAgICAgICAgaW50IGN1cnNvciA9IG9mZnNldHMuc3RhcnQ7CisgICAgICAgIGludCBsaW1pdCA9IG9mZnNldHMubGltaXQ7CisKKyAgICAgICAgLy8gTW9kZXM6CisgICAgICAgIC8vIDAgLSBsb29raW5nIGZvciBvcGVuIGRlbGltaXRlcgorICAgICAgICAvLyAxIC0gYWZ0ZXIgb3BlbiBkZWxpbWl0ZXIKKyAgICAgICAgaW50IG1vZGUgPSAwOworICAgICAgICBpbnQgb3BlblBvcyA9IC0xOyAvLyBvcGVuIGRlbGltIGNhbmRpZGF0ZSBwb3MKKyAgICAgICAgCisgICAgICAgIGludCBjOworICAgICAgICB3aGlsZSAoY3Vyc29yIDwgbGltaXQpIHsKKyAgICAgICAgICAgIGMgPSB0ZXh0LmNoYXIzMkF0KGN1cnNvcik7CisKKyAgICAgICAgICAgIHN3aXRjaCAobW9kZSkgeworICAgICAgICAgICAgY2FzZSAwOiAvLyBsb29raW5nIGZvciBvcGVuIGRlbGltaXRlcgorICAgICAgICAgICAgICAgIGlmIChjID09IE9QRU5fREVMSU0pIHsgLy8gcXVpY2sgY2hlY2sgZmlyc3QKKyAgICAgICAgICAgICAgICAgICAgb3BlblBvcyA9IGN1cnNvcjsKKyAgICAgICAgICAgICAgICAgICAgaW50IGkgPSBVdGlsaXR5LnBhcnNlUGF0dGVybihPUEVOX1BBVCwgdGV4dCwgY3Vyc29yLCBsaW1pdCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpID49IDAgJiYgaSA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtb2RlID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yID0gaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyAqKiogcmVwcm9jZXNzIGNoYXIzMkF0KGN1cnNvcikKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAxOiAvLyBhZnRlciBvcGVuIGRlbGltaXRlcgorICAgICAgICAgICAgICAgIC8vIExvb2sgZm9yIGxlZ2FsIGNoYXJzLiAgSWYgXHMrIGlzIGZvdW5kLCBjb252ZXJ0IGl0CisgICAgICAgICAgICAgICAgLy8gdG8gYSBzaW5nbGUgc3BhY2UuICBJZiBjbG9zZURlbGltaXRlciBpcyBmb3VuZCwgZXhpdAorICAgICAgICAgICAgICAgIC8vIHRoZSBsb29wLiAgSWYgYW55IG90aGVyIGNoYXJhY3RlciBpcyBmb3VuZCwgZXhpdCB0aGUKKyAgICAgICAgICAgICAgICAvLyBsb29wLiAgSWYgdGhlIGxpbWl0IGlzIHJlYWNoZWQsIGV4aXQgdGhlIGxvb3AuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gQ29udmVydCBccysgPT4gU1BBQ0UuICBUaGlzIGFzc3VtZXMgdGhlcmUgYXJlIG5vCisgICAgICAgICAgICAgICAgLy8gcnVucyBvZiA+MSBzcGFjZSBjaGFyYWN0ZXJzIGluIG5hbWVzLgorICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBJZ25vcmUgbGVhZGluZyB3aGl0ZXNwYWNlCisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpID4gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5jaGFyQXQobmFtZS5sZW5ndGgoKS0xKSAhPSBTUEFDRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5hcHBlbmQoU1BBQ0UpOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgYXJlIHRvbyBsb25nIHRoZW4gYWJvcnQuICBtYXhMZW4gaW5jbHVkZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRlbXBvcmFyeSB0cmFpbGluZyBzcGFjZSwgc28gdXNlICc+Jy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpID4gbWF4TGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gQ0xPU0VfREVMSU0pIHsKKworICAgICAgICAgICAgICAgICAgICBpbnQgbGVuID0gbmFtZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIERlbGV0ZSB0cmFpbGluZyBzcGFjZSwgaWYgYW55CisgICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPiAwICYmCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmNoYXJBdChsZW4tMSkgPT0gU1BBQ0UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUuc2V0TGVuZ3RoKC0tbGVuKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGMgPSBVQ2hhcmFjdGVyLmdldENoYXJGcm9tRXh0ZW5kZWROYW1lKG5hbWUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBMb29rdXAgc3VjY2VlZGVkCisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzc2VydChVVEYxNi5nZXRDaGFyQ291bnQoQ0xPU0VfREVMSU0pID09IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yKys7IC8vIGFkdmFuY2Ugb3ZlciBDTE9TRV9ERUxJTQorCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyID0gVVRGMTYudmFsdWVPZihjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShvcGVuUG9zLCBjdXJzb3IsIHN0cik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkanVzdCBpbmRpY2VzIGZvciB0aGUgY2hhbmdlIGluIHRoZSBsZW5ndGggb2YKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzdHJpbmcuICBEbyBub3QgYXNzdW1lIHRoYXQgc3RyLmxlbmd0aCgpID09CisgICAgICAgICAgICAgICAgICAgICAgICAvLyAxLCBpbiBjYXNlIG9mIHN1cnJvZ2F0ZXMuCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVsdGEgPSBjdXJzb3IgLSBvcGVuUG9zIC0gc3RyLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yIC09IGRlbHRhOworICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQgLT0gZGVsdGE7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnQoY3Vyc29yID09IG9wZW5Qb3MgKyBzdHIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBsb29rdXAgZmFpbGVkLCB3ZSBsZWF2ZSB0aGluZ3MgYXMtaXMgYW5kCisgICAgICAgICAgICAgICAgICAgIC8vIHN0aWxsIHN3aXRjaCB0byBtb2RlIDAgYW5kIGNvbnRpbnVlLgorICAgICAgICAgICAgICAgICAgICBtb2RlID0gMDsKKyAgICAgICAgICAgICAgICAgICAgb3BlblBvcyA9IC0xOyAvLyBjbG9zZSBvZmYgY2FuZGlkYXRlCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyAqKiogcmVwcm9jZXNzIGNoYXIzMkF0KGN1cnNvcikKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobGVnYWwuY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKG5hbWUsIGMpOworICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBnbyBwYXN0IHRoZSBsb25nZXN0IHBvc3NpYmxlIG5hbWUgdGhlbiBhYm9ydC4KKyAgICAgICAgICAgICAgICAgICAgLy8gbWF4TGVuIGluY2x1ZGVzIHRlbXBvcmFyeSB0cmFpbGluZyBzcGFjZSwgc28gdXNlICc+PScuCisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpID49IG1heExlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBJbnZhbGlkIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAtLWN1cnNvcjsgLy8gQmFja3VwIGFuZCByZXByb2Nlc3MgdGhpcyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDA7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGN1cnNvciArPSBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgIH0KKworICAgICAgICBvZmZzZXRzLmNvbnRleHRMaW1pdCArPSBsaW1pdCAtIG9mZnNldHMubGltaXQ7CisgICAgICAgIG9mZnNldHMubGltaXQgPSBsaW1pdDsKKyAgICAgICAgLy8gSW4gaW5jcmVtZW50YWwgbW9kZSwgb25seSBhZHZhbmNlIHRoZSBjdXJzb3IgdXAgdG8gdGhlIGxhc3QKKyAgICAgICAgLy8gb3BlbiBkZWxpbWl0ZXIgY2FuZGlkYXRlLgorICAgICAgICBvZmZzZXRzLnN0YXJ0ID0gKGlzSW5jcmVtZW50YWwgJiYgb3BlblBvcyA+PSAwKSA/IG9wZW5Qb3MgOiBjdXJzb3I7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xN2MzOWNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw2MTggQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDA2LzA4LzAxICAgIGFsaXUgICAgICAgIENyZWF0aW9uLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKKworLyoqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2ZpbmFsIGNsYXNzIE5vcm1hbGl6YXRpb25UcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogVGhlIG5vcm1hbGl6YXRpb24gbW9kZSBvZiB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHByaXZhdGUgTm9ybWFsaXplci5Nb2RlIG1vZGU7CisKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemF0aW9uIG9wdGlvbnMgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgb3B0aW9uczsKKworICAgIC8qKgorICAgICAqIFRoZSBzZXQgb2YgInVuc2FmZSBzdGFydCIgY2hhcmFjdGVycy4gIFRoZXNlIGFyZSBjaGFyYWN0ZXJzCisgICAgICogd2l0aCBjYz09MCBidXQgd2hpY2ggbWF5IGludGVyYWN0IHdpdGggcHJldmlvdXMgY2hhcmFjdGVycy4gIFdlCisgICAgICogZWZmZWN0aXZlbHkgY29uc2lkZXIgdGhlc2UgdG8gYmUgY2MhPTAsIGZvciBvdXIgcHVycG9zZXMuCisgICAgICoKKyAgICAgKiBGcm9tIGh0dHA6Ly93d3cubWFjY2hpYXRvLmNvbS91dGMvTkZVbnNhZmVTdGFydC0zLjEuMWRYLnR4dAorICAgICAqIEdlbmVyYXRlZCBpbiB1bmljb2RldG9vbHMsIE5GU2tpcHBhYmxlCisgICAgICoKKyAgICAgKi8KKyAgICAgCisgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXRbXSBVTlNBRkVfU1RBUlRTID0gbmV3IFVuaWNvZGVTZXRbNF07CisgICAgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXRbXSBTS0lQUEFCTEVTID0gbmV3IFVuaWNvZGVTZXRbNF07CisgICAgCisgICAgc3RhdGljIGZpbmFsIGludAorICAgICAgICBEID0gMCwgQyA9IDEsIEtEPSAyLCBLQyA9IDM7CisgICAgCisgICAgLy8gSW5zdGFuY2UgZGF0YSwgc2ltcGx5IHBvaW50ZXIgdG8gb25lIG9mIHRoZSBzZXRzIGJlbG93CisgICAgZmluYWwgVW5pY29kZVNldCB1bnNhZmVTdGFydDsKKyAgICBmaW5hbCBVbmljb2RlU2V0IHNraXBwYWJsZTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTeXN0ZW0gcmVnaXN0cmF0aW9uIGhvb2suCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXIoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LU5GQyIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IuCisgICAgICAgICAgICAgICAgICAgIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LU5GRCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IuCisgICAgICAgICAgICAgICAgICAgIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTkZEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiQW55LU5GS0MiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICBnZXRJbnN0YW5jZShOb3JtYWxpemVyLk5GS0MpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJBbnktTkZLRCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IuCisgICAgICAgICAgICAgICAgICAgIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTkZLRCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlclNwZWNpYWxJbnZlcnNlKCJORkMiLCAiTkZEIiwgdHJ1ZSk7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyU3BlY2lhbEludmVyc2UoIk5GS0MiLCAiTkZLRCIsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZhY3RvcnkgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTW9kZSBtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHQpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGlkID0gbmV3IFN0cmluZ0J1ZmZlcigiTkYiKTsKKyAgICAgICAgaW50IGNob2ljZSA9IDA7CisgICAgICAgIGlmKG09PU5vcm1hbGl6ZXIuTkZDKXsKKyAgICAgICAgICAgIGlkLmFwcGVuZCgiQyIpOworICAgICAgICAgICAgY2hvaWNlIHw9IEM7CisgICAgICAgIH1lbHNlIGlmKG09PU5vcm1hbGl6ZXIuTkZLQyl7CisgICAgICAgICAgICBpZC5hcHBlbmQoIktDIik7CisgICAgICAgICAgICBjaG9pY2UgfD0gS0M7CisgICAgICAgIH1lbHNlIGlmKG09PU5vcm1hbGl6ZXIuTkZEKXsKKyAgICAgICAgICAgIGlkLmFwcGVuZCgiRCIpOworICAgICAgICAgICAgY2hvaWNlIHw9IEQ7CisgICAgICAgIH1lbHNlIGlmKG09PU5vcm1hbGl6ZXIuTkZLRCl7CisgICAgICAgICAgICBpZC5hcHBlbmQoIktEIik7CisgICAgICAgICAgICBjaG9pY2UgfD0gS0Q7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qaWYgKG0uY29tcGF0KCkpIHsKKyAgICAgICAgICAgIGlkLmFwcGVuZCgnSycpOworICAgICAgICAgICAgY2hvaWNlIHw9IEtEOworICAgICAgICB9CisgICAgICAgIGlmIChtLmNvbXBvc2UoKSkgeworICAgICAgICAgICAgaWQuYXBwZW5kKCdDJyk7CisgICAgICAgICAgICBjaG9pY2UgfD0gQzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlkLmFwcGVuZCgnRCcpOworICAgICAgICB9Ki8KKyAgICAgICAgcmV0dXJuIG5ldyBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IoaWQudG9TdHJpbmcoKSwgbSwgY2hvaWNlLCBvcHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZhY3RvcnkgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTm9ybWFsaXphdGlvblRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKE5vcm1hbGl6ZXIuTW9kZSBtKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShtLCAwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBOb3JtYWxpemF0aW9uVHJhbnNsaXRlcmF0b3IoU3RyaW5nIGlkLCBOb3JtYWxpemVyLk1vZGUgbSwgaW50IHN0YXJ0Q2hvaWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHQpIHsKKyAgICAgICAgc3VwZXIoaWQsIG51bGwpOworICAgICAgICBtb2RlID0gbTsKKyAgICAgICAgb3B0aW9ucyA9IG9wdDsKKyAgICAgICAgaWYgKFVOU0FGRV9TVEFSVFNbc3RhcnRDaG9pY2VdID09IG51bGwpIHsKKyAgICAgICAgICAgIGluaXRTdGF0aWNzKHN0YXJ0Q2hvaWNlKTsKKyAgICAgICAgfQorICAgICAgICB1bnNhZmVTdGFydCA9IFVOU0FGRV9TVEFSVFNbc3RhcnRDaG9pY2VdOworICAgICAgICBza2lwcGFibGUgPSBTS0lQUEFCTEVTW3N0YXJ0Q2hvaWNlXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gb2Zmc2V0cy5zdGFydDsKKyAgICAgICAgaW50IGxpbWl0ID0gb2Zmc2V0cy5saW1pdDsKKyAgICAgICAgaWYgKHN0YXJ0ID49IGxpbWl0KSByZXR1cm47CisKKyAgICAgICAgaW50IG92ZXJhbGxEZWx0YSA9IDA7CisgICAgICAgICAgICAKKyAgICAgICAgLy8gV2FsayB0aHJvdWdoIHRoZSBzdHJpbmcgbG9va2luZyBmb3Igc2FmZSBjaGFyYWN0ZXJzLgorICAgICAgICAvLyBXaGVuZXZlciB5b3UgaGl0IG9uZSBub3JtYWxpemUgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIGxhc3QKKyAgICAgICAgLy8gc2FmZSBjaGFyYWN0ZXIgdXAgdG8ganVzdCBiZWZvcmUgdGhlIG5leHQgc2FmZSBjaGFyYWN0ZXIKKyAgICAgICAgLy8gQWxzbywgaWYgeW91IGhpdCB0aGUgZW5kIGFuZCB3ZSBhcmUgbm90IGluIGluY3JlbWVudGFsIG1vZGUsCisgICAgICAgIC8vIGRvIHRvIGVuZC4KKyAgICAgICAgICAgIAorICAgICAgICAvLyBUT0RPOiBmaXggZm9yIHN1cnJvZ2F0ZXMKKyAgICAgICAgLy8gVE9ETzogYWRkIFF1aWNrQ2hlY2ssIHNvIHdlIHJhcmVseSBjb252ZXJ0IE9LIHN0dWZmCisgICAgICAgICAgICAKKyAgICAgICAgaW50IGxhc3RTYWZlID0gc3RhcnQ7IC8vIGdvIGJhY2sgdG8gc3RhcnQgaW4gYW55IGV2ZW50CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0KzE7IGkgPCBsaW1pdDsgaSArPSBVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSB7CisgICAgICAgICAgICBjcCA9IHRleHQuY2hhcjMyQXQoaSk7CisgICAgICAgICAgICBpZiAoVUNoYXJhY3Rlci5nZXRDb21iaW5pbmdDbGFzcyhjcCkgPT0gMCAmJiAhdW5zYWZlU3RhcnQuY29udGFpbnMoY3ApKSB7CisgICAgICAgICAgICAgICAgaW50IGRlbHRhID0gY29udmVydCh0ZXh0LCBsYXN0U2FmZSwgaSwgbnVsbCk7CisgICAgICAgICAgICAgICAgaSArPSBkZWx0YTsKKyAgICAgICAgICAgICAgICBsaW1pdCArPSBkZWx0YTsKKyAgICAgICAgICAgICAgICBvdmVyYWxsRGVsdGEgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgbGFzdFNhZmUgPSBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghaXNJbmNyZW1lbnRhbCkgeworICAgICAgICAgICAgaW50IGRlbHRhID0gY29udmVydCh0ZXh0LCBsYXN0U2FmZSwgbGltaXQsIG51bGwpOworICAgICAgICAgICAgb3ZlcmFsbERlbHRhICs9IGRlbHRhOworICAgICAgICAgICAgbGFzdFNhZmUgPSBsaW1pdCArIGRlbHRhOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gV2UgYXJlIGluY3JlbWVudGFsLCBzbyBhY2NlcHQgdGhlIGxhc3QgY2hhcmFjdGVycyBJRiB0aGV5IHR1cm4gaW50byBza2lwcGFibGVzCisgICAgICAgICAgICBpbnQgZGVsdGEgPSBjb252ZXJ0KHRleHQsIGxhc3RTYWZlLCBsaW1pdCwgc2tpcHBhYmxlKTsKKyAgICAgICAgICAgIGlmIChkZWx0YSAhPSBJbnRlZ2VyLk1JTl9WQUxVRSkgeworICAgICAgICAgICAgICAgIG92ZXJhbGxEZWx0YSArPSBkZWx0YTsKKyAgICAgICAgICAgICAgICBsYXN0U2FmZSA9IGxpbWl0ICsgZGVsdGE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgb2Zmc2V0cy5jb250ZXh0TGltaXQgKz0gb3ZlcmFsbERlbHRhOworICAgICAgICBvZmZzZXRzLmxpbWl0ICs9IG92ZXJhbGxEZWx0YTsKKyAgICAgICAgb2Zmc2V0cy5zdGFydCA9IGxhc3RTYWZlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyB0aGUgcmFuZ2UgZnJvbSBsYXN0U2FmZSB0byBsaW1pdC4KKyAgICAgKiBAcGFyYW0gdmVyaWZ5IElmIG5vbi1udWxsLCBjaGVjayB0byBzZWUgdGhhdCBhbGwgcmVwbGFjZW1lbnQgY2hhcmFjdGVycyBhcmUgaW4gaXQuIElmIG5vdCwKKyAgICAgKiBhYm9ydCB0aGUgY29udmVyc2lvbiBhbmQgcmV0dXJuIEludGVnZXIuTUlOX1ZBTFVFLgorICAgICAqIEByZXR1cm4gcmV0dXJuIHRoZSBkZWx0YSBpbiBsZW5ndGggKG5ldyAtIG9sZCksIG9yIEludGVnZXIuTUlOX1ZBTFVFIGlmIHRoZSB2ZXJpZnkgYWJvcnRlZC4KKyAgICAgKi8KKyAgICBpbnQgY29udmVydChSZXBsYWNlYWJsZSB0ZXh0LCBpbnQgbGFzdFNhZmUsIGludCBsaW1pdCwgVW5pY29kZVNldCB2ZXJpZnkpIHsgICAgICAgIAorICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigidDogIiArIGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eS5oZXgodGV4dC50b1N0cmluZygpKSArICIsIHM6ICIgKyBsYXN0U2FmZSArICIsIGw6ICIgKyBsaW1pdCk7CisKKyAgICAgICAgaW50IGxlbiA9IGxpbWl0IC0gbGFzdFNhZmU7CisgICAgICAgIGlmIChidWZmZXIubGVuZ3RoIDwgbGVuKSB7CisgICAgICAgICAgICBidWZmZXIgPSBuZXcgY2hhcltsZW5dOyAvLyByYXJlLCBhbmQgd2UgZG9uJ3QgY2FyZSBpZiB3ZSBncm93IHRvbyBsYXJnZQorICAgICAgICB9CisgICAgICAgIHRleHQuZ2V0Q2hhcnMobGFzdFNhZmUsIGxpbWl0LCBidWZmZXIsIDApOworICAgICAgICBTdHJpbmcgaW5wdXQgPSBuZXcgU3RyaW5nKGJ1ZmZlciwgMCwgbGVuKTsgLy8gVE9ETzogZml4IG5vcm1hbGl6ZXIgdG8gdGFrZSBjaGFyW10KKyAgICAgICAgU3RyaW5nIG91dHB1dCA9IE5vcm1hbGl6ZXIubm9ybWFsaXplKGlucHV0LCBtb2RlKTsKKyAgICAgICAgCisgICAgICAgIC8vIHZlcmlmeSBPSywgaWYgc3BlY2lmaWVkCisgICAgICAgIGlmICh2ZXJpZnkgIT0gbnVsbCkgeworICAgICAgICAgICAgYm9vbGVhbiBza2lwID0gIXNraXBwYWJsZS5jb250YWluc0FsbChvdXRwdXQpOworICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKChza2lwID8gIiAgU0tJUDogIiA6ICJOT1NLSVA6ICIpIAorICAgICAgICAgICAgICAgICAgICArIGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eS5lc2NhcGUoaW5wdXQpIAorICAgICAgICAgICAgICAgICAgICArICIgPT4gIiArIGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eS5lc2NhcGUob3V0cHV0KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc2tpcCkgcmV0dXJuIEludGVnZXIuTUlOX1ZBTFVFOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAob3V0cHV0LmVxdWFscyhpbnB1dCkpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHRleHQucmVwbGFjZShsYXN0U2FmZSwgbGltaXQsIG91dHB1dCk7CisgICAgICAgIHJldHVybiBvdXRwdXQubGVuZ3RoKCkgLSBsZW47CisgICAgfQorICAgIAorICAgIHByaXZhdGUgY2hhciBidWZmZXJbXSA9IG5ldyBjaGFyWzMwXTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHN0YXRpY3MgZm9yIHRoZSBnaXZlbiBtb2RlLiAgVGhpcyBpcyBzbG93LCBzbyB3ZQorICAgICAqIGRlZmVyIGl0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHZvaWQgaW5pdFN0YXRpY3MoaW50IHN0YXJ0Q2hvaWNlKSB7CisgICAgICAgIHN3aXRjaCAoc3RhcnRDaG9pY2UpIHsKKyAgICAgICAgY2FzZSBEOgorICAgICAgICAgIFVOU0FGRV9TVEFSVFNbRF0gPSBuZXcgVW5pY29kZVNldCgiW1x1MEY3M1x1MEY3NVx1MEY4MV0iLCBmYWxzZSk7CisgICAgICAgICAgU0tJUFBBQkxFU1tEXSA9IG5ldyBVbmljb2RlU2V0KAorICAgICAgICAgICAgIlteXFx1MDBDMC1cXHUwMEM1XFx1MDBDNy1cXHUwMENGXFx1MDBEMS1cXHUwMEQ2XFx1MDBEOS1cXHUwMEREIgorICAgICAgICAgICAgKyAiXFx1MDBFMC1cXHUwMEU1XFx1MDBFNy1cXHUwMEVGXFx1MDBGMS1cXHUwMEY2XFx1MDBGOS1cXHUwMEZEIgorICAgICAgICAgICAgKyAiXFx1MDBGRi1cXHUwMTBGXFx1MDExMi1cXHUwMTI1XFx1MDEyOC1cXHUwMTMwXFx1MDEzNC1cXHUwMTM3IgorICAgICAgICAgICAgKyAiXFx1MDEzOS1cXHUwMTNFXFx1MDE0My1cXHUwMTQ4XFx1MDE0Qy1cXHUwMTUxXFx1MDE1NC1cXHUwMTY1IgorICAgICAgICAgICAgKyAiXFx1MDE2OC1cXHUwMTdFXFx1MDFBMC1cXHUwMUExXFx1MDFBRi1cXHUwMUIwXFx1MDFDRC1cXHUwMURDIgorICAgICAgICAgICAgKyAiXFx1MDFERS1cXHUwMUUzXFx1MDFFNi1cXHUwMUYwXFx1MDFGNC1cXHUwMUY1XFx1MDFGOC1cXHUwMjFCIgorICAgICAgICAgICAgKyAiXFx1MDIxRS1cXHUwMjFGXFx1MDIyNi1cXHUwMjMzXFx1MDMwMC1cXHUwMzRFXFx1MDM2MC1cXHUwMzZGIgorICAgICAgICAgICAgKyAiXFx1MDM3NFxcdTAzN0VcXHUwMzg1LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwMzkwXFx1MDNBQS0iCisgICAgICAgICAgICArICJcXHUwM0IwXFx1MDNDQS1cXHUwM0NFXFx1MDNEMy1cXHUwM0Q0XFx1MDQwMC1cXHUwNDAxXFx1MDQwMyIKKyAgICAgICAgICAgICsgIlxcdTA0MDdcXHUwNDBDLVxcdTA0MEVcXHUwNDE5XFx1MDQzOVxcdTA0NTAtXFx1MDQ1MVxcdTA0NTMiCisgICAgICAgICAgICArICJcXHUwNDU3XFx1MDQ1Qy1cXHUwNDVFXFx1MDQ3Ni1cXHUwNDc3XFx1MDQ4My1cXHUwNDg2XFx1MDRDMS0iCisgICAgICAgICAgICArICJcXHUwNEMyXFx1MDREMC1cXHUwNEQzXFx1MDRENi1cXHUwNEQ3XFx1MDREQS1cXHUwNERGXFx1MDRFMi0iCisgICAgICAgICAgICArICJcXHUwNEU3XFx1MDRFQS1cXHUwNEY1XFx1MDRGOC1cXHUwNEY5XFx1MDU5MS1cXHUwNUExXFx1MDVBMy0iCisgICAgICAgICAgICArICJcXHUwNUI5XFx1MDVCQi1cXHUwNUJEXFx1MDVCRlxcdTA1QzEtXFx1MDVDMlxcdTA1QzRcXHUwNjIyLSIKKyAgICAgICAgICAgICsgIlxcdTA2MjZcXHUwNjRCLVxcdTA2NTVcXHUwNjcwXFx1MDZDMFxcdTA2QzJcXHUwNkQzXFx1MDZENi0iCisgICAgICAgICAgICArICJcXHUwNkRDXFx1MDZERi1cXHUwNkU0XFx1MDZFNy1cXHUwNkU4XFx1MDZFQS1cXHUwNkVEXFx1MDcxMSIKKyAgICAgICAgICAgICsgIlxcdTA3MzAtXFx1MDc0QVxcdTA5MjlcXHUwOTMxXFx1MDkzNFxcdTA5M0NcXHUwOTREXFx1MDk1MS0iCisgICAgICAgICAgICArICJcXHUwOTU0XFx1MDk1OC1cXHUwOTVGXFx1MDlCQ1xcdTA5Q0ItXFx1MDlDRFxcdTA5REMtXFx1MDlERCIKKyAgICAgICAgICAgICsgIlxcdTA5REZcXHUwQTMzXFx1MEEzNlxcdTBBM0NcXHUwQTREXFx1MEE1OS1cXHUwQTVCXFx1MEE1RVxcdTBBQkMiCisgICAgICAgICAgICArICJcXHUwQUNEXFx1MEIzQ1xcdTBCNDhcXHUwQjRCLVxcdTBCNERcXHUwQjVDLVxcdTBCNURcXHUwQjk0IgorICAgICAgICAgICAgKyAiXFx1MEJDQS1cXHUwQkNEXFx1MEM0OFxcdTBDNERcXHUwQzU1LVxcdTBDNTZcXHUwQ0MwXFx1MENDNy0iCisgICAgICAgICAgICArICJcXHUwQ0M4XFx1MENDQS1cXHUwQ0NCXFx1MENDRFxcdTBENEEtXFx1MEQ0RFxcdTBEQ0FcXHUwRERBIgorICAgICAgICAgICAgKyAiXFx1MEREQy1cXHUwRERFXFx1MEUzOC1cXHUwRTNBXFx1MEU0OC1cXHUwRTRCXFx1MEVCOC1cXHUwRUI5IgorICAgICAgICAgICAgKyAiXFx1MEVDOC1cXHUwRUNCXFx1MEYxOC1cXHUwRjE5XFx1MEYzNVxcdTBGMzdcXHUwRjM5XFx1MEY0MyIKKyAgICAgICAgICAgICsgIlxcdTBGNERcXHUwRjUyXFx1MEY1N1xcdTBGNUNcXHUwRjY5XFx1MEY3MS1cXHUwRjc2XFx1MEY3OFxcdTBGN0EiCisgICAgICAgICAgICArICItXFx1MEY3RFxcdTBGODAtXFx1MEY4NFxcdTBGODYtXFx1MEY4N1xcdTBGOTNcXHUwRjlEXFx1MEZBMiIKKyAgICAgICAgICAgICsgIlxcdTBGQTdcXHUwRkFDXFx1MEZCOVxcdTBGQzZcXHUxMDI2XFx1MTAzN1xcdTEwMzlcXHUxNzE0XFx1MTczNCIKKyAgICAgICAgICAgICsgIlxcdTE3RDJcXHUxOEE5XFx1MUUwMC1cXHUxRTk5XFx1MUU5QlxcdTFFQTAtXFx1MUVGOVxcdTFGMDAtIgorICAgICAgICAgICAgKyAiXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtIgorICAgICAgICAgICAgKyAiXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNCIKKyAgICAgICAgICAgICsgIlxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMxLVxcdTFGQzRcXHUxRkM2LVxcdTFGRDNcXHUxRkQ2LSIKKyAgICAgICAgICAgICsgIlxcdTFGREJcXHUxRkRELVxcdTFGRUZcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkRcXHUyMDAwLSIKKyAgICAgICAgICAgICsgIlxcdTIwMDFcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEVBXFx1MjEyNlxcdTIxMkEtIgorICAgICAgICAgICAgKyAiXFx1MjEyQlxcdTIxOUEtXFx1MjE5QlxcdTIxQUVcXHUyMUNELVxcdTIxQ0ZcXHUyMjA0XFx1MjIwOSIKKyAgICAgICAgICAgICsgIlxcdTIyMENcXHUyMjI0XFx1MjIyNlxcdTIyNDFcXHUyMjQ0XFx1MjI0N1xcdTIyNDlcXHUyMjYwXFx1MjI2MiIKKyAgICAgICAgICAgICsgIlxcdTIyNkQtXFx1MjI3MVxcdTIyNzQtXFx1MjI3NVxcdTIyNzgtXFx1MjI3OVxcdTIyODAtXFx1MjI4MSIKKyAgICAgICAgICAgICsgIlxcdTIyODQtXFx1MjI4NVxcdTIyODgtXFx1MjI4OVxcdTIyQUMtXFx1MjJBRlxcdTIyRTAtXFx1MjJFMyIKKyAgICAgICAgICAgICsgIlxcdTIyRUEtXFx1MjJFRFxcdTIzMjktXFx1MjMyQVxcdTJBRENcXHUzMDJBLVxcdTMwMkZcXHUzMDRDIgorICAgICAgICAgICAgKyAiXFx1MzA0RVxcdTMwNTBcXHUzMDUyXFx1MzA1NFxcdTMwNTZcXHUzMDU4XFx1MzA1QVxcdTMwNUNcXHUzMDVFIgorICAgICAgICAgICAgKyAiXFx1MzA2MFxcdTMwNjJcXHUzMDY1XFx1MzA2N1xcdTMwNjlcXHUzMDcwLVxcdTMwNzFcXHUzMDczLSIKKyAgICAgICAgICAgICsgIlxcdTMwNzRcXHUzMDc2LVxcdTMwNzdcXHUzMDc5LVxcdTMwN0FcXHUzMDdDLVxcdTMwN0RcXHUzMDk0IgorICAgICAgICAgICAgKyAiXFx1MzA5OS1cXHUzMDlBXFx1MzA5RVxcdTMwQUNcXHUzMEFFXFx1MzBCMFxcdTMwQjJcXHUzMEI0XFx1MzBCNiIKKyAgICAgICAgICAgICsgIlxcdTMwQjhcXHUzMEJBXFx1MzBCQ1xcdTMwQkVcXHUzMEMwXFx1MzBDMlxcdTMwQzVcXHUzMEM3XFx1MzBDOSIKKyAgICAgICAgICAgICsgIlxcdTMwRDAtXFx1MzBEMVxcdTMwRDMtXFx1MzBENFxcdTMwRDYtXFx1MzBEN1xcdTMwRDktXFx1MzBEQSIKKyAgICAgICAgICAgICsgIlxcdTMwREMtXFx1MzBERFxcdTMwRjRcXHUzMEY3LVxcdTMwRkFcXHUzMEZFXFx1QUMwMC1cXHVEN0EzIgorICAgICAgICAgICAgKyAiXFx1RjkwMC1cXHVGQTBEXFx1RkExMFxcdUZBMTJcXHVGQTE1LVxcdUZBMUVcXHVGQTIwXFx1RkEyMiIKKyAgICAgICAgICAgICsgIlxcdUZBMjUtXFx1RkEyNlxcdUZBMkEtXFx1RkEyRFxcdUZBMzAtXFx1RkE2QVxcdUZCMUQtXFx1RkIxRiIKKyAgICAgICAgICAgICsgIlxcdUZCMkEtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0VcXHVGQjQwLVxcdUZCNDFcXHVGQjQzLSIKKyAgICAgICAgICAgICsgIlxcdUZCNDRcXHVGQjQ2LVxcdUZCNEVcXHVGRTIwLVxcdUZFMjNcXFUwMDAxRDE1RS1cXFUwMDAxRDE2OSIKKyAgICAgICAgICAgICsgIlxcVTAwMDFEMTZELVxcVTAwMDFEMTcyXFxVMDAwMUQxN0ItXFxVMDAwMUQxODJcXFUwMDAxRDE4NS0iCisgICAgICAgICAgICArICJcXFUwMDAxRDE4QlxcVTAwMDFEMUFBLVxcVTAwMDFEMUFEXFxVMDAwMUQxQkItXFxVMDAwMUQxQzBcXFUwMDAyIgorICAgICAgICAgICAgKyAiRjgwMC1cXFUwMDAyRkExRF0iLCBmYWxzZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQzoKKyAgICAgICAgICBVTlNBRkVfU1RBUlRTW0NdID0gbmV3IFVuaWNvZGVTZXQoIltcdTA5QkVcdTA5RDdcdTBCM0VcdTBCNTYtXHUwQjU3XHUwQkJFXHUwQkQ3XHUwQ0MyXHUwQ0Q1LVx1MENENiIKKyAgICAgICAgICAgICsgIlx1MEQzRVx1MEQ1N1x1MERDRlx1MERERlx1MEY3M1x1MEY3NVx1MEY4MVx1MTAyRVx1MTE2MS1cdTExNzVcdTExQTgtXHUxMUMyXSIsIGZhbHNlKTsKKyAgICAgICAgICBTS0lQUEFCTEVTW0NdID0gbmV3IFVuaWNvZGVTZXQoCisgICAgICAgICAgICAiW148LT5BLVBSLVphLXByLXpcXHUwMEE4XFx1MDBDMC1cXHUwMENGXFx1MDBEMS1cXHUwMEQ2XFx1MDBEOC0iCisgICAgICAgICAgICArICJcXHUwMEREXFx1MDBFMC1cXHUwMEVGXFx1MDBGMS1cXHUwMEY2XFx1MDBGOC1cXHUwMEZEXFx1MDBGRi0iCisgICAgICAgICAgICArICJcXHUwMTAzXFx1MDEwNi1cXHUwMTBGXFx1MDExMi1cXHUwMTE3XFx1MDExQS1cXHUwMTIxXFx1MDEyNC0iCisgICAgICAgICAgICArICJcXHUwMTI1XFx1MDEyOC1cXHUwMTJEXFx1MDEzMFxcdTAxMzktXFx1MDEzQVxcdTAxM0QtXFx1MDEzRSIKKyAgICAgICAgICAgICsgIlxcdTAxNDMtXFx1MDE0NFxcdTAxNDctXFx1MDE0OFxcdTAxNEMtXFx1MDE1MVxcdTAxNTQtXFx1MDE1NSIKKyAgICAgICAgICAgICsgIlxcdTAxNTgtXFx1MDE1RFxcdTAxNjAtXFx1MDE2MVxcdTAxNjQtXFx1MDE2NVxcdTAxNjgtXFx1MDE3MSIKKyAgICAgICAgICAgICsgIlxcdTAxNzQtXFx1MDE3RlxcdTAxQTAtXFx1MDFBMVxcdTAxQUYtXFx1MDFCMFxcdTAxQjdcXHUwMUNELSIKKyAgICAgICAgICAgICsgIlxcdTAxRENcXHUwMURFLVxcdTAxRTFcXHUwMUU2LVxcdTAxRUJcXHUwMUY0LVxcdTAxRjVcXHUwMUY4LSIKKyAgICAgICAgICAgICsgIlxcdTAxRkJcXHUwMjAwLVxcdTAyMUJcXHUwMjFFLVxcdTAyMUZcXHUwMjI2LVxcdTAyMzNcXHUwMjkyIgorICAgICAgICAgICAgKyAiXFx1MDMwMC1cXHUwMzRFXFx1MDM2MC1cXHUwMzZGXFx1MDM3NFxcdTAzN0VcXHUwMzg3XFx1MDM5MSIKKyAgICAgICAgICAgICsgIlxcdTAzOTVcXHUwMzk3XFx1MDM5OVxcdTAzOUZcXHUwM0ExXFx1MDNBNVxcdTAzQTlcXHUwM0FDXFx1MDNBRSIKKyAgICAgICAgICAgICsgIlxcdTAzQjFcXHUwM0I1XFx1MDNCN1xcdTAzQjlcXHUwM0JGXFx1MDNDMVxcdTAzQzVcXHUwM0M5LVxcdTAzQ0IiCisgICAgICAgICAgICArICJcXHUwM0NFXFx1MDNEMlxcdTA0MDZcXHUwNDEwXFx1MDQxM1xcdTA0MTUtXFx1MDQxOFxcdTA0MUFcXHUwNDFFIgorICAgICAgICAgICAgKyAiXFx1MDQyM1xcdTA0MjdcXHUwNDJCXFx1MDQyRFxcdTA0MzBcXHUwNDMzXFx1MDQzNS1cXHUwNDM4XFx1MDQzQSIKKyAgICAgICAgICAgICsgIlxcdTA0M0VcXHUwNDQzXFx1MDQ0N1xcdTA0NEJcXHUwNDREXFx1MDQ1NlxcdTA0NzQtXFx1MDQ3NVxcdTA0ODMiCisgICAgICAgICAgICArICItXFx1MDQ4NlxcdTA0RDgtXFx1MDREOVxcdTA0RTgtXFx1MDRFOVxcdTA1OTEtXFx1MDVBMVxcdTA1QTMtIgorICAgICAgICAgICAgKyAiXFx1MDVCOVxcdTA1QkItXFx1MDVCRFxcdTA1QkZcXHUwNUMxLVxcdTA1QzJcXHUwNUM0XFx1MDYyMi0iCisgICAgICAgICAgICArICJcXHUwNjIzXFx1MDYyN1xcdTA2NDhcXHUwNjRBLVxcdTA2NTVcXHUwNjcwXFx1MDZDMVxcdTA2RDJcXHUwNkQ1IgorICAgICAgICAgICAgKyAiLVxcdTA2RENcXHUwNkRGLVxcdTA2RTRcXHUwNkU3LVxcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNzExIgorICAgICAgICAgICAgKyAiXFx1MDczMC1cXHUwNzRBXFx1MDkyOFxcdTA5MzBcXHUwOTMzXFx1MDkzQ1xcdTA5NERcXHUwOTUxLSIKKyAgICAgICAgICAgICsgIlxcdTA5NTRcXHUwOTU4LVxcdTA5NUZcXHUwOUJDXFx1MDlCRVxcdTA5QzdcXHUwOUNEXFx1MDlEN1xcdTA5REMiCisgICAgICAgICAgICArICItXFx1MDlERFxcdTA5REZcXHUwQTMzXFx1MEEzNlxcdTBBM0NcXHUwQTREXFx1MEE1OS1cXHUwQTVCIgorICAgICAgICAgICAgKyAiXFx1MEE1RVxcdTBBQkNcXHUwQUNEXFx1MEIzQ1xcdTBCM0VcXHUwQjQ3XFx1MEI0RFxcdTBCNTYtXFx1MEI1NyIKKyAgICAgICAgICAgICsgIlxcdTBCNUMtXFx1MEI1RFxcdTBCOTJcXHUwQkJFXFx1MEJDNi1cXHUwQkM3XFx1MEJDRFxcdTBCRDciCisgICAgICAgICAgICArICJcXHUwQzQ2XFx1MEM0RFxcdTBDNTUtXFx1MEM1NlxcdTBDQkZcXHUwQ0MyXFx1MENDNlxcdTBDQ0FcXHUwQ0NEIgorICAgICAgICAgICAgKyAiXFx1MENENS1cXHUwQ0Q2XFx1MEQzRVxcdTBENDYtXFx1MEQ0N1xcdTBENERcXHUwRDU3XFx1MERDQSIKKyAgICAgICAgICAgICsgIlxcdTBEQ0ZcXHUwREQ5XFx1MEREQ1xcdTBEREZcXHUwRTM4LVxcdTBFM0FcXHUwRTQ4LVxcdTBFNEIiCisgICAgICAgICAgICArICJcXHUwRUI4LVxcdTBFQjlcXHUwRUM4LVxcdTBFQ0JcXHUwRjE4LVxcdTBGMTlcXHUwRjM1XFx1MEYzNyIKKyAgICAgICAgICAgICsgIlxcdTBGMzlcXHUwRjQzXFx1MEY0RFxcdTBGNTJcXHUwRjU3XFx1MEY1Q1xcdTBGNjlcXHUwRjcxLVxcdTBGNzYiCisgICAgICAgICAgICArICJcXHUwRjc4XFx1MEY3QS1cXHUwRjdEXFx1MEY4MC1cXHUwRjg0XFx1MEY4Ni1cXHUwRjg3XFx1MEY5MyIKKyAgICAgICAgICAgICsgIlxcdTBGOURcXHUwRkEyXFx1MEZBN1xcdTBGQUNcXHUwRkI5XFx1MEZDNlxcdTEwMjVcXHUxMDJFXFx1MTAzNyIKKyAgICAgICAgICAgICsgIlxcdTEwMzlcXHUxMTAwLVxcdTExMTJcXHUxMTYxLVxcdTExNzVcXHUxMUE4LVxcdTExQzJcXHUxNzE0IgorICAgICAgICAgICAgKyAiXFx1MTczNFxcdTE3RDJcXHUxOEE5XFx1MUUwMC1cXHUxRTAzXFx1MUUwQS1cXHUxRTBGXFx1MUUxMi0iCisgICAgICAgICAgICArICJcXHUxRTFCXFx1MUUyMC1cXHUxRTI3XFx1MUUyQS1cXHUxRTQxXFx1MUU0NC1cXHUxRTUzXFx1MUU1OC0iCisgICAgICAgICAgICArICJcXHUxRTdEXFx1MUU4MC1cXHUxRTg3XFx1MUU4RS1cXHUxRTkxXFx1MUU5Ni1cXHUxRTk5XFx1MUVBMC0iCisgICAgICAgICAgICArICJcXHUxRUYzXFx1MUVGNi1cXHUxRUY5XFx1MUYwMC1cXHUxRjExXFx1MUYxOC1cXHUxRjE5XFx1MUYyMC0iCisgICAgICAgICAgICArICJcXHUxRjMxXFx1MUYzOC1cXHUxRjM5XFx1MUY0MC1cXHUxRjQxXFx1MUY0OC1cXHUxRjQ5XFx1MUY1MC0iCisgICAgICAgICAgICArICJcXHUxRjUxXFx1MUY1OVxcdTFGNjAtXFx1MUY3MVxcdTFGNzMtXFx1MUY3NVxcdTFGNzdcXHUxRjc5IgorICAgICAgICAgICAgKyAiXFx1MUY3Qi1cXHUxRjdEXFx1MUY4MC1cXHUxRjgxXFx1MUY4OC1cXHUxRjg5XFx1MUY5MC1cXHUxRjkxIgorICAgICAgICAgICAgKyAiXFx1MUY5OC1cXHUxRjk5XFx1MUZBMC1cXHUxRkExXFx1MUZBOC1cXHUxRkE5XFx1MUZCM1xcdTFGQjYiCisgICAgICAgICAgICArICJcXHUxRkJCLVxcdTFGQkNcXHUxRkJFLVxcdTFGQkZcXHUxRkMzXFx1MUZDNlxcdTFGQzlcXHUxRkNCLSIKKyAgICAgICAgICAgICsgIlxcdTFGQ0NcXHUxRkQzXFx1MUZEQlxcdTFGRTNcXHUxRkVCXFx1MUZFRS1cXHUxRkVGXFx1MUZGM1xcdTFGRjYiCisgICAgICAgICAgICArICJcXHUxRkY5XFx1MUZGQi1cXHUxRkZFXFx1MjAwMC1cXHUyMDAxXFx1MjBEMC1cXHUyMERDXFx1MjBFMSIKKyAgICAgICAgICAgICsgIlxcdTIwRTUtXFx1MjBFQVxcdTIxMjZcXHUyMTJBLVxcdTIxMkJcXHUyMTkwXFx1MjE5MlxcdTIxOTQiCisgICAgICAgICAgICArICJcXHUyMUQwXFx1MjFEMlxcdTIxRDRcXHUyMjAzXFx1MjIwOFxcdTIyMEJcXHUyMjIzXFx1MjIyNVxcdTIyM0MiCisgICAgICAgICAgICArICJcXHUyMjQzXFx1MjI0NVxcdTIyNDhcXHUyMjREXFx1MjI2MVxcdTIyNjQtXFx1MjI2NVxcdTIyNzItIgorICAgICAgICAgICAgKyAiXFx1MjI3M1xcdTIyNzYtXFx1MjI3N1xcdTIyN0EtXFx1MjI3RFxcdTIyODItXFx1MjI4M1xcdTIyODYtIgorICAgICAgICAgICAgKyAiXFx1MjI4N1xcdTIyOTEtXFx1MjI5MlxcdTIyQTJcXHUyMkE4LVxcdTIyQTlcXHUyMkFCXFx1MjJCMi0iCisgICAgICAgICAgICArICJcXHUyMkI1XFx1MjMyOS1cXHUyMzJBXFx1MkFEQ1xcdTMwMkEtXFx1MzAyRlxcdTMwNDZcXHUzMDRCIgorICAgICAgICAgICAgKyAiXFx1MzA0RFxcdTMwNEZcXHUzMDUxXFx1MzA1M1xcdTMwNTVcXHUzMDU3XFx1MzA1OVxcdTMwNUJcXHUzMDVEIgorICAgICAgICAgICAgKyAiXFx1MzA1RlxcdTMwNjFcXHUzMDY0XFx1MzA2NlxcdTMwNjhcXHUzMDZGXFx1MzA3MlxcdTMwNzVcXHUzMDc4IgorICAgICAgICAgICAgKyAiXFx1MzA3QlxcdTMwOTktXFx1MzA5QVxcdTMwOURcXHUzMEE2XFx1MzBBQlxcdTMwQURcXHUzMEFGXFx1MzBCMSIKKyAgICAgICAgICAgICsgIlxcdTMwQjNcXHUzMEI1XFx1MzBCN1xcdTMwQjlcXHUzMEJCXFx1MzBCRFxcdTMwQkZcXHUzMEMxXFx1MzBDNCIKKyAgICAgICAgICAgICsgIlxcdTMwQzZcXHUzMEM4XFx1MzBDRlxcdTMwRDJcXHUzMEQ1XFx1MzBEOFxcdTMwREJcXHUzMEVGLVxcdTMwRjIiCisgICAgICAgICAgICArICJcXHUzMEZEXFx1QUMwMFxcdUFDMUNcXHVBQzM4XFx1QUM1NFxcdUFDNzBcXHVBQzhDXFx1QUNBOFxcdUFDQzQiCisgICAgICAgICAgICArICJcXHVBQ0UwXFx1QUNGQ1xcdUFEMThcXHVBRDM0XFx1QUQ1MFxcdUFENkNcXHVBRDg4XFx1QURBNFxcdUFEQzAiCisgICAgICAgICAgICArICJcXHVBRERDXFx1QURGOFxcdUFFMTRcXHVBRTMwXFx1QUU0Q1xcdUFFNjhcXHVBRTg0XFx1QUVBMFxcdUFFQkMiCisgICAgICAgICAgICArICJcXHVBRUQ4XFx1QUVGNFxcdUFGMTBcXHVBRjJDXFx1QUY0OFxcdUFGNjRcXHVBRjgwXFx1QUY5Q1xcdUFGQjgiCisgICAgICAgICAgICArICJcXHVBRkQ0XFx1QUZGMFxcdUIwMENcXHVCMDI4XFx1QjA0NFxcdUIwNjBcXHVCMDdDXFx1QjA5OFxcdUIwQjQiCisgICAgICAgICAgICArICJcXHVCMEQwXFx1QjBFQ1xcdUIxMDhcXHVCMTI0XFx1QjE0MFxcdUIxNUNcXHVCMTc4XFx1QjE5NFxcdUIxQjAiCisgICAgICAgICAgICArICJcXHVCMUNDXFx1QjFFOFxcdUIyMDRcXHVCMjIwXFx1QjIzQ1xcdUIyNThcXHVCMjc0XFx1QjI5MFxcdUIyQUMiCisgICAgICAgICAgICArICJcXHVCMkM4XFx1QjJFNFxcdUIzMDBcXHVCMzFDXFx1QjMzOFxcdUIzNTRcXHVCMzcwXFx1QjM4Q1xcdUIzQTgiCisgICAgICAgICAgICArICJcXHVCM0M0XFx1QjNFMFxcdUIzRkNcXHVCNDE4XFx1QjQzNFxcdUI0NTBcXHVCNDZDXFx1QjQ4OFxcdUI0QTQiCisgICAgICAgICAgICArICJcXHVCNEMwXFx1QjREQ1xcdUI0RjhcXHVCNTE0XFx1QjUzMFxcdUI1NENcXHVCNTY4XFx1QjU4NFxcdUI1QTAiCisgICAgICAgICAgICArICJcXHVCNUJDXFx1QjVEOFxcdUI1RjRcXHVCNjEwXFx1QjYyQ1xcdUI2NDhcXHVCNjY0XFx1QjY4MFxcdUI2OUMiCisgICAgICAgICAgICArICJcXHVCNkI4XFx1QjZENFxcdUI2RjBcXHVCNzBDXFx1QjcyOFxcdUI3NDRcXHVCNzYwXFx1Qjc3Q1xcdUI3OTgiCisgICAgICAgICAgICArICJcXHVCN0I0XFx1QjdEMFxcdUI3RUNcXHVCODA4XFx1QjgyNFxcdUI4NDBcXHVCODVDXFx1Qjg3OFxcdUI4OTQiCisgICAgICAgICAgICArICJcXHVCOEIwXFx1QjhDQ1xcdUI4RThcXHVCOTA0XFx1QjkyMFxcdUI5M0NcXHVCOTU4XFx1Qjk3NFxcdUI5OTAiCisgICAgICAgICAgICArICJcXHVCOUFDXFx1QjlDOFxcdUI5RTRcXHVCQTAwXFx1QkExQ1xcdUJBMzhcXHVCQTU0XFx1QkE3MFxcdUJBOEMiCisgICAgICAgICAgICArICJcXHVCQUE4XFx1QkFDNFxcdUJBRTBcXHVCQUZDXFx1QkIxOFxcdUJCMzRcXHVCQjUwXFx1QkI2Q1xcdUJCODgiCisgICAgICAgICAgICArICJcXHVCQkE0XFx1QkJDMFxcdUJCRENcXHVCQkY4XFx1QkMxNFxcdUJDMzBcXHVCQzRDXFx1QkM2OFxcdUJDODQiCisgICAgICAgICAgICArICJcXHVCQ0EwXFx1QkNCQ1xcdUJDRDhcXHVCQ0Y0XFx1QkQxMFxcdUJEMkNcXHVCRDQ4XFx1QkQ2NFxcdUJEODAiCisgICAgICAgICAgICArICJcXHVCRDlDXFx1QkRCOFxcdUJERDRcXHVCREYwXFx1QkUwQ1xcdUJFMjhcXHVCRTQ0XFx1QkU2MFxcdUJFN0MiCisgICAgICAgICAgICArICJcXHVCRTk4XFx1QkVCNFxcdUJFRDBcXHVCRUVDXFx1QkYwOFxcdUJGMjRcXHVCRjQwXFx1QkY1Q1xcdUJGNzgiCisgICAgICAgICAgICArICJcXHVCRjk0XFx1QkZCMFxcdUJGQ0NcXHVCRkU4XFx1QzAwNFxcdUMwMjBcXHVDMDNDXFx1QzA1OFxcdUMwNzQiCisgICAgICAgICAgICArICJcXHVDMDkwXFx1QzBBQ1xcdUMwQzhcXHVDMEU0XFx1QzEwMFxcdUMxMUNcXHVDMTM4XFx1QzE1NFxcdUMxNzAiCisgICAgICAgICAgICArICJcXHVDMThDXFx1QzFBOFxcdUMxQzRcXHVDMUUwXFx1QzFGQ1xcdUMyMThcXHVDMjM0XFx1QzI1MFxcdUMyNkMiCisgICAgICAgICAgICArICJcXHVDMjg4XFx1QzJBNFxcdUMyQzBcXHVDMkRDXFx1QzJGOFxcdUMzMTRcXHVDMzMwXFx1QzM0Q1xcdUMzNjgiCisgICAgICAgICAgICArICJcXHVDMzg0XFx1QzNBMFxcdUMzQkNcXHVDM0Q4XFx1QzNGNFxcdUM0MTBcXHVDNDJDXFx1QzQ0OFxcdUM0NjQiCisgICAgICAgICAgICArICJcXHVDNDgwXFx1QzQ5Q1xcdUM0QjhcXHVDNEQ0XFx1QzRGMFxcdUM1MENcXHVDNTI4XFx1QzU0NFxcdUM1NjAiCisgICAgICAgICAgICArICJcXHVDNTdDXFx1QzU5OFxcdUM1QjRcXHVDNUQwXFx1QzVFQ1xcdUM2MDhcXHVDNjI0XFx1QzY0MFxcdUM2NUMiCisgICAgICAgICAgICArICJcXHVDNjc4XFx1QzY5NFxcdUM2QjBcXHVDNkNDXFx1QzZFOFxcdUM3MDRcXHVDNzIwXFx1QzczQ1xcdUM3NTgiCisgICAgICAgICAgICArICJcXHVDNzc0XFx1Qzc5MFxcdUM3QUNcXHVDN0M4XFx1QzdFNFxcdUM4MDBcXHVDODFDXFx1QzgzOFxcdUM4NTQiCisgICAgICAgICAgICArICJcXHVDODcwXFx1Qzg4Q1xcdUM4QThcXHVDOEM0XFx1QzhFMFxcdUM4RkNcXHVDOTE4XFx1QzkzNFxcdUM5NTAiCisgICAgICAgICAgICArICJcXHVDOTZDXFx1Qzk4OFxcdUM5QTRcXHVDOUMwXFx1QzlEQ1xcdUM5RjhcXHVDQTE0XFx1Q0EzMFxcdUNBNEMiCisgICAgICAgICAgICArICJcXHVDQTY4XFx1Q0E4NFxcdUNBQTBcXHVDQUJDXFx1Q0FEOFxcdUNBRjRcXHVDQjEwXFx1Q0IyQ1xcdUNCNDgiCisgICAgICAgICAgICArICJcXHVDQjY0XFx1Q0I4MFxcdUNCOUNcXHVDQkI4XFx1Q0JENFxcdUNCRjBcXHVDQzBDXFx1Q0MyOFxcdUNDNDQiCisgICAgICAgICAgICArICJcXHVDQzYwXFx1Q0M3Q1xcdUNDOThcXHVDQ0I0XFx1Q0NEMFxcdUNDRUNcXHVDRDA4XFx1Q0QyNFxcdUNENDAiCisgICAgICAgICAgICArICJcXHVDRDVDXFx1Q0Q3OFxcdUNEOTRcXHVDREIwXFx1Q0RDQ1xcdUNERThcXHVDRTA0XFx1Q0UyMFxcdUNFM0MiCisgICAgICAgICAgICArICJcXHVDRTU4XFx1Q0U3NFxcdUNFOTBcXHVDRUFDXFx1Q0VDOFxcdUNFRTRcXHVDRjAwXFx1Q0YxQ1xcdUNGMzgiCisgICAgICAgICAgICArICJcXHVDRjU0XFx1Q0Y3MFxcdUNGOENcXHVDRkE4XFx1Q0ZDNFxcdUNGRTBcXHVDRkZDXFx1RDAxOFxcdUQwMzQiCisgICAgICAgICAgICArICJcXHVEMDUwXFx1RDA2Q1xcdUQwODhcXHVEMEE0XFx1RDBDMFxcdUQwRENcXHVEMEY4XFx1RDExNFxcdUQxMzAiCisgICAgICAgICAgICArICJcXHVEMTRDXFx1RDE2OFxcdUQxODRcXHVEMUEwXFx1RDFCQ1xcdUQxRDhcXHVEMUY0XFx1RDIxMFxcdUQyMkMiCisgICAgICAgICAgICArICJcXHVEMjQ4XFx1RDI2NFxcdUQyODBcXHVEMjlDXFx1RDJCOFxcdUQyRDRcXHVEMkYwXFx1RDMwQ1xcdUQzMjgiCisgICAgICAgICAgICArICJcXHVEMzQ0XFx1RDM2MFxcdUQzN0NcXHVEMzk4XFx1RDNCNFxcdUQzRDBcXHVEM0VDXFx1RDQwOFxcdUQ0MjQiCisgICAgICAgICAgICArICJcXHVENDQwXFx1RDQ1Q1xcdUQ0NzhcXHVENDk0XFx1RDRCMFxcdUQ0Q0NcXHVENEU4XFx1RDUwNFxcdUQ1MjAiCisgICAgICAgICAgICArICJcXHVENTNDXFx1RDU1OFxcdUQ1NzRcXHVENTkwXFx1RDVBQ1xcdUQ1QzhcXHVENUU0XFx1RDYwMFxcdUQ2MUMiCisgICAgICAgICAgICArICJcXHVENjM4XFx1RDY1NFxcdUQ2NzBcXHVENjhDXFx1RDZBOFxcdUQ2QzRcXHVENkUwXFx1RDZGQ1xcdUQ3MTgiCisgICAgICAgICAgICArICJcXHVENzM0XFx1RDc1MFxcdUQ3NkNcXHVENzg4XFx1RjkwMC1cXHVGQTBEXFx1RkExMFxcdUZBMTJcXHVGQTE1IgorICAgICAgICAgICAgKyAiLVxcdUZBMUVcXHVGQTIwXFx1RkEyMlxcdUZBMjUtXFx1RkEyNlxcdUZBMkEtXFx1RkEyRFxcdUZBMzAtIgorICAgICAgICAgICAgKyAiXFx1RkE2QVxcdUZCMUQtXFx1RkIxRlxcdUZCMkEtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0UiCisgICAgICAgICAgICArICJcXHVGQjQwLVxcdUZCNDFcXHVGQjQzLVxcdUZCNDRcXHVGQjQ2LVxcdUZCNEVcXHVGRTIwLVxcdUZFMjMiCisgICAgICAgICAgICArICJcXFUwMDAxRDE1RS1cXFUwMDAxRDE2OVxcVTAwMDFEMTZELVxcVTAwMDFEMTcyXFxVMDAwMUQxN0ItIgorICAgICAgICAgICAgKyAiXFxVMDAwMUQxODJcXFUwMDAxRDE4NS1cXFUwMDAxRDE4QlxcVTAwMDFEMUFBLVxcVTAwMDFEMUFEXFxVMDAwMSIKKyAgICAgICAgICAgICsgIkQxQkItXFxVMDAwMUQxQzBcXFUwMDAyRjgwMC1cXFUwMDAyRkExRF0iLCBmYWxzZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS0Q6CisgICAgICAgICAgVU5TQUZFX1NUQVJUU1tLRF0gPSBuZXcgVW5pY29kZVNldCgiW1x1MEY3M1x1MEY3NVx1MEY4MVx1RkY5RS1cdUZGOUZdIiwgZmFsc2UpOworICAgICAgICAgIFNLSVBQQUJMRVNbS0RdID0gbmV3IFVuaWNvZGVTZXQoCisgICAgICAgICAgICAiW15cXHUwMEEwXFx1MDBBOFxcdTAwQUFcXHUwMEFGXFx1MDBCMi1cXHUwMEI1XFx1MDBCOC1cXHUwMEJBIgorICAgICAgICAgICAgKyAiXFx1MDBCQy1cXHUwMEJFXFx1MDBDMC1cXHUwMEM1XFx1MDBDNy1cXHUwMENGXFx1MDBEMS1cXHUwMEQ2IgorICAgICAgICAgICAgKyAiXFx1MDBEOS1cXHUwMEREXFx1MDBFMC1cXHUwMEU1XFx1MDBFNy1cXHUwMEVGXFx1MDBGMS1cXHUwMEY2IgorICAgICAgICAgICAgKyAiXFx1MDBGOS1cXHUwMEZEXFx1MDBGRi1cXHUwMTBGXFx1MDExMi1cXHUwMTI1XFx1MDEyOC1cXHUwMTMwIgorICAgICAgICAgICAgKyAiXFx1MDEzMi1cXHUwMTM3XFx1MDEzOS1cXHUwMTQwXFx1MDE0My1cXHUwMTQ5XFx1MDE0Qy1cXHUwMTUxIgorICAgICAgICAgICAgKyAiXFx1MDE1NC1cXHUwMTY1XFx1MDE2OC1cXHUwMTdGXFx1MDFBMC1cXHUwMUExXFx1MDFBRi1cXHUwMUIwIgorICAgICAgICAgICAgKyAiXFx1MDFDNC1cXHUwMURDXFx1MDFERS1cXHUwMUUzXFx1MDFFNi1cXHUwMUY1XFx1MDFGOC1cXHUwMjFCIgorICAgICAgICAgICAgKyAiXFx1MDIxRS1cXHUwMjFGXFx1MDIyNi1cXHUwMjMzXFx1MDJCMC1cXHUwMkI4XFx1MDJEOC1cXHUwMkREIgorICAgICAgICAgICAgKyAiXFx1MDJFMC1cXHUwMkU0XFx1MDMwMC1cXHUwMzRFXFx1MDM2MC1cXHUwMzZGXFx1MDM3NFxcdTAzN0EiCisgICAgICAgICAgICArICJcXHUwMzdFXFx1MDM4NC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDM5MFxcdTAzQUEtXFx1MDNCMCIKKyAgICAgICAgICAgICsgIlxcdTAzQ0EtXFx1MDNDRVxcdTAzRDAtXFx1MDNENlxcdTAzRjAtXFx1MDNGMlxcdTAzRjQtXFx1MDNGNSIKKyAgICAgICAgICAgICsgIlxcdTA0MDAtXFx1MDQwMVxcdTA0MDNcXHUwNDA3XFx1MDQwQy1cXHUwNDBFXFx1MDQxOVxcdTA0MzkiCisgICAgICAgICAgICArICJcXHUwNDUwLVxcdTA0NTFcXHUwNDUzXFx1MDQ1N1xcdTA0NUMtXFx1MDQ1RVxcdTA0NzYtXFx1MDQ3NyIKKyAgICAgICAgICAgICsgIlxcdTA0ODMtXFx1MDQ4NlxcdTA0QzEtXFx1MDRDMlxcdTA0RDAtXFx1MDREM1xcdTA0RDYtXFx1MDRENyIKKyAgICAgICAgICAgICsgIlxcdTA0REEtXFx1MDRERlxcdTA0RTItXFx1MDRFN1xcdTA0RUEtXFx1MDRGNVxcdTA0RjgtXFx1MDRGOSIKKyAgICAgICAgICAgICsgIlxcdTA1ODdcXHUwNTkxLVxcdTA1QTFcXHUwNUEzLVxcdTA1QjlcXHUwNUJCLVxcdTA1QkRcXHUwNUJGIgorICAgICAgICAgICAgKyAiXFx1MDVDMS1cXHUwNUMyXFx1MDVDNFxcdTA2MjItXFx1MDYyNlxcdTA2NEItXFx1MDY1NVxcdTA2NzAiCisgICAgICAgICAgICArICJcXHUwNjc1LVxcdTA2NzhcXHUwNkMwXFx1MDZDMlxcdTA2RDNcXHUwNkQ2LVxcdTA2RENcXHUwNkRGLSIKKyAgICAgICAgICAgICsgIlxcdTA2RTRcXHUwNkU3LVxcdTA2RThcXHUwNkVBLVxcdTA2RURcXHUwNzExXFx1MDczMC1cXHUwNzRBIgorICAgICAgICAgICAgKyAiXFx1MDkyOVxcdTA5MzFcXHUwOTM0XFx1MDkzQ1xcdTA5NERcXHUwOTUxLVxcdTA5NTRcXHUwOTU4LSIKKyAgICAgICAgICAgICsgIlxcdTA5NUZcXHUwOUJDXFx1MDlDQi1cXHUwOUNEXFx1MDlEQy1cXHUwOUREXFx1MDlERlxcdTBBMzMiCisgICAgICAgICAgICArICJcXHUwQTM2XFx1MEEzQ1xcdTBBNERcXHUwQTU5LVxcdTBBNUJcXHUwQTVFXFx1MEFCQ1xcdTBBQ0RcXHUwQjNDIgorICAgICAgICAgICAgKyAiXFx1MEI0OFxcdTBCNEItXFx1MEI0RFxcdTBCNUMtXFx1MEI1RFxcdTBCOTRcXHUwQkNBLVxcdTBCQ0QiCisgICAgICAgICAgICArICJcXHUwQzQ4XFx1MEM0RFxcdTBDNTUtXFx1MEM1NlxcdTBDQzBcXHUwQ0M3LVxcdTBDQzhcXHUwQ0NBLSIKKyAgICAgICAgICAgICsgIlxcdTBDQ0JcXHUwQ0NEXFx1MEQ0QS1cXHUwRDREXFx1MERDQVxcdTBEREFcXHUwRERDLVxcdTBEREUiCisgICAgICAgICAgICArICJcXHUwRTMzXFx1MEUzOC1cXHUwRTNBXFx1MEU0OC1cXHUwRTRCXFx1MEVCM1xcdTBFQjgtXFx1MEVCOSIKKyAgICAgICAgICAgICsgIlxcdTBFQzgtXFx1MEVDQlxcdTBFREMtXFx1MEVERFxcdTBGMENcXHUwRjE4LVxcdTBGMTlcXHUwRjM1IgorICAgICAgICAgICAgKyAiXFx1MEYzN1xcdTBGMzlcXHUwRjQzXFx1MEY0RFxcdTBGNTJcXHUwRjU3XFx1MEY1Q1xcdTBGNjlcXHUwRjcxLSIKKyAgICAgICAgICAgICsgIlxcdTBGN0RcXHUwRjgwLVxcdTBGODRcXHUwRjg2LVxcdTBGODdcXHUwRjkzXFx1MEY5RFxcdTBGQTIiCisgICAgICAgICAgICArICJcXHUwRkE3XFx1MEZBQ1xcdTBGQjlcXHUwRkM2XFx1MTAyNlxcdTEwMzdcXHUxMDM5XFx1MTcxNFxcdTE3MzQiCisgICAgICAgICAgICArICJcXHUxN0QyXFx1MThBOVxcdTFFMDAtXFx1MUU5QlxcdTFFQTAtXFx1MUVGOVxcdTFGMDAtXFx1MUYxNSIKKyAgICAgICAgICAgICsgIlxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1NyIKKyAgICAgICAgICAgICsgIlxcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtIgorICAgICAgICAgICAgKyAiXFx1MUZDNFxcdTFGQzYtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGREQtXFx1MUZFRlxcdTFGRjItIgorICAgICAgICAgICAgKyAiXFx1MUZGNFxcdTFGRjYtXFx1MUZGRVxcdTIwMDAtXFx1MjAwQVxcdTIwMTFcXHUyMDE3XFx1MjAyNC0iCisgICAgICAgICAgICArICJcXHUyMDI2XFx1MjAyRlxcdTIwMzMtXFx1MjAzNFxcdTIwMzYtXFx1MjAzN1xcdTIwM0NcXHUyMDNFIgorICAgICAgICAgICAgKyAiXFx1MjA0Ny1cXHUyMDQ5XFx1MjA1N1xcdTIwNUZcXHUyMDcwLVxcdTIwNzFcXHUyMDc0LVxcdTIwOEUiCisgICAgICAgICAgICArICJcXHUyMEE4XFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtXFx1MjBFQVxcdTIxMDAtXFx1MjEwMyIKKyAgICAgICAgICAgICsgIlxcdTIxMDUtXFx1MjEwN1xcdTIxMDktXFx1MjExM1xcdTIxMTUtXFx1MjExNlxcdTIxMTktXFx1MjExRCIKKyAgICAgICAgICAgICsgIlxcdTIxMjAtXFx1MjEyMlxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtIgorICAgICAgICAgICAgKyAiXFx1MjEzMVxcdTIxMzMtXFx1MjEzOVxcdTIxM0QtXFx1MjE0MFxcdTIxNDUtXFx1MjE0OVxcdTIxNTMtIgorICAgICAgICAgICAgKyAiXFx1MjE3RlxcdTIxOUEtXFx1MjE5QlxcdTIxQUVcXHUyMUNELVxcdTIxQ0ZcXHUyMjA0XFx1MjIwOSIKKyAgICAgICAgICAgICsgIlxcdTIyMENcXHUyMjI0XFx1MjIyNlxcdTIyMkMtXFx1MjIyRFxcdTIyMkYtXFx1MjIzMFxcdTIyNDEiCisgICAgICAgICAgICArICJcXHUyMjQ0XFx1MjI0N1xcdTIyNDlcXHUyMjYwXFx1MjI2MlxcdTIyNkQtXFx1MjI3MVxcdTIyNzQtIgorICAgICAgICAgICAgKyAiXFx1MjI3NVxcdTIyNzgtXFx1MjI3OVxcdTIyODAtXFx1MjI4MVxcdTIyODQtXFx1MjI4NVxcdTIyODgtIgorICAgICAgICAgICAgKyAiXFx1MjI4OVxcdTIyQUMtXFx1MjJBRlxcdTIyRTAtXFx1MjJFM1xcdTIyRUEtXFx1MjJFRFxcdTIzMjktIgorICAgICAgICAgICAgKyAiXFx1MjMyQVxcdTI0NjAtXFx1MjRFQVxcdTJBMENcXHUyQTc0LVxcdTJBNzZcXHUyQURDXFx1MkU5RiIKKyAgICAgICAgICAgICsgIlxcdTJFRjNcXHUyRjAwLVxcdTJGRDVcXHUzMDAwXFx1MzAyQS1cXHUzMDJGXFx1MzAzNlxcdTMwMzgtIgorICAgICAgICAgICAgKyAiXFx1MzAzQVxcdTMwNENcXHUzMDRFXFx1MzA1MFxcdTMwNTJcXHUzMDU0XFx1MzA1NlxcdTMwNThcXHUzMDVBIgorICAgICAgICAgICAgKyAiXFx1MzA1Q1xcdTMwNUVcXHUzMDYwXFx1MzA2MlxcdTMwNjVcXHUzMDY3XFx1MzA2OVxcdTMwNzAtXFx1MzA3MSIKKyAgICAgICAgICAgICsgIlxcdTMwNzMtXFx1MzA3NFxcdTMwNzYtXFx1MzA3N1xcdTMwNzktXFx1MzA3QVxcdTMwN0MtXFx1MzA3RCIKKyAgICAgICAgICAgICsgIlxcdTMwOTRcXHUzMDk5LVxcdTMwOUNcXHUzMDlFLVxcdTMwOUZcXHUzMEFDXFx1MzBBRVxcdTMwQjAiCisgICAgICAgICAgICArICJcXHUzMEIyXFx1MzBCNFxcdTMwQjZcXHUzMEI4XFx1MzBCQVxcdTMwQkNcXHUzMEJFXFx1MzBDMFxcdTMwQzIiCisgICAgICAgICAgICArICJcXHUzMEM1XFx1MzBDN1xcdTMwQzlcXHUzMEQwLVxcdTMwRDFcXHUzMEQzLVxcdTMwRDRcXHUzMEQ2LSIKKyAgICAgICAgICAgICsgIlxcdTMwRDdcXHUzMEQ5LVxcdTMwREFcXHUzMERDLVxcdTMwRERcXHUzMEY0XFx1MzBGNy1cXHUzMEZBIgorICAgICAgICAgICAgKyAiXFx1MzBGRS1cXHUzMEZGXFx1MzEzMS1cXHUzMThFXFx1MzE5Mi1cXHUzMTlGXFx1MzIwMC1cXHUzMjFDIgorICAgICAgICAgICAgKyAiXFx1MzIyMC1cXHUzMjQzXFx1MzI1MS1cXHUzMjdCXFx1MzI4MC1cXHUzMkNCXFx1MzJEMC1cXHUzMkZFIgorICAgICAgICAgICAgKyAiXFx1MzMwMC1cXHUzMzc2XFx1MzM3Qi1cXHUzM0REXFx1MzNFMC1cXHUzM0ZFXFx1QUMwMC1cXHVEN0EzIgorICAgICAgICAgICAgKyAiXFx1RjkwMC1cXHVGQTBEXFx1RkExMFxcdUZBMTJcXHVGQTE1LVxcdUZBMUVcXHVGQTIwXFx1RkEyMiIKKyAgICAgICAgICAgICsgIlxcdUZBMjUtXFx1RkEyNlxcdUZBMkEtXFx1RkEyRFxcdUZBMzAtXFx1RkE2QVxcdUZCMDAtXFx1RkIwNiIKKyAgICAgICAgICAgICsgIlxcdUZCMTMtXFx1RkIxN1xcdUZCMUQtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0VcXHVGQjQwLSIKKyAgICAgICAgICAgICsgIlxcdUZCNDFcXHVGQjQzLVxcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLSIKKyAgICAgICAgICAgICsgIlxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkNcXHVGRTIwLVxcdUZFMjNcXHVGRTMwLSIKKyAgICAgICAgICAgICsgIlxcdUZFNDRcXHVGRTQ5LVxcdUZFNTJcXHVGRTU0LVxcdUZFNjZcXHVGRTY4LVxcdUZFNkJcXHVGRTcwLSIKKyAgICAgICAgICAgICsgIlxcdUZFNzJcXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkYwMS1cXHVGRkJFXFx1RkZDMi1cXHVGRkM3IgorICAgICAgICAgICAgKyAiXFx1RkZDQS1cXHVGRkNGXFx1RkZEMi1cXHVGRkQ3XFx1RkZEQS1cXHVGRkRDXFx1RkZFMC1cXHVGRkU2IgorICAgICAgICAgICAgKyAiXFx1RkZFOC1cXHVGRkVFXFxVMDAwMUQxNUUtXFxVMDAwMUQxNjlcXFUwMDAxRDE2RC1cXFUwMDAxRDE3MiIKKyAgICAgICAgICAgICsgIlxcVTAwMDFEMTdCLVxcVTAwMDFEMTgyXFxVMDAwMUQxODUtXFxVMDAwMUQxOEJcXFUwMDAxRDFBQS0iCisgICAgICAgICAgICArICJcXFUwMDAxRDFBRFxcVTAwMDFEMUJCLVxcVTAwMDFEMUMwXFxVMDAwMUQ0MDAtXFxVMDAwMUQ0NTRcXFUwMDAxIgorICAgICAgICAgICAgKyAiRDQ1Ni1cXFUwMDAxRDQ5Q1xcVTAwMDFENDlFLVxcVTAwMDFENDlGXFxVMDAwMUQ0QTJcXFUwMDAxRDRBNS0iCisgICAgICAgICAgICArICJcXFUwMDAxRDRBNlxcVTAwMDFENEE5LVxcVTAwMDFENEFDXFxVMDAwMUQ0QUUtXFxVMDAwMUQ0QjlcXFUwMDAxIgorICAgICAgICAgICAgKyAiRDRCQlxcVTAwMDFENEJELVxcVTAwMDFENEMwXFxVMDAwMUQ0QzItXFxVMDAwMUQ0QzNcXFUwMDAxRDRDNS0iCisgICAgICAgICAgICArICJcXFUwMDAxRDUwNVxcVTAwMDFENTA3LVxcVTAwMDFENTBBXFxVMDAwMUQ1MEQtXFxVMDAwMUQ1MTRcXFUwMDAxIgorICAgICAgICAgICAgKyAiRDUxNi1cXFUwMDAxRDUxQ1xcVTAwMDFENTFFLVxcVTAwMDFENTM5XFxVMDAwMUQ1M0ItXFxVMDAwMUQ1M0UiCisgICAgICAgICAgICArICJcXFUwMDAxRDU0MC1cXFUwMDAxRDU0NFxcVTAwMDFENTQ2XFxVMDAwMUQ1NEEtXFxVMDAwMUQ1NTBcXFUwMDAxIgorICAgICAgICAgICAgKyAiRDU1Mi1cXFUwMDAxRDZBM1xcVTAwMDFENkE4LVxcVTAwMDFEN0M5XFxVMDAwMUQ3Q0UtXFxVMDAwMUQ3RkYiCisgICAgICAgICAgICArICJcXFUwMDAyRjgwMC1cXFUwMDAyRkExRF0iLCBmYWxzZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS0M6CisgICAgICAgICAgVU5TQUZFX1NUQVJUU1tLQ10gPSBuZXcgVW5pY29kZVNldCgiW1x1MDlCRVx1MDlEN1x1MEIzRVx1MEI1Ni1cdTBCNTdcdTBCQkVcdTBCRDdcdTBDQzJcdTBDRDUtXHUwQ0Q2IgorICAgICAgICAgICAgKyAiXHUwRDNFXHUwRDU3XHUwRENGXHUwRERGXHUwRjczXHUwRjc1XHUwRjgxXHUxMDJFXHUxMTYxLVx1MTE3NVx1MTFBOC1cdTExQzJcdTMxMzNcdTMxMzUtXHUzMTM2IgorICAgICAgICAgICAgKyAiXHUzMTNBLVx1MzEzRlx1MzE0Ri1cdTMxNjNcdUZGOUUtXHVGRjlGXHVGRkEzXHVGRkE1LVx1RkZBNlx1RkZBQS1cdUZGQUZcdUZGQzItXHVGRkM3XHVGRkNBLVx1RkZDRiIKKyAgICAgICAgICAgICsgIlx1RkZEMi1cdUZGRDdcdUZGREEtXHVGRkRDXSIsIGZhbHNlKTsKKyAgICAgICAgICBTS0lQUEFCTEVTW0tDXSA9IG5ldyBVbmljb2RlU2V0KAorICAgICAgICAgICAgIltePC0+QS1QUi1aYS1wci16XFx1MDBBMFxcdTAwQThcXHUwMEFBXFx1MDBBRlxcdTAwQjItXFx1MDBCNSIKKyAgICAgICAgICAgICsgIlxcdTAwQjgtXFx1MDBCQVxcdTAwQkMtXFx1MDBCRVxcdTAwQzAtXFx1MDBDRlxcdTAwRDEtXFx1MDBENiIKKyAgICAgICAgICAgICsgIlxcdTAwRDgtXFx1MDBERFxcdTAwRTAtXFx1MDBFRlxcdTAwRjEtXFx1MDBGNlxcdTAwRjgtXFx1MDBGRCIKKyAgICAgICAgICAgICsgIlxcdTAwRkYtXFx1MDEwM1xcdTAxMDYtXFx1MDEwRlxcdTAxMTItXFx1MDExN1xcdTAxMUEtXFx1MDEyMSIKKyAgICAgICAgICAgICsgIlxcdTAxMjQtXFx1MDEyNVxcdTAxMjgtXFx1MDEyRFxcdTAxMzBcXHUwMTMyLVxcdTAxMzNcXHUwMTM5LSIKKyAgICAgICAgICAgICsgIlxcdTAxM0FcXHUwMTNELVxcdTAxNDBcXHUwMTQzLVxcdTAxNDRcXHUwMTQ3LVxcdTAxNDlcXHUwMTRDLSIKKyAgICAgICAgICAgICsgIlxcdTAxNTFcXHUwMTU0LVxcdTAxNTVcXHUwMTU4LVxcdTAxNURcXHUwMTYwLVxcdTAxNjFcXHUwMTY0LSIKKyAgICAgICAgICAgICsgIlxcdTAxNjVcXHUwMTY4LVxcdTAxNzFcXHUwMTc0LVxcdTAxN0ZcXHUwMUEwLVxcdTAxQTFcXHUwMUFGLSIKKyAgICAgICAgICAgICsgIlxcdTAxQjBcXHUwMUI3XFx1MDFDNC1cXHUwMURDXFx1MDFERS1cXHUwMUUxXFx1MDFFNi1cXHUwMUVCIgorICAgICAgICAgICAgKyAiXFx1MDFGMS1cXHUwMUY1XFx1MDFGOC1cXHUwMUZCXFx1MDIwMC1cXHUwMjFCXFx1MDIxRS1cXHUwMjFGIgorICAgICAgICAgICAgKyAiXFx1MDIyNi1cXHUwMjMzXFx1MDI5MlxcdTAyQjAtXFx1MDJCOFxcdTAyRDgtXFx1MDJERFxcdTAyRTAtIgorICAgICAgICAgICAgKyAiXFx1MDJFNFxcdTAzMDAtXFx1MDM0RVxcdTAzNjAtXFx1MDM2RlxcdTAzNzRcXHUwMzdBXFx1MDM3RSIKKyAgICAgICAgICAgICsgIlxcdTAzODQtXFx1MDM4NVxcdTAzODdcXHUwMzkxXFx1MDM5NVxcdTAzOTdcXHUwMzk5XFx1MDM5RlxcdTAzQTEiCisgICAgICAgICAgICArICJcXHUwM0E1XFx1MDNBOVxcdTAzQUNcXHUwM0FFXFx1MDNCMVxcdTAzQjVcXHUwM0I3XFx1MDNCOVxcdTAzQkYiCisgICAgICAgICAgICArICJcXHUwM0MxXFx1MDNDNVxcdTAzQzktXFx1MDNDQlxcdTAzQ0VcXHUwM0QwLVxcdTAzRDZcXHUwM0YwLSIKKyAgICAgICAgICAgICsgIlxcdTAzRjJcXHUwM0Y0LVxcdTAzRjVcXHUwNDA2XFx1MDQxMFxcdTA0MTNcXHUwNDE1LVxcdTA0MTgiCisgICAgICAgICAgICArICJcXHUwNDFBXFx1MDQxRVxcdTA0MjNcXHUwNDI3XFx1MDQyQlxcdTA0MkRcXHUwNDMwXFx1MDQzM1xcdTA0MzUtIgorICAgICAgICAgICAgKyAiXFx1MDQzOFxcdTA0M0FcXHUwNDNFXFx1MDQ0M1xcdTA0NDdcXHUwNDRCXFx1MDQ0RFxcdTA0NTZcXHUwNDc0LSIKKyAgICAgICAgICAgICsgIlxcdTA0NzVcXHUwNDgzLVxcdTA0ODZcXHUwNEQ4LVxcdTA0RDlcXHUwNEU4LVxcdTA0RTlcXHUwNTg3IgorICAgICAgICAgICAgKyAiXFx1MDU5MS1cXHUwNUExXFx1MDVBMy1cXHUwNUI5XFx1MDVCQi1cXHUwNUJEXFx1MDVCRlxcdTA1QzEtIgorICAgICAgICAgICAgKyAiXFx1MDVDMlxcdTA1QzRcXHUwNjIyLVxcdTA2MjNcXHUwNjI3XFx1MDY0OFxcdTA2NEEtXFx1MDY1NSIKKyAgICAgICAgICAgICsgIlxcdTA2NzBcXHUwNjc1LVxcdTA2NzhcXHUwNkMxXFx1MDZEMlxcdTA2RDUtXFx1MDZEQ1xcdTA2REYtIgorICAgICAgICAgICAgKyAiXFx1MDZFNFxcdTA2RTctXFx1MDZFOFxcdTA2RUEtXFx1MDZFRFxcdTA3MTFcXHUwNzMwLVxcdTA3NEEiCisgICAgICAgICAgICArICJcXHUwOTI4XFx1MDkzMFxcdTA5MzNcXHUwOTNDXFx1MDk0RFxcdTA5NTEtXFx1MDk1NFxcdTA5NTgtIgorICAgICAgICAgICAgKyAiXFx1MDk1RlxcdTA5QkNcXHUwOUJFXFx1MDlDN1xcdTA5Q0RcXHUwOUQ3XFx1MDlEQy1cXHUwOUREXFx1MDlERiIKKyAgICAgICAgICAgICsgIlxcdTBBMzNcXHUwQTM2XFx1MEEzQ1xcdTBBNERcXHUwQTU5LVxcdTBBNUJcXHUwQTVFXFx1MEFCQ1xcdTBBQ0QiCisgICAgICAgICAgICArICJcXHUwQjNDXFx1MEIzRVxcdTBCNDdcXHUwQjREXFx1MEI1Ni1cXHUwQjU3XFx1MEI1Qy1cXHUwQjVEIgorICAgICAgICAgICAgKyAiXFx1MEI5MlxcdTBCQkVcXHUwQkM2LVxcdTBCQzdcXHUwQkNEXFx1MEJEN1xcdTBDNDZcXHUwQzREXFx1MEM1NSIKKyAgICAgICAgICAgICsgIi1cXHUwQzU2XFx1MENCRlxcdTBDQzJcXHUwQ0M2XFx1MENDQVxcdTBDQ0RcXHUwQ0Q1LVxcdTBDRDYiCisgICAgICAgICAgICArICJcXHUwRDNFXFx1MEQ0Ni1cXHUwRDQ3XFx1MEQ0RFxcdTBENTdcXHUwRENBXFx1MERDRlxcdTBERDlcXHUwRERDIgorICAgICAgICAgICAgKyAiXFx1MERERlxcdTBFMzNcXHUwRTM4LVxcdTBFM0FcXHUwRTQ4LVxcdTBFNEJcXHUwRUIzXFx1MEVCOC0iCisgICAgICAgICAgICArICJcXHUwRUI5XFx1MEVDOC1cXHUwRUNCXFx1MEVEQy1cXHUwRUREXFx1MEYwQ1xcdTBGMTgtXFx1MEYxOSIKKyAgICAgICAgICAgICsgIlxcdTBGMzVcXHUwRjM3XFx1MEYzOVxcdTBGNDNcXHUwRjREXFx1MEY1MlxcdTBGNTdcXHUwRjVDXFx1MEY2OSIKKyAgICAgICAgICAgICsgIlxcdTBGNzEtXFx1MEY3RFxcdTBGODAtXFx1MEY4NFxcdTBGODYtXFx1MEY4N1xcdTBGOTNcXHUwRjlEIgorICAgICAgICAgICAgKyAiXFx1MEZBMlxcdTBGQTdcXHUwRkFDXFx1MEZCOVxcdTBGQzZcXHUxMDI1XFx1MTAyRVxcdTEwMzdcXHUxMDM5IgorICAgICAgICAgICAgKyAiXFx1MTEwMC1cXHUxMTEyXFx1MTE2MS1cXHUxMTc1XFx1MTFBOC1cXHUxMUMyXFx1MTcxNFxcdTE3MzQiCisgICAgICAgICAgICArICJcXHUxN0QyXFx1MThBOVxcdTFFMDAtXFx1MUUwM1xcdTFFMEEtXFx1MUUwRlxcdTFFMTItXFx1MUUxQiIKKyAgICAgICAgICAgICsgIlxcdTFFMjAtXFx1MUUyN1xcdTFFMkEtXFx1MUU0MVxcdTFFNDQtXFx1MUU1M1xcdTFFNTgtXFx1MUU3RCIKKyAgICAgICAgICAgICsgIlxcdTFFODAtXFx1MUU4N1xcdTFFOEUtXFx1MUU5MVxcdTFFOTYtXFx1MUU5QlxcdTFFQTAtXFx1MUVGMyIKKyAgICAgICAgICAgICsgIlxcdTFFRjYtXFx1MUVGOVxcdTFGMDAtXFx1MUYxMVxcdTFGMTgtXFx1MUYxOVxcdTFGMjAtXFx1MUYzMSIKKyAgICAgICAgICAgICsgIlxcdTFGMzgtXFx1MUYzOVxcdTFGNDAtXFx1MUY0MVxcdTFGNDgtXFx1MUY0OVxcdTFGNTAtXFx1MUY1MSIKKyAgICAgICAgICAgICsgIlxcdTFGNTlcXHUxRjYwLVxcdTFGNzFcXHUxRjczLVxcdTFGNzVcXHUxRjc3XFx1MUY3OVxcdTFGN0ItIgorICAgICAgICAgICAgKyAiXFx1MUY3RFxcdTFGODAtXFx1MUY4MVxcdTFGODgtXFx1MUY4OVxcdTFGOTAtXFx1MUY5MVxcdTFGOTgtIgorICAgICAgICAgICAgKyAiXFx1MUY5OVxcdTFGQTAtXFx1MUZBMVxcdTFGQTgtXFx1MUZBOVxcdTFGQjNcXHUxRkI2XFx1MUZCQi0iCisgICAgICAgICAgICArICJcXHUxRkMxXFx1MUZDM1xcdTFGQzZcXHUxRkM5XFx1MUZDQi1cXHUxRkNGXFx1MUZEM1xcdTFGREJcXHUxRkREIgorICAgICAgICAgICAgKyAiLVxcdTFGREZcXHUxRkUzXFx1MUZFQlxcdTFGRUQtXFx1MUZFRlxcdTFGRjNcXHUxRkY2XFx1MUZGOSIKKyAgICAgICAgICAgICsgIlxcdTFGRkItXFx1MUZGRVxcdTIwMDAtXFx1MjAwQVxcdTIwMTFcXHUyMDE3XFx1MjAyNC1cXHUyMDI2IgorICAgICAgICAgICAgKyAiXFx1MjAyRlxcdTIwMzMtXFx1MjAzNFxcdTIwMzYtXFx1MjAzN1xcdTIwM0NcXHUyMDNFXFx1MjA0Ny0iCisgICAgICAgICAgICArICJcXHUyMDQ5XFx1MjA1N1xcdTIwNUZcXHUyMDcwLVxcdTIwNzFcXHUyMDc0LVxcdTIwOEVcXHUyMEE4IgorICAgICAgICAgICAgKyAiXFx1MjBEMC1cXHUyMERDXFx1MjBFMVxcdTIwRTUtXFx1MjBFQVxcdTIxMDAtXFx1MjEwM1xcdTIxMDUtIgorICAgICAgICAgICAgKyAiXFx1MjEwN1xcdTIxMDktXFx1MjExM1xcdTIxMTUtXFx1MjExNlxcdTIxMTktXFx1MjExRFxcdTIxMjAtIgorICAgICAgICAgICAgKyAiXFx1MjEyMlxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzMSIKKyAgICAgICAgICAgICsgIlxcdTIxMzMtXFx1MjEzOVxcdTIxM0QtXFx1MjE0MFxcdTIxNDUtXFx1MjE0OVxcdTIxNTMtXFx1MjE3RiIKKyAgICAgICAgICAgICsgIlxcdTIxOTBcXHUyMTkyXFx1MjE5NFxcdTIxRDBcXHUyMUQyXFx1MjFENFxcdTIyMDNcXHUyMjA4XFx1MjIwQiIKKyAgICAgICAgICAgICsgIlxcdTIyMjNcXHUyMjI1XFx1MjIyQy1cXHUyMjJEXFx1MjIyRi1cXHUyMjMwXFx1MjIzQ1xcdTIyNDMiCisgICAgICAgICAgICArICJcXHUyMjQ1XFx1MjI0OFxcdTIyNERcXHUyMjYxXFx1MjI2NC1cXHUyMjY1XFx1MjI3Mi1cXHUyMjczIgorICAgICAgICAgICAgKyAiXFx1MjI3Ni1cXHUyMjc3XFx1MjI3QS1cXHUyMjdEXFx1MjI4Mi1cXHUyMjgzXFx1MjI4Ni1cXHUyMjg3IgorICAgICAgICAgICAgKyAiXFx1MjI5MS1cXHUyMjkyXFx1MjJBMlxcdTIyQTgtXFx1MjJBOVxcdTIyQUJcXHUyMkIyLVxcdTIyQjUiCisgICAgICAgICAgICArICJcXHUyMzI5LVxcdTIzMkFcXHUyNDYwLVxcdTI0RUFcXHUyQTBDXFx1MkE3NC1cXHUyQTc2XFx1MkFEQyIKKyAgICAgICAgICAgICsgIlxcdTJFOUZcXHUyRUYzXFx1MkYwMC1cXHUyRkQ1XFx1MzAwMFxcdTMwMkEtXFx1MzAyRlxcdTMwMzYiCisgICAgICAgICAgICArICJcXHUzMDM4LVxcdTMwM0FcXHUzMDQ2XFx1MzA0QlxcdTMwNERcXHUzMDRGXFx1MzA1MVxcdTMwNTNcXHUzMDU1IgorICAgICAgICAgICAgKyAiXFx1MzA1N1xcdTMwNTlcXHUzMDVCXFx1MzA1RFxcdTMwNUZcXHUzMDYxXFx1MzA2NFxcdTMwNjZcXHUzMDY4IgorICAgICAgICAgICAgKyAiXFx1MzA2RlxcdTMwNzJcXHUzMDc1XFx1MzA3OFxcdTMwN0JcXHUzMDk5LVxcdTMwOURcXHUzMDlGXFx1MzBBNiIKKyAgICAgICAgICAgICsgIlxcdTMwQUJcXHUzMEFEXFx1MzBBRlxcdTMwQjFcXHUzMEIzXFx1MzBCNVxcdTMwQjdcXHUzMEI5XFx1MzBCQiIKKyAgICAgICAgICAgICsgIlxcdTMwQkRcXHUzMEJGXFx1MzBDMVxcdTMwQzRcXHUzMEM2XFx1MzBDOFxcdTMwQ0ZcXHUzMEQyXFx1MzBENSIKKyAgICAgICAgICAgICsgIlxcdTMwRDhcXHUzMERCXFx1MzBFRi1cXHUzMEYyXFx1MzBGRFxcdTMwRkZcXHUzMTMxLVxcdTMxOEUiCisgICAgICAgICAgICArICJcXHUzMTkyLVxcdTMxOUZcXHUzMjAwLVxcdTMyMUNcXHUzMjIwLVxcdTMyNDNcXHUzMjUxLVxcdTMyN0IiCisgICAgICAgICAgICArICJcXHUzMjgwLVxcdTMyQ0JcXHUzMkQwLVxcdTMyRkVcXHUzMzAwLVxcdTMzNzZcXHUzMzdCLVxcdTMzREQiCisgICAgICAgICAgICArICJcXHUzM0UwLVxcdTMzRkVcXHVBQzAwXFx1QUMxQ1xcdUFDMzhcXHVBQzU0XFx1QUM3MFxcdUFDOENcXHVBQ0E4IgorICAgICAgICAgICAgKyAiXFx1QUNDNFxcdUFDRTBcXHVBQ0ZDXFx1QUQxOFxcdUFEMzRcXHVBRDUwXFx1QUQ2Q1xcdUFEODhcXHVBREE0IgorICAgICAgICAgICAgKyAiXFx1QURDMFxcdUFERENcXHVBREY4XFx1QUUxNFxcdUFFMzBcXHVBRTRDXFx1QUU2OFxcdUFFODRcXHVBRUEwIgorICAgICAgICAgICAgKyAiXFx1QUVCQ1xcdUFFRDhcXHVBRUY0XFx1QUYxMFxcdUFGMkNcXHVBRjQ4XFx1QUY2NFxcdUFGODBcXHVBRjlDIgorICAgICAgICAgICAgKyAiXFx1QUZCOFxcdUFGRDRcXHVBRkYwXFx1QjAwQ1xcdUIwMjhcXHVCMDQ0XFx1QjA2MFxcdUIwN0NcXHVCMDk4IgorICAgICAgICAgICAgKyAiXFx1QjBCNFxcdUIwRDBcXHVCMEVDXFx1QjEwOFxcdUIxMjRcXHVCMTQwXFx1QjE1Q1xcdUIxNzhcXHVCMTk0IgorICAgICAgICAgICAgKyAiXFx1QjFCMFxcdUIxQ0NcXHVCMUU4XFx1QjIwNFxcdUIyMjBcXHVCMjNDXFx1QjI1OFxcdUIyNzRcXHVCMjkwIgorICAgICAgICAgICAgKyAiXFx1QjJBQ1xcdUIyQzhcXHVCMkU0XFx1QjMwMFxcdUIzMUNcXHVCMzM4XFx1QjM1NFxcdUIzNzBcXHVCMzhDIgorICAgICAgICAgICAgKyAiXFx1QjNBOFxcdUIzQzRcXHVCM0UwXFx1QjNGQ1xcdUI0MThcXHVCNDM0XFx1QjQ1MFxcdUI0NkNcXHVCNDg4IgorICAgICAgICAgICAgKyAiXFx1QjRBNFxcdUI0QzBcXHVCNERDXFx1QjRGOFxcdUI1MTRcXHVCNTMwXFx1QjU0Q1xcdUI1NjhcXHVCNTg0IgorICAgICAgICAgICAgKyAiXFx1QjVBMFxcdUI1QkNcXHVCNUQ4XFx1QjVGNFxcdUI2MTBcXHVCNjJDXFx1QjY0OFxcdUI2NjRcXHVCNjgwIgorICAgICAgICAgICAgKyAiXFx1QjY5Q1xcdUI2QjhcXHVCNkQ0XFx1QjZGMFxcdUI3MENcXHVCNzI4XFx1Qjc0NFxcdUI3NjBcXHVCNzdDIgorICAgICAgICAgICAgKyAiXFx1Qjc5OFxcdUI3QjRcXHVCN0QwXFx1QjdFQ1xcdUI4MDhcXHVCODI0XFx1Qjg0MFxcdUI4NUNcXHVCODc4IgorICAgICAgICAgICAgKyAiXFx1Qjg5NFxcdUI4QjBcXHVCOENDXFx1QjhFOFxcdUI5MDRcXHVCOTIwXFx1QjkzQ1xcdUI5NThcXHVCOTc0IgorICAgICAgICAgICAgKyAiXFx1Qjk5MFxcdUI5QUNcXHVCOUM4XFx1QjlFNFxcdUJBMDBcXHVCQTFDXFx1QkEzOFxcdUJBNTRcXHVCQTcwIgorICAgICAgICAgICAgKyAiXFx1QkE4Q1xcdUJBQThcXHVCQUM0XFx1QkFFMFxcdUJBRkNcXHVCQjE4XFx1QkIzNFxcdUJCNTBcXHVCQjZDIgorICAgICAgICAgICAgKyAiXFx1QkI4OFxcdUJCQTRcXHVCQkMwXFx1QkJEQ1xcdUJCRjhcXHVCQzE0XFx1QkMzMFxcdUJDNENcXHVCQzY4IgorICAgICAgICAgICAgKyAiXFx1QkM4NFxcdUJDQTBcXHVCQ0JDXFx1QkNEOFxcdUJDRjRcXHVCRDEwXFx1QkQyQ1xcdUJENDhcXHVCRDY0IgorICAgICAgICAgICAgKyAiXFx1QkQ4MFxcdUJEOUNcXHVCREI4XFx1QkRENFxcdUJERjBcXHVCRTBDXFx1QkUyOFxcdUJFNDRcXHVCRTYwIgorICAgICAgICAgICAgKyAiXFx1QkU3Q1xcdUJFOThcXHVCRUI0XFx1QkVEMFxcdUJFRUNcXHVCRjA4XFx1QkYyNFxcdUJGNDBcXHVCRjVDIgorICAgICAgICAgICAgKyAiXFx1QkY3OFxcdUJGOTRcXHVCRkIwXFx1QkZDQ1xcdUJGRThcXHVDMDA0XFx1QzAyMFxcdUMwM0NcXHVDMDU4IgorICAgICAgICAgICAgKyAiXFx1QzA3NFxcdUMwOTBcXHVDMEFDXFx1QzBDOFxcdUMwRTRcXHVDMTAwXFx1QzExQ1xcdUMxMzhcXHVDMTU0IgorICAgICAgICAgICAgKyAiXFx1QzE3MFxcdUMxOENcXHVDMUE4XFx1QzFDNFxcdUMxRTBcXHVDMUZDXFx1QzIxOFxcdUMyMzRcXHVDMjUwIgorICAgICAgICAgICAgKyAiXFx1QzI2Q1xcdUMyODhcXHVDMkE0XFx1QzJDMFxcdUMyRENcXHVDMkY4XFx1QzMxNFxcdUMzMzBcXHVDMzRDIgorICAgICAgICAgICAgKyAiXFx1QzM2OFxcdUMzODRcXHVDM0EwXFx1QzNCQ1xcdUMzRDhcXHVDM0Y0XFx1QzQxMFxcdUM0MkNcXHVDNDQ4IgorICAgICAgICAgICAgKyAiXFx1QzQ2NFxcdUM0ODBcXHVDNDlDXFx1QzRCOFxcdUM0RDRcXHVDNEYwXFx1QzUwQ1xcdUM1MjhcXHVDNTQ0IgorICAgICAgICAgICAgKyAiXFx1QzU2MFxcdUM1N0NcXHVDNTk4XFx1QzVCNFxcdUM1RDBcXHVDNUVDXFx1QzYwOFxcdUM2MjRcXHVDNjQwIgorICAgICAgICAgICAgKyAiXFx1QzY1Q1xcdUM2NzhcXHVDNjk0XFx1QzZCMFxcdUM2Q0NcXHVDNkU4XFx1QzcwNFxcdUM3MjBcXHVDNzNDIgorICAgICAgICAgICAgKyAiXFx1Qzc1OFxcdUM3NzRcXHVDNzkwXFx1QzdBQ1xcdUM3QzhcXHVDN0U0XFx1QzgwMFxcdUM4MUNcXHVDODM4IgorICAgICAgICAgICAgKyAiXFx1Qzg1NFxcdUM4NzBcXHVDODhDXFx1QzhBOFxcdUM4QzRcXHVDOEUwXFx1QzhGQ1xcdUM5MThcXHVDOTM0IgorICAgICAgICAgICAgKyAiXFx1Qzk1MFxcdUM5NkNcXHVDOTg4XFx1QzlBNFxcdUM5QzBcXHVDOURDXFx1QzlGOFxcdUNBMTRcXHVDQTMwIgorICAgICAgICAgICAgKyAiXFx1Q0E0Q1xcdUNBNjhcXHVDQTg0XFx1Q0FBMFxcdUNBQkNcXHVDQUQ4XFx1Q0FGNFxcdUNCMTBcXHVDQjJDIgorICAgICAgICAgICAgKyAiXFx1Q0I0OFxcdUNCNjRcXHVDQjgwXFx1Q0I5Q1xcdUNCQjhcXHVDQkQ0XFx1Q0JGMFxcdUNDMENcXHVDQzI4IgorICAgICAgICAgICAgKyAiXFx1Q0M0NFxcdUNDNjBcXHVDQzdDXFx1Q0M5OFxcdUNDQjRcXHVDQ0QwXFx1Q0NFQ1xcdUNEMDhcXHVDRDI0IgorICAgICAgICAgICAgKyAiXFx1Q0Q0MFxcdUNENUNcXHVDRDc4XFx1Q0Q5NFxcdUNEQjBcXHVDRENDXFx1Q0RFOFxcdUNFMDRcXHVDRTIwIgorICAgICAgICAgICAgKyAiXFx1Q0UzQ1xcdUNFNThcXHVDRTc0XFx1Q0U5MFxcdUNFQUNcXHVDRUM4XFx1Q0VFNFxcdUNGMDBcXHVDRjFDIgorICAgICAgICAgICAgKyAiXFx1Q0YzOFxcdUNGNTRcXHVDRjcwXFx1Q0Y4Q1xcdUNGQThcXHVDRkM0XFx1Q0ZFMFxcdUNGRkNcXHVEMDE4IgorICAgICAgICAgICAgKyAiXFx1RDAzNFxcdUQwNTBcXHVEMDZDXFx1RDA4OFxcdUQwQTRcXHVEMEMwXFx1RDBEQ1xcdUQwRjhcXHVEMTE0IgorICAgICAgICAgICAgKyAiXFx1RDEzMFxcdUQxNENcXHVEMTY4XFx1RDE4NFxcdUQxQTBcXHVEMUJDXFx1RDFEOFxcdUQxRjRcXHVEMjEwIgorICAgICAgICAgICAgKyAiXFx1RDIyQ1xcdUQyNDhcXHVEMjY0XFx1RDI4MFxcdUQyOUNcXHVEMkI4XFx1RDJENFxcdUQyRjBcXHVEMzBDIgorICAgICAgICAgICAgKyAiXFx1RDMyOFxcdUQzNDRcXHVEMzYwXFx1RDM3Q1xcdUQzOThcXHVEM0I0XFx1RDNEMFxcdUQzRUNcXHVENDA4IgorICAgICAgICAgICAgKyAiXFx1RDQyNFxcdUQ0NDBcXHVENDVDXFx1RDQ3OFxcdUQ0OTRcXHVENEIwXFx1RDRDQ1xcdUQ0RThcXHVENTA0IgorICAgICAgICAgICAgKyAiXFx1RDUyMFxcdUQ1M0NcXHVENTU4XFx1RDU3NFxcdUQ1OTBcXHVENUFDXFx1RDVDOFxcdUQ1RTRcXHVENjAwIgorICAgICAgICAgICAgKyAiXFx1RDYxQ1xcdUQ2MzhcXHVENjU0XFx1RDY3MFxcdUQ2OENcXHVENkE4XFx1RDZDNFxcdUQ2RTBcXHVENkZDIgorICAgICAgICAgICAgKyAiXFx1RDcxOFxcdUQ3MzRcXHVENzUwXFx1RDc2Q1xcdUQ3ODhcXHVGOTAwLVxcdUZBMERcXHVGQTEwXFx1RkExMiIKKyAgICAgICAgICAgICsgIlxcdUZBMTUtXFx1RkExRVxcdUZBMjBcXHVGQTIyXFx1RkEyNS1cXHVGQTI2XFx1RkEyQS1cXHVGQTJEIgorICAgICAgICAgICAgKyAiXFx1RkEzMC1cXHVGQTZBXFx1RkIwMC1cXHVGQjA2XFx1RkIxMy1cXHVGQjE3XFx1RkIxRC1cXHVGQjM2IgorICAgICAgICAgICAgKyAiXFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDAtXFx1RkI0MVxcdUZCNDMtXFx1RkI0NFxcdUZCNDYtIgorICAgICAgICAgICAgKyAiXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtIgorICAgICAgICAgICAgKyAiXFx1RkRGQ1xcdUZFMjAtXFx1RkUyM1xcdUZFMzAtXFx1RkU0NFxcdUZFNDktXFx1RkU1MlxcdUZFNTQtIgorICAgICAgICAgICAgKyAiXFx1RkU2NlxcdUZFNjgtXFx1RkU2QlxcdUZFNzAtXFx1RkU3MlxcdUZFNzRcXHVGRTc2LVxcdUZFRkMiCisgICAgICAgICAgICArICJcXHVGRjAxLVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDciCisgICAgICAgICAgICArICJcXHVGRkRBLVxcdUZGRENcXHVGRkUwLVxcdUZGRTZcXHVGRkU4LVxcdUZGRUVcXFUwMDAxRDE1RS1cXFUwMDAxIgorICAgICAgICAgICAgKyAiRDE2OVxcVTAwMDFEMTZELVxcVTAwMDFEMTcyXFxVMDAwMUQxN0ItXFxVMDAwMUQxODJcXFUwMDAxRDE4NS0iCisgICAgICAgICAgICArICJcXFUwMDAxRDE4QlxcVTAwMDFEMUFBLVxcVTAwMDFEMUFEXFxVMDAwMUQxQkItXFxVMDAwMUQxQzBcXFUwMDAxIgorICAgICAgICAgICAgKyAiRDQwMC1cXFUwMDAxRDQ1NFxcVTAwMDFENDU2LVxcVTAwMDFENDlDXFxVMDAwMUQ0OUUtXFxVMDAwMUQ0OUYiCisgICAgICAgICAgICArICJcXFUwMDAxRDRBMlxcVTAwMDFENEE1LVxcVTAwMDFENEE2XFxVMDAwMUQ0QTktXFxVMDAwMUQ0QUNcXFUwMDAxIgorICAgICAgICAgICAgKyAiRDRBRS1cXFUwMDAxRDRCOVxcVTAwMDFENEJCXFxVMDAwMUQ0QkQtXFxVMDAwMUQ0QzBcXFUwMDAxRDRDMi0iCisgICAgICAgICAgICArICJcXFUwMDAxRDRDM1xcVTAwMDFENEM1LVxcVTAwMDFENTA1XFxVMDAwMUQ1MDctXFxVMDAwMUQ1MEFcXFUwMDAxIgorICAgICAgICAgICAgKyAiRDUwRC1cXFUwMDAxRDUxNFxcVTAwMDFENTE2LVxcVTAwMDFENTFDXFxVMDAwMUQ1MUUtXFxVMDAwMUQ1MzkiCisgICAgICAgICAgICArICJcXFUwMDAxRDUzQi1cXFUwMDAxRDUzRVxcVTAwMDFENTQwLVxcVTAwMDFENTQ0XFxVMDAwMUQ1NDZcXFUwMDAxIgorICAgICAgICAgICAgKyAiRDU0QS1cXFUwMDAxRDU1MFxcVTAwMDFENTUyLVxcVTAwMDFENkEzXFxVMDAwMUQ2QTgtXFxVMDAwMUQ3QzkiCisgICAgICAgICAgICArICJcXFUwMDAxRDdDRS1cXFUwMDAxRDdGRlxcVTAwMDJGODAwLVxcVTAwMDJGQTFEXSIsIGZhbHNlKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0gICAgCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Ob3JtYWxpemVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTM1NjU1ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L05vcm1hbGl6ZXIuamF2YQpAQCAtMCwwICsxLDI4MTcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5WZXJzaW9uSW5mbzsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogVW5pY29kZSBOb3JtYWxpemF0aW9uIAorICoKKyAqIDxoMj5Vbmljb2RlIG5vcm1hbGl6YXRpb24gQVBJPC9oMj4KKyAqCisgKiA8Y29kZT5ub3JtYWxpemU8L2NvZGU+IHRyYW5zZm9ybXMgVW5pY29kZSB0ZXh0IGludG8gYW4gZXF1aXZhbGVudCBjb21wb3NlZCBvcgorICogZGVjb21wb3NlZCBmb3JtLCBhbGxvd2luZyBmb3IgZWFzaWVyIHNvcnRpbmcgYW5kIHNlYXJjaGluZyBvZiB0ZXh0LgorICogPGNvZGU+bm9ybWFsaXplPC9jb2RlPiBzdXBwb3J0cyB0aGUgc3RhbmRhcmQgbm9ybWFsaXphdGlvbiBmb3JtcyBkZXNjcmliZWQgaW4KKyAqIDxhIGhyZWY9Imh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvIiB0YXJnZXQ9InVuaWNvZGUiPgorICogVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMTUgJm1kYXNoOyBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXM8L2E+LgorICoKKyAqIENoYXJhY3RlcnMgd2l0aCBhY2NlbnRzIG9yIG90aGVyIGFkb3JubWVudHMgY2FuIGJlIGVuY29kZWQgaW4KKyAqIHNldmVyYWwgZGlmZmVyZW50IHdheXMgaW4gVW5pY29kZS4gIEZvciBleGFtcGxlLCB0YWtlIHRoZSBjaGFyYWN0ZXIgQS1hY3V0ZS4KKyAqIEluIFVuaWNvZGUsIHRoaXMgY2FuIGJlIGVuY29kZWQgYXMgYSBzaW5nbGUgY2hhcmFjdGVyICh0aGUKKyAqICJjb21wb3NlZCIgZm9ybSk6CisgKgorICogPHA+CisgKiAgICAgIDAwQzEgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEFDVVRFCisgKiA8L3A+CisgKgorICogb3IgYXMgdHdvIHNlcGFyYXRlIGNoYXJhY3RlcnMgKHRoZSAiZGVjb21wb3NlZCIgZm9ybSk6CisgKgorICogPHA+CisgKiAgICAgIDAwNDEgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQQorICogICAgICAwMzAxICAgIENPTUJJTklORyBBQ1VURSBBQ0NFTlQKKyAqIDwvcD4KKyAqCisgKiBUbyBhIHVzZXIgb2YgeW91ciBwcm9ncmFtLCBob3dldmVyLCBib3RoIG9mIHRoZXNlIHNlcXVlbmNlcyBzaG91bGQgYmUKKyAqIHRyZWF0ZWQgYXMgdGhlIHNhbWUgInVzZXItbGV2ZWwiIGNoYXJhY3RlciAiQSB3aXRoIGFjdXRlIGFjY2VudCIuICBXaGVuIHlvdSAKKyAqIGFyZSBzZWFyY2hpbmcgb3IgY29tcGFyaW5nIHRleHQsIHlvdSBtdXN0IGVuc3VyZSB0aGF0IHRoZXNlIHR3byBzZXF1ZW5jZXMgYXJlIAorICogdHJlYXRlZCBlcXVpdmFsZW50bHkuICBJbiBhZGRpdGlvbiwgeW91IG11c3QgaGFuZGxlIGNoYXJhY3RlcnMgd2l0aCBtb3JlIHRoYW4KKyAqIG9uZSBhY2NlbnQuICBTb21ldGltZXMgdGhlIG9yZGVyIG9mIGEgY2hhcmFjdGVyJ3MgY29tYmluaW5nIGFjY2VudHMgaXMKKyAqIHNpZ25pZmljYW50LCB3aGlsZSBpbiBvdGhlciBjYXNlcyBhY2NlbnQgc2VxdWVuY2VzIGluIGRpZmZlcmVudCBvcmRlcnMgYXJlCisgKiByZWFsbHkgZXF1aXZhbGVudC4KKyAqCisgKiBTaW1pbGFybHksIHRoZSBzdHJpbmcgImZmaSIgY2FuIGJlIGVuY29kZWQgYXMgdGhyZWUgc2VwYXJhdGUgbGV0dGVyczoKKyAqCisgKiA8cD4KKyAqICAgICAgMDA2NiAgICBMQVRJTiBTTUFMTCBMRVRURVIgRgorICogICAgICAwMDY2ICAgIExBVElOIFNNQUxMIExFVFRFUiBGCisgKiAgICAgIDAwNjkgICAgTEFUSU4gU01BTEwgTEVUVEVSIEkKKyAqIDxccD4KKyAqCisgKiBvciBhcyB0aGUgc2luZ2xlIGNoYXJhY3RlcgorICoKKyAqIDxwPgorICogICAgICBGQjAzICAgIExBVElOIFNNQUxMIExJR0FUVVJFIEZGSQorICogPFxwPgorICoKKyAqIFRoZSBmZmkgbGlnYXR1cmUgaXMgbm90IGEgZGlzdGluY3Qgc2VtYW50aWMgY2hhcmFjdGVyLCBhbmQgc3RyaWN0bHkgc3BlYWtpbmcKKyAqIGl0IHNob3VsZG4ndCBiZSBpbiBVbmljb2RlIGF0IGFsbCwgYnV0IGl0IHdhcyBpbmNsdWRlZCBmb3IgY29tcGF0aWJpbGl0eQorICogd2l0aCBleGlzdGluZyBjaGFyYWN0ZXIgc2V0cyB0aGF0IGFscmVhZHkgcHJvdmlkZWQgaXQuICBUaGUgVW5pY29kZSBzdGFuZGFyZAorICogaWRlbnRpZmllcyBzdWNoIGNoYXJhY3RlcnMgYnkgZ2l2aW5nIHRoZW0gImNvbXBhdGliaWxpdHkiIGRlY29tcG9zaXRpb25zCisgKiBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIHNlbWFudGljIGNoYXJhY3RlcnMuICBXaGVuIHNvcnRpbmcgYW5kIHNlYXJjaGluZywgeW91CisgKiB3aWxsIG9mdGVuIHdhbnQgdG8gdXNlIHRoZXNlIG1hcHBpbmdzLgorICoKKyAqIDxjb2RlPm5vcm1hbGl6ZTwvY29kZT4gaGVscHMgc29sdmUgdGhlc2UgcHJvYmxlbXMgYnkgdHJhbnNmb3JtaW5nIHRleHQgaW50byAKKyAqIHRoZSBjYW5vbmljYWwgY29tcG9zZWQgYW5kIGRlY29tcG9zZWQgZm9ybXMgYXMgc2hvd24gaW4gdGhlIGZpcnN0IGV4YW1wbGUgCisgKiBhYm92ZS4gSW4gYWRkaXRpb24sIHlvdSBjYW4gaGF2ZSBpdCBwZXJmb3JtIGNvbXBhdGliaWxpdHkgZGVjb21wb3NpdGlvbnMgc28gCisgKiB0aGF0IHlvdSBjYW4gdHJlYXQgY29tcGF0aWJpbGl0eSBjaGFyYWN0ZXJzIHRoZSBzYW1lIGFzIHRoZWlyIGVxdWl2YWxlbnRzLgorICogRmluYWxseSwgPGNvZGU+bm9ybWFsaXplPC9jb2RlPiByZWFycmFuZ2VzIGFjY2VudHMgaW50byB0aGUgcHJvcGVyIGNhbm9uaWNhbAorICogb3JkZXIsIHNvIHRoYXQgeW91IGRvIG5vdCBoYXZlIHRvIHdvcnJ5IGFib3V0IGFjY2VudCByZWFycmFuZ2VtZW50IG9uIHlvdXIKKyAqIG93bi4KKyAqCisgKiBGb3JtIEZDRCwgIkZhc3QgQyBvciBEIiwgaXMgYWxzbyBkZXNpZ25lZCBmb3IgY29sbGF0aW9uLgorICogSXQgYWxsb3dzIHRvIHdvcmsgb24gc3RyaW5ncyB0aGF0IGFyZSBub3QgbmVjZXNzYXJpbHkgbm9ybWFsaXplZAorICogd2l0aCBhbiBhbGdvcml0aG0gKGxpa2UgaW4gY29sbGF0aW9uKSB0aGF0IHdvcmtzIHVuZGVyICJjYW5vbmljYWwgY2xvc3VyZSIsIAorICogaS5lLiwgaXQgdHJlYXRzIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMgYW5kIHRoZWlyIGRlY29tcG9zZWQgZXF1aXZhbGVudHMgdGhlIAorICogc2FtZS4KKyAqCisgKiBJdCBpcyBub3QgYSBub3JtYWxpemF0aW9uIGZvcm0gYmVjYXVzZSBpdCBkb2VzIG5vdCBwcm92aWRlIGZvciB1bmlxdWVuZXNzIG9mIAorICogcmVwcmVzZW50YXRpb24uIE11bHRpcGxlIHN0cmluZ3MgbWF5IGJlIGNhbm9uaWNhbGx5IGVxdWl2YWxlbnQgKHRoZWlyIE5GRHMgCisgKiBhcmUgaWRlbnRpY2FsKSBhbmQgbWF5IGFsbCBjb25mb3JtIHRvIEZDRCB3aXRob3V0IGJlaW5nIGlkZW50aWNhbCB0aGVtc2VsdmVzLgorICoKKyAqIFRoZSBmb3JtIGlzIGRlZmluZWQgc3VjaCB0aGF0IHRoZSAicmF3IGRlY29tcG9zaXRpb24iLCB0aGUgcmVjdXJzaXZlIAorICogY2Fub25pY2FsIGRlY29tcG9zaXRpb24gb2YgZWFjaCBjaGFyYWN0ZXIsIHJlc3VsdHMgaW4gYSBzdHJpbmcgdGhhdCBpcyAKKyAqIGNhbm9uaWNhbGx5IG9yZGVyZWQuIFRoaXMgbWVhbnMgdGhhdCBwcmVjb21wb3NlZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkIGZvciAKKyAqIGFzIGxvbmcgYXMgdGhlaXIgZGVjb21wb3NpdGlvbnMgZG8gbm90IG5lZWQgY2Fub25pY2FsIHJlb3JkZXJpbmcuCisgKgorICogSXRzIGFkdmFudGFnZSBmb3IgYSBwcm9jZXNzIGxpa2UgY29sbGF0aW9uIGlzIHRoYXQgYWxsIE5GRCBhbmQgbW9zdCBORkMgdGV4dHMKKyAqIC0gYW5kIG1hbnkgdW5ub3JtYWxpemVkIHRleHRzIC0gYWxyZWFkeSBjb25mb3JtIHRvIEZDRCBhbmQgZG8gbm90IG5lZWQgdG8gYmUgCisgKiBub3JtYWxpemVkIChORkQpIGZvciBzdWNoIGEgcHJvY2Vzcy4gVGhlIEZDRCBxdWljayBjaGVjayB3aWxsIHJldHVybiBZRVMgZm9yIAorICogbW9zdCBzdHJpbmdzIGluIHByYWN0aWNlLgorICoKKyAqIG5vcm1hbGl6ZShGQ0QpIG1heSBiZSBpbXBsZW1lbnRlZCB3aXRoIE5GRC4KKyAqCisgKiBGb3IgbW9yZSBkZXRhaWxzIG9uIEZDRCBzZWUgdGhlIGNvbGxhdGlvbiBkZXNpZ24gZG9jdW1lbnQ6CisgKiBodHRwOi8vZGV2LmljdS1wcm9qZWN0Lm9yZy9jZ2ktYmluL3ZpZXdjdnMuY2dpL35jaGVja291dH4vaWN1aHRtbC9kZXNpZ24vY29sbGF0aW9uL0lDVV9jb2xsYXRpb25fZGVzaWduLmh0bQorICoKKyAqIElDVSBjb2xsYXRpb24gcGVyZm9ybXMgZWl0aGVyIE5GRCBvciBGQ0Qgbm9ybWFsaXphdGlvbiBhdXRvbWF0aWNhbGx5IGlmIAorICogbm9ybWFsaXphdGlvbiBpcyB0dXJuZWQgb24gZm9yIHRoZSBjb2xsYXRvciBvYmplY3QuIEJleW9uZCBjb2xsYXRpb24gYW5kIAorICogc3RyaW5nIHNlYXJjaCwgbm9ybWFsaXplZCBzdHJpbmdzIG1heSBiZSB1c2VmdWwgZm9yIHN0cmluZyBlcXVpdmFsZW5jZSAKKyAqIGNvbXBhcmlzb25zLCB0cmFuc2xpdGVyYXRpb24vdHJhbnNjcmlwdGlvbiwgdW5pcXVlIHJlcHJlc2VudGF0aW9ucywgZXRjLgorICoKKyAqIFRoZSBXM0MgZ2VuZXJhbGx5IHJlY29tbWVuZHMgdG8gZXhjaGFuZ2UgdGV4dHMgaW4gTkZDLgorICogTm90ZSBhbHNvIHRoYXQgbW9zdCBsZWdhY3kgY2hhcmFjdGVyIGVuY29kaW5ncyB1c2Ugb25seSBwcmVjb21wb3NlZCBmb3JtcyBhbmQKKyAqIG9mdGVuIGRvIG5vdCBlbmNvZGUgYW55IGNvbWJpbmluZyBtYXJrcyBieSB0aGVtc2VsdmVzLiBGb3IgY29udmVyc2lvbiB0byBzdWNoCisgKiBjaGFyYWN0ZXIgZW5jb2RpbmdzIHRoZSBVbmljb2RlIHRleHQgbmVlZHMgdG8gYmUgbm9ybWFsaXplZCB0byBORkMuCisgKiBGb3IgbW9yZSB1c2FnZSBleGFtcGxlcywgc2VlIHRoZSBVbmljb2RlIFN0YW5kYXJkIEFubmV4LgorICogQHN0YWJsZSBJQ1UgMi44CisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIE5vcm1hbGl6ZXIgaW1wbGVtZW50cyBDbG9uZWFibGUgeworICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFByaXZhdGUgZGF0YQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgCisgICAgcHJpdmF0ZSBjaGFyW10gYnVmZmVyID0gbmV3IGNoYXJbMTAwXTsKKyAgICBwcml2YXRlIGludCBidWZmZXJTdGFydCA9IDA7CisgICAgcHJpdmF0ZSBpbnQgYnVmZmVyUG9zICAgPSAwOworICAgIHByaXZhdGUgaW50IGJ1ZmZlckxpbWl0ID0gMDsKKyAgICAKKyAgICAvLyBUaGlzIHRlbGxzIHVzIHdoYXQgdGhlIGJpdHMgaW4gdGhlICJtb2RlIiBvYmplY3QgbWVhbi4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFUX0JJVCA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFQ09NUF9CSVQgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01QT1NFX0JJVCA9IDQ7CisgICAgCisgICAgLy8gVGhlIGlucHV0IHRleHQgYW5kIG91ciBwb3NpdGlvbiBpbiBpdAorICAgIHByaXZhdGUgVUNoYXJhY3Rlckl0ZXJhdG9yICB0ZXh0OworICAgIHByaXZhdGUgTW9kZSAgICAgICAgICAgICAgICBtb2RlID0gTkZDOworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgICAgICBvcHRpb25zID0gMDsKKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICAgICAgY3VycmVudEluZGV4OworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgICAgICBuZXh0SW5kZXg7CisgICAgCisgICAgLyoqCisgICAgICogT3B0aW9ucyBiaXQgc2V0IHZhbHVlIHRvIHNlbGVjdCBVbmljb2RlIDMuMiBub3JtYWxpemF0aW9uCisgICAgICogKGV4Y2VwdCBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMpLgorICAgICAqIEF0IG1vc3Qgb25lIFVuaWNvZGUgdmVyc2lvbiBjYW4gYmUgc2VsZWN0ZWQgYXQgYSB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOSUNPREVfM18yPTB4MjA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBpbmRpY2F0aW5nIHRoYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uIGhhcyBiZWVuIHJlYWNoZWQuCisgICAgICogVGhpcyBpcyBndWFyYW50ZWVkIHRvIGhhdmUgdGhlIHNhbWUgdmFsdWUgYXMge0BsaW5rIFVDaGFyYWN0ZXJJdGVyYXRvciNET05FfS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET05FID0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudHMgZm9yIG5vcm1hbGl6YXRpb24gbW9kZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBNb2RlIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbW9kZVZhbHVlOworICAgICAgICBwcml2YXRlIE1vZGUoaW50IHZhbHVlKSB7CisgICAgICAgICAgICBtb2RlVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGZvciBtZXRob2QgZGlzcGF0Y2gKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IG5vcm1hbGl6ZShjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RTdGFydCxpbnQgZGVzdExpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgaW50IHNyY0xlbiA9IChzcmNMaW1pdCAtIHNyY1N0YXJ0KTsKKyAgICAgICAgICAgIGludCBkZXN0TGVuID0gKGRlc3RMaW1pdCAtIGRlc3RTdGFydCk7CisgICAgICAgICAgICBpZiggc3JjTGVuID4gZGVzdExlbiApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3JjTGVuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShzcmMsc3JjU3RhcnQsZGVzdCxkZXN0U3RhcnQsc3JjTGVuKTsKKyAgICAgICAgICAgIHJldHVybiBzcmNMZW47CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBmb3IgbWV0aG9kIGRpc3BhdGNoCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBub3JtYWxpemUoY2hhcltdIHNyYywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LGludCBkZXN0U3RhcnQsaW50IGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgICAgIHJldHVybiBub3JtYWxpemUoICAgc3JjLCBzcmNTdGFydCwgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsZGVzdFN0YXJ0LGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yIG1ldGhvZCBkaXNwYXRjaAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgbm9ybWFsaXplKFN0cmluZyBzcmMsIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICByZXR1cm4gc3JjOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yIG1ldGhvZCBkaXNwYXRjaAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWluQygpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGZvciBtZXRob2QgZGlzcGF0Y2gKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1hc2soKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBmb3IgbWV0aG9kIGRpc3BhdGNoCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIElzUHJldkJvdW5kYXJ5IGdldFByZXZCb3VuZGFyeSgpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yIG1ldGhvZCBkaXNwYXRjaAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGZvciBtZXRob2QgZGlzcGF0Y2gKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgUXVpY2tDaGVja1Jlc3VsdCBxdWlja0NoZWNrKGNoYXJbXSBzcmMsaW50IHN0YXJ0LCBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gYWxsb3dNYXliZSxVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICBpZihhbGxvd01heWJlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1BWUJFOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIE5POworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yIG1ldGhvZCBkaXNwYXRjaAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBObyBkZWNvbXBvc2l0aW9uL2NvbXBvc2l0aW9uLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIE5PTkUgPSBuZXcgTW9kZSgxKTsKKworICAgIC8qKiAKKyAgICAgKiBDYW5vbmljYWwgZGVjb21wb3NpdGlvbi4gIAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9kZSBORkQgPSBuZXcgTkZETW9kZSgyKTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBORkRNb2RlIGV4dGVuZHMgTW9kZSB7CisgICAgICAgIHByaXZhdGUgTkZETW9kZShpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBpbnQgbm9ybWFsaXplKGNoYXJbXSBzcmMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LGludCBkZXN0TGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICBpbnRbXSB0cmFpbENDID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5kZWNvbXBvc2Uoc3JjLCAgc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGRlc3RTdGFydCxkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCB0cmFpbENDLG54KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBub3JtYWxpemUoIFN0cmluZyBzcmMsIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICByZXR1cm4gZGVjb21wb3NlKHNyYyxmYWxzZSk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1pbkMoKSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuTUlOX1dJVEhfTEVBRF9DQzsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBJc1ByZXZCb3VuZGFyeSBnZXRQcmV2Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzUHJldk5GRFNhZmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzTmV4dE5GRFNhZmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWFzaygpIHsKKyAgICAgICAgICAgIHJldHVybiAoTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5RQ19ORkQpOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIFF1aWNrQ2hlY2tSZXN1bHQgcXVpY2tDaGVjayhjaGFyW10gc3JjLGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LGJvb2xlYW4gYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwucXVpY2tDaGVjaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYywgc3RhcnQsbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRGcm9tSW5kZXhlc0FycigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORkRfTk9fTUFZQkUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5RQ19ORkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNORlNraXBwYWJsZShpbnQgYykgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmlzTkZTa2lwcGFibGUoYyx0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5vcm1hbGl6ZXJJbXBsLkNDX01BU0t8Tm9ybWFsaXplckltcGwuUUNfTkZEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfSAgICAgICAgICAgCisgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAvKiogCisgICAgICogQ29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIE5GS0QgPSBuZXcgTkZLRE1vZGUoMyk7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgTkZLRE1vZGUgZXh0ZW5kcyBNb2RlIHsKKyAgICAgICAgcHJpdmF0ZSBORktETW9kZShpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBpbnQgbm9ybWFsaXplKGNoYXJbXSBzcmMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LGludCBkZXN0TGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICBpbnRbXSB0cmFpbENDID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5kZWNvbXBvc2Uoc3JjLCAgc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGRlc3RTdGFydCxkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIHRyYWlsQ0MsIG54KTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgbm9ybWFsaXplKCBTdHJpbmcgc3JjLCBpbnQgb3B0aW9ucykgeworICAgICAgICAgICAgcmV0dXJuIGRlY29tcG9zZShzcmMsdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1pbkMoKSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuTUlOX1dJVEhfTEVBRF9DQzsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBJc1ByZXZCb3VuZGFyeSBnZXRQcmV2Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzUHJldk5GRFNhZmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzTmV4dE5GRFNhZmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWFzaygpIHsKKyAgICAgICAgICAgIHJldHVybiAoTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5RQ19ORktEKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCBRdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNyYyxpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCxib29sZWFuIGFsbG93TWF5YmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLnF1aWNrQ2hlY2soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsc3RhcnQsbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRGcm9tSW5kZXhlc0FycigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORktEX05PX01BWUJFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuUUNfTkZLRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNORlNraXBwYWJsZShpbnQgYykgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmlzTkZTa2lwcGFibGUoYywgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb3JtYWxpemVySW1wbC5DQ19NQVNLfE5vcm1hbGl6ZXJJbXBsLlFDX05GS0QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKiAKKyAgICAgKiBDYW5vbmljYWwgZGVjb21wb3NpdGlvbiBmb2xsb3dlZCBieSBjYW5vbmljYWwgY29tcG9zaXRpb24uICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vZGUgTkZDID0gbmV3IE5GQ01vZGUoNCk7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgTkZDTW9kZSBleHRlbmRzIE1vZGV7CisgICAgICAgIHByaXZhdGUgTkZDTW9kZShpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgaW50IG5vcm1hbGl6ZShjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RTdGFydCxpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuY29tcG9zZSggc3JjLCBzcmNTdGFydCwgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCxkZXN0U3RhcnQsZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIG54KTsKKyAgICAgICAgfQorICAKKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyBub3JtYWxpemUoIFN0cmluZyBzcmMsIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICByZXR1cm4gY29tcG9zZShzcmMsIGZhbHNlLCBvcHRpb25zKTsKKyAgICAgICAgfQorICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1pbkMoKSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuZ2V0RnJvbUluZGV4ZXNBcnIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuSU5ERVhfTUlOX05GQ19OT19NQVlCRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElzUHJldkJvdW5kYXJ5IGdldFByZXZCb3VuZGFyeSgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSXNQcmV2VHJ1ZVN0YXJ0ZXIoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSXNOZXh0Qm91bmRhcnkgZ2V0TmV4dEJvdW5kYXJ5KCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBJc05leHRUcnVlU3RhcnRlcigpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBpbnQgZ2V0TWFzaygpIHsKKyAgICAgICAgICAgIHJldHVybiAoTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5RQ19ORkMpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBRdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNyYyxpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCxib29sZWFuIGFsbG93TWF5YmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLnF1aWNrQ2hlY2soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsc3RhcnQsbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRGcm9tSW5kZXhlc0FycigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORkNfTk9fTUFZQkUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5RQ19ORkMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc05GU2tpcHBhYmxlKGMsdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5DT01CSU5FU19BTll8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb3JtYWxpemVySW1wbC5RQ19ORkMgJiBOb3JtYWxpemVySW1wbC5RQ19BTllfTk8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0gCisgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgLyoqIAorICAgICAqIERlZmF1bHQgbm9ybWFsaXphdGlvbi4gIAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9kZSBERUZBVUxUID0gTkZDOyAKKyAgICAKKyAgICAvKiogCisgICAgICogQ29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uIGZvbGxvd2VkIGJ5IGNhbm9uaWNhbCBjb21wb3NpdGlvbi4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIE5GS0MgPW5ldyBORktDTW9kZSg1KTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBORktDTW9kZSBleHRlbmRzIE1vZGV7CisgICAgICAgIHByaXZhdGUgTkZLQ01vZGUoaW50IHZhbHVlKSB7CisgICAgICAgICAgICBzdXBlcih2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIGludCBub3JtYWxpemUoY2hhcltdIHNyYywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LGludCBkZXN0U3RhcnQsaW50IGRlc3RMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgbngpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5jb21wb3NlKHNyYywgIHNyY1N0YXJ0LHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwgZGVzdFN0YXJ0LGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFULCBueCk7CisgICAgICAgIH0KKworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIG5vcm1hbGl6ZSggU3RyaW5nIHNyYywgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgICAgIHJldHVybiBjb21wb3NlKHNyYywgdHJ1ZSwgb3B0aW9ucyk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNaW5DKCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldEZyb21JbmRleGVzQXJyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORktDX05PX01BWUJFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgSXNQcmV2Qm91bmRhcnkgZ2V0UHJldkJvdW5kYXJ5KCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBJc1ByZXZUcnVlU3RhcnRlcigpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzTmV4dFRydWVTdGFydGVyKCk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNYXNrKCkgeworICAgICAgICAgICAgcmV0dXJuIChOb3JtYWxpemVySW1wbC5DQ19NQVNLfE5vcm1hbGl6ZXJJbXBsLlFDX05GS0MpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBRdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNyYyxpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCxib29sZWFuIGFsbG93TWF5YmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLnF1aWNrQ2hlY2soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsc3RhcnQsbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVySW1wbC5nZXRGcm9tSW5kZXhlc0FycigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLklOREVYX01JTl9ORktDX05PX01BWUJFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplckltcGwuUUNfTkZLQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc05GU2tpcHBhYmxlKGMsIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIE5vcm1hbGl6ZXJJbXBsLkNDX01BU0t8Tm9ybWFsaXplckltcGwuQ09NQklORVNfQU5ZfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTm9ybWFsaXplckltcGwuUUNfTkZLQyAmIE5vcm1hbGl6ZXJJbXBsLlFDX0FOWV9OTykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgfSAKKyAgICB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIC8qKiAKKyAgICAgKiAiRmFzdCBDIG9yIEQiIGZvcm0uIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vZGUgRkNEID0gbmV3IEZDRE1vZGUoNik7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgRkNETW9kZSBleHRlbmRzIE1vZGV7CisgICAgICAgIHByaXZhdGUgRkNETW9kZShpbnQgdmFsdWUpIHsKKyAgICAgICAgICAgIHN1cGVyKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgaW50IG5vcm1hbGl6ZShjaGFyW10gc3JjLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsaW50IGRlc3RTdGFydCxpbnQgZGVzdExpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBueCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLm1ha2VGQ0Qoc3JjLCBzcmNTdGFydCxzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGRlc3RTdGFydCxkZXN0TGltaXQsIG54KTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIG5vcm1hbGl6ZSggU3RyaW5nIHNyYywgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgICAgIHJldHVybiBtYWtlRkNEKHNyYywgb3B0aW9ucyk7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIGludCBnZXRNaW5DKCkgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLk1JTl9XSVRIX0xFQURfQ0M7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIElzUHJldkJvdW5kYXJ5IGdldFByZXZCb3VuZGFyeSgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSXNQcmV2TkZEU2FmZSgpOworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBJc05leHRCb3VuZGFyeSBnZXROZXh0Qm91bmRhcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElzTmV4dE5GRFNhZmUoKTsKKyAgICAgICAgfQorICAgICAgICBwcm90ZWN0ZWQgaW50IGdldE1hc2soKSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuQ0NfTUFTS3xOb3JtYWxpemVySW1wbC5RQ19ORkQ7CisgICAgICAgIH0KKyAgICAgICAgcHJvdGVjdGVkIFF1aWNrQ2hlY2tSZXN1bHQgcXVpY2tDaGVjayhjaGFyW10gc3JjLGludCBzdGFydCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LGJvb2xlYW4gYWxsb3dNYXliZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IG54KSB7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuY2hlY2tGQ0Qoc3JjLHN0YXJ0LGxpbWl0LG54KSA/IFlFUyA6IE5POworICAgICAgICB9CisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMpIHsKKyAgICAgICAgICAgIC8qIEZDRDogc2tpcHBhYmxlIGlmIGxlYWQgY2M9PTAgYW5kIHRyYWlsIGNjPD0xICovCisgICAgICAgICAgICByZXR1cm4gKE5vcm1hbGl6ZXJJbXBsLmdldEZDRDE2KGMpPjEpOworICAgICAgICB9ICAgCisgICAgfTsKKworICAgIAorICAgIC8qKgorICAgICAqIE51bGwgb3BlcmF0aW9uIGZvciB1c2Ugd2l0aCB0aGUge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30KKyAgICAgKiBhbmQgdGhlIHN0YXRpYyB7QGxpbmsgI25vcm1hbGl6ZSBub3JtYWxpemV9IG1ldGhvZC4gIFRoaXMgdmFsdWUgdGVsbHMKKyAgICAgKiB0aGUgPHR0Pk5vcm1hbGl6ZXI8L3R0PiB0byBkbyBub3RoaW5nIGJ1dCByZXR1cm4gdW5wcm9jZXNzZWQgY2hhcmFjdGVycworICAgICAqIGZyb20gdGhlIHVuZGVybHlpbmcgU3RyaW5nIG9yIENoYXJhY3Rlckl0ZXJhdG9yLiAgSWYgeW91IGhhdmUgY29kZSB3aGljaAorICAgICAqIHJlcXVpcmVzIHJhdyB0ZXh0IGF0IHNvbWUgdGltZXMgYW5kIG5vcm1hbGl6ZWQgdGV4dCBhdCBvdGhlcnMsIHlvdSBjYW4KKyAgICAgKiB1c2UgPHR0Pk5PX09QPC90dD4gZm9yIHRoZSBjYXNlcyB3aGVyZSB5b3Ugd2FudCByYXcgdGV4dCwgcmF0aGVyCisgICAgICogdGhhbiBoYXZpbmcgYSBzZXBhcmF0ZSBjb2RlIHBhdGggdGhhdCBieXBhc3NlcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+CisgICAgICogYWx0b2dldGhlci4KKyAgICAgKiA8cD4KKyAgICAgKiBAc2VlICNzZXRNb2RlCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuOC4gVXNlIE5vbWFsaXplci5OT05FCisgICAgICogQHNlZSAjTk9ORQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTW9kZSBOT19PUCA9IE5PTkU7CisKKyAgICAvKioKKyAgICAgKiBDYW5vbmljYWwgZGVjb21wb3NpdGlvbiBmb2xsb3dlZCBieSBjYW5vbmljYWwgY29tcG9zaXRpb24uICBVc2VkIHdpdGggdGhlCisgICAgICoge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMgCisgICAgICoge0BsaW5rICNub3JtYWxpemUgbm9ybWFsaXplfSBtZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSBvcGVyYXRpb24gdG8gYmUgCisgICAgICogcGVyZm9ybWVkLgorICAgICAqIDxwPgorICAgICAqIElmIGFsbCBvcHRpb25hbCBmZWF0dXJlcyAoPGk+ZS5nLjwvaT4ge0BsaW5rICNJR05PUkVfSEFOR1VMfSkgYXJlIHR1cm5lZAorICAgICAqIG9mZiwgdGhpcyBvcGVyYXRpb24gcHJvZHVjZXMgb3V0cHV0IHRoYXQgaXMgaW4KKyAgICAgKiA8YSBocmVmPWh0dHA6Ly93d3cudW5pY29kZS5vcmcvdW5pY29kZS9yZXBvcnRzL3RyMTUvPlVuaWNvZGUgQ2Fub25pY2FsIAorICAgICAqIEZvcm08L2E+CisgICAgICogPGI+QzwvYj4uCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0TW9kZQorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjguIFVzZSBOb3JtYWxpZXIuTkZDCisgICAgICogQHNlZSAjTkZDCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIENPTVBPU0UgPSBORkM7CisKKyAgICAvKioKKyAgICAgKiBDb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24gZm9sbG93ZWQgYnkgY2Fub25pY2FsIGNvbXBvc2l0aW9uLgorICAgICAqIFVzZWQgd2l0aCB0aGUge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMKKyAgICAgKiB7QGxpbmsgI25vcm1hbGl6ZSBub3JtYWxpemV9IG1ldGhvZCB0byBkZXRlcm1pbmUgdGhlIG9wZXJhdGlvbiB0byBiZSAKKyAgICAgKiBwZXJmb3JtZWQuCisgICAgICogPHA+CisgICAgICogSWYgYWxsIG9wdGlvbmFsIGZlYXR1cmVzICg8aT5lLmcuPC9pPiB7QGxpbmsgI0lHTk9SRV9IQU5HVUx9KSBhcmUgdHVybmVkCisgICAgICogb2ZmLCB0aGlzIG9wZXJhdGlvbiBwcm9kdWNlcyBvdXRwdXQgdGhhdCBpcyBpbgorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxNS8+VW5pY29kZSBDYW5vbmljYWwgCisgICAgICogRm9ybTwvYT4KKyAgICAgKiA8Yj5LQzwvYj4uCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0TW9kZQorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjguIFVzZSBOb3JtYWxpemVyLk5GS0MKKyAgICAgKiBAc2VlICNORktDCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIENPTVBPU0VfQ09NUEFUID0gTkZLQzsKKworICAgIC8qKgorICAgICAqIENhbm9uaWNhbCBkZWNvbXBvc2l0aW9uLiAgVGhpcyB2YWx1ZSBpcyBwYXNzZWQgdG8gdGhlCisgICAgICoge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMKKyAgICAgKiB7QGxpbmsgI25vcm1hbGl6ZSBub3JtYWxpemV9CisgICAgICogbWV0aG9kIHRvIGRldGVybWluZSB0aGUgb3BlcmF0aW9uIHRvIGJlIHBlcmZvcm1lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiBhbGwgb3B0aW9uYWwgZmVhdHVyZXMgKDxpPmUuZy48L2k+IHtAbGluayAjSUdOT1JFX0hBTkdVTH0pIGFyZSB0dXJuZWQKKyAgICAgKiBvZmYsIHRoaXMgb3BlcmF0aW9uIHByb2R1Y2VzIG91dHB1dCB0aGF0IGlzIGluCisgICAgICogPGEgaHJlZj1odHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1Lz5Vbmljb2RlIENhbm9uaWNhbCAKKyAgICAgKiBGb3JtPC9hPgorICAgICAqIDxiPkQ8L2I+LgorICAgICAqIDxwPgorICAgICAqIEBzZWUgI3NldE1vZGUKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi44LiBVc2UgTm9ybWFsaXplci5ORkQKKyAgICAgKiBAc2VlICNORkQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1vZGUgREVDT01QID0gTkZEOworCisgICAgLyoqCisgICAgICogQ29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uLiAgVGhpcyB2YWx1ZSBpcyBwYXNzZWQgdG8gdGhlCisgICAgICoge0BsaW5rICNOb3JtYWxpemVyIGNvbnN0cnVjdG9yc30gYW5kIHRoZSBzdGF0aWMgCisgICAgICoge0BsaW5rICNub3JtYWxpemUgbm9ybWFsaXplfQorICAgICAqIG1ldGhvZCB0byBkZXRlcm1pbmUgdGhlIG9wZXJhdGlvbiB0byBiZSBwZXJmb3JtZWQuCisgICAgICogPHA+CisgICAgICogSWYgYWxsIG9wdGlvbmFsIGZlYXR1cmVzICg8aT5lLmcuPC9pPiB7QGxpbmsgI0lHTk9SRV9IQU5HVUx9KSBhcmUgdHVybmVkCisgICAgICogb2ZmLCB0aGlzIG9wZXJhdGlvbiBwcm9kdWNlcyBvdXRwdXQgdGhhdCBpcyBpbgorICAgICAqIDxhIGhyZWY9aHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxNS8+VW5pY29kZSBDYW5vbmljYWwgCisgICAgICogRm9ybTwvYT4KKyAgICAgKiA8Yj5LRDwvYj4uCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0TW9kZQorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjguIFVzZSBOb3JtYWxpemVyLk5GS0QKKyAgICAgKiBAc2VlICNORktECisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNb2RlIERFQ09NUF9DT01QQVQgPSBORktEOworCisgICAgLyoqCisgICAgICogT3B0aW9uIHRvIGRpc2FibGUgSGFuZ3VsL0phbW8gY29tcG9zaXRpb24gYW5kIGRlY29tcG9zaXRpb24uCisgICAgICogVGhpcyBvcHRpb24gYXBwbGllcyB0byBLb3JlYW4gdGV4dCwKKyAgICAgKiB3aGljaCBjYW4gYmUgcmVwcmVzZW50ZWQgZWl0aGVyIGluIHRoZSBKYW1vIGFscGhhYmV0IG9yIGluIEhhbmd1bAorICAgICAqIGNoYXJhY3RlcnMsIHdoaWNoIGFyZSByZWFsbHkganVzdCB0d28gb3IgdGhyZWUgSmFtbyBjb21iaW5lZAorICAgICAqIGludG8gb25lIHZpc3VhbCBnbHlwaC4gIFNpbmNlIEphbW8gdGFrZXMgdXAgbW9yZSBzdG9yYWdlIHNwYWNlIHRoYW4KKyAgICAgKiBIYW5ndWwsIGFwcGxpY2F0aW9ucyB0aGF0IHByb2Nlc3Mgb25seSBIYW5ndWwgdGV4dCBtYXkgd2lzaCB0byB0dXJuCisgICAgICogdGhpcyBvcHRpb24gb24gd2hlbiBkZWNvbXBvc2luZyB0ZXh0LgorICAgICAqIDxwPgorICAgICAqIFRoZSBVbmljb2RlIHN0YW5kYXJkIHRyZWF0ZXMgSGFuZ3VsIHRvIEphbW8gY29udmVyc2lvbiBhcyBhCisgICAgICogY2Fub25pY2FsIGRlY29tcG9zaXRpb24sIHNvIHRoaXMgb3B0aW9uIG11c3QgYmUgdHVybmVkIDxiPm9mZjwvYj4gaWYgeW91CisgICAgICogd2lzaCB0byB0cmFuc2Zvcm0gc3RyaW5ncyBpbnRvIG9uZSBvZiB0aGUgc3RhbmRhcmQKKyAgICAgKiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjE1LyIgdGFyZ2V0PSJ1bmljb2RlIj4KKyAgICAgKiBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXM8L2E+LgorICAgICAqIDxwPgorICAgICAqIEBzZWUgI3NldE9wdGlvbgorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjguIFRoaXMgb3B0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIFRPRE86IGNoZWNrIHdpdGggUmFtCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSUdOT1JFX0hBTkdVTCA9IDB4MDAwMTsKKyAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXN1bHQgdmFsdWVzIGZvciBxdWlja0NoZWNrKCkuCisgICAgICogRm9yIGRldGFpbHMgc2VlIFVuaWNvZGUgVGVjaG5pY2FsIFJlcG9ydCAxNS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFF1aWNrQ2hlY2tSZXN1bHR7CisgICAgICAgIHByaXZhdGUgaW50IHJlc3VsdFZhbHVlOworICAgICAgICBwcml2YXRlIFF1aWNrQ2hlY2tSZXN1bHQoaW50IHZhbHVlKSB7CisgICAgICAgICAgICByZXN1bHRWYWx1ZT12YWx1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiogCisgICAgICogSW5kaWNhdGVzIHRoYXQgc3RyaW5nIGlzIG5vdCBpbiB0aGUgbm9ybWFsaXplZCBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFF1aWNrQ2hlY2tSZXN1bHQgTk8gPSBuZXcgUXVpY2tDaGVja1Jlc3VsdCgwKTsKKyAgICAgICAgCisgICAgLyoqIAorICAgICAqIEluZGljYXRlcyB0aGF0IHN0cmluZyBpcyBpbiB0aGUgbm9ybWFsaXplZCBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFF1aWNrQ2hlY2tSZXN1bHQgWUVTID0gbmV3IFF1aWNrQ2hlY2tSZXN1bHQoMSk7CisKKyAgICAvKiogCisgICAgICogSW5kaWNhdGVzIGl0IGNhbm5vdCBiZSBkZXRlcm1pbmVkIGlmIHN0cmluZyBpcyBpbiB0aGUgbm9ybWFsaXplZCAKKyAgICAgKiBmb3JtYXQgd2l0aG91dCBmdXJ0aGVyIHRob3JvdWdoIGNoZWNrcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFF1aWNrQ2hlY2tSZXN1bHQgTUFZQkUgPSBuZXcgUXVpY2tDaGVja1Jlc3VsdCgyKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBPcHRpb24gYml0IGZvciBjb21wYXJlOgorICAgICAqIENhc2Ugc2Vuc2l0aXZlbHkgY29tcGFyZSB0aGUgc3RyaW5ncworICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPTERfQ0FTRV9ERUZBVUxUID0gIFVDaGFyYWN0ZXIuRk9MRF9DQVNFX0RFRkFVTFQ7CisgICAgCisgICAgLyoqCisgICAgICogT3B0aW9uIGJpdCBmb3IgY29tcGFyZToKKyAgICAgKiBCb3RoIGlucHV0IHN0cmluZ3MgYXJlIGFzc3VtZWQgdG8gZnVsZmlsbCBGQ0QgY29uZGl0aW9ucy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBJTlBVVF9JU19GQ0QgICAgPSAgICAgIDB4MjAwMDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIE9wdGlvbiBiaXQgZm9yIGNvbXBhcmU6CisgICAgICogUGVyZm9ybSBjYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFSRV9JR05PUkVfQ0FTRSAgPSAgICAgMHgxMDAwMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogT3B0aW9uIGJpdCBmb3IgY29tcGFyZToKKyAgICAgKiBDb21wYXJlIHN0cmluZ3MgaW4gY29kZSBwb2ludCBvcmRlciBpbnN0ZWFkIG9mIGNvZGUgdW5pdCBvcmRlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01QQVJFX0NPREVfUE9JTlRfT1JERVIgPSAweDgwMDA7CisgICAgCisgICAgLyoqIAorICAgICAqIE9wdGlvbiB2YWx1ZSBmb3IgY2FzZSBmb2xkaW5nOiBleGNsdWRlIHRoZSBtYXBwaW5ncyBmb3IgZG90dGVkIEkgCisgICAgICogYW5kIGRvdGxlc3MgaSBtYXJrZWQgd2l0aCAnSScgaW4gQ2FzZUZvbGRpbmcudHh0LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kgPSBVQ2hhcmFjdGVyLkZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBMb3dlc3Qtb3JkZXIgYml0IG51bWJlciBvZiBjb21wYXJlKCkgb3B0aW9ucyBiaXRzIGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiBub3JtYWxpemF0aW9uIG9wdGlvbnMgYml0cy4KKyAgICAgKgorICAgICAqIFRoZSBvcHRpb25zIHBhcmFtZXRlciBmb3IgY29tcGFyZSgpIHVzZXMgbW9zdCBiaXRzIGZvcgorICAgICAqIGl0c2VsZiBhbmQgZm9yIHZhcmlvdXMgY29tcGFyaXNvbiBhbmQgZm9sZGluZyBmbGFncy4KKyAgICAgKiBUaGUgbW9zdCBzaWduaWZpY2FudCBiaXRzLCBob3dldmVyLCBhcmUgc2hpZnRlZCBkb3duIGFuZCBwYXNzZWQgb24KKyAgICAgKiB0byB0aGUgbm9ybWFsaXphdGlvbiBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiAoVGhhdCBpcywgZnJvbSBjb21wYXJlKC4uLiwgb3B0aW9ucywgLi4uKSwKKyAgICAgKiBvcHRpb25zPj5DT01QQVJFX05PUk1fT1BUSU9OU19TSElGVCB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUKKyAgICAgKiBpbnRlcm5hbCBub3JtYWxpemF0aW9uIGZ1bmN0aW9ucy4pCisgICAgICoKKyAgICAgKiBAc2VlICNjb21wYXJlCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09NUEFSRV9OT1JNX09QVElPTlNfU0hJRlQgID0gMjA7CisgICAgICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0cnVjdG9ycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIG5ldyA8dHQ+Tm9ybWFsaXplcjwvdHQ+IG9iamVjdCBmb3IgaXRlcmF0aW5nIG92ZXIgdGhlCisgICAgICogbm9ybWFsaXplZCBmb3JtIG9mIGEgZ2l2ZW4gc3RyaW5nLgorICAgICAqIDxwPgorICAgICAqIFRoZSA8dHQ+b3B0aW9uczwvdHQ+IHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggb3B0aW9uYWwKKyAgICAgKiA8dHQ+Tm9ybWFsaXplcjwvdHQ+IGZlYXR1cmVzIGFyZSB0byBiZSBlbmFibGVkIGZvciB0aGlzIG9iamVjdC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gc3RyICBUaGUgc3RyaW5nIHRvIGJlIG5vcm1hbGl6ZWQuICBUaGUgbm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICB3aWxsIHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb2RlIFRoZSBub3JtYWxpemF0aW9uIG1vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3B0IEFueSBvcHRpb25hbCBmZWF0dXJlcyB0byBiZSBlbmFibGVkLgorICAgICAqICAgICAgICAgICAgQ3VycmVudGx5IHRoZSBvbmx5IGF2YWlsYWJsZSBvcHRpb24gaXMge0BsaW5rICNVTklDT0RFXzNfMn0uCisgICAgICogICAgICAgICAgICBJZiB5b3Ugd2FudCB0aGUgZGVmYXVsdCBiZWhhdmlvciBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUKKyAgICAgKiAgICAgICAgICAgIHN0YW5kYXJkIFVuaWNvZGUgTm9ybWFsaXphdGlvbiBGb3JtcywgdXNlIDAgZm9yIHRoaXMgYXJndW1lbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIE5vcm1hbGl6ZXIoU3RyaW5nIHN0ciwgTW9kZSBtb2RlLCBpbnQgb3B0KSB7CisgICAgICAgIHRoaXMudGV4dCA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShzdHIpOworICAgICAgICB0aGlzLm1vZGUgPSBtb2RlOyAKKyAgICAgICAgdGhpcy5vcHRpb25zPW9wdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IDx0dD5Ob3JtYWxpemVyPC90dD4gb2JqZWN0IGZvciBpdGVyYXRpbmcgb3ZlciB0aGUKKyAgICAgKiBub3JtYWxpemVkIGZvcm0gb2YgdGhlIGdpdmVuIHRleHQuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGl0ZXIgIFRoZSBpbnB1dCB0ZXh0IHRvIGJlIG5vcm1hbGl6ZWQuICBUaGUgbm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICB3aWxsIHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb2RlICBUaGUgbm9ybWFsaXphdGlvbiBtb2RlLgorICAgICAqCisgICAgICogQHBhcmFtIG9wdCBBbnkgb3B0aW9uYWwgZmVhdHVyZXMgdG8gYmUgZW5hYmxlZC4KKyAgICAgKiAgICAgICAgICAgIEN1cnJlbnRseSB0aGUgb25seSBhdmFpbGFibGUgb3B0aW9uIGlzIHtAbGluayAjVU5JQ09ERV8zXzJ9LgorICAgICAqICAgICAgICAgICAgSWYgeW91IHdhbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlCisgICAgICogICAgICAgICAgICBzdGFuZGFyZCBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXMsIHVzZSAwIGZvciB0aGlzIGFyZ3VtZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBOb3JtYWxpemVyKENoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIsIE1vZGUgbW9kZSwgaW50IG9wdCkgeworICAgICAgICB0aGlzLnRleHQgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ2hhcmFjdGVySXRlcmF0b3IpaXRlci5jbG9uZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICB0aGlzLm1vZGUgPSBtb2RlOworICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBuZXcgPHR0Pk5vcm1hbGl6ZXI8L3R0PiBvYmplY3QgZm9yIGl0ZXJhdGluZyBvdmVyIHRoZQorICAgICAqIG5vcm1hbGl6ZWQgZm9ybSBvZiB0aGUgZ2l2ZW4gdGV4dC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gaXRlciAgVGhlIGlucHV0IHRleHQgdG8gYmUgbm9ybWFsaXplZC4gIFRoZSBub3JtYWxpemF0aW9uCisgICAgICogICAgICAgICAgICAgIHdpbGwgc3RhcnQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgIFRoZSBub3JtYWxpemF0aW9uIG1vZGUuCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIE5vcm1hbGl6ZXIoVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIsIE1vZGUgbW9kZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHRoaXMudGV4dCAgICAgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yKWl0ZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIHRoaXMubW9kZSAgICAgPSBtb2RlOworICAgICAgICAgICAgdGhpcy5vcHRpb25zICA9IG9wdGlvbnM7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oZS50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENsb25lcyB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gb2JqZWN0LiAgQWxsIHByb3BlcnRpZXMgb2YgdGhpcworICAgICAqIG9iamVjdCBhcmUgZHVwbGljYXRlZCBpbiB0aGUgbmV3IG9iamVjdCwgaW5jbHVkaW5nIHRoZSBjbG9uaW5nIG9mIGFueQorICAgICAqIHtAbGluayBDaGFyYWN0ZXJJdGVyYXRvcn0gdGhhdCB3YXMgcGFzc2VkIGluIHRvIHRoZSBjb25zdHJ1Y3RvcgorICAgICAqIG9yIHRvIHtAbGluayAjc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvcikgc2V0VGV4dH0uCisgICAgICogSG93ZXZlciwgdGhlIHRleHQgc3RvcmFnZSB1bmRlcmx5aW5nCisgICAgICogdGhlIDx0dD5DaGFyYWN0ZXJJdGVyYXRvcjwvdHQ+IGlzIG5vdCBkdXBsaWNhdGVkIHVubGVzcyB0aGUKKyAgICAgKiBpdGVyYXRvcidzIDx0dD5jbG9uZTwvdHQ+IG1ldGhvZCBkb2VzIHNvLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBOb3JtYWxpemVyIGNvcHkgPSAoTm9ybWFsaXplcikgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIGNvcHkudGV4dCA9IChVQ2hhcmFjdGVySXRlcmF0b3IpIHRleHQuY2xvbmUoKTsKKyAgICAgICAgICAgIC8vY2xvbmUgdGhlIGludGVybmFsIGJ1ZmZlcgorICAgICAgICAgICAgaWYgKGJ1ZmZlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgY29weS5idWZmZXIgPSBuZXcgY2hhcltidWZmZXIubGVuZ3RoXTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ1ZmZlciwwLGNvcHkuYnVmZmVyLDAsYnVmZmVyLmxlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY29weTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbihlLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBTdGF0aWMgVXRpbGl0eSBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzdHIgICAgICAgIFRoZSBzdHJpbmcgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gY29tcGF0ICAgICBJZiB0cnVlIHRoZSBzdHJpbmcgd2lsbCBiZSBjb21wb3NlZCBhY2NvZGluZyB0byAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgTkZLQyBydWxlcyBhbmQgaWYgZmFsc2Ugd2lsbCBiZSBjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgICAgIE5GQyBydWxlcy4KKyAgICAgKiBAcmV0dXJuIFN0cmluZyAgICBUaGUgY29tcG9zZWQgc3RyaW5nICAgCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovICAgICAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgY29tcG9zZShTdHJpbmcgc3RyLCBib29sZWFuIGNvbXBhdCkgeworICAgICAgICByZXR1cm4gY29tcG9zZShzdHIsY29tcGF0LDApOyAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzdHIgICAgICAgIFRoZSBzdHJpbmcgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gY29tcGF0ICAgICBJZiB0cnVlIHRoZSBzdHJpbmcgd2lsbCBiZSBjb21wb3NlZCBhY2NvZGluZyB0byAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgTkZLQyBydWxlcyBhbmQgaWYgZmFsc2Ugd2lsbCBiZSBjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgICAgIE5GQyBydWxlcy4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgICBUaGUgb25seSByZWNvZ25pemVkIG9wdGlvbiBpcyBVTklDT0RFXzNfMgorICAgICAqIEByZXR1cm4gU3RyaW5nICAgIFRoZSBjb21wb3NlZCBzdHJpbmcgICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8gICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBjb21wb3NlKFN0cmluZyBzdHIsIGJvb2xlYW4gY29tcGF0LCBpbnQgb3B0aW9ucykgeworICAgICAgICAgICAKKyAgICAgICAgY2hhcltdIGRlc3QgPSBuZXcgY2hhcltzdHIubGVuZ3RoKCkqTUFYX0JVRl9TSVpFX0NPTVBPU0VdOworICAgICAgICBpbnQgZGVzdFNpemU9MDsKKyAgICAgICAgY2hhcltdIHNyYyA9IHN0ci50b0NoYXJBcnJheSgpOworICAgICAgICBVbmljb2RlU2V0IG54ID0gTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucyk7CisKKyAgICAgICAgLyogcmVzZXQgb3B0aW9ucyBiaXRzIHRoYXQgc2hvdWxkIG9ubHkgYmUgc2V0IGhlcmUgb3IgaW5zaWRlIGNvbXBvc2UoKSAqLworICAgICAgICBvcHRpb25zJj1+KE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfU0VUU19NQVNLfE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFUfE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUE9TRV9DT05USUdVT1VTKTsKKworICAgICAgICBpZihjb21wYXQpIHsKKyAgICAgICAgICAgIG9wdGlvbnN8PU5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFUOworICAgICAgICB9CisKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBkZXN0U2l6ZT1Ob3JtYWxpemVySW1wbC5jb21wb3NlKHNyYywwLHNyYy5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsMCxkZXN0Lmxlbmd0aCxvcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBueCk7CisgICAgICAgICAgICBpZihkZXN0U2l6ZTw9ZGVzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZXN0LDAsZGVzdFNpemUpOyAgCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRlc3QgPSBuZXcgY2hhcltkZXN0U2l6ZV07CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIGNoYXIgYXJyYXkgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IEEgY2hhciBidWZmZXIgdG8gcmVjZWl2ZSB0aGUgbm9ybWFsaXplZCB0ZXh0LgorICAgICAqIEBwYXJhbSBjb21wYXQgSWYgdHJ1ZSB0aGUgY2hhciBhcnJheSB3aWxsIGJlIGNvbXBvc2VkIGFjY29kaW5nIHRvIAorICAgICAqICAgICAgICAgICAgICAgIE5GS0MgcnVsZXMgYW5kIGlmIGZhbHNlIHdpbGwgYmUgY29tcG9zZWQgYWNjb3JkaW5nIHRvIAorICAgICAqICAgICAgICAgICAgICAgIE5GQyBydWxlcy4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgbm9ybWFsaXphdGlvbiBvcHRpb25zLCBPUmVkIHRvZ2V0aGVyICgwIGZvciBubyBvcHRpb25zKS4KKyAgICAgKiBAcmV0dXJuIGludCAgIFRoZSB0b3RhbCBidWZmZXIgc2l6ZSBuZWVkZWQ7aWYgZ3JlYXRlciB0aGFuIGxlbmd0aCBvZiAKKyAgICAgKiAgICAgICAgICAgICAgICByZXN1bHQsIHRoZSBvdXRwdXQgd2FzIHRydW5jYXRlZC4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgdGFyZ2V0Lmxlbmd0aCBpcyBsZXNzIHRoYW4gdGhlIAorICAgICAqICAgICAgICAgICAgIHJlcXVpcmVkIGxlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAgCisgICAgICovICAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcG9zZShjaGFyW10gc291cmNlLGNoYXJbXSB0YXJnZXQsIGJvb2xlYW4gY29tcGF0LCBpbnQgb3B0aW9ucykgeworICAgICAgICBVbmljb2RlU2V0IG54ID0gTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucyk7CisKKyAgICAgICAgLyogcmVzZXQgb3B0aW9ucyBiaXRzIHRoYXQgc2hvdWxkIG9ubHkgYmUgc2V0IGhlcmUgb3IgaW5zaWRlIGNvbXBvc2UoKSAqLworICAgICAgICBvcHRpb25zJj1+KE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfU0VUU19NQVNLfE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFUfE5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUE9TRV9DT05USUdVT1VTKTsKKworICAgICAgICBpZihjb21wYXQpIHsKKyAgICAgICAgICAgIG9wdGlvbnN8PU5vcm1hbGl6ZXJJbXBsLk9QVElPTlNfQ09NUEFUOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxlbmd0aCA9IE5vcm1hbGl6ZXJJbXBsLmNvbXBvc2Uoc291cmNlLDAsc291cmNlLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LDAsdGFyZ2V0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyxueCk7CisgICAgICAgIGlmKGxlbmd0aDw9dGFyZ2V0Lmxlbmd0aCkgeworICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKEludGVnZXIudG9TdHJpbmcobGVuZ3RoKSk7CisgICAgICAgIH0gCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzcmMgICAgICAgVGhlIGNoYXIgYXJyYXkgdG8gY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gc3JjU3RhcnQgIFN0YXJ0IGluZGV4IG9mIHRoZSBzb3VyY2UKKyAgICAgKiBAcGFyYW0gc3JjTGltaXQgIExpbWl0IGluZGV4IG9mIHRoZSBzb3VyY2UKKyAgICAgKiBAcGFyYW0gZGVzdCAgICAgIFRoZSBjaGFyIGJ1ZmZlciB0byBmaWxsIGluCisgICAgICogQHBhcmFtIGRlc3RTdGFydCBTdGFydCBpbmRleCBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyICAKKyAgICAgKiBAcGFyYW0gZGVzdExpbWl0IEVuZCBpbmRleCBvZiB0aGUgZGVzdGluYXRpb24gYnVmZmVyCisgICAgICogQHBhcmFtIGNvbXBhdCBJZiB0cnVlIHRoZSBjaGFyIGFycmF5IHdpbGwgYmUgY29tcG9zZWQgYWNjb2RpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgTkZLQyBydWxlcyBhbmQgaWYgZmFsc2Ugd2lsbCBiZSBjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgTkZDIHJ1bGVzLgorICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBub3JtYWxpemF0aW9uIG9wdGlvbnMsIE9SZWQgdG9nZXRoZXIgKDAgZm9yIG5vIG9wdGlvbnMpLgorICAgICAqIEByZXR1cm4gaW50ICAgVGhlIHRvdGFsIGJ1ZmZlciBzaXplIG5lZWRlZDtpZiBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIAorICAgICAqICAgICAgICAgICAgICAgIHJlc3VsdCwgdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0YXJnZXQubGVuZ3RoIGlzIGxlc3MgdGhhbiB0aGUgCisgICAgICogICAgICAgICAgICAgcmVxdWlyZWQgbGVuZ3RoIAorICAgICAqIEBzdGFibGUgSUNVIDIuNiAKKyAgICAgKi8gICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wb3NlKGNoYXJbXSBzcmMsaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjb21wYXQsIGludCBvcHRpb25zKSB7CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKworICAgICAgICAvKiByZXNldCBvcHRpb25zIGJpdHMgdGhhdCBzaG91bGQgb25seSBiZSBzZXQgaGVyZSBvciBpbnNpZGUgY29tcG9zZSgpICovCisgICAgICAgIG9wdGlvbnMmPX4oTm9ybWFsaXplckltcGwuT1BUSU9OU19TRVRTX01BU0t8Tm9ybWFsaXplckltcGwuT1BUSU9OU19DT01QQVR8Tm9ybWFsaXplckltcGwuT1BUSU9OU19DT01QT1NFX0NPTlRJR1VPVVMpOworCisgICAgICAgIGlmKGNvbXBhdCkgeworICAgICAgICAgICAgb3B0aW9uc3w9Tm9ybWFsaXplckltcGwuT1BUSU9OU19DT01QQVQ7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGVuZ3RoID0gTm9ybWFsaXplckltcGwuY29tcG9zZShzcmMsc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsZGVzdFN0YXJ0LGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucywgbngpOworICAgICAgICBpZihsZW5ndGg8PShkZXN0TGltaXQtZGVzdFN0YXJ0KSkgeworICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKEludGVnZXIudG9TdHJpbmcobGVuZ3RoKSk7CisgICAgICAgIH0gCisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfQlVGX1NJWkVfQ09NUE9TRSA9IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9CVUZfU0laRV9ERUNPTVBPU0UgPSAzOworICAgIAorICAgIC8qKgorICAgICAqIERlY29tcG9zZSBhIHN0cmluZy4KKyAgICAgKiBUaGUgc3RyaW5nIHdpbGwgYmUgZGVjb21wb3NlZCB0byBhY2NvcmRpbmcgdGhlIHRoZSBzcGVjaWZpZWQgbW9kZS4KKyAgICAgKiBAcGFyYW0gc3RyICAgICAgIFRoZSBzdHJpbmcgdG8gZGVjb21wb3NlLgorICAgICAqIEBwYXJhbSBjb21wYXQgICAgSWYgdHJ1ZSB0aGUgc3RyaW5nIHdpbGwgYmUgZGVjb21wb3NlZCBhY2NvZGluZyB0byBORktEIAorICAgICAqICAgICAgICAgICAgICAgICAgIHJ1bGVzIGFuZCBpZiBmYWxzZSB3aWxsIGJlIGRlY29tcG9zZWQgYWNjb3JkaW5nIHRvIE5GRCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICBydWxlcy4KKyAgICAgKiBAcmV0dXJuIFN0cmluZyAgIFRoZSBkZWNvbXBvc2VkIHN0cmluZyAgCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLyAgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlY29tcG9zZShTdHJpbmcgc3RyLCBib29sZWFuIGNvbXBhdCkgeworICAgICAgICByZXR1cm4gZGVjb21wb3NlKHN0cixjb21wYXQsMCk7ICAgICAgICAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERlY29tcG9zZSBhIHN0cmluZy4KKyAgICAgKiBUaGUgc3RyaW5nIHdpbGwgYmUgZGVjb21wb3NlZCB0byBhY2NvcmRpbmcgdGhlIHRoZSBzcGVjaWZpZWQgbW9kZS4KKyAgICAgKiBAcGFyYW0gc3RyICAgICBUaGUgc3RyaW5nIHRvIGRlY29tcG9zZS4KKyAgICAgKiBAcGFyYW0gY29tcGF0ICBJZiB0cnVlIHRoZSBzdHJpbmcgd2lsbCBiZSBkZWNvbXBvc2VkIGFjY29kaW5nIHRvIE5GS0QgCisgICAgICogICAgICAgICAgICAgICAgIHJ1bGVzIGFuZCBpZiBmYWxzZSB3aWxsIGJlIGRlY29tcG9zZWQgYWNjb3JkaW5nIHRvIE5GRCAKKyAgICAgKiAgICAgICAgICAgICAgICAgcnVsZXMuCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuCisgICAgICogQHJldHVybiBTdHJpbmcgVGhlIGRlY29tcG9zZWQgc3RyaW5nIAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLyAgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlY29tcG9zZShTdHJpbmcgc3RyLCBib29sZWFuIGNvbXBhdCwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgCisgICAgICAgIGNoYXJbXSBkZXN0ID0gbmV3IGNoYXJbc3RyLmxlbmd0aCgpKk1BWF9CVUZfU0laRV9ERUNPTVBPU0VdOworICAgICAgICBpbnRbXSB0cmFpbENDID0gbmV3IGludFsxXTsKKyAgICAgICAgaW50IGRlc3RTaXplPTA7CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBkZXN0U2l6ZT1Ob3JtYWxpemVySW1wbC5kZWNvbXBvc2Uoc3RyLnRvQ2hhckFycmF5KCksMCxzdHIubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwwLGRlc3QubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdCx0cmFpbENDLCBueCk7CisgICAgICAgICAgICBpZihkZXN0U2l6ZTw9ZGVzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZXN0LDAsZGVzdFNpemUpOyAKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZGVzdCA9IG5ldyBjaGFyW2Rlc3RTaXplXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRGVjb21wb3NlIGEgc3RyaW5nLgorICAgICAqIFRoZSBzdHJpbmcgd2lsbCBiZSBkZWNvbXBvc2VkIHRvIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBtb2RlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgVGhlIGNoYXIgYXJyYXkgdG8gZGVjb21wb3NlLgorICAgICAqIEBwYXJhbSB0YXJnZXQgQSBjaGFyIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBub3JtYWxpemVkIHRleHQuCisgICAgICogQHBhcmFtIGNvbXBhdCBJZiB0cnVlIHRoZSBjaGFyIGFycmF5IHdpbGwgYmUgZGVjb21wb3NlZCBhY2NvZGluZyB0byBORktEIAorICAgICAqICAgICAgICAgICAgICAgIHJ1bGVzIGFuZCBpZiBmYWxzZSB3aWxsIGJlIGRlY29tcG9zZWQgYWNjb3JkaW5nIHRvIAorICAgICAqICAgICAgICAgICAgICAgIE5GRCBydWxlcy4KKyAgICAgKiBAcmV0dXJuIGludCAgIFRoZSB0b3RhbCBidWZmZXIgc2l6ZSBuZWVkZWQ7aWYgZ3JlYXRlciB0aGFuIGxlbmd0aCBvZiAKKyAgICAgKiAgICAgICAgICAgICAgICByZXN1bHQsdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBub3JtYWxpemF0aW9uIG9wdGlvbnMsIE9SZWQgdG9nZXRoZXIgKDAgZm9yIG5vIG9wdGlvbnMpLgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgdGFyZ2V0IGNhcGFjaXR5IGlzIGxlc3MgdGhhbgorICAgICAqICAgICAgICAgICAgIHRoZSByZXF1aXJlZCBsZW5ndGggICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBkZWNvbXBvc2UoY2hhcltdIHNvdXJjZSxjaGFyW10gdGFyZ2V0LCBib29sZWFuIGNvbXBhdCwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgaW50W10gdHJhaWxDQyA9IG5ldyBpbnRbMV07CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IE5vcm1hbGl6ZXJJbXBsLmRlY29tcG9zZShzb3VyY2UsMCxzb3VyY2UubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCwwLHRhcmdldC5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGF0LHRyYWlsQ0MsbngpOworICAgICAgICBpZihsZW5ndGg8PXRhcmdldC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKGxlbmd0aCkpOworICAgICAgICB9IAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZWNvbXBvc2UgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIGRlY29tcG9zZWQgdG8gYWNjb3JkaW5nIHRoZSB0aGUgc3BlY2lmaWVkIG1vZGUuCisgICAgICogQHBhcmFtIHNyYyAgICAgICBUaGUgY2hhciBhcnJheSB0byBjb21wb3NlLgorICAgICAqIEBwYXJhbSBzcmNTdGFydCAgU3RhcnQgaW5kZXggb2YgdGhlIHNvdXJjZQorICAgICAqIEBwYXJhbSBzcmNMaW1pdCAgTGltaXQgaW5kZXggb2YgdGhlIHNvdXJjZQorICAgICAqIEBwYXJhbSBkZXN0ICAgICAgVGhlIGNoYXIgYnVmZmVyIHRvIGZpbGwgaW4KKyAgICAgKiBAcGFyYW0gZGVzdFN0YXJ0IFN0YXJ0IGluZGV4IG9mIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgIAorICAgICAqIEBwYXJhbSBkZXN0TGltaXQgRW5kIGluZGV4IG9mIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIKKyAgICAgKiBAcGFyYW0gY29tcGF0IElmIHRydWUgdGhlIGNoYXIgYXJyYXkgd2lsbCBiZSBkZWNvbXBvc2VkIGFjY29kaW5nIHRvIE5GS0QgCisgICAgICogICAgICAgICAgICAgICAgcnVsZXMgYW5kIGlmIGZhbHNlIHdpbGwgYmUgZGVjb21wb3NlZCBhY2NvcmRpbmcgdG8gCisgICAgICogICAgICAgICAgICAgICAgTkZEIHJ1bGVzLgorICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBub3JtYWxpemF0aW9uIG9wdGlvbnMsIE9SZWQgdG9nZXRoZXIgKDAgZm9yIG5vIG9wdGlvbnMpLgorICAgICAqIEByZXR1cm4gaW50ICAgVGhlIHRvdGFsIGJ1ZmZlciBzaXplIG5lZWRlZDtpZiBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIAorICAgICAqICAgICAgICAgICAgICAgIHJlc3VsdCx0aGUgb3V0cHV0IHdhcyB0cnVuY2F0ZWQuCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIHRoZSB0YXJnZXQgY2FwYWNpdHkgaXMgbGVzcyB0aGFuCisgICAgICogICAgICAgICAgICAgdGhlIHJlcXVpcmVkIGxlbmd0aCAgCisgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGRlY29tcG9zZShjaGFyW10gc3JjLGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCxpbnQgZGVzdFN0YXJ0LCBpbnQgZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNvbXBhdCwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgaW50W10gdHJhaWxDQyA9IG5ldyBpbnRbMV07CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKyAgICAgICAgaW50IGxlbmd0aCA9IE5vcm1hbGl6ZXJJbXBsLmRlY29tcG9zZShzcmMsc3JjU3RhcnQsc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCxkZXN0U3RhcnQsZGVzdExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdCx0cmFpbENDLG54KTsKKyAgICAgICAgaWYobGVuZ3RoPD0oZGVzdExpbWl0LWRlc3RTdGFydCkpIHsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKGxlbmd0aCkpOworICAgICAgICB9IAorICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIG1ha2VGQ0QoU3RyaW5nIHNyYyxpbnQgb3B0aW9ucykgeworICAgICAgICBpbnQgc3JjTGVuID0gc3JjLmxlbmd0aCgpOworICAgICAgICBjaGFyW10gZGVzdCA9IG5ldyBjaGFyW01BWF9CVUZfU0laRV9ERUNPTVBPU0Uqc3JjTGVuXTsKKyAgICAgICAgaW50IGxlbmd0aCA9IDA7CisgICAgICAgIFVuaWNvZGVTZXQgbnggPSBOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKTsKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICBsZW5ndGggPSBOb3JtYWxpemVySW1wbC5tYWtlRkNEKHNyYy50b0NoYXJBcnJheSgpLDAsc3JjTGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0LDAsZGVzdC5sZW5ndGgsbngpOworICAgICAgICAgICAgaWYobGVuZ3RoIDw9IGRlc3QubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoZGVzdCwwLGxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRlc3QgPSBuZXcgY2hhcltsZW5ndGhdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE5vcm1hbGl6ZXMgYSA8dHQ+U3RyaW5nPC90dD4gdXNpbmcgdGhlIGdpdmVuIG5vcm1hbGl6YXRpb24gb3BlcmF0aW9uLgorICAgICAqIDxwPgorICAgICAqIFRoZSA8dHQ+b3B0aW9uczwvdHQ+IHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggb3B0aW9uYWwKKyAgICAgKiA8dHQ+Tm9ybWFsaXplcjwvdHQ+IGZlYXR1cmVzIGFyZSB0byBiZSBlbmFibGVkIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKiBDdXJyZW50bHkgdGhlIG9ubHkgYXZhaWxhYmxlIG9wdGlvbiBpcyB7QGxpbmsgI1VOSUNPREVfM18yfS4KKyAgICAgKiBJZiB5b3Ugd2FudCB0aGUgZGVmYXVsdCBiZWhhdmlvciBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgc3RhbmRhcmQKKyAgICAgKiBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybXMsIHVzZSAwIGZvciB0aGlzIGFyZ3VtZW50LgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBzdHIgICAgICAgdGhlIGlucHV0IHN0cmluZyB0byBiZSBub3JtYWxpemVkLgorICAgICAqIEBwYXJhbSBtb2RlICAgICAgdGhlIG5vcm1hbGl6YXRpb24gbW9kZQorICAgICAqIEBwYXJhbSBvcHRpb25zICAgdGhlIG9wdGlvbmFsIGZlYXR1cmVzIHRvIGJlIGVuYWJsZWQuCisgICAgICogQHJldHVybiBTdHJpbmcgICB0aGUgbm9ybWFsaXplZCBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBub3JtYWxpemUoU3RyaW5nIHN0ciwgTW9kZSBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gbW9kZS5ub3JtYWxpemUoc3RyLG9wdGlvbnMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemUgYSBzdHJpbmcuCisgICAgICogVGhlIHN0cmluZyB3aWxsIGJlIG5vcm1hbGl6ZWQgYWNjb3JkaW5nIHRoZSB0aGUgc3BlY2lmaWVkIG5vcm1hbGl6YXRpb24gCisgICAgICogbW9kZSBhbmQgb3B0aW9ucy4KKyAgICAgKiBAcGFyYW0gc3JjICAgICAgICBUaGUgc3RyaW5nIHRvIG5vcm1hbGl6ZS4KKyAgICAgKiBAcGFyYW0gbW9kZSAgICAgICBUaGUgbm9ybWFsaXphdGlvbiBtb2RlOyBvbmUgb2YgTm9ybWFsaXplci5OT05FLCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQsIE5vcm1hbGl6ZXIuTkZDLCBOb3JtYWxpemVyLk5GS0MsIAorICAgICAqICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0QsIE5vcm1hbGl6ZXIuREVGQVVMVAorICAgICAqIEByZXR1cm4gdGhlIG5vcm1hbGl6ZWQgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICogICAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBub3JtYWxpemUoU3RyaW5nIHNyYyxNb2RlIG1vZGUpIHsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShzcmMsIG1vZGUsIDApOyAgICAKKyAgICB9CisgICAgLyoqCisgICAgICogTm9ybWFsaXplIGEgc3RyaW5nLgorICAgICAqIFRoZSBzdHJpbmcgd2lsbCBiZSBub3JtYWxpemVkIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBub3JtYWxpemF0aW9uIAorICAgICAqIG1vZGUgYW5kIG9wdGlvbnMuCisgICAgICogQHBhcmFtIHNvdXJjZSBUaGUgY2hhciBhcnJheSB0byBub3JtYWxpemUuCisgICAgICogQHBhcmFtIHRhcmdldCBBIGNoYXIgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIG5vcm1hbGl6ZWQgdGV4dC4KKyAgICAgKiBAcGFyYW0gbW9kZSAgIFRoZSBub3JtYWxpemF0aW9uIG1vZGU7IG9uZSBvZiBOb3JtYWxpemVyLk5PTkUsIAorICAgICAqICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZELCBOb3JtYWxpemVyLk5GQywgTm9ybWFsaXplci5ORktDLCAKKyAgICAgKiAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk5GS0QsIE5vcm1hbGl6ZXIuREVGQVVMVAorICAgICAqIEBwYXJhbSBvcHRpb25zIFRoZSBub3JtYWxpemF0aW9uIG9wdGlvbnMsIE9SZWQgdG9nZXRoZXIgKDAgZm9yIG5vIG9wdGlvbnMpLgorICAgICAqIEByZXR1cm4gaW50ICAgVGhlIHRvdGFsIGJ1ZmZlciBzaXplIG5lZWRlZDtpZiBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIAorICAgICAqICAgICAgICAgICAgICAgIHJlc3VsdCwgdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBleGNlcHRpb24gICAgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgdGFyZ2V0IGNhcGFjaXR5IGlzIGxlc3MgCisgICAgICogICAgICAgICAgICAgICAgdGhhbiB0aGUgcmVxdWlyZWQgbGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi42ICAgICAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBub3JtYWxpemUoY2hhcltdIHNvdXJjZSxjaGFyW10gdGFyZ2V0LCBNb2RlICBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICBpbnQgbGVuZ3RoID0gbm9ybWFsaXplKHNvdXJjZSwwLHNvdXJjZS5sZW5ndGgsdGFyZ2V0LDAsdGFyZ2V0Lmxlbmd0aCxtb2RlLCBvcHRpb25zKTsKKyAgICAgICAgaWYobGVuZ3RoPD10YXJnZXQubGVuZ3RoKSB7CisgICAgICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhsZW5ndGgpKTsKKyAgICAgICAgfSAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTm9ybWFsaXplIGEgc3RyaW5nLgorICAgICAqIFRoZSBzdHJpbmcgd2lsbCBiZSBub3JtYWxpemVkIGFjY29yZGluZyB0aGUgdGhlIHNwZWNpZmllZCBub3JtYWxpemF0aW9uCisgICAgICogbW9kZSBhbmQgb3B0aW9ucy4KKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBjaGFyIGFycmF5IHRvIGNvbXBvc2UuCisgICAgICogQHBhcmFtIHNyY1N0YXJ0ICBTdGFydCBpbmRleCBvZiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIHNyY0xpbWl0ICBMaW1pdCBpbmRleCBvZiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIGRlc3QgICAgICBUaGUgY2hhciBidWZmZXIgdG8gZmlsbCBpbgorICAgICAqIEBwYXJhbSBkZXN0U3RhcnQgU3RhcnQgaW5kZXggb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciAgCisgICAgICogQHBhcmFtIGRlc3RMaW1pdCBFbmQgaW5kZXggb2YgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBtb2RlICAgICAgVGhlIG5vcm1hbGl6YXRpb24gbW9kZTsgb25lIG9mIE5vcm1hbGl6ZXIuTk9ORSwgCisgICAgICogICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORkQsIE5vcm1hbGl6ZXIuTkZDLCBOb3JtYWxpemVyLk5GS0MsIAorICAgICAqICAgICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLRCwgTm9ybWFsaXplci5ERUZBVUxUCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuIAorICAgICAqIEByZXR1cm4gaW50ICAgICAgVGhlIHRvdGFsIGJ1ZmZlciBzaXplIG5lZWRlZDtpZiBncmVhdGVyIHRoYW4gbGVuZ3RoIG9mIAorICAgICAqICAgICAgICAgICAgICAgICAgIHJlc3VsdCwgdGhlIG91dHB1dCB3YXMgdHJ1bmNhdGVkLgorICAgICAqIEBleGNlcHRpb24gICAgICAgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiB0aGUgdGFyZ2V0IGNhcGFjaXR5IGlzIAorICAgICAqICAgICAgICAgICAgICAgICAgIGxlc3MgdGhhbiB0aGUgcmVxdWlyZWQgbGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi42ICAgIAorICAgICAqLyAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludCBub3JtYWxpemUoY2hhcltdIHNyYyxpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBkZXN0LGludCBkZXN0U3RhcnQsIGludCBkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZGUgIG1vZGUsIGludCBvcHRpb25zKSB7CisgICAgICAgIGludCBsZW5ndGggPSBtb2RlLm5vcm1hbGl6ZShzcmMsc3JjU3RhcnQsc3JjTGltaXQsZGVzdCxkZXN0U3RhcnQsZGVzdExpbWl0LCBvcHRpb25zKTsKKyAgICAgICAKKyAgICAgICAgaWYobGVuZ3RoPD0oZGVzdExpbWl0LWRlc3RTdGFydCkpIHsKKyAgICAgICAgICAgIHJldHVybiBsZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihJbnRlZ2VyLnRvU3RyaW5nKGxlbmd0aCkpOworICAgICAgICB9IAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBOb3JtYWxpemUgYSBjb2RlcG9pbnQgYWNjb2RpbmcgdG8gdGhlIGdpdmVuIG1vZGUKKyAgICAgKiBAcGFyYW0gY2hhcjMyICAgIFRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4KKyAgICAgKiBAcGFyYW0gbW9kZSAgICAgIFRoZSBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIE9wdGlvbnMgZm9yIHVzZSB3aXRoIGV4Y2x1c2lvbiBzZXQgYW4gdGFpbG9yZWQgTm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb25seSBvcHRpb24gdGhhdCBpcyBjdXJyZW50bHkgcmVjb2duaXplZCBpcyBVTklDT0RFXzNfMgorICAgICAqIEByZXR1cm4gU3RyaW5nICAgVGhlIG5vcm1hbGl6ZWQgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICogQHNlZSAjVU5JQ09ERV8zXzIKKyAgICAgKi8KKyAgICAvLyBUT0RPOiBhY3R1YWxseSBkbyB0aGUgb3B0aW1pemF0aW9uIHdoZW4gdGhlIGd1dHMgb2YgTm9ybWFsaXplciBhcmUgCisgICAgLy8gdXBncmFkZWQgLS1oYXMganVzdCBkdW1iIGltcGxlbWVudGF0aW9uIGZvciBub3cKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBub3JtYWxpemUoaW50IGNoYXIzMiwgTW9kZSBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gbm9ybWFsaXplKFVURjE2LnZhbHVlT2YoY2hhcjMyKSwgbW9kZSwgb3B0aW9ucyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVpbmllbmNlIG1ldGhvZCB0byBub3JtYWxpemUgYSBjb2RlcG9pbnQgYWNjb2RpbmcgdG8gdGhlIGdpdmVuIG1vZGUKKyAgICAgKiBAcGFyYW0gY2hhcjMyICAgIFRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4KKyAgICAgKiBAcGFyYW0gbW9kZSAgICAgIFRoZSBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKiBAcmV0dXJuIFN0cmluZyAgIFRoZSBub3JtYWxpemVkIHN0cmluZworICAgICAqIEBzZWUgI1VOSUNPREVfM18yICAgICAgICAgICAgICAgIAorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIC8vIFRPRE86IGFjdHVhbGx5IGRvIHRoZSBvcHRpbWl6YXRpb24gd2hlbiB0aGUgZ3V0cyBvZiBOb3JtYWxpemVyIGFyZSAKKyAgICAvLyB1cGdyYWRlZCAtLWhhcyBqdXN0IGR1bWIgaW1wbGVtZW50YXRpb24gZm9yIG5vdworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIG5vcm1hbGl6ZShpbnQgY2hhcjMyLCBNb2RlIG1vZGUpIHsKKyAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShVVEYxNi52YWx1ZU9mKGNoYXIzMiksIG1vZGUsIDApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlICAgc3RyaW5nIGZvciBkZXRlcm1pbmluZyBpZiBpdCBpcyBpbiBhIG5vcm1hbGl6ZWQgZm9ybWF0CisgICAgICogQHBhcmFtIG1vZGUgICAgIG5vcm1hbGl6YXRpb24gZm9ybWF0IChOb3JtYWxpemVyLk5GQyxOb3JtYWxpemVyLk5GRCwgIAorICAgICAqICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktDLE5vcm1hbGl6ZXIuTkZLRCkKKyAgICAgKiBAcmV0dXJuICAgICAgICAgUmV0dXJuIGNvZGUgdG8gc3BlY2lmeSBpZiB0aGUgdGV4dCBpcyBub3JtYWxpemVkIG9yIG5vdCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIChOb3JtYWxpemVyLllFUywgTm9ybWFsaXplci5OTyBvciBOb3JtYWxpemVyLk1BWUJFKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUXVpY2tDaGVja1Jlc3VsdCBxdWlja0NoZWNrKCBTdHJpbmcgc291cmNlLCBNb2RlIG1vZGUpIHsKKyAgICAgICAgcmV0dXJuIG1vZGUucXVpY2tDaGVjayhzb3VyY2UudG9DaGFyQXJyYXkoKSwwLHNvdXJjZS5sZW5ndGgoKSx0cnVlLG51bGwpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlICAgc3RyaW5nIGZvciBkZXRlcm1pbmluZyBpZiBpdCBpcyBpbiBhIG5vcm1hbGl6ZWQgZm9ybWF0CisgICAgICogQHBhcmFtIG1vZGUgICAgIG5vcm1hbGl6YXRpb24gZm9ybWF0IChOb3JtYWxpemVyLk5GQyxOb3JtYWxpemVyLk5GRCwgIAorICAgICAqICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktDLE5vcm1hbGl6ZXIuTkZLRCkKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIE9wdGlvbnMgZm9yIHVzZSB3aXRoIGV4Y2x1c2lvbiBzZXQgYW4gdGFpbG9yZWQgTm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb25seSBvcHRpb24gdGhhdCBpcyBjdXJyZW50bHkgcmVjb2duaXplZCBpcyBVTklDT0RFXzNfMiAgICAgCisgICAgICogQHJldHVybiAgICAgICAgIFJldHVybiBjb2RlIHRvIHNwZWNpZnkgaWYgdGhlIHRleHQgaXMgbm9ybWFsaXplZCBvciBub3QgCisgICAgICogICAgICAgICAgICAgICAgICAgICAoTm9ybWFsaXplci5ZRVMsIE5vcm1hbGl6ZXIuTk8gb3IgTm9ybWFsaXplci5NQVlCRSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFF1aWNrQ2hlY2tSZXN1bHQgcXVpY2tDaGVjayggU3RyaW5nIHNvdXJjZSwgTW9kZSBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gbW9kZS5xdWlja0NoZWNrKHNvdXJjZS50b0NoYXJBcnJheSgpLDAsc291cmNlLmxlbmd0aCgpLHRydWUsTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucykpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc291cmNlIEFycmF5IG9mIGNoYXJhY3RlcnMgZm9yIGRldGVybWluaW5nIGlmIGl0IGlzIGluIGEgCisgICAgICogICAgICAgICAgICAgICAgbm9ybWFsaXplZCBmb3JtYXQKKyAgICAgKiBAcGFyYW0gbW9kZSAgIG5vcm1hbGl6YXRpb24gZm9ybWF0IChOb3JtYWxpemVyLk5GQyxOb3JtYWxpemVyLk5GRCwgIAorICAgICAqICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQyxOb3JtYWxpemVyLk5GS0QpCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBPcHRpb25zIGZvciB1c2Ugd2l0aCBleGNsdXNpb24gc2V0IGFuIHRhaWxvcmVkIE5vcm1hbGl6YXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIG9ubHkgb3B0aW9uIHRoYXQgaXMgY3VycmVudGx5IHJlY29nbml6ZWQgaXMgVU5JQ09ERV8zXzIKKyAgICAgKiBAcmV0dXJuICAgICAgIFJldHVybiBjb2RlIHRvIHNwZWNpZnkgaWYgdGhlIHRleHQgaXMgbm9ybWFsaXplZCBvciBub3QgCisgICAgICogICAgICAgICAgICAgICAgKE5vcm1hbGl6ZXIuWUVTLCBOb3JtYWxpemVyLk5PIG9yIE5vcm1hbGl6ZXIuTUFZQkUpCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBRdWlja0NoZWNrUmVzdWx0IHF1aWNrQ2hlY2soY2hhcltdIHNvdXJjZSwgTW9kZSBtb2RlLCBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gbW9kZS5xdWlja0NoZWNrKHNvdXJjZSwwLHNvdXJjZS5sZW5ndGgsdHJ1ZSwgTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucykpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtaW5nIHF1aWNrIGNoZWNrIG9uIGEgc3RyaW5nLCB0byBxdWlja2x5IGRldGVybWluZSBpZiB0aGUgc3RyaW5nIGlzIAorICAgICAqIGluIGEgcGFydGljdWxhciBub3JtYWxpemF0aW9uIGZvcm1hdC4KKyAgICAgKiBUaHJlZSB0eXBlcyBvZiByZXN1bHQgY2FuIGJlIHJldHVybmVkIE5vcm1hbGl6ZXIuWUVTLCBOb3JtYWxpemVyLk5PIG9yCisgICAgICogTm9ybWFsaXplci5NQVlCRS4gUmVzdWx0IE5vcm1hbGl6ZXIuWUVTIGluZGljYXRlcyB0aGF0IHRoZSBhcmd1bWVudAorICAgICAqIHN0cmluZyBpcyBpbiB0aGUgZGVzaXJlZCBub3JtYWxpemVkIGZvcm1hdCwgTm9ybWFsaXplci5OTyBkZXRlcm1pbmVzIHRoYXQKKyAgICAgKiBhcmd1bWVudCBzdHJpbmcgaXMgbm90IGluIHRoZSBkZXNpcmVkIG5vcm1hbGl6ZWQgZm9ybWF0LiBBIAorICAgICAqIE5vcm1hbGl6ZXIuTUFZQkUgcmVzdWx0IGluZGljYXRlcyB0aGF0IGEgbW9yZSB0aG9yb3VnaCBjaGVjayBpcyByZXF1aXJlZCwgCisgICAgICogdGhlIHVzZXIgbWF5IGhhdmUgdG8gcHV0IHRoZSBzdHJpbmcgaW4gaXRzIG5vcm1hbGl6ZWQgZm9ybSBhbmQgY29tcGFyZSAKKyAgICAgKiB0aGUgcmVzdWx0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzb3VyY2UgICAgc3RyaW5nIGZvciBkZXRlcm1pbmluZyBpZiBpdCBpcyBpbiBhIG5vcm1hbGl6ZWQgZm9ybWF0CisgICAgICogQHBhcmFtIHN0YXJ0ICAgICB0aGUgc3RhcnQgaW5kZXggb2YgdGhlIHNvdXJjZQorICAgICAqIEBwYXJhbSBsaW1pdCAgICAgdGhlIGxpbWl0IGluZGV4IG9mIHRoZSBzb3VyY2UgaXQgaXMgZXF1YWwgdG8gdGhlIGxlbmd0aAorICAgICAqIEBwYXJhbSBtb2RlICAgICAgbm9ybWFsaXphdGlvbiBmb3JtYXQgKE5vcm1hbGl6ZXIuTkZDLE5vcm1hbGl6ZXIuTkZELCAgCisgICAgICogICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5ORktDLE5vcm1hbGl6ZXIuTkZLRCkKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIE9wdGlvbnMgZm9yIHVzZSB3aXRoIGV4Y2x1c2lvbiBzZXQgYW4gdGFpbG9yZWQgTm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb25seSBvcHRpb24gdGhhdCBpcyBjdXJyZW50bHkgcmVjb2duaXplZCBpcyBVTklDT0RFXzNfMiAgICAKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFJldHVybiBjb2RlIHRvIHNwZWNpZnkgaWYgdGhlIHRleHQgaXMgbm9ybWFsaXplZCBvciBub3QgCisgICAgICogICAgICAgICAgICAgICAgICAgKE5vcm1hbGl6ZXIuWUVTLCBOb3JtYWxpemVyLk5PIG9yCisgICAgICogICAgICAgICAgICAgICAgICAgTm9ybWFsaXplci5NQVlCRSkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKworICAgIHB1YmxpYyBzdGF0aWMgUXVpY2tDaGVja1Jlc3VsdCBxdWlja0NoZWNrKGNoYXJbXSBzb3VyY2UsaW50IHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsIE1vZGUgbW9kZSxpbnQgb3B0aW9ucykgeyAgICAgICAKKyAgICAgICAgcmV0dXJuIG1vZGUucXVpY2tDaGVjayhzb3VyY2Usc3RhcnQsbGltaXQsdHJ1ZSxOb3JtYWxpemVySW1wbC5nZXROWChvcHRpb25zKSk7CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEludGVybmFsIG1ldGhvZHMgKGZvciBub3cpCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUZXN0IGlmIGEgc3RyaW5nIGlzIGluIGEgZ2l2ZW4gbm9ybWFsaXphdGlvbiBmb3JtLgorICAgICAqIFRoaXMgaXMgc2VtYW50aWNhbGx5IGVxdWl2YWxlbnQgdG8gc291cmNlLmVxdWFscyhub3JtYWxpemUoc291cmNlLCBtb2RlKSkuCisgICAgICoKKyAgICAgKiBVbmxpa2UgcXVpY2tDaGVjaygpLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgYSBkZWZpbml0aXZlIHJlc3VsdCwKKyAgICAgKiBuZXZlciBhICJtYXliZSIuCisgICAgICogRm9yIE5GRCwgTkZLRCwgYW5kIEZDRCwgYm90aCBmdW5jdGlvbnMgd29yayBleGFjdGx5IHRoZSBzYW1lLgorICAgICAqIEZvciBORkMgYW5kIE5GS0Mgd2hlcmUgcXVpY2tDaGVjayBtYXkgcmV0dXJuICJtYXliZSIsIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAqIHBlcmZvcm0gZnVydGhlciB0ZXN0cyB0byBhcnJpdmUgYXQgYSB0cnVlL2ZhbHNlIHJlc3VsdC4KKyAgICAgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBpbnB1dCBhcnJheSBvZiBjaGFyYWN0ZXJzIHRvIGJlIGNoZWNrZWQgdG8gc2VlIGlmIAorICAgICAqICAgICAgICAgICAgICAgICAgIGl0IGlzIG5vcm1hbGl6ZWQKKyAgICAgKiBAcGFyYW0gc3RhcnQgICAgIFRoZSBzdHJhcnQgaW5kZXggaW4gdGhlIHNvdXJjZQorICAgICAqIEBwYXJhbSBsaW1pdCAgICAgVGhlIGxpbWl0IGluZGV4IGluIHRoZSBzb3VyY2UKKyAgICAgKiBAcGFyYW0gbW9kZSAgICAgIHRoZSBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIE9wdGlvbnMgZm9yIHVzZSB3aXRoIGV4Y2x1c2lvbiBzZXQgYW4gdGFpbG9yZWQgTm9ybWFsaXphdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgb25seSBvcHRpb24gdGhhdCBpcyBjdXJyZW50bHkgcmVjb2duaXplZCBpcyBVTklDT0RFXzNfMiAgICAKKyAgICAgKiBAcmV0dXJuIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBzb3VyY2Ugc3RyaW5nIGlzIGluIHRoZQorICAgICAqICAgICAgICAgIm1vZGUiIG5vcm1hbGl6YXRpb24gZm9ybQorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc05vcm1hbGl6ZWQoY2hhcltdIHNyYyxpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsIE1vZGUgbW9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gKG1vZGUucXVpY2tDaGVjayhzcmMsc3RhcnQsbGltaXQsZmFsc2UsTm9ybWFsaXplckltcGwuZ2V0Tlgob3B0aW9ucykpPT1ZRVMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBNZXRob2QKKyAgICAgKiBAcGFyYW0gc3RyICAgICAgIHRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgY2hlY2tlZCB0byBzZWUgaWYgaXQgaXMgCisgICAgICogICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZAorICAgICAqIEBwYXJhbSBtb2RlICAgICAgdGhlIG5vcm1hbGl6YXRpb24gbW9kZQorICAgICAqIEBwYXJhbSBvcHRpb25zICAgT3B0aW9ucyBmb3IgdXNlIHdpdGggZXhjbHVzaW9uIHNldCBhbiB0YWlsb3JlZCBOb3JtYWxpemF0aW9uCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBvbmx5IG9wdGlvbiB0aGF0IGlzIGN1cnJlbnRseSByZWNvZ25pemVkIGlzIFVOSUNPREVfM18yICAgCisgICAgICogQHNlZSAjaXNOb3JtYWxpemVkCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTm9ybWFsaXplZChTdHJpbmcgc3RyLCBNb2RlIG1vZGUsIGludCBvcHRpb25zKSB7CisgICAgICAgIHJldHVybiAobW9kZS5xdWlja0NoZWNrKHN0ci50b0NoYXJBcnJheSgpLDAsc3RyLmxlbmd0aCgpLGZhbHNlLE5vcm1hbGl6ZXJJbXBsLmdldE5YKG9wdGlvbnMpKT09WUVTKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgTWV0aG9kCisgICAgICogQHBhcmFtIGNoYXIzMiAgICB0aGUgaW5wdXQgY29kZSBwb2ludCB0byBiZSBjaGVja2VkIHRvIHNlZSBpZiBpdCBpcyAKKyAgICAgKiAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkCisgICAgICogQHBhcmFtIG1vZGUgICAgICB0aGUgbm9ybWFsaXphdGlvbiBtb2RlCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBPcHRpb25zIGZvciB1c2Ugd2l0aCBleGNsdXNpb24gc2V0IGFuIHRhaWxvcmVkIE5vcm1hbGl6YXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIG9ubHkgb3B0aW9uIHRoYXQgaXMgY3VycmVudGx5IHJlY29nbml6ZWQgaXMgVU5JQ09ERV8zXzIgICAgCisgICAgICoKKyAgICAgKiBAc2VlICNpc05vcm1hbGl6ZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICAvLyBUT0RPOiBhY3R1YWxseSBkbyB0aGUgb3B0aW1pemF0aW9uIHdoZW4gdGhlIGd1dHMgb2YgTm9ybWFsaXplciBhcmUgCisgICAgLy8gdXBncmFkZWQgLS1oYXMganVzdCBkdW1iIGltcGxlbWVudGF0aW9uIGZvciBub3cKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNOb3JtYWxpemVkKGludCBjaGFyMzIsIE1vZGUgbW9kZSxpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gaXNOb3JtYWxpemVkKFVURjE2LnZhbHVlT2YoY2hhcjMyKSwgbW9kZSwgb3B0aW9ucyk7CisgICAgfQorICAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBzdHJpbmdzIGZvciBjYW5vbmljYWwgZXF1aXZhbGVuY2UuCisgICAgICogRnVydGhlciBvcHRpb25zIGluY2x1ZGUgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIGFuZAorICAgICAqIGNvZGUgcG9pbnQgb3JkZXIgKGFzIG9wcG9zZWQgdG8gY29kZSB1bml0IG9yZGVyKS4KKyAgICAgKgorICAgICAqIENhbm9uaWNhbCBlcXVpdmFsZW5jZSBiZXR3ZWVuIHR3byBzdHJpbmdzIGlzIGRlZmluZWQgYXMgdGhlaXIgbm9ybWFsaXplZAorICAgICAqIGZvcm1zIChORkQgb3IgTkZDKSBiZWluZyBpZGVudGljYWwuCisgICAgICogVGhpcyBmdW5jdGlvbiBjb21wYXJlcyBzdHJpbmdzIGluY3JlbWVudGFsbHkgaW5zdGVhZCBvZiBub3JtYWxpemluZworICAgICAqIChhbmQgb3B0aW9uYWxseSBjYXNlLWZvbGRpbmcpIGJvdGggc3RyaW5ncyBlbnRpcmVseSwKKyAgICAgKiBpbXByb3ZpbmcgcGVyZm9ybWFuY2Ugc2lnbmlmaWNhbnRseS4KKyAgICAgKgorICAgICAqIEJ1bGsgbm9ybWFsaXphdGlvbiBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB0aGUgc3RyaW5ncyBkbyBub3QgZnVsZmlsbCB0aGUgCisgICAgICogRkNEIGNvbmRpdGlvbnMuIE9ubHkgaW4gdGhpcyBjYXNlLCBhbmQgb25seSBpZiB0aGUgc3RyaW5ncyBhcmUgcmVsYXRpdmVseSAKKyAgICAgKiBsb25nLCBpcyBtZW1vcnkgYWxsb2NhdGVkIHRlbXBvcmFyaWx5LgorICAgICAqIEZvciBGQ0Qgc3RyaW5ncyBhbmQgc2hvcnQgbm9uLUZDRCBzdHJpbmdzIHRoZXJlIGlzIG5vIG1lbW9yeSBhbGxvY2F0aW9uLgorICAgICAqCisgICAgICogU2VtYW50aWNhbGx5LCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiAgIHN0cmNtcFtDb2RlUG9pbnRPcmRlcl0oZm9sZENhc2UoTkZEKHMxKSksIGZvbGRDYXNlKE5GRChzMikpKQorICAgICAqIHdoZXJlIGNvZGUgcG9pbnQgb3JkZXIgYW5kIGZvbGRDYXNlIGFyZSBhbGwgb3B0aW9uYWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gczEgICAgICAgIEZpcnN0IHNvdXJjZSBjaGFyYWN0ZXIgYXJyYXkuCisgICAgICogQHBhcmFtIHMxU3RhcnQgICBzdGFydCBpbmRleCBvZiBzb3VyY2UKKyAgICAgKiBAcGFyYW0gczFMaW1pdCAgIGxpbWl0IG9mIHRoZSBzb3VyY2UKKyAgICAgKgorICAgICAqIEBwYXJhbSBzMiAgICAgICAgU2Vjb25kIHNvdXJjZSBjaGFyYWN0ZXIgYXJyYXkuCisgICAgICogQHBhcmFtIHMyU3RhcnQgICBzdGFydCBpbmRleCBvZiB0aGUgc291cmNlCisgICAgICogQHBhcmFtIHMyTGltaXQgICBsaW1pdCBvZiB0aGUgc291cmNlCisgICAgICogCisgICAgICogQHBhcmFtIG9wdGlvbnMgQSBiaXQgc2V0IG9mIG9wdGlvbnM6CisgICAgICogICAtIEZPTERfQ0FTRV9ERUZBVUxUIG9yIDAgaXMgdXNlZCBmb3IgZGVmYXVsdCBvcHRpb25zOgorICAgICAqICAgICBDYXNlLXNlbnNpdGl2ZSBjb21wYXJpc29uIGluIGNvZGUgdW5pdCBvcmRlciwgYW5kIHRoZSBpbnB1dCBzdHJpbmdzCisgICAgICogICAgIGFyZSBxdWljay1jaGVja2VkIGZvciBGQ0QuCisgICAgICoKKyAgICAgKiAgIC0gSU5QVVRfSVNfRkNECisgICAgICogICAgIFNldCBpZiB0aGUgY2FsbGVyIGtub3dzIHRoYXQgYm90aCBzMSBhbmQgczIgZnVsZmlsbCB0aGUgRkNEIAorICAgICAqICAgICBjb25kaXRpb25zLklmIG5vdCBzZXQsIHRoZSBmdW5jdGlvbiB3aWxsIHF1aWNrQ2hlY2sgZm9yIEZDRAorICAgICAqICAgICBhbmQgbm9ybWFsaXplIGlmIG5lY2Vzc2FyeS4KKyAgICAgKgorICAgICAqICAgLSBDT01QQVJFX0NPREVfUE9JTlRfT1JERVIKKyAgICAgKiAgICAgU2V0IHRvIGNob29zZSBjb2RlIHBvaW50IG9yZGVyIGluc3RlYWQgb2YgY29kZSB1bml0IG9yZGVyCisgICAgICoKKyAgICAgKiAgIC0gQ09NUEFSRV9JR05PUkVfQ0FTRQorICAgICAqICAgICBTZXQgdG8gY29tcGFyZSBzdHJpbmdzIGNhc2UtaW5zZW5zaXRpdmVseSB1c2luZyBjYXNlIGZvbGRpbmcsCisgICAgICogICAgIGluc3RlYWQgb2YgY2FzZS1zZW5zaXRpdmVseS4KKyAgICAgKiAgICAgSWYgc2V0LCB0aGVuIHRoZSBmb2xsb3dpbmcgY2FzZSBmb2xkaW5nIG9wdGlvbnMgYXJlIHVzZWQuCisgICAgICoKKyAgICAgKgorICAgICAqIEByZXR1cm4gPDAgb3IgMCBvciA+MCBhcyB1c3VhbCBmb3Igc3RyaW5nIGNvbXBhcmlzb25zCisgICAgICoKKyAgICAgKiBAc2VlICNub3JtYWxpemUKKyAgICAgKiBAc2VlICNGQ0QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKGNoYXJbXSBzMSwgaW50IHMxU3RhcnQsIGludCBzMUxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHMyLCBpbnQgczJTdGFydCwgaW50IHMyTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gaW50ZXJuYWxDb21wYXJlKHMxLCBzMVN0YXJ0LCBzMUxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMiwgczJTdGFydCwgczJMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyk7CisgICAgfSAKKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBzdHJpbmdzIGZvciBjYW5vbmljYWwgZXF1aXZhbGVuY2UuCisgICAgICogRnVydGhlciBvcHRpb25zIGluY2x1ZGUgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIGFuZAorICAgICAqIGNvZGUgcG9pbnQgb3JkZXIgKGFzIG9wcG9zZWQgdG8gY29kZSB1bml0IG9yZGVyKS4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gczEgRmlyc3Qgc291cmNlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gczIgU2Vjb25kIHNvdXJjZSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgIC0gRk9MRF9DQVNFX0RFRkFVTFQgb3IgMCBpcyB1c2VkIGZvciBkZWZhdWx0IG9wdGlvbnM6CisgICAgICogICAgIENhc2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24gaW4gY29kZSB1bml0IG9yZGVyLCBhbmQgdGhlIGlucHV0IHN0cmluZ3MKKyAgICAgKiAgICAgYXJlIHF1aWNrLWNoZWNrZWQgZm9yIEZDRC4KKyAgICAgKgorICAgICAqICAgLSBJTlBVVF9JU19GQ0QKKyAgICAgKiAgICAgU2V0IGlmIHRoZSBjYWxsZXIga25vd3MgdGhhdCBib3RoIHMxIGFuZCBzMiBmdWxmaWxsIHRoZSBGQ0QgCisgICAgICogICAgIGNvbmRpdGlvbnMuIElmIG5vdCBzZXQsIHRoZSBmdW5jdGlvbiB3aWxsIHF1aWNrQ2hlY2sgZm9yIEZDRAorICAgICAqICAgICBhbmQgbm9ybWFsaXplIGlmIG5lY2Vzc2FyeS4KKyAgICAgKgorICAgICAqICAgLSBDT01QQVJFX0NPREVfUE9JTlRfT1JERVIKKyAgICAgKiAgICAgU2V0IHRvIGNob29zZSBjb2RlIHBvaW50IG9yZGVyIGluc3RlYWQgb2YgY29kZSB1bml0IG9yZGVyCisgICAgICoKKyAgICAgKiAgIC0gQ09NUEFSRV9JR05PUkVfQ0FTRQorICAgICAqICAgICBTZXQgdG8gY29tcGFyZSBzdHJpbmdzIGNhc2UtaW5zZW5zaXRpdmVseSB1c2luZyBjYXNlIGZvbGRpbmcsCisgICAgICogICAgIGluc3RlYWQgb2YgY2FzZS1zZW5zaXRpdmVseS4KKyAgICAgKiAgICAgSWYgc2V0LCB0aGVuIHRoZSBmb2xsb3dpbmcgY2FzZSBmb2xkaW5nIG9wdGlvbnMgYXJlIHVzZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIDwwIG9yIDAgb3IgPjAgYXMgdXN1YWwgZm9yIHN0cmluZyBjb21wYXJpc29ucworICAgICAqCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjRkNECisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShTdHJpbmcgczEsIFN0cmluZyBzMiwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgIAorICAgICAgICByZXR1cm4gY29tcGFyZShzMS50b0NoYXJBcnJheSgpLDAsczEubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgIHMyLnRvQ2hhckFycmF5KCksMCxzMi5sZW5ndGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyk7CisgICAgfQorICAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHR3byBzdHJpbmdzIGZvciBjYW5vbmljYWwgZXF1aXZhbGVuY2UuCisgICAgICogRnVydGhlciBvcHRpb25zIGluY2x1ZGUgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIGFuZAorICAgICAqIGNvZGUgcG9pbnQgb3JkZXIgKGFzIG9wcG9zZWQgdG8gY29kZSB1bml0IG9yZGVyKS4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gczEgRmlyc3Qgc291cmNlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gczIgU2Vjb25kIHNvdXJjZSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBBIGJpdCBzZXQgb2Ygb3B0aW9uczoKKyAgICAgKiAgIC0gRk9MRF9DQVNFX0RFRkFVTFQgb3IgMCBpcyB1c2VkIGZvciBkZWZhdWx0IG9wdGlvbnM6CisgICAgICogICAgIENhc2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24gaW4gY29kZSB1bml0IG9yZGVyLCBhbmQgdGhlIGlucHV0IHN0cmluZ3MKKyAgICAgKiAgICAgYXJlIHF1aWNrLWNoZWNrZWQgZm9yIEZDRC4KKyAgICAgKgorICAgICAqICAgLSBJTlBVVF9JU19GQ0QKKyAgICAgKiAgICAgU2V0IGlmIHRoZSBjYWxsZXIga25vd3MgdGhhdCBib3RoIHMxIGFuZCBzMiBmdWxmaWxsIHRoZSBGQ0QgCisgICAgICogICAgIGNvbmRpdGlvbnMuIElmIG5vdCBzZXQsIHRoZSBmdW5jdGlvbiB3aWxsIHF1aWNrQ2hlY2sgZm9yIEZDRAorICAgICAqICAgICBhbmQgbm9ybWFsaXplIGlmIG5lY2Vzc2FyeS4KKyAgICAgKgorICAgICAqICAgLSBDT01QQVJFX0NPREVfUE9JTlRfT1JERVIKKyAgICAgKiAgICAgU2V0IHRvIGNob29zZSBjb2RlIHBvaW50IG9yZGVyIGluc3RlYWQgb2YgY29kZSB1bml0IG9yZGVyCisgICAgICoKKyAgICAgKiAgIC0gQ09NUEFSRV9JR05PUkVfQ0FTRQorICAgICAqICAgICBTZXQgdG8gY29tcGFyZSBzdHJpbmdzIGNhc2UtaW5zZW5zaXRpdmVseSB1c2luZyBjYXNlIGZvbGRpbmcsCisgICAgICogICAgIGluc3RlYWQgb2YgY2FzZS1zZW5zaXRpdmVseS4KKyAgICAgKiAgICAgSWYgc2V0LCB0aGVuIHRoZSBmb2xsb3dpbmcgY2FzZSBmb2xkaW5nIG9wdGlvbnMgYXJlIHVzZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIDwwIG9yIDAgb3IgPjAgYXMgdXN1YWwgZm9yIHN0cmluZyBjb21wYXJpc29ucworICAgICAqCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjRkNECisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShjaGFyW10gczEsIGNoYXJbXSBzMiwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmUoczEsMCxzMS5sZW5ndGgsczIsMCxzMi5sZW5ndGgsb3B0aW9ucyk7CisgICAgfSAKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FuIGhhdmUgZmFzdGVyIGltcGxlbWVudGF0aW9uCisgICAgICogYnkgbm90IGFsbG9jYXRpbmcgYnVmZmVycy4KKyAgICAgKiBAcGFyYW0gY2hhcjMyYSAgICB0aGUgZmlyc3QgY29kZSBwb2ludCB0byBiZSBjaGVja2VkIGFnYWluc3QgdGhlCisgICAgICogQHBhcmFtIGNoYXIzMmIgICAgdGhlIHNlY29uZCBjb2RlIHBvaW50CisgICAgICogQHBhcmFtIG9wdGlvbnMgICAgQSBiaXQgc2V0IG9mIG9wdGlvbnMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICAvLyBUT0RPOiBhY3R1YWxseSBkbyB0aGUgb3B0aW1pemF0aW9uIHdoZW4gdGhlIGd1dHMgb2YgTm9ybWFsaXplciBhcmUgCisgICAgLy8gdXBncmFkZWQgLS1oYXMganVzdCBkdW1iIGltcGxlbWVudGF0aW9uIGZvciBub3cKKyAgICBwdWJsaWMgc3RhdGljIGludCBjb21wYXJlKGludCBjaGFyMzJhLCBpbnQgY2hhcjMyYixpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gY29tcGFyZShVVEYxNi52YWx1ZU9mKGNoYXIzMmEpLCBVVEYxNi52YWx1ZU9mKGNoYXIzMmIpLCBvcHRpb25zKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRoYXQgY2FuIGhhdmUgZmFzdGVyIGltcGxlbWVudGF0aW9uCisgICAgICogYnkgbm90IGFsbG9jYXRpbmcgYnVmZmVycy4KKyAgICAgKiBAcGFyYW0gY2hhcjMyYSAgIHRoZSBmaXJzdCBjb2RlIHBvaW50IHRvIGJlIGNoZWNrZWQgYWdhaW5zdAorICAgICAqIEBwYXJhbSBzdHIyICAgICAgdGhlIHNlY29uZCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEEgYml0IHNldCBvZiBvcHRpb25zCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgLy8gVE9ETzogYWN0dWFsbHkgZG8gdGhlIG9wdGltaXphdGlvbiB3aGVuIHRoZSBndXRzIG9mIE5vcm1hbGl6ZXIgYXJlIAorICAgIC8vIHVwZ3JhZGVkIC0taGFzIGp1c3QgZHVtYiBpbXBsZW1lbnRhdGlvbiBmb3Igbm93CisgICAgcHVibGljIHN0YXRpYyBpbnQgY29tcGFyZShpbnQgY2hhcjMyYSwgU3RyaW5nIHN0cjIsIGludCBvcHRpb25zKSB7CisgICAgICAgIHJldHVybiBjb21wYXJlKFVURjE2LnZhbHVlT2YoY2hhcjMyYSksIHN0cjIsIG9wdGlvbnMpOworICAgIH0KKyAgIAorICAgIC8qKgorICAgICAqIENvbmNhdGVuYXRlIG5vcm1hbGl6ZWQgc3RyaW5ncywgbWFraW5nIHN1cmUgdGhhdCB0aGUgcmVzdWx0IGlzIG5vcm1hbGl6ZWQKKyAgICAgKiBhcyB3ZWxsLgorICAgICAqCisgICAgICogSWYgYm90aCB0aGUgbGVmdCBhbmQgdGhlIHJpZ2h0IHN0cmluZ3MgYXJlIGluCisgICAgICogdGhlIG5vcm1hbGl6YXRpb24gZm9ybSBhY2NvcmRpbmcgdG8gIm1vZGUiLAorICAgICAqIHRoZW4gdGhlIHJlc3VsdCB3aWxsIGJlCisgICAgICoKKyAgICAgKiA8Y29kZT4KKyAgICAgKiAgICAgZGVzdD1ub3JtYWxpemUobGVmdCtyaWdodCwgbW9kZSkKKyAgICAgKiA8L2NvZGU+CisgICAgICoKKyAgICAgKiBXaXRoIHRoZSBpbnB1dCBzdHJpbmdzIGFscmVhZHkgYmVpbmcgbm9ybWFsaXplZCwKKyAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgdXNlIG5leHQoKSBhbmQgcHJldmlvdXMoKQorICAgICAqIHRvIGZpbmQgdGhlIGFkamFjZW50IGVuZCBwaWVjZXMgb2YgdGhlIGlucHV0IHN0cmluZ3MuCisgICAgICogT25seSB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGVzZSBlbmQgcGllY2VzIHdpbGwgYmUgbm9ybWFsaXplZCBhbmQKKyAgICAgKiB0aGVuIGNvbmNhdGVuYXRlZCB3aXRoIHRoZSByZW1haW5pbmcgcGFydHMgb2YgdGhlIGlucHV0IHN0cmluZ3MuCisgICAgICoKKyAgICAgKiBJdCBpcyBhbGxvd2VkIHRvIGhhdmUgZGVzdD09bGVmdCB0byBhdm9pZCBjb3B5aW5nIHRoZSBlbnRpcmUgbGVmdCBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGVmdCBMZWZ0IHNvdXJjZSBhcnJheSwgbWF5IGJlIHNhbWUgYXMgZGVzdC4KKyAgICAgKiBAcGFyYW0gbGVmdFN0YXJ0IHN0YXJ0IGluIHRoZSBsZWZ0IGFycmF5LgorICAgICAqIEBwYXJhbSBsZWZ0TGltaXQgbGltaXQgaW4gdGhlIGxlZnQgYXJyYXkgKD09bGVuZ3RoKQorICAgICAqIEBwYXJhbSByaWdodCBSaWdodCBzb3VyY2UgYXJyYXkuCisgICAgICogQHBhcmFtIHJpZ2h0U3RhcnQgc3RhcnQgaW4gdGhlIHJpZ2h0IGFycmF5LgorICAgICAqIEBwYXJhbSByaWdodExpbWl0IGxpbWl0IGluIHRoZSByaWdodCBhcnJheSAoPT1sZW5ndGgpCisgICAgICogQHBhcmFtIGRlc3QgVGhlIG91dHB1dCBidWZmZXI7IGNhbiBiZSBudWxsIGlmIGRlc3RTdGFydD09ZGVzdExpbWl0PT0wIAorICAgICAqICAgICAgICAgICAgICBmb3IgcHVyZSBwcmVmbGlnaHRpbmcuCisgICAgICogQHBhcmFtIGRlc3RTdGFydCBzdGFydCBpbiB0aGUgZGVzdGluYXRpb24gYXJyYXkKKyAgICAgKiBAcGFyYW0gZGVzdExpbWl0IGxpbWl0IGluIHRoZSBkZXN0aW5hdGlvbiBhcnJheSAoPT1sZW5ndGgpCisgICAgICogQHBhcmFtIG1vZGUgVGhlIG5vcm1hbGl6YXRpb24gbW9kZS4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgbm9ybWFsaXphdGlvbiBvcHRpb25zLCBPUmVkIHRvZ2V0aGVyICgwIGZvciBubyBvcHRpb25zKS4KKyAgICAgKiBAcmV0dXJuIExlbmd0aCBvZiBvdXRwdXQgKG51bWJlciBvZiBjaGFycykgd2hlbiBzdWNjZXNzZnVsIG9yIAorICAgICAqICAgICAgICAgIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gd2hvc2UgbWVzc2FnZSBoYXMgdGhlIHN0cmluZyAKKyAgICAgKiAgICAgICAgICAgICByZXByZXNlbnRhdGlvbiBvZiBkZXN0aW5hdGlvbiBjYXBhY2l0eSByZXF1aXJlZC4gCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIHRhcmdldCBjYXBhY2l0eSBpcyBsZXNzIHRoYW4gdGhlCisgICAgICogICAgICAgICAgICAgcmVxdWlyZWQgbGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgLyogQ29uY2F0ZW5hdGlvbiBvZiBub3JtYWxpemVkIHN0cmluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgCisgICAgcHVibGljIHN0YXRpYyBpbnQgY29uY2F0ZW5hdGUoY2hhcltdIGxlZnQsICBpbnQgbGVmdFN0YXJ0LCAgaW50IGxlZnRMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gcmlnaHQsIGludCByaWdodFN0YXJ0LCBpbnQgcmlnaHRMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGRlc3QsICBpbnQgZGVzdFN0YXJ0LCAgaW50IGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk1vZGUgbW9kZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXI7CisgICAgICAgIAorICAgICAgICBpbnQgbGVmdEJvdW5kYXJ5LCByaWdodEJvdW5kYXJ5LCBkZXN0TGVuZ3RoOworICAgIAorICAgICAgICBpZihkZXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBjaGVjayBmb3Igb3ZlcmxhcHBpbmcgcmlnaHQgYW5kIGRlc3RpbmF0aW9uICovCisgICAgICAgIGlmIChyaWdodCA9PSBkZXN0ICYmIHJpZ2h0U3RhcnQgPCBkZXN0TGltaXQgJiYgZGVzdFN0YXJ0IDwgcmlnaHRMaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigib3ZlcmxhcHBpbmcgcmlnaHQgYW5kIGRzdCByYW5nZXMiKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBhbGxvdyBsZWZ0PT1kZXN0ICovCisgICAgCisgICAgICAgIC8qCisgICAgICAgICAqIElucHV0OiBsZWZ0WzAuLmxlZnRMZW5ndGhbICsgcmlnaHRbMC4ucmlnaHRMZW5ndGhbCisgICAgICAgICAqCisgICAgICAgICAqIEZpbmQgbm9ybWFsaXphdGlvbi1zYWZlIGJvdW5kYXJpZXMgbGVmdEJvdW5kYXJ5IGFuZCByaWdodEJvdW5kYXJ5CisgICAgICAgICAqIGFuZCBjb3B5IHRoZSBlbmQgcGFydHMgdG9nZXRoZXI6CisgICAgICAgICAqIGJ1ZmZlcj1sZWZ0W2xlZnRCb3VuZGFyeS4ubGVmdExlbmd0aFsgKyByaWdodFswLi5yaWdodEJvdW5kYXJ5WworICAgICAgICAgKgorICAgICAgICAgKiBkZXN0PWxlZnRbMC4ubGVmdEJvdW5kYXJ5WyArCisgICAgICAgICAqICAgICAgbm9ybWFsaXplKGJ1ZmZlcikgKworICAgICAgICAgKiAgICAgIHJpZ2h0W3JpZ2h0Qm91bmRhcnkuLnJpZ2h0TGVuZ3RoWworICAgICAgICAgKi8KKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogZmluZCBhIG5vcm1hbGl6YXRpb24gYm91bmRhcnkgYXQgdGhlIGVuZCBvZiB0aGUgbGVmdCBzdHJpbmcKKyAgICAgICAgICogYW5kIGNvcHkgdGhlIGVuZCBwYXJ0IGludG8gdGhlIGJ1ZmZlcgorICAgICAgICAgKi8KKworICAgICAgICBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKGxlZnQsIGxlZnRTdGFydCwgbGVmdExpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpdGVyLnNldEluZGV4KGl0ZXIuZ2V0TGVuZ3RoKCkpOyAvKiBlbmQgb2YgbGVmdCBzdHJpbmcgKi8KKyAgICAgICAgY2hhcltdIGJ1ZmZlcj1uZXcgY2hhclsxMDBdOworICAgICAgICBpbnQgYnVmZmVyTGVuZ3RoOworICAgICAgICBidWZmZXJMZW5ndGg9cHJldmlvdXMoaXRlciwgYnVmZmVyLDAsYnVmZmVyLmxlbmd0aCxtb2RlLGZhbHNlLG51bGwsb3B0aW9ucyk7CisgICAgICAgIAorICAgICAgICBsZWZ0Qm91bmRhcnk9aXRlci5nZXRJbmRleCgpOworICAgICAgICAKKyAgICAgICAgaWYoYnVmZmVyTGVuZ3RoPmJ1ZmZlci5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNoYXJbXSBuZXdCdWYgPSBuZXcgY2hhcltidWZmZXIubGVuZ3RoKjJdOworICAgICAgICAgICAgYnVmZmVyID0gbmV3QnVmOworICAgICAgICAgICAgbmV3QnVmID0gbnVsbDsgLy8gbnVsbCB0aGUgcmVmZXJlbmNlIGZvciBHQworICAgICAgICAgICAgLyoganVzdCBjb3B5IGZyb20gdGhlIGxlZnQgc3RyaW5nOiB3ZSBrbm93IHRoZSBib3VuZGFyeSBhbHJlYWR5ICovCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGxlZnQsbGVmdEJvdW5kYXJ5LGJ1ZmZlciwwLGJ1ZmZlckxlbmd0aCk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogZmluZCBhIG5vcm1hbGl6YXRpb24gYm91bmRhcnkgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcmlnaHQgc3RyaW5nCisgICAgICAgICAqIGFuZCBjb25jYXRlbmF0ZSB0aGUgYmVnaW5uaW5nIHBhcnQgdG8gdGhlIGJ1ZmZlcgorICAgICAgICAgKi8KKworICAgICAgICBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKHJpZ2h0LCByaWdodFN0YXJ0LCByaWdodExpbWl0KTsKKyAgICAgICAgCisgICAgICAgIHJpZ2h0Qm91bmRhcnk9bmV4dChpdGVyLGJ1ZmZlcixidWZmZXJMZW5ndGgsIGJ1ZmZlci5sZW5ndGgtYnVmZmVyTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSwgZmFsc2UsbnVsbCwgb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYoYnVmZmVyTGVuZ3RoPmJ1ZmZlci5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNoYXJbXSBuZXdCdWYgPSBuZXcgY2hhcltidWZmZXIubGVuZ3RoKjJdOworICAgICAgICAgICAgYnVmZmVyID0gbmV3QnVmOworICAgICAgICAgICAgbmV3QnVmID0gbnVsbDsgLy8gbnVsbCB0aGUgcmVmZXJlbmNlIGZvciBHQworICAgICAgICAgICAgLyoganVzdCBjb3B5IGZyb20gdGhlIHJpZ2h0IHN0cmluZzogd2Uga25vdyB0aGUgYm91bmRhcnkgYWxyZWFkeSAqLworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShyaWdodCxyaWdodEJvdW5kYXJ5LGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyTGVuZ3RoLHJpZ2h0Qm91bmRhcnkpOworICAgICAgICB9CisKKyAgICAgICAgYnVmZmVyTGVuZ3RoKz1yaWdodEJvdW5kYXJ5OworICAgIAorICAgICAgICAvKiBjb3B5IGxlZnRbMC4ubGVmdEJvdW5kYXJ5WyB0byBkZXN0ICovCisgICAgICAgIGlmKGxlZnQhPWRlc3QgJiYgbGVmdEJvdW5kYXJ5PjAgJiYgKGRlc3RMaW1pdCk+MCkgeworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsZWZ0LDAsZGVzdCwwLCBNYXRoLm1pbihsZWZ0Qm91bmRhcnksZGVzdExpbWl0KSk7IAorICAgICAgICB9CisgICAgICAgIGRlc3RMZW5ndGg9bGVmdEJvdW5kYXJ5OworICAgIAorICAgICAgICAvKiBjb25jYXRlbmF0ZSB0aGUgbm9ybWFsaXphdGlvbiBvZiB0aGUgYnVmZmVyIHRvIGRlc3QgKi8KKyAgICAgICAgaWYoZGVzdExpbWl0PmRlc3RMZW5ndGgpIHsKKyAgICAgICAgICAgIGRlc3RMZW5ndGgrPU5vcm1hbGl6ZXIubm9ybWFsaXplKGJ1ZmZlciwwLGJ1ZmZlckxlbmd0aCxkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdExlbmd0aCxkZXN0TGltaXQsbW9kZSxvcHRpb25zKTsKKyAgICAgICAgICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZGVzdExlbmd0aCs9Tm9ybWFsaXplci5ub3JtYWxpemUoYnVmZmVyLCAwLCBidWZmZXJMZW5ndGgsbnVsbCwwLDAsbW9kZSxvcHRpb25zKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBjb25jYXRlbmF0ZSByaWdodFtyaWdodEJvdW5kYXJ5Li5yaWdodExlbmd0aFsgdG8gZGVzdCAqLworICAgICAgICByaWdodFN0YXJ0Kz1yaWdodEJvdW5kYXJ5OworICAgICAgICBpbnQgcmlnaHRMZW5ndGg9KHJpZ2h0TGltaXQtcmlnaHRTdGFydCk7CisgICAgICAgIGlmKHJpZ2h0TGVuZ3RoPjAgJiYgZGVzdExpbWl0PmRlc3RMZW5ndGgpIHsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkocmlnaHQscmlnaHRTdGFydCxkZXN0LGRlc3RMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWluKHJpZ2h0TGVuZ3RoLGRlc3RMZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIH0KKyAgICAgICAgZGVzdExlbmd0aCs9cmlnaHRMZW5ndGg7CisgICAgICAgIAorICAgICAgICBpZihkZXN0TGVuZ3RoPD0oZGVzdExpbWl0LWRlc3RTdGFydCkpIHsKKyAgICAgICAgICAgIHJldHVybiBkZXN0TGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oSW50ZWdlci50b1N0cmluZyhkZXN0TGVuZ3RoKSk7CisgICAgICAgIH0gIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25jYXRlbmF0ZSBub3JtYWxpemVkIHN0cmluZ3MsIG1ha2luZyBzdXJlIHRoYXQgdGhlIHJlc3VsdCBpcyBub3JtYWxpemVkCisgICAgICogYXMgd2VsbC4KKyAgICAgKgorICAgICAqIElmIGJvdGggdGhlIGxlZnQgYW5kIHRoZSByaWdodCBzdHJpbmdzIGFyZSBpbgorICAgICAqIHRoZSBub3JtYWxpemF0aW9uIGZvcm0gYWNjb3JkaW5nIHRvICJtb2RlIiwKKyAgICAgKiB0aGVuIHRoZSByZXN1bHQgd2lsbCBiZQorICAgICAqCisgICAgICogPGNvZGU+CisgICAgICogICAgIGRlc3Q9bm9ybWFsaXplKGxlZnQrcmlnaHQsIG1vZGUpCisgICAgICogPC9jb2RlPgorICAgICAqCisgICAgICogRm9yIGRldGFpbHMgc2VlIGNvbmNhdGVuYXRlIAorICAgICAqCisgICAgICogQHBhcmFtIGxlZnQgTGVmdCBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSByaWdodCBSaWdodCBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSBtb2RlIFRoZSBub3JtYWxpemF0aW9uIG1vZGUuCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuCisgICAgICogQHJldHVybiByZXN1bHQKKyAgICAgKgorICAgICAqIEBzZWUgI2NvbmNhdGVuYXRlCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjY29uY2F0ZW5hdGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBjb25jYXRlbmF0ZShjaGFyW10gbGVmdCwgY2hhcltdIHJpZ2h0LE1vZGUgbW9kZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgY2hhcltdIHJlc3VsdCA9IG5ldyBjaGFyWyhsZWZ0Lmxlbmd0aCtyaWdodC5sZW5ndGgpKiBNQVhfQlVGX1NJWkVfREVDT01QT1NFXTsKKyAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBjb25jYXRlbmF0ZShsZWZ0LCAgMCwgbGVmdC5sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQsIDAsIHJpZ2h0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsMCwgcmVzdWx0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlLCBvcHRpb25zKTsKKyAgICAgICAgICAgIGlmKGxlbmd0aDw9cmVzdWx0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKHJlc3VsdCwwLGxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBjaGFyW2xlbmd0aF07CisgICAgICAgICAgICB9CisgICAgICAgIH0gICAgICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uY2F0ZW5hdGUgbm9ybWFsaXplZCBzdHJpbmdzLCBtYWtpbmcgc3VyZSB0aGF0IHRoZSByZXN1bHQgaXMgbm9ybWFsaXplZAorICAgICAqIGFzIHdlbGwuCisgICAgICoKKyAgICAgKiBJZiBib3RoIHRoZSBsZWZ0IGFuZCB0aGUgcmlnaHQgc3RyaW5ncyBhcmUgaW4KKyAgICAgKiB0aGUgbm9ybWFsaXphdGlvbiBmb3JtIGFjY29yZGluZyB0byAibW9kZSIsCisgICAgICogdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmUKKyAgICAgKgorICAgICAqIDxjb2RlPgorICAgICAqICAgICBkZXN0PW5vcm1hbGl6ZShsZWZ0K3JpZ2h0LCBtb2RlKQorICAgICAqIDwvY29kZT4KKyAgICAgKgorICAgICAqIEZvciBkZXRhaWxzIHNlZSBjb25jYXRlbmF0ZQorICAgICAqCisgICAgICogQHBhcmFtIGxlZnQgTGVmdCBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSByaWdodCBSaWdodCBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSBtb2RlIFRoZSBub3JtYWxpemF0aW9uIG1vZGUuCisgICAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG5vcm1hbGl6YXRpb24gb3B0aW9ucywgT1JlZCB0b2dldGhlciAoMCBmb3Igbm8gb3B0aW9ucykuCisgICAgICogQHJldHVybiByZXN1bHQKKyAgICAgKgorICAgICAqIEBzZWUgI2NvbmNhdGVuYXRlCisgICAgICogQHNlZSAjbm9ybWFsaXplCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjY29uY2F0ZW5hdGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBjb25jYXRlbmF0ZShTdHJpbmcgbGVmdCwgU3RyaW5nIHJpZ2h0LE1vZGUgbW9kZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgY2hhcltdIHJlc3VsdCA9IG5ldyBjaGFyWyhsZWZ0Lmxlbmd0aCgpK3JpZ2h0Lmxlbmd0aCgpKSogTUFYX0JVRl9TSVpFX0RFQ09NUE9TRV07CisgICAgICAgIGZvcig7OykgeworICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gY29uY2F0ZW5hdGUobGVmdC50b0NoYXJBcnJheSgpLCAwLCBsZWZ0Lmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0LnRvQ2hhckFycmF5KCksMCwgcmlnaHQubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LCAgICAgICAgICAgICAwLCByZXN1bHQubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUsIG9wdGlvbnMpOworICAgICAgICAgICAgaWYobGVuZ3RoPD1yZXN1bHQubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcocmVzdWx0LDAsbGVuZ3RoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV3IGNoYXJbbGVuZ3RoXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBGQ19ORktDIGNsb3N1cmUgc2V0IGZyb20gdGhlIG5vcm1hbGl6YXRpb24gZGF0YQorICAgICAqIEBwYXJhbSBjIFRoZSBjb2RlIHBvaW50IHdob3NlIGNsb3N1cmUgc2V0IGlzIHRvIGJlIHJldHJpZXZlZAorICAgICAqIEBwYXJhbSBkZXN0IFRoZSBjaGFyIGFycmF5IHRvIHJlY2l2ZSB0aGUgY2xvc3VyZSBzZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRGQ19ORktDX0Nsb3N1cmUoaW50IGMsY2hhcltdIGRlc3QpIHsKKyAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmdldEZDX05GS0NfQ2xvc3VyZShjLGRlc3QpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBGQ19ORktDIGNsb3N1cmUgc2V0IGZyb20gdGhlIG5vcm1hbGl6YXRpb24gZGF0YQorICAgICAqIEBwYXJhbSBjIFRoZSB0aGUgY29kZSBwb2ludCB3aG9zZSBjbG9zdXJlIHNldCBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAgKiBAcmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgY2xvc3VyZSBzZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RkNfTkZLQ19DbG9zdXJlKGludCBjKSB7CisgICAgICAgIGNoYXJbXSBkZXN0ID0gbmV3IGNoYXJbMTBdOworICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBnZXRGQ19ORktDX0Nsb3N1cmUoYyxkZXN0KTsKKyAgICAgICAgICAgIGlmKGxlbmd0aDw9ZGVzdC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhkZXN0LDAsbGVuZ3RoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZGVzdCA9IG5ldyBjaGFyW2xlbmd0aF07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSXRlcmF0aW9uIEFQSQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGluIHRoZSBub3JtYWxpemVkIHRleHQtPgorICAgICAqIEByZXR1cm4gVGhlIGNvZGVwb2ludCBhcyBhbiBpbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGN1cnJlbnQoKSB7CisgICAgICAgIGlmKGJ1ZmZlclBvczxidWZmZXJMaW1pdCB8fCBuZXh0Tm9ybWFsaXplKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXRDb2RlUG9pbnRBdChidWZmZXJQb3MpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmV4dCBjaGFyYWN0ZXIgaW4gdGhlIG5vcm1hbGl6ZWQgdGV4dCBhbmQgYWR2YW5jZQorICAgICAqIHRoZSBpdGVyYXRpb24gcG9zaXRpb24gYnkgb25lLiAgSWYgdGhlIGVuZAorICAgICAqIG9mIHRoZSB0ZXh0IGhhcyBhbHJlYWR5IGJlZW4gcmVhY2hlZCwge0BsaW5rICNET05FfSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2RlcG9pbnQgYXMgYW4gaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCkgeworICAgICAgICBpZihidWZmZXJQb3M8YnVmZmVyTGltaXQgfHwgIG5leHROb3JtYWxpemUoKSkgeworICAgICAgICAgICAgaW50IGM9Z2V0Q29kZVBvaW50QXQoYnVmZmVyUG9zKTsKKyAgICAgICAgICAgIGJ1ZmZlclBvcys9KGM+MHhGRkZGKSA/IDIgOiAxOworICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGluIHRoZSBub3JtYWxpemVkIHRleHQgYW5kIGRlY3JlbWVudAorICAgICAqIHRoZSBpdGVyYXRpb24gcG9zaXRpb24gYnkgb25lLiAgSWYgdGhlIGJlZ2lubmluZworICAgICAqIG9mIHRoZSB0ZXh0IGhhcyBhbHJlYWR5IGJlZW4gcmVhY2hlZCwge0BsaW5rICNET05FfSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2RlcG9pbnQgYXMgYW4gaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpIHsKKyAgICAgICAgaWYoYnVmZmVyUG9zPjAgfHwgcHJldmlvdXNOb3JtYWxpemUoKSkgeworICAgICAgICAgICAgaW50IGM9Z2V0Q29kZVBvaW50QXQoYnVmZmVyUG9zLTEpOworICAgICAgICAgICAgYnVmZmVyUG9zLT0oYz4weEZGRkYpID8gMiA6IDE7CisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgaW5kZXggdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gc2V0SW5kZXhPbmx5KHN0YXJ0SW5kZXgpKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgdGV4dC5zZXRJbmRleCgwKTsKKyAgICAgICAgY3VycmVudEluZGV4PW5leHRJbmRleD0wOworICAgICAgICBjbGVhckJ1ZmZlcigpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiBpbiB0aGUgaW5wdXQgdGV4dCB0aGF0IGlzIGJlaW5nIG5vcm1hbGl6ZWQsCisgICAgICogd2l0aG91dCBhbnkgaW1tZWRpYXRlIG5vcm1hbGl6YXRpb24uCisgICAgICogQWZ0ZXIgc2V0SW5kZXhPbmx5KCksIGdldEluZGV4KCkgd2lsbCByZXR1cm4gdGhlIHNhbWUgaW5kZXggdGhhdCBpcworICAgICAqIHNwZWNpZmllZCBoZXJlLgorICAgICAqCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBkZXNpcmVkIGluZGV4IGluIHRoZSBpbnB1dCB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZGV4T25seShpbnQgaW5kZXgpIHsKKyAgICAgICAgdGV4dC5zZXRJbmRleChpbmRleCk7CisgICAgICAgIGN1cnJlbnRJbmRleD1uZXh0SW5kZXg9aW5kZXg7IC8vIHZhbGlkYXRlcyBpbmRleAorICAgICAgICBjbGVhckJ1ZmZlcigpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRpb24gcG9zaXRpb24gaW4gdGhlIGlucHV0IHRleHQgdGhhdCBpcyBiZWluZyBub3JtYWxpemVkCisgICAgICogYW5kIHJldHVybiB0aGUgZmlyc3Qgbm9ybWFsaXplZCBjaGFyYWN0ZXIgYXQgdGhhdCBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gVGhpcyBtZXRob2Qgc2V0cyB0aGUgcG9zaXRpb24gaW4gdGhlIDxlbT5pbnB1dDwvZW0+IHRleHQsCisgICAgICogd2hpbGUge0BsaW5rICNuZXh0fSBhbmQge0BsaW5rICNwcmV2aW91c30gaXRlcmF0ZSB0aHJvdWdoIGNoYXJhY3RlcnMKKyAgICAgKiBpbiB0aGUgbm9ybWFsaXplZCA8ZW0+b3V0cHV0PC9lbT4uICBUaGlzIG1lYW5zIHRoYXQgdGhlcmUgaXMgbm90CisgICAgICogbmVjZXNzYXJpbHkgYSBvbmUtdG8tb25lIGNvcnJlc3BvbmRlbmNlIGJldHdlZW4gY2hhcmFjdGVycyByZXR1cm5lZAorICAgICAqIGJ5IDx0dD5uZXh0PC90dD4gYW5kIDx0dD5wcmV2aW91czwvdHQ+IGFuZCB0aGUgaW5kaWNlcyBwYXNzZWQgdG8gYW5kCisgICAgICogcmV0dXJuZWQgZnJvbSA8dHQ+c2V0SW5kZXg8L3R0PiBhbmQge0BsaW5rICNnZXRJbmRleH0uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGluZGV4IHRoZSBkZXNpcmVkIGluZGV4IGluIHRoZSBpbnB1dCB0ZXh0LT4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICB0aGUgZmlyc3Qgbm9ybWFsaXplZCBjaGFyYWN0ZXIgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIGl0ZXJhdGluZworICAgICAqICAgICAgICAgICAgZm9yd2FyZCBzdGFydGluZyBhdCB0aGUgZ2l2ZW4gaW5kZXguCisgICAgICoKKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZ2l2ZW4gaW5kZXggaXMgbGVzcyB0aGFuCisgICAgICogICAgICAgICAge0BsaW5rICNnZXRCZWdpbkluZGV4fSBvciBncmVhdGVyIHRoYW4ge0BsaW5rICNnZXRFbmRJbmRleH0uCisgICAgICogQHJldHVybiBUaGUgY29kZXBvaW50IGFzIGFuIGludAorICAgICAqIEBkZXByZWNhdGVkIElDVSAzLjIKKyAgICAgKiBAb2Jzb2xldGUgSUNVIDMuMgorICAgICAqLworICAgICAvLy9DTE9WRVI6T0ZGCisgICAgIHB1YmxpYyBpbnQgc2V0SW5kZXgoaW50IGluZGV4KSB7CisgICAgICAgICBzZXRJbmRleE9ubHkoaW5kZXgpOworICAgICAgICAgcmV0dXJuIGN1cnJlbnQoKTsKKyAgICAgfQorICAgICAvLy9DTE9WRVI6T04KKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgaW5kZXggb2YgdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCB0ZXh0LiBUaGlzIGlzIHRoZSBiZWdpbiAKKyAgICAgKiBpbmRleCBvZiB0aGUgPHR0PkNoYXJhY3Rlckl0ZXJhdG9yPC90dD4gb3IgdGhlIHN0YXJ0IChpLmUuIDApIG9mIHRoZSAKKyAgICAgKiA8dHQ+U3RyaW5nPC90dD4gb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gaXMgaXRlcmF0aW5nCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuMi4gVXNlIHN0YXJ0SW5kZXgoKSBpbnN0ZWFkLgorICAgICAqIEByZXR1cm4gVGhlIGNvZGVwb2ludCBhcyBhbiBpbnQKKyAgICAgKiBAc2VlICNzdGFydEluZGV4CisgICAgICovCisgICAgcHVibGljIGludCBnZXRCZWdpbkluZGV4KCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgaW5kZXggb2YgdGhlIGVuZCBvZiB0aGUgaW5wdXQgdGV4dC4gIFRoaXMgaXMgdGhlIGVuZCBpbmRleAorICAgICAqIG9mIHRoZSA8dHQ+Q2hhcmFjdGVySXRlcmF0b3I8L3R0PiBvciB0aGUgbGVuZ3RoIG9mIHRoZSA8dHQ+U3RyaW5nPC90dD4KKyAgICAgKiBvdmVyIHdoaWNoIHRoaXMgPHR0Pk5vcm1hbGl6ZXI8L3R0PiBpcyBpdGVyYXRpbmcKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi4yLiBVc2UgZW5kSW5kZXgoKSBpbnN0ZWFkLgorICAgICAqIEByZXR1cm4gVGhlIGNvZGVwb2ludCBhcyBhbiBpbnQKKyAgICAgKiBAc2VlICNlbmRJbmRleAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RW5kSW5kZXgoKSB7CisgICAgICAgIHJldHVybiBlbmRJbmRleCgpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgbm9ybWFsaXplZCB0ZXh0LT4gIFRoaXMgcmVzZXRzCisgICAgICogdGhlIDx0dD5Ob3JtYWxpemVyJ3M8L3R0PiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LT4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb2RlcG9pbnQgYXMgYW4gaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBmaXJzdCgpIHsKKyAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgcmV0dXJuIG5leHQoKTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIG5vcm1hbGl6ZWQgdGV4dC0+ICBUaGlzIHJlc2V0cworICAgICAqIHRoZSA8dHQ+Tm9ybWFsaXplcidzPC90dD4gcG9zaXRpb24gdG8gYmUganVzdCBiZWZvcmUgdGhlCisgICAgICogdGhlIGlucHV0IHRleHQgY29ycmVzcG9uZGluZyB0byB0aGF0IG5vcm1hbGl6ZWQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gVGhlIGNvZGVwb2ludCBhcyBhbiBpbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGxhc3QoKSB7CisgICAgICAgIHRleHQuc2V0VG9MaW1pdCgpOworICAgICAgICBjdXJyZW50SW5kZXg9bmV4dEluZGV4PXRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgY2xlYXJCdWZmZXIoKTsKKyAgICAgICAgcmV0dXJuIHByZXZpb3VzKCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gaW4gdGhlIGlucHV0IHRleHQgdGhhdCBpcworICAgICAqIGJlaW5nIG5vcm1hbGl6ZWQuICBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgaW4gYXBwbGljYXRpb25zIHN1Y2ggYXMKKyAgICAgKiBzZWFyY2hpbmcsIHdoZXJlIHlvdSBuZWVkIHRvIGJlIGFibGUgdG8gZGV0ZXJtaW5lIHRoZSBwb3NpdGlvbiBpbgorICAgICAqIHRoZSBpbnB1dCB0ZXh0IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBnaXZlbiBub3JtYWxpemVkIG91dHB1dCBjaGFyYWN0ZXIuCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFRoaXMgbWV0aG9kIHNldHMgdGhlIHBvc2l0aW9uIGluIHRoZSA8ZW0+aW5wdXQ8L2VtPiwgd2hpbGUKKyAgICAgKiB7QGxpbmsgI25leHR9IGFuZCB7QGxpbmsgI3ByZXZpb3VzfSBpdGVyYXRlIHRocm91Z2ggY2hhcmFjdGVycyBpbiB0aGUKKyAgICAgKiA8ZW0+b3V0cHV0PC9lbT4uICBUaGlzIG1lYW5zIHRoYXQgdGhlcmUgaXMgbm90IG5lY2Vzc2FyaWx5IGEgb25lLXRvLW9uZQorICAgICAqIGNvcnJlc3BvbmRlbmNlIGJldHdlZW4gY2hhcmFjdGVycyByZXR1cm5lZCBieSA8dHQ+bmV4dDwvdHQ+IGFuZAorICAgICAqIDx0dD5wcmV2aW91czwvdHQ+IGFuZCB0aGUgaW5kaWNlcyBwYXNzZWQgdG8gYW5kIHJldHVybmVkIGZyb20KKyAgICAgKiA8dHQ+c2V0SW5kZXg8L3R0PiBhbmQge0BsaW5rICNnZXRJbmRleH0uCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgeworICAgICAgICBpZihidWZmZXJQb3M8YnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50SW5kZXg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbmV4dEluZGV4OworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgaW5kZXggb2YgdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCB0ZXh0LiBUaGlzIGlzIHRoZSBiZWdpbiAKKyAgICAgKiBpbmRleCBvZiB0aGUgPHR0PkNoYXJhY3Rlckl0ZXJhdG9yPC90dD4gb3IgdGhlIHN0YXJ0IChpLmUuIDApIG9mIHRoZSAKKyAgICAgKiA8dHQ+U3RyaW5nPC90dD4gb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gaXMgaXRlcmF0aW5nCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHN0YXJ0SW5kZXgoKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIGluZGV4IG9mIHRoZSBlbmQgb2YgdGhlIGlucHV0IHRleHQtPiAgVGhpcyBpcyB0aGUgZW5kIGluZGV4CisgICAgICogb2YgdGhlIDx0dD5DaGFyYWN0ZXJJdGVyYXRvcjwvdHQ+IG9yIHRoZSBsZW5ndGggb2YgdGhlIDx0dD5TdHJpbmc8L3R0PgorICAgICAqIG92ZXIgd2hpY2ggdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+IGlzIGl0ZXJhdGluZworICAgICAqIEByZXR1cm4gVGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBlbmRJbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIHRleHQuZ2V0TGVuZ3RoKCk7CisgICAgfQorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFByb3BlcnR5IGFjY2VzcyBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLyoqCisgICAgICogU2V0IHRoZSBub3JtYWxpemF0aW9uIG1vZGUgZm9yIHRoaXMgb2JqZWN0LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPklmIHRoZSBub3JtYWxpemF0aW9uIG1vZGUgaXMgY2hhbmdlZCB3aGlsZSBpdGVyYXRpbmcKKyAgICAgKiBvdmVyIGEgc3RyaW5nLCBjYWxscyB0byB7QGxpbmsgI25leHR9IGFuZCB7QGxpbmsgI3ByZXZpb3VzfSBtYXkKKyAgICAgKiByZXR1cm4gcHJldmlvdXNseSBidWZmZXJzIGNoYXJhY3RlcnMgaW4gdGhlIG9sZCBub3JtYWxpemF0aW9uIG1vZGUKKyAgICAgKiB1bnRpbCB0aGUgaXRlcmF0aW9uIGlzIGFibGUgdG8gcmUtc3luYyBhdCB0aGUgbmV4dCBiYXNlIGNoYXJhY3Rlci4KKyAgICAgKiBJdCBpcyBzYWZlc3QgdG8gY2FsbCB7QGxpbmsgI3NldFRleHQgc2V0VGV4dCgpfSwge0BsaW5rICNmaXJzdH0sCisgICAgICoge0BsaW5rICNsYXN0fSwgZXRjLiBhZnRlciBjYWxsaW5nIDx0dD5zZXRNb2RlPC90dD4uCisgICAgICogPHA+CisgICAgICogQHBhcmFtIG5ld01vZGUgdGhlIG5ldyBtb2RlIGZvciB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4uCisgICAgICogVGhlIHN1cHBvcnRlZCBtb2RlcyBhcmU6CisgICAgICogPHVsPgorICAgICAqICA8bGk+e0BsaW5rICNDT01QT1NFfSAgICAgICAgLSBVbmljb2RlIGNhbm9uaWNhbCBkZWNvbXBvc2l0aWlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2VkIGJ5IGNhbm9uaWNhbCBjb21wb3NpdGlvbi4KKyAgICAgKiAgPGxpPntAbGluayAjQ09NUE9TRV9DT01QQVR9IC0gVW5pY29kZSBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpaW9uCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbHdlZCBieSBjYW5vbmljYWwgY29tcG9zaXRpb24uCisgICAgICogIDxsaT57QGxpbmsgI0RFQ09NUH0gICAgICAgICAtIFVuaWNvZGUgY2Fub25pY2FsIGRlY29tcG9zaXRpb24KKyAgICAgKiAgPGxpPntAbGluayAjREVDT01QX0NPTVBBVH0gIC0gVW5pY29kZSBjb21wYXRpYmlsaXR5IGRlY29tcG9zaXRpb24uCisgICAgICogIDxsaT57QGxpbmsgI05PX09QfSAgICAgICAgICAtIERvIG5vdGhpbmcgYnV0IHJldHVybiBjaGFyYWN0ZXJzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgdW5kZXJseWluZyBpbnB1dCB0ZXh0LgorICAgICAqIDwvdWw+CisgICAgICoKKyAgICAgKiBAc2VlICNnZXRNb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9kZShNb2RlIG5ld01vZGUpIHsKKyAgICAgICAgbW9kZSA9IG5ld01vZGU7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmFzaWMgb3BlcmF0aW9uIHBlcmZvcm1lZCBieSB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4KKyAgICAgKgorICAgICAqIEBzZWUgI3NldE1vZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgTW9kZSBnZXRNb2RlKCkgeworICAgICAgICByZXR1cm4gbW9kZTsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0IG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+J3Mgb3BlcmF0aW9uLgorICAgICAqIE9wdGlvbnMgZG8gbm90IGNoYW5nZSB0aGUgYmFzaWMgY29tcG9zaXRpb24gb3IgZGVjb21wb3NpdGlvbiBvcGVyYXRpb24KKyAgICAgKiB0aGF0IGlzIGJlaW5nIHBlcmZvcm1lZCAsIGJ1dCB0aGV5IGNvbnRyb2wgd2hldGhlcgorICAgICAqIGNlcnRhaW4gb3B0aW9uYWwgcG9ydGlvbnMgb2YgdGhlIG9wZXJhdGlvbiBhcmUgZG9uZS4KKyAgICAgKiBDdXJyZW50bHkgdGhlIG9ubHkgYXZhaWxhYmxlIG9wdGlvbiBpczoKKyAgICAgKiA8cD4KKyAgICAgKiA8dWw+CisgICAgICogICA8bGk+e0BsaW5rICNVTklDT0RFXzNfMn0gLSBVc2UgTm9ybWFsaXphdGlvbiBjb25mb3JtaW5nIHRvIFVuaWNvZGUgdmVyc2lvbiAzLjIuCisgICAgICogPC91bD4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gICBvcHRpb24gIHRoZSBvcHRpb24gd2hvc2UgdmFsdWUgaXMgdG8gYmUgc2V0LgorICAgICAqIEBwYXJhbSAgIHZhbHVlICAgdGhlIG5ldyBzZXR0aW5nIGZvciB0aGUgb3B0aW9uLiAgVXNlIDx0dD50cnVlPC90dD4gdG8KKyAgICAgKiAgICAgICAgICAgICAgICAgIHR1cm4gdGhlIG9wdGlvbiBvbiBhbmQgPHR0PmZhbHNlPC90dD4gdG8gdHVybiBpdCBvZmYuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRPcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRPcHRpb24oaW50IG9wdGlvbixib29sZWFuIHZhbHVlKSB7CisgICAgICAgIGlmICh2YWx1ZSkgeworICAgICAgICAgICAgb3B0aW9ucyB8PSBvcHRpb247CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvcHRpb25zICY9ICh+b3B0aW9uKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgYW4gb3B0aW9uIGlzIHR1cm5lZCBvbiBvciBvZmYuCisgICAgICogPHA+CisgICAgICogQHNlZSAjc2V0T3B0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIGludCBnZXRPcHRpb24oaW50IG9wdGlvbikgeworICAgICAgICBpZigob3B0aW9ucyAmIG9wdGlvbikhPTApIHsKKyAgICAgICAgICAgIHJldHVybiAxIDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHVuZGVybHlpbmcgdGV4dCBzdG9yYWdlCisgICAgICogQHBhcmFtIGZpbGxJbiB0aGUgY2hhciBidWZmZXIgdG8gZmlsbCB0aGUgVVRGLTE2IHVuaXRzLgorICAgICAqICAgICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgbGVuZ3RoIG9mIHRoZQorICAgICAqICAgICAgICAgdW5kZXJseWluZyB0ZXh0IHN0b3JhZ2UKKyAgICAgKiBAdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24KKyAgICAgKiBAc2VlICAgI2dldExlbmd0aAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VGV4dChjaGFyW10gZmlsbEluKSB7CisgICAgICAgIHJldHVybiB0ZXh0LmdldFRleHQoZmlsbEluKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGVuZ3RoIG9mIHVuZGVybHlpbmcgdGV4dCBzdG9yYWdlCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovIAorICAgIHB1YmxpYyBpbnQgZ2V0TGVuZ3RoKCkgeworICAgICAgICByZXR1cm4gdGV4dC5nZXRMZW5ndGgoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24gYXMgYSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUZXh0KCkgeworICAgICAgICByZXR1cm4gdGV4dC5nZXRUZXh0KCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgaW5wdXQgdGV4dCBvdmVyIHdoaWNoIHRoaXMgPHR0Pk5vcm1hbGl6ZXI8L3R0PiB3aWxsIGl0ZXJhdGUuCisgICAgICogVGhlIGl0ZXJhdGlvbiBwb3NpdGlvbiBpcyBzZXQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgaW5wdXQgdGV4dC0+CisgICAgICogQHBhcmFtIG5ld1RleHQgICBUaGUgbmV3IHN0cmluZyB0byBiZSBub3JtYWxpemVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRleHQoU3RyaW5nQnVmZmVyIG5ld1RleHQpIHsKKyAgICAgICAgCisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBuZXdJdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKG5ld1RleHQpOworICAgICAgICBpZiAobmV3SXRlciA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJDb3VsZCBub3QgY3JlYXRlIGEgbmV3IFVDaGFyYWN0ZXJJdGVyYXRvciIpOworICAgICAgICB9ICAKKyAgICAgICAgdGV4dCA9IG5ld0l0ZXI7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGlucHV0IHRleHQgb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gd2lsbCBpdGVyYXRlLgorICAgICAqIFRoZSBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGlucHV0IHRleHQtPgorICAgICAqIEBwYXJhbSBuZXdUZXh0ICAgVGhlIG5ldyBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KGNoYXJbXSBuZXdUZXh0KSB7CisgICAgICAgIAorICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgbmV3SXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShuZXdUZXh0KTsKKyAgICAgICAgaWYgKG5ld0l0ZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ291bGQgbm90IGNyZWF0ZSBhIG5ldyBVQ2hhcmFjdGVySXRlcmF0b3IiKTsKKyAgICAgICAgfSAgCisgICAgICAgIHRleHQgPSBuZXdJdGVyOworICAgICAgICByZXNldCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGlucHV0IHRleHQgb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gd2lsbCBpdGVyYXRlLgorICAgICAqIFRoZSBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGlucHV0IHRleHQtPgorICAgICAqIEBwYXJhbSBuZXdUZXh0ICAgVGhlIG5ldyBzdHJpbmcgdG8gYmUgbm9ybWFsaXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KFN0cmluZyBuZXdUZXh0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIG5ld0l0ZXIgPSBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UobmV3VGV4dCk7CisgICAgICAgIGlmIChuZXdJdGVyID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkNvdWxkIG5vdCBjcmVhdGUgYSBuZXcgVUNoYXJhY3Rlckl0ZXJhdG9yIik7CisgICAgICAgIH0gIAorICAgICAgICB0ZXh0ID0gbmV3SXRlcjsKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnB1dCB0ZXh0IG92ZXIgd2hpY2ggdGhpcyA8dHQ+Tm9ybWFsaXplcjwvdHQ+IHdpbGwgaXRlcmF0ZS4KKyAgICAgKiBUaGUgaXRlcmF0aW9uIHBvc2l0aW9uIGlzIHNldCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpbnB1dCB0ZXh0LT4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCAgIFRoZSBuZXcgc3RyaW5nIHRvIGJlIG5vcm1hbGl6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciBuZXdUZXh0KSB7CisgICAgICAgIAorICAgICAgICBVQ2hhcmFjdGVySXRlcmF0b3IgbmV3SXRlciA9IFVDaGFyYWN0ZXJJdGVyYXRvci5nZXRJbnN0YW5jZShuZXdUZXh0KTsKKyAgICAgICAgaWYgKG5ld0l0ZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ291bGQgbm90IGNyZWF0ZSBhIG5ldyBVQ2hhcmFjdGVySXRlcmF0b3IiKTsKKyAgICAgICAgfSAgCisgICAgICAgIHRleHQgPSBuZXdJdGVyOworICAgICAgICByZXNldCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGlucHV0IHRleHQgb3ZlciB3aGljaCB0aGlzIDx0dD5Ob3JtYWxpemVyPC90dD4gd2lsbCBpdGVyYXRlLgorICAgICAqIFRoZSBpdGVyYXRpb24gcG9zaXRpb24gaXMgc2V0IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCAgIFRoZSBuZXcgc3RyaW5nIHRvIGJlIG5vcm1hbGl6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChVQ2hhcmFjdGVySXRlcmF0b3IgbmV3VGV4dCkgeyAKKyAgICAgICAgdHJ5eworICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIG5ld0l0ZXIgPSAoVUNoYXJhY3Rlckl0ZXJhdG9yKW5ld1RleHQuY2xvbmUoKTsKKyAgICAgICAgICAgIGlmIChuZXdJdGVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJDb3VsZCBub3QgY3JlYXRlIGEgbmV3IFVDaGFyYWN0ZXJJdGVyYXRvciIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dCA9IG5ld0l0ZXI7CisgICAgICAgICAgICByZXNldCgpOworICAgICAgICB9Y2F0Y2goQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ291bGQgbm90IGNsb25lIHRoZSBVQ2hhcmFjdGVySXRlcmF0b3IiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQcml2YXRlIHV0aWxpdHkgbWV0aG9kcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorCisgICAgLyogYmFja3dhcmQgaXRlcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgICAgICAgICAgICAgCisgICAgLyoKKyAgICAgKiByZWFkIGJhY2t3YXJkcyBhbmQgZ2V0IG5vcm0zMgorICAgICAqIHJldHVybiAwIGlmIHRoZSBjaGFyYWN0ZXIgaXMgPG1pbkMKKyAgICAgKiBpZiBjMiE9MCB0aGVuIChjMiwgYykgaXMgYSBzdXJyb2dhdGUgcGFpciAocmV2ZXJzZWQgLSBjMiBpcyBmaXJzdCAKKyAgICAgKiBzdXJyb2dhdGUgYnV0IHJlYWQgc2Vjb25kISkKKyAgICAgKi8KKworICAgIHByaXZhdGUgc3RhdGljICBsb25nIGdldFByZXZOb3JtMzIoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gY2hhcnMpIHsKKyAgICAgICAgbG9uZyBub3JtMzI7CisgICAgICAgIGludCBjaD0wOworICAgICAgICAvKiBuZWVkIHNyYy5oYXNQcmV2aW91cygpICovCisgICAgICAgIGlmKChjaD1zcmMucHJldmlvdXMoKSkgPT0gVUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIGNoYXJzWzBdPShjaGFyKWNoOworICAgICAgICBjaGFyc1sxXT0wOworICAgIAorICAgICAgICAvKiBjaGVjayBmb3IgYSBzdXJyb2dhdGUgYmVmb3JlIGdldHRpbmcgbm9ybTMyIHRvIHNlZSBpZiB3ZSBuZWVkIHRvIAorICAgICAgICAgKiBwcmVkZWNyZW1lbnQgZnVydGhlciAqLworICAgICAgICBpZihjaGFyc1swXTxtaW5DKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIGlmKCFVVEYxNi5pc1N1cnJvZ2F0ZShjaGFyc1swXSkpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5nZXROb3JtMzIoY2hhcnNbMF0pOworICAgICAgICB9IGVsc2UgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoYXJzWzBdKSB8fCAoc3JjLmdldEluZGV4KCk9PTApKSB7CisgICAgICAgICAgICAvKiB1bnBhaXJlZCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgIGNoYXJzWzFdPShjaGFyKXNyYy5jdXJyZW50KCk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfSBlbHNlIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShjaGFyc1sxXT0oY2hhcilzcmMucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgIG5vcm0zMj1Ob3JtYWxpemVySW1wbC5nZXROb3JtMzIoY2hhcnNbMV0pOworICAgICAgICAgICAgaWYoKG5vcm0zMiZtYXNrKT09MCkgeworICAgICAgICAgICAgICAgIC8qIGFsbCBzdXJyb2dhdGUgcGFpcnMgd2l0aCB0aGlzIGxlYWQgc3Vycm9nYXRlIGhhdmUgaXJyZWxldmFudCAKKyAgICAgICAgICAgICAgICAgKiBkYXRhICovCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIG5vcm0zMiBtdXN0IGJlIGEgc3Vycm9nYXRlIHNwZWNpYWwgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuZ2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLGNoYXJzWzBdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIHVucGFpcmVkIHNlY29uZCBzdXJyb2dhdGUsIHVuZG8gdGhlIGMyPXNyYy5wcmV2aW91cygpIG1vdmVtZW50ICovCisgICAgICAgICAgICBzcmMubW92ZUluZGV4KCAxKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorIAorICAgIHByaXZhdGUgaW50ZXJmYWNlIElzUHJldkJvdW5kYXJ5eworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1ByZXZCb3VuZGFyeShVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIGNoYXJzKTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgSXNQcmV2TkZEU2FmZSBpbXBsZW1lbnRzIElzUHJldkJvdW5kYXJ5eworICAgICAgICAvKgorICAgICAgICAgKiBmb3IgTkYqRDoKKyAgICAgICAgICogcmVhZCBiYWNrd2FyZHMgYW5kIGNoZWNrIGlmIHRoZSBsZWFkIGNvbWJpbmluZyBjbGFzcyBpcyAwCisgICAgICAgICAqIGlmIGMyIT0wIHRoZW4gKGMyLCBjKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyIChyZXZlcnNlZCAtIGMyIGlzIGZpcnN0IAorICAgICAgICAgKiBzdXJyb2dhdGUgYnV0IHJlYWQgc2Vjb25kISkKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzUHJldkJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtaW5DLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGNjT3JRQ01hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gY2hhcnMpIHsKKyAgICAKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc05GRFNhZmUoZ2V0UHJldk5vcm0zMihzcmMsIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjT3JRQ01hc2ssIGNoYXJzKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjT3JRQ01hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjY09yUUNNYXNrJiBOb3JtYWxpemVySW1wbC5RQ19NQVNLKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJc1ByZXZUcnVlU3RhcnRlciBpbXBsZW1lbnRzIElzUHJldkJvdW5kYXJ5eworICAgICAgICAvKgorICAgICAgICAgKiByZWFkIGJhY2t3YXJkcyBhbmQgY2hlY2sgaWYgdGhlIGNoYXJhY3RlciBpcyAob3IgaXRzIGRlY29tcG9zaXRpb24gCisgICAgICAgICAqIGJlZ2lucyB3aXRoKSBhICJ0cnVlIHN0YXJ0ZXIiIChjYz09MCBhbmQgTkYqQ19ZRVMpCisgICAgICAgICAqIGlmIGMyIT0wIHRoZW4gKGMyLCBjKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyIChyZXZlcnNlZCAtIGMyIGlzIGZpcnN0IAorICAgICAgICAgKiBzdXJyb2dhdGUgYnV0IHJlYWQgc2Vjb25kISkKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzUHJldkJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGNjT3JRQ01hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJbXSBjaGFycykgeworICAgICAgICAgICAgbG9uZyBub3JtMzI7IAorICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIGRlY29tcFFDTWFzazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGVjb21wUUNNYXNrPShjY09yUUNNYXNrPDwyKSYweGY7IC8qZGVjb21wb3NpdGlvbiBxdWljayBjaGVjayBtYXNrKi8KKyAgICAgICAgICAgIG5vcm0zMj1nZXRQcmV2Tm9ybTMyKHNyYywgbWluQywgY2NPclFDTWFza3xkZWNvbXBRQ01hc2ssIGNoYXJzKTsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc1RydWVTdGFydGVyKG5vcm0zMixjY09yUUNNYXNrLGRlY29tcFFDTWFzayk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmRQcmV2aW91c0l0ZXJhdGlvbkJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElzUHJldkJvdW5kYXJ5IG9iaiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtaW5DLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKm1hc2sqLyBtYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gYnVmZmVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gc3RhcnRJbmRleCkgeworICAgICAgICBjaGFyW10gY2hhcnM9bmV3IGNoYXJbMl07CisgICAgICAgIGJvb2xlYW4gaXNCb3VuZGFyeTsKKyAgICAKKyAgICAgICAgLyogZmlsbCB0aGUgYnVmZmVyIGZyb20gdGhlIGVuZCBiYWNrd2FyZHMgKi8KKyAgICAgICAgc3RhcnRJbmRleFswXSA9IGJ1ZmZlci5sZW5ndGg7CisgICAgICAgIGNoYXJzWzBdPTA7CisgICAgICAgIHdoaWxlKHNyYy5nZXRJbmRleCgpPjAgJiYgY2hhcnNbMF0hPVVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICBpc0JvdW5kYXJ5PW9iai5pc1ByZXZCb3VuZGFyeShzcmMsIG1pbkMsIG1hc2ssIGNoYXJzKTsKKyAgICAKKyAgICAgICAgICAgIC8qIGFsd2F5cyB3cml0ZSB0aGlzIGNoYXJhY3RlciB0byB0aGUgZnJvbnQgb2YgdGhlIGJ1ZmZlciAqLworICAgICAgICAgICAgLyogbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCBzcGFjZSBpbiB0aGUgYnVmZmVyICovCisgICAgICAgICAgICBpZihzdGFydEluZGV4WzBdIDwgKGNoYXJzWzFdPT0wID8gMSA6IDIpKSB7CisKKyAgICAgICAgICAgICAgICAvLyBncm93IHRoZSBidWZmZXIKKyAgICAgICAgICAgICAgICBjaGFyW10gbmV3QnVmID0gbmV3IGNoYXJbYnVmZmVyLmxlbmd0aCoyXTsKKyAgICAgICAgICAgICAgICAvKiBtb3ZlIHRoZSBjdXJyZW50IGJ1ZmZlciBjb250ZW50cyB1cCAqLworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLHN0YXJ0SW5kZXhbMF0sbmV3QnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3QnVmLmxlbmd0aC0oYnVmZmVyLmxlbmd0aC1zdGFydEluZGV4WzBdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5sZW5ndGgtc3RhcnRJbmRleFswXSk7CisgICAgICAgICAgICAgICAgLy9hZGp1c3QgdGhlIHN0YXJ0SW5kZXgKKyAgICAgICAgICAgICAgICBzdGFydEluZGV4WzBdKz1uZXdCdWYubGVuZ3RoLWJ1ZmZlci5sZW5ndGg7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYnVmZmVyPW5ld0J1ZjsKKyAgICAgICAgICAgICAgICBuZXdCdWY9bnVsbDsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBidWZmZXJbLS1zdGFydEluZGV4WzBdXT1jaGFyc1swXTsKKyAgICAgICAgICAgIGlmKGNoYXJzWzFdIT0wKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyWy0tc3RhcnRJbmRleFswXV09Y2hhcnNbMV07CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAvKiBzdG9wIGlmIHRoaXMganVzdC1jb3BpZWQgY2hhcmFjdGVyIGlzIGEgYm91bmRhcnkgKi8KKyAgICAgICAgICAgIGlmKGlzQm91bmRhcnkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIGNvbnRlbnRzICovCisgICAgICAgIHJldHVybiBidWZmZXIubGVuZ3RoLXN0YXJ0SW5kZXhbMF07CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGludCBwcmV2aW91cyhVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwgaW50IGRlc3RTdGFydCwgaW50IGRlc3RMaW1pdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vZGUgbW9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZG9Ob3JtYWxpemUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuW10gcE5lZWRlZFRvTm9ybWFsaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucykgeworCisgICAgICAgIElzUHJldkJvdW5kYXJ5IGlzUHJldmlvdXNCb3VuZGFyeTsKKyAgICAgICAgaW50IGRlc3RMZW5ndGgsIGJ1ZmZlckxlbmd0aDsKKyAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1hc2s7CisgICAgICAgIAorICAgICAgICBpbnQgYyxjMjsKKyAgICAgICAgCisgICAgICAgIGNoYXIgbWluQzsKKyAgICAgICAgaW50IGRlc3RDYXBhY2l0eSA9IGRlc3RMaW1pdC1kZXN0U3RhcnQ7CisgICAgICAgIGRlc3RMZW5ndGg9MDsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBpZihwTmVlZGVkVG9Ob3JtYWxpemUhPW51bGwpIHsKKyAgICAgICAgICAgIHBOZWVkZWRUb05vcm1hbGl6ZVswXT1mYWxzZTsKKyAgICAgICAgfQorICAgICAgICBtaW5DID0gKGNoYXIpbW9kZS5nZXRNaW5DKCk7CisgICAgICAgIG1hc2sgPSBtb2RlLmdldE1hc2soKTsKKyAgICAgICAgaXNQcmV2aW91c0JvdW5kYXJ5ID0gbW9kZS5nZXRQcmV2Qm91bmRhcnkoKTsKKworICAgICAgICBpZihpc1ByZXZpb3VzQm91bmRhcnk9PW51bGwpIHsKKyAgICAgICAgICAgIGRlc3RMZW5ndGg9MDsKKyAgICAgICAgICAgIGlmKChjPXNyYy5wcmV2aW91cygpKT49MCkgeworICAgICAgICAgICAgICAgIGRlc3RMZW5ndGg9MTsKKyAgICAgICAgICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWMpKSB7CisgICAgICAgICAgICAgICAgICAgIGMyPSBzcmMucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoYzIhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWMyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRlc3RDYXBhY2l0eT49MikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0WzFdPShjaGFyKWM7IC8vIHRyYWlsIHN1cnJvZ2F0ZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdExlbmd0aD0yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZWFkIHN1cnJvZ2F0ZSB0byBiZSB3cml0dGVuIGJlbG93IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM9YzI7IAorICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMubW92ZUluZGV4KDEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGlmKGRlc3RDYXBhY2l0eT4wKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbMF09KGNoYXIpYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZGVzdExlbmd0aDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgY2hhcltdIGJ1ZmZlciA9IG5ldyBjaGFyWzEwMF07CisgICAgICAgIGludFtdIHN0YXJ0SW5kZXg9IG5ldyBpbnRbMV07CisgICAgICAgIGJ1ZmZlckxlbmd0aD1maW5kUHJldmlvdXNJdGVyYXRpb25Cb3VuZGFyeShzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1ByZXZpb3VzQm91bmRhcnksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluQywgbWFzayxidWZmZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCk7CisgICAgICAgIGlmKGJ1ZmZlckxlbmd0aD4wKSB7CisgICAgICAgICAgICBpZihkb05vcm1hbGl6ZSkgeworICAgICAgICAgICAgICAgIGRlc3RMZW5ndGg9Tm9ybWFsaXplci5ub3JtYWxpemUoYnVmZmVyLHN0YXJ0SW5kZXhbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEluZGV4WzBdK2J1ZmZlckxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGRlc3RTdGFydCxkZXN0TGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlLCBvcHRpb25zKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihwTmVlZGVkVG9Ob3JtYWxpemUhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcE5lZWRlZFRvTm9ybWFsaXplWzBdPShib29sZWFuKShkZXN0TGVuZ3RoIT1idWZmZXJMZW5ndGggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmFycmF5UmVnaW9uTWF0Y2hlcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIsMCxkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RTdGFydCxkZXN0TGltaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIGp1c3QgY29weSB0aGUgc291cmNlIGNoYXJhY3RlcnMgKi8KKyAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+MCkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ1ZmZlcixzdGFydEluZGV4WzBdLGRlc3QsMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyTGVuZ3RoPGRlc3RDYXBhY2l0eSkgPyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJMZW5ndGggOiBkZXN0Q2FwYWNpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKworICAgIAorICAgICAgICByZXR1cm4gZGVzdExlbmd0aDsKKyAgICB9CisKKyAKKyAgICAKKyAgICAvKiBmb3J3YXJkIGl0ZXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgLyoKKyAgICAgKiByZWFkIGZvcndhcmQgYW5kIGNoZWNrIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYSBuZXh0LWl0ZXJhdGlvbiBib3VuZGFyeQorICAgICAqIGlmIGMyIT0wIHRoZW4gKGMsIGMyKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRlcmZhY2UgSXNOZXh0Qm91bmRhcnl7CisgICAgICAgIGJvb2xlYW4gaXNOZXh0Qm91bmRhcnkoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBjaGFycyk7CisgICAgfSAgIAorICAgIC8qCisgICAgICogcmVhZCBmb3J3YXJkIGFuZCBnZXQgbm9ybTMyCisgICAgICogcmV0dXJuIDAgaWYgdGhlIGNoYXJhY3RlciBpcyA8bWluQworICAgICAqIGlmIGMyIT0wIHRoZW4gKGMyLCBjKSBpcyBhIHN1cnJvZ2F0ZSBwYWlyCisgICAgICogYWx3YXlzIHJlYWRzIGNvbXBsZXRlIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIC8qdW5zaWduZWQqLyBnZXROZXh0Tm9ybTMyKFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1hc2ssIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY2hhcnMpIHsKKyAgICAgICAgbG9uZyBub3JtMzI7CisgICAgCisgICAgICAgIC8qIG5lZWQgc3JjLmhhc05leHQoKSB0byBiZSB0cnVlICovCisgICAgICAgIGNoYXJzWzBdPXNyYy5uZXh0KCk7CisgICAgICAgIGNoYXJzWzFdPTA7CisgICAgCisgICAgICAgIGlmKGNoYXJzWzBdPG1pbkMpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgCisgICAgICAgIG5vcm0zMj1Ob3JtYWxpemVySW1wbC5nZXROb3JtMzIoKGNoYXIpY2hhcnNbMF0pOworICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2hhcnNbMF0pKSB7CisgICAgICAgICAgICBpZihzcmMuY3VycmVudCgpIT1VQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJgorICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhcikoY2hhcnNbMV09c3JjLmN1cnJlbnQoKSkpKSB7CisgICAgICAgICAgICAgICAgc3JjLm1vdmVJbmRleCgxKTsgLyogc2tpcCB0aGUgYzIgc3Vycm9nYXRlICovCisgICAgICAgICAgICAgICAgaWYoKG5vcm0zMiZtYXNrKT09MCkgeworICAgICAgICAgICAgICAgICAgICAvKiBpcnJlbGV2YW50IGRhdGEgKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogbm9ybTMyIG11c3QgYmUgYSBzdXJyb2dhdGUgc3BlY2lhbCAqLworICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuZ2V0Tm9ybTMyRnJvbVN1cnJvZ2F0ZVBhaXIobm9ybTMyLChjaGFyKWNoYXJzWzFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIHVubWF0Y2hlZCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbm9ybTMyOworICAgIH0KKworCisgICAgLyoKKyAgICAgKiBmb3IgTkYqRDoKKyAgICAgKiByZWFkIGZvcndhcmQgYW5kIGNoZWNrIGlmIHRoZSBsZWFkIGNvbWJpbmluZyBjbGFzcyBpcyAwCisgICAgICogaWYgYzIhPTAgdGhlbiAoYywgYzIpIGlzIGEgc3Vycm9nYXRlIHBhaXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJc05leHRORkRTYWZlIGltcGxlbWVudHMgSXNOZXh0Qm91bmRhcnl7CisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzTmV4dEJvdW5kYXJ5KFVDaGFyYWN0ZXJJdGVyYXRvciBzcmMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWluQywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBjY09yUUNNYXNrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY2hhcnMpIHsKKyAgICAgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5pc05GRFNhZmUoZ2V0TmV4dE5vcm0zMihzcmMsbWluQyxjY09yUUNNYXNrLGNoYXJzKSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjT3JRQ01hc2ssIGNjT3JRQ01hc2smTm9ybWFsaXplckltcGwuUUNfTUFTSyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoKKyAgICAgKiBmb3IgTkYqQzoKKyAgICAgKiByZWFkIGZvcndhcmQgYW5kIGNoZWNrIGlmIHRoZSBjaGFyYWN0ZXIgaXMgKG9yIGl0cyBkZWNvbXBvc2l0aW9uIGJlZ2lucyAKKyAgICAgKiB3aXRoKSBhICJ0cnVlIHN0YXJ0ZXIiIChjYz09MCBhbmQgTkYqQ19ZRVMpCisgICAgICogaWYgYzIhPTAgdGhlbiAoYywgYzIpIGlzIGEgc3Vycm9nYXRlIHBhaXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJc05leHRUcnVlU3RhcnRlciBpbXBsZW1lbnRzIElzTmV4dEJvdW5kYXJ5eworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc05leHRCb3VuZGFyeShVQ2hhcmFjdGVySXRlcmF0b3Igc3JjLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Lyp1bnNpZ25lZCovIG1pbkMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gY2NPclFDTWFzaywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIGNoYXJzKSB7CisgICAgICAgICAgICBsb25nIG5vcm0zMjsKKyAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBkZWNvbXBRQ01hc2s7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlY29tcFFDTWFzaz0oY2NPclFDTWFzazw8MikmMHhmOyAvKmRlY29tcG9zaXRpb24gcXVpY2sgY2hlY2sgbWFzayovCisgICAgICAgICAgICBub3JtMzI9Z2V0TmV4dE5vcm0zMihzcmMsIG1pbkMsIGNjT3JRQ01hc2t8ZGVjb21wUUNNYXNrLCBjaGFycyk7CisgICAgICAgICAgICByZXR1cm4gTm9ybWFsaXplckltcGwuaXNUcnVlU3RhcnRlcihub3JtMzIsIGNjT3JRQ01hc2ssIGRlY29tcFFDTWFzayk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGZpbmROZXh0SXRlcmF0aW9uQm91bmRhcnkoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJc05leHRCb3VuZGFyeSBvYmosIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludC8qdW5zaWduZWQqLyBtaW5DLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQvKnVuc2lnbmVkKi8gbWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gYnVmZmVyKSB7CisgICAgICAgIGludFtdIGNoYXJzID0gbmV3IGludFsyXTsKKyAgICAgICAgaW50IGJ1ZmZlckluZGV4ID0wOworICAgICAgICAKKyAgICAgICAgaWYoc3JjLmN1cnJlbnQoKT09VUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIC8qIGdldCBvbmUgY2hhcmFjdGVyIGFuZCBpZ25vcmUgaXRzIHByb3BlcnRpZXMgKi8KKyAgICAgICAgY2hhcnNbMF09c3JjLm5leHQoKTsKKyAgICAgICAgYnVmZmVyWzBdPShjaGFyKWNoYXJzWzBdOworICAgICAgICBidWZmZXJJbmRleD0xOworICAgICAgICAKKyAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoYXJzWzBdKSYmIAorICAgICAgICAgICBzcmMuY3VycmVudCgpIT1VQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhcikoY2hhcnNbMV09c3JjLm5leHQoKSkpKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyW2J1ZmZlckluZGV4KytdPShjaGFyKWNoYXJzWzFdOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzcmMubW92ZUluZGV4KC0xKTsgLyogYmFjayBvdXQgdGhlIG5vbi10cmFpbC1zdXJyb2dhdGUgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiBnZXQgYWxsIGZvbGxvd2luZyBjaGFyYWN0ZXJzIHVudGlsIHdlIHNlZSBhIGJvdW5kYXJ5ICovCisgICAgICAgIC8qIGNoZWNraW5nIGhhc05leHQoKSBpbnN0ZWFkIG9mIGMhPURPTkUgb24gdGhlIG9mZi1jaGFuY2UgdGhhdCBVK2ZmZmYgCisgICAgICAgICAqIGlzIHBhcnQgb2YgdGhlIHN0cmluZyAqLworICAgICAgICB3aGlsZSggc3JjLmN1cnJlbnQoKSE9VUNoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgIGlmKG9iai5pc05leHRCb3VuZGFyeShzcmMsIG1pbkMsIG1hc2ssIGNoYXJzKSkgeworICAgICAgICAgICAgICAgIC8qIGJhY2sgb3V0IHRoZSBsYXRlc3QgbW92ZW1lbnQgdG8gc3RvcCBhdCB0aGUgYm91bmRhcnkgKi8KKyAgICAgICAgICAgICAgICBzcmMubW92ZUluZGV4KGNoYXJzWzFdPT0wID8gLTEgOiAtMik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmKGJ1ZmZlckluZGV4KyhjaGFyc1sxXT09MCA/IDEgOiAyKTw9YnVmZmVyLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBidWZmZXJbYnVmZmVySW5kZXgrK109KGNoYXIpY2hhcnNbMF07CisgICAgICAgICAgICAgICAgICAgIGlmKGNoYXJzWzFdIT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbYnVmZmVySW5kZXgrK109KGNoYXIpY2hhcnNbMV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBjaGFyW10gbmV3QnVmID0gbmV3IGNoYXJbYnVmZmVyLmxlbmd0aCAgICAqMl07CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLDAsbmV3QnVmLDAsYnVmZmVySW5kZXgpOworICAgICAgICAgICAgICAgICAgICBidWZmZXIgPSBuZXdCdWY7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltidWZmZXJJbmRleCsrXT0oY2hhciljaGFyc1swXTsKKyAgICAgICAgICAgICAgICAgICAgaWYoY2hhcnNbMV0hPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltidWZmZXJJbmRleCsrXT0oY2hhciljaGFyc1sxXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIGNvbnRlbnRzICovCisgICAgICAgIHJldHVybiBidWZmZXJJbmRleDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG5leHQoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gZGVzdCwgaW50IGRlc3RTdGFydCwgaW50IGRlc3RMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3JtYWxpemVyLk1vZGUgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGRvTm9ybWFsaXplLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuW10gcE5lZWRlZFRvTm9ybWFsaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBJc05leHRCb3VuZGFyeSBpc05leHRCb3VuZGFyeTsKKyAgICAgICAgaW50IC8qdW5zaWduZWQqLyBtYXNrOworICAgICAgICBpbnQgLyp1bnNpZ25lZCovIGJ1ZmZlckxlbmd0aDsKKyAgICAgICAgaW50IGMsYzI7CisgICAgICAgIGNoYXIgbWluQzsKKyAgICAgICAgaW50IGRlc3RDYXBhY2l0eSA9IGRlc3RMaW1pdCAtIGRlc3RTdGFydDsKKyAgICAgICAgaW50IGRlc3RMZW5ndGggPSAwOworICAgICAgICAKKyAgICAgICAgaWYocE5lZWRlZFRvTm9ybWFsaXplIT1udWxsKSB7CisgICAgICAgICAgICBwTmVlZGVkVG9Ob3JtYWxpemVbMF09ZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBtaW5DID0gKGNoYXIpbW9kZS5nZXRNaW5DKCk7CisgICAgICAgIG1hc2sgPSBtb2RlLmdldE1hc2soKTsKKyAgICAgICAgaXNOZXh0Qm91bmRhcnkgPSBtb2RlLmdldE5leHRCb3VuZGFyeSgpOworICAgICAgICAKKyAgICAgICAgaWYoaXNOZXh0Qm91bmRhcnk9PW51bGwpIHsKKyAgICAgICAgICAgIGRlc3RMZW5ndGg9MDsKKyAgICAgICAgICAgIGM9c3JjLm5leHQoKTsKKyAgICAgICAgICAgIGlmKGMhPVVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgZGVzdExlbmd0aD0xOworICAgICAgICAgICAgICAgIGlmKFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljKSkgeworICAgICAgICAgICAgICAgICAgICBjMj0gc3JjLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoYzIhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhciljMikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkZXN0Q2FwYWNpdHk+PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdFsxXT0oY2hhciljMjsgLy8gdHJhaWwgc3Vycm9nYXRlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0TGVuZ3RoPTI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxlYWQgc3Vycm9nYXRlIHRvIGJlIHdyaXR0ZW4gYmVsb3cgCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYy5tb3ZlSW5kZXgoLTEpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGlmKGRlc3RDYXBhY2l0eT4wKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3RbMF09KGNoYXIpYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZGVzdExlbmd0aDsKKyAgICAgICAgfQorCisgICAgICAgIGNoYXJbXSBidWZmZXI9bmV3IGNoYXJbMTAwXTsKKyAgICAgICAgaW50W10gc3RhcnRJbmRleCA9IG5ldyBpbnRbMV07CisgICAgICAgIAorICAgICAgICBidWZmZXJMZW5ndGg9ZmluZE5leHRJdGVyYXRpb25Cb3VuZGFyeShzcmMsaXNOZXh0Qm91bmRhcnksIG1pbkMsIG1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcik7CisgICAgICAgIGlmKGJ1ZmZlckxlbmd0aD4wKSB7CisgICAgICAgICAgICBpZihkb05vcm1hbGl6ZSkgeworICAgICAgICAgICAgICAgIGRlc3RMZW5ndGg9bW9kZS5ub3JtYWxpemUoYnVmZmVyLHN0YXJ0SW5kZXhbMF0sYnVmZmVyTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCxkZXN0U3RhcnQsZGVzdExpbWl0LCBvcHRpb25zKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihwTmVlZGVkVG9Ob3JtYWxpemUhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcE5lZWRlZFRvTm9ybWFsaXplWzBdPShib29sZWFuKShkZXN0TGVuZ3RoIT1idWZmZXJMZW5ndGggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmFycmF5UmVnaW9uTWF0Y2hlcyhidWZmZXIsc3RhcnRJbmRleFswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0LGRlc3RTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0TGVuZ3RoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBqdXN0IGNvcHkgdGhlIHNvdXJjZSBjaGFyYWN0ZXJzICovCisgICAgICAgICAgICAgICAgaWYoZGVzdENhcGFjaXR5PjApIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShidWZmZXIsMCxkZXN0LGRlc3RTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbihidWZmZXJMZW5ndGgsZGVzdENhcGFjaXR5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBkZXN0TGVuZ3RoOworICAgIH0gCisKKyAgICBwcml2YXRlIHZvaWQgY2xlYXJCdWZmZXIoKSB7CisgICAgICAgIGJ1ZmZlckxpbWl0PWJ1ZmZlclN0YXJ0PWJ1ZmZlclBvcz0wOworICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIG5leHROb3JtYWxpemUoKSB7CisgICAgICAgIAorICAgICAgICBjbGVhckJ1ZmZlcigpOworICAgICAgICBjdXJyZW50SW5kZXg9bmV4dEluZGV4OworICAgICAgICB0ZXh0LnNldEluZGV4KG5leHRJbmRleCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGJ1ZmZlckxpbWl0PW5leHQodGV4dCxidWZmZXIsYnVmZmVyU3RhcnQsYnVmZmVyLmxlbmd0aCxtb2RlLHRydWUsbnVsbCxvcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBuZXh0SW5kZXg9dGV4dC5nZXRJbmRleCgpOworICAgICAgICByZXR1cm4gKGJ1ZmZlckxpbWl0PjApOworICAgIH0KKyAgICAgICAgCisgICAgcHJpdmF0ZSBib29sZWFuICAgICBwcmV2aW91c05vcm1hbGl6ZSgpIHsKKworICAgICAgICBjbGVhckJ1ZmZlcigpOworICAgICAgICBuZXh0SW5kZXg9Y3VycmVudEluZGV4OworICAgICAgICB0ZXh0LnNldEluZGV4KGN1cnJlbnRJbmRleCk7CisgICAgICAgIGJ1ZmZlckxpbWl0PXByZXZpb3VzKHRleHQsYnVmZmVyLGJ1ZmZlclN0YXJ0LGJ1ZmZlci5sZW5ndGgsbW9kZSx0cnVlLG51bGwsb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGN1cnJlbnRJbmRleD10ZXh0LmdldEluZGV4KCk7CisgICAgICAgIGJ1ZmZlclBvcyA9IGJ1ZmZlckxpbWl0OworICAgICAgICByZXR1cm4gYnVmZmVyTGltaXQ+MDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgZ2V0Q29kZVBvaW50QXQoaW50IGluZGV4KSB7CisgICAgICAgIGlmKCBVVEYxNi5pc1N1cnJvZ2F0ZShidWZmZXJbaW5kZXhdKSkgeworICAgICAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGJ1ZmZlcltpbmRleF0pKSB7CisgICAgICAgICAgICAgICAgaWYoKGluZGV4KzEpPGJ1ZmZlckxpbWl0ICYmCisgICAgICAgICAgICAgICAgICAgVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShidWZmZXJbaW5kZXgrMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpbmRleF0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2luZGV4KzFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1lbHNlIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYnVmZmVyW2luZGV4XSkpIHsKKyAgICAgICAgICAgICAgICBpZihpbmRleD4wICYmIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZShidWZmZXJbaW5kZXgtMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpbmRleC0xXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpbmRleF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBidWZmZXJbaW5kZXhdOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgQVBJCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIGlzTkZTa2lwcGFibGUoaW50IGMsIE1vZGUgbW9kZSkgeworICAgICAgICByZXR1cm4gbW9kZS5pc05GU2tpcHBhYmxlKGMpOworICAgIH0gICAgCisKKyAgICAgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGludGVybmFsQ29tcGFyZShjaGFyW10gczEsIGludCBzMVN0YXJ0LGludCBzMUxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHMyLCBpbnQgczJTdGFydCxpbnQgczJMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGNoYXJbXSBmY2QxICA9IG5ldyBjaGFyWzMwMF07CisgICAgICAgIGNoYXJbXSBmY2QyICA9IG5ldyBjaGFyWzMwMF07CisgICAgICAgIAorICAgICAgICBOb3JtYWxpemVyLk1vZGUgbW9kZTsKKyAgICAgICAgaW50IHJlc3VsdDsKKyAgICAgICAgCisgICAgICAgIGlmKCAgICBzMT09bnVsbCB8fCBzMVN0YXJ0PDAgfHwgczFMaW1pdDwwIHx8IAorICAgICAgICAgICAgICAgczI9PW51bGwgfHwgczJTdGFydDwwIHx8IHMyTGltaXQ8MCB8fAorICAgICAgICAgICAgICAgczFMaW1pdDxzMVN0YXJ0IHx8IHMyTGltaXQ8czJTdGFydAorICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBVbmljb2RlU2V0IG54PU5vcm1hbGl6ZXJJbXBsLmdldE5YKChpbnQpKG9wdGlvbnM+Pk5vcm1hbGl6ZXIuQ09NUEFSRV9OT1JNX09QVElPTlNfU0hJRlQpKTsKKyAgICAgICAgb3B0aW9uc3w9IE5vcm1hbGl6ZXJJbXBsLkNPTVBBUkVfRVFVSVY7CisgICAgICAgIHJlc3VsdD0wOworCisgICAgICAgIC8qCisgICAgICAgICAqIFVBWCAjMjEgQ2FzZSBNYXBwaW5ncywgYXMgZml4ZWQgZm9yIFVuaWNvZGUgdmVyc2lvbiA0CisgICAgICAgICAqIChzZWUgSml0dGVyYnVnIDIwMjEpLCBkZWZpbmVzIGEgY2Fub25pY2FsIGNhc2VsZXNzIG1hdGNoIGFzCisgICAgICAgICAqCisgICAgICAgICAqIEEgc3RyaW5nIFggaXMgYSBjYW5vbmljYWwgY2FzZWxlc3MgbWF0Y2gKKyAgICAgICAgICogZm9yIGEgc3RyaW5nIFkgaWYgYW5kIG9ubHkgaWYKKyAgICAgICAgICogTkZEKHRvQ2FzZWZvbGQoTkZEKFgpKSkgPSBORkQodG9DYXNlZm9sZChORkQoWSkpKQorICAgICAgICAgKgorICAgICAgICAgKiBGb3IgYmV0dGVyIHBlcmZvcm1hbmNlLCB3ZSBjaGVjayBmb3IgRkNEIChvciBsZXQgdGhlIGNhbGxlciB0ZWxsIHVzIHRoYXQKKyAgICAgICAgICogYm90aCBzdHJpbmdzIGFyZSBpbiBGQ0QpIGZvciB0aGUgaW5uZXIgbm9ybWFsaXphdGlvbi4KKyAgICAgICAgICogQmFzaWNOb3JtYWxpemVyVGVzdDo6RmluZEZvbGRGQ0RFeGNlcHRpb25zKCkgbWFrZXMgc3VyZSB0aGF0CisgICAgICAgICAqIGNhc2UtZm9sZGluZyBwcmVzZXJ2ZXMgdGhlIEZDRC1uZXNzIG9mIGEgc3RyaW5nLgorICAgICAgICAgKiBUaGUgb3V0ZXIgbm9ybWFsaXphdGlvbiBpcyB0aGVuIG9ubHkgcGVyZm9ybWVkIGJ5IE5vcm1hbGl6ZXJJbXBsLmNtcEVxdWl2Rm9sZCgpCisgICAgICAgICAqIHdoZW4gdGhlcmUgaXMgYSBkaWZmZXJlbmNlLgorICAgICAgICAgKgorICAgICAgICAgKiBFeGNlcHRpb246IFdoZW4gdXNpbmcgdGhlIFR1cmtpYyBjYXNlLWZvbGRpbmcgb3B0aW9uLCB3ZSBkbyBwZXJmb3JtCisgICAgICAgICAqIGZ1bGwgTkZEIGZpcnN0LiBUaGlzIGlzIGJlY2F1c2UgaW4gdGhlIFR1cmtpYyBjYXNlIHByZWNvbXBvc2VkIGNoYXJhY3RlcnMKKyAgICAgICAgICogd2l0aCAwMDQ5IGNhcGl0YWwgSSBvciAwMDY5IHNtYWxsIGkgZm9sZCBkaWZmZXJlbnRseSB3aGV0aGVyIHRoZXkKKyAgICAgICAgICogYXJlIGZpcnN0IGRlY29tcG9zZWQgb3Igbm90LCBzbyBhbiBGQ0QgY2hlY2sgLSBhIGNoZWNrIG9ubHkgZm9yCisgICAgICAgICAqIGNhbm9uaWNhbCBvcmRlciAtIGlzIG5vdCBzdWZmaWNpZW50LgorICAgICAgICAgKi8KKyAgICAgICAgaWYoKG9wdGlvbnMmIE5vcm1hbGl6ZXIuRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSA+MCApIHsKKyAgICAgICAgICAgIG1vZGU9Tm9ybWFsaXplci5ORkQ7CisgICAgICAgICAgICBvcHRpb25zJj1+IE5vcm1hbGl6ZXIuSU5QVVRfSVNfRkNEOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbW9kZT1Ob3JtYWxpemVyLkZDRDsKKyAgICAgICAgfQorICAgICAgICBpZigob3B0aW9ucyYgTm9ybWFsaXplci5JTlBVVF9JU19GQ0QpPT0wKSB7CisgICAgICAgICAgICBjaGFyW10gZGVzdDsKKyAgICAgICAgICAgIGludCBmY2RMZW4xLCBmY2RMZW4yOworICAgICAgICAgICAgYm9vbGVhbiBpc0ZDRDEsIGlzRkNEMjsKKyAgICAgICAgCisgICAgICAgICAgICAvLyBjaGVjayBpZiBzMSBhbmQvb3IgczIgZnVsZmlsbCB0aGUgRkNEIGNvbmRpdGlvbnMKKyAgICAgICAgICAgIGlzRkNEMT0gTm9ybWFsaXplci5ZRVM9PW1vZGUucXVpY2tDaGVjayhzMSwgczFTdGFydCwgczFMaW1pdCwgdHJ1ZSwgbngpOworICAgICAgICAgICAgaXNGQ0QyPSBOb3JtYWxpemVyLllFUz09bW9kZS5xdWlja0NoZWNrKHMyLCBzMlN0YXJ0LCBzMkxpbWl0LCB0cnVlLCBueCk7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogSUNVIDIuNCBoYWQgYSBmdXJ0aGVyIG9wdGltaXphdGlvbjoKKyAgICAgICAgICAgICAqIElmIGJvdGggc3RyaW5ncyB3ZXJlIG5vdCBpbiBGQ0QsIHRoZW4gdGhleSB3ZXJlIGJvdGggTkZEJ2VkLAorICAgICAgICAgICAgICogYW5kIHRoZSBDT01QQVJFX0VRVUlWIG9wdGlvbiB3YXMgdHVybmVkIG9mZi4KKyAgICAgICAgICAgICAqIEl0IGlzIG5vdCBlbnRpcmVseSBjbGVhciB0aGF0IHRoaXMgaXMgdmFsaWQgd2l0aCB0aGUgY3VycmVudAorICAgICAgICAgICAgICogZGVmaW5pdGlvbiBvZiB0aGUgY2Fub25pY2FsIGNhc2VsZXNzIG1hdGNoLgorICAgICAgICAgICAgICogVGhlcmVmb3JlLCBJQ1UgMi42IHJlbW92ZXMgdGhhdCBvcHRpbWl6YXRpb24uCisgICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgaWYoIWlzRkNEMSkgeworICAgICAgICAgICAgICAgIGZjZExlbjE9bW9kZS5ub3JtYWxpemUoczEsIDAsIHMxLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZjZDEsIDAsIGZjZDEubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbngpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYoZmNkTGVuMT5mY2QxLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBkZXN0PW5ldyBjaGFyW2ZjZExlbjFdOworICAgICAgICAgICAgICAgICAgICBmY2RMZW4xPW1vZGUubm9ybWFsaXplKCBzMSwgMCwgczEubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0LCAwLCBkZXN0Lmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbngpOworICAgICAgICAgICAgICAgICAgICBzMT1kZXN0OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHMxPWZjZDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHMxTGltaXQ9ZmNkTGVuMTsKKyAgICAgICAgICAgICAgICBzMVN0YXJ0PTA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmKCFpc0ZDRDIpIHsKKyAgICAgICAgICAgICAgICBmY2RMZW4yPW1vZGUubm9ybWFsaXplKHMyLHMyU3RhcnQsczJMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZjZDIsMCxmY2QyLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG54KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZihmY2RMZW4yPmZjZDIubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3Q9bmV3IGNoYXJbZmNkTGVuMl07CisgICAgICAgICAgICAgICAgICAgIGZjZExlbjI9bW9kZS5ub3JtYWxpemUoIHMyLHMyU3RhcnQsczJMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCwwLGRlc3QubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBueCk7CisgICAgICAgICAgICAgICAgICAgIHMyPWRlc3Q7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgczI9ZmNkMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgczJMaW1pdD1mY2RMZW4yOworICAgICAgICAgICAgICAgIHMyU3RhcnQ9MDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKworICAgICAgICByZXN1bHQ9Tm9ybWFsaXplckltcGwuY21wRXF1aXZGb2xkKHMxLCBzMVN0YXJ0LCBzMUxpbWl0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzMiwgczJTdGFydCwgczJMaW1pdCwgb3B0aW9ucyk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfSAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBGZXRjaGVzIHRoZSBVbmljb2RlIHZlcnNpb24gYnVybmVkIGludG8gdGhlIE5vcm1hbGl6YXRpb24gZGF0YSBmaWxlCisgICAgICogQHJldHVybiBWZXJzaW9uSW5mbyB2ZXJzaW9uIGluZm9ybWF0aW9uIG9mIHRoZSBub3JtYWxpemVyCisgICAgICogQGludGVybmFsCisgICAgICogQGF1dGhvciByYW0KKyAgICAgKi8KKyAgICBzdGF0aWMgVmVyc2lvbkluZm8gZ2V0VW5pY29kZVZlcnNpb24oKSB7CisgICAgICAgIHJldHVybiBOb3JtYWxpemVySW1wbC5nZXRVbmljb2RlVmVyc2lvbigpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L051bGxUcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVsbFRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGE0MmRhNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L051bGxUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogQSB0cmFuc2xpdGVyYXRvciB0aGF0IGxlYXZlcyB0ZXh0IHVuY2hhbmdlZC4KKyAqIEBpbnRlcm5hbAorICovCitjbGFzcyBOdWxsVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICJcdTAwQTkgSUJNIENvcnBvcmF0aW9uIDIwMDAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8qKgorICAgICAqIFBhY2thZ2UgYWNjZXNzaWJsZSBJRHMgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgc3RhdGljIFN0cmluZyBTSE9SVF9JRCA9ICJOdWxsIjsKKyAgICBzdGF0aWMgU3RyaW5nIF9JRCAgICAgID0gIkFueS1OdWxsIjsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSB0cmFuc2xpdGVyYXRvci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgTnVsbFRyYW5zbGl0ZXJhdG9yKCkgeworICAgICAgICBzdXBlcihfSUQsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIG9mZnNldHMsIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgb2Zmc2V0cy5zdGFydCA9IG9mZnNldHMubGltaXQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVtYmVyRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iZWVlMDkxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvTnVtYmVyRm9ybWF0LmphdmEKQEAgLTAsMCArMSwxNDkzIEBACisvLyMjaGVhZGVyCisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLkludmFsaWRPYmplY3RFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCisvL2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5QW1vdW50OworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlVGb3JtYXQ7CisKKy8qKgorICogPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBpcyB0aGUgYWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgYWxsIG51bWJlcgorICogZm9ybWF0cy4gVGhpcyBjbGFzcyBwcm92aWRlcyB0aGUgaW50ZXJmYWNlIGZvciBmb3JtYXR0aW5nIGFuZCBwYXJzaW5nCisgKiBudW1iZXJzLiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGFsc28gcHJvdmlkZXMgbWV0aG9kcyBmb3IgZGV0ZXJtaW5pbmcKKyAqIHdoaWNoIGxvY2FsZXMgaGF2ZSBudW1iZXIgZm9ybWF0cywgYW5kIHdoYXQgdGhlaXIgbmFtZXMgYXJlLgorICoKKyAqIDxwPjxzdHJvbmc+VGhpcyBpcyBhbiBlbmhhbmNlZCB2ZXJzaW9uIG9mIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gdGhhdAorICogaXMgYmFzZWQgb24gdGhlIHN0YW5kYXJkIHZlcnNpb24gaW4gdGhlIEpESy4gIE5ldyBvciBjaGFuZ2VkIGZ1bmN0aW9uYWxpdHkKKyAqIGlzIGxhYmVsZWQKKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4gb3IKKyAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPkNIQU5HRUQ8L2ZvbnQ+PC9zdHJvbmc+Ljwvc3Ryb25nPgorICoKKyAqIDxwPgorICogPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBoZWxwcyB5b3UgdG8gZm9ybWF0IGFuZCBwYXJzZSBudW1iZXJzIGZvciBhbnkgbG9jYWxlLgorICogWW91ciBjb2RlIGNhbiBiZSBjb21wbGV0ZWx5IGluZGVwZW5kZW50IG9mIHRoZSBsb2NhbGUgY29udmVudGlvbnMgZm9yCisgKiBkZWNpbWFsIHBvaW50cywgdGhvdXNhbmRzLXNlcGFyYXRvcnMsIG9yIGV2ZW4gdGhlIHBhcnRpY3VsYXIgZGVjaW1hbAorICogZGlnaXRzIHVzZWQsIG9yIHdoZXRoZXIgdGhlIG51bWJlciBmb3JtYXQgaXMgZXZlbiBkZWNpbWFsLgorICoKKyAqIDxwPgorICogVG8gZm9ybWF0IGEgbnVtYmVyIGZvciB0aGUgY3VycmVudCBMb2NhbGUsIHVzZSBvbmUgb2YgdGhlIGZhY3RvcnkKKyAqIGNsYXNzIG1ldGhvZHM6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAgbXlTdHJpbmcgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5mb3JtYXQobXlOdW1iZXIpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBJZiB5b3UgYXJlIGZvcm1hdHRpbmcgbXVsdGlwbGUgbnVtYmVycywgaXQgaXMKKyAqIG1vcmUgZWZmaWNpZW50IHRvIGdldCB0aGUgZm9ybWF0IGFuZCB1c2UgaXQgbXVsdGlwbGUgdGltZXMgc28gdGhhdAorICogdGhlIHN5c3RlbSBkb2Vzbid0IGhhdmUgdG8gZmV0Y2ggdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NhbAorICogbGFuZ3VhZ2UgYW5kIGNvdW50cnkgY29udmVudGlvbnMgbXVsdGlwbGUgdGltZXMuCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBOdW1iZXJGb3JtYXQgbmYgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKTsKKyAqIGZvciAoaW50IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgeworICogICAgIG91dHB1dC5wcmludGxuKG5mLmZvcm1hdChteU51bWJlcltpXSkgKyAiOyAiKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogVG8gZm9ybWF0IGEgbnVtYmVyIGZvciBhIGRpZmZlcmVudCBMb2NhbGUsIHNwZWNpZnkgaXQgaW4gdGhlCisgKiBjYWxsIHRvIDxjb2RlPmdldEluc3RhbmNlPC9jb2RlPi4KKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIE51bWJlckZvcm1hdCBuZiA9IE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZShMb2NhbGUuRlJFTkNIKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogWW91IGNhbiBhbHNvIHVzZSBhIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gdG8gcGFyc2UgbnVtYmVyczoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIG15TnVtYmVyID0gbmYucGFyc2UobXlTdHJpbmcpOworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiBVc2UgPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+IG9yIDxjb2RlPmdldE51bWJlckluc3RhbmNlPC9jb2RlPiB0byBnZXQgdGhlCisgKiBub3JtYWwgbnVtYmVyIGZvcm1hdC4gVXNlIDxjb2RlPmdldEludGVnZXJJbnN0YW5jZTwvY29kZT4gdG8gZ2V0IGFuCisgKiBpbnRlZ2VyIG51bWJlciBmb3JtYXQuIFVzZSA8Y29kZT5nZXRDdXJyZW5jeUluc3RhbmNlPC9jb2RlPiB0byBnZXQgdGhlCisgKiBjdXJyZW5jeSBudW1iZXIgZm9ybWF0LiBBbmQgdXNlIDxjb2RlPmdldFBlcmNlbnRJbnN0YW5jZTwvY29kZT4gdG8gZ2V0IGEKKyAqIGZvcm1hdCBmb3IgZGlzcGxheWluZyBwZXJjZW50YWdlcy4gV2l0aCB0aGlzIGZvcm1hdCwgYSBmcmFjdGlvbiBsaWtlCisgKiAwLjUzIGlzIGRpc3BsYXllZCBhcyA1MyUuCisgKgorICogPHA+CisgKiBZb3UgY2FuIGFsc28gY29udHJvbCB0aGUgZGlzcGxheSBvZiBudW1iZXJzIHdpdGggc3VjaCBtZXRob2RzIGFzCisgKiA8Y29kZT5zZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+LgorICogSWYgeW91IHdhbnQgZXZlbiBtb3JlIGNvbnRyb2wgb3ZlciB0aGUgZm9ybWF0IG9yIHBhcnNpbmcsCisgKiBvciB3YW50IHRvIGdpdmUgeW91ciB1c2VycyBtb3JlIGNvbnRyb2wsCisgKiB5b3UgY2FuIHRyeSBjYXN0aW5nIHRoZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IHlvdSBnZXQgZnJvbSB0aGUgZmFjdG9yeSBtZXRob2RzCisgKiB0byBhIDxjb2RlPkRlY2ltYWxGb3JtYXQ8L2NvZGU+LiBUaGlzIHdpbGwgd29yayBmb3IgdGhlIHZhc3QgbWFqb3JpdHkKKyAqIG9mIGxvY2FsZXM7IGp1c3QgcmVtZW1iZXIgdG8gcHV0IGl0IGluIGEgPGNvZGU+dHJ5PC9jb2RlPiBibG9jayBpbiBjYXNlIHlvdQorICogZW5jb3VudGVyIGFuIHVudXN1YWwgb25lLgorICoKKyAqIDxwPgorICogTnVtYmVyRm9ybWF0IGlzIGRlc2lnbmVkIHN1Y2ggdGhhdCBzb21lIGNvbnRyb2xzCisgKiB3b3JrIGZvciBmb3JtYXR0aW5nIGFuZCBvdGhlcnMgd29yayBmb3IgcGFyc2luZy4gIFRoZSBmb2xsb3dpbmcgaXMKKyAqIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgZWFjaCB0aGVzZSBjb250cm9sIG1ldGhvZHMsCisgKiA8cD4KKyAqIHNldFBhcnNlSW50ZWdlck9ubHkgOiBvbmx5IGFmZmVjdHMgcGFyc2luZywgZS5nLgorICogaWYgdHJ1ZSwgICIzNDU2Ljc4IiAtPiAzNDU2IChhbmQgbGVhdmVzIHRoZSBwYXJzZSBwb3NpdGlvbiBqdXN0IGFmdGVyICc2JykKKyAqIGlmIGZhbHNlLCAiMzQ1Ni43OCIgLT4gMzQ1Ni43OCAoYW5kIGxlYXZlcyB0aGUgcGFyc2UgcG9zaXRpb24ganVzdCBhZnRlciAnOCcpCisgKiBUaGlzIGlzIGluZGVwZW5kZW50IG9mIGZvcm1hdHRpbmcuICBJZiB5b3Ugd2FudCB0byBub3Qgc2hvdyBhIGRlY2ltYWwgcG9pbnQKKyAqIHdoZXJlIHRoZXJlIG1pZ2h0IGJlIG5vIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCwgdXNlCisgKiBzZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24gb24gRGVjaW1hbEZvcm1hdC4KKyAqIDxwPgorICogWW91IGNhbiBhbHNvIHVzZSBmb3JtcyBvZiB0aGUgPGNvZGU+cGFyc2U8L2NvZGU+IGFuZCA8Y29kZT5mb3JtYXQ8L2NvZGU+CisgKiBtZXRob2RzIHdpdGggPGNvZGU+UGFyc2VQb3NpdGlvbjwvY29kZT4gYW5kIDxjb2RlPkZpZWxkUG9zaXRpb248L2NvZGU+IHRvCisgKiBhbGxvdyB5b3UgdG86CisgKiA8dWw+CisgKiA8bGk+IHByb2dyZXNzaXZlbHkgcGFyc2UgdGhyb3VnaCBwaWVjZXMgb2YgYSBzdHJpbmcKKyAqIDxsaT4gYWxpZ24gdGhlIGRlY2ltYWwgcG9pbnQgYW5kIG90aGVyIGFyZWFzCisgKiA8L3VsPgorICogRm9yIGV4YW1wbGUsIHlvdSBjYW4gYWxpZ24gbnVtYmVycyBpbiB0d28gd2F5czoKKyAqIDxvbD4KKyAqIDxsaT4gSWYgeW91IGFyZSB1c2luZyBhIG1vbm9zcGFjZWQgZm9udCB3aXRoIHNwYWNpbmcgZm9yIGFsaWdubWVudCwKKyAqICAgICAgeW91IGNhbiBwYXNzIHRoZSA8Y29kZT5GaWVsZFBvc2l0aW9uPC9jb2RlPiBpbiB5b3VyIGZvcm1hdCBjYWxsLCB3aXRoCisgKiAgICAgIDxjb2RlPmZpZWxkPC9jb2RlPiA9IDxjb2RlPklOVEVHRVJfRklFTEQ8L2NvZGU+LiBPbiBvdXRwdXQsCisgKiAgICAgIDxjb2RlPmdldEVuZEluZGV4PC9jb2RlPiB3aWxsIGJlIHNldCB0byB0aGUgb2Zmc2V0IGJldHdlZW4gdGhlCisgKiAgICAgIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBpbnRlZ2VyIGFuZCB0aGUgZGVjaW1hbC4gQWRkCisgKiAgICAgIChkZXNpcmVkU3BhY2VDb3VudCAtIGdldEVuZEluZGV4KSBzcGFjZXMgYXQgdGhlIGZyb250IG9mIHRoZSBzdHJpbmcuCisgKgorICogPGxpPiBJZiB5b3UgYXJlIHVzaW5nIHByb3BvcnRpb25hbCBmb250cywKKyAqICAgICAgaW5zdGVhZCBvZiBwYWRkaW5nIHdpdGggc3BhY2VzLCBtZWFzdXJlIHRoZSB3aWR0aAorICogICAgICBvZiB0aGUgc3RyaW5nIGluIHBpeGVscyBmcm9tIHRoZSBzdGFydCB0byA8Y29kZT5nZXRFbmRJbmRleDwvY29kZT4uCisgKiAgICAgIFRoZW4gbW92ZSB0aGUgcGVuIGJ5CisgKiAgICAgIChkZXNpcmVkUGl4ZWxXaWR0aCAtIHdpZHRoVG9BbGlnbm1lbnRQb2ludCkgYmVmb3JlIGRyYXdpbmcgdGhlIHRleHQuCisgKiAgICAgIEl0IGFsc28gd29ya3Mgd2hlcmUgdGhlcmUgaXMgbm8gZGVjaW1hbCwgYnV0IHBvc3NpYmx5IGFkZGl0aW9uYWwKKyAqICAgICAgY2hhcmFjdGVycyBhdCB0aGUgZW5kLCBlLmcuLCB3aXRoIHBhcmVudGhlc2VzIGluIG5lZ2F0aXZlCisgKiAgICAgIG51bWJlcnM6ICIoMTIpIiBmb3IgLTEyLgorICogPC9vbD4KKyAqCisgKiA8aDQ+U3luY2hyb25pemF0aW9uPC9oND4KKyAqIDxwPgorICogTnVtYmVyIGZvcm1hdHMgYXJlIGdlbmVyYWxseSBub3Qgc3luY2hyb25pemVkLiBJdCBpcyByZWNvbW1lbmRlZCB0byBjcmVhdGUgCisgKiBzZXBhcmF0ZSBmb3JtYXQgaW5zdGFuY2VzIGZvciBlYWNoIHRocmVhZC4gSWYgbXVsdGlwbGUgdGhyZWFkcyBhY2Nlc3MgYSBmb3JtYXQKKyAqIGNvbmN1cnJlbnRseSwgaXQgbXVzdCBiZSBzeW5jaHJvbml6ZWQgZXh0ZXJuYWxseS4gCisgKiA8cD4KKyAqCisgKiA8aDQ+RGVjaW1hbEZvcm1hdDwvaDQ+CisgKiA8cD5EZWNpbWFsRm9ybWF0IGlzIHRoZSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBOdW1iZXJGb3JtYXQsIGFuZCB0aGUKKyAqIE51bWJlckZvcm1hdCBBUEkgaXMgZXNzZW50aWFsbHkgYW4gYWJzdHJhY3Rpb24gZnJvbSBEZWNpbWFsRm9ybWF0J3MgQVBJLgorICogUmVmZXIgdG8gRGVjaW1hbEZvcm1hdCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIEFQSS48L3A+CisgKgorICogc2VlICAgICAgICAgIERlY2ltYWxGb3JtYXQKKyAqIHNlZSAgICAgICAgICBqYXZhLnRleHQuQ2hvaWNlRm9ybWF0CisgKiBAYXV0aG9yICAgICAgIE1hcmsgRGF2aXMKKyAqIEBhdXRob3IgICAgICAgSGVsZW5hIFNoaWgKKyAqIEBhdXRob3IgICAgICAgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTnVtYmVyRm9ybWF0IGV4dGVuZHMgVUZvcm1hdCB7CisKKyAgICAvLyBDb25zdGFudHMgdXNlZCBieSBmYWN0b3J5IG1ldGhvZHMgdG8gc3BlY2lmeSBhIHN0eWxlIG9mIGZvcm1hdC4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTlVNQkVSU1RZTEUgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5DWVNUWUxFID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUEVSQ0VOVFNUWUxFID0gMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0NJRU5USUZJQ1NUWUxFID0gMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5URUdFUlNUWUxFID0gNDsKKworICAgIC8qKgorICAgICAqIEZpZWxkIGNvbnN0YW50IHVzZWQgdG8gY29uc3RydWN0IGEgRmllbGRQb3NpdGlvbiBvYmplY3QuIFNpZ25pZmllcyB0aGF0CisgICAgICogdGhlIHBvc2l0aW9uIG9mIHRoZSBpbnRlZ2VyIHBhcnQgb2YgYSBmb3JtYXR0ZWQgbnVtYmVyIHNob3VsZCBiZSByZXR1cm5lZC4KKyAgICAgKiBAc2VlIGphdmEudGV4dC5GaWVsZFBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5URUdFUl9GSUVMRCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBjb25zdGFudCB1c2VkIHRvIGNvbnN0cnVjdCBhIEZpZWxkUG9zaXRpb24gb2JqZWN0LiBTaWduaWZpZXMgdGhhdAorICAgICAqIHRoZSBwb3NpdGlvbiBvZiB0aGUgZnJhY3Rpb24gcGFydCBvZiBhIGZvcm1hdHRlZCBudW1iZXIgc2hvdWxkIGJlIHJldHVybmVkLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZpZWxkUG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGUkFDVElPTl9GSUVMRCA9IDE7CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5DSEFOR0VEPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEZvcm1hdCBhbiBvYmplY3QuICBDaGFuZ2U6IHJlY29nbml6ZXMgPGNvZGU+QmlnSW50ZWdlcjwvY29kZT4KKyAgICAgKiBhbmQgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gb2JqZWN0cy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChPYmplY3QgbnVtYmVyLAorCQkJICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorCQkJICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKQorICAgIHsKKyAgICAgICAgaWYgKG51bWJlciBpbnN0YW5jZW9mIExvbmcpIHsKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXQoKChMb25nKW51bWJlcikubG9uZ1ZhbHVlKCksIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIGluc3RhbmNlb2YgQmlnSW50ZWdlcikgeworICAgICAgICAgICAgcmV0dXJuIGZvcm1hdCgoQmlnSW50ZWdlcikgbnVtYmVyLCB0b0FwcGVuZFRvLCBwb3MpOworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgaW5zdGFuY2VvZiBqYXZhLm1hdGguQmlnRGVjaW1hbCkgeworICAgICAgICAgICAgcmV0dXJuIGZvcm1hdCgoamF2YS5tYXRoLkJpZ0RlY2ltYWwpIG51bWJlciwgdG9BcHBlbmRUbywgcG9zKTsKKy8vI2VuZGlmCisgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIGluc3RhbmNlb2YgY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsKSB7CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0KChjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwpIG51bWJlciwgdG9BcHBlbmRUbywgcG9zKTsKKyAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgaW5zdGFuY2VvZiBDdXJyZW5jeUFtb3VudCkgeworICAgICAgICAgICAgcmV0dXJuIGZvcm1hdCgoQ3VycmVuY3lBbW91bnQpbnVtYmVyLCB0b0FwcGVuZFRvLCBwb3MpOworICAgICAgICB9IGVsc2UgaWYgKG51bWJlciBpbnN0YW5jZW9mIE51bWJlcikgeworICAgICAgICAgICAgcmV0dXJuIGZvcm1hdCgoKE51bWJlciludW1iZXIpLmRvdWJsZVZhbHVlKCksIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDYW5ub3QgZm9ybWF0IGdpdmVuIE9iamVjdCBhcyBhIE51bWJlciIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIE9iamVjdCBwYXJzZU9iamVjdChTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlKHNvdXJjZSwgcGFyc2VQb3NpdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3BlY2lhbGl6YXRpb24gb2YgZm9ybWF0LgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0KQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0KGRvdWJsZSBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChudW1iZXIsbmV3IFN0cmluZ0J1ZmZlcigpLAorICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWVsZFBvc2l0aW9uKDApKS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNwZWNpYWxpemF0aW9uIG9mIGZvcm1hdC4KKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQjZm9ybWF0KE9iamVjdCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGZvcm1hdChsb25nIG51bWJlcikgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigxOSk7CisgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zID0gbmV3IEZpZWxkUG9zaXRpb24oMCk7CisgICAgICAgIGZvcm1hdChudW1iZXIsIGJ1ZiwgcG9zKTsKKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gZm9ybWF0IGEgQmlnSW50ZWdlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGZvcm1hdChCaWdJbnRlZ2VyIG51bWJlcikgeworICAgICAgICByZXR1cm4gZm9ybWF0KG51bWJlciwgbmV3IFN0cmluZ0J1ZmZlcigpLAorICAgICAgICAgICAgICAgICAgICAgIG5ldyBGaWVsZFBvc2l0aW9uKDApKS50b1N0cmluZygpOworICAgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRvIGZvcm1hdCBhIEJpZ0RlY2ltYWwuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoamF2YS5tYXRoLkJpZ0RlY2ltYWwgbnVtYmVyKSB7CisgICAgICAgIHJldHVybiBmb3JtYXQobnVtYmVyLCBuZXcgU3RyaW5nQnVmZmVyKCksCisgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpZWxkUG9zaXRpb24oMCkpLnRvU3RyaW5nKCk7CisgICAgfQorLy8jZW5kaWYKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gZm9ybWF0IGFuIElDVSBCaWdEZWNpbWFsLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZm9ybWF0KGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCBudW1iZXIpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdChudW1iZXIsIG5ldyBTdHJpbmdCdWZmZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICBuZXcgRmllbGRQb3NpdGlvbigwKSkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRvIGZvcm1hdCBhIEN1cnJlbmN5QW1vdW50LgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBmb3JtYXQoQ3VycmVuY3lBbW91bnQgY3VyckFtdCkgeworICAgICAgICByZXR1cm4gZm9ybWF0KGN1cnJBbXQsIG5ldyBTdHJpbmdCdWZmZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICBuZXcgRmllbGRQb3NpdGlvbigwKSkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsaXphdGlvbiBvZiBmb3JtYXQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nQnVmZmVyIGZvcm1hdChkb3VibGUgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKTsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWxpemF0aW9uIG9mIGZvcm1hdC4KKyAgICAgKiBAc2VlIGphdmEudGV4dC5Gb3JtYXQjZm9ybWF0KE9iamVjdCwgU3RyaW5nQnVmZmVyLCBGaWVsZFBvc2l0aW9uKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBTdHJpbmdCdWZmZXIgZm9ybWF0KGxvbmcgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKTsKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBGb3JtYXQgYSBCaWdJbnRlZ2VyLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0LCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZ0J1ZmZlciBmb3JtYXQoQmlnSW50ZWdlciBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpOyAKKy8vI2lmbmRlZiBGT1VOREFUSU9OCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEZvcm1hdCBhIEJpZ0RlY2ltYWwuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nQnVmZmVyIGZvcm1hdChqYXZhLm1hdGguQmlnRGVjaW1hbCBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpOworLy8jZW5kaWYKKworICAgIC8qKgorICAgICAqIDxzdHJvbmc+PGZvbnQgZmFjZT1oZWx2ZXRpY2EgY29sb3I9cmVkPk5FVzwvZm9udD48L3N0cm9uZz4KKyAgICAgKiBGb3JtYXQgYSBCaWdEZWNpbWFsLgorICAgICAqIEBzZWUgamF2YS50ZXh0LkZvcm1hdCNmb3JtYXQoT2JqZWN0LCBTdHJpbmdCdWZmZXIsIEZpZWxkUG9zaXRpb24pCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZ0J1ZmZlciBmb3JtYXQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcyk7CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogRm9ybWF0IGEgQ3VycmVuY3lBbW91bnQuCisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I2Zvcm1hdChPYmplY3QsIFN0cmluZ0J1ZmZlciwgRmllbGRQb3NpdGlvbikKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KEN1cnJlbmN5QW1vdW50IGN1cnJBbXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgLy8gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiAtLSBzdWJjbGFzc2VzIG1heSBvdmVycmlkZQorICAgICAgICBDdXJyZW5jeSBzYXZlID0gZ2V0Q3VycmVuY3koKSwgY3VyciA9IGN1cnJBbXQuZ2V0Q3VycmVuY3koKTsKKyAgICAgICAgYm9vbGVhbiBzYW1lID0gY3Vyci5lcXVhbHMoc2F2ZSk7CisgICAgICAgIGlmICghc2FtZSkgc2V0Q3VycmVuY3koY3Vycik7CisgICAgICAgIGZvcm1hdChjdXJyQW10LmdldE51bWJlcigpLCB0b0FwcGVuZFRvLCBwb3MpOworICAgICAgICBpZiAoIXNhbWUpIHNldEN1cnJlbmN5KHNhdmUpOworICAgICAgICByZXR1cm4gdG9BcHBlbmRUbzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgTG9uZyBpZiBwb3NzaWJsZSAoZS5nLiwgd2l0aGluIHRoZSByYW5nZSBbTG9uZy5NSU5fVkFMVUUsCisgICAgICogTG9uZy5NQVhfVkFMVUVdIGFuZCB3aXRoIG5vIGRlY2ltYWxzKSwgb3RoZXJ3aXNlIGEgRG91YmxlLgorICAgICAqIElmIEludGVnZXJPbmx5IGlzIHNldCwgd2lsbCBzdG9wIGF0IGEgZGVjaW1hbAorICAgICAqIHBvaW50IChvciBlcXVpdmFsZW50OyBlLmcuLCBmb3IgcmF0aW9uYWwgbnVtYmVycyAiMSAyLzMiLCB3aWxsIHN0b3AKKyAgICAgKiBhZnRlciB0aGUgMSkuCisgICAgICogRG9lcyBub3QgdGhyb3cgYW4gZXhjZXB0aW9uOyBpZiBubyBvYmplY3QgY2FuIGJlIHBhcnNlZCwgaW5kZXggaXMKKyAgICAgKiB1bmNoYW5nZWQhCisgICAgICogQHNlZSAjaXNQYXJzZUludGVnZXJPbmx5CisgICAgICogQHNlZSBqYXZhLnRleHQuRm9ybWF0I3BhcnNlT2JqZWN0KFN0cmluZywgUGFyc2VQb3NpdGlvbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgTnVtYmVyIHBhcnNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBhcnNlUG9zaXRpb24pOworCisgICAgLyoqCisgICAgICogUGFyc2VzIHRleHQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBnaXZlbiBzdHJpbmcgdG8gcHJvZHVjZSBhIG51bWJlci4KKyAgICAgKiBUaGUgbWV0aG9kIG1pZ2h0IG5vdCB1c2UgdGhlIGVudGlyZSB0ZXh0IG9mIHRoZSBnaXZlbiBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCBBIFN0cmluZyB3aG9zZSBiZWdpbm5pbmcgc2hvdWxkIGJlIHBhcnNlZC4KKyAgICAgKiBAcmV0dXJuIEEgTnVtYmVyIHBhcnNlZCBmcm9tIHRoZSBzdHJpbmcuCisgICAgICogQGV4Y2VwdGlvbiBQYXJzZUV4Y2VwdGlvbiBpZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzcGVjaWZpZWQgc3RyaW5nIAorICAgICAqIGNhbm5vdCBiZSBwYXJzZWQuCisgICAgICogQHNlZSAjZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgLy9CdWcgNDM3NTM5OSBbUmljaGFyZC9HQ0xdCisgICAgcHVibGljIE51bWJlciBwYXJzZShTdHJpbmcgdGV4dCkgdGhyb3dzIFBhcnNlRXhjZXB0aW9uIHsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwYXJzZVBvc2l0aW9uID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIE51bWJlciByZXN1bHQgPSBwYXJzZSh0ZXh0LCBwYXJzZVBvc2l0aW9uKTsKKyAgICAgICAgaWYgKHBhcnNlUG9zaXRpb24uZ2V0SW5kZXgoKSA9PSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2VFeGNlcHRpb24oIlVucGFyc2VhYmxlIG51bWJlcjogXCIiICsgdGV4dCArICciJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZVBvc2l0aW9uLmdldEVycm9ySW5kZXgoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUGFyc2VzIHRleHQgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nIGFzIGEgQ3VycmVuY3lBbW91bnQuICBVbmxpa2UKKyAgICAgKiB0aGUgcGFyc2UoKSBtZXRob2QsIHRoaXMgbWV0aG9kIHdpbGwgYXR0ZW1wdCB0byBwYXJzZSBhIGdlbmVyaWMKKyAgICAgKiBjdXJyZW5jeSBuYW1lLCBzZWFyY2hpbmcgZm9yIGEgbWF0Y2ggb2YgdGhpcyBvYmplY3QncyBsb2NhbGUncworICAgICAqIGN1cnJlbmN5IGRpc3BsYXkgbmFtZXMsIG9yIGZvciBhIDMtbGV0dGVyIElTTyBjdXJyZW5jeSBjb2RlLgorICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgZmFpbCBpZiB0aGlzIGZvcm1hdCBpcyBub3QgYSBjdXJyZW5jeSBmb3JtYXQsCisgICAgICogdGhhdCBpcywgaWYgaXQgZG9lcyBub3QgY29udGFpbiB0aGUgY3VycmVuY3kgcGF0dGVybiBzeW1ib2wKKyAgICAgKiAoVSswMEE0KSBpbiBpdHMgcHJlZml4IG9yIHN1ZmZpeC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBzdHJpbmcgdG8gcGFyc2UKKyAgICAgKiBAcGFyYW0gcG9zIGlucHV0LW91dHB1dCBwb3NpdGlvbjsgb24gaW5wdXQsIHRoZSBwb3NpdGlvbiB3aXRoaW4KKyAgICAgKiB0ZXh0IHRvIG1hdGNoOyBtdXN0IGhhdmUgMCA8PSBwb3MuZ2V0SW5kZXgoKSA8IHRleHQubGVuZ3RoKCk7CisgICAgICogb24gb3V0cHV0LCB0aGUgcG9zaXRpb24gYWZ0ZXIgdGhlIGxhc3QgbWF0Y2hlZCBjaGFyYWN0ZXIuIElmCisgICAgICogdGhlIHBhcnNlIGZhaWxzLCB0aGUgcG9zaXRpb24gaW4gdW5jaGFuZ2VkIHVwb24gb3V0cHV0LgorICAgICAqIEByZXR1cm4gYSBDdXJyZW5jeUFtb3VudCwgb3IgbnVsbCB1cG9uIGZhaWx1cmUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBDdXJyZW5jeUFtb3VudCBwYXJzZUN1cnJlbmN5KFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBvcykgeworICAgICAgICAvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9uIG9ubHkgLS0gc3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUKKyAgICAgICAgTnVtYmVyIG4gPSBwYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICByZXR1cm4gbiA9PSBudWxsID8gbnVsbCA6IG5ldyBDdXJyZW5jeUFtb3VudChuLCBnZXRFZmZlY3RpdmVDdXJyZW5jeSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBmb3JtYXQgd2lsbCBwYXJzZSBudW1iZXJzIGFzIGludGVnZXJzIG9ubHkuCisgICAgICogRm9yIGV4YW1wbGUgaW4gdGhlIEVuZ2xpc2ggbG9jYWxlLCB3aXRoIFBhcnNlSW50ZWdlck9ubHkgdHJ1ZSwgdGhlCisgICAgICogc3RyaW5nICIxMjM0LiIgd291bGQgYmUgcGFyc2VkIGFzIHRoZSBpbnRlZ2VyIHZhbHVlIDEyMzQgYW5kIHBhcnNpbmcKKyAgICAgKiB3b3VsZCBzdG9wIGF0IHRoZSAiLiIgY2hhcmFjdGVyLiAgVGhlIGRlY2ltYWwgc2VwYXJhdG9yIGFjY2VwdGVkCisgICAgICogYnkgdGhlIHBhcnNlIG9wZXJhdGlvbiBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBkZXRlcm1pbmVkIGJ5IHRoZQorICAgICAqIHN1YmNsYXNzLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIHdpbGwgcGFyc2UgaW50ZWdlcnMgb25seQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzUGFyc2VJbnRlZ2VyT25seSgpIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlSW50ZWdlck9ubHk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIG9yIG5vdCBudW1iZXJzIHNob3VsZCBiZSBwYXJzZWQgYXMgaW50ZWdlcnMgb25seS4KKyAgICAgKiBAcGFyYW0gdmFsdWUgdHJ1ZSBpZiB0aGlzIHNob3VsZCBwYXJzZSBpbnRlZ2VycyBvbmx5CisgICAgICogQHNlZSAjaXNQYXJzZUludGVnZXJPbmx5CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGFyc2VJbnRlZ2VyT25seShib29sZWFuIHZhbHVlKSB7CisgICAgICAgIHBhcnNlSW50ZWdlck9ubHkgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09IExvY2FsZSBTdHVmZiA9PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlZmF1bHQgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogVGhlIGRlZmF1bHQgZm9ybWF0IGlzIG9uZSBvZiB0aGUgc3R5bGVzIHByb3ZpZGVkIGJ5IHRoZSBvdGhlcgorICAgICAqIGZhY3RvcnkgbWV0aG9kczogZ2V0TnVtYmVySW5zdGFuY2UsIGdldEludGVnZXJJbnN0YW5jZSwKKyAgICAgKiBnZXRDdXJyZW5jeUluc3RhbmNlIG9yIGdldFBlcmNlbnRJbnN0YW5jZS4KKyAgICAgKiBFeGFjdGx5IHdoaWNoIG9uZSBpcyBsb2NhbGUtZGVwZW5kZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIC8vQnVnIDQ0MDgwNjYgW1JpY2hhcmQvR0NMXQorICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIE5VTUJFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZWZhdWx0IG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoZSBkZWZhdWx0IGZvcm1hdCBpcyBvbmUgb2YgdGhlIHN0eWxlcyBwcm92aWRlZCBieSB0aGUgb3RoZXIKKyAgICAgKiBmYWN0b3J5IG1ldGhvZHM6IGdldE51bWJlckluc3RhbmNlLCBnZXRDdXJyZW5jeUluc3RhbmNlIG9yIGdldFBlcmNlbnRJbnN0YW5jZS4KKyAgICAgKiBFeGFjdGx5IHdoaWNoIG9uZSBpcyBsb2NhbGUtZGVwZW5kZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBOVU1CRVJTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZGVmYXVsdCBudW1iZXIgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBUaGUgZGVmYXVsdCBmb3JtYXQgaXMgb25lIG9mIHRoZSBzdHlsZXMgcHJvdmlkZWQgYnkgdGhlIG90aGVyCisgICAgICogZmFjdG9yeSBtZXRob2RzOiBnZXROdW1iZXJJbnN0YW5jZSwgZ2V0Q3VycmVuY3lJbnN0YW5jZSBvciBnZXRQZXJjZW50SW5zdGFuY2UuCisgICAgICogRXhhY3RseSB3aGljaCBvbmUgaXMgbG9jYWxlLWRlcGVuZGVudC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEluc3RhbmNlKFVMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGluTG9jYWxlLCBOVU1CRVJTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGdlbmVyYWwtcHVycG9zZSBudW1iZXIgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIE51bWJlckZvcm1hdCBnZXROdW1iZXJJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBOVU1CRVJTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGdlbmVyYWwtcHVycG9zZSBudW1iZXIgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXROdW1iZXJJbnN0YW5jZShMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKGluTG9jYWxlKSwgTlVNQkVSU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBnZW5lcmFsLXB1cnBvc2UgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXROdW1iZXJJbnN0YW5jZShVTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgTlVNQkVSU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaW50ZWdlciBudW1iZXIgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4gVGhlCisgICAgICogcmV0dXJuZWQgbnVtYmVyIGZvcm1hdCBpcyBjb25maWd1cmVkIHRvIHJvdW5kIGZsb2F0aW5nIHBvaW50IG51bWJlcnMKKyAgICAgKiB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIHVzaW5nIElFRUUgaGFsZi1ldmVuIHJvdW5kaW5nIChzZWUge0BsaW5rIAorICAgICAqIGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbCNST1VORF9IQUxGX0VWRU4gUk9VTkRfSEFMRl9FVkVOfSkgZm9yIGZvcm1hdHRpbmcsCisgICAgICogYW5kIHRvIHBhcnNlIG9ubHkgdGhlIGludGVnZXIgcGFydCBvZiBhbiBpbnB1dCBzdHJpbmcgKHNlZSB7QGxpbmsKKyAgICAgKiAjaXNQYXJzZUludGVnZXJPbmx5IGlzUGFyc2VJbnRlZ2VyT25seX0pLgorICAgICAqCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGludGVnZXIgdmFsdWVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgLy9CdWcgNDQwODA2NiBbUmljaGFyZC9HQ0xdCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW50ZWdlckluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIElOVEVHRVJTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpbnRlZ2VyIG51bWJlciBmb3JtYXQgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLiBUaGUKKyAgICAgKiByZXR1cm5lZCBudW1iZXIgZm9ybWF0IGlzIGNvbmZpZ3VyZWQgdG8gcm91bmQgZmxvYXRpbmcgcG9pbnQgbnVtYmVycworICAgICAqIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgdXNpbmcgSUVFRSBoYWxmLWV2ZW4gcm91bmRpbmcgKHNlZSB7QGxpbmsgCisgICAgICogY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsI1JPVU5EX0hBTEZfRVZFTiBST1VORF9IQUxGX0VWRU59KSBmb3IgZm9ybWF0dGluZywKKyAgICAgKiBhbmQgdG8gcGFyc2Ugb25seSB0aGUgaW50ZWdlciBwYXJ0IG9mIGFuIGlucHV0IHN0cmluZyAoc2VlIHtAbGluaworICAgICAqICNpc1BhcnNlSW50ZWdlck9ubHkgaXNQYXJzZUludGVnZXJPbmx5fSkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5Mb2NhbGUgdGhlIGxvY2FsZSBmb3Igd2hpY2ggYSBudW1iZXIgZm9ybWF0IGlzIG5lZWRlZAorICAgICAqIEByZXR1cm4gYSBudW1iZXIgZm9ybWF0IGZvciBpbnRlZ2VyIHZhbHVlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIC8vQnVnIDQ0MDgwNjYgW1JpY2hhcmQvR0NMXQorICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEludGVnZXJJbnN0YW5jZShMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKGluTG9jYWxlKSwgSU5URUdFUlNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGludGVnZXIgbnVtYmVyIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuIFRoZQorICAgICAqIHJldHVybmVkIG51bWJlciBmb3JtYXQgaXMgY29uZmlndXJlZCB0byByb3VuZCBmbG9hdGluZyBwb2ludCBudW1iZXJzCisgICAgICogdG8gdGhlIG5lYXJlc3QgaW50ZWdlciB1c2luZyBJRUVFIGhhbGYtZXZlbiByb3VuZGluZyAoc2VlIHtAbGluayAKKyAgICAgKiBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWwjUk9VTkRfSEFMRl9FVkVOIFJPVU5EX0hBTEZfRVZFTn0pIGZvciBmb3JtYXR0aW5nLAorICAgICAqIGFuZCB0byBwYXJzZSBvbmx5IHRoZSBpbnRlZ2VyIHBhcnQgb2YgYW4gaW5wdXQgc3RyaW5nIChzZWUge0BsaW5rCisgICAgICogI2lzUGFyc2VJbnRlZ2VyT25seSBpc1BhcnNlSW50ZWdlck9ubHl9KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbkxvY2FsZSB0aGUgbG9jYWxlIGZvciB3aGljaCBhIG51bWJlciBmb3JtYXQgaXMgbmVlZGVkCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGludGVnZXIgdmFsdWVzCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXRJbnRlZ2VySW5zdGFuY2UoVUxvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoaW5Mb2NhbGUsIElOVEVHRVJTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGN1cnJlbmN5IGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIGN1cnJlbmN5CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0Q3VycmVuY3lJbnN0YW5jZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZ2V0RGVmYXVsdCgpLCBDVVJSRU5DWVNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY3VycmVuY3kgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgY3VycmVuY3kKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXRDdXJyZW5jeUluc3RhbmNlKExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5mb3JMb2NhbGUoaW5Mb2NhbGUpLCBDVVJSRU5DWVNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY3VycmVuY3kgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgY3VycmVuY3kKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldEN1cnJlbmN5SW5zdGFuY2UoVUxvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoaW5Mb2NhbGUsIENVUlJFTkNZU1RZTEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBwZXJjZW50YWdlIGZvcm1hdCBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIG51bWJlciBmb3JtYXQgZm9yIHBlcmNlbnRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0UGVyY2VudEluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIFBFUkNFTlRTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHBlcmNlbnRhZ2UgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgcGVyY2VudHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXRQZXJjZW50SW5zdGFuY2UoTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZShpbkxvY2FsZSksIFBFUkNFTlRTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHBlcmNlbnRhZ2UgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgbnVtYmVyIGZvcm1hdCBmb3IgcGVyY2VudHMKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldFBlcmNlbnRJbnN0YW5jZShVTG9jYWxlIGluTG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShpbkxvY2FsZSwgUEVSQ0VOVFNUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJucyBhIHNjaWVudGlmaWMgZm9ybWF0IGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgc2NpZW50aWZpYyBudW1iZXIgZm9ybWF0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0U2NpZW50aWZpY0luc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVUxvY2FsZS5nZXREZWZhdWx0KCksIFNDSUVOVElGSUNTVFlMRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIFJldHVybnMgYSBzY2llbnRpZmljIGZvcm1hdCBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHJldHVybiBhIHNjaWVudGlmaWMgbnVtYmVyIGZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTnVtYmVyRm9ybWF0IGdldFNjaWVudGlmaWNJbnN0YW5jZShMb2NhbGUgaW5Mb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFVMb2NhbGUuZm9yTG9jYWxlKGluTG9jYWxlKSwgU0NJRU5USUZJQ1NUWUxFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogUmV0dXJucyBhIHNjaWVudGlmaWMgZm9ybWF0IGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgc2NpZW50aWZpYyBudW1iZXIgZm9ybWF0CisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE51bWJlckZvcm1hdCBnZXRTY2llbnRpZmljSW5zdGFuY2UoVUxvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoaW5Mb2NhbGUsIFNDSUVOVElGSUNTVFlMRSk7CisgICAgfQorCisgICAgLy8gPT09PT0gRmFjdG9yeSBzdHVmZiA9PT09PQorICAgIC8qKgorICAgICAqIEEgTnVtYmVyRm9ybWF0RmFjdG9yeSBpcyB1c2VkIHRvIHJlZ2lzdGVyIG5ldyBudW1iZXIgZm9ybWF0cy4gIFRoZSBmYWN0b3J5CisgICAgICogc2hvdWxkIGJlIGFibGUgdG8gY3JlYXRlIGFueSBvZiB0aGUgcHJlZGVmaW5lZCBmb3JtYXRzIGZvciBlYWNoIGxvY2FsZSBpdAorICAgICAqIHN1cHBvcnRzLiAgV2hlbiByZWdpc3RlcmVkLCB0aGUgbG9jYWxlcyBpdCBzdXBwb3J0cyBleHRlbmQgb3Igb3ZlcnJpZGUgdGhlCisgICAgICogbG9jYWxlcyBhbHJlYWR5IHN1cHBvcnRlZCBieSBJQ1UuCisgICAgICogPHA+PGI+Tm90ZTo8L2I+IGFzIG9mIElDVTRKIDMuMiwgdGhlIGRlZmF1bHQgQVBJIGZvciBOdW1iZXJGb3JtYXRGYWN0b3J5IHVzZXMKKyAgICAgKiBVTG9jYWxlIGluc3RlYWQgb2YgTG9jYWxlLiAgSW5zdGVhZCBvZiBvdmVycmlkaW5nIGNyZWF0ZUZvcm1hdChMb2NhbGUsIGludCksCisgICAgICogbmV3IGltcGxlbWVudGF0aW9ucyBzaG91bGQgb3ZlcnJpZGUgY3JlYXRlRmFjdG9yeShVTG9jYWxlLCBpbnQpLiAgTm90ZSB0aGF0CisgICAgICogb25lIG9mIHRoZXNlIHR3byBtZXRob2RzIDxiPk1VU1Q8L2I+IGJlIG92ZXJyaWRkZW4gb3IgZWxzZSBhbiBpbmZpbml0ZQorICAgICAqIGxvb3Agd2lsbCBvY2N1ci4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgTnVtYmVyRm9ybWF0RmFjdG9yeSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBWYWx1ZSBwYXNzZWQgdG8gZm9ybWF0IHJlcXVlc3RpbmcgYSBkZWZhdWx0IG51bWJlciBmb3JtYXQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRk9STUFUX05VTUJFUiA9IE5VTUJFUlNUWUxFOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBWYWx1ZSBwYXNzZWQgdG8gZm9ybWF0IHJlcXVlc3RpbmcgYSBjdXJyZW5jeSBmb3JtYXQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRk9STUFUX0NVUlJFTkNZID0gQ1VSUkVOQ1lTVFlMRTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVmFsdWUgcGFzc2VkIHRvIGZvcm1hdCByZXF1ZXN0aW5nIGEgcGVyY2VudCBmb3JtYXQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRk9STUFUX1BFUkNFTlQgPSBQRVJDRU5UU1RZTEU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbHVlIHBhc3NlZCB0byBmb3JtYXQgcmVxdWVzdGluZyBhIHNjaWVudGlmaWMgZm9ybWF0LgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZPUk1BVF9TQ0lFTlRJRklDID0gU0NJRU5USUZJQ1NUWUxFOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBWYWx1ZSBwYXNzZWQgdG8gZm9ybWF0IHJlcXVlc3RpbmcgYW4gaW50ZWdlciBmb3JtYXQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRk9STUFUX0lOVEVHRVIgPSBJTlRFR0VSU1RZTEU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGZhY3RvcnkgaXMgdmlzaWJsZS4gIERlZmF1bHQgaXMgdHJ1ZS4KKyAgICAgICAgICogSWYgbm90IHZpc2libGUsIHRoZSBsb2NhbGVzIHN1cHBvcnRlZCBieSB0aGlzIGZhY3Rvcnkgd2lsbCBub3QKKyAgICAgICAgICogYmUgbGlzdGVkIGJ5IGdldEF2YWlsYWJsZUxvY2FsZXMuICBUaGlzIHZhbHVlIG11c3Qgbm90IGNoYW5nZS4KKyAgICAgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBmYWN0b3J5IGlzIHZpc2libGUuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICBwdWJsaWMgYm9vbGVhbiB2aXNpYmxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgYW4gaW1tdXRhYmxlIGNvbGxlY3Rpb24gb2YgdGhlIGxvY2FsZSBuYW1lcyBkaXJlY3RseSAKKyAgICAgICAgICogc3VwcG9ydGVkIGJ5IHRoaXMgZmFjdG9yeS4KKyAgICAgICAgICogQHJldHVybiB0aGUgc3VwcG9ydGVkIGxvY2FsZSBuYW1lcy4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICAgcHVibGljIGFic3RyYWN0IFNldCBnZXRTdXBwb3J0ZWRMb2NhbGVOYW1lcygpOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIGEgbnVtYmVyIGZvcm1hdCBvZiB0aGUgYXBwcm9wcmlhdGUgdHlwZS4gIElmIHRoZSBsb2NhbGUKKyAgICAgICAgICogaXMgbm90IHN1cHBvcnRlZCwgcmV0dXJuIG51bGwuICBJZiB0aGUgbG9jYWxlIGlzIHN1cHBvcnRlZCwgYnV0CisgICAgICAgICAqIHRoZSB0eXBlIGlzIG5vdCBwcm92aWRlZCBieSB0aGlzIHNlcnZpY2UsIHJldHVybiBudWxsLiAgT3RoZXJ3aXNlCisgICAgICAgICAqIHJldHVybiBhbiBhcHByb3ByaWF0ZSBpbnN0YW5jZSBvZiBOdW1iZXJGb3JtYXQuCisgICAgICAgICAqIDxiPk5vdGU6PC9iPiBhcyBvZiBJQ1U0SiAzLjIsIGltcGxlbWVudGF0aW9ucyBzaG91bGQgb3ZlcnJpZGUKKyAgICAgICAgICogdGhpcyBtZXRob2QgaW5zdGVhZCBvZiBjcmVhdGVGb3JtYXQoTG9jYWxlLCBpbnQpLgorICAgICAgICAgKiBAcGFyYW0gbG9jIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHRvIGNyZWF0ZSB0aGUgZm9ybWF0CisgICAgICAgICAqIEBwYXJhbSBmb3JtYXRUeXBlIHRoZSB0eXBlIG9mIGZvcm1hdAorICAgICAgICAgKiBAcmV0dXJuIHRoZSBOdW1iZXJGb3JtYXQsIG9yIG51bGwuCisgICAgICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIE51bWJlckZvcm1hdCBjcmVhdGVGb3JtYXQoVUxvY2FsZSBsb2MsIGludCBmb3JtYXRUeXBlKSB7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlRm9ybWF0KGxvYy50b0xvY2FsZSgpLCBmb3JtYXRUeXBlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIGEgbnVtYmVyIGZvcm1hdCBvZiB0aGUgYXBwcm9wcmlhdGUgdHlwZS4gIElmIHRoZSBsb2NhbGUKKyAgICAgICAgICogaXMgbm90IHN1cHBvcnRlZCwgcmV0dXJuIG51bGwuICBJZiB0aGUgbG9jYWxlIGlzIHN1cHBvcnRlZCwgYnV0CisgICAgICAgICAqIHRoZSB0eXBlIGlzIG5vdCBwcm92aWRlZCBieSB0aGlzIHNlcnZpY2UsIHJldHVybiBudWxsLiAgT3RoZXJ3aXNlCisgICAgICAgICAqIHJldHVybiBhbiBhcHByb3ByaWF0ZSBpbnN0YW5jZSBvZiBOdW1iZXJGb3JtYXQuCisgICAgICAgICAqIDxiPk5vdGU6PC9iPiBhcyBvZiBJQ1U0SiAzLjIsIGNyZWF0ZUZvcm1hdChVTG9jYWxlLCBpbnQpIHNob3VsZCBiZQorICAgICAgICAgKiBvdmVycmlkZGVuIGluc3RlYWQgb2YgdGhpcyBtZXRob2QuICBUaGlzIG1ldGhvZCBpcyBubyBsb25nZXIgCisgICAgICAgICAqIGFic3RyYWN0IGFuZCBkZWxlZ2F0ZXMgdG8gdGhhdCBtZXRob2QuCisgICAgICAgICAqIEBwYXJhbSBsb2MgdGhlIGxvY2FsZSBmb3Igd2hpY2ggdG8gY3JlYXRlIHRoZSBmb3JtYXQKKyAgICAgICAgICogQHBhcmFtIGZvcm1hdFR5cGUgdGhlIHR5cGUgb2YgZm9ybWF0CisgICAgICAgICAqIEByZXR1cm4gdGhlIE51bWJlckZvcm1hdCwgb3IgbnVsbC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgTnVtYmVyRm9ybWF0IGNyZWF0ZUZvcm1hdChMb2NhbGUgbG9jLCBpbnQgZm9ybWF0VHlwZSkgeworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUZvcm1hdChVTG9jYWxlLmZvckxvY2FsZShsb2MpLCBmb3JtYXRUeXBlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBOdW1iZXJGb3JtYXRGYWN0b3J5KCkgeworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBOdW1iZXJGb3JtYXRGYWN0b3J5IHRoYXQgc3VwcG9ydHMgYSBzaW5nbGUgbG9jYWxlLiAgSXQgY2FuIGJlIHZpc2libGUgb3IgaW52aXNpYmxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgU2ltcGxlTnVtYmVyRm9ybWF0RmFjdG9yeSBleHRlbmRzIE51bWJlckZvcm1hdEZhY3RvcnkgeworICAgICAgICBmaW5hbCBTZXQgbG9jYWxlTmFtZXM7CisgICAgICAgIGZpbmFsIGJvb2xlYW4gdmlzaWJsZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU2ltcGxlTnVtYmVyRm9ybWF0RmFjdG9yeShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgICAgICB0aGlzKGxvY2FsZSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5KExvY2FsZSBsb2NhbGUsIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICAgICAgbG9jYWxlTmFtZXMgPSBDb2xsZWN0aW9ucy5zaW5nbGV0b24oVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKS5nZXRCYXNlTmFtZSgpKTsKKyAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHZpc2libGU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU2ltcGxlTnVtYmVyRm9ybWF0RmFjdG9yeShVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICAgICAgdGhpcyhsb2NhbGUsIHRydWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogQGRyYWZ0IElDVSAzLjIKKwkgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTaW1wbGVOdW1iZXJGb3JtYXRGYWN0b3J5KFVMb2NhbGUgbG9jYWxlLCBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgICAgIGxvY2FsZU5hbWVzID0gQ29sbGVjdGlvbnMuc2luZ2xldG9uKGxvY2FsZS5nZXRCYXNlTmFtZSgpKTsKKyAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHZpc2libGU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiB2aXNpYmxlKCkgeworICAgICAgICAgICAgcmV0dXJuIHZpc2libGU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgU2V0IGdldFN1cHBvcnRlZExvY2FsZU5hbWVzKCkgeworICAgICAgICAgICAgcmV0dXJuIGxvY2FsZU5hbWVzOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gc2hpbSBzbyB3ZSBjYW4gYnVpbGQgd2l0aG91dCBzZXJ2aWNlIGNvZGUKKyAgICBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgTnVtYmVyRm9ybWF0U2hpbSB7CisgICAgICAgIGFic3RyYWN0IExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICAgICAgYWJzdHJhY3QgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgICAgIGFic3RyYWN0IE9iamVjdCByZWdpc3RlckZhY3RvcnkoTnVtYmVyRm9ybWF0RmFjdG9yeSBmKTsKKyAgICAgICAgYWJzdHJhY3QgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCBrKTsKKyAgICAgICAgYWJzdHJhY3QgTnVtYmVyRm9ybWF0IGNyZWF0ZUluc3RhbmNlKFVMb2NhbGUgbCwgaW50IGspOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIE51bWJlckZvcm1hdFNoaW0gc2hpbTsKKyAgICBwcml2YXRlIHN0YXRpYyBOdW1iZXJGb3JtYXRTaGltIGdldFNoaW0oKSB7CisgICAgICAgIC8vIE5vdGU6IHRoaXMgaW5zdGFudGlhdGlvbiBpcyBzYWZlIG9uIGxvb3NlLW1lbW9yeS1tb2RlbCBjb25maWd1cmF0aW9ucworICAgICAgICAvLyBkZXNwaXRlIGxhY2sgb2Ygc3luY2hyb25pemF0aW9uLCBzaW5jZSB0aGUgc2hpbSBpbnN0YW5jZSBoYXMgbm8gc3RhdGUtLQorICAgICAgICAvLyBpdCdzIGFsbCBpbiB0aGUgY2xhc3MgaW5pdC4gIFRoZSB3b3JzdCBwcm9ibGVtIGlzIHdlIG1pZ2h0IGluc3RhbnRpYXRlCisgICAgICAgIC8vIHR3byBzaGltIGluc3RhbmNlcywgYnV0IHRoZXknbGwgc2hhcmUgdGhlIHNhbWUgc3RhdGUgc28gdGhhdCdzIG9rLgorICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENsYXNzIGNscyA9IENsYXNzLmZvck5hbWUoImNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0U2VydmljZVNoaW0iKTsKKyAgICAgICAgICAgICAgICBzaGltID0gKE51bWJlckZvcm1hdFNoaW0pY2xzLm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpeworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICAgICAvLyBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2hpbTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGxpc3Qgb2YgTG9jYWxlcyBmb3Igd2hpY2ggTnVtYmVyRm9ybWF0cyBhcmUgYXZhaWxhYmxlLgorICAgICAqIEByZXR1cm4gdGhlIGF2YWlsYWJsZSBsb2NhbGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGxpc3Qgb2YgTG9jYWxlcyBmb3Igd2hpY2ggTnVtYmVyRm9ybWF0cyBhcmUgYXZhaWxhYmxlLgorICAgICAqIEByZXR1cm4gdGhlIGF2YWlsYWJsZSBsb2NhbGVzCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZVVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBnZXRTaGltKCkuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgYSBuZXcgTnVtYmVyRm9ybWF0RmFjdG9yeS4gIFRoZSBmYWN0b3J5IGlzIGFkb3B0ZWQgYnkKKyAgICAgKiB0aGUgc2VydmljZSBhbmQgbXVzdCBub3QgYmUgbW9kaWZpZWQuICBUaGUgcmV0dXJuZWQgb2JqZWN0IGlzIGEKKyAgICAgKiBrZXkgdGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgZmFjdG9yeS4KKyAgICAgKiBAcGFyYW0gZmFjdG9yeSB0aGUgZmFjdG9yeSB0byByZWdpc3RlcgorICAgICAqIEByZXR1cm4gYSBrZXkgd2l0aCB3aGljaCB0byB1bnJlZ2lzdGVyIHRoZSBmYWN0b3J5CisgICAgICogQHN0YWJsZSBJQ1UgMi42IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgT2JqZWN0IHJlZ2lzdGVyRmFjdG9yeShOdW1iZXJGb3JtYXRGYWN0b3J5IGZhY3RvcnkpIHsKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiZmFjdG9yeSBtdXN0IG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5yZWdpc3RlckZhY3RvcnkoZmFjdG9yeSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciB0aGUgZmFjdG9yeSBvciBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBrZXkgKG9idGFpbmVkIGZyb20KKyAgICAgKiByZWdpc3Rlckluc3RhbmNlIG9yIHJlZ2lzdGVyRmFjdG9yeSkuCisgICAgICogQHBhcmFtIHJlZ2lzdHJ5S2V5IGEga2V5IG9idGFpbmVkIGZyb20gcmVnaXN0ZXJGYWN0b3J5CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvYmplY3Qgd2FzIHN1Y2Nlc3NmdWxseSB1bnJlZ2lzdGVyZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3QgcmVnaXN0cnlLZXkpIHsKKyAgICAgICAgaWYgKHJlZ2lzdHJ5S2V5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJlZ2lzdHJ5S2V5IG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzaGltID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzaGltLnVucmVnaXN0ZXIocmVnaXN0cnlLZXkpOworICAgIH0KKworICAgIC8vID09PT09IEVuZCBvZiBmYWN0b3J5IHN0dWZmID09PT09CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgaGFzaENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gbWF4aW11bUludGVnZXJEaWdpdHMgKiAzNyArIG1heEZyYWN0aW9uRGlnaXRzOworICAgICAgICAvLyBqdXN0IGVub3VnaCBmaWVsZHMgZm9yIGEgcmVhc29uYWJsZSBkaXN0cmlidXRpb24KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgZXF1YWxzLiAgVHdvIE51bWJlckZvcm1hdHMgYXJlIGVxdWFsIGlmIHRoZXkgYXJlIG9mIHRoZSBzYW1lIGNsYXNzCisgICAgICogYW5kIHRoZSBzZXR0aW5ncyAoZ3JvdXBpbmdVc2VkLCBwYXJzZUludGVnZXJPbmx5LCBtYXhpbXVtSW50ZWdlckRpZ2l0cywgZXRjLgorICAgICAqIGFyZSBlcXVhbC4KKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBvYmplY3QgdG8gY29tcGFyZSBhZ2FpbnN0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaXMgZXF1YWwgdG8gdGhpcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBOdW1iZXJGb3JtYXQgb3RoZXIgPSAoTnVtYmVyRm9ybWF0KSBvYmo7CisgICAgICAgIHJldHVybiBtYXhpbXVtSW50ZWdlckRpZ2l0cyA9PSBvdGhlci5tYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAgICAgICAgJiYgbWluaW11bUludGVnZXJEaWdpdHMgPT0gb3RoZXIubWluaW11bUludGVnZXJEaWdpdHMKKyAgICAgICAgICAgICYmIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA9PSBvdGhlci5tYXhpbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgICAgICAgICYmIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA9PSBvdGhlci5taW5pbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgICAgICAgICYmIGdyb3VwaW5nVXNlZCA9PSBvdGhlci5ncm91cGluZ1VzZWQKKyAgICAgICAgICAgICYmIHBhcnNlSW50ZWdlck9ubHkgPT0gb3RoZXIucGFyc2VJbnRlZ2VyT25seTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgQ2xvbmVhYmxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgTnVtYmVyRm9ybWF0IG90aGVyID0gKE51bWJlckZvcm1hdCkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgcmV0dXJuIG90aGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiBncm91cGluZyBpcyB1c2VkIGluIHRoaXMgZm9ybWF0LiBGb3IgZXhhbXBsZSwgaW4gdGhlCisgICAgICogZW5fVVMgbG9jYWxlLCB3aXRoIGdyb3VwaW5nIG9uLCB0aGUgbnVtYmVyIDEyMzQ1Njcgd2lsbCBiZSBmb3JtYXR0ZWQKKyAgICAgKiBhcyAiMSwyMzQsNTY3Ii4gVGhlIGdyb3VwaW5nIHNlcGFyYXRvciBhcyB3ZWxsIGFzIHRoZSBzaXplIG9mIGVhY2ggZ3JvdXAKKyAgICAgKiBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBpcyBkZXRlcm1pbmVkIGJ5IHN1YmNsYXNzZXMgb2YgTnVtYmVyRm9ybWF0LgorICAgICAqIEdyb3VwaW5nIGFmZmVjdHMgYm90aCBwYXJzaW5nIGFuZCBmb3JtYXR0aW5nLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBncm91cGluZyBpcyB1c2VkCisgICAgICogQHNlZSAjc2V0R3JvdXBpbmdVc2VkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNHcm91cGluZ1VzZWQoKSB7CisgICAgICAgIHJldHVybiBncm91cGluZ1VzZWQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIG9yIG5vdCBncm91cGluZyB3aWxsIGJlIHVzZWQgaW4gdGhpcyBmb3JtYXQuICBHcm91cGluZworICAgICAqIGFmZmVjdHMgYm90aCBwYXJzaW5nIGFuZCBmb3JtYXR0aW5nLgorICAgICAqIEBzZWUgI2lzR3JvdXBpbmdVc2VkCisgICAgICogQHBhcmFtIG5ld1ZhbHVlIHRydWUgdG8gdXNlIGdyb3VwaW5nLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEdyb3VwaW5nVXNlZChib29sZWFuIG5ld1ZhbHVlKSB7CisgICAgICAgIGdyb3VwaW5nVXNlZCA9IG5ld1ZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDQwLCB3aGljaCBzdWJjbGFzc2VzIGNhbiBvdmVycmlkZS4KKyAgICAgKiBXaGVuIGZvcm1hdHRpbmcsIHRoZSBleGFjdCBiZWhhdmlvciB3aGVuIHRoaXMgdmFsdWUgaXMgZXhjZWVkZWQgaXMKKyAgICAgKiBzdWJjbGFzcy1zcGVjaWZpYy4gIFdoZW4gcGFyc2luZywgdGhpcyBoYXMgbm8gZWZmZWN0LgorICAgICAqIEByZXR1cm4gdGhlIG1heGltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzCisgICAgICogQHNlZSAjc2V0TWF4aW11bUludGVnZXJEaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1heGltdW1JbnRlZ2VyRGlnaXRzKCkgeworICAgICAgICByZXR1cm4gbWF4aW11bUludGVnZXJEaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiBUaGlzIG11c3QgYmUgPj0gbWluaW11bUludGVnZXJEaWdpdHMuICBJZiB0aGUKKyAgICAgKiBuZXcgdmFsdWUgZm9yIG1heGltdW1JbnRlZ2VyRGlnaXRzIGlzIGxlc3MgdGhhbiB0aGUgY3VycmVudCB2YWx1ZQorICAgICAqIG9mIG1pbmltdW1JbnRlZ2VyRGlnaXRzLCB0aGVuIG1pbmltdW1JbnRlZ2VyRGlnaXRzIHdpbGwgYWxzbyBiZSBzZXQgdG8KKyAgICAgKiB0aGUgbmV3IHZhbHVlLgorICAgICAqIEBwYXJhbSBuZXdWYWx1ZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgaW50ZWdlciBkaWdpdHMgdG8gYmUgc2hvd247IGlmCisgICAgICogbGVzcyB0aGFuIHplcm8sIHRoZW4gemVybyBpcyB1c2VkLiAgU3ViY2xhc3NlcyBtaWdodCBlbmZvcmNlIGFuCisgICAgICogdXBwZXIgbGltaXQgdG8gdGhpcyB2YWx1ZSBhcHByb3ByaWF0ZSB0byB0aGUgbnVtZXJpYyB0eXBlIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtSW50ZWdlckRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1heGltdW1JbnRlZ2VyRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBtYXhpbXVtSW50ZWdlckRpZ2l0cyA9IE1hdGgubWF4KDAsbmV3VmFsdWUpOworICAgICAgICBpZiAobWluaW11bUludGVnZXJEaWdpdHMgPiBtYXhpbXVtSW50ZWdlckRpZ2l0cykKKyAgICAgICAgICAgIG1pbmltdW1JbnRlZ2VyRGlnaXRzID0gbWF4aW11bUludGVnZXJEaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMSwgd2hpY2ggc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUuCisgICAgICogV2hlbiBmb3JtYXR0aW5nLCBpZiB0aGlzIHZhbHVlIGlzIG5vdCByZWFjaGVkLCBudW1iZXJzIGFyZSBwYWRkZWQgb24gdGhlCisgICAgICogbGVmdCB3aXRoIHRoZSBsb2NhbGUtc3BlY2lmaWMgJzAnIGNoYXJhY3RlciB0byBlbnN1cmUgYXQgbGVhc3QgdGhpcworICAgICAqIG51bWJlciBvZiBpbnRlZ2VyIGRpZ2l0cy4gIFdoZW4gcGFyc2luZywgdGhpcyBoYXMgbm8gZWZmZWN0LgorICAgICAqIEByZXR1cm4gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzCisgICAgICogQHNlZSAjc2V0TWluaW11bUludGVnZXJEaWdpdHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1pbmltdW1JbnRlZ2VyRGlnaXRzKCkgeworICAgICAgICByZXR1cm4gbWluaW11bUludGVnZXJEaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGludGVnZXIgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgVGhpcyBtdXN0IGJlIDw9IG1heGltdW1JbnRlZ2VyRGlnaXRzLiAgSWYgdGhlCisgICAgICogbmV3IHZhbHVlIGZvciBtaW5pbXVtSW50ZWdlckRpZ2l0cyBpcyBtb3JlIHRoYW4gdGhlIGN1cnJlbnQgdmFsdWUKKyAgICAgKiBvZiBtYXhpbXVtSW50ZWdlckRpZ2l0cywgdGhlbiBtYXhpbXVtSW50ZWdlckRpZ2l0cyB3aWxsIGFsc28gYmUgc2V0IHRvCisgICAgICogdGhlIG5ldyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzIHRvIGJlIHNob3duOyBpZgorICAgICAqIGxlc3MgdGhhbiB6ZXJvLCB0aGVuIHplcm8gaXMgdXNlZC4gU3ViY2xhc3NlcyBtaWdodCBlbmZvcmNlIGFuCisgICAgICogdXBwZXIgbGltaXQgdG8gdGhpcyB2YWx1ZSBhcHByb3ByaWF0ZSB0byB0aGUgbnVtZXJpYyB0eXBlIGJlaW5nIGZvcm1hdHRlZC4KKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBtaW5pbXVtSW50ZWdlckRpZ2l0cyA9IE1hdGgubWF4KDAsbmV3VmFsdWUpOworICAgICAgICBpZiAobWluaW11bUludGVnZXJEaWdpdHMgPiBtYXhpbXVtSW50ZWdlckRpZ2l0cykKKyAgICAgICAgICAgIG1heGltdW1JbnRlZ2VyRGlnaXRzID0gbWluaW11bUludGVnZXJEaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uCisgICAgICogcG9ydGlvbiBvZiBhIG51bWJlci4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDMsIHdoaWNoIHN1YmNsYXNzZXMKKyAgICAgKiBjYW4gb3ZlcnJpZGUuICBXaGVuIGZvcm1hdHRpbmcsIHRoZSBleGFjdCBiZWhhdmlvciB3aGVuIHRoaXMKKyAgICAgKiB2YWx1ZSBpcyBleGNlZWRlZCBpcyBzdWJjbGFzcy1zcGVjaWZpYy4gIFdoZW4gcGFyc2luZywgdGhpcyBoYXMgCisgICAgICogbm8gZWZmZWN0LgorICAgICAqIEByZXR1cm4gdGhlIG1heGltdW0gbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cworICAgICAqIEBzZWUgI3NldE1heGltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMCAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1heGltdW1GcmFjdGlvbkRpZ2l0cygpIHsKKyAgICAgICAgcmV0dXJuIG1heGltdW1GcmFjdGlvbkRpZ2l0czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb24gcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiBUaGlzIG11c3QgYmUgPj0gbWluaW11bUZyYWN0aW9uRGlnaXRzLiAgSWYgdGhlCisgICAgICogbmV3IHZhbHVlIGZvciBtYXhpbXVtRnJhY3Rpb25EaWdpdHMgaXMgbGVzcyB0aGFuIHRoZSBjdXJyZW50IHZhbHVlCisgICAgICogb2YgbWluaW11bUZyYWN0aW9uRGlnaXRzLCB0aGVuIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyB3aWxsIGFsc28gYmUgc2V0IHRvCisgICAgICogdGhlIG5ldyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG1heGltdW0gbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cyB0byBiZSBzaG93bjsgaWYKKyAgICAgKiBsZXNzIHRoYW4gemVybywgdGhlbiB6ZXJvIGlzIHVzZWQuIFRoZSBjb25jcmV0ZSBzdWJjbGFzcyBtYXkgZW5mb3JjZSBhbgorICAgICAqIHVwcGVyIGxpbWl0IHRvIHRoaXMgdmFsdWUgYXBwcm9wcmlhdGUgdG8gdGhlIG51bWVyaWMgdHlwZSBiZWluZyBmb3JtYXR0ZWQuCisgICAgICogQHNlZSAjZ2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKGludCBuZXdWYWx1ZSkgeworICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHMgPSBNYXRoLm1heCgwLG5ld1ZhbHVlKTsKKyAgICAgICAgaWYgKG1heGltdW1GcmFjdGlvbkRpZ2l0cyA8IG1pbmltdW1GcmFjdGlvbkRpZ2l0cykKKyAgICAgICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA9IG1heGltdW1GcmFjdGlvbkRpZ2l0czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb24gcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMCwgd2hpY2ggc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUuCisgICAgICogV2hlbiBmb3JtYXR0aW5nLCBpZiB0aGlzIHZhbHVlIGlzIG5vdCByZWFjaGVkLCBudW1iZXJzIGFyZSBwYWRkZWQgb24KKyAgICAgKiB0aGUgcmlnaHQgd2l0aCB0aGUgbG9jYWxlLXNwZWNpZmljICcwJyBjaGFyYWN0ZXIgdG8gZW5zdXJlIGF0IGxlYXN0CisgICAgICogdGhpcyBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzLiAgV2hlbiBwYXJzaW5nLCB0aGlzIGhhcyBubyBlZmZlY3QuCisgICAgICogQHJldHVybiB0aGUgbWluaW11bSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzCisgICAgICogQHNlZSAjc2V0TWluaW11bUZyYWN0aW9uRGlnaXRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5pbXVtRnJhY3Rpb25EaWdpdHMoKSB7CisgICAgICAgIHJldHVybiBtaW5pbXVtRnJhY3Rpb25EaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIFRoaXMgbXVzdCBiZSA8PSBtYXhpbXVtRnJhY3Rpb25EaWdpdHMuICBJZiB0aGUKKyAgICAgKiBuZXcgdmFsdWUgZm9yIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyBleGNlZWRzIHRoZSBjdXJyZW50IHZhbHVlCisgICAgICogb2YgbWF4aW11bUZyYWN0aW9uRGlnaXRzLCB0aGVuIG1heGltdW1GcmFjdGlvbkRpZ2l0cyB3aWxsIGFsc28gYmUgc2V0IHRvCisgICAgICogdGhlIG5ldyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cyB0byBiZSBzaG93bjsgaWYKKyAgICAgKiBsZXNzIHRoYW4gemVybywgdGhlbiB6ZXJvIGlzIHVzZWQuICBTdWJjbGFzc2VzIG1pZ2h0IGVuZm9yY2UgYW4KKyAgICAgKiB1cHBlciBsaW1pdCB0byB0aGlzIHZhbHVlIGFwcHJvcHJpYXRlIHRvIHRoZSBudW1lcmljIHR5cGUgYmVpbmcgZm9ybWF0dGVkLgorICAgICAqIEBzZWUgI2dldE1pbmltdW1GcmFjdGlvbkRpZ2l0cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cyhpbnQgbmV3VmFsdWUpIHsKKyAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzID0gTWF0aC5tYXgoMCxuZXdWYWx1ZSk7CisgICAgICAgIGlmIChtYXhpbXVtRnJhY3Rpb25EaWdpdHMgPCBtaW5pbXVtRnJhY3Rpb25EaWdpdHMpCisgICAgICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHMgPSBtaW5pbXVtRnJhY3Rpb25EaWdpdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgPHR0PkN1cnJlbmN5PC90dD4gb2JqZWN0IHVzZWQgdG8gZGlzcGxheSBjdXJyZW5jeQorICAgICAqIGFtb3VudHMuICBUaGlzIHRha2VzIGVmZmVjdCBpbW1lZGlhdGVseSwgaWYgdGhpcyBmb3JtYXQgaXMgYQorICAgICAqIGN1cnJlbmN5IGZvcm1hdC4gIElmIHRoaXMgZm9ybWF0IGlzIG5vdCBhIGN1cnJlbmN5IGZvcm1hdCwgdGhlbgorICAgICAqIHRoZSBjdXJyZW5jeSBvYmplY3QgaXMgdXNlZCBpZiBhbmQgd2hlbiB0aGlzIG9iamVjdCBiZWNvbWVzIGEKKyAgICAgKiBjdXJyZW5jeSBmb3JtYXQuCisgICAgICogQHBhcmFtIHRoZUN1cnJlbmN5IG5ldyBjdXJyZW5jeSBvYmplY3QgdG8gdXNlLiAgTWF5IGJlIG51bGwgZm9yCisgICAgICogc29tZSBzdWJjbGFzc2VzLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEN1cnJlbmN5KEN1cnJlbmN5IHRoZUN1cnJlbmN5KSB7CisgICAgICAgIGN1cnJlbmN5ID0gdGhlQ3VycmVuY3k7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgPHR0PkN1cnJlbmN5PC90dD4gb2JqZWN0IHVzZWQgdG8gZGlzcGxheSBjdXJyZW5jeQorICAgICAqIGFtb3VudHMuICBUaGlzIG1heSBiZSBudWxsLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBDdXJyZW5jeSBnZXRDdXJyZW5jeSgpIHsKKyAgICAgICAgcmV0dXJuIGN1cnJlbmN5OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW5jeSBpbiBlZmZlY3QgZm9yIHRoaXMgZm9ybWF0dGVyLiAgU3ViY2xhc3NlcworICAgICAqIHNob3VsZCBvdmVycmlkZSB0aGlzIG1ldGhvZCBhcyBuZWVkZWQuICBVbmxpa2UgZ2V0Q3VycmVuY3koKSwKKyAgICAgKiB0aGlzIG1ldGhvZCBzaG91bGQgbmV2ZXIgcmV0dXJuIG51bGwuCisgICAgICogQHJldHVybiBhIG5vbi1udWxsIEN1cnJlbmN5CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIEN1cnJlbmN5IGdldEVmZmVjdGl2ZUN1cnJlbmN5KCkgeworICAgICAgICBDdXJyZW5jeSBjID0gZ2V0Q3VycmVuY3koKTsKKyAgICAgICAgaWYgKGMgPT0gbnVsbCkgeworICAgICAgICAgICAgVUxvY2FsZSB1bG9jID0gZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICAgICAgICAgIGlmICh1bG9jID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB1bG9jID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjID0gQ3VycmVuY3kuZ2V0SW5zdGFuY2UodWxvYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT1wcml2YXRlcz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8vIEhvb2sgZm9yIHNlcnZpY2UKKyAgICBwcml2YXRlIHN0YXRpYyBOdW1iZXJGb3JtYXQgZ2V0SW5zdGFuY2UoVUxvY2FsZSBkZXNpcmVkTG9jYWxlLCBpbnQgY2hvaWNlKSB7CisvLyAgICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisvLyAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUluc3RhbmNlKGRlc2lyZWRMb2NhbGUsIGNob2ljZSk7CisvLyAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgIC8vIFRPRE86IHNoaW1zIG11c3QgY2FsbCBzZXRMb2NhbGUoKSBvbiBvYmplY3QgdGhleSBjcmVhdGUKKy8vICAgICAgICAgICAgICByZXR1cm4gZ2V0U2hpbSgpLmNyZWF0ZUluc3RhbmNlKGRlc2lyZWRMb2NhbGUsIGNob2ljZSk7CisvLyAgICAgICAgICB9CisgICAgICAgIHJldHVybiBnZXRTaGltKCkuY3JlYXRlSW5zdGFuY2UoZGVzaXJlZExvY2FsZSwgY2hvaWNlKTsKKyAgICB9CisKKyAgICAvLyBbTkVXXQorICAgIHN0YXRpYyBOdW1iZXJGb3JtYXQgY3JlYXRlSW5zdGFuY2UoVUxvY2FsZSBkZXNpcmVkTG9jYWxlLCBpbnQgY2hvaWNlKSB7CisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gZ2V0UGF0dGVybihkZXNpcmVkTG9jYWxlLCBjaG9pY2UpOworICAgICAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBzeW1ib2xzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGRlc2lyZWRMb2NhbGUpOworICAgICAgICBEZWNpbWFsRm9ybWF0IGZvcm1hdCA9IG5ldyBEZWNpbWFsRm9ybWF0KHBhdHRlcm4sIHN5bWJvbHMpOworICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImxvYzogIiArIGRlc2lyZWRMb2NhbGUgKyAiIGNob2ljZTogIiArIGNob2ljZSArICIgcGF0OiAiICsgcGF0dGVybiArICIgc3ltOiAiICsgc3ltYm9scyArICIgcmVzdWx0OiAiICsgZm9ybWF0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAvKkJ1ZyA0NDA4MDY2CisgICAgICAgICBBZGQgY29kZXMgZm9yIHRoZSBuZXcgbWV0aG9kIGdldEludGVnZXJJbnN0YW5jZSgpIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgLy8gVE9ETzogcmV2aXNpdCB0aGlzIC0tIHRoaXMgaXMgYWxtb3N0IGNlcnRhaW5seSBub3QgdGhlIHdheSB3ZSB3YW50CisgICAgICAgIC8vIHRvIGRvIHRoaXMuICBhbGl1IDEvNi8yMDA0CisgICAgICAgIGlmIChjaG9pY2UgPT0gSU5URUdFUlNUWUxFKSB7CisgICAgICAgICAgICBmb3JtYXQuc2V0TWF4aW11bUZyYWN0aW9uRGlnaXRzKDApOworICAgICAgICAgICAgZm9ybWF0LnNldERlY2ltYWxTZXBhcmF0b3JBbHdheXNTaG93bihmYWxzZSk7CisgICAgICAgICAgICBmb3JtYXQuc2V0UGFyc2VJbnRlZ2VyT25seSh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gVE9ETzogdGhlIGFjdHVhbCBsb2NhbGUgb2YgdGhlICpwYXR0ZXJuKiBtYXkgZGlmZmVyIGZyb20gdGhhdAorICAgICAgICAvLyBmb3IgdGhlICpzeW1ib2xzKi4gIEZvciBub3csIHdlIHVzZSB0aGUgZGF0YSBmb3IgdGhlIHN5bWJvbHMuCisgICAgICAgIC8vIFJldmlzaXQgdGhpcy4KKyAgICAgICAgVUxvY2FsZSB2YWxpZCA9IHN5bWJvbHMuZ2V0TG9jYWxlKFVMb2NhbGUuVkFMSURfTE9DQUxFKTsKKyAgICAgICAgVUxvY2FsZSBhY3R1YWwgPSBzeW1ib2xzLmdldExvY2FsZShVTG9jYWxlLkFDVFVBTF9MT0NBTEUpOworICAgICAgICBmb3JtYXQuc2V0TG9jYWxlKHZhbGlkLCBhY3R1YWwpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZvcm1hdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBwYXR0ZXJuIGZvciB0aGUgcHJvdmlkZWQgbG9jYWxlIGFuZCBjaG9pY2UuCisgICAgICogQHBhcmFtIGZvckxvY2FsZSB0aGUgbG9jYWxlIG9mIHRoZSBkYXRhLgorICAgICAqIEBwYXJhbSBjaG9pY2UgdGhlIHBhdHRlcm4gZm9ybWF0LgorICAgICAqIEByZXR1cm4gdGhlIHBhdHRlcm4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMy40IHN1YmNsYXNzZXJzIHNob3VsZCBvdmVycmlkZSBnZXRQYXR0ZXJuKFVMb2NhbGUsIGludCkgaW5zdGVhZCBvZiB0aGlzIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIFN0cmluZyBnZXRQYXR0ZXJuKExvY2FsZSBmb3JMb2NhbGUsIGludCBjaG9pY2UpIHsKKyAgICAgICAgcmV0dXJuIGdldFBhdHRlcm4oVUxvY2FsZS5mb3JMb2NhbGUoZm9yTG9jYWxlKSwgY2hvaWNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBwYXR0ZXJuIGZvciB0aGUgcHJvdmlkZWQgbG9jYWxlIGFuZCBjaG9pY2UuCisgICAgICogQHBhcmFtIGZvckxvY2FsZSB0aGUgbG9jYWxlIG9mIHRoZSBkYXRhLgorICAgICAqIEBwYXJhbSBjaG9pY2UgdGhlIHBhdHRlcm4gZm9ybWF0LgorICAgICAqIEByZXR1cm4gdGhlIHBhdHRlcm4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgU3RyaW5nIGdldFBhdHRlcm4oVUxvY2FsZSBmb3JMb2NhbGUsIGludCBjaG9pY2UpIHsKKworICAgICAgICAvKiBUaGUgZm9sbG93aW5nIGNvZGUgdGFrZXMgY2FyZSBvZiBhIGZldyBjYXNlcyB3aGVyZSB0aGUKKyAgICAgICAgICogcmVzb3VyY2UgZGF0YSBpbiB0aGUgdW5kZXJseWluZyBKREsgbGFncyB0aGUgbmV3IGZlYXR1cmVzCisgICAgICAgICAqIHdlIGhhdmUgYWRkZWQgdG8gSUNVNEo6IHNjaWVudGlmaWMgbm90YXRpb24sIHJvdW5kaW5nLCBhbmQKKyAgICAgICAgICogc2Vjb25kYXJ5IGdyb3VwaW5nLgorICAgICAgICAgKgorICAgICAgICAgKiBXZSBkZXRlY3QgdGhlc2UgY2FzZXMgaGVyZSBhbmQgcmV0dXJuIHZhcmlvdXMgaGFyZC1jb2RlZAorICAgICAgICAgKiByZXNvdXJjZSBkYXRhLiAgVGhpcyBpcyB0aGUgc2ltcGxlc3Qgc29sdXRpb24gZm9yIG5vdywgYnV0CisgICAgICAgICAqIGl0IGlzIG5vdCBhIGdvb2QgbG9uZy10ZXJtIG1lY2hhbmlzbS4KKyAgICAgICAgICogCisgICAgICAgICAqIFdlIHNob3VsZCByZXBsYWNlIHRoaXMgY29kZSB3aXRoIGEgZGF0YS1kcml2ZW4gbWVjaGFuaXNtCisgICAgICAgICAqIHRoYXQgcmVhZHMgdGhlIGJ1bmRsZSBjb20uaWJtLmljdS5pbXBsLmRhdGEuTG9jYWxlRWxlbWVudHMKKyAgICAgICAgICogYW5kIHBhcnNlcyBhbiBleGNlcHRpb24gdGFibGUgdGhhdCBvdmVycmlkZXMgdGhlIHN0YW5kYXJkCisgICAgICAgICAqIGRhdGEgYXQgamF2YS50ZXh0LnJlc291cmNlLkxvY2FsZUVsZW1lbnRzKi5qYXZhLgorICAgICAgICAgKiBBbHRlcm5hdGl2ZWx5LCB3ZSBzaG91bGQgY3JlYXRlIG91ciBvd24gY29weSBvZiB0aGUKKyAgICAgICAgICogcmVzb3VyY2UgZGF0YSwgYW5kIHVzZSB0aGF0IGV4Y2x1c2l2ZWx5LgorICAgICAgICAgKi8KKworICAgICAgICAvLyBURU1QT1JBUlksIHVudGlsIHdlIGdldCBzY2llbnRpZmljIHBhdHRlcm5zIGludG8gdGhlIG1haW4KKyAgICAgICAgLy8gcmVzb3VyY2VzOiAgUmV0cmlldmUgc2NpZW50aWZpYyBwYXR0ZXJucyBmcm9tIG91ciByZXNvdXJjZXMuCisgICAgICAgIGlmIChjaG9pY2UgPT0gU0NJRU5USUZJQ1NUWUxFKSB7CisgICAgICAgICAgICAvLyBUZW1wb3JhcmlseSBoYXJkIGNvZGU7IHJldHJpZXZlIGZyb20gcmVzb3VyY2UgbGF0ZXIKKyAgICAgICAgICAgIC8qRm9yIElDVSBjb21wYXRpYmlsaXR5IFtSaWNoYXJkL0dDTF0qLworICAgICAgICAgICAgcmV0dXJuICIjRTAiOworICAgICAgICAgICAgLy8gcmV0dXJuIE51bWJlckZvcm1hdC5nZXRCYXNlU3RyaW5nQXJyYXkoIk51bWJlclBhdHRlcm5zIilbU0NJRU5USUZJQ1NUWUxFXTsKKyAgICAgICAgfQorICAgICAgICAvLyBURU1QT1JBUlk6IFVzZSByb3VuZGluZyBmb3IgU3dpc3MgY3VycmVuY3kKKyAgICAgICAgLy9pZiAoY2hvaWNlID09IENVUlJFTkNZU1RZTEUgJiYKKyAgICAgICAgLy8gICAgZm9yTG9jYWxlLmdldENvdW50cnkoKS5lcXVhbHMoIkNIIikpIHsKKyAgICAgICAgLy8gICAgcmV0dXJuICInRnIuICcjLCMjMC4wNTsnRnIuLScjLCMjMC4wNSI7CisgICAgICAgIC8vfQorICAgICAgICAvLyBURU1QT1JBUlk6IFNwZWNpYWwgY2FzZSBJTiBudW1iZXIgZm9ybWF0CisgICAgICAgIC8vaWYgKGNob2ljZSA9PSBOVU1CRVJTVFlMRSAmJgorICAgICAgICAvLyAgICBmb3JMb2NhbGUuZ2V0Q291bnRyeSgpLmVxdWFscygiSU4iKSkgeworICAgICAgICAvLyAgICByZXR1cm4gIiMsIyMsIyMwLiMjIyI7CisgICAgICAgIC8vfQorCisgICAgICAgIC8vIHtkbGZ9CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS4KKyAgICAgICAgICAgIGdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIGZvckxvY2FsZSk7CisgICAgICAgIFN0cmluZ1tdIG51bWJlclBhdHRlcm5zID0gcmIuZ2V0U3RyaW5nQXJyYXkoIk51bWJlclBhdHRlcm5zIik7CisKKyAgICAgICAgLyoge2RsZn0KKyAgICAgICAgLy8gVHJ5IHRoZSBjYWNoZSBmaXJzdAorICAgICAgICBTdHJpbmdbXSBudW1iZXJQYXR0ZXJucyA9IChTdHJpbmdbXSkgY2FjaGVkTG9jYWxlRGF0YS5nZXQoZm9yTG9jYWxlKTsKKyAgICAgICAgaWYgKG51bWJlclBhdHRlcm5zID09IG51bGwpIHsKKyAgICAgICAgICAgIE92ZXJsYXlCdW5kbGUgcmVzb3VyY2UgPSBuZXcgT3ZlcmxheUJ1bmRsZShuZXcgU3RyaW5nW10KKyAgICAgICAgICAgICAgICB7ICJjb20uaWJtLmljdS5pbXBsLmRhdGEuTG9jYWxlRWxlbWVudHMiLCBSRVNPVVJDRV9CQVNFIH0sIGZvckxvY2FsZSk7CisgICAgICAgICAgICBudW1iZXJQYXR0ZXJucyA9IHJlc291cmNlLmdldFN0cmluZ0FycmF5KCJOdW1iZXJQYXR0ZXJucyIpOworICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBjYWNoZQorICAgICAgICAgICAgY2FjaGVkTG9jYWxlRGF0YS5wdXQoZm9yTG9jYWxlLCBudW1iZXJQYXR0ZXJucyk7IAorICAgICAgICB9CisgICAgICAgICovCisKKyAgICAgICAgLypCdWcgNDQwODA2NgorICAgICAgICAgQWRkIGNvZGVzIGZvciB0aGUgbmV3IG1ldGhvZCBnZXRJbnRlZ2VySW5zdGFuY2UoKSBbUmljaGFyZC9HQ0xdCisgICAgICAgICovCisgICAgICAgIGludCBlbnRyeSA9IChjaG9pY2UgPT0gSU5URUdFUlNUWUxFKSA/IE5VTUJFUlNUWUxFIDogY2hvaWNlOyAvL1tSaWNoYXJkL0dDTF0KKyAgICAgICAgcmV0dXJuIG51bWJlclBhdHRlcm5zW2VudHJ5XTsgLy9bUmljaGFyZC9HQ0xdCisgICAgfQorCisgICAgLyoqCisgICAgICogRmlyc3QsIHJlYWQgaW4gdGhlIGRlZmF1bHQgc2VyaWFsaXphYmxlIGRhdGEuCisgICAgICoKKyAgICAgKiBUaGVuLCBpZiA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+IGlzIGxlc3MgdGhhbiAxLCBpbmRpY2F0aW5nIHRoYXQKKyAgICAgKiB0aGUgc3RyZWFtIHdhcyB3cml0dGVuIGJ5IEpESyAxLjEsCisgICAgICogc2V0IHRoZSA8Y29kZT5pbnQ8L2NvZGU+IGZpZWxkcyBzdWNoIGFzIDxjb2RlPm1heGltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPgorICAgICAqIHRvIGJlIGVxdWFsIHRvIHRoZSA8Y29kZT5ieXRlPC9jb2RlPiBmaWVsZHMgc3VjaCBhcyA8Y29kZT5tYXhJbnRlZ2VyRGlnaXRzPC9jb2RlPiwKKyAgICAgKiBzaW5jZSB0aGUgPGNvZGU+aW50PC9jb2RlPiBmaWVsZHMgd2VyZSBub3QgcHJlc2VudCBpbiBKREsgMS4xLgorICAgICAqIEZpbmFsbHksIHNldCBzZXJpYWxWZXJzaW9uT25TdHJlYW0gYmFjayB0byB0aGUgbWF4aW11bSBhbGxvd2VkIHZhbHVlIHNvIHRoYXQKKyAgICAgKiBkZWZhdWx0IHNlcmlhbGl6YXRpb24gd2lsbCB3b3JrIHByb3Blcmx5IGlmIHRoaXMgb2JqZWN0IGlzIHN0cmVhbWVkIG91dCBhZ2Fpbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24KKyAgICB7CisgICAgICAgIHN0cmVhbS5kZWZhdWx0UmVhZE9iamVjdCgpOworICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgc2VyaWFsaXphdGlvbiBkYXRhIGZvciB0aGlzIGZvcm1hdAorICAgICAgICBpZiAoc2VyaWFsVmVyc2lvbk9uU3RyZWFtIDwgMSkgeworICAgICAgICAgICAgLy8gRGlkbid0IGhhdmUgYWRkaXRpb25hbCBpbnQgZmllbGRzLCByZWFzc2lnbiB0byB1c2UgdGhlbS4KKyAgICAgICAgICAgIG1heGltdW1JbnRlZ2VyRGlnaXRzID0gbWF4SW50ZWdlckRpZ2l0czsKKyAgICAgICAgICAgIG1pbmltdW1JbnRlZ2VyRGlnaXRzID0gbWluSW50ZWdlckRpZ2l0czsKKyAgICAgICAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA9IG1heEZyYWN0aW9uRGlnaXRzOworICAgICAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzID0gbWluRnJhY3Rpb25EaWdpdHM7CisgICAgICAgIH0KKyAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIC8qQnVnIDQxODU3NjEKKyAgICAgICAgICBWYWxpZGF0ZSB0aGUgbWluIGFuZCBtYXggZmllbGRzIFtSaWNoYXJkL0dDTF0KKyAgICAgICAgKi8KKyAgICAgICAgaWYgKG1pbmltdW1JbnRlZ2VyRGlnaXRzID4gbWF4aW11bUludGVnZXJEaWdpdHMgfHwKKyAgICAgICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA+IG1heGltdW1GcmFjdGlvbkRpZ2l0cyB8fAorICAgICAgICAgICAgbWluaW11bUludGVnZXJEaWdpdHMgPCAwIHx8IG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT2JqZWN0RXhjZXB0aW9uKCJEaWdpdCBjb3VudCByYW5nZSBpbnZhbGlkIik7CisgICAgICAgIH0KKyAgICAgICAgc2VyaWFsVmVyc2lvbk9uU3RyZWFtID0gY3VycmVudFNlcmlhbFZlcnNpb247CisgICAgfQorCisgICAgLyoqCisgICAgICogV3JpdGUgb3V0IHRoZSBkZWZhdWx0IHNlcmlhbGl6YWJsZSBkYXRhLCBhZnRlciBmaXJzdCBzZXR0aW5nCisgICAgICogdGhlIDxjb2RlPmJ5dGU8L2NvZGU+IGZpZWxkcyBzdWNoIGFzIDxjb2RlPm1heEludGVnZXJEaWdpdHM8L2NvZGU+IHRvIGJlCisgICAgICogZXF1YWwgdG8gdGhlIDxjb2RlPmludDwvY29kZT4gZmllbGRzIHN1Y2ggYXMgPGNvZGU+bWF4aW11bUludGVnZXJEaWdpdHM8L2NvZGU+CisgICAgICogKG9yIHRvIDxjb2RlPkJ5dGUuTUFYX1ZBTFVFPC9jb2RlPiwgd2hpY2hldmVyIGlzIHNtYWxsZXIpLCBmb3IgY29tcGF0aWJpbGl0eQorICAgICAqIHdpdGggdGhlIEpESyAxLjEgdmVyc2lvbiBvZiB0aGUgc3RyZWFtIGZvcm1hdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgd3JpdGVPYmplY3QoT2JqZWN0T3V0cHV0U3RyZWFtIHN0cmVhbSkKKyAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgbWF4SW50ZWdlckRpZ2l0cyA9IChtYXhpbXVtSW50ZWdlckRpZ2l0cyA+IEJ5dGUuTUFYX1ZBTFVFKSA/IEJ5dGUuTUFYX1ZBTFVFIDoKKyAgICAgICAgICAgIChieXRlKW1heGltdW1JbnRlZ2VyRGlnaXRzOworICAgICAgICBtaW5JbnRlZ2VyRGlnaXRzID0gKG1pbmltdW1JbnRlZ2VyRGlnaXRzID4gQnl0ZS5NQVhfVkFMVUUpID8gQnl0ZS5NQVhfVkFMVUUgOgorICAgICAgICAgICAgKGJ5dGUpbWluaW11bUludGVnZXJEaWdpdHM7CisgICAgICAgIG1heEZyYWN0aW9uRGlnaXRzID0gKG1heGltdW1GcmFjdGlvbkRpZ2l0cyA+IEJ5dGUuTUFYX1ZBTFVFKSA/IEJ5dGUuTUFYX1ZBTFVFIDoKKyAgICAgICAgICAgIChieXRlKW1heGltdW1GcmFjdGlvbkRpZ2l0czsKKyAgICAgICAgbWluRnJhY3Rpb25EaWdpdHMgPSAobWluaW11bUZyYWN0aW9uRGlnaXRzID4gQnl0ZS5NQVhfVkFMVUUpID8gQnl0ZS5NQVhfVkFMVUUgOgorICAgICAgICAgICAgKGJ5dGUpbWluaW11bUZyYWN0aW9uRGlnaXRzOworICAgICAgICBzdHJlYW0uZGVmYXVsdFdyaXRlT2JqZWN0KCk7CisgICAgfQorCisvLyBVbnVzZWQgLS0gQWxhbiAyMDAzLTA1CisvLyAgICAvKioKKy8vICAgICAqIENhY2hlIHRvIGhvbGQgdGhlIE51bWJlclBhdHRlcm5zIG9mIGEgTG9jYWxlLgorLy8gICAgICovCisvLyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBIYXNodGFibGUgY2FjaGVkTG9jYWxlRGF0YSA9IG5ldyBIYXNodGFibGUoMyk7CisKKyAgICAvKkJ1ZyA0NDA4MDY2CisgICAgICBBZGQgRmllbGQgZm9yIHRoZSBuZXcgbWV0aG9kIGdldEludGVnZXJJbnN0YW5jZSgpIFtSaWNoYXJkL0dDTF0KKyAgICAqLworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB0aGUgdGhlIGdyb3VwaW5nIChpLmUuIHRob3VzYW5kcykgc2VwYXJhdG9yIGlzIHVzZWQgd2hlbgorICAgICAqIGZvcm1hdHRpbmcgYW5kIHBhcnNpbmcgbnVtYmVycy4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNpc0dyb3VwaW5nVXNlZAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBncm91cGluZ1VzZWQgPSB0cnVlOworCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIDxjb2RlPm1heEludGVnZXJEaWdpdHM8L2NvZGU+IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWluSW50ZWdlckRpZ2l0czwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGZpZWxkIGV4aXN0cyBvbmx5IGZvciBzZXJpYWxpemF0aW9uCisgICAgICogY29tcGF0aWJpbGl0eSB3aXRoIEpESyAxLjEuICBJbiBKREsgMS4yIGFuZCBoaWdoZXIsIHRoZSBuZXcKKyAgICAgKiA8Y29kZT5pbnQ8L2NvZGU+IGZpZWxkIDxjb2RlPm1heGltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPiBpcyB1c2VkIGluc3RlYWQuCisgICAgICogV2hlbiB3cml0aW5nIHRvIGEgc3RyZWFtLCA8Y29kZT5tYXhJbnRlZ2VyRGlnaXRzPC9jb2RlPiBpcyBzZXQgdG8KKyAgICAgKiA8Y29kZT5tYXhpbXVtSW50ZWdlckRpZ2l0czwvY29kZT4gb3IgPGNvZGU+Qnl0ZS5NQVhfVkFMVUU8L2NvZGU+LAorICAgICAqIHdoaWNoZXZlciBpcyBzbWFsbGVyLiAgV2hlbiByZWFkaW5nIGZyb20gYSBzdHJlYW0sIHRoaXMgZmllbGQgaXMgdXNlZAorICAgICAqIG9ubHkgaWYgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPiBpcyBsZXNzIHRoYW4gMS4gCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TWF4aW11bUludGVnZXJEaWdpdHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgICAgbWF4SW50ZWdlckRpZ2l0cyA9IDQwOworCisgICAgLyoqCisgICAgICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIDxjb2RlPm1pbmltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPiBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0bworICAgICAqIDxjb2RlPm1heGltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgZmllbGQgZXhpc3RzIG9ubHkgZm9yIHNlcmlhbGl6YXRpb24KKyAgICAgKiBjb21wYXRpYmlsaXR5IHdpdGggSkRLIDEuMS4gIEluIEpESyAxLjIgYW5kIGhpZ2hlciwgdGhlIG5ldworICAgICAqIDxjb2RlPmludDwvY29kZT4gZmllbGQgPGNvZGU+bWluaW11bUludGVnZXJEaWdpdHM8L2NvZGU+IGlzIHVzZWQgaW5zdGVhZC4KKyAgICAgKiBXaGVuIHdyaXRpbmcgdG8gYSBzdHJlYW0sIDxjb2RlPm1pbkludGVnZXJEaWdpdHM8L2NvZGU+IGlzIHNldCB0bworICAgICAqIDxjb2RlPm1pbmltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPiBvciA8Y29kZT5CeXRlLk1BWF9WQUxVRTwvY29kZT4sCisgICAgICogd2hpY2hldmVyIGlzIHNtYWxsZXIuICBXaGVuIHJlYWRpbmcgZnJvbSBhIHN0cmVhbSwgdGhpcyBmaWVsZCBpcyB1c2VkCisgICAgICogb25seSBpZiA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+IGlzIGxlc3MgdGhhbiAxLiAKKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cworICAgICAqLworICAgIHByaXZhdGUgYnl0ZSAgICBtaW5JbnRlZ2VyRGlnaXRzID0gMTsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb25hbCBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICA8Y29kZT5tYXhpbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWluaW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgZmllbGQgZXhpc3RzIG9ubHkgZm9yIHNlcmlhbGl6YXRpb24KKyAgICAgKiBjb21wYXRpYmlsaXR5IHdpdGggSkRLIDEuMS4gIEluIEpESyAxLjIgYW5kIGhpZ2hlciwgdGhlIG5ldworICAgICAqIDxjb2RlPmludDwvY29kZT4gZmllbGQgPGNvZGU+bWF4aW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPiBpcyB1c2VkIGluc3RlYWQuCisgICAgICogV2hlbiB3cml0aW5nIHRvIGEgc3RyZWFtLCA8Y29kZT5tYXhGcmFjdGlvbkRpZ2l0czwvY29kZT4gaXMgc2V0IHRvCisgICAgICogPGNvZGU+bWF4aW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPiBvciA8Y29kZT5CeXRlLk1BWF9WQUxVRTwvY29kZT4sCisgICAgICogd2hpY2hldmVyIGlzIHNtYWxsZXIuICBXaGVuIHJlYWRpbmcgZnJvbSBhIHN0cmVhbSwgdGhpcyBmaWVsZCBpcyB1c2VkCisgICAgICogb25seSBpZiA8Y29kZT5zZXJpYWxWZXJzaW9uT25TdHJlYW08L2NvZGU+IGlzIGxlc3MgdGhhbiAxLiAKKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGJ5dGUgICAgbWF4RnJhY3Rpb25EaWdpdHMgPSAzOyAgICAvLyBpbnZhcmlhbnQsID49IG1pbkZyYWN0aW9uRGlnaXRzCisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uYWwgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgPGNvZGU+bWluaW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPiBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0bworICAgICAqIDxjb2RlPm1heGltdW1GcmFjdGlvbkRpZ2l0czwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIGZpZWxkIGV4aXN0cyBvbmx5IGZvciBzZXJpYWxpemF0aW9uCisgICAgICogY29tcGF0aWJpbGl0eSB3aXRoIEpESyAxLjEuICBJbiBKREsgMS4yIGFuZCBoaWdoZXIsIHRoZSBuZXcKKyAgICAgKiA8Y29kZT5pbnQ8L2NvZGU+IGZpZWxkIDxjb2RlPm1pbmltdW1GcmFjdGlvbkRpZ2l0czwvY29kZT4gaXMgdXNlZCBpbnN0ZWFkLgorICAgICAqIFdoZW4gd3JpdGluZyB0byBhIHN0cmVhbSwgPGNvZGU+bWluRnJhY3Rpb25EaWdpdHM8L2NvZGU+IGlzIHNldCB0bworICAgICAqIDxjb2RlPm1pbmltdW1GcmFjdGlvbkRpZ2l0czwvY29kZT4gb3IgPGNvZGU+Qnl0ZS5NQVhfVkFMVUU8L2NvZGU+LAorICAgICAqIHdoaWNoZXZlciBpcyBzbWFsbGVyLiAgV2hlbiByZWFkaW5nIGZyb20gYSBzdHJlYW0sIHRoaXMgZmllbGQgaXMgdXNlZAorICAgICAqIG9ubHkgaWYgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPiBpcyBsZXNzIHRoYW4gMS4gCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzCisgICAgICovCisgICAgcHJpdmF0ZSBieXRlICAgIG1pbkZyYWN0aW9uRGlnaXRzID0gMDsKKworICAgIC8qKgorICAgICAqIFRydWUgaWYgdGhpcyBmb3JtYXQgd2lsbCBwYXJzZSBudW1iZXJzIGFzIGludGVnZXJzIG9ubHkuCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjaXNQYXJzZUludGVnZXJPbmx5CisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIHBhcnNlSW50ZWdlck9ubHkgPSBmYWxzZTsKKworICAgIC8vIG5ldyBmaWVsZHMgZm9yIDEuMi4gIGJ5dGUgaXMgdG9vIHNtYWxsIGZvciBpbnRlZ2VyIGRpZ2l0cy4KKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgaW50ZWdlciBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICA8Y29kZT5tYXhpbXVtSW50ZWdlckRpZ2l0czwvY29kZT4gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8KKyAgICAgKiA8Y29kZT5taW5pbXVtSW50ZWdlckRpZ2l0czwvY29kZT4uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TWF4aW11bUludGVnZXJEaWdpdHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCAgICBtYXhpbXVtSW50ZWdlckRpZ2l0cyA9IDQwOworCisgICAgLyoqCisgICAgICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhbGxvd2VkIGluIHRoZSBpbnRlZ2VyIHBvcnRpb24gb2YgYQorICAgICAqIG51bWJlci4gIDxjb2RlPm1pbmltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPiBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0bworICAgICAqIDxjb2RlPm1heGltdW1JbnRlZ2VyRGlnaXRzPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtSW50ZWdlckRpZ2l0cworICAgICAqLworICAgIHByaXZhdGUgaW50ICAgIG1pbmltdW1JbnRlZ2VyRGlnaXRzID0gMTsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBkaWdpdHMgYWxsb3dlZCBpbiB0aGUgZnJhY3Rpb25hbCBwb3J0aW9uIG9mIGEKKyAgICAgKiBudW1iZXIuICA8Y29kZT5tYXhpbXVtRnJhY3Rpb25EaWdpdHM8L2NvZGU+IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogPGNvZGU+bWluaW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlICNnZXRNYXhpbXVtRnJhY3Rpb25EaWdpdHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHMgPSAzOyAgICAvLyBpbnZhcmlhbnQsID49IG1pbkZyYWN0aW9uRGlnaXRzCisKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFsbG93ZWQgaW4gdGhlIGZyYWN0aW9uYWwgcG9ydGlvbiBvZiBhCisgICAgICogbnVtYmVyLiAgPGNvZGU+bWluaW11bUZyYWN0aW9uRGlnaXRzPC9jb2RlPiBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0bworICAgICAqIDxjb2RlPm1heGltdW1GcmFjdGlvbkRpZ2l0czwvY29kZT4uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNlZSAjZ2V0TWluaW11bUZyYWN0aW9uRGlnaXRzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzID0gMDsKKworICAgIC8qKgorICAgICAqIEN1cnJlbmN5IG9iamVjdCB1c2VkIHRvIGZvcm1hdCBjdXJyZW5jaWVzLiAgU3ViY2xhc3NlcyBtYXkKKyAgICAgKiBpZ25vcmUgdGhpcyBpZiB0aGV5IGFyZSBub3QgY3VycmVuY3kgZm9ybWF0cy4gIFRoaXMgd2lsbCBiZQorICAgICAqIG51bGwgdW5sZXNzIGEgc3ViY2xhc3Mgc2V0cyBpdCB0byBhIG5vbi1udWxsIHZhbHVlLgorICAgICAqIEBzaW5jZSBJQ1UgMi42CisgICAgICovCisgICAgcHJpdmF0ZSBDdXJyZW5jeSBjdXJyZW5jeTsKKworICAgIHN0YXRpYyBmaW5hbCBpbnQgY3VycmVudFNlcmlhbFZlcnNpb24gPSAxOworCisgICAgLyoqCisgICAgICogRGVzY3JpYmVzIHRoZSB2ZXJzaW9uIG9mIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gcHJlc2VudCBvbiB0aGUgc3RyZWFtLgorICAgICAqIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj4wPC9iPiAob3IgdW5pbml0aWFsaXplZCk6IHRoZSBKREsgMS4xIHZlcnNpb24gb2YgdGhlIHN0cmVhbSBmb3JtYXQuCisgICAgICogICAgIEluIHRoaXMgdmVyc2lvbiwgdGhlIDxjb2RlPmludDwvY29kZT4gZmllbGRzIHN1Y2ggYXMKKyAgICAgKiAgICAgPGNvZGU+bWF4aW11bUludGVnZXJEaWdpdHM8L2NvZGU+IHdlcmUgbm90IHByZXNlbnQsIGFuZCB0aGUgPGNvZGU+Ynl0ZTwvY29kZT4KKyAgICAgKiAgICAgZmllbGRzIHN1Y2ggYXMgPGNvZGU+bWF4SW50ZWdlckRpZ2l0czwvY29kZT4gYXJlIHVzZWQgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIDxsaT48Yj4xPC9iPjogdGhlIEpESyAxLjIgdmVyc2lvbiBvZiB0aGUgc3RyZWFtIGZvcm1hdC4gIFRoZSB2YWx1ZXMgb2YgdGhlCisgICAgICogICAgIDxjb2RlPmJ5dGU8L2NvZGU+IGZpZWxkcyBzdWNoIGFzIDxjb2RlPm1heEludGVnZXJEaWdpdHM8L2NvZGU+IGFyZSBpZ25vcmVkLAorICAgICAqICAgICBhbmQgdGhlIDxjb2RlPmludDwvY29kZT4gZmllbGRzIHN1Y2ggYXMgPGNvZGU+bWF4aW11bUludGVnZXJEaWdpdHM8L2NvZGU+CisgICAgICogICAgIGFyZSB1c2VkIGluc3RlYWQuCisgICAgICogPC91bD4KKyAgICAgKiBXaGVuIHN0cmVhbWluZyBvdXQgYSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+LCB0aGUgbW9zdCByZWNlbnQgZm9ybWF0CisgICAgICogKGNvcnJlc3BvbmRpbmcgdG8gdGhlIGhpZ2hlc3QgYWxsb3dhYmxlIDxjb2RlPnNlcmlhbFZlcnNpb25PblN0cmVhbTwvY29kZT4pCisgICAgICogaXMgYWx3YXlzIHdyaXR0ZW4uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgc2VyaWFsVmVyc2lvbk9uU3RyZWFtID0gY3VycmVudFNlcmlhbFZlcnNpb247CisKKyAgICAvLyBSZW1vdmVkICJpbXBsZW1lbnRzIENsb25lYWJsZSIgY2xhdXNlLiAgTmVlZHMgdG8gdXBkYXRlIHNlcmlhbGl6YXRpb24KKyAgICAvLyBJRCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtMjMwODQ2MDEyNTczMzcxMzk0NEw7CisKKyAgICAvKioKKyAgICAgKiBFbXB0eSBjb25zdHJ1Y3Rvci4gIFB1YmxpYyBmb3IgY29tcGF0aWJpbHkgd2l0aCBKREsgd2hpY2ggbGV0cyB0aGUKKyAgICAgKiBjb21waWxlciBnZW5lcmF0ZSBhIGRlZmF1bHQgcHVibGljIGNvbnN0cnVjdG9yIGV2ZW4gdGhvdWdoIHRoaXMgaXMKKyAgICAgKiBhbiBhYnN0cmFjdCBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgTnVtYmVyRm9ybWF0KCkgeworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L051bWJlckZvcm1hdFNlcnZpY2VTaGltLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXRTZXJ2aWNlU2hpbS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlODIyOTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9OdW1iZXJGb3JtYXRTZXJ2aWNlU2hpbS5qYXZhCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworLy9pbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5GYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5LZXk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZS5Mb2NhbGVLZXk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlLkxvY2FsZUtleUZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5OdW1iZXJGb3JtYXQuTnVtYmVyRm9ybWF0RmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CisKK2NsYXNzIE51bWJlckZvcm1hdFNlcnZpY2VTaGltIGV4dGVuZHMgTnVtYmVyRm9ybWF0Lk51bWJlckZvcm1hdFNoaW0geworCisgICAgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNlcnZpY2UuaXNEZWZhdWx0KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRBdmFpbGFibGVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzZXJ2aWNlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKSB7CisgICAgICAgIGlmIChzZXJ2aWNlLmlzRGVmYXVsdCgpKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNlcnZpY2UuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBORkZhY3RvcnkgZXh0ZW5kcyBMb2NhbGVLZXlGYWN0b3J5IHsKKyAgICAgICAgcHJpdmF0ZSBOdW1iZXJGb3JtYXRGYWN0b3J5IGRlbGVnYXRlOworCisgICAgICAgIE5GRmFjdG9yeShOdW1iZXJGb3JtYXRGYWN0b3J5IGRlbGVnYXRlKSB7CisgICAgICAgICAgICBzdXBlcihkZWxlZ2F0ZS52aXNpYmxlKCkgPyBWSVNJQkxFIDogSU5WSVNJQkxFKTsKKworICAgICAgICAgICAgdGhpcy5kZWxlZ2F0ZSA9IGRlbGVnYXRlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE9iamVjdCBjcmVhdGUoS2V5IGtleSwgSUNVU2VydmljZSBzZXJ2aWNlKSB7CisgICAgICAgICAgICBpZiAoaGFuZGxlc0tleShrZXkpKSB7CisgICAgICAgICAgICAgICAgTG9jYWxlS2V5IGxrZXkgPSAoTG9jYWxlS2V5KWtleTsKKyAgICAgICAgICAgICAgICBVTG9jYWxlIGxvYyA9IGxrZXkuY2Fub25pY2FsTG9jYWxlKCk7CisgICAgICAgICAgICAgICAgaW50IGtpbmQgPSBsa2V5LmtpbmQoKTsKKworICAgICAgICAgICAgICAgIE9iamVjdCByZXN1bHQgPSBkZWxlZ2F0ZS5jcmVhdGVGb3JtYXQobG9jLCBraW5kKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2VydmljZS5nZXRLZXkoa2V5LCBudWxsLCB0aGlzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIFNldCBnZXRTdXBwb3J0ZWRJRHMoKSB7CisgICAgICAgICAgICByZXR1cm4gZGVsZWdhdGUuZ2V0U3VwcG9ydGVkTG9jYWxlTmFtZXMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIE9iamVjdCByZWdpc3RlckZhY3RvcnkoTnVtYmVyRm9ybWF0RmFjdG9yeSBmYWN0b3J5KSB7CisgICAgICAgIHJldHVybiBzZXJ2aWNlLnJlZ2lzdGVyRmFjdG9yeShuZXcgTkZGYWN0b3J5KGZhY3RvcnkpKTsKKyAgICB9CisKKyAgICBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IHJlZ2lzdHJ5S2V5KSB7CisgICAgICAgIHJldHVybiBzZXJ2aWNlLnVucmVnaXN0ZXJGYWN0b3J5KChGYWN0b3J5KXJlZ2lzdHJ5S2V5KTsKKyAgICB9CisKKyAgICBOdW1iZXJGb3JtYXQgY3JlYXRlSW5zdGFuY2UoVUxvY2FsZSBkZXNpcmVkTG9jYWxlLCBpbnQgY2hvaWNlKSB7CisKKyAgICAvLyB1c2Ugc2VydmljZSBjYWNoZQorLy8gICAgICAgICAgaWYgKHNlcnZpY2UuaXNEZWZhdWx0KCkpIHsKKy8vICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyRm9ybWF0LmNyZWF0ZUluc3RhbmNlKGRlc2lyZWRMb2NhbGUsIGNob2ljZSk7CisvLyAgICAgICAgICB9CisKKyAgICAgICAgVUxvY2FsZVtdIGFjdHVhbExvYyA9IG5ldyBVTG9jYWxlWzFdOworICAgICAgICBpZiAoZGVzaXJlZExvY2FsZS5lcXVhbHMoVUxvY2FsZS5ST09UKSkgeworICAgICAgICAgICAgZGVzaXJlZExvY2FsZSA9IFVMb2NhbGUuUk9PVDsKKyAgICAgICAgfQorICAgICAgICBOdW1iZXJGb3JtYXQgZm10ID0gKE51bWJlckZvcm1hdClzZXJ2aWNlLmdldChkZXNpcmVkTG9jYWxlLCBjaG9pY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbExvYyk7CisgICAgICAgIGlmIChmbXQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiVW5hYmxlIHRvIGNvbnN0cnVjdCBOdW1iZXJGb3JtYXQiLCAiIiwgIiIpOworICAgICAgICB9CisgICAgICAgIGZtdCA9IChOdW1iZXJGb3JtYXQpZm10LmNsb25lKCk7CisKKyAgICAgICAgVUxvY2FsZSB1bG9jID0gYWN0dWFsTG9jWzBdOworICAgICAgICBmbXQuc2V0TG9jYWxlKHVsb2MsIHVsb2MpOyAvLyBzZXJ2aWNlcyBtYWtlIG5vIGRpc3RpbmN0aW9uIGJldHdlZW4gYWN0dWFsICYgdmFsaWQKKyAgICAgICAgcmV0dXJuIGZtdDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBORlNlcnZpY2UgZXh0ZW5kcyBJQ1VMb2NhbGVTZXJ2aWNlIHsKKyAgICAgICAgTkZTZXJ2aWNlKCkgeworICAgICAgICAgICAgc3VwZXIoIk51bWJlckZvcm1hdCIpOworCisgICAgICAgICAgICBjbGFzcyBSQk51bWJlckZvcm1hdEZhY3RvcnkgZXh0ZW5kcyBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkgeworICAgICAgICAgICAgICAgIHByb3RlY3RlZCBPYmplY3QgaGFuZGxlQ3JlYXRlKFVMb2NhbGUgbG9jLCBpbnQga2luZCwgSUNVU2VydmljZSBzZXJ2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXJGb3JtYXQuY3JlYXRlSW5zdGFuY2UobG9jLCBraW5kKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRmFjdG9yeShuZXcgUkJOdW1iZXJGb3JtYXRGYWN0b3J5KCkpOworICAgICAgICAgICAgbWFya0RlZmF1bHQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBJQ1VMb2NhbGVTZXJ2aWNlIHNlcnZpY2UgPSBuZXcgTkZTZXJ2aWNlKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9QdW55Y29kZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUHVueWNvZGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjdhNWIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUHVueWNvZGUuamF2YQpAQCAtMCwwICsxLDQ3NiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsKKworLyoqCisgKiBQb3J0ZWQgY29kZSBmcm9tIElDVSBwdW55Y29kZS5jIAorICogQGF1dGhvciByYW0KKyAqLworCisvKiBQYWNrYWdlIFByaXZhdGUgY2xhc3MgKi8KK2ZpbmFsIGNsYXNzIFB1bnljb2RlIHsKKworICAgIC8qIFB1bnljb2RlIHBhcmFtZXRlcnMgZm9yIEJvb3RzdHJpbmcgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQkFTRSAgICAgICAgICAgPSAzNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE1JTiAgICAgICAgICAgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUTUFYICAgICAgICAgICA9IDI2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTS0VXICAgICAgICAgICA9IDM4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBEQU1QICAgICAgICAgICA9IDcwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5JVElBTF9CSUFTICAgPSA3MjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5JVElBTF9OICAgICAgPSAweDgwOworICAgIAorICAgIC8qICJCYXNpYyIgVW5pY29kZS9BU0NJSSBjb2RlIHBvaW50cyAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIWVBIRU4gICAgICAgICA9IDB4MmQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERFTElNSVRFUiAgICAgID0gSFlQSEVOOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBaRVJPICAgICAgICAgICA9IDB4MzA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5JTkUgICAgICAgICAgID0gMHgzOTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU01BTExfQSAgICAgICAgPSAweDYxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTTUFMTF9aICAgICAgICA9IDB4N2E7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENBUElUQUxfQSAgICAgID0gMHg0MTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0FQSVRBTF9aICAgICAgPSAweDVhOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfQ1BfQ09VTlQgICA9IDIwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVUlOVF9NQUdJQyAgICAgPSAweDgwMDAwMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgVUxPTkdfTUFHSUMgICA9IDB4ODAwMDAwMDAwMDAwMDAwMEw7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGFkYXB0QmlhcyhpbnQgZGVsdGEsIGludCBsZW5ndGgsIGJvb2xlYW4gZmlyc3RUaW1lKXsKKyAgICAgICAgaWYoZmlyc3RUaW1lKXsKKyAgICAgICAgICAgIGRlbHRhIC89REFNUDsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBkZWx0YSAvPSAgMjsKKyAgICAgICAgfQorICAgICAgICBkZWx0YSArPSBkZWx0YS9sZW5ndGg7CisKKyAgICAgICAgaW50IGNvdW50PTA7CisgICAgICAgIGZvcig7IGRlbHRhPigoQkFTRS1UTUlOKSpUTUFYKS8yOyBjb3VudCs9QkFTRSkgeworICAgICAgICAgICAgZGVsdGEvPShCQVNFLVRNSU4pOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGNvdW50KygoKEJBU0UtVE1JTisxKSpkZWx0YSkvKGRlbHRhK1NLRVcpKTsgICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBiYXNpY1RvRGlnaXRbXSBjb250YWlucyB0aGUgbnVtZXJpYyB2YWx1ZSBvZiBhIGJhc2ljIGNvZGUKKyAgICAgKiBwb2ludCAoZm9yIHVzZSBpbiByZXByZXNlbnRpbmcgaW50ZWdlcnMpIGluIHRoZSByYW5nZSAwIHRvCisgICAgICogQkFTRS0xLCBvciAtMSBpZiBiIGlzIGRvZXMgbm90IHJlcHJlc2VudCBhIHZhbHVlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnRbXSAgICBiYXNpY1RvRGlnaXQ9IG5ldyBpbnRbXXsKKyAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgIAorICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgICAgICAgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisgICAgCisgICAgICAgIC0xLCAgMCwgIDEsICAyLCAgMywgIDQsICA1LCAgNiwgIDcsICA4LCAgOSwgMTAsIDExLCAxMiwgMTMsIDE0LAorICAgICAgICAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgICAKKyAgICAgICAgLTEsICAwLCAgMSwgIDIsICAzLCAgNCwgIDUsICA2LCAgNywgIDgsICA5LCAxMCwgMTEsIDEyLCAxMywgMTQsCisgICAgICAgIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgIAorICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisgICAgCisgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgICAKKyAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgIAorICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEKKyAgICB9OworCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgc3RhdGljIGNoYXIgYXNjaWlDYXNlTWFwKGNoYXIgYiwgYm9vbGVhbiB1cHBlcmNhc2UpIHsKKyAgICAgICAgaWYodXBwZXJjYXNlKSB7CisgICAgICAgICAgICBpZihTTUFMTF9BPD1iICYmIGI8PVNNQUxMX1opIHsKKyAgICAgICAgICAgICAgICBiLT0oU01BTExfQS1DQVBJVEFMX0EpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYoQ0FQSVRBTF9BPD1iICYmIGI8PUNBUElUQUxfWikgeworICAgICAgICAgICAgICAgIGIrPShTTUFMTF9BLUNBUElUQUxfQSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGI7CisgICAgfSAgICAKKyAgICAvLy9DTE9WRVI6T04KKyAgICAvKioKKyAgICAgKiBkaWdpdFRvQmFzaWMoKSByZXR1cm5zIHRoZSBiYXNpYyBjb2RlIHBvaW50IHdob3NlIHZhbHVlCisgICAgICogKHdoZW4gdXNlZCBmb3IgcmVwcmVzZW50aW5nIGludGVnZXJzKSBpcyBkLCB3aGljaCBtdXN0IGJlIGluIHRoZQorICAgICAqIHJhbmdlIDAgdG8gQkFTRS0xLiBUaGUgbG93ZXJjYXNlIGZvcm0gaXMgdXNlZCB1bmxlc3MgdGhlIHVwcGVyY2FzZSBmbGFnIGlzCisgICAgICogbm9uemVybywgaW4gd2hpY2ggY2FzZSB0aGUgdXBwZXJjYXNlIGZvcm0gaXMgdXNlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjaGFyIGRpZ2l0VG9CYXNpYyhpbnQgZGlnaXQsIGJvb2xlYW4gdXBwZXJjYXNlKSB7CisgICAgICAgIC8qICAwLi4yNSBtYXAgdG8gQVNDSUkgYS4ueiBvciBBLi5aICovCisgICAgICAgIC8qIDI2Li4zNSBtYXAgdG8gQVNDSUkgMC4uOSAgICAgICAgICovCisgICAgICAgIGlmKGRpZ2l0PDI2KSB7CisgICAgICAgICAgICBpZih1cHBlcmNhc2UpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGNoYXIpKENBUElUQUxfQStkaWdpdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAoY2hhcikoU01BTExfQStkaWdpdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gKGNoYXIpKChaRVJPLTI2KStkaWdpdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogQ29udmVydHMgVW5pY29kZSB0byBQdW55Y29kZS4KKyAgICAgKiBUaGUgaW5wdXQgc3RyaW5nIG11c3Qgbm90IGNvbnRhaW4gc2luZ2xlLCB1bnBhaXJlZCBzdXJyb2dhdGVzLgorICAgICAqIFRoZSBvdXRwdXQgd2lsbCBiZSByZXByZXNlbnRlZCBhcyBhbiBhcnJheSBvZiBBU0NJSSBjb2RlIHBvaW50cy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc3JjCisgICAgICogQHBhcmFtIGNhc2VGbGFncworICAgICAqIEByZXR1cm4KKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgZW5jb2RlKFN0cmluZ0J1ZmZlciBzcmMsIGJvb2xlYW5bXSBjYXNlRmxhZ3MpIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIAorICAgICAgICBpbnRbXSBjcEJ1ZmZlciA9IG5ldyBpbnRbTUFYX0NQX0NPVU5UXTsKKyAgICAgICAgaW50IG4sIGRlbHRhLCBoYW5kbGVkQ1BDb3VudCwgYmFzaWNMZW5ndGgsIGRlc3RMZW5ndGgsIGJpYXMsIGosIG0sIHEsIGssIHQsIHNyY0NQQ291bnQ7CisgICAgICAgIGNoYXIgYywgYzI7CisgICAgICAgIGludCBzcmNMZW5ndGggPSBzcmMubGVuZ3RoKCk7CisgICAgICAgIGludCBkZXN0Q2FwYWNpdHkgPSBNQVhfQ1BfQ09VTlQ7CisgICAgICAgIGNoYXJbXSBkZXN0ID0gbmV3IGNoYXJbZGVzdENhcGFjaXR5XTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogSGFuZGxlIHRoZSBiYXNpYyBjb2RlIHBvaW50cyBhbmQKKyAgICAgICAgICogY29udmVydCBleHRlbmRlZCBvbmVzIHRvIFVURi0zMiBpbiBjcEJ1ZmZlciAoY2FzZUZsYWcgaW4gc2lnbiBiaXQpOgorICAgICAgICAgKi8KKyAgICAgICAgc3JjQ1BDb3VudD1kZXN0TGVuZ3RoPTA7CisgICAgICAgIAorICAgICAgICBmb3Ioaj0wOyBqPHNyY0xlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBpZihzcmNDUENvdW50PT1NQVhfQ1BfQ09VTlQpIHsKKyAgICAgICAgICAgICAgICAvKiB0b28gbWFueSBpbnB1dCBjb2RlIHBvaW50cyAqLworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjPXNyYy5jaGFyQXQoaik7CisgICAgICAgICAgICBpZihpc0Jhc2ljKGMpKSB7CisgICAgICAgICAgICAgICAgaWYoZGVzdExlbmd0aDxkZXN0Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgY3BCdWZmZXJbc3JjQ1BDb3VudCsrXT0wOworICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RMZW5ndGhdPQorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZUZsYWdzIT1udWxsID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc2NpaUNhc2VNYXAoKGNoYXIpYywgY2FzZUZsYWdzW2pdKSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKytkZXN0TGVuZ3RoOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBuPSgoY2FzZUZsYWdzIT1udWxsICYmIGNhc2VGbGFnc1tqXSk/IDEgOiAwKTw8MzFMOworICAgICAgICAgICAgICAgIGlmKCFVVEYxNi5pc1N1cnJvZ2F0ZShjKSkgeworICAgICAgICAgICAgICAgICAgICBufD1jOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoYykgJiYgKGorMSk8c3JjTGVuZ3RoICYmIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoYzI9c3JjLmNoYXJBdChqKzEpKSkgeworICAgICAgICAgICAgICAgICAgICArK2o7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBufD1VQ2hhcmFjdGVyLmdldENvZGVQb2ludChjLCBjMik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogZXJyb3I6IHVubWF0Y2hlZCBzdXJyb2dhdGUgKi8KKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyIGZvdW5kIixTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uSUxMRUdBTF9DSEFSX0ZPVU5EKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY3BCdWZmZXJbc3JjQ1BDb3VudCsrXT1uOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogRmluaXNoIHRoZSBiYXNpYyBzdHJpbmcgLSBpZiBpdCBpcyBub3QgZW1wdHkgLSB3aXRoIGEgZGVsaW1pdGVyLiAqLworICAgICAgICBiYXNpY0xlbmd0aD1kZXN0TGVuZ3RoOworICAgICAgICBpZihiYXNpY0xlbmd0aD4wKSB7CisgICAgICAgICAgICBpZihkZXN0TGVuZ3RoPGRlc3RDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgIGRlc3RbZGVzdExlbmd0aF09REVMSU1JVEVSOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKytkZXN0TGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogaGFuZGxlZENQQ291bnQgaXMgdGhlIG51bWJlciBvZiBjb2RlIHBvaW50cyB0aGF0IGhhdmUgYmVlbiBoYW5kbGVkCisgICAgICAgICAqIGJhc2ljTGVuZ3RoIGlzIHRoZSBudW1iZXIgb2YgYmFzaWMgY29kZSBwb2ludHMKKyAgICAgICAgICogZGVzdExlbmd0aCBpcyB0aGUgbnVtYmVyIG9mIGNoYXJzIHRoYXQgaGF2ZSBiZWVuIG91dHB1dAorICAgICAgICAgKi8KKworICAgICAgICAvKiBJbml0aWFsaXplIHRoZSBzdGF0ZTogKi8KKyAgICAgICAgbj1JTklUSUFMX047CisgICAgICAgIGRlbHRhPTA7CisgICAgICAgIGJpYXM9SU5JVElBTF9CSUFTOworCisgICAgICAgIC8qIE1haW4gZW5jb2RpbmcgbG9vcDogKi8KKyAgICAgICAgZm9yKGhhbmRsZWRDUENvdW50PWJhc2ljTGVuZ3RoOyBoYW5kbGVkQ1BDb3VudDxzcmNDUENvdW50OyAvKiBubyBvcCAqLykgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEFsbCBub24tYmFzaWMgY29kZSBwb2ludHMgPCBuIGhhdmUgYmVlbiBoYW5kbGVkIGFscmVhZHkuCisgICAgICAgICAgICAgKiBGaW5kIHRoZSBuZXh0IGxhcmdlciBvbmU6CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGZvcihtPTB4N2ZmZmZmZmYsIGo9MDsgajxzcmNDUENvdW50OyArK2opIHsKKyAgICAgICAgICAgICAgICBxPWNwQnVmZmVyW2pdJjB4N2ZmZmZmZmY7IC8qIHJlbW92ZSBjYXNlIGZsYWcgZnJvbSB0aGUgc2lnbiBiaXQgKi8KKyAgICAgICAgICAgICAgICBpZihuPD1xICYmIHE8bSkgeworICAgICAgICAgICAgICAgICAgICBtPXE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogSW5jcmVhc2UgZGVsdGEgZW5vdWdoIHRvIGFkdmFuY2UgdGhlIGRlY29kZXIncworICAgICAgICAgICAgICogPG4saT4gc3RhdGUgdG8gPG0sMD4sIGJ1dCBndWFyZCBhZ2FpbnN0IG92ZXJmbG93OgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZihtLW4+KDB4N2ZmZmZmZmYtTUFYX0NQX0NPVU5ULWRlbHRhKS8oaGFuZGxlZENQQ291bnQrMSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJJbnRlcm5hbCBwcm9ncmFtIGVycm9yIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkZWx0YSs9KG0tbikqKGhhbmRsZWRDUENvdW50KzEpOworICAgICAgICAgICAgbj1tOworCisgICAgICAgICAgICAvKiBFbmNvZGUgYSBzZXF1ZW5jZSBvZiBzYW1lIGNvZGUgcG9pbnRzIG4gKi8KKyAgICAgICAgICAgIGZvcihqPTA7IGo8c3JjQ1BDb3VudDsgKytqKSB7CisgICAgICAgICAgICAgICAgcT1jcEJ1ZmZlcltqXSYweDdmZmZmZmZmOyAvKiByZW1vdmUgY2FzZSBmbGFnIGZyb20gdGhlIHNpZ24gYml0ICovCisgICAgICAgICAgICAgICAgaWYocTxuKSB7CisgICAgICAgICAgICAgICAgICAgICsrZGVsdGE7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHE9PW4pIHsKKyAgICAgICAgICAgICAgICAgICAgLyogUmVwcmVzZW50IGRlbHRhIGFzIGEgZ2VuZXJhbGl6ZWQgdmFyaWFibGUtbGVuZ3RoIGludGVnZXI6ICovCisgICAgICAgICAgICAgICAgICAgIGZvcihxPWRlbHRhLCBrPUJBU0U7IC8qIG5vIGNvbmRpdGlvbiAqLzsgays9QkFTRSkgeworCisgICAgICAgICAgICAgICAgICAgICAgICAvKiogUkFNOiBjb21tZW50IG91dCB0aGUgb2xkIGNvZGUgZm9yIGNvbmZvcm1hbmNlIHdpdGggZHJhZnQtaWV0Zi1pZG4tcHVueWNvZGUtMDMudHh0ICAgCisKKyAgICAgICAgICAgICAgICAgICAgICAgIHQ9ay1iaWFzOworICAgICAgICAgICAgICAgICAgICAgICAgaWYodDxUTUlOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdD1UTUlOOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKHQ+VE1BWCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQ9VE1BWDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgdD1rLWJpYXM7CisgICAgICAgICAgICAgICAgICAgICAgICBpZih0PFRNSU4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0PVRNSU47CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoaz49KGJpYXMrVE1BWCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0PVRNQVg7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKHE8dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZihkZXN0TGVuZ3RoPGRlc3RDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RbZGVzdExlbmd0aCsrXT1kaWdpdFRvQmFzaWModCsocS10KSUoQkFTRS10KSwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcT0ocS10KS8oQkFTRS10KTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmKGRlc3RMZW5ndGg8ZGVzdENhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0W2Rlc3RMZW5ndGgrK109ZGlnaXRUb0Jhc2ljKHEsIChjcEJ1ZmZlcltqXTwwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYmlhcz1hZGFwdEJpYXMoZGVsdGEsIGhhbmRsZWRDUENvdW50KzEsKGhhbmRsZWRDUENvdW50PT1iYXNpY0xlbmd0aCkpOworICAgICAgICAgICAgICAgICAgICBkZWx0YT0wOworICAgICAgICAgICAgICAgICAgICArK2hhbmRsZWRDUENvdW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgKytkZWx0YTsKKyAgICAgICAgICAgICsrbjsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKGRlc3QsIDAsIGRlc3RMZW5ndGgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzQmFzaWMoaW50IGNoKXsKKyAgICAgICAgcmV0dXJuIChjaCA8IElOSVRJQUxfTik7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzQmFzaWNVcHBlckNhc2UoaW50IGNoKXsKKyAgICAgICAgcmV0dXJuKCBDQVBJVEFMX0E8PWNoICYmIGNoID49IENBUElUQUxfWik7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNTdXJyb2dhdGUoaW50IGNoKXsKKyAgICAgICAgcmV0dXJuICgoKGNoKSYweGZmZmZmODAwKT09MHhkODAwKTsKKyAgICB9CisgICAgLyoqCisgICAgICogQ29udmVydHMgUHVueWNvZGUgdG8gVW5pY29kZS4KKyAgICAgKiBUaGUgVW5pY29kZSBzdHJpbmcgd2lsbCBiZSBhdCBtb3N0IGFzIGxvbmcgYXMgdGhlIFB1bnljb2RlIHN0cmluZy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc3JjCisgICAgICogQHBhcmFtIGNhc2VGbGFncworICAgICAqIEByZXR1cm4KKyAgICAgKiBAdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgZGVjb2RlKFN0cmluZ0J1ZmZlciBzcmMsIGJvb2xlYW5bXSBjYXNlRmxhZ3MpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgICAgIGludCBzcmNMZW5ndGggPSBzcmMubGVuZ3RoKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBuLCBkZXN0TGVuZ3RoLCBpLCBiaWFzLCBiYXNpY0xlbmd0aCwgaiwgaW4sIG9sZGksIHcsIGssIGRpZ2l0LCB0LAorICAgICAgICAgICAgICAgIGRlc3RDUENvdW50LCBmaXJzdFN1cHBsZW1lbnRhcnlJbmRleCwgY3BMZW5ndGg7CisgICAgICAgIGNoYXIgYjsKKyAgICAgICAgaW50IGRlc3RDYXBhY2l0eSA9IE1BWF9DUF9DT1VOVDsKKyAgICAgICAgY2hhcltdIGRlc3QgPSBuZXcgY2hhcltkZXN0Q2FwYWNpdHldOworCisgICAgICAgIC8qCisgICAgICAgICAqIEhhbmRsZSB0aGUgYmFzaWMgY29kZSBwb2ludHM6CisgICAgICAgICAqIExldCBiYXNpY0xlbmd0aCBiZSB0aGUgbnVtYmVyIG9mIGlucHV0IGNvZGUgcG9pbnRzCisgICAgICAgICAqIGJlZm9yZSB0aGUgbGFzdCBkZWxpbWl0ZXIsIG9yIDAgaWYgdGhlcmUgaXMgbm9uZSwKKyAgICAgICAgICogdGhlbiBjb3B5IHRoZSBmaXJzdCBiYXNpY0xlbmd0aCBjb2RlIHBvaW50cyB0byB0aGUgb3V0cHV0LgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgdHdvIGZvbGxvd2luZyBsb29wcyBpdGVyYXRlIGJhY2t3YXJkLgorICAgICAgICAgKi8KKyAgICAgICAgZm9yKGo9c3JjTGVuZ3RoOyBqPjA7KSB7CisgICAgICAgICAgICBpZihzcmMuY2hhckF0KC0taik9PURFTElNSVRFUikgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRlc3RMZW5ndGg9YmFzaWNMZW5ndGg9ZGVzdENQQ291bnQ9ajsKKworICAgICAgICB3aGlsZShqPjApIHsKKyAgICAgICAgICAgIGI9c3JjLmNoYXJBdCgtLWopOworICAgICAgICAgICAgaWYoIWlzQmFzaWMoYikpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJJbGxlZ2FsIGNoYXIgZm91bmQiLCBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uSU5WQUxJRF9DSEFSX0ZPVU5EKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYoajxkZXN0Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICBkZXN0W2pdPSBiOworCisgICAgICAgICAgICAgICAgaWYoY2FzZUZsYWdzIT1udWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2VGbGFnc1tqXT1pc0Jhc2ljVXBwZXJDYXNlKGIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qIEluaXRpYWxpemUgdGhlIHN0YXRlOiAqLworICAgICAgICBuPUlOSVRJQUxfTjsKKyAgICAgICAgaT0wOworICAgICAgICBiaWFzPUlOSVRJQUxfQklBUzsKKyAgICAgICAgZmlyc3RTdXBwbGVtZW50YXJ5SW5kZXg9MTAwMDAwMDAwMDsKKworICAgICAgICAvKgorICAgICAgICAgKiBNYWluIGRlY29kaW5nIGxvb3A6CisgICAgICAgICAqIFN0YXJ0IGp1c3QgYWZ0ZXIgdGhlIGxhc3QgZGVsaW1pdGVyIGlmIGFueQorICAgICAgICAgKiBiYXNpYyBjb2RlIHBvaW50cyB3ZXJlIGNvcGllZDsgc3RhcnQgYXQgdGhlIGJlZ2lubmluZyBvdGhlcndpc2UuCisgICAgICAgICAqLworICAgICAgICBmb3IoaW49YmFzaWNMZW5ndGg+MCA/IGJhc2ljTGVuZ3RoKzEgOiAwOyBpbjxzcmNMZW5ndGg7IC8qIG5vIG9wICovKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogaW4gaXMgdGhlIGluZGV4IG9mIHRoZSBuZXh0IGNoYXJhY3RlciB0byBiZSBjb25zdW1lZCwgYW5kCisgICAgICAgICAgICAgKiBkZXN0Q1BDb3VudCBpcyB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIHRoZSBvdXRwdXQgYXJyYXkuCisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogRGVjb2RlIGEgZ2VuZXJhbGl6ZWQgdmFyaWFibGUtbGVuZ3RoIGludGVnZXIgaW50byBkZWx0YSwKKyAgICAgICAgICAgICAqIHdoaWNoIGdldHMgYWRkZWQgdG8gaS4gIFRoZSBvdmVyZmxvdyBjaGVja2luZyBpcyBlYXNpZXIKKyAgICAgICAgICAgICAqIGlmIHdlIGluY3JlYXNlIGkgYXMgd2UgZ28sIHRoZW4gc3VidHJhY3Qgb2ZmIGl0cyBzdGFydGluZworICAgICAgICAgICAgICogdmFsdWUgYXQgdGhlIGVuZCB0byBvYnRhaW4gZGVsdGEuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGZvcihvbGRpPWksIHc9MSwgaz1CQVNFOyAvKiBubyBjb25kaXRpb24gKi87IGsrPUJBU0UpIHsKKyAgICAgICAgICAgICAgICBpZihpbj49c3JjTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIklsbGVnYWwgY2hhciBmb3VuZCIsIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5JTExFR0FMX0NIQVJfRk9VTkQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGRpZ2l0PWJhc2ljVG9EaWdpdFsoYnl0ZSlzcmMuY2hhckF0KGluKyspXTsKKyAgICAgICAgICAgICAgICBpZihkaWdpdDwwKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIkludmFsaWQgY2hhciBmb3VuZCIsIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5JTlZBTElEX0NIQVJfRk9VTkQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihkaWdpdD4oMHg3ZmZmZmZmZi1pKS93KSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGludGVnZXIgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyIGZvdW5kIiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklMTEVHQUxfQ0hBUl9GT1VORCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaSs9ZGlnaXQqdzsKKyAgICAgICAgICAgICAgICB0PWstYmlhczsKKyAgICAgICAgICAgICAgICBpZih0PFRNSU4pIHsKKyAgICAgICAgICAgICAgICAgICAgdD1UTUlOOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihrPj0oYmlhcytUTUFYKSkgeworICAgICAgICAgICAgICAgICAgICB0PVRNQVg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGRpZ2l0PHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYodz4weDdmZmZmZmZmLyhCQVNFLXQpKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGludGVnZXIgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyIGZvdW5kIiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklMTEVHQUxfQ0hBUl9GT1VORCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHcqPUJBU0UtdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIE1vZGlmaWNhdGlvbiBmcm9tIHNhbXBsZSBjb2RlOgorICAgICAgICAgICAgICogSW5jcmVtZW50cyBkZXN0Q1BDb3VudCBoZXJlLAorICAgICAgICAgICAgICogd2hlcmUgbmVlZGVkIGluc3RlYWQgb2YgaW4gZm9yKCkgbG9vcCB0YWlsLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICArK2Rlc3RDUENvdW50OworICAgICAgICAgICAgYmlhcz1hZGFwdEJpYXMoaS1vbGRpLCBkZXN0Q1BDb3VudCwgKG9sZGk9PTApKTsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIGkgd2FzIHN1cHBvc2VkIHRvIHdyYXAgYXJvdW5kIGZyb20gKGluY3JlbWVudGVkKSBkZXN0Q1BDb3VudCB0byAwLAorICAgICAgICAgICAgICogaW5jcmVtZW50aW5nIG4gZWFjaCB0aW1lLCBzbyB3ZSdsbCBmaXggdGhhdCBub3c6CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmKGkvZGVzdENQQ291bnQ+KDB4N2ZmZmZmZmYtbikpIHsKKyAgICAgICAgICAgICAgICAvKiBpbnRlZ2VyIG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbigiSWxsZWdhbCBjaGFyIGZvdW5kIiwgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLklMTEVHQUxfQ0hBUl9GT1VORCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG4rPWkvZGVzdENQQ291bnQ7CisgICAgICAgICAgICBpJT1kZXN0Q1BDb3VudDsKKyAgICAgICAgICAgIC8qIG5vdCBuZWVkZWQgZm9yIFB1bnljb2RlOiAqLworICAgICAgICAgICAgLyogaWYgKGRlY29kZV9kaWdpdChuKSA8PSBCQVNFKSByZXR1cm4gcHVueWNvZGVfaW52YWxpZF9pbnB1dDsgKi8KKworICAgICAgICAgICAgaWYobj4weDEwZmZmZiB8fCBpc1N1cnJvZ2F0ZShuKSkgeworICAgICAgICAgICAgICAgIC8qIFVuaWNvZGUgY29kZSBwb2ludCBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIklsbGVnYWwgY2hhciBmb3VuZCIsIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbi5JTExFR0FMX0NIQVJfRk9VTkQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBJbnNlcnQgbiBhdCBwb3NpdGlvbiBpIG9mIHRoZSBvdXRwdXQ6ICovCisgICAgICAgICAgICBjcExlbmd0aD1VVEYxNi5nZXRDaGFyQ291bnQobik7CisgICAgICAgICAgICBpZigoZGVzdExlbmd0aCtjcExlbmd0aCk8ZGVzdENhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgaW50IGNvZGVVbml0SW5kZXg7CisKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIEhhbmRsZSBpbmRleGVzIHdoZW4gc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyBhcmUgcHJlc2VudC4KKyAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAqIEluIGFsbW9zdCBhbGwgY2FzZXMsIHRoZXJlIHdpbGwgYmUgb25seSBCTVAgY29kZSBwb2ludHMgYmVmb3JlIGkKKyAgICAgICAgICAgICAgICAgKiBhbmQgZXZlbiBpbiB0aGUgZW50aXJlIHN0cmluZy4KKyAgICAgICAgICAgICAgICAgKiBUaGlzIGlzIGhhbmRsZWQgd2l0aCB0aGUgc2FtZSBlZmZpY2llbmN5IGFzIHdpdGggVVRGLTMyLgorICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICogT25seSB0aGUgcmFyZSBjYXNlcyB3aXRoIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgYXJlIGhhbmRsZWQKKyAgICAgICAgICAgICAgICAgKiBtb3JlIHNsb3dseSAtIGJ1dCBub3QgdG9vIGJhZCBzaW5jZSB0aGlzIGlzIGFuIGluc2VydGlvbiBhbnl3YXkuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgaWYoaTw9Zmlyc3RTdXBwbGVtZW50YXJ5SW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgY29kZVVuaXRJbmRleD1pOworICAgICAgICAgICAgICAgICAgICBpZihjcExlbmd0aD4xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdFN1cHBsZW1lbnRhcnlJbmRleD1jb2RlVW5pdEluZGV4OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgKytmaXJzdFN1cHBsZW1lbnRhcnlJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNvZGVVbml0SW5kZXg9Zmlyc3RTdXBwbGVtZW50YXJ5SW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGNvZGVVbml0SW5kZXg9VVRGMTYubW92ZUNvZGVQb2ludE9mZnNldChkZXN0LCAwLCBkZXN0TGVuZ3RoLCBjb2RlVW5pdEluZGV4LCBpLWNvZGVVbml0SW5kZXgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qIHVzZSB0aGUgVUNoYXIgaW5kZXggY29kZVVuaXRJbmRleCBpbnN0ZWFkIG9mIHRoZSBjb2RlIHBvaW50IGluZGV4IGkgKi8KKyAgICAgICAgICAgICAgICBpZihjb2RlVW5pdEluZGV4PGRlc3RMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShkZXN0LCBjb2RlVW5pdEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QsIGNvZGVVbml0SW5kZXgrY3BMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVzdExlbmd0aC1jb2RlVW5pdEluZGV4KSk7CisgICAgICAgICAgICAgICAgICAgIGlmKGNhc2VGbGFncyE9bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShjYXNlRmxhZ3MsIGNvZGVVbml0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VGbGFncywgY29kZVVuaXRJbmRleCtjcExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdExlbmd0aC1jb2RlVW5pdEluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihjcExlbmd0aD09MSkgeworICAgICAgICAgICAgICAgICAgICAvKiBCTVAsIGluc2VydCBvbmUgY29kZSB1bml0ICovCisgICAgICAgICAgICAgICAgICAgIGRlc3RbY29kZVVuaXRJbmRleF09KGNoYXIpbjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvKiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciwgaW5zZXJ0IHR3byBjb2RlIHVuaXRzICovCisgICAgICAgICAgICAgICAgICAgIGRlc3RbY29kZVVuaXRJbmRleF09VVRGMTYuZ2V0TGVhZFN1cnJvZ2F0ZShuKTsKKyAgICAgICAgICAgICAgICAgICAgZGVzdFtjb2RlVW5pdEluZGV4KzFdPVVURjE2LmdldFRyYWlsU3Vycm9nYXRlKG4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihjYXNlRmxhZ3MhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogQ2FzZSBvZiBsYXN0IGNoYXJhY3RlciBkZXRlcm1pbmVzIHVwcGVyY2FzZSBmbGFnOiAqLworICAgICAgICAgICAgICAgICAgICBjYXNlRmxhZ3NbY29kZVVuaXRJbmRleF09aXNCYXNpY1VwcGVyQ2FzZShzcmMuY2hhckF0KGluLTEpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYoY3BMZW5ndGg9PTIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VGbGFnc1tjb2RlVW5pdEluZGV4KzFdPWZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVzdExlbmd0aCs9Y3BMZW5ndGg7CisgICAgICAgICAgICArK2k7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LmFwcGVuZChkZXN0LCAwLCBkZXN0TGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1F1YW50aWZpZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1F1YW50aWZpZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMjZkNjA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUXVhbnRpZmllci5qYXZhCkBAIC0wLDAgKzEsMTE1IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworY2xhc3MgUXVhbnRpZmllciBpbXBsZW1lbnRzIFVuaWNvZGVNYXRjaGVyIHsKKworICAgIHByaXZhdGUgVW5pY29kZU1hdGNoZXIgbWF0Y2hlcjsKKworICAgIHByaXZhdGUgaW50IG1pbkNvdW50OworCisgICAgcHJpdmF0ZSBpbnQgbWF4Q291bnQ7CisKKyAgICAvKioKKyAgICAgKiBNYXhpbXVtIGNvdW50IGEgcXVhbnRpZmllciBjYW4gaGF2ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVggPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKworICAgIHB1YmxpYyBRdWFudGlmaWVyKFVuaWNvZGVNYXRjaGVyIHRoZU1hdGNoZXIsCisgICAgICAgICAgICAgICAgICAgICAgaW50IHRoZU1pbkNvdW50LCBpbnQgdGhlTWF4Q291bnQpIHsKKyAgICAgICAgaWYgKHRoZU1hdGNoZXIgPT0gbnVsbCB8fCBtaW5Db3VudCA8IDAgfHwgbWF4Q291bnQgPCAwIHx8IG1pbkNvdW50ID4gbWF4Q291bnQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICBtYXRjaGVyID0gdGhlTWF0Y2hlcjsKKyAgICAgICAgbWluQ291bnQgPSB0aGVNaW5Db3VudDsKKyAgICAgICAgbWF4Q291bnQgPSB0aGVNYXhDb3VudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnQgVW5pY29kZU1hdGNoZXIgQVBJLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbWF0Y2hlcyhSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICBpbnQgc3RhcnQgPSBvZmZzZXRbMF07CisgICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgIHdoaWxlIChjb3VudCA8IG1heENvdW50KSB7CisgICAgICAgICAgICBpbnQgcG9zID0gb2Zmc2V0WzBdOworICAgICAgICAgICAgaW50IG0gPSBtYXRjaGVyLm1hdGNoZXModGV4dCwgb2Zmc2V0LCBsaW1pdCwgaW5jcmVtZW50YWwpOworICAgICAgICAgICAgaWYgKG0gPT0gVV9NQVRDSCkgeworICAgICAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICAgICAgaWYgKHBvcyA9PSBvZmZzZXRbMF0pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgb2Zmc2V0IGhhcyBub3QgbW92ZWQgd2UgaGF2ZSBhIHplcm8td2lkdGggbWF0Y2guCisgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGtlZXAgbWF0Y2hpbmcgaXQgaW5maW5pdGVseS4KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChpbmNyZW1lbnRhbCAmJiBtID09IFVfUEFSVElBTF9NQVRDSCkgeworICAgICAgICAgICAgICAgIHJldHVybiBVX1BBUlRJQUxfTUFUQ0g7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpbmNyZW1lbnRhbCAmJiBvZmZzZXRbMF0gPT0gbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBVX1BBUlRJQUxfTUFUQ0g7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50ID49IG1pbkNvdW50KSB7CisgICAgICAgICAgICByZXR1cm4gVV9NQVRDSDsKKyAgICAgICAgfQorICAgICAgICBvZmZzZXRbMF0gPSBzdGFydDsKKyAgICAgICAgcmV0dXJuIFVfTUlTTUFUQ0g7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50IFVuaWNvZGVNYXRjaGVyIEFQSQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9QYXR0ZXJuKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChtYXRjaGVyLnRvUGF0dGVybihlc2NhcGVVbnByaW50YWJsZSkpOworICAgICAgICBpZiAobWluQ291bnQgPT0gMCkgeworICAgICAgICAgICAgaWYgKG1heENvdW50ID09IDEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgnPycpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1heENvdW50ID09IE1BWCkgeworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCcqJykudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGVsc2UgZmFsbCB0aHJvdWdoCisgICAgICAgIH0gZWxzZSBpZiAobWluQ291bnQgPT0gMSAmJiBtYXhDb3VudCA9PSBNQVgpIHsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCcrJykudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQuYXBwZW5kKCd7Jyk7CisgICAgICAgIFV0aWxpdHkuYXBwZW5kTnVtYmVyKHJlc3VsdCwgbWluQ291bnQpOworICAgICAgICByZXN1bHQuYXBwZW5kKCcsJyk7CisgICAgICAgIGlmIChtYXhDb3VudCAhPSBNQVgpIHsKKyAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kTnVtYmVyKHJlc3VsdCwgbWF4Q291bnQpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJ30nKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudCBVbmljb2RlTWF0Y2hlciBBUEkKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBtYXRjaGVzSW5kZXhWYWx1ZShpbnQgdikgeworICAgICAgICByZXR1cm4gKG1pbkNvdW50ID09IDApIHx8IG1hdGNoZXIubWF0Y2hlc0luZGV4VmFsdWUodik7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgVW5pY29kZU1hdGNoZXIgQVBJLiAgVW5pb24gdGhlIHNldCBvZiBhbGwKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIG1hdGNoZWQgYnkgdGhpcyBvYmplY3QgaW50byB0aGUgZ2l2ZW4KKyAgICAgKiBzZXQuCisgICAgICogQHBhcmFtIHRvVW5pb25UbyB0aGUgc2V0IGludG8gd2hpY2ggdG8gdW5pb24gdGhlIHNvdXJjZSBjaGFyYWN0ZXJzCisgICAgICogQHJldHVybnMgYSByZWZlcmVuY2UgdG8gdG9VbmlvblRvCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkTWF0Y2hTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25UbykgeworICAgICAgICBpZiAobWF4Q291bnQgPiAwKSB7CisgICAgICAgICAgICBtYXRjaGVyLmFkZE1hdGNoU2V0VG8odG9VbmlvblRvKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklEYXRhV3JhcHBlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJCSURhdGFXcmFwcGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc4NmU4MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCQklEYXRhV3JhcHBlci5qYXZhCkBAIC0wLDAgKzEsNDg1IEBACisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRGF0YUlucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlRyaWU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DaGFyVHJpZTsKKworLyoqCisqIDxwPkludGVybmFsIGNsYXNzIHVzZWQgZm9yIFJ1bGUgQmFzZWQgQnJlYWsgSXRlcmF0b3JzPC9wPgorKiA8cD5UaGlzIGNsYXNzIHByb3ZpZGVzIGFjY2VzcyB0byB0aGUgY29tcGlsZWQgYnJlYWsgcnVsZSBkYXRhLCBhcworKiBpdCBpcyBzdG9yZWQgaW4gYSAuYnJrIGZpbGUuICAKKyogQGludGVybmFsCisqIAorKi8KK2ZpbmFsIGNsYXNzIFJCQklEYXRhV3JhcHBlciB7CisgICAgLy8KKyAgICAvLyBUaGVzZSBmaWVsZHMgYXJlIHRoZSByZWFkeS10by11c2UgY29tcGlsZWQgcnVsZSBkYXRhLCBhcworICAgIC8vICAgcmVhZCBmcm9tIHRoZSBmaWxlLgorICAgIC8vCisgICAgUkJCSURhdGFIZWFkZXIgZkhlYWRlcjsKKyAgICBzaG9ydCAgICAgICAgICBmRlRhYmxlW107CisgICAgc2hvcnQgICAgICAgICAgZlJUYWJsZVtdOworICAgIHNob3J0ICAgICAgICAgIGZTRlRhYmxlW107CisgICAgc2hvcnQgICAgICAgICAgZlNSVGFibGVbXTsKKyAgICBDaGFyVHJpZSAgICAgICBmVHJpZTsKKyAgICBTdHJpbmcgICAgICAgICBmUnVsZVNvdXJjZTsKKyAgICBpbnQgICAgICAgICAgICBmU3RhdHVzVGFibGVbXTsKKyAgICAKKyAgICAvLyBJbmRleCBvZmZzZXRzIHRvIHRoZSBmaWVsZHMgaW4gYSBzdGF0ZSB0YWJsZSByb3cuCisgICAgLy8gICAgQ29ycmVzcG9uZHMgdG8gc3RydWN0IFJCQklTdGF0ZVRhYmxlUm93IGluIHRoZSBDIHZlcnNpb24uCisgICAgLy8gICAKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgQUNDRVBUSU5HICA9IDA7CisgICAgZmluYWwgc3RhdGljIGludCAgICAgIExPT0tBSEVBRCAgPSAxOworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgICBUQUdJRFggICAgID0gMjsKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgUkVTRVJWRUQgICA9IDM7CisgICAgZmluYWwgc3RhdGljIGludCAgICAgIE5FWFRTVEFURVMgPSA0OworICAgIAorICAgIC8vIEluZGV4IG9mZnNldHMgdG8gaGVhZGVyIGZpZWxkcyBvZiBhIHN0YXRlIHRhYmxlCisgICAgLy8gICAgIHN0cnVjdCBSQkJJU3RhdGVUYWJsZSB7Li4uICAgaW4gdGhlIEMgdmVyc2lvbi4KKyAgICAvLworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgICBOVU1TVEFURVMgID0gMDsKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgUk9XTEVOICAgICA9IDI7CisgICAgZmluYWwgc3RhdGljIGludCAgICAgIEZMQUdTICAgICAgPSA0OworICAgIGZpbmFsIHN0YXRpYyBpbnQgICAgICBSRVNFUlZFRF8yID0gNjsKKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgUk9XX0RBVEEgICA9IDg7CisgICAgCisgICAgLy8gIEJpdCBzZWxlY3RvcnMgZm9yIHRoZSAiRkxBR1MiIGZpZWxkIG9mIHRoZSBzdGF0ZSB0YWJsZSBoZWFkZXIKKyAgICAvLyAgICAgZW51bSBSQkJJU3RhdGVUYWJsZUZsYWdzIGluIHRoZSBDIHZlcnNpb24uCisgICAgLy8KKyAgICBmaW5hbCBzdGF0aWMgaW50ICAgICAgUkJCSV9MT09LQUhFQURfSEFSRF9CUkVBSyA9IDE7CisgICAgZmluYWwgc3RhdGljIGludCAgICAgIFJCQklfQk9GX1JFUVVJUkVEICAgICAgICAgPSAyOyAgCisgICAgCisgICAgLy8gIEdldHRlcnMgZm9yIGZpZWxkcyBmcm9tIHRoZSBzdGF0ZSB0YWJsZSBoZWFkZXIKKyAgICAvLworICAgIGZpbmFsIHN0YXRpYyBpbnQgICBnZXROdW1TdGF0ZXMoc2hvcnQgIHRhYmxlW10pIHsKKyAgICAgICAgaW50ICBoaSA9IHRhYmxlW05VTVNUQVRFU107CisgICAgICAgIGludCAgbG8gPSB0YWJsZVtOVU1TVEFURVMrMV07CisgICAgICAgIGludCAgdmFsID0gKGhpPDwxNikgKyAobG8mMHgwMDAwZmZmZik7CisgICAgICAgIHJldHVybiB2YWw7CisgICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBEYXRhIEhlYWRlci4gIEEgc3RydWN0LWxpa2UgY2xhc3Mgd2l0aCB0aGUgZmllbGRzIGZyb20gdGhlIFJCQkkgZGF0YSBmaWxlIGhlYWRlci4KKyAgICAgKi8KKyAgICBmaW5hbCBzdGF0aWMgY2xhc3MgUkJCSURhdGFIZWFkZXIgeworICAgICAgICBpbnQgICAgICAgICBmTWFnaWM7ICAgICAgICAgLy8gID09IDB4YmxhMCAKKyAgICAgICAgaW50ICAgICAgICAgZlZlcnNpb247ICAgICAgIC8vICA9PSAxIChmb3IgSUNVIDMuMiBhbmQgZWFybGllci4gCisgICAgICAgIGJ5dGVbXSAgICAgIGZGb3JtYXRWZXJzaW9uOyAvLyAgRm9yIElDVSAzLjQgYW5kIGxhdGVyLgorICAgICAgICBpbnQgICAgICAgICBmTGVuZ3RoOyAgICAgICAgLy8gIFRvdGFsIGxlbmd0aCBpbiBieXRlcyBvZiB0aGlzIFJCQkkgRGF0YSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgIGluY2x1ZGluZyBhbGwgc2VjdGlvbnMsIG5vdCBqdXN0IHRoZSBoZWFkZXIuIAorICAgICAgICBpbnQgICAgICAgICBmQ2F0Q291bnQ7ICAgICAgLy8gIE51bWJlciBvZiBjaGFyYWN0ZXIgY2F0ZWdvcmllcy4gCisKKyAgICAgICAgLy8gIAorICAgICAgICAvLyAgT2Zmc2V0cyBhbmQgc2l6ZXMgb2YgZWFjaCBvZiB0aGUgc3Vic2VjdGlvbnMgd2l0aGluIHRoZSBSQkJJIGRhdGEuIAorICAgICAgICAvLyAgQWxsIG9mZnNldHMgYXJlIGJ5dGVzIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBSQkJJRGF0YUhlYWRlci4gCisgICAgICAgIC8vICBBbGwgc2l6ZXMgYXJlIGluIGJ5dGVzLiAKKyAgICAgICAgLy8gIAorICAgICAgICBpbnQgICAgICAgICBmRlRhYmxlOyAgICAgICAgIC8vICBmb3J3YXJkIHN0YXRlIHRyYW5zaXRpb24gdGFibGUuIAorICAgICAgICBpbnQgICAgICAgICBmRlRhYmxlTGVuOworICAgICAgICBpbnQgICAgICAgICBmUlRhYmxlOyAgICAgICAgIC8vICBPZmZzZXQgdG8gdGhlIHJldmVyc2Ugc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS4gCisgICAgICAgIGludCAgICAgICAgIGZSVGFibGVMZW47CisgICAgICAgIGludCAgICAgICAgIGZTRlRhYmxlOyAgICAgICAgLy8gIHNhZmUgcG9pbnQgZm9yd2FyZCB0cmFuc2l0aW9uIHRhYmxlIAorICAgICAgICBpbnQgICAgICAgICBmU0ZUYWJsZUxlbjsKKyAgICAgICAgaW50ICAgICAgICAgZlNSVGFibGU7ICAgICAgICAvLyAgc2FmZSBwb2ludCByZXZlcnNlIHRyYW5zaXRpb24gdGFibGUgCisgICAgICAgIGludCAgICAgICAgIGZTUlRhYmxlTGVuOworICAgICAgICBpbnQgICAgICAgICBmVHJpZTsgICAgICAgICAgIC8vICBPZmZzZXQgdG8gVHJpZSBkYXRhIGZvciBjaGFyYWN0ZXIgY2F0ZWdvcmllcyAKKyAgICAgICAgaW50ICAgICAgICAgZlRyaWVMZW47CisgICAgICAgIGludCAgICAgICAgIGZSdWxlU291cmNlOyAgICAgLy8gIE9mZnNldCB0byB0aGUgc291cmNlIGZvciBmb3IgdGhlIGJyZWFrIAorICAgICAgICBpbnQgICAgICAgICBmUnVsZVNvdXJjZUxlbjsgIC8vICAgIHJ1bGVzLiAgU3RvcmVkIFVDaGFyICouIAorICAgICAgICBpbnQgICAgICAgICBmU3RhdHVzVGFibGU7ICAgIC8vIE9mZnNldCB0byB0aGUgdGFibGUgb2YgcnVsZSBzdGF0dXMgdmFsdWVzIAorICAgICAgICBpbnQgICAgICAgICBmU3RhdHVzVGFibGVMZW47CisKKyAgICAgICAgcHVibGljIFJCQklEYXRhSGVhZGVyKCkgeworICAgICAgICAgICAgZk1hZ2ljID0gMDsKKyAgICAgICAgICAgIGZGb3JtYXRWZXJzaW9uID0gbmV3IGJ5dGVbNF07CisgICAgICAgIH07CisgICAgfTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSQkJJIFN0YXRlIFRhYmxlIEluZGV4aW5nIEZ1bmN0aW9uLiAgR2l2ZW4gYSBzdGF0ZSBudW1iZXIsIHJldHVybiB0aGUKKyAgICAgKiBhcnJheSBpbmRleCBvZiB0aGUgc3RhcnQgb2YgdGhlIHN0YXRlIHRhYmxlIHJvdyBmb3IgdGhhdCBzdGF0ZS4KKyAgICAgKiAKKyAgICAgKi8KKyAgICBpbnQgZ2V0Um93SW5kZXgoaW50IHN0YXRlKXsKKyAgICAgICAgcmV0dXJuIFJPV19EQVRBICsgc3RhdGUgKiAoZkhlYWRlci5mQ2F0Q291bnQgKyA0KTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNsYXNzIFRyaWVGb2xkaW5nRnVuYyBpbXBsZW1lbnRzICBUcmllLkRhdGFNYW5pcHVsYXRlIHsKKyAgICAgICAgcHVibGljIGludCBnZXRGb2xkaW5nT2Zmc2V0KGludCBkYXRhKSB7CisgICAgICAgICAgICBpZiAoKGRhdGEgJiAweDgwMDApICE9IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZGF0YSAmIDB4N2ZmZjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9OworICAgIHN0YXRpYyBUcmllRm9sZGluZ0Z1bmMgIGZUcmllRm9sZGluZ0Z1bmMgPSBuZXcgVHJpZUZvbGRpbmdGdW5jKCk7CisgCisgICAgCisgICAgUkJCSURhdGFXcmFwcGVyKCkgeworICAgICB9OworCisgICAgc3RhdGljIFJCQklEYXRhV3JhcHBlciBnZXQoU3RyaW5nIG5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIFN0cmluZyAgZnVsbE5hbWUgPSAiZGF0YS8iICsgbmFtZTsKKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSBJQ1VEYXRhLmdldFJlcXVpcmVkU3RyZWFtKGZ1bGxOYW1lKTsKKyAgICAgICAgcmV0dXJuIGdldChpcyk7CisgICAgfQorICAgIAorICAgIC8qCisgICAgICogIEdldCBhbiBSQkJJRGF0YVdyYXBwZXIgZnJvbSBhbiBJbnB1dFN0cmVhbSBvbnRvIGEgcHJlLWNvbXBpbGVkIHNldAorICAgICAqICBvZiBSQkJJIHJ1bGVzLgorICAgICAqLworICAgIHN0YXRpYyBSQkJJRGF0YVdyYXBwZXIgZ2V0KElucHV0U3RyZWFtIGlzKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBpbnQgaTsKKyAgICAgICAgCisgICAgICAgIERhdGFJbnB1dFN0cmVhbSBkaXMgPSBuZXcgRGF0YUlucHV0U3RyZWFtKG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGlzKSk7CisgICAgICAgIFJCQklEYXRhV3JhcHBlciBUaGlzID0gbmV3IFJCQklEYXRhV3JhcHBlcigpOworICAgICAgICAKKyAgICAgICAgLy8gU2VlayBwYXN0IHRoZSBJQ1UgZGF0YSBoZWFkZXIuCisgICAgICAgIC8vICAgVE9ETzogIHZlcmlmeSB0aGF0IHRoZSBoZWFkZXIgbG9va3MgZ29vZC4KKyAgICAgICAgZGlzLnNraXAoMHg4MCk7CisgICAgICAgIAorICAgICAgICAvLyBSZWFkIGluIHRoZSBSQkJJIGRhdGEgaGVhZGVyLi4uCisgICAgICAgIFRoaXMuZkhlYWRlciA9IG5ldyAgUkJCSURhdGFIZWFkZXIoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZNYWdpYyAgICAgICAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mVmVyc2lvbiAgICAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZkZvcm1hdFZlcnNpb25bMF0gPSAoYnl0ZSkgKFRoaXMuZkhlYWRlci5mVmVyc2lvbiA+PiAyNCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mRm9ybWF0VmVyc2lvblsxXSA9IChieXRlKSAoVGhpcy5mSGVhZGVyLmZWZXJzaW9uID4+IDE2KTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZGb3JtYXRWZXJzaW9uWzJdID0gKGJ5dGUpIChUaGlzLmZIZWFkZXIuZlZlcnNpb24gPj4gOCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mRm9ybWF0VmVyc2lvblszXSA9IChieXRlKSAoVGhpcy5mSGVhZGVyLmZWZXJzaW9uKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZMZW5ndGggICAgICAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mQ2F0Q291bnQgICAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZkZUYWJsZSAgICAgICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZGVGFibGVMZW4gICAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mUlRhYmxlICAgICAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZlJUYWJsZUxlbiAgICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZTRlRhYmxlICAgICAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mU0ZUYWJsZUxlbiAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZlNSVGFibGUgICAgICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZTUlRhYmxlTGVuICAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mVHJpZSAgICAgICAgICAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZlRyaWVMZW4gICAgICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZSdWxlU291cmNlICAgICA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIFRoaXMuZkhlYWRlci5mUnVsZVNvdXJjZUxlbiAgPSBkaXMucmVhZEludCgpOworICAgICAgICBUaGlzLmZIZWFkZXIuZlN0YXR1c1RhYmxlICAgID0gZGlzLnJlYWRJbnQoKTsKKyAgICAgICAgVGhpcy5mSGVhZGVyLmZTdGF0dXNUYWJsZUxlbiA9IGRpcy5yZWFkSW50KCk7CisgICAgICAgIGRpcy5za2lwKDYgKiA0KTsgICAgLy8gdWludDMyX3QgIGZSZXNlcnZlZFs2XTsKKyAgICAgICAgCisgICAgICAgIAorICAgICAgICBpZiAoVGhpcy5mSGVhZGVyLmZNYWdpYyAhPSAweGIxYTAgfHwgCisgICAgICAgICAgICAgICAgISAoVGhpcy5mSGVhZGVyLmZWZXJzaW9uID09IDEgIHx8ICAgICAgICAgLy8gSUNVIDMuMiBhbmQgZWFybGllcgorICAgICAgICAgICAgICAgICAgIFRoaXMuZkhlYWRlci5mRm9ybWF0VmVyc2lvblswXSA9PSAzKSAgIC8vIElDVSAzLjQKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJCcmVhayBJdGVyYXRvciBSdWxlIERhdGEgTWFnaWMgTnVtYmVyIEluY29ycmVjdCwgb3IgdW5zdXBwb3J0ZWQgZGF0YSB2ZXJzaW9uLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBDdXJyZW50IHBvc2l0aW9uIGluIGlucHV0IHN0cmVhbS4gIAorICAgICAgICBpbnQgcG9zID0gMjQgKiA0OyAgICAgLy8gb2Zmc2V0IG9mIGVuZCBvZiBoZWFkZXIsIHdoaWNoIGhhcyAyNCBmaWVsZHMsIGFsbCBpbnQzMl90ICg0IGJ5dGVzKQorICAgICAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gUmVhZCBpbiB0aGUgRm9yd2FyZCBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlIGFzIGFuIGFycmF5IG9mIHNob3J0cy4KKyAgICAgICAgLy8KKyAgICAgICAgCisgICAgICAgIC8vICAgUXVpY2sgU2FuaXR5IENoZWNrCisgICAgICAgIGlmIChUaGlzLmZIZWFkZXIuZkZUYWJsZSA8IHBvcyB8fCBUaGlzLmZIZWFkZXIuZkZUYWJsZSA+IFRoaXMuZkhlYWRlci5mTGVuZ3RoKSB7CisgICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJCcmVhayBpdGVyYXRvciBSdWxlIGRhdGEgY29ycnVwdCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyAgICBTa2lwIG92ZXIgYW55IHBhZGRpbmcgcHJlY2VkaW5nIHRoaXMgdGFibGUKKyAgICAgICAgZGlzLnNraXAoVGhpcy5mSGVhZGVyLmZGVGFibGUgLSBwb3MpOworICAgICAgICBwb3MgPSBUaGlzLmZIZWFkZXIuZkZUYWJsZTsKKyAgICAgICAgCisgICAgICAgIFRoaXMuZkZUYWJsZSA9IG5ldyBzaG9ydFtUaGlzLmZIZWFkZXIuZkZUYWJsZUxlbiAvIDJdOworICAgICAgICBmb3IgKCBpPTA7IGk8VGhpcy5mRlRhYmxlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBUaGlzLmZGVGFibGVbaV0gPSBkaXMucmVhZFNob3J0KCk7IAorICAgICAgICAgICAgcG9zICs9IDI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vCisgICAgICAgIC8vIFJlYWQgaW4gdGhlIFJldmVyc2Ugc3RhdGUgdGFibGUKKyAgICAgICAgLy8KKyAgICAgICAgCisgICAgICAgIC8vIFNraXAgb3ZlciBhbnkgcGFkZGluZyBpbiB0aGUgZmlsZQorICAgICAgICBkaXMuc2tpcChUaGlzLmZIZWFkZXIuZlJUYWJsZSAtIHBvcyk7CisgICAgICAgIHBvcyA9IFRoaXMuZkhlYWRlci5mUlRhYmxlOworICAgICAgICAKKyAgICAgICAgLy8gQ3JlYXRlICYgZmlsbCB0aGUgdGFibGUgaXRzZWxmLgorICAgICAgICBUaGlzLmZSVGFibGUgPSBuZXcgc2hvcnRbVGhpcy5mSGVhZGVyLmZSVGFibGVMZW4gLyAyXTsKKyAgICAgICAgZm9yIChpPTA7IGk8VGhpcy5mUlRhYmxlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBUaGlzLmZSVGFibGVbaV0gPSBkaXMucmVhZFNob3J0KCk7IAorICAgICAgICAgICAgcG9zICs9IDI7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vCisgICAgICAgIC8vIFJlYWQgaW4gdGhlIFNhZmUgRm9yd2FyZCBzdGF0ZSB0YWJsZQorICAgICAgICAvLyAKKyAgICAgICAgaWYgKFRoaXMuZkhlYWRlci5mU0ZUYWJsZUxlbiA+IDApIHsKKyAgICAgICAgICAgIC8vIFNraXAgb3ZlciBhbnkgcGFkZGluZyBpbiB0aGUgZmlsZQorICAgICAgICAgICAgZGlzLnNraXAoVGhpcy5mSGVhZGVyLmZTRlRhYmxlIC0gcG9zKTsKKyAgICAgICAgICAgIHBvcyA9IFRoaXMuZkhlYWRlci5mU0ZUYWJsZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ3JlYXRlICYgZmlsbCB0aGUgdGFibGUgaXRzZWxmLgorICAgICAgICAgICAgVGhpcy5mU0ZUYWJsZSA9IG5ldyBzaG9ydFtUaGlzLmZIZWFkZXIuZlNGVGFibGVMZW4gLyAyXTsKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPFRoaXMuZlNGVGFibGUubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBUaGlzLmZTRlRhYmxlW2ldID0gZGlzLnJlYWRTaG9ydCgpOyAKKyAgICAgICAgICAgICAgICBwb3MgKz0gMjsKKyAgICAgICAgICAgIH0gICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLworICAgICAgICAvLyBSZWFkIGluIHRoZSBTYWZlIFJldmVyc2Ugc3RhdGUgdGFibGUKKyAgICAgICAgLy8gCisgICAgICAgIGlmIChUaGlzLmZIZWFkZXIuZlNSVGFibGVMZW4gPiAwKSB7CisgICAgICAgICAgICAvLyBTa2lwIG92ZXIgYW55IHBhZGRpbmcgaW4gdGhlIGZpbGUKKyAgICAgICAgICAgIGRpcy5za2lwKFRoaXMuZkhlYWRlci5mU1JUYWJsZSAtIHBvcyk7CisgICAgICAgICAgICBwb3MgPSBUaGlzLmZIZWFkZXIuZlNSVGFibGU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIENyZWF0ZSAmIGZpbGwgdGhlIHRhYmxlIGl0c2VsZi4KKyAgICAgICAgICAgIFRoaXMuZlNSVGFibGUgPSBuZXcgc2hvcnRbVGhpcy5mSGVhZGVyLmZTUlRhYmxlTGVuIC8gMl07CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxUaGlzLmZTUlRhYmxlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgVGhpcy5mU1JUYWJsZVtpXSA9IGRpcy5yZWFkU2hvcnQoKTsgCisgICAgICAgICAgICAgICAgcG9zICs9IDI7CisgICAgICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8KKyAgICAgICAgLy8gVW5zZXJpYWxpemUgdGhlIENoYXJhY3RlciBjYXRlZ29yaWVzIFRSSUUKKyAgICAgICAgLy8gICAgIEJlY2F1c2Ugd2UgY2FuJ3QgYmUgYWJzb2x1dGVseSBjZXJ0YWluIHdoZXJlIHRoZSBUcmllIGRlc2VyaWFsaXplIHdpbGwKKyAgICAgICAgLy8gICAgIGxlYXZlIHRoZSBpbnB1dCBzdHJlYW0sIGxlYXZlIHBvc2l0aW9uIHVuY2hhbmdlZC4KKyAgICAgICAgLy8gICAgIFRoZSBzZWVrIHRvIHRoZSBzdGFydCBvZiB0aGUgbmV4dCBpdGVtIGZvbGxvd2luZyB0aGUgVFJJRSB3aWxsIGdldCB1cworICAgICAgICAvLyAgICAgYmFjayBpbiBzeW5jLgorICAgICAgICAvLworICAgICAgICBkaXMuc2tpcChUaGlzLmZIZWFkZXIuZlRyaWUgLSBwb3MpOyAgICAgLy8gc2VlayBpbnB1dCBzdHJlYW0gZnJvbSBlbmQgb2YgcHJldmlvdXMgc2VjdGlvbiB0bworICAgICAgICBwb3MgPSBUaGlzLmZIZWFkZXIuZlRyaWU7ICAgICAgICAgICAgICAgLy8gICB0byB0aGUgc3RhcnQgb2YgdGhlIHRyaWUKKyAgICAKKyAgICAgICAgZGlzLm1hcmsoVGhpcy5mSGVhZGVyLmZUcmllTGVuKzEwMCk7ICAgIC8vIE1hcmsgcG9zaXRpb24gb2Ygc3RhcnQgb2YgVFJJRSBpbiB0aGUgaW5wdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBhbmQgdGVsbCBKYXZhIHRvIGtlZXAgdGhlIG1hcmsgdmFsaWQgc28gbG9uZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGFzIHdlIGRvbid0IGdvIG1vcmUgdGhhbiAxMDAgYnl0ZXMgcGFzdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBwYXN0IHRoZSBlbmQgb2YgdGhlIFRSSUUuCisgICAgCisgICAgICAgIFRoaXMuZlRyaWUgPSBuZXcgQ2hhclRyaWUoZGlzLCBmVHJpZUZvbGRpbmdGdW5jKTsgIC8vIERlc2VyaWFsaXplIHRoZSBUUklFLCBsZWF2aW5nIGlucHV0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgc3RyZWFtIGF0IGFuIHVua25vd24gcG9zaXRpb24sIHByZWNlZGluZyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBwYWRkaW5nIGJldHdlZW4gVFJJRSBhbmQgZm9sbG93aW5nIHNlY3Rpb24uCisgICAgCisgICAgICAgIGRpcy5yZXNldCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNb3ZlIGlucHV0IHN0cmVhbSBiYWNrIHRvIG1hcmtlZCBwb3NpdGlvbiBhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICB0aGUgc3RhcnQgb2YgdGhlIHNlcmlhbGl6ZWQgVFJJRS4gIE5vdyBvdXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgInBvcyIgdmFyaWFibGUgYW5kIHRoZSBpbnB1dCBzdHJlYW0gYXJlIGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGFncmVlbWVudC4KKyAgICAgICAgCisgICAgICAgIC8vCisgICAgICAgIC8vIFJlYWQgdGhlIFJ1bGUgU3RhdHVzIFRhYmxlCisgICAgICAgIC8vCisgICAgICAgIGlmIChwb3MgPiBUaGlzLmZIZWFkZXIuZlN0YXR1c1RhYmxlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkJyZWFrIGl0ZXJhdG9yIFJ1bGUgZGF0YSBjb3JydXB0Iik7ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgZGlzLnNraXAoVGhpcy5mSGVhZGVyLmZTdGF0dXNUYWJsZSAtIHBvcyk7CisgICAgICAgIHBvcyA9IFRoaXMuZkhlYWRlci5mU3RhdHVzVGFibGU7CisgICAgICAgIFRoaXMuZlN0YXR1c1RhYmxlID0gbmV3IGludFtUaGlzLmZIZWFkZXIuZlN0YXR1c1RhYmxlTGVuIC8gNF07CisgICAgICAgIGZvciAoaT0wOyBpPFRoaXMuZlN0YXR1c1RhYmxlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBUaGlzLmZTdGF0dXNUYWJsZVtpXSA9IGRpcy5yZWFkSW50KCk7IAorICAgICAgICAgICAgcG9zICs9IDQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vCisgICAgICAgIC8vIFB1dCB0aGUgYnJlYWsgcnVsZSBzb3VyY2UgaW50byBhIFN0cmluZworICAgICAgICAvLworICAgICAgICBpZiAocG9zID4gVGhpcy5mSGVhZGVyLmZSdWxlU291cmNlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkJyZWFrIGl0ZXJhdG9yIFJ1bGUgZGF0YSBjb3JydXB0Iik7ICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgZGlzLnNraXAoVGhpcy5mSGVhZGVyLmZSdWxlU291cmNlIC0gcG9zKTsKKyAgICAgICAgcG9zID0gVGhpcy5mSGVhZGVyLmZSdWxlU291cmNlOworICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKFRoaXMuZkhlYWRlci5mUnVsZVNvdXJjZUxlbiAvIDIpOworICAgICAgICBmb3IgKGk9MDsgaTxUaGlzLmZIZWFkZXIuZlJ1bGVTb3VyY2VMZW47IGkrPTIpIHsKKyAgICAgICAgICAgIHNiLmFwcGVuZChkaXMucmVhZENoYXIoKSk7IAorICAgICAgICAgICAgcG9zICs9IDI7CisgICAgICAgIH0KKyAgICAgICAgVGhpcy5mUnVsZVNvdXJjZSA9IHNiLnRvU3RyaW5nKCk7CisgICAgICAgIAorICAgICAgICAvLyBUaGlzLmR1bXAoKTsKKyAgICAgICAgcmV0dXJuIFRoaXM7CisgICAgfQorICAgIAorICAgIAorICAgIAorICAgIC8qKiBEZWJ1ZyBmdW5jdGlvbiB0byBkaXNwbGF5IHRoZSBicmVhayBpdGVyYXRvciBkYXRhLiAgCisgICAgICogIEBpbnRlcm5hbAorICAgICAqLworICAgIHZvaWQgZHVtcCgpIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSQkJJIERhdGEgV3JhcHBlciBkdW1wIC4uLiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGb3J3YXJkIFN0YXRlIFRhYmxlIik7CisgICAgICAgIGR1bXBUYWJsZShmRlRhYmxlKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSZXZlcnNlIFN0YXRlIFRhYmxlIik7CisgICAgICAgIGR1bXBUYWJsZShmUlRhYmxlKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJGb3J3YXJkIFNhZmUgUG9pbnRzIFRhYmxlIik7CisgICAgICAgIGR1bXBUYWJsZShmU0ZUYWJsZSk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmV2ZXJzZSBTYWZlIFBvaW50cyBUYWJsZSIpOworICAgICAgICBkdW1wVGFibGUoZlNSVGFibGUpOworICAgICAgICAKKyAgICAgICAgZHVtcENoYXJDYXRlZ29yaWVzKCk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU291cmNlIFJ1bGVzOiAiICsgZlJ1bGVTb3VyY2UpOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqIEZpeGVkIHdpZHRoIGludC10by1zdHJpbmcgY29udmVyc2lvbi4gICAKKyAgICAgKiAgQGludGVybmFsCisgICAgICogCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBTdHJpbmcgaW50VG9TdHJpbmcoaW50IG4sIGludCB3aWR0aCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgIGRlc3QgPSBuZXcgU3RyaW5nQnVmZmVyKHdpZHRoKTsgICAKKyAgICAgICAgZGVzdC5hcHBlbmQobik7CisgICAgICAgIHdoaWxlIChkZXN0Lmxlbmd0aCgpIDwgd2lkdGgpIHsKKyAgICAgICAgICAgZGVzdC5pbnNlcnQoMCwgJyAnKTsgICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGVzdC50b1N0cmluZygpOworICAgIH0KKyAgICAKKyAgICAvKiogRml4ZWQgd2lkdGggaW50LXRvLXN0cmluZyBjb252ZXJzaW9uLiAgIAorICAgICAqICBAaW50ZXJuYWwKKyAgICAgKiAKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIFN0cmluZyBpbnRUb0hleFN0cmluZyhpbnQgbiwgaW50IHdpZHRoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciAgZGVzdCA9IG5ldyBTdHJpbmdCdWZmZXIod2lkdGgpOyAgIAorICAgICAgICBkZXN0LmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKG4pKTsKKyAgICAgICAgd2hpbGUgKGRlc3QubGVuZ3RoKCkgPCB3aWR0aCkgeworICAgICAgICAgICBkZXN0Lmluc2VydCgwLCAnICcpOyAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBkZXN0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIC8qKiBEdW1wIGEgc3RhdGUgdGFibGUuICAoQSBmdWxsIHNldCBvZiBSQkJJIHJ1bGVzIGhhcyA0IHN0YXRlIHRhYmxlcy4pICAqLworICAgIHByaXZhdGUgdm9pZCBkdW1wVGFibGUoc2hvcnQgdGFibGVbXSkgeworICAgICAgICBpbnQgbjsKKyAgICAgICAgaW50IHN0YXRlOworICAgICAgICBTdHJpbmcgaGVhZGVyID0gIiBSb3cgIEFjYyBMb29rICBUYWciOworICAgICAgICBmb3IgKG49MDsgbjxmSGVhZGVyLmZDYXRDb3VudDsgbisrKSB7CisgICAgICAgICAgICBoZWFkZXIgKz0gaW50VG9TdHJpbmcobiwgNSk7ICAgICAKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaGVhZGVyKTsKKyAgICAgICAgZm9yIChuPTA7IG48aGVhZGVyLmxlbmd0aCgpOyBuKyspIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIi0iKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgZm9yIChzdGF0ZT0wOyBzdGF0ZTwgZ2V0TnVtU3RhdGVzKHRhYmxlKTsgc3RhdGUrKykgeworICAgICAgICAgICAgZHVtcFJvdyh0YWJsZSwgc3RhdGUpOyAgIAorICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEdW1wIChmb3IgZGVidWcpIGEgc2luZ2xlIHJvdyBvZiBhbiBSQkJJIHN0YXRlIHRhYmxlCisgICAgICogQHBhcmFtIHRhYmxlCisgICAgICogQHBhcmFtIHN0YXRlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGR1bXBSb3coc2hvcnQgdGFibGVbXSwgaW50ICAgc3RhdGUpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGRlc3QgPSBuZXcgU3RyaW5nQnVmZmVyKGZIZWFkZXIuZkNhdENvdW50KjUgKyAyMCk7CisgICAgICAgIGRlc3QuYXBwZW5kKGludFRvU3RyaW5nKHN0YXRlLCA0KSk7CisgICAgICAgIGludCByb3cgPSBnZXRSb3dJbmRleChzdGF0ZSk7CisgICAgICAgIGlmICh0YWJsZVtyb3crQUNDRVBUSU5HXSAhPSAwKSB7CisgICAgICAgICAgIGRlc3QuYXBwZW5kKGludFRvU3RyaW5nKHRhYmxlW3JvdytBQ0NFUFRJTkddLCA1KSk7IAorICAgICAgICB9ZWxzZSB7CisgICAgICAgICAgICBkZXN0LmFwcGVuZCgiICAgICAiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGFibGVbcm93K0xPT0tBSEVBRF0gIT0gMCkgeworICAgICAgICAgICAgZGVzdC5hcHBlbmQoaW50VG9TdHJpbmcodGFibGVbcm93K0xPT0tBSEVBRF0sIDUpKTsgCisgICAgICAgIH1lbHNlIHsKKyAgICAgICAgICAgIGRlc3QuYXBwZW5kKCIgICAgICIpOworICAgICAgICB9CisgICAgICAgIGRlc3QuYXBwZW5kKGludFRvU3RyaW5nKHRhYmxlW3JvdytUQUdJRFhdLCA1KSk7IAorICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgY29sPTA7IGNvbDxmSGVhZGVyLmZDYXRDb3VudDsgY29sKyspIHsKKyAgICAgICAgICAgIGRlc3QuYXBwZW5kKGludFRvU3RyaW5nKHRhYmxlW3JvdytORVhUU1RBVEVTK2NvbF0sIDUpKTsgICAKKyAgICAgICAgfQorCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihkZXN0KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGR1bXBDaGFyQ2F0ZWdvcmllcygpIHsKKyAgICAgICAgaW50IG4gPSBmSGVhZGVyLmZDYXRDb3VudDsKKyAgICAgICAgU3RyaW5nICAgY2F0U3RyaW5nc1tdID0gbmV3ICBTdHJpbmdbbisxXTsKKyAgICAgICAgaW50ICAgICAgcmFuZ2VTdGFydCA9IDA7CisgICAgICAgIGludCAgICAgIHJhbmdlRW5kID0gMDsKKyAgICAgICAgaW50ICAgICAgbGFzdENhdCA9IC0xOworICAgICAgICBpbnQgICAgICBjaGFyMzI7CisgICAgICAgIGludCAgICAgIGNhdGVnb3J5OworICAgICAgICBpbnQgICAgICBsYXN0TmV3bGluZVtdID0gbmV3IGludFtuKzFdOworICAgICAgICAKKyAgICAgICAgZm9yIChjYXRlZ29yeSA9IDA7IGNhdGVnb3J5IDw9IGZIZWFkZXIuZkNhdENvdW50OyBjYXRlZ29yeSArKykgeworICAgICAgICAgICAgY2F0U3RyaW5nc1tjYXRlZ29yeV0gPSAiIjsgICAKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuQ2hhcmFjdGVyIENhdGVnb3JpZXMiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCItLS0tLS0tLS0tLS0tLS0tLS0tLSIpOworICAgICAgICBmb3IgKGNoYXIzMiA9IDA7IGNoYXIzMjw9MHgxMGZmZmY7IGNoYXIzMisrKSB7CisgICAgICAgICAgICBjYXRlZ29yeSA9IGZUcmllLmdldENvZGVQb2ludFZhbHVlKGNoYXIzMik7CisgICAgICAgICAgICBjYXRlZ29yeSAmPSB+MHg0MDAwOyAgICAgICAgICAgIC8vIE1hc2sgb2ZmIGRpY3Rpb25hcnkgYml0LgorICAgICAgICAgICAgaWYgKGNhdGVnb3J5IDwgMCB8fCBjYXRlZ29yeSA+IGZIZWFkZXIuZkNhdENvdW50KSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFcnJvciwgYmFkIGNhdGVnb3J5ICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGNhdGVnb3J5KSArIAorICAgICAgICAgICAgICAgICAgICAgICAgIiBmb3IgY2hhciAiICsgSW50ZWdlci50b0hleFN0cmluZyhjaGFyMzIpKTsgCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY2F0ZWdvcnkgPT0gbGFzdENhdCApIHsKKyAgICAgICAgICAgICAgICByYW5nZUVuZCA9IGNoYXIzMjsgICAKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RDYXQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2F0U3RyaW5nc1tsYXN0Q2F0XS5sZW5ndGgoKSA+IGxhc3ROZXdsaW5lW2xhc3RDYXRdICsgNzApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3ROZXdsaW5lW2xhc3RDYXRdID0gY2F0U3RyaW5nc1tsYXN0Q2F0XS5sZW5ndGgoKSArIDEwOworICAgICAgICAgICAgICAgICAgICAgICAgY2F0U3RyaW5nc1tsYXN0Q2F0XSArPSAiXG4gICAgICAgIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2F0U3RyaW5nc1tsYXN0Q2F0XSArPSAiICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHJhbmdlU3RhcnQpOworICAgICAgICAgICAgICAgICAgICBpZiAocmFuZ2VFbmQgIT0gcmFuZ2VTdGFydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2F0U3RyaW5nc1tsYXN0Q2F0XSArPSAiLSIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKHJhbmdlRW5kKTsgICAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsYXN0Q2F0ID0gY2F0ZWdvcnk7CisgICAgICAgICAgICAgICAgcmFuZ2VTdGFydCA9IHJhbmdlRW5kID0gY2hhcjMyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdFN0cmluZ3NbbGFzdENhdF0gKz0gIiAiICsgSW50ZWdlci50b0hleFN0cmluZyhyYW5nZVN0YXJ0KTsKKyAgICAgICAgaWYgKHJhbmdlRW5kICE9IHJhbmdlU3RhcnQpIHsKKyAgICAgICAgICAgIGNhdFN0cmluZ3NbbGFzdENhdF0gKz0gIi0iICsgSW50ZWdlci50b0hleFN0cmluZyhyYW5nZUVuZCk7ICAgCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoY2F0ZWdvcnkgPSAwOyBjYXRlZ29yeSA8PSBmSGVhZGVyLmZDYXRDb3VudDsgY2F0ZWdvcnkgKyspIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiAoaW50VG9TdHJpbmcoY2F0ZWdvcnksIDUpICsgIiAgIiArIGNhdFN0cmluZ3NbY2F0ZWdvcnldKTsgICAKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBTdHJpbmcgczsKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgIHMgPSAiY2hhciI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzID0gYXJnc1swXTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJCQklEYXRhV3JhcHBlci5tYWluKCIgKyBzICsgIikgIik7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdmVyc2lvbmVkTmFtZSA9IElDVVJlc291cmNlQnVuZGxlLklDVV9CVU5ETEUrIi8iKyBzICsgIi5icmsiOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJCQklEYXRhV3JhcHBlciBUaGlzID0gUkJCSURhdGFXcmFwcGVyLmdldCh2ZXJzaW9uZWROYW1lKTsKKyAgICAgICAgICAgIFRoaXMuZHVtcCgpOworICAgICAgICB9CisgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRXhjZXB0aW9uOiAiICsgZS50b1N0cmluZygpKTsKKyAgICAgICB9CisgICAgICAgICAgIAorICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJORkNoaW5lc2VQb3N0UHJvY2Vzc29yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SQk5GQ2hpbmVzZVBvc3RQcm9jZXNzb3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMTg1NGNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUkJORkNoaW5lc2VQb3N0UHJvY2Vzc29yLmphdmEKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBBIHBvc3QtcHJvY2Vzc29yIGZvciBDaGluZXNlIHRleHQuCisgKi8KK2ZpbmFsIGNsYXNzIFJCTkZDaGluZXNlUG9zdFByb2Nlc3NvciBleHRlbmRzIFJCTkZQb3N0UHJvY2Vzc29yIHsKKyAgICBwcml2YXRlIE5GUnVsZVNldCBsYXN0UnVsZVNldDsKKyAgICBwcml2YXRlIGJvb2xlYW4gbG9uZ0Zvcm07CisgICAgcHJpdmF0ZSBpbnQgZm9ybWF0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gcnVsZXNldE5hbWVzID0geworICAgICAgICAiJXRyYWRpdGlvbmFsIiwgIiVzaW1wbGlmaWVkIiwgIiVhY2NvdW50aW5nIiwgIiV0aW1lIgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXphdGlvbiByb3V0aW5lIGZvciB0aGlzIGluc3RhbmNlLCBjYWxsZWQgb25jZQorICAgICAqIGltbWVkaWF0ZWx5IGFmdGVyIGZpcnN0IGNvbnN0cnVjdGlvbiBhbmQgbmV2ZXIgYWdhaW4uICAKKyAgICAgKi8KKyAgICB2b2lkIGluaXQoUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZvcm1hdHRlciwgU3RyaW5nIHJ1bGVzKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogV29yayByb3V0aW5lLiAgUG9zdCBwcm9jZXNzIHRoZSBvdXRwdXQsIHdoaWNoIHdhcyBnZW5lcmF0ZWQgYnkgdGhlCisgICAgICogcnVsZXNldCB3aXRoIHRoZSBnaXZlbiBuYW1lLgorICAgICAqLworICAgIHZvaWQgcHJvY2VzcyhTdHJpbmdCdWZmZXIgYnVmLCBORlJ1bGVTZXQgcnVsZVNldCkgeworICAgICAgICAvLyBtYXJrZXJzIGRlcGVuZCBvbiB3aGF0IHJ1bGUgc2V0IHdlIGFyZSB1c2luZworCisgICAgICAgIGlmIChydWxlU2V0ICE9IGxhc3RSdWxlU2V0KSB7CisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IHJ1bGVTZXQuZ2V0TmFtZSgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlc2V0TmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAocnVsZXNldE5hbWVzW2ldLmVxdWFscyhuYW1lKSkgeworICAgICAgICAgICAgICAgICAgICBmb3JtYXQgPSBpOworICAgICAgICAgICAgICAgICAgICBsb25nRm9ybSA9IGkgPT0gMSB8fCBpID09IDM7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChsb25nRm9ybSkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IFV0aWxpdHkuaW5kZXhPZihidWYsIioiKTsgaSAhPSAtMTsgaSA9IFV0aWxpdHkuaW5kZXhPZihidWYsICIqIiwgaSkpIHsKKyAgICAgICAgICAgICAgICBidWYuZGVsZXRlKGksIGkrMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBTdHJpbmcgRElBTiA9ICJcdTllZGUiOyAvLyBkZWNpbWFsIHBvaW50CisKKyAgICAgICAgZmluYWwgU3RyaW5nW11bXSBtYXJrZXJzID0geworICAgICAgICAgICAgeyAiXHU4NDJjIiwgIlx1NTEwNCIsICJcdTUxNDYiLCAiXHUzMDA3IiB9LCAvLyBtYXJrZXIgY2hhcnMsIGxhc3QgY2hhciBpcyB0aGUgJ3plcm8nCisgICAgICAgICAgICB7ICJcdTRlMDciLCAiXHU0ZWJmIiwgIlx1NTE0NiIsICJcdTMwMDciIH0sCisgICAgICAgICAgICB7ICJcdTg0MmMiLCAiXHU1MTA0IiwgIlx1NTE0NiIsICJcdTk2ZjYiIH0KKyAgICAgICAgICAgIC8vIG5lZWQgbWFya2VycyBmb3IgdGltZT8KKyAgICAgICAgfTsKKworICAgICAgICAvLyByZW1vdmUgdW53YW50ZWQgbGluZ3MKKyAgICAgICAgLy8gYSAnMCcgKGxpbmcpIHdpdGggKiBtaWdodCBiZSByZW1vdmVkCisgICAgICAgIC8vIG1hcmsgb2ZmIDEwLDAwMCAnY2h1bmtzJywgbWFya2VycyBhcmUgWiwgWSwgVyAoemhhbywgeWlpLCBhbmQgd2FuKQorICAgICAgICAvLyBhbHJlYWR5LCB3ZSBhdm9pZCB0d28gbGluZ3MgaW4gdGhlIHNhbWUgY2h1bmsgLS0gbGluZyB3aXRob3V0ICogd2lucworICAgICAgICAvLyBub3csIGp1c3QgbmVlZCAgdG8gYXZvaWQgb3B0aW9uYWwgbGluZ3MgaW4gYWRqYWNlbnQgY2h1bmtzCisgICAgICAgIC8vIHByb2Nlc3MgcmlnaHQgdG8gbGVmdAorCisgICAgICAgIC8vIGRlY2lzaW9uIG1hdHJpeDoKKyAgICAgICAgLy8gc3RhdGUsIHNpdHVhdGlvbgorICAgICAgICAvLyAgICAgc3RhdGUgICAgICAgICBub25lICAgICAgIG9wdC4gICAgICAgICAgcmVxLgorICAgICAgICAvLyAgICAgLS0tLS0gICAgICAgICAtLS0tICAgICAgIC0tLS0gICAgICAgICAgLS0tLQorICAgICAgICAvLyBub25lIHRvIHJpZ2h0ICAgICBub25lICAgICAgIG9wdC4gICAgICAgICAgcmVxLiAgCisgICAgICAgIC8vIG9wdC4gdG8gcmlnaHQgICAgIG5vbmUgICBjbGVhciwgbm9uZSAgY2xlYXIgcmlnaHQsIHJlcS4KKyAgICAgICAgLy8gcmVxLiB0byByaWdodCAgICAgbm9uZSAgIGNsZWFyLCBub25lICAgICAgIHJlcS4KKworICAgICAgICAvLyBtYXJrIGNodW5rcyB3aXRoICd8JyBmb3IgY29udmVuaWVuY2UKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nW10gbSA9IG1hcmtlcnNbZm9ybWF0XTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbS5sZW5ndGgtMTsgKytpKSB7CisgICAgICAgICAgICAgICAgaW50IG4gPSBVdGlsaXR5LmluZGV4T2YoYnVmLCBtW2ldKTsKKyAgICAgICAgICAgICAgICBpZiAobiAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICBidWYuaW5zZXJ0KG4rbVtpXS5sZW5ndGgoKSwgJ3wnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgeCA9IFV0aWxpdHkuaW5kZXhPZihidWYsIERJQU4pOworICAgICAgICBpZiAoeCA9PSAtMSkgeworICAgICAgICAgICAgeCA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgcyA9IDA7IC8vIDAgPSBub25lIHRvIHJpZ2h0LCAxID0gb3B0LiB0byByaWdodCwgMiA9IHJlcS4gdG8gcmlnaHQKKyAgICAgICAgaW50IG4gPSAtMTsgLy8gcHJldmlvdXMgb3B0aW9uYWwgbGluZworICAgICAgICBTdHJpbmcgbGluZyA9IG1hcmtlcnNbZm9ybWF0XVszXTsKKyAgICAgICAgd2hpbGUgKHggPj0gMCkgeworICAgICAgICAgICAgaW50IG0gPSBVdGlsaXR5Lmxhc3RJbmRleE9mKGJ1ZiwgInwiLCB4KTsKKyAgICAgICAgICAgIGludCBubiA9IFV0aWxpdHkubGFzdEluZGV4T2YoYnVmLCBsaW5nLCB4KTsKKyAgICAgICAgICAgIGludCBucyA9IDA7CisgICAgICAgICAgICBpZiAobm4gPiBtKSB7CisgICAgICAgICAgICAgICAgbnMgPSAobm4gPiAwICYmIGJ1Zi5jaGFyQXQobm4tMSkgIT0gJyonKSA/IDIgOiAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgeCA9IG0gLSAxOworCisgICAgICAgICAgICAvLyBhY3R1YWxseSBtdWNoIHNpbXBsZXIsIGJ1dCBsZWF2ZSB0aGlzIHZlcmJvc2UgZm9yIG5vdyBzbyBpdCdzIGVhc2llciB0byBmb2xsb3cKKyAgICAgICAgICAgIHN3aXRjaCAocyozK25zKSB7CisgICAgICAgICAgICBjYXNlIDA6IC8qIG5vbmUsIG5vbmUgKi8KKyAgICAgICAgICAgICAgICBzID0gbnM7IC8vIHJlZHVuZGFudAorICAgICAgICAgICAgICAgIG4gPSAtMTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTogLyogbm9uZSwgb3B0LiAqLworICAgICAgICAgICAgICAgIHMgPSBuczsKKyAgICAgICAgICAgICAgICBuID0gbm47IC8vIHJlbWVtYmVyIG9wdGlvbmFsIGxpbmcgdG8gcmlnaHQKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjogLyogbm9uZSwgcmVxLiAqLworICAgICAgICAgICAgICAgIHMgPSBuczsKKyAgICAgICAgICAgICAgICBuID0gLTE7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDM6IC8qIG9wdC4sIG5vbmUgKi8KKyAgICAgICAgICAgICAgICBzID0gbnM7CisgICAgICAgICAgICAgICAgbiA9IC0xOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA0OiAvKiBvcHQuLCBvcHQuICovCisgICAgICAgICAgICAgICAgYnVmLmRlbGV0ZShubi0xLCBubitsaW5nLmxlbmd0aCgpKTsgLy8gZGVsZXRlIGN1cnJlbnQgb3B0aW9uYWwgbGluZworICAgICAgICAgICAgICAgIHMgPSAwOworICAgICAgICAgICAgICAgIG4gPSAtMTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNTogLyogb3B0LiwgcmVxLiAqLworICAgICAgICAgICAgICAgIGJ1Zi5kZWxldGUobi0xLCBuK2xpbmcubGVuZ3RoKCkpOyAvLyBkZWxldGUgcHJldmlvdXMgb3B0aW9uYWwgbGluZworICAgICAgICAgICAgICAgIHMgPSBuczsKKyAgICAgICAgICAgICAgICBuID0gLTE7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDY6IC8qIHJlcS4sIG5vbmUgKi8KKyAgICAgICAgICAgICAgICBzID0gbnM7CisgICAgICAgICAgICAgICAgbiA9IC0xOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSA3OiAvKiByZXEuLCBvcHQuICovCisgICAgICAgICAgICAgICAgYnVmLmRlbGV0ZShubi0xLCBubitsaW5nLmxlbmd0aCgpKTsgLy8gZGVsZXRlIGN1cnJlbnQgb3B0aW9uYWwgbGluZworICAgICAgICAgICAgICAgIHMgPSAwOworICAgICAgICAgICAgICAgIG4gPSAtMTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgODogLyogcmVxLiwgcmVxLiAqLworICAgICAgICAgICAgICAgIHMgPSBuczsKKyAgICAgICAgICAgICAgICBuID0gLTE7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGkgPSBidWYubGVuZ3RoKCk7IC0taSA+PSAwOykgeworICAgICAgICAgICAgY2hhciBjID0gYnVmLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmIChjID09ICcqJyB8fCBjID09ICd8JykgeworICAgICAgICAgICAgICAgIGJ1Zi5kZWxldGUoaSwgaSsxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JCTkZQb3N0UHJvY2Vzc29yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SQk5GUG9zdFByb2Nlc3Nvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhNWE2MzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SQk5GUG9zdFByb2Nlc3Nvci5qYXZhCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiBQb3N0IHByb2Nlc3NvciBmb3IgUkJORiBvdXRwdXQuCisgKiBAaW50ZXJuYWwKKyAqLworY2xhc3MgUkJORlBvc3RQcm9jZXNzb3IgeworICAgIC8qKgorICAgICAqIEluaXRpYWxpemF0aW9uIHJvdXRpbmUgZm9yIHRoaXMgaW5zdGFuY2UsIGNhbGxlZCBvbmNlCisgICAgICogaW1tZWRpYXRlbHkgYWZ0ZXIgZmlyc3QgY29uc3RydWN0aW9uIGFuZCBuZXZlciBhZ2Fpbi4KKyAgICAgKiBAcGFyYW0gZm9ybWF0dGVyIHRoZSBmb3JtYXR0ZXIgdGhhdCB3aWxsIGJlIHVzaW5nIHRoaXMgcG9zdC1wcm9jZXNzb3IKKyAgICAgKiBAcGFyYW0gdGhlIHNwZWNpYWwgcnVsZXMgZm9yIHRoaXMgcG9zdC1wcm9jZXNvcgorICAgICAqLworICAgIHZvaWQgaW5pdChSdWxlQmFzZWROdW1iZXJGb3JtYXQgZm9ybWF0dGVyLCBTdHJpbmcgcnVsZXMpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXb3JrIHJvdXRpbmUuICBQb3N0IHByb2Nlc3MgdGhlIG91dHB1dCwgd2hpY2ggd2FzIGdlbmVyYXRlZCBieSB0aGUKKyAgICAgKiBydWxlc2V0IHdpdGggdGhlIGdpdmVuIG5hbWUuCisgICAgICogQHBhcmFtIG91dHB1dCB0aGUgb3V0cHV0IG9mIHRoZSBtYWluIFJCTkYgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSBydWxlU2V0IHRoZSBydWxlIHNldCBvcmlnaW5hbGx5IGludm9rZWQgdG8gZ2VuZXJhdGUgdGhlIG91dHB1dAorICAgICAqLworICAgIHZvaWQgcHJvY2VzcyhTdHJpbmdCdWZmZXIgb3V0cHV0LCBORlJ1bGVTZXQgcnVsZVNldCkgeworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1Jhd0NvbGxhdGlvbktleS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmF3Q29sbGF0aW9uS2V5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk1YjYzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1Jhd0NvbGxhdGlvbktleS5qYXZhCkBAIC0wLDAgKzEsMTAyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQnl0ZUFycmF5V3JhcHBlcjsKKworLyoqCisgKiA8cD4KKyAqIFNpbXBsZSBjbGFzcyB3cmFwcGVyIHRvIHN0b3JlIHRoZSBpbnRlcm5hbCBieXRlIHJlcHJlc2VudGF0aW9uIG9mIGEgCisgKiBDb2xsYXRpb25LZXkuIFVubGlrZSB0aGUgQ29sbGF0aW9uS2V5LCB0aGlzIGNsYXNzIGRvIG5vdCBjb250YWluIGluZm9ybWF0aW9uIAorICogb24gdGhlIHNvdXJjZSBzdHJpbmcgdGhlIHNvcnQgb3JkZXIgcmVwcmVzZW50cy4gUmF3Q29sbGF0aW9uS2V5IGlzIG11dGFibGUgCisgKiBhbmQgdXNlcnMgY2FuIHJldXNlIGl0cyBvYmplY3RzIHdpdGggdGhlIG1ldGhvZCBpbiAKKyAqIFJ1bGVCYXNlZENvbGxhdG9yLmdldFJhd0NvbGxhdGlvbktleSguLikuCisgKiA8L3A+CisgKiA8cD4KKyAqIFBsZWFzZSByZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBvbiBDb2xsYXRpb25LZXkgZm9yIGEgZGV0YWlsIGRlc2NyaXB0aW9uCisgKiBvbiB0aGUgaW50ZXJuYWwgYnl0ZSByZXByZXNlbnRhdGlvbi4gTm90ZSB0aGUgaW50ZXJuYWwgYnl0ZSByZXByZXNlbnRhdGlvbiAKKyAqIGlzIGFsd2F5cyBudWxsLXRlcm1pbmF0ZWQuCisgKiA8L3A+IAorICogPGNvZGU+CisgKiBFeGFtcGxlIG9mIHVzZTo8YnI+CisgKiBTdHJpbmcgc3RyW10gPSB7Li4uLi59OworICogUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKTsKKyAqIFJhd0NvbGxhdGlvbktleSBrZXkgPSBuZXcgUmF3Q29sbGF0aW9uS2V5KDEyOCk7CisgKiBmb3IgKGludCBpID0gMDsgaSAmbHQ7IHN0ci5sZW5ndGg7IGkgKyspIHsKKyAqICAgICBjb2xsYXRvci5nZXRSYXdDb2xsYXRpb25LZXkoc3RyW2ldLCBrZXkpOworICogICAgIC8vIGRvIHNvbWV0aGluZyB3aXRoIGtleS5ieXRlcworICogfQorICogPC9jb2RlPgorICogPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBDb21wYXJpc29uIGJldHdlZW4gUmF3Q29sbGF0aW9uS2V5cyBjcmVhdGVkIGJ5IAorICogZGlmZmVyZW50IENvbGxhdG9ycyBtaWdodCByZXR1cm4gaW5jb3JyZWN0IHJlc3VsdHMuICAKKyAqIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBDb2xsYXRvci48L3A+CisgKiBAc3RhYmxlIElDVSAyLjgKKyAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAqIEBzZWUgQ29sbGF0aW9uS2V5CisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBSYXdDb2xsYXRpb25LZXkgZXh0ZW5kcyBCeXRlQXJyYXlXcmFwcGVyCit7CisgICAgLy8gcHVibGljIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IsIGludGVybmFsIGJ5dGUgYXJyYXkgaXMgbnVsbCBhbmQgaXRzIHNpemUgc2V0IHRvIDAuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFJhd0NvbGxhdGlvbktleSgpIAorICAgIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSYXdDb2xsYXRpb25LZXkgY3JlYXRlZCB3aXRoIGFuIGVtcHR5IGludGVybmFsIGJ5dGUgYXJyYXkgb2YgbGVuZ3RoIAorICAgICAqIGNhcGFjaXR5LiBTaXplIG9mIHRoZSBpbnRlcm5hbCBieXRlIGFycmF5IHdpbGwgYmUgc2V0IHRvIDAuCisgICAgICogQHBhcmFtIGNhcGFjaXR5IGxlbmd0aCBvZiBpbnRlcm5hbCBieXRlIGFycmF5CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFJhd0NvbGxhdGlvbktleShpbnQgY2FwYWNpdHkpIAorICAgIHsKKyAgICAgICAgYnl0ZXMgPSBuZXcgYnl0ZVtjYXBhY2l0eV07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmF3Q29sbGF0aW9uS2V5IGNyZWF0ZWQsIGFkb3B0aW5nIGJ5dGVzIGFzIHRoZSBpbnRlcm5hbCBieXRlIGFycmF5LgorICAgICAqIFNpemUgb2YgdGhlIGludGVybmFsIGJ5dGUgYXJyYXkgd2lsbCBiZSBzZXQgdG8gMC4KKyAgICAgKiBAcGFyYW0gYnl0ZXMgYnl0ZSBhcnJheSB0byBiZSBhZG9wdGVkIGJ5IFJhd0NvbGxhdGlvbktleQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBSYXdDb2xsYXRpb25LZXkoYnl0ZVtdIGJ5dGVzKSAKKyAgICB7CisgICAgICAgIHRoaXMuYnl0ZXMgPSBieXRlczsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgUmF3Q29sbGF0aW9uS2V5IGZyb20gYSBieXRlIGFycmF5IGFuZCBzaXplLgorICAgICAqIEBwYXJhbSBieXRlc1RvQWRvcHQgdGhlIGJ5dGUgYXJyYXkgdG8gYWRvcHQKKyAgICAgKiBAcGFyYW0gc2l6ZSB0aGUgbGVuZ3RoIG9mIHZhbGlkIGRhdGEgaW4gdGhlIGJ5dGUgYXJyYXkKKyAgICAgKiBAdGhyb3dzIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgYnl0ZXNUb0Fkb3B0ID09IG51bGwgYW5kIHNpemUgIT0gMCwgb3IKKyAgICAgKiBzaXplIDwgMCwgb3Igc2l6ZSA+IGJ5dGVzVG9BZG9wdC5sZW5ndGguCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFJhd0NvbGxhdGlvbktleShieXRlW10gYnl0ZXNUb0Fkb3B0LCBpbnQgc2l6ZSkgCisgICAgeworICAgICAgICBzdXBlcihieXRlc1RvQWRvcHQsIHNpemUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdGhpcyBSYXdDb2xsYXRpb25LZXkgdG8gYW5vdGhlciwgd2hpY2ggbXVzdCBub3QgYmUgbnVsbC4gIFRoaXMgb3ZlcnJpZGVzCisgICAgICogdGhlIGluaGVyaXRlZCBpbXBsZW1lbnRhdGlvbiB0byBlbnN1cmUgdGhlIHJldHVybmVkIHZhbHVlcyBhcmUgLTEsIDAsIG9yIDEuCisgICAgICogQHBhcmFtIHJocyB0aGUgUmF3Q29sbGF0aW9uS2V5IHRvIGNvbXBhcmUgdG8uCisgICAgICogQHJldHVybiAtMSwgMCwgb3IgMSBhcyB0aGlzIGNvbXBhcmVzIGxlc3MgdGhhbiwgZXF1YWwgdG8sIG9yCisgICAgICogZ3JlYXRlciB0aGFuIHJocy4KKyAgICAgKiBAdGhyb3dzIENsYXNzQ2FzdEV4Y2VwdGlvbiBpZiB0aGUgb3RoZXIgb2JqZWN0IGlzIG5vdCBhIFJhd0NvbGxhdGlvbktleS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCByaHMpIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IHN1cGVyLmNvbXBhcmVUbygoUmF3Q29sbGF0aW9uS2V5KXJocyk7CisgICAgICAgIHJldHVybiByZXN1bHQgPCAwID8gLTEgOiByZXN1bHQgPT0gMCA/IDAgOiAxOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlbW92ZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SZW1vdmVUcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNkMDIwMDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SZW1vdmVUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgcmVtb3ZlcyBjaGFyYWN0ZXJzLiAgVGhpcyBpcyB1c2VmdWwgaW4gY29uanVuY3Rpb24KKyAqIHdpdGggYSBmaWx0ZXIuCisgKi8KK2NsYXNzIFJlbW92ZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgLyoqCisgICAgICogSUQgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIF9JRCA9ICJBbnktUmVtb3ZlIjsKKworICAgIC8qKgorICAgICAqIFN5c3RlbSByZWdpc3RyYXRpb24gaG9vay4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlcigpIHsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KF9JRCwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSZW1vdmVUcmFuc2xpdGVyYXRvcigpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJTcGVjaWFsSW52ZXJzZSgiUmVtb3ZlIiwgIk51bGwiLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyBSZW1vdmVUcmFuc2xpdGVyYXRvcigpIHsKKyAgICAgICAgc3VwZXIoX0lELCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBpbmRleCwgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICAvLyBPdXIgY2FsbGVyIChmaWx0ZXJlZFRyYW5zbGl0ZXJhdGUpIGhhcyBhbHJlYWR5IG5hcnJvd2VkIHVzCisgICAgICAgIC8vIHRvIGFuIHVuZmlsdGVyZWQgcnVuLiAgRGVsZXRlIGl0LgorICAgICAgICB0ZXh0LnJlcGxhY2UoaW5kZXguc3RhcnQsIGluZGV4LmxpbWl0LCAiIik7CisgICAgICAgIGludCBsZW4gPSBpbmRleC5saW1pdCAtIGluZGV4LnN0YXJ0OworICAgICAgICBpbmRleC5jb250ZXh0TGltaXQgLT0gbGVuOworICAgICAgICBpbmRleC5saW1pdCAtPSBsZW47CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGJmMjc0MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlLmphdmEKQEAgLTAsMCArMSwxODYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IGlzIGFuIGludGVyZmFjZSByZXByZXNlbnRpbmcgYQorICogc3RyaW5nIG9mIGNoYXJhY3RlcnMgdGhhdCBzdXBwb3J0cyB0aGUgcmVwbGFjZW1lbnQgb2YgYSByYW5nZSBvZgorICogaXRzZWxmIHdpdGggYSBuZXcgc3RyaW5nIG9mIGNoYXJhY3RlcnMuICBJdCBpcyB1c2VkIGJ5IEFQSXMgdGhhdAorICogY2hhbmdlIGEgcGllY2Ugb2YgdGV4dCB3aGlsZSByZXRhaW5pbmcgbWV0YWRhdGEuICBNZXRhZGF0YSBpcyBkYXRhCisgKiBvdGhlciB0aGFuIHRoZSBVbmljb2RlIGNoYXJhY3RlcnMgcmV0dXJuZWQgYnkgY2hhcjMyQXQoKS4gIE9uZQorICogZXhhbXBsZSBvZiBtZXRhZGF0YSBpcyBzdHlsZSBhdHRyaWJ1dGVzOyBhbm90aGVyIGlzIGFuIGVkaXQKKyAqIGhpc3RvcnksIG1hcmtpbmcgZWFjaCBjaGFyYWN0ZXIgd2l0aCBhbiBhdXRob3IgYW5kIHJldmlzaW9uIG51bWJlci4KKyAqCisgKiA8cD5BbiBpbXBsaWNpdCBhc3BlY3Qgb2YgdGhlIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBBUEkgaXMgdGhhdAorICogZHVyaW5nIGEgcmVwbGFjZSBvcGVyYXRpb24sIG5ldyBjaGFyYWN0ZXJzIHRha2Ugb24gdGhlIG1ldGFkYXRhIG9mCisgKiB0aGUgb2xkIGNoYXJhY3RlcnMuICBGb3IgZXhhbXBsZSwgaWYgdGhlIHN0cmluZyAidGhlIDxiPmJvbGQ8L2I+CisgKiBmb250IiBoYXMgcmFuZ2UgKDQsIDgpIHJlcGxhY2VkIHdpdGggInN0cm9uZyIsIHRoZW4gaXQgYmVjb21lcyAidGhlCisgKiA8Yj5zdHJvbmc8L2I+IGZvbnQiLgorICoKKyAqIDxwPjxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBzcGVjaWZpZXMgcmFuZ2VzIHVzaW5nIGEgc3RhcnQKKyAqIG9mZnNldCBhbmQgYSBsaW1pdCBvZmZzZXQuICBUaGUgcmFuZ2Ugb2YgY2hhcmFjdGVycyB0aHVzIHNwZWNpZmllZAorICogaW5jbHVkZXMgdGhlIGNoYXJhY3RlcnMgYXQgb2Zmc2V0IHN0YXJ0Li5saW1pdC0xLiAgVGhhdCBpcywgdGhlCisgKiBzdGFydCBvZmZzZXQgaXMgaW5jbHVzaXZlLCBhbmQgdGhlIGxpbWl0IG9mZnNldCBpcyBleGNsdXNpdmUuCisgKgorICogPHA+PGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IGFsc28gaW5jbHVkZXMgQVBJIHRvIGFjY2VzcyBjaGFyYWN0ZXJzCisgKiBpbiB0aGUgc3RyaW5nOiA8Y29kZT5sZW5ndGgoKTwvY29kZT4sIDxjb2RlPmNoYXJBdCgpPC9jb2RlPiwKKyAqIDxjb2RlPmNoYXIzMkF0KCk8L2NvZGU+LCBhbmQgPGNvZGU+ZXh0cmFjdEJldHdlZW4oKTwvY29kZT4uCisgKgorICogPHA+Rm9yIGEgc3ViY2xhc3MgdG8gc3VwcG9ydCBtZXRhZGF0YSwgdHlwaWNhbCBiZWhhdmlvciBvZgorICogPGNvZGU+cmVwbGFjZSgpPC9jb2RlPiBpcyB0aGUgZm9sbG93aW5nOgorICogPHVsPgorICogICA8bGk+U2V0IHRoZSBtZXRhZGF0YSBvZiB0aGUgbmV3IHRleHQgdG8gdGhlIG1ldGFkYXRhIG9mIHRoZSBmaXJzdAorICogICBjaGFyYWN0ZXIgcmVwbGFjZWQ8L2xpPgorICogICA8bGk+SWYgbm8gY2hhcmFjdGVycyBhcmUgcmVwbGFjZWQsIHVzZSB0aGUgbWV0YWRhdGEgb2YgdGhlCisgKiAgIHByZXZpb3VzIGNoYXJhY3RlcjwvbGk+CisgKiAgIDxsaT5JZiB0aGVyZSBpcyBubyBwcmV2aW91cyBjaGFyYWN0ZXIgKGkuZS4gc3RhcnQgPT0gMCksIHVzZSB0aGUKKyAqICAgZm9sbG93aW5nIGNoYXJhY3RlcjwvbGk+CisgKiAgIDxsaT5JZiB0aGVyZSBpcyBubyBmb2xsb3dpbmcgY2hhcmFjdGVyIChpLmUuIHRoZSByZXBsYWNlYWJsZSB3YXMKKyAqICAgZW1wdHkpLCB1c2UgZGVmYXVsdCBtZXRhZGF0YTxicj4KKyAqICAgPGxpPklmIHRoZSBjb2RlIHBvaW50IFUrRkZGRiBpcyBzZWVuLCBpdCBzaG91bGQgYmUgaW50ZXJwcmV0ZWQgYXMKKyAqICAgYSBzcGVjaWFsIG1hcmtlciBoYXZpbmcgbm8gbWV0YWRhdGE8bGk+CisgKiAgIDwvbGk+CisgKiA8L3VsPgorICogSWYgdGhpcyBpcyBub3QgdGhlIGJlaGF2aW9yLCB0aGUgc3ViY2xhc3Mgc2hvdWxkIGRvY3VtZW50IGFueSBkaWZmZXJlbmNlcy4KKyAqIAorICogPHA+Q29weXJpZ2h0ICZjb3B5OyBJQk0gQ29ycG9yYXRpb24gMTk5OS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgUmVwbGFjZWFibGUgeworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiAxNi1iaXQgY29kZSB1bml0cyBpbiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIG51bWJlciBvZiAxNi1iaXQgY29kZSB1bml0cyBpbiB0ZXh0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovIAorICAgIGludCBsZW5ndGgoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIDE2LWJpdCBjb2RlIHVuaXQgYXQgdGhlIGdpdmVuIG9mZnNldCBpbnRvIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDxjb2RlPmxlbmd0aCgpPC9jb2RlPi0xCisgICAgICogaW5jbHVzaXZlCisgICAgICogQHJldHVybiAxNi1iaXQgY29kZSB1bml0IG9mIHRleHQgYXQgZ2l2ZW4gb2Zmc2V0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgY2hhciBjaGFyQXQoaW50IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSAzMi1iaXQgY29kZSBwb2ludCBhdCB0aGUgZ2l2ZW4gMTYtYml0IG9mZnNldCBpbnRvCisgICAgICogdGhlIHRleHQuICBUaGlzIGFzc3VtZXMgdGhlIHRleHQgaXMgc3RvcmVkIGFzIDE2LWJpdCBjb2RlIHVuaXRzCisgICAgICogd2l0aCBzdXJyb2dhdGUgcGFpcnMgaW50ZXJtaXhlZC4gIElmIHRoZSBvZmZzZXQgb2YgYSBsZWFkaW5nIG9yCisgICAgICogdHJhaWxpbmcgY29kZSB1bml0IG9mIGEgc3Vycm9nYXRlIHBhaXIgaXMgZ2l2ZW4sIHJldHVybiB0aGUKKyAgICAgKiBjb2RlIHBvaW50IG9mIHRoZSBzdXJyb2dhdGUgcGFpci4KKyAgICAgKgorICAgICAqIDxwPk1vc3Qgc3ViY2xhc3NlcyBjYW4gcmV0dXJuCisgICAgICogPGNvZGU+Y29tLmlibS5pY3UudGV4dC5VVEYxNi5jaGFyQXQodGhpcywgb2Zmc2V0KTwvY29kZT4uCisgICAgICogQHBhcmFtIG9mZnNldCBhbiBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgPGNvZGU+bGVuZ3RoKCk8L2NvZGU+LTEKKyAgICAgKiBpbmNsdXNpdmUKKyAgICAgKiBAcmV0dXJuIDMyLWJpdCBjb2RlIHBvaW50IG9mIHRleHQgYXQgZ2l2ZW4gb2Zmc2V0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50IGNoYXIzMkF0KGludCBvZmZzZXQpOworCisgICAgLyoqCisgICAgICogQ29waWVzIGNoYXJhY3RlcnMgZnJvbSB0aGlzIG9iamVjdCBpbnRvIHRoZSBkZXN0aW5hdGlvbgorICAgICAqIGNoYXJhY3RlciBhcnJheS4gIFRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gYmUgY29waWVkIGlzIGF0IGluZGV4CisgICAgICogPGNvZGU+c3JjU3RhcnQ8L2NvZGU+OyB0aGUgbGFzdCBjaGFyYWN0ZXIgdG8gYmUgY29waWVkIGlzIGF0CisgICAgICogaW5kZXggPGNvZGU+c3JjTGltaXQtMTwvY29kZT4gKHRodXMgdGhlIHRvdGFsIG51bWJlciBvZgorICAgICAqIGNoYXJhY3RlcnMgdG8gYmUgY29waWVkIGlzIDxjb2RlPnNyY0xpbWl0LXNyY1N0YXJ0PC9jb2RlPikuIFRoZQorICAgICAqIGNoYXJhY3RlcnMgYXJlIGNvcGllZCBpbnRvIHRoZSBzdWJhcnJheSBvZiA8Y29kZT5kc3Q8L2NvZGU+CisgICAgICogc3RhcnRpbmcgYXQgaW5kZXggPGNvZGU+ZHN0U3RhcnQ8L2NvZGU+IGFuZCBlbmRpbmcgYXQgaW5kZXgKKyAgICAgKiA8Y29kZT5kc3RTdGFydCArIChzcmNMaW1pdC1zcmNTdGFydCkgLSAxPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzcmNTdGFydCB0aGUgYmVnaW5uaW5nIGluZGV4IHRvIGNvcHksIGluY2x1c2l2ZTsgPGNvZGU+MAorICAgICAqIDw9IHN0YXJ0IDw9IGxpbWl0PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gc3JjTGltaXQgdGhlIGVuZGluZyBpbmRleCB0byBjb3B5LCBleGNsdXNpdmU7CisgICAgICogPGNvZGU+c3RhcnQgPD0gbGltaXQgPD0gbGVuZ3RoKCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSBkc3QgdGhlIGRlc3RpbmF0aW9uIGFycmF5LgorICAgICAqIEBwYXJhbSBkc3RTdGFydCB0aGUgc3RhcnQgb2Zmc2V0IGluIHRoZSBkZXN0aW5hdGlvbiBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2b2lkIGdldENoYXJzKGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LCBjaGFyIGRzdFtdLCBpbnQgZHN0U3RhcnQpOworCisgICAgLyoqCisgICAgICogUmVwbGFjZXMgYSBzdWJzdHJpbmcgb2YgdGhpcyBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gdGV4dC4KKyAgICAgKgorICAgICAqIDxwPlN1YmNsYXNzZXMgbXVzdCBlbnN1cmUgdGhhdCBpZiB0aGUgdGV4dCBiZXR3ZWVuIHN0YXJ0IGFuZAorICAgICAqIGxpbWl0IGlzIGVxdWFsIHRvIHRoZSByZXBsYWNlbWVudCB0ZXh0LCB0aGF0IHJlcGxhY2UgaGFzIG5vCisgICAgICogZWZmZWN0LiBUaGF0IGlzLCBhbnkgbWV0YWRhdGEKKyAgICAgKiBzaG91bGQgYmUgdW5hZmZlY3RlZC4gSW4gYWRkaXRpb24sIHN1YmNsYXNzZXMgYXJlIGVuY291cmFnZWQgdG8KKyAgICAgKiBjaGVjayBmb3IgaW5pdGlhbCBhbmQgdHJhaWxpbmcgaWRlbnRpY2FsIGNoYXJhY3RlcnMsIGFuZCBtYWtlIGEKKyAgICAgKiBzbWFsbGVyIHJlcGxhY2VtZW50IGlmIHBvc3NpYmxlLiBUaGlzIHdpbGwgcHJlc2VydmUgYXMgbXVjaAorICAgICAqIG1ldGFkYXRhIGFzIHBvc3NpYmxlLgorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIGluZGV4LCBpbmNsdXNpdmU7IDxjb2RlPjAgPD0gc3RhcnQKKyAgICAgKiA8PSBsaW1pdDwvY29kZT4uCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBlbmRpbmcgaW5kZXgsIGV4Y2x1c2l2ZTsgPGNvZGU+c3RhcnQgPD0gbGltaXQKKyAgICAgKiA8PSBsZW5ndGgoKTwvY29kZT4uCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gcmVwbGFjZSBjaGFyYWN0ZXJzIDxjb2RlPnN0YXJ0PC9jb2RlPgorICAgICAqIHRvIDxjb2RlPmxpbWl0IC0gMTwvY29kZT4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0cmluZyB0ZXh0KTsKKworICAgIC8qKgorICAgICAqIFJlcGxhY2VzIGEgc3Vic3RyaW5nIG9mIHRoaXMgb2JqZWN0IHdpdGggdGhlIGdpdmVuIHRleHQuCisgICAgICoKKyAgICAgKiA8cD5TdWJjbGFzc2VzIG11c3QgZW5zdXJlIHRoYXQgaWYgdGhlIHRleHQgYmV0d2VlbiBzdGFydCBhbmQKKyAgICAgKiBsaW1pdCBpcyBlcXVhbCB0byB0aGUgcmVwbGFjZW1lbnQgdGV4dCwgdGhhdCByZXBsYWNlIGhhcyBubworICAgICAqIGVmZmVjdC4gVGhhdCBpcywgYW55IG1ldGFkYXRhCisgICAgICogc2hvdWxkIGJlIHVuYWZmZWN0ZWQuIEluIGFkZGl0aW9uLCBzdWJjbGFzc2VzIGFyZSBlbmNvdXJhZ2VkIHRvCisgICAgICogY2hlY2sgZm9yIGluaXRpYWwgYW5kIHRyYWlsaW5nIGlkZW50aWNhbCBjaGFyYWN0ZXJzLCBhbmQgbWFrZSBhCisgICAgICogc21hbGxlciByZXBsYWNlbWVudCBpZiBwb3NzaWJsZS4gVGhpcyB3aWxsIHByZXNlcnZlIGFzIG11Y2gKKyAgICAgKiBtZXRhZGF0YSBhcyBwb3NzaWJsZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCwgaW5jbHVzaXZlOyA8Y29kZT4wIDw9IHN0YXJ0CisgICAgICogPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBsaW1pdCB0aGUgZW5kaW5nIGluZGV4LCBleGNsdXNpdmU7IDxjb2RlPnN0YXJ0IDw9IGxpbWl0CisgICAgICogPD0gbGVuZ3RoKCk8L2NvZGU+LgorICAgICAqIEBwYXJhbSBjaGFycyB0aGUgdGV4dCB0byByZXBsYWNlIGNoYXJhY3RlcnMgPGNvZGU+c3RhcnQ8L2NvZGU+CisgICAgICogdG8gPGNvZGU+bGltaXQgLSAxPC9jb2RlPgorICAgICAqIEBwYXJhbSBjaGFyc1N0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXggaW50byA8Y29kZT5jaGFyczwvY29kZT4sCisgICAgICogaW5jbHVzaXZlOyA8Y29kZT4wIDw9IHN0YXJ0IDw9IGxpbWl0PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gY2hhcnNMZW4gdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIG9mIDxjb2RlPmNoYXJzPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBjaGFycywKKyAgICAgICAgICAgICAgICAgaW50IGNoYXJzU3RhcnQsIGludCBjaGFyc0xlbik7CisgICAgLy8gTm90ZTogV2UgdXNlIGxlbmd0aCByYXRoZXIgdGhhbiBsaW1pdCB0byBjb25mb3JtIHRvIFN0cmluZ0J1ZmZlcgorICAgIC8vIGFuZCBTeXN0ZW0uYXJyYXljb3B5LgorCisgICAgLyoqCisgICAgICogQ29waWVzIGEgc3Vic3RyaW5nIG9mIHRoaXMgb2JqZWN0LCByZXRhaW5pbmcgbWV0YWRhdGEuCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBkdXBsaWNhdGUgb3IgcmVvcmRlciBzdWJzdHJpbmdzLgorICAgICAqIFRoZSBkZXN0aW5hdGlvbiBpbmRleCBtdXN0IG5vdCBvdmVybGFwIHRoZSBzb3VyY2UgcmFuZ2UuCisgICAgICogSWYgPGNvZGU+aGFzTWV0YURhdGEoKTwvY29kZT4gcmV0dXJucyBmYWxzZSwgc3ViY2xhc3NlcworICAgICAqIG1heSB1c2UgdGhlIG5haXZlIGltcGxlbWVudGF0aW9uOgorICAgICAqCisgICAgICogPHByZT4gY2hhcltdIHRleHQgPSBuZXcgY2hhcltsaW1pdCAtIHN0YXJ0XTsKKyAgICAgKiBnZXRDaGFycyhzdGFydCwgbGltaXQsIHRleHQsIDApOworICAgICAqIHJlcGxhY2UoZGVzdCwgZGVzdCwgdGV4dCwgMCwgbGltaXQgLSBzdGFydCk7PC9wcmU+CisgICAgICogCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXgsIGluY2x1c2l2ZTsgPGNvZGU+MCA8PSBzdGFydCA8PQorICAgICAqIGxpbWl0PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGVuZGluZyBpbmRleCwgZXhjbHVzaXZlOyA8Y29kZT5zdGFydCA8PSBsaW1pdCA8PQorICAgICAqIGxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gZGVzdCB0aGUgZGVzdGluYXRpb24gaW5kZXguICBUaGUgY2hhcmFjdGVycyBmcm9tCisgICAgICogPGNvZGU+c3RhcnQuLmxpbWl0LTE8L2NvZGU+IHdpbGwgYmUgY29waWVkIHRvIDxjb2RlPmRlc3Q8L2NvZGU+LgorICAgICAqIEltcGxlbWVudGF0aW9ucyBvZiB0aGlzIG1ldGhvZCBtYXkgYXNzdW1lIHRoYXQgPGNvZGU+ZGVzdCA8PSBzdGFydCB8fAorICAgICAqIGRlc3QgPj0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZvaWQgY29weShpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IGRlc3QpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIG9iamVjdCBjb250YWlucyBtZXRhZGF0YS4gIElmIGEKKyAgICAgKiBSZXBsYWNlYWJsZSBvYmplY3QgaGFzIG1ldGFkYXRhLCBjYWxscyB0byB0aGUgUmVwbGFjZWFibGUgQVBJCisgICAgICogbXVzdCBiZSBtYWRlIHNvIGFzIHRvIHByZXNlcnZlIG1ldGFkYXRhLiAgSWYgaXQgZG9lcyBub3QsIGNhbGxzCisgICAgICogdG8gdGhlIFJlcGxhY2VhYmxlIEFQSSBtYXkgYmUgb3B0aW1pemVkIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgb2JqZWN0IGNvbnRhaW5zIG1ldGFkYXRhCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgYm9vbGVhbiBoYXNNZXRhRGF0YSgpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGVDb250ZXh0SXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGY4NmU3MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1JlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwyMDAgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICBSZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvci5qYXZhCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwNWZlYjA0CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyoKKyogICBJbXBsZW1lbnRhdGlvbiBvZiBVQ2FzZVByb3BzLkNvbnRleHRJdGVyYXRvciwgaXRlcmF0ZXMgb3ZlciBhIFJlcGxhY2VhYmxlLgorKiAgIEphdmEgcG9ydCBvZiBjYXNldHJuLmNwcC91dHJhbnNfcmVwX2Nhc2VDb250ZXh0SXRlcmF0b3IoKS4KKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNhc2VQcm9wczsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBJbXBsZW1lbnRhdGlvbiBvZiBVQ2FzZVByb3BzLkNvbnRleHRJdGVyYXRvciwgaXRlcmF0ZXMgb3ZlciBhIFJlcGxhY2VhYmxlLgorICogU2VlIGNhc2V0cm4uY3BwL3V0cmFuc19yZXBfY2FzZUNvbnRleHRJdGVyYXRvcigpLgorICogU2VlIGFsc28gVUNoYXJhY3Rlci5TdHJpbmdDb250ZXh0SXRlcmF0b3IuCisgKiBAaW50ZXJuYWwKKyAqLworY2xhc3MgUmVwbGFjZWFibGVDb250ZXh0SXRlcmF0b3IgaW1wbGVtZW50cyBVQ2FzZVByb3BzLkNvbnRleHRJdGVyYXRvciB7CisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICogQHBhcmFtIHJlcCBSZXBsYWNlYWJsZSB0byBpdGVyYXRlIG92ZXIuIAorICAgICAqLworICAgIFJlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yKCkgeworICAgICAgICB0aGlzLnJlcD1udWxsOworICAgICAgICBsaW1pdD1jcFN0YXJ0PWNwTGltaXQ9aW5kZXg9Y29udGV4dFN0YXJ0PWNvbnRleHRMaW1pdD0wOworICAgICAgICBkaXI9MDsKKyAgICAgICAgcmVhY2hlZExpbWl0PWZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgdGV4dCBmb3IgaXRlcmF0aW9uLgorICAgICAqIEBwYXJhbSByZXAgSXRlcmF0aW9uIHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChSZXBsYWNlYWJsZSByZXApIHsKKyAgICAgICAgdGhpcy5yZXA9cmVwOworICAgICAgICBsaW1pdD1jb250ZXh0TGltaXQ9cmVwLmxlbmd0aCgpOworICAgICAgICBjcFN0YXJ0PWNwTGltaXQ9aW5kZXg9Y29udGV4dFN0YXJ0PTA7CisgICAgICAgIGRpcj0wOworICAgICAgICByZWFjaGVkTGltaXQ9ZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbmRleCB3aGVyZSBuZXh0Q2FzZU1hcENQKCkgaXMgdG8gc3RhcnQgaXRlcmF0aW5nLgorICAgICAqIEBwYXJhbSBpbmRleCBJdGVyYXRpb24gc3RhcnQgaW5kZXggZm9yIG5leHRDYXNlTWFwQ1AoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJbmRleChpbnQgaW5kZXgpIHsKKyAgICAgICAgY3BTdGFydD1jcExpbWl0PWluZGV4OworICAgICAgICB0aGlzLmluZGV4PTA7CisgICAgICAgIGRpcj0wOworICAgICAgICByZWFjaGVkTGltaXQ9ZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBpbmRleCBvZiB3aGVyZSB0aGUgY29kZSBwb2ludCBjdXJyZW50bHkgYmVpbmcgY2FzZS1tYXBwZWQgc3RhcnRzLgorICAgICAqIEByZXR1cm4gVGhlIHN0YXJ0IGluZGV4IG9mIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRDYXNlTWFwQ1BTdGFydCgpIHsKKyAgICAgICAgcmV0dXJuIGNwU3RhcnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRpb24gbGltaXQgZm9yIG5leHRDYXNlTWFwQ1AoKSB0byBhbiBpbmRleCB3aXRoaW4gdGhlIHN0cmluZy4KKyAgICAgKiBJZiB0aGUgbGltaXQgcGFyYW1ldGVyIGlzIG5lZ2F0aXZlIG9yIHBhc3QgdGhlIHN0cmluZywgdGhlbiB0aGUKKyAgICAgKiBzdHJpbmcgbGVuZ3RoIGlzIHJlc3RvcmVkIGFzIHRoZSBpdGVyYXRpb24gbGltaXQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGltIFRoZSBpdGVyYXRpb24gbGltaXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TGltaXQoaW50IGxpbSkgeworICAgICAgICBpZigwPD1saW0gJiYgbGltPD1yZXAubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGxpbWl0PWxpbTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxpbWl0PXJlcC5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICByZWFjaGVkTGltaXQ9ZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzdGFydCBhbmQgbGltaXQgaW5kZXhlcyBmb3IgY29udGV4dCBpdGVyYXRpb24gd2l0aCBuZXh0KCkuCisgICAgICogQHBhcmFtIGNvbnRleHRTdGFydCBTdGFydCBvZiBjb250ZXh0IGZvciBuZXh0KCkuCisgICAgICogQHBhcmFtIGNvbnRleHRMaW1pdCBMaW1pdCBvZiBjb250ZXh0IGZvciBuZXh0KCkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29udGV4dExpbWl0cyhpbnQgY29udGV4dFN0YXJ0LCBpbnQgY29udGV4dExpbWl0KSB7CisgICAgICAgIGlmKGNvbnRleHRTdGFydDwwKSB7CisgICAgICAgICAgICB0aGlzLmNvbnRleHRTdGFydD0wOworICAgICAgICB9IGVsc2UgaWYoY29udGV4dFN0YXJ0PD1yZXAubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHRoaXMuY29udGV4dFN0YXJ0PWNvbnRleHRTdGFydDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuY29udGV4dFN0YXJ0PXJlcC5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICBpZihjb250ZXh0TGltaXQ8dGhpcy5jb250ZXh0U3RhcnQpIHsKKyAgICAgICAgICAgIHRoaXMuY29udGV4dExpbWl0PXRoaXMuY29udGV4dFN0YXJ0OworICAgICAgICB9IGVsc2UgaWYoY29udGV4dExpbWl0PD1yZXAubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHRoaXMuY29udGV4dExpbWl0PWNvbnRleHRMaW1pdDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuY29udGV4dExpbWl0PXJlcC5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICByZWFjaGVkTGltaXQ9ZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogSXRlcmF0ZSBmb3J3YXJkIHRocm91Z2ggdGhlIHN0cmluZyB0byBmZXRjaCB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAgICogdG8gYmUgY2FzZS1tYXBwZWQsIGFuZCBzZXQgdGhlIGNvbnRleHQgaW5kZXhlcyBmb3IgaXQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBuZXh0IGNvZGUgcG9pbnQgdG8gYmUgY2FzZS1tYXBwZWQsIG9yIDwwIHdoZW4gdGhlIGl0ZXJhdGlvbiBpcyBkb25lLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dENhc2VNYXBDUCgpIHsKKyAgICAgICAgaW50IGM7CisgICAgICAgIGlmKGNwTGltaXQ8bGltaXQpIHsKKyAgICAgICAgICAgIGNwU3RhcnQ9Y3BMaW1pdDsKKyAgICAgICAgICAgIGM9cmVwLmNoYXIzMkF0KGNwTGltaXQpOworICAgICAgICAgICAgY3BMaW1pdCs9VVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgYnkgaXRzIGNhc2UgbWFwcGluZywKKyAgICAgKiBhbmQgdXBkYXRlIHRoZSBpbmRleGVzLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgUmVwbGFjZW1lbnQgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSBkZWx0YSBmb3IgdGhlIGNoYW5nZSBvZiB0aGUgdGV4dCBsZW5ndGguCisgICAgICovCisgICAgcHVibGljIGludCByZXBsYWNlKFN0cmluZyB0ZXh0KSB7CisgICAgICAgIGludCBkZWx0YT10ZXh0Lmxlbmd0aCgpLShjcExpbWl0LWNwU3RhcnQpOworICAgICAgICByZXAucmVwbGFjZShjcFN0YXJ0LCBjcExpbWl0LCB0ZXh0KTsKKyAgICAgICAgY3BMaW1pdCs9ZGVsdGE7CisgICAgICAgIGxpbWl0Kz1kZWx0YTsKKyAgICAgICAgY29udGV4dExpbWl0Kz1kZWx0YTsKKyAgICAgICAgcmV0dXJuIGRlbHRhOworICAgIH0KKworICAgIC8qKgorICAgICAqIERpZCBmb3J3YXJkIGNvbnRleHQgaXRlcmF0aW9uIHdpdGggbmV4dCgpIHJlYWNoIHRoZSBpdGVyYXRpb24gbGltaXQ/CisgICAgICogQHJldHVybiBCb29sZWFuIHZhbHVlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGRpZFJlYWNoTGltaXQoKSB7CisgICAgICAgIHJldHVybiByZWFjaGVkTGltaXQ7CisgICAgfQorCisgICAgLy8gaW1wbGVtZW50IFVDYXNlUHJvcHMuQ29udGV4dEl0ZXJhdG9yCisgICAgcHVibGljIHZvaWQgcmVzZXQoaW50IGRpcikgeworICAgICAgICBpZihkaXI+MCkgeworICAgICAgICAgICAgLyogcmVzZXQgZm9yIGZvcndhcmQgaXRlcmF0aW9uICovCisgICAgICAgICAgICB0aGlzLmRpcj0xOworICAgICAgICAgICAgaW5kZXg9Y3BMaW1pdDsKKyAgICAgICAgfSBlbHNlIGlmKGRpcjwwKSB7CisgICAgICAgICAgICAvKiByZXNldCBmb3IgYmFja3dhcmQgaXRlcmF0aW9uICovCisgICAgICAgICAgICB0aGlzLmRpcj0tMTsKKyAgICAgICAgICAgIGluZGV4PWNwU3RhcnQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBub3QgYSB2YWxpZCBkaXJlY3Rpb24KKyAgICAgICAgICAgIHRoaXMuZGlyPTA7CisgICAgICAgICAgICBpbmRleD0wOworICAgICAgICB9CisgICAgICAgIHJlYWNoZWRMaW1pdD1mYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IG5leHQoKSB7CisgICAgICAgIGludCBjOworCisgICAgICAgIGlmKGRpcj4wKSB7CisgICAgICAgICAgICBpZihpbmRleDxjb250ZXh0TGltaXQpIHsKKyAgICAgICAgICAgICAgICBjPXJlcC5jaGFyMzJBdChpbmRleCk7CisgICAgICAgICAgICAgICAgaW5kZXgrPVVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gZm9yd2FyZCBjb250ZXh0IGl0ZXJhdGlvbiByZWFjaGVkIHRoZSBsaW1pdAorICAgICAgICAgICAgICAgIHJlYWNoZWRMaW1pdD10cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYoZGlyPDAgJiYgaW5kZXg+Y29udGV4dFN0YXJ0KSB7CisgICAgICAgICAgICBjPXJlcC5jaGFyMzJBdChpbmRleC0xKTsKKyAgICAgICAgICAgIGluZGV4LT1VVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLy8gdmFyaWFibGVzCisgICAgcHJvdGVjdGVkIFJlcGxhY2VhYmxlIHJlcDsKKyAgICBwcm90ZWN0ZWQgaW50IGluZGV4LCBsaW1pdCwgY3BTdGFydCwgY3BMaW1pdCwgY29udGV4dFN0YXJ0LCBjb250ZXh0TGltaXQ7CisgICAgcHJvdGVjdGVkIGludCBkaXI7IC8vIDA9aW5pdGlhbCBzdGF0ZSAgPjA9Zm9yd2FyZCAgPDA9YmFja3dhcmQKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiByZWFjaGVkTGltaXQ7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SZXBsYWNlYWJsZVN0cmluZy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGVTdHJpbmcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YjY2NmRlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUmVwbGFjZWFibGVTdHJpbmcuamF2YQpAQCAtMCwwICsxLDIwMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiA8Y29kZT5SZXBsYWNlYWJsZVN0cmluZzwvY29kZT4gaXMgYW4gYWRhcHRlciBjbGFzcyB0aGF0IGltcGxlbWVudHMgdGhlCisgKiA8Y29kZT5SZXBsYWNlYWJsZTwvY29kZT4gQVBJIGFyb3VuZCBhbiBvcmRpbmFyeSA8Y29kZT5TdHJpbmdCdWZmZXI8L2NvZGU+LgorICoKKyAqIDxwPjxlbT5Ob3RlOjwvZW0+IFRoaXMgY2xhc3MgZG9lcyBub3Qgc3VwcG9ydCBhdHRyaWJ1dGVzIGFuZCBpcyBub3QKKyAqIGludGVuZGVkIGZvciBnZW5lcmFsIHVzZS4gIE1vc3QgY2xpZW50cyB3aWxsIG5lZWQgdG8gaW1wbGVtZW50CisgKiB7QGxpbmsgUmVwbGFjZWFibGV9IGluIHRoZWlyIHRleHQgcmVwcmVzZW50YXRpb24gY2xhc3MuCisgKgorICogPHA+Q29weXJpZ2h0ICZjb3B5OyBJQk0gQ29ycG9yYXRpb24gMTk5OS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQHNlZSBSZXBsYWNlYWJsZQorICogQGF1dGhvciBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBSZXBsYWNlYWJsZVN0cmluZyBpbXBsZW1lbnRzIFJlcGxhY2VhYmxlIHsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBidWY7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IG9iamVjdCB3aXRoIHRoZSBnaXZlbiBpbml0aWFsIGNvbnRlbnRzLgorICAgICAqIEBwYXJhbSBzdHIgaW5pdGlhbCBjb250ZW50cworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBSZXBsYWNlYWJsZVN0cmluZyhTdHJpbmcgc3RyKSB7CisgICAgICAgIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoc3RyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgb2JqZWN0IHVzaW5nIDxjb2RlPmJ1ZjwvY29kZT4gZm9yIGludGVybmFsCisgICAgICogc3RvcmFnZS4gIFRoZSBjb250ZW50cyBvZiA8Y29kZT5idWY8L2NvZGU+IGF0IHRoZSB0aW1lIG9mCisgICAgICogY29uc3RydWN0aW9uIGFyZSB1c2VkIGFzIHRoZSBpbml0aWFsIGNvbnRlbnRzLiAgPGVtPk5vdGUhCisgICAgICogTW9kaWZpY2F0aW9ucyB0byA8Y29kZT5idWY8L2NvZGU+IHdpbGwgbW9kaWZ5IHRoaXMgb2JqZWN0LCBhbmQKKyAgICAgKiB2aWNlIHZlcnNhLjwvZW0+CisgICAgICogQHBhcmFtIGJ1ZiBvYmplY3QgdG8gYmUgdXNlZCBhcyBpbnRlcm5hbCBzdG9yYWdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFJlcGxhY2VhYmxlU3RyaW5nKFN0cmluZ0J1ZmZlciBidWYpIHsKKyAgICAgICAgdGhpcy5idWYgPSBidWY7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IGVtcHR5IG9iamVjdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgUmVwbGFjZWFibGVTdHJpbmcoKSB7CisgICAgICAgIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNvbnRlbnRzIG9mIHRoaXMgb2JqZWN0IGFzIGEgPGNvZGU+U3RyaW5nPC9jb2RlPi4KKyAgICAgKiBAcmV0dXJuIHN0cmluZyBjb250ZW50cyBvZiB0aGlzIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBidWYudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdWJzdHJpbmcgb2YgdGhlIGdpdmVuIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHN1YnN0cmluZyhpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICByZXR1cm4gYnVmLnN1YnN0cmluZyhzdGFydCwgbGltaXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgY29udGFpbmVkIGluIHRoaXMgb2JqZWN0LgorICAgICAqIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBBUEkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovIAorICAgIHB1YmxpYyBpbnQgbGVuZ3RoKCkgeworICAgICAgICByZXR1cm4gYnVmLmxlbmd0aCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBnaXZlbiBwb3NpdGlvbiBpbiB0aGlzIG9iamVjdC4KKyAgICAgKiA8Y29kZT5SZXBsYWNlYWJsZTwvY29kZT4gQVBJLgorICAgICAqIEBwYXJhbSBvZmZzZXQgb2Zmc2V0IGludG8gdGhlIGNvbnRlbnRzLCBmcm9tIDAgdG8KKyAgICAgKiA8Y29kZT5sZW5ndGgoKTwvY29kZT4gLSAxCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGNoYXIgY2hhckF0KGludCBvZmZzZXQpIHsKKyAgICAgICAgcmV0dXJuIGJ1Zi5jaGFyQXQob2Zmc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIDMyLWJpdCBjb2RlIHBvaW50IGF0IHRoZSBnaXZlbiAxNi1iaXQgb2Zmc2V0IGludG8KKyAgICAgKiB0aGUgdGV4dC4gIFRoaXMgYXNzdW1lcyB0aGUgdGV4dCBpcyBzdG9yZWQgYXMgMTYtYml0IGNvZGUgdW5pdHMKKyAgICAgKiB3aXRoIHN1cnJvZ2F0ZSBwYWlycyBpbnRlcm1peGVkLiAgSWYgdGhlIG9mZnNldCBvZiBhIGxlYWRpbmcgb3IKKyAgICAgKiB0cmFpbGluZyBjb2RlIHVuaXQgb2YgYSBzdXJyb2dhdGUgcGFpciBpcyBnaXZlbiwgcmV0dXJuIHRoZQorICAgICAqIGNvZGUgcG9pbnQgb2YgdGhlIHN1cnJvZ2F0ZSBwYWlyLgorICAgICAqIEBwYXJhbSBvZmZzZXQgYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDxjb2RlPmxlbmd0aCgpPC9jb2RlPi0xCisgICAgICogaW5jbHVzaXZlCisgICAgICogQHJldHVybiAzMi1iaXQgY29kZSBwb2ludCBvZiB0ZXh0IGF0IGdpdmVuIG9mZnNldAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgY2hhcjMyQXQoaW50IG9mZnNldCkgeworICAgICAgICByZXR1cm4gVVRGMTYuY2hhckF0KGJ1Ziwgb2Zmc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb3BpZXMgY2hhcmFjdGVycyBmcm9tIHRoaXMgb2JqZWN0IGludG8gdGhlIGRlc3RpbmF0aW9uCisgICAgICogY2hhcmFjdGVyIGFycmF5LiAgVGhlIGZpcnN0IGNoYXJhY3RlciB0byBiZSBjb3BpZWQgaXMgYXQgaW5kZXgKKyAgICAgKiA8Y29kZT5zcmNTdGFydDwvY29kZT47IHRoZSBsYXN0IGNoYXJhY3RlciB0byBiZSBjb3BpZWQgaXMgYXQKKyAgICAgKiBpbmRleCA8Y29kZT5zcmNMaW1pdC0xPC9jb2RlPiAodGh1cyB0aGUgdG90YWwgbnVtYmVyIG9mCisgICAgICogY2hhcmFjdGVycyB0byBiZSBjb3BpZWQgaXMgPGNvZGU+c3JjTGltaXQtc3JjU3RhcnQ8L2NvZGU+KS4gVGhlCisgICAgICogY2hhcmFjdGVycyBhcmUgY29waWVkIGludG8gdGhlIHN1YmFycmF5IG9mIDxjb2RlPmRzdDwvY29kZT4KKyAgICAgKiBzdGFydGluZyBhdCBpbmRleCA8Y29kZT5kc3RTdGFydDwvY29kZT4gYW5kIGVuZGluZyBhdCBpbmRleAorICAgICAqIDxjb2RlPmRzdFN0YXJ0ICsgKHNyY0xpbWl0LXNyY1N0YXJ0KSAtIDE8L2NvZGU+LgorICAgICAqCisgICAgICogQHBhcmFtIHNyY1N0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXggdG8gY29weSwgaW5jbHVzaXZlOyA8Y29kZT4wCisgICAgICogPD0gc3RhcnQgPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBzcmNMaW1pdCB0aGUgZW5kaW5nIGluZGV4IHRvIGNvcHksIGV4Y2x1c2l2ZTsKKyAgICAgKiA8Y29kZT5zdGFydCA8PSBsaW1pdCA8PSBsZW5ndGgoKTwvY29kZT4uCisgICAgICogQHBhcmFtIGRzdCB0aGUgZGVzdGluYXRpb24gYXJyYXkuCisgICAgICogQHBhcmFtIGRzdFN0YXJ0IHRoZSBzdGFydCBvZmZzZXQgaW4gdGhlIGRlc3RpbmF0aW9uIGFycmF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGdldENoYXJzKGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0LCBjaGFyIGRzdFtdLCBpbnQgZHN0U3RhcnQpIHsKKyAgICAgICAgVXRpbGl0eS5nZXRDaGFycyhidWYsIHNyY1N0YXJ0LCBzcmNMaW1pdCwgZHN0LCBkc3RTdGFydCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZSB6ZXJvIG9yIG1vcmUgY2hhcmFjdGVycyB3aXRoIG5ldyBjaGFyYWN0ZXJzLgorICAgICAqIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBBUEkuCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXgsIGluY2x1c2l2ZTsgPGNvZGU+MCA8PSBzdGFydAorICAgICAqIDw9IGxpbWl0PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGVuZGluZyBpbmRleCwgZXhjbHVzaXZlOyA8Y29kZT5zdGFydCA8PSBsaW1pdAorICAgICAqIDw9IGxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gdGV4dCBuZXcgdGV4dCB0byByZXBsYWNlIGNoYXJhY3RlcnMgPGNvZGU+c3RhcnQ8L2NvZGU+IHRvCisgICAgICogPGNvZGU+bGltaXQgLSAxPC9jb2RlPgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0cmluZyB0ZXh0KSB7CisgICAgICAgIGJ1Zi5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgdGV4dCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZSBhIHN1YnN0cmluZyBvZiB0aGlzIG9iamVjdCB3aXRoIHRoZSBnaXZlbiB0ZXh0LgorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIGluZGV4LCBpbmNsdXNpdmU7IDxjb2RlPjAgPD0gc3RhcnQKKyAgICAgKiA8PSBsaW1pdDwvY29kZT4uCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBlbmRpbmcgaW5kZXgsIGV4Y2x1c2l2ZTsgPGNvZGU+c3RhcnQgPD0gbGltaXQKKyAgICAgKiA8PSBsZW5ndGgoKTwvY29kZT4uCisgICAgICogQHBhcmFtIGNoYXJzIHRoZSB0ZXh0IHRvIHJlcGxhY2UgY2hhcmFjdGVycyA8Y29kZT5zdGFydDwvY29kZT4KKyAgICAgKiB0byA8Y29kZT5saW1pdCAtIDE8L2NvZGU+CisgICAgICogQHBhcmFtIGNoYXJzU3RhcnQgdGhlIGJlZ2lubmluZyBpbmRleCBpbnRvIDxjb2RlPmNoYXJzPC9jb2RlPiwKKyAgICAgKiBpbmNsdXNpdmU7IDxjb2RlPjAgPD0gc3RhcnQgPD0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBwYXJhbSBjaGFyc0xlbiB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgb2YgPGNvZGU+Y2hhcnM8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBjaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyc1N0YXJ0LCBpbnQgY2hhcnNMZW4pIHsKKyAgICAgICAgYnVmLmRlbGV0ZShzdGFydCwgbGltaXQpOworICAgICAgICBidWYuaW5zZXJ0KHN0YXJ0LCBjaGFycywgY2hhcnNTdGFydCwgY2hhcnNMZW4pOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvcHkgYSBzdWJzdHJpbmcgb2YgdGhpcyBvYmplY3QsIHJldGFpbmluZyBhdHRyaWJ1dGUgKG91dC1vZi1iYW5kKQorICAgICAqIGluZm9ybWF0aW9uLiAgVGhpcyBtZXRob2QgaXMgdXNlZCB0byBkdXBsaWNhdGUgb3IgcmVvcmRlciBzdWJzdHJpbmdzLgorICAgICAqIFRoZSBkZXN0aW5hdGlvbiBpbmRleCBtdXN0IG5vdCBvdmVybGFwIHRoZSBzb3VyY2UgcmFuZ2UuCisgICAgICogCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgaW5kZXgsIGluY2x1c2l2ZTsgPGNvZGU+MCA8PSBzdGFydCA8PQorICAgICAqIGxpbWl0PC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGVuZGluZyBpbmRleCwgZXhjbHVzaXZlOyA8Y29kZT5zdGFydCA8PSBsaW1pdCA8PQorICAgICAqIGxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gZGVzdCB0aGUgZGVzdGluYXRpb24gaW5kZXguICBUaGUgY2hhcmFjdGVycyBmcm9tCisgICAgICogPGNvZGU+c3RhcnQuLmxpbWl0LTE8L2NvZGU+IHdpbGwgYmUgY29waWVkIHRvIDxjb2RlPmRlc3Q8L2NvZGU+LgorICAgICAqIEltcGxlbWVudGF0aW9ucyBvZiB0aGlzIG1ldGhvZCBtYXkgYXNzdW1lIHRoYXQgPGNvZGU+ZGVzdCA8PSBzdGFydCB8fAorICAgICAqIGRlc3QgPj0gbGltaXQ8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvcHkoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCBkZXN0KSB7CisgICAgICAgIGlmIChzdGFydCA9PSBsaW1pdCAmJiBzdGFydCA+PSAwICYmIHN0YXJ0IDw9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNoYXJbXSB0ZXh0ID0gbmV3IGNoYXJbbGltaXQgLSBzdGFydF07CisgICAgICAgIGdldENoYXJzKHN0YXJ0LCBsaW1pdCwgdGV4dCwgMCk7CisgICAgICAgIHJlcGxhY2UoZGVzdCwgZGVzdCwgdGV4dCwgMCwgbGltaXQgLSBzdGFydCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEltcGxlbWVudHMgUmVwbGFjZWFibGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNNZXRhRGF0YSgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZEJyZWFrSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZEJyZWFrSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42OGRhMjkyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMzYzIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCisvKioKKyAqIDxwPkEgc3ViY2xhc3Mgb2YgQnJlYWtJdGVyYXRvciB3aG9zZSBiZWhhdmlvciBpcyBzcGVjaWZpZWQgdXNpbmcgYSBsaXN0IG9mIHJ1bGVzLjwvcD4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCisKK3B1YmxpYyBjbGFzcyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGV4dGVuZHMgQnJlYWtJdGVyYXRvciB7CisKKyAgICBwcml2YXRlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZGVsZWdhdGVkVGhpcyA9IG51bGw7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gY29uc3RydWN0b3JzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkIGFjY29yZGluZyB0byB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBwcm92aWRlZC4gIElmIHRoZSBkZXNjcmlwdGlvbiBpcyBtYWxmb3JtZWQsIHRocm93cyBhbgorICAgICAqIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4gIE5vcm1hbGx5LCBpbnN0ZWFkIG9mIGNvbnN0cnVjdGluZyBhCisgICAgICogUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgZGlyZWN0b3J5LCB5b3UnbGwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMKKyAgICAgKiBvbiBCcmVha0l0ZXJhdG9yIHRvIGNyZWF0ZSBvbmUgaW5kaXJlY3RseSBmcm9tIGEgZGVzY3JpcHRpb24KKyAgICAgKiBpbiB0aGUgZnJhbWV3b3JrJ3MgcmVzb3VyY2UgZmlsZXMuICBZb3UnZCB1c2UgdGhpcyB3aGVuIHlvdSB3YW50CisgICAgICogc3BlY2lhbCBiZWhhdmlvciBub3QgcHJvdmlkZWQgYnkgdGhlIGJ1aWx0LWluIGl0ZXJhdG9ycy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgZGVsZWdhdGVkVGhpcyA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZChkZXNjcmlwdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBkZWZhdWx0IGNvbnN0cnVjdG9yIGlzIHVzZWQgd2hlbiBjcmVhdGluZyBkZXJpdmVkIGNsYXNzZXMKKyAgICAgKiBvZiBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvci4gIE5vdCBpbnRlbmRlZCBmb3IgdXNlIGJ5IG5vcm1hbAorICAgICAqIGNsaWVudHMgb2YgYnJlYWsgaXRlcmF0b3JzLgorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgICAgICovCisgICAgcHJvdGVjdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKSB7CisgICAgICAgIGRlbGVnYXRlZFRoaXMgPSB0aGlzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXQgYSBicmVhayBpdGVyYXRvciBiYXNlZCBvbiBhIHNldCBvZiBwcmUtY29tcGlsZWQgYnJlYWsgcnVsZXMuCisgICAgICogCisgICAgICogQHBhcmFtIGlzIEFuIGlucHV0IHN0cmVhbSB0aGF0IHN1cHBsaWVzIHRoZSBjb21waWxlZCBydWxlIGRhdGEuICBUaGUKKyAgICAgKiBmb3JtYXQgb2YgdGhlIHJ1bGUgZGF0YSBvbiB0aGUgc3RyZWFtIGlzIHRoYXQgb2YgYSBydWxlIGRhdGEgZmlsZQorICAgICAqIHByb2R1Y2VkIGJ5IHRoZSBJQ1U0QyB0b29sICJnZW5icmsiLgorICAgICAqIEByZXR1cm4gQSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGJhc2VkIG9uIHRoZSBzdXBwbGllZCBicmVhayBydWxlcy4KKyAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZ2V0SW5zdGFuY2VGcm9tQ29tcGlsZWRSdWxlcyhJbnB1dFN0cmVhbSBpcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfTmV3LmdldEluc3RhbmNlRnJvbUNvbXBpbGVkUnVsZXMoaXMpOyAgICAgIAorICAgIH0KKyAgICAKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBDbG9uZXMgdGhpcyBpdGVyYXRvci4KKyAgICAgKiBAcmV0dXJuIEEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3aXRoIHRoZSBzYW1lCisgICAgICogYmVoYXZpb3IgYXMgdGhpcyBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHJlc3VsdCA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBzdXBlci5jbG9uZSgpOworICAgICAgICByZXN1bHQuZGVsZWdhdGVkVGhpcyA9IHJlc3VsdDsKKyAgICAgICAgaWYgKGRlbGVnYXRlZFRoaXMgIT0gdGhpcykgeworICAgICAgICAgICAgLy8gV2Ugd2lsbCBjb21lIGhlcmUgaWYgInRoaXMiIGlzIGFuIGFjdHVhbCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHRoYXQKKyAgICAgICAgICAgIC8vICB3YXMgaW5zdGFudGlhdGVkIHZpYSBhIGNvbnN0cnVjdG9yLiAgSW4gdGhpcyBzaXR1YXRpb24sIGRlbGVnYXRlZFRoaXMKKyAgICAgICAgICAgIC8vICByZWZlcnMgdG8gYSBzZXBhcmF0ZWx5IGluc3RhbnRpYXRlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX29sZCwgdG8KKyAgICAgICAgICAgIC8vICB3aGljaCBhbGwgb3BlcmF0aW9ucyBhcmUgZGVsZWdhdGVkLiAgRm9yIHRoZSBtb3JlIGNvbW1vbiBjYXNlIG9mIGEKKyAgICAgICAgICAgIC8vICBicmVhayBpdGVyYXRvciBpbnN0YW50aWF0ZWQgZnJvbSBvbmUgb2YgdGhlIGZhY3RvcnkgbWV0aG9kcywgdGhlCisgICAgICAgICAgICAvLyAgYWN0dWFsIG9iamVjdCB0eXBlIGlzIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfTmV3LCBhbmQgZGVsZWdhdGVkVGhpcworICAgICAgICAgICAgLy8gIGZvciB0aGUgb2JqZWN0IHJlZmVycyB0byBpdHNlbGYuCisgICAgICAgICAgICByZXN1bHQuZGVsZWdhdGVkVGhpcyA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKSBkZWxlZ2F0ZWRUaGlzLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhlIHNhbWUgY2xhc3MsIGhhdmUgdGhlIHNhbWUKKyAgICAgKiBydWxlcywgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgdGhhdCkgeworICAgICAgICByZXR1cm4gZGVsZWdhdGVkVGhpcy5lcXVhbHModGhhdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZGVzY3JpcHRpb24gdXNlZCB0byBjcmVhdGUgdGhpcyBpdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBkZWxlZ2F0ZWRUaGlzLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIGhhc2hjb2RlIGZvciB0aGlzIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIEEgaGFzaCBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpCisgICAgeworICAgICAgICByZXR1cm4gZGVsZWdhdGVkVGhpcy5oYXNoQ29kZSgpOworICAgIH0KKworICAgIC8qKiAKKyAgICAgKiBUYWcgdmFsdWUgZm9yICJ3b3JkcyIgdGhhdCBkbyBub3QgZml0IGludG8gYW55IG9mIG90aGVyIGNhdGVnb3JpZXMuIAorICAgICAqIEluY2x1ZGVzIHNwYWNlcyBhbmQgbW9zdCBwdW5jdHVhdGlvbi4gCisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV09SRF9OT05FICAgICAgICAgICA9IDA7CisKKyAgICAvKioKKyAgICAgKiBVcHBlciBib3VuZCBmb3IgdGFncyBmb3IgdW5jYXRlZ29yaXplZCB3b3Jkcy4gCisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV09SRF9OT05FX0xJTUlUICAgICA9IDEwMDsKKworICAgIC8qKgorICAgICAqIFRhZyB2YWx1ZSBmb3Igd29yZHMgdGhhdCBhcHBlYXIgdG8gYmUgbnVtYmVycywgbG93ZXIgbGltaXQuIAorICAgICAqIEBkcmFmdCBJQ1UgMy4wIAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdPUkRfTlVNQkVSICAgICAgICAgPSAxMDA7CisKKyAgICAvKiogCisgICAgICogVGFnIHZhbHVlIGZvciB3b3JkcyB0aGF0IGFwcGVhciB0byBiZSBudW1iZXJzLCB1cHBlciBsaW1pdC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMCAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXT1JEX05VTUJFUl9MSU1JVCAgID0gMjAwOworCisgICAgLyoqIAorICAgICAqIFRhZyB2YWx1ZSBmb3Igd29yZHMgdGhhdCBjb250YWluIGxldHRlcnMsIGV4Y2x1ZGluZworICAgICAqIGhpcmFnYW5hLCBrYXRha2FuYSBvciBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzLCBsb3dlciBsaW1pdC4gCisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV09SRF9MRVRURVIgICAgICAgICA9IDIwMDsKKworICAgIC8qKiAKKyAgICAgKiBUYWcgdmFsdWUgZm9yIHdvcmRzIGNvbnRhaW5pbmcgbGV0dGVycywgdXBwZXIgbGltaXQgCisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV09SRF9MRVRURVJfTElNSVQgICA9IDMwMDsKKworICAgIC8qKiAKKyAgICAgKiBUYWcgdmFsdWUgZm9yIHdvcmRzIGNvbnRhaW5pbmcga2FuYSBjaGFyYWN0ZXJzLCBsb3dlciBsaW1pdAorICAgICAqIEBkcmFmdCBJQ1UgMy4wIAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdPUkRfS0FOQSAgICAgICAgICAgPSAzMDA7CisKKyAgICAvKiogCisgICAgICogVGFnIHZhbHVlIGZvciB3b3JkcyBjb250YWluaW5nIGthbmEgY2hhcmFjdGVycywgdXBwZXIgbGltaXQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMCAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXT1JEX0tBTkFfTElNSVQgICAgID0gNDAwOworCisgICAgLyoqCisgICAgICogVGFnIHZhbHVlIGZvciB3b3JkcyBjb250YWluaW5nIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMsIGxvd2VyIGxpbWl0CisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV09SRF9JREVPICAgICAgICAgICA9IDQwMDsKKworICAgIC8qKgorICAgICAqIFRhZyB2YWx1ZSBmb3Igd29yZHMgY29udGFpbmluZyBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzLCB1cHBlciBsaW1pdAorICAgICAqIEBkcmFmdCBJQ1UgMy4wIAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdPUkRfSURFT19MSU1JVCAgICAgPSA1MDA7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQnJlYWtJdGVyYXRvciBvdmVycmlkZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIChpLmUuLCB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBzdGFydGluZyBvZmZzZXQpLgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZmlyc3QoKSB7CisgICAgICAgIHJldHVybiBkZWxlZ2F0ZWRUaGlzLmZpcnN0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiAoaS5lLiwgdGhlIENoYXJhY3Rlckl0ZXJhdG9yJ3MgZW5kaW5nIG9mZnNldCkuCisgICAgICogQHJldHVybiBUaGUgdGV4dCdzIHBhc3QtdGhlLWVuZCBvZmZzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBsYXN0KCkgeworICAgICAgICByZXR1cm4gZGVsZWdhdGVkVGhpcy5sYXN0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGVpdGhlciBmb3J3YXJkIG9yIGJhY2t3YXJkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHN0ZXBzLgorICAgICAqIE5lZ2F0aXZlIHZhbHVlcyBtb3ZlIGJhY2t3YXJkLCBhbmQgcG9zaXRpdmUgdmFsdWVzIG1vdmUgZm9yd2FyZC4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHJlcGVhdGVkbHkgY2FsbGluZyBuZXh0KCkgb3IgcHJldmlvdXMoKS4KKyAgICAgKiBAcGFyYW0gbiBUaGUgbnVtYmVyIG9mIHN0ZXBzIHRvIG1vdmUuICBUaGUgc2lnbiBpbmRpY2F0ZXMgdGhlIGRpcmVjdGlvbgorICAgICAqIChuZWdhdGl2ZSBpcyBiYWNrd2FyZHMsIGFuZCBwb3NpdGl2ZSBpcyBmb3J3YXJkcykuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgYm91bmRhcnkgcG9zaXRpb24gbiBib3VuZGFyaWVzIGF3YXkgZnJvbQorICAgICAqIHRoZSBjdXJyZW50IG9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG5leHQoaW50IG4pIHsKKyAgICAgICAgcmV0dXJuIGRlbGVnYXRlZFRoaXMubmV4dChuKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgdG8gdGhlIG5leHQgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRoaXMgb25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dCgpIHsKKyAgICAgICAgcmV0dXJuIGRlbGVnYXRlZFRoaXMubmV4dCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBiYWNrd2FyZHMsIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHByZWNlZGluZyB0aGlzIG9uZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpIHsKKyAgICAgICAgcmV0dXJuIGRlbGVnYXRlZFRoaXMucHJldmlvdXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nCisgICAgICogdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiBmcm9tIHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyBmb3IgYSBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYnJlYWsgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBmb2xsb3dpbmcoaW50IG9mZnNldCkgeworICAgICAgICByZXR1cm4gZGVsZWdhdGVkVGhpcy5mb2xsb3dpbmcob2Zmc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBiZWZvcmUgdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIHRvIGJlZ2luIHNlYXJjaGluZyBmb3IgYSBicmVhayBmcm9tLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3RhcnRpbmcgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmVjZWRpbmcoaW50IG9mZnNldCkgeworICAgICAgICByZXR1cm4gZGVsZWdhdGVkVGhpcy5wcmVjZWRpbmcob2Zmc2V0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uICBBcyBhIHNpZGUKKyAgICAgKiBlZmZlY3QsIGxlYXZlcyB0aGUgaXRlcmF0b3IgcG9pbnRpbmcgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGF0CisgICAgICogb3IgYWZ0ZXIgIm9mZnNldCIuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzQm91bmRhcnkoaW50IG9mZnNldCkgeworICAgICAgICByZXR1cm4gZGVsZWdhdGVkVGhpcy5pc0JvdW5kYXJ5KG9mZnNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBjdXJyZW50KCkgeworICAgICAgICByZXR1cm4gZGVsZWdhdGVkVGhpcy5jdXJyZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGF0dXMgdGFnIGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uICBUaGUgdmFsdWVzIGFwcGVhciBpbiB0aGUgcnVsZSBzb3VyY2UKKyAgICAgKiB3aXRoaW4gYnJhY2tldHMsIHsxMjN9LCBmb3IgZXhhbXBsZS4gIEZvciBydWxlcyB0aGF0IGRvIG5vdCBzcGVjaWZ5IGEKKyAgICAgKiBzdGF0dXMsIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVkLiAgSWYgbW9yZSB0aGFuIG9uZSBydWxlIGFwcGxpZXMsCisgICAgICogdGhlIG51bWVyaWNhbGx5IGxhcmdlc3Qgb2YgdGhlIHBvc3NpYmxlIHN0YXR1cyB2YWx1ZXMgaXMgcmV0dXJuZWQuCisgICAgICogPHA+CisgICAgICogVGhlIHZhbHVlcyB1c2VkIGJ5IHRoZSBzdGFuZGFyZCBJQ1UgYnJlYWsgcnVsZXMgYXJlIGRlZmluZWQgYXMKKyAgICAgKiBjb25zdGFudHMgaW4gdGhpcyBjbGFzcywgYW5kIGFsbG93IGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4gd29yZHMKKyAgICAgKiB0aGF0IGNvbnRhaW4gYWxwaGFiZXRpYyBsZXR0ZXJzLCAid29yZHMiIHRoYXQgYXBwZWFyIHRvIGJlIG51bWJlcnMsCisgICAgICogcHVuY3R1YXRpb24gYW5kIHNwYWNlcywgd29yZHMgY29udGFpbmluZyBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzLCBhbmQKKyAgICAgKiBtb3JlLiAgQ2FsbCA8Y29kZT5nZXRSdWxlU3RhdHVzPC9jb2RlPiBhZnRlciBvYnRhaW5pbmcgYSBib3VuZGFyeQorICAgICAqIHBvc2l0aW9uIGZyb20gPGNvZGU+bmV4dCgpPGNvZGU+LCA8Y29kZT5wcmV2aW91cygpPC9jb2RlPiwgb3IgCisgICAgICogYW55IG90aGVyIGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyB0aGF0IHJldHVybnMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGF0dXMgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGludCAgZ2V0UnVsZVN0YXR1cygpIHsKKyAgICAgICAgcmV0dXJuIGRlbGVnYXRlZFRoaXMuZ2V0UnVsZVN0YXR1cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc3RhdHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCAKKyAgICAgKiByZWNlbnRseSByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4gIFRoZSB2YWx1ZXMgYXBwZWFyIGluIHRoZSBydWxlIHNvdXJjZQorICAgICAqIHdpdGhpbiBicmFja2V0cywgezEyM30sIGZvciBleGFtcGxlLiAgVGhlIGRlZmF1bHQgc3RhdHVzIHZhbHVlIGZvciBydWxlcworICAgICAqIHRoYXQgZG8gbm90IGV4cGxpY2l0bHkgcHJvdmlkZSBvbmUgaXMgemVyby4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgdmFsdWVzIHVzZWQgYnkgdGhlIHN0YW5kYXJkIElDVSBydWxlcyBhcmUgZGVmaW5lZCBhcyBjb250YW50cyBpbgorICAgICAqIHRoaXMgY2xhc3MuCisgICAgICogPHA+CisgICAgICogSWYgdGhlIHNpemUgIG9mIHRoZSBvdXRwdXQgYXJyYXkgaXMgaW5zdWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgICAgICogIHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2YWlsYWJsZSBsZW5ndGguICBObyBleGNlcHRpb24KKyAgICAgKiAgd2lsbCBiZSB0aHJvd24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gZmlsbEluQXJyYXkgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGluIHdpdGggdGhlIHN0YXR1cyB2YWx1ZXMuICAKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBudW1iZXIgb2YgcnVsZSBzdGF0dXMgdmFsdWVzIGZyb20gcnVsZXMgdGhhdCBkZXRlcm1pbmVkIAorICAgICAqICAgICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50IGJvdW5kYXJ5IHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgKiAgICAgICAgICAgICAgICAgIEluIHRoZSBldmVudCB0aGF0IHRoZSBhcnJheSBpcyB0b28gc21hbGwsIHRoZSByZXR1cm4gdmFsdWUKKyAgICAgKiAgICAgICAgICAgICAgICAgIGlzIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcyB0aGF0IHdlcmUgYXZhaWxhYmxlLAorICAgICAqICAgICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2VkIG51bWJlciB0aGF0IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQuCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJ1bGVTdGF0dXNWZWMoaW50W10gZmlsbEluQXJyYXkpIHsKKyAgICAgICAgcmV0dXJuIGRlbGVnYXRlZFRoaXMuZ2V0UnVsZVN0YXR1c1ZlYyhmaWxsSW5BcnJheSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4gIFRoaXMgdmVyc2lvbgorICAgICAqIG9mIHRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGFjdHVhbCBDaGFyYWN0ZXJJdGVyYXRvciB3ZSdyZSB1c2luZyBpbnRlcm5hbGx5LgorICAgICAqIENoYW5naW5nIHRoZSBzdGF0ZSBvZiB0aGlzIGl0ZXJhdG9yIGNhbiBoYXZlIHVuZGVmaW5lZCBjb25zZXF1ZW5jZXMuICBJZgorICAgICAqIHlvdSBuZWVkIHRvIGNoYW5nZSBpdCwgY2xvbmUgaXQgZmlyc3QuCisgICAgICogQHJldHVybiBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBDaGFyYWN0ZXJJdGVyYXRvciBnZXRUZXh0KCkgeworICAgICAgICByZXR1cm4gZGVsZWdhdGVkVGhpcy5nZXRUZXh0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgdG8gYW5hbHl6ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpIHsKKyAgICAgICAgZGVsZWdhdGVkVGhpcy5zZXRUZXh0KG5ld1RleHQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZEJyZWFrSXRlcmF0b3JfTmV3LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRCcmVha0l0ZXJhdG9yX05ldy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjNjJkODIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRCcmVha0l0ZXJhdG9yX05ldy5qYXZhCkBAIC0wLDAgKzEsMTE5MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkFzc2VydDsKKworCisvKioKKyAqIFJ1bGUgQmFzZWQgQnJlYWsgSXRlcmF0b3IgaW1wbGVtZW50YXRpb24uCisgKiBUaGlzIGlzIGEgcG9ydCBvZiB0aGUgQysrIGNsYXNzIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZnJvbSBJQ1U0Qy4KKyAqIAorICogICBBIG5vdGUgb24gZnV0dXJlIHBsYW5zOiAgT25jZSBhIG5ldyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yIGltcGxlbWVudGF0aW9uCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBjb21wbGV0ZWQsIHRoZSBhcmNoYWljIGltcGxlbWVudGF0aW9uIGNsYXNzCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCBjYW4gYmUgY29tcGxldGVseSByZW1vdmVkLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHRoaXMgY2xhc3MgY2FuIGJlIHJlbmFtZWQgdG8gYmUgc2ltcGx5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLgorICogQGludGVybmFsCisgKi8KK3B1YmxpYyBjbGFzcyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX05ldyBleHRlbmRzIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gQVNTRVJUID0gZmFsc2U7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50ICBTVEFSVF9TVEFURSA9IDE7ICAgICAvLyBUaGUgc3RhdGUgbnVtYmVyIG9mIHRoZSBzdGFydGluZyBzdGF0ZQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCAgU1RPUF9TVEFURSAgPSAwOyAgICAgLy8gVGhlIHN0YXRlLXRyYW5zaXRpb24gdmFsdWUgaW5kaWNhdGluZyAic3RvcCIKKworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX05ldygpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2hhcmFjdGVyIGl0ZXJhdG9yIHRocm91Z2ggd2hpY2ggdGhpcyBCcmVha0l0ZXJhdG9yIGFjY2Vzc2VzIHRoZSB0ZXh0CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBDaGFyYWN0ZXJJdGVyYXRvciAgIGZUZXh0OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBydWxlIGRhdGEgZm9yIHRoaXMgQnJlYWtJdGVyYXRvciBpbnN0YW5jZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgUkJCSURhdGFXcmFwcGVyICAgICBmUkRhdGE7CisKKyAgICAvKiogSW5kZXggb2YgdGhlIFJ1bGUge3RhZ30gdmFsdWVzIGZvciB0aGUgbW9zdCByZWNlbnQgbWF0Y2guIAorICAgICAqICBAaW50ZXJuYWwKKyAgICAqLworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleDsKKworICAgIC8qKgorICAgICAqIFJ1bGUgdGFnIHZhbHVlIHZhbGlkIGZsYWcuCisgICAgICogU29tZSBpdGVyYXRvciBvcGVyYXRpb25zIGRvbid0IGludHJpbnNpY2FsbHkgc2V0IHRoZSBjb3JyZWN0IHRhZyB2YWx1ZS4KKyAgICAgKiBUaGlzIGZsYWcgbGV0cyB1cyBsYXppbHkgY29tcHV0ZSB0aGUgdmFsdWUgaWYgd2UgYXJlIGV2ZXIgYXNrZWQgZm9yIGl0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiAgICAgICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQ7CisgICAgCisgICAgLyoqCisgICAgICogRGVidWdnaW5nIGZsYWcuICBUcmFjZSBvcGVyYXRpb24gb2Ygc3RhdGUgbWFjaGluZSB3aGVuIHRydWUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuICAgICAgIGZUcmFjZTsKKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBEdW1wIHRoZSBjb250ZW50cyBvZiB0aGUgc3RhdGUgdGFibGUgYW5kIGNoYXJhY3RlciBjbGFzc2VzIGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqIEZvciBkZWJ1Z2dpbmcgb25seS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkdW1wKCkgeworICAgICAgICB0aGlzLmZSRGF0YS5kdW1wKCk7ICAgCisgICAgfQorCisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLyoqCisgICAgICogQ2xvbmVzIHRoaXMgaXRlcmF0b3IuCisgICAgICogQHJldHVybiBBIG5ld2x5LWNvbnN0cnVjdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd2l0aCB0aGUgc2FtZQorICAgICAqIGJlaGF2aW9yIGFzIHRoaXMgb25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9OZXcgcmVzdWx0ID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfTmV3KSBzdXBlci5jbG9uZSgpOworICAgICAgICBpZiAoZlRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgZlRleHQgPSAoQ2hhcmFjdGVySXRlcmF0b3IpZlRleHQuY2xvbmUoKTsgICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBvZiB0aGUgc2FtZSBjbGFzcywgaGF2ZSB0aGUgc2FtZQorICAgICAqIHJ1bGVzLCBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCB0aGF0KSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX05ldyBvdGhlciA9IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX05ldykgdGhhdDsKKyAgICAgICAgICAgIGlmIChmUkRhdGEgIT0gb3RoZXIuZlJEYXRhICYmIChmUkRhdGEgPT0gbnVsbCB8fCBvdGhlci5mUkRhdGEgPT0gbnVsbCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZlJEYXRhICE9IG51bGwgJiYgb3RoZXIuZlJEYXRhICE9IG51bGwgJiYgCisgICAgICAgICAgICAgICAgICAgICghZlJEYXRhLmZSdWxlU291cmNlLmVxdWFscyhvdGhlci5mUkRhdGEuZlJ1bGVTb3VyY2UpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmVGV4dCA9PSBudWxsICYmIG90aGVyLmZUZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmVGV4dCA9PSBudWxsIHx8IG90aGVyLmZUZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZlRleHQuZXF1YWxzKG90aGVyLmZUZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlc2NyaXB0aW9uIChydWxlcykgdXNlZCB0byBjcmVhdGUgdGhpcyBpdGVyYXRvci4KKyAgICAgKiAoSW4gSUNVNEMsIHRoZSBzYW1lIGZ1bmN0aW9uIGlzIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I6OmdldFJ1bGVzKCkpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nICAgcmV0U3RyID0gbnVsbDsKKyAgICAgICAgaWYgKGZSRGF0YSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXRTdHIgPSAgZlJEYXRhLmZSdWxlU291cmNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXRTdHI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIGhhc2hjb2RlIGZvciB0aGlzIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIEEgaGFzaCBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpCisgICAgeworICAgICAgICByZXR1cm4gZlJEYXRhLmZSdWxlU291cmNlLmhhc2hDb2RlKCk7IAorICAgIH0KKworICAgIAorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBDb25zdHJ1Y3RvcnMgJiBGYWN0b3JpZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgYnJlYWsgaXRlcmF0b3IgZnJvbSBhIHByZWNvbXBpbGVkIHNldCBvZiBydWxlcy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZ2V0SW5zdGFuY2VGcm9tQ29tcGlsZWRSdWxlcyhJbnB1dFN0cmVhbSBpcykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9OZXcgIFRoaXMgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9OZXcoKTsKKyAgICAgICAgVGhpcy5mUkRhdGEgPSBSQkJJRGF0YVdyYXBwZXIuZ2V0KGlzKTsKKyAgICAgICAgVGhpcy5mVGV4dCA9IG5ldyBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoIiIpOyAgLy8gTm90ZTogc29tZSBvbGQgdGVzdHMgZmFpbCBpZiBmVGV4dCBpcyBudWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgIG9uIGEgbmV3bHkgY3JlYXRlZCBpbnN0YW5jZS4KKyAgICAgICAgcmV0dXJuIFRoaXM7ICAgCisgICAgfQorCisgICAgCisgICAgCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEJyZWFrSXRlcmF0b3Igb3ZlcnJpZGVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiAoaS5lLiwgdGhlIENoYXJhY3Rlckl0ZXJhdG9yJ3Mgc3RhcnRpbmcgb2Zmc2V0KS4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZzZXQgb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGZpcnN0KCkgeworICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleCAgPSAwOworICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQgPSB0cnVlOworICAgICAgICBpZiAoZlRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAgICAgICAgfQorICAgICAgICBmVGV4dC5maXJzdCgpOworICAgICAgICByZXR1cm4gZlRleHQuZ2V0SW5kZXgoKTsKKyAgICB9CisgICAgCisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiAoaS5lLiwgdGhlIENoYXJhY3Rlckl0ZXJhdG9yJ3MgZW5kaW5nIG9mZnNldCkuCisgICAgICogQHJldHVybiBUaGUgdGV4dCdzIHBhc3QtdGhlLWVuZCBvZmZzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBsYXN0KCkgeworICAgICAgICBpZiAoZlRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgZkxhc3RSdWxlU3RhdHVzSW5kZXggID0gMDsKKyAgICAgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhWYWxpZCA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gQnJlYWtJdGVyYXRvci5ET05FOworICAgICAgICB9CisKKyAgICAgICAgLy8gSSdtIG5vdCBzdXJlIHdoeSwgYnV0IHQubGFzdCgpIHJldHVybnMgdGhlIG9mZnNldCBvZiB0aGUgbGFzdCBjaGFyYWN0ZXIsCisgICAgICAgIC8vIHJhdGhlciB0aGFuIHRoZSBwYXN0LXRoZS1lbmQgb2Zmc2V0CisgICAgICAgIC8vCisgICAgICAgIC8vICAgKEl0J3Mgc28gYSBsb29wIGxpa2UgZm9yKHA9aXQubGFzdCgpOyBwIT1ET05FOyBwPWl0LnByZXZpb3VzKCkpIC4uLgorICAgICAgICAvLyAgICAgd2lsbCB3b3JrIGNvcnJlY3RseS4pCisKKworICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQgPSBmYWxzZTsKKyAgICAgICAgaW50IHBvcyA9IGZUZXh0LmdldEVuZEluZGV4KCk7CisgICAgICAgIGZUZXh0LnNldEluZGV4KHBvcyk7CisgICAgICAgIHJldHVybiBwb3M7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBlaXRoZXIgZm9yd2FyZCBvciBiYWNrd2FyZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBzdGVwcy4KKyAgICAgKiBOZWdhdGl2ZSB2YWx1ZXMgbW92ZSBiYWNrd2FyZCwgYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3ZlIGZvcndhcmQuICBUaGlzIGlzCisgICAgICogZXF1aXZhbGVudCB0byByZXBlYXRlZGx5IGNhbGxpbmcgbmV4dCgpIG9yIHByZXZpb3VzKCkuCisgICAgICogQHBhcmFtIG4gVGhlIG51bWJlciBvZiBzdGVwcyB0byBtb3ZlLiAgVGhlIHNpZ24gaW5kaWNhdGVzIHRoZSBkaXJlY3Rpb24KKyAgICAgKiAobmVnYXRpdmUgaXMgYmFja3dhcmRzLCBhbmQgcG9zaXRpdmUgaXMgZm9yd2FyZHMpLgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBvZmZzZXQgb2YgdGhlIGJvdW5kYXJ5IHBvc2l0aW9uIG4gYm91bmRhcmllcyBhd2F5IGZyb20KKyAgICAgKiB0aGUgY3VycmVudCBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KGludCBuKSB7CisgICAgICAgIGludCByZXN1bHQgPSBjdXJyZW50KCk7CisgICAgICAgIHdoaWxlIChuID4gMCkgeworICAgICAgICAgICAgcmVzdWx0ID0gaGFuZGxlTmV4dChmUkRhdGEuZkZUYWJsZSk7CisgICAgICAgICAgICAtLW47CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKG4gPCAwKSB7CisgICAgICAgICAgICByZXN1bHQgPSBwcmV2aW91cygpOworICAgICAgICAgICAgKytuOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhpcyBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCkgeworICAgICAgICByZXR1cm4gaGFuZGxlTmV4dChmUkRhdGEuZkZUYWJsZSk7CisgICAgfQorICAgIAorICAgIAorICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBpdGVyYXRvciBiYWNrd2FyZHMsIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHByZWNlZGluZyB0aGlzIG9uZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpIHsKKyAgICAgICAgLy8gaWYgd2UncmUgYWxyZWFkeSBzaXR0aW5nIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHJldHVybiBET05FCisgICAgICAgIGlmIChmVGV4dCA9PSBudWxsIHx8IGN1cnJlbnQoKSA9PSBmVGV4dC5nZXRCZWdpbkluZGV4KCkpIHsKKyAgICAgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ICA9IDA7CisgICAgICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmUkRhdGEuZlNSVGFibGUgIT0gbnVsbCB8fCBmUkRhdGEuZlNGVGFibGUgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGhhbmRsZVByZXZpb3VzKGZSRGF0YS5mUlRhYmxlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG9sZCBydWxlIHN5bnRheAorICAgICAgICAvLyBzZXQgdGhpbmdzIHVwLiAgaGFuZGxlUHJldmlvdXMoKSB3aWxsIGJhY2sgdXMgdXAgdG8gc29tZSB2YWxpZAorICAgICAgICAvLyBicmVhayBwb3NpdGlvbiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gKHdlIGJhY2sgb3VyIGludGVybmFsCisgICAgICAgIC8vIGl0ZXJhdG9yIHVwIG9uZSBzdGVwIHRvIHByZXZlbnQgaGFuZGxlUHJldmlvdXMoKSBmcm9tIHJldHVybmluZworICAgICAgICAvLyB0aGUgY3VycmVudCBwb3NpdGlvbiksIGJ1dCBub3QgbmVjZXNzYXJpbHkgdGhlIGxhc3Qgb25lIGJlZm9yZQorICAgICAgICAvLyB3aGVyZSB3ZSBzdGFydGVkCisKKyAgICAgICAgaW50ICAgICAgIHN0YXJ0ID0gY3VycmVudCgpOworCisgICAgICAgIENJUHJldmlvdXMzMihmVGV4dCk7CisgICAgICAgIGludCAgICAgICBsYXN0UmVzdWx0ICAgID0gaGFuZGxlUHJldmlvdXMoKTsKKyAgICAgICAgaW50ICAgICAgIHJlc3VsdCAgICAgICAgPSBsYXN0UmVzdWx0OworICAgICAgICBpbnQgICAgICAgbGFzdFRhZyAgICAgICA9IDA7CisgICAgICAgIGJvb2xlYW4gICBicmVha1RhZ1ZhbGlkID0gZmFsc2U7CisKKyAgICAgICAgLy8gaXRlcmF0ZSBmb3J3YXJkIGZyb20gdGhlIGtub3duIGJyZWFrIHBvc2l0aW9uIHVudGlsIHdlIHBhc3Mgb3VyCisgICAgICAgIC8vIHN0YXJ0aW5nIHBvaW50LiAgVGhlIGxhc3QgYnJlYWsgcG9zaXRpb24gYmVmb3JlIHRoZSBzdGFydGluZworICAgICAgICAvLyBwb2ludCBpcyBvdXIgcmV0dXJuIHZhbHVlCisKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgcmVzdWx0ICAgICAgICAgPSBoYW5kbGVOZXh0KGZSRGF0YS5mRlRhYmxlKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gQnJlYWtJdGVyYXRvci5ET05FIHx8IHJlc3VsdCA+PSBzdGFydCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGFzdFJlc3VsdCAgICAgPSByZXN1bHQ7CisgICAgICAgICAgICBsYXN0VGFnICAgICAgICA9IGZMYXN0UnVsZVN0YXR1c0luZGV4OworICAgICAgICAgICAgYnJlYWtUYWdWYWxpZCAgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gZkxhc3RCcmVha1RhZyB3YW50cyB0byBoYXZlIHRoZSB2YWx1ZSBmb3Igc2VjdGlvbiBvZiB0ZXh0IHByZWNlZGluZworICAgICAgICAvLyB0aGUgcmVzdWx0IHBvc2l0aW9uIHRoYXQgd2UgYXJlIHRvIHJldHVybiAoaW4gbGFzdFJlc3VsdC4pICBJZgorICAgICAgICAvLyB0aGUgYmFja3dhcmRzIHJ1bGVzIG92ZXJzaG90IGFuZCB0aGUgYWJvdmUgbG9vcCBoYWQgdG8gZG8gdHdvIG9yIG1vcmUKKyAgICAgICAgLy8gaGFuZGxlTmV4dCgpcyB0byBtb3ZlIHVwIHRvIHRoZSBkZXNpcmVkIHJldHVybiBwb3NpdGlvbiwgd2Ugd2lsbCBoYXZlIGEgdmFsaWQKKyAgICAgICAgLy8gdGFnIHZhbHVlLiBCdXQsIGlmIGhhbmRsZVByZXZpb3VzKCkgdG9vayB1cyB0byBleGFjdGx5IHRoZSBjb3JyZWN0IHJlc3VsdCBwb3NpdG9uLAorICAgICAgICAvLyB3ZSB3b250IGhhdmUgYSB0YWcgdmFsdWUgZm9yIHRoYXQgcG9zaXRpb24sIHdoaWNoIGlzIG9ubHkgc2V0IGJ5IGhhbmRsZU5leHQoKS4KKworICAgICAgICAvLyBzZXQgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIGJlIHRoZSBsYXN0IGJyZWFrIHBvc2l0aW9uCisgICAgICAgIC8vIGJlZm9yZSB3aGVyZSB3ZSBzdGFydGVkLCBhbmQgdGhlbiByZXR1cm4gdGhhdCB2YWx1ZQorICAgICAgICBmVGV4dC5zZXRJbmRleChsYXN0UmVzdWx0KTsKKyAgICAgICAgZkxhc3RSdWxlU3RhdHVzSW5kZXggID0gbGFzdFRhZzsgICAgICAgLy8gZm9yIHVzZSBieSBnZXRSdWxlU3RhdHVzKCkKKyAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkID0gYnJlYWtUYWdWYWxpZDsKKyAgICAgICAgcmV0dXJuIGxhc3RSZXN1bHQ7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBmb2xsb3dpbmcKKyAgICAgKiB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIGZyb20gd2hpY2ggdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBhIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBicmVhayBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGZvbGxvd2luZyhpbnQgb2Zmc2V0KSB7CisgICAgICAgIC8vIGlmIHRoZSBvZmZzZXQgcGFzc2VkIGluIGlzIGFscmVhZHkgcGFzdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LAorICAgICAgICAvLyBqdXN0IHJldHVybiBET05FOyBpZiBpdCdzIGJlZm9yZSB0aGUgYmVnaW5uaW5nLCByZXR1cm4gdGhlCisgICAgICAgIC8vIHRleHQncyBzdGFydGluZyBvZmZzZXQKKyAgICAgICAgZkxhc3RSdWxlU3RhdHVzSW5kZXggID0gMDsKKyAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkID0gdHJ1ZTsKKyAgICAgICAgaWYgKGZUZXh0ID09IG51bGwgfHwgb2Zmc2V0ID49IGZUZXh0LmdldEVuZEluZGV4KCkpIHsKKyAgICAgICAgICAgIGxhc3QoKTsKKyAgICAgICAgICAgIHJldHVybiBuZXh0KCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAob2Zmc2V0IDwgZlRleHQuZ2V0QmVnaW5JbmRleCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmlyc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG90aGVyd2lzZSwgc2V0IG91ciBpbnRlcm5hbCBpdGVyYXRpb24gcG9zaXRpb24gKHRlbXBvcmFyaWx5KQorICAgICAgICAvLyB0byB0aGUgcG9zaXRpb24gcGFzc2VkIGluLiAgSWYgdGhpcyBpcyB0aGUgX2JlZ2lubmluZ18gcG9zaXRpb24sCisgICAgICAgIC8vIHRoZW4gd2UgY2FuIGp1c3QgdXNlIG5leHQoKSB0byBnZXQgb3VyIHJldHVybiB2YWx1ZQorCisgICAgICAgIGludCByZXN1bHQgPSAwOworCisgICAgICAgIGlmIChmUkRhdGEuZlNSVGFibGUgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gU2FmZSBQb2ludCBSZXZlcnNlIHJ1bGVzIGV4aXN0LgorICAgICAgICAgICAgLy8gICBUaGlzIGFsbG93cyB1cyB0byB1c2UgdGhlIG9wdGltdW0gYWxnb3JpdGhtLgorICAgICAgICAgICAgZlRleHQuc2V0SW5kZXgob2Zmc2V0KTsKKyAgICAgICAgICAgIC8vIG1vdmUgZm9yd2FyZCBvbmUgY29kZXBvaW50IHRvIHByZXBhcmUgZm9yIG1vdmluZyBiYWNrIHRvIGEKKyAgICAgICAgICAgIC8vIHNhZmUgcG9pbnQuCisgICAgICAgICAgICAvLyB0aGlzIGhhbmRsZXMgb2Zmc2V0IGJlaW5nIGJldHdlZW4gYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAgICAgICAgQ0lOZXh0MzIoZlRleHQpOworICAgICAgICAgICAgLy8gaGFuZGxlUHJldmlvdXMgd2lsbCBtb3ZlIG1vc3Qgb2YgdGhlIHRpbWUgdG8gPCAxIGJvdW5kYXJ5IGF3YXkKKyAgICAgICAgICAgIGhhbmRsZVByZXZpb3VzKGZSRGF0YS5mU1JUYWJsZSk7CisgICAgICAgICAgICByZXN1bHQgPSBuZXh0KCk7CisgICAgICAgICAgICB3aGlsZSAocmVzdWx0IDw9IG9mZnNldCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZSRGF0YS5mU0ZUYWJsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBObyBTYWZlIHBvaW50IHJldmVyc2UgdGFibGUsIGJ1dCB0aGVyZSBpcyBhIHNhZmUgcHQgZm9yd2FyZCB0YWJsZS4KKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgZlRleHQuc2V0SW5kZXgob2Zmc2V0KTsKKyAgICAgICAgICAgIENJUHJldmlvdXMzMihmVGV4dCk7CisgICAgICAgICAgICAvLyBoYW5kbGUgbmV4dCB3aWxsIGdpdmUgcmVzdWx0ID49IG9mZnNldAorICAgICAgICAgICAgaGFuZGxlTmV4dChmUkRhdGEuZlNGVGFibGUpOworICAgICAgICAgICAgLy8gcHJldmlvdXMgd2lsbCBnaXZlIHJlc3VsdCAwIG9yIDEgYm91bmRhcnkgYXdheSBmcm9tIG9mZnNldCwKKyAgICAgICAgICAgIC8vIG1vc3Qgb2YgdGhlIHRpbWUKKyAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8KKyAgICAgICAgICAgIGludCBvbGRyZXN1bHQgPSBwcmV2aW91cygpOworICAgICAgICAgICAgd2hpbGUgKG9sZHJlc3VsdCA+IG9mZnNldCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA8PSBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9sZHJlc3VsdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2xkcmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0ID0gbmV4dCgpOworICAgICAgICAgICAgaWYgKHJlc3VsdCA8PSBvZmZzZXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAvLyBvdGhlcndpc2UsIHdlIGhhdmUgdG8gc3luYyB1cCBmaXJzdC4gIFVzZSBoYW5kbGVQcmV2aW91cygpIHRvIGJhY2sKKyAgICAgICAgLy8gdXMgdXAgdG8gYSBrbm93biBicmVhayBwb3NpdGlvbiBiZWZvcmUgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiAoaWYKKyAgICAgICAgLy8gd2UgY2FuIGRldGVybWluZSB0aGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaXMgYSBicmVhayBwb3NpdGlvbiwKKyAgICAgICAgLy8gd2UgZG9uJ3QgYmFjayB1cCBhdCBhbGwpLiAgVGhpcyBtYXkgb3IgbWF5IG5vdCBiZSB0aGUgbGFzdCBicmVhaworICAgICAgICAvLyBwb3NpdGlvbiBhdCBvciBiZWZvcmUgb3VyIHN0YXJ0aW5nIHBvc2l0aW9uLiAgQWR2YW5jZSBmb3J3YXJkCisgICAgICAgIC8vIGZyb20gaGVyZSB1bnRpbCB3ZSd2ZSBwYXNzZWQgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uLiAgVGhlIHBvc2l0aW9uCisgICAgICAgIC8vIHdlIHN0b3Agb24gd2lsbCBiZSB0aGUgZmlyc3QgYnJlYWsgcG9zaXRpb24gYWZ0ZXIgdGhlIHNwZWNpZmllZCBvbmUuCisgICAgICAgIC8vIG9sZCBydWxlIHN5bnRheAorCisgICAgICAgIGZUZXh0LnNldEluZGV4KG9mZnNldCk7CisgICAgICAgIGlmIChvZmZzZXQgPT0gZlRleHQuZ2V0QmVnaW5JbmRleCgpKSB7CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlTmV4dChmUkRhdGEuZkZUYWJsZSk7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gcHJldmlvdXMoKTsKKworICAgICAgICB3aGlsZSAocmVzdWx0ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSAmJiByZXN1bHQgPD0gb2Zmc2V0KSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXh0KCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBiZWZvcmUgdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIHRvIGJlZ2luIHNlYXJjaGluZyBmb3IgYSBicmVhayBmcm9tLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3RhcnRpbmcgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmVjZWRpbmcoaW50IG9mZnNldCkgeworICAgICAgICAvLyBpZiB0aGUgb2Zmc2V0IHBhc3NlZCBpbiBpcyBhbHJlYWR5IHBhc3QgdGhlIGVuZCBvZiB0aGUgdGV4dCwKKyAgICAgICAgLy8ganVzdCByZXR1cm4gRE9ORTsgaWYgaXQncyBiZWZvcmUgdGhlIGJlZ2lubmluZywgcmV0dXJuIHRoZQorCisgICAgICAgIC8vIHRleHQncyBzdGFydGluZyBvZmZzZXQKKyAgICAgICAgaWYgKGZUZXh0ID09IG51bGwgfHwgb2Zmc2V0ID4gZlRleHQuZ2V0RW5kSW5kZXgoKSkgeworICAgICAgICAgICAgLy8gcmV0dXJuIEJyZWFrSXRlcmF0b3I6OkRPTkU7CisgICAgICAgICAgICByZXR1cm4gbGFzdCgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG9mZnNldCA8IGZUZXh0LmdldEJlZ2luSW5kZXgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZpcnN0KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB3ZSBzdGFydCBieSB1cGRhdGluZyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlCisgICAgICAgIC8vIHBvc2l0aW9uIHNwZWNpZmllZCBieSB0aGUgY2FsbGVyLCB3ZSBjYW4ganVzdCB1c2UgcHJldmlvdXMoKQorICAgICAgICAvLyB0byBjYXJyeSBvdXQgdGhpcyBvcGVyYXRpb24KKworICAgICAgICBpbnQgIHJlc3VsdDsKKyAgICAgICAgaWYgKGZSRGF0YS5mU0ZUYWJsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAvLy8gdG9kbyBzeW53ZWUKKyAgICAgICAgICAgIC8vIG5ldyBydWxlIHN5bnRheAorICAgICAgICAgICAgZlRleHQuc2V0SW5kZXgob2Zmc2V0KTsKKyAgICAgICAgICAgIC8vIG1vdmUgYmFja3dhcmRzIG9uZSBjb2RlcG9pbnQgdG8gcHJlcGFyZSBmb3IgbW92aW5nIGZvcndhcmRzIHRvIGEKKyAgICAgICAgICAgIC8vIHNhZmUgcG9pbnQuCisgICAgICAgICAgICAvLyB0aGlzIGhhbmRsZXMgb2Zmc2V0IGJlaW5nIGJldHdlZW4gYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAgICAgICAgQ0lQcmV2aW91czMyKGZUZXh0KTsKKyAgICAgICAgICAgIGhhbmRsZU5leHQoZlJEYXRhLmZTRlRhYmxlKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IHByZXZpb3VzKCk7CisgICAgICAgICAgICB3aGlsZSAocmVzdWx0ID49IG9mZnNldCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHByZXZpb3VzKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIGlmIChmUkRhdGEuZlNSVGFibGUgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gYmFja3VwIHBsYW4gaWYgZm9yd2FyZCBzYWZlIHRhYmxlIGlzIG5vdCBhdmFpbGFibGUKKyAgICAgICAgICAgIGZUZXh0LnNldEluZGV4KG9mZnNldCk7CisgICAgICAgICAgICBDSU5leHQzMihmVGV4dCk7CisgICAgICAgICAgICAvLyBoYW5kbGUgcHJldmlvdXMgd2lsbCBnaXZlIHJlc3VsdCA8PSBvZmZzZXQKKyAgICAgICAgICAgIGhhbmRsZVByZXZpb3VzKGZSRGF0YS5mU1JUYWJsZSk7CisKKyAgICAgICAgICAgIC8vIG5leHQgd2lsbCBnaXZlIHJlc3VsdCAwIG9yIDEgYm91bmRhcnkgYXdheSBmcm9tIG9mZnNldCwKKyAgICAgICAgICAgIC8vIG1vc3Qgb2YgdGhlIHRpbWUKKyAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8KKyAgICAgICAgICAgIGludCBvbGRyZXN1bHQgPSBuZXh0KCk7CisgICAgICAgICAgICB3aGlsZSAob2xkcmVzdWx0IDwgb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBvbGRyZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9sZHJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdCA9IHByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID49IG9mZnNldCkgeworICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91cygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG9sZCBydWxlIHN5bnRheAorICAgICAgICBmVGV4dC5zZXRJbmRleChvZmZzZXQpOworICAgICAgICByZXR1cm4gcHJldmlvdXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvdyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdW5sZXNzIGJlZ2luIDw9IG9mZnNldCA8IGVuZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIHZvaWQgY2hlY2tPZmZzZXQoaW50IG9mZnNldCwgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCkgeworICAgICAgICBpZiAob2Zmc2V0IDwgdGV4dC5nZXRCZWdpbkluZGV4KCkgfHwgb2Zmc2V0ID4gdGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJvZmZzZXQgb3V0IG9mIGJvdW5kcyIpOworICAgICAgICB9CisgICAgfQorCisKKy8qKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjZmllZCBwb3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLiAgQXMgYSBzaWRlCisgKiBlZmZlY3QsIGxlYXZlcyB0aGUgaXRlcmF0b3IgcG9pbnRpbmcgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGF0CisgKiBvciBhZnRlciAib2Zmc2V0Ii4KKyAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBjaGVjay4KKyAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBib29sZWFuIGlzQm91bmRhcnkoaW50IG9mZnNldCkgeworICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgZlRleHQpOworICAgIAorICAgIC8vIHRoZSBiZWdpbm5pbmcgaW5kZXggb2YgdGhlIGl0ZXJhdG9yIGlzIGFsd2F5cyBhIGJvdW5kYXJ5IHBvc2l0aW9uIGJ5IGRlZmluaXRpb24KKyAgICBpZiAob2Zmc2V0ID09IGZUZXh0LmdldEJlZ2luSW5kZXgoKSkgeworICAgICAgICBmaXJzdCgpOyAgICAgICAvLyBGb3Igc2lkZSBlZmZlY3RzIG9uIGN1cnJlbnQgcG9zaXRpb24sIHRhZyB2YWx1ZXMuCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChvZmZzZXQgPT0gZlRleHQuZ2V0RW5kSW5kZXgoKSkgeworICAgICAgICBsYXN0KCk7ICAgICAgIC8vIEZvciBzaWRlIGVmZmVjdHMgb24gY3VycmVudCBwb3NpdGlvbiwgdGFnIHZhbHVlcy4KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLy8gb3V0LW9mLXJhbmdlIGluZGV4ZXMgYXJlIG5ldmVyIGJvdW5kYXJ5IHBvc2l0aW9ucworICAgIGlmIChvZmZzZXQgPCBmVGV4dC5nZXRCZWdpbkluZGV4KCkpIHsKKyAgICAgICAgZmlyc3QoKTsgICAgICAgLy8gRm9yIHNpZGUgZWZmZWN0cyBvbiBjdXJyZW50IHBvc2l0aW9uLCB0YWcgdmFsdWVzLgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKG9mZnNldCA+IGZUZXh0LmdldEVuZEluZGV4KCkpIHsKKyAgICAgICAgbGFzdCgpOyAgICAgICAgLy8gRm9yIHNpZGUgZWZmZWN0cyBvbiBjdXJyZW50IHBvc2l0aW9uLCB0YWcgdmFsdWVzLgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy8gb3RoZXJ3aXNlLCB3ZSBjYW4gdXNlIGZvbGxvd2luZygpIG9uIHRoZSBwb3NpdGlvbiBiZWZvcmUgdGhlIHNwZWNpZmllZAorICAgIC8vIG9uZSBhbmQgcmV0dXJuIHRydWUgaWYgdGhlIHBvc2l0aW9uIHdlIGdldCBiYWNrIGlzIHRoZSBvbmUgdGhlIHVzZXIKKyAgICAvLyBzcGVjaWZpZWQKKyAgICByZXR1cm4gZm9sbG93aW5nKG9mZnNldCAtIDEpID09IG9mZnNldDsKK30KKworLyoqCisgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAqIEByZXR1cm4gVGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBpbnQgY3VycmVudCgpIHsKKyAgICByZXR1cm4gKGZUZXh0ICE9IG51bGwpID8gZlRleHQuZ2V0SW5kZXgoKSA6IEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAgICB9CisKKworCitwcml2YXRlIHZvaWQgbWFrZVJ1bGVTdGF0dXNWYWxpZCgpIHsKKyAgICBpZiAoZkxhc3RTdGF0dXNJbmRleFZhbGlkID09IGZhbHNlKSB7CisgICAgICAgIC8vICBObyBjYWNoZWQgc3RhdHVzIGlzIGF2YWlsYWJsZS4KKyAgICAgICAgaWYgKGZUZXh0ID09IG51bGwgfHwgY3VycmVudCgpID09IGZUZXh0LmdldEJlZ2luSW5kZXgoKSkgeworICAgICAgICAgICAgLy8gIEF0IHN0YXJ0IG9mIHRleHQsIG9yIHRoZXJlIGlzIG5vIHRleHQuICBTdGF0dXMgaXMgYWx3YXlzIHplcm8uCisgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleCA9IDA7CisgICAgICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQgPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gIE5vdCBhdCBzdGFydCBvZiB0ZXh0LiAgRmluZCBzdGF0dXMgdGhlIHRlZGlvdXMgd2F5LgorICAgICAgICAgICAgaW50IHBhID0gY3VycmVudCgpOworICAgICAgICAgICAgcHJldmlvdXMoKTsKKyAgICAgICAgICAgIGludCBwYiA9IG5leHQoKTsKKyAgICAgICAgICAgIGlmIChBU1NFUlQpIEFzc2VydC5hc3NydCgicGEgPT0gcGIiLCBwYSA9PSBwYik7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKEFTU0VSVCkgeworICAgICAgICBBc3NlcnQuYXNzcnQoImZMYXN0U3RhdHVzSW5kZXhWYWxpZCA9PSB0cnVlIiwgZkxhc3RTdGF0dXNJbmRleFZhbGlkID09IHRydWUpOworICAgICAgICBBc3NlcnQuYXNzcnQoImZMYXN0UnVsZVN0YXR1c0luZGV4ID49IDAgICYmICBmTGFzdFJ1bGVTdGF0dXNJbmRleCA8IGZSRGF0YS5mU3RhdHVzVGFibGUubGVuZ3RoIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ID49IDAgICYmICBmTGFzdFJ1bGVTdGF0dXNJbmRleCA8IGZSRGF0YS5mU3RhdHVzVGFibGUubGVuZ3RoKTsKKyAgICB9Cit9CisKKworLyoqCisgKiBSZXR1cm4gdGhlIHN0YXR1cyB0YWcgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLiAgVGhlIHZhbHVlcyBhcHBlYXIgaW4gdGhlIHJ1bGUgc291cmNlCisgKiB3aXRoaW4gYnJhY2tldHMsIHsxMjN9LCBmb3IgZXhhbXBsZS4gIEZvciBydWxlcyB0aGF0IGRvIG5vdCBzcGVjaWZ5IGEKKyAqIHN0YXR1cywgYSBkZWZhdWx0IHZhbHVlIG9mIDAgaXMgcmV0dXJuZWQuICBJZiBtb3JlIHRoYW4gb25lIHJ1bGUgYXBwbGllcywKKyAqIHRoZSBudW1lcmljYWxseSBsYXJnZXN0IG9mIHRoZSBwb3NzaWJsZSBzdGF0dXMgdmFsdWVzIGlzIHJldHVybmVkLgorICogPHA+CisgKiBPZiB0aGUgc3RhbmRhcmQgdHlwZXMgb2YgSUNVIGJyZWFrIGl0ZXJhdG9ycywgb25seSB0aGUgd29yZCBicmVhaworICogaXRlcmF0b3IgcHJvdmlkZXMgc3RhdHVzIHZhbHVlcy4gIFRoZSB2YWx1ZXMgYXJlIGRlZmluZWQgaW4KKyAqIGNsYXNzIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IsIGFuZCBhbGxvdyBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuIHdvcmRzCisgKiB0aGF0IGNvbnRhaW4gYWxwaGFiZXRpYyBsZXR0ZXJzLCAid29yZHMiIHRoYXQgYXBwZWFyIHRvIGJlIG51bWJlcnMsCisgKiBwdW5jdHVhdGlvbiBhbmQgc3BhY2VzLCB3b3JkcyBjb250YWluaW5nIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMsIGFuZAorICogbW9yZS4gIENhbGwgPGNvZGU+Z2V0UnVsZVN0YXR1czwvY29kZT4gYWZ0ZXIgb2J0YWluaW5nIGEgYm91bmRhcnkKKyAqIHBvc2l0aW9uIGZyb20gPGNvZGU+bmV4dCgpPGNvZGU+LCA8Y29kZT5wcmV2aW91cygpPC9jb2RlPiwgb3IgCisgKiBhbnkgb3RoZXIgYnJlYWsgaXRlcmF0b3IgZnVuY3Rpb25zIHRoYXQgcmV0dXJucyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICogPHA+CisgKiBAcmV0dXJuIHRoZSBzdGF0dXMgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICoKKyAqIEBkcmFmdCBJQ1UgMy4wCisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworCitwdWJsaWMgaW50ICBnZXRSdWxlU3RhdHVzKCkgeworICAgIG1ha2VSdWxlU3RhdHVzVmFsaWQoKTsKKyAgICAvLyAgIFN0YXR1cyByZWNvcmRzIGhhdmUgdGhpcyBmb3JtOgorICAgIC8vICAgICAgICAgICBDb3VudCBOICAgICAgICAgPC0tICBmTGFzdFJ1bGVTdGF0dXNJbmRleCBwb2ludHMgaGVyZS4KKyAgICAvLyAgICAgICAgICAgU3RhdHVzIHZhbCAwCisgICAgLy8gICAgICAgICAgIFN0YXR1cyB2YWwgMQorICAgIC8vICAgICAgICAgICAgICAuLi4KKyAgICAvLyAgICAgICAgICAgU3RhdHVzIHZhbCBOLTEgIDwtLSAgdGhlIHZhbHVlIHdlIG5lZWQgdG8gcmV0dXJuCisgICAgLy8gICBUaGUgc3RhdHVzIHZhbHVlcyBhcmUgc29ydGVkIGluIGFzY2VuZGluZyBvcmRlci4KKyAgICAvLyAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgbGFzdCAobGFyZ2VzdCkgb2YgdGhlIGFycmF5IG9mIHN0YXR1cyB2YWx1ZXMuCisgICAgaW50ICBpZHggPSBmTGFzdFJ1bGVTdGF0dXNJbmRleCArIGZSRGF0YS5mU3RhdHVzVGFibGVbZkxhc3RSdWxlU3RhdHVzSW5kZXhdOworICAgIGludCAgdGFnVmFsID0gZlJEYXRhLmZTdGF0dXNUYWJsZVtpZHhdOworCisgICAgcmV0dXJuIHRhZ1ZhbDsKK30KKworCisKKy8qKgorICogR2V0IHRoZSBzdGF0dXMgKHRhZykgdmFsdWVzIGZyb20gdGhlIGJyZWFrIHJ1bGUocykgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IAorICogcmVjZW50bHkgcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uICBUaGUgdmFsdWVzIGFwcGVhciBpbiB0aGUgcnVsZSBzb3VyY2UKKyAqIHdpdGhpbiBicmFja2V0cywgezEyM30sIGZvciBleGFtcGxlLiAgVGhlIGRlZmF1bHQgc3RhdHVzIHZhbHVlIGZvciBydWxlcworICogdGhhdCBkbyBub3QgZXhwbGljaXRseSBwcm92aWRlIG9uZSBpcyB6ZXJvLgorICogPHA+CisgKiBUaGUgc3RhdHVzIHZhbHVlcyB1c2VkIGJ5IHRoZSBzdGFuZGFyZCBJQ1UgYnJlYWsgcnVsZXMgYXJlIGRlZmluZWQKKyAqIGFzIHB1YmxpYyBjb25zdGFudHMgaW4gY2xhc3MgUnVsZUJhc2VkQnJlYWtJdGVyYXRvci4KKyAqIDxwPgorICogSWYgdGhlIHNpemUgIG9mIHRoZSBvdXRwdXQgYXJyYXkgaXMgaW5zdWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgKiAgdGhlIG91dHB1dCB3aWxsIGJlIHRydW5jYXRlZCB0byB0aGUgYXZhaWxhYmxlIGxlbmd0aC4gIE5vIGV4Y2VwdGlvbgorICogIHdpbGwgYmUgdGhyb3duLgorICoKKyAqIEBwYXJhbSBmaWxsSW5BcnJheSBhbiBhcnJheSB0byBiZSBmaWxsZWQgaW4gd2l0aCB0aGUgc3RhdHVzIHZhbHVlcy4gIAorICogQHJldHVybiAgICAgICAgICBUaGUgbnVtYmVyIG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZCAKKyAqICAgICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50IGJvdW5kYXJ5IHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAqICAgICAgICAgICAgICAgICAgSW4gdGhlIGV2ZW50IHRoYXQgdGhlIGFycmF5IGlzIHRvbyBzbWFsbCwgdGhlIHJldHVybiB2YWx1ZQorICogICAgICAgICAgICAgICAgICBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCB3ZXJlIGF2YWlsYWJsZSwKKyAqICAgICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2VkIG51bWJlciB0aGF0IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQuCisgKiBAZHJhZnQgSUNVIDMuMAorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBpbnQgZ2V0UnVsZVN0YXR1c1ZlYyhpbnRbXSBmaWxsSW5BcnJheSkgeworICAgIG1ha2VSdWxlU3RhdHVzVmFsaWQoKTsKKyAgICBpbnQgbnVtU3RhdHVzVmFscyA9IGZSRGF0YS5mU3RhdHVzVGFibGVbZkxhc3RSdWxlU3RhdHVzSW5kZXhdOworICAgIGlmIChmaWxsSW5BcnJheSAhPSBudWxsKSB7ICAKKyAgICAgICAgaW50IG51bVRvQ29weSA9IE1hdGgubWluKG51bVN0YXR1c1ZhbHMsIGZpbGxJbkFycmF5Lmxlbmd0aCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxudW1Ub0NvcHk7IGkrKykgeworICAgICAgICAgICAgZmlsbEluQXJyYXlbaV0gPSBmUkRhdGEuZlN0YXR1c1RhYmxlW2ZMYXN0UnVsZVN0YXR1c0luZGV4ICsgaSArIDFdOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBudW1TdGF0dXNWYWxzOworIH0KKworCisvKioKKyAqIFJldHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuICBUaGlzIHZlcnNpb24KKyAqIG9mIHRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGFjdHVhbCBDaGFyYWN0ZXJJdGVyYXRvciB3ZSdyZSB1c2luZyBpbnRlcm5hbGx5LgorICogQ2hhbmdpbmcgdGhlIHN0YXRlIG9mIHRoaXMgaXRlcmF0b3IgY2FuIGhhdmUgdW5kZWZpbmVkIGNvbnNlcXVlbmNlcy4gIElmCisgKiB5b3UgbmVlZCB0byBjaGFuZ2UgaXQsIGNsb25lIGl0IGZpcnN0LgorICogQHJldHVybiBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0VGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIGZUZXh0OworICAgIH0KKworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgdG8gYW5hbHl6ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpIHsKKyAgICAgICAgZlRleHQgPSBuZXdUZXh0OworICAgICAgICB0aGlzLmZpcnN0KCk7CisgICAgfQorICAgIAorICAgIC8vIDIzIGJpdCBDaGFyIHZhbHVlIHJldHVybmVkIGZyb20gd2hlbiBhbiBpdGVyYXRvciBoYXMgcnVuIG91dCBvZiByYW5nZS4KKyAgICAvLyAgICAgUG9zaXRpdmUgdmFsdWUgc28gZmFzdCBjYXNlIChub3QgZW5kLCBub3Qgc3Vycm9nYXRlKSBjYW4gYmUgY2hlY2tlZAorICAgIC8vICAgICB3aXRoIGEgc2luZ2xlIHRlc3QuCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IENJX0RPTkUzMiA9IDB4N2ZmZmZmZmY7CisgICAgCisgICAgLyoqCisgICAgICogTW92ZSB0aGUgaXRlcmF0b3IgZm9yd2FyZCB0byB0aGUgbmV4dCBjb2RlIHBvaW50LCBhbmQgcmV0dXJuIHRoYXQgY29kZSBwb2ludCwKKyAgICAgKiAgIGxlYXZpbmcgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uZWQgYXQgY2hhciByZXR1cm5lZC4KKyAgICAgKiAgIEZvciBTdXBwbGVtZW50YXJ5IGNoYXJzLCB0aGUgaXRlcmF0b3IgaXMgbGVmdCBwb3NpdGlvbmVkIGF0IHRoZSBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgKiBAcGFyYW0gY2kgIFRoZSBjaGFyYWN0ZXIgaXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuICAgIFRoZSBuZXh0IGNvZGUgcG9pbnQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IENJTmV4dDMyKENoYXJhY3Rlckl0ZXJhdG9yIGNpKSB7CisgICAgICAgIC8vIElmIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIGF0IGEgc3Vycm9nYXRlIHBhaXIsIG1vdmUgdG8gdGhlIHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICAvLyAgIHdoaWNoIGxlYXZlcyBpdCBpbiBwb3NpdG9uIGZvciB1bmRlcmx5aW5nIGl0ZXJhdG9yJ3MgbmV4dCgpIHRvIHdvcmsuCisgICAgICAgIGludCBjPSBjaS5jdXJyZW50KCk7CisgICAgICAgIGlmIChjID49IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAmJiBjPD1VVEYxNi5MRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIGMgPSBjaS5uZXh0KCk7ICAgCisgICAgICAgICAgICBpZiAoYzxVVEYxNi5UUkFJTF9TVVJST0dBVEVfTUlOX1ZBTFVFIHx8IGM+VVRGMTYuVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgYyA9IGNpLnByZXZpb3VzKCk7ICAgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBGb3IgQk1QIGNoYXJzLCB0aGlzIG5leHQoKSBpcyB0aGUgcmVhbCBkZWFsLgorICAgICAgICBjID0gY2kubmV4dCgpOworICAgICAgICAKKyAgICAgICAgLy8gSWYgd2UgbWlnaHQgaGF2ZSBhIGxlYWQgc3Vycm9nYXRlLCB3ZSBuZWVkIHRvIHBlYWsgYWhlYWQgdG8gZ2V0IHRoZSB0cmFpbCAKKyAgICAgICAgLy8gIGV2ZW4gdGhvdWdoIHdlIGRvbid0IHdhbnQgdG8gcmVhbGx5IGJlIHBvc2l0aW9uZWQgdGhlcmUuCisgICAgICAgIGlmIChjID49IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSkgeworICAgICAgICAgICAgYyA9IENJTmV4dFRyYWlsMzIoY2ksIGMpOyAgIAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoYyA+PSBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRSAmJiBjICE9IENJX0RPTkUzMikgeworICAgICAgICAgICAgLy8gV2UgZ290IGEgc3VwcGxlbWVudGFyeSBjaGFyLiAgQmFjayB0aGUgaXRlcmF0b3IgdXAgdG8gdGhlIHBvc3Rpb24KKyAgICAgICAgICAgIC8vIG9mIHRoZSBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgICAgICAgIGNpLnByZXZpb3VzKCk7ICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGM7CisgICB9CisKKyAgICAKKyAgICAvLyBPdXQtb2YtbGluZSBwb3J0aW9uIG9mIHRoZSBpbi1saW5lIE5leHQzMiBjb2RlLgorICAgIC8vIFRoZSBjYWxsIHNpdGUgZG9lcyBhbiBpbml0aWFsIGNpLm5leHQoKSBhbmQgY2FsbHMgdGhpcyBmdW5jdGlvbgorICAgIC8vICAgIGlmIHRoZSAxNiBiaXQgdmFsdWUgaXQgZ2V0cyBpcyA+PSBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUuCisgICAgLy8gTk9URTogIHdlIGxlYXZlIHRoZSB1bmRlcmx5aW5nIGNoYXIgaXRlcmF0b3IgcG9zaXRpb25lZCBpbiB0aGUKKyAgICAvLyAgICAgICAgbWlkZGxlIG9mIGEgc3Vycm9hZ2UgcGFpci4gIGNpLm5leHQoKSB3aWxsIHdvcmsgY29ycmVjdGx5CisgICAgLy8gICAgICAgIGZyb20gdGhlcmUsIGJ1dCB0aGUgY2kuZ2V0SW5kZXgoKSB3aWxsIGJlIHdyb25nLCBhbmQgbmVlZHMKKyAgICAvLyAgICAgICAgYWRqdXN0bWVudC4KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgQ0lOZXh0VHJhaWwzMihDaGFyYWN0ZXJJdGVyYXRvciBjaSwgaW50IGxlYWQpIHsKKyAgICAgICAgaW50IHJldFZhbCA9IGxlYWQ7CisgICAgICAgIGlmIChsZWFkIDw9IFVURjE2LkxFQURfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgY2hhciAgY1RyYWlsID0gY2kubmV4dCgpOworICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY1RyYWlsKSkgeworICAgICAgICAgICAgICAgIHJldFZhbCA9ICgobGVhZCAgLSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIDw8IDEwKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNUcmFpbCAtIFVURjE2LlRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2kucHJldmlvdXMoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChsZWFkID09IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYgY2kuZ2V0SW5kZXgoKSA+PSBjaS5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgICAgICAgICAgcmV0VmFsID0gQ0lfRE9ORTMyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXRWYWw7CisgICAgfQorICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIGludCBDSVByZXZpb3VzMzIoQ2hhcmFjdGVySXRlcmF0b3IgY2kpIHsKKyAgICAgICAgaWYgKGNpLmdldEluZGV4KCkgPD0gY2kuZ2V0QmVnaW5JbmRleCgpKSB7CisgICAgICAgICAgICByZXR1cm4gQ0lfRE9ORTMyOyAgIAorICAgICAgICB9CisgICAgICAgIGNoYXIgdHJhaWwgPSBjaS5wcmV2aW91cygpOworICAgICAgICBpbnQgcmV0VmFsID0gdHJhaWw7CisgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgY2hhciBsZWFkID0gY2kucHJldmlvdXMoKTsKKyAgICAgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUobGVhZCkpIHsKKyAgICAgICAgICAgICAgICByZXRWYWwgPSAoKChpbnQpbGVhZCAgLSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIDw8IDEwKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICgoaW50KXRyYWlsIC0gVVRGMTYuVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2kubmV4dCgpOworICAgICAgICAgICAgfSAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldFZhbDsKKyAgICB9CisgICAgCisKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgQ0lDdXJyZW50MzIoQ2hhcmFjdGVySXRlcmF0b3IgY2kpIHsKKyAgICAgICAgY2hhciAgbGVhZCAgID0gY2kuY3VycmVudCgpOworICAgICAgICBpbnQgICByZXRWYWwgPSBsZWFkOworICAgICAgICBpZiAocmV0VmFsIDwgVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gcmV0VmFsOyAgIAorICAgICAgICB9CisgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUobGVhZCkpIHsKKyAgICAgICAgICAgIGludCAgdHJhaWwgPSAoaW50KWNpLm5leHQoKTsKKyAgICAgICAgICAgIGNpLnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhcil0cmFpbCkpIHsKKyAgICAgICAgICAgICAgICByZXRWYWwgPSAoKGxlYWQgIC0gVVRGMTYuTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFKSA8PCAxMCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFpbCAtIFVURjE2LlRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5TVVBQTEVNRU5UQVJZX01JTl9WQUxVRTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobGVhZCA9PSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgICAgICAgICAgICAgICAgaWYgKGNpLmdldEluZGV4KCkgPj0gY2kuZ2V0RW5kSW5kZXgoKSkgICB7CisgICAgICAgICAgICAgICAgICAgIHJldFZhbCA9IENJX0RPTkUzMjsgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgIHJldHVybiByZXRWYWw7CisgICAgfQorICAgIAorCisgICAgLyoqCisgICAgICogVGhlIFN0YXRlIE1hY2hpbmUgRW5naW5lIGZvciBtb3ZpbmcgZm9yd2FyZCBpcyBoZXJlLgorICAgICAqIEBwYXJhbSBzdGF0ZVRhYmxlCisgICAgICogQHJldHVybiB0aGUgbmV3IGl0ZXJhdG9yIHBvc2l0aW9uCisgICAgICogCisgICAgICogQSBub3RlIG9uIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyBhbmQgdGhlIHBvc2l0aW9uIG9mIHVuZGVybHlpbmcKKyAgICAgKiBKYXZhIENoYXJhY3Rlckl0ZXJhdG9yOiAgIE5vcm1hbGx5LCBhIGNoYXJhY3RlciBpdGVyYXRvciBpcyBwb3NpdGlvbmVkIGF0CisgICAgICogdGhlIGNoYXIgbW9zdCByZWNlbnRseSByZXR1cm5lZCBieSBuZXh0KCkuICBXaXRoaW4gdGhpcyBmdW5jdGlvbiwgd2hlbgorICAgICAqIGEgc3VwcGxlbWVudGFyeSBjaGFyIGlzIGJlaW5nIHByb2Nlc3NlZCwgdGhlIGNoYXIgaXRlcmF0b3IgaXMgbGVmdAorICAgICAqIHNpdHRpbmcgb24gdGhlIHRyYWlsIHN1cnJvZ2F0ZSwgaW4gdGhlIG1pZGRsZSBvZiB0aGUgY29kZSBwb2ludC4KKyAgICAgKiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIGV2ZXJ5d2hlcmUgZWxzZSwgd2hlcmUgYW4gaXRlcmF0b3IgYWx3YXlzCisgICAgICogcG9pbnRzIGF0IHRoZSBsZWFkIHN1cnJvZ2F0ZSBvZiBhIHN1cHBsZW1lbnRhcnkuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgaGFuZGxlTmV4dChzaG9ydCBzdGF0ZVRhYmxlW10pIHsKKyAgICAgICAgaWYgKGZUcmFjZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJIYW5kbGUgTmV4dCAgIHBvcyAgICAgIGNoYXIgIHN0YXRlIGNhdGVnb3J5Iik7CisgICAgICAgIH0KKworICAgICAgICAvLyBObyBtYXR0ZXIgd2hhdCwgaGFuZGxlTmV4dCBhbHdheSBjb3JyZWN0bHkgc2V0cyB0aGUgYnJlYWsgdGFnIHZhbHVlLgorICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQgPSB0cnVlOworCisgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dCwgcmV0dXJuIERPTkUuCisgICAgICAgIGlmIChmVGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleCA9IDA7CisgICAgICAgICAgICByZXR1cm4gQnJlYWtJdGVyYXRvci5ET05FOworICAgICAgICB9CisKKyAgICAgICAgaW50IGluaXRpYWxQb3NpdGlvbiA9IGZUZXh0LmdldEluZGV4KCk7CisgICAgICAgIGludCByZXN1bHQgICAgICAgICAgPSBpbml0aWFsUG9zaXRpb247CisgICAgICAgIGludCBsb29rYWhlYWRSZXN1bHQgPSAwOworCisgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHN0YXRlIG1hY2hpbmUuICBCZWdpbiBpbiBzdGF0ZSAxCisgICAgICAgIGludCAgICAgICAgICAgICAgIHN0YXRlICAgICAgICAgICA9IFNUQVJUX1NUQVRFOworICAgICAgICBzaG9ydCAgICAgICAgICAgICBjYXRlZ29yeTsKKyAgICAgICAgaW50ICAgICAgICAgICAgICAgYyAgICAgICAgICAgICAgID0gZlRleHQuY3VycmVudCgpOworICAgICAgICBpZiAoYyA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIGMgPSBDSU5leHRUcmFpbDMyKGZUZXh0LCBjKTsKKyAgICAgICAgICAgIGlmIChjID09IENJX0RPTkUzMikgeworICAgICAgICAgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ID0gMDsKKyAgICAgICAgICAgICAgICByZXR1cm4gQnJlYWtJdGVyYXRvci5ET05FOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGludCAgICAgICAgICAgICAgIHJvdyAgICAgICAgICAgICA9IGZSRGF0YS5nZXRSb3dJbmRleChzdGF0ZSk7IAorICAgICAgICBpbnQgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0dXMgPSAwOworICAgICAgICBpbnQgICAgICAgICAgICAgICBsb29rYWhlYWRUYWdJZHggPSAwOworCisgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ID0gMDsKKworICAgICAgICAvLyBDaGFyYWN0ZXIgQ2F0ZWdvcnkgZmV0Y2ggZm9yIHN0YXJ0aW5nIGNoYXJhY3Rlci4KKyAgICAgICAgLy8gICAgU2VlIGNvbW1lbnRzIG9uIGNoYXJhY3RlciBjYXRlZ29yeSBjb2RlIHdpdGhpbiBsb29wLCBiZWxvdy4KKyAgICAgICAgY2F0ZWdvcnkgPSAoc2hvcnQpZlJEYXRhLmZUcmllLmdldENvZGVQb2ludFZhbHVlKGMpOworICAgICAgICAvL2lmICgoY2F0ZWdvcnkgJiAweDQwMDApICE9IDApICB7CisgICAgICAgICAgICAgIC8vIGZEaWN0aW9uYXJ5Q2hhckNvdW50Kys7CisgICAgICAgIC8vICAgICAgY2F0ZWdvcnkgJj0gfjB4NDAwMDsKKyAgICAgICAgLy8gICAgfQorCisgICAgICAgIC8vIGxvb3AgdW50aWwgd2UgcmVhY2ggdGhlIGVuZCBvZiB0aGUgdGV4dCBvciB0cmFuc2l0aW9uIHRvIHN0YXRlIDAKKyAgICAgICAgd2hpbGUgKHN0YXRlICE9IFNUT1BfU1RBVEUpIHsKKyAgICAgICAgICAgIGlmIChjID09IENJX0RPTkUzMikgeworICAgICAgICAgICAgICAgIC8vIFJlYWNoZWQgZW5kIG9mIGlucHV0IHN0cmluZy4KKyAKKyAgICAgICAgICAgICAgICBpZiAobG9va2FoZWFkUmVzdWx0ID4gcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlIHJhbiBvZmYgdGhlIGVuZCBvZiB0aGUgc3RyaW5nIHdpdGggYSBwZW5kaW5nIGxvb2stYWhlYWQgbWF0Y2guCisgICAgICAgICAgICAgICAgICAgIC8vIFRyZWF0IHRoaXMgYXMgaWYgdGhlIGxvb2stYWhlYWQgY29uZGl0aW9uIGhhZCBiZWVuIG1ldCwgYW5kIHJldHVybgorICAgICAgICAgICAgICAgICAgICAvLyAgdGhlIG1hdGNoIGF0IHRoZSAvIHBvc2l0aW9uIGZyb20gdGhlIGxvb2stYWhlYWQgcnVsZS4KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICAgICAgICAgICAgICAgPSBsb29rYWhlYWRSZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ID0gbG9va2FoZWFkVGFnSWR4OworICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0dXMgICAgICA9IDA7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gaW5pdGlhbFBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFJhbiBvZmYgZW5kLCBubyBtYXRjaCBmb3VuZC4KKyAgICAgICAgICAgICAgICAgICAgLy8gbW92ZSBmb3J3YXJkIG9uZQorICAgICAgICAgICAgICAgICAgICBmVGV4dC5zZXRJbmRleChpbml0aWFsUG9zaXRpb24pOworICAgICAgICAgICAgICAgICAgICBDSU5leHQzMihmVGV4dCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gbG9vayB1cCB0aGUgY3VycmVudCBjaGFyYWN0ZXIncyBjaGFyYWN0ZXIgY2F0ZWdvcnksIHdoaWNoIHRlbGxzIHVzCisgICAgICAgICAgICAvLyB3aGljaCBjb2x1bW4gaW4gdGhlIHN0YXRlIHRhYmxlIHRvIGxvb2sgYXQuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgY2F0ZWdvcnkgPSAoc2hvcnQpZlJEYXRhLmZUcmllLmdldENvZGVQb2ludFZhbHVlKGMpOworCisgICAgICAgICAgICAvLyAgQ2xlYXIgdGhlIGRpY3Rpb25hcnkgZmxhZyBiaXQgaW4gdGhlIGNoYXJhY3RlcidzIGNhdGVnb3J5LgorICAgICAgICAgICAgLy8gIE5vdGU6ICBub3QgdXNpbmcgdGhlIG9sZCBzdHlsZSBkaWN0aW9uYXJ5IHN0dWZmIGluIHRoaXMgSmF2YSBlbmdpbmUuCisgICAgICAgICAgICAvLyAgICAgICAgIEJ1dCB0aGUgYml0IGNhbiBiZSBzZXQgYnkgdGhlIEMrKyBydWxlIGNvbXBpbGVyLCBhbmQKKyAgICAgICAgICAgIC8vICAgICAgICAgd2UgbmVlZCB0byBjbGVhciBpdCBvdXQgaGVyZSB0byBiZSBzYWZlLgorICAgICAgICAgICAgLy9jYXRlZ29yeSAmPSB+MHg0MDAwOyAgLy8gVE9ETzogIGNvbW1lbnRlZCBvdXQgZm9yIHBlcmYuICAKKworICAgICAgICAgICAgaWYgKGZUcmFjZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgICAgICAgICAgICIgKyAgUkJCSURhdGFXcmFwcGVyLmludFRvU3RyaW5nKGZUZXh0LmdldEluZGV4KCksIDUpKTsgCisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChSQkJJRGF0YVdyYXBwZXIuaW50VG9IZXhTdHJpbmcoYywgMTApKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oUkJCSURhdGFXcmFwcGVyLmludFRvU3RyaW5nKHN0YXRlLDcpICsgUkJCSURhdGFXcmFwcGVyLmludFRvU3RyaW5nKGNhdGVnb3J5LDYpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gbG9vayB1cCBhIHN0YXRlIHRyYW5zaXRpb24gaW4gdGhlIHN0YXRlIHRhYmxlCisgICAgICAgICAgICAvLyAgICAgc3RhdGUgPSByb3ctPmZOZXh0U3RhdGVbY2F0ZWdvcnldOworICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5ORVhUU1RBVEVTICsgY2F0ZWdvcnldOworICAgICAgICAgICAgcm93ICAgPSBmUkRhdGEuZ2V0Um93SW5kZXgoc3RhdGUpOyAgCisKKyAgICAgICAgICAgIC8vIEdldCB0aGUgbmV4dCBjaGFyYWN0ZXIuICBEb2luZyBpdCBoZXJlIHBvc2l0aW9ucyB0aGUgaXRlcmF0b3IKKyAgICAgICAgICAgIC8vICAgIHRvIHRoZSBjb3JyZWN0IHBvc2l0aW9uIGZvciByZWNvcmRpbmcgbWF0Y2hlcyBpbiB0aGUgY29kZSB0aGF0CisgICAgICAgICAgICAvLyAgICBmb2xsb3dzLgorICAgICAgICAgICAgYyA9IChpbnQpZlRleHQubmV4dCgpOyAKKyAgICAgICAgICAgIGlmIChjID49IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSkgeworICAgICAgICAgICAgICAgIGMgPSBDSU5leHRUcmFpbDMyKGZUZXh0LCBjKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLkFDQ0VQVElOR10gPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAvLyBNYXRjaCBmb3VuZCwgY29tbW9uIGNhc2UsIGNvdWxkIGhhdmUgbG9va2FoZWFkIHNvIHdlIG1vdmUgb24gdG8gY2hlY2sgaXQKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmVGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIGlmIChjID49IFVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFICYmIGMgIT0gQ0lfRE9ORTMyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBpdGVyYXRvciBoYXMgYmVlbiBsZWZ0IGluIHRoZSBtaWRkbGUgb2YgYSBzdXJyb2dhdGUgcGFpci4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0aGUgc3RhcnQgb2YgaXQuCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC0tOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vICBSZW1lbWJlciB0aGUgYnJlYWsgc3RhdHVzICh0YWcpIHZhbHVlcy4KKyAgICAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleCA9IHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLlRBR0lEWF07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5MT09LQUhFQURdICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAobG9va2FoZWFkU3RhdHVzICE9IDAKKyAgICAgICAgICAgICAgICAgICAgJiYgc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuQUNDRVBUSU5HXSA9PSBsb29rYWhlYWRTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTG9va2FoZWFkIG1hdGNoIGlzIGNvbXBsZXRlZC4gIFNldCB0aGUgcmVzdWx0IGFjY29yZGluZ2x5LCBidXQgb25seQorICAgICAgICAgICAgICAgICAgICAvLyBpZiBubyBvdGhlciBydWxlIGhhcyBtYXRjaGVkIGZ1cnRoZXIgaW4gdGhlIG1lYW4gdGltZS4KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICAgICAgICAgICAgICAgPSBsb29rYWhlYWRSZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4ID0gbG9va2FoZWFkVGFnSWR4OworICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0dXMgICAgICA9IDA7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGxvb2thaGVhZFJlc3VsdCA9IGZUZXh0LmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgaWYgKGM+PVVURjE2LlNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFICYmIGMhPUNJX0RPTkUzMikgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGUgaXRlcmF0b3IgaGFzIGJlZW4gbGVmdCBpbiB0aGUgbWlkZGxlIG9mIGEgc3Vycm9nYXRlIHBhaXIuCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIHdhbnQgdGhlIGJlZ2lubmluZyAgb2YgaXQuCisgICAgICAgICAgICAgICAgICAgIGxvb2thaGVhZFJlc3VsdC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0dXMgPSBzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5MT09LQUhFQURdOworICAgICAgICAgICAgICAgIGxvb2thaGVhZFRhZ0lkeCA9IHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLlRBR0lEWF07CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKworICAgICAgICAgICAgaWYgKHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLkFDQ0VQVElOR10gIT0gMCkgeworICAgICAgICAgICAgICAgIGxvb2thaGVhZFN0YXR1cyA9IDA7ICAgICAgICAgICAvLyBjbGVhciBvdXQgYW55IHBlbmRpbmcgbG9vay1haGVhZCBtYXRjaGVzLgorICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgICAvLyBFbmQgb2Ygc3RhdGUgbWFjaGluZSBtYWluIGxvb3AKKworICAgICAgICAvLyBUaGUgc3RhdGUgbWFjaGluZSBpcyBkb25lLiAgQ2hlY2sgd2hldGhlciBpdCBmb3VuZCBhIG1hdGNoLi4uCisKKyAgICAgICAgLy8gSWYgdGhlIGl0ZXJhdG9yIGZhaWxlZCB0byBhZHZhbmNlIGluIHRoZSBtYXRjaCBlbmdpbmUsIGZvcmNlIGl0IGFoZWFkIGJ5IG9uZS4KKyAgICAgICAgLy8gICAoVGhpcyByZWFsbHkgaW5kaWNhdGVzIGEgZGVmZWN0IGluIHRoZSBicmVhayBydWxlcy4gIFRoZXkgc2hvdWxkIGFsd2F5cyBtYXRjaAorICAgICAgICAvLyAgICBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyLikKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBpbml0aWFsUG9zaXRpb24pIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGZUZXh0LnNldEluZGV4KGluaXRpYWxQb3NpdGlvbik7CisgICAgICAgICAgICBDSU5leHQzMihmVGV4dCk7CisgICAgICAgICAgICByZXN1bHQgPSBmVGV4dC5nZXRJbmRleCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTGVhdmUgdGhlIGl0ZXJhdG9yIGF0IG91ciByZXN1bHQgcG9zaXRpb24uCisgICAgICAgIGZUZXh0LnNldEluZGV4KHJlc3VsdCk7CisgICAgICAgIGlmIChmVHJhY2UpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigicmVzdWx0ID0gIiArIHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGhhbmRsZVByZXZpb3VzCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgIGhhbmRsZVByZXZpb3VzKCkgeworICAgICAgICBpZiAoZlRleHQgPT0gbnVsbCB8fCBmUkRhdGEgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZSRGF0YS5mUlRhYmxlID09IG51bGwpIHsKKyAgICAgICAgICAgIGZUZXh0LmZpcnN0KCk7CisgICAgICAgICAgICByZXR1cm4gZlRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgfQorCisgICAgICAgIHNob3J0ICAgICAgICAgIHN0YXRlVGFibGVbXSAgICA9IGZSRGF0YS5mUlRhYmxlOworICAgICAgICBpbnQgICAgICAgICAgICBzdGF0ZSAgICAgICAgICAgPSBTVEFSVF9TVEFURTsKKyAgICAgICAgaW50ICAgICAgICAgICAgY2F0ZWdvcnk7CisgICAgICAgIGludCAgICAgICAgICAgIGxhc3RDYXRlZ29yeSAgICA9IDA7CisgICAgICAgIGludCAgICAgICAgICAgIHJlc3VsdCAgICAgICAgICA9IGZUZXh0LmdldEluZGV4KCk7CisgICAgICAgIGludCAgICAgICAgICAgIGxvb2thaGVhZFN0YXR1cyA9IDA7CisgICAgICAgIGludCAgICAgICAgICAgIGxvb2thaGVhZFJlc3VsdCA9IDA7CisgICAgICAgIGludCAgICAgICAgICAgIGxvb2thaGVhZFRhZ0lkeCA9IDA7CisgICAgICAgIGludCAgICAgICAgICAgIGMgICAgICAgICAgICAgICA9IENJQ3VycmVudDMyKGZUZXh0KTsKKyAgICAgICAgaW50ICAgICAgICAgICAgcm93OworCisgICAgICAgIHJvdyA9IGZSRGF0YS5nZXRSb3dJbmRleChzdGF0ZSk7CisgICAgICAgIGNhdGVnb3J5ID0gKHNob3J0KWZSRGF0YS5mVHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgLy9jYXRlZ29yeSAmPSB+MHg0MDAwOyAgICAvLyBDbGVhciB0aGUgZGljdGlvbmFyeSBiaXQsIGp1c3QgaW4gY2FzZS4KKworICAgICAgICBpZiAoZlRyYWNlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkhhbmRsZSBQcmV2ICAgcG9zICAgY2hhciAgc3RhdGUgY2F0ZWdvcnkgIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBsb29wIHVudGlsIHdlIHJlYWNoIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQgb3IgdHJhbnNpdGlvbiB0byBzdGF0ZSAwCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIGlmIChjID09IENJX0RPTkUzMikgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBzYXZlIHRoZSBsYXN0IGNoYXJhY3RlcidzIGNhdGVnb3J5IGFuZCBsb29rIHVwIHRoZSBjdXJyZW50CisgICAgICAgICAgICAvLyBjaGFyYWN0ZXIncyBjYXRlZ29yeQorICAgICAgICAgICAgbGFzdENhdGVnb3J5ID0gY2F0ZWdvcnk7CisgICAgICAgICAgICBjYXRlZ29yeSA9IChzaG9ydClmUkRhdGEuZlRyaWUuZ2V0Q29kZVBvaW50VmFsdWUoYyk7CisKKyAgICAgICAgICAgIC8vIENoZWNrIHRoZSBkaWN0aW9uYXJ5IGJpdCBpbiB0aGUgY2hhcmFjdGVyJ3MgY2F0ZWdvcnkuCisgICAgICAgICAgICAvLyAgICBEb24ndCBleGlzdCBpbiB0aGlzIEphdmEgZW5naW5lIGltcGxlbWVudGF0aW9uLiAgQ2xlYXIgdGhlIGJpdC4KKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBjYXRlZ29yeSAmPSB+MHg0MDAwOworCisgICAgICAgICAgICBpZiAoZlRyYWNlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICAgICAgICAgICAgICIgKyBmVGV4dC5nZXRJbmRleCgpKyAiICAgIik7CisgICAgICAgICAgICAgICAgaWYgKDB4MjA8PWMgJiYgYzwweDdmKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgIiArICBjICsgIiAgIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICIgKyBJbnRlZ2VyLnRvSGV4U3RyaW5nKGMpICsgIiAiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgIiArIHN0YXRlICsgIiAgIiArIGNhdGVnb3J5ICsgIiAiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gbG9vayB1cCBhIHN0YXRlIHRyYW5zaXRpb24gaW4gdGhlIGJhY2t3YXJkcyBzdGF0ZSB0YWJsZQorICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5ORVhUU1RBVEVTICsgY2F0ZWdvcnldOworICAgICAgICAgICAgcm93ID0gZlJEYXRhLmdldFJvd0luZGV4KHN0YXRlKTsKKworICAgICAgICAgICAgY29udGludWVPbjogeworICAgICAgICAgICAgICAgIGlmIChzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5BQ0NFUFRJTkddID09IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLkxPT0tBSEVBRF0gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBicmVhayBjb250aW51ZU9uOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuQUNDRVBUSU5HXSA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAvLyBNYXRjaCBmb3VuZCwgY29tbW9uIGNhc2UsIG5vIGxvb2thaGVhZCBpbnZvbHZlZC4KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZlRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgbG9va2FoZWFkU3RhdHVzID0gMDsgICAgIC8vIGNsZWFyIG91dCBhbnkgcGVuZGluZyBsb29rLWFoZWFkIG1hdGNoZXMuCisgICAgICAgICAgICAgICAgICAgIGJyZWFrIGNvbnRpbnVlT247CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5BQ0NFUFRJTkddID09IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuTE9PS0FIRUFEXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIExvb2thaGVhZCBtYXRjaCBwb2ludC4gIFJlbWVtYmVyIGl0LCBidXQgb25seSBpZiBubyBvdGhlciBydWxlCisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIGhhcyB1bmNvbmRpdGlvbmFsbHkgbWF0Y2hlZCB0byB0aGlzIHBvaW50LgorICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiAgaGFuZGxlIGNhc2Ugd2hlcmUgdGhlcmUncyBhIHBlbmRpbmcgbWF0Y2ggZnJvbSBhIGRpZmZlcmVudCBydWxlCisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICB3aGVyZSBsb29rYWhlYWRTdGF0dXMgIT0gMCAgJiYgbG9va2FoZWFkU3RhdHVzICE9IHJvdy0+Zkxvb2tBaGVhZC4KKyAgICAgICAgICAgICAgICAgICAgaW50ICByID0gZlRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHIgPiByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvb2thaGVhZFJlc3VsdCA9IHI7CisgICAgICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0dXMgPSBzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5MT09LQUhFQURdOworICAgICAgICAgICAgICAgICAgICAgICAgbG9va2FoZWFkVGFnSWR4ID0gc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuVEFHSURYXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhayBjb250aW51ZU9uOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuQUNDRVBUSU5HXSAhPSAwICYmCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5MT09LQUhFQURdICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTG9va2FoZWFkIG1hdGNoIGlzIGNvbXBsZXRlZC4gIFNldCB0aGUgcmVzdWx0IGFjY29yZGluZ2x5LCBidXQgb25seQorICAgICAgICAgICAgICAgICAgICAvLyAgIGlmIG5vIG90aGVyIHJ1bGUgaGFzIG1hdGNoZWQgZnVydGhlciBpbiB0aGUgbWVhbiB0aW1lLgorICAgICAgICAgICAgICAgICAgICAvLyAgVE9ETzogIENIRUNLIFRISVMgTE9HSUMuICBJdCBsb29rcyBiYWNrd2FyZHMuCisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgVGhlc2UgYXJlIF9yZXZlcnNlXyBydWxlcy4gIAorICAgICAgICAgICAgICAgICAgICBpZiAobG9va2FoZWFkUmVzdWx0ID4gcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuQUNDRVBUSU5HXSAhPSBsb29rYWhlYWRTdGF0dXMpIHsgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86ICBoYW5kbGUgdGhpcyBjYXNlIG9mIG92ZXJsYXBwaW5nIGxvb2thaGVhZCBtYXRjaGVzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICBXaXRoIGNvcnJlY3RseSB3cml0dGVuIHJ1bGVzLCB3ZSB3b24ndCBnZXQgaGVyZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oIlRyb3VibGUgaW4gaGFuZGxlUHJldmlvdXMoKSIpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCAgICAgICAgICAgICAgID0gbG9va2FoZWFkUmVzdWx0OworICAgICAgICAgICAgICAgICAgICAgICAgZkxhc3RSdWxlU3RhdHVzSW5kZXggPSBsb29rYWhlYWRUYWdJZHg7CisgICAgICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0dXMgICAgICA9IDA7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgY29udGludWVPbjsKKyAgICAgICAgICAgICAgICB9ICAgCisgICAgICAgICAgICB9ICAgLy8gZW5kIG9mIGNvbnRpbnVlT24gYmxvY2suCisKKyAgICAgICAgICAgIGlmIChzdGF0ZSA9PSBTVE9QX1NUQVRFKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRoZW4gbW92ZSBvbmUgY2hhcmFjdGVyIGJhY2t3YXJkcworICAgICAgICAgICAgYyA9IENJUHJldmlvdXMzMihmVGV4dCk7CisgICAgICAgfQorCisgICAgICAgIC8vIE5vdGU6ICB0aGUgcmVzdWx0IHBvc2l0aW9uIGlzbid0IHdoYXQgaXMgcmV0dXJuZWQgdG8gdGhlIHVzZXIgYnkgcHJldmlvdXMoKSwKKyAgICAgICAgLy8gICAgICAgIGJ1dCB3aGVyZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgcHJldmlvdXMoKSB0dXJucyBhcm91bmQgYW5kCisgICAgICAgIC8vICAgICAgICBzdGFydHMgaXRlcmF0aW5nIGZvcndhcmQgYWdhaW4uCisgICAgICAgIGlmIChjID09IENJX0RPTkUzMikgeworICAgICAgICAgICAgcmVzdWx0ID0gZlRleHQuZ2V0QmVnaW5JbmRleCgpOworICAgICAgICB9CisgICAgICAgIGZUZXh0LnNldEluZGV4KHJlc3VsdCk7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgCisgICAgcHJpdmF0ZSBpbnQgaGFuZGxlUHJldmlvdXMoc2hvcnQgc3RhdGVUYWJsZVtdKSB7CisgICAgICAgIGlmIChmVGV4dCA9PSBudWxsIHx8IHN0YXRlVGFibGUgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgLy8gYnJlYWsgdGFnIGlzIG5vIGxvbmdlciB2YWxpZCBhZnRlciBpY3Ugc3dpdGNoZWQgdG8gZXhhY3QgYmFja3dhcmRzCisgICAgICAgIC8vIHBvc2l0aW9uaW5nLgorICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQgPSBmYWxzZTsKKyAgICAgICAgaWYgKHN0YXRlVGFibGUgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZUZXh0LmdldEJlZ2luSW5kZXgoKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCAgICAgICAgICAgIHN0YXRlICAgICAgICAgICAgICA9IFNUQVJUX1NUQVRFOworICAgICAgICBpbnQgICAgICAgICAgICBjYXRlZ29yeTsKKyAgICAgICAgaW50ICAgICAgICAgICAgYyAgICAgICAgICAgICAgICAgID0gQ0lQcmV2aW91czMyKGZUZXh0KTsKKyAgICAgICAgLy8gcHJldmlvdXMgY2hhcmFjdGVyCisgICAgICAgIGludCAgICAgICAgICAgIHJlc3VsdCAgICAgICAgICAgICA9IGZUZXh0LmdldEluZGV4KCk7CisgICAgICAgIGludCAgICAgICAgICAgIGxvb2thaGVhZFN0YXR1cyAgICA9IDA7CisgICAgICAgIGludCAgICAgICAgICAgIGxvb2thaGVhZFJlc3VsdCAgICA9IDA7CisgICAgICAgIGJvb2xlYW4gICAgICAgIGxvb2tBaGVhZEhhcmRCcmVhayA9IAorICAgICAgICAgICAgKHN0YXRlVGFibGVbUkJCSURhdGFXcmFwcGVyLkZMQUdTKzFdICYgUkJCSURhdGFXcmFwcGVyLlJCQklfTE9PS0FIRUFEX0hBUkRfQlJFQUspICE9IDA7CisgIAorICAgICAgICBpbnQgICAgICAgICAgICByb3cgPSBmUkRhdGEuZ2V0Um93SW5kZXgoc3RhdGUpOworCisgICAgICAgIGNhdGVnb3J5ID0gKHNob3J0KWZSRGF0YS5mVHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKworICAgICAgICBpZiAoZlRyYWNlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkhhbmRsZSBQcmV2ICAgcG9zICAgY2hhciAgc3RhdGUgY2F0ZWdvcnkgIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGxvb3AgdW50aWwgd2UgcmVhY2ggdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCBvciB0cmFuc2l0aW9uIHRvIHN0YXRlIDAKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgaWYgKGM9PUNJX0RPTkUzMikgeworICAgICAgICAgICAgICAgIGlmIChmUkRhdGEuZkhlYWRlci5mVmVyc2lvbiA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG9sZCAoSUNVIDMuMiBhbmQgZWFybGllcikgZm9ybWF0IGRhdGEuCisgICAgICAgICAgICAgICAgICAgIC8vICBObyBleHBsaWNpdCBzdXBwb3J0IGZvciBtYXRjaGluZyB7ZW9mfS4gIERpZCBoYXZlIGhhY2tlLCB0aG91Z2guLi4KKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLkxPT0tBSEVBRF0gIT0gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb2thaGVhZFJlc3VsdCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBOZXdlciBkYXRhIGZvcm1hdCwgd2l0aCBzdXBwb3J0IGZvciB7ZW9mfS4KKyAgICAgICAgICAgICAgICAvLyAgICBlbmQgb2YgaW5wdXQgaXMgaGFyZHdpcmVkIGJ5IHJ1bGUgYnVpbGRlciBhcyBjYXRlZ29yeSAxCisgICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSAxOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBub3QgYXQge2VvZn0gIAorICAgICAgICAgICAgICAgIC8vICBsb29rIHVwIHRoZSBjdXJyZW50IGNoYXJhY3RlcidzIGNhdGVnb3J5ICh0aGUgdGFibGUgY29sdW1uKQorICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gKHNob3J0KWZSRGF0YS5mVHJpZS5nZXRDb2RlUG9pbnRWYWx1ZShjKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY2F0ZWdvcnkgJj0gfjB4NDAwMDsgICAgLy8gQ2xlYXIgdGhlIGRpY3Rpb25hcnkgYml0IGZsYWcKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgKFNob3VsZCBiZSB1bnVzZWQ7IGhvbGRvdmVyIGZyb20gb2xkIFJCQkkpCisKKyAgICAgICAgICAgIGlmIChmVHJhY2UpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAgICAgICAgICAgIiArIGZUZXh0LmdldEluZGV4KCkrICIgICAiKTsKKyAgICAgICAgICAgICAgICBpZiAoMHgyMDw9YyAmJiBjPDB4N2YpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiICAiICsgIGMgKyAiICAiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgIiArIEludGVnZXIudG9IZXhTdHJpbmcoYykgKyAiICIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAiICsgc3RhdGUgKyAiICAiICsgY2F0ZWdvcnkgKyAiICIpOworICAgICAgICAgICAgfSAKKworICAgICAgICAgICAgLy8gbG9vayB1cCBhIHN0YXRlIHRyYW5zaXRpb24gaW4gdGhlIGJhY2t3YXJkcyBzdGF0ZSB0YWJsZQorICAgICAgICAgICAgc3RhdGUgPSBzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5ORVhUU1RBVEVTICsgY2F0ZWdvcnldOworICAgICAgICAgICAgcm93ID0gZlJEYXRhLmdldFJvd0luZGV4KHN0YXRlKTsKKworICAgICAgICAgICAgaWYgKHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLkFDQ0VQVElOR10gPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAvLyBNYXRjaCBmb3VuZCwgY29tbW9uIGNhc2UsIGNvdWxkIGhhdmUgbG9va2FoZWFkIHNvIHdlIG1vdmUgb24gdG8gY2hlY2sgaXQKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmVGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuTE9PS0FIRUFEXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGxvb2thaGVhZFN0YXR1cyAhPSAwCisgICAgICAgICAgICAgICAgICAgICYmIHN0YXRlVGFibGVbcm93ICsgUkJCSURhdGFXcmFwcGVyLkFDQ0VQVElOR10gPT0gbG9va2FoZWFkU3RhdHVzKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIExvb2thaGVhZCBtYXRjaCBpcyBjb21wbGV0ZWQuICBTZXQgdGhlIHJlc3VsdCBhY2NvcmRpbmdseSwgYnV0IG9ubHkKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgbm8gb3RoZXIgcnVsZSBoYXMgbWF0Y2hlZCBmdXJ0aGVyIGluIHRoZSBtZWFuIHRpbWUuCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCAgICAgICAgICAgICAgID0gbG9va2FoZWFkUmVzdWx0OworICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0dXMgICAgICA9IDA7CisgICAgICAgICAgICAgICAgICAgIC8vLyBpIHRoaW5rIHdlIGhhdmUgdG8gYmFjayB1cCB0byByZWFkIHRoZSBsb29rYWhlYWQgY2hhcmFjdGVyIGFnYWluCisgICAgICAgICAgICAgICAgICAgIC8vLyBmVGV4dC0+c2V0SW5kZXgobG9va2FoZWFkUmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgLy8vIFRPRE86IHRoaXMgaXMgYSBzaW1wbGUgaGFjayBzaW5jZSByZXZlcnNlIHJ1bGVzIG9ubHkgaGF2ZSBzaW1wbGUKKyAgICAgICAgICAgICAgICAgICAgLy8vIGxvb2thaGVhZCBydWxlcyB0aGF0IHdlIGNhbiBkZWZpbml0ZWx5IGJyZWFrIG91dCBmcm9tLgorICAgICAgICAgICAgICAgICAgICAvLy8gd2UgbmVlZCB0byBtYWtlIHRoZSBsb29rYWhlYWQgcnVsZXMgbm90IGNoYWluIGV2ZW50dWFsbHkuCisgICAgICAgICAgICAgICAgICAgIC8vLyByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICAvLy8gdGhpcyBpcyBnb2luZyB0byBiZSB0aGUgbG9uZ2VzdCBtYXRjaCBhZ2FpbgorCisgICAgICAgICAgICAgICAgICAgIC8vLyBzeW4gd2VlIHRvZG8gaGFyZCBjb2RlZCBmb3IgbGluZSBicmVha3Mgc3R1ZmYKKyAgICAgICAgICAgICAgICAgICAgLy8vIG5lZWRzIHRvIHByb3ZpZGUgYSB0YWcgaW4gcnVsZXMgdG8gZW5zdXJlIGEgc3RvcC4KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChsb29rQWhlYWRIYXJkQnJlYWspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZUZXh0LnNldEluZGV4KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSGl0IGEgcG9zc2libGUgbG9vay1haGVhZCBtYXRjaC4gIFdlIGFyZSBhdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gcG9zaXRpb24gb2YgdGhlICcvJy4gIFJlbWVtYmVyIHRoaXMgcG9zaXRpb24uCisgICAgICAgICAgICAgICAgICAgIGxvb2thaGVhZFJlc3VsdCAgICAgID0gZlRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgbG9va2FoZWFkU3RhdHVzICAgICAgPSBzdGF0ZVRhYmxlW3JvdyArIFJCQklEYXRhV3JhcHBlci5MT09LQUhFQURdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gbm90IGxvb2thaGVhZC4uLiAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoc3RhdGVUYWJsZVtyb3cgKyBSQkJJRGF0YVdyYXBwZXIuQUNDRVBUSU5HXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBwbGFpbiAobm9uLWxvb2stYWhlYWQpIGFjY2VwdGlvbmcgc3RhdGUuCisgICAgICAgICAgICAgICAgICAgIGlmICghbG9va0FoZWFkSGFyZEJyZWFrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0dXMgPSAwOyAgICAgLy8gIENsZWFyIG91dCBhbnkgcGVuZGluZyBsb29rLWFoZWFkIG1hdGNoZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBidXQgb25seSBpZiBub3QgZG9pbmcgdGhlIGxvb2tBaGVhZEhhcmRCcmVhayBvcHRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIHdoaWNoIG5lZWRzIHRvIGZvcmNlIGEgYnJlYWsgbm8gbWF0dGVyIHdoYXQgaXMgZ29pbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIG9uIHdpdGggdGhlIHJlc3Qgb2YgdGhlIG1hdGNoLCBpLmUuIHdlIGNhbid0IGFiYW5kb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGEgcGFydGlhbGx5IGNvbXBsZXRlZCBsb29rLWFoZWFkIG1hdGNoIGJlY2F1c2Ugc29tZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgb3RoZXIgcnVsZSBtYXRjaGVkIGZ1cnRoZXIgdGhhbiB0aGUgJy8nIHBvc2l0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBpbiB0aGUgbG9vay1haGVhZCBtYXRjaC4KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHN0YXRlID09IFNUT1BfU1RBVEUpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gdGhlbiBtb3ZlIGl0ZXJhdG9yIHBvc2l0aW9uIGJhY2t3YXJkcyBvbmUgY2hhcmFjdGVyCisgICAgICAgICAgICBjID0gQ0lQcmV2aW91czMyKGZUZXh0KTsKKyAgICAgICAgfQorCisgICAgICAgIGZUZXh0LnNldEluZGV4KHJlc3VsdCk7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKK30KKworCisKKworCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDZiMjQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQuamF2YQpAQCAtMCwwICsxLDMyNTAgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKworLyoKKyAqIEAoIylSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLmphdmEgICAgMS4zIDk5LzA0LzA3CisgKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ29tcGFjdEJ5dGVBcnJheTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKK2ltcG9ydCBqYXZhLnV0aWwuU3RhY2s7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKKworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiA8cD5BIHN1YmNsYXNzIG9mIEJyZWFrSXRlcmF0b3Igd2hvc2UgYmVoYXZpb3IgaXMgc3BlY2lmaWVkIHVzaW5nIGEgbGlzdCBvZiBydWxlcy48L3A+CisgKgorICogPHA+VGhlcmUgYXJlIHR3byBraW5kcyBvZiBydWxlcywgd2hpY2ggYXJlIHNlcGFyYXRlZCBieSBzZW1pY29sb25zOiA8aT5zdWJzdGl0dXRpb25zPC9pPgorICogYW5kIDxpPnJlZ3VsYXIgZXhwcmVzc2lvbnMuPC9pPjwvcD4KKyAqCisgKiA8cD5BIHN1YnN0aXR1dGlvbiBydWxlIGRlZmluZXMgYSBuYW1lIHRoYXQgY2FuIGJlIHVzZWQgaW4gcGxhY2Ugb2YgYW4gZXhwcmVzc2lvbi4gSXQKKyAqIGNvbnNpc3RzIG9mIGEgbmFtZSwgYW4gZXF1YWxzIHNpZ24sIGFuZCBhbiBleHByZXNzaW9uLiAoVGhlcmUgY2FuIGJlIG5vIHdoaXRlc3BhY2Ugb24KKyAqIGVpdGhlciBzaWRlIG9mIHRoZSBlcXVhbHMgc2lnbi4pICBUbyBrZWVwIGl0cyBzeW50YWN0aWMgbWVhbmluZyBpbnRhY3QsIHRoZSBleHByZXNzaW9uCisgKiBtdXN0IGJlIGVuY2xvc2VkIGluIHBhcmVudGhlc2VzIG9yIHNxdWFyZSBicmFja2V0cy4gQSBzdWJzdGl0dXRpb24gaXMgdmlzaWJsZSBhZnRlciBpdHMKKyAqIGRlZmluaXRpb24sIGFuZCBpcyBmaWxsZWQgaW4gdXNpbmcgc2ltcGxlIHRleHR1YWwgc3Vic3RpdHV0aW9uICh3aGVuIGEgc3Vic3RpdHV0aW9uIGlzCisgKiB1c2VkLCBpdHMgbmFtZSBpcyBlbmNsb3NlZCBpbiBjdXJseSBicmFjZXMuICBUaGUgY3VybHkgYnJhY2VzIGFyZSBvcHRpb25hbCBpbiB0aGUKKyAqIHN1YnN0aXRpb24ncyBkZWZpbml0aW9uKS4gU3Vic3RpdHV0aW9uIGRlZmluaXRpb25zIGNhbiBjb250YWluIG90aGVyIHN1YnN0aXR1dGlvbnMsIGFzCisgKiBsb25nIGFzIHRob3NlIHN1YnN0aXR1dGlvbnMgaGF2ZSBiZWVuIGRlZmluZWQgZmlyc3QuIFN1YnN0aXR1dGlvbnMgYXJlIGdlbmVyYWxseSB1c2VkIHRvCisgKiBtYWtlIHRoZSByZWd1bGFyIGV4cHJlc3Npb25zICh3aGljaCBjYW4gZ2V0IHF1aXRlIGNvbXBsZXgpIHNob3J0ZXIgYW5kIGVhc2llciB0byByZWFkLgorICogVGhleSB0eXBpY2FsbHkgZGVmaW5lIGVpdGhlciBjaGFyYWN0ZXIgY2F0ZWdvcmllcyBvciBjb21tb25seS11c2VkIHN1YmV4cHJlc3Npb25zLjwvcD4KKyAqCisgKiA8cD5UaGVyZSBpcyBvbmUgc3BlY2lhbCBzdWJzdGl0dXRpb24uJm5ic3A7IElmIHRoZSBkZXNjcmlwdGlvbiBkZWZpbmVzIGEgc3Vic3RpdHV0aW9uCisgKiBjYWxsZWQgJnF1b3Q7X2lnbm9yZV8mcXVvdDssIHRoZSBleHByZXNzaW9uIG11c3QgYmUgYSBbXSBleHByZXNzaW9uLCBhbmQgdGhlCisgKiBleHByZXNzaW9uIGRlZmluZXMgYSBzZXQgb2YgY2hhcmFjdGVycyAodGhlICZxdW90OzxlbT5pZ25vcmUgY2hhcmFjdGVyczwvZW0+JnF1b3Q7KSB0aGF0CisgKiB3aWxsIGJlIHRyYW5zcGFyZW50IHRvIHRoZSBCcmVha0l0ZXJhdG9yLiZuYnNwOyBBIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgd2lsbCBicmVhayB0aGUKKyAqIHNhbWUgd2F5IGl0IHdvdWxkIGlmIGFueSBpZ25vcmUgY2hhcmFjdGVycyBpdCBjb250YWlucyBhcmUgdGFrZW4gb3V0LiZuYnNwOyBCcmVhaworICogcG9zaXRpb25zIG5ldmVyIG9jY3VyIGJlZm9yZSBpZ25vcmUgY2hhcmFjdGVycywgZXhjZXB0IHdoZW4gdGhlIGNoYXJhY3RlciBiZWZvcmUgdGhlCisgKiBpZ25vcmUgY2hhcmFjdGVycyBpcyBhIGxpbmUgb3IgcGFyYWdyYXBoIHRlcm1pbmF0b3IuPC9wPgorICoKKyAqIDxwPkEgcmVndWxhciBleHByZXNzaW9uIHVzZXMgYSBzeW50YXggc2ltaWxhciB0byB0aGUgbm9ybWFsIFVuaXggcmVndWxhci1leHByZXNzaW9uCisgKiBzeW50YXgsIGFuZCBkZWZpbmVzIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0byBiZSBrZXB0IHRvZ2V0aGVyLiBXaXRoIG9uZSBzaWduaWZpY2FudAorICogZXhjZXB0aW9uLCB0aGUgaXRlcmF0b3IgdXNlcyBhIGxvbmdlc3QtcG9zc2libGUtbWF0Y2ggYWxnb3JpdGhtIHdoZW4gbWF0Y2hpbmcgdGV4dCB0byByZWd1bGFyCisgKiBleHByZXNzaW9ucy4gVGhlIGl0ZXJhdG9yIGFsc28gdHJlYXRzIGRlc2NyaXB0aW9ucyBjb250YWluaW5nIG11bHRpcGxlIHJlZ3VsYXIgZXhwcmVzc2lvbnMKKyAqIGFzIGlmIHRoZXkgd2VyZSBPUmVkIHRvZ2V0aGVyIChpLmUuLCBhcyBpZiB0aGV5IHdlcmUgc2VwYXJhdGVkIGJ5IHwpLjwvcD4KKyAqCisgKiA8cD5UaGUgc3BlY2lhbCBjaGFyYWN0ZXJzIHJlY29nbml6ZWQgYnkgdGhlIHJlZ3VsYXItZXhwcmVzc2lvbiBwYXJzZXIgYXJlIGFzIGZvbGxvd3M6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICA8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+KjwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+U3BlY2lmaWVzIHRoYXQgdGhlIGV4cHJlc3Npb24gcHJlY2VkaW5nIHRoZSBhc3RlcmlzayBtYXkgb2NjdXIgYW55IG51bWJlcgorICogICAgICAgb2YgdGltZXMgKGluY2x1ZGluZyBub3QgYXQgYWxsKS48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+KzwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+U3BlY2lmaWVzIHRoYXQgdGhlIGV4cHJlc3Npb24gcHJlY2VkaW5nIHRoZSBhc3RlcmlzayBtYXkgb2NjdXIgb25lIG9yCisgKiAgICAgICBtb3JlIHRpbWVzLCBidXQgbXVzdCBvY2N1ciBhdCBsZWFzdCBvbmNlLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgd2lkdGg9IjYlIj4/PC90ZD4KKyAqICAgICAgIDx0ZCB3aWR0aD0iOTQlIj5TcGVjaWZpZXMgdGhhdCB0aGUgZXhwcmVzc2lvbiBwcmVjZWRpbmcgdGhlIGFzdGVyaXNrIG1heSBvY2N1ciBvbmNlCisgKiAgICAgICBvciBub3QgYXQgYWxsIChpLmUuLCBpdCBtYWtlcyB0aGUgcHJlY2VkaW5nIGV4cHJlc3Npb24gb3B0aW9uYWwpLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgd2lkdGg9IjYlIj4oKTwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+RW5jbG9zZXMgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzLiAgSWYgZm9sbG93ZWQgYnkgKiBvciArLCB0aGUKKyAqICAgICAgIHNlcXVlbmNlIHJlcGVhdHMuICBJZiBmb2xsb3dlZCBieSA/LCB0aGUgc2VxdWVuY2UgaXMgb3B0aW9uYWwuICBPdGhlcndpc2UsIHRoZQorICogICAgICAgcGFyZW50aGVzZXMgYXJlIGp1c3QgYSBncm91cGluZyBkZXZpY2UgYW5kIGEgd2F5IHRvIGRlbGltaXQgdGhlIGVuZHMgb2YgZXhwcmVzc2lvbnMKKyAqICAgICAgIGNvbnRhaW5pbmcgfC48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+fDwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+U2VwYXJhdGVzIHR3byBhbHRlcm5hdGl2ZSBzZXF1ZW5jZXMgb2YgY2hhcmFjdGVycy4mbmJzcDsgRWl0aGVyIG9uZQorICogICAgICAgc2VxdWVuY2Ugb3IgdGhlIG90aGVyLCBidXQgbm90IGJvdGgsIG1hdGNoZXMgdGhpcyBleHByZXNzaW9uLiZuYnNwOyBUaGUgfCBjaGFyYWN0ZXIgY2FuCisgKiAgICAgICBvbmx5IG9jY3VyIGluc2lkZSAoKS48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+LjwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+TWF0Y2hlcyBhbnkgY2hhcmFjdGVyLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgd2lkdGg9IjYlIj4qPzwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+U3BlY2lmaWVzIGEgbm9uLWdyZWVkeSBhc3Rlcmlzay4mbmJzcDsgKj8gd29ya3MgdGhlIHNhbWUgd2F5IGFzICosIGV4Y2VwdAorICogICAgICAgd2hlbiB0aGVyZSBpcyBvdmVybGFwIGJldHdlZW4gdGhlIGxhc3QgZ3JvdXAgb2YgY2hhcmFjdGVycyBpbiB0aGUgZXhwcmVzc2lvbiBwcmVjZWRpbmcgdGhlCisgKiAgICAgICAqIGFuZCB0aGUgZmlyc3QgZ3JvdXAgb2YgY2hhcmFjdGVycyBmb2xsb3dpbmcgdGhlICouJm5ic3A7IFdoZW4gdGhlcmUgaXMgdGhpcyBraW5kIG9mCisgKiAgICAgICBvdmVybGFwLCAqIHdpbGwgbWF0Y2ggdGhlIGxvbmdlc3Qgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IG1hdGNoIHRoZSBleHByZXNzaW9uIGJlZm9yZQorICogICAgICAgdGhlICosIGFuZCAqPyB3aWxsIG1hdGNoIHRoZSBzaG9ydGVzdCBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIG1hdGNoaW5nIHRoZSBleHByZXNzaW9uCisgKiAgICAgICBiZWZvcmUgdGhlICo/LiZuYnNwOyBGb3IgZXhhbXBsZSwgaWYgeW91IGhhdmUgJnF1b3Q7eHh5eHl5eXh5eHl4eHl4eXh5eSZxdW90OyBpbiB0aGUgdGV4dCwKKyAqICAgICAgICZxdW90O3hbeHldKngmcXVvdDsgd2lsbCBtYXRjaCB0aHJvdWdoIHRvIHRoZSBsYXN0IHggKGkuZS4sICZxdW90OzxzdHJvbmc+eHh5eHl5eXh5eHl4eHl4eXg8L3N0cm9uZz55eSZxdW90OywKKyAqICAgICAgIGJ1dCAmcXVvdDt4W3h5XSo/eCZxdW90OyB3aWxsIG9ubHkgbWF0Y2ggdGhlIGZpcnN0IHR3byB4ZXMgKCZxdW90OzxzdHJvbmc+eHg8L3N0cm9uZz55eHl5eXh5eHl4eHl4eXh5eSZxdW90OykuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCB3aWR0aD0iNiUiPltdPC90ZD4KKyAqICAgICAgIDx0ZCB3aWR0aD0iOTQlIj5TcGVjaWZpZXMgYSBncm91cCBvZiBhbHRlcm5hdGl2ZSBjaGFyYWN0ZXJzLiZuYnNwOyBBIFtdIGV4cHJlc3Npb24gd2lsbAorICogICAgICAgbWF0Y2ggYW55IHNpbmdsZSBjaGFyYWN0ZXIgdGhhdCBpcyBzcGVjaWZpZWQgaW4gdGhlIFtdIGV4cHJlc3Npb24uJm5ic3A7IEZvciBtb3JlIG9uIHRoZQorICogICAgICAgc3ludGF4IG9mIFtdIGV4cHJlc3Npb25zLCBzZWUgYmVsb3cuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCB3aWR0aD0iNiUiPi88L3RkPgorICogICAgICAgPHRkIHdpZHRoPSI5NCUiPlNwZWNpZmllcyB3aGVyZSB0aGUgYnJlYWsgcG9zaXRpb24gc2hvdWxkIGdvIGlmIHRleHQgbWF0Y2hlcyB0aGlzCisgKiAgICAgICBleHByZXNzaW9uLiZuYnNwOyAoZS5nLiwgJnF1b3Q7W2Etel0mIzQyOy9bOlpzOl0qWzEtMF0mcXVvdDsgd2lsbCBtYXRjaCBpZiB0aGUgaXRlcmF0b3Igc2VlcyBhIHJ1bgorICogICAgICAgb2YgbGV0dGVycywgZm9sbG93ZWQgYnkgYSBydW4gb2Ygd2hpdGVzcGFjZSwgZm9sbG93ZWQgYnkgYSBkaWdpdCwgYnV0IHRoZSBicmVhayBwb3NpdGlvbgorICogICAgICAgd2lsbCBhY3R1YWxseSBnbyBiZWZvcmUgdGhlIHdoaXRlc3BhY2UpLiZuYnNwOyBFeHByZXNzaW9ucyB0aGF0IGRvbid0IGNvbnRhaW4gLyBwdXQgdGhlCisgKiAgICAgICBicmVhayBwb3NpdGlvbiBhdCB0aGUgZW5kIG9mIHRoZSBtYXRjaGluZyB0ZXh0LjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgd2lkdGg9IjYlIj5cPC90ZD4KKyAqICAgICAgIDx0ZCB3aWR0aD0iOTQlIj5Fc2NhcGUgY2hhcmFjdGVyLiZuYnNwOyBUaGUgXCBpdHNlbGYgaXMgaWdub3JlZCwgYnV0IGNhdXNlcyB0aGUgbmV4dAorICogICAgICAgY2hhcmFjdGVyIHRvIGJlIHRyZWF0ZWQgYXMgbGl0ZXJhbCBjaGFyYWN0ZXIuJm5ic3A7IFRoaXMgaGFzIG5vIGVmZmVjdCBmb3IgbWFueQorICogICAgICAgY2hhcmFjdGVycywgYnV0IGZvciB0aGUgY2hhcmFjdGVycyBsaXN0ZWQgYWJvdmUsIHRoaXMgZGVwcml2ZXMgdGhlbSBvZiB0aGVpciBzcGVjaWFsCisgKiAgICAgICBtZWFuaW5nLiZuYnNwOyAoVGhlcmUgYXJlIG5vIHNwZWNpYWwgZXNjYXBlIHNlcXVlbmNlcyBmb3IgVW5pY29kZSBjaGFyYWN0ZXJzLCBvciB0YWJzIGFuZAorICogICAgICAgbmV3bGluZXM7IHRoZXNlIGFyZSBhbGwgaGFuZGxlZCBieSBhIGhpZ2hlci1sZXZlbCBwcm90b2NvbC4mbmJzcDsgSW4gYSBKYXZhIHN0cmluZywKKyAqICAgICAgICZxdW90O1xuJnF1b3Q7IHdpbGwgYmUgY29udmVydGVkIHRvIGEgbGl0ZXJhbCBuZXdsaW5lIGNoYXJhY3RlciBieSB0aGUgdGltZSB0aGUKKyAqICAgICAgIHJlZ3VsYXItZXhwcmVzc2lvbiBwYXJzZXIgc2VlcyBpdC4mbmJzcDsgT2YgY291cnNlLCB0aGlzIG1lYW5zIHRoYXQgXCBzZXF1ZW5jZXMgdGhhdCBhcmUKKyAqICAgICAgIHZpc2libGUgdG8gdGhlIHJlZ2V4cCBwYXJzZXIgbXVzdCBiZSB3cml0dGVuIGFzIFxcIHdoZW4gaW5zaWRlIGEgSmF2YSBzdHJpbmcuKSZuYnNwOyBBbGwKKyAqICAgICAgIGNoYXJhY3RlcnMgaW4gdGhlIEFTQ0lJIHJhbmdlIGV4Y2VwdCBmb3IgbGV0dGVycywgZGlnaXRzLCBhbmQgY29udHJvbCBjaGFyYWN0ZXJzIGFyZQorICogICAgICAgcmVzZXJ2ZWQgY2hhcmFjdGVycyB0byB0aGUgcGFyc2VyIGFuZCBtdXN0IGJlIHByZWNlZGVkIGJ5IFwgZXZlbiBpZiB0aGV5IGN1cnJlbnRseSBkb24ndAorICogICAgICAgbWVhbiBhbnl0aGluZy48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+ITwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+SWYgISBhcHBlYXJzIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSByZWd1bGFyIGV4cHJlc3Npb24sIGl0IHRlbGxzIHRoZSByZWdleHAKKyAqICAgICAgIHBhcnNlciB0aGF0IHRoaXMgZXhwcmVzc2lvbiBzcGVjaWZpZXMgdGhlIGJhY2t3YXJkcy1pdGVyYXRpb24gYmVoYXZpb3Igb2YgdGhlIGl0ZXJhdG9yLAorICogICAgICAgYW5kIG5vdCBpdHMgbm9ybWFsIGl0ZXJhdGlvbiBiZWhhdmlvci4mbmJzcDsgVGhpcyBpcyBnZW5lcmFsbHkgb25seSB1c2VkIGluIHNpdHVhdGlvbnMKKyAqICAgICAgIHdoZXJlIHRoZSBhdXRvbWF0aWNhbGx5LWdlbmVyYXRlZCBiYWNrd2FyZHMtaXRlcmF0aW9uIGJlaGF2aW9yIGRvZXNuJ3QgcHJvZHVjZQorICogICAgICAgc2F0aXNmYWN0b3J5IHJlc3VsdHMgYW5kIG11c3QgYmUgc3VwcGxlbWVudGVkIHdpdGggZXh0cmEgY2xpZW50LXNwZWNpZmllZCBydWxlcy48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+PGVtPihhbGwgb3RoZXJzKTwvZW0+PC90ZD4KKyAqICAgICAgIDx0ZCB3aWR0aD0iOTQlIj5BbGwgb3RoZXIgY2hhcmFjdGVycyBhcmUgdHJlYXRlZCBhcyBsaXRlcmFsIGNoYXJhY3RlcnMsIHdoaWNoIG11c3QgbWF0Y2gKKyAqICAgICAgIHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcihzKSBpbiB0aGUgdGV4dCBleGFjdGx5LjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgPC90YWJsZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD5XaXRoaW4gYSBbXSBleHByZXNzaW9uLCBhIG51bWJlciBvZiBvdGhlciBzcGVjaWFsIGNoYXJhY3RlcnMgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeQorICogZ3JvdXBzIG9mIGNoYXJhY3RlcnM6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICA8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+LTwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+U3BlY2lmaWVzIGEgcmFuZ2Ugb2YgbWF0Y2hpbmcgY2hhcmFjdGVycy4mbmJzcDsgRm9yIGV4YW1wbGUKKyAqICAgICAgICZxdW90O1thLXBdJnF1b3Q7IG1hdGNoZXMgYWxsIGxvd2VyY2FzZSBMYXRpbiBsZXR0ZXJzIGZyb20gYSB0byBwIChpbmNsdXNpdmUpLiZuYnNwOyBUaGUgLQorICogICAgICAgc2lnbiBzcGVjaWZpZXMgcmFuZ2VzIG9mIGNvbnRpbnVvdXMgVW5pY29kZSBudW1lcmljIHZhbHVlcywgbm90IHJhbmdlcyBvZiBjaGFyYWN0ZXJzIGluIGEKKyAqICAgICAgIGxhbmd1YWdlJ3MgYWxwaGFiZXRpY2FsIG9yZGVyOiAmcXVvdDtbYS16XSZxdW90OyBkb2Vzbid0IGluY2x1ZGUgY2FwaXRhbCBsZXR0ZXJzLCBub3IgZG9lcworICogICAgICAgaXQgaW5jbHVkZSBhY2NlbnRlZCBsZXR0ZXJzIHN1Y2ggYXMgYS11bWxhdXQuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCB3aWR0aD0iNiUiPl48L3RkPgorICogICAgICAgPHRkIHdpZHRoPSI5NCUiPkludmVydHMgdGhlIGV4cHJlc3Npb24uICBBbGwgY2hhcmFjdGVycyB0aGUgZXhwcmVzc2lvbiBpbmNsdWRlcyBhcmUKKyAqICAgICAgIGV4Y2x1ZGVkLCBhbmQgdmljZSB2ZXJzYS4gIChpLmUuLCBpdCBoYXMgdGhlIGVmZmVjdCBvZiBzYXlpbmcgImFsbCBVbmljb2RlIGNoYXJhY3RlcnMKKyAqICAgICAgIGV4Y2VwdC4uLiIpICBUaGlzIGNoYXJhY3RlciBvbmx5IGhhcyBpdHMgc3BlY2lhbCBtZWFuaW5nIHdoZW4gaXQncyB0aGUgZmlyc3QgY2hhcmFjdGVyCisgKiAgICAgICBpbiB0aGUgW10gZXhwcmVzc2lvbi4gIChHZW5lcmFsbHksIHlvdSBvbmx5IHNlZSB0aGUgXiBjaGFyYWN0ZXIgaW5zaWRlIGEgbmVzdGVkIFtdCisgKiAgICAgICBleHByZXNzaW9uIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgc3ludGF4IGJlbG93Lik8L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+PGVtPihhbGwgb3RoZXJzKTwvZW0+PC90ZD4KKyAqICAgICAgIDx0ZCB3aWR0aD0iOTQlIj5BbGwgb3RoZXIgY2hhcmFjdGVycyBhcmUgdHJlYXRlZCBhcyBsaXRlcmFsIGNoYXJhY3RlcnMuJm5ic3A7IChGb3IKKyAqICAgICAgIGV4YW1wbGUsICZxdW90O1thZWlvdV0mcXVvdDsgc3BlY2lmaWVzIGp1c3QgdGhlIGxldHRlcnMgYSwgZSwgaSwgbywgYW5kIHUuKTwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgPC90YWJsZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD5bXSBleHByZXNzaW9ucyBjYW4gbmVzdC4gIFRoZXJlIGFyZSBzb21lIG90aGVyIGNoYXJhY3RlcnMgdGhhdCBoYXZlIHNwZWNpYWwgbWVhbmluZyBvbmx5CisgKiB3aGVuIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBuZXN0ZXIgW10gZXhwcmVzc2lvbnM6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICA8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+Ojo8L3RkPgorICogICAgICAgPHRkIHdpZHRoPSI5NCUiPldpdGhpbiBhIG5lc3RlZCBbXSBleHByZXNzaW9uLCBhIHBhaXIgb2YgY29sb25zIGNvbnRhaW5pbmcgYSBvbmUtIG9yCisgKiAgICAgICB0d28tbGV0dGVyIGNvZGUgbWF0Y2hlcyBhbGwgY2hhcmFjdGVycyBpbiB0aGUgY29ycmVzcG9uZGluZyBVbmljb2RlIGNhdGVnb3J5LiZuYnNwOworICogICAgICAgVGhlIDo6IGV4cHJlc3Npb24gaGFzIHRvIGJlIHRoZSBvbmx5IHRoaW5nIGluc2lkZSB0aGUgW10gZXhwcmVzc2lvbi4gVGhlIHR3by1sZXR0ZXIgY29kZXMKKyAqICAgICAgIGFyZSB0aGUgc2FtZSBhcyB0aGUgdHdvLWxldHRlciBjb2RlcyBpbiB0aGUgVW5pY29kZSBkYXRhYmFzZSAoZm9yIGV4YW1wbGUsCisgKiAgICAgICAmcXVvdDtbWzpTYzpdWzpTbTpdXSZxdW90OyBtYXRjaGVzIGFsbCBjdXJyZW5jeSBzeW1ib2xzIGFuZCBhbGwgbWF0aCBzeW1ib2xzKS4mbmJzcDsKKyAqICAgICAgIFNwZWNpZnlpbmcgYSBvbmUtbGV0dGVyIGNvZGUgaXMgdGhlIHNhbWUgYXMgc3BlY2lmeWluZyBhbGwgdHdvLWxldHRlciBjb2RlcyB0aGF0IGJlZ2luCisgKiAgICAgICB3aXRoIHRoYXQgbGV0dGVyIChmb3IgZXhhbXBsZSwgJnF1b3Q7W1s6TDpdXSZxdW90OyBtYXRjaGVzIGFsbCBsZXR0ZXJzLCBhbmQgaXMgZXF1aXZhbGVudAorICogICAgICAgdG8gJnF1b3Q7W1s6THU6XVs6TGw6XVs6TG86XVs6TG06XVs6THQ6XV0mcXVvdDspLiZuYnNwOyBBbnl0aGluZyBvdGhlciB0aGFuIGEgdmFsaWQKKyAqICAgICAgIHR3by1sZXR0ZXIgVW5pY29kZSBjYXRlZ29yeSBjb2RlIG9yIGEgc2luZ2xlIGxldHRlciB0aGF0IGJlZ2lucyBhIHZhbGlkZSBVbmljb2RlIGNhdGVnb3J5CisgKiAgICAgICBjb2RlIGlzIGlsbGVnYWwgd2l0aGluIHRoZSBjb2xvbnMuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCB3aWR0aD0iNiUiPnw8L3RkPgorICogICAgICAgPHRkIHdpZHRoPSI5NCUiPlR3byBuZXN0ZWQgW10gZXhwcmVzc2lvbnMganV4dGFwb3NlZCBvciBzZXBhcmF0ZWQgb25seSBieSBhIHwgY2hhcmFjdGVyCisgKiAgICAgICBhcmUgbWVyZ2VkIHRvZ2V0aGVyIGludG8gYSBzaW5nbGUgW10gZXhwcmVzc2lvbiBtYXRjaGluZyBhbGwgdGhlIGNoYXJhY3RlcnMgaW4gZWl0aGVyCisgKiAgICAgICBvZiB0aGUgb3JpZ2luYWwgW10gZXhwcmVzc2lvbnMuICAoZS5nLiwgIltbYWJdW2JjXV0iIGlzIGVxdWl2YWxlbnQgdG8gIlthYmNdIiwgYW5kIHNvCisgKiAgICAgICBpcyAiW1thYl18W2JjXV0iLiA8Yj5OT1RFOjwvYj4gICJbYWJdW2JjXSIgaXMgTk9UIHRoZSBzYW1lIHRoaW5nIGFzICJbW2FiXVtiY11dIi4KKyAqICAgICAgIFRoZSBmaXJzdCBleHByZXNzaW9uIHdpbGwgbWF0Y2ggdHdvIGNoYXJhY3RlcnM6IGFuIGEgb3IgYiBmb2xsb3dlZCBieSBlaXRoZXIgYW5vdGhlcgorICogICAgICAgYiBvciBhIGMuICBUaGUgc2Vjb25kIGV4cHJlc3Npb24gd2lsbCBtYXRjaCBhIHNpbmdsZSBjaGFyYWN0ZXIsIHdoaWNoIG1heSBiZSBhLCBiLCBvciBjLgorICogICAgICAgVGhlIG5lc3RpbmcgaXMgPGVtPnJlcXVpcmVkPC9lbT4gZm9yIHRoZSBleHByZXNzaW9ucyB0byBtZXJnZSB0b2dldGhlci48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIHdpZHRoPSI2JSI+JjwvdGQ+CisgKiAgICAgICA8dGQgd2lkdGg9Ijk0JSI+VHdvIG5lc3RlZCBbXSBleHByZXNzaW9ucyB3aXRoIG9ubHkgJiBiZXR3ZWVuIHRoZW0gd2lsbCBtYXRjaCBhbnkKKyAqICAgICAgIGNoYXJhY3RlciB0aGF0IGFwcGVhcnMgaW4gYm90aCBuZXN0ZWQgW10gZXhwcmVzc2lvbnMgKHRoaXMgaXMgYSBzZXQgaW50ZXJzZWN0aW9uKS4KKyAqICAgICAgIChlLmcuLCAiW1thYl0mW2JjXV0iIHdpbGwgb25seSBtYXRjaCB0aGUgbGV0dGVyIGIuKTwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgd2lkdGg9IjYlIj4tPC90ZD4KKyAqICAgICAgIDx0ZCB3aWR0aD0iOTQlIj5Ud28gbmVzdGVkIFtdIGV4cHJlc3Npb25zIHdpdGggLSBiZXR3ZWVuIHRoZW0gd2lsbCBtYXRjaCBhbnkKKyAqICAgICAgIGNoYXJhY3RlciB0aGF0IGFwcGVhcnMgaW4gdGhlIGZpcnN0IG5lc3RlZCBbXSBleHByZXNzaW9uIDxlbT5idXQgbm90PC9lbT4gdGhlCisgKiAgICAgICBzZWNvbmQgb25lICh0aGlzIGlzIGFuIGFzeW1tZXRyaWNhbCBzZXQgZGlmZmVyZW5jZSkuICAoZS5nLiwgIltbOlNjOl0tWyRdXSIKKyAqICAgICAgIG1hdGNoZXMgYW55IGN1cnJlbmN5IHN5bWJvbCBleGNlcHQgdGhlIGRvbGxhciBzaWduLiAgIltbYWJdLVtiY11dIHdpbGwgbWF0Y2gKKyAqICAgICAgIG9ubHkgdGhlIGxldHRlciBhLiAgVGhpcyBoYXMgZXhhY3RseSB0aGUgc2FtZSBlZmZlY3QgYXMgIltbYWJdJlteYmNdXSIuKTwvdGQ+CisgKiAgICAgPC90cj4KKyAqCisgKiA8cD5Gb3IgYSBtb3JlIGNvbXBsZXRlIGV4cGxhbmF0aW9uLCBzZWUgPGEKKyAqIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2RvY3MvcGFwZXJzL3RleHRfYm91bmRhcnlfYW5hbHlzaXNfaW5famF2YS8iPmh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L2RvY3MvcGFwZXJzL3RleHRfYm91bmRhcnlfYW5hbHlzaXNfaW5famF2YS88L2E+LgorICogJm5ic3A7IEZvciBleGFtcGxlcywgc2VlIHRoZSByZXNvdXJjZSBkYXRhICh3aGljaCBpcyBhbm5vdGF0ZWQpLjwvcD4KKyAqCisgKiBAYXV0aG9yIFJpY2hhcmQgR2lsbGFtCisgKiBAaW50ZXJuYWwgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgZXh0ZW5kcyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHsKKworICAgIC8qKgorICAgICAqIEEgdG9rZW4gdXNlZCBhcyBhIGNoYXJhY3Rlci1jYXRlZ29yeSB2YWx1ZSB0byBpZGVudGlmeSBpZ25vcmUgY2hhcmFjdGVycworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgYnl0ZSBJR05PUkUgPSAtMTsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWwgdmFyaWFibGUgdXNlZCB0byBkZWZpbmUgaWdub3JlIGNoYXJhY3RlcnMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUdOT1JFX1ZBUiA9ICJfaWdub3JlXyI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RhdGUgbnVtYmVyIG9mIHRoZSBzdGFydGluZyBzdGF0ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIHNob3J0IFNUQVJUX1NUQVRFID0gMTsKKworICAgIC8qKgorICAgICAqIFRoZSBzdGF0ZS10cmFuc2l0aW9uIHZhbHVlIGluZGljYXRpbmcgInN0b3AiCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgc2hvcnQgU1RPUF9TVEFURSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdGV4dHVhbCBkZXNjcmlwdGlvbiB0aGlzIGl0ZXJhdG9yIHdhcyBjcmVhdGVkIGZyb20KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBkZXNjcmlwdGlvbjsKKworICAgIC8qKgorICAgICAqIEEgdGFibGUgdGhhdCBpbmRleGVzIGZyb20gY2hhcmFjdGVyIHZhbHVlcyB0byBjaGFyYWN0ZXIgY2F0ZWdvcnkgbnVtYmVycworICAgICAqLworICAgIHByaXZhdGUgQ29tcGFjdEJ5dGVBcnJheSBjaGFyQ2F0ZWdvcnlUYWJsZSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdGFibGUgb2Ygc3RhdGUgdHJhbnNpdGlvbnMgdXNlZCBmb3IgZm9yd2FyZCBpdGVyYXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIHNob3J0W10gc3RhdGVUYWJsZSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdGFibGUgb2Ygc3RhdGUgdHJhbnNpdGlvbnMgdXNlZCB0byBzeW5jIHVwIHRoZSBpdGVyYXRvciB3aXRoIHRoZQorICAgICAqIHRleHQgaW4gYmFja3dhcmRzIGFuZCByYW5kb20tYWNjZXNzIGl0ZXJhdGlvbgorICAgICAqLworICAgIHByaXZhdGUgc2hvcnRbXSBiYWNrd2FyZHNTdGF0ZVRhYmxlID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEEgbGlzdCBvZiBmbGFncyBpbmRpY2F0aW5nIHdoaWNoIHN0YXRlcyBpbiB0aGUgc3RhdGUgdGFibGUgYXJlIGFjY2VwdGluZworICAgICAqICgiZW5kIikgc3RhdGVzCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuW10gZW5kU3RhdGVzID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEEgbGlzdCBvZiBmbGFncyBpbmRpY2F0aW5nIHdoaWNoIHN0YXRlcyBpbiB0aGUgc3RhdGUgdGFibGUgYXJlCisgICAgICogbG9va2FoZWFkIHN0YXRlcyAoc3RhdGVzIHdoaWNoIHR1cm4gbG9va2FoZWFkIG9uIGFuZCBvZmYpCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuW10gbG9va2FoZWFkU3RhdGVzID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVyIGNhdGVnb3JpZXMgKGFuZCwgdGh1cywgdGhlIG51bWJlciBvZiBjb2x1bW5zIGluCisgICAgICogdGhlIHN0YXRlIHRhYmxlcykKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBudW1DYXRlZ29yaWVzOworCisgICAgLyoqCisgICAgICogVGhlIGNoYXJhY3RlciBpdGVyYXRvciB0aHJvdWdoIHdoaWNoIHRoaXMgQnJlYWtJdGVyYXRvciBhY2Nlc3NlcyB0aGUgdGV4dAorICAgICAqLworICAgIHByaXZhdGUgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IG51bGw7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gY29uc3RydWN0b3JzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkIGFjY29yZGluZyB0byB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBwcm92aWRlZC4gIElmIHRoZSBkZXNjcmlwdGlvbiBpcyBtYWxmb3JtZWQsIHRocm93cyBhbgorICAgICAqIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi4gIE5vcm1hbGx5LCBpbnN0ZWFkIG9mIGNvbnN0cnVjdGluZyBhCisgICAgICogUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgZGlyZWN0b3J5LCB5b3UnbGwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMKKyAgICAgKiBvbiBCcmVha0l0ZXJhdG9yIHRvIGNyZWF0ZSBvbmUgaW5kaXJlY3RseSBmcm9tIGEgZGVzY3JpcHRpb24KKyAgICAgKiBpbiB0aGUgZnJhbWV3b3JrJ3MgcmVzb3VyY2UgZmlsZXMuICBZb3UnZCB1c2UgdGhpcyB3aGVuIHlvdSB3YW50CisgICAgICogc3BlY2lhbCBiZWhhdmlvciBub3QgcHJvdmlkZWQgYnkgdGhlIGJ1aWx0LWluIGl0ZXJhdG9ycy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQoU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisvL1N5c3RlbS5vdXQucHJpbnRsbigiPj4+UkJCSSBjb25zdHJ1Y3RvciIpOworICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisKKyAgICAgICAgLy8gdGhlIGFjdHVhbCB3b3JrIGlzIGRvbmUgYnkgdGhlIEJ1aWxkZXIgY2xhc3MKKyAgICAgICAgQnVpbGRlciBidWlsZGVyID0gbWFrZUJ1aWxkZXIoKTsKKyAgICAgICAgYnVpbGRlci5idWlsZEJyZWFrSXRlcmF0b3IoKTsKKy8vU3lzdGVtLm91dC5wcmludGxuKCI8PDxSQkJJIGNvbnN0cnVjdG9yIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIEJ1aWxkZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIEJ1aWxkZXIgbWFrZUJ1aWxkZXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgQnVpbGRlcigpOworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBib2lsZXJwbGF0ZQorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvKioKKyAgICAgKiBDbG9uZXMgdGhpcyBpdGVyYXRvci4KKyAgICAgKiBAcmV0dXJuIEEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgd2l0aCB0aGUgc2FtZQorICAgICAqIGJlaGF2aW9yIGFzIHRoaXMgb25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgcmVzdWx0ID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkKSBzdXBlci5jbG9uZSgpOworICAgICAgICBpZiAodGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQudGV4dCA9IChDaGFyYWN0ZXJJdGVyYXRvcikgdGV4dC5jbG9uZSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG9mIHRoZSBzYW1lIGNsYXNzLCBoYXZlIHRoZSBzYW1lCisgICAgICogcnVsZXMsIGFuZCBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkIG90aGVyID0gKFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkKSB0aGF0OworICAgICAgICAgICAgaWYgKCFkZXNjcmlwdGlvbi5lcXVhbHMob3RoZXIuZGVzY3JpcHRpb24pKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGdldFRleHQoKS5lcXVhbHMob3RoZXIuZ2V0VGV4dCgpKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZGVzY3JpcHRpb24gdXNlZCB0byBjcmVhdGUgdGhpcyBpdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGEgaGFzaGNvZGUgZm9yIHRoaXMgQnJlYWtJdGVyYXRvcgorICAgICAqIEByZXR1cm4gQSBoYXNoIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbi5oYXNoQ29kZSgpOworICAgIH0KKworLyoqCisgKiAgIER1bXAgb3V0IGEgbW9yZS1vci1sZXNzIGh1bWFuIHJlYWRhYmxlIGZvcm0gb2YgdGhlCisgKiAgIGNvbXBsZXRlIHN0YXRlIHRhYmxlIGFuZCBjaGFyYWN0ZXIgY2xhc3MgZGVmaW5pdGlvbnMKKyAqICAgQGludGVybmFsCisgKi8KKyAgICAvLy9DTE9WRVI6T0ZGCitwdWJsaWMgdm9pZCBkZWJ1Z0R1bXBUYWJsZXMoKSB7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCJDaGFyYWN0ZXIgQ2xhc3NlczoiKTsKKyAgICBpbnQgY3VycmVudENoYXJDbGFzcyA9IDI1NzsKKyAgICBpbnQgc3RhcnRDdXJyZW50UmFuZ2UgPSAwOworICAgIGludCBpbml0aWFsU3RyaW5nTGVuZ3RoID0gMDsKKworICAgIFN0cmluZ0J1ZmZlcltdIGNoYXJDbGFzc1JhbmdlcyA9IG5ldyBTdHJpbmdCdWZmZXJbbnVtQ2F0ZWdvcmllc107CisgICAgZm9yIChpbnQgaT0wOyBpPG51bUNhdGVnb3JpZXM7IGkrKykgeworICAgICAgICBjaGFyQ2xhc3NSYW5nZXNbaV0gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgfQorCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAweGZmZmY7IGkrKykgeworICAgICAgICBpZiAoKGludCljaGFyQ2F0ZWdvcnlUYWJsZS5lbGVtZW50QXQoKGNoYXIpaSkgIT0gY3VycmVudENoYXJDbGFzcykgeworICAgICAgICAgICAgaWYgKGN1cnJlbnRDaGFyQ2xhc3MgIT0gMjU3KSB7CisgICAgICAgICAgICAgICAgLy8gQ29tcGxldGUgdGhlIG91dHB1dCBvZiB0aGUgcHJldmlvdXMgcmFuZ2UuCisgICAgICAgICAgICAgICAgaWYgKGkgIT0gc3RhcnRDdXJyZW50UmFuZ2UrMSkgeworICAgICAgICAgICAgICAgICAgICBjaGFyQ2xhc3NSYW5nZXNbY3VycmVudENoYXJDbGFzc10uYXBwZW5kKCItIisgSW50ZWdlci50b0hleFN0cmluZyhpLTEpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNoYXJDbGFzc1Jhbmdlc1tjdXJyZW50Q2hhckNsYXNzXS5sZW5ndGgoKSAlIDcyIDwgaW5pdGlhbFN0cmluZ0xlbmd0aCAlIDcyKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXJDbGFzc1Jhbmdlc1tjdXJyZW50Q2hhckNsYXNzXS5hcHBlbmQoIlxuICAgICAiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE91dHB1dCB0aGUgc3RhcnQgb2YgdGhlIG5ldyByYW5nZS4KKyAgICAgICAgICAgIGN1cnJlbnRDaGFyQ2xhc3MgPSAoaW50KWNoYXJDYXRlZ29yeVRhYmxlLmVsZW1lbnRBdCgoY2hhcilpKTsKKyAgICAgICAgICAgIHN0YXJ0Q3VycmVudFJhbmdlID0gaTsKKyAgICAgICAgICAgIGluaXRpYWxTdHJpbmdMZW5ndGggPSBjaGFyQ2xhc3NSYW5nZXNbY3VycmVudENoYXJDbGFzc10ubGVuZ3RoKCk7CisgICAgICAgICAgICBpZiAoY2hhckNsYXNzUmFuZ2VzW2N1cnJlbnRDaGFyQ2xhc3NdLmxlbmd0aCgpID4gMCkKKyAgICAgICAgICAgICAgICBjaGFyQ2xhc3NSYW5nZXNbY3VycmVudENoYXJDbGFzc10uYXBwZW5kKCIsICIpOworICAgICAgICAgICAgY2hhckNsYXNzUmFuZ2VzW2N1cnJlbnRDaGFyQ2xhc3NdLmFwcGVuZChJbnRlZ2VyLnRvSGV4U3RyaW5nKGkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZvciAoaW50IGk9MDsgaTxudW1DYXRlZ29yaWVzOyBpKyspIHsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGkgKyAiOiAgICAgIiArIGNoYXJDbGFzc1Jhbmdlc1tpXSk7CisgICAgfQorCisKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuXG5TdGF0ZSBUYWJsZS4gICAqOiBlbmQgc3RhdGUgICAgICU6IGxvb2sgYWhlYWQgc3RhdGUiKTsKKyAgICBTeXN0ZW0ub3V0LnByaW50KCJDOlx0Iik7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1DYXRlZ29yaWVzOyBpKyspCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoSW50ZWdlci50b1N0cmluZyhpKSArICJcdCIpOworICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOyBTeXN0ZW0ub3V0LnByaW50KCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdGF0ZVRhYmxlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmIChpICUgbnVtQ2F0ZWdvcmllcyA9PSAwKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyAgICAgICAgICAgIGlmIChlbmRTdGF0ZXNbaSAvIG51bUNhdGVnb3JpZXNdKQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIioiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgIik7CisgICAgICAgICAgICBpZiAobG9va2FoZWFkU3RhdGVzW2kgLyBudW1DYXRlZ29yaWVzXSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgIik7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KEludGVnZXIudG9TdHJpbmcoaSAvIG51bUNhdGVnb3JpZXMpICsgIjpcdCIpOworICAgICAgICB9CisgICAgICAgIGlmIChzdGF0ZVRhYmxlW2ldID09IDApIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIi5cdCIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludChJbnRlZ2VyLnRvU3RyaW5nKHN0YXRlVGFibGVbaV0pICsgIlx0Iik7CisgICAgICAgIH0KKyAgICB9CisgICAgU3lzdGVtLm91dC5wcmludGxuKCk7Cit9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvLy9DTE9WRVI6T0ZGCisvLyBERUxFVEUgTUUgQkVGT1JFIFJFTEVBU0UhISEKKyAgICAvKioKKyAgICAgKiBXcml0ZSB0aGUgUkJCSSBydW50aW1lIGVuZ2luZSBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlcyB0byBhIGZpbGUuCisgICAgICogIEZvcm1lcmx5IHVzZWQgdG8gZXhwb3J0IHRoZSB0YWJsZXMgdG8gdGhlIEMrKyBSQkJJIEltcGxlbWVudGF0aW9uLgorICAgICAqICBOb3cgb2Jzb2xldGUsIGFzIEMrKyBidWlsZHMgaXRzIG93biB0YWJsZXMuCisgICAgICogQGludGVybmFsCisgICAgICovCitwdWJsaWMgdm9pZCB3cml0ZVRhYmxlc1RvRmlsZShGaWxlT3V0cHV0U3RyZWFtIGZpbGUsIGJvb2xlYW4gbGl0dGxlRW5kaWFuKSB0aHJvd3MgSU9FeGNlcHRpb24geworICAgIC8vIE5PVEU6IFRoZSBmb3JtYXQgYmVpbmcgd3JpdHRlbiBoZXJlIGlzIGRlc2lnbmVkIHRvIGJlIGNvbXBhdGlibGUgd2l0aAorICAgIC8vIHRoZSBJQ1UgdWRhdGEgaW50ZXJmYWNlcyBhbmQgbWF5IG5vdCBiZSB1c2VmdWwgZm9yIG11Y2ggZWxzZQorICAgIERhdGFPdXRwdXRTdHJlYW0gb3V0ID0gbmV3IERhdGFPdXRwdXRTdHJlYW0oZmlsZSk7CisgICAgCisvLyAgICAtLS0gd3JpdGUgdGhlIGZpbGUgaGVhZGVyIC0tLQorICAgIGJ5dGVbXSBjb21tZW50ID0gIkNvcHlyaWdodCAoQykgMTk5OSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3JwLiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiIuZ2V0Qnl0ZXMoIlVTLUFTQ0lJIik7CisvLyAgICB3cml0ZSB0aGUgc2l6ZSBvZiB0aGUgaGVhZGVyIChyb3VuZGVkIHVwIHRvIHRoZSBuZXh0IDE2LWJ5dGUgYm91bmRhcnkpCisgICAgc2hvcnQgaGVhZGVyU2l6ZSA9IChzaG9ydCkoY29tbWVudC5sZW5ndGggKyAxIC8vIGxlbmd0aCBvZiBjb21tZW50CisgICAgICAgICAgICArIDI0KTsgLy8gc2l6ZSBvZiBzdGF0aWMgaGVhZGVyIGRhdGEKKyAgICBzaG9ydCByZWFsSGVhZGVyU2l6ZSA9IChzaG9ydCkoaGVhZGVyU2l6ZSArICgoaGVhZGVyU2l6ZSAlIDE2ID09IDApID8gMCA6IDE2IC0gKGhlYWRlclNpemUgJSAxNikpKTsKKyAgICB3cml0ZVN3YXBwZWRTaG9ydChyZWFsSGVhZGVyU2l6ZSwgb3V0LCBsaXR0bGVFbmRpYW4pOworLy8gICAgd3JpdGUgbWFnaWMgYnl0ZSB2YWx1ZXMKKyAgICBvdXQud3JpdGUoMHhkYSk7CisgICAgb3V0LndyaXRlKDB4MjcpOworLy8gICAgd3JpdGUgc2l6ZSBvZiBjb3JlIGhlYWRlciBkYXRhCisgICAgd3JpdGVTd2FwcGVkU2hvcnQoKHNob3J0KTIwLCBvdXQsIGxpdHRsZUVuZGlhbik7CisvLyAgICB3cml0ZSByZXNlcnZlZCBieXRlcworICAgIHdyaXRlU3dhcHBlZFNob3J0KChzaG9ydCkwLCBvdXQsIGxpdHRsZUVuZGlhbik7CisgICAgCisvLyAgICB3cml0ZSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB3ZSdyZSBiaWctZW5kaWFuCisgICAgaWYgKGxpdHRsZUVuZGlhbikgeworICAgICAgICBvdXQud3JpdGUoMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb3V0LndyaXRlKDEpOworICAgIH0KKyAgICAKKy8vICAgIHdyaXRlIGNoYXJhY3RlciBzZXQgZmFtaWx5IGNvZGUgKDAgbWVhbnMgQVNDSUkpCisgICAgb3V0LndyaXRlKDApOworLy8gICAgd3JpdGUgc2l6ZSBvZiBVQ2hhciBpbiB0aGlzIGZpbGUKKyAgICBvdXQud3JpdGUoMik7CisvLyAgICB3cml0ZSByZXNlcnZlZCBieXRlCisgICAgb3V0LndyaXRlKDApOworLy8gICAgd3JpdGUgZGF0YSBmb3JtYXQgaWRlbnRpZmllciAodGhpcyBpcyBhbiBhcnJheSBvZiBieXRlcyBpbiBJQ1UsIHNvIHRoZSB2YWx1ZSBpcyBOT1Qgc3dhcHBlZCEpCisgICAgb3V0LndyaXRlSW50KDB4NDI1MjRiNTMpOyAgIC8vICgiQlJLUyIpCisvLyAgICB3cml0ZSBmaWxlIGZvcm1hdCB2ZXJzaW9uIG51bWJlciAoTk9UIHN3YXBwZWQhKQorICAgIG91dC53cml0ZUludCgwKTsKKy8vICAgIHdyaXRlIGRhdGEgdmVyc2lvbiBudW1iZXIgKE5PVCBzd2FwcGVkISkKKyAgICBvdXQud3JpdGVJbnQoMCk7CisvLyAgICB3cml0ZSBjb3B5cmlnaHQgbm90aWNlCisgICAgb3V0LndyaXRlKGNvbW1lbnQpOworICAgIG91dC53cml0ZSgwKTsKKy8vICAgIGZpbGwgaW4gcGFkZGluZyBieXRlcworICAgIHdoaWxlIChoZWFkZXJTaXplIDwgcmVhbEhlYWRlclNpemUpIHsKKyAgICAgICAgb3V0LndyaXRlKDApOworICAgICAgICArK2hlYWRlclNpemU7CisgICAgfQorICAgIAorLy8gICAgLS0tIHdyaXRlIGluZGV4IHRvIHRoZSBmaWxlIC0tLQorLy8gICAgd3JpdGUgdGhlIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBzdGF0ZSB0YWJsZQorICAgIHdyaXRlU3dhcHBlZEludChudW1DYXRlZ29yaWVzLCBvdXQsIGxpdHRsZUVuZGlhbik7CisgICAgaW50IGZpbGVFbmQgPSAzNjsKKy8vICAgIHdyaXRlIHRoZSBsb2NhdGlvbiBpbiB0aGUgZmlsZSBvZiB0aGUgQnJlYWtJdGVyYXRvciBkZXNjcmlwdGlvbiBzdHJpbmcKKyAgICB3cml0ZVN3YXBwZWRJbnQoZmlsZUVuZCwgb3V0LCBsaXR0bGVFbmRpYW4pOworICAgIGZpbGVFbmQgKz0gKGRlc2NyaXB0aW9uLmxlbmd0aCgpICsgMSkgKiAyOworICAgIGZpbGVFbmQgKz0gKGZpbGVFbmQgJSA0ID09IDApID8gMCA6IDQgLSAoZmlsZUVuZCAlIDQpOworLy8gICAgd3JpdGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBjaGFyYWN0ZXIgY2F0ZWdvcnkgdGFibGUncyBpbmRleAorICAgIHdyaXRlU3dhcHBlZEludChmaWxlRW5kLCBvdXQsIGxpdHRsZUVuZGlhbik7CisgICAgZmlsZUVuZCArPSBjaGFyQ2F0ZWdvcnlUYWJsZS5nZXRJbmRleEFycmF5KCkubGVuZ3RoICogMjsKKyAgICBmaWxlRW5kICs9IChmaWxlRW5kICUgNCA9PSAwKSA/IDAgOiA0IC0gKGZpbGVFbmQgJSA0KTsKKy8vICAgIHdyaXRlIHRoZSBsb2NhdGlvbiBvZiB0aGUgY2hhcmFjdGVyIGNhdGVnb3J5IHRhYmxlJ3MgdmFsdWVzIGFycmF5CisgICAgd3JpdGVTd2FwcGVkSW50KGZpbGVFbmQsIG91dCwgbGl0dGxlRW5kaWFuKTsKKyAgICBmaWxlRW5kICs9IGNoYXJDYXRlZ29yeVRhYmxlLmdldFZhbHVlQXJyYXkoKS5sZW5ndGg7CisgICAgZmlsZUVuZCArPSAoZmlsZUVuZCAlIDQgPT0gMCkgPyAwIDogNCAtIChmaWxlRW5kICUgNCk7CisvLyAgICB3cml0ZSB0aGUgbG9jYXRpb24gb2YgdGhlIGZvcndhcmQgc3RhdGUgdGFibGUKKyAgICB3cml0ZVN3YXBwZWRJbnQoZmlsZUVuZCwgb3V0LCBsaXR0bGVFbmRpYW4pOworICAgIGZpbGVFbmQgKz0gc3RhdGVUYWJsZS5sZW5ndGggKiAyOworICAgIGZpbGVFbmQgKz0gKGZpbGVFbmQgJSA0ID09IDApID8gMCA6IDQgLSAoZmlsZUVuZCAlIDQpOworLy8gICAgd3JpdGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBiYWNrd2FyZCBzdGF0ZSB0YWJsZQorICAgIHdyaXRlU3dhcHBlZEludChmaWxlRW5kLCBvdXQsIGxpdHRsZUVuZGlhbik7CisgICAgZmlsZUVuZCArPSBiYWNrd2FyZHNTdGF0ZVRhYmxlLmxlbmd0aCAqIDI7CisgICAgZmlsZUVuZCArPSAoZmlsZUVuZCAlIDQgPT0gMCkgPyAwIDogNCAtIChmaWxlRW5kICUgNCk7CisvLyAgICB3cml0ZSB0aGUgbG9jYXRpb24gb2YgdGhlIGVuZFN0YXRlcyBmbGFncworICAgIHdyaXRlU3dhcHBlZEludChmaWxlRW5kLCBvdXQsIGxpdHRsZUVuZGlhbik7CisgICAgZmlsZUVuZCArPSBlbmRTdGF0ZXMubGVuZ3RoOworICAgIGZpbGVFbmQgKz0gKGZpbGVFbmQgJSA0ID09IDApID8gMCA6IDQgLSAoZmlsZUVuZCAlIDQpOworLy8gICAgd3JpdGUgdGhlIGxvY2F0aW9uIG9mIHRoZSBsb29rYWhlYWRTdGF0ZXMgZmxhZ3MKKyAgICB3cml0ZVN3YXBwZWRJbnQoZmlsZUVuZCwgb3V0LCBsaXR0bGVFbmRpYW4pOworICAgIGZpbGVFbmQgKz0gbG9va2FoZWFkU3RhdGVzLmxlbmd0aDsKKyAgICBmaWxlRW5kICs9IChmaWxlRW5kICUgNCA9PSAwKSA/IDAgOiA0IC0gKGZpbGVFbmQgJSA0KTsKKy8vICAgIHdyaXRlIHRoZSBsZW5ndGggb2YgdGhlIGZpbGUKKyAgICB3cml0ZVN3YXBwZWRJbnQoZmlsZUVuZCwgb3V0LCBsaXR0bGVFbmRpYW4pOworICAgIAorLy8gICAgLS0tIHdyaXRlIHRoZSBhY3R1YWwgZGF0YSAtLS0KKy8vICAgIHdyaXRlIGRlc2NyaXB0aW9uIHN0cmluZworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVzY3JpcHRpb24ubGVuZ3RoKCk7IGkrKykKKyAgICAgICAgd3JpdGVTd2FwcGVkU2hvcnQoKHNob3J0KWRlc2NyaXB0aW9uLmNoYXJBdChpKSwgb3V0LCBsaXR0bGVFbmRpYW4pOworICAgIG91dC53cml0ZVNob3J0KDApOworICAgIGlmICgoZGVzY3JpcHRpb24ubGVuZ3RoKCkgKyAxKSAlIDIgPT0gMSkKKyAgICAgICAgb3V0LndyaXRlU2hvcnQoMCk7CisvLyAgICB3cml0ZSBjaGFyYWN0ZXIgY2F0ZWdvcnkgdGFibGUKKyAgICBjaGFyW10gdGVtcDEgPSBjaGFyQ2F0ZWdvcnlUYWJsZS5nZXRJbmRleEFycmF5KCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wMS5sZW5ndGg7IGkrKykKKyAgICAgICAgd3JpdGVTd2FwcGVkU2hvcnQoKHNob3J0KXRlbXAxW2ldLCBvdXQsIGxpdHRsZUVuZGlhbik7CisgICAgaWYgKHRlbXAxLmxlbmd0aCAlIDIgPT0gMSkKKyAgICAgICAgb3V0LndyaXRlU2hvcnQoMCk7CisgICAgYnl0ZVtdIHRlbXAyID0gY2hhckNhdGVnb3J5VGFibGUuZ2V0VmFsdWVBcnJheSgpOworICAgIG91dC53cml0ZSh0ZW1wMik7CisgICAgc3dpdGNoICh0ZW1wMi5sZW5ndGggJSA0KSB7CisgICAgICAgIGNhc2UgMTogb3V0LndyaXRlKDApOworICAgICAgICBjYXNlIDI6IG91dC53cml0ZSgwKTsKKyAgICAgICAgY2FzZSAzOiBvdXQud3JpdGUoMCk7CisgICAgICAgIGRlZmF1bHQ6IGJyZWFrOworICAgIH0KKy8vICAgIHdyaXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlcworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RhdGVUYWJsZS5sZW5ndGg7IGkrKykKKyAgICAgICAgd3JpdGVTd2FwcGVkU2hvcnQoc3RhdGVUYWJsZVtpXSwgb3V0LCBsaXR0bGVFbmRpYW4pOworICAgIGlmIChzdGF0ZVRhYmxlLmxlbmd0aCAlIDIgPT0gMSkKKyAgICAgICAgb3V0LndyaXRlU2hvcnQoMCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBiYWNrd2FyZHNTdGF0ZVRhYmxlLmxlbmd0aDsgaSsrKQorICAgICAgICB3cml0ZVN3YXBwZWRTaG9ydChiYWNrd2FyZHNTdGF0ZVRhYmxlW2ldLCBvdXQsIGxpdHRsZUVuZGlhbik7CisgICAgaWYgKGJhY2t3YXJkc1N0YXRlVGFibGUubGVuZ3RoICUgMiA9PSAxKQorICAgICAgICBvdXQud3JpdGVTaG9ydCgwKTsKKy8vICAgIHdyaXRlIHRoZSBmbGFnIGFycmF5cworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZW5kU3RhdGVzLmxlbmd0aDsgaSsrKQorICAgICAgICBvdXQud3JpdGVCb29sZWFuKGVuZFN0YXRlc1tpXSk7CisgICAgc3dpdGNoIChlbmRTdGF0ZXMubGVuZ3RoICUgNCkgeworICAgICAgICBjYXNlIDE6IG91dC53cml0ZSgwKTsKKyAgICAgICAgY2FzZSAyOiBvdXQud3JpdGUoMCk7CisgICAgICAgIGNhc2UgMzogb3V0LndyaXRlKDApOworICAgICAgICBkZWZhdWx0OiBicmVhazsKKyAgICB9CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsb29rYWhlYWRTdGF0ZXMubGVuZ3RoOyBpKyspCisgICAgICAgIG91dC53cml0ZUJvb2xlYW4obG9va2FoZWFkU3RhdGVzW2ldKTsKKyAgICBzd2l0Y2ggKGxvb2thaGVhZFN0YXRlcy5sZW5ndGggJSA0KSB7CisgICAgICAgIGNhc2UgMTogb3V0LndyaXRlKDApOworICAgICAgICBjYXNlIDI6IG91dC53cml0ZSgwKTsKKyAgICAgICAgY2FzZSAzOiBvdXQud3JpdGUoMCk7CisgICAgICAgIGRlZmF1bHQ6IGJyZWFrOworICAgIH0KK30KKworLyoqCisgKiBAaW50ZXJuYWwKKyAqLworcHJvdGVjdGVkIHZvaWQgd3JpdGVTd2FwcGVkU2hvcnQoc2hvcnQgeCwgRGF0YU91dHB1dFN0cmVhbSBvdXQsIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQordGhyb3dzIElPRXhjZXB0aW9ueworICAgIGlmIChsaXR0bGVFbmRpYW4pIHsKKyAgICAgICAgb3V0LndyaXRlKChieXRlKSh4ICYgMHhmZikpOworICAgICAgICBvdXQud3JpdGUoKGJ5dGUpKCh4ID4+IDgpICYgMHhmZikpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgb3V0LndyaXRlKChieXRlKSgoeCA+PiA4KSAmIDB4ZmYpKTsKKyAgICAgICAgb3V0LndyaXRlKChieXRlKSh4ICYgMHhmZikpOworICAgIH0KK30KKworLyoqCisgKiBAaW50ZXJuYWwKKyAqLworcHJvdGVjdGVkIHZvaWQgd3JpdGVTd2FwcGVkSW50KGludCB4LCBEYXRhT3V0cHV0U3RyZWFtIG91dCwgYm9vbGVhbiBsaXR0bGVFbmRpYW4pCit0aHJvd3MgSU9FeGNlcHRpb24geworICAgIGlmIChsaXR0bGVFbmRpYW4pIHsKKyAgICAgICAgb3V0LndyaXRlKChieXRlKSh4ICYgMHhmZikpOworICAgICAgICBvdXQud3JpdGUoKGJ5dGUpKCh4ID4+IDgpICYgMHhmZikpOworICAgICAgICBvdXQud3JpdGUoKGJ5dGUpKCh4ID4+IDE2KSAmIDB4ZmYpKTsKKyAgICAgICAgb3V0LndyaXRlKChieXRlKSgoeCA+PiAyNCkgJiAweGZmKSk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBvdXQud3JpdGUoKGJ5dGUpKCh4ID4+IDI0KSAmIDB4ZmYpKTsKKyAgICAgICAgb3V0LndyaXRlKChieXRlKSgoeCA+PiAxNikgJiAweGZmKSk7CisgICAgICAgIG91dC53cml0ZSgoYnl0ZSkoKHggPj4gOCkgJiAweGZmKSk7CisgICAgICAgIG91dC53cml0ZSgoYnl0ZSkoeCAmIDB4ZmYpKTsKKyAgICB9Cit9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQnJlYWtJdGVyYXRvciBvdmVycmlkZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIChpLmUuLCB0aGUgQ2hhcmFjdGVySXRlcmF0b3IncyBzdGFydGluZyBvZmZzZXQpLgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZmlyc3QoKSB7CisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHQgPSBnZXRUZXh0KCk7CisKKyAgICAgICAgdC5maXJzdCgpOworICAgICAgICByZXR1cm4gdC5nZXRJbmRleCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogKGkuZS4sIHRoZSBDaGFyYWN0ZXJJdGVyYXRvcidzIGVuZGluZyBvZmZzZXQpLgorICAgICAqIEByZXR1cm4gVGhlIHRleHQncyBwYXN0LXRoZS1lbmQgb2Zmc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbGFzdCgpIHsKKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgdCA9IGdldFRleHQoKTsKKworICAgICAgICAvLyBJJ20gbm90IHN1cmUgd2h5LCBidXQgdC5sYXN0KCkgcmV0dXJucyB0aGUgb2Zmc2V0IG9mIHRoZSBsYXN0IGNoYXJhY3RlciwKKyAgICAgICAgLy8gcmF0aGVyIHRoYW4gdGhlIHBhc3QtdGhlLWVuZCBvZmZzZXQKKyAgICAgICAgdC5zZXRJbmRleCh0LmdldEVuZEluZGV4KCkpOworICAgICAgICByZXR1cm4gdC5nZXRJbmRleCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBlaXRoZXIgZm9yd2FyZCBvciBiYWNrd2FyZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBzdGVwcy4KKyAgICAgKiBOZWdhdGl2ZSB2YWx1ZXMgbW92ZSBiYWNrd2FyZCwgYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3ZlIGZvcndhcmQuICBUaGlzIGlzCisgICAgICogZXF1aXZhbGVudCB0byByZXBlYXRlZGx5IGNhbGxpbmcgbmV4dCgpIG9yIHByZXZpb3VzKCkuCisgICAgICogQHBhcmFtIG4gVGhlIG51bWJlciBvZiBzdGVwcyB0byBtb3ZlLiAgVGhlIHNpZ24gaW5kaWNhdGVzIHRoZSBkaXJlY3Rpb24KKyAgICAgKiAobmVnYXRpdmUgaXMgYmFja3dhcmRzLCBhbmQgcG9zaXRpdmUgaXMgZm9yd2FyZHMpLgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBvZmZzZXQgb2YgdGhlIGJvdW5kYXJ5IHBvc2l0aW9uIG4gYm91bmRhcmllcyBhd2F5IGZyb20KKyAgICAgKiB0aGUgY3VycmVudCBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KGludCBuKSB7CisgICAgICAgIGludCByZXN1bHQgPSBjdXJyZW50KCk7CisgICAgICAgIHdoaWxlIChuID4gMCkgeworICAgICAgICAgICAgcmVzdWx0ID0gaGFuZGxlTmV4dCgpOworICAgICAgICAgICAgLS1uOworICAgICAgICB9CisgICAgICAgIHdoaWxlIChuIDwgMCkgeworICAgICAgICAgICAgcmVzdWx0ID0gcHJldmlvdXMoKTsKKyAgICAgICAgICAgICsrbjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhpcyBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCkgeworICAgICAgICByZXR1cm4gaGFuZGxlTmV4dCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBiYWNrd2FyZHMsIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHByZWNlZGluZyB0aGlzIG9uZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpIHsKKyAgICAgICAgLy8gaWYgd2UncmUgYWxyZWFkeSBzaXR0aW5nIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHJldHVybiBET05FCisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBnZXRUZXh0KCk7CisgICAgICAgIGlmIChjdXJyZW50KCkgPT0gdGV4dC5nZXRCZWdpbkluZGV4KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBCcmVha0l0ZXJhdG9yLkRPTkU7CisgICAgICAgIH0KKworICAgICAgICAvLyBzZXQgdGhpbmdzIHVwLiAgaGFuZGxlUHJldmlvdXMoKSB3aWxsIGJhY2sgdXMgdXAgdG8gc29tZSB2YWxpZAorICAgICAgICAvLyBicmVhayBwb3NpdGlvbiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gKHdlIGJhY2sgb3VyIGludGVybmFsCisgICAgICAgIC8vIGl0ZXJhdG9yIHVwIG9uZSBzdGVwIHRvIHByZXZlbnQgaGFuZGxlUHJldmlvdXMoKSBmcm9tIHJldHVybmluZworICAgICAgICAvLyB0aGUgY3VycmVudCBwb3NpdGlvbiksIGJ1dCBub3QgbmVjZXNzYXJpbHkgdGhlIGxhc3Qgb25lIGJlZm9yZQorICAgICAgICAvLyB3aGVyZSB3ZSBzdGFydGVkCisgICAgICAgIGludCBzdGFydCA9IGN1cnJlbnQoKTsKKyAgICAgICAgdGV4dC5wcmV2aW91cygpOworICAgICAgICBpbnQgbGFzdFJlc3VsdCA9IGhhbmRsZVByZXZpb3VzKCk7CisgICAgICAgIGludCByZXN1bHQgPSBsYXN0UmVzdWx0OworCisgICAgICAgIC8vIGl0ZXJhdGUgZm9yd2FyZCBmcm9tIHRoZSBrbm93biBicmVhayBwb3NpdGlvbiB1bnRpbCB3ZSBwYXNzIG91cgorICAgICAgICAvLyBzdGFydGluZyBwb2ludC4gIFRoZSBsYXN0IGJyZWFrIHBvc2l0aW9uIGJlZm9yZSB0aGUgc3RhcnRpbmcKKyAgICAgICAgLy8gcG9pbnQgaXMgb3VyIHJldHVybiB2YWx1ZQorICAgICAgICB3aGlsZSAocmVzdWx0ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSAmJiByZXN1bHQgPCBzdGFydCkgeworICAgICAgICAgICAgbGFzdFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgIHJlc3VsdCA9IGhhbmRsZU5leHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHNldCB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gYmUgdGhlIGxhc3QgYnJlYWsgcG9zaXRpb24KKyAgICAgICAgLy8gYmVmb3JlIHdoZXJlIHdlIHN0YXJ0ZWQsIGFuZCB0aGVuIHJldHVybiB0aGF0IHZhbHVlCisgICAgICAgIHRleHQuc2V0SW5kZXgobGFzdFJlc3VsdCk7CisgICAgICAgIHJldHVybiBsYXN0UmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB1bmxlc3MgYmVnaW4gPD0gb2Zmc2V0IDwgZW5kLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgdm9pZCBjaGVja09mZnNldChpbnQgb2Zmc2V0LCBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0KSB7CisgICAgICAgIGlmIChvZmZzZXQgPCB0ZXh0LmdldEJlZ2luSW5kZXgoKSB8fCBvZmZzZXQgPiB0ZXh0LmdldEVuZEluZGV4KCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIm9mZnNldCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nCisgICAgICogdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiBmcm9tIHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyBmb3IgYSBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYnJlYWsgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBmb2xsb3dpbmcoaW50IG9mZnNldCkgeworICAgICAgICAvLyBpZiB0aGUgb2Zmc2V0IHBhc3NlZCBpbiBpcyBhbHJlYWR5IHBhc3QgdGhlIGVuZCBvZiB0aGUgdGV4dCwKKyAgICAgICAgLy8ganVzdCByZXR1cm4gRE9ORQorICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gZ2V0VGV4dCgpOworICAgICAgICBpZiAob2Zmc2V0ID09IHRleHQuZ2V0RW5kSW5kZXgoKSkgeworICAgICAgICAgICAgcmV0dXJuIEJyZWFrSXRlcmF0b3IuRE9ORTsKKyAgICAgICAgfQorICAgICAgICBjaGVja09mZnNldChvZmZzZXQsIHRleHQpOworCisgICAgICAgIC8vIG90aGVyd2lzZSwgc2V0IG91ciBpbnRlcm5hbCBpdGVyYXRpb24gcG9zaXRpb24gKHRlbXBvcmFyaWx5KQorICAgICAgICAvLyB0byB0aGUgcG9zaXRpb24gcGFzc2VkIGluLiAgSWYgdGhpcyBpcyB0aGUgX2JlZ2lubmluZ18gcG9zaXRpb24sCisgICAgICAgIC8vIHRoZW4gd2UgY2FuIGp1c3QgdXNlIG5leHQoKSB0byBnZXQgb3VyIHJldHVybiB2YWx1ZQorICAgICAgICB0ZXh0LnNldEluZGV4KG9mZnNldCk7CisgICAgICAgIGlmIChvZmZzZXQgPT0gdGV4dC5nZXRCZWdpbkluZGV4KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGVOZXh0KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBvdGhlcndpc2UsIHdlIGhhdmUgdG8gc3luYyB1cCBmaXJzdC4gIFVzZSBoYW5kbGVQcmV2aW91cygpIHRvIGJhY2sKKyAgICAgICAgLy8gdXMgdXAgdG8gYSBrbm93biBicmVhayBwb3NpdGlvbiBiZWZvcmUgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiAoaWYKKyAgICAgICAgLy8gd2UgY2FuIGRldGVybWluZSB0aGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaXMgYSBicmVhayBwb3NpdGlvbiwKKyAgICAgICAgLy8gd2UgZG9uJ3QgYmFjayB1cCBhdCBhbGwpLiAgVGhpcyBtYXkgb3IgbWF5IG5vdCBiZSB0aGUgbGFzdCBicmVhaworICAgICAgICAvLyBwb3NpdGlvbiBhdCBvciBiZWZvcmUgb3VyIHN0YXJ0aW5nIHBvc2l0aW9uLiAgQWR2YW5jZSBmb3J3YXJkCisgICAgICAgIC8vIGZyb20gaGVyZSB1bnRpbCB3ZSd2ZSBwYXNzZWQgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uLiAgVGhlIHBvc2l0aW9uCisgICAgICAgIC8vIHdlIHN0b3Agb24gd2lsbCBiZSB0aGUgZmlyc3QgYnJlYWsgcG9zaXRpb24gYWZ0ZXIgdGhlIHNwZWNpZmllZCBvbmUuCisgICAgICAgIGludCByZXN1bHQgPSBoYW5kbGVQcmV2aW91cygpOworICAgICAgICB3aGlsZSAocmVzdWx0ICE9IEJyZWFrSXRlcmF0b3IuRE9ORSAmJiByZXN1bHQgPD0gb2Zmc2V0KSB7CisgICAgICAgICAgICByZXN1bHQgPSBoYW5kbGVOZXh0KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBiZWZvcmUgdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIHRvIGJlZ2luIHNlYXJjaGluZyBmb3IgYSBicmVhayBmcm9tLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3RhcnRpbmcgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmVjZWRpbmcoaW50IG9mZnNldCkgeworICAgICAgICAvLyBpZiB3ZSBzdGFydCBieSB1cGRhdGluZyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlCisgICAgICAgIC8vIHBvc2l0aW9uIHNwZWNpZmllZCBieSB0aGUgY2FsbGVyLCB3ZSBjYW4ganVzdCB1c2UgcHJldmlvdXMoKQorICAgICAgICAvLyB0byBjYXJyeSBvdXQgdGhpcyBvcGVyYXRpb24KKyAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCA9IGdldFRleHQoKTsKKyAgICAgICAgY2hlY2tPZmZzZXQob2Zmc2V0LCB0ZXh0KTsKKyAgICAgICAgdGV4dC5zZXRJbmRleChvZmZzZXQpOworICAgICAgICByZXR1cm4gcHJldmlvdXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uICBBcyBhIHNpZGUKKyAgICAgKiBlZmZlY3QsIGxlYXZlcyB0aGUgaXRlcmF0b3IgcG9pbnRpbmcgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGF0CisgICAgICogb3IgYWZ0ZXIgIm9mZnNldCIuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzQm91bmRhcnkoaW50IG9mZnNldCkgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gZ2V0VGV4dCgpOworICAgICAgICBjaGVja09mZnNldChvZmZzZXQsIHRleHQpOworICAgICAgICBpZiAob2Zmc2V0ID09IHRleHQuZ2V0QmVnaW5JbmRleCgpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRvIGNoZWNrIHdoZXRoZXIgdGhpcyBpcyBhIGJvdW5kYXJ5LCB3ZSBjYW4gdXNlIGZvbGxvd2luZygpIG9uIHRoZQorICAgICAgICAvLyBwb3NpdGlvbiBiZWZvcmUgdGhlIHNwZWNpZmllZCBvbmUgYW5kIHJldHVybiB0cnVlIGlmIHRoZSBwb3NpdGlvbiB3ZQorICAgICAgICAvLyBnZXQgYmFjayBpcyB0aGUgb25lIHRoZSB1c2VyIHNwZWNpZmllZAorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmb2xsb3dpbmcob2Zmc2V0IC0gMSkgPT0gb2Zmc2V0OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBjdXJyZW50KCkgeworICAgICAgICByZXR1cm4gZ2V0VGV4dCgpLmdldEluZGV4KCk7CisgICAgfQorCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGF0dXMgdGFnIGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uICBUaGUgdmFsdWVzIGFwcGVhciBpbiB0aGUgcnVsZSBzb3VyY2UKKyAgICAgKiB3aXRoaW4gYnJhY2tldHMsIHsxMjN9LCBmb3IgZXhhbXBsZS4gIEZvciBydWxlcyB0aGF0IGRvIG5vdCBzcGVjaWZ5IGEKKyAgICAgKiBzdGF0dXMsIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVkLiAgSWYgbW9yZSB0aGFuIG9uZSBydWxlIGFwcGxpZXMsCisgICAgICogdGhlIG51bWVyaWNhbGx5IGxhcmdlc3Qgb2YgdGhlIHBvc3NpYmxlIHN0YXR1cyB2YWx1ZXMgaXMgcmV0dXJuZWQuCisgICAgICogPHA+CisgICAgICogTm90ZSB0aGF0IGZvciBvbGQgc3R5bGUgYnJlYWsgaXRlcmF0b3JzIChpbXBsZW1lbnRlZCBieSB0aGlzIGNsYXNzKSwgbm8KKyAgICAgKiBzdGF0dXMgY2FuIGJlIGRlY2xhcmVkLCBhbmQgYSBzdGF0dXMgb2YgemVybyBpcyBhbHdheXMgYXNzdW1lZC4KKyAgICAgKiA8cD4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGludCAgZ2V0UnVsZVN0YXR1cygpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc3RhdHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCAKKyAgICAgKiByZWNlbnRseSByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4gIFRoZSB2YWx1ZXMgYXBwZWFyIGluIHRoZSBydWxlIHNvdXJjZQorICAgICAqIHdpdGhpbiBicmFja2V0cywgezEyM30sIGZvciBleGFtcGxlLiAgVGhlIGRlZmF1bHQgc3RhdHVzIHZhbHVlIGZvciBydWxlcworICAgICAqIHRoYXQgZG8gbm90IGV4cGxpY2l0bHkgcHJvdmlkZSBvbmUgaXMgemVyby4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlIHRoYXQgZm9yIG9sZCBzdHlsZSBicmVhayBpdGVyYXRvcnMgKGltcGxlbWVudGVkIGJ5IHRoaXMgY2xhc3MpLCBubworICAgICAqIHN0YXR1cyBjYW4gYmUgZGVjbGFyZWQsIGFuZCBhIHN0YXR1cyBvZiB6ZXJvIGlzIGFsd2F5cyBhc3N1bWVkLgorICAgICAqIDxwPgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgIHB1YmxpYyBpbnQgZ2V0UnVsZVN0YXR1c1ZlYyhpbnRbXSBmaWxsSW5BcnJheSkgeworICAgICAgICAgaWYgKGZpbGxJbkFycmF5ICE9IG51bGwgJiYgZmlsbEluQXJyYXkubGVuZ3RoID49IDEpIHsKKyAgICAgICAgICAgICBmaWxsSW5BcnJheVswXSA9IDA7CisgICAgICAgICB9CisgICAgICAgICByZXR1cm4gMTsKKyAgICAgfQorCisKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuICBUaGlzIHZlcnNpb24KKyAgICAgKiBvZiB0aGlzIG1ldGhvZCByZXR1cm5zIHRoZSBhY3R1YWwgQ2hhcmFjdGVySXRlcmF0b3Igd2UncmUgdXNpbmcgaW50ZXJuYWxseS4KKyAgICAgKiBDaGFuZ2luZyB0aGUgc3RhdGUgb2YgdGhpcyBpdGVyYXRvciBjYW4gaGF2ZSB1bmRlZmluZWQgY29uc2VxdWVuY2VzLiAgSWYKKyAgICAgKiB5b3UgbmVlZCB0byBjaGFuZ2UgaXQsIGNsb25lIGl0IGZpcnN0LgorICAgICAqIEByZXR1cm4gQW4gaXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0VGV4dCgpIHsKKyAgICAgICAgLy8gVGhlIGl0ZXJhdG9yIGlzIGluaXRpYWxpemVkIHBvaW50aW5nIHRvIG5vIHRleHQgYXQgYWxsLCBzbyBpZiB0aGlzCisgICAgICAgIC8vIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGlsZSB3ZSdyZSBpbiB0aGF0IHN0YXRlLCB3ZSBoYXZlIHRvIGZ1ZGdlIGFuCisgICAgICAgIC8vIGFuIGl0ZXJhdG9yIHRvIHJldHVybi4KKyAgICAgICAgaWYgKHRleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGV4dCA9IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigiIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRleHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgdG8gYW5hbHl6ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yIG5ld1RleHQpIHsKKyAgICAgICAgLy8gVGVzdCB0ZXh0IHRvIHNlZSBpZiB3ZSBuZWVkIHRvIHdyYXAgaXQgaW4gYSBTYWZlQ2hhckl0ZXJhdG9yOgorICAgICAgICBpbnQgZW5kID0gbmV3VGV4dC5nZXRFbmRJbmRleCgpOworICAgICAgICBuZXdUZXh0LnNldEluZGV4KGVuZCk7CisgICAgICAgIGlmIChuZXdUZXh0LmdldEluZGV4KCkgIT0gZW5kKSB7CisgICAgICAgICAgICAvLyBmYWlsZWQgLSB3cmFwIGluIGNvcnJlY3QgaW1wbGVtZW50YXRpb24KKyAgICAgICAgICAgIHRleHQgPSBuZXcgU2FmZUNoYXJJdGVyYXRvcihuZXdUZXh0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRleHQgPSBuZXdUZXh0OworICAgICAgICB9CisgICAgICAgIHRleHQuZmlyc3QoKTsKKyAgICB9CisKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBpbXBsZW1lbnRhdGlvbgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5leHQoKSBtZXRob2QuICBBbGwgaXRlcmF0aW9uCisgICAgICogdmVjdG9ycyB0aHJvdWdoIGhlcmUuICBUaGlzIG1ldGhvZCBpbml0aWFsaXplcyB0aGUgc3RhdGUgbWFjaGluZSB0byBzdGF0ZSAxCisgICAgICogYW5kIGFkdmFuY2VzIHRocm91Z2ggdGhlIHRleHQgY2hhcmFjdGVyIGJ5IGNoYXJhY3RlciB1bnRpbCB3ZSByZWFjaCB0aGUgZW5kCisgICAgICogb2YgdGhlIHRleHQgb3IgdGhlIHN0YXRlIG1hY2hpbmUgdHJhbnNpdGlvbnMgdG8gc3RhdGUgMC4gIFdlIHVwZGF0ZSBvdXIgcmV0dXJuCisgICAgICogdmFsdWUgZXZlcnkgdGltZSB0aGUgc3RhdGUgbWFjaGluZSBwYXNzZXMgdGhyb3VnaCBhIHBvc3NpYmxlIGVuZCBzdGF0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZU5leHQoKSB7CisgICAgICAgIC8vIGlmIHdlJ3JlIGFscmVhZHkgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dCwgcmV0dXJuIERPTkUuCisgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHRleHQgPSBnZXRUZXh0KCk7CisgICAgICAgIGlmICh0ZXh0LmdldEluZGV4KCkgPT0gdGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgICAgICByZXR1cm4gQnJlYWtJdGVyYXRvci5ET05FOworICAgICAgICB9CisKKyAgICAgICAgLy8gbm8gbWF0dGVyIHdoYXQsIHdlIGFsd2F5cyBhZHZhbmNlIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgZm9yd2FyZAorICAgICAgICBpbnQgcmVzdWx0ID0gdGV4dC5nZXRJbmRleCgpICsgMTsKKyAgICAgICAgaW50IGxvb2thaGVhZFJlc3VsdCA9IDA7CisKKyAgICAgICAgLy8gYmVnaW4gaW4gc3RhdGUgMQorICAgICAgICBpbnQgc3RhdGUgPSBTVEFSVF9TVEFURTsKKyAgICAgICAgaW50IGNhdGVnb3J5OworICAgICAgICBjaGFyIGMgPSB0ZXh0LmN1cnJlbnQoKTsKKyAgICAgICAgY2hhciBsYXN0QyA9IGM7CisgICAgICAgIGludCBsYXN0Q1BvcyA9IDA7CisKKyAgICAgICAgLy8gaWYgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGlzIHNlZ21lbnQgaXMgYW4gaWdub3JlIGNoYXJhY3RlciAod2hpY2ggY2FuIGhhcHBlbgorICAgICAgICAvLyB3aGVuIGl0J3MgZWl0aGVyIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIGZpbGUgb3IgZm9sbG93cyBhIG1hbmRhdG9yeSBicmVhaworICAgICAgICAvLyBjaGFyYWN0ZXIpLCBhbmQgdGhlIGZpcnN0IG5vbi1pZ25vcmUgY2hhcmFjdGVyIGlzbid0IGEgZ2x1ZSBjaGFyYWN0ZXIsIGFsd2F5cworICAgICAgICAvLyBwdXQgYSBicmVhayBiZXR3ZWVuIHRoZSBpZ25vcmUgY2hhcmFjdGVycyBhbmQgdGhlIHJlc3Qgb2YgdGhlIHRleHQKKyAgICAgICAgaWYgKGxvb2t1cENhdGVnb3J5KGMpID09IElHTk9SRSkgeworICAgICAgICAgICAgd2hpbGUgKGxvb2t1cENhdGVnb3J5KGMpID09IElHTk9SRSkKKyAgICAgICAgICAgICAgICBjID0gdGV4dC5uZXh0KCk7CisKKyAgICAgICAgICAgIGlmIChDaGFyYWN0ZXIuZ2V0VHlwZShjKSA9PSBDaGFyYWN0ZXIuTk9OX1NQQUNJTkdfTUFSSyB8fCBDaGFyYWN0ZXIuZ2V0VHlwZShjKQorICAgICAgICAgICAgICAgICAgICA9PSBDaGFyYWN0ZXIuRU5DTE9TSU5HX01BUkspIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gbG9vcCB1bnRpbCB3ZSByZWFjaCB0aGUgZW5kIG9mIHRoZSB0ZXh0IG9yIHRyYW5zaXRpb24gdG8gc3RhdGUgMAorICAgICAgICB3aGlsZSAoYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIHN0YXRlICE9IFNUT1BfU1RBVEUpIHsKKworICAgICAgICAgICAgLy8gbG9vayB1cCB0aGUgY3VycmVudCBjaGFyYWN0ZXIncyBjaGFyYWN0ZXIgY2F0ZWdvcnkgKHdoaWNoIHRlbGxzIHVzCisgICAgICAgICAgICAvLyB3aGljaCBjb2x1bW4gaW4gdGhlIHN0YXRlIHRhYmxlIHRvIGxvb2sgYXQpCisgICAgICAgICAgICBjYXRlZ29yeSA9IGxvb2t1cENhdGVnb3J5KGMpOworCisgICAgICAgICAgICAvLyBpZiB0aGUgY2hhcmFjdGVyIGlzbid0IGFuIGlnbm9yZSBjaGFyYWN0ZXIsIGxvb2sgdXAgYSBzdGF0ZQorICAgICAgICAgICAgLy8gdHJhbnNpdGlvbiBpbiB0aGUgc3RhdGUgdGFibGUKKyAgICAgICAgICAgIGlmIChjYXRlZ29yeSAhPSBJR05PUkUpIHsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IGxvb2t1cFN0YXRlKHN0YXRlLCBjYXRlZ29yeSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBzdGF0ZSB3ZSd2ZSBqdXN0IHRyYW5zaXRpb25lZCB0byBpcyBhIGxvb2thaGVhZCBzdGF0ZSwKKyAgICAgICAgICAgIC8vIChidXQgbm90IGFsc28gYW4gZW5kIHN0YXRlKSwgc2F2ZSBpdHMgcG9zaXRpb24uICBJZiBpdCdzCisgICAgICAgICAgICAvLyBib3RoIGEgbG9va2FoZWFkIHN0YXRlIGFuZCBhbiBlbmQgc3RhdGUsIHVwZGF0ZSB0aGUgYnJlYWsgcG9zaXRpb24KKyAgICAgICAgICAgIC8vIHRvIHRoZSBsYXN0IHNhdmVkIGxvb2t1cC1zdGF0ZSBwb3NpdGlvbgorICAgICAgICAgICAgaWYgKGxvb2thaGVhZFN0YXRlc1tzdGF0ZV0pIHsKKyAgICAgICAgICAgICAgICBpZiAoZW5kU3RhdGVzW3N0YXRlXSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobG9va2FoZWFkUmVzdWx0ID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbG9va2FoZWFkUmVzdWx0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGV4dC5nZXRJbmRleCgpICsgMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbG9va2FoZWFkUmVzdWx0ID0gdGV4dC5nZXRJbmRleCgpICsgMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgaWYgdGhlIHN0YXRlIHdlJ3ZlIGp1c3QgdHJhbnNpdGlvbmVkIHRvIGlzIGFuIGFjY2VwdGluZworICAgICAgICAgICAgLy8gc3RhdGUsIHVwZGF0ZSB0aGUgYnJlYWsgcG9zaXRpb24gdG8gYmUgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoZW5kU3RhdGVzW3N0YXRlXSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0ZXh0LmdldEluZGV4KCkgKyAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8ga2VlcCB0cmFjayBvZiB0aGUgbGFzdCAicmVhbCIgY2hhcmFjdGVyIHdlIHNhdy4gIElmIHRoaXMgY2hhcmFjdGVyIGlzbid0IGFuCisgICAgICAgICAgICAvLyBpZ25vcmUgY2hhcmFjdGVyLCB0YWtlIG5vdGUgb2YgaXQgYW5kIGl0cyBwb3NpdGlvbiBpbiB0aGUgdGV4dAorICAgICAgICAgICAgaWYgKGNhdGVnb3J5ICE9IElHTk9SRSAmJiBzdGF0ZSAhPSBTVE9QX1NUQVRFKSB7CisgICAgICAgICAgICAgICAgbGFzdEMgPSBjOworICAgICAgICAgICAgICAgIGxhc3RDUG9zID0gdGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYyA9IHRleHQubmV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgd2UndmUgcnVuIG9mZiB0aGUgZW5kIG9mIHRoZSB0ZXh0LCBhbmQgdGhlIHZlcnkgbGFzdCBjaGFyYWN0ZXIgdG9vayB1cyBpbnRvCisgICAgICAgIC8vIGEgbG9va2FoZWFkIHN0YXRlLCBhZHZhbmNlIHRoZSBicmVhayBwb3NpdGlvbiB0byB0aGUgbG9va2FoZWFkIHBvc2l0aW9uCisgICAgICAgIC8vICh0aGUgdGhlb3J5IGhlcmUgaXMgdGhhdCBpZiB0aGVyZSBhcmUgbm8gY2hhcmFjdGVycyBhdCBhbGwgYWZ0ZXIgdGhlIGxvb2thaGVhZAorICAgICAgICAvLyBwb3NpdGlvbiwgdGhhdCBhbHdheXMgbWF0Y2hlcyB0aGUgbG9va2FoZWFkIGNyaXRlcmlhKQorICAgICAgICBpZiAoYyA9PSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIGxvb2thaGVhZFJlc3VsdCA9PSB0ZXh0LmdldEVuZEluZGV4KCkpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGxvb2thaGVhZFJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHRoZSBsYXN0IGNoYXJhY3RlciB3ZSBzYXcgYmVmb3JlIHRoZSBvbmUgdGhhdCB0b29rIHVzIGludG8gdGhlIHN0b3Agc3RhdGUKKyAgICAgICAgLy8gd2FzIGEgbWFuZGF0b3J5IGJyZWFraW5nIGNoYXJhY3RlciwgdGhlbiB0aGUgYnJlYWsgcG9zaXRpb24gZ29lcyByaWdodCBhZnRlciBpdAorICAgICAgICAvLyAodGhpcyBpcyBoZXJlIHNvIHRoYXQgYnJlYWtzIGNvbWUgYmVmb3JlLCByYXRoZXIgdGhhbiBhZnRlciwgYSBzdHJpbmcgb2YKKyAgICAgICAgLy8gaWdub3JlIGNoYXJhY3RlcnMgd2hlbiB0aGV5IGZvbGxvdyBhIG1hbmRhdG9yeSBicmVhayBjaGFyYWN0ZXIpCisgICAgICAgIGVsc2UgaWYgKCJcblxyXGZcdTIwMjhcdTIwMjkiLmluZGV4T2YobGFzdEMpICE9IC0xKSB7CisgICAgICAgICAgICByZXN1bHQgPSBsYXN0Q1BvcyArIDE7CisgICAgICAgIH0KKworICAgICAgICB0ZXh0LnNldEluZGV4KHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgYmFja3MgdGhlIGl0ZXJhdG9yIGJhY2sgdXAgdG8gYSAic2FmZSBwb3NpdGlvbiIgaW4gdGhlIHRleHQuCisgICAgICogVGhpcyBpcyBhIHBvc2l0aW9uIHRoYXQgd2Uga25vdywgd2l0aG91dCBhbnkgY29udGV4dCwgbXVzdCBiZSBhIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIFRoZSB2YXJpb3VzIGNhbGxpbmcgbWV0aG9kcyB0aGVuIGl0ZXJhdGUgZm9yd2FyZCBmcm9tIHRoaXMgc2FmZSBwb3NpdGlvbiB0bworICAgICAqIHRoZSBhcHByb3ByaWF0ZSBwb3NpdGlvbiB0byByZXR1cm4uICAoRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBvZiBidWlsZEJhY2t3YXJkc1N0YXRlVGFibGUoKSBpbiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZC5CdWlsZGVyLikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZVByZXZpb3VzKCkgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0ID0gZ2V0VGV4dCgpOworICAgICAgICBpbnQgc3RhdGUgPSBTVEFSVF9TVEFURTsKKyAgICAgICAgaW50IGNhdGVnb3J5ID0gMDsKKyAgICAgICAgaW50IGxhc3RDYXRlZ29yeSA9IDA7CisgICAgICAgIGNoYXIgYyA9IHRleHQuY3VycmVudCgpOworCisgICAgICAgIC8vIGxvb3AgdW50aWwgd2UgcmVhY2ggdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCBvciB0cmFuc2l0aW9uIHRvIHN0YXRlIDAKKyAgICAgICAgd2hpbGUgKGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJiBzdGF0ZSAhPSBTVE9QX1NUQVRFKSB7CisvL1N5c3RlbS5vdXQucHJpbnQoIiAiICsgdGV4dC5nZXRJbmRleCgpKTsKKworICAgICAgICAgICAgLy8gc2F2ZSB0aGUgbGFzdCBjaGFyYWN0ZXIncyBjYXRlZ29yeSBhbmQgbG9vayB1cCB0aGUgY3VycmVudAorICAgICAgICAgICAgLy8gY2hhcmFjdGVyJ3MgY2F0ZWdvcnkKKyAgICAgICAgICAgIGxhc3RDYXRlZ29yeSA9IGNhdGVnb3J5OworICAgICAgICAgICAgY2F0ZWdvcnkgPSBsb29rdXBDYXRlZ29yeShjKTsKKworICAgICAgICAgICAgLy8gaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGlzbid0IGFuIGlnbm9yZSBjaGFyYWN0ZXIsIGxvb2sgdXAgYQorICAgICAgICAgICAgLy8gc3RhdGUgdHJhbnNpdGlvbiBpbiB0aGUgYmFja3dhcmRzIHN0YXRlIHRhYmxlCisgICAgICAgICAgICBpZiAoY2F0ZWdvcnkgIT0gSUdOT1JFKSB7CisgICAgICAgICAgICAgICAgc3RhdGUgPSBsb29rdXBCYWNrd2FyZFN0YXRlKHN0YXRlLCBjYXRlZ29yeSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRoZW4gYWR2YW5jZSBvbmUgY2hhcmFjdGVyIGJhY2t3YXJkcworICAgICAgICAgICAgYyA9IHRleHQucHJldmlvdXMoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHdlIGRpZG4ndCBtYXJjaCBvZmYgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgd2UncmUgZWl0aGVyIG9uZSBvciB0d28KKyAgICAgICAgLy8gcG9zaXRpb25zIGF3YXkgZnJvbSB0aGUgcmVhbCBicmVhayBwb3NpdGlvbi4gIChPbmUgYmVjYXVzZSBvZiB0aGUgY2FsbCB0bworICAgICAgICAvLyBwcmV2aW91cygpIGF0IHRoZSBlbmQgb2YgdGhlIGxvb3AgYWJvdmUsIGFuZCBhbm90aGVyIGJlY2F1c2UgdGhlIGNoYXJhY3RlcgorICAgICAgICAvLyB0aGF0IHRha2VzIHVzIGludG8gdGhlIHN0b3Agc3RhdGUgd2lsbCBhbHdheXMgYmUgdGhlIGNoYXJhY3RlciBCRUZPUkUKKyAgICAgICAgLy8gdGhlIGJyZWFrIHBvc2l0aW9uLikKKyAgICAgICAgaWYgKGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgaWYgKGxhc3RDYXRlZ29yeSAhPSBJR05PUkUpIHsKKyAgICAgICAgICAgICAgICB0ZXh0LnNldEluZGV4KHRleHQuZ2V0SW5kZXgoKSArIDIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdGV4dC5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKy8vU3lzdGVtLm91dC5wcmludCgiLCIpOworICAgICAgICByZXR1cm4gdGV4dC5nZXRJbmRleCgpOworICAgIH0KKworLy9zdGF0aWMgaW50IHZpc2l0ZWRDaGFycyA9IDA7CisgICAgLyoqCisgICAgICogTG9va3MgdXAgYSBjaGFyYWN0ZXIncyBjYXRlZ29yeSAoaS5lLiwgaXRzIGNhdGVnb3J5IGZvciBicmVha2luZyBwdXJwb3NlcywKKyAgICAgKiBub3QgaXRzIFVuaWNvZGUgY2F0ZWdvcnkpCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBsb29rdXBDYXRlZ29yeShjaGFyIGMpIHsKKy8vKyt2aXNpdGVkQ2hhcnM7CisgICAgICAgIHJldHVybiBjaGFyQ2F0ZWdvcnlUYWJsZS5lbGVtZW50QXQoYyk7CisgICAgfQorCisvKgorc3RhdGljIHZvaWQgcHJpbnRWaXNpdGVkQ2hhckNvdW50KCkgeworU3lzdGVtLm91dC5wcmludGxuKCJUb3RhbCBudW1iZXIgb2YgY2hhcmFjdGVycyB2aXNpdGVkID0gIiArIHZpc2l0ZWRDaGFycyk7Cit2aXNpdGVkQ2hhcnMgPSAwOworfQorKi8KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgY3VycmVudCBzdGF0ZSBhbmQgYSBjaGFyYWN0ZXIgY2F0ZWdvcnksIGxvb2tzIHVwIHRoZQorICAgICAqIG5leHQgc3RhdGUgdG8gdHJhbnNpdGlvbiB0byBpbiB0aGUgc3RhdGUgdGFibGUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBsb29rdXBTdGF0ZShpbnQgc3RhdGUsIGludCBjYXRlZ29yeSkgeworICAgICAgICByZXR1cm4gc3RhdGVUYWJsZVtzdGF0ZSAqIG51bUNhdGVnb3JpZXMgKyBjYXRlZ29yeV07CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSBjdXJyZW50IHN0YXRlIGFuZCBhIGNoYXJhY3RlciBjYXRlZ29yeSwgbG9va3MgdXAgdGhlCisgICAgICogbmV4dCBzdGF0ZSB0byB0cmFuc2l0aW9uIHRvIGluIHRoZSBiYWNrd2FyZHMgc3RhdGUgdGFibGUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBsb29rdXBCYWNrd2FyZFN0YXRlKGludCBzdGF0ZSwgaW50IGNhdGVnb3J5KSB7CisgICAgICAgIHJldHVybiBiYWNrd2FyZHNTdGF0ZVRhYmxlW3N0YXRlICogbnVtQ2F0ZWdvcmllcyArIGNhdGVnb3J5XTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGEgaGVscGVyIGZ1bmN0aW9uIGZvciBjb21wdXRpbmcgdGhlIGludGVyc2VjdGlvbiBvZgorICAgICAqIHR3byA8Y29kZT5Vbmljb2RlU2V0PC9jb2RlPiBvYmplY3RzLgorICAgICAqIEBwYXJhbSBhLCBiIHRoZSB0d28gPGNvZGU+VW5pY29kZVNldDwvY29kZT5zIHRvIGludGVyc2VjdAorICAgICAqIEByZXR1cm4gYSBuZXcgPGNvZGU+VW5pY29kZVNldDwvY29kZT4gd2hpY2ggaXMgdGhlIGludGVyc2VjdGlvbiBvZiBhIGFuZCBiCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBpbnRlcnNlY3Rpb24oVW5pY29kZVNldCBhLCBVbmljb2RlU2V0IGIpCisgICAgeworICAgICAgICBVbmljb2RlU2V0IHJlc3VsdCA9IG5ldyBVbmljb2RlU2V0KGEpOworCisgICAgICAgIHJlc3VsdC5yZXRhaW5BbGwoYik7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5CdWlsZGVyCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8qKgorICAgICAqIFRoZSBCdWlsZGVyIGNsYXNzIGhhcyB0aGUgam9iIG9mIGNvbnN0cnVjdGluZyBhIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkIGZyb20gYQorICAgICAqIHRleHR1YWwgZGVzY3JpcHRpb24uICBBIEJ1aWxkZXIgaXMgY29uc3RydWN0ZWQgYnkgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQncworICAgICAqIGNvbnN0cnVjdG9yLCB3aGljaCB1c2VzIGl0IHRvIGNvbnN0cnVjdCB0aGUgaXRlcmF0b3IgaXRzZWxmIGFuZCB0aGVuIHRocm93cyBpdAorICAgICAqIGF3YXkuCisgICAgICogPHA+VGhlIGNvbnN0cnVjdGlvbiBsb2dpYyBpcyBzZXBhcmF0ZWQgb3V0IGludG8gaXRzIG93biBjbGFzcyBmb3IgdHdvIHByaW1hcnkKKyAgICAgKiByZWFzb25zOgorICAgICAqIDx1bD48bGk+VGhlIGNvbnN0cnVjdGlvbiBsb2dpYyBpcyBxdWl0ZSBzb3BoaXN0aWNhdGVkIGFuZCBsYXJnZS4gIFNlcGFyYXRpbmcgaXQKKyAgICAgKiBvdXQgaW50byBpdHMgb3duIGNsYXNzIG1lYW5zIHRoZSBjb2RlIG11c3Qgb25seSBiZSBsb2FkZWQgaW50byBtZW1vcnkgd2hpbGUgYQorICAgICAqIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JfT2xkIGlzIGJlaW5nIGNvbnN0cnVjdGVkLCBhbmQgY2FuIGJlIHB1cmdlZCBhZnRlciB0aGF0LgorICAgICAqIDxsaT5UaGVyZSBpcyBhIGZhaXIgYW1vdW50IG9mIHN0YXRlIHRoYXQgbXVzdCBiZSBtYWludGFpbmVkIHRocm91Z2hvdXQgdGhlCisgICAgICogY29uc3RydWN0aW9uIHByb2Nlc3MgdGhhdCBpcyBub3QgbmVlZGVkIGJ5IHRoZSBpdGVyYXRvciBhZnRlciBjb25zdHJ1Y3Rpb24uCisgICAgICogU2VwYXJhdGluZyB0aGlzIHN0YXRlIG91dCBpbnRvIGFub3RoZXIgY2xhc3MgcHJldmVudHMgYWxsIG9mIHRoZSBmdW5jdGlvbnMgdGhhdAorICAgICAqIGNvbnN0cnVjdCB0aGUgaXRlcmF0b3IgZnJvbSBoYXZpbmcgdG8gaGF2ZSByZWFsbHkgbG9uZyBwYXJhbWV0ZXIgbGlzdHMsCisgICAgICogKGhvcGVmdWxseSkgY29udHJpYnV0aW5nIHRvIHJlYWRhYmlsaXR5IGFuZCBtYWludGFpbmFiaWxpdHkuPC91bD4KKyAgICAgKiA8cD5JdCdkIGJlIHJlYWxseSBuaWNlIGlmIHRoaXMgY291bGQgYmUgYW4gaW5kZXBlbmRlbnQgY2xhc3MgcmF0aGVyIHRoYW4gYW4KKyAgICAgKiBpbm5lciBjbGFzcywgYmVjYXVzZSB0aGF0IHdvdWxkIHNob3J0ZW4gdGhlIHNvdXJjZSBmaWxlIGNvbnNpZGVyYWJseSwgYnV0CisgICAgICogbWFraW5nIEJ1aWxkZXIgYW4gaW5uZXIgY2xhc3Mgb2YgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcl9PbGQgYWxsb3dzIGl0IGRpcmVjdCBhY2Nlc3MKKyAgICAgKiB0byBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCdzIHByaXZhdGUgbWVtYmVycywgd2hpY2ggc2F2ZXMgdXMgZnJvbSBoYXZpbmcgdG8KKyAgICAgKiBwcm92aWRlIHNvbWUga2luZCBvZiAiYmFjayBkb29yIiB0byB0aGUgQnVpbGRlciBjbGFzcyB0aGF0IGNvdWxkIHRoZW4gYWxzbyBiZQorICAgICAqIHVzZWQgYnkgb3RoZXIgY2xhc3Nlcy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgY2xhc3MgQnVpbGRlciB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBBIHRlbXBvcmFyeSBob2xkaW5nIHBsYWNlIHVzZWQgZm9yIGNhbGN1bGF0aW5nIHRoZSBjaGFyYWN0ZXIgY2F0ZWdvcmllcy4KKyAgICAgICAgICogVGhpcyBvYmplY3QgY29udGFpbnMgVW5pY29kZVNldCBvYmplY3RzLgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBWZWN0b3IgY2F0ZWdvcmllcyA9IG51bGw7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEEgdGFibGUgdXNlZCB0byBtYXAgcGFydHMgb2YgcmVnZXhwIHRleHQgdG8gbGlzdHMgb2YgY2hhcmFjdGVyIGNhdGVnb3JpZXMsCisgICAgICAgICAqIHJhdGhlciB0aGFuIGhhdmluZyB0byBmaWd1cmUgdGhlbSBvdXQgZnJvbSBzY3JhdGNoIGVhY2ggdGltZQorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBIYXNodGFibGUgZXhwcmVzc2lvbnMgPSBudWxsOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBIHRlbXBvcmFyeSBob2xkaW5nIHBsYWNlIGZvciB0aGUgbGlzdCBvZiBpZ25vcmUgY2hhcmFjdGVycworICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBVbmljb2RlU2V0IGlnbm9yZUNoYXJzID0gbnVsbDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQSB0ZW1wb3JhcnkgaG9sZGluZyBwbGFjZSB3aGVyZSB0aGUgZm9yd2FyZCBzdGF0ZSB0YWJsZSBpcyBidWlsdAorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBWZWN0b3IgdGVtcFN0YXRlVGFibGUgPSBudWxsOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBIGxpc3Qgb2YgYWxsIHRoZSBzdGF0ZXMgdGhhdCBoYXZlIHRvIGJlIGZpbGxlZCBpbiB3aXRoIHRyYW5zaXRpb25zIHRvIHRoZQorICAgICAgICAgKiBuZXh0IHN0YXRlIHRoYXQgaXMgY3JlYXRlZC4gIFVzZWQgd2hlbiBidWlsZGluZyB0aGUgc3RhdGUgdGFibGUgZnJvbSB0aGUKKyAgICAgICAgICogcmVndWxhciBleHByZXNzaW9ucy4KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgVmVjdG9yIGRlY2lzaW9uUG9pbnRMaXN0ID0gbnVsbDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQSBzdGFjayBmb3IgaG9sZGluZyBkZWNpc2lvbiBwb2ludCBsaXN0cy4gIFRoaXMgaXMgdXNlZCB0byBoYW5kbGUgbmVzdGVkCisgICAgICAgICAqIHBhcmVudGhlc2VzIGFuZCBicmFjZXMgaW4gcmVnZXhwcy4KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgU3RhY2sgZGVjaXNpb25Qb2ludFN0YWNrID0gbnVsbDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQSBsaXN0IG9mIHN0YXRlcyB0aGF0IGxvb3AgYmFjayBvbiB0aGVtc2VsdmVzLiAgVXNlZCB0byBoYW5kbGUgLio/CisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFZlY3RvciBsb29waW5nU3RhdGVzID0gbnVsbDsKKworICAgICAgICAvKioKKyAgICAgICAgICogTG9vcGluZyBzdGF0ZXMgYWN0dWFsbHkgaGF2ZSB0byBiZSBiYWNrZmlsbGVkIGxhdGVyIGluIHRoZSBwcm9jZXNzCisgICAgICAgICAqIHRoYW4gZXZlcnl0aGluZyBlbHNlLiAgVGhpcyBpcyB3aGVyZSBhIHRoZSBsaXN0IG9mIHN0YXRlcyB0byBiYWNrZmlsbAorICAgICAgICAgKiBpcyBhY2N1bXVsYXRlZC4gIFRoaXMgaXMgYWxzbyB1c2VkIHRvIGhhbmRsZSAuKj8KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgVmVjdG9yIHN0YXRlc1RvQmFja2ZpbGwgPSBudWxsOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBIGxpc3QgbWFwcGluZyBwYWlycyBvZiBzdGF0ZSBudW1iZXJzIGZvciBzdGF0ZXMgdGhhdCBhcmUgdG8gYmUgY29tYmluZWQKKyAgICAgICAgICogdG8gdGhlIHN0YXRlIG51bWJlciBvZiB0aGUgc3RhdGUgcmVwcmVzZW50aW5nIHRoZWlyIGNvbWJpbmF0aW9uLiAgVXNlZAorICAgICAgICAgKiBpbiB0aGUgcHJvY2VzcyBvZiBtYWtpbmcgdGhlIHN0YXRlIHRhYmxlIGRldGVybWluaXN0aWMgdG8gcHJldmVudAorICAgICAgICAgKiBpbmZpbml0ZSByZWN1cnNpb24uCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFZlY3RvciBtZXJnZUxpc3QgPSBudWxsOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBIGZsYWcgdGhhdCBpcyB1c2VkIHRvIGluZGljYXRlIHdoZW4gdGhlIGxpc3Qgb2YgbG9vcGluZyBzdGF0ZXMgY2FuCisgICAgICAgICAqIGJlIHJlc2V0LgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIGNsZWFyTG9vcGluZ1N0YXRlcyA9IGZhbHNlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBIGJpdCBtYXNrIHVzZWQgdG8gaW5kaWNhdGUgYSBiaXQgaW4gdGhlIHRhYmxlJ3MgZmxhZ3MgY29sdW1uIHRoYXQgbWFya3MgYQorICAgICAgICAgKiBzdGF0ZSBhcyBhbiBhY2NlcHRpbmcgc3RhdGUuCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgRU5EX1NUQVRFX0ZMQUcgPSAweDgwMDA7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEEgYml0IG1hc2sgdXNlZCB0byBpbmRpY2F0ZSBhIGJpdCBpbiB0aGUgdGFibGUncyBmbGFncyBjb2x1bW4gdGhhdCBtYXJrcyBhCisgICAgICAgICAqIHN0YXRlIGFzIG9uZSB0aGUgYnVpbGRlciBzaG91bGRuJ3QgbG9vcCB0byBhbnkgbG9vcGluZyBzdGF0ZXMKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBET05UX0xPT1BfRkxBRyA9IDB4NDAwMDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQSBiaXQgbWFzayB1c2VkIHRvIGluZGljYXRlIGEgYml0IGluIHRoZSB0YWJsZSdzIGZsYWdzIGNvbHVtbiB0aGF0IG1hcmtzIGEKKyAgICAgICAgICogc3RhdGUgYXMgYSBsb29rYWhlYWQgc3RhdGUuCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTE9PS0FIRUFEX1NUQVRFX0ZMQUcgPSAweDIwMDA7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEEgYml0IG1hc2sgcmVwcmVzZW50aW5nIHRoZSB1bmlvbiBvZiB0aGUgbWFzayB2YWx1ZXMgbGlzdGVkIGFib3ZlLgorICAgICAgICAgKiBVc2VkIGZvciBjbGVhcmluZyBvciBtYXNraW5nIG9mZiB0aGUgZmxhZyBiaXRzLgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEFMTF9GTEFHUyA9IEVORF9TVEFURV9GTEFHIHwgTE9PS0FIRUFEX1NUQVRFX0ZMQUcKKyAgICAgICAgICAgICAgICB8IERPTlRfTE9PUF9GTEFHOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBObyBzcGVjaWFsIGNvbnN0cnVjdGlvbiBpcyByZXF1aXJlZCBmb3IgdGhlIEJ1aWxkZXIuCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEJ1aWxkZXIoKSB7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBpcyB0aGUgbWFpbiBmdW5jdGlvbiBmb3Igc2V0dGluZyB1cCB0aGUgQnJlYWtJdGVyYXRvcidzIHRhYmxlcy4gIEl0CisgICAgICAgICAqIGp1c3QgdmVjdG9ycyBkaWZmZXJlbnQgcGFydHMgb2YgdGhlIGpvYiBvZmYgdG8gb3RoZXIgZnVuY3Rpb25zLgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIGJ1aWxkQnJlYWtJdGVyYXRvcigpIHsKKyAgICAgICAgICAgIFZlY3RvciB0ZW1wUnVsZUxpc3QgPSBidWlsZFJ1bGVMaXN0KGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIGJ1aWxkQ2hhckNhdGVnb3JpZXModGVtcFJ1bGVMaXN0KTsKKyAgICAgICAgICAgIGJ1aWxkU3RhdGVUYWJsZSh0ZW1wUnVsZUxpc3QpOworICAgICAgICAgICAgYnVpbGRCYWNrd2FyZHNTdGF0ZVRhYmxlKHRlbXBSdWxlTGlzdCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGh1cyBmdW5jdGlvbiBoYXMgdGhyZWUgbWFpbiBwdXJwb3NlczoKKyAgICAgICAgICogPHVsPjxsaT5QZXJmb3JtIGdlbmVyYWwgc3ludGF4IGNoZWNraW5nIG9uIHRoZSBkZXNjcmlwdGlvbiwgc28gdGhlIHJlc3Qgb2YgdGhlCisgICAgICAgICAqIGJ1aWxkIGNvZGUgY2FuIGFzc3VtZSB0aGF0IGl0J3MgcGFyc2luZyBhIGxlZ2FsIGRlc2NyaXB0aW9uLgorICAgICAgICAgKiA8bGk+U3BsaXQgdGhlIGRlc2NyaXB0aW9uIGludG8gc2VwYXJhdGUgcnVsZXMKKyAgICAgICAgICogPGxpPlBlcmZvcm0gdmFyaWFibGUtbmFtZSBzdWJzdGl0dXRpb25zIChzbyB0aGF0IG5vIG9uZSBlbHNlIHNlZXMgdmFyaWFibGUgbmFtZXMpCisgICAgICAgICAqIDwvdWw+CisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIFZlY3RvciBidWlsZFJ1bGVMaXN0KFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgLy8gaW52YXJpYW50czoKKyAgICAgICAgICAgIC8vIC0gcGFyZW50aGVzZXMgbXVzdCBiZSBiYWxhbmNlZDogKClbXXt9PD4KKyAgICAgICAgICAgIC8vIC0gbm90aGluZyBjYW4gYmUgbmVzdGVkIGluc2lkZSB7fQorICAgICAgICAgICAgLy8gLSBub3RoaW5nIGNhbiBiZSBuZXN0ZWQgaW5zaWRlIFtdIGV4Y2VwdCBtb3JlIFtdcworICAgICAgICAgICAgLy8gLSBwYWlycyBvZiAoKVtde308PiBtdXN0IG5vdCBiZSBlbXB0eQorICAgICAgICAgICAgLy8gLSA7IGNhbiBvbmx5IG9jY3VyIGF0IHRoZSBvdXRlciBsZXZlbAorICAgICAgICAgICAgLy8gLSB8IGNhbiBvbmx5IGFwcGVhciBpbnNpZGUgKCkKKyAgICAgICAgICAgIC8vIC0gb25seSBvbmUgPSBvciAvIGNhbiBvY2N1ciBpbiBhIHNpbmdsZSBydWxlCisgICAgICAgICAgICAvLyAtID0gYW5kIC8gY2Fubm90IGJvdGggb2NjdXIgaW4gdGhlIHNhbWUgcnVsZQorICAgICAgICAgICAgLy8gLSB0aGUgcmlnaHQtaGFuZCBzaWRlIG9mIGEgPSBleHByZXNzaW9uIG11c3QgYmUgZW5jbG9zZWQgaW4gW10gb3IgKCkKKyAgICAgICAgICAgIC8vIC0gKiBtYXkgbm90IG9jY3VyIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBydWxlLCBub3IgbWF5IGl0IGZvbGxvdworICAgICAgICAgICAgLy8gICA9LCAvLCAoLCAoLCB8LCB9LCA7LCBvciAqCisgICAgICAgICAgICAvLyAtID8gbWF5IG9ubHkgZm9sbG93ICoKKyAgICAgICAgICAgIC8vIC0gdGhlIHJ1bGUgbGlzdCBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIC8gcnVsZQorICAgICAgICAgICAgLy8gLSBubyBydWxlIG1heSBiZSBlbXB0eQorICAgICAgICAgICAgLy8gLSBhbGwgcHJpbnRpbmcgY2hhcmFjdGVycyBpbiB0aGUgQVNDSUkgcmFuZ2UgZXhjZXB0IGxldHRlcnMgYW5kIGRpZ2l0cworICAgICAgICAgICAgLy8gICBhcmUgcmVzZXJ2ZWQgYW5kIG11c3QgYmUgcHJlY2VkZWQgYnkgXAorICAgICAgICAgICAgLy8gLSAhIG1heSBvbmx5IG9jY3VyIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBydWxlCisKKyAgICAgICAgICAgIC8vIHNldCB1cCBhIHZlY3RvciB0byBjb250YWluIHRoZSBicm9rZW4tdXAgZGVzY3JpcHRpb24gKGVhY2ggZW50cnkgaW4gdGhlCisgICAgICAgICAgICAvLyB2ZWN0b3IgaXMgYSBzZXBhcmF0ZSBydWxlKSBhbmQgYSBzdGFjayBmb3Iga2VlcGluZyB0cmFjayBvZiBvcGVuaW5nCisgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbgorICAgICAgICAgICAgVmVjdG9yIHRlbXBSdWxlTGlzdCA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIFN0YWNrIHBhcmVuU3RhY2sgPSBuZXcgU3RhY2soKTsKKworICAgICAgICAgICAgaW50IHAgPSAwOworICAgICAgICAgICAgaW50IHJ1bGVTdGFydCA9IDA7CisgICAgICAgICAgICBjaGFyIGMgPSAnXHUwMDAwJzsKKyAgICAgICAgICAgIGNoYXIgbGFzdEMgPSAnXHUwMDAwJzsKKyAgICAgICAgICAgIGNoYXIgbGFzdE9wZW4gPSAnXHUwMDAwJzsKKyAgICAgICAgICAgIGJvb2xlYW4gaGF2ZUVxdWFscyA9IGZhbHNlOworICAgICAgICAgICAgYm9vbGVhbiBoYXZlUGlwZSA9IGZhbHNlOworICAgICAgICAgICAgYm9vbGVhbiBzYXdWYXJOYW1lID0gZmFsc2U7CisgICAgICAgICAgICBib29sZWFuIHNhd0lsbGVnYWxDaGFyID0gZmFsc2U7CisgICAgICAgICAgICBpbnQgaWxsZWdhbENoYXJQb3MgPSAwOworICAgICAgICAgICAgZmluYWwgU3RyaW5nIGNoYXJzVGhhdENhbnRQcmVjZWRlQXN0ZXJpc2sgPSAiPS88KHw+Kis/O1x1MDAwMCI7CisKKyAgICAgICAgICAgIC8vIGlmIHRoZSBkZXNjcmlwdGlvbiBkb2Vzbid0IGVuZCB3aXRoIGEgc2VtaWNvbG9uLCB0YWNrIGEgc2VtaWNvbG9uIG9udG8gdGhlIGVuZAorICAgICAgICAgICAgaWYgKGRlc2NyaXB0aW9uLmxlbmd0aCgpICE9IDAgJiYgZGVzY3JpcHRpb24uY2hhckF0KGRlc2NyaXB0aW9uLmxlbmd0aCgpIC0gMSkgIT0gJzsnKSB7CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbiArICI7IjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gZm9yIGVhY2ggY2hhcmFjdGVyLCBkby4uLgorICAgICAgICAgICAgd2hpbGUgKHAgPCBkZXNjcmlwdGlvbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGMgPSBkZXNjcmlwdGlvbi5jaGFyQXQocCk7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjaGFyYWN0ZXIgaXMgb3BlbmluZyBwdW5jdHVhdGlvbiwgdmVyaWZ5IHRoYXQgbm8gbmVzdGluZworICAgICAgICAgICAgICAgICAgICAvLyBydWxlcyBhcmUgYnJva2VuLCBhbmQgcHVzaCB0aGUgY2hhcmFjdGVyIG9udG8gdGhlIHN0YWNrCisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3snOgorICAgICAgICAgICAgICAgICAgICBjYXNlICdbJzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnKCc6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFzdE9wZW4gPT0gJ3snKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoIkNhbid0IG5lc3QgYnJhY2tldHMgaW5zaWRlIHt9IiwgcCwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RPcGVuID09ICdbJyAmJiBjICE9ICdbJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCJDYW4ndCBuZXN0IGFueXRoaW5nIGluIFtdIGJ1dCBbXSIsIHAsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2Ugc2VlIHsgYW55d2hlcmUgZXhjZXB0IG9uIHRoZSBsZWZ0LWhhbmQgc2lkZSBvZiA9LAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgbXVzdCBiZSBzZWVpbmcgYSB2YXJpYWJsZSBuYW1lIHRoYXQgd2FzIG5ldmVyIGRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICd7JyAmJiAoaGF2ZUVxdWFscyB8fCBoYXZlUGlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcigiVW5rbm93biB2YXJpYWJsZSBuYW1lIiwgcCwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0T3BlbiA9IGM7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJlblN0YWNrLnB1c2gobmV3IENoYXJhY3RlcihjKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAneycpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYXdWYXJOYW1lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjaGFyYWN0ZXIgaXMgY2xvc2luZyBwdW5jdHVhdGlvbiwgdmVyaWZ5IHRoYXQgaXQgbWF0Y2hlcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gbGFzdCBvcGVuaW5nIHB1bmN0dWF0aW9uIHdlIHNhdywgYW5kIHRoYXQgdGhlIGJyYWNrZXRzIGNvbnRhaW4KKyAgICAgICAgICAgICAgICAgICAgLy8gc29tZXRoaW5nLCB0aGVuIHBvcCB0aGUgc3RhY2sKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnfSc6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ10nOgorICAgICAgICAgICAgICAgICAgICBjYXNlICcpJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgZXhwZWN0ZWRDbG9zZSA9ICdcdTAwMDAnOworICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChsYXN0T3BlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3snOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZENsb3NlID0gJ30nOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdbJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRDbG9zZSA9ICddJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnKCc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkQ2xvc2UgPSAnKSc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gZXhwZWN0ZWRDbG9zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCJVbmJhbGFuY2VkIHBhcmVudGhlc2VzIiwgcCwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RDID09IGxhc3RPcGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoIlBhcmVucyBkb24ndCBjb250YWluIGFueXRoaW5nIiwgcCwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW5TdGFjay5wb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGFyZW5TdGFjay5lbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE9wZW4gPSAoKENoYXJhY3RlcikocGFyZW5TdGFjay5wZWVrKCkpKS5jaGFyVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RPcGVuID0gJ1x1MDAwMCc7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYW4gYXN0ZXJpc2ssIG1ha2Ugc3VyZSBpdCBvY2N1cnMgaW4gYSBwbGFjZQorICAgICAgICAgICAgICAgICAgICAvLyB3aGVyZSBhbiBhc3RlcmlzayBjYW4gbGVnYWxseSBnbworICAgICAgICAgICAgICAgICAgICBjYXNlICcqJzogY2FzZSAnKyc6IGNhc2UgJz8nOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoYXJzVGhhdENhbnRQcmVjZWRlQXN0ZXJpc2suaW5kZXhPZihsYXN0QykgIT0gLTEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGMgIT0gJz8nIHx8IGxhc3RDICE9ICcqJykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcigiTWlzcGxhY2VkICosICssIG9yID8iLCBwLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgY2hhcmFjdGVyIGlzIGFuIGVxdWFscyBzaWduLCBtYWtlIHN1cmUgd2UgaGF2ZW4ndCBzZWVuIGFub3RoZXIKKyAgICAgICAgICAgICAgICAgICAgLy8gZXF1YWxzIHNpZ24gb3IgYSBzbGFzaCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnPSc6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGF2ZUVxdWFscyB8fCBoYXZlUGlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCJNb3JlIHRoYW4gb25lID0gb3IgLyBpbiBydWxlIiwgcCwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZUVxdWFscyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBzYXdJbGxlZ2FsQ2hhciA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciBpcyBhIHNsYXNoLCBtYWtlIHN1cmUgd2UgaGF2ZW4ndCBzZWVuIGFub3RoZXIgc2xhc2gKKyAgICAgICAgICAgICAgICAgICAgLy8gb3IgYW4gZXF1YWxzIHNpZ24geWV0CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJy8nOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVFcXVhbHMgfHwgaGF2ZVBpcGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcigiTW9yZSB0aGFuIG9uZSA9IG9yIC8gaW4gcnVsZSIsIHAsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzYXdWYXJOYW1lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoIlVua25vd24gdmFyaWFibGUgbmFtZSIsIHAsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVQaXBlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYW4gZXhjbGFtYXRpb24gcG9pbnQsIG1ha2Ugc3VyZSBpdCBvY2N1cnMgb25seQorICAgICAgICAgICAgICAgICAgICAvLyBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgcnVsZQorICAgICAgICAgICAgICAgICAgICBjYXNlICchJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0QyAhPSAnOycgJiYgbGFzdEMgIT0gJ1x1MDAwMCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcigiISBjYW4gb25seSBvY2N1ciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgcnVsZSIsIHAsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYSBiYWNrc2xhc2gsIHNraXAgdGhlIGNoYXJhY3RlciB0aGF0IGZvbGxvd3MgaXQKKyAgICAgICAgICAgICAgICAgICAgLy8gKGl0J2xsIGdldCB0cmVhdGVkIGFzIGEgbGl0ZXJhbCBjaGFyYWN0ZXIpCisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1xcJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbCBvbiBhIHBlcmlvZAorICAgICAgICAgICAgICAgICAgICBjYXNlICcuJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjaGFyYWN0ZXIgaXMgYSBzeW50YXggY2hhcmFjdGVyIHRoYXQgY2FuIG9ubHkgb2NjdXIKKyAgICAgICAgICAgICAgICAgICAgLy8gaW5zaWRlIFtdLCBtYWtlIHN1cmUgdGhhdCBpdCBkb2VzIGluIGZhY3Qgb25seSBvY2N1ciBpbnNpZGUgW10KKyAgICAgICAgICAgICAgICAgICAgLy8gKG9yIGluIGEgdmFyaWFibGUgbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnXic6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJy0nOgorICAgICAgICAgICAgICAgICAgICBjYXNlICc6JzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnJic6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFzdE9wZW4gIT0gJ1snICYmIGxhc3RPcGVuICE9ICd7JyAmJiAhc2F3SWxsZWdhbENoYXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYXdJbGxlZ2FsQ2hhciA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWxsZWdhbENoYXJQb3MgPSBwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciBpcyBhIHNlbWljb2xvbiwgZG8gdGhlIGZvbGxvd2luZy4uLgorICAgICAgICAgICAgICAgICAgICBjYXNlICc7JzoKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlIHNhdyBhbnkgaWxsZWdhbCBjaGFyYWN0ZXJzIGFsb25nIHRoZSB3YXksIHRocm93CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbiBlcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNhd0lsbGVnYWxDaGFyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoIklsbGVnYWwgY2hhcmFjdGVyIiwgaWxsZWdhbENoYXJQb3MsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZSBydWxlIGNvbnRhaW5zIHNvbWV0aGluZyBhbmQgdGhhdCB0aGVyZSBhcmUgbm8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVuYmFsYW5jZWQgcGFyZW50aGVzZXMgb3IgYnJhY2tldHMKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0QyA9PSAnOycgfHwgbGFzdEMgPT0gJ1x1MDAwMCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcigiRW1wdHkgcnVsZSIsIHAsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGFyZW5TdGFjay5lbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoIlVuYmFsYW5jZWQgcGFyZW5oZXNlcyIsIHAsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVuU3RhY2suZW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBydWxlIGNvbnRhaW5lZCBhbiA9IHNpZ24sIGNhbGwgcHJvY2Vzc1N1YnN0aXR1dGlvbigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gcmVwbGFjZSB0aGUgc3Vic3RpdHV0aW9uIG5hbWUgd2l0aCB0aGUgc3Vic3RpdHV0aW9uIHRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGVyZXZlciBpdCBhcHBlYXJzIGluIHRoZSBkZXNjcmlwdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXZlRXF1YWxzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gcHJvY2Vzc1N1YnN0aXR1dGlvbihkZXNjcmlwdGlvbi5zdWJzdHJpbmcocnVsZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCksIGRlc2NyaXB0aW9uLCBwICsgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UsIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgcnVsZSBkb2Vzbid0IHJlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbnkgdW5kZWZpbmVkIHN1YnN0aXR1dGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNhd1Zhck5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCJVbmtub3duIHZhcmlhYmxlIG5hbWUiLCBwLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVuIGFkZCBpdCB0byB0ZW1wUnVsZUxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFJ1bGVMaXN0LmFkZEVsZW1lbnQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKHJ1bGVTdGFydCwgcCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCByZXNldCBldmVyeXRoaW5nIHRvIHByb2Nlc3MgdGhlIG5leHQgcnVsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVTdGFydCA9IHAgKyAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVFcXVhbHMgPSBoYXZlUGlwZSA9IHNhd1Zhck5hbWUgPSBzYXdJbGxlZ2FsQ2hhciA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciBpcyBhIHZlcnRpY2FsIGJhciwgY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgaXQKKyAgICAgICAgICAgICAgICAgICAgLy8gb2NjdXJzIGluc2lkZSBhICgpIGV4cHJlc3Npb24gYW5kIHRoYXQgdGhlIGNoYXJhY3RlciB0aGF0IHByZWNlZGVzCisgICAgICAgICAgICAgICAgICAgIC8vIGl0IGlzbid0IGFsc28gYSB2ZXJ0aWNhbCBiYXIKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnfCc6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFzdEMgPT0gJ3wnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoIkVtcHR5IGFsdGVybmF0aXZlIiwgcCwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVuU3RhY2suZW1wdHkoKSB8fCBsYXN0T3BlbiAhPSAnKCcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcigiTWlzcGxhY2VkIHwiLCBwLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgY2hhcmFjdGVyIGlzIGFueXRoaW5nIGVsc2UgKGVzY2FwZWQgY2hhcmFjdGVycyBhcmUKKyAgICAgICAgICAgICAgICAgICAgLy8gc2tpcHBlZCBhbmQgZG9uJ3QgbWFrZSBpdCBoZXJlKSwgaXQncyBhbiBlcnJvcgorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPj0gJyAnICYmIGMgPCAnXHUwMDdmJyAmJiAhQ2hhcmFjdGVyLmlzTGV0dGVyKGMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICFDaGFyYWN0ZXIuaXNEaWdpdChjKSAmJiAhc2F3SWxsZWdhbENoYXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYXdJbGxlZ2FsQ2hhciA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWxsZWdhbENoYXJQb3MgPSBwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxhc3RDID0gYzsKKyAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGVtcFJ1bGVMaXN0LnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZXJyb3IoIk5vIHZhbGlkIHJ1bGVzIGluIGRlc2NyaXB0aW9uIiwgcCwgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRlbXBSdWxlTGlzdDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIHZhcmlhYmxlLW5hbWUgc3Vic3RpdHV0aW9ucy4gIEZpcnN0IGl0IGRvZXMgc3ludGF4CisgICAgICAgICAqIGNoZWNraW5nIG9uIHRoZSB2YXJpYWJsZS1uYW1lIGRlZmluaXRpb24uICBJZiBpdCdzIHN5bnRhY3RpY2FsbHkgdmFsaWQsIGl0CisgICAgICAgICAqIHRoZW4gZ29lcyB0aHJvdWdoIHRoZSByZW1haW5kZXIgb2YgdGhlIGRlc2NyaXB0aW9uIGFuZCBkb2VzIGEgc2ltcGxlCisgICAgICAgICAqIGZpbmQtYW5kLXJlcGxhY2Ugb2YgdGhlIHZhcmlhYmxlIG5hbWUgd2l0aCBpdHMgdGV4dC4gIChUaGUgdmFyaWFibGUgdGV4dAorICAgICAgICAgKiBtdXN0IGJlIGVuY2xvc2VkIGluIGVpdGhlciBbXSBvciAoKSBmb3IgdGhpcyB0byB3b3JrLikKKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIHByb2Nlc3NTdWJzdGl0dXRpb24oU3RyaW5nIHN1YnN0aXR1dGlvblJ1bGUsIFN0cmluZyBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydFBvcykgeworICAgICAgICAgICAgLy8gaXNvbGF0ZSBvdXQgdGhlIHRleHQgb24gZWl0aGVyIHNpZGUgb2YgdGhlIGVxdWFscyBzaWduCisgICAgICAgICAgICBTdHJpbmcgcmVwbGFjZTsKKyAgICAgICAgICAgIFN0cmluZyByZXBsYWNlV2l0aDsKKyAgICAgICAgICAgIGludCBlcXVhbFBvcyA9IHN1YnN0aXR1dGlvblJ1bGUuaW5kZXhPZignPScpOworICAgICAgICAgICAgaWYgKHN1YnN0aXR1dGlvblJ1bGUuY2hhckF0KDApICE9ICckJykgeworICAgICAgICAgICAgICAgIGVycm9yKCJNaXNzaW5nICckJyBvbiBsZWZ0LWhhbmQgc2lkZSBvZiA9Iiwgc3RhcnRQb3MsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlcGxhY2UgPSBzdWJzdGl0dXRpb25SdWxlLnN1YnN0cmluZygxLCBlcXVhbFBvcyk7CisgICAgICAgICAgICByZXBsYWNlV2l0aCA9IHN1YnN0aXR1dGlvblJ1bGUuc3Vic3RyaW5nKGVxdWFsUG9zICsgMSk7CisKKyAgICAgICAgICAgIC8vIGNoZWNrIHRvIHNlZSB3aGV0aGVyIHRoZSBzdWJzdGl0dXRpb24gbmFtZSBpcyBzb21ldGhpbmcgd2UndmUgZGVjbGFyZWQKKyAgICAgICAgICAgIC8vIHRvIGJlICJzcGVjaWFsIi4gIEZvciBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGl0c2VsZiwgdGhpcyBpcyBJR05PUkVfVkFSLgorICAgICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiB0YWtlcyBjYXJlIG9mIGFueSBleHRyYSBwcm9jZXNzaW5nIHRoYXQgaGFzIHRvIGJlIGRvbmUKKyAgICAgICAgICAgIC8vIHdpdGggInNwZWNpYWwiIHN1YnN0aXR1dGlvbiBuYW1lcy4KKyAgICAgICAgICAgIGhhbmRsZVNwZWNpYWxTdWJzdGl0dXRpb24ocmVwbGFjZSwgcmVwbGFjZVdpdGgsIHN0YXJ0UG9zLCBkZXNjcmlwdGlvbik7CisKKyAgICAgICAgICAgIC8vIHBlcmZvcm0gdmFyaW91cyBvdGhlciBzeW50YXggY2hlY2tzIG9uIHRoZSBydWxlCisgICAgICAgICAgICBpZiAocmVwbGFjZVdpdGgubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGVycm9yKCJOb3RoaW5nIG9uIHJpZ2h0LWhhbmQgc2lkZSBvZiA9Iiwgc3RhcnRQb3MsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChyZXBsYWNlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICBlcnJvcigiTm90aGluZyBvbiBsZWZ0LWhhbmQgc2lkZSBvZiA9Iiwgc3RhcnRQb3MsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghKHJlcGxhY2VXaXRoLmNoYXJBdCgwKSA9PSAnWycgJiYgcmVwbGFjZVdpdGguY2hhckF0KHJlcGxhY2VXaXRoLmxlbmd0aCgpIC0gMSkKKyAgICAgICAgICAgICAgICAgICAgPT0gJ10nKSAmJiAhKHJlcGxhY2VXaXRoLmNoYXJBdCgwKSA9PSAnKCcgJiYgcmVwbGFjZVdpdGguY2hhckF0KAorICAgICAgICAgICAgICAgICAgICByZXBsYWNlV2l0aC5sZW5ndGgoKSAtIDEpID09ICcpJykpIHsKKyAgICAgICAgICAgICAgICBlcnJvcigiSWxsZWdhbCByaWdodC1oYW5kIHNpZGUgZm9yID0iLCBzdGFydFBvcywgZGVzY3JpcHRpb24pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBub3cgZ28gdGhyb3VnaCB0aGUgcmVzdCBvZiB0aGUgZGVzY3JpcHRpb24gKHdoaWNoIGhhc24ndCBiZWVuIGJyb2tlbiB1cAorICAgICAgICAgICAgLy8gaW50byBzZXBhcmF0ZSBydWxlcyB5ZXQpIGFuZCByZXBsYWNlIGV2ZXJ5IG9jY3VycmVuY2Ugb2YgdGhlCisgICAgICAgICAgICAvLyBzdWJzdGl0dXRpb24gbmFtZSB3aXRoIHRoZSBzdWJzdGl0dXRpb24gYm9keQorICAgICAgICAgICAgcmVwbGFjZSA9ICIkIiArIHJlcGxhY2U7CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChkZXNjcmlwdGlvbi5zdWJzdHJpbmcoMCwgc3RhcnRQb3MpKTsKKyAgICAgICAgICAgIGludCBsYXN0UG9zID0gc3RhcnRQb3M7CisgICAgICAgICAgICBpbnQgcG9zID0gZGVzY3JpcHRpb24uaW5kZXhPZihyZXBsYWNlLCBzdGFydFBvcyk7CisgICAgICAgICAgICB3aGlsZSAocG9zICE9IC0xKSB7CisgICAgICAgICAgICAgICAgLy8gW2xpdV0gQ2hlY2sgdGhhdCB0aGUgc3RyaW5nIHdlJ3ZlIGZvdW5kIGlzbid0IGEgcmVkZWZpbml0aW9uCisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHZhcmlhYmxlLgorICAgICAgICAgICAgICAgIGlmIChkZXNjcmlwdGlvbi5jaGFyQXQocG9zLTEpID09ICc7JyAmJgorICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbi5jaGFyQXQocG9zICsgcmVwbGFjZS5sZW5ndGgoKSkgPT0gJz0nKSB7CisgICAgICAgICAgICAgICAgICAgIGVycm9yKCJBdHRlbXB0IHRvIHJlZGVmaW5lICIgKyByZXBsYWNlLCBwb3MsIGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChkZXNjcmlwdGlvbi5zdWJzdHJpbmcobGFzdFBvcywgcG9zKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChyZXBsYWNlV2l0aCk7CisgICAgICAgICAgICAgICAgbGFzdFBvcyA9IHBvcyArIHJlcGxhY2UubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgcG9zID0gZGVzY3JpcHRpb24uaW5kZXhPZihyZXBsYWNlLCBsYXN0UG9zKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZGVzY3JpcHRpb24uc3Vic3RyaW5nKGxhc3RQb3MpKTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGRlZmluZXMgYSBwcm90b2NvbCBmb3IgaGFuZGxpbmcgc3Vic3RpdHV0aW9uIG5hbWVzIHRoYXQKKyAgICAgICAgICogYXJlICJzcGVjaWFsLCIgaS5lLiwgdGhhdCBoYXZlIHNvbWUgcHJvcGVydHkgYmV5b25kIGp1c3QgYmVpbmcKKyAgICAgICAgICogc3Vic3RpdHV0aW9ucy4gIEF0IHRoZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yX09sZCBsZXZlbCwgd2UgaGF2ZSBvbmUKKyAgICAgICAgICogc3BlY2lhbCBzdWJzdGl0dXRpb24gbmFtZSwgSUdOT1JFX1ZBUi4gIFN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMKKyAgICAgICAgICogZnVuY3Rpb24gdG8gYWRkIG1vcmUuICBBbnkgc3BlY2lhbCBwcm9jZXNzaW5nIHRoYXQgaGFzIHRvIGdvIG9uIGJleW9uZAorICAgICAgICAgKiB0aGF0IHdoaWNoIGlzIGRvbmUgYnkgdGhlIG5vcm1hbCBzdWJzdGl0dXRpb24tcHJvY2Vzc2luZyBjb2RlIGlzIGRvbmUKKyAgICAgICAgICogaGVyZS4KKyAgICAgICAgICogQGludGVybmFsCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVTcGVjaWFsU3Vic3RpdHV0aW9uKFN0cmluZyByZXBsYWNlLCBTdHJpbmcgcmVwbGFjZVdpdGgsCisgICAgICAgICAgICAgICAgICAgIGludCBzdGFydFBvcywgU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgICAvLyBpZiB3ZSBnZXQgYSBkZWZpbml0aW9uIGZvciBhIHN1YnN0aXR1dGlvbiBjYWxsZWQgSUdOT1JFX1ZBUiwgaXQgZGVmaW5lcworICAgICAgICAgICAgLy8gdGhlIGlnbm9yZSBjaGFyYWN0ZXJzIGZvciB0aGUgaXRlcmF0b3IuICBDaGVjayB0byBtYWtlIHN1cmUgdGhlIGV4cHJlc3Npb24KKyAgICAgICAgICAgIC8vIGlzIGEgW10gZXhwcmVzc2lvbiwgYW5kIGlmIGl0IGlzLCBwYXJzZSBpdCBhbmQgc3RvcmUgdGhlIGNoYXJhY3RlcnMgb2ZmCisgICAgICAgICAgICAvLyB0byB0aGUgc2lkZS4KKyAgICAgICAgICAgIGlmIChyZXBsYWNlLmVxdWFscyhJR05PUkVfVkFSKSkgeworICAgICAgICAgICAgICAgIGlmIChyZXBsYWNlV2l0aC5jaGFyQXQoMCkgPT0gJygnKSB7CisgICAgICAgICAgICAgICAgICAgIGVycm9yKCJJZ25vcmUgZ3JvdXAgY2FuJ3QgYmUgZW5jbG9zZWQgaW4gKCIsIHN0YXJ0UG9zLCBkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlnbm9yZUNoYXJzID0gbmV3IFVuaWNvZGVTZXQocmVwbGFjZVdpdGgsIGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIGJ1aWxkcyB0aGUgY2hhcmFjdGVyIGNhdGVnb3J5IHRhYmxlLiAgT24gZW50cnksCisgICAgICAgICAqIHRlbXBSdWxlTGlzdCBpcyBhIHZlY3RvciBvZiBicmVhayBydWxlcyB0aGF0IGhhcyBoYWQgdmFyaWFibGUgbmFtZXMgc3Vic3RpdHV0ZWQuCisgICAgICAgICAqIE9uIGV4aXQsIHRoZSBjaGFyQ2F0ZWdvcnlUYWJsZSBkYXRhIG1lbWJlciBoYXMgYmVlbiBpbml0aWFsaXplZCB0byBob2xkIHRoZQorICAgICAgICAgKiBjaGFyYWN0ZXIgY2F0ZWdvcnkgdGFibGUsIGFuZCB0ZW1wUnVsZUxpc3QncyBydWxlcyBoYXZlIGJlZW4gbXVuZ2VkIHRvIGNvbnRhaW4KKyAgICAgICAgICogY2hhcmFjdGVyIGNhdGVnb3J5IG51bWJlcnMgZXZlcnl3aGVyZSBhIGxpdGVyYWwgY2hhcmFjdGVyIG9yIGEgW10gZXhwcmVzc2lvbgorICAgICAgICAgKiBvcmlnaW5hbGx5IG9jY3VycmVkLgorICAgICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCB2b2lkIGJ1aWxkQ2hhckNhdGVnb3JpZXMoVmVjdG9yIHRlbXBSdWxlTGlzdCkgeworICAgICAgICAgICAgaW50IGJyYWNrZXRMZXZlbCA9IDA7CisgICAgICAgICAgICBpbnQgcCA9IDA7CisgICAgICAgICAgICBpbnQgbGluZU51bSA9IDA7CisKKyAgICAgICAgICAgIC8vIGJ1aWxkIGhhc2ggdGFibGUgb2YgZXZlcnkgbGl0ZXJhbCBjaGFyYWN0ZXIgb3IgW10gZXhwcmVzc2lvbiBpbiB0aGUgcnVsZSBsaXN0CisgICAgICAgICAgICAvLyBhbmQgZGVyaXZlIGEgVW5pY29kZVNldCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBjaGFyYWN0ZXJzIGVhY2ggcmVmZXJzIHRvCisgICAgICAgICAgICBleHByZXNzaW9ucyA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgICAgIHdoaWxlIChsaW5lTnVtIDwgdGVtcFJ1bGVMaXN0LnNpemUoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBsaW5lID0gKFN0cmluZykodGVtcFJ1bGVMaXN0LmVsZW1lbnRBdChsaW5lTnVtKSk7CisgICAgICAgICAgICAgICAgcCA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKHAgPCBsaW5lLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IGxpbmUuY2hhckF0KHApOworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNraXAgb3ZlciBhbGwgc3ludGF4IGNoYXJhY3RlcnMgZXhjZXB0IFsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJygnOiBjYXNlICcpJzogY2FzZSAnKic6IGNhc2UgJy4nOiBjYXNlICcvJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3wnOiBjYXNlICc7JzogY2FzZSAnPyc6IGNhc2UgJyEnOiBjYXNlICcrJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIFssIGZpbmQgdGhlIG1hdGNoaW5nIF0gKHRha2luZyBuZXN0ZWQgW10gcGFpcnMgaW50byBhY2NvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGFkZCB0aGUgd2hvbGUgZXhwcmVzc2lvbiB0byB0aGUgZXhwcmVzc2lvbiBsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdbJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcSA9IHAgKyAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrYnJhY2tldExldmVsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChxIDwgbGluZS5sZW5ndGgoKSAmJiBicmFja2V0TGV2ZWwgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gbGluZS5jaGFyQXQocSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICdbJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyticmFja2V0TGV2ZWw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSAnXScpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tYnJhY2tldExldmVsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4cHJlc3Npb25zLmdldChsaW5lLnN1YnN0cmluZyhwLCBxKSkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9ucy5wdXQobGluZS5zdWJzdHJpbmcocCwgcSksIG5ldyBVbmljb2RlU2V0KGxpbmUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzdHJpbmcocCwgcSksIGZhbHNlKSk7CisvL1Rlc3QuZGVidWdQcmludGxuKCIxLiBBZGRpbmcgZXhwcmVzc2lvbjogIiArIGxpbmUuc3Vic3RyaW5nKHAsIHEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCA9IHEgLSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgXCBzZXF1ZW5jZXMsIGp1c3QgbW92ZSB0byB0aGUgbmV4dCBjaGFyYWN0ZXIgYW5kIHRyZWF0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCBhcyBhIHNpbmdsZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1xcJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGxpbmUuY2hhckF0KHApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERPTidUIGJyZWFrOyBmYWxsIHRocm91Z2ggaW50byAiZGVmYXVsdCIgY2xhdXNlCisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBhbiBpc29sYXRlZCBzaW5nbGUgY2hhcmFjdGVyLCBhZGQgaXQgdG8gdGhlIGV4cHJlc3Npb24gbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHMgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuYWRkKGxpbmUuY2hhckF0KHApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9ucy5wdXQobGluZS5zdWJzdHJpbmcocCwgcCArIDEpLCBzKTsKKy8vVGVzdC5kZWJ1Z1ByaW50bG4oIjIuIEFkZGluZyBleHByZXNzaW9uOiAiICsgbGluZS5zdWJzdHJpbmcocCwgcCArIDEpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICsrbGluZU51bTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY3JlYXRlIHRoZSB0ZW1wb3JhcnkgY2F0ZWdvcnkgdGFibGUgKHdoaWNoIGlzIGEgdmVjdG9yIG9mIFVuaWNvZGVTZXQgb2JqZWN0cykKKyAgICAgICAgICAgIGNhdGVnb3JpZXMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICBpZiAoaWdub3JlQ2hhcnMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGNhdGVnb3JpZXMuYWRkRWxlbWVudChpZ25vcmVDaGFycyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZEVsZW1lbnQobmV3IFVuaWNvZGVTZXQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZ25vcmVDaGFycyA9IG51bGw7CisKKyAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBob29rIHRvIGFsbG93IHN1YmNsYXNzZXMgdG8gYWRkIGNhdGVnb3JpZXMgb24gdGhlaXIgb3duCisgICAgICAgICAgICBtdW5nZUV4cHJlc3Npb25MaXN0KGV4cHJlc3Npb25zKTsKKworICAgICAgICAgICAgLy8gRGVyaXZlIHRoZSBjaGFyYWN0ZXIgY2F0ZWdvcmllcy4gIEdvIHRocm91Z2ggdGhlIGV4aXN0aW5nIGNoYXJhY3RlciBjYXRlZ29yaWVzCisgICAgICAgICAgICAvLyBsb29raW5nIGZvciBvdmVybGFwLiAgQW55IHRpbWUgdGhlcmUncyBvdmVybGFwLCB3ZSBjcmVhdGUgYSBuZXcgY2hhcmFjdGVyCisgICAgICAgICAgICAvLyBjYXRlZ29yeSBmb3IgdGhlIGNoYXJhY3RlcnMgdGhhdCBvdmVybGFwcGVkIGFuZCByZW1vdmUgdGhlbSBmcm9tIHRoZWlyIG9yaWdpbmFsCisgICAgICAgICAgICAvLyBjYXRlZ29yeS4gIEF0IHRoZSBlbmQsIGFueSBjaGFyYWN0ZXJzIHRoYXQgYXJlIGxlZnQgaW4gdGhlIGV4cHJlc3Npb24gaGF2ZW4ndAorICAgICAgICAgICAgLy8gYmVlbiBtZW50aW9uZWQgaW4gYW55IGNhdGVnb3J5LCBzbyBhbm90aGVyIG5ldyBjYXRlZ29yeSBpcyBjcmVhdGVkIGZvciB0aGVtLgorICAgICAgICAgICAgLy8gRm9yIGV4YW1wbGUsIGlmIHRoZSBmaXJzdCBleHByZXNzaW9uIGlzIFthYmNdLCB0aGVuIGEsIGIsIGFuZCBjIHdpbGwgYmUgcGxhY2VkCisgICAgICAgICAgICAvLyBpbnRvIGEgc2luZ2xlIGNoYXJhY3RlciBjYXRlZ29yeS4gIElmIHRoZSBuZXh0IGV4cHJlc3Npb24gaXMgW2JjZF0sIHdlIHdpbGwgZmlyc3QKKyAgICAgICAgICAgIC8vIHJlbW92ZSBiIGFuZCBjIGZyb20gdGhlaXIgZXhpc3RpbmcgY2F0ZWdvcnkgKGxlYXZpbmcgYSBiZWhpbmQpLCBjcmVhdGUgYSBuZXcKKyAgICAgICAgICAgIC8vIGNhdGVnb3J5IGZvciBiIGFuZCBjLCBhbmQgdGhlbiBjcmVhdGUgYW5vdGhlciBuZXcgY2F0ZWdvcnkgZm9yIGQgKHdoaWNoIGhhZG4ndAorICAgICAgICAgICAgLy8gYmVlbiBtZW50aW9uZWQgaW4gdGhlIHByZXZpb3VzIGV4cHJlc3Npb24pLgorICAgICAgICAgICAgLy8gQXQgbm8gdGltZSBzaG91bGQgYSBjaGFyYWN0ZXIgZXZlciBvY2N1ciBpbiBtb3JlIHRoYW4gb25lIGNoYXJhY3RlciBjYXRlZ29yeS4KKworICAgICAgICAgICAgLy8gZm9yIGVhY2ggZXhwcmVzc2lvbiBpbiB0aGUgZXhwcmVzc2lvbnMgbGlzdCwgZG8uLi4KKyAgICAgICAgICAgIEVudW1lcmF0aW9uIGl0ZXIgPSBleHByZXNzaW9ucy5lbGVtZW50cygpOworICAgICAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBpbml0aWFsaXplIHRoZSB3b3JraW5nIGNoYXIgc2V0IHRvIHRoZSBjaGFycyBpbiB0aGUgY3VycmVudCBleHByZXNzaW9uCisgICAgICAgICAgICAgICAgVW5pY29kZVNldCB3b3JrID0gbmV3IFVuaWNvZGVTZXQoKFVuaWNvZGVTZXQpaXRlci5uZXh0RWxlbWVudCgpKTsKKworICAgICAgICAgICAgICAgIC8vIGZvciBlYWNoIGNhdGVnb3J5IGluIHRoZSBjYXRlZ29yeSBsaXN0LCBkby4uLgorICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSBjYXRlZ29yaWVzLnNpemUoKSAtIDE7ICF3b3JrLmlzRW1wdHkoKSAmJiBqID4gMDsgai0tKSB7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUncyBvdmVybGFwIGJldHdlZW4gdGhlIGN1cnJlbnQgd29ya2luZyBzZXQgb2YgY2hhcnMKKyAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRoZSBjdXJyZW50IGNhdGVnb3J5Li4uCisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgY2F0ID0gKFVuaWNvZGVTZXQpKGNhdGVnb3JpZXMuZWxlbWVudEF0KGopKTsKKyAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBvdmVybGFwID0gaW50ZXJzZWN0aW9uKHdvcmssIGNhdCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFvdmVybGFwLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGN1cnJlbnQgY2F0ZWdvcnkgaXMgbm90IGEgc3Vic2V0IG9mIHRoZSBjdXJyZW50CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3b3JraW5nIHNldCBvZiBjaGFyYWN0ZXJzLCB0aGVuIHJlbW92ZSB0aGUgb3ZlcmxhcHBpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgZnJvbSB0aGUgY3VycmVudCBjYXRlZ29yeSBhbmQgY3JlYXRlIGEgbmV3CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXRlZ29yeSBmb3IgdGhlbQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvdmVybGFwLmVxdWFscyhjYXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0LnJlbW92ZUFsbChvdmVybGFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZEVsZW1lbnQob3ZlcmxhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBhbHdheXMgcmVtb3ZlIHRoZSBvdmVybGFwcGluZyBjaGFyYWN0ZXJzIGZyb20gdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdvcmtpbmcgc2V0IG9mIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIHdvcmsucmVtb3ZlQWxsKG92ZXJsYXApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgYXJlIHN0aWxsIGNoYXJhY3RlcnMgbGVmdCBpbiB0aGUgd29ya2luZyBjaGFyIHNldCwKKyAgICAgICAgICAgICAgICAvLyBhZGQgYSBuZXcgY2F0ZWdvcnkgY29udGFpbmluZyB0aGVtCisgICAgICAgICAgICAgICAgaWYgKCF3b3JrLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZEVsZW1lbnQod29yayk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyB3ZSBoYXZlIHRoZSBpZ25vcmUgY2hhcmFjdGVycyBzdG9yZWQgaW4gcG9zaXRpb24gMC4gIE1ha2UgYW4gZXh0cmEgcGFzcyB0aHJvdWdoCisgICAgICAgICAgICAvLyB0aGUgY2hhcmFjdGVyIGNhdGVnb3J5IGxpc3QgYW5kIHJlbW92ZSBhbnl0aGluZyBmcm9tIHRoZSBpZ25vcmUgbGlzdCB0aGF0IHNob3dzCisgICAgICAgICAgICAvLyB1cCBpbiBzb21lIG90aGVyIGNhdGVnb3J5CisgICAgICAgICAgICBVbmljb2RlU2V0IGFsbENoYXJzID0gbmV3IFVuaWNvZGVTZXQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgY2F0ZWdvcmllcy5zaXplKCk7IGkrKykKKyAgICAgICAgICAgICAgICBhbGxDaGFycy5hZGRBbGwoKFVuaWNvZGVTZXQpKGNhdGVnb3JpZXMuZWxlbWVudEF0KGkpKSk7CisgICAgICAgICAgICBVbmljb2RlU2V0IGlnbm9yZUNoYXJzID0gKFVuaWNvZGVTZXQpKGNhdGVnb3JpZXMuZWxlbWVudEF0KDApKTsKKyAgICAgICAgICAgIGlnbm9yZUNoYXJzLnJlbW92ZUFsbChhbGxDaGFycyk7CisKKyAgICAgICAgICAgIC8vIG5vdyB0aGF0IHdlJ3ZlIGRlcml2ZWQgdGhlIGNoYXJhY3RlciBjYXRlZ29yaWVzLCBnbyBiYWNrIHRocm91Z2ggdGhlIGV4cHJlc3Npb24KKyAgICAgICAgICAgIC8vIGxpc3QgYW5kIHJlcGxhY2UgZWFjaCBVbmljb2RlU2V0IG9iamVjdCB3aXRoIGEgU3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGUKKyAgICAgICAgICAgIC8vIGNoYXJhY3RlciBjYXRlZ29yaWVzIHRoYXQgZXhwcmVzc2lvbiByZWZlcnMgdG8uICBUaGUgU3RyaW5nIGlzIGVuY29kZWQ6IGVhY2gKKyAgICAgICAgICAgIC8vIGNoYXJhY3RlciBpcyBhIGNoYXJhY3RlciBjYXRlZ29yeSBudW1iZXIgKHBsdXMgMHgxMDAgdG8gYXZvaWQgY29uZnVzaW5nIHRoZW0KKyAgICAgICAgICAgIC8vIHdpdGggc3ludGF4IGNoYXJhY3RlcnMgaW4gdGhlIHJ1bGUgZ3JhbW1hcikKKyAgICAgICAgICAgIGl0ZXIgPSBleHByZXNzaW9ucy5rZXlzKCk7CisgICAgICAgICAgICB3aGlsZSAoaXRlci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKWl0ZXIubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IGNzID0gKFVuaWNvZGVTZXQpZXhwcmVzc2lvbnMuZ2V0KGtleSk7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGNhdHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgICAgICAgICAvLyBmb3IgZWFjaCBjYXRlZ29yeS4uLgorICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAxOyBqIDwgY2F0ZWdvcmllcy5zaXplKCk7IGorKykgeworICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IGNhdCA9IG5ldyBVbmljb2RlU2V0KChVbmljb2RlU2V0KSBjYXRlZ29yaWVzLmVsZW1lbnRBdChqKSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGN1cnJlbnQgZXhwcmVzc2lvbiBjb250YWlucyBjaGFyYWN0ZXJzIGluIHRoYXQgY2F0ZWdvcnkuLi4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNzLmNvbnRhaW5zQWxsKGNhdCkpIHsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiBhZGQgdGhlIGVuY29kZWQgY2F0ZWdvcnkgbnVtYmVyIHRvIHRoZSBTdHJpbmcgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGV4cHJlc3Npb24KKyAgICAgICAgICAgICAgICAgICAgICAgIGNhdHMuYXBwZW5kKChjaGFyKSgweDEwMCArIGopKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjcy5lcXVhbHMoY2F0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gb25jZSB3ZSd2ZSBmaW5pc2hlZCBidWlsZGluZyB0aGUgZW5jb2RlZCBTdHJpbmcgZm9yIHRoaXMgZXhwcmVzc2lvbiwKKyAgICAgICAgICAgICAgICAvLyByZXBsYWNlIHRoZSBVbmljb2RlU2V0IG9iamVjdCB3aXRoIGl0CisgICAgICAgICAgICAgICAgZXhwcmVzc2lvbnMucHV0KGtleSwgY2F0cy50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gYW5kIGZpbmFsbHksIHdlIHR1cm4gdGhlIHRlbXBvcmFyeSBjYXRlZ29yeSB0YWJsZSBpbnRvIGEgcGVybWFuZW50IGNhdGVnb3J5CisgICAgICAgICAgICAvLyB0YWJsZSwgd2hpY2ggaXMgYSBDb21wYWN0Qnl0ZUFycmF5LiAod2Ugc2tpcCBjYXRlZ29yeSAwLCB3aGljaCBieSBkZWZpbml0aW9uCisgICAgICAgICAgICAvLyByZWZlcnMgdG8gYWxsIGNoYXJhY3RlcnMgbm90IG1lbnRpb25lZCBzcGVjaWZpY2FsbHkgaW4gdGhlIHJ1bGVzKQorICAgICAgICAgICAgY2hhckNhdGVnb3J5VGFibGUgPSBuZXcgQ29tcGFjdEJ5dGVBcnJheSgoYnl0ZSkwKTsKKworICAgICAgICAgICAgLy8gZm9yIGVhY2ggY2F0ZWdvcnkuLi4KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2F0ZWdvcmllcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgY2hhcnMgPSAoVW5pY29kZVNldCkoY2F0ZWdvcmllcy5lbGVtZW50QXQoaSkpOworICAgICAgICAgICAgICAgIGludCBuID0gY2hhcnMuZ2V0UmFuZ2VDb3VudCgpOworCisgICAgICAgICAgICAgICAgLy8gZ28gdGhyb3VnaCB0aGUgY2hhcmFjdGVyIHJhbmdlcyBpbiB0aGUgY2F0ZWdvcnkgb25lIGJ5IG9uZS4uLgorICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbjsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgIGludCByYW5nZVN0YXJ0ID0gY2hhcnMuZ2V0UmFuZ2VTdGFydChqKTsKKworICAgICAgICAgICAgICAgICAgICAvLyAoaWdub3JlIGFueXRoaW5nIGFib3ZlIHRoZSBCTVAgZm9yIG5vdy4uLikKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJhbmdlU3RhcnQgPj0gMHgxMDAwMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBhbmQgc2V0IHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIGluIHRoZSBDb21wYWN0QXJyYXkgYWNjb3JkaW5nbHkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hhckNhdGVnb3J5VGFibGUuc2V0RWxlbWVudEF0KChjaGFyKXJhbmdlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpY2hhcnMuZ2V0UmFuZ2VFbmQoaiksIChieXRlKWkpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gKGNhdGVnb3J5IDAgaXMgc3BlY2lhbC0tIGl0J3MgdGhlIGhpZGluZyBwbGFjZSBmb3IgdGhlIGlnbm9yZQorICAgICAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzLCB3aG9zZSByZWFsIGNhdGVnb3J5IG51bWJlciBpbiB0aGUgQ29tcGFjdEFycmF5IGlzCisgICAgICAgICAgICAgICAgICAgIC8vIC0xIFt0aGlzIGlzIGJlY2F1c2UgY2F0ZWdvcnkgMCBjb250YWlucyBhbGwgY2hhcmFjdGVycyBub3QKKyAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lmaWNhbGx5IG1lbnRpb25lZCBhbnl3aGVyZSBpbiB0aGUgcnVsZXNdICkKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyQ2F0ZWdvcnlUYWJsZS5zZXRFbGVtZW50QXQoKGNoYXIpcmFuZ2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciljaGFycy5nZXRSYW5nZUVuZChqKSwgSUdOT1JFKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gb25jZSB3ZSd2ZSBwb3B1bGF0ZWQgdGhlIENvbXBhY3RBcnJheSwgY29tcGFjdCBpdAorICAgICAgICAgICAgY2hhckNhdGVnb3J5VGFibGUuY29tcGFjdCgpOworCisgICAgICAgICAgICAvLyBpbml0aWFsaXplIG51bUNhdGVnb3JpZXMKKyAgICAgICAgICAgIG51bUNhdGVnb3JpZXMgPSBjYXRlZ29yaWVzLnNpemUoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKiAgIEBpbnRlcm5hbCAqLworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBtdW5nZUV4cHJlc3Npb25MaXN0KEhhc2h0YWJsZSBleHByZXNzaW9ucykgeworICAgICAgICAgICAgLy8gZW1wdHkgaW4gdGhlIHBhcmVudCBjbGFzcy4gIFRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgYSBob29rIGZvciBzdWJjbGFzc2VzCisgICAgICAgICAgICAvLyB0byBtZXNzIHdpdGggdGhlIGNoYXJhY3RlciBjYXRlZ29yeSB0YWJsZS4KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGlzIHRoZSBmdW5jdGlvbiB0aGF0IGJ1aWxkcyB0aGUgZm9yd2FyZCBzdGF0ZSB0YWJsZS4gIE1vc3Qgb2YgdGhlIHJlYWwKKyAgICAgICAgICogd29yayBpcyBkb25lIGluIHBhcnNlUnVsZSgpLCB3aGljaCBpcyBjYWxsZWQgb25jZSBmb3IgZWFjaCBydWxlIGluIHRoZQorICAgICAgICAgKiBkZXNjcmlwdGlvbi4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBidWlsZFN0YXRlVGFibGUoVmVjdG9yIHRlbXBSdWxlTGlzdCkgeworICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSBvdXIgdGVtcG9yYXJ5IHN0YXRlIHRhYmxlLCBhbmQgZmlsbCBpdCB3aXRoIHR3byBzdGF0ZXM6CisgICAgICAgICAgICAvLyBzdGF0ZSAwIGlzIGEgZHVtbXkgc3RhdGUgdGhhdCBhbGxvd3Mgc3RhdGUgMSB0byBiZSB0aGUgc3RhcnRpbmcgc3RhdGUKKyAgICAgICAgICAgIC8vIGFuZCAwIHRvIHJlcHJlc2VudCAic3RvcCIuICBTdGF0ZSAxIGlzIGFkZGVkIGhlcmUgdG8gc2VlZCB0aGluZ3MKKyAgICAgICAgICAgIC8vIGJlZm9yZSB3ZSBzdGFydCBwYXJzaW5nCisgICAgICAgICAgICB0ZW1wU3RhdGVUYWJsZSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIHRlbXBTdGF0ZVRhYmxlLmFkZEVsZW1lbnQobmV3IHNob3J0W251bUNhdGVnb3JpZXMgKyAxXSk7CisgICAgICAgICAgICB0ZW1wU3RhdGVUYWJsZS5hZGRFbGVtZW50KG5ldyBzaG9ydFtudW1DYXRlZ29yaWVzICsgMV0pOworCisgICAgICAgICAgICAvLyBjYWxsIHBhcnNlUnVsZSgpIGZvciBldmVyeSBydWxlIGluIHRoZSBydWxlIGxpc3QgKGV4Y2VwdCB0aG9zZSB3aGljaAorICAgICAgICAgICAgLy8gc3RhcnQgd2l0aCAhLCB3aGljaCBhcmUgYWN0dWFsbHkgYmFja3dhcmRzLWl0ZXJhdGlvbiBydWxlcykKKyAgICAgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGludCBuID0gdGVtcFJ1bGVMaXN0LnNpemUoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcFJ1bGVMaXN0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGUgPSAoU3RyaW5nKXRlbXBSdWxlTGlzdC5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKHJ1bGUuY2hhckF0KDApICE9ICchJykgeworICAgICAgICAgICAgICAgICAgICBwYXJzZVJ1bGUocnVsZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBmaW5hbGx5LCB1c2UgZmluaXNoQnVpbGRpbmdTdGF0ZVRhYmxlKCkgdG8gbWluaW1pemUgdGhlIG51bWJlciBvZgorICAgICAgICAgICAgLy8gc3RhdGVzIGluIHRoZSB0YWJsZSBhbmQgcGVyZm9ybSBzb21lIG90aGVyIGNsZWFudXAgd29yaworICAgICAgICAgICAgZmluaXNoQnVpbGRpbmdTdGF0ZVRhYmxlKHRydWUpOworLyoKK1N5c3RlbS5vdXQucHJpbnQoIkM6XHQiKTsKK2ZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ2F0ZWdvcmllczsgaSsrKQorU3lzdGVtLm91dC5wcmludChJbnRlZ2VyLnRvU3RyaW5nKGkpICsgIlx0Iik7CitTeXN0ZW0ub3V0LnByaW50bG4oKTsgU3lzdGVtLm91dC5wcmludCgiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpOworZm9yIChpbnQgaSA9IDA7IGkgPCBzdGF0ZVRhYmxlLmxlbmd0aDsgaSsrKSB7CitpZiAoaSAlIG51bUNhdGVnb3JpZXMgPT0gMCkgeworU3lzdGVtLm91dC5wcmludGxuKCk7CitpZiAoZW5kU3RhdGVzW2kgLyBudW1DYXRlZ29yaWVzXSkKK1N5c3RlbS5vdXQucHJpbnQoIioiKTsKK2Vsc2UKK1N5c3RlbS5vdXQucHJpbnQoIiAiKTsKK2lmIChsb29rYWhlYWRTdGF0ZXNbaSAvIG51bUNhdGVnb3JpZXNdKSB7CitTeXN0ZW0ub3V0LnByaW50KCIlIik7Cit9CitlbHNlCitTeXN0ZW0ub3V0LnByaW50KCIgIik7CitTeXN0ZW0ub3V0LnByaW50KEludGVnZXIudG9TdHJpbmcoaSAvIG51bUNhdGVnb3JpZXMpICsgIjpcdCIpOworfQoraWYgKHN0YXRlVGFibGVbaV0gPT0gMCkgU3lzdGVtLm91dC5wcmludCgiLlx0Iik7IGVsc2UgU3lzdGVtLm91dC5wcmludChJbnRlZ2VyLnRvU3RyaW5nKHN0YXRlVGFibGVbaV0pICsgIlx0Iik7Cit9CitTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyovCisgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGlzIHdoZXJlIG1vc3Qgb2YgdGhlIHdvcmsgcmVhbGx5IGhhcHBlbnMuICBUaGlzIHJvdXRpbmUgcGFyc2VzIGEgc2luZ2xlCisgICAgICAgICAqIHJ1bGUgaW4gdGhlIHJ1bGUgZGVzY3JpcHRpb24sIGFkZGluZyBhbmQgbW9kaWZ5aW5nIHN0YXRlcyBpbiB0aGUgc3RhdGUKKyAgICAgICAgICogdGFibGUgYWNjb3JkaW5nIHRvIHRoZSBuZXcgZXhwcmVzc2lvbi4gIFRoZSBzdGF0ZSB0YWJsZSBpcyBrZXB0IGRldGVybWluaXN0aWMKKyAgICAgICAgICogdGhyb3VnaG91dCB0aGUgd2hvbGUgb3BlcmF0aW9uLCBhbHRob3VnaCBzb21lIHVnbHkgcG9zdHByb2Nlc3NpbmcgaXMgbmVlZGVkCisgICAgICAgICAqIHRvIGhhbmRsZSB0aGUgKj8gdG9rZW4uCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgcGFyc2VSdWxlKFN0cmluZyBydWxlLCBib29sZWFuIGZvcndhcmQpIHsKKyAgICAgICAgICAgIC8vIGFsZ29yaXRobSBub3RlczoKKyAgICAgICAgICAgIC8vICAgLSBUaGUgYmFzaWMgaWRlYSBoZXJlIGlzIHRvIHJlYWQgc3VjY2Vzc2l2ZSBjaGFyYWN0ZXItY2F0ZWdvcnkgZ3JvdXBzCisgICAgICAgICAgICAvLyAgIGZyb20gdGhlIGlucHV0IHN0cmluZy4gIEZvciBlYWNoIGdyb3VwLCB5b3UgY3JlYXRlIGEgc3RhdGUgYW5kIHBvaW50CisgICAgICAgICAgICAvLyAgIHRoZSBhcHByb3ByaWF0ZSBlbnRyaWVzIGluIHRoZSBwcmV2aW91cyBzdGF0ZSB0byBpdC4gIFRoaXMgcHJvZHVjZXMgYQorICAgICAgICAgICAgLy8gICBzdHJhaWdodCBsaW5lIGZyb20gdGhlIHN0YXJ0IHN0YXRlIHRvIHRoZSBlbmQgc3RhdGUuICBUaGUgPywgKywgKiwgYW5kICh8KQorICAgICAgICAgICAgLy8gICBpZGlvbXMgcHJvZHVjZSBicmFuY2hlcyBpbiB0aGlzIHN0cmFpZ2h0IGxpbmUuICBUaGVzZSBicmFuY2hlcyAoc3RhdGVzCisgICAgICAgICAgICAvLyAgIHRoYXQgY2FuIHRyYW5zaXRpb24gdG8gbW9yZSB0aGFuIG9uZSBvdGhlciBzdGF0ZSkgYXJlIGNhbGxlZCAiZGVjaXNpb24KKyAgICAgICAgICAgIC8vICAgcG9pbnRzLiIgIEEgbGlzdCBvZiBkZWNpc2lvbiBwb2ludHMgaXMga2VwdC4gIFRoaXMgY29udGFpbnMgYSBsaXN0IG9mCisgICAgICAgICAgICAvLyAgIGFsbCBzdGF0ZXMgdGhhdCBjYW4gdHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZSB0byBiZSBjcmVhdGVkLiAgRm9yIGEKKyAgICAgICAgICAgIC8vICAgc3RyYWlnaHQgbGluZSBwcm9ncmVzc2lvbiwgdGhlIG9ubHkgdGhpbmcgaW4gdGhlIGRlY2lzaW9uLXBvaW50IGxpc3QgaXMKKyAgICAgICAgICAgIC8vICAgdGhlIGN1cnJlbnQgc3RhdGUuICBCdXQgaWYgdGhlcmUncyBhIGJyYW5jaCwgdGhlIGRlY2lzaW9uLXBvaW50IGxpc3QKKyAgICAgICAgICAgIC8vICAgd2lsbCBjb250YWluIGFsbCBvZiB0aGUgYmVnaW5uaW5nIHBvaW50cyBvZiB0aGUgYnJhbmNoIHdoZW4gdGhlIG5leHQKKyAgICAgICAgICAgIC8vICAgc3RhdGUgdG8gYmUgY3JlYXRlZCByZXByZXNlbnRzIHRoZSBlbmQgcG9pbnQgb2YgdGhlIGJyYW5jaC4gIEEgc3RhY2sgaXMKKyAgICAgICAgICAgIC8vICAgdXNlZCB0byBzYXZlIGRlY2lzaW9uIHBvaW50IGxpc3RzIGluIHRoZSBwcmVzZW5jZSBvZiBuZXN0ZWQgcGFyZW50aGVzZXMKKyAgICAgICAgICAgIC8vICAgYW5kIHRoZSBsaWtlLiAgRm9yIGV4YW1wbGUsIHdoZW4gYSB7IGlzIGVuY291bnRlcmVkLCB0aGUgY3VycmVudCBkZWNpc2lvbgorICAgICAgICAgICAgLy8gICBwb2ludCBsaXN0IGlzIHNhdmVkIG9uIHRoZSBzdGFjayBhbmQgcmVzdG9yZWQgd2hlbiB0aGUgY29ycmVzcG9uZGluZyB9CisgICAgICAgICAgICAvLyAgIGlzIGVuY291bnRlcmVkLiAgVGhpcyB3YXksIGFmdGVyIHRoZSB9IGlzIHJlYWQsIHRoZSBkZWNpc2lvbiBwb2ludCBsaXN0CisgICAgICAgICAgICAvLyAgIHdpbGwgY29udGFpbiBib3RoIHRoZSBzdGF0ZSByaWdodCBiZWZvcmUgdGhlIH0gX2FuZF8gdGhlIHN0YXRlIGJlZm9yZQorICAgICAgICAgICAgLy8gICB0aGUgd2hvbGUge30gZXhwcmVzc2lvbi4gIEJvdGggb2YgdGhlc2Ugc3RhdGVzIGNhbiB0cmFuc2l0aW9uIHRvIHRoZSBuZXh0CisgICAgICAgICAgICAvLyAgIHN0YXRlIGFmdGVyIHRoZSB7fSBleHByZXNzaW9uLgorICAgICAgICAgICAgLy8gICAtIG9uZSBjb21wbGljYXRpb24gYXJpc2VzIHdoZW4gd2UgaGF2ZSB0byBzdGFtcCBhIHRyYW5zaXRpb24gdmFsdWUgaW50bworICAgICAgICAgICAgLy8gICBhbiBhcnJheSBjZWxsIHRoYXQgYWxyZWFkeSBjb250YWlucyBvbmUuICBUaGUgdXBkYXRlU3RhdGVUYWJsZSgpIGFuZAorICAgICAgICAgICAgLy8gICBtZXJnZVN0YXRlcygpIGZ1bmN0aW9ucyBoYW5kbGUgdGhpcyBjYXNlLiAgVGhlaXIgYmFzaWMgYXBwcm9hY2ggaXMgdG8KKyAgICAgICAgICAgIC8vICAgY3JlYXRlIGEgbmV3IHN0YXRlIHRoYXQgY29tYmluZXMgdGhlIHR3byBzdGF0ZXMgdGhhdCBjb25mbGljdCBhbmQgcG9pbnQKKyAgICAgICAgICAgIC8vICAgYXQgaXQgd2hlbiBuZWNlc3NhcnkuICBUaGlzIGhhcHBlbnMgcmVjdXJzaXZlbHksIHNvIGlmIHRoZSBtZXJnZWQgc3RhdGVzCisgICAgICAgICAgICAvLyAgIGFsc28gY29uZmxpY3QsIHRoZXkncmUgcmVzb2x2ZWQgaW4gdGhlIHNhbWUgd2F5LCBhbmQgc28gb24uICBUaGVyZSBhcmUKKyAgICAgICAgICAgIC8vICAgYSBudW1iZXIgb2YgdGVzdHMgYWltZWQgYXQgcHJldmVudGluZyBpbmZpbml0ZSByZWN1cnNpb24uCisgICAgICAgICAgICAvLyAgIC0gYW5vdGhlciBjb21wbGljYXRpb24gYXJpc2VzIHdpdGggcmVwZWF0aW5nIGNoYXJhY3RlcnMuICBJdCdzIHNvbWV3aGF0CisgICAgICAgICAgICAvLyAgIGFtYmlndW91cyB3aGV0aGVyIHRoZSB1c2VyIHdhbnRzIGEgZ3JlZWR5IG9yIG5vbi1ncmVlZHkgbWF0Y2ggaW4gdGhlc2UgY2FzZXMuCisgICAgICAgICAgICAvLyAgIChlLmcuLCB3aGV0aGVyICJbYS16XSphYmMiIG1lYW5zIHRoZSBTSE9SVEVTVCBzZXF1ZW5jZSBvZiBsZXR0ZXJzIGVuZGluZyBpbgorICAgICAgICAgICAgLy8gICAiYWJjIiBvciB0aGUgTE9OR0VTVCBzZXF1ZW5jZSBvZiBsZXR0ZXJzIGVuZGluZyBpbiAiYWJjIi4gIFdlJ3ZlIGFkb3B0ZWQKKyAgICAgICAgICAgIC8vICAgdGhlICo/IHRvIG1lYW4gInNob3J0ZXN0IiBhbmQgKiBieSBpdHNlbGYgdG8gbWVhbiAibG9uZ2VzdCIuICAoWW91IGdldCB0aGUKKyAgICAgICAgICAgIC8vICAgc2FtZSByZXN1bHQgd2l0aCBib3RoIGlmIHRoZXJlJ3Mgbm8gb3ZlcmxhcCBiZXR3ZWVuIHRoZSByZXBlYXRpbmcgY2hhcmFjdGVyCisgICAgICAgICAgICAvLyAgIGdyb3VwIGFuZCB0aGUgZ3JvdXAgaW1tZWRpYXRlbHkgZm9sbG93aW5nIGl0LikgIEhhbmRsaW5nIHRoZSAqPyB0b2tlbiBpcworICAgICAgICAgICAgLy8gICByYXRoZXIgY29tcGxpY2F0ZWQgYW5kIGludm9sdmVzIGtlZXBpbmcgdHJhY2sgb2Ygd2hldGhlciBhIHN0YXRlIG5lZWRzIHRvCisgICAgICAgICAgICAvLyAgIGJlIG1lcmdlZCAoYXMgZGVzY3JpYmVkIGFib3ZlKSBvciBtZXJlbHkgb3ZlcndyaXR0ZW4gd2hlbiB5b3UgdXBkYXRlIG9uZSBvZgorICAgICAgICAgICAgLy8gICBpdHMgY2VsbHMsIGFuZCBjb3B5aW5nIHRoZSBjb250ZW50cyBvZiBhIHN0YXRlIHRoYXQgbG9vcHMgd2l0aCBhICo/IHRva2VuCisgICAgICAgICAgICAvLyAgIGludG8gc29tZSBvZiB0aGUgc3RhdGVzIHRoYXQgZm9sbG93IGl0IGFmdGVyIHRoZSByZXN0IG9mIHRoZSB0YWJsZS1idWlsZGluZworICAgICAgICAgICAgLy8gICBwcm9jZXNzIGlzIGNvbXBsZXRlICgiYmFja2ZpbGxpbmciKS4KKyAgICAgICAgICAgIC8vIGltcGxlbWVudGF0aW9uIG5vdGVzOgorICAgICAgICAgICAgLy8gICAtIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyBzeW50YXggY2hlY2tpbmcgaGFzIGJlZW4gcGVyZm9ybWVkIG9uIHRoZSBpbnB1dCBzdHJpbmcKKyAgICAgICAgICAgIC8vICAgcHJpb3IgdG8gaXRzIGJlaW5nIHBhc3NlZCBpbiBoZXJlLiAgSXQgYXNzdW1lcyB0aGF0IHBhcmVudGhlc2VzIGFyZQorICAgICAgICAgICAgLy8gICBiYWxhbmNlZCwgYWxsIGxpdGVyYWwgY2hhcmFjdGVycyBhcmUgZW5jbG9zZWQgaW4gW10gYW5kIHR1cm5lZCBpbnRvIGNhdGVnb3J5CisgICAgICAgICAgICAvLyAgIG51bWJlcnMsIHRoYXQgdGhlcmUgYXJlIG5vIGlsbGVnYWwgY2hhcmFjdGVycyBvciBjaGFyYWN0ZXIgc2VxdWVuY2VzLCBhbmQgc28KKyAgICAgICAgICAgIC8vICAgb24uICBWaW9sYXRpb24gb2YgdGhlc2UgaW52YXJpYW50cyB3aWxsIGxlYWQgdG8gdW5kZWZpbmVkIGJlaGF2aW9yLgorICAgICAgICAgICAgLy8gICAtIEl0J2QgcHJvYmFibHkgYmUgYmV0dGVyIHRvIHVzZSBsaW5rZWQgbGlzdHMgcmF0aGVyIHRoYW4gVmVjdG9yIGFuZCBTdGFjaworICAgICAgICAgICAgLy8gICB0byBtYWludGFpbiB0aGUgZGVjaXNpb24gcG9pbnQgbGlzdCBhbmQgc3RhY2suICBJIHdlbnQgZm9yIHNpbXBsaWNpdHkgaW4KKyAgICAgICAgICAgIC8vICAgdGhpcyBpbml0aWFsIGltcGxlbWVudGF0aW9uLiAgSWYgcGVyZm9ybWFuY2UgaXMgY3JpdGljYWwgZW5vdWdoLCB3ZSBjYW4gZ28KKyAgICAgICAgICAgIC8vICAgYmFjayBhbmQgZml4IHRoaXMgbGF0ZXIuCisgICAgICAgICAgICAvLyAgIC1UaGVyZSBhcmUgYSBudW1iZXIgb2YgaW1wb3J0YW50IGxpbWl0YXRpb25zIG9uIHRoZSAqPyB0b2tlbi4gIEl0IGRvZXMgbm90IHdvcmsKKyAgICAgICAgICAgIC8vICAgcmlnaHQgd2hlbiBmb2xsb3dlZCBieSBhIHJlcGVhdGluZyBjaGFyYWN0ZXIgc2VxdWVuY2UgKGUuZy4sICIuKj8oYWJjKSoiKQorICAgICAgICAgICAgLy8gICAoYWx0aG91Z2ggaXQgZG9lcyB3b3JrIHJpZ2h0IHdoZW4gZm9sbG93ZWQgYnkgYSBzaW5nbGUgcmVwZWF0aW5nIGNoYXJhY3RlcikuCisgICAgICAgICAgICAvLyAgIEl0IHdpbGwgbm90IGFsd2F5cyB3b3JrIHJpZ2h0IHdoZW4gbmVzdGVkIGluIHBhcmVudGhlc2VzIG9yIGJyYWNlcyAoYWx0aG91Z2gKKyAgICAgICAgICAgIC8vICAgc29tZXRpbWVzIGl0IHdpbGwpLiAgSXQgYWxzbyB3aWxsIG5vdCB3b3JrIHJpZ2h0IGlmIHRoZSBncm91cCBvZiByZXBlYXRpbmcKKyAgICAgICAgICAgIC8vICAgY2hhcmFjdGVycyBhbmQgdGhlIGdyb3VwIG9mIGNoYXJhY3RlcnMgdGhhdCBmb2xsb3dzIG92ZXJsYXAgcGFydGlhbGx5CisgICAgICAgICAgICAvLyAgIChlLmcuLCAiW2EtZ10qP1tlLWpdIikuICBOb25lIG9mIHRoZXNlIGNhcGFiaWxpdGVzIHdhcyBkZWVtZWQgbmVjZXNzYXJ5IGZvcgorICAgICAgICAgICAgLy8gICBkZXNjcmliaW5nIGJyZWFraW5nIHJ1bGVzIHdlIGtub3cgYWJvdXQsIHNvIHdlIGxlZnQgdGhlbSBvdXQgZm9yCisgICAgICAgICAgICAvLyAgIGV4cGVkaXRpb3VzbmVzcy4KKyAgICAgICAgICAgIC8vICAgLSBSdWxlcyBzdWNoIGFzICJbYS16XSo/YWJjOyIgd2lsbCBiZSB0cmVhdGVkIHRoZSBzYW1lIGFzICJbYS16XSo/YWEqYmM7Ii0tCisgICAgICAgICAgICAvLyAgIHRoYXQgaXMsIGlmIHRoZSBzdHJpbmcgZW5kcyBpbiAiYWFhYWJjIiwgdGhlIGJyZWFrIHdpbGwgZ28gYmVmb3JlIHRoZSBmaXJzdAorICAgICAgICAgICAgLy8gICAiYSIgcmF0aGVyIHRoYW4gdGhlIGxhc3Qgb25lLiAgQm90aCBvZiB0aGVzZSBhcmUgbGltaXRhdGlvbnMgaW4gdGhlIGRlc2lnbgorICAgICAgICAgICAgLy8gICBvZiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGFuZCBub3QgbGltaXRhdGlvbnMgb2YgdGhlIHJ1bGUgcGFyc2VyLgorCisgICAgICAgICAgICBpbnQgcCA9IDA7CisgICAgICAgICAgICBpbnQgY3VycmVudFN0YXRlID0gMTsgICAvLyBkb24ndCB1c2Ugc3RhdGUgbnVtYmVyIDA7IDAgbWVhbnMgInN0b3AiCisgICAgICAgICAgICBpbnQgbGFzdFN0YXRlID0gY3VycmVudFN0YXRlOworICAgICAgICAgICAgU3RyaW5nIHBlbmRpbmdDaGFycyA9ICIiOworCisgICAgICAgICAgICBkZWNpc2lvblBvaW50U3RhY2sgPSBuZXcgU3RhY2soKTsKKyAgICAgICAgICAgIGRlY2lzaW9uUG9pbnRMaXN0ID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgbG9vcGluZ1N0YXRlcyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIHN0YXRlc1RvQmFja2ZpbGwgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgICAgIHNob3J0W10gc3RhdGU7CisgICAgICAgICAgICBib29sZWFuIHNhd0Vhcmx5QnJlYWsgPSBmYWxzZTsKKworICAgICAgICAgICAgLy8gaWYgd2UncmUgYWRkaW5nIHJ1bGVzIHRvIHRoZSBiYWNrd2FyZCBzdGF0ZSB0YWJsZSwgbWFyayB0aGUgaW5pdGlhbCBzdGF0ZQorICAgICAgICAgICAgLy8gYXMgYSBsb29waW5nIHN0YXRlCisgICAgICAgICAgICBpZiAoIWZvcndhcmQpIHsKKyAgICAgICAgICAgICAgICBsb29waW5nU3RhdGVzLmFkZEVsZW1lbnQobmV3IEludGVnZXIoMSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBwdXQgdGhlIGN1cnJlbnQgc3RhdGUgb24gdGhlIGRlY2lzaW9uIHBvaW50IGxpc3QgYmVmb3JlIHdlIHN0YXJ0CisgICAgICAgICAgICBkZWNpc2lvblBvaW50TGlzdC5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKGN1cnJlbnRTdGF0ZSkpOyAvLyB3ZSB3YW50IGN1cnJlbnRTdGF0ZSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmUgMSBoZXJlLi4uCisgICAgICAgICAgICBjdXJyZW50U3RhdGUgPSB0ZW1wU3RhdGVUYWJsZS5zaXplKCkgLSAxOyAgIC8vIGJ1dCBhZnRlciB0aGF0LCB3ZSB3YW50IGl0IHRvIGJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDEgbGVzcyB0aGFuIHRoZSBzdGF0ZSBudW1iZXIgb2YgdGhlIG5leHQgc3RhdGUKKyAgICAgICAgICAgIHdoaWxlIChwIDwgcnVsZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IHJ1bGUuY2hhckF0KHApOworICAgICAgICAgICAgICAgIGNsZWFyTG9vcGluZ1N0YXRlcyA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgLy8gdGhpcyBzZWN0aW9uIGhhbmRsZXMgbGl0ZXJhbCBjaGFyYWN0ZXJzLCBlc2NhcGVkIGNoYXJhY3RlcnMgKHdoaWNoIGFyZQorICAgICAgICAgICAgICAgIC8vIGVmZmVjdGl2ZWx5IGxpdGVyYWwgY2hhcmFjdGVycyB0b28pLCB0aGUgLiB0b2tlbiwgYW5kIFtdIGV4cHJlc3Npb25zCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1snCisgICAgICAgICAgICAgICAgICAgIHx8IGMgPT0gJ1xcJworICAgICAgICAgICAgICAgICAgICB8fCBDaGFyYWN0ZXIuaXNMZXR0ZXIoYykKKyAgICAgICAgICAgICAgICAgICAgfHwgQ2hhcmFjdGVyLmlzRGlnaXQoYykKKyAgICAgICAgICAgICAgICAgICAgfHwgYyA8ICcgJworICAgICAgICAgICAgICAgICAgICB8fCBjID09ICcuJworICAgICAgICAgICAgICAgICAgICB8fCBjID49ICdcdTAwN2YnKSB7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UncmUgbm90IG9uIGEgcGVyaW9kLCBpc29sYXRlIHRoZSBleHByZXNzaW9uIGFuZCBsb29rIHVwCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjb3JyZXNwb25kaW5nIGNhdGVnb3J5IGxpc3QKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gJy4nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcSA9IHA7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHdlJ3JlIG9uIGEgYmFja3NsYXNoLCB0aGUgZXhwcmVzc2lvbiBpcyB0aGUgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhZnRlciB0aGUgYmFja3NsYXNoCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcSA9IHAgKyAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UncmUgb24gYW4gb3BlbmluZyBicmFja2V0LCBzY2FuIHRvIHRoZSBjbG9zaW5nIGJyYWNrZXQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGlzb2xhdGUgdGhlIGV4cHJlc3Npb24KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJ1snKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJyYWNrZXRMZXZlbCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGJyYWNrZXRMZXZlbCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gcnVsZS5jaGFyQXQocSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICdbJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyticmFja2V0TGV2ZWw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSAnXScpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tYnJhY2tldExldmVsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJ1xcJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB0aGUgZXhwcmVzc2lvbiBpcyBqdXN0IHRoZSBjaGFyYWN0ZXIgaXRzZWxmCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBxID0gcCArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvb2sgdXAgdGhlIGNhdGVnb3J5IGxpc3QgZm9yIHRoZSBleHByZXNzaW9uIGFuZCBzdG9yZSBpdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gcGVuZGluZ0NoYXJzCisgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nQ2hhcnMgPSAoU3RyaW5nKWV4cHJlc3Npb25zLmdldChydWxlLnN1YnN0cmluZyhwLCBxKSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkdmFuY2UgdGhlIGN1cnJlbnQgcG9zaXRpb24gcGFzdCB0aGUgZXhwcmVzc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgcCA9IHEgLSAxOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlIGNoYXJhY3RlciB3ZSdyZSBvbiBpcyBhIHBlcmlvZCwgd2UgZW5kIHVwIGRvd24gaGVyZQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByb3dOdW0gPSAoKEludGVnZXIpZGVjaXNpb25Qb2ludExpc3QubGFzdEVsZW1lbnQoKSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gKHNob3J0W10pdGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KHJvd051bSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBwZXJpb2QgaXMgZm9sbG93ZWQgYnkgYW4gYXN0ZXJpc2ssIHRoZW4ganVzdCBzZXQgdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0YXRlIHRvIGxvb3AgYmFjayBvbiBpdHNlbGYKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwICsgMSA8IHJ1bGUubGVuZ3RoKCkgJiYgcnVsZS5jaGFyQXQocCArIDEpID09ICcqJyAmJiBzdGF0ZVswXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25Qb2ludExpc3QuYWRkRWxlbWVudChuZXcgSW50ZWdlcihzdGF0ZVswXSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdDaGFycyA9ICIiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocCArIDEgPCBydWxlLmxlbmd0aCgpICYmIHJ1bGUuY2hhckF0KHAgKyAxKSA9PSAnPycpIHsKKy8vU3lzdGVtLm91dC5wcmludGxuKCJTYXcgKj8iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TG9vcGluZ1N0YXRlcyhkZWNpc2lvblBvaW50TGlzdCwgZGVjaXNpb25Qb2ludExpc3QpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLy9TeXN0ZW0ub3V0LnByaW50bG4oIlNhdyAuKiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UsIGZhYnJpY2F0ZSBhIGNhdGVnb3J5IGxpc3QgKCJwZW5kaW5nQ2hhcnMiKSB3aXRoCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBldmVyeSBjYXRlZ29yeSBpbiBpdAorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRlbXAgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1DYXRlZ29yaWVzOyBpKyspCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAuYXBwZW5kKChjaGFyKShpICsgMHgxMDApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nQ2hhcnMgPSB0ZW1wLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyB3ZSdsbCBlbmQgdXAgaW4gaGVyZSBmb3IgYWxsIGV4cHJlc3Npb25zIGV4Y2VwdCBmb3IgLiosIHdoaWNoIGlzCisgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpYWwtY2FzZWQgYWJvdmUKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBlbmRpbmdDaGFycy5sZW5ndGgoKSAhPSAwKSB7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBleHByZXNzaW9uIGlzIGZvbGxvd2VkIGJ5IGFuIGFzdGVyaXNrIG9yIGEgcXVlc3Rpb24gbWFyaywKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vICB0aGVuIHB1c2ggYSBjb3B5IG9mIHRoZSBjdXJyZW50IGRlY2lzaW9uIHBvaW50IGxpc3Qgb250byB0aGUgc3RhY2sKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwICsgMSA8IHJ1bGUubGVuZ3RoKCkgJiYgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUuY2hhckF0KHAgKyAxKSA9PSAnKicgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLmNoYXJBdChwICsgMSkgPT0gJz8nCisgICAgICAgICAgICAgICAgICAgICAgICApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25Qb2ludFN0YWNrLnB1c2goZGVjaXNpb25Qb2ludExpc3QuY2xvbmUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIG5ldyBzdGF0ZSwgYWRkIGl0IHRvIHRoZSBsaXN0IG9mIHN0YXRlcyB0byBiYWNrZmlsbAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSBsb29waW5nIHN0YXRlcyB0byB3b3JyeSBhYm91dCwgc2V0IGl0cyAiZG9uJ3QgbWFrZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWUgYW4gYWNjZXB0aW5nIHN0YXRlIiBmbGFnIGlmIHdlJ3ZlIHNlZW4gYSBzbGFzaCwgYW5kIGFkZAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXQgdG8gdGhlIGVuZCBvZiB0aGUgc3RhdGUgdGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdTdGF0ZSA9IHRlbXBTdGF0ZVRhYmxlLnNpemUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb29waW5nU3RhdGVzLnNpemUoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVzVG9CYWNrZmlsbC5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKG5ld1N0YXRlKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IG5ldyBzaG9ydFtudW1DYXRlZ29yaWVzICsgMV07CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2F3RWFybHlCcmVhaykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlW251bUNhdGVnb3JpZXNdID0gRE9OVF9MT09QX0ZMQUc7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wU3RhdGVUYWJsZS5hZGRFbGVtZW50KHN0YXRlKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIGV2ZXJ5Ym9keSBpbiB0aGUgZGVjaXNpb24gcG9pbnQgbGlzdCB0byBwb2ludCB0bworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIG5ldyBzdGF0ZSAodGhpcyBhbHNvIHBlcmZvcm1zIGFsbCB0aGUgcmVjb25jaWxpYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lZWRlZCB0byBtYWtlIHRoZSB0YWJsZSBkZXRlcm1pbmlzdGljKSwgdGhlbiBjbGVhciB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlY2lzaW9uIHBvaW50IGxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlVGFibGUoZGVjaXNpb25Qb2ludExpc3QsIHBlbmRpbmdDaGFycywgKHNob3J0KW5ld1N0YXRlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlY2lzaW9uUG9pbnRMaXN0LnJlbW92ZUFsbEVsZW1lbnRzKCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZCBhbGwgc3RhdGVzIGNyZWF0ZWQgc2luY2UgdGhlIGxhc3QgbGl0ZXJhbCBjaGFyYWN0ZXIgd2UndmUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlZW4gdG8gdGhlIGRlY2lzaW9uIHBvaW50IGxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RTdGF0ZSA9IGN1cnJlbnRTdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2N1cnJlbnRTdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpc2lvblBvaW50TGlzdC5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKGN1cnJlbnRTdGF0ZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoY3VycmVudFN0YXRlICsgMSA8IHRlbXBTdGF0ZVRhYmxlLnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBhICogb3IgYSArIGRlbm90ZXMgYSByZXBlYXRpbmcgY2hhcmFjdGVyIG9yIGdyb3VwLCBhbmQgYSA/IGRlbm90ZXMgYW4KKyAgICAgICAgICAgICAgICAvLyBvcHRpb25hbCBjaGFyYWN0ZXIgZ3JvdXAuICgqLCArIGFuZCA/IGFmdGVyICgpIGFyZSBoYW5kbGVkIHNlcGFyYXRlbHkgYmVsb3cuKQorICAgICAgICAgICAgICAgIGlmIChjID09ICcrJyB8fCBjID09ICcqJyB8fCBjID09ICc/JykgeworICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHRoZXJlJ3MgYSAqIG9yIGEgKywgdXBkYXRlIHRoZSBjdXJyZW50IHN0YXRlIHRvIGxvb3AgYmFjayBvbiBpdHNlbGYKKyAgICAgICAgICAgICAgICAgICAgLy8gb24gdGhlIGNoYXJhY3RlciBjYXRlZ29yaWVzIHRoYXQgY2F1c2VkIHVzIHRvIGVudGVyIHRoaXMgc3RhdGUKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyonIHx8IGMgPT0gJysnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiB3ZSBwcm9jZXNzIG9uZSBzdGF0ZSBhdCBhIHRpbWUgYmVjYXVzZSB1cGRhdGVTdGF0ZVRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXkgYWRkIG5ldyBzdGF0ZXMsIGFuZCB3ZSB3YW50IHRvIHByb2Nlc3MgdGhlbSBhcyB3ZWxsLgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IGxhc3RTdGF0ZSArIDE7IGkgPCB0ZW1wU3RhdGVUYWJsZS5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvciB0ZW1wID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAuYWRkRWxlbWVudChuZXcgSW50ZWdlcihpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGVUYWJsZSh0ZW1wLCBwZW5kaW5nQ2hhcnMsIChzaG9ydCkobGFzdFN0YXRlICsgMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBqdXN0IGFkZGVkIGFueSBuZXcgc3RhdGVzLCBhZGQgdGhlbSB0byB0aGUgZGVjaXNvbiBwb2ludCBsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiBpdCBtaWdodCBiZSBhIGdvb2QgaWRlYSB0byBhdm9pZCBhZGRpbmcgbmV3IHN0YXRlcyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlY2lzaW9uIHBvaW50IGxpc3QgaW4gbW9yZSB0aGFuIG9uZSBwbGFjZS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnRTdGF0ZSArIDEgPCB0ZW1wU3RhdGVUYWJsZS5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpc2lvblBvaW50TGlzdC5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKCsrY3VycmVudFN0YXRlKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBmb3IgKiBhbmQgPyBwb3AgdGhlIHRvcCBlbGVtZW50IG9mZiB0aGUgZGVjaXNpb24gcG9pbnQgc3RhY2sgYW5kIG1lcmdlCisgICAgICAgICAgICAgICAgICAgIC8vIGl0IHdpdGggdGhlIGN1cnJlbnQgZGVjaXNpb24gcG9pbnQgbGlzdCAodGhpcyBjYXVzZXMgdGhlIGRpdmVyZ2VudAorICAgICAgICAgICAgICAgICAgICAvLyBwYXRocyB0aHJvdWdoIHRoZSBzdGF0ZSB0YWJsZSB0byBjb21lIHRvZ2V0aGVyIGFnYWluIG9uIHRoZSBuZXh0CisgICAgICAgICAgICAgICAgICAgIC8vIG5ldyBzdGF0ZSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyonIHx8IGMgPT0gJz8nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3IgdGVtcCA9IChWZWN0b3IpZGVjaXNpb25Qb2ludFN0YWNrLnBvcCgpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZWNpc2lvblBvaW50TGlzdC5zaXplKCk7IGkrKykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLmFkZEVsZW1lbnQoZGVjaXNpb25Qb2ludExpc3QuZWxlbWVudEF0KGkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlY2lzaW9uUG9pbnRMaXN0ID0gdGVtcDsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSA/IGFmdGVyIGEgKiBtb2RpZmllcyB0aGUgYmVoYXZpb3Igb2YgKiBpbiBjYXNlcyB3aGVyZSB0aGVyZSBpcyBvdmVybGFwCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZXR3ZWVuIHRoZSBzZXQgb2YgY2hhcmFjdGVycyB0aGF0IHJlcGVhdCBhbmQgdGhlIGNoYXJhY3RlcnMgd2hpY2ggZm9sbG93LgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2l0aG91dCB0aGUgPywgYWxsIHN0YXRlcyBmb2xsb3dpbmcgdGhlIHJlcGVhdGluZyBzdGF0ZSwgdXAgdG8gYSBzdGF0ZSB3aGljaAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgcmVhY2hlZCBieSBhIGNoYXJhY3RlciB0aGF0IGRvZXNuJ3Qgb3ZlcmxhcCwgd2lsbCBsb29wIGJhY2sgaW50byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcGVhdGluZyBzdGF0ZS4gIFdpdGggdGhlID8sIHRoZSBtYXJrIHN0YXRlcyBmb2xsb3dpbmcgdGhlICo/IERPTidUIGxvb3AKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJhY2sgaW50byB0aGUgcmVwZWF0aW5nIHN0YXRlLiAgVGh1cywgIlthLXpdKnh5eiIgd2lsbCBtYXRjaCB0aGUgbG9uZ2VzdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2VxdWVuY2Ugb2YgbGV0dGVycyB0aGF0IGVuZHMgaW4gInh5eiwiIHdoaWxlICJbYS16XSo/IHdpbGwgbWF0Y2ggdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBfc2hvcnRlc3RfIHNlcXVlbmNlIG9mIGxldHRlcnMgdGhhdCBlbmRzIGluICJ4eXoiLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgdXNlIGV4dHJhIGJvb2trZWVwaW5nIHRvIGFjaGlldmUgdGhpcyBlZmZlY3QsIHNpbmNlIGV2ZXJ5dGhpbmcgZWxzZSB3b3JrcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWNjb3JkaW5nIHRvIHRoZSAibG9uZ2VzdCBwb3NzaWJsZSBtYXRjaCIgcHJpbmNpcGxlLiAgVGhlIGJhc2ljIHByaW5jaXBsZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgdGhhdCB0cmFuc2l0aW9ucyBvdXQgb2YgYSBsb29waW5nIHN0YXRlIGFyZSB3cml0dGVuIGluIG92ZXIgdGhlIGxvb3BpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhbHVlIGluc3RlYWQgb2YgYmVpbmcgcmVjb25jaWxlZCwgYW5kIHRoYXQgd2UgY29weSB0aGUgY29udGVudHMgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb29waW5nIHN0YXRlIGludG8gZW1wdHkgY2VsbHMgb2YgYWxsIG5vbi10ZXJtaW5hbCBzdGF0ZXMgdGhhdCBmb2xsb3cgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb29waW5nIHN0YXRlLgorLy9TeXN0ZW0ub3V0LnByaW50bG4oImMgPSAiICsgYyArICIsIHAgPSAiICsgcCArICIsIHJ1bGUubGVuZ3RoKCkgPSAiICsgcnVsZS5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnKicgJiYgcCArIDEgPCBydWxlLmxlbmd0aCgpICYmIHJ1bGUuY2hhckF0KHAgKyAxKSA9PSAnPycpIHsKKy8vU3lzdGVtLm91dC5wcmludGxuKCJTYXcgKj8iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRMb29waW5nU3RhdGVzKGRlY2lzaW9uUG9pbnRMaXN0LCBkZWNpc2lvblBvaW50TGlzdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gYSAoIG1hcmtzIHRoZSBiZWdpbm5pbmcgb2YgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzLiAgUGFyZW50aGVzZXMgY2FuIGVpdGhlcgorICAgICAgICAgICAgICAgIC8vIGNvbnRhaW4gc2V2ZXJhbCBhbHRlcm5hdGl2ZSBjaGFyYWN0ZXIgc2VxdWVuY2VzIChpLmUuLCAiKGFifGNkfGVmKSIpLCBvcgorICAgICAgICAgICAgICAgIC8vIHRoZXkgY2FuIGNvbnRhaW4gYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIHRoYXQgY2FuIHJlcGVhdCAoaS5lLiwgIihhYmMpKiIpLiAgVGh1cywKKyAgICAgICAgICAgICAgICAvLyBBICgpIGdyb3VwIGNhbiBoYXZlIG11bHRpcGxlIGVudHJ5IGFuZCBleGl0IHBvaW50cy4gIFRvIGtlZXAgdHJhY2sgb2YgdGhpcywKKyAgICAgICAgICAgICAgICAvLyB3ZSByZXNlcnZlIFRXTyBzcG90cyBvbiB0aGUgZGVjaXNpb24tcG9pbnQgc3RhY2suICBUaGUgdG9wIG9mIHRoZSBzdGFjayBpcworICAgICAgICAgICAgICAgIC8vIHRoZSBsaXN0IG9mIGV4aXQgcG9pbnRzLCB3aGljaCBiZWNvbWVzIHRoZSBjdXJyZW50IGRlY2lzaW9uIHBvaW50IGxpc3Qgd2hlbgorICAgICAgICAgICAgICAgIC8vIHRoZSApIGlzIHJlYWNoZWQuICBUaGUgbmV4dCBlbnRyeSBkb3duIGlzIHRoZSBkZWNpc2lvbiBwb2ludCBsaXN0IGF0IHRoZQorICAgICAgICAgICAgICAgIC8vIGJlZ2lubmluZyBvZiB0aGUgKCksIHdoaWNoIGJlY29tZXMgdGhlIGN1cnJlbnQgZGVjaXNpb24gcG9pbnQgbGlzdCBhdCBldmVyeQorICAgICAgICAgICAgICAgIC8vIGVudHJ5IHBvaW50LgorICAgICAgICAgICAgICAgIC8vIEluIGFkZGl0aW9uIHRvIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGV4aXQgcG9pbnRzIGFuZCB0aGUgYWN0aXZlIGRlY2lzaW9uCisgICAgICAgICAgICAgICAgLy8gcG9pbnRzIGJlZm9yZSB0aGUgKCAoaS5lLiwgdGhlIHBsYWNlcyBmcm9tIHdoaWNoIHRoZSAoKSBjYW4gYmUgZW50ZXJlZCksCisgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBlbnRyeSBwb2ludHMgaW4gY2FzZSB0aGUgZXhwcmVzc2lvbiBsb29wcworICAgICAgICAgICAgICAgIC8vIChpLmUuLCBpcyBmb2xsb3dlZCBieSAqKS4gIFdlIGRvIHRoYXQgYnkgY3JlYXRpbmcgYSBkdW1teSBzdGF0ZSBpbiB0aGUKKyAgICAgICAgICAgICAgICAvLyBzdGF0ZSB0YWJsZSBhbmQgYWRkaW5nIGl0IHRvIHRoZSBkZWNpc2lvbiBwb2ludCBsaXN0IChCRUZPUkUgaXQncyBkdXBsaWNhdGVkCisgICAgICAgICAgICAgICAgLy8gb24gdGhlIHN0YWNrKS4gIE5vYm9keSBwb2ludHMgdG8gdGhpcyBzdGF0ZSwgc28gaXQnbGwgZ2V0IG9wdGltaXplZCBvdXQKKyAgICAgICAgICAgICAgICAvLyBhdCB0aGUgZW5kLiAgSXQgZXhpc3RzIG9ubHkgdG8gaG9sZCB0aGUgZW50cnkgcG9pbnRzIGluIGNhc2UgdGhlICgpCisgICAgICAgICAgICAgICAgLy8gZXhwcmVzc2lvbiBsb29wcy4KKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnKCcpIHsKKworICAgICAgICAgICAgICAgICAgICAvLyBhZGQgYSBuZXcgc3RhdGUgdG8gdGhlIHN0YXRlIHRhYmxlIHRvIGhvbGQgdGhlIGVudHJ5IHBvaW50cyBpbnRvCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSAoKSBleHByZXNzaW9uCisgICAgICAgICAgICAgICAgICAgIHRlbXBTdGF0ZVRhYmxlLmFkZEVsZW1lbnQobmV3IHNob3J0W251bUNhdGVnb3JpZXMgKyAxXSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSB0byBhZGp1c3QgbGFzdFN0YXRlIGFuZCBjdXJyZW50U3RhdGUgdG8gYWNjb3VudCBmb3IgdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIG5ldyBkdW1teSBzdGF0ZQorICAgICAgICAgICAgICAgICAgICBsYXN0U3RhdGUgPSBjdXJyZW50U3RhdGU7CisgICAgICAgICAgICAgICAgICAgICsrY3VycmVudFN0YXRlOworCisgICAgICAgICAgICAgICAgICAgIC8vIGFkZCB0aGUgY3VycmVudCBzdGF0ZSB0byB0aGUgZGVjaXNpb24gcG9pbnQgbGlzdCAoYWRkIGl0IGF0IHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBCRUdJTk5JTkcgc28gd2UgY2FuIGZpbmQgaXQgbGF0ZXIpCisgICAgICAgICAgICAgICAgICAgIGRlY2lzaW9uUG9pbnRMaXN0Lmluc2VydEVsZW1lbnRBdChuZXcgSW50ZWdlcihjdXJyZW50U3RhdGUpLCAwKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBmaW5hbGx5LCBwdXNoIGEgY29weSBvZiB0aGUgY3VycmVudCBkZWNpc2lvbiBwb2ludCBsaXN0IG9udG8gdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIHN0YWNrICh0aGlzIGtlZXBzIHRyYWNrIG9mIHRoZSBhY3RpdmUgZGVjaXNpb24gcG9pbnQgbGlzdCBiZWZvcmUKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlICgpIGV4cHJlc3Npb24pLCBmb2xsb3dlZCBieSBhbiBlbXB0eSBkZWNpc2lvbiBwb2ludCBsaXN0CisgICAgICAgICAgICAgICAgICAgIC8vICh0aGlzIHdpbGwgaG9sZCB0aGUgZXhpdCBwb2ludHMpCisgICAgICAgICAgICAgICAgICAgIGRlY2lzaW9uUG9pbnRTdGFjay5wdXNoKGRlY2lzaW9uUG9pbnRMaXN0LmNsb25lKCkpOworICAgICAgICAgICAgICAgICAgICBkZWNpc2lvblBvaW50U3RhY2sucHVzaChuZXcgVmVjdG9yKCkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGEgfCBzZXBhcmF0ZXMgYWx0ZXJuYXRpdmUgY2hhcmFjdGVyIHNlcXVlbmNlcyBpbiBhICgpIGV4cHJlc3Npb24uICBXaGVuCisgICAgICAgICAgICAgICAgLy8gYSB8IGlzIGVuY291bnRlcmVkLCB3ZSBhZGQgdGhlIGN1cnJlbnQgZGVjaXNpb24gcG9pbnQgbGlzdCB0byB0aGUgZXhpdC1wb2ludAorICAgICAgICAgICAgICAgIC8vIGxpc3QsIGFuZCByZXN0b3JlIHRoZSBkZWNpc2lvbiBwb2ludCBsaXN0IHRvIGl0cyBzdGF0ZSBwcmlvciB0byB0aGUgKC4KKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnfCcpIHsKKworICAgICAgICAgICAgICAgICAgICAvLyBwaWNrIG91dCB0aGUgdG9wIHR3byBkZWNpc2lvbiBwb2ludCBsaXN0cyBvbiB0aGUgc3RhY2sKKyAgICAgICAgICAgICAgICAgICAgVmVjdG9yIG9uZURvd24gPSAoVmVjdG9yKWRlY2lzaW9uUG9pbnRTdGFjay5wb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgVmVjdG9yIHR3b0Rvd24gPSAoVmVjdG9yKWRlY2lzaW9uUG9pbnRTdGFjay5wZWVrKCk7CisgICAgICAgICAgICAgICAgICAgIGRlY2lzaW9uUG9pbnRTdGFjay5wdXNoKG9uZURvd24pOworCisgICAgICAgICAgICAgICAgICAgIC8vIGFwcGVuZCB0aGUgY3VycmVudCBkZWNpc2lvbiBwb2ludCBsaXN0IHRvIHRoZSBsaXN0IGJlbG93IGl0CisgICAgICAgICAgICAgICAgICAgIC8vIG9uIHRoZSBzdGFjayAodGhlIGxpc3Qgb2YgZXhpdCBwb2ludHMpLCBhbmQgcmVzdG9yZSB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gY3VycmVudCBkZWNpc2lvbiBwb2ludCBsaXN0IHRvIGl0cyBzdGF0ZSBiZWZvcmUgdGhlICgpIGV4cHJlc3Npb24KKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkZWNpc2lvblBvaW50TGlzdC5zaXplKCk7IGkrKykKKyAgICAgICAgICAgICAgICAgICAgICAgIG9uZURvd24uYWRkRWxlbWVudChkZWNpc2lvblBvaW50TGlzdC5lbGVtZW50QXQoaSkpOworICAgICAgICAgICAgICAgICAgICBkZWNpc2lvblBvaW50TGlzdCA9IChWZWN0b3IpdHdvRG93bi5jbG9uZSgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGEgKSBtYXJrcyB0aGUgZW5kIG9mIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycy4gIFdlIGRvIG9uZSBvZiB0d28gdGhpbmdzCisgICAgICAgICAgICAgICAgLy8gZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHNlcXVlbmNlIHJlcGVhdHMgKGkuZS4sIHdoZXRoZXIgdGhlICkgaXMgZm9sbG93ZWQKKyAgICAgICAgICAgICAgICAvLyBieSAqKTogIElmIHRoZSBzZXF1ZW5jZSBkb2Vzbid0IHJlcGVhdCwgdGhlbiB0aGUgZXhpdC1wb2ludCBsaXN0IGlzIG1lcmdlZAorICAgICAgICAgICAgICAgIC8vIHdpdGggdGhlIGN1cnJlbnQgZGVjaXNpb24gcG9pbnQgbGlzdCBhbmQgdGhlIGRlY2lzaW9uIHBvaW50IGxpc3QgZnJvbSBiZWZvcmUKKyAgICAgICAgICAgICAgICAvLyB0aGUgKCkgaXMgdGhyb3duIGF3YXkuICBJZiB0aGUgc2VxdWVuY2UgZG9lcyByZXBlYXQsIHRoZW4gd2UgZmlzaCBvdXQgdGhlCisgICAgICAgICAgICAgICAgLy8gc3RhdGUgd2Ugd2VyZSBpbiBiZWZvcmUgdGhlICggYW5kIGNvcHkgYWxsIG9mIGl0cyBmb3J3YXJkIHRyYW5zaXRpb25zCisgICAgICAgICAgICAgICAgLy8gKGkuZS4sIGV2ZXJ5IHRyYW5zaXRpb24gYWRkZWQgYnkgdGhlICgpIGV4cHJlc3Npb24pIGludG8gZXZlcnkgc3RhdGUgaW4gdGhlCisgICAgICAgICAgICAgICAgLy8gZXhpdC1wb2ludCBsaXN0IGFuZCB0aGUgY3VycmVudCBkZWNpc2lvbiBwb2ludCBsaXN0LiAgVGhlIGN1cnJlbnQgZGVjaXNpb24KKyAgICAgICAgICAgICAgICAvLyBwb2ludCBsaXN0IGlzIHRoZW4gbWVyZ2VkIHdpdGggYm90aCB0aGUgZXhpdC1wb2ludCBsaXN0IEFORCB0aGUgc2F2ZWQgdmVyc2lvbgorICAgICAgICAgICAgICAgIC8vIG9mIHRoZSBkZWNpc2lvbiBwb2ludCBsaXN0IGZyb20gYmVmb3JlIHRoZSAoKS4gIFRoZW4gd2UgdGhyb3cgb3V0IHRoZSAqLgorICAgICAgICAgICAgICAgIGlmIChjID09ICcpJykgeworCisgICAgICAgICAgICAgICAgICAgIC8vIHB1bGwgdGhlIGV4aXQgcG9pbnQgbGlzdCBvZmYgdGhlIHN0YWNrLCBtZXJnZSBpdCB3aXRoIHRoZSBjdXJyZW50CisgICAgICAgICAgICAgICAgICAgIC8vIGRlY2lzaW9uIHBvaW50IGxpc3QsIGFuZCBtYWtlIHRoZSBtZXJnZWQgdmVyc2lvbiB0aGUgY3VycmVudAorICAgICAgICAgICAgICAgICAgICAvLyBkZWNpc2lvbiBwb2ludCBsaXN0CisgICAgICAgICAgICAgICAgICAgIFZlY3RvciBleGl0UG9pbnRzID0gKFZlY3RvcilkZWNpc2lvblBvaW50U3RhY2sucG9wKCk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjaXNpb25Qb2ludExpc3Quc2l6ZSgpOyBpKyspCisgICAgICAgICAgICAgICAgICAgICAgICBleGl0UG9pbnRzLmFkZEVsZW1lbnQoZGVjaXNpb25Qb2ludExpc3QuZWxlbWVudEF0KGkpKTsKKyAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25Qb2ludExpc3QgPSBleGl0UG9pbnRzOworCisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSApIGlzbid0IGZvbGxvd2VkIGJ5IGEgKiwgKyBvciA/LCB0aGVuIGFsbCB3ZSBoYXZlIHRvIGRvIGlzIHRocm93CisgICAgICAgICAgICAgICAgICAgIC8vIGF3YXkgdGhlIG90aGVyIGxpc3Qgb24gdGhlIGRlY2lzaW9uIHBvaW50IHN0YWNrLCBhbmQgd2UncmUgZG9uZQorICAgICAgICAgICAgICAgICAgICBpZiAocCArIDEgPj0gcnVsZS5sZW5ndGgoKSB8fCAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5jaGFyQXQocCArIDEpICE9ICcqJyAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUuY2hhckF0KHAgKyAxKSAhPSAnKycgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLmNoYXJBdChwICsgMSkgIT0gJz8nKQorICAgICAgICAgICAgICAgICAgICApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlY2lzaW9uUG9pbnRTdGFjay5wb3AoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIGJ1dCBpZiB0aGUgc2VxdWVuY2UgaXMgY29uZGl0aW9uYWwgb3IgaXQgcmVwZWF0cywKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBhIGxvdCBtb3JlIHdvcmsgdG8gZG8uLi4KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdyBleGl0UG9pbnRzIGFuZCBkZWNpc2lvblBvaW50TGlzdCBoYXZlIHRvIHBvaW50IHRvIGVxdWl2YWxlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZlY3RvcnMsIGJ1dCBub3QgdGhlIFNBTUUgdmVjdG9yCisgICAgICAgICAgICAgICAgICAgICAgICBleGl0UG9pbnRzID0gKFZlY3RvcilkZWNpc2lvblBvaW50TGlzdC5jbG9uZSgpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBwb3AgdGhlIG9yaWdpbmFsIGRlY2lzaW9uIHBvaW50IGxpc3Qgb2ZmIHRoZSBzdGFjaworICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yIHRlbXAgPSAoVmVjdG9yKWRlY2lzaW9uUG9pbnRTdGFjay5wb3AoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2Ugc3F1aXJyZWxlZCBhd2F5IHRoZSByb3cgbnVtYmVyIG9mIG91ciBlbnRyeSBwb2ludCBsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBvcmlnaW5hbCBkZWNpc2lvbiBwb2ludCBsaXN0LiAgRmlzaAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCBzdGF0ZSBudW1iZXIgb3V0IGFuZCByZXRyaWV2ZSB0aGUgZW50cnkgcG9pbnQgbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRlbXBTdGF0ZU51bSA9ICgoSW50ZWdlcil0ZW1wLmZpcnN0RWxlbWVudCgpKS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnRbXSB0ZW1wU3RhdGUgPSAoc2hvcnRbXSl0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQodGVtcFN0YXRlTnVtKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWVyZ2UgdGhlIG9yaWdpbmFsIGRlY2lzaW9uIHBvaW50IGxpc3Qgd2l0aCB0aGUgY3VycmVudAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVjaXNpb24gcG9pbnQgbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJ1bGUuY2hhckF0KHAgKyAxKSA9PSAnPycgfHwgcnVsZS5jaGFyQXQocCArIDEpID09ICcqJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGVjaXNpb25Qb2ludExpc3Quc2l6ZSgpOyBpKyspCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAuYWRkRWxlbWVudChkZWNpc2lvblBvaW50TGlzdC5lbGVtZW50QXQoaSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2lzaW9uUG9pbnRMaXN0ID0gdGVtcDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmluYWxseSwgZm9yICogYW5kICsgY29weSBldmVyeSBmb3J3YXJkIHJlZmVyZW5jZSBmcm9tIHRoZSBlbnRyeSBwb2ludAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGlzdCBpbnRvIGV2ZXJ5IHN0YXRlIGluIHRoZSBuZXcgZGVjaXNpb24gcG9pbnQgbGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJ1bGUuY2hhckF0KHAgKyAxKSA9PSAnKycgfHwgcnVsZS5jaGFyQXQocCArIDEpID09ICcqJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcFN0YXRlLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wU3RhdGVbaV0gPiB0ZW1wU3RhdGVOdW0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlVGFibGUoZXhpdFBvaW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENoYXJhY3RlcigoY2hhcikoaSArIDB4MTAwKSkudG9TdHJpbmcoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFN0YXRlW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIGxhc3RTdGF0ZSBhbmQgY3VycmVudFN0YXRlLCBhbmQgdGhyb3cgYXdheSB0aGUgKiwgKywgb3IgPworICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFN0YXRlID0gY3VycmVudFN0YXRlOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0YXRlID0gdGVtcFN0YXRlVGFibGUuc2l6ZSgpIC0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGEgLyBtYXJrcyB0aGUgcG9zaXRpb24gd2hlcmUgdGhlIGJyZWFrIGlzIHRvIGdvIGlmIHRoZSBjaGFyYWN0ZXIgc2VxdWVuY2UKKyAgICAgICAgICAgICAgICAvLyBtYXRjaGVzIHRoaXMgcnVsZS4gIFdlIHVwZGF0ZSB0aGUgZmxhZyB3b3JkIG9mIGV2ZXJ5IHN0YXRlIG9uIHRoZSBkZWNpc2lvbgorICAgICAgICAgICAgICAgIC8vIHBvaW50IGxpc3QgdG8gbWFyayB0aGVtIGFzIGVuZGluZyBzdGF0ZXMsIGFuZCB0YWtlIG5vdGUgb2YgdGhlIGZhY3QgdGhhdAorICAgICAgICAgICAgICAgIC8vIHdlJ3ZlIHNlZW4gdGhlIHNsYXNoCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gJy8nKSB7CisgICAgICAgICAgICAgICAgICAgIHNhd0Vhcmx5QnJlYWsgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY2lzaW9uUG9pbnRMaXN0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IChzaG9ydFtdKXRlbXBTdGF0ZVRhYmxlLmVsZW1lbnRBdCgoKEludGVnZXIpZGVjaXNpb25Qb2ludExpc3QuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudEF0KGkpKS5pbnRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlW251bUNhdGVnb3JpZXNdIHw9IExPT0tBSEVBRF9TVEFURV9GTEFHOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gaWYgd2UgZ2V0IGhlcmUgd2l0aG91dCBleGVjdXRpbmcgYW55IG9mIHRoZSBhYm92ZSBjbGF1c2VzLCB3ZSBoYXZlIGEKKyAgICAgICAgICAgICAgICAvLyBzeW50YXggZXJyb3IuICBIb3dldmVyLCBmb3Igbm93IHdlIGp1c3QgaWdub3JlIHRoZSBvZmZlbmRpbmcgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgLy8gYW5kIG1vdmUgb24KKy8qCitkZWJ1Z1ByaW50bG4oIj09PT1QYXJzZWQgXCIiICsgcnVsZS5zdWJzdHJpbmcoMCwgcCArIDEpICsgIlwiLi4uIik7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgIGN1cnJlbnRTdGF0ZSA9ICIgKyBjdXJyZW50U3RhdGUpOworZGVidWdQcmludFZlY3Rvck9mVmVjdG9ycygiICAgICAgZGVjaXNpb25Qb2ludFN0YWNrOiIsICIgICAgICAgICIsIGRlY2lzaW9uUG9pbnRTdGFjayk7CitkZWJ1Z1ByaW50VmVjdG9yKCIgICAgICAgICIsIGRlY2lzaW9uUG9pbnRMaXN0KTsKK2RlYnVnUHJpbnRWZWN0b3IoIiAgICAgIGxvb3BpbmdTdGF0ZXMgPSAiLCBsb29waW5nU3RhdGVzKTsKK2RlYnVnUHJpbnRWZWN0b3IoIiAgICAgIHN0YXRlc1RvQmFja2ZpbGwgPSAiLCBzdGF0ZXNUb0JhY2tmaWxsKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiICAgICAgc2F3RWFybHlCcmVhayA9ICIgKyBzYXdFYXJseUJyZWFrKTsKK2RlYnVnUHJpbnRUZW1wU3RhdGVUYWJsZSgpOworKi8KKworICAgICAgICAgICAgICAgIC8vIGNsZWFyTG9vcGluZ1N0YXRlcyBpcyBhIHNpZ25hbCBiYWNrIGZyb20gdXBkYXRlU3RhdGVUYWJsZSgpIHRoYXQgd2UndmUKKyAgICAgICAgICAgICAgICAvLyB0cmFuc2l0aW9uZWQgdG8gYSBzdGF0ZSB0aGF0IHdvbid0IGxvb3AgYmFjayB0byB0aGUgY3VycmVudCBsb29waW5nCisgICAgICAgICAgICAgICAgLy8gc3RhdGUuICAoSW4gb3RoZXIgd29yZHMsIHdlJ3ZlIGdvdHRlbiB0byBhIHBvaW50IHdoZXJlIHdlIGNhbiBubyBsb25nZXIKKyAgICAgICAgICAgICAgICAvLyBnbyBiYWNrIGludG8gYSAqPyB3ZSBzYXcgZWFybGllci4pICBDbGVhciBvdXQgdGhlIGxpc3Qgb2YgbG9vcGluZyBzdGF0ZXMKKyAgICAgICAgICAgICAgICAvLyBhbmQgYmFja2ZpbGwgYW55IHN0YXRlcyB0aGF0IG5lZWQgdG8gYmUgYmFja2ZpbGxlZC4KKyAgICAgICAgICAgICAgICBpZiAoY2xlYXJMb29waW5nU3RhdGVzKSB7CisgICAgICAgICAgICAgICAgICAgIHNldExvb3BpbmdTdGF0ZXMobnVsbCwgZGVjaXNpb25Qb2ludExpc3QpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGFkdmFuY2UgdG8gdGhlIG5leHQgY2hhcmFjdGVyLCBub3cgdGhhdCB3ZSd2ZSBwcm9jZXNzZWQgdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRoaXMgdGFrZXMgY2FyZSBvZiBiYWNrZmlsbGluZyBhbnkgc3RhdGVzIHRoYXQgc3RpbGwgbmVlZCB0byBiZSBiYWNrZmlsbGVkCisgICAgICAgICAgICBzZXRMb29waW5nU3RhdGVzKG51bGwsIGRlY2lzaW9uUG9pbnRMaXN0KTsKKworICAgICAgICAgICAgLy8gd2hlbiB3ZSByZWFjaCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcsIHdlIGRvIGEgcG9zdHByb2Nlc3Npbmcgc3RlcCB0byBtYXJrIHRoZQorICAgICAgICAgICAgLy8gZW5kIHN0YXRlcy4gIFRoZSBkZWNpc2lvbiBwb2ludCBsaXN0IGNvbnRhaW5zIGV2ZXJ5IHN0YXRlIHRoYXQgY2FuIHRyYW5zaXRpb24KKyAgICAgICAgICAgIC8vIHRvIHRoZSBlbmQgc3RhdGUtLSB0aGF0IGlzLCBldmVyeSBzdGF0ZSB0aGF0IGlzIHRoZSBsYXN0IHN0YXRlIGluIGEgc2VxdWVuY2UKKyAgICAgICAgICAgIC8vIHRoYXQgbWF0Y2hlcyB0aGUgcnVsZS4gIEFsbCBvZiB0aGVzZSBzdGF0ZXMgYXJlIGNvbnNpZGVyZWQgIm1hcmsgc3RhdGVzIgorICAgICAgICAgICAgLy8gb3IgImFjY2VwdGluZyBzdGF0ZXMiLS0gdGhhdCBpcywgc3RhdGVzIHRoYXQgY2F1c2UgdGhlIHBvc2l0aW9uIHJldHVybmVkIGZyb20KKyAgICAgICAgICAgIC8vIG5leHQoKSB0byBiZSB1cGRhdGVkLiAgQSBtYXJrIHN0YXRlIHJlcHJlc2VudHMgYSBwb3NzaWJsZSBicmVhayBwb3NpdGlvbi4KKyAgICAgICAgICAgIC8vIFRoaXMgYWxsb3dzIHVzIHRvIGxvb2sgYWhlYWQgYW5kIHJlbWVtYmVyIGhvdyBmYXIgdGhlIHJ1bGUgbWF0Y2hlZAorICAgICAgICAgICAgLy8gYmVmb3JlIGZvbGxvd2luZyB0aGUgbmV3IGJyYW5jaCAoc2VlIG5leHQoKSBmb3IgbW9yZSBpbmZvcm1hdGlvbikuCisgICAgICAgICAgICAvLyBUaGUgdGVtcG9yYXJ5IHN0YXRlIHRhYmxlIGhhcyBhbiBleHRyYSAiZmxhZyBjb2x1bW4iIGF0IHRoZSBlbmQgd2hlcmUgdGhpcworICAgICAgICAgICAgLy8gaW5mb3JtYXRpb24gaXMgc3RvcmVkLiAgV2UgbWFyayB0aGUgZW5kIHN0YXRlcyBieSBzZXR0aW5nIGEgZmxhZyBpbiB0aGVpcgorICAgICAgICAgICAgLy8gZmxhZyBjb2x1bW4uCisgICAgICAgICAgICAvLyBOb3cgaWYgd2Ugc2F3IHRoZSAvIGluIHRoZSBydWxlLCB0aGVuIGV2ZXJ5dGhpbmcgYWZ0ZXIgaXQgaXMgbG9va2FoZWFkCisgICAgICAgICAgICAvLyBtYXRlcmlhbCBhbmQgdGhlIGJyZWFrIHJlYWxseSBnb2VzIHdoZXJlIHRoZSBzbGFzaCBpcy4gIEluIHRoaXMgY2FzZSwKKyAgICAgICAgICAgIC8vIHdlIG1hcmsgdGhlc2Ugc3RhdGVzIGFzIEJPVEggYWNjZXB0aW5nIHN0YXRlcyBhbmQgbG9va2FoZWFkIHN0YXRlcy4gIFRoaXMKKyAgICAgICAgICAgIC8vIHNpZ25hbHMgdGhhdCB0aGVzZSBzdGF0ZXMgY2F1c2UgdGhlIGJyZWFrIHBvc2l0aW9uIHRvIGJlIHVwZGF0ZWQgdG8gdGhlCisgICAgICAgICAgICAvLyBwb3NpdGlvbiBvZiB0aGUgc2xhc2ggcmF0aGVyIHRoYW4gdGhlIGN1cnJlbnQgYnJlYWsgcG9zaXRpb24uCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRlY2lzaW9uUG9pbnRMaXN0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgaW50IHJvd051bSA9ICgoSW50ZWdlcilkZWNpc2lvblBvaW50TGlzdC5lbGVtZW50QXQoaSkpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgc3RhdGUgPSAoc2hvcnRbXSl0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQocm93TnVtKTsKKyAgICAgICAgICAgICAgICBzdGF0ZVtudW1DYXRlZ29yaWVzXSB8PSBFTkRfU1RBVEVfRkxBRzsKKyAgICAgICAgICAgICAgICBpZiAoc2F3RWFybHlCcmVhaykgeworICAgICAgICAgICAgICAgICAgICBzdGF0ZVtudW1DYXRlZ29yaWVzXSB8PSBMT09LQUhFQURfU1RBVEVfRkxBRzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisvKgorZGVidWdQcmludGxuKCI9PT09UGFyc2VkIFwiIiArIHJ1bGUgKyAiOyIpOworU3lzdGVtLm91dC5wcmludGxuKCk7CitTeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgIGN1cnJlbnRTdGF0ZSA9ICIgKyBjdXJyZW50U3RhdGUpOworZGVidWdQcmludFZlY3Rvck9mVmVjdG9ycygiICAgICAgZGVjaXNpb25Qb2ludFN0YWNrOiIsICIgICAgICAgICIsIGRlY2lzaW9uUG9pbnRTdGFjayk7CitkZWJ1Z1ByaW50VmVjdG9yKCIgICAgICAgICIsIGRlY2lzaW9uUG9pbnRMaXN0KTsKK2RlYnVnUHJpbnRWZWN0b3IoIiAgICAgIGxvb3BpbmdTdGF0ZXMgPSAiLCBsb29waW5nU3RhdGVzKTsKK2RlYnVnUHJpbnRWZWN0b3IoIiAgICAgIHN0YXRlc1RvQmFja2ZpbGwgPSAiLCBzdGF0ZXNUb0JhY2tmaWxsKTsKK1N5c3RlbS5vdXQucHJpbnRsbigiICAgICAgc2F3RWFybHlCcmVhayA9ICIgKyBzYXdFYXJseUJyZWFrKTsKK2RlYnVnUHJpbnRUZW1wU3RhdGVUYWJsZSgpOworKi8KKyAgICAgICAgfQorCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVwZGF0ZSBlbnRyaWVzIGluIHRoZSBzdGF0ZSB0YWJsZSwgYW5kIG1lcmdlIHN0YXRlcyB3aGVuIG5lY2Vzc2FyeSB0byBrZWVwCisgICAgICAgICAqIHRoZSB0YWJsZSBkZXRlcm1pbmlzdGljLgorICAgICAgICAgKiBAcGFyYW0gcm93cyBUaGUgbGlzdCBvZiByb3dzIHRoYXQgbmVlZCB1cGRhdGluZyAodGhlIGRlY2lzaW9uIHBvaW50IGxpc3QpCisgICAgICAgICAqIEBwYXJhbSBwZW5kaW5nQ2hhcnMgQSBjaGFyYWN0ZXIgY2F0ZWdvcnkgbGlzdCwgZW5jb2RlZCBpbiBhIFN0cmluZy4gIFRoaXMgaXMgdGhlCisgICAgICAgICAqIGxpc3Qgb2YgdGhlIGNvbHVtbnMgdGhhdCBuZWVkIHVwZGF0aW5nLgorICAgICAgICAgKiBAcGFyYW0gbmV3VmFsdWUgVXBkYXRlIHRoZSBjZWxscyBzcGVjZmllZCBhYm92ZSB0byBjb250YWluIHRoaXMgdmFsdWUKKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCB1cGRhdGVTdGF0ZVRhYmxlKFZlY3RvciByb3dzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcGVuZGluZ0NoYXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBuZXdWYWx1ZSkgeworICAgICAgICAgICAgLy8gY3JlYXRlIGEgZHVtbXkgc3RhdGUgdGhhdCBoYXMgdGhlIHNwZWNpZmllZCByb3cgbnVtYmVyIChuZXdWYWx1ZSkgaW4KKyAgICAgICAgICAgIC8vIHRoZSBjZWxscyB0aGF0IG5lZWQgdG8gYmUgdXBkYXRlZCAodGhvc2Ugc3BlY2lmaWVkIGJ5IHBlbmRpbmdDaGFycykKKyAgICAgICAgICAgIC8vIGFuZCAwIGluIHRoZSBvdGhlciBjZWxscworICAgICAgICAgICAgc2hvcnRbXSBuZXdWYWx1ZXMgPSBuZXcgc2hvcnRbbnVtQ2F0ZWdvcmllcyArIDFdOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwZW5kaW5nQ2hhcnMubGVuZ3RoKCk7IGkrKykKKyAgICAgICAgICAgICAgICBuZXdWYWx1ZXNbKGludCkocGVuZGluZ0NoYXJzLmNoYXJBdChpKSkgLSAweDEwMF0gPSBuZXdWYWx1ZTsKKworICAgICAgICAgICAgLy8gZ28gdGhyb3VnaCB0aGUgbGlzdCBvZiByb3dzIHRvIHVwZGF0ZSwgYW5kIHVwZGF0ZSB0aGVtIGJ5IGNhbGxpbmcKKyAgICAgICAgICAgIC8vIG1lcmdlU3RhdGVzKCkgdG8gbWVyZ2UgdGhlbSB0aGUgdGhlIGR1bW15IHN0YXRlIHdlIGNyZWF0ZWQKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93cy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIG1lcmdlU3RhdGVzKCgoSW50ZWdlcilyb3dzLmVsZW1lbnRBdChpKSkuaW50VmFsdWUoKSwgbmV3VmFsdWVzLCByb3dzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgcmVhbCB3b3JrIG9mIG1ha2luZyB0aGUgc3RhdGUgdGFibGUgZGV0ZXJtaW5pc3RpYyBoYXBwZW5zIGhlcmUuICBUaGlzIGZ1bmN0aW9uCisgICAgICAgICAqIG1lcmdlcyBhIHN0YXRlIGluIHRoZSBzdGF0ZSB0YWJsZSAoc3BlY2lmaWVkIGJ5IHJvd051bSkgd2l0aCBhIHN0YXRlIHRoYXQgaXMKKyAgICAgICAgICogcGFzc2VkIGluIChuZXdWYWx1ZXMpLiAgVGhlIGJhc2ljIHByb2Nlc3MgaXMgdG8gY29weSB0aGUgbm9uemVybyBjZWxscyBpbiBuZXdTdGF0ZXMKKyAgICAgICAgICogaW50byB0aGUgc3RhdGUgaW4gdGhlIHN0YXRlIHRhYmxlICh3ZSdsbCBjYWxsIHRoYXQgb2xkVmFsdWVzKS4gIElmIHRoZXJlJ3MgYQorICAgICAgICAgKiBjb2xsaXNpb24gKGkuZS4sIGlmIHRoZSBzYW1lIGNlbGwgaGFzIGEgbm9uemVybyB2YWx1ZSBpbiBib3RoIHN0YXRlcywgYW5kIGl0J3MKKyAgICAgICAgICogbm90IHRoZSBTQU1FIHZhbHVlKSwgdGhlbiB3ZSBoYXZlIHRvIHJlY29uY2lsZSB0aGUgY29sbGlzaW9uLiAgV2UgZG8gdGhpcyBieQorICAgICAgICAgKiBjcmVhdGluZyBhIG5ldyBzdGF0ZSwgYWRkaW5nIGl0IHRvIHRoZSBlbmQgb2YgdGhlIHN0YXRlIHRhYmxlLCBhbmQgdXNpbmcgdGhpcworICAgICAgICAgKiBmdW5jdGlvbiByZWN1cnNpdmVseSB0byBtZXJnZSB0aGUgb3JpZ2luYWwgdHdvIHN0YXRlcyBpbnRvIGEgc2luZ2xlLCBjb21iaW5lZAorICAgICAgICAgKiBzdGF0ZS4gIFRoaXMgcHJvY2VzcyBtYXkgaGFwcGVuIHJlY3Vyc2l2ZWx5IChpLmUuLCBlYWNoIHN1Y2Nlc3NpdmUgbGV2ZWwgbWF5CisgICAgICAgICAqIGludm9sdmUgY29sbGlzaW9ucykuICBUbyBwcmV2ZW50IGluZmluaXRlIHJlY3Vyc2lvbiwgd2Uga2VlcCBhIGxvZyBvZiBtZXJnZQorICAgICAgICAgKiBvcGVyYXRpb25zLiAgQW55IHRpbWUgd2UncmUgbWVyZ2luZyB0d28gc3RhdGVzIHdlJ3ZlIG1lcmdlZCBiZWZvcmUsIHdlIGNhbiBqdXN0CisgICAgICAgICAqIHN1cHBseSB0aGUgcm93IG51bWJlciBmb3IgdGhlIHJlc3VsdCBvZiB0aGF0IG1lcmdlIG9wZXJhdGlvbiByYXRoZXIgdGhhbiBjcmVhdGluZworICAgICAgICAgKiBhIG5ldyBzdGF0ZSBqdXN0IGxpa2UgaXQuCisgICAgICAgICAqIEBwYXJhbSByb3dOdW0gVGhlIHJvdyBudW1iZXIgaW4gdGhlIHN0YXRlIHRhYmxlIG9mIHRoZSBzdGF0ZSB0byBiZSB1cGRhdGVkCisgICAgICAgICAqIEBwYXJhbSBuZXdWYWx1ZXMgVGhlIHN0YXRlIHRvIG1lcmdlIGl0IHdpdGguCisgICAgICAgICAqIEBwYXJhbSByb3dzQmVpbmdVcGRhdGVkIEEgY29weSBvZiB0aGUgbGlzdCBvZiByb3dzIHBhc3NlZCB0byB1cGRhdGVTdGF0ZVRhYmxlKCkKKyAgICAgICAgICogKGl0c2VsZiBhIGNvcHkgb2YgdGhlIGRlY2lzaW9uIHBvaW50IGxpc3QgZnJvbSBwYXJzZVJ1bGUoKSkuICBOZXdseS1jcmVhdGVkCisgICAgICAgICAqIHN0YXRlcyBnZXQgYWRkZWQgdG8gdGhlIGRlY2lzaW9uIHBvaW50IGxpc3QgaWYgdGhlaXIgInBhcmVudHMiIHdlcmUgb24gaXQuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgbWVyZ2VTdGF0ZXMoaW50IHJvd051bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0W10gbmV3VmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yIHJvd3NCZWluZ1VwZGF0ZWQpIHsKKyAgICAgICAgICAgIHNob3J0W10gb2xkVmFsdWVzID0gKHNob3J0W10pKHRlbXBTdGF0ZVRhYmxlLmVsZW1lbnRBdChyb3dOdW0pKTsKKy8qCitTeXN0ZW0ub3V0LnByaW50KCIqKipNZXJnaW5nICIgKyByb3dOdW0gKyAiOiIpOworZm9yIChpbnQgaSA9IDA7IGkgPCBvbGRWYWx1ZXMubGVuZ3RoOyBpKyspIFN5c3RlbS5vdXQucHJpbnQoIlx0IiArIG9sZFZhbHVlc1tpXSk7CitTeXN0ZW0ub3V0LnByaW50bG4oKTsKK1N5c3RlbS5vdXQucHJpbnQoIiAgICB3aXRoICAgXHQiKTsKK2ZvciAoaW50IGkgPSAwOyBpIDwgbmV3VmFsdWVzLmxlbmd0aDsgaSsrKSBTeXN0ZW0ub3V0LnByaW50KCJcdCIgKyBuZXdWYWx1ZXNbaV0pOworU3lzdGVtLm91dC5wcmludGxuKCk7CisqLworCisgICAgICAgICAgICBib29sZWFuIGlzTG9vcGluZ1N0YXRlID0gbG9vcGluZ1N0YXRlcy5jb250YWlucyhuZXcgSW50ZWdlcihyb3dOdW0pKTsKKworICAgICAgICAgICAgLy8gZm9yIGVhY2ggb2YgdGhlIGNlbGxzIGluIHRoZSByb3dzIHdlJ3JlIHJlY29uY2lsaW5nLCBkby4uLgorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvbGRWYWx1ZXMubGVuZ3RoOyBpKyspIHsKKworICAgICAgICAgICAgICAgIC8vIGlmIHRoZXkgY29udGFpbiB0aGUgc2FtZSB2YWx1ZSwgd2UgZG9uJ3QgaGF2ZSB0byBkbyBhbnl0aGluZworICAgICAgICAgICAgICAgIGlmIChvbGRWYWx1ZXNbaV0gPT0gbmV3VmFsdWVzW2ldKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIG9sZFZhbHVlcyBpcyBhIGxvb3Bpbmcgc3RhdGUgYW5kIHRoZSBzdGF0ZSB0aGUgY3VycmVudCBjZWxsIHBvaW50cyB0bworICAgICAgICAgICAgICAgIC8vIGlzIHRvbywgdGhlbiB3ZSBjYW4ganVzdCBzdG9tcCBvdmVyIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoYXQgY2VsbCAoYW5kCisgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSBjbGVhci1sb29waW5nLXN0YXRlcyBmbGFnIGlmIG5lY2Vzc2FyeSkKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChpc0xvb3BpbmdTdGF0ZSAmJiBsb29waW5nU3RhdGVzLmNvbnRhaW5zKG5ldyBJbnRlZ2VyKG9sZFZhbHVlc1tpXSkpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChuZXdWYWx1ZXNbaV0gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9sZFZhbHVlc1tpXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJMb29waW5nU3RhdGVzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG9sZFZhbHVlc1tpXSA9IG5ld1ZhbHVlc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjdXJyZW50IGNlbGwgaW4gb2xkVmFsdWVzIGlzIDAsIGNvcHkgaW4gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUKKyAgICAgICAgICAgICAgICAvLyBmcm9tIG5ld1ZhbHVlcworICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9sZFZhbHVlc1tpXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG9sZFZhbHVlc1tpXSA9IG5ld1ZhbHVlc1tpXTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyB0aGUgbGFzdCBjb2x1bW4gb2YgZWFjaCByb3cgaXMgdGhlIGZsYWcgY29sdW1uLiAgVGFrZSBjYXJlIHRvIG1lcmdlIHRoZQorICAgICAgICAgICAgICAgIC8vIGZsYWcgd29yZHMgY29ycmVjdGx5CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaSA9PSBudW1DYXRlZ29yaWVzKSB7CisgICAgICAgICAgICAgICAgICAgIG9sZFZhbHVlc1tpXSA9IChzaG9ydCkoKG5ld1ZhbHVlc1tpXSAmIEFMTF9GTEFHUykgfCBvbGRWYWx1ZXNbaV0pOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGlmIGJvdGggbmV3VmFsdWVzIGFuZCBvbGRWYWx1ZXMgaGF2ZSBhIG5vbnplcm8gdmFsdWUgaW4gdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAvLyBjZWxsLCBhbmQgaXQgaXNuJ3QgdGhlIHNhbWUgdmFsdWUgYm90aCBwbGFjZXMuLi4KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChvbGRWYWx1ZXNbaV0gIT0gMCAmJiBuZXdWYWx1ZXNbaV0gIT0gMCkgeworCisgICAgICAgICAgICAgICAgICAgIC8vIGxvb2sgdXAgdGhpcyBwYWlyIG9mIGNlbGwgdmFsdWVzIGluIHRoZSBtZXJnZSBsaXN0LiAgSWYgaXQncworICAgICAgICAgICAgICAgICAgICAvLyBmb3VuZCwgdXBkYXRlIHRoZSBjZWxsIGluIG9sZFZhbHVlcyB0byBwb2ludCB0byB0aGUgbWVyZ2VkIHN0YXRlCisgICAgICAgICAgICAgICAgICAgIGludCBjb21iaW5lZFJvd051bSA9IHNlYXJjaE1lcmdlTGlzdChvbGRWYWx1ZXNbaV0sIG5ld1ZhbHVlc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb21iaW5lZFJvd051bSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvbGRWYWx1ZXNbaV0gPSAoc2hvcnQpY29tYmluZWRSb3dOdW07CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHdlIGhhdmUgdG8gcmVjb25jaWxlIHRoZW0uLi4KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb3B5IG91ciByb3cgbnVtYmVycyBpbnRvIHZhcmlhYmxlcyB0byBtYWtlIHRoaW5ncyBlYXNpZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBvbGRSb3dOdW0gPSBvbGRWYWx1ZXNbaV07CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmV3Um93TnVtID0gbmV3VmFsdWVzW2ldOworICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZWRSb3dOdW0gPSB0ZW1wU3RhdGVUYWJsZS5zaXplKCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZCB0aGlzIHBhaXIgb2Ygcm93IG51bWJlcnMgdG8gdGhlIG1lcmdlIGxpc3QgKGNyZWF0ZSBpdCBmaXJzdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZW4ndCBjcmVhdGVkIHRoZSBtZXJnZSBsaXN0IHlldCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZXJnZUxpc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlTGlzdCA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlTGlzdC5hZGRFbGVtZW50KG5ldyBpbnRbXSB7IG9sZFJvd051bSwgbmV3Um93TnVtLCBjb21iaW5lZFJvd051bSB9KTsKKworLy9TeXN0ZW0ub3V0LnByaW50bG4oIioqKkF0ICIgKyByb3dOdW0gKyAiLCBtZXJnaW5nICIgKyBvbGRSb3dOdW0gKyAiIGFuZCAiICsgbmV3Um93TnVtICsgIiBpbnRvICIgKyBjb21iaW5lZFJvd051bSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIG5ldyByb3cgdG8gcmVwcmVzZW50IHRoZSBtZXJnZWQgc3RhdGUsIGFuZCBjb3B5IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udGVudHMgb2Ygb2xkUm93IGludG8gaXQsIHRoZW4gYWRkIGl0IHRvIHRoZSBlbmQgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdGF0ZSB0YWJsZSBhbmQgdXBkYXRlIHRoZSBvcmlnaW5hbCByb3cgKG9sZFZhbHVlcykgdG8gcG9pbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIHRoZSBuZXcsIG1lcmdlZCwgc3RhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0W10gbmV3Um93ID0gbmV3IHNob3J0W251bUNhdGVnb3JpZXMgKyAxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0W10gb2xkUm93ID0gKHNob3J0W10pKHRlbXBTdGF0ZVRhYmxlLmVsZW1lbnRBdChvbGRSb3dOdW0pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkob2xkUm93LCAwLCBuZXdSb3csIDAsIG51bUNhdGVnb3JpZXMgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBTdGF0ZVRhYmxlLmFkZEVsZW1lbnQobmV3Um93KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9sZFZhbHVlc1tpXSA9IChzaG9ydCljb21iaW5lZFJvd051bTsKKworCisvL1N5c3RlbS5vdXQucHJpbnRsbigibGFzdE9sZFJvd051bSA9ICIgKyBsYXN0T2xkUm93TnVtKTsKKy8vU3lzdGVtLm91dC5wcmludGxuKCJsYXN0Q29tYmluZWRSb3dOdW0gPSAiICsgbGFzdENvbWJpbmVkUm93TnVtKTsKKy8vU3lzdGVtLm91dC5wcmludGxuKCJkZWNpc2lvblBvaW50TGlzdC5jb250YWlucyhsYXN0T2xkUm93TnVtKSA9ICIgKyBkZWNpc2lvblBvaW50TGlzdC5jb250YWlucyhuZXcgSW50ZWdlcihsYXN0T2xkUm93TnVtKSkpOworLy9TeXN0ZW0ub3V0LnByaW50bG4oImRlY2lzaW9uUG9pbnRMaXN0LmNvbnRhaW5zKGxhc3RDb21iaW5lZFJvd051bSkgPSAiICsgZGVjaXNpb25Qb2ludExpc3QuY29udGFpbnMobmV3IEludGVnZXIobGFzdENvbWJpbmVkUm93TnVtKSkpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZGVjaXNpb24gcG9pbnQgbGlzdCBjb250YWlucyBlaXRoZXIgb2YgdGhlIHBhcmVudCByb3dzLAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIGl0IHRvIGluY2x1ZGUgdGhlIG5ldyByb3cgYXMgd2VsbAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChkZWNpc2lvblBvaW50TGlzdC5jb250YWlucyhuZXcgSW50ZWdlcihvbGRSb3dOdW0pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBkZWNpc2lvblBvaW50TGlzdC5jb250YWlucyhuZXcgSW50ZWdlcihuZXdSb3dOdW0pKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhZGVjaXNpb25Qb2ludExpc3QuY29udGFpbnMobmV3IEludGVnZXIoY29tYmluZWRSb3dOdW0pKQorICAgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25Qb2ludExpc3QuYWRkRWxlbWVudChuZXcgSW50ZWdlcihjb21iaW5lZFJvd051bSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBkbyB0aGUgc2FtZSB0aGluZyB3aXRoIHRoZSBsaXN0IG9mIHJvd3MgYmVpbmcgdXBkYXRlZAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChyb3dzQmVpbmdVcGRhdGVkLmNvbnRhaW5zKG5ldyBJbnRlZ2VyKG9sZFJvd051bSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IHJvd3NCZWluZ1VwZGF0ZWQuY29udGFpbnMobmV3IEludGVnZXIobmV3Um93TnVtKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIXJvd3NCZWluZ1VwZGF0ZWQuY29udGFpbnMobmV3IEludGVnZXIoY29tYmluZWRSb3dOdW0pKQorICAgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaXNpb25Qb2ludExpc3QuYWRkRWxlbWVudChuZXcgSW50ZWdlcihjb21iaW5lZFJvd051bSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm93IChncm9hbikgZG8gdGhlIHNhbWUgdGhpbmcgZm9yIGFsbCB0aGUgZW50cmllcyBvbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlY2lzaW9uIHBvaW50IHN0YWNrCisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGRlY2lzaW9uUG9pbnRTdGFjay5zaXplKCk7IGsrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvciBkcGwgPSAoVmVjdG9yKWRlY2lzaW9uUG9pbnRTdGFjay5lbGVtZW50QXQoayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChkcGwuY29udGFpbnMobmV3IEludGVnZXIob2xkUm93TnVtKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGRwbC5jb250YWlucyhuZXcgSW50ZWdlcihuZXdSb3dOdW0pKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIWRwbC5jb250YWlucyhuZXcgSW50ZWdlcihjb21iaW5lZFJvd051bSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRwbC5hZGRFbGVtZW50KG5ldyBJbnRlZ2VyKGNvbWJpbmVkUm93TnVtKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSU5BTExZIChwdWZmIHB1ZmYgcHVmZiksIGNhbGwgbWVyZ2VTdGF0ZXMoKSByZWN1cnNpdmVseSB0byBjb3B5CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcm93IHJlZmVycmVkIHRvIGJ5IG5ld1ZhbHVlcyBpbnRvIHRoZSBuZXcgcm93IGFuZCByZXNvbHZlIGFueQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uZmxpY3RzIHRoYXQgY29tZSB1cCBhdCB0aGF0IGxldmVsCisgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZVN0YXRlcyhjb21iaW5lZFJvd051bSwgKHNob3J0W10pKHRlbXBTdGF0ZVRhYmxlLmVsZW1lbnRBdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdWYWx1ZXNbaV0pKSwgcm93c0JlaW5nVXBkYXRlZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIG1lcmdlIGxpc3QgaXMgYSBsaXN0IG9mIHBhaXJzIG9mIHJvd3MgdGhhdCBoYXZlIGJlZW4gbWVyZ2VkIHNvbWV3aGVyZSBpbgorICAgICAgICAgKiB0aGUgcHJvY2VzcyBvZiBidWlsZGluZyB0aGlzIHN0YXRlIHRhYmxlLCBhbG9uZyB3aXRoIHRoZSByb3cgbnVtYmVyIG9mIHRoZQorICAgICAgICAgKiByb3cgY29udGFpbmluZyB0aGUgbWVyZ2VkIHN0YXRlLiAgVGhpcyBmdW5jdGlvbiBsb29rcyB1cCBhIHBhaXIgb2Ygcm93IG51bWJlcnMKKyAgICAgICAgICogYW5kIHJldHVybnMgdGhlIHJvdyBudW1iZXIgb2YgdGhlIHJvdyB0aGV5IGNvbWJpbmUgaW50by4gIChJdCByZXR1cm5zIDAgaWYKKyAgICAgICAgICogdGhpcyBwYWlyIG9mIHJvd3MgaXNuJ3QgaW4gdGhlIG1lcmdlIGxpc3QuKQorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgc2VhcmNoTWVyZ2VMaXN0KGludCBhLCBpbnQgYikgeworICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gbWVyZ2UgbGlzdCwgdGhlcmUgb2J2aW91c2x5IGlzbid0IGFueXRoaW5nIGluIGl0CisgICAgICAgICAgICBpZiAobWVyZ2VMaXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCBmb3IgZWFjaCBlbGVtZW50IGluIHRoZSBtZXJnZSBsaXN0Li4uCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnRbXSBlbnRyeTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1lcmdlTGlzdC5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBlbnRyeSA9IChpbnRbXSkobWVyZ2VMaXN0LmVsZW1lbnRBdChpKSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBhIGhpdCBpZiB0aGUgdHdvIHJvdyBudW1iZXJzIG1hdGNoIHRoZSB0d28gcm93IG51bWJlcnMKKyAgICAgICAgICAgICAgICAgICAgLy8gaW4gdGhlIGJlZ2lubmluZyBvZiB0aGUgZW50cnkgKHRoZSB0d28gdGhhdCBjb21iaW5lKSwgaW4gZWl0aGVyCisgICAgICAgICAgICAgICAgICAgIC8vIG9yZGVyCisgICAgICAgICAgICAgICAgICAgIGlmICgoZW50cnlbMF0gPT0gYSAmJiBlbnRyeVsxXSA9PSBiKSB8fCAoZW50cnlbMF0gPT0gYiAmJiBlbnRyeVsxXSA9PSBhKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5WzJdOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgYWxzbyBoYXZlIGEgaGl0IGlmIG9uZSBvZiB0aGUgdHdvIHJvdyBudW1iZXJzIG1hdGNoZXMgdGhlIG1hcmdlZAorICAgICAgICAgICAgICAgICAgICAvLyByb3cgbnVtYmVyIGFuZCB0aGUgb3RoZXIgb25lIG1hdGNoZXMgb25lIG9mIHRoZSBvcmlnaW5hbCByb3cgbnVtYmVycworICAgICAgICAgICAgICAgICAgICBpZiAoKGVudHJ5WzJdID09IGEgJiYgKGVudHJ5WzBdID09IGIgfHwgZW50cnlbMV0gPT0gYikpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW50cnlbMl07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKChlbnRyeVsyXSA9PSBiICYmIChlbnRyeVswXSA9PSBhIHx8IGVudHJ5WzFdID09IGEpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5WzJdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byB1cGRhdGUgdGhlIGxpc3Qgb2YgY3VycmVudCBsb29vcGluZyBzdGF0ZXMgKGkuZS4sCisgICAgICAgICAqIHN0YXRlcyB0aGF0IGFyZSBjb250cm9sbGVkIGJ5IGEgKj8gY29uc3RydWN0KS4gIEl0IGJhY2tmaWxscyB2YWx1ZXMgZnJvbQorICAgICAgICAgKiB0aGUgbG9vcGluZyBzdGF0ZXMgaW50byB1bnBvcHVsYXRlZCBjZWxscyBvZiB0aGUgc3RhdGVzIHRoYXQgYXJlIGN1cnJlbnRseQorICAgICAgICAgKiBtYXJrZWQgZm9yIGJhY2tmaWxsaW5nLCBhbmQgdGhlbiB1cGRhdGVzIHRoZSBsaXN0IG9mIGxvb3Bpbmcgc3RhdGVzIHRvIGJlCisgICAgICAgICAqIHRoZSBuZXcgbGlzdAorICAgICAgICAgKiBAcGFyYW0gbmV3TG9vcGluZ1N0YXRlcyBUaGUgbGlzdCBvZiBuZXcgbG9vcGluZyBzdGF0ZXMKKyAgICAgICAgICogQHBhcmFtIGVuZFN0YXRlcyBUaGUgbGlzdCBvZiBzdGF0ZXMgdG8gdHJlYXQgYXMgZW5kIHN0YXRlcyAoc3RhdGVzIHRoYXQKKyAgICAgICAgICogY2FuIGV4aXQgdGhlIGxvb3ApLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNldExvb3BpbmdTdGF0ZXMoVmVjdG9yIG5ld0xvb3BpbmdTdGF0ZXMsIFZlY3RvciBlbmRTdGF0ZXMpIHsKKworICAgICAgICAgICAgLy8gaWYgdGhlIGN1cnJlbnQgbGlzdCBvZiBsb29waW5nIHN0YXRlcyBpc24ndCBlbXB0eSwgd2UgaGF2ZSB0byBiYWNrZmlsbAorICAgICAgICAgICAgLy8gdmFsdWVzIGZyb20gdGhlIGxvb3Bpbmcgc3RhdGVzIGludG8gdGhlIHN0YXRlcyB0aGF0IGFyZSB3YWl0aW5nIHRvIGJlCisgICAgICAgICAgICAvLyBiYWNrZmlsbGVkCisgICAgICAgICAgICBpZiAoIWxvb3BpbmdTdGF0ZXMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgaW50IGxvb3BpbmdTdGF0ZSA9ICgoSW50ZWdlcilsb29waW5nU3RhdGVzLmxhc3RFbGVtZW50KCkpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgaW50IHJvd051bTsKKworICAgICAgICAgICAgICAgIC8vIGRvbid0IGJhY2tmaWxsIGludG8gYW4gZW5kIHN0YXRlIE9SIGFueSBzdGF0ZSByZWFjaGFibGUgZnJvbSBhbiBlbmQgc3RhdGUKKyAgICAgICAgICAgICAgICAvLyAoc2luY2UgdGhlIHNlYXJjaCBmb3IgcmVhY2hhYmxlIHN0YXRlcyBpcyByZWN1cnNpdmUsIGl0J3Mgc3BsaXQgb3V0IGludG8KKyAgICAgICAgICAgICAgICAvLyBhIHNlcGFyYXRlIGZ1bmN0aW9uLCBlbGltaW5hdGVCYWNrZmlsbFN0YXRlcygpLCBiZWxvdykKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGVuZFN0YXRlcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBlbGltaW5hdGVCYWNrZmlsbFN0YXRlcygoKEludGVnZXIpZW5kU3RhdGVzLmVsZW1lbnRBdChpKSkuaW50VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gd2UgRE9OJ1QgYWN0dWFsbHkgYmFja2ZpbGwgdGhlIHN0YXRlcyB0aGF0IG5lZWQgdG8gYmUgYmFja2ZpbGxlZCBoZXJlLgorICAgICAgICAgICAgICAgIC8vIEluc3RlYWQsIHdlIE1BUksgdGhlbSBmb3IgYmFja2ZpbGxpbmcuICBUaGUgcmVhc29uIGZvciB0aGlzIGlzIHRoYXQgaWYKKyAgICAgICAgICAgICAgICAvLyB0aGVyZSBhcmUgbXVsdGlwbGUgcnVsZXMgaW4gdGhlIHN0YXRlLXRhYmxlIGRlc2NyaXB0aW9uLCB0aGUgbG9vcGluZworICAgICAgICAgICAgICAgIC8vIHN0YXRlcyBtYXkgaGF2ZSBzb21lIG9mIHRoZWlyIHZhbHVlcyBjaGFuZ2VkIGJ5IGEgc3VjY2VlZGluZyBydWxlLCBhbmQKKyAgICAgICAgICAgICAgICAvLyB0aGlzIHdvdWxkbid0IGJlIHJlZmxlY3RlZCBpbiB0aGUgYmFja2ZpbGxlZCBzdGF0ZXMuICBXZSBtYXJrIGEgc3RhdGUKKyAgICAgICAgICAgICAgICAvLyBmb3IgYmFja2ZpbGxpbmcgYnkgcHV0dGluZyB0aGUgcm93IG51bWJlciBvZiB0aGUgc3RhdGUgdG8gY29weSBmcm9tCisgICAgICAgICAgICAgICAgLy8gaW50byB0aGUgZmxhZyBjZWxsIGF0IHRoZSBlbmQgb2YgdGhlIHJvdworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RhdGVzVG9CYWNrZmlsbC5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgICAgICByb3dOdW0gPSAoKEludGVnZXIpc3RhdGVzVG9CYWNrZmlsbC5lbGVtZW50QXQoaSkpLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIHNob3J0W10gc3RhdGUgPSAoc2hvcnRbXSl0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQocm93TnVtKTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGVbbnVtQ2F0ZWdvcmllc10gPQorICAgICAgICAgICAgICAgICAgICAgICAgKHNob3J0KSgoc3RhdGVbbnVtQ2F0ZWdvcmllc10gJiBBTExfRkxBR1MpIHwgbG9vcGluZ1N0YXRlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RhdGVzVG9CYWNrZmlsbC5yZW1vdmVBbGxFbGVtZW50cygpOworICAgICAgICAgICAgICAgIGxvb3BpbmdTdGF0ZXMucmVtb3ZlQWxsRWxlbWVudHMoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG5ld0xvb3BpbmdTdGF0ZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxvb3BpbmdTdGF0ZXMgPSAoVmVjdG9yKW5ld0xvb3BpbmdTdGF0ZXMuY2xvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIHJlbW92ZXMgImVuZGluZyBzdGF0ZXMiIGFuZCBzdGF0ZXMgcmVhY2hhYmxlIGZyb20gdGhlbSBmcm9tIHRoZQorICAgICAgICAgKiBsaXN0IG9mIHN0YXRlcyB0byBiYWNrZmlsbC4KKyAgICAgICAgICogQHBhcmFtIFRoZSByb3cgbnVtYmVyIG9mIHRoZSBzdGF0ZSB0byByZW1vdmUgZnJvbSB0aGUgYmFja2ZpbGwgbGlzdAorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIGVsaW1pbmF0ZUJhY2tmaWxsU3RhdGVzKGludCBiYXNlU3RhdGUpIHsKKworICAgICAgICAgICAgLy8gZG9uJ3QgZG8gYW55dGhpbmcgdW5sZXNzIHRoaXMgc3RhdGUgaXMgYWN0dWFsbHkgaW4gdGhlIGJhY2tmaWxsIGxpc3QuLi4KKyAgICAgICAgICAgIGlmIChzdGF0ZXNUb0JhY2tmaWxsLmNvbnRhaW5zKG5ldyBJbnRlZ2VyKGJhc2VTdGF0ZSkpKSB7CisKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCBpcywgdGFrZSBpdCBvdXQKKyAgICAgICAgICAgICAgICBzdGF0ZXNUb0JhY2tmaWxsLnJlbW92ZUVsZW1lbnQobmV3IEludGVnZXIoYmFzZVN0YXRlKSk7CisKKyAgICAgICAgICAgICAgICAvLyB0aGVuIGdvIHRocm91Z2ggYW5kIHJlY3Vyc2l2ZWx5IGNhbGwgdGhpcyBmdW5jdGlvbiBmb3IgZXZlcnkKKyAgICAgICAgICAgICAgICAvLyBzdGF0ZSB0aGF0IHRoZSBiYXNlIHN0YXRlIHBvaW50cyB0bworICAgICAgICAgICAgICAgIHNob3J0W10gc3RhdGUgPSAoc2hvcnRbXSl0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQoYmFzZVN0YXRlKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNhdGVnb3JpZXM7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGVbaV0gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZWxpbWluYXRlQmFja2ZpbGxTdGF0ZXMoc3RhdGVbaV0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gY29tcGxldGVzIHRoZSBiYWNrZmlsbGluZyBwcm9jZXNzIGJ5IGFjdHVhbGx5IGRvaW5nIHRoZQorICAgICAgICAgKiBiYWNrZmlsbGluZyBvbiB0aGUgc3RhdGVzIHRoYXQgYXJlIG1hcmtlZCBmb3IgaXQKKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBiYWNrZmlsbExvb3BpbmdTdGF0ZXMoKSB7CisgICAgICAgICAgICBzaG9ydFtdIHN0YXRlOworICAgICAgICAgICAgc2hvcnRbXSBsb29waW5nU3RhdGUgPSBudWxsOworICAgICAgICAgICAgaW50IGxvb3BpbmdTdGF0ZVJvd051bSA9IDA7CisgICAgICAgICAgICBpbnQgZnJvbVN0YXRlOworCisgICAgICAgICAgICAvLyBmb3IgZWFjaCBzdGF0ZSBpbiB0aGUgc3RhdGUgdGFibGUuLi4KKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcFN0YXRlVGFibGUuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IChzaG9ydFtdKXRlbXBTdGF0ZVRhYmxlLmVsZW1lbnRBdChpKTsKKworICAgICAgICAgICAgICAgIC8vIGNoZWNrIHRoZSBzdGF0ZSdzIGZsYWcgd29yZCB0byBzZWUgaWYgaXQncyBtYXJrZWQgZm9yIGJhY2tmaWxsaW5nCisgICAgICAgICAgICAgICAgLy8gKGl0J3MgbWFya2VkIGZvciBiYWNrZmlsbGluZyBpZiBhbnkgYml0cyBvdGhlciB0aGFuIHRoZSB0d28gaGlnaC1vcmRlcgorICAgICAgICAgICAgICAgIC8vIGJpdHMgYXJlIHNldC0tIGlmIHRoZXkgYXJlLCB0aGVuIHRoZSBmbGFnIHdvcmQsIG1pbnVzIHRoZSB0d28gaGlnaCBiaXRzLAorICAgICAgICAgICAgICAgIC8vIGlzIHRoZSByb3cgbnVtYmVyIHRvIGNvcHkgZnJvbSkKKyAgICAgICAgICAgICAgICBmcm9tU3RhdGUgPSBzdGF0ZVtudW1DYXRlZ29yaWVzXSAmIH5BTExfRkxBR1M7CisgICAgICAgICAgICAgICAgaWYgKGZyb21TdGF0ZSA+IDApIHsKKworICAgICAgICAgICAgICAgICAgICAvLyBsb2FkIHVwIHRoZSBzdGF0ZSB0byBjb3B5IGZyb20gKGlmIHdlIGhhdmVuJ3QgYWxyZWFkeSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZyb21TdGF0ZSAhPSBsb29waW5nU3RhdGVSb3dOdW0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvb3BpbmdTdGF0ZVJvd051bSA9IGZyb21TdGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvb3BpbmdTdGF0ZSA9IChzaG9ydFtdKXRlbXBTdGF0ZVRhYmxlLmVsZW1lbnRBdChsb29waW5nU3RhdGVSb3dOdW0pOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gY2xlYXIgb3V0IHRoZSBiYWNrZmlsbCBwYXJ0IG9mIHRoZSBmbGFnIHdvcmQKKyAgICAgICAgICAgICAgICAgICAgc3RhdGVbbnVtQ2F0ZWdvcmllc10gJj0gQUxMX0ZMQUdTOworCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gZmlsbCBhbGwgemVybyBjZWxscyBpbiB0aGUgY3VycmVudCBzdGF0ZSB3aXRoIHZhbHVlcworICAgICAgICAgICAgICAgICAgICAvLyBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGNlbGxzIG9mIHRoZSBmcm9tU3RhdGUKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBzdGF0ZS5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlW2pdID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZVtqXSA9IGxvb3BpbmdTdGF0ZVtqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHN0YXRlW2pdID09IERPTlRfTE9PUF9GTEFHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVbal0gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoaXMgZnVuY3Rpb24gY29tcGxldGVzIHRoZSBzdGF0ZS10YWJsZS1idWlsZGluZyBwcm9jZXNzIGJ5IGRvaW5nIHNldmVyYWwKKyAgICAgICAgICogcG9zdHByb2Nlc3Npbmcgc3RlcHMgYW5kIGNvcHlpbmcgZXZlcnl0aGluZyBpbnRvIGl0cyBmaW5hbCByZXN0aW5nIHBsYWNlCisgICAgICAgICAqIGluIHRoZSBpdGVyYXRvciBpdHNlbGYKKyAgICAgICAgICogQHBhcmFtIGZvcndhcmQgVHJ1ZSBpZiB3ZSdyZSB3b3JraW5nIG9uIHRoZSBmb3J3YXJkIHN0YXRlIHRhYmxlCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgZmluaXNoQnVpbGRpbmdTdGF0ZVRhYmxlKGJvb2xlYW4gZm9yd2FyZCkgeworLy9kZWJ1Z1ByaW50VGVtcFN0YXRlVGFibGUoKTsKKyAgICAgICAgICAgIC8vIHN0YXJ0IGJ5IGJhY2tmaWxsaW5nIHRoZSBsb29waW5nIHN0YXRlcworICAgICAgICAgICAgYmFja2ZpbGxMb29waW5nU3RhdGVzKCk7CisvL2RlYnVnUHJpbnRUZW1wU3RhdGVUYWJsZSgpOworCisgICAgICAgICAgICBpbnRbXSByb3dOdW1NYXAgPSBuZXcgaW50W3RlbXBTdGF0ZVRhYmxlLnNpemUoKV07CisgICAgICAgICAgICBTdGFjayByb3dzVG9Gb2xsb3cgPSBuZXcgU3RhY2soKTsKKyAgICAgICAgICAgIHJvd3NUb0ZvbGxvdy5wdXNoKG5ldyBJbnRlZ2VyKDEpKTsKKyAgICAgICAgICAgIHJvd051bU1hcFsxXSA9IDE7CisKKyAgICAgICAgICAgIC8vIGRldGVybWluZSB3aGljaCBzdGF0ZXMgYXJlIG5vIGxvbmdlciByZWFjaGFibGUgZnJvbSB0aGUgc3RhcnQgc3RhdGUKKyAgICAgICAgICAgIC8vICh0aGUgcmVhY2hhYmxlIHN0YXRlcyB3aWxsIGhhdmUgdGhlaXIgcm93IG51bWJlcnMgaW4gdGhlIHJvdyBudW1iZXIKKyAgICAgICAgICAgIC8vIG1hcCwgYW5kIHRoZSBub25yZWFjaGFibGUgc3RhdGVzIHdpbGwgaGF2ZSB6ZXJvIGluIHRoZSByb3cgbnVtYmVyIG1hcCkKKyAgICAgICAgICAgIHdoaWxlIChyb3dzVG9Gb2xsb3cuc2l6ZSgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBpbnQgcm93TnVtID0gKChJbnRlZ2VyKXJvd3NUb0ZvbGxvdy5wb3AoKSkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBzaG9ydFtdIHJvdyA9IChzaG9ydFtdKSh0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQocm93TnVtKSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNhdGVnb3JpZXM7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpZiAocm93W2ldICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyb3dOdW1NYXBbcm93W2ldXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93TnVtTWFwW3Jvd1tpXV0gPSByb3dbaV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93c1RvRm9sbG93LnB1c2gobmV3IEludGVnZXIocm93W2ldKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisvKgorU3lzdGVtLm91dC5wcmludGxuKCJUaGUgZm9sbG93aW5nIHJvd3MgYXJlIG5vdCByZWFjaGFibGU6Iik7Citmb3IgKGludCBpID0gMTsgaSA8IHJvd051bU1hcC5sZW5ndGg7IGkrKykKK2lmIChyb3dOdW1NYXBbaV0gPT0gMCkgU3lzdGVtLm91dC5wcmludCgiXHQiICsgaSk7CitTeXN0ZW0ub3V0LnByaW50bG4oKTsKKyovCisKKyAgICAgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGJvb2xlYW4gbWFkZUNoYW5nZTsKKyAgICAgICAgICAgIGludCBuZXdSb3dOdW07CisKKyAgICAgICAgICAgIC8vIGFsZ29yaXRobSBmb3IgbWluaW1pemluZyB0aGUgbnVtYmVyIG9mIHN0YXRlcyBpbiB0aGUgdGFibGUgYWRhcHRlZCBmcm9tCisgICAgICAgICAgICAvLyBBaG8gJiBVbGxtYW4sICJQcmluY2lwbGVzIG9mIENvbXBpbGVyIERlc2lnbiIKKyAgICAgICAgICAgIC8vIFRoZSBiYXNpYyBpZGVhIGhlcmUgaXMgdG8gb3JnYW5pemUgdGhlIHN0YXRlcyBpbnRvIGNsYXNzZXMuICBXaGVuIHdlJ3JlIGRvbmUsCisgICAgICAgICAgICAvLyBhbGwgc3RhdGVzIGluIHRoZSBzYW1lIGNsYXNzIGNhbiBiZSBjb25zaWRlcmVkIGlkZW50aWNhbCBhbmQgYWxsIGJ1dCBvbmUgZWxpbWluYXRlZC4KKworICAgICAgICAgICAgLy8gaW5pdGlhbGx5IGFzc2lnbiBzdGF0ZXMgdG8gY2xhc3NlcyBiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIHBvcHVsYXRlZCBjZWxscyB0aGV5CisgICAgICAgICAgICAvLyBjb250YWluICh0aGUgY2xhc3MgbnVtYmVyIGlzIHRoZSBudW1iZXIgb2YgcG9wdWxhdGVkIGNlbGxzKQorICAgICAgICAgICAgaW50W10gc3RhdGVDbGFzc2VzID0gbmV3IGludFt0ZW1wU3RhdGVUYWJsZS5zaXplKCldOworICAgICAgICAgICAgaW50IG5leHRDbGFzcyA9IG51bUNhdGVnb3JpZXMgKyAxOworICAgICAgICAgICAgc2hvcnRbXSBzdGF0ZTEsIHN0YXRlMjsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgc3RhdGVDbGFzc2VzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHJvd051bU1hcFtpXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzdGF0ZTEgPSAoc2hvcnRbXSl0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBudW1DYXRlZ29yaWVzOyBqKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlMVtqXSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK3N0YXRlQ2xhc3Nlc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc3RhdGVDbGFzc2VzW2ldID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGVDbGFzc2VzW2ldID0gbmV4dENsYXNzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICsrbmV4dENsYXNzOworCisgICAgICAgICAgICAvLyB0aGVuLCBmb3IgZWFjaCBjbGFzcywgZWxlY3QgdGhlIGZpcnN0IG1lbWJlciBvZiB0aGF0IGNsYXNzIGFzIHRoYXQgY2xhc3MncworICAgICAgICAgICAgLy8gInJlcHJlc2VudGF0aXZlIi4gIEZvciBlYWNoIG1lbWJlciBvZiB0aGUgY2xhc3MsIGNvbXBhcmUgaXQgdG8gdGhlICJyZXByZXNlbnRhdGl2ZS4iCisgICAgICAgICAgICAvLyBJZiB0aGVyZSdzIGEgY29sdW1uIHBvc2l0aW9uIHdoZXJlIHRoZSBzdGF0ZSBiZWluZyB0ZXN0ZWQgdHJhbnNpdGlvbnMgdG8gYQorICAgICAgICAgICAgLy8gc3RhdGUgaW4gYSBESUZGRVJFTlQgY2xhc3MgZnJvbSB0aGUgY2xhc3Mgd2hlcmUgdGhlICJyZXByZXNlbnRhdGl2ZSIgdHJhbnNpdGlvbnMsCisgICAgICAgICAgICAvLyB0aGVuIG1vdmUgdGhlIHN0YXRlIGludG8gYSBuZXcgY2xhc3MuICBSZXBlYXQgdGhpcyBwcm9jZXNzIHVudGlsIG5vIG5ldyBjbGFzc2VzCisgICAgICAgICAgICAvLyBhcmUgY3JlYXRlZC4KKyAgICAgICAgICAgIGludCBjdXJyZW50Q2xhc3M7CisgICAgICAgICAgICBpbnQgbGFzdENsYXNzOworICAgICAgICAgICAgYm9vbGVhbiBzcGxpdDsKKworICAgICAgICAgICAgZG8geworLy9TeXN0ZW0ub3V0LnByaW50bG4oIk1ha2luZyBhIHBhc3MuLi4iKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50Q2xhc3MgPSAxOworICAgICAgICAgICAgICAgIGxhc3RDbGFzcyA9IG5leHRDbGFzczsKKyAgICAgICAgICAgICAgICB3aGlsZSAoY3VycmVudENsYXNzIDwgbmV4dENsYXNzKSB7CisvL1N5c3RlbS5vdXQucHJpbnQoIlN0YXRlcyBpbiBjbGFzcyAjIiArIGN1cnJlbnRDbGFzcyArIjoiKTsKKyAgICAgICAgICAgICAgICAgICAgc3BsaXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgc3RhdGUxID0gc3RhdGUyID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdGF0ZUNsYXNzZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZUNsYXNzZXNbaV0gPT0gY3VycmVudENsYXNzKSB7CisvL1N5c3RlbS5vdXQucHJpbnQoIlx0IiArIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZTEgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTEgPSAoc2hvcnRbXSl0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTIgPSAoc2hvcnRbXSl0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgc3RhdGUyLmxlbmd0aDsgaisrKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChqID09IG51bUNhdGVnb3JpZXMgJiYgc3RhdGUxW2pdICE9IHN0YXRlMltqXSAmJiBmb3J3YXJkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAoaiAhPSBudW1DYXRlZ29yaWVzICYmIHN0YXRlQ2xhc3Nlc1tzdGF0ZTFbal1dCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IHN0YXRlQ2xhc3Nlc1tzdGF0ZTJbal1dKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlQ2xhc3Nlc1tpXSA9IG5leHRDbGFzczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGxpdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChzcGxpdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytuZXh0Q2xhc3M7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKytjdXJyZW50Q2xhc3M7CisvL1N5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gd2hpbGUgKGxhc3RDbGFzcyAhPSBuZXh0Q2xhc3MpOworCisgICAgICAgICAgICAvLyBhdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHN0YXRlcyBpbiBhIGNsYXNzIGV4Y2VwdCB0aGUgZmlyc3Qgb25lICh0aGUKKyAgICAgICAgICAgIC8vInJlcHJlc2VudGF0aXZlIikgY2FuIGJlIGVsaW1pbmF0ZWQsIHNvIHVwZGF0ZSB0aGUgcm93LW51bWJlciBtYXAgYWNjb3JkaW5nbHkKKyAgICAgICAgICAgIGludFtdIHJlcHJlc2VudGF0aXZlcyA9IG5ldyBpbnRbbmV4dENsYXNzXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgc3RhdGVDbGFzc2VzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgICAgIGlmIChyZXByZXNlbnRhdGl2ZXNbc3RhdGVDbGFzc2VzW2ldXSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJlcHJlc2VudGF0aXZlc1tzdGF0ZUNsYXNzZXNbaV1dID0gaTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJvd051bU1hcFtpXSA9IHJlcHJlc2VudGF0aXZlc1tzdGF0ZUNsYXNzZXNbaV1dOworICAgICAgICAgICAgICAgIH0KKy8vU3lzdGVtLm91dC5wcmludGxuKCJSZW51bWJlcmluZy4uLiIpOworCisgICAgICAgICAgICAvLyByZW51bWJlciBhbGwgcmVtYWluaW5nIHJvd3MuLi4KKyAgICAgICAgICAgIC8vIGZpcnN0IGRyb3AgYWxsIHRoYXQgYXJlIGVpdGhlciB1bnJlZmVyZW5jZWQgb3Igbm90IGEgY2xhc3MgcmVwcmVzZW50YXRpdmUKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgcm93TnVtTWFwLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKHJvd051bU1hcFtpXSAhPSBpKSB7CisgICAgICAgICAgICAgICAgICAgIHRlbXBTdGF0ZVRhYmxlLnNldEVsZW1lbnRBdChudWxsLCBpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRoZW4gY2FsY3VsYXRlIGV2ZXJ5Ym9keSdzIG5ldyByb3cgbnVtYmVyIGFuZCB1cGRhdGUgdGhlIHJvdworICAgICAgICAgICAgLy8gbnVtYmVyIG1hcCBhcHByb3ByaWF0ZWx5ICh0aGUgZmlyc3QgcGFzcyB1cGRhdGVzIHRoZSByb3cgbnVtYmVycworICAgICAgICAgICAgLy8gb2YgYWxsIHRoZSBjbGFzcyByZXByZXNlbnRhdGl2ZXMgW3RoZSByb3dzIHdlJ3JlIGtlZXBpbmddLCBhbmQgdGhlCisgICAgICAgICAgICAvLyBzZWNvbmQgcGFzcyB1cGRhdGVzIHRoZSBjcm9zcyByZWZlcmVuY2VzIGZvciBhbGwgdGhlIHJvd3MgdGhhdAorICAgICAgICAgICAgLy8gYXJlIGJlaW5nIGRlbGV0ZWQpCisgICAgICAgICAgICBuZXdSb3dOdW0gPSAxOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCByb3dOdW1NYXAubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAodGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KGkpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcm93TnVtTWFwW2ldID0gbmV3Um93TnVtKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCByb3dOdW1NYXAubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAodGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KGkpID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcm93TnVtTWFwW2ldID0gcm93TnVtTWFwW3Jvd051bU1hcFtpXV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorLy9mb3IgKGludCBpID0gMTsgaSA8IHJvd051bU1hcC5sZW5ndGg7IGkrKykgcm93TnVtTWFwW2ldID0gaTsgaW50IG5ld1Jvd051bSA9IHJvd051bU1hcC5sZW5ndGg7CisKKyAgICAgICAgICAgIC8vIGFsbG9jYXRlIHRoZSBwZXJtYW5lbnQgc3RhdGUgdGFibGUsIGFuZCBjb3B5IHRoZSByZW1haW5pbmcgcm93cyBpbnRvIGl0CisgICAgICAgICAgICAvLyAoYWRqdXN0aW5nIGFsbCB0aGUgY2VsbCB2YWx1ZXMsIG9mIGNvdXJzZSkKKworICAgICAgICAgICAgLy8gdGhpcyBzZWN0aW9uIGRvZXMgdGhhdCBmb3IgdGhlIGZvcndhcmQgc3RhdGUgdGFibGUKKyAgICAgICAgICAgIGlmIChmb3J3YXJkKSB7CisgICAgICAgICAgICAgICAgZW5kU3RhdGVzID0gbmV3IGJvb2xlYW5bbmV3Um93TnVtXTsKKyAgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0ZXMgPSBuZXcgYm9vbGVhbltuZXdSb3dOdW1dOworICAgICAgICAgICAgICAgIHN0YXRlVGFibGUgPSBuZXcgc2hvcnRbbmV3Um93TnVtICogbnVtQ2F0ZWdvcmllc107CisgICAgICAgICAgICAgICAgaW50IHAgPSAwOworICAgICAgICAgICAgICAgIGludCBwMiA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wU3RhdGVUYWJsZS5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzaG9ydFtdIHJvdyA9IChzaG9ydFtdKSh0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQoaSkpOworICAgICAgICAgICAgICAgICAgICBpZiAocm93ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ2F0ZWdvcmllczsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZVRhYmxlW3BdID0gKHNob3J0KShyb3dOdW1NYXBbcm93W2pdXSk7CisgICAgICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZW5kU3RhdGVzW3AyXSA9ICgocm93W251bUNhdGVnb3JpZXNdICYgRU5EX1NUQVRFX0ZMQUcpICE9IDApOworICAgICAgICAgICAgICAgICAgICBsb29rYWhlYWRTdGF0ZXNbcDJdID0gKChyb3dbbnVtQ2F0ZWdvcmllc10gJiBMT09LQUhFQURfU1RBVEVfRkxBRykgIT0gMCk7CisgICAgICAgICAgICAgICAgICAgICsrcDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBhbmQgdGhpcyBzZWN0aW9uIGRvZXMgaXQgZm9yIHRoZSBiYWNrd2FyZCBzdGF0ZSB0YWJsZQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYmFja3dhcmRzU3RhdGVUYWJsZSA9IG5ldyBzaG9ydFtuZXdSb3dOdW0gKiBudW1DYXRlZ29yaWVzXTsKKyAgICAgICAgICAgICAgICBpbnQgcCA9IDA7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wU3RhdGVUYWJsZS5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzaG9ydFtdIHJvdyA9IChzaG9ydFtdKSh0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQoaSkpOworICAgICAgICAgICAgICAgICAgICBpZiAocm93ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ2F0ZWdvcmllczsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBiYWNrd2FyZHNTdGF0ZVRhYmxlW3BdID0gKHNob3J0KShyb3dOdW1NYXBbcm93W2pdXSk7CisgICAgICAgICAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBmdW5jdGlvbiBidWlsZHMgdGhlIGJhY2t3YXJkIHN0YXRlIHRhYmxlIGZyb20gdGhlIGZvcndhcmQgc3RhdGUKKyAgICAgICAgICogdGFibGUgYW5kIGFueSBhZGRpdGlvbmFsIHJ1bGVzIChpZGVudGlmaWVkIGJ5IHRoZSAhIG9uIHRoZSBmcm9udCkKKyAgICAgICAgICogc3VwcGxpZWQgaW4gdGhlIGRlc2NyaXB0aW9uCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgYnVpbGRCYWNrd2FyZHNTdGF0ZVRhYmxlKFZlY3RvciB0ZW1wUnVsZUxpc3QpIHsKKworICAgICAgICAgICAgLy8gY3JlYXRlIHRoZSB0ZW1wb3Jhcnkgc3RhdGUgdGFibGUgYW5kIHNlZWQgaXQgd2l0aCB0d28gcm93cyAocm93IDAKKyAgICAgICAgICAgIC8vIGlzbid0IHVzZWQgZm9yIGFueXRoaW5nLCBhbmQgd2UgaGF2ZSB0byBjcmVhdGUgcm93IDEgKHRoZSBpbml0aWFsCisgICAgICAgICAgICAvLyBzdGF0ZSkgYmVmb3JlIHdlIGNhbiBkbyBhbnl0aGluZyBlbHNlCisgICAgICAgICAgICB0ZW1wU3RhdGVUYWJsZSA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIHRlbXBTdGF0ZVRhYmxlLmFkZEVsZW1lbnQobmV3IHNob3J0W251bUNhdGVnb3JpZXMgKyAxXSk7CisgICAgICAgICAgICB0ZW1wU3RhdGVUYWJsZS5hZGRFbGVtZW50KG5ldyBzaG9ydFtudW1DYXRlZ29yaWVzICsgMV0pOworCisgICAgICAgICAgICAvLyBhbHRob3VnaCB0aGUgYmFja3dhcmRzIHN0YXRlIHRhYmxlIGlzIGJ1aWx0IGF1dG9tYXRpY2FsbHkgZnJvbSB0aGUgZm9yd2FyZAorICAgICAgICAgICAgLy8gc3RhdGUgdGFibGUsIHRoZXJlIGFyZSBzb21lIHNpdHVhdGlvbnMgKHRoZSBkZWZhdWx0IHNlbnRlbmNlLWJyZWFrIHJ1bGVzLAorICAgICAgICAgICAgLy8gZm9yIGV4YW1wbGUpIHdoZXJlIHRoaXMgZG9lc24ndCB5aWVsZCBlbm91Z2ggc3RvcCBzdGF0ZXMsIGNhdXNpbmcgYSBkcmFtYXRpYworICAgICAgICAgICAgLy8gZHJvcCBpbiBwZXJmb3JtYW5jZS4gIFRvIGhlbHAgd2l0aCB0aGVzZSBjYXNlcywgdGhlIHVzZXIgbWF5IHN1cHBseQorICAgICAgICAgICAgLy8gc3VwcGxlbWVudGFsIHJ1bGVzIHRoYXQgYXJlIGFkZGVkIHRvIHRoZSBiYWNrd2FyZCBzdGF0ZSB0YWJsZS4gIFRoZXNlIGhhdmUKKyAgICAgICAgICAgIC8vIHRoZSBzYW1lIHN5bnRheCBhcyB0aGUgbm9ybWFsIGJyZWFrIHJ1bGVzLCBidXQgYmVnaW4gd2l0aCAnIScgdG8gZGlzdGluZ3Vpc2gKKyAgICAgICAgICAgIC8vIHRoZW0gZnJvbSBub3JtYWwgYnJlYWsgcnVsZXMKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGVtcFJ1bGVMaXN0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJ1bGUgPSAoU3RyaW5nKXRlbXBSdWxlTGlzdC5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKHJ1bGUuY2hhckF0KDApID09ICchJykgeworICAgICAgICAgICAgICAgICAgICBwYXJzZVJ1bGUocnVsZS5zdWJzdHJpbmcoMSksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBiYWNrZmlsbExvb3BpbmdTdGF0ZXMoKTsKKworICAgICAgICAgICAgLy8gQmFja3dhcmRzIGl0ZXJhdGlvbiBpcyBxdWFsaXRhdGl2ZWx5IGRpZmZlcmVudCBmcm9tIGZvcndhcmRzIGl0ZXJhdGlvbi4KKyAgICAgICAgICAgIC8vIFRoaXMgaXMgYmVjYXVzZSBiYWNrd2FyZHMgaXRlcmF0aW9uIGhhcyB0byBiZSBtYWRlIHRvIG9wZXJhdGUgZnJvbSBubyBjb250ZXh0CisgICAgICAgICAgICAvLyBhdCBhbGwtLSB0aGUgdXNlciBzaG91bGQgYmUgYWJsZSB0byBhc2sgQnJlYWtJdGVyYXRvciBmb3IgdGhlIGJyZWFrIHBvc2l0aW9uCisgICAgICAgICAgICAvLyBpbW1lZGlhdGVseSBvbiBlaXRoZXIgc2lkZSBvZiBzb21lIGFyYml0cmFyeSBvZmZzZXQgaW4gdGhlIHRleHQuICBUaGUKKyAgICAgICAgICAgIC8vIGZvcndhcmQgaXRlcmF0aW9uIHRhYmxlIGRvZXNuJ3QgbGV0IHVzIGRvIHRoYXQtLSBpdCBhc3N1bWVzIGNvbXBsZXRlCisgICAgICAgICAgICAvLyBpbmZvcm1hdGlvbiBvbiB0aGUgY29udGV4dCwgd2hpY2ggbWVhbnMgc3RhcnRpbmcgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZQorICAgICAgICAgICAgLy8gZG9jdW1lbnQuCisgICAgICAgICAgICAvLyBUaGUgd2F5IHdlIGRvIGJhY2t3YXJkIGFuZCByYW5kb20tYWNjZXNzIGl0ZXJhdGlvbiBpcyB0byBiYWNrIHVwIGZyb20gdGhlCisgICAgICAgICAgICAvLyBjdXJyZW50IChvciB1c2VyLXNwZWNpZmllZCkgcG9zaXRpb24gdW50aWwgd2Ugc2VlIHNvbWV0aGluZyB3ZSdyZSBzdXJlIGlzCisgICAgICAgICAgICAvLyBhIGJyZWFrIHBvc2l0aW9uIChpdCBtYXkgbm90IGJlIHRoZSBsYXN0IGJyZWFrIHBvc2l0aW9uIGltbWVkaWF0ZWx5CisgICAgICAgICAgICAvLyBwcmVjZWRpbmcgb3VyIHN0YXJ0aW5nIHBvaW50LCBob3dldmVyKS4gIFRoZW4gd2Ugcm9sbCBmb3J3YXJkIGZyb20gdGhlcmUgdG8KKyAgICAgICAgICAgIC8vIGxvY2F0ZSB0aGUgYWN0dWFsIGJyZWFrIHBvc2l0aW9uIHdlJ3JlIGFmdGVyLgorICAgICAgICAgICAgLy8gVGhpcyBtZWFucyB0aGF0IHRoZSBiYWNrd2FyZHMgc3RhdGUgdGFibGUgZG9lc24ndCBoYXZlIHRvIGlkZW50aWZ5IGV2ZXJ5CisgICAgICAgICAgICAvLyBicmVhayBwb3NpdGlvbiwgYWxsb3dpbmcgdGhlIGJ1aWxkaW5nIGFsZ29yaXRobSB0byBiZSBtdWNoIHNpbXBsZXIuICBIZXJlLAorICAgICAgICAgICAgLy8gd2UgdXNlIGEgInBhaXJzIiBhcHByb2FjaCwgc2Nhbm5pbmcgdGhlIGZvcndhcmQtaXRlcmF0aW9uIHN0YXRlIHRhYmxlIGZvcgorICAgICAgICAgICAgLy8gcGFpcnMgb2YgY2hhcmFjdGVyIGNhdGVnb3JpZXMgd2UgQUxXQVlTIGJyZWFrIGJldHdlZW4sIGFuZCBidWlsZGluZyBhIHN0YXRlCisgICAgICAgICAgICAvLyB0YWJsZSBmcm9tIHRoYXQgaW5mb3JtYXRpb24uICBObyBjb250ZXh0IGlzIHJlcXVpcmVkLS0gYWxsIHRoaXMgc3RhdGUgdGFibGUKKyAgICAgICAgICAgIC8vIGxvb2tzIGF0IGlzIGEgcGFpciBvZiBhZGphY2VudCBjaGFyYWN0ZXJzLgorCisgICAgICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHVzZXIgaGFzIHN1cHBsaWVkIHN1cHBsZW1lbnRhcnkgcnVsZXMgKHNlZSBhYm92ZSkuCisgICAgICAgICAgICAvLyBUaGlzIGhhcyB0byBiZSBkb25lIGZpcnN0IHRvIGtlZXAgcGFyc2VSdWxlKCkgYW5kIGZyaWVuZHMgZnJvbSBiZWNvbWluZworICAgICAgICAgICAgLy8gRVZFTiBNT1JFIGNvbXBsaWNhdGVkLiAgVGhlIGF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkIHN0YXRlcyBhcmUgYXBwZW5kZWQKKyAgICAgICAgICAgIC8vIG9udG8gdGhlIGVuZCBvZiB0aGUgc3RhdGUgdGFibGUsIGFuZCB0aGVuIHRoZSB0d28gc2V0cyBvZiBydWxlcyBhcmUKKyAgICAgICAgICAgIC8vIHN0aXRjaGVkIHRvZ2V0aGVyIGF0IHRoZSBlbmQuICBUYWtlIG5vdGUgb2YgdGhlIHJvdyBudW1iZXIgb2YgdGhlCisgICAgICAgICAgICAvLyBmaXJzdCByb3cgb2YgdGhlIGF1cm9tYXRpY2FsbHktZ2VuZXJhdGVkIHBhcnQuCisgICAgICAgICAgICBpbnQgYmFja1RhYmxlT2Zmc2V0ID0gdGVtcFN0YXRlVGFibGUuc2l6ZSgpOworICAgICAgICAgICAgaWYgKGJhY2tUYWJsZU9mZnNldCA+IDIpIHsKKyAgICAgICAgICAgICAgICArK2JhY2tUYWJsZU9mZnNldDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gdGhlIGF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkIHBhcnQgb2YgdGhlIHRhYmxlIG1vZGVscyBhIHR3by1kaW1lbnNpb25hbAorICAgICAgICAgICAgLy8gYXJyYXkgd2hlcmUgdGhlIHR3byBkaW1lbnNpb25zIHJlcHJlc2VudCB0aGUgdHdvIGNoYXJhY3RlcnMgd2UncmUgY3VycmVudGx5CisgICAgICAgICAgICAvLyBsb29raW5nIGF0LiAgVG8gbW9kZWwgdGhpcyBhcyBhIHN0YXRlIHRhYmxlLCB3ZSBhY3R1YWxseSBuZWVkIG9uZSBhZGRpdGlvbmFsCisgICAgICAgICAgICAvLyByb3cgdG8gcmVwcmVzZW50IHRoZSBpbml0aWFsIHN0YXRlLiAgSXQgZ2V0cyBwb3B1bGF0ZWQgd2l0aCB0aGUgcm93IG51bWJlcnMKKyAgICAgICAgICAgIC8vIG9mIHRoZSBvdGhlciByb3dzIChpbiBvcmRlcikuCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNhdGVnb3JpZXMgKyAxOyBpKyspCisgICAgICAgICAgICAgICAgdGVtcFN0YXRlVGFibGUuYWRkRWxlbWVudChuZXcgc2hvcnRbbnVtQ2F0ZWdvcmllcyArIDFdKTsKKworICAgICAgICAgICAgc2hvcnRbXSBzdGF0ZSA9IChzaG9ydFtdKXRlbXBTdGF0ZVRhYmxlLmVsZW1lbnRBdChiYWNrVGFibGVPZmZzZXQgLSAxKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ2F0ZWdvcmllczsgaSsrKQorICAgICAgICAgICAgICAgIHN0YXRlW2ldID0gKHNob3J0KShpICsgYmFja1RhYmxlT2Zmc2V0KTsKKworICAgICAgICAgICAgLy8gc2NhdmVuZ2UgdGhlIGZvcndhcmQgc3RhdGUgdGFibGUgZm9yIHBhaXJzIG9mIGNoYXJhY3RlciBjYXRlZ29yaWVzCisgICAgICAgICAgICAvLyB0aGF0IGFsd2F5cyBoYXZlIGEgYnJlYWsgYmV0d2VlbiB0aGVtLiAgVGhlIGFsZ29yaXRobSBpcyBhcyBmb2xsb3dzOgorICAgICAgICAgICAgLy8gTG9vayBkb3duIGVhY2ggY29sdW1uIGluIHRoZSBzdGF0ZSB0YWJsZS4gIEZvciBlYWNoIG5vbnplcm8gY2VsbCBpbgorICAgICAgICAgICAgLy8gdGhhdCBjb2x1bW4sIGxvb2sgdXAgdGhlIHJvdyBpdCBwb2ludHMgdG8uICBGb3IgZWFjaCBub256ZXJvIGNlbGwgaW4KKyAgICAgICAgICAgIC8vIHRoYXQgcm93LCBwb3B1bGF0ZSBhIGNlbGwgaW4gdGhlIGJhY2t3YXJkcyBzdGF0ZSB0YWJsZTogdGhlIHJvdyBudW1iZXIKKyAgICAgICAgICAgIC8vIG9mIHRoYXQgY2VsbCBpcyB0aGUgbnVtYmVyIG9mIHRoZSBjb2x1bW4gd2Ugd2VyZSBzY2FubmluZyAocGx1cyB0aGUKKyAgICAgICAgICAgIC8vIG9mZnNldCB0aGF0IGxvY2F0ZXMgdGhpcyBzdWItdGFibGUpLCBhbmQgdGhlIGNvbHVtbiBudW1iZXIgb2YgdGhhdCBjZWxsCisgICAgICAgICAgICAvLyBpcyB0aGUgY29sdW1uIG51bWJlciBvZiB0aGUgbm9uemVybyBjZWxsIHdlIGp1c3QgZm91bmQuICBUaGlzIGNlbGwgaXMKKyAgICAgICAgICAgIC8vIHBvcHVsYXRlZCB3aXRoIGl0cyBvd24gY29sdW1uIG51bWJlciAoYWRqdXN0ZWQgYWNjb3JkaW5nIHRvIHRoZSBhY3R1YWwKKyAgICAgICAgICAgIC8vIGxvY2F0aW9uIG9mIHRoZSBzdWItdGFibGUpLiAgVGhpcyBwcm9jZXNzIHdpbGwgcHJvZHVjZSBhIHN0YXRlIHRhYmxlCisgICAgICAgICAgICAvLyB3aG9zZSBiZWhhdmlvciBpcyB0aGUgc2FtZSBhcyBsb29raW5nIHVwIHN1Y2Nlc3NpdmUgcGFpcnMgb2YgY2hhcmFjdGVycworICAgICAgICAgICAgLy8gaW4gYW4gYXJyYXkgb2YgQm9vbGVhbnMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlcmUgaXMgYSBicmVhay4KKyAgICAgICAgICAgIGludCBudW1Sb3dzID0gc3RhdGVUYWJsZS5sZW5ndGggLyBudW1DYXRlZ29yaWVzOworICAgICAgICAgICAgZm9yIChpbnQgY29sdW1uID0gMDsgY29sdW1uIDwgbnVtQ2F0ZWdvcmllczsgY29sdW1uKyspIHsKKyAgICAgICAgICAgICAgICBmb3IgKGludCByb3cgPSAwOyByb3cgPCBudW1Sb3dzOyByb3crKykgeworICAgICAgICAgICAgICAgICAgICBpbnQgbmV4dFJvdyA9IGxvb2t1cFN0YXRlKHJvdywgY29sdW1uKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRSb3cgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgbmV4dENvbHVtbiA9IDA7IG5leHRDb2x1bW4gPCBudW1DYXRlZ29yaWVzOyBuZXh0Q29sdW1uKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2VsbFZhbHVlID0gbG9va3VwU3RhdGUobmV4dFJvdywgbmV4dENvbHVtbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNlbGxWYWx1ZSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gKHNob3J0W10pdGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KG5leHRDb2x1bW4gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja1RhYmxlT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVbY29sdW1uXSA9IChzaG9ydCkoY29sdW1uICsgYmFja1RhYmxlT2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKy8vZGVidWdQcmludFRlbXBTdGF0ZVRhYmxlKCk7CisgICAgICAgICAgICAvLyBpZiB0aGUgdXNlciBzcGVjaWZpZWQgc29tZSBiYWNrd2FyZC1pdGVyYXRpb24gcnVsZXMgd2l0aCB0aGUgISB0b2tlbiwKKyAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8gbWVyZ2UgdGhlIHJlc3VsdGluZyBzdGF0ZSB0YWJsZSB3aXRoIHRoZSBhdXRvLWdlbmVyYXRlZCBvbmUKKyAgICAgICAgICAgIC8vIGFib3ZlLiAgRmlyc3QgY29weSB0aGUgcG9wdWxhdGVkIGNlbGxzIGZyb20gcm93IDEgb3ZlciB0aGUgcG9wdWxhdGVkCisgICAgICAgICAgICAvLyBjZWxscyBpbiB0aGUgYXV0by1nZW5lcmF0ZWQgdGFibGUuICBUaGVuIGNvcHkgdmFsdWVzIGZyb20gcm93IDEgb2YgdGhlCisgICAgICAgICAgICAvLyBhdXRvLWdlbmVyYXRlZCB0YWJsZSBpbnRvIGFsbCBvZiB0aGUgdGhlIHVucG9wdWxhdGVkIGNlbGxzIG9mIHRoZQorICAgICAgICAgICAgLy8gcnVsZS1iYXNlZCB0YWJsZS4KKyAgICAgICAgICAgIGlmIChiYWNrVGFibGVPZmZzZXQgPiAxKSB7CisKKyAgICAgICAgICAgICAgICAvLyBmb3IgZXZlcnkgcm93IGluIHRoZSBhdXRvLWdlbmVyYXRlZCBzdWItdGFibGUsIGlmIGEgY2VsbCBpcworICAgICAgICAgICAgICAgIC8vIHBvcHVsYXRlZCB0aGF0IGlzIGFsc28gcG9wdWxhdGVkIGluIHJvdyAxIG9mIHRoZSBydWxlLWJhc2VkCisgICAgICAgICAgICAgICAgLy8gc3ViLXRhYmxlLCBjb3B5IHRoZSB2YWx1ZSBmcm9tIHJvdyAxIG92ZXIgdGhlIHZhbHVlIGluIHRoZQorICAgICAgICAgICAgICAgIC8vIGF1dG8tZ2VuZXJhdGVkIHN1Yi10YWJsZQorICAgICAgICAgICAgICAgIHN0YXRlID0gKHNob3J0W10pdGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KDEpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBiYWNrVGFibGVPZmZzZXQgLSAxOyBpIDwgdGVtcFN0YXRlVGFibGUuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvcnRbXSBzdGF0ZTIgPSAoc2hvcnRbXSl0ZW1wU3RhdGVUYWJsZS5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ2F0ZWdvcmllczsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGVbal0gIT0gMCAmJiBzdGF0ZTJbal0gIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlMltqXSA9IHN0YXRlW2pdOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gbm93LCBmb3IgZXZlcnkgcm93IGluIHRoZSBydWxlLWJhc2VkIHN1Yi10YWJsZSB0aGF0IGlzIG5vdAorICAgICAgICAgICAgICAgIC8vIGFuIGVuZCBzdGF0ZSwgZmlsbCBpbiBhbGwgdW5wb3B1bGF0ZWQgY2VsbHMgd2l0aCB0aGUgdmFsdWVzCisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIGNvcnJlc3BvbmRpbmcgY2VsbHMgaW4gdGhlIGZpcnN0IHJvdyBvZiB0aGUgYXV0by0KKyAgICAgICAgICAgICAgICAvLyBnZW5lcmF0ZWQgc3ViLXRhYmxlLgorICAgICAgICAgICAgICAgIHN0YXRlID0gKHNob3J0W10pdGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KGJhY2tUYWJsZU9mZnNldCAtIDEpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgYmFja1RhYmxlT2Zmc2V0IC0gMTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHNob3J0W10gc3RhdGUyID0gKHNob3J0W10pdGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgICAgICAgICBpZiAoKHN0YXRlMltudW1DYXRlZ29yaWVzXSAmIEVORF9TVEFURV9GTEFHKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG51bUNhdGVnb3JpZXM7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZTJbal0gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZTJbal0gPSBzdGF0ZVtqXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKy8vZGVidWdQcmludFRlbXBTdGF0ZVRhYmxlKCk7CisKKyAgICAgICAgICAgIC8vIGZpbmFsbHksIGNsZWFuIGV2ZXJ5dGhpbmcgdXAgYW5kIGNvcHkgaXQgaW50byB0aGUgYWN0dWFsIEJyZWFrSXRlcmF0b3IKKyAgICAgICAgICAgIC8vIGJ5IGNhbGxpbmcgZmluaXNoQnVpbGRpbmdTdGF0ZVRhYmxlKCkKKyAgICAgICAgICAgIGZpbmlzaEJ1aWxkaW5nU3RhdGVUYWJsZShmYWxzZSk7CisvKgorU3lzdGVtLm91dC5wcmludCgiQzpcdCIpOworZm9yIChpbnQgaSA9IDA7IGkgPCBudW1DYXRlZ29yaWVzOyBpKyspCitTeXN0ZW0ub3V0LnByaW50KEludGVnZXIudG9TdHJpbmcoaSkgKyAiXHQiKTsKK1N5c3RlbS5vdXQucHJpbnRsbigpOyBTeXN0ZW0ub3V0LnByaW50KCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Iik7Citmb3IgKGludCBpID0gMDsgaSA8IGJhY2t3YXJkc1N0YXRlVGFibGUubGVuZ3RoOyBpKyspIHsKK2lmIChpICUgbnVtQ2F0ZWdvcmllcyA9PSAwKSB7CitTeXN0ZW0ub3V0LnByaW50bG4oKTsKK1N5c3RlbS5vdXQucHJpbnQoSW50ZWdlci50b1N0cmluZyhpIC8gbnVtQ2F0ZWdvcmllcykgKyAiOlx0Iik7Cit9CitpZiAoYmFja3dhcmRzU3RhdGVUYWJsZVtpXSA9PSAwKSBTeXN0ZW0ub3V0LnByaW50KCIuXHQiKTsgZWxzZSBTeXN0ZW0ub3V0LnByaW50KEludGVnZXIudG9TdHJpbmcoYmFja3dhcmRzU3RhdGVUYWJsZVtpXSkgKyAiXHQiKTsKK30KK1N5c3RlbS5vdXQucHJpbnRsbigpOworKi8KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaHJvd3MgYW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHJlcHJlc2VudGluZyBhIHN5bnRheCBlcnJvciBpbiB0aGUgcnVsZQorICAgICAgICAgKiBkZXNjcmlwdGlvbi4gIFRoZSBleGNlcHRpb24ncyBtZXNzYWdlIGNvbnRhaW5zIHNvbWUgZGVidWdnaW5nIGluZm9ybWF0aW9uLgorICAgICAgICAgKiBAcGFyYW0gbWVzc2FnZSBBIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGUgcHJvYmxlbQorICAgICAgICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIHBvc2l0aW9uIGluIHRoZSBkZXNjcmlwdGlvbiB3aGVyZSB0aGUgcHJvYmxlbSB3YXMKKyAgICAgICAgICogZGlzY292ZXJlZAorICAgICAgICAgKiBAcGFyYW0gY29udGV4dCBUaGUgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGVycm9yCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZXJyb3IoU3RyaW5nIG1lc3NhZ2UsIGludCBwb3NpdGlvbiwgU3RyaW5nIGNvbnRleHQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlBhcnNlIGVycm9yOiAiICsgbWVzc2FnZSArICJcbiIgKworICAgICAgICAgICAgICAgICAgICBVdGlsaXR5LmVzY2FwZShjb250ZXh0LnN1YnN0cmluZygwLCBwb3NpdGlvbikpICsgIlxuXG4iICsKKyAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoY29udGV4dC5zdWJzdHJpbmcocG9zaXRpb24pKSk7CisgICAgICAgIH0KKworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZGVidWdQcmludFZlY3RvcihTdHJpbmcgbGFiZWwsIFZlY3RvciB2KSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KGxhYmVsKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdi5zaXplKCk7IGkrKykKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHYuZWxlbWVudEF0KGkpLnRvU3RyaW5nKCkgKyAiXHQiKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZGVidWdQcmludFZlY3Rvck9mVmVjdG9ycyhTdHJpbmcgbGFiZWwxLCBTdHJpbmcgbGFiZWwyLCBWZWN0b3IgdikgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGxhYmVsMSk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHYuc2l6ZSgpOyBpKyspCisgICAgICAgICAgICAgICAgZGVidWdQcmludFZlY3RvcihsYWJlbDIsIChWZWN0b3Ipdi5lbGVtZW50QXQoaSkpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBpbnRlcm5hbAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgZGVidWdQcmludFRlbXBTdGF0ZVRhYmxlKCkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgICAgICB0ZW1wU3RhdGVUYWJsZToiKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgICAgICAgQzpcdCIpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbnVtQ2F0ZWdvcmllczsgaSsrKQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoSW50ZWdlci50b1N0cmluZyhpKSArICJcdCIpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHRlbXBTdGF0ZVRhYmxlLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgc2hvcnRbXSByb3cgPSAoc2hvcnRbXSkodGVtcFN0YXRlVGFibGUuZWxlbWVudEF0KGkpKTsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIgICAgICAgICIgKyBpICsgIjpcdCIpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgcm93Lmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChyb3dbal0gPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiLlx0Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KEludGVnZXIudG9TdHJpbmcocm93W2pdKSArICJcdCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKgorICAgICAqIFRoaXMgY2xhc3MgZXhpc3RzIHRvIHdvcmsgYXJvdW5kIGEgYnVnIGluIEhvdEphdmEncyBpbXBsZW1lbnRhdGlvbgorICAgICAqIG9mIENoYXJhY3Rlckl0ZXJhdG9yLCB3aGljaCBpbmNvcnJlY3RseSBoYW5kbGVzIHNldEluZGV4KGVuZEluZGV4KS4KKyAgICAgKiBUaGlzIGl0ZXJhdG9yIHJlbGllcyBvbmx5IG9uIGJhc2Uuc2V0SW5kZXgobikgd2hlcmUgbiBpcyBsZXNzIHRoYW4KKyAgICAgKiBlbmRJbmRleC4KKyAgICAgKgorICAgICAqIE9uZSBjYXZlYXQ6ICBpZiB0aGUgYmFzZSBpdGVyYXRvcidzIGJlZ2luIGFuZCBlbmQgaW5kaWNlcyBjaGFuZ2UKKyAgICAgKiB0aGUgY2hhbmdlIHdpbGwgbm90IGJlIHJlZmxlY3RlZCBieSB0aGlzIHdyYXBwZXIuICBEb2VzIHRoYXQgbWF0dGVyPworICAgICAqLworICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAvLyBPbmx5IHVzZWQgZm9yIEhvdEphdmEsIHNvIGNsb3ZlciB3b24ndCBlbmNvdW50ZXIgaXQKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBTYWZlQ2hhckl0ZXJhdG9yIGltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb25lYWJsZSB7CisKKyAgICAgICAgcHJpdmF0ZSBDaGFyYWN0ZXJJdGVyYXRvciBiYXNlOworICAgICAgICBwcml2YXRlIGludCByYW5nZVN0YXJ0OworICAgICAgICBwcml2YXRlIGludCByYW5nZUxpbWl0OworICAgICAgICBwcml2YXRlIGludCBjdXJyZW50SW5kZXg7CisKKyAgICAgICAgU2FmZUNoYXJJdGVyYXRvcihDaGFyYWN0ZXJJdGVyYXRvciBiYXNlKSB7CisgICAgICAgICAgICB0aGlzLmJhc2UgPSBiYXNlOworICAgICAgICAgICAgdGhpcy5yYW5nZVN0YXJ0ID0gYmFzZS5nZXRCZWdpbkluZGV4KCk7CisgICAgICAgICAgICB0aGlzLnJhbmdlTGltaXQgPSBiYXNlLmdldEVuZEluZGV4KCk7CisgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGJhc2UuZ2V0SW5kZXgoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjaGFyIGZpcnN0KCkgeworICAgICAgICAgICAgcmV0dXJuIHNldEluZGV4KHJhbmdlU3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGNoYXIgbGFzdCgpIHsKKyAgICAgICAgICAgIHJldHVybiBzZXRJbmRleChyYW5nZUxpbWl0IC0gMSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgY2hhciBjdXJyZW50KCkgeworICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA8IHJhbmdlU3RhcnQgfHwgY3VycmVudEluZGV4ID49IHJhbmdlTGltaXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBiYXNlLnNldEluZGV4KGN1cnJlbnRJbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgY2hhciBuZXh0KCkgeworCisgICAgICAgICAgICBjdXJyZW50SW5kZXgrKzsKKyAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXggPj0gcmFuZ2VMaW1pdCkgeworICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IHJhbmdlTGltaXQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYmFzZS5zZXRJbmRleChjdXJyZW50SW5kZXgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGNoYXIgcHJldmlvdXMoKSB7CisKKyAgICAgICAgICAgIGN1cnJlbnRJbmRleC0tOworICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA8IHJhbmdlU3RhcnQpIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50SW5kZXggPSByYW5nZVN0YXJ0OworICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2Uuc2V0SW5kZXgoY3VycmVudEluZGV4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBjaGFyIHNldEluZGV4KGludCBpKSB7CisKKyAgICAgICAgICAgIGlmIChpIDwgcmFuZ2VTdGFydCB8fCBpID4gcmFuZ2VMaW1pdCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcG9zaXRpb24iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGk7CisgICAgICAgICAgICByZXR1cm4gY3VycmVudCgpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRCZWdpbkluZGV4KCkgeworICAgICAgICAgICAgcmV0dXJuIHJhbmdlU3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldEVuZEluZGV4KCkgeworICAgICAgICAgICAgcmV0dXJuIHJhbmdlTGltaXQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgeworICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRJbmRleDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisKKyAgICAgICAgICAgIFNhZmVDaGFySXRlcmF0b3IgY29weSA9IG51bGw7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvcHkgPSAoU2FmZUNoYXJJdGVyYXRvcikgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNsb25lIG5vdCBzdXBwb3J0ZWQ6ICIgKyBlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgY29weU9mQmFzZSA9IChDaGFyYWN0ZXJJdGVyYXRvcikgYmFzZS5jbG9uZSgpOworICAgICAgICAgICAgY29weS5iYXNlID0gY29weU9mQmFzZTsKKyAgICAgICAgICAgIHJldHVybiBjb3B5OworICAgICAgICB9CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8vQ0xPVkVSOk9GRgorICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGRlYnVnUHJpbnRsbihTdHJpbmcgcykgeworICAgICAgICBmaW5hbCBTdHJpbmcgemVyb3MgPSAiMDAwMCI7CisgICAgICAgIFN0cmluZyB0ZW1wOworICAgICAgICBTdHJpbmdCdWZmZXIgb3V0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgY2hhciBjID0gcy5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAnICcgJiYgYyA8ICdcdTAwN2YnKSB7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG91dC5hcHBlbmQoIlxcdSIpOworICAgICAgICAgICAgICAgIHRlbXAgPSBJbnRlZ2VyLnRvSGV4U3RyaW5nKChpbnQpYyk7CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZCh6ZXJvcy5zdWJzdHJpbmcoMCwgNCAtIHRlbXAubGVuZ3RoKCkpKTsKKyAgICAgICAgICAgICAgICBvdXQuYXBwZW5kKHRlbXApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihvdXQpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkQ29sbGF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZENvbGxhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTA3NzI3MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZENvbGxhdG9yLmphdmEKQEAgLTAsMCArMSw0NjQwIEBACisvLyMjaGVhZGVyCisvKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCisvLyNpZm5kZWYgRk9VTkRBVElPTgoraW1wb3J0IGphdmEubmlvLkJ5dGVCdWZmZXI7CisvLyNlbHNlCisvLyMjaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQnl0ZUJ1ZmZlcjsKKy8vI2VuZGlmCisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkJPQ1U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEZWJ1ZzsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSW1wbGljaXRDRUdlbmVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkludFRyaWU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5TdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UcmllOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVHJpZUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5SYW5nZVZhbHVlSXRlcmF0b3I7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKKy8qKgorICogPHA+UnVsZUJhc2VkQ29sbGF0b3IgaXMgYSBjb25jcmV0ZSBzdWJjbGFzcyBvZiBDb2xsYXRvci4gSXQgYWxsb3dzCisgKiBjdXN0b21pemF0aW9uIG9mIHRoZSBDb2xsYXRvciB2aWEgdXNlci1zcGVjaWZpZWQgcnVsZSBzZXRzLgorICogUnVsZUJhc2VkQ29sbGF0b3IgaXMgZGVzaWduZWQgdG8gYmUgZnVsbHkgY29tcGxpYW50IHRvIHRoZSA8YQorICogaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxMC8iPiBVbmljb2RlCisgKiBDb2xsYXRpb24gQWxnb3JpdGhtIChVQ0EpPC9hPiBhbmQgY29uZm9ybXMgdG8gSVNPIDE0NjUxLjwvcD4KKyAqCisgKiA8cD5Vc2VycyBhcmUgc3Ryb25nbHkgZW5jb3VyYWdlZCB0byByZWFkIDxhCisgKiBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9JbnRyby5odG1sIj4KKyAqIHRoZSB1c2VycyBndWlkZTwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbGxhdGlvbgorICogc2VydmljZSBiZWZvcmUgdXNpbmcgdGhpcyBjbGFzcy48L3A+CisgKgorICogPHA+Q3JlYXRlIGEgUnVsZUJhc2VkQ29sbGF0b3IgZnJvbSBhIGxvY2FsZSBieSBjYWxsaW5nIHRoZQorICogZ2V0SW5zdGFuY2UoTG9jYWxlKSBmYWN0b3J5IG1ldGhvZCBpbiB0aGUgYmFzZSBjbGFzcyBDb2xsYXRvci4KKyAqIENvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZSkgY3JlYXRlcyBhIFJ1bGVCYXNlZENvbGxhdG9yIG9iamVjdAorICogYmFzZWQgb24gdGhlIGNvbGxhdGlvbiBydWxlcyBkZWZpbmVkIGJ5IHRoZSBhcmd1bWVudCBsb2NhbGUuICBJZiBhCisgKiBjdXN0b21pemVkIGNvbGxhdGlvbiBvcmRlcmluZyBhciBhdHRyaWJ1dGVzIGlzIHJlcXVpcmVkLCB1c2UgdGhlCisgKiBSdWxlQmFzZWRDb2xsYXRvcihTdHJpbmcpIGNvbnN0cnVjdG9yIHdpdGggdGhlIGFwcHJvcHJpYXRlCisgKiBydWxlcy4gVGhlIGN1c3RvbWl6ZWQgUnVsZUJhc2VkQ29sbGF0b3Igd2lsbCBiYXNlIGl0cyBvcmRlcmluZyBvbgorICogVUNBLCB3aGlsZSByZS1hZGp1c3RpbmcgdGhlIGF0dHJpYnV0ZXMgYW5kIG9yZGVycyBvZiB0aGUgY2hhcmFjdGVycworICogaW4gdGhlIHNwZWNpZmllZCBydWxlIGFjY29yZGluZ2x5LjwvcD4KKyAqCisgKiA8cD5SdWxlQmFzZWRDb2xsYXRvciBwcm92aWRlcyBjb3JyZWN0IGNvbGxhdGlvbiBvcmRlcnMgZm9yIG1vc3QKKyAqIGxvY2FsZXMgc3VwcG9ydGVkIGluIElDVS4gSWYgc3BlY2lmaWMgZGF0YSBmb3IgYSBsb2NhbGUgaXMgbm90CisgKiBhdmFpbGFibGUsIHRoZSBvcmRlcnMgZXZlbnR1YWxseSBmYWxscyBiYWNrIHRvIHRoZSA8YQorICogaHJlZj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHIxMC8iPlVDQSBjb2xsYXRpb24KKyAqIG9yZGVyIDwvYT4uPC9wPgorICoKKyAqIDxwPkZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29sbGF0aW9uIHJ1bGUgc3ludGF4IGFuZCBkZXRhaWxzCisgKiBhYm91dCBjdXN0b21pemF0aW9uLCBwbGVhc2UgcmVmZXIgdG8gdGhlCisgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9DdXN0b21pemF0aW9uLmh0bWwiPgorICogQ29sbGF0aW9uIGN1c3RvbWl6YXRpb248L2E+IHNlY3Rpb24gb2YgdGhlIHVzZXIncyBndWlkZS48L3A+CisgKgorICogPHA+PHN0cm9uZz5Ob3RlPC9zdHJvbmc+IHRoYXQgdGhlcmUgYXJlIHNvbWUgZGlmZmVyZW5jZXMgYmV0d2VlbgorICogdGhlIENvbGxhdGlvbiBydWxlIHN5bnRheCB1c2VkIGluIEphdmEgYW5kIElDVTRKOgorICoKKyAqIDx1bD4KKyAqIDxsaT5BY2NvcmRpbmcgdG8gdGhlIEpESyBkb2N1bWVudGF0aW9uOgorICogPGk+CisgKiA8cD4KKyAqIE1vZGlmaWVyICchJyA6IFR1cm5zIG9uIFRoYWkvTGFvIHZvd2VsLWNvbnNvbmFudCBzd2FwcGluZy4gSWYgdGhpcyBydWxlCisgKiBpcyBpbiBmb3JjZSB3aGVuIGEgVGhhaSB2b3dlbCBvZiB0aGUgcmFuZ2UgJiM5MjtVMEU0MC0mIzkyO1UwRTQ0IHByZWNlZGVzIGEKKyAqIFRoYWkgY29uc29uYW50IG9mIHRoZSByYW5nZSAmIzkyO1UwRTAxLSYjOTI7VTBFMkUgT1IgYSBMYW8gdm93ZWwgb2YgdGhlCisgKiByYW5nZSAmIzkyO1UwRUMwLSYjOTI7VTBFQzQgcHJlY2VkZXMgYSBMYW8gY29uc29uYW50IG9mIHRoZSByYW5nZQorICogJiM5MjtVMEU4MS0mIzkyO1UwRUFFIHRoZW4gdGhlCisgKiB2b3dlbCBpcyBwbGFjZWQgYWZ0ZXIgdGhlIGNvbnNvbmFudCBmb3IgY29sbGF0aW9uIHB1cnBvc2VzLgorICogPC9wPgorICogPHA+CisgKiBJZiBhIHJ1bGUgaXMgd2l0aG91dCB0aGUgbW9kaWZpZXIgJyEnLCB0aGUgVGhhaS9MYW8gdm93ZWwtY29uc29uYW50CisgKiBzd2FwcGluZyBpcyBub3QgdHVybmVkIG9uLgorICogPC9wPgorICogPC9pPgorICogPHA+CisgKiBJQ1U0SidzIFJ1bGVCYXNlZENvbGxhdG9yIGRvZXMgbm90IHN1cHBvcnQgdHVybmluZyBvZmYgdGhlIFRoYWkvTGFvCisgKiB2b3dlbC1jb25zb25hbnQgc3dhcHBpbmcsIHNpbmNlIHRoZSBVQ0EgY2xlYXJseSBzdGF0ZXMgdGhhdCBpdCBoYXMgdG8gYmUKKyAqIHN1cHBvcnRlZCB0byBlbnN1cmUgYSBjb3JyZWN0IHNvcnRpbmcgb3JkZXIuIElmIGEgJyEnIGlzIGVuY291bnRlcmVkLCBpdCBpcworICogaWdub3JlZC4KKyAqIDwvcD4KKyAqIDxsaT5BcyBtZW50aW9uZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGJhc2UgY2xhc3MgQ29sbGF0b3IsCisgKiAgICAgY29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uIG1vZGUgaXMgbm90IHN1cHBvcnRlZC4KKyAqIDwvdWw+CisgKiA8cD4KKyAqIDxzdHJvbmc+RXhhbXBsZXM8L3N0cm9uZz4KKyAqIDwvcD4KKyAqIDxwPgorICogQ3JlYXRpbmcgQ3VzdG9taXplZCBSdWxlQmFzZWRDb2xsYXRvcnM6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBTdHJpbmcgc2ltcGxlID0gIiZhbXA7IGEgJmx0OyBiICZsdDsgYyAmbHQ7IGQiOworICogUnVsZUJhc2VkQ29sbGF0b3Igc2ltcGxlQ29sbGF0b3IgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3Ioc2ltcGxlKTsKKyAqCisgKiBTdHJpbmcgbm9yd2VnaWFuID0gIiZhbXA7IGEgLCBBICZsdDsgYiAsIEIgJmx0OyBjICwgQyAmbHQ7IGQgLCBEICZsdDsgZSAsIEUgIgorICogICAgICAgICAgICAgICAgICAgICsgIiZsdDsgZiAsIEYgJmx0OyBnICwgRyAmbHQ7IGggLCBIICZsdDsgaSAsIEkgJmx0OyBqICwgIgorICogICAgICAgICAgICAgICAgICAgICsgIkogJmx0OyBrICwgSyAmbHQ7IGwgLCBMICZsdDsgbSAsIE0gJmx0OyBuICwgTiAmbHQ7ICIKKyAqICAgICAgICAgICAgICAgICAgICArICJvICwgTyAmbHQ7IHAgLCBQICZsdDsgcSAsIFEgJmx0IHIgLCBSICZsdCBzICwgUyAmbHQ7ICIKKyAqICAgICAgICAgICAgICAgICAgICArICJ0ICwgVCAmbHQ7IHUgLCBVICZsdDsgdiAsIFYgJmx0OyB3ICwgVyAmbHQ7IHggLCBYICIKKyAqICAgICAgICAgICAgICAgICAgICArICImbHQ7IHkgLCBZICZsdDsgeiAsIFogJmx0OyAmIzkyO3UwMEU1ID0gYSYjOTI7dTAzMEEgIgorICogICAgICAgICAgICAgICAgICAgICsgIiwgJiM5Mjt1MDBDNSA9IEEmIzkyO3UwMzBBIDsgYWEgLCBBQSAmbHQ7ICYjOTI7dTAwRTYgIgorICogICAgICAgICAgICAgICAgICAgICsgIiwgJiM5Mjt1MDBDNiAmbHQ7ICYjOTI7dTAwRjggLCAmIzkyO3UwMEQ4IjsKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIG5vcndlZ2lhbkNvbGxhdG9yID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKG5vcndlZ2lhbik7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBDb25jYXRlbmF0aW5nIHJ1bGVzIHRvIGNvbWJpbmUgPGNvZGU+Q29sbGF0b3I8L2NvZGU+czoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIC8vIENyZWF0ZSBhbiBlbl9VUyBDb2xsYXRvciBvYmplY3QKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIGVuX1VTQ29sbGF0b3IgPSAoUnVsZUJhc2VkQ29sbGF0b3IpCisgKiAgICAgQ29sbGF0b3IuZ2V0SW5zdGFuY2UobmV3IExvY2FsZSgiZW4iLCAiVVMiLCAiIikpOworICogLy8gQ3JlYXRlIGEgZGFfREsgQ29sbGF0b3Igb2JqZWN0CisgKiBSdWxlQmFzZWRDb2xsYXRvciBkYV9ES0NvbGxhdG9yID0gKFJ1bGVCYXNlZENvbGxhdG9yKQorICogICAgIENvbGxhdG9yLmdldEluc3RhbmNlKG5ldyBMb2NhbGUoImRhIiwgIkRLIiwgIiIpKTsKKyAqIC8vIENvbWJpbmUgdGhlIHR3bworICogLy8gRmlyc3QsIGdldCB0aGUgY29sbGF0aW9uIHJ1bGVzIGZyb20gZW5fVVNDb2xsYXRvcgorICogU3RyaW5nIGVuX1VTUnVsZXMgPSBlbl9VU0NvbGxhdG9yLmdldFJ1bGVzKCk7CisgKiAvLyBTZWNvbmQsIGdldCB0aGUgY29sbGF0aW9uIHJ1bGVzIGZyb20gZGFfREtDb2xsYXRvcgorICogU3RyaW5nIGRhX0RLUnVsZXMgPSBkYV9ES0NvbGxhdG9yLmdldFJ1bGVzKCk7CisgKiBSdWxlQmFzZWRDb2xsYXRvciBuZXdDb2xsYXRvciA9CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFJ1bGVCYXNlZENvbGxhdG9yKGVuX1VTUnVsZXMgKyBkYV9ES1J1bGVzKTsKKyAqIC8vIG5ld0NvbGxhdG9yIGhhcyB0aGUgY29tYmluZWQgcnVsZXMKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIE1ha2luZyBjaGFuZ2VzIHRvIGFuIGV4aXN0aW5nIFJ1bGVCYXNlZENvbGxhdG9yIHRvIGNyZWF0ZSBhIG5ldworICogPGNvZGU+Q29sbGF0b3I8L2NvZGU+IG9iamVjdCwgYnkgYXBwZW5kaW5nIGNoYW5nZXMgdG8gdGhlIGV4aXN0aW5nIHJ1bGU6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAvLyBDcmVhdGUgYSBuZXcgQ29sbGF0b3Igb2JqZWN0IHdpdGggYWRkaXRpb25hbCBydWxlcworICogU3RyaW5nIGFkZFJ1bGVzID0gIiZhbXA7IEMgJmx0OyBjaCwgY0gsIENoLCBDSCI7CisgKiBSdWxlQmFzZWRDb2xsYXRvciBteUNvbGxhdG9yID0KKyAqICAgICBuZXcgUnVsZUJhc2VkQ29sbGF0b3IoZW5fVVNDb2xsYXRvciArIGFkZFJ1bGVzKTsKKyAqIC8vIG15Q29sbGF0b3IgY29udGFpbnMgdGhlIG5ldyBydWxlcworICogPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogSG93IHRvIGNoYW5nZSB0aGUgb3JkZXIgb2Ygbm9uLXNwYWNpbmcgYWNjZW50czoKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT4KKyAqIC8vIG9sZCBydWxlIHdpdGggbWFpbiBhY2NlbnRzCisgKiBTdHJpbmcgb2xkUnVsZXMgPSAiPSAmIzkyO3UwMzAxIDsgJiM5Mjt1MDMwMCA7ICYjOTI7dTAzMDIgOyAmIzkyO3UwMzA4ICIKKyAqICAgICAgICAgICAgICAgICArICI7ICYjOTI7dTAzMjcgOyAmIzkyO3UwMzAzIDsgJiM5Mjt1MDMwNCA7ICYjOTI7dTAzMDUgIgorICogICAgICAgICAgICAgICAgICsgIjsgJiM5Mjt1MDMwNiA7ICYjOTI7dTAzMDcgOyAmIzkyO3UwMzA5IDsgJiM5Mjt1MDMwQSAiCisgKiAgICAgICAgICAgICAgICAgKyAiOyAmIzkyO3UwMzBCIDsgJiM5Mjt1MDMwQyA7ICYjOTI7dTAzMEQgOyAmIzkyO3UwMzBFICIKKyAqICAgICAgICAgICAgICAgICArICI7ICYjOTI7dTAzMEYgOyAmIzkyO3UwMzEwIDsgJiM5Mjt1MDMxMSA7ICYjOTI7dTAzMTIgIgorICogICAgICAgICAgICAgICAgICsgIiZsdDsgYSAsIEEgOyBhZSwgQUUgOyAmIzkyO3UwMGU2ICwgJiM5Mjt1MDBjNiAiCisgKiAgICAgICAgICAgICAgICAgKyAiJmx0OyBiICwgQiAmbHQ7IGMsIEMgJmx0OyBlLCBFICZhbXA7IEMgJmx0OyBkICwgRCI7CisgKiAvLyBjaGFuZ2UgdGhlIG9yZGVyIG9mIGFjY2VudCBjaGFyYWN0ZXJzCisgKiBTdHJpbmcgYWRkT24gPSAiJmFtcDsgJiM5Mjt1MDMwMCA7ICYjOTI7dTAzMDggOyAmIzkyO3UwMzAyIjsKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIG15Q29sbGF0b3IgPSBuZXcgUnVsZUJhc2VkQ29sbGF0b3Iob2xkUnVsZXMgKyBhZGRPbik7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBQdXR0aW5nIGluIGEgbmV3IHByaW1hcnkgb3JkZXJpbmcgYmVmb3JlIHRoZSBkZWZhdWx0IHNldHRpbmcsCisgKiBlLmcuIHNvcnQgRW5nbGlzaCBjaGFyYWN0ZXJzIGJlZm9yZSBvciBhZnRlciBKYXBhbmVzZSBjaGFyYWN0ZXJzIGluIHRoZSBKYXBhbmVzZQorICogPGNvZGU+Q29sbGF0b3I8L2NvZGU+OgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogLy8gZ2V0IGVuX1VTIENvbGxhdG9yIHJ1bGVzCisgKiBSdWxlQmFzZWRDb2xsYXRvciBlbl9VU0NvbGxhdG9yCisgKiAgICAgICAgICAgICAgICAgICAgICAgID0gKFJ1bGVCYXNlZENvbGxhdG9yKUNvbGxhdG9yLmdldEluc3RhbmNlKExvY2FsZS5VUyk7CisgKiAvLyBhZGQgYSBmZXcgSmFwYW5lc2UgY2hhcmFjdGVycyB0byBzb3J0IGJlZm9yZSBFbmdsaXNoIGNoYXJhY3RlcnMKKyAqIC8vIHN1cHBvc2UgdGhlIGxhc3QgY2hhcmFjdGVyIGJlZm9yZSB0aGUgZmlyc3QgYmFzZSBsZXR0ZXIgJ2EnIGluCisgKiAvLyB0aGUgRW5nbGlzaCBjb2xsYXRpb24gcnVsZSBpcyAmIzkyO3UyMjEyCisgKiBTdHJpbmcgamFTdHJpbmcgPSAiJiAmIzkyO3UyMjEyICZsdCAmIzkyO3UzMDQxLCAmIzkyO3UzMDQyICZsdCAmIzkyO3UzMDQzLCAiCisgKiAgICAgICAgICAgICAgICAgICArICImIzkyO3UzMDQ0IjsKKyAqIFJ1bGVCYXNlZENvbGxhdG9yIG15SmFwYW5lc2VDb2xsYXRvcgorICogICAgICAgICAgICAgID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKGVuX1VTQ29sbGF0b3IuZ2V0UnVsZXMoKSArIGphU3RyaW5nKTsKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPC9wPgorICogPHA+CisgKiBUaGlzIGNsYXNzIGlzIG5vdCBzdWJjbGFzc2FibGUKKyAqIDwvcD4KKyAqIEBhdXRob3IgU3luIFdlZSBRdWVrCisgKiBAc3RhYmxlIElDVSAyLjgKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFJ1bGVCYXNlZENvbGxhdG9yIGV4dGVuZHMgQ29sbGF0b3IKK3sgICAKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogQ29uc3RydWN0b3IgdGhhdCB0YWtlcyB0aGUgYXJndW1lbnQgcnVsZXMgZm9yCisgICAgICogY3VzdG9taXphdGlvbi4gVGhlIGNvbGxhdG9yIHdpbGwgYmUgYmFzZWQgb24gVUNBLAorICAgICAqIHdpdGggdGhlIGF0dHJpYnV0ZXMgYW5kIHJlLW9yZGVyaW5nIG9mIHRoZSBjaGFyYWN0ZXJzIHNwZWNpZmllZCBpbiB0aGUKKyAgICAgKiBhcmd1bWVudCBydWxlcy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+U2VlIHRoZSB1c2VyIGd1aWRlJ3Mgc2VjdGlvbiBvbgorICAgICAqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9Db2xsYXRlX0N1c3RvbWl6YXRpb24uaHRtbCI+CisgICAgICogQ29sbGF0aW9uIEN1c3RvbWl6YXRpb248L2E+IGZvciBkZXRhaWxzIG9uIHRoZSBydWxlIHN5bnRheC4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHJ1bGVzIHRoZSBjb2xsYXRpb24gcnVsZXMgdG8gYnVpbGQgdGhlIGNvbGxhdGlvbiB0YWJsZSBmcm9tLgorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gYW5kIElPRXhjZXB0aW9uIHRocm93bi4gUGFyc2VFeGNlcHRpb24gdGhyb3duCisgICAgICogICAgICAgICAgICB3aGVuIGFyZ3VtZW50IHJ1bGVzIGhhdmUgYW4gaW52YWxpZCBzeW50YXguIElPRXhjZXB0aW9uCisgICAgICogICAgICAgICAgICB0aHJvd24gd2hlbiBhbiBlcnJvciBvY2N1cmVkIHdoaWxlIHJlYWRpbmcgaW50ZXJuYWwgZGF0YS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkQ29sbGF0b3IoU3RyaW5nIHJ1bGVzKSB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICBjaGVja1VDQSgpOworICAgICAgICBpZiAocnVsZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbGxhdGlvbiBydWxlcyBjYW4gbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBpbml0KHJ1bGVzKTsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ2xvbmVzIHRoZSBSdWxlQmFzZWRDb2xsYXRvcgorICAgICAqIEByZXR1cm4gYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyBSdWxlQmFzZWRDb2xsYXRvciBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgdGhyb3dzIENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uCisgICAgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciByZXN1bHQgPSAoUnVsZUJhc2VkQ29sbGF0b3Ipc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgLy8gc2luY2UgYWxsIGNvbGxhdGlvbiBkYXRhIGluIHRoZSBSdWxlQmFzZWRDb2xsYXRvciBkbyBub3QgY2hhbmdlCisgICAgICAgIC8vIHdlIGNhbiBzYWZlbHkgYXNzaWduIHRoZSByZXN1bHQuZmllbGRzIHRvIHRoaXMgY29sbGF0b3IKKyAgICAgICAgcmVzdWx0LmluaXRVdGlsaXR5KCk7IC8vIGxldCB0aGUgbmV3IGNsb25lIGhhdmUgdGhlaXIgb3duIHV0aWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0ZXJhdG9ycworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBmb3IgdGhlIGdpdmVuIFN0cmluZy4KKyAgICAgKiBAc2VlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKFN0cmluZyBzb3VyY2UpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcihzb3VyY2UsIHRoaXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBmb3IgdGhlIGdpdmVuIENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIFRoZSBzb3VyY2UgaXRlcmF0b3IncyBpbnRlZ3JpdHkgd2lsbCBiZSBwcmVzZXJ2ZWQgc2luY2UgYSBuZXcgY29weQorICAgICAqIHdpbGwgYmUgY3JlYXRlZCBmb3IgdXNlLgorICAgICAqIEBzZWUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBnZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBzb3VyY2UpCisgICAgeworICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciBuZXdzb3VyY2UgPSAoQ2hhcmFjdGVySXRlcmF0b3Ipc291cmNlLmNsb25lKCk7CisgICAgICAgIHJldHVybiBuZXcgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKG5ld3NvdXJjZSwgdGhpcyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBmb3IgdGhlIGdpdmVuIFVDaGFyYWN0ZXJJdGVyYXRvci4KKyAgICAgKiBUaGUgc291cmNlIGl0ZXJhdG9yJ3MgaW50ZWdyaXR5IHdpbGwgYmUgcHJlc2VydmVkIHNpbmNlIGEgbmV3IGNvcHkKKyAgICAgKiB3aWxsIGJlIGNyZWF0ZWQgZm9yIHVzZS4KKyAgICAgKiBAc2VlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlckl0ZXJhdG9yIHNvdXJjZSkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHNvdXJjZSwgdGhpcyk7CisgICAgfQorCisgICAgLy8gcHVibGljIHNldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIEhpcmFnYW5hIFF1YXRlcm5hcnkgbW9kZSB0byBiZSBvbiBvciBvZmYuCisgICAgICogV2hlbiB0aGUgSGlyYWdhbmEgUXVhdGVybmFyeSBtb2RlIGlzIHR1cm5lZCBvbiwgdGhlIGNvbGxhdG9yCisgICAgICogcG9zaXRpb25zIEhpcmFnYW5hIGNoYXJhY3RlcnMgYmVmb3JlIGFsbCBub24taWdub3JhYmxlIGNoYXJhY3RlcnMgaW4KKyAgICAgKiBRVUFURVJOQVJZIHN0cmVuZ3RoLiBUaGlzIGlzIHRvIHByb2R1Y2UgYSBjb3JyZWN0IEpJUyBjb2xsYXRpb24gb3JkZXIsCisgICAgICogZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbiBLYXRha2FuYSAgYW5kIEhpcmFnYW5hIGNoYXJhY3RlcnMuCisgICAgICogQHBhcmFtIGZsYWcgdHJ1ZSBpZiBIaXJhZ2FuYSBRdWF0ZXJuYXJ5IG1vZGUgaXMgdG8gYmUgb24sIGZhbHNlCisgICAgICogICAgICAgIG90aGVyd2lzZQorICAgICAqIEBzZWUgI3NldEhpcmFnYW5hUXVhdGVybmFyeURlZmF1bHQKKyAgICAgKiBAc2VlICNpc0hpcmFnYW5hUXVhdGVybmFyeQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEhpcmFnYW5hUXVhdGVybmFyeShib29sZWFuIGZsYWcpCisgICAgeworICAgICAgICBtX2lzSGlyYWdhbmE0XyA9IGZsYWc7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsgICAgICAgIAorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIEhpcmFnYW5hIFF1YXRlcm5hcnkgbW9kZSB0byB0aGUgaW5pdGlhbCBtb2RlIHNldCBkdXJpbmcKKyAgICAgKiBjb25zdHJ1Y3Rpb24gb2YgdGhlIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIFNlZSBzZXRIaXJhZ2FuYVF1YXRlcm5hcnkoYm9vbGVhbikgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKiBAc2VlICNzZXRIaXJhZ2FuYVF1YXRlcm5hcnkoYm9vbGVhbikKKyAgICAgKiBAc2VlICNpc0hpcmFnYW5hUXVhdGVybmFyeQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEhpcmFnYW5hUXVhdGVybmFyeURlZmF1bHQoKQorICAgIHsKKyAgICAgICAgbV9pc0hpcmFnYW5hNF8gPSBtX2RlZmF1bHRJc0hpcmFnYW5hNF87CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHdoZXRoZXIgdXBwZXJjYXNlIGNoYXJhY3RlcnMgc29ydCBiZWZvcmUgbG93ZXJjYXNlCisgICAgICogY2hhcmFjdGVycyBvciB2aWNlIHZlcnNhLCBpbiBzdHJlbmd0aCBURVJUSUFSWS4gVGhlIGRlZmF1bHQKKyAgICAgKiBtb2RlIGlzIGZhbHNlLCBhbmQgc28gbG93ZXJjYXNlIGNoYXJhY3RlcnMgc29ydCBiZWZvcmUgdXBwZXJjYXNlCisgICAgICogY2hhcmFjdGVycy4KKyAgICAgKiBJZiB0cnVlLCBzb3J0IHVwcGVyIGNhc2UgY2hhcmFjdGVycyBmaXJzdC4KKyAgICAgKiBAcGFyYW0gdXBwZXJmaXJzdCB0cnVlIHRvIHNvcnQgdXBwZXJjYXNlIGNoYXJhY3RlcnMgYmVmb3JlCisgICAgICogICAgICAgICAgICAgICAgICAgbG93ZXJjYXNlIGNoYXJhY3RlcnMsIGZhbHNlIHRvIHNvcnQgbG93ZXJjYXNlCisgICAgICogICAgICAgICAgICAgICAgICAgY2hhcmFjdGVycyBiZWZvcmUgdXBwZXJjYXNlIGNoYXJhY3RlcnMKKyAgICAgKiBAc2VlICNpc0xvd2VyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjaXNVcHBlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI3NldExvd2VyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjc2V0Q2FzZUZpcnN0RGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFVwcGVyQ2FzZUZpcnN0KGJvb2xlYW4gdXBwZXJmaXJzdCkKKyAgICB7CisgICAgICAgIGlmICh1cHBlcmZpcnN0KSB7CisgICAgICAgICAgICBpZihtX2Nhc2VGaXJzdF8gIT0gQXR0cmlidXRlVmFsdWUuVVBQRVJfRklSU1RfKSB7CisgICAgICAgICAgICAgICAgbGF0aW5PbmVSZWdlblRhYmxlXyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2Nhc2VGaXJzdF8gPSBBdHRyaWJ1dGVWYWx1ZS5VUFBFUl9GSVJTVF87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZihtX2Nhc2VGaXJzdF8gIT0gQXR0cmlidXRlVmFsdWUuT0ZGXykgeworICAgICAgICAgICAgICAgIGxhdGluT25lUmVnZW5UYWJsZV8gPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9jYXNlRmlyc3RfID0gQXR0cmlidXRlVmFsdWUuT0ZGXzsKKyAgICAgICAgfQorICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgb3JkZXJzIG9mIGxvd2VyIGNhc2VkIGNoYXJhY3RlcnMgdG8gc29ydCBiZWZvcmUgdXBwZXIgY2FzZWQKKyAgICAgKiBjaGFyYWN0ZXJzLCBpbiBzdHJlbmd0aCBURVJUSUFSWS4gVGhlIGRlZmF1bHQKKyAgICAgKiBtb2RlIGlzIGZhbHNlLgorICAgICAqIElmIHRydWUgaXMgc2V0LCB0aGUgUnVsZUJhc2VkQ29sbGF0b3Igd2lsbCBzb3J0IGxvd2VyIGNhc2VkIGNoYXJhY3RlcnMKKyAgICAgKiBiZWZvcmUgdGhlIHVwcGVyIGNhc2VkIG9uZXMuCisgICAgICogT3RoZXJ3aXNlLCBpZiBmYWxzZSBpcyBzZXQsIHRoZSBSdWxlQmFzZWRDb2xsYXRvciB3aWxsIGlnbm9yZSBjYXNlCisgICAgICogcHJlZmVyZW5jZXMuCisgICAgICogQHBhcmFtIGxvd2VyZmlyc3QgdHJ1ZSBmb3Igc29ydGluZyBsb3dlciBjYXNlZCBjaGFyYWN0ZXJzIGJlZm9yZQorICAgICAqICAgICAgICAgICAgICAgICAgIHVwcGVyIGNhc2VkIGNoYXJhY3RlcnMsIGZhbHNlIHRvIGlnbm9yZSBjYXNlCisgICAgICogICAgICAgICAgICAgICAgICAgcHJlZmVyZW5jZXMuCisgICAgICogQHNlZSAjaXNMb3dlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI2lzVXBwZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNzZXRVcHBlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI3NldENhc2VGaXJzdERlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRMb3dlckNhc2VGaXJzdChib29sZWFuIGxvd2VyZmlyc3QpCisgICAgeworICAgICAgICBpZiAobG93ZXJmaXJzdCkgeworICAgICAgICAgICAgICAgIGlmKG1fY2FzZUZpcnN0XyAhPSBBdHRyaWJ1dGVWYWx1ZS5MT1dFUl9GSVJTVF8pIHsKKyAgICAgICAgICAgICAgICAgICAgbGF0aW5PbmVSZWdlblRhYmxlXyA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fY2FzZUZpcnN0XyA9IEF0dHJpYnV0ZVZhbHVlLkxPV0VSX0ZJUlNUXzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZihtX2Nhc2VGaXJzdF8gIT0gQXR0cmlidXRlVmFsdWUuT0ZGXykgeworICAgICAgICAgICAgICAgICAgICBsYXRpbk9uZVJlZ2VuVGFibGVfID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2Nhc2VGaXJzdF8gPSBBdHRyaWJ1dGVWYWx1ZS5PRkZfOworICAgICAgICAgICAgfQorICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY2FzZSBmaXJzdCBtb2RlIHRvIHRoZSBpbml0aWFsIG1vZGUgc2V0IGR1cmluZworICAgICAqIGNvbnN0cnVjdGlvbiBvZiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogU2VlIHNldFVwcGVyQ2FzZUZpcnN0KGJvb2xlYW4pIGFuZCBzZXRMb3dlckNhc2VGaXJzdChib29sZWFuKSBmb3IgbW9yZQorICAgICAqIGRldGFpbHMuCisgICAgICogQHNlZSAjaXNMb3dlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI2lzVXBwZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNzZXRMb3dlckNhc2VGaXJzdChib29sZWFuKQorICAgICAqIEBzZWUgI3NldFVwcGVyQ2FzZUZpcnN0KGJvb2xlYW4pCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0Q2FzZUZpcnN0RGVmYXVsdCgpCisgICAgeworICAgICAgICBpZihtX2Nhc2VGaXJzdF8gIT0gbV9kZWZhdWx0Q2FzZUZpcnN0XykgeworICAgICAgICAgICAgbGF0aW5PbmVSZWdlblRhYmxlXyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgbV9jYXNlRmlyc3RfID0gbV9kZWZhdWx0Q2FzZUZpcnN0XzsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGFsdGVybmF0ZSBoYW5kbGluZyBtb2RlIHRvIHRoZSBpbml0aWFsIG1vZGUgc2V0IGR1cmluZworICAgICAqIGNvbnN0cnVjdGlvbiBvZiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogU2VlIHNldEFsdGVybmF0ZUhhbmRsaW5nKGJvb2xlYW4pIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogQHNlZSAjc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkKGJvb2xlYW4pCisgICAgICogQHNlZSAjaXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEFsdGVybmF0ZUhhbmRsaW5nRGVmYXVsdCgpCisgICAgeworICAgICAgICBtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyA9IG1fZGVmYXVsdElzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXzsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGNhc2UgbGV2ZWwgbW9kZSB0byB0aGUgaW5pdGlhbCBtb2RlIHNldCBkdXJpbmcKKyAgICAgKiBjb25zdHJ1Y3Rpb24gb2YgdGhlIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIFNlZSBzZXRDYXNlTGV2ZWwoYm9vbGVhbikgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKiBAc2VlICNzZXRDYXNlTGV2ZWwoYm9vbGVhbikKKyAgICAgKiBAc2VlICNpc0Nhc2VMZXZlbAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENhc2VMZXZlbERlZmF1bHQoKQorICAgIHsKKyAgICAgICAgbV9pc0Nhc2VMZXZlbF8gPSBtX2RlZmF1bHRJc0Nhc2VMZXZlbF87CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWNvbXBvc2l0aW9uIG1vZGUgdG8gdGhlIGluaXRpYWwgbW9kZSBzZXQgZHVyaW5nIGNvbnN0cnVjdGlvbgorICAgICAqIG9mIHRoZSBSdWxlQmFzZWRDb2xsYXRvci4KKyAgICAgKiBTZWUgc2V0RGVjb21wb3NpdGlvbihpbnQpIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogQHNlZSAjZ2V0RGVjb21wb3NpdGlvbgorICAgICAqIEBzZWUgI3NldERlY29tcG9zaXRpb24oaW50KQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERlY29tcG9zaXRpb25EZWZhdWx0KCkKKyAgICB7CisgICAgICAgIHNldERlY29tcG9zaXRpb24obV9kZWZhdWx0RGVjb21wb3NpdGlvbl8pOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7ICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBGcmVuY2ggY29sbGF0aW9uIG1vZGUgdG8gdGhlIGluaXRpYWwgbW9kZSBzZXQgZHVyaW5nCisgICAgICogY29uc3RydWN0aW9uIG9mIHRoZSBSdWxlQmFzZWRDb2xsYXRvci4KKyAgICAgKiBTZWUgc2V0RnJlbmNoQ29sbGF0aW9uKGJvb2xlYW4pIGZvciBtb3JlIGRldGFpbHMuCisgICAgICogQHNlZSAjaXNGcmVuY2hDb2xsYXRpb24KKyAgICAgKiBAc2VlICNzZXRGcmVuY2hDb2xsYXRpb24oYm9vbGVhbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGcmVuY2hDb2xsYXRpb25EZWZhdWx0KCkKKyAgICB7CisgICAgICAgIGlmKG1faXNGcmVuY2hDb2xsYXRpb25fICE9IG1fZGVmYXVsdElzRnJlbmNoQ29sbGF0aW9uXykgeworICAgICAgICAgICAgbGF0aW5PbmVSZWdlblRhYmxlXyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgbV9pc0ZyZW5jaENvbGxhdGlvbl8gPSBtX2RlZmF1bHRJc0ZyZW5jaENvbGxhdGlvbl87CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjb2xsYXRpb24gc3RyZW5ndGggdG8gdGhlIGluaXRpYWwgbW9kZSBzZXQgZHVyaW5nIHRoZQorICAgICAqIGNvbnN0cnVjdGlvbiBvZiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogU2VlIHNldFN0cmVuZ3RoKGludCkgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKiBAc2VlICNzZXRTdHJlbmd0aChpbnQpCisgICAgICogQHNlZSAjZ2V0U3RyZW5ndGgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdHJlbmd0aERlZmF1bHQoKQorICAgIHsKKyAgICAgICAgc2V0U3RyZW5ndGgobV9kZWZhdWx0U3RyZW5ndGhfKTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOyAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE1ldGhvZCB0byBzZXQgbnVtZXJpYyBjb2xsYXRpb24gdG8gaXRzIGRlZmF1bHQgdmFsdWUuCisgICAgICogV2hlbiBudW1lcmljIGNvbGxhdGlvbiBpcyB0dXJuZWQgb24sIHRoaXMgQ29sbGF0b3IgZ2VuZXJhdGVzIGEgY29sbGF0aW9uIAorICAgICAqIGtleSBmb3IgdGhlIG51bWVyaWMgdmFsdWUgb2Ygc3Vic3RyaW5ncyBvZiBkaWdpdHMuIFRoaXMgaXMgYSB3YXkgdG8gZ2V0IAorICAgICAqICcxMDAnIHRvIHNvcnQgQUZURVIgJzInCisgICAgICogQHNlZSAjZ2V0TnVtZXJpY0NvbGxhdGlvbgorICAgICAqIEBzZWUgI3NldE51bWVyaWNDb2xsYXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROdW1lcmljQ29sbGF0aW9uRGVmYXVsdCgpCisgICAgeworICAgICAgICBzZXROdW1lcmljQ29sbGF0aW9uKG1fZGVmYXVsdElzTnVtZXJpY0NvbGxhdGlvbl8pOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7ICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBtb2RlIGZvciB0aGUgZGlyZWN0aW9uIG9mIFNFQ09OREFSWSB3ZWlnaHRzIHRvIGJlIHVzZWQgaW4KKyAgICAgKiBGcmVuY2ggY29sbGF0aW9uLgorICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLCB3aGljaCB0cmVhdHMgU0VDT05EQVJZIHdlaWdodHMgaW4gdGhlIG9yZGVyCisgICAgICogdGhleSBhcHBlYXIuCisgICAgICogSWYgc2V0IHRvIHRydWUsIHRoZSBTRUNPTkRBUlkgd2VpZ2h0cyB3aWxsIGJlIHNvcnRlZCBiYWNrd2FyZHMuCisgICAgICogU2VlIHRoZSBzZWN0aW9uIG9uCisgICAgICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL0NvbGxhdGVfU2VydmljZUFyY2hpdGVjdHVyZS5odG1sIj4KKyAgICAgKiBGcmVuY2ggY29sbGF0aW9uPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICAgKiBAcGFyYW0gZmxhZyB0cnVlIHRvIHNldCB0aGUgRnJlbmNoIGNvbGxhdGlvbiBvbiwgZmFsc2UgdG8gc2V0IGl0IG9mZgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqIEBzZWUgI2lzRnJlbmNoQ29sbGF0aW9uCisgICAgICogQHNlZSAjc2V0RnJlbmNoQ29sbGF0aW9uRGVmYXVsdAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZyZW5jaENvbGxhdGlvbihib29sZWFuIGZsYWcpCisgICAgeworICAgICAgICBpZihtX2lzRnJlbmNoQ29sbGF0aW9uXyAhPSBmbGFnKSB7CisgICAgICAgICAgICBsYXRpbk9uZVJlZ2VuVGFibGVfID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBtX2lzRnJlbmNoQ29sbGF0aW9uXyA9IGZsYWc7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBhbHRlcm5hdGUgaGFuZGxpbmcgZm9yIFFVQVRFUk5BUlkgc3RyZW5ndGggdG8gYmUgZWl0aGVyCisgICAgICogc2hpZnRlZCBvciBub24taWdub3JhYmxlLgorICAgICAqIFNlZSB0aGUgVUNBIGRlZmluaXRpb24gb24KKyAgICAgKiA8YSBocmVmPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjEwLyNWYXJpYWJsZV9XZWlnaHRpbmciPgorICAgICAqIEFsdGVybmF0ZSBXZWlnaHRpbmc8L2E+LgorICAgICAqIFRoaXMgYXR0cmlidXRlIHdpbGwgb25seSBiZSBlZmZlY3RpdmUgd2hlbiBRVUFURVJOQVJZIHN0cmVuZ3RoIGlzIHNldC4KKyAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhpcyBtb2RlIGlzIGZhbHNlLCBjb3JyZXNwb25kaW5nIHRvIHRoZQorICAgICAqIE5PTl9JR05PUkFCTEUgbW9kZSBpbiBVQ0EuIEluIHRoZSBOT04tSUdOT1JBQkxFIG1vZGUsIHRoZQorICAgICAqIFJ1bGVCYXNlZENvbGxhdG9yIHdpbGwgdHJlYXRzIGFsbCB0aGUgY29kZXBvaW50cyB3aXRoIG5vbi1pZ25vcmFibGUKKyAgICAgKiBwcmltYXJ5IHdlaWdodHMgaW4gdGhlIHNhbWUgd2F5LgorICAgICAqIElmIHRoZSBtb2RlIGlzIHNldCB0byB0cnVlLCB0aGUgYmVoYXZpb3VyIGNvcnJlc3BvbmRzIHRvIFNISUZURUQgZGVmaW5lZAorICAgICAqIGluIFVDQSwgdGhpcyBjYXVzZXMgY29kZXBvaW50cyB3aXRoIFBSSU1BUlkgb3JkZXJzIHRoYXQgYXJlIGVxdWFsIG9yCisgICAgICogYmVsb3cgdGhlIHZhcmlhYmxlIHRvcCB2YWx1ZSB0byBiZSBpZ25vcmVkIGluIFBSSU1BUlkgb3JkZXIgYW5kCisgICAgICogbW92ZWQgdG8gdGhlIFFVQVRFUk5BUlkgb3JkZXIuCisgICAgICogQHBhcmFtIHNoaWZ0ZWQgdHJ1ZSBpZiBTSElGVEVEIGJlaGF2aW91ciBmb3IgYWx0ZXJuYXRlIGhhbmRsaW5nIGlzCisgICAgICogICAgICAgIGRlc2lyZWQsIGZhbHNlIGZvciB0aGUgTk9OX0lHTk9SQUJMRSBiZWhhdmlvdXIuCisgICAgICogQHNlZSAjaXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQKKyAgICAgKiBAc2VlICNzZXRBbHRlcm5hdGVIYW5kbGluZ0RlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoYm9vbGVhbiBzaGlmdGVkKQorICAgIHsKKyAgICAgICAgbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8gPSBzaGlmdGVkOworICAgICAgICB1cGRhdGVJbnRlcm5hbFN0YXRlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogV2hlbiBjYXNlIGxldmVsIGlzIHNldCB0byB0cnVlLCBhbiBhZGRpdGlvbmFsIHdlaWdodCBpcyBmb3JtZWQKKyAgICAgKiBiZXR3ZWVuIHRoZSBTRUNPTkRBUlkgYW5kIFRFUlRJQVJZIHdlaWdodCwga25vd24gYXMgdGhlIGNhc2UgbGV2ZWwuCisgICAgICogVGhlIGNhc2UgbGV2ZWwgaXMgdXNlZCB0byBkaXN0aW5ndWlzaCBsYXJnZSBhbmQgc21hbGwgSmFwYW5lc2UgS2FuYQorICAgICAqIGNoYXJhY3RlcnMuIENhc2UgbGV2ZWwgY291bGQgYWxzbyBiZSB1c2VkIGluIG90aGVyIHNpdHVhdGlvbnMuCisgICAgICogRm9yIGV4YW1wbGUgdG8gZGlzdGluZ3Vpc2ggY2VydGFpbiBQaW55aW4gY2hhcmFjdGVycy4KKyAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZSwgd2hpY2ggbWVhbnMgdGhlIGNhc2UgbGV2ZWwgaXMgbm90IGdlbmVyYXRlZC4KKyAgICAgKiBUaGUgY29udGVudHMgb2YgdGhlIGNhc2UgbGV2ZWwgYXJlIGFmZmVjdGVkIGJ5IHRoZSBjYXNlIGZpcnN0CisgICAgICogbW9kZS4gQSBzaW1wbGUgd2F5IHRvIGlnbm9yZSBhY2NlbnQgZGlmZmVyZW5jZXMgaW4gYSBzdHJpbmcgaXMgdG8gc2V0CisgICAgICogdGhlIHN0cmVuZ3RoIHRvIFBSSU1BUlkgYW5kIGVuYWJsZSBjYXNlIGxldmVsLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBTZWUgdGhlIHNlY3Rpb24gb24KKyAgICAgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9TZXJ2aWNlQXJjaGl0ZWN0dXJlLmh0bWwiPgorICAgICAqIGNhc2UgbGV2ZWw8L2E+IGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gZmxhZyB0cnVlIGlmIGNhc2UgbGV2ZWwgc29ydGluZyBpcyByZXF1aXJlZCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICogQHNlZSAjc2V0Q2FzZUxldmVsRGVmYXVsdAorICAgICAqIEBzZWUgI2lzQ2FzZUxldmVsCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2FzZUxldmVsKGJvb2xlYW4gZmxhZykKKyAgICB7CisgICAgICAgIG1faXNDYXNlTGV2ZWxfID0gZmxhZzsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFNldHMgdGhpcyBDb2xsYXRvcidzIHN0cmVuZ3RoIHByb3BlcnR5LiBUaGUgc3RyZW5ndGggcHJvcGVydHkKKyAgICAgKiBkZXRlcm1pbmVzIHRoZSBtaW5pbXVtIGxldmVsIG9mIGRpZmZlcmVuY2UgY29uc2lkZXJlZCBzaWduaWZpY2FudAorICAgICAqIGR1cmluZyBjb21wYXJpc29uLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5TZWUgdGhlIENvbGxhdG9yIGNsYXNzIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlIG9mIHVzZS48L3A+CisgICAgICogQHBhcmFtIG5ld1N0cmVuZ3RoIHRoZSBuZXcgc3RyZW5ndGggdmFsdWUuCisgICAgICogQHNlZSAjZ2V0U3RyZW5ndGgKKyAgICAgKiBAc2VlICNzZXRTdHJlbmd0aERlZmF1bHQKKyAgICAgKiBAc2VlICNQUklNQVJZCisgICAgICogQHNlZSAjU0VDT05EQVJZCisgICAgICogQHNlZSAjVEVSVElBUlkKKyAgICAgKiBAc2VlICNRVUFURVJOQVJZCisgICAgICogQHNlZSAjSURFTlRJQ0FMCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gSWYgdGhlIG5ldyBzdHJlbmd0aCB2YWx1ZSBpcyBub3Qgb25lCisgICAgICogICAgICAgICAgICAgIG9mIFBSSU1BUlksIFNFQ09OREFSWSwgVEVSVElBUlksIFFVQVRFUk5BUlkgb3IgSURFTlRJQ0FMLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFN0cmVuZ3RoKGludCBuZXdTdHJlbmd0aCkKKyAgICB7CisgICAgICAgIHN1cGVyLnNldFN0cmVuZ3RoKG5ld1N0cmVuZ3RoKTsKKyAgICAgICAgdXBkYXRlSW50ZXJuYWxTdGF0ZSgpOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogPHA+CisgICAgICogVmFyaWFibGUgdG9wIGlzIGEgdHdvIGJ5dGUgcHJpbWFyeSB2YWx1ZSB3aGljaCBjYXVzZXMgYWxsIHRoZSBjb2RlcG9pbnRzIAorICAgICAqIHdpdGggcHJpbWFyeSB2YWx1ZXMgdGhhdCBhcmUgbGVzcyBvciBlcXVhbCB0aGFuIHRoZSB2YXJpYWJsZSB0b3AgdG8gYmUgCisgICAgICogc2hpZnRlZCB3aGVuIGFsdGVybmF0ZSBoYW5kbGluZyBpcyBzZXQgdG8gU0hJRlRFRC4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogU2V0cyB0aGUgdmFyaWFibGUgdG9wIHRvIGEgY29sbGF0aW9uIGVsZW1lbnQgdmFsdWUgb2YgYSBzdHJpbmcgc3VwcGxpZWQuCisgICAgICogPC9wPiAKKyAgICAgKiBAcGFyYW0gdmFyVG9wIG9uZSBvciBtb3JlIChpZiBjb250cmFjdGlvbikgY2hhcmFjdGVycyB0byB3aGljaCB0aGUgCisgICAgICogICAgICAgICAgICAgICB2YXJpYWJsZSB0b3Agc2hvdWxkIGJlIHNldAorICAgICAqIEByZXR1cm4gYSBpbnQgdmFsdWUgY29udGFpbmluZyB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIHRvcCBpbiB1cHBlciAxNgorICAgICAqICAgICAgICAgYml0cy4gTG93ZXIgMTYgYml0cyBhcmUgdW5kZWZpbmVkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlzIHRocm93biBpZiB2YXJUb3AgYXJndW1lbnQgaXMgbm90IAorICAgICAqICAgICAgICAgICAgYSB2YWxpZCB2YXJpYWJsZSB0b3AgZWxlbWVudC4gQSB2YXJpYWJsZSB0b3AgZWxlbWVudCBpcyAKKyAgICAgKiAgICAgICAgICAgIGludmFsaWQgd2hlbiAKKyAgICAgKiAgICAgICAgICAgIDx1bD4KKyAgICAgKiAgICAgICAgICAgIDxsaT5pdCBpcyBhIGNvbnRyYWN0aW9uIHRoYXQgZG9lcyBub3QgZXhpc3QgaW4gdGhlCisgICAgICogICAgICAgICAgICAgICAgQ29sbGF0aW9uIG9yZGVyCisgICAgICogICAgICAgICAgICA8bGk+d2hlbiB0aGUgUFJJTUFSWSBzdHJlbmd0aCBjb2xsYXRpb24gZWxlbWVudCBmb3IgdGhlIAorICAgICAqICAgICAgICAgICAgICAgIHZhcmlhYmxlIHRvcCBoYXMgbW9yZSB0aGFuIHR3byBieXRlcworICAgICAqICAgICAgICAgICAgPGxpPndoZW4gdGhlIHZhclRvcCBhcmd1bWVudCBpcyBudWxsIG9yIHplcm8gaW4gbGVuZ3RoLgorICAgICAqICAgICAgICAgICAgPC91bD4KKyAgICAgKiBAc2VlICNnZXRWYXJpYWJsZVRvcAorICAgICAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3Ijc2V0QWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIGludCBzZXRWYXJpYWJsZVRvcChTdHJpbmcgdmFyVG9wKQorICAgIHsKKyAgICAgICAgaWYgKHZhclRvcCA9PSBudWxsIHx8IHZhclRvcC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgIlZhcmlhYmxlIHRvcCBhcmd1bWVudCBzdHJpbmcgY2FuIG5vdCBiZSBudWxsIG9yIHplcm8gaW4gbGVuZ3RoLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBtX3NyY1V0aWxDb2xFSXRlcl8uc2V0VGV4dCh2YXJUb3ApOworICAgICAgICBpbnQgY2UgPSBtX3NyY1V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICAKKyAgICAgICAgLy8gaGVyZSB3ZSBjaGVjayBpZiB3ZSBoYXZlIGNvbnN1bWVkIGFsbCBjaGFyYWN0ZXJzIAorICAgICAgICAvLyB5b3UgY2FuIHB1dCBpbiBlaXRoZXIgb25lIGNoYXJhY3RlciBvciBhIGNvbnRyYWN0aW9uCisgICAgICAgIC8vIHlvdSBzaG91bGRuJ3QgcHV0IG1vcmUuLi4gCisgICAgICAgIGlmIChtX3NyY1V0aWxDb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgIT0gdmFyVG9wLmxlbmd0aCgpIAorICAgICAgICAgICAgfHwgY2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICJWYXJpYWJsZSB0b3AgYXJndW1lbnQgc3RyaW5nIGlzIGEgY29udHJhY3Rpb24gdGhhdCBkb2VzIG5vdCBleGlzdCAiCisgICAgICAgICAgICArICJpbiB0aGUgQ29sbGF0aW9uIG9yZGVyIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBuZXh0Q0UgPSBtX3NyY1V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICAKKyAgICAgICAgaWYgKChuZXh0Q0UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgCisgICAgICAgICAgICAmJiAoIWlzQ29udGludWF0aW9uKG5leHRDRSkgfHwgKG5leHRDRSAmIENFX1BSSU1BUllfTUFTS18pICE9IDApKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiVmFyaWFibGUgdG9wIGFyZ3VtZW50IHN0cmluZyBjYW4gb25seSBoYXZlIGEgc2luZ2xlIGNvbGxhdGlvbiAiCisgICAgICAgICAgICAgICAgKyAiZWxlbWVudCB0aGF0IGhhcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdHdvIFBSSU1BUlkgc3RyZW5ndGggIgorICAgICAgICAgICAgICAgICsgImJ5dGVzIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG1fdmFyaWFibGVUb3BWYWx1ZV8gPSAoY2UgJiBDRV9QUklNQVJZX01BU0tfKSA+PiAxNjsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBjZSAmIENFX1BSSU1BUllfTUFTS187CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBTZXRzIHRoZSB2YXJpYWJsZSB0b3AgdG8gYSBjb2xsYXRpb24gZWxlbWVudCB2YWx1ZSBzdXBwbGllZC4KKyAgICAgKiBWYXJpYWJsZSB0b3AgaXMgc2V0IHRvIHRoZSB1cHBlciAxNiBiaXRzLiAKKyAgICAgKiBMb3dlciAxNiBiaXRzIGFyZSBpZ25vcmVkLgorICAgICAqIEBwYXJhbSB2YXJUb3AgQ29sbGF0aW9uIGVsZW1lbnQgdmFsdWUsIGFzIHJldHVybmVkIGJ5IHNldFZhcmlhYmxlVG9wIG9yIAorICAgICAqICAgICAgICAgICAgICAgZ2V0VmFyaWFibGVUb3AKKyAgICAgKiBAc2VlICNnZXRWYXJpYWJsZVRvcAorICAgICAqIEBzZWUgI3NldFZhcmlhYmxlVG9wKFN0cmluZykKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRWYXJpYWJsZVRvcChpbnQgdmFyVG9wKQorICAgIHsKKyAgICAgICAgbV92YXJpYWJsZVRvcFZhbHVlXyA9ICh2YXJUb3AgJiBDRV9QUklNQVJZX01BU0tfKSA+PiAxNjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogV2hlbiBudW1lcmljIGNvbGxhdGlvbiBpcyB0dXJuZWQgb24sIHRoaXMgQ29sbGF0b3IgZ2VuZXJhdGVzIGEgY29sbGF0aW9uIAorICAgICAqIGtleSBmb3IgdGhlIG51bWVyaWMgdmFsdWUgb2Ygc3Vic3RyaW5ncyBvZiBkaWdpdHMuIFRoaXMgaXMgYSB3YXkgdG8gZ2V0IAorICAgICAqICcxMDAnIHRvIHNvcnQgQUZURVIgJzInCisgICAgICogQHBhcmFtIGZsYWcgdHJ1ZSB0byB0dXJuIG51bWVyaWMgY29sbGF0aW9uIG9uIGFuZCBmYWxzZSB0byB0dXJuIGl0IG9mZgorICAgICAqIEBzZWUgI2dldE51bWVyaWNDb2xsYXRpb24KKyAgICAgKiBAc2VlICNzZXROdW1lcmljQ29sbGF0aW9uRGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE51bWVyaWNDb2xsYXRpb24oYm9vbGVhbiBmbGFnKQorICAgIHsKKyAgICAgICAgLy8gc29ydCBzdWJzdHJpbmdzIG9mIGRpZ2l0cyBhcyBudW1iZXJzCisgICAgICAgIG1faXNOdW1lcmljQ29sbGF0aW9uXyA9IGZsYWc7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvLyBwdWJsaWMgZ2V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY29sbGF0aW9uIHJ1bGVzIGZvciB0aGlzIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIEVxdWl2YWxlbnQgdG8gU3RyaW5nIGdldFJ1bGVzKFJ1bGVPcHRpb24uRlVMTF9SVUxFUykuCisgICAgICogQHJldHVybiByZXR1cm5zIHRoZSBjb2xsYXRpb24gcnVsZXMKKyAgICAgKiBAc2VlICNnZXRSdWxlcyhib29sZWFuKQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UnVsZXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fcnVsZXNfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGN1cnJlbnQgcnVsZXMuIFRoZSBhcmd1bWVudCBkZWZpbmVzIHdoZXRoZXIgZnVsbCBydWxlcyAKKyAgICAgKiAoVUNBICsgdGFpbG9yZWQpIHJ1bGVzIGFyZSByZXR1cm5lZCBvciBqdXN0IHRoZSB0YWlsb3JpbmcuIAorICAgICAqIEBwYXJhbSBmdWxscnVsZXMgdHJ1ZSBpZiB0aGUgcnVsZXMgdGhhdCBkZWZpbmVzIHRoZSBmdWxsIHNldCBvZiAKKyAgICAgKiAgICAgICAgY29sbGF0aW9uIG9yZGVyIGlzIHJlcXVpcmVkLCBvdGhlcndpc2UgZmFsc2UgZm9yIHJldHVybmluZyBvbmx5IAorICAgICAqICAgICAgICB0aGUgdGFpbG9yZWQgcnVsZXMKKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHJ1bGVzIHRoYXQgZGVmaW5lcyB0aGlzIENvbGxhdG9yLgorICAgICAqIEBzZWUgI2dldFJ1bGVzKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFJ1bGVzKGJvb2xlYW4gZnVsbHJ1bGVzKQorICAgIHsKKyAgICAgICAgaWYgKCFmdWxscnVsZXMpIHsKKyAgICAgICAgICAgIHJldHVybiBtX3J1bGVzXzsKKyAgICAgICAgfQorICAgICAgICAvLyB0YWtlIHRoZSBVQ0EgcnVsZXMgYW5kIGFwcGVuZCByZWFsIHJ1bGVzIGF0IHRoZSBlbmQgCisgICAgICAgIHJldHVybiBVQ0FfLm1fcnVsZXNfLmNvbmNhdChtX3J1bGVzXyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGFuIFVuaWNvZGVTZXQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNoYXJhY3RlcnMgYW5kIHNlcXVlbmNlcworICAgICAqIHRhaWxvcmVkIGluIHRoaXMgY29sbGF0b3IuCisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBVbmljb2RlU2V0IG9iamVjdCBjb250YWluaW5nIGFsbCB0aGUKKyAgICAgKiAgICAgICAgIGNvZGUgcG9pbnRzIGFuZCBzZXF1ZW5jZXMgdGhhdCBtYXkgc29ydCBkaWZmZXJlbnRseSB0aGFuCisgICAgICogICAgICAgICBpbiB0aGUgVUNBLgorICAgICAqIEBleGNlcHRpb24gUGFyc2VFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgcnVsZXMgaGF2ZSBhbgorICAgICAqICAgICAgICAgICAgaW52YWxpZCBzeW50YXguIElPRXhjZXB0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgZ2V0VGFpbG9yZWRTZXQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgQ29sbGF0aW9uUnVsZVBhcnNlciBzcmMgPSBuZXcgQ29sbGF0aW9uUnVsZVBhcnNlcihnZXRSdWxlcygpKTsKKyAgICAgICAgICAgcmV0dXJuIHNyYy5nZXRUYWlsb3JlZFNldCgpOworICAgICAgICB9IGNhdGNoKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJBIHRhaWxvcmluZyBydWxlIHNob3VsZCBub3QgaGF2ZSBlcnJvcnMuIFNvbWV0aGluZyBpcyBxdWl0ZSB3cm9uZyEiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgY2xhc3MgY29udENvbnRleHQgeworICAgICAgICBSdWxlQmFzZWRDb2xsYXRvciBjb2xsOworICAgICAgICBVbmljb2RlU2V0IGNvbnRyYWN0aW9uczsKKyAgICAgICAgVW5pY29kZVNldCBleHBhbnNpb25zOworICAgICAgICBVbmljb2RlU2V0IHJlbW92ZWRDb250cmFjdGlvbnM7CisgICAgICAgIGJvb2xlYW4gYWRkUHJlZml4ZXM7ICAgICAgIAorICAgICAgICBjb250Q29udGV4dChSdWxlQmFzZWRDb2xsYXRvciBjb2xsLCBVbmljb2RlU2V0IGNvbnRyYWN0aW9ucywgVW5pY29kZVNldCBleHBhbnNpb25zLCAKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHJlbW92ZWRDb250cmFjdGlvbnMsIGJvb2xlYW4gYWRkUHJlZml4ZXMpIHsKKyAgICAgICAgICAgIHRoaXMuY29sbCA9IGNvbGw7CisgICAgICAgICAgICB0aGlzLmNvbnRyYWN0aW9ucyA9IGNvbnRyYWN0aW9uczsKKyAgICAgICAgICAgIHRoaXMuZXhwYW5zaW9ucyA9IGV4cGFuc2lvbnM7CisgICAgICAgICAgICB0aGlzLnJlbW92ZWRDb250cmFjdGlvbnMgPSByZW1vdmVkQ29udHJhY3Rpb25zOworICAgICAgICAgICAgdGhpcy5hZGRQcmVmaXhlcyA9IGFkZFByZWZpeGVzOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZAorICAgIGFkZFNwZWNpYWwoY29udENvbnRleHQgYywgU3RyaW5nQnVmZmVyIGJ1ZmZlciwgaW50IENFKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBvZmZzZXQgPSAoQ0UgJiAweEZGRkZGRikgLSBjLmNvbGwubV9jb250cmFjdGlvbk9mZnNldF87CisgICAgICAgIGludCBuZXdDRSA9IGMuY29sbC5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgIC8vIHdlIG1pZ2h0IGhhdmUgYSBjb250cmFjdGlvbiB0aGF0IGVuZHMgZnJvbSBwcmV2aW91cyBsZXZlbAorICAgICAgICBpZihuZXdDRSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfTk9UX0ZPVU5EXykgeworICAgICAgICAgICAgaWYoaXNTcGVjaWFsKENFKSAmJiBnZXRUYWcoQ0UpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9DT05UUkFDVElPTl9UQUdfIAorICAgICAgICAgICAgICAgICAgICAmJiBpc1NwZWNpYWwobmV3Q0UpICYmIGdldFRhZyhuZXdDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX1NQRUNfUFJPQ19UQUdfIAorICAgICAgICAgICAgICAgICAgICAmJiBjLmFkZFByZWZpeGVzKSB7CisgICAgICAgICAgICAgICAgYWRkU3BlY2lhbChjLCBidWZmZXIsIG5ld0NFKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGJ1ZmZlci5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgICAgICBpZihjLmNvbnRyYWN0aW9ucyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGMuY29udHJhY3Rpb25zLmFkZChidWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGMuZXhwYW5zaW9ucyAhPSBudWxsICYmIGlzU3BlY2lhbChDRSkgJiYgZ2V0VGFnKENFKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfRVhQQU5TSU9OX1RBR18pIHsKKyAgICAgICAgICAgICAgICAgICAgYy5leHBhbnNpb25zLmFkZChidWZmZXIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9ICAgIAorICAgICAgICAKKyAgICAgICAgb2Zmc2V0Kys7CisgICAgICAgIC8vIGNoZWNrIHdoZXRoZXIgd2UncmUgZG9pbmcgY29udHJhY3Rpb24gb3IgcHJlZml4CisgICAgICAgIGlmKGdldFRhZyhDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX1NQRUNfUFJPQ19UQUdfICYmIGMuYWRkUHJlZml4ZXMpIHsKKyAgICAgICAgICAgIHdoaWxlKGMuY29sbC5tX2NvbnRyYWN0aW9uSW5kZXhfW29mZnNldF0gIT0gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgYi5kZWxldGUoMCwgYi5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgYi5hcHBlbmQoYnVmZmVyKTsKKyAgICAgICAgICAgICAgICBuZXdDRSA9IGMuY29sbC5tX2NvbnRyYWN0aW9uQ0VfW29mZnNldF07CisgICAgICAgICAgICAgICAgYi5pbnNlcnQoMCwgYy5jb2xsLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSk7CisgICAgICAgICAgICAgICAgaWYoaXNTcGVjaWFsKG5ld0NFKSAmJiAoZ2V0VGFnKG5ld0NFKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfQ09OVFJBQ1RJT05fVEFHXyB8fCBnZXRUYWcobmV3Q0UpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9TUEVDX1BST0NfVEFHXykpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkU3BlY2lhbChjLCBiLCBuZXdDRSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYoYy5jb250cmFjdGlvbnMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYy5jb250cmFjdGlvbnMuYWRkKGIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYoYy5leHBhbnNpb25zICE9IG51bGwgJiYgaXNTcGVjaWFsKG5ld0NFKSAmJiBnZXRUYWcobmV3Q0UpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9FWFBBTlNJT05fVEFHXykgeworICAgICAgICAgICAgICAgICAgICAgICAgYy5leHBhbnNpb25zLmFkZChiLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG9mZnNldCsrOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYoZ2V0VGFnKENFKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfQ09OVFJBQ1RJT05fVEFHXykgeworICAgICAgICAgICAgd2hpbGUoYy5jb2xsLm1fY29udHJhY3Rpb25JbmRleF9bb2Zmc2V0XSAhPSAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICBiLmRlbGV0ZSgwLCBiLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBiLmFwcGVuZChidWZmZXIpOworICAgICAgICAgICAgICAgIG5ld0NFID0gYy5jb2xsLm1fY29udHJhY3Rpb25DRV9bb2Zmc2V0XTsKKyAgICAgICAgICAgICAgICBiLmFwcGVuZChjLmNvbGwubV9jb250cmFjdGlvbkluZGV4X1tvZmZzZXRdKTsKKyAgICAgICAgICAgICAgICBpZihpc1NwZWNpYWwobmV3Q0UpICYmIChnZXRUYWcobmV3Q0UpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9DT05UUkFDVElPTl9UQUdfIHx8IGdldFRhZyhuZXdDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX1NQRUNfUFJPQ19UQUdfKSkgeworICAgICAgICAgICAgICAgICAgICBhZGRTcGVjaWFsKGMsIGIsIG5ld0NFKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZihjLmNvbnRyYWN0aW9ucyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjLmNvbnRyYWN0aW9ucy5hZGQoYi50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZihjLmV4cGFuc2lvbnMgIT0gbnVsbCAmJiBpc1NwZWNpYWwobmV3Q0UpICYmIGdldFRhZyhuZXdDRSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLkNFX0VYUEFOU0lPTl9UQUdfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjLmV4cGFuc2lvbnMuYWRkKGIudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2Zmc2V0Kys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZQorICAgIHZvaWQgcHJvY2Vzc1NwZWNpYWxzKGNvbnRDb250ZXh0IGMpIAorICAgIHsKKyAgICAgICAgaW50IGludGVybmFsQnVmZmVyU2l6ZSA9IDUxMjsKKyAgICAgICAgVHJpZUl0ZXJhdG9yIHRyaWVpdGVyYXRvciAKKyAgICAgICAgPSBuZXcgVHJpZUl0ZXJhdG9yKGMuY29sbC5tX3RyaWVfKTsKKyAgICAgICAgUmFuZ2VWYWx1ZUl0ZXJhdG9yLkVsZW1lbnQgZWxlbWVudCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICAgICAgICB3aGlsZSAodHJpZWl0ZXJhdG9yLm5leHQoZWxlbWVudCkpIHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IGVsZW1lbnQuc3RhcnQ7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBlbGVtZW50LmxpbWl0OworICAgICAgICAgICAgaW50IENFID0gZWxlbWVudC52YWx1ZTsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBjb250cmFjdGlvbiA9IG5ldyBTdHJpbmdCdWZmZXIoaW50ZXJuYWxCdWZmZXJTaXplKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYoaXNTcGVjaWFsKENFKSkgeworICAgICAgICAgICAgICAgIGlmKCgoZ2V0VGFnKENFKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfU1BFQ19QUk9DX1RBR18gJiYgYy5hZGRQcmVmaXhlcykgfHwgZ2V0VGFnKENFKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfQ09OVFJBQ1RJT05fVEFHXykpIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUoc3RhcnQgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgYXJlIHN1cHByZXNzZWQgY29udHJhY3Rpb25zLCB3ZSBkb24ndCAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdhbnQgdG8gYWRkIHRoZW0uCisgICAgICAgICAgICAgICAgICAgICAgICBpZihjLnJlbW92ZWRDb250cmFjdGlvbnMgIT0gbnVsbCAmJiBjLnJlbW92ZWRDb250cmFjdGlvbnMuY29udGFpbnMoc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIHN0YXJ0IG91ciBjb250cmFjdGlvbiBmcm9tIG1pZGRsZSwgc2luY2Ugd2UgZG9uJ3Qga25vdyBpZiBpdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBncm93IHRvd2FyZCByaWdodCBvciBsZWZ0CisgICAgICAgICAgICAgICAgICAgICAgICBjb250cmFjdGlvbi5hcHBlbmQoKGNoYXIpIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZFNwZWNpYWwoYywgY29udHJhY3Rpb24sIENFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0Kys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoYy5leHBhbnNpb25zICE9IG51bGwgJiYgZ2V0VGFnKENFKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfRVhQQU5TSU9OX1RBR18pIHsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUoc3RhcnQgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYy5leHBhbnNpb25zLmFkZChzdGFydCsrKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHVuaWNvZGUgc2V0cyBjb250YWluaW5nIGNvbnRyYWN0aW9ucyBhbmQvb3IgZXhwYW5zaW9ucyBvZiBhIGNvbGxhdG9yCisgICAgICogQHBhcmFtIGNvbnRyYWN0aW9ucyBpZiBub3QgbnVsbCwgc2V0IHRvIGNvbnRhaW4gY29udHJhY3Rpb25zCisgICAgICogQHBhcmFtIGV4cGFuc2lvbnMgaWYgbm90IG51bGwsIHNldCB0byBjb250YWluIGV4cGFuc2lvbnMKKyAgICAgKiBAcGFyYW0gYWRkUHJlZml4ZXMgYWRkIHRoZSBwcmVmaXggY29udGV4dHVhbCBlbGVtZW50cyB0byBjb250cmFjdGlvbnMKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkCisgICAgZ2V0Q29udHJhY3Rpb25zQW5kRXhwYW5zaW9ucyhVbmljb2RlU2V0IGNvbnRyYWN0aW9ucywgVW5pY29kZVNldCBleHBhbnNpb25zLAorICAgICAgICAgICAgYm9vbGVhbiBhZGRQcmVmaXhlcykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGlmKGNvbnRyYWN0aW9ucyAhPSBudWxsKSB7CisgICAgICAgICAgICBjb250cmFjdGlvbnMuY2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICBpZihleHBhbnNpb25zICE9IG51bGwpIHsKKyAgICAgICAgICAgIGV4cGFuc2lvbnMuY2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICBpbnQgcnVsZXNMZW4gPSAwOworICAgICAgICBTdHJpbmcgcnVsZXMgPSBnZXRSdWxlcygpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ29sbGF0aW9uUnVsZVBhcnNlciBzcmMgPSBuZXcgQ29sbGF0aW9uUnVsZVBhcnNlcihydWxlcyk7CisgICAgICAgICAgICBjb250Q29udGV4dCBjID0gbmV3IGNvbnRDb250ZXh0KFJ1bGVCYXNlZENvbGxhdG9yLlVDQV8sIAorICAgICAgICAgICAgICAgICAgICBjb250cmFjdGlvbnMsIGV4cGFuc2lvbnMsIHNyYy5tX3JlbW92ZVNldF8sIGFkZFByZWZpeGVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQWRkIHRoZSBVQ0EgY29udHJhY3Rpb25zCisgICAgICAgICAgICBwcm9jZXNzU3BlY2lhbHMoYyk7CisgICAgICAgICAgICAvLyBUaGlzIGlzIGNvbGxhdG9yIHNwZWNpZmljLiBBZGQgY29udHJhY3Rpb25zIGZyb20gYSBjb2xsYXRvcgorICAgICAgICAgICAgYy5jb2xsID0gdGhpczsKKyAgICAgICAgICAgIGMucmVtb3ZlZENvbnRyYWN0aW9ucyA9ICBudWxsOworICAgICAgICAgICAgcHJvY2Vzc1NwZWNpYWxzKGMpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBHZXQgYSBDb2xsYXRpb24ga2V5IGZvciB0aGUgYXJndW1lbnQgU3RyaW5nIHNvdXJjZSBmcm9tIHRoaXMKKyAgICAgKiBSdWxlQmFzZWRDb2xsYXRvci4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogR2VuZXJhbCByZWNvbW1lbmRhdGlvbjogPGJyPgorICAgICAqIElmIGNvbXBhcmlzb24gYXJlIHRvIGJlIGRvbmUgdG8gdGhlIHNhbWUgU3RyaW5nIG11bHRpcGxlIHRpbWVzLCBpdCB3b3VsZAorICAgICAqIGJlIG1vcmUgZWZmaWNpZW50IHRvIGdlbmVyYXRlIENvbGxhdGlvbktleXMgZm9yIHRoZSBTdHJpbmdzIGFuZCB1c2UKKyAgICAgKiBDb2xsYXRpb25LZXkuY29tcGFyZVRvKENvbGxhdGlvbktleSkgZm9yIHRoZSBjb21wYXJpc29ucy4KKyAgICAgKiBJZiB0aGUgZWFjaCBTdHJpbmdzIGFyZSBjb21wYXJlZCB0byBvbmx5IG9uY2UsIHVzaW5nIHRoZSBtZXRob2QKKyAgICAgKiBSdWxlQmFzZWRDb2xsYXRvci5jb21wYXJlKFN0cmluZywgU3RyaW5nKSB3aWxsIGhhdmUgYSBiZXR0ZXIgcGVyZm9ybWFuY2UuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlZSB0aGUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgYW4gZXhwbGFuYXRpb24gYWJvdXQgQ29sbGF0aW9uS2V5cy4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgdGV4dCBTdHJpbmcgdG8gYmUgdHJhbnNmb3JtZWQgaW50byBhIGNvbGxhdGlvbiBrZXkuCisgICAgICogQHJldHVybiB0aGUgQ29sbGF0aW9uS2V5IGZvciB0aGUgZ2l2ZW4gU3RyaW5nIGJhc2VkIG9uIHRoaXMKKyAgICAgKiAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yJ3MgY29sbGF0aW9uIHJ1bGVzLiBJZiB0aGUgc291cmNlIFN0cmluZyBpcworICAgICAqICAgICAgICAgbnVsbCwgYSBudWxsIENvbGxhdGlvbktleSBpcyByZXR1cm5lZC4KKyAgICAgKiBAc2VlIENvbGxhdGlvbktleQorICAgICAqIEBzZWUgI2NvbXBhcmUoU3RyaW5nLCBTdHJpbmcpCisgICAgICogQHNlZSAjZ2V0UmF3Q29sbGF0aW9uS2V5CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIENvbGxhdGlvbktleSBnZXRDb2xsYXRpb25LZXkoU3RyaW5nIHNvdXJjZSkgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIG1fdXRpbFJhd0NvbGxhdGlvbktleV8gPSBnZXRSYXdDb2xsYXRpb25LZXkoc291cmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxSYXdDb2xsYXRpb25LZXlfKTsKKyAgICAgICAgcmV0dXJuIG5ldyBDb2xsYXRpb25LZXkoc291cmNlLCBtX3V0aWxSYXdDb2xsYXRpb25LZXlfKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgc2ltcGxlciBmb3JtIG9mIGEgQ29sbGF0aW9uS2V5IGZvciB0aGUgU3RyaW5nIHNvdXJjZSBmb2xsb3dpbmcKKyAgICAgKiB0aGUgcnVsZXMgb2YgdGhpcyBDb2xsYXRvciBhbmQgc3RvcmVzIHRoZSByZXN1bHQgaW50byB0aGUgdXNlciBwcm92aWRlZCAKKyAgICAgKiBhcmd1bWVudCBrZXkuIAorICAgICAqIElmIGtleSBoYXMgYSBpbnRlcm5hbCBieXRlIGFycmF5IG9mIGxlbmd0aCB0aGF0J3MgdG9vIHNtYWxsIGZvciB0aGUgCisgICAgICogcmVzdWx0LCB0aGUgaW50ZXJuYWwgYnl0ZSBhcnJheSB3aWxsIGJlIGdyb3duIHRvIHRoZSBleGFjdCByZXF1aXJlZCAKKyAgICAgKiBzaXplLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHRleHQgU3RyaW5nIHRvIGJlIHRyYW5zZm9ybWVkIGludG8gYSBSYXdDb2xsYXRpb25LZXkgIAorICAgICAqIEBwYXJhbSBrZXkgb3V0cHV0IFJhd0NvbGxhdGlvbktleSB0byBzdG9yZSByZXN1bHRzCisgICAgICogQHJldHVybiBJZiBrZXkgaXMgbnVsbCwgYSBuZXcgaW5zdGFuY2Ugb2YgUmF3Q29sbGF0aW9uS2V5IHdpbGwgYmUgCisgICAgICogICAgICAgICBjcmVhdGVkIGFuZCByZXR1cm5lZCwgb3RoZXJ3aXNlIHRoZSB1c2VyIHByb3ZpZGVkIGtleSB3aWxsIGJlIAorICAgICAqICAgICAgICAgcmV0dXJuZWQuCisgICAgICogQHNlZSAjZ2V0Q29sbGF0aW9uS2V5IAorICAgICAqIEBzZWUgI2NvbXBhcmUoU3RyaW5nLCBTdHJpbmcpCisgICAgICogQHNlZSBSYXdDb2xsYXRpb25LZXkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgUmF3Q29sbGF0aW9uS2V5IGdldFJhd0NvbGxhdGlvbktleShTdHJpbmcgc291cmNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSYXdDb2xsYXRpb25LZXkga2V5KQorICAgIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBpbnQgc3RyZW5ndGggPSBnZXRTdHJlbmd0aCgpOworICAgICAgICBtX3V0aWxDb21wYXJlMF8gPSBtX2lzQ2FzZUxldmVsXzsKKyAgICAgICAgbV91dGlsQ29tcGFyZTFfID0gdHJ1ZTsKKyAgICAgICAgbV91dGlsQ29tcGFyZTJfID0gc3RyZW5ndGggPj0gU0VDT05EQVJZOworICAgICAgICBtX3V0aWxDb21wYXJlM18gPSBzdHJlbmd0aCA+PSBURVJUSUFSWTsKKyAgICAgICAgbV91dGlsQ29tcGFyZTRfID0gc3RyZW5ndGggPj0gUVVBVEVSTkFSWTsKKyAgICAgICAgbV91dGlsQ29tcGFyZTVfID0gc3RyZW5ndGggPT0gSURFTlRJQ0FMOworCisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQwXyA9IDA7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyA9IDA7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQyXyA9IDA7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyA9IDA7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ0XyA9IDA7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ1XyA9IDA7CisgICAgICAgIG1fdXRpbENvdW50MF8gPSAwOworICAgICAgICBtX3V0aWxDb3VudDFfID0gMDsKKyAgICAgICAgbV91dGlsQ291bnQyXyA9IDA7CisgICAgICAgIG1fdXRpbENvdW50M18gPSAwOworICAgICAgICBtX3V0aWxDb3VudDRfID0gMDsKKyAgICAgICAgbV91dGlsQ291bnQ1XyA9IDA7CisgICAgICAgIGJvb2xlYW4gZG9GcmVuY2ggPSBtX2lzRnJlbmNoQ29sbGF0aW9uXyAmJiBtX3V0aWxDb21wYXJlMl87CisgICAgICAgIC8vIFRPRE86IFVDT0xfQ09NTU9OX0JPVDQgc2hvdWxkIGJlIGEgZnVuY3Rpb24gb2YgcVNoaWZ0ZWQuCisgICAgICAgIC8vIElmIHdlIGhhdmUgbm8gcVNoaWZ0ZWQsIHdlIGRvbid0IG5lZWQgdG8gc2V0IFVDT0xfQ09NTU9OX0JPVDQgc28KKyAgICAgICAgLy8gaGlnaC4KKyAgICAgICAgaW50IGNvbW1vbkJvdHRvbTQgPSAoKG1fdmFyaWFibGVUb3BWYWx1ZV8gPj4+IDgpICsgMSkgJiBMQVNUX0JZVEVfTUFTS187CisgICAgICAgIGJ5dGUgaGlyYWdhbmE0ID0gMDsKKyAgICAgICAgaWYgKG1faXNIaXJhZ2FuYTRfICYmIG1fdXRpbENvbXBhcmU0XykgeworICAgICAgICAgICAgLy8gYWxsb2NhdGUgb25lIG1vcmUgc3BhY2UgZm9yIGhpcmFnYW5hLCB2YWx1ZSBmb3IgaGlyYWdhbmEKKyAgICAgICAgICAgIGhpcmFnYW5hNCA9IChieXRlKWNvbW1vbkJvdHRvbTQ7CisgICAgICAgICAgICBjb21tb25Cb3R0b200ICsrOworICAgICAgICB9CisKKyAgICAgICAgaW50IGJvdHRvbUNvdW50NCA9IDB4RkYgLSBjb21tb25Cb3R0b200OworICAgICAgICAvLyBJZiB3ZSBuZWVkIHRvIG5vcm1hbGl6ZSwgd2UnbGwgZG8gaXQgYWxsIGF0IG9uY2UgYXQgdGhlIGJlZ2lubmluZyEKKyAgICAgICAgaWYgKG1fdXRpbENvbXBhcmU1XyAmJiBOb3JtYWxpemVyLnF1aWNrQ2hlY2soc291cmNlLCBOb3JtYWxpemVyLk5GRCwwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuWUVTKSB7CisgICAgICAgICAgICAvLyBpZiBpdCBpcyBpZGVudGljYWwgc3RyZW5ndGgsIHdlIGhhdmUgdG8gbm9ybWFsaXplIHRoZSBzdHJpbmcgdG8KKyAgICAgICAgICAgIC8vIE5GRCBzbyB0aGF0IGl0IHdpbGwgYmUgYXBwZW5kZWQgY29ycmVjdGx5IHRvIHRoZSBlbmQgb2YgdGhlIHNvcnQKKyAgICAgICAgICAgIC8vIGtleQorICAgICAgICAgICAgc291cmNlID0gTm9ybWFsaXplci5kZWNvbXBvc2Uoc291cmNlLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZ2V0RGVjb21wb3NpdGlvbigpICE9IE5PX0RFQ09NUE9TSVRJT04KKyAgICAgICAgICAgICYmIE5vcm1hbGl6ZXIucXVpY2tDaGVjayhzb3VyY2UsIE5vcm1hbGl6ZXIuRkNELDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gTm9ybWFsaXplci5ZRVMpIHsKKyAgICAgICAgICAgIC8vIGZvciB0aGUgcmVzdCBvZiB0aGUgc3RyZW5ndGgsIGlmIGRlY29tcG9zaXRpb24gaXMgb24sIEZDRCBpcworICAgICAgICAgICAgLy8gZW5vdWdoIGZvciB1cyB0byB3b3JrIG9uLgorICAgICAgICAgICAgc291cmNlID0gTm9ybWFsaXplci5ub3JtYWxpemUoc291cmNlLE5vcm1hbGl6ZXIuRkNEKTsKKyAgICAgICAgfQorICAgICAgICBnZXRTb3J0S2V5Qnl0ZXMoc291cmNlLCBkb0ZyZW5jaCwgaGlyYWdhbmE0LCBjb21tb25Cb3R0b200LAorICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tQ291bnQ0KTsKKyAgICAgICAgaWYgKGtleSA9PSBudWxsKSB7CisgICAgICAgICAgICBrZXkgPSBuZXcgUmF3Q29sbGF0aW9uS2V5KCk7CisgICAgICAgIH0KKyAgICAgICAgZ2V0U29ydEtleShzb3VyY2UsIGRvRnJlbmNoLCBjb21tb25Cb3R0b200LCBib3R0b21Db3VudDQsIGtleSk7CisgICAgICAgIHJldHVybiBrZXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgYW4gdXBwZXJjYXNlIGNoYXJhY3RlciBpcyBzb3J0ZWQgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIGxvd2VyY2FzZSBjaGFyYWN0ZXIuCisgICAgICogU2VlIHNldENhc2VGaXJzdChib29sZWFuKSBmb3IgZGV0YWlscy4KKyAgICAgKiBAc2VlICNzZXRVcHBlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI3NldExvd2VyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjaXNMb3dlckNhc2VGaXJzdAorICAgICAqIEBzZWUgI3NldENhc2VGaXJzdERlZmF1bHQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdXBwZXIgY2FzZWQgY2hhcmFjdGVycyBhcmUgc29ydGVkIGJlZm9yZSBsb3dlciBjYXNlZAorICAgICAqICAgICAgICAgY2hhcmFjdGVycywgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgIHB1YmxpYyBib29sZWFuIGlzVXBwZXJDYXNlRmlyc3QoKQorICAgICB7CisgICAgICAgIHJldHVybiAobV9jYXNlRmlyc3RfID09IEF0dHJpYnV0ZVZhbHVlLlVQUEVSX0ZJUlNUXyk7CisgICAgIH0KKyAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgYSBsb3dlcmNhc2UgY2hhcmFjdGVyIGlzIHNvcnRlZCBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgdXBwZXJjYXNlIGNoYXJhY3Rlci4KKyAgICAgKiBTZWUgc2V0Q2FzZUZpcnN0KGJvb2xlYW4pIGZvciBkZXRhaWxzLgorICAgICAqIEBzZWUgI3NldFVwcGVyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjc2V0TG93ZXJDYXNlRmlyc3QKKyAgICAgKiBAc2VlICNpc1VwcGVyQ2FzZUZpcnN0CisgICAgICogQHNlZSAjc2V0Q2FzZUZpcnN0RGVmYXVsdAorICAgICAqIEByZXR1cm4gdHJ1ZSBsb3dlciBjYXNlZCBjaGFyYWN0ZXJzIGFyZSBzb3J0ZWQgYmVmb3JlIHVwcGVyIGNhc2VkCisgICAgICogICAgICAgICBjaGFyYWN0ZXJzLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0xvd2VyQ2FzZUZpcnN0KCkKKyAgICB7CisgICAgICAgIHJldHVybiAobV9jYXNlRmlyc3RfID09IEF0dHJpYnV0ZVZhbHVlLkxPV0VSX0ZJUlNUXyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHRoZSBhbHRlcm5hdGUgaGFuZGxpbmcgYmVoYXZpb3VyIGlzIHRoZSBVQ0EgZGVmaW5lZCBTSElGVEVEIG9yCisgICAgICogTk9OX0lHTk9SQUJMRS4KKyAgICAgKiBJZiByZXR1cm4gdmFsdWUgaXMgdHJ1ZSwgdGhlbiB0aGUgYWx0ZXJuYXRlIGhhbmRsaW5nIGF0dHJpYnV0ZSBmb3IgdGhlCisgICAgICogQ29sbGF0b3IgaXMgU0hJRlRFRC4gT3RoZXJ3aXNlIGlmIHJldHVybiB2YWx1ZSBpcyBmYWxzZSwgdGhlbiB0aGUKKyAgICAgKiBhbHRlcm5hdGUgaGFuZGxpbmcgYXR0cmlidXRlIGZvciB0aGUgQ29sbGF0b3IgaXMgTk9OX0lHTk9SQUJMRQorICAgICAqIFNlZSBzZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoYm9vbGVhbikgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKiBAcmV0dXJuIHRydWUgb3IgZmFsc2UKKyAgICAgKiBAc2VlICNzZXRBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWQoYm9vbGVhbikKKyAgICAgKiBAc2VlICNzZXRBbHRlcm5hdGVIYW5kbGluZ0RlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIGNhc2UgbGV2ZWwgaXMgc2V0IHRvIHRydWUuCisgICAgICogU2VlIHNldENhc2VMZXZlbChib29sZWFuKSBmb3IgZGV0YWlscy4KKyAgICAgKiBAcmV0dXJuIHRoZSBjYXNlIGxldmVsIG1vZGUKKyAgICAgKiBAc2VlICNzZXRDYXNlTGV2ZWxEZWZhdWx0CisgICAgICogQHNlZSAjaXNDYXNlTGV2ZWwKKyAgICAgKiBAc2VlICNzZXRDYXNlTGV2ZWwoYm9vbGVhbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0Nhc2VMZXZlbCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9pc0Nhc2VMZXZlbF87CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIEZyZW5jaCBDb2xsYXRpb24gaXMgc2V0IHRvIHRydWUuCisgICAgICogU2VlIHNldEZyZW5jaENvbGxhdGlvbihib29sZWFuKSBmb3IgZGV0YWlscy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgRnJlbmNoIENvbGxhdGlvbiBpcyBzZXQgdG8gdHJ1ZSwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICogQHNlZSAjc2V0RnJlbmNoQ29sbGF0aW9uKGJvb2xlYW4pCisgICAgICogQHNlZSAjc2V0RnJlbmNoQ29sbGF0aW9uRGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgICBwdWJsaWMgYm9vbGVhbiBpc0ZyZW5jaENvbGxhdGlvbigpCisgICAgIHsKKyAgICAgICAgIHJldHVybiBtX2lzRnJlbmNoQ29sbGF0aW9uXzsKKyAgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHRoZSBIaXJhZ2FuYSBRdWF0ZXJuYXJ5IG1vZGUgaXMgc2V0IG9uLgorICAgICAqIFNlZSBzZXRIaXJhZ2FuYVF1YXRlcm5hcnkoYm9vbGVhbikgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKiBAcmV0dXJuIGZsYWcgdHJ1ZSBpZiBIaXJhZ2FuYSBRdWF0ZXJuYXJ5IG1vZGUgaXMgb24sIGZhbHNlIG90aGVyd2lzZQorICAgICAqIEBzZWUgI3NldEhpcmFnYW5hUXVhdGVybmFyeURlZmF1bHQKKyAgICAgKiBAc2VlICNzZXRIaXJhZ2FuYVF1YXRlcm5hcnkoYm9vbGVhbikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0hpcmFnYW5hUXVhdGVybmFyeSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9pc0hpcmFnYW5hNF87CisgICAgfQorCisgICAgLyoqIAorICAgICAqIEdldHMgdGhlIHZhcmlhYmxlIHRvcCB2YWx1ZSBvZiBhIENvbGxhdG9yLiAKKyAgICAgKiBMb3dlciAxNiBiaXRzIGFyZSB1bmRlZmluZWQgYW5kIHNob3VsZCBiZSBpZ25vcmVkLgorICAgICAqIEByZXR1cm4gdGhlIHZhcmlhYmxlIHRvcCB2YWx1ZSBvZiBhIENvbGxhdG9yLgorICAgICAqIEBzZWUgI3NldFZhcmlhYmxlVG9wCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIGludCBnZXRWYXJpYWJsZVRvcCgpCisgICAgeworICAgICAgICAgIHJldHVybiBtX3ZhcmlhYmxlVG9wVmFsdWVfIDw8IDE2OworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogTWV0aG9kIHRvIHJldHJpZXZlIHRoZSBudW1lcmljIGNvbGxhdGlvbiB2YWx1ZS4KKyAgICAgKiBXaGVuIG51bWVyaWMgY29sbGF0aW9uIGlzIHR1cm5lZCBvbiwgdGhpcyBDb2xsYXRvciBnZW5lcmF0ZXMgYSBjb2xsYXRpb24gCisgICAgICoga2V5IGZvciB0aGUgbnVtZXJpYyB2YWx1ZSBvZiBzdWJzdHJpbmdzIG9mIGRpZ2l0cy4gVGhpcyBpcyBhIHdheSB0byBnZXQgCisgICAgICogJzEwMCcgdG8gc29ydCBBRlRFUiAnMicKKyAgICAgKiBAc2VlICNzZXROdW1lcmljQ29sbGF0aW9uCisgICAgICogQHNlZSAjc2V0TnVtZXJpY0NvbGxhdGlvbkRlZmF1bHQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgbnVtZXJpYyBjb2xsYXRpb24gaXMgdHVybmVkIG9uLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXROdW1lcmljQ29sbGF0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lzTnVtZXJpY0NvbGxhdGlvbl87CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBvdGhlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSBlcXVhbGl0eSBvZiB0d28gUnVsZUJhc2VkQ29sbGF0b3Igb2JqZWN0cy4KKyAgICAgKiBSdWxlQmFzZWRDb2xsYXRvciBvYmplY3RzIGFyZSBlcXVhbCBpZiB0aGV5IGhhdmUgdGhlIHNhbWUgY29sbGF0aW9uCisgICAgICogcnVsZXMgYW5kIHRoZSBzYW1lIGF0dHJpYnV0ZXMuCisgICAgICogQHBhcmFtIG9iaiB0aGUgUnVsZUJhc2VkQ29sbGF0b3IgdG8gYmUgY29tcGFyZWQgdG8uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgUnVsZUJhc2VkQ29sbGF0b3IgaGFzIGV4YWN0bHkgdGhlIHNhbWUKKyAgICAgKiAgICAgICAgIGNvbGxhdGlvbiBiZWhhdmlvdXIgYXMgb2JqLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopCisgICAgeworICAgICAgICBpZiAob2JqID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsgIC8vIHN1cGVyIGRvZXMgY2xhc3MgY2hlY2sKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcyA9PSBvYmopIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3Igb3RoZXIgPSAoUnVsZUJhc2VkQ29sbGF0b3Ipb2JqOworICAgICAgICAvLyBhbGwgb3RoZXIgbm9uLXRyYW5zaWVudCBpbmZvcm1hdGlvbiBpcyBhbHNvIGNvbnRhaW5lZCBpbiBydWxlcy4KKyAgICAgICAgaWYgKGdldFN0cmVuZ3RoKCkgIT0gb3RoZXIuZ2V0U3RyZW5ndGgoKQorICAgICAgICAgICAgICAgfHwgZ2V0RGVjb21wb3NpdGlvbigpICE9IG90aGVyLmdldERlY29tcG9zaXRpb24oKQorICAgICAgICAgICAgICAgfHwgb3RoZXIubV9jYXNlRmlyc3RfICE9IG1fY2FzZUZpcnN0XworICAgICAgICAgICAgICAgfHwgb3RoZXIubV9jYXNlU3dpdGNoXyAhPSBtX2Nhc2VTd2l0Y2hfCisgICAgICAgICAgICAgICB8fCBvdGhlci5tX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8KKyAgICAgICAgICAgICAgIHx8IG90aGVyLm1faXNDYXNlTGV2ZWxfICE9IG1faXNDYXNlTGV2ZWxfCisgICAgICAgICAgICAgICB8fCBvdGhlci5tX2lzRnJlbmNoQ29sbGF0aW9uXyAhPSBtX2lzRnJlbmNoQ29sbGF0aW9uXworICAgICAgICAgICAgICAgfHwgb3RoZXIubV9pc0hpcmFnYW5hNF8gIT0gbV9pc0hpcmFnYW5hNF8pIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuIHJ1bGVzID0gbV9ydWxlc18gPT0gb3RoZXIubV9ydWxlc187CisgICAgICAgIGlmICghcnVsZXMgJiYgKG1fcnVsZXNfICE9IG51bGwgJiYgb3RoZXIubV9ydWxlc18gIT0gbnVsbCkpIHsKKyAgICAgICAgICAgIHJ1bGVzID0gbV9ydWxlc18uZXF1YWxzKG90aGVyLm1fcnVsZXNfKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXJ1bGVzIHx8ICFJQ1VEZWJ1Zy5lbmFibGVkKCJjb2xsYXRpb24iKSkgeworICAgICAgICAgICAgcmV0dXJuIHJ1bGVzOworICAgICAgICB9CisgICAgICAgIGlmIChtX2FkZGl0aW9uM18gIT0gb3RoZXIubV9hZGRpdGlvbjNfCisgICAgICAgICAgICAgICAgICB8fCBtX2JvdHRvbTNfICE9IG90aGVyLm1fYm90dG9tM18KKyAgICAgICAgICAgICAgICAgIHx8IG1fYm90dG9tQ291bnQzXyAhPSBvdGhlci5tX2JvdHRvbUNvdW50M18KKyAgICAgICAgICAgICAgICAgIHx8IG1fY29tbW9uM18gIT0gb3RoZXIubV9jb21tb24zXworICAgICAgICAgICAgICAgICAgfHwgbV9pc1NpbXBsZTNfICE9IG90aGVyLm1faXNTaW1wbGUzXworICAgICAgICAgICAgICAgICAgfHwgbV9tYXNrM18gIT0gb3RoZXIubV9tYXNrM18KKyAgICAgICAgICAgICAgICAgIHx8IG1fbWluQ29udHJhY3Rpb25FbmRfICE9IG90aGVyLm1fbWluQ29udHJhY3Rpb25FbmRfCisgICAgICAgICAgICAgICAgICB8fCBtX21pblVuc2FmZV8gIT0gb3RoZXIubV9taW5VbnNhZmVfCisgICAgICAgICAgICAgICAgICB8fCBtX3RvcDNfICE9IG90aGVyLm1fdG9wM18KKyAgICAgICAgICAgICAgICAgIHx8IG1fdG9wQ291bnQzXyAhPSBvdGhlci5tX3RvcENvdW50M18KKyAgICAgICAgICAgICAgICAgIHx8ICFBcnJheXMuZXF1YWxzKG1fdW5zYWZlXywgb3RoZXIubV91bnNhZmVfKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICghbV90cmllXy5lcXVhbHMob3RoZXIubV90cmllXykpIHsKKyAgICAgICAgICAgIC8vIHdlIHNob3VsZCB1c2UgdGhlIHRyaWUgaXRlcmF0b3IgaGVyZSwgYnV0IHRoZW4gdGhpcyBwYXJ0IGlzCisgICAgICAgICAgICAvLyBvbmx5IHVzZWQgaW4gdGhlIHRlc3QuCisgICAgICAgICAgICBmb3IgKGludCBpID0gVUNoYXJhY3Rlci5NQVhfVkFMVUU7IGkgPj0gVUNoYXJhY3Rlci5NSU5fVkFMVUU7IGkgLS0pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IHYgPSBtX3RyaWVfLmdldENvZGVQb2ludFZhbHVlKGkpOworICAgICAgICAgICAgICAgIGludCBvdGhlcnYgPSBvdGhlci5tX3RyaWVfLmdldENvZGVQb2ludFZhbHVlKGkpOworICAgICAgICAgICAgICAgIGlmICh2ICE9IG90aGVydikgeworICAgICAgICAgICAgICAgICAgICBpbnQgbWFzayA9IHYgJiAoQ0VfVEFHX01BU0tfIHwgQ0VfU1BFQ0lBTF9GTEFHXyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChtYXNrID09IChvdGhlcnYgJiAweGZmMDAwMDAwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdiAmPSAweGZmZmZmZjsKKyAgICAgICAgICAgICAgICAgICAgICAgIG90aGVydiAmPSAweGZmZmZmZjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXNrID09IDB4ZjEwMDAwMDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC09IChtX2V4cGFuc2lvbk9mZnNldF8gPDwgNCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ2IC09IChvdGhlci5tX2V4cGFuc2lvbk9mZnNldF8gPDwgNCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChtYXNrID09IDB4ZjIwMDAwMDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC09IG1fY29udHJhY3Rpb25PZmZzZXRfOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVydiAtPSBvdGhlci5tX2NvbnRyYWN0aW9uT2Zmc2V0XzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ID09IG90aGVydikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKEFycmF5cy5lcXVhbHMobV9jb250cmFjdGlvbkNFXywgb3RoZXIubV9jb250cmFjdGlvbkNFXykKKyAgICAgICAgICAgICYmIEFycmF5cy5lcXVhbHMobV9jb250cmFjdGlvbkVuZF8sIG90aGVyLm1fY29udHJhY3Rpb25FbmRfKQorICAgICAgICAgICAgJiYgQXJyYXlzLmVxdWFscyhtX2NvbnRyYWN0aW9uSW5kZXhfLCBvdGhlci5tX2NvbnRyYWN0aW9uSW5kZXhfKQorICAgICAgICAgICAgJiYgQXJyYXlzLmVxdWFscyhtX2V4cGFuc2lvbl8sIG90aGVyLm1fZXhwYW5zaW9uXykKKyAgICAgICAgICAgICYmIEFycmF5cy5lcXVhbHMobV9leHBhbnNpb25FbmRDRV8sIG90aGVyLm1fZXhwYW5zaW9uRW5kQ0VfKSkgeworICAgICAgICAgICAgLy8gbm90IGNvbXBhcmluZyBwYWRkaW5ncworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2V4cGFuc2lvbkVuZENFXy5sZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgICAgICAgaWYgKG1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplX1tpXQorICAgICAgICAgICAgICAgICAgICAgIT0gb3RoZXIubV9leHBhbnNpb25FbmRDRU1heFNpemVfW2ldKSB7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyBhIHVuaXF1ZSBoYXNoIGNvZGUgZm9yIHRoaXMgUnVsZUJhc2VkQ29sbGF0b3IuCisgICAgICogQHJldHVybiB0aGUgdW5pcXVlIGhhc2ggY29kZSBmb3IgdGhpcyBDb2xsYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHJ1bGVzID0gZ2V0UnVsZXMoKTsKKyAgICAgICAgaWYgKHJ1bGVzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJ1bGVzID0gIiI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJ1bGVzLmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIHNvdXJjZSB0ZXh0IFN0cmluZyB0byB0aGUgdGFyZ2V0IHRleHQgU3RyaW5nIGFjY29yZGluZyB0bworICAgICAqIHRoZSBjb2xsYXRpb24gcnVsZXMsIHN0cmVuZ3RoIGFuZCBkZWNvbXBvc2l0aW9uIG1vZGUgZm9yIHRoaXMKKyAgICAgKiBSdWxlQmFzZWRDb2xsYXRvci4KKyAgICAgKiBSZXR1cm5zIGFuIGludGVnZXIgbGVzcyB0aGFuLAorICAgICAqIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiB6ZXJvIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBzb3VyY2UgU3RyaW5nIGlzCisgICAgICogbGVzcyB0aGFuLCBlcXVhbCB0byBvciBncmVhdGVyIHRoYW4gdGhlIHRhcmdldCBTdHJpbmcuIFNlZSB0aGUgQ29sbGF0b3IKKyAgICAgKiBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZSBvZiB1c2UuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIEdlbmVyYWwgcmVjb21tZW5kYXRpb246IDxicj4KKyAgICAgKiBJZiBjb21wYXJpc29uIGFyZSB0byBiZSBkb25lIHRvIHRoZSBzYW1lIFN0cmluZyBtdWx0aXBsZSB0aW1lcywgaXQgd291bGQKKyAgICAgKiBiZSBtb3JlIGVmZmljaWVudCB0byBnZW5lcmF0ZSBDb2xsYXRpb25LZXlzIGZvciB0aGUgU3RyaW5ncyBhbmQgdXNlCisgICAgICogQ29sbGF0aW9uS2V5LmNvbXBhcmVUbyhDb2xsYXRpb25LZXkpIGZvciB0aGUgY29tcGFyaXNvbnMuCisgICAgICogSWYgc3BlZWQgcGVyZm9ybWFuY2UgaXMgY3JpdGljYWwgYW5kIG9iamVjdCBpbnN0YW50aWF0aW9uIGlzIHRvIGJlIAorICAgICAqIHJlZHVjZWQsIGZ1cnRoZXIgb3B0aW1pemF0aW9uIG1heSBiZSBhY2hpZXZlZCBieSBnZW5lcmF0aW5nIGEgc2ltcGxlciAKKyAgICAgKiBrZXkgb2YgdGhlIGZvcm0gUmF3Q29sbGF0aW9uS2V5IGFuZCByZXVzaW5nIHRoaXMgUmF3Q29sbGF0aW9uS2V5IAorICAgICAqIG9iamVjdCB3aXRoIHRoZSBtZXRob2QgUnVsZUJhc2VkQ29sbGF0b3IuZ2V0UmF3Q29sbGF0aW9uS2V5LiBJbnRlcm5hbCAKKyAgICAgKiBieXRlIHJlcHJlc2VudGF0aW9uIGNhbiBiZSBkaXJlY3RseSBhY2Nlc3NlZCB2aWEgUmF3Q29sbGF0aW9uS2V5IGFuZAorICAgICAqIHN0b3JlZCBmb3IgZnV0dXJlIHVzZS4gTGlrZSBDb2xsYXRpb25LZXksIFJhd0NvbGxhdGlvbktleSBwcm92aWRlcyBhCisgICAgICogbWV0aG9kIFJhd0NvbGxhdGlvbktleS5jb21wYXJlVG8gZm9yIGtleSBjb21wYXJpc29ucy4KKyAgICAgKiBJZiB0aGUgZWFjaCBTdHJpbmdzIGFyZSBjb21wYXJlZCB0byBvbmx5IG9uY2UsIHVzaW5nIHRoZSBtZXRob2QKKyAgICAgKiBSdWxlQmFzZWRDb2xsYXRvci5jb21wYXJlKFN0cmluZywgU3RyaW5nKSB3aWxsIGhhdmUgYSBiZXR0ZXIgcGVyZm9ybWFuY2UuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHNvdXJjZSB0ZXh0IFN0cmluZy4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSB0YXJnZXQgdGV4dCBTdHJpbmcuCisgICAgICogQHJldHVybiBSZXR1cm5zIGFuIGludGVnZXIgdmFsdWUuIFZhbHVlIGlzIGxlc3MgdGhhbiB6ZXJvIGlmIHNvdXJjZSBpcworICAgICAqICAgICAgICAgbGVzcyB0aGFuIHRhcmdldCwgdmFsdWUgaXMgemVybyBpZiBzb3VyY2UgYW5kIHRhcmdldCBhcmUgZXF1YWwsCisgICAgICogICAgICAgICB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gemVybyBpZiBzb3VyY2UgaXMgZ3JlYXRlciB0aGFuIHRhcmdldC4KKyAgICAgKiBAc2VlIENvbGxhdGlvbktleQorICAgICAqIEBzZWUgI2dldENvbGxhdGlvbktleQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcGFyZShTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0KQorICAgIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSB0YXJnZXQpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgLy8gRmluZCB0aGUgbGVuZ3RoIG9mIGFueSBsZWFkaW5nIHBvcnRpb24gdGhhdCBpcyBlcXVhbAorICAgICAgICBpbnQgb2Zmc2V0ID0gZ2V0Rmlyc3RVbm1hdGNoZWRPZmZzZXQoc291cmNlLCB0YXJnZXQpOworICAgICAgICAvL3JldHVybiBjb21wYXJlUmVndWxhcihzb3VyY2UsIHRhcmdldCwgb2Zmc2V0KTsKKyAgICAgICAgaWYobGF0aW5PbmVVc2VfKSB7CisgICAgICAgICAgaWYgKChvZmZzZXQgPCBzb3VyY2UubGVuZ3RoKCkgCisgICAgICAgICAgICAgICAmJiBzb3VyY2UuY2hhckF0KG9mZnNldCkgPiBFTkRPRkxBVElOT05FUkFOR0VfKSAKKyAgICAgICAgICAgICAgfHwgKG9mZnNldCA8IHRhcmdldC5sZW5ndGgoKSAKKyAgICAgICAgICAgICAgICAgICYmIHRhcmdldC5jaGFyQXQob2Zmc2V0KSA+IEVORE9GTEFUSU5PTkVSQU5HRV8pKSB7IAorICAgICAgICAgICAgICAvLyBzb3VyY2Ugb3IgdGFyZ2V0IHN0YXJ0IHdpdGggbm9uLWxhdGluLTEKKyAgICAgICAgICAgIHJldHVybiBjb21wYXJlUmVndWxhcihzb3VyY2UsIHRhcmdldCwgb2Zmc2V0KTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVVc2VMYXRpbjEoc291cmNlLCB0YXJnZXQsIG9mZnNldCk7CisgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHJldHVybiBjb21wYXJlUmVndWxhcihzb3VyY2UsIHRhcmdldCwgb2Zmc2V0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgaW5uZXIgaW50ZXJmYWNlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQXR0cmlidXRlIHZhbHVlcyB0byBiZSB1c2VkIHdoZW4gc2V0dGluZyB0aGUgQ29sbGF0b3Igb3B0aW9ucworICAgICAqLworICAgIHN0YXRpYyBpbnRlcmZhY2UgQXR0cmlidXRlVmFsdWUKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBhdHRyaWJ1dGUgdmFsdWUgd2lsbCBiZSB1c2VkLgorICAgICAgICAgKiBTZWUgaW5kaXZpZHVhbCBhdHRyaWJ1dGUgZm9yIGRldGFpbHMgb24gaXRzIGRlZmF1bHQgdmFsdWUuCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfID0gLTE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBQcmltYXJ5IGNvbGxhdGlvbiBzdHJlbmd0aAorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBQUklNQVJZXyA9IENvbGxhdG9yLlBSSU1BUlk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBTZWNvbmRhcnkgY29sbGF0aW9uIHN0cmVuZ3RoCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IFNFQ09OREFSWV8gPSBDb2xsYXRvci5TRUNPTkRBUlk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUZXJ0aWFyeSBjb2xsYXRpb24gc3RyZW5ndGgKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgVEVSVElBUllfID0gQ29sbGF0b3IuVEVSVElBUlk7CisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZhdWx0IGNvbGxhdGlvbiBzdHJlbmd0aAorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX1NUUkVOR1RIXyA9IENvbGxhdG9yLlRFUlRJQVJZOworICAgICAgICAvKioKKyAgICAgICAgICogSW50ZXJuYWwgdXNlIGZvciBzdHJlbmd0aCBjaGVja3MgaW4gQ29sbGF0aW9uIGVsZW1lbnRzCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IENFX1NUUkVOR1RIX0xJTUlUXyA9IENvbGxhdG9yLlRFUlRJQVJZICsgMTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFF1YXRlcm5hcnkgY29sbGF0aW9uIHN0cmVuZ3RoCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IFFVQVRFUk5BUllfID0gMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIElkZW50aWNhbCBjb2xsYXRpb24gc3RyZW5ndGgKKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgSURFTlRJQ0FMXyA9IENvbGxhdG9yLklERU5USUNBTDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEludGVybmFsIHVzZSBmb3Igc3RyZW5ndGggY2hlY2tzCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IFNUUkVOR1RIX0xJTUlUXyA9IENvbGxhdG9yLklERU5USUNBTCArIDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUdXJuIHRoZSBmZWF0dXJlIG9mZiAtIHdvcmtzIGZvciBGUkVOQ0hfQ09MTEFUSU9OLCBDQVNFX0xFVkVMLAorICAgICAgICAgKiBISVJBR0FOQV9RVUFURVJOQVJZX01PREUgYW5kIERFQ09NUE9TSVRJT05fTU9ERQorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBPRkZfID0gMTY7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUdXJuIHRoZSBmZWF0dXJlIG9uIC0gd29ya3MgZm9yIEZSRU5DSF9DT0xMQVRJT04sIENBU0VfTEVWRUwsCisgICAgICAgICAqIEhJUkFHQU5BX1FVQVRFUk5BUllfTU9ERSBhbmQgREVDT01QT1NJVElPTl9NT0RFCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IE9OXyA9IDE3OworICAgICAgICAvKioKKyAgICAgICAgICogVmFsaWQgZm9yIEFMVEVSTkFURV9IQU5ETElORy4gQWx0ZXJuYXRlIGhhbmRsaW5nIHdpbGwgYmUgc2hpZnRlZAorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBTSElGVEVEXyA9IDIwOworICAgICAgICAvKioKKyAgICAgICAgICogVmFsaWQgZm9yIEFMVEVSTkFURV9IQU5ETElORy4gQWx0ZXJuYXRlIGhhbmRsaW5nIHdpbGwgYmUgbm9uCisgICAgICAgICAqIGlnbm9yYWJsZQorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBOT05fSUdOT1JBQkxFXyA9IDIxOworICAgICAgICAvKioKKyAgICAgICAgICogVmFsaWQgZm9yIENBU0VfRklSU1QgLSBsb3dlciBjYXNlIHNvcnRzIGJlZm9yZSB1cHBlciBjYXNlCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IExPV0VSX0ZJUlNUXyA9IDI0OworICAgICAgICAvKioKKyAgICAgICAgICogVXBwZXIgY2FzZSBzb3J0cyBiZWZvcmUgbG93ZXIgY2FzZQorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBVUFBFUl9GSVJTVF8gPSAyNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIE51bWJlciBvZiBhdHRyaWJ1dGUgdmFsdWVzCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IExJTUlUXyA9IDI5OworICAgIH0KKworICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZXMgdGhhdCBjb2xsYXRpb24gc2VydmljZSB1bmRlcnN0YW5kcy4gQWxsIHRoZSBhdHRyaWJ1dGVzIGNhbgorICAgICAqIHRha2UgREVGQVVMVCB2YWx1ZSwgYXMgd2VsbCBhcyB0aGUgdmFsdWVzIHNwZWNpZmljIHRvIGVhY2ggb25lLgorICAgICAqLworICAgIHN0YXRpYyBpbnRlcmZhY2UgQXR0cmlidXRlCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQXR0cmlidXRlIGZvciBkaXJlY3Rpb24gb2Ygc2Vjb25kYXJ5IHdlaWdodHMgLSB1c2VkIGluIEZyZW5jaC4KKyAgICAgICAgICogQWNjZXB0YWJsZSB2YWx1ZXMgYXJlIE9OLCB3aGljaCByZXN1bHRzIGluIHNlY29uZGFyeSB3ZWlnaHRzIGJlaW5nCisgICAgICAgICAqIGNvbnNpZGVyZWQgYmFja3dhcmRzIGFuZCBPRkYgd2hpY2ggdHJlYXRzIHNlY29uZGFyeSB3ZWlnaHRzIGluIHRoZQorICAgICAgICAgKiBvcmRlciB0aGV5IGFwcGVhci4KKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgRlJFTkNIX0NPTExBVElPTl8gPSAwOworICAgICAgICAvKioKKyAgICAgICAgICogQXR0cmlidXRlIGZvciBoYW5kbGluZyB2YXJpYWJsZSBlbGVtZW50cy4gQWNjZXB0YWJsZSB2YWx1ZXMgYXJlCisgICAgICAgICAqIE5PTl9JR05PUkFCTEUgKGRlZmF1bHQpIHdoaWNoIHRyZWF0cyBhbGwgdGhlIGNvZGVwb2ludHMgd2l0aAorICAgICAgICAgKiBub24taWdub3JhYmxlIHByaW1hcnkgd2VpZ2h0cyBpbiB0aGUgc2FtZSB3YXksIGFuZCBTSElGVEVEIHdoaWNoCisgICAgICAgICAqIGNhdXNlcyBjb2RlcG9pbnRzIHdpdGggcHJpbWFyeSB3ZWlnaHRzIHRoYXQgYXJlIGVxdWFsIG9yIGJlbG93IHRoZQorICAgICAgICAgKiB2YXJpYWJsZSB0b3AgdmFsdWUgdG8gYmUgaWdub3JlZCBvbiBwcmltYXJ5IGxldmVsIGFuZCBtb3ZlZCB0byB0aGUKKyAgICAgICAgICogcXVhdGVybmFyeSBsZXZlbC4KKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgQUxURVJOQVRFX0hBTkRMSU5HXyA9IDE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDb250cm9scyB0aGUgb3JkZXJpbmcgb2YgdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycy4gQWNjZXB0YWJsZQorICAgICAgICAgKiB2YWx1ZXMgYXJlIE9GRiAoZGVmYXVsdCksIHdoaWNoIG9yZGVycyB1cHBlciBhbmQgbG93ZXIgY2FzZSBsZXR0ZXJzCisgICAgICAgICAqIGluIGFjY29yZGFuY2UgdG8gdGhlaXIgdGVydGlhcnkgd2VpZ2h0cywgVVBQRVJfRklSU1Qgd2hpY2ggZm9yY2VzCisgICAgICAgICAqIHVwcGVyIGNhc2UgbGV0dGVycyB0byBzb3J0IGJlZm9yZSBsb3dlciBjYXNlIGxldHRlcnMsIGFuZAorICAgICAgICAgKiBMT1dFUl9GSVJTVCB3aGljaCBkb2VzIHRoZSBvcHBvc2l0ZS4KKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0FTRV9GSVJTVF8gPSAyOworICAgICAgICAvKioKKyAgICAgICAgICogQ29udHJvbHMgd2hldGhlciBhbiBleHRyYSBjYXNlIGxldmVsIChwb3NpdGlvbmVkIGJlZm9yZSB0aGUgdGhpcmQKKyAgICAgICAgICogbGV2ZWwpIGlzIGdlbmVyYXRlZCBvciBub3QuIEFjY2VwdGFibGUgdmFsdWVzIGFyZSBPRkYgKGRlZmF1bHQpLAorICAgICAgICAgKiB3aGVuIGNhc2UgbGV2ZWwgaXMgbm90IGdlbmVyYXRlZCwgYW5kIE9OIHdoaWNoIGNhdXNlcyB0aGUgY2FzZQorICAgICAgICAgKiBsZXZlbCB0byBiZSBnZW5lcmF0ZWQuIENvbnRlbnRzIG9mIHRoZSBjYXNlIGxldmVsIGFyZSBhZmZlY3RlZCBieQorICAgICAgICAgKiB0aGUgdmFsdWUgb2YgQ0FTRV9GSVJTVCBhdHRyaWJ1dGUuIEEgc2ltcGxlIHdheSB0byBpZ25vcmUgYWNjZW50CisgICAgICAgICAqIGRpZmZlcmVuY2VzIGluIGEgc3RyaW5nIGlzIHRvIHNldCB0aGUgc3RyZW5ndGggdG8gUFJJTUFSWSBhbmQKKyAgICAgICAgICogZW5hYmxlIGNhc2UgbGV2ZWwuCisgICAgICAgICAqLworICAgICAgICBzdGF0aWMgZmluYWwgaW50IENBU0VfTEVWRUxfID0gMzsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIG5vcm1hbGl6YXRpb24gY2hlY2sgYW5kIG5lY2Vzc2FyeQorICAgICAgICAgKiBub3JtYWxpemF0aW9ucyBhcmUgcGVyZm9ybWVkLiBXaGVuIHNldCB0byBPRkYgKGRlZmF1bHQpIG5vCisgICAgICAgICAqIG5vcm1hbGl6YXRpb24gY2hlY2sgaXMgcGVyZm9ybWVkLiBUaGUgY29ycmVjdG5lc3Mgb2YgdGhlIHJlc3VsdCBpcworICAgICAgICAgKiBndWFyYW50ZWVkIG9ubHkgaWYgdGhlIGlucHV0IGRhdGEgaXMgaW4gc28tY2FsbGVkIEZDRCBmb3JtIChzZWUKKyAgICAgICAgICogdXNlcnMgbWFudWFsIGZvciBtb3JlIGluZm8pLiBXaGVuIHNldCB0byBPTiwgYW4gaW5jcmVtZW50YWwgY2hlY2sKKyAgICAgICAgICogaXMgcGVyZm9ybWVkIHRvIHNlZSB3aGV0aGVyIHRoZSBpbnB1dCBkYXRhIGlzIGluIHRoZSBGQ0QgZm9ybS4gSWYKKyAgICAgICAgICogdGhlIGRhdGEgaXMgbm90IGluIHRoZSBGQ0QgZm9ybSwgaW5jcmVtZW50YWwgTkZEIG5vcm1hbGl6YXRpb24gaXMKKyAgICAgICAgICogcGVyZm9ybWVkLgorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBOT1JNQUxJWkFUSU9OX01PREVfID0gNDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBzdHJlbmd0aCBhdHRyaWJ1dGUuIENhbiBiZSBlaXRoZXIgUFJJTUFSWSwgU0VDT05EQVJZLCBURVJUSUFSWSwKKyAgICAgICAgICogUVVBVEVSTkFSWSBvciBJREVOVElDQUwuIFRoZSB1c3VhbCBzdHJlbmd0aCBmb3IgbW9zdCBsb2NhbGVzCisgICAgICAgICAqIChleGNlcHQgSmFwYW5lc2UpIGlzIHRlcnRpYXJ5LiBRdWF0ZXJuYXJ5IHN0cmVuZ3RoIGlzIHVzZWZ1bCB3aGVuCisgICAgICAgICAqIGNvbWJpbmVkIHdpdGggc2hpZnRlZCBzZXR0aW5nIGZvciBhbHRlcm5hdGUgaGFuZGxpbmcgYXR0cmlidXRlIGFuZAorICAgICAgICAgKiBmb3IgSklTIHggNDA2MSBjb2xsYXRpb24sIHdoZW4gaXQgaXMgdXNlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuCisgICAgICAgICAqIEthdGFrYW5hICBhbmQgSGlyYWdhbmEgKHRoaXMgaXMgYWNoaWV2ZWQgYnkgc2V0dGluZyB0aGUKKyAgICAgICAgICogSElSQUdBTkFfUVVBVEVSTkFSWSBtb2RlIHRvIG9uLiBPdGhlcndpc2UsIHF1YXRlcm5hcnkgbGV2ZWwgaXMKKyAgICAgICAgICogYWZmZWN0ZWQgb25seSBieSB0aGUgbnVtYmVyIG9mIG5vbiBpZ25vcmFibGUgY29kZSBwb2ludHMgaW4gdGhlCisgICAgICAgICAqIHN0cmluZy4gSWRlbnRpY2FsIHN0cmVuZ3RoIGlzIHJhcmVseSB1c2VmdWwsIGFzIGl0IGFtb3VudHMgdG8KKyAgICAgICAgICogY29kZXBvaW50cyBvZiB0aGUgTkZEIGZvcm0gb2YgdGhlIHN0cmluZy4KKyAgICAgICAgICovCisgICAgICAgIHN0YXRpYyBmaW5hbCBpbnQgU1RSRU5HVEhfID0gNTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFdoZW4gdHVybmVkIG9uLCB0aGlzIGF0dHJpYnV0ZSBwb3NpdGlvbnMgSGlyYWdhbmEgYmVmb3JlIGFsbAorICAgICAgICAgKiBub24taWdub3JhYmxlcyBvbiBxdWF0ZXJuYXJ5IGxldmVsLiBUaGlzIGlzIGEgc25lYWt5IHdheSB0byBwcm9kdWNlCisgICAgICAgICAqIEpJUyBzb3J0IG9yZGVyLgorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBISVJBR0FOQV9RVUFURVJOQVJZX01PREVfID0gNjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEF0dHJpYnV0ZSBjb3VudAorICAgICAgICAgKi8KKyAgICAgICAgc3RhdGljIGZpbmFsIGludCBMSU1JVF8gPSA3OworICAgIH0KKworICAgIC8qKgorICAgICAqIERhdGFNYW5pcHVsYXRlIHNpbmdsZXRvbgorICAgICAqLworICAgIHN0YXRpYyBjbGFzcyBEYXRhTWFuaXB1bGF0ZSBpbXBsZW1lbnRzIFRyaWUuRGF0YU1hbmlwdWxhdGUKKyAgICB7CisgICAgICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogSW50ZXJuYWwgbWV0aG9kIGNhbGxlZCB0byBwYXJzZSBhIGxlYWQgc3Vycm9nYXRlJ3MgY2UgZm9yIHRoZSBvZmZzZXQKKyAgICAgICAgICogdG8gdGhlIG5leHQgdHJhaWwgc3Vycm9nYXRlIGRhdGEuCisgICAgICAgICAqIEBwYXJhbSBjZSBjb2xsYXRpb24gZWxlbWVudCBvZiB0aGUgbGVhZCBzdXJyb2dhdGUKKyAgICAgICAgICogQHJldHVybiBkYXRhIG9mZnNldCBvciAwIGZvciB0aGUgbmV4dCB0cmFpbCBzdXJyb2dhdGUKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgZmluYWwgaW50IGdldEZvbGRpbmdPZmZzZXQoaW50IGNlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoaXNTcGVjaWFsKGNlKSAmJiBnZXRUYWcoY2UpID09IENFX1NVUlJPR0FURV9UQUdfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChjZSAmIDB4RkZGRkZGKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEdldCBzaW5nbGV0b24gb2JqZWN0CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIERhdGFNYW5pcHVsYXRlIGdldEluc3RhbmNlKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1faW5zdGFuY2VfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtX2luc3RhbmNlXyA9ICBuZXcgRGF0YU1hbmlwdWxhdGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBtX2luc3RhbmNlXzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTaW5nbGV0b24gaW5zdGFuY2UKKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgc3RhdGljIERhdGFNYW5pcHVsYXRlIG1faW5zdGFuY2VfOworCisgICAgICAgIC8vIHByaXZhdGUgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBwcml2YXRlIHRvIHByZXZlbnQgaW5pdGlhbGl6YXRpb24KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgRGF0YU1hbmlwdWxhdGUoKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVQ0FDb25zdGFudHMKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgVUNBQ29uc3RhbnRzCisgICAgeworICAgICAgICAgaW50IEZJUlNUX1RFUlRJQVJZX0lHTk9SQUJMRV9bXSA9IG5ldyBpbnRbMl07ICAgICAgIC8vIDB4MDAwMDAwMDAKKyAgICAgICAgIGludCBMQVNUX1RFUlRJQVJZX0lHTk9SQUJMRV9bXSA9IG5ldyBpbnRbMl07ICAgICAgICAvLyAweDAwMDAwMDAwCisgICAgICAgICBpbnQgRklSU1RfUFJJTUFSWV9JR05PUkFCTEVfW10gPSBuZXcgaW50WzJdOyAgICAgICAgLy8gMHgwMDAwODcwNQorICAgICAgICAgaW50IEZJUlNUX1NFQ09OREFSWV9JR05PUkFCTEVfW10gPSBuZXcgaW50WzJdOyAgICAgIC8vIDB4MDAwMDAwMDAKKyAgICAgICAgIGludCBMQVNUX1NFQ09OREFSWV9JR05PUkFCTEVfW10gPSBuZXcgaW50WzJdOyAgICAgICAvLyAweDAwMDAwNTAwCisgICAgICAgICBpbnQgTEFTVF9QUklNQVJZX0lHTk9SQUJMRV9bXSA9IG5ldyBpbnRbMl07ICAgICAgICAgLy8gMHgwMDAwREQwNQorICAgICAgICAgaW50IEZJUlNUX1ZBUklBQkxFX1tdID0gbmV3IGludFsyXTsgICAgICAgICAgICAgICAgIC8vIDB4MDUwNzA1MDUKKyAgICAgICAgIGludCBMQVNUX1ZBUklBQkxFX1tdID0gbmV3IGludFsyXTsgICAgICAgICAgICAgICAgICAvLyAweDEzQ0YwNTA1CisgICAgICAgICBpbnQgRklSU1RfTk9OX1ZBUklBQkxFX1tdID0gbmV3IGludFsyXTsgICAgICAgICAgICAgLy8gMHgxNjIwMDUwNQorICAgICAgICAgaW50IExBU1RfTk9OX1ZBUklBQkxFX1tdID0gbmV3IGludFsyXTsgICAgICAgICAgICAgIC8vIDB4NzY3QzA1MDUKKyAgICAgICAgIGludCBSRVNFVF9UT1BfVkFMVUVfW10gPSBuZXcgaW50WzJdOyAgICAgICAgICAgICAgICAvLyAweDlGMDAwMzAzCisgICAgICAgICBpbnQgRklSU1RfSU1QTElDSVRfW10gPSBuZXcgaW50WzJdOworICAgICAgICAgaW50IExBU1RfSU1QTElDSVRfW10gPSBuZXcgaW50WzJdOworICAgICAgICAgaW50IEZJUlNUX1RSQUlMSU5HX1tdID0gbmV3IGludFsyXTsKKyAgICAgICAgIGludCBMQVNUX1RSQUlMSU5HX1tdID0gbmV3IGludFsyXTsKKyAgICAgICAgIGludCBQUklNQVJZX1RPUF9NSU5fOworICAgICAgICAgaW50IFBSSU1BUllfSU1QTElDSVRfTUlOXzsgLy8gMHhFODAwMDAwMAorICAgICAgICAgaW50IFBSSU1BUllfSU1QTElDSVRfTUFYXzsgLy8gMHhGMDAwMDAwMAorICAgICAgICAgaW50IFBSSU1BUllfVFJBSUxJTkdfTUlOXzsgLy8gMHhFODAwMDAwMAorICAgICAgICAgaW50IFBSSU1BUllfVFJBSUxJTkdfTUFYXzsgLy8gMHhGMDAwMDAwMAorICAgICAgICAgaW50IFBSSU1BUllfU1BFQ0lBTF9NSU5fOyAvLyAweEU4MDAwMDAwCisgICAgICAgICBpbnQgUFJJTUFSWV9TUEVDSUFMX01BWF87IC8vIDB4RjAwMDAwMDAKKyAgICB9CisKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgZGF0YSBtZW1iZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgc3RhdGljIGZpbmFsIGJ5dGUgQllURV9GSVJTVF9UQUlMT1JFRF8gPSAoYnl0ZSkweDA0OworICAgIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVfQ09NTU9OXyA9IChieXRlKTB4MDU7CisgICAgc3RhdGljIGZpbmFsIGludCBDT01NT05fVE9QXzJfID0gMHg4NjsgLy8gaW50IGZvciB1bnNpZ25lc3MKKyAgICBzdGF0aWMgZmluYWwgaW50IENPTU1PTl9CT1RUT01fMl8gPSBCWVRFX0NPTU1PTl87CisgICAgLyoqCisgICAgICogQ2FzZSBzdHJlbmd0aCBtYXNrCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBDRV9DQVNFX0JJVF9NQVNLXyA9IDB4QzA7CisgICAgc3RhdGljIGZpbmFsIGludCBDRV9UQUdfU0hJRlRfID0gMjQ7CisgICAgc3RhdGljIGZpbmFsIGludCBDRV9UQUdfTUFTS18gPSAweDBGMDAwMDAwOworCisgICAgc3RhdGljIGZpbmFsIGludCBDRV9TUEVDSUFMX0ZMQUdfID0gMHhGMDAwMDAwMDsKKyAgICAvKioKKyAgICAgKiBMZWFkIHN1cnJvZ2F0ZSB0aGF0IGlzIHRhaWxvcmVkIGFuZCBkb2Vzbid0IHN0YXJ0IGEgY29udHJhY3Rpb24KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IENFX1NVUlJPR0FURV9UQUdfID0gNTsKKyAgICAvKioKKyAgICAgKiBNYXNrIHRvIGdldCB0aGUgcHJpbWFyeSBzdHJlbmd0aCBvZiB0aGUgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IENFX1BSSU1BUllfTUFTS18gPSAweEZGRkYwMDAwOworICAgIC8qKgorICAgICAqIE1hc2sgdG8gZ2V0IHRoZSBzZWNvbmRhcnkgc3RyZW5ndGggb2YgdGhlIGNvbGxhdGlvbiBlbGVtZW50CisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBDRV9TRUNPTkRBUllfTUFTS18gPSAweEZGMDA7CisgICAgLyoqCisgICAgICogTWFzayB0byBnZXQgdGhlIHRlcnRpYXJ5IHN0cmVuZ3RoIG9mIHRoZSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQ0VfVEVSVElBUllfTUFTS18gPSAweEZGOworICAgIC8qKgorICAgICAqIFByaW1hcnkgc3RyZW5ndGggc2hpZnQKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50IENFX1BSSU1BUllfU0hJRlRfID0gMTY7CisgICAgLyoqCisgICAgICogU2Vjb25kYXJ5IHN0cmVuZ3RoIHNoaWZ0CisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBDRV9TRUNPTkRBUllfU0hJRlRfID0gODsKKyAgICAvKioKKyAgICAgKiBDb250aW51YXRpb24gbWFya2VyCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludCBDRV9DT05USU5VQVRJT05fTUFSS0VSXyA9IDB4QzA7CisKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIGNvbGxhdG9yIHJhdyBkYXRhIGhlYWRlcnMgYW5kIG9wdGlvbnMgYmVmb3JlIHRoZSBleHBhbnNpb24KKyAgICAgKiBkYXRhLiBUaGlzIGlzIHVzZWQgd2hlbiBleHBhbnNpb24gY2VzIGFyZSB0byBiZSByZXRyaWV2ZWQuIElDVTRDIHVzZXMKKyAgICAgKiB0aGUgZXhwYW5zaW9uIG9mZnNldCBzdGFydGluZyBmcm9tIFVDb2xsYXRvci5VQ29sSGVhZGVyLCBoZW5jZSBJQ1U0SgorICAgICAqIHdpbGwgaGF2ZSB0byBtaW51cyB0aGF0IG9mZiB0byBnZXQgdGhlIHJpZ2h0IGV4cGFuc2lvbiBjZSBvZmZzZXQuIEluCisgICAgICogbnVtYmVyIG9mIGludHMuCisgICAgICovCisgICAgaW50IG1fZXhwYW5zaW9uT2Zmc2V0XzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIGNvbGxhdG9yIHJhdyBkYXRhIGhlYWRlcnMsIG9wdGlvbnMgYW5kIGV4cGFuc2lvbnMgYmVmb3JlCisgICAgICogY29udHJhY3Rpb24gZGF0YS4gVGhpcyBpcyB1c2VkIHdoZW4gY29udHJhY3Rpb24gY2VzIGFyZSB0byBiZSByZXRyaWV2ZWQuCisgICAgICogSUNVNEMgdXNlcyBjb250cmFjdGlvbiBvZmZzZXQgc3RhcnRpbmcgZnJvbSBVQ29sbGF0b3IuVUNvbEhlYWRlciwgaGVuY2UKKyAgICAgKiBJQ1U0SiB3aWxsIGhhdmUgdG8gbWludXMgdGhhdCBvZmYgdG8gZ2V0IHRoZSByaWdodCBjb250cmFjdGlvbiBjZQorICAgICAqIG9mZnNldC4gSW4gbnVtYmVyIG9mIGNoYXJzLgorICAgICAqLworICAgIGludCBtX2NvbnRyYWN0aW9uT2Zmc2V0XzsKKyAgICAvKioKKyAgICAgKiBGbGFnIGluZGljYXRvciBpZiBKYW1vIGlzIHNwZWNpYWwKKyAgICAgKi8KKyAgICBib29sZWFuIG1faXNKYW1vU3BlY2lhbF87CisKKyAgICAvLyBDb2xsYXRvciBvcHRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGludCBtX2RlZmF1bHRWYXJpYWJsZVRvcFZhbHVlXzsKKyAgICBib29sZWFuIG1fZGVmYXVsdElzRnJlbmNoQ29sbGF0aW9uXzsKKyAgICBib29sZWFuIG1fZGVmYXVsdElzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXzsKKyAgICBpbnQgbV9kZWZhdWx0Q2FzZUZpcnN0XzsKKyAgICBib29sZWFuIG1fZGVmYXVsdElzQ2FzZUxldmVsXzsKKyAgICBpbnQgbV9kZWZhdWx0RGVjb21wb3NpdGlvbl87CisgICAgaW50IG1fZGVmYXVsdFN0cmVuZ3RoXzsKKyAgICBib29sZWFuIG1fZGVmYXVsdElzSGlyYWdhbmE0XzsKKyAgICBib29sZWFuIG1fZGVmYXVsdElzTnVtZXJpY0NvbGxhdGlvbl87CisgICAgCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIHZhcmlhYmxlIHRvcAorICAgICAqLworICAgIGludCBtX3ZhcmlhYmxlVG9wVmFsdWVfOworICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZSBmb3Igc3BlY2lhbCBIaXJhZ2FuYQorICAgICAqLworICAgIGJvb2xlYW4gbV9pc0hpcmFnYW5hNF87CisgICAgLyoqCisgICAgICogQ2FzZSBzb3J0aW5nIGN1c3RvbWl6YXRpb24KKyAgICAgKi8KKyAgICBpbnQgbV9jYXNlRmlyc3RfOworICAgIC8qKgorICAgICAqIE51bWVyaWMgY29sbGF0aW9uIG9wdGlvbgorICAgICAqLworICAgIGJvb2xlYW4gbV9pc051bWVyaWNDb2xsYXRpb25fOworCisgICAgLy8gZW5kIENvbGxhdG9yIG9wdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEV4cGFuc2lvbiB0YWJsZQorICAgICAqLworICAgIGludCBtX2V4cGFuc2lvbl9bXTsKKyAgICAvKioKKyAgICAgKiBDb250cmFjdGlvbiBpbmRleCB0YWJsZQorICAgICAqLworICAgIGNoYXIgbV9jb250cmFjdGlvbkluZGV4X1tdOworICAgIC8qKgorICAgICAqIENvbnRyYWN0aW9uIENFIHRhYmxlCisgICAgICovCisgICAgaW50IG1fY29udHJhY3Rpb25DRV9bXTsKKyAgICAvKioKKyAgICAgKiBEYXRhIHRyaWUKKyAgICAgKi8KKyAgICBJbnRUcmllIG1fdHJpZV87CisgICAgLyoqCisgICAgICogVGFibGUgdG8gc3RvcmUgYWxsIGNvbGxhdGlvbiBlbGVtZW50cyB0aGF0IGFyZSB0aGUgbGFzdCBlbGVtZW50IG9mIGFuCisgICAgICogZXhwYW5zaW9uLiBUaGlzIGlzIGZvciB1c2UgaW4gU3RyaW5nU2VhcmNoLgorICAgICAqLworICAgIGludCBtX2V4cGFuc2lvbkVuZENFX1tdOworICAgIC8qKgorICAgICAqIFRhYmxlIHRvIHN0b3JlIHRoZSBtYXhpbXVtIHNpemUgb2YgYW55IGV4cGFuc2lvbnMgdGhhdCBlbmQgd2l0aCB0aGUKKyAgICAgKiBjb3JyZXNwb25kaW5nIGNvbGxhdGlvbiBlbGVtZW50IGluIG1fZXhwYW5zaW9uRW5kQ0VfLiBGb3IgdXNlIGluCisgICAgICogU3RyaW5nU2VhcmNoIHRvbworICAgICAqLworICAgIGJ5dGUgbV9leHBhbnNpb25FbmRDRU1heFNpemVfW107CisgICAgLyoqCisgICAgICogSGV1cmlzdGljIHRhYmxlIHRvIHN0b3JlIGluZm9ybWF0aW9uIG9uIHdoZXRoZXIgYSBjaGFyIGNoYXJhY3RlciBpcworICAgICAqIGNvbnNpZGVyZWQgInVuc2FmZSIuICJVbnNhZmUiIGNoYXJhY3RlciBhcmUgY29tYmluaW5nIG1hcmtzIG9yIHRob3NlCisgICAgICogYmVsb25naW5nIHRvIHNvbWUgY29udHJhY3Rpb24gc2VxdWVuY2UgZnJvbSB0aGUgb2Zmc2V0IDEgb253YXJkcy4KKyAgICAgKiBFLmcuIGlmICJBQkMiIGlzIHRoZSBvbmx5IGNvbnRyYWN0aW9uLCB0aGVuICdCJyBhbmQgJ0MnIGFyZSBjb25zaWRlcmVkCisgICAgICogdW5zYWZlLiBJZiB3ZSBoYXZlIGFub3RoZXIgY29udHJhY3Rpb24gIlpBIiB3aXRoIHRoZSBvbmUgYWJvdmUsIHRoZW4KKyAgICAgKiAnQScsICdCJywgJ0MnIGFyZSAidW5zYWZlIiBidXQgJ1onIGlzIG5vdC4KKyAgICAgKi8KKyAgICBieXRlIG1fdW5zYWZlX1tdOworICAgIC8qKgorICAgICAqIFRhYmxlIHRvIHN0b3JlIGluZm9ybWF0aW9uIG9uIHdoZXRoZXIgYSBjb2RlcG9pbnQgY2FuIG9jY3VyIGFzIHRoZSBsYXN0CisgICAgICogY2hhcmFjdGVyIGluIGEgY29udHJhY3Rpb24KKyAgICAgKi8KKyAgICBieXRlIG1fY29udHJhY3Rpb25FbmRfW107CisgICAgLyoqCisgICAgICogT3JpZ2luYWwgY29sbGF0aW9uIHJ1bGVzCisgICAgICovCisgICAgU3RyaW5nIG1fcnVsZXNfOworICAgIC8qKgorICAgICAqIFRoZSBzbWFsbGVzdCAidW5zYWZlIiBjb2RlcG9pbnQKKyAgICAgKi8KKyAgICBjaGFyIG1fbWluVW5zYWZlXzsKKyAgICAvKioKKyAgICAgKiBUaGUgc21hbGxlc3QgY29kZXBvaW50IHRoYXQgY291bGQgYmUgdGhlIGVuZCBvZiBhIGNvbnRyYWN0aW9uCisgICAgICovCisgICAgY2hhciBtX21pbkNvbnRyYWN0aW9uRW5kXzsKKyAgICAvKioKKyAgICAgKiBHZW5lcmFsIHZlcnNpb24gb2YgdGhlIGNvbGxhdG9yCisgICAgICovCisgICAgVmVyc2lvbkluZm8gbV92ZXJzaW9uXzsKKyAgICAvKioKKyAgICAgKiBVQ0EgdmVyc2lvbgorICAgICAqLworICAgIFZlcnNpb25JbmZvIG1fVUNBX3ZlcnNpb25fOworICAgIC8qKgorICAgICAqIFVDRCB2ZXJzaW9uCisgICAgICovCisgICAgVmVyc2lvbkluZm8gbV9VQ0RfdmVyc2lvbl87CisKKyAgICAvKioKKyAgICAgKiBVbmljb2RlRGF0YS50eHQgcHJvcGVydHkgb2JqZWN0CisgICAgICovCisgICAgc3RhdGljIGZpbmFsIFJ1bGVCYXNlZENvbGxhdG9yIFVDQV87CisgICAgLyoqCisgICAgICogVUNBIENvbnN0YW50cworICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBVQ0FDb25zdGFudHMgVUNBX0NPTlNUQU5UU187CisgICAgLyoqCisgICAgICogVGFibGUgZm9yIFVDQSBhbmQgYnVpbGRlciB1c2UKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2hhciBVQ0FfQ09OVFJBQ1RJT05TX1tdOworCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBVQ0FfSU5JVF9DT01QTEVURTsKKworICAgIC8qKgorICAgICAqIEltcGxpY2l0IGdlbmVyYXRvcgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBJbXBsaWNpdENFR2VuZXJhdG9yIGltcENFR2VuXzsKKy8vICAgIC8qKgorLy8gICAgICogSW1wbGljaXQgY29uc3RhbnRzCisvLyAgICAgKi8KKy8vICAgIHN0YXRpYyBmaW5hbCBpbnQgSU1QTElDSVRfQkFTRV9CWVRFXzsKKy8vICAgIHN0YXRpYyBmaW5hbCBpbnQgSU1QTElDSVRfTElNSVRfQllURV87CisvLyAgICBzdGF0aWMgZmluYWwgaW50IElNUExJQ0lUXzRCWVRFX0JPVU5EQVJZXzsKKy8vICAgIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9NVUxUSVBMSUVSXzsKKy8vICAgIHN0YXRpYyBmaW5hbCBpbnQgTEFTVDJfTVVMVElQTElFUl87CisvLyAgICBzdGF0aWMgZmluYWwgaW50IElNUExJQ0lUX0JBU0VfM0JZVEVfOworLy8gICAgc3RhdGljIGZpbmFsIGludCBJTVBMSUNJVF9CQVNFXzRCWVRFXzsKKy8vICAgIHN0YXRpYyBmaW5hbCBpbnQgQllURVNfVE9fQVZPSURfID0gMzsKKy8vICAgIHN0YXRpYyBmaW5hbCBpbnQgT1RIRVJfQ09VTlRfID0gMjU2IC0gQllURVNfVE9fQVZPSURfOworLy8gICAgc3RhdGljIGZpbmFsIGludCBMQVNUX0NPVU5UXyA9IE9USEVSX0NPVU5UXyAvIDI7CisvLyAgICAvKioKKy8vICAgICAqIFJvb20gZm9yIGludGVydmVuaW5nLCB3aXRob3V0IGV4cGFuZGluZyB0byA1IGJ5dGVzCisvLyAgICAgKi8KKy8vICAgIHN0YXRpYyBmaW5hbCBpbnQgTEFTVF9DT1VOVDJfID0gT1RIRVJfQ09VTlRfIC8gMjE7CisvLyAgICBzdGF0aWMgZmluYWwgaW50IElNUExJQ0lUXzNCWVRFX0NPVU5UXyA9IDE7CisvLyAgICAKKyAgICBzdGF0aWMgZmluYWwgYnl0ZSBTT1JUX0xFVkVMX1RFUk1JTkFUT1JfID0gMTsKKworLy8gIFRoZXNlIGFyZSB2YWx1ZXMgZnJvbSBVQ0EgcmVxdWlyZWQgZm9yCisvLyAgaW1wbGljaXQgZ2VuZXJhdGlvbiBhbmQgc3VwcmVzc2luZyBzb3J0IGtleSBjb21wcmVzc2lvbgorLy8gIHRoZXkgc2hvdWxkIHJlZ3VsYXJseSBiZSBpbiB0aGUgVUNBLCBidXQgaWYgb25lCisvLyAgaXMgcnVubmluZyB3aXRob3V0IFVDQSwgaXQgY291bGQgYmUgYSBwcm9ibGVtCisgICAgIHN0YXRpYyBmaW5hbCBpbnQgbWF4UmVndWxhclByaW1hcnkgID0gMHhBMDsKKyAgICAgc3RhdGljIGZpbmFsIGludCBtaW5JbXBsaWNpdFByaW1hcnkgPSAweEUwOworICAgICBzdGF0aWMgZmluYWwgaW50IG1heEltcGxpY2l0UHJpbWFyeSA9IDB4RTQ7CisKKworICAgIC8vIGJsb2NrIHRvIGluaXRpYWxpc2UgY2hhcmFjdGVyIHByb3BlcnR5IGRhdGFiYXNlCisgICAgc3RhdGljCisgICAgeworICAgICAgICAvLyB0YWtlIHBhaW5zIHRvIGxldCBzdGF0aWMgY2xhc3MgaW5pdCBzdWNjZWVkLCBvdGhlcndpc2UgdGhlIGNsYXNzIGl0c2VsZiB3b24ndCBleGlzdCBhbmQKKyAgICAgICAgLy8gY2xpZW50cyB3aWxsIGdldCBhIE5vQ2xhc3NEZWZGb3VuZEV4Y2VwdGlvbi4gIEluc3RlYWQsIG1ha2UgdGhlIGNvbnN0cnVjdG9ycyBmYWlsIGlmCisgICAgICAgIC8vIHdlIGNhbid0IGxvYWQgdGhlIFVDQSBkYXRhLgorCisgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGlVQ0FfID0gbnVsbDsKKyAgICAgICAgVUNBQ29uc3RhbnRzIGlVQ0FfQ09OU1RBTlRTXyA9IG51bGw7CisgICAgICAgIGNoYXIgaVVDQV9DT05UUkFDVElPTlNfW10gPSBudWxsOworICAgICAgICBJbXBsaWNpdENFR2VuZXJhdG9yIGlpbXBDRUdlbl8gPSBudWxsOworICAgICAgICB0cnkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gISEhIG5vdGUgd2hhdCdzIGdvaW5nIG9uIGhlcmUuLi4KKyAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoZSBzdGF0aWMgaW5pdCBvZiB0aGUgY2xhc3MgaXMgbm90IHlldCBjb21wbGV0ZSwgd2UKKyAgICAgICAgICAgIC8vIGluc3RhbnRpYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBjbGFzcy4gIFNvIHdlJ2QgYmV0dGVyIGJlIHN1cmUgdGhhdAorICAgICAgICAgICAgLy8gaW5zdGFudGlhdGlvbiBkb2Vzbid0IHJlbHkgb24gdGhlIHN0YXRpYyBpbml0aWFsaXphdGlvbiB0aGF0J3MKKyAgICAgICAgICAgIC8vIG5vdCBjb21wbGV0ZSB5ZXQhCisgICAgICAgICAgICBpVUNBXyA9IG5ldyBSdWxlQmFzZWRDb2xsYXRvcigpOworICAgICAgICAgICAgaVVDQV9DT05TVEFOVFNfID0gbmV3IFVDQUNvbnN0YW50cygpOworICAgICAgICAgICAgaVVDQV9DT05UUkFDVElPTlNfID0gQ29sbGF0b3JSZWFkZXIucmVhZChpVUNBXywgaVVDQV9DT05TVEFOVFNfKTsKKworICAgICAgICAgICAgLy8gY2FsbGVkIGJlZm9yZSBkb2luZyBjYW5vbmljYWwgY2xvc3VyZSBmb3IgdGhlIFVDQS4KKyAgICAgICAgIAlpaW1wQ0VHZW5fID0gbmV3IEltcGxpY2l0Q0VHZW5lcmF0b3IobWluSW1wbGljaXRQcmltYXJ5LCBtYXhJbXBsaWNpdFByaW1hcnkpOworICAgICAgICAgICAgLy9paW1wQ0VHZW5fID0gbmV3IEltcGxpY2l0Q0VHZW5lcmF0b3IoaVVDQV9DT05TVEFOVFNfLlBSSU1BUllfSU1QTElDSVRfTUlOXywgaVVDQV9DT05TVEFOVFNfLlBSSU1BUllfSU1QTElDSVRfTUFYXyk7CisgICAgICAgICAgICBpVUNBXy5pbml0KCk7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0NPTExBVElPTl9CQVNFX05BTUUsIFVMb2NhbGUuRU5HTElTSCk7CisgICAgICAgICAgICBpVUNBXy5tX3J1bGVzXyA9IChTdHJpbmcpcmIuZ2V0T2JqZWN0KCJVQ0FSdWxlcyIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpCisgICAgICAgIHsKKy8vICAgICAgICAgICAgIHRocm93IGV4OworICAgICAgICB9CisgICAgICAgIGNhdGNoIChJT0V4Y2VwdGlvbiBlKQorICAgICAgICB7CisgICAgICAgICAgIC8vIGUucHJpbnRTdGFja1RyYWNlKCk7CisvLyAgICAgICAgICAgICB0aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpLCIiLCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIFVDQV8gPSBpVUNBXzsKKyAgICAgICAgVUNBX0NPTlNUQU5UU18gPSBpVUNBX0NPTlNUQU5UU187CisgICAgICAgIFVDQV9DT05UUkFDVElPTlNfID0gaVVDQV9DT05UUkFDVElPTlNfOworICAgICAgICBpbXBDRUdlbl8gPSBpaW1wQ0VHZW5fOworCisgICAgICAgIFVDQV9JTklUX0NPTVBMRVRFID0gdHJ1ZTsKKyAgICB9CisKKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgY2hlY2tVQ0EoKSB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKFVDQV9JTklUX0NPTVBMRVRFICYmIFVDQV8gPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbigiQ29sbGF0b3IgVUNBIGRhdGEgdW5hdmFpbGFibGUiLCAiIiwgIiIpOworICAgICAgICB9CisgICAgfQorICAgICAgICAKKyAgICAvLyBwYWNrYWdlIHByaXZhdGUgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgKiA8cD5Qcml2YXRlIGNvbnRydWN0b3IgZm9yIHVzZSBieSBzdWJjbGFzc2VzLgorICAgICogUHVibGljIGFjY2VzcyB0byBjcmVhdGluZyBDb2xsYXRvcnMgaXMgaGFuZGxlZCBieSB0aGUgQVBJCisgICAgKiBDb2xsYXRvci5nZXRJbnN0YW5jZSgpIG9yIFJ1bGVCYXNlZENvbGxhdG9yKFN0cmluZyBydWxlcykuCisgICAgKiA8L3A+CisgICAgKiA8cD4KKyAgICAqIFRoaXMgY29uc3RydWN0b3IgY29uc3RydWN0cyB0aGUgVUNBIGNvbGxhdG9yIGludGVybmFsbHkKKyAgICAqIDwvcD4KKyAgICAqLworICAgIFJ1bGVCYXNlZENvbGxhdG9yKCkKKyAgICB7CisgICAgICAgIGNoZWNrVUNBKCk7CisgICAgICAgIGluaXRVdGlsaXR5KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3JzIGEgUnVsZUJhc2VkQ29sbGF0b3IgZnJvbSB0aGUgYXJndW1lbnQgbG9jYWxlLgorICAgICAqIElmIG5vIHJlc291cmNlIGJ1bmRsZSBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGxvY2FsZSwgVUNBIGlzIHVzZWQKKyAgICAgKiBpbnN0ZWFkLgorICAgICAqIEBwYXJhbSBsb2NhbGUKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRDb2xsYXRvcihVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIGNoZWNrVUNBKCk7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQ09MTEFUSU9OX0JBU0VfTkFNRSwgbG9jYWxlKTsKKyAgICAgICAgaW5pdFV0aWxpdHkoKTsKKyAgICAgICAgaWYgKHJiICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy8gVXNlIGtleXdvcmRzLCBpZiBzdXBwbGllZCBmb3IgbG9va3VwCisgICAgICAgICAgICAgICAgU3RyaW5nIGNvbGxrZXkgPSBsb2NhbGUuZ2V0S2V5d29yZFZhbHVlKCJjb2xsYXRpb24iKTsKKyAgICAgICAgICAgICAgICAgIGlmKGNvbGxrZXkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgIGNvbGxrZXkgPSByYi5nZXRTdHJpbmdXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvZGVmYXVsdCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gY29sbGF0aW9ucy9kZWZhdWx0IHdpbGwgYWx3YXlzIGdpdmUgYSBzdHJpbmcgYmFjaworICAgICAgICAgICAgICAgIC8vIGtleXdvcmQgZm9yIHRoZSByZWFsIGNvbGxhdGlvbiBkYXRhCisgICAgICAgICAgICAgICAgLy8gaWYgImNvbGxhdGlvbnMvY29sbGtleSIgd2lsbCByZXR1cm4gbnVsbCBpZiBjb2xsa2V5ID09IG51bGwgCisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgZWxlbWVudHMgPSByYi5nZXRXaXRoRmFsbGJhY2soImNvbGxhdGlvbnMvIiArIGNvbGxrZXkpOworICAgICAgICAgICAgICAgIGlmIChlbGVtZW50cyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IERldGVybWluZSBhY3R1YWwgJiB2YWxpZCBsb2NhbGUgY29ycmVjdGx5CisgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgdWxvYyA9IHJiLmdldFVMb2NhbGUoKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0TG9jYWxlKHVsb2MsIHVsb2MpOworCisgICAgICAgICAgICAgICAgICAgIG1fcnVsZXNfID0gZWxlbWVudHMuZ2V0U3RyaW5nKCJTZXF1ZW5jZSIpOworICAgICAgICAgICAgICAgICAgICBCeXRlQnVmZmVyIGJ1ZiA9IGVsZW1lbnRzLmdldCgiJSVDb2xsYXRpb25CaW4iKS5nZXRCaW5hcnkoKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gJSVDb2xsYXRpb25CaW4KKyAgICAgICAgICAgICAgICAgICAgaWYoYnVmIT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgIG1fcnVsZXNfID0gKFN0cmluZylydWxlc1sxXVsxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGUgbWFwW10gPSBidWYuYXJyYXkoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdG9yUmVhZGVyLmluaXRSQkModGhpcywgbWFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGlucHV0ID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0obWFwKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGF0b3JSZWFkZXIgcmVhZGVyID0gbmV3IENvbGxhdG9yUmVhZGVyKGlucHV0LCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWFwLmxlbmd0aCA+IE1JTl9CSU5BUllfREFUQV9TSVpFXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkKHRoaXMsIG51bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRIZWFkZXIodGhpcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRPcHRpb25zKHRoaXMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGR1cGxpY2F0aW5nIFVDQV8ncyBkYXRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2l0aFVDQVRhYmxlcygpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGF0IHRoaXMgcG9pbnQsIHdlIGhhdmUgcmVhZCBpbiB0aGUgY29sbGF0b3IKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdyB3ZSBuZWVkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGJpbmFyeSBpbWFnZSBoYXMKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSByaWdodCBVQ0EgYW5kIG90aGVyIHZlcnNpb25zCisgICAgICAgICAgICAgICAgICAgICAgICBpZighbV9VQ0FfdmVyc2lvbl8uZXF1YWxzKFVDQV8ubV9VQ0FfdmVyc2lvbl8pIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAhbV9VQ0RfdmVyc2lvbl8uZXF1YWxzKFVDQV8ubV9VQ0RfdmVyc2lvbl8pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdChtX3J1bGVzXyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaW5pdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gZHVlIHRvIHJlc291cmNlIHJlZGlyZWN0aW9uIElDVUxpc3RSZXNvdXJjZUJ1bmRsZSBkb2VzIG5vdAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmFpc2UgbWlzc2luZyByZXNvdXJjZSBlcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgLy90aHJvdyBuZXcgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uKCJDb3VsZCBub3QgZ2V0IHJlc291cmNlIGZvciBjb25zdHJ1Y3RpbmcgUnVsZUJhc2VkQ29sbGF0b3IiLCJjb20uaWJtLmljdS5pbXBsLmRhdGEuTG9jYWxlRWxlbWVudHNfIitsb2NhbGUudG9TdHJpbmcoKSwgIiUlQ29sbGF0aW9uQmluIik7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGluaXQobV9ydWxlc18pOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy8gZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICAvLyBpZiBmYWlsZWQgdXNlIFVDQS4KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzZXRXaXRoVUNBRGF0YSgpOworICAgIH0KKworICAgIC8vIHBhY2thZ2UgcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoaXMgY29sbGF0b3IgdG8gdXNlIHRoZSB0YWJsZXMgaW4gVUNBLiBOb3RlIG9wdGlvbnMgbm90IHRha2VuCisgICAgICogY2FyZSBvZiBoZXJlLgorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0V2l0aFVDQVRhYmxlcygpCisgICAgeworICAgICAgICBtX2NvbnRyYWN0aW9uT2Zmc2V0XyA9IFVDQV8ubV9jb250cmFjdGlvbk9mZnNldF87CisgICAgICAgIG1fZXhwYW5zaW9uT2Zmc2V0XyA9IFVDQV8ubV9leHBhbnNpb25PZmZzZXRfOworICAgICAgICBtX2V4cGFuc2lvbl8gPSBVQ0FfLm1fZXhwYW5zaW9uXzsKKyAgICAgICAgbV9jb250cmFjdGlvbkluZGV4XyA9IFVDQV8ubV9jb250cmFjdGlvbkluZGV4XzsKKyAgICAgICAgbV9jb250cmFjdGlvbkNFXyA9IFVDQV8ubV9jb250cmFjdGlvbkNFXzsKKyAgICAgICAgbV90cmllXyA9IFVDQV8ubV90cmllXzsKKyAgICAgICAgbV9leHBhbnNpb25FbmRDRV8gPSBVQ0FfLm1fZXhwYW5zaW9uRW5kQ0VfOworICAgICAgICBtX2V4cGFuc2lvbkVuZENFTWF4U2l6ZV8gPSBVQ0FfLm1fZXhwYW5zaW9uRW5kQ0VNYXhTaXplXzsKKyAgICAgICAgbV91bnNhZmVfID0gVUNBXy5tX3Vuc2FmZV87CisgICAgICAgIG1fY29udHJhY3Rpb25FbmRfID0gVUNBXy5tX2NvbnRyYWN0aW9uRW5kXzsKKyAgICAgICAgbV9taW5VbnNhZmVfID0gVUNBXy5tX21pblVuc2FmZV87CisgICAgICAgIG1fbWluQ29udHJhY3Rpb25FbmRfID0gVUNBXy5tX21pbkNvbnRyYWN0aW9uRW5kXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoaXMgY29sbGF0b3IgdG8gdXNlIHRoZSBhbGwgb3B0aW9ucyBhbmQgdGFibGVzIGluIFVDQS4KKyAgICAgKi8KKyAgICBmaW5hbCB2b2lkIHNldFdpdGhVQ0FEYXRhKCkKKyAgICB7CisgICAgICAgIGxhdGluT25lRmFpbGVkXyA9IHRydWU7CisKKyAgICAgICAgbV9hZGRpdGlvbjNfID0gVUNBXy5tX2FkZGl0aW9uM187CisgICAgICAgIG1fYm90dG9tM18gPSBVQ0FfLm1fYm90dG9tM187CisgICAgICAgIG1fYm90dG9tQ291bnQzXyA9IFVDQV8ubV9ib3R0b21Db3VudDNfOworICAgICAgICBtX2Nhc2VGaXJzdF8gPSBVQ0FfLm1fY2FzZUZpcnN0XzsKKyAgICAgICAgbV9jYXNlU3dpdGNoXyA9IFVDQV8ubV9jYXNlU3dpdGNoXzsKKyAgICAgICAgbV9jb21tb24zXyA9IFVDQV8ubV9jb21tb24zXzsKKyAgICAgICAgbV9jb250cmFjdGlvbk9mZnNldF8gPSBVQ0FfLm1fY29udHJhY3Rpb25PZmZzZXRfOworICAgICAgICBzZXREZWNvbXBvc2l0aW9uKFVDQV8uZ2V0RGVjb21wb3NpdGlvbigpKTsKKyAgICAgICAgbV9kZWZhdWx0Q2FzZUZpcnN0XyA9IFVDQV8ubV9kZWZhdWx0Q2FzZUZpcnN0XzsKKyAgICAgICAgbV9kZWZhdWx0RGVjb21wb3NpdGlvbl8gPSBVQ0FfLm1fZGVmYXVsdERlY29tcG9zaXRpb25fOworICAgICAgICBtX2RlZmF1bHRJc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBVQ0FfLm1fZGVmYXVsdElzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXzsKKyAgICAgICAgbV9kZWZhdWx0SXNDYXNlTGV2ZWxfID0gVUNBXy5tX2RlZmF1bHRJc0Nhc2VMZXZlbF87CisgICAgICAgIG1fZGVmYXVsdElzRnJlbmNoQ29sbGF0aW9uXyA9IFVDQV8ubV9kZWZhdWx0SXNGcmVuY2hDb2xsYXRpb25fOworICAgICAgICBtX2RlZmF1bHRJc0hpcmFnYW5hNF8gPSBVQ0FfLm1fZGVmYXVsdElzSGlyYWdhbmE0XzsKKyAgICAgICAgbV9kZWZhdWx0U3RyZW5ndGhfID0gVUNBXy5tX2RlZmF1bHRTdHJlbmd0aF87CisgICAgICAgIG1fZGVmYXVsdFZhcmlhYmxlVG9wVmFsdWVfID0gVUNBXy5tX2RlZmF1bHRWYXJpYWJsZVRvcFZhbHVlXzsKKyAgICAgICAgbV9kZWZhdWx0SXNOdW1lcmljQ29sbGF0aW9uXyA9IFVDQV8ubV9kZWZhdWx0SXNOdW1lcmljQ29sbGF0aW9uXzsKKyAgICAgICAgbV9leHBhbnNpb25PZmZzZXRfID0gVUNBXy5tX2V4cGFuc2lvbk9mZnNldF87CisgICAgICAgIG1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfID0gVUNBXy5tX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXzsKKyAgICAgICAgbV9pc0Nhc2VMZXZlbF8gPSBVQ0FfLm1faXNDYXNlTGV2ZWxfOworICAgICAgICBtX2lzRnJlbmNoQ29sbGF0aW9uXyA9IFVDQV8ubV9pc0ZyZW5jaENvbGxhdGlvbl87CisgICAgICAgIG1faXNIaXJhZ2FuYTRfID0gVUNBXy5tX2lzSGlyYWdhbmE0XzsKKyAgICAgICAgbV9pc0phbW9TcGVjaWFsXyA9IFVDQV8ubV9pc0phbW9TcGVjaWFsXzsKKyAgICAgICAgbV9pc1NpbXBsZTNfID0gVUNBXy5tX2lzU2ltcGxlM187CisgICAgICAgIG1fbWFzazNfID0gVUNBXy5tX21hc2szXzsKKyAgICAgICAgbV9taW5Db250cmFjdGlvbkVuZF8gPSBVQ0FfLm1fbWluQ29udHJhY3Rpb25FbmRfOworICAgICAgICBtX21pblVuc2FmZV8gPSBVQ0FfLm1fbWluVW5zYWZlXzsKKyAgICAgICAgbV9ydWxlc18gPSBVQ0FfLm1fcnVsZXNfOworICAgICAgICBzZXRTdHJlbmd0aChVQ0FfLmdldFN0cmVuZ3RoKCkpOworICAgICAgICBtX3RvcDNfID0gVUNBXy5tX3RvcDNfOworICAgICAgICBtX3RvcENvdW50M18gPSBVQ0FfLm1fdG9wQ291bnQzXzsKKyAgICAgICAgbV92YXJpYWJsZVRvcFZhbHVlXyA9IFVDQV8ubV92YXJpYWJsZVRvcFZhbHVlXzsKKyAgICAgICAgbV9pc051bWVyaWNDb2xsYXRpb25fID0gVUNBXy5tX2lzTnVtZXJpY0NvbGxhdGlvbl87CisgICAgICAgIHNldFdpdGhVQ0FUYWJsZXMoKTsKKyAgICAgICAgbGF0aW5PbmVGYWlsZWRfID0gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGVzdCB3aGV0aGVyIGEgY2hhciBjaGFyYWN0ZXIgaXMgcG90ZW50aWFsbHkgInVuc2FmZSIgZm9yIHVzZSBhcyBhCisgICAgICogY29sbGF0aW9uIHN0YXJ0aW5nIHBvaW50LiAiVW5zYWZlIiBjaGFyYWN0ZXJzIGFyZSBjb21iaW5pbmcgbWFya3Mgb3IKKyAgICAgKiB0aG9zZSBiZWxvbmdpbmcgdG8gc29tZSBjb250cmFjdGlvbiBzZXF1ZW5jZSBmcm9tIHRoZSBvZmZzZXQgMSBvbndhcmRzLgorICAgICAqIEUuZy4gaWYgIkFCQyIgaXMgdGhlIG9ubHkgY29udHJhY3Rpb24sIHRoZW4gJ0InIGFuZAorICAgICAqICdDJyBhcmUgY29uc2lkZXJlZCB1bnNhZmUuIElmIHdlIGhhdmUgYW5vdGhlciBjb250cmFjdGlvbiAiWkEiIHdpdGgKKyAgICAgKiB0aGUgb25lIGFib3ZlLCB0aGVuICdBJywgJ0InLCAnQycgYXJlICJ1bnNhZmUiIGJ1dCAnWicgaXMgbm90LgorICAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gZGV0ZXJtaW4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY2ggaXMgdW5zYWZlLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBmaW5hbCBib29sZWFuIGlzVW5zYWZlKGNoYXIgY2gpCisgICAgeworICAgICAgICBpZiAoY2ggPCBtX21pblVuc2FmZV8pIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGNoID49IChIRVVSSVNUSUNfU0laRV8gPDwgSEVVUklTVElDX1NISUZUXykpIHsKKyAgICAgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUoY2gpIAorICAgICAgICAgICAgICAgIHx8IFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgLy8gIFRyYWlsIHN1cnJvZ2F0ZSBhcmUgYWx3YXlzIGNvbnNpZGVyZWQgdW5zYWZlLgorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2ggJj0gSEVVUklTVElDX09WRVJGTE9XX01BU0tfOworICAgICAgICAgICAgY2ggKz0gSEVVUklTVElDX09WRVJGTE9XX09GRlNFVF87CisgICAgICAgIH0KKyAgICAgICAgaW50IHZhbHVlID0gbV91bnNhZmVfW2NoID4+IEhFVVJJU1RJQ19TSElGVF9dOworICAgICAgICByZXR1cm4gKCh2YWx1ZSA+PiAoY2ggJiBIRVVSSVNUSUNfTUFTS18pKSAmIDEpICE9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwcm94aW1hdGUgZGV0ZXJtaW5hdGlvbiBpZiBhIGNoYXIgY2hhcmFjdGVyIGlzIGF0IGEgY29udHJhY3Rpb24gZW5kLgorICAgICAqIEd1YXJhbnRlZWQgdG8gYmUgdHJ1ZSBpZiBhIGNoYXJhY3RlciBpcyBhdCB0aGUgZW5kIG9mIGEgY29udHJhY3Rpb24sCisgICAgICogb3RoZXJ3aXNlIGl0IGlzIG5vdCBkZXRlcm1pbmlzdGljLgorICAgICAqIEBwYXJhbSBjaCBjaGFyYWN0ZXIgdG8gYmUgZGV0ZXJtaW5lZAorICAgICAqLworICAgIGZpbmFsIGJvb2xlYW4gaXNDb250cmFjdGlvbkVuZChjaGFyIGNoKQorICAgIHsKKyAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjaCA8IG1fbWluQ29udHJhY3Rpb25FbmRfKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY2ggPj0gKEhFVVJJU1RJQ19TSVpFXyA8PCBIRVVSSVNUSUNfU0hJRlRfKSkgeworICAgICAgICAgICAgY2ggJj0gSEVVUklTVElDX09WRVJGTE9XX01BU0tfOworICAgICAgICAgICAgY2ggKz0gSEVVUklTVElDX09WRVJGTE9XX09GRlNFVF87CisgICAgICAgIH0KKyAgICAgICAgaW50IHZhbHVlID0gbV9jb250cmFjdGlvbkVuZF9bY2ggPj4gSEVVUklTVElDX1NISUZUX107CisgICAgICAgIHJldHVybiAoKHZhbHVlID4+IChjaCAmIEhFVVJJU1RJQ19NQVNLXykpICYgMSkgIT0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgdGFnIG9mIGEgc3BlY2lhbCBjZQorICAgICAqIEBwYXJhbSBjZSBjZSB0byB0ZXN0CisgICAgICogQHJldHVybiB0YWcgb2YgY2UKKyAgICAgKi8KKyAgICBzdGF0aWMgaW50IGdldFRhZyhpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gKGNlICYgQ0VfVEFHX01BU0tfKSA+PiBDRV9UQUdfU0hJRlRfOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNraW5nIGlmIGNlIGlzIHNwZWNpYWwKKyAgICAgKiBAcGFyYW0gY2UgdG8gY2hlY2sKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY2UgaXMgc3BlY2lhbAorICAgICAqLworICAgIHN0YXRpYyBib29sZWFuIGlzU3BlY2lhbChpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gKGNlICYgQ0VfU1BFQ0lBTF9GTEFHXykgPT0gQ0VfU1BFQ0lBTF9GTEFHXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdGhlIGFyZ3VtZW50IGNlIGlzIGEgY29udGludWF0aW9uCisgICAgICogQHBhcmFtIGNlIGNvbGxhdGlvbiBlbGVtZW50IHRvIHRlc3QKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgY2UgaXMgYSBjb250aW51YXRpb24KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc0NvbnRpbnVhdGlvbihpbnQgY2UpCisgICAgeworICAgICAgICByZXR1cm4gY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUgorICAgICAgICAgICAgICAgICAgICAgICAmJiAoY2UgJiBDRV9DT05USU5VQVRJT05fVEFHXykgPT0gQ0VfQ09OVElOVUFUSU9OX1RBR187CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBpbm5lciBjbGFzc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gcHJpdmF0ZSB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSBzbWFsbGVzdCBuYXR1cmFsIHVuc2FmZSBvciBjb250cmFjdGlvbiBlbmQgY2hhciBjaGFyYWN0ZXIgYmVmb3JlCisgICAgICogdGFpbG9yaW5nLgorICAgICAqIFRoaXMgaXMgYSBjb21iaW5pbmcgbWFyay4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgREVGQVVMVF9NSU5fSEVVUklTVElDXyA9IDB4MzAwOworICAgIC8qKgorICAgICAqIEhldXJpc3RpYyB0YWJsZSB0YWJsZSBzaXplLiBTaXplIGlzIDMyIGJ5dGVzLCAxIGJpdCBmb3IgZWFjaAorICAgICAqIGxhdGluIDEgY2hhciwgYW5kIHNvbWUgcG93ZXIgb2YgdHdvIGZvciBoYXNoaW5nIHRoZSByZXN0IG9mIHRoZSBjaGFycy4KKyAgICAgKiBTaXplIGluIGJ5dGVzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgSEVVUklTVElDX1NJWkVfID0gMTA1NjsKKyAgICAvKioKKyAgICAgKiBNYXNrIHZhbHVlIGRvd24gdG8gInNvbWUgcG93ZXIgb2YgdHdvIiAtIDEsCisgICAgICogbnVtYmVyIG9mIGJpdHMsIG5vdCBudW0gb2YgYnl0ZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBIRVVSSVNUSUNfT1ZFUkZMT1dfTUFTS18gPSAweDFmZmY7CisgICAgLyoqCisgICAgICogVW5zYWZlIGNoYXJhY3RlciBzaGlmdAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBIRVVSSVNUSUNfU0hJRlRfID0gMzsKKyAgICAvKioKKyAgICAgKiBVbnNhZmUgY2hhcmFjdGVyIGFkZGl0aW9uIGZvciBjaGFyYWN0ZXIgdG9vIGxhcmdlLCBpdCBoYXMgdG8gYmUgZm9sZGVkCisgICAgICogdGhlbiBpbmNyZW1lbnRlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEhFVVJJU1RJQ19PVkVSRkxPV19PRkZTRVRfID0gMjU2OworICAgIC8qKgorICAgICAqIE1hc2sgdmFsdWUgdG8gZ2V0IG9mZnNldCBpbiBoZXVyaXN0aWMgdGFibGUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBIRVVSSVNUSUNfTUFTS18gPSA3OworCisgICAgcHJpdmF0ZSBpbnQgbV9jYXNlU3dpdGNoXzsKKyAgICBwcml2YXRlIGludCBtX2NvbW1vbjNfOworICAgIHByaXZhdGUgaW50IG1fbWFzazNfOworICAgIC8qKgorICAgICAqIFdoZW4gc3dpdGNoaW5nIGNhc2UsIHdlIG5lZWQgdG8gYWRkIG9yIHN1YnRyYWN0IGRpZmZlcmVudCB2YWx1ZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9hZGRpdGlvbjNfOworICAgIC8qKgorICAgICAqIFVwcGVyIHJhbmdlIHdoZW4gY29tcHJlc3NpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3RvcDNfOworICAgIC8qKgorICAgICAqIFVwcGVyIHJhbmdlIHdoZW4gY29tcHJlc3NpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2JvdHRvbTNfOworICAgIHByaXZhdGUgaW50IG1fdG9wQ291bnQzXzsKKyAgICBwcml2YXRlIGludCBtX2JvdHRvbUNvdW50M187CisgICAgLyoqCisgICAgICogQ2FzZSBmaXJzdCBjb25zdGFudHMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0FTRV9TV0lUQ0hfID0gMHhDMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTk9fQ0FTRV9TV0lUQ0hfID0gMDsKKyAgICAvKioKKyAgICAgKiBDYXNlIGxldmVsIGNvbnN0YW50cworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9SRU1PVkVfQ0FTRV8gPSAweDNGOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9LRUVQX0NBU0VfID0gMHhGRjsKKyAgICAvKioKKyAgICAgKiBDYXNlIHN0cmVuZ3RoIG1hc2sKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ0FTRV9NQVNLXzNfID0gMHhGRjsKKyAgICAvKioKKyAgICAgKiBTb3J0a2V5IHNpemUgZmFjdG9yLiBWYWx1ZXMgY2FuIGJlIGNoYW5nZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZG91YmxlIFBST1BPUlRJT05fMl8gPSAwLjU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgZG91YmxlIFBST1BPUlRJT05fM18gPSAwLjY2NzsKKworICAgIC8vIFRoZXNlIHZhbHVlcyBjb21lIGZyb20gdGhlIFVDQSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGFuIGVudW0gdGhhdCBsaXN0cyBtYWdpYyBzcGVjaWFsIGJ5dGUgdmFsdWVzIGZyb20gdGhlCisgICAgICogZnJhY3Rpb25hbCBVQ0EKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVfWkVST18gPSAweDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX0xFVkVMX1NFUEFSQVRPUl8gPSAoYnl0ZSkweDAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQllURV9TT1JUS0VZX0dMVUVfID0gKGJ5dGUpMHgwMjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVfU0hJRlRfUFJFRklYXyA9IChieXRlKTB4MDM7CisgICAgLypwcml2YXRlKi8gc3RhdGljIGZpbmFsIGJ5dGUgQllURV9VTlNISUZURURfTUlOXyA9IEJZVEVfU0hJRlRfUFJFRklYXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIEJZVEVfRklSU1RfVUNBXyA9IEJZVEVfQ09NTU9OXzsKKyAgICBzdGF0aWMgZmluYWwgYnl0ZSBDT0RBTl9QTEFDRUhPTERFUiA9IDB4MjQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBCWVRFX0xBU1RfTEFUSU5fUFJJTUFSWV8gPSAoYnl0ZSkweDRDOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQllURV9GSVJTVF9OT05fTEFUSU5fUFJJTUFSWV8gPSAoYnl0ZSkweDREOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgQllURV9VTlNISUZURURfTUFYXyA9IChieXRlKTB4RkY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRPVEFMXzJfID0gQ09NTU9OX1RPUF8yXyAtIENPTU1PTl9CT1RUT01fMl8gLSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGTEFHX0JJVF9NQVNLX0NBU0VfU1dJVENIX09GRl8gPSAweDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGTEFHX0JJVF9NQVNLX0NBU0VfU1dJVENIX09OXyA9IDB4NDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTU1PTl9UT1BfQ0FTRV9TV0lUQ0hfT0ZGXzNfID0gMHg4NTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX1RPUF9DQVNFX1NXSVRDSF9MT1dFUl8zXyA9IDB4NDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTU1PTl9UT1BfQ0FTRV9TV0lUQ0hfVVBQRVJfM18gPSAweEM1OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT01NT05fQk9UVE9NXzNfID0gMHgwNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX0JPVFRPTV9DQVNFX1NXSVRDSF9VUFBFUl8zXyA9IDB4ODY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTU1PTl9CT1RUT01fQ0FTRV9TV0lUQ0hfTE9XRVJfM18gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT01NT05fQk9UVE9NXzNfOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBUT1BfQ09VTlRfMl8gPSAoaW50KShQUk9QT1JUSU9OXzJfICogVE9UQUxfMl8pOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCT1RUT01fQ09VTlRfMl8gPSBUT1RBTF8yXyAtIFRPUF9DT1VOVF8yXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OXzJfID0gQ09NTU9OX0JPVFRPTV8yXzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX1VQUEVSX0ZJUlNUXzNfID0gMHhDNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09NTU9OX05PUk1BTF8zXyA9IENPTU1PTl9CT1RUT01fM187CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENPTU1PTl80XyA9IChieXRlKTB4RkY7CisKKworCisgICAgLyoqCisgICAgICogTWluaW11bSBzaXplIHJlcXVpcmVkIGZvciB0aGUgYmluYXJ5IGNvbGxhdGlvbiBkYXRhIGluIGJ5dGVzLgorICAgICAqIFNpemUgb2YgVUNBIGhlYWRlciArIHNpemUgb2Ygb3B0aW9ucyB0byA0IGJ5dGVzCisgICAgICovCisgICAgLy9wcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUlOX0JJTkFSWV9EQVRBX1NJWkVfID0gKDQyICsgMjUpIDw8IDI7CisKKyAgICAvKioKKyAgICAgKiBJZiB0aGlzIGNvbGxhdG9yIGlzIHRvIGdlbmVyYXRlIG9ubHkgc2ltcGxlIHRlcnRpYXJpZXMgZm9yIGZhc3QgcGF0aAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzU2ltcGxlM187CisKKyAgICAvKioKKyAgICAgKiBGcmVuY2ggY29sbGF0aW9uIHNvcnRpbmcgZmxhZworICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzRnJlbmNoQ29sbGF0aW9uXzsKKyAgICAvKioKKyAgICAgKiBGbGFnIGluZGljYXRpbmcgaWYgc2hpZnRlZCBpcyByZXF1ZXN0ZWQgZm9yIFF1YXRlcm5hcnkgYWx0ZXJuYXRlCisgICAgICogaGFuZGxpbmcuIElmIHRoaXMgaXMgbm90IHRydWUsIHRoZSBkZWZhdWx0IGZvciBhbHRlcm5hdGUgaGFuZGxpbmcgd2lsbAorICAgICAqIGJlIG5vbi1pZ25vcmFibGUuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfOworICAgIC8qKgorICAgICAqIEV4dHJhIGNhc2UgbGV2ZWwgZm9yIHNvcnRpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV9pc0Nhc2VMZXZlbF87CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU09SVF9CVUZGRVJfSU5JVF9TSVpFXyA9IDEyODsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU09SVF9CVUZGRVJfSU5JVF9TSVpFXzFfID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1JUX0JVRkZFUl9JTklUX1NJWkVfIDw8IDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNPUlRfQlVGRkVSX0lOSVRfU0laRV8yXyA9IFNPUlRfQlVGRkVSX0lOSVRfU0laRV87CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNPUlRfQlVGRkVSX0lOSVRfU0laRV8zXyA9IFNPUlRfQlVGRkVSX0lOSVRfU0laRV87CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNPUlRfQlVGRkVSX0lOSVRfU0laRV9DQVNFXyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1JUX0JVRkZFUl9JTklUX1NJWkVfID4+IDI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNPUlRfQlVGRkVSX0lOSVRfU0laRV80XyA9IFNPUlRfQlVGRkVSX0lOSVRfU0laRV87CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ0VfQ09OVElOVUFUSU9OX1RBR18gPSAweEMwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9SRU1PVkVfQ09OVElOVUFUSU9OX01BU0tfID0gMHhGRkZGRkYzRjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVNUX0JZVEVfTUFTS18gPSAweEZGOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENFX1JFU0VUX1RPUF9WQUxVRV8gPSAweDlGMDAwMzAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9ORVhUX1RPUF9WQUxVRV8gPSAweEU4OTYwMzAzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSBTT1JUX0NBU0VfQllURV9TVEFSVF8gPSAoYnl0ZSkweDgwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgU09SVF9DQVNFX1NISUZUX1NUQVJUXyA9IChieXRlKTc7CisKKyAgICAvKioKKyAgICAgKiBDRSBidWZmZXIgc2l6ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDRV9CVUZGRVJfU0laRV8gPSA1MTI7CisKKyAgICAvLyB2YXJpYWJsZXMgZm9yIExhdGluLTEgcHJvY2Vzc2luZworICAgIGJvb2xlYW4gbGF0aW5PbmVVc2VfICAgICAgICA9IGZhbHNlOworICAgIGJvb2xlYW4gbGF0aW5PbmVSZWdlblRhYmxlXyA9IGZhbHNlOworICAgIGJvb2xlYW4gbGF0aW5PbmVGYWlsZWRfICAgICA9IGZhbHNlOworCisgICAgaW50IGxhdGluT25lVGFibGVMZW5fID0gMDsKKyAgICBpbnQgbGF0aW5PbmVDRXNfW10gPSBudWxsOworICAgIC8qKgorICAgICAqIEJ1bmNoIG9mIHV0aWxpdHkgaXRlcmF0b3JzCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IgbV9zcmNVdGlsSXRlcl87CisgICAgcHJpdmF0ZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgbV9zcmNVdGlsQ29sRUl0ZXJfOworICAgIHByaXZhdGUgU3RyaW5nVUNoYXJhY3Rlckl0ZXJhdG9yIG1fdGd0VXRpbEl0ZXJfOworICAgIHByaXZhdGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG1fdGd0VXRpbENvbEVJdGVyXzsKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGNvbXBhcmlzb24gZmxhZ3MKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV91dGlsQ29tcGFyZTBfOworICAgIHByaXZhdGUgYm9vbGVhbiBtX3V0aWxDb21wYXJlMV87CisgICAgcHJpdmF0ZSBib29sZWFuIG1fdXRpbENvbXBhcmUyXzsKKyAgICBwcml2YXRlIGJvb2xlYW4gbV91dGlsQ29tcGFyZTNfOworICAgIHByaXZhdGUgYm9vbGVhbiBtX3V0aWxDb21wYXJlNF87CisgICAgcHJpdmF0ZSBib29sZWFuIG1fdXRpbENvbXBhcmU1XzsKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IGJ5dGUgYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBieXRlIG1fdXRpbEJ5dGVzMF9bXTsKKyAgICBwcml2YXRlIGJ5dGUgbV91dGlsQnl0ZXMxX1tdOworICAgIHByaXZhdGUgYnl0ZSBtX3V0aWxCeXRlczJfW107CisgICAgcHJpdmF0ZSBieXRlIG1fdXRpbEJ5dGVzM19bXTsKKyAgICBwcml2YXRlIGJ5dGUgbV91dGlsQnl0ZXM0X1tdOworICAgIHByaXZhdGUgYnl0ZSBtX3V0aWxCeXRlczVfW107CisgICAgcHJpdmF0ZSBSYXdDb2xsYXRpb25LZXkgbV91dGlsUmF3Q29sbGF0aW9uS2V5XzsKKworICAgIHByaXZhdGUgaW50IG1fdXRpbEJ5dGVzQ291bnQwXzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxCeXRlc0NvdW50MV87CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQnl0ZXNDb3VudDJfOworICAgIHByaXZhdGUgaW50IG1fdXRpbEJ5dGVzQ291bnQzXzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxCeXRlc0NvdW50NF87CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQnl0ZXNDb3VudDVfOworICAgIHByaXZhdGUgaW50IG1fdXRpbENvdW50MF87CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQ291bnQxXzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxDb3VudDJfOworICAgIHByaXZhdGUgaW50IG1fdXRpbENvdW50M187CisgICAgcHJpdmF0ZSBpbnQgbV91dGlsQ291bnQ0XzsKKyAgICBwcml2YXRlIGludCBtX3V0aWxDb3VudDVfOworCisgICAgcHJpdmF0ZSBpbnQgbV91dGlsRnJlbmNoU3RhcnRfOworICAgIHByaXZhdGUgaW50IG1fdXRpbEZyZW5jaEVuZF87CisKKyAgICAvKioKKyAgICAgKiBQcmVwYXJpbmcgdGhlIENFIGJ1ZmZlcnMuIHdpbGwgYmUgZmlsbGVkIGR1cmluZyB0aGUgcHJpbWFyeSBwaGFzZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fc3JjVXRpbENFQnVmZmVyX1tdOworICAgIHByaXZhdGUgaW50IG1fdGd0VXRpbENFQnVmZmVyX1tdOworICAgIHByaXZhdGUgaW50IG1fc3JjVXRpbENFQnVmZmVyU2l6ZV87CisgICAgcHJpdmF0ZSBpbnQgbV90Z3RVdGlsQ0VCdWZmZXJTaXplXzsKKworICAgIHByaXZhdGUgaW50IG1fc3JjVXRpbENvbnRPZmZzZXRfOworICAgIHByaXZhdGUgaW50IG1fdGd0VXRpbENvbnRPZmZzZXRfOworCisgICAgcHJpdmF0ZSBpbnQgbV9zcmNVdGlsT2Zmc2V0XzsKKyAgICBwcml2YXRlIGludCBtX3RndFV0aWxPZmZzZXRfOworCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHByaXZhdGUgdm9pZCBpbml0KFN0cmluZyBydWxlcykgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgc2V0V2l0aFVDQURhdGEoKTsKKyAgICAgICAgQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIgYnVpbGRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBuZXcgQ29sbGF0aW9uUGFyc2VkUnVsZUJ1aWxkZXIocnVsZXMpOworICAgICAgICBidWlsZGVyLnNldFJ1bGVzKHRoaXMpOworICAgICAgICBtX3J1bGVzXyA9IHJ1bGVzOworICAgICAgICBpbml0KCk7CisgICAgICAgIGluaXRVdGlsaXR5KCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgaW50IGNvbXBhcmVSZWd1bGFyKFN0cmluZyBzb3VyY2UsIFN0cmluZyB0YXJnZXQsIGludCBvZmZzZXQpIHsKKyAgICAgICAgaW50IHN0cmVuZ3RoID0gZ2V0U3RyZW5ndGgoKTsKKyAgICAgICAgLy8gc2V0dGluZyB1cCB0aGUgY29sbGF0b3IgcGFyYW1ldGVycworICAgICAgICBtX3V0aWxDb21wYXJlMF8gPSBtX2lzQ2FzZUxldmVsXzsKKyAgICAgICAgbV91dGlsQ29tcGFyZTFfID0gdHJ1ZTsKKyAgICAgICAgbV91dGlsQ29tcGFyZTJfID0gc3RyZW5ndGggPj0gU0VDT05EQVJZOworICAgICAgICBtX3V0aWxDb21wYXJlM18gPSBzdHJlbmd0aCA+PSBURVJUSUFSWTsKKyAgICAgICAgbV91dGlsQ29tcGFyZTRfID0gc3RyZW5ndGggPj0gUVVBVEVSTkFSWTsKKyAgICAgICAgbV91dGlsQ29tcGFyZTVfID0gc3RyZW5ndGggPT0gSURFTlRJQ0FMOworICAgICAgICBib29sZWFuIGRvRnJlbmNoID0gbV9pc0ZyZW5jaENvbGxhdGlvbl8gJiYgbV91dGlsQ29tcGFyZTJfOworICAgICAgICBib29sZWFuIGRvU2hpZnQ0ID0gbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8gJiYgbV91dGlsQ29tcGFyZTRfOworICAgICAgICBib29sZWFuIGRvSGlyYWdhbmE0ID0gbV9pc0hpcmFnYW5hNF8gJiYgbV91dGlsQ29tcGFyZTRfOworCisgICAgICAgIGlmIChkb0hpcmFnYW5hNCAmJiBkb1NoaWZ0NCkgeworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZXN1YiA9IHNvdXJjZS5zdWJzdHJpbmcob2Zmc2V0KTsKKyAgICAgICAgICAgIFN0cmluZyB0YXJnZXRzdWIgPSB0YXJnZXQuc3Vic3RyaW5nKG9mZnNldCk7CisgICAgICAgICAgICByZXR1cm4gY29tcGFyZUJ5U29ydEtleXMoc291cmNlc3ViLCB0YXJnZXRzdWIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGhpcyBpcyB0aGUgbG93ZXN0IHByaW1hcnkgdmFsdWUgdGhhdCB3aWxsIG5vdCBiZSBpZ25vcmVkIGlmIHNoaWZ0ZWQKKyAgICAgICAgaW50IGxvd2VzdHB2YWx1ZSA9IG1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbV92YXJpYWJsZVRvcFZhbHVlXyA8PCAxNiA6IDA7CisgICAgICAgIG1fc3JjVXRpbENFQnVmZmVyU2l6ZV8gPSAwOworICAgICAgICBtX3RndFV0aWxDRUJ1ZmZlclNpemVfID0gMDsKKyAgICAgICAgaW50IHJlc3VsdCA9IGRvUHJpbWFyeUNvbXBhcmUoZG9IaXJhZ2FuYTQsIGxvd2VzdHB2YWx1ZSwgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQsIG9mZnNldCk7CisgICAgICAgIGlmIChtX3NyY1V0aWxDRUJ1ZmZlclNpemVfID09IC0xCisgICAgICAgICAgICAmJiBtX3RndFV0aWxDRUJ1ZmZlclNpemVfID09IC0xKSB7CisgICAgICAgICAgICAvLyBzaW5jZSB0aGUgY2VidWZmZXIgaXMgY2xlYXJlZCB3aGVuIHdlIGhhdmUgZGV0ZXJtaW5lZCB0aGF0CisgICAgICAgICAgICAvLyBlaXRoZXIgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQgb3IgdmljZSB2ZXJzYSwgdGhlIHJldHVybgorICAgICAgICAgICAgLy8gcmVzdWx0IGlzIHRoZSBjb21wYXJpc29uIHJlc3VsdCBhbmQgbm90IHRoZSBoaXJhZ2FuYSByZXN1bHQKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICBpbnQgaGlyYWdhbmFyZXN1bHQgPSByZXN1bHQ7CisKKyAgICAgICAgaWYgKG1fdXRpbENvbXBhcmUyXykgeworICAgICAgICAgICAgcmVzdWx0ID0gZG9TZWNvbmRhcnlDb21wYXJlKGRvRnJlbmNoKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gZG9pbmcgdGhlIGNhc2UgYml0CisgICAgICAgIGlmIChtX3V0aWxDb21wYXJlMF8pIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGRvQ2FzZUNvbXBhcmUoKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gVGVydGlhcnkgbGV2ZWwKKyAgICAgICAgaWYgKG1fdXRpbENvbXBhcmUzXykgeworICAgICAgICAgICAgcmVzdWx0ID0gZG9UZXJ0aWFyeUNvbXBhcmUoKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoZG9TaGlmdDQpIHsgIC8vIGNoZWNrUXVhZAorICAgICAgICAgICAgcmVzdWx0ID0gZG9RdWF0ZXJuYXJ5Q29tcGFyZShsb3dlc3RwdmFsdWUpOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChkb0hpcmFnYW5hNCAmJiBoaXJhZ2FuYXJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICAvLyBJZiB3ZSdyZSBmaW5lIG9uIHF1YXRlcm5hcmllcywgd2UgbWlnaHQgYmUgZGlmZmVyZW50CisgICAgICAgICAgICAvLyBvbiBIaXJhZ2FuYS4gVGhpcywgaG93ZXZlciwgbWlnaHQgZmFpbCB1cyBpbiBzaGlmdGVkLgorICAgICAgICAgICAgcmV0dXJuIGhpcmFnYW5hcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgLy8gRm9yIElERU5USUNBTCBjb21wYXJpc29ucywgd2UgdXNlIGEgYml0d2lzZSBjaGFyYWN0ZXIgY29tcGFyaXNvbgorICAgICAgICAvLyBhcyBhIHRpZWJyZWFrZXIgaWYgYWxsIGVsc2UgaXMgZXF1YWwuCisgICAgICAgIC8vIEdldHRpbmcgaGVyZSAgc2hvdWxkIGJlIHF1aXRlIHJhcmUgLSBzdHJpbmdzIGFyZSBub3QgaWRlbnRpY2FsIC0KKyAgICAgICAgLy8gdGhhdCBpcyBjaGVja2VkIGZpcnN0LCBidXQgY29tcGFyZWQgPT0gdGhyb3VnaCBhbGwgb3RoZXIgY2hlY2tzLgorICAgICAgICBpZiAobV91dGlsQ29tcGFyZTVfKSB7CisgICAgICAgICAgICByZXR1cm4gZG9JZGVudGljYWxDb21wYXJlKHNvdXJjZSwgdGFyZ2V0LCBvZmZzZXQsIHRydWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIDIgYnl0ZXMgb2YgcHJpbWFyeSBvcmRlciBhbmQgYWRkcyBpdCB0byB0aGUgcHJpbWFyeSBieXRlIGFycmF5CisgICAgICogQHBhcmFtIGNlIGN1cnJlbnQgY2UKKyAgICAgKiBAcGFyYW0gbm90SXNDb250aW51YXRpb24gZmxhZyBpbmRpY2F0aW5nIGlmIHRoZSBjdXJyZW50IGJ5dGVzIGJlbG9uZyB0bworICAgICAqICAgICAgICAgIGEgY29udGludWF0aW9uIGNlCisgICAgICogQHBhcmFtIGRvU2hpZnQgZmxhZyBpbmRpY2F0aW5nIGlmIGNlIGlzIHRvIGJlIHNoaWZ0ZWQKKyAgICAgKiBAcGFyYW0gbGVhZFByaW1hcnkgbGVhZCBwcmltYXJ5IHVzZWQgZm9yIGNvbXByZXNzaW9uCisgICAgICogQHBhcmFtIGNvbW1vbkJvdHRvbTQgY29tbW9uIGJ5dGUgdmFsdWUgZm9yIFF1YXRlcm5hcnkKKyAgICAgKiBAcGFyYW0gYm90dG9tQ291bnQ0IHNtYWxsZXN0IGJ5dGUgdmFsdWUgZm9yIFF1YXRlcm5hcnkKKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcgbGVhZCBwcmltYXJ5IGZvciBjb21wcmVzc2lvbgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGRvUHJpbWFyeUJ5dGVzKGludCBjZSwgYm9vbGVhbiBub3RJc0NvbnRpbnVhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGRvU2hpZnQsIGludCBsZWFkUHJpbWFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tbW9uQm90dG9tNCwgaW50IGJvdHRvbUNvdW50NCkKKyAgICB7CisKKyAgICAgICAgaW50IHAyID0gKGNlID4+PSAxNikgJiBMQVNUX0JZVEVfTUFTS187IC8vIGluIGludHMgZm9yIHVuc2lnbmVkCisgICAgICAgIGludCBwMSA9IGNlID4+PiA4OyAgLy8gY29tcGFyaXNvbgorICAgICAgICBpZiAoZG9TaGlmdCkgeworICAgICAgICAgICAgaWYgKG1fdXRpbENvdW50NF8gPiAwKSB7CisgICAgICAgICAgICAgICAgd2hpbGUgKG1fdXRpbENvdW50NF8gPiBib3R0b21Db3VudDQpIHsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXM0XyA9IGFwcGVuZChtX3V0aWxCeXRlczRfLCBtX3V0aWxCeXRlc0NvdW50NF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShjb21tb25Cb3R0b200ICsgYm90dG9tQ291bnQ0KSk7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ0XyArKzsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQ0XyAtPSBib3R0b21Db3VudDQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzNF8gPSBhcHBlbmQobV91dGlsQnl0ZXM0XywgbV91dGlsQnl0ZXNDb3VudDRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKGNvbW1vbkJvdHRvbTQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDRfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgICAgICAgICAgbV91dGlsQ291bnQ0XyA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBkZWFsaW5nIHdpdGggYSB2YXJpYWJsZSBhbmQgd2UncmUgdHJlYXRpbmcgdGhlbSBhcyBzaGlmdGVkCisgICAgICAgICAgICAvLyBUaGlzIGlzIGEgc2hpZnRlZCBpZ25vcmFibGUKKyAgICAgICAgICAgIGlmIChwMSAhPSAwKSB7CisgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBjaGVjayB0aGlzIHNpbmNlIHdlIGNvdWxkIGJlIGluIGNvbnRpbnVhdGlvbgorICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzNF8gPSBhcHBlbmQobV91dGlsQnl0ZXM0XywgbV91dGlsQnl0ZXNDb3VudDRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpcDEpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ0XyArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChwMiAhPSAwKSB7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXM0XyA9IGFwcGVuZChtX3V0aWxCeXRlczRfLCBtX3V0aWxCeXRlc0NvdW50NF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlwMik7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDRfICsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gTm90ZTogVGhpcyBjb2RlIGFzc3VtZXMgdGhhdCB0aGUgdGFibGUgaXMgd2VsbCBidWlsdAorICAgICAgICAgICAgLy8gaS5lLiBub3QgaGF2aW5nIDAgYnl0ZXMgd2hlcmUgdGhleSBhcmUgbm90IHN1cHBvc2VkIHRvIGJlLgorICAgICAgICAgICAgLy8gVXN1YWxseSwgd2UnbGwgaGF2ZSBub24temVybyBwcmltYXJ5MSAmIHByaW1hcnkyLCBleGNlcHQKKyAgICAgICAgICAgIC8vIGluIGNhc2VzIG9mIExhdGluT25lIGFuZCBmcmllbmRzLCB3aGVuIHByaW1hcnkyIHdpbGwgYmUKKyAgICAgICAgICAgIC8vIHJlZ3VsYXIgYW5kIHNpbXBsZSBzb3J0a2V5IGNhbGMKKyAgICAgICAgICAgIGlmIChwMSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgaWYgKG5vdElzQ29udGludWF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZWFkUHJpbWFyeSA9PSBwMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8sIChieXRlKXAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZWFkUHJpbWFyeSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChwMSA+IGxlYWRQcmltYXJ5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IEJZVEVfVU5TSElGVEVEX01BWF8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBCWVRFX1VOU0hJRlRFRF9NSU5fKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHAyID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmUgYnl0ZXIsIG5vdCBjb21wcmVzc2VkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpcDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWFkUHJpbWFyeSA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChwMSA8IEJZVEVfRklSU1RfTk9OX0xBVElOX1BSSU1BUllfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAocDEgPiBtYXhSZWd1bGFyUHJpbWFyeQorICAgICAgICAgICAgICAgICAgICAvLz4gKFJ1bGVCYXNlZENvbGxhdG9yLlVDQV9DT05TVEFOVFNfLkxBU1RfTk9OX1ZBUklBQkxFX1swXQorICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Pj4gMjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHAxIDwgbWluSW1wbGljaXRQcmltYXJ5CisgICAgICAgICAgICAgICAgICAgIC8vPCAoUnVsZUJhc2VkQ29sbGF0b3IuVUNBX0NPTlNUQU5UU18uRklSU1RfSU1QTElDSVRfWzBdCisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4+PiAyNCkKKyAgICAgICAgICAgICAgICAgICAgKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgY29tcHJlc3NpYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRQcmltYXJ5ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlwMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlwMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAvLyBjb21wcmVzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRQcmltYXJ5ID0gcDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpcDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywgKGJ5dGUpcDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gY29udGludWF0aW9uLCBhZGQgcHJpbWFyeSB0byB0aGUga2V5LCBubyBjb21wcmVzc2lvbgorICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfLCAoYnl0ZSlwMSk7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHAyICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8sIChieXRlKXAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlY29uZCBwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxlYWRQcmltYXJ5OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHNlY29uZGFyeSBieXRlIGFuZCBhZGRzIGl0IHRvIHRoZSBzZWNvbmRhcnkgYnl0ZSBhcnJheQorICAgICAqIEBwYXJhbSBjZSBjdXJyZW50IGNlCisgICAgICogQHBhcmFtIG5vdElzQ29udGludWF0aW9uIGZsYWcgaW5kaWNhdGluZyBpZiB0aGUgY3VycmVudCBieXRlcyBiZWxvbmcgdG8KKyAgICAgKiAgICAgICAgICBhIGNvbnRpbnVhdGlvbiBjZQorICAgICAqIEBwYXJhbSBkb0ZyZW5jaCBmbGFnIGluZGljYXRvciBpZiBmcmVuY2ggc29ydCBpcyB0byBiZSBwZXJmb3JtZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgZG9TZWNvbmRhcnlCeXRlcyhpbnQgY2UsIGJvb2xlYW4gbm90SXNDb250aW51YXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkb0ZyZW5jaCkKKyAgICB7CisgICAgICAgIGludCBzID0gKGNlID4+PSA4KSAmIExBU1RfQllURV9NQVNLXzsgLy8gaW50IGZvciBjb21wYXJpc29uCisgICAgICAgIGlmIChzICE9IDApIHsKKyAgICAgICAgICAgIGlmICghZG9GcmVuY2gpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGNvbXByZXNzaW9uIGNvZGUuCisgICAgICAgICAgICAgICAgaWYgKHMgPT0gQ09NTU9OXzJfICYmIG5vdElzQ29udGludWF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQyXyArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3V0aWxDb3VudDJfID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMgPiBDT01NT05fMl8pIHsgLy8gbm90IG5lY2Vzc2FyeSBmb3IgNHRoIGxldmVsLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChtX3V0aWxDb3VudDJfID4gVE9QX0NPVU5UXzJfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMl8gPSBhcHBlbmQobV91dGlsQnl0ZXMyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9UT1BfMl8gLSBUT1BfQ09VTlRfMl8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDJfIC09IFRPUF9DT1VOVF8yXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMyXyA9IGFwcGVuZChtX3V0aWxCeXRlczJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9UT1BfMl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIChtX3V0aWxDb3VudDJfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQyXyA+IEJPVFRPTV9DT1VOVF8yXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczJfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8gKyBCT1RUT01fQ09VTlRfMl8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDJfIC09IEJPVFRPTV9DT1VOVF8yXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMyXyA9IGFwcGVuZChtX3V0aWxCeXRlczJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDJfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDJfID0gMDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczJfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMl8sIG1fdXRpbEJ5dGVzQ291bnQyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSlzKTsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMyXyA9IGFwcGVuZChtX3V0aWxCeXRlczJfLCBtX3V0aWxCeXRlc0NvdW50Ml8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKXMpOworICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDJfICsrOworICAgICAgICAgICAgICAgICAgLy8gRG8gdGhlIHNwZWNpYWwgaGFuZGxpbmcgZm9yIEZyZW5jaCBzZWNvbmRhcmllcworICAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBnZXQgY29udGludWF0aW9uIGVsZW1lbnRzIGFuZCBkbyBpbnRlcm1lZGlhdGUKKyAgICAgICAgICAgICAgICAgIC8vIHJlc3RvcmUKKyAgICAgICAgICAgICAgICAgIC8vIGFiYzFjMmMzZGUgd2l0aCBmcmVuY2ggc2Vjb25kYXJpZXMgbmVlZCB0byBiZSBlZGMxYzJjM2JhCisgICAgICAgICAgICAgICAgICAvLyBOT1QgZWRjM2MyYzFiYQorICAgICAgICAgICAgICAgICAgaWYgKG5vdElzQ29udGludWF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV91dGlsRnJlbmNoU3RhcnRfICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV2ZXJzZSBzZWNvbmRhcmllcyBmcm9tIGZyZW5jaFN0YXJ0UHRyIHVwIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnJlbmNoRW5kUHRyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2ZXJzZUJ1ZmZlcihtX3V0aWxCeXRlczJfKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxGcmVuY2hTdGFydF8gPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fdXRpbEZyZW5jaFN0YXJ0XyA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEZyZW5jaFN0YXJ0XyAgPSBtX3V0aWxCeXRlc0NvdW50Ml8gLSAyOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsRnJlbmNoRW5kXyA9IG1fdXRpbEJ5dGVzQ291bnQyXyAtIDE7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXZlcnNlIHRoZSBhcmd1bWVudCBidWZmZXIKKyAgICAgKiBAcGFyYW0gYnVmZmVyIHRvIHJldmVyc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmV2ZXJzZUJ1ZmZlcihieXRlIGJ1ZmZlcltdKQorICAgIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gbV91dGlsRnJlbmNoU3RhcnRfOworICAgICAgICBpbnQgZW5kID0gbV91dGlsRnJlbmNoRW5kXzsKKyAgICAgICAgd2hpbGUgKHN0YXJ0IDwgZW5kKSB7CisgICAgICAgICAgICBieXRlIGIgPSBidWZmZXJbc3RhcnRdOworICAgICAgICAgICAgYnVmZmVyW3N0YXJ0ICsrXSA9IGJ1ZmZlcltlbmRdOworICAgICAgICAgICAgYnVmZmVyW2VuZCAtLV0gPSBiOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5zZXJ0IHRoZSBjYXNlIHNoaWZ0aW5nIGJ5dGUgaWYgcmVxdWlyZWQKKyAgICAgKiBAcGFyYW0gY2FzZXNoaWZ0IHZhbHVlCisgICAgICogQHJldHVybiBuZXcgY2FzZXNoaWZ0IHZhbHVlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZG9DYXNlU2hpZnQoaW50IGNhc2VzaGlmdCkKKyAgICB7CisgICAgICAgIGlmIChjYXNlc2hpZnQgID09IDApIHsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzMF8gPSBhcHBlbmQobV91dGlsQnl0ZXMwXywgbV91dGlsQnl0ZXNDb3VudDBfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1JUX0NBU0VfQllURV9TVEFSVF8pOworICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDBfICsrOworICAgICAgICAgICAgY2FzZXNoaWZ0ID0gU09SVF9DQVNFX1NISUZUX1NUQVJUXzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2FzZXNoaWZ0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm1zIHRoZSBjYXNpbmcgc29ydAorICAgICAqIEBwYXJhbSB0ZXJ0aWFyeSBieXRlIGluIGludHMgZm9yIGVhc3kgY29tcGFyaXNvbgorICAgICAqIEBwYXJhbSBub3RJc0NvbnRpbnVhdGlvbiBmbGFnIGluZGljYXRpbmcgaWYgdGhlIGN1cnJlbnQgYnl0ZXMgYmVsb25nIHRvCisgICAgICogICAgICAgICAgYSBjb250aW51YXRpb24gY2UKKyAgICAgKiBAcGFyYW0gY2FzZXNoaWZ0CisgICAgICogQHJldHVybiB0aGUgbmV3IHZhbHVlIG9mIGNhc2Ugc2hpZnQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBkb0Nhc2VCeXRlcyhpbnQgdGVydGlhcnksIGJvb2xlYW4gbm90SXNDb250aW51YXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNhc2VzaGlmdCkKKyAgICB7CisgICAgICAgIGNhc2VzaGlmdCA9IGRvQ2FzZVNoaWZ0KGNhc2VzaGlmdCk7CisKKyAgICAgICAgaWYgKG5vdElzQ29udGludWF0aW9uICYmIHRlcnRpYXJ5ICE9IDApIHsKKyAgICAgICAgICAgIGJ5dGUgY2FzZWJpdHMgPSAoYnl0ZSkodGVydGlhcnkgJiAweEMwKTsKKyAgICAgICAgICAgIGlmIChtX2Nhc2VGaXJzdF8gPT0gQXR0cmlidXRlVmFsdWUuVVBQRVJfRklSU1RfKSB7CisgICAgICAgICAgICAgICAgaWYgKGNhc2ViaXRzID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMwX1ttX3V0aWxCeXRlc0NvdW50MF8gLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfD0gKDEgPDwgKC0tIGNhc2VzaGlmdCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIHNlY29uZCBiaXQKKyAgICAgICAgICAgICAgICAgICAgIGNhc2VzaGlmdCA9IGRvQ2FzZVNoaWZ0KGNhc2VzaGlmdCAtIDEpOworICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMwX1ttX3V0aWxCeXRlc0NvdW50MF8gLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfD0gKChjYXNlYml0cyA+PiA2KSAmIDEpIDw8ICgtLSBjYXNlc2hpZnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjYXNlYml0cyAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMF9bbV91dGlsQnl0ZXNDb3VudDBfIC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfD0gMSA8PCAoLS0gY2FzZXNoaWZ0KTsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2Vjb25kIGJpdAorICAgICAgICAgICAgICAgICAgICBjYXNlc2hpZnQgPSBkb0Nhc2VTaGlmdChjYXNlc2hpZnQpOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczBfW21fdXRpbEJ5dGVzQ291bnQwXyAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfD0gKChjYXNlYml0cyA+PiA3KSAmIDEpIDw8ICgtLSBjYXNlc2hpZnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZXNoaWZ0IC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjYXNlc2hpZnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGVydGlhcnkgYnl0ZSBhbmQgYWRkcyBpdCB0byB0aGUgdGVydGlhcnkgYnl0ZSBhcnJheQorICAgICAqIEBwYXJhbSB0ZXJ0aWFyeSBieXRlIGluIGludCBmb3IgZWFzeSBjb21wYXJpc29uCisgICAgICogQHBhcmFtIG5vdElzQ29udGludWF0aW9uIGZsYWcgaW5kaWNhdGluZyBpZiB0aGUgY3VycmVudCBieXRlcyBiZWxvbmcgdG8KKyAgICAgKiAgICAgICAgICBhIGNvbnRpbnVhdGlvbiBjZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBkb1RlcnRpYXJ5Qnl0ZXMoaW50IHRlcnRpYXJ5LCBib29sZWFuIG5vdElzQ29udGludWF0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKHRlcnRpYXJ5ICE9IDApIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgY29tcHJlc3Npb24gY29kZS4KKyAgICAgICAgICAgIC8vIHNlcXVlbmNlIHNpemUgY2hlY2sgaXMgaW5jbHVkZWQgaW4gdGhlIGlmIGNsYXVzZQorICAgICAgICAgICAgaWYgKHRlcnRpYXJ5ID09IG1fY29tbW9uM18gJiYgbm90SXNDb250aW51YXRpb24pIHsKKyAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQzXyArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBjb21tb24zID0gbV9jb21tb24zXyAmIExBU1RfQllURV9NQVNLXzsKKyAgICAgICAgICAgICAgICBpZiAodGVydGlhcnkgPiBjb21tb24zICYmIG1fY29tbW9uM18gPT0gQ09NTU9OX05PUk1BTF8zXykgeworICAgICAgICAgICAgICAgICAgICB0ZXJ0aWFyeSArPSBtX2FkZGl0aW9uM187CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRlcnRpYXJ5IDw9IGNvbW1vbjMKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiBtX2NvbW1vbjNfID09IENPTU1PTl9VUFBFUl9GSVJTVF8zXykgeworICAgICAgICAgICAgICAgICAgICB0ZXJ0aWFyeSAtPSBtX2FkZGl0aW9uM187CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtX3V0aWxDb3VudDNfID4gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGVydGlhcnkgPiBjb21tb24zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQzXyA+IG1fdG9wQ291bnQzXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzM18gPSBhcHBlbmQobV91dGlsQnl0ZXMzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKG1fdG9wM18gLSBtX3RvcENvdW50M18pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQzXyAtPSBtX3RvcENvdW50M187CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKG1fdG9wM18KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gKG1fdXRpbENvdW50M18gLSAxKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDNfICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG1fdXRpbENvdW50M18gPiBtX2JvdHRvbUNvdW50M18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShtX2JvdHRvbTNfICsgbV9ib3R0b21Db3VudDNfKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDNfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbENvdW50M18gLT0gbV9ib3R0b21Db3VudDNfOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMzXyA9IGFwcGVuZChtX3V0aWxCeXRlczNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShtX2JvdHRvbTNfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDNfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQzXyArKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDNfID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMzXyA9IGFwcGVuZChtX3V0aWxCeXRlczNfLCBtX3V0aWxCeXRlc0NvdW50M18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSl0ZXJ0aWFyeSk7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDNfICsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgUXVhdGVybmFyeSBieXRlIGFuZCBhZGRzIGl0IHRvIHRoZSBRdWF0ZXJuYXJ5IGJ5dGUgYXJyYXkKKyAgICAgKiBAcGFyYW0gaXNDb2RlUG9pbnRIaXJhZ2FuYSBmbGFnIGluZGljYXRvciBpZiB0aGUgcHJldmlvdXMgY29kZXBvaW50CisgICAgICogICAgICAgICAgd2UgZGVhbHQgd2l0aCB3YXMgSGlyYWdhbmEKKyAgICAgKiBAcGFyYW0gY29tbW9uQm90dG9tNCBzbWFsbGVzdCBjb21tb24gUXVhdGVybmFyeSBieXRlCisgICAgICogQHBhcmFtIGJvdHRvbUNvdW50NCBzbWFsbGVzdCBRdWF0ZXJuYXJ5IGJ5dGUKKyAgICAgKiBAcGFyYW0gaGlyYWdhbmE0IGhpcmFnYW5hIFF1YXRlcm5hcnkgYnl0ZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBkb1F1YXRlcm5hcnlCeXRlcyhib29sZWFuIGlzQ29kZVBvaW50SGlyYWdhbmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb21tb25Cb3R0b200LCBpbnQgYm90dG9tQ291bnQ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlIGhpcmFnYW5hNCkKKyAgICB7CisgICAgICAgIGlmIChpc0NvZGVQb2ludEhpcmFnYW5hKSB7IC8vIFRoaXMgd2FzIEhpcmFnYW5hLCBuZWVkIHRvIG5vdGUgaXQKKyAgICAgICAgICAgIGlmIChtX3V0aWxDb3VudDRfID4gMCkgeyAvLyBDbG9zZSB0aGlzIHBhcnQKKyAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQ0XyA+IGJvdHRvbUNvdW50NCkgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoY29tbW9uQm90dG9tNAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGJvdHRvbUNvdW50NCkpOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbENvdW50NF8gLT0gYm90dG9tQ291bnQ0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKGNvbW1vbkJvdHRvbTQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKG1fdXRpbENvdW50NF8gLSAxKSkpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ0XyArKzsKKyAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDRfID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzNF8gPSBhcHBlbmQobV91dGlsQnl0ZXM0XywgbV91dGlsQnl0ZXNDb3VudDRfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaXJhZ2FuYTQpOyAvLyBBZGQgdGhlIEhpcmFnYW5hCisgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50NF8gKys7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7IC8vIFRoaXMgd2Fzbid0IEhpcmFnYW5hLCBzbyB3ZSBjYW4gY29udGludWUgYWRkaW5nIHN0dWZmCisgICAgICAgICAgICBtX3V0aWxDb3VudDRfICsrOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSXRlcmF0ZXMgdGhyb3VnaCB0aGUgYXJndW1lbnQgc3RyaW5nIGZvciBhbGwgY2VzLgorICAgICAqIFNwbGl0IHRoZSBjZXMgaW50byB0aGVpciByZWxldmFudCBwcmltYXJpZXMsIHNlY29uZGFyaWVzIGV0Yy4KKyAgICAgKiBAcGFyYW0gc291cmNlIG5vcm1hbGl6ZWQgc3RyaW5nCisgICAgICogQHBhcmFtIGRvRnJlbmNoIGZsYWcgaW5kaWNhdG9yIGlmIHNwZWNpYWwgaGFuZGxpbmcgb2YgRnJlbmNoIGhhcyB0byBiZQorICAgICAqICAgICAgICAgICAgICAgICAgZG9uZQorICAgICAqIEBwYXJhbSBoaXJhZ2FuYTQgb2Zmc2V0IGZvciBIaXJhZ2FuYSBxdWF0ZXJuYXJ5CisgICAgICogQHBhcmFtIGNvbW1vbkJvdHRvbTQgc21hbGxlc3QgY29tbW9uIHF1YXRlcm5hcnkgYnl0ZQorICAgICAqIEBwYXJhbSBib3R0b21Db3VudDQgc21hbGxlc3QgcXVhdGVybmFyeSBieXRlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGdldFNvcnRLZXlCeXRlcyhTdHJpbmcgc291cmNlLCBib29sZWFuIGRvRnJlbmNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBoaXJhZ2FuYTQsIGludCBjb21tb25Cb3R0b200LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJvdHRvbUNvdW50NCkKKworICAgIHsKKyAgICAgICAgaW50IGJhY2t1cERlY29tcG9zaXRpb24gPSBnZXREZWNvbXBvc2l0aW9uKCk7CisgICAgICAgIHNldERlY29tcG9zaXRpb24oTk9fREVDT01QT1NJVElPTik7IC8vIGhhdmUgdG8gcmV2ZXJ0IHRvIGJhY2t1cCBsYXRlcgorICAgICAgICBtX3NyY1V0aWxJdGVyXy5zZXRUZXh0KHNvdXJjZSk7CisgICAgICAgIG1fc3JjVXRpbENvbEVJdGVyXy5zZXRUZXh0KG1fc3JjVXRpbEl0ZXJfKTsKKyAgICAgICAgbV91dGlsRnJlbmNoU3RhcnRfID0gLTE7CisgICAgICAgIG1fdXRpbEZyZW5jaEVuZF8gPSAtMTsKKworICAgICAgICAvLyBzY3JpcHRvcmRlciBub3QgaW1wbGVtZW50ZWQgeWV0CisgICAgICAgIC8vIGNvbnN0IHVpbnQ4X3QgKnNjcmlwdE9yZGVyID0gY29sbC0+c2NyaXB0T3JkZXI7CisKKyAgICAgICAgYm9vbGVhbiBkb1NoaWZ0ID0gZmFsc2U7CisgICAgICAgIGJvb2xlYW4gbm90SXNDb250aW51YXRpb24gPSBmYWxzZTsKKworICAgICAgICBpbnQgbGVhZFByaW1hcnkgPSAwOyAvLyBpbnQgZm9yIGVhc2llciBjb21wYXJpc29uCisgICAgICAgIGludCBjYXNlU2hpZnQgPSAwOworCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgY2UgPSBtX3NyY1V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbm90SXNDb250aW51YXRpb24gPSAhaXNDb250aW51YXRpb24oY2UpOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogaWYgKG5vdElzQ29udGludWF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzY3JpcHRPcmRlciAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5MSA9IHNjcmlwdE9yZGVyW3ByaW1hcnkxXTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0qLworICAgICAgICAgICAgYm9vbGVhbiBpc1ByaW1hcnlCeXRlSWdub3JhYmxlID0gKGNlICYgQ0VfUFJJTUFSWV9NQVNLXykgPT0gMDsKKyAgICAgICAgICAgIC8vIGFjdHVhbGx5IHdlIGNhbiBqdXN0IGNoZWNrIHRoYXQgdGhlIGZpcnN0IGJ5dGUgaXMgMAorICAgICAgICAgICAgLy8gZ2VuZXJhdGlvbiBzdHVmZnMgdGhlIG9yZGVyIGxlZnQgZmlyc3QKKyAgICAgICAgICAgIGJvb2xlYW4gaXNTbWFsbGVyVGhhblZhcmlhYmxlVG9wID0gKGNlID4+PiBDRV9QUklNQVJZX1NISUZUXykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD0gbV92YXJpYWJsZVRvcFZhbHVlXzsKKyAgICAgICAgICAgIGRvU2hpZnQgPSAobV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8KKyAgICAgICAgICAgICAgICAgICAgICAgICYmICgobm90SXNDb250aW51YXRpb24gJiYgaXNTbWFsbGVyVGhhblZhcmlhYmxlVG9wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIWlzUHJpbWFyeUJ5dGVJZ25vcmFibGUpIC8vIHByaW1hcnkgYnl0ZSBub3QgMAorICAgICAgICAgICAgICAgICAgICAgICAgfHwgKCFub3RJc0NvbnRpbnVhdGlvbiAmJiBkb1NoaWZ0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChkb1NoaWZ0ICYmIGlzUHJpbWFyeUJ5dGVJZ25vcmFibGUpKTsKKyAgICAgICAgICAgIGlmIChkb1NoaWZ0ICYmIGlzUHJpbWFyeUJ5dGVJZ25vcmFibGUpIHsKKyAgICAgICAgICAgICAgICAvLyBhbWVuZG1lbnQgdG8gdGhlIFVDQSBzYXlzIHRoYXQgcHJpbWFyeSBpZ25vcmFibGVzIGFuZCBvdGhlcgorICAgICAgICAgICAgICAgIC8vIGlnbm9yYWJsZXMgc2hvdWxkIGJlIHJlbW92ZWQgaWYgZm9sbG93aW5nIGEgc2hpZnRlZCBjb2RlCisgICAgICAgICAgICAgICAgLy8gcG9pbnQKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSB3ZXJlIHNoaWZ0ZWQgYW5kIHdlIGdvdCBhbiBpZ25vcmFibGUgY29kZSBwb2ludAorICAgICAgICAgICAgICAgIC8vIHdlIHNob3VsZCBqdXN0IGNvbXBsZXRlbHkgaWdub3JlIGl0CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsZWFkUHJpbWFyeSA9IGRvUHJpbWFyeUJ5dGVzKGNlLCBub3RJc0NvbnRpbnVhdGlvbiwgZG9TaGlmdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhZFByaW1hcnksIGNvbW1vbkJvdHRvbTQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbUNvdW50NCk7CisgICAgICAgICAgICBpZiAoZG9TaGlmdCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1fdXRpbENvbXBhcmUyXykgeworICAgICAgICAgICAgICAgIGRvU2Vjb25kYXJ5Qnl0ZXMoY2UsIG5vdElzQ29udGludWF0aW9uLCBkb0ZyZW5jaCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCB0ID0gY2UgJiBMQVNUX0JZVEVfTUFTS187CisgICAgICAgICAgICBpZiAoIW5vdElzQ29udGludWF0aW9uKSB7CisgICAgICAgICAgICAgICAgdCA9IGNlICYgQ0VfUkVNT1ZFX0NPTlRJTlVBVElPTl9NQVNLXzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG1fdXRpbENvbXBhcmUwXykgeworICAgICAgICAgICAgICAgIGNhc2VTaGlmdCA9IGRvQ2FzZUJ5dGVzKHQsIG5vdElzQ29udGludWF0aW9uLCBjYXNlU2hpZnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAobm90SXNDb250aW51YXRpb24pIHsKKyAgICAgICAgICAgICAgICAgdCBePSBtX2Nhc2VTd2l0Y2hfOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0ICY9IG1fbWFzazNfOworCisgICAgICAgICAgICBpZiAobV91dGlsQ29tcGFyZTNfKSB7CisgICAgICAgICAgICAgICAgZG9UZXJ0aWFyeUJ5dGVzKHQsIG5vdElzQ29udGludWF0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG1fdXRpbENvbXBhcmU0XyAmJiBub3RJc0NvbnRpbnVhdGlvbikgeyAvLyBjb21wYXJlIHF1YWQKKyAgICAgICAgICAgICAgICBkb1F1YXRlcm5hcnlCeXRlcyhtX3NyY1V0aWxDb2xFSXRlcl8ubV9pc0NvZGVQb2ludEhpcmFnYW5hXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb25Cb3R0b200LCBib3R0b21Db3VudDQsIGhpcmFnYW5hNCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc2V0RGVjb21wb3NpdGlvbihiYWNrdXBEZWNvbXBvc2l0aW9uKTsgLy8gcmV2ZXJ0cyB0byBvcmlnaW5hbAorICAgICAgICBpZiAobV91dGlsRnJlbmNoU3RhcnRfICE9IC0xKSB7CisgICAgICAgICAgICAvLyBvbmUgbGFzdCByb3VuZCBvZiBjaGVja3MKKyAgICAgICAgICAgIHJldmVyc2VCdWZmZXIobV91dGlsQnl0ZXMyXyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGcm9tIHRoZSBpbmRpdmlkdWFsIHN0cmVuZ3RoIGJ5dGUgcmVzdWx0cyB0aGUgZmluYWwgY29tcGFjdCBzb3J0a2V5CisgICAgICogd2lsbCBiZSBjYWxjdWxhdGVkLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gZG9GcmVuY2ggZmxhZyBpbmRpY2F0aW5nIHRoYXQgc3BlY2lhbCBoYW5kbGluZyBvZiBGcmVuY2ggaGFzIHRvCisgICAgICogICAgICAgICAgICAgICAgICBiZSBkb25lCisgICAgICogQHBhcmFtIGNvbW1vbkJvdHRvbTQgc21hbGxlc3QgY29tbW9uIHF1YXRlcm5hcnkgYnl0ZQorICAgICAqIEBwYXJhbSBib3R0b21Db3VudDQgc21hbGxlc3QgcXVhdGVybmFyeSBieXRlCisgICAgICogQHBhcmFtIGtleSBvdXRwdXQgUmF3Q29sbGF0aW9uS2V5IHRvIHN0b3JlIHJlc3VsdHMsIGtleSBjYW5ub3QgYmUgbnVsbAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBnZXRTb3J0S2V5KFN0cmluZyBzb3VyY2UsIGJvb2xlYW4gZG9GcmVuY2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29tbW9uQm90dG9tNCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYm90dG9tQ291bnQ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmF3Q29sbGF0aW9uS2V5IGtleSkKKyAgICB7CisgICAgICAgIC8vIHdlIGhhdmUgZG9uZSBhbGwgdGhlIENFJ3MsIG5vdyBsZXQncyBwdXQgdGhlbSB0b2dldGhlciB0byBmb3JtCisgICAgICAgIC8vIGEga2V5CisgICAgICAgIGlmIChtX3V0aWxDb21wYXJlMl8pIHsKKyAgICAgICAgICAgIGRvU2Vjb25kYXJ5KGRvRnJlbmNoKTsKKyAgICAgICAgICAgIGlmIChtX3V0aWxDb21wYXJlMF8pIHsKKyAgICAgICAgICAgICAgICBkb0Nhc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtX3V0aWxDb21wYXJlM18pIHsKKyAgICAgICAgICAgICAgICBkb1RlcnRpYXJ5KCk7CisgICAgICAgICAgICAgICAgaWYgKG1fdXRpbENvbXBhcmU0XykgeworICAgICAgICAgICAgICAgICAgICBkb1F1YXRlcm5hcnkoY29tbW9uQm90dG9tNCwgYm90dG9tQ291bnQ0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fdXRpbENvbXBhcmU1XykgeworICAgICAgICAgICAgICAgICAgICAgICAgZG9JZGVudGljYWwoc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLCAoYnl0ZSkwKTsKKyAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworCisgICAgICAgIGtleS5zZXQobV91dGlsQnl0ZXMxXywgMCwgbV91dGlsQnl0ZXNDb3VudDFfKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYWNrcyB0aGUgRnJlbmNoIGJ5dGVzCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGRvRnJlbmNoKCkKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV91dGlsQnl0ZXNDb3VudDJfOyBpICsrKSB7CisgICAgICAgICAgICBieXRlIHMgPSBtX3V0aWxCeXRlczJfW21fdXRpbEJ5dGVzQ291bnQyXyAtIGkgLSAxXTsKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgY29tcHJlc3Npb24gY29kZS4KKyAgICAgICAgICAgIGlmIChzID09IENPTU1PTl8yXykgeworICAgICAgICAgICAgICAgICsrIG1fdXRpbENvdW50Ml87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAobV91dGlsQ291bnQyXyA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZ2V0dGluZyB0aGUgdW5zaWduZWQgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgaWYgKChzICYgTEFTVF9CWVRFX01BU0tfKSA+IENPTU1PTl8yXykgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90IG5lY2Vzc2FyeSBmb3IgNHRoIGxldmVsLgorICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG1fdXRpbENvdW50Ml8gPiBUT1BfQ09VTlRfMl8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9UT1BfMl8gLSBUT1BfQ09VTlRfMl8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQ291bnQyXyAtPSBUT1BfQ09VTlRfMl87CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9UT1BfMl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gKG1fdXRpbENvdW50Ml8gLSAxKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG1fdXRpbENvdW50Ml8gPiBCT1RUT01fQ09VTlRfMl8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShDT01NT05fQk9UVE9NXzJfICsgQk9UVE9NX0NPVU5UXzJfKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbENvdW50Ml8gLT0gQk9UVE9NX0NPVU5UXzJfOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShDT01NT05fQk9UVE9NXzJfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDJfIC0gMSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDJfID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sIHMpOworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAobV91dGlsQ291bnQyXyA+IDApIHsKKyAgICAgICAgICAgIHdoaWxlIChtX3V0aWxDb3VudDJfID4gQk9UVE9NX0NPVU5UXzJfKSB7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkoQ09NTU9OX0JPVFRPTV8yXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgQk9UVE9NX0NPVU5UXzJfKSk7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICAgICAgICAgIG1fdXRpbENvdW50Ml8gLT0gQk9UVE9NX0NPVU5UXzJfOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShDT01NT05fQk9UVE9NXzJfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAobV91dGlsQ291bnQyXyAtIDEpKSk7CisgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYWN0cyB0aGUgc2Vjb25kYXJ5IGJ5dGVzIGFuZCBzdG9yZXMgdGhlbSBpbnRvIHRoZSBwcmltYXJ5IGFycmF5CisgICAgICogQHBhcmFtIGRvRnJlbmNoIGZsYWcgaW5kaWNhdG9yIHRoYXQgRnJlbmNoIGhhcyB0byBiZSBoYW5kbGVkIHNwZWNpYWxseQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBkb1NlY29uZGFyeShib29sZWFuIGRvRnJlbmNoKQorICAgIHsKKyAgICAgICAgaWYgKG1fdXRpbENvdW50Ml8gPiAwKSB7CisgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQyXyA+IEJPVFRPTV9DT1VOVF8yXykgeworICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzMl8gPSBhcHBlbmQobV91dGlsQnl0ZXMyXywgbV91dGlsQnl0ZXNDb3VudDJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBCT1RUT01fQ09VTlRfMl8pKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8gKys7CisgICAgICAgICAgICAgICAgbV91dGlsQ291bnQyXyAtPSBCT1RUT01fQ09VTlRfMl87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX3V0aWxCeXRlczJfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMl8sIG1fdXRpbEJ5dGVzQ291bnQyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKENPTU1PTl9CT1RUT01fMl8gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtX3V0aWxDb3VudDJfIC0gMSkpKTsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQyXyArKzsKKyAgICAgICAgfQorCisgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPUlRfTEVWRUxfVEVSTUlOQVRPUl8pOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisKKyAgICAgICAgaWYgKGRvRnJlbmNoKSB7IC8vIGRvIHRoZSByZXZlcnNlIGNvcHkKKyAgICAgICAgICAgIGRvRnJlbmNoKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAobV91dGlsQnl0ZXMxXy5sZW5ndGggPD0gbV91dGlsQnl0ZXNDb3VudDFfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBtX3V0aWxCeXRlc0NvdW50Ml8pIHsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gaW5jcmVhc2UobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50Ml8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShtX3V0aWxCeXRlczJfLCAwLCBtX3V0aWxCeXRlczFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8sIG1fdXRpbEJ5dGVzQ291bnQyXyk7CisgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKz0gbV91dGlsQnl0ZXNDb3VudDJfOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5jcmVhc2UgYnVmZmVyIHNpemUKKyAgICAgKiBAcGFyYW0gYnVmZmVyIGFycmF5IG9mIGJ5dGVzCisgICAgICogQHBhcmFtIHNpemUgb2YgdGhlIGJ5dGUgYXJyYXkKKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50c2l6ZSBzaXplIHRvIGluY3JlYXNlCisgICAgICogQHJldHVybiB0aGUgbmV3IGJ1ZmZlcgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGVbXSBpbmNyZWFzZShieXRlIGJ1ZmZlcltdLCBpbnQgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluY3JlbWVudHNpemUpCisgICAgeworICAgICAgICBieXRlIHJlc3VsdFtdID0gbmV3IGJ5dGVbYnVmZmVyLmxlbmd0aCArIGluY3JlbWVudHNpemVdOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ1ZmZlciwgMCwgcmVzdWx0LCAwLCBzaXplKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbmNyZWFzZSBidWZmZXIgc2l6ZQorICAgICAqIEBwYXJhbSBidWZmZXIgYXJyYXkgb2YgaW50cworICAgICAqIEBwYXJhbSBzaXplIG9mIHRoZSBieXRlIGFycmF5CisgICAgICogQHBhcmFtIGluY3JlbWVudHNpemUgc2l6ZSB0byBpbmNyZWFzZQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBidWZmZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXSBpbmNyZWFzZShpbnQgYnVmZmVyW10sIGludCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbmNyZW1lbnRzaXplKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdFtdID0gbmV3IGludFtidWZmZXIubGVuZ3RoICsgaW5jcmVtZW50c2l6ZV07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLCAwLCByZXN1bHQsIDAsIHNpemUpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhY3RzIHRoZSBjYXNlIGJ5dGVzIGFuZCBzdG9yZXMgdGhlbSBpbnRvIHRoZSBwcmltYXJ5IGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGRvQ2FzZSgpCisgICAgeworICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1JUX0xFVkVMX1RFUk1JTkFUT1JfKTsKKyAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICBpZiAobV91dGlsQnl0ZXMxXy5sZW5ndGggPD0gbV91dGlsQnl0ZXNDb3VudDFfICsgbV91dGlsQnl0ZXNDb3VudDBfKSB7CisgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gaW5jcmVhc2UobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQwXyk7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShtX3V0aWxCeXRlczBfLCAwLCBtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDBfKTsKKyAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICs9IG1fdXRpbEJ5dGVzQ291bnQwXzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYWN0cyB0aGUgdGVydGlhcnkgYnl0ZXMgYW5kIHN0b3JlcyB0aGVtIGludG8gdGhlIHByaW1hcnkgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgZG9UZXJ0aWFyeSgpCisgICAgeworICAgICAgICBpZiAobV91dGlsQ291bnQzXyA+IDApIHsKKyAgICAgICAgICAgIGlmIChtX2NvbW1vbjNfICE9IENPTU1PTl9CT1RUT01fM18pIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQzXyA+PSBtX3RvcENvdW50M18pIHsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMzXyA9IGFwcGVuZChtX3V0aWxCeXRlczNfLCBtX3V0aWxCeXRlc0NvdW50M18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUpKG1fdG9wM18gLSBtX3RvcENvdW50M18pKTsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDNfICsrOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxDb3VudDNfIC09IG1fdG9wQ291bnQzXzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXMzXyA9IGFwcGVuZChtX3V0aWxCeXRlczNfLCBtX3V0aWxCeXRlc0NvdW50M18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkobV90b3AzXyAtIG1fdXRpbENvdW50M18pKTsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAobV91dGlsQ291bnQzXyA+IG1fYm90dG9tQ291bnQzXykgeworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sIG1fdXRpbEJ5dGVzQ291bnQzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSkobV9ib3R0b20zXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIG1fYm90dG9tQ291bnQzXykpOworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18gKys7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbENvdW50M18gLT0gbV9ib3R0b21Db3VudDNfOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczNfID0gYXBwZW5kKG1fdXRpbEJ5dGVzM18sIG1fdXRpbEJ5dGVzQ291bnQzXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShtX2JvdHRvbTNfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAobV91dGlsQ291bnQzXyAtIDEpKSk7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDNfICsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBhcHBlbmQobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPUlRfTEVWRUxfVEVSTUlOQVRPUl8pOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKys7CisgICAgICAgIGlmIChtX3V0aWxCeXRlczFfLmxlbmd0aCA8PSBtX3V0aWxCeXRlc0NvdW50MV8gKyBtX3V0aWxCeXRlc0NvdW50M18pIHsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBpbmNyZWFzZShtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDNfKTsKKyAgICAgICAgfQorICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KG1fdXRpbEJ5dGVzM18sIDAsIG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICBtX3V0aWxCeXRlc0NvdW50M18pOworICAgICAgICBtX3V0aWxCeXRlc0NvdW50MV8gKz0gbV91dGlsQnl0ZXNDb3VudDNfOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhY3RzIHRoZSBxdWF0ZXJuYXJ5IGJ5dGVzIGFuZCBzdG9yZXMgdGhlbSBpbnRvIHRoZSBwcmltYXJ5IGFycmF5CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIGRvUXVhdGVybmFyeShpbnQgY29tbW9uYm90dG9tNCwgaW50IGJvdHRvbWNvdW50NCkKKyAgICB7CisgICAgICAgIGlmIChtX3V0aWxDb3VudDRfID4gMCkgeworICAgICAgICAgICAgd2hpbGUgKG1fdXRpbENvdW50NF8gPiBib3R0b21jb3VudDQpIHsKKyAgICAgICAgICAgICAgICBtX3V0aWxCeXRlczRfID0gYXBwZW5kKG1fdXRpbEJ5dGVzNF8sIG1fdXRpbEJ5dGVzQ291bnQ0XywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShjb21tb25ib3R0b200ICsgYm90dG9tY291bnQ0KSk7CisgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDRfICsrOworICAgICAgICAgICAgICAgIG1fdXRpbENvdW50NF8gLT0gYm90dG9tY291bnQ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV91dGlsQnl0ZXM0XyA9IGFwcGVuZChtX3V0aWxCeXRlczRfLCBtX3V0aWxCeXRlc0NvdW50NF8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChieXRlKShjb21tb25ib3R0b200CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChtX3V0aWxDb3VudDRfIC0gMSkpKTsKKyAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ0XyArKzsKKyAgICAgICAgfQorICAgICAgICBtX3V0aWxCeXRlczFfID0gYXBwZW5kKG1fdXRpbEJ5dGVzMV8sIG1fdXRpbEJ5dGVzQ291bnQxXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTT1JUX0xFVkVMX1RFUk1JTkFUT1JfKTsKKyAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICsrOworICAgICAgICBpZiAobV91dGlsQnl0ZXMxXy5sZW5ndGggPD0gbV91dGlsQnl0ZXNDb3VudDFfICsgbV91dGlsQnl0ZXNDb3VudDRfKSB7CisgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gaW5jcmVhc2UobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQ0Xyk7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShtX3V0aWxCeXRlczRfLCAwLCBtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDRfKTsKKyAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfICs9IG1fdXRpbEJ5dGVzQ291bnQ0XzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWFscyB3aXRoIHRoZSBpZGVudGljYWwgc29ydC4KKyAgICAgKiBBcHBlbmRzIHRoZSBCT0NTVSB2ZXJzaW9uIG9mIHRoZSBzb3VyY2Ugc3RyaW5nIHRvIHRoZSBlbmRzIG9mIHRoZQorICAgICAqIGJ5dGUgYnVmZmVyLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCBzdHJpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgZG9JZGVudGljYWwoU3RyaW5nIHNvdXJjZSkKKyAgICB7CisgICAgICAgIGludCBpc2l6ZSA9IEJPQ1UuZ2V0Q29tcHJlc3Npb25MZW5ndGgoc291cmNlKTsKKyAgICAgICAgbV91dGlsQnl0ZXMxXyA9IGFwcGVuZChtX3V0aWxCeXRlczFfLCBtX3V0aWxCeXRlc0NvdW50MV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU09SVF9MRVZFTF9URVJNSU5BVE9SXyk7CisgICAgICAgIG1fdXRpbEJ5dGVzQ291bnQxXyArKzsKKyAgICAgICAgaWYgKG1fdXRpbEJ5dGVzMV8ubGVuZ3RoIDw9IG1fdXRpbEJ5dGVzQ291bnQxXyArIGlzaXplKSB7CisgICAgICAgICAgICBtX3V0aWxCeXRlczFfID0gaW5jcmVhc2UobV91dGlsQnl0ZXMxXywgbV91dGlsQnl0ZXNDb3VudDFfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKyBpc2l6ZSk7CisgICAgICAgIH0KKyAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfID0gQk9DVS5jb21wcmVzcyhzb3VyY2UsIG1fdXRpbEJ5dGVzMV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsQnl0ZXNDb3VudDFfKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBvZmZzZXQgb2YgdGhlIGZpcnN0IHVubWF0Y2hlZCBjaGFyYWN0ZXJzIGluIHNvdXJjZSBhbmQgdGFyZ2V0LgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIG9mZnNldCBvZiB0aGUgc3RhcnQgb2YgYSBjb250cmFjdGlvbiBvciBhCisgICAgICogY29tYmluaW5nIHNlcXVlbmNlLCBpZiB0aGUgZmlyc3QgZGlmZmVyZW5jZSBpcyBpbiB0aGUgbWlkZGxlIG9mIHN1Y2ggYQorICAgICAqIHNlcXVlbmNlLgorICAgICAqIEBwYXJhbSBzb3VyY2Ugc3RyaW5nCisgICAgICogQHBhcmFtIHRhcmdldCBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIG9mZnNldCBvZiB0aGUgZmlyc3QgdW5tYXRjaGVkIGNoYXJhY3RlcnMgaW4gc291cmNlIGFuZCB0YXJnZXQuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0Rmlyc3RVbm1hdGNoZWRPZmZzZXQoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCkKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBpbnQgc2xlbmd0aCA9IHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgaW50IHRsZW5ndGggPSB0YXJnZXQubGVuZ3RoKCk7CisgICAgICAgIGludCBtaW5sZW5ndGggPSBzbGVuZ3RoOworICAgICAgICBpZiAobWlubGVuZ3RoID4gdGxlbmd0aCkgeworICAgICAgICAgICAgbWlubGVuZ3RoID0gdGxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAocmVzdWx0IDwgbWlubGVuZ3RoCisgICAgICAgICAgICAgICAgJiYgc291cmNlLmNoYXJBdChyZXN1bHQpID09IHRhcmdldC5jaGFyQXQocmVzdWx0KSkgeworICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQgPiAwKSB7CisgICAgICAgICAgICAvLyBUaGVyZSBpcyBhbiBpZGVudGljYWwgcG9ydGlvbiBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0d28KKyAgICAgICAgICAgIC8vIHN0cmluZ3MuIElmIHRoZSBpZGVudGljYWwgcG9ydGlvbiBlbmRzIHdpdGhpbiBhIGNvbnRyYWN0aW9uIG9yIGEKKyAgICAgICAgICAgIC8vIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVuY2UsIGJhY2sgdXAgdG8gdGhlIHN0YXJ0IG9mIHRoYXQKKyAgICAgICAgICAgIC8vIHNlcXVlbmNlLgorICAgICAgICAgICAgY2hhciBzY2hhciA9IDA7CisgICAgICAgICAgICBjaGFyIHRjaGFyID0gMDsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPCBtaW5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBzY2hhciA9IHNvdXJjZS5jaGFyQXQocmVzdWx0KTsgLy8gZmlyc3QgZGlmZmVyaW5nIGNoYXJzCisgICAgICAgICAgICAgICAgdGNoYXIgPSB0YXJnZXQuY2hhckF0KHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzY2hhciA9IHNvdXJjZS5jaGFyQXQobWlubGVuZ3RoIC0gMSk7CisgICAgICAgICAgICAgICAgaWYgKGlzVW5zYWZlKHNjaGFyKSkgeworICAgICAgICAgICAgICAgICAgICB0Y2hhciA9IHNjaGFyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChzbGVuZ3RoID09IHRsZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNsZW5ndGggPCB0bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIHRjaGFyID0gdGFyZ2V0LmNoYXJBdChyZXN1bHQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2NoYXIgPSBzb3VyY2UuY2hhckF0KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzVW5zYWZlKHNjaGFyKSB8fCBpc1Vuc2FmZSh0Y2hhcikpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gV2UgYXJlIHN0b3BwZWQgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW9uIG9yIGNvbWJpbmluZworICAgICAgICAgICAgICAgIC8vIHNlcXVlbmNlLgorICAgICAgICAgICAgICAgIC8vIExvb2sgYmFja3dhcmRzIGZvciB0aGUgcGFydCBvZiB0aGUgc3RyaW5nIGZvciB0aGUgc3RhcnQgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgc2VxdWVuY2UKKyAgICAgICAgICAgICAgICAvLyBJdCBkb2Vzbid0IG1hdHRlciB3aGljaCBzdHJpbmcgd2Ugc2Nhbiwgc2luY2UgdGhleSBhcmUgdGhlCisgICAgICAgICAgICAgICAgLy8gc2FtZSBpbiB0aGlzIHJlZ2lvbi4KKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCAtLTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUgKHJlc3VsdCA+IDAgJiYgaXNVbnNhZmUoc291cmNlLmNoYXJBdChyZXN1bHQpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmRpbmcgYW4gYnl0ZSB0byBhbiBhcnJheSBvZiBieXRlcyBhbmQgaW5jcmVhc2VzIGl0IGlmIHdlIHJ1biBvdXQgb2YKKyAgICAgKiBzcGFjZQorICAgICAqIEBwYXJhbSBhcnJheSBvZiBieXRlIGFycmF5cworICAgICAqIEBwYXJhbSBhcHBlbmRpbmRleCBpbmRleCBpbiB0aGUgYnl0ZSBhcnJheSB0byBhcHBlbmQKKyAgICAgKiBAcGFyYW0gdmFsdWUgdG8gYXBwZW5kCisgICAgICogQHJldHVybiBhcnJheSBpZiBhcnJheSBzaXplIGNhbiBhY2NvbW9kYXRlIHRoZSBuZXcgdmFsdWUsIG90aGVyd2lzZQorICAgICAqICAgICAgICAgYSBiaWdnZXIgYXJyYXkgd2lsbCBiZSBjcmVhdGVkIGFuZCByZXR1cm5lZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGVbXSBhcHBlbmQoYnl0ZSBhcnJheVtdLCBpbnQgYXBwZW5kaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlIHZhbHVlKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGFycmF5W2FwcGVuZGluZGV4XSA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgYXJyYXkgPSBpbmNyZWFzZShhcnJheSwgYXBwZW5kaW5kZXgsIFNPUlRfQlVGRkVSX0lOSVRfU0laRV8pOworICAgICAgICAgICAgYXJyYXlbYXBwZW5kaW5kZXhdID0gdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgYSB0cmljayBzdHJpbmcgY29tcGFyZSBmdW5jdGlvbiB0aGF0IGdvZXMgaW4gYW5kIHVzZXMgc29ydGtleXMKKyAgICAgKiB0byBjb21wYXJlLiBJdCBpcyB1c2VkIHdoZW4gY29tcGFyZSBnZXRzIGluIHRyb3VibGUgYW5kIG5lZWRzIHRvIGJhaWwKKyAgICAgKiBvdXQuCisgICAgICogQHBhcmFtIHNvdXJjZSB0ZXh0IHN0cmluZworICAgICAqIEBwYXJhbSB0YXJnZXQgdGV4dCBzdHJpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBjb21wYXJlQnlTb3J0S2V5cyhTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0KQorCisgICAgeworICAgICAgICBtX3V0aWxSYXdDb2xsYXRpb25LZXlfID0gZ2V0UmF3Q29sbGF0aW9uS2V5KHNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91dGlsUmF3Q29sbGF0aW9uS2V5Xyk7CisgICAgICAgIC8vIHRoaXMgbWV0aG9kIGlzIHZlcnkgc2VsZG9tIGNhbGxlZAorICAgICAgICBSYXdDb2xsYXRpb25LZXkgdGFyZ2V0a2V5ID0gZ2V0UmF3Q29sbGF0aW9uS2V5KHRhcmdldCwgbnVsbCk7CisgICAgICAgIHJldHVybiBtX3V0aWxSYXdDb2xsYXRpb25LZXlfLmNvbXBhcmVUbyh0YXJnZXRrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBlcmZvcm1zIHRoZSBwcmltYXJ5IGNvbXBhcmlzb25zLCBhbmQgZmlsbHMgdXAgdGhlIENFIGJ1ZmZlciBhdCB0aGUKKyAgICAgKiBzYW1lIHRpbWUuCisgICAgICogVGhlIHJldHVybiB2YWx1ZSB0b2dnbGVzIGJldHdlZW4gdGhlIGNvbXBhcmlzb24gcmVzdWx0IGFuZCB0aGUgaGlyYWdhbmEKKyAgICAgKiByZXN1bHQuIElmIGVpdGhlciB0aGUgc291cmNlIGlzIGdyZWF0ZXIgdGhhbiB0YXJnZXQgb3IgdmljZSB2ZXJzYSwgdGhlCisgICAgICogcmV0dXJuIHJlc3VsdCBpcyB0aGUgY29tcGFyaXNvbiByZXN1bHQsIGllIDEgb3IgLTEsIGZ1cnRoZXJtb3JlIHRoZQorICAgICAqIGNlYnVmZmVycyB3aWxsIGJlIGNsZWFyZWQgd2hlbiB0aGF0IGhhcHBlbnMuIElmIHRoZSBwcmltYXJ5IGNvbXBhcmlzb25zCisgICAgICogYXJlIGVxdWFsLCB3ZSdsbCBoYXZlIHRvIGNvbnRpbnVlIHdpdGggc2Vjb25kYXJ5IGNvbXBhcmlzb24uIEluIHRoaXMgY2FzZQorICAgICAqIHRoZSBjZWJ1ZmZlciB3aWxsIG5vdCBiZSBjbGVhcmVkIGFuZCB0aGUgcmV0dXJuIHJlc3VsdCB3aWxsIGJlIHRoZQorICAgICAqIGhpcmFnYW5hIHJlc3VsdC4KKyAgICAgKiBAcGFyYW0gZG9IaXJhZ2FuYTQgZmxhZyBpbmRpY2F0b3IgdGhhdCBIaXJhZ2FuYSBRdWF0ZXJuYXJ5IGhhcyB0byBiZQorICAgICAqICAgICAgICAgICAgICAgICAgb2JzZXJ2ZWQKKyAgICAgKiBAcGFyYW0gbG93ZXN0cHZhbHVlIHRoZSBsb3dlc3QgcHJpbWFyeSB2YWx1ZSB0aGF0IHdpbGwgbm90IGJlIGlnbm9yZWQgaWYKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGUgaGFuZGxpbmcgaXMgc2hpZnRlZAorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCBzdHJpbmcKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRleHQgc3RyaW5nCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgb2Zmc2V0IGluIHRleHQgdG8gc3RhcnQgdGhlIGNvbXBhcmlzb24KKyAgICAgKiBAcmV0dXJuIGNvbXBhcmlvbiByZXN1bHQgaWYgYSBwcmltYXJ5IGRpZmZlcmVuY2UgaXMgZm91bmQsIG90aGVyd2lzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgIGhpcmFnYW5hIHJlc3VsdAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGRvUHJpbWFyeUNvbXBhcmUoYm9vbGVhbiBkb0hpcmFnYW5hNCwgaW50IGxvd2VzdHB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0ZXh0b2Zmc2V0KQorCisgICAgeworICAgICAgICAvLyBQcmVwYXJpbmcgdGhlIGNvbnRleHQgb2JqZWN0cyBmb3IgaXRlcmF0aW5nIG92ZXIgc3RyaW5ncworICAgICAgICBtX3NyY1V0aWxJdGVyXy5zZXRUZXh0KHNvdXJjZSk7CisgICAgICAgIG1fc3JjVXRpbENvbEVJdGVyXy5zZXRUZXh0KG1fc3JjVXRpbEl0ZXJfLCB0ZXh0b2Zmc2V0KTsKKyAgICAgICAgbV90Z3RVdGlsSXRlcl8uc2V0VGV4dCh0YXJnZXQpOworICAgICAgICBtX3RndFV0aWxDb2xFSXRlcl8uc2V0VGV4dChtX3RndFV0aWxJdGVyXywgdGV4dG9mZnNldCk7CisKKyAgICAgICAgLy8gTm9uIHNoaWZ0ZWQgcHJpbWFyeSBwcm9jZXNzaW5nIGlzIHF1aXRlIHNpbXBsZQorICAgICAgICBpZiAoIW1faXNBbHRlcm5hdGVIYW5kbGluZ1NoaWZ0ZWRfKSB7CisgICAgICAgICAgICBpbnQgaGlyYWdhbmFyZXN1bHQgPSAwOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpbnQgc29yZGVyID0gMDsKKyAgICAgICAgICAgICAgICAvLyBXZSBmZXRjaCBDRXMgdW50aWwgd2UgaGl0IGEgbm9uIGlnbm9yYWJsZSBwcmltYXJ5IG9yIGVuZC4KKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIHNvcmRlciA9IG1fc3JjVXRpbENvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIG1fc3JjVXRpbENFQnVmZmVyXyA9IGFwcGVuZChtX3NyY1V0aWxDRUJ1ZmZlcl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NyY1V0aWxDRUJ1ZmZlclNpemVfLCBzb3JkZXIpOworICAgICAgICAgICAgICAgICAgICBtX3NyY1V0aWxDRUJ1ZmZlclNpemVfICsrOworICAgICAgICAgICAgICAgICAgICBzb3JkZXIgJj0gQ0VfUFJJTUFSWV9NQVNLXzsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChzb3JkZXIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSk7CisKKyAgICAgICAgICAgICAgICBpbnQgdG9yZGVyID0gMDsKKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIHRvcmRlciA9IG1fdGd0VXRpbENvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIG1fdGd0VXRpbENFQnVmZmVyXyA9IGFwcGVuZChtX3RndFV0aWxDRUJ1ZmZlcl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3RndFV0aWxDRUJ1ZmZlclNpemVfLCB0b3JkZXIpOworICAgICAgICAgICAgICAgICAgICBtX3RndFV0aWxDRUJ1ZmZlclNpemVfICsrOworICAgICAgICAgICAgICAgICAgICB0b3JkZXIgJj0gQ0VfUFJJTUFSWV9NQVNLXzsKKyAgICAgICAgICAgICAgICB9IHdoaWxlICh0b3JkZXIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSk7CisKKyAgICAgICAgICAgICAgICAvLyBpZiBib3RoIHByaW1hcmllcyBhcmUgdGhlIHNhbWUKKyAgICAgICAgICAgICAgICBpZiAoc29yZGVyID09IHRvcmRlcikgeworICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlcmUgYXJlIG5vIG1vcmUgQ0VzLCB3ZSBhZHZhbmNlIHRvIHRoZSBuZXh0IGxldmVsCisgICAgICAgICAgICAgICAgICAgIC8vIHNlZSBpZiB3ZSBhcmUgYXQgdGhlIGVuZCBvZiBlaXRoZXIgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgIGlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bbV9zcmNVdGlsQ0VCdWZmZXJTaXplXyAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fdGd0VXRpbENFQnVmZmVyX1ttX3RndFV0aWxDRUJ1ZmZlclNpemVfIC0gMV0gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1fdGd0VXRpbENFQnVmZmVyX1ttX3RndFV0aWxDRUJ1ZmZlclNpemVfIC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGRvSGlyYWdhbmE0ICYmIGhpcmFnYW5hcmVzdWx0ID09IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIG1fc3JjVXRpbENvbEVJdGVyXy5tX2lzQ29kZVBvaW50SGlyYWdhbmFfICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV90Z3RVdGlsQ29sRUl0ZXJfLm1faXNDb2RlUG9pbnRIaXJhZ2FuYV8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtX3NyY1V0aWxDb2xFSXRlcl8ubV9pc0NvZGVQb2ludEhpcmFnYW5hXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpcmFnYW5hcmVzdWx0ID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaXJhZ2FuYXJlc3VsdCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHR3byBwcmltYXJpZXMgYXJlIGRpZmZlcmVudCwgd2UgYXJlIGRvbmUKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVuZFByaW1hcnlDb21wYXJlKHNvcmRlciwgdG9yZGVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBubyBwcmltYXJ5IGRpZmZlcmVuY2UuLi4gZG8gdGhlIHJlc3QgZnJvbSB0aGUgYnVmZmVycworICAgICAgICAgICAgcmV0dXJuIGhpcmFnYW5hcmVzdWx0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeyAvLyBzaGlmdGVkIC0gZG8gYSBzbGlnaHRseSBtb3JlIGNvbXBsaWNhdGVkIHByb2Nlc3NpbmcgOikKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgaW50IHNvcmRlciA9IGdldFByaW1hcnlTaGlmdGVkQ29tcGFyZUNFKG1fc3JjVXRpbENvbEVJdGVyXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG93ZXN0cHZhbHVlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpbnQgdG9yZGVyID0gZ2V0UHJpbWFyeVNoaWZ0ZWRDb21wYXJlQ0UobV90Z3RVdGlsQ29sRUl0ZXJfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlc3RwdmFsdWUsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBpZiAoc29yZGVyID09IHRvcmRlcikgeworICAgICAgICAgICAgICAgICAgICBpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW21fc3JjVXRpbENFQnVmZmVyU2l6ZV8gLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbmRQcmltYXJ5Q29tcGFyZShzb3JkZXIsIHRvcmRlcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSAvLyBubyBwcmltYXJ5IGRpZmZlcmVuY2UuLi4gZG8gdGhlIHJlc3QgZnJvbSB0aGUgYnVmZmVycworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgdXNlZCBvbmx5IGZvciBwcmltYXJ5IHN0cmVuZ3RoIHdoZW4gd2Uga25vdyB0aGF0IHNvcmRlciBpcworICAgICAqIGFscmVhZHkgZGlmZmVyZW50IGZyb20gdG9yZGVyLgorICAgICAqIENvbXBhcmVzIHNvcmRlciBhbmQgdG9yZGVyLCByZXR1cm5zIC0xIGlmIHNvcmRlciBpcyBsZXNzIHRoYW4gdG9yZGVyLgorICAgICAqIENsZWFycyB0aGUgY2VidWZmZXIgYXQgdGhlIHNhbWUgdGltZS4KKyAgICAgKiBAcGFyYW0gc29yZGVyIHNvdXJjZSBzdHJlbmd0aCBvcmRlcgorICAgICAqIEBwYXJhbSB0b3JkZXIgdGFyZ2V0IHN0cmVuZ3RoIG9yZGVyCisgICAgICogQHJldHVybiB0aGUgY29tcGFyaXNvbiByZXN1bHQgb2Ygc29yZGVyIGFuZCB0b3JkZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBlbmRQcmltYXJ5Q29tcGFyZShpbnQgc29yZGVyLCBpbnQgdG9yZGVyKQorICAgIHsKKyAgICAgICAgLy8gaWYgd2UgcmVhY2ggaGVyZSwgdGhlIGNlIG9mZnNldCBhY2Nlc3NlZCBpcyB0aGUgbGFzdCBjZQorICAgICAgICAvLyBhcHBlbmRlZCB0byB0aGUgYnVmZmVyCisgICAgICAgIGJvb2xlYW4gaXNTb3VyY2VOdWxsT3JkZXIgPSAobV9zcmNVdGlsQ0VCdWZmZXJfWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3JjVXRpbENFQnVmZmVyU2l6ZV8gLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpOworICAgICAgICBib29sZWFuIGlzVGFyZ2V0TnVsbE9yZGVyID0gKG1fdGd0VXRpbENFQnVmZmVyX1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3RndFV0aWxDRUJ1ZmZlclNpemVfIC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKTsKKyAgICAgICAgbV9zcmNVdGlsQ0VCdWZmZXJTaXplXyA9IC0xOworICAgICAgICBtX3RndFV0aWxDRUJ1ZmZlclNpemVfID0gLTE7CisgICAgICAgIGlmIChpc1NvdXJjZU51bGxPcmRlcikgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGlmIChpc1RhcmdldE51bGxPcmRlcikgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICAgICAgLy8gZ2V0dGluZyByaWQgb2YgdGhlIHNpZ24KKyAgICAgICAgc29yZGVyID4+Pj0gQ0VfUFJJTUFSWV9TSElGVF87CisgICAgICAgIHRvcmRlciA+Pj49IENFX1BSSU1BUllfU0hJRlRfOworICAgICAgICBpZiAoc29yZGVyIDwgdG9yZGVyKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsY3VsYXRlcyB0aGUgbmV4dCBwcmltYXJ5IHNoaWZ0ZWQgdmFsdWUgYW5kIGZpbGxzIHVwIGNlYnVmZmVyIHdpdGggdGhlCisgICAgICogbmV4dCBub24taWdub3JhYmxlIGNlLgorICAgICAqIEBwYXJhbSBjb2xlaXRlciBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvcgorICAgICAqIEBwYXJhbSBkb0hpcmFnYW5hNCBmbGFnIGluZGljYXRvciBpZiBoaXJhZ2FuYSBxdWF0ZXJuYXJ5IGlzIHRvIGJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgaGFuZGxlZAorICAgICAqIEBwYXJhbSBsb3dlc3RwdmFsdWUgbG93ZXN0IHByaW1hcnkgc2hpZnRlZCB2YWx1ZSB0aGF0IHdpbGwgbm90IGJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgaWdub3JlZAorICAgICAqIEByZXR1cm4gcmVzdWx0IG5leHQgbW9kaWZpZWQgY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBnZXRQcmltYXJ5U2hpZnRlZENvbXBhcmVDRSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgY29sZWl0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxvd2VzdHB2YWx1ZSwgYm9vbGVhbiBpc1NyYykKKworICAgIHsKKyAgICAgICAgYm9vbGVhbiBzaGlmdGVkID0gZmFsc2U7CisgICAgICAgIGludCByZXN1bHQgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICBpbnQgY2VidWZmZXJbXSA9IG1fc3JjVXRpbENFQnVmZmVyXzsKKyAgICAgICAgaW50IGNlYnVmZmVyc2l6ZSA9IG1fc3JjVXRpbENFQnVmZmVyU2l6ZV87CisgICAgICAgIGlmICghaXNTcmMpIHsKKyAgICAgICAgICAgIGNlYnVmZmVyID0gbV90Z3RVdGlsQ0VCdWZmZXJfOworICAgICAgICAgICAgY2VidWZmZXJzaXplID0gbV90Z3RVdGlsQ0VCdWZmZXJTaXplXzsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgcmVzdWx0ID0gY29sZWl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgY2VidWZmZXIgPSBhcHBlbmQoY2VidWZmZXIsIGNlYnVmZmVyc2l6ZSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICBjZWJ1ZmZlcnNpemUgKys7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChyZXN1bHQgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRQorICAgICAgICAgICAgICAgICAgICAgfHwgKHNoaWZ0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiAocmVzdWx0ICYgQ0VfUFJJTUFSWV9NQVNLXykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkpIHsKKyAgICAgICAgICAgICAgICAvLyBVQ0EgYW1lbmRtZW50IC0gaWdub3JlIGlnbm9yYWJsZXMgdGhhdCBmb2xsb3cgc2hpZnRlZCBjb2RlCisgICAgICAgICAgICAgICAgLy8gcG9pbnRzCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChpc0NvbnRpbnVhdGlvbihyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgaWYgKChyZXN1bHQgJiBDRV9QUklNQVJZX01BU0tfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGVyZSBpcyBwcmltYXJ5IHZhbHVlCisgICAgICAgICAgICAgICAgICAgIGlmIChzaGlmdGVkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAocmVzdWx0ICYgQ0VfUFJJTUFSWV9NQVNLXykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDRV9DT05USU5VQVRJT05fTUFSS0VSXzsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByZXNlcnZlIGludGVyZXN0aW5nIGNvbnRpbnVhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXIgPSBhcHBlbmQoY2VidWZmZXIsIGNlYnVmZmVyc2l6ZSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlYnVmZmVyc2l6ZSArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXIgPSBhcHBlbmQoY2VidWZmZXIsIGNlYnVmZmVyc2l6ZSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlYnVmZmVyc2l6ZSArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeyAvLyBKdXN0IGxvd2VyIGxldmVsIHZhbHVlcworICAgICAgICAgICAgICAgICAgICBpZiAoIXNoaWZ0ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlYnVmZmVyID0gYXBwZW5kKGNlYnVmZmVyLCBjZWJ1ZmZlcnNpemUsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjZWJ1ZmZlcnNpemUgKys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsgLy8gcmVndWxhcgorICAgICAgICAgICAgICAgIGlmIChVdGlsaXR5LmNvbXBhcmVVbnNpZ25lZChyZXN1bHQgJiBDRV9QUklNQVJZX01BU0tfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlc3RwdmFsdWUpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBjZWJ1ZmZlciA9IGFwcGVuZChjZWJ1ZmZlciwgY2VidWZmZXJzaXplLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICBjZWJ1ZmZlcnNpemUgKys7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChyZXN1bHQgJiBDRV9QUklNQVJZX01BU0tfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzaGlmdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCAmPSBDRV9QUklNQVJZX01BU0tfOworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXIgPSBhcHBlbmQoY2VidWZmZXIsIGNlYnVmZmVyc2l6ZSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlYnVmZmVyc2l6ZSArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgY2VidWZmZXIgPSBhcHBlbmQoY2VidWZmZXIsIGNlYnVmZmVyc2l6ZSwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlYnVmZmVyc2l6ZSArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpc1NyYykgeworICAgICAgICAgICAgbV9zcmNVdGlsQ0VCdWZmZXJfID0gY2VidWZmZXI7CisgICAgICAgICAgICBtX3NyY1V0aWxDRUJ1ZmZlclNpemVfID0gY2VidWZmZXJzaXplOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV90Z3RVdGlsQ0VCdWZmZXJfID0gY2VidWZmZXI7CisgICAgICAgICAgICBtX3RndFV0aWxDRUJ1ZmZlclNpemVfID0gY2VidWZmZXJzaXplOworICAgICAgICB9CisgICAgICAgIHJlc3VsdCAmPSBDRV9QUklNQVJZX01BU0tfOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZGluZyBhbiBpbnQgdG8gYW4gYXJyYXkgb2YgaW50cyBhbmQgaW5jcmVhc2VzIGl0IGlmIHdlIHJ1biBvdXQgb2YKKyAgICAgKiBzcGFjZQorICAgICAqIEBwYXJhbSBhcnJheSBvZiBpbnQgYXJyYXlzCisgICAgICogQHBhcmFtIGFwcGVuZGluZGV4IGluZGV4IGF0IHdoaWNoIHZhbHVlIHdpbGwgYmUgYXBwZW5kZWQKKyAgICAgKiBAcGFyYW0gdmFsdWUgdG8gYXBwZW5kCisgICAgICogQHJldHVybiBhcnJheSBpZiBzaXplIGlzIG5vdCBpbmNyZWFzZWQsIG90aGVyd2lzZSBhIG5ldyBhcnJheSB3aWxsIGJlCisgICAgICogICAgICAgICByZXR1cm5lZAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIGFwcGVuZChpbnQgYXJyYXlbXSwgaW50IGFwcGVuZGluZGV4LCBpbnQgdmFsdWUpCisgICAgeworICAgICAgICBpZiAoYXBwZW5kaW5kZXggKyAxID49IGFycmF5Lmxlbmd0aCkgeworICAgICAgICAgICAgYXJyYXkgPSBpbmNyZWFzZShhcnJheSwgYXBwZW5kaW5kZXgsIENFX0JVRkZFUl9TSVpFXyk7CisgICAgICAgIH0KKyAgICAgICAgYXJyYXlbYXBwZW5kaW5kZXhdID0gdmFsdWU7CisgICAgICAgIHJldHVybiBhcnJheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEb2VzIHNlY29uZGFyeSBzdHJlbmd0aCBjb21wYXJpc29uIGJhc2VkIG9uIHRoZSBjb2xsZWN0ZWQgY2VzLgorICAgICAqIEBwYXJhbSBkb0ZyZW5jaCBmbGFnIGluZGljYXRlcyBpZiBGcmVuY2ggb3JkZXJpbmcgaXMgdG8gYmUgZG9uZQorICAgICAqIEByZXR1cm4gdGhlIHNlY29uZGFyeSBzdHJlbmd0aCBjb21wYXJpc29uIHJlc3VsdAorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGRvU2Vjb25kYXJ5Q29tcGFyZShib29sZWFuIGRvRnJlbmNoKQorICAgIHsKKyAgICAgICAgLy8gbm93LCB3ZSdyZSBnb25uYSByZWV4YW1pbmUgY29sbGVjdGVkIENFcworICAgICAgICBpZiAoIWRvRnJlbmNoKSB7IC8vIG5vcm1hbAorICAgICAgICAgICAgaW50IHNvZmZzZXQgPSAwOworICAgICAgICAgICAgaW50IHRvZmZzZXQgPSAwOworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpbnQgc29yZGVyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoc29yZGVyID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgc29yZGVyID0gbV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgKytdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgQ0VfU0VDT05EQVJZX01BU0tfOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnQgdG9yZGVyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgICAgICB3aGlsZSAodG9yZGVyID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgdG9yZGVyID0gbV90Z3RVdGlsQ0VCdWZmZXJfW3RvZmZzZXQgKytdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgQ0VfU0VDT05EQVJZX01BU0tfOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChzb3JkZXIgPT0gdG9yZGVyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV90Z3RVdGlsQ0VCdWZmZXJfW3RvZmZzZXQgLSAxXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobV90Z3RVdGlsQ0VCdWZmZXJfW3RvZmZzZXQgLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fc3JjVXRpbENFQnVmZmVyX1tzb2Zmc2V0IC0gMV0gPT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0IC0gMV0gPT0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHNvcmRlciA8IHRvcmRlcikgPyAtMSA6IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeyAvLyBkbyB0aGUgRnJlbmNoCisgICAgICAgICAgICBtX3NyY1V0aWxDb250T2Zmc2V0XyA9IDA7CisgICAgICAgICAgICBtX3RndFV0aWxDb250T2Zmc2V0XyA9IDA7CisgICAgICAgICAgICBtX3NyY1V0aWxPZmZzZXRfID0gbV9zcmNVdGlsQ0VCdWZmZXJTaXplXyAtIDI7CisgICAgICAgICAgICBtX3RndFV0aWxPZmZzZXRfID0gbV90Z3RVdGlsQ0VCdWZmZXJTaXplXyAtIDI7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIGludCBzb3JkZXIgPSBnZXRTZWNvbmRhcnlGcmVuY2hDRSh0cnVlKTsKKyAgICAgICAgICAgICAgICBpbnQgdG9yZGVyID0gZ2V0U2Vjb25kYXJ5RnJlbmNoQ0UoZmFsc2UpOworICAgICAgICAgICAgICAgIGlmIChzb3JkZXIgPT0gdG9yZGVyKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgobV9zcmNVdGlsT2Zmc2V0XyA8IDAgJiYgbV90Z3RVdGlsT2Zmc2V0XyA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICB8fCAobV9zcmNVdGlsT2Zmc2V0XyA+PSAwIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIG1fc3JjVXRpbENFQnVmZmVyX1ttX3NyY1V0aWxPZmZzZXRfXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHNvcmRlciA8IHRvcmRlcikgPyAtMSA6IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIENhbGN1bGF0ZXMgdGhlIG5leHQgc2Vjb25kYXJ5IGZyZW5jaCBDRS4KKyAgICAgKiBAcGFyYW0gaXNTcmMgZmxhZyBpbmRpY2F0b3IgaWYgd2UgYXJlIGNhbGN1bGF0aW5nIHRoZSBzcmMgY2VzCisgICAgICogQHJldHVybiByZXN1bHQgbmV4dCBtb2RpZmllZCBjZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldFNlY29uZGFyeUZyZW5jaENFKGJvb2xlYW4gaXNTcmMpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0ID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgaW50IG9mZnNldCA9IG1fc3JjVXRpbE9mZnNldF87CisgICAgICAgIGludCBjb250aW51YXRpb25vZmZzZXQgPSBtX3NyY1V0aWxDb250T2Zmc2V0XzsKKyAgICAgICAgaW50IGNlYnVmZmVyW10gPSBtX3NyY1V0aWxDRUJ1ZmZlcl87CisgICAgICAgIGlmICghaXNTcmMpIHsKKyAgICAgICAgICAgIG9mZnNldCA9IG1fdGd0VXRpbE9mZnNldF87CisgICAgICAgICAgICBjb250aW51YXRpb25vZmZzZXQgPSBtX3RndFV0aWxDb250T2Zmc2V0XzsKKyAgICAgICAgICAgIGNlYnVmZmVyID0gbV90Z3RVdGlsQ0VCdWZmZXJfOworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKHJlc3VsdCA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFCisgICAgICAgICAgICAgICAgJiYgb2Zmc2V0ID49IDApIHsKKyAgICAgICAgICAgIGlmIChjb250aW51YXRpb25vZmZzZXQgPT0gMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNlYnVmZmVyW29mZnNldF07CisgICAgICAgICAgICAgICAgd2hpbGUgKGlzQ29udGludWF0aW9uKGNlYnVmZmVyW29mZnNldCAtLV0pKXsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgdGhpcywgc29yZGVyIGlzIGF0IHRoZSBzdGFydCBvZiBjb250aW51YXRpb24sCisgICAgICAgICAgICAgICAgLy8gYW5kIG9mZnNldCBwb2ludHMgYmVmb3JlIHRoYXQKKyAgICAgICAgICAgICAgICBpZiAoaXNDb250aW51YXRpb24oY2VidWZmZXJbb2Zmc2V0ICsgMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHNhdmUgb2Zmc2V0IGZvciBsYXRlcgorICAgICAgICAgICAgICAgICAgICBjb250aW51YXRpb25vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSAyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNlYnVmZmVyW29mZnNldCArK107CisgICAgICAgICAgICAgICAgaWYgKCFpc0NvbnRpbnVhdGlvbihyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgZmluaXNoZWQgd2l0aCB0aGlzIGNvbnRpbnVhdGlvbgorICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBjb250aW51YXRpb25vZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgIC8vIHJlc2V0IHRoZSBwb2ludGVyIHRvIGJlZm9yZSBjb250aW51YXRpb24KKyAgICAgICAgICAgICAgICAgICAgY29udGludWF0aW9ub2Zmc2V0ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0ICY9IENFX1NFQ09OREFSWV9NQVNLXzsgLy8gcmVtb3ZlIGNvbnRpbnVhdGlvbiBiaXQKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNTcmMpIHsKKyAgICAgICAgICAgIG1fc3JjVXRpbE9mZnNldF8gPSBvZmZzZXQ7CisgICAgICAgICAgICBtX3NyY1V0aWxDb250T2Zmc2V0XyA9IGNvbnRpbnVhdGlvbm9mZnNldDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fdGd0VXRpbE9mZnNldF8gPSBvZmZzZXQ7CisgICAgICAgICAgICBtX3RndFV0aWxDb250T2Zmc2V0XyA9IGNvbnRpbnVhdGlvbm9mZnNldDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIERvZXMgY2FzZSBzdHJlbmd0aCBjb21wYXJpc29uIGJhc2VkIG9uIHRoZSBjb2xsZWN0ZWQgY2VzLgorICAgICAqIEByZXR1cm4gdGhlIGNhc2Ugc3RyZW5ndGggY29tcGFyaXNvbiByZXN1bHQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBkb0Nhc2VDb21wYXJlKCkKKyAgICB7CisgICAgICAgIGludCBzb2Zmc2V0ID0gMDsKKyAgICAgICAgaW50IHRvZmZzZXQgPSAwOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IHNvcmRlciA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgICAgICBpbnQgdG9yZGVyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgIHdoaWxlICgoc29yZGVyICYgQ0VfUkVNT1ZFX0NBU0VfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgIHNvcmRlciA9IG1fc3JjVXRpbENFQnVmZmVyX1tzb2Zmc2V0ICsrXTsKKyAgICAgICAgICAgICAgICBpZiAoIWlzQ29udGludWF0aW9uKHNvcmRlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgc29yZGVyICY9IENFX0NBU0VfTUFTS18zXzsKKyAgICAgICAgICAgICAgICAgICAgc29yZGVyIF49IG1fY2FzZVN3aXRjaF87CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzb3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgd2hpbGUgKCh0b3JkZXIgJiBDRV9SRU1PVkVfQ0FTRV8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgdG9yZGVyID0gbV90Z3RVdGlsQ0VCdWZmZXJfW3RvZmZzZXQgKytdOworICAgICAgICAgICAgICAgIGlmICghaXNDb250aW51YXRpb24odG9yZGVyKSkgeworICAgICAgICAgICAgICAgICAgICB0b3JkZXIgJj0gQ0VfQ0FTRV9NQVNLXzNfOworICAgICAgICAgICAgICAgICAgICB0b3JkZXIgXj0gbV9jYXNlU3dpdGNoXzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRvcmRlciA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzb3JkZXIgJj0gQ0VfQ0FTRV9CSVRfTUFTS187CisgICAgICAgICAgICB0b3JkZXIgJj0gQ0VfQ0FTRV9CSVRfTUFTS187CisgICAgICAgICAgICBpZiAoc29yZGVyID09IHRvcmRlcikgeworICAgICAgICAgICAgICAgIC8vIGNoZWNraW5nIGVuZCBvZiBzdHJpbmdzCisgICAgICAgICAgICAgICAgaWYgKG1fc3JjVXRpbENFQnVmZmVyX1tzb2Zmc2V0IC0gMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdIAorICAgICAgICAgICAgICAgICAgICAgICAgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bc29mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gKHNvcmRlciA8IHRvcmRlcikgPyAtMSA6IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogRG9lcyB0ZXJ0aWFyeSBzdHJlbmd0aCBjb21wYXJpc29uIGJhc2VkIG9uIHRoZSBjb2xsZWN0ZWQgY2VzLgorICAgICAqIEByZXR1cm4gdGhlIHRlcnRpYXJ5IHN0cmVuZ3RoIGNvbXBhcmlzb24gcmVzdWx0CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZG9UZXJ0aWFyeUNvbXBhcmUoKQorICAgIHsKKyAgICAgICAgaW50IHNvZmZzZXQgPSAwOworICAgICAgICBpbnQgdG9mZnNldCA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgc29yZGVyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgIGludCB0b3JkZXIgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgd2hpbGUgKChzb3JkZXIgJiBDRV9SRU1PVkVfQ0FTRV8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICBzb3JkZXIgPSBtX3NyY1V0aWxDRUJ1ZmZlcl9bc29mZnNldCArK10gJiBtX21hc2szXzsKKyAgICAgICAgICAgICAgICBpZiAoIWlzQ29udGludWF0aW9uKHNvcmRlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgc29yZGVyIF49IG1fY2FzZVN3aXRjaF87CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzb3JkZXIgJj0gQ0VfUkVNT1ZFX0NBU0VfOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgd2hpbGUgKCh0b3JkZXIgJiBDRV9SRU1PVkVfQ0FTRV8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICB0b3JkZXIgPSBtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCArK10gJiBtX21hc2szXzsKKyAgICAgICAgICAgICAgICBpZiAoIWlzQ29udGludWF0aW9uKHRvcmRlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgdG9yZGVyIF49IG1fY2FzZVN3aXRjaF87CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0b3JkZXIgJj0gQ0VfUkVNT1ZFX0NBU0VfOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHNvcmRlciA9PSB0b3JkZXIpIHsKKyAgICAgICAgICAgICAgICBpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBpZiAobV90Z3RVdGlsQ0VCdWZmZXJfW3RvZmZzZXQgLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgLSAxXSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobV90Z3RVdGlsQ0VCdWZmZXJfW3RvZmZzZXQgLSAxXSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiAoc29yZGVyIDwgdG9yZGVyKSA/IC0xIDogMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEb2VzIHF1YXRlcm5hcnkgc3RyZW5ndGggY29tcGFyaXNvbiBiYXNlZCBvbiB0aGUgY29sbGVjdGVkIGNlcy4KKyAgICAgKiBAcGFyYW0gbG93ZXN0cHZhbHVlIHRoZSBsb3dlc3QgcHJpbWFyeSB2YWx1ZSB0aGF0IHdpbGwgbm90IGJlIGlnbm9yZWQgaWYKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGUgaGFuZGxpbmcgaXMgc2hpZnRlZAorICAgICAqIEByZXR1cm4gdGhlIHF1YXRlcm5hcnkgc3RyZW5ndGggY29tcGFyaXNvbiByZXN1bHQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBkb1F1YXRlcm5hcnlDb21wYXJlKGludCBsb3dlc3RwdmFsdWUpCisgICAgeworICAgICAgICBib29sZWFuIHNTaGlmdGVkID0gdHJ1ZTsKKyAgICAgICAgYm9vbGVhbiB0U2hpZnRlZCA9IHRydWU7CisgICAgICAgIGludCBzb2Zmc2V0ID0gMDsKKyAgICAgICAgaW50IHRvZmZzZXQgPSAwOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IHNvcmRlciA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgICAgICBpbnQgdG9yZGVyID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgIHdoaWxlIChzb3JkZXIgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRQorICAgICAgICAgICAgICAgICAgICB8fCAoaXNDb250aW51YXRpb24oc29yZGVyKSAmJiAhc1NoaWZ0ZWQpKSB7CisgICAgICAgICAgICAgICAgc29yZGVyID0gbV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgKytdOworICAgICAgICAgICAgICAgIGlmIChpc0NvbnRpbnVhdGlvbihzb3JkZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghc1NoaWZ0ZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKFV0aWxpdHkuY29tcGFyZVVuc2lnbmVkKHNvcmRlciwgbG93ZXN0cHZhbHVlKSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAoc29yZGVyICYgQ0VfUFJJTUFSWV9NQVNLXykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gbm9uIGNvbnRpbnVhdGlvbgorICAgICAgICAgICAgICAgICAgICBzb3JkZXIgPSBDRV9QUklNQVJZX01BU0tfOworICAgICAgICAgICAgICAgICAgICBzU2hpZnRlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc1NoaWZ0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNvcmRlciA+Pj49IENFX1BSSU1BUllfU0hJRlRfOworICAgICAgICAgICAgd2hpbGUgKHRvcmRlciA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFCisgICAgICAgICAgICAgICAgICAgIHx8IChpc0NvbnRpbnVhdGlvbih0b3JkZXIpICYmICF0U2hpZnRlZCkpIHsKKyAgICAgICAgICAgICAgICB0b3JkZXIgPSBtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCArK107CisgICAgICAgICAgICAgICAgaWYgKGlzQ29udGludWF0aW9uKHRvcmRlcikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0U2hpZnRlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoVXRpbGl0eS5jb21wYXJlVW5zaWduZWQodG9yZGVyLCBsb3dlc3RwdmFsdWUpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICh0b3JkZXIgJiBDRV9QUklNQVJZX01BU0tfKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICAvLyBub24gY29udGludWF0aW9uCisgICAgICAgICAgICAgICAgICAgIHRvcmRlciA9IENFX1BSSU1BUllfTUFTS187CisgICAgICAgICAgICAgICAgICAgIHRTaGlmdGVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0U2hpZnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdG9yZGVyID4+Pj0gQ0VfUFJJTUFSWV9TSElGVF87CisKKyAgICAgICAgICAgIGlmIChzb3JkZXIgPT0gdG9yZGVyKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fc3JjVXRpbENFQnVmZmVyX1tzb2Zmc2V0IC0gMV0KKyAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBpZiAobV90Z3RVdGlsQ0VCdWZmZXJfW3RvZmZzZXQgLSAxXQorICAgICAgICAgICAgICAgICAgICAgICAgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChtX3RndFV0aWxDRUJ1ZmZlcl9bdG9mZnNldCAtIDFdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAobV9zcmNVdGlsQ0VCdWZmZXJfW3NvZmZzZXQgLSAxXSA9PQorICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG1fdGd0VXRpbENFQnVmZmVyX1t0b2Zmc2V0IC0gMV0gPT0KKyAgICAgICAgICAgICAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIChzb3JkZXIgPCB0b3JkZXIpID8gLTEgOiAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVybmFsIGZ1bmN0aW9uLiBEb2VzIGJ5dGUgbGV2ZWwgc3RyaW5nIGNvbXBhcmUuIFVzZWQgYnkgc3RyY29sbCBpZgorICAgICAqIHN0cmVuZ3RoID09IGlkZW50aWNhbCBhbmQgc3RyaW5ncyBhcmUgb3RoZXJ3aXNlIGVxdWFsLiBUaGlzIGlzIGEgcmFyZQorICAgICAqIGNhc2UuIENvbXBhcmlzb24gbXVzdCBiZSBkb25lIG9uIE5GRCBub3JtYWxpemVkIHN0cmluZ3MuIEZDRCBpcyBub3QgZ29vZAorICAgICAqIGVub3VnaC4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRleHQKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRleHQKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IG9mIHRoZSBmaXJzdCBkaWZmZXJlbmNlIGluIHRoZSB0ZXh0IHN0cmluZ3MKKyAgICAgKiBAcGFyYW0gbm9ybWFsaXplIGZsYWcgaW5kaWNhdGluZyBpZiB3ZSBhcmUgdG8gbm9ybWFsaXplIHRoZSB0ZXh0IGJlZm9yZQorICAgICAqICAgICAgICAgICAgICBjb21wYXJpc29uCisgICAgICogQHJldHVybiAxIGlmIHNvdXJjZSBpcyBncmVhdGVyIHRoYW4gdGFyZ2V0LCAtMSBsZXNzIHRoYW4gYW5kIDAgaWYgZXF1YWxzCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGRvSWRlbnRpY2FsQ29tcGFyZShTdHJpbmcgc291cmNlLCBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCwgYm9vbGVhbiBub3JtYWxpemUpCisKKyAgICB7CisgICAgICAgIGlmIChub3JtYWxpemUpIHsKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soc291cmNlLCBOb3JtYWxpemVyLk5GRCwwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IE5vcm1hbGl6ZXIuWUVTKSB7CisgICAgICAgICAgICAgICAgc291cmNlID0gTm9ybWFsaXplci5kZWNvbXBvc2Uoc291cmNlLCBmYWxzZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2sodGFyZ2V0LCBOb3JtYWxpemVyLk5GRCwwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSBOb3JtYWxpemVyLllFUykgeworICAgICAgICAgICAgICAgIHRhcmdldCA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHRhcmdldCwgZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBkb1N0cmluZ0NvbXBhcmUoc291cmNlLCB0YXJnZXQsIG9mZnNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgc3RyaW5nIGZvciB0aGVpciBjb2RlcG9pbnQgb3JkZXIuCisgICAgICogVGhpcyBjb21wYXJpc29uIGhhbmRsZXMgc3Vycm9nYXRlIGNoYXJhY3RlcnMgYW5kIHBsYWNlIHRoZW0gYWZ0ZXIgdGhlCisgICAgICogYWxsIG5vbiBzdXJyb2dhdGUgY2hhcmFjdGVycy4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRleHQKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRleHQKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHN0YXJ0IG9mZnNldCBmb3IgY29tcGFyaXNvbgorICAgICAqIEByZXR1cm4gMSBpZiBzb3VyY2UgaXMgZ3JlYXRlciB0aGFuIHRhcmdldCwgLTEgbGVzcyB0aGFuIGFuZCAwIGlmIGVxdWFscworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBkb1N0cmluZ0NvbXBhcmUoU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgLy8gY29tcGFyZSBpZGVudGljYWwgcHJlZml4ZXMgLSB0aGV5IGRvIG5vdCBuZWVkIHRvIGJlIGZpeGVkIHVwCisgICAgICAgIGNoYXIgc2NoYXIgPSAwOworICAgICAgICBjaGFyIHRjaGFyID0gMDsKKyAgICAgICAgaW50IHNsZW5ndGggPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIGludCB0bGVuZ3RoID0gdGFyZ2V0Lmxlbmd0aCgpOworICAgICAgICBpbnQgbWlubGVuZ3RoID0gTWF0aC5taW4oc2xlbmd0aCwgdGxlbmd0aCk7CisgICAgICAgIHdoaWxlIChvZmZzZXQgPCBtaW5sZW5ndGgpIHsKKyAgICAgICAgICAgIHNjaGFyID0gc291cmNlLmNoYXJBdChvZmZzZXQpOworICAgICAgICAgICAgdGNoYXIgPSB0YXJnZXQuY2hhckF0KG9mZnNldCArKyk7CisgICAgICAgICAgICBpZiAoc2NoYXIgIT0gdGNoYXIpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzY2hhciA9PSB0Y2hhciAmJiBvZmZzZXQgPT0gbWlubGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAoc2xlbmd0aCA+IG1pbmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRsZW5ndGggPiBtaW5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vICBpZiBib3RoIHZhbHVlcyBhcmUgaW4gb3IgYWJvdmUgdGhlIHN1cnJvZ2F0ZSByYW5nZSwgRml4IHRoZW0gdXAuCisgICAgICAgIGlmIChzY2hhciA+PSBVVEYxNi5MRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUKKyAgICAgICAgICAgICYmIHRjaGFyID49IFVURjE2LkxFQURfU1VSUk9HQVRFX01JTl9WQUxVRSkgeworICAgICAgICAgICAgc2NoYXIgPSBmaXh1cFVURjE2KHNjaGFyKTsKKyAgICAgICAgICAgIHRjaGFyID0gZml4dXBVVEYxNih0Y2hhcik7CisgICAgICAgIH0KKworICAgICAgICAvLyBub3cgYzEgYW5kIGMyIGFyZSBpbiBVVEYtMzItY29tcGF0aWJsZSBvcmRlcgorICAgICAgICByZXR1cm4gKHNjaGFyIDwgdGNoYXIpID8gLTEgOiAxOyAvLyBzY2hhciBhbmQgdGNoYXIgaGFzIHRvIGJlIGRpZmZlcmVudAorICAgIH0KKworICAgIC8qKgorICAgICAqIFJvdGF0ZSBzdXJyb2dhdGVzIHRvIHRoZSB0b3AgdG8gZ2V0IGNvZGUgcG9pbnQgb3JkZXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIGZpeHVwVVRGMTYoY2hhciBjaCkKKyAgICB7CisgICAgICAgIGlmIChjaCA+PSAweGUwMDApIHsKKyAgICAgICAgICAgIGNoIC09IDB4ODAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY2ggKz0gMHgyMDAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldHMgdGhlIGludGVybmFsIGNhc2UgZGF0YSBtZW1iZXJzIGFuZCBjb21wcmVzc2lvbiB2YWx1ZXMuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZUludGVybmFsU3RhdGUoKQorICAgIHsKKyAgICAgICAgaWYgKG1fY2FzZUZpcnN0XyA9PSBBdHRyaWJ1dGVWYWx1ZS5VUFBFUl9GSVJTVF8pIHsKKyAgICAgICAgICAgIG1fY2FzZVN3aXRjaF8gPSBDQVNFX1NXSVRDSF87CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX2Nhc2VTd2l0Y2hfID0gTk9fQ0FTRV9TV0lUQ0hfOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1faXNDYXNlTGV2ZWxfIHx8IG1fY2FzZUZpcnN0XyA9PSBBdHRyaWJ1dGVWYWx1ZS5PRkZfKSB7CisgICAgICAgICAgICBtX21hc2szXyA9IENFX1JFTU9WRV9DQVNFXzsKKyAgICAgICAgICAgIG1fY29tbW9uM18gPSBDT01NT05fTk9STUFMXzNfOworICAgICAgICAgICAgbV9hZGRpdGlvbjNfID0gRkxBR19CSVRfTUFTS19DQVNFX1NXSVRDSF9PRkZfOworICAgICAgICAgICAgbV90b3AzXyA9IENPTU1PTl9UT1BfQ0FTRV9TV0lUQ0hfT0ZGXzNfOworICAgICAgICAgICAgbV9ib3R0b20zXyA9IENPTU1PTl9CT1RUT01fM187CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX21hc2szXyA9IENFX0tFRVBfQ0FTRV87CisgICAgICAgICAgICBtX2FkZGl0aW9uM18gPSBGTEFHX0JJVF9NQVNLX0NBU0VfU1dJVENIX09OXzsKKyAgICAgICAgICAgIGlmIChtX2Nhc2VGaXJzdF8gPT0gQXR0cmlidXRlVmFsdWUuVVBQRVJfRklSU1RfKSB7CisgICAgICAgICAgICAgICAgbV9jb21tb24zXyA9IENPTU1PTl9VUFBFUl9GSVJTVF8zXzsKKyAgICAgICAgICAgICAgICBtX3RvcDNfID0gQ09NTU9OX1RPUF9DQVNFX1NXSVRDSF9VUFBFUl8zXzsKKyAgICAgICAgICAgICAgICBtX2JvdHRvbTNfID0gQ09NTU9OX0JPVFRPTV9DQVNFX1NXSVRDSF9VUFBFUl8zXzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9jb21tb24zXyA9IENPTU1PTl9OT1JNQUxfM187CisgICAgICAgICAgICAgICAgbV90b3AzXyA9IENPTU1PTl9UT1BfQ0FTRV9TV0lUQ0hfTE9XRVJfM187CisgICAgICAgICAgICAgICAgbV9ib3R0b20zXyA9IENPTU1PTl9CT1RUT01fQ0FTRV9TV0lUQ0hfTE9XRVJfM187CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgdGhlIGNvbXByZXNzaW9uIHZhbHVlcworICAgICAgICBpbnQgdG90YWwzID0gbV90b3AzXyAtIENPTU1PTl9CT1RUT01fM18gLSAxOworICAgICAgICAvLyB3ZSBtdWx0aWxwbHkgZG91YmxlIHdpdGggaW50LCBidXQgbmVlZCBvbmx5IGludAorICAgICAgICBtX3RvcENvdW50M18gPSAoaW50KShQUk9QT1JUSU9OXzNfICogdG90YWwzKTsKKyAgICAgICAgbV9ib3R0b21Db3VudDNfID0gdG90YWwzIC0gbV90b3BDb3VudDNfOworCisgICAgICAgIGlmICghbV9pc0Nhc2VMZXZlbF8gJiYgZ2V0U3RyZW5ndGgoKSA9PSBBdHRyaWJ1dGVWYWx1ZS5URVJUSUFSWV8KKyAgICAgICAgICAgICYmICFtX2lzRnJlbmNoQ29sbGF0aW9uXyAmJiAhbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8pIHsKKyAgICAgICAgICAgIG1faXNTaW1wbGUzXyA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX2lzU2ltcGxlM18gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZighbV9pc0Nhc2VMZXZlbF8gJiYgZ2V0U3RyZW5ndGgoKSA8PSBBdHRyaWJ1dGVWYWx1ZS5URVJUSUFSWV8gJiYgIW1faXNOdW1lcmljQ29sbGF0aW9uXworICAgICAgICAgICYmICFtX2lzQWx0ZXJuYXRlSGFuZGxpbmdTaGlmdGVkXyAmJiAhbGF0aW5PbmVGYWlsZWRfKSB7CisgICAgICAgICAgaWYobGF0aW5PbmVDRXNfID09IG51bGwgfHwgbGF0aW5PbmVSZWdlblRhYmxlXykgeworICAgICAgICAgICAgaWYoc2V0VXBMYXRpbk9uZSgpKSB7IC8vIGlmIHdlIHN1Y2NlZWQgaW4gYnVpbGRpbmcgbGF0aW4xIHRhYmxlLCB3ZSdsbCB1c2UgaXQKKyAgICAgICAgICAgICAgbGF0aW5PbmVVc2VfID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIGxhdGluT25lVXNlXyA9IGZhbHNlOworICAgICAgICAgICAgICBsYXRpbk9uZUZhaWxlZF8gPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbGF0aW5PbmVSZWdlblRhYmxlXyA9IGZhbHNlOworICAgICAgICAgIH0gZWxzZSB7IC8vIGxhdGluMVRhYmxlIGV4aXN0cyBhbmQgaXQgZG9lc24ndCBuZWVkIHRvIGJlIHJlZ2VuZXJhdGVkLCBqdXN0IHVzZSBpdAorICAgICAgICAgICAgbGF0aW5PbmVVc2VfID0gdHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgbGF0aW5PbmVVc2VfID0gZmFsc2U7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBSdWxlQmFzZWRDb2xsYXRvcgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBpbml0KCkKKyAgICB7CisgICAgICAgIGZvciAobV9taW5VbnNhZmVfID0gMDsgbV9taW5VbnNhZmVfIDwgREVGQVVMVF9NSU5fSEVVUklTVElDXzsKKyAgICAgICAgICAgICBtX21pblVuc2FmZV8gKyspIHsKKyAgICAgICAgICAgIC8vIEZpbmQgdGhlIHNtYWxsZXN0IHVuc2FmZSBjaGFyLgorICAgICAgICAgICAgaWYgKGlzVW5zYWZlKG1fbWluVW5zYWZlXykpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAobV9taW5Db250cmFjdGlvbkVuZF8gPSAwOworICAgICAgICAgICAgIG1fbWluQ29udHJhY3Rpb25FbmRfIDwgREVGQVVMVF9NSU5fSEVVUklTVElDXzsKKyAgICAgICAgICAgICBtX21pbkNvbnRyYWN0aW9uRW5kXyArKykgeworICAgICAgICAgICAgLy8gRmluZCB0aGUgc21hbGxlc3QgY29udHJhY3Rpb24tZW5kaW5nIGNoYXIuCisgICAgICAgICAgICBpZiAoaXNDb250cmFjdGlvbkVuZChtX21pbkNvbnRyYWN0aW9uRW5kXykpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBsYXRpbk9uZUZhaWxlZF8gPSB0cnVlOworICAgICAgICBzZXRTdHJlbmd0aChtX2RlZmF1bHRTdHJlbmd0aF8pOworICAgICAgICBzZXREZWNvbXBvc2l0aW9uKG1fZGVmYXVsdERlY29tcG9zaXRpb25fKTsKKyAgICAgICAgbV92YXJpYWJsZVRvcFZhbHVlXyA9IG1fZGVmYXVsdFZhcmlhYmxlVG9wVmFsdWVfOworICAgICAgICBtX2lzRnJlbmNoQ29sbGF0aW9uXyA9IG1fZGVmYXVsdElzRnJlbmNoQ29sbGF0aW9uXzsKKyAgICAgICAgbV9pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF8gPSBtX2RlZmF1bHRJc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZF87CisgICAgICAgIG1faXNDYXNlTGV2ZWxfID0gbV9kZWZhdWx0SXNDYXNlTGV2ZWxfOworICAgICAgICBtX2Nhc2VGaXJzdF8gPSBtX2RlZmF1bHRDYXNlRmlyc3RfOworICAgICAgICBtX2lzSGlyYWdhbmE0XyA9IG1fZGVmYXVsdElzSGlyYWdhbmE0XzsKKyAgICAgICAgbV9pc051bWVyaWNDb2xsYXRpb25fID0gbV9kZWZhdWx0SXNOdW1lcmljQ29sbGF0aW9uXzsKKyAgICAgICAgbGF0aW5PbmVGYWlsZWRfID0gZmFsc2U7CisgICAgICAgIHVwZGF0ZUludGVybmFsU3RhdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiAgSW5pdGlhbGl6ZXMgdXRpbGl0eSBpdGVyYXRvcnMgYW5kIGJ5dGUgYnVmZmVyIHVzZWQgYnkgY29tcGFyZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBpbml0VXRpbGl0eSgpIHsKKyAgICAgICBtX3NyY1V0aWxJdGVyXyA9IG5ldyBTdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAgICBtX3NyY1V0aWxDb2xFSXRlcl8gPSBuZXcgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKG1fc3JjVXRpbEl0ZXJfLCB0aGlzKTsKKyAgICAgICBtX3RndFV0aWxJdGVyXyA9IG5ldyBTdHJpbmdVQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAgICBtX3RndFV0aWxDb2xFSXRlcl8gPSBuZXcgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKG1fdGd0VXRpbEl0ZXJfLCB0aGlzKTsKKyAgICAgICBtX3V0aWxCeXRlczBfID0gbmV3IGJ5dGVbU09SVF9CVUZGRVJfSU5JVF9TSVpFX0NBU0VfXTsgLy8gY2FzZQorICAgICAgIG1fdXRpbEJ5dGVzMV8gPSBuZXcgYnl0ZVtTT1JUX0JVRkZFUl9JTklUX1NJWkVfMV9dOyAvLyBwcmltYXJ5CisgICAgICAgbV91dGlsQnl0ZXMyXyA9IG5ldyBieXRlW1NPUlRfQlVGRkVSX0lOSVRfU0laRV8yX107IC8vIHNlY29uZGFyeQorICAgICAgIG1fdXRpbEJ5dGVzM18gPSBuZXcgYnl0ZVtTT1JUX0JVRkZFUl9JTklUX1NJWkVfM19dOyAvLyB0ZXJ0aWFyeQorICAgICAgIG1fdXRpbEJ5dGVzNF8gPSBuZXcgYnl0ZVtTT1JUX0JVRkZFUl9JTklUX1NJWkVfNF9dOyAgLy8gUXVhdGVybmFyeQorICAgICAgIG1fc3JjVXRpbENFQnVmZmVyXyA9IG5ldyBpbnRbQ0VfQlVGRkVSX1NJWkVfXTsKKyAgICAgICBtX3RndFV0aWxDRUJ1ZmZlcl8gPSBuZXcgaW50W0NFX0JVRkZFUl9TSVpFX107CisgICAgfQorCisKKworICAgIC8vIENvbnN0cyBmb3IgTGF0aW4tMSBzcGVjaWFsIHByb2Nlc3NpbmcKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRU5ET0ZMQVRJTk9ORVJBTkdFXyA9IDB4RkY7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExBVElOT05FVEFCTEVMRU5fICAgPSAoRU5ET0ZMQVRJTk9ORVJBTkdFXys1MCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJBSUxfT1VUX0NFXyAgICAgICAgPSAweEZGMDAwMDAwOworCisgICAgIC8qKgorICAgICAqIEdlbmVyYXRlIGxhdGluLTEgdGFibGVzCisgICAgICovCisKKyAgICBwcml2YXRlIGNsYXNzIHNoaWZ0VmFsdWVzIHsKKyAgICAgICAgaW50IHByaW1TaGlmdCA9IDI0OworICAgICAgICBpbnQgc2VjU2hpZnQgPSAyNDsKKyAgICAgICAgaW50IHRlclNoaWZ0ID0gMjQ7CisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkCisgICAgYWRkTGF0aW5PbmVFbnRyeShjaGFyIGNoLCBpbnQgQ0UsIHNoaWZ0VmFsdWVzIHNoKSB7CisgICAgICBpbnQgcHJpbWFyeTEgPSAwLCBwcmltYXJ5MiA9IDAsIHNlY29uZGFyeSA9IDAsIHRlcnRpYXJ5ID0gMDsKKyAgICAgIGJvb2xlYW4gcmV2ZXJzZVNlY29uZGFyeSA9IGZhbHNlOworICAgICAgaWYoIWlzQ29udGludWF0aW9uKENFKSkgeworICAgICAgICB0ZXJ0aWFyeSA9ICgoQ0UgJiBtX21hc2szXykpOworICAgICAgICB0ZXJ0aWFyeSBePSBtX2Nhc2VTd2l0Y2hfOworICAgICAgICByZXZlcnNlU2Vjb25kYXJ5ID0gdHJ1ZTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHRlcnRpYXJ5ID0gKGJ5dGUpKChDRSAmIENFX1JFTU9WRV9DT05USU5VQVRJT05fTUFTS18pKTsKKyAgICAgICAgdGVydGlhcnkgJj0gQ0VfUkVNT1ZFX0NBU0VfOworICAgICAgICByZXZlcnNlU2Vjb25kYXJ5ID0gZmFsc2U7CisgICAgICB9CisKKyAgICAgIHNlY29uZGFyeSA9ICgoQ0UgPj4+PSA4KSAmIExBU1RfQllURV9NQVNLXyk7CisgICAgICBwcmltYXJ5MiA9ICAoKENFID4+Pj0gOCkgJiBMQVNUX0JZVEVfTUFTS18pOworICAgICAgcHJpbWFyeTEgPSAgKENFID4+PiA4KTsKKworICAgICAgaWYocHJpbWFyeTEgIT0gMCkgeworICAgICAgICBsYXRpbk9uZUNFc19bY2hdIHw9IChwcmltYXJ5MSA8PCBzaC5wcmltU2hpZnQpOworICAgICAgICBzaC5wcmltU2hpZnQgLT0gODsKKyAgICAgIH0KKyAgICAgIGlmKHByaW1hcnkyICE9IDApIHsKKyAgICAgICAgaWYoc2gucHJpbVNoaWZ0IDwgMCkgeworICAgICAgICAgIGxhdGluT25lQ0VzX1tjaF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgbGF0aW5PbmVDRXNfW2xhdGluT25lVGFibGVMZW5fK2NoXSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICBsYXRpbk9uZUNFc19bMipsYXRpbk9uZVRhYmxlTGVuXytjaF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGxhdGluT25lQ0VzX1tjaF0gfD0gKHByaW1hcnkyIDw8IHNoLnByaW1TaGlmdCk7CisgICAgICAgIHNoLnByaW1TaGlmdCAtPSA4OworICAgICAgfQorICAgICAgaWYoc2Vjb25kYXJ5ICE9IDApIHsKKyAgICAgICAgaWYocmV2ZXJzZVNlY29uZGFyeSAmJiBtX2lzRnJlbmNoQ29sbGF0aW9uXykgeyAvLyByZXZlcnNlIHNlY29uZGFyeQorICAgICAgICAgIGxhdGluT25lQ0VzX1tsYXRpbk9uZVRhYmxlTGVuXytjaF0gPj4+PSA4OyAvLyBtYWtlIHNwYWNlIGZvciBzZWNvbmRhcnkKKyAgICAgICAgICBsYXRpbk9uZUNFc19bbGF0aW5PbmVUYWJsZUxlbl8rY2hdIHw9IChzZWNvbmRhcnkgPDwgMjQpOworICAgICAgICB9IGVsc2UgeyAvLyBub3JtYWwgY2FzZQorICAgICAgICAgIGxhdGluT25lQ0VzX1tsYXRpbk9uZVRhYmxlTGVuXytjaF0gfD0gKHNlY29uZGFyeSA8PCBzaC5zZWNTaGlmdCk7CisgICAgICAgIH0KKyAgICAgICAgc2guc2VjU2hpZnQgLT0gODsKKyAgICAgIH0KKyAgICAgIGlmKHRlcnRpYXJ5ICE9IDApIHsKKyAgICAgICAgbGF0aW5PbmVDRXNfWzIqbGF0aW5PbmVUYWJsZUxlbl8rY2hdIHw9ICh0ZXJ0aWFyeSA8PCBzaC50ZXJTaGlmdCk7CisgICAgICAgIHNoLnRlclNoaWZ0IC09IDg7CisgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCB2b2lkCisgICAgcmVzaXplTGF0aW5PbmVUYWJsZShpbnQgbmV3U2l6ZSkgeworICAgICAgICBpbnQgbmV3VGFibGVbXSA9IG5ldyBpbnRbMypuZXdTaXplXTsKKyAgICAgICAgaW50IHNpemVUb0NvcHkgPSAoKG5ld1NpemU8bGF0aW5PbmVUYWJsZUxlbl8pP25ld1NpemU6bGF0aW5PbmVUYWJsZUxlbl8pOworICAgICAgICAvL3VwcnZfbWVtc2V0KG5ld1RhYmxlLCAwLCBuZXdTaXplKnNpemVvZih1aW50MzJfdCkqMyk7IC8vIGF1dG9tYXRpY2FsbHkgY2xlYXJlZC4KKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShsYXRpbk9uZUNFc18sIDAsIG5ld1RhYmxlLCAwLCBzaXplVG9Db3B5KTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShsYXRpbk9uZUNFc18sIGxhdGluT25lVGFibGVMZW5fLCBuZXdUYWJsZSwgbmV3U2l6ZSwgc2l6ZVRvQ29weSk7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobGF0aW5PbmVDRXNfLCAyKmxhdGluT25lVGFibGVMZW5fLCBuZXdUYWJsZSwgMipuZXdTaXplLCBzaXplVG9Db3B5KTsKKyAgICAgICAgbGF0aW5PbmVUYWJsZUxlbl8gPSBuZXdTaXplOworICAgICAgICBsYXRpbk9uZUNFc18gPSBuZXdUYWJsZTsKKyAgICB9CisKKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gc2V0VXBMYXRpbk9uZSgpIHsKKyAgICAgIGlmKGxhdGluT25lQ0VzXyA9PSBudWxsKSB7CisgICAgICAgIGxhdGluT25lQ0VzXyA9IG5ldyBpbnRbMypMQVRJTk9ORVRBQkxFTEVOX107CisgICAgICAgIGxhdGluT25lVGFibGVMZW5fID0gTEFUSU5PTkVUQUJMRUxFTl87CisgICAgICB9IGVsc2UgeworICAgICAgICBBcnJheXMuZmlsbChsYXRpbk9uZUNFc18sIDApOworICAgICAgfQorICAgICAgaWYobV9Db250SW5mb18gPT0gbnVsbCkgeworICAgICAgICBtX0NvbnRJbmZvXyA9IG5ldyBDb250cmFjdGlvbkluZm8oKTsKKyAgICAgIH0KKyAgICAgIGNoYXIgY2ggPSAwOworICAgICAgLy9TdHJpbmdCdWZmZXIgc0NoID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgLy9Db2xsYXRpb25FbGVtZW50SXRlcmF0b3IgaXQgPSBnZXRDb2xsYXRpb25FbGVtZW50SXRlcmF0b3Ioc0NoLnRvU3RyaW5nKCkpOworICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGl0ID0gZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKCIiKTsKKworICAgICAgc2hpZnRWYWx1ZXMgcyA9IG5ldyBzaGlmdFZhbHVlcygpOworICAgICAgaW50IENFID0gMDsKKyAgICAgIGNoYXIgY29udHJhY3Rpb25PZmZzZXQgPSBFTkRPRkxBVElOT05FUkFOR0VfKzE7CisKKyAgICAgIGZvcihjaCA9IDA7IGNoIDw9IEVORE9GTEFUSU5PTkVSQU5HRV87IGNoKyspIHsKKyAgICAgICAgcy5wcmltU2hpZnQgPSAyNDsgcy5zZWNTaGlmdCA9IDI0OyBzLnRlclNoaWZ0ID0gMjQ7CisgICAgICAgIGlmKGNoIDwgMHgxMDApIHsKKyAgICAgICAgICBDRSA9IG1fdHJpZV8uZ2V0TGF0aW4xTGluZWFyVmFsdWUoY2gpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIENFID0gbV90cmllXy5nZXRMZWFkVmFsdWUoY2gpOworICAgICAgICAgIGlmKENFID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9OT1RfRk9VTkRfKSB7CisgICAgICAgICAgICBDRSA9IFVDQV8ubV90cmllXy5nZXRMZWFkVmFsdWUoY2gpOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZighaXNTcGVjaWFsKENFKSkgeworICAgICAgICAgIGFkZExhdGluT25lRW50cnkoY2gsIENFLCBzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBzd2l0Y2ggKFJ1bGVCYXNlZENvbGxhdG9yLmdldFRhZyhDRSkpIHsKKyAgICAgICAgICBjYXNlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9FWFBBTlNJT05fVEFHXzoKKyAgICAgICAgICBjYXNlIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9ESUdJVF9UQUdfOgorICAgICAgICAgICAgLy9zQ2guZGVsZXRlKDAsIHNDaC5sZW5ndGgoKSk7CisgICAgICAgICAgICAvL3NDaC5hcHBlbmQoY2gpOworICAgICAgICAgICAgLy9pdC5zZXRUZXh0KHNDaC50b1N0cmluZygpKTsKKyAgICAgICAgICAgIGl0LnNldFRleHQoVUNoYXJhY3Rlci50b1N0cmluZyhjaCkpOworICAgICAgICAgICAgd2hpbGUoKENFID0gaXQubmV4dCgpKSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgIGlmKHMucHJpbVNoaWZ0IDwgMCB8fCBzLnNlY1NoaWZ0IDwgMCB8fCBzLnRlclNoaWZ0IDwgMCkgeworICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1tjaF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfW2xhdGluT25lVGFibGVMZW5fK2NoXSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICAgICAgICBsYXRpbk9uZUNFc19bMipsYXRpbk9uZVRhYmxlTGVuXytjaF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgYWRkTGF0aW5PbmVFbnRyeShjaCwgQ0UsIHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgY2FzZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfQ09OVFJBQ1RJT05fVEFHXzoKKyAgICAgICAgICAgIC8vIGhlcmUgaXMgdGhlIHRyaWNrCisgICAgICAgICAgICAvLyBGMiBpcyBjb250cmFjdGlvbi4gV2UgZG8gc29tZXRoaW5nIHZlcnkgc2ltaWxhciB0byBjb250cmFjdGlvbnMKKyAgICAgICAgICAgIC8vIGJ1dCBoYXZlIHR3byBpbmRpY2VzLCBvbmUgaW4gdGhlIHJlYWwgY29udHJhY3Rpb24gdGFibGUgYW5kIHRoZQorICAgICAgICAgICAgLy8gb3RoZXIgdG8gd2hlcmUgd2Ugc3R1ZmZlZCB0aGluZ3MuIFRoaXMgaG9wZXMgdGhhdCB3ZSBkb24ndCBoYXZlCisgICAgICAgICAgICAvLyBtYW55IGNvbnRyYWN0aW9ucyAodGhpcyBzaG91bGQgd29yayBmb3IgbGF0aW4tMSB0YWJsZXMpLgorICAgICAgICAgICAgeworICAgICAgICAgICAgICBpZigoQ0UgJiAweDAwRkZGMDAwKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgbGF0aW5PbmVGYWlsZWRfID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBpbnQgVUNoYXJPZmZzZXQgPSAoQ0UgJiAweEZGRkZGRikgLSBtX2NvbnRyYWN0aW9uT2Zmc2V0XzsgLy9nZXRDb250cmFjdGlvbk9mZnNldChDRSldCisKKyAgICAgICAgICAgICAgQ0UgfD0gKGNvbnRyYWN0aW9uT2Zmc2V0ICYgMHhGRkYpIDw8IDEyOyAvLyBpbnNlcnQgdGhlIG9mZnNldCBpbiBsYXRpbi0xIHRhYmxlCisKKyAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfW2NoXSA9IENFOworICAgICAgICAgICAgICBsYXRpbk9uZUNFc19bbGF0aW5PbmVUYWJsZUxlbl8rY2hdID0gQ0U7CisgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1syKmxhdGluT25lVGFibGVMZW5fK2NoXSA9IENFOworCisgICAgICAgICAgICAgIC8vIFdlJ3JlIGdvaW5nIHRvIGp1bXAgaW50byBjb250cmFjdGlvbiB0YWJsZSwgcGljayB0aGUgZWxlbWVudHMKKyAgICAgICAgICAgICAgLy8gYW5kIHVzZSB0aGVtCisgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgIC8vQ0UgPSAqKGNvbnRyYWN0aW9uQ0VzICsgKFVDaGFyT2Zmc2V0IC0gY29udHJhY3Rpb25JbmRleCkpOworICAgICAgICAgICAgICAgICAgQ0UgPSBtX2NvbnRyYWN0aW9uQ0VfW1VDaGFyT2Zmc2V0XTsKKyAgICAgICAgICAgICAgICAgIGlmKGlzU3BlY2lhbChDRSkgCisgICAgICAgICAgICAgICAgICAgICAmJiBnZXRUYWcoQ0UpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9FWFBBTlNJT05fVEFHXykgeworICAgICAgICAgICAgICAgICAgICBpbnQgaTsgICAgLyogZ2VuZXJhbCBjb3VudGVyICovCisgICAgICAgICAgICAgICAgICAgIC8vdWludDMyX3QgKkNFT2Zmc2V0ID0gKHVpbnQzMl90ICopaW1hZ2UrZ2V0RXhwYW5zaW9uT2Zmc2V0KENFKTsgLyogZmluZCB0aGUgb2Zmc2V0IHRvIGV4cGFuc2lvbiB0YWJsZSAqLworICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKChDRSAmIDB4RkZGRkYwKSA+PiA0KSAtIG1fZXhwYW5zaW9uT2Zmc2V0XzsgLy9pdC5nZXRFeHBhbnNpb25PZmZzZXQodGhpcywgQ0UpOworICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSA9IENFICYgMHhGOyAvLyBnZXRFeHBhbnNpb25Db3VudChDRSk7CisgICAgICAgICAgICAgICAgICAgIC8vQ0UgPSAqQ0VPZmZzZXQrKzsKKyAgICAgICAgICAgICAgICAgICAgaWYoc2l6ZSAhPSAwKSB7IC8qIGlmIHRoZXJlIGFyZSBsZXNzIHRoYW4gMTYgZWxlbWVudHMgaW4gZXhwYW5zaW9uLCB3ZSBkb24ndCB0ZXJtaW5hdGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICBmb3IoaSA9IDA7IGk8c2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihzLnByaW1TaGlmdCA8IDAgfHwgcy5zZWNTaGlmdCA8IDAgfHwgcy50ZXJTaGlmdCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfW2NvbnRyYWN0aW9uT2Zmc2V0XSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfW2xhdGluT25lVGFibGVMZW5fK2NvbnRyYWN0aW9uT2Zmc2V0XSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfWzIqbGF0aW5PbmVUYWJsZUxlbl8rY29udHJhY3Rpb25PZmZzZXRdID0gQkFJTF9PVVRfQ0VfOworICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZExhdGluT25lRW50cnkoY29udHJhY3Rpb25PZmZzZXQsIG1fZXhwYW5zaW9uX1tvZmZzZXQraV0sIHMpOworICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsgLyogZWxzZSwgd2UgZG8gKi8KKyAgICAgICAgICAgICAgICAgICAgICB3aGlsZShtX2V4cGFuc2lvbl9bb2Zmc2V0XSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihzLnByaW1TaGlmdCA8IDAgfHwgcy5zZWNTaGlmdCA8IDAgfHwgcy50ZXJTaGlmdCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfW2NvbnRyYWN0aW9uT2Zmc2V0XSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfW2xhdGluT25lVGFibGVMZW5fK2NvbnRyYWN0aW9uT2Zmc2V0XSA9IEJBSUxfT1VUX0NFXzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfWzIqbGF0aW5PbmVUYWJsZUxlbl8rY29udHJhY3Rpb25PZmZzZXRdID0gQkFJTF9PVVRfQ0VfOworICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZExhdGluT25lRW50cnkoY29udHJhY3Rpb25PZmZzZXQsIG1fZXhwYW5zaW9uX1tvZmZzZXQrK10sIHMpOworICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb250cmFjdGlvbk9mZnNldCsrOworICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKCFpc1NwZWNpYWwoQ0UpKSB7CisgICAgICAgICAgICAgICAgICAgIGFkZExhdGluT25lRW50cnkoY29udHJhY3Rpb25PZmZzZXQrKywgQ0UsIHMpOworICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICBsYXRpbk9uZUNFc19bY29udHJhY3Rpb25PZmZzZXRdID0gQkFJTF9PVVRfQ0VfOworICAgICAgICAgICAgICAgICAgICAgIGxhdGluT25lQ0VzX1tsYXRpbk9uZVRhYmxlTGVuXytjb250cmFjdGlvbk9mZnNldF0gPSBCQUlMX09VVF9DRV87CisgICAgICAgICAgICAgICAgICAgICAgbGF0aW5PbmVDRXNfWzIqbGF0aW5PbmVUYWJsZUxlbl8rY29udHJhY3Rpb25PZmZzZXRdID0gQkFJTF9PVVRfQ0VfOworICAgICAgICAgICAgICAgICAgICAgIGNvbnRyYWN0aW9uT2Zmc2V0Kys7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICBVQ2hhck9mZnNldCsrOworICAgICAgICAgICAgICAgICAgcy5wcmltU2hpZnQgPSAyNDsgcy5zZWNTaGlmdCA9IDI0OyBzLnRlclNoaWZ0ID0gMjQ7CisgICAgICAgICAgICAgICAgICBpZihjb250cmFjdGlvbk9mZnNldCA9PSBsYXRpbk9uZVRhYmxlTGVuXykgeyAvLyB3ZSBuZWVkIHRvIHJlYWxsb2NhdGUKKyAgICAgICAgICAgICAgICAgICByZXNpemVMYXRpbk9uZVRhYmxlKDIqbGF0aW5PbmVUYWJsZUxlbl8pOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9IHdoaWxlKG1fY29udHJhY3Rpb25JbmRleF9bVUNoYXJPZmZzZXRdICE9IDB4RkZGRik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgbGF0aW5PbmVGYWlsZWRfID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIC8vIGNvbXBhY3QgdGFibGUKKyAgICAgIGlmKGNvbnRyYWN0aW9uT2Zmc2V0IDwgbGF0aW5PbmVUYWJsZUxlbl8pIHsKKyAgICAgICAgcmVzaXplTGF0aW5PbmVUYWJsZShjb250cmFjdGlvbk9mZnNldCk7CisgICAgICB9CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIGNsYXNzIENvbnRyYWN0aW9uSW5mbyB7CisgICAgICAgIGludCBpbmRleDsKKyAgICB9CisKKyAgICBDb250cmFjdGlvbkluZm8gbV9Db250SW5mb187CisKKyAgICBwcml2YXRlIGludAorICAgIGdldExhdGluT25lQ29udHJhY3Rpb24oaW50IHN0cmVuZ3RoLCBpbnQgQ0UsIFN0cmluZyBzKSB7CisgICAgLy9pbnQgc3RyZW5ndGgsIGludCBDRSwgU3RyaW5nIHMsIEludGVnZXIgaW5kKSB7CisgICAgICBpbnQgbGVuID0gcy5sZW5ndGgoKTsKKyAgICAgIC8vY29uc3QgVUNoYXIgKlVDaGFyT2Zmc2V0ID0gKFVDaGFyICopY29sbC0+aW1hZ2UrZ2V0Q29udHJhY3RPZmZzZXQoQ0UmMHhGRkYpOworICAgICAgaW50IFVDaGFyT2Zmc2V0ID0gKENFICYgMHhGRkYpIC0gbV9jb250cmFjdGlvbk9mZnNldF87CisgICAgICBpbnQgb2Zmc2V0ID0gMTsKKyAgICAgIGludCBsYXRpbk9uZU9mZnNldCA9IChDRSAmIDB4MDBGRkYwMDApID4+PiAxMjsKKyAgICAgIGNoYXIgc2NoYXIgPSAwLCB0Y2hhciA9IDA7CisKKyAgICAgIGZvcig7OykgeworICAgICAgICAvKgorICAgICAgICBpZihsZW4gPT0gLTEpIHsKKyAgICAgICAgICBpZihzWyppbmRleF0gPT0gMCkgeyAvLyBlbmQgb2Ygc3RyaW5nCisgICAgICAgICAgICByZXR1cm4oY29sbC0+bGF0aW5PbmVDRXNbc3RyZW5ndGgqY29sbC0+bGF0aW5PbmVUYWJsZUxlbitsYXRpbk9uZU9mZnNldF0pOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzY2hhciA9IHNbKmluZGV4XTsKKyAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICovCisgICAgICAgICAgaWYobV9Db250SW5mb18uaW5kZXggPT0gbGVuKSB7CisgICAgICAgICAgICByZXR1cm4obGF0aW5PbmVDRXNfW3N0cmVuZ3RoKmxhdGluT25lVGFibGVMZW5fK2xhdGluT25lT2Zmc2V0XSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNjaGFyID0gcy5jaGFyQXQobV9Db250SW5mb18uaW5kZXgpOworICAgICAgICAgIH0KKyAgICAgICAgLy99CisKKyAgICAgICAgd2hpbGUoc2NoYXIgPiAodGNoYXIgPSBtX2NvbnRyYWN0aW9uSW5kZXhfW1VDaGFyT2Zmc2V0K29mZnNldF0vKiooVUNoYXJPZmZzZXQrb2Zmc2V0KSovKSkgeyAvKiBzaW5jZSB0aGUgY29udHJhY3Rpb24gY29kZXBvaW50cyBzaG91bGQgYmUgb3JkZXJlZCwgd2Ugc2tpcCBhbGwgdGhhdCBhcmUgc21hbGxlciAqLworICAgICAgICAgIG9mZnNldCsrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNjaGFyID09IHRjaGFyKSB7CisgICAgICAgICAgbV9Db250SW5mb18uaW5kZXgrKzsKKyAgICAgICAgICByZXR1cm4obGF0aW5PbmVDRXNfW3N0cmVuZ3RoKmxhdGluT25lVGFibGVMZW5fK2xhdGluT25lT2Zmc2V0K29mZnNldF0pOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgIGlmKHNjaGFyICA+IEVORE9GTEFUSU5PTkVSQU5HRV8gLyomIDB4RkYwMCovKSB7CisgICAgICAgICAgICByZXR1cm4gQkFJTF9PVVRfQ0VfOworICAgICAgICAgIH0KKyAgICAgICAgICAvLyBza2lwIGNvbXBsZXRlbHkgaWdub3JhYmxlcworICAgICAgICAgIGludCBpc1plcm9DRSA9IG1fdHJpZV8uZ2V0TGVhZFZhbHVlKHNjaGFyKTsgLy9VVFJJRV9HRVQzMl9GUk9NX0xFQUQoY29sbC0+bWFwcGluZywgc2NoYXIpOworICAgICAgICAgIGlmKGlzWmVyb0NFID09IDApIHsgLy8gd2UgaGF2ZSB0byBpZ25vcmUgY29tcGxldGVseSBpZ25vcmFibGVzCisgICAgICAgICAgICBtX0NvbnRJbmZvXy5pbmRleCsrOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgfQorCisgICAgICAgICAgcmV0dXJuKGxhdGluT25lQ0VzX1tzdHJlbmd0aCpsYXRpbk9uZVRhYmxlTGVuXytsYXRpbk9uZU9mZnNldF0pOworICAgICAgICB9CisgICAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGEgZmFzdCBzdHJjb2xsLCBnZWFyZWQgdG93YXJkcyB0ZXh0IGluIExhdGluLTEuCisgICAgICogSXQgc3VwcG9ydHMgY29udHJhY3Rpb25zIG9mIHNpemUgdHdvLCBGcmVuY2ggc2Vjb25kYXJpZXMKKyAgICAgKiBhbmQgY2FzZSBzd2l0Y2hpbmcuIFlvdSBjYW4gdXNlIGl0IHdpdGggc3RyZW5ndGhzIHByaW1hcnkKKyAgICAgKiB0byB0ZXJ0aWFyeS4gSXQgZG9lcyBub3Qgc3VwcG9ydCBzaGlmdGVkIGFuZCBjYXNlIGxldmVsLgorICAgICAqIEl0IHJlbGllcyBvbiB0aGUgdGFibGUgYnVpbGQgYnkgc2V0dXBMYXRpbjFUYWJsZS4gSWYgaXQKKyAgICAgKiBkb2Vzbid0IHVuZGVyc3RhbmQgc29tZXRoaW5nLCBpdCB3aWxsIGdvIHRvIHRoZSByZWd1bGFyCisgICAgICogc3RyY29sbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludAorICAgIGNvbXBhcmVVc2VMYXRpbjEoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCwgaW50IHN0YXJ0T2Zmc2V0KQorICAgIHsKKyAgICAgICAgaW50IHNMZW4gPSBzb3VyY2UubGVuZ3RoKCk7CisgICAgICAgIGludCB0TGVuID0gdGFyZ2V0Lmxlbmd0aCgpOworCisgICAgICAgIGludCBzdHJlbmd0aCA9IGdldFN0cmVuZ3RoKCk7CisKKyAgICAgICAgaW50IHNJbmRleCA9IHN0YXJ0T2Zmc2V0LCB0SW5kZXggPSBzdGFydE9mZnNldDsKKyAgICAgICAgY2hhciBzQ2hhciA9IDAsIHRDaGFyID0gMDsKKyAgICAgICAgaW50IHNPcmRlcj0wLCB0T3JkZXI9MDsKKworICAgICAgICBib29sZWFuIGVuZE9mU291cmNlID0gZmFsc2U7CisKKyAgICAgICAgLy91aW50MzJfdCAqZWxlbWVudHMgPSBjb2xsLT5sYXRpbk9uZUNFczsKKworICAgICAgICBib29sZWFuIGhhdmVDb250cmFjdGlvbnMgPSBmYWxzZTsgLy8gaWYgd2UgaGF2ZSBjb250cmFjdGlvbnMgaW4gb3VyIHN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGNhbm5vdCBkbyBGcmVuY2ggc2Vjb25kYXJ5CisKKyAgICAgICAgaW50IG9mZnNldCA9IGxhdGluT25lVGFibGVMZW5fOworCisgICAgICAgIC8vIERvIHRoZSBwcmltYXJ5IGxldmVsCisgICAgcHJpbUxvb3A6CisgICAgICAgIGZvcig7OykgeworICAgICAgICAgIHdoaWxlKHNPcmRlcj09MCkgeyAvLyB0aGlzIGxvb3Agc2tpcHMgcHJpbWFyeSBpZ25vcmFibGVzCisgICAgICAgICAgICAvLyBzT3JkZXI9Z2V0TmV4dGxhdGluT25lQ0Uoc291cmNlKTsKKyAgICAgICAgICAgICAgaWYoc0luZGV4PT1zTGVuKSB7CisgICAgICAgICAgICAgICAgZW5kT2ZTb3VyY2UgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIHNDaGFyPXNvdXJjZS5jaGFyQXQoc0luZGV4KyspOyAvL1tzSW5kZXgrK107CisgICAgICAgICAgICAvL30KKyAgICAgICAgICAgIGlmKHNDaGFyID4gRU5ET0ZMQVRJTk9ORVJBTkdFXykgeyAvLyBpZiB3ZSBlbmNvdW50ZXIgbm9uLWxhdGluLTEsIHdlIGJhaWwgb3V0CisgICAgICAgICAgICAgIC8vZnByaW50ZihzdGRlcnIsICJSIik7CisgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlUmVndWxhcihzb3VyY2UsIHRhcmdldCwgc3RhcnRPZmZzZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc09yZGVyID0gbGF0aW5PbmVDRXNfW3NDaGFyXTsKKyAgICAgICAgICAgIGlmKGlzU3BlY2lhbChzT3JkZXIpKSB7IC8vIGlmIHdlIGdvdCBhIHNwZWNpYWwKKyAgICAgICAgICAgICAgLy8gc3BlY2lhbHMgY2FuIGJhc2ljYWxseSBiZSBlaXRoZXIgY29udHJhY3Rpb25zIG9yIGJhaWwtb3V0IHNpZ25zLiBJZiB3ZSBnZXQgYW55dGhpbmcKKyAgICAgICAgICAgICAgLy8gZWxzZSwgd2UnbGwgYmFpbCBvdXQgYW55d2FzeQorICAgICAgICAgICAgICBpZihnZXRUYWcoc09yZGVyKSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuQ0VfQ09OVFJBQ1RJT05fVEFHXykgeworICAgICAgICAgICAgICAgIG1fQ29udEluZm9fLmluZGV4ID0gc0luZGV4OworICAgICAgICAgICAgICAgIHNPcmRlciA9IGdldExhdGluT25lQ29udHJhY3Rpb24oMCwgc09yZGVyLCBzb3VyY2UpOworICAgICAgICAgICAgICAgIHNJbmRleCA9IG1fQ29udEluZm9fLmluZGV4OworICAgICAgICAgICAgICAgIGhhdmVDb250cmFjdGlvbnMgPSB0cnVlOyAvLyBpZiB0aGVyZSBhcmUgY29udHJhY3Rpb25zLCB3ZSBjYW5ub3QgZG8gRnJlbmNoIHNlY29uZGFyeQorICAgICAgICAgICAgICAgIC8vIEhvd2V2ZXIsIGlmIHRoZXJlIGFyZSBjb250cmFjdGlvbnMgaW4gdGhlIHRhYmxlLCBidXQgd2UgYWx3YXlzIHVzZSBqdXN0IG9uZSBjaGFyLAorICAgICAgICAgICAgICAgIC8vIHdlIG1pZ2h0IGJlIGFibGUgdG8gZG8gRnJlbmNoLiBUaGlzIHNob3VsZCBiZSBjaGVja2VkIG91dC4KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBpZihpc1NwZWNpYWwoc09yZGVyKSAvKj09IFVDT0xfQkFJTF9PVVRfQ0UqLykgeworICAgICAgICAgICAgICAgIC8vZnByaW50ZihzdGRlcnIsICJTIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVSZWd1bGFyKHNvdXJjZSwgdGFyZ2V0LCBzdGFydE9mZnNldCk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisKKyAgICAgICAgICB3aGlsZSh0T3JkZXI9PTApIHsgIC8vIHRoaXMgbG9vcCBza2lwcyBwcmltYXJ5IGlnbm9yYWJsZXMKKyAgICAgICAgICAgIC8vIHRPcmRlcj1nZXROZXh0bGF0aW5PbmVDRSh0YXJnZXQpOworICAgICAgICAgICAgaWYodEluZGV4PT10TGVuKSB7CisgICAgICAgICAgICAgIGlmKGVuZE9mU291cmNlKSB7CisgICAgICAgICAgICAgICAgYnJlYWsgcHJpbUxvb3A7CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRDaGFyPXRhcmdldC5jaGFyQXQodEluZGV4KyspOyAvL1t0SW5kZXgrK107CisgICAgICAgICAgICBpZih0Q2hhciA+IEVORE9GTEFUSU5PTkVSQU5HRV8pIHsgLy8gaWYgd2UgZW5jb3VudGVyIG5vbi1sYXRpbi0xLCB3ZSBiYWlsIG91dAorICAgICAgICAgICAgICAvL2ZwcmludGYoc3RkZXJyLCAiUiIpOworICAgICAgICAgICAgICByZXR1cm4gY29tcGFyZVJlZ3VsYXIoc291cmNlLCB0YXJnZXQsIHN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRPcmRlciA9IGxhdGluT25lQ0VzX1t0Q2hhcl07CisgICAgICAgICAgICBpZihpc1NwZWNpYWwodE9yZGVyKSkgeworICAgICAgICAgICAgICAvLyBIYW5kbGluZyBzcGVjaWFscywgc2VlIHRoZSBjb21tZW50cyBmb3Igc291cmNlCisgICAgICAgICAgICAgIGlmKGdldFRhZyh0T3JkZXIpID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5DRV9DT05UUkFDVElPTl9UQUdfKSB7CisgICAgICAgICAgICAgICAgbV9Db250SW5mb18uaW5kZXggPSB0SW5kZXg7CisgICAgICAgICAgICAgICAgdE9yZGVyID0gZ2V0TGF0aW5PbmVDb250cmFjdGlvbigwLCB0T3JkZXIsIHRhcmdldCk7CisgICAgICAgICAgICAgICAgdEluZGV4ID0gbV9Db250SW5mb18uaW5kZXg7CisgICAgICAgICAgICAgICAgaGF2ZUNvbnRyYWN0aW9ucyA9IHRydWU7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgaWYoaXNTcGVjaWFsKHRPcmRlcikvKj09IFVDT0xfQkFJTF9PVVRfQ0UqLykgeworICAgICAgICAgICAgICAgIC8vZnByaW50ZihzdGRlcnIsICJTIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVSZWd1bGFyKHNvdXJjZSwgdGFyZ2V0LCBzdGFydE9mZnNldCk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgICAgaWYoZW5kT2ZTb3VyY2UpIHsgLy8gc291cmNlIGlzIGZpbmlzaGVkLCBidXQgdGFyZ2V0IGlzIG5vdCwgc2F5IHRoZSByZXN1bHQuCisgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZihzT3JkZXIgPT0gdE9yZGVyKSB7IC8vIGlmIHdlIGhhdmUgc2FtZSBDRXMsIHdlIGNvbnRpbnVlIHRoZSBsb29wCisgICAgICAgICAgICBzT3JkZXIgPSAwOyB0T3JkZXIgPSAwOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGNvbXBhcmUgY3VycmVudCB0b3AgYnl0ZXMKKyAgICAgICAgICAgIGlmKCgoc09yZGVyXnRPcmRlcikmMHhGRjAwMDAwMCkhPTApIHsKKyAgICAgICAgICAgICAgLy8gdG9wIGJ5dGVzIGRpZmZlciwgcmV0dXJuIGRpZmZlcmVuY2UKKyAgICAgICAgICAgICAgaWYoc09yZGVyID4+PiA4IDwgdE9yZGVyID4+PiA4KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIC8vIGluc3RlYWQgb2YgcmV0dXJuIChpbnQzMl90KShzT3JkZXI+PjI0KS0oaW50MzJfdCkodE9yZGVyPj4yNCk7CisgICAgICAgICAgICAgIC8vIHNpbmNlIHdlIG11c3QgcmV0dXJuIGVudW0gdmFsdWUKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gdG9wIGJ5dGVzIG1hdGNoLCBjb250aW51ZSB3aXRoIGZvbGxvd2luZyBieXRlcworICAgICAgICAgICAgc09yZGVyPDw9ODsKKyAgICAgICAgICAgIHRPcmRlcjw8PTg7CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gYWZ0ZXIgcHJpbWFyeSBsb29wLCB3ZSBkZWZpbml0ZWx5IGtub3cgdGhlIHNpemVzIG9mIHN0cmluZ3MsCisgICAgICAgIC8vIHNvIHdlIHNldCBpdCBhbmQgdXNlIHNpbXBsZXIgbG9vcCBmb3Igc2Vjb25kYXJpZXMgYW5kIHRlcnRpYXJpZXMKKyAgICAgICAgLy9zTGVuID0gc0luZGV4OyB0TGVuID0gdEluZGV4OworICAgICAgICBpZihzdHJlbmd0aCA+PSBTRUNPTkRBUlkpIHsKKyAgICAgICAgICAvLyBhZGp1c3QgdGhlIHRhYmxlIGJlZ2dpbmluZworICAgICAgICAgIC8vbGF0aW5PbmVDRXNfICs9IGNvbGwtPmxhdGluT25lVGFibGVMZW47CisgICAgICAgICAgZW5kT2ZTb3VyY2UgPSBmYWxzZTsKKworICAgICAgICAgIGlmKCFtX2lzRnJlbmNoQ29sbGF0aW9uXykgeyAvLyBub24gRnJlbmNoCisgICAgICAgICAgICAvLyBUaGlzIGxvb3AgaXMgYSBzaW1wbGlmaWVkIGNvcHkgb2YgcHJpbWFyeSBsb29wCisgICAgICAgICAgICAvLyBhdCB0aGlzIHBvaW50IHdlIGtub3cgdGhhdCB3aG9sZSBzdHJpbmdzIGFyZSBsYXRpbi0xLCBzbyB3ZSBkb24ndAorICAgICAgICAgICAgLy8gY2hlY2sgZm9yIHRoYXQuIFdlIGFsc28ga25vdyB0aGF0IHdlIG9ubHkgaGF2ZSBjb250cmFjdGlvbnMgYXMKKyAgICAgICAgICAgIC8vIHNwZWNpYWxzLgorICAgICAgICAgICAgLy9zSW5kZXggPSAwOyB0SW5kZXggPSAwOworICAgICAgICAgICAgc0luZGV4ID0gc3RhcnRPZmZzZXQ7IHRJbmRleCA9IHN0YXJ0T2Zmc2V0OworICAgIHNlY0xvb3A6CisgICAgICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgICAgd2hpbGUoc09yZGVyPT0wKSB7CisgICAgICAgICAgICAgICAgaWYoc0luZGV4PT1zTGVuKSB7CisgICAgICAgICAgICAgICAgICBlbmRPZlNvdXJjZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc0NoYXI9c291cmNlLmNoYXJBdChzSW5kZXgrKyk7IC8vW3NJbmRleCsrXTsKKyAgICAgICAgICAgICAgICBzT3JkZXIgPSBsYXRpbk9uZUNFc19bb2Zmc2V0K3NDaGFyXTsKKyAgICAgICAgICAgICAgICBpZihpc1NwZWNpYWwoc09yZGVyKSkgeworICAgICAgICAgICAgICAgICAgICBtX0NvbnRJbmZvXy5pbmRleCA9IHNJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgc09yZGVyID0gZ2V0TGF0aW5PbmVDb250cmFjdGlvbigxLCBzT3JkZXIsIHNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIHNJbmRleCA9IG1fQ29udEluZm9fLmluZGV4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHdoaWxlKHRPcmRlcj09MCkgeworICAgICAgICAgICAgICAgIGlmKHRJbmRleD09dExlbikgeworICAgICAgICAgICAgICAgICAgaWYoZW5kT2ZTb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgc2VjTG9vcDsKKyAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0Q2hhcj10YXJnZXQuY2hhckF0KHRJbmRleCsrKTsgLy9bdEluZGV4KytdOworICAgICAgICAgICAgICAgIHRPcmRlciA9IGxhdGluT25lQ0VzX1tvZmZzZXQrdENoYXJdOworICAgICAgICAgICAgICAgIGlmKGlzU3BlY2lhbCh0T3JkZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fQ29udEluZm9fLmluZGV4ID0gdEluZGV4OworICAgICAgICAgICAgICAgICAgICB0T3JkZXIgPSBnZXRMYXRpbk9uZUNvbnRyYWN0aW9uKDEsIHRPcmRlciwgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAgICAgdEluZGV4ID0gbV9Db250SW5mb18uaW5kZXg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGlmKGVuZE9mU291cmNlKSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICBpZihzT3JkZXIgPT0gdE9yZGVyKSB7CisgICAgICAgICAgICAgICAgc09yZGVyID0gMDsgdE9yZGVyID0gMDsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBzZWUgcHJpbWFyeSBsb29wIGZvciBjb21tZW50cyBvbiB0aGlzCisgICAgICAgICAgICAgICAgaWYoKChzT3JkZXJedE9yZGVyKSYweEZGMDAwMDAwKSE9MCkgeworICAgICAgICAgICAgICAgICAgaWYoc09yZGVyID4+PiA4IDwgdE9yZGVyID4+PiA4KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzT3JkZXI8PD04OworICAgICAgICAgICAgICAgIHRPcmRlcjw8PTg7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9IGVsc2UgeyAvLyBGcmVuY2gKKyAgICAgICAgICAgIGlmKGhhdmVDb250cmFjdGlvbnMpIHsgLy8gaWYgd2UgaGF2ZSBjb250cmFjdGlvbnMsIHdlIGhhdmUgdG8gYmFpbCBvdXQKKyAgICAgICAgICAgICAgLy8gc2luY2Ugd2UgZG9uJ3QgcmVhbGx5IGtub3cgaG93IHRvIGhhbmRsZSB0aGVtIGhlcmUKKyAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVSZWd1bGFyKHNvdXJjZSwgdGFyZ2V0LCBzdGFydE9mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBGb3IgRnJlbmNoLCB3ZSBnbyBiYWNrd2FyZHMKKyAgICAgICAgICAgIHNJbmRleCA9IHNMZW47IHRJbmRleCA9IHRMZW47CisgICAgc2VjRkxvb3A6CisgICAgICAgICAgICBmb3IoOzspIHsKKyAgICAgICAgICAgICAgd2hpbGUoc09yZGVyPT0wKSB7CisgICAgICAgICAgICAgICAgaWYoc0luZGV4PT1zdGFydE9mZnNldCkgeworICAgICAgICAgICAgICAgICAgZW5kT2ZTb3VyY2UgPSB0cnVlOworICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNDaGFyPXNvdXJjZS5jaGFyQXQoLS1zSW5kZXgpOyAvL1stLXNJbmRleF07CisgICAgICAgICAgICAgICAgc09yZGVyID0gbGF0aW5PbmVDRXNfW29mZnNldCtzQ2hhcl07CisgICAgICAgICAgICAgICAgLy8gZG9uJ3QgZXZlbiBsb29rIGZvciBjb250cmFjdGlvbnMKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHdoaWxlKHRPcmRlcj09MCkgeworICAgICAgICAgICAgICAgIGlmKHRJbmRleD09c3RhcnRPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICAgIGlmKGVuZE9mU291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrIHNlY0ZMb29wOworICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRDaGFyPXRhcmdldC5jaGFyQXQoLS10SW5kZXgpOyAvL1stLXRJbmRleF07CisgICAgICAgICAgICAgICAgdE9yZGVyID0gbGF0aW5PbmVDRXNfW29mZnNldCt0Q2hhcl07CisgICAgICAgICAgICAgICAgLy8gZG9uJ3QgZXZlbiBsb29rIGZvciBjb250cmFjdGlvbnMKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBpZihlbmRPZlNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgaWYoc09yZGVyID09IHRPcmRlcikgeworICAgICAgICAgICAgICAgIHNPcmRlciA9IDA7IHRPcmRlciA9IDA7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gc2VlIHRoZSBwcmltYXJ5IGxvb3AgZm9yIGNvbW1lbnRzCisgICAgICAgICAgICAgICAgaWYoKChzT3JkZXJedE9yZGVyKSYweEZGMDAwMDAwKSE9MCkgeworICAgICAgICAgICAgICAgICAgaWYoc09yZGVyID4+PiA4IDwgdE9yZGVyID4+PiA4KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzT3JkZXI8PD04OworICAgICAgICAgICAgICAgIHRPcmRlcjw8PTg7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZihzdHJlbmd0aCA+PSBURVJUSUFSWSkgeworICAgICAgICAgIC8vIHRlcnRpYXJ5IGxvb3AgaXMgdGhlIHNhbWUgYXMgc2Vjb25kYXJ5IChleGNlcHQgbm8gRnJlbmNoKQorICAgICAgICAgIG9mZnNldCArPSBsYXRpbk9uZVRhYmxlTGVuXzsKKyAgICAgICAgICAvL3NJbmRleCA9IDA7IHRJbmRleCA9IDA7CisgICAgICAgICAgc0luZGV4ID0gc3RhcnRPZmZzZXQ7IHRJbmRleCA9IHN0YXJ0T2Zmc2V0OworICAgICAgICAgIGVuZE9mU291cmNlID0gZmFsc2U7CisgICAgICAgICAgZm9yKDs7KSB7CisgICAgICAgICAgICB3aGlsZShzT3JkZXI9PTApIHsKKyAgICAgICAgICAgICAgaWYoc0luZGV4PT1zTGVuKSB7CisgICAgICAgICAgICAgICAgZW5kT2ZTb3VyY2UgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIHNDaGFyPXNvdXJjZS5jaGFyQXQoc0luZGV4KyspOyAvL1tzSW5kZXgrK107CisgICAgICAgICAgICAgIHNPcmRlciA9IGxhdGluT25lQ0VzX1tvZmZzZXQrc0NoYXJdOworICAgICAgICAgICAgICBpZihpc1NwZWNpYWwoc09yZGVyKSkgeworICAgICAgICAgICAgICAgIG1fQ29udEluZm9fLmluZGV4ID0gc0luZGV4OworICAgICAgICAgICAgICAgIHNPcmRlciA9IGdldExhdGluT25lQ29udHJhY3Rpb24oMiwgc09yZGVyLCBzb3VyY2UpOworICAgICAgICAgICAgICAgIHNJbmRleCA9IG1fQ29udEluZm9fLmluZGV4OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSh0T3JkZXI9PTApIHsKKyAgICAgICAgICAgICAgaWYodEluZGV4PT10TGVuKSB7CisgICAgICAgICAgICAgICAgaWYoZW5kT2ZTb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgIHJldHVybiAwOyAvLyBpZiBib3RoIHN0cmluZ3MgYXJlIGF0IHRoZSBlbmQsIHRoZXkgYXJlIGVxdWFsCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB0Q2hhcj10YXJnZXQuY2hhckF0KHRJbmRleCsrKTsgLy9bdEluZGV4KytdOworICAgICAgICAgICAgICB0T3JkZXIgPSBsYXRpbk9uZUNFc19bb2Zmc2V0K3RDaGFyXTsKKyAgICAgICAgICAgICAgaWYoaXNTcGVjaWFsKHRPcmRlcikpIHsKKyAgICAgICAgICAgICAgICBtX0NvbnRJbmZvXy5pbmRleCA9IHRJbmRleDsKKyAgICAgICAgICAgICAgICB0T3JkZXIgPSBnZXRMYXRpbk9uZUNvbnRyYWN0aW9uKDIsIHRPcmRlciwgdGFyZ2V0KTsKKyAgICAgICAgICAgICAgICB0SW5kZXggPSBtX0NvbnRJbmZvXy5pbmRleDsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYoZW5kT2ZTb3VyY2UpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihzT3JkZXIgPT0gdE9yZGVyKSB7CisgICAgICAgICAgICAgIHNPcmRlciA9IDA7IHRPcmRlciA9IDA7CisgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgaWYoKChzT3JkZXJedE9yZGVyKSYweGZmMDAwMDAwKSE9MCkgeworICAgICAgICAgICAgICAgIGlmKHNPcmRlciA+Pj4gOCA8IHRPcmRlciA+Pj4gOCkgeworICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgc09yZGVyPDw9ODsKKyAgICAgICAgICAgICAgdE9yZGVyPDw9ODsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIC8qKiAKKyAgICAgKiBHZXQgdGhlIHZlcnNpb24gb2YgdGhpcyBjb2xsYXRvciBvYmplY3QuCisgICAgICogQHJldHVybiB0aGUgdmVyc2lvbiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sbGF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgVmVyc2lvbkluZm8gZ2V0VmVyc2lvbigpIHsKKyAgICAgICAgLyogUnVuVGltZSB2ZXJzaW9uICAqLworICAgICAgICBpbnQgcnRWZXJzaW9uID0gVmVyc2lvbkluZm8uVUNPTF9SVU5USU1FX1ZFUlNJT04uZ2V0TWFqb3IoKTsKKyAgICAgICAgLyogQnVpbGRlciB2ZXJzaW9uKi8KKyAgICAgICAgaW50IGJkVmVyc2lvbiA9IG1fdmVyc2lvbl8uZ2V0TWFqb3IoKTsKKworICAgICAgICAvKiBDaGFyc2V0IFZlcnNpb24uIE5lZWQgdG8gZ2V0IHRoZSB2ZXJzaW9uIGZyb20gY252IGZpbGVzCisgICAgICAgICAqIG1ha2Vjb252IHNob3VsZCBwb3B1bGF0ZSBjbnYgZmlsZXMgd2l0aCB2ZXJzaW9uIGFuZAorICAgICAgICAgKiBhbiBhcGkgaGFzIHRvIGJlIHByb3ZpZGVkIGluIHVjbnYuaCB0byBvYnRhaW4gdGhpcyB2ZXJzaW9uCisgICAgICAgICAqLworICAgICAgICBpbnQgY3NWZXJzaW9uID0gMDsKKworICAgICAgICAvKiBjb21iaW5lIHRoZSB2ZXJzaW9uIGluZm8gKi8KKyAgICAgICAgaW50IGNtYlZlcnNpb24gPSAoKHJ0VmVyc2lvbjw8MTEpIHwgKGJkVmVyc2lvbjw8NikgfCAoY3NWZXJzaW9uKSkgJiAweEZGRkY7CisgICAgICAgIAorICAgICAgICAvKiBUYWlsb3JpbmcgcnVsZXMgKi8KKyAgICAgICAgcmV0dXJuIFZlcnNpb25JbmZvLmdldEluc3RhbmNlKGNtYlZlcnNpb24+PjgsIAorICAgICAgICAgICAgICAgIGNtYlZlcnNpb24gJiAweEZGLCAKKyAgICAgICAgICAgICAgICBtX3ZlcnNpb25fLmdldE1pbm9yKCksIAorICAgICAgICAgICAgICAgIFVDQV8ubV9VQ0FfdmVyc2lvbl8uZ2V0TWFqb3IoKSk7CisKKy8vICAgICAgICB2ZXJzaW9uSW5mb1swXSA9ICh1aW50OF90KShjbWJWZXJzaW9uPj44KTsKKy8vICAgICAgICB2ZXJzaW9uSW5mb1sxXSA9ICh1aW50OF90KWNtYlZlcnNpb247CisvLyAgICAgICAgdmVyc2lvbkluZm9bMl0gPSBjb2xsLT5pbWFnZS0+dmVyc2lvblsxXTsKKy8vICAgICAgICB2ZXJzaW9uSW5mb1szXSA9IGNvbGwtPlVDQS0+aW1hZ2UtPlVDQVZlcnNpb25bMF07CisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBHZXQgdGhlIFVDQSB2ZXJzaW9uIG9mIHRoaXMgY29sbGF0b3Igb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhlIHZlcnNpb24gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFZlcnNpb25JbmZvIGdldFVDQVZlcnNpb24oKSB7CisgICAgICAgIHJldHVybiBVQ0FfLm1fVUNBX3ZlcnNpb25fOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZE51bWJlckZvcm1hdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvUnVsZUJhc2VkTnVtYmVyRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTBhNWM1NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZE51bWJlckZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsMTcyNyBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisvL2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZURhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEZWJ1ZzsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3RlclByb3BlcnR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VUmVzb3VyY2VCdW5kbGU7CisKK2ltcG9ydCBqYXZhLm1hdGguQmlnSW50ZWdlcjsKK2ltcG9ydCBqYXZhLnRleHQuRmllbGRQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKKy8vaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKKworCisvKioKKyAqIDxwPkEgY2xhc3MgdGhhdCBmb3JtYXRzIG51bWJlcnMgYWNjb3JkaW5nIHRvIGEgc2V0IG9mIHJ1bGVzLiBUaGlzIG51bWJlciBmb3JtYXR0ZXIgaXMKKyAqIHR5cGljYWxseSB1c2VkIGZvciBzcGVsbGluZyBvdXQgbnVtZXJpYyB2YWx1ZXMgaW4gd29yZHMgKGUuZy4sIDI1LDM0NzYgYXMKKyAqICZxdW90O3R3ZW50eS1maXZlIHRob3VzYW5kIHRocmVlIGh1bmRyZWQgc2V2ZW50eS1zaXgmcXVvdDsgb3IgJnF1b3Q7dmluZ3QtY2lucSBtaWxsZSB0cm9pcworICogY2VudHMgc29peGFudGUtc2VpemUmcXVvdDsgb3IKKyAqICZxdW90O2Z1bmZ1bmR6d2FuemlndGF1c2VuZGRyZWlodW5kZXJ0c2VjaHN1bmRzaWViemlnJnF1b3Q7KSwgYnV0IGNhbiBhbHNvIGJlIHVzZWQgZm9yCisgKiBvdGhlciBjb21wbGljYXRlZCBmb3JtYXR0aW5nIHRhc2tzLCBzdWNoIGFzIGZvcm1hdHRpbmcgYSBudW1iZXIgb2Ygc2Vjb25kcyBhcyBob3VycywKKyAqIG1pbnV0ZXMgYW5kIHNlY29uZHMgKGUuZy4sIDMsNzMwIGFzICZxdW90OzE6MDI6MTAmcXVvdDspLjwvcD4KKyAqCisgKiA8cD5UaGUgcmVzb3VyY2VzIGNvbnRhaW4gdGhyZWUgcHJlZGVmaW5lZCBmb3JtYXR0ZXJzIGZvciBlYWNoIGxvY2FsZTogc3BlbGxvdXQsIHdoaWNoCisgKiBzcGVsbHMgb3V0IGEgdmFsdWUgaW4gd29yZHMgKDEyMyBpcyAmcXVvdDtvbmUgaHVuZHJlZCB0d2VudHktdGhyZWUmcXVvdDspOyBvcmRpbmFsLCB3aGljaAorICogYXBwZW5kcyBhbiBvcmRpbmFsIHN1ZmZpeCB0byB0aGUgZW5kIG9mIGEgbnVtZXJhbCAoMTIzIGlzICZxdW90OzEyM3JkJnF1b3Q7KTsgYW5kCisgKiBkdXJhdGlvbiwgd2hpY2ggc2hvd3MgYSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFzIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcyAoMTIzIGlzCisgKiAmcXVvdDsyOjAzJnF1b3Q7KS4mbmJzcDsgVGhlIGNsaWVudCBjYW4gYWxzbyBkZWZpbmUgbW9yZSBzcGVjaWFsaXplZCA8dHQ+UnVsZUJhc2VkTnVtYmVyRm9ybWF0PC90dD5zCisgKiBieSBzdXBwbHlpbmcgcHJvZ3JhbW1lci1kZWZpbmVkIHJ1bGUgc2V0cy48L3A+CisgKgorICogPHA+VGhlIGJlaGF2aW9yIG9mIGEgPHR0PlJ1bGVCYXNlZE51bWJlckZvcm1hdDwvdHQ+IGlzIHNwZWNpZmllZCBieSBhIHRleHR1YWwgZGVzY3JpcHRpb24KKyAqIHRoYXQgaXMgZWl0aGVyIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IgYXMgYSA8dHQ+U3RyaW5nPC90dD4gb3IgbG9hZGVkIGZyb20gYSByZXNvdXJjZQorICogYnVuZGxlLiBJbiBpdHMgc2ltcGxlc3QgZm9ybSwgdGhlIGRlc2NyaXB0aW9uIGNvbnNpc3RzIG9mIGEgc2VtaWNvbG9uLWRlbGltaXRlZCBsaXN0IG9mIDxlbT5ydWxlcy48L2VtPgorICogRWFjaCBydWxlIGhhcyBhIHN0cmluZyBvZiBvdXRwdXQgdGV4dCBhbmQgYSB2YWx1ZSBvciByYW5nZSBvZiB2YWx1ZXMgaXQgaXMgYXBwbGljYWJsZSB0by4KKyAqIEluIGEgdHlwaWNhbCBzcGVsbG91dCBydWxlIHNldCwgdGhlIGZpcnN0IHR3ZW50eSBydWxlcyBhcmUgdGhlIHdvcmRzIGZvciB0aGUgbnVtYmVycyBmcm9tCisgKiAwIHRvIDE5OjwvcD4KKyAqCisgKiA8cHJlPnplcm87IG9uZTsgdHdvOyB0aHJlZTsgZm91cjsgZml2ZTsgc2l4OyBzZXZlbjsgZWlnaHQ7IG5pbmU7CisgKiB0ZW47IGVsZXZlbjsgdHdlbHZlOyB0aGlydGVlbjsgZm91cnRlZW47IGZpZnRlZW47IHNpeHRlZW47IHNldmVudGVlbjsgZWlnaHRlZW47IG5pbmV0ZWVuOzwvcHJlPgorICoKKyAqIDxwPkZvciBsYXJnZXIgbnVtYmVycywgd2UgY2FuIHVzZSB0aGUgcHJlY2VkaW5nIHNldCBvZiBydWxlcyB0byBmb3JtYXQgdGhlIG9uZXMgcGxhY2UsIGFuZAorICogd2Ugb25seSBoYXZlIHRvIHN1cHBseSB0aGUgd29yZHMgZm9yIHRoZSBtdWx0aXBsZXMgb2YgMTA6PC9wPgorICoKKyAqIDxwcmU+MjA6IHR3ZW50eVstJmd0OyZndDtdOworICogMzA6IHRoaXJ0eXstJmd0OyZndDtdOworICogNDA6IGZvcnR5Wy0mZ3Q7Jmd0O107CisgKiA1MDogZmlmdHlbLSZndDsmZ3Q7XTsKKyAqIDYwOiBzaXh0eVstJmd0OyZndDtdOworICogNzA6IHNldmVudHlbLSZndDsmZ3Q7XTsKKyAqIDgwOiBlaWdodHlbLSZndDsmZ3Q7XTsKKyAqIDkwOiBuaW5ldHlbLSZndDsmZ3Q7XTs8L3ByZT4KKyAqCisgKiA8cD5JbiB0aGVzZSBydWxlcywgdGhlIDxlbT5iYXNlIHZhbHVlPC9lbT4gaXMgc3BlbGxlZCBvdXQgZXhwbGljaXRseSBhbmQgc2V0IG9mZiBmcm9tIHRoZQorICogcnVsZSdzIG91dHB1dCB0ZXh0IHdpdGggYSBjb2xvbi4gVGhlIHJ1bGVzIGFyZSBpbiBhIHNvcnRlZCBsaXN0LCBhbmQgYSBydWxlIGlzIGFwcGxpY2FibGUKKyAqIHRvIGFsbCBudW1iZXJzIGZyb20gaXRzIG93biBiYXNlIHZhbHVlIHRvIG9uZSBsZXNzIHRoYW4gdGhlIG5leHQgcnVsZSdzIGJhc2UgdmFsdWUuIFRoZQorICogJnF1b3Q7Jmd0OyZndDsmcXVvdDsgdG9rZW4gaXMgY2FsbGVkIGEgPGVtPnN1YnN0aXR1dGlvbjwvZW0+IGFuZCB0ZWxscyB0aGUgZm9tYXR0ZXIgdG8KKyAqIGlzb2xhdGUgdGhlIG51bWJlcidzIG9uZXMgZGlnaXQsIGZvcm1hdCBpdCB1c2luZyB0aGlzIHNhbWUgc2V0IG9mIHJ1bGVzLCBhbmQgcGxhY2UgdGhlCisgKiByZXN1bHQgYXQgdGhlIHBvc2l0aW9uIG9mIHRoZSAmcXVvdDsmZ3Q7Jmd0OyZxdW90OyB0b2tlbi4gVGV4dCBpbiBicmFja2V0cyBpcyBvbWl0dGVkIGlmCisgKiB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCBpcyBhbiBldmVuIG11bHRpcGxlIG9mIDEwICh0aGUgaHlwaGVuIGlzIGEgbGl0ZXJhbCBoeXBoZW47IDI0CisgKiBpcyAmcXVvdDt0d2VudHktZm91ciwmcXVvdDsgbm90ICZxdW90O3R3ZW50eSBmb3VyJnF1b3Q7KS48L3A+CisgKgorICogPHA+Rm9yIGV2ZW4gbGFyZ2VyIG51bWJlcnMsIHdlIGNhbiBhY3R1YWxseSBsb29rIHVwIHNldmVyYWwgcGFydHMgb2YgdGhlIG51bWJlciBpbiB0aGUKKyAqIGxpc3Q6PC9wPgorICoKKyAqIDxwcmU+MTAwOiAmbHQ7Jmx0OyBodW5kcmVkWyAmZ3Q7Jmd0O107PC9wcmU+CisgKgorICogPHA+VGhlICZxdW90OyZsdDsmbHQ7JnF1b3Q7IHJlcHJlc2VudHMgYSBuZXcga2luZCBvZiBzdWJzdGl0dXRpb24uIFRoZSAmbHQ7Jmx0OyBpc29sYXRlcworICogdGhlIGh1bmRyZWRzIGRpZ2l0IChhbmQgYW55IGRpZ2l0cyB0byBpdHMgbGVmdCksIGZvcm1hdHMgaXQgdXNpbmcgdGhpcyBzYW1lIHJ1bGUgc2V0LCBhbmQKKyAqIHBsYWNlcyB0aGUgcmVzdWx0IHdoZXJlIHRoZSAmcXVvdDsmbHQ7Jmx0OyZxdW90OyB3YXMuIE5vdGljZSBhbHNvIHRoYXQgdGhlIG1lYW5pbmcgb2YKKyAqICZndDsmZ3Q7IGhhcyBjaGFuZ2VkOiBpdCBub3cgcmVmZXJzIHRvIGJvdGggdGhlIHRlbnMgYW5kIHRoZSBvbmVzIGRpZ2l0cy4gVGhlIG1lYW5pbmcgb2YKKyAqIGJvdGggc3Vic3RpdHV0aW9ucyBkZXBlbmRzIG9uIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZS4gVGhlIGJhc2UgdmFsdWUgZGV0ZXJtaW5lcyB0aGUgcnVsZSdzIDxlbT5kaXZpc29yLDwvZW0+CisgKiB3aGljaCBpcyB0aGUgaGlnaGVzdCBwb3dlciBvZiAxMCB0aGF0IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgYmFzZSB2YWx1ZSAodGhlIHVzZXIKKyAqIGNhbiBjaGFuZ2UgdGhpcykuIFRvIGZpbGwgaW4gdGhlIHN1YnN0aXR1dGlvbnMsIHRoZSBmb3JtYXR0ZXIgZGl2aWRlcyB0aGUgbnVtYmVyIGJlaW5nCisgKiBmb3JtYXR0ZWQgYnkgdGhlIGRpdmlzb3IuIFRoZSBpbnRlZ3JhbCBxdW90aWVudCBpcyB1c2VkIHRvIGZpbGwgaW4gdGhlICZsdDsmbHQ7CisgKiBzdWJzdGl0dXRpb24sIGFuZCB0aGUgcmVtYWluZGVyIGlzIHVzZWQgdG8gZmlsbCBpbiB0aGUgJmd0OyZndDsgc3Vic3RpdHV0aW9uLiBUaGUgbWVhbmluZworICogb2YgdGhlIGJyYWNrZXRzIGNoYW5nZXMgc2ltaWxhcmx5OiB0ZXh0IGluIGJyYWNrZXRzIGlzIG9taXR0ZWQgaWYgdGhlIHZhbHVlIGJlaW5nCisgKiBmb3JtYXR0ZWQgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiB0aGUgcnVsZSdzIGRpdmlzb3IuIFRoZSBydWxlcyBhcmUgYXBwbGllZCByZWN1cnNpdmVseSwgc28KKyAqIGlmIGEgc3Vic3RpdHV0aW9uIGlzIGZpbGxlZCBpbiB3aXRoIHRleHQgdGhhdCBpbmNsdWRlcyBhbm90aGVyIHN1YnN0aXR1dGlvbiwgdGhhdAorICogc3Vic3RpdHV0aW9uIGlzIGFsc28gZmlsbGVkIGluLjwvcD4KKyAqCisgKiA8cD5UaGlzIHJ1bGUgY292ZXJzIHZhbHVlcyB1cCB0byA5OTksIGF0IHdoaWNoIHBvaW50IHdlIGFkZCBhbm90aGVyIHJ1bGU6PC9wPgorICoKKyAqIDxwcmU+MTAwMDogJmx0OyZsdDsgdGhvdXNhbmRbICZndDsmZ3Q7XTs8L3ByZT4KKyAqCisgKiA8cD5BZ2FpbiwgdGhlIG1lYW5pbmdzIG9mIHRoZSBicmFja2V0cyBhbmQgc3Vic3RpdHV0aW9uIHRva2VucyBzaGlmdCBiZWNhdXNlIHRoZSBydWxlJ3MKKyAqIGJhc2UgdmFsdWUgaXMgYSBoaWdoZXIgcG93ZXIgb2YgMTAsIGNoYW5naW5nIHRoZSBydWxlJ3MgZGl2aXNvci4gVGhpcyBydWxlIGNhbiBhY3R1YWxseSBiZQorICogdXNlZCBhbGwgdGhlIHdheSB1cCB0byA5OTksOTk5LiBUaGlzIGFsbG93cyB1cyB0byBmaW5pc2ggb3V0IHRoZSBydWxlcyBhcyBmb2xsb3dzOjwvcD4KKyAqCisgKiA8cHJlPjEsMDAwLDAwMDogJmx0OyZsdDsgbWlsbGlvblsgJmd0OyZndDtdOworICogMSwwMDAsMDAwLDAwMDogJmx0OyZsdDsgYmlsbGlvblsgJmd0OyZndDtdOworICogMSwwMDAsMDAwLDAwMCwwMDA6ICZsdDsmbHQ7IHRyaWxsaW9uWyAmZ3Q7Jmd0O107CisgKiAxLDAwMCwwMDAsMDAwLDAwMCwwMDA6IE9VVCBPRiBSQU5HRSE7PC9wcmU+CisgKgorICogPHA+Q29tbWFzLCBwZXJpb2RzLCBhbmQgc3BhY2VzIGNhbiBiZSB1c2VkIGluIHRoZSBiYXNlIHZhbHVlcyB0byBpbXByb3ZlIGxlZ2liaWxpdHkgYW5kCisgKiBhcmUgaWdub3JlZCBieSB0aGUgcnVsZSBwYXJzZXIuIFRoZSBsYXN0IHJ1bGUgaW4gdGhlIGxpc3QgaXMgY3VzdG9tYXJpbHkgdHJlYXRlZCBhcyBhbgorICogJnF1b3Q7b3ZlcmZsb3cgcnVsZSwmcXVvdDsgYXBwbHlpbmcgdG8gZXZlcnl0aGluZyBmcm9tIGl0cyBiYXNlIHZhbHVlIG9uIHVwLCBhbmQgb2Z0ZW4gKGFzCisgKiBpbiB0aGlzIGV4YW1wbGUpIGJlaW5nIHVzZWQgdG8gcHJpbnQgb3V0IGFuIGVycm9yIG1lc3NhZ2Ugb3IgZGVmYXVsdCByZXByZXNlbnRhdGlvbi4KKyAqIE5vdGljZSBhbHNvIHRoYXQgdGhlIHNpemUgb2YgdGhlIG1ham9yIGdyb3VwaW5ncyBpbiBsYXJnZSBudW1iZXJzIGlzIGNvbnRyb2xsZWQgYnkgdGhlCisgKiBzcGFjaW5nIG9mIHRoZSBydWxlczogYmVjYXVzZSBpbiBFbmdsaXNoIHdlIGdyb3VwIG51bWJlcnMgYnkgdGhvdXNhbmQsIHRoZSBoaWdoZXIgcnVsZXMKKyAqIGFyZSBzZXBhcmF0ZWQgZnJvbSBlYWNoIG90aGVyIGJ5IGEgZmFjdG9yIG9mIDEsMDAwLjwvcD4KKyAqCisgKiA8cD5UbyBzZWUgaG93IHRoZXNlIHJ1bGVzIGFjdHVhbGx5IHdvcmsgaW4gcHJhY3RpY2UsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgZXhhbXBsZToKKyAqIEZvcm1hdHRpbmcgMjUsNDMwIHdpdGggdGhpcyBydWxlIHNldCB3b3VsZCB3b3JrIGxpa2UgdGhpczo8L3A+CisgKgorICogPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjYzMCI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+PHN0cm9uZz4mbHQ7Jmx0OyB0aG91c2FuZCAmZ3Q7Jmd0Ozwvc3Ryb25nPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIzNDAiIHZhbGlnbj0idG9wIj5bdGhlIHJ1bGUgd2hvc2UgYmFzZSB2YWx1ZSBpcyAxLDAwMCBpcyBhcHBsaWNhYmxlIHRvIDI1LDM0MF08L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIyMSI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjI1NyIgdmFsaWduPSJ0b3AiPjxzdHJvbmc+dHdlbnR5LSZndDsmZ3Q7PC9zdHJvbmc+IHRob3VzYW5kICZndDsmZ3Q7PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjM0MCIgdmFsaWduPSJ0b3AiPlsyNSwzNDAgb3ZlciAxLDAwMCBpcyAyNS4gVGhlIHJ1bGUgZm9yIDIwIGFwcGxpZXMuXTwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+dHdlbnR5LTxzdHJvbmc+Zml2ZTwvc3Ryb25nPiB0aG91c2FuZCAmZ3Q7Jmd0OzwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIzNDAiIHZhbGlnbj0idG9wIj5bMjUgbW9kIDEwIGlzIDUuIFRoZSBydWxlIGZvciA1IGlzICZxdW90O2ZpdmUuJnF1b3Q7PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMjEiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyNTciIHZhbGlnbj0idG9wIj50d2VudHktZml2ZSB0aG91c2FuZCA8c3Ryb25nPiZsdDsmbHQ7IGh1bmRyZWQgJmd0OyZndDs8L3N0cm9uZz48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMzQwIiB2YWxpZ249InRvcCI+WzI1LDM0MCBtb2QgMSwwMDAgaXMgMzQwLiBUaGUgcnVsZSBmb3IgMTAwIGFwcGxpZXMuXTwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+dHdlbnR5LWZpdmUgdGhvdXNhbmQgPHN0cm9uZz50aHJlZTwvc3Ryb25nPiBodW5kcmVkICZndDsmZ3Q7PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjM0MCIgdmFsaWduPSJ0b3AiPlszNDAgb3ZlciAxMDAgaXMgMy4gVGhlIHJ1bGUgZm9yIDMgaXMgJnF1b3Q7dGhyZWUuJnF1b3Q7XTwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjIxIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjU3IiB2YWxpZ249InRvcCI+dHdlbnR5LWZpdmUgdGhvdXNhbmQgdGhyZWUgaHVuZHJlZCA8c3Ryb25nPmZvcnR5PC9zdHJvbmc+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjM0MCIgdmFsaWduPSJ0b3AiPlszNDAgbW9kIDEwMCBpcyA0MC4gVGhlIHJ1bGUgZm9yIDQwIGFwcGxpZXMuIFNpbmNlIDQwIGRpdmlkZXMKKyAqICAgICBldmVubHkgYnkgMTAsIHRoZSBoeXBoZW4gYW5kIHN1YnN0aXR1dGlvbiBpbiB0aGUgYnJhY2tldHMgYXJlIG9taXR0ZWQuXTwvdGQ+CisgKiAgIDwvdHI+CisgKiA8L3RhYmxlPgorICoKKyAqIDxwPlRoZSBhYm92ZSBzeW50YXggc3VmZmljZXMgb25seSB0byBmb3JtYXQgcG9zaXRpdmUgaW50ZWdlcnMuIFRvIGZvcm1hdCBuZWdhdGl2ZSBudW1iZXJzLAorICogd2UgYWRkIGEgc3BlY2lhbCBydWxlOjwvcD4KKyAqCisgKiA8cHJlPi14OiBtaW51cyAmZ3Q7Jmd0Ozs8L3ByZT4KKyAqCisgKiA8cD5UaGlzIGlzIGNhbGxlZCBhIDxlbT5uZWdhdGl2ZS1udW1iZXIgcnVsZSw8L2VtPiBhbmQgaXMgaWRlbnRpZmllZCBieSAmcXVvdDsteCZxdW90OworICogd2hlcmUgdGhlIGJhc2UgdmFsdWUgd291bGQgYmUuIFRoaXMgcnVsZSBpcyB1c2VkIHRvIGZvcm1hdCBhbGwgbmVnYXRpdmUgbnVtYmVycy4gdGhlCisgKiAmZ3Q7Jmd0OyB0b2tlbiBoZXJlIG1lYW5zICZxdW90O2ZpbmQgdGhlIG51bWJlcidzIGFic29sdXRlIHZhbHVlLCBmb3JtYXQgaXQgd2l0aCB0aGVzZQorICogcnVsZXMsIGFuZCBwdXQgdGhlIHJlc3VsdCBoZXJlLiZxdW90OzwvcD4KKyAqCisgKiA8cD5XZSBhbHNvIGFkZCBhIHNwZWNpYWwgcnVsZSBjYWxsZWQgYSA8ZW0+ZnJhY3Rpb24gcnVsZSA8L2VtPmZvciBudW1iZXJzIHdpdGggZnJhY3Rpb25hbAorICogcGFydHM6PC9wPgorICoKKyAqIDxwcmU+eC54OiAmbHQ7Jmx0OyBwb2ludCAmZ3Q7Jmd0Ozs8L3ByZT4KKyAqCisgKiA8cD5UaGlzIHJ1bGUgaXMgdXNlZCBmb3IgYWxsIHBvc2l0aXZlIG5vbi1pbnRlZ2VycyAobmVnYXRpdmUgbm9uLWludGVnZXJzIHBhc3MgdGhyb3VnaCB0aGUKKyAqIG5lZ2F0aXZlLW51bWJlciBydWxlIGZpcnN0IGFuZCB0aGVuIHRocm91Z2ggdGhpcyBydWxlKS4gSGVyZSwgdGhlICZsdDsmbHQ7IHRva2VuIHJlZmVycyB0bworICogdGhlIG51bWJlcidzIGludGVncmFsIHBhcnQsIGFuZCB0aGUgJmd0OyZndDsgdG8gdGhlIG51bWJlcidzIGZyYWN0aW9uYWwgcGFydC4gVGhlCisgKiBmcmFjdGlvbmFsIHBhcnQgaXMgZm9ybWF0dGVkIGFzIGEgc2VyaWVzIG9mIHNpbmdsZS1kaWdpdCBudW1iZXJzIChlLmcuLCAxMjMuNDU2IHdvdWxkIGJlCisgKiBmb3JtYXR0ZWQgYXMgJnF1b3Q7b25lIGh1bmRyZWQgdHdlbnR5LXRocmVlIHBvaW50IGZvdXIgZml2ZSBzaXgmcXVvdDspLjwvcD4KKyAqCisgKiA8cD5UbyBzZWUgaG93IHRoaXMgcnVsZSBzeW50YXggaXMgYXBwbGllZCB0byB2YXJpb3VzIGxhbmd1YWdlcywgZXhhbWluZSB0aGUgcmVzb3VyY2UgZGF0YS48L3A+CisgKgorICogPHA+VGhlcmUgaXMgYWN0dWFsbHkgbXVjaCBtb3JlIGZsZXhpYmlsaXR5IGJ1aWx0IGludG8gdGhlIHJ1bGUgbGFuZ3VhZ2UgdGhhbiB0aGUKKyAqIGRlc2NyaXB0aW9uIGFib3ZlIHNob3dzLiBBIGZvcm1hdHRlciBtYXkgb3duIG11bHRpcGxlIHJ1bGUgc2V0cywgd2hpY2ggY2FuIGJlIHNlbGVjdGVkIGJ5CisgKiB0aGUgY2FsbGVyLCBhbmQgd2hpY2ggY2FuIHVzZSBlYWNoIG90aGVyIHRvIGZpbGwgaW4gdGhlaXIgc3Vic3RpdHV0aW9ucy4gU3Vic3RpdHV0aW9ucyBjYW4KKyAqIGFsc28gYmUgZmlsbGVkIGluIHdpdGggZGlnaXRzLCB1c2luZyBhIERlY2ltYWxGb3JtYXQgb2JqZWN0LiBUaGVyZSBpcyBzeW50YXggdGhhdCBjYW4gYmUKKyAqIHVzZWQgdG8gYWx0ZXIgYSBydWxlJ3MgZGl2aXNvciBpbiB2YXJpb3VzIHdheXMuIEFuZCB0aGVyZSBpcyBwcm92aXNpb24gZm9yIG11Y2ggbW9yZQorICogZmxleGlibGUgZnJhY3Rpb24gaGFuZGxpbmcuIEEgY29tcGxldGUgZGVzY3JpcHRpb24gb2YgdGhlIHJ1bGUgc3ludGF4IGZvbGxvd3M6PC9wPgorICoKKyAqIDxocj4KKyAqCisgKiA8cD5UaGUgZGVzY3JpcHRpb24gb2YgYSA8dHQ+UnVsZUJhc2VkTnVtYmVyRm9ybWF0PC90dD4ncyBiZWhhdmlvciBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSA8ZW0+cnVsZQorICogc2V0cy48L2VtPiBFYWNoIHJ1bGUgc2V0IGNvbnNpc3RzIG9mIGEgbmFtZSwgYSBjb2xvbiwgYW5kIGEgbGlzdCBvZiA8ZW0+cnVsZXMuPC9lbT4gQSBydWxlCisgKiBzZXQgbmFtZSBtdXN0IGJlZ2luIHdpdGggYSAlIHNpZ24uIFJ1bGUgc2V0cyB3aXRoIG5hbWVzIHRoYXQgYmVnaW4gd2l0aCBhIHNpbmdsZSAlIHNpZ24KKyAqIGFyZSA8ZW0+cHVibGljOjwvZW0+IHRoZSBjYWxsZXIgY2FuIHNwZWNpZnkgdGhhdCB0aGV5IGJlIHVzZWQgdG8gZm9ybWF0IGFuZCBwYXJzZSBudW1iZXJzLgorICogUnVsZSBzZXRzIHdpdGggbmFtZXMgdGhhdCBiZWdpbiB3aXRoICUlIGFyZSA8ZW0+cHJpdmF0ZTo8L2VtPiB0aGV5IGV4aXN0IG9ubHkgZm9yIHRoZSB1c2UKKyAqIG9mIG90aGVyIHJ1bGUgc2V0cy4gSWYgYSBmb3JtYXR0ZXIgb25seSBoYXMgb25lIHJ1bGUgc2V0LCB0aGUgbmFtZSBtYXkgYmUgb21pdHRlZC48L3A+CisgKgorICogPHA+VGhlIHVzZXIgY2FuIGFsc28gc3BlY2lmeSBhIHNwZWNpYWwgJnF1b3Q7cnVsZSBzZXQmcXVvdDsgbmFtZWQgPHR0PiUlbGVuaWVudC1wYXJzZTwvdHQ+LgorICogVGhlIGJvZHkgb2YgPHR0PiUlbGVuaWVudC1wYXJzZTwvdHQ+IGlzbid0IGEgc2V0IG9mIG51bWJlci1mb3JtYXR0aW5nIHJ1bGVzLCBidXQgYSA8dHQ+UnVsZUJhc2VkQ29sbGF0b3I8L3R0PgorICogZGVzY3JpcHRpb24gd2hpY2ggaXMgdXNlZCB0byBkZWZpbmUgZXF1aXZhbGVuY2VzIGZvciBsZW5pZW50IHBhcnNpbmcuIEZvciBtb3JlIGluZm9ybWF0aW9uCisgKiBvbiB0aGUgc3ludGF4LCBzZWUgPHR0PlJ1bGVCYXNlZENvbGxhdG9yPC90dD4uIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGxlbmllbnQgcGFyc2luZywKKyAqIHNlZSA8dHQ+c2V0TGVuaWVudFBhcnNlKCk8L3R0Pi4gPGVtPk5vdGU6PC9lbT4gc3ltYm9scyB0aGF0IGhhdmUgc3ludGFjdGljIG1lYW5pbmcKKyAqIGluIGNvbGxhdGlvbiBydWxlcywgc3VjaCBhcyAnJmFtcDsnLCBoYXZlIG5vIHBhcnRpY3VsYXIgbWVhbmluZyB3aGVuIGFwcGVhcmluZyBvdXRzaWRlCisgKiBvZiB0aGUgPHR0PmxlbmllbnQtcGFyc2U8L3R0PiBydWxlIHNldC48L3A+CisgKgorICogPHA+VGhlIGJvZHkgb2YgYSBydWxlIHNldCBjb25zaXN0cyBvZiBhbiBvcmRlcmVkLCBzZW1pY29sb24tZGVsaW1pdGVkIGxpc3Qgb2YgPGVtPnJ1bGVzLjwvZW0+CisgKiBJbnRlcm5hbGx5LCBldmVyeSBydWxlIGhhcyBhIGJhc2UgdmFsdWUsIGEgZGl2aXNvciwgcnVsZSB0ZXh0LCBhbmQgemVybywgb25lLCBvciB0d28gPGVtPnN1YnN0aXR1dGlvbnMuPC9lbT4KKyAqIFRoZXNlIHBhcmFtZXRlcnMgYXJlIGNvbnRyb2xsZWQgYnkgdGhlIGRlc2NyaXB0aW9uIHN5bnRheCwgd2hpY2ggY29uc2lzdHMgb2YgYSA8ZW0+cnVsZQorICogZGVzY3JpcHRvciw8L2VtPiBhIGNvbG9uLCBhbmQgYSA8ZW0+cnVsZSBib2R5LjwvZW0+PC9wPgorICoKKyAqIDxwPkEgcnVsZSBkZXNjcmlwdG9yIGNhbiB0YWtlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGZvcm1zICh0ZXh0IGluIDxlbT5pdGFsaWNzPC9lbT4gaXMgdGhlCisgKiBuYW1lIG9mIGEgdG9rZW4pOjwvcD4KKyAqCisgKiA8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjglIiB2YWxpZ249InRvcCI+PGVtPmJ2PC9lbT46PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPjxlbT5idjwvZW0+IHNwZWNpZmllcyB0aGUgcnVsZSdzIGJhc2UgdmFsdWUuIDxlbT5idjwvZW0+IGlzIGEgZGVjaW1hbAorICogICAgIG51bWJlciBleHByZXNzZWQgdXNpbmcgQVNDSUkgZGlnaXRzLiA8ZW0+YnY8L2VtPiBtYXkgY29udGFpbiBzcGFjZXMsIHBlcmlvZCwgYW5kIGNvbW1hcywKKyAqICAgICB3aGljaCBhcmUgaXJnbm9yZWQuIFRoZSBydWxlJ3MgZGl2aXNvciBpcyB0aGUgaGlnaGVzdCBwb3dlciBvZiAxMCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8KKyAqICAgICB0aGUgYmFzZSB2YWx1ZS48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSI4JSIgdmFsaWduPSJ0b3AiPjxlbT5idjwvZW0+LzxlbT5yYWQ8L2VtPjo8L3RkPgorICogICAgIDx0ZCB2YWxpZ249InRvcCI+PGVtPmJ2PC9lbT4gc3BlY2lmaWVzIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZS4gVGhlIHJ1bGUncyBkaXZpc29yIGlzIHRoZQorICogICAgIGhpZ2hlc3QgcG93ZXIgb2YgPGVtPnJhZDwvZW0+IGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgYmFzZSB2YWx1ZS48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI1JSIgdmFsaWduPSJ0b3AiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSI4JSIgdmFsaWduPSJ0b3AiPjxlbT5idjwvZW0+Jmd0Ozo8L3RkPgorICogICAgIDx0ZCB2YWxpZ249InRvcCI+PGVtPmJ2PC9lbT4gc3BlY2lmaWVzIHRoZSBydWxlJ3MgYmFzZSB2YWx1ZS4gVG8gY2FsY3VsYXRlIHRoZSBkaXZpc29yLAorICogICAgIGxldCB0aGUgcmFkaXggYmUgMTAsIGFuZCB0aGUgZXhwb25lbnQgYmUgdGhlIGhpZ2hlc3QgZXhwb25lbnQgb2YgdGhlIHJhZGl4IHRoYXQgeWllbGRzIGEKKyAqICAgICByZXN1bHQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBiYXNlIHZhbHVlLiBFdmVyeSAmZ3Q7IGNoYXJhY3RlciBhZnRlciB0aGUgYmFzZSB2YWx1ZQorICogICAgIGRlY3JlYXNlcyB0aGUgZXhwb25lbnQgYnkgMS4gSWYgdGhlIGV4cG9uZW50IGlzIHBvc2l0aXZlIG9yIDAsIHRoZSBkaXZpc29yIGlzIHRoZSByYWRpeAorICogICAgIHJhaXNlZCB0byB0aGUgcG93ZXIgb2YgdGhlIGV4cG9uZW50OyBvdGhlcndpc2UsIHRoZSBkaXZpc29yIGlzIDEuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj48ZW0+YnY8L2VtPi88ZW0+cmFkPC9lbT4mZ3Q7OjwvdGQ+CisgKiAgICAgPHRkIHZhbGlnbj0idG9wIj48ZW0+YnY8L2VtPiBzcGVjaWZpZXMgdGhlIHJ1bGUncyBiYXNlIHZhbHVlLiBUbyBjYWxjdWxhdGUgdGhlIGRpdmlzb3IsCisgKiAgICAgbGV0IHRoZSByYWRpeCBiZSA8ZW0+cmFkPC9lbT4sIGFuZCB0aGUgZXhwb25lbnQgYmUgdGhlIGhpZ2hlc3QgZXhwb25lbnQgb2YgdGhlIHJhZGl4IHRoYXQKKyAqICAgICB5aWVsZHMgYSByZXN1bHQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBiYXNlIHZhbHVlLiBFdmVyeSAmZ3Q7IGNoYXJhY3RlciBhZnRlciB0aGUgcmFkaXgKKyAqICAgICBkZWNyZWFzZXMgdGhlIGV4cG9uZW50IGJ5IDEuIElmIHRoZSBleHBvbmVudCBpcyBwb3NpdGl2ZSBvciAwLCB0aGUgZGl2aXNvciBpcyB0aGUgcmFkaXgKKyAqICAgICByYWlzZWQgdG8gdGhlIHBvd2VyIG9mIHRoZSBleHBvbmVudDsgb3RoZXJ3aXNlLCB0aGUgZGl2aXNvciBpcyAxLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjUlIiB2YWxpZ249InRvcCI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjglIiB2YWxpZ249InRvcCI+LXg6PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBydWxlIGlzIGEgbmVnYXRpdmUtbnVtYmVyIHJ1bGUuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj54Lng6PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBydWxlIGlzIGFuIDxlbT5pbXByb3BlciBmcmFjdGlvbiBydWxlLjwvZW0+PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj4wLng6PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBydWxlIGlzIGEgPGVtPnByb3BlciBmcmFjdGlvbiBydWxlLjwvZW0+PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj54LjA6PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBydWxlIGlzIGEgPGVtPm1hc3RlciBydWxlLjwvZW0+PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iNSUiIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iOCUiIHZhbGlnbj0idG9wIj48ZW0+bm90aGluZzwvZW0+PC90ZD4KKyAqICAgICA8dGQgdmFsaWduPSJ0b3AiPklmIHRoZSBydWxlJ3MgcnVsZSBkZXNjcmlwdG9yIGlzIGxlZnQgb3V0LCB0aGUgYmFzZSB2YWx1ZSBpcyBvbmUgcGx1cyB0aGUKKyAqICAgICBwcmVjZWRpbmcgcnVsZSdzIGJhc2UgdmFsdWUgKG9yIHplcm8gaWYgdGhpcyBpcyB0aGUgZmlyc3QgcnVsZSBpbiB0aGUgbGlzdCkgaW4gYSBub3JtYWwKKyAqICAgICBydWxlIHNldC4mbmJzcDsgSW4gYSBmcmFjdGlvbiBydWxlIHNldCwgdGhlIGJhc2UgdmFsdWUgaXMgdGhlIHNhbWUgYXMgdGhlIHByZWNlZGluZyBydWxlJ3MKKyAqICAgICBiYXNlIHZhbHVlLjwvdGQ+CisgKiAgIDwvdHI+CisgKiA8L3RhYmxlPgorICoKKyAqIDxwPkEgcnVsZSBzZXQgbWF5IGJlIGVpdGhlciBhIHJlZ3VsYXIgcnVsZSBzZXQgb3IgYSA8ZW0+ZnJhY3Rpb24gcnVsZSBzZXQsPC9lbT4gZGVwZW5kaW5nCisgKiBvbiB3aGV0aGVyIGl0IGlzIHVzZWQgdG8gZm9ybWF0IGEgbnVtYmVyJ3MgaW50ZWdyYWwgcGFydCAob3IgdGhlIHdob2xlIG51bWJlcikgb3IgYQorICogbnVtYmVyJ3MgZnJhY3Rpb25hbCBwYXJ0LiBVc2luZyBhIHJ1bGUgc2V0IHRvIGZvcm1hdCBhIHJ1bGUncyBmcmFjdGlvbmFsIHBhcnQgbWFrZXMgaXQgYQorICogZnJhY3Rpb24gcnVsZSBzZXQuPC9wPgorICoKKyAqIDxwPldoaWNoIHJ1bGUgaXMgdXNlZCB0byBmb3JtYXQgYSBudW1iZXIgaXMgZGVmaW5lZCBhY2NvcmRpbmcgdG8gb25lIG9mIHRoZSBmb2xsb3dpbmcKKyAqIGFsZ29yaXRobXM6IElmIHRoZSBydWxlIHNldCBpcyBhIHJlZ3VsYXIgcnVsZSBzZXQsIGRvIHRoZSBmb2xsb3dpbmc6CisgKgorICogPHVsPgorICogICA8bGk+SWYgdGhlIHJ1bGUgc2V0IGluY2x1ZGVzIGEgbWFzdGVyIHJ1bGUgKGFuZCB0aGUgbnVtYmVyIHdhcyBwYXNzZWQgaW4gYXMgYSA8dHQ+ZG91YmxlPC90dD4pLAorICogICAgIHVzZSB0aGUgbWFzdGVyIHJ1bGUuJm5ic3A7IChJZiB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCB3YXMgcGFzc2VkIGluIGFzIGEgPHR0Pmxvbmc8L3R0PiwKKyAqICAgICB0aGUgbWFzdGVyIHJ1bGUgaXMgaWdub3JlZC4pPC9saT4KKyAqICAgPGxpPklmIHRoZSBudW1iZXIgaXMgbmVnYXRpdmUsIHVzZSB0aGUgbmVnYXRpdmUtbnVtYmVyIHJ1bGUuPC9saT4KKyAqICAgPGxpPklmIHRoZSBudW1iZXIgaGFzIGEgZnJhY3Rpb25hbCBwYXJ0IGFuZCBpcyBncmVhdGVyIHRoYW4gMSwgdXNlIHRoZSBpbXByb3BlciBmcmFjdGlvbgorICogICAgIHJ1bGUuPC9saT4KKyAqICAgPGxpPklmIHRoZSBudW1iZXIgaGFzIGEgZnJhY3Rpb25hbCBwYXJ0IGFuZCBpcyBiZXR3ZWVuIDAgYW5kIDEsIHVzZSB0aGUgcHJvcGVyIGZyYWN0aW9uCisgKiAgICAgcnVsZS48L2xpPgorICogICA8bGk+QmluYXJ5LXNlYXJjaCB0aGUgcnVsZSBsaXN0IGZvciB0aGUgcnVsZSB3aXRoIHRoZSBoaWdoZXN0IGJhc2UgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsCisgKiAgICAgdG8gdGhlIG51bWJlci4gSWYgdGhhdCBydWxlIGhhcyB0d28gc3Vic3RpdHV0aW9ucywgaXRzIGJhc2UgdmFsdWUgaXMgbm90IGFuIGV2ZW4gbXVsdGlwbGUKKyAqICAgICBvZiBpdHMgZGl2aXNvciwgYW5kIHRoZSBudW1iZXIgPGVtPmlzPC9lbT4gYW4gZXZlbiBtdWx0aXBsZSBvZiB0aGUgcnVsZSdzIGRpdmlzb3IsIHVzZSB0aGUKKyAqICAgICBydWxlIHRoYXQgcHJlY2VkZXMgaXQgaW4gdGhlIHJ1bGUgbGlzdC4gT3RoZXJ3aXNlLCB1c2UgdGhlIHJ1bGUgaXRzZWxmLjwvbGk+CisgKiA8L3VsPgorICoKKyAqIDxwPklmIHRoZSBydWxlIHNldCBpcyBhIGZyYWN0aW9uIHJ1bGUgc2V0LCBkbyB0aGUgZm9sbG93aW5nOgorICoKKyAqIDx1bD4KKyAqICAgPGxpPklnbm9yZSBuZWdhdGl2ZS1udW1iZXIgYW5kIGZyYWN0aW9uIHJ1bGVzLjwvbGk+CisgKiAgIDxsaT5Gb3IgZWFjaCBydWxlIGluIHRoZSBsaXN0LCBtdWx0aXBseSB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCAod2hpY2ggd2lsbCBhbHdheXMgYmUKKyAqICAgICBiZXR3ZWVuIDAgYW5kIDEpIGJ5IHRoZSBydWxlJ3MgYmFzZSB2YWx1ZS4gS2VlcCB0cmFjayBvZiB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgcmVzdWx0CisgKiAgICAgdGhlIG5lYXJlc3QgaW50ZWdlci48L2xpPgorICogICA8bGk+VXNlIHRoZSBydWxlIHRoYXQgcHJvZHVjZWQgdGhlIHJlc3VsdCBjbG9zZXN0IHRvIHplcm8gaW4gdGhlIGFib3ZlIGNhbGN1bGF0aW9uLiBJbiB0aGUKKyAqICAgICBldmVudCBvZiBhIHRpZSBvciBhIGRpcmVjdCBoaXQsIHVzZSB0aGUgZmlyc3QgbWF0Y2hpbmcgcnVsZSBlbmNvdW50ZXJlZC4gKFRoZSBpZGVhIGhlcmUgaXMKKyAqICAgICB0byB0cnkgZWFjaCBydWxlJ3MgYmFzZSB2YWx1ZSBhcyBhIHBvc3NpYmxlIGRlbm9taW5hdG9yIG9mIGEgZnJhY3Rpb24uIFdoaWNoZXZlcgorICogICAgIGRlbm9taW5hdG9yIHByb2R1Y2VzIHRoZSBmcmFjdGlvbiBjbG9zZXN0IGluIHZhbHVlIHRvIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkIHdpbnMuKSBJZgorICogICAgIHRoZSBydWxlIGZvbGxvd2luZyB0aGUgbWF0Y2hpbmcgcnVsZSBoYXMgdGhlIHNhbWUgYmFzZSB2YWx1ZSwgdXNlIGl0IGlmIHRoZSBudW1lcmF0b3Igb2YKKyAqICAgICB0aGUgZnJhY3Rpb24gaXMgYW55dGhpbmcgb3RoZXIgdGhhbiAxOyBpZiB0aGUgbnVtZXJhdG9yIGlzIDEsIHVzZSB0aGUgb3JpZ2luYWwgbWF0Y2hpbmcKKyAqICAgICBydWxlLiAoVGhpcyBpcyB0byBhbGxvdyBzaW5ndWxhciBhbmQgcGx1cmFsIGZvcm1zIG9mIHRoZSBydWxlIHRleHQgd2l0aG91dCBhIGxvdCBvZiBleHRyYQorICogICAgIGhhc3NsZS4pPC9saT4KKyAqIDwvdWw+CisgKgorICogPHA+QSBydWxlJ3MgYm9keSBjb25zaXN0cyBvZiBhIHN0cmluZyBvZiBjaGFyYWN0ZXJzIHRlcm1pbmF0ZWQgYnkgYSBzZW1pY29sb24uIFRoZSBydWxlCisgKiBtYXkgaW5jbHVkZSB6ZXJvLCBvbmUsIG9yIHR3byA8ZW0+c3Vic3RpdHV0aW9uIHRva2Vucyw8L2VtPiBhbmQgYSByYW5nZSBvZiB0ZXh0IGluCisgKiBicmFja2V0cy4gVGhlIGJyYWNrZXRzIGRlbm90ZSBvcHRpb25hbCB0ZXh0IChhbmQgbWF5IGFsc28gaW5jbHVkZSBvbmUgb3IgYm90aAorICogc3Vic3RpdHV0aW9ucykuIFRoZSBleGFjdCBtZWFuaW5ncyBvZiB0aGUgc3Vic3RpdHV0aW9uIHRva2VucywgYW5kIHVuZGVyIHdoYXQgY29uZGl0aW9ucworICogb3B0aW9uYWwgdGV4dCBpcyBvbWl0dGVkLCBkZXBlbmQgb24gdGhlIHN5bnRheCBvZiB0aGUgc3Vic3RpdHV0aW9uIHRva2VuIGFuZCB0aGUgY29udGV4dC4KKyAqIFRoZSByZXN0IG9mIHRoZSB0ZXh0IGluIGEgcnVsZSBib2R5IGlzIGxpdGVyYWwgdGV4dCB0aGF0IGlzIG91dHB1dCB3aGVuIHRoZSBydWxlIG1hdGNoZXMKKyAqIHRoZSBudW1iZXIgYmVpbmcgZm9ybWF0dGVkLjwvcD4KKyAqCisgKiA8cD5BIHN1YnN0aXR1dGlvbiB0b2tlbiBiZWdpbnMgYW5kIGVuZHMgd2l0aCBhIDxlbT50b2tlbiBjaGFyYWN0ZXIuPC9lbT4gVGhlIHRva2VuCisgKiBjaGFyYWN0ZXIgYW5kIHRoZSBjb250ZXh0IHRvZ2V0aGVyIHNwZWNpZnkgYSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIHRvIGJlIHBlcmZvcm1lZCBvbiB0aGUKKyAqIG51bWJlciBiZWluZyBmb3JtYXR0ZWQuIEFuIG9wdGlvbmFsIDxlbT5zdWJzdGl0dXRpb24gZGVzY3JpcHRvciA8L2VtPnNwZWNpZmllcyBob3cgdGhlCisgKiB2YWx1ZSByZXN1bHRpbmcgZnJvbSB0aGF0IG9wZXJhdGlvbiBpcyB1c2VkIHRvIGZpbGwgaW4gdGhlIHN1YnN0aXR1dGlvbi4gVGhlIHBvc2l0aW9uIG9mCisgKiB0aGUgc3Vic3RpdHV0aW9uIHRva2VuIGluIHRoZSBydWxlIGJvZHkgc3BlY2lmaWVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcmVzdWx0YW50IHRleHQgaW4KKyAqIHRoZSBvcmlnaW5hbCBydWxlIHRleHQuPC9wPgorICoKKyAqIDxwPlRoZSBtZWFuaW5ncyBvZiB0aGUgc3Vic3RpdHV0aW9uIHRva2VuIGNoYXJhY3RlcnMgYXJlIGFzIGZvbGxvd3M6PC9wPgorICoKKyAqIDx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+Jmd0OyZndDs8L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gbm9ybWFsIHJ1bGU8L3RkPgorICogICAgIDx0ZD5EaXZpZGUgdGhlIG51bWJlciBieSB0aGUgcnVsZSdzIGRpdmlzb3IgYW5kIGZvcm1hdCB0aGUgcmVtYWluZGVyPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIG5lZ2F0aXZlLW51bWJlciBydWxlPC90ZD4KKyAqICAgICA8dGQ+RmluZCB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIG51bWJlciBhbmQgZm9ybWF0IHRoZSByZXN1bHQ8L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gZnJhY3Rpb24gb3IgbWFzdGVyIHJ1bGU8L3RkPgorICogICAgIDx0ZD5Jc29sYXRlIHRoZSBudW1iZXIncyBmcmFjdGlvbmFsIHBhcnQgYW5kIGZvcm1hdCBpdC48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gcnVsZSBpbiBmcmFjdGlvbiBydWxlIHNldDwvdGQ+CisgKiAgICAgPHRkPk5vdCBhbGxvd2VkLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPiZndDsmZ3Q7Jmd0OzwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBub3JtYWwgcnVsZTwvdGQ+CisgKiAgICAgPHRkPkRpdmlkZSB0aGUgbnVtYmVyIGJ5IHRoZSBydWxlJ3MgZGl2aXNvciBhbmQgZm9ybWF0IHRoZSByZW1haW5kZXIsCisgKiAgICAgICBidXQgYnlwYXNzIHRoZSBub3JtYWwgcnVsZS1zZWxlY3Rpb24gcHJvY2VzcyBhbmQganVzdCB1c2UgdGhlCisgKiAgICAgICBydWxlIHRoYXQgcHJlY2VkZXMgdGhpcyBvbmUgaW4gdGhpcyBydWxlIGxpc3QuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIGFsbCBvdGhlciBydWxlczwvdGQ+CisgKiAgICAgPHRkPk5vdCBhbGxvd2VkLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPiZsdDsmbHQ7PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIG5vcm1hbCBydWxlPC90ZD4KKyAqICAgICA8dGQ+RGl2aWRlIHRoZSBudW1iZXIgYnkgdGhlIHJ1bGUncyBkaXZpc29yIGFuZCBmb3JtYXQgdGhlIHF1b3RpZW50PC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIG5lZ2F0aXZlLW51bWJlciBydWxlPC90ZD4KKyAqICAgICA8dGQ+Tm90IGFsbG93ZWQuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIGZyYWN0aW9uIG9yIG1hc3RlciBydWxlPC90ZD4KKyAqICAgICA8dGQ+SXNvbGF0ZSB0aGUgbnVtYmVyJ3MgaW50ZWdyYWwgcGFydCBhbmQgZm9ybWF0IGl0LjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBydWxlIGluIGZyYWN0aW9uIHJ1bGUgc2V0PC90ZD4KKyAqICAgICA8dGQ+TXVsdGlwbHkgdGhlIG51bWJlciBieSB0aGUgcnVsZSdzIGJhc2UgdmFsdWUgYW5kIGZvcm1hdCB0aGUgcmVzdWx0LjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPj09PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIGFsbCBydWxlIHNldHM8L3RkPgorICogICAgIDx0ZD5Gb3JtYXQgdGhlIG51bWJlciB1bmNoYW5nZWQ8L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj5bXTwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBub3JtYWwgcnVsZTwvdGQ+CisgKiAgICAgPHRkPk9taXQgdGhlIG9wdGlvbmFsIHRleHQgaWYgdGhlIG51bWJlciBpcyBhbiBldmVuIG11bHRpcGxlIG9mIHRoZSBydWxlJ3MgZGl2aXNvcjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBuZWdhdGl2ZS1udW1iZXIgcnVsZTwvdGQ+CisgKiAgICAgPHRkPk5vdCBhbGxvd2VkLjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjM3Ij48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMjMiPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIxNjUiIHZhbGlnbj0idG9wIj5pbiBpbXByb3Blci1mcmFjdGlvbiBydWxlPC90ZD4KKyAqICAgICA8dGQ+T21pdCB0aGUgb3B0aW9uYWwgdGV4dCBpZiB0aGUgbnVtYmVyIGlzIGJldHdlZW4gMCBhbmQgMSAoc2FtZSBhcyBzcGVjaWZ5aW5nIGJvdGggYW4KKyAqICAgICB4LnggcnVsZSBhbmQgYSAwLnggcnVsZSk8L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSIzNyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjIzIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY1IiB2YWxpZ249InRvcCI+aW4gbWFzdGVyIHJ1bGU8L3RkPgorICogICAgIDx0ZD5PbWl0IHRoZSBvcHRpb25hbCB0ZXh0IGlmIHRoZSBudW1iZXIgaXMgYW4gaW50ZWdlciAoc2FtZSBhcyBzcGVjaWZ5aW5nIGJvdGggYW4geC54CisgKiAgICAgcnVsZSBhbmQgYW4geC4wIHJ1bGUpPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIHByb3Blci1mcmFjdGlvbiBydWxlPC90ZD4KKyAqICAgICA8dGQ+Tm90IGFsbG93ZWQuPC90ZD4KKyAqICAgPC90cj4KKyAqICAgPHRyPgorICogICAgIDx0ZCB3aWR0aD0iMzciPjwvdGQ+CisgKiAgICAgPHRkIHdpZHRoPSIyMyI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NSIgdmFsaWduPSJ0b3AiPmluIHJ1bGUgaW4gZnJhY3Rpb24gcnVsZSBzZXQ8L3RkPgorICogICAgIDx0ZD5PbWl0IHRoZSBvcHRpb25hbCB0ZXh0IGlmIG11bHRpcGx5aW5nIHRoZSBudW1iZXIgYnkgdGhlIHJ1bGUncyBiYXNlIHZhbHVlIHlpZWxkcyAxLjwvdGQ+CisgKiAgIDwvdHI+CisgKiA8L3RhYmxlPgorICoKKyAqIDxwPlRoZSBzdWJzdGl0dXRpb24gZGVzY3JpcHRvciAoaS5lLiwgdGhlIHRleHQgYmV0d2VlbiB0aGUgdG9rZW4gY2hhcmFjdGVycykgbWF5IHRha2Ugb25lCisgKiBvZiB0aHJlZSBmb3Jtczo8L3A+CisgKgorICogPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI0MiI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NiIgdmFsaWduPSJ0b3AiPmEgcnVsZSBzZXQgbmFtZTwvdGQ+CisgKiAgICAgPHRkPlBlcmZvcm0gdGhlIG1hdGhlbWF0aWNhbCBvcGVyYXRpb24gb24gdGhlIG51bWJlciwgYW5kIGZvcm1hdCB0aGUgcmVzdWx0IHVzaW5nIHRoZQorICogICAgIG5hbWVkIHJ1bGUgc2V0LjwvdGQ+CisgKiAgIDwvdHI+CisgKiAgIDx0cj4KKyAqICAgICA8dGQgd2lkdGg9IjQyIj48L3RkPgorICogICAgIDx0ZCB3aWR0aD0iMTY2IiB2YWxpZ249InRvcCI+YSBEZWNpbWFsRm9ybWF0IHBhdHRlcm48L3RkPgorICogICAgIDx0ZD5QZXJmb3JtIHRoZSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIG9uIHRoZSBudW1iZXIsIGFuZCBmb3JtYXQgdGhlIHJlc3VsdCB1c2luZyBhCisgKiAgICAgRGVjaW1hbEZvcm1hdCB3aXRoIHRoZSBzcGVjaWZpZWQgcGF0dGVybi4mbmJzcDsgVGhlIHBhdHRlcm4gbXVzdCBiZWdpbiB3aXRoIDAgb3IgIy48L3RkPgorICogICA8L3RyPgorICogICA8dHI+CisgKiAgICAgPHRkIHdpZHRoPSI0MiI+PC90ZD4KKyAqICAgICA8dGQgd2lkdGg9IjE2NiIgdmFsaWduPSJ0b3AiPm5vdGhpbmc8L3RkPgorICogICAgIDx0ZD5QZXJmb3JtIHRoZSBtYXRoZW1hdGljYWwgb3BlcmF0aW9uIG9uIHRoZSBudW1iZXIsIGFuZCBmb3JtYXQgdGhlIHJlc3VsdCB1c2luZyB0aGUgcnVsZQorICogICAgIHNldCBjb250YWluaW5nIHRoZSBjdXJyZW50IHJ1bGUsIGV4Y2VwdDo8dWw+CisgKiAgICAgICA8bGk+WW91IGNhbid0IGhhdmUgYW4gZW1wdHkgc3Vic3RpdHV0aW9uIGRlc2NyaXB0b3Igd2l0aCBhID09IHN1YnN0aXR1dGlvbi48L2xpPgorICogICAgICAgPGxpPklmIHlvdSBvbWl0IHRoZSBzdWJzdGl0dXRpb24gZGVzY3JpcHRvciBpbiBhICZndDsmZ3Q7IHN1YnN0aXR1dGlvbiBpbiBhIGZyYWN0aW9uIHJ1bGUsCisgKiAgICAgICAgIGZvcm1hdCB0aGUgcmVzdWx0IG9uZSBkaWdpdCBhdCBhIHRpbWUgdXNpbmcgdGhlIHJ1bGUgc2V0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgcnVsZS48L2xpPgorICogICAgICAgPGxpPklmIHlvdSBvbWl0IHRoZSBzdWJzdGl0dXRpb24gZGVzY3JpcHRvciBpbiBhICZsdDsmbHQ7IHN1YnN0aXR1dGlvbiBpbiBhIHJ1bGUgaW4gYQorICogICAgICAgICBmcmFjdGlvbiBydWxlIHNldCwgZm9ybWF0IHRoZSByZXN1bHQgdXNpbmcgdGhlIGRlZmF1bHQgcnVsZSBzZXQgZm9yIHRoaXMgZm9ybWF0dGVyLjwvbGk+CisgKiAgICAgPC91bD4KKyAqICAgICA8L3RkPgorICogICA8L3RyPgorICogPC90YWJsZT4KKyAqCisgKiA8cD5XaGl0ZXNwYWNlIGlzIGlnbm9yZWQgYmV0d2VlbiBhIHJ1bGUgc2V0IG5hbWUgYW5kIGEgcnVsZSBzZXQgYm9keSwgYmV0d2VlbiBhIHJ1bGUKKyAqIGRlc2NyaXB0b3IgYW5kIGEgcnVsZSBib2R5LCBvciBiZXR3ZWVuIHJ1bGVzLiBJZiBhIHJ1bGUgYm9keSBiZWdpbnMgd2l0aCBhbiBhcG9zdHJvcGhlLAorICogdGhlIGFwb3N0cm9waGUgaXMgaWdub3JlZCwgYnV0IGFsbCB0ZXh0IGFmdGVyIGl0IGJlY29tZXMgc2lnbmlmaWNhbnQgKHRoaXMgaXMgaG93IHlvdSBjYW4KKyAqIGhhdmUgYSBydWxlJ3MgcnVsZSB0ZXh0IGJlZ2luIHdpdGggd2hpdGVzcGFjZSkuIFRoZXJlIGlzIG5vIGVzY2FwZSBmdW5jdGlvbjogdGhlIHNlbWljb2xvbgorICogaXMgbm90IGFsbG93ZWQgaW4gcnVsZSBzZXQgbmFtZXMgb3IgaW4gcnVsZSB0ZXh0LCBhbmQgdGhlIGNvbG9uIGlzIG5vdCBhbGxvd2VkIGluIHJ1bGUgc2V0CisgKiBuYW1lcy4gVGhlIGNoYXJhY3RlcnMgYmVnaW5uaW5nIGEgc3Vic3RpdHV0aW9uIHRva2VuIGFyZSBhbHdheXMgdHJlYXRlZCBhcyB0aGUgYmVnaW5uaW5nCisgKiBvZiBhIHN1YnN0aXR1dGlvbiB0b2tlbi48L3A+CisgKgorICogPHA+U2VlIHRoZSByZXNvdXJjZSBkYXRhIGFuZCB0aGUgZGVtbyBwcm9ncmFtIGZvciBhbm5vdGF0ZWQgZXhhbXBsZXMgb2YgcmVhbCBydWxlIHNldHMKKyAqIHVzaW5nIHRoZXNlIGZlYXR1cmVzLjwvcD4KKyAqCisgKiBAYXV0aG9yIFJpY2hhcmQgR2lsbGFtCisgKiBAc2VlIE51bWJlckZvcm1hdAorICogQHNlZSBEZWNpbWFsRm9ybWF0CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBleHRlbmRzIE51bWJlckZvcm1hdCB7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gR2VuZXJhdGVkIGJ5IHNlcmlhbHZlciBmcm9tIEpESyAxLjQuMV8wMQorICAgIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNzY2NDI1Mjc2NTU3NTM5NTA2OEw7CisgICAgCisgICAgLyoqCisgICAgICogUHV0cyBhIGNvcHlyaWdodCBpbiB0aGUgLmNsYXNzIGZpbGUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgY29weXJpZ2h0Tm90aWNlCisgICAgICAgID0gIkNvcHlyaWdodCBcdTAwYTkxOTk3LTIwMDQgSUJNIENvcnAuICBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3RvciBjb2RlIHRoYXQgdGVsbHMgdGhlIGNvbnN0cnVjdG9yIHRvIGNyZWF0ZSBhIHNwZWxsb3V0IGZvcm1hdHRlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNQRUxMT1VUID0gMTsKKworICAgIC8qKgorICAgICAqIFNlbGVjdG9yIGNvZGUgdGhhdCB0ZWxscyB0aGUgY29uc3RydWN0b3IgdG8gY3JlYXRlIGFuIG9yZGluYWwgZm9ybWF0dGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgT1JESU5BTCA9IDI7CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3RvciBjb2RlIHRoYXQgdGVsbHMgdGhlIGNvbnN0cnVjdG9yIHRvIGNyZWF0ZSBhIGR1cmF0aW9uIGZvcm1hdHRlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERVUkFUSU9OID0gMzsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBkYXRhIG1lbWJlcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgZm9ybWF0dGVyJ3MgcnVsZSBzZXRzLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IE5GUnVsZVNldFtdIHJ1bGVTZXRzID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEEgcG9pbnRlciB0byB0aGUgZm9ybWF0dGVyJ3MgZGVmYXVsdCBydWxlIHNldC4gIFRoaXMgaXMgYWx3YXlzIGluY2x1ZGVkCisgICAgICogaW4gcnVsZVNldHMuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgTkZSdWxlU2V0IGRlZmF1bHRSdWxlU2V0ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBmb3JtYXR0ZXIncyBsb2NhbGUuICBUaGlzIGlzIHVzZWQgdG8gY3JlYXRlIERlY2ltYWxGb3JtYXRTeW1ib2xzIGFuZAorICAgICAqIENvbGxhdG9yIG9iamVjdHMuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSBsb2NhbGUgPSBudWxsOworCisgICAgLyoqCisgICAgICogQ29sbGF0b3IgdG8gYmUgdXNlZCBpbiBsZW5pZW50IHBhcnNpbmcuICBUaGlzIHZhcmlhYmxlIGlzIGxhenktZXZhbHVhdGVkOgorICAgICAqIHRoZSBjb2xsYXRvciBpcyBhY3R1YWxseSBjcmVhdGVkIHRoZSBmaXJzdCB0aW1lIHRoZSBjbGllbnQgZG9lcyBhIHBhcnNlCisgICAgICogd2l0aCBsZW5pZW50LXBhcnNlIG1vZGUgdHVybmVkIG9uLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IENvbGxhdG9yIGNvbGxhdG9yID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgdGhhdCBhbnkgRGVjaW1hbEZvcm1hdCBvYmplY3RzIHRoaXMKKyAgICAgKiBmb3JtYXR0ZXIgdXNlcyBzaG91bGQgdXNlLiAgVGhpcyB2YXJpYWJsZSBpcyBsYXp5LWV2YWx1YXRlZDogaXQgaXNuJ3QKKyAgICAgKiBmaWxsZWQgaW4gaWYgdGhlIHJ1bGUgc2V0IG5ldmVyIHVzZXMgYSBEZWNpbWFsRm9ybWF0IHBhdHRlcm4uCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgRGVjaW1hbEZvcm1hdFN5bWJvbHMgZGVjaW1hbEZvcm1hdFN5bWJvbHMgPSBudWxsOworCisgICAgLyoqCisgICAgICogRmxhZyBzcGVjaWZ5aW5nIHdoZXRoZXIgbGVuaWVudCBwYXJzZSBtb2RlIGlzIG9uIG9yIG9mZi4gIE9mZiBieSBkZWZhdWx0LgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbGVuaWVudFBhcnNlID0gZmFsc2U7CisKKyAgICAvKioKKyAgICAgKiBJZiB0aGUgZGVzY3JpcHRpb24gc3BlY2lmaWVzIGxlbmllbnQtcGFyc2UgcnVsZXMsIHRoZXkncmUgc3RvcmVkIGhlcmUgdW50aWwKKyAgICAgKiB0aGUgY29sbGF0b3IgaXMgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBTdHJpbmcgbGVuaWVudFBhcnNlUnVsZXM7CisKKyAgICAvKioKKyAgICAgKiBJZiB0aGUgZGVzY3JpcHRpb24gc3BlY2lmaWVzIHBvc3QtcHJvY2VzcyBydWxlcywgdGhleSdyZSBzdG9yZWQgaGVyZSB1bnRpbAorICAgICAqIHBvc3QtcHJvY2Vzc2luZyBpcyByZXF1aXJlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBTdHJpbmcgcG9zdFByb2Nlc3NSdWxlczsKKworICAgIC8qKgorICAgICAqIFBvc3QgcHJvY2Vzc29yIGxhemlseSBjb25zdHJ1Y3RlZCBmcm9tIHRoZSBwb3N0UHJvY2Vzc1J1bGVzLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IFJCTkZQb3N0UHJvY2Vzc29yIHBvc3RQcm9jZXNzb3I7CisKKyAgICAvKioKKyAgICAgKiBMb2NhbGl6YXRpb25zIGZvciBydWxlIHNldCBuYW1lcy4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgcnVsZVNldERpc3BsYXlOYW1lczsKKworICAgIC8qKgorICAgICAqIFRoZSBwdWJsaWMgcnVsZSBzZXQgbmFtZXM7CisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nW10gcHVibGljUnVsZVNldE5hbWVzOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgID0gIElDVURlYnVnLmVuYWJsZWQoInJibmYiKTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3RvcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gdGhlIGRlc2NyaXB0aW9uCisgICAgICogcGFzc2VkIGluLiAgVGhlIGZvcm1hdHRlciB1c2VzIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gQSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0dGVyJ3MgZGVzaXJlZCBiZWhhdmlvci4KKyAgICAgKiBTZWUgdGhlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGEgY29tcGxldGUgZXhwbGFuYXRpb24gb2YgdGhlIGRlc2NyaXB0aW9uCisgICAgICogc3ludGF4LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoU3RyaW5nIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIGxvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICBpbml0KGRlc2NyaXB0aW9uLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gdGhlIGRlc2NyaXB0aW9uCisgICAgICogcGFzc2VkIGluLiAgVGhlIGZvcm1hdHRlciB1c2VzIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgbG9jYWxpemF0aW9ucyBkYXRhIHByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwdWJsaWMKKyAgICAgKiBydWxlIHNldHMgYW5kIHRoZWlyIGxvY2FsaXplZCBkaXNwbGF5IG5hbWVzIGZvciBkaWZmZXJlbnQKKyAgICAgKiBsb2NhbGVzLiBUaGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgbGlzdCBpcyBhbiBhcnJheSBvZiB0aGUgbmFtZXMKKyAgICAgKiBvZiB0aGUgcHVibGljIHJ1bGUgc2V0cy4gIFRoZSBmaXJzdCBlbGVtZW50IGluIHRoaXMgYXJyYXkgaXMKKyAgICAgKiB0aGUgaW5pdGlhbCBkZWZhdWx0IHJ1bGVzZXQuICBUaGUgcmVtYWluaW5nIGVsZW1lbnRzIGluIHRoZQorICAgICAqIGxpc3QgYXJlIGFycmF5cyBvZiBsb2NhbGl6YXRpb25zIG9mIHRoZSBuYW1lcyBvZiB0aGUgcHVibGljCisgICAgICogcnVsZSBzZXRzLiAgRWFjaCBvZiB0aGVzZSBpcyBvbmUgbG9uZ2VyIHRoYW4gdGhlIGluaXRpYWwgYXJyYXksCisgICAgICogd2l0aCB0aGUgZmlyc3QgU3RyaW5nIGJlaW5nIHRoZSBVTG9jYWxlIElELCBhbmQgdGhlIHJlbWFpbmluZworICAgICAqIFN0cmluZ3MgYmVpbmcgdGhlIGxvY2FsaXphdGlvbnMgb2YgdGhlIHJ1bGUgc2V0IG5hbWVzLCBpbiB0aGUKKyAgICAgKiBzYW1lIG9yZGVyIGFzIHRoZSBpbml0aWFsIGFycmF5LgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBmb3JtYXR0ZXIncyBkZXNpcmVkIGJlaGF2aW9yLgorICAgICAqIFNlZSB0aGUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgYSBjb21wbGV0ZSBleHBsYW5hdGlvbiBvZiB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBzeW50YXguCisgICAgICogQHBhcmFtIGxvY2FsaXphdGlvbnMgYSBsaXN0IG9mIGxvY2FsaXphdGlvbnMgZm9yIHRoZSBydWxlIHNldAorICAgICAqIG5hbWVzIGluIHRoZSBkZXNjcmlwdGlvbi4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoU3RyaW5nIGRlc2NyaXB0aW9uLCBTdHJpbmdbXVtdIGxvY2FsaXphdGlvbnMpIHsKKyAgICAgICAgbG9jYWxlID0gVUxvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIGluaXQoZGVzY3JpcHRpb24sIGxvY2FsaXphdGlvbnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBiZWhhdmVzIGFjY29yZGluZyB0byB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBwYXNzZWQgaW4uICBUaGUgZm9ybWF0dGVyIHVzZXMgdGhlIHNwZWNpZmllZCBsb2NhbGUgdG8gZGV0ZXJtaW5lIHRoZQorICAgICAqIGNoYXJhY3RlcnMgdG8gdXNlIHdoZW4gZm9ybWF0dGluZyBpbiBudW1lcmFscywgYW5kIHRvIGRlZmluZSBlcXVpdmFsZW5jZXMKKyAgICAgKiBmb3IgbGVuaWVudCBwYXJzaW5nLgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBmb3JtYXR0ZXIncyBkZXNpcmVkIGJlaGF2aW9yLgorICAgICAqIFNlZSB0aGUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgYSBjb21wbGV0ZSBleHBsYW5hdGlvbiBvZiB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBzeW50YXguCisgICAgICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSwgd2hpY2ggZ292ZXJucyB3aGljaCBjaGFyYWN0ZXJzIGFyZSB1c2VkIGZvcgorICAgICAqIGZvcm1hdHRpbmcgdmFsdWVzIGluIG51bWVyYWxzLCBhbmQgd2hpY2ggY2hhcmFjdGVycyBhcmUgZXF1aXZhbGVudCBpbgorICAgICAqIGxlbmllbnQgcGFyc2luZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFN0cmluZyBkZXNjcmlwdGlvbiwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzKGRlc2NyaXB0aW9uLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQgYmVoYXZlcyBhY2NvcmRpbmcgdG8gdGhlIGRlc2NyaXB0aW9uCisgICAgICogcGFzc2VkIGluLiAgVGhlIGZvcm1hdHRlciB1c2VzIHRoZSBzcGVjaWZpZWQgbG9jYWxlIHRvIGRldGVybWluZSB0aGUKKyAgICAgKiBjaGFyYWN0ZXJzIHRvIHVzZSB3aGVuIGZvcm1hdHRpbmcgaW4gbnVtZXJhbHMsIGFuZCB0byBkZWZpbmUgZXF1aXZhbGVuY2VzCisgICAgICogZm9yIGxlbmllbnQgcGFyc2luZy4KKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gQSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0dGVyJ3MgZGVzaXJlZCBiZWhhdmlvci4KKyAgICAgKiBTZWUgdGhlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGEgY29tcGxldGUgZXhwbGFuYXRpb24gb2YgdGhlIGRlc2NyaXB0aW9uCisgICAgICogc3ludGF4LgorICAgICAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUsIHdoaWNoIGdvdmVybnMgd2hpY2ggY2hhcmFjdGVycyBhcmUgdXNlZCBmb3IKKyAgICAgKiBmb3JtYXR0aW5nIHZhbHVlcyBpbiBudW1lcmFscywgYW5kIHdoaWNoIGNoYXJhY3RlcnMgYXJlIGVxdWl2YWxlbnQgaW4KKyAgICAgKiBsZW5pZW50IHBhcnNpbmcuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KFN0cmluZyBkZXNjcmlwdGlvbiwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisgICAgICAgIGluaXQoZGVzY3JpcHRpb24sIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBiZWhhdmVzIGFjY29yZGluZyB0byB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBwYXNzZWQgaW4uICBUaGUgZm9ybWF0dGVyIHVzZXMgdGhlIHNwZWNpZmllZCBsb2NhbGUgdG8gZGV0ZXJtaW5lIHRoZQorICAgICAqIGNoYXJhY3RlcnMgdG8gdXNlIHdoZW4gZm9ybWF0dGluZyBpbiBudW1lcmFscywgYW5kIHRvIGRlZmluZSBlcXVpdmFsZW5jZXMKKyAgICAgKiBmb3IgbGVuaWVudCBwYXJzaW5nLgorICAgICAqIDxwPgorICAgICAqIFRoZSBsb2NhbGl6YXRpb25zIGRhdGEgcHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHB1YmxpYworICAgICAqIHJ1bGUgc2V0cyBhbmQgdGhlaXIgbG9jYWxpemVkIGRpc3BsYXkgbmFtZXMgZm9yIGRpZmZlcmVudAorICAgICAqIGxvY2FsZXMuIFRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBsaXN0IGlzIGFuIGFycmF5IG9mIHRoZSBuYW1lcworICAgICAqIG9mIHRoZSBwdWJsaWMgcnVsZSBzZXRzLiAgVGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhpcyBhcnJheSBpcworICAgICAqIHRoZSBpbml0aWFsIGRlZmF1bHQgcnVsZXNldC4gIFRoZSByZW1haW5pbmcgZWxlbWVudHMgaW4gdGhlCisgICAgICogbGlzdCBhcmUgYXJyYXlzIG9mIGxvY2FsaXphdGlvbnMgb2YgdGhlIG5hbWVzIG9mIHRoZSBwdWJsaWMKKyAgICAgKiBydWxlIHNldHMuICBFYWNoIG9mIHRoZXNlIGlzIG9uZSBsb25nZXIgdGhhbiB0aGUgaW5pdGlhbCBhcnJheSwKKyAgICAgKiB3aXRoIHRoZSBmaXJzdCBTdHJpbmcgYmVpbmcgdGhlIFVMb2NhbGUgSUQsIGFuZCB0aGUgcmVtYWluaW5nCisgICAgICogU3RyaW5ncyBiZWluZyB0aGUgbG9jYWxpemF0aW9ucyBvZiB0aGUgcnVsZSBzZXQgbmFtZXMsIGluIHRoZQorICAgICAqIHNhbWUgb3JkZXIgYXMgdGhlIGluaXRpYWwgYXJyYXkuCisgICAgICogQHBhcmFtIGRlc2NyaXB0aW9uIEEgZGVzY3JpcHRpb24gb2YgdGhlIGZvcm1hdHRlcidzIGRlc2lyZWQgYmVoYXZpb3IuCisgICAgICogU2VlIHRoZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBhIGNvbXBsZXRlIGV4cGxhbmF0aW9uIG9mIHRoZSBkZXNjcmlwdGlvbgorICAgICAqIHN5bnRheC4KKyAgICAgKiBAcGFyYW0gbG9jYWxpemF0aW9ucyBhIGxpc3Qgb2YgbG9jYWxpemF0aW9ucyBmb3IgdGhlIHJ1bGUgc2V0IG5hbWVzIGluIHRoZSBkZXNjcmlwdGlvbi4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIEEgdWxvY2FsZSB0aGF0IGdvdmVybnMgd2hpY2ggY2hhcmFjdGVycyBhcmUgdXNlZCBmb3IKKyAgICAgKiBmb3JtYXR0aW5nIHZhbHVlcyBpbiBudW1lcmFscywgYW5kIGRldGVybWluZXMgd2hpY2ggY2hhcmFjdGVycyBhcmUgZXF1aXZhbGVudCBpbgorICAgICAqIGxlbmllbnQgcGFyc2luZy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoU3RyaW5nIGRlc2NyaXB0aW9uLCBTdHJpbmdbXVtdIGxvY2FsaXphdGlvbnMsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgICAgICBpbml0KGRlc2NyaXB0aW9uLCBsb2NhbGl6YXRpb25zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGZyb20gYSBwcmVkZWZpbmVkIGRlc2NyaXB0aW9uLiAgVGhlIHNlbGVjdG9yCisgICAgICogY29kZSBjaG9vc2VkIGFtb25nIHRocmVlIHBvc3NpYmxlIHByZWRlZmluZWQgZm9ybWF0czogc3BlbGxvdXQsIG9yZGluYWwsCisgICAgICogYW5kIGR1cmF0aW9uLgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIGZvcm1hdHRlci4KKyAgICAgKiBAcGFyYW0gZm9ybWF0IEEgc2VsZWN0b3IgY29kZSBzcGVjaWZ5aW5nIHdoaWNoIGtpbmQgb2YgZm9ybWF0dGVyIHRvIGNyZWF0ZSBmb3IgdGhhdAorICAgICAqIGxvY2FsZS4gIFRoZXJlIGFyZSB0aHJlZSBsZWdhbCB2YWx1ZXM6IFNQRUxMT1VULCB3aGljaCBjcmVhdGVzIGEgZm9ybWF0dGVyIHRoYXQKKyAgICAgKiBzcGVsbHMgb3V0IGEgdmFsdWUgaW4gd29yZHMgaW4gdGhlIGRlc2lyZWQgbGFuZ3VhZ2UsIE9SRElOQUwsIHdoaWNoIGF0dGFjaGVzCisgICAgICogYW4gb3JkaW5hbCBzdWZmaXggZnJvbSB0aGUgZGVzaXJlZCBsYW5ndWFnZSB0byB0aGUgZW5kIG9mIGEgbnVtYmVyIChlLmcuICIxMjNyZCIpLAorICAgICAqIGFuZCBEVVJBVElPTiwgd2hpY2ggZm9ybWF0cyBhIGR1cmF0aW9uIGluIHNlY29uZHMgYXMgaG91cnMsIG1pbnV0ZXMsIGFuZCBzZWNvbmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoTG9jYWxlIGxvY2FsZSwgaW50IGZvcm1hdCkgeworICAgICAgICB0aGlzKFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSksIGZvcm1hdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmcm9tIGEgcHJlZGVmaW5lZCBkZXNjcmlwdGlvbi4gIFRoZSBzZWxlY3RvcgorICAgICAqIGNvZGUgY2hvb3NlZCBhbW9uZyB0aHJlZSBwb3NzaWJsZSBwcmVkZWZpbmVkIGZvcm1hdHM6IHNwZWxsb3V0LCBvcmRpbmFsLAorICAgICAqIGFuZCBkdXJhdGlvbi4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBmb3JtYXR0ZXIuCisgICAgICogQHBhcmFtIGZvcm1hdCBBIHNlbGVjdG9yIGNvZGUgc3BlY2lmeWluZyB3aGljaCBraW5kIG9mIGZvcm1hdHRlciB0byBjcmVhdGUgZm9yIHRoYXQKKyAgICAgKiBsb2NhbGUuICBUaGVyZSBhcmUgdGhyZWUgbGVnYWwgdmFsdWVzOiBTUEVMTE9VVCwgd2hpY2ggY3JlYXRlcyBhIGZvcm1hdHRlciB0aGF0CisgICAgICogc3BlbGxzIG91dCBhIHZhbHVlIGluIHdvcmRzIGluIHRoZSBkZXNpcmVkIGxhbmd1YWdlLCBPUkRJTkFMLCB3aGljaCBhdHRhY2hlcworICAgICAqIGFuIG9yZGluYWwgc3VmZml4IGZyb20gdGhlIGRlc2lyZWQgbGFuZ3VhZ2UgdG8gdGhlIGVuZCBvZiBhIG51bWJlciAoZS5nLiAiMTIzcmQiKSwKKyAgICAgKiBhbmQgRFVSQVRJT04sIHdoaWNoIGZvcm1hdHMgYSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFzIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBSdWxlQmFzZWROdW1iZXJGb3JtYXQoVUxvY2FsZSBsb2NhbGUsIGludCBmb3JtYXQpIHsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS4KKyAgICAgICAgICAgIGdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9SQk5GX0JBU0VfTkFNRSwgbG9jYWxlKTsKKworICAgICAgICAvLyBUT0RPOiBkZXRlcm1pbmUgY29ycmVjdCBhY3R1YWwvdmFsaWQgbG9jYWxlLiAgTm90ZSBhbWJpZ3VpdHkKKyAgICAgICAgLy8gaGVyZSAtLSBkbyBhY3R1YWwvdmFsaWQgcmVmZXIgdG8gcGF0dGVybiwgRGVjaW1hbEZvcm1hdFN5bWJvbHMsCisgICAgICAgIC8vIG9yIENvbGxhdG9yPworICAgICAgICBVTG9jYWxlIHVsb2MgPSBidW5kbGUuZ2V0VUxvY2FsZSgpOworICAgICAgICBzZXRMb2NhbGUodWxvYywgdWxvYyk7CisKKyAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uID0gIiI7CisgICAgICAgIFN0cmluZ1tdW10gbG9jYWxpemF0aW9ucyA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gYnVuZGxlLmdldFN0cmluZyhydWxlbmFtZXNbZm9ybWF0LTFdKTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGxvY2IgPSBidW5kbGUuZ2V0KGxvY25hbWVzW2Zvcm1hdC0xXSk7CisgICAgICAgICAgICBsb2NhbGl6YXRpb25zID0gbmV3IFN0cmluZ1tsb2NiLmdldFNpemUoKV1bXTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxpemF0aW9ucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGxvY2FsaXphdGlvbnNbaV0gPSBsb2NiLmdldChpKS5nZXRTdHJpbmdBcnJheSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgLy8gbWlnaHQgaGF2ZSBkZXNjcmlwdGlvbiBhbmQgbm8gbG9jYWxpemF0aW9ucywgb3Igbm8gZGVzY3JpcHRpb24uLi4KKyAgICAgICAgfQorCisgICAgICAgIGluaXQoZGVzY3JpcHRpb24sIGxvY2FsaXphdGlvbnMpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZ1tdIHJ1bGVuYW1lcyA9IHsKKyAgICAgICAgIlNwZWxsb3V0UnVsZXMiLCAiT3JkaW5hbFJ1bGVzIiwgIkR1cmF0aW9uUnVsZXMiLAorICAgIH07CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gbG9jbmFtZXMgPSB7CisgICAgICAgICJTcGVsbG91dExvY2FsaXphdGlvbnMiLCAiT3JkaW5hbExvY2FsaXphdGlvbnMiLCAiRHVyYXRpb25Mb2NhbGl6YXRpb25zIiwKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmcm9tIGEgcHJlZGVmaW5lZCBkZXNjcmlwdGlvbi4gIFVzZXMgdGhlCisgICAgICogZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGZvcm1hdCBBIHNlbGVjdG9yIGNvZGUgc3BlY2lmeWluZyB3aGljaCBraW5kIG9mIGZvcm1hdHRlciB0byBjcmVhdGUuCisgICAgICogVGhlcmUgYXJlIHRocmVlIGxlZ2FsIHZhbHVlczogU1BFTExPVVQsIHdoaWNoIGNyZWF0ZXMgYSBmb3JtYXR0ZXIgdGhhdCBzcGVsbHMKKyAgICAgKiBvdXQgYSB2YWx1ZSBpbiB3b3JkcyBpbiB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5neWFnZSwgT1JESU5BTCwgd2hpY2ggYXR0YWNoZXMKKyAgICAgKiBhbiBvcmRpbmFsIHN1ZmZpeCBmcm9tIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIHRvIGEgbnVtZXJhbCwgYW5kCisgICAgICogRFVSQVRJT04sIHdoaWNoIGZvcm1hdHMgYSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFzIGhvdXJzLCBtaW51dGVzLCBhbmQgc2Vjb25kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkTnVtYmVyRm9ybWF0KGludCBmb3JtYXQpIHsKKyAgICAgICAgdGhpcyhVTG9jYWxlLmdldERlZmF1bHQoKSwgZm9ybWF0KTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gYm9pbGVycGxhdGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBEdXBsaWNhdGVzIHRoaXMgZm9ybWF0dGVyLgorICAgICAqIEByZXR1cm4gQSBSdWxlQmFzZWROdW1iZXJGb3JtYXQgdGhhdCBpcyBlcXVhbCB0byB0aGlzIG9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gc3VwZXIuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0cyB0d28gUnVsZUJhc2VkTnVtYmVyRm9ybWF0cyBmb3IgZXF1YWxpdHkuCisgICAgICogQHBhcmFtIHRoYXQgVGhlIGZvcm1hdHRlciB0byBjb21wYXJlIGFnYWluc3QgdGhpcyBvbmUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28gZm9ybWF0dGVycyBoYXZlIGlkZW50aWNhbCBiZWhhdmlvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHRoYXQpIHsKKyAgICAgICAgLy8gaWYgdGhlIG90aGVyIG9iamVjdCBpc24ndCBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdCwgdGhhdCdzCisgICAgICAgIC8vIGFsbCB3ZSBuZWVkIHRvIGtub3cKKyAgICAgICAgaWYgKCEodGhhdCBpbnN0YW5jZW9mIFJ1bGVCYXNlZE51bWJlckZvcm1hdCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGNhc3QgdGhlIG90aGVyIG9iamVjdCdzIHBvaW50ZXIgdG8gYSBwb2ludGVyIHRvIGEKKyAgICAgICAgICAgIC8vIFJ1bGVCYXNlZE51bWJlckZvcm1hdAorICAgICAgICAgICAgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IHRoYXQyID0gKFJ1bGVCYXNlZE51bWJlckZvcm1hdCl0aGF0OworCisgICAgICAgICAgICAvLyBjb21wYXJlIHRoZWlyIGxvY2FsZXMgYW5kIGxlbmllbnQtcGFyc2UgbW9kZXMKKyAgICAgICAgICAgIGlmICghbG9jYWxlLmVxdWFscyh0aGF0Mi5sb2NhbGUpIHx8IGxlbmllbnRQYXJzZSAhPSB0aGF0Mi5sZW5pZW50UGFyc2UpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIGlmIHRoYXQgc3VjY2VlZHMsIHRoZW4gY29tcGFyZSB0aGVpciBydWxlIHNldCBsaXN0cworICAgICAgICAgICAgaWYgKHJ1bGVTZXRzLmxlbmd0aCAhPSB0aGF0Mi5ydWxlU2V0cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVTZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFydWxlU2V0c1tpXS5lcXVhbHModGhhdDIucnVsZVNldHNbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIGEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiB0aGlzIGZvcm1hdHRlci4KKyAgICAgKiBAcmV0dXJuIGEgU3RyaW5nIGNvbnRhaW5pbmcgYSBydWxlIHNldCB0aGF0IHdpbGwgcHJvZHVjZSBhIFJ1bGVCYXNlZE51bWJlckZvcm1hdAorICAgICAqIHdpdGggaWRlbnRpY2FsIGJlaGF2aW9yIHRvIHRoaXMgb25lLiAgVGhpcyB3b24ndCBuZWNlc3NhcmlseSBiZSBpZGVudGljYWwKKyAgICAgKiB0byB0aGUgcnVsZSBzZXQgZGVzY3JpcHRpb24gdGhhdCB3YXMgb3JpZ2luYWxseSBwYXNzZWQgaW4sIGJ1dCB3aWxsIHByb2R1Y2UKKyAgICAgKiB0aGUgc2FtZSByZXN1bHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKworICAgICAgICAvLyBhY2N1bXVsYXRlIHRoZSBkZXNjcmlwdGlvbnMgb2YgYWxsIHRoZSBydWxlIHNldHMgaW4gYQorICAgICAgICAvLyBTdHJpbmdCdWZmZXIsIHRoZW4gY2FzdCBpdCB0byBhIFN0cmluZyBhbmQgcmV0dXJuIGl0CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVsZVNldHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocnVsZVNldHNbaV0udG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFdyaXRlcyB0aGlzIG9iamVjdCB0byBhIHN0cmVhbS4KKyAgICAgKiBAcGFyYW0gb3V0IFRoZSBzdHJlYW0gdG8gd3JpdGUgdG8uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHdyaXRlT2JqZWN0KGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtIG91dCkKKyAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24geworICAgICAgICAvLyB3ZSBqdXN0IHdyaXRlIHRoZSB0ZXh0dWFsIGRlc2NyaXB0aW9uIHRvIHRoZSBzdHJlYW0sIHNvIHdlCisgICAgICAgIC8vIGhhdmUgYW4gaW1wbGVtZW50YXRpb24taW5kZXBlbmRlbnQgc3RyZWFtaW5nIGZvcm1hdAorICAgICAgICBvdXQud3JpdGVVVEYodGhpcy50b1N0cmluZygpKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KHRoaXMubG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWFkcyB0aGlzIG9iamVjdCBpbiBmcm9tIGEgc3RyZWFtLgorICAgICAqIEBwYXJhbSBpbiBUaGUgc3RyZWFtIHRvIHJlYWQgZnJvbS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtIGluKQorICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwgamF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb24geworCisgICAgICAgIC8vIHJlYWQgdGhlIGRlc2NyaXB0aW9uIGluIGZyb20gdGhlIHN0cmVhbQorICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb24gPSBpbi5yZWFkVVRGKCk7CisgICAgICAgIFVMb2NhbGUgbG9jOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGxvYyA9IChVTG9jYWxlKSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2MgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGJ1aWxkIGEgYnJhbmQtbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdCBmcm9tIHRoZSBkZXNjcmlwdGlvbiwKKyAgICAgICAgLy8gdGhlbiBzdGVhbCBpdHMgc3Vic3RydWN0dXJlLiAgVGhpcyBvYmplY3QncyBzdWJzdHJ1Y3R1cmUgYW5kCisgICAgICAgIC8vIHRoZSB0ZW1wb3JhcnkgUnVsZUJhc2VkTnVtYmVyRm9ybWF0IGRyb3Agb24gdGhlIGZsb29yIGFuZAorICAgICAgICAvLyBnZXQgc3dlcHQgdXAgYnkgdGhlIGdhcmJhZ2UgY29sbGVjdG9yCisgICAgICAgIFJ1bGVCYXNlZE51bWJlckZvcm1hdCB0ZW1wID0gbmV3IFJ1bGVCYXNlZE51bWJlckZvcm1hdChkZXNjcmlwdGlvbiwgbG9jKTsKKyAgICAgICAgcnVsZVNldHMgPSB0ZW1wLnJ1bGVTZXRzOworICAgICAgICBkZWZhdWx0UnVsZVNldCA9IHRlbXAuZGVmYXVsdFJ1bGVTZXQ7CisgICAgICAgIHB1YmxpY1J1bGVTZXROYW1lcyA9IHRlbXAucHVibGljUnVsZVNldE5hbWVzOworICAgICAgICBkZWNpbWFsRm9ybWF0U3ltYm9scyA9IHRlbXAuZGVjaW1hbEZvcm1hdFN5bWJvbHM7CisgICAgICAgIGxvY2FsZSA9IHRlbXAubG9jYWxlOworICAgIH0KKworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHB1YmxpYyBBUEkgZnVuY3Rpb25zCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgdGhlIG5hbWVzIG9mIGFsbCBvZiB0aGlzIGZvcm1hdHRlcidzIHB1YmxpYyBydWxlIHNldHMuCisgICAgICogQHJldHVybiBBIGxpc3Qgb2YgdGhlIG5hbWVzIG9mIGFsbCBvZiB0aGlzIGZvcm1hdHRlcidzIHB1YmxpYyBydWxlIHNldHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIGdldFJ1bGVTZXROYW1lcygpIHsKKyAgICAgICAgcmV0dXJuIChTdHJpbmdbXSlwdWJsaWNSdWxlU2V0TmFtZXMuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIHRoZXJlIGFyZSBsb2NhbGUtc3BlY2lmaWMgZGlzcGxheSBuYW1lcworICAgICAqIGZvciB0aGUgcnVsZSBzZXRzIGluIHRoaXMgZm9ybWF0dGVyLiAgSWYgdGhlcmUgYXJlIG5vIGxvY2FsaXplZCBkaXNwbGF5IG5hbWVzLCByZXR1cm4gbnVsbC4KKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIHRoZSB1bG9jYWxlcyBmb3Igd2hpY2ggdGhlcmUgaXMgcnVsZSBzZXQgZGlzcGxheSBuYW1lIGluZm9ybWF0aW9uCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVUxvY2FsZVtdIGdldFJ1bGVTZXREaXNwbGF5TmFtZUxvY2FsZXMoKSB7CisgICAgICAgIGlmIChydWxlU2V0RGlzcGxheU5hbWVzICE9IG51bGwpIHsKKyAgICAgICAgICAgIFNldCBzID0gcnVsZVNldERpc3BsYXlOYW1lcy5rZXlTZXQoKTsKKyAgICAgICAgICAgIFN0cmluZ1tdIGxvY2FsZXMgPSAoU3RyaW5nW10pcy50b0FycmF5KG5ldyBTdHJpbmdbcy5zaXplKCldKTsKKyAgICAgICAgICAgIEFycmF5cy5zb3J0KGxvY2FsZXMsIFN0cmluZy5DQVNFX0lOU0VOU0lUSVZFX09SREVSKTsKKyAgICAgICAgICAgIFVMb2NhbGVbXSByZXN1bHQgPSBuZXcgVUxvY2FsZVtsb2NhbGVzLmxlbmd0aF07CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxvY2FsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICByZXN1bHRbaV0gPSBuZXcgVUxvY2FsZShsb2NhbGVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmdbXSBnZXROYW1lTGlzdEZvckxvY2FsZShVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBpZiAobG9jYWxlICE9IG51bGwgJiYgcnVsZVNldERpc3BsYXlOYW1lcyAhPSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmdbXSBsb2NhbGVOYW1lcyA9IHsgbG9jYWxlLmdldEJhc2VOYW1lKCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpLmdldEJhc2VOYW1lKCkgfTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbG9jYWxlTmFtZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbG5hbWUgPSBsb2NhbGVOYW1lc1tpXTsKKyAgICAgICAgICAgICAgICB3aGlsZSAobG5hbWUubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ1tdIG5hbWVzID0gKFN0cmluZ1tdKXJ1bGVTZXREaXNwbGF5TmFtZXMuZ2V0KGxuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lczsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsbmFtZSA9IFVMb2NhbGUuZ2V0RmFsbGJhY2sobG5hbWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHJ1bGUgc2V0IGRpc3BsYXkgbmFtZXMgZm9yIHRoZSBwcm92aWRlZCBsb2NhbGUuICBUaGVzZSBhcmUgaW4gdGhlIHNhbWUgb3JkZXIKKyAgICAgKiBhcyB0aG9zZSByZXR1cm5lZCBieSBnZXRSdWxlU2V0TmFtZXMuICBUaGUgbG9jYWxlIGlzIG1hdGNoZWQgYWdhaW5zdCB0aGUgbG9jYWxlcyBmb3IKKyAgICAgKiB3aGljaCB0aGVyZSBpcyBkaXNwbGF5IG5hbWUgZGF0YSwgdXNpbmcgbm9ybWFsIGZhbGxiYWNrIHJ1bGVzLiAgSWYgbm8gbG9jYWxlIG1hdGNoZXMsCisgICAgICogdGhlIGRlZmF1bHQgZGlzcGxheSBuYW1lcyBhcmUgcmV0dXJuZWQuICAoVGhlc2UgYXJlIHRoZSBpbnRlcm5hbCBydWxlIHNldCBuYW1lcyBtaW51cworICAgICAqIHRoZSBsZWFkaW5nICclJy4pCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiB0aGUgbG9jYWxlcyB0aGF0IGhhdmUgZGlzcGxheSBuYW1lIGluZm9ybWF0aW9uCisgICAgICogQHNlZSAjZ2V0UnVsZVNldE5hbWVzCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0UnVsZVNldERpc3BsYXlOYW1lcyhVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IGdldE5hbWVMaXN0Rm9yTG9jYWxlKGxvY2FsZSk7CisgICAgICAgIGlmIChuYW1lcyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gKFN0cmluZ1tdKW5hbWVzLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgbmFtZXMgPSBnZXRSdWxlU2V0TmFtZXMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbmFtZXNbaV0gPSBuYW1lc1tpXS5zdWJzdHJpbmcoMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5hbWVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcnVsZSBzZXQgZGlzcGxheSBuYW1lcyBmb3IgdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiB0aGUgZGlzcGxheSBuYW1lcworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHNlZSAjZ2V0UnVsZVNldERpc3BsYXlOYW1lcyhVTG9jYWxlKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRSdWxlU2V0RGlzcGxheU5hbWVzKCkgeworICAgICAgICByZXR1cm4gZ2V0UnVsZVNldERpc3BsYXlOYW1lcyhVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBydWxlIHNldCBkaXNwbGF5IG5hbWUgZm9yIHRoZSBwcm92aWRlZCBydWxlIHNldCBhbmQgbG9jYWxlLgorICAgICAqIFRoZSBsb2NhbGUgaXMgbWF0Y2hlZCBhZ2FpbnN0IHRoZSBsb2NhbGVzIGZvciB3aGljaCB0aGVyZSBpcyBkaXNwbGF5IG5hbWUgZGF0YSwgdXNpbmcKKyAgICAgKiBub3JtYWwgZmFsbGJhY2sgcnVsZXMuICBJZiBubyBsb2NhbGUgbWF0Y2hlcywgdGhlIGRlZmF1bHQgZGlzcGxheSBuYW1lIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIHJ1bGUgc2V0CisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAc2VlICNnZXRSdWxlU2V0RGlzcGxheU5hbWVzCisgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgcnVsZVNldE5hbWUgaXMgbm90IGEgdmFsaWQgcnVsZSBzZXQgbmFtZSBmb3IgdGhpcyBmb3JtYXQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFJ1bGVTZXREaXNwbGF5TmFtZShTdHJpbmcgcnVsZVNldE5hbWUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIFN0cmluZ1tdIHJzbmFtZXMgPSBwdWJsaWNSdWxlU2V0TmFtZXM7CisgICAgICAgIGZvciAoaW50IGl4ID0gMDsgaXggPCByc25hbWVzLmxlbmd0aDsgKytpeCkgeworICAgICAgICAgICAgaWYgKHJzbmFtZXNbaXhdLmVxdWFscyhydWxlU2V0TmFtZSkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IGdldE5hbWVMaXN0Rm9yTG9jYWxlKGxvY2FsZSk7CisgICAgICAgICAgICAgICAgaWYgKG5hbWVzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWVzW2l4XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJzbmFtZXNbaXhdLnN1YnN0cmluZygxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJ1bnJlY29nbml6ZWQgcnVsZSBzZXQgbmFtZTogIiArIHJ1bGVTZXROYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHJ1bGUgc2V0IGRpc3BsYXkgbmFtZSBmb3IgdGhlIHByb3ZpZGVkIHJ1bGUgc2V0IGluIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEByZXR1cm4gdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIHJ1bGUgc2V0CisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAc2VlICNnZXRSdWxlU2V0RGlzcGxheU5hbWUoU3RyaW5nLFVMb2NhbGUpCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRSdWxlU2V0RGlzcGxheU5hbWUoU3RyaW5nIHJ1bGVTZXROYW1lKSB7CisgICAgICAgIHJldHVybiBnZXRSdWxlU2V0RGlzcGxheU5hbWUocnVsZVNldE5hbWUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIHRoZSBzcGVjaWZpZWQgbnVtYmVyIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIHJ1bGUgc2V0LgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciB0byBmb3JtYXQuCisgICAgICogQHBhcmFtIHJ1bGVTZXQgVGhlIG5hbWUgb2YgdGhlIHJ1bGUgc2V0IHRvIGZvcm1hdCB0aGUgbnVtYmVyIHdpdGguCisgICAgICogVGhpcyBtdXN0IGJlIHRoZSBuYW1lIG9mIGEgdmFsaWQgcHVibGljIHJ1bGUgc2V0IGZvciB0aGlzIGZvcm1hdHRlci4KKyAgICAgKiBAcmV0dXJuIEEgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbnVtYmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZm9ybWF0KGRvdWJsZSBudW1iZXIsIFN0cmluZyBydWxlU2V0KSB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHJ1bGVTZXQuc3RhcnRzV2l0aCgiJSUiKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQ2FuJ3QgdXNlIGludGVybmFsIHJ1bGUgc2V0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZvcm1hdChudW1iZXIsIGZpbmRSdWxlU2V0KHJ1bGVTZXQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXRzIHRoZSBzcGVjaWZpZWQgbnVtYmVyIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIHJ1bGUgc2V0LgorICAgICAqIChJZiB0aGUgc3BlY2lmaWVkIHJ1bGUgc2V0IHNwZWNpZmllcyBhIG1hc3RlciBbInguMCJdIHJ1bGUsIHRoaXMgZnVuY3Rpb24KKyAgICAgKiBpZ25vcmVzIGl0LiAgQ29udmVydCB0aGUgbnVtYmVyIHRvIGEgZG91YmxlIGZpcnN0IGlmIHlvdSBuZWQgaXQuKSAgVGhpcworICAgICAqIGZ1bmN0aW9uIHByZXNlcnZlcyBhbGwgdGhlIHByZWNpc2lvbiBpbiB0aGUgbG9uZy0tIGl0IGRvZXNuJ3QgY29udmVydCBpdAorICAgICAqIHRvIGEgZG91YmxlLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciB0byBmb3JtYXQuCisgICAgICogQHBhcmFtIHJ1bGVTZXQgVGhlIG5hbWUgb2YgdGhlIHJ1bGUgc2V0IHRvIGZvcm1hdCB0aGUgbnVtYmVyIHdpdGguCisgICAgICogVGhpcyBtdXN0IGJlIHRoZSBuYW1lIG9mIGEgdmFsaWQgcHVibGljIHJ1bGUgc2V0IGZvciB0aGlzIGZvcm1hdHRlci4KKyAgICAgKiBAcmV0dXJuIEEgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbnVtYmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZm9ybWF0KGxvbmcgbnVtYmVyLCBTdHJpbmcgcnVsZVNldCkgdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB7CisgICAgICAgIGlmIChydWxlU2V0LnN0YXJ0c1dpdGgoIiUlIikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbid0IHVzZSBpbnRlcm5hbCBydWxlIHNldCIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmb3JtYXQobnVtYmVyLCBmaW5kUnVsZVNldChydWxlU2V0KSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyB0aGUgc3BlY2lmaWVkIG51bWJlciB1c2luZyB0aGUgZm9ybWF0dGVyJ3MgZGVmYXVsdCBydWxlIHNldC4KKyAgICAgKiAoVGhlIGRlZmF1bHQgcnVsZSBzZXQgaXMgdGhlIGxhc3QgcHVibGljIHJ1bGUgc2V0IGRlZmluZWQgaW4gdGhlIGRlc2NyaXB0aW9uLikKKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgdG8gZm9ybWF0LgorICAgICAqIEBwYXJhbSB0b0FwcGVuZFRvIEEgU3RyaW5nQnVmZmVyIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYXBwZW5kZWQgdG8uCisgICAgICogQHBhcmFtIGlnbm9yZSBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3QgZXhhbWluZSBvciB1cGRhdGUgdGhlIGZpZWxkIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gdG9BcHBlbmRUbworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KGRvdWJsZSBudW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRvQXBwZW5kVG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBpZ25vcmUpIHsKKyAgICAgICAgLy8gdGhpcyBpcyBvbmUgb2YgdGhlIGluaGVyaXRlZCBmb3JtYXQoKSBtZXRob2RzLiAgU2luY2UgaXQgZG9lc24ndAorICAgICAgICAvLyBoYXZlIGEgd2F5IHRvIHNlbGVjdCB0aGUgcnVsZSBzZXQgdG8gdXNlLCBpdCBqdXN0IHVzZXMgdGhlCisgICAgICAgIC8vIGRlZmF1bHQgb25lCisgICAgICAgIHRvQXBwZW5kVG8uYXBwZW5kKGZvcm1hdChudW1iZXIsIGRlZmF1bHRSdWxlU2V0KSk7CisgICAgICAgIHJldHVybiB0b0FwcGVuZFRvOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdHMgdGhlIHNwZWNpZmllZCBudW1iZXIgdXNpbmcgdGhlIGZvcm1hdHRlcidzIGRlZmF1bHQgcnVsZSBzZXQuCisgICAgICogKFRoZSBkZWZhdWx0IHJ1bGUgc2V0IGlzIHRoZSBsYXN0IHB1YmxpYyBydWxlIHNldCBkZWZpbmVkIGluIHRoZSBkZXNjcmlwdGlvbi4pCisgICAgICogKElmIHRoZSBzcGVjaWZpZWQgcnVsZSBzZXQgc3BlY2lmaWVzIGEgbWFzdGVyIFsieC4wIl0gcnVsZSwgdGhpcyBmdW5jdGlvbgorICAgICAqIGlnbm9yZXMgaXQuICBDb252ZXJ0IHRoZSBudW1iZXIgdG8gYSBkb3VibGUgZmlyc3QgaWYgeW91IG5lZCBpdC4pICBUaGlzCisgICAgICogZnVuY3Rpb24gcHJlc2VydmVzIGFsbCB0aGUgcHJlY2lzaW9uIGluIHRoZSBsb25nLS0gaXQgZG9lc24ndCBjb252ZXJ0IGl0CisgICAgICogdG8gYSBkb3VibGUuCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIHRvIGZvcm1hdC4KKyAgICAgKiBAcGFyYW0gdG9BcHBlbmRUbyBBIFN0cmluZ0J1ZmZlciB0aGF0IHRoZSByZXN1bHQgc2hvdWxkIGJlIGFwcGVuZGVkIHRvLgorICAgICAqIEBwYXJhbSBpZ25vcmUgVGhpcyBmdW5jdGlvbiBkb2Vzbid0IGV4YW1pbmUgb3IgdXBkYXRlIHRoZSBmaWVsZCBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIHRvQXBwZW5kVG8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChsb25nIG51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIGlnbm9yZSkgeworICAgICAgICAvLyB0aGlzIGlzIG9uZSBvZiB0aGUgaW5oZXJpdGVkIGZvcm1hdCgpIG1ldGhvZHMuICBTaW5jZSBpdCBkb2Vzbid0CisgICAgICAgIC8vIGhhdmUgYSB3YXkgdG8gc2VsZWN0IHRoZSBydWxlIHNldCB0byB1c2UsIGl0IGp1c3QgdXNlcyB0aGUKKyAgICAgICAgLy8gZGVmYXVsdCBvbmUKKyAgICAgICAgdG9BcHBlbmRUby5hcHBlbmQoZm9ybWF0KG51bWJlciwgZGVmYXVsdFJ1bGVTZXQpKTsKKyAgICAgICAgcmV0dXJuIHRvQXBwZW5kVG87CisgICAgfQorCisgICAgLyoqCisgICAgICogPHN0cm9uZz48Zm9udCBmYWNlPWhlbHZldGljYSBjb2xvcj1yZWQ+TkVXPC9mb250Pjwvc3Ryb25nPgorICAgICAqIEltcGxlbWVudCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDoKKyAgICAgKiBGb3JtYXQgYSBCaWdJbnRlZ2VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgZm9ybWF0KEJpZ0ludGVnZXIgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBmb3JtYXQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChudW1iZXIpLCB0b0FwcGVuZFRvLCBwb3MpOworICAgIH0KKworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogSW1wbGVtZW50IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OgorICAgICAqIEZvcm1hdCBhIEJpZ0RlY2ltYWwuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoamF2YS5tYXRoLkJpZ0RlY2ltYWwgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIHJldHVybiBmb3JtYXQobmV3IGNvbS5pYm0uaWN1Lm1hdGguQmlnRGVjaW1hbChudW1iZXIpLCB0b0FwcGVuZFRvLCBwb3MpOworICAgIH0KKy8vI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiA8c3Ryb25nPjxmb250IGZhY2U9aGVsdmV0aWNhIGNvbG9yPXJlZD5ORVc8L2ZvbnQ+PC9zdHJvbmc+CisgICAgICogSW1wbGVtZW50IGNvbS5pYm0uaWN1LnRleHQuTnVtYmVyRm9ybWF0OgorICAgICAqIEZvcm1hdCBhIEJpZ0RlY2ltYWwuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBmb3JtYXQoY29tLmlibS5pY3UubWF0aC5CaWdEZWNpbWFsIG51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgdG9BcHBlbmRUbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWVsZFBvc2l0aW9uIHBvcykgeworICAgICAgICAvLyBURU1QT1JBUlk6CisgICAgICAgIHJldHVybiBmb3JtYXQobnVtYmVyLmRvdWJsZVZhbHVlKCksIHRvQXBwZW5kVG8sIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2VzIHRoZSBzcGVjZmllZCBzdHJpbmcsIGJlZ2lubmluZyBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLCBhY2NvcmRpbmcKKyAgICAgKiB0byB0aGlzIGZvcm1hdHRlcidzIHJ1bGVzLiAgVGhpcyB3aWxsIG1hdGNoIHRoZSBzdHJpbmcgYWdhaW5zdCBhbGwgb2YgdGhlCisgICAgICogZm9ybWF0dGVyJ3MgcHVibGljIHJ1bGUgc2V0cyBhbmQgcmV0dXJuIHRoZSB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBsb25nZXN0CisgICAgICogcGFyc2VhYmxlIHN1YnN0cmluZy4gIFRoaXMgZnVuY3Rpb24ncyBiZWhhdmlvciBpcyBhZmZlY3RlZCBieSB0aGUgbGVuaWVudAorICAgICAqIHBhcnNlIG1vZGUuCisgICAgICogQHBhcmFtIHRleHQgVGhlIHN0cmluZyB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwYXJzZVBvc2l0aW9uIE9uIGVudHJ5LCBjb250YWlucyB0aGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGNoYXJhY3RlcgorICAgICAqIGluICJ0ZXh0IiB0byBleGFtaW5lLiAgT24gZXhpdCwgaGFzIGJlZW4gdXBkYXRlZCB0byBjb250YWluIHRoZSBwb3NpdGlvbgorICAgICAqIG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gInRleHQiIHRoYXQgd2Fzbid0IGNvbnN1bWVkIGJ5IHRoZSBwYXJzZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBudW1iZXIgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcGFyc2VkIHRleHQuICBUaGlzIHdpbGwgYmUgYW4KKyAgICAgKiBpbnN0YW5jZSBvZiBlaXRoZXIgTG9uZyBvciBEb3VibGUsIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSByZXN1bHQgaGFzIGEKKyAgICAgKiBmcmFjdGlvbmFsIHBhcnQuCisgICAgICogQHNlZSAjc2V0TGVuaWVudFBhcnNlTW9kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgcGFyc2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3NpdGlvbikgeworCisgICAgICAgIC8vIHBhcnNlUG9zaXRpb24gdGVsbHMgdXMgd2hlcmUgdG8gc3RhcnQgcGFyc2luZy4gIFdlIGNvcHkgdGhlCisgICAgICAgIC8vIHRleHQgaW4gdGhlIHN0cmluZyBmcm9tIGhlcmUgdG8gdGhlIGVuZCBpbnJvIGEgbmV3IHN0cmluZywKKyAgICAgICAgLy8gYW5kIGNyZWF0ZSBhIG5ldyBQYXJzZVBvc2l0aW9uIGFuZCByZXN1bHQgdmFyaWFibGUgdG8gdXNlCisgICAgICAgIC8vIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHBhcnNlIG9wZXJhdGlvbgorICAgICAgICBTdHJpbmcgd29ya2luZ1RleHQgPSB0ZXh0LnN1YnN0cmluZyhwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkpOworICAgICAgICBQYXJzZVBvc2l0aW9uIHdvcmtpbmdQb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgTnVtYmVyIHRlbXBSZXN1bHQgPSBudWxsOworCisgICAgICAgIC8vIGtlZXAgdHJhY2sgb2YgdGhlIGxhcmdlc3QgbnVtYmVyIG9mIGNoYXJhY3RlcnMgY29uc3VtZWQgaW4KKyAgICAgICAgLy8gdGhlIHZhcmlvdXMgdHJpYWxzLCBhbmQgdGhlIHJlc3VsdCB0aGF0IGNvcnJlc3BvbmRzIHRvIGl0CisgICAgICAgIE51bWJlciByZXN1bHQgPSBuZXcgTG9uZygwKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBoaWdoV2F0ZXJNYXJrID0gbmV3IFBhcnNlUG9zaXRpb24od29ya2luZ1Bvcy5nZXRJbmRleCgpKTsKKworICAgICAgICAvLyBpdGVyYXRlIG92ZXIgdGhlIHB1YmxpYyBydWxlIHNldHMgKGJlZ2lubmluZyB3aXRoIHRoZSBkZWZhdWx0IG9uZSkKKyAgICAgICAgLy8gYW5kIHRyeSBwYXJzaW5nIHRoZSB0ZXh0IHdpdGggZWFjaCBvZiB0aGVtLiAgS2VlcCB0cmFjayBvZiB3aGljaAorICAgICAgICAvLyBvbmUgY29uc3VtZXMgdGhlIG1vc3QgY2hhcmFjdGVyczogdGhhdCdzIHRoZSBvbmUgdGhhdCBkZXRlcm1pbmVzCisgICAgICAgIC8vIHRoZSByZXN1bHQgd2UgcmV0dXJuCisgICAgICAgIGZvciAoaW50IGkgPSBydWxlU2V0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICAgICAgLy8gc2tpcCBwcml2YXRlIHJ1bGUgc2V0cworICAgICAgICAgICAgaWYgKHJ1bGVTZXRzW2ldLmdldE5hbWUoKS5zdGFydHNXaXRoKCIlJSIpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIHRyeSBwYXJzaW5nIHRoZSBzdHJpbmcgd2l0aCB0aGUgcnVsZSBzZXQuICBJZiBpdCBnZXRzIHBhc3QgdGhlCisgICAgICAgICAgICAvLyBoaWdoLXdhdGVyIG1hcmssIHVwZGF0ZSB0aGUgaGlnaC13YXRlciBtYXJrIGFuZCB0aGUgcmVzdWx0CisgICAgICAgICAgICB0ZW1wUmVzdWx0ID0gcnVsZVNldHNbaV0ucGFyc2Uod29ya2luZ1RleHQsIHdvcmtpbmdQb3MsIERvdWJsZS5NQVhfVkFMVUUpOworICAgICAgICAgICAgaWYgKHdvcmtpbmdQb3MuZ2V0SW5kZXgoKSA+IGhpZ2hXYXRlck1hcmsuZ2V0SW5kZXgoKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRlbXBSZXN1bHQ7CisgICAgICAgICAgICAgICAgaGlnaFdhdGVyTWFyay5zZXRJbmRleCh3b3JraW5nUG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gY29tbWVudGVkIG91dCBiZWNhdXNlIHRoaXMgQVBJIG9uIFBhcnNlUG9zaXRpb24gZG9lc24ndCBleGlzdCBpbiAxLjEueAorICAgICAgICAgICAgLy8gICAgICAgICAgICBpZiAod29ya2luZ1Bvcy5nZXRFcnJvckluZGV4KCkgPiBoaWdoV2F0ZXJNYXJrLmdldEVycm9ySW5kZXgoKSkgeworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgaGlnaFdhdGVyTWFyay5zZXRFcnJvckluZGV4KHdvcmtpbmdQb3MuZ2V0RXJyb3JJbmRleCgpKTsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiB3ZSBtYW5hZ2UgdG8gdXNlIHVwIGFsbCB0aGUgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLAorICAgICAgICAgICAgLy8gd2UgZG9uJ3QgaGF2ZSB0byB0cnkgYW55IG1vcmUgcnVsZSBzZXRzCisgICAgICAgICAgICBpZiAoaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpID09IHdvcmtpbmdUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSwgcmVzZXQgb3VyIGludGVybmFsIHBhcnNlIHBvc2l0aW9uIHRvIHRoZQorICAgICAgICAgICAgLy8gYmVnaW5uaW5nIGFuZCB0cnkgYWdhaW4gd2l0aCB0aGUgbmV4dCBydWxlIHNldAorICAgICAgICAgICAgd29ya2luZ1Bvcy5zZXRJbmRleCgwKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGFkZCB0aGUgaGlnaCB3YXRlciBtYXJrIHRvIG91ciBvcmlnaW5hbCBwYXJzZSBwb3NpdGlvbiBhbmQKKyAgICAgICAgLy8gcmV0dXJuIHRoZSByZXN1bHQKKyAgICAgICAgcGFyc2VQb3NpdGlvbi5zZXRJbmRleChwYXJzZVBvc2l0aW9uLmdldEluZGV4KCkgKyBoaWdoV2F0ZXJNYXJrLmdldEluZGV4KCkpOworICAgICAgICAvLyBjb21tZW50ZWQgb3V0IGJlY2F1c2UgdGhpcyBBUEkgb24gUGFyc2VQb3NpdGlvbiBkb2Vzbid0IGV4aXN0IGluIDEuMS54CisgICAgICAgIC8vICAgICAgICBpZiAoaGlnaFdhdGVyTWFyay5nZXRJbmRleCgpID09IDApIHsKKyAgICAgICAgLy8gICAgICAgICAgICBwYXJzZVBvc2l0aW9uLnNldEVycm9ySW5kZXgocGFyc2VQb3NpdGlvbi5nZXRJbmRleCgpICsgaGlnaFdhdGVyTWFyay5nZXRFcnJvckluZGV4KCkpOworICAgICAgICAvLyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFR1cm5zIGxlbmllbnQgcGFyc2UgbW9kZSBvbiBhbmQgb2ZmLgorICAgICAqCisgICAgICogV2hlbiBpbiBsZW5pZW50IHBhcnNlIG1vZGUsIHRoZSBmb3JtYXR0ZXIgdXNlcyBhIENvbGxhdG9yIGZvciBwYXJzaW5nIHRoZSB0ZXh0LgorICAgICAqIE9ubHkgcHJpbWFyeSBkaWZmZXJlbmNlcyBhcmUgdHJlYXRlZCBhcyBzaWduaWZpY2FudC4gIFRoaXMgbWVhbnMgdGhhdCBjYXNlCisgICAgICogZGlmZmVyZW5jZXMsIGFjY2VudCBkaWZmZXJlbmNlcywgYWx0ZXJuYXRlIHNwZWxsaW5ncyBvZiB0aGUgc2FtZSBsZXR0ZXIKKyAgICAgKiAoZS5nLiwgYWUgYW5kIGEtdW1sYXV0IGluIEdlcm1hbiksIGlnbm9yYWJsZSBjaGFyYWN0ZXJzLCBldGMuIGFyZSBpZ25vcmVkIGluCisgICAgICogbWF0Y2hpbmcgdGhlIHRleHQuICBJbiBtYW55IGNhc2VzLCBudW1lcmFscyB3aWxsIGJlIGFjY2VwdGVkIGluIHBsYWNlIG9mIHdvcmRzCisgICAgICogb3IgcGhyYXNlcyBhcyB3ZWxsLgorICAgICAqCisgICAgICogRm9yIGV4YW1wbGUsIGFsbCBvZiB0aGUgZm9sbG93aW5nIHdpbGwgY29ycmVjdGx5IHBhcnNlIGFzIDI1NSBpbiBFbmdsaXNoIGluCisgICAgICogbGVuaWVudC1wYXJzZSBtb2RlOgorICAgICAqIDxicj4idHdvIGh1bmRyZWQgZmlmdHktZml2ZSIKKyAgICAgKiA8YnI+InR3byBodW5kcmVkIGZpZnR5IGZpdmUiCisgICAgICogPGJyPiJUV08gSFVORFJFRCBGSUZUWS1GSVZFIgorICAgICAqIDxicj4idHdvaHVuZHJlZGZpZnR5Zml2ZSIKKyAgICAgKiA8YnI+IjIgaHVuZHJlZCBmaWZ0eS01IgorICAgICAqCisgICAgICogVGhlIENvbGxhdG9yIHVzZWQgaXMgZGV0ZXJtaW5lZCBieSB0aGUgbG9jYWxlIHRoYXQgd2FzCisgICAgICogcGFzc2VkIHRvIHRoaXMgb2JqZWN0IG9uIGNvbnN0cnVjdGlvbi4gIFRoZSBkZXNjcmlwdGlvbiBwYXNzZWQgdG8gdGhpcyBvYmplY3QKKyAgICAgKiBvbiBjb25zdHJ1Y3Rpb24gbWF5IHN1cHBseSBhZGRpdGlvbmFsIGNvbGxhdGlvbiBydWxlcyB0aGF0IGFyZSBhcHBlbmRlZCB0byB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIGRlZmF1bHQgY29sbGF0b3IgZm9yIHRoZSBsb2NhbGUsIGVuYWJsaW5nIGFkZGl0aW9uYWwgZXF1aXZhbGVuY2VzCisgICAgICogKHN1Y2ggYXMgYWRkaW5nIG1vcmUgaWdub3JhYmxlIGNoYXJhY3RlcnMgb3IgcGVybWl0dGluZyBzcGVsbGVkLW91dCB2ZXJzaW9uIG9mCisgICAgICogc3ltYm9sczsgc2VlIHRoZSBkZW1vIHByb2dyYW0gZm9yIGV4YW1wbGVzKS4KKyAgICAgKgorICAgICAqIEl0J3MgaW1wb3J0YW50IHRvIGVtcGhhc2l6ZSB0aGF0IGV2ZW4gc3RyaWN0IHBhcnNpbmcgaXMgcmVsYXRpdmVseSBsZW5pZW50OiBpdAorICAgICAqIHdpbGwgYWNjZXB0IHNvbWUgdGV4dCB0aGF0IGl0IHdvbid0IHByb2R1Y2UgYXMgb3V0cHV0LiAgSW4gRW5nbGlzaCwgZm9yIGV4YW1wbGUsCisgICAgICogaXQgd2lsbCBjb3JyZWN0bHkgcGFyc2UgInR3byBodW5kcmVkIHplcm8iIGFuZCAiZmlmdGVlbiBodW5kcmVkIi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlbmFibGVkIElmIHRydWUsIHR1cm5zIGxlbmllbnQtcGFyc2UgbW9kZSBvbjsgaWYgZmFsc2UsIHR1cm5zIGl0IG9mZi4KKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TGVuaWVudFBhcnNlTW9kZShib29sZWFuIGVuYWJsZWQpIHsKKyAgICAgICAgbGVuaWVudFBhcnNlID0gZW5hYmxlZDsKKworICAgICAgICAvLyBpZiB3ZSdyZSBsZWF2aW5nIGxlbmllbnQtcGFyc2UgbW9kZSwgdGhyb3cgYXdheSB0aGUgY29sbGF0b3IKKyAgICAgICAgLy8gd2UndmUgYmVlbiB1c2luZworICAgICAgICBpZiAoIWVuYWJsZWQpIHsKKyAgICAgICAgICAgIGNvbGxhdG9yID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiBsZW5pZW50LXBhcnNlIG1vZGUgaXMgdHVybmVkIG9uLiAgTGVuaWVudCBwYXJzaW5nIGlzIG9mZgorICAgICAqIGJ5IGRlZmF1bHQuCisgICAgICogQHJldHVybiB0cnVlIGlmIGxlbmllbnQtcGFyc2UgbW9kZSBpcyB0dXJuZWQgb24uCisgICAgICogQHNlZSAjc2V0TGVuaWVudFBhcnNlTW9kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGxlbmllbnRQYXJzZUVuYWJsZWQoKSB7CisgICAgICAgIHJldHVybiBsZW5pZW50UGFyc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgcnVsZSBzZXQgdG8gdXNlLiAgSWYgcnVsZVNldE5hbWUgaXMgbnVsbCwgcmVzZXQKKyAgICAgKiB0byB0aGUgaW5pdGlhbCBkZWZhdWx0IHJ1bGUgc2V0LgorICAgICAqIEBwYXJhbSBydWxlU2V0TmFtZSB0aGUgbmFtZSBvZiB0aGUgcnVsZSBzZXQsIG9yIG51bGwgdG8gcmVzZXQgdGhlIGluaXRpYWwgZGVmYXVsdC4KKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBydWxlU2V0TmFtZSBpcyBub3QgdGhlIG5hbWUgb2YgYSBwdWJsaWMgcnVsZXNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREZWZhdWx0UnVsZVNldChTdHJpbmcgcnVsZVNldE5hbWUpIHsKKyAgICAgICAgaWYgKHJ1bGVTZXROYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChwdWJsaWNSdWxlU2V0TmFtZXMubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIGRlZmF1bHRSdWxlU2V0ID0gZmluZFJ1bGVTZXQocHVibGljUnVsZVNldE5hbWVzWzBdKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZWZhdWx0UnVsZVNldCA9IG51bGw7CisgICAgICAgICAgICBpbnQgbiA9IHJ1bGVTZXRzLmxlbmd0aDsKKyAgICAgICAgd2hpbGUgKC0tbiA+PSAwKSB7CisgICAgICAgICAgaWYgKHJ1bGVTZXRzW25dLmlzUHVibGljKCkpIHsKKyAgICAgICAgICAgIGRlZmF1bHRSdWxlU2V0ID0gcnVsZVNldHNbbl07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChydWxlU2V0TmFtZS5zdGFydHNXaXRoKCIlJSIpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjYW5ub3QgdXNlIHByaXZhdGUgcnVsZSBzZXQ6ICIgKyBydWxlU2V0TmFtZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZWZhdWx0UnVsZVNldCA9IGZpbmRSdWxlU2V0KHJ1bGVTZXROYW1lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBkZWZhdWx0IHJ1bGUgc2V0LgorICAgICAqIEByZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgZGVmYXVsdCBydWxlIHNldCwgaWYgaXQgaXMgcHVibGljLCBlbHNlIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERlZmF1bHRSdWxlU2V0TmFtZSgpIHsKKyAgICAgICAgaWYgKGRlZmF1bHRSdWxlU2V0ICE9IG51bGwgJiYgZGVmYXVsdFJ1bGVTZXQuaXNQdWJsaWMoKSkgeworICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRSdWxlU2V0LmdldE5hbWUoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gIiI7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhY2thZ2UtaW50ZXJuYWwgQVBJCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgZm9ybWF0dGVyJ3MgZGVmYXVsdCBydWxlIHNldC4gIFRoZSBkZWZhdWx0CisgICAgICogcnVsZSBzZXQgaXMgdGhlIGxhc3QgcHVibGljIHJ1bGUgc2V0IGluIHRoZSBkZXNjcmlwdGlvbiwgb3IgdGhlIG9uZQorICAgICAqIG1vc3QgcmVjZW50bHkgc2V0IGJ5IHNldERlZmF1bHRSdWxlU2V0LgorICAgICAqIEByZXR1cm4gVGhlIGZvcm1hdHRlcidzIGRlZmF1bHQgcnVsZSBzZXQuCisgICAgICovCisgICAgTkZSdWxlU2V0IGdldERlZmF1bHRSdWxlU2V0KCkgeworICAgICAgICByZXR1cm4gZGVmYXVsdFJ1bGVTZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29sbGF0b3IgdG8gdXNlIGZvciBsZW5pZW50IHBhcnNpbmcuICBUaGUgY29sbGF0b3IgaXMgbGF6aWx5IGNyZWF0ZWQ6CisgICAgICogdGhpcyBmdW5jdGlvbiBjcmVhdGVzIGl0IHRoZSBmaXJzdCB0aW1lIGl0J3MgY2FsbGVkLgorICAgICAqIEByZXR1cm4gVGhlIGNvbGxhdG9yIHRvIHVzZSBmb3IgbGVuaWVudCBwYXJzaW5nLCBvciBudWxsIGlmIGxlbmllbnQgcGFyc2luZworICAgICAqIGlzIHR1cm5lZCBvZmYuCisgICAgICovCisgICAgQ29sbGF0b3IgZ2V0Q29sbGF0b3IoKSB7CisgICAgICAgIC8vIGxhenktZXZhdWxhdGUgdGhlIGNvbGxhdG9yCisgICAgICAgIGlmIChjb2xsYXRvciA9PSBudWxsICYmIGxlbmllbnRQYXJzZSkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBkZWZhdWx0IGNvbGxhdG9yIGJhc2VkIG9uIHRoZSBmb3JtYXR0ZXIncyBsb2NhbGUsCisgICAgICAgICAgICAgICAgLy8gdGhlbiBwdWxsIG91dCB0aGF0IGNvbGxhdG9yJ3MgcnVsZXMsIGFwcGVuZCBhbnkgYWRkaXRpb25hbAorICAgICAgICAgICAgICAgIC8vIHJ1bGVzIHNwZWNpZmllZCBpbiB0aGUgZGVzY3JpcHRpb24sIGFuZCBjcmVhdGUgYSBfbmV3XworICAgICAgICAgICAgICAgIC8vIGNvbGxhdG9yIGJhc2VkIG9uIHRoZSBjb21iaW5haXRvbiBvZiB0aG9zZSBydWxlcworICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHRlbXAgPSAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UobG9jYWxlKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcnVsZXMgPSB0ZW1wLmdldFJ1bGVzKCkgKyBsZW5pZW50UGFyc2VSdWxlczsKKworICAgICAgICAgICAgICAgIGNvbGxhdG9yID0gbmV3IFJ1bGVCYXNlZENvbGxhdG9yKHJ1bGVzKTsKKyAgICAgICAgICAgICAgICBjb2xsYXRvci5zZXREZWNvbXBvc2l0aW9uKENvbGxhdG9yLkNBTk9OSUNBTF9ERUNPTVBPU0lUSU9OKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vIElmIHdlIGdldCBoZXJlLCBpdCBtZWFucyB3ZSBoYXZlIGEgbWFsZm9ybWVkIHNldCBvZgorICAgICAgICAgICAgICAgIC8vIGNvbGxhdGlvbiBydWxlcywgd2hpY2ggaG9wZWZ1bGx5IHdvbid0IGhhcHBlbgorICAgICAgICAgICAgICAgIGlmKERFQlVHKXsKKyAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29sbGF0b3IgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgbGVuaWVudC1wYXJzZSBtb2RlIGlzIG9mZiwgdGhpcyB3aWxsIGJlIG51bGwKKyAgICAgICAgLy8gKHNlZSBzZXRMZW5pZW50UGFyc2VNb2RlKCkpCisgICAgICAgIHJldHVybiBjb2xsYXRvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgdGhhdCBzaG91bGQgYmUgdXNlZCBieSBhbGwgRGVjaW1hbEZvcm1hdAorICAgICAqIGluc3RhbmNlcyBvd25lZCBieSB0aGlzIGZvcm1hdHRlci4gIFRoaXMgb2JqZWN0IGlzIGxhemlseSBjcmVhdGVkOiB0aGlzIGZ1bmN0aW9uCisgICAgICogY3JlYXRlcyBpdCB0aGUgZmlyc3QgdGltZSBpdCdzIGNhbGxlZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBEZWNpbWFsRm9ybWF0U3ltYm9scyBvYmplY3QgdGhhdCBzaG91bGQgYmUgdXNlZCBieSBhbGwgRGVjaW1hbEZvcm1hdAorICAgICAqIGluc3RhbmNlcyBvd25lZCBieSB0aGlzIGZvcm1hdHRlci4KKyAgICAgKi8KKyAgICBEZWNpbWFsRm9ybWF0U3ltYm9scyBnZXREZWNpbWFsRm9ybWF0U3ltYm9scygpIHsKKyAgICAgICAgLy8gbGF6eS1ldmFsdWF0ZSB0aGUgRGVjaW1hbEZvcm1hdFN5bWJvbHMgb2JqZWN0LiAgVGhpcyBvYmplY3QKKyAgICAgICAgLy8gaXMgc2hhcmVkIGJ5IGFsbCBEZWNpbWFsRm9ybWF0IGluc3RhbmNlcyBiZWxvbmdpbmcgdG8gdGhpcworICAgICAgICAvLyBmb3JtYXR0ZXIKKyAgICAgICAgaWYgKGRlY2ltYWxGb3JtYXRTeW1ib2xzID09IG51bGwpIHsKKyAgICAgICAgICAgIGRlY2ltYWxGb3JtYXRTeW1ib2xzID0gbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGxvY2FsZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRlY2ltYWxGb3JtYXRTeW1ib2xzOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjb25zdHJ1Y3Rpb24gaW1wbGVtZW50YXRpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV4dHJhY3RzIHRoZSBzcGVjaWFsIGluZm9ybWF0aW9uIGZyb20gdGhlIHJ1bGUgc2V0cyBiZWZvcmUgdGhlCisgICAgICogbWFpbiBwYXJzaW5nIHN0YXJ0cy4gIEV4dHJhIHdoaXRlc3BhY2UgbXVzdCBoYXZlIGFscmVhZHkgYmVlbiByZW1vdmVkCisgICAgICogZnJvbSB0aGUgZGVzY3JpcHRpb24uICBJZiBmb3VuZCwgdGhlIHNwZWNpYWwgaW5mb3JtYXRpb24gaXMgcmVtb3ZlZCBmcm9tIHRoZQorICAgICAqIGRlc2NyaXB0aW9uIGFuZCByZXR1cm5lZCwgb3RoZXJ3aXNlIHRoZSBkZXNjcmlwdGlvbiBpcyB1bmNoYW5nZWQgYW5kIG51bGwKKyAgICAgKiBpcyByZXR1cm5lZC4gIE5vdGU6IHRoZSB0cmFpbGluZyBzZW1pY29sb24gYXQgdGhlIGVuZCBvZiB0aGUgc3BlY2lhbAorICAgICAqIHJ1bGVzIGlzIHN0cmlwcGVkLgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiB0aGUgcmJuZiBkZXNjcmlwdGlvbiB3aXRoIGV4dHJhIHdoaXRlc3BhY2UgcmVtb3ZlZAorICAgICAqIEBwYXJhbSBzcGVjaWFsTmFtZSB0aGUgbmFtZSBvZiB0aGUgc3BlY2lhbCBydWxlIHRleHQgdG8gZXh0cmFjdAorICAgICAqIEByZXR1cm4gdGhlIHNwZWNpYWwgcnVsZSB0ZXh0LCBvciBudWxsIGlmIHRoZSBydWxlIHdhcyBub3QgZm91bmQKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBleHRyYWN0U3BlY2lhbChTdHJpbmdCdWZmZXIgZGVzY3JpcHRpb24sIFN0cmluZyBzcGVjaWFsTmFtZSkgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgaW50IGxwID0gVXRpbGl0eS5pbmRleE9mKGRlc2NyaXB0aW9uLCBzcGVjaWFsTmFtZSk7CisgICAgICAgIGlmIChscCAhPSAtMSkgeworICAgICAgICAgICAgLy8gd2UndmUgZ290IHRvIG1ha2Ugc3VyZSB3ZSdyZSBub3QgaW4gdGhlIG1pZGRsZSBvZiBhIHJ1bGUKKyAgICAgICAgICAgIC8vICh3aGVyZSBzcGVjaWFsTmFtZSB3b3VsZCBhY3R1YWxseSBnZXQgdHJlYXRlZCBhcworICAgICAgICAgICAgLy8gcnVsZSB0ZXh0KQorICAgICAgICAgICAgaWYgKGxwID09IDAgfHwgZGVzY3JpcHRpb24uY2hhckF0KGxwIC0gMSkgPT0gJzsnKSB7CisgICAgICAgICAgICAgICAgLy8gbG9jYXRlIHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgYWN0dWFsIHNwZWNpYWwKKyAgICAgICAgICAgICAgICAvLyBydWxlcyAodGhlcmUgbWF5IGJlIHdoaXRlc3BhY2UgYmV0d2VlbiB0aGUgbmFtZSBhbmQKKyAgICAgICAgICAgICAgICAvLyB0aGUgZmlyc3QgdG9rZW4gaW4gdGhlIGRlc2NyaXB0aW9uKQorICAgICAgICAgICAgICAgIGludCBscEVuZCA9IFV0aWxpdHkuaW5kZXhPZihkZXNjcmlwdGlvbiwgIjslIiwgbHApOworCisgICAgICAgICAgICAgICAgaWYgKGxwRW5kID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGxwRW5kID0gZGVzY3JpcHRpb24ubGVuZ3RoKCkgLSAxOyAvLyBsYXRlciB3ZSBhZGQgMSBiYWNrIHRvIGdldCB0aGUgJyUnCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGludCBscFN0YXJ0ID0gbHAgKyBzcGVjaWFsTmFtZS5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAobHBTdGFydCA8IGxwRW5kICYmCisgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGRlc2NyaXB0aW9uLmNoYXJBdChscFN0YXJ0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgKytscFN0YXJ0OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIGNvcHkgb3V0IHRoZSBzcGVjaWFsIHJ1bGVzCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZGVzY3JpcHRpb24uc3Vic3RyaW5nKGxwU3RhcnQsIGxwRW5kKTsKKworICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgc3BlY2lhbCBydWxlIGZyb20gdGhlIGRlc2NyaXB0aW9uCisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24uZGVsZXRlKGxwLCBscEVuZCsxKTsgLy8gZGVsZXRlIHRoZSBzZW1pY29sb24gYnV0IG5vdCB0aGUgJyUnCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHBhcnNlcyB0aGUgZGVzY3JpcHRpb24gYW5kIHVzZXMgaXQgdG8gYnVpbGQgYWxsIG9mCisgICAgICogaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgdGhlIGZvcm1hdHRlciB1c2VzIHRvIGRvIGZvcm1hdHRpbmcKKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBmb3JtYXR0ZXIncyBkZXNpcmVkIGJlaGF2aW9yLgorICAgICAqIFRoaXMgaXMgZWl0aGVyIHBhc3NlZCBpbiBieSB0aGUgY2FsbGVyIG9yIGxvYWRlZCBvdXQgb2YgYSByZXNvdXJjZQorICAgICAqIGJ5IG9uZSBvZiB0aGUgY29uc3RydWN0b3JzLCBhbmQgaXMgaW4gdGhlIGRlc2NyaXB0aW9uIGZvcm1hdCBzcGVjaWZpZWQKKyAgICAgKiBpbiB0aGUgY2xhc3MgZG9jcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaW5pdChTdHJpbmcgZGVzY3JpcHRpb24sIFN0cmluZ1tdW10gbG9jYWxpemF0aW9ucykgeworICAgICAgICBpbml0TG9jYWxpemF0aW9ucyhsb2NhbGl6YXRpb25zKTsKKworICAgICAgICAvLyBzdGFydCBieSBzdHJpcHBpbmcgdGhlIHRyYWlsaW5nIHdoaXRlc3BhY2UgZnJvbSBhbGwgdGhlIHJ1bGVzCisgICAgICAgIC8vICh0aGlzIGlzIGFsbCB0aGUgd2hpdGVzcGFjZSBmb2xsd2luZyBlYWNoIHNlbWljb2xvbiBpbiB0aGUKKyAgICAgICAgLy8gZGVzY3JpcHRpb24pLiAgVGhpcyBhbGxvd3MgdXMgdG8gbG9vayBmb3IgcnVsZS1zZXQgYm91bmRhcmllcworICAgICAgICAvLyBieSBzZWFyY2hpbmcgZm9yICI7JSIgd2l0aG91dCBoYXZpbmcgdG8gd29ycnkgYWJvdXQgd2hpdGVzcGFjZQorICAgICAgICAvLyBiZXR3ZWVuIHRoZSA7IGFuZCB0aGUgJQorICAgICAgICBTdHJpbmdCdWZmZXIgZGVzY0J1ZiA9IHN0cmlwV2hpdGVzcGFjZShkZXNjcmlwdGlvbik7CisKKyAgICAgICAgLy8gY2hlY2sgdG8gc2VlIGlmIHRoZXJlJ3MgYSBzZXQgb2YgbGVuaWVudC1wYXJzZSBydWxlcy4gIElmIHRoZXJlCisgICAgICAgIC8vIGlzLCBwdWxsIHRoZW0gb3V0IGludG8gb3VyIHRlbXBvcmFyeSBob2xkaW5nIHBsYWNlIGZvciB0aGVtLAorICAgICAgICAvLyBhbmQgZGVsZXRlIHRoZW0gZnJvbSB0aGUgZGVzY3JpcHRpb24gYmVmb3JlIHRoZSByZWFsIGRlc2NpcHRpb24tCisgICAgICAgIC8vIHBhcnNpbmcgY29kZSBzZWVzIHRoZW0KKworICAgICAgICBsZW5pZW50UGFyc2VSdWxlcyA9IGV4dHJhY3RTcGVjaWFsKGRlc2NCdWYsICIlJWxlbmllbnQtcGFyc2U6Iik7CisgICAgICAgIHBvc3RQcm9jZXNzUnVsZXMgPSBleHRyYWN0U3BlY2lhbChkZXNjQnVmLCAiJSVwb3N0LXByb2Nlc3M6Iik7CisKKyAgICAgICAgLy8gcHJlLWZsaWdodCBwYXJzaW5nIHRoZSBkZXNjcmlwdGlvbiBhbmQgY291bnQgdGhlIG51bWJlciBvZgorICAgICAgICAvLyBydWxlIHNldHMgKCI7JSIgbWFya3MgdGhlIGVuZCBvZiBvbmUgcnVsZSBzZXQgYW5kIHRoZSBiZWdpbm5pbmcKKyAgICAgICAgLy8gb2YgdGhlIG5leHQpCisgICAgICAgIGludCBudW1SdWxlU2V0cyA9IDA7CisgICAgICAgIGZvciAoaW50IHAgPSBVdGlsaXR5LmluZGV4T2YoZGVzY0J1ZiwgIjslIik7IHAgIT0gLTE7IHAgPSBVdGlsaXR5LmluZGV4T2YoZGVzY0J1ZiwgIjslIiwgcCkpIHsKKyAgICAgICAgICAgICsrbnVtUnVsZVNldHM7CisgICAgICAgICAgICArK3A7CisgICAgICAgIH0KKyAgICAgICAgKytudW1SdWxlU2V0czsKKworICAgICAgICAvLyBvdXIgcnVsZSBsaXN0IGlzIGFuIGFycmF5IG9mIHRoZSBhcHBycHJpYXRlIHNpemUKKyAgICAgICAgcnVsZVNldHMgPSBuZXcgTkZSdWxlU2V0W251bVJ1bGVTZXRzXTsKKworICAgICAgICAvLyBkaXZpZGUgdXAgdGhlIGRlc2NyaXB0aW9ucyBpbnRvIGluZGl2aWR1YWwgcnVsZS1zZXQgZGVzY3JpcHRpb25zCisgICAgICAgIC8vIGFuZCBzdG9yZSB0aGVtIGluIGEgdGVtcG9yYXJ5IGFycmF5LiAgQXQgZWFjaCBzdGVwLCB3ZSBhbHNvCisgICAgICAgIC8vIG5ldyB1cCBhIHJ1bGUgc2V0LCBidXQgYWxsIHRoaXMgZG9lcyBpcyBpbml0aWFsaXplIGl0cyBuYW1lCisgICAgICAgIC8vIGFuZCByZW1vdmUgaXQgZnJvbSBpdHMgZGVzY3JpcHRpb24uICBXZSBjYW4ndCBhY3R1YWxseSBwYXJzZQorICAgICAgICAvLyB0aGUgcmVzdCBvZiB0aGUgZGVzY3JpcHRpb25zIGFuZCBmaW5pc2ggaW5pdGlhbGl6aW5nIGV2ZXJ5dGhpbmcKKyAgICAgICAgLy8gYmVjYXVzZSB3ZSBoYXZlIHRvIGtub3cgdGhlIG5hbWVzIGFuZCBsb2NhdGlvbnMgb2YgYWxsIHRoZSBydWxlCisgICAgICAgIC8vIHNldHMgYmVmb3JlIHdlIGNhbiBhY3R1YWxseSBzZXQgZXZlcnl0aGluZyB1cAorICAgICAgICBTdHJpbmdbXSBydWxlU2V0RGVzY3JpcHRpb25zID0gbmV3IFN0cmluZ1tudW1SdWxlU2V0c107CisKKyAgICAgICAgaW50IGN1clJ1bGVTZXQgPSAwOworICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICBmb3IgKGludCBwID0gVXRpbGl0eS5pbmRleE9mKGRlc2NCdWYsICI7JSIpOyBwICE9IC0xOyBwID0gVXRpbGl0eS5pbmRleE9mKGRlc2NCdWYsICI7JSIsIHN0YXJ0KSkgeworICAgICAgICAgICAgcnVsZVNldERlc2NyaXB0aW9uc1tjdXJSdWxlU2V0XSA9IGRlc2NCdWYuc3Vic3RyaW5nKHN0YXJ0LCBwICsgMSk7CisgICAgICAgICAgICBydWxlU2V0c1tjdXJSdWxlU2V0XSA9IG5ldyBORlJ1bGVTZXQocnVsZVNldERlc2NyaXB0aW9ucywgY3VyUnVsZVNldCk7CisgICAgICAgICAgICArK2N1clJ1bGVTZXQ7CisgICAgICAgICAgICBzdGFydCA9IHAgKyAxOworICAgICAgICB9CisgICAgICAgIHJ1bGVTZXREZXNjcmlwdGlvbnNbY3VyUnVsZVNldF0gPSBkZXNjQnVmLnN1YnN0cmluZyhzdGFydCk7CisgICAgICAgIHJ1bGVTZXRzW2N1clJ1bGVTZXRdID0gbmV3IE5GUnVsZVNldChydWxlU2V0RGVzY3JpcHRpb25zLCBjdXJSdWxlU2V0KTsKKworICAgICAgICAvLyBub3cgd2UgY2FuIHRha2Ugbm90ZSBvZiB0aGUgZm9ybWF0dGVyJ3MgZGVmYXVsdCBydWxlIHNldCwgd2hpY2gKKyAgICAgICAgLy8gaXMgdGhlIGxhc3QgcHVibGljIHJ1bGUgc2V0IGluIHRoZSBkZXNjcmlwdGlvbiAoaXQncyB0aGUgbGFzdAorICAgICAgICAvLyByYXRoZXIgdGhhbiB0aGUgZmlyc3Qgc28gdGhhdCBhIHVzZXIgY2FuIGNyZWF0ZSBhIG5ldyBmb3JtYXR0ZXIKKyAgICAgICAgLy8gZnJvbSBhbiBleGlzdGluZyBmb3JtYXR0ZXIgYW5kIGNoYW5nZSBpdHMgZGVmYXVsdCBiZXZoYWlvciBqdXN0CisgICAgICAgIC8vIGJ5IGFwcGVuZGluZyBtb3JlIHJ1bGUgc2V0cyB0byB0aGUgZW5kKQorCisgICAgICAgIC8vIHtkbGZ9IEluaXRpYWxpemF0aW9uIG9mIGEgZnJhY3Rpb24gcnVsZSBzZXQgcmVxdWlyZXMgdGhlIGRlZmF1bHQgcnVsZQorICAgICAgICAvLyBzZXQgdG8gYmUga25vd24uICBGb3IgcHVycG9zZXMgb2YgaW5pdGlhbGl6YXRpb24sIHRoaXMgaXMgYWx3YXlzIHRoZQorICAgICAgICAvLyBsYXN0IHB1YmxpYyBydWxlIHNldCwgbm8gbWF0dGVyIHdoYXQgdGhlIGxvY2FsaXphdGlvbiBkYXRhIHNheXMuCisgICAgICAgIGRlZmF1bHRSdWxlU2V0ID0gcnVsZVNldHNbcnVsZVNldHMubGVuZ3RoIC0gMV07CisgICAgICAgIGZvciAoaW50IGkgPSBydWxlU2V0cy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkgeworICAgICAgICAgICAgaWYgKCFydWxlU2V0c1tpXS5nZXROYW1lKCkuc3RhcnRzV2l0aCgiJSUiKSkgeworICAgICAgICAgICAgICAgIGRlZmF1bHRSdWxlU2V0ID0gcnVsZVNldHNbaV07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBmaW5hbGx5LCB3ZSBjYW4gZ28gYmFjayB0aHJvdWdoIHRoZSB0ZW1wb3JhcnkgZGVzY3JpcHRpb25zCisgICAgICAgIC8vIGxpc3QgYW5kIGZpbmlzaCBzZXRpbmcgdXAgdGhlIHN1YnN0cnVjdHVyZSAoYW5kIHdlIHRocm93CisgICAgICAgIC8vIGF3YXkgdGhlIHRlbXBvcmFyeSBkZXNjcmlwdGlvbnMgYXMgd2UgZ28pCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcnVsZVNldHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHJ1bGVTZXRzW2ldLnBhcnNlUnVsZXMocnVsZVNldERlc2NyaXB0aW9uc1tpXSwgdGhpcyk7CisgICAgICAgICAgICBydWxlU2V0RGVzY3JpcHRpb25zW2ldID0gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyB0aGF0IHRoZSBydWxlcyBhcmUgaW5pdGlhbGl6ZWQsIHRoZSAncmVhbCcgZGVmYXVsdCBydWxlCisgICAgICAgIC8vIHNldCBjYW4gYmUgYWRqdXN0ZWQgYnkgdGhlIGxvY2FsaXphdGlvbiBkYXRhLgorCisgICAgICAgIC8vIGNvdW50IHRoZSBudW1iZXIgb2YgcHVibGljIHJ1bGUgc2V0cworICAgICAgICAvLyAocHVibGljIHJ1bGUgc2V0cyBoYXZlIG5hbWVzIHRoYXQgYmVnaW4gd2l0aCAlIGluc3RlYWQgb2YgJSUpCisgICAgICAgIGludCBwdWJsaWNSdWxlU2V0Q291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJ1bGVTZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoIXJ1bGVTZXRzW2ldLmdldE5hbWUoKS5zdGFydHNXaXRoKCIlJSIpKSB7CisgICAgICAgICAgICAgICAgKytwdWJsaWNSdWxlU2V0Q291bnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBwcmVwYXJlIGFuIGFycmF5IG9mIHRoZSBwcm9wZXIgc2l6ZSBhbmQgY29weSB0aGUgbmFtZXMgaW50byBpdAorICAgICAgICBTdHJpbmdbXSBwdWJsaWNSdWxlU2V0VGVtcCA9IG5ldyBTdHJpbmdbcHVibGljUnVsZVNldENvdW50XTsKKyAgICAgICAgcHVibGljUnVsZVNldENvdW50ID0gMDsKKyAgICAgICAgZm9yIChpbnQgaSA9IHJ1bGVTZXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgICAgICBpZiAoIXJ1bGVTZXRzW2ldLmdldE5hbWUoKS5zdGFydHNXaXRoKCIlJSIpKSB7CisgICAgICAgICAgICAgICAgcHVibGljUnVsZVNldFRlbXBbcHVibGljUnVsZVNldENvdW50KytdID0gcnVsZVNldHNbaV0uZ2V0TmFtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHB1YmxpY1J1bGVTZXROYW1lcyAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBjb25maXJtIHRoZSBuYW1lcywgaWYgYW55IGFyZW4ndCBpbiB0aGUgcnVsZXMsIHRoYXQncyBhbiBlcnJvcgorICAgICAgICAgICAgLy8gaXQgaXMgb2sgaWYgdGhlIHJ1bGVzIGNvbnRhaW4gcHVibGljIHJ1bGUgc2V0cyB0aGF0IGFyZSBub3QgaW4gdGhpcyBsaXN0CisgICAgICAgICAgICBsb29wOiBmb3IgKGludCBpID0gMDsgaSA8IHB1YmxpY1J1bGVTZXROYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gcHVibGljUnVsZVNldE5hbWVzW2ldOworICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgcHVibGljUnVsZVNldFRlbXAubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUuZXF1YWxzKHB1YmxpY1J1bGVTZXRUZW1wW2pdKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgbG9vcDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJkaWQgbm90IGZpbmQgcHVibGljIHJ1bGUgc2V0OiAiICsgbmFtZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRlZmF1bHRSdWxlU2V0ID0gZmluZFJ1bGVTZXQocHVibGljUnVsZVNldE5hbWVzWzBdKTsgLy8gbWlnaHQgYmUgZGlmZmVyZW50CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdWJsaWNSdWxlU2V0TmFtZXMgPSBwdWJsaWNSdWxlU2V0VGVtcDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRha2UgdGhlIGxvY2FsaXphdGlvbnMgYXJyYXkgYW5kIGNyZWF0ZSBhIE1hcCBmcm9tIHRoZSBsb2NhbGUgc3RyaW5ncyB0bworICAgICAqIHRoZSBsb2NhbGl6YXRpb24gYXJyYXlzLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0TG9jYWxpemF0aW9ucyhTdHJpbmdbXVtdIGxvY2FsaXphdGlvbnMpIHsKKyAgICAgICAgaWYgKGxvY2FsaXphdGlvbnMgIT0gbnVsbCkgeworICAgICAgICAgICAgcHVibGljUnVsZVNldE5hbWVzID0gKFN0cmluZ1tdKWxvY2FsaXphdGlvbnNbMF0uY2xvbmUoKTsKKworICAgICAgICAgICAgTWFwIG0gPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBsb2NhbGl6YXRpb25zLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nW10gZGF0YSA9IGxvY2FsaXphdGlvbnNbaV07CisgICAgICAgICAgICAgICAgU3RyaW5nIGxvY2FsZSA9IGRhdGFbMF07CisgICAgICAgICAgICAgICAgU3RyaW5nW10gbmFtZXMgPSBuZXcgU3RyaW5nW2RhdGEubGVuZ3RoLTFdOworICAgICAgICAgICAgICAgIGlmIChuYW1lcy5sZW5ndGggIT0gcHVibGljUnVsZVNldE5hbWVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJwdWJsaWMgbmFtZSBsZW5ndGg6ICIgKyBwdWJsaWNSdWxlU2V0TmFtZXMubGVuZ3RoICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICE9IGxvY2FsaXplZCBuYW1lc1siICsgaSArICJdIGxlbmd0aDogIiArIG5hbWVzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZGF0YSwgMSwgbmFtZXMsIDAsIG5hbWVzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgbS5wdXQobG9jYWxlLCBuYW1lcyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghbS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBydWxlU2V0RGlzcGxheU5hbWVzID0gbTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBieSBpbml0KCkgdG8gc3RyaXAgd2hpdGVzcGFjZSBiZXR3ZWVuIHJ1bGVzIChpLmUuLAorICAgICAqIGFmdGVyIHNlbWljb2xvbnMpLgorICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBUaGUgZm9ybWF0dGVyIGRlc2NyaXB0aW9uCisgICAgICogQHJldHVybiBUaGUgZGVzY3JpcHRpb24gd2l0aCBhbGwgdGhlIHdoaXRlc3BhY2UgdGhhdCBmb2xsb3dzIHNlbWljb2xvbnMKKyAgICAgKiB0YWtlbiBvdXQuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgc3RyaXBXaGl0ZXNwYWNlKFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICAvLyBzaW5jZSB3ZSBkb24ndCBoYXZlIGEgbWV0aG9kIHRoYXQgZGVsZXRlcyBjaGFyYWN0ZXJzICh3aHk/ISEpCisgICAgICAgIC8vIGNyZWF0ZSBhIG5ldyBTdHJpbmdCdWZmZXIgdG8gY29weSB0aGUgdGV4dCBpbnRvCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgLy8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBjaGFyYWN0ZXJzLi4uCisgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgIHdoaWxlIChzdGFydCAhPSAtMSAmJiBzdGFydCA8IGRlc2NyaXB0aW9uLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAvLyBzZWVrIHRvIHRoZSBmaXJzdCBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIuLi4KKyAgICAgICAgICAgIHdoaWxlIChzdGFydCA8IGRlc2NyaXB0aW9uLmxlbmd0aCgpCisgICAgICAgICAgICAgICAgICAgJiYgVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoZGVzY3JpcHRpb24uY2hhckF0KHN0YXJ0KSkpIHsKKyAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvL2lmIHRoZSBmaXJzdCBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIgaXMgc2VtaWNvbG9uLCBza2lwIGl0IGFuZCBjb250aW51ZQorICAgICAgICAgICAgaWYgKHN0YXJ0IDwgZGVzY3JpcHRpb24ubGVuZ3RoKCkgJiYgZGVzY3JpcHRpb24uY2hhckF0KHN0YXJ0KSA9PSAnOycpIHsKKyAgICAgICAgICAgICAgICBzdGFydCArPSAxOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBsb2NhdGUgdGhlIG5leHQgc2VtaWNvbG9uIGluIHRoZSB0ZXh0IGFuZCBjb3B5IHRoZSB0ZXh0IGZyb20KKyAgICAgICAgICAgIC8vIG91ciBjdXJyZW50IHBvc2l0aW9uIHVwIHRvIHRoYXQgc2VtaWNvbG9uIGludG8gdGhlIHJlc3VsdAorICAgICAgICAgICAgaW50IHA7CisgICAgICAgICAgICBwID0gZGVzY3JpcHRpb24uaW5kZXhPZignOycsIHN0YXJ0KTsKKyAgICAgICAgICAgIGlmIChwID09IC0xKSB7CisgICAgICAgICAgICAgICAgLy8gb3IgaWYgd2UgZG9uJ3QgZmluZCBhIHNlbWljb2xvbiwganVzdCBjb3B5IHRoZSByZXN0IG9mCisgICAgICAgICAgICAgICAgLy8gdGhlIHN0cmluZyBpbnRvIHRoZSByZXN1bHQKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGRlc2NyaXB0aW9uLnN1YnN0cmluZyhzdGFydCkpOworICAgICAgICAgICAgICAgIHN0YXJ0ID0gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChwIDwgZGVzY3JpcHRpb24ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGRlc2NyaXB0aW9uLnN1YnN0cmluZyhzdGFydCwgcCArIDEpKTsKKyAgICAgICAgICAgICAgICBzdGFydCA9IHAgKyAxOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyB3aGVuIHdlIGdldCBoZXJlLCB3ZSd2ZSBzZWVrZWQgb2ZmIHRoZSBlbmQgb2YgdGhlIHNyaW5nLCBhbmQKKyAgICAgICAgICAgIC8vIHdlIHRlcm1pbmF0ZSB0aGUgbG9vcCAod2UgY29udGludWUgdW50aWwgKnN0YXJ0KiBpcyAtMSByYXRoZXIKKyAgICAgICAgICAgIC8vIHRoYW4gdW50aWwgKnAqIGlzIC0xLCBiZWNhdXNlIG90aGVyd2lzZSB3ZSdkIG1pc3MgdGhlIGxhc3QKKyAgICAgICAgICAgIC8vIHJ1bGUgaW4gdGhlIGRlc2NyaXB0aW9uKQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgc3RhcnQgPSAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIE9OTFkgRFVSSU5HIENPTlNUUlVDVElPTiB0byBmaWxsIGluIHRoZQorICAgICAqIGRlZmF1bHRSdWxlU2V0IHZhcmlhYmxlIG9uY2Ugd2UndmUgc2V0IHVwIGFsbCB0aGUgcnVsZSBzZXRzLgorICAgICAqIFRoZSBkZWZhdWx0IHJ1bGUgc2V0IGlzIHRoZSBsYXN0IHB1YmxpYyBydWxlIHNldCBpbiB0aGUgZGVzY3JpcHRpb24uCisgICAgICogKEl0J3MgdGhlIGxhc3QgcmF0aGVyIHRoYW4gdGhlIGZpcnN0IHNvIHRoYXQgYSBjYWxsZXIgY2FuIGFwcGVuZAorICAgICAqIHRleHQgdG8gdGhlIGVuZCBvZiBhbiBleGlzdGluZyBmb3JtYXR0ZXIgZGVzY3JpcHRpb24gdG8gY2hhbmdlIGl0cworICAgICAqIGJlaGF2aW9yLikKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaW5pdERlZmF1bHRSdWxlU2V0KCkgeworICAgICAgICAvLyBzZWVrIGJhY2t3YXJkIGZyb20gdGhlIGVuZCBvZiB0aGUgbGlzdCB1bnRpbCB3ZSByZWFjaCBhIHJ1bGUgc2V0CisgICAgICAgIC8vIHdob3NlIG5hbWUgRE9FU04nVCBiZWdpbiB3aXRoICUlLiAgVGhhdCdzIHRoZSBkZWZhdWx0IHJ1bGUgc2V0CisgICAgICAgIGZvciAoaW50IGkgPSBydWxlU2V0cy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkgeworICAgICAgICAgICAgaWYgKCFydWxlU2V0c1tpXS5nZXROYW1lKCkuc3RhcnRzV2l0aCgiJSUiKSkgeworICAgICAgICAgICAgICAgIGRlZmF1bHRSdWxlU2V0ID0gcnVsZVNldHNbaV07CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRlZmF1bHRSdWxlU2V0ID0gcnVsZVNldHNbcnVsZVNldHMubGVuZ3RoIC0gMV07CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGZvcm1hdHRpbmcgaW1wbGVtZW50YXRpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBCb3R0bGVuZWNrIHRocm91Z2ggd2hpY2ggYWxsIHRoZSBwdWJsaWMgZm9ybWF0KCkgbWV0aG9kcworICAgICAqIHRoYXQgdGFrZSBhIGRvdWJsZSBwYXNzLiBCeSB0aGUgdGltZSB3ZSBnZXQgaGVyZSwgd2Uga25vdworICAgICAqIHdoaWNoIHJ1bGUgc2V0IHdlJ3JlIHVzaW5nIHRvIGRvIHRoZSBmb3JtYXR0aW5nLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciB0byBmb3JtYXQKKyAgICAgKiBAcGFyYW0gcnVsZVNldCBUaGUgcnVsZSBzZXQgdG8gdXNlIHRvIGZvcm1hdCB0aGUgbnVtYmVyCisgICAgICogQHJldHVybiBUaGUgdGV4dCB0aGF0IHJlc3VsdGVkIGZyb20gZm9ybWF0dGluZyB0aGUgbnVtYmVyCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZm9ybWF0KGRvdWJsZSBudW1iZXIsIE5GUnVsZVNldCBydWxlU2V0KSB7CisgICAgICAgIC8vIGFsbCBBUEkgZm9ybWF0KCkgcm91dGluZXMgdGhhdCB0YWtlIGEgZG91YmxlIHZlY3RvciB0aHJvdWdoCisgICAgICAgIC8vIGhlcmUuICBDcmVhdGUgYW4gZW1wdHkgc3RyaW5nIGJ1ZmZlciB3aGVyZSB0aGUgcmVzdWx0IHdpbGwKKyAgICAgICAgLy8gYmUgYnVpbHQsIGFuZCBwYXNzIGl0IHRvIHRoZSBydWxlIHNldCAoYWxvbmcgd2l0aCBhbiBpbnNlcnRpb24KKyAgICAgICAgLy8gcG9zaXRpb24gb2YgMCBhbmQgdGhlIG51bWJlciBiZWluZyBmb3JtYXR0ZWQpIHRvIHRoZSBydWxlIHNldAorICAgICAgICAvLyBmb3IgZm9ybWF0dGluZworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBydWxlU2V0LmZvcm1hdChudW1iZXIsIHJlc3VsdCwgMCk7CisgICAgICAgIHBvc3RQcm9jZXNzKHJlc3VsdCwgcnVsZVNldCk7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBCb3R0bGVuZWNrIHRocm91Z2ggd2hpY2ggYWxsIHRoZSBwdWJsaWMgZm9ybWF0KCkgbWV0aG9kcworICAgICAqIHRoYXQgdGFrZSBhIGxvbmcgcGFzcy4gQnkgdGhlIHRpbWUgd2UgZ2V0IGhlcmUsIHdlIGtub3cKKyAgICAgKiB3aGljaCBydWxlIHNldCB3ZSdyZSB1c2luZyB0byBkbyB0aGUgZm9ybWF0dGluZy4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgdG8gZm9ybWF0CisgICAgICogQHBhcmFtIHJ1bGVTZXQgVGhlIHJ1bGUgc2V0IHRvIHVzZSB0byBmb3JtYXQgdGhlIG51bWJlcgorICAgICAqIEByZXR1cm4gVGhlIHRleHQgdGhhdCByZXN1bHRlZCBmcm9tIGZvcm1hdHRpbmcgdGhlIG51bWJlcgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGZvcm1hdChsb25nIG51bWJlciwgTkZSdWxlU2V0IHJ1bGVTZXQpIHsKKyAgICAgICAgLy8gYWxsIEFQSSBmb3JtYXQoKSByb3V0aW5lcyB0aGF0IHRha2UgYSBkb3VibGUgdmVjdG9yIHRocm91Z2gKKyAgICAgICAgLy8gaGVyZS4gIFdlIGhhdmUgdGhlc2UgdHdvIGlkZW50aWNhbCBmdW5jdGlvbnMtLSBvbmUgdGFraW5nIGEKKyAgICAgICAgLy8gZG91YmxlIGFuZCBvbmUgdGFraW5nIGEgbG9uZy0tIHRoZSBjb3VwbGUgZGlnaXRzIG9mIHByZWNpc2lvbgorICAgICAgICAvLyB0aGF0IGxvbmcgaGFzIGJ1dCBkb3VibGUgZG9lc24ndCAoYm90aCB0eXBlcyBhcmUgOCBieXRlcyBsb25nLAorICAgICAgICAvLyBidXQgZG91YmxlIGhhcyB0byBib3Jyb3cgc29tZSBvZiB0aGUgbWFudGlzc2EgYml0cyB0byBob2xkCisgICAgICAgIC8vIHRoZSBleHBvbmVudCkuCisgICAgICAgIC8vIENyZWF0ZSBhbiBlbXB0eSBzdHJpbmcgYnVmZmVyIHdoZXJlIHRoZSByZXN1bHQgd2lsbAorICAgICAgICAvLyBiZSBidWlsdCwgYW5kIHBhc3MgaXQgdG8gdGhlIHJ1bGUgc2V0IChhbG9uZyB3aXRoIGFuIGluc2VydGlvbgorICAgICAgICAvLyBwb3NpdGlvbiBvZiAwIGFuZCB0aGUgbnVtYmVyIGJlaW5nIGZvcm1hdHRlZCkgdG8gdGhlIHJ1bGUgc2V0CisgICAgICAgIC8vIGZvciBmb3JtYXR0aW5nCisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHJ1bGVTZXQuZm9ybWF0KG51bWJlciwgcmVzdWx0LCAwKTsKKyAgICAgICAgcG9zdFByb2Nlc3MocmVzdWx0LCBydWxlU2V0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBvc3QtcHJvY2VzcyB0aGUgcnVsZXMgaWYgd2UgaGF2ZSBhIHBvc3QtcHJvY2Vzc29yLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBwb3N0UHJvY2VzcyhTdHJpbmdCdWZmZXIgcmVzdWx0LCBORlJ1bGVTZXQgcnVsZVNldCkgeworICAgICAgICBpZiAocG9zdFByb2Nlc3NSdWxlcyAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAocG9zdFByb2Nlc3NvciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgaW50IGl4ID0gcG9zdFByb2Nlc3NSdWxlcy5pbmRleE9mKCI7Iik7CisgICAgICAgICAgICAgICAgaWYgKGl4ID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIGl4ID0gcG9zdFByb2Nlc3NSdWxlcy5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3RyaW5nIHBwQ2xhc3NOYW1lID0gcG9zdFByb2Nlc3NSdWxlcy5zdWJzdHJpbmcoMCwgaXgpLnRyaW0oKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBDbGFzcyBjbHMgPSBDbGFzcy5mb3JOYW1lKHBwQ2xhc3NOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgcG9zdFByb2Nlc3NvciA9IChSQk5GUG9zdFByb2Nlc3NvciljbHMubmV3SW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgcG9zdFByb2Nlc3Nvci5pbml0KHRoaXMsIHBvc3RQcm9jZXNzUnVsZXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgZGVidWcsIHByaW50IGl0IG91dAorICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNvdWxkIG5vdCBsb2NhdGUgIiArIHBwQ2xhc3NOYW1lICsgIiwgZXJyb3IgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiwgIiArIGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgcG9zdFByb2Nlc3NvciA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIHBvc3RQcm9jZXNzUnVsZXMgPSBudWxsOyAvLyBkb24ndCB0cnkgYWdhaW4KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcG9zdFByb2Nlc3Nvci5wcm9jZXNzKHJlc3VsdCwgcnVsZVNldCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuYW1lZCBydWxlIHNldC4gIFRocm93cyBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24KKyAgICAgKiBpZiB0aGlzIGZvcm1hdHRlciBkb2Vzbid0IGhhdmUgYSBydWxlIHNldCB3aXRoIHRoYXQgbmFtZS4KKyAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgZGVzaXJlZCBydWxlIHNldAorICAgICAqIEByZXR1cm4gVGhlIHJ1bGUgc2V0IHdpdGggdGhhdCBuYW1lCisgICAgICovCisgICAgTkZSdWxlU2V0IGZpbmRSdWxlU2V0KFN0cmluZyBuYW1lKSB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBydWxlU2V0cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKHJ1bGVTZXRzW2ldLmdldE5hbWUoKS5lcXVhbHMobmFtZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcnVsZVNldHNbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTm8gcnVsZSBzZXQgbmFtZWQgIiArIG5hbWUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1J1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZhNTUzMjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9SdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNjQwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworCisvKioKKyAqIDxjb2RlPlJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBpcyBhIHRyYW5zbGl0ZXJhdG9yCisgKiB0aGF0IHJlYWRzIGEgc2V0IG9mIHJ1bGVzIGluIG9yZGVyIHRvIGRldGVybWluZSBob3cgdG8gcGVyZm9ybQorICogdHJhbnNsYXRpb25zLiBSdWxlIHNldHMgYXJlIHN0b3JlZCBpbiByZXNvdXJjZSBidW5kbGVzIGluZGV4ZWQgYnkKKyAqIG5hbWUuIFJ1bGVzIHdpdGhpbiBhIHJ1bGUgc2V0IGFyZSBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucyAoJzsnKS4KKyAqIFRvIGluY2x1ZGUgYSBsaXRlcmFsIHNlbWljb2xvbiwgcHJlZml4IGl0IHdpdGggYSBiYWNrc2xhc2ggKCdcJykuCisgKiBXaGl0ZXNwYWNlLCBhcyBkZWZpbmVkIGJ5IDxjb2RlPlVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCk8L2NvZGU+LAorICogaXMgaWdub3JlZC4gSWYgdGhlIGZpcnN0IG5vbi1ibGFuayBjaGFyYWN0ZXIgb24gYSBsaW5lIGlzICcjJywKKyAqIHRoZSBlbnRpcmUgbGluZSBpcyBpZ25vcmVkIGFzIGEgY29tbWVudC4gPC9wPgorICoKKyAqIDxwPkVhY2ggc2V0IG9mIHJ1bGVzIGNvbnNpc3RzIG9mIHR3byBncm91cHMsIG9uZSBmb3J3YXJkLCBhbmQgb25lCisgKiByZXZlcnNlLiBUaGlzIGlzIGEgY29udmVudGlvbiB0aGF0IGlzIG5vdCBlbmZvcmNlZDsgcnVsZXMgZm9yIG9uZQorICogZGlyZWN0aW9uIG1heSBiZSBvbWl0dGVkLCB3aXRoIHRoZSByZXN1bHQgdGhhdCB0cmFuc2xhdGlvbnMgaW4KKyAqIHRoYXQgZGlyZWN0aW9uIHdpbGwgbm90IG1vZGlmeSB0aGUgc291cmNlIHRleHQuIEluIGFkZGl0aW9uLAorICogYmlkaXJlY3Rpb25hbCBmb3J3YXJkLXJldmVyc2UgcnVsZXMgbWF5IGJlIHNwZWNpZmllZCBmb3IKKyAqIHN5bW1ldHJpY2FsIHRyYW5zZm9ybWF0aW9ucy48L3A+CisgKgorICogPHA+PGI+UnVsZSBzeW50YXg8L2I+IDwvcD4KKyAqCisgKiA8cD5SdWxlIHN0YXRlbWVudHMgdGFrZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBmb3JtczogPC9wPgorICoKKyAqIDxkbD4KKyAqICAgICA8ZHQ+PGNvZGU+JGFsZWZtYWRkYT1cdTA2MjI7PC9jb2RlPjwvZHQ+CisgKiAgICAgPGRkPjxzdHJvbmc+VmFyaWFibGUgZGVmaW5pdGlvbi48L3N0cm9uZz4gVGhlIG5hbWUgb24gdGhlCisgKiAgICAgICAgIGxlZnQgaXMgYXNzaWduZWQgdGhlIHRleHQgb24gdGhlIHJpZ2h0LiBJbiB0aGlzIGV4YW1wbGUsCisgKiAgICAgICAgIGFmdGVyIHRoaXMgc3RhdGVtZW50LCBpbnN0YW5jZXMgb2YgdGhlIGxlZnQgaGFuZCBuYW1lLAorICogICAgICAgICAmcXVvdDs8Y29kZT4kYWxlZm1hZGRhPC9jb2RlPiZxdW90Oywgd2lsbCBiZSByZXBsYWNlZCBieQorICogICAgICAgICB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgVSswNjIyLiBWYXJpYWJsZSBuYW1lcyBtdXN0IGJlZ2luCisgKiAgICAgICAgIHdpdGggYSBsZXR0ZXIgYW5kIGNvbnNpc3Qgb25seSBvZiBsZXR0ZXJzLCBkaWdpdHMsIGFuZAorICogICAgICAgICB1bmRlcnNjb3Jlcy4gQ2FzZSBpcyBzaWduaWZpY2FudC4gRHVwbGljYXRlIG5hbWVzIGNhdXNlCisgKiAgICAgICAgIGFuIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24sIHRoYXQgaXMsIHZhcmlhYmxlcyBjYW5ub3QgYmUKKyAqICAgICAgICAgcmVkZWZpbmVkLiBUaGUgcmlnaHQgaGFuZCBzaWRlIG1heSBjb250YWluIHdlbGwtZm9ybWVkCisgKiAgICAgICAgIHRleHQgb2YgYW55IGxlbmd0aCwgaW5jbHVkaW5nIG5vIHRleHQgYXQgYWxsICgmcXVvdDs8Y29kZT4kZW1wdHk9OzwvY29kZT4mcXVvdDspLgorICogICAgICAgICBUaGUgcmlnaHQgaGFuZCBzaWRlIG1heSBjb250YWluIGVtYmVkZGVkIDxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+CisgKiAgICAgICAgIHBhdHRlcm5zLCBmb3IgZXhhbXBsZSwgJnF1b3Q7PGNvZGU+JHNvZnR2b3dlbD1bZWl5RUlZXTwvY29kZT4mcXVvdDsuPC9kZD4KKyAqICAgICA8ZGQ+Jm5ic3A7PC9kZD4KKyAqICAgICA8ZHQ+PGNvZGU+YWkmZ3Q7JGFsZWZtYWRkYTs8L2NvZGU+PC9kdD4KKyAqICAgICA8ZGQ+PHN0cm9uZz5Gb3J3YXJkIHRyYW5zbGF0aW9uIHJ1bGUuPC9zdHJvbmc+IFRoaXMgcnVsZQorICogICAgICAgICBzdGF0ZXMgdGhhdCB0aGUgc3RyaW5nIG9uIHRoZSBsZWZ0IHdpbGwgYmUgY2hhbmdlZCB0byB0aGUKKyAqICAgICAgICAgc3RyaW5nIG9uIHRoZSByaWdodCB3aGVuIHBlcmZvcm1pbmcgZm9yd2FyZAorICogICAgICAgICB0cmFuc2xpdGVyYXRpb24uPC9kZD4KKyAqICAgICA8ZHQ+Jm5ic3A7PC9kdD4KKyAqICAgICA8ZHQ+PGNvZGU+YWkmbHQ7JGFsZWZtYWRkYTs8L2NvZGU+PC9kdD4KKyAqICAgICA8ZGQ+PHN0cm9uZz5SZXZlcnNlIHRyYW5zbGF0aW9uIHJ1bGUuPC9zdHJvbmc+IFRoaXMgcnVsZQorICogICAgICAgICBzdGF0ZXMgdGhhdCB0aGUgc3RyaW5nIG9uIHRoZSByaWdodCB3aWxsIGJlIGNoYW5nZWQgdG8KKyAqICAgICAgICAgdGhlIHN0cmluZyBvbiB0aGUgbGVmdCB3aGVuIHBlcmZvcm1pbmcgcmV2ZXJzZQorICogICAgICAgICB0cmFuc2xpdGVyYXRpb24uPC9kZD4KKyAqIDwvZGw+CisgKgorICogPGRsPgorICogICAgIDxkdD48Y29kZT5haSZsdDsmZ3Q7JGFsZWZtYWRkYTs8L2NvZGU+PC9kdD4KKyAqICAgICA8ZGQ+PHN0cm9uZz5CaWRpcmVjdGlvbmFsIHRyYW5zbGF0aW9uIHJ1bGUuPC9zdHJvbmc+IFRoaXMKKyAqICAgICAgICAgcnVsZSBzdGF0ZXMgdGhhdCB0aGUgc3RyaW5nIG9uIHRoZSByaWdodCB3aWxsIGJlIGNoYW5nZWQKKyAqICAgICAgICAgdG8gdGhlIHN0cmluZyBvbiB0aGUgbGVmdCB3aGVuIHBlcmZvcm1pbmcgZm9yd2FyZAorICogICAgICAgICB0cmFuc2xpdGVyYXRpb24sIGFuZCB2aWNlIHZlcnNhIHdoZW4gcGVyZm9ybWluZyByZXZlcnNlCisgKiAgICAgICAgIHRyYW5zbGl0ZXJhdGlvbi48L2RkPgorICogPC9kbD4KKyAqCisgKiA8cD5UcmFuc2xhdGlvbiBydWxlcyBjb25zaXN0IG9mIGEgPGVtPm1hdGNoIHBhdHRlcm48L2VtPiBhbmQgYW4gPGVtPm91dHB1dAorICogc3RyaW5nPC9lbT4uIFRoZSBtYXRjaCBwYXR0ZXJuIGNvbnNpc3RzIG9mIGxpdGVyYWwgY2hhcmFjdGVycywKKyAqIG9wdGlvbmFsbHkgcHJlY2VkZWQgYnkgY29udGV4dCwgYW5kIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkKKyAqIGNvbnRleHQuIENvbnRleHQgY2hhcmFjdGVycywgbGlrZSBsaXRlcmFsIHBhdHRlcm4gY2hhcmFjdGVycywKKyAqIG11c3QgYmUgbWF0Y2hlZCBpbiB0aGUgdGV4dCBiZWluZyB0cmFuc2xpdGVyYXRlZC4gSG93ZXZlciwgdW5saWtlCisgKiBsaXRlcmFsIHBhdHRlcm4gY2hhcmFjdGVycywgdGhleSBhcmUgbm90IHJlcGxhY2VkIGJ5IHRoZSBvdXRwdXQKKyAqIHRleHQuIEZvciBleGFtcGxlLCB0aGUgcGF0dGVybiAmcXVvdDs8Y29kZT5hYmN7ZGVmfTwvY29kZT4mcXVvdDsKKyAqIGluZGljYXRlcyB0aGUgY2hhcmFjdGVycyAmcXVvdDs8Y29kZT5kZWY8L2NvZGU+JnF1b3Q7IG11c3QgYmUKKyAqIHByZWNlZGVkIGJ5ICZxdW90Ozxjb2RlPmFiYzwvY29kZT4mcXVvdDsgZm9yIGEgc3VjY2Vzc2Z1bCBtYXRjaC4KKyAqIElmIHRoZXJlIGlzIGEgc3VjY2Vzc2Z1bCBtYXRjaCwgJnF1b3Q7PGNvZGU+ZGVmPC9jb2RlPiZxdW90OyB3aWxsCisgKiBiZSByZXBsYWNlZCwgYnV0IG5vdCAmcXVvdDs8Y29kZT5hYmM8L2NvZGU+JnF1b3Q7LiBUaGUgZmluYWwgJzxjb2RlPn08L2NvZGU+JworICogaXMgb3B0aW9uYWwsIHNvICZxdW90Ozxjb2RlPmFiY3tkZWY8L2NvZGU+JnF1b3Q7IGlzIGVxdWl2YWxlbnQgdG8KKyAqICZxdW90Ozxjb2RlPmFiY3tkZWZ9PC9jb2RlPiZxdW90Oy4gQW5vdGhlciBleGFtcGxlIGlzICZxdW90Ozxjb2RlPnsxMjN9NDU2PC9jb2RlPiZxdW90OworICogKG9yICZxdW90Ozxjb2RlPjEyM300NTY8L2NvZGU+JnF1b3Q7KSBpbiB3aGljaCB0aGUgbGl0ZXJhbAorICogcGF0dGVybiAmcXVvdDs8Y29kZT4xMjM8L2NvZGU+JnF1b3Q7IG11c3QgYmUgZm9sbG93ZWQgYnkgJnF1b3Q7PGNvZGU+NDU2PC9jb2RlPiZxdW90Oy4KKyAqIDwvcD4KKyAqCisgKiA8cD5UaGUgb3V0cHV0IHN0cmluZyBvZiBhIGZvcndhcmQgb3IgcmV2ZXJzZSBydWxlIGNvbnNpc3RzIG9mCisgKiBjaGFyYWN0ZXJzIHRvIHJlcGxhY2UgdGhlIGxpdGVyYWwgcGF0dGVybiBjaGFyYWN0ZXJzLiBJZiB0aGUKKyAqIG91dHB1dCBzdHJpbmcgY29udGFpbnMgdGhlIGNoYXJhY3RlciAnPGNvZGU+fDwvY29kZT4nLCB0aGlzIGlzCisgKiB0YWtlbiB0byBpbmRpY2F0ZSB0aGUgbG9jYXRpb24gb2YgdGhlIDxlbT5jdXJzb3I8L2VtPiBhZnRlcgorICogcmVwbGFjZW1lbnQuIFRoZSBjdXJzb3IgaXMgdGhlIHBvaW50IGluIHRoZSB0ZXh0IGF0IHdoaWNoIHRoZQorICogbmV4dCByZXBsYWNlbWVudCwgaWYgYW55LCB3aWxsIGJlIGFwcGxpZWQuIFRoZSBjdXJzb3IgaXMgdXN1YWxseQorICogcGxhY2VkIHdpdGhpbiB0aGUgcmVwbGFjZW1lbnQgdGV4dDsgaG93ZXZlciwgaXQgY2FuIGFjdHVhbGx5IGJlCisgKiBwbGFjZWQgaW50byB0aGUgcHJlY2VuZGluZyBvciBmb2xsb3dpbmcgY29udGV4dCBieSB1c2luZyB0aGUKKyAqIHNwZWNpYWwgY2hhcmFjdGVyICc8Y29kZT5APC9jb2RlPicuIEV4YW1wbGVzOjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgICA8cD48Y29kZT5hIHtmb299IHogJmd0OyB8IEAgYmFyOyAjIGZvbyAtJmd0OyBiYXIsIG1vdmUgY3Vyc29yCisgKiAgICAgYmVmb3JlIGE8YnI+CisgKiAgICAge2Zvb30geHl6ICZndDsgYmFyIEBAfDsgIyZuYnNwO2ZvbyAtJmd0OyBiYXIsIGN1cnNvciBiZXR3ZWVuCisgKiAgICAgeSBhbmQgejwvY29kZT48L3A+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+PGI+VW5pY29kZVNldDwvYj48L3A+CisgKgorICogPHA+PGNvZGU+VW5pY29kZVNldDwvY29kZT4gcGF0dGVybnMgbWF5IGFwcGVhciBhbnl3aGVyZSB0aGF0CisgKiBtYWtlcyBzZW5zZS4gVGhleSBtYXkgYXBwZWFyIGluIHZhcmlhYmxlIGRlZmluaXRpb25zLgorICogQ29udHJhcml3aXNlLCA8Y29kZT5Vbmljb2RlU2V0PC9jb2RlPiBwYXR0ZXJucyBtYXkgdGhlbXNlbHZlcworICogY29udGFpbiB2YXJpYWJsZSByZWZlcmVuY2VzLCBzdWNoIGFzICZxdW90Ozxjb2RlPiRhPVthLXpdOyRub3RfYT1bXiRhXTwvY29kZT4mcXVvdDssCisgKiBvciAmcXVvdDs8Y29kZT4kcmFuZ2U9YS16OyRsbD1bJHJhbmdlXTwvY29kZT4mcXVvdDsuPC9wPgorICoKKyAqIDxwPjxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+IHBhdHRlcm5zIG1heSBhbHNvIGJlIGVtYmVkZGVkIGRpcmVjdGx5CisgKiBpbnRvIHJ1bGUgc3RyaW5ncy4gVGh1cywgdGhlIGZvbGxvd2luZyB0d28gcnVsZXMgYXJlIGVxdWl2YWxlbnQ6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICAgIDxwPjxjb2RlPiR2b3dlbD1bYWVpb3VdOyAkdm93ZWwmZ3Q7JyonOyAjIE9uZSB3YXkgdG8gZG8gdGhpczxicj4KKyAqICAgICBbYWVpb3VdJmd0OycqJzsKKyAqICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsjCisgKiAgICAgQW5vdGhlciB3YXk8L2NvZGU+PC9wPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPlNlZSB7QGxpbmsgVW5pY29kZVNldH0gZm9yIG1vcmUgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXMuPC9wPgorICoKKyAqIDxwPjxiPlNlZ21lbnRzPC9iPjwvcD4KKyAqCisgKiA8cD5TZWdtZW50cyBvZiB0aGUgaW5wdXQgc3RyaW5nIGNhbiBiZSBtYXRjaGVkIGFuZCBjb3BpZWQgdG8gdGhlCisgKiBvdXRwdXQgc3RyaW5nLiBUaGlzIG1ha2VzIGNlcnRhaW4gc2V0cyBvZiBydWxlcyBzaW1wbGVyIGFuZCBtb3JlCisgKiBnZW5lcmFsLCBhbmQgbWFrZXMgcmVvcmRlcmluZyBwb3NzaWJsZS4gRm9yIGV4YW1wbGU6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICAgIDxwPjxjb2RlPihbYS16XSkgJmd0OyAkMSAkMTsKKyAqICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsjCisgKiAgICAgZG91YmxlIGxvd2VyY2FzZSBsZXR0ZXJzPGJyPgorICogICAgIChbOkx1Ol0pIChbOkxsOl0pICZndDsgJDIgJDE7ICMgcmV2ZXJzZSBvcmRlciBvZiBMdS1MbCBwYWlyczwvY29kZT48L3A+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+VGhlIHNlZ21lbnQgb2YgdGhlIGlucHV0IHN0cmluZyB0byBiZSBjb3BpZWQgaXMgZGVsaW1pdGVkIGJ5CisgKiAmcXVvdDs8Y29kZT4oPC9jb2RlPiZxdW90OyBhbmQgJnF1b3Q7PGNvZGU+KTwvY29kZT4mcXVvdDsuIFVwIHRvCisgKiBuaW5lIHNlZ21lbnRzIG1heSBiZSBkZWZpbmVkLiBTZWdtZW50cyBtYXkgbm90IG92ZXJsYXAuIEluIHRoZQorICogb3V0cHV0IHN0cmluZywgJnF1b3Q7PGNvZGU+JDE8L2NvZGU+JnF1b3Q7IHRocm91Z2ggJnF1b3Q7PGNvZGU+JDk8L2NvZGU+JnF1b3Q7CisgKiByZXByZXNlbnQgdGhlIGlucHV0IHN0cmluZyBzZWdtZW50cywgaW4gbGVmdC10by1yaWdodCBvcmRlciBvZgorICogZGVmaW5pdGlvbi48L3A+CisgKgorICogPHA+PGI+QW5jaG9yczwvYj48L3A+CisgKgorICogPHA+UGF0dGVybnMgY2FuIGJlIGFuY2hvcmVkIHRvIHRoZSBiZWdpbm5pbmcgb3IgdGhlIGVuZCBvZiB0aGUgdGV4dC4gVGhpcyBpcyBkb25lIHdpdGggdGhlCisgKiBzcGVjaWFsIGNoYXJhY3RlcnMgJzxjb2RlPl48L2NvZGU+JyBhbmQgJzxjb2RlPiQ8L2NvZGU+Jy4gRm9yIGV4YW1wbGU6PC9wPgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICA8cD48Y29kZT5eIGEmbmJzcDsmbmJzcDsgJmd0OyAnQkVHX0EnOyAmbmJzcDsmbmJzcDsjIG1hdGNoICdhJyBhdCBzdGFydCBvZiB0ZXh0PGJyPgorICogICAmbmJzcDsgYSZuYnNwOyZuYnNwOyAmZ3Q7ICdBJzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgIyBtYXRjaCBvdGhlciBpbnN0YW5jZXMKKyAqICAgb2YgJ2EnPGJyPgorICogICAmbmJzcDsgeiAkICZndDsgJ0VORF9aJzsgJm5ic3A7Jm5ic3A7IyBtYXRjaCAneicgYXQgZW5kIG9mIHRleHQ8YnI+CisgKiAgICZuYnNwOyB6Jm5ic3A7Jm5ic3A7ICZndDsgJ1onOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAjIG1hdGNoIG90aGVyIGluc3RhbmNlcworICogICBvZiAneic8L2NvZGU+PC9wPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPkl0IGlzIGFsc28gcG9zc2libGUgdG8gbWF0Y2ggdGhlIGJlZ2lubmluZyBvciB0aGUgZW5kIG9mIHRoZSB0ZXh0IHVzaW5nIGEgPGNvZGU+VW5pY29kZVNldDwvY29kZT4uCisgKiBUaGlzIGlzIGRvbmUgYnkgaW5jbHVkaW5nIGEgdmlydHVhbCBhbmNob3IgY2hhcmFjdGVyICc8Y29kZT4kPC9jb2RlPicgYXQgdGhlIGVuZCBvZiB0aGUKKyAqIHNldCBwYXR0ZXJuLiBBbHRob3VnaCB0aGlzIGlzIHVzdWFsbHkgdGhlIG1hdGNoIGNoYWZhY3RlciBmb3IgdGhlIGVuZCBhbmNob3IsIHRoZSBzZXQgd2lsbAorICogbWF0Y2ggZWl0aGVyIHRoZSBiZWdpbm5pbmcgb3IgdGhlIGVuZCBvZiB0aGUgdGV4dCwgZGVwZW5kaW5nIG9uIGl0cyBwbGFjZW1lbnQuIEZvcgorICogZXhhbXBsZTo8L3A+CisgKgorICogPGJsb2NrcXVvdGU+CisgKiAgIDxwPjxjb2RlPiR4ID0gW2EteiRdOyAmbmJzcDsmbmJzcDsjIG1hdGNoICdhJyB0aHJvdWdoICd6JyBPUiBhbmNob3I8YnI+CisgKiAgICR4IDEmbmJzcDsmbmJzcDsmbmJzcDsgJmd0OyAyOyZuYnNwOyZuYnNwOyAjIG1hdGNoICcxJyBhZnRlciBhLXogb3IgYXQgdGhlIHN0YXJ0PGJyPgorICogICAmbmJzcDsmbmJzcDsgMyAkeCAmZ3Q7IDQ7ICZuYnNwOyZuYnNwOyMgbWF0Y2ggJzMnIGJlZm9yZSBhLXogb3IgYXQgdGhlIGVuZDwvY29kZT48L3A+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+PGI+RXhhbXBsZTwvYj4gPC9wPgorICoKKyAqIDxwPlRoZSBmb2xsb3dpbmcgZXhhbXBsZSBydWxlcyBpbGx1c3RyYXRlIG1hbnkgb2YgdGhlIGZlYXR1cmVzIG9mCisgKiB0aGUgcnVsZSBsYW5ndWFnZS4gPC9wPgorICoKKyAqIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSI0Ij4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+UnVsZSAxLjwvdGQ+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFiY3tkZWZ9Jmd0O3h8eTwvY29kZT48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlJ1bGUgMi48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT54eXomZ3Q7cjwvY29kZT48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlJ1bGUgMy48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT55eiZndDtxPC9jb2RlPjwvdGQ+CisgKiAgICAgPC90cj4KKyAqIDwvdGFibGU+CisgKgorICogPHA+QXBwbHlpbmcgdGhlc2UgcnVsZXMgdG8gdGhlIHN0cmluZyAmcXVvdDs8Y29kZT5hZGVmYWJjZGVmejwvY29kZT4mcXVvdDsKKyAqIHlpZWxkcyB0aGUgZm9sbG93aW5nIHJlc3VsdHM6IDwvcD4KKyAqCisgKiA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT58YWRlZmFiY2RlZno8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj5Jbml0aWFsIHN0YXRlLCBubyBydWxlcyBtYXRjaC4gQWR2YW5jZQorICogICAgICAgICBjdXJzb3IuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiBub3dyYXA+PGNvZGU+YXxkZWZhYmNkZWZ6PC9jb2RlPjwvdGQ+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+U3RpbGwgbm8gbWF0Y2guIFJ1bGUgMSBkb2VzIG5vdCBtYXRjaAorICogICAgICAgICBiZWNhdXNlIHRoZSBwcmVjZWRpbmcgY29udGV4dCBpcyBub3QgcHJlc2VudC48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT5hZHxlZmFiY2RlZno8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj5TdGlsbCBubyBtYXRjaC4gS2VlcCBhZHZhbmNpbmcgdW50aWwKKyAqICAgICAgICAgdGhlcmUgaXMgYSBtYXRjaC4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZXxmYWJjZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPi4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZWZ8YWJjZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPi4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZWZhfGJjZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPi4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZWZhYnxjZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPi4uLjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgbm93cmFwPjxjb2RlPmFkZWZhYmN8ZGVmejwvY29kZT48L3RkPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlJ1bGUgMSBtYXRjaGVzOyByZXBsYWNlICZxdW90Ozxjb2RlPmRlZjwvY29kZT4mcXVvdDsKKyAqICAgICAgICAgd2l0aCAmcXVvdDs8Y29kZT54eTwvY29kZT4mcXVvdDsgYW5kIGJhY2sgdXAgdGhlIGN1cnNvcgorICogICAgICAgICB0byBiZWZvcmUgdGhlICc8Y29kZT55PC9jb2RlPicuPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiBub3dyYXA+PGNvZGU+YWRlZmFiY3h8eXo8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj5BbHRob3VnaCAmcXVvdDs8Y29kZT54eXo8L2NvZGU+JnF1b3Q7IGlzCisgKiAgICAgICAgIHByZXNlbnQsIHJ1bGUgMiBkb2VzIG5vdCBtYXRjaCBiZWNhdXNlIHRoZSBjdXJzb3IgaXMKKyAqICAgICAgICAgYmVmb3JlIHRoZSAnPGNvZGU+eTwvY29kZT4nLCBub3QgYmVmb3JlIHRoZSAnPGNvZGU+eDwvY29kZT4nLgorICogICAgICAgICBSdWxlIDMgZG9lcyBtYXRjaC4gUmVwbGFjZSAmcXVvdDs8Y29kZT55ejwvY29kZT4mcXVvdDsKKyAqICAgICAgICAgd2l0aCAmcXVvdDs8Y29kZT5xPC9jb2RlPiZxdW90Oy48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgICA8dGQgdmFsaWduPSJ0b3AiIG5vd3JhcD48Y29kZT5hZGVmYWJjeHF8PC9jb2RlPjwvdGQ+CisgKiAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+VGhlIGN1cnNvciBpcyBhdCB0aGUgZW5kOworICogICAgICAgICB0cmFuc2xpdGVyYXRpb24gaXMgY29tcGxldGUuPC90ZD4KKyAqICAgICA8L3RyPgorICogPC90YWJsZT4KKyAqCisgKiA8cD5UaGUgb3JkZXIgb2YgcnVsZXMgaXMgc2lnbmlmaWNhbnQuIElmIG11bHRpcGxlIHJ1bGVzIG1heSBtYXRjaAorICogYXQgc29tZSBwb2ludCwgdGhlIGZpcnN0IG1hdGNoaW5nIHJ1bGUgaXMgYXBwbGllZC4gPC9wPgorICoKKyAqIDxwPkZvcndhcmQgYW5kIHJldmVyc2UgcnVsZXMgbWF5IGhhdmUgYW4gZW1wdHkgb3V0cHV0IHN0cmluZy4KKyAqIE90aGVyd2lzZSwgYW4gZW1wdHkgbGVmdCBvciByaWdodCBoYW5kIHNpZGUgb2YgYW55IHN0YXRlbWVudCBpcyBhCisgKiBzeW50YXggZXJyb3IuIDwvcD4KKyAqCisgKiA8cD5TaW5nbGUgcXVvdGVzIGFyZSB1c2VkIHRvIHF1b3RlIGFueSBjaGFyYWN0ZXIgb3RoZXIgdGhhbiBhCisgKiBkaWdpdCBvciBsZXR0ZXIuIFRvIHNwZWNpZnkgYSBzaW5nbGUgcXVvdGUgaXRzZWxmLCBpbnNpZGUgb3IKKyAqIG91dHNpZGUgb2YgcXVvdGVzLCB1c2UgdHdvIHNpbmdsZSBxdW90ZXMgaW4gYSByb3cuIEZvciBleGFtcGxlLAorICogdGhlIHJ1bGUgJnF1b3Q7PGNvZGU+JyZndDsnJmd0O28nJ2Nsb2NrPC9jb2RlPiZxdW90OyBjaGFuZ2VzIHRoZQorICogc3RyaW5nICZxdW90Ozxjb2RlPiZndDs8L2NvZGU+JnF1b3Q7IHRvIHRoZSBzdHJpbmcgJnF1b3Q7PGNvZGU+bydjbG9jazwvY29kZT4mcXVvdDsuCisgKiA8L3A+CisgKgorICogPHA+PGI+Tm90ZXM8L2I+IDwvcD4KKyAqCisgKiA8cD5XaGlsZSBhIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yIGlzIGJlaW5nIGJ1aWx0LCBpdCBjaGVja3MgdGhhdAorICogdGhlIHJ1bGVzIGFyZSBhZGRlZCBpbiBwcm9wZXIgb3JkZXIuIEZvciBleGFtcGxlLCBpZiB0aGUgcnVsZQorICogJnF1b3Q7YSZndDt4JnF1b3Q7IGlzIGZvbGxvd2VkIGJ5IHRoZSBydWxlICZxdW90O2FiJmd0O3kmcXVvdDssCisgKiB0aGVuIHRoZSBzZWNvbmQgcnVsZSB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbi4gVGhlIHJlYXNvbiBpcyB0aGF0CisgKiB0aGUgc2Vjb25kIHJ1bGUgY2FuIG5ldmVyIGJlIHRyaWdnZXJlZCwgc2luY2UgdGhlIGZpcnN0IHJ1bGUKKyAqIGFsd2F5cyBtYXRjaGVzIGFueXRoaW5nIGl0IG1hdGNoZXMuIEluIG90aGVyIHdvcmRzLCB0aGUgZmlyc3QKKyAqIHJ1bGUgPGVtPm1hc2tzPC9lbT4gdGhlIHNlY29uZCBydWxlLiA8L3A+CisgKgorICogPHA+Q29weXJpZ2h0IChjKSBJQk0gQ29ycG9yYXRpb24gMTk5OS0yMDAwLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvcD4KKyAqCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAaW50ZXJuYWwKKyAqLworY2xhc3MgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICBwcml2YXRlIERhdGEgZGF0YTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAiXHUwMEE5IElCTSBDb3Jwb3JhdGlvbiAxOTk5LiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IHRyYW5zbGl0ZXJhdG9yIGZyb20gdGhlIGdpdmVuIHJ1bGVzLgorICAgICAqIEBwYXJhbSBydWxlcyBydWxlcywgc2VwYXJhdGVkIGJ5ICc7JworICAgICAqIEBwYXJhbSBkaXJlY3Rpb24gZWl0aGVyIEZPUldBUkQgb3IgUkVWRVJTRS4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBydWxlcyBhcmUgbWFsZm9ybWVkCisgICAgICogb3IgZGlyZWN0aW9uIGlzIGludmFsaWQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgU3RyaW5nIHJ1bGVzLCBpbnQgZGlyZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBzdXBlcihJRCwgZmlsdGVyKTsKKyAgICAgICAgaWYgKGRpcmVjdGlvbiAhPSBGT1JXQVJEICYmIGRpcmVjdGlvbiAhPSBSRVZFUlNFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGRpcmVjdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgVHJhbnNsaXRlcmF0b3JQYXJzZXIgcGFyc2VyID0gbmV3IFRyYW5zbGl0ZXJhdG9yUGFyc2VyKCk7CisgICAgICAgIHBhcnNlci5wYXJzZShydWxlcywgZGlyZWN0aW9uKTsKKyAgICAgICAgaWYgKHBhcnNlci5pZEJsb2NrVmVjdG9yLnNpemUoKSAhPSAwIHx8CisgICAgICAgICAgICBwYXJzZXIuY29tcG91bmRGaWx0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiOjpJRCBibG9ja3MgaWxsZWdhbCBpbiBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvciBjb25zdHJ1Y3RvciIpOworICAgICAgICB9CisKKyAgICAgICAgZGF0YSA9IChEYXRhKXBhcnNlci5kYXRhVmVjdG9yLmdldCgwKTsKKyAgICAgICAgc2V0TWF4aW11bUNvbnRleHRMZW5ndGgoZGF0YS5ydWxlU2V0LmdldE1heGltdW1Db250ZXh0TGVuZ3RoKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgdHJhbnNsaXRlcmF0b3IgZnJvbSB0aGUgZ2l2ZW4gcnVsZXMgaW4gdGhlCisgICAgICogPGNvZGU+Rk9SV0FSRDwvY29kZT4gZGlyZWN0aW9uLgorICAgICAqIEBwYXJhbSBydWxlcyBydWxlcywgc2VwYXJhdGVkIGJ5ICc7JworICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHJ1bGVzIGFyZSBtYWxmb3JtZWQKKyAgICAgKiBvciBkaXJlY3Rpb24gaXMgaW52YWxpZC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBTdHJpbmcgcnVsZXMpIHsKKyAgICAgICAgdGhpcyhJRCwgcnVsZXMsIEZPUldBUkQsIG51bGwpOworICAgIH0KKworICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgRGF0YSBkYXRhLCBVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBzdXBlcihJRCwgZmlsdGVyKTsKKyAgICAgICAgdGhpcy5kYXRhID0gZGF0YTsKKyAgICAgICAgc2V0TWF4aW11bUNvbnRleHRMZW5ndGgoZGF0YS5ydWxlU2V0LmdldE1heGltdW1Db250ZXh0TGVuZ3RoKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByb3RlY3RlZCBzeW5jaHJvbml6ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBpbmRleCwgYm9vbGVhbiBpbmNyZW1lbnRhbCkgeworICAgICAgICAvKiBXZSBrZWVwIHN0YXJ0IGFuZCBsaW1pdCBmaXhlZCB0aGUgZW50aXJlIHRpbWUsCisgICAgICAgICAqIHJlbGF0aXZlIHRvIHRoZSB0ZXh0IC0tIGxpbWl0IG1heSBtb3ZlIG51bWVyaWNhbGx5IGlmIHRleHQgaXMKKyAgICAgICAgICogaW5zZXJ0ZWQgb3IgcmVtb3ZlZC4gIFRoZSBjdXJzb3IgbW92ZXMgZnJvbSBzdGFydCB0byBsaW1pdCwgd2l0aAorICAgICAgICAgKiByZXBsYWNlbWVudHMgaGFwcGVuaW5nIHVuZGVyIGl0LgorICAgICAgICAgKgorICAgICAgICAgKiBFeGFtcGxlOiBydWxlcyAxLiBhYj54fHkKKyAgICAgICAgICogICAgICAgICAgICAgICAgMi4geWM+egorICAgICAgICAgKgorICAgICAgICAgKiB8ZWFiY2QgICBzdGFydCAtIG5vIG1hdGNoLCBhZHZhbmNlIGN1cnNvcgorICAgICAgICAgKiBlfGFiY2QgICBtYXRjaCBydWxlIDEgLSBjaGFuZ2UgdGV4dCAmIGFkanVzdCBjdXJzb3IKKyAgICAgICAgICogZXh8eWNkICAgbWF0Y2ggcnVsZSAyIC0gY2hhbmdlIHRleHQgJiBhZGp1c3QgY3Vyc29yCisgICAgICAgICAqIGV4enxkICAgIG5vIG1hdGNoLCBhZHZhbmNlIGN1cnNvcgorICAgICAgICAgKiBleHpkfCAgICBkb25lCisgICAgICAgICAqLworCisgICAgICAgIC8qIEEgcnVsZSBsaWtlCisgICAgICAgICAqICAgYT5ifGEKKyAgICAgICAgICogY3JlYXRlcyBhbiBpbmZpbml0ZSBsb29wLiBUbyBwcmV2ZW50IHRoYXQsIHdlIHB1dCBhbiBhcmJpdHJhcnkKKyAgICAgICAgICogbGltaXQgb24gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIHRoYXQgd2UgdGFrZSwgb25lIHRoYXQgaXMKKyAgICAgICAgICogaGlnaCBlbm91Z2ggdGhhdCBhbnkgcmVhc29uYWJsZSBydWxlcyBhcmUgb2ssIGJ1dCBsb3cgZW5vdWdoIHRvCisgICAgICAgICAqIHByZXZlbnQgYSBzZXJ2ZXIgZnJvbSBoYW5naW5nLiAgVGhlIGxpbWl0IGlzIDE2IHRpbWVzIHRoZQorICAgICAgICAgKiBudW1iZXIgb2YgY2hhcmFjdGVycyBuLCB1bmxlc3MgbiBpcyBzbyBsYXJnZSB0aGF0IDE2biBleGNlZWRzIGEKKyAgICAgICAgICogdWludDMyX3QuCisgICAgICAgICAqLworICAgICAgICBpbnQgbG9vcENvdW50ID0gMDsKKyAgICAgICAgaW50IGxvb3BMaW1pdCA9IChpbmRleC5saW1pdCAtIGluZGV4LnN0YXJ0KSA8PCA0OworICAgICAgICBpZiAobG9vcExpbWl0IDwgMCkgeworICAgICAgICAgICAgbG9vcExpbWl0ID0gMHg3RkZGRkZGRjsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlIChpbmRleC5zdGFydCA8IGluZGV4LmxpbWl0ICYmCisgICAgICAgICAgICAgICBsb29wQ291bnQgPD0gbG9vcExpbWl0ICYmCisgICAgICAgICAgICAgICBkYXRhLnJ1bGVTZXQudHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgaW5jcmVtZW50YWwpKSB7CisgICAgICAgICAgICArK2xvb3BDb3VudDsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgc3RhdGljIGNsYXNzIERhdGEgeworICAgICAgICBwdWJsaWMgRGF0YSgpIHsKKyAgICAgICAgICAgIHZhcmlhYmxlTmFtZXMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgICAgICBydWxlU2V0ID0gbmV3IFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSdWxlIHRhYmxlLiAgTWF5IGJlIGVtcHR5LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQgcnVsZVNldDsKKworICAgICAgICAvKioKKyAgICAgICAgICogTWFwIHZhcmlhYmxlIG5hbWUgKFN0cmluZykgdG8gdmFyaWFibGUgKGNoYXJbXSkuICBBIHZhcmlhYmxlIG5hbWUKKyAgICAgICAgICogY29ycmVzcG9uZHMgdG8gemVybyBvciBtb3JlIGNoYXJhY3RlcnMsIHN0b3JlZCBpbiBhIGNoYXJbXSBhcnJheSBpbgorICAgICAgICAgKiB0aGlzIGhhc2guICBPbmUgb3IgbW9yZSBvZiB0aGVzZSBjaGFycyBtYXkgYWxzbyBjb3JyZXNwb25kIHRvIGEKKyAgICAgICAgICogVW5pY29kZVNldCwgaW4gd2hpY2ggY2FzZSB0aGUgY2hhcmFjdGVyIGluIHRoZSBjaGFyW10gaW4gdGhpcyBoYXNoIGlzCisgICAgICAgICAqIGEgc3RhbmQtaW46IGl0IGlzIGFuIGluZGV4IGZvciBhIHNlY29uZGFyeSBsb29rdXAgaW4KKyAgICAgICAgICogZGF0YS52YXJpYWJsZXMuICBUaGUgc3RhbmQtaW4gYWxzbyByZXByZXNlbnRzIHRoZSBVbmljb2RlU2V0IGluCisgICAgICAgICAqIHRoZSBzdG9yZWQgcnVsZXMuCisgICAgICAgICAqLworICAgICAgICBIYXNodGFibGUgdmFyaWFibGVOYW1lczsKKworICAgICAgICAvKioKKyAgICAgICAgICogTWFwIGNhdGVnb3J5IHZhcmlhYmxlIChDaGFyYWN0ZXIpIHRvIFVuaWNvZGVNYXRjaGVyIG9yIFVuaWNvZGVSZXBsYWNlci4KKyAgICAgICAgICogVmFyaWFibGVzIHRoYXQgY29ycmVzcG9uZCB0byBhIHNldCBvZiBjaGFyYWN0ZXJzIGFyZSBtYXBwZWQKKyAgICAgICAgICogZnJvbSB2YXJpYWJsZSBuYW1lIHRvIGEgc3RhbmQtaW4gY2hhcmFjdGVyIGluIGRhdGEudmFyaWFibGVOYW1lcy4KKyAgICAgICAgICogVGhlIHN0YW5kLWluIHRoZW4gc2VydmVzIGFzIGEga2V5IGluIHRoaXMgaGFzaCB0byBsb29rdXAgdGhlCisgICAgICAgICAqIGFjdHVhbCBVbmljb2RlU2V0IG9iamVjdC4gIEluIGFkZGl0aW9uLCB0aGUgc3RhbmQtaW4gaXMKKyAgICAgICAgICogc3RvcmVkIGluIHRoZSBydWxlIHRleHQgdG8gcmVwcmVzZW50IHRoZSBzZXQgb2YgY2hhcmFjdGVycy4KKyAgICAgICAgICogdmFyaWFibGVzW2ldIHJlcHJlc2VudHMgY2hhcmFjdGVyICh2YXJpYWJsZXNCYXNlICsgaSkuCisgICAgICAgICAqLworICAgICAgICBPYmplY3RbXSB2YXJpYWJsZXM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBjaGFyYWN0ZXIgdGhhdCByZXByZXNlbnRzIHZhcmlhYmxlc1swXS4gIENoYXJhY3RlcnMKKyAgICAgICAgICogdmFyaWFibGVzQmFzZSB0aHJvdWdoIHZhcmlhYmxlc0Jhc2UgKworICAgICAgICAgKiB2YXJpYWJsZXMubGVuZ3RoIC0gMSByZXByZXNlbnQgVW5pY29kZVNldCBvYmplY3RzLgorICAgICAgICAgKi8KKyAgICAgICAgY2hhciB2YXJpYWJsZXNCYXNlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdGhlIFVuaWNvZGVNYXRjaGVyIHJlcHJlc2VudGVkIGJ5IHRoZSBnaXZlbiBjaGFyYWN0ZXIsIG9yCisgICAgICAgICAqIG51bGwgaWYgbm9uZS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBVbmljb2RlTWF0Y2hlciBsb29rdXBNYXRjaGVyKGludCBzdGFuZEluKSB7CisgICAgICAgICAgICBpbnQgaSA9IHN0YW5kSW4gLSB2YXJpYWJsZXNCYXNlOworICAgICAgICAgICAgcmV0dXJuIChpID49IDAgJiYgaSA8IHZhcmlhYmxlcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgPyAoVW5pY29kZU1hdGNoZXIpIHZhcmlhYmxlc1tpXSA6IG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBVbmljb2RlUmVwbGFjZXIgcmVwcmVzZW50ZWQgYnkgdGhlIGdpdmVuIGNoYXJhY3Rlciwgb3IKKyAgICAgICAgICogbnVsbCBpZiBub25lLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFVuaWNvZGVSZXBsYWNlciBsb29rdXBSZXBsYWNlcihpbnQgc3RhbmRJbikgeworICAgICAgICAgICAgaW50IGkgPSBzdGFuZEluIC0gdmFyaWFibGVzQmFzZTsKKyAgICAgICAgICAgIHJldHVybiAoaSA+PSAwICYmIGkgPCB2YXJpYWJsZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgID8gKFVuaWNvZGVSZXBsYWNlcikgdmFyaWFibGVzW2ldIDogbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcmVwcmVzZW50YXRpb24gb2YgdGhpcyB0cmFuc2xpdGVyYXRvciBhcyBzb3VyY2UgcnVsZXMuCisgICAgICogVGhlc2UgcnVsZXMgd2lsbCBwcm9kdWNlIGFuIGVxdWl2YWxlbnQgdHJhbnNsaXRlcmF0b3IgaWYgdXNlZAorICAgICAqIHRvIGNvbnN0cnVjdCBhIG5ldyB0cmFuc2xpdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gZXNjYXBlVW5wcmludGFibGUgaWYgVFJVRSB0aGVuIGNvbnZlcnQgdW5wcmludGFibGUKKyAgICAgKiBjaGFyYWN0ZXIgdG8gdGhlaXIgaGV4IGVzY2FwZSByZXByZXNlbnRhdGlvbnMsIFxcdXh4eHggb3IKKyAgICAgKiBcXFV4eHh4eHh4eC4gIFVucHJpbnRhYmxlIGNoYXJhY3RlcnMgYXJlIHRob3NlIG90aGVyIHRoYW4KKyAgICAgKiBVKzAwMEEsIFUrMDAyMC4uVSswMDdFLgorICAgICAqIEByZXR1cm4gcnVsZXMgc3RyaW5nCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1J1bGVzKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgcmV0dXJuIGRhdGEucnVsZVNldC50b1J1bGVzKGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBtb2RpZmllZCBieSB0aGlzCisgICAgICogVHJhbnNsaXRlcmF0b3IsIGlnbm9yaW5nIHRoZSBlZmZlY3Qgb2Ygb3VyIGZpbHRlci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVW5pY29kZVNldCBoYW5kbGVHZXRTb3VyY2VTZXQoKSB7CisgICAgICAgIHJldHVybiBkYXRhLnJ1bGVTZXQuZ2V0U291cmNlVGFyZ2V0U2V0KGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgZ2VuZXJhdGVkIGFzCisgICAgICogcmVwbGFjZW1lbnQgdGV4dCBieSB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldFRhcmdldFNldCgpIHsKKyAgICAgICAgcmV0dXJuIGRhdGEucnVsZVNldC5nZXRTb3VyY2VUYXJnZXRTZXQodHJ1ZSk7CisgICAgfQorfQorCisvKioKKyAqIFJldmlzaW9uIDEuNjEgIDIwMDQvMDIvMjUgMDE6MjY6MjMgIGFsYW4KKyAqIGppdHRlcmJ1ZyAzNTE3OiBtYWtlIGNvbmNyZXRlIHRyYW5zaWx0ZXJhdG9ycyBwYWNrYWdlIHByaXZhdGUgYW5kIEBpbnRlcm5hbAorICoKKyAqIFJldmlzaW9uIDEuNjAgIDIwMDMvMDYvMDMgMTg6NDk6MzUgIGFsYW4KKyAqIGppdHRlcmJ1ZyAyOTU5OiB1cGRhdGUgY29weXJpZ2h0IGRhdGVzIHRvIGluY2x1ZGUgMjAwMworICoKKyAqIFJldmlzaW9uIDEuNTkgIDIwMDMvMDUvMTQgMTk6MDM6MzAgIHJ2aXN3YW5hZGhhCisgKiBqaXR0ZXJidWcgMjgzNjogZml4IGNvbXBpbGVyIHdhcm5pbmdzCisgKgorICogUmV2aXNpb24gMS41OCAgMjAwMi8xMi8wMyAxODo1NzozNiAgYWxhbgorICogaml0dGVyYnVnIDIwODc6IGZpeCBAIHRhZ3MKKyAqCisgKiBSZXZpc2lvbiAxLjU3ICAyMDAyLzA3LzI2IDIxOjEyOjM2ICBhbGFuCisgKiBqaXR0ZXJidWcgMTk5NzogdXNlIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCkgaW4gcGFyc2VycworICoKKyAqIFJldmlzaW9uIDEuNTYgIDIwMDIvMDYvMjggMTk6MTU6NTIgIGFsYW4KKyAqIGppdHRlcmJ1ZyAxNDM0OiBpbXByb3ZlIG1ldGhvZCBuYW1lczsgbWlub3IgY2xlYW51cAorICoKKyAqIFJldmlzaW9uIDEuNTUgIDIwMDIvMDYvMjYgMTg6MTI6MzkgIGFsYW4KKyAqIGppdHRlcmJ1ZyAxNDM0OiBpbml0aWFsIHB1YmxpYyBpbXBsZW1lbnRhdGlvbiBvZiBnZXRTb3VyY2VTZXQgYW5kIGdldFRhcmdldFNldAorICoKKyAqIFJldmlzaW9uIDEuNTQgIDIwMDIvMDIvMjUgMjI6NDM6NTggIHJhbQorICogTW92ZSBVdGlsaXR5IGNsYXNzIHRvIGljdS5pbXBsCisgKgorICogUmV2aXNpb24gMS41MyAgMjAwMi8wMi8xNiAwMzowNjoxMyAgTW9oYW4KKyAqIElDVTRKIHJlb3JnYW5pemF0aW9uCisgKgorICogUmV2aXNpb24gMS41MiAgMjAwMi8wMi8wNyAwMDo1Mzo1NCAgYWxhbgorICogaml0dGVyYnVnIDEyMzQ6IG1ha2Ugb3V0cHV0IHNpZGUgb2YgUkJUcyBvYmplY3Qtb3JpZW50ZWQ7IHJld3JpdGUgSUQgcGFyc2VycyBhbmQgbW9kdWxhcml6ZSB0aGVtOyBpbXBsZW1lbnQgJkFueS1Mb3dlcigpIHN1cHBvcnQKKyAqCisgKiBSZXZpc2lvbiAxLjUxICAyMDAxLzExLzI5IDIyOjMxOjE4ICBhbGFuCisgKiBqaXR0ZXJidWcgMTU2MDogYWRkIHNvdXJjZS1zZXQgbWV0aG9kcyBhbmQgVHJhbnNsaXRlcmF0b3JVdGlsaXR5IGNsYXNzCisgKgorICogUmV2aXNpb24gMS41MCAgMjAwMS8xMS8yNyAyMjowNzozMyAgYWxhbgorICogaml0dGVyYnVnIDEzODk6IGluY29ycG9yYXRlIE1hcmsncyByZXZpZXcgY29tbWVudHMgLSBjb21tZW50cyBvbmx5CisgKgorICogUmV2aXNpb24gMS40OSAgMjAwMS8xMC8xMCAyMDoyNjoyNyAgYWxhbgorICogaml0dGVyYnVnIDgxOiBpbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIGNvbXBvdW5kIGZpbHRlcnMgaW4gSURzIGFuZCA6OklEIGJsb2NrcworICoKKyAqIFJldmlzaW9uIDEuNDggIDIwMDEvMTAvMDUgMTg6MTU6NTQgIGFsYW4KKyAqIGppdHRlcmJ1ZyA3NDogZmluaXNoIHBvcnQgb2YgU291cmNlLVRhcmdldC9WYXJpYW50IGNvZGUgaW5jbC4gVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSBhbmQgdGVzdHMKKyAqCisgKiBSZXZpc2lvbiAxLjQ3ICAyMDAxLzEwLzAzIDAwOjE0OjIyICBhbGFuCisgKiBqaXR0ZXJidWcgNzM6IGZpbmlzaCBxdWFudGlmaWVyIGFuZCBzdXBwbGVtZW50YWwgY2hhciBzdXBwb3J0CisgKgorICogUmV2aXNpb24gMS40NiAgMjAwMS8wOS8yNiAxODowMDowNiAgYWxhbgorICogaml0dGVyYnVnIDY3OiBzeW5jIHBhcnNlciB3aXRoIGljdTRjLCBhbGxvdyB1bmxpbWl0ZWQsIG5lc3RlZCBzZWdtZW50cworICoKKyAqIFJldmlzaW9uIDEuNDUgIDIwMDEvMDkvMjQgMTk6NTc6MTcgIGFsYW4KKyAqIGppdHRlcmJ1ZyA2MDogaW1wbGVtZW50IHRvUGF0dGVybiBpbiBVbmljb2RlU2V0OyB1cGRhdGUgVW5pY29kZUZpbHRlci5jb250YWlucyB0byB0YWtlIGFuIGludDsgdXBkYXRlIFVuaWNvZGVTZXQgdG8gc3VwcG9ydCBjb2RlIHBvaW50cyB0byBVKzEwRkZGRgorICoKKyAqIFJldmlzaW9uIDEuNDQgIDIwMDEvMDkvMjEgMjE6MjQ6MDQgIGFsYW4KKyAqIGppdHRlcmJ1ZyA2NDogYWxsb3cgOjpJRCBibG9ja3MgaW4gcnVsZXMKKyAqCisgKiBSZXZpc2lvbiAxLjQzICAyMDAxLzA5LzE5IDE3OjQzOjM3ICBhbGFuCisgKiBqaXR0ZXJidWcgNjA6IGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdG9SdWxlcygpCisgKgorICogUmV2aXNpb24gMS40MiAgMjAwMS8wMi8yMCAxNzo1OTo0MCAgYWxhbjRqCisgKiBSZW1vdmUgYmFja3NsYXNoLXUgZnJvbSBsb2cKKyAqCisgKiBSZXZpc2lvbiAxLjQxICAyMDAxLzAyLzE2IDE4OjUzOjU1ICBhbGFuNGoKKyAqIEhhbmRsZSBiYWNrc2xhc2gtdSBlc2NhcGVzCisgKgorICogUmV2aXNpb24gMS40MCAgMjAwMS8wMi8wMyAwMDo0NjoyMSAgYWxhbjRqCisgKiBMb2FkIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yIGZpbGVzIGZyb20gVVRGOCBmaWxlcyBpbnN0ZWFkIG9mIFJlc291cmNlQnVuZGxlcworICoKKyAqIFJldmlzaW9uIDEuMzkgIDIwMDAvMDgvMzEgMTc6MTE6NDIgIGFsYW40agorICogSW1wbGVtZW50IGFuY2hvcnMuCisgKgorICogUmV2aXNpb24gMS4zOCAgMjAwMC8wOC8zMCAyMDo0MDozMCAgYWxhbjRqCisgKiBJbXBsZW1lbnQgYW5jaG9ycy4KKyAqCisgKiBSZXZpc2lvbiAxLjM3ICAyMDAwLzA3LzEyIDE2OjMxOjM2ICBhbGFuNGoKKyAqIFNpbXBsaWZ5IGxvb3AgbGltaXQgbG9naWMKKyAqCisgKiBSZXZpc2lvbiAxLjM2ICAyMDAwLzA2LzI5IDIxOjU5OjIzICBhbGFuNGoKKyAqIEZpeCBoYW5kbGluZyBvZiBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBmaWVsZHMKKyAqCisgKiBSZXZpc2lvbiAxLjM1ICAyMDAwLzA2LzI4IDIwOjQ5OjU0ICBhbGFuNGoKKyAqIEZpeCBoYW5kbGluZyBvZiBQb3NpdGlvbnMgZmllbGRzCisgKgorICogUmV2aXNpb24gMS4zNCAgMjAwMC8wNi8yOCAyMDozNjozMiAgYWxhbjRqCisgKiBDbGVhbiB1cCBUcmFuc2xpdGVyYXRvcjo6UG9zaXRpb24gLSByZW5hbWUgdGVtcG9yYXJ5IG5hbWVzCisgKgorICogUmV2aXNpb24gMS4zMyAgMjAwMC8wNi8yOCAyMDozMTo0MyAgYWxhbjRqCisgKiBDbGVhbiB1cCBUcmFuc2xpdGVyYXRvcjo6UG9zaXRpb24gYW5kIHJlbmFtZSBmaWVsZHMgKHJlbGF0ZWQgdG8gaml0dGVyYnVnIDQ1MCkKKyAqCisgKiBSZXZpc2lvbiAxLjMyICAyMDAwLzA1LzI0IDIyOjIxOjAwICBhbGFuNGoKKyAqIENvbXBhY3QgVW5pY29kZVNldHMKKyAqCisgKiBSZXZpc2lvbiAxLjMxICAyMDAwLzA1LzIzIDE2OjQ4OjI3ICBhbGFuNGoKKyAqIEZpeCBkb2M7IHJlbW92ZSB1bnVzZWQgYXV0bworICoKKyAqIFJldmlzaW9uIDEuMzAgIDIwMDAvMDUvMTggMjI6NDk6NTEgIGFsYW4KKyAqIFVwZGF0ZSBkb2NzCisgKgorICogUmV2aXNpb24gMS4yOSAgMjAwMC8wNC8yOCAwMDoyNTo0MiAgYWxhbgorICogSW1wcm92ZSBlcnJvciByZXBvcnRpbmcKKyAqCisgKiBSZXZpc2lvbiAxLjI4ICAyMDAwLzA0LzI1IDE3OjM4OjAwICBhbGFuCisgKiBNaW5vciBwYXJzZXIgY2xlYW51cC4KKyAqCisgKiBSZXZpc2lvbiAxLjI3ICAyMDAwLzA0LzI1IDAxOjQyOjU4ICBhbGFuCisgKiBBbGxvdyBhcmJpdHJhcnkgbGVuZ3RoIHZhcmlhYmxlIHZhbHVlcy4gQ2xlYW4gdXAgRGF0YSBBUEkuIFVwZGF0ZSBqYXZhZG9jcy4KKyAqCisgKiBSZXZpc2lvbiAxLjI2ICAyMDAwLzA0LzIyIDAxOjI1OjEwICBhbGFuCisgKiBBZGQgc3VwcG9ydCBmb3IgY3Vyc29yIHBvc2l0aW9uZXIgJ0AnOyB1cGRhdGUgamF2YWRvYworICoKKyAqIFJldmlzaW9uIDEuMjUgIDIwMDAvMDQvMjIgMDA6MDg6NDMgIGFsYW4KKyAqIE5hcnJvdyByYW5nZSB0byAyMSAtIDdFIGZvciBtYW5kYXRvcnkgcXVvdGluZy4KKyAqCisgKiBSZXZpc2lvbiAxLjI0ICAyMDAwLzA0LzIyIDAwOjAzOjU0ICBhbGFuCisgKiBEaXNhbGxvdyB1bnF1b3RlZCBzcGVjaWFsIGNoYXJzLiBSZXBvcnQgbXVsdGlwbGUgZXJyb3JzIGF0IG9uY2UuCisgKgorICogUmV2aXNpb24gMS4yMyAgMjAwMC8wNC8yMSAyMjoyMzo0MCAgYWxhbgorICogQ2xlYW4gdXAgcGFyc2VSZWZlcmVuY2UuIFByZXZpb3VzIGxvZyBzaG91bGQgcmVhZCAnZGVsZWdhdGUnLCBub3QgJ2RlbGV0ZScuCisgKgorICogUmV2aXNpb24gMS4yMiAgMjAwMC8wNC8yMSAyMjoxNjoyOSAgYWxhbgorICogRGVsZXRlIHZhcmlhYmxlIG5hbWUgcGFyc2luZyB0byBTeW1ib2xUYWJsZSBpbnRlcmZhY2UgdG8gY29uc29saWRhdGUgcGFyc2luZyBjb2RlLgorICoKKyAqIFJldmlzaW9uIDEuMjEgIDIwMDAvMDQvMjEgMjE6MTY6NDAgIGFsYW4KKyAqIE1vZGlmeSBydWxlIHN5bnRheAorICoKKyAqIFJldmlzaW9uIDEuMjAgIDIwMDAvMDQvMTkgMTc6MzU6MjMgIGFsYW4KKyAqIFVwZGF0ZSBqYXZhZG9jOyBmaXggY29tcGlsZSBlcnJvcgorICoKKyAqIFJldmlzaW9uIDEuMTkgIDIwMDAvMDQvMTkgMTY6MzQ6MTggIGFsYW4KKyAqIEFkZCBzZWdtZW50IHN1cHBvcnQuCisgKgorICogUmV2aXNpb24gMS4xOCAgMjAwMC8wNC8xMiAyMDoxNzo0NSAgYWxhbgorICogRGVsZWdhdGUgcmVwbGFjZSBvcGVyYXRpb24gdG8gcnVsZSBvYmplY3QKKyAqCisgKiBSZXZpc2lvbiAxLjE3ICAyMDAwLzAzLzEwIDA0OjA3OjIzICBqb2huZgorICogQ29weXJpZ2h0IHVwZGF0ZQorICoKKyAqIFJldmlzaW9uIDEuMTYgIDIwMDAvMDIvMjQgMjA6NDY6NDkgIGxpdQorICogQWRkIGluZmluaXRlIGxvb3AgY2hlY2sKKyAqCisgKiBSZXZpc2lvbiAxLjE1ICAyMDAwLzAyLzEwIDA3OjM2OjI1ICBqb2huZgorICogZml4ZWQgaW1wb3J0cyBmb3IgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5CisgKgorICogUmV2aXNpb24gMS4xNCAgMjAwMC8wMi8wMyAxODoxODo0MiAgQWxhbgorICogVXNlIGFycmF5IHJhdGhlciB0aGFuIGhhc2h0YWJsZSBmb3IgY2hhci10by1zZXQgbWFwCisgKgorICogUmV2aXNpb24gMS4xMyAgMjAwMC8wMS8yNyAxODo1OToxOSAgQWxhbgorICogVXNlIFBvc2l0aW9uIHJhdGhlciB0aGFuIGludFtdIGFuZCBtb3ZlIGFsbCBzdWJjbGFzcyBvdmVycmlkZXMgdG8gb25lIG1ldGhvZCAoaGFuZGxlVHJhbnNsaXRlcmF0ZSkKKyAqCisgKiBSZXZpc2lvbiAxLjEyICAyMDAwLzAxLzE4IDE3OjUxOjA5ICBBbGFuCisgKiBSZW1vdmUgImtleWJvYXJkIiBmcm9tIG1ldGhvZCBuYW1lcy4gTWFrZSBtYXhpbXVtIGNvbnRleHQgYSBmaWVsZCBvZiBUcmFuc2xpdGVyYXRvciwgYW5kIGhhdmUgc3ViY2xhc3NlcyBzZXQgaXQuCisgKgorICogUmV2aXNpb24gMS4xMSAgMjAwMC8wMS8xOCAwMjozMDo0OSAgQWxhbgorICogQWRkIEphbW8tSGFuZ3VsLCBIYW5ndWwtSmFtbywgZml4IHJ1bGVzLCBhZGQgY29tcG91bmQgSUQgc3VwcG9ydAorICoKKyAqIFJldmlzaW9uIDEuMTAgIDIwMDAvMDEvMTMgMjM6NTM6MjMgIEFsYW4KKyAqIEZpeCBidWdzIGZvdW5kIGR1cmluZyBJQ1UgcG9ydAorICoKKyAqIFJldmlzaW9uIDEuOSAgMjAwMC8wMS8xMSAwNDoxMjowNiAgQWxhbgorICogQ2xlYW51cCwgZW1iZWxsaXNoIGNvbW1lbnRzCisgKgorICogUmV2aXNpb24gMS44ICAyMDAwLzAxLzExIDAyOjI1OjAzICBBbGFuCisgKiBSZXdyaXRlIFVuaWNvZGVTZXQgYW5kIFJCVCBwYXJzZXJzIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UgYW5kIG5ldyBzeW50YXgKKyAqCisgKiBSZXZpc2lvbiAxLjcgIDIwMDAvMDEvMDYgMDE6MzY6MzYgIEFsYW4KKyAqIEFsbG93IHN0cmluZyBhcnJheXMgaW4gcnVsZSByZXNvdXJjZSBidW5kbGVzCisgKgorICogUmV2aXNpb24gMS42ICAyMDAwLzAxLzA0IDIxOjQzOjU3ICBBbGFuCisgKiBBZGQgcnVsZSBpbmRleGluZywgYW5kIG1vdmUgbWFza2luZyBjaGVjayB0byBUcmFuc2xpdGVyYXRpb25SdWxlU2V0LgorICoKKyAqIFJldmlzaW9uIDEuNSAgMTk5OS8xMi8yMiAwMTo0MDo1NCAgQWxhbgorICogQ29uc29saWRhdGUgcnVsZSBwYXR0ZXJuIGFudGVDb250ZXh0LCBrZXksIGFuZCBwb3N0Q29udGV4dCBpbnRvIG9uZSBzdHJpbmcuCisgKgorICogUmV2aXNpb24gMS40ICAxOTk5LzEyLzIyIDAxOjA1OjU0ICBBbGFuCisgKiBJbXByb3ZlIG1hc2tpbmcgY2hlY2tpbmc7IHR1cm4gaXQgb2ZmIGJ5IGRlZmF1bHQsIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UKKyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU0NTVS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU0NTVS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmEzODA5OTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TQ1NVLmphdmEKQEAgLTAsMCArMSwxODQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiBBbiBpbnRlcmZhY2UgZGVmaW5pbmcgIGNvbnN0YW50cyBmb3IgdGhlIFN0YW5kYXJkIENvbXByZXNzaW9uIFNjaGVtZQorICogZm9yIFVuaWNvZGUgKFNDU1UpIGFzIG91dGxpbmVkIGluIDxBCisgKiBIUkVGPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjYiPlVuaWNvZGUgVGVjaG5pY2FsCisgKiBSZXBvcnQgIzY8L0E+LgorICoKKyAqIEBhdXRob3IgU3RlcGhlbiBGLiBCb290aAorICogQHZlcnNpb24gMS4xIDA1IEF1ZyA5OQorICogQHZlcnNpb24gMS4wIDI2IEp1bCA5OQorICovCitpbnRlcmZhY2UgU0NTVQoreworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBHZW5lcmljIHdpbmRvdyBzaGlmdAorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IENPTVBSRVNTSU9OT0ZGU0VUICAgICAgICAgICA9IDB4ODA7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gTnVtYmVyIG9mIHdpbmRvd3MKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBOVU1XSU5ET1dTICAgICAgICAgICAgICAgICAgPSA4OworICAgIGZpbmFsIHN0YXRpYyBpbnQgTlVNU1RBVElDV0lORE9XUyAgICAgICAgICAgID0gODsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBJbmRpY2F0ZXMgYSB3aW5kb3cgaW5kZXggaXMgaW52YWxpZAorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IElOVkFMSURXSU5ET1cgICAgICAgICAgICAgICA9IC0xOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEluZGljYXRlcyBhIGNoYXJhY3RlciBkb2Vzbid0IGV4aXN0IGluIGlucHV0IChwYXN0IGVuZCBvZiBidWZmZXIpCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIGZpbmFsIHN0YXRpYyBpbnQgSU5WQUxJRENIQVIgICAgICAgICAgICAgICAgID0gLTE7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ29tcHJlc3Npb24gbW9kZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBTSU5HTEVCWVRFTU9ERSAgICAgICAgICAgICAgPSAwOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVU5JQ09ERU1PREUgICAgICAgICAgICAgICAgID0gMTsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBNYXhpbXVtIHZhbHVlIGZvciBhIHdpbmRvdydzIGluZGV4CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIGZpbmFsIHN0YXRpYyBpbnQgTUFYSU5ERVggICAgICAgICAgICAgICAgICAgID0gMHhGRjsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBSZXNlcnZlZCBpbmRleCB2YWx1ZSAoY2hhcmFjdGVycyBiZWxvbmdzIHRvIGZpcnN0IGJsb2NrKQorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IFJFU0VSVkVESU5ERVggICAgICAgICAgICAgICA9IDB4MDA7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gSW5kaWNlcyBmb3Igc2NyaXB0cyB3aGljaCBjcm9zcyBhIGhhbGYtYmxvY2sgYm91bmRhcnkKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgZmluYWwgc3RhdGljIGludCBMQVRJTklOREVYICAgICAgICAgICAgICAgICAgPSAweEY5OworICAgIGZpbmFsIHN0YXRpYyBpbnQgSVBBRVhURU5TSU9OSU5ERVggICAgICAgICAgID0gMHhGQTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IEdSRUVLSU5ERVggICAgICAgICAgICAgICAgICA9IDB4RkI7CisgICAgZmluYWwgc3RhdGljIGludCBBUk1FTklBTklOREVYICAgICAgICAgICAgICAgPSAweEZDOworICAgIGZpbmFsIHN0YXRpYyBpbnQgSElSQUdBTkFJTkRFWCAgICAgICAgICAgICAgID0gMHhGRDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IEtBVEFLQU5BSU5ERVggICAgICAgICAgICAgICA9IDB4RkU7CisgICAgZmluYWwgc3RhdGljIGludCBIQUxGV0lEVEhLQVRBS0FOQUlOREVYICAgICAgPSAweEZGOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFNpbmdsZS1ieXRlIG1vZGUgdGFncworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkVYICAgICAgICAgICAgICAgICAgICA9IDB4MEI7CisgICAgZmluYWwgc3RhdGljIGludCBTUkVTRVJWRUQgICAgICAgICAgICAgICAgICAgPSAweDBDOyAgLy8gcmVzZXJ2ZWQgdmFsdWUKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URVUgICAgICAgICAgICAgICAgICAgICA9IDB4MEU7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFVSAgICAgICAgICAgICAgICAgICAgPSAweDBGOworCisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEUwICAgICAgICAgICAgICAgICAgICAgPSAweDAxOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFMSAgICAgICAgICAgICAgICAgICAgID0gMHgwMjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTIgICAgICAgICAgICAgICAgICAgICA9IDB4MDM7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEUzICAgICAgICAgICAgICAgICAgICAgPSAweDA0OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNCAgICAgICAgICAgICAgICAgICAgID0gMHgwNTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNRVU9URTUgICAgICAgICAgICAgICAgICAgICA9IDB4MDY7CisgICAgZmluYWwgc3RhdGljIGludCBTUVVPVEU2ICAgICAgICAgICAgICAgICAgICAgPSAweDA3OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU1FVT1RFNyAgICAgICAgICAgICAgICAgICAgID0gMHgwODsKKworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTAgICAgICAgICAgICAgICAgICAgID0gMHgxMDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0UxICAgICAgICAgICAgICAgICAgICA9IDB4MTE7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFMiAgICAgICAgICAgICAgICAgICAgPSAweDEyOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTMgICAgICAgICAgICAgICAgICAgID0gMHgxMzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0U0ICAgICAgICAgICAgICAgICAgICA9IDB4MTQ7CisgICAgZmluYWwgc3RhdGljIGludCBTQ0hBTkdFNSAgICAgICAgICAgICAgICAgICAgPSAweDE1OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0NIQU5HRTYgICAgICAgICAgICAgICAgICAgID0gMHgxNjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNDSEFOR0U3ICAgICAgICAgICAgICAgICAgICA9IDB4MTc7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUwICAgICAgICAgICAgICAgICAgICA9IDB4MTg7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FMSAgICAgICAgICAgICAgICAgICAgPSAweDE5OworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTIgICAgICAgICAgICAgICAgICAgID0gMHgxQTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkUzICAgICAgICAgICAgICAgICAgICA9IDB4MUI7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FNCAgICAgICAgICAgICAgICAgICAgPSAweDFDOworICAgIGZpbmFsIHN0YXRpYyBpbnQgU0RFRklORTUgICAgICAgICAgICAgICAgICAgID0gMHgxRDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFNERUZJTkU2ICAgICAgICAgICAgICAgICAgICA9IDB4MUU7CisgICAgZmluYWwgc3RhdGljIGludCBTREVGSU5FNyAgICAgICAgICAgICAgICAgICAgPSAweDFGOworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIFVuaWNvZGUgbW9kZSB0YWdzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTAgICAgICAgICAgICAgICAgICAgID0gMHhFMDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0UxICAgICAgICAgICAgICAgICAgICA9IDB4RTE7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFMiAgICAgICAgICAgICAgICAgICAgPSAweEUyOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTMgICAgICAgICAgICAgICAgICAgID0gMHhFMzsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0U0ICAgICAgICAgICAgICAgICAgICA9IDB4RTQ7CisgICAgZmluYWwgc3RhdGljIGludCBVQ0hBTkdFNSAgICAgICAgICAgICAgICAgICAgPSAweEU1OworICAgIGZpbmFsIHN0YXRpYyBpbnQgVUNIQU5HRTYgICAgICAgICAgICAgICAgICAgID0gMHhFNjsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVDSEFOR0U3ICAgICAgICAgICAgICAgICAgICA9IDB4RTc7CisKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUwICAgICAgICAgICAgICAgICAgICA9IDB4RTg7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FMSAgICAgICAgICAgICAgICAgICAgPSAweEU5OworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTIgICAgICAgICAgICAgICAgICAgID0gMHhFQTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkUzICAgICAgICAgICAgICAgICAgICA9IDB4RUI7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FNCAgICAgICAgICAgICAgICAgICAgPSAweEVDOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORTUgICAgICAgICAgICAgICAgICAgID0gMHhFRDsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVERUZJTkU2ICAgICAgICAgICAgICAgICAgICA9IDB4RUU7CisgICAgZmluYWwgc3RhdGljIGludCBVREVGSU5FNyAgICAgICAgICAgICAgICAgICAgPSAweEVGOworCisgICAgZmluYWwgc3RhdGljIGludCBVUVVPVEVVICAgICAgICAgICAgICAgICAgICAgPSAweEYwOworICAgIGZpbmFsIHN0YXRpYyBpbnQgVURFRklORVggICAgICAgICAgICAgICAgICAgID0gMHhGMTsKKyAgICBmaW5hbCBzdGF0aWMgaW50IFVSRVNFUlZFRCAgICAgICAgICAgICAgICAgICA9IDB4RjI7ICAvLyByZXNlcnZlZCB2YWx1ZQorCisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ2xhc3MgdmFyaWFibGVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqIEZvciB3aW5kb3cgb2Zmc2V0IG1hcHBpbmcgKi8KKyAgICBmaW5hbCBzdGF0aWMgaW50IFtdIHNPZmZzZXRUYWJsZSA9IHsgCisgICAgICAgIC8vIHRhYmxlIGdlbmVyYXRlZCBieSBDb21wcmVzc2lvblRhYmxlR2VuZXJhdG9yCisgICAgICAgIDB4MCwgMHg4MCwgMHgxMDAsIDB4MTgwLCAweDIwMCwgMHgyODAsIDB4MzAwLCAweDM4MCwgMHg0MDAsCisgICAgMHg0ODAsIDB4NTAwLCAweDU4MCwgMHg2MDAsIDB4NjgwLCAweDcwMCwgMHg3ODAsIDB4ODAwLCAweDg4MCwKKyAgICAweDkwMCwgMHg5ODAsIDB4YTAwLCAweGE4MCwgMHhiMDAsIDB4YjgwLCAweGMwMCwgMHhjODAsIDB4ZDAwLAorICAgIDB4ZDgwLCAweGUwMCwgMHhlODAsIDB4ZjAwLCAweGY4MCwgMHgxMDAwLCAweDEwODAsIDB4MTEwMCwKKyAgICAweDExODAsIDB4MTIwMCwgMHgxMjgwLCAweDEzMDAsIDB4MTM4MCwgMHgxNDAwLCAweDE0ODAsCisgICAgMHgxNTAwLCAweDE1ODAsIDB4MTYwMCwgMHgxNjgwLCAweDE3MDAsIDB4MTc4MCwgMHgxODAwLAorICAgIDB4MTg4MCwgMHgxOTAwLCAweDE5ODAsIDB4MWEwMCwgMHgxYTgwLCAweDFiMDAsIDB4MWI4MCwKKyAgICAweDFjMDAsIDB4MWM4MCwgMHgxZDAwLCAweDFkODAsIDB4MWUwMCwgMHgxZTgwLCAweDFmMDAsCisgICAgMHgxZjgwLCAweDIwMDAsIDB4MjA4MCwgMHgyMTAwLCAweDIxODAsIDB4MjIwMCwgMHgyMjgwLAorICAgIDB4MjMwMCwgMHgyMzgwLCAweDI0MDAsIDB4MjQ4MCwgMHgyNTAwLCAweDI1ODAsIDB4MjYwMCwKKyAgICAweDI2ODAsIDB4MjcwMCwgMHgyNzgwLCAweDI4MDAsIDB4Mjg4MCwgMHgyOTAwLCAweDI5ODAsCisgICAgMHgyYTAwLCAweDJhODAsIDB4MmIwMCwgMHgyYjgwLCAweDJjMDAsIDB4MmM4MCwgMHgyZDAwLAorICAgIDB4MmQ4MCwgMHgyZTAwLCAweDJlODAsIDB4MmYwMCwgMHgyZjgwLCAweDMwMDAsIDB4MzA4MCwKKyAgICAweDMxMDAsIDB4MzE4MCwgMHgzMjAwLCAweDMyODAsIDB4MzMwMCwgMHgzMzgwLCAweGUwMDAsCisgICAgMHhlMDgwLCAweGUxMDAsIDB4ZTE4MCwgMHhlMjAwLCAweGUyODAsIDB4ZTMwMCwgMHhlMzgwLAorICAgIDB4ZTQwMCwgMHhlNDgwLCAweGU1MDAsIDB4ZTU4MCwgMHhlNjAwLCAweGU2ODAsIDB4ZTcwMCwKKyAgICAweGU3ODAsIDB4ZTgwMCwgMHhlODgwLCAweGU5MDAsIDB4ZTk4MCwgMHhlYTAwLCAweGVhODAsCisgICAgMHhlYjAwLCAweGViODAsIDB4ZWMwMCwgMHhlYzgwLCAweGVkMDAsIDB4ZWQ4MCwgMHhlZTAwLAorICAgIDB4ZWU4MCwgMHhlZjAwLCAweGVmODAsIDB4ZjAwMCwgMHhmMDgwLCAweGYxMDAsIDB4ZjE4MCwKKyAgICAweGYyMDAsIDB4ZjI4MCwgMHhmMzAwLCAweGYzODAsIDB4ZjQwMCwgMHhmNDgwLCAweGY1MDAsCisgICAgMHhmNTgwLCAweGY2MDAsIDB4ZjY4MCwgMHhmNzAwLCAweGY3ODAsIDB4ZjgwMCwgMHhmODgwLAorICAgIDB4ZjkwMCwgMHhmOTgwLCAweGZhMDAsIDB4ZmE4MCwgMHhmYjAwLCAweGZiODAsIDB4ZmMwMCwKKyAgICAweGZjODAsIDB4ZmQwMCwgMHhmZDgwLCAweGZlMDAsIDB4ZmU4MCwgMHhmZjAwLCAweGZmODAsIDB4MCwKKyAgICAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLAorICAgIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsCisgICAgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwKKyAgICAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLAorICAgIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsCisgICAgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwKKyAgICAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHhjMCwgMHgyNTAsIDB4MzcwLAorICAgIDB4NTMwLCAweDMwNDAsIDB4MzBhMCwgMHhmZjYwICAKKyAgICB9OworCisgICAgLyoqIFN0YXRpYyBjb21wcmVzc2lvbiB3aW5kb3cgb2Zmc2V0cyAqLworICAgIGZpbmFsIHN0YXRpYyBpbnQgW10gc09mZnNldHMgPSB7CisgICAgICAgIDB4MDAwMCwgIC8vIGZvciBxdW90aW5nIHNpbmdsZS1ieXRlIG1vZGUgdGFncworICAgICAgICAweDAwODAsICAvLyBMYXRpbi0xIFN1cHBsZW1lbnQKKyAgICAgICAgMHgwMTAwLCAgLy8gTGF0aW4gRXh0ZW5kZWQtQQorICAgICAgICAweDAzMDAsICAvLyBDb21iaW5pbmcgRGlhY3JpdGljYWwgTWFya3MKKyAgICAgICAgMHgyMDAwLCAgLy8gR2VuZXJhbCBQdW5jdHVhdGlvbgorICAgICAgICAweDIwODAsICAvLyBDdXJlbmN5IFN5bWJvbHMKKyAgICAgICAgMHgyMTAwLCAgLy8gTGV0dGVybGlrZSBTeW1ib2xzIGFuZCBOdW1iZXIgRm9ybXMKKyAgICAgICAgMHgzMDAwICAgLy8gQ0pLIFN5bWJvbHMgYW5kIFB1bmN0dWF0aW9uCisgICAgfTsKKworfTsKKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU2VhcmNoSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NlYXJjaEl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTRkZTUzMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NlYXJjaEl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSw3ODggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworLyoqCisgKiA8cD5TZWFyY2hJdGVyYXRvciBpcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIHRoYXQgZGVmaW5lcyBhIHByb3RvY29sCisgKiBmb3IgdGV4dCBzZWFyY2hpbmcuIFN1YmNsYXNzZXMgcHJvdmlkZSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbnMgb2YKKyAqIHZhcmlvdXMgc2VhcmNoIGFsZ29yaXRobXMuICBBIGNvbmNyZXRlIHN1YmNsYXNzLCBTdHJpbmdTZWFyY2gsIGlzCisgKiBwcm92aWRlZCB0aGF0IGltcGxlbWVudHMgbGFuZ3VhZ2Utc2Vuc2l0aXZlIHBhdHRlcm4gbWF0Y2hpbmcgYmFzZWQKKyAqIG9uIHRoZSBjb21wYXJpc29uIHJ1bGVzIGRlZmluZWQgaW4gYSBSdWxlQmFzZWRDb2xsYXRvcgorICogb2JqZWN0LiBJbnN0YW5jZXMgb2YgU2VhcmNoSXRlcmF0b3IgbWFpbnRhaW4gYSBjdXJyZW50IHBvc2l0aW9uIGFuZAorICogc2NhbiBvdmVyIHRoZSB0YXJnZXQgdGV4dCwgcmV0dXJuaW5nIHRoZSBpbmRpY2VzIHdoZXJlIGEgbWF0Y2ggaXMKKyAqIGZvdW5kIGFuZCB0aGUgbGVuZ3RoIG9mIGVhY2ggbWF0Y2guIEdlbmVyYWxseSwgdGhlIHNlcXVlbmNlIG9mIGZvcndhcmQgCisgKiBtYXRjaGVzIHdpbGwgYmUgZXF1aXZhbGVudCB0byB0aGUgc2VxdWVuY2Ugb2YgYmFja3dhcmQgbWF0Y2hlcy5PbmUKKyAqIGNhc2Ugd2hlcmUgdGhpcyBzdGF0ZW1lbnQgbWF5IG5vdCBob2xkIGlzIHdoZW4gbm9uLW92ZXJsYXBwaW5nIG1vZGUgCisgKiBpcyBzZXQgb24gYW5kIHRoZXJlIGFyZSBjb250aW51b3VzIHJlcGV0aXRpdmUgcGF0dGVybnMgaW4gdGhlIHRleHQuIAorICogQ29uc2lkZXIgdGhlIGNhc2Ugc2VhcmNoaW5nIGZvciBwYXR0ZXJuICJhYmEiIGluIHRoZSB0ZXh0IAorICogImFiYWJhYmFiYSIsIHNldHRpbmcgb3ZlcmxhcHBpbmcgbW9kZSBvZmYgd2lsbCBwcm9kdWNlIGZvcndhcmQgbWF0Y2hlcworICogYXQgb2Zmc2V0cyAwLCA0LiBIb3dldmVyIHdoZW4gYSBiYWNrd2FyZHMgc2VhcmNoIGlzIGRvbmUsIHRoZQorICogcmVzdWx0cyB3aWxsIGJlIGF0IG9mZnNldHMgNiBhbmQgMi48L3A+CisgKiAKKyAqIDxwPklmIG1hdGNoZXMgc2VhcmNoZWQgZm9yIGhhdmUgYm91bmRhcnkgcmVzdHJpY3Rpb25zLiBCcmVha0l0ZXJhdG9ycyAKKyAqIGNhbiBiZSB1c2VkIHRvIGRlZmluZSB0aGUgdmFsaWQgYm91bmRhcmllcyBvZiBzdWNoIGEgbWF0Y2guIE9uY2UgYSAKKyAqIEJyZWFrSXRlcmF0b3IgaXMgc2V0LCBwb3RlbnRpYWwgbWF0Y2hlcyB3aWxsIGJlIHRlc3RlZCBhZ2FpbnN0IHRoZQorICogQnJlYWtJdGVyYXRvciB0byBkZXRlcm1pbmUgaWYgdGhlIGJvdW5kYXJpZXMgYXJlIHZhbGlkIGFuZCB0aGF0IGFsbAorICogY2hhcmFjdGVycyBpbiB0aGUgcG90ZW50aWFsIG1hdGNoIGFyZSBlcXVpdmFsZW50IHRvIHRoZSBwYXR0ZXJuIAorICogc2VhcmNoZWQgZm9yLiBGb3IgZXhhbXBsZSwgbG9va2luZyBmb3IgdGhlIHBhdHRlcm4gImZveCIgaW4gdGhlIHRleHQKKyAqICJmb3h5IGZveCIgd2lsbCBwcm9kdWNlIG1hdGNoIHJlc3VsdHMgYXQgb2Zmc2V0IDAgYW5kIDUgd2l0aCBsZW5ndGggMworICogaWYgbm8gQnJlYWtJdGVyYXRvcnMgd2VyZSBzZXQuIEhvd2V2ZXIgaWYgYSBXb3JkQnJlYWtJdGVyYXRvciBpcyBzZXQsCisgKiB0aGUgb25seSBtYXRjaCB0aGF0IHdvdWxkIGJlIGZvdW5kIHdpbGwgYmUgYXQgdGhlIG9mZnNldCA1LiBTaW5jZSwKKyAqIHRoZSBTZWFyY2hJdGVyYXRvciBndWFyYW50ZWVzIHRoYXQgaWYgYSBCcmVha0l0ZXJhdG9yIGlzIHNldCwgYWxsIGl0cworICogbWF0Y2hlcyB3aWxsIG1hdGNoIHRoZSBnaXZlbiBwYXR0ZXJuIGV4YWN0bHksIGEgcG90ZW50aWFsIG1hdGNoIHRoYXQgCisgKiBwYXNzZXMgdGhlIEJyZWFrSXRlcmF0b3IgbWlnaHQgc3RpbGwgbm90IHByb2R1Y2UgYSB2YWxpZCBtYXRjaC4gRm9yIAorICogaW5zdGFuY2UgdGhlIHBhdHRlcm4gImUiIHdpbGwgbm90IGJlIGZvdW5kIGluIHRoZSBzdHJpbmcgCisgKiAiJiM5Mjt1MDBlOSIgKGxhdGluIHNtYWxsIGxldHRlciBlIHdpdGggYWN1dGUpIGlmIGEgCisgKiBDaGFyYWN0ZXJCcmVha0l0ZXJhdG9yIGlzIHVzZWQuIEV2ZW4gdGhvdWdoICJlIiBpcworICogYSBwYXJ0IG9mIHRoZSBjaGFyYWN0ZXIgIiYjOTI7dTAwZTkiIGFuZCB0aGUgcG90ZW50aWFsIG1hdGNoIGF0CisgKiBvZmZzZXQgMCBsZW5ndGggMSBwYXNzZXMgdGhlIENoYXJhY3RlckJyZWFrSXRlcmF0b3IgdGVzdCwgIiYjOTI7dTAwZTkiCisgKiBpcyBub3QgZXF1aXZhbGVudCB0byAiZSIsIGhlbmNlIHRoZSBTZWFyY2hJdGVyYXRvciByZWplY3RzIHRoZSBwb3RlbnRpYWwKKyAqIG1hdGNoLiBCeSBkZWZhdWx0LCB0aGUgU2VhcmNoSXRlcmF0b3IKKyAqIGRvZXMgbm90IGltcG9zZSBhbnkgYm91bmRhcnkgcmVzdHJpY3Rpb24gb24gdGhlIG1hdGNoZXMsIGl0IHdpbGwgCisgKiByZXR1cm4gYWxsIHJlc3VsdHMgdGhhdCBtYXRjaCB0aGUgcGF0dGVybi4gSWxsdXN0cmF0aW5nIHdpdGggdGhlIAorICogYWJvdmUgZXhhbXBsZSwgImUiIHdpbGwKKyAqIGJlIGZvdW5kIGluIHRoZSBzdHJpbmcgIiYjOTI7dTAwZTkiIGlmIG5vIEJyZWFrSXRlcmF0b3IgaXMKKyAqIHNwZWNpZmllZC48L3A+CisgKiAKKyAqIDxwPlNlYXJjaEl0ZXJhdG9yIGFsc28gcHJvdmlkZXMgYSBtZWFucyB0byBoYW5kbGUgb3ZlcmxhcHBpbmcKKyAqIG1hdGNoZXMgdmlhIHRoZSBBUEkgc2V0T3ZlcmxhcHBpbmcoYm9vbGVhbikuIEZvciBleGFtcGxlLCBpZgorICogb3ZlcmxhcHBpbmcgbW9kZSBpcyBzZXQsIHNlYXJjaGluZyBmb3IgdGhlIHBhdHRlcm4gImFiYWIiIGluIHRoZQorICogdGV4dCAiYWJhYmFiIiB3aWxsIG1hdGNoIGF0IHBvc2l0aW9ucyAwIGFuZCAyLCB3aGVyZWFzIGlmCisgKiBvdmVybGFwcGluZyBpcyBub3Qgc2V0LCBTZWFyY2hJdGVyYXRvciB3aWxsIG9ubHkgbWF0Y2ggYXQgcG9zaXRpb24KKyAqIDAuIEJ5IGRlZmF1bHQsIG92ZXJsYXBwaW5nIG1vZGUgaXMgbm90IHNldC48L3A+CisgKiAKKyAqIDxwPlRoZSBBUElzIGluIFNlYXJjaEl0ZXJhdG9yIGFyZSBzaW1pbGFyIHRvIHRoYXQgb2Ygb3RoZXIgdGV4dAorICogaXRlcmF0aW9uIGNsYXNzZXMgc3VjaCBhcyBCcmVha0l0ZXJhdG9yLiBVc2luZyB0aGlzIGNsYXNzLCBpdCBpcworICogZWFzeSB0byBzY2FuIHRocm91Z2ggdGV4dCBsb29raW5nIGZvciBhbGwgb2NjdXJhbmNlcyBvZiBhCisgKiBtYXRjaC48L3A+CisgKiA8cD4KKyAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAqIDxwcmU+CisgKiBTdHJpbmcgdGFyZ2V0ID0gIlRoZSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZm94IjsKKyAqIFN0cmluZyBwYXR0ZXJuID0gImZveCI7CisgKiBTZWFyY2hJdGVyYXRvciBpdGVyID0gbmV3IFN0cmluZ1NlYXJjaChwYXR0ZXJuLCB0YXJnZXQpOworICogZm9yIChpbnQgcG9zID0gaXRlci5maXJzdCgpOyBwb3MgIT0gU2VhcmNoSXRlcmF0b3IuRE9ORTsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBpdGVyLm5leHQoKSkgeworICogICAgIC8vIHByaW50bG4gbWF0Y2hlcyBhdCBvZmZzZXQgMTYgYW5kIDQxIHdpdGggbGVuZ3RoIDMKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZvdW5kIG1hdGNoIGF0ICIgKyBwb3MgKyAiLCBsZW5ndGggaXMgIiAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgKyBpdGVyLmdldE1hdGNoTGVuZ3RoKCkpOworICogfQorICogdGFyZ2V0ID0gImFiYWJhYmFiYSI7CisgKiBwYXR0ZXJuID0gImFiYSI7CisgKiBpdGVyLnNldFRhcmdldChuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IocGF0dGVybikpOworICogaXRlci5zZXRPdmVybGFwcGluZyhmYWxzZSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIk92ZXJsYXBwaW5nIG1vZGUgc2V0IHRvIGZhbHNlIik7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkZvcndhcmQgbWF0Y2hlcyBvZiBwYXR0ZXJuICIgKyBwYXR0ZXJuICsgIiBpbiB0ZXh0ICIKKyAqICAgICAgICAgICAgICAgICAgICArIHRleHQgKyAiOiAiKTsKKyAqIGZvciAoaW50IHBvcyA9IGl0ZXIuZmlyc3QoKTsgcG9zICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkU7IAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gaXRlci5uZXh0KCkpIHsKKyAqICAgICAvLyBwcmludGxuIG1hdGNoZXMgYXQgb2Zmc2V0IDAgYW5kIDQgd2l0aCBsZW5ndGggMworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigib2Zmc2V0ICIgKyBwb3MgKyAiLCBsZW5ndGggIiAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgKyBpdGVyLmdldE1hdGNoTGVuZ3RoKCkpOworICogfQorICogU3lzdGVtLm91dC5wcmludGxuKCJCYWNrd2FyZCBtYXRjaGVzIG9mIHBhdHRlcm4gIiArIHBhdHRlcm4gKyAiIGluIHRleHQgIgorICogICAgICAgICAgICAgICAgICAgICsgdGV4dCArICI6ICIpOworICogZm9yIChpbnQgcG9zID0gaXRlci5sYXN0KCk7IHBvcyAhPSBTZWFyY2hJdGVyYXRvci5ET05FOyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGl0ZXIucHJldmlvdXMoKSkgeworICogICAgIC8vIHByaW50bG4gbWF0Y2hlcyBhdCBvZmZzZXQgNiBhbmQgMiB3aXRoIGxlbmd0aCAzCisgKiAgICAgU3lzdGVtLm91dC5wcmludGxuKCJvZmZzZXQgIiArIHBvcyArICIsIGxlbmd0aCAiIAorICogICAgICAgICAgICAgICAgICAgICAgICArIGl0ZXIuZ2V0TWF0Y2hMZW5ndGgoKSk7CisgKiB9CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIk92ZXJsYXBwaW5nIG1vZGUgc2V0IHRvIHRydWUiKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiSW5kZXggc2V0IHRvIDIiKTsKKyAqIGl0ZXIuc2V0SW5kZXgoMik7CisgKiBpdGVyLnNldE92ZXJsYXBwaW5nKHRydWUpOworICogU3lzdGVtLm91dC5wcmludGxuKCJGb3J3YXJkIG1hdGNoZXMgb2YgcGF0dGVybiAiICsgcGF0dGVybiArICIgaW4gdGV4dCAiCisgKiAgICAgICAgICAgICAgICAgICAgKyB0ZXh0ICsgIjogIik7CisgKiBmb3IgKGludCBwb3MgPSBpdGVyLmZpcnN0KCk7IHBvcyAhPSBTZWFyY2hJdGVyYXRvci5ET05FOyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGl0ZXIubmV4dCgpKSB7CisgKiAgICAgLy8gcHJpbnRsbiBtYXRjaGVzIGF0IG9mZnNldCAyLCA0IGFuZCA2IHdpdGggbGVuZ3RoIDMKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm9mZnNldCAiICsgcG9zICsgIiwgbGVuZ3RoICIgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICsgaXRlci5nZXRNYXRjaExlbmd0aCgpKTsKKyAqIH0KKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiSW5kZXggc2V0IHRvIDIiKTsKKyAqIGl0ZXIuc2V0SW5kZXgoMik7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkJhY2t3YXJkIG1hdGNoZXMgb2YgcGF0dGVybiAiICsgcGF0dGVybiArICIgaW4gdGV4dCAiCisgKiAgICAgICAgICAgICAgICAgICAgKyB0ZXh0ICsgIjogIik7CisgKiBmb3IgKGludCBwb3MgPSBpdGVyLmxhc3QoKTsgcG9zICE9IFNlYXJjaEl0ZXJhdG9yLkRPTkU7IAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gaXRlci5wcmV2aW91cygpKSB7CisgKiAgICAgLy8gcHJpbnRsbiBtYXRjaGVzIGF0IG9mZnNldCAwIHdpdGggbGVuZ3RoIDMKKyAqICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm9mZnNldCAiICsgcG9zICsgIiwgbGVuZ3RoICIgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICsgaXRlci5nZXRNYXRjaExlbmd0aCgpKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPC9wPgorICogQGF1dGhvciBMYXVyYSBXZXJuZXIsIHN5bndlZQorICogQHN0YWJsZSBJQ1UgMi4wCisgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIFNlYXJjaEl0ZXJhdG9yIAoreworICAgIAorICAgIC8vIHB1YmxpYyBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIERPTkUgaXMgcmV0dXJuZWQgYnkgcHJldmlvdXMoKSBhbmQgbmV4dCgpIGFmdGVyIGFsbCB2YWxpZCBtYXRjaGVzIGhhdmUgCisgICAgICogYmVlbiByZXR1cm5lZCwgYW5kIGJ5IGZpcnN0KCkgYW5kIGxhc3QoKSBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hlcyBhdCBhbGwuCisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRE9ORSA9IC0xOworICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLy8gcHVibGljIHNldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiBpbiB0aGUgdGFyZ2V0IHRleHQgYXQgd2hpY2ggdGhlIG5leHQgc2VhcmNoIHdpbGwgc3RhcnQuCisgICAgICogVGhpcyBtZXRob2QgY2xlYXJzIGFueSBwcmV2aW91cyBtYXRjaC4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHBvc2l0aW9uIHBvc2l0aW9uIGZyb20gd2hpY2ggdG8gc3RhcnQgdGhlIG5leHQgc2VhcmNoCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBhcmd1bWVudCBwb3NpdGlvbiBpcyBvdXQKKyAgICAgKiAgICAgICAgICAgIG9mIHRoZSB0YXJnZXQgdGV4dCByYW5nZS4KKyAgICAgKiBAc2VlICNnZXRJbmRleAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEluZGV4KGludCBwb3NpdGlvbikgeworICAgICAgICBpZiAocG9zaXRpb24gPCB0YXJnZXRUZXh0LmdldEJlZ2luSW5kZXgoKSAKKyAgICAgICAgICAgIHx8IHBvc2l0aW9uID4gdGFyZ2V0VGV4dC5nZXRFbmRJbmRleCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAic2V0SW5kZXgoaW50KSBleHBlY3RlZCBwb3NpdGlvbiB0byBiZSBiZXR3ZWVuICIgKworICAgICAgICAgICAgICAgIHRhcmdldFRleHQuZ2V0QmVnaW5JbmRleCgpICsgIiBhbmQgIiArIHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSk7CisgICAgICAgIH0KKyAgICAgICAgbV9zZXRPZmZzZXRfID0gcG9zaXRpb247CisgICAgICAgIG1fcmVzZXRfID0gZmFsc2U7CisgICAgICAgIG1hdGNoTGVuZ3RoID0gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIG92ZXJsYXBwaW5nIG1hdGNoZXMgYXJlIHJldHVybmVkLiBTZWUgdGhlIGNsYXNzIAorICAgICAqIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgb3ZlcmxhcHBpbmcgbWF0Y2hlcy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhlIGRlZmF1bHQgc2V0dGluZyBvZiB0aGlzIHByb3BlcnR5IGlzIGZhbHNlCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBhbGxvd092ZXJsYXAgZmxhZyBpbmRpY2F0b3IgaWYgb3ZlcmxhcHBpbmcgbWF0Y2hlcyBhcmUgYWxsb3dlZAorICAgICAqIEBzZWUgI2lzT3ZlcmxhcHBpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRPdmVybGFwcGluZyhib29sZWFuIGFsbG93T3ZlcmxhcCkKKyAgICB7CisgICAgICAgIG1faXNPdmVybGFwXyA9IGFsbG93T3ZlcmxhcDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBCcmVha0l0ZXJhdG9yIHRoYXQgaXMgdXNlZCB0byByZXN0cmljdCB0aGUgcG9pbnRzIGF0IHdoaWNoIAorICAgICAqIG1hdGNoZXMgYXJlIGRldGVjdGVkLgorICAgICAqIFVzaW5nIDx0dD5udWxsPC90dD4gYXMgdGhlIHBhcmFtZXRlciBpcyBsZWdhbDsgaXQgbWVhbnMgdGhhdCBicmVhayAKKyAgICAgKiBkZXRlY3Rpb24gc2hvdWxkIG5vdCBiZSBhdHRlbXB0ZWQuCisgICAgICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogQHBhcmFtIGJyZWFraXRlciBBIEJyZWFrSXRlcmF0b3IgdGhhdCB3aWxsIGJlIHVzZWQgdG8gcmVzdHJpY3QgdGhlIAorICAgICAqICAgICAgICAgICAgICAgICAgICAgcG9pbnRzIGF0IHdoaWNoIG1hdGNoZXMgYXJlIGRldGVjdGVkLgorICAgICAqIEBzZWUgI2dldEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRCcmVha0l0ZXJhdG9yKEJyZWFrSXRlcmF0b3IgYnJlYWtpdGVyKSAKKyAgICB7CisgICAgICAgIGJyZWFrSXRlcmF0b3IgPSBicmVha2l0ZXI7CisgICAgICAgIGlmIChicmVha0l0ZXJhdG9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJyZWFrSXRlcmF0b3Iuc2V0VGV4dCh0YXJnZXRUZXh0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHRhcmdldCB0ZXh0IHRvIGJlIHNlYXJjaGVkLiBUZXh0IGl0ZXJhdGlvbiB3aWxsIHRoZW4gYmVnaW4gYXQgCisgICAgICAqIHRoZSBzdGFydCBvZiB0aGUgdGV4dCBzdHJpbmcuIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byAKKyAgICAgKiByZXVzZSBhbiBpdGVyYXRvciB0byBzZWFyY2ggd2l0aGluIGEgZGlmZmVyZW50IGJvZHkgb2YgdGV4dC4KKyAgICAgKiBAcGFyYW0gdGV4dCBuZXcgdGV4dCBpdGVyYXRvciB0byBsb29rIGZvciBtYXRjaCwgCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gdGV4dCBpcyBudWxsIG9yIGhhcworICAgICAqICAgICAgICAgICAgICAgMCBsZW5ndGgKKyAgICAgKiBAc2VlICNnZXRUYXJnZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUYXJnZXQoQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCkKKyAgICB7CisgICAgICAgIGlmICh0ZXh0ID09IG51bGwgfHwgdGV4dC5nZXRFbmRJbmRleCgpID09IHRleHQuZ2V0SW5kZXgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBudWxsIG9yIGVtcHR5IHRleHQiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGFyZ2V0VGV4dCA9IHRleHQ7CisgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgodGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICBtYXRjaExlbmd0aCA9IDA7CisgICAgICAgIG1fcmVzZXRfID0gdHJ1ZTsKKyAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gdHJ1ZTsKKyAgICAgICAgaWYgKGJyZWFrSXRlcmF0b3IgIT0gbnVsbCkgeworICAgICAgICAgICAgYnJlYWtJdGVyYXRvci5zZXRUZXh0KHRhcmdldFRleHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gcHVibGljIGdldHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtb3N0IHJlY2VudCBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuCisgICAgICogVGhpcyBjYWxsIHJldHVybnMgYSB2YWxpZCByZXN1bHQgb25seSBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCB0byAKKyAgICAgKiB7QGxpbmsgI2ZpcnN0fSwge0BsaW5rICNuZXh0fSwge0BsaW5rICNwcmV2aW91c30sIG9yIHtAbGluayAjbGFzdH0uCisgICAgICogSnVzdCBhZnRlciBjb25zdHJ1Y3Rpb24sIG9yIGFmdGVyIGEgc2VhcmNoaW5nIG1ldGhvZCByZXR1cm5zIAorICAgICAqIDx0dD5ET05FPC90dD4sIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIDx0dD5ET05FPC90dD4uCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFVzZSA8dHQ+Z2V0TWF0Y2hMZW5ndGg8L3R0PiB0byBnZXQgdGhlIGxlbmd0aCBvZiB0aGUgbWF0Y2hlZCB0ZXh0LgorICAgICAqIDx0dD5nZXRNYXRjaGVkVGV4dDwvdHQ+IHdpbGwgcmV0dXJuIHRoZSBzdWJ0ZXh0IGluIHRoZSBzZWFyY2hlZCAKKyAgICAgKiB0YXJnZXQgdGV4dCBmcm9tIGluZGV4IGdldE1hdGNoU3RhcnQoKSB3aXRoIGxlbmd0aCBnZXRNYXRjaExlbmd0aCgpLiAKKyAgICAgKiA8L3A+CisgICAgICogQHJldHVybiBpbmRleCB0byBhIHN1YnN0cmluZyB3aXRoaW4gdGhlIHRleHQgc3RyaW5nIHRoYXQgaXMgYmVpbmcgCisgICAgICogICAgICAgICBzZWFyY2hlZC4KKyAgICAgKiBAc2VlICNnZXRNYXRjaExlbmd0aAorICAgICAqIEBzZWUgI2dldE1hdGNoZWRUZXh0CisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF0Y2hTdGFydCgpCisgICAgeworICAgICAgICByZXR1cm4gbV9sYXN0TWF0Y2hTdGFydF87CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBpbiB0aGUgdGFyZ2V0IHRleHQgYXQgd2hpY2ggdGhlIGl0ZXJhdG9yIGlzIGN1cnJlbnRseQorICAgICAqIHBvc2l0aW9uZWQuIAorICAgICAqIElmIHRoZSBpdGVyYXRpb24gaGFzIGdvbmUgcGFzdCB0aGUgZW5kIG9mIHRoZSB0YXJnZXQgdGV4dCwgb3IgcGFzdCAKKyAgICAgKiB0aGUgYmVnaW5uaW5nIGZvciBhIGJhY2t3YXJkcyBzZWFyY2gsIHtAbGluayAjRE9ORX0gaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiBpbmRleCBpbiB0aGUgdGFyZ2V0IHRleHQgYXQgd2hpY2ggdGhlIGl0ZXJhdG9yIGlzIGN1cnJlbnRseSAKKyAgICAgKiAgICAgICAgIHBvc2l0aW9uZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0SW5kZXgoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIG1vc3QgcmVjZW50IG1hdGNoIGluIHRoZSB0YXJnZXQgdGV4dC4gCisgICAgICogVGhpcyBjYWxsIHJldHVybnMgYSB2YWxpZCByZXN1bHQgb25seSBhZnRlciBhIHN1Y2Nlc3NmdWwKKyAgICAgKiBjYWxsIHRvIHtAbGluayAjZmlyc3R9LCB7QGxpbmsgI25leHR9LCB7QGxpbmsgI3ByZXZpb3VzfSwgb3IgCisgICAgICoge0BsaW5rICNsYXN0fS4KKyAgICAgKiBKdXN0IGFmdGVyIGNvbnN0cnVjdGlvbiwgb3IgYWZ0ZXIgYSBzZWFyY2hpbmcgbWV0aG9kIHJldHVybnMKKyAgICAgKiA8dHQ+RE9ORTwvdHQ+LCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiAwLiBTZWUgZ2V0TWF0Y2hTdGFydCgpIGZvciAKKyAgICAgKiBtb3JlIGRldGFpbHMuCisgICAgICogPC9wPgorICAgICAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgbW9zdCByZWNlbnQgbWF0Y2ggaW4gdGhlIHRhcmdldCB0ZXh0LCBvciAwIGlmIAorICAgICAqICAgICAgICAgdGhlcmUgaXMgbm8gbWF0Y2guCisgICAgICogQHNlZSAjZ2V0TWF0Y2hTdGFydAorICAgICAqIEBzZWUgI2dldE1hdGNoZWRUZXh0CisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWF0Y2hMZW5ndGgoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtYXRjaExlbmd0aDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgQnJlYWtJdGVyYXRvciB0aGF0IGlzIHVzZWQgdG8gcmVzdHJpY3QgdGhlIGluZGV4ZXMgYXQgd2hpY2ggCisgICAgICogbWF0Y2hlcyBhcmUgZGV0ZWN0ZWQuIFRoaXMgd2lsbCBiZSB0aGUgc2FtZSBvYmplY3QgdGhhdCB3YXMgcGFzc2VkIHRvIAorICAgICAqIHRoZSBjb25zdHJ1Y3RvciBvciB0byA8Y29kZT5zZXRCcmVha0l0ZXJhdG9yPC9jb2RlPi4KKyAgICAgKiBJZiB0aGUgQnJlYWtJdGVyYXRvciBoYXMgbm90IGJlZW4gc2V0LCA8dHQ+bnVsbDwvdHQ+IHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogU2VlIHNldEJyZWFrSXRlcmF0b3IgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogQHJldHVybiB0aGUgQnJlYWtJdGVyYXRvciBzZXQgdG8gcmVzdHJpY3QgbG9naWMgbWF0Y2hlcworICAgICAqIEBzZWUgI3NldEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgQnJlYWtJdGVyYXRvciBnZXRCcmVha0l0ZXJhdG9yKCkgCisgICAgeworICAgICAgICByZXR1cm4gYnJlYWtJdGVyYXRvcjsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0YXJnZXQgdGV4dCB0aGF0IGlzIGJlaW5nIHNlYXJjaGVkLgorICAgICAqIEByZXR1cm4gdGFyZ2V0IHRleHQgYmVpbmcgc2VhcmNoZWQuCisgICAgICogQHNlZSAjc2V0VGFyZ2V0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIENoYXJhY3Rlckl0ZXJhdG9yIGdldFRhcmdldCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhcmdldFRleHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHRleHQgdGhhdCB3YXMgbWF0Y2hlZCBieSB0aGUgbW9zdCByZWNlbnQgY2FsbCB0byAKKyAgICAgKiB7QGxpbmsgI2ZpcnN0fSwge0BsaW5rICNuZXh0fSwge0BsaW5rICNwcmV2aW91c30sIG9yIHtAbGluayAjbGFzdH0uIAorICAgICAqIElmIHRoZSBpdGVyYXRvciBpcyBub3QgcG9pbnRpbmcgYXQgYSB2YWxpZCBtYXRjaCwgZm9yIGluc3RhbmNlIGp1c3QgCisgICAgICogYWZ0ZXIgY29uc3RydWN0aW9uIG9yIGFmdGVyIDx0dD5ET05FPC90dD4gaGFzIGJlZW4gcmV0dXJuZWQsIGFuIGVtcHR5IAorICAgICAqIFN0cmluZyB3aWxsIGJlIHJldHVybmVkLiBTZWUgZ2V0TWF0Y2hTdGFydCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorICAgICAqIEBzZWUgI2dldE1hdGNoU3RhcnQKKyAgICAgKiBAc2VlICNnZXRNYXRjaExlbmd0aAorICAgICAqIEBzZWUgI2ZpcnN0CisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjbGFzdAorICAgICAqIEBzZWUgI0RPTkUKKyAgICAgKiBAcmV0dXJuIHRoZSBzdWJzdHJpbmcgaW4gdGhlIHRhcmdldCB0ZXh0IG9mIHRoZSBtb3N0IHJlY2VudCBtYXRjaCAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE1hdGNoZWRUZXh0KCkgCisgICAgeworICAgICAgICBpZiAobWF0Y2hMZW5ndGggPiAwKSB7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBtX2xhc3RNYXRjaFN0YXJ0XyArIG1hdGNoTGVuZ3RoOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIobWF0Y2hMZW5ndGgpOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh0YXJnZXRUZXh0LmN1cnJlbnQoKSk7CisgICAgICAgICAgICB0YXJnZXRUZXh0Lm5leHQoKTsKKyAgICAgICAgICAgIHdoaWxlICh0YXJnZXRUZXh0LmdldEluZGV4KCkgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodGFyZ2V0VGV4dC5jdXJyZW50KCkpOworICAgICAgICAgICAgICAgIHRhcmdldFRleHQubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChtX2xhc3RNYXRjaFN0YXJ0Xyk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLy8gbWlzY2VsbGFuZW91cyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZWFyY2ggPGI+Zm9yd2FyZHM8L2I+IGluIHRoZSB0YXJnZXQgdGV4dCBmb3IgdGhlIG5leHQgdmFsaWQgbWF0Y2gsCisgICAgICogc3RhcnRpbmcgdGhlIHNlYXJjaCBmcm9tIHRoZSBjdXJyZW50IGl0ZXJhdG9yIHBvc2l0aW9uLiBUaGUgaXRlcmF0b3IgaXMgCisgICAgICogYWRqdXN0ZWQgc28gdGhhdCBpdHMgY3VycmVudCBpbmRleCwgYXMgcmV0dXJuZWQgYnkge0BsaW5rICNnZXRJbmRleH0sCisgICAgICogaXMgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBtYXRjaCBpZiBvbmUgd2FzIGZvdW5kLiBJZiBhIG1hdGNoIGlzIAorICAgICAqIGZvdW5kLCB0aGUgaW5kZXggb2YgdGhlIG1hdGNoIGlzIHJldHVybmVkLCBvdGhlcndpc2UgPHR0PkRPTkU8L3R0PiBpcworICAgICAqIHJldHVybmVkLiAgSWYgb3ZlcmxhcHBpbmcgbW9kZSBpcyBzZXQsIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZvdW5kIG1hdGNoCisgICAgICogY2FuIGJlIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IG1hdGNoLCBpZiBhbnkuCisgICAgICogQHJldHVybiBUaGUgc3RhcnRpbmcgaW5kZXggb2YgdGhlIG5leHQgZm9yd2FyZCBtYXRjaCBhZnRlciB0aGUgY3VycmVudCAKKyAgICAgKiAgICAgICAgIGl0ZXJhdG9yIHBvc2l0aW9uLCBvciAKKyAgICAgKiAgICAgICAgIDx0dD5ET05FPC90dD4gaWYgdGhlcmUgYXJlIG5vIG1vcmUgbWF0Y2hlcy4KKyAgICAgKiBAc2VlICNnZXRNYXRjaFN0YXJ0CisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc2VlICNnZXRNYXRjaGVkVGV4dAorICAgICAqIEBzZWUgI2ZvbGxvd2luZworICAgICAqIEBzZWUgI3ByZWNlZGluZworICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dCgpCisgICAgeworICAgICAgICBpbnQgc3RhcnQgPSB0YXJnZXRUZXh0LmdldEluZGV4KCk7CisgICAgICAgIGlmIChtX3NldE9mZnNldF8gIT0gRE9ORSkgeworICAgICAgICAgICAgc3RhcnQgPSBtX3NldE9mZnNldF87ICAgIAorICAgICAgICAgICAgbV9zZXRPZmZzZXRfID0gRE9ORTsgICAgCisgICAgICAgIH0KKyAgICAgICAgaWYgKG1faXNGb3J3YXJkU2VhcmNoaW5nXykgeworICAgICAgICAgICAgaWYgKCFtX3Jlc2V0XyAmJiAKKyAgICAgICAgICAgICAgICBzdGFydCArIG1hdGNoTGVuZ3RoID49IHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSkgeworICAgICAgICAgICAgICAgIC8vIG5vdCBlbm91Z2ggY2hhcmFjdGVycyB0byBtYXRjaAorICAgICAgICAgICAgICAgIG1hdGNoTGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSk7CisgICAgICAgICAgICAgICAgbV9sYXN0TWF0Y2hTdGFydF8gPSBET05FOworICAgICAgICAgICAgICAgIHJldHVybiBET05FOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fcmVzZXRfID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBzd2l0Y2hpbmcgZGlyZWN0aW9uLiAKKyAgICAgICAgICAgIC8vIGlmIG1hdGNoZWRJbmRleCA9PSBVU0VBUkNIX0RPTkUsIGl0IG1lYW5zIHRoYXQgZWl0aGVyIGEgCisgICAgICAgICAgICAvLyBzZXRJbmRleCBoYXMgYmVlbiBjYWxsZWQgb3IgdGhhdCBwcmV2aW91cyByYW4gb2ZmIHRoZSB0ZXh0CisgICAgICAgICAgICAvLyBzdHJpbmcuIHRoZSBpdGVyYXRvciB3b3VsZCBoYXZlIGJlZW4gc2V0IHRvIG9mZnNldCAwIGlmIGEgCisgICAgICAgICAgICAvLyBtYXRjaCBpcyBub3QgZm91bmQuCisgICAgICAgICAgICBtX2lzRm9yd2FyZFNlYXJjaGluZ18gPSB0cnVlOworICAgICAgICAgICAgaWYgKHN0YXJ0ICE9IERPTkUpIHsKKyAgICAgICAgICAgICAgICAvLyB0aGVyZSdzIG5vIG5lZWQgdG8gc2V0IHRoZSBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvcgorICAgICAgICAgICAgICAgIC8vIHRoZSBuZXh0IGNhbGwgdG8gbmV4dCB3aWxsIHNldCB0aGUgb2Zmc2V0LgorICAgICAgICAgICAgICAgIHJldHVybiBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHN0YXJ0ID09IERPTkUpIHsKKyAgICAgICAgICAgIHN0YXJ0ID0gdGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1hdGNoTGVuZ3RoID4gMCkgeworICAgICAgICAgICAgLy8gaWYgbWF0Y2ggbGVuZ3RoIGlzIDAgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiB0aGUgaXRlcmF0aW9uCisgICAgICAgICAgICBpZiAobV9pc092ZXJsYXBfKSB7CisgICAgICAgICAgICAgICAgc3RhcnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGFydCArPSBtYXRjaExlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtX2xhc3RNYXRjaFN0YXJ0XyA9IGhhbmRsZU5leHQoc3RhcnQpOworICAgICAgICByZXR1cm4gbV9sYXN0TWF0Y2hTdGFydF87CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VhcmNoIDxiPmJhY2t3YXJkczwvYj4gaW4gdGhlIHRhcmdldCB0ZXh0IGZvciB0aGUgbmV4dCB2YWxpZCBtYXRjaCwKKyAgICAgKiBzdGFydGluZyB0aGUgc2VhcmNoIGZyb20gdGhlIGN1cnJlbnQgaXRlcmF0b3IgcG9zaXRpb24uIFRoZSBpdGVyYXRvciBpcyAKKyAgICAgKiBhZGp1c3RlZCBzbyB0aGF0IGl0cyBjdXJyZW50IGluZGV4LCBhcyByZXR1cm5lZCBieSB7QGxpbmsgI2dldEluZGV4fSwKKyAgICAgKiBpcyB0aGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIG1hdGNoIGlmIG9uZSB3YXMgZm91bmQuIElmIGEgbWF0Y2ggaXMgCisgICAgICogZm91bmQsIHRoZSBpbmRleCBpcyByZXR1cm5lZCwgb3RoZXJ3aXNlIDx0dD5ET05FPC90dD4gaXMgcmV0dXJuZWQuICBJZgorICAgICAqIG92ZXJsYXBwaW5nIG1vZGUgaXMgc2V0LCB0aGUgZW5kIG9mIHRoZSBmb3VuZCBtYXRjaCBjYW4gYmUgYWZ0ZXIgdGhlCisgICAgICogYmVnaW5uaW5nIG9mIHRoZSBwcmV2aW91cyBtYXRjaCwgaWYgYW55LgorICAgICAqIEByZXR1cm4gVGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBuZXh0IGJhY2t3YXJkcyBtYXRjaCBhZnRlciB0aGUgY3VycmVudCAKKyAgICAgKiAgICAgICAgIGl0ZXJhdG9yIHBvc2l0aW9uLCBvciAKKyAgICAgKiAgICAgICAgIDx0dD5ET05FPC90dD4gaWYgdGhlcmUgYXJlIG5vIG1vcmUgbWF0Y2hlcy4KKyAgICAgKiBAc2VlICNnZXRNYXRjaFN0YXJ0CisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc2VlICNnZXRNYXRjaGVkVGV4dAorICAgICAqIEBzZWUgI2ZvbGxvd2luZworICAgICAqIEBzZWUgI3ByZWNlZGluZworICAgICAqIEBzZWUgI25leHQKKyAgICAgKiBAc2VlICNmaXJzdAorICAgICAqIEBzZWUgI2xhc3QKKyAgICAgKiBAc2VlICNET05FCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBwcmV2aW91cygpCisgICAgeworICAgICAgICBpbnQgc3RhcnQgPSB0YXJnZXRUZXh0LmdldEluZGV4KCk7CisgICAgICAgIGlmIChtX3NldE9mZnNldF8gIT0gRE9ORSkgeworICAgICAgICAgICAgc3RhcnQgPSBtX3NldE9mZnNldF87ICAgIAorICAgICAgICAgICAgbV9zZXRPZmZzZXRfID0gRE9ORTsgICAgCisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fcmVzZXRfKSB7CisgICAgICAgICAgICBtX2lzRm9yd2FyZFNlYXJjaGluZ18gPSBmYWxzZTsKKyAgICAgICAgICAgIG1fcmVzZXRfID0gZmFsc2U7CisgICAgICAgICAgICBzdGFydCA9IHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG1faXNGb3J3YXJkU2VhcmNoaW5nXyA9PSB0cnVlKSB7CisgICAgICAgICAgICAvLyBzd2l0Y2hpbmcgZGlyZWN0aW9uLiAKKyAgICAgICAgICAgIC8vIGlmIG1hdGNoZWRJbmRleCA9PSBVU0VBUkNIX0RPTkUsIGl0IG1lYW5zIHRoYXQgZWl0aGVyIGEgCisgICAgICAgICAgICAvLyBzZXRJbmRleCBoYXMgYmVlbiBjYWxsZWQgb3IgdGhhdCBuZXh0IHJhbiBvZmYgdGhlIHRleHQKKyAgICAgICAgICAgIC8vIHN0cmluZy4gdGhlIGl0ZXJhdG9yIHdvdWxkIGhhdmUgYmVlbiBzZXQgdG8gb2Zmc2V0IHRleHRMZW5ndGggaWYgCisgICAgICAgICAgICAvLyBhIG1hdGNoIGlzIG5vdCBmb3VuZC4KKyAgICAgICAgICAgIG1faXNGb3J3YXJkU2VhcmNoaW5nXyA9IGZhbHNlOworICAgICAgICAgICAgaWYgKHN0YXJ0ICE9IHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzdGFydCA9PSB0YXJnZXRUZXh0LmdldEJlZ2luSW5kZXgoKSkgeworICAgICAgICAgICAgICAgIC8vIG5vdCBlbm91Z2ggY2hhcmFjdGVycyB0byBtYXRjaAorICAgICAgICAgICAgICAgIG1hdGNoTGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHRhcmdldFRleHQuZ2V0QmVnaW5JbmRleCgpKTsKKyAgICAgICAgICAgICAgICBtX2xhc3RNYXRjaFN0YXJ0XyA9IERPTkU7CisgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7IAorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbV9sYXN0TWF0Y2hTdGFydF8gPSBoYW5kbGVQcmV2aW91cyhzdGFydCk7CisgICAgICAgIHJldHVybiBtX2xhc3RNYXRjaFN0YXJ0XzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgb3ZlcmxhcHBpbmcgcHJvcGVydHkgaGFzIGJlZW4gc2V0LgorICAgICAqIFNlZSBzZXRPdmVybGFwcGluZyhib29sZWFuKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICAgKiBAc2VlICNzZXRPdmVybGFwcGluZworICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgb3ZlcmxhcHBpbmcgcHJvcGVydHkgaGFzIGJlZW4gc2V0LCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc092ZXJsYXBwaW5nKCkgCisgICAgeworICAgICAgICByZXR1cm4gbV9pc092ZXJsYXBfOworICAgIH0KKyAgICAKKyAgICAvKiogCisgICAgICogPHA+CisgICAgICogUmVzZXRzIHRoZSBzZWFyY2ggaXRlcmF0aW9uLiBBbGwgcHJvcGVydGllcyB3aWxsIGJlIHJlc2V0IHRvIHRoZWlyCisgICAgICogZGVmYXVsdCB2YWx1ZXMuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIElmIGEgZm9yd2FyZCBpdGVyYXRpb24gaXMgaW5pdGlhdGVkLCB0aGUgbmV4dCBzZWFyY2ggd2lsbCBiZWdpbiBhdCB0aGUKKyAgICAgKiBzdGFydCBvZiB0aGUgdGFyZ2V0IHRleHQuIE90aGVyd2lzZSwgaWYgYSBiYWNrd2FyZHMgaXRlcmF0aW9uIGlzIGluaXRpYXRlZCwKKyAgICAgKiB0aGUgbmV4dCBzZWFyY2ggd2lsbCBiZWdpbiBhdCB0aGUgZW5kIG9mIHRoZSB0YXJnZXQgdGV4dC4KKyAgICAgKiA8L3A+CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAgLy8gcmVzZXQgaXMgc2V0dGluZyB0aGUgYXR0cmlidXRlcyB0aGF0IGFyZSBhbHJlYWR5IGluIHN0cmluZyBzZWFyY2gKKyAgICAgICAgbWF0Y2hMZW5ndGggPSAwOworICAgICAgICBzZXRJbmRleCh0YXJnZXRUZXh0LmdldEJlZ2luSW5kZXgoKSk7CisgICAgICAgIG1faXNPdmVybGFwXyA9IGZhbHNlOworICAgICAgICBtX2lzRm9yd2FyZFNlYXJjaGluZ18gPSB0cnVlOworICAgICAgICBtX3Jlc2V0XyA9IHRydWU7CisgICAgICAgIG1fc2V0T2Zmc2V0XyA9IERPTkU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IDxiPmZvcndhcmQ8L2I+IG1hdGNoIGluIHRoZSB0YXJnZXQgdGV4dC4gCisgICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgaXRlcmF0aW9uIHRvIGJlZ2luIGF0IHRoZSBzdGFydCBvZiB0aGUgCisgICAgICogdGFyZ2V0IHRleHQgYW5kIHNlYXJjaGVzIGZvcndhcmQgZnJvbSB0aGVyZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBpbmRleCBvZiB0aGUgZmlyc3QgZm9yd2FyZCBtYXRjaCwgb3IgPGNvZGU+RE9ORTwvY29kZT4gCisgICAgICogICAgICAgICAgICBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hlcy4KKyAgICAgKiBAc2VlICNnZXRNYXRjaFN0YXJ0CisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc2VlICNnZXRNYXRjaGVkVGV4dAorICAgICAqIEBzZWUgI2ZvbGxvd2luZworICAgICAqIEBzZWUgI3ByZWNlZGluZworICAgICAqIEBzZWUgI25leHQKKyAgICAgKiBAc2VlICNwcmV2aW91cworICAgICAqIEBzZWUgI2xhc3QKKyAgICAgKiBAc2VlICNET05FCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBmaXJzdCgpIAorICAgIHsKKyAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gdHJ1ZTsKKyAgICAgICAgc2V0SW5kZXgodGFyZ2V0VGV4dC5nZXRCZWdpbkluZGV4KCkpOworICAgICAgICByZXR1cm4gbmV4dCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IDxiPmZvcndhcmQ8L2I+IG1hdGNoIGluIHRhcmdldCB0ZXh0IHRoYXQgCisgICAgICogaXMgYXQgb3IgYWZ0ZXIgYXJndW1lbnQgPHR0PnBvc2l0aW9uPC90dD4uIAorICAgICAqIFRoaXMgbWV0aG9kIHNldHMgdGhlIGl0ZXJhdGlvbiB0byBiZWdpbiBhdCB0aGUgc3BlY2lmaWVkCisgICAgICogcG9zaXRpb24gaW4gdGhlIHRoZSB0YXJnZXQgdGV4dCBhbmQgc2VhcmNoZXMgZm9yd2FyZCBmcm9tIHRoZXJlLgorICAgICAqIEByZXR1cm4gVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBmb3J3YXJkIG1hdGNoLCBvciA8Y29kZT5ET05FPC9jb2RlPiAKKyAgICAgKiAgICAgICAgIGlmIHRoZXJlIGFyZSBubyBtYXRjaGVzLgorICAgICAqIEBzZWUgI2dldE1hdGNoU3RhcnQKKyAgICAgKiBAc2VlICNnZXRNYXRjaExlbmd0aAorICAgICAqIEBzZWUgI2dldE1hdGNoZWRUZXh0CisgICAgICogQHNlZSAjZmlyc3QKKyAgICAgKiBAc2VlICNwcmVjZWRpbmcKKyAgICAgKiBAc2VlICNuZXh0CisgICAgICogQHNlZSAjcHJldmlvdXMKKyAgICAgKiBAc2VlICNsYXN0CisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZm9sbG93aW5nKGludCBwb3NpdGlvbikgCisgICAgeworICAgICAgICBtX2lzRm9yd2FyZFNlYXJjaGluZ18gPSB0cnVlOworICAgICAgICAvLyBwb3NpdGlvbiBjaGVja2VkIGluIHVzZWFyY2hfc2V0T2Zmc2V0CisgICAgICAgIHNldEluZGV4KHBvc2l0aW9uKTsKKyAgICAgICAgcmV0dXJuIG5leHQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgPGI+YmFja3dhcmQ8L2I+IG1hdGNoIGluIHRhcmdldCB0ZXh0LiAKKyAgICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBpdGVyYXRpb24gdG8gYmVnaW4gYXQgdGhlIGVuZCBvZiB0aGUgCisgICAgICogdGFyZ2V0IHRleHQgYW5kIHNlYXJjaGVzIGJhY2t3YXJkcyBmcm9tIHRoZXJlLgorICAgICAqIEByZXR1cm4gVGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBmaXJzdCBiYWNrd2FyZCBtYXRjaCwgb3IgCisgICAgICogICAgICAgICA8Y29kZT5ET05FPC9jb2RlPiBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hlcy4KKyAgICAgKiBAc2VlICNnZXRNYXRjaFN0YXJ0CisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc2VlICNnZXRNYXRjaGVkVGV4dAorICAgICAqIEBzZWUgI2ZpcnN0CisgICAgICogQHNlZSAjcHJlY2VkaW5nCisgICAgICogQHNlZSAjbmV4dAorICAgICAqIEBzZWUgI3ByZXZpb3VzCisgICAgICogQHNlZSAjZm9sbG93aW5nCisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgbGFzdCgpIAorICAgIHsKKyAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gZmFsc2U7CisgICAgICAgIHNldEluZGV4KHRhcmdldFRleHQuZ2V0RW5kSW5kZXgoKSk7CisgICAgICAgIHJldHVybiBwcmV2aW91cygpOworICAgIH0KKyAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgPGI+YmFja3dhcmRzPC9iPiBtYXRjaCBpbiB0YXJnZXQgCisgICAgICogdGV4dCB0aGF0IGVuZHMgYXQgb3IgYmVmb3JlIGFyZ3VtZW50IDx0dD5wb3NpdGlvbjwvdHQ+LiAKKyAgICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBpdGVyYXRpb24gdG8gYmVnaW4gYXQgdGhlIGFyZ3VtZW50CisgICAgICogcG9zaXRpb24gaW5kZXggb2YgdGhlIHRhcmdldCB0ZXh0IGFuZCBzZWFyY2hlcyBiYWNrd2FyZHMgZnJvbSB0aGVyZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgZmlyc3QgYmFja3dhcmRzIG1hdGNoLCBvciAKKyAgICAgKiAgICAgICAgIDxjb2RlPkRPTkU8L2NvZGU+IAorICAgICAqICAgICAgICAgaWYgdGhlcmUgYXJlIG5vIG1hdGNoZXMuCisgICAgICogQHNlZSAjZ2V0TWF0Y2hTdGFydAorICAgICAqIEBzZWUgI2dldE1hdGNoTGVuZ3RoCisgICAgICogQHNlZSAjZ2V0TWF0Y2hlZFRleHQKKyAgICAgKiBAc2VlICNmaXJzdAorICAgICAqIEBzZWUgI2ZvbGxvd2luZworICAgICAqIEBzZWUgI25leHQKKyAgICAgKiBAc2VlICNwcmV2aW91cworICAgICAqIEBzZWUgI2xhc3QKKyAgICAgKiBAc2VlICNET05FCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBwcmVjZWRpbmcoaW50IHBvc2l0aW9uKSAKKyAgICB7CisgICAgICAgIG1faXNGb3J3YXJkU2VhcmNoaW5nXyA9IGZhbHNlOworICAgICAgICAvLyBwb3NpdGlvbiBjaGVja2VkIGluIHVzZWFyY2hfc2V0T2Zmc2V0CisgICAgICAgIHNldEluZGV4KHBvc2l0aW9uKTsKKyAgICAgICAgcmV0dXJuIHByZXZpb3VzKCk7ICAgCisgICAgfQorICAgIAorICAgIC8vIHByb3RlY3RlZCBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogVGhlIEJyZWFrSXRlcmF0b3IgdG8gZGVmaW5lIHRoZSBib3VuZGFyaWVzIG9mIGEgbG9naWNhbCBtYXRjaC4KKyAgICAgKiBUaGlzIHZhbHVlIGNhbiBiZSBhIG51bGwuCisgICAgICogU2VlIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogQHNlZSAjc2V0QnJlYWtJdGVyYXRvcihCcmVha0l0ZXJhdG9yKQorICAgICAqIEBzZWUgI2dldEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQnJlYWtJdGVyYXRvciBicmVha0l0ZXJhdG9yOyAKKworICAgIC8qKgorICAgICAqIFRhcmdldCB0ZXh0IGZvciBzZWFyY2hpbmcuCisgICAgICogQHNlZSAjc2V0VGFyZ2V0KENoYXJhY3Rlckl0ZXJhdG9yKQorICAgICAqIEBzZWUgI2dldFRhcmdldAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBDaGFyYWN0ZXJJdGVyYXRvciB0YXJnZXRUZXh0OworICAgIC8qKgorICAgICAqIExlbmd0aCBvZiB0aGUgbW9zdCBjdXJyZW50IG1hdGNoIGluIHRhcmdldCB0ZXh0LiAKKyAgICAgKiBWYWx1ZSAwIGlzIHRoZSBkZWZhdWx0IHZhbHVlLgorICAgICAqIEBzZWUgI3NldE1hdGNoTGVuZ3RoCisgICAgICogQHNlZSAjZ2V0TWF0Y2hMZW5ndGgKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IG1hdGNoTGVuZ3RoOworICAgIAorICAgIC8vIHByb3RlY3RlZCBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogUHJvdGVjdGVkIGNvbnN0cnVjdG9yIGZvciB1c2UgYnkgc3ViY2xhc3Nlcy4KKyAgICAgKiBJbml0aWFsaXplcyB0aGUgaXRlcmF0b3Igd2l0aCB0aGUgYXJndW1lbnQgdGFyZ2V0IHRleHQgZm9yIHNlYXJjaGluZyAKKyAgICAgKiBhbmQgc2V0cyB0aGUgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBTZWUgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzIG9uIHRoZSB1c2Ugb2YgdGhlIHRhcmdldCB0ZXh0CisgICAgICogYW5kIEJyZWFrSXRlcmF0b3IuCisgICAgICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IHRleHQgdG8gYmUgc2VhcmNoZWQuCisgICAgICogQHBhcmFtIGJyZWFrZXIgQSB7QGxpbmsgQnJlYWtJdGVyYXRvcn0gdGhhdCBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgCisgICAgICogICAgICAgICAgICAgICAgYm91bmRhcmllcyBvZiBhIGxvZ2ljYWwgbWF0Y2guIFRoaXMgYXJndW1lbnQgY2FuIGJlIG51bGwuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgdGFyZ2V0IGlzIG51bGwsCisgICAgICogICAgICAgICAgICBvciBvZiBsZW5ndGggMAorICAgICAqIEBzZWUgQnJlYWtJdGVyYXRvciAgCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIFNlYXJjaEl0ZXJhdG9yKENoYXJhY3Rlckl0ZXJhdG9yIHRhcmdldCwgQnJlYWtJdGVyYXRvciBicmVha2VyKQorICAgIHsKKyAgICAgICAgaWYgKHRhcmdldCA9PSBudWxsIAorICAgICAgICAgICAgfHwgKHRhcmdldC5nZXRFbmRJbmRleCgpIC0gdGFyZ2V0LmdldEJlZ2luSW5kZXgoKSkgPT0gMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbGxlZ2FsIGFyZ3VtZW50IHRhcmdldC4gIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgQXJndW1lbnQgY2FuIG5vdCBiZSBudWxsIG9yIG9mIGxlbmd0aCAwIik7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0VGV4dCA9IHRhcmdldDsKKyAgICAgICAgYnJlYWtJdGVyYXRvciA9IGJyZWFrZXI7CisgICAgICAgIGlmIChicmVha0l0ZXJhdG9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJyZWFrSXRlcmF0b3Iuc2V0VGV4dCh0YXJnZXQpOworICAgICAgICB9CisgICAgICAgIG1hdGNoTGVuZ3RoID0gMDsKKyAgICAgICAgbV9sYXN0TWF0Y2hTdGFydF8gPSBET05FOworICAgICAgICBtX2lzT3ZlcmxhcF8gPSBmYWxzZTsKKyAgICAgICAgbV9pc0ZvcndhcmRTZWFyY2hpbmdfID0gdHJ1ZTsKKyAgICAgICAgbV9yZXNldF8gPSB0cnVlOworICAgICAgICBtX3NldE9mZnNldF8gPSBET05FOworICAgIH0gICAgCisgICAgCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbGVuZ3RoIG9mIHRoZSBtb3N0IHJlY2VudCBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuIAorICAgICAqIFN1YmNsYXNzZXMnIGhhbmRsZU5leHQoKSBhbmQgaGFuZGxlUHJldmlvdXMoKSBtZXRob2RzIHNob3VsZCBjYWxsIHRoaXMgCisgICAgICogYWZ0ZXIgdGhleSBmaW5kIGEgbWF0Y2ggaW4gdGhlIHRhcmdldCB0ZXh0LiAgICAKKyAgICAgKiBAcGFyYW0gbGVuZ3RoIG5ldyBsZW5ndGggdG8gc2V0CisgICAgICogQHNlZSAjaGFuZGxlTmV4dAorICAgICAqIEBzZWUgI2hhbmRsZVByZXZpb3VzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0TWF0Y2hMZW5ndGgoaW50IGxlbmd0aCkKKyAgICB7CisgICAgICAgIG1hdGNoTGVuZ3RoID0gbGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIEFic3RyYWN0IG1ldGhvZCB0aGF0IHN1YmNsYXNzZXMgb3ZlcnJpZGUgdG8gcHJvdmlkZSB0aGUgbWVjaGFuaXNtIAorICAgICAqIGZvciBmaW5kaW5nIHRoZSBuZXh0IDxiPmZvcndhcmRzPC9iPiBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuIFRoaXMgCisgICAgICogYWxsb3dzIGRpZmZlcmVudCBzdWJjbGFzc2VzIHRvIHByb3ZpZGUgZGlmZmVyZW50IHNlYXJjaCBhbGdvcml0aG1zLgorICAgICAqIDwvcD4gCisgICAgICogPHA+CisgICAgICogSWYgYSBtYXRjaCBpcyBmb3VuZCwgdGhpcyBmdW5jdGlvbiBtdXN0IGNhbGwgc2V0TWF0Y2hMZW5ndGgoaW50KSB0bworICAgICAqIHNldCB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgbWF0Y2guCisgICAgICogVGhlIGl0ZXJhdG9yIGlzIGFkanVzdGVkIHNvIHRoYXQgaXRzIGN1cnJlbnQgaW5kZXgsIGFzIHJldHVybmVkIGJ5IAorICAgICAqIHtAbGluayAjZ2V0SW5kZXh9LCBpcyB0aGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIG1hdGNoIGlmIG9uZSB3YXMgCisgICAgICogZm91bmQuIElmIGEgbWF0Y2ggaXMgbm90IGZvdW5kLCA8dHQ+RE9ORTwvdHQ+IHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogPC9wPiAKKyAgICAgKiBAcGFyYW0gc3RhcnQgaW5kZXggaW4gdGhlIHRhcmdldCB0ZXh0IGF0IHdoaWNoIHRoZSBmb3J3YXJkcyBzZWFyY2ggCisgICAgICogICAgICAgIHNob3VsZCBiZWdpbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgbmV4dCBmb3J3YXJkcyBtYXRjaCBpZiBmb3VuZCwgRE9ORSAKKyAgICAgKiAgICAgICAgIG90aGVyd2lzZQorICAgICAqIEBzZWUgI3NldE1hdGNoTGVuZ3RoKGludCkKKyAgICAgKiBAc2VlICNoYW5kbGVQcmV2aW91cyhpbnQpCisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnQgaGFuZGxlTmV4dChpbnQgc3RhcnQpOworICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIEFic3RyYWN0IG1ldGhvZCB3aGljaCBzdWJjbGFzc2VzIG92ZXJyaWRlIHRvIHByb3ZpZGUgdGhlIG1lY2hhbmlzbSAKKyAgICAgKiBmb3IgZmluZGluZyB0aGUgbmV4dCA8Yj5iYWNrd2FyZHM8L2I+IG1hdGNoIGluIHRoZSB0YXJnZXQgdGV4dC4gCisgICAgICogVGhpcyBhbGxvd3MgZGlmZmVyZW50IAorICAgICAqIHN1YmNsYXNzZXMgdG8gcHJvdmlkZSBkaWZmZXJlbnQgc2VhcmNoIGFsZ29yaXRobXMuIAorICAgICAqIDwvcD4gCisgICAgICogPHA+CisgICAgICogSWYgYSBtYXRjaCBpcyBmb3VuZCwgdGhpcyBmdW5jdGlvbiBtdXN0IGNhbGwgc2V0TWF0Y2hMZW5ndGgoaW50KSB0bworICAgICAqIHNldCB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgbWF0Y2guCisgICAgICogVGhlIGl0ZXJhdG9yIGlzIGFkanVzdGVkIHNvIHRoYXQgaXRzIGN1cnJlbnQgaW5kZXgsIGFzIHJldHVybmVkIGJ5IAorICAgICAqIHtAbGluayAjZ2V0SW5kZXh9LCBpcyB0aGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIG1hdGNoIGlmIG9uZSB3YXMgCisgICAgICogZm91bmQuIElmIGEgbWF0Y2ggaXMgbm90IGZvdW5kLCA8dHQ+RE9ORTwvdHQ+IHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogPC9wPiAKKyAgICAgKiBAcGFyYW0gc3RhcnRBdCBpbmRleCBpbiB0aGUgdGFyZ2V0IHRleHQgYXQgd2hpY2ggdGhlIGJhY2t3YXJkcyBzZWFyY2ggCisgICAgICogICAgICAgIHNob3VsZCBiZWdpbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgbmV4dCBiYWNrd2FyZHMgbWF0Y2ggaWYgZm91bmQsIAorICAgICAqICAgICAgICAgRE9ORSBvdGhlcndpc2UKKyAgICAgKiBAc2VlICNzZXRNYXRjaExlbmd0aChpbnQpCisgICAgICogQHNlZSAjaGFuZGxlTmV4dChpbnQpCisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnQgaGFuZGxlUHJldmlvdXMoaW50IHN0YXJ0QXQpOworICAgIAorICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEZsYWcgaW5kaWNhdGVzIGlmIHdlIGFyZSBkb2luZyBhIGZvcndhcmRzIHNlYXJjaAorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzRm9yd2FyZFNlYXJjaGluZ187CisgICAgLyoqCisgICAgICogRmxhZyB0byBpbmRpY2F0ZSBpZiBvdmVybGFwcGluZyBzZWFyY2ggaXMgdG8gYmUgZG9uZS4KKyAgICAgKiBFLmcuIGxvb2tpbmcgZm9yICJhYSIgaW4gImFhYSIgd2lsbCB5aWVsZCBtYXRjaGVzIGF0IG9mZnNldCAwIGFuZCAxLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2lzT3ZlcmxhcF87CisgICAgLyoqCisgICAgICogRmxhZyBpbmRpY2F0ZXMgaWYgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiBhIHN0cmluZyBzZWFyY2guCisgICAgICogVGhpcyBpbmRpY2F0ZXMgdGhhdCB3ZSBhcmUgaW4gZm9yd2FyZCBzZWFyY2ggYW5kIGF0IHRoZSBzdGFydCBvZiBtX3RleHQuCisgICAgICovIAorICAgIHByaXZhdGUgYm9vbGVhbiBtX3Jlc2V0XzsKKyAgICAvKioKKyAgICAgKiBEYXRhIG1lbWJlciB0byBzdG9yZSB1c2VyIGRlZmluZWQgcG9zaXRpb24gaW4gc2V0SW5kZXgoKS4KKyAgICAgKiBJZiBzZXRJbmRleCgpIGlzIG5vdCBjYWxsZWQsIHRoaXMgdmFsdWUgd2lsbCBiZSBET05FLgorICAgICAqLyAKKyAgICBwcml2YXRlIGludCBtX3NldE9mZnNldF87CisgICAgLyoqCisgICAgICogT2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxhc3QgbWF0Y2gKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX2xhc3RNYXRjaFN0YXJ0XzsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NpbXBsZURhdGVGb3JtYXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1NpbXBsZURhdGVGb3JtYXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MzU1YjMzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU2ltcGxlRGF0ZUZvcm1hdC5qYXZhCkBAIC0wLDAgKzEsMTkwNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckRhdGE7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5ab25lTWV0YTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlNvZnRSZWZlcmVuY2U7CitpbXBvcnQgamF2YS50ZXh0LkZpZWxkUG9zaXRpb247CitpbXBvcnQgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CisKKy8qKgorICogPGNvZGU+U2ltcGxlRGF0ZUZvcm1hdDwvY29kZT4gaXMgYSBjb25jcmV0ZSBjbGFzcyBmb3IgZm9ybWF0dGluZyBhbmQKKyAqIHBhcnNpbmcgZGF0ZXMgaW4gYSBsb2NhbGUtc2Vuc2l0aXZlIG1hbm5lci4gSXQgYWxsb3dzIGZvciBmb3JtYXR0aW5nCisgKiAoZGF0ZSAtPiB0ZXh0KSwgcGFyc2luZyAodGV4dCAtPiBkYXRlKSwgYW5kIG5vcm1hbGl6YXRpb24uCisgKgorICogPHA+CisgKiA8Y29kZT5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPiBhbGxvd3MgeW91IHRvIHN0YXJ0IGJ5IGNob29zaW5nCisgKiBhbnkgdXNlci1kZWZpbmVkIHBhdHRlcm5zIGZvciBkYXRlLXRpbWUgZm9ybWF0dGluZy4gSG93ZXZlciwgeW91CisgKiBhcmUgZW5jb3VyYWdlZCB0byBjcmVhdGUgYSBkYXRlLXRpbWUgZm9ybWF0dGVyIHdpdGggZWl0aGVyCisgKiA8Y29kZT5nZXRUaW1lSW5zdGFuY2U8L2NvZGU+LCA8Y29kZT5nZXREYXRlSW5zdGFuY2U8L2NvZGU+LCBvcgorICogPGNvZGU+Z2V0RGF0ZVRpbWVJbnN0YW5jZTwvY29kZT4gaW4gPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4uIEVhY2gKKyAqIG9mIHRoZXNlIGNsYXNzIG1ldGhvZHMgY2FuIHJldHVybiBhIGRhdGUvdGltZSBmb3JtYXR0ZXIgaW5pdGlhbGl6ZWQKKyAqIHdpdGggYSBkZWZhdWx0IGZvcm1hdCBwYXR0ZXJuLiBZb3UgbWF5IG1vZGlmeSB0aGUgZm9ybWF0IHBhdHRlcm4KKyAqIHVzaW5nIHRoZSA8Y29kZT5hcHBseVBhdHRlcm48L2NvZGU+IG1ldGhvZHMgYXMgZGVzaXJlZC4KKyAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHVzaW5nIHRoZXNlIG1ldGhvZHMsIHNlZQorICoge0BsaW5rIERhdGVGb3JtYXR9LgorICoKKyAqIDxwPgorICogPHN0cm9uZz5UaW1lIEZvcm1hdCBTeW50YXg6PC9zdHJvbmc+CisgKiA8cD4KKyAqIFRvIHNwZWNpZnkgdGhlIHRpbWUgZm9ybWF0IHVzZSBhIDxlbT50aW1lIHBhdHRlcm48L2VtPiBzdHJpbmcuCisgKiBJbiB0aGlzIHBhdHRlcm4sIGFsbCBBU0NJSSBsZXR0ZXJzIGFyZSByZXNlcnZlZCBhcyBwYXR0ZXJuIGxldHRlcnMsCisgKiB3aGljaCBhcmUgZGVmaW5lZCBhcyB0aGUgZm9sbG93aW5nOgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogU3ltYm9sICAgTWVhbmluZyAgICAgICAgICAgICAgICAgUHJlc2VudGF0aW9uICAgICAgICBFeGFtcGxlCisgKiAtLS0tLS0gICAtLS0tLS0tICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0gICAgICAgIC0tLS0tLS0KKyAqIEcgICAgICAgIGVyYSBkZXNpZ25hdG9yICAgICAgICAgIChUZXh0KSAgICAgICAgICAgICAgQUQKKyAqIHkmI3gyMDIwOyAgICAgICB5ZWFyICAgICAgICAgICAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDE5OTYKKyAqIFkqICAgICAgIHllYXIgKHdlZWsgb2YgeWVhcikgICAgIChOdW1iZXIpICAgICAgICAgICAgMTk5NworICogdSogICAgICAgZXh0ZW5kZWQgeWVhciAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICA0NjAxCisgKiBNICAgICAgICBtb250aCBpbiB5ZWFyICAgICAgICAgICAoVGV4dCAmIE51bWJlcikgICAgIEp1bHkgJiAwNworICogZCAgICAgICAgZGF5IGluIG1vbnRoICAgICAgICAgICAgKE51bWJlcikgICAgICAgICAgICAxMAorICogaCAgICAgICAgaG91ciBpbiBhbS9wbSAoMX4xMikgICAgKE51bWJlcikgICAgICAgICAgICAxMgorICogSCAgICAgICAgaG91ciBpbiBkYXkgKDB+MjMpICAgICAgKE51bWJlcikgICAgICAgICAgICAwCisgKiBtICAgICAgICBtaW51dGUgaW4gaG91ciAgICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDMwCisgKiBzICAgICAgICBzZWNvbmQgaW4gbWludXRlICAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDU1CisgKiBTICAgICAgICBmcmFjdGlvbmFsIHNlY29uZCAgICAgICAoTnVtYmVyKSAgICAgICAgICAgIDk3OAorICogRSAgICAgICAgZGF5IG9mIHdlZWsgICAgICAgICAgICAgKFRleHQpICAgICAgICAgICAgICBUdWVzZGF5CisgKiBlKiAgICAgICBkYXkgb2Ygd2VlayAobG9jYWwgMX43KSAoTnVtYmVyKSAgICAgICAgICAgIDIKKyAqIEQgICAgICAgIGRheSBpbiB5ZWFyICAgICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMTg5CisgKiBGICAgICAgICBkYXkgb2Ygd2VlayBpbiBtb250aCAgICAoTnVtYmVyKSAgICAgICAgICAgIDIgKDJuZCBXZWQgaW4gSnVseSkKKyAqIHcgICAgICAgIHdlZWsgaW4geWVhciAgICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMjcKKyAqIFcgICAgICAgIHdlZWsgaW4gbW9udGggICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMgorICogYSAgICAgICAgYW0vcG0gbWFya2VyICAgICAgICAgICAgKFRleHQpICAgICAgICAgICAgICBQTQorICogayAgICAgICAgaG91ciBpbiBkYXkgKDF+MjQpICAgICAgKE51bWJlcikgICAgICAgICAgICAyNAorICogSyAgICAgICAgaG91ciBpbiBhbS9wbSAoMH4xMSkgICAgKE51bWJlcikgICAgICAgICAgICAwCisgKiB6ICAgICAgICB0aW1lIHpvbmUgICAgICAgICAgICAgICAoVGV4dCkgICAgICAgICAgICAgIFBhY2lmaWMgU3RhbmRhcmQgVGltZQorICogWiAgICAgICAgdGltZSB6b25lIChSRkMgODIyKSAgICAgKE51bWJlcikgICAgICAgICAgICAtMDgwMAorICogdiAgICAgICAgdGltZSB6b25lIChnZW5lcmljKSAgICAgKFRleHQpICAgICAgICAgICAgICBQYWNpZmljIFRpbWUKKyAqIGcqICAgICAgIEp1bGlhbiBkYXkgICAgICAgICAgICAgIChOdW1iZXIpICAgICAgICAgICAgMjQ1MTMzNAorICogQSogICAgICAgbWlsbGlzZWNvbmRzIGluIGRheSAgICAgKE51bWJlcikgICAgICAgICAgICA2OTU0MDAwMAorICogJyAgICAgICAgZXNjYXBlIGZvciB0ZXh0ICAgICAgICAgKERlbGltaXRlcikgICAgICAgICAnRGF0ZT0nCisgKiAnJyAgICAgICBzaW5nbGUgcXVvdGUgICAgICAgICAgICAoTGl0ZXJhbCkgICAgICAgICAgICdvJydjbG9jaycKKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICogPHR0PjxiPio8L2I+PC90dD4gVGhlc2UgaXRlbXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgSmF2YSdzIFNpbXBsZURhdGVGb3JtYXQuPGJyPgorICogPHR0PjxiPiYjeDIwMjA7PC9iPjwvdHQ+IElDVSBpbnRlcnByZXRzIGEgc2luZ2xlICd5JyBkaWZmZXJlbnRseSB0aGFuIEphdmEuPC9wPgorICogPHA+CisgKiBUaGUgY291bnQgb2YgcGF0dGVybiBsZXR0ZXJzIGRldGVybWluZSB0aGUgZm9ybWF0LgorICogPHA+CisgKiA8c3Ryb25nPihUZXh0KTwvc3Ryb25nPjogNCBvciBtb3JlIHBhdHRlcm4gbGV0dGVycy0tdXNlIGZ1bGwgZm9ybSwKKyAqICZsdDsgNC0tdXNlIHNob3J0IG9yIGFiYnJldmlhdGVkIGZvcm0gaWYgb25lIGV4aXN0cy4KKyAqIDxwPgorICogPHN0cm9uZz4oTnVtYmVyKTwvc3Ryb25nPjogdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cy4gU2hvcnRlcgorICogbnVtYmVycyBhcmUgemVyby1wYWRkZWQgdG8gdGhpcyBhbW91bnQuIFllYXIgaXMgaGFuZGxlZCBzcGVjaWFsbHk7CisgKiB0aGF0IGlzLCBpZiB0aGUgY291bnQgb2YgJ3knIGlzIDIsIHRoZSBZZWFyIHdpbGwgYmUgdHJ1bmNhdGVkIHRvIDIgZGlnaXRzLgorICogKGUuZy4sIGlmICJ5eXl5IiBwcm9kdWNlcyAiMTk5NyIsICJ5eSIgcHJvZHVjZXMgIjk3Ii4pCisgKiBVbmxpa2Ugb3RoZXIgZmllbGRzLCBmcmFjdGlvbmFsIHNlY29uZHMgYXJlIHBhZGRlZCBvbiB0aGUgcmlnaHQgd2l0aCB6ZXJvLgorICogPHA+CisgKiA8c3Ryb25nPihUZXh0ICYgTnVtYmVyKTwvc3Ryb25nPjogMyBvciBvdmVyLCB1c2UgdGV4dCwgb3RoZXJ3aXNlIHVzZSBudW1iZXIuCisgKiA8cD4KKyAqIEFueSBjaGFyYWN0ZXJzIGluIHRoZSBwYXR0ZXJuIHRoYXQgYXJlIG5vdCBpbiB0aGUgcmFuZ2VzIG9mIFsnYScuLid6J10KKyAqIGFuZCBbJ0EnLi4nWiddIHdpbGwgYmUgdHJlYXRlZCBhcyBxdW90ZWQgdGV4dC4gRm9yIGluc3RhbmNlLCBjaGFyYWN0ZXJzCisgKiBsaWtlICc6JywgJy4nLCAnICcsICcjJyBhbmQgJ0AnIHdpbGwgYXBwZWFyIGluIHRoZSByZXN1bHRpbmcgdGltZSB0ZXh0CisgKiBldmVuIHRoZXkgYXJlIG5vdCBlbWJyYWNlZCB3aXRoaW4gc2luZ2xlIHF1b3Rlcy4KKyAqIDxwPgorICogQSBwYXR0ZXJuIGNvbnRhaW5pbmcgYW55IGludmFsaWQgcGF0dGVybiBsZXR0ZXIgd2lsbCByZXN1bHQgaW4gYSB0aHJvd24KKyAqIGV4Y2VwdGlvbiBkdXJpbmcgZm9ybWF0dGluZyBvciBwYXJzaW5nLgorICoKKyAqIDxwPgorICogPHN0cm9uZz5FeGFtcGxlcyBVc2luZyB0aGUgVVMgTG9jYWxlOjwvc3Ryb25nPgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogRm9ybWF0IFBhdHRlcm4gICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0CisgKiAtLS0tLS0tLS0tLS0tLSAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tCisgKiAieXl5eS5NTS5kZCBHICdhdCcgSEg6bW06c3MgdnZ2diIgLT4+ICAxOTk2LjA3LjEwIEFEIGF0IDE1OjA4OjU2IFBhY2lmaWMgVGltZQorICogIkVFRSwgTU1NIGQsICcneXkiICAgICAgICAgICAgICAgIC0+PiAgV2VkLCBKdWx5IDEwLCAnOTYKKyAqICJoOm1tIGEiICAgICAgICAgICAgICAgICAgICAgICAgICAtPj4gIDEyOjA4IFBNCisgKiAiaGggJ28nJ2Nsb2NrJyBhLCB6enp6IiAgICAgICAgICAgLT4+ICAxMiBvJ2Nsb2NrIFBNLCBQYWNpZmljIERheWxpZ2h0IFRpbWUKKyAqICJLOm1tIGEsIHZ2diIgICAgICAgICAgICAgICAgICAgICAtPj4gIDA6MDAgUE0sIFBUCisgKiAieXl5eXkuTU1NTU0uZGQgR0dHIGhoOm1tIGFhYSIgICAgLT4+ICAwMTk5Ni5KdWx5LjEwIEFEIDEyOjA4IFBNCisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIDxzdHJvbmc+Q29kZSBTYW1wbGU6PC9zdHJvbmc+CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBTaW1wbGVUaW1lWm9uZSBwZHQgPSBuZXcgU2ltcGxlVGltZVpvbmUoLTggKiA2MCAqIDYwICogMTAwMCwgIlBTVCIpOworICogcGR0LnNldFN0YXJ0UnVsZShDYWxlbmRhci5BUFJJTCwgMSwgQ2FsZW5kYXIuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICogcGR0LnNldEVuZFJ1bGUoQ2FsZW5kYXIuT0NUT0JFUiwgLTEsIENhbGVuZGFyLlNVTkRBWSwgMio2MCo2MCoxMDAwKTsKKyAqIDxicj4KKyAqIC8vIEZvcm1hdCB0aGUgY3VycmVudCB0aW1lLgorICogU2ltcGxlRGF0ZUZvcm1hdCBmb3JtYXR0ZXIKKyAqICAgICA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0ICgieXl5eS5NTS5kZCBHICdhdCcgaGg6bW06c3MgYSB6enoiKTsKKyAqIERhdGUgY3VycmVudFRpbWVfMSA9IG5ldyBEYXRlKCk7CisgKiBTdHJpbmcgZGF0ZVN0cmluZyA9IGZvcm1hdHRlci5mb3JtYXQoY3VycmVudFRpbWVfMSk7CisgKiA8YnI+CisgKiAvLyBQYXJzZSB0aGUgcHJldmlvdXMgc3RyaW5nIGJhY2sgaW50byBhIERhdGUuCisgKiBQYXJzZVBvc2l0aW9uIHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICogRGF0ZSBjdXJyZW50VGltZV8yID0gZm9ybWF0dGVyLnBhcnNlKGRhdGVTdHJpbmcsIHBvcyk7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIEluIHRoZSBleGFtcGxlLCB0aGUgdGltZSB2YWx1ZSA8Y29kZT5jdXJyZW50VGltZV8yPC9jb2RlPiBvYnRhaW5lZCBmcm9tCisgKiBwYXJzaW5nIHdpbGwgYmUgZXF1YWwgdG8gPGNvZGU+Y3VycmVudFRpbWVfMTwvY29kZT4uIEhvd2V2ZXIsIHRoZXkgbWF5IG5vdCBiZQorICogZXF1YWwgaWYgdGhlIGFtL3BtIG1hcmtlciAnYScgaXMgbGVmdCBvdXQgZnJvbSB0aGUgZm9ybWF0IHBhdHRlcm4gd2hpbGUKKyAqIHRoZSAiaG91ciBpbiBhbS9wbSIgcGF0dGVybiBzeW1ib2wgaXMgdXNlZC4gVGhpcyBpbmZvcm1hdGlvbiBsb3NzIGNhbgorICogaGFwcGVuIHdoZW4gZm9ybWF0dGluZyB0aGUgdGltZSBpbiBQTS4KKyAqCisgKiA8cD4KKyAqIFdoZW4gcGFyc2luZyBhIGRhdGUgc3RyaW5nIHVzaW5nIHRoZSBhYmJyZXZpYXRlZCB5ZWFyIHBhdHRlcm4gKCJ5eSIpLAorICogU2ltcGxlRGF0ZUZvcm1hdCBtdXN0IGludGVycHJldCB0aGUgYWJicmV2aWF0ZWQgeWVhcgorICogcmVsYXRpdmUgdG8gc29tZSBjZW50dXJ5LiAgSXQgZG9lcyB0aGlzIGJ5IGFkanVzdGluZyBkYXRlcyB0byBiZQorICogd2l0aGluIDgwIHllYXJzIGJlZm9yZSBhbmQgMjAgeWVhcnMgYWZ0ZXIgdGhlIHRpbWUgdGhlIFNpbXBsZURhdGVGb3JtYXQKKyAqIGluc3RhbmNlIGlzIGNyZWF0ZWQuIEZvciBleGFtcGxlLCB1c2luZyBhIHBhdHRlcm4gb2YgIk1NL2RkL3l5IiBhbmQgYQorICogU2ltcGxlRGF0ZUZvcm1hdCBpbnN0YW5jZSBjcmVhdGVkIG9uIEphbiAxLCAxOTk3LCAgdGhlIHN0cmluZworICogIjAxLzExLzEyIiB3b3VsZCBiZSBpbnRlcnByZXRlZCBhcyBKYW4gMTEsIDIwMTIgd2hpbGUgdGhlIHN0cmluZyAiMDUvMDQvNjQiCisgKiB3b3VsZCBiZSBpbnRlcnByZXRlZCBhcyBNYXkgNCwgMTk2NC4KKyAqIER1cmluZyBwYXJzaW5nLCBvbmx5IHN0cmluZ3MgY29uc2lzdGluZyBvZiBleGFjdGx5IHR3byBkaWdpdHMsIGFzIGRlZmluZWQgYnkKKyAqIHtAbGluayBqYXZhLmxhbmcuQ2hhcmFjdGVyI2lzRGlnaXQoY2hhcil9LCB3aWxsIGJlIHBhcnNlZCBpbnRvIHRoZSBkZWZhdWx0CisgKiBjZW50dXJ5LgorICogQW55IG90aGVyIG51bWVyaWMgc3RyaW5nLCBzdWNoIGFzIGEgb25lIGRpZ2l0IHN0cmluZywgYSB0aHJlZSBvciBtb3JlIGRpZ2l0CisgKiBzdHJpbmcsIG9yIGEgdHdvIGRpZ2l0IHN0cmluZyB0aGF0IGlzbid0IGFsbCBkaWdpdHMgKGZvciBleGFtcGxlLCAiLTEiKSwgaXMKKyAqIGludGVycHJldGVkIGxpdGVyYWxseS4gIFNvICIwMS8wMi8zIiBvciAiMDEvMDIvMDAzIiBhcmUgcGFyc2VkLCB1c2luZyB0aGUKKyAqIHNhbWUgcGF0dGVybiwgYXMgSmFuIDIsIDMgQUQuICBMaWtld2lzZSwgIjAxLzAyLy0zIiBpcyBwYXJzZWQgYXMgSmFuIDIsIDQgQkMuCisgKgorICogPHA+CisgKiBJZiB0aGUgeWVhciBwYXR0ZXJuIGRvZXMgbm90IGhhdmUgZXhhY3RseSB0d28gJ3knIGNoYXJhY3RlcnMsIHRoZSB5ZWFyIGlzCisgKiBpbnRlcnByZXRlZCBsaXRlcmFsbHksIHJlZ2FyZGxlc3Mgb2YgdGhlIG51bWJlciBvZiBkaWdpdHMuICBTbyB1c2luZyB0aGUKKyAqIHBhdHRlcm4gIk1NL2RkL3l5eXkiLCAiMDEvMTEvMTIiIHBhcnNlcyB0byBKYW4gMTEsIDEyIEEuRC4KKyAqCisgKiA8cD4KKyAqIFdoZW4gbnVtZXJpYyBmaWVsZHMgYWJ1dCBvbmUgYW5vdGhlciBkaXJlY3RseSwgd2l0aCBubyBpbnRlcnZlbmluZyBkZWxpbWl0ZXIKKyAqIGNoYXJhY3RlcnMsIHRoZXkgY29uc3RpdHV0ZSBhIHJ1biBvZiBhYnV0dGluZyBudW1lcmljIGZpZWxkcy4gIFN1Y2ggcnVucyBhcmUKKyAqIHBhcnNlZCBzcGVjaWFsbHkuICBGb3IgZXhhbXBsZSwgdGhlIGZvcm1hdCAiSEhtbXNzIiBwYXJzZXMgdGhlIGlucHV0IHRleHQKKyAqICIxMjM0NTYiIHRvIDEyOjM0OjU2LCBwYXJzZXMgdGhlIGlucHV0IHRleHQgIjEyMzQ1IiB0byAxOjIzOjQ1LCBhbmQgZmFpbHMgdG8KKyAqIHBhcnNlICIxMjM0Ii4gIEluIG90aGVyIHdvcmRzLCB0aGUgbGVmdG1vc3QgZmllbGQgb2YgdGhlIHJ1biBpcyBmbGV4aWJsZSwKKyAqIHdoaWxlIHRoZSBvdGhlcnMga2VlcCBhIGZpeGVkIHdpZHRoLiAgSWYgdGhlIHBhcnNlIGZhaWxzIGFueXdoZXJlIGluIHRoZSBydW4sCisgKiB0aGVuIHRoZSBsZWZ0bW9zdCBmaWVsZCBpcyBzaG9ydGVuZWQgYnkgb25lIGNoYXJhY3RlciwgYW5kIHRoZSBlbnRpcmUgcnVuIGlzCisgKiBwYXJzZWQgYWdhaW4uIFRoaXMgaXMgcmVwZWF0ZWQgdW50aWwgZWl0aGVyIHRoZSBwYXJzZSBzdWNjZWVkcyBvciB0aGUKKyAqIGxlZnRtb3N0IGZpZWxkIGlzIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoLiAgSWYgdGhlIHBhcnNlIHN0aWxsIGZhaWxzIGF0IHRoYXQKKyAqIHBvaW50LCB0aGUgcGFyc2Ugb2YgdGhlIHJ1biBmYWlscy4KKyAqCisgKiA8cD4KKyAqIEZvciB0aW1lIHpvbmVzIHRoYXQgaGF2ZSBubyBuYW1lcywgdXNlIHN0cmluZ3MgR01UK2hvdXJzOm1pbnV0ZXMgb3IKKyAqIEdNVC1ob3VyczptaW51dGVzLgorICoKKyAqIDxwPgorICogVGhlIGNhbGVuZGFyIGRlZmluZXMgd2hhdCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLCB0aGUgZmlyc3Qgd2VlaworICogb2YgdGhlIHllYXIsIHdoZXRoZXIgaG91cnMgYXJlIHplcm8gYmFzZWQgb3Igbm90ICgwIHZzIDEyIG9yIDI0KSwgYW5kIHRoZQorICogdGltZSB6b25lLiBUaGVyZSBpcyBvbmUgY29tbW9uIGRlY2ltYWwgZm9ybWF0IHRvIGhhbmRsZSBhbGwgdGhlIG51bWJlcnM7CisgKiB0aGUgZGlnaXQgY291bnQgaXMgaGFuZGxlZCBwcm9ncmFtbWF0aWNhbGx5IGFjY29yZGluZyB0byB0aGUgcGF0dGVybi4KKyAqCisgKiA8aDQ+U3luY2hyb25pemF0aW9uPC9oND4KKyAqCisgKiBEYXRlIGZvcm1hdHMgYXJlIG5vdCBzeW5jaHJvbml6ZWQuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSBzZXBhcmF0ZQorICogZm9ybWF0IGluc3RhbmNlcyBmb3IgZWFjaCB0aHJlYWQuIElmIG11bHRpcGxlIHRocmVhZHMgYWNjZXNzIGEgZm9ybWF0CisgKiBjb25jdXJyZW50bHksIGl0IG11c3QgYmUgc3luY2hyb25pemVkIGV4dGVybmFsbHkuCisgKgorICogQHNlZSAgICAgICAgICBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICAgICAgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZQorICogQHNlZSAgICAgICAgICBEYXRlRm9ybWF0CisgKiBAc2VlICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzCisgKiBAc2VlICAgICAgICAgIERlY2ltYWxGb3JtYXQKKyAqIEBhdXRob3IgICAgICAgTWFyayBEYXZpcywgQ2hlbi1MaWVoIEh1YW5nLCBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBTaW1wbGVEYXRlRm9ybWF0IGV4dGVuZHMgRGF0ZUZvcm1hdCB7CisKKyAgICAvLyB0aGUgb2ZmaWNpYWwgc2VyaWFsIHZlcnNpb24gSUQgd2hpY2ggc2F5cyBjcnlwdGljYWxseQorICAgIC8vIHdoaWNoIHZlcnNpb24gd2UncmUgY29tcGF0aWJsZSB3aXRoCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gNDc3NDg4MTk3MDU1ODg3NTAyNEw7CisKKyAgICAvLyB0aGUgaW50ZXJuYWwgc2VyaWFsIHZlcnNpb24gd2hpY2ggc2F5cyB3aGljaCB2ZXJzaW9uIHdhcyB3cml0dGVuCisgICAgLy8gLSAwIChkZWZhdWx0KSBmb3IgdmVyc2lvbiB1cCB0byBKREsgMS4xLjMKKyAgICAvLyAtIDEgZm9yIHZlcnNpb24gZnJvbSBKREsgMS4xLjQsIHdoaWNoIGluY2x1ZGVzIGEgbmV3IGZpZWxkCisgICAgc3RhdGljIGZpbmFsIGludCBjdXJyZW50U2VyaWFsVmVyc2lvbiA9IDE7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgc2VyaWFsaXplZCBkYXRhIG9uIHRoZSBzdHJlYW0uICBQb3NzaWJsZSB2YWx1ZXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj4wPC9iPiBvciBub3QgcHJlc2VudCBvbiBzdHJlYW06IEpESyAxLjEuMy4gIFRoaXMgdmVyc2lvbgorICAgICAqIGhhcyBubyA8Y29kZT5kZWZhdWx0Q2VudHVyeVN0YXJ0PC9jb2RlPiBvbiBzdHJlYW0uCisgICAgICogPGxpPjxiPjE8L2I+IEpESyAxLjEuNCBvciBsYXRlci4gIFRoaXMgdmVyc2lvbiBhZGRzCisgICAgICogPGNvZGU+ZGVmYXVsdENlbnR1cnlTdGFydDwvY29kZT4uCisgICAgICogPC91bD4KKyAgICAgKiBXaGVuIHN0cmVhbWluZyBvdXQgdGhpcyBjbGFzcywgdGhlIG1vc3QgcmVjZW50IGZvcm1hdAorICAgICAqIGFuZCB0aGUgaGlnaGVzdCBhbGxvd2FibGUgPGNvZGU+c2VyaWFsVmVyc2lvbk9uU3RyZWFtPC9jb2RlPgorICAgICAqIGlzIHdyaXR0ZW4uCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgaW50IHNlcmlhbFZlcnNpb25PblN0cmVhbSA9IGN1cnJlbnRTZXJpYWxWZXJzaW9uOworCisgICAgLyoqCisgICAgICogVGhlIHBhdHRlcm4gc3RyaW5nIG9mIHRoaXMgZm9ybWF0dGVyLiAgVGhpcyBpcyBhbHdheXMgYSBub24tbG9jYWxpemVkCisgICAgICogcGF0dGVybi4gIE1heSBub3QgYmUgbnVsbC4gIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXR0ZXJuOworCisgICAgLyoqCisgICAgICogVGhlIHN5bWJvbHMgdXNlZCBieSB0aGlzIGZvcm1hdHRlciBmb3Igd2VlayBuYW1lcywgbW9udGggbmFtZXMsCisgICAgICogZXRjLiAgTWF5IG5vdCBiZSBudWxsLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2VlIERhdGVGb3JtYXRTeW1ib2xzCisgICAgICovCisgICAgcHJpdmF0ZSBEYXRlRm9ybWF0U3ltYm9scyBmb3JtYXREYXRhOworCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgVUxvY2FsZSBsb2NhbGU7CisKKyAgICAvKioKKyAgICAgKiBXZSBtYXAgZGF0ZXMgd2l0aCB0d28tZGlnaXQgeWVhcnMgaW50byB0aGUgY2VudHVyeSBzdGFydGluZyBhdAorICAgICAqIDxjb2RlPmRlZmF1bHRDZW50dXJ5U3RhcnQ8L2NvZGU+LCB3aGljaCBtYXkgYmUgYW55IGRhdGUuICBNYXkKKyAgICAgKiBub3QgYmUgbnVsbC4KKyAgICAgKiBAc2VyaWFsCisgICAgICogQHNpbmNlIEpESzEuMS40CisgICAgICovCisgICAgcHJpdmF0ZSBEYXRlIGRlZmF1bHRDZW50dXJ5U3RhcnQ7CisKKyAgICB0cmFuc2llbnQgcHJpdmF0ZSBpbnQgZGVmYXVsdENlbnR1cnlTdGFydFllYXI7CisKKyAgICBwcml2YXRlIHRyYW5zaWVudCBUaW1lWm9uZSBwYXJzZWRUaW1lWm9uZTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBtaWxsaXNQZXJIb3VyID0gNjAgKiA2MCAqIDEwMDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IG1pbGxpc1Blck1pbnV0ZSA9IDYwICogMTAwMDsKKworICAgIC8vIEZvciB0aW1lIHpvbmVzIHRoYXQgaGF2ZSBubyBuYW1lcywgdXNlIHN0cmluZ3MgR01UK21pbnV0ZXMgYW5kCisgICAgLy8gR01ULW1pbnV0ZXMuIEZvciBpbnN0YW5jZSwgaW4gRnJhbmNlIHRoZSB0aW1lIHpvbmUgaXMgR01UKzYwLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBHTVRfUExVUyA9ICJHTVQrIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgR01UX01JTlVTID0gIkdNVC0iOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBHTVQgPSAiR01UIjsKKworICAgIC8vIFRoaXMgcHJlZml4IGlzIGRlc2lnbmVkIHRvIE5FVkVSIE1BVENIIHJlYWwgdGV4dCwgaW4gb3JkZXIgdG8KKyAgICAvLyBzdXBwcmVzcyB0aGUgcGFyc2luZyBvZiBuZWdhdGl2ZSBudW1iZXJzLiAgQWRqdXN0IGFzIG5lZWRlZCAoaWYKKyAgICAvLyB0aGlzIGJlY29tZXMgdmFsaWQgVW5pY29kZSkuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFNVUFBSRVNTX05FR0FUSVZFX1BSRUZJWCA9ICJcdUFCMDAiOworCisgICAgLyoqCisgICAgICogQ2FjaGUgdG8gaG9sZCB0aGUgRGF0ZVRpbWVQYXR0ZXJucyBvZiBhIExvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBIYXNodGFibGUgY2FjaGVkTG9jYWxlRGF0YSA9IG5ldyBIYXNodGFibGUoMyk7CisKKyAgICAvKioKKyAgICAgKiBJZiB0cnVlLCB0aGlzIG9iamVjdCBzdXBwb3J0cyBmYXN0IGZvcm1hdHRpbmcgdXNpbmcgdGhlCisgICAgICogc3ViRm9ybWF0IHZhcmlhbnQgdGhhdCB0YWtlcyBhIFN0cmluZ0J1ZmZlci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIHVzZUZhc3RGb3JtYXQ7CisKKyAgICAvKioKKyAgICAgKiBJZiB0cnVlLCB0aGlzIG9iamVjdCBzdXBwb3J0cyBmYXN0IG51bWJlciBmb3JtYXQKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuIHVzZUZhc3RaZXJvUGFkZGluZ051bWJlcjsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBjaGFyIHplcm9EaWdpdDsKKyAgICBwcml2YXRlIGNoYXJbXSBkZWNpbWFsQnVmID0gbmV3IGNoYXJbMTBdOyAvLyAxMCBkaWdpdCBpcyBnb29kIGVub3VnaCB0byBzdG9yZSBJbnRlcmdlci5NQVhfVkFMVUUKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTaW1wbGVEYXRlRm9ybWF0IHVzaW5nIHRoZSBkZWZhdWx0IHBhdHRlcm4gZm9yIHRoZSBkZWZhdWx0CisgICAgICogbG9jYWxlLiAgPGI+Tm90ZTo8L2I+IE5vdCBhbGwgbG9jYWxlcyBzdXBwb3J0IFNpbXBsZURhdGVGb3JtYXQ7IGZvciBmdWxsCisgICAgICogZ2VuZXJhbGl0eSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMgaW4gdGhlIERhdGVGb3JtYXQgY2xhc3MuCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlRGF0ZUZvcm1hdCgpIHsKKyAgICAgICAgdGhpcyhTSE9SVCwgU0hPUlQsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTaW1wbGVEYXRlRm9ybWF0IHVzaW5nIHRoZSBnaXZlbiBwYXR0ZXJuIGluIHRoZSBkZWZhdWx0CisgICAgICogbG9jYWxlLiAgPGI+Tm90ZTo8L2I+IE5vdCBhbGwgbG9jYWxlcyBzdXBwb3J0IFNpbXBsZURhdGVGb3JtYXQ7IGZvciBmdWxsCisgICAgICogZ2VuZXJhbGl0eSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMgaW4gdGhlIERhdGVGb3JtYXQgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4pCisgICAgeworICAgICAgICB0aGlzKHBhdHRlcm4sIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBTaW1wbGVEYXRlRm9ybWF0IHVzaW5nIHRoZSBnaXZlbiBwYXR0ZXJuIGFuZCBsb2NhbGUuCisgICAgICogPGI+Tm90ZTo8L2I+IE5vdCBhbGwgbG9jYWxlcyBzdXBwb3J0IFNpbXBsZURhdGVGb3JtYXQ7IGZvciBmdWxsCisgICAgICogZ2VuZXJhbGl0eSwgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZHMgaW4gdGhlIERhdGVGb3JtYXQgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIExvY2FsZSBsb2MpCisgICAgeworICAgICAgICB0aGlzKHBhdHRlcm4sIFVMb2NhbGUuZm9yTG9jYWxlKGxvYykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNpbXBsZURhdGVGb3JtYXQgdXNpbmcgdGhlIGdpdmVuIHBhdHRlcm4gYW5kIGxvY2FsZS4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gTm90IGFsbCBsb2NhbGVzIHN1cHBvcnQgU2ltcGxlRGF0ZUZvcm1hdDsgZm9yIGZ1bGwKKyAgICAgKiBnZW5lcmFsaXR5LCB1c2UgdGhlIGZhY3RvcnkgbWV0aG9kcyBpbiB0aGUgRGF0ZUZvcm1hdCBjbGFzcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBVTG9jYWxlIGxvYykKKyAgICB7CisgICAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47CisgICAgICAgIHRoaXMuZm9ybWF0RGF0YSA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhsb2MpOworICAgICAgICBpbml0aWFsaXplKGxvYyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU2ltcGxlRGF0ZUZvcm1hdCB1c2luZyB0aGUgZ2l2ZW4gcGF0dGVybiBhbmQKKyAgICAgKiBsb2NhbGUtc3BlY2lmaWMgc3ltYm9sIGRhdGEuCisgICAgICogV2FybmluZzogdXNlcyBkZWZhdWx0IGxvY2FsZSBmb3IgZGlnaXRzIQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVEYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBEYXRlRm9ybWF0U3ltYm9scyBmb3JtYXREYXRhKQorICAgIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCBmb3JtYXREYXRhLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlRGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgRGF0ZUZvcm1hdFN5bWJvbHMgZm9ybWF0RGF0YSwgVUxvY2FsZSBsb2MpCisgICAgeworICAgICAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuOworICAgICAgICB0aGlzLmZvcm1hdERhdGEgPSAoRGF0ZUZvcm1hdFN5bWJvbHMpIGZvcm1hdERhdGEuY2xvbmUoKTsKKworICAgICAgICBpbml0aWFsaXplKGxvYyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFja2FnZS1wcml2YXRlIGNvbnN0cnVjdG9yIHRoYXQgYWxsb3dzIGEgc3ViY2xhc3MgdG8gc3BlY2lmeQorICAgICAqIHdoZXRoZXIgaXQgc3VwcG9ydHMgZmFzdCBmb3JtYXR0aW5nLgorICAgICAqCisgICAgICogVE9ETyBtYWtlIHRoaXMgQVBJIHB1YmxpYy4KKyAgICAgKi8KKyAgICBTaW1wbGVEYXRlRm9ybWF0KFN0cmluZyBwYXR0ZXJuLCBEYXRlRm9ybWF0U3ltYm9scyBmb3JtYXREYXRhLAorICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB1c2VGYXN0Rm9ybWF0KSB7CisgICAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47CisgICAgICAgIHRoaXMuZm9ybWF0RGF0YSA9IChEYXRlRm9ybWF0U3ltYm9scykgZm9ybWF0RGF0YS5jbG9uZSgpOworICAgICAgICBpbml0aWFsaXplKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgLy8gdGhpcy51c2VGYXN0Rm9ybWF0IGlzIHNldCBieSBpbml0aWFsaXplKCk7IGZpeCBpdCB1cCBhZnRlcndhcmRzCisgICAgICAgIHRoaXMudXNlRmFzdEZvcm1hdCA9IHVzZUZhc3RGb3JtYXQ7CisgICAgfQorCisgICAgLy8gdHJ5IGNhY2hpbmcKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIENBQ0hFID0gdHJ1ZTsKKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIGNhY2hlQWdlOworICAgIHByaXZhdGUgc3RhdGljIFNvZnRSZWZlcmVuY2UgaGlnaENhY2hlUmVmOworCisgICAgLyogUGFja2FnZS1wcml2YXRlLCBjYWxsZWQgYnkgRGF0ZUZvcm1hdCBmYWN0b3J5IG1ldGhvZHMgKi8KKyAgICBTaW1wbGVEYXRlRm9ybWF0KGludCB0aW1lU3R5bGUsIGludCBkYXRlU3R5bGUsIFVMb2NhbGUgbG9jKSB7CisgICAgICAgIC8vIHRyeSBhIGhpZ2ggbGV2ZWwgY2FjaGUgZmlyc3QhCisKKyAgICAgICAgTWFwIG1hcCA9IG51bGw7CisgICAgICAgIFN0cmluZyBrZXkgPSBudWxsOworICAgICAgICBpZiAoQ0FDSEUpIHsKKyAgICAgICAgICAgIC8vIGFnZSB0ZXN0IGlzIHNvIHdlIGRvbid0IGhhdmUgdG8gY29tcHV0ZSB0aGUgY2VudHVyeSBzdGFydCBhbGwgdGhlIHRpbWUuLi4gb25jZSBhIGRheSBpcyBlbm91Z2guCisgICAgICAgICAgICBsb25nIHRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKyAgICAgICAgICAgIGlmICgoKHRpbWUgLSBjYWNoZUFnZSkgPCAxMDAwKjYwKjYwKjI0TCkgJiYgaGlnaENhY2hlUmVmICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtYXAgPSAoTWFwKWhpZ2hDYWNoZVJlZi5nZXQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtYXAgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1hcCA9IG5ldyBIYXNoTWFwKDMpOworICAgICAgICAgICAgICAgIGhpZ2hDYWNoZVJlZiA9IG5ldyBTb2Z0UmVmZXJlbmNlKG1hcCk7CisgICAgICAgICAgICAgICAgY2FjaGVBZ2UgPSB0aW1lOworICAgICAgICAgICAgfQorICAgICAgICAgICAga2V5ID0gbG9jLnRvU3RyaW5nKCkgKyB0aW1lU3R5bGUgKyBkYXRlU3R5bGU7CisgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IHRhcmdldCA9IChTaW1wbGVEYXRlRm9ybWF0KW1hcC5nZXQoa2V5KTsKKyAgICAgICAgICAgIGlmICh0YXJnZXQgIT0gbnVsbCkgeyAvLyBraW5kb2Ygc2thbmt5CisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgaWYgKCJlbl9VUzIyIi5lcXVhbHMoa2V5KSkKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbmZvdW5kIGtleTogIiArIGtleSArICIgcGF0OiAiICsgdGFyZ2V0LnBhdHRlcm4gKworICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICIgY2FsOiAiICsgdGFyZ2V0LmNhbGVuZGFyICsgIiBmbXQ6ICIgKyB0YXJnZXQubnVtYmVyRm9ybWF0KTsKKyAgICAgICAgICAgICAgICB0aGlzLnBhdHRlcm4gPSB0YXJnZXQucGF0dGVybjsKKyAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdERhdGEgPSB0YXJnZXQuZm9ybWF0RGF0YTsKKyAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDZW50dXJ5U3RhcnQgPSB0YXJnZXQuZGVmYXVsdENlbnR1cnlTdGFydDsKKyAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDZW50dXJ5U3RhcnRZZWFyID0gdGFyZ2V0LmRlZmF1bHRDZW50dXJ5U3RhcnRZZWFyOworICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXIgPSAoQ2FsZW5kYXIpdGFyZ2V0LmNhbGVuZGFyLmNsb25lKCk7CisgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhci5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXREZWZhdWx0KCkpOyAvLyBtaWdodCBoYXZlIGNoYW5nZWQgc2luY2UgY2FjaGVkCisgICAgICAgICAgICAgICAgdGhpcy5udW1iZXJGb3JtYXQgPSAoTnVtYmVyRm9ybWF0KXRhcmdldC5udW1iZXJGb3JtYXQuY2xvbmUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKiB0cnkgdGhlIGNhY2hlIGZpcnN0ICovCisgICAgICAgIFN0cmluZ1tdIGRhdGVUaW1lUGF0dGVybnMgPSAoU3RyaW5nW10pIGNhY2hlZExvY2FsZURhdGEuZ2V0KGxvYyk7CisgICAgICAgIGlmIChkYXRlVGltZVBhdHRlcm5zID09IG51bGwpIHsgLyogY2FjaGUgbWlzcyAqLworICAgICAgICAgICAgQ2FsZW5kYXJEYXRhIGNhbERhdGEgPSBuZXcgQ2FsZW5kYXJEYXRhKGxvYywgbnVsbCk7IC8vIFRPRE86IHR5cGU/CisgICAgICAgICAgICAvLyBUT0RPOiBnZXQgY29ycmVjdCBhY3R1YWwvdmFsaWQgbG9jYWxlIGhlcmUKKyAgICAgICAgICAgIFVMb2NhbGUgdWxvYyA9IGNhbERhdGEuZ2V0VUxvY2FsZSgpOworICAgICAgICAgICAgc2V0TG9jYWxlKHVsb2MsIHVsb2MpOworCisgICAgICAgICAgICBkYXRlVGltZVBhdHRlcm5zID0gY2FsRGF0YS5nZXRTdHJpbmdBcnJheSgiRGF0ZVRpbWVQYXR0ZXJucyIpOworICAgICAgICAgICAgLyogdXBkYXRlIGNhY2hlICovCisgICAgICAgICAgICBjYWNoZWRMb2NhbGVEYXRhLnB1dChsb2MsIGRhdGVUaW1lUGF0dGVybnMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAvLyBmb3Igbm93LCBqdXN0IGFzc3VtZSB0aGlzIGlzIGNvcnJlY3QsIHNvIHdlIGhhdmUgbm9uLW51bGwgbG9jYWxlIGluZm8uCisgICAgICAgIC8vIHdlIG1heSBoYXZlIHRvIGNhY2hlIHRoZSByZXN1bHQgb2YgY2FsRGF0YS5nZXRVTG9jYWxlIHdpdGggdGhlIHBhdHRlcm4gc3RyaW5ncworICAgICAgICAvLyBhbmQgc2V0IHRoZSBsb2NhbGUgd2l0aCB0aGF0LgorICAgICAgICBzZXRMb2NhbGUobG9jLCBsb2MpOworICAgIH0KKyAgICAgICAgZm9ybWF0RGF0YSA9IG5ldyBEYXRlRm9ybWF0U3ltYm9scyhsb2MpOworICAgICAgICBpZiAoKHRpbWVTdHlsZSA+PSAwKSAmJiAoZGF0ZVN0eWxlID49IDApKSB7CisgICAgICAgICAgICBPYmplY3RbXSBkYXRlVGltZUFyZ3MgPSB7ZGF0ZVRpbWVQYXR0ZXJuc1t0aW1lU3R5bGVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVUaW1lUGF0dGVybnNbZGF0ZVN0eWxlICsgNF19OworICAgICAgICAgICAgcGF0dGVybiA9IE1lc3NhZ2VGb3JtYXQuZm9ybWF0KGRhdGVUaW1lUGF0dGVybnNbOF0sIGRhdGVUaW1lQXJncyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAodGltZVN0eWxlID49IDApIHsKKyAgICAgICAgICAgIHBhdHRlcm4gPSBkYXRlVGltZVBhdHRlcm5zW3RpbWVTdHlsZV07CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZGF0ZVN0eWxlID49IDApIHsKKyAgICAgICAgICAgIHBhdHRlcm4gPSBkYXRlVGltZVBhdHRlcm5zW2RhdGVTdHlsZSArIDRdOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTm8gZGF0ZSBvciB0aW1lIHN0eWxlIHNwZWNpZmllZCIpOworICAgICAgICB9CisKKyAgICAgICAgaW5pdGlhbGl6ZShsb2MpOworCisgICAgICAgIGlmIChDQUNIRSkgeworICAgICAgICAgICAgLy8gICAgICAgICAgaWYgKCJlbl9VUzIyIi5lcXVhbHMoa2V5KSkKKyAgICAgICAgICAgIC8vICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5yZWdpc3RlciBrZXk6ICIgKyBrZXkgKyAiIHBhdDogIiArIHRoaXMucGF0dGVybiArCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICIgY2FsOiAiICsgdGhpcy5jYWxlbmRhciArICIgZm10OiAiICsgdGhpcy5udW1iZXJGb3JtYXQpOworICAgICAgICAgICAgbWFwLnB1dChrZXksIHRoaXMuY2xvbmUoKSk7IC8vIG9rIGlmIHdlIHN0b21wIGV4aXN0aW5nIHRhcmdldCBkdWUgdG8gdGhyZWFkaW5nCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBJbml0aWFsaXplIGNhbGVuZGFyIGFuZCBudW1iZXJGb3JtYXQgZmllbGRzICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXRpYWxpemUoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgLy8gdGltZSB6b25lIGZvcm1hdHRpbmcKKyAgICAgICAgbG9jYWxlID0gbG9jOworCisgICAgICAgIC8vIFRoZSBmb3JtYXQgb2JqZWN0IG11c3QgYmUgY29uc3RydWN0ZWQgdXNpbmcgdGhlIHN5bWJvbHMgZm9yIHRoaXMgem9uZS4KKyAgICAgICAgLy8gSG93ZXZlciwgdGhlIGNhbGVuZGFyIHNob3VsZCB1c2UgdGhlIGN1cnJlbnQgZGVmYXVsdCBUaW1lWm9uZS4KKyAgICAgICAgLy8gSWYgdGhpcyBpcyBub3QgY29udGFpbmVkIGluIHRoZSBsb2NhbGUgem9uZSBzdHJpbmdzLCB0aGVuIHRoZSB6b25lCisgICAgICAgIC8vIHdpbGwgYmUgZm9ybWF0dGVkIHVzaW5nIGdlbmVyaWMgR01UKy8tSDpNTSBub21lbmNsYXR1cmUuCisgICAgICAgIGNhbGVuZGFyID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBsb2MpOworICAgICAgICAvLyBUT0RPOiBjb252ZXJ0IHRvIHVzZSBVTG9jYWxlIEFQSXMgd2hlbiB3ZSBnZXQgdG8gdGhlIHRleHQgcGFja2FnZQorICAgICAgICBudW1iZXJGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UobG9jKTsKKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldEdyb3VwaW5nVXNlZChmYWxzZSk7CisgICAgICAgIHVzZUZhc3RaZXJvUGFkZGluZ051bWJlciA9IGZhbHNlOworICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgIC8vIGRpZmZpY3VsdCB0byB0ZXN0IGZvciBjYXNlIHdoZXJlIE51bWJlckZvcm1hdC5nZXRJbnN0YW5jZSBkb2VzIG5vdAorICAgICAgICAvLyByZXR1cm4gYSBEZWNpbWFsRm9ybWF0CisgICAgICAgIGlmIChudW1iZXJGb3JtYXQgaW5zdGFuY2VvZiBEZWNpbWFsRm9ybWF0KSB7CisgICAgICAgICAgICAoKERlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0KS5zZXREZWNpbWFsU2VwYXJhdG9yQWx3YXlzU2hvd24oZmFsc2UpOworICAgICAgICAgICAgemVyb0RpZ2l0ID0gKChEZWNpbWFsRm9ybWF0KW51bWJlckZvcm1hdCkuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKS5nZXRaZXJvRGlnaXQoKTsKKyAgICAgICAgICAgIGlmIChudW1iZXJGb3JtYXQuZ2V0Q2xhc3MoKS5nZXROYW1lKCkuZXF1YWxzKCJjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQiKSkgeworICAgICAgICAgICAgICAgIHVzZUZhc3RaZXJvUGFkZGluZ051bWJlciA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIG51bWJlckZvcm1hdC5zZXRQYXJzZUludGVnZXJPbmx5KHRydWUpOyAvKiBTbyB0aGF0IGRkLk1NLnl5IGNhbiBiZSBwYXJzZWQgKi8KKyAgICAgICAgbnVtYmVyRm9ybWF0LnNldE1pbmltdW1GcmFjdGlvbkRpZ2l0cygwKTsgLy8gVG8gcHJldmVudCAiSmFuIDEuMDAsIDE5OTcuMDAiCisKKyAgICAgICAgaW5pdGlhbGl6ZURlZmF1bHRDZW50dXJ5KCk7CisKKyAgICAgICAgLy8gQ3VycmVudGx5LCB3ZSBvbmx5IHN1cHBvcnQgZmFzdCBmb3JtYXR0aW5nIGluIFNpbXBsZURhdGVGb3JtYXQKKyAgICAgICAgLy8gaXRzZWxmLiAgVE9ETyBhZGQgY29uc3RydWN0b3IgcGFyYW1ldGVycyB0byBhbGxvdyBzdWJjbGFzc2VzCisgICAgICAgIC8vIHRvIHNheSB0aGF0IHRoZXkgaW1wbGVtZW50IGZhc3QgZm9ybWF0dGluZy4KKyAgICAgICAgdXNlRmFzdEZvcm1hdCA9IChnZXRDbGFzcygpID09IFNpbXBsZURhdGVGb3JtYXQuY2xhc3MpOworICAgIH0KKworICAgIC8qIEluaXRpYWxpemUgdGhlIGZpZWxkcyB3ZSB1c2UgdG8gZGlzYW1iaWd1YXRlIGFtYmlndW91cyB5ZWFycy4gU2VwYXJhdGUKKyAgICAgKiBzbyB3ZSBjYW4gY2FsbCBpdCBmcm9tIHJlYWRPYmplY3QoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaW5pdGlhbGl6ZURlZmF1bHRDZW50dXJ5KCkgeworICAgICAgICBjYWxlbmRhci5zZXRUaW1lKCBuZXcgRGF0ZSgpICk7CisgICAgICAgIGNhbGVuZGFyLmFkZCggQ2FsZW5kYXIuWUVBUiwgLTgwICk7CisgICAgICAgIHBhcnNlQW1iaWd1b3VzRGF0ZXNBc0FmdGVyKGNhbGVuZGFyLmdldFRpbWUoKSk7CisgICAgfQorCisgICAgLyogRGVmaW5lIG9uZS1jZW50dXJ5IHdpbmRvdyBpbnRvIHdoaWNoIHRvIGRpc2FtYmlndWF0ZSBkYXRlcyB1c2luZworICAgICAqIHR3by1kaWdpdCB5ZWFycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcGFyc2VBbWJpZ3VvdXNEYXRlc0FzQWZ0ZXIoRGF0ZSBzdGFydERhdGUpIHsKKyAgICAgICAgZGVmYXVsdENlbnR1cnlTdGFydCA9IHN0YXJ0RGF0ZTsKKyAgICAgICAgY2FsZW5kYXIuc2V0VGltZShzdGFydERhdGUpOworICAgICAgICBkZWZhdWx0Q2VudHVyeVN0YXJ0WWVhciA9IGNhbGVuZGFyLmdldChDYWxlbmRhci5ZRUFSKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSAxMDAteWVhciBwZXJpb2QgMi1kaWdpdCB5ZWFycyB3aWxsIGJlIGludGVycHJldGVkIGFzIGJlaW5nIGluCisgICAgICogdG8gYmVnaW4gb24gdGhlIGRhdGUgdGhlIHVzZXIgc3BlY2lmaWVzLgorICAgICAqIEBwYXJhbSBzdGFydERhdGUgRHVyaW5nIHBhcnNpbmcsIHR3byBkaWdpdCB5ZWFycyB3aWxsIGJlIHBsYWNlZCBpbiB0aGUgcmFuZ2UKKyAgICAgKiA8Y29kZT5zdGFydERhdGU8L2NvZGU+IHRvIDxjb2RlPnN0YXJ0RGF0ZSArIDEwMCB5ZWFyczwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0MkRpZ2l0WWVhclN0YXJ0KERhdGUgc3RhcnREYXRlKSB7CisgICAgICAgIHBhcnNlQW1iaWd1b3VzRGF0ZXNBc0FmdGVyKHN0YXJ0RGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYmVnaW5uaW5nIGRhdGUgb2YgdGhlIDEwMC15ZWFyIHBlcmlvZCAyLWRpZ2l0IHllYXJzIGFyZSBpbnRlcnByZXRlZAorICAgICAqIGFzIGJlaW5nIHdpdGhpbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgMTAwLXllYXIgcGVyaW9kIGludG8gd2hpY2ggdHdvIGRpZ2l0IHllYXJzIGFyZQorICAgICAqIHBhcnNlZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlIGdldDJEaWdpdFllYXJTdGFydCgpIHsKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRDZW50dXJ5U3RhcnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIERhdGVGb3JtYXQuCisgICAgICogPHA+Rm9ybWF0cyBhIGRhdGUgb3IgdGltZSwgd2hpY2ggaXMgdGhlIHN0YW5kYXJkIG1pbGxpcworICAgICAqIHNpbmNlIEphbnVhcnkgMSwgMTk3MCwgMDA6MDA6MDAgR01ULgorICAgICAqIDxwPkV4YW1wbGU6IHVzaW5nIHRoZSBVUyBsb2NhbGU6CisgICAgICogInl5eXkuTU0uZGQgRyAnYXQnIEhIOm1tOnNzIHp6eiIgLT4+IDE5OTYuMDcuMTAgQUQgYXQgMTU6MDg6NTYgUERUCisgICAgICogQHBhcmFtIGNhbCB0aGUgY2FsZW5kYXIgd2hvc2UgZGF0ZS10aW1lIHZhbHVlIGlzIHRvIGJlIGZvcm1hdHRlZCBpbnRvIGEgZGF0ZS10aW1lIHN0cmluZworICAgICAqIEBwYXJhbSB0b0FwcGVuZFRvIHdoZXJlIHRoZSBuZXcgZGF0ZS10aW1lIHRleHQgaXMgdG8gYmUgYXBwZW5kZWQKKyAgICAgKiBAcGFyYW0gcG9zIHRoZSBmb3JtYXR0aW5nIHBvc2l0aW9uLiBPbiBpbnB1dDogYW4gYWxpZ25tZW50IGZpZWxkLAorICAgICAqIGlmIGRlc2lyZWQuIE9uIG91dHB1dDogdGhlIG9mZnNldHMgb2YgdGhlIGFsaWdubWVudCBmaWVsZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXR0ZWQgZGF0ZS10aW1lIHN0cmluZy4KKyAgICAgKiBAc2VlIERhdGVGb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIGZvcm1hdChDYWxlbmRhciBjYWwsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zKSB7CisgICAgICAgIGlmICghdXNlRmFzdEZvcm1hdCkgeworICAgICAgICAgICAgcmV0dXJuIHNsb3dGb3JtYXQoY2FsLCB0b0FwcGVuZFRvLCBwb3MpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSW5pdGlhbGl6ZQorICAgICAgICBwb3Muc2V0QmVnaW5JbmRleCgwKTsKKyAgICAgICAgcG9zLnNldEVuZEluZGV4KDApOworCisgICAgICAgIC8vIENhcmVmdWw6IEZvciBiZXN0IHBlcmZvcm1hbmNlLCBtaW5pbWl6ZSB0aGUgbnVtYmVyIG9mIGNhbGxzCisgICAgICAgIC8vIHRvIFN0cmluZ0J1ZmZlci5hcHBlbmQoKSBieSBjb25zb2xpZGF0aW5nIGFwcGVuZHMgd2hlbgorICAgICAgICAvLyBwb3NzaWJsZS4KKworICAgICAgICBpbnQgaiwgbiA9IHBhdHRlcm4ubGVuZ3RoKCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyApIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBwYXR0ZXJuLmNoYXJBdChpKTsKKyAgICAgICAgICAgIGlmICgoY2ggPj0gJ2EnICYmIGNoIDw9ICd6JykgfHwgKGNoID49ICdBJyAmJiBjaCA8PSAnWicpKSB7CisgICAgICAgICAgICAgICAgLy8gY2ggaXMgYSBkYXRlLXRpbWUgcGF0dGVybiBjaGFyYWN0ZXIgdG8gYmUgaW50ZXJwcmV0ZWQKKyAgICAgICAgICAgICAgICAvLyBieSBzdWJGb3JtYXQoKTsgY291bnQgdGhlIG51bWJlciBvZiB0aW1lcyBpdCBpcyByZXBlYXRlZAorICAgICAgICAgICAgICAgIGZvciAoaj1pKzE7IGo8biAmJiBwYXR0ZXJuLmNoYXJBdChqKT09Y2g7ICsraikge30KKyAgICAgICAgICAgICAgICBzdWJGb3JtYXQodG9BcHBlbmRUbywgY2gsIGotaSwgdG9BcHBlbmRUby5sZW5ndGgoKSwgcG9zLCBjYWwpOworICAgICAgICAgICAgICAgIGkgPSBqOworICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PSAnXCcnKSB7CisgICAgICAgICAgICAgICAgLy8gSGFuZGxlIGFuIGVudGlyZSBxdW90ZWQgc3RyaW5nLCBpbmNsdWRlZCBlbWJlZGRlZAorICAgICAgICAgICAgICAgIC8vIGRvdWJsZWQgYXBvc3Ryb3BoZXMgKGFzIGluICdvJydjbG9jaycpLgorICAgICAgICAgICAgICAgIGludCBzdGFydCA9IGkrMTsKKyAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICsraTsgLy8gaSBwb2ludHMgYWZ0ZXIgJworICAgICAgICAgICAgICAgICAgICBpZiAoaT09bikgeyAvLyB0cmFpbGluZyAnIChwYXRob2xvZ2ljYWwpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGZvciAoaj1pOyBqPG4gJiYgcGF0dGVybi5jaGFyQXQoaikhPSdcJyc7ICsraikge30KKyAgICAgICAgICAgICAgICAgICAgLy8gaiBwb2ludHMgdG8gbmV4dCAnIG9yIEVPUworCisgICAgICAgICAgICAgICAgICAgIGlmIChqPT1zdGFydCkgeyAvLyAnJyBvdXRzaWRlIG9mIHF1b3RlcworICAgICAgICAgICAgICAgICAgICAgICAgdG9BcHBlbmRUby5hcHBlbmQoJ1wnJyk7CisgICAgICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIGxvb2sgYWhlYWQgdG8gZGV0ZWN0ICcnIHdpdGhpbiBxdW90ZXMKKyAgICAgICAgICAgICAgICAgICAgaW50IGsgPSBqLCBqaiA9IGorMTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGpqPG4gJiYgcGF0dGVybi5jaGFyQXQoamopPT0nXCcnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2s7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBhcHBlbmQgdGhpcyBydW4sIGFuZCBpZiB0aGVyZSBpcyAnJyB3aXRoaW4KKyAgICAgICAgICAgICAgICAgICAgLy8gcXVvdGVzLCBhcHBlbmQgYSB0cmFpbGluZyAnIGFzIHdlbGwKKyAgICAgICAgICAgICAgICAgICAgdG9BcHBlbmRUby5hcHBlbmQocGF0dGVybi5zdWJzdHJpbmcoaSwgaykpOworCisgICAgICAgICAgICAgICAgICAgIGkgPSBqajsKKworICAgICAgICAgICAgICAgICAgICBpZiAoaz09aikgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIEFwcGVuZCB1bnF1b3RlZCBsaXRlcmFsIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICB0b0FwcGVuZFRvLmFwcGVuZChjaCk7CisgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRvQXBwZW5kVG87CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgc2xvd0Zvcm1hdChDYWxlbmRhciBjYWwsIFN0cmluZ0J1ZmZlciB0b0FwcGVuZFRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgLy8gSW5pdGlhbGl6ZQorICAgICAgICBwb3Muc2V0QmVnaW5JbmRleCgwKTsKKyAgICAgICAgcG9zLnNldEVuZEluZGV4KDApOworCisgICAgICAgIGJvb2xlYW4gaW5RdW90ZSA9IGZhbHNlOyAvLyB0cnVlIHdoZW4gYmV0d2VlbiBzaW5nbGUgcXVvdGVzCisgICAgICAgIGNoYXIgcHJldkNoID0gMDsgLy8gcHJldmlvdXMgcGF0dGVybiBjaGFyYWN0ZXIKKyAgICAgICAgaW50IGNvdW50ID0gMDsgIC8vIG51bWJlciBvZiB0aW1lIHByZXZDaCByZXBlYXRlZAorICAgICAgICBmb3IgKGludCBpPTA7IGk8cGF0dGVybi5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gcGF0dGVybi5jaGFyQXQoaSk7CisgICAgICAgICAgICAvLyBVc2Ugc3ViRm9ybWF0KCkgdG8gZm9ybWF0IGEgcmVwZWF0ZWQgcGF0dGVybiBjaGFyYWN0ZXIKKyAgICAgICAgICAgIC8vIHdoZW4gYSBkaWZmZXJlbnQgcGF0dGVybiBvciBub24tcGF0dGVybiBjaGFyYWN0ZXIgaXMgc2VlbgorICAgICAgICAgICAgaWYgKGNoICE9IHByZXZDaCAmJiBjb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICB0b0FwcGVuZFRvLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJGb3JtYXQocHJldkNoLCBjb3VudCwgdG9BcHBlbmRUby5sZW5ndGgoKSwgcG9zLCBmb3JtYXREYXRhLCBjYWwpKTsKKyAgICAgICAgICAgICAgICBjb3VudCA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY2ggPT0gJ1wnJykgeworICAgICAgICAgICAgICAgIC8vIENvbnNlY3V0aXZlIHNpbmdsZSBxdW90ZXMgYXJlIGEgc2luZ2xlIHF1b3RlIGxpdGVyYWwsCisgICAgICAgICAgICAgICAgLy8gZWl0aGVyIG91dHNpZGUgb2YgcXVvdGVzIG9yIGJldHdlZW4gcXVvdGVzCisgICAgICAgICAgICAgICAgaWYgKChpKzEpPHBhdHRlcm4ubGVuZ3RoKCkgJiYgcGF0dGVybi5jaGFyQXQoaSsxKSA9PSAnXCcnKSB7CisgICAgICAgICAgICAgICAgICAgIHRvQXBwZW5kVG8uYXBwZW5kKCdcJycpOworICAgICAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW5RdW90ZSA9ICFpblF1b3RlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoIWluUXVvdGUKKyAgICAgICAgICAgICAgICAgICAgICAgJiYgKGNoID49ICdhJyAmJiBjaCA8PSAneicgfHwgY2ggPj0gJ0EnICYmIGNoIDw9ICdaJykpIHsKKyAgICAgICAgICAgICAgICAvLyBjaCBpcyBhIGRhdGUtdGltZSBwYXR0ZXJuIGNoYXJhY3RlciB0byBiZSBpbnRlcnByZXRlZAorICAgICAgICAgICAgICAgIC8vIGJ5IHN1YkZvcm1hdCgpOyBjb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIGl0IGlzIHJlcGVhdGVkCisgICAgICAgICAgICAgICAgcHJldkNoID0gY2g7CisgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIEFwcGVuZCBxdW90ZWQgY2hhcmFjdGVycyBhbmQgdW5xdW90ZWQgbm9uLXBhdHRlcm4gY2hhcmFjdGVycworICAgICAgICAgICAgICAgIHRvQXBwZW5kVG8uYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBGb3JtYXQgdGhlIGxhc3QgaXRlbSBpbiB0aGUgcGF0dGVybiwgaWYgYW55CisgICAgICAgIGlmIChjb3VudCA+IDApIHsKKyAgICAgICAgICAgIHRvQXBwZW5kVG8uYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViRm9ybWF0KHByZXZDaCwgY291bnQsIHRvQXBwZW5kVG8ubGVuZ3RoKCksIHBvcywgZm9ybWF0RGF0YSwgY2FsKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRvQXBwZW5kVG87CisgICAgfQorCisgICAgLy8gTWFwIGluZGV4IGludG8gcGF0dGVybiBjaGFyYWN0ZXIgc3RyaW5nIHRvIENhbGVuZGFyIGZpZWxkIG51bWJlcgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIFBBVFRFUk5fSU5ERVhfVE9fQ0FMRU5EQVJfRklFTEQgPQorICAgIHsKKyAgICAgICAgLypHeU0qLyBDYWxlbmRhci5FUkEsIENhbGVuZGFyLllFQVIsIENhbGVuZGFyLk1PTlRILAorICAgICAgICAvKmRrSCovIENhbGVuZGFyLkRBVEUsIENhbGVuZGFyLkhPVVJfT0ZfREFZLCBDYWxlbmRhci5IT1VSX09GX0RBWSwKKyAgICAgICAgLyptc1MqLyBDYWxlbmRhci5NSU5VVEUsIENhbGVuZGFyLlNFQ09ORCwgQ2FsZW5kYXIuTUlMTElTRUNPTkQsCisgICAgICAgIC8qRURGKi8gQ2FsZW5kYXIuREFZX09GX1dFRUssIENhbGVuZGFyLkRBWV9PRl9ZRUFSLCBDYWxlbmRhci5EQVlfT0ZfV0VFS19JTl9NT05USCwKKyAgICAgICAgLyp3V2EqLyBDYWxlbmRhci5XRUVLX09GX1lFQVIsIENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIENhbGVuZGFyLkFNX1BNLAorICAgICAgICAvKmhLeiovIENhbGVuZGFyLkhPVVIsIENhbGVuZGFyLkhPVVIsIENhbGVuZGFyLlpPTkVfT0ZGU0VULAorICAgICAgICAvKllldSovIENhbGVuZGFyLllFQVJfV09ZLCBDYWxlbmRhci5ET1dfTE9DQUwsIENhbGVuZGFyLkVYVEVOREVEX1lFQVIsCisgICAgICAgIC8qZ0FaKi8gQ2FsZW5kYXIuSlVMSUFOX0RBWSwgQ2FsZW5kYXIuTUlMTElTRUNPTkRTX0lOX0RBWSwgQ2FsZW5kYXIuWk9ORV9PRkZTRVQsCisgICAgICAgIC8qdiovICAgQ2FsZW5kYXIuWk9ORV9PRkZTRVQsCisgICAgICAgIC8qYyovICAgQ2FsZW5kYXIuREFZX09GX1dFRUssCisgICAgICAgIC8qTCovICAgQ2FsZW5kYXIuTU9OVEgKKyAgICB9OworCisgICAgLy8gTWFwIGluZGV4IGludG8gcGF0dGVybiBjaGFyYWN0ZXIgc3RyaW5nIHRvIERhdGVGb3JtYXQgZmllbGQgbnVtYmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gUEFUVEVSTl9JTkRFWF9UT19EQVRFX0ZPUk1BVF9GSUVMRCA9IHsKKyAgICAgICAgLypHeU0qLyBEYXRlRm9ybWF0LkVSQV9GSUVMRCwgRGF0ZUZvcm1hdC5ZRUFSX0ZJRUxELCBEYXRlRm9ybWF0Lk1PTlRIX0ZJRUxELAorICAgICAgICAvKmRrSCovIERhdGVGb3JtYXQuREFURV9GSUVMRCwgRGF0ZUZvcm1hdC5IT1VSX09GX0RBWTFfRklFTEQsIERhdGVGb3JtYXQuSE9VUl9PRl9EQVkwX0ZJRUxELAorICAgICAgICAvKm1zUyovIERhdGVGb3JtYXQuTUlOVVRFX0ZJRUxELCBEYXRlRm9ybWF0LlNFQ09ORF9GSUVMRCwgRGF0ZUZvcm1hdC5GUkFDVElPTkFMX1NFQ09ORF9GSUVMRCwKKyAgICAgICAgLypFREYqLyBEYXRlRm9ybWF0LkRBWV9PRl9XRUVLX0ZJRUxELCBEYXRlRm9ybWF0LkRBWV9PRl9ZRUFSX0ZJRUxELCBEYXRlRm9ybWF0LkRBWV9PRl9XRUVLX0lOX01PTlRIX0ZJRUxELAorICAgICAgICAvKndXYSovIERhdGVGb3JtYXQuV0VFS19PRl9ZRUFSX0ZJRUxELCBEYXRlRm9ybWF0LldFRUtfT0ZfTU9OVEhfRklFTEQsIERhdGVGb3JtYXQuQU1fUE1fRklFTEQsCisgICAgICAgIC8qaEt6Ki8gRGF0ZUZvcm1hdC5IT1VSMV9GSUVMRCwgRGF0ZUZvcm1hdC5IT1VSMF9GSUVMRCwgRGF0ZUZvcm1hdC5USU1FWk9ORV9GSUVMRCwKKyAgICAgICAgLypZZXUqLyBEYXRlRm9ybWF0LllFQVJfV09ZX0ZJRUxELCBEYXRlRm9ybWF0LkRPV19MT0NBTF9GSUVMRCwgRGF0ZUZvcm1hdC5FWFRFTkRFRF9ZRUFSX0ZJRUxELAorICAgICAgICAvKmdBWiovIERhdGVGb3JtYXQuSlVMSUFOX0RBWV9GSUVMRCwgRGF0ZUZvcm1hdC5NSUxMSVNFQ09ORFNfSU5fREFZX0ZJRUxELCBEYXRlRm9ybWF0LlRJTUVaT05FX1JGQ19GSUVMRCwKKyAgICAgICAgLyp2Ki8gICBEYXRlRm9ybWF0LlRJTUVaT05FX0dFTkVSSUNfRklFTEQsIAorICAgICAgICAvKmMqLyAgIERhdGVGb3JtYXQuU1RBTkRBTE9ORV9EQVlfRklFTEQsCisgICAgICAgIC8qTCovICAgRGF0ZUZvcm1hdC5TVEFOREFMT05FX01PTlRIX0ZJRUxELAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXQgYSBzaW5nbGUgZmllbGQsIGdpdmVuIGl0cyBwYXR0ZXJuIGNoYXJhY3Rlci4gIFN1YmNsYXNzZXMgbWF5CisgICAgICogb3ZlcnJpZGUgdGhpcyBtZXRob2QgaW4gb3JkZXIgdG8gbW9kaWZ5IG9yIGFkZCBmb3JtYXR0aW5nCisgICAgICogY2FwYWJpbGl0aWVzLgorICAgICAqIEBwYXJhbSBjaCB0aGUgcGF0dGVybiBjaGFyYWN0ZXIKKyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG51bWJlciBvZiB0aW1lcyBjaCBpcyByZXBlYXRlZCBpbiB0aGUgcGF0dGVybgorICAgICAqIEBwYXJhbSBiZWdpbk9mZnNldCB0aGUgb2Zmc2V0IG9mIHRoZSBvdXRwdXQgc3RyaW5nIGF0IHRoZSBzdGFydCBvZgorICAgICAqIHRoaXMgZmllbGQ7IHVzZWQgdG8gc2V0IHBvcyB3aGVuIGFwcHJvcHJpYXRlCisgICAgICogQHBhcmFtIHBvcyByZWNlaXZlcyB0aGUgcG9zaXRpb24gb2YgYSBmaWVsZCwgd2hlbiBhcHByb3ByaWF0ZQorICAgICAqIEBwYXJhbSBmb3JtYXREYXRhIHRoZSBzeW1ib2xzIGZvciB0aGlzIGZvcm1hdHRlcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgc3ViRm9ybWF0KGNoYXIgY2gsIGludCBjb3VudCwgaW50IGJlZ2luT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpZWxkUG9zaXRpb24gcG9zLCBEYXRlRm9ybWF0U3ltYm9scyBmb3JtYXREYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyIGNhbCkKKyAgICAgICAgdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgLy8gTm90ZTogZm9ybWF0RGF0YSBpcyBpZ25vcmVkCisgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIHN1YkZvcm1hdChidWYsIGNoLCBjb3VudCwgYmVnaW5PZmZzZXQsIHBvcywgY2FsKTsKKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdCBhIHNpbmdsZSBmaWVsZDsgdXNlRmFzdEZvcm1hdCB2YXJpYW50LiAgUmV1c2VzIGEKKyAgICAgKiBTdHJpbmdCdWZmZXIgZm9yIHJlc3VsdHMgaW5zdGVhZCBvZiBjcmVhdGluZyBhIFN0cmluZyBvbiB0aGUKKyAgICAgKiBoZWFwIGZvciBlYWNoIGNhbGwuCisgICAgICoKKyAgICAgKiBOT1RFIFdlIGRvbid0IHJlYWxseSBuZWVkIHRoZSBiZWdpbk9mZnNldCBwYXJhbWV0ZXIsIEVYQ0VQVCBmb3IKKyAgICAgKiB0aGUgbmVlZCB0byBzdXBwb3J0IHRoZSBzbG93IHN1YkZvcm1hdCB2YXJpYW50IChhYm92ZSkgd2hpY2gKKyAgICAgKiBoYXMgdG8gcGFzcyBpdCBpbiB0byB1cy4KKyAgICAgKgorICAgICAqIFRPRE8gbWFrZSB0aGlzIEFQSSBwdWJsaWMKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHN1YkZvcm1hdChTdHJpbmdCdWZmZXIgYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGNoLCBpbnQgY291bnQsIGludCBiZWdpbk9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyIGNhbCkgeworICAgICAgICBmaW5hbCBpbnQgbWF4SW50Q291bnQgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgZmluYWwgaW50IGJ1ZnN0YXJ0ID0gYnVmLmxlbmd0aCgpOworCisgICAgICAgIGZpbmFsIGludCBwYXR0ZXJuQ2hhckluZGV4ID0gRGF0ZUZvcm1hdFN5bWJvbHMucGF0dGVybkNoYXJzLmluZGV4T2YoY2gpOworICAgICAgICBpZiAocGF0dGVybkNoYXJJbmRleCA9PSAtMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBwYXR0ZXJuIGNoYXJhY3RlciAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiciICsgY2ggKyAiJyBpbiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nKHBhdHRlcm4pICsgJyInKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGludCBmaWVsZCA9IFBBVFRFUk5fSU5ERVhfVE9fQ0FMRU5EQVJfRklFTERbcGF0dGVybkNoYXJJbmRleF07CisgICAgICAgIGludCB2YWx1ZSA9IGNhbC5nZXQoZmllbGQpOworCisgICAgICAgIHN3aXRjaCAocGF0dGVybkNoYXJJbmRleCkgeworICAgICAgICBjYXNlIDA6IC8vICdHJyAtIEVSQQorICAgICAgICAgICAgaWYgKGNvdW50ID49IDQpCisgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvcm1hdERhdGEuZXJhTmFtZXNbdmFsdWVdKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5lcmFzW3ZhbHVlXSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOiAvLyAneScgLSBZRUFSCisgICAgICAgICAgICAvKiBBY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmljYXRpb24sIGlmIHRoZSBudW1iZXIgb2YgcGF0dGVybiBsZXR0ZXJzICgneScpIGlzIDIsCisgICAgICAgICAgICAgKiB0aGUgeWVhciBpcyB0cnVuY2F0ZWQgdG8gMiBkaWdpdHM7IG90aGVyd2lzZSBpdCBpcyBpbnRlcnByZXRlZCBhcyBhIG51bWJlci4KKyAgICAgICAgICAgICAqIEJ1dCB0aGUgb3JpZ2luYWwgY29kZSBwcm9jZXNzICd5JywgJ3l5JywgJ3l5eScgaW4gdGhlIHNhbWUgd2F5LiBhbmQgcHJvY2VzcworICAgICAgICAgICAgICogcGF0dGVybnMgd2l0aCA0IG9yIG1vcmUgdGhhbiA0ICd5JyBjaGFyYWN0ZXJzIGluIHRoZSBzYW1lIHdheS4KKyAgICAgICAgICAgICAqIFNvIEkgY2hhbmdlIHRoZSBjb2RlcyB0byBtZWV0IHRoZSBzcGVjaWZpY2F0aW9uLiBbUmljaGFyZC9HQ2xdCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChjb3VudCA9PSAyKQorICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgdmFsdWUsIDIsIDIpOyAvLyBjbGlwIDE5OTYgdG8gOTYKKyAgICAgICAgICAgIGVsc2UgLy9jb3VudCA9IDEgb3IgY291bnQgPiAyCisgICAgICAgICAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoYnVmLCB2YWx1ZSwgY291bnQsIG1heEludENvdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6IC8vICdNJyAtIE1PTlRICisgICAgICAgICAgICBpZiAoY291bnQgPT0gNSkgCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLm5hcnJvd01vbnRoc1t2YWx1ZV0pOworICAgICAgICAgICAgZWxzZSBpZiAoY291bnQgPT0gNCkKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvcm1hdERhdGEubW9udGhzW3ZhbHVlXSk7CisgICAgICAgICAgICBlbHNlIGlmIChjb3VudCA9PSAzKQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5zaG9ydE1vbnRoc1t2YWx1ZV0pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgdmFsdWUrMSwgY291bnQsIG1heEludENvdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ6IC8vICdrJyAtIEhPVVJfT0ZfREFZICgxLi4yNCkKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAwKQorICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0TWF4aW11bShDYWxlbmRhci5IT1VSX09GX0RBWSkrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCwgbWF4SW50Q291bnQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgdmFsdWUsIGNvdW50LCBtYXhJbnRDb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA4OiAvLyAnUycgLSBGUkFDVElPTkFMX1NFQ09ORAorICAgICAgICAgICAgLy8gRnJhY3Rpb25hbCBzZWNvbmRzIGxlZnQtanVzdGlmeQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdC5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhNYXRoLm1pbigzLCBjb3VudCkpOworICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdC5zZXRNYXhpbXVtSW50ZWdlckRpZ2l0cyhtYXhJbnRDb3VudCk7CisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAodmFsdWUgKyA1MCkgLyAxMDA7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb3VudCA9PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gKHZhbHVlICsgNSkgLyAxMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgRmllbGRQb3NpdGlvbiBwID0gbmV3IEZpZWxkUG9zaXRpb24oLTEpOworICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdC5mb3JtYXQoKGxvbmcpIHZhbHVlLCBidWYsIHApOworICAgICAgICAgICAgICAgIGlmIChjb3VudCA+IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0LnNldE1pbmltdW1JbnRlZ2VyRGlnaXRzKGNvdW50IC0gMyk7CisgICAgICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdC5mb3JtYXQoMEwsIGJ1ZiwgcCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgOTogLy8gJ0UnIC0gREFZX09GX1dFRUsKKyAgICAgICAgICAgIGlmIChjb3VudCA+PSA0KQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS53ZWVrZGF5c1t2YWx1ZV0pOworICAgICAgICAgICAgZWxzZSAvLyBjb3VudCA8IDQsIHVzZSBhYmJyZXZpYXRlZCBmb3JtIGlmIGV4aXN0cworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5zaG9ydFdlZWtkYXlzW3ZhbHVlXSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNDogLy8gJ2EnIC0gQU1fUE0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5hbXBtc1t2YWx1ZV0pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTU6IC8vICdoJyAtIEhPVVIgKDEuLjEyKQorICAgICAgICAgICAgaWYgKHZhbHVlID09IDApCisgICAgICAgICAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXRMZWFzdE1heGltdW0oQ2FsZW5kYXIuSE9VUikrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCwgbWF4SW50Q291bnQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgdmFsdWUsIGNvdW50LCBtYXhJbnRDb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNzogLy8gJ3onIC0gWk9ORV9PRkZTRVQKKyAgICAgICAgY2FzZSAyNDogLy8gJ3YnIC0gVElNRVpPTkVfR0VORVJJQyAKKyAgICAgICAgICAgIHsKKworICAgICAgICAgICAgICAgIFN0cmluZyB6aWQ7CisgICAgICAgICAgICAgICAgU3RyaW5nIHJlcz1udWxsOworICAgICAgICAgICAgICAgIHppZCA9IFpvbmVNZXRhLmdldENhbm9uaWNhbElEKGNhbC5nZXRUaW1lWm9uZSgpLmdldElEKCkpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNHZW5lcmljID0gcGF0dGVybkNoYXJJbmRleCA9PSAyNDsKKyAgICAgICAgICAgICAgICBpZiAoemlkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm5DaGFySW5kZXggPT0gVElNRVpPTkVfR0VORVJJQ19GSUVMRCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoY291bnQgPCA0KXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBmb3JtYXREYXRhLmdldFpvbmVTdHJpbmcoemlkLCBEYXRlRm9ybWF0U3ltYm9scy5USU1FWk9ORV9TSE9SVF9HRU5FUklDKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGZvcm1hdERhdGEuZ2V0Wm9uZVN0cmluZyh6aWQsIERhdGVGb3JtYXRTeW1ib2xzLlRJTUVaT05FX0xPTkdfR0VORVJJQyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY291bnQgPCA0KXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gZm9ybWF0RGF0YS5nZXRab25lU3RyaW5nKHppZCwgRGF0ZUZvcm1hdFN5bWJvbHMuVElNRVpPTkVfU0hPUlRfREFZTElHSFQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBmb3JtYXREYXRhLmdldFpvbmVTdHJpbmcoemlkLCBEYXRlRm9ybWF0U3ltYm9scy5USU1FWk9ORV9MT05HX0RBWUxJR0hUKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihjb3VudCA8IDQpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBmb3JtYXREYXRhLmdldFpvbmVTdHJpbmcoemlkLCBEYXRlRm9ybWF0U3ltYm9scy5USU1FWk9ORV9TSE9SVF9TVEFOREFSRCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGZvcm1hdERhdGEuZ2V0Wm9uZVN0cmluZyh6aWQsIERhdGVGb3JtYXRTeW1ib2xzLlRJTUVaT05FX0xPTkdfU1RBTkRBUkQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocmVzID09IG51bGwgfHwgcmVzLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gbm90ZSwgdHIzNSBkb2VzIG5vdCBkZXNjcmliZSB0aGUgc3BlY2lhbCBjYXNlIGZvciAnbm8gY291bnRyeScgCisgICAgICAgICAgICAgICAgICAgIC8vIGltcGxlbWVudGVkIGJlbG93LCB0aGlzIGlzIGZyb20gZGlzY3Vzc2lvbiB3aXRoIE1hcmsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHppZCA9PSBudWxsIHx8ICFpc0dlbmVyaWMgfHwgWm9uZU1ldGEuZ2V0Q2Fub25pY2FsQ291bnRyeSh6aWQpID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9mZnNldCA9IGNhbC5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuZ2V0KENhbGVuZGFyLkRTVF9PRkZTRVQpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gWm9uZU1ldGEuZGlzcGxheUdNVChvZmZzZXQsIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IAorICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBjaXR5ID0gZm9ybWF0RGF0YS5nZXRab25lU3RyaW5nKHppZCwgRGF0ZUZvcm1hdFN5bWJvbHMuVElNRVpPTkVfRVhFTVBMQVJfQ0lUWSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBab25lTWV0YS5kaXNwbGF5RmFsbGJhY2soemlkLCBjaXR5LCBsb2NhbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGZvcm1hdERhdGEuZ2V0Wm9uZVN0cmluZyh6aWQsIERhdGVGb3JtYXRTeW1ib2xzLlRJTUVaT05FX0VYRU1QTEFSX0NJVFkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVzPT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBab25lTWV0YS5kaXNwbGF5RmFsbGJhY2soemlkLCBudWxsLCBsb2NhbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKHJlcy5sZW5ndGgoKT09MCl7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZEdNVChidWYsIGNhbCk7CisgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocmVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICBjYXNlIDIzOiAvLyAnWicgLSBUSU1FWk9ORV9SRkMKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPCA0KSB7CisgICAgICAgICAgICAgICAgICAgIC8vICdzaG9ydCcgKHN0YW5kYXJkIEphdmEpIGZvcm0sIG11c3QgdXNlIEFTQ0lJIGRpZ2l0cworICAgICAgICAgICAgICAgICAgICBsb25nIHZhbD0gKGNhbC5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkpIC8gbWlsbGlzUGVyTWludXRlOworICAgICAgICAgICAgICAgICAgICBjaGFyIHNpZ24gPSAnKyc7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWwgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSAtdmFsOworICAgICAgICAgICAgICAgICAgICAgICAgc2lnbiA9ICctJzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB2YWwgPSAodmFsIC8gMykgKiA1ICsgKHZhbCAlIDYwKTsgLy8gbWludXRlcyA9PiBLS21tCisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc2lnbik7CisgICAgICAgICAgICAgICAgICAgIGZhc3RaZXJvUGFkZGluZ051Ym1lcihidWYsIChpbnQpdmFsLCA0LCA0LCAnMCcpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGxvbmcgZm9ybSwgbG9jYWxpemVkIEdNVCBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgIC8vIG5vdCBpbiAzLjQgbG9jYWxlIGRhdGEsIG5lZWQgdG8gYWRkLCBzbyB1c2Ugc2FtZSBkZWZhdWx0IGFzIGZvciBnZW5lcmFsIHRpbWUgem9uZSBuYW1lcworICAgICAgICAgICAgICAgICAgICBsb25nIHZhbCA9IGNhbC5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCk7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoWm9uZU1ldGEuZGlzcGxheUdNVCh2YWwsIGxvY2FsZSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI1OiAvLyAnYycgLSBTVEFOREFMT05FIERBWQorICAgICAgICAgICAgaWYgKGNvdW50ID09IDUpIAorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5zdGFuZGFsb25lTmFycm93V2Vla2RheXNbdmFsdWVdKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNvdW50ID09IDQpCisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChmb3JtYXREYXRhLnN0YW5kYWxvbmVXZWVrZGF5c1t2YWx1ZV0pOworICAgICAgICAgICAgZWxzZSBpZiAoY291bnQgPT0gMykKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGZvcm1hdERhdGEuc3RhbmRhbG9uZVNob3J0V2Vla2RheXNbdmFsdWVdKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB6ZXJvUGFkZGluZ051bWJlcihidWYsIHZhbHVlLCAxLCBtYXhJbnRDb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNjogLy8gJ0wnIC0gU1RBTkRBTE9ORSBNT05USAorICAgICAgICAgICAgaWYgKGNvdW50ID09IDUpIAorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5zdGFuZGFsb25lTmFycm93TW9udGhzW3ZhbHVlXSk7CisgICAgICAgICAgICBlbHNlIGlmIChjb3VudCA9PSA0KQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5zdGFuZGFsb25lTW9udGhzW3ZhbHVlXSk7CisgICAgICAgICAgICBlbHNlIGlmIChjb3VudCA9PSAzKQorICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoZm9ybWF0RGF0YS5zdGFuZGFsb25lU2hvcnRNb250aHNbdmFsdWVdKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB6ZXJvUGFkZGluZ051bWJlcihidWYsIHZhbHVlKzEsIGNvdW50LCBtYXhJbnRDb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIGNhc2UgMzogLy8gJ2QnIC0gREFURQorICAgICAgICAgICAgLy8gY2FzZSA1OiAvLyAnSCcgLSBIT1VSX09GX0RBWSAoMC4uMjMpCisgICAgICAgICAgICAvLyBjYXNlIDY6IC8vICdtJyAtIE1JTlVURQorICAgICAgICAgICAgLy8gY2FzZSA3OiAvLyAncycgLSBTRUNPTkQKKyAgICAgICAgICAgIC8vIGNhc2UgMTA6IC8vICdEJyAtIERBWV9PRl9ZRUFSCisgICAgICAgICAgICAvLyBjYXNlIDExOiAvLyAnRicgLSBEQVlfT0ZfV0VFS19JTl9NT05USAorICAgICAgICAgICAgLy8gY2FzZSAxMjogLy8gJ3cnIC0gV0VFS19PRl9ZRUFSCisgICAgICAgICAgICAvLyBjYXNlIDEzOiAvLyAnVycgLSBXRUVLX09GX01PTlRICisgICAgICAgICAgICAvLyBjYXNlIDE2OiAvLyAnSycgLSBIT1VSICgwLi4xMSkKKyAgICAgICAgICAgIC8vIGNhc2UgMTg6IC8vICdZJyAtIFlFQVJfV09ZCisgICAgICAgICAgICAvLyBjYXNlIDE5OiAvLyAnZScgLSBET1dfTE9DQUwKKyAgICAgICAgICAgIC8vIGNhc2UgMjA6IC8vICd1JyAtIEVYVEVOREVEX1lFQVIKKyAgICAgICAgICAgIC8vIGNhc2UgMjE6IC8vICdnJyAtIEpVTElBTl9EQVkKKyAgICAgICAgICAgIC8vIGNhc2UgMjI6IC8vICdBJyAtIE1JTExJU0VDT05EU19JTl9EQVkKKworICAgICAgICAgICAgemVyb1BhZGRpbmdOdW1iZXIoYnVmLCB2YWx1ZSwgY291bnQsIG1heEludENvdW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9IC8vIHN3aXRjaCAocGF0dGVybkNoYXJJbmRleCkKKworICAgICAgICAvLyBTZXQgdGhlIEZpZWxkUG9zaXRpb24gKGZvciB0aGUgZmlyc3Qgb2NjdXJlbmNlIG9ubHkpCisgICAgICAgIGlmIChwb3MuZ2V0QmVnaW5JbmRleCgpID09IHBvcy5nZXRFbmRJbmRleCgpICYmCisgICAgICAgICAgICBwb3MuZ2V0RmllbGQoKSA9PSBQQVRURVJOX0lOREVYX1RPX0RBVEVfRk9STUFUX0ZJRUxEW3BhdHRlcm5DaGFySW5kZXhdKSB7CisgICAgICAgICAgICBwb3Muc2V0QmVnaW5JbmRleChiZWdpbk9mZnNldCk7CisgICAgICAgICAgICBwb3Muc2V0RW5kSW5kZXgoYmVnaW5PZmZzZXQgKyBidWYubGVuZ3RoKCkgLSBidWZzdGFydCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYXBwZW5kR01UKFN0cmluZ0J1ZmZlciBidWYsIENhbGVuZGFyIGNhbCl7CisgICAgICAgIGludCB2YWx1ZSA9IGNhbC5nZXQoQ2FsZW5kYXIuWk9ORV9PRkZTRVQpICsKKyAgICAgICAgY2FsLmdldChDYWxlbmRhci5EU1RfT0ZGU0VUKTsKKworICAgICAgICBpZiAodmFsdWUgPCAwKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKEdNVF9NSU5VUyk7CisgICAgICAgICAgICB2YWx1ZSA9IC12YWx1ZTsgLy8gc3VwcHJlc3MgdGhlICctJyBzaWduIGZvciB0ZXh0IGRpc3BsYXkuCisgICAgICAgIH1lbHNleworICAgICAgICAgICAgYnVmLmFwcGVuZChHTVRfUExVUyk7CisgICAgICAgIH0KKworICAgICAgICB6ZXJvUGFkZGluZ051bWJlcihidWYsIChpbnQpKHZhbHVlL21pbGxpc1BlckhvdXIpLCAyLCAyKTsKKyAgICAgICAgYnVmLmFwcGVuZCgoY2hhcikweDAwM0EpIC8qJzonKi87CisgICAgICAgIHplcm9QYWRkaW5nTnVtYmVyKGJ1ZiwgKGludCkoKHZhbHVlJW1pbGxpc1BlckhvdXIpL21pbGxpc1Blck1pbnV0ZSksIDIsIDIpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBtZXRob2QuIFJldHVybnMgbnVsbCBpZiB0aGUgdmFsdWUgb2YgYW4gYXJyYXkgaXMgZW1wdHksIG9yIGlmIHRoZQorICAgICAqIGluZGV4IGlzIG91dCBvZiBib3VuZHMKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBnZXRab25lQXJyYXlWYWx1ZShTdHJpbmdbXSB6cywgaW50IGl4KSB7CisgICAgICAgIGlmIChpeCA+PSAwICYmIGl4IDwgenMubGVuZ3RoKSB7CisgICAgICAgICAgICBTdHJpbmcgcmVzdWx0ID0genNbaXhdOworICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsICYmIHJlc3VsdC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBoaWdoLXNwZWVkIG1ldGhvZC4gIFJldXNlcyBhIFN0cmluZ0J1ZmZlciBmb3IgcmVzdWx0cworICAgICAqIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBTdHJpbmcgb24gdGhlIGhlYXAgZm9yIGVhY2ggY2FsbC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCB6ZXJvUGFkZGluZ051bWJlcihTdHJpbmdCdWZmZXIgYnVmLCBpbnQgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbkRpZ2l0cywgaW50IG1heERpZ2l0cykgeworICAgIAlpZiAodXNlRmFzdFplcm9QYWRkaW5nTnVtYmVyKSB7CisgICAgCQlmYXN0WmVyb1BhZGRpbmdOdWJtZXIoYnVmLCB2YWx1ZSwgbWluRGlnaXRzLCBtYXhEaWdpdHMsIHplcm9EaWdpdCk7CisgICAgCQlyZXR1cm47CisgICAgCX0KKyAgICAgICAgRmllbGRQb3NpdGlvbiBwb3MgPSBuZXcgRmllbGRQb3NpdGlvbigtMSk7CisgICAgICAgIG51bWJlckZvcm1hdC5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhtaW5EaWdpdHMpOworICAgICAgICBudW1iZXJGb3JtYXQuc2V0TWF4aW11bUludGVnZXJEaWdpdHMobWF4RGlnaXRzKTsKKyAgICAgICAgbnVtYmVyRm9ybWF0LmZvcm1hdCh2YWx1ZSwgYnVmLCBwb3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVybmFsIGZhc3RlciBtZXRob2QuICBUaGlzIG1ldGhvZCBkb2VzIG5vdCB1c2UgTnVtYmVyRm9ybWF0CisgICAgICogdG8gZm9ybWF0IGRpZ2l0cy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZmFzdFplcm9QYWRkaW5nTnVibWVyKFN0cmluZ0J1ZmZlciBidWYsIGludCB2YWx1ZSwKKyAgICAgICAgICAgIGludCBtaW5EaWdpdHMsIGludCBtYXhEaWdpdHMsIGNoYXIgemVybykgeworICAgIAl2YWx1ZSA9IHZhbHVlIDwgMCA/IC12YWx1ZSA6IHZhbHVlOyAvLz8/CisgICAgICAgIG1pbkRpZ2l0cyA9IG1pbkRpZ2l0cyA8IG1heERpZ2l0cyA/IG1pbkRpZ2l0cyA6IG1heERpZ2l0czsKKyAgICAgICAgaW50IGxpbWl0ID0gZGVjaW1hbEJ1Zi5sZW5ndGggPCBtYXhEaWdpdHMgPyBkZWNpbWFsQnVmLmxlbmd0aCA6IG1heERpZ2l0czsKKyAgICAgICAgaW50IGluZGV4ID0gbGltaXQgLSAxOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgZGVjaW1hbEJ1ZltpbmRleF0gPSAoY2hhcikoKHZhbHVlICUgMTApICsgemVybyk7CisgICAgICAgICAgICB2YWx1ZSAvPSAxMDsKKyAgICAgICAgICAgIGlmIChpbmRleCA9PSAwIHx8IHZhbHVlID09IDApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZGV4LS07CisgICAgICAgIH0KKyAgICAgICAgaW50IHBhZGRpbmcgPSBtaW5EaWdpdHMgLSAobGltaXQgLSBpbmRleCk7CisgICAgICAgIGZvciAoOyBwYWRkaW5nID4gMDsgcGFkZGluZy0tKSB7CisgICAgICAgICAgICBkZWNpbWFsQnVmWy0taW5kZXhdID0gemVybzsKKyAgICAgICAgfQorICAgICAgICBidWYuYXBwZW5kKGRlY2ltYWxCdWYsIGluZGV4LCBsaW1pdCAtIGluZGV4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbGxvd3MgeW91IHRvIHNldCB0aGUgbnVtYmVyIGZvcm1hdHRlci4KKyAgICAgKiBAcGFyYW0gbmV3TnVtYmVyRm9ybWF0IHRoZSBnaXZlbiBuZXcgTnVtYmVyRm9ybWF0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE51bWJlckZvcm1hdChOdW1iZXJGb3JtYXQgbmV3TnVtYmVyRm9ybWF0KSB7CisgICAgCXN1cGVyLnNldE51bWJlckZvcm1hdChuZXdOdW1iZXJGb3JtYXQpOworICAgICAgICBpZiAobmV3TnVtYmVyRm9ybWF0IGluc3RhbmNlb2YgRGVjaW1hbEZvcm1hdCkgeworICAgICAgICAgICAgemVyb0RpZ2l0ID0gKChEZWNpbWFsRm9ybWF0KW5ld051bWJlckZvcm1hdCkuZ2V0RGVjaW1hbEZvcm1hdFN5bWJvbHMoKS5nZXRaZXJvRGlnaXQoKTsKKyAgICAgICAgICAgIHVzZUZhc3RaZXJvUGFkZGluZ051bWJlciA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB1c2VGYXN0WmVyb1BhZGRpbmdOdW1iZXIgPSBmYWxzZTsKKyAgICAgICAgfSAgICAJCisgICAgfQorCisgICAgLyoqCisgICAgICogRm9ybWF0cyBhIG51bWJlciB3aXRoIHRoZSBzcGVjaWZpZWQgbWluaW11bSBhbmQgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgemVyb1BhZGRpbmdOdW1iZXIobG9uZyB2YWx1ZSwgaW50IG1pbkRpZ2l0cywgaW50IG1heERpZ2l0cykKKyAgICB7CisgICAgICAgIG51bWJlckZvcm1hdC5zZXRNaW5pbXVtSW50ZWdlckRpZ2l0cyhtaW5EaWdpdHMpOworICAgICAgICBudW1iZXJGb3JtYXQuc2V0TWF4aW11bUludGVnZXJEaWdpdHMobWF4RGlnaXRzKTsKKyAgICAgICAgcmV0dXJuIG51bWJlckZvcm1hdC5mb3JtYXQodmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvcm1hdCBjaGFyYWN0ZXJzIHRoYXQgaW5kaWNhdGUgbnVtZXJpYyBmaWVsZHMuICBUaGUgY2hhcmFjdGVyCisgICAgICogYXQgaW5kZXggMCBpcyB0cmVhdGVkIHNwZWNpYWxseS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTlVNRVJJQ19GT1JNQVRfQ0hBUlMgPSAiTXl1ZGhIbXNTREZ3V2tLIjsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBmb3JtYXQgY2hhcmFjdGVyLCBvY2N1cmluZyBjb3VudAorICAgICAqIHRpbWVzLCByZXByZXNlbnRzIGEgbnVtZXJpYyBmaWVsZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzTnVtZXJpYyhjaGFyIGZvcm1hdENoYXIsIGludCBjb3VudCkgeworICAgICAgICBpbnQgaSA9IE5VTUVSSUNfRk9STUFUX0NIQVJTLmluZGV4T2YoZm9ybWF0Q2hhcik7CisgICAgICAgIHJldHVybiAoaSA+IDAgfHwgKGkgPT0gMCAmJiBjb3VudCA8IDMpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgRGF0ZUZvcm1hdAorICAgICAqIEBzZWUgRGF0ZUZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHBhcnNlKFN0cmluZyB0ZXh0LCBDYWxlbmRhciBjYWwsIFBhcnNlUG9zaXRpb24gcGFyc2VQb3MpCisgICAgeworICAgICAgICBpbnQgcG9zID0gcGFyc2VQb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgaW50IHN0YXJ0ID0gcG9zOworICAgICAgICBib29sZWFuW10gYW1iaWd1b3VzWWVhciA9IHsgZmFsc2UgfTsKKyAgICAgICAgaW50IGNvdW50ID0gMDsKKworICAgICAgICAvLyBoYWNrLCBjbGVhciBwYXJzZWRUaW1lWm9uZQorICAgICAgICBwYXJzZWRUaW1lWm9uZSA9IG51bGw7CisKKyAgICAgICAgLy8gRm9yIHBhcnNpbmcgYWJ1dHRpbmcgbnVtZXJpYyBmaWVsZHMuICdhYnV0UGF0JyBpcyB0aGUKKyAgICAgICAgLy8gb2Zmc2V0IGludG8gJ3BhdHRlcm4nIG9mIHRoZSBmaXJzdCBvZiAyIG9yIG1vcmUgYWJ1dHRpbmcKKyAgICAgICAgLy8gbnVtZXJpYyBmaWVsZHMuICAnYWJ1dFN0YXJ0JyBpcyB0aGUgb2Zmc2V0IGludG8gJ3RleHQnCisgICAgICAgIC8vIHdoZXJlIHBhcnNpbmcgdGhlIGZpZWxkcyBiZWdpbnMuICdhYnV0UGFzcycgc3RhcnRzIG9mZiBhcyAwCisgICAgICAgIC8vIGFuZCBpbmNyZW1lbnRzIGVhY2ggdGltZSB3ZSB0cnkgdG8gcGFyc2UgdGhlIGZpZWxkcy4KKyAgICAgICAgaW50IGFidXRQYXQgPSAtMTsgLy8gSWYgPj0wLCB3ZSBhcmUgaW4gYSBydW4gb2YgYWJ1dHRpbmcgbnVtZXJpYyBmaWVsZHMKKyAgICAgICAgaW50IGFidXRTdGFydCA9IDA7CisgICAgICAgIGludCBhYnV0UGFzcyA9IDA7CisgICAgICAgIGJvb2xlYW4gaW5RdW90ZSA9IGZhbHNlOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxwYXR0ZXJuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSBwYXR0ZXJuLmNoYXJBdChpKTsKKworICAgICAgICAgICAgLy8gSGFuZGxlIGFscGhhYmV0aWMgZmllbGQgY2hhcmFjdGVycy4KKyAgICAgICAgICAgIGlmICghaW5RdW90ZSAmJiAoY2ggPj0gJ0EnICYmIGNoIDw9ICdaJyB8fCBjaCA+PSAnYScgJiYgY2ggPD0gJ3onKSkgeworICAgICAgICAgICAgICAgIGludCBmaWVsZFBhdCA9IGk7CisKKyAgICAgICAgICAgICAgICAvLyBDb3VudCB0aGUgbGVuZ3RoIG9mIHRoaXMgZmllbGQgc3BlY2lmaWVyCisgICAgICAgICAgICAgICAgY291bnQgPSAxOworICAgICAgICAgICAgICAgIHdoaWxlICgoaSsxKTxwYXR0ZXJuLmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4uY2hhckF0KGkrMSkgPT0gY2gpIHsKKyAgICAgICAgICAgICAgICAgICAgKytjb3VudDsKKyAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChpc051bWVyaWMoY2gsIGNvdW50KSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYWJ1dFBhdCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIERldGVybWluZSBpZiB0aGVyZSBpcyBhbiBhYnV0dGluZyBudW1lcmljIGZpZWxkLiAgRm9yCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBtb3N0IGZpZWxkcyB3ZSBjYW4ganVzdCBsb29rIGF0IHRoZSBuZXh0IGNoYXJhY3RlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBidXQgdGhlICdtJyBmaWVsZCBpcyBlaXRoZXIgbnVtZXJpYyBvciB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVwZW5kaW5nIG9uIHRoZSBjb3VudCwgc28gd2UgaGF2ZSB0byBsb29rIGFoZWFkIGZvcgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCBmaWVsZC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoaSsxKTxwYXR0ZXJuLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBhYnV0dGluZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIG5leHRDaCA9IHBhdHRlcm4uY2hhckF0KGkrMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGsgPSBOVU1FUklDX0ZPUk1BVF9DSEFSUy5pbmRleE9mKG5leHRDaCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGsgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaiA9IGkrMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGo8cGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybi5jaGFyQXQoaikgPT0gbmV4dENoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2o7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJ1dHRpbmcgPSAoai1pKSA8IDQ7IC8vIG5leHRDb3VudCA8IDMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnV0dGluZyA9IGsgPiAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlY29yZCB0aGUgc3RhcnQgb2YgYSBzZXQgb2YgYWJ1dHRpbmcgbnVtZXJpYworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZpZWxkcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWJ1dHRpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJ1dFBhdCA9IGZpZWxkUGF0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnV0U3RhcnQgPSBwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFidXRQYXNzID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhYnV0UGF0ID0gLTE7IC8vIEVuZCBvZiBhbnkgYWJ1dHRpbmcgZmllbGRzCisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gSGFuZGxlIGZpZWxkcyB3aXRoaW4gYSBydW4gb2YgYWJ1dHRpbmcgbnVtZXJpYyBmaWVsZHMuICBUYWtlCisgICAgICAgICAgICAgICAgLy8gdGhlIHBhdHRlcm4gIkhIbW1zcyIgYXMgYW4gZXhhbXBsZS4gV2Ugd2lsbCB0cnkgdG8gcGFyc2UKKyAgICAgICAgICAgICAgICAvLyAyLzIvMiBjaGFyYWN0ZXJzIG9mIHRoZSBpbnB1dCB0ZXh0LCB0aGVuIGlmIHRoYXQgZmFpbHMsCisgICAgICAgICAgICAgICAgLy8gMS8yLzIuICBXZSBvbmx5IGFkanVzdCB0aGUgd2lkdGggb2YgdGhlIGxlZnRtb3N0IGZpZWxkOyB0aGUKKyAgICAgICAgICAgICAgICAvLyBvdGhlcnMgcmVtYWluIGZpeGVkLiAgVGhpcyBhbGxvd3MgIjEyMzQ1NiIgPT4gMTI6MzQ6NTYsIGJ1dAorICAgICAgICAgICAgICAgIC8vICIxMjM0NSIgPT4gMToyMzo0NS4gIExpa2V3aXNlLCBmb3IgdGhlIHBhdHRlcm4gInl5eXlNTWRkIiB3ZQorICAgICAgICAgICAgICAgIC8vIHRyeSA0LzIvMiwgMy8yLzIsIDIvMi8yLCBhbmQgZmluYWxseSAxLzIvMi4KKyAgICAgICAgICAgICAgICBpZiAoYWJ1dFBhdCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGFyZSBhdCB0aGUgc3RhcnQgb2YgYSBydW4gb2YgYWJ1dHRpbmcgZmllbGRzLCB0aGVuCisgICAgICAgICAgICAgICAgICAgIC8vIHNob3J0ZW4gdGhpcyBmaWVsZCBpbiBlYWNoIHBhc3MuICBJZiB3ZSBjYW4ndCBzaG9ydGVuCisgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgZmllbGQgYW55IG1vcmUsIHRoZW4gdGhlIHBhcnNlIG9mIHRoaXMgc2V0IG9mCisgICAgICAgICAgICAgICAgICAgIC8vIGFidXR0aW5nIG51bWVyaWMgZmllbGRzIGhhcyBmYWlsZWQuCisgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZFBhdCA9PSBhYnV0UGF0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCAtPSBhYnV0UGFzcysrOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZVBvcy5zZXRJbmRleChzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3Muc2V0RXJyb3JJbmRleChwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHBvcyA9IHN1YlBhcnNlKHRleHQsIHBvcywgY2gsIGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCBmYWxzZSwgYW1iaWd1b3VzWWVhciwgY2FsKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgcGFyc2UgZmFpbHMgYW55d2hlcmUgaW4gdGhlIHJ1biwgYmFjayB1cCB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gc3RhcnQgb2YgdGhlIHJ1biBhbmQgcmV0cnkuCisgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpID0gYWJ1dFBhdCAtIDE7CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBhYnV0U3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBub24tbnVtZXJpYyBmaWVsZHMgYW5kIG5vbi1hYnV0dGluZyBudW1lcmljCisgICAgICAgICAgICAgICAgLy8gZmllbGRzLgorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbnQgcyA9IHBvczsKKyAgICAgICAgICAgICAgICAgICAgcG9zID0gc3ViUGFyc2UodGV4dCwgcG9zLCBjaCwgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCB0cnVlLCBhbWJpZ3VvdXNZZWFyLCBjYWwpOworCisgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZVBvcy5zZXRFcnJvckluZGV4KHMpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VQb3Muc2V0SW5kZXgoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBIYW5kbGUgbGl0ZXJhbCBwYXR0ZXJuIGNoYXJhY3RlcnMuICBUaGVzZSBhcmUgYW55CisgICAgICAgICAgICAvLyBxdW90ZWQgY2hhcmFjdGVycyBhbmQgbm9uLWFscGhhYmV0aWMgdW5xdW90ZWQKKyAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMuCisgICAgICAgICAgICBlbHNlIHsKKworICAgICAgICAgICAgICAgIGFidXRQYXQgPSAtMTsgLy8gRW5kIG9mIGFueSBhYnV0dGluZyBmaWVsZHMKKworICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBxdW90ZXMuICBUd28gY29uc2VjdXRpdmUgcXVvdGVzIGlzIGEgcXVvdGUKKyAgICAgICAgICAgICAgICAvLyBsaXRlcmFsLCBpbnNpZGUgb3Igb3V0c2lkZSBvZiBxdW90ZXMuICBPdGhlcndpc2UgYQorICAgICAgICAgICAgICAgIC8vIHF1b3RlIGluZGljYXRlcyBlbnRyeSBvciBleGl0IGZyb20gYSBxdW90ZWQgcmVnaW9uLgorICAgICAgICAgICAgICAgIGlmIChjaCA9PSAnXCcnKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIE1hdGNoIGEgcXVvdGUgbGl0ZXJhbCAnJyB3aXRoaW4gT1Igb3V0c2lkZSBvZiBxdW90ZXMKKyAgICAgICAgICAgICAgICAgICAgaWYgKChpKzEpPHBhdHRlcm4ubGVuZ3RoKCkgJiYgcGF0dGVybi5jaGFyQXQoaSsxKT09Y2gpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICsraTsgLy8gU2tpcCBvdmVyIGRvdWJsZWQgcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCBhbmQgdHJlYXQgcXVvdGUgYXMgYSBsaXRlcmFsCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBFbnRlciBvciBleGl0IHF1b3RlZCByZWdpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIGluUXVvdGUgPSAhaW5RdW90ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gQSBydW4gb2Ygd2hpdGUgc3BhY2UgaW4gdGhlIHBhdHRlcm4gbWF0Y2hlcyBhIHJ1bgorICAgICAgICAgICAgICAgIC8vIG9mIHdoaXRlIHNwYWNlIGluIHRoZSBpbnB1dCB0ZXh0LgorICAgICAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQWR2YW5jZSBvdmVyIHJ1biBpbiBwYXR0ZXJuCisgICAgICAgICAgICAgICAgICAgIHdoaWxlICgoaSsxKTxwYXR0ZXJuLmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShwYXR0ZXJuLmNoYXJBdChpKzEpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gQWR2YW5jZSBvdmVyIHJ1biBpbiBpbnB1dCB0ZXh0CisgICAgICAgICAgICAgICAgICAgIGludCBzID0gcG9zOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAocG9zPHRleHQubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXIuaXNVV2hpdGVTcGFjZSh0ZXh0LmNoYXJBdChwb3MpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBNdXN0IHNlZSBhdCBsZWFzdCBvbmUgd2hpdGUgc3BhY2UgY2hhciBpbiBpbnB1dAorICAgICAgICAgICAgICAgICAgICBpZiAocG9zID4gcykgeworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBvczx0ZXh0Lmxlbmd0aCgpICYmIHRleHQuY2hhckF0KHBvcyk9PWNoKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIE1hdGNoIGEgbGl0ZXJhbAorICAgICAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gV2UgZmFsbCB0aHJvdWdoIHRvIHRoaXMgcG9pbnQgaWYgdGhlIG1hdGNoIGZhaWxzCisgICAgICAgICAgICAgICAgcGFyc2VQb3Muc2V0SW5kZXgoc3RhcnQpOworICAgICAgICAgICAgICAgIHBhcnNlUG9zLnNldEVycm9ySW5kZXgocG9zKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHRoZSBmaWVsZHMgb2YgQ2FsZW5kYXIgaGF2ZSBiZWVuIHNldC4gIENhbGVuZGFyCisgICAgICAgIC8vIHdpbGwgZmlsbCBpbiBkZWZhdWx0IHZhbHVlcyBmb3IgbWlzc2luZyBmaWVsZHMgd2hlbiB0aGUgdGltZQorICAgICAgICAvLyBpcyBjb21wdXRlZC4KKworICAgICAgICBwYXJzZVBvcy5zZXRJbmRleChwb3MpOworCisgICAgICAgIC8vIFRoaXMgcGFydCBpcyBhIHByb2JsZW06ICBXaGVuIHdlIGNhbGwgcGFyc2VkRGF0ZS5hZnRlciwgd2UgY29tcHV0ZSB0aGUgdGltZS4KKyAgICAgICAgLy8gVGFrZSB0aGUgZGF0ZSBBcHJpbCAzIDIwMDQgYXQgMjozMCBhbS4gIFdoZW4gdGhpcyBpcyBmaXJzdCBzZXQgdXAsIHRoZSB5ZWFyCisgICAgICAgIC8vIHdpbGwgYmUgd3JvbmcgaWYgd2UncmUgcGFyc2luZyBhIDItZGlnaXQgeWVhciBwYXR0ZXJuLiAgSXQgd2lsbCBiZSAxOTA0LgorICAgICAgICAvLyBBcHJpbCAzIDE5MDQgaXMgYSBTdW5kYXkgKHVubGlrZSAyMDA0KSBzbyBpdCBpcyB0aGUgRFNUIG9uc2V0IGRheS4gIDI6MzAgYW0KKyAgICAgICAgLy8gaXMgdGhlcmVmb3JlIGFuICJpbXBvc3NpYmxlIiB0aW1lLCBzaW5jZSB0aGUgdGltZSBnb2VzIGZyb20gMTo1OSB0byAzOjAwIGFtCisgICAgICAgIC8vIG9uIHRoYXQgZGF5LiAgSXQgaXMgdGhlcmVmb3JlIHBhcnNlZCBvdXQgdG8gZmllbGRzIGFzIDM6MzAgYW0uICBUaGVuIHdlCisgICAgICAgIC8vIGFkZCAxMDAgeWVhcnMsIGFuZCBnZXQgQXByaWwgMyAyMDA0IGF0IDM6MzAgYW0uICBOb3RlIHRoYXQgQXByaWwgMyAyMDA0IGlzCisgICAgICAgIC8vIGEgU2F0dXJkYXksIHNvIGl0IGNhbiBoYXZlIGEgMjozMCBhbSAtLSBhbmQgaXQgc2hvdWxkLiBbTElVXQorICAgICAgICAvKgorICAgICAgICAgIERhdGUgcGFyc2VkRGF0ZSA9IGNhbC5nZXRUaW1lKCk7CisgICAgICAgICAgaWYoIGFtYmlndW91c1llYXJbMF0gJiYgIXBhcnNlZERhdGUuYWZ0ZXIoZGVmYXVsdENlbnR1cnlTdGFydCkgKSB7CisgICAgICAgICAgY2FsLmFkZChDYWxlbmRhci5ZRUFSLCAxMDApOworICAgICAgICAgIHBhcnNlZERhdGUgPSBjYWwuZ2V0VGltZSgpOworICAgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICAgICAgLy8gQmVjYXVzZSBvZiB0aGUgYWJvdmUgY29uZGl0aW9uLCBzYXZlIG9mZiB0aGUgZmllbGRzIGluIGNhc2Ugd2UgbmVlZCB0byByZWFkanVzdC4KKyAgICAgICAgLy8gVGhlIHByb2NlZHVyZSB3ZSB1c2UgaGVyZSBpcyBub3QgcGFydGljdWxhcmx5IGVmZmljaWVudCwgYnV0IHRoZXJlIGlzIG5vIG90aGVyCisgICAgICAgIC8vIHdheSB0byBkbyB0aGlzIGdpdmVuIHRoZSBBUEkgcmVzdHJpY3Rpb25zIHByZXNlbnQgaW4gQ2FsZW5kYXIuICBXZSBtaW5pbWl6ZQorICAgICAgICAvLyBpbmVmZmljaWVuY3kgYnkgb25seSBwZXJmb3JtaW5nIHRoaXMgY29tcHV0YXRpb24gd2hlbiBpdCBtaWdodCBhcHBseSwgdGhhdCBpcywKKyAgICAgICAgLy8gd2hlbiB0aGUgdHdvLWRpZ2l0IHllYXIgaXMgZXF1YWwgdG8gdGhlIHN0YXJ0IHllYXIsIGFuZCB0aHVzIG1pZ2h0IGZhbGwgYXQgdGhlCisgICAgICAgIC8vIGZyb250IG9yIHRoZSBiYWNrIG9mIHRoZSBkZWZhdWx0IGNlbnR1cnkuICBUaGlzIG9ubHkgd29ya3MgYmVjYXVzZSB3ZSBhZGp1c3QKKyAgICAgICAgLy8gdGhlIHllYXIgY29ycmVjdGx5IHRvIHN0YXJ0IHdpdGggaW4gb3RoZXIgY2FzZXMgLS0gc2VlIHN1YlBhcnNlKCkuCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoYW1iaWd1b3VzWWVhclswXSB8fCBwYXJzZWRUaW1lWm9uZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCBhIGNvcHkgb2YgdGhlIGZpZWxkcywgYW5kIHdlIG5lZWQgdG8gYXZvaWQgdHJpZ2dlcmluZyBhIGNhbGwgdG8KKyAgICAgICAgICAgICAgICAvLyBjb21wbGV0ZSgpLCB3aGljaCB3aWxsIHJlY2FsY3VsYXRlIHRoZSBmaWVsZHMuICBTaW5jZSB3ZSBjYW4ndCBhY2Nlc3MKKyAgICAgICAgICAgICAgICAvLyB0aGUgZmllbGRzW10gYXJyYXkgaW4gQ2FsZW5kYXIsIHdlIGNsb25lIHRoZSBlbnRpcmUgb2JqZWN0LiAgVGhpcyB3aWxsCisgICAgICAgICAgICAgICAgLy8gc3RvcCB3b3JraW5nIGlmIENhbGVuZGFyLmNsb25lKCkgaXMgZXZlciByZXdyaXR0ZW4gdG8gY2FsbCBjb21wbGV0ZSgpLgorICAgICAgICAgICAgICAgIENhbGVuZGFyIGNvcHkgPSAoQ2FsZW5kYXIpY2FsLmNsb25lKCk7CisgICAgICAgICAgICAgICAgaWYgKGFtYmlndW91c1llYXJbMF0pIHsgLy8gdGhlIHR3by1kaWdpdCB5ZWFyID09IHRoZSBkZWZhdWx0IHN0YXJ0IHllYXIKKyAgICAgICAgICAgICAgICAgICAgRGF0ZSBwYXJzZWREYXRlID0gY29weS5nZXRUaW1lKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZWREYXRlLmJlZm9yZShkZWZhdWx0Q2VudHVyeVN0YXJ0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QgdXNlIGFkZCBoZXJlIGJlY2F1c2UgdGhhdCBkb2VzIGEgY29tcGxldGUoKSBmaXJzdC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuWUVBUiwgZGVmYXVsdENlbnR1cnlTdGFydFllYXIgKyAxMDApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKHBhcnNlZFRpbWVab25lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgVGltZVpvbmUgdHogPSBwYXJzZWRUaW1lWm9uZTsKKworICAgICAgICAgICAgICAgICAgICAvLyB0aGUgY2FsZW5kYXIgcmVwcmVzZW50cyB0aGUgcGFyc2UgYXMgZ210IHRpbWUKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byB0dXJuIHRoaXMgaW50byBsb2NhbCB0aW1lLCBzbyB3ZSBhZGQgdGhlIHJhdyBvZmZzZXQKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3ZSBhc2sgdGhlIHRpbWV6b25lIHRvIGhhbmRsZSB0aGlzIGxvY2FsIHRpbWUKKyAgICAgICAgICAgICAgICAgICAgaW50W10gb2Zmc2V0cyA9IG5ldyBpbnRbMl07CisgICAgICAgICAgICAgICAgICAgIHR6LmdldE9mZnNldChjb3B5LmdldFRpbWVJbk1pbGxpcygpK3R6LmdldFJhd09mZnNldCgpLCB0cnVlLCBvZmZzZXRzKTsKKworICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLlpPTkVfT0ZGU0VULCBvZmZzZXRzWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EU1RfT0ZGU0VULCBvZmZzZXRzWzFdKTsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldFRpbWVab25lKHR6KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gQW4gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIGJ5IENhbGVuZGFyLmdldFRpbWUoKQorICAgICAgICAvLyBpZiBhbnkgZmllbGRzIGFyZSBvdXQgb2YgcmFuZ2UsIGUuZy4sIE1PTlRIID09IDE3LgorICAgICAgICBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHBhcnNlUG9zLnNldEVycm9ySW5kZXgocG9zKTsKKyAgICAgICAgICAgIHBhcnNlUG9zLnNldEluZGV4KHN0YXJ0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEF0dGVtcHQgdG8gbWF0Y2ggdGhlIHRleHQgYXQgYSBnaXZlbiBwb3NpdGlvbiBhZ2FpbnN0IGFuIGFycmF5IG9mCisgICAgICogc3RyaW5ncy4gIFNpbmNlIG11bHRpcGxlIHN0cmluZ3MgaW4gdGhlIGFycmF5IG1heSBtYXRjaCAoZm9yCisgICAgICogZXhhbXBsZSwgaWYgdGhlIGFycmF5IGNvbnRhaW5zICJhIiwgImFiIiwgYW5kICJhYmMiLCBhbGwgd2lsbCBtYXRjaAorICAgICAqIHRoZSBpbnB1dCBzdHJpbmcgImFiY2QiKSB0aGUgbG9uZ2VzdCBtYXRjaCBpcyByZXR1cm5lZC4gIEFzIGEgc2lkZQorICAgICAqIGVmZmVjdCwgdGhlIGdpdmVuIGZpZWxkIG9mIDxjb2RlPmNhbDwvY29kZT4gaXMgc2V0IHRvIHRoZSBpbmRleAorICAgICAqIG9mIHRoZSBiZXN0IG1hdGNoLCBpZiB0aGVyZSBpcyBvbmUuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRpbWUgdGV4dCBiZWluZyBwYXJzZWQuCisgICAgICogQHBhcmFtIHN0YXJ0IHdoZXJlIHRvIHN0YXJ0IHBhcnNpbmcuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBkYXRlIGZpZWxkIGJlaW5nIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gZGF0YSB0aGUgc3RyaW5nIGFycmF5IHRvIHBhcnNlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcgc3RhcnQgcG9zaXRpb24gaWYgbWF0Y2hpbmcgc3VjY2VlZGVkOyBhIG5lZ2F0aXZlCisgICAgICogbnVtYmVyIGluZGljYXRpbmcgbWF0Y2hpbmcgZmFpbHVyZSwgb3RoZXJ3aXNlLiAgQXMgYSBzaWRlIGVmZmVjdCwKKyAgICAgKiBzZXRzIHRoZSA8Y29kZT5jYWw8L2NvZGU+IGZpZWxkIDxjb2RlPmZpZWxkPC9jb2RlPiB0byB0aGUgaW5kZXgKKyAgICAgKiBvZiB0aGUgYmVzdCBtYXRjaCwgaWYgbWF0Y2hpbmcgc3VjY2VlZGVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbWF0Y2hTdHJpbmcoU3RyaW5nIHRleHQsIGludCBzdGFydCwgaW50IGZpZWxkLCBTdHJpbmdbXSBkYXRhLCBDYWxlbmRhciBjYWwpCisgICAgeworICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgIGludCBjb3VudCA9IGRhdGEubGVuZ3RoOworCisgICAgICAgIGlmIChmaWVsZCA9PSBDYWxlbmRhci5EQVlfT0ZfV0VFSykgaSA9IDE7CisKKyAgICAgICAgLy8gVGhlcmUgbWF5IGJlIG11bHRpcGxlIHN0cmluZ3MgaW4gdGhlIGRhdGFbXSBhcnJheSB3aGljaCBiZWdpbiB3aXRoCisgICAgICAgIC8vIHRoZSBzYW1lIHByZWZpeCAoZS5nLiwgQ2VydmVuIGFuZCBDZXJ2ZW5lYyAoSnVuZSBhbmQgSnVseSkgaW4gQ3plY2gpLgorICAgICAgICAvLyBXZSBrZWVwIHRyYWNrIG9mIHRoZSBsb25nZXN0IG1hdGNoLCBhbmQgcmV0dXJuIHRoYXQuICBOb3RlIHRoYXQgdGhpcworICAgICAgICAvLyB1bmZvcnR1bmF0ZWx5IHJlcXVpcmVzIHVzIHRvIHRlc3QgYWxsIGFycmF5IGVsZW1lbnRzLgorICAgICAgICBpbnQgYmVzdE1hdGNoTGVuZ3RoID0gMCwgYmVzdE1hdGNoID0gLTE7CisgICAgICAgIGZvciAoOyBpPGNvdW50OyArK2kpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IGxlbmd0aCA9IGRhdGFbaV0ubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgLy8gQWx3YXlzIGNvbXBhcmUgaWYgd2UgaGF2ZSBubyBtYXRjaCB5ZXQ7IG90aGVyd2lzZSBvbmx5IGNvbXBhcmUKKyAgICAgICAgICAgICAgICAvLyBhZ2FpbnN0IHBvdGVudGlhbGx5IGJldHRlciBtYXRjaGVzIChsb25nZXIgc3RyaW5ncykuCisgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA+IGJlc3RNYXRjaExlbmd0aCAmJgorICAgICAgICAgICAgICAgICAgICB0ZXh0LnJlZ2lvbk1hdGNoZXModHJ1ZSwgc3RhcnQsIGRhdGFbaV0sIDAsIGxlbmd0aCkpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJlc3RNYXRjaCA9IGk7CisgICAgICAgICAgICAgICAgICAgICAgICBiZXN0TWF0Y2hMZW5ndGggPSBsZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgaWYgKGJlc3RNYXRjaCA+PSAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhbC5zZXQoZmllbGQsIGJlc3RNYXRjaCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0ICsgYmVzdE1hdGNoTGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICByZXR1cm4gLXN0YXJ0OworICAgIH0KKyAgICAvKioKKyAgICAgKiBmaW5kIHRpbWUgem9uZSAndGV4dCcgbWF0Y2hlZCB6b25lU3RyaW5ncyBhbmQgc2V0IGNhbAorICAgICAqLworICAgIHByaXZhdGUgaW50IHN1YlBhcnNlWm9uZVN0cmluZyhTdHJpbmcgdGV4dCwgaW50IHN0YXJ0LCBDYWxlbmRhciBjYWwpIHsKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCwgY2hlY2sgZm9yIG5hbWVkIHRpbWUgem9uZXMgYnkgbG9va2luZyB0aHJvdWdoCisgICAgICAgIC8vIHRoZSBsb2NhbGUgZGF0YSBmcm9tIHRoZSBEYXRlRm9ybWF0Wm9uZURhdGEgc3RyaW5ncy4KKyAgICAgICAgLy8gV2FudCB0byBiZSBhYmxlIHRvIHBhcnNlIGJvdGggc2hvcnQgYW5kIGxvbmcgZm9ybXMuCisKKyAgICAgICAgLy8gb3B0aW1pemUgZm9yIGNhbGVuZGFyJ3MgY3VycmVudCB0aW1lIHpvbmUKKyAgICAgICAgVGltZVpvbmUgdHogPSBudWxsOworICAgICAgICBTdHJpbmcgemlkID0gbnVsbCwgdmFsdWUgPSBudWxsOworICAgICAgICBpbnQgdHlwZSA9IC0xOworCisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzLlpvbmVJdGVtIGl0ZW0gPSBmb3JtYXREYXRhLmZpbmRab25lSURUeXBlVmFsdWUodGV4dCwgc3RhcnQpOworICAgICAgICBpZiAoaXRlbSAhPSBudWxsKSB7CisgICAgICAgICAgICB6aWQgPSBpdGVtLnppZDsKKyAgICAgICAgICAgIHZhbHVlID0gaXRlbS52YWx1ZTsKKyAgICAgICAgICAgIHR5cGUgPSBpdGVtLnR5cGU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHppZCAhPSBudWxsKSB7CisgICAgICAgICAgICB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKHppZCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodHogIT0gbnVsbCkgeyAvLyBNYXRjaGVkIGFueSA/CisgICAgICAgICAgICAvLyBhbHdheXMgc2V0IHpvbmUgb2Zmc2V0LCBuZWVkZWQgdG8gZ2V0IGNvcnJlY3QgaG91ciBpbiB3YWxsIHRpbWUKKyAgICAgICAgICAgIC8vIHdoZW4gY2hlY2tpbmcgZGF5bGlnaHQgc2F2aW5ncworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5aT05FX09GRlNFVCwgdHouZ2V0UmF3T2Zmc2V0KCkpOworICAgICAgICAgICAgaWYgKHR5cGUgPT0gRGF0ZUZvcm1hdFN5bWJvbHMuVElNRVpPTkVfU0hPUlRfU1RBTkRBUkQKKyAgICAgICAgICAgICAgICAgICAgfHwgdHlwZSA9PSBEYXRlRm9ybWF0U3ltYm9scy5USU1FWk9ORV9MT05HX1NUQU5EQVJEKSB7CisgICAgICAgICAgICAgICAgLy8gc3RhbmRhcmQgdGltZQorICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCwgMCk7CisgICAgICAgICAgICAgICAgdHogPSBudWxsOworICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IERhdGVGb3JtYXRTeW1ib2xzLlRJTUVaT05FX1NIT1JUX0RBWUxJR0hUCisgICAgICAgICAgICAgICAgICAgIHx8IHR5cGUgPT0gRGF0ZUZvcm1hdFN5bWJvbHMuVElNRVpPTkVfTE9OR19EQVlMSUdIVCkgeworICAgICAgICAgICAgICAgIC8vIGRheWxpZ2h0IHRpbWUKKyAgICAgICAgICAgICAgICAvLyB1c2UgdGhlIGNvcnJlY3QgRFNUIFNBVklOR1MgZm9yIHRoZSB6b25lLgorICAgICAgICAgICAgICAgIC8vIGNhbC5zZXQoVUNBTF9EU1RfT0ZGU0VULCB0ei0+Z2V0RFNUU2F2aW5ncygpKTsKKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRTVF9PRkZTRVQsIG1pbGxpc1BlckhvdXIpOworICAgICAgICAgICAgICAgIHR6ID0gbnVsbDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gZWl0aGVyIHN0YW5kYXJkIG9yIGRheWxpZ2h0CisgICAgICAgICAgICAgICAgLy8gbmVlZCB0byBmaW5pc2ggZ2V0dGluZyB0aGUgZGF0ZSwgdGhlbiBjb21wdXRlIGRzdCBvZmZzZXQgYXMKKyAgICAgICAgICAgICAgICAvLyBhcHByb3ByaWF0ZQorICAgICAgICAgICAgICAgIHBhcnNlZFRpbWVab25lID0gdHo7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZih2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0ICsgdmFsdWUubGVuZ3RoKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gY29tcGxldGUgZmFpbHVyZQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm90ZWN0ZWQgbWV0aG9kIHRoYXQgY29udmVydHMgb25lIGZpZWxkIG9mIHRoZSBpbnB1dCBzdHJpbmcgaW50byBhCisgICAgICogbnVtZXJpYyBmaWVsZCB2YWx1ZSBpbiA8Y29kZT5jYWw8L2NvZGU+LiAgUmV0dXJucyAtc3RhcnQgKGZvcgorICAgICAqIFBhcnNlUG9zaXRpb24pIGlmIGZhaWxlZC4gIFN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvCisgICAgICogbW9kaWZ5IG9yIGFkZCBwYXJzaW5nIGNhcGFiaWxpdGllcy4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGltZSB0ZXh0IHRvIGJlIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gc3RhcnQgd2hlcmUgdG8gc3RhcnQgcGFyc2luZy4KKyAgICAgKiBAcGFyYW0gY2ggdGhlIHBhdHRlcm4gY2hhcmFjdGVyIGZvciB0aGUgZGF0ZSBmaWVsZCB0ZXh0IHRvIGJlIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gY291bnQgdGhlIGNvdW50IG9mIGEgcGF0dGVybiBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIG9iZXlDb3VudCBpZiB0cnVlLCB0aGVuIHRoZSBuZXh0IGZpZWxkIGRpcmVjdGx5IGFidXRzIHRoaXMgb25lLAorICAgICAqIGFuZCB3ZSBzaG91bGQgdXNlIHRoZSBjb3VudCB0byBrbm93IHdoZW4gdG8gc3RvcCBwYXJzaW5nLgorICAgICAqIEBwYXJhbSBhbWJpZ3VvdXNZZWFyIHJldHVybiBwYXJhbWV0ZXI7IHVwb24gcmV0dXJuLCBpZiBhbWJpZ3VvdXNZZWFyWzBdCisgICAgICogaXMgdHJ1ZSwgdGhlbiBhIHR3by1kaWdpdCB5ZWFyIHdhcyBwYXJzZWQgYW5kIG1heSBuZWVkIHRvIGJlIHJlYWRqdXN0ZWQuCisgICAgICogQHJldHVybiB0aGUgbmV3IHN0YXJ0IHBvc2l0aW9uIGlmIG1hdGNoaW5nIHN1Y2NlZWRlZDsgYSBuZWdhdGl2ZQorICAgICAqIG51bWJlciBpbmRpY2F0aW5nIG1hdGNoaW5nIGZhaWx1cmUsIG90aGVyd2lzZS4gIEFzIGEgc2lkZSBlZmZlY3QsCisgICAgICogc2V0IHRoZSBhcHByb3ByaWF0ZSBmaWVsZCBvZiA8Y29kZT5jYWw8L2NvZGU+IHdpdGggdGhlIHBhcnNlZAorICAgICAqIHZhbHVlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgc3ViUGFyc2UoU3RyaW5nIHRleHQsIGludCBzdGFydCwgY2hhciBjaCwgaW50IGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBvYmV5Q291bnQsIGJvb2xlYW4gYWxsb3dOZWdhdGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW5bXSBhbWJpZ3VvdXNZZWFyLCBDYWxlbmRhciBjYWwpCisgICAgeworICAgICAgICBOdW1iZXIgbnVtYmVyID0gbnVsbDsKKyAgICAgICAgaW50IHZhbHVlID0gMDsKKyAgICAgICAgaW50IGk7CisgICAgICAgIFBhcnNlUG9zaXRpb24gcG9zID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgIGludCBwYXR0ZXJuQ2hhckluZGV4ID0gRGF0ZUZvcm1hdFN5bWJvbHMucGF0dGVybkNoYXJzLmluZGV4T2YoY2gpOworCisgICAgICAgIGlmIChwYXR0ZXJuQ2hhckluZGV4ID09IC0xKSB7CisgICAgICAgICAgICByZXR1cm4gLXN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgaW50IGZpZWxkID0gUEFUVEVSTl9JTkRFWF9UT19DQUxFTkRBUl9GSUVMRFtwYXR0ZXJuQ2hhckluZGV4XTsKKworICAgICAgICAvLyBJZiB0aGVyZSBhcmUgYW55IHNwYWNlcyBoZXJlLCBza2lwIG92ZXIgdGhlbS4gIElmIHdlIGhpdCB0aGUgZW5kCisgICAgICAgIC8vIG9mIHRoZSBzdHJpbmcsIHRoZW4gZmFpbC4KKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgaWYgKHN0YXJ0ID49IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gLXN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQodGV4dCwgc3RhcnQpOworICAgICAgICAgICAgaWYgKCFVQ2hhcmFjdGVyLmlzVVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YXJ0ICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgfQorICAgICAgICBwb3Muc2V0SW5kZXgoc3RhcnQpOworCisgICAgICAgIC8vIFdlIGhhbmRsZSBhIGZldyBzcGVjaWFsIGNhc2VzIGhlcmUgd2hlcmUgd2UgbmVlZCB0byBwYXJzZQorICAgICAgICAvLyBhIG51bWJlciB2YWx1ZS4gIFdlIGhhbmRsZSBmdXJ0aGVyLCBtb3JlIGdlbmVyaWMgY2FzZXMgYmVsb3cuICBXZSBuZWVkCisgICAgICAgIC8vIHRvIGhhbmRsZSBzb21lIG9mIHRoZW0gaGVyZSBiZWNhdXNlIHNvbWUgZmllbGRzIHJlcXVpcmUgZXh0cmEgcHJvY2Vzc2luZyBvbgorICAgICAgICAvLyB0aGUgcGFyc2VkIHZhbHVlLgorICAgICAgICBpZiAocGF0dGVybkNoYXJJbmRleCA9PSA0IC8qSE9VUl9PRl9EQVkxX0ZJRUxEKi8gfHwKKyAgICAgICAgICAgIHBhdHRlcm5DaGFySW5kZXggPT0gMTUgLypIT1VSMV9GSUVMRCovIHx8CisgICAgICAgICAgICAocGF0dGVybkNoYXJJbmRleCA9PSAyIC8qTU9OVEhfRklFTEQqLyAmJiBjb3VudCA8PSAyKSB8fAorICAgICAgICAgICAgcGF0dGVybkNoYXJJbmRleCA9PSAxIHx8CisgICAgICAgICAgICBwYXR0ZXJuQ2hhckluZGV4ID09IDgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gSXQgd291bGQgYmUgZ29vZCB0byB1bmlmeSB0aGlzIHdpdGggdGhlIG9iZXlDb3VudCBsb2dpYyBiZWxvdywKKyAgICAgICAgICAgICAgICAvLyBidXQgdGhhdCdzIGdvaW5nIHRvIGJlIGRpZmZpY3VsdC4KKyAgICAgICAgICAgICAgICBpZiAob2JleUNvdW50KQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHN0YXJ0K2NvdW50KSA+IHRleHQubGVuZ3RoKCkpIHJldHVybiAtc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSBwYXJzZUludCh0ZXh0LnN1YnN0cmluZygwLCBzdGFydCtjb3VudCksIHBvcywgYWxsb3dOZWdhdGl2ZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIG51bWJlciA9IHBhcnNlSW50KHRleHQsIHBvcywgYWxsb3dOZWdhdGl2ZSk7CisgICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLXN0YXJ0OworICAgICAgICAgICAgICAgIHZhbHVlID0gbnVtYmVyLmludFZhbHVlKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgc3dpdGNoIChwYXR0ZXJuQ2hhckluZGV4KQorICAgICAgICAgICAgeworICAgICAgICAgICAgY2FzZSAwOiAvLyAnRycgLSBFUkEKKyAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hTdHJpbmcodGV4dCwgc3RhcnQsIENhbGVuZGFyLkVSQSwgZm9ybWF0RGF0YS5lcmFzLCBjYWwpOworICAgICAgICAgICAgY2FzZSAxOiAvLyAneScgLSBZRUFSCisgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgYXJlIDMgb3IgbW9yZSBZRUFSIHBhdHRlcm4gY2hhcmFjdGVycywgdGhpcyBpbmRpY2F0ZXMKKyAgICAgICAgICAgICAgICAvLyB0aGF0IHRoZSB5ZWFyIHZhbHVlIGlzIHRvIGJlIHRyZWF0ZWQgbGl0ZXJhbGx5LCB3aXRob3V0IGFueQorICAgICAgICAgICAgICAgIC8vIHR3by1kaWdpdCB5ZWFyIGFkanVzdG1lbnRzIChlLmcuLCBmcm9tICIwMSIgdG8gMjAwMSkuICBPdGhlcndpc2UKKyAgICAgICAgICAgICAgICAvLyB3ZSBtYWRlIGFkanVzdG1lbnRzIHRvIHBsYWNlIHRoZSAyLWRpZ2l0IHllYXIgaW4gdGhlIHByb3BlcgorICAgICAgICAgICAgICAgIC8vIGNlbnR1cnksIGZvciBwYXJzZWQgc3RyaW5ncyBmcm9tICIwMCIgdG8gIjk5Ii4gIEFueSBvdGhlciBzdHJpbmcKKyAgICAgICAgICAgICAgICAvLyBpcyB0cmVhdGVkIGxpdGVyYWxseTogICIyMjUwIiwgIi0xIiwgIjEiLCAiMDAyIi4KKyAgICAgICAgICAgICAgICAvKiAneXknIGlzIHRoZSBvbmx5IHNwZWNpYWwgY2FzZSwgJ3knIGlzIGludGVycHJldGVkIGFzIG51bWJlci4gW1JpY2hhcmQvR0NMXSovCisgICAgICAgICAgICAgICAgaWYgKGNvdW50ID09IDIgJiYgKHBvcy5nZXRJbmRleCgpIC0gc3RhcnQpID09IDIKKyAgICAgICAgICAgICAgICAgICAgJiYgQ2hhcmFjdGVyLmlzRGlnaXQodGV4dC5jaGFyQXQoc3RhcnQpKQorICAgICAgICAgICAgICAgICAgICAmJiBDaGFyYWN0ZXIuaXNEaWdpdCh0ZXh0LmNoYXJBdChzdGFydCsxKSkpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFzc3VtZSBmb3IgZXhhbXBsZSB0aGF0IHRoZSBkZWZhdWx0Q2VudHVyeVN0YXJ0IGlzIDYvMTgvMTkwMy4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgbWVhbnMgdGhhdCB0d28tZGlnaXQgeWVhcnMgd2lsbCBiZSBmb3JjZWQgaW50byB0aGUgcmFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIDYvMTgvMTkwMyB0byA2LzE3LzIwMDMuICBBcyBhIHJlc3VsdCwgeWVhcnMgMDAsIDAxLCBhbmQgMDIKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvcnJlc3BvbmQgdG8gMjAwMCwgMjAwMSwgYW5kIDIwMDIuICBZZWFycyAwNCwgMDUsIGV0Yy4gY29ycmVzcG9uZAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gMTkwNCwgMTkwNSwgZXRjLiAgSWYgdGhlIHllYXIgaXMgMDMsIHRoZW4gaXQgaXMgMjAwMyBpZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG90aGVyIGZpZWxkcyBzcGVjaWZ5IGEgZGF0ZSBiZWZvcmUgNi8xOCwgb3IgMTkwMyBpZiB0aGV5IHNwZWNpZnkgYQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGF0ZSBhZnRlcndhcmRzLiAgQXMgYSByZXN1bHQsIDAzIGlzIGFuIGFtYmlndW91cyB5ZWFyLiAgQWxsIG90aGVyCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0d28tZGlnaXQgeWVhcnMgYXJlIHVuYW1iaWd1b3VzLgorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFtYmlndW91c1R3b0RpZ2l0WWVhciA9IGRlZmF1bHRDZW50dXJ5U3RhcnRZZWFyICUgMTAwOworICAgICAgICAgICAgICAgICAgICAgICAgYW1iaWd1b3VzWWVhclswXSA9IHZhbHVlID09IGFtYmlndW91c1R3b0RpZ2l0WWVhcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICs9IChkZWZhdWx0Q2VudHVyeVN0YXJ0WWVhci8xMDApKjEwMCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlIDwgYW1iaWd1b3VzVHdvRGlnaXRZZWFyID8gMTAwIDogMCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLllFQVIsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICBjYXNlIDI6IC8vICdNJyAtIE1PTlRICisgICAgICAgICAgICAgICAgaWYgKGNvdW50IDw9IDIpIC8vIGkuZS4sIE0gb3IgTU0uCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IHdhbnQgdG8gcGFyc2UgdGhlIG1vbnRoIGlmIGl0IGlzIGEgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGlsZSBwYXR0ZXJuIHVzZXMgbnVtZXJpYyBzdHlsZTogTSBvciBNTS4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFtXZSBjb21wdXRlZCAndmFsdWUnIGFib3ZlLl0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIHZhbHVlIC0gMSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvdW50ID49IDMgLy8gaS5lLiwgTU1NIG9yIE1NTU0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdhbnQgdG8gYmUgYWJsZSB0byBwYXJzZSBib3RoIHNob3J0IGFuZCBsb25nIGZvcm1zLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJ5IGNvdW50ID09IDQgZmlyc3Q6CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmV3U3RhcnQgPSBtYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuTU9OVEgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXREYXRhLm1vbnRocywgY2FsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXdTdGFydCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBjb3VudCA9PSA0IGZhaWxlZCwgbm93IHRyeSBjb3VudCA9PSAzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5NT05USCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0RGF0YS5zaG9ydE1vbnRocywgY2FsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSA0OiAvLyAnaycgLSBIT1VSX09GX0RBWSAoMS4uMjQpCisgICAgICAgICAgICAgICAgLy8gW1dlIGNvbXB1dGVkICd2YWx1ZScgYWJvdmUuXQorICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBjYWwuZ2V0TWF4aW11bShDYWxlbmRhci5IT1VSX09GX0RBWSkrMSkgdmFsdWUgPSAwOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuSE9VUl9PRl9EQVksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICBjYXNlIDg6IC8vICdTJyAtIEZSQUNUSU9OQUxfU0VDT05ECisgICAgICAgICAgICAgICAgLy8gRnJhY3Rpb25hbCBzZWNvbmRzIGxlZnQtanVzdGlmeQorICAgICAgICAgICAgICAgIGkgPSBwb3MuZ2V0SW5kZXgoKSAtIHN0YXJ0OworICAgICAgICAgICAgICAgIGlmIChpIDwgMykgeworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaSA8IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICo9IDEwOworICAgICAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGEgPSAxOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaSA+IDMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGEgKj0gMTA7CisgICAgICAgICAgICAgICAgICAgICAgICBpLS07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAodmFsdWUgKyAoYT4+MSkpIC8gYTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5NSUxMSVNFQ09ORCwgdmFsdWUpOworICAgICAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIGNhc2UgOTogeyAvLyAnRScgLSBEQVlfT0ZfV0VFSworICAgICAgICAgICAgICAgIC8vIFdhbnQgdG8gYmUgYWJsZSB0byBwYXJzZSBib3RoIHNob3J0IGFuZCBsb25nIGZvcm1zLgorICAgICAgICAgICAgICAgIC8vIFRyeSBjb3VudCA9PSA0IChEREREKSBmaXJzdDoKKyAgICAgICAgICAgICAgICBpbnQgbmV3U3RhcnQgPSBtYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuREFZX09GX1dFRUssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0RGF0YS53ZWVrZGF5cywgY2FsKTsKKyAgICAgICAgICAgICAgICBpZiAobmV3U3RhcnQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdTdGFydDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBEREREIGZhaWxlZCwgbm93IHRyeSBEREQKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoU3RyaW5nKHRleHQsIHN0YXJ0LCBDYWxlbmRhci5EQVlfT0ZfV0VFSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdERhdGEuc2hvcnRXZWVrZGF5cywgY2FsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIDE0OiAvLyAnYScgLSBBTV9QTQorICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaFN0cmluZyh0ZXh0LCBzdGFydCwgQ2FsZW5kYXIuQU1fUE0sIGZvcm1hdERhdGEuYW1wbXMsIGNhbCk7CisgICAgICAgICAgICBjYXNlIDE1OiAvLyAnaCcgLSBIT1VSICgxLi4xMikKKyAgICAgICAgICAgICAgICAvLyBbV2UgY29tcHV0ZWQgJ3ZhbHVlJyBhYm92ZS5dCisgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IGNhbC5nZXRMZWFzdE1heGltdW0oQ2FsZW5kYXIuSE9VUikrMSkgdmFsdWUgPSAwOworICAgICAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuSE9VUiwgdmFsdWUpOworICAgICAgICAgICAgICAgIHJldHVybiBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIGNhc2UgMTc6IC8vICd6JyAtIFpPTkVfT0ZGU0VUCisgICAgICAgICAgICBjYXNlIDIzOiAvLyAnWicgLSBUSU1FWk9ORV9SRkMKKyAgICAgICAgICAgIGNhc2UgMjQ6IC8vICd2JyAtIFRJTUVaT05FX0dFTkVSSUMKKyAgICAgICAgICAgICAgICAvLyBGaXJzdCB0cnkgdG8gcGFyc2UgZ2VuZXJpYyBmb3JtcyBzdWNoIGFzIEdNVC0wNzowMC4gRG8gdGhpcyBmaXJzdAorICAgICAgICAgICAgICAgIC8vIGluIGNhc2UgbG9jYWxpemVkIERhdGVGb3JtYXRab25lRGF0YSBjb250YWlucyB0aGUgc3RyaW5nICJHTVQiCisgICAgICAgICAgICAgICAgLy8gZm9yIGEgem9uZTsgaW4gdGhhdCBjYXNlLCB3ZSBkb24ndCB3YW50IHRvIG1hdGNoIHRoZSBmaXJzdCB0aHJlZQorICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgb2YgR01UKy8tSEg6TU0gZXRjLgorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHNpZ24gPSAwOworICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0OworCisgICAgICAgICAgICAgICAgICAgIC8vIEZvciB0aW1lIHpvbmVzIHRoYXQgaGF2ZSBubyBrbm93biBuYW1lcywgbG9vayBmb3Igc3RyaW5ncworICAgICAgICAgICAgICAgICAgICAvLyBvZiB0aGUgZm9ybToKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgR01UWystXWhvdXJzOm1pbnV0ZXMgb3IKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgR01UWystXWhobW0gb3IKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgR01ULgorICAgICAgICAgICAgICAgICAgICBpZiAoKHRleHQubGVuZ3RoKCkgLSBzdGFydCkgPj0gR01ULmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LnJlZ2lvbk1hdGNoZXModHJ1ZSwgc3RhcnQsIEdNVCwgMCwgR01ULmxlbmd0aCgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkRTVF9PRkZTRVQsIDApOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLnNldEluZGV4KHN0YXJ0ICsgR01ULmxlbmd0aCgpKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7IC8vIHRyeS1jYXRjaCBmb3IgIkdNVCIgb25seSB0aW1lIHpvbmUgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodGV4dC5jaGFyQXQocG9zLmdldEluZGV4KCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJysnOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbiA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnLSc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduID0gLTE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2goU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzaWduID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5aT05FX09GRlNFVCwgMCApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTG9vayBmb3IgaG91cnM6bWludXRlcyBvciBoaG1tLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcy5zZXRJbmRleChwb3MuZ2V0SW5kZXgoKSArIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdCA9IHBvcy5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlciB0ek51bWJlciA9IG51bWJlckZvcm1hdC5wYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCB0ek51bWJlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBwb3MuZ2V0SW5kZXgoKSA8IHRleHQubGVuZ3RoKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5jaGFyQXQocG9zLmdldEluZGV4KCkpID09ICc6JyApIHsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBob3VyczptaW51dGVzIGNhc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gdHpOdW1iZXIuaW50VmFsdWUoKSAqIDYwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgocG9zLmdldEluZGV4KCkgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHpOdW1iZXIgPSBudW1iZXJGb3JtYXQucGFyc2UodGV4dCwgcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHR6TnVtYmVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHR6TnVtYmVyLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBoaG1tIGNhc2UuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IHR6TnVtYmVyLmludFZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFzc3VtZSAiLTIzIi4uIisyMyIgcmVmZXJzIHRvIGhvdXJzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggb2Zmc2V0IDwgMjQgJiYgKHBvcy5nZXRJbmRleCgpIC0gc3QpIDw9IDIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKj0gNjA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvZG86IHRoaXMgbG9va3MgcXVlc3Rpb25hYmxlLCBzaG91bGQgaGF2ZSBtb3JlIGVycm9yIGNoZWNraW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBvZmZzZXQgJSAxMDAgKyBvZmZzZXQgLyAxMDAgKiA2MDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggZm9yIGZpbmFsIHByb2Nlc3NpbmcgYmVsb3cgb2YgJ29mZnNldCcgYW5kICdzaWduJy4KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBdCB0aGlzIHBvaW50LCBjaGVjayBmb3IgbmFtZWQgdGltZSB6b25lcyBieSBsb29raW5nIHRocm91Z2gKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBsb2NhbGUgZGF0YSBmcm9tIHRoZSBEYXRlRm9ybWF0Wm9uZURhdGEgc3RyaW5ncy4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdhbnQgdG8gYmUgYWJsZSB0byBwYXJzZSBib3RoIHNob3J0IGFuZCBsb25nIGZvcm1zLgorICAgICAgICAgICAgICAgICAgICAgICAgaSA9IHN1YlBhcnNlWm9uZVN0cmluZyh0ZXh0LCBzdGFydCwgY2FsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICE9IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFzIGEgbGFzdCByZXNvcnQsIGxvb2sgZm9yIG51bWVyaWMgdGltZXpvbmVzIG9mIHRoZSBmb3JtCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBbKy1daGhtbSBhcyBzcGVjaWZpZWQgYnkgUkZDIDgyMi4gIFRoaXMgY29kZSBpcyBhY3R1YWxseQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSBsaXR0bGUgbW9yZSBwZXJtaXNzaXZlIHRoYW4gUkZDIDgyMi4gIEl0IHdpbGwgdHJ5IHRvIGRvCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdHMgYmVzdCB3aXRoIG51bWJlcnMgdGhhdCBhcmVuJ3Qgc3RyaWN0bHkgNCBkaWdpdHMgbG9uZy4KKyAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWxGb3JtYXQgZm10ID0gbmV3IERlY2ltYWxGb3JtYXQoIisjIyMjOy0jIyMjIik7CisgICAgICAgICAgICAgICAgICAgICAgICBmbXQuc2V0UGFyc2VJbnRlZ2VyT25seSh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlciB0ek51bWJlciA9IGZtdC5wYXJzZSggdGV4dCwgcG9zICk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiggdHpOdW1iZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtc3RhcnQ7ICAgLy8gV2Fzbid0IGFjdHVhbGx5IGEgbnVtYmVyLgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gdHpOdW1iZXIuaW50VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpZ24gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgaWYoIG9mZnNldCA8IDAgKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbiA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IC1vZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBc3N1bWUgIi0yMyIuLiIrMjMiIHJlZmVycyB0byBob3Vycy4gTGVuZ3RoIGluY2x1ZGVzIHNpZ24uCisgICAgICAgICAgICAgICAgICAgICAgICBpZiggb2Zmc2V0IDwgMjQgJiYgKHBvcy5nZXRJbmRleCgpIC0gc3RhcnQpIDw9IDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0ICogNjA7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gb2Zmc2V0ICUgMTAwICsgb2Zmc2V0IC8gMTAwICogNjA7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCBmb3IgZmluYWwgcHJvY2Vzc2luZyBiZWxvdyBvZiAnb2Zmc2V0JyBhbmQgJ3NpZ24nLgorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gRG8gdGhlIGZpbmFsIHByb2Nlc3NpbmcgZm9yIGJvdGggb2YgdGhlIGFib3ZlIGNhc2VzLiAgV2Ugb25seQorICAgICAgICAgICAgICAgICAgICAvLyBhcnJpdmUgaGVyZSBpZiB0aGUgZm9ybSBHTVQrLy0uLi4gb3IgYW4gUkZDIDgyMiBmb3JtIHdhcyBzZWVuLgorCisgICAgICAgICAgICAgICAgICAgIC8vIGFzc2VydCAoc2lnbiAhPSAwKSA6IHNpZ247IC8vIGVuYWJsZSB3aGVuIGd1YXJhbnRlZWQgSkRLID49IDEuNAorICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKj0gbWlsbGlzUGVyTWludXRlICogc2lnbjsKKworICAgICAgICAgICAgICAgICAgICBpZiAoY2FsLmdldFRpbWVab25lKCkudXNlRGF5bGlnaHRUaW1lKCkpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5EU1RfT0ZGU0VULCBtaWxsaXNQZXJIb3VyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgLT0gbWlsbGlzUGVySG91cjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5aT05FX09GRlNFVCwgb2Zmc2V0KTsKKworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIC8vIGNhc2UgMzogLy8gJ2QnIC0gREFURQorICAgICAgICAgICAgICAgIC8vIGNhc2UgNTogLy8gJ0gnIC0gSE9VUl9PRl9EQVkgKDAuLjIzKQorICAgICAgICAgICAgICAgIC8vIGNhc2UgNjogLy8gJ20nIC0gTUlOVVRFCisgICAgICAgICAgICAgICAgLy8gY2FzZSA3OiAvLyAncycgLSBTRUNPTkQKKyAgICAgICAgICAgICAgICAvLyBjYXNlIDEwOiAvLyAnRCcgLSBEQVlfT0ZfWUVBUgorICAgICAgICAgICAgICAgIC8vIGNhc2UgMTE6IC8vICdGJyAtIERBWV9PRl9XRUVLX0lOX01PTlRICisgICAgICAgICAgICAgICAgLy8gY2FzZSAxMjogLy8gJ3cnIC0gV0VFS19PRl9ZRUFSCisgICAgICAgICAgICAgICAgLy8gY2FzZSAxMzogLy8gJ1cnIC0gV0VFS19PRl9NT05USAorICAgICAgICAgICAgICAgIC8vIGNhc2UgMTY6IC8vICdLJyAtIEhPVVIgKDAuLjExKQorICAgICAgICAgICAgICAgIC8vIGNhc2UgMTg6IC8vICdZJyAtIFlFQVJfV09ZCisgICAgICAgICAgICAgICAgLy8gY2FzZSAxOTogLy8gJ2UnIC0gRE9XX0xPQ0FMCisgICAgICAgICAgICAgICAgLy8gY2FzZSAyMDogLy8gJ3UnIC0gRVhURU5ERURfWUVBUgorICAgICAgICAgICAgICAgIC8vIGNhc2UgMjE6IC8vICdnJyAtIEpVTElBTl9EQVkKKyAgICAgICAgICAgICAgICAvLyBjYXNlIDIyOiAvLyAnQScgLSBNSUxMSVNFQ09ORFNfSU5fREFZCisKKyAgICAgICAgICAgICAgICAvLyBIYW5kbGUgImdlbmVyaWMiIGZpZWxkcworICAgICAgICAgICAgICAgIGlmIChvYmV5Q291bnQpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoc3RhcnQrY291bnQpID4gdGV4dC5sZW5ndGgoKSkgcmV0dXJuIC1zdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IHBhcnNlSW50KHRleHQuc3Vic3RyaW5nKDAsIHN0YXJ0K2NvdW50KSwgcG9zLCBhbGxvd05lZ2F0aXZlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgbnVtYmVyID0gcGFyc2VJbnQodGV4dCwgcG9zLCBhbGxvd05lZ2F0aXZlKTsKKyAgICAgICAgICAgICAgICBpZiAobnVtYmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FsLnNldChmaWVsZCwgbnVtYmVyLmludFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiAtc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYW4gaW50ZWdlciB1c2luZyBmTnVtYmVyRm9ybWF0LiAgVGhpcyBtZXRob2QgaXMgc2VtYW50aWNhbGx5CisgICAgICogY29uc3QsIGJ1dCBhY3R1YWxseSBtYXkgbW9kaWZ5IGZOdW1iZXJGb3JtYXQuCisgICAgICovCisgICAgcHJpdmF0ZSBOdW1iZXIgcGFyc2VJbnQoU3RyaW5nIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBhbGxvd05lZ2F0aXZlKSB7CisgICAgICAgIFN0cmluZyBvbGRQcmVmaXggPSBudWxsOworICAgICAgICBEZWNpbWFsRm9ybWF0IGRmID0gbnVsbDsKKyAgICAgICAgaWYgKCFhbGxvd05lZ2F0aXZlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGRmID0gKERlY2ltYWxGb3JtYXQpbnVtYmVyRm9ybWF0OworICAgICAgICAgICAgICAgIG9sZFByZWZpeCA9IGRmLmdldE5lZ2F0aXZlUHJlZml4KCk7CisgICAgICAgICAgICAgICAgZGYuc2V0TmVnYXRpdmVQcmVmaXgoU1VQUFJFU1NfTkVHQVRJVkVfUFJFRklYKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlMSkge30KKyAgICAgICAgfQorICAgICAgICBOdW1iZXIgbnVtYmVyID0gbnVtYmVyRm9ybWF0LnBhcnNlKHRleHQsIHBvcyk7CisgICAgICAgIGlmIChkZiAhPSBudWxsKSB7CisgICAgICAgICAgICBkZi5zZXROZWdhdGl2ZVByZWZpeChvbGRQcmVmaXgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudW1iZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJhbnNsYXRlIGEgcGF0dGVybiwgbWFwcGluZyBlYWNoIGNoYXJhY3RlciBpbiB0aGUgZnJvbSBzdHJpbmcgdG8gdGhlCisgICAgICogY29ycmVzcG9uZGluZyBjaGFyYWN0ZXIgaW4gdGhlIHRvIHN0cmluZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyB0cmFuc2xhdGVQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLCBTdHJpbmcgZnJvbSwgU3RyaW5nIHRvKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJvb2xlYW4gaW5RdW90ZSA9IGZhbHNlOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhdHRlcm4ubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgY2hhciBjID0gcGF0dGVybi5jaGFyQXQoaSk7CisgICAgICAgICAgICBpZiAoaW5RdW90ZSkgeworICAgICAgICAgICAgICAgIGlmIChjID09ICdcJycpCisgICAgICAgICAgICAgICAgICAgIGluUXVvdGUgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChjID09ICdcJycpCisgICAgICAgICAgICAgICAgICAgIGluUXVvdGUgPSB0cnVlOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKChjID49ICdhJyAmJiBjIDw9ICd6JykgfHwgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgY2kgPSBmcm9tLmluZGV4T2YoYyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHRvLmNoYXJBdChjaSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gZG8gbm90IHdvcnJ5IG9uIHRyYW5zbGF0ZXBhdHRlcm4gaWYgdGhlIGNoYXJhY3RlciBpcyBub3QgbGlzdGVkCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRvIHRoZSB2YWxpZGl0eSBjaGVjayBlbHNld2hlcmUKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIGlmIChpblF1b3RlKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiVW5maW5pc2hlZCBxdW90ZSBpbiBwYXR0ZXJuIik7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBwYXR0ZXJuIHN0cmluZyBkZXNjcmliaW5nIHRoaXMgZGF0ZSBmb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oKSB7CisgICAgICAgIHJldHVybiBwYXR0ZXJuOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIGxvY2FsaXplZCBwYXR0ZXJuIHN0cmluZyBkZXNjcmliaW5nIHRoaXMgZGF0ZSBmb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b0xvY2FsaXplZFBhdHRlcm4oKSB7CisgICAgICAgIHJldHVybiB0cmFuc2xhdGVQYXR0ZXJuKHBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzLnBhdHRlcm5DaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0RGF0YS5sb2NhbFBhdHRlcm5DaGFycyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwbHkgdGhlIGdpdmVuIHVubG9jYWxpemVkIHBhdHRlcm4gc3RyaW5nIHRvIHRoaXMgZGF0ZSBmb3JtYXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuKQorICAgIHsKKyAgICAgICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjsKKyAgICAgICAgc2V0TG9jYWxlKG51bGwsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGx5IHRoZSBnaXZlbiBsb2NhbGl6ZWQgcGF0dGVybiBzdHJpbmcgdG8gdGhpcyBkYXRlIGZvcm1hdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBseUxvY2FsaXplZFBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgdGhpcy5wYXR0ZXJuID0gdHJhbnNsYXRlUGF0dGVybihwYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdERhdGEubG9jYWxQYXR0ZXJuQ2hhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZUZvcm1hdFN5bWJvbHMucGF0dGVybkNoYXJzKTsKKyAgICAgICAgc2V0TG9jYWxlKG51bGwsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUvdGltZSBmb3JtYXR0aW5nIGRhdGEuCisgICAgICogQHJldHVybiBhIGNvcHkgb2YgdGhlIGRhdGUtdGltZSBmb3JtYXR0aW5nIGRhdGEgYXNzb2NpYXRlZAorICAgICAqIHdpdGggdGhpcyBkYXRlLXRpbWUgZm9ybWF0dGVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0U3ltYm9scyBnZXREYXRlRm9ybWF0U3ltYm9scygpCisgICAgeworICAgICAgICByZXR1cm4gKERhdGVGb3JtYXRTeW1ib2xzKWZvcm1hdERhdGEuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbGxvd3MgeW91IHRvIHNldCB0aGUgZGF0ZS90aW1lIGZvcm1hdHRpbmcgZGF0YS4KKyAgICAgKiBAcGFyYW0gbmV3Rm9ybWF0U3ltYm9scyB0aGUgbmV3IHN5bWJvbHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREYXRlRm9ybWF0U3ltYm9scyhEYXRlRm9ybWF0U3ltYm9scyBuZXdGb3JtYXRTeW1ib2xzKQorICAgIHsKKyAgICAgICAgdGhpcy5mb3JtYXREYXRhID0gKERhdGVGb3JtYXRTeW1ib2xzKW5ld0Zvcm1hdFN5bWJvbHMuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgZm9yIHN1YmNsYXNzZXMgdG8gYWNjZXNzIHRoZSBEYXRlRm9ybWF0U3ltYm9scy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgRGF0ZUZvcm1hdFN5bWJvbHMgZ2V0U3ltYm9scygpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdERhdGE7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgb3RoZXIgPSAoU2ltcGxlRGF0ZUZvcm1hdCkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgb3RoZXIuZm9ybWF0RGF0YSA9IChEYXRlRm9ybWF0U3ltYm9scykgZm9ybWF0RGF0YS5jbG9uZSgpOworICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgaGFzaENvZGUuCisgICAgICogR2VuZXJhdGVzIHRoZSBoYXNoIGNvZGUgZm9yIHRoZSBTaW1wbGVEYXRlRm9ybWF0IG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHBhdHRlcm4uaGFzaENvZGUoKTsKKyAgICAgICAgLy8ganVzdCBlbm91Z2ggZmllbGRzIGZvciBhIHJlYXNvbmFibGUgZGlzdHJpYnV0aW9uCisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgZXF1YWxzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKQorICAgIHsKKyAgICAgICAgaWYgKCFzdXBlci5lcXVhbHMob2JqKSkgcmV0dXJuIGZhbHNlOyAvLyBzdXBlciBkb2VzIGNsYXNzIGNoZWNrCisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgdGhhdCA9IChTaW1wbGVEYXRlRm9ybWF0KSBvYmo7CisgICAgICAgIHJldHVybiAocGF0dGVybi5lcXVhbHModGhhdC5wYXR0ZXJuKQorICAgICAgICAgICAgICAgICYmIGZvcm1hdERhdGEuZXF1YWxzKHRoYXQuZm9ybWF0RGF0YSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIHJlYWRPYmplY3QuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0gc3RyZWFtKQorICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworICAgICAgICBzdHJlYW0uZGVmYXVsdFJlYWRPYmplY3QoKTsKKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAvLyBkb24ndCBoYXZlIG9sZCBzZXJpYWwgZGF0YSB0byB0ZXN0IHdpdGgKKyAgICAgICAgaWYgKHNlcmlhbFZlcnNpb25PblN0cmVhbSA8IDEpIHsKKyAgICAgICAgICAgIC8vIGRpZG4ndCBoYXZlIGRlZmF1bHRDZW50dXJ5U3RhcnQgZmllbGQKKyAgICAgICAgICAgIGluaXRpYWxpemVEZWZhdWx0Q2VudHVyeSgpOworICAgICAgICB9CisgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIGZpbGwgaW4gZGVwZW5kZW50IHRyYW5zaWVudCBmaWVsZAorICAgICAgICAgICAgcGFyc2VBbWJpZ3VvdXNEYXRlc0FzQWZ0ZXIoZGVmYXVsdENlbnR1cnlTdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgc2VyaWFsVmVyc2lvbk9uU3RyZWFtID0gY3VycmVudFNlcmlhbFZlcnNpb247CisgICAgICAgIGxvY2FsZSA9IGdldExvY2FsZShVTG9jYWxlLlZBTElEX0xPQ0FMRSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDBmYTYwZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwyODEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKKworLy8gTk9URTogIFRoaXMgY2xhc3MgaXMgaWRlbnRpY2FsIHRvIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcgorLy8gaW4gSkRLIDEuMi4gIEl0J3MgY29waWVkIGhlcmUgYmVjYXVzZSB0aGUgSkRLIDEuMSB2ZXJzaW9uIG9mCisvLyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBoYXMgYSBidWcgdGhhdCBwcmV2ZW50cyBpdCBmcm9tIHdvcmtpbmcKKy8vIHJpZ2h0IHdpdGggUnVsZUJhc2VkQnJlYWtJdGVyYXRvci4gIFRoaXMgY2xhc3MgaXMgdW5uZWNlc3NhcnkKKy8vIHdoZW4gdXNpbmcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3aXRoIEpESyAxLjIuCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKgorICogPGNvZGU+U3RyaW5nQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IGltcGxlbWVudHMgdGhlCisgKiA8Y29kZT5DaGFyYWN0ZXJJdGVyYXRlcjwvY29kZT4gcHJvdG9jb2wgZm9yIGEgPGNvZGU+U3RyaW5nPC9jb2RlPi4KKyAqIFRoZSA8Y29kZT5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gY2xhc3MgaXRlcmF0ZXMgb3ZlciB0aGUKKyAqIGVudGlyZSA8Y29kZT5TdHJpbmc8L2NvZGU+LgorICoKKyAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW5zdGVhZC4KKyAqLworLy8vQ0xPVkVSOk9GRgorcHVibGljIGZpbmFsIGNsYXNzIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IKK3sKKyAgICBwcml2YXRlIFN0cmluZyB0ZXh0OworICAgIHByaXZhdGUgaW50IGJlZ2luOworICAgIHByaXZhdGUgaW50IGVuZDsKKyAgICAvLyBpbnZhcmlhbnQ6IGJlZ2luIDw9IHBvcyA8PSBlbmQKKyAgICBwcml2YXRlIGludCBwb3M7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIGl0ZXJhdG9yIHdpdGggYW4gaW5pdGlhbCBpbmRleCBvZiAwLgorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW5zdGVhZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoU3RyaW5nIHRleHQpCisgICAgeworICAgICAgICB0aGlzKHRleHQsIDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gaXRlcmF0b3Igd2l0aCB0aGUgc3BlY2lmaWVkIGluaXRpYWwgaW5kZXguCisgICAgICoKKyAgICAgKiBAcGFyYW0gIHRleHQgICBUaGUgU3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICAgKiBAcGFyYW0gIHBvcyAgICBJbml0aWFsIGl0ZXJhdG9yIHBvc2l0aW9uICAgICAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKFN0cmluZyB0ZXh0LCBpbnQgcG9zKQorICAgIHsKKyAgICB0aGlzKHRleHQsIDAsIHRleHQubGVuZ3RoKCksIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiBpdGVyYXRvciBvdmVyIHRoZSBnaXZlbiByYW5nZSBvZiB0aGUgZ2l2ZW4gc3RyaW5nLCB3aXRoIHRoZQorICAgICAqIGluZGV4IHNldCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtICB0ZXh0ICAgVGhlIFN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAgICogQHBhcmFtICBiZWdpbiAgSW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSAgZW5kICAgIEluZGV4IG9mIHRoZSBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBsYXN0IGNoYXJhY3RlcgorICAgICAqIEBwYXJhbSAgcG9zICAgIEluaXRpYWwgaXRlcmF0b3IgcG9zaXRpb24gCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihTdHJpbmcgdGV4dCwgaW50IGJlZ2luLCBpbnQgZW5kLCBpbnQgcG9zKSB7CisgICAgICAgIGlmICh0ZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMudGV4dCA9IHRleHQ7CisKKyAgICAgICAgaWYgKGJlZ2luIDwgMCB8fCBiZWdpbiA+IGVuZCB8fCBlbmQgPiB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHN1YnN0cmluZyByYW5nZSIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBvcyA8IGJlZ2luIHx8IHBvcyA+IGVuZCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBwb3NpdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5iZWdpbiA9IGJlZ2luOworICAgICAgICB0aGlzLmVuZCA9IGVuZDsKKyAgICAgICAgdGhpcy5wb3MgPSBwb3M7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzZXQgdGhpcyBpdGVyYXRvciB0byBwb2ludCB0byBhIG5ldyBzdHJpbmcuICBUaGlzIHBhY2thZ2UtdmlzaWJsZQorICAgICAqIG1ldGhvZCBpcyB1c2VkIGJ5IG90aGVyIGphdmEudGV4dCBjbGFzc2VzIHRoYXQgd2FudCB0byBhdm9pZCBhbGxvY2F0aW5nCisgICAgICogbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdHMgZXZlcnkgdGltZSB0aGVpciBzZXRUZXh0IG1ldGhvZAorICAgICAqIGlzIGNhbGxlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSAgdGV4dCAgIFRoZSBTdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlciAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChTdHJpbmcgdGV4dCkgeworICAgICAgICBpZiAodGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgTnVsbFBvaW50ZXJFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnRleHQgPSB0ZXh0OworICAgICAgICB0aGlzLmJlZ2luID0gMDsKKyAgICAgICAgdGhpcy5lbmQgPSB0ZXh0Lmxlbmd0aCgpOworICAgICAgICB0aGlzLnBvcyA9IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5maXJzdCgpIGZvciBTdHJpbmcuCisgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNmaXJzdCAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIGNoYXIgZmlyc3QoKQorICAgIHsKKyAgICAgICAgcG9zID0gYmVnaW47CisgICAgICAgIHJldHVybiBjdXJyZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5sYXN0KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2xhc3QgCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIGxhc3QoKQorICAgIHsKKyAgICAgICAgaWYgKGVuZCAhPSBiZWdpbikgeworICAgICAgICAgICAgcG9zID0gZW5kIC0gMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBvcyA9IGVuZDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY3VycmVudCgpOworICAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIENoYXJhY3Rlckl0ZXJhdG9yLnNldEluZGV4KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI3NldEluZGV4IAorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW5zdGVhZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBzZXRJbmRleChpbnQgcCkKKyAgICB7CisgICAgaWYgKHAgPCBiZWdpbiB8fCBwID4gZW5kKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGluZGV4Iik7CisgICAgfQorICAgICAgICBwb3MgPSBwOworICAgICAgICByZXR1cm4gY3VycmVudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IuY3VycmVudCgpIGZvciBTdHJpbmcuCisgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNjdXJyZW50IAorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFVzZSBqYXZhLnRleHQuU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaW5zdGVhZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBjdXJyZW50KCkKKyAgICB7CisgICAgICAgIGlmIChwb3MgPj0gYmVnaW4gJiYgcG9zIDwgZW5kKSB7CisgICAgICAgICAgICByZXR1cm4gdGV4dC5jaGFyQXQocG9zKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5uZXh0KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI25leHQgCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIG5leHQoKQorICAgIHsKKyAgICAgICAgaWYgKHBvcyA8IGVuZCAtIDEpIHsKKyAgICAgICAgICAgIHBvcysrOworICAgICAgICAgICAgcmV0dXJuIHRleHQuY2hhckF0KHBvcyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBwb3MgPSBlbmQ7CisgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IucHJldmlvdXMoKSBmb3IgU3RyaW5nLgorICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjcHJldmlvdXMgCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIHByZXZpb3VzKCkKKyAgICB7CisgICAgICAgIGlmIChwb3MgPiBiZWdpbikgeworICAgICAgICAgICAgcG9zLS07CisgICAgICAgICAgICByZXR1cm4gdGV4dC5jaGFyQXQocG9zKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5nZXRCZWdpbkluZGV4KCkgZm9yIFN0cmluZy4KKyAgICAgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yI2dldEJlZ2luSW5kZXggCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QmVnaW5JbmRleCgpCisgICAgeworICAgICAgICByZXR1cm4gYmVnaW47CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50cyBDaGFyYWN0ZXJJdGVyYXRvci5nZXRFbmRJbmRleCgpIGZvciBTdHJpbmcuCisgICAgICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvciNnZXRFbmRJbmRleCAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRFbmRJbmRleCgpCisgICAgeworICAgICAgICByZXR1cm4gZW5kOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5kZXgoKSBmb3IgU3RyaW5nLgorICAgICAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IjZ2V0SW5kZXggCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgZXF1YWxpdHkgb2YgdHdvIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdHMuCisgICAgICogQHBhcmFtIG9iaiB0aGUgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0IHRvIGJlIGNvbXBhcmVkIHdpdGguCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBvYmogaXMgdGhlIHNhbWUgYXMgdGhpcworICAgICAqIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdDsgZmFsc2Ugb3RoZXJ3aXNlLiAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopCisgICAgeworICAgICAgICBpZiAodGhpcyA9PSBvYmopIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICghKG9iaiBpbnN0YW5jZW9mIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgdGhhdCA9IChTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcikgb2JqOworCisgICAgICAgIGlmIChoYXNoQ29kZSgpICE9IHRoYXQuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICghdGV4dC5lcXVhbHModGhhdC50ZXh0KSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChwb3MgIT0gdGhhdC5wb3MgfHwgYmVnaW4gIT0gdGhhdC5iZWdpbiB8fCBlbmQgIT0gdGhhdC5lbmQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlcyBhIGhhc2hjb2RlIGZvciB0aGlzIGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gQSBoYXNoIGNvZGUgCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVXNlIGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRleHQuaGFzaENvZGUoKSBeIHBvcyBeIGJlZ2luIF4gZW5kOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoaXMgaXRlcmF0b3IuCisgICAgICogQHJldHVybiBBIGNvcHkgb2YgdGhpcyAKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBVc2UgamF2YS50ZXh0LlN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGluc3RlYWQuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Igb3RoZXIKKyAgICAgICAgICAgID0gKFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgcmV0dXJuIG90aGVyOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CisKK30KKy8vL0NMT1ZFUjpPTgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nTWF0Y2hlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nTWF0Y2hlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVlZmNjNGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdNYXRjaGVyLmphdmEKQEAgLTAsMCArMSwyODkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvKioKKyAqIEFuIG9iamVjdCB0aGF0IG1hdGNoZXMgYSBmaXhlZCBpbnB1dCBzdHJpbmcsIGltcGxlbWVudGluZyB0aGUKKyAqIFVuaWNvZGVNYXRjaGVyIEFQSS4gIFRoaXMgb2JqZWN0IGFsc28gaW1wbGVtZW50cyB0aGUKKyAqIFVuaWNvZGVSZXBsYWNlciBBUEksIGFsbG93aW5nIGl0IHRvIGVtaXQgdGhlIG1hdGNoZWQgdGV4dCBhcworICogb3V0cHV0LiAgU2luY2UgdGhlIG1hdGNoIHRleHQgbWF5IGNvbnRhaW4gZmxleGlibGUgbWF0Y2ggZWxlbWVudHMsCisgKiBzdWNoIGFzIFVuaWNvZGVTZXRzLCB0aGUgZW1pdHRlZCB0ZXh0IGlzIG5vdCB0aGUgbWF0Y2ggcGF0dGVybiwgYnV0CisgKiBpbnN0ZWFkIGEgc3Vic3RyaW5nIG9mIHRoZSBhY3R1YWwgbWF0Y2hlZCB0ZXh0LiAgRm9sbG93aW5nCisgKiBjb252ZW50aW9uLCB0aGUgb3V0cHV0IHRleHQgaXMgdGhlIGxlZnRtb3N0IG1hdGNoIHNlZW4gdXAgdG8gdGhpcworICogcG9pbnQuCisgKgorICogQSBTdHJpbmdNYXRjaGVyIG1heSByZXByZXNlbnQgYSBzZWdtZW50LCBpbiB3aGljaCBjYXNlIGl0IGhhcyBhCisgKiBwb3NpdGl2ZSBzZWdtZW50IG51bWJlci4gIFRoaXMgYWZmZWN0cyBob3cgdGhlIG1hdGNoZXIgY29udmVydHMKKyAqIGl0c2VsZiB0byBhIHBhdHRlcm4gYnV0IGRvZXMgbm90IG90aGVyd2lzZSBhZmZlY3QgaXRzIGZ1bmN0aW9uLgorICoKKyAqIEEgU3RyaW5nTWF0Y2hlciB0aGF0IGlzIG5vdCBhIHNlZ21lbnQgc2hvdWxkIG5vdCBiZSB1c2VkIGFzIGEKKyAqIFVuaWNvZGVSZXBsYWNlci4KKyAqLworY2xhc3MgU3RyaW5nTWF0Y2hlciBpbXBsZW1lbnRzIFVuaWNvZGVNYXRjaGVyLCBVbmljb2RlUmVwbGFjZXIgeworCisgICAgLyoqCisgICAgICogVGhlIHRleHQgdG8gYmUgbWF0Y2hlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXR0ZXJuOworCisgICAgLyoqCisgICAgICogU3RhcnQgb2Zmc2V0LCBpbiB0aGUgbWF0Y2ggdGV4dCwgb2YgdGhlIDxlbT5yaWdodG1vc3Q8L2VtPgorICAgICAqIG1hdGNoLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1hdGNoU3RhcnQ7CisgICAgCisgICAgLyoqCisgICAgICogTGltaXQgb2Zmc2V0LCBpbiB0aGUgbWF0Y2ggdGV4dCwgb2YgdGhlIDxlbT5yaWdodG1vc3Q8L2VtPgorICAgICAqIG1hdGNoLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1hdGNoTGltaXQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc2VnbWVudCBudW1iZXIsIDEtYmFzZWQsIG9yIDAgaWYgbm90IGEgc2VnbWVudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzZWdtZW50TnVtYmVyOworCisgICAgLyoqCisgICAgICogQ29udGV4dCBvYmplY3QgdGhhdCBtYXBzIHN0YW5kLWlucyB0byBtYXRjaGVyIGFuZCByZXBsYWNlcgorICAgICAqIG9iamVjdHMuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGE7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBtYXRjaGVyIHRoYXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gcGF0dGVybiBzdHJpbmcuCisgICAgICogQHBhcmFtIHRoZVN0cmluZyB0aGUgcGF0dGVybiB0byBiZSBtYXRjaGVkLCBwb3NzaWJseSBjb250YWluaW5nCisgICAgICogc3RhbmQtaW5zIHRoYXQgcmVwcmVzZW50IG5lc3RlZCBVbmljb2RlTWF0Y2hlciBvYmplY3RzLgorICAgICAqIEBwYXJhbSBzZWdtZW50TnVtIHRoZSBzZWdtZW50IG51bWJlciBmcm9tIDEuLm4sIG9yIDAgaWYgdGhpcyBpcworICAgICAqIG5vdCBhIHNlZ21lbnQuCisgICAgICogQHBhcmFtIHRoZURhdGEgY29udGV4dCBvYmplY3QgbWFwcGluZyBzdGFuZC1pbnMgdG8KKyAgICAgKiBVbmljb2RlTWF0Y2hlciBvYmplY3RzLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdNYXRjaGVyKFN0cmluZyB0aGVTdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNlZ21lbnROdW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSB0aGVEYXRhKSB7CisgICAgICAgIGRhdGEgPSB0aGVEYXRhOworICAgICAgICBwYXR0ZXJuID0gdGhlU3RyaW5nOworICAgICAgICBtYXRjaFN0YXJ0ID0gbWF0Y2hMaW1pdCA9IC0xOworICAgICAgICBzZWdtZW50TnVtYmVyID0gc2VnbWVudE51bTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBtYXRjaGVyIHRoYXQgbWF0Y2hlcyBhIHN1YnN0cmluZyBvZiB0aGUgZ2l2ZW4KKyAgICAgKiBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gdGhlU3RyaW5nIHRoZSBwYXR0ZXJuIHRvIGJlIG1hdGNoZWQsIHBvc3NpYmx5IGNvbnRhaW5pbmcKKyAgICAgKiBzdGFuZC1pbnMgdGhhdCByZXByZXNlbnQgbmVzdGVkIFVuaWNvZGVNYXRjaGVyIG9iamVjdHMuCisgICAgICogQHBhcmFtIHN0YXJ0IGZpcnN0IGNoYXJhY3RlciBvZiB0aGVTdHJpbmcgdG8gYmUgbWF0Y2hlZAorICAgICAqIEBwYXJhbSBsaW1pdCBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlU3RyaW5nIHRvIGJlCisgICAgICogbWF0Y2hlZC4KKyAgICAgKiBAcGFyYW0gc2VnbWVudE51bSB0aGUgc2VnbWVudCBudW1iZXIgZnJvbSAxLi5uLCBvciAwIGlmIHRoaXMgaXMKKyAgICAgKiBub3QgYSBzZWdtZW50LgorICAgICAqIEBwYXJhbSB0aGVEYXRhIGNvbnRleHQgb2JqZWN0IG1hcHBpbmcgc3RhbmQtaW5zIHRvCisgICAgICogVW5pY29kZU1hdGNoZXIgb2JqZWN0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nTWF0Y2hlcihTdHJpbmcgdGhlU3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNlZ21lbnROdW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSB0aGVEYXRhKSB7CisgICAgICAgIHRoaXModGhlU3RyaW5nLnN1YnN0cmluZyhzdGFydCwgbGltaXQpLCBzZWdtZW50TnVtLCB0aGVEYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnQgVW5pY29kZU1hdGNoZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG1hdGNoZXMoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50W10gb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgLy8gTm90ZSAoMSk6IFdlIHByb2Nlc3MgdGV4dCBpbiAxNi1iaXQgY29kZSB1bml0cywgcmF0aGVyIHRoYW4KKyAgICAgICAgLy8gMzItYml0IGNvZGUgcG9pbnRzLiAgVGhpcyB3b3JrcyBiZWNhdXNlIHN0YW5kLWlucyBhcmUKKyAgICAgICAgLy8gYWx3YXlzIGluIHRoZSBCTVAgYW5kIGJlY2F1c2Ugd2UgYXJlIGRvaW5nIGEgbGl0ZXJhbCBtYXRjaAorICAgICAgICAvLyBvcGVyYXRpb24sIHdoaWNoIGNhbiBiZSBkb25lIDE2LWJpdHMgYXQgYSB0aW1lLgorICAgICAgICBpbnQgaTsKKyAgICAgICAgaW50W10gY3Vyc29yID0gbmV3IGludFtdIHsgb2Zmc2V0WzBdIH07CisgICAgICAgIGlmIChsaW1pdCA8IGN1cnNvclswXSkgeworICAgICAgICAgICAgLy8gTWF0Y2ggaW4gdGhlIHJldmVyc2UgZGlyZWN0aW9uCisgICAgICAgICAgICBmb3IgKGk9cGF0dGVybi5sZW5ndGgoKS0xOyBpPj0wOyAtLWkpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGtleUNoYXIgPSBwYXR0ZXJuLmNoYXJBdChpKTsgLy8gT0s7IHNlZSBub3RlICgxKSBhYm92ZQorICAgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIHN1Ym0gPSBkYXRhLmxvb2t1cE1hdGNoZXIoa2V5Q2hhcik7CisgICAgICAgICAgICAgICAgaWYgKHN1Ym0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yWzBdID4gbGltaXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleUNoYXIgPT0gdGV4dC5jaGFyQXQoY3Vyc29yWzBdKSkgeyAvLyBPSzsgc2VlIG5vdGUgKDEpIGFib3ZlCisgICAgICAgICAgICAgICAgICAgICAgICAtLWN1cnNvclswXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVX01JU01BVENIOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IG0gPQorICAgICAgICAgICAgICAgICAgICAgICAgc3VibS5tYXRjaGVzKHRleHQsIGN1cnNvciwgbGltaXQsIGluY3JlbWVudGFsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG0gIT0gVV9NQVRDSCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBSZWNvcmQgdGhlIG1hdGNoIHBvc2l0aW9uLCBidXQgYWRqdXN0IGZvciBhIG5vcm1hbAorICAgICAgICAgICAgLy8gZm9yd2FyZCBzdGFydCwgbGltaXQsIGFuZCBvbmx5IGlmIGEgcHJpb3IgbWF0Y2ggZG9lcyBub3QKKyAgICAgICAgICAgIC8vIGV4aXN0IC0tIHdlIHdhbnQgdGhlIHJpZ2h0bW9zdCBtYXRjaC4KKyAgICAgICAgICAgIGlmIChtYXRjaFN0YXJ0IDwgMCkgeworICAgICAgICAgICAgICAgIG1hdGNoU3RhcnQgPSBjdXJzb3JbMF0rMTsKKyAgICAgICAgICAgICAgICBtYXRjaExpbWl0ID0gb2Zmc2V0WzBdKzE7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKGk9MDsgaTxwYXR0ZXJuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5jcmVtZW50YWwgJiYgY3Vyc29yWzBdID09IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIHJlYWNoZWQgdGhlIGNvbnRleHQgbGltaXQgd2l0aG91dCBhIG1pc21hdGNoIGFuZAorICAgICAgICAgICAgICAgICAgICAvLyB3aXRob3V0IGNvbXBsZXRpbmcgb3VyIG1hdGNoLgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVV9QQVJUSUFMX01BVENIOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjaGFyIGtleUNoYXIgPSBwYXR0ZXJuLmNoYXJBdChpKTsgLy8gT0s7IHNlZSBub3RlICgxKSBhYm92ZQorICAgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIHN1Ym0gPSBkYXRhLmxvb2t1cE1hdGNoZXIoa2V5Q2hhcik7CisgICAgICAgICAgICAgICAgaWYgKHN1Ym0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBuZWVkIHRoZSBjdXJzb3IgPCBsaW1pdCBjaGVjayBpZgorICAgICAgICAgICAgICAgICAgICAvLyBpbmNyZW1lbnRhbCBpcyB0cnVlIChiZWNhdXNlIGl0J3MgZG9uZSBhYm92ZSk7IGRvIG5lZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gaXQgb3RoZXJ3aXNlLgorICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yWzBdIDwgbGltaXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleUNoYXIgPT0gdGV4dC5jaGFyQXQoY3Vyc29yWzBdKSkgeyAvLyBPSzsgc2VlIG5vdGUgKDEpIGFib3ZlCisgICAgICAgICAgICAgICAgICAgICAgICArK2N1cnNvclswXTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVX01JU01BVENIOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IG0gPQorICAgICAgICAgICAgICAgICAgICAgICAgc3VibS5tYXRjaGVzKHRleHQsIGN1cnNvciwgbGltaXQsIGluY3JlbWVudGFsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG0gIT0gVV9NQVRDSCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBSZWNvcmQgdGhlIG1hdGNoIHBvc2l0aW9uCisgICAgICAgICAgICBtYXRjaFN0YXJ0ID0gb2Zmc2V0WzBdOworICAgICAgICAgICAgbWF0Y2hMaW1pdCA9IGN1cnNvclswXTsKKyAgICAgICAgfQorCisgICAgICAgIG9mZnNldFswXSA9IGN1cnNvclswXTsKKyAgICAgICAgcmV0dXJuIFVfTUFUQ0g7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50IFVuaWNvZGVNYXRjaGVyCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcXVvdGVCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGlmIChzZWdtZW50TnVtYmVyID4gMCkgeyAvLyBpLmUuLCBpZiB0aGlzIGlzIGEgc2VnbWVudAorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnKCcpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxwYXR0ZXJuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIga2V5Q2hhciA9IHBhdHRlcm4uY2hhckF0KGkpOyAvLyBPSzsgc2VlIG5vdGUgKDEpIGFib3ZlCisgICAgICAgICAgICBVbmljb2RlTWF0Y2hlciBtID0gZGF0YS5sb29rdXBNYXRjaGVyKGtleUNoYXIpOworICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJlc3VsdCwga2V5Q2hhciwgZmFsc2UsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJlc3VsdCwgbS50b1BhdHRlcm4oZXNjYXBlVW5wcmludGFibGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlZ21lbnROdW1iZXIgPiAwKSB7IC8vIGkuZS4sIGlmIHRoaXMgaXMgYSBzZWdtZW50CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcpJyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gRmx1c2ggcXVvdGVCdWYgb3V0IHRvIHJlc3VsdAorICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShyZXN1bHQsIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50IFVuaWNvZGVNYXRjaGVyCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbWF0Y2hlc0luZGV4VmFsdWUoaW50IHYpIHsKKyAgICAgICAgaWYgKHBhdHRlcm4ubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQocGF0dGVybiwgMCk7CisgICAgICAgIFVuaWNvZGVNYXRjaGVyIG0gPSBkYXRhLmxvb2t1cE1hdGNoZXIoYyk7CisgICAgICAgIHJldHVybiAobSA9PSBudWxsKSA/ICgoYyAmIDB4RkYpID09IHYpIDogbS5tYXRjaGVzSW5kZXhWYWx1ZSh2KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBVbmljb2RlTWF0Y2hlciBBUEkuICBVbmlvbiB0aGUgc2V0IG9mIGFsbAorICAgICAqIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgbWF0Y2hlZCBieSB0aGlzIG9iamVjdCBpbnRvIHRoZSBnaXZlbgorICAgICAqIHNldC4KKyAgICAgKiBAcGFyYW0gdG9VbmlvblRvIHRoZSBzZXQgaW50byB3aGljaCB0byB1bmlvbiB0aGUgc291cmNlIGNoYXJhY3RlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRNYXRjaFNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKSB7CisgICAgICAgIGludCBjaDsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHBhdHRlcm4ubGVuZ3RoKCk7IGkrPVVURjE2LmdldENoYXJDb3VudChjaCkpIHsKKyAgICAgICAgICAgIGNoID0gVVRGMTYuY2hhckF0KHBhdHRlcm4sIGkpOworICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIgbWF0Y2hlciA9IGRhdGEubG9va3VwTWF0Y2hlcihjaCk7CisgICAgICAgICAgICBpZiAobWF0Y2hlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdG9VbmlvblRvLmFkZChjaCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG1hdGNoZXIuYWRkTWF0Y2hTZXRUbyh0b1VuaW9uVG8pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5pY29kZVJlcGxhY2VyIEFQSQorICAgICAqLworICAgIHB1YmxpYyBpbnQgcmVwbGFjZShSZXBsYWNlYWJsZSB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50W10gY3Vyc29yKSB7CisKKyAgICAgICAgaW50IG91dExlbiA9IDA7CisKKyAgICAgICAgLy8gQ29weSBzZWdtZW50IHdpdGggb3V0LW9mLWJhbmQgZGF0YQorICAgICAgICBpbnQgZGVzdCA9IGxpbWl0OworICAgICAgICAvLyBJZiB0aGVyZSB3YXMgbm8gbWF0Y2gsIHRoYXQgbWVhbnMgdGhhdCBhIHF1YW50aWZpZXIKKyAgICAgICAgLy8gbWF0Y2hlZCB6ZXJvLWxlbmd0aC4gIEUuZy4sIHggKGEpKiB5IG1hdGNoZWQgInh5Ii4KKyAgICAgICAgaWYgKG1hdGNoU3RhcnQgPj0gMCkgeworICAgICAgICAgICAgaWYgKG1hdGNoU3RhcnQgIT0gbWF0Y2hMaW1pdCkgeworICAgICAgICAgICAgICAgIHRleHQuY29weShtYXRjaFN0YXJ0LCBtYXRjaExpbWl0LCBkZXN0KTsKKyAgICAgICAgICAgICAgICBvdXRMZW4gPSBtYXRjaExpbWl0IC0gbWF0Y2hTdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRleHQucmVwbGFjZShzdGFydCwgbGltaXQsICIiKTsgLy8gZGVsZXRlIG9yaWdpbmFsIHRleHQKKworICAgICAgICByZXR1cm4gb3V0TGVuOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaWNvZGVSZXBsYWNlciBBUEkKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvUmVwbGFjZXJQYXR0ZXJuKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgLy8gYXNzZXJ0KHNlZ21lbnROdW1iZXIgPiAwKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJ1bGUgPSBuZXcgU3RyaW5nQnVmZmVyKCIkIik7CisgICAgICAgIFV0aWxpdHkuYXBwZW5kTnVtYmVyKHJ1bGUsIHNlZ21lbnROdW1iZXIsIDEwLCAxKTsKKyAgICAgICAgcmV0dXJuIHJ1bGUudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYW55IG1hdGNoIGRhdGEuICBUaGlzIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBwZXJmb3JtaW5nIGEKKyAgICAgKiBzZXQgb2YgbWF0Y2hlcyB3aXRoIHRoaXMgc2VnbWVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldE1hdGNoKCkgeworICAgICAgICBtYXRjaFN0YXJ0ID0gbWF0Y2hMaW1pdCA9IC0xOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaW9uIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgb3V0cHV0IGJ5IHRoaXMgb2JqZWN0CisgICAgICogaW50byB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSB0b1VuaW9uVG8gdGhlIHNldCBpbnRvIHdoaWNoIHRvIHVuaW9uIHRoZSBvdXRwdXQgY2hhcmFjdGVycworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZFJlcGxhY2VtZW50U2V0VG8oVW5pY29kZVNldCB0b1VuaW9uVG8pIHsKKyAgICAgICAgLy8gVGhlIG91dHB1dCBvZiB0aGlzIHJlcGxhY2VyIHZhcmllczsgaXQgaXMgdGhlIHNvdXJjZSB0ZXh0IGJldHdlZW4KKyAgICAgICAgLy8gbWF0Y2hTdGFydCBhbmQgbWF0Y2hMaW1pdC4gIFNpbmNlIHRoaXMgdmFyaWVzIGRlcGVuZGluZyBvbiB0aGUKKyAgICAgICAgLy8gaW5wdXQgdGV4dCwgd2UgY2FuJ3QgY29tcHV0ZSBpdCBoZXJlLiAgV2UgY2FuIGVpdGhlciBkbyBub3RoaW5nCisgICAgICAgIC8vIG9yIHdlIGNhbiBhZGQgQUxMIGNoYXJhY3RlcnMgdG8gdGhlIHNldC4gIEl0J3MgcHJvYmFibHkgbW9yZSB1c2VmdWwKKyAgICAgICAgLy8gdG8gZG8gbm90aGluZy4KKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdQcmVwLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdQcmVwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTAwNTNjYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1ByZXAuamF2YQpAQCAtMCwwICsxLDQ0MyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DaGFyVHJpZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlN0cmluZ1ByZXBEYXRhUmVhZGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVHJpZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk5vcm1hbGl6ZXJJbXBsOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUJpRGlQcm9wczsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVmVyc2lvbkluZm87CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyRGlyZWN0aW9uOworCisvKioKKyAqIFN0cmluZ1ByZXAgQVBJIGltcGxlbWVudHMgdGhlIFN0aW5nUHJlcCBmcmFtZXdvcmsgYXMgZGVzY3JpYmVkIGJ5IAorICogPGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzQ1NC50eHQiPlJGQyAzNDU0PC9hPi4KKyAqIFN0cmluZ1ByZXAgcHJlcGFyZXMgVW5pY29kZSBzdHJpbmdzIGZvciB1c2UgaW4gbmV0d29yayBwcm90b2NvbHMuCisgKiBQcm9maWxlcyBvZiBTdGluZ1ByZXAgYXJlIHNldCBvZiBydWxlcyBhbmQgZGF0YSBhY2NvcmRpbmcgdG8gd2hpY2ggdGhlCisgKiBVbmljb2RlIFN0cmluZ3MgYXJlIHByZXBhcmVkLiBFYWNoIHByb2ZpbGVzIGNvbnRhaW5zIHRhYmxlcyB3aGljaCBkZXNjcmliZQorICogaG93IGEgY29kZSBwb2ludCBzaG91bGQgYmUgdHJlYXRlZC4gVGhlIHRhYmxlcyBhcmUgYnJvYWRseSBjbGFzc2llZCBpbnRvCisgKiA8dWw+CisgKiAgICAgPGxpPiBVbmFzc2lnbmVkIFRhYmxlOiBDb250YWlucyBjb2RlIHBvaW50cyB0aGF0IGFyZSB1bmFzc2lnbmVkIAorICogICAgICAgICAgaW4gdGhlIFVuaWNvZGUgVmVyc2lvbiBzdXBwb3J0ZWQgYnkgU3RyaW5nUHJlcC4gQ3VycmVudGx5IAorICogICAgICAgICAgUkZDIDM0NTQgc3VwcG9ydHMgVW5pY29kZSAzLjIuIDwvbGk+CisgKiAgICAgPGxpPiBQcm9oaWJpdGVkIFRhYmxlOiBDb250YWlucyBjb2RlIHBvaW50cyB0aGF0IGFyZSBwcm9oaWJ0ZWQgZnJvbQorICogICAgICAgICAgdGhlIG91dHB1dCBvZiB0aGUgU3RyaW5nUHJlcCBwcm9jZXNzaW5nIGZ1bmN0aW9uLiA8L2xpPgorICogICAgIDxsaT4gTWFwcGluZyBUYWJsZTogQ29udGFpbnMgY29kZSBwb250cyB0aGF0IGFyZSBkZWxldGVkIGZyb20gdGhlIG91dHB1dCBvciBjYXNlIG1hcHBlZC4gPC9saT4KKyAqIDwvdWw+CisgKiAKKyAqIFRoZSBwcm9jZWR1cmUgZm9yIHByZXBhcmluZyBVbmljb2RlIHN0cmluZ3M6CisgKiA8b2w+CisgKiAgICAgIDxsaT4gTWFwOiBGb3IgZWFjaCBjaGFyYWN0ZXIgaW4gdGhlIGlucHV0LCBjaGVjayBpZiBpdCBoYXMgYSBtYXBwaW5nCisgKiAgICAgICAgICAgYW5kLCBpZiBzbywgcmVwbGFjZSBpdCB3aXRoIGl0cyBtYXBwaW5nLiA8L2xpPgorICogICAgICA8bGk+IE5vcm1hbGl6ZTogUG9zc2libHkgbm9ybWFsaXplIHRoZSByZXN1bHQgb2Ygc3RlcCAxIHVzaW5nIFVuaWNvZGUKKyAqICAgICAgICAgICBub3JtYWxpemF0aW9uLiA8L2xpPgorICogICAgICA8bGk+IFByb2hpYml0OiBDaGVjayBmb3IgYW55IGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IGFsbG93ZWQgaW4gdGhlCisgKiAgICAgICAgICAgb3V0cHV0LiAgSWYgYW55IGFyZSBmb3VuZCwgcmV0dXJuIGFuIGVycm9yLjwvbGk+CisgKiAgICAgIDxsaT4gQ2hlY2sgYmlkaTogUG9zc2libHkgY2hlY2sgZm9yIHJpZ2h0LXRvLWxlZnQgY2hhcmFjdGVycywgYW5kIGlmCisgKiAgICAgICAgICAgYW55IGFyZSBmb3VuZCwgbWFrZSBzdXJlIHRoYXQgdGhlIHdob2xlIHN0cmluZyBzYXRpc2ZpZXMgdGhlCisgKiAgICAgICAgICAgcmVxdWlyZW1lbnRzIGZvciBiaWRpcmVjdGlvbmFsIHN0cmluZ3MuICBJZiB0aGUgc3RyaW5nIGRvZXMgbm90CisgKiAgICAgICAgICAgc2F0aXNmeSB0aGUgcmVxdWlyZW1lbnRzIGZvciBiaWRpcmVjdGlvbmFsIHN0cmluZ3MsIHJldHVybiBhbgorICogICAgICAgICAgIGVycm9yLiAgPC9saT4KKyAqIDwvb2w+CisgKiBAYXV0aG9yIFJhbSBWaXN3YW5hZGhhCisgKiBAc3RhYmxlIElDVSAyLjgKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFN0cmluZ1ByZXAgeworICAgIC8qKiAKKyAgICAgKiBPcHRpb24gdG8gcHJvaGliaXQgcHJvY2Vzc2luZyBvZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGluIHRoZSBpbnB1dAorICAgICAqIAorICAgICAqIEBzZWUgICAjcHJlcGFyZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFRkFVTFQgPSAweDAwMDA7CisKKyAgICAvKiogCisgICAgICogT3B0aW9uIHRvIGFsbG93IHByb2Nlc3Npbmcgb2YgdW5hc3NpZ25lZCBjb2RlIHBvaW50cyBpbiB0aGUgaW5wdXQKKyAgICAgKiAKKyAgICAgKiBAc2VlICAgI3ByZXBhcmUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTExPV19VTkFTU0lHTkVEID0gMHgwMDAxOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBVTkFTU0lHTkVEICAgICAgICA9IDB4MDAwMDsgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BUCAgICAgICAgICAgICAgID0gMHgwMDAxOyAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUFJPSElCSVRFRCAgICAgICAgPSAweDAwMDI7IAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUxFVEUgICAgICAgICAgICA9IDB4MDAwMzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFlQRV9MSU1JVCAgICAgICAgPSAweDAwMDQ7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PUk1BTElaQVRJT05fT04gID0gMHgwMDAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDSEVDS19CSURJX09OICAgICA9IDB4MDAwMjsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFlQRV9USFJFU0hPTEQgICAgICAgPSAweEZGRjA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1BWF9JTkRFWF9WQUxVRSAgICAgID0gMHgzRkJGOyAgIC8qMTYxMzkqLyAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0lOREVYX1RPUF9MRU5HVEggPSAweDAwMDM7CisgICAgCisgICAgLyogaW5kZXhlc1tdIHZhbHVlIG5hbWVzICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOREVYX1RSSUVfU0laRSAgICAgICAgICAgICAgICAgID0gIDA7IC8qIG51bWJlciBvZiBieXRlcyBpbiBub3JtYWxpemF0aW9uIHRyaWUgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfTUFQUElOR19EQVRBX1NJWkUgICAgICAgICAgPSAgMTsgLyogVGhlIGFycmF5IHRoYXQgY29udGFpbnMgdGhlIG1hcHBpbmcgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOT1JNX0NPUlJFQ1ROU19MQVNUX1VOSV9WRVJTSU9OICA9ICAyOyAvKiBUaGUgaW5kZXggb2YgVW5pY29kZSB2ZXJzaW9uIG9mIGxhc3QgZW50cnkgaW4gTm9ybWFsaXphdGlvbkNvcnJlY3Rpb25zLnR4dCAqLyAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT05FX1VDSEFSX01BUFBJTkdfSU5ERVhfU1RBUlQgICAgPSAgMzsgLyogVGhlIHN0YXJ0aW5nIGluZGV4IG9mIDEgVUNoYXIgbWFwcGluZyBpbmRleCBpbiB0aGUgbWFwcGluZyBkYXRhIGFycmF5ICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFRXT19VQ0hBUlNfTUFQUElOR19JTkRFWF9TVEFSVCAgID0gIDQ7IC8qIFRoZSBzdGFydGluZyBpbmRleCBvZiAyIFVDaGFycyBtYXBwaW5nIGluZGV4IGluIHRoZSBtYXBwaW5nIGRhdGEgYXJyYXkgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVEhSRUVfVUNIQVJTX01BUFBJTkdfSU5ERVhfU1RBUlQgPSAgNTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRk9VUl9VQ0hBUlNfTUFQUElOR19JTkRFWF9TVEFSVCAgPSAgNjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgT1BUSU9OUyAgICAgICAgICAgICAgICAgICAgICAgICAgPSAgNzsgLyogQml0IHNldCBvZiBvcHRpb25zIHRvIHR1cm4gb24gaW4gdGhlIHByb2ZpbGUgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5ERVhfVE9QICAgICAgICAgICAgICAgICAgICAgICAgPSAxNjsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNoYW5naW5nIHRoaXMgcmVxdWlyZXMgYSBuZXcgZm9ybWF0VmVyc2lvbiAqLworICAgCisgICAKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGJ1ZmZlciBzaXplIG9mIGRhdGFmaWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IERBVEFfQlVGRkVSX1NJWkUgPSAyNTAwMDsKKyAgICAKKyAgICAvLyBDaGFyVHJpZSBpbXBsbWVudGF0aW9uIGZvciByZWFkaW5nIHRoZSB0cmllIGRhdGEKKyAgICBwcml2YXRlIENoYXJUcmllIHNwcmVwVHJpZTsKKyAgICAvLyBJbmRleGVzIHJlYWQgZnJvbSB0aGUgZGF0YSBmaWxlCisgICAgcHJpdmF0ZSBpbnRbXSBpbmRleGVzOworICAgIC8vIG1hcHBpbmcgZGF0YSByZWFkIGZyb20gdGhlIGRhdGEgZmlsZQorICAgIHByaXZhdGUgY2hhcltdIG1hcHBpbmdEYXRhOworICAgIC8vIGZvcm1hdCB2ZXJzaW9uIG9mIHRoZSBkYXRhIGZpbGUKKyAgICBwcml2YXRlIGJ5dGVbXSBmb3JtYXRWZXJzaW9uOworICAgIC8vIHRoZSB2ZXJzaW9uIG9mIFVuaWNvZGUgc3VwcG9ydGVkIGJ5IHRoZSBkYXRhIGZpbGUKKyAgICBwcml2YXRlIFZlcnNpb25JbmZvIHNwcmVwVW5pVmVyOworICAgIC8vIHRoZSBVbmljb2RlIHZlcnNpb24gb2YgbGFzdCBlbnRyeSBpbiB0aGUKKyAgICAvLyBOb3JtYWxpemF0aW9uQ29ycmVjdGlvbnMudHh0IGZpbGUgaWYgbm9ybWFsaXphdGlvbgorICAgIC8vIGlzIHR1cm5lZCBvbiAKKyAgICBwcml2YXRlIFZlcnNpb25JbmZvIG5vcm1Db3JyVmVyOworICAgIC8vIE9wdGlvbiB0byB0dXJuIG9uIE5vcm1hbGl6YXRpb24KKyAgICBwcml2YXRlIGJvb2xlYW4gZG9ORktDOworICAgIC8vIE9wdGlvbiB0byB0dXJuIG9uIGNoZWNraW5nIGZvciBCaURpIHJ1bGVzCisgICAgcHJpdmF0ZSBib29sZWFuIGNoZWNrQmlEaTsKKyAgICAvLyBiaWRpIHByb3BlcnRpZXMKKyAgICBwcml2YXRlIFVCaURpUHJvcHMgYmRwOworICAgIAorICAgIHByaXZhdGUgY2hhciBnZXRDb2RlUG9pbnRWYWx1ZShpbnQgY2gpeworICAgICAgICByZXR1cm4gc3ByZXBUcmllLmdldENvZGVQb2ludFZhbHVlKGNoKTsKKyAgICB9CisgIAorICAgIHByaXZhdGUgc3RhdGljIFZlcnNpb25JbmZvIGdldFZlcnNpb25JbmZvKGludCBjb21wKXsKKyAgICAgICAgaW50IG1pY3JvID0gY29tcCAmIDB4RkY7CisgICAgICAgIGludCBtaWxsaSA9KGNvbXAgPj4gOCkgICYgMHhGRjsKKyAgICAgICAgaW50IG1pbm9yID0oY29tcCA+PiAxNikgJiAweEZGOworICAgICAgICBpbnQgbWFqb3IgPShjb21wID4+IDI0KSAmIDB4RkY7CisgICAgICAgIHJldHVybiBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShtYWpvcixtaW5vcixtaWxsaSxtaWNybyk7CisgICAgfQorICAgIHByaXZhdGUgc3RhdGljIFZlcnNpb25JbmZvIGdldFZlcnNpb25JbmZvKGJ5dGVbXSB2ZXJzaW9uKXsKKyAgICAgICAgaWYodmVyc2lvbi5sZW5ndGggIT0gNCl7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoKGludCl2ZXJzaW9uWzBdLChpbnQpIHZlcnNpb25bMV0sKGludCkgdmVyc2lvblsyXSwoaW50KSB2ZXJzaW9uWzNdKTsKKyAgICB9CisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhbiBTdHJpbmdQcmVwIG9iamVjdCBhZnRlciByZWFkaW5nIHRoZSBpbnB1dCBzdHJlYW0uCisgICAgICogVGhlIG9iamVjdCBkb2VzIG5vdCBob2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBpbnB1dCBzdGVhbSwgc28gdGhlIHN0cmVhbSBjYW4gYmUKKyAgICAgKiBjbG9zZWQgYWZ0ZXIgdGhlIG1ldGhvZCByZXR1cm5zLgorICAgICAqIAorICAgICAqIEBwYXJhbSBpbnB1dFN0cmVhbSBUaGUgc3RyZWFtIGZvciByZWFkaW5nIHRoZSBTdHJpbmdQcmVwIHByb2ZpbGUgYmluYXJ5U3VuIAorICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nUHJlcChJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSkgdGhyb3dzIElPRXhjZXB0aW9ueworCisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYiA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGlucHV0U3RyZWFtLERBVEFfQlVGRkVSX1NJWkUpOworICAKKyAgICAgICAgU3RyaW5nUHJlcERhdGFSZWFkZXIgcmVhZGVyID0gbmV3IFN0cmluZ1ByZXBEYXRhUmVhZGVyKGIpOworICAgICAgICAKKyAgICAgICAgLy8gcmVhZCB0aGUgaW5kZXhlcyAgICAgICAgICAgIAorICAgICAgICBpbmRleGVzID0gcmVhZGVyLnJlYWRJbmRleGVzKElOREVYX1RPUCk7CisgICAKKyAgICAgICAgYnl0ZVtdIHNwcmVwQnl0ZXMgPSBuZXcgYnl0ZVtpbmRleGVzW0lOREVYX1RSSUVfU0laRV1dOworICAgCisKKyAgICAgICAgLy9pbmRleGVzW0lOREVYX01BUFBJTkdfREFUQV9TSVpFXSBzdG9yZSB0aGUgc2l6ZSBvZiBtYXBwaW5nRGF0YSBpbiBieXRlcyAgICAgICAgICAgCisgICAgICAgIG1hcHBpbmdEYXRhID0gbmV3IGNoYXJbaW5kZXhlc1tJTkRFWF9NQVBQSU5HX0RBVEFfU0laRV0vMl07IAorICAgICAgICAvLyBsb2FkIHRoZSByZXN0IG9mIHRoZSBkYXRhIGRhdGEgYW5kIGluaXRpYWxpemUgdGhlIGRhdGEgbWVtYmVycworICAgICAgICByZWFkZXIucmVhZChzcHJlcEJ5dGVzLG1hcHBpbmdEYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHNwcmVwVHJpZSA9IG5ldyBDaGFyVHJpZShuZXcgQnl0ZUFycmF5SW5wdXRTdHJlYW0oc3ByZXBCeXRlcyksIG51bGwpOworICAgICAgICAgICAgICAKKyAgICAgICAgLy8gZ2V0IHRoZSBkYXRhIGZvcm1hdCB2ZXJzaW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGZvcm1hdFZlcnNpb24gPSByZWFkZXIuZ2V0RGF0YUZvcm1hdFZlcnNpb24oKTsKKyAKKyAgICAgICAgLy8gZ2V0IHRoZSBvcHRpb25zCisgICAgICAgIGRvTkZLQyAgICAgICAgICAgID0gKChpbmRleGVzW09QVElPTlNdICYgTk9STUFMSVpBVElPTl9PTikgPiAwKTsKKyAgICAgICAgY2hlY2tCaURpICAgICAgICAgPSAoKGluZGV4ZXNbT1BUSU9OU10gJiBDSEVDS19CSURJX09OKSA+IDApOworICAgICAgICBzcHJlcFVuaVZlciAgID0gZ2V0VmVyc2lvbkluZm8ocmVhZGVyLmdldFVuaWNvZGVWZXJzaW9uKCkpOworICAgICAgICBub3JtQ29yclZlciAgID0gZ2V0VmVyc2lvbkluZm8oaW5kZXhlc1tOT1JNX0NPUlJFQ1ROU19MQVNUX1VOSV9WRVJTSU9OXSk7CisgICAgICAgIFZlcnNpb25JbmZvIG5vcm1VbmlWZXIgPSBOb3JtYWxpemVyLmdldFVuaWNvZGVWZXJzaW9uKCk7CisgICAgICAgIGlmKG5vcm1VbmlWZXIuY29tcGFyZVRvKHNwcmVwVW5pVmVyKSA8IDAgJiYgLyogdGhlIFVuaWNvZGUgdmVyc2lvbiBvZiBTUFJFUCBmaWxlIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBVbmljb2RlIFZlc2lvbiBvZiB0aGUgbm9ybWFsaXphdGlvbiBkYXRhICovCisgICAgICAgICAgIG5vcm1VbmlWZXIuY29tcGFyZVRvKG5vcm1Db3JyVmVyKSA8IDAgJiYgLyogdGhlIFVuaWNvZGUgdmVyc2lvbiBvZiB0aGUgTm9ybWFsaXphdGlvbkNvcnJlY3Rpb25zLnR4dCBmaWxlIHNob3VsZCBiZSBsZXNzIHRoYW4gdGhlIFVuaWNvZGUgVmVzaW9uIG9mIHRoZSBub3JtYWxpemF0aW9uIGRhdGEgKi8KKyAgICAgICAgICAgKChpbmRleGVzW09QVElPTlNdICYgTk9STUFMSVpBVElPTl9PTikgPiAwKSAvKiBub3JtYWxpemF0aW9uIHR1cm5lZCBvbiovCisgICAgICAgICAgICl7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIk5vcm1hbGl6YXRpb24gQ29ycmVjdGlvbiB2ZXJzaW9uIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICBiLmNsb3NlKCk7CisgICAgICAgIAorICAgICAgICBpZihjaGVja0JpRGkpIHsKKyAgICAgICAgICAgIGJkcD1VQmlEaVByb3BzLmdldFNpbmdsZXRvbigpOworICAgICAgICB9CisgICAgfQorIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIFZhbHVlc3sKKyAgICAgICAgYm9vbGVhbiBpc0luZGV4OworICAgICAgICBpbnQgdmFsdWU7CisgICAgICAgIGludCB0eXBlOworICAgICAgICBwdWJsaWMgdm9pZCByZXNldCgpeworICAgICAgICAgICAgaXNJbmRleCA9IGZhbHNlOworICAgICAgICAgICAgdmFsdWUgPSAwOworICAgICAgICAgICAgdHlwZSA9IC0xOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgdm9pZCBnZXRWYWx1ZXMoY2hhciB0cmllV29yZCxWYWx1ZXMgdmFsdWVzKXsKKyAgICAgICAgdmFsdWVzLnJlc2V0KCk7CisgICAgICAgIGlmKHRyaWVXb3JkID09IDApeworICAgICAgICAgICAgLyogCisgICAgICAgICAgICAgKiBJbml0aWFsIHZhbHVlIHN0b3JlZCBpbiB0aGUgbWFwcGluZyB0YWJsZSAKKyAgICAgICAgICAgICAqIGp1c3QgcmV0dXJuIFRZUEVfTElNSVQgLi4gc28gdGhhdAorICAgICAgICAgICAgICogdGhlIHNvdXJjZSBjb2RlcG9pbnQgaXMgY29waWVkIHRvIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgICovCisgICAgICAgICAgICB2YWx1ZXMudHlwZSA9IFRZUEVfTElNSVQ7CisgICAgICAgIH1lbHNlIGlmKHRyaWVXb3JkID49IFRZUEVfVEhSRVNIT0xEKXsKKyAgICAgICAgICAgIHZhbHVlcy50eXBlID0gKHRyaWVXb3JkIC0gVFlQRV9USFJFU0hPTEQpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgIC8qIGdldCB0aGUgdHlwZSAqLworICAgICAgICAgICAgdmFsdWVzLnR5cGUgPSBNQVA7CisgICAgICAgICAgICAvKiBhc2NlcnRhaW4gaWYgdGhlIHZhbHVlIGlzIGluZGV4IG9yIGRlbHRhICovCisgICAgICAgICAgICBpZigodHJpZVdvcmQgJiAweDAyKT4wKXsKKyAgICAgICAgICAgICAgICB2YWx1ZXMuaXNJbmRleCA9IHRydWU7CisgICAgICAgICAgICAgICAgdmFsdWVzLnZhbHVlID0gdHJpZVdvcmQgID4+IDI7IC8vbWFzayBvZmYgdGhlIGxvd2VyIDIgYml0cyBhbmQgc2hpZnQKKworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgdmFsdWVzLmlzSW5kZXggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB2YWx1ZXMudmFsdWUgPSAoKGludCkodHJpZVdvcmQ8PDE2KSk+PjE2OworICAgICAgICAgICAgICAgIHZhbHVlcy52YWx1ZSA9ICAodmFsdWVzLnZhbHVlID4+IDIpOworCisgICAgICAgICAgICB9CisgCisgICAgICAgICAgICBpZigodHJpZVdvcmQ+PjIpID09IE1BWF9JTkRFWF9WQUxVRSl7CisgICAgICAgICAgICAgICAgdmFsdWVzLnR5cGUgPSBERUxFVEU7CisgICAgICAgICAgICAgICAgdmFsdWVzLmlzSW5kZXggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB2YWx1ZXMudmFsdWUgPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisKKworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG1hcCggVUNoYXJhY3Rlckl0ZXJhdG9yIGl0ZXIsIGludCBvcHRpb25zKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb257CisgICAgCisgICAgICAgIFZhbHVlcyB2YWwgPSBuZXcgVmFsdWVzKCk7CisgICAgICAgIGNoYXIgcmVzdWx0ID0gMDsKKyAgICAgICAgaW50IGNoICA9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FOworICAgICAgICBTdHJpbmdCdWZmZXIgZGVzdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYm9vbGVhbiBhbGxvd1VuYXNzaWduZWQgPSAoKG9wdGlvbnMgJiBBTExPV19VTkFTU0lHTkVEKT4wKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlKChjaD1pdGVyLm5leHRDb2RlUG9pbnQoKSkhPSBVQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSl7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJlc3VsdCA9IGdldENvZGVQb2ludFZhbHVlKGNoKTsKKyAgICAgICAgICAgIGdldFZhbHVlcyhyZXN1bHQsdmFsKTsKKworICAgICAgICAgICAgLy8gY2hlY2sgaWYgdGhlIHNvdXJjZSBjb2RlcG9pbnQgaXMgdW5hc3NpZ25lZAorICAgICAgICAgICAgaWYodmFsLnR5cGUgPT0gVU5BU1NJR05FRCAmJiBhbGxvd1VuYXNzaWduZWQgPT0gZmFsc2UpeworICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJBbiB1bmFzc2lnbmVkIGNvZGUgcG9pbnQgd2FzIGZvdW5kIGluIHRoZSBpbnB1dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uVU5BU1NJR05FRF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXIuZ2V0VGV4dCgpLGl0ZXIuZ2V0SW5kZXgoKSk7ICAgIAorICAgICAgICAgICAgfWVsc2UgaWYoKHZhbC50eXBlID09IE1BUCkpeworICAgICAgICAgICAgICAgIGludCBpbmRleCwgbGVuZ3RoOworCisgICAgICAgICAgICAgICAgaWYodmFsLmlzSW5kZXgpeworICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHZhbC52YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYoaW5kZXggPj0gaW5kZXhlc1tPTkVfVUNIQVJfTUFQUElOR19JTkRFWF9TVEFSVF0gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPCBpbmRleGVzW1RXT19VQ0hBUlNfTUFQUElOR19JTkRFWF9TVEFSVF0peworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoaW5kZXggPj0gaW5kZXhlc1tUV09fVUNIQVJTX01BUFBJTkdfSU5ERVhfU1RBUlRdICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4IDwgaW5kZXhlc1tUSFJFRV9VQ0hBUlNfTUFQUElOR19JTkRFWF9TVEFSVF0peworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMjsKKyAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoaW5kZXggPj0gaW5kZXhlc1tUSFJFRV9VQ0hBUlNfTUFQUElOR19JTkRFWF9TVEFSVF0gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPCBpbmRleGVzW0ZPVVJfVUNIQVJTX01BUFBJTkdfSU5ERVhfU1RBUlRdKXsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IDM7CisgICAgICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gbWFwcGluZ0RhdGFbaW5kZXgrK107CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLyogY29weSBtYXBwaW5nIHRvIGRlc3RpbmF0aW9uICovCisgICAgICAgICAgICAgICAgICAgIGRlc3QuYXBwZW5kKG1hcHBpbmdEYXRhLGluZGV4LGxlbmd0aCk7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgICAgICBjaCAtPSB2YWwudmFsdWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWVsc2UgaWYodmFsLnR5cGUgPT0gREVMRVRFKXsKKyAgICAgICAgICAgICAgICAvLyBqdXN0IGNvbnN1bWUgdGhlIGNvZGVwb2ludCBhbmQgY29udGluZQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9jb3B5IHRoZSBzb3VyY2UgaW50byBkZXN0aW5hdGlvbgorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGRlc3QsY2gpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gZGVzdDsKKyAgICB9CisKKworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG5vcm1hbGl6ZShTdHJpbmdCdWZmZXIgc3JjKXsKKyAgICAgICAgLyoKKyAgICAgICAgICogT3B0aW9uIFVOT1JNX0JFRk9SRV9QUklfMjk6CisgICAgICAgICAqCisgICAgICAgICAqIElETkEgYXMgaW50ZXJwcmV0ZWQgYnkgSUVURiBtZW1iZXJzIChzZWUgdW5pY29kZSBtYWlsaW5nIGxpc3QgMjAwNEgxKQorICAgICAgICAgKiByZXF1aXJlcyBzdHJpY3QgYWRoZXJlbmNlIHRvIFVuaWNvZGUgMy4yIG5vcm1hbGl6YXRpb24sCisgICAgICAgICAqIGluY2x1ZGluZyBidWdneSBjb21wb3NpdGlvbiBmcm9tIGJlZm9yZSBmaXhpbmcgUHVibGljIFJldmlldyBJc3N1ZSAjMjkuCisgICAgICAgICAqIE5vdGUgdGhhdCB0aGlzIHJlc3VsdHMgaW4gc29tZSB2YWxpZCBidXQgbm9uc2Vuc2ljYWwgdGV4dCB0byBiZQorICAgICAgICAgKiBlaXRoZXIgY29ycnVwdGVkIG9yIHJlamVjdGVkLCBkZXBlbmRpbmcgb24gdGhlIHRleHQuCisgICAgICAgICAqIFNlZSBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3Jldmlldy9yZXNvbHZlZC1wcmkuaHRtbCNwcmkyOQorICAgICAgICAgKiBTZWUgdW5vcm0uY3BwIGFuZCBjbm9ybXRzdC5jCisgICAgICAgICAqLworICAgICAgICByZXR1cm4gbmV3IFN0cmluZ0J1ZmZlcigKKyAgICAgICAgICAgIE5vcm1hbGl6ZXIubm9ybWFsaXplKAorICAgICAgICAgICAgICAgIHNyYy50b1N0cmluZygpLAorICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXIuTkZLQywKKyAgICAgICAgICAgICAgICBOb3JtYWxpemVyLlVOSUNPREVfM18yfE5vcm1hbGl6ZXJJbXBsLkJFRk9SRV9QUklfMjkpKTsKKyAgICB9CisgICAgLyoKKyAgICBib29sZWFuIGlzTGFiZWxTZXBhcmF0b3IoaW50IGNoKXsKKyAgICAgICAgaW50IHJlc3VsdCA9IGdldENvZGVQb2ludFZhbHVlKGNoKTsKKyAgICAgICAgaWYoIChyZXN1bHQgJiAweDA3KSAgPT0gTEFCRUxfU0VQQVJBVE9SKXsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgKi8KKyAgICAgLyoKKyAgICAgICAxKSBNYXAgLS0gRm9yIGVhY2ggY2hhcmFjdGVyIGluIHRoZSBpbnB1dCwgY2hlY2sgaWYgaXQgaGFzIGEgbWFwcGluZworICAgICAgICAgIGFuZCwgaWYgc28sIHJlcGxhY2UgaXQgd2l0aCBpdHMgbWFwcGluZy4gIAorCisgICAgICAgMikgTm9ybWFsaXplIC0tIFBvc3NpYmx5IG5vcm1hbGl6ZSB0aGUgcmVzdWx0IG9mIHN0ZXAgMSB1c2luZyBVbmljb2RlCisgICAgICAgICAgbm9ybWFsaXphdGlvbi4gCisKKyAgICAgICAzKSBQcm9oaWJpdCAtLSBDaGVjayBmb3IgYW55IGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IGFsbG93ZWQgaW4gdGhlCisgICAgICAgICAgb3V0cHV0LiAgSWYgYW55IGFyZSBmb3VuZCwgcmV0dXJuIGFuIGVycm9yLiAgCisKKyAgICAgICA0KSBDaGVjayBiaWRpIC0tIFBvc3NpYmx5IGNoZWNrIGZvciByaWdodC10by1sZWZ0IGNoYXJhY3RlcnMsIGFuZCBpZgorICAgICAgICAgIGFueSBhcmUgZm91bmQsIG1ha2Ugc3VyZSB0aGF0IHRoZSB3aG9sZSBzdHJpbmcgc2F0aXNmaWVzIHRoZQorICAgICAgICAgIHJlcXVpcmVtZW50cyBmb3IgYmlkaXJlY3Rpb25hbCBzdHJpbmdzLiAgSWYgdGhlIHN0cmluZyBkb2VzIG5vdAorICAgICAgICAgIHNhdGlzZnkgdGhlIHJlcXVpcmVtZW50cyBmb3IgYmlkaXJlY3Rpb25hbCBzdHJpbmdzLCByZXR1cm4gYW4KKyAgICAgICAgICBlcnJvci4gIAorICAgICAgICAgIFtVbmljb2RlMy4yXSBkZWZpbmVzIHNldmVyYWwgYmlkaXJlY3Rpb25hbCBjYXRlZ29yaWVzOyBlYWNoIGNoYXJhY3RlcgorICAgICAgICAgICBoYXMgb25lIGJpZGlyZWN0aW9uYWwgY2F0ZWdvcnkgYXNzaWduZWQgdG8gaXQuICBGb3IgdGhlIHB1cnBvc2VzIG9mCisgICAgICAgICAgIHRoZSByZXF1aXJlbWVudHMgYmVsb3csIGFuICJSYW5kQUxDYXQgY2hhcmFjdGVyIiBpcyBhIGNoYXJhY3RlciB0aGF0CisgICAgICAgICAgIGhhcyBVbmljb2RlIGJpZGlyZWN0aW9uYWwgY2F0ZWdvcmllcyAiUiIgb3IgIkFMIjsgYW4gIkxDYXQgY2hhcmFjdGVyIgorICAgICAgICAgICBpcyBhIGNoYXJhY3RlciB0aGF0IGhhcyBVbmljb2RlIGJpZGlyZWN0aW9uYWwgY2F0ZWdvcnkgIkwiLiAgTm90ZQorCisKKyAgICAgICAgICAgdGhhdCB0aGVyZSBhcmUgbWFueSBjaGFyYWN0ZXJzIHdoaWNoIGZhbGwgaW4gbmVpdGhlciBvZiB0aGUgYWJvdmUKKyAgICAgICAgICAgZGVmaW5pdGlvbnM7IExhdGluIGRpZ2l0cyAoPFUrMDAzMD4gdGhyb3VnaCA8VSswMDM5PikgYXJlIGV4YW1wbGVzIG9mCisgICAgICAgICAgIHRoaXMgYmVjYXVzZSB0aGV5IGhhdmUgYmlkaXJlY3Rpb25hbCBjYXRlZ29yeSAiRU4iLgorCisgICAgICAgICAgIEluIGFueSBwcm9maWxlIHRoYXQgc3BlY2lmaWVzIGJpZGlyZWN0aW9uYWwgY2hhcmFjdGVyIGhhbmRsaW5nLCBhbGwKKyAgICAgICAgICAgdGhyZWUgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMgTVVTVCBiZSBtZXQ6CisKKyAgICAgICAgICAgMSkgVGhlIGNoYXJhY3RlcnMgaW4gc2VjdGlvbiA1LjggTVVTVCBiZSBwcm9oaWJpdGVkLgorCisgICAgICAgICAgIDIpIElmIGEgc3RyaW5nIGNvbnRhaW5zIGFueSBSYW5kQUxDYXQgY2hhcmFjdGVyLCB0aGUgc3RyaW5nIE1VU1QgTk9UCisgICAgICAgICAgICAgIGNvbnRhaW4gYW55IExDYXQgY2hhcmFjdGVyLgorCisgICAgICAgICAgIDMpIElmIGEgc3RyaW5nIGNvbnRhaW5zIGFueSBSYW5kQUxDYXQgY2hhcmFjdGVyLCBhIFJhbmRBTENhdAorICAgICAgICAgICAgICBjaGFyYWN0ZXIgTVVTVCBiZSB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBzdHJpbmcsIGFuZCBhCisgICAgICAgICAgICAgIFJhbmRBTENhdCBjaGFyYWN0ZXIgTVVTVCBiZSB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlIHN0cmluZy4KKyAgICAqLworICAgIC8qKgorICAgICAqIFByZXBhcmUgdGhlIGlucHV0IGJ1ZmZlciBmb3IgdXNlIGluIGFwcGxpY2F0aW9ucyB3aXRoIHRoZSBnaXZlbiBwcm9maWxlLiBUaGlzIG9wZXJhdGlvbiBtYXBzLCBub3JtYWxpemVzKE5GS0MpLAorICAgICAqIGNoZWNrcyBmb3IgcHJvaGl0ZWQgYW5kIEJpRGkgY2hhcmFjdGVycyBpbiB0aGUgb3JkZXIgZGVmaW5lZCBieSBSRkMgMzQ1NAorICAgICAqIGRlcGVuZGluZyBvbiB0aGUgb3B0aW9ucyBzcGVjaWZpZWQgaW4gdGhlIHByb2ZpbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3JjICAgICAgICAgICBBIFVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QgY29udGFpbmluZyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEBwYXJhbSBvcHRpb25zICAgICAgIEEgYml0IHNldCBvZiBvcHRpb25zOgorICAgICAqCisgICAgICogIC0gU3RyaW5nUHJlcC5OT05FICAgICAgICAgICAgICAgUHJvaGliaXQgcHJvY2Vzc2luZyBvZiB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzIGluIHRoZSBpbnB1dAorICAgICAqCisgICAgICogIC0gU3RyaW5nUHJlcC5BTExPV19VTkFTU0lHTkVEICAgVHJlYXQgdGhlIHVuYXNzaWduZWQgY29kZSBwb2ludHMgYXJlIGluIHRoZSBpbnB1dCAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBub3JtYWwgVW5pY29kZSBjb2RlIHBvaW50cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU3RyaW5nQnVmZmVyIEEgU3RyaW5nQnVmZmVyIGNvbnRhaW5pbmcgdGhlIG91dHB1dAorICAgICAqIEB0aHJvd3MgUGFyc2VFeGNlcHRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nQnVmZmVyIHByZXBhcmUoVUNoYXJhY3Rlckl0ZXJhdG9yIHNyYywgaW50IG9wdGlvbnMpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9ueworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAvLyBtYXAgCisgICAgICAgIFN0cmluZ0J1ZmZlciBtYXBPdXQgPSBtYXAoc3JjLG9wdGlvbnMpOworICAgICAgICBTdHJpbmdCdWZmZXIgbm9ybU91dCA9IG1hcE91dDsvLyBpbml0aWFsaXplIAorICAgICAgICAKKyAgICAgICAgaWYoZG9ORktDKXsKKyAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSAKKyAgICAgICAgICAgIG5vcm1PdXQgPSBub3JtYWxpemUobWFwT3V0KTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBjaDsKKyAgICAgICAgY2hhciByZXN1bHQ7CisgICAgICAgIFVDaGFyYWN0ZXJJdGVyYXRvciBpdGVyID0gVUNoYXJhY3Rlckl0ZXJhdG9yLmdldEluc3RhbmNlKG5vcm1PdXQpOworICAgICAgICBWYWx1ZXMgdmFsID0gbmV3IFZhbHVlcygpOyAKKyAgICAgICAgaW50IGRpcmVjdGlvbj1VQ2hhcmFjdGVyRGlyZWN0aW9uLkNIQVJfRElSRUNUSU9OX0NPVU5ULAorICAgICAgICAgICAgZmlyc3RDaGFyRGlyPVVDaGFyYWN0ZXJEaXJlY3Rpb24uQ0hBUl9ESVJFQ1RJT05fQ09VTlQ7ICAgIAorICAgICAgICBpbnQgcnRsUG9zPS0xLCBsdHJQb3M9LTE7CisgICAgICAgIGJvb2xlYW4gcmlnaHRUb0xlZnQ9ZmFsc2UsIGxlZnRUb1JpZ2h0PWZhbHNlOworICAgICAgICAgICAKKyAgICAgICAgd2hpbGUoKGNoPWl0ZXIubmV4dENvZGVQb2ludCgpKSE9IFVDaGFyYWN0ZXJJdGVyYXRvci5ET05FKXsKKyAgICAgICAgICAgIHJlc3VsdCA9IGdldENvZGVQb2ludFZhbHVlKGNoKTsKKyAgICAgICAgICAgIGdldFZhbHVlcyhyZXN1bHQsdmFsKTsKKworICAgICAgICAgICAgaWYodmFsLnR5cGUgPT0gUFJPSElCSVRFRCApeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIkEgcHJvaGliaXRlZCBjb2RlIHBvaW50IHdhcyBmb3VuZCBpbiB0aGUgaW5wdXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uUFJPSElCSVRFRF9FUlJPUixpdGVyLmdldFRleHQoKSx2YWwudmFsdWUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihjaGVja0JpRGkpIHsKKyAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSBiZHAuZ2V0Q2xhc3MoY2gpOworICAgICAgICAgICAgICAgIGlmKGZpcnN0Q2hhckRpciA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLkNIQVJfRElSRUNUSU9OX0NPVU5UKXsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RDaGFyRGlyID0gZGlyZWN0aW9uOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihkaXJlY3Rpb24gPT0gVUNoYXJhY3RlckRpcmVjdGlvbi5MRUZUX1RPX1JJR0hUKXsKKyAgICAgICAgICAgICAgICAgICAgbGVmdFRvUmlnaHQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBsdHJQb3MgPSBpdGVyLmdldEluZGV4KCktMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoZGlyZWN0aW9uID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVCB8fCBkaXJlY3Rpb24gPT0gVUNoYXJhY3RlckRpcmVjdGlvbi5SSUdIVF9UT19MRUZUX0FSQUJJQyl7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0VG9MZWZ0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgcnRsUG9zID0gaXRlci5nZXRJbmRleCgpLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgICAgICAKKyAgICAgICAgaWYoY2hlY2tCaURpID09IHRydWUpeworICAgICAgICAgICAgLy8gc2F0aXNmeSAyCisgICAgICAgICAgICBpZiggbGVmdFRvUmlnaHQgPT0gdHJ1ZSAmJiByaWdodFRvTGVmdCA9PSB0cnVlKXsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKCJUaGUgaW5wdXQgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgcnVsZXMgZm9yIEJpRGkgY29kZSBwb2ludHMuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLkNIRUNLX0JJRElfRVJST1IsaXRlci5nZXRUZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChydGxQb3M+bHRyUG9zKSA/IHJ0bFBvcyA6IGx0clBvcyk7CisgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy9zYXRpc2Z5IDMKKyAgICAgICAgICAgIGlmKCByaWdodFRvTGVmdCA9PSB0cnVlICYmIAorICAgICAgICAgICAgICAgICEoKGZpcnN0Q2hhckRpciA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfHwgZmlyc3RDaGFyRGlyID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMpICYmCisgICAgICAgICAgICAgICAgKGRpcmVjdGlvbiA9PSBVQ2hhcmFjdGVyRGlyZWN0aW9uLlJJR0hUX1RPX0xFRlQgfHwgZGlyZWN0aW9uID09IFVDaGFyYWN0ZXJEaXJlY3Rpb24uUklHSFRfVE9fTEVGVF9BUkFCSUMpKQorICAgICAgICAgICAgICApeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24oIlRoZSBpbnB1dCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBydWxlcyBmb3IgQmlEaSBjb2RlIHBvaW50cy4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uQ0hFQ0tfQklESV9FUlJPUixpdGVyLmdldFRleHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJ0bFBvcz5sdHJQb3MpID8gcnRsUG9zIDogbHRyUG9zKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbm9ybU91dDsKKworICAgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9TdHJpbmdQcmVwUGFyc2VFeGNlcHRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDZlZWUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uLmphdmEKQEAgLTAsMCArMSwyMDYgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CisKKy8qKgorICogRXhjZXB0aW9uIHRoYXQgc2lnbmFscyBhbiBlcnJvciBoYXMgb2NjdXJyZWQgd2hpbGUgcGFyc2luZyB0aGUgCisgKiBpbnB1dCB0byBTdHJpbmdQcmVwIG9yIElETkEuIAorICoKKyAqIEBhdXRob3IgUmFtIFZpc3dhbmFkaGEKKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgY2xhc3MgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uIGV4dGVuZHMgUGFyc2VFeGNlcHRpb24geworICAgIC8vIEdlbmVyYXRlZCBieSBzZXJpYWx2ZXIgZnJvbSBKREsgMS40LjFfMDEKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gNzE2MDI2NDgyNzcwMTY1MTI1NUw7CisgICAgCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSU5WQUxJRF9DSEFSX0ZPVU5EICAgICAgPSAwOworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IElMTEVHQUxfQ0hBUl9GT1VORCAgICAgID0gMTsKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQUk9ISUJJVEVEX0VSUk9SICAgICAgICA9IDI7CisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5BU1NJR05FRF9FUlJPUiAgICAgICAgPSAzOworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENIRUNLX0JJRElfRVJST1IgICAgICAgID0gNDsKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVEQzX0FTQ0lJX1JVTEVTX0VSUk9SICA9IDU7CisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUNFX1BSRUZJWF9FUlJPUiAgICAgICAgPSA2OworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFZFUklGSUNBVElPTl9FUlJPUiAgICAgID0gNzsKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMQUJFTF9UT09fTE9OR19FUlJPUiAgICA9IDg7CisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQlVGRkVSX09WRVJGTE9XX0VSUk9SICAgPSA5OworICAgIAorICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFpFUk9fTEVOR1RIX0xBQkVMICAgPSAxMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBQYXJzZUV4Y2VwdGlvbiBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gbWVzc2FnZQorICAgICAqIGFuZCBlcnJvciBjb2RlCisgICAgICogCisgICAgICogQHBhcmFtIG1lc3NhZ2UgQSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgdHlwZSBvZiBlcnJvciB0aGF0IG9jY3VycmVkCisgICAgICogQHBhcmFtIGVycm9yICAgVGhlIGVycm9yIHRoYXQgaGFzIG9jY3VycmVkCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbihTdHJpbmcgbWVzc2FnZSxpbnQgZXJyb3IpeworICAgICAgICBzdXBlcihtZXNzYWdlLCAtMSk7CisgICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjsKKyAgICAgICAgdGhpcy5saW5lID0gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgUGFyc2VFeGNlcHRpb24gb2JqZWN0IHdpdGggdGhlIGdpdmVuIG1lc3NhZ2UgYW5kCisgICAgICogZXJyb3IgY29kZQorICAgICAqIAorICAgICAqIEBwYXJhbSBtZXNzYWdlIEEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHR5cGUgb2YgZXJyb3IgdGhhdCBvY2N1cnJlZAorICAgICAqIEBwYXJhbSBlcnJvciAgIFRoZSBlcnJvciB0aGF0IGhhcyBvY2N1cnJlZAorICAgICAqIEBwYXJhbSBydWxlcyAgIFRoZSBpbnB1dCBydWxlcyBzdHJpbmcgCisgICAgICogQHBhcmFtIHBvcyAgICAgVGhlIHBvc2l0aW9uIG9mIGVycm9yIGluIHRoZSBydWxlcyBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKFN0cmluZyBtZXNzYWdlLGludCBlcnJvciwgU3RyaW5nIHJ1bGVzLCBpbnQgcG9zKXsKKyAgICAgICAgc3VwZXIobWVzc2FnZSwgLTEpOworICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7CisgICAgICAgIHNldENvbnRleHQocnVsZXMscG9zKTsgIAorICAgICAgICB0aGlzLmxpbmUgPSAwOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgIGEgUGFyc2VFeGNlcHRpb24gb2JqZWN0IHdpdGggdGhlIGdpdmVuIG1lc3NhZ2UgYW5kIGVycm9yIGNvZGUKKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gbWVzc2FnZSAgICBBIHN0cmluZyBkZXNjcmliaW5nIHRoZSB0eXBlIG9mIGVycm9yIHRoYXQgb2NjdXJyZWQKKyAgICAgKiBAcGFyYW0gZXJyb3IgICAgICBUaGUgZXJyb3IgdGhhdCBoYXMgb2NjdXJyZWQKKyAgICAgKiBAcGFyYW0gcnVsZXMgICAgICBUaGUgaW5wdXQgcnVsZXMgc3RyaW5nIAorICAgICAqIEBwYXJhbSBwb3MgICAgICAgIFRoZSBwb3NpdGlvbiBvZiBlcnJvciBpbiB0aGUgcnVsZXMgc3RyaW5nCisgICAgICogQHBhcmFtIGxpbmVOdW1iZXIgVGhlIGxpbmUgbnVtYmVyIGF0IHdoaWNoIHRoZSBlcnJvciBoYXMgb2NjdXJyZWQuIAorICAgICAqICAgICAgICAgICAgICAgICAgIElmIHRoZSBwYXJzZSBlbmdpbmUgaXMgbm90IHVzaW5nIHRoaXMgZmllbGQsIGl0IHNob3VsZCBzZXQgaXQgdG8gemVyby4gIE90aGVyd2lzZQorICAgICAqICAgICAgICAgICAgICAgICAgIGl0IHNob3VsZCBiZSBhIHBvc2l0aXZlIGludGVnZXIuIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoaXMgZmllbGQKKyAgICAgKiAgICAgICAgICAgICAgICAgICBpcyAtMS4gSXQgd2lsbCBiZSBzZXQgdG8gMCBpZiB0aGUgY29kZSBwb3B1bGF0aW5nIHRoaXMgc3RydWN0IGlzIG5vdAorICAgICAqICAgICAgICAgICAgICAgICAgIHVzaW5nIGxpbmUgbnVtYmVycy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nUHJlcFBhcnNlRXhjZXB0aW9uKFN0cmluZyBtZXNzYWdlLCBpbnQgZXJyb3IsIFN0cmluZyBydWxlcywgaW50IHBvcywgaW50IGxpbmVOdW1iZXIpeworICAgICAgICBzdXBlcihtZXNzYWdlLCAtMSk7CisgICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjsKKyAgICAgICAgc2V0Q29udGV4dChydWxlcyxwb3MpOyAgIAorICAgICAgICB0aGlzLmxpbmUgPSBsaW5lTnVtYmVyOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHRoaXMgUGFyc2VFeGNlcHRpb24gdG8gYW5vdGhlciBhbmQgZXZhbHVhdGUgaWYgdGhleSBhcmUgZXF1YWwuCisgICAgICogVGhlIGNvbXBhcmlzb24gd29ya3Mgb25seSBvbiB0aGUgdHlwZSBvZiBlcnJvciBhbmQgZG9lcyBub3QgY29tcGFyZQorICAgICAqIHRoZSBydWxlcyBzdHJpbmdzLCBpZiBhbnksIGZvciBlcXVhbGl0eS4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIGV4Y2VwdGlvbiB0aGF0IHRoaXMgb2JqZWN0IHNob3VsZCBiZSBjb21wYXJlZCB0bworICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1YWwsIGZhbHNlIGlmIHVuZXF1YWwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKXsKKyAgICAgICAgaWYoIShvdGhlciBpbnN0YW5jZW9mIFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbikpeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoKFN0cmluZ1ByZXBQYXJzZUV4Y2VwdGlvbilvdGhlcikuZXJyb3IgPT0gdGhpcy5lcnJvcjsKKyAgICAgICAgCisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIGVycm9yIGluIHRoZSBydWxlcyBzdHJpbmcKKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIFN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKXsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgYnVmLmFwcGVuZChzdXBlci5nZXRNZXNzYWdlKCkpOworICAgICAgICBidWYuYXBwZW5kKCIuIHByZUNvbnRleHQ6ICAiKTsKKyAgICAgICAgYnVmLmFwcGVuZChwcmVDb250ZXh0KTsKKyAgICAgICAgYnVmLmFwcGVuZCgiLiBwb3N0Q29udGV4dDogIik7CisgICAgICAgIGJ1Zi5hcHBlbmQocG9zdENvbnRleHQpOworICAgICAgICBidWYuYXBwZW5kKCJcbiIpOworICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgZXJyb3I7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGxpbmUgb24gd2hpY2ggdGhlIGVycm9yIG9jY3VyZWQuICBJZiB0aGUgcGFyc2UgZW5naW5lCisgICAgICogaXMgbm90IHVzaW5nIHRoaXMgZmllbGQsIGl0IHNob3VsZCBzZXQgaXQgdG8gemVyby4gIE90aGVyd2lzZQorICAgICAqIGl0IHNob3VsZCBiZSBhIHBvc2l0aXZlIGludGVnZXIuIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoaXMgZmllbGQKKyAgICAgKiBpcyAtMS4gSXQgd2lsbCBiZSBzZXQgdG8gMCBpZiB0aGUgY29kZSBwb3B1bGF0aW5nIHRoaXMgc3RydWN0IGlzIG5vdAorICAgICAqIHVzaW5nIGxpbmUgbnVtYmVycy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjggIAorICAgICAqLworICAgIHByaXZhdGUgaW50IGxpbmU7CisKKworICAgIC8qKgorICAgICAqIFRleHR1YWwgY29udGV4dCBiZWZvcmUgdGhlIGVycm9yLiAgTnVsbC10ZXJtaW5hdGVkLgorICAgICAqIE1heSBiZSB0aGUgZW1wdHkgc3RyaW5nIGlmIG5vdCBpbXBsZW1lbnRlZCBieSBwYXJzZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgcHJlQ29udGV4dCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgIC8qKgorICAgICAqIFRleHR1YWwgY29udGV4dCBhZnRlciB0aGUgZXJyb3IuICBOdWxsLXRlcm1pbmF0ZWQuCisgICAgICogTWF5IGJlIHRoZSBlbXB0eSBzdHJpbmcgaWYgbm90IGltcGxlbWVudGVkIGJ5IHBhcnNlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjggICAKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBwb3N0Q29udGV4dCA9ICBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFBBUlNFX0NPTlRFWFRfTEVOID0gMTY7CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNldFByZUNvbnRleHQoU3RyaW5nIHN0ciwgaW50IHBvcyl7CisgICAgICAgIHNldFByZUNvbnRleHQoc3RyLnRvQ2hhckFycmF5KCkscG9zKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNldFByZUNvbnRleHQoY2hhcltdIHN0ciwgaW50IHBvcyl7CisgICAgICAgIGludCBzdGFydCA9IChwb3MgPD0gUEFSU0VfQ09OVEVYVF9MRU4pPyAwIDogKHBvcyAtIChQQVJTRV9DT05URVhUX0xFTi0xKSk7CisgICAgICAgIGludCBsZW4gPSAoc3RhcnQgPD0gUEFSU0VfQ09OVEVYVF9MRU4pPyBzdGFydCA6IFBBUlNFX0NPTlRFWFRfTEVOOworICAgICAgICBwcmVDb250ZXh0LmFwcGVuZChzdHIsc3RhcnQsbGVuKTsKKyAKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNldFBvc3RDb250ZXh0KFN0cmluZyBzdHIsIGludCBwb3MpeworICAgICAgICBzZXRQb3N0Q29udGV4dChzdHIudG9DaGFyQXJyYXkoKSxwb3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0UG9zdENvbnRleHQoY2hhcltdIHN0ciwgaW50IHBvcyl7CisgICAgICAgIGludCBzdGFydCA9IHBvczsKKyAgICAgICAgaW50IGxlbiAgPSBzdHIubGVuZ3RoIC0gc3RhcnQ7IAorICAgICAgICBwb3N0Q29udGV4dC5hcHBlbmQoc3RyLHN0YXJ0LGxlbik7CisKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNldENvbnRleHQoU3RyaW5nIHN0cixpbnQgcG9zKXsKKyAgICAgICAgc2V0UHJlQ29udGV4dChzdHIscG9zKTsKKyAgICAgICAgc2V0UG9zdENvbnRleHQoc3RyLHBvcyk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nUmVwbGFjZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1JlcGxhY2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGY4YWRlNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1JlcGxhY2VyLmphdmEKQEAgLTAsMCArMSwzMjggQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uCisqICAgYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwMS8xNC8yMDAyICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogQSByZXBsYWNlciB0aGF0IHByb2R1Y2VzIHN0YXRpYyB0ZXh0IGFzIGl0cyBvdXRwdXQuICBUaGUgdGV4dCBtYXkKKyAqIGNvbnRhaW4gdHJhbnNsaXRlcmF0b3Igc3RhbmQtaW4gY2hhcmFjdGVycyB0aGF0IHJlcHJlc2VudCBuZXN0ZWQKKyAqIFVuaWNvZGVSZXBsYWNlciBvYmplY3RzLCBtYWtpbmcgaXQgcG9zc2libGUgdG8gZW5jb2RlIGEgdHJlZSBvZgorICogcmVwbGFjZXJzIGluIGEgU3RyaW5nUmVwbGFjZXIuICBBIFN0cmluZ1JlcGxhY2VyIHRoYXQgY29udGFpbnMgc3VjaAorICogc3RhbmQtaW5zIGlzIGNhbGxlZCBhIDxlbT5jb21wbGV4PC9lbT4gU3RyaW5nUmVwbGFjZXIuICBBIGNvbXBsZXgKKyAqIFN0cmluZ1JlcGxhY2VyIGhhcyBhIHNsb3dlciBwcm9jZXNzaW5nIGxvb3AgdGhhbiBhIG5vbi1jb21wbGV4IG9uZS4KKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworY2xhc3MgU3RyaW5nUmVwbGFjZXIgaW1wbGVtZW50cyBVbmljb2RlUmVwbGFjZXIgeworCisgICAgLyoqCisgICAgICogT3V0cHV0IHRleHQsIHBvc3NpYmx5IGNvbnRhaW5pbmcgc3RhbmQtaW4gY2hhcmFjdGVycyB0aGF0CisgICAgICogcmVwcmVzZW50IG5lc3RlZCBVbmljb2RlUmVwbGFjZXJzLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIG91dHB1dDsKKworICAgIC8qKgorICAgICAqIEN1cnNvciBwb3NpdGlvbi4gIFZhbHVlIGlzIGlnbm9yZWQgaWYgaGFzQ3Vyc29yIGlzIGZhbHNlLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGN1cnNvclBvczsKKworICAgIC8qKgorICAgICAqIFRydWUgaWYgdGhpcyBvYmplY3Qgb3V0cHV0cyBhIGN1cnNvciBwb3NpdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaGFzQ3Vyc29yOworCisgICAgLyoqCisgICAgICogQSBjb21wbGV4IG9iamVjdCBjb250YWlucyBuZXN0ZWQgcmVwbGFjZXJzIGFuZCByZXF1aXJlcyBtb3JlCisgICAgICogY29tcGxleCBwcm9jZXNzaW5nLiAgU3RyaW5nUmVwbGFjZXJzIGFyZSBpbml0aWFsbHkgYXNzdW1lZCB0bworICAgICAqIGJlIGNvbXBsZXguICBJZiBubyBuZXN0ZWQgcmVwbGFjZXJzIGFyZSBzZWVuIGR1cmluZyBwcm9jZXNzaW5nLAorICAgICAqIHRoZW4gaXNDb21wbGV4IGlzIHNldCB0byBmYWxzZSwgYW5kIGZ1dHVyZSByZXBsYWNlbWVudHMgYXJlCisgICAgICogc2hvcnQgY2lyY3VpdGVkIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzQ29tcGxleDsKKworICAgIC8qKgorICAgICAqIE9iamVjdCB0aGF0IHRyYW5zbGF0ZXMgc3RhbmQtaW4gY2hhcmFjdGVycyBpbiAnb3V0cHV0JyB0bworICAgICAqIFVuaWNvZGVSZXBsYWNlciBvYmplY3RzLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSBkYXRhOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU3RyaW5nUmVwbGFjZXIgdGhhdCBzZXRzIHRoZSBlbWl0cyB0aGUgZ2l2ZW4gb3V0cHV0CisgICAgICogdGV4dCBhbmQgc2V0cyB0aGUgY3Vyc29yIHRvIHRoZSBnaXZlbiBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gdGhlT3V0cHV0IHRleHQgdGhhdCB3aWxsIHJlcGxhY2UgaW5wdXQgdGV4dCB3aGVuIHRoZQorICAgICAqIHJlcGxhY2UoKSBtZXRob2QgaXMgY2FsbGVkLiAgTWF5IGNvbnRhaW4gc3RhbmQtaW4gY2hhcmFjdGVycworICAgICAqIHRoYXQgcmVwcmVzZW50IG5lc3RlZCByZXBsYWNlcnMuCisgICAgICogQHBhcmFtIHRoZUN1cnNvclBvcyBjdXJzb3IgcG9zaXRpb24gdGhhdCB3aWxsIGJlIHJldHVybmVkIGJ5CisgICAgICogdGhlIHJlcGxhY2UoKSBtZXRob2QKKyAgICAgKiBAcGFyYW0gdGhlRGF0YSB0cmFuc2xpdGVyYXRvciBjb250ZXh0IG9iamVjdCB0aGF0IHRyYW5zbGF0ZXMKKyAgICAgKiBzdGFuZC1pbiBjaGFyYWN0ZXJzIHRvIFVuaWNvZGVSZXBsYWNlciBvYmplY3RzCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1JlcGxhY2VyKFN0cmluZyB0aGVPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aGVDdXJzb3JQb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgdGhlRGF0YSkgeworICAgICAgICBvdXRwdXQgPSB0aGVPdXRwdXQ7CisgICAgICAgIGN1cnNvclBvcyA9IHRoZUN1cnNvclBvczsKKyAgICAgICAgaGFzQ3Vyc29yID0gdHJ1ZTsKKyAgICAgICAgZGF0YSA9IHRoZURhdGE7CisgICAgICAgIGlzQ29tcGxleCA9IHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgU3RyaW5nUmVwbGFjZXIgdGhhdCBzZXRzIHRoZSBlbWl0cyB0aGUgZ2l2ZW4gb3V0cHV0CisgICAgICogdGV4dCBhbmQgZG9lcyBub3QgbW9kaWZ5IHRoZSBjdXJzb3IuCisgICAgICogQHBhcmFtIHRoZU91dHB1dCB0ZXh0IHRoYXQgd2lsbCByZXBsYWNlIGlucHV0IHRleHQgd2hlbiB0aGUKKyAgICAgKiByZXBsYWNlKCkgbWV0aG9kIGlzIGNhbGxlZC4gIE1heSBjb250YWluIHN0YW5kLWluIGNoYXJhY3RlcnMKKyAgICAgKiB0aGF0IHJlcHJlc2VudCBuZXN0ZWQgcmVwbGFjZXJzLgorICAgICAqIEBwYXJhbSB0aGVEYXRhIHRyYW5zbGl0ZXJhdG9yIGNvbnRleHQgb2JqZWN0IHRoYXQgdHJhbnNsYXRlcworICAgICAqIHN0YW5kLWluIGNoYXJhY3RlcnMgdG8gVW5pY29kZVJlcGxhY2VyIG9iamVjdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nUmVwbGFjZXIoU3RyaW5nIHRoZU91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSB0aGVEYXRhKSB7CisgICAgICAgIG91dHB1dCA9IHRoZU91dHB1dDsKKyAgICAgICAgY3Vyc29yUG9zID0gMDsKKyAgICAgICAgaGFzQ3Vyc29yID0gZmFsc2U7CisgICAgICAgIGRhdGEgPSB0aGVEYXRhOworICAgICAgICBpc0NvbXBsZXggPSB0cnVlOworICAgIH0KKworLy89ICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZVJlcGxhY2VyIHZhbHVlT2YoU3RyaW5nIG91dHB1dCwKKy8vPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjdXJzb3JQb3MsCisvLz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGEpIHsKKy8vPSAgICAgICAgaWYgKG91dHB1dC5sZW5ndGgoKSA9PSAxKSB7CisvLz0gICAgICAgICAgICBjaGFyIGMgPSBvdXRwdXQuY2hhckF0KDApOworLy89ICAgICAgICAgICAgVW5pY29kZVJlcGxhY2VyIHIgPSBkYXRhLmxvb2t1cFJlcGxhY2VyKGMpOworLy89ICAgICAgICAgICAgaWYgKHIgIT0gbnVsbCkgeworLy89ICAgICAgICAgICAgICAgIHJldHVybiByOworLy89ICAgICAgICAgICAgfQorLy89ICAgICAgICB9CisvLz0gICAgICAgIHJldHVybiBuZXcgU3RyaW5nUmVwbGFjZXIob3V0cHV0LCBjdXJzb3JQb3MsIGRhdGEpOworLy89ICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaWNvZGVSZXBsYWNlciBBUEkKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHJlcGxhY2UoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgIGludFtdIGN1cnNvcikgeworICAgICAgICBpbnQgb3V0TGVuOworICAgICAgICBpbnQgbmV3U3RhcnQgPSAwOworCisgICAgICAgIC8vIE5PVEU6IEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBfYWx3YXlzXyBydW4gdGhlIGNvbXBsZXgKKyAgICAgICAgLy8gcHJvY2Vzc2luZyBjb2RlOyBqdXN0IHNsb3dlci4gIElmIG5vdCwgdGhlbiB0aGVyZSBpcyBhIGJ1ZworICAgICAgICAvLyBpbiB0aGUgY29tcGxleCBwcm9jZXNzaW5nIGNvZGUuCisKKyAgICAgICAgLy8gU2ltcGxlIChubyBuZXN0ZWQgcmVwbGFjZXJzKSBQcm9jZXNzaW5nIENvZGUgOgorICAgICAgICBpZiAoIWlzQ29tcGxleCkgeworICAgICAgICAgICAgdGV4dC5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgb3V0cHV0KTsKKyAgICAgICAgICAgIG91dExlbiA9IG91dHB1dC5sZW5ndGgoKTsKKworICAgICAgICAgICAgLy8gU2V0dXAgZGVmYXVsdCBjdXJzb3IgcG9zaXRpb24gKGZvciBjdXJzb3JQb3Mgd2l0aGluIG91dHB1dCkKKyAgICAgICAgICAgIG5ld1N0YXJ0ID0gY3Vyc29yUG9zOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29tcGxleCAobmVzdGVkIHJlcGxhY2VycykgUHJvY2Vzc2luZyBDb2RlIDoKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvKiBXaGVuIHRoZXJlIGFyZSBzZWdtZW50cyB0byBiZSBjb3BpZWQsIHVzZSB0aGUgUmVwbGFjZWFibGUuY29weSgpCisgICAgICAgICAgICAgKiBBUEkgaW4gb3JkZXIgdG8gcmV0YWluIG91dC1vZi1iYW5kIGRhdGEuICBDb3B5IGV2ZXJ5dGhpbmcgdG8gdGhlCisgICAgICAgICAgICAgKiBlbmQgb2YgdGhlIHN0cmluZywgdGhlbiBjb3B5IHRoZW0gYmFjayBvdmVyIHRoZSBrZXkuICBUaGlzIHByZXNlcnZlcworICAgICAgICAgICAgICogdGhlIGludGVncml0eSBvZiBpbmRpY2VzIGludG8gdGhlIGtleSBhbmQgc3Vycm91bmRpbmcgY29udGV4dCB3aGlsZQorICAgICAgICAgICAgICogZ2VuZXJhdGluZyB0aGUgb3V0cHV0IHRleHQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpbnQgb091dHB1dDsgLy8gb2Zmc2V0IGludG8gJ291dHB1dCcKKyAgICAgICAgICAgIGlzQ29tcGxleCA9IGZhbHNlOworCisgICAgICAgICAgICAvLyBUaGUgdGVtcG9yYXJ5IGJ1ZmZlciBzdGFydHMgYXQgdGVtcFN0YXJ0LCBhbmQgZXh0ZW5kcworICAgICAgICAgICAgLy8gdG8gZGVzdExpbWl0ICsgdGVtcEV4dHJhLiAgVGhlIHN0YXJ0IG9mIHRoZSBidWZmZXIgaGFzIGEgc2luZ2xlCisgICAgICAgICAgICAvLyBjaGFyYWN0ZXIgZnJvbSBiZWZvcmUgdGhlIGtleS4gIFRoaXMgcHJvdmlkZXMgc3R5bGUKKyAgICAgICAgICAgIC8vIGRhdGEgd2hlbiBhZGRpdGlvbiBjaGFyYWN0ZXJzIGFyZSBmaWxsZWQgaW50byB0aGUKKyAgICAgICAgICAgIC8vIHRlbXBvcmFyeSBidWZmZXIuICBJZiB0aGVyZSBpcyBub3RoaW5nIHRvIHRoZSBsZWZ0LCB1c2UKKyAgICAgICAgICAgIC8vIHRoZSBub24tY2hhcmFjdGVyIFUrRkZGRiwgd2hpY2ggUmVwbGFjZWFibGUgc3ViY2xhc3NlcworICAgICAgICAgICAgLy8gc2hvdWxkIHRyZWF0IHNwZWNpYWxseSBhcyBhICJuby1zdHlsZSBjaGFyYWN0ZXIuIgorICAgICAgICAgICAgLy8gZGVzdFN0YXJ0IHBvaW50cyB0byB0aGUgcG9pbnQgYWZ0ZXIgdGhlIHN0eWxlIGNvbnRleHQKKyAgICAgICAgICAgIC8vIGNoYXJhY3Rlciwgc28gaXQgaXMgdGVtcFN0YXJ0KzEgb3IgdGVtcFN0YXJ0KzIuCisgICAgICAgICAgICBpbnQgdGVtcFN0YXJ0ID0gdGV4dC5sZW5ndGgoKTsgLy8gc3RhcnQgb2YgdGVtcCBidWZmZXIKKyAgICAgICAgICAgIGludCBkZXN0U3RhcnQgPSB0ZW1wU3RhcnQ7IC8vIGNvcHkgbmV3IHRleHQgdG8gaGVyZQorICAgICAgICAgICAgaWYgKHN0YXJ0ID4gMCkgeworICAgICAgICAgICAgICAgIGludCBsZW4gPSBVVEYxNi5nZXRDaGFyQ291bnQodGV4dC5jaGFyMzJBdChzdGFydC0xKSk7CisgICAgICAgICAgICAgICAgdGV4dC5jb3B5KHN0YXJ0LWxlbiwgc3RhcnQsIHRlbXBTdGFydCk7CisgICAgICAgICAgICAgICAgZGVzdFN0YXJ0ICs9IGxlbjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKHRlbXBTdGFydCwgdGVtcFN0YXJ0LCAiXHVGRkZGIik7CisgICAgICAgICAgICAgICAgZGVzdFN0YXJ0Kys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgZGVzdExpbWl0ID0gZGVzdFN0YXJ0OworICAgICAgICAgICAgaW50IHRlbXBFeHRyYSA9IDA7IC8vIHRlbXAgY2hhcnMgYWZ0ZXIgZGVzdExpbWl0CisKKyAgICAgICAgICAgIGZvciAob091dHB1dD0wOyBvT3V0cHV0PG91dHB1dC5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICAgICAgaWYgKG9PdXRwdXQgPT0gY3Vyc29yUG9zKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFJlY29yZCB0aGUgcG9zaXRpb24gb2YgdGhlIGN1cnNvcgorICAgICAgICAgICAgICAgICAgICBuZXdTdGFydCA9IGRlc3RMaW1pdCAtIGRlc3RTdGFydDsgLy8gcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQob3V0cHV0LCBvT3V0cHV0KTsKKworICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGF0IHRoZSBsYXN0IHBvc2l0aW9uIGNvcHkgdGhlIHJpZ2h0IHN0eWxlCisgICAgICAgICAgICAgICAgLy8gY29udGV4dCBjaGFyYWN0ZXIgaW50byB0aGUgdGVtcG9yYXJ5IGJ1ZmZlci4gIFdlIGRvbid0CisgICAgICAgICAgICAgICAgLy8gZG8gdGhpcyBiZWZvcmUgYmVjYXVzZSBpdCB3aWxsIHByb3ZpZGUgYW4gaW5jb3JyZWN0CisgICAgICAgICAgICAgICAgLy8gcmlnaHQgY29udGV4dCBmb3IgcHJldmlvdXMgcmVwbGFjZSgpIG9wZXJhdGlvbnMuCisgICAgICAgICAgICAgICAgaW50IG5leHRJbmRleCA9IG9PdXRwdXQgKyBVVEYxNi5nZXRDaGFyQ291bnQoYyk7CisgICAgICAgICAgICAgICAgaWYgKG5leHRJbmRleCA9PSBvdXRwdXQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVtcEV4dHJhID0gVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQobGltaXQpKTsKKyAgICAgICAgICAgICAgICAgICAgdGV4dC5jb3B5KGxpbWl0LCBsaW1pdCt0ZW1wRXh0cmEsIGRlc3RMaW1pdCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgVW5pY29kZVJlcGxhY2VyIHIgPSBkYXRhLmxvb2t1cFJlcGxhY2VyKGMpOworICAgICAgICAgICAgICAgIGlmIChyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQWNjdW11bGF0ZSBzdHJhaWdodCAobm9uLXNlZ21lbnQpIHRleHQuCisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGMpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlzQ29tcGxleCA9IHRydWU7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gSW5zZXJ0IGFueSBhY2N1bXVsYXRlZCBzdHJhaWdodCB0ZXh0LgorICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKGRlc3RMaW1pdCwgZGVzdExpbWl0LCBidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0TGltaXQgKz0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8vIERlbGVnYXRlIG91dHB1dCBnZW5lcmF0aW9uIHRvIHJlcGxhY2VyIG9iamVjdAorICAgICAgICAgICAgICAgICAgICBpbnQgbGVuID0gci5yZXBsYWNlKHRleHQsIGRlc3RMaW1pdCwgZGVzdExpbWl0LCBjdXJzb3IpOworICAgICAgICAgICAgICAgICAgICBkZXN0TGltaXQgKz0gbGVuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvT3V0cHV0ID0gbmV4dEluZGV4OworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gSW5zZXJ0IGFueSBhY2N1bXVsYXRlZCBzdHJhaWdodCB0ZXh0LgorICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICB0ZXh0LnJlcGxhY2UoZGVzdExpbWl0LCBkZXN0TGltaXQsIGJ1Zi50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICBkZXN0TGltaXQgKz0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG9PdXRwdXQgPT0gY3Vyc29yUG9zKSB7CisgICAgICAgICAgICAgICAgLy8gUmVjb3JkIHRoZSBwb3NpdGlvbiBvZiB0aGUgY3Vyc29yCisgICAgICAgICAgICAgICAgbmV3U3RhcnQgPSBkZXN0TGltaXQgLSBkZXN0U3RhcnQ7IC8vIHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG91dExlbiA9IGRlc3RMaW1pdCAtIGRlc3RTdGFydDsKKworICAgICAgICAgICAgLy8gQ29weSBuZXcgdGV4dCB0byBzdGFydCwgYW5kIGRlbGV0ZSBpdAorICAgICAgICAgICAgdGV4dC5jb3B5KGRlc3RTdGFydCwgZGVzdExpbWl0LCBzdGFydCk7CisgICAgICAgICAgICB0ZXh0LnJlcGxhY2UodGVtcFN0YXJ0ICsgb3V0TGVuLCBkZXN0TGltaXQgKyB0ZW1wRXh0cmEgKyBvdXRMZW4sICIiKTsKKworICAgICAgICAgICAgLy8gRGVsZXRlIHRoZSBvbGQgdGV4dCAodGhlIGtleSkKKyAgICAgICAgICAgIHRleHQucmVwbGFjZShzdGFydCArIG91dExlbiwgbGltaXQgKyBvdXRMZW4sICIiKTsKKyAgICAgICAgfSAgICAgICAgCisKKyAgICAgICAgaWYgKGhhc0N1cnNvcikgeworICAgICAgICAgICAgLy8gQWRqdXN0IHRoZSBjdXJzb3IgZm9yIHBvc2l0aW9ucyBvdXRzaWRlIHRoZSBrZXkuICBUaGVzZQorICAgICAgICAgICAgLy8gcmVmZXIgdG8gY29kZSBwb2ludHMgcmF0aGVyIHRoYW4gY29kZSB1bml0cy4gIElmIGN1cnNvclBvcworICAgICAgICAgICAgLy8gaXMgd2l0aGluIHRoZSBvdXRwdXQgc3RyaW5nLCB0aGVuIHVzZSBuZXdTdGFydCwgd2hpY2ggaGFzCisgICAgICAgICAgICAvLyBhbHJlYWR5IGJlZW4gc2V0IGFib3ZlLgorICAgICAgICAgICAgaWYgKGN1cnNvclBvcyA8IDApIHsKKyAgICAgICAgICAgICAgICBuZXdTdGFydCA9IHN0YXJ0OworICAgICAgICAgICAgICAgIGludCBuID0gY3Vyc29yUG9zOworICAgICAgICAgICAgICAgIC8vIE91dHNpZGUgdGhlIG91dHB1dCBzdHJpbmcsIGN1cnNvclBvcyBjb3VudHMgY29kZSBwb2ludHMKKyAgICAgICAgICAgICAgICB3aGlsZSAobiA8IDAgJiYgbmV3U3RhcnQgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld1N0YXJ0IC09IFVURjE2LmdldENoYXJDb3VudCh0ZXh0LmNoYXIzMkF0KG5ld1N0YXJ0LTEpKTsKKyAgICAgICAgICAgICAgICAgICAgKytuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuZXdTdGFydCArPSBuOworICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJzb3JQb3MgPiBvdXRwdXQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBuZXdTdGFydCA9IHN0YXJ0ICsgb3V0TGVuOworICAgICAgICAgICAgICAgIGludCBuID0gY3Vyc29yUG9zIC0gb3V0cHV0Lmxlbmd0aCgpOworICAgICAgICAgICAgICAgIC8vIE91dHNpZGUgdGhlIG91dHB1dCBzdHJpbmcsIGN1cnNvclBvcyBjb3VudHMgY29kZSBwb2ludHMKKyAgICAgICAgICAgICAgICB3aGlsZSAobiA+IDAgJiYgbmV3U3RhcnQgPCB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld1N0YXJ0ICs9IFVURjE2LmdldENoYXJDb3VudCh0ZXh0LmNoYXIzMkF0KG5ld1N0YXJ0KSk7CisgICAgICAgICAgICAgICAgICAgIC0tbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmV3U3RhcnQgKz0gbjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gQ3Vyc29yIGlzIHdpdGhpbiBvdXRwdXQgc3RyaW5nLiAgSXQgaGFzIGJlZW4gc2V0IHVwIGFib3ZlCisgICAgICAgICAgICAgICAgLy8gdG8gYmUgcmVsYXRpdmUgdG8gc3RhcnQuCisgICAgICAgICAgICAgICAgbmV3U3RhcnQgKz0gc3RhcnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGN1cnNvclswXSA9IG5ld1N0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG91dExlbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmljb2RlUmVwbGFjZXIgQVBJCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1JlcGxhY2VyUGF0dGVybihib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBydWxlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBTdHJpbmdCdWZmZXIgcXVvdGVCdWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgaW50IGN1cnNvciA9IGN1cnNvclBvczsKKworICAgICAgICAvLyBIYW5kbGUgYSBjdXJzb3IgcHJlY2VkaW5nIHRoZSBvdXRwdXQKKyAgICAgICAgaWYgKGhhc0N1cnNvciAmJiBjdXJzb3IgPCAwKSB7CisgICAgICAgICAgICB3aGlsZSAoY3Vyc29yKysgPCAwKSB7CisgICAgICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgJ0AnLCB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRmFsbCB0aHJvdWdoIGFuZCBhcHBlbmQgJ3wnIGJlbG93CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBpPTA7IGk8b3V0cHV0Lmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChoYXNDdXJzb3IgJiYgaSA9PSBjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCAnfCcsIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyIGMgPSBvdXRwdXQuY2hhckF0KGkpOyAvLyBPayB0byB1c2UgMTYtYml0cyBoZXJlCisKKyAgICAgICAgICAgIFVuaWNvZGVSZXBsYWNlciByID0gZGF0YS5sb29rdXBSZXBsYWNlcihjKTsKKyAgICAgICAgICAgIGlmIChyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCBjLCBmYWxzZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoIiAiKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHIudG9SZXBsYWNlclBhdHRlcm4oZXNjYXBlVW5wcmludGFibGUpKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCcgJyk7CisgICAgICAgICAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgYnVmLnRvU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEhhbmRsZSBhIGN1cnNvciBhZnRlciB0aGUgb3V0cHV0LiAgVXNlID4gcmF0aGVyIHRoYW4gPj0gYmVjYXVzZQorICAgICAgICAvLyBpZiBjdXJzb3IgPT0gb3V0cHV0Lmxlbmd0aCgpIGl0IGlzIGF0IHRoZSBlbmQgb2YgdGhlIG91dHB1dCwKKyAgICAgICAgLy8gd2hpY2ggaXMgdGhlIGRlZmF1bHQgcG9zaXRpb24sIHNvIHdlIG5lZWQgbm90IGVtaXQgaXQuCisgICAgICAgIGlmIChoYXNDdXJzb3IgJiYgY3Vyc29yID4gb3V0cHV0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICBjdXJzb3IgLT0gb3V0cHV0Lmxlbmd0aCgpOworICAgICAgICAgICAgd2hpbGUgKGN1cnNvci0tID4gMCkgeworICAgICAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsICdAJywgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsICd8JywgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgfQorICAgICAgICAvLyBGbHVzaCBxdW90ZUJ1ZiBvdXQgdG8gcmVzdWx0CisgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsIC0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworCisgICAgICAgIHJldHVybiBydWxlLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5pb24gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBvdXRwdXQgYnkgdGhpcyBvYmplY3QKKyAgICAgKiBpbnRvIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHRvVW5pb25UbyB0aGUgc2V0IGludG8gd2hpY2ggdG8gdW5pb24gdGhlIG91dHB1dCBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkUmVwbGFjZW1lbnRTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25UbykgeworICAgICAgICBpbnQgY2g7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxvdXRwdXQubGVuZ3RoKCk7IGkrPVVURjE2LmdldENoYXJDb3VudChjaCkpIHsKKyAgICAgICAgICAgIGNoID0gVVRGMTYuY2hhckF0KG91dHB1dCwgaSk7CisgICAgICAgICAgICBVbmljb2RlUmVwbGFjZXIgciA9IGRhdGEubG9va3VwUmVwbGFjZXIoY2gpOworICAgICAgICAgICAgaWYgKHIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRvVW5pb25Uby5hZGQoY2gpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByLmFkZFJlcGxhY2VtZW50U2V0VG8odG9VbmlvblRvKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1NlYXJjaC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3RyaW5nU2VhcmNoLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDU5MWEzNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1N0cmluZ1NlYXJjaC5qYXZhCkBAIC0wLDAgKzEsMzEwOSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudGV4dC5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIDxwPgorICogPGNvZGU+U3RyaW5nU2VhcmNoPC9jb2RlPiBpcyB0aGUgY29uY3JldGUgc3ViY2xhc3Mgb2YgCisgKiA8Y29kZT5TZWFyY2hJdGVyYXRvcjwvY29kZT4gdGhhdCBwcm92aWRlcyBsYW5ndWFnZS1zZW5zaXRpdmUgdGV4dCBzZWFyY2hpbmcgCisgKiBiYXNlZCBvbiB0aGUgY29tcGFyaXNvbiBydWxlcyBkZWZpbmVkIGluIGEge0BsaW5rIFJ1bGVCYXNlZENvbGxhdG9yfSBvYmplY3QuCisgKiA8L3A+CisgKiA8cD4KKyAqIDxjb2RlPlN0cmluZ1NlYXJjaDwvY29kZT4gdXNlcyBhIHZlcnNpb24gb2YgdGhlIGZhc3QgQm95ZXItTW9vcmUgc2VhcmNoCisgKiBhbGdvcml0aG0gdGhhdCBoYXMgYmVlbiBhZGFwdGVkIHRvIHdvcmsgd2l0aCB0aGUgbGFyZ2UgY2hhcmFjdGVyIHNldCBvZgorICogVW5pY29kZS4gUmVmZXIgdG8gCisgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC9kb2NzL3BhcGVycy9lZmZpY2llbnRfdGV4dF9zZWFyY2hpbmdfaW5famF2YS5odG1sIj4KKyAqICJFZmZpY2llbnQgVGV4dCBTZWFyY2hpbmcgaW4gSmF2YSI8L2E+LCBwdWJsaXNoZWQgaW4gdGhlIAorICogPGk+SmF2YSBSZXBvcnQ8L2k+IG9uIEZlYnJ1YXJ5LCAxOTk5LCBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBvbiB0aGUgCisgKiBhbGdvcml0aG0uCisgKiA8L3A+CisgKiA8cD4KKyAqIFVzZXJzIGFyZSBhbHNvIHN0cm9uZ2x5IGVuY291cmFnZWQgdG8gcmVhZCB0aGUgc2VjdGlvbiBvbiAKKyAqIDxhIGhyZWY9Imh0dHA6Ly9pY3Uuc291cmNlZm9yZ2UubmV0L3VzZXJndWlkZS9zZWFyY2hTdHJpbmcuaHRtbCI+CisgKiBTdHJpbmcgU2VhcmNoPC9hPiBhbmQgCisgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvQ29sbGF0ZV9JbnRyby5odG1sIj4KKyAqIENvbGxhdGlvbjwvYT4gaW4gdGhlIHVzZXIgZ3VpZGUgYmVmb3JlIGF0dGVtcHRpbmcgdG8gdXNlIHRoaXMgY2xhc3MuCisgKiA8L3A+CisgKiA8cD4KKyAqIFN0cmluZyBzZWFyY2hpbmcgZ2V0cyBhbGl0dGxlIGNvbXBsaWNhdGVkIHdoZW4gYWNjZW50cyBhcmUgZW5jb3VudGVyZWQgYXQKKyAqIG1hdGNoIGJvdW5kYXJpZXMuIElmIGEgbWF0Y2ggaXMgZm91bmQgYW5kIGl0IGhhcyBwcmVjZWRpbmcgb3IgdHJhaWxpbmcgCisgKiBhY2NlbnRzIG5vdCBwYXJ0IG9mIHRoZSBtYXRjaCwgdGhlIHJlc3VsdCByZXR1cm5lZCB3aWxsIGluY2x1ZGUgdGhlIAorICogcHJlY2VkaW5nIGFjY2VudHMgdXAgdG8gdGhlIGZpcnN0IGJhc2UgY2hhcmFjdGVyLCBpZiB0aGUgcGF0dGVybiBzZWFyY2hlZCAKKyAqIGZvciBzdGFydHMgYW4gYWNjZW50LiBMaWtld2lzZSwgCisgKiBpZiB0aGUgcGF0dGVybiBlbmRzIHdpdGggYW4gYWNjZW50LCBhbGwgdHJhaWxpbmcgYWNjZW50cyB1cCB0byB0aGUgZmlyc3QKKyAqIGJhc2UgY2hhcmFjdGVyIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdC4KKyAqIDwvcD4KKyAqIDxwPgorICogRm9yIGV4YW1wbGUsIGlmIGEgbWF0Y2ggaXMgZm91bmQgaW4gdGFyZ2V0IHRleHQgImEmIzkyO3UwMzI1JiM5Mjt1MDMwMCIgZm9yIAorICogdGhlIHBhdHRlcm4KKyAqICJhJiM5Mjt1MDMyNSIsIHRoZSByZXN1bHQgcmV0dXJuZWQgYnkgU3RyaW5nU2VhcmNoIHdpbGwgYmUgdGhlIGluZGV4IDAgYW5kCisgKiBsZW5ndGggMyAmbHQ7MCwgMyZndDsuIElmIGEgbWF0Y2ggaXMgZm91bmQgaW4gdGhlIHRhcmdldCAKKyAqICJhJiM5Mjt1MDMyNSYjOTI7dTAzMDAiIAorICogZm9yIHRoZSBwYXR0ZXJuICImIzkyO3UwMzAwIiwgdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmUgaW5kZXggMSBhbmQgbGVuZ3RoIDIgCisgKiA8MSwgMj4uCisgKiA8L3A+CisgKiA8cD4KKyAqIEluIHRoZSBjYXNlIHdoZXJlIHRoZSBkZWNvbXBvc2l0aW9uIG1vZGUgaXMgb24gZm9yIHRoZSBSdWxlQmFzZWRDb2xsYXRvciwKKyAqIGFsbCBtYXRjaGVzIHRoYXQgc3RhcnRzIG9yIGVuZHMgd2l0aCBhbiBhY2NlbnQgd2lsbCBoYXZlIGl0cyByZXN1bHRzIGluY2x1ZGUgCisgKiBwcmVjZWRpbmcgb3IgZm9sbG93aW5nIGFjY2VudHMgcmVzcGVjdGl2ZWx5LiBGb3IgZXhhbXBsZSwgaWYgcGF0dGVybiAiYSIgaXMKKyAqIGxvb2tlZCBmb3IgaW4gdGhlIHRhcmdldCB0ZXh0ICImYWFjdXRlOyYjOTI7dTAzMjUiLCB0aGUgcmVzdWx0IHdpbGwgYmUKKyAqIGluZGV4IDAgYW5kIGxlbmd0aCAyICZsdDswLCAyJmd0Oy4KKyAqIDwvcD4KKyAqIDxwPgorICogVGhlIFN0cmluZ1NlYXJjaCBjbGFzcyBwcm92aWRlcyB0d28gb3B0aW9ucyB0byBoYW5kbGUgYWNjZW50IG1hdGNoaW5nIAorICogZGVzY3JpYmVkIGJlbG93OgorICogPC9wPgorICogPHA+CisgKiBMZXQgUycgYmUgdGhlIHN1Yi1zdHJpbmcgb2YgYSB0ZXh0IHN0cmluZyBTIGJldHdlZW4gdGhlIG9mZnNldHMgc3RhcnQgYW5kIAorICogZW5kICZsdDtzdGFydCwgZW5kJmd0Oy4KKyAqIDxicj4KKyAqIEEgcGF0dGVybiBzdHJpbmcgUCBtYXRjaGVzIGEgdGV4dCBzdHJpbmcgUyBhdCB0aGUgb2Zmc2V0cyAmbHQ7c3RhcnQsIAorICogbGVuZ3RoJmd0OyAKKyAqIDxicj4KKyAqIGlmCisgKiA8cHJlPiAKKyAqIG9wdGlvbiAxLiBQIG1hdGNoZXMgc29tZSBjYW5vbmljYWwgZXF1aXZhbGVudCBzdHJpbmcgb2YgUycuIFN1cHBvc2UgdGhlIAorICogICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIHVzZWQgZm9yIHNlYXJjaGluZyBoYXMgYSBjb2xsYXRpb24gc3RyZW5ndGggb2YgCisgKiAgICAgICAgICAgVEVSVElBUlksIGFsbCBhY2NlbnRzIGFyZSBub24taWdub3JhYmxlLiBJZiB0aGUgcGF0dGVybiAKKyAqICAgICAgICAgICAiYSYjOTI7dTAzMDAiIGlzIHNlYXJjaGVkIGluIHRoZSB0YXJnZXQgdGV4dCAKKyAqICAgICAgICAgICAiYSYjOTI7dTAzMjUmIzkyO3UwMzAwIiwgCisgKiAgICAgICAgICAgYSBtYXRjaCB3aWxsIGJlIGZvdW5kLCBzaW5jZSB0aGUgdGFyZ2V0IHRleHQgaXMgY2Fub25pY2FsbHkgCisgKiAgICAgICAgICAgZXF1aXZhbGVudCB0byAiYSYjOTI7dTAzMDAmIzkyO3UwMzI1IgorICogb3B0aW9uIDIuIFAgbWF0Y2hlcyBTJyBhbmQgaWYgUCBzdGFydHMgb3IgZW5kcyB3aXRoIGEgY29tYmluaW5nIG1hcmssIAorICogICAgICAgICAgIHRoZXJlIGV4aXN0cyBubyBub24taWdub3JhYmxlIGNvbWJpbmluZyBtYXJrIGJlZm9yZSBvciBhZnRlciBTJyAKKyAqICAgICAgICAgICBpbiBTIHJlc3BlY3RpdmVseS4gRm9sbG93aW5nIHRoZSBleGFtcGxlIGFib3ZlLCB0aGUgcGF0dGVybiAKKyAqICAgICAgICAgICAiYSYjOTI7dTAzMDAiIHdpbGwgbm90IGZpbmQgYSBtYXRjaCBpbiAiYSYjOTI7dTAzMjUmIzkyO3UwMzAwIiwgCisgKiAgICAgICAgICAgc2luY2UKKyAqICAgICAgICAgICB0aGVyZSBleGlzdHMgYSBub24taWdub3JhYmxlIGFjY2VudCAnJiM5Mjt1MDMyNScgaW4gdGhlIG1pZGRsZSBvZiAKKyAqICAgICAgICAgICAnYScgYW5kICcmIzkyO3UwMzAwJy4gRXZlbiB3aXRoIGEgdGFyZ2V0IHRleHQgb2YgCisgKiAgICAgICAgICAgImEmIzkyO3UwMzAwJiM5Mjt1MDMyNSIgYSBtYXRjaCB3aWxsIG5vdCBiZSBmb3VuZCBiZWNhdXNlIG9mIHRoZSAKKyAqICAgICAgICAgICBub24taWdub3JhYmxlIHRyYWlsaW5nIGFjY2VudCAmIzkyO3UwMzI1LgorICogPC9wcmU+CisgKiBPcHRpb24gMi4gd2lsbCBiZSB0aGUgZGVmYXVsdCBtb2RlIGZvciBkZWFsaW5nIHdpdGggYm91bmRhcnkgYWNjZW50cyB1bmxlc3MKKyAqIHNwZWNpZmllZCB2aWEgdGhlIEFQSSBzZXRDYW5vbmljYWwoYm9vbGVhbikuCisgKiBPbmUgcmVzdHJpY3Rpb24gaXMgdG8gYmUgbm90ZWQgZm9yIG9wdGlvbiAxLiBDdXJyZW50bHkgdGhlcmUgYXJlIG5vIAorICogY29tcG9zaXRlIGNoYXJhY3RlcnMgdGhhdCBjb25zaXN0cyBvZiBhIGNoYXJhY3RlciB3aXRoIGNvbWJpbmluZyBjbGFzcyA+IDAgCisgKiBiZWZvcmUgYSBjaGFyYWN0ZXIgd2l0aCBjb21iaW5pbmcgY2xhc3MgPT0gMC4gSG93ZXZlciwgaWYgc3VjaCBhIGNoYXJhY3RlciAKKyAqIGV4aXN0cyBpbiB0aGUgZnV0dXJlLCB0aGUgU3RyaW5nU2VhcmNoIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBvcHRpb24gMQorICogd2hlbiBzdWNoIGNoYXJhY3RlcnMgYXJlIGVuY291bnRlcmVkLgorICogPC9wPgorICogPHA+CisgKiA8dHQ+U2VhcmNoSXRlcmF0b3I8L3R0PiBwcm92aWRlcyBBUElzIHRvIHNwZWNpZnkgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIAorICogd2l0aGluIHRoZSB0ZXh0IHN0cmluZyB0byBiZSBzZWFyY2hlZCwgZS5nLiA8dHQ+c2V0SW5kZXg8L3R0PiwKKyAqIDx0dD5wcmVjZWRpbmc8L3R0PiBhbmQgPHR0PmZvbGxvd2luZzwvdHQ+LiBTaW5jZSB0aGUgc3RhcnRpbmcgcG9zaXRpb24gd2lsbCAKKyAqIGJlIHNldCBhcyBpdCBpcyBzcGVjaWZpZWQsIHBsZWFzZSB0YWtlIG5vdGUgdGhhdCB0aGVyZSBhcmUgc29tZSBkYW5nZXJvdXMgCisgKiBwb3NpdGlvbnMgd2hpY2ggdGhlIHNlYXJjaCBtYXkgcmVuZGVyIGluY29ycmVjdCByZXN1bHRzOgorICogPHVsPgorICogPGxpPiBUaGUgbWlkc3Qgb2YgYSBzdWJzdHJpbmcgdGhhdCByZXF1aXJlcyBkZWNvbXBvc2l0aW9uLgorICogPGxpPiBJZiB0aGUgZm9sbG93aW5nIG1hdGNoIGlzIHRvIGJlIGZvdW5kLCB0aGUgcG9zaXRpb24gc2hvdWxkIG5vdCBiZSB0aGUKKyAqICAgICAgc2Vjb25kIGNoYXJhY3RlciB3aGljaCByZXF1aXJlcyB0byBiZSBzd2FwcGVkIHdpdGggdGhlIHByZWNlZGluZyAKKyAqICAgICAgY2hhcmFjdGVyLiBWaWNlIHZlcnNhLCBpZiB0aGUgcHJlY2VkaW5nIG1hdGNoIGlzIHRvIGJlIGZvdW5kLCAKKyAqICAgICAgcG9zaXRpb24gdG8gc2VhcmNoIGZyb20gc2hvdWxkIG5vdCBiZSB0aGUgZmlyc3QgY2hhcmFjdGVyIHdoaWNoIAorICogICAgICByZXF1aXJlcyB0byBiZSBzd2FwcGVkIHdpdGggdGhlIG5leHQgY2hhcmFjdGVyLiBFLmcgY2VydGFpbiBUaGFpIGFuZAorICogICAgICBMYW8gY2hhcmFjdGVycyByZXF1aXJlIHN3YXBwaW5nLgorICogPGxpPiBJZiBhIGZvbGxvd2luZyBwYXR0ZXJuIG1hdGNoIGlzIHRvIGJlIGZvdW5kLCBhbnkgcG9zaXRpb24gd2l0aGluIGEgCisgKiAgICAgIGNvbnRyYWN0aW5nIHNlcXVlbmNlIGV4Y2VwdCB0aGUgZmlyc3Qgd2lsbCBmYWlsLiBWaWNlIHZlcnNhIGlmIGEgCisgKiAgICAgIHByZWNlZGluZyBwYXR0ZXJuIG1hdGNoIGlzIHRvIGJlIGZvdW5kLCBhIGludmFsaWQgc3RhcnRpbmcgcG9pbnQgCisgKiAgICAgIHdvdWxkIGJlIGFueSBjaGFyYWN0ZXIgd2l0aGluIGEgY29udHJhY3Rpbmcgc2VxdWVuY2UgZXhjZXB0IHRoZSBsYXN0LgorICogPC91bD4KKyAqIDwvcD4KKyAqIDxwPgorICogVGhvdWdoIGNvbGxhdG9yIGF0dHJpYnV0ZXMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24gd2hpbGUgCisgKiBwZXJmb3JtaW5nIG1hdGNoZXMsIHRoZXJlIGFyZSBubyBBUElzIHByb3ZpZGVkIGluIFN0cmluZ1NlYXJjaCBmb3Igc2V0dGluZyAKKyAqIGFuZCBnZXR0aW5nIHRoZSBhdHRyaWJ1dGVzLiBUaGVzZSBhdHRyaWJ1dGVzIGNhbiBiZSBzZXQgYnkgZ2V0dGluZyB0aGUgCisgKiBjb2xsYXRvciBmcm9tIDx0dD5nZXRDb2xsYXRvcjwvdHQ+IGFuZCB1c2luZyB0aGUgQVBJcyBpbiAKKyAqIDx0dD5jb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yPC90dD4uIFRvIHVwZGF0ZSBTdHJpbmdTZWFyY2ggdG8gdGhlIG5ldyAKKyAqIGNvbGxhdG9yIGF0dHJpYnV0ZXMsIDx0dD5yZXNldCgpPC90dD4gb3IgCisgKiA8dHQ+c2V0Q29sbGF0b3IoUnVsZUJhc2VkQ29sbGF0b3IpPC90dD4gaGFzIHRvIGJlIGNhbGxlZC4KKyAqIDwvcD4KKyAqIDxwPgorICogQ29uc3VsdCB0aGUgCisgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvc2VhcmNoU3RyaW5nLmh0bWwiPgorICogU3RyaW5nIFNlYXJjaDwvYT4gdXNlciBndWlkZSBhbmQgdGhlIDxjb2RlPlNlYXJjaEl0ZXJhdG9yPC9jb2RlPiAKKyAqIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGV4YW1wbGVzIG9mIHVzZS4KKyAqIDwvcD4KKyAqIDxwPgorICogVGhpcyBjbGFzcyBpcyBub3Qgc3ViY2xhc3NhYmxlCisgKiA8L3A+CisgKiBAc2VlIFNlYXJjaEl0ZXJhdG9yCisgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgKiBAYXV0aG9yIExhdXJhIFdlcm5lciwgc3lud2VlCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworLy8gaW50ZXJuYWwgbm90ZXM6IGFsbCBtZXRob2RzIGRvIG5vdCBndWFyYW50ZWUgdGhlIGNvcnJlY3Qgc3RhdHVzIG9mIHRoZSAKKy8vIGNoYXJhY3Rlcml0ZXJhdG9yLiB0aGUgY2FsbGVyIGhhcyB0byBtYWludGFpbiB0aGUgb3JpZ2luYWwgaW5kZXggcG9zaXRpb24KKy8vIGlmIG5lY2Vzc2FyeS4gbWV0aG9kcyBjb3VsZCBjaGFuZ2UgdGhlIGluZGV4IHBvc2l0aW9uIGFzIGl0IGRlZW1zIGZpdAorcHVibGljIGZpbmFsIGNsYXNzIFN0cmluZ1NlYXJjaCBleHRlbmRzIFNlYXJjaEl0ZXJhdG9yCit7CisgICAgCisgICAgLy8gcHVibGljIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpdGVyYXRvciB0byB1c2UgdGhlIGxhbmd1YWdlLXNwZWNpZmljIHJ1bGVzIGRlZmluZWQgaW4gCisgICAgICogdGhlIGFyZ3VtZW50IGNvbGxhdG9yIHRvIHNlYXJjaCBmb3IgYXJndW1lbnQgcGF0dGVybiBpbiB0aGUgYXJndW1lbnQgCisgICAgICogdGFyZ2V0IHRleHQuIFRoZSBhcmd1bWVudCBicmVha2l0ZXIgaXMgdXNlZCB0byBkZWZpbmUgbG9naWNhbCBtYXRjaGVzLgorICAgICAqIFNlZSBzdXBlciBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMgb24gdGhlIHVzZSBvZiB0aGUgdGFyZ2V0IAorICAgICAqIHRleHQgYW5kIEJyZWFrSXRlcmF0b3IuCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGV4dCB0byBsb29rIGZvci4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRhcmdldCB0ZXh0IHRvIHNlYXJjaCBmb3IgcGF0dGVybi4gCisgICAgICogQHBhcmFtIGNvbGxhdG9yIFJ1bGVCYXNlZENvbGxhdG9yIHRoYXQgZGVmaW5lcyB0aGUgbGFuZ3VhZ2UgcnVsZXMKKyAgICAgKiBAcGFyYW0gYnJlYWtpdGVyIEEge0BsaW5rIEJyZWFrSXRlcmF0b3J9IHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIAorICAgICAqICAgICAgICAgICAgICAgIGJvdW5kYXJpZXMgb2YgYSBsb2dpY2FsIG1hdGNoLiBUaGlzIGFyZ3VtZW50IGNhbiBiZSBudWxsLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IHRhcmdldCBpcyBudWxsLAorICAgICAqICAgICAgICAgICAgb3Igb2YgbGVuZ3RoIDAKKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHNlZSBTZWFyY2hJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdTZWFyY2goU3RyaW5nIHBhdHRlcm4sIENoYXJhY3Rlckl0ZXJhdG9yIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZENvbGxhdG9yIGNvbGxhdG9yLCBCcmVha0l0ZXJhdG9yIGJyZWFraXRlcikgCisgICAgeworICAgICAgICBzdXBlcih0YXJnZXQsIGJyZWFraXRlcik7CisgICAgICAgIG1fdGV4dEJlZ2luT2Zmc2V0XyA9IHRhcmdldFRleHQuZ2V0QmVnaW5JbmRleCgpOworICAgICAgICBtX3RleHRMaW1pdE9mZnNldF8gPSB0YXJnZXRUZXh0LmdldEVuZEluZGV4KCk7CisgICAgICAgIG1fY29sbGF0b3JfID0gY29sbGF0b3I7CisgICAgICAgIG1fY29sRUl0ZXJfID0gbV9jb2xsYXRvcl8uZ2V0Q29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yKHRhcmdldCk7CisgICAgICAgIG1fdXRpbENvbEVJdGVyXyA9IGNvbGxhdG9yLmdldENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvcigiIik7CisgICAgICAgIG1fY2VNYXNrXyA9IGdldE1hc2sobV9jb2xsYXRvcl8uZ2V0U3RyZW5ndGgoKSk7CisgICAgICAgIG1faXNDYW5vbmljYWxNYXRjaF8gPSBmYWxzZTsKKyAgICAgICAgbV9wYXR0ZXJuXyA9IG5ldyBQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOworICAgICAgICAKKyAgICAgICAgaW5pdGlhbGl6ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpdGVyYXRvciB0byB1c2UgdGhlIGxhbmd1YWdlLXNwZWNpZmljIHJ1bGVzIGRlZmluZWQgaW4gCisgICAgICogdGhlIGFyZ3VtZW50IGNvbGxhdG9yIHRvIHNlYXJjaCBmb3IgYXJndW1lbnQgcGF0dGVybiBpbiB0aGUgYXJndW1lbnQgCisgICAgICogdGFyZ2V0IHRleHQuIE5vIEJyZWFrSXRlcmF0b3JzIGFyZSBzZXQgdG8gdGVzdCBmb3IgbG9naWNhbCBtYXRjaGVzLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRleHQgdG8gbG9vayBmb3IuCisgICAgICogQHBhcmFtIHRhcmdldCB0YXJnZXQgdGV4dCB0byBzZWFyY2ggZm9yIHBhdHRlcm4uIAorICAgICAqIEBwYXJhbSBjb2xsYXRvciBSdWxlQmFzZWRDb2xsYXRvciB0aGF0IGRlZmluZXMgdGhlIGxhbmd1YWdlIHJ1bGVzCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gYXJndW1lbnQgdGFyZ2V0IGlzIG51bGwsCisgICAgICogICAgICAgICAgICBvciBvZiBsZW5ndGggMAorICAgICAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAc2VlIFNlYXJjaEl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1NlYXJjaChTdHJpbmcgcGF0dGVybiwgQ2hhcmFjdGVySXRlcmF0b3IgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpIAorICAgIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCB0YXJnZXQsIGNvbGxhdG9yLCBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpdGVyYXRvciB0byB1c2UgdGhlIGxhbmd1YWdlLXNwZWNpZmljIHJ1bGVzIGFuZCAKKyAgICAgKiBicmVhayBpdGVyYXRvciBydWxlcyBkZWZpbmVkIGluIHRoZSBhcmd1bWVudCBsb2NhbGUgdG8gc2VhcmNoIGZvciAKKyAgICAgKiBhcmd1bWVudCBwYXR0ZXJuIGluIHRoZSBhcmd1bWVudCB0YXJnZXQgdGV4dC4gCisgICAgICogU2VlIHN1cGVyIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgdXNlIG9mIHRoZSB0YXJnZXQgCisgICAgICogdGV4dCBhbmQgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0ZXh0IHRvIGxvb2sgZm9yLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGFyZ2V0IHRleHQgdG8gc2VhcmNoIGZvciBwYXR0ZXJuLiAKKyAgICAgKiBAcGFyYW0gbG9jYWxlIGxvY2FsZSB0byB1c2UgZm9yIGxhbmd1YWdlIGFuZCBicmVhayBpdGVyYXRvciBydWxlcworICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IHRhcmdldCBpcyBudWxsLAorICAgICAqICAgICAgICAgICAgb3Igb2YgbGVuZ3RoIDAuIENsYXNzQ2FzdEV4Y2VwdGlvbiB0aHJvd24gaWYgdGhlIGNvbGxhdG9yIGZvciAKKyAgICAgKiAgICAgICAgICAgIHRoZSBzcGVjaWZpZWQgbG9jYWxlIGlzIG5vdCBhIFJ1bGVCYXNlZENvbGxhdG9yLgorICAgICAqIEBzZWUgQnJlYWtJdGVyYXRvcgorICAgICAqIEBzZWUgUnVsZUJhc2VkQ29sbGF0b3IKKyAgICAgKiBAc2VlIFNlYXJjaEl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1NlYXJjaChTdHJpbmcgcGF0dGVybiwgQ2hhcmFjdGVySXRlcmF0b3IgdGFyZ2V0LCBMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCB0YXJnZXQsIFVMb2NhbGUuZm9yTG9jYWxlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpdGVyYXRvciB0byB1c2UgdGhlIGxhbmd1YWdlLXNwZWNpZmljIHJ1bGVzIGFuZCAKKyAgICAgKiBicmVhayBpdGVyYXRvciBydWxlcyBkZWZpbmVkIGluIHRoZSBhcmd1bWVudCBsb2NhbGUgdG8gc2VhcmNoIGZvciAKKyAgICAgKiBhcmd1bWVudCBwYXR0ZXJuIGluIHRoZSBhcmd1bWVudCB0YXJnZXQgdGV4dC4gCisgICAgICogU2VlIHN1cGVyIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgdXNlIG9mIHRoZSB0YXJnZXQgCisgICAgICogdGV4dCBhbmQgQnJlYWtJdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0ZXh0IHRvIGxvb2sgZm9yLgorICAgICAqIEBwYXJhbSB0YXJnZXQgdGFyZ2V0IHRleHQgdG8gc2VhcmNoIGZvciBwYXR0ZXJuLiAKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHVsb2NhbGUgdG8gdXNlIGZvciBsYW5ndWFnZSBhbmQgYnJlYWsgaXRlcmF0b3IgcnVsZXMKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBhcmd1bWVudCB0YXJnZXQgaXMgbnVsbCwKKyAgICAgKiAgICAgICAgICAgIG9yIG9mIGxlbmd0aCAwLiBDbGFzc0Nhc3RFeGNlcHRpb24gdGhyb3duIGlmIHRoZSBjb2xsYXRvciBmb3IgCisgICAgICogICAgICAgICAgICB0aGUgc3BlY2lmaWVkIGxvY2FsZSBpcyBub3QgYSBSdWxlQmFzZWRDb2xsYXRvci4KKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHNlZSBTZWFyY2hJdGVyYXRvcgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZ1NlYXJjaChTdHJpbmcgcGF0dGVybiwgQ2hhcmFjdGVySXRlcmF0b3IgdGFyZ2V0LCBVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHRoaXMocGF0dGVybiwgdGFyZ2V0LCAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UobG9jYWxlKSwKKyAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKGxvY2FsZSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpdGVyYXRvciB0byB1c2UgdGhlIGxhbmd1YWdlLXNwZWNpZmljIHJ1bGVzIGFuZCAKKyAgICAgKiBicmVhayBpdGVyYXRvciBydWxlcyBkZWZpbmVkIGluIHRoZSBkZWZhdWx0IGxvY2FsZSB0byBzZWFyY2ggZm9yIAorICAgICAqIGFyZ3VtZW50IHBhdHRlcm4gaW4gdGhlIGFyZ3VtZW50IHRhcmdldCB0ZXh0LiAKKyAgICAgKiBTZWUgc3VwZXIgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzIG9uIHRoZSB1c2Ugb2YgdGhlIHRhcmdldCAKKyAgICAgKiB0ZXh0IGFuZCBCcmVha0l0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRleHQgdG8gbG9vayBmb3IuCisgICAgICogQHBhcmFtIHRhcmdldCB0YXJnZXQgdGV4dCB0byBzZWFyY2ggZm9yIHBhdHRlcm4uIAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRocm93biB3aGVuIGFyZ3VtZW50IHRhcmdldCBpcyBudWxsLAorICAgICAqICAgICAgICAgICAgb3Igb2YgbGVuZ3RoIDAuIENsYXNzQ2FzdEV4Y2VwdGlvbiB0aHJvd24gaWYgdGhlIGNvbGxhdG9yIGZvciAKKyAgICAgKiAgICAgICAgICAgIHRoZSBkZWZhdWx0IGxvY2FsZSBpcyBub3QgYSBSdWxlQmFzZWRDb2xsYXRvci4KKyAgICAgKiBAc2VlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc2VlIFJ1bGVCYXNlZENvbGxhdG9yCisgICAgICogQHNlZSBTZWFyY2hJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdTZWFyY2goU3RyaW5nIHBhdHRlcm4sIFN0cmluZyB0YXJnZXQpIAorICAgIHsKKyAgICAgICAgdGhpcyhwYXR0ZXJuLCBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IodGFyZ2V0KSwKKyAgICAgICAgICAgICAoUnVsZUJhc2VkQ29sbGF0b3IpQ29sbGF0b3IuZ2V0SW5zdGFuY2UoKSwKKyAgICAgICAgICAgICBCcmVha0l0ZXJhdG9yLmdldENoYXJhY3Rlckluc3RhbmNlKCkpOworICAgIH0KKworICAgIC8vIHB1YmxpYyBnZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogR2V0cyB0aGUgUnVsZUJhc2VkQ29sbGF0b3IgdXNlZCBmb3IgdGhlIGxhbmd1YWdlIHJ1bGVzLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBTaW5jZSBTdHJpbmdTZWFyY2ggZGVwZW5kcyBvbiB0aGUgcmV0dXJuZWQgUnVsZUJhc2VkQ29sbGF0b3IsIGFueSAKKyAgICAgKiBjaGFuZ2VzIHRvIHRoZSBSdWxlQmFzZWRDb2xsYXRvciByZXN1bHQgc2hvdWxkIGZvbGxvdyB3aXRoIGEgY2FsbCB0byAKKyAgICAgKiBlaXRoZXIgU3RyaW5nU2VhcmNoLnJlc2V0KCkgb3IgCisgICAgICogU3RyaW5nU2VhcmNoLnNldENvbGxhdG9yKFJ1bGVCYXNlZENvbGxhdG9yKSB0byBlbnN1cmUgdGhlIGNvcnJlY3QgCisgICAgICogc2VhcmNoIGJlaGF2aW91ci4KKyAgICAgKiA8L3A+CisgICAgICogQHJldHVybiBSdWxlQmFzZWRDb2xsYXRvciB1c2VkIGJ5IHRoaXMgU3RyaW5nU2VhcmNoCisgICAgICogQHNlZSBSdWxlQmFzZWRDb2xsYXRvcgorICAgICAqIEBzZWUgI3NldENvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFJ1bGVCYXNlZENvbGxhdG9yIGdldENvbGxhdG9yKCkgCisgICAgeworICAgICAgICByZXR1cm4gbV9jb2xsYXRvcl87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHBhdHRlcm4gZm9yIHdoaWNoIFN0cmluZ1NlYXJjaCBpcyBzZWFyY2hpbmcgZm9yLgorICAgICAqIEByZXR1cm4gdGhlIHBhdHRlcm4gc2VhcmNoZWQgZm9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRQYXR0ZXJuKCkgCisgICAgeworICAgICAgICByZXR1cm4gbV9wYXR0ZXJuXy50YXJnZXRUZXh0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGluZGV4IGluIHRoZSB0YXJnZXQgdGV4dCB3aGVyZSB0aGUgaXRlcmF0b3IgaXMgY3VycmVudGx5IAorICAgICAqIHBvc2l0aW9uZWQgYXQuIAorICAgICAqIElmIHRoZSBpdGVyYXRpb24gaGFzIGdvbmUgcGFzdCB0aGUgZW5kIG9mIHRoZSB0YXJnZXQgdGV4dCBvciBwYXN0IAorICAgICAqIHRoZSBiZWdpbm5pbmcgZm9yIGEgYmFja3dhcmRzIHNlYXJjaCwge0BsaW5rICNET05FfSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIGluZGV4IGluIHRoZSB0YXJnZXQgdGV4dCB3aGVyZSB0aGUgaXRlcmF0b3IgaXMgY3VycmVudGx5IAorICAgICAqICAgICAgICAgcG9zaXRpb25lZCBhdAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKSAKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgaWYgKGlzT3V0T2ZCb3VuZHMobV90ZXh0QmVnaW5PZmZzZXRfLCBtX3RleHRMaW1pdE9mZnNldF8sIHJlc3VsdCkpIHsKKyAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIERldGVybWluZXMgd2hldGhlciBjYW5vbmljYWwgbWF0Y2hlcyAob3B0aW9uIDEsIGFzIGRlc2NyaWJlZCBpbiB0aGUgCisgICAgICogY2xhc3MgZG9jdW1lbnRhdGlvbikgaXMgc2V0LgorICAgICAqIFNlZSBzZXRDYW5vbmljYWwoYm9vbGVhbikgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogQHNlZSAjc2V0Q2Fub25pY2FsCisgICAgICogQHJldHVybiB0cnVlIGlmIGNhbm9uaWNhbCBtYXRjaGVzIGlzIHNldCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNDYW5vbmljYWwoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lzQ2Fub25pY2FsTWF0Y2hfOworICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgc2V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFNldHMgdGhlIFJ1bGVCYXNlZENvbGxhdG9yIHRvIGJlIHVzZWQgZm9yIGxhbmd1YWdlLXNwZWNpZmljIHNlYXJjaGluZy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhpcyBtZXRob2QgY2F1c2VzIGludGVybmFsIGRhdGEgc3VjaCBhcyBCb3llci1Nb29yZSBzaGlmdCB0YWJsZXMKKyAgICAgKiB0byBiZSByZWNhbGN1bGF0ZWQsIGJ1dCB0aGUgaXRlcmF0b3IncyBwb3NpdGlvbiBpcyB1bmNoYW5nZWQuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBjb2xsYXRvciB0byB1c2UgZm9yIHRoaXMgU3RyaW5nU2VhcmNoCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gY29sbGF0b3IgaXMgbnVsbAorICAgICAqIEBzZWUgI2dldENvbGxhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29sbGF0b3IoUnVsZUJhc2VkQ29sbGF0b3IgY29sbGF0b3IpIAorICAgIHsKKyAgICAgICAgaWYgKGNvbGxhdG9yID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvbGxhdG9yIGNhbiBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIG1fY29sbGF0b3JfID0gY29sbGF0b3I7CisgICAgICAgIG1fY2VNYXNrXyA9IGdldE1hc2sobV9jb2xsYXRvcl8uZ2V0U3RyZW5ndGgoKSk7CisgICAgICAgIC8vIGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUsIHVjb2xfZ2V0QXR0cmlidXRlIHJldHVybnMgVUNPTF9ERUZBVUxUCisgICAgICAgIGluaXRpYWxpemUoKTsKKyAgICAgICAgbV9jb2xFSXRlcl8uc2V0Q29sbGF0b3IobV9jb2xsYXRvcl8pOworICAgICAgICBtX3V0aWxDb2xFSXRlcl8uc2V0Q29sbGF0b3IobV9jb2xsYXRvcl8pOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBTZXQgdGhlIHBhdHRlcm4gdG8gc2VhcmNoIGZvci4gIAorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIG1ldGhvZCBjYXVzZXMgaW50ZXJuYWwgZGF0YSBzdWNoIGFzIEJveWVyLU1vb3JlIHNoaWZ0IHRhYmxlcworICAgICAqIHRvIGJlIHJlY2FsY3VsYXRlZCwgYnV0IHRoZSBpdGVyYXRvcidzIHBvc2l0aW9uIGlzIHVuY2hhbmdlZC4KKyAgICAgKiA8L3A+CisgICAgICogQHBhcmFtIHBhdHRlcm4gZm9yIHNlYXJjaGluZworICAgICAqIEBzZWUgI2dldFBhdHRlcm4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gaWYgcGF0dGVybiBpcyBudWxsIG9yIG9mCisgICAgICogICAgICAgICAgICAgICBsZW5ndGggMAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIAorICAgIHsKKyAgICAgICAgaWYgKHBhdHRlcm4gPT0gbnVsbCB8fCBwYXR0ZXJuLmxlbmd0aCgpIDw9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICJQYXR0ZXJuIHRvIHNlYXJjaCBmb3IgY2FuIG5vdCBiZSBudWxsIG9yIG9mIGxlbmd0aCAwIik7CisgICAgICAgIH0KKyAgICAgICAgbV9wYXR0ZXJuXy50YXJnZXRUZXh0ID0gcGF0dGVybjsKKyAgICAgICAgaW5pdGlhbGl6ZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgICogU2V0IHRoZSB0YXJnZXQgdGV4dCB0byBiZSBzZWFyY2hlZC4gVGV4dCBpdGVyYXRpb24gd2lsbCBoZW5jZSBiZWdpbiBhdCAKKyAgICAgKiB0aGUgc3RhcnQgb2YgdGhlIHRleHQgc3RyaW5nLiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgaWYgeW91IHdhbnQgdG8gCisgICAgICogcmUtdXNlIGFuIGl0ZXJhdG9yIHRvIHNlYXJjaCB3aXRoaW4gYSBkaWZmZXJlbnQgYm9keSBvZiB0ZXh0LgorICAgICAqIEBwYXJhbSB0ZXh0IG5ldyB0ZXh0IGl0ZXJhdG9yIHRvIGxvb2sgZm9yIG1hdGNoLCAKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gd2hlbiB0ZXh0IGlzIG51bGwgb3IgaGFzCisgICAgICogICAgICAgICAgICAwIGxlbmd0aAorICAgICAqIEBzZWUgI2dldFRhcmdldAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRhcmdldChDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0KQorICAgIHsKKyAgICAgICAgc3VwZXIuc2V0VGFyZ2V0KHRleHQpOworICAgICAgICBtX3RleHRCZWdpbk9mZnNldF8gPSB0YXJnZXRUZXh0LmdldEJlZ2luSW5kZXgoKTsKKyAgICAgICAgbV90ZXh0TGltaXRPZmZzZXRfID0gdGFyZ2V0VGV4dC5nZXRFbmRJbmRleCgpOworICAgICAgICBtX2NvbEVJdGVyXy5zZXRUZXh0KHRhcmdldFRleHQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiBpbiB0aGUgdGFyZ2V0IHRleHQgd2hpY2ggdGhlIG5leHQgc2VhcmNoIHdpbGwgc3RhcnQgCisgICAgICogZnJvbSB0byB0aGUgYXJndW1lbnQuIFRoaXMgbWV0aG9kIGNsZWFycyBhbGwgcHJldmlvdXMgc3RhdGVzLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIG1ldGhvZCB0YWtlcyB0aGUgYXJndW1lbnQgcG9zaXRpb24gYW5kIHNldHMgdGhlIHBvc2l0aW9uIGluIHRoZSAKKyAgICAgKiB0YXJnZXQgdGV4dCBhY2NvcmRpbmdseSwgd2l0aG91dCBjaGVja2luZyBpZiBwb3NpdGlvbiBpcyBwb2ludGluZyB0byBhIAorICAgICAqIHZhbGlkIHN0YXJ0aW5nIHBvaW50IHRvIGJlZ2luIHNlYXJjaGluZy4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogU2VhcmNoIHBvc2l0aW9ucyB0aGF0IG1heSByZW5kZXIgaW5jb3JyZWN0IHJlc3VsdHMgYXJlIGhpZ2hsaWdodGVkIGluIAorICAgICAqIHRoZSBjbGFzcyBkb2N1bWVudGF0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gaW5kZXggdG8gc3RhcnQgbmV4dCBzZWFyY2ggZnJvbS4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIGFyZ3VtZW50IHBvc2l0aW9uIGlzIG91dAorICAgICAqICAgICAgICAgICAgb2YgdGhlIHRhcmdldCB0ZXh0IHJhbmdlLgorICAgICAqIEBzZWUgI2dldEluZGV4CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SW5kZXgoaW50IHBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgc3VwZXIuc2V0SW5kZXgocG9zaXRpb24pOworICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOworICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChwb3NpdGlvbik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFNldCB0aGUgY2Fub25pY2FsIG1hdGNoIG1vZGUuIFNlZSBjbGFzcyBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLgorICAgICAqIFRoZSBkZWZhdWx0IHNldHRpbmcgZm9yIHRoaXMgcHJvcGVydHkgaXMgZmFsc2UuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBhbGxvd0Nhbm9uaWNhbCBmbGFnIGluZGljYXRvciBpZiBjYW5vbmljYWwgbWF0Y2hlcyBhcmUgYWxsb3dlZAorICAgICAqIEBzZWUgI2lzQ2Fub25pY2FsCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2Fub25pY2FsKGJvb2xlYW4gYWxsb3dDYW5vbmljYWwpCisgICAgeworICAgICAgICBtX2lzQ2Fub25pY2FsTWF0Y2hfID0gYWxsb3dDYW5vbmljYWw7CisgICAgICAgIGlmIChtX2lzQ2Fub25pY2FsTWF0Y2hfID09IHRydWUpIHsKKyAgICAgICAgICAgIGlmIChtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5kZWxldGUoMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmRlbGV0ZSgwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5sZW5ndGgoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gcHVibGljIG1pc2NlbGxhbmVvdXMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKiAKKyAgICAgKiA8cD4KKyAgICAgKiBSZXNldHMgdGhlIHNlYXJjaCBpdGVyYXRpb24uIEFsbCBwcm9wZXJ0aWVzIHdpbGwgYmUgcmVzZXQgdG8gdGhlIAorICAgICAqIGRlZmF1bHQgdmFsdWUuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFNlYXJjaCB3aWxsIGJlZ2luIGF0IHRoZSBzdGFydCBvZiB0aGUgdGFyZ2V0IHRleHQgaWYgYSBmb3J3YXJkIGl0ZXJhdGlvbiAKKyAgICAgKiBpcyBpbml0aWF0ZWQgYmVmb3JlIGEgYmFja3dhcmRzIGl0ZXJhdGlvbi4gT3RoZXJ3aXNlIGlmIGEgCisgICAgICogYmFja3dhcmRzIGl0ZXJhdGlvbiBpcyBpbml0aWF0ZWQgYmVmb3JlIGEgZm9yd2FyZHMgaXRlcmF0aW9uLCB0aGUgc2VhcmNoIAorICAgICAqIHdpbGwgYmVnaW4gYXQgdGhlIGVuZCBvZiB0aGUgdGFyZ2V0IHRleHQuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIENhbm9uaWNhbCBtYXRjaCBvcHRpb24gd2lsbCBiZSByZXNldCB0byBmYWxzZSwgaWUgYW4gZXhhY3QgbWF0Y2guCisgICAgICogPC9wPgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIC8vIHJlc2V0IGlzIHNldHRpbmcgdGhlIGF0dHJpYnV0ZXMgdGhhdCBhcmUgYWxyZWFkeSBpbiBzdHJpbmcgc2VhcmNoLCAKKyAgICAgICAgLy8gaGVuY2UgYWxsIGF0dHJpYnV0ZXMgaW4gdGhlIGNvbGxhdG9yIHNob3VsZCBiZSByZXRyaWV2ZWQgd2l0aG91dCBhbnkgCisgICAgICAgIC8vIHByb2JsZW1zCisgICAgICAgIHN1cGVyLnJlc2V0KCk7CisgICAgICAgIG1faXNDYW5vbmljYWxNYXRjaF8gPSBmYWxzZTsKKyAgICAgICAgbV9jZU1hc2tfID0gZ2V0TWFzayhtX2NvbGxhdG9yXy5nZXRTdHJlbmd0aCgpKTsKKyAgICAgICAgLy8gaWYgc3RhdHVzIGlzIGEgZmFpbHVyZSwgdWNvbF9nZXRBdHRyaWJ1dGUgcmV0dXJucyBVQ09MX0RFRkFVTFQKKyAgICAgICAgaW5pdGlhbGl6ZSgpOworICAgICAgICBtX2NvbEVJdGVyXy5zZXRDb2xsYXRvcihtX2NvbGxhdG9yXyk7CisgICAgICAgIG1fY29sRUl0ZXJfLnJlc2V0KCk7CisgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRDb2xsYXRvcihtX2NvbGxhdG9yXyk7CisgICAgfQorCisgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBDb25jcmV0ZSBtZXRob2QgdG8gcHJvdmlkZSB0aGUgbWVjaGFuaXNtIAorICAgICAqIGZvciBmaW5kaW5nIHRoZSBuZXh0IDxiPmZvcndhcmRzPC9iPiBtYXRjaCBpbiB0aGUgdGFyZ2V0IHRleHQuCisgICAgICogU2VlIHN1cGVyIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIGl0cyB1c2UuCisgICAgICogPC9wPiAgCisgICAgICogQHBhcmFtIHN0YXJ0IGluZGV4IGluIHRoZSB0YXJnZXQgdGV4dCBhdCB3aGljaCB0aGUgZm9yd2FyZHMgc2VhcmNoIAorICAgICAqICAgICAgICBzaG91bGQgYmVnaW4uCisgICAgICogQHJldHVybiB0aGUgc3RhcnRpbmcgaW5kZXggb2YgdGhlIG5leHQgZm9yd2FyZHMgbWF0Y2ggaWYgZm91bmQsIERPTkUgCisgICAgICogICAgICAgICBvdGhlcndpc2UKKyAgICAgKiBAc2VlICNoYW5kbGVQcmV2aW91cyhpbnQpCisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlTmV4dChpbnQgc3RhcnQpCisgICAgeworICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyA9PSAwKSB7CisgICAgICAgICAgICBtYXRjaExlbmd0aCA9IDA7CisgICAgICAgICAgICBpZiAobV9tYXRjaGVkSW5kZXhfID09IERPTkUgJiYgc3RhcnQgPT0gbV90ZXh0QmVnaW5PZmZzZXRfKSB7CisgICAgICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1fbWF0Y2hlZEluZGV4XzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChzdGFydCk7CisgICAgICAgICAgICBjaGFyIGNoID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisgICAgICAgICAgICAvLyBjaCBjYW4gbmV2ZXIgYmUgZG9uZSwgaXQgaXMgaGFuZGxlZCBieSBuZXh0KCkKKyAgICAgICAgICAgIGNoYXIgY2gyID0gdGFyZ2V0VGV4dC5uZXh0KCk7CisgICAgICAgICAgICBpZiAoY2gyID09IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOyAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IHRhcmdldFRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUoY2gpICYmIFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gyKSkgeworICAgICAgICAgICAgICAgIHRhcmdldFRleHQubmV4dCgpOworICAgICAgICAgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IHRhcmdldFRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChtYXRjaExlbmd0aCA8PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gd2UgbXVzdCBoYXZlIHJldmVyc2VkIGRpcmVjdGlvbiBhZnRlciB3ZSByZWFjaGVkIHRoZSBzdGFydAorICAgICAgICAgICAgICAgIC8vIG9mIHRoZSB0YXJnZXQgdGV4dAorICAgICAgICAgICAgICAgIC8vIHNlZSBTZWFyY2hJdGVyYXRvciBuZXh0KCksIGl0IGNoZWNrcyB0aGUgYm91bmRzIGFuZCByZXR1cm5zCisgICAgICAgICAgICAgICAgLy8gaWYgaXQgZXhjZWVkcyB0aGUgcmFuZ2UuIEl0IGRvZXMgbm90IGFsbG93IHNldHRpbmcgb2YKKyAgICAgICAgICAgICAgICAvLyBtX21hdGNoZWRJbmRleAorICAgICAgICAgICAgICAgIGlmIChzdGFydCA9PSBtX3RleHRCZWdpbk9mZnNldF8pIHsKKyAgICAgICAgICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gRE9ORTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGZvciBib3VuZGFyeSBjaGVjayBwdXJwb3Nlcy4gdGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBuZXh0IG1hdGNoIHdpbGwgbm90IHByZWNlZWQgdGhlIGN1cnJlbnQgb2Zmc2V0CisgICAgICAgICAgICAgICAgICAgIC8vIG5vdGUgc2VhcmNoLT5tYXRjaGVkSW5kZXggd2lsbCBhbHdheXMgYmUgc2V0IHRvIHNvbWV0aGluZworICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgY29kZQorICAgICAgICAgICAgICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBzdGFydCAtIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgYmVsb3cKKyAgICAgICAgICAgIGlmIChtX2lzQ2Fub25pY2FsTWF0Y2hfKSB7CisgICAgICAgICAgICAgICAgLy8gY2FuJ3QgdXNlIGV4YWN0IGhlcmUgc2luY2UgZXh0cmEgYWNjZW50cyBhcmUgYWxsb3dlZC4KKyAgICAgICAgICAgICAgICBoYW5kbGVOZXh0Q2Fub25pY2FsKHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGhhbmRsZU5leHRFeGFjdChzdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fbWF0Y2hlZEluZGV4XyA9PSBET05FKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KG1fdGV4dExpbWl0T2Zmc2V0Xyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KG1fbWF0Y2hlZEluZGV4Xyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fbWF0Y2hlZEluZGV4XzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogQ29uY3JldGUgbWV0aG9kIHRvIHByb3ZpZGUgdGhlIG1lY2hhbmlzbSAKKyAgICAgKiBmb3IgZmluZGluZyB0aGUgbmV4dCA8Yj5iYWNrd2FyZHM8L2I+IG1hdGNoIGluIHRoZSB0YXJnZXQgdGV4dC4KKyAgICAgKiBTZWUgc3VwZXIgY2xhc3MgZG9jdW1lbnRhdGlvbiBmb3IgaXRzIHVzZS4KKyAgICAgKiA8L3A+ICAKKyAgICAgKiBAcGFyYW0gc3RhcnQgaW5kZXggaW4gdGhlIHRhcmdldCB0ZXh0IGF0IHdoaWNoIHRoZSBiYWNrd2FyZHMgc2VhcmNoIAorICAgICAqICAgICAgICBzaG91bGQgYmVnaW4uCisgICAgICogQHJldHVybiB0aGUgc3RhcnRpbmcgaW5kZXggb2YgdGhlIG5leHQgYmFja3dhcmRzIG1hdGNoIGlmIGZvdW5kLCBET05FIAorICAgICAqICAgICAgICAgb3RoZXJ3aXNlCisgICAgICogQHNlZSAjaGFuZGxlTmV4dChpbnQpCisgICAgICogQHNlZSAjRE9ORQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlUHJldmlvdXMoaW50IHN0YXJ0KQorICAgIHsKKyAgICAgICAgaWYgKG1fcGF0dGVybl8ubV9DRUxlbmd0aF8gPT0gMCkgeworICAgICAgICAgICAgbWF0Y2hMZW5ndGggPSAwOworICAgICAgICAgICAgLy8gc3RhcnQgY2FuIG5ldmVyIGJlIERPTkUgb3IgMCwgaXQgaXMgaGFuZGxlZCBpbiBwcmV2aW91cworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChzdGFydCk7CisgICAgICAgICAgICBjaGFyIGNoID0gdGFyZ2V0VGV4dC5wcmV2aW91cygpOworICAgICAgICAgICAgaWYgKGNoID09IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUpIHsKKyAgICAgICAgICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOworICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IHRhcmdldFRleHQuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChtYXRjaExlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gd2UgbXVzdCBoYXZlIHJldmVyc2VkIGRpcmVjdGlvbiBhZnRlciB3ZSByZWFjaGVkIHRoZSBlbmQKKyAgICAgICAgICAgICAgICAvLyBvZiB0aGUgdGFyZ2V0IHRleHQKKyAgICAgICAgICAgICAgICAvLyBzZWUgU2VhcmNoSXRlcmF0b3IgbmV4dCgpLCBpdCBjaGVja3MgdGhlIGJvdW5kcyBhbmQgcmV0dXJucworICAgICAgICAgICAgICAgIC8vIGlmIGl0IGV4Y2VlZHMgdGhlIHJhbmdlLiBJdCBkb2VzIG5vdCBhbGxvdyBzZXR0aW5nIG9mCisgICAgICAgICAgICAgICAgLy8gbV9tYXRjaGVkSW5kZXgKKyAgICAgICAgICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1faXNDYW5vbmljYWxNYXRjaF8pIHsKKyAgICAgICAgICAgICAgICAvLyBjYW4ndCB1c2UgZXhhY3QgaGVyZSBzaW5jZSBleHRyYSBhY2NlbnRzIGFyZSBhbGxvd2VkLgorICAgICAgICAgICAgICAgIGhhbmRsZVByZXZpb3VzQ2Fub25pY2FsKHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGhhbmRsZVByZXZpb3VzRXhhY3Qoc3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fbWF0Y2hlZEluZGV4XyA9PSBET05FKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KG1fdGV4dEJlZ2luT2Zmc2V0Xyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KG1fbWF0Y2hlZEluZGV4Xyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fbWF0Y2hlZEluZGV4XzsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIHN0YXRpYyBpbm5lciBjbGFzc2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBQYXR0ZXJuIAorICAgIHsKKyAgICAgICAgLy8gcHJvdGVjdGVkIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBQYXR0ZXJuIHN0cmluZworICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFN0cmluZyB0YXJnZXRUZXh0OworICAgICAgICAvKioKKyAgICAgICAgICogQXJyYXkgY29udGFpbmluZyB0aGUgY29sbGF0aW9uIGVsZW1lbnRzIG9mIHRhcmdldFRleHQKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBpbnQgbV9DRV9bXTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIE51bWJlciBvZiBjb2xsYXRpb24gZWxlbWVudHMgaW4gbV9DRV8KKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBpbnQgbV9DRUxlbmd0aF87IAorICAgICAgICAvKioKKyAgICAgICAgICogRmxhZyBpbmRpY2F0b3IgaWYgdGFyZ2V0VGV4dCBzdGFydHMgd2l0aCBhbiBhY2NlbnQKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIG1faGFzUHJlZml4QWNjZW50c187CisgICAgICAgIC8qKgorICAgICAgICAgKiBGbGFnIGluZGljYXRvciBpZiB0YXJnZXRUZXh0IGVuZHMgd2l0aCBhbiBhY2NlbnQKKyAgICAgICAgICovCisgICAgICAgIHByb3RlY3RlZCBib29sZWFuIG1faGFzU3VmZml4QWNjZW50c187CisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZhdWx0IG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIHNoaWZ0IGZvciBCb3llciBNb29yZQorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGludCBtX2RlZmF1bHRTaGlmdFNpemVfOworICAgICAgICAvKioKKyAgICAgICAgICogTnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gc2hpZnQgZm9yIEJveWVyIE1vb3JlLCBkZXBlbmRpbmcgb24gdGhlCisgICAgICAgICAqIHNvdXJjZSB0ZXh0IHRvIHNlYXJjaAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGNoYXIgbV9zaGlmdF9bXTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIE51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIHNoaWZ0IGJhY2t3YXJkcyBmb3IgQm95ZXIgTW9vcmUsIGRlcGVuZGluZyAKKyAgICAgICAgICogb24gdGhlIHNvdXJjZSB0ZXh0IHRvIHNlYXJjaAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIGNoYXIgbV9iYWNrU2hpZnRfW107CisgICAgICAgIAorICAgICAgICAvLyBwcm90ZWN0ZWQgY29uc3RydWN0b3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEVtcHR5IGNvbnN0cnVjdG9yIAorICAgICAgICAgKi8KKyAgICAgICAgcHJvdGVjdGVkIFBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIAorICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXRUZXh0ID0gcGF0dGVybjsKKyAgICAgICAgICAgIG1fQ0VfID0gbmV3IGludFtJTklUSUFMX0FSUkFZX1NJWkVfXTsgICAgCisgICAgICAgICAgICBtX0NFTGVuZ3RoXyA9IDA7CisgICAgICAgICAgICBtX2hhc1ByZWZpeEFjY2VudHNfID0gZmFsc2U7CisgICAgICAgICAgICBtX2hhc1N1ZmZpeEFjY2VudHNfID0gZmFsc2U7CisgICAgICAgICAgICBtX2RlZmF1bHRTaGlmdFNpemVfID0gMTsgICAgICAgIAorICAgICAgICAgICAgbV9zaGlmdF8gPSBuZXcgY2hhcltNQVhfVEFCTEVfU0laRV9dOworICAgICAgICAgICAgbV9iYWNrU2hpZnRfID0gbmV3IGNoYXJbTUFYX1RBQkxFX1NJWkVfXTsKKyAgICAgICAgfQorICAgIH07CisKKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIHRhcmdldCB0ZXh0IGJlZ2luIG9mZnNldC4gRWFjaCB0YXJnZXRUZXh0IGhhcyBhIHZhbGlkIGNvbnRpZ3VvdXMgcmVnaW9uIAorICAgICAqIHRvIGl0ZXJhdGUgYW5kIHRoaXMgZGF0YSBtZW1iZXIgaXMgdGhlIG9mZnNldCB0byB0aGUgZmlyc3Qgc3VjaAorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgcmVnaW9uLgorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdGV4dEJlZ2luT2Zmc2V0XzsKKyAgICAvKioKKyAgICAgKiB0YXJnZXQgdGV4dCBsaW1pdCBvZmZzZXQuIEVhY2ggdGFyZ2V0VGV4dCBoYXMgYSB2YWxpZCBjb250aWd1b3VzIHJlZ2lvbiAKKyAgICAgKiB0byBpdGVyYXRlIGFuZCB0aGlzIGRhdGEgbWVtYmVyIGlzIHRoZSBvZmZzZXQgdG8gMSBhZnRlciB0aGUgbGFzdCBzdWNoCisgICAgICogY2hhcmFjdGVyIGluIHRoZSByZWdpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV90ZXh0TGltaXRPZmZzZXRfOworICAgIC8qKgorICAgICAqIFVwb24gY29tcGxldGlvbiBvZiBhIHNlYXJjaCwgbV9tYXRjaEluZGV4XyB3aWxsIHN0b3JlIHN0YXJ0aW5nIG9mZnNldCBpbgorICAgICAqIG1fdGV4dCBmb3IgdGhlIG1hdGNoLiBUaGUgVmFsdWUgRE9ORSBpcyB0aGUgZGVmYXVsdCB2YWx1ZS4gCisgICAgICogSWYgd2UgYXJlIG5vdCBhdCB0aGUgc3RhcnQgb2YgdGhlIHRleHQgb3IgdGhlIGVuZCBvZiB0aGUgdGV4dCBhbmQgCisgICAgICogbV9tYXRjaGVkSW5kZXhfIGlzIERPTkUgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gZmluZCBhbnkgbW9yZSBtYXRjaGVzIGluIAorICAgICAqIHRoYXQgcGFydGljdWxhciBkaXJlY3Rpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX21hdGNoZWRJbmRleF87IAorICAgIC8qKgorICAgICAqIEN1cnJlbnQgcGF0dGVybiB0byBzZWFyY2ggZm9yCisgICAgICovCisgICAgcHJpdmF0ZSBQYXR0ZXJuIG1fcGF0dGVybl87CisgICAgLyoqCisgICAgICogQ29sbGF0b3Igd2hvc2UgcnVsZXMgYXJlIHVzZWQgdG8gcGVyZm9ybSB0aGUgc2VhcmNoCisgICAgICovCisgICAgcHJpdmF0ZSBSdWxlQmFzZWRDb2xsYXRvciBtX2NvbGxhdG9yXzsKKyAgICAvKiogCisgICAgICogVGhlIGNvbGxhdGlvbiBlbGVtZW50IGl0ZXJhdG9yIGZvciB0aGUgdGV4dCBzb3VyY2UuCisgICAgICovCisgICAgcHJpdmF0ZSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgbV9jb2xFSXRlcl87CisgICAgLyoqIAorICAgICAqIFV0aWxpdHkgY29sbGF0aW9uIGVsZW1lbnQsIHVzZWQgdGhyb3VnaG91dCBwcm9ncmFtIGZvciB0ZW1wb3JhcnkgCisgICAgICogaXRlcmF0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIG1fdXRpbENvbEVJdGVyXzsKKyAgICAvKioKKyAgICAgKiBUaGUgbWFzayB1c2VkIG9uIHRoZSBjb2xsYXRpb24gZWxlbWVudHMgdG8gcmV0cmlldmUgdGhlIHZhbGlkIHN0cmVuZ3RoCisgICAgICogd2VpZ2h0IAorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fY2VNYXNrXzsKKyAgICAvKioKKyAgICAgKiBCdWZmZXIgc3RvcmluZyBhY2NlbnRzIGR1cmluZyBhIGNhbm9uaWNhbCBzZWFyY2gKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfOworICAgIC8qKgorICAgICAqIEJ1ZmZlciBzdG9yaW5nIGFjY2VudHMgZHVyaW5nIGEgY2Fub25pY2FsIHNlYXJjaAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nQnVmZmVyIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c187CisgICAgLyoqCisgICAgICogRmxhZyB0byBpbmRpY2F0ZSBpZiBjYW5vbmljYWwgc2VhcmNoIGlzIHRvIGJlIGRvbmUuCisgICAgICogRS5nIGxvb2tpbmcgZm9yICJhXHUwMzAwIiBpbiAiYVx1MDMxOFx1MDMwMCIgd2lsbCB5aWVsZCB0aGUgbWF0Y2ggYXQgMC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gbV9pc0Nhbm9uaWNhbE1hdGNoXzsKKyAgICAvKioKKyAgICAgKiBTaXplIG9mIHRoZSBzaGlmdCB0YWJsZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1RBQkxFX1NJWkVfID0gMjU3OyAKKyAgICAvKioKKyAgICAgKiBJbml0aWFsIGFycmF5IHNpemUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSU5JVElBTF9BUlJBWV9TSVpFXyA9IDI1NjsKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IG1hc2sKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0VDT05EX0xBU1RfQllURV9TSElGVF8gPSA4OworICAgIC8qKgorICAgICAqIFV0aWxpdHkgbWFzaworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVNUX0JZVEVfTUFTS18gPSAweGZmOworICAgIC8qKgorICAgICAqIFV0aWxpdHkgYnVmZmVyIGZvciByZXR1cm4gdmFsdWVzIGFuZCB0ZW1wb3Jhcnkgc3RvcmFnZQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdXRpbEJ1ZmZlcl9bXSA9IG5ldyBpbnRbMl07CisKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogSGFzaCBhIGNvbGxhdGlvbiBlbGVtZW50IGZyb20gaXRzIGZ1bGwgc2l6ZSAoMzIgYml0cykgZG93biBpbnRvIGEKKyAgICAgKiB2YWx1ZSB0aGF0IGNhbiBiZSB1c2VkIGFzIGFuIGluZGV4IGludG8gdGhlIHNoaWZ0IHRhYmxlcy4gIFJpZ2h0CisgICAgICogbm93IHdlIGRvIGEgbW9kdWx1cyBieSB0aGUgc2l6ZSBvZiB0aGUgaGFzaCB0YWJsZS4KKyAgICAgKiBAcGFyYW0gY2UgY29sbGF0aW9uIGVsZW1lbnQKKyAgICAgKiBAcmV0dXJuIGNvbGxhcHNlZCB2ZXJzaW9uIG9mIHRoZSBjb2xsYXRpb24gZWxlbWVudAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBoYXNoKGludCBjZSkgCisgICAgeworICAgICAgICAvLyB0aGUgb2xkIHZhbHVlIFVDT0xfUFJJTUFSWU9SREVSKGNlKSAlIE1BWF9UQUJMRV9TSVpFXyBkb2VzIG5vdCB3b3JrCisgICAgICAgIC8vIHdlbGwgd2l0aCB0aGUgbmV3IGNvbGxhdGlvbiB3aGVyZSBtb3N0IG9mIHRoZSBsYXRpbiAxIGNoYXJhY3RlcnMKKyAgICAgICAgLy8gYXJlIG9mIHRoZSB2YWx1ZSB4eDAwMHh4eC4gdGhlaXIgaGFzaGVzIHdpbGwgbW9zdCBvZiB0aGUgdGltZSBiZSAwCisgICAgICAgIC8vIHRvIGJlIGRpc2N1c3NlZCBvbiB0aGUgaGFzaCBhbGdvLgorICAgICAgICByZXR1cm4gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLnByaW1hcnlPcmRlcihjZSkgJSBNQVhfVEFCTEVfU0laRV87CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGZjZCB2YWx1ZSBmb3IgYSBjaGFyYWN0ZXIgYXQgdGhlIGFyZ3VtZW50IGluZGV4LgorICAgICAqIFRoaXMgbWV0aG9kIHRha2VzIGludG8gYWNjb3VudHMgb2YgdGhlIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycy4KKyAgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGNoYW5nZXMgdGhlIG9mZnNldCBpbiB0aGUgY2hhcmFjdGVyIGl0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBzdHIgVVRGMTYgc3RyaW5nIHdoZXJlIGNoYXJhY3RlciBmb3IgZmNkIHJldHJpZXZhbCByZXNpZGVzCisgICAgICogQHBhcmFtIG9mZnNldCBwb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIHdob3NlIGZjZCBpcyB0byBiZSByZXRyaWV2ZWQKKyAgICAgKiBAcmV0dXJuIGZjZCB2YWx1ZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgZ2V0RkNEKENoYXJhY3Rlckl0ZXJhdG9yIHN0ciwgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIHN0ci5zZXRJbmRleChvZmZzZXQpOworICAgICAgICBjaGFyIGNoID0gc3RyLmN1cnJlbnQoKTsKKyAgICAgICAgY2hhciByZXN1bHQgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk7CisgICAgICAgIAorICAgICAgICBpZiAoKHJlc3VsdCAhPSAwKSAmJiAoc3RyLmdldEVuZEluZGV4KCkgIT0gb2Zmc2V0ICsgMSkgJiYgCisgICAgICAgICAgICBVVEYxNi5pc0xlYWRTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICBjaCA9IHN0ci5uZXh0KCk7CisgICAgICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNkZyb21TdXJyb2dhdGVQYWlyKHJlc3VsdCwgY2gpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGZjZCB2YWx1ZSBmb3IgYSBjaGFyYWN0ZXIgYXQgdGhlIGFyZ3VtZW50IGluZGV4LgorICAgICAqIFRoaXMgbWV0aG9kIHRha2VzIGludG8gYWNjb3VudHMgb2YgdGhlIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycy4KKyAgICAgKiBAcGFyYW0gc3RyIFVURjE2IHN0cmluZyB3aGVyZSBjaGFyYWN0ZXIgZm9yIGZjZCByZXRyaWV2YWwgcmVzaWRlcworICAgICAqIEBwYXJhbSBvZmZzZXQgcG9zaXRpb24gb2YgdGhlIGNoYXJhY3RlciB3aG9zZSBmY2QgaXMgdG8gYmUgcmV0cmlldmVkCisgICAgICogQHJldHVybiBmY2QgdmFsdWUKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIGdldEZDRChTdHJpbmcgc3RyLCBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgY2hhciBjaCA9IHN0ci5jaGFyQXQob2Zmc2V0KTsKKyAgICAgICAgY2hhciByZXN1bHQgPSBOb3JtYWxpemVySW1wbC5nZXRGQ0QxNihjaCk7CisgICAgICAgIAorICAgICAgICBpZiAoKHJlc3VsdCAhPSAwKSAmJiAoc3RyLmxlbmd0aCgpICE9IG9mZnNldCArIDEpICYmIAorICAgICAgICAgICAgVVRGMTYuaXNMZWFkU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgY2ggPSBzdHIuY2hhckF0KG9mZnNldCArIDEpOworICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gTm9ybWFsaXplckltcGwuZ2V0RkNEMTZGcm9tU3Vycm9nYXRlUGFpcihyZXN1bHQsIGNoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIEdldHRpbmcgdGhlIG1vZGlmaWVkIGNvbGxhdGlvbiBlbGVtZW50cyB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBjb2xsYXRpb24gCisgICAgKiBhdHRyaWJ1dGVzCisgICAgKiBAcGFyYW0gY2UgCisgICAgKiBAcmV0dXJuIHRoZSBtb2RpZmllZCBjb2xsYXRpb24gZWxlbWVudAorICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0Q0UoaW50IGNlKQorICAgIHsKKyAgICAgICAgLy8gbm90ZSBmb3IgdGVydGlhcnkgd2UgY2FuJ3QgdXNlIHRoZSBjb2xsYXRvci0+dGVydGlhcnlNYXNrLCB0aGF0CisgICAgICAgIC8vIGlzIGEgcHJlcHJvY2Vzc2VkIG1hc2sgdGhhdCB0YWtlcyBpbnRvIGFjY291bnQgY2FzZSBvcHRpb25zLiBzaW5jZQorICAgICAgICAvLyB3ZSBhcmUgb25seSBjb25jZXJuZWQgd2l0aCBleGFjdCBtYXRjaGVzLCB3ZSBkb24ndCBuZWVkIHRoYXQuCisgICAgICAgIGNlICY9IG1fY2VNYXNrXzsKKyAgICAgICAgCisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5pc0FsdGVybmF0ZUhhbmRsaW5nU2hpZnRlZCgpKSB7CisgICAgICAgICAgICAvLyBhbHRlcm5hdGUgaGFuZGxpbmcgaGVyZSwgc2luY2Ugb25seSB0aGUgMTYgbW9zdCBzaWduaWZpY2FudCAKKyAgICAgICAgICAgIC8vIGRpZ2l0cyBpcyBvbmx5IHVzZWQsIHdlIGNhbiBzYWZlbHkgZG8gYSBjb21wYXJlIHdpdGhvdXQgbWFza2luZworICAgICAgICAgICAgLy8gaWYgdGhlIGNlIGlzIGEgdmFyaWFibGUsIHdlIG1hc2sgYW5kIGdldCBvbmx5IHRoZSBwcmltYXJ5IHZhbHVlcworICAgICAgICAgICAgLy8gbm8gc2hpZnRpbmcgdG8gcXVhcnRlbmFyeSBpcyByZXF1aXJlZCBzaW5jZSBhbGwgcHJpbWFyeSB2YWx1ZXMKKyAgICAgICAgICAgIC8vIGxlc3MgdGhhbiB2YXJpYWJsZXRvcCB3aWxsIG5lZWQgdG8gYmUgbWFza2VkIG9mZiBhbnl3YXkuCisgICAgICAgICAgICBpZiAoKG1fY29sbGF0b3JfLm1fdmFyaWFibGVUb3BWYWx1ZV8gIDw8IDE2KSA+IGNlKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fY29sbGF0b3JfLmdldFN0cmVuZ3RoKCkgPT0gQ29sbGF0b3IuUVVBVEVSTkFSWSkgeworICAgICAgICAgICAgICAgICAgICBjZSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5wcmltYXJ5T3JkZXIoY2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsgCisgICAgICAgICAgICAgICAgICAgIGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcmV0dXJuIGNlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBcHBlbmRzIGEgaW50IHRvIGEgaW50IGFycmF5LCBpbmNyZWFzaW5nIHRoZSBzaXplIG9mIHRoZSBhcnJheSB3aGVuIAorICAgICAqIHdlIGFyZSBvdXQgb2Ygc3BhY2UuCisgICAgICogQHBhcmFtIG9mZnNldCBpbiBhcnJheSB0byBhcHBlbmQgdG8KKyAgICAgKiBAcGFyYW0gdmFsdWUgdG8gYXBwZW5kCisgICAgICogQHBhcmFtIGFycmF5IHRvIGFwcGVuZCB0bworICAgICAqIEByZXR1cm4gdGhlIGFycmF5IGFwcGVuZGVkIHRvLCB0aGlzIGNvdWxkIGJlIGEgbmV3IGFuZCBiaWdnZXIgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXSBhcHBlbmQoaW50IG9mZnNldCwgaW50IHZhbHVlLCBpbnQgYXJyYXlbXSkKKyAgICB7CisgICAgICAgIGlmIChvZmZzZXQgPj0gYXJyYXkubGVuZ3RoKSB7CisgICAgICAgICAgICBpbnQgdGVtcFtdID0gbmV3IGludFtvZmZzZXQgKyBJTklUSUFMX0FSUkFZX1NJWkVfXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYXJyYXksIDAsIHRlbXAsIDAsIGFycmF5Lmxlbmd0aCk7CisgICAgICAgICAgICBhcnJheSA9IHRlbXA7CisgICAgICAgIH0KKyAgICAgICAgYXJyYXlbb2Zmc2V0XSA9IHZhbHVlOworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEluaXRpYWxpemluZyB0aGUgY2UgdGFibGUgZm9yIGEgcGF0dGVybi4gU3RvcmVzIG5vbi1pZ25vcmFibGUgY29sbGF0aW9uIAorICAgICAqIGtleXMuIFRhYmxlIHNpemUgd2lsbCBiZSBlc3RpbWF0ZWQgYnkgdGhlIHNpemUgb2YgdGhlIHBhdHRlcm4gdGV4dC4gCisgICAgICogVGFibGUgZXhwYW5zaW9uIHdpbGwgYmUgcGVyZm9ybSBhcyB3ZSBnbyBhbG9uZy4gQWRkaW5nIDEgdG8gZW5zdXJlIHRoYXQgCisgICAgICogdGhlIHRhYmxlIHNpemUgZGVmaW5pdGVseSBpbmNyZWFzZXMuCisgICAgICogSW50ZXJuYWwgbWV0aG9kLCBzdGF0dXMgYXNzdW1lZCB0byBiZSBhIHN1Y2Nlc3MuCisgICAgICogQHJldHVybiB0b3RhbCBudW1iZXIgb2YgZXhwYW5zaW9ucyAKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBpbml0aWFsaXplUGF0dGVybkNFVGFibGUoKQorICAgIHsKKyAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQobV9wYXR0ZXJuXy50YXJnZXRUZXh0KTsKKyAgICAgICAgCisgICAgICAgIGludCBvZmZzZXQgPSAwOworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgaW50IGNlID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAKKyAgICAgICAgd2hpbGUgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgIGludCBuZXdjZSA9IGdldENFKGNlKTsKKyAgICAgICAgICAgIGlmIChuZXdjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgbV9wYXR0ZXJuXy5tX0NFXyA9IGFwcGVuZChvZmZzZXQsIG5ld2NlLCBtX3BhdHRlcm5fLm1fQ0VfKTsKKyAgICAgICAgICAgICAgICBvZmZzZXQgKys7ICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXN1bHQgKz0gbV91dGlsQ29sRUl0ZXJfLmdldE1heEV4cGFuc2lvbihjZSkgLSAxOworICAgICAgICAgICAgY2UgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOworICAgICAgICB9CisgICAgCisgICAgICAgIG1fcGF0dGVybl8ubV9DRV8gPSBhcHBlbmQob2Zmc2V0LCAwLCBtX3BhdHRlcm5fLm1fQ0VfKTsKKyAgICAgICAgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyA9IG9mZnNldDsKKyAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIHBhdHRlcm4gc3RydWN0LgorICAgICAqIEludGVybmFsIG1ldGhvZCwgc3RhdHVzIGFzc3VtZWQgdG8gYmUgc3VjY2Vzcy4KKyAgICAgKiBAcmV0dXJuIGV4cGFuc2lvbnNpemUgdGhlIHRvdGFsIGV4cGFuc2lvbiBzaXplIG9mIHRoZSBwYXR0ZXJuCisgICAgICovIAorICAgIHByaXZhdGUgZmluYWwgaW50IGluaXRpYWxpemVQYXR0ZXJuKCkKKyAgICB7CisgICAgICAgIG1fcGF0dGVybl8ubV9oYXNQcmVmaXhBY2NlbnRzXyA9IChnZXRGQ0QobV9wYXR0ZXJuXy50YXJnZXRUZXh0LCAwKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfKSAhPSAwOworICAgICAgICBtX3BhdHRlcm5fLm1faGFzU3VmZml4QWNjZW50c18gPSAoZ2V0RkNEKG1fcGF0dGVybl8udGFyZ2V0VGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXR0ZXJuXy50YXJnZXRUZXh0Lmxlbmd0aCgpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gMSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgTEFTVF9CWVRFX01BU0tfKSAhPSAwOworICAgICAgICAvLyBzaW5jZSBpbnRpYWxpemVQYXR0ZXJuIGlzIGFuIGludGVybmFsIG1ldGhvZCBzdGF0dXMgaXMgYSBzdWNjZXNzLgorICAgICAgICByZXR1cm4gaW5pdGlhbGl6ZVBhdHRlcm5DRVRhYmxlKCk7ICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEluaXRpYWxpemluZyBzaGlmdCB0YWJsZXMsIHdpdGggdGhlIGRlZmF1bHQgdmFsdWVzLgorICAgICAqIElmIGEgY29ycmVzcG9uZGluZyBkZWZhdWx0IHZhbHVlIGlzIDAsIHRoZSBzaGlmdCB0YWJsZSBpcyBub3Qgc2V0LgorICAgICAqIEBwYXJhbSBzaGlmdCB0YWJsZSBmb3IgZm9yd2FyZHMgc2hpZnQgCisgICAgICogQHBhcmFtIGJhY2tzaGlmdCB0YWJsZSBmb3IgYmFja3dhcmRzIHNoaWZ0CisgICAgICogQHBhcmFtIGNldGFibGUgdGFibGUgY29udGFpbmluZyBwYXR0ZXJuIGNlCisgICAgICogQHBhcmFtIGNlc2l6ZSBzaXplIG9mIHRoZSBwYXR0ZXJuIGNlcworICAgICAqIEBwYXJhbSBleHBhbnNpb25zaXplIHRvdGFsIHNpemUgb2YgdGhlIGV4cGFuc2lvbnMKKyAgICAgKiBAcGFyYW0gZGVmYXVsdGZvcndhcmQgdGhlIGRlZmF1bHQgZm9yd2FyZCB2YWx1ZQorICAgICAqIEBwYXJhbSBkZWZhdWx0YmFja3dhcmQgdGhlIGRlZmF1bHQgYmFja3dhcmQgdmFsdWUKKyAgICAgKi8KKyAgICAgcHJpdmF0ZSBmaW5hbCB2b2lkIHNldFNoaWZ0VGFibGUoY2hhciBzaGlmdFtdLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGJhY2tzaGlmdFtdLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2V0YWJsZVtdLCBpbnQgY2VzaXplLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBleHBhbnNpb25zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgZGVmYXVsdGZvcndhcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGRlZmF1bHRiYWNrd2FyZCkKKyAgICB7CisgICAgICAgIC8vIGVzdGltYXRlIHRoZSB2YWx1ZSB0byBzaGlmdC4gdG8gZG8gdGhhdCB3ZSBlc3RpbWF0ZSB0aGUgc21hbGxlc3QgCisgICAgICAgIC8vIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGdpdmUgdGhlIHJlbGV2YW50IGNlcywgaWUgYXBwcm94aW1hdGVseQorICAgICAgICAvLyB0aGUgbnVtYmVyIG9mIGNlcyBtaW51cyB0aGVpciBleHBhbnNpb24sIHNpbmNlIGV4cGFuc2lvbnMgY2FuIGNvbWUgCisgICAgICAgIC8vIGZyb20gYSBjaGFyYWN0ZXIuCisgICAgICAgIGZvciAoaW50IGNvdW50ID0gMDsgY291bnQgPCBNQVhfVEFCTEVfU0laRV87IGNvdW50ICsrKSB7CisgICAgICAgICAgICBzaGlmdFtjb3VudF0gPSBkZWZhdWx0Zm9yd2FyZDsKKyAgICAgICAgfQorICAgICAgICBjZXNpemUgLS07IC8vIGRvd24gdG8gdGhlIGxhc3QgaW5kZXgKKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IGNlc2l6ZTsgY291bnQgKyspIHsKKyAgICAgICAgICAgIC8vIG51bWJlciBvZiBjZXMgZnJvbSByaWdodCBvZiBhcnJheSB0byB0aGUgY291bnQKKyAgICAgICAgICAgIGludCB0ZW1wID0gZGVmYXVsdGZvcndhcmQgLSBjb3VudCAtIDE7CisgICAgICAgICAgICBzaGlmdFtoYXNoKGNldGFibGVbY291bnRdKV0gPSB0ZW1wID4gMSA/ICgoY2hhcil0ZW1wKSA6IDE7CisgICAgICAgIH0KKyAgICAgICAgc2hpZnRbaGFzaChjZXRhYmxlW2Nlc2l6ZV0pXSA9IDE7CisgICAgICAgIC8vIGZvciBpZ25vcmFibGVzIHdlIGp1c3Qgc2hpZnQgYnkgb25lLiBzZWUgdGVzdCBleGFtcGxlcy4KKyAgICAgICAgc2hpZnRbaGFzaCgwKV0gPSAxOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IE1BWF9UQUJMRV9TSVpFXzsgY291bnQgKyspIHsKKyAgICAgICAgICAgIGJhY2tzaGlmdFtjb3VudF0gPSBkZWZhdWx0YmFja3dhcmQ7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgY291bnQgPSBjZXNpemU7IGNvdW50ID4gMDsgY291bnQgLS0pIHsKKyAgICAgICAgICAgIC8vIHRoZSBvcmlnaW5hbCB2YWx1ZSBjb3VudCBkb2VzIG5vdCBzZWVtIHRvIHdvcmsKKyAgICAgICAgICAgIGJhY2tzaGlmdFtoYXNoKGNldGFibGVbY291bnRdKV0gPSAoY2hhcikoY291bnQgPiBleHBhbnNpb25zaXplID8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCAtIGV4cGFuc2lvbnNpemUgOiAxKTsKKyAgICAgICAgfQorICAgICAgICBiYWNrc2hpZnRbaGFzaChjZXRhYmxlWzBdKV0gPSAxOworICAgICAgICBiYWNrc2hpZnRbaGFzaCgwKV0gPSAxOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5CdWlsZGluZyBvZiB0aGUgcGF0dGVybiBjb2xsYXRpb24gZWxlbWVudCBsaXN0IGFuZCB0aGUgQm95ZXIgTW9vcmUgCisgICAgICogU3RyaW5nU2VhcmNoIHRhYmxlLjwvcD4KKyAgICAgKiA8cD5UaGUgY2Fub25pY2FsIG1hdGNoIHdpbGwgb25seSBiZSBwZXJmb3JtZWQgYWZ0ZXIgdGhlIGRlZmF1bHQgbWF0Y2ggCisgICAgICogZmFpbHMuPC9wPgorICAgICAqIDxwPkZvciBib3RoIGNhc2VzIHdlIG5lZWQgdG8gcmVtZW1iZXIgdGhlIHNpemUgb2YgdGhlIGNvbXBvc2VkIGFuZCAKKyAgICAgKiBkZWNvbXBvc2VkIHZlcnNpb25zIG9mIHRoZSBzdHJpbmcuIFNpbmNlIHRoZSBCb3llci1Nb29yZSBzaGlmdCAKKyAgICAgKiBjYWxjdWxhdGlvbnMgc2hpZnRzIGJ5IGEgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQgYW5kIHRyaWVzIHRvIAorICAgICAqIG1hdGNoIHRoZSBwYXR0ZXJuIGZyb20gdGhhdCBvZmZzZXQsIHRoZSBzaGlmdCB2YWx1ZSBjYW4gbm90IGJlIHRvbyBsYXJnZSAKKyAgICAgKiBpbiBjYXNlIHdlIG1pc3Mgc29tZSBjaGFyYWN0ZXJzLiBUbyBjaG9vc2UgYSByaWdodCBzaGlmdCBzaXplLCB3ZSAKKyAgICAgKiBlc3RpbWF0ZSB0aGUgTkZDIGZvcm0gb2YgdGhlIGFuZCB1c2UgaXRzIHNpemUgYXMgYSBzaGlmdCBndWlkZS4gVGhlIE5GQyAKKyAgICAgKiBmb3JtIHNob3VsZCBiZSB0aGUgc21hbGwgcG9zc2libGUgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBhdHRlcm4uIEFueXdheXMsIAorICAgICAqIHdlJ2xsIGVyciBvbiB0aGUgc21hbGxlciBzaGlmdCBzaXplLiBIZW5jZSB0aGUgY2FsY3VsYXRpb24gZm9yIAorICAgICAqIG1pbmxlbmd0aC4gQ2Fub25pY2FsIG1hdGNoIHdpbGwgYmUgcGVyZm9ybWVkIHNsaWdodGx5IGRpZmZlcmVudGx5LiBXZSdsbCAKKyAgICAgKiBzcGxpdCB0aGUgcGF0dGVybiBpbnRvIDMgcGFydHMsIHRoZSBwcmVmaXggYWNjZW50cyAoUEEpLCB0aGUgbWlkZGxlIAorICAgICAqIHN0cmluZyBib3VuZGVkIGJ5IHRoZSBmaXJzdCBhbmQgbGFzdCBiYXNlIGNoYXJhY3RlciAoTVMpLCB0aGUgZW5kaW5nIAorICAgICAqIGFjY2VudHMgKEVBKS4gTWF0Y2hlcyB3aWxsIGJlIGRvbmUgb24gTVMgZmlyc3QsIGFuZCBvbmx5IHdoZW4gd2UgbWF0Y2ggCisgICAgICogTVMgdGhlbiBzb21lIHByb2Nlc3Npbmcgd2lsbCBiZSByZXF1aXJlZCBmb3IgdGhlIHByZWZpeCBhbmQgZW5kIGFjY2VudHMgCisgICAgICogaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgbWF0Y2ggUEEgYW5kIEVBLiBIZW5jZSB0aGUgZGVmYXVsdCBzaGlmdCAKKyAgICAgKiB2YWx1ZXMgZm9yIHRoZSBjYW5vbmljYWwgbWF0Y2ggd2lsbCB0YWtlIHRoZSBzaXplIG9mIGVpdGhlciBlbmQncyBhY2NlbnQgCisgICAgICogaW50byBjb25zaWRlcmF0aW9uLiBGb3J3YXJkcyBzZWFyY2ggd2lsbCB0YWtlIHRoZSBlbmQgYWNjZW50cyBpbnRvIAorICAgICAqIGNvbnNpZGVyYXRpb24gZm9yIHRoZSBkZWZhdWx0IHNoaWZ0IHZhbHVlcyBhbmQgdGhlIGJhY2t3YXJkcyBzZWFyY2ggd2lsbCAKKyAgICAgKiB0YWtlIHRoZSBwcmVmaXggYWNjZW50cyBpbnRvIGNvbnNpZGVyYXRpb24uPC9wPgorICAgICAqIDxwPklmIHBhdHRlcm4gaGFzIG5vIG5vbi1pZ25vcmFibGUgY2UsIHdlIHJldHVybiBhIGlsbGVnYWwgYXJndW1lbnQgCisgICAgICogZXJyb3IuPC9wPgorICAgICAqLyAKKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgaW5pdGlhbGl6ZSgpCisgICAgeworICAgICAgICBpbnQgZXhwYW5kbGVuZ3RoICA9IGluaXRpYWxpemVQYXR0ZXJuKCk7ICAgCisgICAgICAgIGlmIChtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfID4gMCkgeworICAgICAgICAgICAgY2hhciBtaW5sZW5ndGggPSAoY2hhcikobV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyA+IGV4cGFuZGxlbmd0aCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfIC0gZXhwYW5kbGVuZ3RoIDogMSk7CisgICAgICAgICAgICBtX3BhdHRlcm5fLm1fZGVmYXVsdFNoaWZ0U2l6ZV8gPSBtaW5sZW5ndGg7CisgICAgICAgICAgICBzZXRTaGlmdFRhYmxlKG1fcGF0dGVybl8ubV9zaGlmdF8sIG1fcGF0dGVybl8ubV9iYWNrU2hpZnRfLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXR0ZXJuXy5tX0NFXywgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZGxlbmd0aCwgbWlubGVuZ3RoLCBtaW5sZW5ndGgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9wYXR0ZXJuXy5tX2RlZmF1bHRTaGlmdFNpemVfID0gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgc2VhcmNoIHRleHQgYm91bmRlZCBieSB0aGUgb2Zmc2V0IHN0YXJ0IGFuZCBlbmQgaXMgCisgICAgICogb25lIG9yIG1vcmUgd2hvbGUgdW5pdHMgb2YgdGV4dCBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBicmVha2l0ZXJhdG9yIGluIAorICAgICAqIFN0cmluZ1NlYXJjaC4KKyAgICAgKiBAcGFyYW0gc3RhcnQgdGFyZ2V0IHRleHQgc3RhcnQgb2Zmc2V0CisgICAgICogQHBhcmFtIGVuZCB0YXJnZXQgdGV4dCBlbmQgb2Zmc2V0CisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGlzQnJlYWtVbml0KGludCBzdGFydCwgaW50IGVuZCkgCisgICAgeworICAgICAgICBpZiAoYnJlYWtJdGVyYXRvciAhPSBudWxsKSB7CisgICAgICAgICAgICBpbnQgc3RhcnRpbmRleCA9IGJyZWFrSXRlcmF0b3IuZmlyc3QoKTsKKyAgICAgICAgICAgIGludCBlbmRpbmRleCAgID0gYnJlYWtJdGVyYXRvci5sYXN0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIG91dC1vZi1yYW5nZSBpbmRleGVzIGFyZSBuZXZlciBib3VuZGFyeSBwb3NpdGlvbnMKKyAgICAgICAgICAgIGlmIChzdGFydCA8IHN0YXJ0aW5kZXggfHwgc3RhcnQgPiBlbmRpbmRleCB8fCBlbmQgPCBzdGFydGluZGV4IAorICAgICAgICAgICAgICAgIHx8IGVuZCA+IGVuZGluZGV4KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB3ZSBjYW4gdXNlIGZvbGxvd2luZygpIG9uIHRoZSBwb3NpdGlvbiBiZWZvcmUgdGhlIAorICAgICAgICAgICAgLy8gc3BlY2lmaWVkIG9uZSBhbmQgcmV0dXJuIHRydWUgb2YgdGhlIHBvc2l0aW9uIHdlIGdldCBiYWNrIGlzIHRoZSAKKyAgICAgICAgICAgIC8vIG9uZSB0aGUgdXNlciBzcGVjaWZpZWQKKyAgICAgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gKHN0YXJ0ID09IHN0YXJ0aW5kZXggCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBicmVha0l0ZXJhdG9yLmZvbGxvd2luZyhzdGFydCAtIDEpID09IHN0YXJ0KSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGVuZCA9PSBlbmRpbmRleCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBicmVha0l0ZXJhdG9yLmZvbGxvd2luZyhlbmQgLSAxKSA9PSBlbmQpOworICAgICAgICAgICAgaWYgKHJlc3VsdCkgeworICAgICAgICAgICAgICAgIC8vIGl0ZXJhdGVzIHRoZSBpbmRpdmlkdWFsIGNlcworICAgICAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRUZXh0KAorICAgICAgICAgICAgICAgICAgICBuZXcgQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKHRhcmdldFRleHQpLCBzdGFydCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8IG1fcGF0dGVybl8ubV9DRUxlbmd0aF87CisgICAgICAgICAgICAgICAgICAgICBjb3VudCArKykgeworICAgICAgICAgICAgICAgICAgICBpbnQgY2UgPSBnZXRDRShtX3V0aWxDb2xFSXRlcl8ubmV4dCgpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNlICE9IG1fcGF0dGVybl8ubV9DRV9bY291bnRdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IG5leHRjZSA9IG1fdXRpbENvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKG1fdXRpbENvbEVJdGVyXy5nZXRPZmZzZXQoKSA9PSBlbmQgCisgICAgICAgICAgICAgICAgICAgICAgICYmIGdldENFKG5leHRjZSkgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBuZXh0Y2UgPSBtX3V0aWxDb2xFSXRlcl8ubmV4dCgpOyAgICAgICAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG5leHRjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorICAgICAgICAgICAgICAgICAgICAmJiBtX3V0aWxDb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgPT0gZW5kKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGV4dHJhIGNvbGxhdGlvbiBlbGVtZW50cyBhdCB0aGUgZW5kIG9mIHRoZSBtYXRjaAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0dGluZyB0aGUgbmV4dCBiYXNlIGNoYXJhY3RlciBvZmZzZXQgaWYgY3VycmVudCBvZmZzZXQgaXMgYW4gYWNjZW50LCAKKyAgICAgKiBvciB0aGUgY3VycmVudCBvZmZzZXQgaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGNvbnRhaW5zIGEgYmFzZSBjaGFyYWN0ZXIuIAorICAgICAqIGFjY2VudHMgdGhlIGZvbGxvd2luZyBiYXNlIGNoYXJhY3RlciB3aWxsIGJlIHJldHVybmVkCisgICAgICogQHBhcmFtIHRleHQgc3RyaW5nCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgY3VycmVudCBvZmZzZXQKKyAgICAgKiBAcGFyYW0gdGV4dGxlbmd0aCBsZW5ndGggb2YgdGV4dCBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGJhc2UgY2hhcmFjdGVyIG9yIHRoZSBjdXJyZW50IG9mZnNldAorICAgICAqICAgICAgICAgaWYgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGlzIGNvbnRhaW5zIGEgYmFzZSBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBpbnQgZ2V0TmV4dEJhc2VPZmZzZXQoQ2hhcmFjdGVySXRlcmF0b3IgdGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0ZXh0b2Zmc2V0KQorICAgIHsKKyAgICAgICAgaWYgKHRleHRvZmZzZXQgPCB0ZXh0LmdldEVuZEluZGV4KCkpIHsKKyAgICAgICAgICAgIHdoaWxlICh0ZXh0LmdldEluZGV4KCkgPCB0ZXh0LmdldEVuZEluZGV4KCkpIHsgCisgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IHRleHRvZmZzZXQ7CisgICAgICAgICAgICAgICAgaWYgKChnZXRGQ0QodGV4dCwgdGV4dG9mZnNldCArKykgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPj4gU0VDT05EX0xBU1RfQllURV9TSElGVF8pID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRleHQuZ2V0RW5kSW5kZXgoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGV4dG9mZnNldDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmV4dCBiYXNlIGNoYXJhY3RlciBvZmZzZXQgZGVwZW5kaW5nIG9uIHRoZSBzdHJpbmcgc2VhcmNoIAorICAgICAqIHBhdHRlcm4gZGF0YQorICAgICAqIEBwYXJhbSB0ZXh0b2Zmc2V0IG9uZSBvZmZzZXQgYXdheSBmcm9tIHRoZSBsYXN0IGNoYXJhY3RlcgorICAgICAqICAgICAgICAgICAgICAgICAgIHRvIHNlYXJjaCBmb3IuCisgICAgICogQHJldHVybiBzdGFydCBpbmRleCBvZiB0aGUgbmV4dCBiYXNlIGNoYXJhY3RlciBvciB0aGUgY3VycmVudCBvZmZzZXQKKyAgICAgKiAgICAgICAgIGlmIHRoZSBjdXJyZW50IGNoYXJhY3RlciBpcyBjb250YWlucyBhIGJhc2UgY2hhcmFjdGVyLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldE5leHRCYXNlT2Zmc2V0KGludCB0ZXh0b2Zmc2V0KQorICAgIHsKKyAgICAgICAgaWYgKG1fcGF0dGVybl8ubV9oYXNTdWZmaXhBY2NlbnRzXyAKKyAgICAgICAgICAgICYmIHRleHRvZmZzZXQgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgodGV4dG9mZnNldCk7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnByZXZpb3VzKCk7CisgICAgICAgICAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCB0YXJnZXRUZXh0LmdldEluZGV4KCkpICYgTEFTVF9CWVRFX01BU0tfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldE5leHRCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHRleHRvZmZzZXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0ZXh0b2Zmc2V0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTaGlmdGluZyB0aGUgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3IgcG9zaXRpb24gZm9yd2FyZCB0byBwcmVwYXJlIGZvcgorICAgICAqIGEgZm9sbG93aW5nIG1hdGNoLiBJZiB0aGUgbGFzdCBjaGFyYWN0ZXIgaXMgYSB1bnNhZmUgY2hhcmFjdGVyLCB3ZSdsbCAKKyAgICAgKiBvbmx5IHNoaWZ0IGJ5IDEgdG8gY2FwdHVyZSBjb250cmFjdGlvbnMsIG5vcm1hbGl6YXRpb24gZXRjLgorICAgICAqIEludGVybmFsIG1ldGhvZCwgc3RhdHVzIGFzc3VtZWQgdG8gYmUgc3VjY2Vzcy4KKyAgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBzdGFydCB0ZXh0IHBvc2l0aW9uIHRvIGRvIHNlYXJjaAorICAgICAqIEBwYXJhbSBjZSB0aGUgdGV4dCBjZSB3aGljaCBmYWlsZWQgdGhlIG1hdGNoLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuY2VpbmRleCBpbmRleCBvZiB0aGUgY2Ugd2l0aGluIHRoZSBwYXR0ZXJuIGNlIGJ1ZmZlciB3aGljaAorICAgICAqICAgICAgICBmYWlsZWQgdGhlIG1hdGNoCisgICAgICogQHJldHVybiBmaW5hbCBvZmZzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzaGlmdEZvcndhcmQoaW50IHRleHRvZmZzZXQsIGludCBjZSwgaW50IHBhdHRlcm5jZWluZGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgeworICAgICAgICBpZiAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgaW50IHNoaWZ0ID0gbV9wYXR0ZXJuXy5tX3NoaWZ0X1toYXNoKGNlKV07CisgICAgICAgICAgICAvLyB0aGlzIGlzIHRvIGFkanVzdCBmb3IgY2hhcmFjdGVycyBpbiB0aGUgbWlkZGxlIG9mIHRoZSAKKyAgICAgICAgICAgIC8vIHN1YnN0cmluZyBmb3IgbWF0Y2hpbmcgdGhhdCBmYWlsZWQuCisgICAgICAgICAgICBpbnQgYWRqdXN0ID0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyAtIHBhdHRlcm5jZWluZGV4OworICAgICAgICAgICAgaWYgKGFkanVzdCA+IDEgJiYgc2hpZnQgPj0gYWRqdXN0KSB7CisgICAgICAgICAgICAgICAgc2hpZnQgLT0gYWRqdXN0IC0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRleHRvZmZzZXQgKz0gc2hpZnQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ZXh0b2Zmc2V0ICs9IG1fcGF0dGVybl8ubV9kZWZhdWx0U2hpZnRTaXplXzsKKyAgICAgICAgfQorICAgICAgICAgCisgICAgICAgIHRleHRvZmZzZXQgPSBnZXROZXh0QmFzZU9mZnNldCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgLy8gY2hlY2sgZm9yIHVuc2FmZSBjaGFyYWN0ZXJzCisgICAgICAgIC8vICogaWYgaXQgaXMgdGhlIHN0YXJ0IG9yIG1pZGRsZSBvZiBhIGNvbnRyYWN0aW9uOiB0byBiZSBkb25lIGFmdGVyIAorICAgICAgICAvLyAgIGEgaW5pdGlhbCBtYXRjaCBpcyBmb3VuZAorICAgICAgICAvLyAqIHRoYWkgb3IgbGFvIGJhc2UgY29uc29uYW50IGNoYXJhY3Rlcjogc2ltaWxhciB0byBjb250cmFjdGlvbgorICAgICAgICAvLyAqIGhpZ2ggc3Vycm9nYXRlIGNoYXJhY3Rlcjogc2ltaWxhciB0byBjb250cmFjdGlvbgorICAgICAgICAvLyAqIG5leHQgY2hhcmFjdGVyIGlzIGEgYWNjZW50OiBzaGlmdCB0byB0aGUgbmV4dCBiYXNlIGNoYXJhY3RlcgorICAgICAgICByZXR1cm4gdGV4dG9mZnNldDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIHRoZSBuZXh0IHNhZmUgcG9pbnQgaW4gdGV4dC4KKyAgICAgKiBpZS4gbm90IHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbiwgc3dhcHBhYmxlIGNoYXJhY3RlcnMgb3IgCisgICAgICogc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzLgorICAgICAqIEBwYXJhbSB0ZXh0b2Zmc2V0IG9mZnNldCBpbiBzdHJpbmcKKyAgICAgKiBAcGFyYW0gZW5kIG9mZnNldCBpbiBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIG9mZnNldCB0byB0aGUgbmV4dCBzYWZlIGNoYXJhY3RlcgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldE5leHRTYWZlT2Zmc2V0KGludCB0ZXh0b2Zmc2V0LCBpbnQgZW5kKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IHRleHRvZmZzZXQ7IC8vIGZpcnN0IGNvbnRyYWN0aW9uIGNoYXJhY3RlcgorICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHJlc3VsdCk7CisgICAgICAgIHdoaWxlIChyZXN1bHQgIT0gZW5kICYmIAorICAgICAgICAgICAgbV9jb2xsYXRvcl8uaXNVbnNhZmUodGFyZ2V0VGV4dC5jdXJyZW50KCkpKSB7CisgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsgCisgICAgfQorICAgIAorICAgIC8qKiAKKyAgICAgKiBUaGlzIGNoZWNrcyBmb3IgYWNjZW50cyBpbiB0aGUgcG90ZW50aWFsIG1hdGNoIHN0YXJ0ZWQgd2l0aCBhIGNvbXBvc2l0ZSAKKyAgICAgKiBjaGFyYWN0ZXIuCisgICAgICogVGhpcyBpcyByZWFsbHkgcGFpbmZ1bC4uLiB3ZSBoYXZlIHRvIGNoZWNrIHRoYXQgY29tcG9zaXRlIGNoYXJhY3RlciBkbyAKKyAgICAgKiBub3QgaGF2ZSBhbnkgZXh0cmEgYWNjZW50cy4gV2UgaGF2ZSB0byBub3JtYWxpemUgdGhlIHBvdGVudGlhbCBtYXRjaCBhbmQgCisgICAgICogZmluZCB0aGUgaW1tZWRpYXRlIGRlY29tcG9zZWQgY2hhcmFjdGVyIGJlZm9yZSB0aGUgbWF0Y2guCisgICAgICogVGhlIGZpcnN0IGNvbXBvc2l0ZSBjaGFyYWN0ZXIgd291bGQgaGF2ZSBiZWVuIHRha2VuIGNhcmUgb2YgYnkgdGhlIGZjZCAKKyAgICAgKiBjaGVja3MgaW4gY2hlY2tGb3J3YXJkRXhhY3RNYXRjaC4KKyAgICAgKiBUaGlzIGlzIHRoZSBzbG93IHBhdGggYWZ0ZXIgdGhlIGZjZCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGFuZCAKKyAgICAgKiB0aGUgbGFzdCBjaGFyYWN0ZXIgaGFzIGJlZW4gY2hlY2tlZCBieSBjaGVja0ZvcndhcmRFeGFjdE1hdGNoIGFuZCB3ZSAKKyAgICAgKiBkZXRlcm1pbmUgdGhhdCB0aGUgcG90ZW50aWFsIG1hdGNoIGhhcyBleHRyYSBub24taWdub3JhYmxlIHByZWNlZGluZworICAgICAqIGNlcy4KKyAgICAgKiBFLmcuIGxvb2tpbmcgZm9yIFx1MDMwMSBhY3V0ZSBpbiBcdTAxRkEgQSByaW5nIGFib3ZlIGFuZCBhY3V0ZSwgCisgICAgICogY2hlY2tFeHRyYU1hdGNoQWNjZW50IHNob3VsZCBmYWlsIHNpbmNlIHRoZXJlIGlzIGEgbWlkZGxlIHJpbmcgaW4gCisgICAgICogXHUwMUZBIE5vdGUgaGVyZSB0aGF0IGFjY2VudHMgY2hlY2tpbmcgYXJlIHNsb3cgYW5kIGNhdXRpb25lZCBpbiB0aGUgQVBJIAorICAgICAqIGRvY3MuCisgICAgICogSW50ZXJuYWwgbWV0aG9kLCBzdGF0dXMgYXNzdW1lZCB0byBiZSBhIHN1Y2Nlc3MsIGNhbGxlciBzaG91bGQgY2hlY2sgCisgICAgICogc3RhdHVzIGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kCisgICAgICogQHBhcmFtIHN0YXJ0IGluZGV4IG9mIHRoZSBwb3RlbnRpYWwgdW5mcmllbmRseSBjb21wb3NpdGUgY2hhcmFjdGVyCisgICAgICogQHBhcmFtIGVuZCBpbmRleCBvZiB0aGUgcG90ZW50aWFsIHVuZnJpZW5kbHkgY29tcG9zaXRlIGNoYXJhY3RlcgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBub24taWdub3JhYmxlIGFjY2VudHMgYmVmb3JlIGF0IHRoZSBiZWdpbm5pbmcKKyAgICAgKiAgICAgICAgICAgICAgb2YgdGhlIG1hdGNoLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrRXh0cmFNYXRjaEFjY2VudHMoaW50IHN0YXJ0LCBpbnQgZW5kKQorICAgIHsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgaWYgKG1fcGF0dGVybl8ubV9oYXNQcmVmaXhBY2NlbnRzXykgeworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChzdGFydCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChVVEYxNi5pc0xlYWRTdXJyb2dhdGUodGFyZ2V0VGV4dC5uZXh0KCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRhcmdldFRleHQubmV4dCgpKSkgeworICAgICAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gd2UgYXJlIG9ubHkgY29uY2VybmVkIHdpdGggdGhlIGZpcnN0IGNvbXBvc2l0ZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgIFN0cmluZyBzdHIgPSBnZXRTdHJpbmcodGFyZ2V0VGV4dCwgc3RhcnQsIGVuZCk7CisgICAgICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKHN0ciwgTm9ybWFsaXplci5ORkQsMCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gTm9ybWFsaXplci5OTykgeworICAgICAgICAgICAgICAgIGludCBzYWZlb2Zmc2V0ID0gZ2V0TmV4dFNhZmVPZmZzZXQoc3RhcnQsIGVuZCk7CisgICAgICAgICAgICAgICAgaWYgKHNhZmVvZmZzZXQgIT0gZW5kKSB7CisgICAgICAgICAgICAgICAgICAgIHNhZmVvZmZzZXQgKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyBkZWNvbXAgPSBOb3JtYWxpemVyLmRlY29tcG9zZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyLnN1YnN0cmluZygwLCBzYWZlb2Zmc2V0IC0gc3RhcnQpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQoZGVjb21wKTsKKyAgICAgICAgICAgICAgICBpbnQgZmlyc3RjZSA9IG1fcGF0dGVybl8ubV9DRV9bMF07CisgICAgICAgICAgICAgICAgYm9vbGVhbiBpZ25vcmFibGUgPSB0cnVlOworICAgICAgICAgICAgICAgIGludCBjZSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEU7CisgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9IDA7CisgICAgICAgICAgICAgICAgd2hpbGUgKGNlICE9IGZpcnN0Y2UpIHsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gbV91dGlsQ29sRUl0ZXJfLmdldE9mZnNldCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2UgIT0gZmlyc3RjZSAKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yYWJsZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNlID0gbV91dGlsQ29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KG9mZnNldCk7IC8vIGJhY2sgdXAgMSB0byB0aGUgCisgICAgICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnByZXZpb3VzKCk7ICAgICAgICAgICAgIC8vIHJpZ2h0IG9mZnNldAorICAgICAgICAgICAgICAgIG9mZnNldCA9IG1fdXRpbENvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAhaWdub3JhYmxlICYmIChVQ2hhcmFjdGVyLmdldENvbWJpbmluZ0NsYXNzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5jaGFyQXQoZGVjb21wLCBvZmZzZXQpKSAhPSAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIFVzZWQgYnkgZXhhY3QgbWF0Y2hlcywgY2hlY2tzIGlmIHRoZXJlIGFyZSBhY2NlbnRzIGJlZm9yZSB0aGUgbWF0Y2guIAorICAgICogVGhpcyBpcyByZWFsbHkgcGFpbmZ1bC4uLiB3ZSBoYXZlIHRvIGNoZWNrIHRoYXQgY29tcG9zaXRlIGNoYXJhY3RlcnMgYXQKKyAgICAqIHRoZSBzdGFydCBvZiB0aGUgbWF0Y2hlcyBoYXZlIHRvIG5vdCBoYXZlIGFueSBleHRyYSBhY2NlbnRzLiAKKyAgICAqIFdlIGNoZWNrIHRoZSBGQ0Qgb2YgdGhlIGNoYXJhY3RlciBmaXJzdCwgaWYgaXQgc3RhcnRzIHdpdGggYW4gYWNjZW50IGFuZCAKKyAgICAqIHRoZSBmaXJzdCBwYXR0ZXJuIGNlIGRvZXMgbm90IG1hdGNoIHRoZSBmaXJzdCBjZSBvZiB0aGUgY2hhcmFjdGVyLCB3ZSAKKyAgICAqIGJhaWwuCisgICAgKiBPdGhlcndpc2Ugd2UgdHJ5IG5vcm1hbGl6aW5nIHRoZSBmaXJzdCBjb21wb3NpdGUgCisgICAgKiBjaGFyYWN0ZXIgYW5kIGZpbmQgdGhlIGltbWVkaWF0ZSBkZWNvbXBvc2VkIGNoYXJhY3RlciBiZWZvcmUgdGhlIG1hdGNoIHRvIAorICAgICogc2VlIGlmIGl0IGlzIGFuIG5vbi1pZ25vcmFibGUgYWNjZW50LgorICAgICogTm93IG5vcm1hbGl6aW5nIHRoZSBmaXJzdCBjb21wb3NpdGUgY2hhcmFjdGVyIGlzIGVub3VnaCBiZWNhdXNlIHdlIGVuc3VyZSAKKyAgICAqIHRoYXQgd2hlbiB0aGUgbWF0Y2ggaXMgcGFzc2VkIGluIGhlcmUgd2l0aCBleHRyYSBiZWdpbm5pbmcgY2VzLCB0aGUgCisgICAgKiBmaXJzdCBvciBsYXN0IGNlIHRoYXQgbWF0Y2ggaGFzIHRvIG9jY3VyIHdpdGhpbiB0aGUgZmlyc3QgY2hhcmFjdGVyLgorICAgICogRS5nLiBsb29raW5nIGZvciBcdTAzMDEgYWN1dGUgaW4gXHUwMUZBIEEgcmluZyBhYm92ZSBhbmQgYWN1dGUsIAorICAgICogY2hlY2tFeHRyYU1hdGNoQWNjZW50IHNob3VsZCBmYWlsIHNpbmNlIHRoZXJlIGlzIGEgbWlkZGxlIHJpbmcgaW4gXHUwMUZBCisgICAgKiBOb3RlIGhlcmUgdGhhdCBhY2NlbnRzIGNoZWNraW5nIGFyZSBzbG93IGFuZCBjYXV0aW9uZWQgaW4gdGhlIEFQSSBkb2NzLgorICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCAKKyAgICAqIEBwYXJhbSBlbmQgb2Zmc2V0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgYXJlIGFjY2VudHMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIG1hdGNoLCAKKyAgICAqICAgICAgICAgZmFsc2Ugb3RoZXJ3aXNlCisgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gaGFzQWNjZW50c0JlZm9yZU1hdGNoKGludCBzdGFydCwgaW50IGVuZCkgCisgICAgeworICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICAvLyB3ZSBoYXZlIGJlZW4gaXRlcmF0aW5nIGZvcndhcmRzIHByZXZpb3VzbHkKKyAgICAgICAgICAgIGJvb2xlYW4gaWdub3JhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGludCBmaXJzdGNlID0gbV9wYXR0ZXJuXy5tX0NFX1swXTsKKyAgICAgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHN0YXJ0KTsKKyAgICAgICAgICAgIGludCBjZSAgPSBnZXRDRShtX2NvbEVJdGVyXy5uZXh0KCkpOworICAgICAgICAgICAgd2hpbGUgKGNlICE9IGZpcnN0Y2UpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBpZ25vcmFibGUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2UgPSBnZXRDRShtX2NvbEVJdGVyXy5uZXh0KCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFpZ25vcmFibGUgJiYgbV9jb2xFSXRlcl8uaXNJbkJ1ZmZlcigpKSB7CisgICAgICAgICAgICAgICAgLy8gd2l0aGluIG5vcm1hbGl6YXRpb24gYnVmZmVyLCBkaXNjb250aWd1b3VzIGhhbmRsZWQgaGVyZQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gd2l0aGluIHRleHQKKyAgICAgICAgICAgIGJvb2xlYW4gYWNjZW50ID0gKGdldEZDRCh0YXJnZXRUZXh0LCBzdGFydCkgPj4gU0VDT05EX0xBU1RfQllURV9TSElGVF8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IDA7IAorICAgICAgICAgICAgaWYgKCFhY2NlbnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2hlY2tFeHRyYU1hdGNoQWNjZW50cyhzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghaWdub3JhYmxlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RhcnQgPiBtX3RleHRCZWdpbk9mZnNldF8pIHsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgdGFyZ2V0VGV4dC5nZXRJbmRleCgpKSAmIExBU1RfQllURV9NQVNLXykgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgY2UgPSBtX2NvbEVJdGVyXy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiAKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBVc2VkIGJ5IGV4YWN0IG1hdGNoZXMsIGNoZWNrcyBpZiB0aGVyZSBhcmUgYWNjZW50cyBib3VuZGluZyB0aGUgbWF0Y2guCisgICAgICogTm90ZSB0aGlzIGlzIHRoZSBpbml0aWFsIGJvdW5kYXJ5IGNoZWNrLiBJZiB0aGUgcG90ZW50aWFsIG1hdGNoCisgICAgICogc3RhcnRzIG9yIGVuZHMgd2l0aCBjb21wb3NpdGUgY2hhcmFjdGVycywgdGhlIGFjY2VudHMgaW4gdGhvc2UKKyAgICAgKiBjaGFyYWN0ZXJzIHdpbGwgYmUgZGV0ZXJtaW5lZCBsYXRlci4KKyAgICAgKiBOb3QgZG9pbmcgYmFja3dhcmRzIGl0ZXJhdGlvbiBoZXJlLCBzaW5jZSBkaXNjb250aWd1b3MgY29udHJhY3Rpb24gZm9yIAorICAgICAqIGJhY2t3YXJkcyBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvciwgdXNlIHVwIHRvbyBtYW55IGNoYXJhY3RlcnMuCisgICAgICogRS5nLiBsb29raW5nIGZvciBcdTAzMEEgcmluZyBpbiBcdTAxRkEgQSByaW5nIGFib3ZlIGFuZCBhY3V0ZSwgCisgICAgICogc2hvdWxkIGZhaWwgc2luY2UgdGhlcmUgaXMgYSBhY3V0ZSBhdCB0aGUgZW5kIG9mIFx1MDFGQQorICAgICAqIE5vdGUgaGVyZSB0aGF0IGFjY2VudHMgY2hlY2tpbmcgYXJlIHNsb3cgYW5kIGNhdXRpb25lZCBpbiB0aGUgQVBJIGRvY3MuCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiBtYXRjaAorICAgICAqIEBwYXJhbSBlbmQgZW5kIG9mZnNldCBvZiB0aGUgbWF0Y2gKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgYXJlIGFjY2VudHMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIG1hdGNoLCAKKyAgICAgKiAgICAgICAgIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBoYXNBY2NlbnRzQWZ0ZXJNYXRjaChpbnQgc3RhcnQsIGludCBlbmQpIAorICAgIHsKKyAgICAgICAgaWYgKG1fcGF0dGVybl8ubV9oYXNTdWZmaXhBY2NlbnRzXykgeworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChlbmQpOworICAgICAgICAgICAgaWYgKGVuZCA+IG1fdGV4dEJlZ2luT2Zmc2V0XyAKKyAgICAgICAgICAgICAgICAmJiBVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0VGV4dC5nZXRJbmRleCgpID4gbV90ZXh0QmVnaW5PZmZzZXRfICYmCisgICAgICAgICAgICAgICAgICAgICFVVEYxNi5pc0xlYWRTdXJyb2dhdGUodGFyZ2V0VGV4dC5wcmV2aW91cygpKSkgeworICAgICAgICAgICAgICAgICAgICB0YXJnZXRUZXh0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCB0YXJnZXRUZXh0LmdldEluZGV4KCkpICYgTEFTVF9CWVRFX01BU0tfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW50IGZpcnN0Y2UgID0gbV9wYXR0ZXJuXy5tX0NFX1swXTsKKyAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChzdGFydCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSkgIT0gZmlyc3RjZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbnQgY291bnQgPSAxOworICAgICAgICAgICAgICAgIHdoaWxlIChjb3VudCA8IG1fcGF0dGVybl8ubV9DRUxlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSkgCisgICAgICAgICAgICAgICAgICAgICAgICA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW50IGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ubmV4dCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBjZSAhPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSA8PSBlbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgoZ2V0RkNEKHRhcmdldFRleHQsIGVuZCkgPj4gU0VDT05EX0xBU1RfQllURV9TSElGVF8pIAorICAgICAgICAgICAgICAgICAgICAgICAgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAqIENoZWNrcyBpZiB0aGUgb2Zmc2V0IHJ1bnMgb3V0IG9mIHRoZSB0ZXh0IHN0cmluZyByYW5nZQorICAgICogQHBhcmFtIHRleHRzdGFydCBvZmZzZXQgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgcmFuZ2UKKyAgICAqIEBwYXJhbSB0ZXh0bGltaXQgbGltaXQgb2Zmc2V0IG9mIHRoZSB0ZXh0IHN0cmluZyByYW5nZQorICAgICogQHBhcmFtIG9mZnNldCB0byB0ZXN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgb2Zmc2V0IGlzIG91dCBvZiBib3VuZHMsIGZhbHNlIG90aGVyd2lzZQorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc091dE9mQm91bmRzKGludCB0ZXh0c3RhcnQsIGludCB0ZXh0bGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIHJldHVybiBvZmZzZXQgPCB0ZXh0c3RhcnQgfHwgb2Zmc2V0ID4gdGV4dGxpbWl0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgZm9yIGlkZW50aWNhbCBtYXRjaAorICAgICAqIEBwYXJhbSBzdHJzcmNoIHN0cmluZyBzZWFyY2ggZGF0YQorICAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgcG9zc2libGUgbWF0Y2gKKyAgICAgKiBAcGFyYW0gZW5kIG9mZnNldCBvZiBwb3NzaWJsZSBtYXRjaAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBpZGVudGljYWwgbWF0Y2ggaXMgZm91bmQKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2hlY2tJZGVudGljYWwoaW50IHN0YXJ0LCBpbnQgZW5kKSAKKyAgICB7CisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5nZXRTdHJlbmd0aCgpICE9IENvbGxhdG9yLklERU5USUNBTCkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nIHRleHRzdHIgPSBnZXRTdHJpbmcodGFyZ2V0VGV4dCwgc3RhcnQsIGVuZCAtIHN0YXJ0KTsKKyAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayh0ZXh0c3RyLCBOb3JtYWxpemVyLk5GRCwwKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBOb3JtYWxpemVyLk5PKSB7CisgICAgICAgICAgICB0ZXh0c3RyID0gTm9ybWFsaXplci5kZWNvbXBvc2UodGV4dHN0ciwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyBwYXR0ZXJuc3RyID0gbV9wYXR0ZXJuXy50YXJnZXRUZXh0OworICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKHBhdHRlcm5zdHIsIE5vcm1hbGl6ZXIuTkZELDApIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IE5vcm1hbGl6ZXIuTk8pIHsKKyAgICAgICAgICAgIHBhdHRlcm5zdHIgPSBOb3JtYWxpemVyLmRlY29tcG9zZShwYXR0ZXJuc3RyLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRleHRzdHIuZXF1YWxzKHBhdHRlcm5zdHIpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgdG8gc2VlIGlmIHRoZSBtYXRjaCBpcyByZXBlYXRlZAorICAgICAqIEBwYXJhbSBzdGFydCBuZXcgbWF0Y2ggc3RhcnQgaW5kZXgKKyAgICAgKiBAcGFyYW0gbGltaXQgbmV3IG1hdGNoIGxpbWl0IGluZGV4CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0aGUgbWF0Y2ggaXMgcmVwZWF0ZWQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja1JlcGVhdGVkTWF0Y2goaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgeworICAgICAgICBpZiAobV9tYXRjaGVkSW5kZXhfID09IERPTkUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpbnQgZW5kID0gbGltaXQgLSAxOyAvLyBsYXN0IGNoYXJhY3RlciBpbiB0aGUgbWF0Y2gKKyAgICAgICAgaW50IGxhc3RtYXRjaGVuZCA9IG1fbWF0Y2hlZEluZGV4XyArIG1hdGNoTGVuZ3RoIC0gMTsgCisgICAgICAgIGlmICghaXNPdmVybGFwcGluZygpKSB7CisgICAgICAgICAgICByZXR1cm4gKHN0YXJ0ID49IG1fbWF0Y2hlZEluZGV4XyAmJiBzdGFydCA8PSBsYXN0bWF0Y2hlbmQpIAorICAgICAgICAgICAgICAgICAgICB8fCAoZW5kID49IG1fbWF0Y2hlZEluZGV4XyAmJiBlbmQgPD0gbGFzdG1hdGNoZW5kKQorICAgICAgICAgICAgICAgICAgICB8fCAoc3RhcnQgPD0gbV9tYXRjaGVkSW5kZXhfICYmIGVuZCA+PSBsYXN0bWF0Y2hlbmQpOworICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGFydCA8PSBtX21hdGNoZWRJbmRleF8gJiYgZW5kID49IGxhc3RtYXRjaGVuZDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2hlY2tzIG1hdGNoIGZvciBjb250cmFjdGlvbi4gCisgICAgICogSWYgdGhlIG1hdGNoIGVuZHMgd2l0aCBhIHBhcnRpYWwgY29udHJhY3Rpb24gd2UgZmFpbC4KKyAgICAgKiBJZiB0aGUgbWF0Y2ggc3RhcnRzIHRvbyBmYXIgb2ZmIChiZWNhdXNlIG9mIGJhY2t3YXJkcyBpdGVyYXRpb24pIHdlIHRyeSAKKyAgICAgKiB0byBjaGlwIG9mZiB0aGUgZXh0cmEgY2hhcmFjdGVycyBkZXBlbmRpbmcgb24gd2hldGhlciBhIGJyZWFraXRlcmF0b3IgCisgICAgICogaGFzIGJlZW4gdXNlZC4KKyAgICAgKiBUZW1wb3JhcnkgdXRpbGl0eSBidWZmZXIgdXNlZCB0byByZXR1cm4gbW9kaWZpZWQgc3RhcnQgYW5kIGVuZC4KKyAgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIHBvdGVudGlhbCBtYXRjaCwgdG8gYmUgbW9kaWZpZWQgaWYgbmVjZXNzYXJ5CisgICAgICogQHBhcmFtIGVuZCBvZmZzZXQgb2YgcG90ZW50aWFsIG1hdGNoLCB0byBiZSBtb2RpZmllZCBpZiBuZWNlc3NhcnkKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgbWF0Y2ggcGFzc2VzIHRoZSBjb250cmFjdGlvbiB0ZXN0LCBmYWxzZSBvdGhlcndpc2UuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrTmV4dEV4YWN0Q29udHJhY3Rpb25NYXRjaChpbnQgc3RhcnQsIGludCBlbmQpIAorICAgIHsKKyAgICAgICAgLy8gVGhpcyBwYXJ0IGNoZWNrcyBpZiBlaXRoZXIgZW5kcyBvZiB0aGUgbWF0Y2ggY29udGFpbnMgcG90ZW50aWFsIAorICAgICAgICAvLyBjb250cmFjdGlvbi4gSWYgc28gd2UnbGwgaGF2ZSB0byBpdGVyYXRlIHRocm91Z2ggdGhlbQorICAgICAgICBjaGFyIGVuZGNoYXIgPSAwOworICAgICAgICBpZiAoZW5kIDwgbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KGVuZCk7CisgICAgICAgICAgICBlbmRjaGFyID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBwb3N0c3RhcnRjaGFyID0gMDsKKyAgICAgICAgaWYgKHN0YXJ0ICsgMSA8IG1fdGV4dExpbWl0T2Zmc2V0XykgeworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChzdGFydCArIDEpOworICAgICAgICAgICAgcG9zdHN0YXJ0Y2hhciA9IHRhcmdldFRleHQuY3VycmVudCgpOworICAgICAgICB9CisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5pc1Vuc2FmZShlbmRjaGFyKSAKKyAgICAgICAgICAgIHx8IG1fY29sbGF0b3JfLmlzVW5zYWZlKHBvc3RzdGFydGNoYXIpKSB7CisgICAgICAgICAgICAvLyBleHBhbnNpb24gcHJlZml4LCB3aGF0J3MgbGVmdCB0byBpdGVyYXRlCisgICAgICAgICAgICBpbnQgYnVmZmVyZWRDRU9mZnNldCA9IG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfOworICAgICAgICAgICAgYm9vbGVhbiBoYXNCdWZmZXJlZENFID0gYnVmZmVyZWRDRU9mZnNldCA+IDA7CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChzdGFydCk7CisgICAgICAgICAgICBpbnQgdGVtcCA9IHN0YXJ0OworICAgICAgICAgICAgd2hpbGUgKGJ1ZmZlcmVkQ0VPZmZzZXQgPiAwKSB7CisgICAgICAgICAgICAgICAgLy8gZ2V0dGluZyByaWQgb2YgdGhlIHJlZHVuZGFudCBjZSwgY2F1c2VkIGJ5IHNldE9mZnNldC4KKyAgICAgICAgICAgICAgICAvLyBzaW5jZSBiYWNrd2FyZCBjb250cmFjdGlvbi9leHBhbnNpb24gbWF5IGhhdmUgZXh0cmEgY2VzIGlmIAorICAgICAgICAgICAgICAgIC8vIHdlIGFyZSBpbiB0aGUgbm9ybWFsaXphdGlvbiBidWZmZXIsIGhhc0FjY2VudHNCZWZvcmVNYXRjaCAKKyAgICAgICAgICAgICAgICAvLyB3b3VsZCBoYXZlIHRha2VuIGNhcmUgb2YgaXQuCisgICAgICAgICAgICAgICAgLy8gRS5nLiB0aGUgY2hhcmFjdGVyIFx1MDFGQSB3aWxsIGhhdmUgYW4gZXhwYW5zaW9uIG9mIDMsIGJ1dCAKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgb25seSBsb29raW5nIGZvciBhY3V0ZSBhbmQgcmluZyBcdTAzMEEgYW5kIFx1MDMwMSwgCisgICAgICAgICAgICAgICAgLy8gd2UnbGwgaGF2ZSB0byBza2lwIHRoZSBmaXJzdCBjZSBpbiB0aGUgZXhwYW5zaW9uIGJ1ZmZlci4KKyAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKG1fY29sRUl0ZXJfLmdldE9mZnNldCgpICE9IHRlbXApIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICB0ZW1wICA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWZmZXJlZENFT2Zmc2V0IC0tOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChjb3VudCA8IG1fcGF0dGVybl8ubV9DRUxlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICBpbnQgY2UgPSBnZXRDRShtX2NvbEVJdGVyXy5uZXh0KCkpOworICAgICAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaGFzQnVmZmVyZWRDRSAmJiBjb3VudCA9PSAwIAorICAgICAgICAgICAgICAgICAgICAmJiBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSAhPSB0ZW1wKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gdGVtcDsKKyAgICAgICAgICAgICAgICAgICAgdGVtcCAgID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjZSAhPSBtX3BhdHRlcm5fLm1fQ0VfW2NvdW50XSkgeworICAgICAgICAgICAgICAgICAgICBlbmQgKys7CisgICAgICAgICAgICAgICAgICAgIGVuZCA9IGdldE5leHRCYXNlT2Zmc2V0KGVuZCk7ICAKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzFdID0gZW5kOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gc3RhcnQ7CisgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMV0gPSBlbmQ7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgYW5kIHNldHMgdGhlIG1hdGNoIGluZm9ybWF0aW9uIGlmIGZvdW5kLgorICAgICAqIENoZWNrcyAKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiB0aGUgcG90ZW50aWFsIG1hdGNoIGRvZXMgbm90IHJlcGVhdCB0aGUgcHJldmlvdXMgbWF0Y2gKKyAgICAgKiA8bGk+IGJvdW5kYXJpZXMgYXJlIGNvcnJlY3QKKyAgICAgKiA8bGk+IGV4YWN0IG1hdGNoZXMgaGFzIG5vIGV4dHJhIGFjY2VudHMKKyAgICAgKiA8bGk+IGlkZW50aWNhbCBtYXRjaGVzYgorICAgICAqIDxsaT4gcG90ZW50aWFsIG1hdGNoIGRvZXMgbm90IGVuZCBpbiB0aGUgbWlkZGxlIG9mIGEgY29udHJhY3Rpb24KKyAgICAgKiA8L3VsPgorICAgICAqIE90aGVyd2lzZSB0aGUgb2Zmc2V0IHdpbGwgYmUgc2hpZnRlZCB0byB0aGUgbmV4dCBjaGFyYWN0ZXIuCisgICAgICogVGhlIHJlc3VsdCBtX21hdGNoSW5kZXhfIGFuZCBtX21hdGNoTGVuZ3RoXyB3aWxsIGJlIHNldCB0byB0aGUgdHJ1bmNhdGVkCisgICAgICogbW9yZSBmaXR0aW5nIHJlc3VsdCB2YWx1ZS4KKyAgICAgKiBVc2VzIHRoZSB0ZW1wb3JhcnkgdXRpbGl0eSBidWZmZXIgZm9yIHN0b3JpbmcgdGhlIG1vZGlmaWVkIHRleHRvZmZzZXQuCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgb2Zmc2V0IGluIHRoZSBjb2xsYXRpb24gZWxlbWVudCB0ZXh0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbWF0Y2ggaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBjaGVja05leHRFeGFjdE1hdGNoKGludCB0ZXh0b2Zmc2V0KQorICAgIHsKKyAgICAgICAgaW50IHN0YXJ0ID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7ICAgICAgICAKKyAgICAgICAgaWYgKCFjaGVja05leHRFeGFjdENvbnRyYWN0aW9uTWF0Y2goc3RhcnQsIHRleHRvZmZzZXQpKSB7CisgICAgICAgICAgICAvLyByZXR1cm5zIHRoZSBtb2RpZmllZCB0ZXh0b2Zmc2V0CisgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gbV91dGlsQnVmZmVyX1sxXTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzdGFydCA9IG1fdXRpbEJ1ZmZlcl9bMF07CisgICAgICAgIHRleHRvZmZzZXQgPSBtX3V0aWxCdWZmZXJfWzFdOworICAgICAgICAvLyB0aGlzIHRvdGFsbHkgbWF0Y2hlcywgaG93ZXZlciB3ZSBuZWVkIHRvIGNoZWNrIGlmIGl0IGlzIHJlcGVhdGluZworICAgICAgICBpZiAoIWlzQnJlYWtVbml0KHN0YXJ0LCB0ZXh0b2Zmc2V0KSAKKyAgICAgICAgICAgIHx8IGNoZWNrUmVwZWF0ZWRNYXRjaChzdGFydCwgdGV4dG9mZnNldCkgCisgICAgICAgICAgICB8fCBoYXNBY2NlbnRzQmVmb3JlTWF0Y2goc3RhcnQsIHRleHRvZmZzZXQpIAorICAgICAgICAgICAgfHwgIWNoZWNrSWRlbnRpY2FsKHN0YXJ0LCB0ZXh0b2Zmc2V0KSAKKyAgICAgICAgICAgIHx8IGhhc0FjY2VudHNBZnRlck1hdGNoKHN0YXJ0LCB0ZXh0b2Zmc2V0KSkgeworICAgICAgICAgICAgdGV4dG9mZnNldCArKzsKKyAgICAgICAgICAgIHRleHRvZmZzZXQgPSBnZXROZXh0QmFzZU9mZnNldCh0ZXh0b2Zmc2V0KTsgIAorICAgICAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHRleHRvZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAvLyB0b3RhbGx5IG1hdGNoLCB3ZSB3aWxsIGdldCByaWQgb2YgdGhlIGVuZGluZyBpZ25vcmFibGVzLgorICAgICAgICBtX21hdGNoZWRJbmRleF8gID0gc3RhcnQ7CisgICAgICAgIG1hdGNoTGVuZ3RoID0gdGV4dG9mZnNldCAtIHN0YXJ0OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBHZXR0aW5nIHRoZSBwcmV2aW91cyBiYXNlIGNoYXJhY3RlciBvZmZzZXQsIG9yIHRoZSBjdXJyZW50IG9mZnNldCBpZiB0aGUgCisgICAgKiBjdXJyZW50IGNoYXJhY3RlciBpcyBhIGJhc2UgY2hhcmFjdGVyCisgICAgKiBAcGFyYW0gdGV4dCB0aGUgc291cmNlIHRleHQgdG8gd29yayBvbgorICAgICogQHBhcmFtIHRleHRvZmZzZXQgb25lIG9mZnNldCBhZnRlciB0aGUgY3VycmVudCBjaGFyYWN0ZXIKKyAgICAqIEByZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgbmV4dCBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIGJhc2UgY2hhcmFjdGVyIG9yIHRoZSAKKyAgICAqICAgICAgICAgICAgIGZpcnN0IGNvbXBvc2VkIGNoYXJhY3RlciB3aXRoIGFjY2VudHMKKyAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGdldFByZXZpb3VzQmFzZU9mZnNldChDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRleHRvZmZzZXQpCisgICAgeworICAgICAgICBpZiAodGV4dG9mZnNldCA+IG1fdGV4dEJlZ2luT2Zmc2V0XykgeworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gdGV4dG9mZnNldDsKKyAgICAgICAgICAgICAgICB0ZXh0LnNldEluZGV4KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodGV4dC5wcmV2aW91cygpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGV4dC5nZXRJbmRleCgpICE9IHRleHQuZ2V0QmVnaW5JbmRleCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAhVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHRleHQucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRleHRvZmZzZXQgPSB0ZXh0LmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgY2hhciBmY2QgPSBnZXRGQ0QodGV4dCwgdGV4dG9mZnNldCk7CisgICAgICAgICAgICAgICAgaWYgKChmY2QgPj4gU0VDT05EX0xBU1RfQllURV9TSElGVF8pID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChmY2QgJiBMQVNUX0JZVEVfTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0b2Zmc2V0OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0ZXh0b2Zmc2V0ID09IG1fdGV4dEJlZ2luT2Zmc2V0XykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV90ZXh0QmVnaW5PZmZzZXRfOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGV4dG9mZnNldDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBHZXR0aW5nIHRoZSBpbmRleGVzIG9mIHRoZSBhY2NlbnRzIHRoYXQgYXJlIG5vdCBibG9ja2VkIGluIHRoZSBhcmd1bWVudAorICAgICogYWNjZW50IGFycmF5CisgICAgKiBAcGFyYW0gYWNjZW50cyBhY2NlbnRzIGluIG5mZC4KKyAgICAqIEBwYXJhbSBhY2NlbnRzaW5kZXggYXJyYXkgdG8gc3RvcmUgdGhlIGluZGV4ZXMgb2YgYWNjZW50cyBpbiBhY2NlbnRzIHRoYXQgCisgICAgKiAgICAgICAgIGFyZSBub3QgYmxvY2tlZAorICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHBvcHVsYXRlZCBhY2NlbnRzaW5kZXgKKyAgICAqLworICAgIHByaXZhdGUgaW50IGdldFVuYmxvY2tlZEFjY2VudEluZGV4KFN0cmluZ0J1ZmZlciBhY2NlbnRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWNjZW50c2luZGV4W10pCisgICAgeworICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICBpbnQgbGVuZ3RoID0gYWNjZW50cy5sZW5ndGgoKTsKKyAgICAgICAgaW50IGNjbGFzcyA9IDA7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHsKKyAgICAgICAgICAgIGludCBjb2RlcG9pbnQgPSBVVEYxNi5jaGFyQXQoYWNjZW50cywgaW5kZXgpOworICAgICAgICAgICAgaW50IHRlbXBjbGFzcyA9IFVDaGFyYWN0ZXIuZ2V0Q29tYmluaW5nQ2xhc3MoY29kZXBvaW50KTsKKyAgICAgICAgICAgIGlmICh0ZW1wY2xhc3MgIT0gY2NsYXNzKSB7CisgICAgICAgICAgICAgICAgY2NsYXNzID0gdGVtcGNsYXNzOworICAgICAgICAgICAgICAgIGFjY2VudHNpbmRleFtyZXN1bHRdID0gaW5kZXg7CisgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXIuaXNTdXBwbGVtZW50YXJ5KGNvZGVwb2ludCkpIHsKKyAgICAgICAgICAgICAgICBpbmRleCArPSAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW5kZXggKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYWNjZW50c2luZGV4W3Jlc3VsdF0gPSBsZW5ndGg7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kcyAzIFN0cmluZ0J1ZmZlci9DaGFyYWN0ZXJJdGVyYXRvciB0b2dldGhlciBpbnRvIGEgZGVzdGluYXRpb24gCisgICAgICogc3RyaW5nIGJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gc291cmNlMSBzdHJpbmcgYnVmZmVyCisgICAgICogQHBhcmFtIHNvdXJjZTIgY2hhcmFjdGVyIGl0ZXJhdG9yCisgICAgICogQHBhcmFtIHN0YXJ0MiBzdGFydCBvZiB0aGUgY2hhcmFjdGVyIGl0ZXJhdG9yIHRvIG1lcmdlCisgICAgICogQHBhcmFtIGVuZDIgZW5kIG9mIHRoZSBjaGFyYWN0ZXIgaXRlcmF0b3IgdG8gbWVyZ2UKKyAgICAgKiBAcGFyYW0gc291cmNlMyBzdHJpbmcgYnVmZmVyCisgICAgICogQHJldHVybiBhcHBlbmRlZCBzdHJpbmcgYnVmZmVyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nQnVmZmVyIG1lcmdlKFN0cmluZ0J1ZmZlciBzb3VyY2UxLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHNvdXJjZTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQyLCBpbnQgZW5kMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzb3VyY2UzKSAKKyAgICB7CisgICAgICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7ICAgIAorICAgICAgICBpZiAoc291cmNlMSAhPSBudWxsICYmIHNvdXJjZTEubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgLy8gamRrIDEuMy4xIGRvZXMgbm90IGhhdmUgYXBwZW5kKFN0cmluZ0J1ZmZlcikgeWV0CisgICAgICAgICAgICBpZihjb20uaWJtLmljdS5pbXBsLklDVURlYnVnLmlzSkRLMTRPckhpZ2hlcil7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzb3VyY2UxKTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc291cmNlMS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzb3VyY2UyLnNldEluZGV4KHN0YXJ0Mik7CisgICAgICAgIHdoaWxlIChzb3VyY2UyLmdldEluZGV4KCkgPCBlbmQyKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZTIuY3VycmVudCgpKTsKKyAgICAgICAgICAgIHNvdXJjZTIubmV4dCgpOworICAgICAgICB9CisgICAgICAgIGlmIChzb3VyY2UzICE9IG51bGwgJiYgc291cmNlMy5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAvLyBqZGsgMS4zLjEgZG9lcyBub3QgaGF2ZSBhcHBlbmQoU3RyaW5nQnVmZmVyKSB5ZXQKKyAgICAgICAgICAgIGlmKGNvbS5pYm0uaWN1LmltcGwuSUNVRGVidWcuaXNKREsxNE9ySGlnaGVyKXsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNvdXJjZTMpOworICAgICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzb3VyY2UzLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogUnVubmluZyB0aHJvdWdoIGEgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3IgdG8gc2VlIGlmIHRoZSBjb250ZW50cyAKKyAgICAqIG1hdGNoZXMgcGF0dGVybiBpbiBzdHJpbmcgc2VhcmNoIGRhdGEKKyAgICAqIEBwYXJhbSBjb2xlaXRlciBjb2xsYXRpb24gZWxlbWVudCBpdGVyYXRvciB0byB0ZXN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgYSBtYXRjaCBpZiBmb3VuZCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gY2hlY2tDb2xsYXRpb25NYXRjaChDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IgY29sZWl0ZXIpCisgICAgeworICAgICAgICBpbnQgcGF0dGVybmNlaW5kZXggPSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfOworICAgICAgICBpbnQgb2Zmc2V0ID0gMDsKKyAgICAgICAgd2hpbGUgKHBhdHRlcm5jZWluZGV4ID4gMCkgeworICAgICAgICAgICAgaW50IGNlID0gZ2V0Q0UoY29sZWl0ZXIubmV4dCgpKTsKKyAgICAgICAgICAgIGlmIChjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY2UgIT0gbV9wYXR0ZXJuXy5tX0NFX1tvZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb2Zmc2V0ICsrOworICAgICAgICAgICAgcGF0dGVybmNlaW5kZXggLS07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlYXJyYW5nZXMgdGhlIGZyb250IGFjY2VudHMgdG8gdHJ5IG1hdGNoaW5nLgorICAgICAqIFByZWZpeCBhY2NlbnRzIGluIHRoZSB0ZXh0IHdpbGwgYmUgZ3JvdXBlZCBhY2NvcmRpbmcgdG8gdGhlaXIgY29tYmluaW5nIAorICAgICAqIGNsYXNzIGFuZCB0aGUgZ3JvdXBzIHdpbGwgYmUgbWl4ZWQgYW5kIG1hdGNoZWQgdG8gdHJ5IGZpbmQgdGhlIHBlcmZlY3QgCisgICAgICogbWF0Y2ggd2l0aCB0aGUgcGF0dGVybi4KKyAgICAgKiBTbyBmb3IgaW5zdGFuY2UgbG9va2luZyBmb3IgIlx1MDMwMSIgaW4gIlx1MDMwQVx1MDMwMVx1MDMyNSIKKyAgICAgKiBzdGVwIDE6IHNwbGl0ICJcdTAzMEFcdTAzMDEiIGludG8gNiBvdGhlciB0eXBlIG9mIHBvdGVudGlhbCBhY2NlbnQgCisgICAgICogICAgICAgICAgICBzdWJzdHJpbmdzICJcdTAzMEEiLCAiXHUwMzAxIiwgIlx1MDMyNSIsICJcdTAzMEFcdTAzMDEiLCAKKyAgICAgKiAgICAgICAgICAgICJcdTAzMEFcdTAzMjUiLCAiXHUwMzAxXHUwMzI1Ii4KKyAgICAgKiBzdGVwIDI6IGNoZWNrIGlmIGFueSBvZiB0aGUgZ2VuZXJhdGVkIHN1YnN0cmluZ3MgbWF0Y2hlcyB0aGUgcGF0dGVybi4KKyAgICAgKiBJbnRlcm5hbCBtZXRob2QsIHN0YXR1cyBpcyBhc3N1bWVkIHRvIGJlIHN1Y2Nlc3MsIGNhbGxlciBoYXMgdG8gY2hlY2sgCisgICAgICogc3RhdHVzIGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kLgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBvZmZzZXQgb2YgdGhlIGFjY2VudHMgdG8gc3RhcnQgc2VhcmNoaW5nCisgICAgICogQHBhcmFtIGVuZCBzdGFydCBvZiB0aGUgbGFzdCBhY2NlbnQgc2V0CisgICAgICogQHJldHVybiBET05FIGlmIGEgbWF0Y2ggaXMgbm90IGZvdW5kLCBvdGhlcndpc2UgcmV0dXJuIHRoZSBzdGFydGluZworICAgICAqICAgICAgICAgb2Zmc2V0IG9mIHRoZSBtYXRjaC4gTm90ZSB0aGlzIHN0YXJ0IGluY2x1ZGVzIGFsbCBwcmVjZWRpbmcgCisgICAgICogICAgICAgICAgICBhY2NlbnRzLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGRvTmV4dENhbm9uaWNhbFByZWZpeE1hdGNoKGludCBzdGFydCwgaW50IGVuZCkKKyAgICB7CisgICAgICAgIGlmICgoZ2V0RkNEKHRhcmdldFRleHQsIHN0YXJ0KSAmIExBU1RfQllURV9NQVNLXykgPT0gMCkgeworICAgICAgICAgICAgLy8gZGllLi4uIGZhaWxlZCBhdCBhIGJhc2UgY2hhcmFjdGVyCisgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBzdGFydCA9IHRhcmdldFRleHQuZ2V0SW5kZXgoKTsgLy8gaW5kZXggY2hhbmdlZCBieSBmY2QKKyAgICAgICAgaW50IG9mZnNldCA9IGdldE5leHRCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHN0YXJ0KTsKKyAgICAgICAgc3RhcnQgPSBnZXRQcmV2aW91c0Jhc2VPZmZzZXQoc3RhcnQpOworICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgYWNjZW50cyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgU3RyaW5nIGFjY2VudHN0ciA9IGdldFN0cmluZyh0YXJnZXRUZXh0LCBzdGFydCwgb2Zmc2V0IC0gc3RhcnQpOworICAgICAgICAvLyBub3JtYWxpemluZyB0aGUgb2ZmZW5zaXZlIHN0cmluZworICAgICAgICBpZiAoTm9ybWFsaXplci5xdWlja0NoZWNrKGFjY2VudHN0ciwgTm9ybWFsaXplci5ORkQsMCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gTm9ybWFsaXplci5OTykgeworICAgICAgICAgICAgYWNjZW50c3RyID0gTm9ybWFsaXplci5kZWNvbXBvc2UoYWNjZW50c3RyLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgYWNjZW50cy5hcHBlbmQoYWNjZW50c3RyKTsKKyAgICAgICAgICAgIAorICAgICAgICBpbnQgYWNjZW50c2luZGV4W10gPSBuZXcgaW50W0lOSVRJQUxfQVJSQVlfU0laRV9dOyAgICAgIAorICAgICAgICBpbnQgYWNjZW50c2l6ZSA9IGdldFVuYmxvY2tlZEFjY2VudEluZGV4KGFjY2VudHMsIGFjY2VudHNpbmRleCk7CisgICAgICAgIGludCBjb3VudCA9ICgyIDw8IChhY2NlbnRzaXplIC0gMSkpIC0gMTsgIAorICAgICAgICB3aGlsZSAoY291bnQgPiAwKSB7CisgICAgICAgICAgICAvLyBjb3B5IHRoZSBiYXNlIGNoYXJhY3RlcnMKKyAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18uZGVsZXRlKDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkpOworICAgICAgICAgICAgaW50IGsgPSAwOworICAgICAgICAgICAgZm9yICg7IGsgPCBhY2NlbnRzaW5kZXhbMF07IGsgKyspIHsKKyAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmFwcGVuZChhY2NlbnRzLmNoYXJBdChrKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBmb3JtaW5nIGFsbCBwb3NzaWJsZSBjYW5vbmljYWwgcmVhcnJhbmdlbWVudCBieSBkcm9wcGluZworICAgICAgICAgICAgLy8gc2V0cyBvZiBhY2NlbnRzCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBhY2NlbnRzaXplIC0gMTsgaSArKykgeworICAgICAgICAgICAgICAgIGludCBtYXNrID0gMSA8PCAoYWNjZW50c2l6ZSAtIGkgLSAxKTsKKyAgICAgICAgICAgICAgICBpZiAoKGNvdW50ICYgbWFzaykgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gYWNjZW50c2luZGV4W2ldOyBqIDwgYWNjZW50c2luZGV4W2kgKyAxXTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqICsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmFwcGVuZChhY2NlbnRzLmNoYXJBdChqKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgbWF0Y2ggPSBtZXJnZShtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dCwgb2Zmc2V0LCBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUsIHVjb2xfc2V0VGV4dCBkb2VzIG5vdGhpbmcuCisgICAgICAgICAgICAvLyBydW4gdGhlIGNvbGxhdG9yIGl0ZXJhdG9yIHRocm91Z2ggdGhpcyBtYXRjaAorICAgICAgICAgICAgbV91dGlsQ29sRUl0ZXJfLnNldFRleHQobWF0Y2gudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBpZiAoY2hlY2tDb2xsYXRpb25NYXRjaChtX3V0aWxDb2xFSXRlcl8pKSB7CisgICAgICAgICAgICAgICAgIHJldHVybiBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICB9CisgICAgICAgIHJldHVybiBET05FOworICAgIH0KKworICAgIC8qKgorICAgICogR2V0cyB0aGUgb2Zmc2V0IHRvIHRoZSBzYWZlIHBvaW50IGluIHRleHQgYmVmb3JlIHRleHRvZmZzZXQuCisgICAgKiBpZS4gbm90IHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbiwgc3dhcHBhYmxlIGNoYXJhY3RlcnMgb3IgCisgICAgKiBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMuCisgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IGluIHN0cmluZworICAgICogQHBhcmFtIHRleHRvZmZzZXQgb2Zmc2V0IGluIHN0cmluZworICAgICogQHJldHVybiBvZmZzZXQgdG8gdGhlIHByZXZpb3VzIHNhZmUgY2hhcmFjdGVyCisgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBnZXRQcmV2aW91c1NhZmVPZmZzZXQoaW50IHN0YXJ0LCBpbnQgdGV4dG9mZnNldCkKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSB0ZXh0b2Zmc2V0OyAvLyBmaXJzdCBjb250cmFjdGlvbiBjaGFyYWN0ZXIKKyAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgd2hpbGUgKHJlc3VsdCA+PSBzdGFydCAmJiBtX2NvbGxhdG9yXy5pc1Vuc2FmZSh0YXJnZXRUZXh0LnByZXZpb3VzKCkpKSB7CisgICAgICAgICAgICByZXN1bHQgPSB0YXJnZXRUZXh0LmdldEluZGV4KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCAhPSBzdGFydCkgeworICAgICAgICAgICAgLy8gdGhlIGZpcnN0IGNvbnRyYWN0aW9uIGNoYXJhY3RlciBpcyBjb25zaWRlciB1bnNhZmUgaGVyZQorICAgICAgICAgICAgcmVzdWx0ID0gdGFyZ2V0VGV4dC5nZXRJbmRleCgpOyAvLyBvcmlnaW5hbGx5IHJlc3VsdCAtLTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OyAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUYWtlIHRoZSByZWFycmFuZ2VkIGVuZCBhY2NlbnRzIGFuZCB0cmllcyBtYXRjaGluZy4gSWYgbWF0Y2ggZmFpbGVkIGF0CisgICAgICogYSBzZXBlcmF0ZSBwcmVjZWRpbmcgc2V0IG9mIGFjY2VudHMgKHNlcGVyYXRlZCBmcm9tIHRoZSByZWFycmFuZ2VkIG9uIGJ5CisgICAgICogYXQgbGVhc3QgYSBiYXNlIGNoYXJhY3RlcikgdGhlbiB3ZSByZWFycmFuZ2UgdGhlIHByZWNlZGluZyBhY2NlbnRzIGFuZCAKKyAgICAgKiB0cmllcyBtYXRjaGluZyBhZ2Fpbi4KKyAgICAgKiBXZSBhbGxvdyBza2lwcGluZyBvZiB0aGUgZW5kcyBvZiB0aGUgYWNjZW50IHNldCBpZiB0aGUgY2VzIGRvIG5vdCBtYXRjaC4gCisgICAgICogSG93ZXZlciBpZiB0aGUgZmFpbHVyZSBpcyBmb3VuZCBiZWZvcmUgdGhlIGFjY2VudCBzZXQsIGl0IGZhaWxzLgorICAgICAqIEludGVybmFsIG1ldGhvZCwgc3RhdHVzIGFzc3VtZWQgdG8gYmUgc3VjY2VzcywgY2FsbGVyIGhhcyB0byBjaGVjayAKKyAgICAgKiBzdGF0dXMgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSByZWFycmFuZ2VkIGFjY2VudAorICAgICAqIEByZXR1cm4gRE9ORSBpZiBhIG1hdGNoIGlzIG5vdCBmb3VuZCwgb3RoZXJ3aXNlIHJldHVybiB0aGUgc3RhcnRpbmcKKyAgICAgKiAgICAgICAgIG9mZnNldCBvZiB0aGUgbWF0Y2guIE5vdGUgdGhpcyBzdGFydCBpbmNsdWRlcyBhbGwgcHJlY2VkaW5nIAorICAgICAqICAgICAgICAgYWNjZW50cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBkb05leHRDYW5vbmljYWxTdWZmaXhNYXRjaChpbnQgdGV4dG9mZnNldCkKKyAgICB7CisgICAgICAgIGludCBzYWZlbGVuZ3RoID0gMDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNhZmV0ZXh0OworICAgICAgICBpbnQgc2FmZW9mZnNldCA9IG1fdGV4dEJlZ2luT2Zmc2V0XzsgCisgICAgICAgIAorICAgICAgICBpZiAodGV4dG9mZnNldCAhPSBtX3RleHRCZWdpbk9mZnNldF8gCisgICAgICAgICAgICAmJiBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmxlbmd0aCgpID4gMAorICAgICAgICAgICAgJiYgbV9jb2xsYXRvcl8uaXNVbnNhZmUobV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5jaGFyQXQoMCkpKSB7CisgICAgICAgICAgICBzYWZlb2Zmc2V0ICAgICA9IGdldFByZXZpb3VzU2FmZU9mZnNldChtX3RleHRCZWdpbk9mZnNldF8sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRvZmZzZXQpOworICAgICAgICAgICAgc2FmZWxlbmd0aCAgICAgPSB0ZXh0b2Zmc2V0IC0gc2FmZW9mZnNldDsKKyAgICAgICAgICAgIHNhZmV0ZXh0ICAgICAgID0gbWVyZ2UobnVsbCwgdGFyZ2V0VGV4dCwgc2FmZW9mZnNldCwgdGV4dG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18pOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgc2FmZXRleHQgPSBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUsIHVjb2xfc2V0VGV4dCBkb2VzIG5vdGhpbmcKKyAgICAgICAgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yIGNvbGVpdGVyID0gbV91dGlsQ29sRUl0ZXJfOworICAgICAgICBjb2xlaXRlci5zZXRUZXh0KHNhZmV0ZXh0LnRvU3RyaW5nKCkpOworICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBpbiBsb29wIGJlbG93CisgICAgCisgICAgICAgIGludCBjZWluZGV4ID0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyAtIDE7CisgICAgICAgIGJvb2xlYW4gaXNTYWZlID0gdHJ1ZTsgLy8gaW5kaWNhdGlvbiBmbGFnIGZvciBwb3NpdGlvbiBpbiBzYWZlIHpvbmUKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChjZWluZGV4ID49IDApIHsKKyAgICAgICAgICAgIGludCB0ZXh0Y2UgPSBjb2xlaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgaWYgKHRleHRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBwYXNzZWQgdGhlIHNhZmUgYnVmZmVyCisgICAgICAgICAgICAgICAgaWYgKGNvbGVpdGVyID09IG1fY29sRUl0ZXJfKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb2xlaXRlciA9IG1fY29sRUl0ZXJfOworICAgICAgICAgICAgICAgIGlmIChzYWZldGV4dCAhPSBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICAgICAgICAgIHNhZmV0ZXh0LmRlbGV0ZSgwLCBzYWZldGV4dC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvbGVpdGVyLnNldEV4YWN0T2Zmc2V0KHNhZmVvZmZzZXQpOworICAgICAgICAgICAgICAgIC8vIHN0YXR1cyBjaGVja2VkIGF0IHRoZSBzdGFydCBvZiB0aGUgbG9vcAorICAgICAgICAgICAgICAgIGlzU2FmZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dGNlID0gZ2V0Q0UodGV4dGNlKTsKKyAgICAgICAgICAgIGlmICh0ZXh0Y2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSAKKyAgICAgICAgICAgICAgICAmJiB0ZXh0Y2UgIT0gbV9wYXR0ZXJuXy5tX0NFX1tjZWluZGV4XSkgeworICAgICAgICAgICAgICAgIC8vIGRvIHRoZSBiZWdpbm5pbmcgc3R1ZmYKKyAgICAgICAgICAgICAgICBpbnQgZmFpbGVkb2Zmc2V0ID0gY29sZWl0ZXIuZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgaWYgKGlzU2FmZSAmJiBmYWlsZWRvZmZzZXQgPj0gc2FmZWxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyBhbGFzLi4uIG5vIGhvcGUuIGZhaWxlZCBhdCByZWFycmFuZ2VkIGFjY2VudCBzZXQKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoaXNTYWZlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmYWlsZWRvZmZzZXQgKz0gc2FmZW9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gdHJ5IHJlYXJyYW5naW5nIHRoZSBmcm9udCBhY2NlbnRzCisgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBkb05leHRDYW5vbmljYWxQcmVmaXhNYXRjaChmYWlsZWRvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dG9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gRE9ORSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgc3RhdHVzIGlzIGEgZmFpbHVyZSwgdWNvbF9zZXRPZmZzZXQgZG9lcyBub3RoaW5nCisgICAgICAgICAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChyZXN1bHQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRleHRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfW2NlaW5kZXhdKSB7CisgICAgICAgICAgICAgICAgY2VpbmRleCAtLTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBzZXQgb2Zmc2V0IGhlcmUKKyAgICAgICAgaWYgKGlzU2FmZSkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IGNvbGVpdGVyLmdldE9mZnNldCgpOworICAgICAgICAgICAgLy8gc2V0cyB0aGUgdGV4dCBpdGVyYXRvciB3aXRoIHRoZSBjb3JyZWN0IGV4cGFuc2lvbiBhbmQgb2Zmc2V0CisgICAgICAgICAgICBpbnQgbGVmdG92ZXJjZXMgPSBjb2xlaXRlci5tX0NFQnVmZmVyT2Zmc2V0XzsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gc2FmZWxlbmd0aCkgeyAKKyAgICAgICAgICAgICAgICByZXN1bHQgPSB0ZXh0b2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHNhZmVvZmZzZXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChyZXN1bHQpOworICAgICAgICAgICAgbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF8gPSBsZWZ0b3ZlcmNlczsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBjb2xlaXRlci5nZXRPZmZzZXQoKTsgICAgICAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUcnlpbmcgb3V0IHRoZSBzdWJzdHJpbmcgYW5kIHNlZXMgaWYgaXQgY2FuIGJlIGEgY2Fub25pY2FsIG1hdGNoLgorICAgICAqIFRoaXMgd2lsbCB0cnkgbm9ybWFsaXppbmcgdGhlIGVuZCBhY2NlbnRzIGFuZCBhcnJhbmdpbmcgdGhlbSBpbnRvIAorICAgICAqIGNhbm9uaWNhbCBlcXVpdmFsZW50cyBhbmQgY2hlY2sgdGhlaXIgY29ycmVzcG9uZGluZyBjZXMgd2l0aCB0aGUgcGF0dGVybiAKKyAgICAgKiBjZS4KKyAgICAgKiBTdWZmaXggYWNjZW50cyBpbiB0aGUgdGV4dCB3aWxsIGJlIGdyb3VwZWQgYWNjb3JkaW5nIHRvIHRoZWlyIGNvbWJpbmluZyAKKyAgICAgKiBjbGFzcyBhbmQgdGhlIGdyb3VwcyB3aWxsIGJlIG1peGVkIGFuZCBtYXRjaGVkIHRvIHRyeSBmaW5kIHRoZSBwZXJmZWN0IAorICAgICAqIG1hdGNoIHdpdGggdGhlIHBhdHRlcm4uCisgICAgICogU28gZm9yIGluc3RhbmNlIGxvb2tpbmcgZm9yICJcdTAzMDEiIGluICJcdTAzMEFcdTAzMDFcdTAzMjUiCisgICAgICogc3RlcCAxOiBzcGxpdCAiXHUwMzBBXHUwMzAxIiBpbnRvIDYgb3RoZXIgdHlwZSBvZiBwb3RlbnRpYWwgYWNjZW50IAorICAgICAqICAgICAgICAgc3Vic3RyaW5ncworICAgICAqICAgICAgICAgIlx1MDMwQSIsICJcdTAzMDEiLCAiXHUwMzI1IiwgIlx1MDMwQVx1MDMwMSIsICJcdTAzMEFcdTAzMjUiLCAKKyAgICAgKiAgICAgICAgICJcdTAzMDFcdTAzMjUiLgorICAgICAqIHN0ZXAgMjogY2hlY2sgaWYgYW55IG9mIHRoZSBnZW5lcmF0ZWQgc3Vic3RyaW5ncyBtYXRjaGVzIHRoZSBwYXR0ZXJuLgorICAgICAqIEBwYXJhbSB0ZXh0b2Zmc2V0IGVuZCBvZmZzZXQgaW4gdGhlIGNvbGxhdGlvbiBlbGVtZW50IHRleHQgdGhhdCBlbmRzIHdpdGggCisgICAgICogICAgICAgICAgICAgICAgICAgdGhlIGFjY2VudHMgdG8gYmUgcmVhcnJhbmdlZAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbWF0Y2ggaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBkb05leHRDYW5vbmljYWxNYXRjaChpbnQgdGV4dG9mZnNldCkKKyAgICB7CisgICAgICAgIGludCBvZmZzZXQgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgaWYgKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUodGFyZ2V0VGV4dC5wcmV2aW91cygpKSAKKyAgICAgICAgICAgICYmIHRhcmdldFRleHQuZ2V0SW5kZXgoKSA+IG1fdGV4dEJlZ2luT2Zmc2V0XykgeyAKKyAgICAgICAgICAgIGlmICghVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXRUZXh0Lm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoKGdldEZDRCh0YXJnZXRUZXh0LCB0YXJnZXRUZXh0LmdldEluZGV4KCkpICYgTEFTVF9CWVRFX01BU0tfKSA9PSAwKSB7CisgICAgICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gZG9OZXh0Q2Fub25pY2FsUHJlZml4TWF0Y2gob2Zmc2V0LCB0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ICE9IERPTkUpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQob2Zmc2V0KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgCisgICAgICAgIGlmICghbV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIGFjY2VudHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIC8vIG9mZnNldCB0byB0aGUgbGFzdCBiYXNlIGNoYXJhY3RlciBpbiBzdWJzdHJpbmcgdG8gc2VhcmNoCisgICAgICAgIGludCBiYXNlb2Zmc2V0ID0gZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHRleHRvZmZzZXQpOworICAgICAgICAvLyBub3JtYWxpemluZyB0aGUgb2ZmZW5zaXZlIHN0cmluZworICAgICAgICBTdHJpbmcgYWNjZW50c3RyID0gZ2V0U3RyaW5nKHRhcmdldFRleHQsIGJhc2VvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRvZmZzZXQgLSBiYXNlb2Zmc2V0KTsKKyAgICAgICAgaWYgKE5vcm1hbGl6ZXIucXVpY2tDaGVjayhhY2NlbnRzdHIsIE5vcm1hbGl6ZXIuTkZELDApIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IE5vcm1hbGl6ZXIuTk8pIHsKKyAgICAgICAgICAgIGFjY2VudHN0ciA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKGFjY2VudHN0ciwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGFjY2VudHMuYXBwZW5kKGFjY2VudHN0cik7CisgICAgICAgIC8vIHN0YXR1cyBjaGVja2VkIGluIGxvb3AgYmVsb3cKKyAgICAgICAgICAgIAorICAgICAgICBpbnQgYWNjZW50c2luZGV4W10gPSBuZXcgaW50W0lOSVRJQUxfQVJSQVlfU0laRV9dOworICAgICAgICBpbnQgc2l6ZSA9IGdldFVuYmxvY2tlZEFjY2VudEluZGV4KGFjY2VudHMsIGFjY2VudHNpbmRleCk7CisgICAgCisgICAgICAgIC8vIDIgcG93ZXIgbiAtIDEgcGx1cyB0aGUgZnVsbCBzZXQgb2YgYWNjZW50cworICAgICAgICBpbnQgIGNvdW50ID0gKDIgPDwgKHNpemUgLSAxKSkgLSAxOyAgCisgICAgICAgIHdoaWxlIChjb3VudCA+IDApIHsKKyAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18uZGVsZXRlKDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18ubGVuZ3RoKCkpOworICAgICAgICAgICAgLy8gY29weSB0aGUgYmFzZSBjaGFyYWN0ZXJzCisgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGFjY2VudHNpbmRleFswXTsgayArKykgeworICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18uYXBwZW5kKGFjY2VudHMuY2hhckF0KGspKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGZvcm1pbmcgYWxsIHBvc3NpYmxlIGNhbm9uaWNhbCByZWFycmFuZ2VtZW50IGJ5IGRyb3BwaW5nCisgICAgICAgICAgICAvLyBzZXRzIG9mIGFjY2VudHMKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IHNpemUgLSAxOyBpICsrKSB7CisgICAgICAgICAgICAgICAgaW50IG1hc2sgPSAxIDw8IChzaXplIC0gaSAtIDEpOworICAgICAgICAgICAgICAgIGlmICgoY291bnQgJiBtYXNrKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSBhY2NlbnRzaW5kZXhbaV07IGogPCBhY2NlbnRzaW5kZXhbaSArIDFdOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGogKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18uYXBwZW5kKGFjY2VudHMuY2hhckF0KGopKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9mZnNldCA9IGRvTmV4dENhbm9uaWNhbFN1ZmZpeE1hdGNoKGJhc2VvZmZzZXQpOworICAgICAgICAgICAgaWYgKG9mZnNldCAhPSBET05FKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIG1hdGNoIGZvdW5kCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIHByZXZpb3VzIGJhc2UgY2hhcmFjdGVyIG9mZnNldCBkZXBlbmRpbmcgb24gdGhlIHN0cmluZyBzZWFyY2ggCisgICAgICogcGF0dGVybiBkYXRhCisgICAgICogQHBhcmFtIHN0cnNyY2ggc3RyaW5nIHNlYXJjaCBkYXRhCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgY3VycmVudCBvZmZzZXQsIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICogQHJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBuZXh0IGNoYXJhY3RlciBhZnRlciB0aGlzIGJhc2UgY2hhcmFjdGVyIG9yIAorICAgICAqICAgICAgICAgICAgIGl0c2VsZiBpZiBpdCBpcyBhIGNvbXBvc2VkIGNoYXJhY3RlciB3aXRoIGFjY2VudHMKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGludCBnZXRQcmV2aW91c0Jhc2VPZmZzZXQoaW50IHRleHRvZmZzZXQpCisgICAgeworICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfICYmIHRleHRvZmZzZXQgPiBtX3RleHRCZWdpbk9mZnNldF8pIHsKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSB0ZXh0b2Zmc2V0OworICAgICAgICAgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgb2Zmc2V0KSA+PiBTRUNPTkRfTEFTVF9CWVRFX1NISUZUXykgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBnZXRQcmV2aW91c0Jhc2VPZmZzZXQodGFyZ2V0VGV4dCwgdGV4dG9mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRleHRvZmZzZXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBtYXRjaCBmb3IgY29udHJhY3Rpb24uIAorICAgICAqIElmIHRoZSBtYXRjaCBlbmRzIHdpdGggYSBwYXJ0aWFsIGNvbnRyYWN0aW9uIHdlIGZhaWwuCisgICAgICogSWYgdGhlIG1hdGNoIHN0YXJ0cyB0b28gZmFyIG9mZiAoYmVjYXVzZSBvZiBiYWNrd2FyZHMgaXRlcmF0aW9uKSB3ZSB0cnkgCisgICAgICogdG8gY2hpcCBvZmYgdGhlIGV4dHJhIGNoYXJhY3RlcnMuCisgICAgICogVXNlcyB0aGUgdGVtcG9yYXJ5IHV0aWwgYnVmZmVyIGZvciByZXR1cm4gdmFsdWVzIG9mIHRoZSBtb2RpZmllZCBzdGFydAorICAgICAqIGFuZCBlbmQuCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiBwb3RlbnRpYWwgbWF0Y2gsIHRvIGJlIG1vZGlmaWVkIGlmIG5lY2Vzc2FyeQorICAgICAqIEBwYXJhbSBlbmQgb2Zmc2V0IG9mIHBvdGVudGlhbCBtYXRjaCwgdG8gYmUgbW9kaWZpZWQgaWYgbmVjZXNzYXJ5CisgICAgICogQHJldHVybiB0cnVlIGlmIG1hdGNoIHBhc3NlcyB0aGUgY29udHJhY3Rpb24gdGVzdCwgZmFsc2Ugb3RoZXJ3aXNlLiAKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY2hlY2tOZXh0Q2Fub25pY2FsQ29udHJhY3Rpb25NYXRjaChpbnQgc3RhcnQsIGludCBlbmQpIAorICAgIHsKKyAgICAgICAgLy8gVGhpcyBwYXJ0IGNoZWNrcyBpZiBlaXRoZXIgZW5kcyBvZiB0aGUgbWF0Y2ggY29udGFpbnMgcG90ZW50aWFsIAorICAgICAgICAvLyBjb250cmFjdGlvbi4gSWYgc28gd2UnbGwgaGF2ZSB0byBpdGVyYXRlIHRocm91Z2ggdGhlbQorICAgICAgICBjaGFyIHNjaGFyID0gMDsKKyAgICAgICAgY2hhciBlY2hhciA9IDA7CisgICAgICAgIGlmIChlbmQgPCBtX3RleHRMaW1pdE9mZnNldF8pIHsKKyAgICAgICAgICAgIHRhcmdldFRleHQuc2V0SW5kZXgoZW5kKTsKKyAgICAgICAgICAgIGVjaGFyID0gdGFyZ2V0VGV4dC5jdXJyZW50KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXJ0IDwgbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHN0YXJ0ICsgMSk7CisgICAgICAgICAgICBzY2hhciA9IHRhcmdldFRleHQuY3VycmVudCgpOworICAgICAgICB9CisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5pc1Vuc2FmZShlY2hhcikgfHwgbV9jb2xsYXRvcl8uaXNVbnNhZmUoc2NoYXIpKSB7CisgICAgICAgICAgICBpbnQgZXhwYW5zaW9uICA9IG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfOworICAgICAgICAgICAgYm9vbGVhbiBoYXNFeHBhbnNpb24gPSBleHBhbnNpb24gPiAwOworICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQoc3RhcnQpOworICAgICAgICAgICAgaW50IHRlbXAgPSBzdGFydDsKKyAgICAgICAgICAgIHdoaWxlIChleHBhbnNpb24gPiAwKSB7CisgICAgICAgICAgICAgICAgLy8gZ2V0dGluZyByaWQgb2YgdGhlIHJlZHVuZGFudCBjZSwgY2F1c2VkIGJ5IHNldE9mZnNldC4KKyAgICAgICAgICAgICAgICAvLyBzaW5jZSBiYWNrd2FyZCBjb250cmFjdGlvbi9leHBhbnNpb24gbWF5IGhhdmUgZXh0cmEgY2VzIGlmIAorICAgICAgICAgICAgICAgIC8vIHdlIGFyZSBpbiB0aGUgbm9ybWFsaXphdGlvbiBidWZmZXIsIGhhc0FjY2VudHNCZWZvcmVNYXRjaCAKKyAgICAgICAgICAgICAgICAvLyB3b3VsZCBoYXZlIHRha2VuIGNhcmUgb2YgaXQuCisgICAgICAgICAgICAgICAgLy8gRS5nLiB0aGUgY2hhcmFjdGVyIFx1MDFGQSB3aWxsIGhhdmUgYW4gZXhwYW5zaW9uIG9mIDMsIGJ1dCAKKyAgICAgICAgICAgICAgICAvLyBpZiB3ZSBhcmUgb25seSBsb29raW5nIGZvciBhY3V0ZSBhbmQgcmluZyBcdTAzMEEgYW5kIFx1MDMwMSwgCisgICAgICAgICAgICAgICAgLy8gd2UnbGwgaGF2ZSB0byBza2lwIHRoZSBmaXJzdCBjZSBpbiB0aGUgZXhwYW5zaW9uIGJ1ZmZlci4KKyAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKG1fY29sRUl0ZXJfLmdldE9mZnNldCgpICE9IHRlbXApIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICB0ZW1wICA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBleHBhbnNpb24gLS07CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAgICAgICAgd2hpbGUgKGNvdW50IDwgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXykgeworICAgICAgICAgICAgICAgIGludCBjZSA9IGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSk7CisgICAgICAgICAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgYmVsb3csIG5vdGUgdGhhdCBpZiBzdGF0dXMgaXMgYSBmYWlsdXJlCisgICAgICAgICAgICAgICAgLy8gdWNvbF9uZXh0IHJldHVybnMgVUNPTF9OVUxMT1JERVIKKyAgICAgICAgICAgICAgICBpZiAoY2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGhhc0V4cGFuc2lvbiAmJiBjb3VudCA9PSAwIAorICAgICAgICAgICAgICAgICAgICAmJiBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSAhPSB0ZW1wKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gdGVtcDsKKyAgICAgICAgICAgICAgICAgICAgdGVtcCA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMCAmJiBjZSAhPSBtX3BhdHRlcm5fLm1fQ0VfWzBdKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGFjY2VudHMgbWF5IGhhdmUgZXh0cmEgc3RhcnRpbmcgY2VzLCB0aGlzIG9jY3VycyB3aGVuIGEgCisgICAgICAgICAgICAgICAgICAgIC8vIHB1cmUgYWNjZW50IHBhdHRlcm4gaXMgbWF0Y2hlZCB3aXRob3V0IHJlYXJyYW5nZW1lbnQKKyAgICAgICAgICAgICAgICAgICAgLy8gdGV4dCBcdTAzMjVcdTAzMDAgYW5kIGxvb2tpbmcgZm9yIFx1MDMwMAorICAgICAgICAgICAgICAgICAgICBpbnQgZXhwZWN0ZWQgPSBtX3BhdHRlcm5fLm1fQ0VfWzBdOyAKKyAgICAgICAgICAgICAgICAgICAgaWYgKChnZXRGQ0QodGFyZ2V0VGV4dCwgc3RhcnQpICYgTEFTVF9CWVRFX01BU0tfKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjZSA9IGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY2UgIT0gZXhwZWN0ZWQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgY2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSA8PSBlbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZSA9IGdldENFKG1fY29sRUl0ZXJfLm5leHQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNlICE9IG1fcGF0dGVybl8ubV9DRV9bY291bnRdKSB7CisgICAgICAgICAgICAgICAgICAgIGVuZCArKzsKKyAgICAgICAgICAgICAgICAgICAgZW5kID0gZ2V0TmV4dEJhc2VPZmZzZXQoZW5kKTsgIAorICAgICAgICAgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMV0gPSBlbmQ7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSBzdGFydDsKKyAgICAgICAgbV91dGlsQnVmZmVyX1sxXSA9IGVuZDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGFuZCBzZXRzIHRoZSBtYXRjaCBpbmZvcm1hdGlvbiBpZiBmb3VuZC4KKyAgICAgKiBDaGVja3MgCisgICAgICogPHVsPgorICAgICAqIDxsaT4gdGhlIHBvdGVudGlhbCBtYXRjaCBkb2VzIG5vdCByZXBlYXQgdGhlIHByZXZpb3VzIG1hdGNoCisgICAgICogPGxpPiBib3VuZGFyaWVzIGFyZSBjb3JyZWN0CisgICAgICogPGxpPiBwb3RlbnRpYWwgbWF0Y2ggZG9lcyBub3QgZW5kIGluIHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbgorICAgICAqIDxsaT4gaWRlbnRpY2FsIG1hdGNoZXMKKyAgICAgKiA8L3VsPgorICAgICAqIE90aGVyd2lzZSB0aGUgb2Zmc2V0IHdpbGwgYmUgc2hpZnRlZCB0byB0aGUgbmV4dCBjaGFyYWN0ZXIuCisgICAgICogVGhlIHJlc3VsdCBtX21hdGNoSW5kZXhfIGFuZCBtX21hdGNoTGVuZ3RoXyB3aWxsIGJlIHNldCB0byB0aGUgdHJ1bmNhdGVkCisgICAgICogbW9yZSBmaXR0aW5nIHJlc3VsdCB2YWx1ZS4KKyAgICAgKiBVc2VzIHRoZSB0ZW1wb3JhcnkgdXRpbGl0eSBidWZmZXIgZm9yIHN0b3JpbmcgdGhlIG1vZGlmaWVkIHRleHRvZmZzZXQuCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgb2Zmc2V0IGluIHRoZSBjb2xsYXRpb24gZWxlbWVudCB0ZXh0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbWF0Y2ggaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBjaGVja05leHRDYW5vbmljYWxNYXRjaChpbnQgdGV4dG9mZnNldCkKKyAgICB7CisgICAgICAgIC8vIHRvIGVuc3VyZSB0aGF0IHRoZSBzdGFydCBhbmQgZW5kcyBhcmUgbm90IGNvbXBvc2l0ZSBjaGFyYWN0ZXJzCisgICAgICAgIC8vIGlmIHdlIGhhdmUgYSBjYW5vbmljYWwgYWNjZW50IG1hdGNoCisgICAgICAgIGlmICgobV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfIAorICAgICAgICAgICAgICAgICYmIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18ubGVuZ3RoKCkgIT0gMCkgfHwgCisgICAgICAgICAgICAobV9wYXR0ZXJuXy5tX2hhc1ByZWZpeEFjY2VudHNfIAorICAgICAgICAgICAgICAgICYmIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkgIT0gMCkpIHsKKyAgICAgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IGdldFByZXZpb3VzQmFzZU9mZnNldChtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSk7CisgICAgICAgICAgICBtYXRjaExlbmd0aCA9IHRleHRvZmZzZXQgLSBtX21hdGNoZWRJbmRleF87CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpbnQgc3RhcnQgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgaWYgKCFjaGVja05leHRDYW5vbmljYWxDb250cmFjdGlvbk1hdGNoKHN0YXJ0LCB0ZXh0b2Zmc2V0KSkgeworICAgICAgICAgICAgLy8gcmV0dXJuIHRoZSBtb2RpZmllZCB0ZXh0b2Zmc2V0CisgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gbV91dGlsQnVmZmVyX1sxXTsgCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgc3RhcnQgPSBtX3V0aWxCdWZmZXJfWzBdOworICAgICAgICB0ZXh0b2Zmc2V0ID0gbV91dGlsQnVmZmVyX1sxXTsKKyAgICAgICAgc3RhcnQgPSBnZXRQcmV2aW91c0Jhc2VPZmZzZXQoc3RhcnQpOworICAgICAgICAvLyB0aGlzIHRvdGFsbHkgbWF0Y2hlcywgaG93ZXZlciB3ZSBuZWVkIHRvIGNoZWNrIGlmIGl0IGlzIHJlcGVhdGluZworICAgICAgICBpZiAoY2hlY2tSZXBlYXRlZE1hdGNoKHN0YXJ0LCB0ZXh0b2Zmc2V0KSAKKyAgICAgICAgICAgIHx8ICFpc0JyZWFrVW5pdChzdGFydCwgdGV4dG9mZnNldCkgCisgICAgICAgICAgICB8fCAhY2hlY2tJZGVudGljYWwoc3RhcnQsIHRleHRvZmZzZXQpKSB7CisgICAgICAgICAgICB0ZXh0b2Zmc2V0ICsrOworICAgICAgICAgICAgdGV4dG9mZnNldCA9IGdldE5leHRCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHRleHRvZmZzZXQpOworICAgICAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHRleHRvZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG1fbWF0Y2hlZEluZGV4XyAgPSBzdGFydDsKKyAgICAgICAgbWF0Y2hMZW5ndGggPSB0ZXh0b2Zmc2V0IC0gc3RhcnQ7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTaGlmdGluZyB0aGUgY29sbGF0aW9uIGVsZW1lbnQgaXRlcmF0b3IgcG9zaXRpb24gZm9yd2FyZCB0byBwcmVwYXJlIGZvcgorICAgICAqIGEgcHJlY2VkaW5nIG1hdGNoLiBJZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzIGEgdW5zYWZlIGNoYXJhY3Rlciwgd2UnbGwgCisgICAgICogb25seSBzaGlmdCBieSAxIHRvIGNhcHR1cmUgY29udHJhY3Rpb25zLCBub3JtYWxpemF0aW9uIGV0Yy4KKyAgICAgKiBAcGFyYW0gdGV4dG9mZnNldCBzdGFydCB0ZXh0IHBvc2l0aW9uIHRvIGRvIHNlYXJjaAorICAgICAqIEBwYXJhbSBjZSB0aGUgdGV4dCBjZSB3aGljaCBmYWlsZWQgdGhlIG1hdGNoLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuY2VpbmRleCBpbmRleCBvZiB0aGUgY2Ugd2l0aGluIHRoZSBwYXR0ZXJuIGNlIGJ1ZmZlciB3aGljaAorICAgICAqICAgICAgICBmYWlsZWQgdGhlIG1hdGNoCisgICAgICogQHJldHVybiBmaW5hbCBvZmZzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCByZXZlcnNlU2hpZnQoaW50IHRleHRvZmZzZXQsIGludCBjZSwgaW50IHBhdHRlcm5jZWluZGV4KQorICAgIHsgICAgICAgICAKKyAgICAgICAgaWYgKGlzT3ZlcmxhcHBpbmcoKSkgeworICAgICAgICAgICAgaWYgKHRleHRvZmZzZXQgIT0gbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICAgICAgdGV4dG9mZnNldCAtLTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHRleHRvZmZzZXQgLT0gbV9wYXR0ZXJuXy5tX2RlZmF1bHRTaGlmdFNpemVfOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICBpbnQgc2hpZnQgPSBtX3BhdHRlcm5fLm1fYmFja1NoaWZ0X1toYXNoKGNlKV07CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyB0byBhZGp1c3QgZm9yIGNoYXJhY3RlcnMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgc3Vic3RyaW5nIAorICAgICAgICAgICAgICAgIC8vIGZvciBtYXRjaGluZyB0aGF0IGZhaWxlZC4KKyAgICAgICAgICAgICAgICBpbnQgYWRqdXN0ID0gcGF0dGVybmNlaW5kZXg7CisgICAgICAgICAgICAgICAgaWYgKGFkanVzdCA+IDEgJiYgc2hpZnQgPiBhZGp1c3QpIHsKKyAgICAgICAgICAgICAgICAgICAgc2hpZnQgLT0gYWRqdXN0IC0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGV4dG9mZnNldCAtPSBzaGlmdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHRleHRvZmZzZXQgLT0gbV9wYXR0ZXJuXy5tX2RlZmF1bHRTaGlmdFNpemVfOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgIAorICAgICAgICAKKyAgICAgICAgdGV4dG9mZnNldCA9IGdldFByZXZpb3VzQmFzZU9mZnNldCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIHRleHRvZmZzZXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIG1hdGNoIGZvciBjb250cmFjdGlvbi4gCisgICAgICogSWYgdGhlIG1hdGNoIHN0YXJ0cyB3aXRoIGEgcGFydGlhbCBjb250cmFjdGlvbiB3ZSBmYWlsLgorICAgICAqIFVzZXMgdGhlIHRlbXBvcmFyeSB1dGlsaXR5IGJ1ZmZlciB0byByZXR1cm4gdGhlIG1vZGlmaWVkIHN0YXJ0IGFuZCBlbmQuCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiBwb3RlbnRpYWwgbWF0Y2gsIHRvIGJlIG1vZGlmaWVkIGlmIG5lY2Vzc2FyeQorICAgICAqIEBwYXJhbSBlbmQgb2Zmc2V0IG9mIHBvdGVudGlhbCBtYXRjaCwgdG8gYmUgbW9kaWZpZWQgaWYgbmVjZXNzYXJ5CisgICAgICogQHJldHVybiB0cnVlIGlmIG1hdGNoIHBhc3NlcyB0aGUgY29udHJhY3Rpb24gdGVzdCwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBjaGVja1ByZXZpb3VzRXhhY3RDb250cmFjdGlvbk1hdGNoKGludCBzdGFydCwgaW50IGVuZCkgCisgICAgeworICAgICAgICAvLyBUaGlzIHBhcnQgY2hlY2tzIGlmIGVpdGhlciBlbmRzIG9mIHRoZSBtYXRjaCBjb250YWlucyBwb3RlbnRpYWwgCisgICAgICAgIC8vIGNvbnRyYWN0aW9uLiBJZiBzbyB3ZSdsbCBoYXZlIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGVtCisgICAgICAgIGNoYXIgZWNoYXIgPSAwOworICAgICAgICBpZiAoZW5kIDwgbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KGVuZCk7CisgICAgICAgICAgICBlY2hhciA9IHRhcmdldFRleHQuY3VycmVudCgpOworICAgICAgICB9CisgICAgICAgIGNoYXIgc2NoYXIgPSAwOworICAgICAgICBpZiAoc3RhcnQgKyAxIDwgbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHN0YXJ0ICsgMSk7CisgICAgICAgICAgICBzY2hhciA9IHRhcmdldFRleHQuY3VycmVudCgpOworICAgICAgICB9CisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5pc1Vuc2FmZShlY2hhcikgfHwgbV9jb2xsYXRvcl8uaXNVbnNhZmUoc2NoYXIpKSB7CisgICAgICAgICAgICAvLyBleHBhbnNpb24gc3VmZml4LCB3aGF0J3MgbGVmdCB0byBpdGVyYXRlCisgICAgICAgICAgICBpbnQgZXhwYW5zaW9uID0gbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlclNpemVfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfOworICAgICAgICAgICAgYm9vbGVhbiBoYXNFeHBhbnNpb24gPSBleHBhbnNpb24gPiAwOworICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQoZW5kKTsKKyAgICAgICAgICAgIGludCB0ZW1wID0gZW5kOworICAgICAgICAgICAgd2hpbGUgKGV4cGFuc2lvbiA+IDApIHsKKyAgICAgICAgICAgICAgICAvLyBnZXR0aW5nIHJpZCBvZiB0aGUgcmVkdW5kYW50IGNlCisgICAgICAgICAgICAgICAgLy8gc2luY2UgZm9yd2FyZCBjb250cmFjdGlvbi9leHBhbnNpb24gbWF5IGhhdmUgZXh0cmEgY2VzCisgICAgICAgICAgICAgICAgLy8gaWYgd2UgYXJlIGluIHRoZSBub3JtYWxpemF0aW9uIGJ1ZmZlciwgaGFzQWNjZW50c0JlZm9yZU1hdGNoCisgICAgICAgICAgICAgICAgLy8gd291bGQgaGF2ZSB0YWtlbiBjYXJlIG9mIGl0LgorICAgICAgICAgICAgICAgIC8vIEUuZy4gdGhlIGNoYXJhY3RlciBcdTAxRkEgd2lsbCBoYXZlIGFuIGV4cGFuc2lvbiBvZiAzLCBidXQgaWYKKyAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgb25seSBsb29raW5nIGZvciBBIHJpbmcgQVx1MDMwQSwgd2UnbGwgaGF2ZSB0byBza2lwIHRoZSAKKyAgICAgICAgICAgICAgICAvLyBsYXN0IGNlIGluIHRoZSBleHBhbnNpb24gYnVmZmVyCisgICAgICAgICAgICAgICAgbV9jb2xFSXRlcl8ucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBpZiAobV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgIT0gdGVtcCkgeworICAgICAgICAgICAgICAgICAgICBlbmQgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICB0ZW1wID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGV4cGFuc2lvbiAtLTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGludCBjb3VudCA9IG1fcGF0dGVybl8ubV9DRUxlbmd0aF87CisgICAgICAgICAgICB3aGlsZSAoY291bnQgPiAwKSB7CisgICAgICAgICAgICAgICAgaW50IGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ucHJldmlvdXMoKSk7CisgICAgICAgICAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgYmVsb3csIG5vdGUgdGhhdCBpZiBzdGF0dXMgaXMgYSBmYWlsdXJlCisgICAgICAgICAgICAgICAgLy8gdWNvbF9wcmV2aW91cyByZXR1cm5zIFVDT0xfTlVMTE9SREVSCisgICAgICAgICAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChoYXNFeHBhbnNpb24gJiYgY291bnQgPT0gMCAKKyAgICAgICAgICAgICAgICAgICAgJiYgbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgIT0gdGVtcCkgeworICAgICAgICAgICAgICAgICAgICBlbmQgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICB0ZW1wID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjZSAhPSBtX3BhdHRlcm5fLm1fQ0VfW2NvdW50IC0gMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgLS07CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgICAgICBtX3V0aWxCdWZmZXJfWzFdID0gZW5kOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgICBtX3V0aWxCdWZmZXJfWzBdID0gc3RhcnQ7CisgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMV0gPSBlbmQ7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDaGVja3MgYW5kIHNldHMgdGhlIG1hdGNoIGluZm9ybWF0aW9uIGlmIGZvdW5kLgorICAgICAqIENoZWNrcyAKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiB0aGUgY3VycmVudCBtYXRjaCBkb2VzIG5vdCByZXBlYXQgdGhlIGxhc3QgbWF0Y2gKKyAgICAgKiA8bGk+IGJvdW5kYXJpZXMgYXJlIGNvcnJlY3QKKyAgICAgKiA8bGk+IGV4YWN0IG1hdGNoZXMgaGFzIG5vIGV4dHJhIGFjY2VudHMKKyAgICAgKiA8bGk+IGlkZW50aWNhbCBtYXRjaGVzCisgICAgICogPC91bD4KKyAgICAgKiBPdGhlcndpc2UgdGhlIG9mZnNldCB3aWxsIGJlIHNoaWZ0ZWQgdG8gdGhlIHByZWNlZGluZyBjaGFyYWN0ZXIuCisgICAgICogVXNlcyB0aGUgdGVtcG9yYXJ5IHV0aWxpdHkgYnVmZmVyIHRvIHN0b3JlIHRoZSBtb2RpZmllZCB0ZXh0b2Zmc2V0LgorICAgICAqIEBwYXJhbSB0ZXh0b2Zmc2V0IG9mZnNldCBpbiB0aGUgY29sbGF0aW9uIGVsZW1lbnQgdGV4dC4gdGhlIHJldHVybmVkIHZhbHVlCisgICAgICogICAgICAgIHdpbGwgYmUgdGhlIHRydW5jYXRlZCBzdGFydCBvZmZzZXQgb2YgdGhlIG1hdGNoIG9yIHRoZSBuZXcgc3RhcnQgCisgICAgICogICAgICAgIHNlYXJjaCBvZmZzZXQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBtYXRjaCBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBib29sZWFuIGNoZWNrUHJldmlvdXNFeGFjdE1hdGNoKGludCB0ZXh0b2Zmc2V0KQorICAgIHsKKyAgICAgICAgLy8gdG8gZW5zdXJlIHRoYXQgdGhlIHN0YXJ0IGFuZCBlbmRzIGFyZSBub3QgY29tcG9zaXRlIGNoYXJhY3RlcnMKKyAgICAgICAgaW50IGVuZCA9IG1fY29sRUl0ZXJfLmdldE9mZnNldCgpOyAgICAgICAgCisgICAgICAgIGlmICghY2hlY2tQcmV2aW91c0V4YWN0Q29udHJhY3Rpb25NYXRjaCh0ZXh0b2Zmc2V0LCBlbmQpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgdGV4dG9mZnNldCA9IG1fdXRpbEJ1ZmZlcl9bMF07CisgICAgICAgIGVuZCA9IG1fdXRpbEJ1ZmZlcl9bMV07CisgICAgICAgICAgICAKKyAgICAgICAgLy8gdGhpcyB0b3RhbGx5IG1hdGNoZXMsIGhvd2V2ZXIgd2UgbmVlZCB0byBjaGVjayBpZiBpdCBpcyByZXBlYXRpbmcKKyAgICAgICAgLy8gdGhlIG9sZCBtYXRjaAorICAgICAgICBpZiAoY2hlY2tSZXBlYXRlZE1hdGNoKHRleHRvZmZzZXQsIGVuZCkgCisgICAgICAgICAgICB8fCAhaXNCcmVha1VuaXQodGV4dG9mZnNldCwgZW5kKSAKKyAgICAgICAgICAgIHx8IGhhc0FjY2VudHNCZWZvcmVNYXRjaCh0ZXh0b2Zmc2V0LCBlbmQpIAorICAgICAgICAgICAgfHwgIWNoZWNrSWRlbnRpY2FsKHRleHRvZmZzZXQsIGVuZCkgCisgICAgICAgICAgICB8fCBoYXNBY2NlbnRzQWZ0ZXJNYXRjaCh0ZXh0b2Zmc2V0LCBlbmQpKSB7CisgICAgICAgICAgICB0ZXh0b2Zmc2V0IC0tOworICAgICAgICAgICAgdGV4dG9mZnNldCA9IGdldFByZXZpb3VzQmFzZU9mZnNldCh0YXJnZXRUZXh0LCB0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSB0ZXh0b2Zmc2V0OworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IHRleHRvZmZzZXQ7CisgICAgICAgIG1hdGNoTGVuZ3RoID0gZW5kIC0gdGV4dG9mZnNldDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVhcnJhbmdlcyB0aGUgZW5kIGFjY2VudHMgdG8gdHJ5IG1hdGNoaW5nLgorICAgICAqIFN1ZmZpeCBhY2NlbnRzIGluIHRoZSB0ZXh0IHdpbGwgYmUgZ3JvdXBlZCBhY2NvcmRpbmcgdG8gdGhlaXIgY29tYmluaW5nIAorICAgICAqIGNsYXNzIGFuZCB0aGUgZ3JvdXBzIHdpbGwgYmUgbWl4ZWQgYW5kIG1hdGNoZWQgdG8gdHJ5IGZpbmQgdGhlIHBlcmZlY3QgCisgICAgICogbWF0Y2ggd2l0aCB0aGUgcGF0dGVybi4KKyAgICAgKiBTbyBmb3IgaW5zdGFuY2UgbG9va2luZyBmb3IgIlx1MDMwMSIgaW4gIlx1MDMwQVx1MDMwMVx1MDMyNSIKKyAgICAgKiBzdGVwIDE6IHNwbGl0ICJcdTAzMEFcdTAzMDEiIGludG8gNiBvdGhlciB0eXBlIG9mIHBvdGVudGlhbCBhY2NlbnQgCisgICAgICogICAgICAgICAgICAgc3Vic3RyaW5ncworICAgICAqICAgICAgICAgIlx1MDMwQSIsICJcdTAzMDEiLCAiXHUwMzI1IiwgIlx1MDMwQVx1MDMwMSIsICJcdTAzMEFcdTAzMjUiLCAKKyAgICAgKiAgICAgICAgICJcdTAzMDFcdTAzMjUiLgorICAgICAqIHN0ZXAgMjogY2hlY2sgaWYgYW55IG9mIHRoZSBnZW5lcmF0ZWQgc3Vic3RyaW5ncyBtYXRjaGVzIHRoZSBwYXR0ZXJuLgorICAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgdGhlIGZpcnN0IGJhc2UgY2hhcmFjdGVyCisgICAgICogQHBhcmFtIGVuZCBzdGFydCBvZiB0aGUgbGFzdCBhY2NlbnQgc2V0CisgICAgICogQHJldHVybiBET05FIGlmIGEgbWF0Y2ggaXMgbm90IGZvdW5kLCBvdGhlcndpc2UgcmV0dXJuIHRoZSBlbmRpbmcKKyAgICAgKiAgICAgICAgIG9mZnNldCBvZiB0aGUgbWF0Y2guIE5vdGUgdGhpcyBzdGFydCBpbmNsdWRlcyBhbGwgZm9sbG93aW5nIAorICAgICAqICAgICAgICAgYWNjZW50cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBkb1ByZXZpb3VzQ2Fub25pY2FsU3VmZml4TWF0Y2goaW50IHN0YXJ0LCBpbnQgZW5kKQorICAgIHsKKyAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChlbmQpOworICAgICAgICBpZiAoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSh0YXJnZXRUZXh0LnByZXZpb3VzKCkpIAorICAgICAgICAgICAgJiYgdGFyZ2V0VGV4dC5nZXRJbmRleCgpID4gbV90ZXh0QmVnaW5PZmZzZXRfKSB7CisgICAgICAgICAgICBpZiAoIVVURjE2LmlzTGVhZFN1cnJvZ2F0ZSh0YXJnZXRUZXh0LnByZXZpb3VzKCkpKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0VGV4dC5uZXh0KCk7CisgICAgICAgICAgICB9IAorICAgICAgICB9CisgICAgICAgIGlmICgoZ2V0RkNEKHRhcmdldFRleHQsIHRhcmdldFRleHQuZ2V0SW5kZXgoKSkgJiBMQVNUX0JZVEVfTUFTS18pID09IDApIHsKKyAgICAgICAgICAgIC8vIGRpZS4uLiBmYWlsZWQgYXQgYSBiYXNlIGNoYXJhY3RlcgorICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICAgICAgZW5kID0gZ2V0TmV4dEJhc2VPZmZzZXQodGFyZ2V0VGV4dCwgZW5kKTsKKyAgICAKKyAgICAgICAgU3RyaW5nQnVmZmVyIGFjY2VudHMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludCBvZmZzZXQgPSBnZXRQcmV2aW91c0Jhc2VPZmZzZXQodGFyZ2V0VGV4dCwgZW5kKTsKKyAgICAgICAgLy8gbm9ybWFsaXppbmcgdGhlIG9mZmVuc2l2ZSBzdHJpbmcKKyAgICAgICAgU3RyaW5nIGFjY2VudHN0ciA9IGdldFN0cmluZyh0YXJnZXRUZXh0LCBvZmZzZXQsIGVuZCAtIG9mZnNldCk7CisgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2soYWNjZW50c3RyLCBOb3JtYWxpemVyLk5GRCwwKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBOb3JtYWxpemVyLk5PKSB7CisgICAgICAgICAgICBhY2NlbnRzdHIgPSBOb3JtYWxpemVyLmRlY29tcG9zZShhY2NlbnRzdHIsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBhY2NlbnRzLmFwcGVuZChhY2NlbnRzdHIpOyAgICAKKyAgICAgICAgICAgIAorICAgICAgICBpbnQgYWNjZW50c2luZGV4W10gPSBuZXcgaW50W0lOSVRJQUxfQVJSQVlfU0laRV9dOyAgICAgIAorICAgICAgICBpbnQgYWNjZW50c2l6ZSA9IGdldFVuYmxvY2tlZEFjY2VudEluZGV4KGFjY2VudHMsIGFjY2VudHNpbmRleCk7CisgICAgICAgIGludCBjb3VudCA9ICgyIDw8IChhY2NlbnRzaXplIC0gMSkpIC0gMTsgIAorICAgICAgICB3aGlsZSAoY291bnQgPiAwKSB7CisgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmRlbGV0ZSgwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIC8vIGNvcHkgdGhlIGJhc2UgY2hhcmFjdGVycworICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBhY2NlbnRzaW5kZXhbMF07IGsgKyspIHsKKyAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5hcHBlbmQoYWNjZW50cy5jaGFyQXQoaykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gZm9ybWluZyBhbGwgcG9zc2libGUgY2Fub25pY2FsIHJlYXJyYW5nZW1lbnQgYnkgZHJvcHBpbmcKKyAgICAgICAgICAgIC8vIHNldHMgb2YgYWNjZW50cworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gYWNjZW50c2l6ZSAtIDE7IGkgKyspIHsKKyAgICAgICAgICAgICAgICBpbnQgbWFzayA9IDEgPDwgKGFjY2VudHNpemUgLSBpIC0gMSk7CisgICAgICAgICAgICAgICAgaWYgKChjb3VudCAmIG1hc2spICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IGFjY2VudHNpbmRleFtpXTsgaiA8IGFjY2VudHNpbmRleFtpICsgMV07IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaiArKykgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxTdWZmaXhBY2NlbnRzXy5hcHBlbmQoYWNjZW50cy5jaGFyQXQoaikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgU3RyaW5nQnVmZmVyIG1hdGNoID0gbWVyZ2UobV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXywgdGFyZ2V0VGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCwgb2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfKTsKKyAgICAgICAgICAgIC8vIHJ1biB0aGUgY29sbGF0b3IgaXRlcmF0b3IgdGhyb3VnaCB0aGlzIG1hdGNoCisgICAgICAgICAgICAvLyBpZiBzdGF0dXMgaXMgYSBmYWlsdXJlIHVjb2xfc2V0VGV4dCBkb2VzIG5vdGhpbmcKKyAgICAgICAgICAgIG1fdXRpbENvbEVJdGVyXy5zZXRUZXh0KG1hdGNoLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgaWYgKGNoZWNrQ29sbGF0aW9uTWF0Y2gobV91dGlsQ29sRUl0ZXJfKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBlbmQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRE9ORTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGFrZSB0aGUgcmVhcnJhbmdlZCBzdGFydCBhY2NlbnRzIGFuZCB0cmllcyBtYXRjaGluZy4gSWYgbWF0Y2ggZmFpbGVkIGF0CisgICAgICogYSBzZXBlcmF0ZSBmb2xsb3dpbmcgc2V0IG9mIGFjY2VudHMgKHNlcGVyYXRlZCBmcm9tIHRoZSByZWFycmFuZ2VkIG9uIGJ5CisgICAgICogYXQgbGVhc3QgYSBiYXNlIGNoYXJhY3RlcikgdGhlbiB3ZSByZWFycmFuZ2UgdGhlIHByZWNlZGluZyBhY2NlbnRzIGFuZCAKKyAgICAgKiB0cmllcyBtYXRjaGluZyBhZ2Fpbi4KKyAgICAgKiBXZSBhbGxvdyBza2lwcGluZyBvZiB0aGUgZW5kcyBvZiB0aGUgYWNjZW50IHNldCBpZiB0aGUgY2VzIGRvIG5vdCBtYXRjaC4gCisgICAgICogSG93ZXZlciBpZiB0aGUgZmFpbHVyZSBpcyBmb3VuZCBiZWZvcmUgdGhlIGFjY2VudCBzZXQsIGl0IGZhaWxzLgorICAgICAqIEludGVybmFsIG1ldGhvZCwgc3RhdHVzIGFzc3VtZWQgdG8gYmUgc3VjY2VzcywgY2FsbGVyIGhhcyB0byBjaGVjayAKKyAgICAgKiBzdGF0dXMgYmVmb3JlIGNhbGxpbmcgdGhpcyBtZXRob2QuCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgb2YgdGhlIGVuZHMgb2YgdGhlIHJlYXJyYW5nZWQgYWNjZW50CisgICAgICogQHJldHVybiBET05FIGlmIGEgbWF0Y2ggaXMgbm90IGZvdW5kLCBvdGhlcndpc2UgcmV0dXJuIHRoZSBlbmRpbmcgb2Zmc2V0IAorICAgICAqICAgICAgICAgICAgIG9mIHRoZSBtYXRjaC4gTm90ZSB0aGlzIHN0YXJ0IGluY2x1ZGVzIGFsbCBmb2xsb3dpbmcgYWNjZW50cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBkb1ByZXZpb3VzQ2Fub25pY2FsUHJlZml4TWF0Y2goaW50IHRleHRvZmZzZXQpCisgICAgeworICAgICAgIC8vIGludCBzYWZlbGVuZ3RoID0gMDsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNhZmV0ZXh0OworICAgICAgICBpbnQgc2FmZW9mZnNldCA9IHRleHRvZmZzZXQ7CisgICAgCisgICAgICAgIGlmICh0ZXh0b2Zmc2V0ID4gbV90ZXh0QmVnaW5PZmZzZXRfCisgICAgICAgICAgICAmJiBtX2NvbGxhdG9yXy5pc1Vuc2FmZShtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmNoYXJBdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkgLSAxKSkpIHsKKyAgICAgICAgICAgIHNhZmVvZmZzZXQgPSBnZXROZXh0U2FmZU9mZnNldCh0ZXh0b2Zmc2V0LCBtX3RleHRMaW1pdE9mZnNldF8pOworICAgICAgICAgICAgLy9zYWZlbGVuZ3RoID0gc2FmZW9mZnNldCAtIHRleHRvZmZzZXQ7CisgICAgICAgICAgICBzYWZldGV4dCA9IG1lcmdlKG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18sIHRhcmdldFRleHQsIHRleHRvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlb2Zmc2V0LCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHNhZmV0ZXh0ID0gbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXzsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvLyBpZiBzdGF0dXMgaXMgYSBmYWlsdXJlLCB1Y29sX3NldFRleHQgZG9lcyBub3RoaW5nCisgICAgICAgIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvciBjb2xlaXRlciA9IG1fdXRpbENvbEVJdGVyXzsKKyAgICAgICAgY29sZWl0ZXIuc2V0VGV4dChzYWZldGV4dC50b1N0cmluZygpKTsKKyAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgaW4gbG9vcCBiZWxvdworICAgICAgICAKKyAgICAgICAgaW50IGNlaW5kZXggPSAwOworICAgICAgICBib29sZWFuIGlzU2FmZSA9IHRydWU7IC8vIHNhZmUgem9uZSBpbmRpY2F0aW9uIGZsYWcgZm9yIHBvc2l0aW9uCisgICAgICAgIGludCBwcmVmaXhsZW5ndGggPSBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmxlbmd0aCgpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGNlaW5kZXggPCBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfKSB7CisgICAgICAgICAgICBpbnQgdGV4dGNlID0gY29sZWl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKHRleHRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBwYXNzZWQgdGhlIHNhZmUgYnVmZmVyCisgICAgICAgICAgICAgICAgaWYgKGNvbGVpdGVyID09IG1fY29sRUl0ZXJfKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBET05FOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoc2FmZXRleHQgIT0gbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXykgeworICAgICAgICAgICAgICAgICAgICBzYWZldGV4dC5kZWxldGUoMCwgc2FmZXRleHQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb2xlaXRlciA9IG1fY29sRUl0ZXJfOworICAgICAgICAgICAgICAgIGNvbGVpdGVyLnNldEV4YWN0T2Zmc2V0KHNhZmVvZmZzZXQpOworICAgICAgICAgICAgICAgIC8vIHN0YXR1cyBjaGVja2VkIGF0IHRoZSBzdGFydCBvZiB0aGUgbG9vcAorICAgICAgICAgICAgICAgIGlzU2FmZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGV4dGNlID0gZ2V0Q0UodGV4dGNlKTsKKyAgICAgICAgICAgIGlmICh0ZXh0Y2UgIT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSAKKyAgICAgICAgICAgICAgICAmJiB0ZXh0Y2UgIT0gbV9wYXR0ZXJuXy5tX0NFX1tjZWluZGV4XSkgeworICAgICAgICAgICAgICAgIC8vIGRvIHRoZSBiZWdpbm5pbmcgc3R1ZmYKKyAgICAgICAgICAgICAgICBpbnQgZmFpbGVkb2Zmc2V0ID0gY29sZWl0ZXIuZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgaWYgKGlzU2FmZSAmJiBmYWlsZWRvZmZzZXQgPD0gcHJlZml4bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGFsYXMuLi4gbm8gaG9wZS4gZmFpbGVkIGF0IHJlYXJyYW5nZWQgYWNjZW50IHNldAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRE9ORTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc1NhZmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxlZG9mZnNldCA9IHNhZmVvZmZzZXQgLSBmYWlsZWRvZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2FmZXRleHQgIT0gbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmV0ZXh0LmRlbGV0ZSgwLCBzYWZldGV4dC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIC8vIHRyeSByZWFycmFuZ2luZyB0aGUgZW5kIGFjY2VudHMKKyAgICAgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IGRvUHJldmlvdXNDYW5vbmljYWxTdWZmaXhNYXRjaCh0ZXh0b2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsZWRvZmZzZXQpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IERPTkUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUsIHVjb2xfc2V0T2Zmc2V0IGRvZXMgbm90aGluZworICAgICAgICAgICAgICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQocmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ZXh0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1tjZWluZGV4XSkgeworICAgICAgICAgICAgICAgIGNlaW5kZXggKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gc2V0IG9mZnNldCBoZXJlCisgICAgICAgIGlmIChpc1NhZmUpIHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBjb2xlaXRlci5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgIC8vIHNldHMgdGhlIHRleHQgaXRlcmF0b3IgaGVyZSB3aXRoIHRoZSBjb3JyZWN0IGV4cGFuc2lvbiBhbmQgb2Zmc2V0CisgICAgICAgICAgICBpbnQgbGVmdG92ZXJjZXMgPSBjb2xlaXRlci5tX0NFQnVmZmVyU2l6ZV8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIGNvbGVpdGVyLm1fQ0VCdWZmZXJPZmZzZXRfOworICAgICAgICAgICAgaWYgKHJlc3VsdCA8PSBwcmVmaXhsZW5ndGgpIHsgCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGV4dG9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRleHRvZmZzZXQgKyAoc2FmZW9mZnNldCAtIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldChyZXN1bHQpOworICAgICAgICAgICAgbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF8gPSBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyU2l6ZV8gCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBsZWZ0b3ZlcmNlczsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBjb2xlaXRlci5nZXRPZmZzZXQoKTsgICAgICAgICAgICAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBUcnlpbmcgb3V0IHRoZSBzdWJzdHJpbmcgYW5kIHNlZXMgaWYgaXQgY2FuIGJlIGEgY2Fub25pY2FsIG1hdGNoLgorICAgICAqIFRoaXMgd2lsbCB0cnkgbm9ybWFsaXppbmcgdGhlIHN0YXJ0aW5nIGFjY2VudHMgYW5kIGFycmFuZ2luZyB0aGVtIGludG8gCisgICAgICogY2Fub25pY2FsIGVxdWl2YWxlbnRzIGFuZCBjaGVjayB0aGVpciBjb3JyZXNwb25kaW5nIGNlcyB3aXRoIHRoZSBwYXR0ZXJuIAorICAgICAqIGNlLgorICAgICAqIFByZWZpeCBhY2NlbnRzIGluIHRoZSB0ZXh0IHdpbGwgYmUgZ3JvdXBlZCBhY2NvcmRpbmcgdG8gdGhlaXIgY29tYmluaW5nIAorICAgICAqIGNsYXNzIGFuZCB0aGUgZ3JvdXBzIHdpbGwgYmUgbWl4ZWQgYW5kIG1hdGNoZWQgdG8gdHJ5IGZpbmQgdGhlIHBlcmZlY3QgCisgICAgICogbWF0Y2ggd2l0aCB0aGUgcGF0dGVybi4KKyAgICAgKiBTbyBmb3IgaW5zdGFuY2UgbG9va2luZyBmb3IgIlx1MDMwMSIgaW4gIlx1MDMwQVx1MDMwMVx1MDMyNSIKKyAgICAgKiBzdGVwIDE6IHNwbGl0ICJcdTAzMEFcdTAzMDEiIGludG8gNiBvdGhlciB0eXBlIG9mIHBvdGVudGlhbCBhY2NlbnQgCisgICAgICogICAgICAgICAgICBzdWJzdHJpbmdzCisgICAgICogICAgICAgICAiXHUwMzBBIiwgIlx1MDMwMSIsICJcdTAzMjUiLCAiXHUwMzBBXHUwMzAxIiwgIlx1MDMwQVx1MDMyNSIsIAorICAgICAqICAgICAgICAgIlx1MDMwMVx1MDMyNSIuCisgICAgICogc3RlcCAyOiBjaGVjayBpZiBhbnkgb2YgdGhlIGdlbmVyYXRlZCBzdWJzdHJpbmdzIG1hdGNoZXMgdGhlIHBhdHRlcm4uCisgICAgICogQHBhcmFtIHRleHRvZmZzZXQgc3RhcnQgb2Zmc2V0IGluIHRoZSBjb2xsYXRpb24gZWxlbWVudCB0ZXh0IHRoYXQgc3RhcnRzIAorICAgICAqICAgICAgICAgICAgICAgICAgIHdpdGggdGhlIGFjY2VudHMgdG8gYmUgcmVhcnJhbmdlZAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbWF0Y2ggaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lzZQorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBkb1ByZXZpb3VzQ2Fub25pY2FsTWF0Y2goaW50IHRleHRvZmZzZXQpCisgICAgeworICAgICAgICBpbnQgb2Zmc2V0ID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgIGlmICgoZ2V0RkNEKHRhcmdldFRleHQsIHRleHRvZmZzZXQpID4+IFNFQ09ORF9MQVNUX0JZVEVfU0hJRlRfKSA9PSAwKSB7CisgICAgICAgICAgICBpZiAobV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfKSB7CisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gZG9QcmV2aW91c0Nhbm9uaWNhbFN1ZmZpeE1hdGNoKHRleHRvZmZzZXQsIG9mZnNldCk7CisgICAgICAgICAgICAgICAgaWYgKG9mZnNldCAhPSBET05FKSB7CisgICAgICAgICAgICAgICAgICAgIG1fY29sRUl0ZXJfLnNldEV4YWN0T2Zmc2V0KG9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBpZiAoIW1fcGF0dGVybl8ubV9oYXNQcmVmaXhBY2NlbnRzXykgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgCisgICAgICAgIFN0cmluZ0J1ZmZlciBhY2NlbnRzID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAvLyBvZmZzZXQgdG8gdGhlIGxhc3QgYmFzZSBjaGFyYWN0ZXIgaW4gc3Vic3RyaW5nIHRvIHNlYXJjaAorICAgICAgICBpbnQgYmFzZW9mZnNldCA9IGdldE5leHRCYXNlT2Zmc2V0KHRhcmdldFRleHQsIHRleHRvZmZzZXQpOworICAgICAgICAvLyBub3JtYWxpemluZyB0aGUgb2ZmZW5zaXZlIHN0cmluZworICAgICAgICBTdHJpbmcgdGV4dHN0ciA9IGdldFN0cmluZyh0YXJnZXRUZXh0LCB0ZXh0b2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlb2Zmc2V0IC0gdGV4dG9mZnNldCk7CisgICAgICAgIGlmIChOb3JtYWxpemVyLnF1aWNrQ2hlY2sodGV4dHN0ciwgTm9ybWFsaXplci5ORkQsMCkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gTm9ybWFsaXplci5OTykgeworICAgICAgICAgICAgdGV4dHN0ciA9IE5vcm1hbGl6ZXIuZGVjb21wb3NlKHRleHRzdHIsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBhY2NlbnRzLmFwcGVuZCh0ZXh0c3RyKTsKKyAgICAgICAgLy8gc3RhdHVzIGNoZWNrZWQgaW4gbG9vcAorICAgICAgICAgICAgCisgICAgICAgIGludCBhY2NlbnRzaW5kZXhbXSA9IG5ldyBpbnRbSU5JVElBTF9BUlJBWV9TSVpFX107CisgICAgICAgIGludCBzaXplID0gZ2V0VW5ibG9ja2VkQWNjZW50SW5kZXgoYWNjZW50cywgYWNjZW50c2luZGV4KTsKKyAgICAKKyAgICAgICAgLy8gMiBwb3dlciBuIC0gMSBwbHVzIHRoZSBmdWxsIHNldCBvZiBhY2NlbnRzCisgICAgICAgIGludCBjb3VudCA9ICgyIDw8IChzaXplIC0gMSkpIC0gMTsgIAorICAgICAgICB3aGlsZSAoY291bnQgPiAwKSB7CisgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmRlbGV0ZSgwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIC8vIGNvcHkgdGhlIGJhc2UgY2hhcmFjdGVycworICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBhY2NlbnRzaW5kZXhbMF07IGsgKyspIHsKKyAgICAgICAgICAgICAgICBtX2Nhbm9uaWNhbFByZWZpeEFjY2VudHNfLmFwcGVuZChhY2NlbnRzLmNoYXJBdChrKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBmb3JtaW5nIGFsbCBwb3NzaWJsZSBjYW5vbmljYWwgcmVhcnJhbmdlbWVudCBieSBkcm9wcGluZworICAgICAgICAgICAgLy8gc2V0cyBvZiBhY2NlbnRzCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBzaXplIC0gMTsgaSArKykgeworICAgICAgICAgICAgICAgIGludCBtYXNrID0gMSA8PCAoc2l6ZSAtIGkgLSAxKTsKKyAgICAgICAgICAgICAgICBpZiAoKGNvdW50ICYgbWFzaykgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqID0gYWNjZW50c2luZGV4W2ldOyBqIDwgYWNjZW50c2luZGV4W2kgKyAxXTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgaiArKykgeworICAgICAgICAgICAgICAgICAgICAgICAgbV9jYW5vbmljYWxQcmVmaXhBY2NlbnRzXy5hcHBlbmQoYWNjZW50cy5jaGFyQXQoaikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgb2Zmc2V0ID0gZG9QcmV2aW91c0Nhbm9uaWNhbFByZWZpeE1hdGNoKGJhc2VvZmZzZXQpOworICAgICAgICAgICAgaWYgKG9mZnNldCAhPSBET05FKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIG1hdGNoIGZvdW5kCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENoZWNrcyBtYXRjaCBmb3IgY29udHJhY3Rpb24uIAorICAgICAqIElmIHRoZSBtYXRjaCBzdGFydHMgd2l0aCBhIHBhcnRpYWwgY29udHJhY3Rpb24gd2UgZmFpbC4KKyAgICAgKiBVc2VzIHRoZSB0ZW1wb3JhcnkgdXRpbGl0eSBidWZmZXIgdG8gcmV0dXJuIHRoZSBtb2RpZmllZCBzdGFydCBhbmQgZW5kLgorICAgICAqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgcG90ZW50aWFsIG1hdGNoLCB0byBiZSBtb2RpZmllZCBpZiBuZWNlc3NhcnkKKyAgICAgKiBAcGFyYW0gZW5kIG9mZnNldCBvZiBwb3RlbnRpYWwgbWF0Y2gsIHRvIGJlIG1vZGlmaWVkIGlmIG5lY2Vzc2FyeQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBtYXRjaCBwYXNzZXMgdGhlIGNvbnRyYWN0aW9uIHRlc3QsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY2hlY2tQcmV2aW91c0Nhbm9uaWNhbENvbnRyYWN0aW9uTWF0Y2goaW50IHN0YXJ0LCBpbnQgZW5kKSAKKyAgICB7CisgICAgICAgIGludCB0ZW1wID0gZW5kOworICAgICAgICAvLyBUaGlzIHBhcnQgY2hlY2tzIGlmIGVpdGhlciBlbmRzIG9mIHRoZSBtYXRjaCBjb250YWlucyBwb3RlbnRpYWwgCisgICAgICAgIC8vIGNvbnRyYWN0aW9uLiBJZiBzbyB3ZSdsbCBoYXZlIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGVtCisgICAgICAgIGNoYXIgZWNoYXIgPSAwOworICAgICAgICBjaGFyIHNjaGFyID0gMDsKKyAgICAgICAgaWYgKGVuZCA8IG1fdGV4dExpbWl0T2Zmc2V0XykgeworICAgICAgICAgICAgdGFyZ2V0VGV4dC5zZXRJbmRleChlbmQpOworICAgICAgICAgICAgZWNoYXIgPSB0YXJnZXRUZXh0LmN1cnJlbnQoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhcnQgKyAxIDwgbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KHN0YXJ0ICsgMSk7CisgICAgICAgICAgICBzY2hhciA9IHRhcmdldFRleHQuY3VycmVudCgpOworICAgICAgICB9CisgICAgICAgIGlmIChtX2NvbGxhdG9yXy5pc1Vuc2FmZShlY2hhcikgfHwgbV9jb2xsYXRvcl8uaXNVbnNhZmUoc2NoYXIpKSB7CisgICAgICAgICAgICBpbnQgZXhwYW5zaW9uID0gbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlclNpemVfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfOworICAgICAgICAgICAgYm9vbGVhbiBoYXNFeHBhbnNpb24gPSBleHBhbnNpb24gPiAwOworICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQoZW5kKTsKKyAgICAgICAgICAgIHdoaWxlIChleHBhbnNpb24gPiAwKSB7CisgICAgICAgICAgICAgICAgLy8gZ2V0dGluZyByaWQgb2YgdGhlIHJlZHVuZGFudCBjZQorICAgICAgICAgICAgICAgIC8vIHNpbmNlIGZvcndhcmQgY29udHJhY3Rpb24vZXhwYW5zaW9uIG1heSBoYXZlIGV4dHJhIGNlcworICAgICAgICAgICAgICAgIC8vIGlmIHdlIGFyZSBpbiB0aGUgbm9ybWFsaXphdGlvbiBidWZmZXIsIGhhc0FjY2VudHNCZWZvcmVNYXRjaAorICAgICAgICAgICAgICAgIC8vIHdvdWxkIGhhdmUgdGFrZW4gY2FyZSBvZiBpdC4KKyAgICAgICAgICAgICAgICAvLyBFLmcuIHRoZSBjaGFyYWN0ZXIgXHUwMUZBIHdpbGwgaGF2ZSBhbiBleHBhbnNpb24gb2YgMywgYnV0IAorICAgICAgICAgICAgICAgIC8vIGlmIHdlIGFyZSBvbmx5IGxvb2tpbmcgZm9yIEEgcmluZyBBXHUwMzBBLCB3ZSdsbCBoYXZlIHRvIAorICAgICAgICAgICAgICAgIC8vIHNraXAgdGhlIGxhc3QgY2UgaW4gdGhlIGV4cGFuc2lvbiBidWZmZXIKKyAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIGlmIChtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKSAhPSB0ZW1wKSB7CisgICAgICAgICAgICAgICAgICAgIGVuZCA9IHRlbXA7CisgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZXhwYW5zaW9uIC0tOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaW50IGNvdW50ID0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXzsKKyAgICAgICAgICAgIHdoaWxlIChjb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBpbnQgY2UgPSBnZXRDRShtX2NvbEVJdGVyXy5wcmV2aW91cygpKTsKKyAgICAgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBiZWxvdywgbm90ZSB0aGF0IGlmIHN0YXR1cyBpcyBhIGZhaWx1cmUKKyAgICAgICAgICAgICAgICAvLyBwcmV2aW91cygpIHJldHVybnMgTlVMTE9SREVSCisgICAgICAgICAgICAgICAgaWYgKGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChoYXNFeHBhbnNpb24gJiYgY291bnQgPT0gMCAKKyAgICAgICAgICAgICAgICAgICAgJiYgbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkgIT0gdGVtcCkgeworICAgICAgICAgICAgICAgICAgICBlbmQgPSB0ZW1wOworICAgICAgICAgICAgICAgICAgICB0ZW1wID0gbV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfIAorICAgICAgICAgICAgICAgICAgICAmJiBjZSAhPSBtX3BhdHRlcm5fLm1fQ0VfW21fcGF0dGVybl8ubV9DRUxlbmd0aF8gLSAxXSkgeworICAgICAgICAgICAgICAgICAgICAvLyBhY2NlbnRzIG1heSBoYXZlIGV4dHJhIHN0YXJ0aW5nIGNlcywgdGhpcyBvY2N1cnMgd2hlbiBhIAorICAgICAgICAgICAgICAgICAgICAvLyBwdXJlIGFjY2VudCBwYXR0ZXJuIGlzIG1hdGNoZWQgd2l0aG91dCByZWFycmFuZ2VtZW50CisgICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZCA9IG1fcGF0dGVybl8ubV9DRV9bbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyAtIDFdOworICAgICAgICAgICAgICAgICAgICB0YXJnZXRUZXh0LnNldEluZGV4KGVuZCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRUZXh0LmdldEluZGV4KCkgPiBtX3RleHRCZWdpbk9mZnNldF8gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAhVVRGMTYuaXNMZWFkU3Vycm9nYXRlKHRhcmdldFRleHQucHJldmlvdXMoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRUZXh0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbmQgPSB0YXJnZXRUZXh0LmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgICAgIGlmICgoZ2V0RkNEKHRhcmdldFRleHQsIGVuZCkgJiBMQVNUX0JZVEVfTUFTS18pICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNlID0gZ2V0Q0UobV9jb2xFSXRlcl8ucHJldmlvdXMoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY2UgIT0gZXhwZWN0ZWQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGNlICE9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIG1fY29sRUl0ZXJfLmdldE9mZnNldCgpIDw9IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2UgPSBnZXRDRShtX2NvbEVJdGVyXy5wcmV2aW91cygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2UgIT0gbV9wYXR0ZXJuXy5tX0NFX1tjb3VudCAtIDFdKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0IC0tOworICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGdldFByZXZpb3VzQmFzZU9mZnNldChzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIG1fdXRpbEJ1ZmZlcl9bMF0gPSBzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgbV91dGlsQnVmZmVyX1sxXSA9IGVuZDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHN0YXJ0OworICAgICAgICBtX3V0aWxCdWZmZXJfWzFdID0gZW5kOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ2hlY2tzIGFuZCBzZXRzIHRoZSBtYXRjaCBpbmZvcm1hdGlvbiBpZiBmb3VuZC4KKyAgICAgKiBDaGVja3MgCisgICAgICogPHVsPgorICAgICAqIDxsaT4gdGhlIHBvdGVudGlhbCBtYXRjaCBkb2VzIG5vdCByZXBlYXQgdGhlIHByZXZpb3VzIG1hdGNoCisgICAgICogPGxpPiBib3VuZGFyaWVzIGFyZSBjb3JyZWN0CisgICAgICogPGxpPiBwb3RlbnRpYWwgbWF0Y2ggZG9lcyBub3QgZW5kIGluIHRoZSBtaWRkbGUgb2YgYSBjb250cmFjdGlvbgorICAgICAqIDxsaT4gaWRlbnRpY2FsIG1hdGNoZXMKKyAgICAgKiA8L3VsPgorICAgICAqIE90aGVyd2lzZSB0aGUgb2Zmc2V0IHdpbGwgYmUgc2hpZnRlZCB0byB0aGUgbmV4dCBjaGFyYWN0ZXIuCisgICAgICogVXNlcyB0aGUgdGVtcG9yYXJ5IHV0aWxpdHkgYnVmZmVyIGZvciBzdG9yaW5nIHRoZSBtb2RpZmllZCB0ZXh0b2Zmc2V0LgorICAgICAqIEBwYXJhbSB0ZXh0b2Zmc2V0IG9mZnNldCBpbiB0aGUgY29sbGF0aW9uIGVsZW1lbnQgdGV4dC4gdGhlIHJldHVybmVkIAorICAgICAqICAgICAgICAgICAgIHZhbHVlIHdpbGwgYmUgdGhlIHRydW5jYXRlZCBzdGFydCBvZmZzZXQgb2YgdGhlIG1hdGNoIG9yIHRoZSAKKyAgICAgKiAgICAgICAgICAgICBuZXcgc3RhcnQgc2VhcmNoIG9mZnNldC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIG1hdGNoIGlzIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY2hlY2tQcmV2aW91c0Nhbm9uaWNhbE1hdGNoKGludCB0ZXh0b2Zmc2V0KQorICAgIHsKKyAgICAgICAgLy8gdG8gZW5zdXJlIHRoYXQgdGhlIHN0YXJ0IGFuZCBlbmRzIGFyZSBub3QgY29tcG9zaXRlIGNoYXJhY3RlcnMKKyAgICAgICAgLy8gaWYgd2UgaGF2ZSBhIGNhbm9uaWNhbCBhY2NlbnQgbWF0Y2gKKyAgICAgICAgaWYgKG1fcGF0dGVybl8ubV9oYXNTdWZmaXhBY2NlbnRzXyAKKyAgICAgICAgICAgICYmIG1fY2Fub25pY2FsU3VmZml4QWNjZW50c18ubGVuZ3RoKCkgIT0gMCAKKyAgICAgICAgICAgIHx8IG1fcGF0dGVybl8ubV9oYXNQcmVmaXhBY2NlbnRzXyAKKyAgICAgICAgICAgICYmIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICAgICAgbV9tYXRjaGVkSW5kZXhfID0gdGV4dG9mZnNldDsKKyAgICAgICAgICAgIG1hdGNoTGVuZ3RoID0gZ2V0TmV4dEJhc2VPZmZzZXQobV9jb2xFSXRlcl8uZ2V0T2Zmc2V0KCkpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gdGV4dG9mZnNldDsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgCisgICAgICAgIGludCBlbmQgPSBtX2NvbEVJdGVyXy5nZXRPZmZzZXQoKTsKKyAgICAgICAgaWYgKCFjaGVja1ByZXZpb3VzQ2Fub25pY2FsQ29udHJhY3Rpb25NYXRjaCh0ZXh0b2Zmc2V0LCBlbmQpKSB7CisgICAgICAgICAgICAvLyBzdG9yaW5nIHRoZSBtb2RpZmllZCB0ZXh0b2Zmc2V0CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgdGV4dG9mZnNldCA9IG1fdXRpbEJ1ZmZlcl9bMF07CisgICAgICAgIGVuZCA9IG1fdXRpbEJ1ZmZlcl9bMV07CisgICAgICAgIGVuZCA9IGdldE5leHRCYXNlT2Zmc2V0KGVuZCk7CisgICAgICAgIC8vIHRoaXMgdG90YWxseSBtYXRjaGVzLCBob3dldmVyIHdlIG5lZWQgdG8gY2hlY2sgaWYgaXQgaXMgcmVwZWF0aW5nCisgICAgICAgIGlmIChjaGVja1JlcGVhdGVkTWF0Y2godGV4dG9mZnNldCwgZW5kKSAKKyAgICAgICAgICAgIHx8ICFpc0JyZWFrVW5pdCh0ZXh0b2Zmc2V0LCBlbmQpIAorICAgICAgICAgICAgfHwgIWNoZWNrSWRlbnRpY2FsKHRleHRvZmZzZXQsIGVuZCkpIHsKKyAgICAgICAgICAgIHRleHRvZmZzZXQgLS07CisgICAgICAgICAgICB0ZXh0b2Zmc2V0ID0gZ2V0UHJldmlvdXNCYXNlT2Zmc2V0KHRleHRvZmZzZXQpOworICAgICAgICAgICAgbV91dGlsQnVmZmVyX1swXSA9IHRleHRvZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG1fbWF0Y2hlZEluZGV4XyA9IHRleHRvZmZzZXQ7CisgICAgICAgIG1hdGNoTGVuZ3RoID0gZW5kIC0gdGV4dG9mZnNldDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE1ldGhvZCB0aGF0IGRvZXMgdGhlIG5leHQgZXhhY3QgbWF0Y2gKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCB0byBzdGFydCBzaGlmdGluZyBmcm9tIGFuZCBwZXJmb3JtaW5nIHRoZSAKKyAgICAgKiAgICAgICAgbmV4dCBleGFjdCBtYXRjaAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVOZXh0RXhhY3QoaW50IHN0YXJ0KQorICAgIHsKKyAgICAgICAgaW50IHRleHRvZmZzZXQgPSBzaGlmdEZvcndhcmQoc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfKTsKKyAgICAgICAgaW50IHRhcmdldGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgd2hpbGUgKHRleHRvZmZzZXQgPD0gbV90ZXh0TGltaXRPZmZzZXRfKSB7CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgIGludCBwYXR0ZXJuY2VpbmRleCA9IG1fcGF0dGVybl8ubV9DRUxlbmd0aF8gLSAxOworICAgICAgICAgICAgYm9vbGVhbiBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgaW50IGxhc3RjZSA9IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVI7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgLy8gZmluZGluZyB0aGUgbGFzdCBwYXR0ZXJuIGNlIG1hdGNoLCBpbWFnaW5lIGNvbXBvc2l0ZSAKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzLiBmb3IgZXhhbXBsZTogc2VhcmNoIGZvciBwYXR0ZXJuIEEgaW4gdGV4dCBcdTAwQzAKKyAgICAgICAgICAgICAgICAvLyB3ZSdsbCBoYXZlIHRvIHNraXAgXHUwMzAwIHRoZSBncmF2ZSBmaXJzdCBiZWZvcmUgd2UgZ2V0IHRvIEEKKyAgICAgICAgICAgICAgICB0YXJnZXRjZSA9IG1fY29sRUl0ZXJfLnByZXZpb3VzKCk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRhcmdldGNlID0gZ2V0Q0UodGFyZ2V0Y2UpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFICYmIAorICAgICAgICAgICAgICAgICAgICBtX2NvbEVJdGVyXy5pc0luQnVmZmVyKCkpIHsgCisgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgZm9yIHRoZSB0ZXh0IFx1MDMxNVx1MDMwMCB0aGF0IHJlcXVpcmVzIAorICAgICAgICAgICAgICAgICAgICAvLyBub3JtYWxpemF0aW9uIGFuZCBwYXR0ZXJuIFx1MDMwMCwgd2hlcmUgXHUwMzE1IGlzIGlnbm9yYWJsZQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxhc3RjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorICAgICAgICAgICAgICAgICAgICB8fCBsYXN0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBsYXN0Y2UgPSB0YXJnZXRjZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IG1fcGF0dGVybl8ubV9DRV9bcGF0dGVybmNlaW5kZXhdKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBmaXJzdCBjZSBjYW4gYmUgYSBjb250cmFjdGlvbgorICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF8gPD0gMCkgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICB3aGlsZSAoZm91bmQgJiYgcGF0dGVybmNlaW5kZXggPiAwKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBtX2NvbEVJdGVyXy5wcmV2aW91cygpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0YXJnZXRjZSA9IGdldENFKHRhcmdldGNlKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICAgICAgcGF0dGVybmNlaW5kZXggLS07CisgICAgICAgICAgICAgICAgZm91bmQgPSBmb3VuZCAmJiB0YXJnZXRjZSA9PSBtX3BhdHRlcm5fLm1fQ0VfW3BhdHRlcm5jZWluZGV4XTsgCisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAgICAgICAgdGV4dG9mZnNldCA9IHNoaWZ0Rm9yd2FyZCh0ZXh0b2Zmc2V0LCBsYXN0Y2UsIHBhdHRlcm5jZWluZGV4KTsKKyAgICAgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBhdCBsb29wLgorICAgICAgICAgICAgICAgIHBhdHRlcm5jZWluZGV4ID0gbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXzsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGNoZWNrTmV4dEV4YWN0TWF0Y2godGV4dG9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBpbiB1Y29sX3NldE9mZnNldAorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRleHRvZmZzZXQgPSBtX3V0aWxCdWZmZXJfWzBdOworICAgICAgICB9CisgICAgICAgIHNldE1hdGNoTm90Rm91bmQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgdGhhdCBkb2VzIHRoZSBuZXh0IGNhbm9uaWNhbCBtYXRjaAorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHRvIHN0YXJ0IHNoaWZ0aW5nIGZyb20gYW5kIHBlcmZvcm1pbmcgdGhlIAorICAgICAqICAgICAgICBuZXh0IGNhbm9uaWNhbCBtYXRjaAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVOZXh0Q2Fub25pY2FsKGludCBzdGFydCkKKyAgICB7CisgICAgICAgIGJvb2xlYW4gaGFzUGF0dGVybkFjY2VudHMgPSAKKyAgICAgICAgICAgbV9wYXR0ZXJuXy5tX2hhc1N1ZmZpeEFjY2VudHNfIHx8IG1fcGF0dGVybl8ubV9oYXNQcmVmaXhBY2NlbnRzXzsKKyAgICAgICAgICAgICAgCisgICAgICAgIC8vIHNoaWZ0aW5nIGl0IGNoZWNrIGZvciBzZXR0aW5nIG9mZnNldAorICAgICAgICAvLyBpZiBzZXRPZmZzZXQgaXMgY2FsbGVkIHByZXZpb3VzbHkgb3IgdGhlcmUgd2FzIG5vIHByZXZpb3VzIG1hdGNoLCB3ZQorICAgICAgICAvLyBsZWF2ZSB0aGUgb2Zmc2V0IGFzIGl0IGlzLgorICAgICAgICBpbnQgdGV4dG9mZnNldCA9IHNoaWZ0Rm9yd2FyZChzdGFydCwgQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyk7CisgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18uZGVsZXRlKDAsIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkpOworICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmRlbGV0ZSgwLCBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmxlbmd0aCgpKTsKKyAgICAgICAgaW50IHRhcmdldGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh0ZXh0b2Zmc2V0IDw9IG1fdGV4dExpbWl0T2Zmc2V0XykKKyAgICAgICAgeworICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQodGV4dG9mZnNldCk7CisgICAgICAgICAgICBpbnQgcGF0dGVybmNlaW5kZXggPSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfIC0gMTsKKyAgICAgICAgICAgIGJvb2xlYW4gZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgIGludCBsYXN0Y2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIC8vIGZpbmRpbmcgdGhlIGxhc3QgcGF0dGVybiBjZSBtYXRjaCwgaW1hZ2luZSBjb21wb3NpdGUgY2hhcmFjdGVycworICAgICAgICAgICAgICAgIC8vIGZvciBleGFtcGxlOiBzZWFyY2ggZm9yIHBhdHRlcm4gQSBpbiB0ZXh0IFx1MDBDMAorICAgICAgICAgICAgICAgIC8vIHdlJ2xsIGhhdmUgdG8gc2tpcCBcdTAzMDAgdGhlIGdyYXZlIGZpcnN0IGJlZm9yZSB3ZSBnZXQgdG8gQQorICAgICAgICAgICAgICAgIHRhcmdldGNlID0gbV9jb2xFSXRlcl8ucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBnZXRDRSh0YXJnZXRjZSk7CisgICAgICAgICAgICAgICAgaWYgKGxhc3RjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGxhc3RjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGxhc3RjZSA9IHRhcmdldGNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1twYXR0ZXJuY2VpbmRleF0pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IGNlIGNhbiBiZSBhIGNvbnRyYWN0aW9uCisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChtX2NvbEVJdGVyXy5tX0NFQnVmZmVyT2Zmc2V0XyA8PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKGZvdW5kICYmIHBhdHRlcm5jZWluZGV4ID4gMCkgeworICAgICAgICAgICAgICAgIHRhcmdldGNlICAgID0gbV9jb2xFSXRlcl8ucHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgICAgPSBnZXRDRSh0YXJnZXRjZSk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIHBhdHRlcm5jZWluZGV4IC0tOworICAgICAgICAgICAgICAgIGZvdW5kID0gZm91bmQgJiYgdGFyZ2V0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1twYXR0ZXJuY2VpbmRleF07IAorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgLy8gaW5pdGlhbGl6aW5nIHRoZSByZWFycmFuZ2VkIGFjY2VudCBhcnJheQorICAgICAgICAgICAgaWYgKGhhc1BhdHRlcm5BY2NlbnRzICYmICFmb3VuZCkgeworICAgICAgICAgICAgICAgIGZvdW5kID0gZG9OZXh0Q2Fub25pY2FsTWF0Y2godGV4dG9mZnNldCk7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAgICAgICAgdGV4dG9mZnNldCA9IHNoaWZ0Rm9yd2FyZCh0ZXh0b2Zmc2V0LCBsYXN0Y2UsIHBhdHRlcm5jZWluZGV4KTsKKyAgICAgICAgICAgICAgICAvLyBzdGF0dXMgY2hlY2tlZCBhdCBsb29wCisgICAgICAgICAgICAgICAgcGF0dGVybmNlaW5kZXggPSBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoY2hlY2tOZXh0Q2Fub25pY2FsTWF0Y2godGV4dG9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXh0b2Zmc2V0ID0gbV91dGlsQnVmZmVyX1swXTsKKyAgICAgICAgfQorICAgICAgICBzZXRNYXRjaE5vdEZvdW5kKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE1ldGhvZCB0aGF0IGRvZXMgdGhlIHByZXZpb3VzIGV4YWN0IG1hdGNoCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgdG8gc3RhcnQgc2hpZnRpbmcgZnJvbSBhbmQgcGVyZm9ybWluZyB0aGUgCisgICAgICogICAgICAgIHByZXZpb3VzIGV4YWN0IG1hdGNoCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGhhbmRsZVByZXZpb3VzRXhhY3QoaW50IHN0YXJ0KQorICAgIHsKKyAgICAgICAgaW50IHRleHRvZmZzZXQgPSByZXZlcnNlU2hpZnQoc3RhcnQsIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfKTsKKyAgICAgICAgd2hpbGUgKHRleHRvZmZzZXQgPj0gbV90ZXh0QmVnaW5PZmZzZXRfKQorICAgICAgICB7CisgICAgICAgICAgICBtX2NvbEVJdGVyXy5zZXRFeGFjdE9mZnNldCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgIGludCBwYXR0ZXJuY2VpbmRleCA9IDE7CisgICAgICAgICAgICBpbnQgdGFyZ2V0Y2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFOworICAgICAgICAgICAgYm9vbGVhbiBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgaW50IGZpcnN0Y2UgPSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIC8vIGZpbmRpbmcgdGhlIGZpcnN0IHBhdHRlcm4gY2UgbWF0Y2gsIGltYWdpbmUgY29tcG9zaXRlIAorICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMuIGZvciBleGFtcGxlOiBzZWFyY2ggZm9yIHBhdHRlcm4gXHUwMzAwIGluIHRleHQgCisgICAgICAgICAgICAgICAgLy8gXHUwMEMwLCB3ZSdsbCBoYXZlIHRvIHNraXAgQSBmaXJzdCBiZWZvcmUgd2UgZ2V0IHRvIAorICAgICAgICAgICAgICAgIC8vIFx1MDMwMCB0aGUgZ3JhdmUgYWNjZW50CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBtX2NvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRhcmdldGNlID0gZ2V0Q0UodGFyZ2V0Y2UpOworICAgICAgICAgICAgICAgIGlmIChmaXJzdGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIgCisgICAgICAgICAgICAgICAgICAgIHx8IGZpcnN0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRSkgeworICAgICAgICAgICAgICAgICAgICBmaXJzdGNlID0gdGFyZ2V0Y2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0gICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1swXSkgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobV9jb2xFSXRlcl8ubV9DRUJ1ZmZlck9mZnNldF8gPT0gLTEgCisgICAgICAgICAgICAgICAgICAgIHx8IG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyU2l6ZV8pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2tpbmcgZm9yIGFjY2VudHMgaW4gY29tcG9zaXRlIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICB0YXJnZXRjZSA9IGZpcnN0Y2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChmb3VuZCAmJiBwYXR0ZXJuY2VpbmRleCA8IG1fcGF0dGVybl8ubV9DRUxlbmd0aF8pIHsKKyAgICAgICAgICAgICAgICB0YXJnZXRjZSA9IG1fY29sRUl0ZXJfLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUikgeworICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBnZXRDRSh0YXJnZXRjZSk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgIGZvdW5kID0gZm91bmQgJiYgdGFyZ2V0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1twYXR0ZXJuY2VpbmRleF07IAorICAgICAgICAgICAgICAgIHBhdHRlcm5jZWluZGV4ICsrOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYgKCFmb3VuZCkgeworICAgICAgICAgICAgICAgIHRleHRvZmZzZXQgPSByZXZlcnNlU2hpZnQodGV4dG9mZnNldCwgdGFyZ2V0Y2UsIHBhdHRlcm5jZWluZGV4KTsKKyAgICAgICAgICAgICAgICBwYXR0ZXJuY2VpbmRleCA9IDA7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChjaGVja1ByZXZpb3VzRXhhY3RNYXRjaCh0ZXh0b2Zmc2V0KSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRleHRvZmZzZXQgPSBtX3V0aWxCdWZmZXJfWzBdOworICAgICAgICB9CisgICAgICAgIHNldE1hdGNoTm90Rm91bmQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTWV0aG9kIHRoYXQgZG9lcyB0aGUgcHJldmlvdXMgY2Fub25pY2FsIG1hdGNoCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgdG8gc3RhcnQgc2hpZnRpbmcgZnJvbSBhbmQgcGVyZm9ybWluZyB0aGUgCisgICAgICogICAgICAgIHByZXZpb3VzIGNhbm9uaWNhbCBtYXRjaAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBoYW5kbGVQcmV2aW91c0Nhbm9uaWNhbChpbnQgc3RhcnQpCisgICAgeworICAgICAgICBib29sZWFuIGhhc1BhdHRlcm5BY2NlbnRzID0gCisgICAgICAgICAgIG1fcGF0dGVybl8ubV9oYXNTdWZmaXhBY2NlbnRzXyB8fCBtX3BhdHRlcm5fLm1faGFzUHJlZml4QWNjZW50c187CisgICAgICAgICAgICAgIAorICAgICAgICAvLyBzaGlmdGluZyBpdCBjaGVjayBmb3Igc2V0dGluZyBvZmZzZXQKKyAgICAgICAgLy8gaWYgc2V0T2Zmc2V0IGlzIGNhbGxlZCBwcmV2aW91c2x5IG9yIHRoZXJlIHdhcyBubyBwcmV2aW91cyBtYXRjaCwgd2UKKyAgICAgICAgLy8gbGVhdmUgdGhlIG9mZnNldCBhcyBpdCBpcy4KKyAgICAgICAgaW50IHRleHRvZmZzZXQgPSByZXZlcnNlU2hpZnQoc3RhcnQsIENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYXR0ZXJuXy5tX0NFTGVuZ3RoXyk7CisgICAgICAgIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18uZGVsZXRlKDAsIG1fY2Fub25pY2FsUHJlZml4QWNjZW50c18ubGVuZ3RoKCkpOworICAgICAgICBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmRlbGV0ZSgwLCBtX2Nhbm9uaWNhbFN1ZmZpeEFjY2VudHNfLmxlbmd0aCgpKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh0ZXh0b2Zmc2V0ID49IG1fdGV4dEJlZ2luT2Zmc2V0XykKKyAgICAgICAgeworICAgICAgICAgICAgbV9jb2xFSXRlcl8uc2V0RXhhY3RPZmZzZXQodGV4dG9mZnNldCk7CisgICAgICAgICAgICBpbnQgcGF0dGVybmNlaW5kZXggPSAxOworICAgICAgICAgICAgaW50IHRhcmdldGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLklHTk9SQUJMRTsKKyAgICAgICAgICAgIGJvb2xlYW4gZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgIGludCBmaXJzdGNlID0gQ29sbGF0aW9uRWxlbWVudEl0ZXJhdG9yLk5VTExPUkRFUjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAvLyBmaW5kaW5nIHRoZSBmaXJzdCBwYXR0ZXJuIGNlIG1hdGNoLCBpbWFnaW5lIGNvbXBvc2l0ZSAKKyAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzLiBmb3IgZXhhbXBsZTogc2VhcmNoIGZvciBwYXR0ZXJuIFx1MDMwMCBpbiB0ZXh0IAorICAgICAgICAgICAgICAgIC8vIFx1MDBDMCwgd2UnbGwgaGF2ZSB0byBza2lwIEEgZmlyc3QgYmVmb3JlIHdlIGdldCB0byAKKyAgICAgICAgICAgICAgICAvLyBcdTAzMDAgdGhlIGdyYXZlIGFjY2VudAorICAgICAgICAgICAgICAgIHRhcmdldGNlID0gbV9jb2xFSXRlcl8ubmV4dCgpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0YXJnZXRjZSA9IGdldENFKHRhcmdldGNlKTsKKyAgICAgICAgICAgICAgICBpZiAoZmlyc3RjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuTlVMTE9SREVSIAorICAgICAgICAgICAgICAgICAgICB8fCBmaXJzdGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5JR05PUkFCTEUpIHsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RjZSA9IHRhcmdldGNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Y2UgPT0gbV9wYXR0ZXJuXy5tX0NFX1swXSkgeworICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZmlyc3QgY2UgY2FuIGJlIGEgY29udHJhY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG1fY29sRUl0ZXJfLm1fQ0VCdWZmZXJPZmZzZXRfID09IC0xIAorICAgICAgICAgICAgICAgICAgICB8fCBtX2NvbEVJdGVyXy5tX0NFQnVmZmVyT2Zmc2V0XyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gbV9jb2xFSXRlcl8ubV9DRUJ1ZmZlclNpemVfKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGNoZWNraW5nIGZvciBhY2NlbnRzIGluIGNvbXBvc2l0ZSBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgdGFyZ2V0Y2UgPSBmaXJzdGNlOworICAgICAgICAgICAgCisgICAgICAgICAgICB3aGlsZSAoZm91bmQgJiYgcGF0dGVybmNlaW5kZXggPCBtX3BhdHRlcm5fLm1fQ0VMZW5ndGhfKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0Y2UgPSBtX2NvbEVJdGVyXy5uZXh0KCk7CisgICAgICAgICAgICAgICAgaWYgKHRhcmdldGNlID09IENvbGxhdGlvbkVsZW1lbnRJdGVyYXRvci5OVUxMT1JERVIpIHsKKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRhcmdldGNlID0gZ2V0Q0UodGFyZ2V0Y2UpOworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRjZSA9PSBDb2xsYXRpb25FbGVtZW50SXRlcmF0b3IuSUdOT1JBQkxFKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICBmb3VuZCA9IGZvdW5kICYmIHRhcmdldGNlID09IG1fcGF0dGVybl8ubV9DRV9bcGF0dGVybmNlaW5kZXhdOyAKKyAgICAgICAgICAgICAgICBwYXR0ZXJuY2VpbmRleCArKzsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIC8vIGluaXRpYWxpemluZyB0aGUgcmVhcnJhbmdlZCBhY2NlbnQgYXJyYXkKKyAgICAgICAgICAgIGlmIChoYXNQYXR0ZXJuQWNjZW50cyAmJiAhZm91bmQpIHsKKyAgICAgICAgICAgICAgICBmb3VuZCA9IGRvUHJldmlvdXNDYW5vbmljYWxNYXRjaCh0ZXh0b2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIGlmICghZm91bmQpIHsKKyAgICAgICAgICAgICAgICB0ZXh0b2Zmc2V0ID0gcmV2ZXJzZVNoaWZ0KHRleHRvZmZzZXQsIHRhcmdldGNlLCBwYXR0ZXJuY2VpbmRleCk7CisgICAgICAgICAgICAgICAgcGF0dGVybmNlaW5kZXggPSAwOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgaWYgKGNoZWNrUHJldmlvdXNDYW5vbmljYWxNYXRjaCh0ZXh0b2Zmc2V0KSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRleHRvZmZzZXQgPSBtX3V0aWxCdWZmZXJfWzBdOworICAgICAgICB9CisgICAgICAgIHNldE1hdGNoTm90Rm91bmQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyBhIHN1YnN0cmluZyBvdXQgb2YgYSBDaGFyYWN0ZXJJdGVyYXRvcgorICAgICAqIEBwYXJhbSB0ZXh0IENoYXJhY3Rlckl0ZXJhdG9yCisgICAgICogQHBhcmFtIHN0YXJ0IHN0YXJ0IG9mZnNldAorICAgICAqIEBwYXJhbSBsZW5ndGggb2Ygc3Vic3RyaW5nCisgICAgICogQHJldHVybiBzdWJzdHJpbmcgZnJvbSB0ZXh0IHN0YXJ0aW5nIGF0IHN0YXJ0IGFuZCBsZW5ndGggbGVuZ3RoCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGdldFN0cmluZyhDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0LCBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGgpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcihsZW5ndGgpOworICAgICAgICBpbnQgb2Zmc2V0ID0gdGV4dC5nZXRJbmRleCgpOworICAgICAgICB0ZXh0LnNldEluZGV4KHN0YXJ0KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKyspIHsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodGV4dC5jdXJyZW50KCkpOworICAgICAgICAgICAgdGV4dC5uZXh0KCk7CisgICAgICAgIH0KKyAgICAgICAgdGV4dC5zZXRJbmRleChvZmZzZXQpOworICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldHRpbmcgdGhlIG1hc2sgZm9yIGNvbGxhdGlvbiBzdHJlbmd0aAorICAgICAqIEBwYXJhbSBzdHJlbmd0aCBjb2xsYXRpb24gc3RyZW5ndGgKKyAgICAgICogQHJldHVybiBjb2xsYXRpb24gZWxlbWVudCBtYXNrCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGdldE1hc2soaW50IHN0cmVuZ3RoKSAKKyAgICB7CisgICAgICAgIHN3aXRjaCAoc3RyZW5ndGgpIAorICAgICAgICB7CisgICAgICAgICAgICBjYXNlIENvbGxhdG9yLlBSSU1BUlk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS187CisgICAgICAgICAgICBjYXNlIENvbGxhdG9yLlNFQ09OREFSWToKKyAgICAgICAgICAgICAgICByZXR1cm4gUnVsZUJhc2VkQ29sbGF0b3IuQ0VfU0VDT05EQVJZX01BU0tfIAorICAgICAgICAgICAgICAgICAgICAgICB8IFJ1bGVCYXNlZENvbGxhdG9yLkNFX1BSSU1BUllfTUFTS187CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBSdWxlQmFzZWRDb2xsYXRvci5DRV9URVJUSUFSWV9NQVNLXyAKKyAgICAgICAgICAgICAgICAgICAgICAgfCBSdWxlQmFzZWRDb2xsYXRvci5DRV9TRUNPTkRBUllfTUFTS18gCisgICAgICAgICAgICAgICAgICAgICAgIHwgUnVsZUJhc2VkQ29sbGF0b3IuQ0VfUFJJTUFSWV9NQVNLXzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIG1hdGNoIG5vdCBmb3VuZCAKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0TWF0Y2hOb3RGb3VuZCgpIAorICAgIHsKKyAgICAgICAgLy8gdGhpcyBtZXRob2QgcmVzZXRzIHRoZSBtYXRjaCByZXN1bHQgcmVnYXJkbGVzcyBvZiB0aGUgZXJyb3Igc3RhdHVzLgorICAgICAgICBtX21hdGNoZWRJbmRleF8gPSBET05FOworICAgICAgICBzZXRNYXRjaExlbmd0aCgwKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9TeW1ib2xUYWJsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3ltYm9sVGFibGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNDBlOWZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvU3ltYm9sVGFibGUuamF2YQpAQCAtMCwwICsxLDgyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworCisvKioKKyAqIEFuIGludGVyZmFjZSB0aGF0IGRlZmluZXMgYm90aCBsb29rdXAgcHJvdG9jb2wgYW5kIHBhcnNpbmcgb2YKKyAqIHN5bWJvbGljIG5hbWVzLgorICoKKyAqIDxwPkEgc3ltYm9sIHRhYmxlIG1haW50YWlucyB0d28ga2luZHMgb2YgbWFwcGluZ3MuICBUaGUgZmlyc3QgaXMKKyAqIGJldHdlZW4gc3ltYm9saWMgbmFtZXMgYW5kIHRoZWlyIHZhbHVlcy4gIEZvciBleGFtcGxlLCBpZiB0aGUKKyAqIHZhcmlhYmxlIHdpdGggdGhlIG5hbWUgInN0YXJ0IiBpcyBzZXQgdG8gdGhlIHZhbHVlICJhbHBoYSIKKyAqIChwZXJoYXBzLCB0aG91Z2ggbm90IG5lY2Vzc2FyaWx5LCB0aHJvdWdoIGFuIGV4cHJlc3Npb24gc3VjaCBhcworICogIiRzdGFydD1hbHBoYSIpLCB0aGVuIHRoZSBjYWxsIGxvb2t1cCgic3RhcnQiKSB3aWxsIHJldHVybiB0aGUKKyAqIGNoYXJbXSBhcnJheSBbJ2EnLCAnbCcsICdwJywgJ2gnLCAnYSddLgorICoKKyAqIDxwPlRoZSBzZWNvbmQga2luZCBvZiBtYXBwaW5nIGlzIGJldHdlZW4gY2hhcmFjdGVyIHZhbHVlcyBhbmQKKyAqIFVuaWNvZGVNYXRjaGVyIG9iamVjdHMuICBUaGlzIGlzIHVzZWQgYnkgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IsCisgKiB3aGljaCB1c2VzIGNoYXJhY3RlcnMgaW4gdGhlIHByaXZhdGUgdXNlIGFyZWEgdG8gcmVwcmVzZW50IG9iamVjdHMKKyAqIHN1Y2ggYXMgVW5pY29kZVNldHMuICBJZiBVK0UwMTUgaXMgbWFwcGVkIHRvIHRoZSBVbmljb2RlU2V0IFthLXpdLAorICogdGhlbiBsb29rdXBNYXRjaGVyKDB4RTAxNSkgd2lsbCByZXR1cm4gdGhlIFVuaWNvZGVTZXQgW2Etel0uCisgKgorICogPHA+RmluYWxseSwgYSBzeW1ib2wgdGFibGUgZGVmaW5lcyBwYXJzaW5nIGJlaGF2aW9yIGZvciBzeW1ib2xpYworICogbmFtZXMuICBBbGwgc3ltYm9saWMgbmFtZXMgc3RhcnQgd2l0aCB0aGUgU1lNQk9MX1JFRiBjaGFyYWN0ZXIuCisgKiBXaGVuIGEgcGFyc2VyIGVuY291bnRlcnMgdGhpcyBjaGFyYWN0ZXIsIGl0IGNhbGxzIHBhcnNlUmVmZXJlbmNlKCkKKyAqIHdpdGggdGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aGUgU1lNQk9MX1JFRi4gIFRoZSBzeW1ib2wKKyAqIHRhYmxlIHBhcnNlcyB0aGUgbmFtZSwgaWYgdGhlcmUgaXMgb25lLCBhbmQgcmV0dXJucyBpdC4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjgKKyAqLworcHVibGljIGludGVyZmFjZSBTeW1ib2xUYWJsZSB7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2hhcmFjdGVyIHByZWNlZGluZyBhIHN5bWJvbCByZWZlcmVuY2UgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2hhciBTWU1CT0xfUkVGID0gJyQnOworCisgICAgLyoqCisgICAgICogTG9va3VwIHRoZSBjaGFyYWN0ZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHN0cmluZyBhbmQgcmV0dXJuIGl0LgorICAgICAqIFJldHVybiA8dHQ+bnVsbDwvdHQ+IGlmIG5vIHN1Y2ggbmFtZSBleGlzdHMuICBUaGUgcmVzdWx0YW50CisgICAgICogYXJyYXkgbWF5IGhhdmUgbGVuZ3RoIHplcm8uCisgICAgICogQHBhcmFtIHMgdGhlIHN5bWJvbGljIG5hbWUgdG8gbG9va3VwCisgICAgICogQHJldHVybiBhIGNoYXIgYXJyYXkgY29udGFpbmluZyB0aGUgbmFtZSdzIHZhbHVlLCBvciBudWxsIGlmCisgICAgICogdGhlcmUgaXMgbm8gbWFwcGluZyBmb3Igcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBjaGFyW10gbG9va3VwKFN0cmluZyBzKTsKKworICAgIC8qKgorICAgICAqIExvb2t1cCB0aGUgVW5pY29kZU1hdGNoZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBjaGFyYWN0ZXIsIGFuZAorICAgICAqIHJldHVybiBpdC4gIFJldHVybiA8dHQ+bnVsbDwvdHQ+IGlmIG5vdCBmb3VuZC4KKyAgICAgKiBAcGFyYW0gY2ggYSAzMi1iaXQgY29kZSBwb2ludCBmcm9tIDAgdG8gMHgxMEZGRkYgaW5jbHVzaXZlLgorICAgICAqIEByZXR1cm4gdGhlIFVuaWNvZGVNYXRjaGVyIG9iamVjdCByZXByZXNlbnRlZCBieSB0aGUgZ2l2ZW4KKyAgICAgKiBjaGFyYWN0ZXIsIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gbWFwcGluZyBmb3IgY2guCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgVW5pY29kZU1hdGNoZXIgbG9va3VwTWF0Y2hlcihpbnQgY2gpOworCisgICAgLyoqCisgICAgICogUGFyc2UgYSBzeW1ib2wgcmVmZXJlbmNlIG5hbWUgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nLCBzdGFydGluZworICAgICAqIGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4gIElmIG5vIHZhbGlkIHN5bWJvbCByZWZlcmVuY2UgbmFtZSBpcworICAgICAqIGZvdW5kLCByZXR1cm4gbnVsbCBhbmQgbGVhdmUgcG9zIHVuY2hhbmdlZC4gIFRoYXQgaXMsIGlmIHRoZQorICAgICAqIGNoYXJhY3RlciBhdCBwb3MgY2Fubm90IHN0YXJ0IGEgbmFtZSwgb3IgaWYgcG9zIGlzIGF0IG9yIGFmdGVyCisgICAgICogdGV4dC5sZW5ndGgoKSwgdGhlbiByZXR1cm4gbnVsbC4gIFRoaXMgaW5kaWNhdGVzIGFuIGlzb2xhdGVkCisgICAgICogU1lNQk9MX1JFRiBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gcGFyc2UgZm9yIHRoZSBuYW1lCisgICAgICogQHBhcmFtIHBvcyBvbiBlbnRyeSwgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gcGFyc2UuCisgICAgICogVGhpcyBpcyB0aGUgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgU1lNQk9MX1JFRiBjaGFyYWN0ZXIuICBPbgorICAgICAqIGV4aXQsIHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBwYXJzZWQgY2hhcmFjdGVyLiAgSWYgdGhlIHBhcnNlCisgICAgICogZmFpbGVkLCBwb3MgaXMgdW5jaGFuZ2VkIG9uIGV4aXQuCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgdG8gYmUgcGFyc2VkLgorICAgICAqIEByZXR1cm4gdGhlIHBhcnNlZCBuYW1lLCBvciBudWxsIGlmIHRoZXJlIGlzIG5vIHZhbGlkIHN5bWJvbGljCisgICAgICogbmFtZSBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgU3RyaW5nIHBhcnNlUmVmZXJlbmNlKFN0cmluZyB0ZXh0LCBQYXJzZVBvc2l0aW9uIHBvcywgaW50IGxpbWl0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UaXRsZWNhc2VUcmFuc2xpdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY4OWVmZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UaXRsZWNhc2VUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2FzZVByb3BzOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5SZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvcjsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgY29udmVydHMgYWxsIGxldHRlcnMgKGFzIGRlZmluZWQgYnkKKyAqIDxjb2RlPlVDaGFyYWN0ZXIuaXNMZXR0ZXIoKTwvY29kZT4pIHRvIGxvd2VyIGNhc2UsIGV4Y2VwdCBmb3IgdGhvc2UKKyAqIGxldHRlcnMgcHJlY2VkZWQgYnkgbm9uLWxldHRlcnMuICBUaGUgbGF0dGVyIGFyZSBjb252ZXJ0ZWQgdG8gdGl0bGUKKyAqIGNhc2UgdXNpbmcgPGNvZGU+VUNoYXJhY3Rlci50b1RpdGxlQ2FzZSgpPC9jb2RlPi4KKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworY2xhc3MgVGl0bGVjYXNlVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIF9JRCA9ICJBbnktVGl0bGUiOworCisgICAgLyoqCisgICAgICogU3lzdGVtIHJlZ2lzdHJhdGlvbiBob29rLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvci5yZWdpc3RlckZhY3RvcnkoX0lELCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFRpdGxlY2FzZVRyYW5zbGl0ZXJhdG9yKFVMb2NhbGUuVVMpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICByZWdpc3RlclNwZWNpYWxJbnZlcnNlKCJUaXRsZSIsICJMb3dlciIsIGZhbHNlKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFVMb2NhbGUgbG9jYWxlOworCisgICAgcHJpdmF0ZSBVQ2FzZVByb3BzIGNzcDsKKyAgICBwcml2YXRlIFJlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yIGl0ZXI7CisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgcmVzdWx0OworICAgIHByaXZhdGUgaW50W10gbG9jQ2FjaGU7CisKKyAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGl0bGVjYXNlVHJhbnNsaXRlcmF0b3IoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgc3VwZXIoX0lELCBudWxsKTsKKyAgICAgICAgbG9jYWxlID0gbG9jOworICAgICAgICAvLyBOZWVkIHRvIGxvb2sgYmFjayAyIGNoYXJhY3RlcnMgaW4gdGhlIGNhc2Ugb2YgImNhbid0IgorICAgICAgICBzZXRNYXhpbXVtQ29udGV4dExlbmd0aCgyKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNzcD1VQ2FzZVByb3BzLmdldFNpbmdsZXRvbigpOworICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBjc3A9bnVsbDsKKyAgICAgICAgfQorICAgICAgICBpdGVyPW5ldyBSZXBsYWNlYWJsZUNvbnRleHRJdGVyYXRvcigpOworICAgICAgICByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGludFtdIGxvY0NhY2hlID0gbmV3IGludFsxXTsKKyAgICAgICAgbG9jQ2FjaGVbMF09MDsKKyAgICB9CisgICAgIAorICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIG9mZnNldHMsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworICAgICAgICAvLyBUT0RPIHJlaW1wbGVtZW50LCBzZWUgdXN0cmNhc2UuYworICAgICAgICAvLyB1c2luZyBhIHJlYWwgd29yZCBicmVhayBpdGVyYXRvcgorICAgICAgICAvLyAgIGluc3RlYWQgb2YganVzdCBsb29raW5nIGZvciBhIHRyYW5zaXRpb24gYmV0d2VlbiBjYXNlZCBhbmQgdW5jYXNlZCBjaGFyYWN0ZXJzCisgICAgICAgIC8vIGNhbGwgQ2FzZU1hcFRyYW5zbGl0ZXJhdG9yOjpoYW5kbGVUcmFuc2xpdGVyYXRlKCkgZm9yIGxvd2VyY2FzaW5nPyAoc2V0IGZNYXApCisgICAgICAgIC8vIG5lZWRzIHRvIHRha2UgaXNJbmNyZW1lbnRhbCBpbnRvIGFjY291bnQgYmVjYXVzZSBjYXNlIG1hcHBpbmdzIGFyZSBjb250ZXh0LXNlbnNpdGl2ZQorICAgICAgICAvLyAgIGFsc28gZGV0ZWN0IHdoZW4gbG93ZXJjYXNpbmcgZnVuY3Rpb24gZGlkIG5vdCBmaW5pc2ggYmVjYXVzZSBvZiBjb250ZXh0CisKKyAgICAgICAgaWYgKG9mZnNldHMuc3RhcnQgPj0gb2Zmc2V0cy5saW1pdCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gY2FzZSB0eXBlOiA+MCBjYXNlZCAoVUNhc2VQcm9wcy5MT1dFUiBldGMuKSAgPT0wIHVuY2FzZWQgIDwwIGNhc2UtaWdub3JhYmxlCisgICAgICAgIGludCB0eXBlOworCisgICAgICAgIC8vIE91ciBtb2RlOyB3ZSBhcmUgZWl0aGVyIGNvbnZlcnRpbmcgbGV0dGVyIHRvVGl0bGUgb3IKKyAgICAgICAgLy8gdG9Mb3dlci4KKyAgICAgICAgYm9vbGVhbiBkb1RpdGxlID0gdHJ1ZTsKKworICAgICAgICAvLyBEZXRlcm1pbmUgaWYgdGhlcmUgaXMgYSBwcmVjZWRpbmcgY29udGV4dCBvZiBjYXNlZCBjYXNlLWlnbm9yYWJsZSosCisgICAgICAgIC8vIGluIHdoaWNoIGNhc2Ugd2Ugd2FudCB0byBzdGFydCBpbiB0b0xvd2VyIG1vZGUuICBJZiB0aGUKKyAgICAgICAgLy8gcHJpb3IgY29udGV4dCBpcyBhbnl0aGluZyBlbHNlIChpbmNsdWRpbmcgZW1wdHkpIHRoZW4gc3RhcnQKKyAgICAgICAgLy8gaW4gdG9UaXRsZSBtb2RlLgorICAgICAgICBpbnQgYywgc3RhcnQ7CisgICAgICAgIGZvciAoc3RhcnQgPSBvZmZzZXRzLnN0YXJ0IC0gMTsgc3RhcnQgPj0gb2Zmc2V0cy5jb250ZXh0U3RhcnQ7IHN0YXJ0IC09IFVURjE2LmdldENoYXJDb3VudChjKSkgeworICAgICAgICAgICAgYyA9IHRleHQuY2hhcjMyQXQoc3RhcnQpOworICAgICAgICAgICAgdHlwZT1jc3AuZ2V0VHlwZU9ySWdub3JhYmxlKGMpOworICAgICAgICAgICAgaWYodHlwZT4wKSB7IC8vIGNhc2VkCisgICAgICAgICAgICAgICAgZG9UaXRsZT1mYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0gZWxzZSBpZih0eXBlPT0wKSB7IC8vIHVuY2FzZWQgYnV0IG5vdCBpZ25vcmFibGUKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGVsc2UgKHR5cGU8MCkgY2FzZS1pZ25vcmFibGU6IGNvbnRpbnVlCisgICAgICAgIH0KKworICAgICAgICAvLyBDb252ZXJ0IHRoaW5ncyBhZnRlciBhIGNhc2VkIGNoYXJhY3RlciB0b0xvd2VyOyB0aGluZ3MKKyAgICAgICAgLy8gYWZ0ZXIgYSB1bmNhc2VkLCBub24tY2FzZS1pZ25vcmFibGUgY2hhcmFjdGVyIHRvVGl0bGUuICBDYXNlLWlnbm9yYWJsZQorICAgICAgICAvLyBjaGFyYWN0ZXJzIGFyZSBjb3BpZWQgZGlyZWN0bHkgYW5kIGRvIG5vdCBjaGFuZ2UgdGhlIG1vZGUuCisKKyAgICAgICAgaXRlci5zZXRUZXh0KHRleHQpOworICAgICAgICBpdGVyLnNldEluZGV4KG9mZnNldHMuc3RhcnQpOworICAgICAgICBpdGVyLnNldExpbWl0KG9mZnNldHMubGltaXQpOworICAgICAgICBpdGVyLnNldENvbnRleHRMaW1pdHMob2Zmc2V0cy5jb250ZXh0U3RhcnQsIG9mZnNldHMuY29udGV4dExpbWl0KTsKKworICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKDApOworCisgICAgICAgIC8vIFdhbGsgdGhyb3VnaCBvcmlnaW5hbCBzdHJpbmcKKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBjYXNlIGNoYW5nZSwgbW9kaWZ5IGNvcnJlc3BvbmRpbmcgcG9zaXRpb24gaW4gcmVwbGFjZWFibGUKKyAgICAgICAgaW50IGRlbHRhOworCisgICAgICAgIHdoaWxlKChjPWl0ZXIubmV4dENhc2VNYXBDUCgpKT49MCkgeworICAgICAgICAgICAgdHlwZT1jc3AuZ2V0VHlwZU9ySWdub3JhYmxlKGMpOworICAgICAgICAgICAgaWYodHlwZT49MCkgeyAvLyBub3QgY2FzZS1pZ25vcmFibGUKKyAgICAgICAgICAgICAgICBpZihkb1RpdGxlKSB7CisgICAgICAgICAgICAgICAgICAgIGM9Y3NwLnRvRnVsbFRpdGxlKGMsIGl0ZXIsIHJlc3VsdCwgbG9jYWxlLCBsb2NDYWNoZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYz1jc3AudG9GdWxsTG93ZXIoYywgaXRlciwgcmVzdWx0LCBsb2NhbGUsIGxvY0NhY2hlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZG9UaXRsZSA9IHR5cGU9PTA7IC8vIGRvVGl0bGU9aXNVbmNhc2VkCisKKyAgICAgICAgICAgICAgICBpZihpdGVyLmRpZFJlYWNoTGltaXQoKSAmJiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYXNlIG1hcHBpbmcgZnVuY3Rpb24gdHJpZWQgdG8gbG9vayBiZXlvbmQgdGhlIGNvbnRleHQgbGltaXQKKyAgICAgICAgICAgICAgICAgICAgLy8gd2FpdCBmb3IgbW9yZSBpbnB1dAorICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLnN0YXJ0PWl0ZXIuZ2V0Q2FzZU1hcENQU3RhcnQoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qIGRlY29kZSB0aGUgcmVzdWx0ICovCisgICAgICAgICAgICAgICAgaWYoYzwwKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGMgbWFwcGVkIHRvIGl0c2VsZiwgbm8gY2hhbmdlICovCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihjPD1VQ2FzZVByb3BzLk1BWF9TVFJJTkdfTEVOR1RIKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHJlcGxhY2UgYnkgdGhlIG1hcHBpbmcgc3RyaW5nICovCisgICAgICAgICAgICAgICAgICAgIGRlbHRhPWl0ZXIucmVwbGFjZShyZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLyogcmVwbGFjZSBieSBzaW5nbGUtY29kZSBwb2ludCBtYXBwaW5nICovCisgICAgICAgICAgICAgICAgICAgIGRlbHRhPWl0ZXIucmVwbGFjZShVVEYxNi52YWx1ZU9mKGMpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZihkZWx0YSE9MCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLmxpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzLmNvbnRleHRMaW1pdCArPSBkZWx0YTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgb2Zmc2V0cy5zdGFydCA9IG9mZnNldHMubGltaXQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNmb3JtVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zZm9ybVRyYW5zbGl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzExYmYzYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zZm9ybVRyYW5zbGl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKy8vaW1wb3J0IGphdmEudXRpbC4qOworCithYnN0cmFjdCBjbGFzcyBUcmFuc2Zvcm1UcmFuc2xpdGVyYXRvciB7CisgICAgLy8gQ3VycmVudGx5IHVudXNlZAorfQorCisvLy8qKgorLy8gKiBBbiBhYnN0cmFjdCBjbGFzcyBmb3IgdHJhbnNsaXRlcmF0b3JzIGJhc2VkIG9uIGEgdHJhbnNmb3JtCisvLyAqIG9wZXJhdGlvbi4gIFRvIGNyZWF0ZSBhIHRyYW5zbGl0ZXJhdG9yIHRoYXQgaW1wbGVtZW50cyBhCisvLyAqIHRyYW5zZm9ybWF0aW9uLCBjcmVhdGUgYSBzdWJjbGFzcyBvZiB0aGlzIGNsYXNzIGFuZCBpbXBsZW1lbnQgdGhlCisvLyAqIGFic3RyYWN0IDxjb2RlPnRyYW5zZm9ybSgpPC9jb2RlPiBhbmQgPGNvZGU+aGFzVHJhbnNmb3JtKCk8L2NvZGU+CisvLyAqIG1ldGhvZHMuCisvLyAqIEBhdXRob3IgQWxhbiBMaXUKKy8vICovCisvL2Fic3RyYWN0IGNsYXNzIFRyYW5zZm9ybVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworLy8KKy8vICAgIC8qKgorLy8gICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLiAgRm9yIHVzZSBieSBzdWJjbGFzc2VzLgorLy8gICAgICovCisvLyAgICBwcm90ZWN0ZWQgVHJhbnNmb3JtVHJhbnNsaXRlcmF0b3IoU3RyaW5nIGlkLCBVbmljb2RlRmlsdGVyIGYpIHsKKy8vICAgICAgICBzdXBlcihpZCwgZik7CisvLyAgICB9CisvLworLy8gICAgLyoqCisvLyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKy8vICAgICAqLworLy8gICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlVHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGluY3JlbWVudGFsKSB7CisvLworLy8gICAgICAgIGludCBzdGFydDsKKy8vICAgICAgICBmb3IgKHN0YXJ0ID0gb2Zmc2V0cy5zdGFydDsgc3RhcnQgPCBvZmZzZXRzLmxpbWl0OyArK3N0YXJ0KSB7CisvLyAgICAgICAgICAgIC8vIFNjYW4gZm9yIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdGhhdCBpcyAhPSBpdHMgdHJhbnNmb3JtLgorLy8gICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbm9uZSwgd2UgZmFsbCBvdXQgd2l0aG91dCBkb2luZyBhbnl0aGluZy4KKy8vICAgICAgICAgICAgY2hhciBjID0gdGV4dC5jaGFyQXQoc3RhcnQpOworLy8gICAgICAgICAgICBpZiAoaGFzVHJhbnNmb3JtKGMpKSB7CisvLyAgICAgICAgICAgICAgICAvLyBUaGVyZSBpcyBhIHRyYW5zZm9ybWluZyBjaGFyYWN0ZXIgYXQgc3RhcnQuICBCcmVhaworLy8gICAgICAgICAgICAgICAgLy8gdXAgdGhlIHJlbWFpbmluZyBzdHJpbmcsIGZyb20gc3RhcnQgdG8KKy8vICAgICAgICAgICAgICAgIC8vIG9mZnNldHMubGltaXQsIGludG8gc2VnbWVudHMgb2YgdW5maWx0ZXJlZCBhbmQKKy8vICAgICAgICAgICAgICAgIC8vIGZpbHRlcmVkIGNoYXJhY3RlcnMuICBPbmx5IHRyYW5zZm9ybSB0aGUgdW5maWx0ZXJlZAorLy8gICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycy4gIEFzIGFsd2F5cywgbWluaW1pemUgdGhlIG51bWJlciBvZgorLy8gICAgICAgICAgICAgICAgLy8gY2FsbHMgdG8gUmVwbGFjZWFibGUucmVwbGFjZSgpLgorLy8KKy8vICAgICAgICAgICAgICAgIGludCBsZW4gPSBvZmZzZXRzLmxpbWl0IC0gc3RhcnQ7CisvLyAgICAgICAgICAgICAgICAvLyBhc3NlcnQobGVuID49IDEpOworLy8gICAgICAgICAgICAgICAgCisvLyAgICAgICAgICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbbGVuXTsKKy8vICAgICAgICAgICAgICAgIHRleHQuZ2V0Q2hhcnMoc3RhcnQsIG9mZnNldHMubGltaXQsIGJ1ZiwgMCk7CisvLworLy8gICAgICAgICAgICAgICAgaW50IHNlZ1N0YXJ0ID0gMDsKKy8vICAgICAgICAgICAgICAgIGludCBzZWdMaW1pdDsKKy8vICAgICAgICAgICAgICAgIFVuaWNvZGVGaWx0ZXIgZmlsdCA9IGdldEZpbHRlcigpOworLy8KKy8vICAgICAgICAgICAgICAgIC8vIGxlbkRlbHRhIGlzIHRoZSBhY2N1bXVsYXRlZCBsZW5ndGggZGlmZmVyZW5jZSBmb3IKKy8vICAgICAgICAgICAgICAgIC8vIGFsbCB0cmFuc2Zvcm1lZCBzZWdtZW50cy4gIEl0IGlzIG5ldyBsZW5ndGggLSBvbGQKKy8vICAgICAgICAgICAgICAgIC8vIGxlbmd0aC4KKy8vICAgICAgICAgICAgICAgIGludCBsZW5EZWx0YSA9IDA7CisvLworLy8gICAgICAgICAgICAgICAgLy8gU2V0IHNlZ1N0YXJ0LCBzZWdMaW1pdCB0byB0aGUgdW5maWx0ZXJlZCBzZWdtZW50CisvLyAgICAgICAgICAgICAgICAvLyBzdGFydGluZyB3aXRoIHN0YXJ0LiAgSWYgdGhlIGZpbHRlciBpcyBudWxsLCB0aGVuCisvLyAgICAgICAgICAgICAgICAvLyBzZWdTdGFydC9MaW1pdCB3aWxsIGJlIHNldCB0byB0aGUgd2hvbGUgc3RyaW5nLAorLy8gICAgICAgICAgICAgICAgLy8gdGhhdCBpcywgMC9sZW4uCisvLyAgICAgICAgICAgICAgICBkbyB7CisvLyAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHNlZ0xpbWl0IHRvIHRoZSBmaXJzdCBmaWx0ZXJlZCBjaGFyIGF0IG9yCisvLyAgICAgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgc2VnU3RhcnQuCisvLyAgICAgICAgICAgICAgICAgICAgc2VnTGltaXQgPSBsZW47CisvLyAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHQgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICBzZWdMaW1pdCA9IHNlZ1N0YXJ0OworLy8gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc2VnTGltaXQgPCBsZW4gJiYgZmlsdC5jb250YWlucyhidWZbc2VnTGltaXRdKSkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc2VnTGltaXQ7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICB9CisvLworLy8gICAgICAgICAgICAgICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgdW5maWx0ZXJlZCBjaGFycyBiZXR3ZWVuIHNlZ1N0YXJ0CisvLyAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHNlZ0xpbWl0LgorLy8gICAgICAgICAgICAgICAgICAgIGludCBzZWdMZW4gPSBzZWdMaW1pdCAtIHNlZ1N0YXJ0OworLy8gICAgICAgICAgICAgICAgICAgIGlmIChzZWdMZW4gIT0gMCkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmV3U3RyID0gdHJhbnNmb3JtKAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZyhidWYsIHNlZ1N0YXJ0LCBzZWdMZW4pKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKHN0YXJ0LCBzdGFydCArIHNlZ0xlbiwgbmV3U3RyKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0gbmV3U3RyLmxlbmd0aCgpOworLy8gICAgICAgICAgICAgICAgICAgICAgICBsZW5EZWx0YSArPSBuZXdTdHIubGVuZ3RoKCkgLSBzZWdMZW47CisvLyAgICAgICAgICAgICAgICAgICAgfQorLy8KKy8vICAgICAgICAgICAgICAgICAgICAvLyBTZXQgc2VnU3RhcnQgdG8gdGhlIGZpcnN0IHVuZmlsdGVyZWQgY2hhciBhdCBvcgorLy8gICAgICAgICAgICAgICAgICAgIC8vIGFmdGVyIHNlZ0xpbWl0LgorLy8gICAgICAgICAgICAgICAgICAgIHNlZ1N0YXJ0ID0gc2VnTGltaXQ7CisvLyAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHQgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc2VnU3RhcnQgPCBsZW4gJiYgIWZpbHQuY29udGFpbnMoYnVmW3NlZ1N0YXJ0XSkpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc2VnU3RhcnQ7CisvLyAgICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICAgICAgICAgc3RhcnQgKz0gc2VnU3RhcnQgLSBzZWdMaW1pdDsKKy8vCisvLyAgICAgICAgICAgICAgICB9IHdoaWxlIChzZWdTdGFydCA8IGxlbik7CisvLyAgICAgICAgICAgICAgICAKKy8vICAgICAgICAgICAgICAgIG9mZnNldHMubGltaXQgKz0gbGVuRGVsdGE7CisvLyAgICAgICAgICAgICAgICBvZmZzZXRzLmNvbnRleHRMaW1pdCArPSBsZW5EZWx0YTsKKy8vICAgICAgICAgICAgICAgIG9mZnNldHMuc3RhcnQgPSBvZmZzZXRzLmxpbWl0OworLy8gICAgICAgICAgICAgICAgcmV0dXJuOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgfQorLy8gICAgICAgIC8vIGFzc2VydChzdGFydCA9PSBvZmZzZXRzLmxpbWl0KTsKKy8vICAgICAgICBvZmZzZXRzLnN0YXJ0ID0gc3RhcnQ7CisvLyAgICB9CisvLworLy8gICAgLyoqCisvLyAgICAgKiBTdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kIHRvIGRldGVybWluZSB3aGV0aGVyIGEKKy8vICAgICAqIGdpdmVuIGNoYXJhY3RlciBoYXMgYSB0cmFuc2Zvcm0gdGhhdCBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgorLy8gICAgICogVGhpcyBpcyBhcHByb3hpbWF0ZWx5IGVxdWl2YWxlbnQgdG8gPGNvZGU+YyAhPQorLy8gICAgICogdHJhbnNmb3JtKFN0cmluZy52YWx1ZU9mKGMpKTwvY29kZT4sIHdoZXJlCisvLyAgICAgKiA8Y29kZT5TdHJpbmcudmFsdWVPZihjKTwvY29kZT4gcmV0dXJucyBhIFN0cmluZyBjb250YWluaW5nIHRoZQorLy8gICAgICogc2luZ2xlIGNoYXJhY3RlciAobm90IGludGVnZXIpIDxjb2RlPmM8L2NvZGU+LiAgU3ViY2xhc3NlcyB0aGF0CisvLyAgICAgKiB0cmFuc2Zvcm0gYWxsIHRoZWlyIGlucHV0IGNhbiBzaW1wbHkgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+LgorLy8gICAgICovCisvLyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgYm9vbGVhbiBoYXNUcmFuc2Zvcm0oaW50IGMpOworLy8KKy8vICAgIC8qKgorLy8gICAgICogU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCB0aGlzIG1ldGhvZCB0byB0cmFuc2Zvcm0gYSBzdHJpbmcuCisvLyAgICAgKi8KKy8vICAgIHByb3RlY3RlZCBhYnN0cmFjdCBTdHJpbmcgdHJhbnNmb3JtKFN0cmluZyBzKTsKKy8vfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0aW9uUnVsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0aW9uUnVsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFkOWE3YTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRpb25SdWxlLmphdmEKQEAgLTAsMCArMSw1NzUgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CisKKy8qKgorICogQSB0cmFuc2xpdGVyYXRpb24gcnVsZSB1c2VkIGJ5CisgKiA8Y29kZT5SdWxlQmFzZWRUcmFuc2xpdGVyYXRvcjwvY29kZT4uCisgKiA8Y29kZT5UcmFuc2xpdGVyYXRpb25SdWxlPC9jb2RlPiBpcyBhbiBpbW11dGFibGUgb2JqZWN0LgorICoKKyAqIDxwPkEgcnVsZSBjb25zaXN0cyBvZiBhbiBpbnB1dCBwYXR0ZXJuIGFuZCBhbiBvdXRwdXQgc3RyaW5nLiAgV2hlbgorICogdGhlIGlucHV0IHBhdHRlcm4gaXMgbWF0Y2hlZCwgdGhlIG91dHB1dCBzdHJpbmcgaXMgZW1pdHRlZC4gIFRoZQorICogaW5wdXQgcGF0dGVybiBjb25zaXN0cyBvZiB6ZXJvIG9yIG1vcmUgY2hhcmFjdGVycyB3aGljaCBhcmUgbWF0Y2hlZAorICogZXhhY3RseSAodGhlIGtleSkgYW5kIG9wdGlvbmFsIGNvbnRleHQuICBDb250ZXh0IG11c3QgbWF0Y2ggaWYgaXQKKyAqIGlzIHNwZWNpZmllZC4gIENvbnRleHQgbWF5IGJlIHNwZWNpZmllZCBiZWZvcmUgdGhlIGtleSwgYWZ0ZXIgdGhlCisgKiBrZXksIG9yIGJvdGguICBUaGUga2V5LCBwcmVjZWRpbmcgY29udGV4dCwgYW5kIGZvbGxvd2luZyBjb250ZXh0CisgKiBtYXkgY29udGFpbiB2YXJpYWJsZXMuICBWYXJpYWJsZXMgcmVwcmVzZW50IGEgc2V0IG9mIFVuaWNvZGUKKyAqIGNoYXJhY3RlcnMsIHN1Y2ggYXMgdGhlIGxldHRlcnMgPGk+YTwvaT4gdGhyb3VnaCA8aT56PC9pPi4KKyAqIFZhcmlhYmxlcyBhcmUgZGV0ZWN0ZWQgYnkgbG9va2luZyB1cCBlYWNoIGNoYXJhY3RlciBpbiBhIHN1cHBsaWVkCisgKiB2YXJpYWJsZSBsaXN0IHRvIHNlZSBpZiBpdCBoYXMgYmVlbiBzbyBkZWZpbmVkLgorICoKKyAqIDxwPkEgcnVsZSBtYXkgY29udGFpbiBzZWdtZW50cyBpbiBpdHMgaW5wdXQgc3RyaW5nIGFuZCBzZWdtZW50CisgKiByZWZlcmVuY2VzIGluIGl0cyBvdXRwdXQgc3RyaW5nLiAgQSBzZWdtZW50IGlzIGEgc3Vic3RyaW5nIG9mIHRoZQorICogaW5wdXQgcGF0dGVybiwgaW5kaWNhdGVkIGJ5IGFuIG9mZnNldCBhbmQgbGltaXQuICBUaGUgc2VnbWVudCBtYXkKKyAqIGJlIGluIHRoZSBwcmVjZWRpbmcgb3IgZm9sbG93aW5nIGNvbnRleHQuICBJdCBtYXkgbm90IHNwYW4gYQorICogY29udGV4dCBib3VuZGFyeS4gIEEgc2VnbWVudCByZWZlcmVuY2UgaXMgYSBzcGVjaWFsIGNoYXJhY3RlciBpbgorICogdGhlIG91dHB1dCBzdHJpbmcgdGhhdCBjYXVzZXMgYSBzZWdtZW50IG9mIHRoZSBpbnB1dCBzdHJpbmcgKG5vdAorICogdGhlIGlucHV0IHBhdHRlcm4pIHRvIGJlIGNvcGllZCB0byB0aGUgb3V0cHV0IHN0cmluZy4gIFRoZSByYW5nZSBvZgorICogc3BlY2lhbCBjaGFyYWN0ZXJzIHRoYXQgcmVwcmVzZW50IHNlZ21lbnQgcmVmZXJlbmNlcyBpcyBkZWZpbmVkIGJ5CisgKiBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhLgorICoKKyAqIDxwPkV4YW1wbGU6IFRoZSBydWxlICIoW2Etel0pIC4gKFswLTldKSA+ICQyIC4gJDEiIHdpbGwgY2hhbmdlIHRoZSBpbnB1dAorICogc3RyaW5nICJhYmMuMTIzIiB0byAiYWIxLmMyMyIuCisgKgorICogPHA+Q29weXJpZ2h0ICZjb3B5OyBJQk0gQ29ycG9yYXRpb24gMTk5OS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBUcmFuc2xpdGVyYXRpb25SdWxlIHsKKworICAgIC8vIFRPRE8gRWxpbWluYXRlIHRoZSBwYXR0ZXJuIGFuZCBrZXlMZW5ndGggZGF0YSBtZW1iZXJzLiAgVGhleQorICAgIC8vIGFyZSB1c2VkIG9ubHkgYnkgbWFza3MoKSBhbmQgZ2V0SW5kZXhWYWx1ZSgpIHdoaWNoIGFyZSBjYWxsZWQKKyAgICAvLyBvbmx5IGR1cmluZyBidWlsZCB0aW1lLCBub3QgZHVyaW5nIHJ1bi10aW1lLiAgUGVyaGFwcyB0aGVzZQorICAgIC8vIG1ldGhvZHMgYW5kIHBhdHRlcm4va2V5TGVuZ3RoIGNhbiBiZSBpc29sYXRlZCBpbnRvIGEgc2VwYXJhdGUKKyAgICAvLyBvYmplY3QuCisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF0Y2ggdGhhdCBtdXN0IG9jY3VyIGJlZm9yZSB0aGUga2V5LCBvciBudWxsIGlmIHRoZXJlIGlzIG5vCisgICAgICogcHJlY2VkaW5nIGNvbnRleHQuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdNYXRjaGVyIGFudGVDb250ZXh0OworCisgICAgLyoqCisgICAgICogVGhlIG1hdGNoZXIgb2JqZWN0IGZvciB0aGUga2V5LiAgSWYgbnVsbCwgdGhlbiB0aGUga2V5IGlzIGVtcHR5LgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nTWF0Y2hlciBrZXk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF0Y2ggdGhhdCBtdXN0IG9jY3VyIGFmdGVyIHRoZSBrZXksIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8KKyAgICAgKiBmb2xsb3dpbmcgY29udGV4dC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZ01hdGNoZXIgcG9zdENvbnRleHQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgb2JqZWN0IHRoYXQgcGVyZm9ybXMgdGhlIHJlcGxhY2VtZW50IGlmIHRoZSBrZXksCisgICAgICogYW50ZUNvbnRleHQsIGFuZCBwb3N0Q29udGV4dCBhcmUgbWF0Y2hlZC4gIE5ldmVyIG51bGwuCisgICAgICovCisgICAgcHJpdmF0ZSBVbmljb2RlUmVwbGFjZXIgb3V0cHV0OworCisgICAgLyoqCisgICAgICogVGhlIHN0cmluZyB0aGF0IG11c3QgYmUgbWF0Y2hlZCwgY29uc2lzdGluZyBvZiB0aGUgYW50ZUNvbnRleHQsIGtleSwKKyAgICAgKiBhbmQgcG9zdENvbnRleHQsIGNvbmNhdGVuYXRlZCB0b2dldGhlciwgaW4gdGhhdCBvcmRlci4gIFNvbWUgY29tcG9uZW50cworICAgICAqIG1heSBiZSBlbXB0eSAoemVybyBsZW5ndGgpLgorICAgICAqIEBzZWUgYW50ZUNvbnRleHRMZW5ndGgKKyAgICAgKiBAc2VlIGtleUxlbmd0aAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHBhdHRlcm47CisKKyAgICAvKioKKyAgICAgKiBBbiBhcnJheSBvZiBtYXRjaGVyIG9iamVjdHMgY29ycmVzcG9uZGluZyB0byB0aGUgaW5wdXQgcGF0dGVybgorICAgICAqIHNlZ21lbnRzLiAgSWYgdGhlcmUgYXJlIG5vIHNlZ21lbnRzIHRoaXMgaXMgbnVsbC4gIE4uQi4gVGhpcyBpcworICAgICAqIGEgVW5pY29kZU1hdGNoZXIgZm9yIGdlbmVyYWxpdHksIGJ1dCBpbiBwcmFjdGljZSBpdCBpcyBhbHdheXMgYQorICAgICAqIFN0cmluZ01hdGNoZXIuICBJbiB0aGUgZnV0dXJlIHdlIG1heSBnZW5lcmFsaXplIHRoaXMsIGJ1dCBmb3IKKyAgICAgKiBub3cgd2Ugc29tZXRpbWVzIGNhc3QgZG93biB0byBTdHJpbmdNYXRjaGVyLgorICAgICAqLworICAgIFVuaWNvZGVNYXRjaGVyW10gc2VnbWVudHM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgdGhhdCBtdXN0IG1hdGNoIGJlZm9yZSB0aGUga2V5LiAgSWYKKyAgICAgKiB6ZXJvLCB0aGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIHJlcXVpcmVtZW50IGJlZm9yZSB0aGUga2V5LgorICAgICAqIFN1YnN0cmluZyBbMCxhbnRlQ29udGV4dExlbmd0aCkgb2YgcGF0dGVybiBpcyB0aGUgYW50ZUNvbnRleHQuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgYW50ZUNvbnRleHRMZW5ndGg7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBrZXkuICBTdWJzdHJpbmcgW2FudGVDb250ZXh0TGVuZ3RoLAorICAgICAqIGFudGVDb250ZXh0TGVuZ3RoICsga2V5TGVuZ3RoKSBpcyB0aGUga2V5LgorICAgICAqLworICAgIHByaXZhdGUgaW50IGtleUxlbmd0aDsKKworICAgIC8qKgorICAgICAqIE1pc2NlbGxhbmVvdXMgYXR0cmlidXRlcy4KKyAgICAgKi8KKyAgICBieXRlIGZsYWdzOworCisgICAgLyoqCisgICAgICogRmxhZyBhdHRyaWJ1dGVzLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBpbnQgQU5DSE9SX1NUQVJUID0gMTsKKyAgICBzdGF0aWMgZmluYWwgaW50IEFOQ0hPUl9FTkQgICA9IDI7CisKKyAgICAvKioKKyAgICAgKiBBbiBhbGlhcyBwb2ludGVyIHRvIHRoZSBkYXRhIGZvciB0aGlzIHJ1bGUuICBUaGUgZGF0YSBwcm92aWRlcworICAgICAqIGxvb2t1cCBzZXJ2aWNlcyBmb3IgbWF0Y2hlcnMgYW5kIHNlZ21lbnRzLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSBkYXRhOworCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS0yMDAxLiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgcnVsZSB3aXRoIHRoZSBnaXZlbiBpbnB1dCwgb3V0cHV0IHRleHQsIGFuZCBvdGhlcgorICAgICAqIGF0dHJpYnV0ZXMuICBBIGN1cnNvciBwb3NpdGlvbiBtYXkgYmUgc3BlY2lmaWVkIGZvciB0aGUgb3V0cHV0IHRleHQuCisgICAgICogQHBhcmFtIGlucHV0IGlucHV0IHN0cmluZywgaW5jbHVkaW5nIGtleSBhbmQgb3B0aW9uYWwgYW50ZSBhbmQKKyAgICAgKiBwb3N0IGNvbnRleHQKKyAgICAgKiBAcGFyYW0gYW50ZUNvbnRleHRQb3Mgb2Zmc2V0IGludG8gaW5wdXQgdG8gZW5kIG9mIGFudGUgY29udGV4dCwgb3IgLTEgaWYKKyAgICAgKiBub25lLiAgTXVzdCBiZSA8PSBpbnB1dC5sZW5ndGgoKSBpZiBub3QgLTEuCisgICAgICogQHBhcmFtIHBvc3RDb250ZXh0UG9zIG9mZnNldCBpbnRvIGlucHV0IHRvIHN0YXJ0IG9mIHBvc3QgY29udGV4dCwgb3IgLTEKKyAgICAgKiBpZiBub25lLiAgTXVzdCBiZSA8PSBpbnB1dC5sZW5ndGgoKSBpZiBub3QgLTEsIGFuZCBtdXN0IGJlID49CisgICAgICogYW50ZUNvbnRleHRQb3MuCisgICAgICogQHBhcmFtIG91dHB1dCBvdXRwdXQgc3RyaW5nCisgICAgICogQHBhcmFtIGN1cnNvclBvcyBvZmZzZXQgaW50byBvdXRwdXQgYXQgd2hpY2ggY3Vyc29yIGlzIGxvY2F0ZWQsIG9yIC0xIGlmCisgICAgICogbm9uZS4gIElmIGxlc3MgdGhhbiB6ZXJvLCB0aGVuIHRoZSBjdXJzb3IgaXMgcGxhY2VkIGFmdGVyIHRoZQorICAgICAqIDxjb2RlPm91dHB1dDwvY29kZT47IHRoYXQgaXMsIC0xIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiA8Y29kZT5vdXRwdXQubGVuZ3RoKCk8L2NvZGU+LiAgSWYgZ3JlYXRlciB0aGFuCisgICAgICogPGNvZGU+b3V0cHV0Lmxlbmd0aCgpPC9jb2RlPiB0aGVuIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24uCisgICAgICogQHBhcmFtIGN1cnNvck9mZnNldCBhbiBvZmZzZXQgdG8gYmUgYWRkZWQgdG8gY3Vyc29yUG9zIHRvIHBvc2l0aW9uIHRoZQorICAgICAqIGN1cnNvciBlaXRoZXIgaW4gdGhlIGFudGUgY29udGV4dCwgaWYgPCAwLCBvciBpbiB0aGUgcG9zdCBjb250ZXh0LCBpZiA+CisgICAgICogMC4gIEZvciBleGFtcGxlLCB0aGUgcnVsZSAiYWJje2RlZn0gPiB8IEBAQCB4eXo7IiBjaGFuZ2VzICJkZWYiIHRvCisgICAgICogInh5eiIgYW5kIG1vdmVzIHRoZSBjdXJzb3IgdG8gYmVmb3JlICJhIi4gIEl0IHdvdWxkIGhhdmUgYSBjdXJzb3JPZmZzZXQKKyAgICAgKiBvZiAtMy4KKyAgICAgKiBAcGFyYW0gc2VncyBhcnJheSBvZiBVbmljb2RlTWF0Y2hlciBjb3JyZXNwb25kaW5nIHRvIGlucHV0IHBhdHRlcm4KKyAgICAgKiBzZWdtZW50cywgb3IgbnVsbCBpZiB0aGVyZSBhcmUgbm9uZQorICAgICAqIEBwYXJhbSBhbmNob3JTdGFydCB0cnVlIGlmIHRoZSB0aGUgcnVsZSBpcyBhbmNob3JlZCBvbiB0aGUgbGVmdCB0bworICAgICAqIHRoZSBjb250ZXh0IHN0YXJ0CisgICAgICogQHBhcmFtIGFuY2hvckVuZCB0cnVlIGlmIHRoZSBydWxlIGlzIGFuY2hvcmVkIG9uIHRoZSByaWdodCB0byB0aGUKKyAgICAgKiBjb250ZXh0IGxpbWl0CisgICAgICovCisgICAgcHVibGljIFRyYW5zbGl0ZXJhdGlvblJ1bGUoU3RyaW5nIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhbnRlQ29udGV4dFBvcywgaW50IHBvc3RDb250ZXh0UG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGN1cnNvclBvcywgaW50IGN1cnNvck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlTWF0Y2hlcltdIHNlZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBhbmNob3JTdGFydCwgYm9vbGVhbiBhbmNob3JFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSB0aGVEYXRhKSB7CisgICAgICAgIGRhdGEgPSB0aGVEYXRhOworCisgICAgICAgIC8vIERvIHJhbmdlIGNoZWNrcyBvbmx5IHdoZW4gd2FycmFudGVkIHRvIHNhdmUgdGltZQorICAgICAgICBpZiAoYW50ZUNvbnRleHRQb3MgPCAwKSB7CisgICAgICAgICAgICBhbnRlQ29udGV4dExlbmd0aCA9IDA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoYW50ZUNvbnRleHRQb3MgPiBpbnB1dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgYW50ZSBjb250ZXh0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhbnRlQ29udGV4dExlbmd0aCA9IGFudGVDb250ZXh0UG9zOworICAgICAgICB9CisgICAgICAgIGlmIChwb3N0Q29udGV4dFBvcyA8IDApIHsKKyAgICAgICAgICAgIGtleUxlbmd0aCA9IGlucHV0Lmxlbmd0aCgpIC0gYW50ZUNvbnRleHRMZW5ndGg7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAocG9zdENvbnRleHRQb3MgPCBhbnRlQ29udGV4dExlbmd0aCB8fAorICAgICAgICAgICAgICAgIHBvc3RDb250ZXh0UG9zID4gaW5wdXQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHBvc3QgY29udGV4dCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAga2V5TGVuZ3RoID0gcG9zdENvbnRleHRQb3MgLSBhbnRlQ29udGV4dExlbmd0aDsKKyAgICAgICAgfQorICAgICAgICBpZiAoY3Vyc29yUG9zIDwgMCkgeworICAgICAgICAgICAgY3Vyc29yUG9zID0gb3V0cHV0Lmxlbmd0aCgpOworICAgICAgICB9IGVsc2UgaWYgKGN1cnNvclBvcyA+IG91dHB1dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjdXJzb3IgcG9zaXRpb24iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdlIGRvbid0IHZhbGlkYXRlIHRoZSBzZWdtZW50cyBhcnJheS4gIFRoZSBjYWxsZXIgbXVzdAorICAgICAgICAvLyBndWFyYW50ZWUgdGhhdCB0aGUgc2VnbWVudHMgYXJlIHdlbGwtZm9ybWVkICh0aGF0IGlzLCB0aGF0CisgICAgICAgIC8vIGFsbCAkbiByZWZlcmVuY2VzIGluIHRoZSBvdXRwdXQgcmVmZXIgdG8gaW5kaWNlcyBvZiB0aGlzCisgICAgICAgIC8vIGFycmF5LCBhbmQgdGhhdCBubyBhcnJheSBlbGVtZW50cyBhcmUgbnVsbCkuCisgICAgICAgIHRoaXMuc2VnbWVudHMgPSBzZWdzOworCisgICAgICAgIHBhdHRlcm4gPSBpbnB1dDsKKyAgICAgICAgZmxhZ3MgPSAwOworICAgICAgICBpZiAoYW5jaG9yU3RhcnQpIHsKKyAgICAgICAgICAgIGZsYWdzIHw9IEFOQ0hPUl9TVEFSVDsKKyAgICAgICAgfQorICAgICAgICBpZiAoYW5jaG9yRW5kKSB7CisgICAgICAgICAgICBmbGFncyB8PSBBTkNIT1JfRU5EOworICAgICAgICB9CisKKyAgICAgICAgYW50ZUNvbnRleHQgPSBudWxsOworICAgICAgICBpZiAoYW50ZUNvbnRleHRMZW5ndGggPiAwKSB7CisgICAgICAgICAgICBhbnRlQ29udGV4dCA9IG5ldyBTdHJpbmdNYXRjaGVyKHBhdHRlcm4uc3Vic3RyaW5nKDAsIGFudGVDb250ZXh0TGVuZ3RoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgZGF0YSk7CisgICAgICAgIH0KKworICAgICAgICBrZXkgPSBudWxsOworICAgICAgICBpZiAoa2V5TGVuZ3RoID4gMCkgeworICAgICAgICAgICAga2V5ID0gbmV3IFN0cmluZ01hdGNoZXIocGF0dGVybi5zdWJzdHJpbmcoYW50ZUNvbnRleHRMZW5ndGgsIGFudGVDb250ZXh0TGVuZ3RoICsga2V5TGVuZ3RoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGRhdGEpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHBvc3RDb250ZXh0TGVuZ3RoID0gcGF0dGVybi5sZW5ndGgoKSAtIGtleUxlbmd0aCAtIGFudGVDb250ZXh0TGVuZ3RoOworICAgICAgICBwb3N0Q29udGV4dCA9IG51bGw7CisgICAgICAgIGlmIChwb3N0Q29udGV4dExlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIHBvc3RDb250ZXh0ID0gbmV3IFN0cmluZ01hdGNoZXIocGF0dGVybi5zdWJzdHJpbmcoYW50ZUNvbnRleHRMZW5ndGggKyBrZXlMZW5ndGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBkYXRhKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMub3V0cHV0ID0gbmV3IFN0cmluZ1JlcGxhY2VyKG91dHB1dCwgY3Vyc29yUG9zICsgY3Vyc29yT2Zmc2V0LCBkYXRhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHByZWNlZGluZyBjb250ZXh0IGxlbmd0aC4gIFRoaXMgbWV0aG9kIGlzIG5lZWRlZCB0bworICAgICAqIHN1cHBvcnQgdGhlIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBtZXRob2QKKyAgICAgKiA8Y29kZT5nZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpPC9jb2RlPi4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEFudGVDb250ZXh0TGVuZ3RoKCkgeworICAgICAgICByZXR1cm4gYW50ZUNvbnRleHRMZW5ndGggKyAoKChmbGFncyAmIEFOQ0hPUl9TVEFSVCkgIT0gMCkgPyAxIDogMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgbWV0aG9kLiAgUmV0dXJucyA4LWJpdCBpbmRleCB2YWx1ZSBmb3IgdGhpcyBydWxlLgorICAgICAqIFRoaXMgaXMgdGhlIGxvdyBieXRlIG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIGtleSwKKyAgICAgKiB1bmxlc3MgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUga2V5IGlzIGEgc2V0LiAgSWYgaXQncyBhCisgICAgICogc2V0LCBvciBvdGhlcndpc2UgY2FuIG1hdGNoIG11bHRpcGxlIGtleXMsIHRoZSBpbmRleCB2YWx1ZSBpcyAtMS4KKyAgICAgKi8KKyAgICBmaW5hbCBpbnQgZ2V0SW5kZXhWYWx1ZSgpIHsKKyAgICAgICAgaWYgKGFudGVDb250ZXh0TGVuZ3RoID09IHBhdHRlcm4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIC8vIEEgcGF0dGVybiB3aXRoIGp1c3QgYW50ZSBjb250ZXh0IHtzdWNoIGFzIGZvbyk+YmFyfSBjYW4KKyAgICAgICAgICAgIC8vIG1hdGNoIGFueSBrZXkuCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQocGF0dGVybiwgYW50ZUNvbnRleHRMZW5ndGgpOworICAgICAgICByZXR1cm4gZGF0YS5sb29rdXBNYXRjaGVyKGMpID09IG51bGwgPyAoYyAmIDB4RkYpIDogLTE7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgbWV0aG9kLiAgUmV0dXJucyB0cnVlIGlmIHRoaXMgcnVsZSBtYXRjaGVzIHRoZSBnaXZlbgorICAgICAqIGluZGV4IHZhbHVlLiAgVGhlIGluZGV4IHZhbHVlIGlzIGFuIDgtYml0IGludGVnZXIsIDAuLjI1NSwKKyAgICAgKiByZXByZXNlbnRpbmcgdGhlIGxvdyBieXRlIG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIGtleS4KKyAgICAgKiBJdCBtYXRjaGVzIHRoaXMgcnVsZSBpZiBpdCBtYXRjaGVzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlCisgICAgICoga2V5LCBvciBpZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBrZXkgaXMgYSBzZXQsIGFuZCB0aGUgc2V0CisgICAgICogY29udGFpbnMgYW55IGNoYXJhY3RlciB3aXRoIGEgbG93IGJ5dGUgZXF1YWwgdG8gdGhlIGluZGV4CisgICAgICogdmFsdWUuICBJZiB0aGUgcnVsZSBjb250YWlucyBvbmx5IGFudGUgY29udGV4dCwgYXMgaW4gZm9vKT5iYXIsCisgICAgICogdGhlbiBpdCB3aWxsIG1hdGNoIGFueSBrZXkuCisgICAgICovCisgICAgZmluYWwgYm9vbGVhbiBtYXRjaGVzSW5kZXhWYWx1ZShpbnQgdikgeworICAgICAgICAvLyBEZWxlZ2F0ZSB0byB0aGUga2V5LCBvciBpZiB0aGVyZSBpcyBub25lLCB0byB0aGUgcG9zdENvbnRleHQuCisgICAgICAgIC8vIElmIHRoZXJlIGlzIG5laXRoZXIgdGhlbiB3ZSBtYXRjaCBhbnkga2V5OyByZXR1cm4gdHJ1ZS4KKyAgICAgICAgVW5pY29kZU1hdGNoZXIgbSA9IChrZXkgIT0gbnVsbCkgPyBrZXkgOiBwb3N0Q29udGV4dDsKKyAgICAgICAgcmV0dXJuIChtICE9IG51bGwpID8gbS5tYXRjaGVzSW5kZXhWYWx1ZSh2KSA6IHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBydWxlIG1hc2tzIGFub3RoZXIgcnVsZS4gIElmIHIxIG1hc2tzIHIyIHRoZW4KKyAgICAgKiByMSBtYXRjaGVzIGFueSBpbnB1dCBzdHJpbmcgdGhhdCByMiBtYXRjaGVzLiAgSWYgcjEgbWFza3MgcjIgYW5kIHIyIG1hc2tzCisgICAgICogcjEgdGhlbiByMSA9PSByMi4gIEV4YW1wbGVzOiAiYT54IiBtYXNrcyAiYWI+eSIuICAiYT54IiBtYXNrcyAiYVtiXT55Ii4KKyAgICAgKiAiW2NdYT54IiBtYXNrcyAiW2RjXWE+eSIuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbWFza3MoVHJhbnNsaXRlcmF0aW9uUnVsZSByMikgeworICAgICAgICAvKiBSdWxlIHIxIG1hc2tzIHJ1bGUgcjIgaWYgdGhlIHN0cmluZyBmb3JtZWQgb2YgdGhlCisgICAgICAgICAqIGFudGVjb250ZXh0LCBrZXksIGFuZCBwb3N0Y29udGV4dCBvdmVybGFwcyBpbiB0aGUgZm9sbG93aW5nCisgICAgICAgICAqIHdheToKKyAgICAgICAgICoKKyAgICAgICAgICogcjE6ICAgICAgYWFra2twcHBwCisgICAgICAgICAqIHIyOiAgICAgYWFha2tra2twcHBwCisgICAgICAgICAqICAgICAgICAgICAgXgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgc3RyaW5ncyBtdXN0IGJlIGFsaWduZWQgYXQgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUKKyAgICAgICAgICoga2V5LiAgVGhlIGxlbmd0aCBvZiByMSB0byB0aGUgbGVmdCBvZiB0aGUgYWxpZ25tZW50IHBvaW50CisgICAgICAgICAqIG11c3QgYmUgPD0gdGhlIGxlbmd0aCBvZiByMiB0byB0aGUgbGVmdDsgZGl0dG8gZm9yIHRoZQorICAgICAgICAgKiByaWdodC4gIFRoZSBjaGFyYWN0ZXJzIG9mIHIxIG11c3QgZXF1YWwgKG9yIGJlIGEgc3VwZXJzZXQKKyAgICAgICAgICogb2YpIHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgb2YgcjIuICBUaGUgc3VwZXJzZXQKKyAgICAgICAgICogb3BlcmF0aW9uIHNob3VsZCBiZSBwZXJmb3JtZWQgdG8gY2hlY2sgZm9yIFVuaWNvZGVTZXQKKyAgICAgICAgICogbWFza2luZy4KKyAgICAgICAgICoKKyAgICAgICAgICogQW5jaG9yczogIFR3byBwYXR0ZXJucyB0aGF0IGRpZmZlciBvbmx5IGluIGFuY2hvcnMgb25seQorICAgICAgICAgKiBtYXNrIG9uZSBhbm90aGVyIGlmIHRoZXkgYXJlIGV4YWN0bHkgZXF1YWwsIGFuZCByMiBoYXMKKyAgICAgICAgICogYWxsIHRoZSBhbmNob3JzIHIxIGhhcyAob3B0aW9uYWxseSwgcGx1cyBzb21lKS4gIEhlcmUgWQorICAgICAgICAgKiBtZWFucyB0aGUgcm93IG1hc2tzIHRoZSBjb2x1bW4sIE4gbWVhbnMgaXQgZG9lc24ndC4KKyAgICAgICAgICoKKyAgICAgICAgICogICAgICAgICBhYiAgIF5hYiAgICBhYiQgIF5hYiQKKyAgICAgICAgICogICBhYiAgICBZICAgICBZICAgICBZICAgICBZCisgICAgICAgICAqICBeYWIgICAgTiAgICAgWSAgICAgTiAgICAgWQorICAgICAgICAgKiAgIGFiJCAgIE4gICAgIE4gICAgIFkgICAgIFkKKyAgICAgICAgICogIF5hYiQgICBOICAgICBOICAgICBOICAgICBZCisgICAgICAgICAqCisgICAgICAgICAqIFBvc3QgY29udGV4dDoge2F9YiBtYXNrcyBhYiwgYnV0IG5vdCB2aWNlIHZlcnNhLCBzaW5jZSB7YX1iCisgICAgICAgICAqIG1hdGNoZXMgZXZlcnl0aGluZyBhYiBtYXRjaGVzLCBhbmQge2F9YiBtYXRjaGVzIHt8YXx9YiBidXQgYWIKKyAgICAgICAgICogZG9lcyBub3QuICBQcmUgY29udGV4dCBpcyBkaWZmZXJlbnQgKGF7Yn0gZG9lcyBub3QgYWxpZ24gd2l0aAorICAgICAgICAgKiBhYikuCisgICAgICAgICAqLworCisgICAgICAgIC8qIExJTUlUQVRJT04gb2YgdGhlIGN1cnJlbnQgbWFzayBhbGdvcml0aG06IFNvbWUgcnVsZQorICAgICAgICAgKiBtYXNraW5ncyBhcmUgY3VycmVudGx5IG5vdCBkZXRlY3RlZC4gIEZvciBleGFtcGxlLAorICAgICAgICAgKiAie0x1fV1hPngiIG1hc2tzICJBXWE+eSIuICBUaGlzIGNhbiBiZSBhZGRlZCBsYXRlci4gVE9ETworICAgICAgICAgKi8KKworICAgICAgICBpbnQgbGVuID0gcGF0dGVybi5sZW5ndGgoKTsKKyAgICAgICAgaW50IGxlZnQgPSBhbnRlQ29udGV4dExlbmd0aDsKKyAgICAgICAgaW50IGxlZnQyID0gcjIuYW50ZUNvbnRleHRMZW5ndGg7CisgICAgICAgIGludCByaWdodCA9IHBhdHRlcm4ubGVuZ3RoKCkgLSBsZWZ0OworICAgICAgICBpbnQgcmlnaHQyID0gcjIucGF0dGVybi5sZW5ndGgoKSAtIGxlZnQyOworCisgICAgICAgIC8vIFRPRE8gQ2xlYW4gdGhpcyB1cCAtLSBzb21lIGxvZ2ljIG1pZ2h0IGJlIGNvbWJpbmFibGUgd2l0aCB0aGUKKyAgICAgICAgLy8gbmV4dCBzdGF0ZW1lbnQuCisKKyAgICAgICAgLy8gVGVzdCBmb3IgYW5jaG9yIG1hc2tpbmcKKyAgICAgICAgaWYgKGxlZnQgPT0gbGVmdDIgJiYgcmlnaHQgPT0gcmlnaHQyICYmCisgICAgICAgICAgICBrZXlMZW5ndGggPD0gcjIua2V5TGVuZ3RoICYmCisgICAgICAgICAgICByMi5wYXR0ZXJuLnJlZ2lvbk1hdGNoZXMoMCwgcGF0dGVybiwgMCwgbGVuKSkgeworICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBib29sZWFuIGxvZ2ljIGltcGxlbWVudHMgdGhlIHRhYmxlIGFib3ZlCisgICAgICAgICAgICByZXR1cm4gKGZsYWdzID09IHIyLmZsYWdzKSB8fAorICAgICAgICAgICAgICAgICghKChmbGFncyAmIEFOQ0hPUl9TVEFSVCkgIT0gMCkgJiYgISgoZmxhZ3MgJiBBTkNIT1JfRU5EKSAhPSAwKSkgfHwKKyAgICAgICAgICAgICAgICAoKChyMi5mbGFncyAmIEFOQ0hPUl9TVEFSVCkgIT0gMCkgJiYgKChyMi5mbGFncyAmIEFOQ0hPUl9FTkQpICE9IDApKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBsZWZ0IDw9IGxlZnQyICYmCisgICAgICAgICAgICAocmlnaHQgPCByaWdodDIgfHwKKyAgICAgICAgICAgICAocmlnaHQgPT0gcmlnaHQyICYmIGtleUxlbmd0aCA8PSByMi5rZXlMZW5ndGgpKSAmJgorICAgICAgICAgICAgcjIucGF0dGVybi5yZWdpb25NYXRjaGVzKGxlZnQyIC0gbGVmdCwgcGF0dGVybiwgMCwgbGVuKTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IHBvc0JlZm9yZShSZXBsYWNlYWJsZSBzdHIsIGludCBwb3MpIHsKKyAgICAgICAgcmV0dXJuIChwb3MgPiAwKSA/CisgICAgICAgICAgICBwb3MgLSBVVEYxNi5nZXRDaGFyQ291bnQoc3RyLmNoYXIzMkF0KHBvcy0xKSkgOgorICAgICAgICAgICAgcG9zIC0gMTsKKyAgICB9CisKKyAgICBzdGF0aWMgZmluYWwgaW50IHBvc0FmdGVyKFJlcGxhY2VhYmxlIHN0ciwgaW50IHBvcykgeworICAgICAgICByZXR1cm4gKHBvcyA+PSAwICYmIHBvcyA8IHN0ci5sZW5ndGgoKSkgPworICAgICAgICAgICAgcG9zICsgVVRGMTYuZ2V0Q2hhckNvdW50KHN0ci5jaGFyMzJBdChwb3MpKSA6CisgICAgICAgICAgICBwb3MgKyAxOworICAgIH0KKworICAgIC8qKgorICAgICAqIEF0dGVtcHQgYSBtYXRjaCBhbmQgcmVwbGFjZW1lbnQgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLiAgUmV0dXJuCisgICAgICogdGhlIGRlZ3JlZSBvZiBtYXRjaCBiZXR3ZWVuIHRoaXMgcnVsZSBhbmQgdGhlIGdpdmVuIHRleHQuICBUaGUKKyAgICAgKiBkZWdyZWUgb2YgbWF0Y2ggbWF5IGJlIG1pc21hdGNoLCBhIHBhcnRpYWwgbWF0Y2gsIG9yIGEgZnVsbAorICAgICAqIG1hdGNoLiAgQSBtaXNtYXRjaCBtZWFucyBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIG9mIHRoZSB0ZXh0CisgICAgICogZG9lcyBub3QgbWF0Y2ggdGhlIGNvbnRleHQgb3Iga2V5LiAgQSBwYXJ0aWFsIG1hdGNoIG1lYW5zIHNvbWUKKyAgICAgKiBjb250ZXh0IGFuZCBrZXkgY2hhcmFjdGVycyBtYXRjaCwgYnV0IHRoZSB0ZXh0IGlzIG5vdCBsb25nCisgICAgICogZW5vdWdoIHRvIG1hdGNoIGFsbCBvZiB0aGVtLiAgQSBmdWxsIG1hdGNoIG1lYW5zIGFsbCBjb250ZXh0CisgICAgICogYW5kIGtleSBjaGFyYWN0ZXJzIG1hdGNoLgorICAgICAqCisgICAgICogSWYgYSBmdWxsIG1hdGNoIGlzIG9idGFpbmVkLCBwZXJmb3JtIGEgcmVwbGFjZW1lbnQsIHVwZGF0ZSBwb3MsCisgICAgICogYW5kIHJldHVybiBVX01BVENILiAgT3RoZXJ3aXNlIGJvdGggdGV4dCBhbmQgcG9zIGFyZSB1bmNoYW5nZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dAorICAgICAqIEBwYXJhbSBwb3MgdGhlIHBvc2l0aW9uIGluZGljZXMKKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50YWwgaWYgVFJVRSwgdGVzdCBmb3IgcGFydGlhbCBtYXRjaGVzIHRoYXQgbWF5CisgICAgICogYmUgY29tcGxldGVkIGJ5IGFkZGl0aW9uYWwgdGV4dCBpbnNlcnRlZCBhdCBwb3MubGltaXQuCisgICAgICogQHJldHVybiBvbmUgb2YgPGNvZGU+VV9NSVNNQVRDSDwvY29kZT4sCisgICAgICogPGNvZGU+VV9QQVJUSUFMX01BVENIPC9jb2RlPiwgb3IgPGNvZGU+VV9NQVRDSDwvY29kZT4uICBJZgorICAgICAqIGluY3JlbWVudGFsIGlzIEZBTFNFIHRoZW4gVV9QQVJUSUFMX01BVENIIHdpbGwgbm90IGJlIHJldHVybmVkLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgbWF0Y2hBbmRSZXBsYWNlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3IuUG9zaXRpb24gcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgLy8gTWF0Y2hpbmcgYW5kIHJlcGxhY2luZyBhcmUgZG9uZSBpbiBvbmUgbWV0aG9kIGJlY2F1c2UgdGhlCisgICAgICAgIC8vIHJlcGxhY2VtZW50IG9wZXJhdGlvbiBuZWVkcyBpbmZvcm1hdGlvbiBvYnRhaW5lZCBkdXJpbmcgdGhlCisgICAgICAgIC8vIG1hdGNoLiAgQW5vdGhlciB3YXkgdG8gZG8gdGhpcyBpcyB0byBoYXZlIHRoZSBtYXRjaCBtZXRob2QKKyAgICAgICAgLy8gY3JlYXRlIGEgbWF0Y2ggcmVzdWx0IHN0cnVjdCB3aXRoIHJlbGV2YW50IG9mZnNldHMsIGFuZCB0byBwYXNzCisgICAgICAgIC8vIHRoaXMgaW50byB0aGUgcmVwbGFjZSBtZXRob2QuCisKKyAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PSBNQVRDSCA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgICAgICAvLyBSZXNldCBzZWdtZW50IG1hdGNoIGRhdGEKKyAgICAgICAgaWYgKHNlZ21lbnRzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxzZWdtZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICgoU3RyaW5nTWF0Y2hlcikgc2VnbWVudHNbaV0pLnJlc2V0TWF0Y2goKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludCBrZXlMaW1pdDsKKyAgICAgICAgaW50W10gaW50UmVmID0gbmV3IGludFsxXTsKKworICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQW50ZSBDb250ZXh0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8vIEEgbWlzbWF0Y2ggaW4gdGhlIGFudGUgY29udGV4dCwgb3Igd2l0aCB0aGUgc3RhcnQgYW5jaG9yLAorICAgICAgICAvLyBpcyBhbiBvdXRyaWdodCBVX01JU01BVENIIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB3ZSBhcmUKKyAgICAgICAgLy8gaW5jcmVtZW50YWwgb3Igbm90LgorICAgICAgICBpbnQgb1RleHQ7IC8vIG9mZnNldCBpbnRvICd0ZXh0JworICAgICAgICBpbnQgbWluT1RleHQ7CisKKyAgICAgICAgLy8gTm90ZSAoMSk6IFdlIHByb2Nlc3MgdGV4dCBpbiAxNi1iaXQgY29kZSB1bml0cywgcmF0aGVyIHRoYW4KKyAgICAgICAgLy8gMzItYml0IGNvZGUgcG9pbnRzLiAgVGhpcyB3b3JrcyBiZWNhdXNlIHN0YW5kLWlucyBhcmUKKyAgICAgICAgLy8gYWx3YXlzIGluIHRoZSBCTVAgYW5kIGJlY2F1c2Ugd2UgYXJlIGRvaW5nIGEgbGl0ZXJhbCBtYXRjaAorICAgICAgICAvLyBvcGVyYXRpb24sIHdoaWNoIGNhbiBiZSBkb25lIDE2LWJpdHMgYXQgYSB0aW1lLgorCisgICAgICAgIGludCBhbnRlTGltaXQgPSBwb3NCZWZvcmUodGV4dCwgcG9zLmNvbnRleHRTdGFydCk7CisKKyAgICAgICAgaW50IG1hdGNoOworCisgICAgICAgIC8vIFN0YXJ0IHJldmVyc2UgbWF0Y2ggYXQgY2hhciBiZWZvcmUgcG9zLnN0YXJ0CisgICAgICAgIGludFJlZlswXSA9IHBvc0JlZm9yZSh0ZXh0LCBwb3Muc3RhcnQpOworCisgICAgICAgIGlmIChhbnRlQ29udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBtYXRjaCA9IGFudGVDb250ZXh0Lm1hdGNoZXModGV4dCwgaW50UmVmLCBhbnRlTGltaXQsIGZhbHNlKTsKKyAgICAgICAgICAgIGlmIChtYXRjaCAhPSBVbmljb2RlTWF0Y2hlci5VX01BVENIKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVNYXRjaGVyLlVfTUlTTUFUQ0g7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBvVGV4dCA9IGludFJlZlswXTsKKworICAgICAgICBtaW5PVGV4dCA9IHBvc0FmdGVyKHRleHQsIG9UZXh0KTsKKworICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3RhcnQgQW5jaG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIGlmICgoKGZsYWdzICYgQU5DSE9SX1NUQVJUKSAhPSAwKSAmJiBvVGV4dCAhPSBhbnRlTGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBVbmljb2RlTWF0Y2hlci5VX01JU01BVENIOworICAgICAgICB9CisKKyAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0gS2V5IGFuZCBQb3N0IENvbnRleHQgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICBpbnRSZWZbMF0gPSBwb3Muc3RhcnQ7CisKKyAgICAgICAgaWYgKGtleSAhPSBudWxsKSB7CisgICAgICAgICAgICBtYXRjaCA9IGtleS5tYXRjaGVzKHRleHQsIGludFJlZiwgcG9zLmxpbWl0LCBpbmNyZW1lbnRhbCk7CisgICAgICAgICAgICBpZiAobWF0Y2ggIT0gVW5pY29kZU1hdGNoZXIuVV9NQVRDSCkgeworICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGtleUxpbWl0ID0gaW50UmVmWzBdOworCisgICAgICAgIGlmIChwb3N0Q29udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoaW5jcmVtZW50YWwgJiYga2V5TGltaXQgPT0gcG9zLmxpbWl0KSB7CisgICAgICAgICAgICAgICAgLy8gVGhlIGtleSBtYXRjaGVzIGp1c3QgYmVmb3JlIHBvcy5saW1pdCwgYW5kIHRoZXJlIGlzCisgICAgICAgICAgICAgICAgLy8gYSBwb3N0Q29udGV4dC4gIFNpbmNlIHdlIGFyZSBpbiBpbmNyZW1lbnRhbCBtb2RlLAorICAgICAgICAgICAgICAgIC8vIHdlIG11c3QgYXNzdW1lIG1vcmUgY2hhcmFjdGVycyBtYXkgYmUgaW5zZXJ0ZWQgYXQKKyAgICAgICAgICAgICAgICAvLyBwb3MubGltaXQgLS0gdGhpcyBpcyBhIHBhcnRpYWwgbWF0Y2guCisgICAgICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVNYXRjaGVyLlVfUEFSVElBTF9NQVRDSDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWF0Y2ggPSBwb3N0Q29udGV4dC5tYXRjaGVzKHRleHQsIGludFJlZiwgcG9zLmNvbnRleHRMaW1pdCwgaW5jcmVtZW50YWwpOworICAgICAgICAgICAgaWYgKG1hdGNoICE9IFVuaWNvZGVNYXRjaGVyLlVfTUFUQ0gpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2g7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBvVGV4dCA9IGludFJlZlswXTsKKworICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFN0b3AgQW5jaG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIGlmICgoKGZsYWdzICYgQU5DSE9SX0VORCkpICE9IDApIHsKKyAgICAgICAgICAgIGlmIChvVGV4dCAhPSBwb3MuY29udGV4dExpbWl0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVuaWNvZGVNYXRjaGVyLlVfTUlTTUFUQ0g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVW5pY29kZU1hdGNoZXIuVV9QQVJUSUFMX01BVENIOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09IFJFUExBQ0UgPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgICAgICAvLyBXZSBoYXZlIGEgZnVsbCBtYXRjaC4gIFRoZSBrZXkgaXMgYmV0d2VlbiBwb3Muc3RhcnQgYW5kCisgICAgICAgIC8vIGtleUxpbWl0LgorCisgICAgICAgIGludCBuZXdMZW5ndGggPSBvdXRwdXQucmVwbGFjZSh0ZXh0LCBwb3Muc3RhcnQsIGtleUxpbWl0LCBpbnRSZWYpOworICAgICAgICBpbnQgbGVuRGVsdGEgPSBuZXdMZW5ndGggLSAoa2V5TGltaXQgLSBwb3Muc3RhcnQpOworICAgICAgICBpbnQgbmV3U3RhcnQgPSBpbnRSZWZbMF07CisKKyAgICAgICAgb1RleHQgKz0gbGVuRGVsdGE7CisgICAgICAgIHBvcy5saW1pdCArPSBsZW5EZWx0YTsKKyAgICAgICAgcG9zLmNvbnRleHRMaW1pdCArPSBsZW5EZWx0YTsKKyAgICAgICAgLy8gUmVzdHJpY3QgbmV3IHZhbHVlIG9mIHN0YXJ0IHRvIFttaW5PVGV4dCwgbWluKG9UZXh0LCBwb3MubGltaXQpXS4KKyAgICAgICAgcG9zLnN0YXJ0ID0gTWF0aC5tYXgobWluT1RleHQsIE1hdGgubWluKE1hdGgubWluKG9UZXh0LCBwb3MubGltaXQpLCBuZXdTdGFydCkpOworICAgICAgICByZXR1cm4gVW5pY29kZU1hdGNoZXIuVV9NQVRDSDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBzb3VyY2Ugc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGlzIHJ1bGUuICBBcHBlbmQgaXQgdG8gdGhlCisgICAgICogZ2l2ZW4gc3RyaW5nLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9SdWxlKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAvLyBpbnQgaTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgcnVsZSA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvLyBBY2N1bXVsYXRlIHNwZWNpYWwgY2hhcmFjdGVycyAoYW5kIG5vbi1zcGVjaWFscyBmb2xsb3dpbmcgdGhlbSkKKyAgICAgICAgLy8gaW50byBxdW90ZUJ1Zi4gIEFwcGVuZCBxdW90ZUJ1Ziwgd2l0aGluIHNpbmdsZSBxdW90ZXMsIHdoZW4KKyAgICAgICAgLy8gYSBub24tcXVvdGVkIGVsZW1lbnQgbXVzdCBiZSBpbnNlcnRlZC4KKyAgICAgICAgU3RyaW5nQnVmZmVyIHF1b3RlQnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIC8vIERvIG5vdCBlbWl0IHRoZSBicmFjZXMgJ3snICd9JyBhcm91bmQgdGhlIHBhdHRlcm4gaWYgdGhlcmUKKyAgICAgICAgLy8gaXMgbmVpdGhlciBhbnRlQ29udGV4dCBub3IgcG9zdENvbnRleHQuCisgICAgICAgIGJvb2xlYW4gZW1pdEJyYWNlcyA9CisgICAgICAgICAgICAoYW50ZUNvbnRleHQgIT0gbnVsbCkgfHwgKHBvc3RDb250ZXh0ICE9IG51bGwpOworCisgICAgICAgIC8vIEVtaXQgc3RhcnQgYW5jaG9yCisgICAgICAgIGlmICgoZmxhZ3MgJiBBTkNIT1JfU1RBUlQpICE9IDApIHsKKyAgICAgICAgICAgIHJ1bGUuYXBwZW5kKCdeJyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBFbWl0IHRoZSBpbnB1dCBwYXR0ZXJuCisgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsIGFudGVDb250ZXh0LCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworCisgICAgICAgIGlmIChlbWl0QnJhY2VzKSB7CisgICAgICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCAneycsIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisgICAgICAgIH0KKworICAgICAgICBVdGlsaXR5LmFwcGVuZFRvUnVsZShydWxlLCBrZXksIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisKKyAgICAgICAgaWYgKGVtaXRCcmFjZXMpIHsKKyAgICAgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsICd9JywgdHJ1ZSwgZXNjYXBlVW5wcmludGFibGUsIHF1b3RlQnVmKTsKKyAgICAgICAgfQorCisgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsIHBvc3RDb250ZXh0LCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworCisgICAgICAgIC8vIEVtaXQgZW5kIGFuY2hvcgorICAgICAgICBpZiAoKGZsYWdzICYgQU5DSE9SX0VORCkgIT0gMCkgeworICAgICAgICAgICAgcnVsZS5hcHBlbmQoJyQnKTsKKyAgICAgICAgfQorCisgICAgICAgIFV0aWxpdHkuYXBwZW5kVG9SdWxlKHJ1bGUsICIgPiAiLCB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworCisgICAgICAgIC8vIEVtaXQgdGhlIG91dHB1dCBwYXR0ZXJuCisKKyAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgb3V0cHV0LnRvUmVwbGFjZXJQYXR0ZXJuKGVzY2FwZVVucHJpbnRhYmxlKSwKKyAgICAgICAgICAgICAgICAgICAgIHRydWUsIGVzY2FwZVVucHJpbnRhYmxlLCBxdW90ZUJ1Zik7CisKKyAgICAgICAgVXRpbGl0eS5hcHBlbmRUb1J1bGUocnVsZSwgJzsnLCB0cnVlLCBlc2NhcGVVbnByaW50YWJsZSwgcXVvdGVCdWYpOworCisgICAgICAgIHJldHVybiBydWxlLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorICAgICAqIEByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0CisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuICd7JyArIHRvUnVsZSh0cnVlKSArICd9JzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmlvbiB0aGUgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIHRoYXQgbWF5IGJlIG1vZGlmaWVkIGJ5IHRoaXMgcnVsZQorICAgICAqIGludG8gdGhlIGdpdmVuIHNldC4KKyAgICAgKi8KKyAgICB2b2lkIGFkZFNvdXJjZVNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKSB7CisgICAgICAgIGludCBsaW1pdCA9IGFudGVDb250ZXh0TGVuZ3RoICsga2V5TGVuZ3RoOworICAgICAgICBmb3IgKGludCBpPWFudGVDb250ZXh0TGVuZ3RoOyBpPGxpbWl0OyApIHsKKyAgICAgICAgICAgIGludCBjaCA9IFVURjE2LmNoYXJBdChwYXR0ZXJuLCBpKTsKKyAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNoKTsKKyAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIG1hdGNoZXIgPSBkYXRhLmxvb2t1cE1hdGNoZXIoY2gpOworICAgICAgICAgICAgaWYgKG1hdGNoZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRvVW5pb25Uby5hZGQoY2gpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtYXRjaGVyLmFkZE1hdGNoU2V0VG8odG9VbmlvblRvKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFVuaW9uIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgZW1pdHRlZCBieSB0aGlzIHJ1bGUKKyAgICAgKiBpbnRvIHRoZSBnaXZlbiBzZXQuCisgICAgICovCisgICAgdm9pZCBhZGRUYXJnZXRTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25UbykgeworICAgICAgICBvdXRwdXQuYWRkUmVwbGFjZW1lbnRTZXRUbyh0b1VuaW9uVG8pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdGlvblJ1bGVTZXQuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdGlvblJ1bGVTZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNDgzZjM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0aW9uUnVsZVNldC5qYXZhCkBAIC0wLDAgKzEsMjU3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5RXh0ZW5zaW9uczsKKworLyoqCisgKiBBIHNldCBvZiBydWxlcyBmb3IgYSA8Y29kZT5SdWxlQmFzZWRUcmFuc2xpdGVyYXRvcjwvY29kZT4uICBUaGlzIHNldCBlbmNvZGVzCisgKiB0aGUgdHJhbnNsaXRlcmF0aW9uIGluIG9uZSBkaXJlY3Rpb24gZnJvbSBvbmUgc2V0IG9mIGNoYXJhY3RlcnMgb3Igc2hvcnQKKyAqIHN0cmluZ3MgdG8gYW5vdGhlci4gIEEgPGNvZGU+UnVsZUJhc2VkVHJhbnNsaXRlcmF0b3I8L2NvZGU+IGNvbnNpc3RzIG9mIHVwIHRvCisgKiB0d28gc3VjaCBzZXRzLCBvbmUgZm9yIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiwgYW5kIG9uZSBmb3IgdGhlIHJldmVyc2UuCisgKgorICogPHA+QSA8Y29kZT5UcmFuc2xpdGVyYXRpb25SdWxlU2V0PC9jb2RlPiBoYXMgb25lIGltcG9ydGFudCBvcGVyYXRpb24sIHRoYXQgb2YKKyAqIGZpbmRpbmcgYSBtYXRjaGluZyBydWxlIGF0IGEgZ2l2ZW4gcG9pbnQgaW4gdGhlIHRleHQuICBUaGlzIGlzIGFjY29tcGxpc2hlZAorICogYnkgdGhlIDxjb2RlPmZpbmRNYXRjaCgpPC9jb2RlPiBtZXRob2QuCisgKgorICogPHA+Q29weXJpZ2h0ICZjb3B5OyBJQk0gQ29ycG9yYXRpb24gMTk5OS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBUcmFuc2xpdGVyYXRpb25SdWxlU2V0IHsKKyAgICAvKioKKyAgICAgKiBWZWN0b3Igb2YgcnVsZXMsIGluIHRoZSBvcmRlciBhZGRlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFZlY3RvciBydWxlVmVjdG9yOworCisgICAgLyoqCisgICAgICogTGVuZ3RoIG9mIHRoZSBsb25nZXN0IHByZWNlZGluZyBjb250ZXh0CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbWF4Q29udGV4dExlbmd0aDsKKworICAgIC8qKgorICAgICAqIFNvcnRlZCBhbmQgaW5kZXhlZCB0YWJsZSBvZiBydWxlcy4gIFRoaXMgaXMgY3JlYXRlZCBieSBmcmVlemUoKSBmcm9tCisgICAgICogdGhlIHJ1bGVzIGluIHJ1bGVWZWN0b3IuICBydWxlcy5sZW5ndGggPj0gcnVsZVZlY3Rvci5zaXplKCksIGFuZCB0aGUKKyAgICAgKiByZWZlcmVuY2VzIGluIHJ1bGVzW10gYXJlIGFsaWFzZXMgb2YgdGhlIHJlZmVyZW5jZXMgaW4gcnVsZVZlY3Rvci4KKyAgICAgKiBBIHNpbmdsZSBydWxlIGluIHJ1bGVWZWN0b3IgaXMgbGlzdGVkIG9uZSBvciBtb3JlIHRpbWVzIGluIHJ1bGVzW10uCisgICAgICovCisgICAgcHJpdmF0ZSBUcmFuc2xpdGVyYXRpb25SdWxlW10gcnVsZXM7CisKKyAgICAvKioKKyAgICAgKiBJbmRleCB0YWJsZS4gIEZvciB0ZXh0IGhhdmluZyBhIGZpcnN0IGNoYXJhY3RlciBjLCBjb21wdXRlIHggPSBjJjB4RkYuCisgICAgICogTm93IHVzZSBydWxlc1tpbmRleFt4XS4uaW5kZXhbeCsxXS0xXS4gIFRoaXMgaW5kZXggdGFibGUgaXMgY3JlYXRlZCBieQorICAgICAqIGZyZWV6ZSgpLgorICAgICAqLworICAgIHByaXZhdGUgaW50W10gaW5kZXg7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgIlx1MDBBOSBJQk0gQ29ycG9yYXRpb24gMTk5OS0yMDAxLiBBbGwgcmlnaHRzIHJlc2VydmVkLiI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgZW1wdHkgcnVsZSBzZXQuCisgICAgICovCisgICAgcHVibGljIFRyYW5zbGl0ZXJhdGlvblJ1bGVTZXQoKSB7CisgICAgICAgIHJ1bGVWZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIG1heENvbnRleHRMZW5ndGggPSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWF4aW11bSBjb250ZXh0IGxlbmd0aC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGxvbmdlc3QgcHJlY2VkaW5nIGNvbnRleHQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpIHsKKyAgICAgICAgcmV0dXJuIG1heENvbnRleHRMZW5ndGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGEgcnVsZSB0byB0aGlzIHNldC4gIFJ1bGVzIGFyZSBhZGRlZCBpbiBvcmRlciwgYW5kIG9yZGVyIGlzCisgICAgICogc2lnbmlmaWNhbnQuCisgICAgICogQHBhcmFtIHJ1bGUgdGhlIHJ1bGUgdG8gYWRkCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkUnVsZShUcmFuc2xpdGVyYXRpb25SdWxlIHJ1bGUpIHsKKyAgICAgICAgcnVsZVZlY3Rvci5hZGRFbGVtZW50KHJ1bGUpOworICAgICAgICBpbnQgbGVuOworICAgICAgICBpZiAoKGxlbiA9IHJ1bGUuZ2V0QW50ZUNvbnRleHRMZW5ndGgoKSkgPiBtYXhDb250ZXh0TGVuZ3RoKSB7CisgICAgICAgICAgICBtYXhDb250ZXh0TGVuZ3RoID0gbGVuOworICAgICAgICB9CisKKyAgICAgICAgcnVsZXMgPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsb3NlIHRoaXMgcnVsZSBzZXQgdG8gZnVydGhlciBhZGRpdGlvbnMsIGNoZWNrIGl0IGZvciBtYXNrZWQgcnVsZXMsCisgICAgICogYW5kIGluZGV4IGl0IHRvIG9wdGltaXplIHBlcmZvcm1hbmNlLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHNvbWUgcnVsZXMgYXJlIG1hc2tlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGZyZWV6ZSgpIHsKKyAgICAgICAgLyogQ29uc3RydWN0IHRoZSBydWxlIGFycmF5IGFuZCBpbmRleCB0YWJsZS4gIFdlIHJlb3JkZXIgdGhlCisgICAgICAgICAqIHJ1bGVzIGJ5IHNvcnRpbmcgdGhlbSBpbnRvIDI1NiBiaW5zLiAgRWFjaCBiaW4gY29udGFpbnMgYWxsCisgICAgICAgICAqIHJ1bGVzIG1hdGNoaW5nIHRoZSBpbmRleCB2YWx1ZSBmb3IgdGhhdCBiaW4uICBBIHJ1bGUKKyAgICAgICAgICogbWF0Y2hlcyBhbiBpbmRleCB2YWx1ZSBpZiBzdHJpbmcgd2hvc2UgZmlyc3Qga2V5IGNoYXJhY3RlcgorICAgICAgICAgKiBoYXMgYSBsb3cgYnl0ZSBlcXVhbCB0byB0aGUgaW5kZXggdmFsdWUgY2FuIG1hdGNoIHRoZSBydWxlLgorICAgICAgICAgKgorICAgICAgICAgKiBFYWNoIGJpbiBjb250YWlucyB6ZXJvIG9yIG1vcmUgcnVsZXMsIGluIHRoZSBzYW1lIG9yZGVyCisgICAgICAgICAqIHRoZXkgd2VyZSBmb3VuZCBvcmlnaW5hbGx5LiAgSG93ZXZlciwgdGhlIHRvdGFsIHJ1bGVzIGluCisgICAgICAgICAqIHRoZSBiaW5zIG1heSBleGNlZWQgdGhlIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgdmVjdG9yLAorICAgICAgICAgKiBzaW5jZSBydWxlcyB0aGF0IGhhdmUgYSB2YXJpYWJsZSBhcyB0aGVpciBmaXJzdCBrZXkKKyAgICAgICAgICogY2hhcmFjdGVyIHdpbGwgZ2VuZXJhbGx5IGZhbGwgaW50byBtb3JlIHRoYW4gb25lIGJpbi4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhhdCBpcywgZWFjaCBiaW4gY29udGFpbnMgYWxsIHJ1bGVzIHRoYXQgZWl0aGVyIGhhdmUgdGhhdAorICAgICAgICAgKiBmaXJzdCBpbmRleCB2YWx1ZSBhcyB0aGVpciBmaXJzdCBrZXkgY2hhcmFjdGVyLCBvciBoYXZlCisgICAgICAgICAqIGEgc2V0IGNvbnRhaW5pbmcgdGhlIGluZGV4IHZhbHVlIGFzIHRoZWlyIGZpcnN0IGNoYXJhY3Rlci4KKyAgICAgICAgICovCisgICAgICAgIGludCBuID0gcnVsZVZlY3Rvci5zaXplKCk7CisgICAgICAgIGluZGV4ID0gbmV3IGludFsyNTddOyAvLyBbc2ljXQorICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IoMipuKTsgLy8gaGV1cmlzdGljOyBhZGp1c3QgYXMgbmVlZGVkCisKKyAgICAgICAgLyogUHJlY29tcHV0ZSB0aGUgaW5kZXggdmFsdWVzLiAgVGhpcyBzYXZlcyBhIExPVCBvZiB0aW1lLgorICAgICAgICAgKi8KKyAgICAgICAgaW50W10gaW5kZXhWYWx1ZSA9IG5ldyBpbnRbbl07CisgICAgICAgIGZvciAoaW50IGo9MDsgajxuOyArK2opIHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdGlvblJ1bGUgciA9IChUcmFuc2xpdGVyYXRpb25SdWxlKSBydWxlVmVjdG9yLmVsZW1lbnRBdChqKTsKKyAgICAgICAgICAgIGluZGV4VmFsdWVbal0gPSByLmdldEluZGV4VmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCB4PTA7IHg8MjU2OyArK3gpIHsKKyAgICAgICAgICAgIGluZGV4W3hdID0gdi5zaXplKCk7CisgICAgICAgICAgICBmb3IgKGludCBqPTA7IGo8bjsgKytqKSB7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4VmFsdWVbal0gPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXhWYWx1ZVtqXSA9PSB4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2LmFkZEVsZW1lbnQocnVsZVZlY3Rvci5lbGVtZW50QXQoaikpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGluZGV4VmFsdWUgaXMgPCAwLCB0aGVuIHRoZSBmaXJzdCBrZXkgY2hhcmFjdGVyIGlzCisgICAgICAgICAgICAgICAgICAgIC8vIGEgc2V0LCBhbmQgd2UgbXVzdCB1c2UgdGhlIG1vcmUgdGltZS1jb25zdW1pbmcKKyAgICAgICAgICAgICAgICAgICAgLy8gbWF0Y2hlc0luZGV4VmFsdWUgY2hlY2suICBJbiBwcmFjdGljZSB0aGlzIGhhcHBlbnMKKyAgICAgICAgICAgICAgICAgICAgLy8gcmFyZWx5LCBzbyB3ZSBzZWxkb20gdHJlYWQgdGhpcyBjb2RlIHBhdGguCisgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdGlvblJ1bGUgciA9IChUcmFuc2xpdGVyYXRpb25SdWxlKSBydWxlVmVjdG9yLmVsZW1lbnRBdChqKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHIubWF0Y2hlc0luZGV4VmFsdWUoeCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYuYWRkRWxlbWVudChyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpbmRleFsyNTZdID0gdi5zaXplKCk7CisKKyAgICAgICAgLyogRnJlZXplIHRoaW5ncyBpbnRvIGFuIGFycmF5LgorICAgICAgICAgKi8KKyAgICAgICAgcnVsZXMgPSBuZXcgVHJhbnNsaXRlcmF0aW9uUnVsZVt2LnNpemUoKV07CisgICAgICAgIHYuY29weUludG8ocnVsZXMpOworCisgICAgICAgIFN0cmluZ0J1ZmZlciBlcnJvcnMgPSBudWxsOworCisgICAgICAgIC8qIENoZWNrIGZvciBtYXNraW5nLiAgVGhpcyBpcyBNVUNIIGZhc3RlciB0aGFuIG91ciBvbGQgY2hlY2ssCisgICAgICAgICAqIHdoaWNoIHdhcyBlYWNoIHJ1bGUgYWdhaW5zdCBlYWNoIGZvbGxvd2luZyBydWxlLCBzaW5jZSB3ZQorICAgICAgICAgKiBvbmx5IGhhdmUgdG8gY2hlY2sgZm9yIG1hc2tpbmcgd2l0aGluIGVhY2ggYmluIG5vdy4gIEl0J3MKKyAgICAgICAgICogMjU2Kk8objJeMikgaW5zdGVhZCBvZiBPKG4xXjIpLCB3aGVyZSBuMSBpcyB0aGUgdG90YWwgcnVsZQorICAgICAgICAgKiBjb3VudCwgYW5kIG4yIGlzIHRoZSBwZXItYmluIHJ1bGUgY291bnQuICBCdXQgbjI8PG4xLCBzbworICAgICAgICAgKiBpdCdzIGEgYmlnIHdpbi4KKyAgICAgICAgICovCisgICAgICAgIGZvciAoaW50IHg9MDsgeDwyNTY7ICsreCkgeworICAgICAgICAgICAgZm9yIChpbnQgaj1pbmRleFt4XTsgajxpbmRleFt4KzFdLTE7ICsraikgeworICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdGlvblJ1bGUgcjEgPSBydWxlc1tqXTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrPWorMTsgazxpbmRleFt4KzFdOyArK2spIHsKKyAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0aW9uUnVsZSByMiA9IHJ1bGVzW2tdOworICAgICAgICAgICAgICAgICAgICBpZiAocjEubWFza3MocjIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoIlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCJSdWxlICIgKyByMSArICIgbWFza3MgIiArIHIyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChlcnJvcnMgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihlcnJvcnMudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlIHRoZSBnaXZlbiB0ZXh0IHdpdGggdGhlIGdpdmVuIFVUcmFuc1Bvc2l0aW9uCisgICAgICogaW5kaWNlcy4gIFJldHVybiBUUlVFIGlmIHRoZSB0cmFuc2xpdGVyYXRpb24gc2hvdWxkIGNvbnRpbnVlCisgICAgICogb3IgRkFMU0UgaWYgaXQgc2hvdWxkIGhhbHQgKGJlY2F1c2Ugb2YgYSBVX1BBUlRJQUxfTUFUQ0ggbWF0Y2gpLgorICAgICAqIE5vdGUgdGhhdCBGQUxTRSBpcyBvbmx5IGV2ZXIgcmV0dXJuZWQgaWYgaXNJbmNyZW1lbnRhbCBpcyBUUlVFLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIHRyYW5zbGl0ZXJhdGVkCisgICAgICogQHBhcmFtIHBvcyB0aGUgcG9zaXRpb24gaW5kaWNlcywgd2hpY2ggd2lsbCBiZSB1cGRhdGVkCisgICAgICogQHBhcmFtIGluY3JlbWVudGFsIGlmIFRSVUUsIGFzc3VtZSBuZXcgdGV4dCBtYXkgYmUgaW5zZXJ0ZWQKKyAgICAgKiBhdCBpbmRleC5saW1pdCwgYW5kIHJldHVybiBGQUxTRSBpZiB0aHJlIGlzIGEgcGFydGlhbCBtYXRjaC4KKyAgICAgKiBAcmV0dXJuIFRSVUUgdW5sZXNzIGEgVV9QQVJUSUFMX01BVENIIGhhcyBiZWVuIG9idGFpbmVkLAorICAgICAqIGluZGljYXRpbmcgdGhhdCB0cmFuc2xpdGVyYXRpb24gc2hvdWxkIHN0b3AgdW50aWwgbW9yZSB0ZXh0CisgICAgICogYXJyaXZlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiB0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgIGludCBpbmRleEJ5dGUgPSB0ZXh0LmNoYXIzMkF0KHBvcy5zdGFydCkgJiAweEZGOworICAgICAgICBmb3IgKGludCBpPWluZGV4W2luZGV4Qnl0ZV07IGk8aW5kZXhbaW5kZXhCeXRlKzFdOyArK2kpIHsKKyAgICAgICAgICAgIGludCBtID0gcnVsZXNbaV0ubWF0Y2hBbmRSZXBsYWNlKHRleHQsIHBvcywgaW5jcmVtZW50YWwpOworICAgICAgICAgICAgc3dpdGNoIChtKSB7CisgICAgICAgICAgICBjYXNlIFVuaWNvZGVNYXRjaGVyLlVfTUFUQ0g6CisgICAgICAgICAgICAgICAgaWYgKFRyYW5zbGl0ZXJhdG9yLkRFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigoaW5jcmVtZW50YWwgPyAiUnVsZS5pOiBtYXRjaCAiOiJSdWxlOiBtYXRjaCAiKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlc1tpXS50b1J1bGUodHJ1ZSkgKyAiID0+ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQodGV4dCwgcG9zKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgY2FzZSBVbmljb2RlTWF0Y2hlci5VX1BBUlRJQUxfTUFUQ0g6CisgICAgICAgICAgICAgICAgaWYgKFRyYW5zbGl0ZXJhdG9yLkRFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigoaW5jcmVtZW50YWwgPyAiUnVsZS5pOiBwYXJ0aWFsIG1hdGNoICI6IlJ1bGU6IHBhcnRpYWwgbWF0Y2ggIikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXNbaV0udG9SdWxlKHRydWUpICsgIiA9PiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHRleHQsIHBvcykpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gTm8gbWF0Y2ggb3IgcGFydGlhbCBtYXRjaCBmcm9tIGFueSBydWxlCisgICAgICAgIHBvcy5zdGFydCArPSBVVEYxNi5nZXRDaGFyQ291bnQodGV4dC5jaGFyMzJBdChwb3Muc3RhcnQpKTsKKyAgICAgICAgaWYgKFRyYW5zbGl0ZXJhdG9yLkRFQlVHKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKGluY3JlbWVudGFsID8gIlJ1bGUuaTogbm8gbWF0Y2ggPT4gIjoiUnVsZTogbm8gbWF0Y2ggPT4gIikgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHRleHQsIHBvcykpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBydWxlIHN0cmluZ3MgdGhhdCByZXByZXNlbnRzIHRoaXMgcnVsZSBzZXQuCisgICAgICovCisgICAgU3RyaW5nIHRvUnVsZXMoYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgaW50IGNvdW50ID0gcnVsZVZlY3Rvci5zaXplKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBydWxlU291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBmb3IgKGk9MDsgaTxjb3VudDsgKytpKSB7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcnVsZVNvdXJjZS5hcHBlbmQoJ1xuJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBUcmFuc2xpdGVyYXRpb25SdWxlIHIgPQorICAgICAgICAgICAgICAgIChUcmFuc2xpdGVyYXRpb25SdWxlKSBydWxlVmVjdG9yLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIHJ1bGVTb3VyY2UuYXBwZW5kKHIudG9SdWxlKGVzY2FwZVVucHJpbnRhYmxlKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJ1bGVTb3VyY2UudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBtb2RpZmllZCAoZ2V0VGFyZ2V0PWZhbHNlKQorICAgICAqIG9yIGVtaXR0ZWQgKGdldFRhcmdldD10cnVlKSBieSB0aGlzIHNldC4KKyAgICAgKi8KKyAgICBVbmljb2RlU2V0IGdldFNvdXJjZVRhcmdldFNldChib29sZWFuIGdldFRhcmdldCkgeworICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgIGludCBjb3VudCA9IHJ1bGVWZWN0b3Iuc2l6ZSgpOworICAgICAgICBmb3IgKGludCBpPTA7IGk8Y291bnQ7ICsraSkgeworICAgICAgICAgICAgVHJhbnNsaXRlcmF0aW9uUnVsZSByID0KKyAgICAgICAgICAgICAgICAoVHJhbnNsaXRlcmF0aW9uUnVsZSkgcnVsZVZlY3Rvci5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBpZiAoZ2V0VGFyZ2V0KSB7CisgICAgICAgICAgICAgICAgci5hZGRUYXJnZXRTZXRUbyhzZXQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByLmFkZFNvdXJjZVNldFRvKHNldCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNldDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MzI2ZTM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDE5MDcgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHlFeHRlbnNpb25zOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQ2FzZUluc2Vuc2l0aXZlU3RyaW5nOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvKioKKyAqIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBpcyBhbiBhYnN0cmFjdCBjbGFzcyB0aGF0CisgKiB0cmFuc2xpdGVyYXRlcyB0ZXh0IGZyb20gb25lIGZvcm1hdCB0byBhbm90aGVyLiAgVGhlIG1vc3QgY29tbW9uCisgKiBraW5kIG9mIHRyYW5zbGl0ZXJhdG9yIGlzIGEgc2NyaXB0LCBvciBhbHBoYWJldCwgdHJhbnNsaXRlcmF0b3IuCisgKiBGb3IgZXhhbXBsZSwgYSBSdXNzaWFuIHRvIExhdGluIHRyYW5zbGl0ZXJhdG9yIGNoYW5nZXMgUnVzc2lhbiB0ZXh0CisgKiB3cml0dGVuIGluIEN5cmlsbGljIGNoYXJhY3RlcnMgdG8gcGhvbmV0aWNhbGx5IGVxdWl2YWxlbnQgTGF0aW4KKyAqIGNoYXJhY3RlcnMuICBJdCBkb2VzIG5vdCA8ZW0+dHJhbnNsYXRlPC9lbT4gUnVzc2lhbiB0byBFbmdsaXNoIQorICogVHJhbnNsaXRlcmF0aW9uLCB1bmxpa2UgdHJhbnNsYXRpb24sIG9wZXJhdGVzIG9uIGNoYXJhY3RlcnMsIHdpdGhvdXQKKyAqIHJlZmVyZW5jZSB0byB0aGUgbWVhbmluZ3Mgb2Ygd29yZHMgYW5kIHNlbnRlbmNlcy4KKyAqCisgKiA8cD5BbHRob3VnaCBzY3JpcHQgY29udmVyc2lvbiBpcyBpdHMgbW9zdCBjb21tb24gdXNlLCBhCisgKiB0cmFuc2xpdGVyYXRvciBjYW4gYWN0dWFsbHkgcGVyZm9ybSBhIG1vcmUgZ2VuZXJhbCBjbGFzcyBvZiB0YXNrcy4KKyAqIEluIGZhY3QsIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBkZWZpbmVzIGEgdmVyeSBnZW5lcmFsIEFQSQorICogd2hpY2ggc3BlY2lmaWVzIG9ubHkgdGhhdCBhIHNlZ21lbnQgb2YgdGhlIGlucHV0IHRleHQgaXMgcmVwbGFjZWQKKyAqIGJ5IG5ldyB0ZXh0LiAgVGhlIHBhcnRpY3VsYXJzIG9mIHRoaXMgY29udmVyc2lvbiBhcmUgZGV0ZXJtaW5lZAorICogZW50aXJlbHkgYnkgc3ViY2xhc3NlcyBvZiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4uCisgKgorICogPHA+PGI+VHJhbnNsaXRlcmF0b3JzIGFyZSBzdGF0ZWxlc3M8L2I+CisgKgorICogPHA+PGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IG9iamVjdHMgYXJlIDxlbT5zdGF0ZWxlc3M8L2VtPjsgdGhleQorICogcmV0YWluIG5vIGluZm9ybWF0aW9uIGJldHdlZW4gY2FsbHMgdG8KKyAqIDxjb2RlPnRyYW5zbGl0ZXJhdGUoKTwvY29kZT4uICBBcyBhIHJlc3VsdCwgdGhyZWFkcyBtYXkgc2hhcmUKKyAqIHRyYW5zbGl0ZXJhdG9ycyB3aXRob3V0IHN5bmNocm9uaXppbmcgdGhlbS4gIFRoaXMgbWlnaHQgc2VlbSB0bworICogbGltaXQgdGhlIGNvbXBsZXhpdHkgb2YgdGhlIHRyYW5zbGl0ZXJhdGlvbiBvcGVyYXRpb24uICBJbgorICogcHJhY3RpY2UsIHN1YmNsYXNzZXMgcGVyZm9ybSBjb21wbGV4IHRyYW5zbGl0ZXJhdGlvbnMgYnkgZGVsYXlpbmcKKyAqIHRoZSByZXBsYWNlbWVudCBvZiB0ZXh0IHVudGlsIGl0IGlzIGtub3duIHRoYXQgbm8gb3RoZXIKKyAqIHJlcGxhY2VtZW50cyBhcmUgcG9zc2libGUuICBJbiBvdGhlciB3b3JkcywgYWx0aG91Z2ggdGhlCisgKiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gb2JqZWN0cyBhcmUgc3RhdGVsZXNzLCB0aGUgc291cmNlIHRleHQKKyAqIGl0c2VsZiBlbWJvZGllcyBhbGwgdGhlIG5lZWRlZCBpbmZvcm1hdGlvbiwgYW5kIGRlbGF5ZWQgb3BlcmF0aW9uCisgKiBhbGxvd3MgYXJiaXRyYXJ5IGNvbXBsZXhpdHkuCisgKgorICogPHA+PGI+QmF0Y2ggdHJhbnNsaXRlcmF0aW9uPC9iPgorICoKKyAqIDxwPlRoZSBzaW1wbGVzdCB3YXkgdG8gcGVyZm9ybSB0cmFuc2xpdGVyYXRpb24gaXMgYWxsIGF0IG9uY2UsIG9uIGEKKyAqIHN0cmluZyBvZiBleGlzdGluZyB0ZXh0LiAgVGhpcyBpcyByZWZlcnJlZCB0byBhcyA8ZW0+YmF0Y2g8L2VtPgorICogdHJhbnNsaXRlcmF0aW9uLiAgRm9yIGV4YW1wbGUsIGdpdmVuIGEgc3RyaW5nIDxjb2RlPmlucHV0PC9jb2RlPgorICogYW5kIGEgdHJhbnNsaXRlcmF0b3IgPGNvZGU+dDwvY29kZT4sIHRoZSBjYWxsCisgKgorICogPGJsb2NrcXVvdGU+PGNvZGU+U3RyaW5nIHJlc3VsdCA9IHQudHJhbnNsaXRlcmF0ZShpbnB1dCk7CisgKiA8L2NvZGU+PC9ibG9ja3F1b3RlPgorICoKKyAqIHdpbGwgdHJhbnNsaXRlcmF0ZSBpdCBhbmQgcmV0dXJuIHRoZSByZXN1bHQuICBPdGhlciBtZXRob2RzIGFsbG93CisgKiB0aGUgY2xpZW50IHRvIHNwZWNpZnkgYSBzdWJzdHJpbmcgdG8gYmUgdHJhbnNsaXRlcmF0ZWQgYW5kIHRvIHVzZQorICoge0BsaW5rIFJlcGxhY2VhYmxlfSBvYmplY3RzIGluc3RlYWQgb2Ygc3RyaW5ncywgaW4gb3JkZXIgdG8KKyAqIHByZXNlcnZlIG91dC1vZi1iYW5kIGluZm9ybWF0aW9uIChzdWNoIGFzIHRleHQgc3R5bGVzKS4KKyAqCisgKiA8cD48Yj5LZXlib2FyZCB0cmFuc2xpdGVyYXRpb248L2I+CisgKgorICogPHA+U29tZXdoYXQgbW9yZSBpbnZvbHZlZCBpcyA8ZW0+a2V5Ym9hcmQ8L2VtPiwgb3IgaW5jcmVtZW50YWwKKyAqIHRyYW5zbGl0ZXJhdGlvbi4gIFRoaXMgaXMgdGhlIHRyYW5zbGl0ZXJhdGlvbiBvZiB0ZXh0IHRoYXQgaXMKKyAqIGFycml2aW5nIGZyb20gc29tZSBzb3VyY2UgKHR5cGljYWxseSB0aGUgdXNlcidzIGtleWJvYXJkKSBvbmUKKyAqIGNoYXJhY3RlciBhdCBhIHRpbWUsIG9yIGluIHNvbWUgb3RoZXIgcGllY2VtZWFsIGZhc2hpb24uCisgKgorICogPHA+SW4ga2V5Ym9hcmQgdHJhbnNsaXRlcmF0aW9uLCBhIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBidWZmZXIKKyAqIHN0b3JlcyB0aGUgdGV4dC4gIEFzIHRleHQgaXMgaW5zZXJ0ZWQsIGFzIG11Y2ggYXMgcG9zc2libGUgaXMKKyAqIHRyYW5zbGl0ZXJhdGVkIG9uIHRoZSBmbHkuICBUaGlzIG1lYW5zIGEgR1VJIHRoYXQgZGlzcGxheXMgdGhlCisgKiBjb250ZW50cyBvZiB0aGUgYnVmZmVyIG1heSBzaG93IHRleHQgYmVpbmcgbW9kaWZpZWQgYXMgZWFjaCBuZXcKKyAqIGNoYXJhY3RlciBhcnJpdmVzLgorICoKKyAqIDxwPkNvbnNpZGVyIHRoZSBzaW1wbGUgPGNvZGU+UnVsZUJhc2VkVHJhbnNsaXRlcmF0b3I8L2NvZGU+OgorICoKKyAqIDxibG9ja3F1b3RlPjxjb2RlPgorICogdGgmZ3Q7e3RoZXRhfTxicj4KKyAqIHQmZ3Q7e3RhdX0KKyAqIDwvY29kZT48L2Jsb2NrcXVvdGU+CisgKgorICogV2hlbiB0aGUgdXNlciB0eXBlcyAndCcsIG5vdGhpbmcgd2lsbCBoYXBwZW4sIHNpbmNlIHRoZQorICogdHJhbnNsaXRlcmF0b3IgaXMgd2FpdGluZyB0byBzZWUgaWYgdGhlIG5leHQgY2hhcmFjdGVyIGlzICdoJy4gIFRvCisgKiByZW1lZHkgdGhpcywgd2UgaW50cm9kdWNlIHRoZSBub3Rpb24gb2YgYSBjdXJzb3IsIG1hcmtlZCBieSBhICd8JworICogaW4gdGhlIG91dHB1dCBzdHJpbmc6CisgKgorICogPGJsb2NrcXVvdGU+PGNvZGU+CisgKiB0Jmd0O3x7dGF1fTxicj4KKyAqIHt0YXV9aCZndDt7dGhldGF9CisgKiA8L2NvZGU+PC9ibG9ja3F1b3RlPgorICoKKyAqIE5vdyB3aGVuIHRoZSB1c2VyIHR5cGVzICd0JywgdGF1IGFwcGVhcnMsIGFuZCBpZiB0aGUgbmV4dCBjaGFyYWN0ZXIKKyAqIGlzICdoJywgdGhlIHRhdSBjaGFuZ2VzIHRvIGEgdGhldGEuICBUaGlzIGlzIGFjY29tcGxpc2hlZCBieQorICogbWFpbnRhaW5pbmcgYSBjdXJzb3IgcG9zaXRpb24gKGluZGVwZW5kZW50IG9mIHRoZSBpbnNlcnRpb24gcG9pbnQsCisgKiBhbmQgaW52aXNpYmxlIGluIHRoZSBHVUkpIGFjcm9zcyBjYWxscyB0bworICogPGNvZGU+dHJhbnNsaXRlcmF0ZSgpPC9jb2RlPi4gIFR5cGljYWxseSwgdGhlIGN1cnNvciB3aWxsCisgKiBiZSBjb2luY2lkZW50IHdpdGggdGhlIGluc2VydGlvbiBwb2ludCwgYnV0IGluIGEgY2FzZSBsaWtlIHRoZSBvbmUKKyAqIGFib3ZlLCBpdCB3aWxsIHByZWNlZGUgdGhlIGluc2VydGlvbiBwb2ludC4KKyAqCisgKiA8cD5LZXlib2FyZCB0cmFuc2xpdGVyYXRpb24gbWV0aG9kcyBtYWludGFpbiBhIHNldCBvZiB0aHJlZSBpbmRpY2VzCisgKiB0aGF0IGFyZSB1cGRhdGVkIHdpdGggZWFjaCBjYWxsIHRvCisgKiA8Y29kZT50cmFuc2xpdGVyYXRlKCk8L2NvZGU+LCBpbmNsdWRpbmcgdGhlIGN1cnNvciwgc3RhcnQsCisgKiBhbmQgbGltaXQuICBUaGVzZSBpbmRpY2VzIGFyZSBjaGFuZ2VkIGJ5IHRoZSBtZXRob2QsIGFuZCB0aGV5IGFyZQorICogcGFzc2VkIGluIGFuZCBvdXQgdmlhIGEgUG9zaXRpb24gb2JqZWN0LiBUaGUgPGNvZGU+c3RhcnQ8L2NvZGU+IGluZGV4CisgKiBtYXJrcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdWJzdHJpbmcgdGhhdCB0aGUgdHJhbnNsaXRlcmF0b3Igd2lsbAorICogbG9vayBhdC4gIEl0IGlzIGFkdmFuY2VkIGFzIHRleHQgYmVjb21lcyBjb21taXR0ZWQgKGJ1dCBpdCBpcyBub3QKKyAqIHRoZSBjb21taXR0ZWQgaW5kZXg7IHRoYXQncyB0aGUgPGNvZGU+Y3Vyc29yPC9jb2RlPikuICBUaGUKKyAqIDxjb2RlPmN1cnNvcjwvY29kZT4gaW5kZXgsIGRlc2NyaWJlZCBhYm92ZSwgbWFya3MgdGhlIHBvaW50IGF0CisgKiB3aGljaCB0aGUgdHJhbnNsaXRlcmF0b3IgbGFzdCBzdG9wcGVkLCBlaXRoZXIgYmVjYXVzZSBpdCByZWFjaGVkCisgKiB0aGUgZW5kLCBvciBiZWNhdXNlIGl0IHJlcXVpcmVkIG1vcmUgY2hhcmFjdGVycyB0byBkaXNhbWJpZ3VhdGUKKyAqIGJldHdlZW4gcG9zc2libGUgaW5wdXRzLiAgVGhlIDxjb2RlPmN1cnNvcjwvY29kZT4gY2FuIGFsc28gYmUKKyAqIGV4cGxpY2l0bHkgc2V0IGJ5IHJ1bGVzIGluIGEgPGNvZGU+UnVsZUJhc2VkVHJhbnNsaXRlcmF0b3I8L2NvZGU+LgorICogQW55IGNoYXJhY3RlcnMgYmVmb3JlIHRoZSA8Y29kZT5jdXJzb3I8L2NvZGU+IGluZGV4IGFyZSBmcm96ZW47CisgKiBmdXR1cmUga2V5Ym9hcmQgdHJhbnNsaXRlcmF0aW9uIGNhbGxzIHdpdGhpbiB0aGlzIGlucHV0IHNlcXVlbmNlCisgKiB3aWxsIG5vdCBjaGFuZ2UgdGhlbS4gIE5ldyB0ZXh0IGlzIGluc2VydGVkIGF0IHRoZQorICogPGNvZGU+bGltaXQ8L2NvZGU+IGluZGV4LCB3aGljaCBtYXJrcyB0aGUgZW5kIG9mIHRoZSBzdWJzdHJpbmcgdGhhdAorICogdGhlIHRyYW5zbGl0ZXJhdG9yIGxvb2tzIGF0LgorICoKKyAqIDxwPkJlY2F1c2Uga2V5Ym9hcmQgdHJhbnNsaXRlcmF0aW9uIGFzc3VtZXMgdGhhdCBtb3JlIGNoYXJhY3RlcnMKKyAqIGFyZSB0byBhcnJpdmUsIGl0IGlzIGNvbnNlcnZhdGl2ZSBpbiBpdHMgb3BlcmF0aW9uLiAgSXQgb25seQorICogdHJhbnNsaXRlcmF0ZXMgd2hlbiBpdCBjYW4gZG8gc28gdW5hbWJpZ3VvdXNseS4gIE90aGVyd2lzZSBpdCB3YWl0cworICogZm9yIG1vcmUgY2hhcmFjdGVycyB0byBhcnJpdmUuICBXaGVuIHRoZSBjbGllbnQgY29kZSBrbm93cyB0aGF0IG5vCisgKiBtb3JlIGNoYXJhY3RlcnMgYXJlIGZvcnRoY29taW5nLCBwZXJoYXBzIGJlY2F1c2UgdGhlIHVzZXIgaGFzCisgKiBwZXJmb3JtZWQgc29tZSBpbnB1dCB0ZXJtaW5hdGlvbiBvcGVyYXRpb24sIHRoZW4gaXQgc2hvdWxkIGNhbGwKKyAqIDxjb2RlPmZpbmlzaFRyYW5zbGl0ZXJhdGlvbigpPC9jb2RlPiB0byBjb21wbGV0ZSBhbnkKKyAqIHBlbmRpbmcgdHJhbnNsaXRlcmF0aW9ucy4KKyAqCisgKiA8cD48Yj5JbnZlcnNlczwvYj4KKyAqCisgKiA8cD5QYWlycyBvZiB0cmFuc2xpdGVyYXRvcnMgbWF5IGJlIGludmVyc2VzIG9mIG9uZSBhbm90aGVyLiAgRm9yCisgKiBleGFtcGxlLCBpZiB0cmFuc2xpdGVyYXRvciA8Yj5BPC9iPiB0cmFuc2xpdGVyYXRlcyBjaGFyYWN0ZXJzIGJ5CisgKiBpbmNyZW1lbnRpbmcgdGhlaXIgVW5pY29kZSB2YWx1ZSAoc28gImFiYyIgLT4gImRlZiIpLCBhbmQKKyAqIHRyYW5zbGl0ZXJhdG9yIDxiPkI8L2I+IGRlY3JlbWVudHMgY2hhcmFjdGVyIHZhbHVlcywgdGhlbiA8Yj5BPC9iPgorICogaXMgYW4gaW52ZXJzZSBvZiA8Yj5CPC9iPiBhbmQgdmljZSB2ZXJzYS4gIElmIHdlIGNvbXBvc2UgPGI+QTwvYj4KKyAqIHdpdGggPGI+QjwvYj4gaW4gYSBjb21wb3VuZCB0cmFuc2xpdGVyYXRvciwgdGhlIHJlc3VsdCBpcyB0aGUKKyAqIGluZGVudGl0eSB0cmFuc2xpdGVyYXRvciwgdGhhdCBpcywgYSB0cmFuc2xpdGVyYXRvciB0aGF0IGRvZXMgbm90CisgKiBjaGFuZ2UgaXRzIGlucHV0IHRleHQuCisgKgorICogVGhlIDxjb2RlPlRyYW5zbGl0ZXJhdG9yPC9jb2RlPiBtZXRob2QgPGNvZGU+Z2V0SW52ZXJzZSgpPC9jb2RlPgorICogcmV0dXJucyBhIHRyYW5zbGl0ZXJhdG9yJ3MgaW52ZXJzZSwgaWYgb25lIGV4aXN0cywgb3IKKyAqIDxjb2RlPm51bGw8L2NvZGU+IG90aGVyd2lzZS4gIEhvd2V2ZXIsIHRoZSByZXN1bHQgb2YKKyAqIDxjb2RlPmdldEludmVyc2UoKTwvY29kZT4gdXN1YWxseSB3aWxsIDxlbT5ub3Q8L2VtPiBiZSBhIHRydWUKKyAqIG1hdGhlbWF0aWNhbCBpbnZlcnNlLiAgVGhpcyBpcyBiZWNhdXNlIHRydWUgaW52ZXJzZSB0cmFuc2xpdGVyYXRvcnMKKyAqIGFyZSBkaWZmaWN1bHQgdG8gZm9ybXVsYXRlLiAgRm9yIGV4YW1wbGUsIGNvbnNpZGVyIHR3bworICogdHJhbnNsaXRlcmF0b3JzOiA8Yj5BQjwvYj4sIHdoaWNoIHRyYW5zbGl0ZXJhdGVzIHRoZSBjaGFyYWN0ZXIgJ0EnCisgKiB0byAnQicsIGFuZCA8Yj5CQTwvYj4sIHdoaWNoIHRyYW5zbGl0ZXJhdGVzICdCJyB0byAnQScuICBJdCBtaWdodAorICogc2VlbSB0aGF0IHRoZXNlIGFyZSBleGFjdCBpbnZlcnNlcywgc2luY2UKKyAqCisgKiA8YmxvY2txdW90ZT4iQSIgeCA8Yj5BQjwvYj4gLT4gIkIiPGJyPgorICogIkIiIHggPGI+QkE8L2I+IC0+ICJBIjwvYmxvY2txdW90ZT4KKyAqCisgKiB3aGVyZSAneCcgcmVwcmVzZW50cyB0cmFuc2xpdGVyYXRpb24uICBIb3dldmVyLAorICoKKyAqIDxibG9ja3F1b3RlPiJBQkNEIiB4IDxiPkFCPC9iPiAtPiAiQkJDRCI8YnI+CisgKiAiQkJDRCIgeCA8Yj5CQTwvYj4gLT4gIkFBQ0QiPC9ibG9ja3F1b3RlPgorICoKKyAqIHNvIDxiPkFCPC9iPiBjb21wb3NlZCB3aXRoIDxiPkJBPC9iPiBpcyBub3QgdGhlCisgKiBpZGVudGl0eS4gTm9uZXRoZWxlc3MsIDxiPkJBPC9iPiBtYXkgYmUgdXNlZnVsbHkgY29uc2lkZXJlZCB0byBiZQorICogPGI+QUI8L2I+J3MgaW52ZXJzZSwgYW5kIGl0IGlzIG9uIHRoaXMgYmFzaXMgdGhhdAorICogPGI+QUI8L2I+PGNvZGU+LmdldEludmVyc2UoKTwvY29kZT4gY291bGQgbGVnaXRpbWF0ZWx5IHJldHVybgorICogPGI+QkE8L2I+LgorICoKKyAqIDxwPjxiPklEcyBhbmQgZGlzcGxheSBuYW1lczwvYj4KKyAqCisgKiA8cD5BIHRyYW5zbGl0ZXJhdG9yIGlzIGRlc2lnbmF0ZWQgYnkgYSBzaG9ydCBpZGVudGlmaWVyIHN0cmluZyBvcgorICogPGVtPklEPC9lbT4uICBJRHMgZm9sbG93IHRoZSBmb3JtYXQgPGVtPnNvdXJjZS1kZXN0aW5hdGlvbjwvZW0+LAorICogd2hlcmUgPGVtPnNvdXJjZTwvZW0+IGRlc2NyaWJlcyB0aGUgZW50aXR5IGJlaW5nIHJlcGxhY2VkLCBhbmQKKyAqIDxlbT5kZXN0aW5hdGlvbjwvZW0+IGRlc2NyaWJlcyB0aGUgZW50aXR5IHJlcGxhY2luZworICogPGVtPnNvdXJjZTwvZW0+LiAgVGhlIGVudGl0aWVzIG1heSBiZSB0aGUgbmFtZXMgb2Ygc2NyaXB0cywKKyAqIHBhcnRpY3VsYXIgc2VxdWVuY2VzIG9mIGNoYXJhY3RlcnMsIG9yIHdoYXRldmVyIGVsc2UgaXQgaXMgdGhhdCB0aGUKKyAqIHRyYW5zbGl0ZXJhdG9yIGNvbnZlcnRzIHRvIG9yIGZyb20uICBGb3IgZXhhbXBsZSwgYSB0cmFuc2xpdGVyYXRvcgorICogZnJvbSBSdXNzaWFuIHRvIExhdGluIG1pZ2h0IGJlIG5hbWVkICJSdXNzaWFuLUxhdGluIi4gIEEKKyAqIHRyYW5zbGl0ZXJhdG9yIGZyb20ga2V5Ym9hcmQgZXNjYXBlIHNlcXVlbmNlcyB0byBMYXRpbi0xIGNoYXJhY3RlcnMKKyAqIG1pZ2h0IGJlIG5hbWVkICJLZXlib2FyZEVzY2FwZS1MYXRpbjEiLiAgQnkgY29udmVudGlvbiwgc3lzdGVtCisgKiBlbnRpdHkgbmFtZXMgYXJlIGluIEVuZ2xpc2gsIHdpdGggdGhlIGluaXRpYWwgbGV0dGVycyBvZiB3b3JkcworICogY2FwaXRhbGl6ZWQ7IHVzZXIgZW50aXR5IG5hbWVzIG1heSBmb2xsb3cgYW55IGZvcm1hdCBzbyBsb25nIGFzCisgKiB0aGV5IGRvIG5vdCBjb250YWluIGRhc2hlcy4KKyAqCisgKiA8cD5JbiBhZGRpdGlvbiB0byBwcm9ncmFtbWF0aWMgSURzLCB0cmFuc2xpdGVyYXRvciBvYmplY3RzIGhhdmUKKyAqIGRpc3BsYXkgbmFtZXMgZm9yIHByZXNlbnRhdGlvbiBpbiB1c2VyIGludGVyZmFjZXMsIHJldHVybmVkIGJ5CisgKiB7QGxpbmsgI2dldERpc3BsYXlOYW1lfS4KKyAqCisgKiA8cD48Yj5GYWN0b3J5IG1ldGhvZHMgYW5kIHJlZ2lzdHJhdGlvbjwvYj4KKyAqCisgKiA8cD5JbiBnZW5lcmFsLCBjbGllbnQgY29kZSBzaG91bGQgdXNlIHRoZSBmYWN0b3J5IG1ldGhvZAorICogPGNvZGU+Z2V0SW5zdGFuY2UoKTwvY29kZT4gdG8gb2J0YWluIGFuIGluc3RhbmNlIG9mIGEKKyAqIHRyYW5zbGl0ZXJhdG9yIGdpdmVuIGl0cyBJRC4gIFZhbGlkIElEcyBtYXkgYmUgZW51bWVyYXRlZCB1c2luZworICogPGNvZGU+Z2V0QXZhaWxhYmxlSURzKCk8L2NvZGU+LiAgU2luY2UgdHJhbnNsaXRlcmF0b3JzIGFyZQorICogc3RhdGVsZXNzLCBtdWx0aXBsZSBjYWxscyB0byA8Y29kZT5nZXRJbnN0YW5jZSgpPC9jb2RlPiB3aXRoIHRoZQorICogc2FtZSBJRCB3aWxsIHJldHVybiB0aGUgc2FtZSBvYmplY3QuCisgKgorICogPHA+SW4gYWRkaXRpb24gdG8gdGhlIHN5c3RlbSB0cmFuc2xpdGVyYXRvcnMgcmVnaXN0ZXJlZCBhdCBzdGFydHVwLAorICogdXNlciB0cmFuc2xpdGVyYXRvcnMgbWF5IGJlIHJlZ2lzdGVyZWQgYnkgY2FsbGluZworICogPGNvZGU+cmVnaXN0ZXJJbnN0YW5jZSgpPC9jb2RlPiBhdCBydW4gdGltZS4gIFRvIHJlZ2lzdGVyIGEKKyAqIHRyYW5zbGl0ZXJhdG9yIHN1YmNsYXNzIHdpdGhvdXQgaW5zdGFudGlhdGluZyBpdCAodW50aWwgaXQgaXMKKyAqIG5lZWRlZCksIHVzZXJzIG1heSBjYWxsIDxjb2RlPnJlZ2lzdGVyQ2xhc3MoKTwvY29kZT4uCisgKgorICogPHA+PGI+Q29tcG9zZWQgdHJhbnNsaXRlcmF0b3JzPC9iPgorICoKKyAqIDxwPkluIGFkZGl0aW9uIHRvIGJ1aWx0LWluIHN5c3RlbSB0cmFuc2xpdGVyYXRvcnMgbGlrZQorICogIkxhdGluLUdyZWVrIiwgdGhlcmUgYXJlIGFsc28gYnVpbHQtaW4gPGVtPmNvbXBvc2VkPC9lbT4KKyAqIHRyYW5zbGl0ZXJhdG9ycy4gIFRoZXNlIGFyZSBpbXBsZW1lbnRlZCBieSBjb21wb3NpbmcgdHdvIG9yIG1vcmUKKyAqIGNvbXBvbmVudCB0cmFuc2xpdGVyYXRvcnMuICBGb3IgZXhhbXBsZSwgaWYgd2UgaGF2ZSBzY3JpcHRzICJBIiwKKyAqICJCIiwgIkMiLCBhbmQgIkQiLCBhbmQgd2Ugd2FudCB0byB0cmFuc2xpdGVyYXRlIGJldHdlZW4gYWxsIHBhaXJzCisgKiBvZiB0aGVtLCB0aGVuIHdlIG5lZWQgdG8gd3JpdGUgMTIgdHJhbnNsaXRlcmF0b3JzOiAiQS1CIiwgIkEtQyIsCisgKiAiQS1EIiwgIkItQSIsLi4uLCAiRC1BIiwgIkQtQiIsICJELUMiLiAgSWYgaXQgaXMgcG9zc2libGUgdG8KKyAqIGNvbnZlcnQgYWxsIHNjcmlwdHMgdG8gYW4gaW50ZXJtZWRpYXRlIHNjcmlwdCAiTSIsIHRoZW4gaW5zdGVhZCBvZgorICogd3JpdGluZyAxMiBydWxlIHNldHMsIHdlIG9ubHkgbmVlZCB0byB3cml0ZSA4OiAiQX5NIiwgIkJ+TSIsICJDfk0iLAorICogIkR+TSIsICJNfkEiLCAiTX5CIiwgIk1+QyIsICJNfkQiLiAgKFRoaXMgbWlnaHQgbm90IHNlZW0gbGlrZSBhIGJpZworICogd2luLCBidXQgaXQncyByZWFsbHkgMjxlbT5uPC9lbT4gdnMuIDxlbT5uPC9lbT48c3VwPjI8L3N1cD4gLQorICogPGVtPm48L2VtPiwgc28gYXMgPGVtPm48L2VtPiBnZXRzIGxhcmdlciB0aGUgZ2FpbiBiZWNvbWVzCisgKiBzaWduaWZpY2FudC4gIFdpdGggOSBzY3JpcHRzLCBpdCdzIDE4IHZzLiA3MiBydWxlIHNldHMsIGEgYmlnCisgKiBkaWZmZXJlbmNlLikgIE5vdGUgdGhlIHVzZSBvZiAifiIgcmF0aGVyIHRoYW4gIi0iIGZvciB0aGUgc2NyaXB0CisgKiBzZXBhcmF0b3IgaGVyZTsgdGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgZ2l2ZW4gdHJhbnNsaXRlcmF0b3IgaXMKKyAqIGludGVuZGVkIHRvIGJlIGNvbXBvc2VkIHdpdGggb3RoZXJzLCByYXRoZXIgdGhhbiBiZSB1c2VkIGFzIGlzLgorICoKKyAqIDxwPkNvbXBvc2VkIHRyYW5zbGl0ZXJhdG9ycyBjYW4gYmUgaW5zdGFudGlhdGVkIGFzIHVzdWFsLiAgRm9yCisgKiBleGFtcGxlLCB0aGUgc3lzdGVtIHRyYW5zbGl0ZXJhdG9yICJEZXZhbmFnYXJpLUd1amFyYXRpIiBpcyBhCisgKiBjb21wb3NlZCB0cmFuc2xpdGVyYXRvciBidWlsdCBpbnRlcm5hbGx5IGFzCisgKiAiRGV2YW5hZ2FyaX5JbnRlckluZGljO0ludGVySW5kaWN+R3VqYXJhdGkiLiAgV2hlbiB0aGlzCisgKiB0cmFuc2xpdGVyYXRvciBpcyBpbnN0YW50aWF0ZWQsIGl0IGFwcGVhcnMgZXh0ZXJuYWxseSB0byBiZSBhCisgKiBzdGFuZGFyZCB0cmFuc2xpdGVyYXRvciAoZS5nLiwgZ2V0SUQoKSByZXR1cm5zCisgKiAiRGV2YW5hZ2FyaS1HdWphcmF0aSIpLgorICoKKyAqIDxwPjxiPlN1YmNsYXNzaW5nPC9iPgorICoKKyAqIDxwPlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgdGhlIGFic3RyYWN0IG1ldGhvZAorICogPGNvZGU+aGFuZGxlVHJhbnNsaXRlcmF0ZSgpPC9jb2RlPi4gIDxwPlN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlCisgKiB0aGUgPGNvZGU+dHJhbnNsaXRlcmF0ZSgpPC9jb2RlPiBtZXRob2QgdGFraW5nIGEKKyAqIDxjb2RlPlJlcGxhY2VhYmxlPC9jb2RlPiBhbmQgdGhlIDxjb2RlPnRyYW5zbGl0ZXJhdGUoKTwvY29kZT4KKyAqIG1ldGhvZCB0YWtpbmcgYSA8Y29kZT5TdHJpbmc8L2NvZGU+IGFuZCA8Y29kZT5TdHJpbmdCdWZmZXI8L2NvZGU+CisgKiBpZiB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlc2UgbWV0aG9kcyBjYW4gYmUgaW1wcm92ZWQgb3ZlciB0aGUKKyAqIHBlcmZvcm1hbmNlIG9idGFpbmVkIGJ5IHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9ucyBpbiB0aGlzIGNsYXNzLgorICoKKyAqIDxwPkNvcHlyaWdodCAmY29weTsgSUJNIENvcnBvcmF0aW9uIDE5OTkuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVHJhbnNsaXRlcmF0b3IgeworICAgIC8qKgorICAgICAqIERpcmVjdGlvbiBjb25zdGFudCBpbmRpY2F0aW5nIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiBpbiBhIHRyYW5zbGl0ZXJhdG9yLAorICAgICAqIGUuZy4sIHRoZSBmb3J3YXJkIHJ1bGVzIG9mIGEgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuICBBbiAiQS1CIgorICAgICAqIHRyYW5zbGl0ZXJhdG9yIHRyYW5zbGl0ZXJhdGVzIEEgdG8gQiB3aGVuIG9wZXJhdGluZyBpbiB0aGUgZm9yd2FyZAorICAgICAqIGRpcmVjdGlvbiwgYW5kIEIgdG8gQSB3aGVuIG9wZXJhdGluZyBpbiB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRk9SV0FSRCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBEaXJlY3Rpb24gY29uc3RhbnQgaW5kaWNhdGluZyB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24gaW4gYSB0cmFuc2xpdGVyYXRvciwKKyAgICAgKiBlLmcuLCB0aGUgcmV2ZXJzZSBydWxlcyBvZiBhIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLiAgQW4gIkEtQiIKKyAgICAgKiB0cmFuc2xpdGVyYXRvciB0cmFuc2xpdGVyYXRlcyBBIHRvIEIgd2hlbiBvcGVyYXRpbmcgaW4gdGhlIGZvcndhcmQKKyAgICAgKiBkaXJlY3Rpb24sIGFuZCBCIHRvIEEgd2hlbiBvcGVyYXRpbmcgaW4gdGhlIHJldmVyc2UgZGlyZWN0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJFVkVSU0UgPSAxOworCisgICAgLyoqCisgICAgICogUG9zaXRpb24gc3RydWN0dXJlIGZvciBpbmNyZW1lbnRhbCB0cmFuc2xpdGVyYXRpb24uICBUaGlzIGRhdGEKKyAgICAgKiBzdHJ1Y3R1cmUgZGVmaW5lcyB0d28gc3Vic3RyaW5ncyBvZiB0aGUgdGV4dCBiZWluZworICAgICAqIHRyYW5zbGl0ZXJhdGVkLiAgVGhlIGZpcnN0IHJlZ2lvbiwgW2NvbnRleHRTdGFydCwKKyAgICAgKiBjb250ZXh0TGltaXQpLCBkZWZpbmVzIHdoYXQgY2hhcmFjdGVycyB0aGUgdHJhbnNsaXRlcmF0b3Igd2lsbAorICAgICAqIHJlYWQgYXMgY29udGV4dC4gIFRoZSBzZWNvbmQgcmVnaW9uLCBbc3RhcnQsIGxpbWl0KSwgZGVmaW5lcworICAgICAqIHdoYXQgY2hhcmFjdGVycyB3aWxsIGFjdHVhbGx5IGJlIHRyYW5zbGl0ZXJhdGVkLiAgVGhlIHNlY29uZAorICAgICAqIHJlZ2lvbiBzaG91bGQgYmUgYSBzdWJzZXQgb2YgdGhlIGZpcnN0LgorICAgICAqCisgICAgICogPHA+QWZ0ZXIgYSB0cmFuc2xpdGVyYXRpb24gb3BlcmF0aW9uLCBzb21lIG9mIHRoZSBpbmRpY2VzIGluIHRoaXMKKyAgICAgKiBzdHJ1Y3R1cmUgd2lsbCBiZSBtb2RpZmllZC4gIFNlZSB0aGUgZmllbGQgZGVzY3JpcHRpb25zIGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiA8cD5jb250ZXh0U3RhcnQgPD0gc3RhcnQgPD0gbGltaXQgPD0gY29udGV4dExpbWl0CisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBBbGwgaW5kZXggdmFsdWVzIGluIHRoaXMgc3RydWN0dXJlIG11c3QgYmUgYXQgY29kZSBwb2ludAorICAgICAqIGJvdW5kYXJpZXMuICBUaGF0IGlzLCBub25lIG9mIHRoZW0gbWF5IG9jY3VyIGJldHdlZW4gdHdvIGNvZGUgdW5pdHMKKyAgICAgKiBvZiBhIHN1cnJvZ2F0ZSBwYWlyLiAgSWYgYW55IGluZGV4IGRvZXMgc3BsaXQgYSBzdXJyb2dhdGUgcGFpciwKKyAgICAgKiByZXN1bHRzIGFyZSB1bnNwZWNpZmllZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFBvc2l0aW9uIHsKKworICAgICAgICAvKioKKyAgICAgICAgICogQmVnaW5uaW5nIGluZGV4LCBpbmNsdXNpdmUsIG9mIHRoZSBjb250ZXh0IHRvIGJlIGNvbnNpZGVyZWQgZm9yCisgICAgICAgICAqIGEgdHJhbnNsaXRlcmF0aW9uIG9wZXJhdGlvbi4gIFRoZSB0cmFuc2xpdGVyYXRvciB3aWxsIGlnbm9yZQorICAgICAgICAgKiBhbnl0aGluZyBiZWZvcmUgdGhpcyBpbmRleC4gIElOUFVUL09VVFBVVCBwYXJhbWV0ZXI6IFRoaXMgcGFyYW1ldGVyCisgICAgICAgICAqIGlzIHVwZGF0ZWQgYnkgYSB0cmFuc2xpdGVyYXRpb24gb3BlcmF0aW9uIHRvIHJlZmxlY3QgdGhlIG1heGltdW0KKyAgICAgICAgICogYW1vdW50IG9mIGFudGVjb250ZXh0IG5lZWRlZCBieSBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgY29udGV4dFN0YXJ0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBFbmRpbmcgaW5kZXgsIGV4Y2x1c2l2ZSwgb2YgdGhlIGNvbnRleHQgdG8gYmUgY29uc2lkZXJlZCBmb3IgYQorICAgICAgICAgKiB0cmFuc2xpdGVyYXRpb24gb3BlcmF0aW9uLiAgVGhlIHRyYW5zbGl0ZXJhdG9yIHdpbGwgaWdub3JlCisgICAgICAgICAqIGFueXRoaW5nIGF0IG9yIGFmdGVyIHRoaXMgaW5kZXguICBJTlBVVC9PVVRQVVQgcGFyYW1ldGVyOiBUaGlzCisgICAgICAgICAqIHBhcmFtZXRlciBpcyB1cGRhdGVkIHRvIHJlZmxlY3QgY2hhbmdlcyBpbiB0aGUgbGVuZ3RoIG9mIHRoZQorICAgICAgICAgKiB0ZXh0LCBidXQgcG9pbnRzIHRvIHRoZSBzYW1lIGxvZ2ljYWwgcG9zaXRpb24gaW4gdGhlIHRleHQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBjb250ZXh0TGltaXQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEJlZ2lubmluZyBpbmRleCwgaW5jbHVzaXZlLCBvZiB0aGUgdGV4dCB0byBiZSB0cmFuc2xpdGVyYXRkLgorICAgICAgICAgKiBJTlBVVC9PVVRQVVQgcGFyYW1ldGVyOiBUaGlzIHBhcmFtZXRlciBpcyBhZHZhbmNlZCBwYXN0CisgICAgICAgICAqIGNoYXJhY3RlcnMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiB0cmFuc2xpdGVyYXRlZCBieSBhCisgICAgICAgICAqIHRyYW5zbGl0ZXJhdGlvbiBvcGVyYXRpb24uCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBzdGFydDsKKworICAgICAgICAvKioKKyAgICAgICAgICogRW5kaW5nIGluZGV4LCBleGNsdXNpdmUsIG9mIHRoZSB0ZXh0IHRvIGJlIHRyYW5zbGl0ZXJhdGQuCisgICAgICAgICAqIElOUFVUL09VVFBVVCBwYXJhbWV0ZXI6IFRoaXMgcGFyYW1ldGVyIGlzIHVwZGF0ZWQgdG8gcmVmbGVjdAorICAgICAgICAgKiBjaGFuZ2VzIGluIHRoZSBsZW5ndGggb2YgdGhlIHRleHQsIGJ1dCBwb2ludHMgdG8gdGhlIHNhbWUKKyAgICAgICAgICogbG9naWNhbCBwb3NpdGlvbiBpbiB0aGUgdGV4dC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGxpbWl0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RzIGEgUG9zaXRpb24gb2JqZWN0IHdpdGggc3RhcnQsIGxpbWl0LAorICAgICAgICAgKiBjb250ZXh0U3RhcnQsIGFuZCBjb250ZXh0TGltaXQgYWxsIGVxdWFsIHRvIHplcm8uCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFBvc2l0aW9uKCkgeworICAgICAgICAgICAgdGhpcygwLCAwLCAwLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb25zdHJ1Y3RzIGEgUG9zaXRpb24gb2JqZWN0IHdpdGggdGhlIGdpdmVuIHN0YXJ0LAorICAgICAgICAgKiBjb250ZXh0U3RhcnQsIGFuZCBjb250ZXh0TGltaXQuICBUaGUgbGltaXQgaXMgc2V0IHRvIHRoZQorICAgICAgICAgKiBjb250ZXh0TGltaXQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFBvc2l0aW9uKGludCBjb250ZXh0U3RhcnQsIGludCBjb250ZXh0TGltaXQsIGludCBzdGFydCkgeworICAgICAgICAgICAgdGhpcyhjb250ZXh0U3RhcnQsIGNvbnRleHRMaW1pdCwgc3RhcnQsIGNvbnRleHRMaW1pdCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0cyBhIFBvc2l0aW9uIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBzdGFydCwgbGltaXQsCisgICAgICAgICAqIGNvbnRleHRTdGFydCwgYW5kIGNvbnRleHRMaW1pdC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgUG9zaXRpb24oaW50IGNvbnRleHRTdGFydCwgaW50IGNvbnRleHRMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICB0aGlzLmNvbnRleHRTdGFydCA9IGNvbnRleHRTdGFydDsKKyAgICAgICAgICAgIHRoaXMuY29udGV4dExpbWl0ID0gY29udGV4dExpbWl0OworICAgICAgICAgICAgdGhpcy5zdGFydCA9IHN0YXJ0OworICAgICAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdHMgYSBQb3NpdGlvbiBvYmplY3QgdGhhdCBpcyBhIGNvcHkgb2YgYW5vdGhlci4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgUG9zaXRpb24oUG9zaXRpb24gcG9zKSB7CisgICAgICAgICAgICBzZXQocG9zKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb3BpZXMgdGhlIGluZGljZXMgb2YgdGhpcyBwb3NpdGlvbiBmcm9tIGFub3RoZXIuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgc2V0KFBvc2l0aW9uIHBvcykgeworICAgICAgICAgICAgY29udGV4dFN0YXJ0ID0gcG9zLmNvbnRleHRTdGFydDsKKyAgICAgICAgICAgIGNvbnRleHRMaW1pdCA9IHBvcy5jb250ZXh0TGltaXQ7CisgICAgICAgICAgICBzdGFydCA9IHBvcy5zdGFydDsKKyAgICAgICAgICAgIGxpbWl0ID0gcG9zLmxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIFBvc2l0aW9uIGlzIGVxdWFsIHRvIHRoZSBnaXZlbiBvYmplY3QuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBQb3NpdGlvbikgeworICAgICAgICAgICAgICAgIFBvc2l0aW9uIHBvcyA9IChQb3NpdGlvbikgb2JqOworICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0U3RhcnQgPT0gcG9zLmNvbnRleHRTdGFydCAmJgorICAgICAgICAgICAgICAgICAgICBjb250ZXh0TGltaXQgPT0gcG9zLmNvbnRleHRMaW1pdCAmJgorICAgICAgICAgICAgICAgICAgICBzdGFydCA9PSBwb3Muc3RhcnQgJiYKKyAgICAgICAgICAgICAgICAgICAgbGltaXQgPT0gcG9zLmxpbWl0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBQb3NpdGlvbi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuICJbY3M9IiArIGNvbnRleHRTdGFydAorICAgICAgICAgICAgICAgICsgIiwgcz0iICsgc3RhcnQKKyAgICAgICAgICAgICAgICArICIsIGw9IiArIGxpbWl0CisgICAgICAgICAgICAgICAgKyAiLCBjbD0iICsgY29udGV4dExpbWl0CisgICAgICAgICAgICAgICAgKyAiXSI7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hlY2sgYWxsIGJvdW5kcy4gIElmIHRoZXkgYXJlIGludmFsaWQsIHRocm93IGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgICogQHBhcmFtIGxlbmd0aCB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgdGhpcyBvYmplY3QgYXBwbGllcyB0bworICAgICAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBhbnkgaW5kaWNlcyBhcmUgb3V0CisgICAgICAgICAqIG9mIGJvdW5kcworICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBmaW5hbCB2b2lkIHZhbGlkYXRlKGludCBsZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChjb250ZXh0U3RhcnQgPCAwIHx8CisgICAgICAgICAgICAgICAgc3RhcnQgPCBjb250ZXh0U3RhcnQgfHwKKyAgICAgICAgICAgICAgICBsaW1pdCA8IHN0YXJ0IHx8CisgICAgICAgICAgICAgICAgY29udGV4dExpbWl0IDwgbGltaXQgfHwKKyAgICAgICAgICAgICAgICBsZW5ndGggPCBjb250ZXh0TGltaXQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIFBvc2l0aW9uIHtjcz0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRTdGFydCArICIsIHM9IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArICIsIGw9IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCArICIsIGNsPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dExpbWl0ICsgIn0sIGxlbj0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9ncmFtbWF0aWMgbmFtZSwgZS5nLiwgIkxhdGluLUFyYWJpYyIuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgSUQ7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHRyYW5zbGl0ZXJhdG9yJ3MgZmlsdGVyLiAgQW55IGNoYXJhY3RlciBmb3Igd2hpY2gKKyAgICAgKiA8dHQ+ZmlsdGVyLmNvbnRhaW5zKCk8L3R0PiByZXR1cm5zIDx0dD5mYWxzZTwvdHQ+IHdpbGwgbm90IGJlCisgICAgICogYWx0ZXJlZCBieSB0aGlzIHRyYW5zbGl0ZXJhdG9yLiAgSWYgPHR0PmZpbHRlcjwvdHQ+IGlzCisgICAgICogPHR0Pm51bGw8L3R0PiB0aGVuIG5vIGZpbHRlcmluZyBpcyBhcHBsaWVkLgorICAgICAqLworICAgIHByaXZhdGUgVW5pY29kZUZpbHRlciBmaWx0ZXI7CisKKyAgICBwcml2YXRlIGludCBtYXhpbXVtQ29udGV4dExlbmd0aCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTeXN0ZW0gdHJhbnNsaXRlcmF0b3IgcmVnaXN0cnkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSByZWdpc3RyeTsKKworICAgIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZSBkaXNwbGF5TmFtZUNhY2hlOworCisgICAgLyoqCisgICAgICogUHJlZml4IGZvciByZXNvdXJjZSBidW5kbGUga2V5IGZvciB0aGUgZGlzcGxheSBuYW1lIGZvciBhCisgICAgICogdHJhbnNsaXRlcmF0b3IuICBUaGUgSUQgaXMgYXBwZW5kZWQgdG8gdGhpcyB0byBmb3JtIHRoZSBrZXkuCisgICAgICogVGhlIHJlc291cmNlIGJ1bmRsZSB2YWx1ZSBzaG91bGQgYmUgYSBTdHJpbmcuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFJCX0RJU1BMQVlfTkFNRV9QUkVGSVggPSAiJVRyYW5zbGl0JSUiOworCisgICAgLyoqCisgICAgICogUHJlZml4IGZvciByZXNvdXJjZSBidW5kbGUga2V5IGZvciB0aGUgZGlzcGxheSBuYW1lIGZvciBhCisgICAgICogdHJhbnNsaXRlcmF0b3IgU0NSSVBULiAgVGhlIElEIGlzIGFwcGVuZGVkIHRvIHRoaXMgdG8gZm9ybSB0aGUga2V5LgorICAgICAqIFRoZSByZXNvdXJjZSBidW5kbGUgdmFsdWUgc2hvdWxkIGJlIGEgU3RyaW5nLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBSQl9TQ1JJUFRfRElTUExBWV9OQU1FX1BSRUZJWCA9ICIlVHJhbnNsaXQlIjsKKworICAgIC8qKgorICAgICAqIFJlc291cmNlIGJ1bmRsZSBrZXkgZm9yIGRpc3BsYXkgbmFtZSBwYXR0ZXJuLgorICAgICAqIFRoZSByZXNvdXJjZSBidW5kbGUgdmFsdWUgc2hvdWxkIGJlIGEgU3RyaW5nIGZvcm1pbmcgYQorICAgICAqIE1lc3NhZ2VGb3JtYXQgcGF0dGVybiwgZS5nLjoKKyAgICAgKiAiezAsY2hvaWNlLDAjfDEjezF9IFRyYW5zbGl0ZXJhdG9yfDIjezF9IHRvIHsyfSBUcmFuc2xpdGVyYXRvcn0iLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBSQl9ESVNQTEFZX05BTUVfUEFUVEVSTiA9ICJUcmFuc2xpdGVyYXRvck5hbWVQYXR0ZXJuIjsKKworICAgIC8qKgorICAgICAqIERlbGltaXRlciBiZXR3ZWVuIGVsZW1lbnRzIGluIGEgY29tcG91bmQgSUQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNoYXIgSURfREVMSU0gPSAnOyc7CisKKyAgICAvKioKKyAgICAgKiBEZWxpbWl0ZXIgYmVmb3JlIHRhcmdldCBpbiBhbiBJRC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2hhciBJRF9TRVAgPSAnLSc7CisKKyAgICAvKioKKyAgICAgKiBEZWxpbWl0ZXIgYmVmb3JlIHZhcmlhbnQgaW4gYW4gSUQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNoYXIgVkFSSUFOVF9TRVAgPSAnLyc7CisKKyAgICAvKioKKyAgICAgKiBUbyBlbmFibGUgZGVidWdnaW5nIG91dHB1dCBpbiB0aGUgVHJhbnNsaXRlcmF0b3IgY29tcG9uZW50LCBzZXQKKyAgICAgKiBERUJVRyB0byB0cnVlLgorICAgICAqCisgICAgICogTi5CLiBNYWtlIHN1cmUgdG8gcmVjb21waWxlIGFsbCBvZiB0aGUgY29tLmlibS5pY3UudGV4dCBwYWNrYWdlCisgICAgICogYWZ0ZXIgY2hhbmdpbmcgdGhpcy4gIEVhc2llc3Qgd2F5IHRvIGRvIHRoaXMgaXMgJ2FudCBjbGVhbgorICAgICAqIGNvcmUnICgnYW50JyB3aWxsIE5PVCBwaWNrIHVwIHRoZSBkZXBlbmRlbmN5IGF1dG9tYXRpY2FsbHkpLgorICAgICAqCisgICAgICogPDxUaGlzIGdlbmVyYXRlcyBhIGxvdCBvZiBvdXRwdXQuPj4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgYm9vbGVhbiBERUJVRyA9IGZhbHNlOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICJcdTAwQTkgSUJNIENvcnBvcmF0aW9uIDE5OTkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIjsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICogQHBhcmFtIElEIHRoZSBzdHJpbmcgaWRlbnRpZmllciBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvcgorICAgICAqIEBwYXJhbSBmaWx0ZXIgdGhlIGZpbHRlci4gIEFueSBjaGFyYWN0ZXIgZm9yIHdoaWNoCisgICAgICogPHR0PmZpbHRlci5jb250YWlucygpPC90dD4gcmV0dXJucyA8dHQ+ZmFsc2U8L3R0PiB3aWxsIG5vdCBiZQorICAgICAqIGFsdGVyZWQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvci4gIElmIDx0dD5maWx0ZXI8L3R0PiBpcworICAgICAqIDx0dD5udWxsPC90dD4gdGhlbiBubyBmaWx0ZXJpbmcgaXMgYXBwbGllZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVHJhbnNsaXRlcmF0b3IoU3RyaW5nIElELCBVbmljb2RlRmlsdGVyIGZpbHRlcikgeworICAgICAgICBpZiAoSUQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5JRCA9IElEOworICAgICAgICB0aGlzLmZpbHRlciA9IGZpbHRlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlcyBhIHNlZ21lbnQgb2YgYSBzdHJpbmcsIHdpdGggb3B0aW9uYWwgZmlsdGVyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyB0byBiZSB0cmFuc2xpdGVyYXRlZAorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIGluZGV4LCBpbmNsdXNpdmU7IDxjb2RlPjAgPD0gc3RhcnQKKyAgICAgKiA8PSBsaW1pdDwvY29kZT4uCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBlbmRpbmcgaW5kZXgsIGV4Y2x1c2l2ZTsgPGNvZGU+c3RhcnQgPD0gbGltaXQKKyAgICAgKiA8PSB0ZXh0Lmxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBAcmV0dXJuIFRoZSBuZXcgbGltaXQgaW5kZXguICBUaGUgdGV4dCBwcmV2aW91c2x5IG9jY3VweWluZyA8Y29kZT5bc3RhcnQsCisgICAgICogbGltaXQpPC9jb2RlPiBoYXMgYmVlbiB0cmFuc2xpdGVyYXRlZCwgcG9zc2libHkgdG8gYSBzdHJpbmcgb2YgYSBkaWZmZXJlbnQKKyAgICAgKiBsZW5ndGgsIGF0IDxjb2RlPltzdGFydCwgPC9jb2RlPjxlbT5uZXctbGltaXQ8L2VtPjxjb2RlPik8L2NvZGU+LCB3aGVyZQorICAgICAqIDxlbT5uZXctbGltaXQ8L2VtPiBpcyB0aGUgcmV0dXJuIHZhbHVlLiBJZiB0aGUgaW5wdXQgb2Zmc2V0cyBhcmUgb3V0IG9mIGJvdW5kcywKKyAgICAgKiB0aGUgcmV0dXJuZWQgdmFsdWUgaXMgLTEgYW5kIHRoZSBpbnB1dCBzdHJpbmcgcmVtYWlucyB1bmNoYW5nZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCB0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIGlmIChzdGFydCA8IDAgfHwKKyAgICAgICAgICAgIGxpbWl0IDwgc3RhcnQgfHwKKyAgICAgICAgICAgIHRleHQubGVuZ3RoKCkgPCBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgICAgUG9zaXRpb24gcG9zID0gbmV3IFBvc2l0aW9uKHN0YXJ0LCBsaW1pdCwgc3RhcnQpOworICAgICAgICBmaWx0ZXJlZFRyYW5zbGl0ZXJhdGUodGV4dCwgcG9zLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIHJldHVybiBwb3MubGltaXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJhbnNsaXRlcmF0ZXMgYW4gZW50aXJlIHN0cmluZyBpbiBwbGFjZS4gQ29udmVuaWVuY2UgbWV0aG9kLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBzdHJpbmcgdG8gYmUgdHJhbnNsaXRlcmF0ZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQpIHsKKyAgICAgICAgdHJhbnNsaXRlcmF0ZSh0ZXh0LCAwLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlIGFuIGVudGlyZSBzdHJpbmcgYW5kIHJldHVybnMgdGhlIHJlc3VsdC4gQ29udmVuaWVuY2UgbWV0aG9kLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIHN0cmluZyB0byBiZSB0cmFuc2xpdGVyYXRlZAorICAgICAqIEByZXR1cm4gVGhlIHRyYW5zbGl0ZXJhdGVkIHRleHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIHRyYW5zbGl0ZXJhdGUoU3RyaW5nIHRleHQpIHsKKyAgICAgICAgUmVwbGFjZWFibGVTdHJpbmcgcmVzdWx0ID0gbmV3IFJlcGxhY2VhYmxlU3RyaW5nKHRleHQpOworICAgICAgICB0cmFuc2xpdGVyYXRlKHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlcyB0aGUgcG9ydGlvbiBvZiB0aGUgdGV4dCBidWZmZXIgdGhhdCBjYW4gYmUKKyAgICAgKiB0cmFuc2xpdGVyYXRlZCB1bmFtYmlndW9zbHkgYWZ0ZXIgbmV3IHRleHQgaGFzIGJlZW4gaW5zZXJ0ZWQsCisgICAgICogdHlwaWNhbGx5IGFzIGEgcmVzdWx0IG9mIGEga2V5Ym9hcmQgZXZlbnQuICBUaGUgbmV3IHRleHQgaW4KKyAgICAgKiA8Y29kZT5pbnNlcnRpb248L2NvZGU+IHdpbGwgYmUgaW5zZXJ0ZWQgaW50byA8Y29kZT50ZXh0PC9jb2RlPgorICAgICAqIGF0IDxjb2RlPmluZGV4LmNvbnRleHRMaW1pdDwvY29kZT4sIGFkdmFuY2luZworICAgICAqIDxjb2RlPmluZGV4LmNvbnRleHRMaW1pdDwvY29kZT4gYnkgPGNvZGU+aW5zZXJ0aW9uLmxlbmd0aCgpPC9jb2RlPi4KKyAgICAgKiBUaGVuIHRoZSB0cmFuc2xpdGVyYXRvciB3aWxsIHRyeSB0byB0cmFuc2xpdGVyYXRlIGNoYXJhY3RlcnMgb2YKKyAgICAgKiA8Y29kZT50ZXh0PC9jb2RlPiBiZXR3ZWVuIDxjb2RlPmluZGV4LnN0YXJ0PC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5pbmRleC5jb250ZXh0TGltaXQ8L2NvZGU+LiAgQ2hhcmFjdGVycyBiZWZvcmUKKyAgICAgKiA8Y29kZT5pbmRleC5zdGFydDwvY29kZT4gd2lsbCBub3QgYmUgY2hhbmdlZC4KKyAgICAgKgorICAgICAqIDxwPlVwb24gcmV0dXJuLCB2YWx1ZXMgaW4gPGNvZGU+aW5kZXg8L2NvZGU+IHdpbGwgYmUgdXBkYXRlZC4KKyAgICAgKiA8Y29kZT5pbmRleC5jb250ZXh0U3RhcnQ8L2NvZGU+IHdpbGwgYmUgYWR2YW5jZWQgdG8gdGhlIGZpcnN0CisgICAgICogY2hhcmFjdGVyIHRoYXQgZnV0dXJlIGNhbGxzIHRvIHRoaXMgbWV0aG9kIHdpbGwgcmVhZC4KKyAgICAgKiA8Y29kZT5pbmRleC5zdGFydDwvY29kZT4gYW5kIDxjb2RlPmluZGV4LmNvbnRleHRMaW1pdDwvY29kZT4gd2lsbAorICAgICAqIGJlIGFkanVzdGVkIHRvIGRlbGltaXQgdGhlIHJhbmdlIG9mIHRleHQgdGhhdCBmdXR1cmUgY2FsbHMgdG8KKyAgICAgKiB0aGlzIG1ldGhvZCBtYXkgY2hhbmdlLgorICAgICAqCisgICAgICogPHA+VHlwaWNhbCB1c2FnZSBvZiB0aGlzIG1ldGhvZCBiZWdpbnMgd2l0aCBhbiBpbml0aWFsIGNhbGwKKyAgICAgKiB3aXRoIDxjb2RlPmluZGV4LmNvbnRleHRTdGFydDwvY29kZT4gYW5kIDxjb2RlPmluZGV4LmNvbnRleHRMaW1pdDwvY29kZT4KKyAgICAgKiBzZXQgdG8gaW5kaWNhdGUgdGhlIHBvcnRpb24gb2YgPGNvZGU+dGV4dDwvY29kZT4gdG8gYmUKKyAgICAgKiB0cmFuc2xpdGVyYXRlZCwgYW5kIDxjb2RlPmluZGV4LnN0YXJ0ID09IGluZGV4LmNvbnRleHRTdGFydDwvY29kZT4uCisgICAgICogVGhlcmVhZnRlciwgPGNvZGU+aW5kZXg8L2NvZGU+IGNhbiBiZSB1c2VkIHdpdGhvdXQKKyAgICAgKiBtb2RpZmljYXRpb24gaW4gZnV0dXJlIGNhbGxzLCBwcm92aWRlZCB0aGF0IGFsbCBjaGFuZ2VzIHRvCisgICAgICogPGNvZGU+dGV4dDwvY29kZT4gYXJlIG1hZGUgdmlhIHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICogPHA+VGhpcyBtZXRob2QgYXNzdW1lcyB0aGF0IGZ1dHVyZSBjYWxscyBtYXkgYmUgbWFkZSB0aGF0IHdpbGwKKyAgICAgKiBpbnNlcnQgbmV3IHRleHQgaW50byB0aGUgYnVmZmVyLiAgQXMgYSByZXN1bHQsIGl0IG9ubHkgcGVyZm9ybXMKKyAgICAgKiB1bmFtYmlndW91cyB0cmFuc2xpdGVyYXRpb25zLiAgQWZ0ZXIgdGhlIGxhc3QgY2FsbCB0byB0aGlzCisgICAgICogbWV0aG9kLCB0aGVyZSBtYXkgYmUgdW50cmFuc2xpdGVyYXRlZCB0ZXh0IHRoYXQgaXMgd2FpdGluZyBmb3IKKyAgICAgKiBtb3JlIGlucHV0IHRvIHJlc29sdmUgYW4gYW1iaWd1aXR5LiAgSW4gb3JkZXIgdG8gcGVyZm9ybSB0aGVzZQorICAgICAqIHBlbmRpbmcgdHJhbnNsaXRlcmF0aW9ucywgY2xpZW50cyBzaG91bGQgY2FsbCB7QGxpbmsKKyAgICAgKiAjZmluaXNoVHJhbnNsaXRlcmF0aW9ufSBhZnRlciB0aGUgbGFzdCBjYWxsIHRvIHRoaXMKKyAgICAgKiBtZXRob2QgaGFzIGJlZW4gbWFkZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBidWZmZXIgaG9sZGluZyB0cmFuc2xpdGVyYXRlZCBhbmQgdW50cmFuc2xpdGVyYXRlZCB0ZXh0CisgICAgICogQHBhcmFtIGluZGV4IHRoZSBzdGFydCBhbmQgbGltaXQgb2YgdGhlIHRleHQsIHRoZSBwb3NpdGlvbgorICAgICAqIG9mIHRoZSBjdXJzb3IsIGFuZCB0aGUgc3RhcnQgYW5kIGxpbWl0IG9mIHRyYW5zbGl0ZXJhdGlvbi4KKyAgICAgKiBAcGFyYW0gaW5zZXJ0aW9uIHRleHQgdG8gYmUgaW5zZXJ0ZWQgYW5kIHBvc3NpYmx5CisgICAgICogdHJhbnNsaXRlcmF0ZWQgaW50byB0aGUgdHJhbnNsYXRpb24gYnVmZmVyIGF0CisgICAgICogPGNvZGU+aW5kZXguY29udGV4dExpbWl0PC9jb2RlPi4gIElmIDxjb2RlPm51bGw8L2NvZGU+IHRoZW4gbm8gdGV4dAorICAgICAqIGlzIGluc2VydGVkLgorICAgICAqIEBzZWUgI2hhbmRsZVRyYW5zbGl0ZXJhdGUKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiA8Y29kZT5pbmRleDwvY29kZT4KKyAgICAgKiBpcyBpbnZhbGlkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgdHJhbnNsaXRlcmF0ZShSZXBsYWNlYWJsZSB0ZXh0LCBQb3NpdGlvbiBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpbnNlcnRpb24pIHsKKyAgICAgICAgaW5kZXgudmFsaWRhdGUodGV4dC5sZW5ndGgoKSk7CisKKy8vICAgICAgICBpbnQgb3JpZ2luYWxTdGFydCA9IGluZGV4LmNvbnRleHRTdGFydDsKKyAgICAgICAgaWYgKGluc2VydGlvbiAhPSBudWxsKSB7CisgICAgICAgICAgICB0ZXh0LnJlcGxhY2UoaW5kZXgubGltaXQsIGluZGV4LmxpbWl0LCBpbnNlcnRpb24pOworICAgICAgICAgICAgaW5kZXgubGltaXQgKz0gaW5zZXJ0aW9uLmxlbmd0aCgpOworICAgICAgICAgICAgaW5kZXguY29udGV4dExpbWl0ICs9IGluc2VydGlvbi5sZW5ndGgoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpbmRleC5saW1pdCA+IDAgJiYKKyAgICAgICAgICAgIFVURjE2LmlzTGVhZFN1cnJvZ2F0ZSh0ZXh0LmNoYXJBdChpbmRleC5saW1pdCAtIDEpKSkgeworICAgICAgICAgICAgLy8gT29wcywgdGhlcmUgaXMgYSBkYW5nbGluZyBsZWFkIHN1cnJvZ2F0ZSBpbiB0aGUgYnVmZmVyLgorICAgICAgICAgICAgLy8gVGhpcyB3aWxsIGJyZWFrIG1vc3QgdHJhbnNsaXRlcmF0b3JzLCBzaW5jZSB0aGV5IHdpbGwKKyAgICAgICAgICAgIC8vIGFzc3VtZSBpdCBpcyBwYXJ0IG9mIGEgcGFpci4gIERvbid0IHRyYW5zbGl0ZXJhdGUgdW50aWwKKyAgICAgICAgICAgIC8vIG1vcmUgdGV4dCBjb21lcyBpbi4KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGZpbHRlcmVkVHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgdHJ1ZSwgdHJ1ZSk7CisKKy8vIFRPRE8KKy8vIFRoaXMgZG9lc24ndCB3b3JrIG9uY2Ugd2UgYWRkIHF1YW50aWZpZXIgc3VwcG9ydC4gIE5lZWQgdG8gcmV3cml0ZQorLy8gdGhpcyBjb2RlIHRvIHN1cHBvcnQgcXVhbnRpZmllcnMgYW5kICd1c2UgbWF4aW11bSBiYWNrdXAgPG4+OycuCisvLworLy8gICAgICAgIGluZGV4LmNvbnRleHRTdGFydCA9IE1hdGgubWF4KGluZGV4LnN0YXJ0IC0gZ2V0TWF4aW11bUNvbnRleHRMZW5ndGgoKSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbFN0YXJ0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlcyB0aGUgcG9ydGlvbiBvZiB0aGUgdGV4dCBidWZmZXIgdGhhdCBjYW4gYmUKKyAgICAgKiB0cmFuc2xpdGVyYXRlZCB1bmFtYmlndW9zbHkgYWZ0ZXIgYSBuZXcgY2hhcmFjdGVyIGhhcyBiZWVuCisgICAgICogaW5zZXJ0ZWQsIHR5cGljYWxseSBhcyBhIHJlc3VsdCBvZiBhIGtleWJvYXJkIGV2ZW50LiAgVGhpcyBpcyBhCisgICAgICogY29udmVuaWVuY2UgbWV0aG9kOyBzZWUge0BsaW5rICN0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlLAorICAgICAqIFRyYW5zbGl0ZXJhdG9yLlBvc2l0aW9uLCBTdHJpbmcpfSBmb3IgZGV0YWlscy4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgYnVmZmVyIGhvbGRpbmcgdHJhbnNsaXRlcmF0ZWQgYW5kCisgICAgICogdW50cmFuc2xpdGVyYXRlZCB0ZXh0CisgICAgICogQHBhcmFtIGluZGV4IHRoZSBzdGFydCBhbmQgbGltaXQgb2YgdGhlIHRleHQsIHRoZSBwb3NpdGlvbgorICAgICAqIG9mIHRoZSBjdXJzb3IsIGFuZCB0aGUgc3RhcnQgYW5kIGxpbWl0IG9mIHRyYW5zbGl0ZXJhdGlvbi4KKyAgICAgKiBAcGFyYW0gaW5zZXJ0aW9uIHRleHQgdG8gYmUgaW5zZXJ0ZWQgYW5kIHBvc3NpYmx5CisgICAgICogdHJhbnNsaXRlcmF0ZWQgaW50byB0aGUgdHJhbnNsYXRpb24gYnVmZmVyIGF0CisgICAgICogPGNvZGU+aW5kZXguY29udGV4dExpbWl0PC9jb2RlPi4KKyAgICAgKiBAc2VlICN0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlLCBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiwgU3RyaW5nKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwgUG9zaXRpb24gaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5zZXJ0aW9uKSB7CisgICAgICAgIHRyYW5zbGl0ZXJhdGUodGV4dCwgaW5kZXgsIFVURjE2LnZhbHVlT2YoaW5zZXJ0aW9uKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJhbnNsaXRlcmF0ZXMgdGhlIHBvcnRpb24gb2YgdGhlIHRleHQgYnVmZmVyIHRoYXQgY2FuIGJlCisgICAgICogdHJhbnNsaXRlcmF0ZWQgdW5hbWJpZ3Vvc2x5LiAgVGhpcyBpcyBhIGNvbnZlbmllbmNlIG1ldGhvZDsgc2VlCisgICAgICoge0BsaW5rICN0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlLCBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiwKKyAgICAgKiBTdHJpbmcpfSBmb3IgZGV0YWlscy4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgYnVmZmVyIGhvbGRpbmcgdHJhbnNsaXRlcmF0ZWQgYW5kCisgICAgICogdW50cmFuc2xpdGVyYXRlZCB0ZXh0CisgICAgICogQHBhcmFtIGluZGV4IHRoZSBzdGFydCBhbmQgbGltaXQgb2YgdGhlIHRleHQsIHRoZSBwb3NpdGlvbgorICAgICAqIG9mIHRoZSBjdXJzb3IsIGFuZCB0aGUgc3RhcnQgYW5kIGxpbWl0IG9mIHRyYW5zbGl0ZXJhdGlvbi4KKyAgICAgKiBAc2VlICN0cmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlLCBUcmFuc2xpdGVyYXRvci5Qb3NpdGlvbiwgU3RyaW5nKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwgUG9zaXRpb24gaW5kZXgpIHsKKyAgICAgICAgdHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmluaXNoZXMgYW55IHBlbmRpbmcgdHJhbnNsaXRlcmF0aW9ucyB0aGF0IHdlcmUgd2FpdGluZyBmb3IKKyAgICAgKiBtb3JlIGNoYXJhY3RlcnMuICBDbGllbnRzIHNob3VsZCBjYWxsIHRoaXMgbWV0aG9kIGFzIHRoZSBsYXN0CisgICAgICogY2FsbCBhZnRlciBhIHNlcXVlbmNlIG9mIG9uZSBvciBtb3JlIGNhbGxzIHRvCisgICAgICogPGNvZGU+dHJhbnNsaXRlcmF0ZSgpPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgYnVmZmVyIGhvbGRpbmcgdHJhbnNsaXRlcmF0ZWQgYW5kCisgICAgICogdW50cmFuc2xpdGVyYXRlZCB0ZXh0LgorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgYXJyYXkgb2YgaW5kaWNlcyBwcmV2aW91c2x5IHBhc3NlZCB0byB7QGxpbmsKKyAgICAgKiAjdHJhbnNsaXRlcmF0ZX0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBmaW5pc2hUcmFuc2xpdGVyYXRpb24oUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gaW5kZXgpIHsKKyAgICAgICAgaW5kZXgudmFsaWRhdGUodGV4dC5sZW5ndGgoKSk7CisgICAgICAgIGZpbHRlcmVkVHJhbnNsaXRlcmF0ZSh0ZXh0LCBpbmRleCwgZmFsc2UsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFic3RyYWN0IG1ldGhvZCB0aGF0IGNvbmNyZXRlIHN1YmNsYXNzZXMgZGVmaW5lIHRvIGltcGxlbWVudAorICAgICAqIHRoZWlyIHRyYW5zbGl0ZXJhdGlvbiBhbGdvcml0aG0uICBUaGlzIG1ldGhvZCBoYW5kbGVzIGJvdGgKKyAgICAgKiBpbmNyZW1lbnRhbCBhbmQgbm9uLWluY3JlbWVudGFsIHRyYW5zbGl0ZXJhdGlvbi4gIExldAorICAgICAqIDxjb2RlPm9yaWdpbmFsU3RhcnQ8L2NvZGU+IHJlZmVyIHRvIHRoZSB2YWx1ZSBvZgorICAgICAqIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gdXBvbiBlbnRyeS4KKyAgICAgKgorICAgICAqIDx1bD4KKyAgICAgKiAgPGxpPklmIDxjb2RlPmluY3JlbWVudGFsPC9jb2RlPiBpcyBmYWxzZSwgdGhlbiB0aGlzIG1ldGhvZAorICAgICAqICBzaG91bGQgdHJhbnNsaXRlcmF0ZSBhbGwgY2hhcmFjdGVycyBiZXR3ZWVuCisgICAgICogIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gYW5kIDxjb2RlPnBvcy5saW1pdDwvY29kZT4uIFVwb24gcmV0dXJuCisgICAgICogIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gbXVzdCA9PSA8Y29kZT4gcG9zLmxpbWl0PC9jb2RlPi48L2xpPgorICAgICAqCisgICAgICogIDxsaT5JZiA8Y29kZT5pbmNyZW1lbnRhbDwvY29kZT4gaXMgdHJ1ZSwgdGhlbiB0aGlzIG1ldGhvZAorICAgICAqICBzaG91bGQgdHJhbnNsaXRlcmF0ZSBhbGwgY2hhcmFjdGVycyBiZXR3ZWVuCisgICAgICogIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gYW5kIDxjb2RlPnBvcy5saW1pdDwvY29kZT4gdGhhdCBjYW4gYmUKKyAgICAgKiAgdW5hbWJpZ3VvdXNseSB0cmFuc2xpdGVyYXRlZCwgcmVnYXJkbGVzcyBvZiBmdXR1cmUgaW5zZXJ0aW9ucworICAgICAqICBvZiB0ZXh0IGF0IDxjb2RlPnBvcy5saW1pdDwvY29kZT4uICBVcG9uIHJldHVybiwKKyAgICAgKiAgPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBzaG91bGQgYmUgaW4gdGhlIHJhbmdlCisgICAgICogIFs8Y29kZT5vcmlnaW5hbFN0YXJ0PC9jb2RlPiwgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPikuCisgICAgICogIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gc2hvdWxkIGJlIHBvc2l0aW9uZWQgc3VjaCB0aGF0CisgICAgICogIGNoYXJhY3RlcnMgWzxjb2RlPm9yaWdpbmFsU3RhcnQ8L2NvZGU+LCA8Y29kZT4KKyAgICAgKiAgcG9zLnN0YXJ0PC9jb2RlPikgd2lsbCBub3QgYmUgY2hhbmdlZCBpbiB0aGUgZnV0dXJlIGJ5IHRoaXMKKyAgICAgKiAgdHJhbnNsaXRlcmF0b3IgYW5kIGNoYXJhY3RlcnMgWzxjb2RlPnBvcy5zdGFydDwvY29kZT4sCisgICAgICogIDxjb2RlPnBvcy5saW1pdDwvY29kZT4pIGFyZSB1bmNoYW5nZWQuPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqCisgICAgICogPHA+SW1wbGVtZW50YXRpb25zIG9mIHRoaXMgbWV0aG9kIHNob3VsZCBhbHNvIG9iZXkgdGhlCisgICAgICogZm9sbG93aW5nIGludmFyaWFudHM6PC9wPgorICAgICAqCisgICAgICogPHVsPgorICAgICAqICA8bGk+IDxjb2RlPnBvcy5saW1pdDwvY29kZT4gYW5kIDxjb2RlPnBvcy5jb250ZXh0TGltaXQ8L2NvZGU+CisgICAgICogIHNob3VsZCBiZSB1cGRhdGVkIHRvIHJlZmxlY3QgY2hhbmdlcyBpbiBsZW5ndGggb2YgdGhlIHRleHQKKyAgICAgKiAgYmV0d2VlbiA8Y29kZT5wb3Muc3RhcnQ8L2NvZGU+IGFuZCA8Y29kZT5wb3MubGltaXQ8L2NvZGU+LiBUaGUKKyAgICAgKiAgZGlmZmVyZW5jZSA8Y29kZT4gcG9zLmNvbnRleHRMaW1pdCAtIHBvcy5saW1pdDwvY29kZT4gc2hvdWxkCisgICAgICogIG5vdCBjaGFuZ2UuPC9saT4KKyAgICAgKgorICAgICAqICA8bGk+PGNvZGU+cG9zLmNvbnRleHRTdGFydDwvY29kZT4gc2hvdWxkIG5vdCBjaGFuZ2UuPC9saT4KKyAgICAgKgorICAgICAqICA8bGk+VXBvbiByZXR1cm4sIG5laXRoZXIgPGNvZGU+cG9zLnN0YXJ0PC9jb2RlPiBub3IKKyAgICAgKiAgPGNvZGU+cG9zLmxpbWl0PC9jb2RlPiBzaG91bGQgYmUgbGVzcyB0aGFuCisgICAgICogIDxjb2RlPm9yaWdpbmFsU3RhcnQ8L2NvZGU+LjwvbGk+CisgICAgICoKKyAgICAgKiAgPGxpPlRleHQgYmVmb3JlIDxjb2RlPm9yaWdpbmFsU3RhcnQ8L2NvZGU+IGFuZCB0ZXh0IGFmdGVyCisgICAgICogIDxjb2RlPnBvcy5saW1pdDwvY29kZT4gc2hvdWxkIG5vdCBjaGFuZ2UuPC9saT4KKyAgICAgKgorICAgICAqICA8bGk+VGV4dCBiZWZvcmUgPGNvZGU+cG9zLmNvbnRleHRTdGFydDwvY29kZT4gYW5kIHRleHQgYWZ0ZXIKKyAgICAgKiAgPGNvZGU+IHBvcy5jb250ZXh0TGltaXQ8L2NvZGU+IHNob3VsZCBiZSBpZ25vcmVkLjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKgorICAgICAqIDxwPlN1YmNsYXNzZXMgbWF5IHNhZmVseSBhc3N1bWUgdGhhdCBhbGwgY2hhcmFjdGVycyBpbgorICAgICAqIFs8Y29kZT5wb3Muc3RhcnQ8L2NvZGU+LCA8Y29kZT5wb3MubGltaXQ8L2NvZGU+KSBhcmUgZmlsdGVyZWQuCisgICAgICogSW4gb3RoZXIgd29yZHMsIHRoZSBmaWx0ZXIgaGFzIGFscmVhZHkgYmVlbiBhcHBsaWVkIGJ5IHRoZSB0aW1lCisgICAgICogdGhpcyBtZXRob2QgaXMgY2FsbGVkLiAgU2VlCisgICAgICogPGNvZGU+ZmlsdGVyZWRUcmFuc2xpdGVyYXRlKCk8L2NvZGU+LgorICAgICAqCisgICAgICogPHA+VGhpcyBtZXRob2QgaXMgPGI+bm90PC9iPiBmb3IgcHVibGljIGNvbnN1bXB0aW9uLiAgQ2FsbGluZworICAgICAqIHRoaXMgbWV0aG9kIGRpcmVjdGx5IHdpbGwgdHJhbnNsaXRlcmF0ZQorICAgICAqIFs8Y29kZT5wb3Muc3RhcnQ8L2NvZGU+LCA8Y29kZT5wb3MubGltaXQ8L2NvZGU+KSB3aXRob3V0CisgICAgICogYXBwbHlpbmcgdGhlIGZpbHRlci4gRW5kIHVzZXIgY29kZSBzaG91bGQgY2FsbCA8Y29kZT4KKyAgICAgKiB0cmFuc2xpdGVyYXRlKCk8L2NvZGU+IGluc3RlYWQgb2YgdGhpcyBtZXRob2QuIFN1YmNsYXNzIGNvZGUKKyAgICAgKiBzaG91bGQgY2FsbCA8Y29kZT5maWx0ZXJlZFRyYW5zbGl0ZXJhdGUoKTwvY29kZT4gaW5zdGVhZCBvZgorICAgICAqIHRoaXMgbWV0aG9kLjxwPgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIGJ1ZmZlciBob2xkaW5nIHRyYW5zbGl0ZXJhdGVkIGFuZAorICAgICAqIHVudHJhbnNsaXRlcmF0ZWQgdGV4dAorICAgICAqCisgICAgICogQHBhcmFtIHBvcyB0aGUgaW5kaWNlcyBpbmRpY2F0aW5nIHRoZSBzdGFydCwgbGltaXQsIGNvbnRleHQKKyAgICAgKiBzdGFydCwgYW5kIGNvbnRleHQgbGltaXQgb2YgdGhlIHRleHQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50YWwgaWYgdHJ1ZSwgYXNzdW1lIG1vcmUgdGV4dCBtYXkgYmUgaW5zZXJ0ZWQgYXQKKyAgICAgKiA8Y29kZT5wb3MubGltaXQ8L2NvZGU+IGFuZCBhY3QgYWNjb3JkaW5nbHkuICBPdGhlcndpc2UsCisgICAgICogdHJhbnNsaXRlcmF0ZSBhbGwgdGV4dCBiZXR3ZWVuIDxjb2RlPnBvcy5zdGFydDwvY29kZT4gYW5kCisgICAgICogPGNvZGU+cG9zLmxpbWl0PC9jb2RlPiBhbmQgbW92ZSA8Y29kZT5wb3Muc3RhcnQ8L2NvZGU+IHVwIHRvCisgICAgICogPGNvZGU+cG9zLmxpbWl0PC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBzZWUgI3RyYW5zbGl0ZXJhdGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBwb3MsIGJvb2xlYW4gaW5jcmVtZW50YWwpOworCisgICAgLyoqCisgICAgICogVG9wLWxldmVsIHRyYW5zbGl0ZXJhdGlvbiBtZXRob2QsIGhhbmRsaW5nIGZpbHRlcmluZywgaW5jcmVtZW50YWwgYW5kCisgICAgICogbm9uLWluY3JlbWVudGFsIHRyYW5zbGl0ZXJhdGlvbiwgYW5kIHJvbGxiYWNrLiAgQWxsIHRyYW5zbGl0ZXJhdGlvbgorICAgICAqIHB1YmxpYyBBUEkgbWV0aG9kcyBldmVudHVhbGx5IGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBhIHJvbGxiYWNrIGFyZ3VtZW50CisgICAgICogb2YgVFJVRS4gIE90aGVyIGVudGl0aWVzIG1heSBjYWxsIHRoaXMgbWV0aG9kIGJ1dCByb2xsYmFjayBzaG91bGQgYmUKKyAgICAgKiBGQUxTRS4KKyAgICAgKgorICAgICAqIDxwPklmIHRoaXMgdHJhbnNsaXRlcmF0b3IgaGFzIGEgZmlsdGVyLCBicmVhayB1cCB0aGUgaW5wdXQgdGV4dCBpbnRvIHJ1bnMKKyAgICAgKiBvZiB1bmZpbHRlcmVkIGNoYXJhY3RlcnMuICBQYXNzIGVhY2ggcnVuIHRvCisgICAgICogPHN1YmNsYXNzPi5oYW5kbGVUcmFuc2xpdGVyYXRlKCkuCisgICAgICoKKyAgICAgKiA8cD5JbiBpbmNyZW1lbnRhbCBtb2RlLCBpZiByb2xsYmFjayBpcyBUUlVFLCBwZXJmb3JtIGEgc3BlY2lhbAorICAgICAqIGluY3JlbWVudGFsIHByb2NlZHVyZSBpbiB3aGljaCBzZXZlcmFsIHBhc3NlcyBhcmUgbWFkZSBvdmVyIHRoZSBpbnB1dAorICAgICAqIHRleHQsIGFkZGluZyBvbmUgY2hhcmFjdGVyIGF0IGEgdGltZSwgYW5kIGNvbW1pdHRpbmcgc3VjY2Vzc2Z1bAorICAgICAqIHRyYW5zbGl0ZXJhdGlvbnMgYXMgdGhleSBvY2N1ci4gIFVuc3VjY2Vzc2Z1bCB0cmFuc2xpdGVyYXRpb25zIGFyZSByb2xsZWQKKyAgICAgKiBiYWNrIGFuZCByZXRyaWVkIHdpdGggYWRkaXRpb25hbCBjaGFyYWN0ZXJzIHRvIGdpdmUgY29ycmVjdCByZXN1bHRzLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gYmUgdHJhbnNsaXRlcmF0ZWQKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIHBvc2l0aW9uIGluZGljZXMKKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50YWwgaWYgVFJVRSwgdGhlbiBhc3N1bWUgbW9yZSBjaGFyYWN0ZXJzIG1heSBiZSBpbnNlcnRlZAorICAgICAqIGF0IGluZGV4LmxpbWl0LCBhbmQgcG9zdHBvbmUgcHJvY2Vzc2luZyB0byBhY2NvbW9kYXRlIGZ1dHVyZSBpbmNvbWluZworICAgICAqIGNoYXJhY3RlcnMKKyAgICAgKiBAcGFyYW0gcm9sbGJhY2sgaWYgVFJVRSBhbmQgaWYgaW5jcmVtZW50YWwgaXMgVFJVRSwgdGhlbiBwZXJmb3JtIHNwZWNpYWwKKyAgICAgKiBpbmNyZW1lbnRhbCBwcm9jZXNzaW5nLCBhcyBkZXNjcmliZWQgYWJvdmUsIGFuZCB1bmRvIHBhcnRpYWwKKyAgICAgKiB0cmFuc2xpdGVyYXRpb25zIHdoZXJlIG5lY2Vzc2FyeS4gIElmIGluY3JlbWVudGFsIGlzIEZBTFNFIHRoZW4gdGhpcworICAgICAqIHBhcmFtZXRlciBpcyBpZ25vcmVkLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBmaWx0ZXJlZFRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNyZW1lbnRhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gcm9sbGJhY2spIHsKKyAgICAgICAgLy8gU2hvcnQgY2lyY3VpdCBwYXRoIGZvciB0cmFuc2xpdGVyYXRvcnMgd2l0aCBubyBmaWx0ZXIgaW4KKyAgICAgICAgLy8gbm9uLWluY3JlbWVudGFsIG1vZGUuCisgICAgICAgIGlmIChmaWx0ZXIgPT0gbnVsbCAmJiAhcm9sbGJhY2spIHsKKyAgICAgICAgICAgIGhhbmRsZVRyYW5zbGl0ZXJhdGUodGV4dCwgaW5kZXgsIGluY3JlbWVudGFsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAvLyBUaGlzIG1ldGhvZCBwcm9jZXNzZXMgdGV4dCBpbiB0d28gZ3JvdXBpbmdzOgorICAgICAgICAvLworICAgICAgICAvLyBSVU5TIC0tIEEgcnVuIGlzIGEgY29udGlndW91cyBncm91cCBvZiBjaGFyYWN0ZXJzIHdoaWNoIGFyZSBjb250YWluZWQKKyAgICAgICAgLy8gaW4gdGhlIGZpbHRlciBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvciAoZmlsdGVyLmNvbnRhaW5zKGNoKSA9PSB0cnVlKS4KKyAgICAgICAgLy8gVGV4dCBvdXRzaWRlIG9mIHJ1bnMgbWF5IGFwcGVhciBhcyBjb250ZXh0IGJ1dCBpdCBpcyBub3QgbW9kaWZpZWQuCisgICAgICAgIC8vIFRoZSBzdGFydCBhbmQgbGltaXQgUG9zaXRpb24gdmFsdWVzIGFyZSBuYXJyb3dlZCB0byBlYWNoIHJ1bi4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gUEFTU0VTIChpbmNyZW1lbnRhbCBvbmx5KSAtLSBUbyBtYWtlIGluY3JlbWVudGFsIG1vZGUgd29yayBjb3JyZWN0bHksCisgICAgICAgIC8vIGVhY2ggcnVuIGlzIGJyb2tlbiB1cCBpbnRvIG4gcGFzc2VzLCB3aGVyZSBuIGlzIHRoZSBsZW5ndGggKGluIGNvZGUKKyAgICAgICAgLy8gcG9pbnRzKSBvZiB0aGUgcnVuLiAgRWFjaCBwYXNzIGNvbnRhaW5zIHRoZSBmaXJzdCBuIGNoYXJhY3RlcnMuICBJZiBhCisgICAgICAgIC8vIHBhc3MgaXMgY29tcGxldGVseSB0cmFuc2xpdGVyYXRlZCwgaXQgaXMgY29tbWl0dGVkLCBhbmQgZnVydGhlciBwYXNzZXMKKyAgICAgICAgLy8gaW5jbHVkZSBjaGFyYWN0ZXJzIGFmdGVyIHRoZSBjb21taXR0ZWQgdGV4dC4gIElmIGEgcGFzcyBpcyBibG9ja2VkLAorICAgICAgICAvLyBhbmQgZG9lcyBub3QgdHJhbnNsaXRlcmF0ZSBjb21wbGV0ZWx5LCB0aGVuIHRoaXMgbWV0aG9kIHJvbGxzIGJhY2sKKyAgICAgICAgLy8gdGhlIGNoYW5nZXMgbWFkZSBkdXJpbmcgdGhlIHBhc3MsIGV4dGVuZHMgdGhlIHBhc3MgYnkgb25lIGNvZGUgcG9pbnQsCisgICAgICAgIC8vIGFuZCB0cmllcyBhZ2Fpbi4KKyAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLy8gZ2xvYmFsTGltaXQgaXMgdGhlIGxpbWl0IHZhbHVlIGZvciB0aGUgZW50aXJlIG9wZXJhdGlvbi4gIFdlCisgICAgICAgIC8vIHNldCBpbmRleC5saW1pdCB0byB0aGUgZW5kIG9mIGVhY2ggdW5maWx0ZXJlZCBydW4gYmVmb3JlCisgICAgICAgIC8vIGNhbGxpbmcgaGFuZGxlVHJhbnNsaXRlcmF0ZSgpLCBzbyB3ZSBuZWVkIHRvIG1haW50YWluIHRoZSByZWFsCisgICAgICAgIC8vIHZhbHVlIG9mIGluZGV4LmxpbWl0IGhlcmUuICBBZnRlciBlYWNoIHRyYW5zbGl0ZXJhdGlvbiwgd2UKKyAgICAgICAgLy8gdXBkYXRlIGdsb2JhbExpbWl0IGZvciBpbnNlcnRpb25zIG9yIGRlbGV0aW9ucyB0aGF0IGhhdmUKKyAgICAgICAgLy8gaGFwcGVuZWQuCisgICAgICAgIGludCBnbG9iYWxMaW1pdCA9IGluZGV4LmxpbWl0OworCisgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgbm9uLW51bGwgZmlsdGVyLCB0aGVuIGJyZWFrIHRoZSBpbnB1dCB0ZXh0IHVwLiAgU2F5IHRoZQorICAgICAgICAvLyBpbnB1dCB0ZXh0IGhhcyB0aGUgZm9ybToKKyAgICAgICAgLy8gICB4eHhhYmN4eGRlZnh4CisgICAgICAgIC8vIHdoZXJlICd4JyByZXByZXNlbnRzIGEgZmlsdGVyZWQgY2hhcmFjdGVyIChmaWx0ZXIuY29udGFpbnMoJ3gnKSA9PQorICAgICAgICAvLyBmYWxzZSkuICBUaGVuIHdlIGJyZWFrIHRoaXMgdXAgaW50bzoKKyAgICAgICAgLy8gICB4eHhhYmMgeHhkZWYgeHgKKyAgICAgICAgLy8gRWFjaCBwYXNzIHRocm91Z2ggdGhlIGxvb3AgY29uc3VtZXMgYSBydW4gb2YgZmlsdGVyZWQKKyAgICAgICAgLy8gY2hhcmFjdGVycyAod2hpY2ggYXJlIGlnbm9yZWQpIGFuZCBhIHN1YnNlcXVlbnQgcnVuIG9mCisgICAgICAgIC8vIHVuZmlsdGVyZWQgY2hhcmFjdGVycyAod2hpY2ggYXJlIHRyYW5zbGl0ZXJhdGVkKS4KKworICAgICAgICBTdHJpbmdCdWZmZXIgbG9nID0gbnVsbDsKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBsb2cgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKDs7KSB7CisKKyAgICAgICAgICAgIGlmIChmaWx0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIE5hcnJvdyB0aGUgcmFuZ2UgdG8gYmUgdHJhbnNsaXRlcmF0ZWQgdG8gdGhlIGZpcnN0IHJ1bgorICAgICAgICAgICAgICAgIC8vIG9mIHVuZmlsdGVyZWQgY2hhcmFjdGVycyBhdCBvciBhZnRlciBpbmRleC5zdGFydC4KKworICAgICAgICAgICAgICAgIC8vIEFkdmFuY2UgcGFzdCBmaWx0ZXJlZCBjaGFycworICAgICAgICAgICAgICAgIGludCBjOworICAgICAgICAgICAgICAgIHdoaWxlIChpbmRleC5zdGFydCA8IGdsb2JhbExpbWl0ICYmCisgICAgICAgICAgICAgICAgICAgICAgICFmaWx0ZXIuY29udGFpbnMoYz10ZXh0LmNoYXIzMkF0KGluZGV4LnN0YXJ0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXguc3RhcnQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIGVuZCBvZiB0aGlzIHJ1biBvZiB1bmZpbHRlcmVkIGNoYXJzCisgICAgICAgICAgICAgICAgaW5kZXgubGltaXQgPSBpbmRleC5zdGFydDsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaW5kZXgubGltaXQgPCBnbG9iYWxMaW1pdCAmJgorICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIuY29udGFpbnMoYz10ZXh0LmNoYXIzMkF0KGluZGV4LmxpbWl0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXgubGltaXQgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSB1bmZpbHRlcmVkIHJ1biBpcyBlbXB0eS4gIFRoaXMgb25seQorICAgICAgICAgICAgLy8gaGFwcGVucyBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcgd2hlbiBhbGwgdGhlIHJlbWFpbmluZworICAgICAgICAgICAgLy8gY2hhcmFjdGVycyBhcmUgZmlsdGVyZWQuCisgICAgICAgICAgICBpZiAoaW5kZXguc3RhcnQgPT0gaW5kZXgubGltaXQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSXMgdGhpcyBydW4gaW5jcmVtZW50YWw/ICBJZiB0aGVyZSBpcyBhZGRpdGlvbmFsCisgICAgICAgICAgICAvLyBmaWx0ZXJlZCB0ZXh0IChpZiBsaW1pdCA8IGdsb2JhbExpbWl0KSB0aGVuIHdlIHBhc3MgaW4KKyAgICAgICAgICAgIC8vIGFuIGluY3JlbWVudGFsIHZhbHVlIG9mIEZBTFNFIHRvIGZvcmNlIHRoZSBzdWJjbGFzcyB0bworICAgICAgICAgICAgLy8gY29tcGxldGUgdGhlIHRyYW5zbGl0ZXJhdGlvbiBmb3IgdGhpcyBydW4uCisgICAgICAgICAgICBib29sZWFuIGlzSW5jcmVtZW50YWxSdW4gPQorICAgICAgICAgICAgICAgIChpbmRleC5saW1pdCA8IGdsb2JhbExpbWl0ID8gZmFsc2UgOiBpbmNyZW1lbnRhbCk7CisKKyAgICAgICAgICAgIGludCBkZWx0YTsKKworICAgICAgICAgICAgLy8gSW1wbGVtZW50IHJvbGxiYWNrLiAgVG8gdW5kZXJzdGFuZCB0aGUgbmVlZCBmb3Igcm9sbGJhY2ssCisgICAgICAgICAgICAvLyBjb25zaWRlciB0aGUgZm9sbG93aW5nIHRyYW5zbGl0ZXJhdG9yOgorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vICAidCIgaXMgImEgPiBBOyIKKyAgICAgICAgICAgIC8vICAidSIgaXMgIkEgPiBiOyIKKyAgICAgICAgICAgIC8vICAidiIgaXMgYSBjb21wb3VuZCBvZiAidDsgTkZEOyB1IiB3aXRoIGEgZmlsdGVyIFs6TGw6XQorICAgICAgICAgICAgLy8KKyAgICAgICAgICAgIC8vIE5vdyBhcHBseSAidiIgdG8gdGhlIGlucHV0IHRleHQgImEiLiAgVGhlIHJlc3VsdCBpcyAiYiIuICBCdXQgaWYKKyAgICAgICAgICAgIC8vIHRoZSB0cmFuc2xpdGVyYXRpb24gaXMgZG9uZSBpbmNyZW1lbnRhbGx5LCB0aGVuIHRoZSBORkQgaG9sZHMKKyAgICAgICAgICAgIC8vIHRoaW5ncyB1cCBhZnRlciAidCIgaGFzIGFscmVhZHkgdHJhbnNmb3JtZWQgImEiIHRvICJBIi4gIFdoZW4KKyAgICAgICAgICAgIC8vIGZpbmlzaFRyYW5zbGl0ZXJhdGUoKSBpcyBjYWxsZWQsICJBIiBpcyBfbm90XyBwcm9jZXNzZWQgYmVjYXVzZQorICAgICAgICAgICAgLy8gaXQgZ2V0cyBleGNsdWRlZCBieSB0aGUgWzpMbDpdIGZpbHRlciwgYW5kIHRoZSBlbmQgcmVzdWx0IGlzICJBIgorICAgICAgICAgICAgLy8gLS0gaW5jb3JyZWN0LiAgVGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgZmlsdGVyIGlzIGFwcGxpZWQgdG8gYQorICAgICAgICAgICAgLy8gcGFydGlhbGx5LXRyYW5zbGl0ZXJhdGVkIHJlc3VsdCwgd2hlbiB3ZSBvbmx5IHdhbnQgaXQgdG8gYXBwbHkgdG8KKyAgICAgICAgICAgIC8vIGlucHV0IHRleHQuICBBbHRob3VnaCB0aGlzIGV4YW1wbGUgZGVzY3JpYmVzIGEgY29tcG91bmQKKyAgICAgICAgICAgIC8vIHRyYW5zbGl0ZXJhdG9yIGNvbnRhaW5pbmcgTkZEIGFuZCBhIHNwZWNpZmljIGZpbHRlciwgaXQgY2FuCisgICAgICAgICAgICAvLyBoYXBwZW4gd2l0aCBhbnkgdHJhbnNsaXRlcmF0b3Igd2hpY2ggZG9lcyBhIHBhcnRpYWwKKyAgICAgICAgICAgIC8vIHRyYW5zZm9ybWF0aW9uIGluIGluY3JlbWVudGFsIG1vZGUgaW50byBjaGFyYWN0ZXJzIG91dHNpZGUgaXRzCisgICAgICAgICAgICAvLyBmaWx0ZXIuCisgICAgICAgICAgICAvLworICAgICAgICAgICAgLy8gVG8gaGFuZGxlIHRoaXMsIHdoZW4gaW4gaW5jcmVtZW50YWwgbW9kZSB3ZSBzdXBwbHkgY2hhcmFjdGVycyB0bworICAgICAgICAgICAgLy8gaGFuZGxlVHJhbnNsaXRlcmF0ZSgpIGluIHNldmVyYWwgcGFzc2VzLiAgRWFjaCBwYXNzIGFkZHMgb25lIG1vcmUKKyAgICAgICAgICAgIC8vIGlucHV0IGNoYXJhY3RlciB0byB0aGUgaW5wdXQgdGV4dC4gIFRoYXQgaXMsIGZvciBpbnB1dCAiQUJDRCIsIHdlCisgICAgICAgICAgICAvLyBmaXJzdCB0cnkgIkEiLCB0aGVuICJBQiIsIHRoZW4gIkFCQyIsIGFuZCBmaW5hbGx5ICJBQkNEIi4gIElmIGF0CisgICAgICAgICAgICAvLyBhbnkgcG9pbnQgd2UgYmxvY2sgKHVwb24gcmV0dXJuLCBzdGFydCA8IGxpbWl0KSB0aGVuIHdlIHJvbGwKKyAgICAgICAgICAgIC8vIGJhY2suICBJZiBhdCBhbnkgcG9pbnQgd2UgY29tcGxldGUgdGhlIHJ1biAodXBvbiByZXR1cm4gc3RhcnQgPT0KKyAgICAgICAgICAgIC8vIGxpbWl0KSB0aGVuIHdlIGNvbW1pdCB0aGF0IHJ1bi4KKworICAgICAgICAgICAgaWYgKHJvbGxiYWNrICYmIGlzSW5jcmVtZW50YWxSdW4pIHsKKworICAgICAgICAgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgICAgICAgICBsb2cuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImZpbHRlcmVkVHJhbnNsaXRlcmF0ZXsiK2dldElEKCkrIn1pOiBJTj0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHRleHQsIGluZGV4KSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW50IHJ1blN0YXJ0ID0gaW5kZXguc3RhcnQ7CisgICAgICAgICAgICAgICAgaW50IHJ1bkxpbWl0ID0gaW5kZXgubGltaXQ7CisgICAgICAgICAgICAgICAgaW50IHJ1bkxlbmd0aCA9ICBydW5MaW1pdCAtIHJ1blN0YXJ0OworCisgICAgICAgICAgICAgICAgLy8gTWFrZSBhIHJvbGxiYWNrIGNvcHkgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nCisgICAgICAgICAgICAgICAgaW50IHJvbGxiYWNrT3JpZ2luID0gdGV4dC5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICB0ZXh0LmNvcHkocnVuU3RhcnQsIHJ1bkxpbWl0LCByb2xsYmFja09yaWdpbik7CisKKyAgICAgICAgICAgICAgICAvLyBWYXJpYWJsZXMgcmVmbGVjdGluZyB0aGUgY29tbWl0bWVudCBvZiBjb21wbGV0ZWx5CisgICAgICAgICAgICAgICAgLy8gdHJhbnNsaXRlcmF0ZWQgdGV4dC4gIHBhc3NTdGFydCBpcyB0aGUgcnVuU3RhcnQsIGFkdmFuY2VkCisgICAgICAgICAgICAgICAgLy8gcGFzdCBjb21taXR0ZWQgdGV4dC4gIHJvbGxiYWNrU3RhcnQgaXMgdGhlIHJvbGxiYWNrT3JpZ2luLAorICAgICAgICAgICAgICAgIC8vIGFkdmFuY2VkIHBhc3Qgcm9sbGJhY2sgdGV4dCB0aGF0IGNvcnJlc3BvbmRzIHRvIGNvbW1pdHRlZAorICAgICAgICAgICAgICAgIC8vIHRleHQuCisgICAgICAgICAgICAgICAgaW50IHBhc3NTdGFydCA9IHJ1blN0YXJ0OworICAgICAgICAgICAgICAgIGludCByb2xsYmFja1N0YXJ0ID0gcm9sbGJhY2tPcmlnaW47CisKKyAgICAgICAgICAgICAgICAvLyBUaGUgbGltaXQgZm9yIGVhY2ggcGFzczsgd2UgYWR2YW5jZSBieSBvbmUgY29kZSBwb2ludCB3aXRoCisgICAgICAgICAgICAgICAgLy8gZWFjaCBpdGVyYXRpb24uCisgICAgICAgICAgICAgICAgaW50IHBhc3NMaW1pdCA9IGluZGV4LnN0YXJ0OworCisgICAgICAgICAgICAgICAgLy8gVG90YWwgbGVuZ3RoLCBpbiAxNi1iaXQgY29kZSB1bml0cywgb2YgdW5jb21taXR0ZWQgdGV4dC4KKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBsZW5ndGggdG8gYmUgcm9sbGVkIGJhY2suCisgICAgICAgICAgICAgICAgaW50IHVuY29tbWl0dGVkTGVuZ3RoID0gMDsKKworICAgICAgICAgICAgICAgIC8vIFRvdGFsIGRlbHRhIChjaGFuZ2UgaW4gbGVuZ3RoKSBmb3IgYWxsIHBhc3NlcworICAgICAgICAgICAgICAgIGludCB0b3RhbERlbHRhID0gMDsKKworICAgICAgICAgICAgICAgIC8vIFBBU1MgTUFJTiBMT09QIC0tIFN0YXJ0IHdpdGggYSBzaW5nbGUgY2hhcmFjdGVyLCBhbmQgZXh0ZW5kCisgICAgICAgICAgICAgICAgLy8gdGhlIHRleHQgYnkgb25lIGNoYXJhY3RlciBhdCBhIHRpbWUuICBSb2xsIGJhY2sgcGFydGlhbAorICAgICAgICAgICAgICAgIC8vIHRyYW5zbGl0ZXJhdGlvbnMgYW5kIGNvbW1pdCBjb21wbGV0ZSB0cmFuc2xpdGVyYXRpb25zLgorICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTGVuZ3RoIG9mIGFkZGl0aW9uYWwgY29kZSBwb2ludCwgZWl0aGVyIG9uZSBvciB0d28KKyAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJMZW5ndGggPQorICAgICAgICAgICAgICAgICAgICAgICAgVVRGMTYuZ2V0Q2hhckNvdW50KHRleHQuY2hhcjMyQXQocGFzc0xpbWl0KSk7CisgICAgICAgICAgICAgICAgICAgIHBhc3NMaW1pdCArPSBjaGFyTGVuZ3RoOworICAgICAgICAgICAgICAgICAgICBpZiAocGFzc0xpbWl0ID4gcnVuTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHVuY29tbWl0dGVkTGVuZ3RoICs9IGNoYXJMZW5ndGg7CisKKyAgICAgICAgICAgICAgICAgICAgaW5kZXgubGltaXQgPSBwYXNzTGltaXQ7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2cuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmFwcGVuZCgiZmlsdGVyZWRUcmFuc2xpdGVyYXRleyIrZ2V0SUQoKSsifWk6ICIpOworICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQobG9nLCB0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBEZWxlZ2F0ZSB0byBzdWJjbGFzcyBmb3IgYWN0dWFsIHRyYW5zbGl0ZXJhdGlvbi4gIFVwb24KKyAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuLCBzdGFydCB3aWxsIGJlIHVwZGF0ZWQgdG8gcG9pbnQgYWZ0ZXIgdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIHRyYW5zbGl0ZXJhdGVkIHRleHQsIGFuZCBsaW1pdCBhbmQgY29udGV4dExpbWl0IHdpbGwgYmUKKyAgICAgICAgICAgICAgICAgICAgLy8gYWRqdXN0ZWQgZm9yIGxlbmd0aCBjaGFuZ2VzLgorICAgICAgICAgICAgICAgICAgICBoYW5kbGVUcmFuc2xpdGVyYXRlKHRleHQsIGluZGV4LCB0cnVlKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5hcHBlbmQoIiA9PiAiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KGxvZywgdGV4dCwgaW5kZXgpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgZGVsdGEgPSBpbmRleC5saW1pdCAtIHBhc3NMaW1pdDsgLy8gY2hhbmdlIGluIGxlbmd0aAorCisgICAgICAgICAgICAgICAgICAgIC8vIFdlIGZhaWxlZCB0byBjb21wbGV0ZWx5IHRyYW5zbGl0ZXJhdGUgdGhpcyBwYXNzLgorICAgICAgICAgICAgICAgICAgICAvLyBSb2xsIGJhY2sgdGhlIHRleHQuICBJbmRpY2VzIHJlbWFpbiB1bmNoYW5nZWQ7IHJlc2V0CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZW0gd2hlcmUgbmVjZXNzYXJ5LgorICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXguc3RhcnQgIT0gaW5kZXgubGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIHJvbGxiYWNrU3RhcnQsIGFkanVzdGVkIGZvciBsZW5ndGggY2hhbmdlcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRoZSBkZWxldGlvbiBvZiBwYXJ0aWFsbHkgdHJhbnNsaXRlcmF0ZWQgdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBycyA9IHJvbGxiYWNrU3RhcnQgKyBkZWx0YSAtIChpbmRleC5saW1pdCAtIHBhc3NTdGFydCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIERlbGV0ZSB0aGUgcGFydGlhbGx5IHRyYW5zbGl0ZXJhdGVkIHRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShwYXNzU3RhcnQsIGluZGV4LmxpbWl0LCAiIik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvcHkgdGhlIHJvbGxiYWNrIHRleHQgYmFjaworICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5jb3B5KHJzLCBycyArIHVuY29tbWl0dGVkTGVuZ3RoLCBwYXNzU3RhcnQpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXN0b3JlIGluZGljZXMgdG8gdGhlaXIgb3JpZ2luYWwgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleC5zdGFydCA9IHBhc3NTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LmxpbWl0ID0gcGFzc0xpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXguY29udGV4dExpbWl0IC09IGRlbHRhOworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cuYXBwZW5kKCIgKFJPTExCQUNLKSIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgZGlkIGNvbXBsZXRlbHkgdHJhbnNsaXRlcmF0ZSB0aGlzIHBhc3MuICBVcGRhdGUgdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIGNvbW1pdCBpbmRpY2VzIHRvIHJlY29yZCBob3cgZmFyIHdlIGdvdC4gIEFkanVzdCBpbmRpY2VzCisgICAgICAgICAgICAgICAgICAgIC8vIGZvciBsZW5ndGggY2hhbmdlLgorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1vdmUgdGhlIHBhc3MgaW5kaWNlcyBwYXN0IHRoZSBjb21taXR0ZWQgdGV4dC4KKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NTdGFydCA9IHBhc3NMaW1pdCA9IGluZGV4LnN0YXJ0OworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGp1c3QgdGhlIHJvbGxiYWNrU3RhcnQgZm9yIGxlbmd0aCBjaGFuZ2VzIGFuZCBtb3ZlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCBwYXN0IHRoZSBjb21taXR0ZWQgdGV4dC4gIEFsbCBjaGFyYWN0ZXJzIHdlJ3ZlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcm9jZXNzZWQgdG8gdGhpcyBwb2ludCBhcmUgY29tbWl0dGVkIG5vdywgc28gemVybworICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3V0IHRoZSB1bmNvbW1pdHRlZExlbmd0aC4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGxiYWNrU3RhcnQgKz0gZGVsdGEgKyB1bmNvbW1pdHRlZExlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuY29tbWl0dGVkTGVuZ3RoID0gMDsKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRqdXN0IGluZGljZXMgZm9yIGxlbmd0aCBjaGFuZ2VzLgorICAgICAgICAgICAgICAgICAgICAgICAgcnVuTGltaXQgKz0gZGVsdGE7CisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbERlbHRhICs9IGRlbHRhOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oVXRpbGl0eS5lc2NhcGUobG9nLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIEFkanVzdCBvdmVyYWxsIGxpbWl0IGFuZCByb2xsYmFja09yaWdpbiBmb3IgaW5zZXJ0aW9ucyBhbmQKKyAgICAgICAgICAgICAgICAvLyBkZWxldGlvbnMuICBEb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGNvbnRleHRMaW1pdCBiZWNhdXNlCisgICAgICAgICAgICAgICAgLy8gaGFuZGxlVHJhbnNsaXRlcmF0ZSgpIG1haW50YWlucyB0aGF0LgorICAgICAgICAgICAgICAgIHJvbGxiYWNrT3JpZ2luICs9IHRvdGFsRGVsdGE7CisgICAgICAgICAgICAgICAgZ2xvYmFsTGltaXQgKz0gdG90YWxEZWx0YTsKKworICAgICAgICAgICAgICAgIC8vIERlbGV0ZSB0aGUgcm9sbGJhY2sgY29weQorICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShyb2xsYmFja09yaWdpbiwgcm9sbGJhY2tPcmlnaW4gKyBydW5MZW5ndGgsICIiKTsKKworICAgICAgICAgICAgICAgIC8vIE1vdmUgc3RhcnQgcGFzdCBjb21taXR0ZWQgdGV4dAorICAgICAgICAgICAgICAgIGluZGV4LnN0YXJ0ID0gcGFzc1N0YXJ0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBEZWxlZ2F0ZSB0byBzdWJjbGFzcyBmb3IgYWN0dWFsIHRyYW5zbGl0ZXJhdGlvbi4KKyAgICAgICAgICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nLmFwcGVuZCgiZmlsdGVyZWRUcmFuc2xpdGVyYXRleyIrZ2V0SUQoKSsifTogIik7CisgICAgICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KGxvZywgdGV4dCwgaW5kZXgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGludCBsaW1pdCA9IGluZGV4LmxpbWl0OworICAgICAgICAgICAgICAgIGhhbmRsZVRyYW5zbGl0ZXJhdGUodGV4dCwgaW5kZXgsIGlzSW5jcmVtZW50YWxSdW4pOworICAgICAgICAgICAgICAgIGRlbHRhID0gaW5kZXgubGltaXQgLSBsaW1pdDsgLy8gY2hhbmdlIGluIGxlbmd0aAorCisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZy5hcHBlbmQoIiA9PiAiKTsKKyAgICAgICAgICAgICAgICAgICAgVXRpbGl0eUV4dGVuc2lvbnMuZm9ybWF0SW5wdXQobG9nLCB0ZXh0LCBpbmRleCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gSW4gYSBwcm9wZXJseSB3cml0dGVuIHRyYW5zbGl0ZXJhdG9yLCBzdGFydCA9PSBsaW1pdCBhZnRlcgorICAgICAgICAgICAgICAgIC8vIGhhbmRsZVRyYW5zbGl0ZXJhdGUoKSByZXR1cm5zIHdoZW4gaW5jcmVtZW50YWwgaXMgZmFsc2UuCisgICAgICAgICAgICAgICAgLy8gQ2F0Y2ggY2FzZXMgd2hlcmUgdGhlIHN1YmNsYXNzIGRvZXNuJ3QgZG8gdGhpcywgYW5kIHRocm93CisgICAgICAgICAgICAgICAgLy8gYW4gZXhjZXB0aW9uLiAgKEp1c3QgcGlubmluZyBzdGFydCB0byBsaW1pdCBpcyBhIGJhZCBpZGVhLAorICAgICAgICAgICAgICAgIC8vIGJlY2F1c2Ugd2hhdCdzIHByb2JhYmx5IGhhcHBlbmluZyBpcyB0aGF0IHRoZSBzdWJjbGFzcworICAgICAgICAgICAgICAgIC8vIGlzbid0IHRyYW5zbGl0ZXJhdGluZyBhbGwgdGhlIHdheSB0byB0aGUgZW5kLCBhbmQgaXQgc2hvdWxkCisgICAgICAgICAgICAgICAgLy8gaW4gbm9uLWluY3JlbWVudGFsIG1vZGUuKQorICAgICAgICAgICAgICAgIGlmICghaXNJbmNyZW1lbnRhbFJ1biAmJiBpbmRleC5zdGFydCAhPSBpbmRleC5saW1pdCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiRVJST1I6IEluY29tcGxldGUgbm9uLWluY3JlbWVudGFsIHRyYW5zbGl0ZXJhdGlvbiBieSAiICsgZ2V0SUQoKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gQWRqdXN0IG92ZXJhbGwgbGltaXQgZm9yIGluc2VydGlvbnMvZGVsZXRpb25zLiAgRG9uJ3QgbmVlZAorICAgICAgICAgICAgICAgIC8vIHRvIHdvcnJ5IGFib3V0IGNvbnRleHRMaW1pdCBiZWNhdXNlIGhhbmRsZVRyYW5zbGl0ZXJhdGUoKQorICAgICAgICAgICAgICAgIC8vIG1haW50YWlucyB0aGF0LgorICAgICAgICAgICAgICAgIGdsb2JhbExpbWl0ICs9IGRlbHRhOworCisgICAgICAgICAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihVdGlsaXR5LmVzY2FwZShsb2cudG9TdHJpbmcoKSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGZpbHRlciA9PSBudWxsIHx8IGlzSW5jcmVtZW50YWxSdW4pIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSWYgd2UgZGlkIGNvbXBsZXRlbHkgdHJhbnNsaXRlcmF0ZSB0aGlzCisgICAgICAgICAgICAvLyBydW4sIHRoZW4gcmVwZWF0IHdpdGggdGhlIG5leHQgdW5maWx0ZXJlZCBydW4uCisgICAgICAgIH0KKworICAgICAgICAvLyBTdGFydCBpcyB2YWxpZCB3aGVyZSBpdCBpcy4gIExpbWl0IG5lZWRzIHRvIGJlIHB1dCBiYWNrIHdoZXJlCisgICAgICAgIC8vIGl0IHdhcywgbW9kdWxvIGFkanVzdG1lbnRzIGZvciBkZWxldGlvbnMvaW5zZXJ0aW9ucy4KKyAgICAgICAgaW5kZXgubGltaXQgPSBnbG9iYWxMaW1pdDsKKworICAgICAgICBpZiAoREVCVUcpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZmlsdGVyZWRUcmFuc2xpdGVyYXRleyIrZ2V0SUQoKSsifTogT1VUPSIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHlFeHRlbnNpb25zLmZvcm1hdElucHV0KHRleHQsIGluZGV4KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcmFuc2xpdGVyYXRlIGEgc3Vic3RyaW5nIG9mIHRleHQsIGFzIHNwZWNpZmllZCBieSBpbmRleCwgdGFraW5nIGZpbHRlcnMKKyAgICAgKiBpbnRvIGFjY291bnQuICBUaGlzIG1ldGhvZCBpcyBmb3Igc3ViY2xhc3NlcyB0aGF0IG5lZWQgdG8gZGVsZWdhdGUgdG8KKyAgICAgKiBhbm90aGVyIHRyYW5zbGl0ZXJhdG9yLCBzdWNoIGFzIENvbXBvdW5kVHJhbnNsaXRlcmF0b3IuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gYmUgdHJhbnNsaXRlcmF0ZWQKKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIHBvc2l0aW9uIGluZGljZXMKKyAgICAgKiBAcGFyYW0gaW5jcmVtZW50YWwgaWYgVFJVRSwgdGhlbiBhc3N1bWUgbW9yZSBjaGFyYWN0ZXJzIG1heSBiZSBpbnNlcnRlZAorICAgICAqIGF0IGluZGV4LmxpbWl0LCBhbmQgcG9zdHBvbmUgcHJvY2Vzc2luZyB0byBhY2NvbW9kYXRlIGZ1dHVyZSBpbmNvbWluZworICAgICAqIGNoYXJhY3RlcnMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBmaWx0ZXJlZFRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKyAgICAgICAgZmlsdGVyZWRUcmFuc2xpdGVyYXRlKHRleHQsIGluZGV4LCBpbmNyZW1lbnRhbCwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgbG9uZ2VzdCBjb250ZXh0IHJlcXVpcmVkIGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuCisgICAgICogVGhpcyBpcyA8ZW0+cHJlY2VkaW5nPC9lbT4gY29udGV4dC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHplcm8sIGJ1dAorICAgICAqIHN1YmNsYXNzZXMgY2FuIGNoYW5nZSB0aGlzIGJ5IGNhbGxpbmcgPGNvZGU+c2V0TWF4aW11bUNvbnRleHRMZW5ndGgoKTwvY29kZT4uCisgICAgICogRm9yIGV4YW1wbGUsIGlmIGEgdHJhbnNsaXRlcmF0b3IgdHJhbnNsYXRlcyAiZGRkIiAod2hlcmUKKyAgICAgKiBkIGlzIGFueSBkaWdpdCkgdG8gIjU1NSIgd2hlbiBwcmVjZWRlZCBieSAiKGRkZCkiLCB0aGVuIHRoZSBwcmVjZWRpbmcKKyAgICAgKiBjb250ZXh0IGxlbmd0aCBpcyA1LCB0aGUgbGVuZ3RoIG9mICIoZGRkKSIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwcmVjZWRpbmcgY29udGV4dCBjaGFyYWN0ZXJzIHRoaXMKKyAgICAgKiB0cmFuc2xpdGVyYXRvciBuZWVkcyB0byBleGFtaW5lCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRNYXhpbXVtQ29udGV4dExlbmd0aCgpIHsKKyAgICAgICAgcmV0dXJuIG1heGltdW1Db250ZXh0TGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBmb3Igc3ViY2xhc3NlcyB0byB1c2UgdG8gc2V0IHRoZSBtYXhpbXVtIGNvbnRleHQgbGVuZ3RoLgorICAgICAqIEBzZWUgI2dldE1heGltdW1Db250ZXh0TGVuZ3RoCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0TWF4aW11bUNvbnRleHRMZW5ndGgoaW50IGEpIHsKKyAgICAgICAgaWYgKGEgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvbnRleHQgbGVuZ3RoICIgKyBhKTsKKyAgICAgICAgfQorICAgICAgICBtYXhpbXVtQ29udGV4dExlbmd0aCA9IGE7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHByb2dyYW1tYXRpYyBpZGVudGlmaWVyIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIElmIHRoaXMgaWRlbnRpZmllciBpcyBwYXNzZWQgdG8gPGNvZGU+Z2V0SW5zdGFuY2UoKTwvY29kZT4sIGl0CisgICAgICogd2lsbCByZXR1cm4gdGhpcyBvYmplY3QsIGlmIGl0IGhhcyBiZWVuIHJlZ2lzdGVyZWQuCisgICAgICogQHNlZSAjcmVnaXN0ZXJDbGFzcworICAgICAqIEBzZWUgI2dldEF2YWlsYWJsZUlEcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0SUQoKSB7CisgICAgICAgIHJldHVybiBJRDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHByb2dyYW1tYXRpYyBpZGVudGlmaWVyIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yLiAgT25seQorICAgICAqIGZvciB1c2UgYnkgc3ViY2xhc3Nlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBzZXRJRChTdHJpbmcgaWQpIHsKKyAgICAgICAgSUQgPSBpZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmFtZSBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvciB0aGF0IGlzIGFwcHJvcHJpYXRlIGZvcgorICAgICAqIGRpc3BsYXkgdG8gdGhlIHVzZXIgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgU2VlIHtAbGluaworICAgICAqICNnZXREaXNwbGF5TmFtZShTdHJpbmcsTG9jYWxlKX0gZm9yIGRldGFpbHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIElEKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZShJRCwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIGZvciB0aGlzIHRyYW5zbGl0ZXJhdG9yIHRoYXQgaXMgYXBwcm9wcmlhdGUgZm9yCisgICAgICogZGlzcGxheSB0byB0aGUgdXNlciBpbiB0aGUgZ2l2ZW4gbG9jYWxlLiAgVGhpcyBuYW1lIGlzIHRha2VuCisgICAgICogZnJvbSB0aGUgbG9jYWxlIHJlc291cmNlIGRhdGEgaW4gdGhlIHN0YW5kYXJkIG1hbm5lciBvZiB0aGUKKyAgICAgKiA8Y29kZT5qYXZhLnRleHQ8L2NvZGU+IHBhY2thZ2UuCisgICAgICoKKyAgICAgKiA8cD5JZiBubyBsb2NhbGl6ZWQgbmFtZXMgZXhpc3QgaW4gdGhlIHN5c3RlbSByZXNvdXJjZSBidW5kbGVzLAorICAgICAqIGEgbmFtZSBpcyBzeW50aGVzaXplZCB1c2luZyBhIGxvY2FsaXplZAorICAgICAqIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IHBhdHRlcm4gZnJvbSB0aGUgcmVzb3VyY2UgZGF0YS4gIFRoZQorICAgICAqIGFyZ3VtZW50cyB0byB0aGlzIHBhdHRlcm4gYXJlIGFuIGludGVnZXIgZm9sbG93ZWQgYnkgb25lIG9yIHR3bworICAgICAqIHN0cmluZ3MuICBUaGUgaW50ZWdlciBpcyB0aGUgbnVtYmVyIG9mIHN0cmluZ3MsIGVpdGhlciAxIG9yIDIuCisgICAgICogVGhlIHN0cmluZ3MgYXJlIGZvcm1lZCBieSBzcGxpdHRpbmcgdGhlIElEIGZvciB0aGlzCisgICAgICogdHJhbnNsaXRlcmF0b3IgYXQgdGhlIGZpcnN0ICctJy4gIElmIHRoZXJlIGlzIG5vICctJywgdGhlbiB0aGUKKyAgICAgKiBlbnRpcmUgSUQgZm9ybXMgdGhlIG9ubHkgc3RyaW5nLgorICAgICAqIEBwYXJhbSBpbkxvY2FsZSB0aGUgTG9jYWxlIGluIHdoaWNoIHRoZSBkaXNwbGF5IG5hbWUgc2hvdWxkIGJlCisgICAgICogbG9jYWxpemVkLgorICAgICAqIEBzZWUgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShTdHJpbmcgaWQsIExvY2FsZSBpbkxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWUoaWQsIFVMb2NhbGUuZm9yTG9jYWxlKGluTG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IgdGhhdCBpcyBhcHByb3ByaWF0ZSBmb3IKKyAgICAgKiBkaXNwbGF5IHRvIHRoZSB1c2VyIGluIHRoZSBnaXZlbiBsb2NhbGUuICBUaGlzIG5hbWUgaXMgdGFrZW4KKyAgICAgKiBmcm9tIHRoZSBsb2NhbGUgcmVzb3VyY2UgZGF0YSBpbiB0aGUgc3RhbmRhcmQgbWFubmVyIG9mIHRoZQorICAgICAqIDxjb2RlPmphdmEudGV4dDwvY29kZT4gcGFja2FnZS4KKyAgICAgKgorICAgICAqIDxwPklmIG5vIGxvY2FsaXplZCBuYW1lcyBleGlzdCBpbiB0aGUgc3lzdGVtIHJlc291cmNlIGJ1bmRsZXMsCisgICAgICogYSBuYW1lIGlzIHN5bnRoZXNpemVkIHVzaW5nIGEgbG9jYWxpemVkCisgICAgICogPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4gcGF0dGVybiBmcm9tIHRoZSByZXNvdXJjZSBkYXRhLiAgVGhlCisgICAgICogYXJndW1lbnRzIHRvIHRoaXMgcGF0dGVybiBhcmUgYW4gaW50ZWdlciBmb2xsb3dlZCBieSBvbmUgb3IgdHdvCisgICAgICogc3RyaW5ncy4gIFRoZSBpbnRlZ2VyIGlzIHRoZSBudW1iZXIgb2Ygc3RyaW5ncywgZWl0aGVyIDEgb3IgMi4KKyAgICAgKiBUaGUgc3RyaW5ncyBhcmUgZm9ybWVkIGJ5IHNwbGl0dGluZyB0aGUgSUQgZm9yIHRoaXMKKyAgICAgKiB0cmFuc2xpdGVyYXRvciBhdCB0aGUgZmlyc3QgJy0nLiAgSWYgdGhlcmUgaXMgbm8gJy0nLCB0aGVuIHRoZQorICAgICAqIGVudGlyZSBJRCBmb3JtcyB0aGUgb25seSBzdHJpbmcuCisgICAgICogQHBhcmFtIGluTG9jYWxlIHRoZSBVTG9jYWxlIGluIHdoaWNoIHRoZSBkaXNwbGF5IG5hbWUgc2hvdWxkIGJlCisgICAgICogbG9jYWxpemVkLgorICAgICAqIEBzZWUgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgVUxvY2FsZSBpbkxvY2FsZSkgeworCisgICAgICAgIC8vIFJlc291cmNlIGJ1bmRsZSBjb250YWluaW5nIGRpc3BsYXkgbmFtZSBrZXlzIGFuZCB0aGUKKyAgICAgICAgLy8gUkJfUlVMRV9CQVNFRF9JRFMgYXJyYXkuCisgICAgICAgIC8vCisgICAgICAgIC8vSWYgd2UgZXZlciBpbnRlZ3JhdGUgdGhpcyB3aXRoIHRoZSBTdW4gSkRLLCB0aGUgcmVzb3VyY2UgYnVuZGxlCisgICAgICAgIC8vIHJvb3Qgd2lsbCBjaGFuZ2UgdG8gc3VuLnRleHQucmVzb3VyY2VzLkxvY2FsZUVsZW1lbnRzCisKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS4KKyAgICAgICAgICAgIGdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9UUkFOU0xJVF9CQVNFX05BTUUsIGluTG9jYWxlKTsKKworICAgICAgICAvLyBOb3JtYWxpemUgdGhlIElECisgICAgICAgIFN0cmluZyBzdHZbXSA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuSUR0b1NUVihpZCk7CisgICAgICAgIGlmIChzdHYgPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gTm8gdGFyZ2V0OyBtYWxmb3JtZWQgaWQKKyAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgSUQgPSBzdHZbMF0gKyAnLScgKyBzdHZbMV07CisgICAgICAgIGlmIChzdHZbMl0gIT0gbnVsbCAmJiBzdHZbMl0ubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBJRCA9IElEICsgJy8nICsgc3R2WzJdOworICAgICAgICB9CisKKyAgICAgICAgLy8gVXNlIHRoZSByZWdpc3RlcmVkIGRpc3BsYXkgbmFtZSwgaWYgYW55CisgICAgICAgIFN0cmluZyBuID0gKFN0cmluZykgZGlzcGxheU5hbWVDYWNoZS5nZXQobmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyhJRCkpOworICAgICAgICBpZiAobiAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFVzZSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBlbnRpcmUgdHJhbnNsaXRlcmF0b3IsIGlmIGl0CisgICAgICAgIC8vIGV4aXN0cy4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBidW5kbGUuZ2V0U3RyaW5nKFJCX0RJU1BMQVlfTkFNRV9QUkVGSVggKyBJRCk7CisgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7fQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICAvLyBDb25zdHJ1Y3QgdGhlIGZvcm1hdHRlciBmaXJzdDsgaWYgZ2V0U3RyaW5nKCkgZmFpbHMKKyAgICAgICAgICAgIC8vIHdlJ2xsIGV4aXQgdGhlIHRyeSBibG9jaworICAgICAgICAgICAgTWVzc2FnZUZvcm1hdCBmb3JtYXQgPSBuZXcgTWVzc2FnZUZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgYnVuZGxlLmdldFN0cmluZyhSQl9ESVNQTEFZX05BTUVfUEFUVEVSTikpOworICAgICAgICAgICAgLy8gQ29uc3RydWN0IHRoZSBhcmd1bWVudCBhcnJheQorICAgICAgICAgICAgT2JqZWN0W10gYXJncyA9IG5ldyBPYmplY3RbXSB7IG5ldyBJbnRlZ2VyKDIpLCBzdHZbMF0sIHN0dlsxXSB9OworCisgICAgICAgICAgICAvLyBVc2UgZGlzcGxheSBuYW1lcyBmb3IgdGhlIHNjcmlwdHMsIGlmIHRoZXkgZXhpc3QKKyAgICAgICAgICAgIGZvciAoaW50IGo9MTsgajw9MjsgKytqKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgYXJnc1tqXSA9IGJ1bmRsZS5nZXRTdHJpbmcoUkJfU0NSSVBUX0RJU1BMQVlfTkFNRV9QUkVGSVggKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3RyaW5nKSBhcmdzW2pdKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gRm9ybWF0IGl0IHVzaW5nIHRoZSBwYXR0ZXJuIGluIHRoZSByZXNvdXJjZQorICAgICAgICAgICAgcmV0dXJuIChzdHZbMl0ubGVuZ3RoKCkgPiAwKSA/CisgICAgICAgICAgICAgICAgKGZvcm1hdC5mb3JtYXQoYXJncykgKyAnLycgKyBzdHZbMl0pIDoKKyAgICAgICAgICAgICAgICBmb3JtYXQuZm9ybWF0KGFyZ3MpOworICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZTIpIHt9CisKKyAgICAgICAgLy8gV2Ugc2hvdWxkIG5vdCByZWFjaCB0aGlzIHBvaW50IHVubGVzcyB0aGVyZSBpcyBzb21ldGhpbmcKKyAgICAgICAgLy8gd3Jvbmcgd2l0aCB0aGUgYnVpbGQgb3IgdGhlIFJCX0RJU1BMQVlfTkFNRV9QQVRURVJOIGhhcworICAgICAgICAvLyBiZWVuIGRlbGV0ZWQgZnJvbSB0aGUgcm9vdCBSQl9MT0NBTEVfRUxFTUVOVFMgcmVzb3VyY2UuCisgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZmlsdGVyIHVzZWQgYnkgdGhpcyB0cmFuc2xpdGVyYXRvciwgb3IgPHR0Pm51bGw8L3R0PgorICAgICAqIGlmIHRoaXMgdHJhbnNsaXRlcmF0b3IgdXNlcyBubyBmaWx0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVGaWx0ZXIgZ2V0RmlsdGVyKCkgeworICAgICAgICByZXR1cm4gZmlsdGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoYW5nZXMgdGhlIGZpbHRlciB1c2VkIGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuICBJZiB0aGUgZmlsdGVyCisgICAgICogaXMgc2V0IHRvIDx0dD5udWxsPC90dD4gdGhlbiBubyBmaWx0ZXJpbmcgd2lsbCBvY2N1ci4KKyAgICAgKgorICAgICAqIDxwPkNhbGxlcnMgbXVzdCB0YWtlIGNhcmUgaWYgYSB0cmFuc2xpdGVyYXRvciBpcyBpbiB1c2UgYnkKKyAgICAgKiBtdWx0aXBsZSB0aHJlYWRzLiAgVGhlIGZpbHRlciBzaG91bGQgbm90IGJlIGNoYW5nZWQgYnkgb25lCisgICAgICogdGhyZWFkIHdoaWxlIGFub3RoZXIgdGhyZWFkIG1heSBiZSB0cmFuc2xpdGVyYXRpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RmlsdGVyKFVuaWNvZGVGaWx0ZXIgZmlsdGVyKSB7CisgICAgICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gb2JqZWN0IGdpdmVuIGl0cyBJRC4KKyAgICAgKiBUaGUgSUQgbXVzdCBiZSBlaXRoZXIgYSBzeXN0ZW0gdHJhbnNsaXRlcmF0b3IgSUQgb3IgYSBJRCByZWdpc3RlcmVkCisgICAgICogdXNpbmcgPGNvZGU+cmVnaXN0ZXJDbGFzcygpPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBJRCBhIHZhbGlkIElELCBhcyBlbnVtZXJhdGVkIGJ5IDxjb2RlPmdldEF2YWlsYWJsZUlEcygpPC9jb2RlPgorICAgICAqIEByZXR1cm4gQSA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gb2JqZWN0IHdpdGggdGhlIGdpdmVuIElECisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGdpdmVuIElEIGlzIGludmFsaWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKElELCBGT1JXQVJEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IG9iamVjdCBnaXZlbiBpdHMgSUQuCisgICAgICogVGhlIElEIG11c3QgYmUgZWl0aGVyIGEgc3lzdGVtIHRyYW5zbGl0ZXJhdG9yIElEIG9yIGEgSUQgcmVnaXN0ZXJlZAorICAgICAqIHVzaW5nIDxjb2RlPnJlZ2lzdGVyQ2xhc3MoKTwvY29kZT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gSUQgYSB2YWxpZCBJRCwgYXMgZW51bWVyYXRlZCBieSA8Y29kZT5nZXRBdmFpbGFibGVJRHMoKTwvY29kZT4KKyAgICAgKiBAcGFyYW0gZGlyIGVpdGhlciBGT1JXQVJEIG9yIFJFVkVSU0UuICBJZiBSRVZFUlNFIHRoZW4gdGhlCisgICAgICogaW52ZXJzZSBvZiB0aGUgZ2l2ZW4gSUQgaXMgaW5zdGFudGlhdGVkLgorICAgICAqIEByZXR1cm4gQSA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gb2JqZWN0IHdpdGggdGhlIGdpdmVuIElECisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGdpdmVuIElEIGlzIGludmFsaWQuCisgICAgICogQHNlZSAjcmVnaXN0ZXJDbGFzcworICAgICAqIEBzZWUgI2dldEF2YWlsYWJsZUlEcworICAgICAqIEBzZWUgI2dldElECisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGlyKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBjYW5vbklEID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBWZWN0b3IgbGlzdCA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgVW5pY29kZVNldFtdIGdsb2JhbEZpbHRlciA9IG5ldyBVbmljb2RlU2V0WzFdOworICAgICAgICBpZiAoIVRyYW5zbGl0ZXJhdG9ySURQYXJzZXIucGFyc2VDb21wb3VuZElEKElELCBkaXIsIGNhbm9uSUQsIGxpc3QsIGdsb2JhbEZpbHRlcikpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgSUQgIiArIElEKTsKKyAgICAgICAgfQorCisgICAgICAgIFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuaW5zdGFudGlhdGVMaXN0KGxpc3QpOworCisgICAgICAgIC8vIGFzc2VydChsaXN0LnNpemUoKSA+IDApOworICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbnVsbDsKKyAgICAgICAgaWYgKGxpc3Quc2l6ZSgpID4gMSB8fCBVdGlsaXR5LmluZGV4T2YoY2Fub25JRCwgIjsiKSA+PSAwKSB7CisgICAgICAgICAgICAvLyBbTk9URTogSWYgaXQncyBhIGNvbXBvdW5kSUQsIHdlIGluc3RhbnRpYXRlIGEgQ29tcG91bmRUcmFuc2xpdGVyYXRvciBldmVuIGlmIGl0IG9ubHkKKyAgICAgICAgICAgIC8vIGhhcyBvbmUgY2hpbGQgdHJhbnNsaXRlcmF0b3IuICBUaGlzIGlzIHNvIHRoYXQgdG9SdWxlcygpIHdpbGwgcmV0dXJuIHRoZSByaWdodCB0aGluZworICAgICAgICAgICAgLy8gKHdpdGhvdXQgYW55IGluYWN0aXZlIElEKSwgYnV0IG91ciBtYWluIElEIHN0aWxsIGNvbWVzIG91dCBjb3JyZWN0LiAgVGhhdCBpcywgaWYgd2UKKyAgICAgICAgICAgIC8vIGluc3RhbnRpYXRlICIoTG93ZXIpO0xhdGluLUdyZWVrOyIsIHdlIHdhbnQgdGhlIHJ1bGVzIHRvIGNvbWUgb3V0IGFzICI6OkxhdGluLUdyZWVrOyIKKyAgICAgICAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoZSBJRCBpcyAiKExvd2VyKTtMYXRpbi1HcmVlazsiLgorICAgICAgICAgICAgdCA9IG5ldyBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKGxpc3QpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdCA9IChUcmFuc2xpdGVyYXRvcilsaXN0LmVsZW1lbnRBdCgwKTsKKyAgICAgICAgfQorCisgICAgICAgIHQuc2V0SUQoY2Fub25JRC50b1N0cmluZygpKTsKKyAgICAgICAgaWYgKGdsb2JhbEZpbHRlclswXSAhPSBudWxsKSB7CisgICAgICAgICAgICB0LnNldEZpbHRlcihnbG9iYWxGaWx0ZXJbMF0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHRyYW5zbGl0ZXJhdG9yIGZyb20gYSBiYXNpYyBJRC4gIFRoaXMgaXMgYW4gSUQKKyAgICAgKiBjb250YWluaW5nIG9ubHkgdGhlIGZvcndhcmQgZGlyZWN0aW9uIHNvdXJjZSwgdGFyZ2V0LCBhbmQKKyAgICAgKiB2YXJpYW50LgorICAgICAqIEBwYXJhbSBpZCBhIGJhc2ljIElEIG9mIHRoZSBmb3JtIFMtVCBvciBTLVQvVi4KKyAgICAgKiBAcGFyYW0gY2Fub25JRCBjYW5vbmljYWwgSUQgdG8gYXBwbHkgdG8gdGhlIHJlc3VsdCwgb3IKKyAgICAgKiBudWxsIHRvIGxlYXZlIHRoZSBJRCB1bmNoYW5nZWQKKyAgICAgKiBAcmV0dXJuIGEgbmV3bHkgY3JlYXRlZCBUcmFuc2xpdGVyYXRvciBvciBudWxsIGlmIHRoZSBJRCBpcworICAgICAqIGludmFsaWQuCisgICAgICovCisgICAgc3RhdGljIFRyYW5zbGl0ZXJhdG9yIGdldEJhc2ljSW5zdGFuY2UoU3RyaW5nIGlkLCBTdHJpbmcgY2Fub25JRCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IgdCA9IHJlZ2lzdHJ5LmdldChpZCwgcyk7CisgICAgICAgIGlmIChzLmxlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIC8vIGFzc2VydCh0PT0wKTsKKyAgICAgICAgICAgIC8vIEluc3RhbnRpYXRlIGFuIGFsaWFzCisgICAgICAgICAgICB0ID0gZ2V0SW5zdGFuY2Uocy50b1N0cmluZygpLCBGT1JXQVJEKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodCAhPSBudWxsICYmIGNhbm9uSUQgIT0gbnVsbCkgeworICAgICAgICAgICAgdC5zZXRJRChjYW5vbklEKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IG9iamVjdCBjb25zdHJ1Y3RlZCBmcm9tCisgICAgICogdGhlIGdpdmVuIHJ1bGUgc3RyaW5nLiAgVGhpcyB3aWxsIGJlIGEgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IsCisgICAgICogaWYgdGhlIHJ1bGUgc3RyaW5nIGNvbnRhaW5zIG9ubHkgcnVsZXMsIG9yIGEKKyAgICAgKiBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yLCBpZiBpdCBjb250YWlucyBJRCBibG9ja3MsIG9yIGEKKyAgICAgKiBOdWxsVHJhbnNsaXRlcmF0b3IsIGlmIGl0IGNvbnRhaW5zIElEIGJsb2NrcyB3aGljaCBwYXJzZSBhcworICAgICAqIGVtcHR5IGZvciB0aGUgZ2l2ZW4gZGlyZWN0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgY3JlYXRlRnJvbVJ1bGVzKFN0cmluZyBJRCwgU3RyaW5nIHJ1bGVzLCBpbnQgZGlyKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBudWxsOworCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yUGFyc2VyIHBhcnNlciA9IG5ldyBUcmFuc2xpdGVyYXRvclBhcnNlcigpOworICAgICAgICBwYXJzZXIucGFyc2UocnVsZXMsIGRpcik7CisKKyAgICAgICAgLy8gTk9URTogVGhlIGxvZ2ljIGhlcmUgbWF0Y2hlcyB0aGF0IGluIFRyYW5zbGl0ZXJhdG9yUmVnaXN0cnkuCisgICAgICAgIGlmIChwYXJzZXIuaWRCbG9ja1ZlY3Rvci5zaXplKCkgPT0gMCAmJiBwYXJzZXIuZGF0YVZlY3Rvci5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgdCA9IG5ldyBOdWxsVHJhbnNsaXRlcmF0b3IoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChwYXJzZXIuaWRCbG9ja1ZlY3Rvci5zaXplKCkgPT0gMCAmJiBwYXJzZXIuZGF0YVZlY3Rvci5zaXplKCkgPT0gMSkgeworICAgICAgICAgICAgdCA9IG5ldyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcihJRCwgKFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEpcGFyc2VyLmRhdGFWZWN0b3IuZ2V0KDApLCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChwYXJzZXIuaWRCbG9ja1ZlY3Rvci5zaXplKCkgPT0gMSAmJiBwYXJzZXIuZGF0YVZlY3Rvci5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgLy8gaWRCbG9jaywgbm8gZGF0YSAtLSB0aGlzIGlzIGFuIGFsaWFzLiAgVGhlIElEIGhhcworICAgICAgICAgICAgLy8gYmVlbiBtdW5nZWQgZnJvbSByZXZlcnNlIGludG8gZm9yd2FyZCBtb2RlLCBpZgorICAgICAgICAgICAgLy8gbmVjZXNzYXJ5LCBzbyBpbnN0YW50aWF0ZSB0aGUgSUQgaW4gdGhlIGZvcndhcmQKKyAgICAgICAgICAgIC8vIGRpcmVjdGlvbi4KKyAgICAgICAgICAgIGlmIChwYXJzZXIuY29tcG91bmRGaWx0ZXIgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICB0ID0gZ2V0SW5zdGFuY2UocGFyc2VyLmNvbXBvdW5kRmlsdGVyLnRvUGF0dGVybihmYWxzZSkgKyAiOyIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgKFN0cmluZylwYXJzZXIuaWRCbG9ja1ZlY3Rvci5nZXQoMCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHQgPSBnZXRJbnN0YW5jZSgoU3RyaW5nKXBhcnNlci5pZEJsb2NrVmVjdG9yLmdldCgwKSk7CisKKworICAgICAgICAgICAgaWYgKHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHQuc2V0SUQoSUQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgVmVjdG9yIHRyYW5zbGl0ZXJhdG9ycyA9IG5ldyBWZWN0b3IoKTsKKyAgICAgICAgICAgIGludCBwYXNzTnVtYmVyID0gMTsKKworICAgICAgICAgICAgaW50IGxpbWl0ID0gTWF0aC5tYXgocGFyc2VyLmlkQmxvY2tWZWN0b3Iuc2l6ZSgpLCBwYXJzZXIuZGF0YVZlY3Rvci5zaXplKCkpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaW1pdDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPCBwYXJzZXIuaWRCbG9ja1ZlY3Rvci5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGlkQmxvY2sgPSAoU3RyaW5nKXBhcnNlci5pZEJsb2NrVmVjdG9yLmdldChpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlkQmxvY2subGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ZW1wID0gZ2V0SW5zdGFuY2UoaWRCbG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISh0ZW1wIGluc3RhbmNlb2YgTnVsbFRyYW5zbGl0ZXJhdG9yKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xpdGVyYXRvcnMuYWRkKGdldEluc3RhbmNlKGlkQmxvY2spKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaSA8IHBhcnNlci5kYXRhVmVjdG9yLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGEgPSAoUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSlwYXJzZXIuZGF0YVZlY3Rvci5nZXQoaSk7CisgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0ZXJhdG9ycy5hZGQobmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKCIlUGFzcyIgKyBwYXNzTnVtYmVyKyssIGRhdGEsIG51bGwpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHQgPSBuZXcgQ29tcG91bmRUcmFuc2xpdGVyYXRvcih0cmFuc2xpdGVyYXRvcnMsIHBhc3NOdW1iZXIgLSAxKTsKKyAgICAgICAgICAgIHQuc2V0SUQoSUQpOworICAgICAgICAgICAgaWYgKHBhcnNlci5jb21wb3VuZEZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdC5zZXRGaWx0ZXIocGFyc2VyLmNvbXBvdW5kRmlsdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBydWxlIHN0cmluZyBmb3IgdGhpcyB0cmFuc2xpdGVyYXRvci4KKyAgICAgKiBAcGFyYW0gZXNjYXBlVW5wcmludGFibGUgaWYgdHJ1ZSwgdGhlbiB1bnByaW50YWJsZSBjaGFyYWN0ZXJzCisgICAgICogd2lsbCBiZSBjb252ZXJ0ZWQgdG8gZXNjYXBlIGZvcm0gYmFja3NsYXNoLSd1JyBvcgorICAgICAqIGJhY2tzbGFzaC0nVScuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1J1bGVzKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgcmV0dXJuIGJhc2VUb1J1bGVzKGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcnVsZSBzdHJpbmcgZm9yIHRoaXMgdHJhbnNsaXRlcmF0b3IuICBUaGlzIGlzCisgICAgICogYSBub24tb3ZlcnJpZGVhYmxlIGJhc2UgY2xhc3MgaW1wbGVtZW50YXRpb24gdGhhdCBzdWJjbGFzc2VzCisgICAgICogbWF5IGNhbGwuICBJdCBzaW1wbHkgbXVuZ2VzIHRoZSBJRCBpbnRvIHRoZSBjb3JyZWN0IGZvcm1hdCwKKyAgICAgKiB0aGF0IGlzLCAiZm9vIiA9PiAiOjpmb28iLgorICAgICAqIEBwYXJhbSBlc2NhcGVVbnByaW50YWJsZSBpZiB0cnVlLCB0aGVuIHVucHJpbnRhYmxlIGNoYXJhY3RlcnMKKyAgICAgKiB3aWxsIGJlIGNvbnZlcnRlZCB0byBlc2NhcGUgZm9ybSBiYWNrc2xhc2gtJ3UnIG9yCisgICAgICogYmFja3NsYXNoLSdVJy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIGJhc2VUb1J1bGVzKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgLy8gVGhlIGJhc2UgY2xhc3MgaW1wbGVtZW50YXRpb24gb2YgdG9SdWxlcyBtdW5nZXMgdGhlIElEIGludG8KKyAgICAgICAgLy8gdGhlIGNvcnJlY3QgZm9ybWF0LiAgVGhhdCBpczogZm9vID0+IDo6Zm9vCisgICAgICAgIC8vIEtFRVAgaW4gc3luYyB3aXRoIHJidF9wYXJzCisgICAgICAgIGlmIChlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHJ1bGVzU291cmNlID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgU3RyaW5nIGlkID0gZ2V0SUQoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxpZC5sZW5ndGgoKTspIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdChpZCwgaSk7CisgICAgICAgICAgICAgICAgaWYgKCFVdGlsaXR5LmVzY2FwZVVucHJpbnRhYmxlKHJ1bGVzU291cmNlLCBjKSkgeworICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQocnVsZXNTb3VyY2UsIGMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJ1bGVzU291cmNlLmluc2VydCgwLCAiOjoiKTsKKyAgICAgICAgICAgIHJ1bGVzU291cmNlLmFwcGVuZChJRF9ERUxJTSk7CisgICAgICAgICAgICByZXR1cm4gcnVsZXNTb3VyY2UudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gIjo6IiArIGdldElEKCkgKyBJRF9ERUxJTTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGVsZW1lbnRzIHRoYXQgbWFrZSB1cCB0aGlzIHRyYW5zbGl0ZXJhdG9yLiAgRm9yCisgICAgICogZXhhbXBsZSwgaWYgdGhlIHRyYW5zbGl0ZXJhdG9yICJORkQ7SmFtby1MYXRpbjtMYXRpbi1HcmVlayIKKyAgICAgKiB3ZXJlIGNyZWF0ZWQsIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcyBtZXRob2Qgd291bGQgYmUgYW4gYXJyYXkKKyAgICAgKiBvZiB0aGUgdGhyZWUgdHJhbnNsaXRlcmF0b3Igb2JqZWN0cyB0aGF0IG1ha2UgdXAgdGhhdAorICAgICAqIHRyYW5zbGl0ZXJhdG9yOiBbTkZELCBKYW1vLUxhdGluLCBMYXRpbi1HcmVla10uCisgICAgICoKKyAgICAgKiA8cD5JZiB0aGlzIHRyYW5zbGl0ZXJhdG9yIGlzIG5vdCBjb21wb3NlZCBvZiBvdGhlcgorICAgICAqIHRyYW5zbGl0ZXJhdG9ycywgdGhlbiB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBhbiBhcnJheSBvZgorICAgICAqIGxlbmd0aCBvbmUgY29udGFpbmluZyBhIHJlZmVyZW5jZSB0byB0aGlzIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gYW4gYXJyYXkgb2Ygb25lIG9yIG1vcmUgdHJhbnNsaXRlcmF0b3JzIHRoYXQgbWFrZSB1cAorICAgICAqIHRoaXMgdHJhbnNsaXRlcmF0b3IKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvcltdIGdldEVsZW1lbnRzKCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciByZXN1bHRbXTsKKyAgICAgICAgaWYgKHRoaXMgaW5zdGFuY2VvZiBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKSB7CisgICAgICAgICAgICBDb21wb3VuZFRyYW5zbGl0ZXJhdG9yIGNwZCA9IChDb21wb3VuZFRyYW5zbGl0ZXJhdG9yKSB0aGlzOworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFRyYW5zbGl0ZXJhdG9yW2NwZC5nZXRDb3VudCgpXTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxyZXN1bHQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICByZXN1bHRbaV0gPSBjcGQuZ2V0VHJhbnNsaXRlcmF0b3IoaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgVHJhbnNsaXRlcmF0b3JbXSB7IHRoaXMgfTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBtb2RpZmllZCBpbiB0aGUKKyAgICAgKiBpbnB1dCB0ZXh0IGJ5IHRoaXMgVHJhbnNsaXRlcmF0b3IuICBUaGlzIGluY29ycG9yYXRlcyB0aGlzCisgICAgICogb2JqZWN0J3MgY3VycmVudCBmaWx0ZXI7IGlmIHRoZSBmaWx0ZXIgaXMgY2hhbmdlZCwgdGhlIHJldHVybgorICAgICAqIHZhbHVlIG9mIHRoaXMgZnVuY3Rpb24gd2lsbCBjaGFuZ2UuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbgorICAgICAqIHJldHVybnMgYW4gZW1wdHkgc2V0LiAgU29tZSBzdWJjbGFzc2VzIG1heSBvdmVycmlkZSB7QGxpbmsKKyAgICAgKiAjaGFuZGxlR2V0U291cmNlU2V0fSB0byByZXR1cm4gYSBtb3JlIHByZWNpc2UgcmVzdWx0LiAgVGhlCisgICAgICogcmV0dXJuIHJlc3VsdCBpcyBhcHByb3hpbWF0ZSBpbiBhbnkgY2FzZSBhbmQgaXMgaW50ZW5kZWQgZm9yCisgICAgICogdXNlIGJ5IHRlc3RzLCB0b29scywgb3IgdXRpbGl0aWVzLgorICAgICAqIEBzZWUgI2dldFRhcmdldFNldAorICAgICAqIEBzZWUgI2hhbmRsZUdldFNvdXJjZVNldAorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGdldFNvdXJjZVNldCgpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBoYW5kbGVHZXRTb3VyY2VTZXQoKTsKKyAgICAgICAgaWYgKGZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICBVbmljb2RlU2V0IGZpbHRlclNldDsKKyAgICAgICAgICAgIC8vIE1vc3QsIGJ1dCBub3QgYWxsIGZpbHRlcnMgd2lsbCBiZSBVbmljb2RlU2V0cy4gIE9wdGltaXplIGZvcgorICAgICAgICAgICAgLy8gdGhlIGhpZ2gtcnVubmVyIGNhc2UuCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZpbHRlclNldCA9IChVbmljb2RlU2V0KSBmaWx0ZXI7CisgICAgICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGZpbHRlclNldCA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICAgICAgZmlsdGVyLmFkZE1hdGNoU2V0VG8oZmlsdGVyU2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNldC5yZXRhaW5BbGwoZmlsdGVyU2V0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2V0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEZyYW1ld29yayBtZXRob2QgdGhhdCByZXR1cm5zIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdAorICAgICAqIG1heSBiZSBtb2RpZmllZCBpbiB0aGUgaW5wdXQgdGV4dCBieSB0aGlzIFRyYW5zbGl0ZXJhdG9yLAorICAgICAqIGlnbm9yaW5nIHRoZSBlZmZlY3Qgb2YgdGhpcyBvYmplY3QncyBmaWx0ZXIuICBUaGUgYmFzZSBjbGFzcworICAgICAqIGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIGVtcHR5IHNldC4gIFN1YmNsYXNzZXMgdGhhdCB3aXNoIHRvCisgICAgICogaW1wbGVtZW50IHRoaXMgc2hvdWxkIG92ZXJyaWRlIHRoaXMgbWV0aG9kLgorICAgICAqIEByZXR1cm4gdGhlIHNldCBvZiBjaGFyYWN0ZXJzIHRoYXQgdGhpcyB0cmFuc2xpdGVyYXRvciBtYXkKKyAgICAgKiBtb2RpZnkuICBUaGUgc2V0IG1heSBiZSBtb2RpZmllZCwgc28gc3ViY2xhc3NlcyBzaG91bGQgcmV0dXJuIGEKKyAgICAgKiBuZXdseS1jcmVhdGVkIG9iamVjdC4KKyAgICAgKiBAc2VlICNnZXRTb3VyY2VTZXQKKyAgICAgKiBAc2VlICNnZXRUYXJnZXRTZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVW5pY29kZVNldCBoYW5kbGVHZXRTb3VyY2VTZXQoKSB7CisgICAgICAgIHJldHVybiBuZXcgVW5pY29kZVNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBiZSBnZW5lcmF0ZWQgYXMKKyAgICAgKiByZXBsYWNlbWVudCB0ZXh0IGJ5IHRoaXMgdHJhbnNsaXRlcmF0b3IuICBUaGUgZGVmYXVsdAorICAgICAqIGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhlIGVtcHR5IHNldC4gIFNvbWUgc3ViY2xhc3NlcyBtYXkKKyAgICAgKiBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byByZXR1cm4gYSBtb3JlIHByZWNpc2UgcmVzdWx0LiAgVGhlCisgICAgICogcmV0dXJuIHJlc3VsdCBpcyBhcHByb3hpbWF0ZSBpbiBhbnkgY2FzZSBhbmQgaXMgaW50ZW5kZWQgZm9yCisgICAgICogdXNlIGJ5IHRlc3RzLCB0b29scywgb3IgdXRpbGl0aWVzIHJlcXVpcmluZyBzdWNoCisgICAgICogbWV0YS1pbmZvcm1hdGlvbi4KKyAgICAgKiBAc2VlICNnZXRUYXJnZXRTZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBnZXRUYXJnZXRTZXQoKSB7CisgICAgICAgIHJldHVybiBuZXcgVW5pY29kZVNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyB0cmFuc2xpdGVyYXRvcidzIGludmVyc2UuICBTZWUgdGhlIGNsYXNzCisgICAgICogZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4gIFRoaXMgaW1wbGVtZW50YXRpb24gc2ltcGx5IGludmVydHMKKyAgICAgKiB0aGUgdHdvIGVudGl0aWVzIGluIHRoZSBJRCBhbmQgYXR0ZW1wdHMgdG8gcmV0cmlldmUgdGhlCisgICAgICogcmVzdWx0aW5nIHRyYW5zbGl0ZXJhdG9yLiAgVGhhdCBpcywgaWYgPGNvZGU+Z2V0SUQoKTwvY29kZT4KKyAgICAgKiByZXR1cm5zICJBLUIiLCB0aGVuIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIHRoZSByZXN1bHQgb2YKKyAgICAgKiA8Y29kZT5nZXRJbnN0YW5jZSgiQi1BIik8L2NvZGU+LCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGF0CisgICAgICogY2FsbCBmYWlscy4KKyAgICAgKgorICAgICAqIDxwPlN1YmNsYXNzZXMgd2l0aCBrbm93bGVkZ2Ugb2YgdGhlaXIgaW52ZXJzZSBtYXkgd2lzaCB0bworICAgICAqIG92ZXJyaWRlIHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICogQHJldHVybiBhIHRyYW5zbGl0ZXJhdG9yIHRoYXQgaXMgYW4gaW52ZXJzZSwgbm90IG5lY2Vzc2FyaWx5CisgICAgICogZXhhY3QsIG9mIHRoaXMgdHJhbnNsaXRlcmF0b3IsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIG5vIHN1Y2gKKyAgICAgKiB0cmFuc2xpdGVyYXRvciBpcyByZWdpc3RlcmVkLgorICAgICAqIEBzZWUgI3JlZ2lzdGVyQ2xhc3MKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVHJhbnNsaXRlcmF0b3IgZ2V0SW52ZXJzZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKElELCBSRVZFUlNFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgYSBzdWJjbGFzcyBvZiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4gd2l0aCB0aGUKKyAgICAgKiBzeXN0ZW0uICBUaGlzIHN1YmNsYXNzIG11c3QgaGF2ZSBhIHB1YmxpYyBjb25zdHJ1Y3RvciB0YWtpbmcgbm8KKyAgICAgKiBhcmd1bWVudHMuICBXaGVuIHRoYXQgY29uc3RydWN0b3IgaXMgY2FsbGVkLCB0aGUgcmVzdWx0aW5nCisgICAgICogb2JqZWN0IG11c3QgcmV0dXJuIHRoZSA8Y29kZT5JRDwvY29kZT4gcGFzc2VkIHRvIHRoaXMgbWV0aG9kIGlmCisgICAgICogaXRzIDxjb2RlPmdldElEKCk8L2NvZGU+IG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gSUQgdGhlIHJlc3VsdCBvZiA8Y29kZT5nZXRJRCgpPC9jb2RlPiBmb3IgdGhpcworICAgICAqIHRyYW5zbGl0ZXJhdG9yCisgICAgICogQHBhcmFtIHRyYW5zQ2xhc3MgYSBzdWJjbGFzcyBvZiA8Y29kZT5UcmFuc2xpdGVyYXRvcjwvY29kZT4KKyAgICAgKiBAc2VlICN1bnJlZ2lzdGVyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQ2xhc3MoU3RyaW5nIElELCBDbGFzcyB0cmFuc0NsYXNzLCBTdHJpbmcgZGlzcGxheU5hbWUpIHsKKyAgICAgICAgcmVnaXN0cnkucHV0KElELCB0cmFuc0NsYXNzLCB0cnVlKTsKKyAgICAgICAgaWYgKGRpc3BsYXlOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIGRpc3BsYXlOYW1lQ2FjaGUucHV0KG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoSUQpLCBkaXNwbGF5TmFtZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIGZhY3Rvcnkgb2JqZWN0IHdpdGggdGhlIGdpdmVuIElELiAgVGhlIGZhY3RvcnkKKyAgICAgKiBtZXRob2Qgc2hvdWxkIHJldHVybiBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgZ2l2ZW4gdHJhbnNsaXRlcmF0b3IuCisgICAgICogQHBhcmFtIElEIHRoZSBJRCBvZiB0aGlzIHRyYW5zbGl0ZXJhdG9yCisgICAgICogQHBhcmFtIGZhY3RvcnkgdGhlIGZhY3Rvcnkgb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyRmFjdG9yeShTdHJpbmcgSUQsIEZhY3RvcnkgZmFjdG9yeSkgeworICAgICAgICByZWdpc3RyeS5wdXQoSUQsIGZhY3RvcnksIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGEgVHJhbnNsaXRlcmF0b3Igb2JqZWN0IHdpdGggdGhlIGdpdmVuIElELgorICAgICAqIEBwYXJhbSB0cmFucyB0aGUgVHJhbnNsaXRlcmF0b3Igb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVySW5zdGFuY2UoVHJhbnNsaXRlcmF0b3IgdHJhbnMpIHsKKyAgICAgICAgcmVnaXN0cnkucHV0KHRyYW5zLmdldElEKCksIHRyYW5zLCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIFRyYW5zbGl0ZXJhdG9yIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBJRC4KKyAgICAgKiBAcGFyYW0gSUQgdGhlIElEIG9mIHRoaXMgdHJhbnNsaXRlcmF0b3IKKyAgICAgKiBAcGFyYW0gdHJhbnMgdGhlIFRyYW5zbGl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVySW5zdGFuY2UoVHJhbnNsaXRlcmF0b3IgdHJhbnMsIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICByZWdpc3RyeS5wdXQodHJhbnMuZ2V0SUQoKSwgdHJhbnMsIHZpc2libGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGFuIElEIGFzIGFuIGFsaWFzIG9mIGFub3RoZXIgSUQuICBJbnN0YW50aWF0aW5nCisgICAgICogYWxpYXMgSUQgcHJvZHVjZXMgdGhlIHNhbWUgcmVzdWx0IGFzIGluc3RhbnRpYXRpbmcgdGhlIG9yaWdpbmFsIElELgorICAgICAqIFRoaXMgaXMgZ2VuZXJhbGx5IHVzZWQgdG8gY3JlYXRlIHNob3J0IGFsaWFzZXMgb2YgY29tcG91bmQgSURzLgorICAgICAqIEBwYXJhbSBhbGlhc0lEIFRoZSBuZXcgSUQgYmVpbmcgcmVnaXN0ZXJlZC4KKyAgICAgKiBAcGFyYW0gcmVhbElEIFRoZSBleGlzdGluZyBJRCB0aGF0IHRoZSBuZXcgSUQgc2hvdWxkIGJlIGFuIGFsaWFzIG9mLgorICAgICAqIEBkcmFmdCBJQ1UgMy40LjEKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJBbGlhcyhTdHJpbmcgYWxpYXNJRCwgU3RyaW5nIHJlYWxJRCkgeworICAgICAgICByZWdpc3RyeS5wdXQoYWxpYXNJRCwgcmVhbElELCB0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciB0d28gdGFyZ2V0cyBhcyBiZWluZyBpbnZlcnNlcyBvZiBvbmUgYW5vdGhlci4gIEZvcgorICAgICAqIGV4YW1wbGUsIGNhbGxpbmcgcmVnaXN0ZXJTcGVjaWFsSW52ZXJzZSgiTkZDIiwgIk5GRCIsIHRydWUpIGNhdXNlcworICAgICAqIFRyYW5zbGl0ZXJhdG9yIHRvIGZvcm0gdGhlIGZvbGxvd2luZyBpbnZlcnNlIHJlbGF0aW9uc2hpcHM6CisgICAgICoKKyAgICAgKiA8cHJlPk5GQyA9PiBORkQKKyAgICAgKiBBbnktTkZDID0+IEFueS1ORkQKKyAgICAgKiBORkQgPT4gTkZDCisgICAgICogQW55LU5GRCA9PiBBbnktTkZDPC9wcmU+CisgICAgICoKKyAgICAgKiAoV2l0aG91dCB0aGUgc3BlY2lhbCBpbnZlcnNlIHJlZ2lzdHJhdGlvbiwgdGhlIGludmVyc2Ugb2YgTkZDCisgICAgICogd291bGQgYmUgTkZDLUFueS4pICBOb3RlIHRoYXQgTkZEIGlzIHNob3J0aGFuZCBmb3IgQW55LU5GRCwgYnV0CisgICAgICogdGhhdCB0aGUgcHJlc2VuY2Ugb3IgYWJzZW5jZSBvZiAiQW55LSIgaXMgcHJlc2VydmVkLgorICAgICAqCisgICAgICogPHA+VGhlIHJlbGF0aW9uc2hpcCBpcyBzeW1tZXRyaWNhbDsgcmVnaXN0ZXJpbmcgKGEsIGIpIGlzCisgICAgICogZXF1aXZhbGVudCB0byByZWdpc3RlcmluZyAoYiwgYSkuCisgICAgICoKKyAgICAgKiA8cD5UaGUgcmVsZXZhbnQgSURzIG11c3Qgc3RpbGwgYmUgcmVnaXN0ZXJlZCBzZXBhcmF0ZWx5IGFzCisgICAgICogZmFjdG9yaWVzIG9yIGNsYXNzZXMuCisgICAgICoKKyAgICAgKiA8cD5Pbmx5IHRoZSB0YXJnZXRzIGFyZSBzcGVjaWZpZWQuICBTcGVjaWFsIGludmVyc2VzIGFsd2F5cworICAgICAqIGhhdmUgdGhlIGZvcm0gQW55LVRhcmdldDEgPD0+IEFueS1UYXJnZXQyLiAgVGhlIHRhcmdldCBzaG91bGQKKyAgICAgKiBoYXZlIGNhbm9uaWNhbCBjYXNpbmcgKHRoZSBjYXNpbmcgZGVzaXJlZCB0byBiZSBwcm9kdWNlZCB3aGVuCisgICAgICogYW4gaW52ZXJzZSBpcyBmb3JtZWQpIGFuZCBzaG91bGQgY29udGFpbiBubyB3aGl0ZXNwYWNlIG9yIG90aGVyCisgICAgICogZXh0cmFuZW91cyBjaGFyYWN0ZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IGFnYWluc3Qgd2hpY2ggdG8gcmVnaXN0ZXIgdGhlIGludmVyc2UKKyAgICAgKiBAcGFyYW0gaW52ZXJzZVRhcmdldCB0aGUgaW52ZXJzZSBvZiB0YXJnZXQsIHRoYXQgaXMKKyAgICAgKiBBbnktdGFyZ2V0LmdldEludmVyc2UoKSA9PiBBbnktaW52ZXJzZVRhcmdldAorICAgICAqIEBwYXJhbSBiaWRpcmVjdGlvbmFsIGlmIHRydWUsIHJlZ2lzdGVyIHRoZSByZXZlcnNlIHJlbGF0aW9uCisgICAgICogYXMgd2VsbCwgdGhhdCBpcywgQW55LWludmVyc2VUYXJnZXQuZ2V0SW52ZXJzZSgpID0+IEFueS10YXJnZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCByZWdpc3RlclNwZWNpYWxJbnZlcnNlKFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaW52ZXJzZVRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gYmlkaXJlY3Rpb25hbCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLnJlZ2lzdGVyU3BlY2lhbEludmVyc2UodGFyZ2V0LCBpbnZlcnNlVGFyZ2V0LCBiaWRpcmVjdGlvbmFsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVycyBhIHRyYW5zbGl0ZXJhdG9yIG9yIGNsYXNzLiAgVGhpcyBtYXkgYmUgZWl0aGVyCisgICAgICogYSBzeXN0ZW0gdHJhbnNsaXRlcmF0b3Igb3IgYSB1c2VyIHRyYW5zbGl0ZXJhdG9yIG9yIGNsYXNzLgorICAgICAqCisgICAgICogQHBhcmFtIElEIHRoZSBJRCBvZiB0aGUgdHJhbnNsaXRlcmF0b3Igb3IgY2xhc3MKKyAgICAgKiBAc2VlICNyZWdpc3RlckNsYXNzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHVucmVnaXN0ZXIoU3RyaW5nIElEKSB7CisgICAgICAgIGRpc3BsYXlOYW1lQ2FjaGUucmVtb3ZlKG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoSUQpKTsKKyAgICAgICAgcmVnaXN0cnkucmVtb3ZlKElEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGVudW1lcmF0aW9uIG92ZXIgdGhlIHByb2dyYW1tYXRpYyBuYW1lcyBvZiByZWdpc3RlcmVkCisgICAgICogPGNvZGU+VHJhbnNsaXRlcmF0b3I8L2NvZGU+IG9iamVjdHMuICBUaGlzIGluY2x1ZGVzIGJvdGggc3lzdGVtCisgICAgICogdHJhbnNsaXRlcmF0b3JzIGFuZCB1c2VyIHRyYW5zbGl0ZXJhdG9ycyByZWdpc3RlcmVkIHVzaW5nCisgICAgICogPGNvZGU+cmVnaXN0ZXJDbGFzcygpPC9jb2RlPi4gIFRoZSBlbnVtZXJhdGVkIG5hbWVzIG1heSBiZQorICAgICAqIHBhc3NlZCB0byA8Y29kZT5nZXRJbnN0YW5jZSgpPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gQW4gPGNvZGU+RW51bWVyYXRpb248L2NvZGU+IG92ZXIgPGNvZGU+U3RyaW5nPC9jb2RlPiBvYmplY3RzCisgICAgICogQHNlZSAjZ2V0SW5zdGFuY2UKKyAgICAgKiBAc2VlICNyZWdpc3RlckNsYXNzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBFbnVtZXJhdGlvbiBnZXRBdmFpbGFibGVJRHMoKSB7CisgICAgICAgIHJldHVybiByZWdpc3RyeS5nZXRBdmFpbGFibGVJRHMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGVudW1lcmF0aW9uIG92ZXIgdGhlIHNvdXJjZSBuYW1lcyBvZiByZWdpc3RlcmVkCisgICAgICogdHJhbnNsaXRlcmF0b3JzLiAgU291cmNlIG5hbWVzIG1heSBiZSBwYXNzZWQgdG8KKyAgICAgKiBnZXRBdmFpbGFibGVUYXJnZXRzKCkgdG8gb2J0YWluIGF2YWlsYWJsZSB0YXJnZXRzIGZvciBlYWNoCisgICAgICogc291cmNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlU291cmNlcygpIHsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmdldEF2YWlsYWJsZVNvdXJjZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGVudW1lcmF0aW9uIG92ZXIgdGhlIHRhcmdldCBuYW1lcyBvZiByZWdpc3RlcmVkCisgICAgICogdHJhbnNsaXRlcmF0b3JzIGhhdmluZyBhIGdpdmVuIHNvdXJjZSBuYW1lLiAgVGFyZ2V0IG5hbWVzIG1heQorICAgICAqIGJlIHBhc3NlZCB0byBnZXRBdmFpbGFibGVWYXJpYW50cygpIHRvIG9idGFpbiBhdmFpbGFibGUKKyAgICAgKiB2YXJpYW50cyBmb3IgZWFjaCBzb3VyY2UgYW5kIHRhcmdldCBwYWlyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlVGFyZ2V0cyhTdHJpbmcgc291cmNlKSB7CisgICAgICAgIHJldHVybiByZWdpc3RyeS5nZXRBdmFpbGFibGVUYXJnZXRzKHNvdXJjZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBlbnVtZXJhdGlvbiBvdmVyIHRoZSB2YXJpYW50IG5hbWVzIG9mIHJlZ2lzdGVyZWQKKyAgICAgKiB0cmFuc2xpdGVyYXRvcnMgaGF2aW5nIGEgZ2l2ZW4gc291cmNlIG5hbWUgYW5kIHRhcmdldCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlVmFyaWFudHMoU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQpIHsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5LmdldEF2YWlsYWJsZVZhcmlhbnRzKHNvdXJjZSwgdGFyZ2V0KTsKKyAgICB9CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIElOREVYID0gImluZGV4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkJfUlVMRV9CQVNFRF9JRFMgPSJSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcklEcyI7CisgICAgc3RhdGljIHsKKyAgICAgICAgcmVnaXN0cnkgPSBuZXcgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSgpOworCisgICAgICAgIC8vIFRoZSBkaXNwbGF5IG5hbWUgY2FjaGUgc3RhcnRzIG91dCBlbXB0eQorICAgICAgICBkaXNwbGF5TmFtZUNhY2hlID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAvKiBUaGUgZm9sbG93aW5nIGNvZGUgcGFyc2VzIHRoZSBpbmRleCB0YWJsZSBsb2NhdGVkIGluCisgICAgICAgICAqIGljdS9kYXRhL3RyYW5zbGl0L3Jvb3QudHh0LiAgVGhlIGluZGV4IGlzIGFuIG4geCA0IHRhYmxlCisgICAgICAgICAqIHRoYXQgZm9sbG93cyB0aGlzIGZvcm1hdDoKKyAgICAgICAgICogIDxpZD57CisgICAgICAgICAqICAgICAgZmlsZXsKKyAgICAgICAgICogICAgICAgICAgcmVzb3VyY2V7IjxyZXNvdXJjZT4ifQorICAgICAgICAgKiAgICAgICAgICBkaXJlY3Rpb257IjxkaXJlY3Rpb24+In0KKyAgICAgICAgICogICAgICB9CisgICAgICAgICAqICB9CisgICAgICAgICAqICA8aWQ+eworICAgICAgICAgKiAgICAgIGludGVybmFseworICAgICAgICAgKiAgICAgICAgICByZXNvdXJjZXsiPHJlc291cmNlPiJ9CisgICAgICAgICAqICAgICAgICAgIGRpcmVjdGlvbnsiPGRpcmVjdGlvbiJ9CisgICAgICAgICAqICAgICAgIH0KKyAgICAgICAgICogIH0KKyAgICAgICAgICogIDxpZD57CisgICAgICAgICAqICAgICAgYWxpYXN7IjxnZXRJbnN0YW5jZUFyZyJ9CisgICAgICAgICAqICB9CisgICAgICAgICAqIDxpZD4gaXMgdGhlIElEIG9mIHRoZSBzeXN0ZW0gdHJhbnNsaXRlcmF0b3IgYmVpbmcgZGVmaW5lZC4gIFRoZXNlCisgICAgICAgICAqIGFyZSBwdWJsaWMgSURzIGVudW1lcmF0ZWQgYnkgVHJhbnNsaXRlcmF0b3IuZ2V0QXZhaWxhYmxlSURzKCksCisgICAgICAgICAqIHVubGVzcyB0aGUgc2Vjb25kIGZpZWxkIGlzICJpbnRlcm5hbCIuCisgICAgICAgICAqIAorICAgICAgICAgKiA8cmVzb3VyY2U+IGlzIGEgUmVzb3VyY2VSZWFkZXIgcmVzb3VyY2UgbmFtZS4gIEN1cnJlbnRseSB0aGVzZSByZWZlcgorICAgICAgICAgKiB0byBmaWxlIG5hbWVzIHVuZGVyIGNvbS9pYm0vdGV4dC9yZXNvdXJjZXMuICBUaGlzIHN0cmluZyBpcyBwYXNzZWQKKyAgICAgICAgICogZGlyZWN0bHkgdG8gUmVzb3VyY2VSZWFkZXIsIHRvZ2V0aGVyIHdpdGggPGVuY29kaW5nPi4KKyAgICAgICAgICogCisgICAgICAgICAqIDxkaXJlY3Rpb24+IGlzIGVpdGhlciAiRk9SV0FSRCIgb3IgIlJFVkVSU0UiLgorICAgICAgICAgKiAKKyAgICAgICAgICogPGdldEluc3RhbmNlQXJnPiBpcyBhIHN0cmluZyB0byBiZSBwYXNzZWQgZGlyZWN0bHkgdG8KKyAgICAgICAgICogVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoKS4gIFRoZSByZXR1cm5lZCBUcmFuc2xpdGVyYXRvciBvYmplY3QKKyAgICAgICAgICogdGhlbiBoYXMgaXRzIElEIGNoYW5nZWQgdG8gPGlkPiBhbmQgaXMgcmV0dXJuZWQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSBleHRyYSBibGFuayBmaWVsZCBvbiAiYWxpYXMiIGxpbmVzIGlzIHRvIG1ha2UgdGhlIGFycmF5IHNxdWFyZS4KKyAgICAgICAgICovCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSwgdHJhbnNJRHMsIGNvbEJ1bmQ7CisgICAgICAgIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX1RSQU5TTElUX0JBU0VfTkFNRSwgSU5ERVgpOworICAgICAgICB0cmFuc0lEcyA9IGJ1bmRsZS5nZXQoUkJfUlVMRV9CQVNFRF9JRFMpOworCisgICAgICAgIGludCByb3csIG1heFJvd3M7CisgICAgICAgIG1heFJvd3MgPSB0cmFuc0lEcy5nZXRTaXplKCk7CisgICAgICAgIGZvciAocm93ID0gMDsgcm93IDwgbWF4Um93czsgcm93KyspIHsKKyAgICAgICAgICAgIGNvbEJ1bmQgPSB0cmFuc0lEcy5nZXQocm93KTsKKyAgICAgICAgICAgIFN0cmluZyBJRCA9IGNvbEJ1bmQuZ2V0S2V5KCk7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByZXMgPSBjb2xCdW5kLmdldCgwKTsKKyAgICAgICAgICAgIFN0cmluZyB0eXBlID0gcmVzLmdldEtleSgpOworICAgICAgICAgICAgaWYgKHR5cGUuZXF1YWxzKCJmaWxlIikgfHwgdHlwZS5lcXVhbHMoImludGVybmFsIikpIHsKKyAgICAgICAgICAgICAgICAvLyBSZXN0IG9mIGxpbmUgaXMgPHJlc291cmNlPjo8ZW5jb2Rpbmc+OjxkaXJlY3Rpb24+CisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgcG9zICAgICAgIGNvbG9uICAgICAgYzIKKyAgICAgICAgICAgICAgICBTdHJpbmcgcmVzU3RyaW5nID0gcmVzLmdldFN0cmluZygicmVzb3VyY2UiKTsKKyAgICAgICAgICAgICAgICBpbnQgZGlyOworICAgICAgICAgICAgICAgIFN0cmluZyBkaXJlY3Rpb24gPSByZXMuZ2V0U3RyaW5nKCJkaXJlY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbi5jaGFyQXQoMCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdGJzoKKyAgICAgICAgICAgICAgICAgICAgZGlyID0gRk9SV0FSRDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUic6CisgICAgICAgICAgICAgICAgICAgIGRpciA9IFJFVkVSU0U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJDYW4ndCBwYXJzZSBkaXJlY3Rpb246ICIgKyBkaXJlY3Rpb24pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZWdpc3RyeS5wdXQoSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc1N0cmluZywgLy8gcmVzb3VyY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVURi0xNiIsIC8vIGVuY29kaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXR5cGUuZXF1YWxzKCJpbnRlcm5hbCIpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZS5lcXVhbHMoImFsaWFzIikpIHsKKyAgICAgICAgICAgICAgICAvLydhbGlhcyc7IHJvd1syXT1jcmVhdGVJbnN0YW5jZSBhcmd1bWVudAorICAgICAgICAgICAgICAgIFN0cmluZyByZXNTdHJpbmcgPSByZXMuZ2V0U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgcmVnaXN0cnkucHV0KElELCByZXNTdHJpbmcsIHRydWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBVbmtub3duIHR5cGUKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiVW5rbm93IHR5cGU6ICIgKyB0eXBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlZ2lzdGVyU3BlY2lhbEludmVyc2UoTnVsbFRyYW5zbGl0ZXJhdG9yLlNIT1JUX0lELCBOdWxsVHJhbnNsaXRlcmF0b3IuU0hPUlRfSUQsIGZhbHNlKTsKKworICAgICAgICAvLyBSZWdpc3RlciBub24tcnVsZS1iYXNlZCB0cmFuc2xpdGVyYXRvcnMKKyAgICAgICAgcmVnaXN0ZXJDbGFzcyhOdWxsVHJhbnNsaXRlcmF0b3IuX0lELAorICAgICAgICAgICAgICAgICAgICAgIE51bGxUcmFuc2xpdGVyYXRvci5jbGFzcywgbnVsbCk7CisgICAgICAgIFJlbW92ZVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIEVzY2FwZVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIFVuZXNjYXBlVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgTG93ZXJjYXNlVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgVXBwZXJjYXNlVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgVGl0bGVjYXNlVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXIoKTsKKyAgICAgICAgVW5pY29kZU5hbWVUcmFuc2xpdGVyYXRvci5yZWdpc3RlcigpOworICAgICAgICBOYW1lVW5pY29kZVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIE5vcm1hbGl6YXRpb25UcmFuc2xpdGVyYXRvci5yZWdpc3RlcigpOworICAgICAgICBCcmVha1RyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7CisgICAgICAgIEFueVRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyKCk7IC8vIGRvIHRoaXMgbGFzdCEKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgZmFjdG9yeSBpbnRlcmZhY2UgZm9yIHRyYW5zbGl0ZXJhdG9ycy4gIFRyYW5zbGl0ZXJhdG9yCisgICAgICogc3ViY2xhc3NlcyBjYW4gcmVnaXN0ZXIgZmFjdG9yeSBvYmplY3RzIGZvciBJRHMgdXNpbmcgdGhlCisgICAgICogcmVnaXN0ZXJGYWN0b3J5KCkgbWV0aG9kIG9mIFRyYW5zbGl0ZXJhdG9yLiAgV2hlbiBpbnZva2VkLCB0aGUKKyAgICAgKiBmYWN0b3J5IG9iamVjdCB3aWxsIGJlIHBhc3NlZCB0aGUgSUQgYmVpbmcgaW5zdGFudGlhdGVkLiAgVGhpcworICAgICAqIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHJlZ2lzdGVyIG9uZSBmYWN0b3J5IG1ldGhvZCB0byBtb3JlIHRoYW4KKyAgICAgKiBvbmUgSUQsIG9yIGZvciBhIGZhY3RvcnkgbWV0aG9kIHRvIHBhcmFtZXRlcml6ZSBpdHMgcmVzdWx0CisgICAgICogYmFzZWQgb24gdGhlIHZhcmlhbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnRlcmZhY2UgRmFjdG9yeSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gYSB0cmFuc2xpdGVyYXRvciBmb3IgdGhlIGdpdmVuIElELgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICAgICovCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRlMjNjZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvcklEUGFyc2VyLmphdmEKQEAgLTAsMCArMSw3NzEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAyMDAyLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24KKyogICBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAxLzE0LzIwMDIgIGFsaXUgICAgICAgIENyZWF0aW9uLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYXNlSW5zZW5zaXRpdmVTdHJpbmc7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEudGV4dC5QYXJzZVBvc2l0aW9uOworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworLyoqCisgKiBQYXJzaW5nIGNvbXBvbmVudCBmb3IgdHJhbnNsaXRlcmF0b3IgSURzLiAgVGhpcyBjbGFzcyBjb250YWlucyBvbmx5CisgKiBzdGF0aWMgbWVtYmVyczsgaXQgY2Fubm90IGJlIGluc3RhbnRpYXRlZC4gIE1ldGhvZHMgaW4gdGhpcyBjbGFzcworICogcGFyc2UgdmFyaW91cyBJRCBmb3JtYXRzLCBpbmNsdWRpbmcgdGhlIGZvbGxvd2luZzoKKyAqCisgKiBBIGJhc2ljIElELCB3aGljaCBjb250YWlucyBzb3VyY2UsIHRhcmdldCwgYW5kIHZhcmlhbnQsIGJ1dCBubworICogZmlsdGVyIGFuZCBubyBleHBsaWNpdCBpbnZlcnNlLiAgRXhhbXBsZXMgaW5jbHVkZQorICogIkxhdGluLUdyZWVrL1VOR0VHTiIgYW5kICJOdWxsIi4KKyAqCisgKiBBIHNpbmdsZSBJRCwgd2hpY2ggaXMgYSBiYXNpYyBJRCBwbHVzIG9wdGlvbmFsIGZpbHRlciBhbmQgb3B0aW9uYWwKKyAqIGV4cGxpY2l0IGludmVyc2UuICBFeGFtcGxlcyBpbmNsdWRlICJbYS16QS1aXSBMYXRpbi1HcmVlayIgYW5kCisgKiAiTG93ZXIgKFVwcGVyKSIuCisgKgorICogQSBjb21wb3VuZCBJRCwgd2hpY2ggaXMgYSBzZXF1ZW5jZSBvZiBvbmUgb3IgbW9yZSBzaW5nbGUgSURzLAorICogc2VwYXJhdGVkIGJ5IHNlbWljb2xvbnMsIHdpdGggb3B0aW9uYWwgZm9yd2FyZCBhbmQgcmV2ZXJzZSBnbG9iYWwKKyAqIGZpbHRlcnMuICBUaGUgZ2xvYmFsIGZpbHRlcnMgYXJlIFVuaWNvZGVTZXQgcGF0dGVybnMgcHJlcGVuZGVkIG9yCisgKiBhcHBlbmRlZCB0byB0aGUgSURzLCBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucy4gIEFuIGFwcGVuZGVkIGZpbHRlcgorICogbXVzdCBiZSBlbmNsb3NlZCBpbiBwYXJlbnRoZXNlcyBhbmQgYXBwbGllcyBpbiB0aGUgcmV2ZXJzZQorICogZGlyZWN0aW9uLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworY2xhc3MgVHJhbnNsaXRlcmF0b3JJRFBhcnNlciB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIElEX0RFTElNID0gJzsnOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBUQVJHRVRfU0VQID0gJy0nOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBWQVJJQU5UX1NFUCA9ICcvJzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgT1BFTl9SRVYgPSAnKCc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENMT1NFX1JFViA9ICcpJzsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBTlkgPSAiQW55IjsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBGT1JXQVJEID0gVHJhbnNsaXRlcmF0b3IuRk9SV0FSRDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBSRVZFUlNFID0gVHJhbnNsaXRlcmF0b3IuUkVWRVJTRTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhhc2h0YWJsZSBTUEVDSUFMX0lOVkVSU0VTID0gbmV3IEhhc2h0YWJsZSgpOworCisgICAgLyoqCisgICAgICogQSBzdHJ1Y3R1cmUgY29udGFpbmluZyB0aGUgcGFyc2VkIGRhdGEgb2YgYSBmaWx0ZXJlZCBJRCwgdGhhdAorICAgICAqIGlzLCBhIGJhc2ljIElEIG9wdGlvbmFsbHkgd2l0aCBhIGZpbHRlci4KKyAgICAgKgorICAgICAqICdzb3VyY2UnIGFuZCAndGFyZ2V0JyB3aWxsIGFsd2F5cyBiZSBub24tbnVsbC4gIFRoZSAndmFyaWFudCcKKyAgICAgKiB3aWxsIGJlIG5vbi1udWxsIG9ubHkgaWYgYSBub24tZW1wdHkgdmFyaWFudCB3YXMgcGFyc2VkLgorICAgICAqCisgICAgICogJ3Nhd1NvdXJjZScgaXMgdHJ1ZSBpZiB0aGVyZSB3YXMgYW4gZXhwbGljaXQgc291cmNlIGluIHRoZQorICAgICAqIHBhcnNlZCBpZC4gIElmIHRoZXJlIHdhcyBubyBleHBsaWNpdCBzb3VyY2UsIHRoZW4gYW4gaW1wbGllZAorICAgICAqIHNvdXJjZSBvZiBBTlkgaXMgcmV0dXJuZWQgYW5kICdzYXdTb3VyY2UnIGlzIHNldCB0byBmYWxzZS4KKyAgICAgKiAKKyAgICAgKiAnZmlsdGVyJyBpcyB0aGUgcGFyc2VkIGZpbHRlciBwYXR0ZXJuLCBvciBudWxsIGlmIHRoZXJlIHdhcyBubworICAgICAqIGZpbHRlci4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBTcGVjcyB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgc291cmNlOyAvLyBub3QgbnVsbAorICAgICAgICBwdWJsaWMgU3RyaW5nIHRhcmdldDsgLy8gbm90IG51bGwKKyAgICAgICAgcHVibGljIFN0cmluZyB2YXJpYW50OyAvLyBtYXkgYmUgbnVsbAorICAgICAgICBwdWJsaWMgU3RyaW5nIGZpbHRlcjsgLy8gbWF5IGJlIG51bGwKKyAgICAgICAgcHVibGljIGJvb2xlYW4gc2F3U291cmNlOworICAgICAgICBTcGVjcyhTdHJpbmcgcywgU3RyaW5nIHQsIFN0cmluZyB2LCBib29sZWFuIHNhd1MsIFN0cmluZyBmKSB7CisgICAgICAgICAgICBzb3VyY2UgPSBzOworICAgICAgICAgICAgdGFyZ2V0ID0gdDsKKyAgICAgICAgICAgIHZhcmlhbnQgPSB2OworICAgICAgICAgICAgc2F3U291cmNlID0gc2F3UzsKKyAgICAgICAgICAgIGZpbHRlciA9IGY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBjYW5vbmljYWxpemVkIGRhdGEgb2YgYSBmaWx0ZXJlZCBJRCwKKyAgICAgKiB0aGF0IGlzLCBhIGJhc2ljIElEIG9wdGlvbmFsbHkgd2l0aCBhIGZpbHRlci4KKyAgICAgKgorICAgICAqICdjYW5vbklEJyBpcyBhbHdheXMgbm9uLW51bGwuICBJdCBtYXkgYmUgdGhlIGVtcHR5IHN0cmluZyAiIi4KKyAgICAgKiBJdCBpcyB0aGUgaWQgdGhhdCBzaG91bGQgYmUgYXNzaWduZWQgdG8gdGhlIGNyZWF0ZWQKKyAgICAgKiB0cmFuc2xpdGVyYXRvci4gIEl0IF9jYW5ub3RfIGJlIGluc3RhbnRpYXRlZCBkaXJlY3RseS4KKyAgICAgKgorICAgICAqICdiYXNpY0lEJyBpcyBhbHdheXMgbm9uLW51bGwgYW5kIG5vbi1lbXB0eS4gIEl0IGlzIGFsd2F5cyBvZgorICAgICAqIHRoZSBmb3JtIFMtVCBvciBTLVQvVi4gIEl0IGlzIGRlc2lnbmVkIHRvIGJlIGZlZCB0byBsb3ctbGV2ZWwKKyAgICAgKiBpbnN0YW50aWF0aW9uIGNvZGUgdGhhdCBvbmx5IHVuZGVyc3RhbmRzIHRoZXNlIHR3byBmb3JtYXRzLgorICAgICAqCisgICAgICogJ2ZpbHRlcicgbWF5IGJlIG51bGwsIGlmIHRoZXJlIGlzIG5vbmUsIG9yIG5vbi1udWxsIGFuZAorICAgICAqIG5vbi1lbXB0eS4KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgU2luZ2xlSUQgeworICAgICAgICBwdWJsaWMgU3RyaW5nIGNhbm9uSUQ7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgYmFzaWNJRDsKKyAgICAgICAgcHVibGljIFN0cmluZyBmaWx0ZXI7CisgICAgICAgIFNpbmdsZUlEKFN0cmluZyBjLCBTdHJpbmcgYiwgU3RyaW5nIGYpIHsKKyAgICAgICAgICAgIGNhbm9uSUQgPSBjOworICAgICAgICAgICAgYmFzaWNJRCA9IGI7CisgICAgICAgICAgICBmaWx0ZXIgPSBmOworICAgICAgICB9CisgICAgICAgIFNpbmdsZUlEKFN0cmluZyBjLCBTdHJpbmcgYikgeworICAgICAgICAgICAgdGhpcyhjLCBiLCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQ7CisgICAgICAgICAgICBpZiAoYmFzaWNJRCA9PSBudWxsIHx8IGJhc2ljSUQubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIHQgPSBUcmFuc2xpdGVyYXRvci5nZXRCYXNpY0luc3RhbmNlKCJBbnktTnVsbCIsIGNhbm9uSUQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ID0gVHJhbnNsaXRlcmF0b3IuZ2V0QmFzaWNJbnN0YW5jZShiYXNpY0lELCBjYW5vbklEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoZmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdC5zZXRGaWx0ZXIobmV3IFVuaWNvZGVTZXQoZmlsdGVyKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGZpbHRlciBJRCwgdGhhdCBpcywgYW4gSUQgb2YgdGhlIGdlbmVyYWwgZm9ybQorICAgICAqICJbZjFdIHMxLXQxL3YxIiwgd2l0aCB0aGUgZmlsdGVycyBvcHRpb25hbCwgYW5kIHRoZSB2YXJpYW50cyBvcHRpb25hbC4KKyAgICAgKiBAcGFyYW0gaWQgdGhlIGlkIHRvIGJlIHBhcnNlZAorICAgICAqIEBwYXJhbSBwb3MgSU5QVVQtT1VUUFVUIHBhcmFtZXRlci4gIE9uIGlucHV0LCB0aGUgcG9zaXRpb24gb2YKKyAgICAgKiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIHBhcnNlLiAgT24gb3V0cHV0LCB0aGUgcG9zaXRpb24gYWZ0ZXIKKyAgICAgKiB0aGUgbGFzdCBjaGFyYWN0ZXIgcGFyc2VkLgorICAgICAqIEByZXR1cm4gYSBTaW5nbGVJRCBvYmplY3Qgb3IgbnVsbCBpZiB0aGUgcGFyc2UgZmFpbHMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFNpbmdsZUlEIHBhcnNlRmlsdGVySUQoU3RyaW5nIGlkLCBpbnRbXSBwb3MpIHsKKworICAgICAgICBpbnQgc3RhcnQgPSBwb3NbMF07CisgICAgICAgIFNwZWNzIHNwZWNzID0gcGFyc2VGaWx0ZXJJRChpZCwgcG9zLCB0cnVlKTsKKyAgICAgICAgaWYgKHNwZWNzID09IG51bGwpIHsKKyAgICAgICAgICAgIHBvc1swXSA9IHN0YXJ0OworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBBc3NlbWJsZSByZXR1cm4gcmVzdWx0cworICAgICAgICBTaW5nbGVJRCBzaW5nbGUgPSBzcGVjc1RvSUQoc3BlY3MsIEZPUldBUkQpOworICAgICAgICBzaW5nbGUuZmlsdGVyID0gc3BlY3MuZmlsdGVyOworICAgICAgICByZXR1cm4gc2luZ2xlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgc2luZ2xlIElELCB0aGF0IGlzLCBhbiBJRCBvZiB0aGUgZ2VuZXJhbCBmb3JtCisgICAgICogIltmMV0gczEtdDEvdjEgKFtmMl0gczItdDMvdjIpIiwgd2l0aCB0aGUgcGFyZW50aGVzaXplZCBlbGVtZW50CisgICAgICogb3B0aW9uYWwsIHRoZSBmaWx0ZXJzIG9wdGlvbmFsLCBhbmQgdGhlIHZhcmlhbnRzIG9wdGlvbmFsLgorICAgICAqIEBwYXJhbSBpZCB0aGUgaWQgdG8gYmUgcGFyc2VkCisgICAgICogQHBhcmFtIHBvcyBJTlBVVC1PVVRQVVQgcGFyYW1ldGVyLiAgT24gaW5wdXQsIHRoZSBwb3NpdGlvbiBvZgorICAgICAqIHRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gcGFyc2UuICBPbiBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhZnRlcgorICAgICAqIHRoZSBsYXN0IGNoYXJhY3RlciBwYXJzZWQuCisgICAgICogQHBhcmFtIGRpciB0aGUgZGlyZWN0aW9uLiAgSWYgdGhlIGRpcmVjdGlvbiBpcyBSRVZFUlNFIHRoZW4gdGhlCisgICAgICogU2luZ2xlSUQgaXMgY29uc3RydWN0ZWQgZm9yIHRoZSByZXZlcnNlIGRpcmVjdGlvbi4KKyAgICAgKiBAcmV0dXJuIGEgU2luZ2xlSUQgb2JqZWN0IG9yIG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFNpbmdsZUlEIHBhcnNlU2luZ2xlSUQoU3RyaW5nIGlkLCBpbnRbXSBwb3MsIGludCBkaXIpIHsKKworICAgICAgICBpbnQgc3RhcnQgPSBwb3NbMF07CisKKyAgICAgICAgLy8gVGhlIElEIHdpbGwgYmUgb2YgdGhlIGZvcm0gQSwgQSgpLCBBKEIpLCBvciAoQiksIHdoZXJlCisgICAgICAgIC8vIEEgYW5kIEIgYXJlIGZpbHRlciBJRHMuCisgICAgICAgIFNwZWNzIHNwZWNzQSA9IG51bGw7CisgICAgICAgIFNwZWNzIHNwZWNzQiA9IG51bGw7CisgICAgICAgIGJvb2xlYW4gc2F3UGFyZW4gPSBmYWxzZTsKKworICAgICAgICAvLyBPbiB0aGUgZmlyc3QgcGFzcywgbG9vayBmb3IgKEIpIG9yICgpLiAgSWYgdGhpcyBmYWlscywgdGhlbgorICAgICAgICAvLyBvbiB0aGUgc2Vjb25kIHBhc3MsIGxvb2sgZm9yIEEsIEEoQiksIG9yIEEoKS4KKyAgICAgICAgZm9yIChpbnQgcGFzcz0xOyBwYXNzPD0yOyArK3Bhc3MpIHsKKyAgICAgICAgICAgIGlmIChwYXNzID09IDIpIHsKKyAgICAgICAgICAgICAgICBzcGVjc0EgPSBwYXJzZUZpbHRlcklEKGlkLCBwb3MsIHRydWUpOworICAgICAgICAgICAgICAgIGlmIChzcGVjc0EgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBwb3NbMF0gPSBzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIE9QRU5fUkVWKSkgeworICAgICAgICAgICAgICAgIHNhd1BhcmVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoIVV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIENMT1NFX1JFVikpIHsKKyAgICAgICAgICAgICAgICAgICAgc3BlY3NCID0gcGFyc2VGaWx0ZXJJRChpZCwgcG9zLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gTXVzdCBjbG9zZSB3aXRoIGEgJyknCisgICAgICAgICAgICAgICAgICAgIGlmIChzcGVjc0IgPT0gbnVsbCB8fCAhVXRpbGl0eS5wYXJzZUNoYXIoaWQsIHBvcywgQ0xPU0VfUkVWKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9zWzBdID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEFzc2VtYmxlIHJldHVybiByZXN1bHRzCisgICAgICAgIFNpbmdsZUlEIHNpbmdsZTsKKyAgICAgICAgaWYgKHNhd1BhcmVuKSB7CisgICAgICAgICAgICBpZiAoZGlyID09IEZPUldBUkQpIHsKKyAgICAgICAgICAgICAgICBzaW5nbGUgPSBzcGVjc1RvSUQoc3BlY3NBLCBGT1JXQVJEKTsKKyAgICAgICAgICAgICAgICBzaW5nbGUuY2Fub25JRCA9IHNpbmdsZS5jYW5vbklEICsKKyAgICAgICAgICAgICAgICAgICAgT1BFTl9SRVYgKyBzcGVjc1RvSUQoc3BlY3NCLCBGT1JXQVJEKS5jYW5vbklEICsgQ0xPU0VfUkVWOworICAgICAgICAgICAgICAgIGlmIChzcGVjc0EgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBzaW5nbGUuZmlsdGVyID0gc3BlY3NBLmZpbHRlcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNpbmdsZSA9IHNwZWNzVG9JRChzcGVjc0IsIEZPUldBUkQpOworICAgICAgICAgICAgICAgIHNpbmdsZS5jYW5vbklEID0gc2luZ2xlLmNhbm9uSUQgKworICAgICAgICAgICAgICAgICAgICBPUEVOX1JFViArIHNwZWNzVG9JRChzcGVjc0EsIEZPUldBUkQpLmNhbm9uSUQgKyBDTE9TRV9SRVY7CisgICAgICAgICAgICAgICAgaWYgKHNwZWNzQiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHNpbmdsZS5maWx0ZXIgPSBzcGVjc0IuZmlsdGVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGFzc2VydChzcGVjc0EgIT0gbnVsbCk7CisgICAgICAgICAgICBpZiAoZGlyID09IEZPUldBUkQpIHsKKyAgICAgICAgICAgICAgICBzaW5nbGUgPSBzcGVjc1RvSUQoc3BlY3NBLCBGT1JXQVJEKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc2luZ2xlID0gc3BlY3NUb1NwZWNpYWxJbnZlcnNlKHNwZWNzQSk7CisgICAgICAgICAgICAgICAgaWYgKHNpbmdsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHNpbmdsZSA9IHNwZWNzVG9JRChzcGVjc0EsIFJFVkVSU0UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNpbmdsZS5maWx0ZXIgPSBzcGVjc0EuZmlsdGVyOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGdsb2JhbCBmaWx0ZXIgb2YgdGhlIGZvcm0gIltmXSIgb3IgIihbZl0pIiwgZGVwZW5kaW5nCisgICAgICogb24gJ3dpdGhQYXJlbnMnLgorICAgICAqIEBwYXJhbSBpZCB0aGUgcGF0dGVybiB0aGUgcGFyc2UKKyAgICAgKiBAcGFyYW0gcG9zIElOUFVULU9VVFBVVCBwYXJhbWV0ZXIuICBPbiBpbnB1dCwgdGhlIHBvc2l0aW9uIG9mCisgICAgICogdGhlIGZpcnN0IGNoYXJhY3RlciB0byBwYXJzZS4gIE9uIG91dHB1dCwgdGhlIHBvc2l0aW9uIGFmdGVyCisgICAgICogdGhlIGxhc3QgY2hhcmFjdGVyIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gZGlyIHRoZSBkaXJlY3Rpb24uCisgICAgICogQHBhcmFtIHdpdGhQYXJlbnMgSU5QVVQtT1VUUFVUIHBhcmFtZXRlci4gIE9uIGVudHJ5LCBpZgorICAgICAqIHdpdGhQYXJlbnNbMF0gaXMgMCwgdGhlbiBwYXJlbnMgYXJlIGRpc2FsbG93ZWQuICBJZiBpdCBpcyAxLAorICAgICAqIHRoZW4gcGFyZW5zIGFyZSByZXF1aXJlcy4gIElmIGl0IGlzIC0xLCB0aGVuIHBhcmVucyBhcmUKKyAgICAgKiBvcHRpb25hbCwgYW5kIHRoZSByZXR1cm4gcmVzdWx0IHdpbGwgYmUgc2V0IHRvIDAgb3IgMS4KKyAgICAgKiBAcGFyYW0gY2Fub25JRCBPVVRQVVQgcGFyYW1ldGVyLiAgVGhlIHBhdHRlcm4gZm9yIHRoZSBmaWx0ZXIKKyAgICAgKiBhZGRlZCB0byB0aGUgY2Fub25JRCwgZWl0aGVyIGF0IHRoZSBlbmQsIGlmIGRpciBpcyBGT1JXQVJELCBvcgorICAgICAqIGF0IHRoZSBzdGFydCwgaWYgZGlyIGlzIFJFVkVSU0UuICBUaGUgcGF0dGVybiB3aWxsIGJlIGVuY2xvc2VkCisgICAgICogaW4gcGFyZW50aGVzZXMgaWYgYXBwcm9wcmlhdGUsIGFuZCB3aWxsIGJlIHN1ZmZpeGVkIHdpdGggYW4KKyAgICAgKiBJRF9ERUxJTSBjaGFyYWN0ZXIuICBNYXkgYmUgbnVsbC4KKyAgICAgKiBAcmV0dXJuIGEgVW5pY29kZVNldCBvYmplY3Qgb3IgbnVsbC4gIEEgbm9uLW51bGwgcmVzdWx0cworICAgICAqIGluZGljYXRlcyBhIHN1Y2Nlc3NmdWwgcGFyc2UsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgZmlsdGVyCisgICAgICogYXBwbGllcyB0byB0aGUgZ2l2ZW4gZGlyZWN0aW9uLiAgVGhlIGNhbGxlciBzaG91bGQgZGlzY2FyZCBpdAorICAgICAqIGlmIHdpdGhQYXJlbnMgIT0gKGRpciA9PSBSRVZFUlNFKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVuaWNvZGVTZXQgcGFyc2VHbG9iYWxGaWx0ZXIoU3RyaW5nIGlkLCBpbnRbXSBwb3MsIGludCBkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIHdpdGhQYXJlbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBjYW5vbklEKSB7CisgICAgICAgIFVuaWNvZGVTZXQgZmlsdGVyID0gbnVsbDsKKyAgICAgICAgaW50IHN0YXJ0ID0gcG9zWzBdOworCisgICAgICAgIGlmICh3aXRoUGFyZW5zWzBdID09IC0xKSB7CisgICAgICAgICAgICB3aXRoUGFyZW5zWzBdID0gVXRpbGl0eS5wYXJzZUNoYXIoaWQsIHBvcywgT1BFTl9SRVYpID8gMSA6IDA7CisgICAgICAgIH0gZWxzZSBpZiAod2l0aFBhcmVuc1swXSA9PSAxKSB7CisgICAgICAgICAgICBpZiAoIVV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIE9QRU5fUkVWKSkgeworICAgICAgICAgICAgICAgIHBvc1swXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBVdGlsaXR5LnNraXBXaGl0ZXNwYWNlKGlkLCBwb3MpOworCisgICAgICAgIGlmIChVbmljb2RlU2V0LnJlc2VtYmxlc1BhdHRlcm4oaWQsIHBvc1swXSkpIHsKKyAgICAgICAgICAgIFBhcnNlUG9zaXRpb24gcHBvcyA9IG5ldyBQYXJzZVBvc2l0aW9uKHBvc1swXSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGZpbHRlciA9IG5ldyBVbmljb2RlU2V0KGlkLCBwcG9zLCBudWxsKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcG9zWzBdID0gc3RhcnQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gaWQuc3Vic3RyaW5nKHBvc1swXSwgcHBvcy5nZXRJbmRleCgpKTsKKyAgICAgICAgICAgIHBvc1swXSA9IHBwb3MuZ2V0SW5kZXgoKTsKKworICAgICAgICAgICAgaWYgKHdpdGhQYXJlbnNbMF0gPT0gMSAmJiAhVXRpbGl0eS5wYXJzZUNoYXIoaWQsIHBvcywgQ0xPU0VfUkVWKSkgeworICAgICAgICAgICAgICAgIHBvc1swXSA9IHN0YXJ0OworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJbiB0aGUgZm9yd2FyZCBkaXJlY3Rpb24sIGFwcGVuZCB0aGUgcGF0dGVybiB0byB0aGUKKyAgICAgICAgICAgIC8vIGNhbm9uSUQuICBJbiB0aGUgcmV2ZXJzZSwgaW5zZXJ0IGl0IGF0IHplcm8sIGFuZCBpbnZlcnQKKyAgICAgICAgICAgIC8vIHRoZSBwcmVzZW5jZSBvZiBwYXJlbnMgKCJBIiA8LT4gIihBKSIpLgorICAgICAgICAgICAgaWYgKGNhbm9uSUQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChkaXIgPT0gRk9SV0FSRCkgeworICAgICAgICAgICAgICAgICAgICBpZiAod2l0aFBhcmVuc1swXSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuID0gU3RyaW5nLnZhbHVlT2YoT1BFTl9SRVYpICsgcGF0dGVybiArIENMT1NFX1JFVjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYW5vbklELmFwcGVuZChwYXR0ZXJuICsgSURfREVMSU0pOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aXRoUGFyZW5zWzBdID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gPSBTdHJpbmcudmFsdWVPZihPUEVOX1JFVikgKyBwYXR0ZXJuICsgQ0xPU0VfUkVWOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhbm9uSUQuaW5zZXJ0KDAsIHBhdHRlcm4gKyBJRF9ERUxJTSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZpbHRlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIGNvbXBvdW5kIElELCBjb25zaXN0aW5nIG9mIGFuIG9wdGlvbmFsIGZvcndhcmQgZ2xvYmFsCisgICAgICogZmlsdGVyLCBhIHNlcGFyYXRvciwgb25lIG9yIG1vcmUgc2luZ2xlIElEcyBkZWxpbWl0ZWQgYnkKKyAgICAgKiBzZXBhcmF0b3JzLCBhbiBhbiBvcHRpb25hbCByZXZlcnNlIGdsb2JhbCBmaWx0ZXIuICBUaGUKKyAgICAgKiBzZXBhcmF0b3IgaXMgYSBzZW1pY29sb24uICBUaGUgZ2xvYmFsIGZpbHRlcnMgYXJlIFVuaWNvZGVTZXQKKyAgICAgKiBwYXR0ZXJucy4gIFRoZSByZXZlcnNlIGdsb2JhbCBmaWx0ZXIgbXVzdCBiZSBlbmNsb3NlZCBpbgorICAgICAqIHBhcmVudGhlc2VzLgorICAgICAqIEBwYXJhbSBpZCB0aGUgcGF0dGVybiB0aGUgcGFyc2UKKyAgICAgKiBAcGFyYW0gZGlyIHRoZSBkaXJlY3Rpb24uCisgICAgICogQHBhcmFtIGNhbm9uSUQgT1VUUFVUIHBhcmFtZXRlciB0aGF0IHJlY2VpdmVzIHRoZSBjYW5vbmljYWwgSUQsCisgICAgICogY29uc2lzdGluZyBvZiBjYW5vbmljYWwgSURzIGZvciBhbGwgZWxlbWVudHMsIGFzIHJldHVybmVkIGJ5CisgICAgICogcGFyc2VTaW5nbGVJRCgpLCBzZXBhcmF0ZWQgYnkgc2VtaWNvbG9ucy4gIFByZXZpb3VzIGNvbnRlbnRzCisgICAgICogYXJlIGRpc2NhcmRlZC4KKyAgICAgKiBAcGFyYW0gbGlzdCBPVVRQVVQgcGFyYW1ldGVyIHRoYXQgcmVjZWl2ZXMgYSBsaXN0IG9mIFNpbmdsZUlECisgICAgICogb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIHBhcnNlZCBJRHMuICBQcmV2aW91cyBjb250ZW50cyBhcmUKKyAgICAgKiBkaXNjYXJkZWQuCisgICAgICogQHBhcmFtIGdsb2JhbEZpbHRlciBPVVRQVVQgcGFyYW1ldGVyIHRoYXQgcmVjZWl2ZXMgYSBwb2ludGVyIHRvCisgICAgICogYSBuZXdseSBjcmVhdGVkIGdsb2JhbCBmaWx0ZXIgZm9yIHRoaXMgSUQgaW4gdGhpcyBkaXJlY3Rpb24sIG9yCisgICAgICogbnVsbCBpZiB0aGVyZSBpcyBub25lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyc2Ugc3VjY2VlZHMsIHRoYXQgaXMsIGlmIHRoZSBlbnRpcmUKKyAgICAgKiBpZCBpcyBjb25zdW1lZCB3aXRob3V0IHN5bnRheCBlcnJvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gcGFyc2VDb21wb3VuZElEKFN0cmluZyBpZCwgaW50IGRpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBjYW5vbklELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yIGxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0W10gZ2xvYmFsRmlsdGVyKSB7CisgICAgICAgIGludFtdIHBvcyA9IG5ldyBpbnRbXSB7IDAgfTsKKyAgICAgICAgaW50W10gd2l0aFBhcmVucyA9IG5ldyBpbnRbMV07CisgICAgICAgIGxpc3QucmVtb3ZlQWxsRWxlbWVudHMoKTsKKyAgICAgICAgVW5pY29kZVNldCBmaWx0ZXI7CisgICAgICAgIGdsb2JhbEZpbHRlclswXSA9IG51bGw7CisgICAgICAgIGNhbm9uSUQuc2V0TGVuZ3RoKDApOworCisgICAgICAgIC8vIFBhcnNlIGxlYWRpbmcgZ2xvYmFsIGZpbHRlciwgaWYgYW55CisgICAgICAgIHdpdGhQYXJlbnNbMF0gPSAwOyAvLyBwYXJlbnMgZGlzYWxsb3dlZAorICAgICAgICBmaWx0ZXIgPSBwYXJzZUdsb2JhbEZpbHRlcihpZCwgcG9zLCBkaXIsIHdpdGhQYXJlbnMsIGNhbm9uSUQpOworICAgICAgICBpZiAoZmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICghVXRpbGl0eS5wYXJzZUNoYXIoaWQsIHBvcywgSURfREVMSU0pKSB7CisgICAgICAgICAgICAgICAgLy8gTm90IGEgZ2xvYmFsIGZpbHRlcjsgYmFja3VwIGFuZCByZXN1bWUKKyAgICAgICAgICAgICAgICBjYW5vbklELnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBwb3NbMF0gPSAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRpciA9PSBGT1JXQVJEKSB7CisgICAgICAgICAgICAgICAgZ2xvYmFsRmlsdGVyWzBdID0gZmlsdGVyOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBzYXdEZWxpbWl0ZXIgPSB0cnVlOworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBTaW5nbGVJRCBzaW5nbGUgPSBwYXJzZVNpbmdsZUlEKGlkLCBwb3MsIGRpcik7CisgICAgICAgICAgICBpZiAoc2luZ2xlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkaXIgPT0gRk9SV0FSRCkgeworICAgICAgICAgICAgICAgIGxpc3QuYWRkRWxlbWVudChzaW5nbGUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsaXN0Lmluc2VydEVsZW1lbnRBdChzaW5nbGUsIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFVdGlsaXR5LnBhcnNlQ2hhcihpZCwgcG9zLCBJRF9ERUxJTSkpIHsKKyAgICAgICAgICAgICAgICBzYXdEZWxpbWl0ZXIgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChsaXN0LnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb25zdHJ1Y3QgY2Fub25pY2FsIElECisgICAgICAgIGZvciAoaW50IGk9MDsgaTxsaXN0LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBTaW5nbGVJRCBzaW5nbGUgPSAoU2luZ2xlSUQpIGxpc3QuZWxlbWVudEF0KGkpOworICAgICAgICAgICAgY2Fub25JRC5hcHBlbmQoc2luZ2xlLmNhbm9uSUQpOworICAgICAgICAgICAgaWYgKGkgIT0gKGxpc3Quc2l6ZSgpLTEpKSB7CisgICAgICAgICAgICAgICAgY2Fub25JRC5hcHBlbmQoSURfREVMSU0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUGFyc2UgdHJhaWxpbmcgZ2xvYmFsIGZpbHRlciwgaWYgYW55LCBhbmQgb25seSBpZiB3ZSBzYXcKKyAgICAgICAgLy8gYSB0cmFpbGluZyBkZWxpbWl0ZXIgYWZ0ZXIgdGhlIElEcy4KKyAgICAgICAgaWYgKHNhd0RlbGltaXRlcikgeworICAgICAgICAgICAgd2l0aFBhcmVuc1swXSA9IDE7IC8vIHBhcmVucyByZXF1aXJlZAorICAgICAgICAgICAgZmlsdGVyID0gcGFyc2VHbG9iYWxGaWx0ZXIoaWQsIHBvcywgZGlyLCB3aXRoUGFyZW5zLCBjYW5vbklEKTsKKyAgICAgICAgICAgIGlmIChmaWx0ZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vIERvbid0IHJlcXVpcmUgdHJhaWxpbmcgJzsnLCBidXQgcGFyc2UgaXQgaWYgcHJlc2VudAorICAgICAgICAgICAgICAgIFV0aWxpdHkucGFyc2VDaGFyKGlkLCBwb3MsIElEX0RFTElNKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZGlyID09IFJFVkVSU0UpIHsKKyAgICAgICAgICAgICAgICAgICAgZ2xvYmFsRmlsdGVyWzBdID0gZmlsdGVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRyYWlsaW5nIHVucGFyc2VkIHRleHQgaXMgYSBzeW50YXggZXJyb3IKKyAgICAgICAgVXRpbGl0eS5za2lwV2hpdGVzcGFjZShpZCwgcG9zWzBdKTsKKyAgICAgICAgaWYgKHBvc1swXSAhPSBpZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCB0aGUgZWxlbWVudHMgb2YgdGhlICdsaXN0JyB2ZWN0b3IsIHdoaWNoIGFyZSBTaW5nbGVJRAorICAgICAqIG9iamVjdHMsIGludG8gYWN0dWFsIFRyYW5zbGl0ZXJhdG9yIG9iamVjdHMuICBJbiB0aGUgY291cnNlIG9mCisgICAgICogdGhpcywgc29tZSAob3IgYWxsKSBlbnRyaWVzIG1heSBiZSByZW1vdmVkLiAgSWYgYWxsIGVudHJpZXMKKyAgICAgKiBhcmUgcmVtb3ZlZCwgdGhlIE51bGwgdHJhbnNsaXRlcmF0b3Igd2lsbCBiZSBhZGRlZC4KKyAgICAgKgorICAgICAqIERlbGV0ZSBlbnRyaWVzIHdpdGggZW1wdHkgYmFzaWNJRHM7IHRoZXNlIGFyZSBnZW5lcmF0ZWQgYnkKKyAgICAgKiBlbGVtZW50cyBsaWtlICIoQSkiIGluIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiwgb3IgIkEoKSIgaW4KKyAgICAgKiB0aGUgcmV2ZXJzZS4gIFRISVMgTUFZIFJFU1VMVCBJTiBBTiBFTVBUWSBWRUNUT1IuICBDb252ZXJ0CisgICAgICogU2luZ2xlSUQgZW50cmllcyB0byBhY3R1YWwgdHJhbnNsaXRlcmF0b3JzLgorICAgICAqCisgICAgICogQHBhcmFtIGxpc3QgdmVjdG9yIG9mIFNpbmdsZUlEIG9iamVjdHMuICBPbiBleGl0LCB2ZWN0b3IKKyAgICAgKiBvZiBvbmUgb3IgbW9yZSBUcmFuc2xpdGVyYXRvcnMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGluc3RhbnRpYXRlTGlzdChWZWN0b3IgbGlzdCkgeworICAgICAgICBUcmFuc2xpdGVyYXRvciB0OworICAgICAgICBmb3IgKGludCBpPTA7IGk8PWxpc3Quc2l6ZSgpOyApIHsgLy8gW3NpY106IGk8PWxpc3Quc2l6ZSgpCisgICAgICAgICAgICAvLyBXZSBydW4gdGhlIGxvb3AgdG9vIGxvbmcgYnkgb25lLCBzbyB3ZSBjYW4KKyAgICAgICAgICAgIC8vIGRvIGFuIGluc2VydCBhZnRlciB0aGUgbGFzdCBlbGVtZW50CisgICAgICAgICAgICBpZiAoaT09bGlzdC5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgU2luZ2xlSUQgc2luZ2xlID0gKFNpbmdsZUlEKSBsaXN0LmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGlmIChzaW5nbGUuYmFzaWNJRC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgbGlzdC5yZW1vdmVFbGVtZW50QXQoaSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHQgPSBzaW5nbGUuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgSUQgIiArIHNpbmdsZS5jYW5vbklEKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbGlzdC5zZXRFbGVtZW50QXQodCwgaSk7CisgICAgICAgICAgICAgICAgKytpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBBbiBlbXB0eSBsaXN0IGlzIGVxdWl2YWxlbnQgdG8gYSBOdWxsIHRyYW5zbGl0ZXJhdG9yLgorICAgICAgICBpZiAobGlzdC5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgdCA9IFRyYW5zbGl0ZXJhdG9yLmdldEJhc2ljSW5zdGFuY2UoIkFueS1OdWxsIiwgbnVsbCk7CisgICAgICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gU2hvdWxkIG5ldmVyIGhhcHBlbgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludGVybmFsIGVycm9yOyBjYW5ub3QgaW5zdGFudGlhdGUgQW55LU51bGwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGxpc3QuYWRkRWxlbWVudCh0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGFuIElEIGludG8gcGllY2VzLiAgVGFrZSBJRHMgb2YgdGhlIGZvcm0gVCwgVC9WLCBTLVQsCisgICAgICogUy1UL1YsIG9yIFMvVi1ULiAgSWYgdGhlIHNvdXJjZSBpcyBtaXNzaW5nLCByZXR1cm4gYSBzb3VyY2Ugb2YKKyAgICAgKiBBTlkuCisgICAgICogQHBhcmFtIGlkIHRoZSBpZCBzdHJpbmcsIGluIGFueSBvZiBzZXZlcmFsIGZvcm1zCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiA0IHN0cmluZ3M6IHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50LCBhbmQKKyAgICAgKiBpc1NvdXJjZVByZXNlbnQuICBJZiB0aGUgc291cmNlIGlzIG5vdCBwcmVzZW50LCBBTlkgd2lsbCBiZQorICAgICAqIGdpdmVuIGFzIHRoZSBzb3VyY2UsIGFuZCBpc1NvdXJjZVByZXNlbnQgd2lsbCBiZSBudWxsLiAgT3RoZXJ3aXNlCisgICAgICogaXNTb3VyY2VQcmVzZW50IHdpbGwgYmUgbm9uLW51bGwuICBUaGUgdGFyZ2V0IG1heSBiZSBlbXB0eSBpZiB0aGUKKyAgICAgKiBpZCBpcyBub3Qgd2VsbC1mb3JtZWQuICBUaGUgdmFyaWFudCBtYXkgYmUgZW1wdHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBJRHRvU1RWKFN0cmluZyBpZCkgeworICAgICAgICBTdHJpbmcgc291cmNlID0gQU5ZOworICAgICAgICBTdHJpbmcgdGFyZ2V0ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIHZhcmlhbnQgPSAiIjsKKyAgICAgICAgCisgICAgICAgIGludCBzZXAgPSBpZC5pbmRleE9mKFRBUkdFVF9TRVApOworICAgICAgICBpbnQgdmFyID0gaWQuaW5kZXhPZihWQVJJQU5UX1NFUCk7CisgICAgICAgIGlmICh2YXIgPCAwKSB7CisgICAgICAgICAgICB2YXIgPSBpZC5sZW5ndGgoKTsKKyAgICAgICAgfQorICAgICAgICBib29sZWFuIGlzU291cmNlUHJlc2VudCA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgaWYgKHNlcCA8IDApIHsKKyAgICAgICAgICAgIC8vIEZvcm06IFQvViBvciBUIChvciAvVikKKyAgICAgICAgICAgIHRhcmdldCA9IGlkLnN1YnN0cmluZygwLCB2YXIpOworICAgICAgICAgICAgdmFyaWFudCA9IGlkLnN1YnN0cmluZyh2YXIpOworICAgICAgICB9IGVsc2UgaWYgKHNlcCA8IHZhcikgeworICAgICAgICAgICAgLy8gRm9ybTogUy1UL1Ygb3IgUy1UIChvciAtVC9WIG9yIC1UKQorICAgICAgICAgICAgaWYgKHNlcCA+IDApIHsKKyAgICAgICAgICAgICAgICBzb3VyY2UgPSBpZC5zdWJzdHJpbmcoMCwgc2VwKTsKKyAgICAgICAgICAgICAgaXNTb3VyY2VQcmVzZW50ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRhcmdldCA9IGlkLnN1YnN0cmluZygrK3NlcCwgdmFyKTsKKyAgICAgICAgICAgIHZhcmlhbnQgPSBpZC5zdWJzdHJpbmcodmFyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEZvcm06IChTL1YtVCBvciAvVi1UKQorICAgICAgICAgICAgaWYgKHZhciA+IDApIHsKKyAgICAgICAgICAgICAgICBzb3VyY2UgPSBpZC5zdWJzdHJpbmcoMCwgdmFyKTsKKyAgICAgICAgICAgICAgICBpc1NvdXJjZVByZXNlbnQgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyaWFudCA9IGlkLnN1YnN0cmluZyh2YXIsIHNlcCsrKTsKKyAgICAgICAgICAgIHRhcmdldCA9IGlkLnN1YnN0cmluZyhzZXApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICB2YXJpYW50ID0gdmFyaWFudC5zdWJzdHJpbmcoMSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nW10geyBzb3VyY2UsIHRhcmdldCwgdmFyaWFudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzU291cmNlUHJlc2VudCA/ICIiIDogbnVsbCB9OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIHNvdXJjZSwgdGFyZ2V0LCBhbmQgdmFyaWFudCBzdHJpbmdzLCBjb25jYXRlbmF0ZSB0aGVtIGludG8gYQorICAgICAqIGZ1bGwgSUQuICBJZiB0aGUgc291cmNlIGlzIGVtcHR5LCB0aGVuICJBbnkiIHdpbGwgYmUgdXNlZCBmb3IgdGhlCisgICAgICogc291cmNlLCBzbyB0aGUgSUQgd2lsbCBhbHdheXMgYmUgb2YgdGhlIGZvcm0gcy10L3Ygb3Igcy10LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIFNUVnRvSUQoU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgaWQgPSBuZXcgU3RyaW5nQnVmZmVyKHNvdXJjZSk7CisgICAgICAgIGlmIChpZC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICBpZC5hcHBlbmQoQU5ZKTsKKyAgICAgICAgfQorICAgICAgICBpZC5hcHBlbmQoVEFSR0VUX1NFUCkuYXBwZW5kKHRhcmdldCk7CisgICAgICAgIGlmICh2YXJpYW50ICE9IG51bGwgJiYgdmFyaWFudC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICBpZC5hcHBlbmQoVkFSSUFOVF9TRVApLmFwcGVuZCh2YXJpYW50KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaWQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciB0d28gdGFyZ2V0cyBhcyBiZWluZyBpbnZlcnNlcyBvZiBvbmUgYW5vdGhlci4gIEZvcgorICAgICAqIGV4YW1wbGUsIGNhbGxpbmcgcmVnaXN0ZXJTcGVjaWFsSW52ZXJzZSgiTkZDIiwgIk5GRCIsIHRydWUpIGNhdXNlcworICAgICAqIFRyYW5zbGl0ZXJhdG9yIHRvIGZvcm0gdGhlIGZvbGxvd2luZyBpbnZlcnNlIHJlbGF0aW9uc2hpcHM6CisgICAgICoKKyAgICAgKiA8cHJlPk5GQyA9PiBORkQKKyAgICAgKiBBbnktTkZDID0+IEFueS1ORkQKKyAgICAgKiBORkQgPT4gTkZDCisgICAgICogQW55LU5GRCA9PiBBbnktTkZDPC9wcmU+CisgICAgICoKKyAgICAgKiAoV2l0aG91dCB0aGUgc3BlY2lhbCBpbnZlcnNlIHJlZ2lzdHJhdGlvbiwgdGhlIGludmVyc2Ugb2YgTkZDCisgICAgICogd291bGQgYmUgTkZDLUFueS4pICBOb3RlIHRoYXQgTkZEIGlzIHNob3J0aGFuZCBmb3IgQW55LU5GRCwgYnV0CisgICAgICogdGhhdCB0aGUgcHJlc2VuY2Ugb3IgYWJzZW5jZSBvZiAiQW55LSIgaXMgcHJlc2VydmVkLgorICAgICAqCisgICAgICogPHA+VGhlIHJlbGF0aW9uc2hpcCBpcyBzeW1tZXRyaWNhbDsgcmVnaXN0ZXJpbmcgKGEsIGIpIGlzCisgICAgICogZXF1aXZhbGVudCB0byByZWdpc3RlcmluZyAoYiwgYSkuCisgICAgICoKKyAgICAgKiA8cD5UaGUgcmVsZXZhbnQgSURzIG11c3Qgc3RpbGwgYmUgcmVnaXN0ZXJlZCBzZXBhcmF0ZWx5IGFzCisgICAgICogZmFjdG9yaWVzIG9yIGNsYXNzZXMuCisgICAgICoKKyAgICAgKiA8cD5Pbmx5IHRoZSB0YXJnZXRzIGFyZSBzcGVjaWZpZWQuICBTcGVjaWFsIGludmVyc2VzIGFsd2F5cworICAgICAqIGhhdmUgdGhlIGZvcm0gQW55LVRhcmdldDEgPD0+IEFueS1UYXJnZXQyLiAgVGhlIHRhcmdldCBzaG91bGQKKyAgICAgKiBoYXZlIGNhbm9uaWNhbCBjYXNpbmcgKHRoZSBjYXNpbmcgZGVzaXJlZCB0byBiZSBwcm9kdWNlZCB3aGVuCisgICAgICogYW4gaW52ZXJzZSBpcyBmb3JtZWQpIGFuZCBzaG91bGQgY29udGFpbiBubyB3aGl0ZXNwYWNlIG9yIG90aGVyCisgICAgICogZXh0cmFuZW91cyBjaGFyYWN0ZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgdGFyZ2V0IGFnYWluc3Qgd2hpY2ggdG8gcmVnaXN0ZXIgdGhlIGludmVyc2UKKyAgICAgKiBAcGFyYW0gaW52ZXJzZVRhcmdldCB0aGUgaW52ZXJzZSBvZiB0YXJnZXQsIHRoYXQgaXMKKyAgICAgKiBBbnktdGFyZ2V0LmdldEludmVyc2UoKSA9PiBBbnktaW52ZXJzZVRhcmdldAorICAgICAqIEBwYXJhbSBiaWRpcmVjdGlvbmFsIGlmIHRydWUsIHJlZ2lzdGVyIHRoZSByZXZlcnNlIHJlbGF0aW9uCisgICAgICogYXMgd2VsbCwgdGhhdCBpcywgQW55LWludmVyc2VUYXJnZXQuZ2V0SW52ZXJzZSgpID0+IEFueS10YXJnZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJTcGVjaWFsSW52ZXJzZShTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBpbnZlcnNlVGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gYmlkaXJlY3Rpb25hbCkgeworICAgICAgICBTUEVDSUFMX0lOVkVSU0VTLnB1dChuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHRhcmdldCksIGludmVyc2VUYXJnZXQpOworICAgICAgICBpZiAoYmlkaXJlY3Rpb25hbCAmJiAhdGFyZ2V0LmVxdWFsc0lnbm9yZUNhc2UoaW52ZXJzZVRhcmdldCkpIHsKKyAgICAgICAgICAgIFNQRUNJQUxfSU5WRVJTRVMucHV0KG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoaW52ZXJzZVRhcmdldCksIHRhcmdldCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQcml2YXRlIGltcGxlbWVudGF0aW9uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhbiBJRCBpbnRvIGNvbXBvbmVudCBwaWVjZXMuICBUYWtlIElEcyBvZiB0aGUgZm9ybSBULAorICAgICAqIFQvViwgUy1ULCBTLVQvViwgb3IgUy9WLVQuICBJZiB0aGUgc291cmNlIGlzIG1pc3NpbmcsIHJldHVybiBhCisgICAgICogc291cmNlIG9mIEFOWS4KKyAgICAgKiBAcGFyYW0gaWQgdGhlIGlkIHN0cmluZywgaW4gYW55IG9mIHNldmVyYWwgZm9ybXMKKyAgICAgKiBAcGFyYW0gcG9zIElOUFVULU9VVFBVVCBwYXJhbWV0ZXIuICBPbiBpbnB1dCwgcG9zWzBdIGlzIHRoZQorICAgICAqIG9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIHBhcnNlIGluIGlkLiAgT24gb3V0cHV0LAorICAgICAqIHBvc1swXSBpcyB0aGUgb2Zmc2V0IGFmdGVyIHRoZSBsYXN0IHBhcnNlZCBjaGFyYWN0ZXIuICBJZiB0aGUKKyAgICAgKiBwYXJzZSBmYWlsZWQsIHBvc1swXSB3aWxsIGJlIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gYWxsb3dGaWx0ZXIgaWYgdHJ1ZSwgYSBVbmljb2RlU2V0IHBhdHRlcm4gaXMgYWxsb3dlZAorICAgICAqIGF0IGFueSBsb2NhdGlvbiBiZXR3ZWVuIHNwZWNzIG9yIGRlbGltaXRlcnMsIGFuZCBpcyByZXR1cm5lZAorICAgICAqIGFzIHRoZSBmaWZ0aCBzdHJpbmcgaW4gdGhlIGFycmF5LgorICAgICAqIEByZXR1cm4gYSBTcGVjcyBvYmplY3QsIG9yIG51bGwgaWYgdGhlIHBhcnNlIGZhaWxlZC4gIElmCisgICAgICogbmVpdGhlciBzb3VyY2Ugbm9yIHRhcmdldCB3YXMgc2VlbiBpbiB0aGUgcGFyc2VkIGlkLCB0aGVuIHRoZQorICAgICAqIHBhcnNlIGZhaWxzLiAgSWYgYWxsb3dGaWx0ZXIgaXMgdHJ1ZSwgdGhlbiB0aGUgcGFyc2VkIGZpbHRlcgorICAgICAqIHBhdHRlcm4gaXMgcmV0dXJuZWQgaW4gdGhlIFNwZWNzIG9iamVjdCwgb3RoZXJ3aXNlIHRoZSByZXR1cm5lZAorICAgICAqIGZpbHRlciByZWZlcmVuY2UgaXMgbnVsbC4gIElmIHRoZSBwYXJzZSBmYWlscyBmb3IgYW55IHJlYXNvbgorICAgICAqIG51bGwgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3BlY3MgcGFyc2VGaWx0ZXJJRChTdHJpbmcgaWQsIGludFtdIHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gYWxsb3dGaWx0ZXIpIHsKKyAgICAgICAgU3RyaW5nIGZpcnN0ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9IG51bGw7CisgICAgICAgIFN0cmluZyB0YXJnZXQgPSBudWxsOworICAgICAgICBTdHJpbmcgdmFyaWFudCA9IG51bGw7CisgICAgICAgIFN0cmluZyBmaWx0ZXIgPSBudWxsOworICAgICAgICBjaGFyIGRlbGltaXRlciA9IDA7CisgICAgICAgIGludCBzcGVjQ291bnQgPSAwOworICAgICAgICBpbnQgc3RhcnQgPSBwb3NbMF07CisKKyAgICAgICAgLy8gVGhpcyBsb29wIHBhcnNlcyBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aGluZ3Mgd2l0aCBlYWNoCisgICAgICAgIC8vIHBhc3M6IGEgZmlsdGVyLCBhIGRlbGltaXRlciBjaGFyYWN0ZXIgKGVpdGhlciAnLScgb3IgJy8nKSwKKyAgICAgICAgLy8gb3IgYSBzcGVjIChzb3VyY2UsIHRhcmdldCwgb3IgdmFyaWFudCkuCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIFV0aWxpdHkuc2tpcFdoaXRlc3BhY2UoaWQsIHBvcyk7CisgICAgICAgICAgICBpZiAocG9zWzBdID09IGlkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFBhcnNlIGZpbHRlcnMKKyAgICAgICAgICAgIGlmIChhbGxvd0ZpbHRlciAmJiBmaWx0ZXIgPT0gbnVsbCAmJgorICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQucmVzZW1ibGVzUGF0dGVybihpZCwgcG9zWzBdKSkgeworCisgICAgICAgICAgICAgICAgUGFyc2VQb3NpdGlvbiBwcG9zID0gbmV3IFBhcnNlUG9zaXRpb24ocG9zWzBdKTsKKyAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHNldCA9IG5ldyBVbmljb2RlU2V0KGlkLCBwcG9zLCBudWxsKTsKKyAgICAgICAgICAgICAgICBmaWx0ZXIgPSBpZC5zdWJzdHJpbmcocG9zWzBdLCBwcG9zLmdldEluZGV4KCkpOworICAgICAgICAgICAgICAgIHBvc1swXSA9IHBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGRlbGltaXRlciA9PSAwKSB7CisgICAgICAgICAgICAgICAgY2hhciBjID0gaWQuY2hhckF0KHBvc1swXSk7CisgICAgICAgICAgICAgICAgaWYgKChjID09IFRBUkdFVF9TRVAgJiYgdGFyZ2V0ID09IG51bGwpIHx8CisgICAgICAgICAgICAgICAgICAgIChjID09IFZBUklBTlRfU0VQICYmIHZhcmlhbnQgPT0gbnVsbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVsaW1pdGVyID0gYzsKKyAgICAgICAgICAgICAgICAgICAgKytwb3NbMF07CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gV2UgYXJlIGFib3V0IHRvIHRyeSB0byBwYXJzZSBhIHNwZWMgd2l0aCBubyBkZWxpbWl0ZXIKKyAgICAgICAgICAgIC8vIHdoZW4gd2UgY2FuIG5vIGxvbmdlciBkbyBzbyAod2UgY2FuIG9ubHkgZG8gc28gYXQgdGhlCisgICAgICAgICAgICAvLyBzdGFydCk7IGJyZWFrLgorICAgICAgICAgICAgaWYgKGRlbGltaXRlciA9PSAwICYmIHNwZWNDb3VudCA+IDApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIHNwZWMgPSBVdGlsaXR5LnBhcnNlVW5pY29kZUlkZW50aWZpZXIoaWQsIHBvcyk7CisgICAgICAgICAgICBpZiAoc3BlYyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgLy8gTm90ZSB0aGF0IGlmIHRoZXJlIHdhcyBhIHRyYWlsaW5nIGRlbGltaXRlciwgd2UKKyAgICAgICAgICAgICAgICAvLyBjb25zdW1lIGl0LiAgU28gRm9vLSwgRm9vLywgRm9vLUJhci8sIGFuZCBGb28vQmFyLQorICAgICAgICAgICAgICAgIC8vIGFyZSBsZWdhbC4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChkZWxpbWl0ZXIpIHsKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICBmaXJzdCA9IHNwZWM7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRBUkdFVF9TRVA6CisgICAgICAgICAgICAgICAgdGFyZ2V0ID0gc3BlYzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVkFSSUFOVF9TRVA6CisgICAgICAgICAgICAgICAgdmFyaWFudCA9IHNwZWM7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICArK3NwZWNDb3VudDsKKyAgICAgICAgICAgIGRlbGltaXRlciA9IDA7CisgICAgICAgIH0KKworICAgICAgICAvLyBBIHNwZWMgd2l0aCBubyBwcmlvciBjaGFyYWN0ZXIgaXMgZWl0aGVyIHNvdXJjZSBvciB0YXJnZXQsCisgICAgICAgIC8vIGRlcGVuZGluZyBvbiB3aGV0aGVyIGFuIGV4cGxpY2l0ICItdGFyZ2V0IiB3YXMgc2Vlbi4KKyAgICAgICAgaWYgKGZpcnN0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICh0YXJnZXQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRhcmdldCA9IGZpcnN0OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzb3VyY2UgPSBmaXJzdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIE11c3QgaGF2ZSBlaXRoZXIgc291cmNlIG9yIHRhcmdldAorICAgICAgICBpZiAoc291cmNlID09IG51bGwgJiYgdGFyZ2V0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHBvc1swXSA9IHN0YXJ0OworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBFbXB0eSBzb3VyY2Ugb3IgdGFyZ2V0IGRlZmF1bHRzIHRvIEFOWQorICAgICAgICBib29sZWFuIHNhd1NvdXJjZSA9IHRydWU7CisgICAgICAgIGlmIChzb3VyY2UgPT0gbnVsbCkgeworICAgICAgICAgICAgc291cmNlID0gQU5ZOworICAgICAgICAgICAgc2F3U291cmNlID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRhcmdldCA9PSBudWxsKSB7CisgICAgICAgICAgICB0YXJnZXQgPSBBTlk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IFNwZWNzKHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50LCBzYXdTb3VyY2UsIGZpbHRlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW5zIGEgU3BlYyBvYmplY3QsIGNvbnZlcnQgaXQgdG8gYSBTaW5nbGVJRCBvYmplY3QuICBUaGUKKyAgICAgKiBTcGVjIG9iamVjdCBpcyBhIG1vcmUgdW5wcm9jZXNzZWQgcGFyc2UgcmVzdWx0LiAgVGhlIFNpbmdsZUlECisgICAgICogb2JqZWN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGNhbm9uaWNhbCBhbmQgYmFzaWMgSURzLgorICAgICAqIEByZXR1cm4gYSBTaW5nbGVJRDsgbmV2ZXIgcmV0dXJucyBudWxsLiAgUmV0dXJuZWQgb2JqZWN0IGFsd2F5cworICAgICAqIGhhcyAnZmlsdGVyJyBmaWVsZCBvZiBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFNpbmdsZUlEIHNwZWNzVG9JRChTcGVjcyBzcGVjcywgaW50IGRpcikgeworICAgICAgICBTdHJpbmcgY2Fub25JRCA9ICIiOworICAgICAgICBTdHJpbmcgYmFzaWNJRCA9ICIiOworICAgICAgICBTdHJpbmcgYmFzaWNQcmVmaXggPSAiIjsKKyAgICAgICAgaWYgKHNwZWNzICE9IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpZiAoZGlyID09IEZPUldBUkQpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3BlY3Muc2F3U291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3BlY3Muc291cmNlKS5hcHBlbmQoVEFSR0VUX1NFUCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYmFzaWNQcmVmaXggPSBzcGVjcy5zb3VyY2UgKyBUQVJHRVRfU0VQOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHNwZWNzLnRhcmdldCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc3BlY3MudGFyZ2V0KS5hcHBlbmQoVEFSR0VUX1NFUCkuYXBwZW5kKHNwZWNzLnNvdXJjZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3BlY3MudmFyaWFudCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChWQVJJQU5UX1NFUCkuYXBwZW5kKHNwZWNzLnZhcmlhbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYmFzaWNJRCA9IGJhc2ljUHJlZml4ICsgYnVmLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoc3BlY3MuZmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBidWYuaW5zZXJ0KDAsIHNwZWNzLmZpbHRlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYW5vbklEID0gYnVmLnRvU3RyaW5nKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBTaW5nbGVJRChjYW5vbklELCBiYXNpY0lEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIFNwZWNzIG9iamVjdCwgcmV0dXJuIGEgU2luZ2xlSUQgcmVwcmVzZW50aW5nIHRoZQorICAgICAqIHNwZWNpYWwgaW52ZXJzZSBvZiB0aGF0IElELiAgSWYgdGhlcmUgaXMgbm8gc3BlY2lhbCBpbnZlcnNlCisgICAgICogdGhlbiByZXR1cm4gbnVsbC4KKyAgICAgKiBAcmV0dXJuIGEgU2luZ2xlSUQgb3IgbnVsbC4gIFJldHVybmVkIG9iamVjdCBhbHdheXMgaGFzCisgICAgICogJ2ZpbHRlcicgZmllbGQgb2YgbnVsbC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTaW5nbGVJRCBzcGVjc1RvU3BlY2lhbEludmVyc2UoU3BlY3Mgc3BlY3MpIHsKKyAgICAgICAgaWYgKCFzcGVjcy5zb3VyY2UuZXF1YWxzSWdub3JlQ2FzZShBTlkpKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgaW52ZXJzZVRhcmdldCA9IChTdHJpbmcpIFNQRUNJQUxfSU5WRVJTRVMuZ2V0KAorICAgICAgICAgICAgbmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyhzcGVjcy50YXJnZXQpKTsKKyAgICAgICAgaWYgKGludmVyc2VUYXJnZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbmFsIElEIGNvbnRhaW5lZCAiQW55LSIgdGhlbiBtYWtlIHRoZQorICAgICAgICAgICAgLy8gc3BlY2lhbCBpbnZlcnNlICJBbnktRm9vIjsgb3RoZXJ3aXNlIG1ha2UgaXQgIkZvbyIuCisgICAgICAgICAgICAvLyBTbyAiQW55LU5GQyIgPT4gIkFueS1ORkQiIGJ1dCAiTkZDIiA9PiAiTkZEIi4KKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBidWYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpZiAoc3BlY3MuZmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHNwZWNzLmZpbHRlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3BlY3Muc2F3U291cmNlKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChBTlkpLmFwcGVuZChUQVJHRVRfU0VQKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoaW52ZXJzZVRhcmdldCk7CisKKyAgICAgICAgICAgIFN0cmluZyBiYXNpY0lEID0gQU5ZICsgVEFSR0VUX1NFUCArIGludmVyc2VUYXJnZXQ7CisKKyAgICAgICAgICAgIGlmIChzcGVjcy52YXJpYW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKFZBUklBTlRfU0VQKS5hcHBlbmQoc3BlY3MudmFyaWFudCk7CisgICAgICAgICAgICAgICAgYmFzaWNJRCA9IGJhc2ljSUQgKyBWQVJJQU5UX1NFUCArIHNwZWNzLnZhcmlhbnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbmV3IFNpbmdsZUlEKGJ1Zi50b1N0cmluZygpLCBiYXNpY0lEKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9UcmFuc2xpdGVyYXRvclBhcnNlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JQYXJzZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lOWRlYmU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JQYXJzZXIuamF2YQpAQCAtMCwwICsxLDE1MzkgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChjKSAyMDAxLTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLmRhdGEuUmVzb3VyY2VSZWFkZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnRleHQuUGFyc2VQb3NpdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CisKK2NsYXNzIFRyYW5zbGl0ZXJhdG9yUGFyc2VyIHsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIERhdGEgbWVtYmVycworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUFVCTElDIGRhdGEgbWVtYmVyLgorICAgICAqIEEgVmVjdG9yIG9mIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgb2JqZWN0cywgb25lIGZvciBlYWNoIGRpc2NyZXRlIGdyb3VwCisgICAgICogb2YgcnVsZXMgaW4gdGhlIHJ1bGUgc2V0CisgICAgICovCisgICAgcHVibGljIFZlY3RvciBkYXRhVmVjdG9yOworCisgICAgLyoqCisgICAgICogUFVCTElDIGRhdGEgbWVtYmVyLgorICAgICAqIEEgVmVjdG9yIG9mIFN0cmluZ3MgY29udGFpbmluZyBhbGwgb2YgdGhlIElEIGJsb2NrcyBpbiB0aGUgcnVsZSBzZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgVmVjdG9yIGlkQmxvY2tWZWN0b3I7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY3VycmVudCBkYXRhIG9iamVjdCBmb3Igd2hpY2ggd2UgYXJlIHBhcnNpbmcgcnVsZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgY3VyRGF0YTsKKworICAgIC8qKgorICAgICAqIFBVQkxJQyBkYXRhIG1lbWJlciBjb250YWluaW5nIHRoZSBwYXJzZWQgY29tcG91bmQgZmlsdGVyLCBpZiBhbnkuCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgY29tcG91bmRGaWx0ZXI7CisKKworICAgIHByaXZhdGUgaW50IGRpcmVjdGlvbjsKKworICAgIC8qKgorICAgICAqIFRlbXBvcmFyeSBzeW1ib2wgdGFibGUgdXNlZCBkdXJpbmcgcGFyc2luZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFBhcnNlRGF0YSBwYXJzZURhdGE7CisKKyAgICAvKioKKyAgICAgKiBUZW1wb3JhcnkgdmVjdG9yIG9mIHNldCB2YXJpYWJsZXMuICBXaGVuIHBhcnNpbmcgaXMgY29tcGxldGUsIHRoaXMKKyAgICAgKiBpcyBjb3BpZWQgaW50byB0aGUgYXJyYXkgZGF0YS52YXJpYWJsZXMuICBBcyB3aXRoIGRhdGEudmFyaWFibGVzLAorICAgICAqIGVsZW1lbnQgMCBjb3JyZXNwb25kcyB0byBjaGFyYWN0ZXIgZGF0YS52YXJpYWJsZXNCYXNlLgorICAgICAqLworICAgIHByaXZhdGUgVmVjdG9yIHZhcmlhYmxlc1ZlY3RvcjsKKworICAgIC8qKgorICAgICAqIFRlbXBvcmFyeSB0YWJsZSBvZiB2YXJpYWJsZSBuYW1lcy4gIFdoZW4gcGFyc2luZyBpcyBjb21wbGV0ZSwgdGhpcyBpcworICAgICAqIGNvcGllZCBpbnRvIGRhdGEudmFyaWFibGVOYW1lcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIEhhc2h0YWJsZSB2YXJpYWJsZU5hbWVzOworCisgICAgLyoqCisgICAgICogU3RyaW5nIG9mIHN0YW5kaW5zIGZvciBzZWdtZW50cy4gIFVzZWQgZHVyaW5nIHRoZSBwYXJzaW5nIG9mIGEgc2luZ2xlCisgICAgICogcnVsZS4gIHNlZ21lbnRTdGFuZGlucy5jaGFyQXQoMCkgaXMgdGhlIHN0YW5kaW4gZm9yICIkMSIgYW5kIGNvcnJlc3BvbmRzCisgICAgICogdG8gU3RyaW5nTWF0Y2hlciBvYmplY3Qgc2VnbWVudE9iamVjdHMuZWxlbWVudEF0KDApLCBldGMuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgc2VnbWVudFN0YW5kaW5zOworCisgICAgLyoqCisgICAgICogVmVjdG9yIG9mIFN0cmluZ01hdGNoZXIgb2JqZWN0cyBmb3Igc2VnbWVudHMuICBVc2VkIGR1cmluZyB0aGUKKyAgICAgKiBwYXJzaW5nIG9mIGEgc2luZ2xlIHJ1bGUuICAKKyAgICAgKiBzZWdtZW50U3RhbmRpbnMuY2hhckF0KDApIGlzIHRoZSBzdGFuZGluIGZvciAiJDEiIGFuZCBjb3JyZXNwb25kcworICAgICAqIHRvIFN0cmluZ01hdGNoZXIgb2JqZWN0IHNlZ21lbnRPYmplY3RzLmVsZW1lbnRBdCgwKSwgZXRjLgorICAgICAqLworICAgIHByaXZhdGUgVmVjdG9yIHNlZ21lbnRPYmplY3RzOworCisgICAgLyoqCisgICAgICogVGhlIG5leHQgYXZhaWxhYmxlIHN0YW5kLWluIGZvciB2YXJpYWJsZXMuICBUaGlzIHN0YXJ0cyBhdCBzb21lIHBvaW50IGluCisgICAgICogdGhlIHByaXZhdGUgdXNlIGFyZWEgKGRpc2NvdmVyZWQgZHluYW1pY2FsbHkpIGFuZCBpbmNyZW1lbnRzIHVwIHRvd2FyZAorICAgICAqIDxjb2RlPnZhcmlhYmxlTGltaXQ8L2NvZGU+LiAgQXQgYW55IHBvaW50IGR1cmluZyBwYXJzaW5nLCBhdmFpbGFibGUKKyAgICAgKiB2YXJpYWJsZXMgYXJlIDxjb2RlPnZhcmlhYmxlTmV4dC4udmFyaWFibGVMaW1pdC0xPC9jb2RlPi4KKyAgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgdmFyaWFibGVOZXh0OworCisgICAgLyoqCisgICAgICogVGhlIGxhc3QgYXZhaWxhYmxlIHN0YW5kLWluIGZvciB2YXJpYWJsZXMuICBUaGlzIGlzIGRpc2NvdmVyZWQKKyAgICAgKiBkeW5hbWljYWxseS4gIEF0IGFueSBwb2ludCBkdXJpbmcgcGFyc2luZywgYXZhaWxhYmxlIHZhcmlhYmxlcyBhcmUKKyAgICAgKiA8Y29kZT52YXJpYWJsZU5leHQuLnZhcmlhYmxlTGltaXQtMTwvY29kZT4uICBEdXJpbmcgdmFyaWFibGUgZGVmaW5pdGlvbgorICAgICAqIHdlIHVzZSB0aGUgc3BlY2lhbCB2YWx1ZSB2YXJpYWJsZUxpbWl0LTEgYXMgYSBwbGFjZWhvbGRlci4KKyAgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgdmFyaWFibGVMaW1pdDsKKworICAgIC8qKgorICAgICAqIFdoZW4gd2UgZW5jb3VudGVyIGFuIHVuZGVmaW5lZCB2YXJpYWJsZSwgd2UgZG8gbm90IGltbWVkaWF0ZWx5IHNpZ25hbAorICAgICAqIGFuIGVycm9yLCBpbiBjYXNlIHdlIGFyZSBkZWZpbmluZyB0aGlzIHZhcmlhYmxlLCBlLmcuLCAiJGEgPSBbYS16XTsiLgorICAgICAqIEluc3RlYWQsIHdlIHNhdmUgdGhlIG5hbWUgb2YgdGhlIHVuZGVmaW5lZCB2YXJpYWJsZSwgYW5kIHN1YnN0aXR1dGUKKyAgICAgKiBpbiB0aGUgcGxhY2Vob2xkZXIgY2hhciB2YXJpYWJsZUxpbWl0IC0gMSwgYW5kIGRlY3JlbWVudAorICAgICAqIHZhcmlhYmxlTGltaXQuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgdW5kZWZpbmVkVmFyaWFibGVOYW1lOworCisgICAgLyoqCisgICAgICogVGhlIHN0YW5kLWluIGNoYXJhY3RlciBmb3IgdGhlICdkb3QnIHNldCwgcmVwcmVzZW50ZWQgYnkgJy4nIGluCisgICAgICogcGF0dGVybnMuICBUaGlzIGlzIGFsbG9jYXRlZCB0aGUgZmlyc3QgdGltZSBpdCBpcyBuZWVkZWQsIGFuZAorICAgICAqIHJldXNlZCB0aGVyZWFmdGVyLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGRvdFN0YW5kSW4gPSAtMTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gSW5kaWNhdG9yIGZvciBJRCBibG9ja3MKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSURfVE9LRU4gPSAiOjoiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJRF9UT0tFTl9MRU4gPSAyOworCisvKgorKHJlc2VydmVkIGZvciBmdXR1cmUgZXhwYW5zaW9uKQorICAgIC8vIG1hcmtlcnMgZm9yIGJlZ2lubmluZyBhbmQgZW5kIG9mIHJ1bGUgZ3JvdXBzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJFR0lOX1RPS0VOID0gIkJFR0lOIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRU5EX1RPS0VOID0gIkVORCI7CisqLworCisgICAgLy8gT3BlcmF0b3JzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBWQVJJQUJMRV9ERUZfT1AgICA9ICc9JzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEZPUldBUkRfUlVMRV9PUCAgID0gJz4nOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgUkVWRVJTRV9SVUxFX09QICAgPSAnPCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBGV0RSRVZfUlVMRV9PUCAgICA9ICd+JzsgLy8gaW50ZXJuYWwgcmVwIG9mIDw+IG9wCisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1BFUkFUT1JTID0gIj0+PFx1MjE5MFx1MjE5Mlx1MjE5NCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEhBTEZfRU5ERVJTID0gIj0+PFx1MjE5MFx1MjE5Mlx1MjE5NDsiOworCisgICAgLy8gT3RoZXIgc3BlY2lhbCBjaGFyYWN0ZXJzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBRVU9URSAgICAgICAgICAgICAgID0gJ1wnJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEVTQ0FQRSAgICAgICAgICAgICAgPSAnXFwnOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRU5EX09GX1JVTEUgICAgICAgICA9ICc7JzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFJVTEVfQ09NTUVOVF9DSEFSICAgPSAnIyc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENPTlRFWFRfQU5URSAgICAgICAgPSAneyc7IC8vIGFudGV7a2V5CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBDT05URVhUX1BPU1QgICAgICAgID0gJ30nOyAvLyBrZXl9cG9zdAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQ1VSU09SX1BPUyAgICAgICAgICA9ICd8JzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENVUlNPUl9PRkZTRVQgICAgICAgPSAnQCc7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBBTkNIT1JfU1RBUlQgICAgICAgID0gJ14nOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBLTEVFTkVfU1RBUiAgICAgICAgID0gJyonOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgT05FX09SX01PUkUgICAgICAgICA9ICcrJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFpFUk9fT1JfT05FICAgICAgICAgPSAnPyc7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIERPVCAgICAgICAgICAgICAgICAgPSAnLic7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERPVF9TRVQgICAgICAgICAgID0gIlteWzpacDpdWzpabDpdXFxyXFxuJF0iOworCisgICAgLy8gQnkgZGVmaW5pdGlvbiwgdGhlIEFOQ0hPUl9FTkQgc3BlY2lhbCBjaGFyYWN0ZXIgaXMgYQorICAgIC8vIHRyYWlsaW5nIFN5bWJvbFRhYmxlLlNZTUJPTF9SRUYgY2hhcmFjdGVyLgorICAgIC8vIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQU5DSE9SX0VORCAgICAgICA9ICckJzsKKworICAgIC8vIFNlZ21lbnRzIG9mIHRoZSBpbnB1dCBzdHJpbmcgYXJlIGRlbGltaXRlZCBieSAiKCIgYW5kICIpIi4gIEluIHRoZQorICAgIC8vIG91dHB1dCBzdHJpbmcgdGhlc2Ugc2VnbWVudHMgYXJlIHJlZmVyZW5jZWQgYXMgIiQxIiwgIiQyIiwgZXRjLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgU0VHTUVOVF9PUEVOICAgICAgICA9ICcoJzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFNFR01FTlRfQ0xPU0UgICAgICAgPSAnKSc7CisKKyAgICAvLyBBIGZ1bmN0aW9uIGlzIGRlbm90ZWQgJlNvdXJjZS1UYXJnZXQvVmFyaWFudCh0ZXh0KQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRlVOQ1RJT04gICAgICAgICAgICA9ICcmJzsKKworICAgIC8vIEFsaWFzZXMgZm9yIHNvbWUgb2YgdGhlIHN5bnRheCBjaGFyYWN0ZXJzLiBUaGVzZSBhcmUgcHJvdmlkZWQgc28KKyAgICAvLyB0cmFuc2xpdGVyYXRpb24gcnVsZXMgY2FuIGJlIGV4cHJlc3NlZCBpbiBYTUwgd2l0aG91dCBjbGFzaGluZyB3aXRoCisgICAgLy8gWE1MIHN5bnRheCBjaGFyYWN0ZXJzICc8JywgJz4nLCBhbmQgJyYnLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgQUxUX1JFVkVSU0VfUlVMRV9PUCA9ICdcdTIxOTAnOyAvLyBMZWZ0IEFycm93CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBBTFRfRk9SV0FSRF9SVUxFX09QID0gJ1x1MjE5Mic7IC8vIFJpZ2h0IEFycm93CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBBTFRfRldEUkVWX1JVTEVfT1AgID0gJ1x1MjE5NCc7IC8vIExlZnQgUmlnaHQgQXJyb3cKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEFMVF9GVU5DVElPTiAgICAgICAgPSAnXHUyMjA2JzsgLy8gSW5jcmVtZW50ICh+R3JlZWsgQ2FwaXRhbCBEZWx0YSkKKyAgICAKKyAgICAvLyBTcGVjaWFsIGNoYXJhY3RlcnMgZGlzYWxsb3dlZCBhdCB0aGUgdG9wIGxldmVsCisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBJTExFR0FMX1RPUCA9IG5ldyBVbmljb2RlU2V0KCJbXFwpXSIpOworCisgICAgLy8gU3BlY2lhbCBjaGFyYWN0ZXJzIGRpc2FsbG93ZWQgd2l0aGluIGEgc2VnbWVudAorICAgIHByaXZhdGUgc3RhdGljIFVuaWNvZGVTZXQgSUxMRUdBTF9TRUcgPSBuZXcgVW5pY29kZVNldCgiW1xce1xcfVxcfFxcQF0iKTsKKworICAgIC8vIFNwZWNpYWwgY2hhcmFjdGVycyBkaXNhbGxvd2VkIHdpdGhpbiBhIGZ1bmN0aW9uIGFyZ3VtZW50CisgICAgcHJpdmF0ZSBzdGF0aWMgVW5pY29kZVNldCBJTExFR0FMX0ZVTkMgPSBuZXcgVW5pY29kZVNldCgiW1xcXlxcKFxcLlxcKlxcK1xcP1xce1xcfVxcfFxcQF0iKTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNsYXNzIFBhcnNlRGF0YQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHRoZSBTeW1ib2xUYWJsZSBpbnRlcmZhY2UuICBJdCBpcyB1c2VkCisgICAgICogZHVyaW5nIHBhcnNpbmcgdG8gZ2l2ZSBVbmljb2RlU2V0IGFjY2VzcyB0byB2YXJpYWJsZXMgdGhhdAorICAgICAqIGhhdmUgYmVlbiBkZWZpbmVkIHNvIGZhci4gIE5vdGUgdGhhdCBpdCB1c2VzIHZhcmlhYmxlc1ZlY3RvciwKKyAgICAgKiBfbm90XyBkYXRhLnZhcmlhYmxlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGNsYXNzIFBhcnNlRGF0YSBpbXBsZW1lbnRzIFN5bWJvbFRhYmxlIHsKKworICAgICAgICAvKioKKyAgICAgICAgICogSW1wbGVtZW50IFN5bWJvbFRhYmxlIEFQSS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBjaGFyW10gbG9va3VwKFN0cmluZyBuYW1lKSB7CisgICAgICAgICAgICByZXR1cm4gKGNoYXJbXSkgdmFyaWFibGVOYW1lcy5nZXQobmFtZSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogSW1wbGVtZW50IFN5bWJvbFRhYmxlIEFQSS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBVbmljb2RlTWF0Y2hlciBsb29rdXBNYXRjaGVyKGludCBjaCkgeworICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHdlIGNhbm5vdCB1c2UgZGF0YS5sb29rdXAoKSBiZWNhdXNlIHRoZQorICAgICAgICAgICAgLy8gc2V0IGFycmF5IGhhcyBub3QgYmVlbiBjb25zdHJ1Y3RlZCB5ZXQuCisgICAgICAgICAgICBpbnQgaSA9IGNoIC0gY3VyRGF0YS52YXJpYWJsZXNCYXNlOworICAgICAgICAgICAgaWYgKGkgPj0gMCAmJiBpIDwgdmFyaWFibGVzVmVjdG9yLnNpemUoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiAoVW5pY29kZU1hdGNoZXIpIHZhcmlhYmxlc1ZlY3Rvci5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbXBsZW1lbnQgU3ltYm9sVGFibGUgQVBJLiAgUGFyc2Ugb3V0IGEgc3ltYm9sIHJlZmVyZW5jZQorICAgICAgICAgKiBuYW1lLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBwYXJzZVJlZmVyZW5jZShTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MsIGludCBsaW1pdCkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gcG9zLmdldEluZGV4KCk7CisgICAgICAgICAgICBpbnQgaSA9IHN0YXJ0OworICAgICAgICAgICAgd2hpbGUgKGkgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IHRleHQuY2hhckF0KGkpOworICAgICAgICAgICAgICAgIGlmICgoaT09c3RhcnQgJiYgIUNoYXJhY3Rlci5pc1VuaWNvZGVJZGVudGlmaWVyU3RhcnQoYykpIHx8CisgICAgICAgICAgICAgICAgICAgICFDaGFyYWN0ZXIuaXNVbmljb2RlSWRlbnRpZmllclBhcnQoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpID09IHN0YXJ0KSB7IC8vIE5vIHZhbGlkIG5hbWUgY2hhcnMKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBvcy5zZXRJbmRleChpKTsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhzdGFydCwgaSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGNoYXJhY3RlciBpcyBhIG1hdGNoZXIgc3RhbmRpbiBvciBhIHBsYWluCisgICAgICAgICAqIGNoYXJhY3RlciAobm9uIHN0YW5kaW4pLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNNYXRjaGVyKGludCBjaCkgeworICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHdlIGNhbm5vdCB1c2UgZGF0YS5sb29rdXAoKSBiZWNhdXNlIHRoZQorICAgICAgICAgICAgLy8gc2V0IGFycmF5IGhhcyBub3QgYmVlbiBjb25zdHJ1Y3RlZCB5ZXQuCisgICAgICAgICAgICBpbnQgaSA9IGNoIC0gY3VyRGF0YS52YXJpYWJsZXNCYXNlOworICAgICAgICAgICAgaWYgKGkgPj0gMCAmJiBpIDwgdmFyaWFibGVzVmVjdG9yLnNpemUoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB2YXJpYWJsZXNWZWN0b3IuZWxlbWVudEF0KGkpIGluc3RhbmNlb2YgVW5pY29kZU1hdGNoZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gY2hhcmFjdGVyIGlzIGEgcmVwbGFjZXIgc3RhbmRpbiBvciBhIHBsYWluCisgICAgICAgICAqIGNoYXJhY3RlciAobm9uIHN0YW5kaW4pLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNSZXBsYWNlcihpbnQgY2gpIHsKKyAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBjYW5ub3QgdXNlIGRhdGEubG9va3VwKCkgYmVjYXVzZSB0aGUKKyAgICAgICAgICAgIC8vIHNldCBhcnJheSBoYXMgbm90IGJlZW4gY29uc3RydWN0ZWQgeWV0LgorICAgICAgICAgICAgaW50IGkgPSBjaCAtIGN1ckRhdGEudmFyaWFibGVzQmFzZTsKKyAgICAgICAgICAgIGlmIChpID49IDAgJiYgaSA8IHZhcmlhYmxlc1ZlY3Rvci5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFyaWFibGVzVmVjdG9yLmVsZW1lbnRBdChpKSBpbnN0YW5jZW9mIFVuaWNvZGVSZXBsYWNlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2xhc3NlcyBSdWxlQm9keSwgUnVsZUFycmF5LCBhbmQgUnVsZVJlYWRlcgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQSBwcml2YXRlIGFic3RyYWN0IGNsYXNzIHJlcHJlc2VudGluZyB0aGUgaW50ZXJmYWNlIHRvIHJ1bGUKKyAgICAgKiBzb3VyY2UgY29kZSB0aGF0IGlzIGJyb2tlbiB1cCBpbnRvIGxpbmVzLiAgSGFuZGxlcyB0aGUKKyAgICAgKiBmb2xkaW5nIG9mIGxpbmVzIHRlcm1pbmF0ZWQgYnkgYSBiYWNrc2xhc2guICBUaGlzIGZvbGRpbmcKKyAgICAgKiBpcyBsaW1pdGVkOyBpdCBkb2VzIG5vdCBhY2NvdW50IGZvciBjb21tZW50cywgcXVvdGVzLCBvcgorICAgICAqIGVzY2FwZXMsIHNvIGl0cyB1c2UgdG8gYmUgbGltaXRlZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBhYnN0cmFjdCBjbGFzcyBSdWxlQm9keSB7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHJpZXZlIHRoZSBuZXh0IGxpbmUgb2YgdGhlIHNvdXJjZSwgb3IgcmV0dXJuIG51bGwgaWYKKyAgICAgICAgICogbm9uZS4gIEZvbGRzIGxpbmVzIHRlcm1pbmF0ZWQgYnkgYSBiYWNrc2xhc2ggaW50byB0aGUKKyAgICAgICAgICogbmV4dCBsaW5lLCB3aXRob3V0IHJlZ2FyZCBmb3IgY29tbWVudHMsIHF1b3Rlcywgb3IKKyAgICAgICAgICogZXNjYXBlcy4KKyAgICAgICAgICovCisgICAgICAgIFN0cmluZyBuZXh0TGluZSgpIHsKKyAgICAgICAgICAgIFN0cmluZyBzID0gaGFuZGxlTmV4dExpbmUoKTsKKyAgICAgICAgICAgIGlmIChzICE9IG51bGwgJiYKKyAgICAgICAgICAgICAgICBzLmxlbmd0aCgpID4gMCAmJgorICAgICAgICAgICAgICAgIHMuY2hhckF0KHMubGVuZ3RoKCkgLSAxKSA9PSAnXFwnKSB7CisKKyAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgYiA9IG5ldyBTdHJpbmdCdWZmZXIocyk7CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBiLmRlbGV0ZUNoYXJBdChiLmxlbmd0aCgpLTEpOworICAgICAgICAgICAgICAgICAgICBzID0gaGFuZGxlTmV4dExpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYi5hcHBlbmQocyk7CisgICAgICAgICAgICAgICAgfSB3aGlsZSAocy5sZW5ndGgoKSA+IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICBzLmNoYXJBdChzLmxlbmd0aCgpIC0gMSkgPT0gJ1xcJyk7CisKKyAgICAgICAgICAgICAgICBzID0gYi50b1N0cmluZygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHM7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmVzZXQgdG8gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHNvdXJjZS4KKyAgICAgICAgICovCisgICAgICAgIGFic3RyYWN0IHZvaWQgcmVzZXQoKTsKKworICAgICAgICAvKioKKyAgICAgICAgICogU3ViY2xhc3MgbWV0aG9kIHRvIHJldHVybiB0aGUgbmV4dCBsaW5lIG9mIHRoZSBzb3VyY2UuCisgICAgICAgICAqLworICAgICAgICBhYnN0cmFjdCBTdHJpbmcgaGFuZGxlTmV4dExpbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSdWxlQm9keSBzdWJjbGFzcyBmb3IgYSBTdHJpbmdbXSBhcnJheS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBSdWxlQXJyYXkgZXh0ZW5kcyBSdWxlQm9keSB7CisgICAgICAgIFN0cmluZ1tdIGFycmF5OworICAgICAgICBpbnQgaTsKKyAgICAgICAgcHVibGljIFJ1bGVBcnJheShTdHJpbmdbXSBhcnJheSkgeyB0aGlzLmFycmF5ID0gYXJyYXk7IGkgPSAwOyB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgaGFuZGxlTmV4dExpbmUoKSB7CisgICAgICAgICAgICByZXR1cm4gKGkgPCBhcnJheS5sZW5ndGgpID8gYXJyYXlbaSsrXSA6IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoKSB7CisgICAgICAgICAgICBpID0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJ1bGVCb2R5IHN1YmNsYXNzIGZvciBhIFJlc291cmNlUmVhZGVyLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFJ1bGVSZWFkZXIgZXh0ZW5kcyBSdWxlQm9keSB7CisgICAgICAgIFJlc291cmNlUmVhZGVyIHJlYWRlcjsKKyAgICAgICAgcHVibGljIFJ1bGVSZWFkZXIoUmVzb3VyY2VSZWFkZXIgcmVhZGVyKSB7IHRoaXMucmVhZGVyID0gcmVhZGVyOyB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgaGFuZGxlTmV4dExpbmUoKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJldHVybiByZWFkZXIucmVhZExpbmUoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGphdmEuaW8uSU9FeGNlcHRpb24gZSkge30KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkgeworICAgICAgICAgICAgcmVhZGVyLnJlc2V0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjbGFzcyBSdWxlSGFsZgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQSBjbGFzcyByZXByZXNlbnRpbmcgb25lIHNpZGUgb2YgYSBydWxlLiAgVGhpcyBjbGFzcyBrbm93cyBob3cgdG8KKyAgICAgKiBwYXJzZSBoYWxmIG9mIGEgcnVsZS4gIEl0IGlzIHRpZ2h0bHkgY291cGxlZCB0byB0aGUgbWV0aG9kCisgICAgICogVHJhbnNsaXRlcmF0b3JQYXJzZXIucGFyc2VSdWxlKCkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgUnVsZUhhbGYgeworCisgICAgICAgIHB1YmxpYyBTdHJpbmcgdGV4dDsKKworICAgICAgICBwdWJsaWMgaW50IGN1cnNvciA9IC0xOyAvLyBwb3NpdGlvbiBvZiBjdXJzb3IgaW4gdGV4dAorICAgICAgICBwdWJsaWMgaW50IGFudGUgPSAtMTsgICAvLyBwb3NpdGlvbiBvZiBhbnRlIGNvbnRleHQgbWFya2VyICd7JyBpbiB0ZXh0CisgICAgICAgIHB1YmxpYyBpbnQgcG9zdCA9IC0xOyAgIC8vIHBvc2l0aW9uIG9mIHBvc3QgY29udGV4dCBtYXJrZXIgJ30nIGluIHRleHQKKworICAgICAgICAvLyBSZWNvcmQgdGhlIG9mZnNldCB0byB0aGUgY3Vyc29yIGVpdGhlciB0byB0aGUgbGVmdCBvciB0byB0aGUKKyAgICAgICAgLy8gcmlnaHQgb2YgdGhlIGtleS4gIFRoaXMgaXMgaW5kaWNhdGVkIGJ5IGNoYXJhY3RlcnMgb24gdGhlIG91dHB1dAorICAgICAgICAvLyBzaWRlIHRoYXQgYWxsb3cgdGhlIGN1cnNvciB0byBiZSBwb3NpdGlvbmVkIGFyYml0cmFyaWx5IHdpdGhpbgorICAgICAgICAvLyB0aGUgbWF0Y2hpbmcgdGV4dC4gIEZvciBleGFtcGxlLCBhYmN7ZGVmfSA+IHwgQEBAIHh5ejsgY2hhbmdlcworICAgICAgICAvLyBkZWYgdG8geHl6IGFuZCBtb3ZlcyB0aGUgY3Vyc29yIHRvIGJlZm9yZSBhYmMuICBPZmZzZXQgY2hhcmFjdGVycworICAgICAgICAvLyBtdXN0IGJlIGF0IHRoZSBzdGFydCBvciBlbmQsIGFuZCB0aGV5IGNhbm5vdCBtb3ZlIHRoZSBjdXJzb3IgcGFzdAorICAgICAgICAvLyB0aGUgYW50ZS0gb3IgcG9zdGNvbnRleHQgdGV4dC4gIFBsYWNlaG9sZGVycyBhcmUgb25seSB2YWxpZCBpbgorICAgICAgICAvLyBvdXRwdXQgdGV4dC4gIFRoZSBsZW5ndGggb2YgdGhlIGFudGUgYW5kIHBvc3QgY29udGV4dCBpcworICAgICAgICAvLyBkZXRlcm1pbmVkIGF0IHJ1bnRpbWUsIGJlY2F1c2Ugb2Ygc3VwcGxlbWVudGFscyBhbmQgcXVhbnRpZmllcnMuCisgICAgICAgIHB1YmxpYyBpbnQgY3Vyc29yT2Zmc2V0ID0gMDsgLy8gb25seSBub256ZXJvIG9uIG91dHB1dCBzaWRlCisKKyAgICAgICAgLy8gUG9zaXRpb24gb2YgZmlyc3QgQ1VSU09SX09GRlNFVCBvbiBfcmlnaHRfLiAgVGhpcyB3aWxsIGJlIC0xCisgICAgICAgIC8vIGZvciB8QCwgLTIgZm9yIHxAQCwgZXRjLiwgYW5kIDEgZm9yIEB8LCAyIGZvciBAQHwsIGV0Yy4KKyAgICAgICAgcHJpdmF0ZSBpbnQgY3Vyc29yT2Zmc2V0UG9zID0gMDsKKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBhbmNob3JTdGFydCA9IGZhbHNlOworICAgICAgICBwdWJsaWMgYm9vbGVhbiBhbmNob3JFbmQgICA9IGZhbHNlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgc2VnbWVudCBudW1iZXIgZnJvbSAxLi5uIG9mIHRoZSBuZXh0ICcoJyB3ZSBzZWUKKyAgICAgICAgICogZHVyaW5nIHBhcnNpbmc7IDEtYmFzZWQuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBuZXh0U2VnbWVudE51bWJlciA9IDE7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFBhcnNlIG9uZSBzaWRlIG9mIGEgcnVsZSwgc3RvcHBpbmcgYXQgZWl0aGVyIHRoZSBsaW1pdCwKKyAgICAgICAgICogdGhlIEVORF9PRl9SVUxFIGNoYXJhY3Rlciwgb3IgYW4gb3BlcmF0b3IuCisgICAgICAgICAqIEByZXR1cm4gdGhlIGluZGV4IGFmdGVyIHRoZSB0ZXJtaW5hdGluZyBjaGFyYWN0ZXIsIG9yCisgICAgICAgICAqIGlmIGxpbWl0IHdhcyByZWFjaGVkLCBsaW1pdAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBwYXJzZShTdHJpbmcgcnVsZSwgaW50IHBvcywgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yUGFyc2VyIHBhcnNlcikgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gcG9zOworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIHBvcyA9IHBhcnNlU2VjdGlvbihydWxlLCBwb3MsIGxpbWl0LCBwYXJzZXIsIGJ1ZiwgSUxMRUdBTF9UT1AsIGZhbHNlKTsKKyAgICAgICAgICAgIHRleHQgPSBidWYudG9TdHJpbmcoKTsKKworICAgICAgICAgICAgaWYgKGN1cnNvck9mZnNldCA+IDAgJiYgY3Vyc29yICE9IGN1cnNvck9mZnNldFBvcykgeworICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNaXNwbGFjZWQgIiArIENVUlNPUl9QT1MsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIHBvczsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBQYXJzZSBhIHNlY3Rpb24gb2Ygb25lIHNpZGUgb2YgYSBydWxlLCBzdG9wcGluZyBhdCBlaXRoZXIKKyAgICAgICAgICogdGhlIGxpbWl0LCB0aGUgRU5EX09GX1JVTEUgY2hhcmFjdGVyLCBhbiBvcGVyYXRvciwgb3IgYQorICAgICAgICAgKiBzZWdtZW50IGNsb3NlIGNoYXJhY3Rlci4gIFRoaXMgbWV0aG9kIHBhcnNlcyBib3RoIGEKKyAgICAgICAgICogdG9wLWxldmVsIHJ1bGUgaGFsZiBhbmQgYSBzZWdtZW50IHdpdGhpbiBzdWNoIGEgcnVsZSBoYWxmLgorICAgICAgICAgKiBJdCBjYWxscyBpdHNlbGYgcmVjdXJzaXZlbHkgdG8gcGFyc2Ugc2VnbWVudHMgYW5kIG5lc3RlZAorICAgICAgICAgKiBzZWdtZW50cy4KKyAgICAgICAgICogQHBhcmFtIGJ1ZiBidWZmZXIgaW50byB3aGljaCB0byBhY2N1bXVsYXRlIHRoZSBydWxlIHBhdHRlcm4KKyAgICAgICAgICogY2hhcmFjdGVycywgZWl0aGVyIGxpdGVyYWwgY2hhcmFjdGVycyBmcm9tIHRoZSBydWxlIG9yCisgICAgICAgICAqIHN0YW5kaW5zIGZvciBVbmljb2RlTWF0Y2hlciBvYmplY3RzIGluY2x1ZGluZyBzZWdtZW50cy4KKyAgICAgICAgICogQHBhcmFtIGlsbGVnYWwgdGhlIHNldCBvZiBzcGVjaWFsIGNoYXJhY3RlcnMgdGhhdCBpcyBpbGxlZ2FsIGR1cmluZworICAgICAgICAgKiB0aGlzIHBhcnNlLgorICAgICAgICAgKiBAcGFyYW0gaXNTZWdtZW50IGlmIHRydWUsIHRoZW4gd2UndmUgYWxyZWFkeSBzZWVuIGEgJygnIGFuZAorICAgICAgICAgKiBwb3Mgb24gZW50cnkgcG9pbnRzIHJpZ2h0IGFmdGVyIGl0LiAgQWNjdW11bGF0ZSBldmVyeXRoaW5nCisgICAgICAgICAqIHVwIHRvIHRoZSBjbG9zaW5nICcpJywgcHV0IGl0IGluIGEgc2VnbWVudCBtYXRjaGVyIG9iamVjdCwKKyAgICAgICAgICogZ2VuZXJhdGUgYSBzdGFuZGluIGZvciBpdCwgYW5kIGFkZCB0aGUgc3RhbmRpbiB0byBidWYuICBBcworICAgICAgICAgKiBhIHNpZGUgZWZmZWN0LCB1cGRhdGUgdGhlIHNlZ21lbnRzIHZlY3RvciB3aXRoIGEgcmVmZXJlbmNlCisgICAgICAgICAqIHRvIHRoZSBzZWdtZW50IG1hdGNoZXIuICBUaGlzIHdvcmtzIHJlY3Vyc2l2ZWx5IGZvciBuZXN0ZWQKKyAgICAgICAgICogc2VnbWVudHMuICBJZiBpc1NlZ21lbnQgaXMgZmFsc2UsIGp1c3QgYWNjdW11bGF0ZQorICAgICAgICAgKiBjaGFyYWN0ZXJzIGludG8gYnVmLgorICAgICAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBhZnRlciB0aGUgdGVybWluYXRpbmcgY2hhcmFjdGVyLCBvcgorICAgICAgICAgKiBpZiBsaW1pdCB3YXMgcmVhY2hlZCwgbGltaXQKKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IHBhcnNlU2VjdGlvbihTdHJpbmcgcnVsZSwgaW50IHBvcywgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsaXRlcmF0b3JQYXJzZXIgcGFyc2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTZXQgaWxsZWdhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNTZWdtZW50KSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBwb3M7CisgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBwID0gbnVsbDsKKyAgICAgICAgICAgIGludCBxdW90ZVN0YXJ0ID0gLTE7IC8vIE1vc3QgcmVjZW50ICdzaW5nbGUgcXVvdGVkIHN0cmluZycKKyAgICAgICAgICAgIGludCBxdW90ZUxpbWl0ID0gLTE7CisgICAgICAgICAgICBpbnQgdmFyU3RhcnQgPSAtMTsgLy8gTW9zdCByZWNlbnQgJHZhcmlhYmxlUmVmZXJlbmNlCisgICAgICAgICAgICBpbnQgdmFyTGltaXQgPSAtMTsKKyAgICAgICAgICAgIGludFtdIGlyZWYgPSBuZXcgaW50WzFdOworICAgICAgICAgICAgaW50IGJ1ZlN0YXJ0ID0gYnVmLmxlbmd0aCgpOworCisgICAgICAgIG1haW46CisgICAgICAgICAgICB3aGlsZSAocG9zIDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICAvLyBTaW5jZSBhbGwgc3ludGF4IGNoYXJhY3RlcnMgYXJlIGluIHRoZSBCTVAsIGZldGNoaW5nCisgICAgICAgICAgICAgICAgLy8gMTYtYml0IGNvZGUgdW5pdHMgc3VmZmljZXMgaGVyZS4KKyAgICAgICAgICAgICAgICBjaGFyIGMgPSBydWxlLmNoYXJBdChwb3MrKyk7CisgICAgICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBIQUxGX0VOREVSUyBpcyBhbGwgY2hhcnMgdGhhdCBlbmQgYSBydWxlIGhhbGY6ICI8Pj07IgorICAgICAgICAgICAgICAgIGlmIChIQUxGX0VOREVSUy5pbmRleE9mKGMpID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzU2VnbWVudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIlVuY2xvc2VkIHNlZ21lbnQiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGFuY2hvckVuZCkgeworICAgICAgICAgICAgICAgICAgICAvLyBUZXh0IGFmdGVyIGEgcHJlc3VtZWQgZW5kIGFuY2hvciBpcyBhIHN5bnRheCBlcnIKKyAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1hbGZvcm1lZCB2YXJpYWJsZSByZWZlcmVuY2UiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChVbmljb2RlU2V0LnJlc2VtYmxlc1BhdHRlcm4ocnVsZSwgcG9zLTEpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChwcCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcCA9IG5ldyBQYXJzZVBvc2l0aW9uKDApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHBwLnNldEluZGV4KHBvcy0xKTsgLy8gQmFja3VwIHRvIG9wZW5pbmcgJ1snCisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocGFyc2VyLnBhcnNlU2V0KHJ1bGUsIHBwKSk7CisgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBwLmdldEluZGV4KCk7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBlc2NhcGVzCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gRVNDQVBFKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJUcmFpbGluZyBiYWNrc2xhc2giLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaXJlZlswXSA9IHBvczsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVzY2FwZWQgPSBVdGlsaXR5LnVuZXNjYXBlQXQocnVsZSwgaXJlZik7CisgICAgICAgICAgICAgICAgICAgIHBvcyA9IGlyZWZbMF07CisgICAgICAgICAgICAgICAgICAgIGlmIChlc2NhcGVkID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWFsZm9ybWVkIGVzY2FwZSIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwYXJzZXIuY2hlY2tWYXJpYWJsZVJhbmdlKGVzY2FwZWQsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgZXNjYXBlZCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBIYW5kbGUgcXVvdGVkIG1hdHRlcgorICAgICAgICAgICAgICAgIGlmIChjID09IFFVT1RFKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBpcSA9IHJ1bGUuaW5kZXhPZihRVU9URSwgcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlxID09IHBvcykgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChjKTsgLy8gUGFyc2UgWycnXSBvdXRzaWRlIHF1b3RlcyBhcyBbJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogVGhpcyBsb29wIHBpY2tzIHVwIGEgcnVuIG9mIHF1b3RlZCB0ZXh0IG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICogZm9ybSAnYWFhYScgZWFjaCB0aW1lIHRocm91Z2guICBJZiB0aGlzIHJ1bgorICAgICAgICAgICAgICAgICAgICAgICAgICogaGFzbid0IHJlYWxseSBlbmRlZCAoJ2FhYWEnJ2JiYmInKSB0aGVuIGl0IGtlZXBzCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBsb29waW5nLCBlYWNoIHRpbWUgYWRkaW5nIG9uIGEgbmV3IHJ1bi4gIFdoZW4gaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIHJlYWNoZXMgdGhlIGZpbmFsIHF1b3RlIGl0IGJyZWFrcy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVTdGFydCA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXEgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJVbnRlcm1pbmF0ZWQgcXVvdGUiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocnVsZS5zdWJzdHJpbmcocG9zLCBpcSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGlxKzE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcyA8IGxpbWl0ICYmIHJ1bGUuY2hhckF0KHBvcykgPT0gUVVPVEUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQYXJzZSBbJyddIGluc2lkZSBxdW90ZXMgYXMgWyddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlxID0gcnVsZS5pbmRleE9mKFFVT1RFLCBwb3MrMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ29udGludWUgbG9vcGluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlTGltaXQgPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaXE9cXVvdGVTdGFydDsgaXE8cXVvdGVMaW1pdDsgKytpcSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlci5jaGVja1ZhcmlhYmxlUmFuZ2UoYnVmLmNoYXJBdChpcSksIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwYXJzZXIuY2hlY2tWYXJpYWJsZVJhbmdlKGMsIHJ1bGUsIHN0YXJ0KTsKKworICAgICAgICAgICAgICAgIGlmIChpbGxlZ2FsLmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJJbGxlZ2FsIGNoYXJhY3RlciAnIiArIGMgKyAnXCcnLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgLy8gRWxlbWVudHMgYWxsb3dlZCB3aXRoaW4gYW5kIG91dCBvZiBzZWdtZW50cworICAgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgY2FzZSBBTkNIT1JfU1RBUlQ6CisgICAgICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPT0gMCAmJiAhYW5jaG9yU3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvclN0YXJ0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNaXNwbGFjZWQgYW5jaG9yIHN0YXJ0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFNFR01FTlRfT1BFTjoKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnVmU2VnU3RhcnQgaXMgdGhlIG9mZnNldCBpbiBidWYgdG8gdGhlIGZpcnN0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXIgb2YgdGhlIHNlZ21lbnQgd2UgYXJlIHBhcnNpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYnVmU2VnU3RhcnQgPSBidWYubGVuZ3RoKCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlY29yZCBzZWdtZW50IG51bWJlciBub3csIHNpbmNlIG5leHRTZWdtZW50TnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aWxsIGJlIGluY3JlbWVudGVkIGR1cmluZyB0aGUgY2FsbCB0byBwYXJzZVNlY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGFyZSBuZXN0ZWQgc2VnbWVudHMuCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2VnbWVudE51bWJlciA9IG5leHRTZWdtZW50TnVtYmVyKys7IC8vIDEtYmFzZWQKKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGFyc2UgdGhlIHNlZ21lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBhcnNlU2VjdGlvbihydWxlLCBwb3MsIGxpbWl0LCBwYXJzZXIsIGJ1ZiwgSUxMRUdBTF9TRUcsIHRydWUpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZnRlciBwYXJzaW5nIGEgc2VnbWVudCwgdGhlIHJlbGV2YW50IGNoYXJhY3RlcnMgYXJlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiBidWYsIHN0YXJ0aW5nIGF0IG9mZnNldCBidWZTZWdTdGFydC4gIEV4dHJhY3QgdGhlbQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW50byBhIHN0cmluZyBtYXRjaGVyLCBhbmQgcmVwbGFjZSB0aGVtIHdpdGggYQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RhbmRpbiBmb3IgdGhhdCBtYXRjaGVyLgorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nTWF0Y2hlciBtID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nTWF0Y2hlcihidWYuc3Vic3RyaW5nKGJ1ZlNlZ1N0YXJ0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50TnVtYmVyLCBwYXJzZXIuY3VyRGF0YSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlY29yZCBhbmQgYXNzb2NpYXRlIG9iamVjdCBhbmQgc2VnbWVudCBudW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlci5zZXRTZWdtZW50T2JqZWN0KHNlZ21lbnROdW1iZXIsIG0pOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnNldExlbmd0aChidWZTZWdTdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHBhcnNlci5nZXRTZWdtZW50U3RhbmRpbihzZWdtZW50TnVtYmVyKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBGVU5DVElPTjoKKyAgICAgICAgICAgICAgICBjYXNlIEFMVF9GVU5DVElPTjoKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaXJlZlswXSA9IHBvczsKKyAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU2luZ2xlSUQgc2luZ2xlID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5wYXJzZUZpbHRlcklEKHJ1bGUsIGlyZWYpOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIG5leHQgY2hhcmFjdGVyIE1VU1QgYmUgYSBzZWdtZW50IG9wZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzaW5nbGUgPT0gbnVsbCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlsaXR5LnBhcnNlQ2hhcihydWxlLCBpcmVmLCBTRUdNRU5UX09QRU4pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIkludmFsaWQgZnVuY3Rpb24iLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9yIHQgPSBzaW5nbGUuZ2V0SW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiSW52YWxpZCBmdW5jdGlvbiBJRCIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnVmU2VnU3RhcnQgaXMgdGhlIG9mZnNldCBpbiBidWYgdG8gdGhlIGZpcnN0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXIgb2YgdGhlIHNlZ21lbnQgd2UgYXJlIHBhcnNpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYnVmU2VnU3RhcnQgPSBidWYubGVuZ3RoKCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhcnNlIHRoZSBzZWdtZW50CisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwYXJzZVNlY3Rpb24ocnVsZSwgaXJlZlswXSwgbGltaXQsIHBhcnNlciwgYnVmLCBJTExFR0FMX0ZVTkMsIHRydWUpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZnRlciBwYXJzaW5nIGEgc2VnbWVudCwgdGhlIHJlbGV2YW50IGNoYXJhY3RlcnMgYXJlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiBidWYsIHN0YXJ0aW5nIGF0IG9mZnNldCBidWZTZWdTdGFydC4KKyAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uUmVwbGFjZXIgciA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZ1bmN0aW9uUmVwbGFjZXIodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ1JlcGxhY2VyKGJ1Zi5zdWJzdHJpbmcoYnVmU2VnU3RhcnQpLCBwYXJzZXIuY3VyRGF0YSkpOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSBidWZmZXIgY29udGVudHMgd2l0aCBhIHN0YW5kLWluCisgICAgICAgICAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKGJ1ZlNlZ1N0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQocGFyc2VyLmdlbmVyYXRlU3RhbmRJbkZvcihyKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBTeW1ib2xUYWJsZS5TWU1CT0xfUkVGOgorICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgdmFyaWFibGUgcmVmZXJlbmNlcyBhbmQgc2VnbWVudCByZWZlcmVuY2VzICIkMSIgLi4gIiQ5IgorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBIHZhcmlhYmxlIHJlZmVyZW5jZSBtdXN0IGJlIGZvbGxvd2VkIGltbWVkaWF0ZWx5CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBieSBhIFVuaWNvZGUgaWRlbnRpZmllciBzdGFydCBhbmQgemVybyBvciBtb3JlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBVbmljb2RlIGlkZW50aWZpZXIgcGFydCBjaGFyYWN0ZXJzLCBvciBieSBhIGRpZ2l0CisgICAgICAgICAgICAgICAgICAgICAgICAvLyAxLi45IGlmIGl0IGlzIGEgc2VnbWVudCByZWZlcmVuY2UuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9zID09IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQSB2YXJpYWJsZSByZWYgY2hhcmFjdGVyIGF0IHRoZSBlbmQgYWN0cyBhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuIGFuY2hvciB0byB0aGUgY29udGV4dCBsaW1pdCwgYXMgaW4gcGVybC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JFbmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGFyc2UgIiQxIiAiJDIiIC4uICIkOSIgLi4gKG5vIHVwcGVyIGxpbWl0KQorICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHJ1bGUuY2hhckF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgciA9IFVDaGFyYWN0ZXIuZGlnaXQoYywgMTApOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIgPj0gMSAmJiByIDw9IDkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcmVmWzBdID0gcG9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIgPSBVdGlsaXR5LnBhcnNlTnVtYmVyKHJ1bGUsIGlyZWYsIDEwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAociA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIlVuZGVmaW5lZCBzZWdtZW50IHJlZmVyZW5jZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gaXJlZlswXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHBhcnNlci5nZXRTZWdtZW50U3RhbmRpbihyKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcCA9PSBudWxsKSB7IC8vIExhenkgY3JlYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBwID0gbmV3IFBhcnNlUG9zaXRpb24oMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBwLnNldEluZGV4KHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBwYXJzZXIucGFyc2VEYXRhLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZVJlZmVyZW5jZShydWxlLCBwcCwgbGltaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBtZWFucyB0aGUgJyQnIHdhcyBub3QgZm9sbG93ZWQgYnkgYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2YWxpZCBuYW1lLiAgVHJ5IHRvIGludGVycHJldCBpdCBhcyBhbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbmQgYW5jaG9yIHRoZW4uICBJZiB0aGlzIGFsc28gZG9lc24ndCB3b3JrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIChpZiB3ZSBzZWUgYSBmb2xsb3dpbmcgY2hhcmFjdGVyKSB0aGVuIHNpZ25hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbiBlcnJvci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yRW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBwLmdldEluZGV4KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIHZhcmlhYmxlIGRlZmluaXRpb24gc3RhdGVtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gdGhlIExIUyB2YXJpYWJsZSB3aWxsIGJlIHVuZGVmaW5lZC4gIEluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCBjYXNlIGFwcGVuZFZhcmlhYmxlRGVmKCkgd2lsbCBhcHBlbmQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBwbGFjZWhvbGRlciBjaGFyIHZhcmlhYmxlTGltaXQtMS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJTdGFydCA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXIuYXBwZW5kVmFyaWFibGVEZWYobmFtZSwgYnVmKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJMaW1pdCA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIERPVDoKKyAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChwYXJzZXIuZ2V0RG90U3RhbmRJbigpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBLTEVFTkVfU1RBUjoKKyAgICAgICAgICAgICAgICBjYXNlIE9ORV9PUl9NT1JFOgorICAgICAgICAgICAgICAgIGNhc2UgWkVST19PUl9PTkU6CisgICAgICAgICAgICAgICAgICAgIC8vIFF1YW50aWZpZXJzLiAgV2UgaGFuZGxlIHNpbmdsZSBjaGFyYWN0ZXJzLCBxdW90ZWQgc3RyaW5ncywKKyAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgcmVmZXJlbmNlcywgYW5kIHNlZ21lbnRzLgorICAgICAgICAgICAgICAgICAgICAvLyAgYSsgICAgICBtYXRjaGVzICBhYWEKKyAgICAgICAgICAgICAgICAgICAgLy8gICdmb28nKyAgbWF0Y2hlcyAgZm9vZm9vZm9vCisgICAgICAgICAgICAgICAgICAgIC8vICAkdisgICAgIG1hdGNoZXMgIHh5eHl4eSBpZiAkdiA9PSB4eQorICAgICAgICAgICAgICAgICAgICAvLyAgKHNlZykrICBtYXRjaGVzICBzZWdzZWdzZWcKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzU2VnbWVudCAmJiBidWYubGVuZ3RoKCkgPT0gYnVmU3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgKi8rIGltbWVkaWF0ZWx5IGZvbGxvd3MgJygnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1pc3BsYWNlZCBxdWFudGlmaWVyIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfSAKKyAKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBxc3RhcnQsIHFsaW1pdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSAqLysgZm9sbG93cyBhbiBpc29sYXRlZCBjaGFyYWN0ZXIgb3IgcXVvdGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9yIHZhcmlhYmxlIHJlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA9PSBxdW90ZUxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlICovKyBmb2xsb3dzIGEgJ3F1b3RlZCBzdHJpbmcnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXN0YXJ0ID0gcXVvdGVTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBxbGltaXQgPSBxdW90ZUxpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChidWYubGVuZ3RoKCkgPT0gdmFyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgKi8rIGZvbGxvd3MgYSAkdmFyaWFibGVSZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBxc3RhcnQgPSB2YXJTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBxbGltaXQgPSB2YXJMaW1pdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlICovKyBmb2xsb3dzIGEgc2luZ2xlIGNoYXJhY3RlciwgcG9zc2libHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIHNlZ21lbnQgc3RhbmRpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFzdGFydCA9IGJ1Zi5sZW5ndGgoKSAtIDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcWxpbWl0ID0gcXN0YXJ0ICsgMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZU1hdGNoZXIgbSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN0cmluZ01hdGNoZXIoYnVmLnRvU3RyaW5nKCksIHFzdGFydCwgcWxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIHBhcnNlci5jdXJEYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW4gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1heCA9IFF1YW50aWZpZXIuTUFYOworICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE9ORV9PUl9NT1JFOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFpFUk9fT1JfT05FOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXNlIEtMRUVORV9TVEFSOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgIGRvIG5vdGhpbmcgLS0gbWluLCBtYXggYWxyZWFkeSBzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG0gPSBuZXcgUXVhbnRpZmllcihtLCBtaW4sIG1heCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuc2V0TGVuZ3RoKHFzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKHBhcnNlci5nZW5lcmF0ZVN0YW5kSW5Gb3IobSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAvLyBFbGVtZW50cyBhbGxvd2VkIE9OTFkgV0lUSElOIHNlZ21lbnRzCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBjYXNlIFNFR01FTlRfQ0xPU0U6CisgICAgICAgICAgICAgICAgICAgIC8vIGFzc2VydChpc1NlZ21lbnQpOworICAgICAgICAgICAgICAgICAgICAvLyBXZSdyZSBkb25lIHBhcnNpbmcgYSBzZWdtZW50LgorICAgICAgICAgICAgICAgICAgICBicmVhayBtYWluOworCisgICAgICAgICAgICAgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAvLyBFbGVtZW50cyBhbGxvd2VkIE9OTFkgT1VUU0lERSBzZWdtZW50cworICAgICAgICAgICAgICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgY2FzZSBDT05URVhUX0FOVEU6CisgICAgICAgICAgICAgICAgICAgIGlmIChhbnRlID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNdWx0aXBsZSBhbnRlIGNvbnRleHRzIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGFudGUgPSBidWYubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ09OVEVYVF9QT1NUOgorICAgICAgICAgICAgICAgICAgICBpZiAocG9zdCA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTXVsdGlwbGUgcG9zdCBjb250ZXh0cyIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwb3N0ID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENVUlNPUl9QT1M6CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJzb3IgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk11bHRpcGxlIGN1cnNvcnMiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY3Vyc29yID0gYnVmLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENVUlNPUl9PRkZTRVQ6CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJzb3JPZmZzZXQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNaXNwbGFjZWQgIiArIGMsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC0tY3Vyc29yT2Zmc2V0OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnNvck9mZnNldCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgIT0gY3Vyc29yT2Zmc2V0UG9zIHx8IGN1cnNvciA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1pc3BsYWNlZCAiICsgYywgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKytjdXJzb3JPZmZzZXQ7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3Vyc29yID09IDAgJiYgYnVmLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3JPZmZzZXQgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29yIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvck9mZnNldFBvcyA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3JPZmZzZXQgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWlzcGxhY2VkICIgKyBjLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIC8vIE5vbi1zcGVjaWFsIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIC8vIERpc2FsbG93IHVucXVvdGVkIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbMC05QS1aYS16XQorICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgcHJpbnRhYmxlIEFTQ0lJIHJhbmdlLiAgVGhlc2UgY2hhcmFjdGVycyBhcmUKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVzZXJ2ZWQgZm9yIHBvc3NpYmxlIGZ1dHVyZSB1c2UuCisgICAgICAgICAgICAgICAgICAgIGlmIChjID49IDB4MDAyMSAmJiBjIDw9IDB4MDA3RSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgISgoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgIChjID49ICdBJyAmJiBjIDw9ICdaJykgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJVbnF1b3RlZCAiICsgYywgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmVtb3ZlIGNvbnRleHQuCisgICAgICAgICAqLworICAgICAgICB2b2lkIHJlbW92ZUNvbnRleHQoKSB7CisgICAgICAgICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcoYW50ZSA8IDAgPyAwIDogYW50ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0IDwgMCA/IHRleHQubGVuZ3RoKCkgOiBwb3N0KTsKKyAgICAgICAgICAgIGFudGUgPSBwb3N0ID0gLTE7CisgICAgICAgICAgICBhbmNob3JTdGFydCA9IGFuY2hvckVuZCA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgaGFsZiBsb29rcyBsaWtlIHZhbGlkIG91dHB1dCwgdGhhdCBpcywgZG9lcyBub3QKKyAgICAgICAgICogY29udGFpbiBxdWFudGlmaWVycyBvciBvdGhlciBzcGVjaWFsIGlucHV0LW9ubHkgZWxlbWVudHMuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1ZhbGlkT3V0cHV0KFRyYW5zbGl0ZXJhdG9yUGFyc2VyIHBhcnNlcikgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPHRleHQubGVuZ3RoKCk7ICkgeworICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KHRleHQsIGkpOworICAgICAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgIGlmICghcGFyc2VyLnBhcnNlRGF0YS5pc1JlcGxhY2VyKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIGhhbGYgbG9va3MgbGlrZSB2YWxpZCBpbnB1dCwgdGhhdCBpcywgZG9lcyBub3QKKyAgICAgICAgICogY29udGFpbiBmdW5jdGlvbnMgb3Igb3RoZXIgc3BlY2lhbCBvdXRwdXQtb25seSBlbGVtZW50cy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzVmFsaWRJbnB1dChUcmFuc2xpdGVyYXRvclBhcnNlciBwYXJzZXIpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTx0ZXh0Lmxlbmd0aCgpOyApIHsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IFVURjE2LmNoYXJBdCh0ZXh0LCBpKTsKKyAgICAgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICBpZiAoIXBhcnNlci5wYXJzZURhdGEuaXNNYXRjaGVyKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFBVQkxJQyBtZXRob2RzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3JQYXJzZXIoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBzZXQgb2YgcnVsZXMuICBBZnRlciB0aGUgcGFyc2UgY29tcGxldGVzLCBleGFtaW5lIHRoZSBwdWJsaWMKKyAgICAgKiBkYXRhIG1lbWJlcnMgZm9yIHJlc3VsdHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcGFyc2UoU3RyaW5nIHJ1bGVzLCBpbnQgZGlyZWN0aW9uKSB7CisgICAgICAgIHBhcnNlUnVsZXMobmV3IFJ1bGVBcnJheShuZXcgU3RyaW5nW10geyBydWxlcyB9KSwgZGlyZWN0aW9uKTsKKyAgICB9CisgICAKKyAgICAvKioKKyAgICAgKiBQYXJzZSBhIHNldCBvZiBydWxlcy4gIEFmdGVyIHRoZSBwYXJzZSBjb21wbGV0ZXMsIGV4YW1pbmUgdGhlIHB1YmxpYworICAgICAqIGRhdGEgbWVtYmVycyBmb3IgcmVzdWx0cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYXJzZShSZXNvdXJjZVJlYWRlciBydWxlcywgaW50IGRpcmVjdGlvbikgeworICAgICAgICBwYXJzZVJ1bGVzKG5ldyBSdWxlUmVhZGVyKHJ1bGVzKSwgZGlyZWN0aW9uKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQUklWQVRFIG1ldGhvZHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGFuIGFycmF5IG9mIHplcm8gb3IgbW9yZSBydWxlcy4gIFRoZSBzdHJpbmdzIGluIHRoZSBhcnJheSBhcmUKKyAgICAgKiB0cmVhdGVkIGFzIGlmIHRoZXkgd2VyZSBjb25jYXRlbmF0ZWQgdG9nZXRoZXIsIHdpdGggcnVsZSB0ZXJtaW5hdG9ycworICAgICAqIGluc2VydGVkIGJldHdlZW4gYXJyYXkgZWxlbWVudHMgaWYgbm90IHByZXNlbnQgYWxyZWFkeS4KKyAgICAgKgorICAgICAqIEFueSBwcmV2aW91cyBydWxlcyBhcmUgZGlzY2FyZGVkLiAgVHlwaWNhbGx5IHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBleGFjdGx5CisgICAgICogb25jZSwgZHVyaW5nIGNvbnN0cnVjdGlvbi4KKyAgICAgKgorICAgICAqIFRoZSBtZW1iZXIgdGhpcy5kYXRhIHdpbGwgYmUgc2V0IHRvIG51bGwgaWYgdGhlcmUgYXJlIG5vIHJ1bGVzLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlcmUgaXMgYSBzeW50YXggZXJyb3IgaW4gdGhlCisgICAgICogcnVsZXMKKyAgICAgKi8KKyAgICB2b2lkIHBhcnNlUnVsZXMoUnVsZUJvZHkgcnVsZUFycmF5LCBpbnQgZGlyKSB7CisgICAgICAgIGJvb2xlYW4gcGFyc2luZ0lEcyA9IHRydWU7CisgICAgICAgIGJvb2xlYW4gaW5CZWdpbkVuZEJsb2NrID0gZmFsc2U7CisgICAgICAgIGludCBydWxlQ291bnQgPSAwOworCisgICAgICAgIGRhdGFWZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGlkQmxvY2tWZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGN1ckRhdGEgPSBudWxsOworICAgICAgICBkaXJlY3Rpb24gPSBkaXI7CisgICAgICAgIGNvbXBvdW5kRmlsdGVyID0gbnVsbDsKKyAgICAgICAgdmFyaWFibGVzVmVjdG9yID0gbmV3IFZlY3RvcigpOworICAgICAgICB2YXJpYWJsZU5hbWVzID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICBwYXJzZURhdGEgPSBuZXcgUGFyc2VEYXRhKCk7CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIGVycm9ycyA9IG51bGw7CisgICAgICAgIGludCBlcnJvckNvdW50ID0gMDsKKworICAgICAgICBydWxlQXJyYXkucmVzZXQoKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgaWRCbG9ja1Jlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICAvLyBUaGUgY29tcG91bmQgZmlsdGVyIG9mZnNldCBpcyBhbiBpbmRleCBpbnRvIGlkQmxvY2tSZXN1bHQuCisgICAgICAgIC8vIElmIGl0IGlzIDAsIHRoZW4gdGhlIGNvbXBvdW5kIGZpbHRlciBvY2N1cnJlZCBhdCB0aGUgc3RhcnQsCisgICAgICAgIC8vIGFuZCBpdCBpcyB0aGUgb2Zmc2V0IHRvIHRoZSBfc3RhcnRfIG9mIHRoZSBjb21wb3VuZCBmaWx0ZXIKKyAgICAgICAgLy8gcGF0dGVybi4gIE90aGVyd2lzZSBpdCBpcyB0aGUgb2Zmc2V0IHRvIHRoZSBfbGltaXRfIG9mIHRoZQorICAgICAgICAvLyBjb21wb3VuZCBmaWx0ZXIgcGF0dGVybiB3aXRoaW4gaWRCbG9ja1Jlc3VsdC4KKyAgICAgICAgdGhpcy5jb21wb3VuZEZpbHRlciA9IG51bGw7CisgICAgICAgIGludCBjb21wb3VuZEZpbHRlck9mZnNldCA9IC0xOworCisgICAgbWFpbjoKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgU3RyaW5nIHJ1bGUgPSBydWxlQXJyYXkubmV4dExpbmUoKTsKKyAgICAgICAgICAgIGlmIChydWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBwb3MgPSAwOworICAgICAgICAgICAgaW50IGxpbWl0ID0gcnVsZS5sZW5ndGgoKTsKKyAgICAgICAgICAgIHdoaWxlIChwb3MgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IHJ1bGUuY2hhckF0KHBvcysrKTsKKyAgICAgICAgICAgICAgICBpZiAoVUNoYXJhY3RlclByb3BlcnR5LmlzUnVsZVdoaXRlU3BhY2UoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIFNraXAgbGluZXMgc3RhcnRpbmcgd2l0aCB0aGUgY29tbWVudCBjaGFyYWN0ZXIKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSBSVUxFX0NPTU1FTlRfQ0hBUikgeworICAgICAgICAgICAgICAgICAgICBwb3MgPSBydWxlLmluZGV4T2YoIlxuIiwgcG9zKSArIDE7CisgICAgICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8vIE5vICJcbiIgZm91bmQ7IHJlc3Qgb2YgcnVsZSBpcyBhIGNvbW1uZXQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gRWl0aGVyIGZhbGwgb3V0IG9yIHJlc3RhcnQgd2l0aCBuZXh0IGxpbmUKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBza2lwIGVtcHR5IHJ1bGVzCisgICAgICAgICAgICAgICAgaWYgKGMgPT0gRU5EX09GX1JVTEUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgLy8gT2Z0ZW4gYSBydWxlIGZpbGUgY29udGFpbnMgbXVsdGlwbGUgZXJyb3JzLiAgSXQncworICAgICAgICAgICAgICAgIC8vIGNvbnZlbmllbnQgdG8gdGhlIHJ1bGUgYXV0aG9yIGlmIHRoZXNlIGFyZSBhbGwgcmVwb3J0ZWQKKyAgICAgICAgICAgICAgICAvLyBhdCBvbmNlLiAgV2Uga2VlcCBwYXJzaW5nIHJ1bGVzIGV2ZW4gYWZ0ZXIgYSBmYWlsdXJlLCB1cAorICAgICAgICAgICAgICAgIC8vIHRvIGEgc3BlY2lmaWVkIGxpbWl0LCBhbmQgcmVwb3J0IGFsbCBlcnJvcnMgYXQgb25jZS4KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICArK3J1bGVDb3VudDsKKworICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBmb3VuZCB0aGUgc3RhcnQgb2YgYSBydWxlIG9yIElELiAgYyBpcyBpdHMgZmlyc3QKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyLCBhbmQgcG9zIHBvaW50cyBwYXN0IGMuCisgICAgICAgICAgICAgICAgICAgIC0tcG9zOworICAgICAgICAgICAgICAgICAgICAvLyBMb29rIGZvciBhbiBJRCB0b2tlbi4gIE11c3QgaGF2ZSBhdCBsZWFzdCBJRF9UT0tFTl9MRU4gKyAxCisgICAgICAgICAgICAgICAgICAgIC8vIGNoYXJzIGxlZnQuCisgICAgICAgICAgICAgICAgICAgIGlmICgocG9zICsgSURfVE9LRU5fTEVOICsgMSkgPD0gbGltaXQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLnJlZ2lvbk1hdGNoZXMocG9zLCBJRF9UT0tFTiwgMCwgSURfVE9LRU5fTEVOKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcG9zICs9IElEX1RPS0VOX0xFTjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBydWxlLmNoYXJBdChwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpICYmIHBvcyA8IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHJ1bGUuY2hhckF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBwID0gbmV3IGludFtdIHsgcG9zIH07CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGFyc2luZ0lEcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJEYXRhICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVZlY3Rvci5hZGQoY3VyRGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFWZWN0b3IuaW5zZXJ0RWxlbWVudEF0KGN1ckRhdGEsIDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJEYXRhID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2luZ0lEcyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU2luZ2xlSUQgaWQgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIucGFyc2VTaW5nbGVJRCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGUsIHAsIGRpcmVjdGlvbik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocFswXSAhPSBwb3MgJiYgVXRpbGl0eS5wYXJzZUNoYXIocnVsZSwgcCwgRU5EX09GX1JVTEUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3VjY2Vzc2Z1bCA6OklEIHBhcnNlLgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5GT1JXQVJEKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkQmxvY2tSZXN1bHQuYXBwZW5kKGlkLmNhbm9uSUQpLmFwcGVuZChFTkRfT0ZfUlVMRSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRCbG9ja1Jlc3VsdC5pbnNlcnQoMCwgaWQuY2Fub25JRCArIEVORF9PRl9SVUxFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ291bGRuJ3QgcGFyc2UgYW4gSUQuICBUcnkgdG8gcGFyc2UgYSBnbG9iYWwgZmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gd2l0aFBhcmVucyA9IG5ldyBpbnRbXSB7IC0xIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVNldCBmID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5wYXJzZUdsb2JhbEZpbHRlcihydWxlLCBwLCBkaXJlY3Rpb24sIHdpdGhQYXJlbnMsIG51bGwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmICE9IG51bGwgJiYgVXRpbGl0eS5wYXJzZUNoYXIocnVsZSwgcCwgRU5EX09GX1JVTEUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2l0aFBhcmVuc1swXSA9PSAwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBvdW5kRmlsdGVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNdWx0aXBsZSBjb21wb3VuZCBmaWx0ZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk11bHRpcGxlIGdsb2JhbCBmaWx0ZXJzIiwgcnVsZSwgcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kRmlsdGVyID0gZjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kRmlsdGVyT2Zmc2V0ID0gcnVsZUNvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJbnZhbGlkIDo6aWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2FuIGJlIHBhcnNlZCBhcyBuZWl0aGVyIGFuIElEIG5vciBhIGdsb2JhbCBmaWx0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIkludmFsaWQgOjpJRCIsIHJ1bGUsIHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBwWzBdOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNpbmdJRHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkQmxvY2tWZWN0b3IuYWRkKGlkQmxvY2tSZXN1bHQudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZEJsb2NrVmVjdG9yLmluc2VydEVsZW1lbnRBdChpZEJsb2NrUmVzdWx0LnRvU3RyaW5nKCksIDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkQmxvY2tSZXN1bHQuZGVsZXRlKDAsIGlkQmxvY2tSZXN1bHQubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNpbmdJRHMgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJEYXRhID0gbmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEoKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJ5IGRlZmF1bHQsIHJ1bGVzIHVzZSBwYXJ0IG9mIHRoZSBwcml2YXRlIHVzZSBhcmVhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRTAwMC4uRjhGRiBmb3IgdmFyaWFibGVzIGFuZCBvdGhlciBzdGFuZC1pbnMuICBDdXJyZW50bHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcmFuZ2UgRjAwMC4uRjhGRiBpcyB0eXBpY2FsbHkgc3VmZmljaWVudC4gIFRoZSAndXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgcmFuZ2UnIHByYWdtYSBhbGxvd3MgcnVsZSBzZXRzIHRvIG1vZGlmeSB0aGlzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFZhcmlhYmxlUmFuZ2UoMHhGMDAwLCAweEY4RkYpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzZW1ibGVzUHJhZ21hKHJ1bGUsIHBvcywgbGltaXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBwcCA9IHBhcnNlUHJhZ21hKHJ1bGUsIHBvcywgbGltaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcHAgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJVbnJlY29nbml6ZWQgcHJhZ21hIiwgcnVsZSwgcG9zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gcHBwOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGFyc2UgYSBydWxlCisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBhcnNlUnVsZShydWxlLCBwb3MsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvckNvdW50ID09IDMwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCJcbk1vcmUgdGhhbiAzMCBlcnJvcnM7IGZ1cnRoZXIgbWVzc2FnZXMgc3F1ZWxjaGVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcnMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gbmV3IFN0cmluZ0J1ZmZlcihlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCJcbiIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKytlcnJvckNvdW50OworICAgICAgICAgICAgICAgICAgICBwb3MgPSBydWxlRW5kKHJ1bGUsIHBvcywgbGltaXQpICsgMTsgLy8gKzEgYWR2YW5jZXMgcGFzdCAnOycKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHBhcnNpbmdJRHMgJiYgaWRCbG9ja1Jlc3VsdC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCkKKyAgICAgICAgICAgICAgICBpZEJsb2NrVmVjdG9yLmFkZChpZEJsb2NrUmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlkQmxvY2tWZWN0b3IuaW5zZXJ0RWxlbWVudEF0KGlkQmxvY2tSZXN1bHQudG9TdHJpbmcoKSwgMCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoIXBhcnNpbmdJRHMgJiYgY3VyRGF0YSAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpCisgICAgICAgICAgICAgICAgZGF0YVZlY3Rvci5hZGQoY3VyRGF0YSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZGF0YVZlY3Rvci5pbnNlcnRFbGVtZW50QXQoY3VyRGF0YSwgMCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb252ZXJ0IHRoZSBzZXQgdmVjdG9yIHRvIGFuIGFycmF5CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZGF0YVZlY3Rvci5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSBkYXRhID0gKFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEpZGF0YVZlY3Rvci5nZXQoaSk7CisgICAgICAgICAgICBkYXRhLnZhcmlhYmxlcyA9IG5ldyBPYmplY3RbdmFyaWFibGVzVmVjdG9yLnNpemUoKV07CisgICAgICAgICAgICB2YXJpYWJsZXNWZWN0b3IuY29weUludG8oZGF0YS52YXJpYWJsZXMpOworICAgICAgICAgICAgZGF0YS52YXJpYWJsZU5hbWVzID0gbmV3IEhhc2h0YWJsZSgpOworICAgICAgICAgICAgZGF0YS52YXJpYWJsZU5hbWVzLnB1dEFsbCh2YXJpYWJsZU5hbWVzKTsKKyAgICAgICAgfQorICAgICAgICB2YXJpYWJsZXNWZWN0b3IgPSBudWxsOworCisgICAgICAgIC8vIERvIG1vcmUgc3ludGF4IGNoZWNraW5nIGFuZCBpbmRleCB0aGUgcnVsZXMKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmIChjb21wb3VuZEZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKChkaXJlY3Rpb24gPT0gVHJhbnNsaXRlcmF0b3IuRk9SV0FSRCAmJgorICAgICAgICAgICAgICAgICAgICAgY29tcG91bmRGaWx0ZXJPZmZzZXQgIT0gMSkgfHwKKyAgICAgICAgICAgICAgICAgICAgKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5SRVZFUlNFICYmCisgICAgICAgICAgICAgICAgICAgICBjb21wb3VuZEZpbHRlck9mZnNldCAhPSBydWxlQ291bnQpKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNvbXBvdW5kIGZpbHRlcnMgbWlzcGxhY2VkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGRhdGFWZWN0b3Iuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhIGRhdGEgPSAoUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSlkYXRhVmVjdG9yLmdldChpKTsKKyAgICAgICAgICAgICAgICBkYXRhLnJ1bGVTZXQuZnJlZXplKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpZEJsb2NrVmVjdG9yLnNpemUoKSA9PSAxICYmICgoU3RyaW5nKWlkQmxvY2tWZWN0b3IuZ2V0KDApKS5sZW5ndGgoKSA9PSAwKQorICAgICAgICAgICAgICAgIGlkQmxvY2tWZWN0b3IucmVtb3ZlKDApOworCisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoZXJyb3JzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJvcnMgPSBuZXcgU3RyaW5nQnVmZmVyKGUuZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgiXG4iKS5hcHBlbmQoZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGVycm9ycyAhPSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKGVycm9ycy50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1BSU4gUEFSU0VSLiAgUGFyc2UgdGhlIG5leHQgcnVsZSBpbiB0aGUgZ2l2ZW4gcnVsZSBzdHJpbmcsIHN0YXJ0aW5nCisgICAgICogYXQgcG9zLiAgUmV0dXJuIHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgcGFyc2VkLiAgRG8gbm90CisgICAgICogcGFyc2UgY2hhcmFjdGVycyBhdCBvciBhZnRlciBsaW1pdC4KKyAgICAgKgorICAgICAqIEltcG9ydGFudDogIFRoZSBjaGFyYWN0ZXIgYXQgcG9zIG11c3QgYmUgYSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIKKyAgICAgKiB0aGF0IGlzIG5vdCB0aGUgY29tbWVudCBjaGFyYWN0ZXIuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBoYW5kbGVzIHF1b3RpbmcsIGVzY2FwaW5nLCBhbmQgd2hpdGVzcGFjZSByZW1vdmFsLiAgSXQKKyAgICAgKiBwYXJzZXMgdGhlIGVuZC1vZi1ydWxlIGNoYXJhY3Rlci4gIEl0IHJlY29nbml6ZXMgY29udGV4dCBhbmQgY3Vyc29yCisgICAgICogaW5kaWNhdG9ycy4gIE9uY2UgaXQgZG9lcyBhIGxleGljYWwgYnJlYWtkb3duIG9mIHRoZSBydWxlIGF0IHBvcywgaXQKKyAgICAgKiBjcmVhdGVzIGEgcnVsZSBvYmplY3QgYW5kIGFkZHMgaXQgdG8gb3VyIHJ1bGUgbGlzdC4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRpZ2h0bHkgY291cGxlZCB0byB0aGUgaW5uZXIgY2xhc3MgUnVsZUhhbGYuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgcGFyc2VSdWxlKFN0cmluZyBydWxlLCBpbnQgcG9zLCBpbnQgbGltaXQpIHsKKyAgICAgICAgLy8gTG9jYXRlIHRoZSBsZWZ0IHNpZGUsIG9wZXJhdG9yLCBhbmQgcmlnaHQgc2lkZQorICAgICAgICBpbnQgc3RhcnQgPSBwb3M7CisgICAgICAgIGNoYXIgb3BlcmF0b3IgPSAwOworCisgICAgICAgIC8vIFNldCB1cCBzZWdtZW50cyBkYXRhCisgICAgICAgIHNlZ21lbnRTdGFuZGlucyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgc2VnbWVudE9iamVjdHMgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgUnVsZUhhbGYgbGVmdCAgPSBuZXcgUnVsZUhhbGYoKTsKKyAgICAgICAgUnVsZUhhbGYgcmlnaHQgPSBuZXcgUnVsZUhhbGYoKTsKKworICAgICAgICB1bmRlZmluZWRWYXJpYWJsZU5hbWUgPSBudWxsOworICAgICAgICBwb3MgPSBsZWZ0LnBhcnNlKHJ1bGUsIHBvcywgbGltaXQsIHRoaXMpOworCisgICAgICAgIGlmIChwb3MgPT0gbGltaXQgfHwKKyAgICAgICAgICAgIE9QRVJBVE9SUy5pbmRleE9mKG9wZXJhdG9yID0gcnVsZS5jaGFyQXQoLS1wb3MpKSA8IDApIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKCJObyBvcGVyYXRvciBwb3M9IiArIHBvcywgcnVsZSwgc3RhcnQpOworICAgICAgICB9CisgICAgICAgICsrcG9zOworCisgICAgICAgIC8vIEZvdW5kIGFuIG9wZXJhdG9yIGNoYXIuICBDaGVjayBmb3IgZm9yd2FyZC1yZXZlcnNlIG9wZXJhdG9yLgorICAgICAgICBpZiAob3BlcmF0b3IgPT0gUkVWRVJTRV9SVUxFX09QICYmCisgICAgICAgICAgICAocG9zIDwgbGltaXQgJiYgcnVsZS5jaGFyQXQocG9zKSA9PSBGT1JXQVJEX1JVTEVfT1ApKSB7CisgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgIG9wZXJhdG9yID0gRldEUkVWX1JVTEVfT1A7CisgICAgICAgIH0KKworICAgICAgICAvLyBUcmFuc2xhdGUgYWx0ZXJuYXRlIG9wIGNoYXJhY3RlcnMuCisgICAgICAgIHN3aXRjaCAob3BlcmF0b3IpIHsKKyAgICAgICAgY2FzZSBBTFRfRk9SV0FSRF9SVUxFX09QOgorICAgICAgICAgICAgb3BlcmF0b3IgPSBGT1JXQVJEX1JVTEVfT1A7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBTFRfUkVWRVJTRV9SVUxFX09QOgorICAgICAgICAgICAgb3BlcmF0b3IgPSBSRVZFUlNFX1JVTEVfT1A7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBTFRfRldEUkVWX1JVTEVfT1A6CisgICAgICAgICAgICBvcGVyYXRvciA9IEZXRFJFVl9SVUxFX09QOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBwb3MgPSByaWdodC5wYXJzZShydWxlLCBwb3MsIGxpbWl0LCB0aGlzKTsKKworICAgICAgICBpZiAocG9zIDwgbGltaXQpIHsKKyAgICAgICAgICAgIGlmIChydWxlLmNoYXJBdCgtLXBvcykgPT0gRU5EX09GX1JVTEUpIHsKKyAgICAgICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gUnVsZUhhbGYgcGFyc2VyIG11c3QgaGF2ZSB0ZXJtaW5hdGVkIGF0IGFuIG9wZXJhdG9yCisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIlVucXVvdGVkIG9wZXJhdG9yIiwgcnVsZSwgc3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wZXJhdG9yID09IFZBUklBQkxFX0RFRl9PUCkgeworICAgICAgICAgICAgLy8gTEhTIGlzIHRoZSBuYW1lLiAgUkhTIGlzIGEgc2luZ2xlIGNoYXJhY3RlciwgZWl0aGVyIGEgbGl0ZXJhbAorICAgICAgICAgICAgLy8gb3IgYSBzZXQgKGFscmVhZHkgcGFyc2VkKS4gIElmIFJIUyBpcyBsb25nZXIgdGhhbiBvbmUKKyAgICAgICAgICAgIC8vIGNoYXJhY3RlciwgaXQgaXMgZWl0aGVyIGEgbXVsdGktY2hhcmFjdGVyIHN0cmluZywgb3IgbXVsdGlwbGUKKyAgICAgICAgICAgIC8vIHNldHMsIG9yIGEgbWl4dHVyZSBvZiBjaGFycyBhbmQgc2V0cyAtLSBzeW50YXggZXJyb3IuCisKKyAgICAgICAgICAgIC8vIFdlIGV4cGVjdCB0byBzZWUgYSBzaW5nbGUgdW5kZWZpbmVkIHZhcmlhYmxlICh0aGUgb25lIGJlaW5nCisgICAgICAgICAgICAvLyBkZWZpbmVkKS4KKyAgICAgICAgICAgIGlmICh1bmRlZmluZWRWYXJpYWJsZU5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKCJNaXNzaW5nICckJyBvciBkdXBsaWNhdGUgZGVmaW5pdGlvbiIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsZWZ0LnRleHQubGVuZ3RoKCkgIT0gMSB8fCBsZWZ0LnRleHQuY2hhckF0KDApICE9IHZhcmlhYmxlTGltaXQpIHsKKyAgICAgICAgICAgICAgICBzeW50YXhFcnJvcigiTWFsZm9ybWVkIExIUyIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsZWZ0LmFuY2hvclN0YXJ0IHx8IGxlZnQuYW5jaG9yRW5kIHx8CisgICAgICAgICAgICAgICAgcmlnaHQuYW5jaG9yU3RhcnQgfHwgcmlnaHQuYW5jaG9yRW5kKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIk1hbGZvcm1lZCB2YXJpYWJsZSBkZWYiLCBydWxlLCBzdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBXZSBhbGxvdyBhbnl0aGluZyBvbiB0aGUgcmlnaHQsIGluY2x1ZGluZyBhbiBlbXB0eSBzdHJpbmcuCisgICAgICAgICAgICBpbnQgbiA9IHJpZ2h0LnRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICBjaGFyW10gdmFsdWUgPSBuZXcgY2hhcltuXTsKKyAgICAgICAgICAgIHJpZ2h0LnRleHQuZ2V0Q2hhcnMoMCwgbiwgdmFsdWUsIDApOworICAgICAgICAgICAgdmFyaWFibGVOYW1lcy5wdXQodW5kZWZpbmVkVmFyaWFibGVOYW1lLCB2YWx1ZSk7CisKKyAgICAgICAgICAgICsrdmFyaWFibGVMaW1pdDsKKyAgICAgICAgICAgIHJldHVybiBwb3M7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB0aGlzIGlzIG5vdCBhIHZhcmlhYmxlIGRlZmluaXRpb24gcnVsZSwgd2Ugc2hvdWxkbid0IGhhdmUKKyAgICAgICAgLy8gYW55IHVuZGVmaW5lZCB2YXJpYWJsZSBuYW1lcy4KKyAgICAgICAgaWYgKHVuZGVmaW5lZFZhcmlhYmxlTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICBzeW50YXhFcnJvcigiVW5kZWZpbmVkIHZhcmlhYmxlICQiICsgdW5kZWZpbmVkVmFyaWFibGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgcnVsZSwgc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVmVyaWZ5IHNlZ21lbnRzCisgICAgICAgIGlmIChzZWdtZW50U3RhbmRpbnMubGVuZ3RoKCkgPiBzZWdtZW50T2JqZWN0cy5zaXplKCkpIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKCJVbmRlZmluZWQgc2VnbWVudCByZWZlcmVuY2UiLCBydWxlLCBzdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNlZ21lbnRTdGFuZGlucy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoc2VnbWVudFN0YW5kaW5zLmNoYXJBdChpKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIkludGVybmFsIGVycm9yIiwgcnVsZSwgc3RhcnQpOyAvLyB3aWxsIG5ldmVyIGhhcHBlbgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxzZWdtZW50T2JqZWN0cy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHNlZ21lbnRPYmplY3RzLmVsZW1lbnRBdChpKSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoIkludGVybmFsIGVycm9yIiwgcnVsZSwgc3RhcnQpOyAvLyB3aWxsIG5ldmVyIGhhcHBlbgorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGhlIGRpcmVjdGlvbiB3ZSB3YW50IGRvZXNuJ3QgbWF0Y2ggdGhlIHJ1bGUKKyAgICAgICAgLy8gZGlyZWN0aW9uLCBkbyBub3RoaW5nLgorICAgICAgICBpZiAob3BlcmF0b3IgIT0gRldEUkVWX1JVTEVfT1AgJiYKKyAgICAgICAgICAgICgoZGlyZWN0aW9uID09IFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpICE9IChvcGVyYXRvciA9PSBGT1JXQVJEX1JVTEVfT1ApKSkgeworICAgICAgICAgICAgcmV0dXJuIHBvczsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgcnVsZSBpbnRvIGEgZm9yd2FyZCBydWxlIGJ5IHN3YXBwaW5nIHRoZQorICAgICAgICAvLyBzaWRlcyBpZiBuZWNlc3NhcnkuCisgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSkgeworICAgICAgICAgICAgUnVsZUhhbGYgdGVtcCA9IGxlZnQ7CisgICAgICAgICAgICBsZWZ0ID0gcmlnaHQ7CisgICAgICAgICAgICByaWdodCA9IHRlbXA7CisgICAgICAgIH0KKworICAgICAgICAvLyBSZW1vdmUgbm9uLWFwcGxpY2FibGUgZWxlbWVudHMgaW4gZm9yd2FyZC1yZXZlcnNlCisgICAgICAgIC8vIHJ1bGVzLiAgQmlkaXJlY3Rpb25hbCBydWxlcyBpZ25vcmUgZWxlbWVudHMgdGhhdCBkbyBub3QKKyAgICAgICAgLy8gYXBwbHkuCisgICAgICAgIGlmIChvcGVyYXRvciA9PSBGV0RSRVZfUlVMRV9PUCkgeworICAgICAgICAgICAgcmlnaHQucmVtb3ZlQ29udGV4dCgpOworICAgICAgICAgICAgbGVmdC5jdXJzb3IgPSAtMTsKKyAgICAgICAgICAgIGxlZnQuY3Vyc29yT2Zmc2V0ID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vcm1hbGl6ZSBjb250ZXh0CisgICAgICAgIGlmIChsZWZ0LmFudGUgPCAwKSB7CisgICAgICAgICAgICBsZWZ0LmFudGUgPSAwOworICAgICAgICB9CisgICAgICAgIGlmIChsZWZ0LnBvc3QgPCAwKSB7CisgICAgICAgICAgICBsZWZ0LnBvc3QgPSBsZWZ0LnRleHQubGVuZ3RoKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb250ZXh0IGlzIG9ubHkgYWxsb3dlZCBvbiB0aGUgaW5wdXQgc2lkZS4gIEN1cnNvcnMgYXJlIG9ubHkKKyAgICAgICAgLy8gYWxsb3dlZCBvbiB0aGUgb3V0cHV0IHNpZGUuICBTZWdtZW50IGRlbGltaXRlcnMgY2FuIG9ubHkgYXBwZWFyCisgICAgICAgIC8vIG9uIHRoZSBsZWZ0LCBhbmQgcmVmZXJlbmNlcyBvbiB0aGUgcmlnaHQuICBDdXJzb3Igb2Zmc2V0CisgICAgICAgIC8vIGNhbm5vdCBhcHBlYXIgd2l0aG91dCBhbiBleHBsaWNpdCBjdXJzb3IuICBDdXJzb3Igb2Zmc2V0CisgICAgICAgIC8vIGNhbm5vdCBwbGFjZSB0aGUgY3Vyc29yIG91dHNpZGUgdGhlIGxpbWl0cyBvZiB0aGUgY29udGV4dC4KKyAgICAgICAgLy8gQW5jaG9ycyBhcmUgb25seSBhbGxvd2VkIG9uIHRoZSBpbnB1dCBzaWRlLgorICAgICAgICBpZiAocmlnaHQuYW50ZSA+PSAwIHx8IHJpZ2h0LnBvc3QgPj0gMCB8fCBsZWZ0LmN1cnNvciA+PSAwIHx8CisgICAgICAgICAgICAocmlnaHQuY3Vyc29yT2Zmc2V0ICE9IDAgJiYgcmlnaHQuY3Vyc29yIDwgMCkgfHwKKyAgICAgICAgICAgIC8vIC0gVGhlIGZvbGxvd2luZyB0d28gY2hlY2tzIHdlcmUgdXNlZCB0byBlbnN1cmUgdGhhdCB0aGUKKyAgICAgICAgICAgIC8vIC0gdGhlIGN1cnNvciBvZmZzZXQgc3RheWVkIHdpdGhpbiB0aGUgYW50ZS0gb3IgcG9zdGNvbnRleHQuCisgICAgICAgICAgICAvLyAtIEhvd2V2ZXIsIHdpdGggdGhlIGFkZGl0aW9uIG9mIHF1YW50aWZpZXJzLCB3ZSBoYXZlIHRvCisgICAgICAgICAgICAvLyAtIGFsbG93IGFyYml0cmFyeSBjdXJzb3Igb2Zmc2V0cyBhbmQgZG8gcnVudGltZSBjaGVja2luZy4KKyAgICAgICAgICAgIC8vKHJpZ2h0LmN1cnNvck9mZnNldCA+IChsZWZ0LnRleHQubGVuZ3RoKCkgLSBsZWZ0LnBvc3QpKSB8fAorICAgICAgICAgICAgLy8oLXJpZ2h0LmN1cnNvck9mZnNldCA+IGxlZnQuYW50ZSkgfHwKKyAgICAgICAgICAgIHJpZ2h0LmFuY2hvclN0YXJ0IHx8IHJpZ2h0LmFuY2hvckVuZCB8fAorICAgICAgICAgICAgIWxlZnQuaXNWYWxpZElucHV0KHRoaXMpIHx8ICFyaWdodC5pc1ZhbGlkT3V0cHV0KHRoaXMpIHx8CisgICAgICAgICAgICBsZWZ0LmFudGUgPiBsZWZ0LnBvc3QpIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKCJNYWxmb3JtZWQgcnVsZSIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZsYXR0ZW4gc2VnbWVudCBvYmplY3RzIHZlY3RvciB0byBhbiBhcnJheQorICAgICAgICBVbmljb2RlTWF0Y2hlcltdIHNlZ21lbnRzQXJyYXkgPSBudWxsOworICAgICAgICBpZiAoc2VnbWVudE9iamVjdHMuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgc2VnbWVudHNBcnJheSA9IG5ldyBVbmljb2RlTWF0Y2hlcltzZWdtZW50T2JqZWN0cy5zaXplKCldOworICAgICAgICAgICAgc2VnbWVudE9iamVjdHMudG9BcnJheShzZWdtZW50c0FycmF5KTsKKyAgICAgICAgfQorCisgICAgICAgIGN1ckRhdGEucnVsZVNldC5hZGRSdWxlKG5ldyBUcmFuc2xpdGVyYXRpb25SdWxlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQudGV4dCwgbGVmdC5hbnRlLCBsZWZ0LnBvc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQudGV4dCwgcmlnaHQuY3Vyc29yLCByaWdodC5jdXJzb3JPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudHNBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0LmFuY2hvclN0YXJ0LCBsZWZ0LmFuY2hvckVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJEYXRhKSk7CisKKyAgICAgICAgcmV0dXJuIHBvczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHZhcmlhYmxlIHJhbmdlIHRvIFtzdGFydCwgZW5kXSAoaW5jbHVzaXZlKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0VmFyaWFibGVSYW5nZShpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgaWYgKHN0YXJ0ID4gZW5kIHx8IHN0YXJ0IDwgMCB8fCBlbmQgPiAweEZGRkYpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgdmFyaWFibGUgcmFuZ2UgIiArIHN0YXJ0ICsgIiwgIiArIGVuZCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGN1ckRhdGEudmFyaWFibGVzQmFzZSA9IChjaGFyKSBzdGFydDsgLy8gZmlyc3QgcHJpdmF0ZSB1c2UKKworICAgICAgICBpZiAoZGF0YVZlY3Rvci5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgdmFyaWFibGVOZXh0ID0gKGNoYXIpIHN0YXJ0OworICAgICAgICAgICAgdmFyaWFibGVMaW1pdCA9IChjaGFyKSAoZW5kICsgMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBc3NlcnQgdGhhdCB0aGUgZ2l2ZW4gY2hhcmFjdGVyIGlzIE5PVCB3aXRoaW4gdGhlIHZhcmlhYmxlIHJhbmdlLgorICAgICAqIElmIGl0IGlzLCBzaWduYWwgYW4gZXJyb3IuICBUaGlzIGlzIG5lY2Nlc2FyeSB0byBlbnN1cmUgdGhhdCB0aGUKKyAgICAgKiB2YXJpYWJsZSByYW5nZSBkb2VzIG5vdCBvdmVybGFwIGNoYXJhY3RlcnMgdXNlZCBpbiBhIHJ1bGUuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrVmFyaWFibGVSYW5nZShpbnQgY2gsIFN0cmluZyBydWxlLCBpbnQgc3RhcnQpIHsKKyAgICAgICAgaWYgKGNoID49IGN1ckRhdGEudmFyaWFibGVzQmFzZSAmJiBjaCA8IHZhcmlhYmxlTGltaXQpIHsKKyAgICAgICAgICAgIHN5bnRheEVycm9yKCJWYXJpYWJsZSByYW5nZSBjaGFyYWN0ZXIgaW4gcnVsZSIsIHJ1bGUsIHN0YXJ0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIChUaGUgZm9sbG93aW5nIG1ldGhvZCBpcyBwYXJ0IG9mIGFuIHVuaW1wbGVtZW50ZWQgZmVhdHVyZS4KKyAgICAvLyBSZW1vdmUgdGhpcyBjbG92ZXIgcHJhZ21hIGFmdGVyIHRoZSBmZWF0dXJlIGlzIGltcGxlbWVudGVkLgorICAgIC8vIDIwMDMtMDYtMTEgSUNVIDIuNiBBbGFuKQorICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG1heGltdW0gYmFja3VwIHRvICdiYWNrdXAnLCBpbiByZXNwb25zZSB0byBhIHByYWdtYQorICAgICAqIHN0YXRlbWVudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcHJhZ21hTWF4aW11bUJhY2t1cChpbnQgYmFja3VwKSB7CisgICAgICAgIC8vVE9ETyBGaW5pc2gKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidXNlIG1heGltdW0gYmFja3VwIHByYWdtYSBub3QgaW1wbGVtZW50ZWQgeWV0Iik7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLy8gKFRoZSBmb2xsb3dpbmcgbWV0aG9kIGlzIHBhcnQgb2YgYW4gdW5pbXBsZW1lbnRlZCBmZWF0dXJlLgorICAgIC8vIFJlbW92ZSB0aGlzIGNsb3ZlciBwcmFnbWEgYWZ0ZXIgdGhlIGZlYXR1cmUgaXMgaW1wbGVtZW50ZWQuCisgICAgLy8gMjAwMy0wNi0xMSBJQ1UgMi42IEFsYW4pCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKgorICAgICAqIEJlZ2luIG5vcm1hbGl6aW5nIGFsbCBydWxlcyB1c2luZyB0aGUgZ2l2ZW4gbW9kZSwgaW4gcmVzcG9uc2UKKyAgICAgKiB0byBhIHByYWdtYSBzdGF0ZW1lbnQuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHByYWdtYU5vcm1hbGl6ZVJ1bGVzKE5vcm1hbGl6ZXIuTW9kZSBtb2RlKSB7CisgICAgICAgIC8vVE9ETyBGaW5pc2gKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidXNlIG5vcm1hbGl6ZSBydWxlcyBwcmFnbWEgbm90IGltcGxlbWVudGVkIHlldCIpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBydWxlIGxvb2tzIGxpa2UgYSBwcmFnbWEuCisgICAgICogQHBhcmFtIHBvcyBvZmZzZXQgdG8gdGhlIGZpcnN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcgorICAgICAqIG9mIHRoZSBydWxlLgorICAgICAqIEBwYXJhbSBsaW1pdCBwb2ludGVyIHBhc3QgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBydWxlLgorICAgICAqLworICAgIHN0YXRpYyBib29sZWFuIHJlc2VtYmxlc1ByYWdtYShTdHJpbmcgcnVsZSwgaW50IHBvcywgaW50IGxpbWl0KSB7CisgICAgICAgIC8vIE11c3Qgc3RhcnQgd2l0aCAvdXNlXHMvaQorICAgICAgICByZXR1cm4gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgInVzZSAiLCBudWxsKSA+PSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGEgcHJhZ21hLiAgVGhpcyBtZXRob2QgYXNzdW1lcyByZXNlbWJsZXNQcmFnbWEoKSBoYXMKKyAgICAgKiBhbHJlYWR5IHJldHVybmVkIHRydWUuCisgICAgICogQHBhcmFtIHBvcyBvZmZzZXQgdG8gdGhlIGZpcnN0IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcgorICAgICAqIG9mIHRoZSBydWxlLgorICAgICAqIEBwYXJhbSBsaW1pdCBwb2ludGVyIHBhc3QgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBydWxlLgorICAgICAqIEByZXR1cm4gdGhlIHBvc2l0aW9uIGluZGV4IGFmdGVyIHRoZSBmaW5hbCAnOycgb2YgdGhlIHByYWdtYSwKKyAgICAgKiBvciAtMSBvbiBmYWlsdXJlLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHBhcnNlUHJhZ21hKFN0cmluZyBydWxlLCBpbnQgcG9zLCBpbnQgbGltaXQpIHsKKyAgICAgICAgaW50W10gYXJyYXkgPSBuZXcgaW50WzJdOworCisgICAgICAgIC8vIHJlc2VtYmxlc1ByYWdtYSgpIGhhcyBhbHJlYWR5IHJldHVybmVkIHRydWUsIHNvIHdlCisgICAgICAgIC8vIGtub3cgdGhhdCBwb3MgcG9pbnRzIHRvIC91c2Vccy9pOyB3ZSBjYW4gc2tpcCA0IGNoYXJhY3RlcnMKKyAgICAgICAgLy8gaW1tZWRpYXRlbHkKKyAgICAgICAgcG9zICs9IDQ7CisgICAgICAgIAorICAgICAgICAvLyBIZXJlIGFyZSB0aGUgcHJhZ21hcyB3ZSByZWNvZ25pemU6CisgICAgICAgIC8vIHVzZSB2YXJpYWJsZSByYW5nZSAweEUwMDAgMHhFRkZGOworICAgICAgICAvLyB1c2UgbWF4aW11bSBiYWNrdXAgMTY7CisgICAgICAgIC8vIHVzZSBuZmQgcnVsZXM7CisgICAgICAgIGludCBwID0gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgIn52YXJpYWJsZSByYW5nZSAjICN+OyIsIGFycmF5KTsKKyAgICAgICAgaWYgKHAgPj0gMCkgeworICAgICAgICAgICAgc2V0VmFyaWFibGVSYW5nZShhcnJheVswXSwgYXJyYXlbMV0pOworICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIH0KKworICAgICAgICBwID0gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgIn5tYXhpbXVtIGJhY2t1cCAjfjsiLCBhcnJheSk7CisgICAgICAgIGlmIChwID49IDApIHsKKyAgICAgICAgICAgIHByYWdtYU1heGltdW1CYWNrdXAoYXJyYXlbMF0pOworICAgICAgICAgICAgcmV0dXJuIHA7CisgICAgICAgIH0KKworICAgICAgICBwID0gVXRpbGl0eS5wYXJzZVBhdHRlcm4ocnVsZSwgcG9zLCBsaW1pdCwgIn5uZmQgcnVsZXN+OyIsIG51bGwpOworICAgICAgICBpZiAocCA+PSAwKSB7CisgICAgICAgICAgICBwcmFnbWFOb3JtYWxpemVSdWxlcyhOb3JtYWxpemVyLk5GRCk7CisgICAgICAgICAgICByZXR1cm4gcDsKKyAgICAgICAgfQorCisgICAgICAgIHAgPSBVdGlsaXR5LnBhcnNlUGF0dGVybihydWxlLCBwb3MsIGxpbWl0LCAifm5mYyBydWxlc347IiwgbnVsbCk7CisgICAgICAgIGlmIChwID49IDApIHsKKyAgICAgICAgICAgIHByYWdtYU5vcm1hbGl6ZVJ1bGVzKE5vcm1hbGl6ZXIuTkZDKTsKKyAgICAgICAgICAgIHJldHVybiBwOworICAgICAgICB9CisKKyAgICAgICAgLy8gU3ludGF4IGVycm9yOiB1bmFibGUgdG8gcGFyc2UgcHJhZ21hCisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvdyBhbiBleGNlcHRpb24gaW5kaWNhdGluZyBhIHN5bnRheCBlcnJvci4gIFNlYXJjaCB0aGUgcnVsZSBzdHJpbmcKKyAgICAgKiBmb3IgdGhlIHByb2JhYmxlIGVuZCBvZiB0aGUgcnVsZS4gIE9mIGNvdXJzZSwgaWYgdGhlIGVycm9yIGlzIHRoYXQKKyAgICAgKiB0aGUgZW5kIG9mIHJ1bGUgbWFya2VyIGlzIG1pc3NpbmcsIHRoZW4gdGhlIHJ1bGUgZW5kIHdpbGwgbm90IGJlIGZvdW5kLgorICAgICAqIEluIGFueSBjYXNlIHRoZSBydWxlIHN0YXJ0IHdpbGwgYmUgY29ycmVjdGx5IHJlcG9ydGVkLgorICAgICAqIEBwYXJhbSBtc2cgZXJyb3IgZGVzY3JpcHRpb24KKyAgICAgKiBAcGFyYW0gcnVsZSBwYXR0ZXJuIHN0cmluZworICAgICAqIEBwYXJhbSBzdGFydCBwb3NpdGlvbiBvZiBmaXJzdCBjaGFyYWN0ZXIgb2YgY3VycmVudCBydWxlCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIHZvaWQgc3ludGF4RXJyb3IoU3RyaW5nIG1zZywgU3RyaW5nIHJ1bGUsIGludCBzdGFydCkgeworICAgICAgICBpbnQgZW5kID0gcnVsZUVuZChydWxlLCBzdGFydCwgcnVsZS5sZW5ndGgoKSk7CisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24obXNnICsgIiBpbiBcIiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlKHJ1bGUuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpKSArICciJyk7CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGludCBydWxlRW5kKFN0cmluZyBydWxlLCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICBpbnQgZW5kID0gVXRpbGl0eS5xdW90ZWRJbmRleE9mKHJ1bGUsIHN0YXJ0LCBsaW1pdCwgIjsiKTsKKyAgICAgICAgaWYgKGVuZCA8IDApIHsKKyAgICAgICAgICAgIGVuZCA9IGxpbWl0OworICAgICAgICB9CisgICAgICAgIHJldHVybiBlbmQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBVbmljb2RlU2V0IG91dCwgc3RvcmUgaXQsIGFuZCByZXR1cm4gdGhlIHN0YW5kLWluIGNoYXJhY3RlcgorICAgICAqIHVzZWQgdG8gcmVwcmVzZW50IGl0LgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgY2hhciBwYXJzZVNldChTdHJpbmcgcnVsZSwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKyAgICAgICAgVW5pY29kZVNldCBzZXQgPSBuZXcgVW5pY29kZVNldChydWxlLCBwb3MsIHBhcnNlRGF0YSk7CisgICAgICAgIGlmICh2YXJpYWJsZU5leHQgPj0gdmFyaWFibGVMaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlByaXZhdGUgdXNlIHZhcmlhYmxlcyBleGhhdXN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICBzZXQuY29tcGFjdCgpOworICAgICAgICByZXR1cm4gZ2VuZXJhdGVTdGFuZEluRm9yKHNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGUgYW5kIHJldHVybiBhIHN0YW5kLWluIGZvciBhIG5ldyBVbmljb2RlTWF0Y2hlciBvciBVbmljb2RlUmVwbGFjZXIuCisgICAgICogU3RvcmUgdGhlIG9iamVjdC4KKyAgICAgKi8KKyAgICBjaGFyIGdlbmVyYXRlU3RhbmRJbkZvcihPYmplY3Qgb2JqKSB7CisgICAgICAgIC8vIGFzc2VydChvYmogIT0gbnVsbCk7CisKKyAgICAgICAgLy8gTG9vayB1cCBwcmV2aW91cyBzdGFuZC1pbiwgaWYgYW55LiAgVGhpcyBpcyBhIHNob3J0IGxpc3QKKyAgICAgICAgLy8gKHR5cGljYWwgbiBpcyAwLCAxLCBvciAyKTsgbGluZWFyIHNlYXJjaCBpcyBvcHRpbWFsLgorICAgICAgICBmb3IgKGludCBpPTA7IGk8dmFyaWFibGVzVmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAodmFyaWFibGVzVmVjdG9yLmVsZW1lbnRBdChpKSA9PSBvYmopIHsgLy8gW3NpY10gcG9pbnRlciBjb21wYXJpc29uCisgICAgICAgICAgICAgICAgcmV0dXJuIChjaGFyKSAoY3VyRGF0YS52YXJpYWJsZXNCYXNlICsgaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAodmFyaWFibGVOZXh0ID49IHZhcmlhYmxlTGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJWYXJpYWJsZSByYW5nZSBleGhhdXN0ZWQiKTsKKyAgICAgICAgfQorICAgICAgICB2YXJpYWJsZXNWZWN0b3IuYWRkRWxlbWVudChvYmopOworICAgICAgICByZXR1cm4gdmFyaWFibGVOZXh0Kys7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGFuZGluIGZvciBzZWdtZW50IHNlZyAoMS1iYXNlZCkuCisgICAgICovCisgICAgcHVibGljIGNoYXIgZ2V0U2VnbWVudFN0YW5kaW4oaW50IHNlZykgeworICAgICAgICBpZiAoc2VnbWVudFN0YW5kaW5zLmxlbmd0aCgpIDwgc2VnKSB7CisgICAgICAgICAgICBzZWdtZW50U3RhbmRpbnMuc2V0TGVuZ3RoKHNlZyk7CisgICAgICAgIH0KKyAgICAgICAgY2hhciBjID0gc2VnbWVudFN0YW5kaW5zLmNoYXJBdChzZWctMSk7CisgICAgICAgIGlmIChjID09IDApIHsKKyAgICAgICAgICAgIGlmICh2YXJpYWJsZU5leHQgPj0gdmFyaWFibGVMaW1pdCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJWYXJpYWJsZSByYW5nZSBleGhhdXN0ZWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGMgPSB2YXJpYWJsZU5leHQrKzsKKyAgICAgICAgICAgIC8vIFNldCBhIHBsYWNlaG9sZGVyIGluIHRoZSBtYXN0ZXIgdmFyaWFibGVzIHZlY3RvciB0aGF0IHdpbGwgYmUKKyAgICAgICAgICAgIC8vIGZpbGxlZCBpbiBsYXRlciBieSBzZXRTZWdtZW50T2JqZWN0KCkuICBXZSBrbm93IHRoYXQgd2Ugd2lsbCBnZXQKKyAgICAgICAgICAgIC8vIGNhbGxlZCBmaXJzdCBiZWNhdXNlIHNldFNlZ21lbnRPYmplY3QoKSB3aWxsIGNhbGwgdXMuCisgICAgICAgICAgICB2YXJpYWJsZXNWZWN0b3IuYWRkRWxlbWVudChudWxsKTsKKyAgICAgICAgICAgIHNlZ21lbnRTdGFuZGlucy5zZXRDaGFyQXQoc2VnLTEsIGMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG9iamVjdCBmb3Igc2VnbWVudCBzZWcgKDEtYmFzZWQpLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlZ21lbnRPYmplY3QoaW50IHNlZywgU3RyaW5nTWF0Y2hlciBvYmopIHsKKyAgICAgICAgLy8gU2luY2Ugd2UgY2FsbCBwYXJzZVNlY3Rpb24oKSByZWN1cnNpdmVseSwgbmVzdGVkCisgICAgICAgIC8vIHNlZ21lbnRzIHdpbGwgcmVzdWx0IGluIHNlZ21lbnQgaSsxIGdldHRpbmcgcGFyc2VkCisgICAgICAgIC8vIGFuZCBzdG9yZWQgYmVmb3JlIHNlZ21lbnQgaTsgYmUgY2FyZWZ1bCB3aXRoIHRoZQorICAgICAgICAvLyB2ZWN0b3IgaGFuZGxpbmcgaGVyZS4KKyAgICAgICAgaWYgKHNlZ21lbnRPYmplY3RzLnNpemUoKSA8IHNlZykgeworICAgICAgICAgICAgc2VnbWVudE9iamVjdHMuc2V0U2l6ZShzZWcpOworICAgICAgICB9CisgICAgICAgIGludCBpbmRleCA9IGdldFNlZ21lbnRTdGFuZGluKHNlZykgLSBjdXJEYXRhLnZhcmlhYmxlc0Jhc2U7CisgICAgICAgIGlmIChzZWdtZW50T2JqZWN0cy5lbGVtZW50QXQoc2VnLTEpICE9IG51bGwgfHwKKyAgICAgICAgICAgIHZhcmlhYmxlc1ZlY3Rvci5lbGVtZW50QXQoaW5kZXgpICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCk7IC8vIHNob3VsZCBuZXZlciBoYXBwZW4KKyAgICAgICAgfQorICAgICAgICBzZWdtZW50T2JqZWN0cy5zZXRFbGVtZW50QXQob2JqLCBzZWctMSk7CisgICAgICAgIHZhcmlhYmxlc1ZlY3Rvci5zZXRFbGVtZW50QXQob2JqLCBpbmRleCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGFuZC1pbiBmb3IgdGhlIGRvdCBzZXQuICBJdCBpcyBhbGxvY2F0ZWQgdGhlIGZpcnN0CisgICAgICogdGltZSBhbmQgcmV1c2VkIHRoZXJlYWZ0ZXIuCisgICAgICovCisgICAgY2hhciBnZXREb3RTdGFuZEluKCkgeworICAgICAgICBpZiAoZG90U3RhbmRJbiA9PSAtMSkgeworICAgICAgICAgICAgZG90U3RhbmRJbiA9IGdlbmVyYXRlU3RhbmRJbkZvcihuZXcgVW5pY29kZVNldChET1RfU0VUKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChjaGFyKSBkb3RTdGFuZEluOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgdmFsdWUgb2YgdGhlIGdpdmVuIHZhcmlhYmxlIG5hbWUgdG8gdGhlIGdpdmVuCisgICAgICogU3RyaW5nQnVmZmVyLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBuYW1lIGlzIHVua25vd24uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGFwcGVuZFZhcmlhYmxlRGVmKFN0cmluZyBuYW1lLCBTdHJpbmdCdWZmZXIgYnVmKSB7CisgICAgICAgIGNoYXJbXSBjaCA9IChjaGFyW10pIHZhcmlhYmxlTmFtZXMuZ2V0KG5hbWUpOworICAgICAgICBpZiAoY2ggPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gV2UgYWxsb3cgb25lIHVuZGVmaW5lZCB2YXJpYWJsZSBzbyB0aGF0IHZhcmlhYmxlIGRlZmluaXRpb24KKyAgICAgICAgICAgIC8vIHN0YXRlbWVudHMgd29yay4gIEZvciB0aGUgZmlyc3QgdW5kZWZpbmVkIHZhcmlhYmxlIHdlIHJldHVybgorICAgICAgICAgICAgLy8gdGhlIHNwZWNpYWwgcGxhY2Vob2xkZXIgdmFyaWFibGVMaW1pdC0xLCBhbmQgc2F2ZSB0aGUgdmFyaWFibGUKKyAgICAgICAgICAgIC8vIG5hbWUuCisgICAgICAgICAgICBpZiAodW5kZWZpbmVkVmFyaWFibGVOYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB1bmRlZmluZWRWYXJpYWJsZU5hbWUgPSBuYW1lOworICAgICAgICAgICAgICAgIGlmICh2YXJpYWJsZU5leHQgPj0gdmFyaWFibGVMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiUHJpdmF0ZSB1c2UgdmFyaWFibGVzIGV4aGF1c3RlZCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKChjaGFyKSAtLXZhcmlhYmxlTGltaXQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVbmRlZmluZWQgdmFyaWFibGUgJCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKGNoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9yUmVnaXN0cnkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1RyYW5zbGl0ZXJhdG9yUmVnaXN0cnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYzg0MTdjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVHJhbnNsaXRlcmF0b3JSZWdpc3RyeS5qYXZhCkBAIC0wLDAgKzEsODkzIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMS0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwOC8xOS8yMDAxICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLy9pbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Mb2NhbGVVdGlsaXR5OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVVNjcmlwdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNhc2VJbnNlbnNpdGl2ZVN0cmluZzsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVSZXNvdXJjZUJ1bmRsZTsKKworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworY2xhc3MgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSB7CisKKyAgICAvLyBjaGFyIGNvbnN0YW50cworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgTE9DQUxFX1NFUCAgPSAnXyc7CisKKyAgICAvLyBTdHJpbmcgY29uc3RhbnRzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5PX1ZBUklBTlQgPSAiIjsgLy8gZW1wdHkgc3RyaW5nCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFOWSA9ICJBbnkiOworCisgICAgLyoqCisgICAgICogRHluYW1pYyByZWdpc3RyeSBtYXBwaW5nIGZ1bGwgSURzIHRvIEVudHJ5IG9iamVjdHMuICBUaGlzCisgICAgICogY29udGFpbnMgYm90aCBwdWJsaWMgYW5kIGludGVybmFsIGVudGl0aWVzLiAgVGhlIHZpc2liaWxpdHkgaXMKKyAgICAgKiBjb250cm9sbGVkIGJ5IHdoZXRoZXIgYW4gZW50cnkgaXMgbGlzdGVkIGluIGF2YWlsYWJsZUlEcyBhbmQKKyAgICAgKiBzcGVjREFHIG9yIG5vdC4KKyAgICAgKgorICAgICAqIEtleXMgYXJlIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBvYmplY3RzLgorICAgICAqIFZhbHVlcyBhcmUgb2JqZWN0cyBvZiBjbGFzcyBDbGFzcyAoc3ViY2xhc3Mgb2YgVHJhbnNsaXRlcmF0b3IpLAorICAgICAqIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEsIFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnksIG9yIG9uZQorICAgICAqIG9mIHRoZSBlbnRyeSBjbGFzc2VzIGRlZmluZWQgaGVyZSAoQWxpYXNFbnRyeSBvciBSZXNvdXJjZUVudHJ5KS4KKyAgICAgKi8KKyAgICBwcml2YXRlIEhhc2h0YWJsZSByZWdpc3RyeTsKKworICAgIC8qKgorICAgICAqIERBRyBvZiB2aXNpYmxlIElEcyBieSBzcGVjLiAgSGFzaHRhYmxlOiBzb3VyY2UgPT4gKEhhc2h0YWJsZToKKyAgICAgKiB0YXJnZXQgPT4gKFZlY3RvcjogdmFyaWFudCkpIFRoZSBWZWN0b3Igb2YgdmFyaWFudHMgaXMgbmV2ZXIKKyAgICAgKiBlbXB0eS4gIEZvciBhIHNvdXJjZS10YXJnZXQgd2l0aCBubyB2YXJpYW50LCB0aGUgc3BlY2lhbAorICAgICAqIHZhcmlhbnQgTk9fVkFSSUFOVCAodGhlIGVtcHR5IHN0cmluZykgaXMgc3RvcmVkIGluIHNsb3QgemVybyBvZgorICAgICAqIHRoZSBVVmVjdG9yLgorICAgICAqCisgICAgICogS2V5cyBhcmUgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIG9iamVjdHMuCisgICAgICogVmFsdWVzIGFyZSBIYXNodGFibGUgb2YgKENhc2VJbnNlbnNpdGl2ZVN0cmluZyAtPiBWZWN0b3Igb2YKKyAgICAgKiBDYXNlSW5zZW5zaXRpdmVTdHJpbmcpCisgICAgICovCisgICAgcHJpdmF0ZSBIYXNodGFibGUgc3BlY0RBRzsKKworICAgIC8qKgorICAgICAqIFZlY3RvciBvZiBwdWJsaWMgZnVsbCBJRHMgKENhc2VJbnNlbnNpdGl2ZVN0cmluZyBvYmplY3RzKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFZlY3RvciBhdmFpbGFibGVJRHM7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjbGFzcyBTcGVjCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBBIFNwZWMgaXMgYSBzdHJpbmcgc3BlY2lmeWluZyBlaXRoZXIgYSBzb3VyY2Ugb3IgYSB0YXJnZXQuICBJbiBtb3JlCisgICAgICogZ2VuZXJhbCB0ZXJtcywgaXQgbWF5IGFsc28gc3BlY2lmeSBhIHZhcmlhbnQsIGJ1dCB3ZSBvbmx5IHVzZSB0aGUKKyAgICAgKiBTcGVjIGNsYXNzIGZvciBzb3VyY2VzIGFuZCB0YXJnZXRzLgorICAgICAqCisgICAgICogQSBTcGVjIG1heSBiZSBhIGxvY2FsZSBvciBhIHNjcmlwdC4gIElmIGl0IGlzIGEgbG9jYWxlLCBpdCBoYXMgYQorICAgICAqIGZhbGxiYWNrIGNoYWluIHRoYXQgZ29lcyB4eF9ZWV9aWlogLT4geHhfWVkgLT4geHggLT4gc3Nzcywgd2hlcmUKKyAgICAgKiBzc3NzIGlzIHRoZSBzY3JpcHQgbWFwcGluZyBvZiB4eF9ZWV9aWlouICBUaGUgU3BlYyBBUEkgbWV0aG9kcworICAgICAqIGhhc0ZhbGxiYWNrKCksIG5leHQoKSwgYW5kIHJlc2V0KCkgaXRlcmF0ZSBvdmVyIHRoaXMgZmFsbGJhY2sKKyAgICAgKiBzZXF1ZW5jZS4KKyAgICAgKgorICAgICAqIFRoZSBTcGVjIGNsYXNzIGNhbm9uaWNhbGl6ZXMgaXRzZWxmLCBzbyB0aGUgbG9jYWxlIGlzIHB1dCBpbnRvCisgICAgICogY2Fub25pY2FsIGZvcm0sIG9yIHRoZSBzY3JpcHQgaXMgdHJhbnNmb3JtZWQgZnJvbSBhbiBhYmJyZXZpYXRpb24KKyAgICAgKiB0byBhIGZ1bGwgbmFtZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgU3BlYyB7CisKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgdG9wOyAgICAgICAgLy8gdG9wIHNwZWMKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgc3BlYzsgICAgICAgLy8gY3VycmVudCBzcGVjCisgICAgICAgIHByaXZhdGUgU3RyaW5nIG5leHRTcGVjOyAgIC8vIG5leHQgc3BlYworICAgICAgICBwcml2YXRlIFN0cmluZyBzY3JpcHROYW1lOyAvLyBzY3JpcHQgbmFtZSBlcXVpdmFsZW50IG9mIHRvcCwgaWYgIT0gdG9wCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc1NwZWNMb2NhbGU7IC8vIFRSVUUgaWYgc3BlYyBpcyBhIGxvY2FsZQorICAgICAgICBwcml2YXRlIGJvb2xlYW4gaXNOZXh0TG9jYWxlOyAvLyBUUlVFIGlmIG5leHRTcGVjIGlzIGEgbG9jYWxlCisgICAgICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGUgcmVzOworCisgICAgICAgIHB1YmxpYyBTcGVjKFN0cmluZyB0aGVTcGVjKSB7CisgICAgICAgICAgICB0b3AgPSB0aGVTcGVjOworICAgICAgICAgICAgc3BlYyA9IG51bGw7CisgICAgICAgICAgICBzY3JpcHROYW1lID0gbnVsbDsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAvLyBDYW5vbmljYWxpemUgc2NyaXB0IG5hbWUuICBJZiB0b3AgaXMgYSBzY3JpcHQgbmFtZSB0aGVuCisgICAgICAgICAgICAgICAgLy8gc2NyaXB0ICE9IFVTY3JpcHQuSU5WQUxJRF9DT0RFLgorICAgICAgICAgICAgICAgIGludCBzY3JpcHQgPSBVU2NyaXB0LmdldENvZGVGcm9tTmFtZSh0b3ApOworCisgICAgICAgICAgICAgICAgLy8gQ2Fub25pY2FsaXplIHNjcmlwdCBuYW1lIC1vci0gZG8gbG9jYWxlLT5zY3JpcHQgbWFwcGluZworICAgICAgICAgICAgICAgIGludFtdIHMgPSBVU2NyaXB0LmdldENvZGUodG9wKTsKKyAgICAgICAgICAgICAgICBpZiAocyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHNjcmlwdE5hbWUgPSBVU2NyaXB0LmdldE5hbWUoc1swXSk7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBzY3JpcHQgbmFtZSBpcyB0aGUgc2FtZSBhcyB0b3AgdGhlbiBpdCdzIHJlZHVuZGFudAorICAgICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0TmFtZS5lcXVhbHNJZ25vcmVDYXNlKHRvcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdE5hbWUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaXNTcGVjTG9jYWxlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgcmVzID0gbnVsbDsKKyAgICAgICAgICAgICAgICAvLyBJZiAndG9wJyBpcyBub3QgYSBzY3JpcHQgbmFtZSwgdHJ5IGEgbG9jYWxlIGxvb2t1cAorICAgICAgICAgICAgICAgIGlmIChzY3JpcHQgPT0gVVNjcmlwdC5JTlZBTElEX0NPREUpIHsKKyAgICAgICAgICAgICAgICAgICAgTG9jYWxlIHRvcGxvYyA9IExvY2FsZVV0aWxpdHkuZ2V0TG9jYWxlRnJvbU5hbWUodG9wKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzICA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX1RSQU5TTElUX0JBU0VfTkFNRSx0b3Bsb2MpOworICAgICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZ290IHRoZSBidW5kbGUgd2Ugd2FudGVkOyBvdGhlcndpc2UsIGRvbid0IHVzZSBpdAorICAgICAgICAgICAgICAgICAgICBpZiAocmVzIT1udWxsICYmIExvY2FsZVV0aWxpdHkuaXNGYWxsYmFja09mKHJlcy5nZXRVTG9jYWxlKCkudG9TdHJpbmcoKSwgdG9wKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaXNTcGVjTG9jYWxlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgc2NyaXB0TmFtZSA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBhc3NlcnQoc3BlYyAhPSB0b3ApOworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc0ZhbGxiYWNrKCkgeworICAgICAgICAgICAgcmV0dXJuIG5leHRTcGVjICE9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAgICAgICAgIGlmIChzcGVjICE9IHRvcCkgeyAvLyBbc2ljXSBwb2ludGVyIGNvbXBhcmlzb24KKyAgICAgICAgICAgICAgICBzcGVjID0gdG9wOworICAgICAgICAgICAgICAgIGlzU3BlY0xvY2FsZSA9IChyZXMgIT0gbnVsbCk7CisgICAgICAgICAgICAgICAgc2V0dXBOZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgc2V0dXBOZXh0KCkgeworICAgICAgICAgICAgaXNOZXh0TG9jYWxlID0gZmFsc2U7CisgICAgICAgICAgICBpZiAoaXNTcGVjTG9jYWxlKSB7CisgICAgICAgICAgICAgICAgbmV4dFNwZWMgPSBzcGVjOworICAgICAgICAgICAgICAgIGludCBpID0gbmV4dFNwZWMubGFzdEluZGV4T2YoTE9DQUxFX1NFUCk7CisgICAgICAgICAgICAgICAgLy8gSWYgaSA9PSAwIHRoZW4gd2UgaGF2ZSBfRk9PLCBzbyB3ZSBmYWxsIHRocm91Z2gKKyAgICAgICAgICAgICAgICAvLyB0byB0aGUgc2NyaXB0TmFtZS4KKyAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dFNwZWMgPSBzcGVjLnN1YnN0cmluZygwLCBpKTsKKyAgICAgICAgICAgICAgICAgICAgaXNOZXh0TG9jYWxlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBuZXh0U3BlYyA9IHNjcmlwdE5hbWU7IC8vIHNjcmlwdE5hbWUgbWF5IGJlIG51bGwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIEZhbGxiYWNrIHRvIHRoZSBzY3JpcHQsIHdoaWNoIG1heSBiZSBudWxsCisgICAgICAgICAgICAgICAgaWYgKG5leHRTcGVjICE9IHNjcmlwdE5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dFNwZWMgPSBzY3JpcHROYW1lOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG5leHRTcGVjID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBQcm90b2NvbDoKKyAgICAgICAgLy8gZm9yKFN0cmluZyYgcyhzcGVjLmdldCgpKTsKKyAgICAgICAgLy8gICAgIHNwZWMuaGFzRmFsbGJhY2soKTsgcyhzcGVjLm5leHQoKSkpIHsgLi4uCisKKyAgICAgICAgcHVibGljIFN0cmluZyBuZXh0KCkgeworICAgICAgICAgICAgc3BlYyA9IG5leHRTcGVjOworICAgICAgICAgICAgaXNTcGVjTG9jYWxlID0gaXNOZXh0TG9jYWxlOworICAgICAgICAgICAgc2V0dXBOZXh0KCk7CisgICAgICAgICAgICByZXR1cm4gc3BlYzsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0KCkgeworICAgICAgICAgICAgcmV0dXJuIHNwZWM7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0xvY2FsZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBpc1NwZWNMb2NhbGU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJuIHRoZSBSZXNvdXJjZUJ1bmRsZSBmb3IgdGhpcyBzcGVjLCBhdCB0aGUgY3VycmVudAorICAgICAgICAgKiBsZXZlbCBvZiBpdGVyYXRpb24uICBUaGUgbGV2ZWwgb2YgaXRlcmF0aW9uIGdvZXMgZnJvbQorICAgICAgICAgKiBhYV9CQl9DQ0MgdG8gYWFfQkIgdG8gYWEuICBJZiB0aGUgYnVuZGxlIGRvZXMgbm90CisgICAgICAgICAqIGNvcnJlc3BvbmQgdG8gdGhlIGN1cnJlbnQgbGV2ZWwgb2YgaXRlcmF0aW9uLCByZXR1cm4gbnVsbC4KKyAgICAgICAgICogSWYgaXNMb2NhbGUoKSBpcyBmYWxzZSwgYWx3YXlzIHJldHVybiBudWxsLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFJlc291cmNlQnVuZGxlIGdldEJ1bmRsZSgpIHsKKyAgICAgICAgICAgIGlmIChyZXMgIT0gbnVsbCAmJgorICAgICAgICAgICAgICAgIHJlcy5nZXRVTG9jYWxlKCkudG9TdHJpbmcoKS5lcXVhbHMoc3BlYykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFRvcCgpIHsKKyAgICAgICAgICAgIHJldHVybiB0b3A7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBFbnRyeSBjbGFzc2VzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBzdGF0aWMgY2xhc3MgUmVzb3VyY2VFbnRyeSB7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgcmVzb3VyY2U7CisgICAgICAgIHB1YmxpYyBTdHJpbmcgZW5jb2Rpbmc7CisgICAgICAgIHB1YmxpYyBpbnQgZGlyZWN0aW9uOworICAgICAgICBwdWJsaWMgUmVzb3VyY2VFbnRyeShTdHJpbmcgbiwgU3RyaW5nIGVuYywgaW50IGQpIHsKKyAgICAgICAgICAgIHJlc291cmNlID0gbjsKKyAgICAgICAgICAgIGVuY29kaW5nID0gZW5jOworICAgICAgICAgICAgZGlyZWN0aW9uID0gZDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEFuIGVudHJ5IHJlcHJlc2VudGluZyBhIHJ1bGUgaW4gYSBsb2NhbGUgcmVzb3VyY2UgYnVuZGxlCisgICAgc3RhdGljIGNsYXNzIExvY2FsZUVudHJ5IHsKKyAgICAgICAgcHVibGljIFN0cmluZyBydWxlOworICAgICAgICBwdWJsaWMgaW50IGRpcmVjdGlvbjsKKyAgICAgICAgcHVibGljIExvY2FsZUVudHJ5KFN0cmluZyByLCBpbnQgZCkgeworICAgICAgICAgICAgcnVsZSA9IHI7CisgICAgICAgICAgICBkaXJlY3Rpb24gPSBkOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIEFsaWFzRW50cnkgeworICAgICAgICBwdWJsaWMgU3RyaW5nIGFsaWFzOworICAgICAgICBwdWJsaWMgQWxpYXNFbnRyeShTdHJpbmcgYSkgeworICAgICAgICAgICAgYWxpYXMgPSBhOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGNsYXNzIENvbXBvdW5kUkJURW50cnkgeworICAgICAgICBwcml2YXRlIFN0cmluZyBJRDsKKyAgICAgICAgcHJpdmF0ZSBWZWN0b3IgaWRCbG9ja1ZlY3RvcjsKKyAgICAgICAgcHJpdmF0ZSBWZWN0b3IgZGF0YVZlY3RvcjsKKyAgICAgICAgcHJpdmF0ZSBVbmljb2RlU2V0IGNvbXBvdW5kRmlsdGVyOworCisgICAgICAgIHB1YmxpYyBDb21wb3VuZFJCVEVudHJ5KFN0cmluZyB0aGVJRCwgVmVjdG9yIHRoZUlEQmxvY2tWZWN0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvciB0aGVEYXRhVmVjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU2V0IHRoZUNvbXBvdW5kRmlsdGVyKSB7CisgICAgICAgICAgICBJRCA9IHRoZUlEOworICAgICAgICAgICAgaWRCbG9ja1ZlY3RvciA9IHRoZUlEQmxvY2tWZWN0b3I7CisgICAgICAgICAgICBkYXRhVmVjdG9yID0gdGhlRGF0YVZlY3RvcjsKKyAgICAgICAgICAgIGNvbXBvdW5kRmlsdGVyID0gdGhlQ29tcG91bmRGaWx0ZXI7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgICAgICBWZWN0b3IgdHJhbnNsaXRlcmF0b3JzID0gbmV3IFZlY3RvcigpOworICAgICAgICAgICAgaW50IHBhc3NOdW1iZXIgPSAxOworCisgICAgICAgICAgICBpbnQgbGltaXQgPSBNYXRoLm1heChpZEJsb2NrVmVjdG9yLnNpemUoKSwgZGF0YVZlY3Rvci5zaXplKCkpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaW1pdDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPCBpZEJsb2NrVmVjdG9yLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaWRCbG9jayA9IChTdHJpbmcpaWRCbG9ja1ZlY3Rvci5nZXQoaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpZEJsb2NrLmxlbmd0aCgpID4gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGl0ZXJhdG9ycy5hZGQoVHJhbnNsaXRlcmF0b3IuZ2V0SW5zdGFuY2UoaWRCbG9jaykpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaSA8IGRhdGFWZWN0b3Iuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgZGF0YSA9IChSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhKWRhdGFWZWN0b3IuZ2V0KGkpOworICAgICAgICAgICAgICAgICAgICB0cmFuc2xpdGVyYXRvcnMuYWRkKG5ldyBSdWxlQmFzZWRUcmFuc2xpdGVyYXRvcigiJVBhc3MiICsgcGFzc051bWJlcisrLCBkYXRhLCBudWxsKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0ID0gbmV3IENvbXBvdW5kVHJhbnNsaXRlcmF0b3IodHJhbnNsaXRlcmF0b3JzLCBwYXNzTnVtYmVyIC0gMSk7CisgICAgICAgICAgICB0LnNldElEKElEKTsKKyAgICAgICAgICAgIGlmIChjb21wb3VuZEZpbHRlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgdC5zZXRGaWx0ZXIoY29tcG91bmRGaWx0ZXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjbGFzcyBUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5OiBCYXNpYyBwdWJsaWMgQVBJCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeSgpIHsKKyAgICAgICAgcmVnaXN0cnkgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIHNwZWNEQUcgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIGF2YWlsYWJsZUlEcyA9IG5ldyBWZWN0b3IoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIHNpbXBsZSBJRCAoZm9yd2FyZCBkaXJlY3Rpb24sIG5vIGlubGluZSBmaWx0ZXIsIG5vdAorICAgICAqIGNvbXBvdW5kKSBhdHRlbXB0IHRvIGluc3RhbnRpYXRlIGl0IGZyb20gdGhlIHJlZ2lzdHJ5LiAgUmV0dXJuCisgICAgICogMCBvbiBmYWlsdXJlLgorICAgICAqCisgICAgICogUmV0dXJuIGEgbm9uLWVtcHR5IGFsaWFzUmV0dXJuIHZhbHVlIGlmIHRoZSBJRCBwb2ludHMgdG8gYW4gYWxpYXMuCisgICAgICogV2UgY2Fubm90IGluc3RhbnRpYXRlIGl0IG91cnNlbHZlcyBiZWNhdXNlIHRoZSBhbGlhcyBtYXkgY29udGFpbgorICAgICAqIGZpbHRlcnMgb3IgY29tcG91bmRzLCB3aGljaCB3ZSBkbyBub3QgdW5kZXJzdGFuZC4gIENhbGxlciBzaG91bGQKKyAgICAgKiBtYWtlIGFsaWFzUmV0dXJuIGVtcHR5IGJlZm9yZSBjYWxsaW5nLgorICAgICAqLworICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXQoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGFsaWFzUmV0dXJuKSB7CisgICAgICAgIE9iamVjdFtdIGVudHJ5ID0gZmluZChJRCk7CisgICAgICAgIHJldHVybiAoZW50cnkgPT0gbnVsbCkgPyBudWxsCisgICAgICAgICAgICA6IGluc3RhbnRpYXRlRW50cnkoSUQsIGVudHJ5LCBhbGlhc1JldHVybik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBjbGFzcy4gIFRoaXMgYWRkcyBhbiBlbnRyeSB0byB0aGUKKyAgICAgKiBkeW5hbWljIHN0b3JlLCBvciByZXBsYWNlcyBhbiBleGlzdGluZyBlbnRyeS4gIEFueSBlbnRyeSBpbiB0aGUKKyAgICAgKiB1bmRlcmx5aW5nIHN0YXRpYyBsb2NhbGUgcmVzb3VyY2Ugc3RvcmUgaXMgbWFza2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dChTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgIENsYXNzIHRyYW5zbGl0ZXJhdG9yU3ViY2xhc3MsCisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICByZWdpc3RlckVudHJ5KElELCB0cmFuc2xpdGVyYXRvclN1YmNsYXNzLCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhbiBJRCBhbmQgYSBmYWN0b3J5IGZ1bmN0aW9uIHBvaW50ZXIuICBUaGlzIGFkZHMgYW4KKyAgICAgKiBlbnRyeSB0byB0aGUgZHluYW1pYyBzdG9yZSwgb3IgcmVwbGFjZXMgYW4gZXhpc3RpbmcgZW50cnkuICBBbnkKKyAgICAgKiBlbnRyeSBpbiB0aGUgdW5kZXJseWluZyBzdGF0aWMgbG9jYWxlIHJlc291cmNlIHN0b3JlIGlzIG1hc2tlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwdXQoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvci5GYWN0b3J5IGZhY3RvcnksCisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICByZWdpc3RlckVudHJ5KElELCBmYWN0b3J5LCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhbiBJRCBhbmQgYSByZXNvdXJjZSBuYW1lLiAgVGhpcyBhZGRzIGFuIGVudHJ5IHRvIHRoZQorICAgICAqIGR5bmFtaWMgc3RvcmUsIG9yIHJlcGxhY2VzIGFuIGV4aXN0aW5nIGVudHJ5LiAgQW55IGVudHJ5IGluIHRoZQorICAgICAqIHVuZGVybHlpbmcgc3RhdGljIGxvY2FsZSByZXNvdXJjZSBzdG9yZSBpcyBtYXNrZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcHV0KFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHJlc291cmNlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICBpbnQgZGlyLAorICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgcmVnaXN0ZXJFbnRyeShJRCwgbmV3IFJlc291cmNlRW50cnkocmVzb3VyY2VOYW1lLCBlbmNvZGluZywgZGlyKSwgdmlzaWJsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYW4gSUQgYW5kIGFuIGFsaWFzIElELiAgVGhpcyBhZGRzIGFuIGVudHJ5IHRvIHRoZQorICAgICAqIGR5bmFtaWMgc3RvcmUsIG9yIHJlcGxhY2VzIGFuIGV4aXN0aW5nIGVudHJ5LiAgQW55IGVudHJ5IGluIHRoZQorICAgICAqIHVuZGVybHlpbmcgc3RhdGljIGxvY2FsZSByZXNvdXJjZSBzdG9yZSBpcyBtYXNrZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcHV0KFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGFsaWFzLAorICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgcmVnaXN0ZXJFbnRyeShJRCwgbmV3IEFsaWFzRW50cnkoYWxpYXMpLCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhbiBJRCBhbmQgYSBUcmFuc2xpdGVyYXRvciBvYmplY3QuICBUaGlzIGFkZHMgYW4gZW50cnkKKyAgICAgKiB0byB0aGUgZHluYW1pYyBzdG9yZSwgb3IgcmVwbGFjZXMgYW4gZXhpc3RpbmcgZW50cnkuICBBbnkgZW50cnkKKyAgICAgKiBpbiB0aGUgdW5kZXJseWluZyBzdGF0aWMgbG9jYWxlIHJlc291cmNlIHN0b3JlIGlzIG1hc2tlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwdXQoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICBUcmFuc2xpdGVyYXRvciB0cmFucywKKyAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIHJlZ2lzdGVyRW50cnkoSUQsIHRyYW5zLCB2aXNpYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGFuIElELiAgVGhpcyByZW1vdmVzIGFuIGVudHJ5IGZyb20gdGhlIGR5bmFtaWMgc3RvcmUKKyAgICAgKiBpZiB0aGVyZSBpcyBvbmUuICBUaGUgc3RhdGljIGxvY2FsZSByZXNvdXJjZSBzdG9yZSBpcworICAgICAqIHVuYWZmZWN0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlKFN0cmluZyBJRCkgeworICAgICAgICBTdHJpbmdbXSBzdHYgPSBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLklEdG9TVFYoSUQpOworICAgICAgICAvLyBPbmx5IG5lZWQgdG8gZG8gdGhpcyBpZiBJRC5pbmRleE9mKCctJykgPCAwCisgICAgICAgIFN0cmluZyBpZCA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU1RWdG9JRChzdHZbMF0sIHN0dlsxXSwgc3R2WzJdKTsKKyAgICAgICAgcmVnaXN0cnkucmVtb3ZlKG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoaWQpKTsKKyAgICAgICAgcmVtb3ZlU1RWKHN0dlswXSwgc3R2WzFdLCBzdHZbMl0pOworICAgICAgICBhdmFpbGFibGVJRHMucmVtb3ZlRWxlbWVudChuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKGlkKSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2xhc3MgVHJhbnNsaXRlcmF0b3JSZWdpc3RyeTogUHVibGljIElEIGFuZCBzcGVjIG1hbmFnZW1lbnQKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEFuIGludGVybmFsIGNsYXNzIHRoYXQgYWRhcHRzIGFuIGVudW1lcmF0aW9uIG92ZXIKKyAgICAgKiBDYXNlSW5zZW5zaXRpdmVTdHJpbmdzIHRvIGFuIGVudW1lcmF0aW9uIG92ZXIgU3RyaW5ncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBJREVudW1lcmF0aW9uIGltcGxlbWVudHMgRW51bWVyYXRpb24geworICAgICAgICBFbnVtZXJhdGlvbiBlbjsKKworICAgICAgICBwdWJsaWMgSURFbnVtZXJhdGlvbihFbnVtZXJhdGlvbiBlKSB7CisgICAgICAgICAgICBlbiA9IGU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNNb3JlRWxlbWVudHMoKSB7CisgICAgICAgICAgICByZXR1cm4gZW4gIT0gbnVsbCAmJiBlbi5oYXNNb3JlRWxlbWVudHMoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBPYmplY3QgbmV4dEVsZW1lbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gKChDYXNlSW5zZW5zaXRpdmVTdHJpbmcpIGVuLm5leHRFbGVtZW50KCkpLmdldFN0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBlbnVtZXJhdGlvbiBvdmVyIHRoZSBwcm9ncmFtbWF0aWMgbmFtZXMgb2YgdmlzaWJsZQorICAgICAqIHJlZ2lzdGVyZWQgdHJhbnNsaXRlcmF0b3JzLgorICAgICAqCisgICAgICogQHJldHVybiBBbiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZT4gb3ZlciA8Y29kZT5TdHJpbmc8L2NvZGU+IG9iamVjdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlSURzKCkgeworICAgICAgICAvLyBTaW5jZSB0aGUgY2FjaGUgY29udGFpbnMgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIG9iamVjdHMsIGJ1dAorICAgICAgICAvLyB0aGUgY2FsbGVyIGV4cGVjdHMgU3RyaW5ncywgd2UgaGF2ZSB0byB1c2UgYW4gaW50ZXJtZWRpYXJ5LgorICAgICAgICByZXR1cm4gbmV3IElERW51bWVyYXRpb24oYXZhaWxhYmxlSURzLmVsZW1lbnRzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gZW51bWVyYXRpb24gb3ZlciBhbGwgdmlzaWJsZSBzb3VyY2UgbmFtZXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIEFuIDxjb2RlPkVudW1lcmF0aW9uPC9jb2RlPiBvdmVyIDxjb2RlPlN0cmluZzwvY29kZT4gb2JqZWN0cworICAgICAqLworICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBnZXRBdmFpbGFibGVTb3VyY2VzKCkgeworICAgICAgICByZXR1cm4gbmV3IElERW51bWVyYXRpb24oc3BlY0RBRy5rZXlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gZW51bWVyYXRpb24gb3ZlciB2aXNpYmxlIHRhcmdldCBuYW1lcyBmb3IgdGhlIGdpdmVuCisgICAgICogc291cmNlLgorICAgICAqCisgICAgICogQHJldHVybiBBbiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZT4gb3ZlciA8Y29kZT5TdHJpbmc8L2NvZGU+IG9iamVjdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlVGFyZ2V0cyhTdHJpbmcgc291cmNlKSB7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaXNyYyA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoc291cmNlKTsKKyAgICAgICAgSGFzaHRhYmxlIHRhcmdldHMgPSAoSGFzaHRhYmxlKSBzcGVjREFHLmdldChjaXNyYyk7CisgICAgICAgIGlmICh0YXJnZXRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSURFbnVtZXJhdGlvbihudWxsKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IElERW51bWVyYXRpb24odGFyZ2V0cy5rZXlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gZW51bWVyYXRpb24gb3ZlciB2aXNpYmxlIHZhcmlhbnQgbmFtZXMgZm9yIHRoZSBnaXZlbgorICAgICAqIHNvdXJjZSBhbmQgdGFyZ2V0LgorICAgICAqCisgICAgICogQHJldHVybiBBbiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZT4gb3ZlciA8Y29kZT5TdHJpbmc8L2NvZGU+IG9iamVjdHMKKyAgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0QXZhaWxhYmxlVmFyaWFudHMoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHRhcmdldCkgeworICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgY2lzcmMgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaXRyZyA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgSGFzaHRhYmxlIHRhcmdldHMgPSAoSGFzaHRhYmxlKSBzcGVjREFHLmdldChjaXNyYyk7CisgICAgICAgIGlmICh0YXJnZXRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgSURFbnVtZXJhdGlvbihudWxsKTsKKyAgICAgICAgfQorICAgICAgICBWZWN0b3IgdmFyaWFudHMgPSAoVmVjdG9yKSB0YXJnZXRzLmdldChjaXRyZyk7CisgICAgICAgIGlmICh2YXJpYW50cyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IElERW51bWVyYXRpb24obnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBJREVudW1lcmF0aW9uKHZhcmlhbnRzLmVsZW1lbnRzKCkpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIGNsYXNzIFRyYW5zbGl0ZXJhdG9yUmVnaXN0cnk6IGludGVybmFsCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuICBDYWxscyA2LWFyZyByZWdpc3RlckVudHJ5KCkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlZ2lzdGVyRW50cnkoU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBlbnRyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgU3RyaW5nIHMgPSBzb3VyY2U7CisgICAgICAgIGlmIChzLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHMgPSBBTlk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIElEID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5TVFZ0b0lEKHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50KTsKKyAgICAgICAgcmVnaXN0ZXJFbnRyeShJRCwgcywgdGFyZ2V0LCB2YXJpYW50LCBlbnRyeSwgdmlzaWJsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLiAgQ2FsbHMgNi1hcmcgcmVnaXN0ZXJFbnRyeSgpLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCByZWdpc3RlckVudHJ5KFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QgZW50cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB2aXNpYmxlKSB7CisgICAgICAgIFN0cmluZ1tdIHN0diA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuSUR0b1NUVihJRCk7CisgICAgICAgIC8vIE9ubHkgbmVlZCB0byBkbyB0aGlzIGlmIElELmluZGV4T2YoJy0nKSA8IDAKKyAgICAgICAgU3RyaW5nIGlkID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5TVFZ0b0lEKHN0dlswXSwgc3R2WzFdLCBzdHZbMl0pOworICAgICAgICByZWdpc3RlckVudHJ5KGlkLCBzdHZbMF0sIHN0dlsxXSwgc3R2WzJdLCBlbnRyeSwgdmlzaWJsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYW4gZW50cnkgb2JqZWN0IChhZG9wdGVkKSB3aXRoIHRoZSBnaXZlbiBJRCwgc291cmNlLAorICAgICAqIHRhcmdldCwgYW5kIHZhcmlhbnQgc3RyaW5ncy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVnaXN0ZXJFbnRyeShTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBlbnRyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHZpc2libGUpIHsKKyAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIGNpSUQgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKElEKTsKKworICAgICAgICAvLyBTdG9yZSB0aGUgZW50cnkgd2l0aGluIGFuIGFycmF5IHNvIGl0IGNhbiBiZSBtb2RpZmllZCBsYXRlcgorICAgICAgICBpZiAoIShlbnRyeSBpbnN0YW5jZW9mIE9iamVjdFtdKSkgeworICAgICAgICAgICAgZW50cnkgPSBuZXcgT2JqZWN0W10geyBlbnRyeSB9OworICAgICAgICB9CisKKyAgICAgICAgcmVnaXN0cnkucHV0KGNpSUQsIGVudHJ5KTsKKyAgICAgICAgaWYgKHZpc2libGUpIHsKKyAgICAgICAgICAgIHJlZ2lzdGVyU1RWKHNvdXJjZSwgdGFyZ2V0LCB2YXJpYW50KTsKKyAgICAgICAgICAgIGlmICghYXZhaWxhYmxlSURzLmNvbnRhaW5zKGNpSUQpKSB7CisgICAgICAgICAgICAgICAgYXZhaWxhYmxlSURzLmFkZEVsZW1lbnQoY2lJRCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZW1vdmVTVFYoc291cmNlLCB0YXJnZXQsIHZhcmlhbnQpOworICAgICAgICAgICAgYXZhaWxhYmxlSURzLnJlbW92ZUVsZW1lbnQoY2lJRCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIHNvdXJjZS10YXJnZXQvdmFyaWFudCBpbiB0aGUgc3BlY0RBRy4gIFZhcmlhbnQgbWF5IGJlCisgICAgICogZW1wdHksIGJ1dCBzb3VyY2UgYW5kIHRhcmdldCBtdXN0IG5vdCBiZS4gIElmIHZhcmlhbnQgaXMgZW1wdHkgdGhlbgorICAgICAqIHRoZSBzcGVjaWFsIHZhcmlhbnQgTk9fVkFSSUFOVCBpcyBzdG9yZWQgaW4gc2xvdCB6ZXJvIG9mIHRoZQorICAgICAqIFVWZWN0b3Igb2YgdmFyaWFudHMuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHJlZ2lzdGVyU1RWKFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50KSB7CisgICAgICAgIC8vIGFzc2VydChzb3VyY2UubGVuZ3RoKCkgPiAwKTsKKyAgICAgICAgLy8gYXNzZXJ0KHRhcmdldC5sZW5ndGgoKSA+IDApOworICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgY2lzcmMgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHNvdXJjZSk7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaXRyZyA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcodGFyZ2V0KTsKKyAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIGNpdmFyID0gbmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyh2YXJpYW50KTsKKyAgICAgICAgSGFzaHRhYmxlIHRhcmdldHMgPSAoSGFzaHRhYmxlKSBzcGVjREFHLmdldChjaXNyYyk7CisgICAgICAgIGlmICh0YXJnZXRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHRhcmdldHMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgICAgICBzcGVjREFHLnB1dChjaXNyYywgdGFyZ2V0cyk7CisgICAgICAgIH0KKyAgICAgICAgVmVjdG9yIHZhcmlhbnRzID0gKFZlY3RvcikgdGFyZ2V0cy5nZXQoY2l0cmcpOworICAgICAgICBpZiAodmFyaWFudHMgPT0gbnVsbCkgeworICAgICAgICAgICAgdmFyaWFudHMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICB0YXJnZXRzLnB1dChjaXRyZywgdmFyaWFudHMpOworICAgICAgICB9CisgICAgICAgIC8vIGFzc2VydChOT19WQVJJQU5UID09ICIiKTsKKyAgICAgICAgLy8gV2UgYWRkIHRoZSB2YXJpYW50IHN0cmluZy4gIElmIGl0IGlzIHRoZSBzcGVjaWFsICJubyB2YXJpYW50IgorICAgICAgICAvLyBzdHJpbmcsIHRoYXQgaXMsIHRoZSBlbXB0eSBzdHJpbmcsIHdlIGFkZCBpdCBhdCBwb3NpdGlvbiB6ZXJvLgorICAgICAgICBpZiAoIXZhcmlhbnRzLmNvbnRhaW5zKGNpdmFyKSkgeworICAgICAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgdmFyaWFudHMuYWRkRWxlbWVudChjaXZhcik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhcmlhbnRzLmluc2VydEVsZW1lbnRBdChjaXZhciwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYSBzb3VyY2UtdGFyZ2V0L3ZhcmlhbnQgZnJvbSB0aGUgc3BlY0RBRy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVtb3ZlU1RWKFN0cmluZyBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQpIHsKKyAgICAgICAgLy8gYXNzZXJ0KHNvdXJjZS5sZW5ndGgoKSA+IDApOworICAgICAgICAvLyBhc3NlcnQodGFyZ2V0Lmxlbmd0aCgpID4gMCk7CisgICAgICAgIENhc2VJbnNlbnNpdGl2ZVN0cmluZyBjaXNyYyA9IG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoc291cmNlKTsKKyAgICAgICAgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nIGNpdHJnID0gbmV3IENhc2VJbnNlbnNpdGl2ZVN0cmluZyh0YXJnZXQpOworICAgICAgICBDYXNlSW5zZW5zaXRpdmVTdHJpbmcgY2l2YXIgPSBuZXcgQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKHZhcmlhbnQpOworICAgICAgICBIYXNodGFibGUgdGFyZ2V0cyA9IChIYXNodGFibGUpIHNwZWNEQUcuZ2V0KGNpc3JjKTsKKyAgICAgICAgaWYgKHRhcmdldHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuOyAvLyBzaG91bGQgbmV2ZXIgaGFwcGVuIGZvciB2YWxpZCBzLXQvdgorICAgICAgICB9CisgICAgICAgIFZlY3RvciB2YXJpYW50cyA9IChWZWN0b3IpIHRhcmdldHMuZ2V0KGNpdHJnKTsKKyAgICAgICAgaWYgKHZhcmlhbnRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsgLy8gc2hvdWxkIG5ldmVyIGhhcHBlbiBmb3IgdmFsaWQgcy10L3YKKyAgICAgICAgfQorICAgICAgICB2YXJpYW50cy5yZW1vdmVFbGVtZW50KGNpdmFyKTsKKyAgICAgICAgaWYgKHZhcmlhbnRzLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICB0YXJnZXRzLnJlbW92ZShjaXRyZyk7IC8vIHNob3VsZCBkZWxldGUgdmFyaWFudHMKKyAgICAgICAgICAgIGlmICh0YXJnZXRzLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgc3BlY0RBRy5yZW1vdmUoY2lzcmMpOyAvLyBzaG91bGQgZGVsZXRlIHRhcmdldHMKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIEF0dGVtcHQgdG8gZmluZCBhIHNvdXJjZS10YXJnZXQvdmFyaWFudCBpbiB0aGUgZHluYW1pYyByZWdpc3RyeQorICAgICAqIHN0b3JlLiAgUmV0dXJuIDAgb24gZmFpbHVyZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIE9iamVjdFtdIGZpbmRJbkR5bmFtaWNTdG9yZShTcGVjIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlYyB0cmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50KSB7CisgICAgICAgIFN0cmluZyBJRCA9IFRyYW5zbGl0ZXJhdG9ySURQYXJzZXIuU1RWdG9JRChzcmMuZ2V0KCksIHRyZy5nZXQoKSwgdmFyaWFudCk7CisgICAgICAgIGlmIChERUJVRykgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5LmZpbmRJbkR5bmFtaWNTdG9yZToiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChPYmplY3RbXSkgcmVnaXN0cnkuZ2V0KG5ldyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIGZpbmQgYSBzb3VyY2UtdGFyZ2V0L3ZhcmlhbnQgaW4gdGhlIHN0YXRpYyBsb2NhbGUKKyAgICAgKiByZXNvdXJjZSBzdG9yZS4gIERvIG5vdCBwZXJmb3JtIGZhbGxiYWNrLiAgUmV0dXJuIDAgb24gZmFpbHVyZS4KKyAgICAgKgorICAgICAqIE9uIHN1Y2Nlc3MsIGNyZWF0ZSBhIG5ldyBlbnRyeSBvYmplY3QsIHJlZ2lzdGVyIGl0IGluIHRoZSBkeW5hbWljCisgICAgICogc3RvcmUsIGFuZCByZXR1cm4gYSBwb2ludGVyIHRvIGl0LCBidXQgZG8gbm90IG1ha2UgaXQgcHVibGljIC0tCisgICAgICoganVzdCBiZWNhdXNlIHNvbWVvbmUgcmVxdWVzdGVkIHNvbWV0aGluZywgd2UgZG8gbm90IGV4cGFuZCB0aGUKKyAgICAgKiBhdmFpbGFibGUgSUQgbGlzdCAob3Igc3BlYyBEQUcpLgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0W10gZmluZEluU3RhdGljU3RvcmUoU3BlYyBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlYyB0cmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhcmlhbnQpIHsKKyAgICAgICAgaWYgKERFQlVHKSB7CisgICAgICAgICAgICBTdHJpbmcgSUQgPSBUcmFuc2xpdGVyYXRvcklEUGFyc2VyLlNUVnRvSUQoc3JjLmdldCgpLCB0cmcuZ2V0KCksIHZhcmlhbnQpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUcmFuc2xpdGVyYXRvclJlZ2lzdHJ5LmZpbmRJblN0YXRpY1N0b3JlOiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElEKTsKKyAgICAgICAgfQorICAgICAgICBPYmplY3RbXSBlbnRyeSA9IG51bGw7CisgICAgICAgIGlmIChzcmMuaXNMb2NhbGUoKSkgeworICAgICAgICAgICAgZW50cnkgPSBmaW5kSW5CdW5kbGUoc3JjLCB0cmcsIHZhcmlhbnQsIFRyYW5zbGl0ZXJhdG9yLkZPUldBUkQpOworICAgICAgICB9IGVsc2UgaWYgKHRyZy5pc0xvY2FsZSgpKSB7CisgICAgICAgICAgICBlbnRyeSA9IGZpbmRJbkJ1bmRsZSh0cmcsIHNyYywgdmFyaWFudCwgVHJhbnNsaXRlcmF0b3IuUkVWRVJTRSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB3ZSBmb3VuZCBhbiBlbnRyeSwgc3RvcmUgaXQgaW4gdGhlIEhhc2h0YWJsZSBmb3IgbmV4dAorICAgICAgICAvLyB0aW1lLgorICAgICAgICBpZiAoZW50cnkgIT0gbnVsbCkgeworICAgICAgICAgICAgcmVnaXN0ZXJFbnRyeShzcmMuZ2V0VG9wKCksIHRyZy5nZXRUb3AoKSwgdmFyaWFudCwgZW50cnksIGZhbHNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBlbnRyeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBdHRlbXB0IHRvIGZpbmQgYW4gZW50cnkgaW4gYSBzaW5nbGUgcmVzb3VyY2UgYnVuZGxlLiAgVGhpcyBpcworICAgICAqIGEgb25lLXNpZGVkIGxvb2t1cC4gIGZpbmRJblN0YXRpY1N0b3JlKCkgcGVyZm9ybXMgdXAgdG8gdHdvIHN1Y2gKKyAgICAgKiBsb29rdXBzLCBvbmUgZm9yIHRoZSBzb3VyY2UsIGFuZCBvbmUgZm9yIHRoZSB0YXJnZXQuCisgICAgICoKKyAgICAgKiBEbyBub3QgcGVyZm9ybSBmYWxsYmFjay4gIFJldHVybiAwIG9uIGZhaWx1cmUuCisgICAgICoKKyAgICAgKiBPbiBzdWNjZXNzLCBjcmVhdGUgYSBuZXcgRW50cnkgb2JqZWN0LCBwb3B1bGF0ZSBpdCwgYW5kIHJldHVybiBpdC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIE9iamVjdFtdIGZpbmRJbkJ1bmRsZShTcGVjIHNwZWNUb09wZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlYyBzcGVjVG9GaW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkaXJlY3Rpb24pIHsKKyAgICAgICAgLy8gYXNzZXJ0KHNwZWNUb09wZW4uaXNMb2NhbGUoKSk7CisgICAgICAgIFJlc291cmNlQnVuZGxlIHJlcyA9IHNwZWNUb09wZW4uZ2V0QnVuZGxlKCk7CisKKyAgICAgICAgaWYgKHJlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAvLyBUaGlzIG1lYW5zIHRoYXQgdGhlIGJ1bmRsZSdzIGxvY2FsZSBkb2VzIG5vdCBtYXRjaAorICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgbGV2ZWwgb2YgaXRlcmF0aW9uIGZvciB0aGUgc3BlYy4KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgcGFzcz0wOyBwYXNzPDI7ICsrcGFzcykgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHRhZyA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgICAgIC8vIEZpcnN0IHRyeSBlaXRoZXIgVHJhbnNsaXRlcmF0b3JUb194eHggb3IKKyAgICAgICAgICAgIC8vIFRyYW5zbGl0ZXJhdGVGcm9tX3h4eCwgdGhlbiB0cnkgdGhlIGJpZGlyZWN0aW9uYWwKKyAgICAgICAgICAgIC8vIFRyYW5zbGl0ZXJhdGVfeHh4LiAgVGhpcyBwcmVjZWRlbmNlIG9yZGVyIGlzIGFyYml0cmFyeQorICAgICAgICAgICAgLy8gYnV0IG11c3QgYmUgY29uc2lzdGVudCBhbmQgZG9jdW1lbnRlZC4KKyAgICAgICAgICAgIGlmIChwYXNzID09IDApIHsKKyAgICAgICAgICAgICAgICB0YWcuYXBwZW5kKGRpcmVjdGlvbiA9PSBUcmFuc2xpdGVyYXRvci5GT1JXQVJEID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJUcmFuc2xpdGVyYXRlVG8iIDogIlRyYW5zbGl0ZXJhdGVGcm9tIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRhZy5hcHBlbmQoIlRyYW5zbGl0ZXJhdGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRhZy5hcHBlbmQoc3BlY1RvRmluZC5nZXQoKS50b1VwcGVyQ2FzZSgpKTsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgVHJhbnNsaXRlcmF0ZSpfeHh4IHJlc291cmNlIGlzIGFuIGFycmF5IG9mCisgICAgICAgICAgICAgICAgLy8gc3RyaW5ncyBvZiB0aGUgZm9ybWF0IHsgPHYwPiwgPHIwPiwgLi4uIH0uICBFYWNoCisgICAgICAgICAgICAgICAgLy8gPHZpPiBpcyBhIHZhcmlhbnQgbmFtZSwgYW5kIGVhY2ggPHJpPiBpcyBhIHJ1bGUuCisgICAgICAgICAgICAgICAgU3RyaW5nW10gc3VicmVzID0gcmVzLmdldFN0cmluZ0FycmF5KHRhZy50b1N0cmluZygpKTsKKworICAgICAgICAgICAgICAgIC8vIGFzc2VydChzdWJyZXMgIT0gbnVsbCk7CisgICAgICAgICAgICAgICAgLy8gYXNzZXJ0KHN1YnJlcy5sZW5ndGggJSAyID09IDApOworICAgICAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgICAgICBpZiAodmFyaWFudC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPHN1YnJlcy5sZW5ndGg7IGkrPSAyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VicmVzW2ldLmVxdWFsc0lnbm9yZUNhc2UodmFyaWFudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChpIDwgc3VicmVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIGEgbWF0Y2gsIG9yIHRoZXJlIGlzIG5vIHZhcmlhbnQgYW5kIGkgPT0gMC4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBzdWNjZWVkZWQgaW4gbG9hZGluZyBhIHN0cmluZyBmcm9tIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBsb2NhbGUgcmVzb3VyY2VzLiAgUmV0dXJuIHRoZSBydWxlIHN0cmluZyB3aGljaAorICAgICAgICAgICAgICAgICAgICAvLyB3aWxsIGl0c2VsZiBiZWNvbWUgdGhlIHJlZ2lzdHJ5IGVudHJ5LgorCisgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBkaXJlY3Rpb24gaXMgYWx3YXlzIGZvcndhcmQgZm9yIHRoZQorICAgICAgICAgICAgICAgICAgICAvLyBUcmFuc2xpdGVyYXRlVG9feHh4IGFuZCBUcmFuc2xpdGVyYXRlRnJvbV94eHgKKyAgICAgICAgICAgICAgICAgICAgLy8gaXRlbXM7IHRob3NlIGFyZSB1bmlkaXJlY3Rpb25hbCBmb3J3YXJkIHJ1bGVzLgorICAgICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIGJpZGlyZWN0aW9uYWwgVHJhbnNsaXRlcmF0ZV94eHggaXRlbXMsCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkaXJlY3Rpb24gaXMgdGhlIHZhbHVlIHBhc3NlZCBpbiB0byB0aGlzCisgICAgICAgICAgICAgICAgICAgIC8vIGZ1bmN0aW9uLgorICAgICAgICAgICAgICAgICAgICBpbnQgZGlyID0gKHBhc3MgPT0gMCkgPyBUcmFuc2xpdGVyYXRvci5GT1JXQVJEIDogZGlyZWN0aW9uOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgbmV3IExvY2FsZUVudHJ5KHN1YnJlc1tpKzFdLCBkaXIpIH07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChERUJVRykgU3lzdGVtLm91dC5wcmludGxuKCJtaXNzaW5nIHJlc291cmNlOiAiICsgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB3ZSBnZXQgaGVyZSB3ZSBoYWQgYSBtaXNzaW5nIHJlc291cmNlIGV4Y2VwdGlvbiBvciB3ZQorICAgICAgICAvLyBmYWlsZWQgdG8gZmluZCBhIGRlc2lyZWQgdmFyaWFudC4KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLiAgQ2FsbHMgMy1hcmcgZmluZCgpLgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0W10gZmluZChTdHJpbmcgSUQpIHsKKyAgICAgICAgU3RyaW5nW10gc3R2ID0gVHJhbnNsaXRlcmF0b3JJRFBhcnNlci5JRHRvU1RWKElEKTsKKyAgICAgICAgcmV0dXJuIGZpbmQoc3R2WzBdLCBzdHZbMV0sIHN0dlsyXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVG9wLWxldmVsIGZpbmQgbWV0aG9kLiAgQXR0ZW1wdCB0byBmaW5kIGEgc291cmNlLXRhcmdldC92YXJpYW50IGluCisgICAgICogZWl0aGVyIHRoZSBkeW5hbWljIG9yIHRoZSBzdGF0aWMgKGxvY2FsZSByZXNvdXJjZSkgc3RvcmUuICBQZXJmb3JtCisgICAgICogZmFsbGJhY2suCisgICAgICoKKyAgICAgKiBMb29rdXAgc2VxdWVuY2UgZm9yIHNzX1NTX1NTUy10dF9UVF9UVFQvdjoKKyAgICAgKgorICAgICAqICAgc3NfU1NfU1NTLXR0X1RUX1RUVC92IC0tIGluIGhhc2h0YWJsZQorICAgICAqICAgc3NfU1NfU1NTLXR0X1RUX1RUVC92IC0tIGluIHNzX1NTX1NTUyAobm8gZmFsbGJhY2spCisgICAgICoKKyAgICAgKiAgICAgcmVwZWF0IHdpdGggdCA9IHR0X1RUX1RUVCwgdHRfVFQsIHR0LCBhbmQgdHNjcmlwdAorICAgICAqCisgICAgICogICAgIHNzX1NTX1NTUy10LyoKKyAgICAgKiAgICAgc3NfU1MtdC8qCisgICAgICogICAgIHNzLXQvKgorICAgICAqICAgICBzc2NyaXB0LXQvKgorICAgICAqCisgICAgICogSGVyZSAqIG1hdGNoZXMgdGhlIGZpcnN0IHZhcmlhbnQgbGlzdGVkLgorICAgICAqCisgICAgICogQ2FsbGVyIGRvZXMgTk9UIG93biByZXR1cm5lZCBvYmplY3QuICBSZXR1cm4gMCBvbiBmYWlsdXJlLgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0W10gZmluZChTdHJpbmcgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFyaWFudCkgeworCisgICAgICAgIFNwZWMgc3JjID0gbmV3IFNwZWMoc291cmNlKTsKKyAgICAgICAgU3BlYyB0cmcgPSBuZXcgU3BlYyh0YXJnZXQpOworICAgICAgICBPYmplY3RbXSBlbnRyeSA9IG51bGw7CisKKyAgICAgICAgaWYgKHZhcmlhbnQubGVuZ3RoKCkgIT0gMCkgeworCisgICAgICAgICAgICAvLyBTZWVrIGV4YWN0IG1hdGNoIGluIGhhc2h0YWJsZQorICAgICAgICAgICAgZW50cnkgPSBmaW5kSW5EeW5hbWljU3RvcmUoc3JjLCB0cmcsIHZhcmlhbnQpOworICAgICAgICAgICAgaWYgKGVudHJ5ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZW50cnk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFNlZWsgZXhhY3QgbWF0Y2ggaW4gbG9jYWxlIHJlc291cmNlcworICAgICAgICAgICAgZW50cnkgPSBmaW5kSW5TdGF0aWNTdG9yZShzcmMsIHRyZywgdmFyaWFudCk7CisgICAgICAgICAgICBpZiAoZW50cnkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIHNyYy5yZXNldCgpOworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIC8vIFNlZWsgbWF0Y2ggaW4gaGFzaHRhYmxlCisgICAgICAgICAgICAgICAgZW50cnkgPSBmaW5kSW5EeW5hbWljU3RvcmUoc3JjLCB0cmcsIE5PX1ZBUklBTlQpOworICAgICAgICAgICAgICAgIGlmIChlbnRyeSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBTZWVrIG1hdGNoIGluIGxvY2FsZSByZXNvdXJjZXMKKyAgICAgICAgICAgICAgICBlbnRyeSA9IGZpbmRJblN0YXRpY1N0b3JlKHNyYywgdHJnLCBOT19WQVJJQU5UKTsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW50cnk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghc3JjLmhhc0ZhbGxiYWNrKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNyYy5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXRyZy5oYXNGYWxsYmFjaygpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0cmcubmV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYW4gRW50cnkgb2JqZWN0LCBpbnN0YW50aWF0ZSBpdC4gIENhbGxlciBvd25zIHJlc3VsdC4gIFJldHVybgorICAgICAqIDAgb24gZmFpbHVyZS4KKyAgICAgKgorICAgICAqIFJldHVybiBhIG5vbi1lbXB0eSBhbGlhc1JldHVybiB2YWx1ZSBpZiB0aGUgSUQgcG9pbnRzIHRvIGFuIGFsaWFzLgorICAgICAqIFdlIGNhbm5vdCBpbnN0YW50aWF0ZSBpdCBvdXJzZWx2ZXMgYmVjYXVzZSB0aGUgYWxpYXMgbWF5IGNvbnRhaW4KKyAgICAgKiBmaWx0ZXJzIG9yIGNvbXBvdW5kcywgd2hpY2ggd2UgZG8gbm90IHVuZGVyc3RhbmQuICBDYWxsZXIgc2hvdWxkCisgICAgICogbWFrZSBhbGlhc1JldHVybiBlbXB0eSBiZWZvcmUgY2FsbGluZy4KKyAgICAgKgorICAgICAqIFRoZSBlbnRyeSBvYmplY3QgaXMgYXNzdW1lZCB0byByZXNpZGUgaW4gdGhlIGR5bmFtaWMgc3RvcmUuICBJdCBtYXkgYmUKKyAgICAgKiBtb2RpZmllZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFRyYW5zbGl0ZXJhdG9yIGluc3RhbnRpYXRlRW50cnkoU3RyaW5nIElELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RbXSBlbnRyeVdyYXBwZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBhbGlhc1JldHVybikgeworICAgICAgICAvLyBXZSBhY3R1YWxseSBtb2RpZnkgdGhlIGVudHJ5IG9iamVjdCBpbiBzb21lIGNhc2VzLiAgSWYgaXQKKyAgICAgICAgLy8gaXMgYSBzdHJpbmcsIHdlIG1heSBwYXJ0aWFsbHkgcGFyc2UgaXQgYW5kIHR1cm4gaXQgaW50byBhCisgICAgICAgIC8vIG1vcmUgcHJvY2Vzc2VkIHByZWN1cnNvci4gIFRoaXMgbWFrZXMgdGhlIG5leHQKKyAgICAgICAgLy8gaW5zdGFudGlhdGlvbiBmYXN0ZXIgYW5kIGFsbG93cyBzaGFyaW5nIG9mIGltbXV0YWJsZQorICAgICAgICAvLyBjb21wb25lbnRzIGxpa2UgdGhlIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgb2JqZWN0cy4KKyAgICAgICAgLy8gRm9yIHRoaXMgcmVhc29uLCB0aGUgZW50cnkgb2JqZWN0IGlzIGFuIE9iamVjdFtdIG9mIGxlbmd0aAorICAgICAgICAvLyAxLgorCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIE9iamVjdCBlbnRyeSA9IGVudHJ5V3JhcHBlclswXTsKKworICAgICAgICAgICAgaWYgKGVudHJ5IGluc3RhbmNlb2YgUnVsZUJhc2VkVHJhbnNsaXRlcmF0b3IuRGF0YSkgeworICAgICAgICAgICAgICAgIFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yLkRhdGEgZGF0YSA9IChSdWxlQmFzZWRUcmFuc2xpdGVyYXRvci5EYXRhKSBlbnRyeTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJ1bGVCYXNlZFRyYW5zbGl0ZXJhdG9yKElELCBkYXRhLCBudWxsKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZW50cnkgaW5zdGFuY2VvZiBDbGFzcykgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAoVHJhbnNsaXRlcmF0b3IpICgoQ2xhc3MpIGVudHJ5KS5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEluc3RhbnRpYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZTIpIHt9CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5IGluc3RhbmNlb2YgQWxpYXNFbnRyeSkgeworICAgICAgICAgICAgICAgIGFsaWFzUmV0dXJuLmFwcGVuZCgoKEFsaWFzRW50cnkpIGVudHJ5KS5hbGlhcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5IGluc3RhbmNlb2YgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSkgeworICAgICAgICAgICAgICAgIHJldHVybiAoKFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkpIGVudHJ5KS5nZXRJbnN0YW5jZShJRCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5IGluc3RhbmNlb2YgQ29tcG91bmRSQlRFbnRyeSkgeworICAgICAgICAgICAgICAgIHJldHVybiAoKENvbXBvdW5kUkJURW50cnkpIGVudHJ5KS5nZXRJbnN0YW5jZSgpOworICAgICAgICAgICAgfSBlbHNlIGlmIChlbnRyeSBpbnN0YW5jZW9mIFRyYW5zbGl0ZXJhdG9yKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChUcmFuc2xpdGVyYXRvcikgZW50cnk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgZW50cnkgdHlwZSBtdXN0IGJlIGVpdGhlciBSVUxFU19GT1JXQVJEIG9yCisgICAgICAgICAgICAvLyBSVUxFU19SRVZFUlNFLiAgV2UgcHJvY2VzcyB0aGUgcnVsZSBkYXRhIGludG8gYQorICAgICAgICAgICAgLy8gVHJhbnNsaXRlcmF0b3JSdWxlRGF0YSBvYmplY3QsIGFuZCBwb3NzaWJseSBhbHNvIGludG8gYW4KKyAgICAgICAgICAgIC8vIC5pZCBoZWFkZXIgYW5kL29yIGZvb3Rlci4gIFRoZW4gd2UgbW9kaWZ5IHRoZSByZWdpc3RyeSB3aXRoCisgICAgICAgICAgICAvLyB0aGUgcGFyc2VkIGRhdGEgYW5kIHJldHJ5LgorCisgICAgICAgICAgICBUcmFuc2xpdGVyYXRvclBhcnNlciBwYXJzZXIgPSBuZXcgVHJhbnNsaXRlcmF0b3JQYXJzZXIoKTsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFJlc291cmNlRW50cnkgcmUgPSAoUmVzb3VyY2VFbnRyeSkgZW50cnk7CisgICAgICAgICAgICAgICAgcGFyc2VyLnBhcnNlKHJlLnJlc291cmNlLCByZS5kaXJlY3Rpb24pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB3ZSBwdWxsIGEgcnVsZSBmcm9tIGEgbG9jYWxlIHJlc291cmNlIGJ1bmRsZSBpdCB3aWxsCisgICAgICAgICAgICAgICAgLy8gYmUgYSBMb2NhbGVFbnRyeS4KKyAgICAgICAgICAgICAgICBMb2NhbGVFbnRyeSBsZSA9IChMb2NhbGVFbnRyeSkgZW50cnk7CisgICAgICAgICAgICAgICAgcGFyc2VyLnBhcnNlKGxlLnJ1bGUsIGxlLmRpcmVjdGlvbik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFJlc2V0IGVudHJ5IHRvIHNvbWV0aGluZyB0aGF0IHdlIHByb2Nlc3MgYXQgdGhlCisgICAgICAgICAgICAvLyB0b3Agb2YgdGhlIGxvb3AsIHRoZW4gbG9vcCBiYWNrIHRvIHRoZSB0b3AuICBBcyBsb25nIGFzIHdlCisgICAgICAgICAgICAvLyBkbyB0aGlzLCB3ZSBvbmx5IGxvb3AgdGhyb3VnaCB0d2ljZSBhdCBtb3N0LgorICAgICAgICAgICAgLy8gTk9URTogVGhlIGxvZ2ljIGhlcmUgbWF0Y2hlcyB0aGF0IGluCisgICAgICAgICAgICAvLyBUcmFuc2xpdGVyYXRvci5jcmVhdGVGcm9tUnVsZXMoKS4KKyAgICAgICAgICAgIGlmIChwYXJzZXIuaWRCbG9ja1ZlY3Rvci5zaXplKCkgPT0gMCAmJiBwYXJzZXIuZGF0YVZlY3Rvci5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIC8vIE5vIGlkQmxvY2ssIG5vIGRhdGEgLS0gdGhpcyBpcyBqdXN0IGFuCisgICAgICAgICAgICAgICAgLy8gYWxpYXMgZm9yIE51bGwKKyAgICAgICAgICAgICAgICBlbnRyeVdyYXBwZXJbMF0gPSBuZXcgQWxpYXNFbnRyeShOdWxsVHJhbnNsaXRlcmF0b3IuX0lEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlci5pZEJsb2NrVmVjdG9yLnNpemUoKSA9PSAwICYmIHBhcnNlci5kYXRhVmVjdG9yLnNpemUoKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgLy8gTm8gaWRCbG9jaywgZGF0YSAhPSAwIC0tIHRoaXMgaXMgYW4KKyAgICAgICAgICAgICAgICAvLyBvcmRpbmFyeSBSQlRfREFUQQorICAgICAgICAgICAgICAgIGVudHJ5V3JhcHBlclswXSA9IHBhcnNlci5kYXRhVmVjdG9yLmdldCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlci5pZEJsb2NrVmVjdG9yLnNpemUoKSA9PSAxICYmIHBhcnNlci5kYXRhVmVjdG9yLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gaWRCbG9jaywgbm8gZGF0YSAtLSB0aGlzIGlzIGFuIGFsaWFzLiAgVGhlIElEIGhhcworICAgICAgICAgICAgICAgIC8vIGJlZW4gbXVuZ2VkIGZyb20gcmV2ZXJzZSBpbnRvIGZvcndhcmQgbW9kZSwgaWYKKyAgICAgICAgICAgICAgICAvLyBuZWNlc3NhcnksIHNvIGluc3RhbnRpYXRlIHRoZSBJRCBpbiB0aGUgZm9yd2FyZAorICAgICAgICAgICAgICAgIC8vIGRpcmVjdGlvbi4KKyAgICAgICAgICAgICAgICBpZiAocGFyc2VyLmNvbXBvdW5kRmlsdGVyICE9IG51bGwpCisgICAgICAgICAgICAgICAgICAgIGVudHJ5V3JhcHBlclswXSA9IG5ldyBBbGlhc0VudHJ5KHBhcnNlci5jb21wb3VuZEZpbHRlci50b1BhdHRlcm4oZmFsc2UpICsgIjsiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAoU3RyaW5nKXBhcnNlci5pZEJsb2NrVmVjdG9yLmdldCgwKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBlbnRyeVdyYXBwZXJbMF0gPSBuZXcgQWxpYXNFbnRyeSgoU3RyaW5nKXBhcnNlci5pZEJsb2NrVmVjdG9yLmdldCgwKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBlbnRyeVdyYXBwZXJbMF0gPSBuZXcgQ29tcG91bmRSQlRFbnRyeShJRCwgcGFyc2VyLmlkQmxvY2tWZWN0b3IsIHBhcnNlci5kYXRhVmVjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VyLmNvbXBvdW5kRmlsdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VDaGFyYWN0ZXJJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVUNoYXJhY3Rlckl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQwODUzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNDA5IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCisKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlJlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJBcnJheUl0ZXJhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNoYXJhY3Rlckl0ZXJhdG9yV3JhcHBlcjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDaGFyYWN0ZXJQcm9wZXJ0eTsKKworCisvKioKKyAqIEFic3RyYWN0IGNsYXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGl0ZXJhdGlvbiBvbiB0ZXh0IG9iamVjdHMuVGhpcyBpcyBhbiAKKyAqIGludGVyZmFjZSBmb3IgZm9yd2FyZCBhbmQgYmFja3dhcmQgaXRlcmF0aW9uIGFuZCByYW5kb20gYWNjZXNzIGludG8gYSB0ZXh0IAorICogb2JqZWN0LiBGb3J3YXJkIGl0ZXJhdGlvbiBpcyBkb25lIHdpdGggcG9zdC1pbmNyZW1lbnQgYW5kIGJhY2t3YXJkIGl0ZXJhdGlvbiAKKyAqIGlzIGRvbmUgd2l0aCBwcmUtZGVjcmVtZW50IHNlbWFudGljcywgd2hpbGUgdGhlIAorICogPGNvZGU+amF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBpbnRlcmZhY2UgbWV0aG9kcyBwcm92aWRlZCBmb3J3YXJkIAorICogaXRlcmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIGFuZCBiYWNrd2FyZCBpdGVyYXRpb24gd2l0aCBwcmUtZGVjcmVtZW50IAorICogc2VtYW50aWNzLiBUaGlzIEFQSSBpcyBtb3JlIGVmZmljaWVudCBmb3IgZm9yd2FyZCBpdGVyYXRpb24gb3ZlciBjb2RlIHBvaW50cy4KKyAqIFRoZSBvdGhlciBtYWpvciBkaWZmZXJlbmNlIGlzIHRoYXQgdGhpcyBBUEkgY2FuIGRvIGJvdGggY29kZSB1bml0IGFuZCBjb2RlIHBvaW50IAorICogaXRlcmF0aW9uLCA8Y29kZT5qYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IGNhbiBvbmx5IGl0ZXJhdGUgb3ZlciAKKyAqIGNvZGUgdW5pdHMgYW5kIGlzIGxpbWl0ZWQgdG8gQk1QICgwIC0gMHhGRkZGKQorICogQGF1dGhvciBSYW0KKyAqIEBzdGFibGUgSUNVIDIuNAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVUNoYXJhY3Rlckl0ZXJhdG9yIAorICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudHMgQ2xvbmVhYmxlLFVGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgeworCisgICAgLyoqCisgICAgICogUHJvdGVjdGVkIGRlZmF1bHQgY29uc3RydWN0b3IgZm9yIHRoZSBzdWJjbGFzc2VzCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHJvdGVjdGVkIFVDaGFyYWN0ZXJJdGVyYXRvcigpeworICAgIH0KKyAgICAKKyAgICAvLyBzdGF0aWMgZmluYWwgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIDxjb2RlPlVDaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb2JqZWN0IGdpdmVuIGEgCisgICAgICogPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IG9iamVjdC4KKyAgICAgKiBAcGFyYW0gc291cmNlIGEgdmFsaWQgc291cmNlIGFzIGEgPGNvZGU+UmVwbGFjZWFibGU8L2NvZGU+IG9iamVjdAorICAgICAqIEByZXR1cm4gVUNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBhcmd1bWVudCBpcyBudWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVySXRlcmF0b3IgZ2V0SW5zdGFuY2UoUmVwbGFjZWFibGUgc291cmNlKXsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvcihzb3VyY2UpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgPGNvZGU+VUNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPiBvYmplY3QgZ2l2ZW4gYSAKKyAgICAgKiBzb3VyY2Ugc3RyaW5nLgorICAgICAqIEBwYXJhbSBzb3VyY2UgYSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIFVDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgYXJndW1lbnQgaXMgbnVsbAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUNoYXJhY3Rlckl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBzb3VyY2UpeworICAgICAgICByZXR1cm4gbmV3IFJlcGxhY2VhYmxlVUNoYXJhY3Rlckl0ZXJhdG9yKHNvdXJjZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5VQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG9iamVjdCBnaXZlbiBhIAorICAgICAqIHNvdXJjZSBjaGFyYWN0ZXIgYXJyYXkuCisgICAgICogQHBhcmFtIHNvdXJjZSBhbiBhcnJheSBvZiBVVEYtMTYgY29kZSB1bml0cworICAgICAqIEByZXR1cm4gVUNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBhcmd1bWVudCBpcyBudWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVySXRlcmF0b3IgZ2V0SW5zdGFuY2UoY2hhcltdIHNvdXJjZSl7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShzb3VyY2UsMCxzb3VyY2UubGVuZ3RoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIDxjb2RlPlVDaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb2JqZWN0IGdpdmVuIGEgCisgICAgICogc291cmNlIGNoYXJhY3RlciBhcnJheS4KKyAgICAgKiBAcGFyYW0gc291cmNlIGFuIGFycmF5IG9mIFVURi0xNiBjb2RlIHVuaXRzCisgICAgICogQHJldHVybiBVQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGFyZ3VtZW50IGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXJJdGVyYXRvciBnZXRJbnN0YW5jZShjaGFyW10gc291cmNlLCBpbnQgc3RhcnQsIGludCBsaW1pdCl7CisgICAgICAgIHJldHVybiBuZXcgVUNoYXJBcnJheUl0ZXJhdG9yKHNvdXJjZSxzdGFydCxsaW1pdCk7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5VQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG9iamVjdCBnaXZlbiBhIAorICAgICAqIHNvdXJjZSBTdHJpbmdCdWZmZXIuCisgICAgICogQHBhcmFtIHNvdXJjZSBhbiBzdHJpbmcgYnVmZmVyIG9mIFVURi0xNiBjb2RlIHVuaXRzCisgICAgICogQHJldHVybiBVQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGFyZ3VtZW50IGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVDaGFyYWN0ZXJJdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmdCdWZmZXIgc291cmNlKXsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXBsYWNlYWJsZVVDaGFyYWN0ZXJJdGVyYXRvcihzb3VyY2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5VQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG9iamVjdCBnaXZlbiBhIAorICAgICAqIENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIEBwYXJhbSBzb3VyY2UgYSB2YWxpZCBDaGFyYWN0ZXJJdGVyYXRvciBvYmplY3QuCisgICAgICogQHJldHVybiBVQ2hhcmFjdGVySXRlcmF0b3Igb2JqZWN0CisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGFyZ3VtZW50IGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8gICAgCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVQ2hhcmFjdGVySXRlcmF0b3IgZ2V0SW5zdGFuY2UoQ2hhcmFjdGVySXRlcmF0b3Igc291cmNlKXsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGFyYWN0ZXJJdGVyYXRvcldyYXBwZXIoc291cmNlKTsKKyAgICB9CisgICAgICAgCisgICAgLy8gcHVibGljIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8qKgorICAgICAqIFJldHVybnMgYSA8Y29kZT5qYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG9iamVjdCBmb3IKKyAgICAgKiB0aGUgdW5kZXJseWluZyB0ZXh0IG9mIHRoaXMgaXRlcmF0b3IuICBUaGUgcmV0dXJuZWQgaXRlcmF0b3IgaXMKKyAgICAgKiBpbmRlcGVuZGVudCBvZiB0aGlzIGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgZ2V0Q2hhcmFjdGVySXRlcmF0b3IoKXsKKyAgICAgICAgcmV0dXJuIG5ldyBVQ2hhcmFjdGVySXRlcmF0b3JXcmFwcGVyKHRoaXMpOworICAgIH0gICAgCisgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHVuaXQgYXQgdGhlIGN1cnJlbnQgaW5kZXguICBJZiBpbmRleCBpcyBvdXQKKyAgICAgKiBvZiByYW5nZSwgcmV0dXJucyBET05FLiAgSW5kZXggaXMgbm90IGNoYW5nZWQuCisgICAgICogQHJldHVybiBjdXJyZW50IGNvZGUgdW5pdAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgY3VycmVudCgpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvZGVwb2ludCBhdCB0aGUgY3VycmVudCBpbmRleC4KKyAgICAgKiBJZiB0aGUgY3VycmVudCBpbmRleCBpcyBpbnZhbGlkLCBET05FIGlzIHJldHVybmVkLgorICAgICAqIElmIHRoZSBjdXJyZW50IGluZGV4IHBvaW50cyB0byBhIGxlYWQgc3Vycm9nYXRlLCBhbmQgdGhlcmUgaXMgYSBmb2xsb3dpbmcKKyAgICAgKiB0cmFpbCBzdXJyb2dhdGUsIHRoZW4gdGhlIGNvZGUgcG9pbnQgaXMgcmV0dXJuZWQuICBPdGhlcndpc2UsIHRoZSBjb2RlCisgICAgICogdW5pdCBhdCBpbmRleCBpcyByZXR1cm5lZC4gIEluZGV4IGlzIG5vdCBjaGFuZ2VkLiAKKyAgICAgKiBAcmV0dXJuIGN1cnJlbnQgY29kZXBvaW50CisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGludCBjdXJyZW50Q29kZVBvaW50KCl7CisgICAgICAgIGludCBjaCA9IGN1cnJlbnQoKTsKKyAgICAgICAgaWYoVVRGMTYuaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoKSl7CisgICAgICAgICAgICAvLyBhZHZhbmNlIHRoZSBpbmRleCB0byBnZXQgdGhlCisgICAgICAgICAgICAvLyBuZXh0IGNvZGUgcG9pbnQKKyAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIC8vIGR1ZSB0byBwb3N0IGluY3JlbWVudCBzZW1hbnRpY3MKKyAgICAgICAgICAgIC8vIGN1cnJlbnQoKSBhZnRlciBuZXh0KCkgYWN0dWFsbHkKKyAgICAgICAgICAgIC8vIHJldHVybnMgdGhlIGNoYXIgd2Ugd2FudAorICAgICAgICAgICAgaW50IGNoMiA9IGN1cnJlbnQoKTsKKyAgICAgICAgICAgIC8vIGN1cnJlbnQgc2hvdWxkIG5ldmVyIGNoYW5nZQorICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgaW5kZXggc28gYmFjayBvZmYKKyAgICAgICAgICAgIHByZXZpb3VzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmKFVURjE2LmlzVHJhaWxTdXJyb2dhdGUoKGNoYXIpY2gyKSl7CisgICAgICAgICAgICAgICAgLy8gd2UgZm91bmQgYSBzdXJyb2dhdGUgcGFpciAKKyAgICAgICAgICAgICAgICAvLyByZXR1cm4gdGhlIGNvZGVwb2ludAorICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciljaCwoY2hhciljaDIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjaDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0CisgICAgICogQHJldHVybiBsZW5ndGggb2YgdGhlIHRleHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldExlbmd0aCgpOworCisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBpbmRleCBpbiB0ZXh0LgorICAgICAqIEByZXR1cm4gY3VycmVudCBpbmRleCBpbiB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0SW5kZXgoKTsKKworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgVVRGMTYgY29kZSB1bml0IGF0IGluZGV4LCBhbmQgaW5jcmVtZW50cyB0byB0aGUgbmV4dAorICAgICAqIGNvZGUgdW5pdCAocG9zdC1pbmNyZW1lbnQgc2VtYW50aWNzKS4gIElmIGluZGV4IGlzIG91dCBvZgorICAgICAqIHJhbmdlLCBET05FIGlzIHJldHVybmVkLCBhbmQgdGhlIGl0ZXJhdG9yIGlzIHJlc2V0IHRvIHRoZSBsaW1pdAorICAgICAqIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgVVRGMTYgY29kZSB1bml0LCBvciBET05FIGlmIHRoZSBpbmRleCBpcyBhdCB0aGUgbGltaXQKKyAgICAgKiAgICAgICAgIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNCAgCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBuZXh0KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IGF0IGluZGV4LCBhbmQgaW5jcmVtZW50cyB0byB0aGUgbmV4dCBjb2RlCisgICAgICogcG9pbnQgKHBvc3QtaW5jcmVtZW50IHNlbWFudGljcykuICBJZiBpbmRleCBkb2VzIG5vdCBwb2ludCB0byBhCisgICAgICogdmFsaWQgc3Vycm9nYXRlIHBhaXIsIHRoZSBiZWhhdmlvciBpcyB0aGUgc2FtZSBhcworICAgICAqIDxjb2RlPm5leHQoKTxjb2RlPi4gIE90aGVyd2lzZSB0aGUgaXRlcmF0b3IgaXMgaW5jcmVtZW50ZWQgcGFzdAorICAgICAqIHRoZSBzdXJyb2dhdGUgcGFpciwgYW5kIHRoZSBjb2RlIHBvaW50IHJlcHJlc2VudGVkIGJ5IHRoZSBwYWlyCisgICAgICogaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlcG9pbnQgaW4gdGV4dCwgb3IgRE9ORSBpZiB0aGUgaW5kZXggaXMgYXQKKyAgICAgKiAgICAgICAgIHRoZSBsaW1pdCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgIAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dENvZGVQb2ludCgpeworICAgICAgICBpbnQgY2gxID0gbmV4dCgpOworICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2gxKSl7CisgICAgICAgICAgICBpbnQgY2gyID0gbmV4dCgpOworICAgICAgICAgICAgaWYoVVRGMTYuaXNUcmFpbFN1cnJvZ2F0ZSgoY2hhciljaDIpKXsKKyAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoKGNoYXIpY2gxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciljaDIpOworICAgICAgICAgICAgfWVsc2UgaWYgKGNoMiAhPSBET05FKSB7CisgICAgICAgICAgICAgICAgLy8gdW5tYXRjaGVkIHN1cnJvZ2F0ZSBzbyBiYWNrIG91dAorICAgICAgICAgICAgICAgIHByZXZpb3VzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNoMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNyZW1lbnQgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlCisgICAgICogdGV4dCwgYW5kIHJldHVybiBpdCAocHJlLWRlY3JlbWVudCBzZW1hbnRpY3MpLiAgSWYgdGhlCisgICAgICogcmVzdWx0aW5nIGluZGV4IGlzIGxlc3MgdGhhbiAwLCB0aGUgaW5kZXggaXMgcmVzZXQgdG8gMCBhbmQKKyAgICAgKiBET05FIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgdGV4dCwgb3IgRE9ORSBpZiB0aGUgbmV3CisgICAgICogICAgICAgICBpbmRleCBpcyBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNCAgCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBwcmV2aW91cygpOworCisgICAgCisgICAgLyoqCisgICAgICogUmV0cmVhdCB0byB0aGUgc3RhcnQgb2YgdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIHRleHQsCisgICAgICogYW5kIHJldHVybiBpdCAocHJlLWRlY3JlbWVudCBzZW1hbnRpY3MpLiAgSWYgdGhlIGluZGV4IGlzIG5vdAorICAgICAqIHByZWNlZWRlZCBieSBhIHZhbGlkIHN1cnJvZ2F0ZSBwYWlyLCB0aGUgYmVoYXZpb3IgaXMgdGhlIHNhbWUKKyAgICAgKiBhcyA8Y29kZT5wcmV2aW91cygpPC9jb2RlPi4gIE90aGVyd2lzZSB0aGUgaXRlcmF0b3IgaXMKKyAgICAgKiBkZWNyZW1lbnRlZCB0byB0aGUgc3RhcnQgb2YgdGhlIHN1cnJvZ2F0ZSBwYWlyLCBhbmQgdGhlIGNvZGUKKyAgICAgKiBwb2ludCByZXByZXNlbnRlZCBieSB0aGUgcGFpciBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSB0ZXh0LCBvciBET05FIGlmIHRoZSBuZXcKKyAgICAgKiAgICAgICAgIGluZGV4IGlzIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi40ICAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IHByZXZpb3VzQ29kZVBvaW50KCl7CisgICAgICAgIGludCBjaDEgPSBwcmV2aW91cygpOworICAgICAgICBpZihVVEYxNi5pc1RyYWlsU3Vycm9nYXRlKChjaGFyKWNoMSkpeworICAgICAgICAgICAgaW50IGNoMiA9IHByZXZpb3VzKCk7CisgICAgICAgICAgICBpZihVVEYxNi5pc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2gyKSl7CisgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KChjaGFyKWNoMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpY2gxKTsKKyAgICAgICAgICAgIH1lbHNlIGlmIChjaDIgIT0gRE9ORSkgeworICAgICAgICAgICAgICAgIC8vdW5tYXRjaGVkIHRyYWlsIHN1cnJvZ2F0ZSBzbyBiYWNrIG91dAorICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0gICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2gxOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGluZGV4IHRvIHRoZSBzcGVjaWZpZWQgaW5kZXggaW4gdGhlIHRleHQuCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBpbmRleCB3aXRoaW4gdGhlIHRleHQuIAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYW4gaW52YWxpZCBpbmRleCBpcyAKKyAgICAgKiAgICAgICAgICAgIHN1cHBsaWVkCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0SW5kZXgoaW50IGluZGV4KTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaW5kZXggdG8gdGhlIGxpbWl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRvTGltaXQoKSB7CisgICAgICAgIHNldEluZGV4KGdldExlbmd0aCgpKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpbmRleCB0byB0aGUgc3RhcnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VG9TdGFydCgpIHsKKyAgICAgICAgc2V0SW5kZXgoMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmlsbHMgdGhlIGJ1ZmZlciB3aXRoIHRoZSB1bmRlcmx5aW5nIHRleHQgc3RvcmFnZSBvZiB0aGUgaXRlcmF0b3IKKyAgICAgKiBJZiB0aGUgYnVmZmVyIGNhcGFjaXR5IGlzIG5vdCBlbm91Z2ggYSBleGNlcHRpb24gaXMgdGhyb3duLiBUaGUgY2FwYWNpdHkKKyAgICAgKiBvZiB0aGUgZmlsbCBpbiBidWZmZXIgc2hvdWxkIGF0IGxlYXN0IGJlIGVxdWFsIHRvIGxlbmd0aCBvZiB0ZXh0IGluIHRoZSAKKyAgICAgKiBpdGVyYXRvciBvYnRhaW5lZCBieSBjYWxsaW5nIDxjb2RlPmdldExlbmd0aCgpPC9jb2RlKS4KKyAgICAgKiA8Yj5Vc2FnZTo8L2I+CisgICAgICogCisgICAgICogPGNvZGU+CisgICAgICogPHByZT4KKyAgICAgKiAgICAgICAgIFVDaGFjdGVySXRlcmF0b3IgaXRlciA9IG5ldyBVQ2hhcmFjdGVySXRlcmF0b3IuZ2V0SW5zdGFuY2UodGV4dCk7CisgICAgICogICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbaXRlci5nZXRMZW5ndGgoKV07CisgICAgICogICAgICAgICBpdGVyLmdldFRleHQoYnVmKTsKKyAgICAgKiAgICAgICAgIAorICAgICAqICAgICAgICAgT1IKKyAgICAgKiAgICAgICAgIGNoYXJbXSBidWY9IG5ldyBjaGFyWzFdOworICAgICAqICAgICAgICAgaW50IGxlbiA9IDA7CisgICAgICogICAgICAgICBmb3IoOzspeworICAgICAqICAgICAgICAgICAgIHRyeXsKKyAgICAgKiAgICAgICAgICAgICAgICAgbGVuID0gaXRlci5nZXRUZXh0KGJ1Zik7CisgICAgICogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAqICAgICAgICAgICAgIH1jYXRjaChJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpeworICAgICAqICAgICAgICAgICAgICAgICBidWYgPSBuZXcgY2hhcltpdGVyLmdldExlbmd0aCgpXTsKKyAgICAgKiAgICAgICAgICAgICB9CisgICAgICogICAgICAgICB9CisgICAgICogPC9wcmU+CisgICAgICogPC9jb2RlPgorICAgICAqICAgICAgICAgICAgIAorICAgICAqIEBwYXJhbSBmaWxsSW4gYW4gYXJyYXkgb2YgY2hhcnMgdG8gZmlsbCB3aXRoIHRoZSB1bmRlcmx5aW5nIFVURi0xNiBjb2RlIAorICAgICAqICAgICAgICAgdW5pdHMuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSBhcnJheSB0byBzdGFydCBwdXR0aW5nIHRoZSBkYXRhLgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIGFkZGVkIHRvIGZpbGxJbiwgYXMgYSBjb252ZW5pZW5jZQorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kcyBleGNlcHRpb24gaWYgdGhlcmUgaXMgbm90IGVub3VnaAorICAgICAqICAgICAgICAgICAgcm9vbSBhZnRlciBvZmZzZXQgaW4gdGhlIGFycmF5LCBvciBpZiBvZmZzZXQgPCAwLgorICAgICAqIEBzdGFibGUgSUNVIDIuNCAgCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRUZXh0KGNoYXJbXSBmaWxsSW4sIGludCBvZmZzZXQpOyAKKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG92ZXJyaWRlIGZvciA8Y29kZT5nZXRUZXh0KGNoYXJbXSwgaW50KT4vY29kZT4gdGhhdCBwcm92aWRlcworICAgICAqIGFuIG9mZnNldCBvZiAwLgorICAgICAqIEBwYXJhbSBmaWxsSW4gYW4gYXJyYXkgb2YgY2hhcnMgdG8gZmlsbCB3aXRoIHRoZSB1bmRlcmx5aW5nIFVURi0xNiBjb2RlIAorICAgICAqICAgICAgICAgdW5pdHMuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGNvZGUgdW5pdHMgYWRkZWQgdG8gZmlsbEluLCBhcyBhIGNvbnZlbmllbmNlCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzIGV4Y2VwdGlvbiBpZiB0aGVyZSBpcyBub3QgZW5vdWdoCisgICAgICogICAgICAgICAgICByb29tIGluIHRoZSBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgIAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0VGV4dChjaGFyW10gZmlsbEluKSB7CisgICAgICAgIHJldHVybiBnZXRUZXh0KGZpbGxJbiwgMCk7CisgICAgfQorICAgICAgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciByZXR1cm5pbmcgdGhlIHVuZGVybHlpbmcgdGV4dCBzdG9yYWdlIGFzIGFzIHN0cmluZworICAgICAqIEByZXR1cm4gdGhlIHVuZGVybHlpbmcgdGV4dCBzdG9yYWdlIGluIHRoZSBpdGVyYXRvciBhcyBhIHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGV4dCgpIHsKKyAgICAgICAgY2hhcltdIHRleHQgPSBuZXcgY2hhcltnZXRMZW5ndGgoKV07CisgICAgICAgIGdldFRleHQodGV4dCk7CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKHRleHQpOworICAgIH0KKyAgICAgICAKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiBieSB0aGUgbnVtYmVyIG9mIGNvZGUgdW5pdHMKKyAgICAgKiBzcGVjaWZpZWQsIGVpdGhlciBmb3J3YXJkIG9yIGJhY2t3YXJkIGRlcGVuZGluZyBvbiB0aGUgc2lnbgorICAgICAqIG9mIGRlbHRhIChwb3NpdGl2ZSBvciBuZWdhdGl2ZSByZXNwZWN0aXZlbHkpLiAgSWYgdGhlIHJlc3VsdGluZworICAgICAqIGluZGV4IHdvdWxkIGJlIGxlc3MgdGhhbiB6ZXJvLCB0aGUgaW5kZXggaXMgc2V0IHRvIHplcm8sIGFuZCBpZgorICAgICAqIHRoZSByZXN1bHRpbmcgaW5kZXggd291bGQgYmUgZ3JlYXRlciB0aGFuIGxpbWl0LCB0aGUgaW5kZXggaXMKKyAgICAgKiBzZXQgdG8gbGltaXQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVsdGEgdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIHRvIG1vdmUgdGhlIGN1cnJlbnQKKyAgICAgKiAgICAgICAgICAgICAgaW5kZXguCisgICAgICogQHJldHVybiB0aGUgbmV3IGluZGV4LgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYW4gaW52YWxpZCBpbmRleCBpcyAKKyAgICAgKiAgICAgICAgICAgIHN1cHBsaWVkIAorICAgICAqIEBzdGFibGUgSUNVIDIuNCAKKyAgICAgKiAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG1vdmVJbmRleChpbnQgZGVsdGEpIHsKKyAgICAgICAgaW50IHggPSBNYXRoLm1heCgwLCBNYXRoLm1pbihnZXRJbmRleCgpICsgZGVsdGEsIGdldExlbmd0aCgpKSk7CisgICAgICAgIHNldEluZGV4KHgpOworICAgICAgICByZXR1cm4geDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiBieSB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzCisgICAgICogc3BlY2lmaWVkLCBlaXRoZXIgZm9yd2FyZCBvciBiYWNrd2FyZCBkZXBlbmRpbmcgb24gdGhlIHNpZ24gb2YKKyAgICAgKiBkZWx0YSAocG9zaXRpdmUgb3IgbmVnYXRpdmUgcmVzcGVjdGl2ZWx5KS4gSWYgdGhlIGN1cnJlbnQgaW5kZXgKKyAgICAgKiBpcyBhdCBhIHRyYWlsIHN1cnJvZ2F0ZSB0aGVuIHRoZSBmaXJzdCBhZGp1c3RtZW50IGlzIGJ5IGNvZGUKKyAgICAgKiB1bml0LCBhbmQgdGhlIHJlbWFpbmluZyBhZGp1c3RtZW50cyBhcmUgYnkgY29kZSBwb2ludHMuICBJZiB0aGUKKyAgICAgKiByZXN1bHRpbmcgaW5kZXggd291bGQgYmUgbGVzcyB0aGFuIHplcm8sIHRoZSBpbmRleCBpcyBzZXQgdG8KKyAgICAgKiB6ZXJvLCBhbmQgaWYgdGhlIHJlc3VsdGluZyBpbmRleCB3b3VsZCBiZSBncmVhdGVyIHRoYW4gbGltaXQsCisgICAgICogdGhlIGluZGV4IGlzIHNldCB0byBsaW1pdC4KKyAgICAgKiBAcGFyYW0gZGVsdGEgdGhlIG51bWJlciBvZiBjb2RlIHVuaXRzIHRvIG1vdmUgdGhlIGN1cnJlbnQgaW5kZXguCisgICAgICogQHJldHVybiB0aGUgbmV3IGluZGV4ICAKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFuIGludmFsaWQgZGVsdGEgaXMgCisgICAgICogICAgICAgICAgICBzdXBwbGllZAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbW92ZUNvZGVQb2ludEluZGV4KGludCBkZWx0YSl7CisgICAgICAgIGlmKGRlbHRhPjApeworICAgICAgICAgICAgd2hpbGUoZGVsdGE+MCAmJiBuZXh0Q29kZVBvaW50KCkgIT0gRE9ORSl7ZGVsdGEtLTt9CisgICAgICAgIH1lbHNleworICAgICAgICAgICAgd2hpbGUoZGVsdGE8MCAmJiBwcmV2aW91c0NvZGVQb2ludCgpICE9IERPTkUpe2RlbHRhKys7fQorICAgICAgICB9CisgICAgICAgIGlmKGRlbHRhIT0wKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIGdldEluZGV4KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhpcyBpdGVyYXRvciwgaW5kZXBlbmRlbnQgZnJvbSBvdGhlciBpdGVyYXRvcnMuCisgICAgICogSWYgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGNsb25lIHRoZSBpdGVyYXRvciwgcmV0dXJucyBudWxsLgorICAgICAqIEByZXR1cm4gY29weSBvZiB0aGlzIGl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHRocm93cyBDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbnsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgfSAgIAorICAgIAorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9VRm9ybWF0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9VRm9ybWF0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTczMGI4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VGb3JtYXQuamF2YQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5Gb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlOworCisvKioKKyAqIEFuIGFic3RyYWN0IGNsYXNzIHRoYXQgZXh0ZW5kcyB7QGxpbmsgamF2YS50ZXh0LkZvcm1hdH0gdG8gcHJvdmlkZQorICogYWRkaXRpb25hbCBJQ1UgcHJvdG9jb2wsIHNwZWNpZmljYWxseSwgdGhlIDx0dD5nZXRMb2NhbGUoKTwvdHQ+CisgKiBBUEkuICBBbGwgSUNVIGZvcm1hdCBjbGFzc2VzIGFyZSBzdWJjbGFzc2VzIG9mIHRoaXMgY2xhc3MuCisgKgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAqIEBhdXRob3Igd2VpdgorICogQGF1dGhvciBBbGFuIExpdQorICogQGRyYWZ0IElDVSAyLjggKHJldGFpbikKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVUZvcm1hdCBleHRlbmRzIEZvcm1hdCB7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTQ5NjQzOTA1MTU4NDAxNjQ0MTZMOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjggKHJldGFpbikKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVUZvcm1hdCgpIHt9CisKKyAgICAvLyAtLS0tLS0tLSBCRUdJTiBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxvY2FsZSB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGlzIG9iamVjdCwgb3IgbnVsbC4KKyAgICAgKiBUaGlzIG1heSBtYXkgZGlmZmVyIGZyb20gdGhlIGxvY2FsZSByZXF1ZXN0ZWQgYXQgdGhlIHRpbWUgb2YKKyAgICAgKiB0aGlzIG9iamVjdCdzIGNyZWF0aW9uLiAgRm9yIGV4YW1wbGUsIGlmIGFuIG9iamVjdCBpcyBjcmVhdGVkCisgICAgICogZm9yIGxvY2FsZSA8dHQ+ZW5fVVNfQ0FMSUZPUk5JQTwvdHQ+LCB0aGUgYWN0dWFsIGRhdGEgbWF5IGJlCisgICAgICogZHJhd24gZnJvbSA8dHQ+ZW48L3R0PiAodGhlIDxpPmFjdHVhbDwvaT4gbG9jYWxlKSwgYW5kCisgICAgICogPHR0PmVuX1VTPC90dD4gbWF5IGJlIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSB0aGF0IGV4aXN0cyAodGhlCisgICAgICogPGk+dmFsaWQ8L2k+IGxvY2FsZSkuCisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBUaGlzIG1ldGhvZCB3aWxsIGJlIGltcGxlbWVudGVkIGluIElDVSAzLjA7IElDVSAyLjgKKyAgICAgKiBjb250YWlucyBhIHBhcnRpYWwgcHJldmlldyBpbXBsZW1lbnRhdGlvbi4gIFRoZSA8aT5hY3R1YWw8L2k+CisgICAgICogbG9jYWxlIGlzIHJldHVybmVkIGNvcnJlY3RseSwgYnV0IHRoZSA8aT52YWxpZDwvaT4gbG9jYWxlIGlzCisgICAgICogbm90LCBpbiBtb3N0IGNhc2VzLgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgaW5mb3JtYXRpb24gcmVxdWVzdGVkLCBlaXRoZXIge0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRX0gb3Ige0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEV9LgorICAgICAqIEByZXR1cm4gdGhlIGluZm9ybWF0aW9uIHNwZWNpZmllZCBieSA8aT50eXBlPC9pPiwgb3IgbnVsbCBpZgorICAgICAqIHRoaXMgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YS4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVTG9jYWxlIGdldExvY2FsZShVTG9jYWxlLlR5cGUgdHlwZSkgeworICAgICAgICByZXR1cm4gdHlwZSA9PSBVTG9jYWxlLkFDVFVBTF9MT0NBTEUgPworICAgICAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgOiB0aGlzLnZhbGlkTG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYWxlcyB0aGF0IHdlcmUgdXNlZCB0byBjcmVhdGUgdGhpcworICAgICAqIG9iamVjdC4gIElmIHRoZSBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLAorICAgICAqIGJvdGggYXJndW1lbnRzIHNob3VsZCBiZSBzZXQgdG8gbnVsbC4gIE90aGVyd2lzZSwgbmVpdGhlcgorICAgICAqIHNob3VsZCBiZSBudWxsLiAgVGhlIGFjdHVhbCBsb2NhbGUgbXVzdCBiZSBhdCB0aGUgc2FtZSBsZXZlbCBvcgorICAgICAqIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLiAgVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQKKyAgICAgKiBmb3IgdXNlIGJ5IGZhY3RvcmllcyBvciBvdGhlciBlbnRpdGllcyB0aGF0IGNyZWF0ZSBvYmplY3RzIG9mCisgICAgICogdGhpcyBjbGFzcy4KKyAgICAgKiBAcGFyYW0gdmFsaWQgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlCisgICAgICogZGF0YSwgb3IgbnVsbAorICAgICAqIEBwYXJhbSBhY3R1YWwgdGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcworICAgICAqIG9iamVjdCwgb3IgbnVsbAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0TG9jYWxlKFVMb2NhbGUgdmFsaWQsIFVMb2NhbGUgYWN0dWFsKSB7CisgICAgICAgIC8vIENoYW5nZSB0aGUgZm9sbG93aW5nIHRvIGFuIGFzc2VydGlvbiBsYXRlcgorICAgICAgICBpZiAoKHZhbGlkID09IG51bGwpICE9IChhY3R1YWwgPT0gbnVsbCkpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgICAgIC8vIEFub3RoZXIgY2hlY2sgd2UgY291bGQgZG8gaXMgdGhhdCB0aGUgYWN0dWFsIGxvY2FsZSBpcyBhdAorICAgICAgICAvLyB0aGUgc2FtZSBsZXZlbCBvciBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4KKyAgICAgICAgdGhpcy52YWxpZExvY2FsZSA9IHZhbGlkOworICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA9IGFjdHVhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UgZGF0YSwgb3IgbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSB2YWxpZExvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMgb2JqZWN0LCBvcgorICAgICAqIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgYWN0dWFsTG9jYWxlOworCisgICAgLy8gLS0tLS0tLS0gRU5EIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmFlMDBmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogSW50ZXJmYWNlIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGZvcndhcmQtb25seSBpdGVyYXRpb24KKyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMgaXMgYSBtaW5pbWFsIGludGVyZmFjZSBmb3IgaXRlcmF0aW9uIHdpdGhvdXQgcmFuZG9tIGFjY2VzcworICogb3IgYmFja3dhcmRzIGl0ZXJhdGlvbi4gSXQgaXMgZXNwZWNpYWxseSB1c2VmdWwgZm9yIHdyYXBwaW5nCisgKiBzdHJlYW1zIHdpdGggY29udmVydGVycyBpbnRvIGFuIG9iamVjdCBmb3IgY29sbGF0aW9uIG9yCisgKiBub3JtYWxpemF0aW9uLgorICoKKyAqIDxwPkNoYXJhY3RlcnMgY2FuIGJlIGFjY2Vzc2VkIGluIHR3byB3YXlzOiBhcyBjb2RlIHVuaXRzIG9yIGFzCisgKiBjb2RlIHBvaW50cy4KKyAqIFVuaWNvZGUgY29kZSBwb2ludHMgYXJlIDIxLWJpdCBpbnRlZ2VycyBhbmQgYXJlIHRoZSBzY2FsYXIgdmFsdWVzCisgKiBvZiBVbmljb2RlIGNoYXJhY3RlcnMuIElDVSB1c2VzIHRoZSB0eXBlIDxjb2RlPmludDwvY29kZT4gZm9yIHRoZW0uCisgKiBVbmljb2RlIGNvZGUgdW5pdHMgYXJlIHRoZSBzdG9yYWdlIHVuaXRzIG9mIGEgZ2l2ZW4KKyAqIFVuaWNvZGUvVUNTIFRyYW5zZm9ybWF0aW9uIEZvcm1hdCAoYSBjaGFyYWN0ZXIgZW5jb2Rpbmcgc2NoZW1lKS4KKyAqIFdpdGggVVRGLTE2LCBhbGwgY29kZSBwb2ludHMgY2FuIGJlIHJlcHJlc2VudGVkIHdpdGggZWl0aGVyIG9uZQorICogb3IgdHdvIGNvZGUgdW5pdHMgKCJzdXJyb2dhdGVzIikuCisgKiBTdHJpbmcgc3RvcmFnZSBpcyB0eXBpY2FsbHkgYmFzZWQgb24gY29kZSB1bml0cywgd2hpbGUgcHJvcGVydGllcworICogb2YgY2hhcmFjdGVycyBhcmUgdHlwaWNhbGx5IGRldGVybWluZWQgdXNpbmcgY29kZSBwb2ludCB2YWx1ZXMuCisgKiBTb21lIHByb2Nlc3NlcyBtYXkgYmUgZGVzaWduZWQgdG8gd29yayB3aXRoIHNlcXVlbmNlcyBvZiBjb2RlIHVuaXRzLAorICogb3IgaXQgbWF5IGJlIGtub3duIHRoYXQgYWxsIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW1wb3J0YW50IHRvIGFuCisgKiBhbGdvcml0aG0gY2FuIGJlIHJlcHJlc2VudGVkIHdpdGggc2luZ2xlIGNvZGUgdW5pdHMuCisgKiBPdGhlciBwcm9jZXNzZXMgd2lsbCBuZWVkIHRvIHVzZSB0aGUgY29kZSBwb2ludCBhY2Nlc3MgZnVuY3Rpb25zLjwvcD4KKyAqCisgKiA8cD5Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgcHJvdmlkZXMgbmV4dCgpIHRvIGFjY2VzcworICogYSBjb2RlIHVuaXQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwgcG9zaXRpb24gaW50byB0aGUgdGV4dCBvYmplY3QsCisgKiBzaW1pbGFyIHRvIGEgPGNvZGU+cmV0dXJuIHRleHRbcG9zaXRpb24rK108L2NvZGU+Ljxicj4KKyAqIEl0IHByb3ZpZGVzIG5leHRDb2RlUG9pbnQoKSB0byBhY2Nlc3MgYSBjb2RlIHBvaW50IGFuZCBhZHZhbmNlIGFuIGludGVybmFsCisgKiBwb3NpdGlvbi48L3A+CisgKgorICogPHA+bmV4dENvZGVQb2ludCgpIGFzc3VtZXMgdGhhdCB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyB0aGF0IG9mCisgKiB0aGUgYmVnaW5uaW5nIG9mIGEgY29kZSBwb2ludCwgaS5lLiwgb2YgaXRzIGZpcnN0IGNvZGUgdW5pdC4KKyAqIEFmdGVyIG5leHRDb2RlUG9pbnQoKSwgdGhpcyB3aWxsIGJlIHRydWUgYWdhaW4uCisgKiBJbiBnZW5lcmFsLCBhY2Nlc3MgdG8gY29kZSB1bml0cyBhbmQgY29kZSBwb2ludHMgaW4gdGhlIHNhbWUKKyAqIGl0ZXJhdGlvbiBsb29wIHNob3VsZCBub3QgYmUgbWl4ZWQuIEluIFVURi0xNiwgaWYgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAqIGlzIG9uIGEgc2Vjb25kIGNvZGUgdW5pdCAoTG93IFN1cnJvZ2F0ZSksIHRoZW4gb25seSB0aGF0IGNvZGUgdW5pdAorICogaXMgcmV0dXJuZWQgZXZlbiBieSBuZXh0Q29kZVBvaW50KCkuPC9wPgorICoKKyAqIFVzYWdlOgorICogPGNvZGU+IAorICogIHB1YmxpYyB2b2lkIGZ1bmN0aW9uMShVRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIGl0KSB7CisgKiAgICAgaW50IGM7CisgKiAgICAgd2hpbGUoKGM9aXQubmV4dCgpKSE9VUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci5ET05FKSB7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiA8L2NvZGU+CisgKiA8L3A+CisgKiBAc3RhYmxlIElDVSAyLjQKKyAqCisgKi8KKworcHVibGljIGludGVyZmFjZSBVRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHsKKyAgICAgIAorICAgIC8qKgorICAgICAqIEluZGljYXRvciB0aGF0IHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kcyBvZiB0aGUgVVRGMTYgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBET05FID0gLTE7CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgVVRGMTYgY29kZSB1bml0IGF0IGluZGV4LCBhbmQgaW5jcmVtZW50cyB0byB0aGUgbmV4dAorICAgICAqIGNvZGUgdW5pdCAocG9zdC1pbmNyZW1lbnQgc2VtYW50aWNzKS4gIElmIGluZGV4IGlzIG91dCBvZgorICAgICAqIHJhbmdlLCBET05FIGlzIHJldHVybmVkLCBhbmQgdGhlIGl0ZXJhdG9yIGlzIHJlc2V0IHRvIHRoZSBsaW1pdAorICAgICAqIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgVVRGMTYgY29kZSB1bml0LCBvciBET05FIGlmIHRoZSBpbmRleCBpcyBhdCB0aGUgbGltaXQKKyAgICAgKiAgICAgICAgIG9mIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuNCAgCisgICAgICovCisgICAgcHVibGljIGludCBuZXh0KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IGF0IGluZGV4LCBhbmQgaW5jcmVtZW50cyB0byB0aGUgbmV4dCBjb2RlCisgICAgICogcG9pbnQgKHBvc3QtaW5jcmVtZW50IHNlbWFudGljcykuICBJZiBpbmRleCBkb2VzIG5vdCBwb2ludCB0byBhCisgICAgICogdmFsaWQgc3Vycm9nYXRlIHBhaXIsIHRoZSBiZWhhdmlvciBpcyB0aGUgc2FtZSBhcworICAgICAqIDxjb2RlPm5leHQoKTxjb2RlPi4gIE90aGVyd2lzZSB0aGUgaXRlcmF0b3IgaXMgaW5jcmVtZW50ZWQgcGFzdAorICAgICAqIHRoZSBzdXJyb2dhdGUgcGFpciwgYW5kIHRoZSBjb2RlIHBvaW50IHJlcHJlc2VudGVkIGJ5IHRoZSBwYWlyCisgICAgICogaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlcG9pbnQgaW4gdGV4dCwgb3IgRE9ORSBpZiB0aGUgaW5kZXggaXMgYXQKKyAgICAgKiAgICAgICAgIHRoZSBsaW1pdCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQgIAorICAgICAqLworICAgIHB1YmxpYyBpbnQgbmV4dENvZGVQb2ludCgpOworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9VVEYxNi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVVRGMTYuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMWUxZTYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVVRGMTYuamF2YQpAQCAtMCwwICsxLDI3ODggQEAKKy8qKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKKworLyoqCisgKiA8cD5TdGFuZGFsb25lIHV0aWxpdHkgY2xhc3MgcHJvdmlkaW5nIFVURjE2IGNoYXJhY3RlciBjb252ZXJzaW9ucyBhbmQKKyAqIGluZGV4aW5nIGNvbnZlcnNpb25zLjwvcD4KKyAqIDxwPkNvZGUgdGhhdCB1c2VzIHN0cmluZ3MgYWxvbmUgcmFyZWx5IG5lZWQgbW9kaWZpY2F0aW9uLgorICogQnkgZGVzaWduLCBVVEYtMTYgZG9lcyBub3QgYWxsb3cgb3ZlcmxhcCwgc28gc2VhcmNoaW5nIGZvciBzdHJpbmdzIGlzIGEgc2FmZQorICogb3BlcmF0aW9uLiBTaW1pbGFybHksIGNvbmNhdGVuYXRpb24gaXMgYWx3YXlzIHNhZmUuIFN1YnN0cmluZ2luZyBpcyBzYWZlIGlmCisgKiB0aGUgc3RhcnQgYW5kIGVuZCBhcmUgYm90aCBvbiBVVEYtMzIgYm91bmRhcmllcy4gSW4gbm9ybWFsIGNvZGUsIHRoZSB2YWx1ZXMKKyAqIGZvciBzdGFydCBhbmQgZW5kIGFyZSBvbiB0aG9zZSBib3VuZGFyaWVzLCBzaW5jZSB0aGV5IGFyb3NlIGZyb20gb3BlcmF0aW9ucworICogbGlrZSBzZWFyY2hpbmcuIElmIG5vdCwgdGhlIG5lYXJlc3QgVVRGLTMyIGJvdW5kYXJpZXMgY2FuIGJlIGRldGVybWluZWQKKyAqIHVzaW5nIDxjb2RlPmJvdW5kcygpPC9jb2RlPi48L3A+CisgKiA8c3Ryb25nPkV4YW1wbGVzOjwvc3Ryb25nPgorICogPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlcyBpbGx1c3RyYXRlIHVzZSBvZiBzb21lIG9mIHRoZXNlIG1ldGhvZHMuCisgKiA8cHJlPgorICogLy8gaXRlcmF0aW9uIGZvcndhcmRzOiBPcmlnaW5hbAorICogZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBzLmxlbmd0aCgpOyArK2kpIHsKKyAqICAgICBjaGFyIGNoID0gcy5jaGFyQXQoaSk7CisgKiAgICAgZG9Tb21ldGhpbmdXaXRoKGNoKTsKKyAqIH0KKyAqCisgKiAvLyBpdGVyYXRpb24gZm9yd2FyZHM6IENoYW5nZXMgZm9yIFVURi0zMgorICogaW50IGNoOworICogZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBzLmxlbmd0aCgpOyBpKz1VVEYxNi5nZXRDaGFyQ291bnQoY2gpKSB7CisgKiAgICAgY2ggPSBVVEYxNi5jaGFyQXQocyxpKTsKKyAqICAgICBkb1NvbWV0aGluZ1dpdGgoY2gpOworICogfQorICoKKyAqIC8vIGl0ZXJhdGlvbiBiYWNrd2FyZHM6IE9yaWdpbmFsCisgKiBmb3IgKGludCBpID0gcy5sZW5ndGgoKSAtMTsgaSA+PSAwOyAtLWkpIHsKKyAqICAgICBjaGFyIGNoID0gcy5jaGFyQXQoaSk7CisgKiAgICAgZG9Tb21ldGhpbmdXaXRoKGNoKTsKKyAqIH0KKyAqCisgKiAvLyBpdGVyYXRpb24gYmFja3dhcmRzOiBDaGFuZ2VzIGZvciBVVEYtMzIKKyAqIGludCBjaDsKKyAqIGZvciAoaW50IGkgPSBzLmxlbmd0aCgpIC0xOyBpID4gMDsgaS09VVRGMTYuZ2V0Q2hhckNvdW50KGNoKSkgeworICogICAgIGNoID0gVVRGMTYuY2hhckF0KHMsaSk7CisgKiAgICAgZG9Tb21ldGhpbmdXaXRoKGNoKTsKKyAqIH0KKyAqIDwvcHJlPgorICogPHN0cm9uZz5Ob3Rlczo8L3N0cm9uZz4KKyAqIDx1bD4KKyAqICAgPGxpPgorICogICA8c3Ryb25nPk5hbWluZzo8L3N0cm9uZz4gRm9yIGNsYXJpdHksIEhpZ2ggYW5kIExvdyBzdXJyb2dhdGVzIGFyZSBjYWxsZWQKKyAqICAgPGNvZGU+TGVhZDwvY29kZT4gYW5kIDxjb2RlPlRyYWlsPC9jb2RlPiBpbiB0aGUgQVBJLCB3aGljaCBnaXZlcyBhIGJldHRlcgorICogICBzZW5zZSBvZiB0aGVpciBvcmRlcmluZyBpbiBhIHN0cmluZy4gPGNvZGU+b2Zmc2V0MTY8L2NvZGU+IGFuZAorICogICA8Y29kZT5vZmZzZXQzMjwvY29kZT4gYXJlIHVzZWQgdG8gZGlzdGluZ3Vpc2ggb2Zmc2V0cyB0byBVVEYtMTYKKyAqICAgYm91bmRhcmllcyB2cyBvZmZzZXRzIHRvIFVURi0zMiBib3VuZGFyaWVzLiA8Y29kZT5pbnQgY2hhcjMyPC9jb2RlPiBpcworICogICB1c2VkIHRvIGNvbnRhaW4gVVRGLTMyIGNoYXJhY3RlcnMsIGFzIG9wcG9zZWQgdG8gPGNvZGU+Y2hhcjE2PC9jb2RlPiwKKyAqICAgd2hpY2ggaXMgYSBVVEYtMTYgY29kZSB1bml0LgorICogICA8L2xpPgorICogICA8bGk+CisgKiAgIDxzdHJvbmc+Um91bmR0cmlwcGluZyBPZmZzZXRzOjwvc3Ryb25nPiBZb3UgY2FuIGFsd2F5cyByb3VuZHRyaXAgZnJvbSBhCisgKiAgIFVURi0zMiBvZmZzZXQgdG8gYSBVVEYtMTYgb2Zmc2V0IGFuZCBiYWNrLiBCZWNhdXNlIG9mIHRoZSBkaWZmZXJlbmNlIGluCisgKiAgIHN0cnVjdHVyZSwgeW91IGNhbiByb3VuZHRyaXAgZnJvbSBhIFVURi0xNiBvZmZzZXQgdG8gYSBVVEYtMzIgb2Zmc2V0IGFuZAorICogICBiYWNrIGlmIGFuZCBvbmx5IGlmIDxjb2RlPmJvdW5kcyhzdHJpbmcsIG9mZnNldDE2KSAhPSBUUkFJTDwvY29kZT4uCisgKiAgIDwvbGk+CisgKiAgIDxsaT4KKyAqICAgIDxzdHJvbmc+RXhjZXB0aW9uczo8L3N0cm9uZz4gVGhlIGVycm9yIGNoZWNraW5nIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uCisgKiAgIGlmIGluZGljZXMgYXJlIG91dCBvZiBib3VuZHMuIE90aGVyIHRoYW4gdGhhbiB0aGF0LCBhbGwgbWV0aG9kcyB3aWxsCisgKiAgIGJlaGF2ZSByZWFzb25hYmx5LCBldmVuIGlmIHVubWF0Y2hlZCBzdXJyb2dhdGVzIG9yIG91dC1vZi1ib3VuZHMgVVRGLTMyCisgKiAgIHZhbHVlcyBhcmUgcHJlc2VudC4gPGNvZGU+VUNoYXJhY3Rlci5pc0xlZ2FsKCk8L2NvZGU+IGNhbiBiZSB1c2VkIHRvIGNoZWNrCisgKiAgIGZvciB2YWxpZGl0eSBpZiBkZXNpcmVkLgorICogICA8L2xpPgorICogICA8bGk+CisgKiAgIDxzdHJvbmc+VW5tYXRjaGVkIFN1cnJvZ2F0ZXM6PC9zdHJvbmc+IElmIHRoZSBzdHJpbmcgY29udGFpbnMgdW5tYXRjaGVkCisgKiAgIHN1cnJvZ2F0ZXMsIHRoZW4gdGhlc2UgYXJlIGNvdW50ZWQgYXMgb25lIFVURi0zMiB2YWx1ZS4gVGhpcyBtYXRjaGVzCisgKiAgIHRoZWlyIGl0ZXJhdGlvbiBiZWhhdmlvciwgd2hpY2ggaXMgdml0YWwuIEl0IGFsc28gbWF0Y2hlcyBjb21tb24gZGlzcGxheQorICogICBwcmFjdGljZSBhcyBtaXNzaW5nIGdseXBocyAoc2VlIHRoZSBVbmljb2RlIFN0YW5kYXJkIFNlY3Rpb24gNS40LCA1LjUpLgorICogICA8L2xpPgorICogICA8bGk+CisgKiAgICAgPHN0cm9uZz5PcHRpbWl6YXRpb246PC9zdHJvbmc+IFRoZSBtZXRob2QgaW1wbGVtZW50YXRpb25zIG1heSBuZWVkCisgKiAgICAgb3B0aW1pemF0aW9uIGlmIHRoZSBjb21waWxlciBkb2Vzbid0IGZvbGQgc3RhdGljIGZpbmFsIG1ldGhvZHMuIFNpbmNlCisgKiAgICAgc3Vycm9nYXRlIHBhaXJzIHdpbGwgZm9ybSBhbiBleGNlZWRpbmcgc21hbGwgcGVyY2VudGFnZSBvZiBhbGwgdGhlIHRleHQKKyAqICAgICBpbiB0aGUgd29ybGQsIHRoZSBzaW5nbGV0b24gY2FzZSBzaG91bGQgYWx3YXlzIGJlIG9wdGltaXplZCBmb3IuCisgKiAgIDwvbGk+CisgKiA8L3VsPgorICogQGF1dGhvciBNYXJrIERhdmlzLCB3aXRoIGhlbHAgZnJvbSBNYXJrdXMgU2NoZXJlcgorICogQHN0YWJsZSBJQ1UgMi4xCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVURjE2Cit7CisgICAgLy8gcHVibGljIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFZhbHVlIHJldHVybmVkIGluIDxjb2RlPjxhIGhyZWY9IiNib3VuZHMoamF2YS5sYW5nLlN0cmluZywgaW50KSI+CisgICAgICogYm91bmRzKCk8L2E+PC9jb2RlPi4KKyAgICAgKiBUaGVzZSB2YWx1ZXMgYXJlIGNob3NlbiBzcGVjaWZpY2FsbHkgc28gdGhhdCBpdCBhY3R1YWxseSByZXByZXNlbnRzCisgICAgICogdGhlIHBvc2l0aW9uIG9mIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiBbb2Zmc2V0MTYgLSAodmFsdWUgPj4gMiksIG9mZnNldDE2ICsgKHZhbHVlICYgMyldCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0lOR0xFX0NIQVJfQk9VTkRBUlkgPSAxLAorICAgICAgICBMRUFEX1NVUlJPR0FURV9CT1VOREFSWSA9IDIsCisgICAgICAgIFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSA9IDU7CisgICAgLyoqCisgICAgICogVGhlIGxvd2VzdCBVbmljb2RlIGNvZGUgcG9pbnQgdmFsdWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ09ERVBPSU5UX01JTl9WQUxVRSA9IDA7CisgICAgLyoqCisgICAgICogVGhlIGhpZ2hlc3QgVW5pY29kZSBjb2RlIHBvaW50IHZhbHVlIChzY2FsYXIgdmFsdWUpIGFjY29yZGluZyB0byB0aGUKKyAgICAgKiBVbmljb2RlIFN0YW5kYXJkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IENPREVQT0lOVF9NQVhfVkFMVUUgPSAweDEwZmZmZjsKKyAgICAvKioKKyAgICAgKiBUaGUgbWluaW11bSB2YWx1ZSBmb3IgU3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFICA9IDB4MTAwMDA7CisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgbWluaW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA9IDB4RDgwMDsKKyAgICAvKioKKyAgICAgKiBUcmFpbCBzdXJyb2dhdGUgbWluaW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUgPSAweERDMDA7CisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgbWF4aW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRSA9IDB4REJGRjsKKyAgICAvKioKKyAgICAgKiBUcmFpbCBzdXJyb2dhdGUgbWF4aW11bSB2YWx1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUgPSAweERGRkY7CisgICAgLyoqCisgICAgICogU3Vycm9nYXRlIG1pbmltdW0gdmFsdWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTVVJST0dBVEVfTUlOX1ZBTFVFID0gTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFOworICAgIC8qKgorICAgICAqIE1heGltdW0gc3Vycm9nYXRlIHZhbHVlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1VSUk9HQVRFX01BWF9WQUxVRSA9IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUU7CisKKyAgICAvLyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIC8qKgorICAgICAqIFByZXZlbnQgaW5zdGFuY2UgZnJvbSBiZWluZyBjcmVhdGVkLgorICAgICAqLworICAgIHByaXZhdGUgVVRGMTYoKQorICAgIHsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisgICAgLy8gcHVibGljIG1ldGhvZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEV4dHJhY3QgYSBzaW5nbGUgVVRGLTMyIHZhbHVlIGZyb20gYSBzdHJpbmcuCisgICAgICogVXNlZCB3aGVuIGl0ZXJhdGluZyBmb3J3YXJkcyBvciBiYWNrd2FyZHMgKHdpdGgKKyAgICAgKiA8Y29kZT5VVEYxNi5nZXRDaGFyQ291bnQoKTwvY29kZT4sIGFzIHdlbGwgYXMgcmFuZG9tIGFjY2Vzcy4gSWYgYQorICAgICAqIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UKKyAgICAgKiA8Y29kZT48YSBocmVmPSIuLi9sYW5nL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj4KKyAgICAgKiBVQ2hhcmFjdGVyLmlzTGVnYWwoKTwvYT48L2NvZGU+IG9uIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICogSWYgdGhlIGNoYXIgcmV0cmlldmVkIGlzIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgaXRzIHN1cHBsZW1lbnRhcnkKKyAgICAgKiBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZC4gSWYgYSBjb21wbGV0ZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlciBpcworICAgICAqIG5vdCBmb3VuZCB0aGUgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgd2lsbCBiZSByZXR1cm5lZAorICAgICAqIEBwYXJhbSBzb3VyY2UgYXJyYXkgb2YgVVRGLTE2IGNoYXJzCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiBVVEYtMzIgdmFsdWUgZm9yIHRoZSBVVEYtMzIgdmFsdWUgdGhhdCBjb250YWlucyB0aGUgY2hhciBhdAorICAgICAqICAgICAgICAgb2Zmc2V0MTYuIFRoZSBib3VuZGFyaWVzIG9mIHRoYXQgY29kZXBvaW50IGFyZSB0aGUgc2FtZSBhcyBpbgorICAgICAqICAgICAgICAgPGNvZGU+Ym91bmRzMzIoKTwvY29kZT4uCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBvdXQgb2YKKyAgICAgKiAgICAgICAgICAgIGJvdW5kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjaGFyQXQoU3RyaW5nIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgY2hhciBzaW5nbGUgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgaWYgKHNpbmdsZSA8IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gX2NoYXJBdChzb3VyY2UsIG9mZnNldDE2LCBzaW5nbGUpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBfY2hhckF0KFN0cmluZyBzb3VyY2UsIGludCBvZmZzZXQxNiwgY2hhciBzaW5nbGUpCisgICAgeworICAgICAgICBpZiAoc2luZ2xlID4gVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbnZlcnQgdGhlIFVURi0xNiBzdXJyb2dhdGUgcGFpciBpZiBuZWNlc3NhcnkuCisgICAgICAgIC8vIEZvciBzaW1wbGljaXR5IGluIHVzYWdlLCBhbmQgYmVjYXVzZSB0aGUgZnJlcXVlbmN5IG9mIHBhaXJzIGlzCisgICAgICAgIC8vIGxvdywgbG9vayBib3RoIGRpcmVjdGlvbnMuCisKKyAgICAgICAgaWYgKHNpbmdsZSA8PSBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICsrIG9mZnNldDE2OworICAgICAgICAgICAgaWYgKHNvdXJjZS5sZW5ndGgoKSAhPSBvZmZzZXQxNikgeworICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgICAgICAgICBpZiAodHJhaWwgPj0gVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgICAgICAgICB0cmFpbCA8PSBUUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShzaW5nbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAtLSBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBzaW5nbGUgaXMgYSB0cmFpbCBzdXJyb2dhdGUgc28KKyAgICAgICAgICAgICAgICAgICAgY2hhciBsZWFkID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisgICAgICAgICAgICAgICAgICAgIGlmIChsZWFkID49IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgbGVhZCA8PSBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShsZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIHJldHVybiBzaW5nbGU7IC8vIHJldHVybiB1bm1hdGNoZWQgc3Vycm9nYXRlCisgICAgfQorCisgICAgLyoqCisgICAgICogRXh0cmFjdCBhIHNpbmdsZSBVVEYtMzIgdmFsdWUgZnJvbSBhIHN0cmluZy4KKyAgICAgKiBVc2VkIHdoZW4gaXRlcmF0aW5nIGZvcndhcmRzIG9yIGJhY2t3YXJkcyAod2l0aAorICAgICAqIDxjb2RlPlVURjE2LmdldENoYXJDb3VudCgpPC9jb2RlPiwgYXMgd2VsbCBhcyByYW5kb20gYWNjZXNzLiBJZiBhCisgICAgICogdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZQorICAgICAqIDxjb2RlPjxhIGhyZWY9Ii4uL2xhbmcvVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPlVDaGFyYWN0ZXIuaXNMZWdhbCgpCisgICAgICogPC9hPjwvY29kZT4gb24gdGhlIHJldHVybiB2YWx1ZS4KKyAgICAgKiBJZiB0aGUgY2hhciByZXRyaWV2ZWQgaXMgcGFydCBvZiBhIHN1cnJvZ2F0ZSBwYWlyLCBpdHMgc3VwcGxlbWVudGFyeQorICAgICAqIGNoYXJhY3RlciB3aWxsIGJlIHJldHVybmVkLiBJZiBhIGNvbXBsZXRlIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIGlzCisgICAgICogbm90IGZvdW5kIHRoZSBpbmNvbXBsZXRlIGNoYXJhY3RlciB3aWxsIGJlIHJldHVybmVkCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYtMTYgY2hhcnMgc3RyaW5nIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYtMTYgb2Zmc2V0IHRvIHRoZSBzdGFydCBvZiB0aGUgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gVVRGLTMyIHZhbHVlIGZvciB0aGUgVVRGLTMyIHZhbHVlIHRoYXQgY29udGFpbnMgdGhlIGNoYXIgYXQKKyAgICAgKiAgICAgICAgIG9mZnNldDE2LiBUaGUgYm91bmRhcmllcyBvZiB0aGF0IGNvZGVwb2ludCBhcmUgdGhlIHNhbWUgYXMgaW4KKyAgICAgKiAgICAgICAgIDxjb2RlPmJvdW5kczMyKCk8L2NvZGU+LgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB0aHJvd24gaWYgb2Zmc2V0MTYgaXMgb3V0IG9mCisgICAgICogICAgICAgICAgICBib3VuZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY2hhckF0KFN0cmluZ0J1ZmZlciBzb3VyY2UsIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIGlmIChvZmZzZXQxNiA8IDAgfHwgb2Zmc2V0MTYgPj0gc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQxNik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyIHNpbmdsZSA9IHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpOworICAgICAgICBpZiAoIWlzU3Vycm9nYXRlKHNpbmdsZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzaW5nbGU7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb252ZXJ0IHRoZSBVVEYtMTYgc3Vycm9nYXRlIHBhaXIgaWYgbmVjZXNzYXJ5LgorICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSBpbiB1c2FnZSwgYW5kIGJlY2F1c2UgdGhlIGZyZXF1ZW5jeSBvZiBwYWlycyBpcworICAgICAgICAvLyBsb3csIGxvb2sgYm90aCBkaXJlY3Rpb25zLgorCisgICAgICAgIGlmIChzaW5nbGUgPD0gTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICsrIG9mZnNldDE2OworICAgICAgICAgICAgICAgIGlmIChzb3VyY2UubGVuZ3RoKCkgIT0gb2Zmc2V0MTYpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgdHJhaWwgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkoc2luZ2xlLCB0cmFpbCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC0tIG9mZnNldDE2OworICAgICAgICAgICAgICAgIGlmIChvZmZzZXQxNiA+PSAwKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaW5nbGUgaXMgYSB0cmFpbCBzdXJyb2dhdGUgc28KKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgbGVhZCA9IHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShsZWFkKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShsZWFkLCBzaW5nbGUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIHJldHVybiBzaW5nbGU7IC8vIHJldHVybiB1bm1hdGNoZWQgc3Vycm9nYXRlCisgICAgfQorCisgICAgLyoqCisgICAgICogRXh0cmFjdCBhIHNpbmdsZSBVVEYtMzIgdmFsdWUgZnJvbSBhIHN1YnN0cmluZy4KKyAgICAgKiBVc2VkIHdoZW4gaXRlcmF0aW5nIGZvcndhcmRzIG9yIGJhY2t3YXJkcyAod2l0aAorICAgICAqIDxjb2RlPlVURjE2LmdldENoYXJDb3VudCgpPC9jb2RlPiwgYXMgd2VsbCBhcyByYW5kb20gYWNjZXNzLiBJZiBhCisgICAgICogdmFsaWRpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHVzZQorICAgICAqIDxjb2RlPjxhIGhyZWY9Ii4uL2xhbmcvVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPlVDaGFyYWN0ZXIuaXNMZWdhbCgpCisgICAgICogPC9hPjwvY29kZT4gb24gdGhlIHJldHVybiB2YWx1ZS4KKyAgICAgKiBJZiB0aGUgY2hhciByZXRyaWV2ZWQgaXMgcGFydCBvZiBhIHN1cnJvZ2F0ZSBwYWlyLCBpdHMgc3VwcGxlbWVudGFyeQorICAgICAqIGNoYXJhY3RlciB3aWxsIGJlIHJldHVybmVkLiBJZiBhIGNvbXBsZXRlIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIGlzCisgICAgICogbm90IGZvdW5kIHRoZSBpbmNvbXBsZXRlIGNoYXJhY3RlciB3aWxsIGJlIHJldHVybmVkCisgICAgICogQHBhcmFtIHNvdXJjZSBhcnJheSBvZiBVVEYtMTYgY2hhcnMKKyAgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IHRvIHN1YnN0cmluZyBpbiB0aGUgc291cmNlIGFycmF5IGZvciBhbmFseXppbmcKKyAgICAgKiBAcGFyYW0gbGltaXQgb2Zmc2V0IHRvIHN1YnN0cmluZyBpbiB0aGUgc291cmNlIGFycmF5IGZvciBhbmFseXppbmcKKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGLTE2IG9mZnNldCByZWxhdGl2ZSB0byBzdGFydAorICAgICAqIEByZXR1cm4gVVRGLTMyIHZhbHVlIGZvciB0aGUgVVRGLTMyIHZhbHVlIHRoYXQgY29udGFpbnMgdGhlIGNoYXIgYXQKKyAgICAgKiAgICAgICAgIG9mZnNldDE2LiBUaGUgYm91bmRhcmllcyBvZiB0aGF0IGNvZGVwb2ludCBhcmUgdGhlIHNhbWUgYXMgaW4KKyAgICAgKiAgICAgICAgIDxjb2RlPmJvdW5kczMyKCk8L2NvZGU+LgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB0aHJvd24gaWYgb2Zmc2V0MTYgaXMgbm90IHdpdGhpbgorICAgICAqICAgICAgICAgICAgdGhlIHJhbmdlIG9mIHN0YXJ0IGFuZCBsaW1pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjaGFyQXQoY2hhciBzb3VyY2VbXSwgaW50IHN0YXJ0LCBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIG9mZnNldDE2ICs9IHN0YXJ0OworICAgICAgICBpZiAob2Zmc2V0MTYgPCBzdGFydCB8fCBvZmZzZXQxNiA+PSBsaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQxNik7CisgICAgICAgIH0KKworICAgICAgICBjaGFyIHNpbmdsZSA9IHNvdXJjZVtvZmZzZXQxNl07CisgICAgICAgIGlmICghaXNTdXJyb2dhdGUoc2luZ2xlKSkgeworICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbnZlcnQgdGhlIFVURi0xNiBzdXJyb2dhdGUgcGFpciBpZiBuZWNlc3NhcnkuCisgICAgICAgIC8vIEZvciBzaW1wbGljaXR5IGluIHVzYWdlLCBhbmQgYmVjYXVzZSB0aGUgZnJlcXVlbmN5IG9mIHBhaXJzIGlzCisgICAgICAgIC8vIGxvdywgbG9vayBib3RoIGRpcmVjdGlvbnMuCisgICAgICAgIGlmIChzaW5nbGUgPD0gTEVBRF9TVVJST0dBVEVfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICBvZmZzZXQxNiArKzsKKyAgICAgICAgICAgIGlmIChvZmZzZXQxNiA+PSBsaW1pdCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzaW5nbGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFyIHRyYWlsID0gc291cmNlW29mZnNldDE2XTsKKyAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKHRyYWlsKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBVQ2hhcmFjdGVyUHJvcGVydHkuZ2V0UmF3U3VwcGxlbWVudGFyeShzaW5nbGUsIHRyYWlsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsgLy8gaXNUcmFpbFN1cnJvZ2F0ZShzaW5nbGUpLCBzbworICAgICAgICAgICAgaWYgKG9mZnNldDE2ID09IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNpbmdsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9mZnNldDE2IC0tOworICAgICAgICAgICAgY2hhciBsZWFkID0gc291cmNlW29mZnNldDE2XTsKKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUobGVhZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KGxlYWQsIHNpbmdsZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNpbmdsZTsgLy8gcmV0dXJuIHVubWF0Y2hlZCBzdXJyb2dhdGUKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFeHRyYWN0IGEgc2luZ2xlIFVURi0zMiB2YWx1ZSBmcm9tIGEgc3RyaW5nLgorICAgICAqIFVzZWQgd2hlbiBpdGVyYXRpbmcgZm9yd2FyZHMgb3IgYmFja3dhcmRzICh3aXRoCisgICAgICogPGNvZGU+VVRGMTYuZ2V0Q2hhckNvdW50KCk8L2NvZGU+LCBhcyB3ZWxsIGFzIHJhbmRvbSBhY2Nlc3MuIElmIGEKKyAgICAgKiB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlCisgICAgICogPGNvZGU+PGEgaHJlZj0iLi4vbGFuZy9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+VUNoYXJhY3Rlci5pc0xlZ2FsKCkKKyAgICAgKiA8L2E+PC9jb2RlPiBvbiB0aGUgcmV0dXJuIHZhbHVlLgorICAgICAqIElmIHRoZSBjaGFyIHJldHJpZXZlZCBpcyBwYXJ0IG9mIGEgc3Vycm9nYXRlIHBhaXIsIGl0cyBzdXBwbGVtZW50YXJ5CisgICAgICogY2hhcmFjdGVyIHdpbGwgYmUgcmV0dXJuZWQuIElmIGEgY29tcGxldGUgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgaXMKKyAgICAgKiBub3QgZm91bmQgdGhlIGluY29tcGxldGUgY2hhcmFjdGVyIHdpbGwgYmUgcmV0dXJuZWQKKyAgICAgKiBAcGFyYW0gc291cmNlIFVURi0xNiBjaGFycyBzdHJpbmcgYnVmZmVyCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiBVVEYtMzIgdmFsdWUgZm9yIHRoZSBVVEYtMzIgdmFsdWUgdGhhdCBjb250YWlucyB0aGUgY2hhciBhdAorICAgICAqICAgICAgICAgb2Zmc2V0MTYuIFRoZSBib3VuZGFyaWVzIG9mIHRoYXQgY29kZXBvaW50IGFyZSB0aGUgc2FtZSBhcyBpbgorICAgICAqICAgICAgICAgPGNvZGU+Ym91bmRzMzIoKTwvY29kZT4uCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBvdXQgb2YKKyAgICAgKiAgICAgICAgICAgIGJvdW5kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjaGFyQXQoUmVwbGFjZWFibGUgc291cmNlLCBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0MTYgPCAwIHx8IG9mZnNldDE2ID49IHNvdXJjZS5sZW5ndGgoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBzaW5nbGUgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgaWYgKCFpc1N1cnJvZ2F0ZShzaW5nbGUpKSB7CisgICAgICAgICAgICByZXR1cm4gc2luZ2xlOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29udmVydCB0aGUgVVRGLTE2IHN1cnJvZ2F0ZSBwYWlyIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgLy8gRm9yIHNpbXBsaWNpdHkgaW4gdXNhZ2UsIGFuZCBiZWNhdXNlIHRoZSBmcmVxdWVuY3kgb2YgcGFpcnMgaXMKKyAgICAgICAgLy8gbG93LCBsb29rIGJvdGggZGlyZWN0aW9ucy4KKworICAgICAgICBpZiAoc2luZ2xlIDw9IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICArKyBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAoc291cmNlLmxlbmd0aCgpICE9IG9mZnNldDE2KQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIHRyYWlsID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZSh0cmFpbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRSYXdTdXBwbGVtZW50YXJ5KHNpbmdsZSwgdHJhaWwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAtLSBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPj0gMCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2luZ2xlIGlzIGEgdHJhaWwgc3Vycm9nYXRlIHNvCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGxlYWQgPSBzb3VyY2UuY2hhckF0KG9mZnNldDE2KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUobGVhZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVUNoYXJhY3RlclByb3BlcnR5LmdldFJhd1N1cHBsZW1lbnRhcnkobGVhZCwgc2luZ2xlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICByZXR1cm4gc2luZ2xlOyAvLyByZXR1cm4gdW5tYXRjaGVkIHN1cnJvZ2F0ZQorICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgaG93IG1hbnkgY2hhcnMgdGhpcyBjaGFyMzIgcmVxdWlyZXMuCisgICAgICogSWYgYSB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlIDxjb2RlPgorICAgICAqIDxhIGhyZWY9Ii4uL2xhbmcvVUNoYXJhY3Rlci5odG1sI2lzTGVnYWwoY2hhcikiPmlzTGVnYWwoKTwvYT48L2NvZGU+IG9uCisgICAgICogY2hhcjMyIGJlZm9yZSBjYWxsaW5nLgorICAgICAqIEBwYXJhbSBjaGFyMzIgdGhlIGlucHV0IGNvZGVwb2ludC4KKyAgICAgKiBAcmV0dXJuIDIgaWYgaXMgaW4gc3VwcGxlbWVudGFyeSBzcGFjZSwgb3RoZXJ3aXNlIDEuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0Q2hhckNvdW50KGludCBjaGFyMzIpCisgICAgeworICAgICAgICBpZiAoY2hhcjMyIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiAyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHR5cGUgb2YgdGhlIGJvdW5kYXJpZXMgYXJvdW5kIHRoZSBjaGFyIGF0IG9mZnNldDE2LgorICAgICAqIFVzZWQgZm9yIHJhbmRvbSBhY2Nlc3MuCisgICAgICogQHBhcmFtIHNvdXJjZSB0ZXh0IHRvIGFuYWx5c2UKKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGLTE2IG9mZnNldAorICAgICAqIEByZXR1cm4gPHVsPgorICAgICAqICAgICAgICAgICA8bGk+IFNJTkdMRV9DSEFSX0JPVU5EQVJZIDogYSBzaW5nbGUgY2hhcjsgdGhlIGJvdW5kcyBhcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvZmZzZXQxNiwgb2Zmc2V0MTYrMV0KKyAgICAgKiAgICAgICAgICAgPGxpPiBMRUFEX1NVUlJPR0FURV9CT1VOREFSWSA6IGEgc3Vycm9nYXRlIHBhaXIgc3RhcnRpbmcgYXQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDE2OworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGJvdW5kcyBhcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvZmZzZXQxNiwgb2Zmc2V0MTYgKyAyXQorICAgICAqICAgICAgICAgICA8bGk+IFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSA6IGEgc3Vycm9nYXRlIHBhaXIgc3RhcnRpbmcgYXQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNiAtIDE7IHRoZSBib3VuZHMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29mZnNldDE2IC0gMSwgb2Zmc2V0MTYgKyAxXQorICAgICAqICAgICAgICAgPC91bD4KKyAgICAgKiAgICAgICAgIEZvciBiaXQtdHdpZGRsZXJzLCB0aGUgcmV0dXJuIHZhbHVlcyBmb3IgdGhlc2UgYXJlIGNob3NlbiBzbworICAgICAqICAgICAgICAgdGhhdCB0aGUgYm91bmRhcmllcyBjYW4gYmUgZ290dGVuIGJ5OgorICAgICAqICAgICAgICAgW29mZnNldDE2IC0gKHZhbHVlID4+IDIpLCBvZmZzZXQxNiArICh2YWx1ZSAmIDMpXS4KKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgb2Zmc2V0MTYgaXMgb3V0IG9mIGJvdW5kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBib3VuZHMoU3RyaW5nIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgY2hhciBjaCA9IHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpOworICAgICAgICBpZiAoaXNTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGlmICgrKyBvZmZzZXQxNiA8IHNvdXJjZS5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KG9mZnNldDE2KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBMRUFEX1NVUlJPR0FURV9CT1VOREFSWTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIGlzVHJhaWxTdXJyb2dhdGUoY2gpLCBzbworICAgICAgICAgICAgICAgIC0tIG9mZnNldDE2OworICAgICAgICAgICAgICAgIGlmIChvZmZzZXQxNiA+PSAwICYmIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KG9mZnNldDE2KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFNJTkdMRV9DSEFSX0JPVU5EQVJZOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHR5cGUgb2YgdGhlIGJvdW5kYXJpZXMgYXJvdW5kIHRoZSBjaGFyIGF0IG9mZnNldDE2LiBVc2VkCisgICAgICogZm9yIHJhbmRvbSBhY2Nlc3MuCisgICAgICogQHBhcmFtIHNvdXJjZSBzdHJpbmcgYnVmZmVyIHRvIGFuYWx5c2UKKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGMTYgb2Zmc2V0CisgICAgICogQHJldHVybgorICAgICAqICAgICA8dWw+CisgICAgICogICAgIDxsaT4gU0lOR0xFX0NIQVJfQk9VTkRBUlkgOiBhIHNpbmdsZSBjaGFyOyB0aGUgYm91bmRzIGFyZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2Zmc2V0MTYsIG9mZnNldDE2ICsgMV0KKyAgICAgKiAgICAgPGxpPiBMRUFEX1NVUlJPR0FURV9CT1VOREFSWSA6IGEgc3Vycm9nYXRlIHBhaXIgc3RhcnRpbmcgYXQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDE2OyB0aGUgYm91bmRzIGFyZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29mZnNldDE2LCBvZmZzZXQxNiArIDJdCisgICAgICogICAgIDxsaT4gVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZIDogYSBzdXJyb2dhdGUgcGFpciBzdGFydGluZyBhdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDE2IC0gMTsgdGhlIGJvdW5kcyBhcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2Zmc2V0MTYgLSAxLCBvZmZzZXQxNiArIDFdCisgICAgICogICAgIDwvdWw+CisgICAgICogRm9yIGJpdC10d2lkZGxlcnMsIHRoZSByZXR1cm4gdmFsdWVzIGZvciB0aGVzZSBhcmUgY2hvc2VuIHNvIHRoYXQgdGhlCisgICAgICogYm91bmRhcmllcyBjYW4gYmUgZ290dGVuIGJ5OgorICAgICAqICAgICAgICAgICAgICAgICAgICBbb2Zmc2V0MTYgLSAodmFsdWUgPj4gMiksIG9mZnNldDE2ICsgKHZhbHVlICYgMyldLgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBvdXQgb2YgYm91bmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGJvdW5kcyhTdHJpbmdCdWZmZXIgc291cmNlLCBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBjaGFyIGNoID0gc291cmNlLmNoYXJBdChvZmZzZXQxNik7CisgICAgICAgIGlmIChpc1N1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoY2gpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCsrIG9mZnNldDE2IDwgc291cmNlLmxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExFQURfU1VSUk9HQVRFX0JPVU5EQVJZOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gaXNUcmFpbFN1cnJvZ2F0ZShjaCksIHNvCisgICAgICAgICAgICAgICAgLS0gb2Zmc2V0MTY7CisgICAgICAgICAgICAgICAgaWYgKG9mZnNldDE2ID49IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQob2Zmc2V0MTYpKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gU0lOR0xFX0NIQVJfQk9VTkRBUlk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgYm91bmRhcmllcyBhcm91bmQgdGhlIGNoYXIgYXQgb2Zmc2V0MTYuIFVzZWQKKyAgICAgKiBmb3IgcmFuZG9tIGFjY2Vzcy4gTm90ZSB0aGF0IHRoZSBib3VuZGFyaWVzIGFyZSBkZXRlcm1pbmVkIHdpdGggcmVzcGVjdAorICAgICAqIHRvIHRoZSBzdWJhcnJheSwgaGVuY2UgdGhlIGNoYXIgYXJyYXkgezB4RDgwMCwgMHhEQzAwfSBoYXMgdGhlIHJlc3VsdAorICAgICAqIFNJTkdMRV9DSEFSX0JPVU5EQVJZIGZvciBzdGFydCA9IG9mZnNldDE2ID0gMCBhbmQgbGltaXQgPSAxLgorICAgICAqIEBwYXJhbSBzb3VyY2UgY2hhciBhcnJheSB0byBhbmFseXNlCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCB0byBzdWJzdHJpbmcgaW4gdGhlIHNvdXJjZSBhcnJheSBmb3IgYW5hbHl6aW5nCisgICAgICogQHBhcmFtIGxpbWl0IG9mZnNldCB0byBzdWJzdHJpbmcgaW4gdGhlIHNvdXJjZSBhcnJheSBmb3IgYW5hbHl6aW5nCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURjE2IG9mZnNldCByZWxhdGl2ZSB0byBzdGFydAorICAgICAqIEByZXR1cm4KKyAgICAgKiAgICAgPHVsPgorICAgICAqICAgICAgICAgPGxpPiBTSU5HTEVfQ0hBUl9CT1VOREFSWSA6IGEgc2luZ2xlIGNoYXI7IHRoZSBib3VuZHMgYXJlCisgICAgICogICAgICAgICA8bGk+IExFQURfU1VSUk9HQVRFX0JPVU5EQVJZIDogYSBzdXJyb2dhdGUgcGFpciBzdGFydGluZyBhdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNjsgdGhlIGJvdW5kcyBhcmUgW29mZnNldDE2LCBvZmZzZXQxNiArIDJdCisgICAgICogICAgICAgICA8bGk+IFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSA6IGEgc3Vycm9nYXRlIHBhaXIgc3RhcnRpbmcgYXQKKyAgICAgKiAgICAgICAgICAgICAgIG9mZnNldDE2IC0gMTsgdGhlIGJvdW5kcyBhcmUgW29mZnNldDE2IC0gMSwgb2Zmc2V0MTYgKyAxXQorICAgICAqICAgICA8L3VsPgorICAgICAqIEZvciBiaXQtdHdpZGRsZXJzLCB0aGUgYm91bmRhcnkgdmFsdWVzIGZvciB0aGVzZSBhcmUgY2hvc2VuIHNvIHRoYXQgdGhlCisgICAgICogYm91bmRhcmllcyBjYW4gYmUgZ290dGVuIGJ5OiBbb2Zmc2V0MTYgLSAoYm91bmR2YWx1ZSA+PiAyKSwgb2Zmc2V0MTYKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChib3VuZHZhbHVlICYgMyldLgorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQxNiBpcyBub3Qgd2l0aGluIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZSBvZiBzdGFydCBhbmQgbGltaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgYm91bmRzKGNoYXIgc291cmNlW10sIGludCBzdGFydCwgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBvZmZzZXQxNiArPSBzdGFydDsKKyAgICAgICAgaWYgKG9mZnNldDE2IDwgc3RhcnQgfHwgb2Zmc2V0MTYgPj0gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisgICAgICAgIGNoYXIgY2ggPSBzb3VyY2Vbb2Zmc2V0MTZdOworICAgICAgICBpZiAoaXNTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoKSkgeworICAgICAgICAgICAgICAgICsrIG9mZnNldDE2OworICAgICAgICAgICAgICAgIGlmIChvZmZzZXQxNiA8IGxpbWl0ICYmIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlW29mZnNldDE2XSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIExFQURfU1VSUk9HQVRFX0JPVU5EQVJZOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeyAvLyBpc1RyYWlsU3Vycm9nYXRlKGNoKSwgc28KKyAgICAgICAgICAgICAgICAtLSBvZmZzZXQxNjsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0MTYgPj0gc3RhcnQgJiYgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZVtvZmZzZXQxNl0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBTSU5HTEVfQ0hBUl9CT1VOREFSWTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvZGUgdmFsdWUgaXMgYSBzdXJyb2dhdGUuCisgICAgICogQHBhcmFtIGNoYXIxNiB0aGUgaW5wdXQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZmYgdGhlIGlucHV0IGNoYXJhY3RlciBpcyBhIHN1cnJvZ2F0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNTdXJyb2dhdGUoY2hhciBjaGFyMTYpCisgICAgeworICAgICAgICByZXR1cm4gTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFIDw9IGNoYXIxNiAmJgorICAgICAgICAgICAgY2hhcjE2IDw9IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUU7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgYSB0cmFpbCBzdXJyb2dhdGUuCisgICAgICogQHBhcmFtIGNoYXIxNiB0aGUgaW5wdXQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZmYgdGhlIGlucHV0IGNoYXJhY3RlciBpcyBhIHRyYWlsIHN1cnJvZ2F0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNUcmFpbFN1cnJvZ2F0ZShjaGFyIGNoYXIxNikKKyAgICB7CisgICAgICAgIHJldHVybiAoVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSA8PSBjaGFyMTYgJiYKKyAgICAgICAgICAgICAgICBjaGFyMTYgPD0gVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjaGFyYWN0ZXIgaXMgYSBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgKiBAcGFyYW0gY2hhcjE2IHRoZSBpbnB1dCBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiB0cnVlIGlmZiB0aGUgaW5wdXQgY2hhcmFjdGVyIGlzIGEgbGVhZCBzdXJyb2dhdGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNMZWFkU3Vycm9nYXRlKGNoYXIgY2hhcjE2KQorICAgIHsKKyAgICAgICAgcmV0dXJuIExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSA8PSBjaGFyMTYgJiYKKyAgICAgICAgICAgIGNoYXIxNiA8PSBMRUFEX1NVUlJPR0FURV9NQVhfVkFMVUU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGVhZCBzdXJyb2dhdGUuCisgICAgICogSWYgYSB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlCisgICAgICogPGNvZGU+PGEgaHJlZj0iLi4vbGFuZy9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4KKyAgICAgKiBvbiBjaGFyMzIgYmVmb3JlIGNhbGxpbmcuCisgICAgICogQHBhcmFtIGNoYXIzMiB0aGUgaW5wdXQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gbGVhZCBzdXJyb2dhdGUgaWYgdGhlIGdldENoYXJDb3VudChjaCkgaXMgMjsgPGJyPgorICAgICAqICAgICAgICAgYW5kIDAgb3RoZXJ3aXNlIChub3RlOiAwIGlzIG5vdCBhIHZhbGlkIGxlYWQgc3Vycm9nYXRlKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNoYXIgZ2V0TGVhZFN1cnJvZ2F0ZShpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgaWYgKGNoYXIzMiA+PSBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgcmV0dXJuIChjaGFyKShMRUFEX1NVUlJPR0FURV9PRkZTRVRfICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIzMiA+PiBMRUFEX1NVUlJPR0FURV9TSElGVF8pKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHRyYWlsIHN1cnJvZ2F0ZS4KKyAgICAgKiBJZiBhIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UKKyAgICAgKiA8Y29kZT48YSBocmVmPSIuLi9sYW5nL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5pc0xlZ2FsKCk8L2E+PC9jb2RlPgorICAgICAqIG9uIGNoYXIzMiBiZWZvcmUgY2FsbGluZy4KKyAgICAgKiBAcGFyYW0gY2hhcjMyIHRoZSBpbnB1dCBjaGFyYWN0ZXIuCisgICAgICogQHJldHVybiB0aGUgdHJhaWwgc3Vycm9nYXRlIGlmIHRoZSBnZXRDaGFyQ291bnQoY2gpIGlzIDI7IDxicj5vdGhlcndpc2UKKyAgICAgKiAgICAgICAgIHRoZSBjaGFyYWN0ZXIgaXRzZWxmCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjaGFyIGdldFRyYWlsU3Vycm9nYXRlKGludCBjaGFyMzIpCisgICAgeworICAgICAgICBpZiAoY2hhcjMyID49IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gKGNoYXIpKFRSQUlMX1NVUlJPR0FURV9NSU5fVkFMVUUgKworICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcjMyICYgVFJBSUxfU1VSUk9HQVRFX01BU0tfKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gKGNoYXIpY2hhcjMyOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCBjb3JyZXNwb25kaW5nIHRvIFN0cmluZy52YWx1ZU9mKGNoYXIpLiBSZXR1cm5zIGEgb25lCisgICAgICogb3IgdHdvIGNoYXIgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFVURi0zMiB2YWx1ZSBpbiBVVEYxNiBmb3JtYXQuIElmIGEKKyAgICAgKiB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlCisgICAgICogPGEgaHJlZj0iLi4vbGFuZy9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4gb24KKyAgICAgKiBjaGFyMzIgYmVmb3JlIGNhbGxpbmcuCisgICAgICogQHBhcmFtIGNoYXIzMiB0aGUgaW5wdXQgY2hhcmFjdGVyLgorICAgICAqIEByZXR1cm4gc3RyaW5nIHZhbHVlIG9mIGNoYXIzMiBpbiBVVEYxNiBmb3JtYXQKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB0aHJvd24gaWYgY2hhcjMyIGlzIGEgaW52YWxpZAorICAgICAqICAgICAgICAgICAgY29kZXBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHZhbHVlT2YoaW50IGNoYXIzMikKKyAgICB7CisgICAgICAgIGlmIChjaGFyMzIgPCBDT0RFUE9JTlRfTUlOX1ZBTFVFIHx8IGNoYXIzMiA+IENPREVQT0lOVF9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgY29kZXBvaW50Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRvU3RyaW5nKGNoYXIzMik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIGNvcnJlc3BvbmRpbmcgdG8gU3RyaW5nLnZhbHVlT2YoY29kZXBvaW50IGF0CisgICAgICogb2Zmc2V0MTYpLgorICAgICAqIFJldHVybnMgYSBvbmUgb3IgdHdvIGNoYXIgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFVURi0zMiB2YWx1ZSBpbiBVVEYxNgorICAgICAqIGZvcm1hdC4gSWYgb2Zmc2V0MTYgaW5kZXhlcyBhIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIsIHRoZSB3aG9sZQorICAgICAqIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50IHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogSWYgYSB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlCisgICAgICogPGEgaHJlZj0iLi4vbGFuZy9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4gb24gdGhlCisgICAgICogY29kZXBvaW50IGF0IG9mZnNldDE2IGJlZm9yZSBjYWxsaW5nLgorICAgICAqIFRoZSByZXN1bHQgcmV0dXJuZWQgd2lsbCBiZSBhIG5ld2x5IGNyZWF0ZWQgU3RyaW5nIG9idGFpbmVkIGJ5IGNhbGxpbmcKKyAgICAgKiBzb3VyY2Uuc3Vic3RyaW5nKC4uKSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBpbmRleGVzLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIGlucHV0IHN0cmluZy4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgdGhlIFVURjE2IGluZGV4IHRvIHRoZSBjb2RlcG9pbnQgaW4gc291cmNlCisgICAgICogQHJldHVybiBzdHJpbmcgdmFsdWUgb2YgY2hhcjMyIGluIFVURjE2IGZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHZhbHVlT2YoU3RyaW5nIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChib3VuZHMoc291cmNlLCBvZmZzZXQxNikpIHsKKyAgICAgICAgY2FzZSBMRUFEX1NVUlJPR0FURV9CT1VOREFSWToKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2Uuc3Vic3RyaW5nKG9mZnNldDE2LCBvZmZzZXQxNiArIDIpOworICAgICAgICBjYXNlIFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWToKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2Uuc3Vic3RyaW5nKG9mZnNldDE2IC0gMSwgb2Zmc2V0MTYgKyAxKTsKKyAgICAgICAgZGVmYXVsdDogcmV0dXJuIHNvdXJjZS5zdWJzdHJpbmcob2Zmc2V0MTYsIG9mZnNldDE2ICsgMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgY29ycmVzcG9uZGluZyB0bworICAgICAqIFN0cmluZ0J1ZmZlci52YWx1ZU9mKGNvZGVwb2ludCBhdCBvZmZzZXQxNikuCisgICAgICogUmV0dXJucyBhIG9uZSBvciB0d28gY2hhciBzdHJpbmcgY29udGFpbmluZyB0aGUgVVRGLTMyIHZhbHVlIGluIFVURjE2CisgICAgICogZm9ybWF0LiBJZiBvZmZzZXQxNiBpbmRleGVzIGEgc3Vycm9nYXRlIGNoYXJhY3RlciwgdGhlIHdob2xlCisgICAgICogc3VwcGxlbWVudGFyeSBjb2RlcG9pbnQgd2lsbCBiZSByZXR1cm5lZC4KKyAgICAgKiBJZiBhIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UKKyAgICAgKiA8YSBocmVmPSIuLi9sYW5nL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5pc0xlZ2FsKCk8L2E+PC9jb2RlPiBvbiB0aGUKKyAgICAgKiBjb2RlcG9pbnQgYXQgb2Zmc2V0MTYgYmVmb3JlIGNhbGxpbmcuCisgICAgICogVGhlIHJlc3VsdCByZXR1cm5lZCB3aWxsIGJlIGEgbmV3bHkgY3JlYXRlZCBTdHJpbmcgb2J0YWluZWQgYnkgY2FsbGluZworICAgICAqIHNvdXJjZS5zdWJzdHJpbmcoLi4pIHdpdGggdGhlIGFwcHJvcHJpYXRlIGluZGV4ZXMuCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgaW5wdXQgc3RyaW5nIGJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgdGhlIFVURjE2IGluZGV4IHRvIHRoZSBjb2RlcG9pbnQgaW4gc291cmNlCisgICAgICogQHJldHVybiBzdHJpbmcgdmFsdWUgb2YgY2hhcjMyIGluIFVURjE2IGZvcm1hdAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHZhbHVlT2YoU3RyaW5nQnVmZmVyIHNvdXJjZSwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChib3VuZHMoc291cmNlLCBvZmZzZXQxNikpIHsKKyAgICAgICAgY2FzZSBMRUFEX1NVUlJPR0FURV9CT1VOREFSWToKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2Uuc3Vic3RyaW5nKG9mZnNldDE2LCBvZmZzZXQxNiArIDIpOworICAgICAgICBjYXNlIFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWToKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2Uuc3Vic3RyaW5nKG9mZnNldDE2IC0gMSwgb2Zmc2V0MTYgKyAxKTsKKyAgICAgICAgZGVmYXVsdDogcmV0dXJuIHNvdXJjZS5zdWJzdHJpbmcob2Zmc2V0MTYsIG9mZnNldDE2ICsgMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAgICogUmV0dXJucyBhIG9uZSBvciB0d28gY2hhciBzdHJpbmcgY29udGFpbmluZyB0aGUgVVRGLTMyIHZhbHVlIGluIFVURjE2CisgICAgICogZm9ybWF0LiBJZiBvZmZzZXQxNiBpbmRleGVzIGEgc3Vycm9nYXRlIGNoYXJhY3RlciwgdGhlIHdob2xlCisgICAgICogc3VwcGxlbWVudGFyeSBjb2RlcG9pbnQgd2lsbCBiZSByZXR1cm5lZCwgZXhjZXB0IHdoZW4gZWl0aGVyIHRoZQorICAgICAqIGxlYWRpbmcgb3IgdHJhaWxpbmcgc3Vycm9nYXRlIGNoYXJhY3RlciBsaWVzIG91dCBvZiB0aGUgc3BlY2lmaWVkCisgICAgICogc3ViYXJyYXkuIEluIHRoZSBsYXR0ZXIgY2FzZSwgb25seSB0aGUgc3Vycm9nYXRlIGNoYXJhY3RlciB3aXRoaW4KKyAgICAgKiBib3VuZHMgd2lsbCBiZSByZXR1cm5lZC4KKyAgICAgKiBJZiBhIHZhbGlkaXR5IGNoZWNrIGlzIHJlcXVpcmVkLCB1c2UKKyAgICAgKiA8YSBocmVmPSIuLi9sYW5nL1VDaGFyYWN0ZXIuaHRtbCNpc0xlZ2FsKGNoYXIpIj5pc0xlZ2FsKCk8L2E+PC9jb2RlPiBvbiB0aGUKKyAgICAgKiBjb2RlcG9pbnQgYXQgb2Zmc2V0MTYgYmVmb3JlIGNhbGxpbmcuCisgICAgICogVGhlIHJlc3VsdCByZXR1cm5lZCB3aWxsIGJlIGEgbmV3bHkgY3JlYXRlZCBTdHJpbmcgY29udGFpbmluZyB0aGUKKyAgICAgKiByZWxldmFudCBjaGFyYWN0ZXJzLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIGlucHV0IGNoYXIgYXJyYXkuCisgICAgICogQHBhcmFtIHN0YXJ0IHN0YXJ0IGluZGV4IG9mIHRoZSBzdWJhcnJheQorICAgICAqIEBwYXJhbSBsaW1pdCBlbmQgaW5kZXggb2YgdGhlIHN1YmFycmF5CisgICAgICogQHBhcmFtIG9mZnNldDE2IHRoZSBVVEYxNiBpbmRleCB0byB0aGUgY29kZXBvaW50IGluIHNvdXJjZSByZWxhdGl2ZSB0bworICAgICAqICAgICAgICBzdGFydAorICAgICAqIEByZXR1cm4gc3RyaW5nIHZhbHVlIG9mIGNoYXIzMiBpbiBVVEYxNiBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyB2YWx1ZU9mKGNoYXIgc291cmNlW10sIGludCBzdGFydCwgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChib3VuZHMoc291cmNlLCBzdGFydCwgbGltaXQsIG9mZnNldDE2KSkgeworICAgICAgICBjYXNlIExFQURfU1VSUk9HQVRFX0JPVU5EQVJZOgorICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoc291cmNlLCBzdGFydCArIG9mZnNldDE2LCAyKTsKKyAgICAgICAgY2FzZSBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlk6CisgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhzb3VyY2UsIHN0YXJ0ICsgb2Zmc2V0MTYgLSAxLCAyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhzb3VyY2UsIHN0YXJ0ICsgb2Zmc2V0MTYsIDEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFVURi0xNiBvZmZzZXQgdGhhdCBjb3JyZXNwb25kcyB0byBhIFVURi0zMiBvZmZzZXQuCisgICAgICogVXNlZCBmb3IgcmFuZG9tIGFjY2Vzcy4gU2VlIHRoZSA8YSBuYW1lPSJfdG9wXyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+CisgICAgICogZm9yIG5vdGVzIG9uIHJvdW5kdHJpcHBpbmcuCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgVVRGLTE2IHN0cmluZworICAgICAqIEBwYXJhbSBvZmZzZXQzMiBVVEYtMzIgb2Zmc2V0CisgICAgICogQHJldHVybiBVVEYtMTYgb2Zmc2V0CisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIG9mZnNldDMyIGlzIG91dCBvZiBib3VuZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZmluZE9mZnNldEZyb21Db2RlUG9pbnQoU3RyaW5nIHNvdXJjZSwgaW50IG9mZnNldDMyKQorICAgIHsKKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgaW50IHNpemUgPSBzb3VyY2UubGVuZ3RoKCksCisgICAgICAgICAgICByZXN1bHQgPSAwLAorICAgICAgICAgICAgY291bnQgPSBvZmZzZXQzMjsKKyAgICAgICAgaWYgKG9mZnNldDMyIDwgMCB8fCBvZmZzZXQzMiA+IHNpemUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDMyKTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAocmVzdWx0IDwgc2l6ZSAmJiBjb3VudCA+IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckF0KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShjaCkgJiYgKChyZXN1bHQgKyAxKSA8IHNpemUpICYmCisgICAgICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyAxKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50ICE9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDMyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFVURi0xNiBvZmZzZXQgdGhhdCBjb3JyZXNwb25kcyB0byBhIFVURi0zMiBvZmZzZXQuCisgICAgICogVXNlZCBmb3IgcmFuZG9tIGFjY2Vzcy4gU2VlIHRoZSA8YSBuYW1lPSJfdG9wXyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+CisgICAgICogZm9yIG5vdGVzIG9uIHJvdW5kdHJpcHBpbmcuCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgVVRGLTE2IHN0cmluZyBidWZmZXIKKyAgICAgKiBAcGFyYW0gb2Zmc2V0MzIgVVRGLTMyIG9mZnNldAorICAgICAqIEByZXR1cm4gVVRGLTE2IG9mZnNldAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBvZmZzZXQzMiBpcyBvdXQgb2YgYm91bmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGZpbmRPZmZzZXRGcm9tQ29kZVBvaW50KFN0cmluZ0J1ZmZlciBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldDMyKQorICAgIHsKKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgaW50IHNpemUgPSBzb3VyY2UubGVuZ3RoKCksCisgICAgICAgICAgICByZXN1bHQgPSAwLAorICAgICAgICAgICAgY291bnQgPSBvZmZzZXQzMjsKKyAgICAgICAgaWYgKG9mZnNldDMyIDwgMCB8fCBvZmZzZXQzMiA+IHNpemUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDMyKTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAocmVzdWx0IDwgc2l6ZSAmJiBjb3VudCA+IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckF0KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShjaCkgJiYgKChyZXN1bHQgKyAxKSA8IHNpemUpICYmCisgICAgICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyAxKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50ICE9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDMyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFVURi0xNiBvZmZzZXQgdGhhdCBjb3JyZXNwb25kcyB0byBhIFVURi0zMiBvZmZzZXQuCisgICAgICogVXNlZCBmb3IgcmFuZG9tIGFjY2Vzcy4gU2VlIHRoZSA8YSBuYW1lPSJfdG9wXyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+CisgICAgICogZm9yIG5vdGVzIG9uIHJvdW5kdHJpcHBpbmcuCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgVVRGLTE2IGNoYXIgYXJyYXkgd2hvc2Ugc3Vic3RyaW5nIGlzIHRvIGJlIGFuYWx5c2VkCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiB0aGUgc3Vic3RyaW5nIHRvIGJlIGFuYWx5c2VkCisgICAgICogQHBhcmFtIGxpbWl0IG9mZnNldCBvZiB0aGUgc3Vic3RyaW5nIHRvIGJlIGFuYWx5c2VkCisgICAgICogQHBhcmFtIG9mZnNldDMyIFVURi0zMiBvZmZzZXQgcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAgKiBAcmV0dXJuIFVURi0xNiBvZmZzZXQgcmVsYXRpdmUgdG8gc3RhcnQKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgb2Zmc2V0MzIgaXMgb3V0IG9mIGJvdW5kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBmaW5kT2Zmc2V0RnJvbUNvZGVQb2ludChjaGFyIHNvdXJjZVtdLCBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LCBpbnQgb2Zmc2V0MzIpCisgICAgeworICAgICAgICBjaGFyIGNoOworICAgICAgICBpbnQgcmVzdWx0ID0gc3RhcnQsCisgICAgICAgICAgICBjb3VudCA9IG9mZnNldDMyOworICAgICAgICBpZiAob2Zmc2V0MzIgPiBsaW1pdCAtIHN0YXJ0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDMyKTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAocmVzdWx0IDwgbGltaXQgJiYgY291bnQgPiAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNoID0gc291cmNlW3Jlc3VsdF07CisgICAgICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShjaCkgJiYgKChyZXN1bHQgKyAxKSA8IGxpbWl0KSAmJgorICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZVtyZXN1bHQgKyAxXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNvdW50IC0tOworICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50ICE9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MzIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQgLSBzdGFydDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBVVEYtMzIgb2Zmc2V0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZpcnN0IFVURi0zMiBib3VuZGFyeSBhdAorICAgICAqIG9yIGFmdGVyIHRoZSBnaXZlbiBVVEYtMTYgb2Zmc2V0LiBVc2VkIGZvciByYW5kb20gYWNjZXNzLiBTZWUgdGhlCisgICAgICogPGEgbmFtZT0iX3RvcF8iPmNsYXNzIGRlc2NyaXB0aW9uPC9hPiBmb3Igbm90ZXMgb24gcm91bmR0cmlwcGluZy48YnI+CisgICAgICogPGk+Tm90ZTogSWYgdGhlIFVURi0xNiBvZmZzZXQgaXMgaW50byB0aGUgbWlkZGxlIG9mIGEgc3Vycm9nYXRlIHBhaXIsCisgICAgICogdGhlbiB0aGUgVVRGLTMyIG9mZnNldCBvZiB0aGUgPHN0cm9uZz5sZWFkPC9zdHJvbmc+IG9mIHRoZSBwYWlyIGlzCisgICAgICogcmV0dXJuZWQuCisgICAgICogPC9pPgorICAgICAqIDxwPgorICAgICAqIFRvIGZpbmQgdGhlIFVURi0zMiBsZW5ndGggb2YgYSBzdHJpbmcsIHVzZToKKyAgICAgKiAgIDxwcmU+CisgICAgICogICAgIGxlbjMyID0gY291bnRDb2RlUG9pbnQoc291cmNlLCBzb3VyY2UubGVuZ3RoKCkpOworICAgICAqICAgPC9wcmU+CisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCB0byBhbmFseXNlCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQgPCBzb3VyY2UgdGV4dCBsZW5ndGguCisgICAgICogQHJldHVybiBVVEYtMzIgb2Zmc2V0CisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIG9mZnNldDE2IGlzIG91dCBvZiBib3VuZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZmluZENvZGVQb2ludE9mZnNldChTdHJpbmcgc291cmNlLCBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0MTYgPCAwIHx8IG9mZnNldDE2ID4gc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQxNik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgYm9vbGVhbiBoYWRMZWFkU3Vycm9nYXRlID0gZmFsc2U7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvZmZzZXQxNjsgKysgaSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKGhhZExlYWRTdXJyb2dhdGUgJiYgaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaGFkTGVhZFN1cnJvZ2F0ZSA9IGZhbHNlOyAgICAgICAgICAgLy8gY291bnQgdmFsaWQgdHJhaWwgYXMgemVybworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhZExlYWRTdXJyb2dhdGUgPSBpc0xlYWRTdXJyb2dhdGUoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgKysgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY291bnQgb3RoZXJzIGFzIDEKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgIGlmIChvZmZzZXQxNiA9PSBzb3VyY2UubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBlbmQgb2Ygc291cmNlIGJlaW5nIHRoZSBsZXNzIHNpZ25pZmljYW50IHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAgICAgLy8gc2hpZnQgcmVzdWx0IGJhY2sgdG8gdGhlIHN0YXJ0IG9mIHRoZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAgICBpZiAoaGFkTGVhZFN1cnJvZ2F0ZSAmJiAoaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KG9mZnNldDE2KSkpKSB7CisgICAgICAgICAgICByZXN1bHQgLS07CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFVURi0zMiBvZmZzZXQgY29ycmVzcG9uZGluZyB0byB0aGUgZmlyc3QgVVRGLTMyIGJvdW5kYXJ5IGF0CisgICAgICogdGhlIGdpdmVuIFVURi0xNiBvZmZzZXQuIFVzZWQgZm9yIHJhbmRvbSBhY2Nlc3MuIFNlZSB0aGUKKyAgICAgKiA8YSBuYW1lPSJfdG9wXyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+IGZvciBub3RlcyBvbiByb3VuZHRyaXBwaW5nLjxicj4KKyAgICAgKiA8aT5Ob3RlOiBJZiB0aGUgVVRGLTE2IG9mZnNldCBpcyBpbnRvIHRoZSBtaWRkbGUgb2YgYSBzdXJyb2dhdGUgcGFpciwKKyAgICAgKiB0aGVuIHRoZSBVVEYtMzIgb2Zmc2V0IG9mIHRoZSA8c3Ryb25nPmxlYWQ8L3N0cm9uZz4gb2YgdGhlIHBhaXIgaXMKKyAgICAgKiByZXR1cm5lZC4KKyAgICAgKiA8L2k+CisgICAgICogPHA+CisgICAgICogVG8gZmluZCB0aGUgVVRGLTMyIGxlbmd0aCBvZiBhIHN0cmluZywgdXNlOgorICAgICAqICAgPHByZT4KKyAgICAgKiAgICAgbGVuMzIgPSBjb3VudENvZGVQb2ludChzb3VyY2UpOworICAgICAqICAgPC9wcmU+CisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGV4dCB0byBhbmFseXNlCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURi0xNiBvZmZzZXQgPCBzb3VyY2UgdGV4dCBsZW5ndGguCisgICAgICogQHJldHVybiBVVEYtMzIgb2Zmc2V0CisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIG9mZnNldDE2IGlzIG91dCBvZiBib3VuZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZmluZENvZGVQb2ludE9mZnNldChTdHJpbmdCdWZmZXIgc291cmNlLCBpbnQgb2Zmc2V0MTYpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0MTYgPCAwIHx8IG9mZnNldDE2ID4gc291cmNlLmxlbmd0aCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQxNik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgY2hhciBjaDsKKyAgICAgICAgYm9vbGVhbiBoYWRMZWFkU3Vycm9nYXRlID0gZmFsc2U7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvZmZzZXQxNjsgKysgaSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQXQoaSk7CisgICAgICAgICAgICAgICAgaWYgKGhhZExlYWRTdXJyb2dhdGUgJiYgaXNUcmFpbFN1cnJvZ2F0ZShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaGFkTGVhZFN1cnJvZ2F0ZSA9IGZhbHNlOyAgICAgICAgICAgLy8gY291bnQgdmFsaWQgdHJhaWwgYXMgemVybworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhZExlYWRTdXJyb2dhdGUgPSBpc0xlYWRTdXJyb2dhdGUoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgKysgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY291bnQgb3RoZXJzIGFzIDEKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgIGlmIChvZmZzZXQxNiA9PSBzb3VyY2UubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBlbmQgb2Ygc291cmNlIGJlaW5nIHRoZSBsZXNzIHNpZ25pZmljYW50IHN1cnJvZ2F0ZSBjaGFyYWN0ZXIKKyAgICAgICAgLy8gc2hpZnQgcmVzdWx0IGJhY2sgdG8gdGhlIHN0YXJ0IG9mIHRoZSBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcgorICAgICAgICBpZiAoaGFkTGVhZFN1cnJvZ2F0ZSAmJiAoaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KG9mZnNldDE2KSkpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJlc3VsdCAtLTsKKyAgICAgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFVURi0zMiBvZmZzZXQgY29ycmVzcG9uZGluZyB0byB0aGUgZmlyc3QgVVRGLTMyIGJvdW5kYXJ5IGF0CisgICAgICogdGhlIGdpdmVuIFVURi0xNiBvZmZzZXQuIFVzZWQgZm9yIHJhbmRvbSBhY2Nlc3MuIFNlZSB0aGUKKyAgICAgKiA8YSBuYW1lPSJfdG9wXyI+Y2xhc3MgZGVzY3JpcHRpb248L2E+IGZvciBub3RlcyBvbiByb3VuZHRyaXBwaW5nLjxicj4KKyAgICAgKiA8aT5Ob3RlOiBJZiB0aGUgVVRGLTE2IG9mZnNldCBpcyBpbnRvIHRoZSBtaWRkbGUgb2YgYSBzdXJyb2dhdGUgcGFpciwKKyAgICAgKiB0aGVuIHRoZSBVVEYtMzIgb2Zmc2V0IG9mIHRoZSA8c3Ryb25nPmxlYWQ8L3N0cm9uZz4gb2YgdGhlIHBhaXIgaXMKKyAgICAgKiByZXR1cm5lZC4KKyAgICAgKiA8L2k+CisgICAgICogPHA+CisgICAgICogVG8gZmluZCB0aGUgVVRGLTMyIGxlbmd0aCBvZiBhIHN1YnN0cmluZywgdXNlOgorICAgICAqICAgPHByZT4KKyAgICAgKiAgICAgbGVuMzIgPSBjb3VudENvZGVQb2ludChzb3VyY2UsIHN0YXJ0LCBsaW1pdCk7CisgICAgICogICA8L3ByZT4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogQHBhcmFtIHNvdXJjZSB0ZXh0IHRvIGFuYWx5c2UKKyAgICAgKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIHRoZSBzdWJzdHJpbmcKKyAgICAgKiBAcGFyYW0gbGltaXQgb2Zmc2V0IG9mIHRoZSBzdWJzdHJpbmcKKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGLTE2IHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgICogQHJldHVybiBVVEYtMzIgb2Zmc2V0IHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIG9mZnNldDE2IGlzIG5vdCB3aXRoaW4gdGhlCisgICAgICogICAgICAgICAgICByYW5nZSBvZiBzdGFydCBhbmQgbGltaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgZmluZENvZGVQb2ludE9mZnNldChjaGFyIHNvdXJjZVtdLCBpbnQgc3RhcnQsIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIG9mZnNldDE2ICs9IHN0YXJ0OworICAgICAgICBpZiAob2Zmc2V0MTYgPiBsaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGJvb2xlYW4gaGFkTGVhZFN1cnJvZ2F0ZSA9IGZhbHNlOworCisgICAgICAgIGZvciAoaW50IGkgPSBzdGFydDsgaSA8IG9mZnNldDE2OyArKyBpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNoID0gc291cmNlW2ldOworICAgICAgICAgICAgICAgIGlmIChoYWRMZWFkU3Vycm9nYXRlICYmIGlzVHJhaWxTdXJyb2dhdGUoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIGhhZExlYWRTdXJyb2dhdGUgPSBmYWxzZTsgLy8gY291bnQgdmFsaWQgdHJhaWwgYXMgemVybworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhZExlYWRTdXJyb2dhdGUgPSBpc0xlYWRTdXJyb2dhdGUoY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgKysgcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY291bnQgb3RoZXJzIGFzIDEKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgIGlmIChvZmZzZXQxNiA9PSBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGVuZCBvZiBzb3VyY2UgYmVpbmcgdGhlIGxlc3Mgc2lnbmlmaWNhbnQgc3Vycm9nYXRlIGNoYXJhY3RlcgorICAgICAgICAvLyBzaGlmdCByZXN1bHQgYmFjayB0byB0aGUgc3RhcnQgb2YgdGhlIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyCisgICAgICAgIGlmIChoYWRMZWFkU3Vycm9nYXRlICYmIChpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZVtvZmZzZXQxNl0pKSkgeworICAgICAgICAgICAgcmVzdWx0IC0tOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgYSBzaW5nbGUgVVRGLTMyIHZhbHVlIHRvIHRoZSBlbmQgb2YgYSBTdHJpbmdCdWZmZXIuCisgICAgICogSWYgYSB2YWxpZGl0eSBjaGVjayBpcyByZXF1aXJlZCwgdXNlCisgICAgICogPGEgaHJlZj0iLi4vbGFuZy9VQ2hhcmFjdGVyLmh0bWwjaXNMZWdhbChjaGFyKSI+aXNMZWdhbCgpPC9hPjwvY29kZT4gb24KKyAgICAgKiBjaGFyMzIgYmVmb3JlIGNhbGxpbmcuCisgICAgICogQHBhcmFtIHRhcmdldCB0aGUgYnVmZmVyIHRvIGFwcGVuZCB0bworICAgICAqIEBwYXJhbSBjaGFyMzIgdmFsdWUgdG8gYXBwZW5kLgorICAgICAqIEByZXR1cm4gdGhlIHVwZGF0ZWQgU3RyaW5nQnVmZmVyCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gY2hhcjMyIGRvZXMgbm90IGxpZQorICAgICAqICAgICAgICAgICAgd2l0aGluIHRoZSByYW5nZSBvZiB0aGUgVW5pY29kZSBjb2RlcG9pbnRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgYXBwZW5kKFN0cmluZ0J1ZmZlciB0YXJnZXQsIGludCBjaGFyMzIpCisgICAgeworICAgICAgICAvLyBDaGVjayBmb3IgaXJyZWd1bGFyIHZhbHVlcworICAgICAgICBpZiAoY2hhcjMyIDwgQ09ERVBPSU5UX01JTl9WQUxVRSB8fCBjaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGNvZGVwb2ludDogIiArIEludGVnZXIudG9IZXhTdHJpbmcoY2hhcjMyKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBXcml0ZSB0aGUgVVRGLTE2IHZhbHVlcworICAgICAgICBpZiAoY2hhcjMyID49IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRhcmdldC5hcHBlbmQoZ2V0TGVhZFN1cnJvZ2F0ZShjaGFyMzIpKTsKKyAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKGdldFRyYWlsU3Vycm9nYXRlKGNoYXIzMikpOworICAgICAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRhcmdldC5hcHBlbmQoKGNoYXIpY2hhcjMyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIEpESyAxLjUgQVBJcy4gIEFwcGVuZCB0aGUgY29kZSBwb2ludCB0byB0aGUgYnVmZmVyIGFuZCByZXR1cm4gdGhlIGJ1ZmZlcgorICAgICAqIGFzIGEgY29udmVuaWVuY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHRoZSBidWZmZXIgdG8gYXBwZW5kIHRvCisgICAgICogQHBhcmFtIGNwIHRoZSBjb2RlIHBvaW50IHRvIGFwcGVuZAorICAgICAqIEByZXR1cm4gdGhlIHVwZGF0ZWQgU3RyaW5nQnVmZmVyCisgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgY3AgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludAorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgYXBwZW5kQ29kZVBvaW50KFN0cmluZ0J1ZmZlciB0YXJnZXQsIGludCBjcCkgeworICAgICAgICByZXR1cm4gYXBwZW5kKHRhcmdldCwgY3ApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgYSBjb2RlcG9pbnQgdG8gb2Zmc2V0MTYgcG9zaXRpb24gb2YgdGhlIGFyZ3VtZW50IGNoYXIgYXJyYXkuCisgICAgICogQHBhcmFtIHRhcmdldCBjaGFyIGFycmF5IHRvIGJlIGFwcGVuZCB3aXRoIHRoZSBuZXcgY29kZSBwb2ludAorICAgICAqIEBwYXJhbSBsaW1pdCBVVEYxNiBvZmZzZXQgd2hpY2ggdGhlIGNvZGVwb2ludCB3aWxsIGJlIGFwcGVuZGVkLgorICAgICAqIEBwYXJhbSBjaGFyMzIgY29kZSBwb2ludCB0byBiZSBhcHBlbmRlZAorICAgICAqIEByZXR1cm4gb2Zmc2V0IGFmdGVyIGNoYXIzMiBpbiB0aGUgYXJyYXkuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIGlmIHRoZXJlIGlzIG5vdCBlbm91Z2gKKyAgICAgKiAgICAgICAgICAgIHNwYWNlIGZvciB0aGUgYXBwZW5kLCBvciB3aGVuIGNoYXIzMiBkb2VzIG5vdCBsaWUgd2l0aGluCisgICAgICogICAgICAgICAgICB0aGUgcmFuZ2Ugb2YgdGhlIFVuaWNvZGUgY29kZXBvaW50cy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBhcHBlbmQoY2hhcltdIHRhcmdldCwgaW50IGxpbWl0LCBpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgLy8gQ2hlY2sgZm9yIGlycmVndWxhciB2YWx1ZXMKKyAgICAgICAgaWYgKGNoYXIzMiA8IENPREVQT0lOVF9NSU5fVkFMVUUgfHwgY2hhcjMyID4gQ09ERVBPSU5UX01BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBjb2RlcG9pbnQiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBXcml0ZSB0aGUgVVRGLTE2IHZhbHVlcworICAgICAgICBpZiAoY2hhcjMyID49IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRhcmdldFtsaW1pdCArK10gPSBnZXRMZWFkU3Vycm9nYXRlKGNoYXIzMik7CisgICAgICAgICAgICAgICAgdGFyZ2V0W2xpbWl0ICsrXSA9IGdldFRyYWlsU3Vycm9nYXRlKGNoYXIzMik7CisgICAgICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGFyZ2V0W2xpbWl0ICsrXSA9IChjaGFyKWNoYXIzMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGltaXQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIGNvZGVwb2ludHMgaW4gYSBVVEYxNiBTdHJpbmcKKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IHN0cmluZworICAgICAqIEByZXR1cm4gbnVtYmVyIG9mIGNvZGVwb2ludCBpbiBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb3VudENvZGVQb2ludChTdHJpbmcgc291cmNlKQorICAgIHsKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBudWxsIHx8IHNvdXJjZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmluZENvZGVQb2ludE9mZnNldChzb3VyY2UsIHNvdXJjZS5sZW5ndGgoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIGNvZGVwb2ludHMgaW4gYSBVVEYxNiBTdHJpbmcgYnVmZmVyCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYxNiBzdHJpbmcgYnVmZmVyCisgICAgICogQHJldHVybiBudW1iZXIgb2YgY29kZXBvaW50IGluIHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvdW50Q29kZVBvaW50KFN0cmluZ0J1ZmZlciBzb3VyY2UpCisgICAgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwgfHwgc291cmNlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmaW5kQ29kZVBvaW50T2Zmc2V0KHNvdXJjZSwgc291cmNlLmxlbmd0aCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgb2YgY29kZXBvaW50cyBpbiBhIFVURjE2IGNoYXIgYXJyYXkgc3Vic3RyaW5nCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYxNiBjaGFyIGFycmF5CisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiB0aGUgc3Vic3RyaW5nCisgICAgICogQHBhcmFtIGxpbWl0IG9mZnNldCBvZiB0aGUgc3Vic3RyaW5nCisgICAgICogQHJldHVybiBudW1iZXIgb2YgY29kZXBvaW50IGluIHRoZSBzdWJzdHJpbmcKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgc3RhcnQgYW5kIGxpbWl0IGFyZSBub3QgdmFsaWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgY291bnRDb2RlUG9pbnQoY2hhciBzb3VyY2VbXSwgaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgeworICAgICAgICBpZiAoc291cmNlID09IG51bGwgfHwgc291cmNlLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmluZENvZGVQb2ludE9mZnNldChzb3VyY2UsIHN0YXJ0LCBsaW1pdCwgbGltaXQgLSBzdGFydCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGEgY29kZSBwb2ludCBpbnRvIGEgVVRGMTYgcG9zaXRpb24uCisgICAgICogQWRqdXN0cyB0YXJnZXQgYWNjb3JkaW5nIGlmIHdlIGFyZSByZXBsYWNpbmcgYSBub24tc3VwcGxlbWVudGFyeQorICAgICAqIGNvZGVwb2ludCB3aXRoIGEgc3VwcGxlbWVudGFyeSBhbmQgdmljZSB2ZXJzYS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IHN0cmluZ2J1ZmZlcgorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBVVEYxNiBwb3NpdGlvbiB0byBpbnNlcnQgaW50bworICAgICAqIEBwYXJhbSBjaGFyMzIgY29kZSBwb2ludAorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzZXRDaGFyQXQoU3RyaW5nQnVmZmVyIHRhcmdldCwgaW50IG9mZnNldDE2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXIzMikKKyAgICB7CisgICAgICAgIGludCBjb3VudCA9IDE7CisgICAgICAgIGNoYXIgc2luZ2xlID0gdGFyZ2V0LmNoYXJBdChvZmZzZXQxNik7CisKKyAgICAgICAgaWYgKGlzU3Vycm9nYXRlKHNpbmdsZSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gcGFpcnMgb2YgdGhlIHN1cnJvZ2F0ZSB3aXRoIG9mZnNldDE2IGF0IHRoZSBsZWFkIGNoYXIgZm91bmQKKyAgICAgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKHNpbmdsZSkgJiYgKHRhcmdldC5sZW5ndGgoKSA+IG9mZnNldDE2ICsgMSkKKyAgICAgICAgICAgICAgICAgICAgJiYgaXNUcmFpbFN1cnJvZ2F0ZSh0YXJnZXQuY2hhckF0KG9mZnNldDE2ICsgMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gcGFpcnMgb2YgdGhlIHN1cnJvZ2F0ZSB3aXRoIG9mZnNldDE2IGF0IHRoZSB0cmFpbCBjaGFyCisgICAgICAgICAgICAgICAgICAgIC8vIGZvdW5kCisgICAgICAgICAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKHNpbmdsZSkgJiYgKG9mZnNldDE2ID4gMCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzTGVhZFN1cnJvZ2F0ZSh0YXJnZXQuY2hhckF0KG9mZnNldDE2IC0xKSkpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0MTYgLS07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB0YXJnZXQucmVwbGFjZShvZmZzZXQxNiwgb2Zmc2V0MTYgKyBjb3VudCwgdmFsdWVPZihjaGFyMzIpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSBjb2RlIHBvaW50IGludG8gYSBVVEYxNiBwb3NpdGlvbiBpbiBhIGNoYXIgYXJyYXkuCisgICAgICogQWRqdXN0cyB0YXJnZXQgYWNjb3JkaW5nIGlmIHdlIGFyZSByZXBsYWNpbmcgYSBub24tc3VwcGxlbWVudGFyeQorICAgICAqIGNvZGVwb2ludCB3aXRoIGEgc3VwcGxlbWVudGFyeSBhbmQgdmljZSB2ZXJzYS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IGNoYXIgYXJyYXkKKyAgICAgKiBAcGFyYW0gbGltaXQgbnVtYmVycyBvZiB2YWxpZCBjaGFycyBpbiB0YXJnZXQsIGRpZmZlcmVudCBmcm9tCisgICAgICogICAgICAgIHRhcmdldC5sZW5ndGguIGxpbWl0IGNvdW50cyB0aGUgbnVtYmVyIG9mIGNoYXJzIGluIHRhcmdldAorICAgICAqICAgICAgICB0aGF0IHJlcHJlc2VudHMgYSBzdHJpbmcsIG5vdCB0aGUgc2l6ZSBvZiBhcnJheSB0YXJnZXQuCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURjE2IHBvc2l0aW9uIHRvIGluc2VydCBpbnRvCisgICAgICogQHBhcmFtIGNoYXIzMiBjb2RlIHBvaW50CisgICAgICogQHJldHVybiBuZXcgbnVtYmVyIG9mIGNoYXJzIGluIHRhcmdldCB0aGF0IHJlcHJlc2VudHMgYSBzdHJpbmcKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgb2Zmc2V0MTYgaXMgb3V0IG9mIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgc2V0Q2hhckF0KGNoYXIgdGFyZ2V0W10sIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldDE2LCBpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldDE2ID49IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorICAgICAgICBpbnQgY291bnQgPSAxOworICAgICAgICBjaGFyIHNpbmdsZSA9IHRhcmdldFtvZmZzZXQxNl07CisKKyAgICAgICAgaWYgKGlzU3Vycm9nYXRlKHNpbmdsZSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gcGFpcnMgb2YgdGhlIHN1cnJvZ2F0ZSB3aXRoIG9mZnNldDE2IGF0IHRoZSBsZWFkIGNoYXIgZm91bmQKKyAgICAgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKHNpbmdsZSkgJiYgKHRhcmdldC5sZW5ndGggPiBvZmZzZXQxNiArIDEpICYmCisgICAgICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUodGFyZ2V0W29mZnNldDE2ICsgMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gcGFpcnMgb2YgdGhlIHN1cnJvZ2F0ZSB3aXRoIG9mZnNldDE2IGF0IHRoZSB0cmFpbCBjaGFyCisgICAgICAgICAgICAgICAgICAgIC8vIGZvdW5kCisgICAgICAgICAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKHNpbmdsZSkgJiYgKG9mZnNldDE2ID4gMCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzTGVhZFN1cnJvZ2F0ZSh0YXJnZXRbb2Zmc2V0MTYgLTFdKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQxNiAtLTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHN0ciA9IHZhbHVlT2YoY2hhcjMyKTsKKyAgICAgICAgaW50IHJlc3VsdCA9IGxpbWl0OworICAgICAgICBpbnQgc3RybGVuZ3RoID0gc3RyLmxlbmd0aCgpOworICAgICAgICB0YXJnZXRbb2Zmc2V0MTZdID0gc3RyLmNoYXJBdCgwKTsKKyAgICAgICAgaWYgKGNvdW50ID09IHN0cmxlbmd0aCkgeworICAgICAgICAgICAgaWYgKGNvdW50ID09IDIpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXRbb2Zmc2V0MTYgKyAxXSA9IHN0ci5jaGFyQXQoMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyB0aGlzIGlzIG5vdCBleGFjdCBtYXRjaCBpbiBzcGFjZSwgd2UnbGwgaGF2ZSB0byBkbyBzb21lCisgICAgICAgICAgICAvLyBzaGlmdGluZworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0YXJnZXQsIG9mZnNldDE2ICsgY291bnQsIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0MTYgKyBzdHJsZW5ndGgsIGxpbWl0IC0gKG9mZnNldDE2ICsgY291bnQpKTsKKyAgICAgICAgICAgIGlmIChjb3VudCA8IHN0cmxlbmd0aCkgeworICAgICAgICAgICAgICAgIC8vIGNoYXIzMiBpcyBhIHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIHRyeWluZyB0byBzcXVlZXplIGludG8KKyAgICAgICAgICAgICAgICAvLyBhIG5vbi1zdXBwbGVtZW50YXJ5IHNwYWNlCisgICAgICAgICAgICAgICAgdGFyZ2V0W29mZnNldDE2ICsgMV0gPSBzdHIuY2hhckF0KDEpOworICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0IDwgdGFyZ2V0Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICB0YXJnZXRbcmVzdWx0XSA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gY2hhcjMyIGlzIGEgbm9uLXN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIHRyeWluZyB0byBmaWxsCisgICAgICAgICAgICAgICAgLy8gaW50byBhIHN1cHBsZW1lbnRhcnkgc3BhY2UKKyAgICAgICAgICAgICAgICByZXN1bHQgLS07CisgICAgICAgICAgICAgICAgdGFyZ2V0W3Jlc3VsdF0gPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2hpZnRzIG9mZnNldDE2IGJ5IHRoZSBhcmd1bWVudCBudW1iZXIgb2YgY29kZXBvaW50cworICAgICAqIEBwYXJhbSBzb3VyY2Ugc3RyaW5nCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURjE2IHBvc2l0aW9uIHRvIHNoaWZ0CisgICAgICogQHBhcmFtIHNoaWZ0MzIgbnVtYmVyIG9mIGNvZGVwb2ludHMgdG8gc2hpZnQKKyAgICAgKiBAcmV0dXJuIG5ldyBzaGlmdGVkIG9mZnNldDE2CisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIHRoZSBuZXcgb2Zmc2V0MTYgaXMgb3V0IG9mCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBtb3ZlQ29kZVBvaW50T2Zmc2V0KFN0cmluZyBzb3VyY2UsIGludCBvZmZzZXQxNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzaGlmdDMyKQorICAgIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IG9mZnNldDE2OworICAgICAgICBpbnQgc2l6ZSA9IHNvdXJjZS5sZW5ndGgoKTsKKyAgICAgICAgaW50IGNvdW50OworICAgICAgICBjaGFyIGNoOworICAgICAgICBpZiAob2Zmc2V0MTY8MCB8fCBvZmZzZXQxNj5zaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQxNik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNoaWZ0MzIgPiAwICkgeworICAgICAgICAgICAgaWYgKHNoaWZ0MzIgKyBvZmZzZXQxNiA+IHNpemUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQxNik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCA9IHNoaWZ0MzI7CisgICAgICAgICAgICB3aGlsZSAocmVzdWx0IDwgc2l6ZSAmJiBjb3VudCA+IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckF0KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShjaCkgJiYgKChyZXN1bHQgKyAxKSA8IHNpemUpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY291bnQgLS07CisgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKG9mZnNldDE2ICsgc2hpZnQzMiA8IDApIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihvZmZzZXQxNik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGNvdW50PS1zaGlmdDMyOyBjb3VudD4wOyBjb3VudC0tKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LS07CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDwwKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQXQocmVzdWx0KTsKKyAgICAgICAgICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZShjaCkgJiYgcmVzdWx0PjAgJiYgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0LTEpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQtLTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50ICE9IDApICB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihzaGlmdDMyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNoaWZ0cyBvZmZzZXQxNiBieSB0aGUgYXJndW1lbnQgbnVtYmVyIG9mIGNvZGVwb2ludHMKKyAgICAgKiBAcGFyYW0gc291cmNlIHN0cmluZyBidWZmZXIKKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgVVRGMTYgcG9zaXRpb24gdG8gc2hpZnQKKyAgICAgKiBAcGFyYW0gc2hpZnQzMiBudW1iZXIgb2YgY29kZXBvaW50cyB0byBzaGlmdAorICAgICAqIEByZXR1cm4gbmV3IHNoaWZ0ZWQgb2Zmc2V0MTYKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgdGhlIG5ldyBvZmZzZXQxNiBpcyBvdXQgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm91bmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IG1vdmVDb2RlUG9pbnRPZmZzZXQoU3RyaW5nQnVmZmVyIHNvdXJjZSwgaW50IG9mZnNldDE2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNoaWZ0MzIpCisgICAgeworICAgICAgICBpbnQgcmVzdWx0ID0gb2Zmc2V0MTY7CisgICAgICAgIGludCBzaXplID0gc291cmNlLmxlbmd0aCgpOworICAgICAgICBpbnQgY291bnQ7CisgICAgICAgIGNoYXIgY2g7CisgICAgICAgIGlmIChvZmZzZXQxNjwwIHx8IG9mZnNldDE2PnNpemUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2hpZnQzMiA+IDAgKSB7CisgICAgICAgICAgICBpZiAoc2hpZnQzMiArIG9mZnNldDE2ID4gc2l6ZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvdW50ID0gc2hpZnQzMjsKKyAgICAgICAgICAgIHdoaWxlIChyZXN1bHQgPCBzaXplICYmIGNvdW50ID4gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQXQocmVzdWx0KTsKKyAgICAgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKGNoKSAmJiAoKHJlc3VsdCArIDEpIDwgc2l6ZSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyAxKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb3VudCAtLTsKKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAob2Zmc2V0MTYgKyBzaGlmdDMyIDwgMCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoY291bnQ9LXNoaWZ0MzI7IGNvdW50PjA7IGNvdW50LS0pIHsKKyAgICAgICAgICAgICAgICByZXN1bHQtLTsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0PDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJBdChyZXN1bHQpOworICAgICAgICAgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKGNoKSAmJiByZXN1bHQ+MCAmJiBpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQtMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY291bnQgIT0gMCkgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKHNoaWZ0MzIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2hpZnRzIG9mZnNldDE2IGJ5IHRoZSBhcmd1bWVudCBudW1iZXIgb2YgY29kZXBvaW50cyB3aXRoaW4gYSBzdWJhcnJheS4KKyAgICAgKiBAcGFyYW0gc291cmNlIGNoYXIgYXJyYXkKKyAgICAgKiBAcGFyYW0gc3RhcnQgcG9zaXRpb24gb2YgdGhlIHN1YmFycmF5IHRvIGJlIHBlcmZvcm1lZCBvbgorICAgICAqIEBwYXJhbSBsaW1pdCBwb3NpdGlvbiBvZiB0aGUgc3ViYXJyYXkgdG8gYmUgcGVyZm9ybWVkIG9uCisgICAgICogQHBhcmFtIG9mZnNldDE2IFVURjE2IHBvc2l0aW9uIHRvIHNoaWZ0IHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgICogQHBhcmFtIHNoaWZ0MzIgbnVtYmVyIG9mIGNvZGVwb2ludHMgdG8gc2hpZnQKKyAgICAgKiBAcmV0dXJuIG5ldyBzaGlmdGVkIG9mZnNldDE2IHJlbGF0aXZlIHRvIHN0YXJ0CisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIHRoZSBuZXcgb2Zmc2V0MTYgaXMgb3V0IG9mCisgICAgICogICAgICAgICAgICBib3VuZHMgd2l0aCByZXNwZWN0IHRvIHRoZSBzdWJhcnJheSBvciB0aGUgc3ViYXJyYXkgYm91bmRzCisgICAgICogICAgICAgICAgICBhcmUgb3V0IG9mIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IG1vdmVDb2RlUG9pbnRPZmZzZXQoY2hhciBzb3VyY2VbXSwgaW50IHN0YXJ0LCBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0MTYsIGludCBzaGlmdDMyKQorICAgIHsKKyAgICAgICAgaW50ICAgICAgICAgc2l6ZSA9IHNvdXJjZS5sZW5ndGg7CisgICAgICAgIGludCAgICAgICAgIGNvdW50OworICAgICAgICBjaGFyICAgICAgICBjaDsKKyAgICAgICAgaW50ICAgICAgICAgcmVzdWx0ID0gb2Zmc2V0MTYgKyBzdGFydDsKKyAgICAgICAgaWYgKHN0YXJ0PDAgfHwgbGltaXQ8c3RhcnQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKHN0YXJ0KTsKKyAgICAgICAgfQorICAgICAgICBpZiAobGltaXQ+c2l6ZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24obGltaXQpOworICAgICAgICB9CisgICAgICAgIGlmIChvZmZzZXQxNjwwIHx8IHJlc3VsdD5saW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24ob2Zmc2V0MTYpOworICAgICAgICB9CisgICAgICAgIGlmIChzaGlmdDMyID4gMCApIHsKKyAgICAgICAgICAgIGlmIChzaGlmdDMyICsgcmVzdWx0ID4gc2l6ZSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb3VudCA9IHNoaWZ0MzI7CisgICAgICAgICAgICB3aGlsZSAocmVzdWx0IDwgbGltaXQgJiYgY291bnQgPiAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNoID0gc291cmNlW3Jlc3VsdF07CisgICAgICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShjaCkgJiYgKHJlc3VsdCsxIDwgbGltaXQpICYmCisgICAgICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZVtyZXN1bHQrMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY291bnQgLS07CisgICAgICAgICAgICAgICAgcmVzdWx0ICsrOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHJlc3VsdCArIHNoaWZ0MzIgPCBzdGFydCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGNvdW50PS1zaGlmdDMyOyBjb3VudD4wOyBjb3VudC0tKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LS07CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdDxzdGFydCkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2ggPSBzb3VyY2VbcmVzdWx0XTsKKyAgICAgICAgICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZShjaCkgJiYgcmVzdWx0PnN0YXJ0ICYmIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2VbcmVzdWx0LTFdKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQtLTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvdW50ICE9IDApICB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbihzaGlmdDMyKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQgLT0gc3RhcnQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5zZXJ0cyBjaGFyMzIgY29kZXBvaW50IGludG8gdGFyZ2V0IGF0IHRoZSBhcmd1bWVudCBvZmZzZXQxNi4KKyAgICAgKiBJZiB0aGUgb2Zmc2V0MTYgaXMgaW4gdGhlIG1pZGRsZSBvZiBhIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50LCBjaGFyMzIKKyAgICAgKiB3aWxsIGJlIGluc2VydGVkIGFmdGVyIHRoZSBzdXBwbGVtZW50YXJ5IGNvZGVwb2ludC4KKyAgICAgKiBUaGUgbGVuZ3RoIG9mIHRhcmdldCBpbmNyZWFzZXMgYnkgb25lIGlmIGNvZGVwb2ludCBpcyBub24tc3VwcGxlbWVudGFyeSwKKyAgICAgKiAyIG90aGVyd2lzZS4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgb3ZlcmFsbCBlZmZlY3QgaXMgZXhhY3RseSBhcyBpZiB0aGUgYXJndW1lbnQgd2VyZSBjb252ZXJ0ZWQgdG8gYQorICAgICAqIHN0cmluZyBieSB0aGUgbWV0aG9kIHZhbHVlT2YoY2hhcikgYW5kIHRoZSBjaGFyYWN0ZXJzIGluIHRoYXQgc3RyaW5nCisgICAgICogd2VyZSB0aGVuIGluc2VydGVkIGludG8gdGFyZ2V0IGF0IHRoZSBwb3NpdGlvbiBpbmRpY2F0ZWQgYnkgb2Zmc2V0MTYuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoZSBvZmZzZXQgYXJndW1lbnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCwgYW5kIGxlc3MgdGhhbgorICAgICAqIG9yIGVxdWFsIHRvIHRoZSBsZW5ndGggb2Ygc291cmNlLgorICAgICAqIEBwYXJhbSB0YXJnZXQgc3RyaW5nIGJ1ZmZlciB0byBpbnNlcnQgdG8KKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgb2Zmc2V0IHdoaWNoIGNoYXIzMiB3aWxsIGJlIGluc2VydGVkIGluCisgICAgICogQHBhcmFtIGNoYXIzMiBjb2RlcG9pbnQgdG8gYmUgaW5zZXJ0ZWQKKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRhcmdldAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB0aHJvd24gaWYgb2Zmc2V0MTYgaXMgaW52YWxpZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBpbnNlcnQoU3RyaW5nQnVmZmVyIHRhcmdldCwgaW50IG9mZnNldDE2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHN0ciA9IHZhbHVlT2YoY2hhcjMyKTsKKyAgICAgICAgaWYgKG9mZnNldDE2ICE9IHRhcmdldC5sZW5ndGgoKSAmJgorICAgICAgICAgICAgYm91bmRzKHRhcmdldCwgb2Zmc2V0MTYpID09IFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSkgeworICAgICAgICAgICAgb2Zmc2V0MTYgKys7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0Lmluc2VydChvZmZzZXQxNiwgc3RyKTsKKyAgICAgICAgcmV0dXJuIHRhcmdldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnNlcnRzIGNoYXIzMiBjb2RlcG9pbnQgaW50byB0YXJnZXQgYXQgdGhlIGFyZ3VtZW50IG9mZnNldDE2LgorICAgICAqIElmIHRoZSBvZmZzZXQxNiBpcyBpbiB0aGUgbWlkZGxlIG9mIGEgc3VwcGxlbWVudGFyeSBjb2RlcG9pbnQsIGNoYXIzMgorICAgICAqIHdpbGwgYmUgaW5zZXJ0ZWQgYWZ0ZXIgdGhlIHN1cHBsZW1lbnRhcnkgY29kZXBvaW50LgorICAgICAqIExpbWl0IGluY3JlYXNlcyBieSBvbmUgaWYgY29kZXBvaW50IGlzIG5vbi1zdXBwbGVtZW50YXJ5LCAyIG90aGVyd2lzZS4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgb3ZlcmFsbCBlZmZlY3QgaXMgZXhhY3RseSBhcyBpZiB0aGUgYXJndW1lbnQgd2VyZSBjb252ZXJ0ZWQgdG8gYQorICAgICAqIHN0cmluZyBieSB0aGUgbWV0aG9kIHZhbHVlT2YoY2hhcikgYW5kIHRoZSBjaGFyYWN0ZXJzIGluIHRoYXQgc3RyaW5nCisgICAgICogd2VyZSB0aGVuIGluc2VydGVkIGludG8gdGFyZ2V0IGF0IHRoZSBwb3NpdGlvbiBpbmRpY2F0ZWQgYnkgb2Zmc2V0MTYuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoZSBvZmZzZXQgYXJndW1lbnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCwgYW5kIGxlc3MgdGhhbgorICAgICAqIG9yIGVxdWFsIHRvIHRoZSBsaW1pdC4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0IGNoYXIgYXJyYXkgdG8gaW5zZXJ0IHRvCisgICAgICogQHBhcmFtIGxpbWl0IGVuZCBpbmRleCBvZiB0aGUgY2hhciBhcnJheSwgbGltaXQgPD0gdGFyZ2V0Lmxlbmd0aAorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBvZmZzZXQgd2hpY2ggY2hhcjMyIHdpbGwgYmUgaW5zZXJ0ZWQgaW4KKyAgICAgKiBAcGFyYW0gY2hhcjMyIGNvZGVwb2ludCB0byBiZSBpbnNlcnRlZAorICAgICAqIEByZXR1cm4gbmV3IGxpbWl0IHNpemUKKyAgICAgKiBAZXhjZXB0aW9uIEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gdGhyb3duIGlmIG9mZnNldDE2IGlzIGludmFsaWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgaW5zZXJ0KGNoYXIgdGFyZ2V0W10sIGludCBsaW1pdCwgaW50IG9mZnNldDE2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhcjMyKQorICAgIHsKKyAgICAgICAgU3RyaW5nIHN0ciA9IHZhbHVlT2YoY2hhcjMyKTsKKyAgICAgICAgaWYgKG9mZnNldDE2ICE9IGxpbWl0ICYmCisgICAgICAgICAgICBib3VuZHModGFyZ2V0LCAwLCBsaW1pdCwgb2Zmc2V0MTYpID09IFRSQUlMX1NVUlJPR0FURV9CT1VOREFSWSkgeworICAgICAgICAgICAgb2Zmc2V0MTYgKys7CisgICAgICAgIH0KKyAgICAgICAgaW50IHNpemUgPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIGlmIChsaW1pdCArIHNpemUgPiB0YXJnZXQubGVuZ3RoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uKG9mZnNldDE2ICsgc2l6ZSk7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0YXJnZXQsIG9mZnNldDE2LCB0YXJnZXQsIG9mZnNldDE2ICsgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCAtIG9mZnNldDE2KTsKKyAgICAgICAgdGFyZ2V0W29mZnNldDE2XSA9IHN0ci5jaGFyQXQoMCk7CisgICAgICAgIGlmIChzaXplID09IDIpIHsKKyAgICAgICAgICAgIHRhcmdldFtvZmZzZXQxNiArIDFdID0gc3RyLmNoYXJBdCgxKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGltaXQgKyBzaXplOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgdGhlIGNvZGVwb2ludCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGluIHRoaXMgdGFyZ2V0CisgICAgICogKHNob3J0ZW5pbmcgdGFyZ2V0IGJ5IDEgY2hhcmFjdGVyIGlmIHRoZSBjb2RlcG9pbnQgaXMgYQorICAgICAqIG5vbi1zdXBwbGVtZW50YXJ5LCAyIG90aGVyd2lzZSkuCisgICAgICogQHBhcmFtIHRhcmdldCBzdHJpbmcgYnVmZmVyIHRvIHJlbW92ZSBjb2RlcG9pbnQgZnJvbQorICAgICAqIEBwYXJhbSBvZmZzZXQxNiBvZmZzZXQgd2hpY2ggdGhlIGNvZGVwb2ludCB3aWxsIGJlIHJlbW92ZWQKKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRhcmdldAorICAgICAqIEBleGNlcHRpb24gSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiB0aHJvd24gaWYgb2Zmc2V0MTYgaXMgaW52YWxpZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0J1ZmZlciBkZWxldGUoU3RyaW5nQnVmZmVyIHRhcmdldCwgaW50IG9mZnNldDE2KQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ID0gMTsKKyAgICAgICAgc3dpdGNoIChib3VuZHModGFyZ2V0LCBvZmZzZXQxNikpIHsKKyAgICAgICAgY2FzZSBMRUFEX1NVUlJPR0FURV9CT1VOREFSWToKKyAgICAgICAgICAgIGNvdW50ICsrOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVFJBSUxfU1VSUk9HQVRFX0JPVU5EQVJZOgorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICBvZmZzZXQxNiAtLTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHRhcmdldC5kZWxldGUob2Zmc2V0MTYsIG9mZnNldDE2ICsgY291bnQpOworICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgdGhlIGNvZGVwb2ludCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGluIHRoaXMgdGFyZ2V0CisgICAgICogKHNob3J0ZW5pbmcgdGFyZ2V0IGJ5IDEgY2hhcmFjdGVyIGlmIHRoZSBjb2RlcG9pbnQgaXMgYQorICAgICAqIG5vbi1zdXBwbGVtZW50YXJ5LCAyIG90aGVyd2lzZSkuCisgICAgICogQHBhcmFtIHRhcmdldCBzdHJpbmcgYnVmZmVyIHRvIHJlbW92ZSBjb2RlcG9pbnQgZnJvbQorICAgICAqIEBwYXJhbSBsaW1pdCBlbmQgaW5kZXggb2YgdGhlIGNoYXIgYXJyYXksIGxpbWl0IDw9IHRhcmdldC5sZW5ndGgKKyAgICAgKiBAcGFyYW0gb2Zmc2V0MTYgb2Zmc2V0IHdoaWNoIHRoZSBjb2RlcG9pbnQgd2lsbCBiZSByZW1vdmVkCisgICAgICogQHJldHVybiBhIG5ldyBsaW1pdCBzaXplCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biBpZiBvZmZzZXQxNiBpcyBpbnZhbGlkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGRlbGV0ZShjaGFyIHRhcmdldFtdLCBpbnQgbGltaXQsIGludCBvZmZzZXQxNikKKyAgICB7CisgICAgICAgIGludCBjb3VudCA9IDE7CisgICAgICAgIHN3aXRjaCAoYm91bmRzKHRhcmdldCwgMCwgbGltaXQsIG9mZnNldDE2KSkgeworICAgICAgICBjYXNlIExFQURfU1VSUk9HQVRFX0JPVU5EQVJZOgorICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUUkFJTF9TVVJST0dBVEVfQk9VTkRBUlk6CisgICAgICAgICAgICBjb3VudCArKzsKKyAgICAgICAgICAgIG9mZnNldDE2IC0tOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgU3lzdGVtLmFycmF5Y29weSh0YXJnZXQsIG9mZnNldDE2ICsgY291bnQsIHRhcmdldCwgb2Zmc2V0MTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQgLSAob2Zmc2V0MTYgKyBjb3VudCkpOworICAgICAgICB0YXJnZXRbbGltaXQgLSBjb3VudF0gPSAwOworICAgICAgICByZXR1cm4gbGltaXQgLSBjb3VudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCB3aXRoaW4gdGhlIGFyZ3VtZW50IFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyBvZgorICAgICAqIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBhcmd1bWVudCBjb2RlcG9pbnQuIEkuZS4sIHRoZSBzbWFsbGVzdAorICAgICAqIGluZGV4IDxjb2RlPmk8L2NvZGU+IHN1Y2ggdGhhdCA8Y29kZT5VVEYxNi5jaGFyQXQoc291cmNlLCBpKSA9PQorICAgICAqIGNoYXIzMjwvY29kZT4gaXMgdHJ1ZS4KKyAgICAgKiA8cD5JZiBubyBzdWNoIGNoYXJhY3RlciBvY2N1cnMgaW4gdGhpcyBzdHJpbmcsIHRoZW4gLTEgaXMgcmV0dXJuZWQuPC9wPgorICAgICAqIDxwPgorICAgICAqIEV4YW1wbGVzOjxicj4KKyAgICAgKiBVVEYxNi5pbmRleE9mKCJhYmMiLCAnYScpIHJldHVybnMgMDxicj4KKyAgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweDEwMDAwKSByZXR1cm5zIDM8YnI+CisgICAgICogVVRGMTYuaW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgMHhkODAwKSByZXR1cm5zIC0xPGJyPgorICAgICAqIDwvcD4KKyAgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QKKyAgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQKKyAgICAgKiBAcGFyYW0gY2hhcjMyIGNvZGVwb2ludCB0byBzZWFyY2ggZm9yCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGNvZGVwb2ludCBpbiB0aGUKKyAgICAgKiAgICAgICAgIGFyZ3VtZW50IFVuaWNvZGUgc3RyaW5nLCBvciAtMSBpZiB0aGUgY29kZXBvaW50IGRvZXMgbm90IG9jY3VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGluZGV4T2YoU3RyaW5nIHNvdXJjZSwgaW50IGNoYXIzMikKKyAgICB7CisgICAgICAgIGlmIChjaGFyMzIgPCBDT0RFUE9JTlRfTUlOX1ZBTFVFIHx8CisgICAgICAgICAgICBjaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgY2hhcjMyIGlzIG5vdCBhIHZhbGlkIGNvZGVwb2ludCIpOworICAgICAgICB9CisgICAgICAgIC8vIG5vbi1zdXJyb2dhdGUgYm1wCisgICAgICAgIGlmIChjaGFyMzIgPCBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgfHwKKyAgICAgICAgICAgIChjaGFyMzIgPiBUUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFICYmCisgICAgICAgICAgICAgY2hhcjMyIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlLmluZGV4T2YoKGNoYXIpY2hhcjMyKTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdXJyb2dhdGUKKyAgICAgICAgaWYgKGNoYXIzMiA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gc291cmNlLmluZGV4T2YoKGNoYXIpY2hhcjMyKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2hhcjMyKSAmJgorICAgICAgICAgICAgICAgICAgICAocmVzdWx0IDwgc291cmNlLmxlbmd0aCgpIC0gMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdCArIDEpKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXhPZihzb3VyY2UsIGNoYXIzMiwgcmVzdWx0ICsgMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPiAwICYmCisgICAgICAgICAgICAgICAgICAgIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdCAtIDEpKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXhPZihzb3VyY2UsIGNoYXIzMiwgcmVzdWx0ICsgMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAvLyBzdXBwbGVtZW50YXJ5CisgICAgICAgIFN0cmluZyBjaGFyMzJzdHIgPSB0b1N0cmluZyhjaGFyMzIpOworICAgICAgICByZXR1cm4gc291cmNlLmluZGV4T2YoY2hhcjMyc3RyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCB3aXRoaW4gdGhlIGFyZ3VtZW50IFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyBvZgorICAgICAqIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBhcmd1bWVudCBzdHJpbmcgc3RyLiBUaGlzIG1ldGhvZCBpcworICAgICAqIGltcGxlbWVudGVkIGJhc2VkIG9uIGNvZGVwb2ludHMsIGhlbmNlIGEgImxlYWQgc3Vycm9nYXRlIGNoYXJhY3RlciArCisgICAgICogdHJhaWwgc3Vycm9nYXRlIGNoYXJhY3RlciIgaXMgdHJlYXRlZCBhcyBvbmUgZW50aXR5LmUKKyAgICAgKiBIZW5jZSBpZiB0aGUgc3RyIHN0YXJ0cyB3aXRoIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgYXQgaW5kZXggMCwgYQorICAgICAqIHNvdXJjZSB3aXRoIGEgbGVhZGluZyBhIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgYmVmb3JlIHN0ciBmb3VuZCBhdCBpbgorICAgICAqIHNvdXJjZSB3aWxsIG5vdCBoYXZlIGEgdmFsaWQgbWF0Y2guIFZpY2UgdmVyc2EgZm9yIGxlYWQgc3Vycm9nYXRlcworICAgICAqIHRoYXQgZW5kcyBzdHIuCisgICAgICogU2VlIGV4YW1wbGUgYmVsb3cuCisgICAgICogPHA+SWYgbm8gc3VjaCBzdHJpbmcgc3RyIG9jY3VycyBpbiB0aGlzIHNvdXJjZSwgdGhlbiAtMSBpcyByZXR1cm5lZC4KKyAgICAgKiA8L3A+IDxwPgorICAgICAqIEV4YW1wbGVzOjxicj4KKyAgICAgKiBVVEYxNi5pbmRleE9mKCJhYmMiLCAiYWIiKSByZXR1cm5zIDA8YnI+CisgICAgICogVVRGMTYuaW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMFx1ZGMwMCIpIHJldHVybnMgMzxicj4KKyAgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwIikgcmV0dXJucyAtMTxicj4KKyAgICAgKiA8L3A+CisgICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90CisgICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgdGhhdCB3aWxsIGJlIHNlYXJjaGVkCisgICAgICogQHBhcmFtIHN0ciBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgdG8gc2VhcmNoIGZvcgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBjb2RlcG9pbnQgaW4gdGhlCisgICAgICogICAgICAgICBhcmd1bWVudCBVbmljb2RlIHN0cmluZywgb3IgLTEgaWYgdGhlIGNvZGVwb2ludCBkb2VzIG5vdCBvY2N1ci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBpbmRleE9mKFN0cmluZyBzb3VyY2UsIFN0cmluZyBzdHIpCisgICAgeworICAgICAgICBpbnQgc3RyTGVuZ3RoID0gc3RyLmxlbmd0aCgpOworICAgICAgICAvLyBub24tc3Vycm9nYXRlIGVuZHMKKyAgICAgICAgaWYgKCFpc1RyYWlsU3Vycm9nYXRlKHN0ci5jaGFyQXQoMCkpICYmCisgICAgICAgICAgICAhaXNMZWFkU3Vycm9nYXRlKHN0ci5jaGFyQXQoc3RyTGVuZ3RoIC0gMSkpKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlLmluZGV4T2Yoc3RyKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCByZXN1bHQgICAgPSBzb3VyY2UuaW5kZXhPZihzdHIpOworICAgICAgICBpbnQgcmVzdWx0RW5kID0gcmVzdWx0ICsgc3RyTGVuZ3RoOworICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgIC8vIGNoZWNrIGxhc3QgY2hhcmFjdGVyCisgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKHN0ci5jaGFyQXQoc3RyTGVuZ3RoIC0gMSkpICYmCisgICAgICAgICAgICAgICAgKHJlc3VsdCA8IHNvdXJjZS5sZW5ndGgoKSAtIDEpICYmCisgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdEVuZCArIDEpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpbmRleE9mKHNvdXJjZSwgc3RyLCByZXN1bHRFbmQgKyAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGNoZWNrIGZpcnN0IGNoYXJhY3RlciB3aGljaCBpcyBhIHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUoc3RyLmNoYXJBdCgwKSkgJiYgcmVzdWx0ID4gMCAmJgorICAgICAgICAgICAgICAgIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdCAtIDEpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpbmRleE9mKHNvdXJjZSwgc3RyLCByZXN1bHRFbmQgKyAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mCisgICAgICogdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGFyZ3VtZW50IGNvZGVwb2ludC4gSS5lLiwgdGhlIHNtYWxsZXN0CisgICAgICogaW5kZXggaSBzdWNoIHRoYXQ6IDxicj4KKyAgICAgKiAoVVRGMTYuY2hhckF0KHNvdXJjZSwgaSkgPT0gY2hhcjMyICYmIGkgPj0gZnJvbUluZGV4KSBpcyB0cnVlLgorICAgICAqIDxwPklmIG5vIHN1Y2ggY2hhcmFjdGVyIG9jY3VycyBpbiB0aGlzIHN0cmluZywgdGhlbiAtMSBpcyByZXR1cm5lZC48L3A+CisgICAgICogPHA+CisgICAgICogRXhhbXBsZXM6PGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiYyIsICdhJywgMSkgcmV0dXJucyAtMTxicj4KKyAgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweDEwMDAwLCAxKSByZXR1cm5zIDM8YnI+CisgICAgICogVVRGMTYuaW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgMHhkODAwLCAxKSByZXR1cm5zIC0xPGJyPgorICAgICAqIDwvcD4KKyAgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QKKyAgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQKKyAgICAgKiBAcGFyYW0gY2hhcjMyIGNvZGVwb2ludCB0byBzZWFyY2ggZm9yCisgICAgICogQHBhcmFtIGZyb21JbmRleCB0aGUgaW5kZXggdG8gc3RhcnQgdGhlIHNlYXJjaCBmcm9tLgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBjb2RlcG9pbnQgaW4gdGhlCisgICAgICogICAgICAgICBhcmd1bWVudCBVbmljb2RlIHN0cmluZyBhdCBvciBhZnRlciBmcm9tSW5kZXgsIG9yIC0xIGlmIHRoZQorICAgICAqICAgICAgICAgY29kZXBvaW50IGRvZXMgbm90IG9jY3VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGluZGV4T2YoU3RyaW5nIHNvdXJjZSwgaW50IGNoYXIzMiwgaW50IGZyb21JbmRleCkKKyAgICB7CisgICAgICAgIGlmIChjaGFyMzIgPCBDT0RFUE9JTlRfTUlOX1ZBTFVFIHx8IGNoYXIzMiA+IENPREVQT0lOVF9NQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBcmd1bWVudCBjaGFyMzIgaXMgbm90IGEgdmFsaWQgY29kZXBvaW50Iik7CisgICAgICAgIH0KKyAgICAgICAgLy8gbm9uLXN1cnJvZ2F0ZSBibXAKKyAgICAgICAgaWYgKGNoYXIzMiA8IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSB8fAorICAgICAgICAgICAgKGNoYXIzMiA+IFRSQUlMX1NVUlJPR0FURV9NQVhfVkFMVUUgJiYKKyAgICAgICAgICAgICBjaGFyMzIgPCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UuaW5kZXhPZigoY2hhciljaGFyMzIsIGZyb21JbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3Vycm9nYXRlCisgICAgICAgIGlmIChjaGFyMzIgPCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IHNvdXJjZS5pbmRleE9mKChjaGFyKWNoYXIzMiwgZnJvbUluZGV4KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoKGNoYXIpY2hhcjMyKSAmJgorICAgICAgICAgICAgICAgICAgICAocmVzdWx0IDwgc291cmNlLmxlbmd0aCgpIC0gMSkgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdCArIDEpKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXhPZihzb3VyY2UsIGNoYXIzMiwgcmVzdWx0ICsgMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPiAwICYmCisgICAgICAgICAgICAgICAgICAgIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdCAtIDEpKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXhPZihzb3VyY2UsIGNoYXIzMiwgcmVzdWx0ICsgMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAvLyBzdXBwbGVtZW50YXJ5CisgICAgICAgIFN0cmluZyBjaGFyMzJzdHIgPSB0b1N0cmluZyhjaGFyMzIpOworICAgICAgICByZXR1cm4gc291cmNlLmluZGV4T2YoY2hhcjMyc3RyLCBmcm9tSW5kZXgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mCisgICAgICogdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGFyZ3VtZW50IHN0cmluZyBzdHIuIFRoaXMgbWV0aG9kIGlzCisgICAgICogaW1wbGVtZW50ZWQgYmFzZWQgb24gY29kZXBvaW50cywgaGVuY2UgYSAibGVhZCBzdXJyb2dhdGUgY2hhcmFjdGVyICsKKyAgICAgKiB0cmFpbCBzdXJyb2dhdGUgY2hhcmFjdGVyIiBpcyB0cmVhdGVkIGFzIG9uZSBlbnRpdHkuZQorICAgICAqIEhlbmNlIGlmIHRoZSBzdHIgc3RhcnRzIHdpdGggdHJhaWwgc3Vycm9nYXRlIGNoYXJhY3RlciBhdCBpbmRleCAwLCBhCisgICAgICogc291cmNlIHdpdGggYSBsZWFkaW5nIGEgc3Vycm9nYXRlIGNoYXJhY3RlciBiZWZvcmUgc3RyIGZvdW5kIGF0IGluCisgICAgICogc291cmNlIHdpbGwgbm90IGhhdmUgYSB2YWxpZCBtYXRjaC4gVmljZSB2ZXJzYSBmb3IgbGVhZCBzdXJyb2dhdGVzCisgICAgICogdGhhdCBlbmRzIHN0ci4KKyAgICAgKiBTZWUgZXhhbXBsZSBiZWxvdy4KKyAgICAgKiA8cD5JZiBubyBzdWNoIHN0cmluZyBzdHIgb2NjdXJzIGluIHRoaXMgc291cmNlLCB0aGVuIC0xIGlzIHJldHVybmVkLgorICAgICAqIDwvcD4gPHA+CisgICAgICogRXhhbXBsZXM6PGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiYyIsICJhYiIsIDApIHJldHVybnMgMDxicj4KKyAgICAgKiBVVEYxNi5pbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAiXHVkODAwXHVkYzAwIiwgMCkgcmV0dXJucyAzPGJyPgorICAgICAqIFVURjE2LmluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsICJcdWQ4MDBcdWRjMDAiLCAyKSByZXR1cm5zIDM8YnI+CisgICAgICogVVRGMTYuaW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMCIsIDApIHJldHVybnMgLTE8YnI+CisgICAgICogPC9wPgorICAgICAqIE5vdGUgdGhpcyBtZXRob2QgaXMgcHJvdmlkZWQgYXMgc3VwcG9ydCB0byBqZGsgMS4zLCB3aGljaCBkb2VzIG5vdAorICAgICAqIHN1cHBvcnQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIHRvIGl0cyBmdWxsZXN0LgorICAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRoYXQgd2lsbCBiZSBzZWFyY2hlZAorICAgICAqIEBwYXJhbSBzdHIgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRvIHNlYXJjaCBmb3IKKyAgICAgKiBAcGFyYW0gZnJvbUluZGV4IHRoZSBpbmRleCB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGNvZGVwb2ludCBpbiB0aGUKKyAgICAgKiAgICAgICAgIGFyZ3VtZW50IFVuaWNvZGUgc3RyaW5nLCBvciAtMSBpZiB0aGUgY29kZXBvaW50IGRvZXMgbm90IG9jY3VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGluZGV4T2YoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHN0ciwgaW50IGZyb21JbmRleCkKKyAgICB7CisgICAgICAgIGludCBzdHJMZW5ndGggPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIC8vIG5vbi1zdXJyb2dhdGUgZW5kcworICAgICAgICBpZiAoIWlzVHJhaWxTdXJyb2dhdGUoc3RyLmNoYXJBdCgwKSkgJiYKKyAgICAgICAgICAgICFpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UuaW5kZXhPZihzdHIsIGZyb21JbmRleCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVzdWx0ICAgID0gc291cmNlLmluZGV4T2Yoc3RyLCBmcm9tSW5kZXgpOworICAgICAgICBpbnQgcmVzdWx0RW5kID0gcmVzdWx0ICsgc3RyTGVuZ3RoOworICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgIC8vIGNoZWNrIGxhc3QgY2hhcmFjdGVyCisgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKHN0ci5jaGFyQXQoc3RyTGVuZ3RoIC0gMSkpICYmCisgICAgICAgICAgICAgICAgKHJlc3VsdCA8IHNvdXJjZS5sZW5ndGgoKSAtIDEpICYmCisgICAgICAgICAgICAgICAgaXNUcmFpbFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdEVuZCkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4T2Yoc291cmNlLCBzdHIsIHJlc3VsdEVuZCArIDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gY2hlY2sgZmlyc3QgY2hhcmFjdGVyIHdoaWNoIGlzIGEgdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZShzdHIuY2hhckF0KDApKSAmJiByZXN1bHQgPiAwICYmCisgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4T2Yoc291cmNlLCBzdHIsIHJlc3VsdEVuZCArIDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggd2l0aGluIHRoZSBhcmd1bWVudCBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgb2YKKyAgICAgKiB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIHRoZSBhcmd1bWVudCBjb2RlcG9pbnQuIEkuZS4sIHRoZSBpbmRleCByZXR1cm5lZAorICAgICAqIGlzIHRoZSBsYXJnZXN0IHZhbHVlIGkgc3VjaCB0aGF0OiBVVEYxNi5jaGFyQXQoc291cmNlLCBpKSA9PSBjaGFyMzIKKyAgICAgKiBpcyB0cnVlLgorICAgICAqIDxwPgorICAgICAqIEV4YW1wbGVzOjxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjIiwgJ2EnKSByZXR1cm5zIDA8YnI+CisgICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsIDB4MTAwMDApIHJldHVybnMgMzxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgMHhkODAwKSByZXR1cm5zIC0xPGJyPgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5zb3VyY2UgaXMgc2VhcmNoZWQgYmFja3dhcmRzIHN0YXJ0aW5nIGF0IHRoZSBsYXN0IGNoYXJhY3Rlci48L3A+CisgICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90CisgICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgdGhhdCB3aWxsIGJlIHNlYXJjaGVkCisgICAgICogQHBhcmFtIGNoYXIzMiBjb2RlcG9pbnQgdG8gc2VhcmNoIGZvcgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgdGhlIGNvZGVwb2ludCBpbiBzb3VyY2UsCisgICAgICogICAgICAgICBvciAtMSBpZiB0aGUgY29kZXBvaW50IGRvZXMgbm90IG9jY3VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGxhc3RJbmRleE9mKFN0cmluZyBzb3VyY2UsIGludCBjaGFyMzIpCisgICAgeworICAgICAgICBpZiAoY2hhcjMyIDwgQ09ERVBPSU5UX01JTl9WQUxVRSB8fCBjaGFyMzIgPiBDT0RFUE9JTlRfTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXJndW1lbnQgY2hhcjMyIGlzIG5vdCBhIHZhbGlkIGNvZGVwb2ludCIpOworICAgICAgICB9CisgICAgICAgIC8vIG5vbi1zdXJyb2dhdGUgYm1wCisgICAgICAgIGlmIChjaGFyMzIgPCBMRUFEX1NVUlJPR0FURV9NSU5fVkFMVUUgfHwKKyAgICAgICAgICAgIChjaGFyMzIgPiBUUkFJTF9TVVJST0dBVEVfTUFYX1ZBTFVFICYmCisgICAgICAgICAgICAgY2hhcjMyIDwgU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlLmxhc3RJbmRleE9mKChjaGFyKWNoYXIzMik7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3Vycm9nYXRlCisgICAgICAgIGlmIChjaGFyMzIgPCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IHNvdXJjZS5sYXN0SW5kZXhPZigoY2hhciljaGFyMzIpOworICAgICAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZSgoY2hhciljaGFyMzIpICYmCisgICAgICAgICAgICAgICAgICAgIChyZXN1bHQgPCBzb3VyY2UubGVuZ3RoKCkgLSAxKSAmJgorICAgICAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBsYXN0SW5kZXhPZihzb3VyY2UsIGNoYXIzMiwgcmVzdWx0IC0gMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vIHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPiAwICYmCisgICAgICAgICAgICAgICAgICAgIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdCAtIDEpKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4T2Yoc291cmNlLCBjaGFyMzIsIHJlc3VsdCAtIDEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3VwcGxlbWVudGFyeQorICAgICAgICBTdHJpbmcgY2hhcjMyc3RyID0gdG9TdHJpbmcoY2hhcjMyKTsKKyAgICAgICAgcmV0dXJuIHNvdXJjZS5sYXN0SW5kZXhPZihjaGFyMzJzdHIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IHdpdGhpbiB0aGUgYXJndW1lbnQgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIG9mCisgICAgICogdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgYXJndW1lbnQgc3RyaW5nIHN0ci4gVGhpcyBtZXRob2QgaXMKKyAgICAgKiBpbXBsZW1lbnRlZCBiYXNlZCBvbiBjb2RlcG9pbnRzLCBoZW5jZSBhICJsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgKworICAgICAqIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIiIGlzIHRyZWF0ZWQgYXMgb25lIGVudGl0eS5lCisgICAgICogSGVuY2UgaWYgdGhlIHN0ciBzdGFydHMgd2l0aCB0cmFpbCBzdXJyb2dhdGUgY2hhcmFjdGVyIGF0IGluZGV4IDAsIGEKKyAgICAgKiBzb3VyY2Ugd2l0aCBhIGxlYWRpbmcgYSBzdXJyb2dhdGUgY2hhcmFjdGVyIGJlZm9yZSBzdHIgZm91bmQgYXQgaW4KKyAgICAgKiBzb3VyY2Ugd2lsbCBub3QgaGF2ZSBhIHZhbGlkIG1hdGNoLiBWaWNlIHZlcnNhIGZvciBsZWFkIHN1cnJvZ2F0ZXMKKyAgICAgKiB0aGF0IGVuZHMgc3RyLgorICAgICAqIFNlZSBleGFtcGxlIGJlbG93LgorICAgICAqIDxwPgorICAgICAqIEV4YW1wbGVzOjxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjIiwgImEiKSByZXR1cm5zIDA8YnI+CisgICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsICJcdWQ4MDBcdWRjMDAiKSByZXR1cm5zIDM8YnI+CisgICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsICJcdWQ4MDAiKSByZXR1cm5zIC0xPGJyPgorICAgICAqIDwvcD4KKyAgICAgKiA8cD5zb3VyY2UgaXMgc2VhcmNoZWQgYmFja3dhcmRzIHN0YXJ0aW5nIGF0IHRoZSBsYXN0IGNoYXJhY3Rlci48L3A+CisgICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90CisgICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgdGhhdCB3aWxsIGJlIHNlYXJjaGVkCisgICAgICogQHBhcmFtIHN0ciBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgdG8gc2VhcmNoIGZvcgorICAgICAqIEByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgdGhlIGNvZGVwb2ludCBpbiBzb3VyY2UsCisgICAgICogICAgICAgICBvciAtMSBpZiB0aGUgY29kZXBvaW50IGRvZXMgbm90IG9jY3VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGxhc3RJbmRleE9mKFN0cmluZyBzb3VyY2UsIFN0cmluZyBzdHIpCisgICAgeworICAgICAgICBpbnQgc3RyTGVuZ3RoID0gc3RyLmxlbmd0aCgpOworICAgICAgICAvLyBub24tc3Vycm9nYXRlIGVuZHMKKyAgICAgICAgaWYgKCFpc1RyYWlsU3Vycm9nYXRlKHN0ci5jaGFyQXQoMCkpICYmCisgICAgICAgICAgICAhaXNMZWFkU3Vycm9nYXRlKHN0ci5jaGFyQXQoc3RyTGVuZ3RoIC0gMSkpKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlLmxhc3RJbmRleE9mKHN0cik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVzdWx0ICAgID0gc291cmNlLmxhc3RJbmRleE9mKHN0cik7CisgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgLy8gY2hlY2sgbGFzdCBjaGFyYWN0ZXIKKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkgJiYKKyAgICAgICAgICAgICAgICAocmVzdWx0IDwgc291cmNlLmxlbmd0aCgpIC0gMSkgJiYKKyAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgc3RyTGVuZ3RoICsgMSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RJbmRleE9mKHNvdXJjZSwgc3RyLCByZXN1bHQgLSAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIGNoZWNrIGZpcnN0IGNoYXJhY3RlciB3aGljaCBpcyBhIHRyYWlsIHN1cnJvZ2F0ZQorICAgICAgICAgICAgaWYgKGlzVHJhaWxTdXJyb2dhdGUoc3RyLmNoYXJBdCgwKSkgJiYgcmVzdWx0ID4gMCAmJgorICAgICAgICAgICAgICAgIGlzTGVhZFN1cnJvZ2F0ZShzb3VyY2UuY2hhckF0KHJlc3VsdCAtIDEpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBsYXN0SW5kZXhPZihzb3VyY2UsIHN0ciwgcmVzdWx0IC0gMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5SZXR1cm5zIHRoZSBpbmRleCB3aXRoaW4gdGhlIGFyZ3VtZW50IFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyBvZgorICAgICAqIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgdGhlIGFyZ3VtZW50IGNvZGVwb2ludCwgd2hlcmUgdGhlIHJlc3VsdCBpcyBsZXNzCisgICAgICogdGhhbiBvciBlcXVhbHMgdG8gZnJvbUluZGV4LjwvcD4KKyAgICAgKiA8cD5UaGlzIG1ldGhvZCBpcyBpbXBsZW1lbnRlZCBiYXNlZCBvbiBjb2RlcG9pbnRzLCBoZW5jZSBhIHNpbmdsZQorICAgICAqIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgd2lsbCBub3QgbWF0Y2ggYSBzdXBwbGVtZW50YXJ5IGNoYXJhY3Rlci48L3A+CisgICAgICogPHA+c291cmNlIGlzIHNlYXJjaGVkIGJhY2t3YXJkcyBzdGFydGluZyBhdCB0aGUgbGFzdCBjaGFyYWN0ZXIgc3RhcnRpbmcKKyAgICAgKiBhdCB0aGUgc3BlY2lmaWVkIGluZGV4LjwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBFeGFtcGxlczo8YnI+CisgICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiYyIsICdjJywgMikgcmV0dXJucyAyPGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmMiLCAnYycsIDEpIHJldHVybnMgLTE8YnI+CisgICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiY1x1ZDgwMFx1ZGMwMCIsIDB4MTAwMDAsIDUpIHJldHVybnMgMzxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgMHgxMDAwMCwgMykgcmV0dXJucyAzPGJyPgorICAgICAqIFVURjE2Lmxhc3RJbmRleE9mKCJhYmNcdWQ4MDBcdWRjMDAiLCAweGQ4MDApIHJldHVybnMgLTE8YnI+CisgICAgICogPC9wPgorICAgICAqIE5vdGUgdGhpcyBtZXRob2QgaXMgcHJvdmlkZWQgYXMgc3VwcG9ydCB0byBqZGsgMS4zLCB3aGljaCBkb2VzIG5vdAorICAgICAqIHN1cHBvcnQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIHRvIGl0cyBmdWxsZXN0LgorICAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHRoYXQgd2lsbCBiZSBzZWFyY2hlZAorICAgICAqIEBwYXJhbSBjaGFyMzIgY29kZXBvaW50IHRvIHNlYXJjaCBmb3IKKyAgICAgKiBAcGFyYW0gZnJvbUluZGV4IHRoZSBpbmRleCB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uIFRoZXJlIGlzIG5vCisgICAgICogICAgICAgICAgICAgICAgICByZXN0cmljdGlvbiBvbiB0aGUgdmFsdWUgb2YgZnJvbUluZGV4LiBJZiBpdCBpcworICAgICAqICAgICAgICAgICAgICAgICAgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBsZW5ndGggb2YgdGhpcyBzdHJpbmcsCisgICAgICogICAgICAgICAgICAgICAgICBpdCBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzIGlmIGl0IHdlcmUgZXF1YWwgdG8gb25lCisgICAgICogICAgICAgICAgICAgICAgICBsZXNzIHRoYW4gdGhlIGxlbmd0aCBvZiB0aGlzIHN0cmluZzogdGhpcyBlbnRpcmUKKyAgICAgKiAgICAgICAgICAgICAgICAgIHN0cmluZyBtYXkgYmUgc2VhcmNoZWQuIElmIGl0IGlzIG5lZ2F0aXZlLCBpdCBoYXMKKyAgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIGVmZmVjdCBhcyBpZiBpdCB3ZXJlIC0xOiAtMSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIHRoZSBjb2RlcG9pbnQgaW4gc291cmNlLAorICAgICAqICAgICAgICAgb3IgLTEgaWYgdGhlIGNvZGVwb2ludCBkb2VzIG5vdCBvY2N1ci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBsYXN0SW5kZXhPZihTdHJpbmcgc291cmNlLCBpbnQgY2hhcjMyLCBpbnQgZnJvbUluZGV4KQorICAgIHsKKyAgICAgICAgaWYgKGNoYXIzMiA8IENPREVQT0lOVF9NSU5fVkFMVUUgfHwgY2hhcjMyID4gQ09ERVBPSU5UX01BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZ3VtZW50IGNoYXIzMiBpcyBub3QgYSB2YWxpZCBjb2RlcG9pbnQiKTsKKyAgICAgICAgfQorICAgICAgICAvLyBub24tc3Vycm9nYXRlIGJtcAorICAgICAgICBpZiAoY2hhcjMyIDwgTEVBRF9TVVJST0dBVEVfTUlOX1ZBTFVFIHx8CisgICAgICAgICAgICAoY2hhcjMyID4gVFJBSUxfU1VSUk9HQVRFX01BWF9WQUxVRSAmJgorICAgICAgICAgICAgIGNoYXIzMiA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSkgeworICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5sYXN0SW5kZXhPZigoY2hhciljaGFyMzIsIGZyb21JbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3Vycm9nYXRlCisgICAgICAgIGlmIChjaGFyMzIgPCBTVVBQTEVNRU5UQVJZX01JTl9WQUxVRSkgeworICAgICAgICAgICAgaW50IHJlc3VsdCA9IHNvdXJjZS5sYXN0SW5kZXhPZigoY2hhciljaGFyMzIsIGZyb21JbmRleCk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNMZWFkU3Vycm9nYXRlKChjaGFyKWNoYXIzMikgJiYKKyAgICAgICAgICAgICAgICAgICAgKHJlc3VsdCA8IHNvdXJjZS5sZW5ndGgoKSAtIDEpICYmCisgICAgICAgICAgICAgICAgICAgIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChyZXN1bHQgKyAxKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RJbmRleE9mKHNvdXJjZSwgY2hhcjMyLCByZXN1bHQgLSAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA+IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBsYXN0SW5kZXhPZihzb3VyY2UsIGNoYXIzMiwgcmVzdWx0IC0gMSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgICAvLyBzdXBwbGVtZW50YXJ5CisgICAgICAgIFN0cmluZyBjaGFyMzJzdHIgPSB0b1N0cmluZyhjaGFyMzIpOworICAgICAgICByZXR1cm4gc291cmNlLmxhc3RJbmRleE9mKGNoYXIzMnN0ciwgZnJvbUluZGV4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5SZXR1cm5zIHRoZSBpbmRleCB3aXRoaW4gdGhlIGFyZ3VtZW50IFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyBvZgorICAgICAqIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgdGhlIGFyZ3VtZW50IHN0cmluZyBzdHIsIHdoZXJlIHRoZSByZXN1bHQgaXMgbGVzcworICAgICAqIHRoYW4gb3IgZXF1YWxzIHRvIGZyb21JbmRleC48L3A+CisgICAgICogPHA+VGhpcyBtZXRob2QgaXMgaW1wbGVtZW50ZWQgYmFzZWQgb24gY29kZXBvaW50cywgaGVuY2UgYQorICAgICAqICJsZWFkIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgKyB0cmFpbCBzdXJyb2dhdGUgY2hhcmFjdGVyIiBpcyB0cmVhdGVkIGFzIG9uZQorICAgICAqIGVudGl0eS4KKyAgICAgKiBIZW5jZSBpZiB0aGUgc3RyIHN0YXJ0cyB3aXRoIHRyYWlsIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgYXQgaW5kZXggMCwgYQorICAgICAqIHNvdXJjZSB3aXRoIGEgbGVhZGluZyBhIHN1cnJvZ2F0ZSBjaGFyYWN0ZXIgYmVmb3JlIHN0ciBmb3VuZCBhdCBpbgorICAgICAqIHNvdXJjZSB3aWxsIG5vdCBoYXZlIGEgdmFsaWQgbWF0Y2guIFZpY2UgdmVyc2EgZm9yIGxlYWQgc3Vycm9nYXRlcworICAgICAqIHRoYXQgZW5kcyBzdHIuCisgICAgICogPC9wPgorICAgICAqIFNlZSBleGFtcGxlIGJlbG93LgorICAgICAqIDxwPgorICAgICAqIEV4YW1wbGVzOjxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjIiwgImMiLCAyKSByZXR1cm5zIDI8YnI+CisgICAgICogVVRGMTYubGFzdEluZGV4T2YoImFiYyIsICJjIiwgMSkgcmV0dXJucyAtMTxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMFx1ZGMwMCIsIDUpIHJldHVybnMgMzxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMFx1ZGMwMCIsIDMpIHJldHVybnMgMzxicj4KKyAgICAgKiBVVEYxNi5sYXN0SW5kZXhPZigiYWJjXHVkODAwXHVkYzAwIiwgIlx1ZDgwMCIsIDQpIHJldHVybnMgLTE8YnI+CisgICAgICogPC9wPgorICAgICAqIDxwPnNvdXJjZSBpcyBzZWFyY2hlZCBiYWNrd2FyZHMgc3RhcnRpbmcgYXQgdGhlIGxhc3QgY2hhcmFjdGVyLjwvcD4KKyAgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIHN1cHBvcnQgdG8gamRrIDEuMywgd2hpY2ggZG9lcyBub3QKKyAgICAgKiBzdXBwb3J0IHN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyB0byBpdHMgZnVsbGVzdC4KKyAgICAgKiBAcGFyYW0gc291cmNlIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQKKyAgICAgKiBAcGFyYW0gc3RyIFVURjE2IGZvcm1hdCBVbmljb2RlIHN0cmluZyB0byBzZWFyY2ggZm9yCisgICAgICogQHBhcmFtIGZyb21JbmRleCB0aGUgaW5kZXggdG8gc3RhcnQgdGhlIHNlYXJjaCBmcm9tLiBUaGVyZSBpcyBubworICAgICAqICAgICAgICAgICAgICAgICAgcmVzdHJpY3Rpb24gb24gdGhlIHZhbHVlIG9mIGZyb21JbmRleC4gSWYgaXQgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgbGVuZ3RoIG9mIHRoaXMgc3RyaW5nLAorICAgICAqICAgICAgICAgICAgICAgICAgaXQgaGFzIHRoZSBzYW1lIGVmZmVjdCBhcyBpZiBpdCB3ZXJlIGVxdWFsIHRvIG9uZQorICAgICAqICAgICAgICAgICAgICAgICAgbGVzcyB0aGFuIHRoZSBsZW5ndGggb2YgdGhpcyBzdHJpbmc6IHRoaXMgZW50aXJlCisgICAgICogICAgICAgICAgICAgICAgICBzdHJpbmcgbWF5IGJlIHNlYXJjaGVkLiBJZiBpdCBpcyBuZWdhdGl2ZSwgaXQgaGFzCisgICAgICogICAgICAgICAgICAgICAgICB0aGUgc2FtZSBlZmZlY3QgYXMgaWYgaXQgd2VyZSAtMTogLTEgaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgY29kZXBvaW50IGluIHNvdXJjZSwKKyAgICAgKiAgICAgICAgIG9yIC0xIGlmIHRoZSBjb2RlcG9pbnQgZG9lcyBub3Qgb2NjdXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgbGFzdEluZGV4T2YoU3RyaW5nIHNvdXJjZSwgU3RyaW5nIHN0ciwgaW50IGZyb21JbmRleCkKKyAgICB7CisgICAgICAgIGludCBzdHJMZW5ndGggPSBzdHIubGVuZ3RoKCk7CisgICAgICAgIC8vIG5vbi1zdXJyb2dhdGUgZW5kcworICAgICAgICBpZiAoIWlzVHJhaWxTdXJyb2dhdGUoc3RyLmNoYXJBdCgwKSkgJiYKKyAgICAgICAgICAgICFpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2UubGFzdEluZGV4T2Yoc3RyLCBmcm9tSW5kZXgpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCAgICA9IHNvdXJjZS5sYXN0SW5kZXhPZihzdHIsIGZyb21JbmRleCk7CisgICAgICAgIGlmIChyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgLy8gY2hlY2sgbGFzdCBjaGFyYWN0ZXIKKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc3RyLmNoYXJBdChzdHJMZW5ndGggLSAxKSkgJiYKKyAgICAgICAgICAgICAgICAocmVzdWx0IDwgc291cmNlLmxlbmd0aCgpIC0gMSkgJiYKKyAgICAgICAgICAgICAgICBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0ICsgc3RyTGVuZ3RoKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4T2Yoc291cmNlLCBzdHIsIHJlc3VsdCAtIDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gY2hlY2sgZmlyc3QgY2hhcmFjdGVyIHdoaWNoIGlzIGEgdHJhaWwgc3Vycm9nYXRlCisgICAgICAgICAgICBpZiAoaXNUcmFpbFN1cnJvZ2F0ZShzdHIuY2hhckF0KDApKSAmJiByZXN1bHQgPiAwICYmCisgICAgICAgICAgICAgICAgaXNMZWFkU3Vycm9nYXRlKHNvdXJjZS5jaGFyQXQocmVzdWx0IC0gMSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RJbmRleE9mKHNvdXJjZSwgc3RyLCByZXN1bHQgLSAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXcgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHJlc3VsdGluZyBmcm9tIHJlcGxhY2luZyBhbGwKKyAgICAgKiBvY2N1cnJlbmNlcyBvZiBvbGRDaGFyMzIgaW4gc291cmNlIHdpdGggbmV3Q2hhcjMyLgorICAgICAqIElmIHRoZSBjaGFyYWN0ZXIgb2xkQ2hhcjMyIGRvZXMgbm90IG9jY3VyIGluIHRoZSBVVEYxNiBmb3JtYXQgVW5pY29kZQorICAgICAqIHN0cmluZyBzb3VyY2UsIHRoZW4gc291cmNlIHdpbGwgYmUgcmV0dXJuZWQuIE90aGVyd2lzZSwgYSBuZXcgU3RyaW5nCisgICAgICogb2JqZWN0IGlzIGNyZWF0ZWQgdGhhdCByZXByZXNlbnRzIGEgY29kZXBvaW50IHNlcXVlbmNlIGlkZW50aWNhbCB0byB0aGUKKyAgICAgKiBjb2RlcG9pbnQgc2VxdWVuY2UgcmVwcmVzZW50ZWQgYnkgc291cmNlLCBleGNlcHQgdGhhdCBldmVyeSBvY2N1cnJlbmNlCisgICAgICogb2Ygb2xkQ2hhcjMyIGlzIHJlcGxhY2VkIGJ5IGFuIG9jY3VycmVuY2Ugb2YgbmV3Q2hhcjMyLgorICAgICAqIDxwPgorICAgICAqIEV4YW1wbGVzOiA8YnI+CisgICAgICogVVRGMTYucmVwbGFjZSgibWVzcXVpdGUgaW4geW91ciBjZWxsYXIiLCAnZScsICdvJyk7PGJyPgorICAgICAqICAgICAgICByZXR1cm5zICJtb3NxdWl0byBpbiB5b3VyIGNvbGxhciI8YnI+CisgICAgICogVVRGMTYucmVwbGFjZSgiSm9uTCIsICdxJywgJ3gnKTs8YnI+CisgICAgICogICAgICAgIHJldHVybnMgIkpvbkwiIChubyBjaGFuZ2UpPGJyPgorICAgICAqIFVURjE2LnJlcGxhY2UoIlN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIFx1ZDgwMFx1ZGMwMCIsIDB4MTAwMDAsICchJyk7CisgICAgICogPGJyPiAgIHJldHVybnMgIlN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyICEiPGJyPgorICAgICAqIFVURjE2LnJlcGxhY2UoIlN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIFx1ZDgwMFx1ZGMwMCIsIDB4ZDgwMCwgJyEnKTsKKyAgICAgKiA8YnI+ICAgcmV0dXJucyAiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgXHVkODAwXHVkYzAwIjxicj4KKyAgICAgKiA8L3A+CisgICAgICogTm90ZSB0aGlzIG1ldGhvZCBpcyBwcm92aWRlZCBhcyBzdXBwb3J0IHRvIGpkayAxLjMsIHdoaWNoIGRvZXMgbm90CisgICAgICogc3VwcG9ydCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgdG8gaXRzIGZ1bGxlc3QuCisgICAgICogQHBhcmFtIHNvdXJjZSBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgd2hpY2ggdGhlIGNvZGVwb2ludAorICAgICAqICAgICAgICAgICAgICAgcmVwbGFjZW1lbnRzIHdpbGwgYmUgYmFzZWQgb24uCisgICAgICogQHBhcmFtIG9sZENoYXIzMiBub24temVybyBvbGQgY29kZXBvaW50IHRvIGJlIHJlcGxhY2VkLgorICAgICAqIEBwYXJhbSBuZXdDaGFyMzIgdGhlIG5ldyBjb2RlcG9pbnQgdG8gcmVwbGFjZSBvbGRDaGFyMzIKKyAgICAgKiBAcmV0dXJuIG5ldyBTdHJpbmcgZGVyaXZlZCBmcm9tIHNvdXJjZSBieSByZXBsYWNpbmcgZXZlcnkgb2NjdXJyZW5jZQorICAgICAqICAgICAgICAgb2Ygb2xkQ2hhcjMyIHdpdGggbmV3Q2hhcjMyLCB1bmxlc3Mgd2hlbiBubyBvbGRDaGFyMzIgaXMgZm91bmQKKyAgICAgKiAgICAgICAgIGluIHNvdXJjZSB0aGVuIHNvdXJjZSB3aWxsIGJlIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGxhY2UoU3RyaW5nIHNvdXJjZSwgaW50IG9sZENoYXIzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuZXdDaGFyMzIpCisgICAgeworICAgICAgICBpZiAob2xkQ2hhcjMyIDw9IDAgfHwgb2xkQ2hhcjMyID4gQ09ERVBPSU5UX01BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZ3VtZW50IG9sZENoYXIzMiBpcyBub3QgYSB2YWxpZCBjb2RlcG9pbnQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobmV3Q2hhcjMyIDw9IDAgfHwgbmV3Q2hhcjMyID4gQ09ERVBPSU5UX01BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZ3VtZW50IG5ld0NoYXIzMiBpcyBub3QgYSB2YWxpZCBjb2RlcG9pbnQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBpbmRleCAgICAgPSBpbmRleE9mKHNvdXJjZSwgb2xkQ2hhcjMyKTsKKyAgICAgICAgaWYgKGluZGV4ID09IC0xKSB7CisgICAgICAgICAgICByZXR1cm4gc291cmNlOworICAgICAgICB9CisgICAgICAgIFN0cmluZyAgICAgICBuZXdDaGFyMzJTdHIgICAgPSB0b1N0cmluZyhuZXdDaGFyMzIpOworICAgICAgICBpbnQgICAgICAgICAgb2xkQ2hhcjMyU2l6ZSAgID0gMTsKKyAgICAgICAgaW50ICAgICAgICAgIG5ld0NoYXIzMlNpemUgICA9IG5ld0NoYXIzMlN0ci5sZW5ndGgoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoc291cmNlKTsKKyAgICAgICAgaW50ICAgICAgICAgIHJlc3VsdEluZGV4ICAgICA9IGluZGV4OworCisgICAgICAgIGlmIChvbGRDaGFyMzIgPj0gU1VQUExFTUVOVEFSWV9NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgIG9sZENoYXIzMlNpemUgPSAyOworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKGluZGV4ICE9IC0xKSB7CisgICAgICAgICAgICBpbnQgZW5kUmVzdWx0SW5kZXggID0gcmVzdWx0SW5kZXggKyBvbGRDaGFyMzJTaXplOworICAgICAgICAgICAgcmVzdWx0LnJlcGxhY2UocmVzdWx0SW5kZXgsIGVuZFJlc3VsdEluZGV4LCBuZXdDaGFyMzJTdHIpOworICAgICAgICAgICAgaW50IGxhc3RFbmRJbmRleCAgICA9IGluZGV4ICsgb2xkQ2hhcjMyU2l6ZTsKKyAgICAgICAgICAgIGluZGV4ICAgICAgID0gaW5kZXhPZihzb3VyY2UsIG9sZENoYXIzMiwgbGFzdEVuZEluZGV4KTsKKyAgICAgICAgICAgIHJlc3VsdEluZGV4ICs9IG5ld0NoYXIzMlNpemUgKyBpbmRleCAtIGxhc3RFbmRJbmRleDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ldyBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcgcmVzdWx0aW5nIGZyb20gcmVwbGFjaW5nIGFsbAorICAgICAqIG9jY3VycmVuY2VzIG9mIG9sZFN0ciBpbiBzb3VyY2Ugd2l0aCBuZXdTdHIuCisgICAgICogSWYgdGhlIHN0cmluZyBvbGRTdHIgZG9lcyBub3Qgb2NjdXIgaW4gdGhlIFVURjE2IGZvcm1hdCBVbmljb2RlCisgICAgICogc3RyaW5nIHNvdXJjZSwgdGhlbiBzb3VyY2Ugd2lsbCBiZSByZXR1cm5lZC4gT3RoZXJ3aXNlLCBhIG5ldyBTdHJpbmcKKyAgICAgKiBvYmplY3QgaXMgY3JlYXRlZCB0aGF0IHJlcHJlc2VudHMgYSBjb2RlcG9pbnQgc2VxdWVuY2UgaWRlbnRpY2FsIHRvIHRoZQorICAgICAqIGNvZGVwb2ludCBzZXF1ZW5jZSByZXByZXNlbnRlZCBieSBzb3VyY2UsIGV4Y2VwdCB0aGF0IGV2ZXJ5IG9jY3VycmVuY2UKKyAgICAgKiBvZiBvbGRTdHIgaXMgcmVwbGFjZWQgYnkgYW4gb2NjdXJyZW5jZSBvZiBuZXdTdHIuCisgICAgICogPHA+CisgICAgICogRXhhbXBsZXM6IDxicj4KKyAgICAgKiBVVEYxNi5yZXBsYWNlKCJtZXNxdWl0ZSBpbiB5b3VyIGNlbGxhciIsICJlIiwgIm8iKTs8YnI+CisgICAgICogICAgICAgIHJldHVybnMgIm1vc3F1aXRvIGluIHlvdXIgY29sbGFyIjxicj4KKyAgICAgKiBVVEYxNi5yZXBsYWNlKCJtZXNxdWl0ZSBpbiB5b3VyIGNlbGxhciIsICJtZXNxdWl0ZSIsICJjYXQiKTs8YnI+CisgICAgICogICAgICAgIHJldHVybnMgImNhdCBpbiB5b3VyIGNlbGxhciI8YnI+CisgICAgICogVVRGMTYucmVwbGFjZSgiSm9uTCIsICJxIiwgIngiKTs8YnI+CisgICAgICogICAgICAgIHJldHVybnMgIkpvbkwiIChubyBjaGFuZ2UpPGJyPgorICAgICAqIFVURjE2LnJlcGxhY2UoIlN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIFx1ZDgwMFx1ZGMwMCIsICJcdWQ4MDBcdWRjMDAiLAorICAgICAqICAgICAgICAgICAgICAgJyEnKTsKKyAgICAgKiA8YnI+ICAgcmV0dXJucyAiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgISI8YnI+CisgICAgICogVVRGMTYucmVwbGFjZSgiU3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIgXHVkODAwXHVkYzAwIiwgIlx1ZDgwMCIsICchJyk7CisgICAgICogPGJyPiAgIHJldHVybnMgIlN1cHBsZW1lbnRhcnkgY2hhcmFjdGVyIFx1ZDgwMFx1ZGMwMCI8YnI+CisgICAgICogPC9wPgorICAgICAqIE5vdGUgdGhpcyBtZXRob2QgaXMgcHJvdmlkZWQgYXMgc3VwcG9ydCB0byBqZGsgMS4zLCB3aGljaCBkb2VzIG5vdAorICAgICAqIHN1cHBvcnQgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXJzIHRvIGl0cyBmdWxsZXN0LgorICAgICAqIEBwYXJhbSBzb3VyY2UgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIHdoaWNoIHRoZQorICAgICAqICAgICAgICAgICAgICAgcmVwbGFjZW1lbnRzIHdpbGwgYmUgYmFzZWQgb24uCisgICAgICogQHBhcmFtIG9sZFN0ciBub24temVyby1sZW5ndGggc3RyaW5nIHRvIGJlIHJlcGxhY2VkLgorICAgICAqIEBwYXJhbSBuZXdTdHIgdGhlIG5ldyBzdHJpbmcgdG8gcmVwbGFjZSBvbGRTdHIKKyAgICAgKiBAcmV0dXJuIG5ldyBTdHJpbmcgZGVyaXZlZCBmcm9tIHNvdXJjZSBieSByZXBsYWNpbmcgZXZlcnkgb2NjdXJyZW5jZQorICAgICAqICAgICAgICAgb2Ygb2xkU3RyIHdpdGggbmV3U3RyLiAgV2hlbiBubyBvbGRTdHIgaXMgZm91bmQKKyAgICAgKiAgICAgICAgIGluIHNvdXJjZSwgdGhlbiBzb3VyY2Ugd2lsbCBiZSByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyByZXBsYWNlKFN0cmluZyBzb3VyY2UsIFN0cmluZyBvbGRTdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmV3U3RyKQorICAgIHsKKyAgICAgICAgaW50IGluZGV4ICAgICA9IGluZGV4T2Yoc291cmNlLCBvbGRTdHIpOworICAgICAgICBpZiAoaW5kZXggPT0gLTEpIHsKKyAgICAgICAgICAgIHJldHVybiBzb3VyY2U7CisgICAgICAgIH0KKyAgICAgICAgaW50ICAgICAgICAgIG9sZFN0clNpemUgICA9IG9sZFN0ci5sZW5ndGgoKTsKKyAgICAgICAgaW50ICAgICAgICAgIG5ld1N0clNpemUgICA9IG5ld1N0ci5sZW5ndGgoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCAgICAgICA9IG5ldyBTdHJpbmdCdWZmZXIoc291cmNlKTsKKyAgICAgICAgaW50ICAgICAgICAgIHJlc3VsdEluZGV4ICAgICA9IGluZGV4OworCisgICAgICAgIHdoaWxlIChpbmRleCAhPSAtMSkgeworICAgICAgICAgICAgaW50IGVuZFJlc3VsdEluZGV4ICA9IHJlc3VsdEluZGV4ICsgb2xkU3RyU2l6ZTsKKyAgICAgICAgICAgIHJlc3VsdC5yZXBsYWNlKHJlc3VsdEluZGV4LCBlbmRSZXN1bHRJbmRleCwgbmV3U3RyKTsKKyAgICAgICAgICAgIGludCBsYXN0RW5kSW5kZXggICAgPSBpbmRleCArIG9sZFN0clNpemU7CisgICAgICAgICAgICBpbmRleCAgICAgICA9IGluZGV4T2Yoc291cmNlLCBvbGRTdHIsIGxhc3RFbmRJbmRleCk7CisgICAgICAgICAgICByZXN1bHRJbmRleCArPSBuZXdTdHJTaXplICsgaW5kZXggLSBsYXN0RW5kSW5kZXg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldmVyc2VzIGEgVVRGMTYgZm9ybWF0IFVuaWNvZGUgc3RyaW5nIGFuZCByZXBsYWNlcyBzb3VyY2UncyBjb250ZW50CisgICAgICogd2l0aCBpdC4KKyAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIHJldmVyc2Ugc3Vycm9nYXRlIGNoYXJhY3RlcnMgY29ycmVjdGx5LCBpbnN0ZWFkIG9mCisgICAgICogYmxpbmRseSByZXZlcnNpbmcgZXZlcnkgY2hhcmFjdGVyLgorICAgICAqIDxwPgorICAgICAqIEV4YW1wbGVzOjxicj4KKyAgICAgKiBVVEYxNi5yZXZlcnNlKG5ldyBTdHJpbmdCdWZmZXIoCisgICAgICogICAgICAgICAgICAgIlN1cHBsZW1lbnRhcnkgY2hhcmFjdGVycyBcdWQ4MDBcdWRjMDBcdWQ4MDFcdWRjMDEiKSk8YnI+CisgICAgICogcmV0dXJucyAiXHVkODAxXHVkYzAxXHVkODAwXHVkYzAwIHNyZXRjYXJhaGMgeXJhdG5lbWVscHB1UyIuCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIFN0cmluZ0J1ZmZlciB0aGF0IGNvbnRhaW5zIFVURjE2IGZvcm1hdAorICAgICAqICAgICAgICBVbmljb2RlIHN0cmluZyB0byBiZSByZXZlcnNlZAorICAgICAqIEByZXR1cm4gYSBtb2RpZmllZCBzb3VyY2Ugd2l0aCByZXZlcnNlZCBVVEYxNiBmb3JtYXQgVW5pY29kZSBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdCdWZmZXIgcmV2ZXJzZShTdHJpbmdCdWZmZXIgc291cmNlKQorICAgIHsKKyAgICBpbnQgbGVuZ3RoID0gc291cmNlLmxlbmd0aCgpOworICAgIFN0cmluZ0J1ZmZlciByZXN1bHQgPSBuZXcgU3RyaW5nQnVmZmVyKGxlbmd0aCk7CisgICAgZm9yIChpbnQgaSA9IGxlbmd0aDsgaS0tID4gMDspIHsKKyAgICAgICAgY2hhciBjaCA9IHNvdXJjZS5jaGFyQXQoaSk7CisgICAgICAgIGlmIChpc1RyYWlsU3Vycm9nYXRlKGNoKSAmJiBpID4gMCkgeworICAgICAgICBjaGFyIGNoMiA9IHNvdXJjZS5jaGFyQXQoaS0xKTsKKyAgICAgICAgaWYgKGlzTGVhZFN1cnJvZ2F0ZShjaDIpKSB7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNoMik7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNoKTsKKyAgICAgICAgICAgIC0taTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LmFwcGVuZChjaCk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgdGhlIHN0cmluZyBjb250YWlucyBtb3JlIFVuaWNvZGUgY29kZSBwb2ludHMgdGhhbiBhIGNlcnRhaW4KKyAgICAgKiBudW1iZXIuIFRoaXMgaXMgbW9yZSBlZmZpY2llbnQgdGhhbiBjb3VudGluZyBhbGwgY29kZSBwb2ludHMgaW4gdGhlCisgICAgICogZW50aXJlIHN0cmluZyBhbmQgY29tcGFyaW5nIHRoYXQgbnVtYmVyIHdpdGggYSB0aHJlc2hvbGQuCisgICAgICogVGhpcyBmdW5jdGlvbiBtYXkgbm90IG5lZWQgdG8gc2NhbiB0aGUgc3RyaW5nIGF0IGFsbCBpZiB0aGUgbGVuZ3RoIGlzCisgICAgICogd2l0aGluIGEgY2VydGFpbiByYW5nZSwgYW5kIG5ldmVyIG5lZWRzIHRvIGNvdW50IG1vcmUgdGhhbiAnbnVtYmVyICsgMScKKyAgICAgKiBjb2RlIHBvaW50cy4gTG9naWNhbGx5IGVxdWl2YWxlbnQgdG8gKGNvdW50Q29kZVBvaW50KHMpID4gbnVtYmVyKS4gQQorICAgICAqIFVuaWNvZGUgY29kZSBwb2ludCBtYXkgb2NjdXB5IGVpdGhlciBvbmUgb3IgdHdvIGNvZGUgdW5pdHMuCisgICAgICogQHBhcmFtIHNvdXJjZSBUaGUgaW5wdXQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBudW1iZXIgVGhlIG51bWJlciBvZiBjb2RlIHBvaW50cyBpbiB0aGUgc3RyaW5nIGlzIGNvbXBhcmVkCisgICAgICogICAgICAgICAgICAgICBhZ2FpbnN0IHRoZSAnbnVtYmVyJyBwYXJhbWV0ZXIuCisgICAgICogQHJldHVybiBib29sZWFuIHZhbHVlIGZvciB3aGV0aGVyIHRoZSBzdHJpbmcgY29udGFpbnMgbW9yZSBVbmljb2RlIGNvZGUKKyAgICAgKiAgICAgICAgIHBvaW50cyB0aGFuICdudW1iZXInLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBoYXNNb3JlQ29kZVBvaW50c1RoYW4oU3RyaW5nIHNvdXJjZSwgaW50IG51bWJlcikKKyAgICB7CisgICAgICAgIGlmIChudW1iZXIgPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpbnQgbGVuZ3RoID0gc291cmNlLmxlbmd0aCgpOworCisgICAgICAgIC8vIGxlbmd0aCA+PSAwIGtub3duCisgICAgICAgIC8vIHNvdXJjZSBjb250YWlucyBhdCBsZWFzdCAobGVuZ3RoICsgMSkgLyAyIGNvZGUgcG9pbnRzOiA8PSAyCisgICAgICAgIC8vIGNoYXJzIHBlciBjcAorICAgICAgICBpZiAoKChsZW5ndGggKyAxKSA+PiAxKSA+IG51bWJlcikgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBjaGVjayBpZiBzb3VyY2UgZG9lcyBub3QgZXZlbiBjb250YWluIGVub3VnaCBjaGFycworICAgICAgICBpbnQgbWF4c3VwcGxlbWVudGFyeSA9IGxlbmd0aCAtIG51bWJlcjsKKyAgICAgICAgaWYgKG1heHN1cHBsZW1lbnRhcnkgPD0gMCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGhlcmUgYXJlIG1heHN1cHBsZW1lbnRhcnkgPSBsZW5ndGggLSBudW1iZXIgbW9yZSBjaGFycyB0aGFuCisgICAgICAgIC8vIGFza2VkLWZvciBjb2RlIHBvaW50cworCisgICAgICAgIC8vIGNvdW50IGNvZGUgcG9pbnRzIHVudGlsIHRoZXkgZXhjZWVkIGFuZCBhbHNvIGNoZWNrIHRoYXQgdGhlcmUgYXJlCisgICAgICAgIC8vIG5vIG1vcmUgdGhhbiBtYXhzdXBwbGVtZW50YXJ5IHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgKGNoYXIgcGFpcnMpCisgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAobGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobnVtYmVyID09IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChzdGFydCArKykpICYmIHN0YXJ0ICE9IGxlbmd0aAorICAgICAgICAgICAgICAgICYmIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChzdGFydCkpKSB7CisgICAgICAgICAgICAgICAgc3RhcnQgKys7CisgICAgICAgICAgICAgICAgaWYgKC0tIG1heHN1cHBsZW1lbnRhcnkgPD0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0b28gbWFueSBwYWlycyAtIHRvbyBmZXcgY29kZSBwb2ludHMKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0tIG51bWJlcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIGlmIHRoZSBzdWItcmFuZ2Ugb2YgY2hhciBhcnJheSwgZnJvbSBhcmd1bWVudCBzdGFydCB0byBsaW1pdCwKKyAgICAgKiBjb250YWlucyBtb3JlIFVuaWNvZGUgY29kZSBwb2ludHMgdGhhbiBhIGNlcnRhaW4KKyAgICAgKiBudW1iZXIuIFRoaXMgaXMgbW9yZSBlZmZpY2llbnQgdGhhbiBjb3VudGluZyBhbGwgY29kZSBwb2ludHMgaW4gdGhlCisgICAgICogZW50aXJlIGNoYXIgYXJyYXkgcmFuZ2UgYW5kIGNvbXBhcmluZyB0aGF0IG51bWJlciB3aXRoIGEgdGhyZXNob2xkLgorICAgICAqIFRoaXMgZnVuY3Rpb24gbWF5IG5vdCBuZWVkIHRvIHNjYW4gdGhlIGNoYXIgYXJyYXkgYXQgYWxsIGlmIHN0YXJ0IGFuZAorICAgICAqIGxpbWl0IGlzIHdpdGhpbiBhIGNlcnRhaW4gcmFuZ2UsIGFuZCBuZXZlciBuZWVkcyB0byBjb3VudCBtb3JlIHRoYW4KKyAgICAgKiAnbnVtYmVyICsgMScgY29kZSBwb2ludHMuCisgICAgICogTG9naWNhbGx5IGVxdWl2YWxlbnQgdG8gKGNvdW50Q29kZVBvaW50KHNvdXJjZSwgc3RhcnQsIGxpbWl0KSA+IG51bWJlcikuCisgICAgICogQSBVbmljb2RlIGNvZGUgcG9pbnQgbWF5IG9jY3VweSBlaXRoZXIgb25lIG9yIHR3byBjb2RlIHVuaXRzLgorICAgICAqIEBwYXJhbSBzb3VyY2UgYXJyYXkgb2YgVVRGLTE2IGNoYXJzCisgICAgICogQHBhcmFtIHN0YXJ0IG9mZnNldCB0byBzdWJzdHJpbmcgaW4gdGhlIHNvdXJjZSBhcnJheSBmb3IgYW5hbHl6aW5nCisgICAgICogQHBhcmFtIGxpbWl0IG9mZnNldCB0byBzdWJzdHJpbmcgaW4gdGhlIHNvdXJjZSBhcnJheSBmb3IgYW5hbHl6aW5nCisgICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIHRoZSBzdHJpbmcgaXMgY29tcGFyZWQKKyAgICAgKiAgICAgICAgICAgICAgIGFnYWluc3QgdGhlICdudW1iZXInIHBhcmFtZXRlci4KKyAgICAgKiBAcmV0dXJuIGJvb2xlYW4gdmFsdWUgZm9yIHdoZXRoZXIgdGhlIHN0cmluZyBjb250YWlucyBtb3JlIFVuaWNvZGUgY29kZQorICAgICAqICAgICAgICAgcG9pbnRzIHRoYW4gJ251bWJlcicuCisgICAgICogQGV4Y2VwdGlvbiBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHRocm93biB3aGVuIGxpbWl0ICZsdDsgc3RhcnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaGFzTW9yZUNvZGVQb2ludHNUaGFuKGNoYXIgc291cmNlW10sIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwgaW50IG51bWJlcikKKyAgICB7CisgICAgICAgIGludCBsZW5ndGggPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICBpZiAobGVuZ3RoIDwgMCB8fCBzdGFydCA8IDAgfHwgbGltaXQgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdGFydCBhbmQgbGltaXQgaW5kZXhlcyBzaG91bGQgYmUgbm9uLW5lZ2F0aXZlIGFuZCBzdGFydCA8PSBsaW1pdCIpOworICAgICAgICB9CisgICAgICAgIGlmIChudW1iZXIgPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGxlbmd0aCA+PSAwIGtub3duCisgICAgICAgIC8vIHNvdXJjZSBjb250YWlucyBhdCBsZWFzdCAobGVuZ3RoICsgMSkgLyAyIGNvZGUgcG9pbnRzOiA8PSAyCisgICAgICAgIC8vIGNoYXJzIHBlciBjcAorICAgICAgICBpZiAoKChsZW5ndGggKyAxKSA+PiAxKSA+IG51bWJlcikgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBjaGVjayBpZiBzb3VyY2UgZG9lcyBub3QgZXZlbiBjb250YWluIGVub3VnaCBjaGFycworICAgICAgICBpbnQgbWF4c3VwcGxlbWVudGFyeSA9IGxlbmd0aCAtIG51bWJlcjsKKyAgICAgICAgaWYgKG1heHN1cHBsZW1lbnRhcnkgPD0gMCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGhlcmUgYXJlIG1heHN1cHBsZW1lbnRhcnkgPSBsZW5ndGggLSBudW1iZXIgbW9yZSBjaGFycyB0aGFuCisgICAgICAgIC8vIGFza2VkLWZvciBjb2RlIHBvaW50cworCisgICAgICAgIC8vIGNvdW50IGNvZGUgcG9pbnRzIHVudGlsIHRoZXkgZXhjZWVkIGFuZCBhbHNvIGNoZWNrIHRoYXQgdGhlcmUgYXJlCisgICAgICAgIC8vIG5vIG1vcmUgdGhhbiBtYXhzdXBwbGVtZW50YXJ5IHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgKGNoYXIgcGFpcnMpCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAobGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobnVtYmVyID09IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc291cmNlW3N0YXJ0ICsrXSkgJiYgc3RhcnQgIT0gbGltaXQKKyAgICAgICAgICAgICAgICAmJiBpc1RyYWlsU3Vycm9nYXRlKHNvdXJjZVtzdGFydF0pKSB7CisgICAgICAgICAgICAgICAgc3RhcnQgKys7CisgICAgICAgICAgICAgICAgaWYgKC0tIG1heHN1cHBsZW1lbnRhcnkgPD0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0b28gbWFueSBwYWlycyAtIHRvbyBmZXcgY29kZSBwb2ludHMKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0tIG51bWJlcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIGlmIHRoZSBzdHJpbmcgYnVmZmVyIGNvbnRhaW5zIG1vcmUgVW5pY29kZSBjb2RlIHBvaW50cyB0aGFuIGEKKyAgICAgKiBjZXJ0YWluIG51bWJlci4gVGhpcyBpcyBtb3JlIGVmZmljaWVudCB0aGFuIGNvdW50aW5nIGFsbCBjb2RlIHBvaW50cyBpbgorICAgICAqIHRoZSBlbnRpcmUgc3RyaW5nIGJ1ZmZlciBhbmQgY29tcGFyaW5nIHRoYXQgbnVtYmVyIHdpdGggYSB0aHJlc2hvbGQuCisgICAgICogVGhpcyBmdW5jdGlvbiBtYXkgbm90IG5lZWQgdG8gc2NhbiB0aGUgc3RyaW5nIGJ1ZmZlciBhdCBhbGwgaWYgdGhlCisgICAgICogbGVuZ3RoIGlzIHdpdGhpbiBhIGNlcnRhaW4gcmFuZ2UsIGFuZCBuZXZlciBuZWVkcyB0byBjb3VudCBtb3JlIHRoYW4KKyAgICAgKiAnbnVtYmVyICsgMScgY29kZSBwb2ludHMuIExvZ2ljYWxseSBlcXVpdmFsZW50IHRvCisgICAgICogKGNvdW50Q29kZVBvaW50KHMpID4gbnVtYmVyKS4gQSBVbmljb2RlIGNvZGUgcG9pbnQgbWF5IG9jY3VweSBlaXRoZXIgb25lCisgICAgICogb3IgdHdvIGNvZGUgdW5pdHMuCisgICAgICogQHBhcmFtIHNvdXJjZSBUaGUgaW5wdXQgc3RyaW5nIGJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gbnVtYmVyIFRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMgaW4gdGhlIHN0cmluZyBidWZmZXIgaXMgY29tcGFyZWQKKyAgICAgKiAgICAgICAgICAgICAgIGFnYWluc3QgdGhlICdudW1iZXInIHBhcmFtZXRlci4KKyAgICAgKiBAcmV0dXJuIGJvb2xlYW4gdmFsdWUgZm9yIHdoZXRoZXIgdGhlIHN0cmluZyBidWZmZXIgY29udGFpbnMgbW9yZQorICAgICAqICAgICAgICAgVW5pY29kZSBjb2RlIHBvaW50cyB0aGFuICdudW1iZXInLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBoYXNNb3JlQ29kZVBvaW50c1RoYW4oU3RyaW5nQnVmZmVyIHNvdXJjZSwgaW50IG51bWJlcikKKyAgICB7CisgICAgICAgIGlmIChudW1iZXIgPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc291cmNlID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpbnQgbGVuZ3RoID0gc291cmNlLmxlbmd0aCgpOworCisgICAgICAgIC8vIGxlbmd0aCA+PSAwIGtub3duCisgICAgICAgIC8vIHNvdXJjZSBjb250YWlucyBhdCBsZWFzdCAobGVuZ3RoICsgMSkgLyAyIGNvZGUgcG9pbnRzOiA8PSAyCisgICAgICAgIC8vIGNoYXJzIHBlciBjcAorICAgICAgICBpZiAoKChsZW5ndGggKyAxKSA+PiAxKSA+IG51bWJlcikgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBjaGVjayBpZiBzb3VyY2UgZG9lcyBub3QgZXZlbiBjb250YWluIGVub3VnaCBjaGFycworICAgICAgICBpbnQgbWF4c3VwcGxlbWVudGFyeSA9IGxlbmd0aCAtIG51bWJlcjsKKyAgICAgICAgaWYgKG1heHN1cHBsZW1lbnRhcnkgPD0gMCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLy8gdGhlcmUgYXJlIG1heHN1cHBsZW1lbnRhcnkgPSBsZW5ndGggLSBudW1iZXIgbW9yZSBjaGFycyB0aGFuCisgICAgICAgIC8vIGFza2VkLWZvciBjb2RlIHBvaW50cworCisgICAgICAgIC8vIGNvdW50IGNvZGUgcG9pbnRzIHVudGlsIHRoZXkgZXhjZWVkIGFuZCBhbHNvIGNoZWNrIHRoYXQgdGhlcmUgYXJlCisgICAgICAgIC8vIG5vIG1vcmUgdGhhbiBtYXhzdXBwbGVtZW50YXJ5IHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgKGNoYXIgcGFpcnMpCisgICAgICAgIGludCBzdGFydCA9IDA7CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpZiAobGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobnVtYmVyID09IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpc0xlYWRTdXJyb2dhdGUoc291cmNlLmNoYXJBdChzdGFydCArKykpICYmIHN0YXJ0ICE9IGxlbmd0aAorICAgICAgICAgICAgICAgICYmIGlzVHJhaWxTdXJyb2dhdGUoc291cmNlLmNoYXJBdChzdGFydCkpKSB7CisgICAgICAgICAgICAgICAgc3RhcnQgKys7CisgICAgICAgICAgICAgICAgaWYgKC0tIG1heHN1cHBsZW1lbnRhcnkgPD0gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyB0b28gbWFueSBwYWlycyAtIHRvbyBmZXcgY29kZSBwb2ludHMKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0tIG51bWJlcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvdmVyIEpESyAxLjUgQVBJLiAgQ3JlYXRlIGEgU3RyaW5nIGZyb20gYW4gYXJyYXkgb2YgY29kZVBvaW50cy4KKyAgICAgKiBAcGFyYW0gY29kZVBvaW50cyB0aGUgY29kZSBhcnJheQorICAgICAqIEBwYXJhbSBvZmZzZXQgICAgIHRoZSBzdGFydCBvZiB0aGUgdGV4dCBpbiB0aGUgY29kZSBwb2ludCBhcnJheQorICAgICAqIEBwYXJhbSBjb3VudCAgICAgIHRoZSBudW1iZXIgb2YgY29kZSBwb2ludHMKKyAgICAgKiBAcmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29kZSBwb2ludHMgYmV0d2VlbiBvZmZzZXQgYW5kIGNvdW50CisgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgYW4gaW52YWxpZCBjb2RlIHBvaW50IGlzIGVuY291bnRlcmVkCisgICAgICogQHRocm93cyBJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uICBpZiB0aGUgb2Zmc2V0IG9yIGNvdW50IGFyZSBvdXQgb2YgYm91bmRzLgorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgbmV3U3RyaW5nKGludFtdIGNvZGVQb2ludHMsIGludCBvZmZzZXQsIGludCBjb3VudCkgeworICAgICAgICBpZiAoY291bnQgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgY2hhcltdIGNoYXJzID0gbmV3IGNoYXJbY291bnRdOworICAgICAgICBpbnQgdyA9IDA7CisgICAgICAgIGZvciAoaW50IHIgPSBvZmZzZXQsIGUgPSBvZmZzZXQgKyBjb3VudDsgciA8IGU7ICsrcikgeworICAgICAgICAgICAgaW50IGNwID0gY29kZVBvaW50c1tyXTsKKyAgICAgICAgICAgIGlmIChjcCA8IDAgfHwgY3AgPiAweDEwZmZmZikgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNwIDwgMHgwMTAwMDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJzW3ddID0gKGNoYXIpY3A7CisgICAgICAgICAgICAgICAgICAgICAgICB3Kys7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyc1t3XSA9IChjaGFyKShMRUFEX1NVUlJPR0FURV9PRkZTRVRfICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjcCA+PiBMRUFEX1NVUlJPR0FURV9TSElGVF8pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJzW3crMV0gPSAoY2hhcikoVFJBSUxfU1VSUk9HQVRFX01JTl9WQUxVRSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjcCAmIFRSQUlMX1NVUlJPR0FURV9NQVNLXykpOworICAgICAgICAgICAgICAgICAgICAgICAgdyArPSAyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgbmV3bGVuID0gKGludCkoTWF0aC5jZWlsKChkb3VibGUpY29kZVBvaW50cy5sZW5ndGggKiAodysyKSAvIChyLW9mZnNldCsxKSkpOworICAgICAgICAgICAgICAgICAgICBjaGFyW10gdGVtcCA9IG5ldyBjaGFyW25ld2xlbl07CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoY2hhcnMsIDAsIHRlbXAsIDAsIHcpOworICAgICAgICAgICAgICAgICAgICBjaGFycyA9IHRlbXA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nKGNoYXJzLCAwLCB3KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5VVEYxNiBzdHJpbmcgY29tcGFyYXRvciBjbGFzcy4KKyAgICAgKiBBbGxvd3MgVVRGMTYgc3RyaW5nIGNvbXBhcmlzb24gdG8gYmUgZG9uZSB3aXRoIHRoZSB2YXJpb3VzIG1vZGVzPC9wPgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+IENvZGUgcG9pbnQgY29tcGFyaXNvbiBvciBjb2RlIHVuaXQgY29tcGFyaXNvbgorICAgICAqIDxsaT4gQ2FzZSBzZW5zaXRpdmUgY29tcGFyaXNvbiwgY2FzZSBpbnNlbnNpdGl2ZSBjb21wYXJpc29uIG9yIGNhc2UKKyAgICAgKiAgICAgIGluc2Vuc2l0aXZlIGNvbXBhcmlzb24gd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZvciBjaGFyYWN0ZXIgJ2knLgorICAgICAqIDwvdWw+CisgICAgICogPHA+VGhlIGNvZGUgdW5pdCBvciBjb2RlIHBvaW50IGNvbXBhcmlzb24gZGlmZmVyIG9ubHkgd2hlbiBjb21wYXJpbmcKKyAgICAgKiBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzICgmIzkyO3UxMDAwMC4uJiM5Mjt1MTBmZmZmKSB0byBCTVAgY29kZSBwb2ludHMKKyAgICAgKiBuZWFyIHRoZSBlbmQgb2YgdGhlIEJNUCAoaS5lLiwgJiM5Mjt1ZTAwMC4uJiM5Mjt1ZmZmZikuIEluIGNvZGUgdW5pdAorICAgICAqIGNvbXBhcmlzb24sIGhpZ2ggQk1QIGNvZGUgcG9pbnRzIHNvcnQgYWZ0ZXIgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICAgICAqIGJlY2F1c2UgdGhleSBhcmUgc3RvcmVkIGFzIHBhaXJzIG9mIHN1cnJvZ2F0ZXMgd2hpY2ggYXJlIGF0CisgICAgICogJiM5Mjt1ZDgwMC4uJiM5Mjt1ZGZmZi48L3A+CisgICAgICogQHNlZSAjRk9MRF9DQVNFX0RFRkFVTFQKKyAgICAgKiBAc2VlICNGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFN0cmluZ0NvbXBhcmF0b3IgaW1wbGVtZW50cyBqYXZhLnV0aWwuQ29tcGFyYXRvcgorICAgIHsKKyAgICAgICAgLy8gcHVibGljIGNvbnN0cnVjdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yIHRoYXQgZG9lcyBjb2RlIHVuaXQgY29tcGFyaXNvbiBhbmQgY2FzZQorICAgICAgICAgKiBzZW5zaXRpdmUgY29tcGFyaXNvbi4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nQ29tcGFyYXRvcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMoZmFsc2UsIGZhbHNlLCBGT0xEX0NBU0VfREVGQVVMVCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0b3IgdGhhdCBkb2VzIGNvbXBhcmlzb24gYmFzZWQgb24gdGhlIGFyZ3VtZW50IG9wdGlvbnMuCisgICAgICAgICAqIEBwYXJhbSBjb2RlcG9pbnRjb21wYXJlIGZsYWcgdG8gaW5kaWNhdGUgdHJ1ZSBmb3IgY29kZSBwb2ludAorICAgICAgICAgKiAgICAgICAgY29tcGFyaXNvbiBvciBmYWxzZSBmb3IgY29kZSB1bml0IGNvbXBhcmlzb24uCisgICAgICAgICAqIEBwYXJhbSBpZ25vcmVjYXNlIGZhbHNlIGZvciBjYXNlIHNlbnNpdGl2ZSBjb21wYXJpc29uLCB0cnVlIGZvcgorICAgICAgICAgKiAgICAgICAgY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uCisgICAgICAgICAqIEBwYXJhbSBmb2xkY2FzZW9wdGlvbiBGT0xEX0NBU0VfREVGQVVMVCBvcgorICAgICAgICAgKiAgICAgICAgRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JLiBUaGlzIG9wdGlvbiBpcyB1c2VkIG9ubHkgd2hlbgorICAgICAgICAgKiAgICAgICAgaWdub3JlY2FzZSBpcyBzZXQgdG8gdHJ1ZS4gSWYgaWdub3JlY2FzZSBpcyBmYWxzZSwgdGhpcyBvcHRpb24KKyAgICAgICAgICogICAgICAgIGlzIGlnbm9yZWQuCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9ERUZBVUxUCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICAgICAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBmb2xkY2FzZW9wdGlvbiBpcyBvdXQgb2YgcmFuZ2UKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nQ29tcGFyYXRvcihib29sZWFuIGNvZGVwb2ludGNvbXBhcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaWdub3JlY2FzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZvbGRjYXNlb3B0aW9uKQorICAgICAgICB7CisgICAgICAgICAgICBzZXRDb2RlUG9pbnRDb21wYXJlKGNvZGVwb2ludGNvbXBhcmUpOworICAgICAgICAgICAgbV9pZ25vcmVDYXNlXyA9IGlnbm9yZWNhc2U7CisgICAgICAgICAgICBpZiAoZm9sZGNhc2VvcHRpb24gPCBGT0xEX0NBU0VfREVGQVVMVAorICAgICAgICAgICAgICAgIHx8IGZvbGRjYXNlb3B0aW9uID4gRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBmb2xkIGNhc2Ugb3B0aW9uIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2ZvbGRDYXNlXyA9IGZvbGRjYXNlb3B0aW9uOworICAgICAgICB9CisKKyAgICAgICAgLy8gcHVibGljIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiA8cD5PcHRpb24gdmFsdWUgZm9yIGNhc2UgZm9sZGluZyBjb21wYXJpc29uOjwvcD4KKyAgICAgICAgICogPHA+Q29tcGFyaXNvbiBpcyBjYXNlIGluc2Vuc2l0aXZlLCBzdHJpbmdzIGFyZSBmb2xkZWQgdXNpbmcgZGVmYXVsdAorICAgICAgICAgKiBtYXBwaW5ncyBkZWZpbmVkIGluIFVuaWNvZGUgZGF0YSBmaWxlIENhc2VGb2xkaW5nLnR4dCwgYmVmb3JlCisgICAgICAgICAqIGNvbXBhcmlzb24uCisgICAgICAgICAqIDwvcD4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT0xEX0NBU0VfREVGQVVMVCA9IDA7CisgICAgICAgIC8qKgorICAgICAgICAgKiA8cD5PcHRpb24gdmFsdWUgZm9yIGNhc2UgZm9sZGluZyBjb21wYXJpc29uOjwvcD4KKyAgICAgICAgICogPHA+Q29tcGFyaXNvbiBpcyBjYXNlIGluc2Vuc2l0aXZlLCBzdHJpbmdzIGFyZSBmb2xkZWQgdXNpbmcgbW9kaWZpZWQKKyAgICAgICAgICogbWFwcGluZ3MgZGVmaW5lZCBpbiBVbmljb2RlIGRhdGEgZmlsZSBDYXNlRm9sZGluZy50eHQsIGJlZm9yZQorICAgICAgICAgKiBjb21wYXJpc29uLgorICAgICAgICAgKiA8L3A+CisgICAgICAgICAqIDxwPlRoZSBtb2RpZmllZCBzZXQgb2YgbWFwcGluZ3MgaXMgcHJvdmlkZWQgaW4gYSBVbmljb2RlIGRhdGEgZmlsZQorICAgICAgICAgKiBDYXNlRm9sZGluZy50eHQgdG8gaGFuZGxlIGRvdHRlZCBJIGFuZCBkb3RsZXNzIGkgYXBwcm9wcmlhdGVseSBmb3IKKyAgICAgICAgICogVHVya2ljIGxhbmd1YWdlcyAodHIsIGF6KS48L3A+CisgICAgICAgICAqIDxwPkJlZm9yZSBVbmljb2RlIDMuMiwgQ2FzZUZvbGRpbmcudHh0IGNvbnRhaW5zIG1hcHBpbmdzIG1hcmtlZCB3aXRoCisgICAgICAgICAqICdJJyB0aGF0IGFyZSB0byBiZSBpbmNsdWRlZCBmb3IgZGVmYXVsdCBtYXBwaW5ncyBhbmQgZXhjbHVkZWQgZm9yCisgICAgICAgICAqIHRoZSBUdXJraWMtc3BlY2lmaWMgbWFwcGluZ3MuPC9wPgorICAgICAgICAgKiA8cD5Vbmljb2RlIDMuMiBDYXNlRm9sZGluZy50eHQgaW5zdGVhZCBjb250YWlucyBtYXBwaW5ncyBtYXJrZWQgd2l0aAorICAgICAgICAgKiAnVCcgdGhhdCBhcmUgdG8gYmUgZXhjbHVkZWQgZm9yIGRlZmF1bHQgbWFwcGluZ3MgYW5kIGluY2x1ZGVkIGZvcgorICAgICAgICAgKiB0aGUgVHVya2ljLXNwZWNpZmljIG1hcHBpbmdzLjwvcD4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kgPSAxOworCisgICAgICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvLyBwdWJsaWMgc2V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldHMgdGhlIGNvbXBhcmlzb24gbW9kZSB0byBjb2RlIHBvaW50IGNvbXBhcmUgaWYgZmxhZyBpcyB0cnVlLgorICAgICAgICAgKiBPdGhlcndpc2UgY29tcGFyaXNvbiBtb2RlIGlzIHNldCB0byBjb2RlIHVuaXQgY29tcGFyZQorICAgICAgICAgKiBAcGFyYW0gZmxhZyB0cnVlIGZvciBjb2RlIHBvaW50IGNvbXBhcmUsIGZhbHNlIGZvciBjb2RlIHVuaXQgY29tcGFyZQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldENvZGVQb2ludENvbXBhcmUoYm9vbGVhbiBmbGFnKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZmxhZykgeworICAgICAgICAgICAgICAgIG1fY29kZVBvaW50Q29tcGFyZV8gPSBOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1fY29kZVBvaW50Q29tcGFyZV8gPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldHMgdGhlIENvbXBhcmF0b3IgdG8gY2FzZS1pbnNlbnNpdGl2ZSBjb21wYXJpc29uIG1vZGUgaWYgYXJndW1lbnQKKyAgICAgICAgICogaXMgdHJ1ZSwgb3RoZXJ3aXNlIGNhc2Ugc2Vuc2l0aXZlIGNvbXBhcmlzb24gbW9kZSBpZiBzZXQgdG8gZmFsc2UuCisgICAgICAgICAqIEBwYXJhbSBpZ25vcmVjYXNlIHRydWUgZm9yIGNhc2UtaW5zaXRpdmUgY29tcGFyaXNvbiwgZmFsc2UgZm9yCisgICAgICAgICAqICAgICAgICBjYXNlIHNlbnNpdGl2ZSBjb21wYXJpc29uCisgICAgICAgICAqIEBwYXJhbSBmb2xkY2FzZW9wdGlvbiBGT0xEX0NBU0VfREVGQVVMVCBvcgorICAgICAgICAgKiAgICAgICAgRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JLiBUaGlzIG9wdGlvbiBpcyB1c2VkIG9ubHkgd2hlbgorICAgICAgICAgKiAgICAgICAgaWdub3JlY2FzZSBpcyBzZXQgdG8gdHJ1ZS4gSWYgaWdub3JlY2FzZSBpcyBmYWxzZSwgdGhpcyBvcHRpb24KKyAgICAgICAgICogICAgICAgIGlzIGlnbm9yZWQuCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9ERUZBVUxUCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHNldElnbm9yZUNhc2UoYm9vbGVhbiBpZ25vcmVjYXNlLCBpbnQgZm9sZGNhc2VvcHRpb24pCisgICAgICAgIHsKKyAgICAgICAgICAgIG1faWdub3JlQ2FzZV8gPSBpZ25vcmVjYXNlOworICAgICAgICAgICAgaWYgKGZvbGRjYXNlb3B0aW9uIDwgRk9MRF9DQVNFX0RFRkFVTFQKKyAgICAgICAgICAgICAgICB8fCBmb2xkY2FzZW9wdGlvbiA+IEZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZm9sZCBjYXNlIG9wdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV9mb2xkQ2FzZV8gPSBmb2xkY2FzZW9wdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHB1YmxpYyBnZXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ2hlY2tzIGlmIHRoZSBjb21wYXJpc29uIG1vZGUgaXMgY29kZSBwb2ludCBjb21wYXJlLgorICAgICAgICAgKiBAcmV0dXJuIHRydWUgZm9yIGNvZGUgcG9pbnQgY29tcGFyZSwgZmFsc2UgZm9yIGNvZGUgdW5pdCBjb21wYXJlCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gZ2V0Q29kZVBvaW50Q29tcGFyZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2NvZGVQb2ludENvbXBhcmVfID09IE5vcm1hbGl6ZXIuQ09NUEFSRV9DT0RFX1BPSU5UX09SREVSOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoZWNrcyBpZiBDb21wYXJhdG9yIGlzIGluIHRoZSBjYXNlIGluc2Vuc2l0aXZlIG1vZGUuCisgICAgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBDb21wYXJhdG9yIHBlcmZvcm1zIGNhc2UgaW5zZW5zaXRpdmUgY29tcGFyaXNvbiwKKyAgICAgICAgICogICAgICAgICBmYWxzZSBvdGhlcndpc2UKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgYm9vbGVhbiBnZXRJZ25vcmVDYXNlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1faWdub3JlQ2FzZV87CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogR2V0cyB0aGUgZm9sZCBjYXNlIG9wdGlvbnMgc2V0IGluIENvbXBhcmF0b3IgdG8gYmUgdXNlZCB3aXRoIGNhc2UKKyAgICAgICAgICogaW5zZW5zaXRpdmUgY29tcGFyaXNvbi4KKyAgICAgICAgICogQHJldHVybiBlaXRoZXIgRk9MRF9DQVNFX0RFRkFVTFQgb3IgRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9ERUZBVUxUCisgICAgICAgICAqIEBzZWUgI0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0SWdub3JlQ2FzZU9wdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2ZvbGRDYXNlXzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHB1YmxpYyBvdGhlciBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29tcGFyZSB0d28gc3RyaW5ncyBkZXBlbmRpbmcgb24gdGhlIG9wdGlvbnMgc2VsZWN0ZWQgZHVyaW5nCisgICAgICAgICAqIGNvbnN0cnVjdGlvbi4KKyAgICAgICAgICogQHBhcmFtIGEgZmlyc3Qgc291cmNlIHN0cmluZy4KKyAgICAgICAgICogQHBhcmFtIGIgc2Vjb25kIHNvdXJjZSBzdHJpbmcuCisgICAgICAgICAqIEByZXR1cm4gMCByZXR1cm5lZCBpZiBhID09IGIuIElmIGEgPCBiLCBhIG5lZ2F0aXZlIHZhbHVlIGlzIHJldHVybmVkLgorICAgICAgICAgKiAgICAgICAgIE90aGVyd2lzZSBpZiBhID4gYiwgYSBwb3NpdGl2ZSB2YWx1ZSBpcyByZXR1cm5lZC4KKyAgICAgICAgICogQGV4Y2VwdGlvbiBDbGFzc0Nhc3RFeGNlcHRpb24gdGhyb3duIHdoZW4gZWl0aGVyIGEgb3IgYiBpcyBub3QgYQorICAgICAgICAgKiAgICAgICAgICAgIFN0cmluZyBvYmplY3QKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGEsIE9iamVjdCBiKQorICAgICAgICB7CisgICAgICAgICAgICBTdHJpbmcgc3RyMSA9IChTdHJpbmcpYTsKKyAgICAgICAgICAgIFN0cmluZyBzdHIyID0gKFN0cmluZyliOworCisgICAgICAgICAgICBpZiAoc3RyMSA9PSBzdHIyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RyMSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0cjIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobV9pZ25vcmVDYXNlXykgeworICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ2FzZUluc2Vuc2l0aXZlKHN0cjEsIHN0cjIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDYXNlU2Vuc2l0aXZlKHN0cjEsIHN0cjIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvZGUgdW5pdCBjb21wYXJpc29uIGZsYWcuIFRydWUgaWYgY29kZSB1bml0IGNvbXBhcmlzb24gaXMgcmVxdWlyZWQuCisgICAgICAgICAqIEZhbHNlIGlmIGNvZGUgcG9pbnQgY29tcGFyaXNvbiBpcyByZXF1aXJlZC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG1fY29kZVBvaW50Q29tcGFyZV87CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZvbGQgY2FzZSBjb21wYXJpc29uIG9wdGlvbi4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IG1fZm9sZENhc2VfOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBGbGFnIGluZGljYXRvciBpZiBpZ25vcmUgY2FzZSBpcyB0byBiZSB1c2VkIGR1cmluZyBjb21wYXJpc29uCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gbV9pZ25vcmVDYXNlXzsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29kZSBwb2ludCBvcmRlciBvZmZzZXQgZm9yIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ09ERV9QT0lOVF9DT01QQVJFX1NVUlJPR0FURV9PRkZTRVRfID0gMHgyODAwOworCisgICAgICAgIC8vIHByaXZhdGUgbWV0aG9kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb21wYXJlcyBjYXNlIGluc2Vuc2l0aXZlLiBUaGlzIGlzIGEgZGlyZWN0IHBvcnQgb2YgSUNVNEMsIHRvIG1ha2UKKyAgICAgICAgICogbWFpbnRhaW5lbmNlIGxpZmUgZWFzaWVyLgorICAgICAgICAgKiBAcGFyYW0gczEgZmlyc3Qgc3RyaW5nIHRvIGNvbXBhcmUKKyAgICAgICAgICogQHBhcmFtIHMyIHNlY29uZCBzdHJpbmcgdG8gY29tcGFyZQorICAgICAgICAgKiBAcmV0dXJuIC0xIGlzIHMxICZsdDsgczIsIDAgaWYgZXF1YWxzLAorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgY29tcGFyZUNhc2VJbnNlbnNpdGl2ZShTdHJpbmcgczEsIFN0cmluZyBzMikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIE5vcm1hbGl6ZXJJbXBsLmNtcEVxdWl2Rm9sZChzMSwgczIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZm9sZENhc2VfIHwgbV9jb2RlUG9pbnRDb21wYXJlXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5vcm1hbGl6ZXIuQ09NUEFSRV9JR05PUkVfQ0FTRSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQ29tcGFyZXMgY2FzZSBzZW5zaXRpdmUuIFRoaXMgaXMgYSBkaXJlY3QgcG9ydCBvZiBJQ1U0QywgdG8gbWFrZQorICAgICAgICAgKiBtYWludGFpbmVuY2UgbGlmZSBlYXNpZXIuCisgICAgICAgICAqIEBwYXJhbSBzMSBmaXJzdCBzdHJpbmcgdG8gY29tcGFyZQorICAgICAgICAgKiBAcGFyYW0gczIgc2Vjb25kIHN0cmluZyB0byBjb21wYXJlCisgICAgICAgICAqIEByZXR1cm4gLTEgaXMgczEgJmx0OyBzMiwgMCBpZiBlcXVhbHMsCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBjb21wYXJlQ2FzZVNlbnNpdGl2ZShTdHJpbmcgczEsIFN0cmluZyBzMikKKyAgICAgICAgeworICAgICAgICAgICAgLy8gY29tcGFyZSBpZGVudGljYWwgcHJlZml4ZXMgLSB0aGV5IGRvIG5vdCBuZWVkIHRvIGJlIGZpeGVkIHVwCisgICAgICAgICAgICAvLyBsaW1pdDEgPSBzdGFydDEgKyBtaW4obGVuZ2h0MSwgbGVuZ3RoMikKKyAgICAgICAgICAgIGludCBsZW5ndGgxID0gczEubGVuZ3RoKCk7CisgICAgICAgICAgICBpbnQgbGVuZ3RoMiA9IHMyLmxlbmd0aCgpOworICAgICAgICAgICAgaW50IG1pbmxlbmd0aCA9IGxlbmd0aDE7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICAgICAgICAgIGlmIChsZW5ndGgxIDwgbGVuZ3RoMikgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAobGVuZ3RoMSA+IGxlbmd0aDIpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAxOworICAgICAgICAgICAgICAgIG1pbmxlbmd0aCA9IGxlbmd0aDI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNoYXIgYzEgPSAwOworICAgICAgICAgICAgY2hhciBjMiA9IDA7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgZm9yICg7IGluZGV4IDwgbWlubGVuZ3RoOyBpbmRleCArKykgeworICAgICAgICAgICAgICAgIGMxID0gczEuY2hhckF0KGluZGV4KTsKKyAgICAgICAgICAgICAgICBjMiA9IHMyLmNoYXJBdChpbmRleCk7CisgICAgICAgICAgICAgICAgLy8gY2hlY2sgcHNldWRvLWxpbWl0CisgICAgICAgICAgICAgICAgaWYgKGMxICE9IGMyKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGluZGV4ID09IG1pbmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2xlYW4gY29kZXBvaW50Y29tcGFyZQorICAgICAgICAgICAgICAgID0gbV9jb2RlUG9pbnRDb21wYXJlXyA9PSBOb3JtYWxpemVyLkNPTVBBUkVfQ09ERV9QT0lOVF9PUkRFUjsKKyAgICAgICAgICAgIC8vIGlmIGJvdGggdmFsdWVzIGFyZSBpbiBvciBhYm92ZSB0aGUgc3Vycm9nYXRlIHJhbmdlLCBmaXggdGhlbSB1cAorICAgICAgICAgICAgaWYgKGMxID49IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRQorICAgICAgICAgICAgICAgICYmIGMyID49IExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAmJiBjb2RlcG9pbnRjb21wYXJlKSB7CisgICAgICAgICAgICAgICAgLy8gc3VidHJhY3QgMHgyODAwIGZyb20gQk1QIGNvZGUgcG9pbnRzIHRvIG1ha2UgdGhlbSBzbWFsbGVyCisgICAgICAgICAgICAgICAgLy8gdGhhbiBzdXBwbGVtZW50YXJ5IG9uZXMKKyAgICAgICAgICAgICAgICBpZiAoKGMxIDw9IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRSAmJiAoaW5kZXggKyAxKSAhPSBsZW5ndGgxCisgICAgICAgICAgICAgICAgICAgICAmJiBpc1RyYWlsU3Vycm9nYXRlKHMxLmNoYXJBdChpbmRleCArIDEpKSkKKyAgICAgICAgICAgICAgICAgICAgfHwgKGlzVHJhaWxTdXJyb2dhdGUoYzEpICYmIGluZGV4ICE9IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIGlzTGVhZFN1cnJvZ2F0ZShzMS5jaGFyQXQoaW5kZXggLSAxKSkpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgbGVhdmUgPj1kODAwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBCTVAgY29kZSBwb2ludCAtIG1heSBiZSBzdXJyb2dhdGUgY29kZSBwb2ludCAtIG1ha2UKKyAgICAgICAgICAgICAgICAgICAgLy8gPCBkODAwCisgICAgICAgICAgICAgICAgICAgIGMxIC09IENPREVfUE9JTlRfQ09NUEFSRV9TVVJST0dBVEVfT0ZGU0VUXzsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoKGMyIDw9IExFQURfU1VSUk9HQVRFX01BWF9WQUxVRQorICAgICAgICAgICAgICAgICAgICAgJiYgKGluZGV4ICsgMSkgIT0gbGVuZ3RoMgorICAgICAgICAgICAgICAgICAgICAgJiYgaXNUcmFpbFN1cnJvZ2F0ZShzMi5jaGFyQXQoaW5kZXggKyAxKSkpIHx8CisgICAgICAgICAgICAgICAgICAgIChpc1RyYWlsU3Vycm9nYXRlKGMyKSAmJiBpbmRleCAhPSAwCisgICAgICAgICAgICAgICAgICAgICAmJiBpc0xlYWRTdXJyb2dhdGUoczIuY2hhckF0KGluZGV4IC0gMSkpKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBwYXJ0IG9mIGEgc3Vycm9nYXRlIHBhaXIsIGxlYXZlID49ZDgwMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gQk1QIGNvZGUgcG9pbnQgLSBtYXkgYmUgc3Vycm9nYXRlIGNvZGUgcG9pbnQgLSBtYWtlIDxkODAwCisgICAgICAgICAgICAgICAgICAgIGMyIC09IENPREVfUE9JTlRfQ09NUEFSRV9TVVJST0dBVEVfT0ZGU0VUXzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIG5vdyBjMSBhbmQgYzIgYXJlIGluIFVURi0zMi1jb21wYXRpYmxlIG9yZGVyCisgICAgICAgICAgICByZXR1cm4gYzEgLSBjMjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHByaXZhdGUgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFNoaWZ0IHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSB0byBmb3JtIGEgc3VwcGxlbWVudGFyeSBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExFQURfU1VSUk9HQVRFX1NISUZUXyA9IDEwOworCisgICAgLyoqCisgICAgICogTWFzayB0byByZXRyaWV2ZSB0aGUgc2lnbmlmaWNhbnQgdmFsdWUgZnJvbSBhIHRyYWlsIHN1cnJvZ2F0ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVFJBSUxfU1VSUk9HQVRFX01BU0tfICAgICA9IDB4M0ZGOworCisgICAgLyoqCisgICAgICogVmFsdWUgdGhhdCBhbGwgbGVhZCBzdXJyb2dhdGUgc3RhcnRzIHdpdGgKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEVBRF9TVVJST0dBVEVfT0ZGU0VUXyA9CisgICAgICAgIExFQURfU1VSUk9HQVRFX01JTl9WQUxVRSAtCisgICAgICAgIChTVVBQTEVNRU5UQVJZX01JTl9WQUxVRQorICAgICAgICAgPj4gTEVBRF9TVVJST0dBVEVfU0hJRlRfKTsKKworICAgIC8vIHByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIDxwPkNvbnZlcnRzIGFyZ3VtZW50IGNvZGUgcG9pbnQgYW5kIHJldHVybnMgYSBTdHJpbmcgb2JqZWN0IHJlcHJlc2VudGluZworICAgICAqIHRoZSBjb2RlIHBvaW50J3MgdmFsdWUgaW4gVVRGMTYgZm9ybWF0LjwvcD4KKyAgICAgKiA8cD5UaGlzIG1ldGhvZCBkb2VzIG5vdCBjaGVjayBmb3IgdGhlIHZhbGlkaXR5IG9mIHRoZSBjb2RlcG9pbnQsIHRoZQorICAgICAqIHJlc3VsdHMgYXJlIG5vdCBndWFyYW50ZWVkIGlmIGEgaW52YWxpZCBjb2RlcG9pbnQgaXMgcGFzc2VkIGFzCisgICAgICogYXJndW1lbnQuPC9wPgorICAgICAqIDxwPlRoZSByZXN1bHQgaXMgYSBzdHJpbmcgd2hvc2UgbGVuZ3RoIGlzIDEgZm9yIG5vbi1zdXBwbGVtZW50YXJ5IGNvZGUKKyAgICAgKiBwb2ludHMsIDIgb3RoZXJ3aXNlLjwvcD4KKyAgICAgKiBAcGFyYW0gY2ggY29kZSBwb2ludAorICAgICAqIEByZXR1cm4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb2RlIHBvaW50CisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGludCBjaCkKKyAgICB7CisgICAgICAgIGlmIChjaCA8IFNVUFBMRU1FTlRBUllfTUlOX1ZBTFVFKSB7CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nLnZhbHVlT2YoKGNoYXIpY2gpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChnZXRMZWFkU3Vycm9nYXRlKGNoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoZ2V0VHJhaWxTdXJyb2dhdGUoY2gpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuZXNjYXBlVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuZXNjYXBlVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iOTE0ZDFlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5lc2NhcGVUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMjUxIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAxMS8xOS8yMDAxICBhbGl1ICAgICAgICBDcmVhdGlvbi4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CitpbXBvcnQgY29tLmlibS5pY3UubGFuZy4qOworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCBjb252ZXJ0cyBVbmljb2RlIGVzY2FwZSBmb3JtcyB0byB0aGUKKyAqIGNoYXJhY3RlcnMgdGhleSByZXByZXNlbnQuICBFc2NhcGUgZm9ybXMgaGF2ZSBhIHByZWZpeCwgYSBzdWZmaXgsIGEKKyAqIHJhZGl4LCBhbmQgbWluaW11bSBhbmQgbWF4aW11bSBkaWdpdCBjb3VudHMuCisgKgorICogPHA+VGhpcyBjbGFzcyBpcyBwYWNrYWdlIHByaXZhdGUuICBJdCByZWdpc3RlcnMgc2V2ZXJhbCBzdGFuZGFyZAorICogdmFyaWFudHMgd2l0aCB0aGUgc3lzdGVtIHdoaWNoIGFyZSB0aGVuIGFjY2Vzc2VkIHZpYSB0aGVpciBJRHMuCisgKgorICogQGF1dGhvciBBbGFuIExpdQorICovCitjbGFzcyBVbmVzY2FwZVRyYW5zbGl0ZXJhdG9yIGV4dGVuZHMgVHJhbnNsaXRlcmF0b3IgeworCisgICAgLyoqCisgICAgICogVGhlIGVuY29kZWQgcGF0dGVybiBzcGVjaWZpY2F0aW9uLiAgVGhlIHBhdHRlcm4gY29uc2lzdHMgb2YKKyAgICAgKiB6ZXJvIG9yIG1vcmUgZm9ybXMuICBFYWNoIGZvcm0gY29uc2lzdHMgb2YgYSBwcmVmaXgsIHN1ZmZpeCwKKyAgICAgKiByYWRpeCwgbWluaW11bSBkaWdpdCBjb3VudCwgYW5kIG1heGltdW0gZGlnaXQgY291bnQuICBUaGVzZQorICAgICAqIHZhbHVlcyBhcmUgc3RvcmVkIGFzIGEgZml2ZSBjaGFyYWN0ZXIgaGVhZGVyLiAgVGhhdCBpcywgdGhlaXIKKyAgICAgKiBudW1lcmljIHZhbHVlcyBhcmUgY2FzdCB0byAxNi1iaXQgY2hhcmFjdGVycyBhbmQgc3RvcmVkIGluIHRoZQorICAgICAqIHN0cmluZy4gIEZvbGxvd2luZyB0aGVzZSBmaXZlIGNoYXJhY3RlcnMsIHRoZSBwcmVmaXgKKyAgICAgKiBjaGFyYWN0ZXJzLCB0aGVuIHN1ZmZpeCBjaGFyYWN0ZXJzIGFyZSBzdG9yZWQuICBFYWNoIGZvcm0gdGh1cworICAgICAqIHRha2VzIG4rNSBjaGFyYWN0ZXJzLCB3aGVyZSBuIGlzIHRoZSB0b3RhbCBsZW5ndGggb2YgdGhlIHByZWZpeAorICAgICAqIGFuZCBzdWZmaXguICBUaGUgZW5kIGlzIG1hcmtlZCBieSBhIGhlYWRlciBvZiBsZW5ndGggb25lCisgICAgICogY29uc2lzdGluZyBvZiB0aGUgY2hhcmFjdGVyIEVORC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGNoYXIgc3BlY1tdOworCisgICAgLyoqCisgICAgICogU3BlY2lhbCBjaGFyYWN0ZXIgbWFya2luZyB0aGUgZW5kIG9mIHRoZSBzcGVjW10gYXJyYXkuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBFTkQgPSAweEZGRkY7CisKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgc3RhbmRhcmQgdmFyaWFudHMgd2l0aCB0aGUgc3lzdGVtLiAgQ2FsbGVkIGJ5CisgICAgICogVHJhbnNsaXRlcmF0b3IgZHVyaW5nIGluaXRpYWxpemF0aW9uLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyKCkgeworICAgICAgICAvLyBVbmljb2RlOiAiVSsxMEZGRkYiIGhleCwgbWluPTQsIG1heD02CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiSGV4LUFueS9Vbmljb2RlIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVbmVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJIZXgtQW55L1VuaWNvZGUiLCBuZXcgY2hhcltdIHsKKyAgICAgICAgICAgICAgICAgICAgMiwgMCwgMTYsIDQsIDYsICdVJywgJysnLAorICAgICAgICAgICAgICAgICAgICBFTkQKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICAvLyBKYXZhOiAiXFx1RkZGRiIgaGV4LCBtaW49NCwgbWF4PTQKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJIZXgtQW55L0phdmEiLCBuZXcgVHJhbnNsaXRlcmF0b3IuRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBUcmFuc2xpdGVyYXRvciBnZXRJbnN0YW5jZShTdHJpbmcgSUQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVuZXNjYXBlVHJhbnNsaXRlcmF0b3IoIkhleC1BbnkvSmF2YSIsIG5ldyBjaGFyW10geworICAgICAgICAgICAgICAgICAgICAyLCAwLCAxNiwgNCwgNCwgJ1xcJywgJ3UnLAorICAgICAgICAgICAgICAgICAgICBFTkQKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICAvLyBDOiAiXFx1RkZGRiIgaGV4LCBtaW49NCwgbWF4PTQ7IFxcVTAwMTBGRkZGIGhleCwgbWluPTgsIG1heD04CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiSGV4LUFueS9DIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVbmVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJIZXgtQW55L0MiLCBuZXcgY2hhcltdIHsKKyAgICAgICAgICAgICAgICAgICAgMiwgMCwgMTYsIDQsIDQsICdcXCcsICd1JywKKyAgICAgICAgICAgICAgICAgICAgMiwgMCwgMTYsIDgsIDgsICdcXCcsICdVJywKKyAgICAgICAgICAgICAgICAgICAgRU5ECisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgLy8gWE1MOiAiJiN4MTBGRkZGOyIgaGV4LCBtaW49MSwgbWF4PTYKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJIZXgtQW55L1hNTCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcigiSGV4LUFueS9YTUwiLCBuZXcgY2hhcltdIHsKKyAgICAgICAgICAgICAgICAgICAgMywgMSwgMTYsIDEsIDYsICcmJywgJyMnLCAneCcsICc7JywKKyAgICAgICAgICAgICAgICAgICAgRU5ECisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vIFhNTDEwOiAiJjExMTQxMTE7IiBkZWMsIG1pbj0xLCBtYXg9NyAobm90IHJlYWxseSAiSGV4LUFueSIpCisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiSGV4LUFueS9YTUwxMCIsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5lc2NhcGVUcmFuc2xpdGVyYXRvcigiSGV4LUFueS9YTUwxMCIsIG5ldyBjaGFyW10geworICAgICAgICAgICAgICAgICAgICAyLCAxLCAxMCwgMSwgNywgJyYnLCAnIycsICc7JywKKyAgICAgICAgICAgICAgICAgICAgRU5ECisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vIFBlcmw6ICJcXHh7MjYzQX0iIGhleCwgbWluPTEsIG1heD02CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeSgiSGV4LUFueS9QZXJsIiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVbmVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJIZXgtQW55L1BlcmwiLCBuZXcgY2hhcltdIHsKKyAgICAgICAgICAgICAgICAgICAgMywgMSwgMTYsIDEsIDYsICdcXCcsICd4JywgJ3snLCAnfScsCisgICAgICAgICAgICAgICAgICAgIEVORAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgICAgICAvLyBBbGw6IEphdmEsIEMsIFBlcmwsIFhNTCwgWE1MMTAsIFVuaWNvZGUKKyAgICAgICAgVHJhbnNsaXRlcmF0b3IucmVnaXN0ZXJGYWN0b3J5KCJIZXgtQW55IiwgbmV3IFRyYW5zbGl0ZXJhdG9yLkZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgVHJhbnNsaXRlcmF0b3IgZ2V0SW5zdGFuY2UoU3RyaW5nIElEKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVbmVzY2FwZVRyYW5zbGl0ZXJhdG9yKCJIZXgtQW55IiwgbmV3IGNoYXJbXSB7CisgICAgICAgICAgICAgICAgICAgIDIsIDAsIDE2LCA0LCA2LCAnVScsICcrJywgICAgICAgICAgICAvLyBVbmljb2RlCisgICAgICAgICAgICAgICAgICAgIDIsIDAsIDE2LCA0LCA0LCAnXFwnLCAndScsICAgICAgICAgICAvLyBKYXZhCisgICAgICAgICAgICAgICAgICAgIDIsIDAsIDE2LCA4LCA4LCAnXFwnLCAnVScsICAgICAgICAgICAvLyBDIChzdXJyb2dhdGVzKQorICAgICAgICAgICAgICAgICAgICAzLCAxLCAxNiwgMSwgNiwgJyYnLCAnIycsICd4JywgJzsnLCAgLy8gWE1MCisgICAgICAgICAgICAgICAgICAgIDIsIDEsIDEwLCAxLCA3LCAnJicsICcjJywgJzsnLCAgICAgICAvLyBYTUwxMAorICAgICAgICAgICAgICAgICAgICAzLCAxLCAxNiwgMSwgNiwgJ1xcJywgJ3gnLCAneycsICd9JywgLy8gUGVybAorICAgICAgICAgICAgICAgICAgICBFTkQKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFja2FnZSBwcml2YXRlIGNvbnN0cnVjdG9yLiAgVGFrZXMgdGhlIGVuY29kZWQgc3BlYyBhcnJheS4KKyAgICAgKi8KKyAgICBVbmVzY2FwZVRyYW5zbGl0ZXJhdG9yKFN0cmluZyBJRCwgY2hhciBzcGVjW10pIHsKKyAgICAgICAgc3VwZXIoSUQsIG51bGwpOworICAgICAgICB0aGlzLnNwZWMgPSBzcGVjOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIHBvcywgYm9vbGVhbiBpc0luY3JlbWVudGFsKSB7CisgICAgICAgIGludCBzdGFydCA9IHBvcy5zdGFydDsKKyAgICAgICAgaW50IGxpbWl0ID0gcG9zLmxpbWl0OworICAgICAgICBpbnQgaSwgaiwgaXBhdDsKKworICAgICAgbG9vcDoKKyAgICAgICAgd2hpbGUgKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgIC8vIExvb3Agb3ZlciB0aGUgZm9ybXMgaW4gc3BlY1tdLiAgRXhpdCB0aGlzIGxvb3Agd2hlbiB3ZQorICAgICAgICAgICAgLy8gbWF0Y2ggb25lIG9mIHRoZSBzcGVjcy4gIEV4aXQgdGhlIG91dGVyIGxvb3AgaWYgYQorICAgICAgICAgICAgLy8gcGFydGlhbCBtYXRjaCBpcyBkZXRlY3RlZCBhbmQgaXNJbmNyZW1lbnRhbCBpcyB0cnVlLgorICAgICAgICAgICAgZm9yIChqPTAsIGlwYXQ9MDsgc3BlY1tpcGF0XSAhPSBFTkQ7ICsraikgeworCisgICAgICAgICAgICAgICAgLy8gUmVhZCB0aGUgaGVhZGVyCisgICAgICAgICAgICAgICAgaW50IHByZWZpeExlbiA9IHNwZWNbaXBhdCsrXTsKKyAgICAgICAgICAgICAgICBpbnQgc3VmZml4TGVuID0gc3BlY1tpcGF0KytdOworICAgICAgICAgICAgICAgIGludCByYWRpeCAgICAgPSBzcGVjW2lwYXQrK107CisgICAgICAgICAgICAgICAgaW50IG1pbkRpZ2l0cyA9IHNwZWNbaXBhdCsrXTsKKyAgICAgICAgICAgICAgICBpbnQgbWF4RGlnaXRzID0gc3BlY1tpcGF0KytdOworCisgICAgICAgICAgICAgICAgLy8gcyBpcyBhIGNvcHkgb2Ygc3RhcnQgdGhhdCBpcyBhZHZhbmNlZCBvdmVyIHRoZQorICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlcnMgYXMgd2UgcGFyc2UgdGhlbS4KKyAgICAgICAgICAgICAgICBpbnQgcyA9IHN0YXJ0OworICAgICAgICAgICAgICAgIGJvb2xlYW4gbWF0Y2ggPSB0cnVlOworCisgICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8cHJlZml4TGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHMgPj0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgbWF0Y2hlZCBhIGNoYXJhY3Rlci4gIFRoaXMgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhIHBhcnRpYWwgbWF0Y2gsIHNvIHdlIHJldHVybiBpZiBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluY3JlbWVudGFsIG1vZGUuICBJbiBub24taW5jcmVtZW50YWwgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBnbyB0byB0aGUgbmV4dCBzcGVjLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0luY3JlbWVudGFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGxvb3A7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgY2hhciBjID0gdGV4dC5jaGFyQXQocysrKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gc3BlY1tpcGF0ICsgaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgdSA9IDA7CisgICAgICAgICAgICAgICAgICAgIGludCBkaWdpdENvdW50ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMgPj0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3IgcGFydGlhbCBtYXRjaCBpbiBpbmNyZW1lbnRhbCBtb2RlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzID4gc3RhcnQgJiYgaXNJbmNyZW1lbnRhbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBsb29wOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaCA9IHRleHQuY2hhcjMyQXQocyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGlnaXQgPSBVQ2hhcmFjdGVyLmRpZ2l0KGNoLCByYWRpeCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlnaXQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBzICs9IFVURjE2LmdldENoYXJDb3VudChjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICB1ID0gKHUgKiByYWRpeCkgKyBkaWdpdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgrK2RpZ2l0Q291bnQgPT0gbWF4RGlnaXRzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBtYXRjaCA9IChkaWdpdENvdW50ID49IG1pbkRpZ2l0cyk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGk9MDsgaTxzdWZmaXhMZW47ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvciBwYXJ0aWFsIG1hdGNoIGluIGluY3JlbWVudGFsIG1vZGUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzID4gc3RhcnQgJiYgaXNJbmNyZW1lbnRhbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgbG9vcDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBjID0gdGV4dC5jaGFyQXQocysrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyAhPSBzcGVjW2lwYXQgKyBwcmVmaXhMZW4gKyBpXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlIGhhdmUgYSBtYXRjaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzdHIgPSBVVEYxNi52YWx1ZU9mKHUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQucmVwbGFjZShzdGFydCwgcywgc3RyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCAtPSBzIC0gc3RhcnQgLSBzdHIubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBicmVhayBzdGF0ZW1lbnQgbGVhdmVzIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvb3AgdGhhdCBpcyB0cmF2ZXJzaW5nIHRoZSBmb3JtcyBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNbXS4gIFdlIHRoZW4gcGFyc2UgdGhlIG5leHQgaW5wdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXIuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpcGF0ICs9IHByZWZpeExlbiArIHN1ZmZpeExlbjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgICAgICBzdGFydCArPSBVVEYxNi5nZXRDaGFyQ291bnQodGV4dC5jaGFyMzJBdChzdGFydCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcG9zLmNvbnRleHRMaW1pdCArPSBsaW1pdCAtIHBvcy5saW1pdDsKKyAgICAgICAgcG9zLmxpbWl0ID0gbGltaXQ7CisgICAgICAgIHBvcy5zdGFydCA9IHN0YXJ0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVDb21wcmVzc29yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlQ29tcHJlc3Nvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyODUzNWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlQ29tcHJlc3Nvci5qYXZhCkBAIC0wLDAgKzEsMTAwNiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisqIEEgY29tcHJlc3Npb24gZW5naW5lIGltcGxlbWVudGluZyB0aGUgU3RhbmRhcmQgQ29tcHJlc3Npb24gU2NoZW1lCisqIGZvciBVbmljb2RlIChTQ1NVKSBhcyBvdXRsaW5lZCBpbiA8QQorKiBIUkVGPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjYiPlVuaWNvZGUgVGVjaG5pY2FsCisqIFJlcG9ydCAjNjwvQT4uCisqCisqIDxQPlRoZSBTQ1NVIHdvcmtzIGJ5IHVzaW5nIGR5bmFtaWNhbGx5IHBvc2l0aW9uZWQgPEVNPndpbmRvd3M8L0VNPgorKiBjb25zaXN0aW5nIG9mIDEyOCBjb25zZWN1dGl2ZSBjaGFyYWN0ZXJzIGluIFVuaWNvZGUuICBEdXJpbmcgY29tcHJlc3Npb24sIAorKiBjaGFyYWN0ZXJzIHdpdGhpbiBhIHdpbmRvdyBhcmUgZW5jb2RlZCBpbiB0aGUgY29tcHJlc3NlZCBzdHJlYW0gYXMgdGhlIGJ5dGVzIAorKiA8VFQ+MHg3RiAtIDB4RkY8L1RUPi4gVGhlIFNDU1UgcHJvdmlkZXMgdHJhbnNwYXJlbmN5IGZvciB0aGUgY2hhcmFjdGVycyAKKyogKGJ5dGVzKSBiZXR3ZWVuIDxUVD5VKzAwMDAgLSBVKzAwRkY8L1RUPi4gIFRoZSBTQ1NVIGFwcHJveGltYXRlcyB0aGUgCisqIHN0b3JhZ2Ugc2l6ZSBvZiB0cmFkaXRpb25hbCBjaGFyYWN0ZXIgc2V0cywgZm9yIGV4YW1wbGUgMSBieXRlIHBlcgorKiBjaGFyYWN0ZXIgZm9yIEFTQ0lJIG9yIExhdGluLTEgdGV4dCwgYW5kIDIgYnl0ZXMgcGVyIGNoYXJhY3RlciBmb3IgQ0pLCisqIGlkZW9ncmFwaHMuPC9QPgorKgorKiA8UD48U1RST05HPlVTQUdFPC9TVFJPTkc+PC9QPgorKgorKiA8UD5UaGUgc3RhdGljIG1ldGhvZHMgb24gPFRUPlVuaWNvZGVDb21wcmVzc29yPC9UVD4gbWF5IGJlIHVzZWQgaW4gYQorKiBzdHJhaWdodGZvcndhcmQgbWFubmVyIHRvIGNvbXByZXNzIHNpbXBsZSBzdHJpbmdzOjwvUD4KKyoKKyogPFBSRT4KKyogIFN0cmluZyBzID0gLi4uIDsgLy8gZ2V0IHN0cmluZyBmcm9tIHNvbWV3aGVyZQorKiAgYnl0ZSBbXSBjb21wcmVzc2VkID0gVW5pY29kZUNvbXByZXNzb3IuY29tcHJlc3Mocyk7CisqIDwvUFJFPgorKgorKiA8UD5UaGUgc3RhdGljIG1ldGhvZHMgaGF2ZSBhIGZhaXJseSBsYXJnZSBtZW1vcnkgZm9vdHByaW50LgorKiBGb3IgZmluZXItZ3JhaW5lZCBjb250cm9sIG92ZXIgbWVtb3J5IHVzYWdlLCAKKyogPFRUPlVuaWNvZGVDb21wcmVzc29yPC9UVD4gb2ZmZXJzIG1vcmUgcG93ZXJmdWwgQVBJcyBhbGxvd2luZworKiBpdGVyYXRpdmUgY29tcHJlc3Npb246PC9QPgorKgorKiA8UFJFPgorKiAgLy8gQ29tcHJlc3MgYW4gYXJyYXkgImNoYXJzIiBvZiBsZW5ndGggImxlbiIgdXNpbmcgYSBidWZmZXIgb2YgNTEyIGJ5dGVzCisqICAvLyB0byB0aGUgT3V0cHV0U3RyZWFtICJvdXQiCisqCisqICBVbmljb2RlQ29tcHJlc3NvciBteUNvbXByZXNzb3IgICAgICAgICA9IG5ldyBVbmljb2RlQ29tcHJlc3NvcigpOworKiAgZmluYWwgc3RhdGljIGludCAgQlVGU0laRSAgICAgICAgICAgICAgPSA1MTI7CisqICBieXRlIFtdICAgICAgICAgICBieXRlQnVmZmVyICAgICAgICAgICA9IG5ldyBieXRlIFsgQlVGU0laRSBdOworKiAgaW50ICAgICAgICAgICAgICAgYnl0ZXNXcml0dGVuICAgICAgICAgPSAwOworKiAgaW50IFtdICAgICAgICAgICAgdW5pY2hhcnNSZWFkICAgICAgICAgPSBuZXcgaW50IFsxXTsKKyogIGludCAgICAgICAgICAgICAgIHRvdGFsQ2hhcnNDb21wcmVzc2VkID0gMDsKKyogIGludCAgICAgICAgICAgICAgIHRvdGFsQnl0ZXNXcml0dGVuICAgID0gMDsKKyoKKyogIGRvIHsKKyogICAgLy8gZG8gdGhlIGNvbXByZXNzaW9uCisqICAgIGJ5dGVzV3JpdHRlbiA9IG15Q29tcHJlc3Nvci5jb21wcmVzcyhjaGFycywgdG90YWxDaGFyc0NvbXByZXNzZWQsIAorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuLCB1bmljaGFyc1JlYWQsCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlQnVmZmVyLCAwLCBCVUZTSVpFKTsKKyoKKyogICAgLy8gZG8gc29tZXRoaW5nIHdpdGggdGhlIGN1cnJlbnQgc2V0IG9mIGJ5dGVzCisqICAgIG91dC53cml0ZShieXRlQnVmZmVyLCAwLCBieXRlc1dyaXR0ZW4pOworKgorKiAgICAvLyB1cGRhdGUgdGhlIG5vLiBvZiBjaGFyYWN0ZXJzIGNvbXByZXNzZWQKKyogICAgdG90YWxDaGFyc0NvbXByZXNzZWQgKz0gdW5pY2hhcnNSZWFkWzBdOworKgorKiAgICAvLyB1cGRhdGUgdGhlIG5vLiBvZiBieXRlcyB3cml0dGVuCisqICAgIHRvdGFsQnl0ZXNXcml0dGVuICs9IGJ5dGVzV3JpdHRlbjsKKyoKKyogIH0gd2hpbGUodG90YWxDaGFyc0NvbXByZXNzZWQgPCBsZW4pOworKgorKiAgbXlDb21wcmVzc29yLnJlc2V0KCk7IC8vIHJldXNlIGNvbXByZXNzb3IKKyogPC9QUkU+CisqCisqIEBzZWUgVW5pY29kZURlY29tcHJlc3NvcgorKgorKiBAYXV0aG9yIFN0ZXBoZW4gRi4gQm9vdGgKKyogQHN0YWJsZSBJQ1UgMi40CisqLworCisvKgorKgorKiBDT01QUkVTU0lPTiBTVFJBVEVHWQorKgorKiBTaW5nbGUgQnl0ZSBNb2RlCisqCisqIFRoZXJlIGFyZSB0aHJlZSByZWxldmFudCBjYXNlcy4KKyogSWYgdGhlIGNoYXJhY3RlciBpcyBpbiB0aGUgY3VycmVudCB3aW5kb3cgb3IgaXMgTGF0aW4tMSAoVSswMDAwLAorKiBVKzAwMDksIFUrMDAwQSwgVSswMDBELCBVKzAwMjAgLSBVKzAwN0YpLCB0aGUgY2hhcmFjdGVyIGlzIHBsYWNlZAorKiBkaXJlY3RseSBpbiB0aGUgc3RyZWFtIGFzIGEgc2luZ2xlIGJ5dGUuCisqCisqICAxLiBDdXJyZW50IGNoYXJhY3RlciBpcyBpbiBkZWZpbmVkLCBpbmFjdGl2ZSB3aW5kb3cuCisqICAyLiBDdXJyZW50IGNoYXJhY3RlciBpcyBpbiB1bmRlZmluZWQgd2luZG93LgorKiAgMy4gQ3VycmVudCBjaGFyYWN0ZXIgaXMgdW5jb21wcmVzc2libGUgVW5pY29kZSAoVSszNDAwIC0gVStERkZGKS4KKyogCisqICAxLiBDdXJyZW50IGNoYXJhY3RlciBpcyBpbiBkZWZpbmVkLCBpbmFjdGl2ZSB3aW5kb3cKKyogICAgQS4gTG9vayBhaGVhZCB0d28gY2hhcmFjdGVycworKiAgICBCLiBJZiBib3RoIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGluIHNhbWUgd2luZG93IGFzIGN1cnJlbnQgY2hhcmFjdGVyLCAKKyogICAgICAgc3dpdGNoIHRvIGRlZmluZWQgd2luZG93CisqICAgIEMuIElmIG9ubHkgbmV4dCBjaGFyYWN0ZXIgaXMgaW4gc2FtZSB3aW5kb3cgYXMgY3VycmVudCBjaGFyYWN0ZXIsIAorKiAgICAgICBxdW90ZSBkZWZpbmVkIHdpbmRvdworKiAgICBELiBJZiBuZWl0aGVyIG9mIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGlzIGluIHNhbWUgd2luZG93IGFzIGN1cnJlbnQsIAorKiAgICAgICBxdW90ZSBkZWZpbmVkIHdpbmRvdworKiAgIAorKiAgMi4gQ3VycmVudCBjaGFyYWN0ZXIgaXMgaW4gdW5kZWZpbmVkIHdpbmRvdworKiAgICBBLiBMb29rIGFoZWFkIHR3byBjaGFyYWN0ZXJzCisqICAgIEIuIElmIGJvdGggZm9sbG93aW5nIGNoYXJhY3RlcnMgaW4gc2FtZSB3aW5kb3cgYXMgY3VycmVudCBjaGFyYWN0ZXIsIAorKiAgICAgICBkZWZpbmUgbmV3IHdpbmRvdworKiAgICBDLiBJZiBvbmx5IG5leHQgY2hhcmFjdGVyIGluIHNhbWUgd2luZG93IGFzIGN1cnJlbnQgY2hhcmFjdGVyLCAKKyogICAgICAgc3dpdGNoIHRvIFVuaWNvZGUgbW9kZQorKiAgICAgICBOT1RFOiBUaGlzIGNvc3RzIHVzIG9uZSBleHRyYSBieXRlLiAgSG93ZXZlciwgCisqICAgICAgICBzaW5jZSB3ZSBoYXZlIGEgbGltaXRlZCBudW1iZXIgb2Ygd2luZG93cyB0byB3b3JrIHdpdGgsIGl0IGlzIAorKiAgICAgICAgYXNzdW1lZCB0aGUgY29zdCB3aWxsIHBheSBvZmYgbGF0ZXIgaW4gc2F2aW5ncyBmcm9tIGEgd2luZG93IHdpdGgKKyogICAgICAgIG1vcmUgY2hhcmFjdGVycyBpbiBpdC4KKyogICAgRC4gSWYgbmVpdGhlciBvZiBmb2xsb3dpbmcgY2hhcmFjdGVycyBpbiBzYW1lIHdpbmRvdyBhcyBjdXJyZW50LCAKKyogICAgICAgc3dpdGNoIHRvIFVuaWNvZGUgbW9kZS4gIEFsdGVybmF0aXZlIHRvIGFib3ZlOiBqdXN0IHF1b3RlIAorKiAgICAgICBVbmljb2RlIChzYW1lIGJ5dGUgY29zdCkKKyogICAKKyogIDMuIEN1cnJlbnQgY2hhcmFjdGVyIGlzIHVuY29tcHJlc3NpYmxlIFVuaWNvZGUgKFUrMzQwMCAtIFUrREZGRikKKyogICAgQS4gTG9vayBhaGVhZCBvbmUgY2hhcmFjdGVyCisqICAgIEIuIElmIG5leHQgY2hhcmFjdGVyIGluIG5vbi1jb21wcmVzc2libGUgcmVnaW9uLCBzd2l0Y2ggdG8gCisqICAgICAgIFVuaWNvZGUgbW9kZQorKiAgICBDLiBJZiBuZXh0IGNoYXJhY3RlciBub3QgaW4gbm9uLWNvbXByZXNzaWJsZSByZWdpb24sIHF1b3RlIFVuaWNvZGUKKyogICAKKyoKKyogVGhlIGZvbGxvd2luZyBjaGFydCBpbGx1c3RyYXRlcyB0aGUgYnl0ZXMgcmVxdWlyZWQgZm9yIGVuY29kaW5nIGNoYXJhY3RlcnMKKyogaW4gZWFjaCBwb3NzaWJsZSB3YXkKKyoKKyogCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSU5HTEUgQllURSBNT0RFCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhcmFjdGVycyBpbiBhIHJvdyB3aXRoIHNhbWUgaW5kZXgKKyogICAgICAgICAgICAgICB0YWcgZW5jb3VudGVyZWQgICAgICAgICAgICAgMSAgICAgICAyICAgICAgIDMgICAgICAgNAorKiAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgICAgICAgICAgICAgIG5vbmUgKGluIGN1cnJlbnQgd2luZG93KSAgICAxICAgICAgIDIgICAgICAgMyAgICAgICA0CisqCisqICAgICAgICAgICAgICAgcXVvdGUgVW5pY29kZSAgICAgICAgICAgICAgIDMgICAgICAgNiAgICAgICA5ICAgICAgIDEyCisqCisqICAgd2luZG93IG5vdCAgc3dpdGNoIHRvIFVuaWNvZGUgICAgICAgICAgIDMgICAgICAgNSAgICAgICA3ICAgICAgIDkgICAgIGJ5dGUKKyogICBkZWZpbmVkICAgICBkZWZpbmUgd2luZG93ICAgICAgICAgICAgICAgMyAgICAgICA0ICAgICAgIDUgICAgICAgNiAgICAgY29zdAorKiAgICAgIAorKiAgIHdpbmRvdyAgICAgIHN3aXRjaCB0byB3aW5kb3cgICAgICAgICAgICAyICAgICAgIDMgICAgICAgNCAgICAgICA1CisqICAgZGVmaW5lZCAgICAgcXVvdGUgd2luZG93ICAgICAgICAgICAgICAgIDIgICAgICAgNCAgICAgICA2ICAgICAgIDgKKyoKKyogIFVuaWNvZGUgTW9kZQorKgorKiBUaGVyZSBhcmUgdHdvIHJlbGV2YW50IGNhc2VzLgorKiBJZiB0aGUgY2hhcmFjdGVyIGlzIGluIHRoZSBub24tY29tcHJlc3NpYmxlIHJlZ2lvbgorKiAoVSszNDAwIC0gVStERkZGKSwgdGhlIGNoYXJhY3RlciBpcyBzaW1wbHkgd3JpdHRlbiB0byB0aGUKKyogc3RyZWFtIGFzIGEgcGFpciBvZiBieXRlcy4KKyoKKyogMS4gQ3VycmVudCBjaGFyYWN0ZXIgaXMgaW4gZGVmaW5lZCwgaW5hY3RpdmUgd2luZG93LgorKiAyLiBDdXJyZW50IGNoYXJhY3RlciBpcyBpbiB1bmRlZmluZWQgd2luZG93LgorKgorKiAgMS5DdXJyZW50IGNoYXJhY3RlciBpcyBpbiBkZWZpbmVkLCBpbmFjdGl2ZSB3aW5kb3cKKyogICAgQS4gTG9vayBhaGVhZCBvbmUgY2hhcmFjdGVyCisqICAgIEIuIElmIG5leHQgY2hhcmFjdGVyIGhhcyBzYW1lIGluZGV4IGFzIGN1cnJlbnQgY2hhcmFjdGVyLCAKKyogICAgICAgc3dpdGNoIHRvIGRlZmluZWQgd2luZG93IChhbmQgc3dpdGNoIHRvIHNpbmdsZS1ieXRlIG1vZGUpCisqICAgIEMuIElmIG5vdCwganVzdCBwdXQgYnl0ZXMgaW4gc3RyZWFtCisqICAgCisqICAKKyogIDIuIEN1cnJlbnQgY2hhcmFjdGVyIGlzIGluIHVuZGVmaW5lZCB3aW5kb3cKKyogICAgQS4gTG9vayBhaGVhZCB0d28gY2hhcmFjdGVycworKiAgICBCLiBJZiBib3RoIGluIHNhbWUgd2luZG93IGFzIGN1cnJlbnQgY2hhcmFjdGVyLCBkZWZpbmUgd2luZG93IAorKiAgICAgICAoYW5kIHN3aXRjaCB0byBzaW5nbGUtYnl0ZSBtb2RlKQorKiAgICBDLiBJZiBvbmx5IG5leHQgY2hhcmFjdGVyIGluIHNhbWUgd2luZG93LCBqdXN0IHB1dCBieXRlcyBpbiBzdHJlYW0KKyogICAgICAgIE5PVEU6IFRoaXMgY29zdHMgdXMgb25lIGV4dHJhIGJ5dGUuICBIb3dldmVyLCAKKyogICAgICAgIHNpbmNlIHdlIGhhdmUgYSBsaW1pdGVkIG51bWJlciBvZiB3aW5kb3dzIHRvIHdvcmsgd2l0aCwgaXQgaXMgCisqICAgICAgICBhc3N1bWVkIHRoZSBjb3N0IHdpbGwgcGF5IG9mZiBsYXRlciBpbiBzYXZpbmdzIGZyb20gYSB3aW5kb3cgd2l0aCAKKyogICAgICAgIG1vcmUgY2hhcmFjdGVycyBpbiBpdC4KKyogICAgRC4gSWYgbmVpdGhlciBpbiBzYW1lIHdpbmRvdywgcHV0IGJ5dGVzIGluIHN0cmVhbQorKiAgIAorKgorKiBUaGUgZm9sbG93aW5nIGNoYXJ0IGlsbHVzdHJhdGVzIHRoZSBieXRlcyByZXF1aXJlZCBmb3IgZW5jb2RpbmcgY2hhcmFjdGVycworKiBpbiBlYWNoIHBvc3NpYmxlIHdheQorKgorKiAKKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSUNPREUgTU9ERQorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3RlcnMgaW4gYSByb3cgd2l0aCBzYW1lIGluZGV4CisqICAgICAgICAgICAgICAgdGFnIGVuY291bnRlcmVkICAgICAgICAgICAgIDEgICAgICAgMiAgICAgICAzICAgICAgIDQKKyogICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogICAgICAgICAgICAgICBub25lICAgICAgICAgICAgICAgICAgICAgICAgMiAgICAgICA0ICAgICAgIDYgICAgICAgOAorKgorKiAgICAgICAgICAgICAgIHF1b3RlIFVuaWNvZGUgICAgICAgICAgICAgICAzICAgICAgIDYgICAgICAgOSAgICAgICAxMgorKgorKiAgIHdpbmRvdyBub3QgIGRlZmluZSB3aW5kb3cgICAgICAgICAgICAgICAzICAgICAgIDQgICAgICAgNSAgICAgICA2ICAgICBieXRlCisqICAgZGVmaW5lZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvc3QKKyogICB3aW5kb3cgICAgICBzd2l0Y2ggdG8gd2luZG93ICAgICAgICAgICAgMiAgICAgICAzICAgICAgIDQgICAgICAgNQorKiAgIGRlZmluZWQKKyovCitwdWJsaWMgZmluYWwgY2xhc3MgVW5pY29kZUNvbXByZXNzb3IgaW1wbGVtZW50cyBTQ1NVCit7CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIENsYXNzIHZhcmlhYmxlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKiBGb3IgcXVpY2sgaWRlbnRpZmljYXRpb24gb2YgYSBieXRlIGFzIGEgc2luZ2xlLWJ5dGUgbW9kZSB0YWcgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIFtdIHNTaW5nbGVUYWdUYWJsZSA9IHsKKyAgICAgICAgLy8gdGFibGUgZ2VuZXJhdGVkIGJ5IENvbXByZXNzaW9uVGFibGVHZW5lcmF0b3IKKyAgICAgICAgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLAorICAgIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwKKyAgICB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLAorICAgIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UgICAKKyAgICB9OworCisgICAgLyoqIEZvciBxdWljayBpZGVudGlmaWNhdGlvbiBvZiBhIGJ5dGUgYXMgYSB1bmljb2RlIG1vZGUgdGFnICovCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBbXSBzVW5pY29kZVRhZ1RhYmxlID0geworICAgICAgICAvLyB0YWJsZSBnZW5lcmF0ZWQgYnkgQ29tcHJlc3Npb25UYWJsZUdlbmVyYXRvcgorICAgICAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorICAgIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsCisgICAgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwKKyAgICB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsCisgICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICBmYWxzZSwgZmFsc2UgCisgICAgfTsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBJbnN0YW5jZSB2YXJpYWJsZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgCisgICAgLyoqIEFsaWFzIHRvIGN1cnJlbnQgZHluYW1pYyB3aW5kb3cgKi8KKyAgICBwcml2YXRlIGludCAgICAgICBmQ3VycmVudFdpbmRvdyAgID0gMDsKKworICAgIC8qKiBEeW5hbWljIGNvbXByZXNzaW9uIHdpbmRvdyBvZmZzZXRzICovCisgICAgcHJpdmF0ZSBpbnQgW10gICAgZk9mZnNldHMgICAgICAgICA9IG5ldyBpbnQgWyBOVU1XSU5ET1dTIF07CisKKyAgICAvKiogQ3VycmVudCBjb21wcmVzc2lvbiBtb2RlICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgZk1vZGUgICAgICAgICAgICA9IFNJTkdMRUJZVEVNT0RFOworCisgICAgLyoqIEtlZXBzIGNvdW50IG9mIHRpbWVzIGNoYXJhY3RlciBpbmRpY2VzIGFyZSBlbmNvdW50ZXJlZCAqLworICAgIHByaXZhdGUgaW50IFtdICAgIGZJbmRleENvdW50ICAgICAgPSBuZXcgaW50IFsgTUFYSU5ERVggKyAxIF07CisKKyAgICAvKiogVGhlIHRpbWUgc3RhbXBzIGluZGljYXRlIHdoZW4gYSB3aW5kb3cgd2FzIGxhc3QgZGVmaW5lZCAqLworICAgIHByaXZhdGUgaW50IFtdICAgIGZUaW1lU3RhbXBzICAgICAgPSBuZXcgaW50IFsgTlVNV0lORE9XUyBdOworICAgIAorICAgIC8qKiBUaGUgY3VycmVudCB0aW1lIHN0YW1wICovCisgICAgcHJpdmF0ZSBpbnQgICAgICAgZlRpbWVTdGFtcCAgICAgICA9IDA7CisgICAgCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBVbmljb2RlQ29tcHJlc3Nvci4KKyAgICAgKiBTZXRzIGFsbCB3aW5kb3dzIHRvIHRoZWlyIGRlZmF1bHQgdmFsdWVzLgorICAgICAqIEBzZWUgI3Jlc2V0CisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVDb21wcmVzc29yKCkKKyAgICB7CisgICAgcmVzZXQoKTsgICAgICAgICAgICAgIC8vIGluaXRpYWxpemUgdG8gZGVmYXVsdHMKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wcmVzcyBhIHN0cmluZyBpbnRvIGEgYnl0ZSBhcnJheS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIFRoZSBzdHJpbmcgdG8gY29tcHJlc3MuCisgICAgICogQHJldHVybiBBIGJ5dGUgYXJyYXkgY29udGFpbmluZyB0aGUgY29tcHJlc3NlZCBjaGFyYWN0ZXJzLgorICAgICAqIEBzZWUgI2NvbXByZXNzKGNoYXIgW10sIGludCwgaW50KQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYnl0ZSBbXSBjb21wcmVzcyhTdHJpbmcgYnVmZmVyKQorICAgIHsKKyAgICByZXR1cm4gY29tcHJlc3MoYnVmZmVyLnRvQ2hhckFycmF5KCksIDAsIGJ1ZmZlci5sZW5ndGgoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHJlc3MgYSBVbmljb2RlIGNoYXJhY3RlciBhcnJheSBpbnRvIGEgYnl0ZSBhcnJheS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIFRoZSBjaGFyYWN0ZXIgYnVmZmVyIHRvIGNvbXByZXNzLgorICAgICAqIEBwYXJhbSBzdGFydCBUaGUgc3RhcnQgb2YgdGhlIGNoYXJhY3RlciBydW4gdG8gY29tcHJlc3MuCisgICAgICogQHBhcmFtIGxpbWl0IFRoZSBsaW1pdCBvZiB0aGUgY2hhcmFjdGVyIHJ1biB0byBjb21wcmVzcy4KKyAgICAgKiBAcmV0dXJuIEEgYnl0ZSBhcnJheSBjb250YWluaW5nIHRoZSBjb21wcmVzc2VkIGNoYXJhY3RlcnMuCisgICAgICogQHNlZSAjY29tcHJlc3MoU3RyaW5nKQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYnl0ZSBbXSBjb21wcmVzcyhjaGFyIFtdIGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0KQorICAgIHsKKyAgICBVbmljb2RlQ29tcHJlc3NvciBjb21wID0gbmV3IFVuaWNvZGVDb21wcmVzc29yKCk7CisKKyAgICAvLyB1c2UgYSBidWZmZXIgdGhhdCB3ZSBrbm93IHdpbGwgbmV2ZXIgb3ZlcmZsb3cKKyAgICAvLyBpbiB0aGUgd29yc3QgY2FzZSwgZWFjaCBjaGFyYWN0ZXIgd2lsbCB0YWtlIDMgYnl0ZXMKKyAgICAvLyB0byBlbmNvZGU6IFVRVSwgaGlieXRlLCBsb2J5dGUuICBJbiB0aGlzIGNhc2UsIHRoZQorICAgIC8vIGNvbXByZXNzZWQgZGF0YSB3aWxsIGxvb2sgbGlrZTogU0NVLCBVUVUsIGhpYnl0ZSwgbG9ieXRlLCAuLi4KKyAgICAvLyBidWZmZXIgbXVzdCBiZSBhdCBsZWFzdCA0IGJ5dGVzIGluIHNpemUKKyAgICBpbnQgbGVuID0gTWF0aC5tYXgoNCwgMyAqIChsaW1pdCAtIHN0YXJ0KSArIDEpOworICAgIGJ5dGUgW10gdGVtcCA9IG5ldyBieXRlIFtsZW5dOworCisgICAgaW50IGJ5dGVDb3VudCA9IGNvbXAuY29tcHJlc3MoYnVmZmVyLCBzdGFydCwgbGltaXQsIG51bGwsIAorICAgICAgICAgICAgICAgICAgICAgIHRlbXAsIDAsIGxlbik7CisKKyAgICBieXRlIFtdIHJlc3VsdCA9IG5ldyBieXRlIFtieXRlQ291bnRdOworICAgIFN5c3RlbS5hcnJheWNvcHkodGVtcCwgMCwgcmVzdWx0LCAwLCBieXRlQ291bnQpOworICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHJlc3MgYSBVbmljb2RlIGNoYXJhY3RlciBhcnJheSBpbnRvIGEgYnl0ZSBhcnJheS4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBvbmx5IGNvbnN1bWUgaW5wdXQgdGhhdCBjYW4gYmUgY29tcGxldGVseQorICAgICAqIG91dHB1dC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjaGFyQnVmZmVyIFRoZSBjaGFyYWN0ZXIgYnVmZmVyIHRvIGNvbXByZXNzLgorICAgICAqIEBwYXJhbSBjaGFyQnVmZmVyU3RhcnQgVGhlIHN0YXJ0IG9mIHRoZSBjaGFyYWN0ZXIgcnVuIHRvIGNvbXByZXNzLgorICAgICAqIEBwYXJhbSBjaGFyQnVmZmVyTGltaXQgVGhlIGxpbWl0IG9mIHRoZSBjaGFyYWN0ZXIgcnVuIHRvIGNvbXByZXNzLgorICAgICAqIEBwYXJhbSBjaGFyc1JlYWQgQSBvbmUtZWxlbWVudCBhcnJheS4gIElmIG5vdCBudWxsLCBvbiByZXR1cm4gCisgICAgICogdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHJlYWQgZnJvbSBjaGFyQnVmZmVyLgorICAgICAqIEBwYXJhbSBieXRlQnVmZmVyIEEgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIGNvbXByZXNzZWQgZGF0YS4gIFRoaXMgCisgICAgICogYnVmZmVyIG11c3QgYmUgYXQgbWluaW11bSBmb3VyIGJ5dGVzIGluIHNpemUuCisgICAgICogQHBhcmFtIGJ5dGVCdWZmZXJTdGFydCBUaGUgc3RhcnRpbmcgb2Zmc2V0IHRvIHdoaWNoIHRvIHdyaXRlIAorICAgICAqIGNvbXByZXNzZWQgZGF0YS4KKyAgICAgKiBAcGFyYW0gYnl0ZUJ1ZmZlckxpbWl0IFRoZSBsaW1pdGluZyBvZmZzZXQgZm9yIHdyaXRpbmcgY29tcHJlc3NlZCBkYXRhLgorICAgICAqIEByZXR1cm4gVGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIHRvIGJ5dGVCdWZmZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGludCBjb21wcmVzcyhjaGFyIFtdICAgICBjaGFyQnVmZmVyLAorICAgICAgICAgICAgaW50ICAgICAgICAgY2hhckJ1ZmZlclN0YXJ0LAorICAgICAgICAgICAgaW50ICAgICAgICAgY2hhckJ1ZmZlckxpbWl0LAorICAgICAgICAgICAgaW50IFtdICAgICAgY2hhcnNSZWFkLAorICAgICAgICAgICAgYnl0ZSBbXSAgICAgYnl0ZUJ1ZmZlciwKKyAgICAgICAgICAgIGludCAgICAgICAgIGJ5dGVCdWZmZXJTdGFydCwKKyAgICAgICAgICAgIGludCAgICAgICAgIGJ5dGVCdWZmZXJMaW1pdCkKKyAgICB7CisgICAgICAgIC8vIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSB0YXJnZXQgYnl0ZSBidWZmZXIKKyAgICBpbnQgICAgIGJ5dGVQb3MgICAgICAgPSBieXRlQnVmZmVyU3RhcnQ7CisgICAgCisgICAgLy8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIHNvdXJjZSB1bmljb2RlIGNoYXJhY3RlciBidWZmZXIKKyAgICBpbnQgICAgIHVjUG9zICAgICAgICAgPSBjaGFyQnVmZmVyU3RhcnQ7CisgICAgCisgICAgLy8gdGhlIGN1cnJlbnQgdW5pY29kZSBjaGFyYWN0ZXIgZnJvbSB0aGUgc291cmNlIGJ1ZmZlcgorICAgIGludCAgICAgY3VyVUMgICAgICAgICA9IElOVkFMSURDSEFSOworICAgIAorICAgIC8vIHRoZSBpbmRleCBmb3IgdGhlIGN1cnJlbnQgY2hhcmFjdGVyCisgICAgICAgIGludCAgICAgY3VySW5kZXggICAgICA9IC0xOworICAgICAgICAKKyAgICAvLyBsb29rIGFoZWFkCisgICAgaW50ICAgICBuZXh0VUMgICAgICAgID0gSU5WQUxJRENIQVI7CisgICAgaW50ICAgICBmb3J3YXJkVUMgICAgID0gSU5WQUxJRENIQVI7CisgICAgCisgICAgICAgIC8vIHRlbXBvcmFyeSBmb3Igd2luZG93IHNlYXJjaGluZworICAgIGludCAgICAgd2hpY2hXaW5kb3cgICA9IDA7CisgICAgCisgICAgLy8gaGlnaCBhbmQgbG93IGJ5dGVzIG9mIHRoZSBjdXJyZW50IHVuaWNvZGUgY2hhcmFjdGVyCisgICAgaW50ICAgICBoaUJ5dGUgICAgICAgID0gMDsKKyAgICBpbnQgICAgIGxvQnl0ZSAgICAgICAgPSAwOworCisKKyAgICAvLyBieXRlQnVmZmVyIG11c3QgYmUgYXQgbGVhc3QgNCBieXRlcyBpbiBzaXplCisgICAgaWYoYnl0ZUJ1ZmZlci5sZW5ndGggPCA0IHx8IChieXRlQnVmZmVyTGltaXQgLSBieXRlQnVmZmVyU3RhcnQpIDwgNCkKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiYnl0ZUJ1ZmZlci5sZW5ndGggPCA0Iik7CisKKyAgICBtYWluTG9vcDoKKyAgICB3aGlsZSh1Y1BvcyA8IGNoYXJCdWZmZXJMaW1pdCAmJiBieXRlUG9zIDwgYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgIHN3aXRjaChmTW9kZSkgeworICAgICAgICAvLyBtYWluIHNpbmdsZSBieXRlIG1vZGUgY29tcHJlc3Npb24gbG9vcAorICAgICAgICBjYXNlIFNJTkdMRUJZVEVNT0RFOgorICAgICAgICBzaW5nbGVCeXRlTW9kZUxvb3A6CisgICAgICAgIHdoaWxlKHVjUG9zIDwgY2hhckJ1ZmZlckxpbWl0ICYmIGJ5dGVQb3MgPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgLy8gZ2V0IGN1cnJlbnQgY2hhcgorICAgICAgICBjdXJVQyA9IGNoYXJCdWZmZXJbdWNQb3MrK107CisKKyAgICAgICAgLy8gZ2V0IG5leHQgY2hhcgorICAgICAgICBpZih1Y1BvcyA8IGNoYXJCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICBuZXh0VUMgPSBjaGFyQnVmZmVyW3VjUG9zXTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmV4dFVDID0gSU5WQUxJRENIQVI7CisgICAgICAgIAorICAgICAgICAvLyBjaGFycyBsZXNzIHRoYW4gMHgwMDgwIChleGNsdWRpbmcgdGFncykgZ28gc3RyYWlnaHQKKyAgICAgICAgLy8gaW4gc3RyZWFtCisgICAgICAgIGlmKGN1clVDIDwgMHgwMDgwKSB7CisgICAgICAgICAgICBsb0J5dGUgPSBjdXJVQyAmIDB4RkY7CisKKyAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gY2hlY2sgYW5kIG1ha2Ugc3VyZSB3ZSBkb24ndAorICAgICAgICAgICAgLy8gYWNjaWRlbnRhbGx5IHdyaXRlIGEgc2luZ2xlIGJ5dGUgbW9kZSB0YWcgdG8KKyAgICAgICAgICAgIC8vIHRoZSBzdHJlYW0gdW5sZXNzIGl0J3MgcXVvdGVkCisgICAgICAgICAgICBpZihzU2luZ2xlVGFnVGFibGVbbG9CeXRlXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlcmUgaXMgZW5vdWdoIHJvb20gdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGUgYm90aCBieXRlcyBpZiBub3QsIHJld2luZCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc291cmNlIHN0cmVhbSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZiggKGJ5dGVQb3MgKyAxKSA+PSBieXRlQnVmZmVyTGltaXQpIAorICAgICAgICAgICAgICAgIHsgLS11Y1BvczsgYnJlYWsgbWFpbkxvb3A7IH0KKworICAgICAgICAgICAgLy8gc2luY2Ugd2Uga25vdyB0aGUgYnl0ZSBpcyBsZXNzIHRoYW4gMHg4MCwgU1FVT1RFMAorICAgICAgICAgICAgLy8gd2lsbCB1c2Ugc3RhdGljIHdpbmRvdyAwLCBvciBBU0NJSQorICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIFNRVU9URTA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBsb0J5dGU7CisgICAgICAgIH0KKworICAgICAgICAvLyBpZiB0aGUgY2hhciBiZWxvbmdzIHRvIGN1cnJlbnQgd2luZG93LCBjb252ZXJ0IGl0CisgICAgICAgIC8vIHRvIGEgYnl0ZSBieSBhZGRpbmcgdGhlIGdlbmVyaWMgY29tcHJlc3Npb24gb2Zmc2V0CisgICAgICAgIC8vIGFuZCBzdWJ0cmFjdGluZyB0aGUgd2luZG93J3Mgb2Zmc2V0CisgICAgICAgIGVsc2UgaWYoaW5EeW5hbWljV2luZG93KGN1clVDLCBmQ3VycmVudFdpbmRvdykgKSB7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgCisgICAgICAgICAgICAoY3VyVUMgLSBmT2Zmc2V0c1sgZkN1cnJlbnRXaW5kb3cgXSAKKyAgICAgICAgICAgICArIENPTVBSRVNTSU9OT0ZGU0VUKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gaWYgY2hhciBpcyBub3QgaW4gY29tcHJlc3NpYmxlIHJhbmdlLCBlaXRoZXIgc3dpdGNoIHRvIG9yCisgICAgICAgIC8vIHF1b3RlIGZyb20gdW5pY29kZQorICAgICAgICBlbHNlIGlmKCAhIGlzQ29tcHJlc3NpYmxlKGN1clVDKSApIHsKKyAgICAgICAgICAgIC8vIG9ubHkgY2hlY2sgbmV4dCBjaGFyYWN0ZXIgaWYgaXQgaXMgdmFsaWQKKyAgICAgICAgICAgIGlmKG5leHRVQyAhPSBJTlZBTElEQ0hBUiAmJiBpc0NvbXByZXNzaWJsZShuZXh0VUMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBhbGwgdGhyZWUgYnl0ZXMgaWYgbm90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXdpbmQgdGhlIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG91dAorICAgICAgICAgICAgaWYoIChieXRlUG9zICsgMikgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKyAgICAgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBTUVVPVEVVOworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIChjdXJVQyA+Pj4gOCk7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgKGN1clVDICYgMHhGRik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGFsbCBmb3VyIGJ5dGVzIGlmIG5vdCwgcmV3aW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKChieXRlUG9zICsgMykgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKyAgICAgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBTQ0hBTkdFVTsKKworICAgICAgICAgICAgaGlCeXRlID0gY3VyVUMgPj4+IDg7CisgICAgICAgICAgICBsb0J5dGUgPSBjdXJVQyAmIDB4RkY7CisKKyAgICAgICAgICAgIGlmKHNVbmljb2RlVGFnVGFibGVbaGlCeXRlXSkKKyAgICAgICAgICAgICAgICAvLyBhZGQgcXVvdGUgVW5pY29kZSB0YWcKKyAgICAgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gICA9IChieXRlKSBVUVVPVEVVOyAgICAKKworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGhpQnl0ZTsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBsb0J5dGU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBmTW9kZSA9IFVOSUNPREVNT0RFOworICAgICAgICAgICAgYnJlYWsgc2luZ2xlQnl0ZU1vZGVMb29wOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgdGhlIGNoYXIgaXMgaW4gYSBjdXJyZW50bHkgZGVmaW5lZCBkeW5hbWljCisgICAgICAgIC8vIHdpbmRvdywgZmlndXJlIG91dCB3aGljaCBvbmUsIGFuZCBlaXRoZXIgc3dpdGNoIHRvCisgICAgICAgIC8vIGl0IG9yIHF1b3RlIGZyb20gaXQKKyAgICAgICAgZWxzZSBpZigod2hpY2hXaW5kb3cgPSBmaW5kRHluYW1pY1dpbmRvdyhjdXJVQykpIAorICAgICAgICAgICAgIT0gSU5WQUxJRFdJTkRPVyApIHsKKyAgICAgICAgICAgIC8vIGxvb2sgYWhlYWQKKyAgICAgICAgICAgIGlmKCAodWNQb3MgKyAxKSA8IGNoYXJCdWZmZXJMaW1pdCApCisgICAgICAgICAgICBmb3J3YXJkVUMgPSBjaGFyQnVmZmVyW3VjUG9zICsgMV07CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBmb3J3YXJkVUMgPSBJTlZBTElEQ0hBUjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gYWxsIHRocmVlIGNoYXJzIGluIHNhbWUgd2luZG93LCBzd2l0Y2ggdG8gdGhhdAorICAgICAgICAgICAgLy8gd2luZG93IGluRHluYW1pY1dpbmRvdyB3aWxsIHJldHVybiBmYWxzZSBmb3IKKyAgICAgICAgICAgIC8vIElOVkFMSURDSEFSCisgICAgICAgICAgICBpZihpbkR5bmFtaWNXaW5kb3cobmV4dFVDLCB3aGljaFdpbmRvdykgCisgICAgICAgICAgICAgICAmJiBpbkR5bmFtaWNXaW5kb3coZm9yd2FyZFVDLCB3aGljaFdpbmRvdykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGJvdGggYnl0ZXMgaWYgbm90LCByZXdpbmQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoIChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKyAgICAgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKShTQ0hBTkdFMCArIHdoaWNoV2luZG93KTsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAKKyAgICAgICAgICAgICAgICAoY3VyVUMgLSBmT2Zmc2V0c1t3aGljaFdpbmRvd10gCisgICAgICAgICAgICAgICAgICsgQ09NUFJFU1NJT05PRkZTRVQpOworICAgICAgICAgICAgZlRpbWVTdGFtcHMgWyB3aGljaFdpbmRvdyBdID0gKytmVGltZVN0YW1wOworICAgICAgICAgICAgZkN1cnJlbnRXaW5kb3cgPSB3aGljaFdpbmRvdzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gZWl0aGVyIG9ubHkgbmV4dCBjaGFyIG9yIG5laXRoZXIgaW4gc2FtZQorICAgICAgICAgICAgLy8gd2luZG93LCBzbyBxdW90ZQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBib3RoIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKyAgICAgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAoU1FVT1RFMCArIHdoaWNoV2luZG93KTsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAKKyAgICAgICAgICAgICAgICAoY3VyVUMgLSBmT2Zmc2V0c1t3aGljaFdpbmRvd10gCisgICAgICAgICAgICAgICAgICsgQ09NUFJFU1NJT05PRkZTRVQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gaWYgYSBzdGF0aWMgd2luZG93IGlzIGRlZmluZWQsIGFuZCB0aGUgZm9sbG93aW5nCisgICAgICAgIC8vIGNoYXJhY3RlciBpcyBub3QgaW4gdGhhdCBzdGF0aWMgd2luZG93LCBxdW90ZSBmcm9tCisgICAgICAgIC8vIHRoZSBzdGF0aWMgd2luZG93IE5vdGU6IHRvIHF1b3RlIGZyb20gYSBzdGF0aWMKKyAgICAgICAgLy8gd2luZG93LCBkb24ndCBhZGQgMHg4MAorICAgICAgICBlbHNlIGlmKCh3aGljaFdpbmRvdyA9IGZpbmRTdGF0aWNXaW5kb3coY3VyVUMpKSAKKyAgICAgICAgICAgICE9IElOVkFMSURXSU5ET1cgCisgICAgICAgICAgICAmJiAhIGluU3RhdGljV2luZG93KG5leHRVQywgd2hpY2hXaW5kb3cpICkgeworICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvIHdyaXRlIGJvdGgKKyAgICAgICAgICAgIC8vIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZSBzb3VyY2Ugc3RyZWFtIGFuZAorICAgICAgICAgICAgLy8gYnJlYWsgb3V0CisgICAgICAgICAgICBpZigoYnl0ZVBvcyArIDEpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAoU1FVT1RFMCArIHdoaWNoV2luZG93KTsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAKKyAgICAgICAgICAgIChjdXJVQyAtIHNPZmZzZXRzW3doaWNoV2luZG93XSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGlmIGEgd2luZG93IGlzIG5vdCBkZWZpbmVkLCBkZWNpZGUgaWYgd2Ugd2FudCB0bworICAgICAgICAvLyBkZWZpbmUgYSBuZXcgb25lIG9yIHN3aXRjaCB0byB1bmljb2RlIG1vZGUKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBkZXRlcm1pbmUgaW5kZXggZm9yIGN1cnJlbnQgY2hhciAoY2hhciBpcyBjb21wcmVzc2libGUpCisgICAgICAgICAgICBjdXJJbmRleCA9IG1ha2VJbmRleChjdXJVQyk7CisgICAgICAgICAgICBmSW5kZXhDb3VudFtjdXJJbmRleF0rKzsKKworICAgICAgICAgICAgLy8gbG9vayBhaGVhZAorICAgICAgICAgICAgaWYoKHVjUG9zICsgMSkgPCBjaGFyQnVmZmVyTGltaXQpCisgICAgICAgICAgICBmb3J3YXJkVUMgPSBjaGFyQnVmZmVyW3VjUG9zICsgMV07CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBmb3J3YXJkVUMgPSBJTlZBTElEQ0hBUjsKKworICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSBlbmNvdW50ZXJlZCB0aGlzIGluZGV4IGF0IGxlYXN0IG9uY2UKKyAgICAgICAgICAgIC8vIGJlZm9yZSwgZGVmaW5lIGEgbmV3IHdpbmRvdworICAgICAgICAgICAgLy8gT1IKKyAgICAgICAgICAgIC8vIHRocmVlIGNoYXJzIGluIGEgcm93IHdpdGggc2FtZSBpbmRleCwgZGVmaW5lIGEKKyAgICAgICAgICAgIC8vIG5ldyB3aW5kb3cgKG1ha2VJbmRleCB3aWxsIHJldHVybiBSRVNFUlZFRElOREVYCisgICAgICAgICAgICAvLyBmb3IgSU5WQUxJRENIQVIpCisgICAgICAgICAgICBpZigoZkluZGV4Q291bnRbY3VySW5kZXhdID4gMSkgfHwKKyAgICAgICAgICAgICAgIChjdXJJbmRleCA9PSBtYWtlSW5kZXgobmV4dFVDKSAKKyAgICAgICAgICAgICYmIGN1ckluZGV4ID09IG1ha2VJbmRleChmb3J3YXJkVUMpKSkgeworICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvIHdyaXRlIGFsbAorICAgICAgICAgICAgLy8gdGhyZWUgYnl0ZXMgaWYgbm90LCByZXdpbmQgdGhlIHNvdXJjZQorICAgICAgICAgICAgLy8gc3RyZWFtIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKCAoYnl0ZVBvcyArIDIpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICAvLyBnZXQgbGVhc3QgcmVjZW50bHkgZGVmaW5lZCB3aW5kb3cKKyAgICAgICAgICAgIHdoaWNoV2luZG93ID0gZ2V0TFJEZWZpbmVkV2luZG93KCk7CisKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKShTREVGSU5FMCArIHdoaWNoV2luZG93KTsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBjdXJJbmRleDsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAKKyAgICAgICAgICAgICAgICAoY3VyVUMgLSBzT2Zmc2V0VGFibGVbY3VySW5kZXhdIAorICAgICAgICAgICAgICAgICArIENPTVBSRVNTSU9OT0ZGU0VUKTsKKworICAgICAgICAgICAgZk9mZnNldHNbd2hpY2hXaW5kb3ddID0gc09mZnNldFRhYmxlW2N1ckluZGV4XTsKKyAgICAgICAgICAgIGZDdXJyZW50V2luZG93ID0gd2hpY2hXaW5kb3c7CisgICAgICAgICAgICBmVGltZVN0YW1wcyBbd2hpY2hXaW5kb3ddID0gKytmVGltZVN0YW1wOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBvbmx5IHR3byBjaGFycyBpbiBhIHJvdyB3aXRoIHNhbWUgaW5kZXgsIHNvCisgICAgICAgICAgICAvLyBzd2l0Y2ggdG8gdW5pY29kZSBtb2RlIChtYWtlSW5kZXggd2lsbCByZXR1cm4KKyAgICAgICAgICAgIC8vIFJFU0VSVkVESU5ERVggZm9yIElOVkFMSURDSEFSKQorICAgICAgICAgICAgLy8gT1IKKyAgICAgICAgICAgIC8vIHRocmVlIGNoYXJzIGhhdmUgZGlmZmVyZW50IGluZGljZXMsIHNvIHN3aXRjaAorICAgICAgICAgICAgLy8gdG8gdW5pY29kZSBtb2RlCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0byB3cml0ZSBhbGwKKyAgICAgICAgICAgIC8vIGZvdXIgYnl0ZXMgaWYgbm90LCByZXdpbmQgdGhlIHNvdXJjZSBzdHJlYW0KKyAgICAgICAgICAgIC8vIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKChieXRlUG9zICsgMykgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKyAgICAgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBTQ0hBTkdFVTsKKworICAgICAgICAgICAgaGlCeXRlID0gY3VyVUMgPj4+IDg7CisgICAgICAgICAgICBsb0J5dGUgPSBjdXJVQyAmIDB4RkY7CisKKyAgICAgICAgICAgIGlmKHNVbmljb2RlVGFnVGFibGVbaGlCeXRlXSkKKyAgICAgICAgICAgICAgICAvLyBhZGQgcXVvdGUgVW5pY29kZSB0YWcKKyAgICAgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgVVFVT1RFVTsgCisKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBoaUJ5dGU7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgbG9CeXRlOworCisgICAgICAgICAgICBmTW9kZSA9IFVOSUNPREVNT0RFOworICAgICAgICAgICAgYnJlYWsgc2luZ2xlQnl0ZU1vZGVMb29wOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBVTklDT0RFTU9ERToKKyAgICAgICAgLy8gbWFpbiB1bmljb2RlIG1vZGUgY29tcHJlc3Npb24gbG9vcAorICAgICAgICB1bmljb2RlTW9kZUxvb3A6CisgICAgICAgIHdoaWxlKHVjUG9zIDwgY2hhckJ1ZmZlckxpbWl0ICYmIGJ5dGVQb3MgPCBieXRlQnVmZmVyTGltaXQpIHsKKyAgICAgICAgLy8gZ2V0IGN1cnJlbnQgY2hhcgorICAgICAgICBjdXJVQyA9IGNoYXJCdWZmZXJbdWNQb3MrK107ICAgIAorCisgICAgICAgIC8vIGdldCBuZXh0IGNoYXIKKyAgICAgICAgaWYoIHVjUG9zIDwgY2hhckJ1ZmZlckxpbWl0ICkKKyAgICAgICAgICAgIG5leHRVQyA9IGNoYXJCdWZmZXJbdWNQb3NdOworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXh0VUMgPSBJTlZBTElEQ0hBUjsKKworICAgICAgICAvLyBpZiB3ZSBoYXZlIHR3byB1bmNvbXByZXNzaWJsZSBjaGFycyBpbiBhIHJvdywKKyAgICAgICAgLy8gcHV0IHRoZSBjdXJyZW50IGNoYXIncyBieXRlcyBpbiB0aGUgc3RyZWFtCisgICAgICAgIGlmKCAhIGlzQ29tcHJlc3NpYmxlKGN1clVDKSAKKyAgICAgICAgICAgIHx8IChuZXh0VUMgIT0gSU5WQUxJRENIQVIgJiYgISBpc0NvbXByZXNzaWJsZShuZXh0VUMpKSkgeworICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvIHdyaXRlIGFsbCB0aHJlZSBieXRlcworICAgICAgICAgICAgLy8gaWYgbm90LCByZXdpbmQgdGhlIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoIChieXRlUG9zICsgMikgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKyAgICAgICAgICAgIHsgLS11Y1BvczsgYnJlYWsgbWFpbkxvb3A7IH0KKworICAgICAgICAgICAgaGlCeXRlID0gY3VyVUMgPj4+IDg7CisgICAgICAgICAgICBsb0J5dGUgPSBjdXJVQyAmIDB4RkY7CisKKyAgICAgICAgICAgIGlmKHNVbmljb2RlVGFnVGFibGVbIGhpQnl0ZSBdKQorICAgICAgICAgICAgLy8gYWRkIHF1b3RlIFVuaWNvZGUgdGFnCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgVVFVT1RFVTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBoaUJ5dGU7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgbG9CeXRlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBieXRlcyBsZXNzIHRoYW4gMHg4MCBjYW4gZ28gc3RyYWlnaHQgaW4gdGhlIHN0cmVhbSwKKyAgICAgICAgLy8gYnV0IGluIHNpbmdsZS1ieXRlIG1vZGUKKyAgICAgICAgZWxzZSBpZihjdXJVQyA8IDB4MDA4MCkgeworICAgICAgICAgICAgbG9CeXRlID0gY3VyVUMgJiAweEZGOworCisgICAgICAgICAgICAvLyBpZiB0d28gY2hhcnMgaW4gYSByb3cgYmVsb3cgMHg4MCBhbmQgdGhlCisgICAgICAgICAgICAvLyBjdXJyZW50IGNoYXIgaXMgbm90IGEgc2luZ2xlLWJ5dGUgbW9kZSB0YWcsCisgICAgICAgICAgICAvLyBzd2l0Y2ggdG8gc2luZ2xlLWJ5dGUgbW9kZQorICAgICAgICAgICAgaWYobmV4dFVDICE9IElOVkFMSURDSEFSIAorICAgICAgICAgICAgICAgJiYgbmV4dFVDIDwgMHgwMDgwICYmICEgc1NpbmdsZVRhZ1RhYmxlWyBsb0J5dGUgXSApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGJvdGggYnl0ZXMgaWYgbm90LCByZXdpbmQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoIChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKyAgICAgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIC8vIHVzZSB0aGUgbGFzdC1hY3RpdmUgd2luZG93CisgICAgICAgICAgICB3aGljaFdpbmRvdyA9IGZDdXJyZW50V2luZG93OworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpKFVDSEFOR0UwICsgd2hpY2hXaW5kb3cpOworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGxvQnl0ZTsKKworICAgICAgICAgICAgLy9mQ3VycmVudFdpbmRvdyA9IDA7CisgICAgICAgICAgICBmVGltZVN0YW1wcyBbd2hpY2hXaW5kb3ddID0gKytmVGltZVN0YW1wOworICAgICAgICAgICAgZk1vZGUgPSBTSU5HTEVCWVRFTU9ERTsKKyAgICAgICAgICAgIGJyZWFrIHVuaWNvZGVNb2RlTG9vcDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCBqdXN0IHdyaXRlIHRoZSBieXRlcyB0byB0aGUgc3RyZWFtCisgICAgICAgICAgICAvLyAodGhpcyB3aWxsIGNvdmVyIHRoZSBjYXNlIG9mIG9ubHkgMSBjaGFyIGxlc3MgdGhhbiAweDgwCisgICAgICAgICAgICAvLyBhbmQgc2luZ2xlLWJ5dGUgbW9kZSB0YWdzKQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBib3RoIGJ5dGVzIGlmIG5vdCwgcmV3aW5kIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzb3VyY2Ugc3RyZWFtIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKChieXRlUG9zICsgMSkgPj0gYnl0ZUJ1ZmZlckxpbWl0KSAKKyAgICAgICAgICAgICAgICB7IC0tdWNQb3M7IGJyZWFrIG1haW5Mb29wOyB9CisKKyAgICAgICAgICAgIC8vIHNpbmNlIHRoZSBjaGFyYWN0ZXIgaXMgbGVzcyB0aGFuIDB4ODAsIHRoZQorICAgICAgICAgICAgLy8gaGlnaCBieXRlIGlzIGFsd2F5cyAweDAwIC0gbm8gbmVlZCBmb3IKKyAgICAgICAgICAgIC8vIChjdXJVQyA+Pj4gOCkKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSAweDAwOworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGxvQnl0ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGZpZ3VyZSBvdXQgaWYgdGhlIGN1cnJlbnQgY2hhciBpcyBpbiBhIGRlZmluZWQgd2luZG93CisgICAgICAgIGVsc2UgaWYoKHdoaWNoV2luZG93ID0gZmluZER5bmFtaWNXaW5kb3coY3VyVUMpKSAKKyAgICAgICAgICAgICE9IElOVkFMSURXSU5ET1cgKSB7CisgICAgICAgICAgICAvLyBpZiB0d28gY2hhcnMgaW4gYSByb3cgaW4gdGhlIHNhbWUgd2luZG93LAorICAgICAgICAgICAgLy8gc3dpdGNoIHRvIHRoYXQgd2luZG93IGFuZCBnbyB0byBzaW5nbGUtYnl0ZSBtb2RlCisgICAgICAgICAgICAvLyBpbkR5bmFtaWNXaW5kb3cgd2lsbCByZXR1cm4gZmFsc2UgZm9yIElOVkFMSURDSEFSCisgICAgICAgICAgICBpZihpbkR5bmFtaWNXaW5kb3cobmV4dFVDLCB3aGljaFdpbmRvdykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGJvdGggYnl0ZXMgaWYgbm90LCByZXdpbmQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoKGJ5dGVQb3MgKyAxKSA+PSBieXRlQnVmZmVyTGltaXQpIAorICAgICAgICAgICAgICAgIHsgLS11Y1BvczsgYnJlYWsgbWFpbkxvb3A7IH0KKworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpKFVDSEFOR0UwICsgd2hpY2hXaW5kb3cpOworICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIAorICAgICAgICAgICAgICAgIChjdXJVQyAtIGZPZmZzZXRzW3doaWNoV2luZG93XSAKKyAgICAgICAgICAgICAgICAgKyBDT01QUkVTU0lPTk9GRlNFVCk7CisKKyAgICAgICAgICAgIGZUaW1lU3RhbXBzIFsgd2hpY2hXaW5kb3cgXSA9ICsrZlRpbWVTdGFtcDsKKyAgICAgICAgICAgIGZDdXJyZW50V2luZG93ID0gd2hpY2hXaW5kb3c7CisgICAgICAgICAgICBmTW9kZSA9IFNJTkdMRUJZVEVNT0RFOworICAgICAgICAgICAgYnJlYWsgdW5pY29kZU1vZGVMb29wOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBvdGhlcndpc2UsIGp1c3QgcXVvdGUgdGhlIHVuaWNvZGUgZm9yIHRoZSBjaGFyCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGFsbCB0aHJlZSBieXRlcyBpZiBub3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJld2luZCB0aGUgc291cmNlIHN0cmVhbSBhbmQgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3V0CisgICAgICAgICAgICBpZigoYnl0ZVBvcyArIDIpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICBoaUJ5dGUgPSBjdXJVQyA+Pj4gODsKKyAgICAgICAgICAgIGxvQnl0ZSA9IGN1clVDICYgMHhGRjsKKworICAgICAgICAgICAgaWYoc1VuaWNvZGVUYWdUYWJsZVsgaGlCeXRlIF0pCisgICAgICAgICAgICAgICAgLy8gYWRkIHF1b3RlIFVuaWNvZGUgdGFnCisgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIFVRVU9URVU7CisKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBoaUJ5dGU7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgbG9CeXRlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBjaGFyIGlzIG5vdCBpbiBhIGRlZmluZWQgd2luZG93CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gZGV0ZXJtaW5lIGluZGV4IGZvciBjdXJyZW50IGNoYXIgKGNoYXIgaXMgY29tcHJlc3NpYmxlKQorICAgICAgICAgICAgY3VySW5kZXggPSBtYWtlSW5kZXgoY3VyVUMpOworICAgICAgICAgICAgZkluZGV4Q291bnRbY3VySW5kZXhdKys7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIGxvb2sgYWhlYWQKKyAgICAgICAgICAgIGlmKCAodWNQb3MgKyAxKSA8IGNoYXJCdWZmZXJMaW1pdCApCisgICAgICAgICAgICBmb3J3YXJkVUMgPSBjaGFyQnVmZmVyW3VjUG9zICsgMV07CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBmb3J3YXJkVUMgPSBJTlZBTElEQ0hBUjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gaWYgd2UgaGF2ZSBlbmNvdW50ZXJlZCB0aGlzIGluZGV4IGF0IGxlYXN0IG9uY2UKKyAgICAgICAgICAgIC8vIGJlZm9yZSwgZGVmaW5lIGEgbmV3IHdpbmRvdyBmb3IgaXQgdGhhdCBoYXNuJ3QKKyAgICAgICAgICAgIC8vIHByZXZpb3VzbHkgYmVlbiByZWRlZmluZWQKKyAgICAgICAgICAgIC8vIE9SCisgICAgICAgICAgICAvLyBpZiB0aHJlZSBjaGFycyBpbiBhIHJvdyB3aXRoIHRoZSBzYW1lIGluZGV4LAorICAgICAgICAgICAgLy8gZGVmaW5lIGEgbmV3IHdpbmRvdyAobWFrZUluZGV4IHdpbGwgcmV0dXJuCisgICAgICAgICAgICAvLyBSRVNFUlZFRElOREVYIGZvciBJTlZBTElEQ0hBUikKKyAgICAgICAgICAgIGlmKChmSW5kZXhDb3VudFtjdXJJbmRleF0gPiAxKSB8fAorICAgICAgICAgICAgICAgKGN1ckluZGV4ID09IG1ha2VJbmRleChuZXh0VUMpIAorICAgICAgICAgICAgJiYgY3VySW5kZXggPT0gbWFrZUluZGV4KGZvcndhcmRVQykpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggcm9vbSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBhbGwgdGhyZWUgYnl0ZXMgaWYgbm90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXdpbmQgdGhlIHNvdXJjZSBzdHJlYW0gYW5kIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG91dAorICAgICAgICAgICAgaWYoKGJ5dGVQb3MgKyAyKSA+PSBieXRlQnVmZmVyTGltaXQpIAorICAgICAgICAgICAgICAgIHsgLS11Y1BvczsgYnJlYWsgbWFpbkxvb3A7IH0KKworICAgICAgICAgICAgLy8gZ2V0IGxlYXN0IHJlY2VudGx5IGRlZmluZWQgd2luZG93CisgICAgICAgICAgICB3aGljaFdpbmRvdyA9IGdldExSRGVmaW5lZFdpbmRvdygpOworCisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkoVURFRklORTAgKyB3aGljaFdpbmRvdyk7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgY3VySW5kZXg7CisgICAgICAgICAgICBieXRlQnVmZmVyW2J5dGVQb3MrK10gPSAoYnl0ZSkgCisgICAgICAgICAgICAgICAgKGN1clVDIC0gc09mZnNldFRhYmxlW2N1ckluZGV4XSAKKyAgICAgICAgICAgICAgICAgKyBDT01QUkVTU0lPTk9GRlNFVCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZPZmZzZXRzW3doaWNoV2luZG93XSA9IHNPZmZzZXRUYWJsZVtjdXJJbmRleF07CisgICAgICAgICAgICBmQ3VycmVudFdpbmRvdyA9IHdoaWNoV2luZG93OworICAgICAgICAgICAgZlRpbWVTdGFtcHMgW3doaWNoV2luZG93XSA9ICsrZlRpbWVTdGFtcDsKKyAgICAgICAgICAgIGZNb2RlID0gU0lOR0xFQllURU1PREU7CisgICAgICAgICAgICBicmVhayB1bmljb2RlTW9kZUxvb3A7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSBqdXN0IHF1b3RlIHRoZSB1bmljb2RlLCBhbmQgc2F2ZSBvdXIKKyAgICAgICAgICAgIC8vIHdpbmRvd3MgZm9yIGxvbmdlciBydW5zCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZXJlIGlzIGVub3VnaCByb29tIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIGFsbCB0aHJlZSBieXRlcyBpZiBub3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJld2luZCB0aGUgc291cmNlIHN0cmVhbSBhbmQgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3V0CisgICAgICAgICAgICBpZigoYnl0ZVBvcyArIDIpID49IGJ5dGVCdWZmZXJMaW1pdCkgCisgICAgICAgICAgICAgICAgeyAtLXVjUG9zOyBicmVhayBtYWluTG9vcDsgfQorCisgICAgICAgICAgICBoaUJ5dGUgPSBjdXJVQyA+Pj4gODsKKyAgICAgICAgICAgIGxvQnl0ZSA9IGN1clVDICYgMHhGRjsKKworICAgICAgICAgICAgaWYoc1VuaWNvZGVUYWdUYWJsZVsgaGlCeXRlIF0pCisgICAgICAgICAgICAgICAgLy8gYWRkIHF1b3RlIFVuaWNvZGUgdGFnCisgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIFVRVU9URVU7ICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYnl0ZUJ1ZmZlcltieXRlUG9zKytdID0gKGJ5dGUpIGhpQnl0ZTsKKyAgICAgICAgICAgIGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSA9IChieXRlKSBsb0J5dGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB9ICAvLyBlbmQgc3dpdGNoCisgICAgfQorICAgIAorICAgICAgICAvLyBmaWxsIGluIG91dHB1dCBwYXJhbWV0ZXIKKyAgICBpZihjaGFyc1JlYWQgIT0gbnVsbCkKKyAgICAgICAgY2hhcnNSZWFkIFswXSA9ICh1Y1BvcyAtIGNoYXJCdWZmZXJTdGFydCk7CisgICAgICAgIAorICAgICAgICAvLyByZXR1cm4gIyBvZiBieXRlcyB3cml0dGVuCisgICAgICAgIHJldHVybiAoYnl0ZVBvcyAtIGJ5dGVCdWZmZXJTdGFydCk7CisgICAgfQorCisgICAgLyoqIAorICAgICAqIFJlc2V0IHRoZSBjb21wcmVzc29yIHRvIGl0cyBpbml0aWFsIHN0YXRlLgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgaW50IGk7CisKKyAgICAgICAgLy8gcmVzZXQgZHluYW1pYyB3aW5kb3dzCisgICAgICAgIGZPZmZzZXRzWzBdID0gMHgwMDgwOyAgICAvLyBMYXRpbi0xCisgICAgICAgIGZPZmZzZXRzWzFdID0gMHgwMEMwOyAgICAvLyBMYXRpbi0xIFN1cHBsZW1lbnQgKyBMYXRpbiBFeHRlbmRlZC1BCisgICAgICAgIGZPZmZzZXRzWzJdID0gMHgwNDAwOyAgICAvLyBDeXJpbGxpYworICAgICAgICBmT2Zmc2V0c1szXSA9IDB4MDYwMDsgICAgLy8gQXJhYmljCisgICAgICAgIGZPZmZzZXRzWzRdID0gMHgwOTAwOyAgICAvLyBEZXZhbmFnYXJpCisgICAgICAgIGZPZmZzZXRzWzVdID0gMHgzMDQwOyAgICAvLyBIaXJhZ2FuYQorICAgICAgICBmT2Zmc2V0c1s2XSA9IDB4MzBBMDsgICAgLy8gS2F0YWthbmEKKyAgICAgICAgZk9mZnNldHNbN10gPSAweEZGMDA7ICAgIC8vIEZ1bGx3aWR0aCBBU0NJSQorCisKKyAgICAgICAgLy8gcmVzZXQgdGltZSBzdGFtcHMKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgTlVNV0lORE9XUzsgaSsrKSB7CisgICAgICAgICAgICBmVGltZVN0YW1wc1tpXSAgICAgICAgICA9IDA7CisgICAgICAgIH0KKworICAgICAgICAvLyByZXNldCBjb3VudCBvZiBzZWVuIGluZGljZXMKKyAgICAgICAgZm9yKGkgPSAwOyBpIDw9IE1BWElOREVYOyBpKysgKSB7CisgICAgICAgICAgICBmSW5kZXhDb3VudFtpXSA9IDA7CisgICAgICAgIH0KKworICAgICAgICBmVGltZVN0YW1wICAgICAgPSAwOyAgICAgICAgICAgICAgICAvLyBSZXNldCBjdXJyZW50IHRpbWUgc3RhbXAKKyAgICAgICAgZkN1cnJlbnRXaW5kb3cgID0gMDsgICAgICAgICAgICAgICAgLy8gTWFrZSBjdXJyZW50IHdpbmRvdyBMYXRpbi0xCisgICAgICAgIGZNb2RlICAgICAgICAgICA9IFNJTkdMRUJZVEVNT0RFOyAgIC8vIEFsd2F5cyBzdGFydCBpbiBzaW5nbGUtYnl0ZSBtb2RlCisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIERldGVybWluZSB0aGUgaW5kZXggZm9yIGEgY2hhcmFjdGVyCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIHRoZSBpbmRleCB2YWx1ZSBmb3IgYSBjaGFyYWN0ZXIuCisgICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcyBmdW5jdGlvbiwgcmVmZXIgdG8gdGFibGUgWC0zCisgICAgICogPEEgSFJFRj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHI2Ij5VVFI2PC9BPi4KKyAgICAgKiBAcGFyYW0gYyBUaGUgY2hhcmFjdGVyIGluIHF1ZXN0aW9uLgorICAgICAqIEByZXR1cm4gQW4gaW5kZXggZm9yIGMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbWFrZUluZGV4KGludCBjKQorICAgIHsKKyAgICAgICAgLy8gY2hlY2sgdGhlIHByZWRlZmluZWQgaW5kaWNlcworICAgICAgICBpZihjID49IDB4MDBDMCAmJiBjIDwgMHgwMTQwKQorICAgICAgICAgICAgcmV0dXJuIExBVElOSU5ERVg7CisgICAgICAgIGVsc2UgaWYoYyA+PSAweDAyNTAgJiYgYyA8IDB4MDJEMCkKKyAgICAgICAgICAgIHJldHVybiBJUEFFWFRFTlNJT05JTkRFWDsKKyAgICAgICAgZWxzZSBpZihjID49IDB4MDM3MCAmJiBjIDwgMHgwM0YwKQorICAgICAgICAgICAgcmV0dXJuIEdSRUVLSU5ERVg7CisgICAgICAgIGVsc2UgaWYoYyA+PSAweDA1MzAgJiYgYyA8IDB4MDU5MCkKKyAgICAgICAgICAgIHJldHVybiBBUk1FTklBTklOREVYOworICAgICAgICBlbHNlIGlmKGMgPj0gMHgzMDQwICYmIGMgPCAweDMwQTApCisgICAgICAgICAgICByZXR1cm4gSElSQUdBTkFJTkRFWDsKKyAgICAgICAgZWxzZSBpZihjID49IDB4MzBBMCAmJiBjIDwgMHgzMTIwKQorICAgICAgICAgICAgcmV0dXJuIEtBVEFLQU5BSU5ERVg7CisgICAgICAgIGVsc2UgaWYoYyA+PSAweEZGNjAgJiYgYyA8IDB4RkY5RikKKyAgICAgICAgICAgIHJldHVybiBIQUxGV0lEVEhLQVRBS0FOQUlOREVYOworCisgICAgICAgIC8vIGNhbGN1bGF0ZSBpbmRleAorICAgICAgICBlbHNlIGlmKGMgPj0gMHgwMDgwICYmIGMgPCAweDM0MDApCisgICAgICAgICAgICByZXR1cm4gKGMgLyAweDgwKSAmIDB4RkY7CisgICAgICAgIGVsc2UgaWYoYyA+PSAweEUwMDAgJiYgYyA8PSAweEZGRkYpCisgICAgICAgICAgICByZXR1cm4gKChjIC0gMHhBQzAwKSAvIDB4ODApICYgMHhGRjsKKyAgICAgICAgICAgIAorICAgICAgICAvLyBzaG91bGQgbmV2ZXIgaGFwcGVuCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIFJFU0VSVkVESU5ERVg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ2hlY2sgaWYgYSBnaXZlbiBjaGFyYWN0ZXIgZml0cyBpbiBhIHdpbmRvdworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICogRGV0ZXJtaW5lIGlmIGEgY2hhcmFjdGVyIGlzIGluIGEgZHluYW1pYyB3aW5kb3cuCisgICAgKiBAcGFyYW0gYyBUaGUgY2hhcmFjdGVyIHRvIHRlc3QKKyAgICAqIEBwYXJhbSB3aGljaFdpbmRvdyBUaGUgZHluYW1pYyB3aW5kb3cgdGhlIHRlc3QKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiA8VFQ+YzwvVFQ+IHdpbGwgZml0IGluIDxUVD53aGljaFdpbmRvdzwvVFQ+LCAKKyAgICAqIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBpbkR5bmFtaWNXaW5kb3coaW50IGMsIAorICAgICAgICAgICAgICAgICAgICBpbnQgd2hpY2hXaW5kb3cpCisgICAgeworICAgICAgICByZXR1cm4gKGMgPj0gZk9mZnNldHNbd2hpY2hXaW5kb3ddIAorICAgICAgICAmJiBjIDwgKGZPZmZzZXRzW3doaWNoV2luZG93XSArIDB4ODApKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmUgaWYgYSBjaGFyYWN0ZXIgaXMgaW4gYSBzdGF0aWMgd2luZG93LgorICAgICogQHBhcmFtIGMgVGhlIGNoYXJhY3RlciB0byB0ZXN0CisgICAgKiBAcGFyYW0gd2hpY2hXaW5kb3cgVGhlIHN0YXRpYyB3aW5kb3cgdGhlIHRlc3QKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiA8VFQ+YzwvVFQ+IHdpbGwgZml0IGluIDxUVD53aGljaFdpbmRvdzwvVFQ+LCAKKyAgICAqIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaW5TdGF0aWNXaW5kb3coaW50IGMsIAorICAgICAgICAgICAgICAgICAgICAgIGludCB3aGljaFdpbmRvdykKKyAgICB7CisgICAgICAgIHJldHVybiAoYyA+PSBzT2Zmc2V0c1t3aGljaFdpbmRvd10KKyAgICAgICAgJiYgYyA8IChzT2Zmc2V0c1t3aGljaFdpbmRvd10gKyAweDgwKSk7CisgICAgfQorCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIENoZWNrIGlmIGEgZ2l2ZW4gY2hhcmFjdGVyIGlzIGNvbXByZXNzaWJsZQorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICogRGV0ZXJtaW5lIGlmIGEgY2hhcmFjdGVyIGlzIGNvbXByZXNzaWJsZS4KKyAgICAqIEBwYXJhbSBjIFRoZSBjaGFyYWN0ZXIgdG8gdGVzdC4KKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgPFRUPmM8L1RUPiBpcyBjb21wcmVzc2libGUsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaXNDb21wcmVzc2libGUoaW50IGMpCisgICAgeworICAgICAgICByZXR1cm4gKGMgPCAweDM0MDAgfHwgYyA+PSAweEUwMDApOworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBDaGVjayBpZiBhIHdpbmRvdyBpcyBkZWZpbmVkIGZvciBhIGdpdmVuIGNoYXJhY3RlcgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIERldGVybWluZSBpZiBhIGR5bmFtaWMgd2luZG93IGZvciBhIGNlcnRhaW4gY2hhcmFjdGVyIGlzIGRlZmluZWQKKyAgICAgKiBAcGFyYW0gYyBUaGUgY2hhcmFjdGVyIGluIHF1ZXN0aW9uCisgICAgICogQHJldHVybiBUaGUgZHluYW1pYyB3aW5kb3cgY29udGFpbmluZyA8VFQ+YzwvVFQ+LCBvciAKKyAgICAgKiBJTlZBTElEV0lORE9XIGlmIG5vdCBkZWZpbmVkLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGZpbmREeW5hbWljV2luZG93KGludCBjKQorICAgIHsKKyAgICAvLyBzdXBwb3NlZGx5IGZhc3RlciB0byBjb3VudCBkb3duCisgICAgICAgIC8vZm9yKGludCBpID0gMDsgaSA8IE5VTVdJTkRPV1M7IGkrKykgeworICAgIGZvcihpbnQgaSA9IE5VTVdJTkRPV1MgLSAxOyBpID49IDA7IC0taSkgeworICAgICAgICBpZihpbkR5bmFtaWNXaW5kb3coYywgaSkpIHsKKyAgICAgICAgKytmVGltZVN0YW1wc1tpXTsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBJTlZBTElEV0lORE9XOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZSBpZiBhIHN0YXRpYyB3aW5kb3cgZm9yIGEgY2VydGFpbiBjaGFyYWN0ZXIgaXMgZGVmaW5lZAorICAgICAqIEBwYXJhbSBjIFRoZSBjaGFyYWN0ZXIgaW4gcXVlc3Rpb24KKyAgICAgKiBAcmV0dXJuIFRoZSBzdGF0aWMgd2luZG93IGNvbnRhaW5pbmcgPFRUPmM8L1RUPiwgb3IgCisgICAgICogSU5WQUxJRFdJTkRPVyBpZiBub3QgZGVmaW5lZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZmluZFN0YXRpY1dpbmRvdyhpbnQgYykKKyAgICB7CisgICAgLy8gc3VwcG9zZWRseSBmYXN0ZXIgdG8gY291bnQgZG93bgorICAgICAgICAvL2ZvcihpbnQgaSA9IDA7IGkgPCBOVU1TVEFUSUNXSU5ET1dTOyBpKyspIHsKKyAgICBmb3IoaW50IGkgPSBOVU1TVEFUSUNXSU5ET1dTIC0gMTsgaSA+PSAwOyAtLWkpIHsKKyAgICAgICAgaWYoaW5TdGF0aWNXaW5kb3coYywgaSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAgICAgcmV0dXJuIElOVkFMSURXSU5ET1c7CisgICAgfQorICAgIAorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBGaW5kIHRoZSBsZWFzdC1yZWNlbnRseSB1c2VkIHdpbmRvdworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKiBGaW5kIHRoZSBsZWFzdC1yZWNlbnRseSBkZWZpbmVkIHdpbmRvdyAqLworICAgIHByaXZhdGUgaW50IGdldExSRGVmaW5lZFdpbmRvdygpCisgICAgeworICAgICAgICBpbnQgbGVhc3RSVSAgICAgICAgID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgIGludCB3aGljaFdpbmRvdyAgICAgPSBJTlZBTElEV0lORE9XOworCisgICAgICAgIC8vIGZpbmQgbGVhc3QgcmVjZW50bHkgdXNlZCB3aW5kb3cKKyAgICAgICAgLy8gc3VwcG9zZWRseSBmYXN0ZXIgdG8gY291bnQgZG93bgorICAgICAgICAvL2ZvciggaW50IGkgPSAwOyBpIDwgTlVNV0lORE9XUzsgaSsrICkgeworICAgICAgICBmb3IoaW50IGkgPSBOVU1XSU5ET1dTIC0gMTsgaSA+PSAwOyAtLWkgKSB7CisgICAgICAgICAgICBpZiggZlRpbWVTdGFtcHNbaV0gPCBsZWFzdFJVICkgeworICAgICAgICAgICAgICAgIGxlYXN0UlUgICA9IGZUaW1lU3RhbXBzW2ldOworICAgICAgICAgICAgICAgIHdoaWNoV2luZG93ICA9IGk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gd2hpY2hXaW5kb3c7CisgICAgfQorICAgIAorfTsKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVEZWNvbXByZXNzb3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVEZWNvbXByZXNzb3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40M2QwN2U2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZURlY29tcHJlc3Nvci5qYXZhCkBAIC0wLDAgKzEsNTYyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorKiBBIGRlY29tcHJlc3Npb24gZW5naW5lIGltcGxlbWVudGluZyB0aGUgU3RhbmRhcmQgQ29tcHJlc3Npb24gU2NoZW1lCisqIGZvciBVbmljb2RlIChTQ1NVKSBhcyBvdXRsaW5lZCBpbiA8QQorKiBIUkVGPSJodHRwOi8vd3d3LnVuaWNvZGUub3JnL3VuaWNvZGUvcmVwb3J0cy90cjYiPlVuaWNvZGUgVGVjaG5pY2FsCisqIFJlcG9ydCAjNjwvQT4uCisqCisqIDxQPjxTVFJPTkc+VVNBR0U8L1NUUk9ORz48L1A+CisqCisqIDxQPlRoZSBzdGF0aWMgbWV0aG9kcyBvbiA8VFQ+VW5pY29kZURlY29tcHJlc3NvcjwvVFQ+IG1heSBiZSB1c2VkIGluIGEKKyogc3RyYWlnaHRmb3J3YXJkIG1hbm5lciB0byBkZWNvbXByZXNzIHNpbXBsZSBzdHJpbmdzOjwvUD4KKyoKKyogPFBSRT4KKyogIGJ5dGUgW10gY29tcHJlc3NlZCA9IC4uLiA7IC8vIGdldCBjb21wcmVzc2VkIGJ5dGVzIGZyb20gc29tZXdoZXJlCisqICBTdHJpbmcgcmVzdWx0ID0gVW5pY29kZURlY29tcHJlc3Nvci5kZWNvbXByZXNzKGNvbXByZXNzZWQpOworKiA8L1BSRT4KKyoKKyogPFA+VGhlIHN0YXRpYyBtZXRob2RzIGhhdmUgYSBmYWlybHkgbGFyZ2UgbWVtb3J5IGZvb3RwcmludC4KKyogRm9yIGZpbmVyLWdyYWluZWQgY29udHJvbCBvdmVyIG1lbW9yeSB1c2FnZSwgCisqIDxUVD5Vbmljb2RlRGVjb21wcmVzc29yPC9UVD4gb2ZmZXJzIG1vcmUgcG93ZXJmdWwgQVBJcyBhbGxvd2luZworKiBpdGVyYXRpdmUgZGVjb21wcmVzc2lvbjo8L1A+CisqCisqIDxQUkU+CisqICAvLyBEZWNvbXByZXNzIGFuIGFycmF5ICJieXRlcyIgb2YgbGVuZ3RoICJsZW4iIHVzaW5nIGEgYnVmZmVyIG9mIDUxMiBjaGFycworKiAgLy8gdG8gdGhlIFdyaXRlciAib3V0IgorKgorKiAgVW5pY29kZURlY29tcHJlc3NvciBteURlY29tcHJlc3NvciAgICAgICAgID0gbmV3IFVuaWNvZGVEZWNvbXByZXNzb3IoKTsKKyogIGZpbmFsIHN0YXRpYyBpbnQgICAgQlVGU0laRSAgICAgICAgICAgICAgICA9IDUxMjsKKyogIGNoYXIgW10gICAgICAgICAgICAgY2hhckJ1ZmZlciAgICAgICAgICAgICA9IG5ldyBjaGFyIFsgQlVGU0laRSBdOworKiAgaW50ICAgICAgICAgICAgICAgICBjaGFyc1dyaXR0ZW4gICAgICAgICAgID0gMDsKKyogIGludCBbXSAgICAgICAgICAgICAgYnl0ZXNSZWFkICAgICAgICAgICAgICA9IG5ldyBpbnQgWzFdOworKiAgaW50ICAgICAgICAgICAgICAgICB0b3RhbEJ5dGVzRGVjb21wcmVzc2VkID0gMDsKKyogIGludCAgICAgICAgICAgICAgICAgdG90YWxDaGFyc1dyaXR0ZW4gICAgICA9IDA7CisqCisqICBkbyB7CisqICAgIC8vIGRvIHRoZSBkZWNvbXByZXNzaW9uCisqICAgIGNoYXJzV3JpdHRlbiA9IG15RGVjb21wcmVzc29yLmRlY29tcHJlc3MoYnl0ZXMsIHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQsIAorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiwgYnl0ZXNSZWFkLAorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJCdWZmZXIsIDAsIEJVRlNJWkUpOworKgorKiAgICAvLyBkbyBzb21ldGhpbmcgd2l0aCB0aGUgY3VycmVudCBzZXQgb2YgY2hhcnMKKyogICAgb3V0LndyaXRlKGNoYXJCdWZmZXIsIDAsIGNoYXJzV3JpdHRlbik7CisqCisqICAgIC8vIHVwZGF0ZSB0aGUgbm8uIG9mIGJ5dGVzIGRlY29tcHJlc3NlZAorKiAgICB0b3RhbEJ5dGVzRGVjb21wcmVzc2VkICs9IGJ5dGVzUmVhZFswXTsKKyoKKyogICAgLy8gdXBkYXRlIHRoZSBuby4gb2YgY2hhcnMgd3JpdHRlbgorKiAgICB0b3RhbENoYXJzV3JpdHRlbiArPSBjaGFyc1dyaXR0ZW47CisqCisqICB9IHdoaWxlKHRvdGFsQnl0ZXNEZWNvbXByZXNzZWQgPCBsZW4pOworKgorKiAgbXlEZWNvbXByZXNzb3IucmVzZXQoKTsgLy8gcmV1c2UgZGVjb21wcmVzc29yCisqIDwvUFJFPgorKgorKiA8UD5EZWNvbXByZXNzaW9uIGlzIHBlcmZvcm1lZCBhY2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJkIHNldCBmb3J0aCBpbiAKKyogPEEgSFJFRj0iaHR0cDovL3d3dy51bmljb2RlLm9yZy91bmljb2RlL3JlcG9ydHMvdHI2Ij5Vbmljb2RlIFRlY2huaWNhbCAKKyogUmVwb3J0ICM2PC9BPjwvUD4KKyoKKyogQHNlZSBVbmljb2RlQ29tcHJlc3NvcgorKgorKiBAYXV0aG9yIFN0ZXBoZW4gRi4gQm9vdGgKKyogQHN0YWJsZSBJQ1UgMi40CisqLworcHVibGljIGZpbmFsIGNsYXNzIFVuaWNvZGVEZWNvbXByZXNzb3IgaW1wbGVtZW50cyBTQ1NVCit7CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEluc3RhbmNlIHZhcmlhYmxlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAKKyAgICAvKiogQWxpYXMgdG8gY3VycmVudCBkeW5hbWljIHdpbmRvdyAqLworICAgIHByaXZhdGUgaW50ICAgICAgIGZDdXJyZW50V2luZG93ICAgPSAwOworCisgICAgLyoqIER5bmFtaWMgY29tcHJlc3Npb24gd2luZG93IG9mZnNldHMgKi8KKyAgICBwcml2YXRlIGludCBbXSAgICBmT2Zmc2V0cyAgICAgICAgID0gbmV3IGludCBbIE5VTVdJTkRPV1MgXTsKKworICAgIC8qKiBDdXJyZW50IGNvbXByZXNzaW9uIG1vZGUgKi8KKyAgICBwcml2YXRlIGludCAgICAgICBmTW9kZSAgICAgICAgICAgID0gU0lOR0xFQllURU1PREU7CisKKyAgICAvKiogU2l6ZSBvZiBvdXIgaW50ZXJuYWwgYnVmZmVyICovCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgaW50IEJVRlNJWkUgICA9IDM7CisKKyAgICAvKiogSW50ZXJuYWwgYnVmZmVyIGZvciBzYXZpbmcgc3RhdGUgKi8KKyAgICBwcml2YXRlIGJ5dGUgW10gICBmQnVmZmVyICAgICAgICAgID0gbmV3IGJ5dGUgW0JVRlNJWkVdOworCisgICAgLyoqIE51bWJlciBvZiBjaGFyYWN0ZXJzIGluIG91ciBpbnRlcm5hbCBidWZmZXIgKi8KKyAgICBwcml2YXRlIGludCAgICAgICBmQnVmZmVyTGVuZ3RoICAgID0gMDsKKyAgICAKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFVuaWNvZGVEZWNvbXByZXNzb3IuCisgICAgICogU2V0cyBhbGwgd2luZG93cyB0byB0aGVpciBkZWZhdWx0IHZhbHVlcy4KKyAgICAgKiBAc2VlICNyZXNldAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlRGVjb21wcmVzc29yKCkKKyAgICB7CisgICAgcmVzZXQoKTsgICAgICAgICAgICAgIC8vIGluaXRpYWxpemUgdG8gZGVmYXVsdHMKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNvbXByZXNzIGEgYnl0ZSBhcnJheSBpbnRvIGEgU3RyaW5nLgorICAgICAqIEBwYXJhbSBidWZmZXIgVGhlIGJ5dGUgYXJyYXkgdG8gZGVjb21wcmVzcy4KKyAgICAgKiBAcmV0dXJuIEEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlIGRlY29tcHJlc3NlZCBjaGFyYWN0ZXJzLgorICAgICAqIEBzZWUgI2RlY29tcHJlc3MoYnl0ZSBbXSwgaW50LCBpbnQpCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZGVjb21wcmVzcyhieXRlIFtdIGJ1ZmZlcikKKyAgICB7CisgICAgY2hhciBbXSBidWYgPSBkZWNvbXByZXNzKGJ1ZmZlciwgMCwgYnVmZmVyLmxlbmd0aCk7CisgICAgcmV0dXJuIG5ldyBTdHJpbmcoYnVmKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZWNvbXByZXNzIGEgYnl0ZSBhcnJheSBpbnRvIGEgVW5pY29kZSBjaGFyYWN0ZXIgYXJyYXkuCisgICAgICogQHBhcmFtIGJ1ZmZlciBUaGUgYnl0ZSBhcnJheSB0byBkZWNvbXByZXNzLgorICAgICAqIEBwYXJhbSBzdGFydCBUaGUgc3RhcnQgb2YgdGhlIGJ5dGUgcnVuIHRvIGRlY29tcHJlc3MuCisgICAgICogQHBhcmFtIGxpbWl0IFRoZSBsaW1pdCBvZiB0aGUgYnl0ZSBydW4gdG8gZGVjb21wcmVzcy4KKyAgICAgKiBAcmV0dXJuIEEgY2hhcmFjdGVyIGFycmF5IGNvbnRhaW5pbmcgdGhlIGRlY29tcHJlc3NlZCBieXRlcy4KKyAgICAgKiBAc2VlICNkZWNvbXByZXNzKGJ5dGUgW10pCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBjaGFyIFtdIGRlY29tcHJlc3MoYnl0ZSBbXSBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQpCisgICAgeworICAgIFVuaWNvZGVEZWNvbXByZXNzb3IgY29tcCA9IG5ldyBVbmljb2RlRGVjb21wcmVzc29yKCk7CisKKyAgICAvLyB1c2UgYSBidWZmZXIgd2Uga25vdyB3aWxsIG5ldmVyIG92ZXJmbG93CisgICAgLy8gaW4gdGhlIHdvcnN0IGNhc2UsIGVhY2ggYnl0ZSB3aWxsIGRlY29tcHJlc3MKKyAgICAvLyB0byBhIHN1cnJvZ2F0ZSBwYWlyIChidWZmZXIgbXVzdCBiZSBhdCBsZWFzdCAyIGNoYXJzKQorICAgIGludCBsZW4gPSBNYXRoLm1heCgyLCAyICogKGxpbWl0IC0gc3RhcnQpKTsKKyAgICBjaGFyIFtdIHRlbXAgPSBuZXcgY2hhciBbbGVuXTsKKworICAgIGludCBjaGFyQ291bnQgPSBjb21wLmRlY29tcHJlc3MoYnVmZmVyLCBzdGFydCwgbGltaXQsIG51bGwsIAorICAgICAgICAgICAgICAgICAgICB0ZW1wLCAwLCBsZW4pOworCisgICAgY2hhciBbXSByZXN1bHQgPSBuZXcgY2hhciBbY2hhckNvdW50XTsKKyAgICBTeXN0ZW0uYXJyYXljb3B5KHRlbXAsIDAsIHJlc3VsdCwgMCwgY2hhckNvdW50KTsKKyAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEZWNvbXByZXNzIGEgYnl0ZSBhcnJheSBpbnRvIGEgVW5pY29kZSBjaGFyYWN0ZXIgYXJyYXkuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgZWl0aGVyIGNvbXBsZXRlbHkgZmlsbCB0aGUgb3V0cHV0IGJ1ZmZlciwgCisgICAgICogb3IgY29uc3VtZSB0aGUgZW50aXJlIGlucHV0LiAgCisgICAgICoKKyAgICAgKiBAcGFyYW0gYnl0ZUJ1ZmZlciBUaGUgYnl0ZSBidWZmZXIgdG8gZGVjb21wcmVzcy4KKyAgICAgKiBAcGFyYW0gYnl0ZUJ1ZmZlclN0YXJ0IFRoZSBzdGFydCBvZiB0aGUgYnl0ZSBydW4gdG8gZGVjb21wcmVzcy4KKyAgICAgKiBAcGFyYW0gYnl0ZUJ1ZmZlckxpbWl0IFRoZSBsaW1pdCBvZiB0aGUgYnl0ZSBydW4gdG8gZGVjb21wcmVzcy4KKyAgICAgKiBAcGFyYW0gYnl0ZXNSZWFkIEEgb25lLWVsZW1lbnQgYXJyYXkuICBJZiBub3QgbnVsbCwgb24gcmV0dXJuCisgICAgICogdGhlIG51bWJlciBvZiBieXRlcyByZWFkIGZyb20gYnl0ZUJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gY2hhckJ1ZmZlciBBIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBkZWNvbXByZXNzZWQgZGF0YS4gCisgICAgICogVGhpcyBidWZmZXIgbXVzdCBiZSBhdCBtaW5pbXVtIHR3byBjaGFyYWN0ZXJzIGluIHNpemUuCisgICAgICogQHBhcmFtIGNoYXJCdWZmZXJTdGFydCBUaGUgc3RhcnRpbmcgb2Zmc2V0IHRvIHdoaWNoIHRvIHdyaXRlIAorICAgICAqIGRlY29tcHJlc3NlZCBkYXRhLgorICAgICAqIEBwYXJhbSBjaGFyQnVmZmVyTGltaXQgVGhlIGxpbWl0aW5nIG9mZnNldCBmb3Igd3JpdGluZyAKKyAgICAgKiBkZWNvbXByZXNzZWQgZGF0YS4KKyAgICAgKiBAcmV0dXJuIFRoZSBudW1iZXIgb2YgVW5pY29kZSBjaGFyYWN0ZXJzIHdyaXR0ZW4gdG8gY2hhckJ1ZmZlci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGRlY29tcHJlc3MoYnl0ZSBbXSAgICBieXRlQnVmZmVyLAorICAgICAgICAgICAgICBpbnQgICAgICAgIGJ5dGVCdWZmZXJTdGFydCwKKyAgICAgICAgICAgICAgaW50ICAgICAgICBieXRlQnVmZmVyTGltaXQsCisgICAgICAgICAgICAgIGludCBbXSAgICAgYnl0ZXNSZWFkLAorICAgICAgICAgICAgICBjaGFyIFtdICAgIGNoYXJCdWZmZXIsCisgICAgICAgICAgICAgIGludCAgICAgICAgY2hhckJ1ZmZlclN0YXJ0LAorICAgICAgICAgICAgICBpbnQgICAgICAgIGNoYXJCdWZmZXJMaW1pdCkKKyAgICB7CisgICAgLy8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIHNvdXJjZSBieXRlIGJ1ZmZlcgorICAgIGludCBieXRlUG9zICAgICAgPSBieXRlQnVmZmVyU3RhcnQ7CisgICAgCisgICAgLy8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIHRhcmdldCBjaGFyIGJ1ZmZlcgorICAgIGludCB1Y1BvcyAgICAgICAgPSBjaGFyQnVmZmVyU3RhcnQ7CisgICAgICAgIAorICAgICAgICAvLyB0aGUgY3VycmVudCBieXRlIGZyb20gdGhlIHNvdXJjZSBidWZmZXIKKyAgICBpbnQgYUJ5dGUgICAgICAgID0gMHgwMDsKKworCisgICAgLy8gY2hhckJ1ZmZlciBtdXN0IGJlIGF0IGxlYXN0IDIgY2hhcnMgaW4gc2l6ZQorICAgIGlmKGNoYXJCdWZmZXIubGVuZ3RoIDwgMiB8fCAoY2hhckJ1ZmZlckxpbWl0IC0gY2hhckJ1ZmZlclN0YXJ0KSA8IDIpCisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNoYXJCdWZmZXIubGVuZ3RoIDwgMiIpOworICAgIAorICAgIC8vIGlmIG91ciBpbnRlcm5hbCBidWZmZXIgaXNuJ3QgZW1wdHksIGZsdXNoIGl0cyBjb250ZW50cworICAgIC8vIHRvIHRoZSBvdXRwdXQgYnVmZmVyIGJlZm9yZSBkb2luZyBhbnkgbW9yZSBkZWNvbXByZXNzaW9uCisgICAgaWYoZkJ1ZmZlckxlbmd0aCA+IDApIHsKKworICAgICAgICBpbnQgbmV3Qnl0ZXMgPSAwOworCisgICAgICAgIC8vIGZpbGwgdGhlIGJ1ZmZlciBjb21wbGV0ZWx5LCB0byBndWFyYW50ZWUgb25lIGZ1bGwgY2hhcmFjdGVyCisgICAgICAgIGlmKGZCdWZmZXJMZW5ndGggIT0gQlVGU0laRSkgeworICAgICAgICBuZXdCeXRlcyA9IGZCdWZmZXIubGVuZ3RoIC0gZkJ1ZmZlckxlbmd0aDsKKworICAgICAgICAvLyB2ZXJpZnkgdGhlcmUgYXJlIG5ld0J5dGVzIGJ5dGVzIGluIGJ5dGVCdWZmZXIKKyAgICAgICAgaWYoYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZUJ1ZmZlclN0YXJ0IDwgbmV3Qnl0ZXMpCisgICAgICAgICAgICBuZXdCeXRlcyA9IGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVCdWZmZXJTdGFydDsKKworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ5dGVCdWZmZXIsIGJ5dGVCdWZmZXJTdGFydCwgCisgICAgICAgICAgICAgICAgIGZCdWZmZXIsIGZCdWZmZXJMZW5ndGgsIG5ld0J5dGVzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHJlc2V0IGJ1ZmZlciBsZW5ndGggdG8gMCBiZWZvcmUgcmVjdXJzaXZlIGNhbGwKKyAgICAgICAgZkJ1ZmZlckxlbmd0aCA9IDA7CisKKyAgICAgICAgLy8gY2FsbCBzZWxmIHJlY3Vyc2l2ZWx5IHRvIGRlY29tcHJlc3MgdGhlIGJ1ZmZlcgorICAgICAgICBpbnQgY291bnQgPSBkZWNvbXByZXNzKGZCdWZmZXIsIDAsIGZCdWZmZXIubGVuZ3RoLCBudWxsLAorICAgICAgICAgICAgICAgICAgIGNoYXJCdWZmZXIsIGNoYXJCdWZmZXJTdGFydCwgCisgICAgICAgICAgICAgICAgICAgY2hhckJ1ZmZlckxpbWl0KTsKKworICAgICAgICAvLyB1cGRhdGUgdGhlIHBvc2l0aW9ucyBpbnRvIHRoZSBhcnJheXMKKyAgICAgICAgdWNQb3MgKz0gY291bnQ7CisgICAgICAgIGJ5dGVQb3MgKz0gbmV3Qnl0ZXM7CisgICAgfQorCisgICAgICAgIC8vIHRoZSBtYWluIGRlY29tcHJlc3Npb24gbG9vcAorICAgIG1haW5Mb29wOgorICAgIHdoaWxlKGJ5dGVQb3MgPCBieXRlQnVmZmVyTGltaXQgJiYgdWNQb3MgPCBjaGFyQnVmZmVyTGltaXQpIHsKKyAgICAgICAgc3dpdGNoKGZNb2RlKSB7ICAKKyAgICAgICAgY2FzZSBTSU5HTEVCWVRFTU9ERToKKyAgICAgICAgLy8gc2luZ2xlLWJ5dGUgbW9kZSBkZWNvbXByZXNzaW9uIGxvb3AKKyAgICAgICAgc2luZ2xlQnl0ZU1vZGVMb29wOgorICAgICAgICB3aGlsZShieXRlUG9zIDwgYnl0ZUJ1ZmZlckxpbWl0ICYmIHVjUG9zIDwgY2hhckJ1ZmZlckxpbWl0KSB7CisgICAgICAgIGFCeXRlID0gYnl0ZUJ1ZmZlcltieXRlUG9zKytdICYgMHhGRjsKKyAgICAgICAgc3dpdGNoKGFCeXRlKSB7CisgICAgICAgICAgICAvLyBBbGwgYnl0ZXMgZnJvbSAweDgwIHRocm91Z2ggMHhGRiBhcmUgcmVtYXBwZWQKKyAgICAgICAgICAgIC8vIHRvIGNoYXJzIG9yIHN1cnJvZ2F0ZSBwYWlycyBhY2NvcmRpbmcgdG8gdGhlCisgICAgICAgICAgICAvLyBjdXJyZW50bHkgYWN0aXZlIHdpbmRvdworICAgICAgICBjYXNlIDB4ODA6IGNhc2UgMHg4MTogY2FzZSAweDgyOiBjYXNlIDB4ODM6IGNhc2UgMHg4NDogCisgICAgICAgIGNhc2UgMHg4NTogY2FzZSAweDg2OiBjYXNlIDB4ODc6IGNhc2UgMHg4ODogY2FzZSAweDg5OgorICAgICAgICBjYXNlIDB4OEE6IGNhc2UgMHg4QjogY2FzZSAweDhDOiBjYXNlIDB4OEQ6IGNhc2UgMHg4RToKKyAgICAgICAgY2FzZSAweDhGOiBjYXNlIDB4OTA6IGNhc2UgMHg5MTogY2FzZSAweDkyOiBjYXNlIDB4OTM6CisgICAgICAgIGNhc2UgMHg5NDogY2FzZSAweDk1OiBjYXNlIDB4OTY6IGNhc2UgMHg5NzogY2FzZSAweDk4OgorICAgICAgICBjYXNlIDB4OTk6IGNhc2UgMHg5QTogY2FzZSAweDlCOiBjYXNlIDB4OUM6IGNhc2UgMHg5RDoKKyAgICAgICAgY2FzZSAweDlFOiBjYXNlIDB4OUY6IGNhc2UgMHhBMDogY2FzZSAweEExOiBjYXNlIDB4QTI6CisgICAgICAgIGNhc2UgMHhBMzogY2FzZSAweEE0OiBjYXNlIDB4QTU6IGNhc2UgMHhBNjogY2FzZSAweEE3OgorICAgICAgICBjYXNlIDB4QTg6IGNhc2UgMHhBOTogY2FzZSAweEFBOiBjYXNlIDB4QUI6IGNhc2UgMHhBQzoKKyAgICAgICAgY2FzZSAweEFEOiBjYXNlIDB4QUU6IGNhc2UgMHhBRjogY2FzZSAweEIwOiBjYXNlIDB4QjE6CisgICAgICAgIGNhc2UgMHhCMjogY2FzZSAweEIzOiBjYXNlIDB4QjQ6IGNhc2UgMHhCNTogY2FzZSAweEI2OgorICAgICAgICBjYXNlIDB4Qjc6IGNhc2UgMHhCODogY2FzZSAweEI5OiBjYXNlIDB4QkE6IGNhc2UgMHhCQjoKKyAgICAgICAgY2FzZSAweEJDOiBjYXNlIDB4QkQ6IGNhc2UgMHhCRTogY2FzZSAweEJGOiBjYXNlIDB4QzA6CisgICAgICAgIGNhc2UgMHhDMTogY2FzZSAweEMyOiBjYXNlIDB4QzM6IGNhc2UgMHhDNDogY2FzZSAweEM1OgorICAgICAgICBjYXNlIDB4QzY6IGNhc2UgMHhDNzogY2FzZSAweEM4OiBjYXNlIDB4Qzk6IGNhc2UgMHhDQToKKyAgICAgICAgY2FzZSAweENCOiBjYXNlIDB4Q0M6IGNhc2UgMHhDRDogY2FzZSAweENFOiBjYXNlIDB4Q0Y6CisgICAgICAgIGNhc2UgMHhEMDogY2FzZSAweEQxOiBjYXNlIDB4RDI6IGNhc2UgMHhEMzogY2FzZSAweEQ0OgorICAgICAgICBjYXNlIDB4RDU6IGNhc2UgMHhENjogY2FzZSAweEQ3OiBjYXNlIDB4RDg6IGNhc2UgMHhEOToKKyAgICAgICAgY2FzZSAweERBOiBjYXNlIDB4REI6IGNhc2UgMHhEQzogY2FzZSAweEREOiBjYXNlIDB4REU6CisgICAgICAgIGNhc2UgMHhERjogY2FzZSAweEUwOiBjYXNlIDB4RTE6IGNhc2UgMHhFMjogY2FzZSAweEUzOgorICAgICAgICBjYXNlIDB4RTQ6IGNhc2UgMHhFNTogY2FzZSAweEU2OiBjYXNlIDB4RTc6IGNhc2UgMHhFODoKKyAgICAgICAgY2FzZSAweEU5OiBjYXNlIDB4RUE6IGNhc2UgMHhFQjogY2FzZSAweEVDOiBjYXNlIDB4RUQ6CisgICAgICAgIGNhc2UgMHhFRTogY2FzZSAweEVGOiBjYXNlIDB4RjA6IGNhc2UgMHhGMTogY2FzZSAweEYyOgorICAgICAgICBjYXNlIDB4RjM6IGNhc2UgMHhGNDogY2FzZSAweEY1OiBjYXNlIDB4RjY6IGNhc2UgMHhGNzoKKyAgICAgICAgY2FzZSAweEY4OiBjYXNlIDB4Rjk6IGNhc2UgMHhGQTogY2FzZSAweEZCOiBjYXNlIDB4RkM6CisgICAgICAgIGNhc2UgMHhGRDogY2FzZSAweEZFOiBjYXNlIDB4RkY6IAorICAgICAgICAgICAgLy8gRm9yIG9mZnNldHMgPD0gMHhGRkZGLCBjb252ZXJ0IHRvIGEgc2luZ2xlIGNoYXIKKyAgICAgICAgICAgIC8vIGJ5IGFkZGluZyB0aGUgd2luZG93J3Mgb2Zmc2V0IGFuZCBzdWJ0cmFjdGluZworICAgICAgICAgICAgLy8gdGhlIGdlbmVyaWMgY29tcHJlc3Npb24gb2Zmc2V0CisgICAgICAgICAgICBpZihmT2Zmc2V0c1sgZkN1cnJlbnRXaW5kb3cgXSA8PSAweEZGRkYpIHsKKyAgICAgICAgICAgIGNoYXJCdWZmZXJbdWNQb3MrK10gPSAoY2hhcikgCisgICAgICAgICAgICAgICAgKGFCeXRlICsgZk9mZnNldHNbIGZDdXJyZW50V2luZG93IF0gCisgICAgICAgICAgICAgICAgIC0gQ09NUFJFU1NJT05PRkZTRVQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gRm9yIG9mZnNldHMgPiAweDEwMDAwLCBjb252ZXJ0IHRvIGEgc3Vycm9nYXRlIHBhaXIgYnkgCisgICAgICAgICAgICAvLyBub3JtQmFzZSA9IHdpbmRvdydzIG9mZnNldCAtIDB4MTAwMDAKKyAgICAgICAgICAgIC8vIGhpZ2ggc3Vyci4gPSAweEQ4MDAgKyAobm9ybUJhc2UgPj4gMTApCisgICAgICAgICAgICAvLyBsb3cgIHN1cnIuID0gMHhEQzAwICsgKG5vcm1CYXNlICYgMHgzRkYpICsgKGJ5dGUgJiAweDdGKQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlcmUgaXMgZW5vdWdoIHJvb20gdG8gd3JpdGUKKyAgICAgICAgICAgIC8vIGJvdGggY2hhcmFjdGVycyAKKyAgICAgICAgICAgIC8vIGlmIG5vdCwgc2F2ZSBzdGF0ZSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZigodWNQb3MgKyAxKSA+PSBjaGFyQnVmZmVyTGltaXQpIHsKKyAgICAgICAgICAgICAgICAtLWJ5dGVQb3M7CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlUG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgIGZCdWZmZXIsIDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3MpOworICAgICAgICAgICAgICAgIGZCdWZmZXJMZW5ndGggPSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zOworICAgICAgICAgICAgICAgIGJ5dGVQb3MgKz0gZkJ1ZmZlckxlbmd0aDsKKyAgICAgICAgICAgICAgICBicmVhayBtYWluTG9vcDsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBub3JtYWxpemVkQmFzZSA9IGZPZmZzZXRzWyBmQ3VycmVudFdpbmRvdyBdIAorICAgICAgICAgICAgICAgIC0gMHgxMDAwMDsKKyAgICAgICAgICAgIGNoYXJCdWZmZXJbdWNQb3MrK10gPSAoY2hhcikgCisgICAgICAgICAgICAgICAgKDB4RDgwMCArIChub3JtYWxpemVkQmFzZSA+PiAxMCkpOworICAgICAgICAgICAgY2hhckJ1ZmZlclt1Y1BvcysrXSA9IChjaGFyKSAKKyAgICAgICAgICAgICAgICAoMHhEQzAwICsgKG5vcm1hbGl6ZWRCYXNlICYgMHgzRkYpKyhhQnl0ZSAmIDB4N0YpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAvLyBieXRlcyBmcm9tIDB4MjAgdGhyb3VnaCAweDdGIGFyZSB0cmVhdGVkIGFzIEFTQ0lJIGFuZAorICAgICAgICAgICAgLy8gYXJlIHJlbWFwcGVkIHRvIGNoYXJzIGJ5IHBhZGRpbmcgdGhlIGhpZ2ggYnl0ZQorICAgICAgICAgICAgLy8gKHRoaXMgaXMgdGhlIHNhbWUgYXMgcXVvdGluZyBmcm9tIHN0YXRpYyB3aW5kb3cgMCkKKyAgICAgICAgICAgIC8vIE5VTCAoMHgwMCksIEhUICgweDA5KSwgQ1IgKDB4MEEpLCBMRiAoMHgwRCkgCisgICAgICAgICAgICAvLyBhcmUgdHJlYXRlZCBhcyBBU0NJSSBhcyB3ZWxsCisgICAgICAgIGNhc2UgMHgwMDogY2FzZSAweDA5OiBjYXNlIDB4MEE6IGNhc2UgMHgwRDoKKyAgICAgICAgY2FzZSAweDIwOiBjYXNlIDB4MjE6IGNhc2UgMHgyMjogY2FzZSAweDIzOiBjYXNlIDB4MjQ6CisgICAgICAgIGNhc2UgMHgyNTogY2FzZSAweDI2OiBjYXNlIDB4Mjc6IGNhc2UgMHgyODogY2FzZSAweDI5OgorICAgICAgICBjYXNlIDB4MkE6IGNhc2UgMHgyQjogY2FzZSAweDJDOiBjYXNlIDB4MkQ6IGNhc2UgMHgyRToKKyAgICAgICAgY2FzZSAweDJGOiBjYXNlIDB4MzA6IGNhc2UgMHgzMTogY2FzZSAweDMyOiBjYXNlIDB4MzM6CisgICAgICAgIGNhc2UgMHgzNDogY2FzZSAweDM1OiBjYXNlIDB4MzY6IGNhc2UgMHgzNzogY2FzZSAweDM4OgorICAgICAgICBjYXNlIDB4Mzk6IGNhc2UgMHgzQTogY2FzZSAweDNCOiBjYXNlIDB4M0M6IGNhc2UgMHgzRDoKKyAgICAgICAgY2FzZSAweDNFOiBjYXNlIDB4M0Y6IGNhc2UgMHg0MDogY2FzZSAweDQxOiBjYXNlIDB4NDI6CisgICAgICAgIGNhc2UgMHg0MzogY2FzZSAweDQ0OiBjYXNlIDB4NDU6IGNhc2UgMHg0NjogY2FzZSAweDQ3OgorICAgICAgICBjYXNlIDB4NDg6IGNhc2UgMHg0OTogY2FzZSAweDRBOiBjYXNlIDB4NEI6IGNhc2UgMHg0QzoKKyAgICAgICAgY2FzZSAweDREOiBjYXNlIDB4NEU6IGNhc2UgMHg0RjogY2FzZSAweDUwOiBjYXNlIDB4NTE6CisgICAgICAgIGNhc2UgMHg1MjogY2FzZSAweDUzOiBjYXNlIDB4NTQ6IGNhc2UgMHg1NTogY2FzZSAweDU2OgorICAgICAgICBjYXNlIDB4NTc6IGNhc2UgMHg1ODogY2FzZSAweDU5OiBjYXNlIDB4NUE6IGNhc2UgMHg1QjoKKyAgICAgICAgY2FzZSAweDVDOiBjYXNlIDB4NUQ6IGNhc2UgMHg1RTogY2FzZSAweDVGOiBjYXNlIDB4NjA6CisgICAgICAgIGNhc2UgMHg2MTogY2FzZSAweDYyOiBjYXNlIDB4NjM6IGNhc2UgMHg2NDogY2FzZSAweDY1OgorICAgICAgICBjYXNlIDB4NjY6IGNhc2UgMHg2NzogY2FzZSAweDY4OiBjYXNlIDB4Njk6IGNhc2UgMHg2QToKKyAgICAgICAgY2FzZSAweDZCOiBjYXNlIDB4NkM6IGNhc2UgMHg2RDogY2FzZSAweDZFOiBjYXNlIDB4NkY6CisgICAgICAgIGNhc2UgMHg3MDogY2FzZSAweDcxOiBjYXNlIDB4NzI6IGNhc2UgMHg3MzogY2FzZSAweDc0OgorICAgICAgICBjYXNlIDB4NzU6IGNhc2UgMHg3NjogY2FzZSAweDc3OiBjYXNlIDB4Nzg6IGNhc2UgMHg3OToKKyAgICAgICAgY2FzZSAweDdBOiBjYXNlIDB4N0I6IGNhc2UgMHg3QzogY2FzZSAweDdEOiBjYXNlIDB4N0U6CisgICAgICAgIGNhc2UgMHg3RjogCisgICAgICAgICAgICBjaGFyQnVmZmVyW3VjUG9zKytdID0gKGNoYXIpIGFCeXRlOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIC8vIHF1b3RlIHVuaWNvZGUKKyAgICAgICAgY2FzZSBTUVVPVEVVOgorICAgICAgICAgICAgLy8gdmVyaWZ5IHdlIGhhdmUgdHdvIGJ5dGVzIGZvbGxvd2luZyB0YWcKKyAgICAgICAgICAgIC8vIGlmIG5vdCwgc2F2ZSBzdGF0ZSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZiggKGJ5dGVQb3MgKyAxKSA+PSBieXRlQnVmZmVyTGltaXQgKSB7CisgICAgICAgICAgICAtLWJ5dGVQb3M7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ5dGVCdWZmZXIsIGJ5dGVQb3MsCisgICAgICAgICAgICAgICAgICAgICBmQnVmZmVyLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3MpOworICAgICAgICAgICAgZkJ1ZmZlckxlbmd0aCA9IGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3M7CisgICAgICAgICAgICBieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisgICAgICAgICAgICBicmVhayBtYWluTG9vcDsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBhQnl0ZSA9IGJ5dGVCdWZmZXJbYnl0ZVBvcysrXTsKKyAgICAgICAgICAgIGNoYXJCdWZmZXJbdWNQb3MrK10gPSAoY2hhcikKKyAgICAgICAgICAgIChhQnl0ZSA8PCA4IHwgKGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkYpKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAvLyBzd2l0Y2ggdG8gVW5pY29kZSBtb2RlCisgICAgICAgIGNhc2UgU0NIQU5HRVU6CisgICAgICAgICAgICBmTW9kZSA9IFVOSUNPREVNT0RFOworICAgICAgICAgICAgYnJlYWsgc2luZ2xlQnl0ZU1vZGVMb29wOworICAgICAgICAgICAgLy9icmVhazsKKworICAgICAgICAgICAgLy8gaGFuZGxlIGFsbCBxdW90ZSB0YWdzCisgICAgICAgIGNhc2UgU1FVT1RFMDogY2FzZSBTUVVPVEUxOiBjYXNlIFNRVU9URTI6IGNhc2UgU1FVT1RFMzoKKyAgICAgICAgY2FzZSBTUVVPVEU0OiBjYXNlIFNRVU9URTU6IGNhc2UgU1FVT1RFNjogY2FzZSBTUVVPVEU3OgorICAgICAgICAgICAgLy8gdmVyaWZ5IHRoZXJlIGlzIGEgYnl0ZSBmb2xsb3dpbmcgdGhlIHRhZworICAgICAgICAgICAgLy8gaWYgbm90LCBzYXZlIHN0YXRlIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKGJ5dGVQb3MgPj0gYnl0ZUJ1ZmZlckxpbWl0KSB7CisgICAgICAgICAgICAtLWJ5dGVQb3M7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ5dGVCdWZmZXIsIGJ5dGVQb3MsCisgICAgICAgICAgICAgICAgICAgICBmQnVmZmVyLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3MpOworICAgICAgICAgICAgZkJ1ZmZlckxlbmd0aCA9IGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3M7CisgICAgICAgICAgICBieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisgICAgICAgICAgICBicmVhayBtYWluTG9vcDsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBpZiB0aGUgYnl0ZSBpcyBpbiB0aGUgcmFuZ2UgMHgwMCAtIDB4N0YsIHVzZQorICAgICAgICAgICAgLy8gc3RhdGljIHdpbmRvdyBuIG90aGVyd2lzZSwgdXNlIGR5bmFtaWMgd2luZG93IG4KKyAgICAgICAgICAgIGludCBkQnl0ZSA9IGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkY7CisgICAgICAgICAgICBjaGFyQnVmZmVyW3VjUG9zKytdID0gKGNoYXIpIAorICAgICAgICAgICAgKGRCeXRlKyAoZEJ5dGUgPj0gMHgwMCAmJiBkQnl0ZSA8IDB4ODAgCisgICAgICAgICAgICAgICAgID8gc09mZnNldHNbYUJ5dGUgLSBTUVVPVEUwXSAKKyAgICAgICAgICAgICAgICAgOiAoZk9mZnNldHNbYUJ5dGUgLSBTUVVPVEUwXSAKKyAgICAgICAgICAgICAgICAgICAgLSBDT01QUkVTU0lPTk9GRlNFVCkpKTsgCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgLy8gaGFuZGxlIGFsbCBjaGFuZ2UgdGFncworICAgICAgICBjYXNlIFNDSEFOR0UwOiBjYXNlIFNDSEFOR0UxOiBjYXNlIFNDSEFOR0UyOiBjYXNlIFNDSEFOR0UzOgorICAgICAgICBjYXNlIFNDSEFOR0U0OiBjYXNlIFNDSEFOR0U1OiBjYXNlIFNDSEFOR0U2OiBjYXNlIFNDSEFOR0U3OgorICAgICAgICAgICAgZkN1cnJlbnRXaW5kb3cgPSBhQnl0ZSAtIFNDSEFOR0UwOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIC8vIGhhbmRsZSBhbGwgZGVmaW5lIHRhZ3MKKyAgICAgICAgY2FzZSBTREVGSU5FMDogY2FzZSBTREVGSU5FMTogY2FzZSBTREVGSU5FMjogY2FzZSBTREVGSU5FMzoKKyAgICAgICAgY2FzZSBTREVGSU5FNDogY2FzZSBTREVGSU5FNTogY2FzZSBTREVGSU5FNjogY2FzZSBTREVGSU5FNzoKKyAgICAgICAgICAgIC8vIHZlcmlmeSB0aGVyZSBpcyBhIGJ5dGUgZm9sbG93aW5nIHRoZSB0YWcKKyAgICAgICAgICAgIC8vIGlmIG5vdCwgc2F2ZSBzdGF0ZSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZihieXRlUG9zID49IGJ5dGVCdWZmZXJMaW1pdCkgeworICAgICAgICAgICAgLS1ieXRlUG9zOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlUG9zLAorICAgICAgICAgICAgICAgICAgICAgZkJ1ZmZlciwgMCwgCisgICAgICAgICAgICAgICAgICAgICBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zKTsKKyAgICAgICAgICAgIGZCdWZmZXJMZW5ndGggPSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zOworICAgICAgICAgICAgYnl0ZVBvcyArPSBmQnVmZmVyTGVuZ3RoOworICAgICAgICAgICAgYnJlYWsgbWFpbkxvb3A7IAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmQ3VycmVudFdpbmRvdyA9IGFCeXRlIC0gU0RFRklORTA7CisgICAgICAgICAgICBmT2Zmc2V0c1tmQ3VycmVudFdpbmRvd10gPSAKKyAgICAgICAgICAgIHNPZmZzZXRUYWJsZVtieXRlQnVmZmVyW2J5dGVQb3MrK10gJiAweEZGXTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAvLyBoYW5kbGUgZGVmaW5lIGV4dGVuZGVkIHRhZworICAgICAgICBjYXNlIFNERUZJTkVYOgorICAgICAgICAgICAgLy8gdmVyaWZ5IHdlIGhhdmUgdHdvIGJ5dGVzIGZvbGxvd2luZyB0YWcKKyAgICAgICAgICAgIC8vIGlmIG5vdCwgc2F2ZSBzdGF0ZSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZigoYnl0ZVBvcyArIDEpID49IGJ5dGVCdWZmZXJMaW1pdCApIHsKKyAgICAgICAgICAgIC0tYnl0ZVBvczsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgYnl0ZVBvcywKKyAgICAgICAgICAgICAgICAgICAgIGZCdWZmZXIsIDAsIAorICAgICAgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvcyk7CisgICAgICAgICAgICBmQnVmZmVyTGVuZ3RoID0gYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvczsKKyAgICAgICAgICAgIGJ5dGVQb3MgKz0gZkJ1ZmZlckxlbmd0aDsKKyAgICAgICAgICAgIGJyZWFrIG1haW5Mb29wOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGFCeXRlID0gYnl0ZUJ1ZmZlcltieXRlUG9zKytdICYgMHhGRjsKKyAgICAgICAgICAgIGZDdXJyZW50V2luZG93ID0gKGFCeXRlICYgMHhFMCkgPj4gNTsKKyAgICAgICAgICAgIGZPZmZzZXRzW2ZDdXJyZW50V2luZG93XSA9IDB4MTAwMDAgKyAKKyAgICAgICAgICAgICgweDgwICogKCgoYUJ5dGUgJiAweDFGKSA8PCA4KSAKKyAgICAgICAgICAgICAgICAgfCAoYnl0ZUJ1ZmZlcltieXRlUG9zKytdICYgMHhGRikpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gcmVzZXJ2ZWQsIHNob3VsZG4ndCBoYXBwZW4KKyAgICAgICAgY2FzZSBTUkVTRVJWRUQ6CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICB9IC8vIGVuZCBzd2l0Y2gKKyAgICAgICAgfSAvLyBlbmQgd2hpbGUKKyAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBVTklDT0RFTU9ERToKKyAgICAgICAgLy8gdW5pY29kZSBtb2RlIGRlY29tcHJlc3Npb24gbG9vcAorICAgICAgICB1bmljb2RlTW9kZUxvb3A6CisgICAgICAgIHdoaWxlKGJ5dGVQb3MgPCBieXRlQnVmZmVyTGltaXQgJiYgdWNQb3MgPCBjaGFyQnVmZmVyTGltaXQpIHsKKyAgICAgICAgYUJ5dGUgPSBieXRlQnVmZmVyW2J5dGVQb3MrK10gJiAweEZGOworICAgICAgICBzd2l0Y2goYUJ5dGUpIHsKKyAgICAgICAgICAgIC8vIGhhbmRsZSBhbGwgZGVmaW5lIHRhZ3MKKyAgICAgICAgY2FzZSBVREVGSU5FMDogY2FzZSBVREVGSU5FMTogY2FzZSBVREVGSU5FMjogY2FzZSBVREVGSU5FMzoKKyAgICAgICAgY2FzZSBVREVGSU5FNDogY2FzZSBVREVGSU5FNTogY2FzZSBVREVGSU5FNjogY2FzZSBVREVGSU5FNzoKKyAgICAgICAgICAgIC8vIHZlcmlmeSB0aGVyZSBpcyBhIGJ5dGUgZm9sbG93aW5nIHRhZworICAgICAgICAgICAgLy8gaWYgbm90LCBzYXZlIHN0YXRlIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKGJ5dGVQb3MgPj0gYnl0ZUJ1ZmZlckxpbWl0ICkgeworICAgICAgICAgICAgLS1ieXRlUG9zOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShieXRlQnVmZmVyLCBieXRlUG9zLAorICAgICAgICAgICAgICAgICAgICAgZkJ1ZmZlciwgMCwgCisgICAgICAgICAgICAgICAgICAgICBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zKTsKKyAgICAgICAgICAgIGZCdWZmZXJMZW5ndGggPSBieXRlQnVmZmVyTGltaXQgLSBieXRlUG9zOworICAgICAgICAgICAgYnl0ZVBvcyArPSBmQnVmZmVyTGVuZ3RoOworICAgICAgICAgICAgYnJlYWsgbWFpbkxvb3A7IAorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZkN1cnJlbnRXaW5kb3cgPSBhQnl0ZSAtIFVERUZJTkUwOworICAgICAgICAgICAgZk9mZnNldHNbZkN1cnJlbnRXaW5kb3ddID0gCisgICAgICAgICAgICBzT2Zmc2V0VGFibGVbYnl0ZUJ1ZmZlcltieXRlUG9zKytdICYgMHhGRl07CisgICAgICAgICAgICBmTW9kZSA9IFNJTkdMRUJZVEVNT0RFOworICAgICAgICAgICAgYnJlYWsgdW5pY29kZU1vZGVMb29wOworICAgICAgICAgICAgLy9icmVhazsKKworICAgICAgICAgICAgLy8gaGFuZGxlIGRlZmluZSBleHRlbmRlZCB0YWcKKyAgICAgICAgY2FzZSBVREVGSU5FWDoKKyAgICAgICAgICAgIC8vIHZlcmlmeSB3ZSBoYXZlIHR3byBieXRlcyBmb2xsb3dpbmcgdGFnCisgICAgICAgICAgICAvLyBpZiBub3QsIHNhdmUgc3RhdGUgYW5kIGJyZWFrIG91dAorICAgICAgICAgICAgaWYoKGJ5dGVQb3MgKyAxKSA+PSBieXRlQnVmZmVyTGltaXQgKSB7CisgICAgICAgICAgICAtLWJ5dGVQb3M7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGJ5dGVCdWZmZXIsIGJ5dGVQb3MsCisgICAgICAgICAgICAgICAgICAgICBmQnVmZmVyLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgIGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3MpOworICAgICAgICAgICAgZkJ1ZmZlckxlbmd0aCA9IGJ5dGVCdWZmZXJMaW1pdCAtIGJ5dGVQb3M7CisgICAgICAgICAgICBieXRlUG9zICs9IGZCdWZmZXJMZW5ndGg7CisgICAgICAgICAgICBicmVhayBtYWluTG9vcDsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGFCeXRlID0gYnl0ZUJ1ZmZlcltieXRlUG9zKytdICYgMHhGRjsKKyAgICAgICAgICAgIGZDdXJyZW50V2luZG93ID0gKGFCeXRlICYgMHhFMCkgPj4gNTsKKyAgICAgICAgICAgIGZPZmZzZXRzW2ZDdXJyZW50V2luZG93XSA9IDB4MTAwMDAgKyAKKyAgICAgICAgICAgICgweDgwICogKCgoYUJ5dGUgJiAweDFGKSA8PCA4KSAKKyAgICAgICAgICAgICAgICAgfCAoYnl0ZUJ1ZmZlcltieXRlUG9zKytdICYgMHhGRikpKTsKKyAgICAgICAgICAgIGZNb2RlID0gU0lOR0xFQllURU1PREU7CisgICAgICAgICAgICBicmVhayB1bmljb2RlTW9kZUxvb3A7CisgICAgICAgICAgICAvL2JyZWFrOworCisgICAgICAgICAgICAvLyBoYW5kbGUgYWxsIGNoYW5nZSB0YWdzCisgICAgICAgIGNhc2UgVUNIQU5HRTA6IGNhc2UgVUNIQU5HRTE6IGNhc2UgVUNIQU5HRTI6IGNhc2UgVUNIQU5HRTM6CisgICAgICAgIGNhc2UgVUNIQU5HRTQ6IGNhc2UgVUNIQU5HRTU6IGNhc2UgVUNIQU5HRTY6IGNhc2UgVUNIQU5HRTc6CisgICAgICAgICAgICBmQ3VycmVudFdpbmRvdyA9IGFCeXRlIC0gVUNIQU5HRTA7CisgICAgICAgICAgICBmTW9kZSA9IFNJTkdMRUJZVEVNT0RFOworICAgICAgICAgICAgYnJlYWsgdW5pY29kZU1vZGVMb29wOworICAgICAgICAgICAgLy9icmVhazsKKworICAgICAgICAgICAgLy8gcXVvdGUgdW5pY29kZQorICAgICAgICBjYXNlIFVRVU9URVU6CisgICAgICAgICAgICAvLyB2ZXJpZnkgd2UgaGF2ZSB0d28gYnl0ZXMgZm9sbG93aW5nIHRhZworICAgICAgICAgICAgLy8gaWYgbm90LCBzYXZlIHN0YXRlIGFuZCBicmVhayBvdXQKKyAgICAgICAgICAgIGlmKGJ5dGVQb3MgPj0gYnl0ZUJ1ZmZlckxpbWl0ICAtIDEpIHsKKyAgICAgICAgICAgIC0tYnl0ZVBvczsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgYnl0ZVBvcywKKyAgICAgICAgICAgICAgICAgICAgIGZCdWZmZXIsIDAsIAorICAgICAgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvcyk7CisgICAgICAgICAgICBmQnVmZmVyTGVuZ3RoID0gYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvczsKKyAgICAgICAgICAgIGJ5dGVQb3MgKz0gZkJ1ZmZlckxlbmd0aDsKKyAgICAgICAgICAgIGJyZWFrIG1haW5Mb29wOyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGFCeXRlID0gYnl0ZUJ1ZmZlcltieXRlUG9zKytdOworICAgICAgICAgICAgY2hhckJ1ZmZlclt1Y1BvcysrXSA9IChjaGFyKSAKKyAgICAgICAgICAgIChhQnl0ZSA8PCA4IHwgKGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkYpKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyB2ZXJpZnkgdGhlcmUgaXMgYSBieXRlIGZvbGxvd2luZyB0YWcKKyAgICAgICAgICAgIC8vIGlmIG5vdCwgc2F2ZSBzdGF0ZSBhbmQgYnJlYWsgb3V0CisgICAgICAgICAgICBpZihieXRlUG9zID49IGJ5dGVCdWZmZXJMaW1pdCApIHsKKyAgICAgICAgICAgIC0tYnl0ZVBvczsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnl0ZUJ1ZmZlciwgYnl0ZVBvcywKKyAgICAgICAgICAgICAgICAgICAgIGZCdWZmZXIsIDAsIAorICAgICAgICAgICAgICAgICAgICAgYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvcyk7CisgICAgICAgICAgICBmQnVmZmVyTGVuZ3RoID0gYnl0ZUJ1ZmZlckxpbWl0IC0gYnl0ZVBvczsKKyAgICAgICAgICAgIGJ5dGVQb3MgKz0gZkJ1ZmZlckxlbmd0aDsKKyAgICAgICAgICAgIGJyZWFrIG1haW5Mb29wOyAKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2hhckJ1ZmZlclt1Y1BvcysrXSA9IChjaGFyKSAKKyAgICAgICAgICAgIChhQnl0ZSA8PCA4IHwgKGJ5dGVCdWZmZXJbYnl0ZVBvcysrXSAmIDB4RkYpKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIH0gLy8gZW5kIHN3aXRjaAorICAgICAgICB9IC8vIGVuZCB3aGlsZQorICAgICAgICBicmVhazsKKyAgICAgICAgCisgICAgICAgIH0gLy8gZW5kIHN3aXRjaCggZk1vZGUgKQorICAgIH0gLy8gZW5kIHdoaWxlCisKKyAgICAgICAgLy8gZmlsbCBpbiBvdXRwdXQgcGFyYW1ldGVyCisgICAgaWYoYnl0ZXNSZWFkICE9IG51bGwpCisgICAgICAgIGJ5dGVzUmVhZCBbMF0gPSAoYnl0ZVBvcyAtIGJ5dGVCdWZmZXJTdGFydCk7CisKKyAgICAgICAgLy8gcmV0dXJuICMgb2YgY2hhcnMgd3JpdHRlbgorICAgIHJldHVybiAodWNQb3MgLSBjaGFyQnVmZmVyU3RhcnQpOworICAgIH0KKworICAgIC8qKiAKKyAgICAgKiBSZXNldCB0aGUgZGVjb21wcmVzc29yIHRvIGl0cyBpbml0aWFsIHN0YXRlLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldCgpCisgICAgeworICAgICAgICAvLyByZXNldCBkeW5hbWljIHdpbmRvd3MKKyAgICAgICAgZk9mZnNldHNbMF0gPSAweDAwODA7ICAgIC8vIExhdGluLTEKKyAgICAgICAgZk9mZnNldHNbMV0gPSAweDAwQzA7ICAgIC8vIExhdGluLTEgU3VwcGxlbWVudCArIExhdGluIEV4dGVuZGVkLUEKKyAgICAgICAgZk9mZnNldHNbMl0gPSAweDA0MDA7ICAgIC8vIEN5cmlsbGljCisgICAgICAgIGZPZmZzZXRzWzNdID0gMHgwNjAwOyAgICAvLyBBcmFiaWMKKyAgICAgICAgZk9mZnNldHNbNF0gPSAweDA5MDA7ICAgIC8vIERldmFuYWdhcmkKKyAgICAgICAgZk9mZnNldHNbNV0gPSAweDMwNDA7ICAgIC8vIEhpcmFnYW5hCisgICAgICAgIGZPZmZzZXRzWzZdID0gMHgzMEEwOyAgICAvLyBLYXRha2FuYQorICAgICAgICBmT2Zmc2V0c1s3XSA9IDB4RkYwMDsgICAgLy8gRnVsbHdpZHRoIEFTQ0lJCisKKworICAgICAgICBmQ3VycmVudFdpbmRvdyAgPSAwOyAgICAgICAgICAgICAgICAvLyBNYWtlIGN1cnJlbnQgd2luZG93IExhdGluLTEKKyAgICAgICAgZk1vZGUgICAgICAgICAgID0gU0lOR0xFQllURU1PREU7ICAgLy8gQWx3YXlzIHN0YXJ0IGluIHNpbmdsZS1ieXRlIG1vZGUKKyAgICBmQnVmZmVyTGVuZ3RoICAgPSAwOyAgICAgICAgICAgICAgICAvLyBFbXB0eSBidWZmZXIKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUZpbHRlci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZUZpbHRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM5MzQzMjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlRmlsdGVyLmphdmEKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworLyoqCisgKiA8Y29kZT5Vbmljb2RlRmlsdGVyPC9jb2RlPiBkZWZpbmVzIGEgcHJvdG9jb2wgZm9yIHNlbGVjdGluZyBhCisgKiBzdWJzZXQgb2YgdGhlIGZ1bGwgcmFuZ2UgKFUrMDAwMCB0byBVK0ZGRkYpIG9mIFVuaWNvZGUgY2hhcmFjdGVycy4KKyAqIEN1cnJlbnRseSwgZmlsdGVycyBhcmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGNsYXNzZXMgbGlrZSB7QGxpbmsKKyAqIFRyYW5zbGl0ZXJhdG9yfSB0byBvbmx5IHByb2Nlc3Mgc2VsZWN0ZWQgY2hhcmFjdGVycyB0aHJvdWdoIGEKKyAqIHRyYW5zZm9ybWF0aW9uLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBVbmljb2RlRmlsdGVyIGltcGxlbWVudHMgVW5pY29kZU1hdGNoZXIgeworCisgICAgLyoqCisgICAgICogUmV0dXJucyA8dHQ+dHJ1ZTwvdHQ+IGZvciBjaGFyYWN0ZXJzIHRoYXQgYXJlIGluIHRoZSBzZWxlY3RlZAorICAgICAqIHN1YnNldC4gIEluIG90aGVyIHdvcmRzLCBpZiBhIGNoYXJhY3RlciBpcyA8Yj50byBiZQorICAgICAqIGZpbHRlcmVkPC9iPiwgdGhlbiA8dHQ+Y29udGFpbnMoKTwvdHQ+IHJldHVybnMKKyAgICAgKiA8Yj48dHQ+ZmFsc2U8L3R0PjwvYj4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGJvb2xlYW4gY29udGFpbnMoaW50IGMpOworCisgICAgLyoqCisgICAgICogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBVbmljb2RlTWF0Y2hlcjo6bWF0Y2hlcygpIGZvciBVbmljb2RlCisgICAgICogZmlsdGVycy4gIE1hdGNoZXMgYSBzaW5nbGUgMTYtYml0IGNvZGUgdW5pdCBhdCBvZmZzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBtYXRjaGVzKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgIGludFtdIG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGluY3JlbWVudGFsKSB7CisgICAgICAgIGludCBjOworICAgICAgICBpZiAob2Zmc2V0WzBdIDwgbGltaXQgJiYKKyAgICAgICAgICAgIGNvbnRhaW5zKGMgPSB0ZXh0LmNoYXIzMkF0KG9mZnNldFswXSkpKSB7CisgICAgICAgICAgICBvZmZzZXRbMF0gKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgcmV0dXJuIFVfTUFUQ0g7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG9mZnNldFswXSA+IGxpbWl0ICYmCisgICAgICAgICAgICBjb250YWlucyhjID0gdGV4dC5jaGFyMzJBdChvZmZzZXRbMF0pKSkgeworICAgICAgICAgICAgLy8gQmFja3VwIG9mZnNldCBieSAxLCB1bmxlc3MgdGhlIHByZWNlZGluZyBjaGFyYWN0ZXIgaXMgYQorICAgICAgICAgICAgLy8gc3Vycm9nYXRlIHBhaXIgLS0gdGhlbiBiYWNrdXAgYnkgMiAoa2VlcCBvZmZzZXQgcG9pbnRpbmcgYXQKKyAgICAgICAgICAgIC8vIHRoZSBsZWFkIHN1cnJvZ2F0ZSkuCisgICAgICAgICAgICAtLW9mZnNldFswXTsKKyAgICAgICAgICAgIGlmIChvZmZzZXRbMF0gPj0gMCkgeworICAgICAgICAgICAgICAgIG9mZnNldFswXSAtPSBVVEYxNi5nZXRDaGFyQ291bnQodGV4dC5jaGFyMzJBdChvZmZzZXRbMF0pKSAtIDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gVV9NQVRDSDsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5jcmVtZW50YWwgJiYgb2Zmc2V0WzBdID09IGxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gVV9QQVJUSUFMX01BVENIOworICAgICAgICB9CisgICAgICAgIHJldHVybiBVX01JU01BVENIOworICAgIH0KKworICAgIC8qKgorICAgICAqIChUaGlzIHNob3VsZCBub3QgYmUgaGVyZTsgaXQgaXMgZGVjbGFyZWQgdG8gbWFrZSBDaGVja1RhZ3MKKyAgICAgKiBoYXBweS4gIEphdmEgaW5zZXJ0cyBhIHN5bnRoZXRpYyBjb25zdHJ1Y3RvciBhbmQgQ2hlY2tUYWdzCisgICAgICogY2FuJ3QgdGVsbCB0aGF0IGl0J3Mgc3ludGhldGljLikKKyAgICAgKgorICAgICAqIFRPRE8gUmVtb3ZlIHRoaXMgd2hlbiB0aGUgSkRLIHByb3BlcnR5IGltcGxlbWVudHMgTWVtYmVyRG9jLmlzU3ludGhldGljCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIFVuaWNvZGVGaWx0ZXIoKSB7fQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZU1hdGNoZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVNYXRjaGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTgyMzU5YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVNYXRjaGVyLmphdmEKQEAgLTAsMCArMSwxMzggQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogPGNvZGU+VW5pY29kZU1hdGNoZXI8L2NvZGU+IGRlZmluZXMgYSBwcm90b2NvbCBmb3Igb2JqZWN0cyB0aGF0IGNhbgorICogbWF0Y2ggYSByYW5nZSBvZiBjaGFyYWN0ZXJzIGluIGEgUmVwbGFjZWFibGUgc3RyaW5nLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgVW5pY29kZU1hdGNoZXIgeworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmV0dXJuZWQgYnkgPGNvZGU+bWF0Y2hlcygpPC9jb2RlPiBpbmRpY2F0aW5nIGEKKyAgICAgKiBtaXNtYXRjaCBiZXR3ZWVuIHRoZSB0ZXh0IGFuZCB0aGlzIG1hdGNoZXIuICBUaGUgdGV4dCBjb250YWlucworICAgICAqIGEgY2hhcmFjdGVyIHdoaWNoIGRvZXMgbm90IG1hdGNoLCBvciB0aGUgdGV4dCBkb2VzIG5vdCBjb250YWluCisgICAgICogYWxsIGRlc2lyZWQgY2hhcmFjdGVycyBmb3IgYSBub24taW5jcmVtZW50YWwgbWF0Y2guCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVV9NSVNNQVRDSCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCByZXR1cm5lZCBieSA8Y29kZT5tYXRjaGVzKCk8L2NvZGU+IGluZGljYXRpbmcgYQorICAgICAqIHBhcnRpYWwgbWF0Y2ggYmV0d2VlbiB0aGUgdGV4dCBhbmQgdGhpcyBtYXRjaGVyLiAgVGhpcyB2YWx1ZSBpcworICAgICAqIG9ubHkgcmV0dXJuZWQgZm9yIGluY3JlbWVudGFsIG1hdGNoIG9wZXJhdGlvbnMuICBBbGwgY2hhcmFjdGVycworICAgICAqIG9mIHRoZSB0ZXh0IG1hdGNoLCBidXQgbW9yZSBjaGFyYWN0ZXJzIGFyZSByZXF1aXJlZCBmb3IgYQorICAgICAqIGNvbXBsZXRlIG1hdGNoLiAgQWx0ZXJuYXRpdmVseSwgZm9yIHZhcmlhYmxlLWxlbmd0aCBtYXRjaGVycywKKyAgICAgKiBhbGwgY2hhcmFjdGVycyBvZiB0aGUgdGV4dCBtYXRjaCwgYW5kIGlmIG1vcmUgY2hhcmFjdGVycyB3ZXJlCisgICAgICogc3VwcGxpZWQgYXQgbGltaXQsIHRoZXkgbWlnaHQgYWxzbyBtYXRjaC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBVX1BBUlRJQUxfTUFUQ0ggPSAxOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgcmV0dXJuZWQgYnkgPGNvZGU+bWF0Y2hlcygpPC9jb2RlPiBpbmRpY2F0aW5nIGEKKyAgICAgKiBjb21wbGV0ZSBtYXRjaCBiZXR3ZWVuIHRoZSB0ZXh0IGFuZCB0aGlzIG1hdGNoZXIuICBGb3IgYW4KKyAgICAgKiBpbmNyZW1lbnRhbCB2YXJpYWJsZS1sZW5ndGggbWF0Y2gsIHRoaXMgdmFsdWUgaXMgcmV0dXJuZWQgaWYKKyAgICAgKiB0aGUgZ2l2ZW4gdGV4dCBtYXRjaGVzLCBhbmQgaXQgaXMga25vd24gdGhhdCBhZGRpdGlvbmFsCisgICAgICogY2hhcmFjdGVycyB3b3VsZCBub3QgYWx0ZXIgdGhlIGV4dGVudCBvZiB0aGUgbWF0Y2guCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVV9NQVRDSCA9IDI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2hhcmFjdGVyIGF0IGluZGV4IGksIHdoZXJlIGkgPCBjb250ZXh0U3RhcnQgfHwgaSA+PSBjb250ZXh0TGltaXQsCisgICAgICogaXMgRVRIRVIuICBUaGlzIGFsbG93cyBleHBsaWNpdCBtYXRjaGluZyBieSBydWxlcyBhbmQgVW5pY29kZVNldHMKKyAgICAgKiBvZiB0ZXh0IG91dHNpZGUgdGhlIGNvbnRleHQuICBJbiB0cmFkaXRpb25hbCB0ZXJtcywgdGhpcyBhbGxvd3MgYW5jaG9yaW5nCisgICAgICogYXQgdGhlIHN0YXJ0IGFuZC9vciBlbmQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGNoYXIgRVRIRVIgPSAnXHVGRkZGJzsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIFVNYXRjaERlZ3JlZSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSBkZWdyZWUgb2YgbWF0Y2ggZm9yCisgICAgICogdGhlIGdpdmVuIHRleHQgYXQgdGhlIGdpdmVuIG9mZnNldC4gIFplcm8sIG9uZSwgb3IgbW9yZQorICAgICAqIGNoYXJhY3RlcnMgbWF5IGJlIG1hdGNoZWQuCisgICAgICoKKyAgICAgKiBNYXRjaGluZyBpbiB0aGUgZm9yd2FyZCBkaXJlY3Rpb24gaXMgaW5kaWNhdGVkIGJ5IGxpbWl0ID4KKyAgICAgKiBvZmZzZXQuICBDaGFyYWN0ZXJzIGZyb20gb2Zmc2V0IGZvcndhcmRzIHRvIGxpbWl0LTEgd2lsbCBiZQorICAgICAqIGNvbnNpZGVyZWQgZm9yIG1hdGNoaW5nLgorICAgICAqCisgICAgICogTWF0Y2hpbmcgaW4gdGhlIHJldmVyc2UgZGlyZWN0aW9uIGlzIGluZGljYXRlZCBieSBsaW1pdCA8CisgICAgICogb2Zmc2V0LiAgQ2hhcmFjdGVycyBmcm9tIG9mZnNldCBiYWNrd2FyZHMgdG8gbGltaXQrMSB3aWxsIGJlCisgICAgICogY29uc2lkZXJlZCBmb3IgbWF0Y2hpbmcuCisgICAgICoKKyAgICAgKiBJZiBsaW1pdCA9PSBvZmZzZXQgdGhlbiB0aGUgb25seSBtYXRjaCBwb3NzaWJsZSBpcyBhIHplcm8KKyAgICAgKiBjaGFyYWN0ZXIgbWF0Y2ggKHdoaWNoIHN1YmNsYXNzZXMgbWF5IGltcGxlbWVudCBpZiBkZXNpcmVkKS4KKyAgICAgKgorICAgICAqIElmIFVfTUFUQ0ggaXMgcmV0dXJuZWQsIHRoZW4gYXMgYSBzaWRlIGVmZmVjdCwgYWR2YW5jZSB0aGUKKyAgICAgKiBvZmZzZXQgcGFyYW1ldGVyIHRvIHRoZSBsaW1pdCBvZiB0aGUgbWF0Y2hlZCBzdWJzdHJpbmcuICBJbiB0aGUKKyAgICAgKiBmb3J3YXJkIGRpcmVjdGlvbiwgdGhpcyB3aWxsIGJlIHRoZSBpbmRleCBvZiB0aGUgbGFzdCBtYXRjaGVkCisgICAgICogY2hhcmFjdGVyIHBsdXMgb25lLiAgSW4gdGhlIHJldmVyc2UgZGlyZWN0aW9uLCB0aGlzIHdpbGwgYmUgdGhlCisgICAgICogaW5kZXggb2YgdGhlIGxhc3QgbWF0Y2hlZCBjaGFyYWN0ZXIgbWludXMgb25lLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gYmUgbWF0Y2hlZAorICAgICAqIEBwYXJhbSBvZmZzZXQgb24gaW5wdXQsIHRoZSBpbmRleCBpbnRvIHRleHQgYXQgd2hpY2ggdG8gYmVnaW4KKyAgICAgKiBtYXRjaGluZy4gIE9uIG91dHB1dCwgdGhlIGxpbWl0IG9mIHRoZSBtYXRjaGVkIHRleHQuICBUaGUKKyAgICAgKiBudW1iZXIgb2YgbWF0Y2hlZCBjaGFyYWN0ZXJzIGlzIHRoZSBvdXRwdXQgdmFsdWUgb2Ygb2Zmc2V0CisgICAgICogbWludXMgdGhlIGlucHV0IHZhbHVlLiAgT2Zmc2V0IHNob3VsZCBhbHdheXMgcG9pbnQgdG8gdGhlCisgICAgICogSElHSCBTVVJST0dBVEUgKGxlYWRpbmcgY29kZSB1bml0KSBvZiBhIHBhaXIgb2Ygc3Vycm9nYXRlcywKKyAgICAgKiBib3RoIG9uIGVudHJ5IGFuZCB1cG9uIHJldHVybi4KKyAgICAgKiBAcGFyYW0gbGltaXQgdGhlIGxpbWl0IGluZGV4IG9mIHRleHQgdG8gYmUgbWF0Y2hlZC4gIEdyZWF0ZXIKKyAgICAgKiB0aGFuIG9mZnNldCBmb3IgYSBmb3J3YXJkIGRpcmVjdGlvbiBtYXRjaCwgbGVzcyB0aGFuIG9mZnNldCBmb3IKKyAgICAgKiBhIGJhY2t3YXJkIGRpcmVjdGlvbiBtYXRjaC4gIFRoZSBsYXN0IGNoYXJhY3RlciB0byBiZQorICAgICAqIGNvbnNpZGVyZWQgZm9yIG1hdGNoaW5nIHdpbGwgYmUgdGV4dC5jaGFyQXQobGltaXQtMSkgaW4gdGhlCisgICAgICogZm9yd2FyZCBkaXJlY3Rpb24gb3IgdGV4dC5jaGFyQXQobGltaXQrMSkgaW4gdGhlIGJhY2t3YXJkCisgICAgICogZGlyZWN0aW9uLgorICAgICAqIEBwYXJhbSBpbmNyZW1lbnRhbCBpZiBUUlVFLCB0aGVuIGFzc3VtZSBmdXJ0aGVyIGNoYXJhY3RlcnMgbWF5CisgICAgICogYmUgaW5zZXJ0ZWQgYXQgbGltaXQgYW5kIGNoZWNrIGZvciBwYXJ0aWFsIG1hdGNoaW5nLiAgT3RoZXJ3aXNlCisgICAgICogYXNzdW1lIHRoZSB0ZXh0IGFzIGdpdmVuIGlzIGNvbXBsZXRlLgorICAgICAqIEByZXR1cm4gYSBtYXRjaCBkZWdyZWUgdmFsdWUgaW5kaWNhdGluZyBhIGZ1bGwgbWF0Y2gsIGEgcGFydGlhbAorICAgICAqIG1hdGNoLCBvciBhIG1pc21hdGNoLiAgSWYgaW5jcmVtZW50YWwgaXMgRkFMU0UgdGhlbgorICAgICAqIFVfUEFSVElBTF9NQVRDSCBzaG91bGQgbmV2ZXIgYmUgcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBtYXRjaGVzKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGluY3JlbWVudGFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBtYXRjaGVyLiAgSWYgdGhlIHJlc3VsdCBvZgorICAgICAqIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBpcyBwYXNzZWQgdG8gdGhlIGFwcHJvcHJpYXRlIHBhcnNlciwgaXQKKyAgICAgKiB3aWxsIHByb2R1Y2UgYW5vdGhlciBtYXRjaGVyIHRoYXQgaXMgZXF1YWwgdG8gdGhpcyBvbmUuCisgICAgICogQHBhcmFtIGVzY2FwZVVucHJpbnRhYmxlIGlmIFRSVUUgdGhlbiBjb252ZXJ0IHVucHJpbnRhYmxlCisgICAgICogY2hhcmFjdGVyIHRvIHRoZWlyIGhleCBlc2NhcGUgcmVwcmVzZW50YXRpb25zLCBcXHV4eHh4IG9yCisgICAgICogXFxVeHh4eHh4eHguICBVbnByaW50YWJsZSBjaGFyYWN0ZXJzIGFyZSB0aG9zZSBvdGhlciB0aGFuCisgICAgICogVSswMDBBLCBVKzAwMjAuLlUrMDA3RS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nIHRvUGF0dGVybihib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgVFJVRSBpZiB0aGlzIG1hdGNoZXIgd2lsbCBtYXRjaCBhIGNoYXJhY3RlciBjLCB3aGVyZSBjCisgICAgICogJiAweEZGID09IHYsIGF0IG9mZnNldCwgaW4gdGhlIGZvcndhcmQgZGlyZWN0aW9uICh3aXRoIGxpbWl0ID4KKyAgICAgKiBvZmZzZXQpLiAgVGhpcyBpcyB1c2VkIGJ5IDx0dD5SdWxlQmFzZWRUcmFuc2xpdGVyYXRvcjwvdHQ+IGZvcgorICAgICAqIGluZGV4aW5nLgorICAgICAqCisgICAgICogPHA+Tm90ZTogIFRoaXMgQVBJIHVzZXMgYW4gaW50IGV2ZW4gdGhvdWdoIHRoZSB2YWx1ZSB3aWxsIGJlCisgICAgICogcmVzdHJpY3RlZCB0byA4IGJpdHMgaW4gb3JkZXIgdG8gYXZvaWQgY29tcGxpY2F0aW9ucyB3aXRoCisgICAgICogc2lnbmVkbmVzcyAoYnl0ZXMgY29udmVydCB0byBpbnRzIGluIHRoZSByYW5nZSAtMTI4Li4xMjcpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuIG1hdGNoZXNJbmRleFZhbHVlKGludCB2KTsKKworICAgIC8qKgorICAgICAqIFVuaW9uIHRoZSBzZXQgb2YgYWxsIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgbWF0Y2hlZCBieSB0aGlzIG9iamVjdAorICAgICAqIGludG8gdGhlIGdpdmVuIHNldC4KKyAgICAgKiBAcGFyYW0gdG9VbmlvblRvIHRoZSBzZXQgaW50byB3aGljaCB0byB1bmlvbiB0aGUgc291cmNlIGNoYXJhY3RlcnMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRNYXRjaFNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKTsKK30KKworLy9lb2YKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MGZlNDk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZU5hbWVUcmFuc2xpdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqLworcGFja2FnZSBjb20uaWJtLmljdS50ZXh0OworaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuKjsKKworLyoqCisgKiBBIHRyYW5zbGl0ZXJhdG9yIHRoYXQgcGVyZm9ybXMgY2hhcmFjdGVyIHRvIG5hbWUgbWFwcGluZy4KKyAqIEl0IGdlbmVyYXRlcyB0aGUgUGVybCBzeW50YXggXE57bmFtZX0uCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKi8KK2NsYXNzIFVuaWNvZGVOYW1lVHJhbnNsaXRlcmF0b3IgZXh0ZW5kcyBUcmFuc2xpdGVyYXRvciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIF9JRCA9ICJBbnktTmFtZSI7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIE9QRU5fREVMSU0gPSAiXFxOeyI7CisgICAgc3RhdGljIGZpbmFsIGNoYXIgQ0xPU0VfREVMSU0gPSAnfSc7CisgICAgc3RhdGljIGZpbmFsIGludCBPUEVOX0RFTElNX0xFTiA9IDM7CisKKyAgICAvKioKKyAgICAgKiBTeXN0ZW0gcmVnaXN0cmF0aW9uIGhvb2suCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXIoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShfSUQsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVW5pY29kZU5hbWVUcmFuc2xpdGVyYXRvcihudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHRyYW5zbGl0ZXJhdG9yLgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlTmFtZVRyYW5zbGl0ZXJhdG9yKFVuaWNvZGVGaWx0ZXIgZmlsdGVyKSB7CisgICAgICAgIHN1cGVyKF9JRCwgZmlsdGVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRzIHtAbGluayBUcmFuc2xpdGVyYXRvciNoYW5kbGVUcmFuc2xpdGVyYXRlfS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVUcmFuc2xpdGVyYXRlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBvZmZzZXRzLCBib29sZWFuIGlzSW5jcmVtZW50YWwpIHsKKyAgICAgICAgaW50IGN1cnNvciA9IG9mZnNldHMuc3RhcnQ7CisgICAgICAgIGludCBsaW1pdCA9IG9mZnNldHMubGltaXQ7CisgICAgICAgIAorICAgICAgICBTdHJpbmdCdWZmZXIgc3RyID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBzdHIuYXBwZW5kKE9QRU5fREVMSU0pOworICAgICAgICBpbnQgbGVuOworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChjdXJzb3IgPCBsaW1pdCkgeworICAgICAgICAgICAgaW50IGMgPSB0ZXh0LmNoYXIzMkF0KGN1cnNvcik7CisgICAgICAgICAgICBpZiAoKG5hbWU9VUNoYXJhY3Rlci5nZXRFeHRlbmRlZE5hbWUoYykpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzdHIuc2V0TGVuZ3RoKE9QRU5fREVMSU1fTEVOKTsKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKG5hbWUpLmFwcGVuZChDTE9TRV9ERUxJTSk7CisKKyAgICAgICAgICAgICAgICBpbnQgY2xlbiA9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICB0ZXh0LnJlcGxhY2UoY3Vyc29yLCBjdXJzb3IrY2xlbiwgc3RyLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGxlbiA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBjdXJzb3IgKz0gbGVuOyAvLyBhZHZhbmNlIGN1cnNvciBieSAxIGFuZCBhZGp1c3QgZm9yIG5ldyB0ZXh0CisgICAgICAgICAgICAgICAgbGltaXQgKz0gbGVuLWNsZW47IC8vIGNoYW5nZSBpbiBsZW5ndGgKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgKytjdXJzb3I7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBvZmZzZXRzLmNvbnRleHRMaW1pdCArPSBsaW1pdCAtIG9mZnNldHMubGltaXQ7CisgICAgICAgIG9mZnNldHMubGltaXQgPSBsaW1pdDsKKyAgICAgICAgb2Zmc2V0cy5zdGFydCA9IGN1cnNvcjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlUmVwbGFjZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVSZXBsYWNlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ5YzRjMzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlUmVwbGFjZXIuamF2YQpAQCAtMCwwICsxLDY0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoYykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbgorKiAgIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMDEvMTQvMjAwMiAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKKy8qKgorICogPGNvZGU+VW5pY29kZVJlcGxhY2VyPC9jb2RlPiBkZWZpbmVzIGEgcHJvdG9jb2wgZm9yIG9iamVjdHMgdGhhdAorICogcmVwbGFjZSBhIHJhbmdlIG9mIGNoYXJhY3RlcnMgaW4gYSBSZXBsYWNlYWJsZSBzdHJpbmcgd2l0aCBvdXRwdXQKKyAqIHRleHQuICBUaGUgcmVwbGFjZW1lbnQgaXMgZG9uZSB2aWEgdGhlIFJlcGxhY2VhYmxlIEFQSSBzbyBhcyB0bworICogcHJlc2VydmUgb3V0LW9mLWJhbmQgZGF0YS4KKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqLworaW50ZXJmYWNlIFVuaWNvZGVSZXBsYWNlciB7CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIGNoYXJhY3RlcnMgaW4gJ3RleHQnIGZyb20gJ3N0YXJ0JyB0byAnbGltaXQnIHdpdGggdGhlCisgICAgICogb3V0cHV0IHRleHQgb2YgdGhpcyBvYmplY3QuICBVcGRhdGUgdGhlICdjdXJzb3InIHBhcmFtZXRlciB0bworICAgICAqIGdpdmUgdGhlIGN1cnNvciBwb3NpdGlvbiBhbmQgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlCisgICAgICogcmVwbGFjZW1lbnQgdGV4dC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGJlIG1hdGNoZWQKKyAgICAgKiBAcGFyYW0gc3RhcnQgaW5jbHVzaXZlIHN0YXJ0IGluZGV4IG9mIHRleHQgdG8gYmUgcmVwbGFjZWQKKyAgICAgKiBAcGFyYW0gbGltaXQgZXhjbHVzaXZlIGVuZCBpbmRleCBvZiB0ZXh0IHRvIGJlIHJlcGxhY2VkOworICAgICAqIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHN0YXJ0CisgICAgICogQHBhcmFtIGN1cnNvciBvdXRwdXQgcGFyYW1ldGVyIGZvciB0aGUgY3Vyc29yIHBvc2l0aW9uLgorICAgICAqIE5vdCBhbGwgcmVwbGFjZXIgb2JqZWN0cyB3aWxsIHVwZGF0ZSB0aGlzLCBidXQgaW4gYSBjb21wbGV0ZQorICAgICAqIHRyZWUgb2YgcmVwbGFjZXIgb2JqZWN0cywgcmVwcmVzZW50aW5nIHRoZSBlbnRpcmUgb3V0cHV0IHNpZGUKKyAgICAgKiBvZiBhIHRyYW5zbGl0ZXJhdGlvbiBydWxlLCBhdCBsZWFzdCBvbmUgbXVzdCB1cGRhdGUgaXQuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIDE2LWJpdCBjb2RlIHVuaXRzIGluIHRoZSB0ZXh0IHJlcGxhY2luZworICAgICAqIHRoZSBjaGFyYWN0ZXJzIGF0IG9mZnNldHMgc3RhcnQuLihsaW1pdC0xKSBpbiB0ZXh0CisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCByZXBsYWNlKFJlcGxhY2VhYmxlIHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBjdXJzb3IpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHJlcGxhY2VyLiAgSWYgdGhlCisgICAgICogcmVzdWx0IG9mIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBpcyBwYXNzZWQgdG8gdGhlIGFwcHJvcHJpYXRlCisgICAgICogcGFyc2VyLCB0eXBpY2FsbHkgVHJhbnNsaXRlcmF0b3JQYXJzZXIsIGl0IHdpbGwgcHJvZHVjZSBhbm90aGVyCisgICAgICogcmVwbGFjZXIgdGhhdCBpcyBlcXVhbCB0byB0aGlzIG9uZS4KKyAgICAgKiBAcGFyYW0gZXNjYXBlVW5wcmludGFibGUgaWYgVFJVRSB0aGVuIGNvbnZlcnQgdW5wcmludGFibGUKKyAgICAgKiBjaGFyYWN0ZXIgdG8gdGhlaXIgaGV4IGVzY2FwZSByZXByZXNlbnRhdGlvbnMsIFxcdXh4eHggb3IKKyAgICAgKiBcXFV4eHh4eHh4eC4gIFVucHJpbnRhYmxlIGNoYXJhY3RlcnMgYXJlIGRlZmluZWQgYnkKKyAgICAgKiBVdGlsaXR5LmlzVW5wcmludGFibGUoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgU3RyaW5nIHRvUmVwbGFjZXJQYXR0ZXJuKGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpOworCisgICAgLyoqCisgICAgICogVW5pb24gdGhlIHNldCBvZiBhbGwgY2hhcmFjdGVycyB0aGF0IG1heSBvdXRwdXQgYnkgdGhpcyBvYmplY3QKKyAgICAgKiBpbnRvIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHRvVW5pb25UbyB0aGUgc2V0IGludG8gd2hpY2ggdG8gdW5pb24gdGhlIG91dHB1dCBjaGFyYWN0ZXJzCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRkUmVwbGFjZW1lbnRTZXRUbyhVbmljb2RlU2V0IHRvVW5pb25Ubyk7Cit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0LmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2U5MGFjMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L1VuaWNvZGVTZXQuamF2YQpAQCAtMCwwICsxLDM0NzMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnRleHQuKjsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLio7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Ob3JtYWxpemVySW1wbDsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQ2hhcmFjdGVyUHJvcGVydHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VQmlEaVByb3BzOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVUNhc2VQcm9wczsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVQcm9wZXJ0eUFsaWFzZXM7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5Tb3J0ZWRTZXRSZWxhdGlvbjsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlJ1bGVDaGFyYWN0ZXJJdGVyYXRvcjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlZlcnNpb25JbmZvOworCitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yOworCitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5UcmVlU2V0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKKworLyoqCisgKiBBIG11dGFibGUgc2V0IG9mIFVuaWNvZGUgY2hhcmFjdGVycyBhbmQgbXVsdGljaGFyYWN0ZXIgc3RyaW5ncy4gIE9iamVjdHMgb2YgdGhpcyBjbGFzcworICogcmVwcmVzZW50IDxlbT5jaGFyYWN0ZXIgY2xhc3NlczwvZW0+IHVzZWQgaW4gcmVndWxhciBleHByZXNzaW9ucy4KKyAqIEEgY2hhcmFjdGVyIHNwZWNpZmllcyBhIHN1YnNldCBvZiBVbmljb2RlIGNvZGUgcG9pbnRzLiAgTGVnYWwKKyAqIGNvZGUgcG9pbnRzIGFyZSBVKzAwMDAgdG8gVSsxMEZGRkYsIGluY2x1c2l2ZS4KKyAqCisgKiA8cD5UaGUgVW5pY29kZVNldCBjbGFzcyBpcyBub3QgZGVzaWduZWQgdG8gYmUgc3ViY2xhc3NlZC4KKyAqCisgKiA8cD48Y29kZT5Vbmljb2RlU2V0PC9jb2RlPiBzdXBwb3J0cyB0d28gQVBJcy4gVGhlIGZpcnN0IGlzIHRoZQorICogPGVtPm9wZXJhbmQ8L2VtPiBBUEkgdGhhdCBhbGxvd3MgdGhlIGNhbGxlciB0byBtb2RpZnkgdGhlIHZhbHVlIG9mCisgKiBhIDxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+IG9iamVjdC4gSXQgY29uZm9ybXMgdG8gSmF2YSAyJ3MKKyAqIDxjb2RlPmphdmEudXRpbC5TZXQ8L2NvZGU+IGludGVyZmFjZSwgYWx0aG91Z2gKKyAqIDxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+IGRvZXMgbm90IGFjdHVhbGx5IGltcGxlbWVudCB0aGF0CisgKiBpbnRlcmZhY2UuIEFsbCBtZXRob2RzIG9mIDxjb2RlPlNldDwvY29kZT4gYXJlIHN1cHBvcnRlZCwgd2l0aCB0aGUKKyAqIG1vZGlmaWNhdGlvbiB0aGF0IHRoZXkgdGFrZSBhIGNoYXJhY3RlciByYW5nZSBvciBzaW5nbGUgY2hhcmFjdGVyCisgKiBpbnN0ZWFkIG9mIGFuIDxjb2RlPk9iamVjdDwvY29kZT4sIGFuZCB0aGV5IHRha2UgYQorICogPGNvZGU+VW5pY29kZVNldDwvY29kZT4gaW5zdGVhZCBvZiBhIDxjb2RlPkNvbGxlY3Rpb248L2NvZGU+LiAgVGhlCisgKiBvcGVyYW5kIEFQSSBtYXkgYmUgdGhvdWdodCBvZiBpbiB0ZXJtcyBvZiBib29sZWFuIGxvZ2ljOiBhIGJvb2xlYW4KKyAqIE9SIGlzIGltcGxlbWVudGVkIGJ5IDxjb2RlPmFkZDwvY29kZT4sIGEgYm9vbGVhbiBBTkQgaXMgaW1wbGVtZW50ZWQKKyAqIGJ5IDxjb2RlPnJldGFpbjwvY29kZT4sIGEgYm9vbGVhbiBYT1IgaXMgaW1wbGVtZW50ZWQgYnkKKyAqIDxjb2RlPmNvbXBsZW1lbnQ8L2NvZGU+IHRha2luZyBhbiBhcmd1bWVudCwgYW5kIGEgYm9vbGVhbiBOT1QgaXMKKyAqIGltcGxlbWVudGVkIGJ5IDxjb2RlPmNvbXBsZW1lbnQ8L2NvZGU+IHdpdGggbm8gYXJndW1lbnQuICBJbiB0ZXJtcworICogb2YgdHJhZGl0aW9uYWwgc2V0IHRoZW9yeSBmdW5jdGlvbiBuYW1lcywgPGNvZGU+YWRkPC9jb2RlPiBpcyBhCisgKiB1bmlvbiwgPGNvZGU+cmV0YWluPC9jb2RlPiBpcyBhbiBpbnRlcnNlY3Rpb24sIDxjb2RlPnJlbW92ZTwvY29kZT4KKyAqIGlzIGFuIGFzeW1tZXRyaWMgZGlmZmVyZW5jZSwgYW5kIDxjb2RlPmNvbXBsZW1lbnQ8L2NvZGU+IHdpdGggbm8KKyAqIGFyZ3VtZW50IGlzIGEgc2V0IGNvbXBsZW1lbnQgd2l0aCByZXNwZWN0IHRvIHRoZSBzdXBlcnNldCByYW5nZQorICogPGNvZGU+TUlOX1ZBTFVFLU1BWF9WQUxVRTwvY29kZT4KKyAqCisgKiA8cD5UaGUgc2Vjb25kIEFQSSBpcyB0aGUKKyAqIDxjb2RlPmFwcGx5UGF0dGVybigpPC9jb2RlPi88Y29kZT50b1BhdHRlcm4oKTwvY29kZT4gQVBJIGZyb20gdGhlCisgKiA8Y29kZT5qYXZhLnRleHQuRm9ybWF0PC9jb2RlPi1kZXJpdmVkIGNsYXNzZXMuICBVbmxpa2UgdGhlCisgKiBtZXRob2RzIHRoYXQgYWRkIGNoYXJhY3RlcnMsIGFkZCBjYXRlZ29yaWVzLCBhbmQgY29udHJvbCB0aGUgbG9naWMKKyAqIG9mIHRoZSBzZXQsIHRoZSBtZXRob2QgPGNvZGU+YXBwbHlQYXR0ZXJuKCk8L2NvZGU+IHNldHMgYWxsCisgKiBhdHRyaWJ1dGVzIG9mIGEgPGNvZGU+VW5pY29kZVNldDwvY29kZT4gYXQgb25jZSwgYmFzZWQgb24gYQorICogc3RyaW5nIHBhdHRlcm4uCisgKgorICogPHA+PGI+UGF0dGVybiBzeW50YXg8L2I+PC9wPgorICoKKyAqIFBhdHRlcm5zIGFyZSBhY2NlcHRlZCBieSB0aGUgY29uc3RydWN0b3JzIGFuZCB0aGUKKyAqIDxjb2RlPmFwcGx5UGF0dGVybigpPC9jb2RlPiBtZXRob2RzIGFuZCByZXR1cm5lZCBieSB0aGUKKyAqIDxjb2RlPnRvUGF0dGVybigpPC9jb2RlPiBtZXRob2QuICBUaGVzZSBwYXR0ZXJucyBmb2xsb3cgYSBzeW50YXgKKyAqIHNpbWlsYXIgdG8gdGhhdCBlbXBsb3llZCBieSB2ZXJzaW9uIDggcmVndWxhciBleHByZXNzaW9uIGNoYXJhY3RlcgorICogY2xhc3Nlcy4gIEhlcmUgYXJlIHNvbWUgc2ltcGxlIGV4YW1wbGVzOgorICoKKyAqIDxibG9ja3F1b3RlPgorICogICA8dGFibGU+CisgKiAgICAgPHRyIGFsaWduPSJ0b3AiPgorICogICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxjb2RlPltdPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPk5vIGNoYXJhY3RlcnM8L3RkPgorICogICAgIDwvdHI+PHRyIGFsaWduPSJ0b3AiPgorICogICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiPjxjb2RlPlthXTwvY29kZT48L3RkPgorICogICAgICAgPHRkIHZhbGlnbj0idG9wIj5UaGUgY2hhcmFjdGVyICdhJzwvdGQ+CisgKiAgICAgPC90cj48dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGNvZGU+W2FlXTwvY29kZT48L3RkPgorICogICAgICAgPHRkIHZhbGlnbj0idG9wIj5UaGUgY2hhcmFjdGVycyAnYScgYW5kICdlJzwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGNvZGU+W2EtZV08L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+VGhlIGNoYXJhY3RlcnMgJ2EnIHRocm91Z2ggJ2UnIGluY2x1c2l2ZSwgaW4gVW5pY29kZSBjb2RlCisgKiAgICAgICBwb2ludCBvcmRlcjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGNvZGU+W1xcdTRFMDFdPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPlRoZSBjaGFyYWN0ZXIgVSs0RTAxPC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0cj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0Ij48Y29kZT5bYXthYn17YWN9XTwvY29kZT48L3RkPgorICogICAgICAgPHRkIHZhbGlnbj0idG9wIj5UaGUgY2hhcmFjdGVyICdhJyBhbmQgdGhlIG11bHRpY2hhcmFjdGVyIHN0cmluZ3MgJnF1b3Q7YWImcXVvdDsgYW5kCisgKiAgICAgICAmcXVvdDthYyZxdW90OzwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0ibGVmdCI+PGNvZGU+W1xwe0x1fV08L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+QWxsIGNoYXJhY3RlcnMgaW4gdGhlIGdlbmVyYWwgY2F0ZWdvcnkgVXBwZXJjYXNlIExldHRlcjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgPC90YWJsZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiBBbnkgY2hhcmFjdGVyIG1heSBiZSBwcmVjZWRlZCBieSBhIGJhY2tzbGFzaCBpbiBvcmRlciB0byByZW1vdmUgYW55IHNwZWNpYWwKKyAqIG1lYW5pbmcuICBXaGl0ZSBzcGFjZSBjaGFyYWN0ZXJzLCBhcyBkZWZpbmVkIGJ5IFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCksIGFyZQorICogaWdub3JlZCwgdW5sZXNzIHRoZXkgYXJlIGVzY2FwZWQuCisgKgorICogPHA+UHJvcGVydHkgcGF0dGVybnMgc3BlY2lmeSBhIHNldCBvZiBjaGFyYWN0ZXJzIGhhdmluZyBhIGNlcnRhaW4KKyAqIHByb3BlcnR5IGFzIGRlZmluZWQgYnkgdGhlIFVuaWNvZGUgc3RhbmRhcmQuICBCb3RoIHRoZSBQT1NJWC1saWtlCisgKiAiWzpMdTpdIiBhbmQgdGhlIFBlcmwtbGlrZSBzeW50YXggIlxwe0x1fSIgYXJlIHJlY29nbml6ZWQuICBGb3IgYQorICogY29tcGxldGUgbGlzdCBvZiBzdXBwb3J0ZWQgcHJvcGVydHkgcGF0dGVybnMsIHNlZSB0aGUgVXNlcidzIEd1aWRlCisgKiBmb3IgVW5pY29kZVNldCBhdAorICogPGEgaHJlZj0iaHR0cDovL2ljdS5zb3VyY2Vmb3JnZS5uZXQvdXNlcmd1aWRlL3VuaWNvZGVTZXQuaHRtbCI+CisgKiBodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvdW5pY29kZVNldC5odG1sPC9hPi4KKyAqIEFjdHVhbCBkZXRlcm1pbmF0aW9uIG9mIHByb3BlcnR5IGRhdGEgaXMgZGVmaW5lZCBieSB0aGUgdW5kZXJseWluZworICogVW5pY29kZSBkYXRhYmFzZSBhcyBpbXBsZW1lbnRlZCBieSBVQ2hhcmFjdGVyLgorICoKKyAqIDxwPlBhdHRlcm5zIHNwZWNpZnkgaW5kaXZpZHVhbCBjaGFyYWN0ZXJzLCByYW5nZXMgb2YgY2hhcmFjdGVycywgYW5kCisgKiBVbmljb2RlIHByb3BlcnR5IHNldHMuICBXaGVuIGVsZW1lbnRzIGFyZSBjb25jYXRlbmF0ZWQsIHRoZXkKKyAqIHNwZWNpZnkgdGhlaXIgdW5pb24uICBUbyBjb21wbGVtZW50IGEgc2V0LCBwbGFjZSBhICdeJyBpbW1lZGlhdGVseQorICogYWZ0ZXIgdGhlIG9wZW5pbmcgJ1snLiAgUHJvcGVydHkgcGF0dGVybnMgYXJlIGludmVydGVkIGJ5IG1vZGlmeWluZworICogdGhlaXIgZGVsaW1pdGVyczsgIls6XmZvb10iIGFuZCAiXFB7Zm9vfSIuICBJbiBhbnkgb3RoZXIgbG9jYXRpb24sCisgKiAnXicgaGFzIG5vIHNwZWNpYWwgbWVhbmluZy4KKyAqCisgKiA8cD5SYW5nZXMgYXJlIGluZGljYXRlZCBieSBwbGFjaW5nIHR3byBhICctJyBiZXR3ZWVuIHR3bworICogY2hhcmFjdGVycywgYXMgaW4gImEteiIuICBUaGlzIHNwZWNpZmllcyB0aGUgcmFuZ2Ugb2YgYWxsCisgKiBjaGFyYWN0ZXJzIGZyb20gdGhlIGxlZnQgdG8gdGhlIHJpZ2h0LCBpbiBVbmljb2RlIG9yZGVyLiAgSWYgdGhlCisgKiBsZWZ0IGNoYXJhY3RlciBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlCisgKiByaWdodCBjaGFyYWN0ZXIgaXQgaXMgYSBzeW50YXggZXJyb3IuICBJZiBhICctJyBvY2N1cnMgYXMgdGhlIGZpcnN0CisgKiBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIG9wZW5pbmcgJ1snIG9yICdbXicsIG9yIGlmIGl0IG9jY3VycyBhcyB0aGUKKyAqIGxhc3QgY2hhcmFjdGVyIGJlZm9yZSB0aGUgY2xvc2luZyAnXScsIHRoZW4gaXQgaXMgdGFrZW4gYXMgYQorICogbGl0ZXJhbC4gIFRodXMgIlthXFwtYl0iLCAiWy1hYl0iLCBhbmQgIlthYi1dIiBhbGwgaW5kaWNhdGUgdGhlIHNhbWUKKyAqIHNldCBvZiB0aHJlZSBjaGFyYWN0ZXJzLCAnYScsICdiJywgYW5kICctJy4KKyAqCisgKiA8cD5TZXRzIG1heSBiZSBpbnRlcnNlY3RlZCB1c2luZyB0aGUgJyYnIG9wZXJhdG9yIG9yIHRoZSBhc3ltbWV0cmljCisgKiBzZXQgZGlmZmVyZW5jZSBtYXkgYmUgdGFrZW4gdXNpbmcgdGhlICctJyBvcGVyYXRvciwgZm9yIGV4YW1wbGUsCisgKiAiW1s6TDpdJltcXHUwMDAwLVxcdTBGRkZdXSIgaW5kaWNhdGVzIHRoZSBzZXQgb2YgYWxsIFVuaWNvZGUgbGV0dGVycworICogd2l0aCB2YWx1ZXMgbGVzcyB0aGFuIDQwOTYuICBPcGVyYXRvcnMgKCcmJyBhbmQgJ3wnKSBoYXZlIGVxdWFsCisgKiBwcmVjZWRlbmNlIGFuZCBiaW5kIGxlZnQtdG8tcmlnaHQuICBUaHVzCisgKiAiW1s6TDpdLVthLXpdLVtcXHUwMTAwLVxcdTAxRkZdXSIgaXMgZXF1aXZhbGVudCB0bworICogIltbWzpMOl0tW2Etel1dLVtcXHUwMTAwLVxcdTAxRkZdXSIuICBUaGlzIG9ubHkgcmVhbGx5IG1hdHRlcnMgZm9yCisgKiBkaWZmZXJlbmNlOyBpbnRlcnNlY3Rpb24gaXMgY29tbXV0YXRpdmUuCisgKgorICogPHRhYmxlPgorICogPHRyIHZhbGlnbj10b3A+PHRkIG5vd3JhcD48Y29kZT5bYV08L2NvZGU+PHRkPlRoZSBzZXQgY29udGFpbmluZyAnYScKKyAqIDx0ciB2YWxpZ249dG9wPjx0ZCBub3dyYXA+PGNvZGU+W2Etel08L2NvZGU+PHRkPlRoZSBzZXQgY29udGFpbmluZyAnYScKKyAqIHRocm91Z2ggJ3onIGFuZCBhbGwgbGV0dGVycyBpbiBiZXR3ZWVuLCBpbiBVbmljb2RlIG9yZGVyCisgKiA8dHIgdmFsaWduPXRvcD48dGQgbm93cmFwPjxjb2RlPlteYS16XTwvY29kZT48dGQ+VGhlIHNldCBjb250YWluaW5nCisgKiBhbGwgY2hhcmFjdGVycyBidXQgJ2EnIHRocm91Z2ggJ3onLAorICogdGhhdCBpcywgVSswMDAwIHRocm91Z2ggJ2EnLTEgYW5kICd6JysxIHRocm91Z2ggVSsxMEZGRkYKKyAqIDx0ciB2YWxpZ249dG9wPjx0ZCBub3dyYXA+PGNvZGU+W1s8ZW0+cGF0MTwvZW0+XVs8ZW0+cGF0MjwvZW0+XV08L2NvZGU+CisgKiA8dGQ+VGhlIHVuaW9uIG9mIHNldHMgc3BlY2lmaWVkIGJ5IDxlbT5wYXQxPC9lbT4gYW5kIDxlbT5wYXQyPC9lbT4KKyAqIDx0ciB2YWxpZ249dG9wPjx0ZCBub3dyYXA+PGNvZGU+W1s8ZW0+cGF0MTwvZW0+XSZbPGVtPnBhdDI8L2VtPl1dPC9jb2RlPgorICogPHRkPlRoZSBpbnRlcnNlY3Rpb24gb2Ygc2V0cyBzcGVjaWZpZWQgYnkgPGVtPnBhdDE8L2VtPiBhbmQgPGVtPnBhdDI8L2VtPgorICogPHRyIHZhbGlnbj10b3A+PHRkIG5vd3JhcD48Y29kZT5bWzxlbT5wYXQxPC9lbT5dLVs8ZW0+cGF0MjwvZW0+XV08L2NvZGU+CisgKiA8dGQ+VGhlIGFzeW1tZXRyaWMgZGlmZmVyZW5jZSBvZiBzZXRzIHNwZWNpZmllZCBieSA8ZW0+cGF0MTwvZW0+IGFuZAorICogPGVtPnBhdDI8L2VtPgorICogPHRyIHZhbGlnbj10b3A+PHRkIG5vd3JhcD48Y29kZT5bOkx1Ol0gb3IgXHB7THV9PC9jb2RlPgorICogPHRkPlRoZSBzZXQgb2YgY2hhcmFjdGVycyBoYXZpbmcgdGhlIHNwZWNpZmllZAorICogVW5pY29kZSBwcm9wZXJ0eTsgaW4KKyAqIHRoaXMgY2FzZSwgVW5pY29kZSB1cHBlcmNhc2UgbGV0dGVycworICogPHRyIHZhbGlnbj10b3A+PHRkIG5vd3JhcD48Y29kZT5bOl5MdTpdIG9yIFxQe0x1fTwvY29kZT4KKyAqIDx0ZD5UaGUgc2V0IG9mIGNoYXJhY3RlcnMgPGVtPm5vdDwvZW0+IGhhdmluZyB0aGUgZ2l2ZW4KKyAqIFVuaWNvZGUgcHJvcGVydHkKKyAqIDwvdGFibGU+CisgKgorICogPHA+PGI+V2FybmluZzwvYj46IHlvdSBjYW5ub3QgYWRkIGFuIGVtcHR5IHN0cmluZyAoIiIpIHRvIGEgVW5pY29kZVNldC48L3A+CisgKgorICogPHA+PGI+Rm9ybWFsIHN5bnRheDwvYj48L3A+CisgKgorICogPGJsb2NrcXVvdGU+CisgKiAgIDx0YWJsZT4KKyAqICAgICA8dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0icmlnaHQiPjxjb2RlPnBhdHRlcm4gOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxjb2RlPignWycgJ14nPyBpdGVtKiAnXScpIHwKKyAqICAgICAgIHByb3BlcnR5PC9jb2RlPjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0icmlnaHQiPjxjb2RlPml0ZW0gOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxjb2RlPmNoYXIgfCAoY2hhciAnLScgY2hhcikgfCBwYXR0ZXJuLWV4cHI8YnI+CisgKiAgICAgICA8L2NvZGU+PC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0ciBhbGlnbj0idG9wIj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJyaWdodCI+PGNvZGU+cGF0dGVybi1leHByIDo9Jm5ic3A7IDwvY29kZT48L3RkPgorICogICAgICAgPHRkIHZhbGlnbj0idG9wIj48Y29kZT5wYXR0ZXJuIHwgcGF0dGVybi1leHByIHBhdHRlcm4gfAorICogICAgICAgcGF0dGVybi1leHByIG9wIHBhdHRlcm48YnI+CisgKiAgICAgICA8L2NvZGU+PC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0ciBhbGlnbj0idG9wIj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJyaWdodCI+PGNvZGU+b3AgOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxjb2RlPicmYW1wOycgfCAnLSc8YnI+CisgKiAgICAgICA8L2NvZGU+PC90ZD4KKyAqICAgICA8L3RyPgorICogICAgIDx0ciBhbGlnbj0idG9wIj4KKyAqICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiIGFsaWduPSJyaWdodCI+PGNvZGU+c3BlY2lhbCA6PSZuYnNwOyA8L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+PGNvZGU+J1snIHwgJ10nIHwgJy0nPGJyPgorICogICAgICAgPC9jb2RlPjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgICA8dHIgYWxpZ249InRvcCI+CisgKiAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIiBhbGlnbj0icmlnaHQiPjxjb2RlPmNoYXIgOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxlbT5hbnkgY2hhcmFjdGVyIHRoYXQgaXMgbm90PC9lbT48Y29kZT4gc3BlY2lhbDxicj4KKyAqICAgICAgIHwgKCdcXCcgPC9jb2RlPjxlbT5hbnkgY2hhcmFjdGVyPC9lbT48Y29kZT4pPGJyPgorICogICAgICAgfCAoJyYjOTI7dScgaGV4IGhleCBoZXggaGV4KTxicj4KKyAqICAgICAgIDwvY29kZT48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyIGFsaWduPSJ0b3AiPgorICogICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCIgYWxpZ249InJpZ2h0Ij48Y29kZT5oZXggOj0mbmJzcDsgPC9jb2RlPjwvdGQ+CisgKiAgICAgICA8dGQgdmFsaWduPSJ0b3AiPjxlbT5hbnkgY2hhcmFjdGVyIGZvciB3aGljaAorICogICAgICAgPC9lbT48Y29kZT5DaGFyYWN0ZXIuZGlnaXQoYywgMTYpPC9jb2RlPjxlbT4KKyAqICAgICAgIHJldHVybnMgYSBub24tbmVnYXRpdmUgcmVzdWx0PC9lbT48L3RkPgorICogICAgIDwvdHI+CisgKiAgICAgPHRyPgorICogICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCIgYWxpZ249InJpZ2h0Ij48Y29kZT5wcm9wZXJ0eSA6PSZuYnNwOyA8L2NvZGU+PC90ZD4KKyAqICAgICAgIDx0ZCB2YWxpZ249InRvcCI+PGVtPmEgVW5pY29kZSBwcm9wZXJ0eSBzZXQgcGF0dGVybjwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgPC90YWJsZT4KKyAqICAgPGJyPgorICogICA8dGFibGUgYm9yZGVyPSIxIj4KKyAqICAgICA8dHI+CisgKiAgICAgICA8dGQ+TGVnZW5kOiA8dGFibGU+CisgKiAgICAgICAgIDx0cj4KKyAqICAgICAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIj48Y29kZT5hIDo9IGI8L2NvZGU+PC90ZD4KKyAqICAgICAgICAgICA8dGQgd2lkdGg9IjIwIiB2YWxpZ249InRvcCI+Jm5ic3A7IDwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj48Y29kZT5hPC9jb2RlPiBtYXkgYmUgcmVwbGFjZWQgYnkgPGNvZGU+YjwvY29kZT4gPC90ZD4KKyAqICAgICAgICAgPC90cj4KKyAqICAgICAgICAgPHRyPgorICogICAgICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiPjxjb2RlPmE/PC9jb2RlPjwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+emVybyBvciBvbmUgaW5zdGFuY2Ugb2YgPGNvZGU+YTwvY29kZT48YnI+CisgKiAgICAgICAgICAgPC90ZD4KKyAqICAgICAgICAgPC90cj4KKyAqICAgICAgICAgPHRyPgorICogICAgICAgICAgIDx0ZCBub3dyYXAgdmFsaWduPSJ0b3AiPjxjb2RlPmEqPC9jb2RlPjwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+b25lIG9yIG1vcmUgaW5zdGFuY2VzIG9mIDxjb2RlPmE8L2NvZGU+PGJyPgorICogICAgICAgICAgIDwvdGQ+CisgKiAgICAgICAgIDwvdHI+CisgKiAgICAgICAgIDx0cj4KKyAqICAgICAgICAgICA8dGQgbm93cmFwIHZhbGlnbj0idG9wIj48Y29kZT5hIHwgYjwvY29kZT48L3RkPgorICogICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+PC90ZD4KKyAqICAgICAgICAgICA8dGQgdmFsaWduPSJ0b3AiPmVpdGhlciA8Y29kZT5hPC9jb2RlPiBvciA8Y29kZT5iPC9jb2RlPjxicj4KKyAqICAgICAgICAgICA8L3RkPgorICogICAgICAgICA8L3RyPgorICogICAgICAgICA8dHI+CisgKiAgICAgICAgICAgPHRkIG5vd3JhcCB2YWxpZ249InRvcCI+PGNvZGU+J2EnPC9jb2RlPjwvdGQ+CisgKiAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIj48L3RkPgorICogICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCI+dGhlIGxpdGVyYWwgc3RyaW5nIGJldHdlZW4gdGhlIHF1b3RlcyA8L3RkPgorICogICAgICAgICA8L3RyPgorICogICAgICAgPC90YWJsZT4KKyAqICAgICAgIDwvdGQ+CisgKiAgICAgPC90cj4KKyAqICAgPC90YWJsZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIDxwPlRvIGl0ZXJhdGUgb3ZlciBjb250ZW50cyBvZiBVbmljb2RlU2V0LCB1c2UgVW5pY29kZVNldEl0ZXJhdG9yIGNsYXNzLgorICoKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICogQHNlZSBVbmljb2RlU2V0SXRlcmF0b3IKKyAqLworcHVibGljIGNsYXNzIFVuaWNvZGVTZXQgZXh0ZW5kcyBVbmljb2RlRmlsdGVyIHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMT1cgPSAweDAwMDAwMDsgLy8gTE9XIDw9IGFsbCB2YWxpZCB2YWx1ZXMuIFpFUk8gZm9yIGNvZGVwb2ludHMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSElHSCA9IDB4MTEwMDAwOyAvLyBISUdIID4gYWxsIHZhbGlkIHZhbHVlcy4gMTAwMDAgZm9yIGNvZGUgdW5pdHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxMTAwMDAgZm9yIGNvZGVwb2ludHMKKworICAgIC8qKgorICAgICAqIE1pbmltdW0gdmFsdWUgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGEgVW5pY29kZVNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU5fVkFMVUUgPSBMT1c7CisKKyAgICAvKioKKyAgICAgKiBNYXhpbXVtIHZhbHVlIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIFVuaWNvZGVTZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1ZBTFVFID0gSElHSCAtIDE7CisKKyAgICBwcml2YXRlIGludCBsZW47ICAgICAgLy8gbGVuZ3RoIHVzZWQ7IGxpc3QgbWF5IGJlIGxvbmdlciB0byBtaW5pbWl6ZSByZWFsbG9jcworICAgIHByaXZhdGUgaW50W10gbGlzdDsgICAvLyBNVVNUIGJlIHRlcm1pbmF0ZWQgd2l0aCBISUdICisgICAgcHJpdmF0ZSBpbnRbXSByYW5nZUxpc3Q7IC8vIGludGVybmFsIGJ1ZmZlcgorICAgIHByaXZhdGUgaW50W10gYnVmZmVyOyAvLyBpbnRlcm5hbCBidWZmZXIKKworICAgIC8vIE5PVEU6IG5vcm1hbGx5IHRoZSBmaWVsZCBzaG91bGQgYmUgb2YgdHlwZSBTb3J0ZWRTZXQ7IGJ1dCB0aGF0IGlzIG1pc3NpbmcgYSBwdWJsaWMgY2xvbmUhIQorICAgIC8vIGlzIG5vdCBwcml2YXRlIHNvIHRoYXQgVW5pY29kZVNldEl0ZXJhdG9yIGNhbiBnZXQgYWNjZXNzCisgICAgVHJlZVNldCBzdHJpbmdzID0gbmV3IFRyZWVTZXQoKTsKKworICAgIC8qKgorICAgICAqIFRoZSBwYXR0ZXJuIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc2V0LiAgVGhpcyBtYXkgbm90IGJlIHRoZQorICAgICAqIG1vc3QgZWNvbm9taWNhbCBwYXR0ZXJuLiAgSXQgaXMgdGhlIHBhdHRlcm4gc3VwcGxpZWQgdG8KKyAgICAgKiBhcHBseVBhdHRlcm4oKSwgd2l0aCB2YXJpYWJsZXMgc3Vic3RpdHV0ZWQgYW5kIHdoaXRlc3BhY2UKKyAgICAgKiByZW1vdmVkLiAgRm9yIHNldHMgY29uc3RydWN0ZWQgd2l0aG91dCBhcHBseVBhdHRlcm4oKSwgb3IKKyAgICAgKiBtb2RpZmllZCB1c2luZyB0aGUgbm9uLXBhdHRlcm4gQVBJLCB0aGlzIHN0cmluZyB3aWxsIGJlIG51bGwsCisgICAgICogaW5kaWNhdGluZyB0aGF0IHRvUGF0dGVybigpIG11c3QgZ2VuZXJhdGUgYSBwYXR0ZXJuCisgICAgICogcmVwcmVzZW50YXRpb24gZnJvbSB0aGUgaW52ZXJzaW9uIGxpc3QuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0ID0gbnVsbDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVEFSVF9FWFRSQSA9IDE2OyAgICAgICAgIC8vIGluaXRpYWwgc3RvcmFnZS4gTXVzdCBiZSA+PSAwCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdST1dfRVhUUkEgPSBTVEFSVF9FWFRSQTsgLy8gZXh0cmEgYW1vdW50IGZvciBncm93dGguIE11c3QgYmUgPj0gMAorCisgICAgLy8gU3BlY2lhbCBwcm9wZXJ0eSBzZXQgSURzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFOWV9JRCAgID0gIkFOWSI7ICAgLy8gW1x1MDAwMC1cVTAwMTBGRkZGXQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBU0NJSV9JRCA9ICJBU0NJSSI7IC8vIFtcdTAwMDAtXHUwMDdGXQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBBU1NJR05FRCA9ICJBc3NpZ25lZCI7IC8vIFs6XkNuOl0KKworICAgIC8qKgorICAgICAqIEEgc2V0IG9mIGFsbCBjaGFyYWN0ZXJzIF9leGNlcHRfIHRoZSBzZWNvbmQgdGhyb3VnaCBsYXN0IGNoYXJhY3RlcnMgb2YKKyAgICAgKiBjZXJ0YWluIHJhbmdlcy4gIFRoZXNlIHJhbmdlcyBhcmUgcmFuZ2VzIG9mIGNoYXJhY3RlcnMgd2hvc2UKKyAgICAgKiBwcm9wZXJ0aWVzIGFyZSBhbGwgZXhhY3RseSBhbGlrZSwgZS5nLiBDSksgSWRlb2dyYXBocyBmcm9tCisgICAgICogVSs0RTAwIHRvIFUrOUZBNS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBVbmljb2RlU2V0IElOQ0xVU0lPTlNbXSA9IG51bGw7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQdWJsaWMgQVBJCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIGVtcHR5IHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCgpIHsKKyAgICAgICAgbGlzdCA9IG5ldyBpbnRbMSArIFNUQVJUX0VYVFJBXTsKKyAgICAgICAgbGlzdFtsZW4rK10gPSBISUdIOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBjb3B5IG9mIGFuIGV4aXN0aW5nIHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldChVbmljb2RlU2V0IG90aGVyKSB7CisgICAgICAgIHNldChvdGhlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHNldCBjb250YWluaW5nIHRoZSBnaXZlbiByYW5nZS4gSWYgPGNvZGU+ZW5kID4KKyAgICAgKiBzdGFydDwvY29kZT4gdGhlbiBhbiBlbXB0eSBzZXQgaXMgY3JlYXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UKKyAgICAgKiBAcGFyYW0gZW5kIGxhc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgY29tcGxlbWVudChzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgc2V0IGZyb20gdGhlIGdpdmVuIHBhdHRlcm4uICBTZWUgdGhlIGNsYXNzIGRlc2NyaXB0aW9uCisgICAgICogZm9yIHRoZSBzeW50YXggb2YgdGhlIHBhdHRlcm4gbGFuZ3VhZ2UuICBXaGl0ZXNwYWNlIGlzIGlnbm9yZWQuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBzdHJpbmcgc3BlY2lmeWluZyB3aGF0IGNoYXJhY3RlcnMgYXJlIGluIHRoZSBzZXQKKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4gY29udGFpbnMKKyAgICAgKiBhIHN5bnRheCBlcnJvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldChTdHJpbmcgcGF0dGVybikgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuLCBudWxsLCBudWxsLCBJR05PUkVfU1BBQ0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBzZXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybi4gIFNlZSB0aGUgY2xhc3MgZGVzY3JpcHRpb24KKyAgICAgKiBmb3IgdGhlIHN5bnRheCBvZiB0aGUgcGF0dGVybiBsYW5ndWFnZS4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBhIHN0cmluZyBzcGVjaWZ5aW5nIHdoYXQgY2hhcmFjdGVycyBhcmUgaW4gdGhlIHNldAorICAgICAqIEBwYXJhbSBpZ25vcmVXaGl0ZXNwYWNlIGlmIHRydWUsIGlnbm9yZSBjaGFyYWN0ZXJzIGZvciB3aGljaAorICAgICAqIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCkgcmV0dXJucyB0cnVlCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGNvbnRhaW5zCisgICAgICogYSBzeW50YXggZXJyb3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQoU3RyaW5nIHBhdHRlcm4sIGJvb2xlYW4gaWdub3JlV2hpdGVzcGFjZSkgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuLCBudWxsLCBudWxsLCBpZ25vcmVXaGl0ZXNwYWNlID8gSUdOT1JFX1NQQUNFIDogMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIHNldCBmcm9tIHRoZSBnaXZlbiBwYXR0ZXJuLiAgU2VlIHRoZSBjbGFzcyBkZXNjcmlwdGlvbgorICAgICAqIGZvciB0aGUgc3ludGF4IG9mIHRoZSBwYXR0ZXJuIGxhbmd1YWdlLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIGEgc3RyaW5nIHNwZWNpZnlpbmcgd2hhdCBjaGFyYWN0ZXJzIGFyZSBpbiB0aGUgc2V0CisgICAgICogQHBhcmFtIG9wdGlvbnMgYSBiaXRtYXNrIGluZGljYXRpbmcgd2hpY2ggb3B0aW9ucyB0byBhcHBseS4KKyAgICAgKiBWYWxpZCBvcHRpb25zIGFyZSBJR05PUkVfU1BBQ0UgYW5kIENBU0UuCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuIGNvbnRhaW5zCisgICAgICogYSBzeW50YXggZXJyb3IuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQoU3RyaW5nIHBhdHRlcm4sIGludCBvcHRpb25zKSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIG51bGwsIG51bGwsIG9wdGlvbnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBzZXQgZnJvbSB0aGUgZ2l2ZW4gcGF0dGVybi4gIFNlZSB0aGUgY2xhc3MgZGVzY3JpcHRpb24KKyAgICAgKiBmb3IgdGhlIHN5bnRheCBvZiB0aGUgcGF0dGVybiBsYW5ndWFnZS4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBhIHN0cmluZyBzcGVjaWZ5aW5nIHdoYXQgY2hhcmFjdGVycyBhcmUgaW4gdGhlIHNldAorICAgICAqIEBwYXJhbSBwb3Mgb24gaW5wdXQsIHRoZSBwb3NpdGlvbiBpbiBwYXR0ZXJuIGF0IHdoaWNoIHRvIHN0YXJ0IHBhcnNpbmcuCisgICAgICogT24gb3V0cHV0LCB0aGUgcG9zaXRpb24gYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gc3ltYm9scyBhIHN5bWJvbCB0YWJsZSBtYXBwaW5nIHZhcmlhYmxlcyB0byBjaGFyW10gYXJyYXlzCisgICAgICogYW5kIGNoYXJzIHRvIFVuaWNvZGVTZXRzCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuCisgICAgICogY29udGFpbnMgYSBzeW50YXggZXJyb3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQoU3RyaW5nIHBhdHRlcm4sIFBhcnNlUG9zaXRpb24gcG9zLCBTeW1ib2xUYWJsZSBzeW1ib2xzKSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIHBvcywgc3ltYm9scywgSUdOT1JFX1NQQUNFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgc2V0IGZyb20gdGhlIGdpdmVuIHBhdHRlcm4uICBTZWUgdGhlIGNsYXNzIGRlc2NyaXB0aW9uCisgICAgICogZm9yIHRoZSBzeW50YXggb2YgdGhlIHBhdHRlcm4gbGFuZ3VhZ2UuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBzdHJpbmcgc3BlY2lmeWluZyB3aGF0IGNoYXJhY3RlcnMgYXJlIGluIHRoZSBzZXQKKyAgICAgKiBAcGFyYW0gcG9zIG9uIGlucHV0LCB0aGUgcG9zaXRpb24gaW4gcGF0dGVybiBhdCB3aGljaCB0byBzdGFydCBwYXJzaW5nLgorICAgICAqIE9uIG91dHB1dCwgdGhlIHBvc2l0aW9uIGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBwYXJzZWQuCisgICAgICogQHBhcmFtIHN5bWJvbHMgYSBzeW1ib2wgdGFibGUgbWFwcGluZyB2YXJpYWJsZXMgdG8gY2hhcltdIGFycmF5cworICAgICAqIGFuZCBjaGFycyB0byBVbmljb2RlU2V0cworICAgICAqIEBwYXJhbSBvcHRpb25zIGEgYml0bWFzayBpbmRpY2F0aW5nIHdoaWNoIG9wdGlvbnMgdG8gYXBwbHkuCisgICAgICogVmFsaWQgb3B0aW9ucyBhcmUgSUdOT1JFX1NQQUNFIGFuZCBDQVNFLgorICAgICAqIEBleGNlcHRpb24gamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybgorICAgICAqIGNvbnRhaW5zIGEgc3ludGF4IGVycm9yLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQoU3RyaW5nIHBhdHRlcm4sIFBhcnNlUG9zaXRpb24gcG9zLCBTeW1ib2xUYWJsZSBzeW1ib2xzLCBpbnQgb3B0aW9ucykgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIGFwcGx5UGF0dGVybihwYXR0ZXJuLCBwb3MsIHN5bWJvbHMsIG9wdGlvbnMpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbmV3IHNldCB0aGF0IGlzIGVxdWl2YWxlbnQgdG8gdGhpcyBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBVbmljb2RlU2V0KHRoaXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2UgdGhpcyBvYmplY3QgcmVwcmVzZW50IHRoZSByYW5nZSA8Y29kZT5zdGFydCAtIGVuZDwvY29kZT4uCisgICAgICogSWYgPGNvZGU+ZW5kID4gc3RhcnQ8L2NvZGU+IHRoZW4gdGhpcyBvYmplY3QgaXMgc2V0IHRvIGFuCisgICAgICogYW4gZW1wdHkgcmFuZ2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBzZXQsIGluY2x1c2l2ZQorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHNldCwgaW5jbHVzaXZlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgc2V0KGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBjbGVhcigpOworICAgICAgICBjb21wbGVtZW50KHN0YXJ0LCBlbmQpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNYWtlIHRoaXMgb2JqZWN0IHJlcHJlc2VudCB0aGUgc2FtZSBzZXQgYXMgPGNvZGU+b3RoZXI8L2NvZGU+LgorICAgICAqIEBwYXJhbSBvdGhlciBhIDxjb2RlPlVuaWNvZGVTZXQ8L2NvZGU+IHdob3NlIHZhbHVlIHdpbGwgYmUKKyAgICAgKiBjb3BpZWQgdG8gdGhpcyBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBzZXQoVW5pY29kZVNldCBvdGhlcikgeworICAgICAgICBsaXN0ID0gKGludFtdKSBvdGhlci5saXN0LmNsb25lKCk7CisgICAgICAgIGxlbiA9IG90aGVyLmxlbjsKKyAgICAgICAgcGF0ID0gb3RoZXIucGF0OworICAgICAgICBzdHJpbmdzID0gKFRyZWVTZXQpb3RoZXIuc3RyaW5ncy5jbG9uZSgpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZmllcyB0aGlzIHNldCB0byByZXByZXNlbnQgdGhlIHNldCBzcGVjaWZpZWQgYnkgdGhlIGdpdmVuIHBhdHRlcm4uCisgICAgICogU2VlIHRoZSBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgdGhlIHN5bnRheCBvZiB0aGUgcGF0dGVybiBsYW5ndWFnZS4KKyAgICAgKiBXaGl0ZXNwYWNlIGlzIGlnbm9yZWQuCisgICAgICogQHBhcmFtIHBhdHRlcm4gYSBzdHJpbmcgc3BlY2lmeWluZyB3aGF0IGNoYXJhY3RlcnMgYXJlIGluIHRoZSBzZXQKKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHBhdHRlcm4KKyAgICAgKiBjb250YWlucyBhIHN5bnRheCBlcnJvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBhcHBseVBhdHRlcm4oU3RyaW5nIHBhdHRlcm4pIHsKKyAgICAgICAgcmV0dXJuIGFwcGx5UGF0dGVybihwYXR0ZXJuLCBudWxsLCBudWxsLCBJR05PUkVfU1BBQ0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmaWVzIHRoaXMgc2V0IHRvIHJlcHJlc2VudCB0aGUgc2V0IHNwZWNpZmllZCBieSB0aGUgZ2l2ZW4gcGF0dGVybiwKKyAgICAgKiBvcHRpb25hbGx5IGlnbm9yaW5nIHdoaXRlc3BhY2UuCisgICAgICogU2VlIHRoZSBjbGFzcyBkZXNjcmlwdGlvbiBmb3IgdGhlIHN5bnRheCBvZiB0aGUgcGF0dGVybiBsYW5ndWFnZS4KKyAgICAgKiBAcGFyYW0gcGF0dGVybiBhIHN0cmluZyBzcGVjaWZ5aW5nIHdoYXQgY2hhcmFjdGVycyBhcmUgaW4gdGhlIHNldAorICAgICAqIEBwYXJhbSBpZ25vcmVXaGl0ZXNwYWNlIGlmIHRydWUgdGhlbiBjaGFyYWN0ZXJzIGZvciB3aGljaAorICAgICAqIFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKCkgcmV0dXJucyB0cnVlIGFyZSBpZ25vcmVkCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuCisgICAgICogY29udGFpbnMgYSBzeW50YXggZXJyb3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLCBib29sZWFuIGlnbm9yZVdoaXRlc3BhY2UpIHsKKyAgICAgICAgcmV0dXJuIGFwcGx5UGF0dGVybihwYXR0ZXJuLCBudWxsLCBudWxsLCBpZ25vcmVXaGl0ZXNwYWNlID8gSUdOT1JFX1NQQUNFIDogMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTW9kaWZpZXMgdGhpcyBzZXQgdG8gcmVwcmVzZW50IHRoZSBzZXQgc3BlY2lmaWVkIGJ5IHRoZSBnaXZlbiBwYXR0ZXJuLAorICAgICAqIG9wdGlvbmFsbHkgaWdub3Jpbmcgd2hpdGVzcGFjZS4KKyAgICAgKiBTZWUgdGhlIGNsYXNzIGRlc2NyaXB0aW9uIGZvciB0aGUgc3ludGF4IG9mIHRoZSBwYXR0ZXJuIGxhbmd1YWdlLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIGEgc3RyaW5nIHNwZWNpZnlpbmcgd2hhdCBjaGFyYWN0ZXJzIGFyZSBpbiB0aGUgc2V0CisgICAgICogQHBhcmFtIG9wdGlvbnMgYSBiaXRtYXNrIGluZGljYXRpbmcgd2hpY2ggb3B0aW9ucyB0byBhcHBseS4KKyAgICAgKiBWYWxpZCBvcHRpb25zIGFyZSBJR05PUkVfU1BBQ0UgYW5kIENBU0UuCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXR0ZXJuCisgICAgICogY29udGFpbnMgYSBzeW50YXggZXJyb3IuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgYXBwbHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLCBpbnQgb3B0aW9ucykgeworICAgICAgICByZXR1cm4gYXBwbHlQYXR0ZXJuKHBhdHRlcm4sIG51bGwsIG51bGwsIG9wdGlvbnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBwb3NpdGlvbiwgaW4gdGhlIGdpdmVuIHBhdHRlcm4sIGFwcGVhcnMKKyAgICAgKiB0byBiZSB0aGUgc3RhcnQgb2YgYSBVbmljb2RlU2V0IHBhdHRlcm4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBib29sZWFuIHJlc2VtYmxlc1BhdHRlcm4oU3RyaW5nIHBhdHRlcm4sIGludCBwb3MpIHsKKyAgICAgICAgcmV0dXJuICgocG9zKzEpIDwgcGF0dGVybi5sZW5ndGgoKSAmJgorICAgICAgICAgICAgICAgIHBhdHRlcm4uY2hhckF0KHBvcykgPT0gJ1snKSB8fAorICAgICAgICAgICAgcmVzZW1ibGVzUHJvcGVydHlQYXR0ZXJuKHBhdHRlcm4sIHBvcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIHRoZSA8Y29kZT50b1BhdHRlcm4oKTwvY29kZT4gcmVwcmVzZW50YXRpb24gb2YgYQorICAgICAqIHN0cmluZyB0byB0aGUgZ2l2ZW4gPGNvZGU+U3RyaW5nQnVmZmVyPC9jb2RlPi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIF9hcHBlbmRUb1BhdChTdHJpbmdCdWZmZXIgYnVmLCBTdHJpbmcgcywgYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGkpKSB7CisgICAgICAgICAgICBfYXBwZW5kVG9QYXQoYnVmLCBVVEYxNi5jaGFyQXQocywgaSksIGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgPGNvZGU+dG9QYXR0ZXJuKCk8L2NvZGU+IHJlcHJlc2VudGF0aW9uIG9mIGEKKyAgICAgKiBjaGFyYWN0ZXIgdG8gdGhlIGdpdmVuIDxjb2RlPlN0cmluZ0J1ZmZlcjwvY29kZT4uCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBfYXBwZW5kVG9QYXQoU3RyaW5nQnVmZmVyIGJ1ZiwgaW50IGMsIGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUpIHsKKyAgICAgICAgaWYgKGVzY2FwZVVucHJpbnRhYmxlICYmIFV0aWxpdHkuaXNVbnByaW50YWJsZShjKSkgeworICAgICAgICAgICAgLy8gVXNlIGhleCBlc2NhcGUgbm90YXRpb24gKDxiYWNrc2xhc2g+dXh4eHggb3IgPGJhY2tzbGFzaD5VeHh4eHh4eHgpIGZvciBhbnl0aGluZworICAgICAgICAgICAgLy8gdW5wcmludGFibGUKKyAgICAgICAgICAgIGlmIChVdGlsaXR5LmVzY2FwZVVucHJpbnRhYmxlKGJ1ZiwgYykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gT2theSB0byBsZXQgJzonIHBhc3MgdGhyb3VnaAorICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgY2FzZSAnWyc6IC8vIFNFVF9PUEVOOgorICAgICAgICBjYXNlICddJzogLy8gU0VUX0NMT1NFOgorICAgICAgICBjYXNlICctJzogLy8gSFlQSEVOOgorICAgICAgICBjYXNlICdeJzogLy8gQ09NUExFTUVOVDoKKyAgICAgICAgY2FzZSAnJic6IC8vIElOVEVSU0VDVElPTjoKKyAgICAgICAgY2FzZSAnXFwnOiAvL0JBQ0tTTEFTSDoKKyAgICAgICAgY2FzZSAneyc6CisgICAgICAgIGNhc2UgJ30nOgorICAgICAgICBjYXNlICckJzoKKyAgICAgICAgY2FzZSAnOic6CisgICAgICAgICAgICBidWYuYXBwZW5kKCdcXCcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBFc2NhcGUgd2hpdGVzcGFjZQorICAgICAgICAgICAgaWYgKFVDaGFyYWN0ZXJQcm9wZXJ0eS5pc1J1bGVXaGl0ZVNwYWNlKGMpKSB7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgnXFwnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIFVURjE2LmFwcGVuZChidWYsIGMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzZXQuICBJZiB0aGUgcmVzdWx0IG9mCisgICAgICogY2FsbGluZyB0aGlzIGZ1bmN0aW9uIGlzIHBhc3NlZCB0byBhIFVuaWNvZGVTZXQgY29uc3RydWN0b3IsIGl0CisgICAgICogd2lsbCBwcm9kdWNlIGFub3RoZXIgc2V0IHRoYXQgaXMgZXF1YWwgdG8gdGhpcyBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1BhdHRlcm4oYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICByZXR1cm4gX3RvUGF0dGVybihyZXN1bHQsIGVzY2FwZVVucHJpbnRhYmxlKS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNldCB0byByZXN1bHQuICBUaGlzIHdpbGwgYmUKKyAgICAgKiBhIGNsZWFuZWQgdmVyc2lvbiBvZiB0aGUgc3RyaW5nIHBhc3NlZCB0byBhcHBseVBhdHRlcm4oKSwgaWYgdGhlcmUKKyAgICAgKiBpcyBvbmUuICBPdGhlcndpc2UgaXQgd2lsbCBiZSBnZW5lcmF0ZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdCdWZmZXIgX3RvUGF0dGVybihTdHJpbmdCdWZmZXIgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBlc2NhcGVVbnByaW50YWJsZSkgeworICAgICAgICBpZiAocGF0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgaW50IGJhY2tzbGFzaENvdW50ID0gMDsKKyAgICAgICAgICAgIGZvciAoaT0wOyBpPHBhdC5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQocGF0LCBpKTsKKyAgICAgICAgICAgICAgICBpICs9IFVURjE2LmdldENoYXJDb3VudChjKTsKKyAgICAgICAgICAgICAgICBpZiAoZXNjYXBlVW5wcmludGFibGUgJiYgVXRpbGl0eS5pc1VucHJpbnRhYmxlKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB1bnByaW50YWJsZSBjaGFyYWN0ZXIgaXMgcHJlY2VkZWQgYnkgYW4gb2RkCisgICAgICAgICAgICAgICAgICAgIC8vIG51bWJlciBvZiBiYWNrc2xhc2hlcywgdGhlbiBpdCBoYXMgYmVlbiBlc2NhcGVkLgorICAgICAgICAgICAgICAgICAgICAvLyBCZWZvcmUgdW5lc2NhcGluZyBpdCwgd2UgZGVsZXRlIHRoZSBmaW5hbAorICAgICAgICAgICAgICAgICAgICAvLyBiYWNrc2xhc2guCisgICAgICAgICAgICAgICAgICAgIGlmICgoYmFja3NsYXNoQ291bnQgJSAyKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuc2V0TGVuZ3RoKHJlc3VsdC5sZW5ndGgoKSAtIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIFV0aWxpdHkuZXNjYXBlVW5wcmludGFibGUocmVzdWx0LCBjKTsKKyAgICAgICAgICAgICAgICAgICAgYmFja3NsYXNoQ291bnQgPSAwOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIFVURjE2LmFwcGVuZChyZXN1bHQsIGMpOworICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK2JhY2tzbGFzaENvdW50OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYmFja3NsYXNoQ291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBfZ2VuZXJhdGVQYXR0ZXJuKHJlc3VsdCwgZXNjYXBlVW5wcmludGFibGUsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlIGFuZCBhcHBlbmQgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzZXQgdG8gcmVzdWx0LgorICAgICAqIFRoaXMgZG9lcyBub3QgdXNlIHRoaXMucGF0LCB0aGUgY2xlYW5lZCB1cCBjb3B5IG9mIHRoZSBzdHJpbmcKKyAgICAgKiBwYXNzZWQgdG8gYXBwbHlQYXR0ZXJuKCkuCisgICAgICogQHBhcmFtIHJlc3VsdCB0aGUgYnVmZmVyIGludG8gd2hpY2ggdG8gZ2VuZXJhdGUgdGhlIHBhdHRlcm4KKyAgICAgKiBAcGFyYW0gZXNjYXBlVW5wcmludGFibGUgZXNjYXBlIHVucHJpbnRhYmxlIGNoYXJhY3RlcnMgaWYgdHJ1ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdCdWZmZXIgX2dlbmVyYXRlUGF0dGVybihTdHJpbmdCdWZmZXIgcmVzdWx0LCBib29sZWFuIGVzY2FwZVVucHJpbnRhYmxlKSB7CisgICAgICAgIHJldHVybiBfZ2VuZXJhdGVQYXR0ZXJuKHJlc3VsdCwgZXNjYXBlVW5wcmludGFibGUsIHRydWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlIGFuZCBhcHBlbmQgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzZXQgdG8gcmVzdWx0LgorICAgICAqIFRoaXMgZG9lcyBub3QgdXNlIHRoaXMucGF0LCB0aGUgY2xlYW5lZCB1cCBjb3B5IG9mIHRoZSBzdHJpbmcKKyAgICAgKiBwYXNzZWQgdG8gYXBwbHlQYXR0ZXJuKCkuCisgICAgICogQHBhcmFtIGluY2x1ZGVTdHJpbmdzIGlmIGZhbHNlLCBkb2Vzbid0IGluY2x1ZGUgdGhlIHN0cmluZ3MuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFN0cmluZ0J1ZmZlciBfZ2VuZXJhdGVQYXR0ZXJuKFN0cmluZ0J1ZmZlciByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gZXNjYXBlVW5wcmludGFibGUsIGJvb2xlYW4gaW5jbHVkZVN0cmluZ3MpIHsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnWycpOworCisvLyAgICAgIC8vIENoZWNrIGFnYWluc3QgdGhlIHByZWRlZmluZWQgY2F0ZWdvcmllcy4gIFdlIGltcGxpY2l0bHkgYnVpbGQKKy8vICAgICAgLy8gdXAgQUxMIGNhdGVnb3J5IHNldHMgdGhlIGZpcnN0IHRpbWUgdG9QYXR0ZXJuKCkgaXMgY2FsbGVkLgorLy8gICAgICBmb3IgKGludCBjYXQ9MDsgY2F0PENBVEVHT1JZX0NPVU5UOyArK2NhdCkgeworLy8gICAgICAgICAgaWYgKHRoaXMuZXF1YWxzKGdldENhdGVnb3J5U2V0KGNhdCkpKSB7CisvLyAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnOicpOworLy8gICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoQ0FURUdPUllfTkFNRVMuc3Vic3RyaW5nKGNhdCoyLCBjYXQqMisyKSk7CisvLyAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoIjpdIik7CisvLyAgICAgICAgICB9CisvLyAgICAgIH0KKworICAgICAgICBpbnQgY291bnQgPSBnZXRSYW5nZUNvdW50KCk7CisKKyAgICAgICAgLy8gSWYgdGhlIHNldCBjb250YWlucyBhdCBsZWFzdCAyIGludGVydmFscyBhbmQgaW5jbHVkZXMgYm90aAorICAgICAgICAvLyBNSU5fVkFMVUUgYW5kIE1BWF9WQUxVRSwgdGhlbiB0aGUgaW52ZXJzZSByZXByZXNlbnRhdGlvbiB3aWxsCisgICAgICAgIC8vIGJlIG1vcmUgZWNvbm9taWNhbC4KKyAgICAgICAgaWYgKGNvdW50ID4gMSAmJgorICAgICAgICAgICAgZ2V0UmFuZ2VTdGFydCgwKSA9PSBNSU5fVkFMVUUgJiYKKyAgICAgICAgICAgIGdldFJhbmdlRW5kKGNvdW50LTEpID09IE1BWF9WQUxVRSkgeworCisgICAgICAgICAgICAvLyBFbWl0IHRoZSBpbnZlcnNlCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdeJyk7CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIGludCBzdGFydCA9IGdldFJhbmdlRW5kKGktMSkrMTsKKyAgICAgICAgICAgICAgICBpbnQgZW5kID0gZ2V0UmFuZ2VTdGFydChpKS0xOworICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChyZXN1bHQsIHN0YXJ0LCBlc2NhcGVVbnByaW50YWJsZSk7CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0ICE9IGVuZCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKHN0YXJ0KzEpICE9IGVuZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLScpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChyZXN1bHQsIGVuZCwgZXNjYXBlVW5wcmludGFibGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIERlZmF1bHQ7IGVtaXQgdGhlIHJhbmdlcyBhcyBwYWlycworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIGludCBzdGFydCA9IGdldFJhbmdlU3RhcnQoaSk7CisgICAgICAgICAgICAgICAgaW50IGVuZCA9IGdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChyZXN1bHQsIHN0YXJ0LCBlc2NhcGVVbnByaW50YWJsZSk7CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0ICE9IGVuZCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKHN0YXJ0KzEpICE9IGVuZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnLScpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChyZXN1bHQsIGVuZCwgZXNjYXBlVW5wcmludGFibGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpbmNsdWRlU3RyaW5ncyAmJiBzdHJpbmdzLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3RyaW5ncy5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ3snKTsKKyAgICAgICAgICAgICAgICBfYXBwZW5kVG9QYXQocmVzdWx0LCAoU3RyaW5nKSBpdC5uZXh0KCksIGVzY2FwZVVucHJpbnRhYmxlKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCd9Jyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoJ10nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhpcyBzZXQgKGl0cyBjYXJkaW5hbGl0eSkKKyAgICAgKiBOb3RlIHRoYW4gdGhlIGVsZW1lbnRzIG9mIGEgc2V0IG1heSBpbmNsdWRlIGJvdGggaW5kaXZpZHVhbAorICAgICAqIGNvZGVwb2ludHMgYW5kIHN0cmluZ3MuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhpcyBzZXQgKGl0cyBjYXJkaW5hbGl0eSkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBzaXplKCkgeworICAgICAgICBpbnQgbiA9IDA7CisgICAgICAgIGludCBjb3VudCA9IGdldFJhbmdlQ291bnQoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgICBuICs9IGdldFJhbmdlRW5kKGkpIC0gZ2V0UmFuZ2VTdGFydChpKSArIDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG4gKyBzdHJpbmdzLnNpemUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIDx0dD50cnVlPC90dD4gaWYgdGhpcyBzZXQgY29udGFpbnMgbm8gZWxlbWVudHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIDx0dD50cnVlPC90dD4gaWYgdGhpcyBzZXQgY29udGFpbnMgbm8gZWxlbWVudHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpIHsKKyAgICAgICAgcmV0dXJuIGxlbiA9PSAxICYmIHN0cmluZ3Muc2l6ZSgpID09IDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgVW5pY29kZU1hdGNoZXIgQVBJLiAgUmV0dXJucyA8dHQ+dHJ1ZTwvdHQ+IGlmCisgICAgICogdGhpcyBzZXQgY29udGFpbnMgYW55IGNoYXJhY3RlciB3aG9zZSBsb3cgYnl0ZSBpcyB0aGUgZ2l2ZW4KKyAgICAgKiB2YWx1ZS4gIFRoaXMgaXMgdXNlZCBieSA8dHQ+UnVsZUJhc2VkVHJhbnNsaXRlcmF0b3I8L3R0PiBmb3IKKyAgICAgKiBpbmRleGluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBtYXRjaGVzSW5kZXhWYWx1ZShpbnQgdikgeworICAgICAgICAvKiBUaGUgaW5kZXggdmFsdWUgdiwgaW4gdGhlIHJhbmdlIFswLDI1NV0sIGlzIGNvbnRhaW5lZCBpbiB0aGlzIHNldCBpZgorICAgICAgICAgKiBpdCBpcyBjb250YWluZWQgaW4gYW55IHBhaXIgb2YgdGhpcyBzZXQuICBQYWlycyBlaXRoZXIgaGF2ZSB0aGUgaGlnaAorICAgICAgICAgKiBieXRlcyBlcXVhbCwgb3IgdW5lcXVhbC4gIElmIHRoZSBoaWdoIGJ5dGVzIGFyZSBlcXVhbCwgdGhlbiB3ZSBoYXZlCisgICAgICAgICAqIGFheHguLmFheXksIHdoZXJlIGFhIGlzIHRoZSBoaWdoIGJ5dGUuICBUaGVuIHYgaXMgY29udGFpbmVkIGlmIHh4IDw9CisgICAgICAgICAqIHYgPD0geXkuICBJZiB0aGUgaGlnaCBieXRlcyBhcmUgdW5lcXVhbCB3ZSBoYXZlIGFheHguLmJieXksIGJiPmFhLgorICAgICAgICAgKiBUaGVuIHYgaXMgY29udGFpbmVkIGlmIHh4IDw9IHYgfHwgdiA8PSB5eS4gIChUaGlzIGlzIGlkZW50aWNhbCB0byB0aGUKKyAgICAgICAgICogdGltZSB6b25lIG1vbnRoIGNvbnRhaW5tZW50IGxvZ2ljLikKKyAgICAgICAgICovCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxnZXRSYW5nZUNvdW50KCk7ICsraSkgeworICAgICAgICAgICAgaW50IGxvdyA9IGdldFJhbmdlU3RhcnQoaSk7CisgICAgICAgICAgICBpbnQgaGlnaCA9IGdldFJhbmdlRW5kKGkpOworICAgICAgICAgICAgaWYgKChsb3cgJiB+MHhGRikgPT0gKGhpZ2ggJiB+MHhGRikpIHsKKyAgICAgICAgICAgICAgICBpZiAoKGxvdyAmIDB4RkYpIDw9IHYgJiYgdiA8PSAoaGlnaCAmIDB4RkYpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoKGxvdyAmIDB4RkYpIDw9IHYgfHwgdiA8PSAoaGlnaCAmIDB4RkYpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0cmluZ3Muc2l6ZSgpICE9IDApIHsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3RyaW5ncy5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBzID0gKFN0cmluZykgaXQubmV4dCgpOworICAgICAgICAgICAgICAgIC8vaWYgKHMubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIC8vICAgIC8vIEVtcHR5IHN0cmluZ3MgbWF0Y2ggZXZlcnl0aGluZworICAgICAgICAgICAgICAgIC8vICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgICAgIC8vIGFzc2VydChzLmxlbmd0aCgpICE9IDApOyAvLyBXZSBlbmZvcmNlIHRoaXMgZWxzZXdoZXJlCisgICAgICAgICAgICAgICAgaW50IGMgPSBVVEYxNi5jaGFyQXQocywgMCk7CisgICAgICAgICAgICAgICAgaWYgKChjICYgMHhGRikgPT0gdikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudGF0aW9uIG9mIFVuaWNvZGVNYXRjaGVyLm1hdGNoZXMoKS4gIEFsd2F5cyBtYXRjaGVzIHRoZQorICAgICAqIGxvbmdlc3QgcG9zc2libGUgbXVsdGljaGFyIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IG1hdGNoZXMoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50W10gb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaW5jcmVtZW50YWwpIHsKKworICAgICAgICBpZiAob2Zmc2V0WzBdID09IGxpbWl0KSB7CisgICAgICAgICAgICAvLyBTdHJpbmdzLCBpZiBhbnksIGhhdmUgbGVuZ3RoICE9IDAsIHNvIHdlIGRvbid0IHdvcnJ5CisgICAgICAgICAgICAvLyBhYm91dCB0aGVtIGhlcmUuICBJZiB3ZSBldmVyIGFsbG93IHplcm8tbGVuZ3RoIHN0cmluZ3MKKyAgICAgICAgICAgIC8vIHdlIG11Y2ggY2hlY2sgZm9yIHRoZW0gaGVyZS4KKyAgICAgICAgICAgIGlmIChjb250YWlucyhVbmljb2RlTWF0Y2hlci5FVEhFUikpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5jcmVtZW50YWwgPyBVX1BBUlRJQUxfTUFUQ0ggOiBVX01BVENIOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gVV9NSVNNQVRDSDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzdHJpbmdzLnNpemUoKSAhPSAwKSB7IC8vIHRyeSBzdHJpbmdzIGZpcnN0CisKKyAgICAgICAgICAgICAgICAvLyBtaWdodCBzZXBhcmF0ZSBmb3J3YXJkIGFuZCBiYWNrd2FyZCBsb29wcyBsYXRlcgorICAgICAgICAgICAgICAgIC8vIGZvciBub3cgdGhleSBhcmUgY29tYmluZWQKKworICAgICAgICAgICAgICAgIC8vIFRPRE8gSW1wcm92ZSBlZmZpY2llbmN5IG9mIHRoaXMsIGF0IGxlYXN0IGluIHRoZSBmb3J3YXJkCisgICAgICAgICAgICAgICAgLy8gZGlyZWN0aW9uLCBpZiBub3QgaW4gYm90aC4gIEluIHRoZSBmb3J3YXJkIGRpcmVjdGlvbiB3ZQorICAgICAgICAgICAgICAgIC8vIGNhbiBhc3N1bWUgdGhlIHN0cmluZ3MgYXJlIHNvcnRlZC4KKworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3RyaW5ncy5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIGJvb2xlYW4gZm9yd2FyZCA9IG9mZnNldFswXSA8IGxpbWl0OworCisgICAgICAgICAgICAgICAgLy8gZmlyc3RDaGFyIGlzIHRoZSBsZWZ0bW9zdCBjaGFyIHRvIG1hdGNoIGluIHRoZQorICAgICAgICAgICAgICAgIC8vIGZvcndhcmQgZGlyZWN0aW9uIG9yIHRoZSByaWdodG1vc3QgY2hhciB0byBtYXRjaCBpbgorICAgICAgICAgICAgICAgIC8vIHRoZSByZXZlcnNlIGRpcmVjdGlvbi4KKyAgICAgICAgICAgICAgICBjaGFyIGZpcnN0Q2hhciA9IHRleHQuY2hhckF0KG9mZnNldFswXSk7CisKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgc3RyaW5ncyB0aGF0IGNhbiBtYXRjaCB3ZQorICAgICAgICAgICAgICAgIC8vIHJldHVybiB0aGUgbG9uZ2VzdCBtYXRjaC4KKyAgICAgICAgICAgICAgICBpbnQgaGlnaFdhdGVyTGVuZ3RoID0gMDsKKworICAgICAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRyaWFsID0gKFN0cmluZykgaXQubmV4dCgpOworCisgICAgICAgICAgICAgICAgICAgIC8vaWYgKHRyaWFsLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgcmV0dXJuIFVfTUFUQ0g7IC8vIG51bGwtc3RyaW5nIGFsd2F5cyBtYXRjaGVzCisgICAgICAgICAgICAgICAgICAgIC8vfQorICAgICAgICAgICAgICAgICAgICAvLyBhc3NlcnQodHJpYWwubGVuZ3RoKCkgIT0gMCk7IC8vIFdlIGVuc3VyZSB0aGlzIGVsc2V3aGVyZQorCisgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IHRyaWFsLmNoYXJBdChmb3J3YXJkID8gMCA6IHRyaWFsLmxlbmd0aCgpIC0gMSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gU3RyaW5ncyBhcmUgc29ydGVkLCBzbyB3ZSBjYW4gb3B0aW1pemUgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIGZvcndhcmQgZGlyZWN0aW9uLgorICAgICAgICAgICAgICAgICAgICBpZiAoZm9yd2FyZCAmJiBjID4gZmlyc3RDaGFyKSBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gZmlyc3RDaGFyKSBjb250aW51ZTsKKworICAgICAgICAgICAgICAgICAgICBpbnQgbGVuID0gbWF0Y2hSZXN0KHRleHQsIG9mZnNldFswXSwgbGltaXQsIHRyaWFsKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoaW5jcmVtZW50YWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBtYXhMZW4gPSBmb3J3YXJkID8gbGltaXQtb2Zmc2V0WzBdIDogb2Zmc2V0WzBdLWxpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbiA9PSBtYXhMZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIHN1Y2Nlc3NmdWxseSBtYXRjaGVkIGJ1dCBvbmx5IHVwIHRvIGxpbWl0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBVX1BBUlRJQUxfTUFUQ0g7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAobGVuID09IHRyaWFsLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIHN1Y2Nlc3NmdWxseSBtYXRjaGVkIHRoZSB3aG9sZSBzdHJpbmcuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVuID4gaGlnaFdhdGVyTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlnaFdhdGVyTGVuZ3RoID0gbGVuOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gdGhlIGZvcndhcmQgZGlyZWN0aW9uIHdlIGtub3cgc3RyaW5ncworICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXJlIHNvcnRlZCBzbyB3ZSBjYW4gYmFpbCBlYXJseS4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3J3YXJkICYmIGxlbiA8IGhpZ2hXYXRlckxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBXZSd2ZSBjaGVja2VkIGFsbCBzdHJpbmdzIHdpdGhvdXQgYSBwYXJ0aWFsIG1hdGNoLgorICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgZnVsbCBtYXRjaGVzLCByZXR1cm4gdGhlIGxvbmdlc3Qgb25lLgorICAgICAgICAgICAgICAgIGlmIChoaWdoV2F0ZXJMZW5ndGggIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRbMF0gKz0gZm9yd2FyZCA/IGhpZ2hXYXRlckxlbmd0aCA6IC1oaWdoV2F0ZXJMZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBVX01BVENIOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBzdXBlci5tYXRjaGVzKHRleHQsIG9mZnNldCwgbGltaXQsIGluY3JlbWVudGFsKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvbmdlc3QgbWF0Y2ggZm9yIHMgaW4gdGV4dCBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uCisgICAgICogSWYgbGltaXQgPiBzdGFydCB0aGVuIG1hdGNoIGZvcndhcmQgZnJvbSBzdGFydCsxIHRvIGxpbWl0CisgICAgICogbWF0Y2hpbmcgYWxsIGNoYXJhY3RlcnMgZXhjZXB0IHMuY2hhckF0KDApLiAgSWYgbGltaXQgPCBzdGFydCwKKyAgICAgKiBnbyBiYWNrd2FyZCBzdGFydGluZyBmcm9tIHN0YXJ0LTEgbWF0Y2hpbmcgYWxsIGNoYXJhY3RlcnMKKyAgICAgKiBleGNlcHQgcy5jaGFyQXQocy5sZW5ndGgoKS0xKS4gIFRoaXMgbWV0aG9kIGFzc3VtZXMgdGhhdCB0aGUKKyAgICAgKiBmaXJzdCBjaGFyYWN0ZXIsIHRleHQuY2hhckF0KHN0YXJ0KSwgbWF0Y2hlcyBzLCBzbyBpdCBkb2VzIG5vdAorICAgICAqIGNoZWNrIGl0LgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIG1hdGNoCisgICAgICogQHBhcmFtIHN0YXJ0IHRoZSBmaXJzdCBjaGFyYWN0ZXIgdG8gbWF0Y2guICBJbiB0aGUgZm9yd2FyZAorICAgICAqIGRpcmVjdGlvbiwgdGV4dC5jaGFyQXQoc3RhcnQpIGlzIG1hdGNoZWQgYWdhaW5zdCBzLmNoYXJBdCgwKS4KKyAgICAgKiBJbiB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24sIGl0IGlzIG1hdGNoZWQgYWdhaW5zdAorICAgICAqIHMuY2hhckF0KHMubGVuZ3RoKCktMSkuCisgICAgICogQHBhcmFtIGxpbWl0IHRoZSBsaW1pdCBvZmZzZXQgZm9yIG1hdGNoaW5nLCBlaXRoZXIgbGFzdCsxIGluCisgICAgICogdGhlIGZvcndhcmQgZGlyZWN0aW9uLCBvciBsYXN0LTEgaW4gdGhlIHJldmVyc2UgZGlyZWN0aW9uLAorICAgICAqIHdoZXJlIGxhc3QgaXMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IGNoYXJhY3RlciB0byBtYXRjaC4KKyAgICAgKiBAcmV0dXJuIElmIHBhcnQgb2YgcyBtYXRjaGVzIHVwIHRvIHRoZSBsaW1pdCwgcmV0dXJuIHxsaW1pdCAtCisgICAgICogc3RhcnR8LiAgSWYgYWxsIG9mIHMgbWF0Y2hlcyBiZWZvcmUgcmVhY2hpbmcgdGhlIGxpbWl0LCByZXR1cm4KKyAgICAgKiBzLmxlbmd0aCgpLiAgSWYgdGhlcmUgaXMgYSBtaXNtYXRjaCBiZXR3ZWVuIHMgYW5kIHRleHQsIHJldHVybgorICAgICAqIDAKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgbWF0Y2hSZXN0IChSZXBsYWNlYWJsZSB0ZXh0LCBpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IG1heExlbjsKKyAgICAgICAgaW50IHNsZW4gPSBzLmxlbmd0aCgpOworICAgICAgICBpZiAoc3RhcnQgPCBsaW1pdCkgeworICAgICAgICAgICAgbWF4TGVuID0gbGltaXQgLSBzdGFydDsKKyAgICAgICAgICAgIGlmIChtYXhMZW4gPiBzbGVuKSBtYXhMZW4gPSBzbGVuOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBtYXhMZW47ICsraSkgeworICAgICAgICAgICAgICAgIGlmICh0ZXh0LmNoYXJBdChzdGFydCArIGkpICE9IHMuY2hhckF0KGkpKSByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1heExlbiA9IHN0YXJ0IC0gbGltaXQ7CisgICAgICAgICAgICBpZiAobWF4TGVuID4gc2xlbikgbWF4TGVuID0gc2xlbjsKKyAgICAgICAgICAgIC0tc2xlbjsgLy8gPD0+IHNsZW4gPSBzLmxlbmd0aCgpIC0gMTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbWF4TGVuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAodGV4dC5jaGFyQXQoc3RhcnQgLSBpKSAhPSBzLmNoYXJBdChzbGVuIC0gaSkpIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBtYXhMZW47CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBVbmljb2RlTWF0Y2hlciBBUEkuICBVbmlvbiB0aGUgc2V0IG9mIGFsbAorICAgICAqIGNoYXJhY3RlcnMgdGhhdCBtYXkgYmUgbWF0Y2hlZCBieSB0aGlzIG9iamVjdCBpbnRvIHRoZSBnaXZlbgorICAgICAqIHNldC4KKyAgICAgKiBAcGFyYW0gdG9VbmlvblRvIHRoZSBzZXQgaW50byB3aGljaCB0byB1bmlvbiB0aGUgc291cmNlIGNoYXJhY3RlcnMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRNYXRjaFNldFRvKFVuaWNvZGVTZXQgdG9VbmlvblRvKSB7CisgICAgICAgIHRvVW5pb25Uby5hZGRBbGwodGhpcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGdpdmVuIGNoYXJhY3RlciB3aXRoaW4gdGhpcyBzZXQsIHdoZXJlCisgICAgICogdGhlIHNldCBpcyBvcmRlcmVkIGJ5IGFzY2VuZGluZyBjb2RlIHBvaW50LiAgSWYgdGhlIGNoYXJhY3RlcgorICAgICAqIGlzIG5vdCBpbiB0aGlzIHNldCwgcmV0dXJuIC0xLiAgVGhlIGludmVyc2Ugb2YgdGhpcyBtZXRob2QgaXMKKyAgICAgKiA8Y29kZT5jaGFyQXQoKTwvY29kZT4uCisgICAgICogQHJldHVybiBhbiBpbmRleCBmcm9tIDAuLnNpemUoKS0xLCBvciAtMQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaW5kZXhPZihpbnQgYykgeworICAgICAgICBpZiAoYyA8IE1JTl9WQUxVRSB8fCBjID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoYywgNikpOworICAgICAgICB9CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgaW50IG4gPSAwOworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBsaXN0W2krK107CisgICAgICAgICAgICBpZiAoYyA8IHN0YXJ0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGxpbWl0ID0gbGlzdFtpKytdOworICAgICAgICAgICAgaWYgKGMgPCBsaW1pdCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuICsgYyAtIHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgbiArPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY2hhcmFjdGVyIGF0IHRoZSBnaXZlbiBpbmRleCB3aXRoaW4gdGhpcyBzZXQsIHdoZXJlCisgICAgICogdGhlIHNldCBpcyBvcmRlcmVkIGJ5IGFzY2VuZGluZyBjb2RlIHBvaW50LiAgSWYgdGhlIGluZGV4IGlzCisgICAgICogb3V0IG9mIHJhbmdlLCByZXR1cm4gLTEuICBUaGUgaW52ZXJzZSBvZiB0aGlzIG1ldGhvZCBpcworICAgICAqIDxjb2RlPmluZGV4T2YoKTwvY29kZT4uCisgICAgICogQHBhcmFtIGluZGV4IGFuIGluZGV4IGZyb20gMC4uc2l6ZSgpLTEKKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGdpdmVuIGluZGV4LCBvciAtMS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNoYXJBdChpbnQgaW5kZXgpIHsKKyAgICAgICAgaWYgKGluZGV4ID49IDApIHsKKyAgICAgICAgICAgIC8vIGxlbjIgaXMgdGhlIGxhcmdlc3QgZXZlbiBpbnRlZ2VyIDw9IGxlbiwgdGhhdCBpcywgaXQgaXMgbGVuCisgICAgICAgICAgICAvLyBmb3IgZXZlbiB2YWx1ZXMgYW5kIGxlbi0xIGZvciBvZGQgdmFsdWVzLiAgV2l0aCBvZGQgdmFsdWVzCisgICAgICAgICAgICAvLyB0aGUgbGFzdCBlbnRyeSBpcyBVTklDT0RFU0VUX0hJR0guCisgICAgICAgICAgICBpbnQgbGVuMiA9IGxlbiAmIH4xOworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbGVuMjspIHsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBsaXN0W2krK107CisgICAgICAgICAgICAgICAgaW50IGNvdW50ID0gbGlzdFtpKytdIC0gc3RhcnQ7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4IDwgY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0ICsgaW5kZXg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGluZGV4IC09IGNvdW50OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGRzIHRoZSBzcGVjaWZpZWQgcmFuZ2UgdG8gdGhpcyBzZXQgaWYgaXQgaXMgbm90IGFscmVhZHkKKyAgICAgKiBwcmVzZW50LiAgSWYgdGhpcyBzZXQgYWxyZWFkeSBjb250YWlucyB0aGUgc3BlY2lmaWVkIHJhbmdlLAorICAgICAqIHRoZSBjYWxsIGxlYXZlcyB0aGlzIHNldCB1bmNoYW5nZWQuICBJZiA8Y29kZT5lbmQgPiBzdGFydDwvY29kZT4KKyAgICAgKiB0aGVuIGFuIGVtcHR5IHJhbmdlIGlzIGFkZGVkLCBsZWF2aW5nIHRoZSBzZXQgdW5jaGFuZ2VkLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IGZpcnN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiByYW5nZSB0byBiZSBhZGRlZAorICAgICAqIHRvIHRoaXMgc2V0LgorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UgdG8gYmUgYWRkZWQKKyAgICAgKiB0byB0aGlzIHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBhZGQoaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisgICAgICAgIGlmIChzdGFydCA8IE1JTl9WQUxVRSB8fCBzdGFydCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KHN0YXJ0LCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVuZCA8IE1JTl9WQUxVRSB8fCBlbmQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChlbmQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhcnQgPCBlbmQpIHsKKyAgICAgICAgICAgIGFkZChyYW5nZShzdGFydCwgZW5kKSwgMiwgMCk7CisgICAgICAgIH0gZWxzZSBpZiAoc3RhcnQgPT0gZW5kKSB7CisgICAgICAgICAgICBhZGQoc3RhcnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworLy8gICAgLyoqCisvLyAgICAgKiBGb3JtYXQgb3V0IHRoZSBpbnZlcnNpb24gbGlzdCBhcyBhIHN0cmluZywgZm9yIGRlYnVnZ2luZy4gIFVuY29tbWVudCB3aGVuCisvLyAgICAgKiBuZWVkZWQuCisvLyAgICAgKi8KKy8vICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZHVtcCgpIHsKKy8vICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigiWyIpOworLy8gICAgICAgIGZvciAoaW50IGk9MDsgaTxsZW47ICsraSkgeworLy8gICAgICAgICAgICBpZiAoaSAhPSAwKSBidWYuYXBwZW5kKCIsICIpOworLy8gICAgICAgICAgICBpbnQgYyA9IGxpc3RbaV07CisvLyAgICAgICAgICAgIC8vaWYgKGMgPD0gMHg3RiAmJiBjICE9ICdcbicgJiYgYyAhPSAnXHInICYmIGMgIT0gJ1x0JyAmJiBjICE9ICcgJykgeworLy8gICAgICAgICAgICAvLyAgICBidWYuYXBwZW5kKChjaGFyKSBjKTsKKy8vICAgICAgICAgICAgLy99IGVsc2UgeworLy8gICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiVSsiKS5hcHBlbmQoVXRpbGl0eS5oZXgoYywgKGM8MHgxMDAwMCk/NDo2KSk7CisvLyAgICAgICAgICAgIC8vfQorLy8gICAgICAgIH0KKy8vICAgICAgICBidWYuYXBwZW5kKCJdIik7CisvLyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworLy8gICAgfQorCisgICAgLyoqCisgICAgICogQWRkcyB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciB0byB0aGlzIHNldCBpZiBpdCBpcyBub3QgYWxyZWFkeQorICAgICAqIHByZXNlbnQuICBJZiB0aGlzIHNldCBhbHJlYWR5IGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyLAorICAgICAqIHRoZSBjYWxsIGxlYXZlcyB0aGlzIHNldCB1bmNoYW5nZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgYWRkKGludCBjKSB7CisgICAgICAgIGlmIChjIDwgTUlOX1ZBTFVFIHx8IGMgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChjLCA2KSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBmaW5kIHNtYWxsZXN0IGkgc3VjaCB0aGF0IGMgPCBsaXN0W2ldCisgICAgICAgIC8vIGlmIG9kZCwgdGhlbiBpdCBpcyBJTiB0aGUgc2V0CisgICAgICAgIC8vIGlmIGV2ZW4sIHRoZW4gaXQgaXMgT1VUIG9mIHRoZSBzZXQKKyAgICAgICAgaW50IGkgPSBmaW5kQ29kZVBvaW50KGMpOworCisgICAgICAgIC8vIGFscmVhZHkgaW4gc2V0PworICAgICAgICBpZiAoKGkgJiAxKSAhPSAwKSByZXR1cm4gdGhpczsKKworICAgICAgICAvLyBISUdIIGlzIDB4MTEwMDAwCisgICAgICAgIC8vIGFzc2VydChsaXN0W2xlbi0xXSA9PSBISUdIKTsKKworICAgICAgICAvLyBlbXB0eSA9IFtISUdIXQorICAgICAgICAvLyBbc3RhcnRfMCwgbGltaXRfMCwgc3RhcnRfMSwgbGltaXRfMSwgSElHSF0KKworICAgICAgICAvLyBbLi4uLCBzdGFydF9rLTEsIGxpbWl0X2stMSwgc3RhcnRfaywgbGltaXRfaywgLi4uLCBISUdIXQorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFtpXQorCisgICAgICAgIC8vIGkgPT0gMCBtZWFucyBjIGlzIGJlZm9yZSB0aGUgZmlyc3QgcmFuZ2UKKworICAgICAgICBpZiAoYyA9PSBsaXN0W2ldLTEpIHsKKyAgICAgICAgICAgIC8vIGMgaXMgYmVmb3JlIHN0YXJ0IG9mIG5leHQgcmFuZ2UKKyAgICAgICAgICAgIGxpc3RbaV0gPSBjOworICAgICAgICAgICAgLy8gaWYgd2UgdG91Y2hlZCB0aGUgSElHSCBtYXJrLCB0aGVuIGFkZCBhIG5ldyBvbmUKKyAgICAgICAgICAgIGlmIChjID09IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgIGVuc3VyZUNhcGFjaXR5KGxlbisxKTsKKyAgICAgICAgICAgICAgICBsaXN0W2xlbisrXSA9IEhJR0g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaSA+IDAgJiYgYyA9PSBsaXN0W2ktMV0pIHsKKyAgICAgICAgICAgICAgICAvLyBjb2xsYXBzZSBhZGphY2VudCByYW5nZXMKKworICAgICAgICAgICAgICAgIC8vIFsuLi4sIHN0YXJ0X2stMSwgYywgYywgbGltaXRfaywgLi4uLCBISUdIXQorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgbGlzdFtpXQorICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobGlzdCwgaSsxLCBsaXN0LCBpLTEsIGxlbi1pLTEpOworICAgICAgICAgICAgICAgIGxlbiAtPSAyOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZWxzZSBpZiAoaSA+IDAgJiYgYyA9PSBsaXN0W2ktMV0pIHsKKyAgICAgICAgICAgIC8vIGMgaXMgYWZ0ZXIgZW5kIG9mIHByaW9yIHJhbmdlCisgICAgICAgICAgICBsaXN0W2ktMV0rKzsKKyAgICAgICAgICAgIC8vIG5vIG5lZWQgdG8gY2hjZWsgZm9yIGNvbGxhcHNlIGhlcmUKKyAgICAgICAgfQorCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoZSBuZXcgY2hhciBpcyBub3QgYWRqYWNlbnQgdG8KKyAgICAgICAgICAgIC8vIGFueSBleGlzdGluZyByYW5nZXMsIGFuZCBpdCBpcyBub3QgMTBGRkZGLgorCisKKyAgICAgICAgICAgIC8vIFsuLi4sIHN0YXJ0X2stMSwgbGltaXRfay0xLCBzdGFydF9rLCBsaW1pdF9rLCAuLi4sIEhJR0hdCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RbaV0KKworICAgICAgICAgICAgLy8gWy4uLiwgc3RhcnRfay0xLCBsaW1pdF9rLTEsIGMsIGMrMSwgc3RhcnRfaywgbGltaXRfaywgLi4uLCBISUdIXQorICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0W2ldCisKKyAgICAgICAgICAgIC8vIERvbid0IHVzZSBlbnN1cmVDYXBhY2l0eSgpIHRvIHNhdmUgb24gY29weWluZy4KKyAgICAgICAgICAgIC8vIE5PVEU6IFRoaXMgaGFzIG5vIG1lYXN1cmFibGUgaW1wYWN0IG9uIHBlcmZvcm1hbmNlLAorICAgICAgICAgICAgLy8gYnV0IGl0IG1pZ2h0IGhlbHAgaW4gc29tZSB1c2FnZSBwYXR0ZXJucy4KKyAgICAgICAgICAgIGlmIChsZW4rMiA+IGxpc3QubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgaW50W10gdGVtcCA9IG5ldyBpbnRbbGVuICsgMiArIEdST1dfRVhUUkFdOworICAgICAgICAgICAgICAgIGlmIChpICE9IDApIFN5c3RlbS5hcnJheWNvcHkobGlzdCwgMCwgdGVtcCwgMCwgaSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsaXN0LCBpLCB0ZW1wLCBpKzIsIGxlbi1pKTsKKyAgICAgICAgICAgICAgICBsaXN0ID0gdGVtcDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsaXN0LCBpLCBsaXN0LCBpKzIsIGxlbi1pKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGlzdFtpXSA9IGM7CisgICAgICAgICAgICBsaXN0W2krMV0gPSBjKzE7CisgICAgICAgICAgICBsZW4gKz0gMjsKKyAgICAgICAgfQorCisgICAgICAgIHBhdCA9IG51bGw7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgdGhlIHNwZWNpZmllZCBtdWx0aWNoYXJhY3RlciB0byB0aGlzIHNldCBpZiBpdCBpcyBub3QgYWxyZWFkeQorICAgICAqIHByZXNlbnQuICBJZiB0aGlzIHNldCBhbHJlYWR5IGNvbnRhaW5zIHRoZSBtdWx0aWNoYXJhY3RlciwKKyAgICAgKiB0aGUgY2FsbCBsZWF2ZXMgdGhpcyBzZXQgdW5jaGFuZ2VkLgorICAgICAqIFRodXMgImNoIiA9PiB7ImNoIn0KKyAgICAgKiA8YnI+PGI+V2FybmluZzogeW91IGNhbm5vdCBhZGQgYW4gZW1wdHkgc3RyaW5nICgiIikgdG8gYSBVbmljb2RlU2V0LjwvYj4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGFkZChTdHJpbmcgcykgeworCisgICAgICAgIGludCBjcCA9IGdldFNpbmdsZUNQKHMpOworICAgICAgICBpZiAoY3AgPCAwKSB7CisgICAgICAgICAgICBzdHJpbmdzLmFkZChzKTsKKyAgICAgICAgICAgIHBhdCA9IG51bGw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhZGQoY3AsIGNwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIGEgY29kZSBwb2ludCBJRiB0aGUgc3RyaW5nIGNvbnNpc3RzIG9mIGEgc2luZ2xlIG9uZS4KKyAgICAgKiBvdGhlcndpc2UgcmV0dXJucyAtMS4KKyAgICAgKiBAcGFyYW0gc3RyaW5nIHRvIHRlc3QKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0U2luZ2xlQ1AoU3RyaW5nIHMpIHsKKyAgICAgICAgaWYgKHMubGVuZ3RoKCkgPCAxKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDYW4ndCB1c2UgemVyby1sZW5ndGggc3RyaW5ncyBpbiBVbmljb2RlU2V0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHMubGVuZ3RoKCkgPiAyKSByZXR1cm4gLTE7CisgICAgICAgIGlmIChzLmxlbmd0aCgpID09IDEpIHJldHVybiBzLmNoYXJBdCgwKTsKKworICAgICAgICAvLyBhdCB0aGlzIHBvaW50LCBsZW4gPSAyCisgICAgICAgIGludCBjcCA9IFVURjE2LmNoYXJBdChzLCAwKTsKKyAgICAgICAgaWYgKGNwID4gMHhGRkZGKSB7IC8vIGlzIHN1cnJvZ2F0ZSBwYWlyCisgICAgICAgICAgICByZXR1cm4gY3A7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZHMgZWFjaCBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGlzIHN0cmluZyB0byB0aGUgc2V0LiBUaHVzICJjaCIgPT4geyJjIiwgImgifQorICAgICAqIElmIHRoaXMgc2V0IGFscmVhZHkgYW55IHBhcnRpY3VsYXIgY2hhcmFjdGVyLCBpdCBoYXMgbm8gZWZmZWN0IG9uIHRoYXQgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBzIHRoZSBzb3VyY2Ugc3RyaW5nCisgICAgICogQHJldHVybiB0aGlzIG9iamVjdCwgZm9yIGNoYWluaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgYWRkQWxsKFN0cmluZyBzKSB7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHMsIGkpOworICAgICAgICAgICAgYWRkKGNwLCBjcCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0YWlucyBFQUNIIG9mIHRoZSBjaGFyYWN0ZXJzIGluIHRoaXMgc3RyaW5nLiBOb3RlOiAiY2giID09IHsiYyIsICJoIn0KKyAgICAgKiBJZiB0aGlzIHNldCBhbHJlYWR5IGFueSBwYXJ0aWN1bGFyIGNoYXJhY3RlciwgaXQgaGFzIG5vIGVmZmVjdCBvbiB0aGF0IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJldGFpbkFsbChTdHJpbmcgcykgeworICAgICAgICByZXR1cm4gcmV0YWluQWxsKGZyb21BbGwocykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBsZW1lbnQgRUFDSCBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGlzIHN0cmluZy4gTm90ZTogImNoIiA9PSB7ImMiLCAiaCJ9CisgICAgICogSWYgdGhpcyBzZXQgYWxyZWFkeSBhbnkgcGFydGljdWxhciBjaGFyYWN0ZXIsIGl0IGhhcyBubyBlZmZlY3Qgb24gdGhhdCBjaGFyYWN0ZXIuCisgICAgICogQHBhcmFtIHMgdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0LCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBjb21wbGVtZW50QWxsKFN0cmluZyBzKSB7CisgICAgICAgIHJldHVybiBjb21wbGVtZW50QWxsKGZyb21BbGwocykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSBFQUNIIG9mIHRoZSBjaGFyYWN0ZXJzIGluIHRoaXMgc3RyaW5nLiBOb3RlOiAiY2giID09IHsiYyIsICJoIn0KKyAgICAgKiBJZiB0aGlzIHNldCBhbHJlYWR5IGFueSBwYXJ0aWN1bGFyIGNoYXJhY3RlciwgaXQgaGFzIG5vIGVmZmVjdCBvbiB0aGF0IGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJlbW92ZUFsbChTdHJpbmcgcykgeworICAgICAgICByZXR1cm4gcmVtb3ZlQWxsKGZyb21BbGwocykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2VzIGEgc2V0IGZyb20gYSBtdWx0aWNoYXJhY3RlciBzdHJpbmcuIFRodXMgImNoIiA9PiB7ImNoIn0KKyAgICAgKiA8YnI+PGI+V2FybmluZzogeW91IGNhbm5vdCBhZGQgYW4gZW1wdHkgc3RyaW5nICgiIikgdG8gYSBVbmljb2RlU2V0LjwvYj4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gYSBuZXdseSBjcmVhdGVkIHNldCBjb250YWluaW5nIHRoZSBnaXZlbiBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVuaWNvZGVTZXQgZnJvbShTdHJpbmcgcykgeworICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVTZXQoKS5hZGQocyk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBNYWtlcyBhIHNldCBmcm9tIGVhY2ggb2YgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZy4gVGh1cyAiY2giID0+IHsiYyIsICJoIn0KKyAgICAgKiBAcGFyYW0gcyB0aGUgc291cmNlIHN0cmluZworICAgICAqIEByZXR1cm4gYSBuZXdseSBjcmVhdGVkIHNldCBjb250YWluaW5nIHRoZSBnaXZlbiBjaGFyYWN0ZXJzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVbmljb2RlU2V0IGZyb21BbGwoU3RyaW5nIHMpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBVbmljb2RlU2V0KCkuYWRkQWxsKHMpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0YWluIG9ubHkgdGhlIGVsZW1lbnRzIGluIHRoaXMgc2V0IHRoYXQgYXJlIGNvbnRhaW5lZCBpbiB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcmFuZ2UuICBJZiA8Y29kZT5lbmQgPiBzdGFydDwvY29kZT4gdGhlbiBhbiBlbXB0eSByYW5nZSBpcworICAgICAqIHJldGFpbmVkLCBsZWF2aW5nIHRoZSBzZXQgZW1wdHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHJhbmdlIHRvIGJlIHJldGFpbmVkCisgICAgICogdG8gdGhpcyBzZXQuCisgICAgICogQHBhcmFtIGVuZCBsYXN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiByYW5nZSB0byBiZSByZXRhaW5lZAorICAgICAqIHRvIHRoaXMgc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IHJldGFpbihpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgaWYgKHN0YXJ0IDwgTUlOX1ZBTFVFIHx8IHN0YXJ0ID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoc3RhcnQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW5kIDwgTUlOX1ZBTFVFIHx8IGVuZCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KGVuZCwgNikpOworICAgICAgICB9CisgICAgICAgIGlmIChzdGFydCA8PSBlbmQpIHsKKyAgICAgICAgICAgIHJldGFpbihyYW5nZShzdGFydCwgZW5kKSwgMiwgMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjbGVhcigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldGFpbiB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciBmcm9tIHRoaXMgc2V0IGlmIGl0IGlzIHByZXNlbnQuCisgICAgICogVXBvbiByZXR1cm4gdGhpcyBzZXQgd2lsbCBiZSBlbXB0eSBpZiBpdCBkaWQgbm90IGNvbnRhaW4gYywgb3IKKyAgICAgKiB3aWxsIG9ubHkgY29udGFpbiBjIGlmIGl0IGRpZCBjb250YWluIGMuCisgICAgICogQHBhcmFtIGMgdGhlIGNoYXJhY3RlciB0byBiZSByZXRhaW5lZAorICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJldGFpbihpbnQgYykgeworICAgICAgICByZXR1cm4gcmV0YWluKGMsIGMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldGFpbiB0aGUgc3BlY2lmaWVkIHN0cmluZyBpbiB0aGlzIHNldCBpZiBpdCBpcyBwcmVzZW50LgorICAgICAqIFVwb24gcmV0dXJuIHRoaXMgc2V0IHdpbGwgYmUgZW1wdHkgaWYgaXQgZGlkIG5vdCBjb250YWluIHMsIG9yCisgICAgICogd2lsbCBvbmx5IGNvbnRhaW4gcyBpZiBpdCBkaWQgY29udGFpbiBzLgorICAgICAqIEBwYXJhbSBzIHRoZSBzdHJpbmcgdG8gYmUgcmV0YWluZWQKKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0LCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCByZXRhaW4oU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGNwID0gZ2V0U2luZ2xlQ1Aocyk7CisgICAgICAgIGlmIChjcCA8IDApIHsKKyAgICAgICAgICAgIGJvb2xlYW4gaXNJbiA9IHN0cmluZ3MuY29udGFpbnMocyk7CisgICAgICAgICAgICBpZiAoaXNJbiAmJiBzaXplKCkgPT0gMSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2xlYXIoKTsKKyAgICAgICAgICAgIHN0cmluZ3MuYWRkKHMpOworICAgICAgICAgICAgcGF0ID0gbnVsbDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldGFpbihjcCwgY3ApOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgdGhlIHNwZWNpZmllZCByYW5nZSBmcm9tIHRoaXMgc2V0IGlmIGl0IGlzIHByZXNlbnQuCisgICAgICogVGhlIHNldCB3aWxsIG5vdCBjb250YWluIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb25jZSB0aGUgY2FsbAorICAgICAqIHJldHVybnMuICBJZiA8Y29kZT5lbmQgPiBzdGFydDwvY29kZT4gdGhlbiBhbiBlbXB0eSByYW5nZSBpcworICAgICAqIHJlbW92ZWQsIGxlYXZpbmcgdGhlIHNldCB1bmNoYW5nZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHJhbmdlIHRvIGJlIHJlbW92ZWQKKyAgICAgKiBmcm9tIHRoaXMgc2V0LgorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UgdG8gYmUgcmVtb3ZlZAorICAgICAqIGZyb20gdGhpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgcmVtb3ZlKGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBpZiAoc3RhcnQgPCBNSU5fVkFMVUUgfHwgc3RhcnQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChzdGFydCwgNikpOworICAgICAgICB9CisgICAgICAgIGlmIChlbmQgPCBNSU5fVkFMVUUgfHwgZW5kID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoZW5kLCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXJ0IDw9IGVuZCkgeworICAgICAgICAgICAgcmV0YWluKHJhbmdlKHN0YXJ0LCBlbmQpLCAyLCAyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmVzIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyIGZyb20gdGhpcyBzZXQgaWYgaXQgaXMgcHJlc2VudC4KKyAgICAgKiBUaGUgc2V0IHdpbGwgbm90IGNvbnRhaW4gdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgb25jZSB0aGUgY2FsbAorICAgICAqIHJldHVybnMuCisgICAgICogQHBhcmFtIGMgdGhlIGNoYXJhY3RlciB0byBiZSByZW1vdmVkCisgICAgICogQHJldHVybiB0aGlzIG9iamVjdCwgZm9yIGNoYWluaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVuaWNvZGVTZXQgcmVtb3ZlKGludCBjKSB7CisgICAgICAgIHJldHVybiByZW1vdmUoYywgYyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlcyB0aGUgc3BlY2lmaWVkIHN0cmluZyBmcm9tIHRoaXMgc2V0IGlmIGl0IGlzIHByZXNlbnQuCisgICAgICogVGhlIHNldCB3aWxsIG5vdCBjb250YWluIHRoZSBzcGVjaWZpZWQgc3RyaW5nIG9uY2UgdGhlIGNhbGwKKyAgICAgKiByZXR1cm5zLgorICAgICAqIEBwYXJhbSBzIHRoZSBzdHJpbmcgdG8gYmUgcmVtb3ZlZAorICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QsIGZvciBjaGFpbmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IHJlbW92ZShTdHJpbmcgcykgeworICAgICAgICBpbnQgY3AgPSBnZXRTaW5nbGVDUChzKTsKKyAgICAgICAgaWYgKGNwIDwgMCkgeworICAgICAgICAgICAgc3RyaW5ncy5yZW1vdmUocyk7CisgICAgICAgICAgICBwYXQgPSBudWxsOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVtb3ZlKGNwLCBjcCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGxlbWVudHMgdGhlIHNwZWNpZmllZCByYW5nZSBpbiB0aGlzIHNldC4gIEFueSBjaGFyYWN0ZXIgaW4KKyAgICAgKiB0aGUgcmFuZ2Ugd2lsbCBiZSByZW1vdmVkIGlmIGl0IGlzIGluIHRoaXMgc2V0LCBvciB3aWxsIGJlCisgICAgICogYWRkZWQgaWYgaXQgaXMgbm90IGluIHRoaXMgc2V0LiAgSWYgPGNvZGU+ZW5kID4gc3RhcnQ8L2NvZGU+CisgICAgICogdGhlbiBhbiBlbXB0eSByYW5nZSBpcyBjb21wbGVtZW50ZWQsIGxlYXZpbmcgdGhlIHNldCB1bmNoYW5nZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHJhbmdlIHRvIGJlIHJlbW92ZWQKKyAgICAgKiBmcm9tIHRoaXMgc2V0LgorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgcmFuZ2UgdG8gYmUgcmVtb3ZlZAorICAgICAqIGZyb20gdGhpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgY29tcGxlbWVudChpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgaWYgKHN0YXJ0IDwgTUlOX1ZBTFVFIHx8IHN0YXJ0ID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoc3RhcnQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW5kIDwgTUlOX1ZBTFVFIHx8IGVuZCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KGVuZCwgNikpOworICAgICAgICB9CisgICAgICAgIGlmIChzdGFydCA8PSBlbmQpIHsKKyAgICAgICAgICAgIHhvcihyYW5nZShzdGFydCwgZW5kKSwgMiwgMCk7CisgICAgICAgIH0KKyAgICAgICAgcGF0ID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGxlbWVudHMgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgaW4gdGhpcyBzZXQuICBUaGUgY2hhcmFjdGVyCisgICAgICogd2lsbCBiZSByZW1vdmVkIGlmIGl0IGlzIGluIHRoaXMgc2V0LCBvciB3aWxsIGJlIGFkZGVkIGlmIGl0IGlzCisgICAgICogbm90IGluIHRoaXMgc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVbmljb2RlU2V0IGNvbXBsZW1lbnQoaW50IGMpIHsKKyAgICAgICAgcmV0dXJuIGNvbXBsZW1lbnQoYywgYyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBpcyBlcXVpdmFsZW50IHRvCisgICAgICogPGNvZGU+Y29tcGxlbWVudChNSU5fVkFMVUUsIE1BWF9WQUxVRSk8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGNvbXBsZW1lbnQoKSB7CisgICAgICAgIGlmIChsaXN0WzBdID09IExPVykgeworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShsaXN0LCAxLCBsaXN0LCAwLCBsZW4tMSk7CisgICAgICAgICAgICAtLWxlbjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVuc3VyZUNhcGFjaXR5KGxlbisxKTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobGlzdCwgMCwgbGlzdCwgMSwgbGVuKTsKKyAgICAgICAgICAgIGxpc3RbMF0gPSBMT1c7CisgICAgICAgICAgICArK2xlbjsKKyAgICAgICAgfQorICAgICAgICBwYXQgPSBudWxsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wbGVtZW50IHRoZSBzcGVjaWZpZWQgc3RyaW5nIGluIHRoaXMgc2V0LgorICAgICAqIFRoZSBzZXQgd2lsbCBub3QgY29udGFpbiB0aGUgc3BlY2lmaWVkIHN0cmluZyBvbmNlIHRoZSBjYWxsCisgICAgICogcmV0dXJucy4KKyAgICAgKiA8YnI+PGI+V2FybmluZzogeW91IGNhbm5vdCBhZGQgYW4gZW1wdHkgc3RyaW5nICgiIikgdG8gYSBVbmljb2RlU2V0LjwvYj4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc3RyaW5nIHRvIGNvbXBsZW1lbnQKKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0LCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgVW5pY29kZVNldCBjb21wbGVtZW50KFN0cmluZyBzKSB7CisgICAgICAgIGludCBjcCA9IGdldFNpbmdsZUNQKHMpOworICAgICAgICBpZiAoY3AgPCAwKSB7CisgICAgICAgICAgICBpZiAoc3RyaW5ncy5jb250YWlucyhzKSkgc3RyaW5ncy5yZW1vdmUocyk7CisgICAgICAgICAgICBlbHNlIHN0cmluZ3MuYWRkKHMpOworICAgICAgICAgICAgcGF0ID0gbnVsbDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNvbXBsZW1lbnQoY3AsIGNwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgdGhlIGdpdmVuIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gYyBjaGFyYWN0ZXIgdG8gYmUgY2hlY2tlZCBmb3IgY29udGFpbm1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgY29uZGl0aW9uIGlzIG1ldAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBjKSB7CisgICAgICAgIGlmIChjIDwgTUlOX1ZBTFVFIHx8IGMgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChjLCA2KSk7CisgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAvLyBTZXQgaSB0byB0aGUgaW5kZXggb2YgdGhlIHN0YXJ0IGl0ZW0gZ3JlYXRlciB0aGFuIGNoCisgICAgICAgIC8vIFdlIGtub3cgd2Ugd2lsbCB0ZXJtaW5hdGUgd2l0aG91dCBsZW5ndGggdGVzdCEKKyAgICAgICAgaW50IGkgPSAtMTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmIChjIDwgbGlzdFsrK2ldKSBicmVhazsKKyAgICAgICAgfQorICAgICAgICAqLworCisgICAgICAgIGludCBpID0gZmluZENvZGVQb2ludChjKTsKKworICAgICAgICByZXR1cm4gKChpICYgMSkgIT0gMCk7IC8vIHJldHVybiB0cnVlIGlmIG9kZAorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNtYWxsZXN0IHZhbHVlIGkgc3VjaCB0aGF0IGMgPCBsaXN0W2ldLiAgQ2FsbGVyCisgICAgICogbXVzdCBlbnN1cmUgdGhhdCBjIGlzIGEgbGVnYWwgdmFsdWUgb3IgdGhpcyBtZXRob2Qgd2lsbCBlbnRlcgorICAgICAqIGFuIGluZmluaXRlIGxvb3AuICBUaGlzIG1ldGhvZCBwZXJmb3JtcyBhIGJpbmFyeSBzZWFyY2guCisgICAgICogQHBhcmFtIGMgYSBjaGFyYWN0ZXIgaW4gdGhlIHJhbmdlIE1JTl9WQUxVRS4uTUFYX1ZBTFVFCisgICAgICogaW5jbHVzaXZlCisgICAgICogQHJldHVybiB0aGUgc21hbGxlc3QgaW50ZWdlciBpIGluIHRoZSByYW5nZSAwLi5sZW4tMSwKKyAgICAgKiBpbmNsdXNpdmUsIHN1Y2ggdGhhdCBjIDwgbGlzdFtpXQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IGZpbmRDb2RlUG9pbnQoaW50IGMpIHsKKyAgICAgICAgLyogRXhhbXBsZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZENvZGVQb2ludChjKQorICAgICAgICAgICBzZXQgICAgICAgICAgICAgIGxpc3RbXSAgICAgICAgIGM9MCAxIDMgNCA3IDgKKyAgICAgICAgICAgPT09ICAgICAgICAgICAgICA9PT09PT09PT09PT09PSAgID09PT09PT09PT09CisgICAgICAgICAgIFtdICAgICAgICAgICAgICAgWzExMDAwMF0gICAgICAgICAwIDAgMCAwIDAgMAorICAgICAgICAgICBbXHUwMDAwLVx1MDAwM10gIFswLCA0LCAxMTAwMDBdICAgMSAxIDEgMiAyIDIKKyAgICAgICAgICAgW1x1MDAwNC1cdTAwMDddICBbNCwgOCwgMTEwMDAwXSAgIDAgMCAwIDEgMSAyCisgICAgICAgICAgIFs6YWxsOl0gICAgICAgICAgWzAsIDExMDAwMF0gICAgICAxIDEgMSAxIDEgMQorICAgICAgICAgKi8KKworICAgICAgICAvLyBSZXR1cm4gdGhlIHNtYWxsZXN0IGkgc3VjaCB0aGF0IGMgPCBsaXN0W2ldLiAgQXNzdW1lCisgICAgICAgIC8vIGxpc3RbbGVuIC0gMV0gPT0gSElHSCBhbmQgdGhhdCBjIGlzIGxlZ2FsICgwLi5ISUdILTEpLgorICAgICAgICBpZiAoYyA8IGxpc3RbMF0pIHJldHVybiAwOworICAgICAgICAvLyBIaWdoIHJ1bm5lciB0ZXN0LiAgYyBpcyBvZnRlbiBhZnRlciB0aGUgbGFzdCByYW5nZSwgc28gYW4KKyAgICAgICAgLy8gaW5pdGlhbCBjaGVjayBmb3IgdGhpcyBjb25kaXRpb24gcGF5cyBvZmYuCisgICAgICAgIGlmIChsZW4gPj0gMiAmJiBjID49IGxpc3RbbGVuLTJdKSByZXR1cm4gbGVuLTE7CisgICAgICAgIGludCBsbyA9IDA7CisgICAgICAgIGludCBoaSA9IGxlbiAtIDE7CisgICAgICAgIC8vIGludmFyaWFudDogYyA+PSBsaXN0W2xvXQorICAgICAgICAvLyBpbnZhcmlhbnQ6IGMgPCBsaXN0W2hpXQorICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBpbnQgaSA9IChsbyArIGhpKSA+Pj4gMTsKKyAgICAgICAgICAgIGlmIChpID09IGxvKSByZXR1cm4gaGk7CisgICAgICAgICAgICBpZiAoYyA8IGxpc3RbaV0pIHsKKyAgICAgICAgICAgICAgICBoaSA9IGk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvID0gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworLy8gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAvLyBVbnJvbGxlZCBiaW5hcnkgc2VhcmNoCisvLyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgICBwcml2YXRlIGludCB2YWxpZExlbiA9IC0xOyAvLyB2YWxpZGF0ZWQgdmFsdWUgb2YgbGVuCisvLyAgICBwcml2YXRlIGludCB0b3BPZkxvdzsKKy8vICAgIHByaXZhdGUgaW50IHRvcE9mSGlnaDsKKy8vICAgIHByaXZhdGUgaW50IHBvd2VyOworLy8gICAgcHJpdmF0ZSBpbnQgZGVsdGFTdGFydDsKKy8vCisvLyAgICBwcml2YXRlIHZvaWQgdmFsaWRhdGUoKSB7CisvLyAgICAgICAgaWYgKGxlbiA8PSAxKSB7CisvLyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImxpc3QubGVuPT0iICsgbGVuICsgIjsgbXVzdCBiZSA+MSIpOworLy8gICAgICAgIH0KKy8vCisvLyAgICAgICAgLy8gZmluZCBncmVhdGVzdCBwb3dlciBvZiAyIGxlc3MgdGhhbiBvciBlcXVhbCB0byBsZW4KKy8vICAgICAgICBmb3IgKHBvd2VyID0gZXhwMi5sZW5ndGgtMTsgcG93ZXIgPiAwICYmIGV4cDJbcG93ZXJdID4gbGVuOyBwb3dlci0tKSB7fQorLy8KKy8vICAgICAgICAvLyBhc3NlcnQoZXhwMltwb3dlcl0gPD0gbGVuKTsKKy8vCisvLyAgICAgICAgLy8gZGV0ZXJtaW5lIHRoZSBzdGFydGluZyBwb2ludHMKKy8vICAgICAgICB0b3BPZkxvdyA9IGV4cDJbcG93ZXJdIC0gMTsKKy8vICAgICAgICB0b3BPZkhpZ2ggPSBsZW4gLSAxOworLy8gICAgICAgIGRlbHRhU3RhcnQgPSBleHAyW3Bvd2VyLTFdOworLy8gICAgICAgIHZhbGlkTGVuID0gbGVuOworLy8gICAgfQorLy8KKy8vICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBleHAyW10gPSB7CisvLyAgICAgICAgMHgxLCAweDIsIDB4NCwgMHg4LAorLy8gICAgICAgIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsCisvLyAgICAgICAgMHgxMDAsIDB4MjAwLCAweDQwMCwgMHg4MDAsCisvLyAgICAgICAgMHgxMDAwLCAweDIwMDAsIDB4NDAwMCwgMHg4MDAwLAorLy8gICAgICAgIDB4MTAwMDAsIDB4MjAwMDAsIDB4NDAwMDAsIDB4ODAwMDAsCisvLyAgICAgICAgMHgxMDAwMDAsIDB4MjAwMDAwLCAweDQwMDAwMCwgMHg4MDAwMDAsCisvLyAgICAgICAgMHgxMDAwMDAwLCAweDIwMDAwMDAsIDB4NDAwMDAwMCwgMHg4MDAwMDAwLAorLy8gICAgICAgIDB4MTAwMDAwMDAsIDB4MjAwMDAwMDAgLy8gLCAweDQwMDAwMDAwIC8vIG5vIHVuc2lnbmVkIGludCBpbiBKYXZhCisvLyAgICB9OworLy8KKy8vICAgIC8qKgorLy8gICAgICogVW5yb2xsZWQgbG93ZXN0IGluZGV4IEdULgorLy8gICAgICovCisvLyAgICBwcml2YXRlIGZpbmFsIGludCBsZWFzdEluZGV4R1QoaW50IHNlYXJjaFZhbHVlKSB7CisvLworLy8gICAgICAgIGlmIChsZW4gIT0gdmFsaWRMZW4pIHsKKy8vICAgICAgICAgICAgaWYgKGxlbiA9PSAxKSByZXR1cm4gMDsKKy8vICAgICAgICAgICAgdmFsaWRhdGUoKTsKKy8vICAgICAgICB9CisvLyAgICAgICAgaW50IHRlbXA7CisvLworLy8gICAgICAgIC8vIHNldCB1cCBpbml0aWFsIHJhbmdlIHRvIHNlYXJjaC4gRWFjaCBzdWJyYW5nZSBpcyBhIHBvd2VyIG9mIHR3byBpbiBsZW5ndGgKKy8vICAgICAgICBpbnQgaGlnaCA9IHNlYXJjaFZhbHVlIDwgbGlzdFt0b3BPZkxvd10gPyB0b3BPZkxvdyA6IHRvcE9mSGlnaDsKKy8vCisvLyAgICAgICAgLy8gQ29tcGxldGVseSB1bnJvbGxlZCBiaW5hcnkgc2VhcmNoLCBmb2xoaWdoaW5nICJQcm9ncmFtbWluZyBQZWFybHMiCisvLyAgICAgICAgLy8gRWFjaCBjYXNlIGRlbGliZXJhdGVseSBmYWxscyB0aHJvdWdoIHRvIHRoZSBuZXh0CisvLyAgICAgICAgLy8gTG9naWNhbGx5LCBsaXN0Wy0xXSA8IGFsbF9zZWFyY2hfdmFsdWVzICYmIGxpc3RbY291bnRdID4gYWxsX3NlYXJjaF92YWx1ZXMKKy8vICAgICAgICAvLyBhbHRob3VnaCB0aGUgdmFsdWVzIC0xIGFuZCBjb3VudCBhcmUgbmV2ZXIgYWN0dWFsbHkgdG91Y2hlZC4KKy8vCisvLyAgICAgICAgLy8gVGhlIGJvdW5kcyBhdCBlYWNoIHBvaW50IGFyZSBsb3cgJiBoaWdoLAorLy8gICAgICAgIC8vIHdoZXJlIGxvdyA9PSBoaWdoIC0gZGVsdGEqMgorLy8gICAgICAgIC8vIHNvIGhpZ2ggLSBkZWx0YSBpcyB0aGUgbWlkcG9pbnQKKy8vCisvLyAgICAgICAgLy8gVGhlIGludmFyaWFudCBBRlRFUiBlYWNoIGxpbmUgaXMgdGhhdCBsaXN0W2xvd10gPCBzZWFyY2hWYWx1ZSA8PSBsaXN0W2hpZ2hdCisvLworLy8gICAgICAgIHN3aXRjaCAocG93ZXIpIHsKKy8vICAgICAgICAvL2Nhc2UgMzE6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtMHg0MDAwMDAwMF0pIGhpZ2ggPSB0ZW1wOyAvLyBubyB1bnNpZ25lZCBpbnQgaW4gSmF2YQorLy8gICAgICAgIGNhc2UgMzA6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtMHgyMDAwMDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgMjk6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtMHgxMDAwMDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8KKy8vICAgICAgICBjYXNlIDI4OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAweDgwMDAwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDI3OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAweDQwMDAwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDI2OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAweDIwMDAwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDI1OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAweDEwMDAwMDBdKSBoaWdoID0gdGVtcDsKKy8vCisvLyAgICAgICAgY2FzZSAyNDogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gIDB4ODAwMDAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAyMzogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gIDB4NDAwMDAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAyMjogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gIDB4MjAwMDAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAyMTogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gIDB4MTAwMDAwXSkgaGlnaCA9IHRlbXA7CisvLworLy8gICAgICAgIGNhc2UgMjA6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgMHg4MDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgMTk6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgMHg0MDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgMTg6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgMHgyMDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgMTc6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgMHgxMDAwMF0pIGhpZ2ggPSB0ZW1wOworLy8KKy8vICAgICAgICBjYXNlIDE2OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAweDgwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDE1OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAweDQwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDE0OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAweDIwMDBdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlIDEzOiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAweDEwMDBdKSBoaWdoID0gdGVtcDsKKy8vCisvLyAgICAgICAgY2FzZSAxMjogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAgIDB4ODAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAxMTogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAgIDB4NDAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAxMDogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAgIDB4MjAwXSkgaGlnaCA9IHRlbXA7CisvLyAgICAgICAgY2FzZSAgOTogaWYgKHNlYXJjaFZhbHVlIDwgbGlzdFt0ZW1wID0gaGlnaC0gICAgIDB4MTAwXSkgaGlnaCA9IHRlbXA7CisvLworLy8gICAgICAgIGNhc2UgIDg6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgICAgMHg4MF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgIDc6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgICAgMHg0MF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgIDY6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgICAgMHgyMF0pIGhpZ2ggPSB0ZW1wOworLy8gICAgICAgIGNhc2UgIDU6IGlmIChzZWFyY2hWYWx1ZSA8IGxpc3RbdGVtcCA9IGhpZ2gtICAgICAgMHgxMF0pIGhpZ2ggPSB0ZW1wOworLy8KKy8vICAgICAgICBjYXNlICA0OiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAgICAweDhdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlICAzOiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAgICAweDRdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlICAyOiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAgICAweDJdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICBjYXNlICAxOiBpZiAoc2VhcmNoVmFsdWUgPCBsaXN0W3RlbXAgPSBoaWdoLSAgICAgICAweDFdKSBoaWdoID0gdGVtcDsKKy8vICAgICAgICB9CisvLworLy8gICAgICAgIHJldHVybiBoaWdoOworLy8gICAgfQorLy8KKy8vICAgIC8vIEZvciBkZWJ1Z2dpbmcgb25seQorLy8gICAgcHVibGljIGludCBsZW4oKSB7CisvLyAgICAgICAgcmV0dXJuIGxlbjsKKy8vICAgIH0KKy8vCisvLyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIGV2ZXJ5IGNoYXJhY3RlcgorICAgICAqIG9mIHRoZSBnaXZlbiByYW5nZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgdGhlIHJhbmdlCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0ZXN0IGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgc3RhcnQsIGludCBlbmQpIHsKKyAgICAgICAgaWYgKHN0YXJ0IDwgTUlOX1ZBTFVFIHx8IHN0YXJ0ID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoc3RhcnQsIDYpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW5kIDwgTUlOX1ZBTFVFIHx8IGVuZCA+IE1BWF9WQUxVRSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjb2RlIHBvaW50IFUrIiArIFV0aWxpdHkuaGV4KGVuZCwgNikpOworICAgICAgICB9CisgICAgICAgIC8vaW50IGkgPSAtMTsKKyAgICAgICAgLy93aGlsZSAodHJ1ZSkgeworICAgICAgICAvLyAgICBpZiAoc3RhcnQgPCBsaXN0WysraV0pIGJyZWFrOworICAgICAgICAvL30KKyAgICAgICAgaW50IGkgPSBmaW5kQ29kZVBvaW50KHN0YXJ0KTsKKyAgICAgICAgcmV0dXJuICgoaSAmIDEpICE9IDAgJiYgZW5kIDwgbGlzdFtpXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyA8dHQ+dHJ1ZTwvdHQ+IGlmIHRoaXMgc2V0IGNvbnRhaW5zIHRoZSBnaXZlbgorICAgICAqIG11bHRpY2hhcmFjdGVyIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gcyBzdHJpbmcgdG8gYmUgY2hlY2tlZCBmb3IgY29udGFpbm1lbnQKKyAgICAgKiBAcmV0dXJuIDx0dD50cnVlPC90dD4gaWYgdGhpcyBzZXQgY29udGFpbnMgdGhlIHNwZWNpZmllZCBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBjb250YWlucyhTdHJpbmcgcykgeworCisgICAgICAgIGludCBjcCA9IGdldFNpbmdsZUNQKHMpOworICAgICAgICBpZiAoY3AgPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gc3RyaW5ncy5jb250YWlucyhzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBjb250YWlucyhjcCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgYWxsIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHJpbmdzCisgICAgICogb2YgdGhlIGdpdmVuIHNldC4KKyAgICAgKiBAcGFyYW0gYyBzZXQgdG8gYmUgY2hlY2tlZCBmb3IgY29udGFpbm1lbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHRlc3QgY29uZGl0aW9uIGlzIG1ldAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zQWxsKFVuaWNvZGVTZXQgYykgeworICAgICAgICAvLyBUaGUgc3BlY2lmaWVkIHNldCBpcyBhIHN1YnNldCBpZiBhbGwgb2YgaXRzIHBhaXJzIGFyZSBjb250YWluZWQgaW4KKyAgICAgICAgLy8gdGhpcyBzZXQuICBJdCdzIHBvc3NpYmxlIHRvIGNvZGUgdGhpcyBtb3JlIGVmZmljaWVudGx5IGluIHRlcm1zIG9mCisgICAgICAgIC8vIGRpcmVjdCBtYW5pcHVsYXRpb24gb2YgdGhlIGludmVyc2lvbiBsaXN0cyBpZiB0aGUgbmVlZCBhcmlzZXMuCisgICAgICAgIGludCBuID0gYy5nZXRSYW5nZUNvdW50KCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghY29udGFpbnMoYy5nZXRSYW5nZVN0YXJ0KGkpLCBjLmdldFJhbmdlRW5kKGkpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIXN0cmluZ3MuY29udGFpbnNBbGwoYy5zdHJpbmdzKSkgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgYSBwYXJ0aXRpb24gb2YgdGhlIHN0cmluZyBzdWNoIHRoYXQgdGhpcyBzZXQgY29udGFpbnMgZWFjaCBvZiB0aGUgcGFydGl0aW9uZWQgc3RyaW5ncy4KKyAgICAgKiBGb3IgZXhhbXBsZSwgZm9yIHRoZSBVbmljb2RlIHNldCBbYXtiY317Y2R9XTxicj4KKyAgICAgKiBjb250YWluc0FsbCBpcyB0cnVlIGZvciBlYWNoIG9mOiAiYSIsICJiYyIsICIiY2RiY2EiPGJyPgorICAgICAqIGNvbnRhaW5zQWxsIGlzIGZhbHNlIGZvciBlYWNoIG9mOiAiYWNiIiwgImJjZGEiLCAiYmN4Ijxicj4KKyAgICAgKiBAcGFyYW0gcyBzdHJpbmcgY29udGFpbmluZyBjaGFyYWN0ZXJzIHRvIGJlIGNoZWNrZWQgZm9yIGNvbnRhaW5tZW50CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0ZXN0IGNvbmRpdGlvbiBpcyBtZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNBbGwoU3RyaW5nIHMpIHsKKyAgICAgICAgaW50IGNwOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNwKSkgeworICAgICAgICAgICAgY3AgPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgICAgICBpZiAoIWNvbnRhaW5zKGNwKSkgIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RyaW5ncy5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBjb250YWluc0FsbChzLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWN1cnNpdmUgcm91dGluZSBjYWxsZWQgaWYgd2UgZmFpbCB0byBmaW5kIGEgbWF0Y2ggaW4gY29udGFpbnNBbGwsIGFuZCB0aGVyZSBhcmUgc3RyaW5ncworICAgICAqIEBwYXJhbSBzIHNvdXJjZSBzdHJpbmcKKyAgICAgKiBAcGFyYW0gaSBwb2ludCB0byBtYXRjaCB0byB0aGUgZW5kIG9uCisgICAgICogQHJldHVybiB0cnVlIGlmIG9rCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGNvbnRhaW5zQWxsKFN0cmluZyBzLCBpbnQgaSkgeworICAgICAgICBpZiAoaSA+PSBzLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpbnQgIGNwPSBVVEYxNi5jaGFyQXQocywgaSk7CisgICAgICAgIGlmIChjb250YWlucyhjcCkgJiYgY29udGFpbnNBbGwocywgaStVVEYxNi5nZXRDaGFyQ291bnQoY3ApKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEl0ZXJhdG9yIGl0ID0gc3RyaW5ncy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBTdHJpbmcgc2V0U3RyID0gKFN0cmluZylpdC5uZXh0KCk7CisgICAgICAgICAgICBpZiAocy5zdGFydHNXaXRoKHNldFN0ciwgaSkgJiYgIGNvbnRhaW5zQWxsKHMsIGkrc2V0U3RyLmxlbmd0aCgpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQHJldHVybiByZWdleCBwYXR0ZXJuIGVxdWl2YWxlbnQgdG8gdGhpcyBVbmljb2RlU2V0CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRSZWdleEVxdWl2YWxlbnQoKSB7CisgICAgICAgIGlmIChzdHJpbmdzLnNpemUoKSA9PSAwKSByZXR1cm4gdG9TdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoIig/OiIpOworICAgICAgICBfZ2VuZXJhdGVQYXR0ZXJuKHJlc3VsdCwgdHJ1ZSwgZmFsc2UpOworICAgICAgICBJdGVyYXRvciBpdCA9IHN0cmluZ3MuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnfCcpOworICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHJlc3VsdCwgKFN0cmluZykgaXQubmV4dCgpLCB0cnVlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgiKSIpLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIG5vbmUgb2YgdGhlIGNoYXJhY3RlcnMKKyAgICAgKiBvZiB0aGUgZ2l2ZW4gcmFuZ2UuCisgICAgICogQHBhcmFtIHN0YXJ0IGZpcnN0IGNoYXJhY3RlciwgaW5jbHVzaXZlLCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gZW5kIGxhc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHRoZSByYW5nZQorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdGVzdCBjb25kaXRpb24gaXMgbWV0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNOb25lKGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBpZiAoc3RhcnQgPCBNSU5fVkFMVUUgfHwgc3RhcnQgPiBNQVhfVkFMVUUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY29kZSBwb2ludCBVKyIgKyBVdGlsaXR5LmhleChzdGFydCwgNikpOworICAgICAgICB9CisgICAgICAgIGlmIChlbmQgPCBNSU5fVkFMVUUgfHwgZW5kID4gTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGNvZGUgcG9pbnQgVSsiICsgVXRpbGl0eS5oZXgoZW5kLCA2KSk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGkgPSAtMTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGlmIChzdGFydCA8IGxpc3RbKytpXSkgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICgoaSAmIDEpID09IDAgJiYgZW5kIDwgbGlzdFtpXSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIG5vbmUgb2YgdGhlIGNoYXJhY3RlcnMgb3Igc3RyaW5ncyBpbiB0aGlzIFVuaWNvZGVTZXQgYXBwZWFycyBpbiB0aGUgc3RyaW5nLgorICAgICAqIEZvciBleGFtcGxlLCBmb3IgdGhlIFVuaWNvZGUgc2V0IFthe2JjfXtjZH1dPGJyPgorICAgICAqIGNvbnRhaW5zTm9uZSBpcyB0cnVlIGZvcjogInh5IiwgImNiIjxicj4KKyAgICAgKiBjb250YWluc05vbmUgaXMgZmFsc2UgZm9yOiAiYSIsICJiYyIsICJiY2QiPGJyPgorICAgICAqIEBwYXJhbSBjIHNldCB0byBiZSBjaGVja2VkIGZvciBjb250YWlubWVudAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdGVzdCBjb25kaXRpb24gaXMgbWV0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNOb25lKFVuaWNvZGVTZXQgYykgeworICAgICAgICAvLyBUaGUgc3BlY2lmaWVkIHNldCBpcyBhIHN1YnNldCBpZiBhbGwgb2YgaXRzIHBhaXJzIGFyZSBjb250YWluZWQgaW4KKyAgICAgICAgLy8gdGhpcyBzZXQuICBJdCdzIHBvc3NpYmxlIHRvIGNvZGUgdGhpcyBtb3JlIGVmZmljaWVudGx5IGluIHRlcm1zIG9mCisgICAgICAgIC8vIGRpcmVjdCBtYW5pcHVsYXRpb24gb2YgdGhlIGludmVyc2lvbiBsaXN0cyBpZiB0aGUgbmVlZCBhcmlzZXMuCisgICAgICAgIGludCBuID0gYy5nZXRSYW5nZUNvdW50KCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghY29udGFpbnNOb25lKGMuZ2V0UmFuZ2VTdGFydChpKSwgYy5nZXRSYW5nZUVuZChpKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFTb3J0ZWRTZXRSZWxhdGlvbi5oYXNSZWxhdGlvbihzdHJpbmdzLCBTb3J0ZWRTZXRSZWxhdGlvbi5ESVNKT0lOVCwgYy5zdHJpbmdzKSkgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgbm9uZSBvZiB0aGUgY2hhcmFjdGVycworICAgICAqIG9mIHRoZSBnaXZlbiBzdHJpbmcuCisgICAgICogQHBhcmFtIHMgc3RyaW5nIGNvbnRhaW5pbmcgY2hhcmFjdGVycyB0byBiZSBjaGVja2VkIGZvciBjb250YWlubWVudAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdGVzdCBjb25kaXRpb24gaXMgbWV0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNOb25lKFN0cmluZyBzKSB7CisgICAgICAgIGludCBjcDsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpICs9IFVURjE2LmdldENoYXJDb3VudChjcCkpIHsKKyAgICAgICAgICAgIGNwID0gVVRGMTYuY2hhckF0KHMsIGkpOworICAgICAgICAgICAgaWYgKGNvbnRhaW5zKGNwKSkgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChzdHJpbmdzLnNpemUoKSA9PSAwKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgLy8gZG8gYSBsYXN0IGNoZWNrIHRvIG1ha2Ugc3VyZSBubyBzdHJpbmdzIGFyZSBpbi4KKyAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IHN0cmluZ3MuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAJU3RyaW5nIGl0ZW0gPSAoU3RyaW5nKWl0Lm5leHQoKTsKKyAgICAgICAgCWlmIChzLmluZGV4T2YoaXRlbSkgPj0gMCkgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHNldCBjb250YWlucyBvbmUgb3IgbW9yZSBvZiB0aGUgY2hhcmFjdGVycworICAgICAqIGluIHRoZSBnaXZlbiByYW5nZS4KKyAgICAgKiBAcGFyYW0gc3RhcnQgZmlyc3QgY2hhcmFjdGVyLCBpbmNsdXNpdmUsIG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBlbmQgbGFzdCBjaGFyYWN0ZXIsIGluY2x1c2l2ZSwgb2YgdGhlIHJhbmdlCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb25kaXRpb24gaXMgbWV0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gY29udGFpbnNTb21lKGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICByZXR1cm4gIWNvbnRhaW5zTm9uZShzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgb25lIG9yIG1vcmUgb2YgdGhlIGNoYXJhY3RlcnMKKyAgICAgKiBhbmQgc3RyaW5ncyBvZiB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSBzIHNldCB0byBiZSBjaGVja2VkIGZvciBjb250YWlubWVudAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY29uZGl0aW9uIGlzIG1ldAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBib29sZWFuIGNvbnRhaW5zU29tZShVbmljb2RlU2V0IHMpIHsKKyAgICAgICAgcmV0dXJuICFjb250YWluc05vbmUocyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIG9uZSBvciBtb3JlIG9mIHRoZSBjaGFyYWN0ZXJzCisgICAgICogb2YgdGhlIGdpdmVuIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gcyBzdHJpbmcgY29udGFpbmluZyBjaGFyYWN0ZXJzIHRvIGJlIGNoZWNrZWQgZm9yIGNvbnRhaW5tZW50CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjb25kaXRpb24gaXMgbWV0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gY29udGFpbnNTb21lKFN0cmluZyBzKSB7CisgICAgICAgIHJldHVybiAhY29udGFpbnNOb25lKHMpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogQWRkcyBhbGwgb2YgdGhlIGVsZW1lbnRzIGluIHRoZSBzcGVjaWZpZWQgc2V0IHRvIHRoaXMgc2V0IGlmCisgICAgICogdGhleSdyZSBub3QgYWxyZWFkeSBwcmVzZW50LiAgVGhpcyBvcGVyYXRpb24gZWZmZWN0aXZlbHkKKyAgICAgKiBtb2RpZmllcyB0aGlzIHNldCBzbyB0aGF0IGl0cyB2YWx1ZSBpcyB0aGUgPGk+dW5pb248L2k+IG9mIHRoZSB0d28KKyAgICAgKiBzZXRzLiAgVGhlIGJlaGF2aW9yIG9mIHRoaXMgb3BlcmF0aW9uIGlzIHVuc3BlY2lmaWVkIGlmIHRoZSBzcGVjaWZpZWQKKyAgICAgKiBjb2xsZWN0aW9uIGlzIG1vZGlmaWVkIHdoaWxlIHRoZSBvcGVyYXRpb24gaXMgaW4gcHJvZ3Jlc3MuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYyBzZXQgd2hvc2UgZWxlbWVudHMgYXJlIHRvIGJlIGFkZGVkIHRvIHRoaXMgc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGFkZEFsbChVbmljb2RlU2V0IGMpIHsKKyAgICAgICAgYWRkKGMubGlzdCwgYy5sZW4sIDApOworICAgICAgICBzdHJpbmdzLmFkZEFsbChjLnN0cmluZ3MpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRhaW5zIG9ubHkgdGhlIGVsZW1lbnRzIGluIHRoaXMgc2V0IHRoYXQgYXJlIGNvbnRhaW5lZCBpbiB0aGUKKyAgICAgKiBzcGVjaWZpZWQgc2V0LiAgSW4gb3RoZXIgd29yZHMsIHJlbW92ZXMgZnJvbSB0aGlzIHNldCBhbGwgb2YKKyAgICAgKiBpdHMgZWxlbWVudHMgdGhhdCBhcmUgbm90IGNvbnRhaW5lZCBpbiB0aGUgc3BlY2lmaWVkIHNldC4gIFRoaXMKKyAgICAgKiBvcGVyYXRpb24gZWZmZWN0aXZlbHkgbW9kaWZpZXMgdGhpcyBzZXQgc28gdGhhdCBpdHMgdmFsdWUgaXMKKyAgICAgKiB0aGUgPGk+aW50ZXJzZWN0aW9uPC9pPiBvZiB0aGUgdHdvIHNldHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYyBzZXQgdGhhdCBkZWZpbmVzIHdoaWNoIGVsZW1lbnRzIHRoaXMgc2V0IHdpbGwgcmV0YWluLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IHJldGFpbkFsbChVbmljb2RlU2V0IGMpIHsKKyAgICAgICAgcmV0YWluKGMubGlzdCwgYy5sZW4sIDApOworICAgICAgICBzdHJpbmdzLnJldGFpbkFsbChjLnN0cmluZ3MpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmVzIGZyb20gdGhpcyBzZXQgYWxsIG9mIGl0cyBlbGVtZW50cyB0aGF0IGFyZSBjb250YWluZWQgaW4gdGhlCisgICAgICogc3BlY2lmaWVkIHNldC4gIFRoaXMgb3BlcmF0aW9uIGVmZmVjdGl2ZWx5IG1vZGlmaWVzIHRoaXMKKyAgICAgKiBzZXQgc28gdGhhdCBpdHMgdmFsdWUgaXMgdGhlIDxpPmFzeW1tZXRyaWMgc2V0IGRpZmZlcmVuY2U8L2k+IG9mCisgICAgICogdGhlIHR3byBzZXRzLgorICAgICAqCisgICAgICogQHBhcmFtIGMgc2V0IHRoYXQgZGVmaW5lcyB3aGljaCBlbGVtZW50cyB3aWxsIGJlIHJlbW92ZWQgZnJvbQorICAgICAqICAgICAgICAgIHRoaXMgc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IHJlbW92ZUFsbChVbmljb2RlU2V0IGMpIHsKKyAgICAgICAgcmV0YWluKGMubGlzdCwgYy5sZW4sIDIpOworICAgICAgICBzdHJpbmdzLnJlbW92ZUFsbChjLnN0cmluZ3MpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wbGVtZW50cyBpbiB0aGlzIHNldCBhbGwgZWxlbWVudHMgY29udGFpbmVkIGluIHRoZSBzcGVjaWZpZWQKKyAgICAgKiBzZXQuICBBbnkgY2hhcmFjdGVyIGluIHRoZSBvdGhlciBzZXQgd2lsbCBiZSByZW1vdmVkIGlmIGl0IGlzCisgICAgICogaW4gdGhpcyBzZXQsIG9yIHdpbGwgYmUgYWRkZWQgaWYgaXQgaXMgbm90IGluIHRoaXMgc2V0LgorICAgICAqCisgICAgICogQHBhcmFtIGMgc2V0IHRoYXQgZGVmaW5lcyB3aGljaCBlbGVtZW50cyB3aWxsIGJlIGNvbXBsZW1lbnRlZCBmcm9tCisgICAgICogICAgICAgICAgdGhpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgY29tcGxlbWVudEFsbChVbmljb2RlU2V0IGMpIHsKKyAgICAgICAgeG9yKGMubGlzdCwgYy5sZW4sIDApOworICAgICAgICBTb3J0ZWRTZXRSZWxhdGlvbi5kb09wZXJhdGlvbihzdHJpbmdzLCBTb3J0ZWRTZXRSZWxhdGlvbi5DT01QTEVNRU5UQUxMLCBjLnN0cmluZ3MpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmVzIGFsbCBvZiB0aGUgZWxlbWVudHMgZnJvbSB0aGlzIHNldC4gIFRoaXMgc2V0IHdpbGwgYmUKKyAgICAgKiBlbXB0eSBhZnRlciB0aGlzIGNhbGwgcmV0dXJucy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBjbGVhcigpIHsKKyAgICAgICAgbGlzdFswXSA9IEhJR0g7CisgICAgICAgIGxlbiA9IDE7CisgICAgICAgIHBhdCA9IG51bGw7CisgICAgICAgIHN0cmluZ3MuY2xlYXIoKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogSXRlcmF0aW9uIG1ldGhvZCB0aGF0IHJldHVybnMgdGhlIG51bWJlciBvZiByYW5nZXMgY29udGFpbmVkIGluCisgICAgICogdGhpcyBzZXQuCisgICAgICogQHNlZSAjZ2V0UmFuZ2VTdGFydAorICAgICAqIEBzZWUgI2dldFJhbmdlRW5kCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSYW5nZUNvdW50KCkgeworICAgICAgICByZXR1cm4gbGVuLzI7CisgICAgfQorCisgICAgLyoqCisgICAgICogSXRlcmF0aW9uIG1ldGhvZCB0aGF0IHJldHVybnMgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcmFuZ2Ugb2YgdGhpcyBzZXQuCisgICAgICogQGV4Y2VwdGlvbiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgaW5kZXggaXMgb3V0c2lkZQorICAgICAqIHRoZSByYW5nZSA8Y29kZT4wLi5nZXRSYW5nZUNvdW50KCktMTwvY29kZT4KKyAgICAgKiBAc2VlICNnZXRSYW5nZUNvdW50CisgICAgICogQHNlZSAjZ2V0UmFuZ2VFbmQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJhbmdlU3RhcnQoaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiBsaXN0W2luZGV4KjJdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEl0ZXJhdGlvbiBtZXRob2QgdGhhdCByZXR1cm5zIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcmFuZ2Ugb2YgdGhpcyBzZXQuCisgICAgICogQGV4Y2VwdGlvbiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgaW5kZXggaXMgb3V0c2lkZQorICAgICAqIHRoZSByYW5nZSA8Y29kZT4wLi5nZXRSYW5nZUNvdW50KCktMTwvY29kZT4KKyAgICAgKiBAc2VlICNnZXRSYW5nZVN0YXJ0CisgICAgICogQHNlZSAjZ2V0UmFuZ2VFbmQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJhbmdlRW5kKGludCBpbmRleCkgeworICAgICAgICByZXR1cm4gKGxpc3RbaW5kZXgqMiArIDFdIC0gMSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVhbGxvY2F0ZSB0aGlzIG9iamVjdHMgaW50ZXJuYWwgc3RydWN0dXJlcyB0byB0YWtlIHVwIHRoZSBsZWFzdAorICAgICAqIHBvc3NpYmxlIHNwYWNlLCB3aXRob3V0IGNoYW5naW5nIHRoaXMgb2JqZWN0J3MgdmFsdWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgY29tcGFjdCgpIHsKKyAgICAgICAgaWYgKGxlbiAhPSBsaXN0Lmxlbmd0aCkgeworICAgICAgICAgICAgaW50W10gdGVtcCA9IG5ldyBpbnRbbGVuXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkobGlzdCwgMCwgdGVtcCwgMCwgbGVuKTsKKyAgICAgICAgICAgIGxpc3QgPSB0ZW1wOworICAgICAgICB9CisgICAgICAgIHJhbmdlTGlzdCA9IG51bGw7CisgICAgICAgIGJ1ZmZlciA9IG51bGw7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSBzcGVjaWZpZWQgb2JqZWN0IHdpdGggdGhpcyBzZXQgZm9yIGVxdWFsaXR5LiAgUmV0dXJucworICAgICAqIDx0dD50cnVlPC90dD4gaWYgdGhlIHNwZWNpZmllZCBvYmplY3QgaXMgYWxzbyBhIHNldCwgdGhlIHR3byBzZXRzCisgICAgICogaGF2ZSB0aGUgc2FtZSBzaXplLCBhbmQgZXZlcnkgbWVtYmVyIG9mIHRoZSBzcGVjaWZpZWQgc2V0IGlzCisgICAgICogY29udGFpbmVkIGluIHRoaXMgc2V0IChvciBlcXVpdmFsZW50bHksIGV2ZXJ5IG1lbWJlciBvZiB0aGlzIHNldCBpcworICAgICAqIGNvbnRhaW5lZCBpbiB0aGUgc3BlY2lmaWVkIHNldCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbyBPYmplY3QgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5IHdpdGggdGhpcyBzZXQuCisgICAgICogQHJldHVybiA8dHQ+dHJ1ZTwvdHQ+IGlmIHRoZSBzcGVjaWZpZWQgT2JqZWN0IGlzIGVxdWFsIHRvIHRoaXMgc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgbykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgVW5pY29kZVNldCB0aGF0ID0gKFVuaWNvZGVTZXQpIG87CisgICAgICAgICAgICBpZiAobGVuICE9IHRoYXQubGVuKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKGxpc3RbaV0gIT0gdGhhdC5saXN0W2ldKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXN0cmluZ3MuZXF1YWxzKHRoYXQuc3RyaW5ncykpIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBoYXNoIGNvZGUgdmFsdWUgZm9yIHRoaXMgc2V0LgorICAgICAqCisgICAgICogQHJldHVybiB0aGUgaGFzaCBjb2RlIHZhbHVlIGZvciB0aGlzIHNldC4KKyAgICAgKiBAc2VlIGphdmEubGFuZy5PYmplY3QjaGFzaENvZGUoKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIGludCByZXN1bHQgPSBsZW47CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgICAgIHJlc3VsdCAqPSAxMDAwMDAzOworICAgICAgICAgICAgcmVzdWx0ICs9IGxpc3RbaV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBwcm9ncmFtbWVyLXJlYWRhYmxlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gdG9QYXR0ZXJuKHRydWUpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEltcGxlbWVudGF0aW9uOiBQYXR0ZXJuIHBhcnNpbmcKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFBhcnNlcyB0aGUgZ2l2ZW4gcGF0dGVybiwgc3RhcnRpbmcgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLiAgVGhlIGNoYXJhY3RlcgorICAgICAqIGF0IHBhdHRlcm4uY2hhckF0KHBvcy5nZXRJbmRleCgpKSBtdXN0IGJlICdbJywgb3IgdGhlIHBhcnNlIGZhaWxzLgorICAgICAqIFBhcnNpbmcgY29udGludWVzIHVudGlsIHRoZSBjb3JyZXNwb25kaW5nIGNsb3NpbmcgJ10nLiAgSWYgYSBzeW50YXggZXJyb3IKKyAgICAgKiBpcyBlbmNvdW50ZXJlZCBiZXR3ZWVuIHRoZSBvcGVuaW5nIGFuZCBjbG9zaW5nIGJyYWNlLCB0aGUgcGFyc2UgZmFpbHMuCisgICAgICogVXBvbiByZXR1cm4gZnJvbSBhIHN1Y2Nlc3NmdWwgcGFyc2UsIHRoZSBQYXJzZVBvc2l0aW9uIGlzIHVwZGF0ZWQgdG8KKyAgICAgKiBwb2ludCB0byB0aGUgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgY2xvc2luZyAnXScsIGFuZCBhbiBpbnZlcnNpb24KKyAgICAgKiBsaXN0IGZvciB0aGUgcGFyc2VkIHBhdHRlcm4gaXMgcmV0dXJuZWQuICBUaGlzIG1ldGhvZAorICAgICAqIGNhbGxzIGl0c2VsZiByZWN1cnNpdmVseSB0byBwYXJzZSBlbWJlZGRlZCBzdWJwYXR0ZXJucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBzdHJpbmcgY29udGFpbmluZyB0aGUgcGF0dGVybiB0byBiZSBwYXJzZWQuICBUaGUKKyAgICAgKiBwb3J0aW9uIG9mIHRoZSBzdHJpbmcgZnJvbSBwb3MuZ2V0SW5kZXgoKSwgd2hpY2ggbXVzdCBiZSBhICdbJywgdG8gdGhlCisgICAgICogY29ycmVzcG9uZGluZyBjbG9zaW5nICddJywgaXMgcGFyc2VkLgorICAgICAqIEBwYXJhbSBwb3MgdXBvbiBlbnRyeSwgdGhlIHBvc2l0aW9uIGF0IHdoaWNoIHRvIGJlaW5nIHBhcnNpbmcuICBUaGUKKyAgICAgKiBjaGFyYWN0ZXIgYXQgcGF0dGVybi5jaGFyQXQocG9zLmdldEluZGV4KCkpIG11c3QgYmUgYSAnWycuICBVcG9uIHJldHVybgorICAgICAqIGZyb20gYSBzdWNjZXNzZnVsIHBhcnNlLCBwb3MuZ2V0SW5kZXgoKSBpcyBlaXRoZXIgdGhlIGNoYXJhY3RlciBhZnRlciB0aGUKKyAgICAgKiBjbG9zaW5nICddJyBvZiB0aGUgcGFyc2VkIHBhdHRlcm4sIG9yIHBhdHRlcm4ubGVuZ3RoKCkgaWYgdGhlIGNsb3NpbmcgJ10nCisgICAgICogaXMgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBwYXR0ZXJuIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIGFuIGludmVyc2lvbiBsaXN0IGZvciB0aGUgcGFyc2VkIHN1YnN0cmluZworICAgICAqIG9mIDxjb2RlPnBhdHRlcm48L2NvZGU+CisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBwYXJzZSBmYWlscy4KKyAgICAgKi8KKyAgICBVbmljb2RlU2V0IGFwcGx5UGF0dGVybihTdHJpbmcgcGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICBQYXJzZVBvc2l0aW9uIHBvcywKKyAgICAgICAgICAgICAgICAgICAgICBTeW1ib2xUYWJsZSBzeW1ib2xzLAorICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb25zKSB7CisKKyAgICAgICAgLy8gTmVlZCB0byBidWlsZCB0aGUgcGF0dGVybiBpbiBhIHRlbXBvcmFyeSBzdHJpbmcgYmVjYXVzZQorICAgICAgICAvLyBfYXBwbHlQYXR0ZXJuIGNhbGxzIGFkZCgpIGV0Yy4sIHdoaWNoIHNldCBwYXQgdG8gZW1wdHkuCisgICAgICAgIGJvb2xlYW4gcGFyc2VQb3NpdGlvbldhc051bGwgPSBwb3MgPT0gbnVsbDsKKyAgICAgICAgaWYgKHBhcnNlUG9zaXRpb25XYXNOdWxsKSB7CisgICAgICAgICAgICBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZ0J1ZmZlciByZWJ1aWx0UGF0ID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBSdWxlQ2hhcmFjdGVySXRlcmF0b3IgY2hhcnMgPQorICAgICAgICAgICAgbmV3IFJ1bGVDaGFyYWN0ZXJJdGVyYXRvcihwYXR0ZXJuLCBzeW1ib2xzLCBwb3MpOworICAgICAgICBhcHBseVBhdHRlcm4oY2hhcnMsIHN5bWJvbHMsIHJlYnVpbHRQYXQsIG9wdGlvbnMpOworICAgICAgICBpZiAoY2hhcnMuaW5WYXJpYWJsZSgpKSB7CisgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIkV4dHJhIGNoYXJzIGluIHZhcmlhYmxlIHZhbHVlIik7CisgICAgICAgIH0KKyAgICAgICAgcGF0ID0gcmVidWlsdFBhdC50b1N0cmluZygpOworICAgICAgICBpZiAocGFyc2VQb3NpdGlvbldhc051bGwpIHsKKyAgICAgICAgICAgIGludCBpID0gcG9zLmdldEluZGV4KCk7CisKKyAgICAgICAgICAgIC8vIFNraXAgb3ZlciB0cmFpbGluZyB3aGl0ZXNwYWNlCisgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBJR05PUkVfU1BBQ0UpICE9IDApIHsKKyAgICAgICAgICAgICAgICBpID0gVXRpbGl0eS5za2lwV2hpdGVzcGFjZShwYXR0ZXJuLCBpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGkgIT0gcGF0dGVybi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlBhcnNlIG9mIFwiIiArIHBhdHRlcm4gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiIGZhaWxlZCBhdCAiICsgaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgdGhlIHBhdHRlcm4gZnJvbSB0aGUgZ2l2ZW4gUnVsZUNoYXJhY3Rlckl0ZXJhdG9yLiAgVGhlCisgICAgICogaXRlcmF0b3IgaXMgYWR2YW5jZWQgb3ZlciB0aGUgcGFyc2VkIHBhdHRlcm4uCisgICAgICogQHBhcmFtIGNoYXJzIGl0ZXJhdG9yIG92ZXIgdGhlIHBhdHRlcm4gY2hhcmFjdGVycy4gIFVwb24gcmV0dXJuCisgICAgICogaXQgd2lsbCBiZSBhZHZhbmNlZCB0byB0aGUgZmlyc3QgY2hhcmFjdGVyIGFmdGVyIHRoZSBwYXJzZWQKKyAgICAgKiBwYXR0ZXJuLCBvciB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24gaWYgYWxsIGNoYXJhY3RlcnMgYXJlCisgICAgICogcGFyc2VkLgorICAgICAqIEBwYXJhbSBzeW1ib2xzIHN5bWJvbCB0YWJsZSB0byB1c2UgdG8gcGFyc2UgYW5kIGRlcmVmZXJlbmNlCisgICAgICogdmFyaWFibGVzLCBvciBudWxsIGlmIG5vbmUuCisgICAgICogQHBhcmFtIHJlYnVpbHRQYXQgdGhlIHBhdHRlcm4gdGhhdCB3YXMgcGFyc2VkLCByZWJ1aWx0IG9yCisgICAgICogY29waWVkIGZyb20gdGhlIGlucHV0IHBhdHRlcm4sIGFzIGFwcHJvcHJpYXRlLgorICAgICAqIEBwYXJhbSBvcHRpb25zIGEgYml0IG1hc2sgb2YgemVybyBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmc6CisgICAgICogSUdOT1JFX1NQQUNFLCBDQVNFLgorICAgICAqLworICAgIHZvaWQgYXBwbHlQYXR0ZXJuKFJ1bGVDaGFyYWN0ZXJJdGVyYXRvciBjaGFycywgU3ltYm9sVGFibGUgc3ltYm9scywKKyAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWZmZXIgcmVidWlsdFBhdCwgaW50IG9wdGlvbnMpIHsKKworICAgICAgICAvLyBTeW50YXggY2hhcmFjdGVyczogWyBdIF4gLSAmIHsgfQorCisgICAgICAgIC8vIFJlY29nbml6ZWQgc3BlY2lhbCBmb3JtcyBmb3IgY2hhcnMsIHNldHM6IGMtYyBzLXMgcyZzCisKKyAgICAgICAgaW50IG9wdHMgPSBSdWxlQ2hhcmFjdGVySXRlcmF0b3IuUEFSU0VfVkFSSUFCTEVTIHwKKyAgICAgICAgICAgICAgICAgICBSdWxlQ2hhcmFjdGVySXRlcmF0b3IuUEFSU0VfRVNDQVBFUzsKKyAgICAgICAgaWYgKChvcHRpb25zICYgSUdOT1JFX1NQQUNFKSAhPSAwKSB7CisgICAgICAgICAgICBvcHRzIHw9IFJ1bGVDaGFyYWN0ZXJJdGVyYXRvci5TS0lQX1dISVRFU1BBQ0U7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmdCdWZmZXIgcGF0ID0gbmV3IFN0cmluZ0J1ZmZlcigpLCBidWYgPSBudWxsOworICAgICAgICBib29sZWFuIHVzZVBhdCA9IGZhbHNlOworICAgICAgICBVbmljb2RlU2V0IHNjcmF0Y2ggPSBudWxsOworICAgICAgICBPYmplY3QgYmFja3VwID0gbnVsbDsKKworICAgICAgICAvLyBtb2RlOiAwPWJlZm9yZSBbLCAxPWJldHdlZW4gWy4uLl0sIDI9YWZ0ZXIgXQorICAgICAgICAvLyBsYXN0SXRlbTogMD1ub25lLCAxPWNoYXIsIDI9c2V0CisgICAgICAgIGludCBsYXN0SXRlbSA9IDAsIGxhc3RDaGFyID0gMCwgbW9kZSA9IDA7CisgICAgICAgIGNoYXIgb3AgPSAwOworCisgICAgICAgIGJvb2xlYW4gaW52ZXJ0ID0gZmFsc2U7CisKKyAgICAgICAgY2xlYXIoKTsKKworICAgICAgICB3aGlsZSAobW9kZSAhPSAyICYmICFjaGFycy5hdEVuZCgpKSB7CisgICAgICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAvLyBEZWJ1Z2dpbmcgYXNzZXJ0aW9uCisgICAgICAgICAgICAgICAgaWYgKCEoKGxhc3RJdGVtID09IDAgJiYgb3AgPT0gMCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAobGFzdEl0ZW0gPT0gMSAmJiAob3AgPT0gMCB8fCBvcCA9PSAnLScpKSB8fAorICAgICAgICAgICAgICAgICAgICAgIChsYXN0SXRlbSA9PSAyICYmIChvcCA9PSAwIHx8IG9wID09ICctJyB8fCBvcCA9PSAnJicpKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IGMgPSAwOworICAgICAgICAgICAgYm9vbGVhbiBsaXRlcmFsID0gZmFsc2U7CisgICAgICAgICAgICBVbmljb2RlU2V0IG5lc3RlZCA9IG51bGw7CisKKyAgICAgICAgICAgIC8vIC0tLS0tLS0tIENoZWNrIGZvciBwcm9wZXJ0eSBwYXR0ZXJuCisKKyAgICAgICAgICAgIC8vIHNldE1vZGU6IDA9bm9uZSwgMT11bmljb2Rlc2V0LCAyPXByb3BlcnR5cGF0LCAzPXByZXBhcnNlZAorICAgICAgICAgICAgaW50IHNldE1vZGUgPSAwOworICAgICAgICAgICAgaWYgKHJlc2VtYmxlc1Byb3BlcnR5UGF0dGVybihjaGFycywgb3B0cykpIHsKKyAgICAgICAgICAgICAgICBzZXRNb2RlID0gMjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gLS0tLS0tLS0gUGFyc2UgJ1snIG9mIG9wZW5pbmcgZGVsaW1pdGVyIE9SIG5lc3RlZCBzZXQuCisgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIG5lc3RlZCBzZXQsIHVzZSBgc2V0TW9kZScgdG8gZGVmaW5lIGhvdworICAgICAgICAgICAgLy8gdGhlIHNldCBzaG91bGQgYmUgcGFyc2VkLiAgSWYgdGhlICdbJyBpcyBwYXJ0IG9mIHRoZQorICAgICAgICAgICAgLy8gb3BlbmluZyBkZWxpbWl0ZXIgZm9yIHRoaXMgcGF0dGVybiwgcGFyc2Ugc3BlY2lhbAorICAgICAgICAgICAgLy8gc3RyaW5ncyAiWyIsICJbXiIsICJbLSIsIGFuZCAiW14tIi4gIENoZWNrIGZvciBzdGFuZC1pbgorICAgICAgICAgICAgLy8gY2hhcmFjdGVycyByZXByZXNlbnRpbmcgYSBuZXN0ZWQgc2V0IGluIHRoZSBzeW1ib2wKKyAgICAgICAgICAgIC8vIHRhYmxlLgorCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBQcmVwYXJlIHRvIGJhY2t1cCBpZiBuZWNlc3NhcnkKKyAgICAgICAgICAgICAgICBiYWNrdXAgPSBjaGFycy5nZXRQb3MoYmFja3VwKTsKKyAgICAgICAgICAgICAgICBjID0gY2hhcnMubmV4dChvcHRzKTsKKyAgICAgICAgICAgICAgICBsaXRlcmFsID0gY2hhcnMuaXNFc2NhcGVkKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnWycgJiYgIWxpdGVyYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGUgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnMuc2V0UG9zKGJhY2t1cCk7IC8vIGJhY2t1cAorICAgICAgICAgICAgICAgICAgICAgICAgc2V0TW9kZSA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgb3BlbmluZyAnWycgZGVsaW1pdGVyCisgICAgICAgICAgICAgICAgICAgICAgICBtb2RlID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdC5hcHBlbmQoJ1snKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhY2t1cCA9IGNoYXJzLmdldFBvcyhiYWNrdXApOyAvLyBwcmVwYXJlIHRvIGJhY2t1cAorICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGNoYXJzLm5leHQob3B0cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBsaXRlcmFsID0gY2hhcnMuaXNFc2NhcGVkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXicgJiYgIWxpdGVyYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZlcnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdC5hcHBlbmQoJ14nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrdXAgPSBjaGFycy5nZXRQb3MoYmFja3VwKTsgLy8gcHJlcGFyZSB0byBiYWNrdXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gY2hhcnMubmV4dChvcHRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXRlcmFsID0gY2hhcnMuaXNFc2NhcGVkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGYWxsIHRocm91Z2ggdG8gaGFuZGxlIHNwZWNpYWwgbGVhZGluZyAnLSc7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UgcmVzdGFydCBsb29wIGZvciBuZXN0ZWQgW10sIFxwe30sIGV0Yy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICctJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpdGVyYWwgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCB0byBoYW5kbGUgbGl0ZXJhbCAnLScgYmVsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnMuc2V0UG9zKGJhY2t1cCk7IC8vIGJhY2t1cAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzeW1ib2xzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVNYXRjaGVyIG0gPSBzeW1ib2xzLmxvb2t1cE1hdGNoZXIoYyk7IC8vIG1heSBiZSBudWxsCisgICAgICAgICAgICAgICAgICAgICBpZiAobSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVzdGVkID0gKFVuaWNvZGVTZXQpIG07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE1vZGUgPSAzOworICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiU3ludGF4IGVycm9yIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gLS0tLS0tLS0gSGFuZGxlIGEgbmVzdGVkIHNldC4gIFRoaXMgZWl0aGVyIGlzIGlubGluZSBpbgorICAgICAgICAgICAgLy8gdGhlIHBhdHRlcm4gb3IgcmVwcmVzZW50ZWQgYnkgYSBzdGFuZC1pbiB0aGF0IGhhcworICAgICAgICAgICAgLy8gcHJldmlvdXNseSBiZWVuIHBhcnNlZCBhbmQgd2FzIGxvb2tlZCB1cCBpbiB0aGUgc3ltYm9sCisgICAgICAgICAgICAvLyB0YWJsZS4KKworICAgICAgICAgICAgaWYgKHNldE1vZGUgIT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChsYXN0SXRlbSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChvcCAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIkNoYXIgZXhwZWN0ZWQgYWZ0ZXIgb3BlcmF0b3IiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhZGQobGFzdENoYXIsIGxhc3RDaGFyKTsKKyAgICAgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHBhdCwgbGFzdENoYXIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgbGFzdEl0ZW0gPSBvcCA9IDA7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG9wID09ICctJyB8fCBvcCA9PSAnJicpIHsKKyAgICAgICAgICAgICAgICAgICAgcGF0LmFwcGVuZChvcCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG5lc3RlZCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzY3JhdGNoID09IG51bGwpIHNjcmF0Y2ggPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgICAgICAgICBuZXN0ZWQgPSBzY3JhdGNoOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHNldE1vZGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgIG5lc3RlZC5hcHBseVBhdHRlcm4oY2hhcnMsIHN5bWJvbHMsIHBhdCwgb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICAgICAgY2hhcnMuc2tpcElnbm9yZWQob3B0cyk7CisgICAgICAgICAgICAgICAgICAgIG5lc3RlZC5hcHBseVByb3BlcnR5UGF0dGVybihjaGFycywgcGF0LCBzeW1ib2xzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAzOiAvLyBgbmVzdGVkJyBhbHJlYWR5IHBhcnNlZAorICAgICAgICAgICAgICAgICAgICBuZXN0ZWQuX3RvUGF0dGVybihwYXQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdXNlUGF0ID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgIGlmIChtb2RlID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRW50aXJlIHBhdHRlcm4gaXMgYSBjYXRlZ29yeTsgbGVhdmUgcGFyc2UgbG9vcAorICAgICAgICAgICAgICAgICAgICBzZXQobmVzdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHN3aXRjaCAob3ApIHsKKyAgICAgICAgICAgICAgICBjYXNlICctJzoKKyAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQWxsKG5lc3RlZCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJyYnOgorICAgICAgICAgICAgICAgICAgICByZXRhaW5BbGwobmVzdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICBhZGRBbGwobmVzdGVkKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgb3AgPSAwOworICAgICAgICAgICAgICAgIGxhc3RJdGVtID0gMjsKKworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobW9kZSA9PSAwKSB7CisgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoY2hhcnMsICJNaXNzaW5nICdbJyIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyAtLS0tLS0tLSBQYXJzZSBzcGVjaWFsIChzeW50YXgpIGNoYXJhY3RlcnMuICBJZiB0aGUKKyAgICAgICAgICAgIC8vIGN1cnJlbnQgY2hhcmFjdGVyIGlzIG5vdCBzcGVjaWFsLCBvciBpZiBpdCBpcyBlc2NhcGVkLAorICAgICAgICAgICAgLy8gdGhlbiBmYWxsIHRocm91Z2ggYW5kIGhhbmRsZSBpdCBiZWxvdy4KKworICAgICAgICAgICAgaWYgKCFsaXRlcmFsKSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnXSc6CisgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0SXRlbSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGQobGFzdENoYXIsIGxhc3RDaGFyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9hcHBlbmRUb1BhdChwYXQsIGxhc3RDaGFyLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLy8gVHJlYXQgZmluYWwgdHJhaWxpbmcgJy0nIGFzIGEgbGl0ZXJhbAorICAgICAgICAgICAgICAgICAgICBpZiAob3AgPT0gJy0nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGQob3AsIG9wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdC5hcHBlbmQob3ApOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9wID09ICcmJykgeworICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoY2hhcnMsICJUcmFpbGluZyAnJiciKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBwYXQuYXBwZW5kKCddJyk7CisgICAgICAgICAgICAgICAgICAgIG1vZGUgPSAyOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBjYXNlICctJzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9wID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0SXRlbSAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3AgPSAoY2hhcikgYzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJlYXQgZmluYWwgdHJhaWxpbmcgJy0nIGFzIGEgbGl0ZXJhbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZChjLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gY2hhcnMubmV4dChvcHRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXRlcmFsID0gY2hhcnMuaXNFc2NhcGVkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ10nICYmICFsaXRlcmFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdC5hcHBlbmQoIi1dIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSAyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3ludGF4RXJyb3IoY2hhcnMsICInLScgbm90IGFmdGVyIGNoYXIgb3Igc2V0Iik7CisgICAgICAgICAgICAgICAgY2FzZSAnJic6CisgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0SXRlbSA9PSAyICYmIG9wID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wID0gKGNoYXIpIGM7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIicmJyBub3QgYWZ0ZXIgc2V0Iik7CisgICAgICAgICAgICAgICAgY2FzZSAnXic6CisgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiJ14nIG5vdCBhZnRlciAnWyciKTsKKyAgICAgICAgICAgICAgICBjYXNlICd7JzoKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9wICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiTWlzc2luZyBvcGVyYW5kIGFmdGVyIG9wZXJhdG9yIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RJdGVtID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZChsYXN0Q2hhciwgbGFzdENoYXIpOworICAgICAgICAgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHBhdCwgbGFzdENoYXIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBsYXN0SXRlbSA9IDA7CisgICAgICAgICAgICAgICAgICAgIGlmIChidWYgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBib29sZWFuIG9rID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlICghY2hhcnMuYXRFbmQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGNoYXJzLm5leHQob3B0cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBsaXRlcmFsID0gY2hhcnMuaXNFc2NhcGVkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnfScgJiYgIWxpdGVyYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvayA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBVVEYxNi5hcHBlbmQoYnVmLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpIDwgMSB8fCAhb2spIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheEVycm9yKGNoYXJzLCAiSW52YWxpZCBtdWx0aWNoYXJhY3RlciBzdHJpbmciKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIG5ldyBzdHJpbmcuIEFkZCBpdCB0byBzZXQgYW5kIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAvLyB3ZSBkb24ndCBuZWVkIHRvIGRyb3AgdGhyb3VnaCB0byB0aGUgZnVydGhlcgorICAgICAgICAgICAgICAgICAgICAvLyBwcm9jZXNzaW5nCisgICAgICAgICAgICAgICAgICAgIGFkZChidWYudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgIHBhdC5hcHBlbmQoJ3snKTsKKyAgICAgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHBhdCwgYnVmLnRvU3RyaW5nKCksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgcGF0LmFwcGVuZCgnfScpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBjYXNlIFN5bWJvbFRhYmxlLlNZTUJPTF9SRUY6CisgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgc3ltYm9scyAgbm9zeW1ib2xzCisgICAgICAgICAgICAgICAgICAgIC8vIFthLSRdICAgZXJyb3IgICAgZXJyb3IgKGFtYmlndW91cykKKyAgICAgICAgICAgICAgICAgICAgLy8gW2EkXSAgICBhbmNob3IgICBhbmNob3IKKyAgICAgICAgICAgICAgICAgICAgLy8gW2EtJHhdICB2YXIgIngiKiBsaXRlcmFsICckJworICAgICAgICAgICAgICAgICAgICAvLyBbYS0kLl0gIGVycm9yICAgIGxpdGVyYWwgJyQnCisgICAgICAgICAgICAgICAgICAgIC8vICpXZSB3b24ndCBnZXQgaGVyZSBpbiB0aGUgY2FzZSBvZiB2YXIgIngiCisgICAgICAgICAgICAgICAgICAgIGJhY2t1cCA9IGNoYXJzLmdldFBvcyhiYWNrdXApOworICAgICAgICAgICAgICAgICAgICBjID0gY2hhcnMubmV4dChvcHRzKTsKKyAgICAgICAgICAgICAgICAgICAgbGl0ZXJhbCA9IGNoYXJzLmlzRXNjYXBlZCgpOworICAgICAgICAgICAgICAgICAgICBib29sZWFuIGFuY2hvciA9IChjID09ICddJyAmJiAhbGl0ZXJhbCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzeW1ib2xzID09IG51bGwgJiYgIWFuY2hvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IFN5bWJvbFRhYmxlLlNZTUJPTF9SRUY7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFycy5zZXRQb3MoYmFja3VwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAvLyBsaXRlcmFsICckJworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChhbmNob3IgJiYgb3AgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RJdGVtID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGQobGFzdENoYXIsIGxhc3RDaGFyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYXBwZW5kVG9QYXQocGF0LCBsYXN0Q2hhciwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYWRkKFVuaWNvZGVNYXRjaGVyLkVUSEVSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVzZVBhdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBwYXQuYXBwZW5kKFN5bWJvbFRhYmxlLlNZTUJPTF9SRUYpLmFwcGVuZCgnXScpOworICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IDI7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIlVucXVvdGVkICckJyIpOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gLS0tLS0tLS0gUGFyc2UgbGl0ZXJhbCBjaGFyYWN0ZXJzLiAgVGhpcyBpbmNsdWRlcyBib3RoCisgICAgICAgICAgICAvLyBlc2NhcGVkIGNoYXJzICgiXHU0RTAxIikgYW5kIG5vbi1zeW50YXggY2hhcmFjdGVycworICAgICAgICAgICAgLy8gKCJhIikuCisKKyAgICAgICAgICAgIHN3aXRjaCAobGFzdEl0ZW0pIHsKKyAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICBsYXN0SXRlbSA9IDE7CisgICAgICAgICAgICAgICAgbGFzdENoYXIgPSBjOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGlmIChvcCA9PSAnLScpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RDaGFyID49IGMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IGFsbG93IHJlZHVuZGFudCAoYS1hKSBvciBlbXB0eSAoYi1hKSByYW5nZXM7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVzZSBhcmUgbW9zdCBsaWtlbHkgdHlwb3MuCisgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIkludmFsaWQgcmFuZ2UiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhZGQobGFzdENoYXIsIGMpOworICAgICAgICAgICAgICAgICAgICBfYXBwZW5kVG9QYXQocGF0LCBsYXN0Q2hhciwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBwYXQuYXBwZW5kKG9wKTsKKyAgICAgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHBhdCwgYywgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBsYXN0SXRlbSA9IG9wID0gMDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhZGQobGFzdENoYXIsIGxhc3RDaGFyKTsKKyAgICAgICAgICAgICAgICAgICAgX2FwcGVuZFRvUGF0KHBhdCwgbGFzdENoYXIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgbGFzdENoYXIgPSBjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICBpZiAob3AgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBzeW50YXhFcnJvcihjaGFycywgIlNldCBleHBlY3RlZCBhZnRlciBvcGVyYXRvciIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBsYXN0Q2hhciA9IGM7CisgICAgICAgICAgICAgICAgbGFzdEl0ZW0gPSAxOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG1vZGUgIT0gMikgeworICAgICAgICAgICAgc3ludGF4RXJyb3IoY2hhcnMsICJNaXNzaW5nICddJyIpOworICAgICAgICB9CisKKyAgICAgICAgY2hhcnMuc2tpcElnbm9yZWQob3B0cyk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEhhbmRsZSBnbG9iYWwgZmxhZ3MgKGludmVydCwgY2FzZSBpbnNlbnNpdGl2aXR5KS4gIElmIHRoaXMKKyAgICAgICAgICogcGF0dGVybiBzaG91bGQgYmUgY29tcGlsZWQgY2FzZS1pbnNlbnNpdGl2ZSwgdGhlbiB3ZSBuZWVkCisgICAgICAgICAqIHRvIGNsb3NlIG92ZXIgY2FzZSBCRUZPUkUgQ09NUExFTUVOVElORy4gIFRoaXMgbWFrZXMKKyAgICAgICAgICogcGF0dGVybnMgbGlrZSAvW15hYmNdL2kgd29yay4KKyAgICAgICAgICovCisgICAgICAgIGlmICgob3B0aW9ucyAmIENBU0UpICE9IDApIHsKKyAgICAgICAgICAgIGNsb3NlT3ZlcihDQVNFKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW52ZXJ0KSB7CisgICAgICAgICAgICBjb21wbGVtZW50KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBVc2UgdGhlIHJlYnVpbHQgcGF0dGVybiAocGF0KSBvbmx5IGlmIG5lY2Vzc2FyeS4gIFByZWZlciB0aGUKKyAgICAgICAgLy8gZ2VuZXJhdGVkIHBhdHRlcm4uCisgICAgICAgIGlmICh1c2VQYXQpIHsKKyAgICAgICAgICAgIHJlYnVpbHRQYXQuYXBwZW5kKHBhdC50b1N0cmluZygpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIF9nZW5lcmF0ZVBhdHRlcm4ocmVidWlsdFBhdCwgZmFsc2UsIHRydWUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBzeW50YXhFcnJvcihSdWxlQ2hhcmFjdGVySXRlcmF0b3IgY2hhcnMsIFN0cmluZyBtc2cpIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRXJyb3I6ICIgKyBtc2cgKyAiIGF0IFwiIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl0eS5lc2NhcGUoY2hhcnMudG9TdHJpbmcoKSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICciJyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIHRoZSBjb250ZW50cyBvZiB0aGUgVW5pY29kZVNldCAoYXMgc3RyaW5ncykgaW50byBhIGNvbGxlY3Rpb24uCisgICAgICogQHBhcmFtIHRhcmdldCBjb2xsZWN0aW9uIHRvIGFkZCBpbnRvCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkQWxsVG8oQ29sbGVjdGlvbiB0YXJnZXQpIHsKKyAgICAgICAgVW5pY29kZVNldEl0ZXJhdG9yIGl0ID0gbmV3IFVuaWNvZGVTZXRJdGVyYXRvcih0aGlzKTsKKyAgICAgICAgd2hpbGUgKGl0Lm5leHQoKSkgeworICAgICAgICAgICAgdGFyZ2V0LmFkZChpdC5nZXRTdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgdGhlIGNvbnRlbnRzIG9mIHRoZSBjb2xsZWN0aW9uIChhcyBzdHJpbmdzKSBpbnRvIHRoaXMgVW5pY29kZVNldC4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBjb2xsZWN0aW9uIHRvIGFkZAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZEFsbChDb2xsZWN0aW9uIHNvdXJjZSkgeworICAgICAgICBJdGVyYXRvciBpdCA9IHNvdXJjZS5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBhZGQoaXQubmV4dCgpLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gSW1wbGVtZW50YXRpb246IFV0aWxpdHkgbWV0aG9kcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSB2b2lkIGVuc3VyZUNhcGFjaXR5KGludCBuZXdMZW4pIHsKKyAgICAgICAgaWYgKG5ld0xlbiA8PSBsaXN0Lmxlbmd0aCkgcmV0dXJuOworICAgICAgICBpbnRbXSB0ZW1wID0gbmV3IGludFtuZXdMZW4gKyBHUk9XX0VYVFJBXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShsaXN0LCAwLCB0ZW1wLCAwLCBsZW4pOworICAgICAgICBsaXN0ID0gdGVtcDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZW5zdXJlQnVmZmVyQ2FwYWNpdHkoaW50IG5ld0xlbikgeworICAgICAgICBpZiAoYnVmZmVyICE9IG51bGwgJiYgbmV3TGVuIDw9IGJ1ZmZlci5sZW5ndGgpIHJldHVybjsKKyAgICAgICAgYnVmZmVyID0gbmV3IGludFtuZXdMZW4gKyBHUk9XX0VYVFJBXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBc3N1bWVzIHN0YXJ0IDw9IGVuZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludFtdIHJhbmdlKGludCBzdGFydCwgaW50IGVuZCkgeworICAgICAgICBpZiAocmFuZ2VMaXN0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJhbmdlTGlzdCA9IG5ldyBpbnRbXSB7IHN0YXJ0LCBlbmQrMSwgSElHSCB9OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmFuZ2VMaXN0WzBdID0gc3RhcnQ7CisgICAgICAgICAgICByYW5nZUxpc3RbMV0gPSBlbmQrMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmFuZ2VMaXN0OworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEltcGxlbWVudGF0aW9uOiBGdW5kYW1lbnRhbCBvcGVyYXRpb25zCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBwb2xhcml0eSA9IDAsIDMgaXMgbm9ybWFsOiB4IHhvciB5CisgICAgLy8gcG9sYXJpdHkgPSAxLCAyOiB4IHhvciB+eSA9PSB4ID09PSB5CisKKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgeG9yKGludFtdIG90aGVyLCBpbnQgb3RoZXJMZW4sIGludCBwb2xhcml0eSkgeworICAgICAgICBlbnN1cmVCdWZmZXJDYXBhY2l0eShsZW4gKyBvdGhlckxlbik7CisgICAgICAgIGludCBpID0gMCwgaiA9IDAsIGsgPSAwOworICAgICAgICBpbnQgYSA9IGxpc3RbaSsrXTsKKyAgICAgICAgaW50IGI7CisgICAgICAgIGlmIChwb2xhcml0eSA9PSAxIHx8IHBvbGFyaXR5ID09IDIpIHsKKyAgICAgICAgICAgIGIgPSBMT1c7CisgICAgICAgICAgICBpZiAob3RoZXJbal0gPT0gTE9XKSB7IC8vIHNraXAgYmFzZSBpZiBhbHJlYWR5IExPVworICAgICAgICAgICAgICAgICsrajsKKyAgICAgICAgICAgICAgICBiID0gb3RoZXJbal07CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsKKyAgICAgICAgfQorICAgICAgICAvLyBzaW1wbGVzdCBvZiBhbGwgdGhlIHJvdXRpbmVzCisgICAgICAgIC8vIHNvcnQgdGhlIHZhbHVlcywgZGlzY2FyZGluZyBpZGVudGljYWxzIQorICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaWYgKGEgPCBiKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOworICAgICAgICAgICAgICAgIGEgPSBsaXN0W2krK107CisgICAgICAgICAgICB9IGVsc2UgaWYgKGIgPCBhKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBiOworICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOworICAgICAgICAgICAgfSBlbHNlIGlmIChhICE9IEhJR0gpIHsgLy8gYXQgdGhpcyBwb2ludCwgYSA9PSBiCisgICAgICAgICAgICAgICAgLy8gZGlzY2FyZCBib3RoIHZhbHVlcyEKKyAgICAgICAgICAgICAgICBhID0gbGlzdFtpKytdOworICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOworICAgICAgICAgICAgfSBlbHNlIHsgLy8gRE9ORSEKKyAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IEhJR0g7CisgICAgICAgICAgICAgICAgbGVuID0gazsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBzd2FwIGxpc3QgYW5kIGJ1ZmZlcgorICAgICAgICBpbnRbXSB0ZW1wID0gbGlzdDsKKyAgICAgICAgbGlzdCA9IGJ1ZmZlcjsKKyAgICAgICAgYnVmZmVyID0gdGVtcDsKKyAgICAgICAgcGF0ID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLy8gcG9sYXJpdHkgPSAwIGlzIG5vcm1hbDogeCB1bmlvbiB5CisgICAgLy8gcG9sYXJpdHkgPSAyOiB4IHVuaW9uIH55CisgICAgLy8gcG9sYXJpdHkgPSAxOiB+eCB1bmlvbiB5CisgICAgLy8gcG9sYXJpdHkgPSAzOiB+eCB1bmlvbiB+eQorCisgICAgcHJpdmF0ZSBVbmljb2RlU2V0IGFkZChpbnRbXSBvdGhlciwgaW50IG90aGVyTGVuLCBpbnQgcG9sYXJpdHkpIHsKKyAgICAgICAgZW5zdXJlQnVmZmVyQ2FwYWNpdHkobGVuICsgb3RoZXJMZW4pOworICAgICAgICBpbnQgaSA9IDAsIGogPSAwLCBrID0gMDsKKyAgICAgICAgaW50IGEgPSBsaXN0W2krK107CisgICAgICAgIGludCBiID0gb3RoZXJbaisrXTsKKyAgICAgICAgLy8gY2hhbmdlIGZyb20geG9yIGlzIHRoYXQgd2UgaGF2ZSB0byBjaGVjayBvdmVybGFwcGluZyBwYWlycworICAgICAgICAvLyBwb2xhcml0eSBiaXQgMSBtZWFucyBhIGlzIHNlY29uZCwgYml0IDIgbWVhbnMgYiBpcy4KKyAgICAgICAgbWFpbjoKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHN3aXRjaCAocG9sYXJpdHkpIHsKKyAgICAgICAgICAgICAgY2FzZSAwOiAvLyBib3RoIGZpcnN0OyB0YWtlIGxvd2VyIGlmIHVuZXF1YWwKKyAgICAgICAgICAgICAgICBpZiAoYSA8IGIpIHsgLy8gdGFrZSBhCisgICAgICAgICAgICAgICAgICAgIC8vIEJhY2sgdXAgb3ZlciBvdmVybGFwcGluZyByYW5nZXMgaW4gYnVmZmVyW10KKyAgICAgICAgICAgICAgICAgICAgaWYgKGsgPiAwICYmIGEgPD0gYnVmZmVyW2stMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBpY2sgbGF0dGVyIGVuZCB2YWx1ZSBpbiBidWZmZXJbXSB2cy4gbGlzdFtdCisgICAgICAgICAgICAgICAgICAgICAgICBhID0gbWF4KGxpc3RbaV0sIGJ1ZmZlclstLWtdKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vIG92ZXJsYXAKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gYTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBsaXN0W2ldOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGkrKzsgLy8gQ29tbW9uIGlmL2Vsc2UgY29kZSBmYWN0b3JlZCBvdXQKKyAgICAgICAgICAgICAgICAgICAgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGIgPCBhKSB7IC8vIHRha2UgYgorICAgICAgICAgICAgICAgICAgICBpZiAoayA+IDAgJiYgYiA8PSBidWZmZXJbay0xXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYiA9IG1heChvdGhlcltqXSwgYnVmZmVyWy0ta10pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBiOworICAgICAgICAgICAgICAgICAgICAgICAgYiA9IG90aGVyW2pdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGorKzsKKyAgICAgICAgICAgICAgICAgICAgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBhID09IGIsIHRha2UgYSwgZHJvcCBiCisgICAgICAgICAgICAgICAgICAgIGlmIChhID09IEhJR0gpIGJyZWFrIG1haW47CisgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgc3ltbWV0cmljYWw7IGl0IGRvZXNuJ3QgbWF0dGVyIGlmCisgICAgICAgICAgICAgICAgICAgIC8vIHdlIGJhY2t0cmFjayB3aXRoIGEgb3IgYi4gLSBsaXUKKyAgICAgICAgICAgICAgICAgICAgaWYgKGsgPiAwICYmIGEgPD0gYnVmZmVyW2stMV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBtYXgobGlzdFtpXSwgYnVmZmVyWy0ta10pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm8gb3ZlcmxhcAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOworICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGxpc3RbaV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgICAgICAgICBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIGNhc2UgMzogLy8gYm90aCBzZWNvbmQ7IHRha2UgaGlnaGVyIGlmIHVuZXF1YWwsIGFuZCBkcm9wIG90aGVyCisgICAgICAgICAgICAgICAgaWYgKGIgPD0gYSkgeyAvLyB0YWtlIGEKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIHRha2UgYgorICAgICAgICAgICAgICAgICAgICBpZiAoYiA9PSBISUdIKSBicmVhayBtYWluOworICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGEgPSBsaXN0W2krK107IHBvbGFyaXR5IF49IDE7ICAgLy8gZmFjdG9yZWQgY29tbW9uIGNvZGUKKyAgICAgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgY2FzZSAxOiAvLyBhIHNlY29uZCwgYiBmaXJzdDsgaWYgYiA8IGEsIG92ZXJsYXAKKyAgICAgICAgICAgICAgICBpZiAoYSA8IGIpIHsgLy8gbm8gb3ZlcmxhcCwgdGFrZSBhCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gYTsgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGIgPCBhKSB7IC8vIE9WRVJMQVAsIGRyb3AgYgorICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBhID09IGIsIGRyb3AgYm90aCEKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICBjYXNlIDI6IC8vIGEgZmlyc3QsIGIgc2Vjb25kOyBpZiBhIDwgYiwgb3ZlcmxhcAorICAgICAgICAgICAgICAgIGlmIChiIDwgYSkgeyAvLyBubyBvdmVybGFwLCB0YWtlIGIKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBiOyBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgIGlmIChhIDwgYikgeyAvLyBPVkVSTEFQLCBkcm9wIGEKKyAgICAgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBhID09IGIsIGRyb3AgYm90aCEKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJ1ZmZlcltrKytdID0gSElHSDsgICAgLy8gdGVybWluYXRlCisgICAgICAgIGxlbiA9IGs7CisgICAgICAgIC8vIHN3YXAgbGlzdCBhbmQgYnVmZmVyCisgICAgICAgIGludFtdIHRlbXAgPSBsaXN0OworICAgICAgICBsaXN0ID0gYnVmZmVyOworICAgICAgICBidWZmZXIgPSB0ZW1wOworICAgICAgICBwYXQgPSBudWxsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvLyBwb2xhcml0eSA9IDAgaXMgbm9ybWFsOiB4IGludGVyc2VjdCB5CisgICAgLy8gcG9sYXJpdHkgPSAyOiB4IGludGVyc2VjdCB+eSA9PSBzZXQtbWludXMKKyAgICAvLyBwb2xhcml0eSA9IDE6IH54IGludGVyc2VjdCB5CisgICAgLy8gcG9sYXJpdHkgPSAzOiB+eCBpbnRlcnNlY3QgfnkKKworICAgIHByaXZhdGUgVW5pY29kZVNldCByZXRhaW4oaW50W10gb3RoZXIsIGludCBvdGhlckxlbiwgaW50IHBvbGFyaXR5KSB7CisgICAgICAgIGVuc3VyZUJ1ZmZlckNhcGFjaXR5KGxlbiArIG90aGVyTGVuKTsKKyAgICAgICAgaW50IGkgPSAwLCBqID0gMCwgayA9IDA7CisgICAgICAgIGludCBhID0gbGlzdFtpKytdOworICAgICAgICBpbnQgYiA9IG90aGVyW2orK107CisgICAgICAgIC8vIGNoYW5nZSBmcm9tIHhvciBpcyB0aGF0IHdlIGhhdmUgdG8gY2hlY2sgb3ZlcmxhcHBpbmcgcGFpcnMKKyAgICAgICAgLy8gcG9sYXJpdHkgYml0IDEgbWVhbnMgYSBpcyBzZWNvbmQsIGJpdCAyIG1lYW5zIGIgaXMuCisgICAgICAgIG1haW46CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHBvbGFyaXR5KSB7CisgICAgICAgICAgICAgIGNhc2UgMDogLy8gYm90aCBmaXJzdDsgZHJvcCB0aGUgc21hbGxlcgorICAgICAgICAgICAgICAgIGlmIChhIDwgYikgeyAvLyBkcm9wIGEKKyAgICAgICAgICAgICAgICAgICAgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGIgPCBhKSB7IC8vIGRyb3AgYgorICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeyAvLyBhID09IGIsIHRha2Ugb25lLCBkcm9wIG90aGVyCisgICAgICAgICAgICAgICAgICAgIGlmIChhID09IEhJR0gpIGJyZWFrIG1haW47CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gYTsgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICAgICAgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICBjYXNlIDM6IC8vIGJvdGggc2Vjb25kOyB0YWtlIGxvd2VyIGlmIHVuZXF1YWwKKyAgICAgICAgICAgICAgICBpZiAoYSA8IGIpIHsgLy8gdGFrZSBhCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gYTsgYSA9IGxpc3RbaSsrXTsgcG9sYXJpdHkgXj0gMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGIgPCBhKSB7IC8vIHRha2UgYgorICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGI7IGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGEgPT0gYiwgdGFrZSBvbmUsIGRyb3Agb3RoZXIKKyAgICAgICAgICAgICAgICAgICAgaWYgKGEgPT0gSElHSCkgYnJlYWsgbWFpbjsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2srK10gPSBhOyBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgICAgICBiID0gb3RoZXJbaisrXTsgcG9sYXJpdHkgXj0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIGNhc2UgMTogLy8gYSBzZWNvbmQsIGIgZmlyc3Q7CisgICAgICAgICAgICAgICAgaWYgKGEgPCBiKSB7IC8vIE5PIE9WRVJMQVAsIGRyb3AgYQorICAgICAgICAgICAgICAgICAgICBhID0gbGlzdFtpKytdOyBwb2xhcml0eSBePSAxOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYiA8IGEpIHsgLy8gT1ZFUkxBUCwgdGFrZSBiCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltrKytdID0gYjsgYiA9IG90aGVyW2orK107IHBvbGFyaXR5IF49IDI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gYSA9PSBiLCBkcm9wIGJvdGghCisgICAgICAgICAgICAgICAgICAgIGlmIChhID09IEhJR0gpIGJyZWFrIG1haW47CisgICAgICAgICAgICAgICAgICAgIGEgPSBsaXN0W2krK107IHBvbGFyaXR5IF49IDE7CisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgY2FzZSAyOiAvLyBhIGZpcnN0LCBiIHNlY29uZDsgaWYgYSA8IGIsIG92ZXJsYXAKKyAgICAgICAgICAgICAgICBpZiAoYiA8IGEpIHsgLy8gbm8gb3ZlcmxhcCwgZHJvcCBiCisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0gZWxzZSAgaWYgKGEgPCBiKSB7IC8vIE9WRVJMQVAsIHRha2UgYQorICAgICAgICAgICAgICAgICAgICBidWZmZXJbaysrXSA9IGE7IGEgPSBsaXN0W2krK107IHBvbGFyaXR5IF49IDE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gYSA9PSBiLCBkcm9wIGJvdGghCisgICAgICAgICAgICAgICAgICAgIGlmIChhID09IEhJR0gpIGJyZWFrIG1haW47CisgICAgICAgICAgICAgICAgICAgIGEgPSBsaXN0W2krK107IHBvbGFyaXR5IF49IDE7CisgICAgICAgICAgICAgICAgICAgIGIgPSBvdGhlcltqKytdOyBwb2xhcml0eSBePSAyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBidWZmZXJbaysrXSA9IEhJR0g7ICAgIC8vIHRlcm1pbmF0ZQorICAgICAgICBsZW4gPSBrOworICAgICAgICAvLyBzd2FwIGxpc3QgYW5kIGJ1ZmZlcgorICAgICAgICBpbnRbXSB0ZW1wID0gbGlzdDsKKyAgICAgICAgbGlzdCA9IGJ1ZmZlcjsKKyAgICAgICAgYnVmZmVyID0gdGVtcDsKKyAgICAgICAgcGF0ID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IG1heChpbnQgYSwgaW50IGIpIHsKKyAgICAgICAgcmV0dXJuIChhID4gYikgPyBhIDogYjsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBHZW5lcmljIGZpbHRlci1iYXNlZCBzY2FubmluZyBjb2RlCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnRlcmZhY2UgRmlsdGVyIHsKKyAgICAgICAgYm9vbGVhbiBjb250YWlucyhpbnQgY29kZVBvaW50KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBOdW1lcmljVmFsdWVGaWx0ZXIgaW1wbGVtZW50cyBGaWx0ZXIgeworICAgICAgICBkb3VibGUgdmFsdWU7CisgICAgICAgIE51bWVyaWNWYWx1ZUZpbHRlcihkb3VibGUgdmFsdWUpIHsgdGhpcy52YWx1ZSA9IHZhbHVlOyB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBjaCkgeworICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0VW5pY29kZU51bWVyaWNWYWx1ZShjaCkgPT0gdmFsdWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBHZW5lcmFsQ2F0ZWdvcnlNYXNrRmlsdGVyIGltcGxlbWVudHMgRmlsdGVyIHsKKyAgICAgICAgaW50IG1hc2s7CisgICAgICAgIEdlbmVyYWxDYXRlZ29yeU1hc2tGaWx0ZXIoaW50IG1hc2spIHsgdGhpcy5tYXNrID0gbWFzazsgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgY2gpIHsKKyAgICAgICAgICAgIHJldHVybiAoKDEgPDwgVUNoYXJhY3Rlci5nZXRUeXBlKGNoKSkgJiBtYXNrKSAhPSAwOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgSW50UHJvcGVydHlGaWx0ZXIgaW1wbGVtZW50cyBGaWx0ZXIgeworICAgICAgICBpbnQgcHJvcDsKKyAgICAgICAgaW50IHZhbHVlOworICAgICAgICBJbnRQcm9wZXJ0eUZpbHRlcihpbnQgcHJvcCwgaW50IHZhbHVlKSB7CisgICAgICAgICAgICB0aGlzLnByb3AgPSBwcm9wOworICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zKGludCBjaCkgeworICAgICAgICAgICAgcmV0dXJuIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZShjaCwgcHJvcCkgPT0gdmFsdWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBWZXJzaW9uSW5mbyBmb3IgdW5hc3NpZ25lZCBjaGFyYWN0ZXJzCisgICAgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIE5PX1ZFUlNJT04gPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSgwLCAwLCAwLCAwKTsKKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFZlcnNpb25GaWx0ZXIgaW1wbGVtZW50cyBGaWx0ZXIgeworICAgICAgICBWZXJzaW9uSW5mbyB2ZXJzaW9uOworICAgICAgICBWZXJzaW9uRmlsdGVyKFZlcnNpb25JbmZvIHZlcnNpb24pIHsgdGhpcy52ZXJzaW9uID0gdmVyc2lvbjsgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhpbnQgY2gpIHsKKyAgICAgICAgICAgIFZlcnNpb25JbmZvIHYgPSBVQ2hhcmFjdGVyLmdldEFnZShjaCk7CisgICAgICAgICAgICAvLyBSZWZlcmVuY2UgY29tcGFyaXNvbiBvazsgVmVyc2lvbkluZm8gY2FjaGVzIGFuZCByZXVzZXMKKyAgICAgICAgICAgIC8vIHVuaXF1ZSBvYmplY3RzLgorICAgICAgICAgICAgcmV0dXJuIHYgIT0gTk9fVkVSU0lPTiAmJgorICAgICAgICAgICAgICAgICAgIHYuY29tcGFyZVRvKHZlcnNpb24pIDw9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBzeW5jaHJvbml6ZWQgVW5pY29kZVNldCBnZXRJbmNsdXNpb25zKGludCBzcmMpIHsKKyAgICAgICAgaWYgKElOQ0xVU0lPTlMgPT0gbnVsbCkgeworICAgICAgICAgICAgSU5DTFVTSU9OUyA9IG5ldyBVbmljb2RlU2V0W1VDaGFyYWN0ZXJQcm9wZXJ0eS5TUkNfQ09VTlRdOworICAgICAgICB9CisgICAgICAgIGlmKElOQ0xVU0lPTlNbc3JjXSA9PSBudWxsKSB7CisgICAgICAgICAgICBVbmljb2RlU2V0IGluY2wgPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgc3dpdGNoKHNyYykgeworICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyUHJvcGVydHkuU1JDX0NIQVI6CisgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCkuYWRkUHJvcGVydHlTdGFydHMoaW5jbCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFVDaGFyYWN0ZXJQcm9wZXJ0eS5TUkNfUFJPUFNWRUM6CisgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCkudXByb3BzdmVjX2FkZFByb3BlcnR5U3RhcnRzKGluY2wpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyUHJvcGVydHkuU1JDX0NIQVJfQU5EX1BST1BTVkVDOgorICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRJbnN0YW5jZSgpLmFkZFByb3BlcnR5U3RhcnRzKGluY2wpOworICAgICAgICAgICAgICAgIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRJbnN0YW5jZSgpLnVwcm9wc3ZlY19hZGRQcm9wZXJ0eVN0YXJ0cyhpbmNsKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3RlclByb3BlcnR5LlNSQ19IU1Q6CisgICAgICAgICAgICAgICAgVUNoYXJhY3RlclByb3BlcnR5LmdldEluc3RhbmNlKCkudWhzdF9hZGRQcm9wZXJ0eVN0YXJ0cyhpbmNsKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVUNoYXJhY3RlclByb3BlcnR5LlNSQ19OT1JNOgorICAgICAgICAgICAgICAgIE5vcm1hbGl6ZXJJbXBsLmFkZFByb3BlcnR5U3RhcnRzKGluY2wpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyUHJvcGVydHkuU1JDX0NBU0U6CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgVUNhc2VQcm9wcy5nZXRTaW5nbGV0b24oKS5hZGRQcm9wZXJ0eVN0YXJ0cyhpbmNsKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwiIiwiIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBVQ2hhcmFjdGVyUHJvcGVydHkuU1JDX0JJREk6CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgVUJpRGlQcm9wcy5nZXRTaW5nbGV0b24oKS5hZGRQcm9wZXJ0eVN0YXJ0cyhpbmNsKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwiIiwiIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJVbmljb2RlU2V0LmdldEluY2x1c2lvbnModW5rbm93biBzcmMgIitzcmMrIikiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIElOQ0xVU0lPTlNbc3JjXSA9IGluY2w7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIElOQ0xVU0lPTlNbc3JjXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmljIGZpbHRlci1iYXNlZCBzY2FubmluZyBjb2RlIGZvciBVQ0QgcHJvcGVydHkgVW5pY29kZVNldHMuCisgICAgICovCisgICAgcHJpdmF0ZSBVbmljb2RlU2V0IGFwcGx5RmlsdGVyKEZpbHRlciBmaWx0ZXIsIGludCBzcmMpIHsKKyAgICAgICAgLy8gV2FsayB0aHJvdWdoIGFsbCBVbmljb2RlIGNoYXJhY3RlcnMsIG5vdGluZyB0aGUgc3RhcnQKKyAgICAgICAgLy8gYW5kIGVuZCBvZiBlYWNoIHJhbmdlIGZvciB3aGljaCBmaWx0ZXIuY29udGFpbihjKSBpcworICAgICAgICAvLyB0cnVlLiAgQWRkIGVhY2ggcmFuZ2UgdG8gYSBzZXQuCisgICAgICAgIC8vCisgICAgICAgIC8vIFRvIGltcHJvdmUgcGVyZm9ybWFuY2UsIHVzZSB0aGUgSU5DTFVTSU9OUyBzZXQsIHdoaWNoCisgICAgICAgIC8vIGVuY29kZXMgaW5mb3JtYXRpb24gYWJvdXQgY2hhcmFjdGVyIHJhbmdlcyB0aGF0IGFyZSBrbm93bgorICAgICAgICAvLyB0byBoYXZlIGlkZW50aWNhbCBwcm9wZXJ0aWVzLCBzdWNoIGFzIHRoZSBDSksgSWRlb2dyYXBocworICAgICAgICAvLyBmcm9tIFUrNEUwMCB0byBVKzlGQTUuICBJTkNMVVNJT05TIGNvbnRhaW5zIGFsbCBjaGFyYWN0ZXJzCisgICAgICAgIC8vIGV4Y2VwdCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiBzdWNoIHJhbmdlcy4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gVE9ETyBXaGVyZSBwb3NzaWJsZSwgaW5zdGVhZCBvZiBzY2FubmluZyBvdmVyIGNvZGUgcG9pbnRzLAorICAgICAgICAvLyB1c2UgaW50ZXJuYWwgcHJvcGVydHkgZGF0YSB0byBpbml0aWFsaXplIFVuaWNvZGVTZXRzIGZvcgorICAgICAgICAvLyB0aG9zZSBwcm9wZXJ0aWVzLiAgU2Nhbm5pbmcgY29kZSBwb2ludHMgaXMgc2xvdy4KKworICAgICAgICBjbGVhcigpOworCisgICAgICAgIGludCBzdGFydEhhc1Byb3BlcnR5ID0gLTE7CisgICAgICAgIFVuaWNvZGVTZXQgaW5jbHVzaW9ucyA9IGdldEluY2x1c2lvbnMoc3JjKTsKKyAgICAgICAgaW50IGxpbWl0UmFuZ2UgPSBpbmNsdXNpb25zLmdldFJhbmdlQ291bnQoKTsKKworICAgICAgICBmb3IgKGludCBqPTA7IGo8bGltaXRSYW5nZTsgKytqKSB7CisgICAgICAgICAgICAvLyBnZXQgY3VycmVudCByYW5nZQorICAgICAgICAgICAgaW50IHN0YXJ0ID0gaW5jbHVzaW9ucy5nZXRSYW5nZVN0YXJ0KGopOworICAgICAgICAgICAgaW50IGVuZCA9IGluY2x1c2lvbnMuZ2V0UmFuZ2VFbmQoaik7CisKKyAgICAgICAgICAgIC8vIGZvciBhbGwgdGhlIGNvZGUgcG9pbnRzIGluIHRoZSByYW5nZSwgcHJvY2VzcworICAgICAgICAgICAgZm9yIChpbnQgY2ggPSBzdGFydDsgY2ggPD0gZW5kOyArK2NoKSB7CisgICAgICAgICAgICAgICAgLy8gb25seSBhZGQgdG8gdGhlIHVuaWNvZGVzZXQgb24gaW5mbGVjdGlvbiBwb2ludHMgLS0KKyAgICAgICAgICAgICAgICAvLyB3aGVyZSB0aGUgaGFzUHJvcGVydHkgdmFsdWUgY2hhbmdlcyB0byBmYWxzZQorICAgICAgICAgICAgICAgIGlmIChmaWx0ZXIuY29udGFpbnMoY2gpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydEhhc1Byb3BlcnR5IDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRIYXNQcm9wZXJ0eSA9IGNoOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGFydEhhc1Byb3BlcnR5ID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkKHN0YXJ0SGFzUHJvcGVydHksIGNoLTEpOworICAgICAgICAgICAgICAgICAgICBzdGFydEhhc1Byb3BlcnR5ID0gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChzdGFydEhhc1Byb3BlcnR5ID49IDApIHsKKyAgICAgICAgICAgIGFkZChzdGFydEhhc1Byb3BlcnR5LCAweDEwRkZGRik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBydWxlIHdoaXRlIHNwYWNlIGFuZCBjb21wcmVzcworICAgICAqIGludGVybmFsIHJ1bGUgd2hpdGUgc3BhY2UgdG8gYSBzaW5nbGUgc3BhY2UgY2hhcmFjdGVyLgorICAgICAqCisgICAgICogQHNlZSBVQ2hhcmFjdGVyUHJvcGVydHkjaXNSdWxlV2hpdGVTcGFjZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBtdW5nZUNoYXJOYW1lKFN0cmluZyBzb3VyY2UpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPHNvdXJjZS5sZW5ndGgoKTsgKSB7CisgICAgICAgICAgICBpbnQgY2ggPSBVVEYxNi5jaGFyQXQoc291cmNlLCBpKTsKKyAgICAgICAgICAgIGkgKz0gVVRGMTYuZ2V0Q2hhckNvdW50KGNoKTsKKyAgICAgICAgICAgIGlmIChVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZShjaCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID09IDAgfHwKKyAgICAgICAgICAgICAgICAgICAgYnVmLmNoYXJBdChidWYubGVuZ3RoKCkgLSAxKSA9PSAnICcpIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNoID0gJyAnOyAvLyBjb252ZXJ0IHRvICcgJworICAgICAgICAgICAgfQorICAgICAgICAgICAgVVRGMTYuYXBwZW5kKGJ1ZiwgY2gpOworICAgICAgICB9CisgICAgICAgIGlmIChidWYubGVuZ3RoKCkgIT0gMCAmJgorICAgICAgICAgICAgYnVmLmNoYXJBdChidWYubGVuZ3RoKCkgLSAxKSA9PSAnICcpIHsKKyAgICAgICAgICAgIGJ1Zi5zZXRMZW5ndGgoYnVmLmxlbmd0aCgpIC0gMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGJ1Zi50b1N0cmluZygpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFByb3BlcnR5IHNldCBBUEkKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIE1vZGlmaWVzIHRoaXMgc2V0IHRvIGNvbnRhaW4gdGhvc2UgY29kZSBwb2ludHMgd2hpY2ggaGF2ZSB0aGUKKyAgICAgKiBnaXZlbiB2YWx1ZSBmb3IgdGhlIGdpdmVuIGJpbmFyeSBvciBlbnVtZXJhdGVkIHByb3BlcnR5LCBhcworICAgICAqIHJldHVybmVkIGJ5IFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlWYWx1ZS4gIFByaW9yIGNvbnRlbnRzIG9mCisgICAgICogdGhpcyBzZXQgYXJlIGxvc3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcCBhIHByb3BlcnR5IGluIHRoZSByYW5nZQorICAgICAqIFVQcm9wZXJ0eS5CSU5fU1RBUlQuLlVQcm9wZXJ0eS5CSU5fTElNSVQtMSBvcgorICAgICAqIFVQcm9wZXJ0eS5JTlRfU1RBUlQuLlVQcm9wZXJ0eS5JTlRfTElNSVQtMSBvci4KKyAgICAgKiBVUHJvcGVydHkuTUFTS19TVEFSVC4uVVByb3BlcnR5Lk1BU0tfTElNSVQtMS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZSBhIHZhbHVlIGluIHRoZSByYW5nZQorICAgICAqIFVDaGFyYWN0ZXIuZ2V0SW50UHJvcGVydHlNaW5WYWx1ZShwcm9wKS4uCisgICAgICogVUNoYXJhY3Rlci5nZXRJbnRQcm9wZXJ0eU1heFZhbHVlKHByb3ApLCB3aXRoIG9uZSBleGNlcHRpb24uCisgICAgICogSWYgcHJvcCBpcyBVUHJvcGVydHkuR0VORVJBTF9DQVRFR09SWV9NQVNLLCB0aGVuIHZhbHVlIHNob3VsZCBub3QgYmUKKyAgICAgKiBhIFVDaGFyYWN0ZXIuZ2V0VHlwZSgpIHJlc3VsdCwgYnV0IHJhdGhlciBhIG1hc2sgdmFsdWUgcHJvZHVjZWQKKyAgICAgKiBieSBsb2dpY2FsbHkgT1JpbmcgKDEgPDwgVUNoYXJhY3Rlci5nZXRUeXBlKCkpIHZhbHVlcyB0b2dldGhlci4KKyAgICAgKiBUaGlzIGFsbG93cyBncm91cGVkIGNhdGVnb3JpZXMgc3VjaCBhcyBbOkw6XSB0byBiZSByZXByZXNlbnRlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhpcyBzZXQKKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGFwcGx5SW50UHJvcGVydHlWYWx1ZShpbnQgcHJvcCwgaW50IHZhbHVlKSB7CisgICAgICAgIGlmIChwcm9wID09IFVQcm9wZXJ0eS5HRU5FUkFMX0NBVEVHT1JZX01BU0spIHsKKyAgICAgICAgICAgIGFwcGx5RmlsdGVyKG5ldyBHZW5lcmFsQ2F0ZWdvcnlNYXNrRmlsdGVyKHZhbHVlKSwgVUNoYXJhY3RlclByb3BlcnR5LlNSQ19DSEFSKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFwcGx5RmlsdGVyKG5ldyBJbnRQcm9wZXJ0eUZpbHRlcihwcm9wLCB2YWx1ZSksIFVDaGFyYWN0ZXJQcm9wZXJ0eS5nZXRJbnN0YW5jZSgpLmdldFNvdXJjZShwcm9wKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisKKworICAgIC8qKgorICAgICAqIE1vZGlmaWVzIHRoaXMgc2V0IHRvIGNvbnRhaW4gdGhvc2UgY29kZSBwb2ludHMgd2hpY2ggaGF2ZSB0aGUKKyAgICAgKiBnaXZlbiB2YWx1ZSBmb3IgdGhlIGdpdmVuIHByb3BlcnR5LiAgUHJpb3IgY29udGVudHMgb2YgdGhpcworICAgICAqIHNldCBhcmUgbG9zdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eUFsaWFzIGEgcHJvcGVydHkgYWxpYXMsIGVpdGhlciBzaG9ydCBvciBsb25nLgorICAgICAqIFRoZSBuYW1lIGlzIG1hdGNoZWQgbG9vc2VseS4gIFNlZSBQcm9wZXJ0eUFsaWFzZXMudHh0IGZvciBuYW1lcworICAgICAqIGFuZCBhIGRlc2NyaXB0aW9uIG9mIGxvb3NlIG1hdGNoaW5nLiAgSWYgdGhlIHZhbHVlIHN0cmluZyBpcworICAgICAqIGVtcHR5LCB0aGVuIHRoaXMgc3RyaW5nIGlzIGludGVycHJldGVkIGFzIGVpdGhlciBhCisgICAgICogR2VuZXJhbF9DYXRlZ29yeSB2YWx1ZSBhbGlhcywgYSBTY3JpcHQgdmFsdWUgYWxpYXMsIGEgYmluYXJ5CisgICAgICogcHJvcGVydHkgYWxpYXMsIG9yIGEgc3BlY2lhbCBJRC4gIFNwZWNpYWwgSURzIGFyZSBtYXRjaGVkCisgICAgICogbG9vc2VseSBhbmQgY29ycmVzcG9uZCB0byB0aGUgZm9sbG93aW5nIHNldHM6CisgICAgICoKKyAgICAgKiAiQU5ZIiA9IFtcdTAwMDAtXFUwMDEwRkZGRl0sCisgICAgICogIkFTQ0lJIiA9IFtcdTAwMDAtXHUwMDdGXS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZUFsaWFzIGEgdmFsdWUgYWxpYXMsIGVpdGhlciBzaG9ydCBvciBsb25nLiAgVGhlCisgICAgICogbmFtZSBpcyBtYXRjaGVkIGxvb3NlbHkuICBTZWUgUHJvcGVydHlWYWx1ZUFsaWFzZXMudHh0IGZvcgorICAgICAqIG5hbWVzIGFuZCBhIGRlc2NyaXB0aW9uIG9mIGxvb3NlIG1hdGNoaW5nLiAgSW4gYWRkaXRpb24gdG8KKyAgICAgKiBhbGlhc2VzIGxpc3RlZCwgbnVtZXJpYyB2YWx1ZXMgYW5kIGNhbm9uaWNhbCBjb21iaW5pbmcgY2xhc3NlcworICAgICAqIG1heSBiZSBleHByZXNzZWQgbnVtZXJpY2FsbHksIGUuZy4sICgibnYiLCAiMC41Iikgb3IgKCJjY2MiLAorICAgICAqICIyMjAiKS4gIFRoZSB2YWx1ZSBzdHJpbmcgbWF5IGFsc28gYmUgZW1wdHkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoaXMgc2V0CisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBhcHBseVByb3BlcnR5QWxpYXMoU3RyaW5nIHByb3BlcnR5QWxpYXMsIFN0cmluZyB2YWx1ZUFsaWFzKSB7CisgICAgICAgIHJldHVybiBhcHBseVByb3BlcnR5QWxpYXMocHJvcGVydHlBbGlhcywgdmFsdWVBbGlhcywgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTW9kaWZpZXMgdGhpcyBzZXQgdG8gY29udGFpbiB0aG9zZSBjb2RlIHBvaW50cyB3aGljaCBoYXZlIHRoZQorICAgICAqIGdpdmVuIHZhbHVlIGZvciB0aGUgZ2l2ZW4gcHJvcGVydHkuICBQcmlvciBjb250ZW50cyBvZiB0aGlzCisgICAgICogc2V0IGFyZSBsb3N0LgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eUFsaWFzCisgICAgICogQHBhcmFtIHZhbHVlQWxpYXMKKyAgICAgKiBAcGFyYW0gc3ltYm9scyBpZiBub3QgbnVsbCwgdGhlbiBzeW1ib2xzIGFyZSBmaXJzdCBjYWxsZWQgdG8gc2VlIGlmIGEgcHJvcGVydHkKKyAgICAgKiBpcyBhdmFpbGFibGUuIElmIHRydWUsIHRoZW4gZXZlcnl0aGluZyBlbHNlIGlzIHNraXBwZWQuCisgICAgICogQHJldHVybiB0aGlzIHNldAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXQgYXBwbHlQcm9wZXJ0eUFsaWFzKFN0cmluZyBwcm9wZXJ0eUFsaWFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdmFsdWVBbGlhcywgU3ltYm9sVGFibGUgc3ltYm9scykgeworICAgICAgICBpbnQgcDsKKyAgICAgICAgaW50IHY7CisgICAgICAgIGJvb2xlYW4gbXVzdE5vdEJlRW1wdHkgPSBmYWxzZSwgaW52ZXJ0ID0gZmFsc2U7CisKKyAgICAgICAgaWYgKHN5bWJvbHMgIT0gbnVsbAorICAgICAgICAgICAgICAgICYmIChzeW1ib2xzIGluc3RhbmNlb2YgWFN5bWJvbFRhYmxlKQorICAgICAgICAgICAgICAgICYmICgoWFN5bWJvbFRhYmxlKXN5bWJvbHMpLmFwcGx5UHJvcGVydHlBbGlhcyhwcm9wZXJ0eUFsaWFzLCB2YWx1ZUFsaWFzLCB0aGlzKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHZhbHVlQWxpYXMubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBwID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eUVudW0ocHJvcGVydHlBbGlhcyk7CisKKyAgICAgICAgICAgIC8vIFRyZWF0IGdjIGFzIGdjbQorICAgICAgICAgICAgaWYgKHAgPT0gVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUlkpIHsKKyAgICAgICAgICAgICAgICBwID0gVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKChwID49IFVQcm9wZXJ0eS5CSU5BUllfU1RBUlQgJiYgcCA8IFVQcm9wZXJ0eS5CSU5BUllfTElNSVQpIHx8CisgICAgICAgICAgICAgICAgKHAgPj0gVVByb3BlcnR5LklOVF9TVEFSVCAmJiBwIDwgVVByb3BlcnR5LklOVF9MSU1JVCkgfHwKKyAgICAgICAgICAgICAgICAocCA+PSBVUHJvcGVydHkuTUFTS19TVEFSVCAmJiBwIDwgVVByb3BlcnR5Lk1BU0tfTElNSVQpKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgdiA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlWYWx1ZUVudW0ocCwgdmFsdWVBbGlhcyk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSGFuZGxlIG51bWVyaWMgQ0NDCisgICAgICAgICAgICAgICAgICAgIGlmIChwID09IFVQcm9wZXJ0eS5DQU5PTklDQUxfQ09NQklOSU5HX0NMQVNTIHx8CisgICAgICAgICAgICAgICAgICAgICAgICBwID09IFVQcm9wZXJ0eS5MRUFEX0NBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgIHAgPT0gVVByb3BlcnR5LlRSQUlMX0NBTk9OSUNBTF9DT01CSU5JTkdfQ0xBU1MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHYgPSBJbnRlZ2VyLnBhcnNlSW50KFV0aWxpdHkuZGVsZXRlUnVsZVdoaXRlU3BhY2UodmFsdWVBbGlhcykpOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHJlc3VsdGFudCBzZXQgaXMgZW1wdHkgdGhlbiB0aGUgbnVtZXJpYyB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2FzIGludmFsaWQuCisgICAgICAgICAgICAgICAgICAgICAgICBtdXN0Tm90QmVFbXB0eSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbHNlIHsKKworICAgICAgICAgICAgICAgIHN3aXRjaCAocCkgeworICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5Lk5VTUVSSUNfVkFMVUU6CisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB2YWx1ZSA9IERvdWJsZS5wYXJzZURvdWJsZShVdGlsaXR5LmRlbGV0ZVJ1bGVXaGl0ZVNwYWNlKHZhbHVlQWxpYXMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGx5RmlsdGVyKG5ldyBOdW1lcmljVmFsdWVGaWx0ZXIodmFsdWUpLCBVQ2hhcmFjdGVyUHJvcGVydHkuU1JDX0NIQVIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIFVQcm9wZXJ0eS5OQU1FOgorICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LlVOSUNPREVfMV9OQU1FOgorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBNdXN0IG11bmdlIG5hbWUsIHNpbmNlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBVQ2hhcmFjdGVyLmNoYXJGcm9tTmFtZSgpIGRvZXMgbm90IGRvCisgICAgICAgICAgICAgICAgICAgICAgICAvLyAnbG9vc2UnIG1hdGNoaW5nLgorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGJ1ZiA9IG11bmdlQ2hhck5hbWUodmFsdWVBbGlhcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2ggPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwID09IFVQcm9wZXJ0eS5OQU1FKSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNoYXJhY3Rlci5nZXRDaGFyRnJvbUV4dGVuZGVkTmFtZShidWYpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQ2hhcmFjdGVyLmdldENoYXJGcm9tTmFtZTFfMChidWYpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjaGFyYWN0ZXIgbmFtZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZChjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhc2UgVVByb3BlcnR5LkFHRToKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gTXVzdCBtdW5nZSBuYW1lLCBzaW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVmVyc2lvbkluZm8uZ2V0SW5zdGFuY2UoKSBkb2VzIG5vdCBkbworICAgICAgICAgICAgICAgICAgICAgICAgLy8gJ2xvb3NlJyBtYXRjaGluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb25JbmZvIHZlcnNpb24gPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZShtdW5nZUNoYXJOYW1lKHZhbHVlQWxpYXMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGx5RmlsdGVyKG5ldyBWZXJzaW9uRmlsdGVyKHZlcnNpb24pLCBVQ2hhcmFjdGVyUHJvcGVydHkuU1JDX1BST1BTVkVDKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gcCBpcyBhIG5vbi1iaW5hcnksIG5vbi1lbnVtZXJhdGVkIHByb3BlcnR5IHRoYXQgd2UKKyAgICAgICAgICAgICAgICAvLyBkb24ndCBzdXBwb3J0ICh5ZXQpLgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlVuc3VwcG9ydGVkIHByb3BlcnR5Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIHZhbHVlQWxpYXMgaXMgZW1wdHkuICBJbnRlcnByZXQgYXMgR2VuZXJhbCBDYXRlZ29yeSwgU2NyaXB0LAorICAgICAgICAgICAgLy8gQmluYXJ5IHByb3BlcnR5LCBvciBBTlkgb3IgQVNDSUkuICBVcG9uIHN1Y2Nlc3MsIHAgYW5kIHYgd2lsbAorICAgICAgICAgICAgLy8gYmUgc2V0LgorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBwID0gVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSzsKKyAgICAgICAgICAgICAgICB2ID0gVUNoYXJhY3Rlci5nZXRQcm9wZXJ0eVZhbHVlRW51bShwLCBwcm9wZXJ0eUFsaWFzKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcCA9IFVQcm9wZXJ0eS5TQ1JJUFQ7CisgICAgICAgICAgICAgICAgICAgIHYgPSBVQ2hhcmFjdGVyLmdldFByb3BlcnR5VmFsdWVFbnVtKHAsIHByb3BlcnR5QWxpYXMpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlMikgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgcCA9IFVDaGFyYWN0ZXIuZ2V0UHJvcGVydHlFbnVtKHByb3BlcnR5QWxpYXMpOworICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZTMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHAgPSAtMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAocCA+PSBVUHJvcGVydHkuQklOQVJZX1NUQVJUICYmIHAgPCBVUHJvcGVydHkuQklOQVJZX0xJTUlUKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoMCA9PSBVUHJvcGVydHlBbGlhc2VzLmNvbXBhcmUoQU5ZX0lELCBwcm9wZXJ0eUFsaWFzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldChNSU5fVkFMVUUsIE1BWF9WQUxVRSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKDAgPT0gVVByb3BlcnR5QWxpYXNlcy5jb21wYXJlKEFTQ0lJX0lELCBwcm9wZXJ0eUFsaWFzKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCgwLCAweDdGKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoMCA9PSBVUHJvcGVydHlBbGlhc2VzLmNvbXBhcmUoQVNTSUdORUQsIHByb3BlcnR5QWxpYXMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gWzpBc3NpZ25lZDpdPVs6XkNuOl0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwID0gVVByb3BlcnR5LkdFTkVSQUxfQ0FURUdPUllfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gKDE8PFVDaGFyYWN0ZXIuVU5BU1NJR05FRCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52ZXJ0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJvcGVydHkgbmFtZSB3YXMgbmV2ZXIgbWF0Y2hlZC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHByb3BlcnR5IGFsaWFzOiAiICsgcHJvcGVydHlBbGlhcyArICI9IiArIHZhbHVlQWxpYXMpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVmFsaWQgcHJvcGVyeSBuYW1lLCBidXQgaXQgaXNuJ3QgYmluYXJ5LCBzbyB0aGUgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG11c3QgYmUgc3VwcGxpZWQuCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJNaXNzaW5nIHByb3BlcnR5IHZhbHVlIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBhcHBseUludFByb3BlcnR5VmFsdWUocCwgdik7CisgICAgICAgIGlmKGludmVydCkgeworICAgICAgICAgICAgY29tcGxlbWVudCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG11c3ROb3RCZUVtcHR5ICYmIGlzRW1wdHkoKSkgeworICAgICAgICAgICAgLy8gbXVzdE5vdEJlRW1wdHkgaXMgc2V0IHRvIHRydWUgaWYgYW4gZW1wdHkgc2V0IGluZGljYXRlcworICAgICAgICAgICAgLy8gaW52YWxpZCBpbnB1dC4KKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcHJvcGVydHkgdmFsdWUiKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFByb3BlcnR5IHNldCBwYXR0ZXJucworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIHBvc2l0aW9uLCBpbiB0aGUgZ2l2ZW4gcGF0dGVybiwgYXBwZWFycworICAgICAqIHRvIGJlIHRoZSBzdGFydCBvZiBhIHByb3BlcnR5IHNldCBwYXR0ZXJuLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gcmVzZW1ibGVzUHJvcGVydHlQYXR0ZXJuKFN0cmluZyBwYXR0ZXJuLCBpbnQgcG9zKSB7CisgICAgICAgIC8vIFBhdHRlcm5zIGFyZSBhdCBsZWFzdCA1IGNoYXJhY3RlcnMgbG9uZworICAgICAgICBpZiAoKHBvcys1KSA+IHBhdHRlcm4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIExvb2sgZm9yIGFuIG9wZW5pbmcgWzosIFs6XiwgXHAsIG9yIFxQCisgICAgICAgIHJldHVybiBwYXR0ZXJuLnJlZ2lvbk1hdGNoZXMocG9zLCAiWzoiLCAwLCAyKSB8fAorICAgICAgICAgICAgcGF0dGVybi5yZWdpb25NYXRjaGVzKHRydWUsIHBvcywgIlxccCIsIDAsIDIpIHx8CisgICAgICAgICAgICBwYXR0ZXJuLnJlZ2lvbk1hdGNoZXMocG9zLCAiXFxOIiwgMCwgMik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGl0ZXJhdG9yIGFwcGVhcnMgdG8gcG9pbnQgYXQgYQorICAgICAqIHByb3BlcnR5IHBhdHRlcm4uICBSZWdhcmRsZXNzIG9mIHRoZSByZXN1bHQsIHJldHVybiB3aXRoIHRoZQorICAgICAqIGl0ZXJhdG9yIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gY2hhcnMgaXRlcmF0b3Igb3ZlciB0aGUgcGF0dGVybiBjaGFyYWN0ZXJzLiAgVXBvbiByZXR1cm4KKyAgICAgKiBpdCB3aWxsIGJlIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gaXRlck9wdHMgUnVsZUNoYXJhY3Rlckl0ZXJhdG9yIG9wdGlvbnMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIHJlc2VtYmxlc1Byb3BlcnR5UGF0dGVybihSdWxlQ2hhcmFjdGVySXRlcmF0b3IgY2hhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl0ZXJPcHRzKSB7CisgICAgICAgIGJvb2xlYW4gcmVzdWx0ID0gZmFsc2U7CisgICAgICAgIGl0ZXJPcHRzICY9IH5SdWxlQ2hhcmFjdGVySXRlcmF0b3IuUEFSU0VfRVNDQVBFUzsKKyAgICAgICAgT2JqZWN0IHBvcyA9IGNoYXJzLmdldFBvcyhudWxsKTsKKyAgICAgICAgaW50IGMgPSBjaGFycy5uZXh0KGl0ZXJPcHRzKTsKKyAgICAgICAgaWYgKGMgPT0gJ1snIHx8IGMgPT0gJ1xcJykgeworICAgICAgICAgICAgaW50IGQgPSBjaGFycy5uZXh0KGl0ZXJPcHRzICYgflJ1bGVDaGFyYWN0ZXJJdGVyYXRvci5TS0lQX1dISVRFU1BBQ0UpOworICAgICAgICAgICAgcmVzdWx0ID0gKGMgPT0gJ1snKSA/IChkID09ICc6JykgOgorICAgICAgICAgICAgICAgICAgICAgKGQgPT0gJ04nIHx8IGQgPT0gJ3AnIHx8IGQgPT0gJ1AnKTsKKyAgICAgICAgfQorICAgICAgICBjaGFycy5zZXRQb3MocG9zKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSB0aGUgZ2l2ZW4gcHJvcGVydHkgcGF0dGVybiBhdCB0aGUgZ2l2ZW4gcGFyc2UgcG9zaXRpb24uCisgICAgICogQHBhcmFtIHN5bWJvbHMgVE9ETworICAgICAqLworICAgIHByaXZhdGUgVW5pY29kZVNldCBhcHBseVByb3BlcnR5UGF0dGVybihTdHJpbmcgcGF0dGVybiwgUGFyc2VQb3NpdGlvbiBwcG9zLCBTeW1ib2xUYWJsZSBzeW1ib2xzKSB7CisgICAgICAgIGludCBwb3MgPSBwcG9zLmdldEluZGV4KCk7CisKKyAgICAgICAgLy8gT24gZW50cnksIHBwb3Mgc2hvdWxkIHBvaW50IHRvIG9uZSBvZiB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczoKKworICAgICAgICAvLyBNaW5pbXVtIGxlbmd0aCBpcyA1IGNoYXJhY3RlcnMsIGUuZy4gXHB7TH0KKyAgICAgICAgaWYgKChwb3MrNSkgPiBwYXR0ZXJuLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gcG9zaXggPSBmYWxzZTsgLy8gdHJ1ZSBmb3IgWzpwYXQ6XSwgZmFsc2UgZm9yIFxwe3BhdH0gXFB7cGF0fSBcTntwYXR9CisgICAgICAgIGJvb2xlYW4gaXNOYW1lID0gZmFsc2U7IC8vIHRydWUgZm9yIFxOe3BhdH0sIG8vdyBmYWxzZQorICAgICAgICBib29sZWFuIGludmVydCA9IGZhbHNlOworCisgICAgICAgIC8vIExvb2sgZm9yIGFuIG9wZW5pbmcgWzosIFs6XiwgXHAsIG9yIFxQCisgICAgICAgIGlmIChwYXR0ZXJuLnJlZ2lvbk1hdGNoZXMocG9zLCAiWzoiLCAwLCAyKSkgeworICAgICAgICAgICAgcG9zaXggPSB0cnVlOworICAgICAgICAgICAgcG9zID0gVXRpbGl0eS5za2lwV2hpdGVzcGFjZShwYXR0ZXJuLCBwb3MrMik7CisgICAgICAgICAgICBpZiAocG9zIDwgcGF0dGVybi5sZW5ndGgoKSAmJiBwYXR0ZXJuLmNoYXJBdChwb3MpID09ICdeJykgeworICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgICAgIGludmVydCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAocGF0dGVybi5yZWdpb25NYXRjaGVzKHRydWUsIHBvcywgIlxccCIsIDAsIDIpIHx8CisgICAgICAgICAgICAgICAgICAgcGF0dGVybi5yZWdpb25NYXRjaGVzKHBvcywgIlxcTiIsIDAsIDIpKSB7CisgICAgICAgICAgICBjaGFyIGMgPSBwYXR0ZXJuLmNoYXJBdChwb3MrMSk7CisgICAgICAgICAgICBpbnZlcnQgPSAoYyA9PSAnUCcpOworICAgICAgICAgICAgaXNOYW1lID0gKGMgPT0gJ04nKTsKKyAgICAgICAgICAgIHBvcyA9IFV0aWxpdHkuc2tpcFdoaXRlc3BhY2UocGF0dGVybiwgcG9zKzIpOworICAgICAgICAgICAgaWYgKHBvcyA9PSBwYXR0ZXJuLmxlbmd0aCgpIHx8IHBhdHRlcm4uY2hhckF0KHBvcysrKSAhPSAneycpIHsKKyAgICAgICAgICAgICAgICAvLyBTeW50YXggZXJyb3I7ICJccCIgb3IgIlxQIiBub3QgZm9sbG93ZWQgYnkgInsiCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBPcGVuIGRlbGltaXRlciBub3Qgc2VlbgorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBMb29rIGZvciB0aGUgbWF0Y2hpbmcgY2xvc2UgZGVsaW1pdGVyLCBlaXRoZXIgOl0gb3IgfQorICAgICAgICBpbnQgY2xvc2UgPSBwYXR0ZXJuLmluZGV4T2YocG9zaXggPyAiOl0iIDogIn0iLCBwb3MpOworICAgICAgICBpZiAoY2xvc2UgPCAwKSB7CisgICAgICAgICAgICAvLyBTeW50YXggZXJyb3I7IGNsb3NlIGRlbGltaXRlciBtaXNzaW5nCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIExvb2sgZm9yIGFuICc9JyBzaWduLiAgSWYgdGhpcyBpcyBwcmVzZW50LCB3ZSB3aWxsIHBhcnNlIGEKKyAgICAgICAgLy8gbWVkaXVtIFxwe2djPUNmfSBvciBsb25nIFxwe0dlbmVyYWxDYXRlZ29yeT1Gb3JtYXR9CisgICAgICAgIC8vIHBhdHRlcm4uCisgICAgICAgIGludCBlcXVhbHMgPSBwYXR0ZXJuLmluZGV4T2YoJz0nLCBwb3MpOworICAgICAgICBTdHJpbmcgcHJvcE5hbWUsIHZhbHVlTmFtZTsKKyAgICAgICAgaWYgKGVxdWFscyA+PSAwICYmIGVxdWFscyA8IGNsb3NlICYmICFpc05hbWUpIHsKKyAgICAgICAgICAgIC8vIEVxdWFscyBzZWVuOyBwYXJzZSBtZWRpdW0vbG9uZyBwYXR0ZXJuCisgICAgICAgICAgICBwcm9wTmFtZSA9IHBhdHRlcm4uc3Vic3RyaW5nKHBvcywgZXF1YWxzKTsKKyAgICAgICAgICAgIHZhbHVlTmFtZSA9IHBhdHRlcm4uc3Vic3RyaW5nKGVxdWFscysxLCBjbG9zZSk7CisgICAgICAgIH0KKworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8vIEhhbmRsZSBjYXNlIHdoZXJlIG5vICc9JyBpcyBzZWVuLCBhbmQgXE57fQorICAgICAgICAgICAgcHJvcE5hbWUgPSBwYXR0ZXJuLnN1YnN0cmluZyhwb3MsIGNsb3NlKTsKKyAgICAgICAgICAgIHZhbHVlTmFtZSA9ICIiOworCisgICAgICAgICAgICAvLyBIYW5kbGUgXE57bmFtZX0KKyAgICAgICAgICAgIGlmIChpc05hbWUpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgbGl0dGxlIGluZWZmaWNpZW50IHNpbmNlIGl0IG1lYW5zIHdlIGhhdmUgdG8KKyAgICAgICAgICAgICAgICAvLyBwYXJzZSAibmEiIGJhY2sgdG8gVVByb3BlcnR5Lk5BTUUgZXZlbiB0aG91Z2ggd2UgYWxyZWFkeQorICAgICAgICAgICAgICAgIC8vIGtub3cgaXQncyBVUHJvcGVydHkuTkFNRS4gIElmIHdlIHJlZmFjdG9yIHRoZSBBUEkgdG8KKyAgICAgICAgICAgICAgICAvLyBzdXBwb3J0IGFyZ3Mgb2YgKGludCwgU3RyaW5nKSB0aGVuIHdlIGNhbiByZW1vdmUKKyAgICAgICAgICAgICAgICAvLyAibmEiIGFuZCBtYWtlIHRoaXMgYSBsaXR0bGUgbW9yZSBlZmZpY2llbnQuCisgICAgICAgICAgICAgICAgdmFsdWVOYW1lID0gcHJvcE5hbWU7CisgICAgICAgICAgICAgICAgcHJvcE5hbWUgPSAibmEiOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYXBwbHlQcm9wZXJ0eUFsaWFzKHByb3BOYW1lLCB2YWx1ZU5hbWUsIHN5bWJvbHMpOworCisgICAgICAgIGlmIChpbnZlcnQpIHsKKyAgICAgICAgICAgIGNvbXBsZW1lbnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1vdmUgdG8gdGhlIGxpbWl0IHBvc2l0aW9uIGFmdGVyIHRoZSBjbG9zZSBkZWxpbWl0ZXIKKyAgICAgICAgcHBvcy5zZXRJbmRleChjbG9zZSArIChwb3NpeCA/IDIgOiAxKSk7CisKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgYSBwcm9wZXJ0eSBwYXR0ZXJuLgorICAgICAqIEBwYXJhbSBjaGFycyBpdGVyYXRvciBvdmVyIHRoZSBwYXR0ZXJuIGNoYXJhY3RlcnMuICBVcG9uIHJldHVybgorICAgICAqIGl0IHdpbGwgYmUgYWR2YW5jZWQgdG8gdGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgcGFyc2VkCisgICAgICogcGF0dGVybiwgb3IgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uIGlmIGFsbCBjaGFyYWN0ZXJzIGFyZQorICAgICAqIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gcmVidWlsdFBhdCB0aGUgcGF0dGVybiB0aGF0IHdhcyBwYXJzZWQsIHJlYnVpbHQgb3IKKyAgICAgKiBjb3BpZWQgZnJvbSB0aGUgaW5wdXQgcGF0dGVybiwgYXMgYXBwcm9wcmlhdGUuCisgICAgICogQHBhcmFtIHN5bWJvbHMgVE9ETworICAgICAqLworICAgIHByaXZhdGUgdm9pZCBhcHBseVByb3BlcnR5UGF0dGVybihSdWxlQ2hhcmFjdGVySXRlcmF0b3IgY2hhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZ0J1ZmZlciByZWJ1aWx0UGF0LCBTeW1ib2xUYWJsZSBzeW1ib2xzKSB7CisgICAgICAgIFN0cmluZyBwYXQgPSBjaGFycy5sb29rYWhlYWQoKTsKKyAgICAgICAgUGFyc2VQb3NpdGlvbiBwb3MgPSBuZXcgUGFyc2VQb3NpdGlvbigwKTsKKyAgICAgICAgYXBwbHlQcm9wZXJ0eVBhdHRlcm4ocGF0LCBwb3MsIHN5bWJvbHMpOworICAgICAgICBpZiAocG9zLmdldEluZGV4KCkgPT0gMCkgeworICAgICAgICAgICAgc3ludGF4RXJyb3IoY2hhcnMsICJJbnZhbGlkIHByb3BlcnR5IHBhdHRlcm4iKTsKKyAgICAgICAgfQorICAgICAgICBjaGFycy5qdW1wYWhlYWQocG9zLmdldEluZGV4KCkpOworICAgICAgICByZWJ1aWx0UGF0LmFwcGVuZChwYXQuc3Vic3RyaW5nKDAsIHBvcy5nZXRJbmRleCgpKSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ2FzZSBmb2xkaW5nIEFQSQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQml0bWFzayBmb3IgY29uc3RydWN0b3IgYW5kIGFwcGx5UGF0dGVybigpIGluZGljYXRpbmcgdGhhdAorICAgICAqIHdoaXRlIHNwYWNlIHNob3VsZCBiZSBpZ25vcmVkLiAgSWYgc2V0LCBpZ25vcmUgY2hhcmFjdGVycyBmb3IKKyAgICAgKiB3aGljaCBVQ2hhcmFjdGVyUHJvcGVydHkuaXNSdWxlV2hpdGVTcGFjZSgpIHJldHVybnMgdHJ1ZSwKKyAgICAgKiB1bmxlc3MgdGhleSBhcmUgcXVvdGVkIG9yIGVzY2FwZWQuICBUaGlzIG1heSBiZSBPUmVkIHRvZ2V0aGVyCisgICAgICogd2l0aCBvdGhlciBzZWxlY3RvcnMuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSUdOT1JFX1NQQUNFID0gMTsKKworICAgIC8qKgorICAgICAqIEJpdG1hc2sgZm9yIGNvbnN0cnVjdG9yLCBhcHBseVBhdHRlcm4oKSwgYW5kIGNsb3NlT3ZlcigpCisgICAgICogaW5kaWNhdGluZyBsZXR0ZXIgY2FzZS4gIFRoaXMgbWF5IGJlIE9SZWQgdG9nZXRoZXIgd2l0aCBvdGhlcgorICAgICAqIHNlbGVjdG9ycy4KKyAgICAgKgorICAgICAqIEVuYWJsZSBjYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nLiAgRS5nLiwgIlthYl0iIHdpdGggdGhpcyBmbGFnCisgICAgICogd2lsbCBtYXRjaCAnYScsICdBJywgJ2InLCBhbmQgJ0InLiAgIlteYWJdIiB3aXRoIHRoaXMgZmxhZyB3aWxsCisgICAgICogbWF0Y2ggYWxsIGV4Y2VwdCAnYScsICdBJywgJ2InLCBhbmQgJ0InLiBUaGlzIHBlcmZvcm1zIGEgZnVsbAorICAgICAqIGNsb3N1cmUgb3ZlciBjYXNlIG1hcHBpbmdzLCBlLmcuIFUrMDE3RiBmb3Igcy4KKyAgICAgKgorICAgICAqIFRoZSByZXN1bHRpbmcgc2V0IGlzIGEgc3VwZXJzZXQgb2YgdGhlIGlucHV0IGZvciB0aGUgY29kZSBwb2ludHMgYnV0CisgICAgICogbm90IGZvciB0aGUgc3RyaW5ncy4KKyAgICAgKiBJdCBwZXJmb3JtcyBhIGNhc2UgbWFwcGluZyBjbG9zdXJlIG9mIHRoZSBjb2RlIHBvaW50cyBhbmQgYWRkcworICAgICAqIGZ1bGwgY2FzZSBmb2xkaW5nIHN0cmluZ3MgZm9yIHRoZSBjb2RlIHBvaW50cywgYW5kIHJlZHVjZXMgc3RyaW5ncyBvZgorICAgICAqIHRoZSBvcmlnaW5hbCBzZXQgdG8gdGhlaXIgZnVsbCBjYXNlIGZvbGRpbmcgZXF1aXZhbGVudHMuCisgICAgICoKKyAgICAgKiBUaGlzIGlzIGRlc2lnbmVkIGZvciBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoZXMsIGZvciBleGFtcGxlCisgICAgICogaW4gcmVndWxhciBleHByZXNzaW9ucy4gVGhlIGZ1bGwgY29kZSBwb2ludCBjYXNlIGNsb3N1cmUgYWxsb3dzIGNoZWNraW5nIG9mCisgICAgICogYW4gaW5wdXQgY2hhcmFjdGVyIGRpcmVjdGx5IGFnYWluc3QgdGhlIGNsb3N1cmUgc2V0LgorICAgICAqIFN0cmluZ3MgYXJlIG1hdGNoZWQgYnkgY29tcGFyaW5nIHRoZSBjYXNlLWZvbGRlZCBmb3JtIGZyb20gdGhlIGNsb3N1cmUKKyAgICAgKiBzZXQgd2l0aCBhbiBpbmNyZW1lbnRhbCBjYXNlIGZvbGRpbmcgb2YgdGhlIHN0cmluZyBpbiBxdWVzdGlvbi4KKyAgICAgKgorICAgICAqIFRoZSBjbG9zdXJlIHNldCB3aWxsIGFsc28gY29udGFpbiBzaW5nbGUgY29kZSBwb2ludHMgaWYgdGhlIG9yaWdpbmFsCisgICAgICogc2V0IGNvbnRhaW5lZCBjYXNlLWVxdWl2YWxlbnQgc3RyaW5ncyAobGlrZSBVKzAwREYgZm9yICJzcyIgb3IgIlNzIiBldGMuKS4KKyAgICAgKiBUaGlzIGlzIG5vdCBuZWNlc3NhcnkgKHRoYXQgaXMsIHJlZHVuZGFudCkgZm9yIHRoZSBhYm92ZSBtYXRjaGluZyBtZXRob2QKKyAgICAgKiBidXQgcmVzdWx0cyBpbiB0aGUgc2FtZSBjbG9zdXJlIHNldHMgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBvcmlnaW5hbAorICAgICAqIHNldCBjb250YWluZWQgdGhlIGNvZGUgcG9pbnQgb3IgYSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDQVNFID0gMjsKKworICAgIC8qKgorICAgICAqIEFsaWFzIGZvciBVbmljb2RlU2V0LkNBU0UsIGZvciBlYXNlIG9mIHBvcnRpbmcgZnJvbSBDKysgd2hlcmUgSUNVNEMKKyAgICAgKiBhbHNvIGhhcyBib3RoIFVTRVRfQ0FTRSBhbmQgVVNFVF9DQVNFX0lOU0VOU0lUSVZFIChzZWUgdXNldC5oKS4KKyAgICAgKiBAc2VlICNDQVNFCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDQVNFX0lOU0VOU0lUSVZFID0gMjsKKworICAgIC8qKgorICAgICAqIEJpdG1hc2sgZm9yIGNvbnN0cnVjdG9yLCBhcHBseVBhdHRlcm4oKSwgYW5kIGNsb3NlT3ZlcigpCisgICAgICogaW5kaWNhdGluZyBsZXR0ZXIgY2FzZS4gIFRoaXMgbWF5IGJlIE9SZWQgdG9nZXRoZXIgd2l0aCBvdGhlcgorICAgICAqIHNlbGVjdG9ycy4KKyAgICAgKgorICAgICAqIEVuYWJsZSBjYXNlIGluc2Vuc2l0aXZlIG1hdGNoaW5nLiAgRS5nLiwgIlthYl0iIHdpdGggdGhpcyBmbGFnCisgICAgICogd2lsbCBtYXRjaCAnYScsICdBJywgJ2InLCBhbmQgJ0InLiAgIlteYWJdIiB3aXRoIHRoaXMgZmxhZyB3aWxsCisgICAgICogbWF0Y2ggYWxsIGV4Y2VwdCAnYScsICdBJywgJ2InLCBhbmQgJ0InLiBUaGlzIGFkZHMgdGhlIGxvd2VyLSwKKyAgICAgKiB0aXRsZS0sIGFuZCB1cHBlcmNhc2UgbWFwcGluZ3MgYXMgd2VsbCBhcyB0aGUgY2FzZSBmb2xkaW5nCisgICAgICogb2YgZWFjaCBleGlzdGluZyBlbGVtZW50IGluIHRoZSBzZXQuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBRERfQ0FTRV9NQVBQSU5HUyA9IDQ7CisKKyAgICAvLyAgYWRkIHRoZSByZXN1bHQgb2YgYSBmdWxsIGNhc2UgbWFwcGluZyB0byB0aGUgc2V0CisgICAgLy8gIHVzZSBzdHIgYXMgYSB0ZW1wb3Jhcnkgc3RyaW5nIHRvIGF2b2lkIGNvbnN0cnVjdGluZyBvbmUKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIGFkZENhc2VNYXBwaW5nKFVuaWNvZGVTZXQgc2V0LCBpbnQgcmVzdWx0LCBTdHJpbmdCdWZmZXIgZnVsbCkgeworICAgICAgICBpZihyZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgaWYocmVzdWx0ID4gVUNhc2VQcm9wcy5NQVhfU1RSSU5HX0xFTkdUSCkgeworICAgICAgICAgICAgICAgIC8vIGFkZCBhIHNpbmdsZS1jb2RlIHBvaW50IGNhc2UgbWFwcGluZworICAgICAgICAgICAgICAgIHNldC5hZGQocmVzdWx0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gYWRkIGEgc3RyaW5nIGNhc2UgbWFwcGluZyBmcm9tIGZ1bGwgd2l0aCBsZW5ndGggcmVzdWx0CisgICAgICAgICAgICAgICAgc2V0LmFkZChmdWxsLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIGZ1bGwuc2V0TGVuZ3RoKDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIHJlc3VsdCA8IDA6IHRoZSBjb2RlIHBvaW50IG1hcHBlZCB0byBpdHNlbGYsIG5vIG5lZWQgdG8gYWRkIGl0CisgICAgICAgIC8vIHNlZSBVQ2FzZVByb3BzCisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xvc2UgdGhpcyBzZXQgb3ZlciB0aGUgZ2l2ZW4gYXR0cmlidXRlLiAgRm9yIHRoZSBhdHRyaWJ1dGUKKyAgICAgKiBDQVNFLCB0aGUgcmVzdWx0IGlzIHRvIG1vZGlmeSB0aGlzIHNldCBzbyB0aGF0OgorICAgICAqCisgICAgICogMS4gRm9yIGVhY2ggY2hhcmFjdGVyIG9yIHN0cmluZyAnYScgaW4gdGhpcyBzZXQsIGFsbCBzdHJpbmdzCisgICAgICogJ2InIHN1Y2ggdGhhdCBmb2xkQ2FzZShhKSA9PSBmb2xkQ2FzZShiKSBhcmUgYWRkZWQgdG8gdGhpcyBzZXQuCisgICAgICogKEZvciBtb3N0ICdhJyB0aGF0IGFyZSBzaW5nbGUgY2hhcmFjdGVycywgJ2InIHdpbGwgaGF2ZQorICAgICAqIGIubGVuZ3RoKCkgPT0gMS4pCisgICAgICoKKyAgICAgKiAyLiBGb3IgZWFjaCBzdHJpbmcgJ2UnIGluIHRoZSByZXN1bHRpbmcgc2V0LCBpZiBlICE9CisgICAgICogZm9sZENhc2UoZSksICdlJyB3aWxsIGJlIHJlbW92ZWQuCisgICAgICoKKyAgICAgKiBFeGFtcGxlOiBbYXFcdTAwREZ7QmN9e2JDfXtGaX1dID0+IFthQXFRXHUwMERGXHVGQjAxe3NzfXtiY317Zml9XQorICAgICAqCisgICAgICogKEhlcmUgZm9sZENhc2UoeCkgcmVmZXJzIHRvIHRoZSBvcGVyYXRpb24KKyAgICAgKiBVQ2hhcmFjdGVyLmZvbGRDYXNlKHgsIHRydWUpLCBhbmQgYSA9PSBiIGFjdHVhbGx5IGRlbm90ZXMKKyAgICAgKiBhLmVxdWFscyhiKSwgbm90IHBvaW50ZXIgY29tcGFyaXNvbi4pCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXR0cmlidXRlIGJpdG1hc2sgZm9yIGF0dHJpYnV0ZXMgdG8gY2xvc2Ugb3Zlci4KKyAgICAgKiBDdXJyZW50bHkgb25seSB0aGUgQ0FTRSBiaXQgaXMgc3VwcG9ydGVkLiAgQW55IHVuZGVmaW5lZCBiaXRzCisgICAgICogYXJlIGlnbm9yZWQuCisgICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGlzIHNldC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldCBjbG9zZU92ZXIoaW50IGF0dHJpYnV0ZSkgeworICAgICAgICBpZiAoKGF0dHJpYnV0ZSAmIChDQVNFIHwgQUREX0NBU0VfTUFQUElOR1MpKSAhPSAwKSB7CisgICAgICAgICAgICBVQ2FzZVByb3BzIGNzcDsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY3NwID0gVUNhc2VQcm9wcy5nZXRTaW5nbGV0b24oKTsKKyAgICAgICAgICAgIH0gY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0aGlzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVW5pY29kZVNldCBmb2xkU2V0ID0gbmV3IFVuaWNvZGVTZXQodGhpcyk7CisgICAgICAgICAgICBVTG9jYWxlIHJvb3QgPSBVTG9jYWxlLlJPT1Q7CisKKyAgICAgICAgICAgIC8vIHN0YXJ0IHdpdGggaW5wdXQgc2V0IHRvIGd1YXJhbnRlZSBpbmNsdXNpb24KKyAgICAgICAgICAgIC8vIENBU0U6IHJlbW92ZSBzdHJpbmdzIGJlY2F1c2UgdGhlIHN0cmluZ3Mgd2lsbCBhY3R1YWxseSBiZSByZWR1Y2VkIChmb2xkZWQpOworICAgICAgICAgICAgLy8gICAgICAgdGhlcmVmb3JlLCBzdGFydCB3aXRoIG5vIHN0cmluZ3MgYW5kIGFkZCBvbmx5IHRob3NlIG5lZWRlZAorICAgICAgICAgICAgaWYoKGF0dHJpYnV0ZSAmIENBU0UpICE9IDApIHsKKyAgICAgICAgICAgICAgICBmb2xkU2V0LnN0cmluZ3MuY2xlYXIoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IG4gPSBnZXRSYW5nZUNvdW50KCk7CisgICAgICAgICAgICBpbnQgcmVzdWx0OworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIGZ1bGwgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgICAgICBpbnQgbG9jQ2FjaGVbXSA9IG5ldyBpbnRbMV07CisKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxuOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSBnZXRSYW5nZVN0YXJ0KGkpOworICAgICAgICAgICAgICAgIGludCBlbmQgICA9IGdldFJhbmdlRW5kKGkpOworCisgICAgICAgICAgICAgICAgaWYoKGF0dHJpYnV0ZSAmIENBU0UpICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZnVsbCBjYXNlIGNsb3N1cmUKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgY3A9c3RhcnQ7IGNwPD1lbmQ7ICsrY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNzcC5hZGRDYXNlQ2xvc3VyZShjcCwgZm9sZFNldCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBhZGQgY2FzZSBtYXBwaW5ncworICAgICAgICAgICAgICAgICAgICAvLyAoZG9lcyBub3QgYWRkIGxvbmcgcyBmb3IgcmVndWxhciBzLCBvciBLZWx2aW4gZm9yIGssIGZvciBleGFtcGxlKQorICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBjcD1zdGFydDsgY3A8PWVuZDsgKytjcCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gY3NwLnRvRnVsbExvd2VyKGNwLCBudWxsLCBmdWxsLCByb290LCBsb2NDYWNoZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRDYXNlTWFwcGluZyhmb2xkU2V0LCByZXN1bHQsIGZ1bGwpOworCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBjc3AudG9GdWxsVGl0bGUoY3AsIG51bGwsIGZ1bGwsIHJvb3QsIGxvY0NhY2hlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZENhc2VNYXBwaW5nKGZvbGRTZXQsIHJlc3VsdCwgZnVsbCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNzcC50b0Z1bGxVcHBlcihjcCwgbnVsbCwgZnVsbCwgcm9vdCwgbG9jQ2FjaGUpOworICAgICAgICAgICAgICAgICAgICAgICAgYWRkQ2FzZU1hcHBpbmcoZm9sZFNldCwgcmVzdWx0LCBmdWxsKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gY3NwLnRvRnVsbEZvbGRpbmcoY3AsIGZ1bGwsIDApOworICAgICAgICAgICAgICAgICAgICAgICAgYWRkQ2FzZU1hcHBpbmcoZm9sZFNldCwgcmVzdWx0LCBmdWxsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghc3RyaW5ncy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgc3RyOworICAgICAgICAgICAgICAgIGlmICgoYXR0cmlidXRlICYgQ0FTRSkgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBJdGVyYXRvciBpdCA9IHN0cmluZ3MuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RyID0gVUNoYXJhY3Rlci5mb2xkQ2FzZSgoU3RyaW5nKWl0Lm5leHQoKSwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZighY3NwLmFkZFN0cmluZ0Nhc2VDbG9zdXJlKHN0ciwgZm9sZFNldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xkU2V0LmFkZChzdHIpOyAvLyBkb2VzIG5vdCBtYXAgdG8gY29kZSBwb2ludHM6IGFkZCB0aGUgZm9sZGVkIHN0cmluZyBpdHNlbGYKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEJyZWFrSXRlcmF0b3IgYmkgPSBCcmVha0l0ZXJhdG9yLmdldFdvcmRJbnN0YW5jZShyb290KTsKKyAgICAgICAgICAgICAgICAgICAgSXRlcmF0b3IgaXQgPSBzdHJpbmdzLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpdC5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9IChTdHJpbmcpaXQubmV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9sZFNldC5hZGQoVUNoYXJhY3Rlci50b0xvd2VyQ2FzZShyb290LCBzdHIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvbGRTZXQuYWRkKFVDaGFyYWN0ZXIudG9UaXRsZUNhc2Uocm9vdCwgc3RyLCBiaSkpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9sZFNldC5hZGQoVUNoYXJhY3Rlci50b1VwcGVyQ2FzZShyb290LCBzdHIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvbGRTZXQuYWRkKFVDaGFyYWN0ZXIuZm9sZENhc2Uoc3RyLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXQoZm9sZFNldCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgY2xhc3MgZm9yIGN1c3RvbWl6aW5nIFVuaWNvZGVTZXQgcGFyc2luZyBvZiBwcm9wZXJ0aWVzLgorICAgICAqIFRPRE86IGV4dGVuZCB0byBhbGxvdyBjdXN0b21pemluZyBvZiBjb2RlcG9pbnQgcmFuZ2VzCisgICAgICogQGludGVybmFsCisgICAgICogQGF1dGhvciBtZWRhdmlzCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIHN0YXRpYyBjbGFzcyBYU3ltYm9sVGFibGUgaW1wbGVtZW50cyBTeW1ib2xUYWJsZSB7CisgICAgICAgIHB1YmxpYyBVbmljb2RlTWF0Y2hlciBsb29rdXBNYXRjaGVyKGludCBpKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBwdWJsaWMgYm9vbGVhbiBhcHBseVByb3BlcnR5QWxpYXMoU3RyaW5nIHByb3BlcnR5TmFtZSwgU3RyaW5nIHByb3BlcnR5VmFsdWUsIFVuaWNvZGVTZXQgcmVzdWx0KSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGNoYXJbXSBsb29rdXAoU3RyaW5nIHMpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBTdHJpbmcgcGFyc2VSZWZlcmVuY2UoU3RyaW5nIHRleHQsIFBhcnNlUG9zaXRpb24gcG9zLCBpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldEl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9pY3UvdGV4dC9Vbmljb2RlU2V0SXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xOGUyZjE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVW5pY29kZVNldEl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwyNDkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnRleHQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqCisgKiBVbmljb2RlU2V0SXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgY29udGVudHMgb2YgYSBVbmljb2RlU2V0LiAgSXQKKyAqIGl0ZXJhdGVzIG92ZXIgZWl0aGVyIGNvZGUgcG9pbnRzIG9yIGNvZGUgcG9pbnQgcmFuZ2VzLiAgQWZ0ZXIgYWxsCisgKiBjb2RlIHBvaW50cyBvciByYW5nZXMgaGF2ZSBiZWVuIHJldHVybmVkLCBpdCByZXR1cm5zIHRoZQorICogbXVsdGljaGFyYWN0ZXIgc3RyaW5ncyBvZiB0aGUgVW5pY29kU2V0LCBpZiBhbnkuCisgKgorICogPHA+VG8gaXRlcmF0ZSBvdmVyIGNvZGUgcG9pbnRzLCB1c2UgYSBsb29wIGxpa2UgdGhpczoKKyAqIDxwcmU+CisgKiBVbmljb2RlU2V0SXRlcmF0b3IgaXQgPSBuZXcgVW5pY29kZVNldEl0ZXJhdG9yKHNldCk7CisgKiB3aGlsZSAoc2V0Lm5leHQoKSkgeworICogICBpZiAoc2V0LmNvZGVwb2ludCAhPSBVbmljb2RlU2V0SXRlcmF0b3IuSVNfU1RSSU5HKSB7CisgKiAgICAgcHJvY2Vzc0NvZGVwb2ludChzZXQuY29kZXBvaW50KTsKKyAqICAgfSBlbHNlIHsKKyAqICAgICBwcm9jZXNzU3RyaW5nKHNldC5zdHJpbmcpOworICogICB9CisgKiB9CisgKiA8L3ByZT4KKyAqCisgKiA8cD5UbyBpdGVyYXRlIG92ZXIgY29kZSBwb2ludCByYW5nZXMsIHVzZSBhIGxvb3AgbGlrZSB0aGlzOgorICogPHByZT4KKyAqIFVuaWNvZGVTZXRJdGVyYXRvciBpdCA9IG5ldyBVbmljb2RlU2V0SXRlcmF0b3Ioc2V0KTsKKyAqIHdoaWxlIChzZXQubmV4dFJhbmdlKCkpIHsKKyAqICAgaWYgKHNldC5jb2RlcG9pbnQgIT0gVW5pY29kZVNldEl0ZXJhdG9yLklTX1NUUklORykgeworICogICAgIHByb2Nlc3NDb2RlcG9pbnRSYW5nZShzZXQuY29kZXBvaW50LCBzZXQuY29kZXBvaW50RW5kKTsKKyAqICAgfSBlbHNlIHsKKyAqICAgICBwcm9jZXNzU3RyaW5nKHNldC5zdHJpbmcpOworICogICB9CisgKiB9CisgKiA8L3ByZT4KKyAqIEBhdXRob3IgTS4gRGF2aXMKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgVW5pY29kZVNldEl0ZXJhdG9yIHsKKyAgICAKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiA8dHQ+Y29kZXBvaW50PC90dD4gaWYgdGhlIGl0ZXJhdG9yIHBvaW50cyB0byBhIHN0cmluZy4KKyAgICAgKiBJZiA8dHQ+Y29kZXBvaW50ID09IElTX1NUUklORzwvdHQ+LCB0aGVuIGV4YW1pbmUKKyAgICAgKiA8dHQ+c3RyaW5nPC90dD4gZm9yIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiByZXN1bHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgSVNfU1RSSU5HID0gLTE7CisgICAgCisgICAgLyoqCisgICAgICogQ3VycmVudCBjb2RlIHBvaW50LCBvciB0aGUgc3BlY2lhbCB2YWx1ZSA8dHQ+SVNfU1RSSU5HPC90dD4sIGlmCisgICAgICogdGhlIGl0ZXJhdG9yIHBvaW50cyB0byBhIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvZGVwb2ludDsKKworICAgIC8qKgorICAgICAqIFdoZW4gaXRlcmF0aW5nIG92ZXIgcmFuZ2VzIHVzaW5nIDx0dD5uZXh0UmFuZ2UoKTwvdHQ+LAorICAgICAqIDx0dD5jb2RlcG9pbnRFbmQ8L3R0PiBjb250YWlucyB0aGUgaW5jbHVzaXZlIGVuZCBvZiB0aGUKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGlmIDx0dD5jb2RlcG9pbnQgIT0gSVNfU1RSSU5HPC90dD4uICBJZgorICAgICAqIGl0ZXJhdGluZyBvdmVyIGNvZGUgcG9pbnRzIHVzaW5nIDx0dD5uZXh0KCk8L3R0Piwgb3IgaWYKKyAgICAgKiA8dHQ+Y29kZXBvaW50ID09IElTX1NUUklORzwvdHQ+LCB0aGVuIHRoZSB2YWx1ZSBvZgorICAgICAqIDx0dD5jb2RlcG9pbnRFbmQ8L3R0PiBpcyB1bmRlZmluZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBjb2RlcG9pbnRFbmQ7CisKKyAgICAvKioKKyAgICAgKiBJZiA8dHQ+Y29kZXBvaW50ID09IElTX1NUUklORzwvdHQ+LCB0aGVuIDx0dD5zdHJpbmc8L3R0PiBwb2ludHMKKyAgICAgKiB0byB0aGUgY3VycmVudCBzdHJpbmcuICBJZiA8dHQ+Y29kZXBvaW50ICE9IElTX1NUUklORzwvdHQ+LCB0aGUKKyAgICAgKiB2YWx1ZSBvZiA8dHQ+c3RyaW5nPC90dD4gaXMgdW5kZWZpbmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgc3RyaW5nOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGdpdmVuIHNldC4KKyAgICAgKiBAcGFyYW0gc2V0IHNldCB0byBpdGVyYXRlIG92ZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgVW5pY29kZVNldEl0ZXJhdG9yKFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIHJlc2V0KHNldCk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciBub3RoaW5nLiAgPHR0Pm5leHQoKTwvdHQ+IGFuZAorICAgICAqIDx0dD5uZXh0UmFuZ2UoKTwvdHQ+IHJldHVybiBmYWxzZS4gVGhpcyBpcyBhIGNvbnZlbmllbmNlCisgICAgICogY29uc3RydWN0b3IgYWxsb3dpbmcgdGhlIHRhcmdldCB0byBiZSBzZXQgbGF0ZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFVuaWNvZGVTZXRJdGVyYXRvcigpIHsKKyAgICAgICAgcmVzZXQobmV3IFVuaWNvZGVTZXQoKSk7CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGVsZW1lbnQgaW4gdGhlIHNldCwgZWl0aGVyIGEgc2luZ2xlIGNvZGUgcG9pbnQKKyAgICAgKiBvciBhIHN0cmluZy4gIElmIHRoZXJlIGFyZSBubyBtb3JlIGVsZW1lbnRzIGluIHRoZSBzZXQsIHJldHVybgorICAgICAqIGZhbHNlLiAgSWYgPHR0PmNvZGVwb2ludCA9PSBJU19TVFJJTkc8L3R0PiwgdGhlIHZhbHVlIGlzIGEKKyAgICAgKiBzdHJpbmcgaW4gdGhlIDx0dD5zdHJpbmc8L3R0PiBmaWVsZC4gIE90aGVyd2lzZSB0aGUgdmFsdWUgaXMgYQorICAgICAqIHNpbmdsZSBjb2RlIHBvaW50IGluIHRoZSA8dHQ+Y29kZXBvaW50PC90dD4gZmllbGQuCisgICAgICogCisgICAgICogPHA+VGhlIG9yZGVyIG9mIGl0ZXJhdGlvbiBpcyBhbGwgY29kZSBwb2ludHMgaW4gc29ydGVkIG9yZGVyLAorICAgICAqIGZvbGxvd2VkIGJ5IGFsbCBzdHJpbmdzIHNvcnRlZCBvcmRlci4gIDx0dD5jb2RlcG9pbnRFbmQ8L3R0PiBpcworICAgICAqIHVuZGVmaW5lZCBhZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kLiAgPHR0PnN0cmluZzwvdHQ+IGlzCisgICAgICogdW5kZWZpbmVkIHVubGVzcyA8dHQ+Y29kZXBvaW50ID09IElTX1NUUklORzwvdHQ+LiAgRG8gbm90IG1peAorICAgICAqIGNhbGxzIHRvIDx0dD5uZXh0KCk8L3R0PiBhbmQgPHR0Pm5leHRSYW5nZSgpPC90dD4gd2l0aG91dAorICAgICAqIGNhbGxpbmcgPHR0PnJlc2V0KCk8L3R0PiBiZXR3ZWVuIHRoZW0uICBUaGUgcmVzdWx0cyBvZiBkb2luZyBzbworICAgICAqIGFyZSB1bmRlZmluZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgd2FzIGFub3RoZXIgZWxlbWVudCBpbiB0aGUgc2V0IGFuZCB0aGlzCisgICAgICogb2JqZWN0IGNvbnRhaW5zIHRoZSBlbGVtZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIG5leHQoKSB7CisgICAgICAgIGlmIChuZXh0RWxlbWVudCA8PSBlbmRFbGVtZW50KSB7CisgICAgICAgICAgICBjb2RlcG9pbnQgPSBjb2RlcG9pbnRFbmQgPSBuZXh0RWxlbWVudCsrOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJhbmdlIDwgZW5kUmFuZ2UpIHsKKyAgICAgICAgICAgIGxvYWRSYW5nZSgrK3JhbmdlKTsKKyAgICAgICAgICAgIGNvZGVwb2ludCA9IGNvZGVwb2ludEVuZCA9IG5leHRFbGVtZW50Kys7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gc3RyaW5nSXRlcmF0b3IgPT0gbnVsbCBpZmYgdGhlcmUgYXJlIG5vIHN0cmluZyBlbGVtZW50cyByZW1haW5pbmcKKyAgICAgICAgCisgICAgICAgIGlmIChzdHJpbmdJdGVyYXRvciA9PSBudWxsKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGNvZGVwb2ludCA9IElTX1NUUklORzsgLy8gc2lnbmFsIHRoYXQgdmFsdWUgaXMgYWN0dWFsbHkgYSBzdHJpbmcKKyAgICAgICAgc3RyaW5nID0gKFN0cmluZylzdHJpbmdJdGVyYXRvci5uZXh0KCk7CisgICAgICAgIGlmICghc3RyaW5nSXRlcmF0b3IuaGFzTmV4dCgpKSBzdHJpbmdJdGVyYXRvciA9IG51bGw7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbmV4dCBlbGVtZW50IGluIHRoZSBzZXQsIGVpdGhlciBhIGNvZGUgcG9pbnQgcmFuZ2UKKyAgICAgKiBvciBhIHN0cmluZy4gIElmIHRoZXJlIGFyZSBubyBtb3JlIGVsZW1lbnRzIGluIHRoZSBzZXQsIHJldHVybgorICAgICAqIGZhbHNlLiAgSWYgPHR0PmNvZGVwb2ludCA9PSBJU19TVFJJTkc8L3R0PiwgdGhlIHZhbHVlIGlzIGEKKyAgICAgKiBzdHJpbmcgaW4gdGhlIDx0dD5zdHJpbmc8L3R0PiBmaWVsZC4gIE90aGVyd2lzZSB0aGUgdmFsdWUgaXMgYQorICAgICAqIHJhbmdlIG9mIG9uZSBvciBtb3JlIGNvZGUgcG9pbnRzIGZyb20gPHR0PmNvZGVwb2ludDwvdHQ+IHRvCisgICAgICogPHR0PmNvZGVwb2ludGVFbmQ8L3R0PiBpbmNsdXNpdmUuCisgICAgICogCisgICAgICogPHA+VGhlIG9yZGVyIG9mIGl0ZXJhdGlvbiBpcyBhbGwgY29kZSBwb2ludHMgcmFuZ2VzIGluIHNvcnRlZAorICAgICAqIG9yZGVyLCBmb2xsb3dlZCBieSBhbGwgc3RyaW5ncyBzb3J0ZWQgb3JkZXIuICBSYW5nZXMgYXJlCisgICAgICogZGlzam9pbnQgYW5kIG5vbi1jb250aWd1b3VzLiAgPHR0PnN0cmluZzwvdHQ+IGlzIHVuZGVmaW5lZAorICAgICAqIHVubGVzcyA8dHQ+Y29kZXBvaW50ID09IElTX1NUUklORzwvdHQ+LiAgRG8gbm90IG1peCBjYWxscyB0bworICAgICAqIDx0dD5uZXh0KCk8L3R0PiBhbmQgPHR0Pm5leHRSYW5nZSgpPC90dD4gd2l0aG91dCBjYWxsaW5nCisgICAgICogPHR0PnJlc2V0KCk8L3R0PiBiZXR3ZWVuIHRoZW0uICBUaGUgcmVzdWx0cyBvZiBkb2luZyBzbyBhcmUKKyAgICAgKiB1bmRlZmluZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgd2FzIGFub3RoZXIgZWxlbWVudCBpbiB0aGUgc2V0IGFuZCB0aGlzCisgICAgICogb2JqZWN0IGNvbnRhaW5zIHRoZSBlbGVtZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIG5leHRSYW5nZSgpIHsKKyAgICAgICAgaWYgKG5leHRFbGVtZW50IDw9IGVuZEVsZW1lbnQpIHsKKyAgICAgICAgICAgIGNvZGVwb2ludEVuZCA9IGVuZEVsZW1lbnQ7CisgICAgICAgICAgICBjb2RlcG9pbnQgPSBuZXh0RWxlbWVudDsKKyAgICAgICAgICAgIG5leHRFbGVtZW50ID0gZW5kRWxlbWVudCsxOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJhbmdlIDwgZW5kUmFuZ2UpIHsKKyAgICAgICAgICAgIGxvYWRSYW5nZSgrK3JhbmdlKTsKKyAgICAgICAgICAgIGNvZGVwb2ludEVuZCA9IGVuZEVsZW1lbnQ7CisgICAgICAgICAgICBjb2RlcG9pbnQgPSBuZXh0RWxlbWVudDsKKyAgICAgICAgICAgIG5leHRFbGVtZW50ID0gZW5kRWxlbWVudCsxOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIHN0cmluZ0l0ZXJhdG9yID09IG51bGwgaWZmIHRoZXJlIGFyZSBubyBzdHJpbmcgZWxlbWVudHMgcmVtYWluaW5nCisgICAgICAgIAorICAgICAgICBpZiAoc3RyaW5nSXRlcmF0b3IgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICBjb2RlcG9pbnQgPSBJU19TVFJJTkc7IC8vIHNpZ25hbCB0aGF0IHZhbHVlIGlzIGFjdHVhbGx5IGEgc3RyaW5nCisgICAgICAgIHN0cmluZyA9IChTdHJpbmcpc3RyaW5nSXRlcmF0b3IubmV4dCgpOworICAgICAgICBpZiAoIXN0cmluZ0l0ZXJhdG9yLmhhc05leHQoKSkgc3RyaW5nSXRlcmF0b3IgPSBudWxsOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhpcyBpdGVyYXRvciB0byB2aXNpdCB0aGUgZWxlbWVudHMgb2YgdGhlIGdpdmVuIHNldCBhbmQKKyAgICAgKiByZXNldHMgaXQgdG8gdGhlIHN0YXJ0IG9mIHRoYXQgc2V0LiAgVGhlIGl0ZXJhdG9yIGlzIHZhbGlkIG9ubHkKKyAgICAgKiBzbyBsb25nIGFzIDx0dD5zZXQ8L3R0PiBpcyB2YWxpZC4KKyAgICAgKiBAcGFyYW0gc2V0IHRoZSBzZXQgdG8gaXRlcmF0ZSBvdmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KFVuaWNvZGVTZXQgc2V0KSB7CisgICAgICAgIHRoaXMuc2V0ID0gc2V0OworICAgICAgICByZXNldCgpOworICAgIH0KKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmVzZXRzIHRoaXMgaXRlcmF0b3IgdG8gdGhlIHN0YXJ0IG9mIHRoZSBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKSB7CisgICAgICAgIGVuZFJhbmdlID0gc2V0LmdldFJhbmdlQ291bnQoKSAtIDE7CisgICAgICAgIHJhbmdlID0gMDsKKyAgICAgICAgZW5kRWxlbWVudCA9IC0xOworICAgICAgICBuZXh0RWxlbWVudCA9IDA7ICAgICAgICAgICAgCisgICAgICAgIGlmIChlbmRSYW5nZSA+PSAwKSB7CisgICAgICAgICAgICBsb2FkUmFuZ2UocmFuZ2UpOworICAgICAgICB9CisgICAgICAgIHN0cmluZ0l0ZXJhdG9yID0gbnVsbDsKKyAgICAgICAgaWYgKHNldC5zdHJpbmdzICE9IG51bGwpIHsKKyAgICAgICAgICAgIHN0cmluZ0l0ZXJhdG9yID0gc2V0LnN0cmluZ3MuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIGlmICghc3RyaW5nSXRlcmF0b3IuaGFzTmV4dCgpKSBzdHJpbmdJdGVyYXRvciA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBzdHJpbmcgZnJvbSB0aGUgaXRlcmF0b3IuIE9ubHkgdXNlIGFmdGVyIGNhbGxpbmcgbmV4dCgpLCBub3QgbmV4dFJhbmdlKCkuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRTdHJpbmcoKSB7CisgICAgICAgIGlmIChjb2RlcG9pbnQgIT0gSVNfU1RSSU5HKSB7CisgICAgICAgICAgICByZXR1cm4gVVRGMTYudmFsdWVPZihjb2RlcG9pbnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdHJpbmc7CisgICAgfQorICAgIAorICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09IFBSSVZBVEVTID09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIAorICAgIHByaXZhdGUgVW5pY29kZVNldCBzZXQ7CisgICAgcHJpdmF0ZSBpbnQgZW5kUmFuZ2UgPSAwOworICAgIHByaXZhdGUgaW50IHJhbmdlID0gMDsKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGVuZEVsZW1lbnQ7CisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBuZXh0RWxlbWVudDsKKyAgICBwcml2YXRlIEl0ZXJhdG9yIHN0cmluZ0l0ZXJhdG9yID0gbnVsbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBJbnZhcmlhbnQ6IHN0cmluZ0l0ZXJhdG9yIGlzIG51bGwgd2hlbiB0aGVyZSBhcmUgbm8gKG1vcmUpIHN0cmluZ3MgcmVtYWluaW5nCisgICAgICovCisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBsb2FkUmFuZ2UoaW50IHJhbmdlKSB7CisgICAgICAgIG5leHRFbGVtZW50ID0gc2V0LmdldFJhbmdlU3RhcnQocmFuZ2UpOworICAgICAgICBlbmRFbGVtZW50ID0gc2V0LmdldFJhbmdlRW5kKHJhbmdlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdGV4dC9VcHBlcmNhc2VUcmFuc2xpdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVXBwZXJjYXNlVHJhbnNsaXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMDg1ZGRiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvVXBwZXJjYXNlVHJhbnNsaXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudGV4dDsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlVDYXNlUHJvcHM7CisKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlVMb2NhbGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlJlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yOworCisvKioKKyAqIEEgdHJhbnNsaXRlcmF0b3IgdGhhdCBwZXJmb3JtcyBsb2NhbGUtc2Vuc2l0aXZlIHRvVXBwZXIoKQorICogY2FzZSBtYXBwaW5nLgorICovCitjbGFzcyBVcHBlcmNhc2VUcmFuc2xpdGVyYXRvciBleHRlbmRzIFRyYW5zbGl0ZXJhdG9yIHsKKworICAgIC8qKgorICAgICAqIFBhY2thZ2UgYWNjZXNzaWJsZSBJRC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIF9JRCA9ICJBbnktVXBwZXIiOworICAgIC8vIFRPRE86IEFkZCB2YXJpYW50cyBmb3IgdHIsIGF6LCBsdCwgZGVmYXVsdCA9IGRlZmF1bHQgbG9jYWxlCisKKyAgICAvKioKKyAgICAgKiBTeXN0ZW0gcmVnaXN0cmF0aW9uIGhvb2suCisgICAgICovCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXIoKSB7CisgICAgICAgIFRyYW5zbGl0ZXJhdG9yLnJlZ2lzdGVyRmFjdG9yeShfSUQsIG5ldyBUcmFuc2xpdGVyYXRvci5GYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFRyYW5zbGl0ZXJhdG9yIGdldEluc3RhbmNlKFN0cmluZyBJRCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVXBwZXJjYXNlVHJhbnNsaXRlcmF0b3IoVUxvY2FsZS5VUyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIHByaXZhdGUgVUxvY2FsZSBsb2NhbGU7CisKKyAgICBwcml2YXRlIFVDYXNlUHJvcHMgY3NwOworICAgIHByaXZhdGUgUmVwbGFjZWFibGVDb250ZXh0SXRlcmF0b3IgaXRlcjsKKyAgICBwcml2YXRlIFN0cmluZ0J1ZmZlciByZXN1bHQ7CisgICAgcHJpdmF0ZSBpbnRbXSBsb2NDYWNoZTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSB0cmFuc2xpdGVyYXRvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVXBwZXJjYXNlVHJhbnNsaXRlcmF0b3IoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgc3VwZXIoX0lELCBudWxsKTsKKyAgICAgICAgbG9jYWxlID0gbG9jOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY3NwPVVDYXNlUHJvcHMuZ2V0U2luZ2xldG9uKCk7CisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGNzcD1udWxsOworICAgICAgICB9CisgICAgICAgIGl0ZXI9bmV3IFJlcGxhY2VhYmxlQ29udGV4dEl0ZXJhdG9yKCk7CisgICAgICAgIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgaW50W10gbG9jQ2FjaGUgPSBuZXcgaW50WzFdOworICAgICAgICBsb2NDYWNoZVswXT0wOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudHMge0BsaW5rIFRyYW5zbGl0ZXJhdG9yI2hhbmRsZVRyYW5zbGl0ZXJhdGV9LgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVRyYW5zbGl0ZXJhdGUoUmVwbGFjZWFibGUgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIG9mZnNldHMsIGJvb2xlYW4gaXNJbmNyZW1lbnRhbCkgeworICAgIGlmKGNzcD09bnVsbCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYob2Zmc2V0cy5zdGFydCA+PSBvZmZzZXRzLmxpbWl0KSB7CisgICAgICAgIHJldHVybjsKKyAgICB9IAorCisgICAgaXRlci5zZXRUZXh0KHRleHQpOworICAgIHJlc3VsdC5zZXRMZW5ndGgoMCk7CisgICAgaW50IGMsIGRlbHRhOworCisgICAgLy8gV2FsayB0aHJvdWdoIG9yaWdpbmFsIHN0cmluZworICAgIC8vIElmIHRoZXJlIGlzIGEgY2FzZSBjaGFuZ2UsIG1vZGlmeSBjb3JyZXNwb25kaW5nIHBvc2l0aW9uIGluIHJlcGxhY2VhYmxlCisKKyAgICBpdGVyLnNldEluZGV4KG9mZnNldHMuc3RhcnQpOworICAgIGl0ZXIuc2V0TGltaXQob2Zmc2V0cy5saW1pdCk7CisgICAgaXRlci5zZXRDb250ZXh0TGltaXRzKG9mZnNldHMuY29udGV4dFN0YXJ0LCBvZmZzZXRzLmNvbnRleHRMaW1pdCk7CisgICAgd2hpbGUoKGM9aXRlci5uZXh0Q2FzZU1hcENQKCkpPj0wKSB7CisgICAgICAgIGM9Y3NwLnRvRnVsbFVwcGVyKGMsIGl0ZXIsIHJlc3VsdCwgbG9jYWxlLCBsb2NDYWNoZSk7CisKKyAgICAgICAgaWYoaXRlci5kaWRSZWFjaExpbWl0KCkgJiYgaXNJbmNyZW1lbnRhbCkgeworICAgICAgICAgICAgLy8gdGhlIGNhc2UgbWFwcGluZyBmdW5jdGlvbiB0cmllZCB0byBsb29rIGJleW9uZCB0aGUgY29udGV4dCBsaW1pdAorICAgICAgICAgICAgLy8gd2FpdCBmb3IgbW9yZSBpbnB1dAorICAgICAgICAgICAgb2Zmc2V0cy5zdGFydD1pdGVyLmdldENhc2VNYXBDUFN0YXJ0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvKiBkZWNvZGUgdGhlIHJlc3VsdCAqLworICAgICAgICBpZihjPDApIHsKKyAgICAgICAgICAgIC8qIGMgbWFwcGVkIHRvIGl0c2VsZiwgbm8gY2hhbmdlICovCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfSBlbHNlIGlmKGM8PVVDYXNlUHJvcHMuTUFYX1NUUklOR19MRU5HVEgpIHsKKyAgICAgICAgICAgIC8qIHJlcGxhY2UgYnkgdGhlIG1hcHBpbmcgc3RyaW5nICovCisgICAgICAgICAgICBkZWx0YT1pdGVyLnJlcGxhY2UocmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgcmVzdWx0LnNldExlbmd0aCgwKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIHJlcGxhY2UgYnkgc2luZ2xlLWNvZGUgcG9pbnQgbWFwcGluZyAqLworICAgICAgICAgICAgICAgIGRlbHRhPWl0ZXIucmVwbGFjZShVVEYxNi52YWx1ZU9mKGMpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYoZGVsdGEhPTApIHsKKyAgICAgICAgICAgICAgICBvZmZzZXRzLmxpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgICAgIG9mZnNldHMuY29udGV4dExpbWl0ICs9IGRlbHRhOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG9mZnNldHMuc3RhcnQgPSBvZmZzZXRzLmxpbWl0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS90ZXh0L3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL2ljdS90ZXh0L3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42YmQwNzBkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3RleHQvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLT4KKzwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK0V4dGVuc2lvbnMgYW5kIGVuaGFuY2VtZW50cyB0byBqYXZhLnRleHQgdG8gc3VwcG9ydCB1bmljb2RlIHRyYW5zZm9ybXMsIFVuaWNvZGVTZXQsIHN1cnJvZ2F0ZSBjaGFyIHV0aWxpdGllcywgVUNBIGNvbGxhdGlvbiwgbm9ybWFsaXphdGlvbiwgYnJlYWsgaXRlcmF0aW9uIChydWxlIGFuZCBkaWN0aW9uYXJ5IGJhc2VkKSwgZW5oYW5jZWQgbnVtYmVyIGZvcm1hdCwgaW50ZXJuYXRpb25hbCBzdHJpbmcgc2VhcmNoaW5nLCBhbmQgYXJhYmljIHNoYXBpbmcuPC9wPgorCis8dWw+Cis8bGk+VW5pY29kZSBUcmFuc2Zvcm1zIChUcmFuc2xpdGVyYXRpb24pIGNvbnZlcnQgYmV0d2VlbiBkaWZmZXJlbnQgcmVwcmVzZW50YXRpb25zIG9mIHVuaWNvZGUgdGV4dC48L2xpPgorPGxpPlVuaWNvZGVTZXQgcHJvdmlkZXMgc2V0IG9wZXJhdGlvbnMgb24gdW5pY29kZSBjaGFyYWN0ZXJzIGFuZCBzdHJpbmdzLCBhbmQgYXJlIHJlcHJlc2VudGFibGUgYXMgY29tcGFjdCBleHByZXNzaW9ucy48L2xpPgorPGxpPlN1cnJvZ2F0ZSBjaGFyYWN0ZXIgdXRpbGl0aWVzIChVVEYxNikgcHJvdmlkZXMgaW5kZXhpbmcgYW5kIHN1YnN0cmluZyBvcGVyYXRpb25zIG9uIHRleHQgY29udGFpbmluZyBzdXJyb2dhdGVzLjwvbGk+Cis8bGk+VUNBIGNvbGxhdGlvbiBpbXBsZW1lbnRzIHRoZSBjdXJyZW50IFVuaWNvZGUgQ29sbGF0aW9uIEFsZ29yaXRobS4gIERhdGEgZm9yIG1hbnkgbG9jYWxlLXNwZWNpZmljIGNvbGxhdGlvbnMgaXMgcHJvdmlkZWQuPC9saT4KKzxsaT5Ob3JtYWxpemF0aW9uIHN1cHBvcnRzIHN0YW5kYXJkIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBmb3JtcyBhcyB3ZWxsIGFzIEZDRC48L2xpPgorPGxpPkJyZWFrIGl0ZXJhdGlvbiBzdXBwb3J0cyBjaGFyYWN0ZXIsIHdvcmQsIGxpbmUsIHNlbnRlbmNlcywgYW5kIHRpdGxlIGNhc2UgYnJlYWtzLjwvbGk+Cis8bGk+RW5oYW5jZWQgbnVtYmVyIGZvcm1hdCB0byAnc3BlbGwgb3V0JyBudW1iZXJzLCBwYWRkaW5nIGFuZCByb3VuZGluZyBjb250cm9sLjwvbGk+Cis8bGk+SW50ZXJuYXRpb25hbGx5IHNlbnNpdGl2ZSBzdHJpbmcgc2VhcmNoaW5nLCB1c2VzIGNvbGxhdGlvbi48L2xpPgorPGxpPkFyYWJpYyBzaGFwaW5nIGNvbnZlcnRzIGJldHdlZW4gc2hhcGVkIGFuZCB1bnNoYXBlZCBhcmFiaWMgY2hhcmFjdGVycyBhbmQgZGlnaXRzLjwvbGk+Cis8L3VsPgorCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQnVkZGhpc3RDYWxlbmRhci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQnVkZGhpc3RDYWxlbmRhci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQxYTU5YzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9CdWRkaGlzdENhbGVuZGFyLmphdmEKQEAgLTAsMCArMSwyNjQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiA8Y29kZT5CdWRkaGlzdENhbGVuZGFyPC9jb2RlPiBpcyBhIHN1YmNsYXNzIG9mIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPgorICogdGhhdCBudW1iZXJzIHllYXJzIHNpbmNlIHRoZSBiaXJ0aCBvZiB0aGUgQnVkZGhhLiAgVGhpcyBpcyB0aGUgY2l2aWwgY2FsZW5kYXIKKyAqIGluIHNvbWUgcHJlZG9taW5hbnRseSBCdWRkaGlzdCBjb3VudHJpZXMgc3VjaCBhcyBUaGFpbGFuZCwgYW5kIGl0IGlzIHVzZWQgZm9yCisgKiByZWxpZ2lvdXMgcHVycG9zZXMgZWxzZXdoZXJlLgorICogPHA+CisgKiBUaGUgQnVkZGhpc3QgY2FsZW5kYXIgaXMgaWRlbnRpY2FsIHRvIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgaW4gYWxsIHJlc3BlY3RzCisgKiBleGNlcHQgZm9yIHRoZSB5ZWFyIGFuZCBlcmEuICBZZWFycyBhcmUgbnVtYmVyZWQgc2luY2UgdGhlIGJpcnRoIG9mIHRoZQorICogQnVkZGhhIGluIDU0MyBCQyAoR3JlZ29yaWFuKSwgc28gdGhhdCAxIEFEIChHcmVnb3JpYW4pIGlzIGVxdWl2YWxlbnQgdG8gNTQ0CisgKiBCRSAoQnVkZGhpc3QgRXJhKSBhbmQgMTk5OCBBRCBpcyAyNTQxIEJFLgorICogPHA+CisgKiBUaGUgQnVkZGhpc3QgQ2FsZW5kYXIgaGFzIG9ubHkgb25lIGFsbG93YWJsZSBlcmE6IDxjb2RlPkJFPC9jb2RlPi4gIElmIHRoZQorICogY2FsZW5kYXIgaXMgbm90IGluIGxlbmllbnQgbW9kZSAoc2VlIDxjb2RlPnNldExlbmllbnQ8L2NvZGU+KSwgZGF0ZXMgYmVmb3JlCisgKiAxLzEvMSBCRSBhcmUgcmVqZWN0ZWQgd2l0aCBhbiA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+LgorICogPHA+CisgKiBUaGlzIGNsYXNzIHNob3VsZCBub3QgYmUgc3ViY2xhc3NlZC48L3A+CisgKiA8cD4KKyAqIEJ1ZGRoaXN0Q2FsZW5kYXIgdXN1YWxseSBzaG91bGQgYmUgaW5zdGFudGlhdGVkIHVzaW5nIAorICoge0BsaW5rIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIjZ2V0SW5zdGFuY2UoVUxvY2FsZSl9IHBhc3NpbmcgaW4gYSA8Y29kZT5VTG9jYWxlPC9jb2RlPgorICogd2l0aCB0aGUgdGFnIDxjb2RlPiJAY2FsZW5kYXI9YnVkZGhpc3QiPC9jb2RlPi48L3A+CisgKiAKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyCisgKgorICogQGF1dGhvciBMYXVyYSBXZXJuZXIKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgY2xhc3MgQnVkZGhpc3RDYWxlbmRhciBleHRlbmRzIEdyZWdvcmlhbkNhbGVuZGFyIHsKKyAgICAvLyBqZGsxLjQuMiBzZXJpYWx2ZXIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAyNTgzMDA1Mjc4MTMyMzgwNjMxTDsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCBcdTAwYTkgMTk5OCBJQk0gQ29ycC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RydWN0b3JzLi4uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgdGhlIEJ1ZGRoaXN0IEVyYS4gIFRoaXMgaXMgdGhlIG9ubHkgYWxsb3dhYmxlIDxjb2RlPkVSQTwvY29kZT4KKyAgICAgKiB2YWx1ZSBmb3IgdGhlIEJ1ZGRoaXN0IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyI0VSQQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJFID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QnVkZGhpc3RDYWxlbmRhcjwvY29kZT4gdXNpbmcgdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQnVkZGhpc3RDYWxlbmRhcigpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QnVkZGhpc3RDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBCdWRkaGlzdENhbGVuZGFyKFRpbWVab25lIHpvbmUpIHsKKyAgICAgICAgc3VwZXIoem9uZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkJ1ZGRoaXN0Q2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQnVkZGhpc3RDYWxlbmRhcihMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICBzdXBlcihhTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QnVkZGhpc3RDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEJ1ZGRoaXN0Q2FsZW5kYXIoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIobG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QnVkZGhpc3RDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEJ1ZGRoaXN0Q2FsZW5kYXIoVGltZVpvbmUgem9uZSwgTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgYUxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkJ1ZGRoaXN0Q2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIHRoZSBnaXZlbiB0aW1lIHpvbmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEJ1ZGRoaXN0Q2FsZW5kYXIoVGltZVpvbmUgem9uZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgbG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+QnVkZGhpc3RDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSBkYXRlIHRvIHdoaWNoIHRoZSBuZXcgY2FsZW5kYXIgaXMgc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBCdWRkaGlzdENhbGVuZGFyKERhdGUgZGF0ZSkgeworICAgICAgICB0aGlzKCk7CisgICAgICAgIHNldFRpbWUoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkJ1ZGRoaXN0Q2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgQnVkZGhpc3RDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkgeworICAgICAgICBzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEJ1ZGRoaXN0Q2FsZW5kYXIgd2l0aCB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqIGFuZCB0aW1lIHNldCBmb3IgdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBob3VyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjSE9VUl9PRl9EQVkgSE9VUl9PRl9EQVl9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWludXRlICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01JTlVURSBNSU5VVEV9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vjb25kICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1NFQ09ORCBTRUNPTkR9IHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEJ1ZGRoaXN0Q2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWludXRlLCBpbnQgc2Vjb25kKQorICAgIHsKKyAgICAgICAgc3VwZXIoeWVhciwgbW9udGgsIGRhdGUsIGhvdXIsIG1pbnV0ZSwgc2Vjb25kKTsKKyAgICB9CisKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFRoZSBvbmx5IHByYWN0aWNhbCBkaWZmZXJlbmNlIGZyb20gYSBHcmVnb3JpYW4gY2FsZW5kYXIgaXMgdGhhdCB5ZWFycworICAgIC8vIGFyZSBudW1iZXJlZCBzaW5jZSB0aGUgYmlydGggb2YgdGhlIEJ1ZGRoYS4gIEEgY291cGxlIG9mIG92ZXJyaWRlcyB3aWxsCisgICAgLy8gdGFrZSBjYXJlIG9mIHRoYXQuLi4uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLy8gU3RhcnRzIGluIC01NDMgQUQsIGllIDU0NCBCQworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCVURESElTVF9FUkFfU1RBUlQgPSAtNTQzOworCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovICAgIAorICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCkgeworICAgICAgICBpbnQgeWVhcjsKKyAgICAgICAgaWYgKG5ld2VyRmllbGQoRVhURU5ERURfWUVBUiwgWUVBUikgPT0gRVhURU5ERURfWUVBUikgeworICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KEVYVEVOREVEX1lFQVIsIDEpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gSWdub3JlIHRoZSBlcmEsIGFzIHRoZXJlIGlzIG9ubHkgb25lCisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoWUVBUiwgMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHllYXI7CisgICAgfQorCisgICAgLy8gUmV0dXJuIEpEIG9mIHN0YXJ0IG9mIGdpdmVuIG1vbnRoL3llYXIKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8gICAgCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVDb21wdXRlTW9udGhTdGFydChpbnQgZXllYXIsIGludCBtb250aCwgYm9vbGVhbiB1c2VNb250aCkgeworICAgICAgICByZXR1cm4gc3VwZXIuaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoZXllYXIgKyBCVURESElTVF9FUkFfU1RBUlQsIG1vbnRoLCB1c2VNb250aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUNvbXB1dGVGaWVsZHMoaW50IGp1bGlhbkRheSkgeworICAgICAgICBzdXBlci5oYW5kbGVDb21wdXRlRmllbGRzKGp1bGlhbkRheSk7CisgICAgICAgIGludCB5ID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUikgLSBCVURESElTVF9FUkFfU1RBUlQ7CisgICAgICAgIGludGVybmFsU2V0KEVYVEVOREVEX1lFQVIsIHkpOworICAgICAgICBpbnRlcm5hbFNldChFUkEsIDApOworICAgICAgICBpbnRlcm5hbFNldChZRUFSLCB5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBHcmVnb3JpYW5DYWxlbmRhci4gIFRoZXJlIGlzIG9ubHkgb25lIEJ1ZGRoaXN0IEVSQS4gIFdlCisgICAgICogc2hvdWxkIHJlYWxseSBoYW5kbGUgWUVBUiwgWUVBUl9XT1ksIGFuZCBFWFRFTkRFRF9ZRUFSIGhlcmUgdG9vIHRvCisgICAgICogaW1wbGVtZW50IHRoZSAxLi41MDAwMDAwIHJhbmdlLCBidXQgaXQncyBub3QgY3JpdGljYWwuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRMaW1pdChpbnQgZmllbGQsIGludCBsaW1pdFR5cGUpIHsKKyAgICAgICAgaWYgKGZpZWxkID09IEVSQSkgeworICAgICAgICAgICAgcmV0dXJuIEJFOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdXBlci5oYW5kbGVHZXRMaW1pdChmaWVsZCwgbGltaXRUeXBlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IENhbGVuZGFyIHR5cGUuCisgICAgICogQHJldHVybiB0eXBlIG9mIGNhbGVuZGFyIChncmVnb3JpYW4sIGV0Yy4pCisgICAgICogQGludGVybmFsIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiAiYnVkZGhpc3QiOworICAgIH0KKworICAgIC8qCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2FsZW5kYXJGYWN0b3J5IGZhY3Rvcnk7CisgICAgcHVibGljIHN0YXRpYyBDYWxlbmRhckZhY3RvcnkgZmFjdG9yeSgpIHsKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgZmFjdG9yeSA9IG5ldyBDYWxlbmRhckZhY3RvcnkoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIENhbGVuZGFyIGNyZWF0ZShUaW1lWm9uZSB0eiwgVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBCdWRkaGlzdENhbGVuZGFyKHR6LCBsb2MpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZmFjdG9yeU5hbWUoKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQnVkZGhpc3QiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhY3Rvcnk7CisgICAgfQorICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9CeXRlQXJyYXlXcmFwcGVyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9CeXRlQXJyYXlXcmFwcGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ0YmI1MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0J5dGVBcnJheVdyYXBwZXIuamF2YQpAQCAtMCwwICsxLDI5NyBAQAorLy8jI2hlYWRlcgorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworLy8jZWxzZQorLy8jI2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkJ5dGVCdWZmZXI7CisvLyNlbmRpZgoraW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiA8cD4KKyAqIEEgc2ltcGxlIHV0aWxpdHkgY2xhc3MgdG8gd3JhcCBhIGJ5dGUgYXJyYXkuCisgKiA8L3A+CisgKiA8cD4KKyAqIEdlbmVyYWxseSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgb2JqZWN0IGludG8gYSBtZXRob2QuIFRoZSBtZXRob2QgdGFrZXMKKyAqIHJlc3BvbnNpYmlsaXR5IG9mIHdyaXRpbmcgaW50byB0aGUgaW50ZXJuYWwgYnl0ZSBhcnJheSBhbmQgaW5jcmVhc2luZyBpdHMKKyAqIHNpemUgd2hlbiBuZWNlc3NhcnkuCisgKiA8L3A+IAorICogQGF1dGhvciBzeW4gd2VlCisgKiBAc3RhYmxlIElDVSAyLjgKKyAqLworcHVibGljIGNsYXNzIEJ5dGVBcnJheVdyYXBwZXIgaW1wbGVtZW50cyBDb21wYXJhYmxlCit7CisgICAgLy8gcHVibGljIGRhdGEgbWVtYmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEludGVybmFsIGJ5dGUgYXJyYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGJ5dGVbXSBieXRlczsKKworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIGludGVybmFsIGJ5dGUgYXJyYXkgdXNlZC4gCisgICAgICogRGlmZmVyZW50IGZyb20gYnl0ZXMubGVuZ3RoLCBzaXplIHdpbGwgYmUgJmx0Oz0gYnl0ZXMubGVuZ3RoLiAKKyAgICAgKiBTZW1hbnRpY3Mgb2Ygc2l6ZSBpcyBzaW1pbGFyIHRvIGphdmEudXRpbC5WZWN0b3Iuc2l6ZSgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBpbnQgc2l6ZTsKKyAgICAKKyAgICAvLyBwdWJsaWMgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKiogCisgICAgICogQ29uc3RydWN0IGEgbmV3IEJ5dGVBcnJheVdyYXBwZXIgd2l0aCBubyBkYXRhLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBCeXRlQXJyYXlXcmFwcGVyKCkgeworICAgICAgICAvLyBsZWF2ZSBieXRlcyBudWxsLCBkb24ndCBhbGxvY2F0ZSB0d2ljZQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyBCeXRlQXJyYXlXcmFwcGVyIGZyb20gYSBieXRlIGFycmF5IGFuZCBzaXplCisgICAgICogQHBhcmFtIGJ5dGVzVG9BZG9wdCB0aGUgYnl0ZSBhcnJheSB0byBhZG9wdAorICAgICAqIEBwYXJhbSBzaXplIHRoZSBsZW5ndGggb2YgdmFsaWQgZGF0YSBpbiB0aGUgYnl0ZSBhcnJheQorICAgICAqIEB0aHJvd3MgSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpZiBieXRlc1RvQWRvcHQgPT0gbnVsbCBhbmQgc2l6ZSAhPSAwLCBvcgorICAgICAqIHNpemUgPCAwLCBvciBzaXplID4gYnl0ZXNUb0Fkb3B0Lmxlbmd0aC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBCeXRlQXJyYXlXcmFwcGVyKGJ5dGVbXSBieXRlc1RvQWRvcHQsIGludCBzaXplKSB7CisgICAgICAgIGlmICgoYnl0ZXNUb0Fkb3B0ID09IG51bGwgJiYgc2l6ZSAhPSAwKSB8fCBzaXplIDwgMCB8fCBzaXplID4gYnl0ZXNUb0Fkb3B0Lmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oImlsbGVnYWwgc2l6ZTogIiArIHNpemUpOworICAgICAgICB9CisgICAgICAgIHRoaXMuYnl0ZXMgPSBieXRlc1RvQWRvcHQ7CisgICAgICAgIHRoaXMuc2l6ZSA9IHNpemU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IEJ5dGVBcnJheVdyYXBwZXIgZnJvbSB0aGUgY29udGVudHMgb2YgYSBCeXRlQnVmZmVyLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIEJ5dGVCdWZmZXIgZnJvbSB3aGljaCB0byBnZXQgdGhlIGRhdGEuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQnl0ZUFycmF5V3JhcHBlcihCeXRlQnVmZmVyIHNvdXJjZSkgeworICAgICAgICBzaXplID0gc291cmNlLmxpbWl0KCk7CisgICAgICAgIGJ5dGVzID0gbmV3IGJ5dGVbc2l6ZV07CisgICAgICAgIHNvdXJjZS5nZXQoYnl0ZXMsMCxzaXplKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgZnJvbSBCeXRlQnVmZmVyCisgICAgICogQHBhcmFtIGJ5dGVCdWZmZXIKKyAgICBwdWJsaWMgQnl0ZUFycmF5V3JhcHBlcihCeXRlQXJyYXlXcmFwcGVyIHNvdXJjZSkgeworICAgICAgICBzaXplID0gc291cmNlLnNpemU7CisgICAgICAgIGJ5dGVzID0gbmV3IGJ5dGVbc2l6ZV07CisgICAgICAgIGNvcHlCeXRlcyhzb3VyY2UuYnl0ZXMsIDAsIGJ5dGVzLCAwLCBzaXplKTsKKyAgICB9CisgICAgICovCisKKyAgICAvKioKKyAgICAgKiBjcmVhdGUgZnJvbSBieXRlIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBzcmMKKyAgICAgKiBAcGFyYW0gc3RhcnQKKyAgICAgKiBAcGFyYW0gbGltaXQKKyAgICBwdWJsaWMgQnl0ZUFycmF5V3JhcHBlcihieXRlW10gc3JjLCBpbnQgc3RhcnQsIGludCBsaW1pdCkgeworICAgICAgICBzaXplID0gbGltaXQgLSBzdGFydDsKKyAgICAgICAgYnl0ZXMgPSBuZXcgYnl0ZVtzaXplXTsKKyAgICAgICAgY29weUJ5dGVzKHNyYywgc3RhcnQsIGJ5dGVzLCAwLCBzaXplKTsKKyAgICB9CisgICAgICovCisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBFbnN1cmUgdGhhdCB0aGUgaW50ZXJuYWwgYnl0ZSBhcnJheSBpcyBhdCBsZWFzdCBvZiBsZW5ndGggY2FwYWNpdHkuICAgICAKKyAgICAgKiBJZiB0aGUgYnl0ZSBhcnJheSBpcyBudWxsIG9yIGl0cyBsZW5ndGggaXMgbGVzcyB0aGFuIGNhcGFjaXR5LCBhIG5ldyAKKyAgICAgKiBieXRlIGFycmF5IG9mIGxlbmd0aCBjYXBhY2l0eSB3aWxsIGJlIGFsbG9jYXRlZC4gIAorICAgICAqIFRoZSBjb250ZW50cyBvZiB0aGUgYXJyYXkgKGJldHdlZW4gMCBhbmQgc2l6ZSkgcmVtYWluIHVuY2hhbmdlZC4gCisgICAgICogQHBhcmFtIGNhcGFjaXR5IG1pbmltdW0gbGVuZ3RoIG9mIGludGVybmFsIGJ5dGUgYXJyYXkuCisgICAgICogQHJldHVybiB0aGlzIEJ5dGVBcnJheVdyYXBwZXIKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBCeXRlQXJyYXlXcmFwcGVyIGVuc3VyZUNhcGFjaXR5KGludCBjYXBhY2l0eSkgCisgICAgeworICAgICAgICBpZiAoYnl0ZXMgPT0gbnVsbCB8fCBieXRlcy5sZW5ndGggPCBjYXBhY2l0eSkgeworICAgICAgICAgICAgYnl0ZVtdIG5ld2J5dGVzID0gbmV3IGJ5dGVbY2FwYWNpdHldOworICAgICAgICAgICAgY29weUJ5dGVzKGJ5dGVzLCAwLCBuZXdieXRlcywgMCwgc2l6ZSk7CisgICAgICAgICAgICBieXRlcyA9IG5ld2J5dGVzOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGludGVybmFsIGJ5dGUgYXJyYXkgZnJvbSBvZmZzZXQgMCB0byAobGltaXQgLSBzdGFydCkgd2l0aCB0aGUgCisgICAgICogY29udGVudHMgb2Ygc3JjIGZyb20gb2Zmc2V0IHN0YXJ0IHRvIGxpbWl0LiBJZiB0aGUgYnl0ZSBhcnJheSBpcyBudWxsIG9yIGl0cyBsZW5ndGggaXMgbGVzcyB0aGFuIGNhcGFjaXR5LCBhIG5ldyAKKyAgICAgKiBieXRlIGFycmF5IG9mIGxlbmd0aCAobGltaXQgLSBzdGFydCkgd2lsbCBiZSBhbGxvY2F0ZWQuICAKKyAgICAgKiBUaGlzIHJlc2V0cyB0aGUgc2l6ZSBvZiB0aGUgaW50ZXJuYWwgYnl0ZSBhcnJheSB0byAobGltaXQgLSBzdGFydCkuCisgICAgICogQHBhcmFtIHNyYyBzb3VyY2UgYnl0ZSBhcnJheSB0byBjb3B5IGZyb20KKyAgICAgKiBAcGFyYW0gc3RhcnQgc3RhcnQgb2Zmc2V0IG9mIHNyYyB0byBjb3B5IGZyb20KKyAgICAgKiBAcGFyYW0gbGltaXQgZW5kICsgMSBvZmZzZXQgb2Ygc3JjIHRvIGNvcHkgZnJvbQorICAgICAqIEByZXR1cm4gdGhpcyBCeXRlQXJyYXlXcmFwcGVyCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgQnl0ZUFycmF5V3JhcHBlciBzZXQoYnl0ZVtdIHNyYywgaW50IHN0YXJ0LCBpbnQgbGltaXQpIAorICAgIHsKKyAgICAgICAgc2l6ZSA9IDA7CisgICAgICAgIGFwcGVuZChzcmMsIHN0YXJ0LCBsaW1pdCk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICAvKgorICAgIHB1YmxpYyBmaW5hbCBCeXRlQXJyYXlXcmFwcGVyIGdldChieXRlW10gdGFyZ2V0LCBpbnQgc3RhcnQsIGludCBsaW1pdCkgCisgICAgeworICAgICAgICBpbnQgbGVuID0gbGltaXQgLSBzdGFydDsKKyAgICAgICAgaWYgKGxlbiA+IHNpemUpIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImxpbWl0IHRvbyBsb25nIik7CisgICAgICAgIGNvcHlCeXRlcyhieXRlcywgMCwgdGFyZ2V0LCBzdGFydCwgbGVuKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgICovCisKKyAgICAvKioKKyAgICAgKiBBcHBlbmRzIHRoZSBpbnRlcm5hbCBieXRlIGFycmF5IGZyb20gb2Zmc2V0IHNpemUgd2l0aCB0aGUgCisgICAgICogY29udGVudHMgb2Ygc3JjIGZyb20gb2Zmc2V0IHN0YXJ0IHRvIGxpbWl0LiBUaGlzIGluY3JlYXNlcyB0aGUgc2l6ZSBvZgorICAgICAqIHRoZSBpbnRlcm5hbCBieXRlIGFycmF5IHRvIChzaXplICsgbGltaXQgLSBzdGFydCkuCisgICAgICogQHBhcmFtIHNyYyBzb3VyY2UgYnl0ZSBhcnJheSB0byBjb3B5IGZyb20KKyAgICAgKiBAcGFyYW0gc3RhcnQgc3RhcnQgb2Zmc2V0IG9mIHNyYyB0byBjb3B5IGZyb20KKyAgICAgKiBAcGFyYW0gbGltaXQgZW5kICsgMSBvZmZzZXQgb2Ygc3JjIHRvIGNvcHkgZnJvbQorICAgICAqIEByZXR1cm4gdGhpcyBCeXRlQXJyYXlXcmFwcGVyCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgQnl0ZUFycmF5V3JhcHBlciBhcHBlbmQoYnl0ZVtdIHNyYywgaW50IHN0YXJ0LCBpbnQgbGltaXQpIAorICAgIHsKKyAgICAgICAgaW50IGxlbiA9IGxpbWl0IC0gc3RhcnQ7CisgICAgICAgIGVuc3VyZUNhcGFjaXR5KHNpemUgKyBsZW4pOworICAgICAgICBjb3B5Qnl0ZXMoc3JjLCBzdGFydCwgYnl0ZXMsIHNpemUsIGxlbik7CisgICAgICAgIHNpemUgKz0gbGVuOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKgorICAgIHB1YmxpYyBmaW5hbCBCeXRlQXJyYXlXcmFwcGVyIGFwcGVuZChCeXRlQXJyYXlXcmFwcGVyIG90aGVyKSAKKyAgICB7CisgICAgICAgIHJldHVybiBhcHBlbmQob3RoZXIuYnl0ZXMsIDAsIG90aGVyLnNpemUpOworICAgIH0KKyAgICAqLworCisgICAgLyoqCisgICAgICogUmVsZWFzZXMgdGhlIGludGVybmFsIGJ5dGUgYXJyYXkgdG8gdGhlIGNhbGxlciwgcmVzZXRzIHRoZSBpbnRlcm5hbAorICAgICAqIGJ5dGUgYXJyYXkgdG8gbnVsbCBhbmQgaXRzIHNpemUgdG8gMC4KKyAgICAgKiBAcmV0dXJuIGludGVybmFsIGJ5dGUgYXJyYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGZpbmFsIGJ5dGVbXSByZWxlYXNlQnl0ZXMoKQorICAgIHsKKyAgICAgICAgYnl0ZSByZXN1bHRbXSA9IGJ5dGVzOworICAgICAgICBieXRlcyA9IG51bGw7CisgICAgICAgIHNpemUgPSAwOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvLyBCb2lsZXJwbGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBzdHJpbmcgdmFsdWUgZm9yIGRlYnVnZ2luZworICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpICE9IDApIHJlc3VsdC5hcHBlbmQoIiAiKTsKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoVXRpbGl0eS5oZXgoYnl0ZXNbaV0mMHhGRiwyKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBieXRlcyBpbiBlYWNoIHdyYXBwZXIgYXJlIGVxdWFsLgorICAgICAqIEBwYXJhbSBvdGhlciB0aGUgb2JqZWN0IHRvIGNvbXBhcmUgdG8uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0d28gb2JqZWN0cyBhcmUgZXF1YWwuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG90aGVyKSB7CisgICAgICAgIGlmICh0aGlzID09IG90aGVyKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKG90aGVyID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEJ5dGVBcnJheVdyYXBwZXIgdGhhdCA9IChCeXRlQXJyYXlXcmFwcGVyKW90aGVyOworICAgICAgICAgICAgaWYgKHNpemUgIT0gdGhhdC5zaXplKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChieXRlc1tpXSAhPSB0aGF0LmJ5dGVzW2ldKSByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBoYXNoY29kZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBoYXNoY29kZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIGludCByZXN1bHQgPSBieXRlcy5sZW5ndGg7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICByZXN1bHQgPSAzNypyZXN1bHQgKyBieXRlc1tpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdGhpcyBvYmplY3QgdG8gYW5vdGhlciBCeXRlQXJyYXlXcmFwcGVyLCB3aGljaCBtdXN0IG5vdCBiZSBudWxsLgorICAgICAqIEBwYXJhbSBvdGhlciB0aGUgb2JqZWN0IHRvIGNvbXBhcmUgdG8uCisgICAgICogQHJldHVybiBhIHZhbHVlIDwwLCAwLCBvciA+MCBhcyB0aGlzIGNvbXBhcmVzIGxlc3MgdGhhbiwgZXF1YWwgdG8sIG9yCisgICAgICogZ3JlYXRlciB0aGFuIG90aGVyLgorICAgICAqIEB0aHJvd3MgQ2xhc3NDYXN0RXhjZXB0aW9uIGlmIHRoZSBvdGhlciBvYmplY3QgaXMgbm90IGEgQnl0ZUFycmF5V3JhcHBlcgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IG90aGVyKSB7CisgICAgICAgIGlmICh0aGlzID09IG90aGVyKSByZXR1cm4gMDsKKyAgICAgICAgQnl0ZUFycmF5V3JhcHBlciB0aGF0ID0gKEJ5dGVBcnJheVdyYXBwZXIpIG90aGVyOworICAgICAgICBpbnQgbWluU2l6ZSA9IHNpemUgPCB0aGF0LnNpemUgPyBzaXplIDogdGhhdC5zaXplOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1pblNpemU7ICsraSkgeworICAgICAgICAgICAgaWYgKGJ5dGVzW2ldICE9IHRoYXQuYnl0ZXNbaV0pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGJ5dGVzW2ldICYgMHhGRikgLSAodGhhdC5ieXRlc1tpXSAmIDB4RkYpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzaXplIC0gdGhhdC5zaXplOworICAgIH0KKyAgICAKKyAgICAvLyBwcml2YXRlIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb3BpZXMgdGhlIGNvbnRlbnRzIG9mIHNyYyBieXRlIGFycmF5IGZyb20gb2Zmc2V0IHNyY29mZiB0byB0aGUgCisgICAgICogdGFyZ2V0IG9mIHRndCBieXRlIGFycmF5IGF0IHRoZSBvZmZzZXQgdGd0b2ZmLgorICAgICAqIEBwYXJhbSBzcmMgc291cmNlIGJ5dGUgYXJyYXkgdG8gY29weSBmcm9tCisgICAgICogQHBhcmFtIHNyY29mZiBzdGFydCBvZmZzZXQgb2Ygc3JjIHRvIGNvcHkgZnJvbQorICAgICAqIEBwYXJhbSB0Z3QgdGFyZ2V0IGJ5dGUgYXJyYXkgdG8gY29weSB0bworICAgICAqIEBwYXJhbSB0Z3RvZmYgc3RhcnQgb2Zmc2V0IG9mIHRndCB0byBjb3B5IHRvCisgICAgICogQHBhcmFtIGxlbmd0aCBzaXplIG9mIGNvbnRlbnRzIHRvIGNvcHkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCB2b2lkIGNvcHlCeXRlcyhieXRlW10gc3JjLCBpbnQgc3Jjb2ZmLCBieXRlW10gdGd0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0Z3RvZmYsIGludCBsZW5ndGgpIHsKKyAgICAgICAgaWYgKGxlbmd0aCA8IDY0KSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gc3Jjb2ZmLCBuID0gdGd0b2ZmOyAtLSBsZW5ndGggPj0gMDsgKysgaSwgKysgbikgeworICAgICAgICAgICAgICAgIHRndFtuXSA9IHNyY1tpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNyYywgc3Jjb2ZmLCB0Z3QsIHRndG9mZiwgbGVuZ3RoKTsKKyAgICAgICAgfQorICAgIH0gICAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0NFQ2FsZW5kYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NFQ2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44N2E1ZDBlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ0VDYWxlbmRhci5qYXZhCkBAIC0wLDAgKzEsMzAwIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgICAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworLyoqCisgKiBCYXNlIGNsYXNzIGZvciBFdGhpb3BpY0NhbGVuZGFyIGFuZCBDb3B0aWNDYWxlbmRhci4KKyAqIEBpbnRlcm5hbAorICovCitjbGFzcyBDRUNhbGVuZGFyIGV4dGVuZHMgQ2FsZW5kYXIgeworICAgIC8vIGpkazEuNC4yIHNlcmlhbHZlcgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC05OTk1NDc2MjMwNjY0MTQyNzFMOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExJTUlUU1tdW10gPSB7CisgICAgICAgIC8vIE1pbmltdW0gIEdyZWF0ZXN0ICAgIExlYXN0ICBNYXhpbXVtCisgICAgICAgIC8vICAgICAgICAgICBNaW5pbXVtICBNYXhpbXVtCisgICAgICAgIHswLCAwLCAxLCAxICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAvLyBFUkEKKyAgICAgICAgezEsIDEsIDU4Mjg5NjMsIDU4MzgyNzAgICAgICAgICAgICAgIH0sIC8vIFlFQVIKKyAgICAgICAgezAsIDAsIDEzLCAxMyAgICAgICAgICAgICAgICAgICAgICAgIH0sIC8vIE1PTlRICisgICAgICAgIHsxLCAxLCA1MiwgNTMgICAgICAgICAgICAgICAgICAgICAgICB9LCAvLyBXRUVLX09GX1lFQVIKKyAgICAgICAgezAsIDAsIDEsIDYgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIC8vIFdFRUtfT0ZfTU9OVEgKKyAgICAgICAgezEsIDEsIDUsIDMwICAgICAgICAgICAgICAgICAgICAgICAgIH0sIC8vIERBWV9PRl9NT05USAorICAgICAgICB7MSwgMSwgMzY1LCAzNjYgICAgICAgICAgICAgICAgICAgICAgfSwgLy8gREFZX09GX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERBWV9PRl9XRUVLCisgICAgICAgIHstMSwgLTEsIDQsIDYgICAgICAgICAgICAgICAgICAgICAgICB9LCAvLyBEQVlfT0ZfV0VFS19JTl9NT05USAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gQU1fUE0KKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEhPVVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEhPVVJfT0ZfREFZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSU5VVEUKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFNFQ09ORAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlMTElTRUNPTkQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFpPTkVfT0ZGU0VUCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEU1RfT0ZGU0VUCisgICAgICAgIHstNTgzODI3MCwgLTU4MzgyNzAsIDU4Mjg5NjQsIDU4MzgyNzF9LCAvLyBZRUFSX1dPWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRE9XX0xPQ0FMCisgICAgICAgIHstNTgzODI2OSwgLTU4MzgyNjksIDU4Mjg5NjMsIDU4MzgyNzB9LCAvLyBFWFRFTkRFRF9ZRUFSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBKVUxJQU5fREFZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSUxMSVNFQ09ORFNfSU5fREFZCisgICAgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdW10gY2VNT05USF9DT1VOVCA9IHsKKyAgICAgICAgLy9sZW4gbGVuMiBzdCAgc3QyCisgICAgICAgIHszMCwgMzAsICAgMCwgICAwfSwgLy8gTWVza2VyZW0KKyAgICAgICAgezMwLCAzMCwgIDMwLCAgMzB9LCAvLyBUZWtlbXQgCisgICAgICAgIHszMCwgMzAsICA2MCwgIDYwfSwgLy8gSGVkYXIgCisgICAgICAgIHszMCwgMzAsICA5MCwgIDkwfSwgLy8gVGFoc2FzIAorICAgICAgICB7MzAsIDMwLCAxMjAsIDEyMH0sIC8vIFRlciAKKyAgICAgICAgezMwLCAzMCwgMTUwLCAxNTB9LCAvLyBZZWthdGl0CisgICAgICAgIHszMCwgMzAsIDE4MCwgMTgwfSwgLy8gTWVnYWJpdAorICAgICAgICB7MzAsIDMwLCAyMTAsIDIxMH0sIC8vIE1pYXppYQorICAgICAgICB7MzAsIDMwLCAyNDAsIDI0NH0sIC8vIEdlbmJvdAorICAgICAgICB7MzAsIDMwLCAyNzAsIDI3MH0sIC8vIFNlbmUgCisgICAgICAgIHszMCwgMzAsIDMwMCwgMzAwfSwgLy8gSGFtbGUgCisgICAgICAgIHszMCwgMzAsIDMzMCwgMzMwfSwgLy8gTmVoYXNzZSAKKyAgICAgICAgeyA1LCAgNiwgMzYwLCAzNjB9ICAvLyBQd2FnbWUKKyAgICAgICAgLy8gbGVuICBsZW5ndGggb2YgbW9udGgKKyAgICAgICAgLy8gbGVuMiBsZW5ndGggb2YgbW9udGggaW4gYSBsZWFwIHllYXIKKyAgICAgICAgLy8gc3QgICBkYXlzIGluIHllYXIgYmVmb3JlIHN0YXJ0IG9mIG1vbnRoCisgICAgICAgIC8vIHN0MiAgZGF5cyBpbiB5ZWFyIGJlZm9yZSBtb250aCBpbiBsZWFwIHllYXIKKyAgICB9OworICAgIAorICAgIC8vIFRoZSBDb3B0aWMgYW5kIEV0aGlvcGljIGNhbGVuZGFycyBkaWZmZXIgb25seSBpbiB0aGVpciBlcG9jaHMuCisgICAgLy8gV2UgaGFuZGxlIHRoaXMgYnkgc2V0dGluZyB0aGUgamRPZmZzZXQgdG8gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbgorICAgIC8vIHRoZSBKdWxpYW4gYW5kIENvcHRpYyBvciBFdGhpb3BpYyBlcG9jaC4KKyAgICAvLyBUaGlzIHZhbHVlIGlzIHNldCBpbiB0aGUgY2xhc3MgaW5pdGlhbGl6YXRpb24gcGhhc2Ugb2YgdGhlIHR3bworICAgIC8vIHN1YmNsYXNzZXMsIENvcHRpY0NhbGVuZGFyIGFuZCBFdGhpb3BpY0NhbGVuZGFyCisgICAgcHJvdGVjdGVkIGludCBqZEVwb2NoT2Zmc2V0ICA9IC0xOworICAgIAorCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRMaW1pdChpbnQgZmllbGQsIGludCBsaW1pdFR5cGUpIHsKKyAgICAgICAgcmV0dXJuIExJTUlUU1tmaWVsZF1bbGltaXRUeXBlXTsKKyAgICB9CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RydWN0b3JzLi4uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgZGVmYXVsdCA8Y29kZT5DRUNhbGVuZGFyPC9jb2RlPiB1c2luZyB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqLworICAgIHByb3RlY3RlZCBDRUNhbGVuZGFyKCkgeworICAgICAgICB0aGlzKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5DRUNhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIFRoZSB0aW1lIHpvbmUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICovCisgICAgcHJvdGVjdGVkIENFQ2FsZW5kYXIoVGltZVpvbmUgem9uZSkgeworICAgICAgICB0aGlzKHpvbmUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q0VDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYUxvY2FsZSBUaGUgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqLworICAgIHByb3RlY3RlZCBDRUNhbGVuZGFyKExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBhTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q0VDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICovCisgICAgcHJvdGVjdGVkIENFQ2FsZW5kYXIoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNFQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIFRoZSB0aW1lIHpvbmUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYUxvY2FsZSBUaGUgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqLworICAgIHByb3RlY3RlZCBDRUNhbGVuZGFyKFRpbWVab25lIHpvbmUsIExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGFMb2NhbGUpOworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5DRUNhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSBUaGUgdGltZSB6b25lIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqLworICAgIHByb3RlY3RlZCBDRUNhbGVuZGFyKFRpbWVab25lIHpvbmUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNFQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIFRpc2hyaS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkLgorICAgICAqLworICAgIHByb3RlY3RlZCBDRUNhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKSB7CisgICAgICAgIHN1cGVyKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB0aGlzLnNldCh5ZWFyLCBtb250aCwgZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNFQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgZGF0ZSB0byB3aGljaCB0aGUgbmV3IGNhbGVuZGFyIGlzIHNldC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ0VDYWxlbmRhcihEYXRlIGRhdGUpIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHRoaXMuc2V0VGltZShkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q0VDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqIGFuZCB0aW1lIHNldCBmb3IgdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNT05USCBNT05USH0gdGltZSBmaWVsZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBUaXNocmkuCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNEQVRFIERBVEV9IHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIGhvdXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNIT1VSX09GX0RBWSBIT1VSX09GX0RBWX0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbWludXRlICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01JTlVURSBNSU5VVEV9IHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIHNlY29uZCAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNTRUNPTkQgU0VDT05EfSB0aW1lIGZpZWxkLgorICAgICAqLworICAgIHByb3RlY3RlZCBDRUNhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWludXRlLCBpbnQgc2Vjb25kKQorICAgIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHRoaXMuc2V0KHllYXIsIG1vbnRoLCBkYXRlLCBob3VyLCBtaW51dGUsIHNlY29uZCk7CisgICAgfQorICAgIAorICAgIAorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENhbGVuZGFyIHN5c3RlbSBDb252ZXJzdGlvbiBtZXRob2RzLi4uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGludCBleWVhciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbW9udGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHVzZU1vbnRoKSB7CisgICAgICAgIHJldHVybiBjZVRvSkQoZXllYXIsIGVtb250aCwgMCwgamRFcG9jaE9mZnNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKSB7CisgICAgICAgIGludCB5ZWFyOworICAgICAgICBpZiAobmV3ZXJGaWVsZChFWFRFTkRFRF9ZRUFSLCBZRUFSKSA9PSBFWFRFTkRFRF9ZRUFSKSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUiwgMSk7IC8vIERlZmF1bHQgdG8geWVhciAxCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoWUVBUiwgMSk7IC8vIERlZmF1bHQgdG8geWVhciAxCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHllYXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQ29tcHV0ZUZpZWxkcyhpbnQganVsaWFuRGF5KSB7CisgICAgICAgIEludGVnZXJbXSBkYXRlID0gZ2V0RGF0ZUZyb21KRChqdWxpYW5EYXksIGpkRXBvY2hPZmZzZXQpOworICAgICAgICBpbnQgX3llYXIgID0gZGF0ZVswXS5pbnRWYWx1ZSgpOworICAgICAgICBpbnQgX21vbnRoID0gZGF0ZVsxXS5pbnRWYWx1ZSgpOworICAgICAgICBpbnQgX2RheSAgID0gZGF0ZVsyXS5pbnRWYWx1ZSgpOworICAgICAgICBpbnQgY2V5ZWFyID0gMDsKKworICAgICAgICAvLyBEbyB3ZSB3YW50IHRvIHVzZSBFdGhpb3BpY0NhbGVuZGFyLkFBLCAuQU0gaGVyZT8KKyAgICAgICAgaW50IGVyYSA9IEdyZWdvcmlhbkNhbGVuZGFyLkFEOworICAgICAgICBpZiAoX3llYXIgPCAwKSB7IC8vIGRsZjogdGhpcyBpcyB3aGF0IHRoZSB0ZXN0IHNheXMgdG8gZG8KKyAgICAgICAgICAgIGVyYSAgID0gR3JlZ29yaWFuQ2FsZW5kYXIuQkM7CisgICAgICAgICAgICBjZXllYXIgPSAxIC0gX3llYXI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjZXllYXIgPSBfeWVhcjsKKyAgICAgICAgfQorCisgICAgICAgIGludGVybmFsU2V0KE1PTlRILCBfbW9udGgpOworICAgICAgICBpbnRlcm5hbFNldChEQVlfT0ZfTU9OVEgsIF9kYXkpOworICAgICAgICBpbnRlcm5hbFNldChEQVlfT0ZfWUVBUiwgKDMwICogX21vbnRoKSArIF9kYXkpOworICAgICAgICBpbnRlcm5hbFNldChFWFRFTkRFRF9ZRUFSLCBjZXllYXIpOworICAgICAgICBpbnRlcm5hbFNldChFUkEsIGVyYSk7CisgICAgICAgIGludGVybmFsU2V0KFlFQVIsIF95ZWFyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjZVRvSkQobG9uZyB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgamRFcG9jaE9mZnNldCkgeworCisgICAgICAgIC8vIEp1bGlhbjwtPkV0aGlvcGljIGFsZ29yaXRobXMgZnJvbToKKyAgICAgICAgLy8gIkNhbGVuZGFycyBpbiBFdGhpb3BpYSIsIEJlcmhhbnUgQmV5ZW5lLCBNYW5mcmVkIEt1ZGxlaywgSW50ZXJuYXRpb25hbCBDb25mZXJlbmNlCisgICAgICAgIC8vIG9mIEV0aGlvcGlhbiBTdHVkaWVzIFhWLCBIYW1idXJnLCAyMDAzCisKKyAgICAgICAgcmV0dXJuIChpbnQpICgKKyAgICAgICAgICAgIChqZEVwb2NoT2Zmc2V0KzM2NSkgICAgIC8vIGRpZmZlcmVuY2UgZnJvbSBKdWxpYW4gZXBvY2ggdG8gMSwxLDEKKyAgICAgICAgICAgICsgMzY1ICogKHllYXIgLSAxKSAgICAgIC8vIG51bWJlciBvZiBkYXlzIGZyb20geWVhcnMKKyAgICAgICAgICAgICsgcXVvdGllbnQoeWVhciwgNCkgICAgIC8vIGV4dHJhIGRheSBvZiBsZWFwIHllYXIKKyAgICAgICAgICAgICsgMzAgKiAobW9udGggKyAxKSAgICAgIC8vIG51bWJlciBvZiBkYXlzIGZyb20gbW9udGhzCisgICAgICAgICAgICArIGRhdGUgICAgICAgICAgICAgICAgICAvLyBudW1iZXIgb2YgZGF5cyBmb3IgcHJlc2VudCBtb250aAorICAgICAgICAgICAgLSAzMSAgICAgICAgICAgICAgICAgICAgLy8gc2xhY2s/CisgICAgICAgICAgICApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSW50ZWdlcltdIGdldERhdGVGcm9tSkQoaW50IGp1bGlhbkRheSwgaW50IGpkRXBvY2hPZmZzZXQpIHsKKyAgICAgICAgLy8gMTQ2MSBpcyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gNCB5ZWFycworICAgICAgICBsb25nIHI0ID0gbW9kKGp1bGlhbkRheSAtIGpkRXBvY2hPZmZzZXQsIDE0NjEpOyAvLyBudW1iZXIgb2YgZGF5cyB3aXRoaW4gYSA0IHllYXIgcGVyaW9kCisgICAgICAgIGxvbmcgIG4gPSBtb2QocjQsIDM2NSkgKyAzNjUgKiBxdW90aWVudChyNCwgMTQ2MCk7ICAvLyBkYXlzIGluIHByZXNlbnQgeWVhcgorCisgICAgICAgIGxvbmcgYXByaW1lID0gNCAgIC8vIG51bWJlciBvZiB5ZWFycyBpbiB0aGUgbGVhcCB5ZWFyIGN5Y2xlCisgICAgICAgICAgICAqIHF1b3RpZW50KGp1bGlhbkRheSAtIGpkRXBvY2hPZmZzZXQsIDE0NjEpICAvLyBudW1iZXIgb2YgNCB5ZWFyIHBlcmlvZHMgYmV0d2VlbiBlcG9jaHM/CisgICAgICAgICAgICArIHF1b3RpZW50KHI0LCAzNjUpICAgLy8gbnVtYmVyIG9mIHJlZ3VsYXIgeWVhcnM/CisgICAgICAgICAgICAtIHF1b3RpZW50KHI0LCAxNDYwKSAgLy8gbnVtYmVyIG9mIDQgeWVhciBwZXJpb2RzPworICAgICAgICAgICAgLSAxOworCisgICAgICAgIGludCBfeWVhciAgID0gKGludCkgKGFwcmltZSArIDEpOworICAgICAgICBpbnQgX21vbnRoICA9IChpbnQpIChxdW90aWVudChuLCAzMCkpOworICAgICAgICBpbnQgX2RheSAgICA9IG1vZChuLCAzMCkgKyAxOworCisgICAgICAgIHJldHVybiBuZXcgSW50ZWdlcltdeyBuZXcgSW50ZWdlcihfeWVhciksIG5ldyBJbnRlZ2VyKF9tb250aCksIG5ldyBJbnRlZ2VyKF9kYXkpIH07CisgICAgfQorIAorICAgIC8qKgorICAgICAqIFRoZXNlIHV0aWxpdHkgZnVuY3Rpb25zIGNhbiBiZSByZXBsYWNlZCBieSBlcXVpdmFsZW50IAorICAgICAqIGZ1bmN0aW9ucyBmcm9tIElDVSBpZiBhdmFpbGFibGUuCisgICAgICovCisgICAgc3RhdGljIGludCBtb2QobG9uZyBpLCBpbnQgaikgeworICAgICAgICByZXR1cm4gKGludCkgKGkgLSAobG9uZykgaiAqIHF1b3RpZW50KGksIGopKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGludCBxdW90aWVudChsb25nIGksIGludCBqKSB7CisgICAgICAgIHJldHVybiAoaW50KSBNYXRoLmZsb29yKChkb3VibGUpIGkgLyBqKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9DYWxlbmRhci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44OTA2NzBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FsZW5kYXIuamF2YQpAQCAtMCwwICsxLDUxODIgQEAKKy8qCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVTG9jYWxlU2VydmljZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVUxvY2FsZVNlcnZpY2UuTG9jYWxlS2V5RmFjdG9yeTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVU2VydmljZS5GYWN0b3J5OworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJEYXRhOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuU2ltcGxlRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuQnVkZGhpc3RDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNoaW5lc2VDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkNvcHRpY0NhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuRXRoaW9waWNDYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuSGVicmV3Q2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5Jc2xhbWljQ2FsZW5kYXI7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5KYXBhbmVzZUNhbGVuZGFyOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCisvKioKKyAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBjb252ZXJ0aW5nIGJldHdlZW4KKyAqIGEgPGNvZGU+RGF0ZTwvY29kZT4gb2JqZWN0IGFuZCBhIHNldCBvZiBpbnRlZ2VyIGZpZWxkcyBzdWNoIGFzCisgKiA8Y29kZT5ZRUFSPC9jb2RlPiwgPGNvZGU+TU9OVEg8L2NvZGU+LCA8Y29kZT5EQVk8L2NvZGU+LCA8Y29kZT5IT1VSPC9jb2RlPiwKKyAqIGFuZCBzbyBvbi4gKEEgPGNvZGU+RGF0ZTwvY29kZT4gb2JqZWN0IHJlcHJlc2VudHMgYSBzcGVjaWZpYyBpbnN0YW50IGluCisgKiB0aW1lIHdpdGggbWlsbGlzZWNvbmQgcHJlY2lzaW9uLiBTZWUKKyAqIHtAbGluayBEYXRlfQorICogZm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSA8Y29kZT5EYXRlPC9jb2RlPiBjbGFzcy4pCisgKgorICogPHA+PGI+Tm90ZTo8L2I+ICBUaGlzIGNsYXNzIGlzIHNpbWlsYXIsIGJ1dCBub3QgaWRlbnRpY2FsLCB0byB0aGUgY2xhc3MKKyAqIDxjb2RlPmphdmEudXRpbC5DYWxlbmRhcjwvY29kZT4uICBDaGFuZ2VzIGFyZSBkZXRhaWxlZCBiZWxvdy4KKyAqCisgKiA8cD4KKyAqIFN1YmNsYXNzZXMgb2YgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGludGVycHJldCBhIDxjb2RlPkRhdGU8L2NvZGU+CisgKiBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzIG9mIGEgc3BlY2lmaWMgY2FsZW5kYXIgc3lzdGVtLiAgSUNVNEogY29udGFpbnMKKyAqIHNldmVyYWwgc3ViY2xhc3NlcyBpbXBsZW1lbnRpbmcgZGlmZmVyZW50IGludGVybmF0aW9uYWwgY2FsZW5kYXIgc3lzdGVtcy4KKyAqCisgKiA8cD4KKyAqIExpa2Ugb3RoZXIgbG9jYWxlLXNlbnNpdGl2ZSBjbGFzc2VzLCA8Y29kZT5DYWxlbmRhcjwvY29kZT4gcHJvdmlkZXMgYQorICogY2xhc3MgbWV0aG9kLCA8Y29kZT5nZXRJbnN0YW5jZTwvY29kZT4sIGZvciBnZXR0aW5nIGEgZ2VuZXJhbGx5IHVzZWZ1bAorICogb2JqZWN0IG9mIHRoaXMgdHlwZS4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+J3MgPGNvZGU+Z2V0SW5zdGFuY2U8L2NvZGU+IG1ldGhvZAorICogcmV0dXJucyBhIGNhbGVuZGFyIG9mIGEgdHlwZSBhcHByb3ByaWF0ZSB0byB0aGUgbG9jYWxlLCB3aG9zZQorICogdGltZSBmaWVsZHMgaGF2ZSBiZWVuIGluaXRpYWxpemVkIHdpdGggdGhlIGN1cnJlbnQgZGF0ZSBhbmQgdGltZToKKyAqIDxibG9ja3F1b3RlPgorICogPHByZT5DYWxlbmRhciByaWdodE5vdyA9IENhbGVuZGFyLmdldEluc3RhbmNlKCk8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD5XaGVuIGEgPGNvZGU+VUxvY2FsZTwvY29kZT4gaXMgdXNlZCBieSA8Y29kZT5nZXRJbnN0YW5jZTwvY29kZT4sIGl0cworICogJzxjb2RlPmNhbGVuZGFyPC9jb2RlPicgdGFnIGFuZCB2YWx1ZSBhcmUgcmV0cmlldmVkIGlmIHByZXNlbnQuICBJZiBhIHJlY29nbml6ZWQKKyAqIHZhbHVlIGlzIHN1cHBsaWVkLCBhIGNhbGVuZGFyIGlzIHByb3ZpZGVkIGFuZCBjb25maWd1cmVkIGFzIGFwcHJvcHJpYXRlLgorICogQ3VycmVudGx5IHJlY29nbml6ZWQgdGFncyBhcmUgImJ1ZGRoaXN0IiwgImNoaW5lc2UiLCAiY29wdGljIiwgImV0aGlvcGljIiwgCisgKiAiZ3JlZ29yaWFuIiwgImhlYnJldyIsICJpc2xhbWljIiwgImlzbGFtaWMtY2l2aWwiLCBhbmQgImphcGFuZXNlIi4gIEZvcgorICogZXhhbXBsZTogPGJsb2NrcXVvdGU+CisgKiA8cHJlPkNhbGVuZGFyIGNhbCA9IENhbGVuZGFyLmdldEluc3RhbmNlKG5ldyBVTG9jYWxlKCJlbl9VU0BjYWxlbmRhcj1qYXBhbmVzZSIpKTs8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4gd2lsbCByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgSmFwYW5lc2VDYWxlbmRhciAodXNpbmcgZW5fVVMgY29udmVudGlvbnMgZm9yCisgKiBtaW5pbXVtIGRheXMgaW4gZmlyc3Qgd2Vlaywgc3RhcnQgZGF5IG9mIHdlZWssIGV0IGNldGVyYSkuCisgKgorICogPHA+QSA8Y29kZT5DYWxlbmRhcjwvY29kZT4gb2JqZWN0IGNhbiBwcm9kdWNlIGFsbCB0aGUgdGltZSBmaWVsZCB2YWx1ZXMKKyAqIG5lZWRlZCB0byBpbXBsZW1lbnQgdGhlIGRhdGUtdGltZSBmb3JtYXR0aW5nIGZvciBhIHBhcnRpY3VsYXIgbGFuZ3VhZ2UgYW5kCisgKiBjYWxlbmRhciBzdHlsZSAoZm9yIGV4YW1wbGUsIEphcGFuZXNlLUdyZWdvcmlhbiwgSmFwYW5lc2UtVHJhZGl0aW9uYWwpLgorICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGRlZmluZXMgdGhlIHJhbmdlIG9mIHZhbHVlcyByZXR1cm5lZCBieSBjZXJ0YWluIGZpZWxkcywKKyAqIGFzIHdlbGwgYXMgdGhlaXIgbWVhbmluZy4gIEZvciBleGFtcGxlLCB0aGUgZmlyc3QgbW9udGggb2YgdGhlIHllYXIgaGFzIHZhbHVlCisgKiA8Y29kZT5NT05USDwvY29kZT4gPT0gPGNvZGU+SkFOVUFSWTwvY29kZT4gZm9yIGFsbCBjYWxlbmRhcnMuICBPdGhlciB2YWx1ZXMKKyAqIGFyZSBkZWZpbmVkIGJ5IHRoZSBjb25jcmV0ZSBzdWJjbGFzcywgc3VjaCBhcyA8Y29kZT5FUkE8L2NvZGU+IGFuZAorICogPGNvZGU+WUVBUjwvY29kZT4uICBTZWUgaW5kaXZpZHVhbCBmaWVsZCBkb2N1bWVudGF0aW9uIGFuZCBzdWJjbGFzcworICogZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4KKyAqCisgKiA8cD5XaGVuIGEgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGlzIDxlbT5sZW5pZW50PC9lbT4sIGl0IGFjY2VwdHMgYSB3aWRlciByYW5nZQorICogb2YgZmllbGQgdmFsdWVzIHRoYW4gaXQgcHJvZHVjZXMuICBGb3IgZXhhbXBsZSwgYSBsZW5pZW50CisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gaW50ZXJwcmV0cyA8Y29kZT5NT05USDwvY29kZT4gPT0KKyAqIDxjb2RlPkpBTlVBUlk8L2NvZGU+LCA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+ID09IDMyIGFzIEZlYnJ1YXJ5IDEuICBBCisgKiBub24tbGVuaWVudCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGVuIGdpdmVuCisgKiBvdXQtb2YtcmFuZ2UgZmllbGQgc2V0dGluZ3MuICBXaGVuIGNhbGVuZGFycyByZWNvbXB1dGUgZmllbGQgdmFsdWVzIGZvcgorICogcmV0dXJuIGJ5IDxjb2RlPmdldCgpPC9jb2RlPiwgdGhleSBub3JtYWxpemUgdGhlbS4gIEZvciBleGFtcGxlLCBhCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gYWx3YXlzIHByb2R1Y2VzIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4KKyAqIHZhbHVlcyBiZXR3ZWVuIDEgYW5kIHRoZSBsZW5ndGggb2YgdGhlIG1vbnRoLgorICoKKyAqIDxwPjxjb2RlPkNhbGVuZGFyPC9jb2RlPiBkZWZpbmVzIGEgbG9jYWxlLXNwZWNpZmljIHNldmVuIGRheSB3ZWVrIHVzaW5nIHR3bworICogcGFyYW1ldGVyczogdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayBhbmQgdGhlIG1pbmltYWwgZGF5cyBpbiBmaXJzdCB3ZWVrCisgKiAoZnJvbSAxIHRvIDcpLiAgVGhlc2UgbnVtYmVycyBhcmUgdGFrZW4gZnJvbSB0aGUgbG9jYWxlIHJlc291cmNlIGRhdGEgd2hlbiBhCisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaXMgY29uc3RydWN0ZWQuICBUaGV5IG1heSBhbHNvIGJlIHNwZWNpZmllZCBleHBsaWNpdGx5CisgKiB0aHJvdWdoIHRoZSBBUEkuCisgKgorICogPHA+V2hlbiBzZXR0aW5nIG9yIGdldHRpbmcgdGhlIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+IG9yCisgKiA8Y29kZT5XRUVLX09GX1lFQVI8L2NvZGU+IGZpZWxkcywgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IG11c3QgZGV0ZXJtaW5lIHRoZQorICogZmlyc3Qgd2VlayBvZiB0aGUgbW9udGggb3IgeWVhciBhcyBhIHJlZmVyZW5jZSBwb2ludC4gIFRoZSBmaXJzdCB3ZWVrIG9mIGEKKyAqIG1vbnRoIG9yIHllYXIgaXMgZGVmaW5lZCBhcyB0aGUgZWFybGllc3Qgc2V2ZW4gZGF5IHBlcmlvZCBiZWdpbm5pbmcgb24KKyAqIDxjb2RlPmdldEZpcnN0RGF5T2ZXZWVrKCk8L2NvZGU+IGFuZCBjb250YWluaW5nIGF0IGxlYXN0CisgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+IGRheXMgb2YgdGhhdCBtb250aCBvciB5ZWFyLiAgV2Vla3MKKyAqIG51bWJlcmVkIC4uLiwgLTEsIDAgcHJlY2VkZSB0aGUgZmlyc3Qgd2Vlazsgd2Vla3MgbnVtYmVyZWQgMiwgMywuLi4gZm9sbG93CisgKiBpdC4gIE5vdGUgdGhhdCB0aGUgbm9ybWFsaXplZCBudW1iZXJpbmcgcmV0dXJuZWQgYnkgPGNvZGU+Z2V0KCk8L2NvZGU+IG1heSBiZQorICogZGlmZmVyZW50LiAgRm9yIGV4YW1wbGUsIGEgc3BlY2lmaWMgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHN1YmNsYXNzIG1heQorICogZGVzaWduYXRlIHRoZSB3ZWVrIGJlZm9yZSB3ZWVrIDEgb2YgYSB5ZWFyIGFzIHdlZWsgPGVtPm48L2VtPiBvZiB0aGUgcHJldmlvdXMKKyAqIHllYXIuCisgKgorICogPHA+IFdoZW4gY29tcHV0aW5nIGEgPGNvZGU+RGF0ZTwvY29kZT4gZnJvbSB0aW1lIGZpZWxkcywgdHdvIHNwZWNpYWwKKyAqIGNpcmN1bXN0YW5jZXMgbWF5IGFyaXNlOiB0aGVyZSBtYXkgYmUgaW5zdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIGNvbXB1dGUgdGhlCisgKiA8Y29kZT5EYXRlPC9jb2RlPiAoc3VjaCBhcyBvbmx5IHllYXIgYW5kIG1vbnRoIGJ1dCBubyBkYXkgaW4gdGhlIG1vbnRoKSwgb3IKKyAqIHRoZXJlIG1heSBiZSBpbmNvbnNpc3RlbnQgaW5mb3JtYXRpb24gKHN1Y2ggYXMgIlR1ZXNkYXksIEp1bHkgMTUsIDE5OTYiIC0tCisgKiBKdWx5IDE1LCAxOTk2IGlzIGFjdHVhbGx5IGEgTW9uZGF5KS4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+SW5zdWZmaWNpZW50IGluZm9ybWF0aW9uLjwvc3Ryb25nPiBUaGUgY2FsZW5kYXIgd2lsbCB1c2UgZGVmYXVsdAorICogaW5mb3JtYXRpb24gdG8gc3BlY2lmeSB0aGUgbWlzc2luZyBmaWVsZHMuIFRoaXMgbWF5IHZhcnkgYnkgY2FsZW5kYXI7IGZvcgorICogdGhlIEdyZWdvcmlhbiBjYWxlbmRhciwgdGhlIGRlZmF1bHQgZm9yIGEgZmllbGQgaXMgdGhlIHNhbWUgYXMgdGhhdCBvZiB0aGUKKyAqIHN0YXJ0IG9mIHRoZSBlcG9jaDogaS5lLiwgWUVBUiA9IDE5NzAsIE1PTlRIID0gSkFOVUFSWSwgREFURSA9IDEsIGV0Yy4KKyAqCisgKiA8cD4KKyAqIDxzdHJvbmc+SW5jb25zaXN0ZW50IGluZm9ybWF0aW9uLjwvc3Ryb25nPiBJZiBmaWVsZHMgY29uZmxpY3QsIHRoZSBjYWxlbmRhcgorICogd2lsbCBnaXZlIHByZWZlcmVuY2UgdG8gZmllbGRzIHNldCBtb3JlIHJlY2VudGx5LiBGb3IgZXhhbXBsZSwgd2hlbgorICogZGV0ZXJtaW5pbmcgdGhlIGRheSwgdGhlIGNhbGVuZGFyIHdpbGwgbG9vayBmb3Igb25lIG9mIHRoZSBmb2xsb3dpbmcKKyAqIGNvbWJpbmF0aW9ucyBvZiBmaWVsZHMuICBUaGUgbW9zdCByZWNlbnQgY29tYmluYXRpb24sIGFzIGRldGVybWluZWQgYnkgdGhlCisgKiBtb3N0IHJlY2VudGx5IHNldCBzaW5nbGUgZmllbGQsIHdpbGwgYmUgdXNlZC4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBNT05USCArIERBWV9PRl9NT05USAorICogTU9OVEggKyBXRUVLX09GX01PTlRIICsgREFZX09GX1dFRUsKKyAqIE1PTlRIICsgREFZX09GX1dFRUtfSU5fTU9OVEggKyBEQVlfT0ZfV0VFSworICogREFZX09GX1lFQVIKKyAqIERBWV9PRl9XRUVLICsgV0VFS19PRl9ZRUFSPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogRm9yIHRoZSB0aW1lIG9mIGRheToKKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBIT1VSX09GX0RBWQorICogQU1fUE0gKyBIT1VSPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogPHA+CisgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IGZvciBzb21lIG5vbi1HcmVnb3JpYW4gY2FsZW5kYXJzLCBkaWZmZXJlbnQKKyAqIGZpZWxkcyBtYXkgYmUgbmVjZXNzYXJ5IGZvciBjb21wbGV0ZSBkaXNhbWJpZ3VhdGlvbi4gRm9yIGV4YW1wbGUsIGEgZnVsbAorICogc3BlY2lmaWNhdGlvbiBvZiB0aGUgaGlzdG9yaWFsIEFyYWJpYyBhc3Ryb25vbWljYWwgY2FsZW5kYXIgcmVxdWlyZXMgeWVhciwKKyAqIG1vbnRoLCBkYXktb2YtbW9udGggPGVtPmFuZDwvZW0+IGRheS1vZi13ZWVrIGluIHNvbWUgY2FzZXMuCisgKgorICogPHA+CisgKiA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZXJlIGFyZSBjZXJ0YWluIHBvc3NpYmxlIGFtYmlndWl0aWVzIGluCisgKiBpbnRlcnByZXRhdGlvbiBvZiBjZXJ0YWluIHNpbmd1bGFyIHRpbWVzLCB3aGljaCBhcmUgcmVzb2x2ZWQgaW4gdGhlCisgKiBmb2xsb3dpbmcgd2F5czoKKyAqIDxvbD4KKyAqICAgICA8bGk+IDI0OjAwOjAwICJiZWxvbmdzIiB0byB0aGUgZm9sbG93aW5nIGRheS4gVGhhdCBpcywKKyAqICAgICAgICAgIDIzOjU5IG9uIERlYyAzMSwgMTk2OSAmbHQ7IDI0OjAwIG9uIEphbiAxLCAxOTcwICZsdDsgMjQ6MDE6MDAgb24gSmFuIDEsIDE5NzAKKyAqCisgKiAgICAgPGxpPiBBbHRob3VnaCBoaXN0b3JpY2FsbHkgbm90IHByZWNpc2UsIG1pZG5pZ2h0IGFsc28gYmVsb25ncyB0byAiYW0iLAorICogICAgICAgICAgYW5kIG5vb24gYmVsb25ncyB0byAicG0iLCBzbyBvbiB0aGUgc2FtZSBkYXksCisgKiAgICAgICAgICAxMjowMCBhbSAobWlkbmlnaHQpICZsdDsgMTI6MDEgYW0sIGFuZCAxMjowMCBwbSAobm9vbikgJmx0OyAxMjowMSBwbQorICogPC9vbD4KKyAqCisgKiA8cD4KKyAqIFRoZSBkYXRlIG9yIHRpbWUgZm9ybWF0IHN0cmluZ3MgYXJlIG5vdCBwYXJ0IG9mIHRoZSBkZWZpbml0aW9uIG9mIGEKKyAqIGNhbGVuZGFyLCBhcyB0aG9zZSBtdXN0IGJlIG1vZGlmaWFibGUgb3Igb3ZlcnJpZGFibGUgYnkgdGhlIHVzZXIgYXQKKyAqIHJ1bnRpbWUuIFVzZSB7QGxpbmsgRGF0ZUZvcm1hdH0KKyAqIHRvIGZvcm1hdCBkYXRlcy4KKyAqCisgKiA8cD48c3Ryb25nPkZpZWxkIG1hbmlwdWxhdGlvbiBtZXRob2RzPC9zdHJvbmc+PC9wPgorICoKKyAqIDxwPjxjb2RlPkNhbGVuZGFyPC9jb2RlPiBmaWVsZHMgY2FuIGJlIGNoYW5nZWQgdXNpbmcgdGhyZWUgbWV0aG9kczoKKyAqIDxjb2RlPnNldCgpPC9jb2RlPiwgPGNvZGU+YWRkKCk8L2NvZGU+LCBhbmQgPGNvZGU+cm9sbCgpPC9jb2RlPi48L3A+CisgKgorICogPHA+PHN0cm9uZz48Y29kZT5zZXQoZiwgdmFsdWUpPC9jb2RlPjwvc3Ryb25nPiBjaGFuZ2VzIGZpZWxkCisgKiA8Y29kZT5mPC9jb2RlPiB0byA8Y29kZT52YWx1ZTwvY29kZT4uICBJbiBhZGRpdGlvbiwgaXQgc2V0cyBhbgorICogaW50ZXJuYWwgbWVtYmVyIHZhcmlhYmxlIHRvIGluZGljYXRlIHRoYXQgZmllbGQgPGNvZGU+ZjwvY29kZT4gaGFzCisgKiBiZWVuIGNoYW5nZWQuIEFsdGhvdWdoIGZpZWxkIDxjb2RlPmY8L2NvZGU+IGlzIGNoYW5nZWQgaW1tZWRpYXRlbHksCisgKiB0aGUgY2FsZW5kYXIncyBtaWxsaXNlY29uZHMgaXMgbm90IHJlY29tcHV0ZWQgdW50aWwgdGhlIG5leHQgY2FsbCB0bworICogPGNvZGU+Z2V0KCk8L2NvZGU+LCA8Y29kZT5nZXRUaW1lKCk8L2NvZGU+LCBvcgorICogPGNvZGU+Z2V0VGltZUluTWlsbGlzKCk8L2NvZGU+IGlzIG1hZGUuIFRodXMsIG11bHRpcGxlIGNhbGxzIHRvCisgKiA8Y29kZT5zZXQoKTwvY29kZT4gZG8gbm90IHRyaWdnZXIgbXVsdGlwbGUsIHVubmVjZXNzYXJ5CisgKiBjb21wdXRhdGlvbnMuIEFzIGEgcmVzdWx0IG9mIGNoYW5naW5nIGEgZmllbGQgdXNpbmcKKyAqIDxjb2RlPnNldCgpPC9jb2RlPiwgb3RoZXIgZmllbGRzIG1heSBhbHNvIGNoYW5nZSwgZGVwZW5kaW5nIG9uIHRoZQorICogZmllbGQsIHRoZSBmaWVsZCB2YWx1ZSwgYW5kIHRoZSBjYWxlbmRhciBzeXN0ZW0uIEluIGFkZGl0aW9uLAorICogPGNvZGU+Z2V0KGYpPC9jb2RlPiB3aWxsIG5vdCBuZWNlc3NhcmlseSByZXR1cm4gPGNvZGU+dmFsdWU8L2NvZGU+CisgKiBhZnRlciB0aGUgZmllbGRzIGhhdmUgYmVlbiByZWNvbXB1dGVkLiBUaGUgc3BlY2lmaWNzIGFyZSBkZXRlcm1pbmVkIGJ5CisgKiB0aGUgY29uY3JldGUgY2FsZW5kYXIgY2xhc3MuPC9wPgorICoKKyAqIDxwPjxlbT5FeGFtcGxlPC9lbT46IENvbnNpZGVyIGEgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+CisgKiBvcmlnaW5hbGx5IHNldCB0byBBdWd1c3QgMzEsIDE5OTkuIENhbGxpbmcgPGNvZGU+c2V0KENhbGVuZGFyLk1PTlRILAorICogQ2FsZW5kYXIuU0VQVEVNQkVSKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8gU2VwdGVtYmVyIDMxLAorICogMTk5OS4gVGhpcyBpcyBhIHRlbXBvcmFyeSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiB0aGF0IHJlc29sdmVzIHRvCisgKiBPY3RvYmVyIDEsIDE5OTkgaWYgPGNvZGU+Z2V0VGltZSgpPC9jb2RlPmlzIHRoZW4gY2FsbGVkLiBIb3dldmVyLCBhCisgKiBjYWxsIHRvIDxjb2RlPnNldChDYWxlbmRhci5EQVlfT0ZfTU9OVEgsIDMwKTwvY29kZT4gYmVmb3JlIHRoZSBjYWxsIHRvCisgKiA8Y29kZT5nZXRUaW1lKCk8L2NvZGU+IHNldHMgdGhlIGNhbGVuZGFyIHRvIFNlcHRlbWJlciAzMCwgMTk5OSwgc2luY2UKKyAqIG5vIHJlY29tcHV0YXRpb24gb2NjdXJzIGFmdGVyIDxjb2RlPnNldCgpPC9jb2RlPiBpdHNlbGYuPC9wPgorICoKKyAqIDxwPjxzdHJvbmc+PGNvZGU+YWRkKGYsIGRlbHRhKTwvY29kZT48L3N0cm9uZz4gYWRkcyA8Y29kZT5kZWx0YTwvY29kZT4KKyAqIHRvIGZpZWxkIDxjb2RlPmY8L2NvZGU+LiAgVGhpcyBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgPGNvZGU+c2V0KGYsCisgKiBnZXQoZikgKyBkZWx0YSk8L2NvZGU+IHdpdGggdHdvIGFkanVzdG1lbnRzOjwvcD4KKyAqCisgKiA8YmxvY2txdW90ZT4KKyAqICAgPHA+PHN0cm9uZz5BZGQgcnVsZSAxPC9zdHJvbmc+LiBUaGUgdmFsdWUgb2YgZmllbGQgPGNvZGU+ZjwvY29kZT4KKyAqICAgYWZ0ZXIgdGhlIGNhbGwgbWludXMgdGhlIHZhbHVlIG9mIGZpZWxkIDxjb2RlPmY8L2NvZGU+IGJlZm9yZSB0aGUKKyAqICAgY2FsbCBpcyA8Y29kZT5kZWx0YTwvY29kZT4sIG1vZHVsbyBhbnkgb3ZlcmZsb3cgdGhhdCBoYXMgb2NjdXJyZWQgaW4KKyAqICAgZmllbGQgPGNvZGU+ZjwvY29kZT4uIE92ZXJmbG93IG9jY3VycyB3aGVuIGEgZmllbGQgdmFsdWUgZXhjZWVkcyBpdHMKKyAqICAgcmFuZ2UgYW5kLCBhcyBhIHJlc3VsdCwgdGhlIG5leHQgbGFyZ2VyIGZpZWxkIGlzIGluY3JlbWVudGVkIG9yCisgKiAgIGRlY3JlbWVudGVkIGFuZCB0aGUgZmllbGQgdmFsdWUgaXMgYWRqdXN0ZWQgYmFjayBpbnRvIGl0cyByYW5nZS48L3A+CisgKgorICogICA8cD48c3Ryb25nPkFkZCBydWxlIDI8L3N0cm9uZz4uIElmIGEgc21hbGxlciBmaWVsZCBpcyBleHBlY3RlZCB0byBiZQorICogICBpbnZhcmlhbnQsIGJ1dCAmbmJzcDsgaXQgaXMgaW1wb3NzaWJsZSBmb3IgaXQgdG8gYmUgZXF1YWwgdG8gaXRzCisgKiAgIHByaW9yIHZhbHVlIGJlY2F1c2Ugb2YgY2hhbmdlcyBpbiBpdHMgbWluaW11bSBvciBtYXhpbXVtIGFmdGVyIGZpZWxkCisgKiAgIDxjb2RlPmY8L2NvZGU+IGlzIGNoYW5nZWQsIHRoZW4gaXRzIHZhbHVlIGlzIGFkanVzdGVkIHRvIGJlIGFzIGNsb3NlCisgKiAgIGFzIHBvc3NpYmxlIHRvIGl0cyBleHBlY3RlZCB2YWx1ZS4gQSBzbWFsbGVyIGZpZWxkIHJlcHJlc2VudHMgYQorICogICBzbWFsbGVyIHVuaXQgb2YgdGltZS4gPGNvZGU+SE9VUjwvY29kZT4gaXMgYSBzbWFsbGVyIGZpZWxkIHRoYW4KKyAqICAgPGNvZGU+REFZX09GX01PTlRIPC9jb2RlPi4gTm8gYWRqdXN0bWVudCBpcyBtYWRlIHRvIHNtYWxsZXIgZmllbGRzCisgKiAgIHRoYXQgYXJlIG5vdCBleHBlY3RlZCB0byBiZSBpbnZhcmlhbnQuIFRoZSBjYWxlbmRhciBzeXN0ZW0KKyAqICAgZGV0ZXJtaW5lcyB3aGF0IGZpZWxkcyBhcmUgZXhwZWN0ZWQgdG8gYmUgaW52YXJpYW50LjwvcD4KKyAqIDwvYmxvY2txdW90ZT4KKyAqCisgKiA8cD5JbiBhZGRpdGlvbiwgdW5saWtlIDxjb2RlPnNldCgpPC9jb2RlPiwgPGNvZGU+YWRkKCk8L2NvZGU+IGZvcmNlcworICogYW4gaW1tZWRpYXRlIHJlY29tcHV0YXRpb24gb2YgdGhlIGNhbGVuZGFyJ3MgbWlsbGlzZWNvbmRzIGFuZCBhbGwKKyAqIGZpZWxkcy48L3A+CisgKgorICogPHA+PGVtPkV4YW1wbGU8L2VtPjogQ29uc2lkZXIgYSA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAqIG9yaWdpbmFsbHkgc2V0IHRvIEF1Z3VzdCAzMSwgMTk5OS4gQ2FsbGluZyA8Y29kZT5hZGQoQ2FsZW5kYXIuTU9OVEgsCisgKiAxMyk8L2NvZGU+IHNldHMgdGhlIGNhbGVuZGFyIHRvIFNlcHRlbWJlciAzMCwgMjAwMC4gPHN0cm9uZz5BZGQgcnVsZQorICogMTwvc3Ryb25nPiBzZXRzIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgdG8gU2VwdGVtYmVyLCBzaW5jZQorICogYWRkaW5nIDEzIG1vbnRocyB0byBBdWd1c3QgZ2l2ZXMgU2VwdGVtYmVyIG9mIHRoZSBuZXh0IHllYXIuIFNpbmNlCisgKiA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+IGNhbm5vdCBiZSAzMSBpbiBTZXB0ZW1iZXIgaW4gYQorICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+LCA8c3Ryb25nPmFkZCBydWxlIDI8L3N0cm9uZz4gc2V0cyB0aGUKKyAqIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gdG8gMzAsIHRoZSBjbG9zZXN0IHBvc3NpYmxlIHZhbHVlLiBBbHRob3VnaAorICogaXQgaXMgYSBzbWFsbGVyIGZpZWxkLCA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gaXMgbm90IGFkanVzdGVkIGJ5CisgKiBydWxlIDIsIHNpbmNlIGl0IGlzIGV4cGVjdGVkIHRvIGNoYW5nZSB3aGVuIHRoZSBtb250aCBjaGFuZ2VzIGluIGEKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPi48L3A+CisgKgorICogPHA+PHN0cm9uZz48Y29kZT5yb2xsKGYsIGRlbHRhKTwvY29kZT48L3N0cm9uZz4gYWRkcworICogPGNvZGU+ZGVsdGE8L2NvZGU+IHRvIGZpZWxkIDxjb2RlPmY8L2NvZGU+IHdpdGhvdXQgY2hhbmdpbmcgbGFyZ2VyCisgKiBmaWVsZHMuIFRoaXMgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIDxjb2RlPmFkZChmLCBkZWx0YSk8L2NvZGU+IHdpdGgKKyAqIHRoZSBmb2xsb3dpbmcgYWRqdXN0bWVudDo8L3A+CisgKgorICogPGJsb2NrcXVvdGU+CisgKiAgIDxwPjxzdHJvbmc+Um9sbCBydWxlPC9zdHJvbmc+LiBMYXJnZXIgZmllbGRzIGFyZSB1bmNoYW5nZWQgYWZ0ZXIgdGhlCisgKiAgIGNhbGwuIEEgbGFyZ2VyIGZpZWxkIHJlcHJlc2VudHMgYSBsYXJnZXIgdW5pdCBvZgorICogICB0aW1lLiA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+IGlzIGEgbGFyZ2VyIGZpZWxkIHRoYW4KKyAqICAgPGNvZGU+SE9VUjwvY29kZT4uPC9wPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIDxwPjxlbT5FeGFtcGxlPC9lbT46IENvbnNpZGVyIGEgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+CisgKiBvcmlnaW5hbGx5IHNldCB0byBBdWd1c3QgMzEsIDE5OTkuIENhbGxpbmcgPGNvZGU+cm9sbChDYWxlbmRhci5NT05USCwKKyAqIDgpPC9jb2RlPiBzZXRzIHRoZSBjYWxlbmRhciB0byBBcHJpbCAzMCwgPHN0cm9uZz4xOTk5PC9zdHJvbmc+LiAgQWRkCisgKiBydWxlIDEgc2V0cyB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIHRvIEFwcmlsLiBVc2luZyBhCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4sIHRoZSA8Y29kZT5EQVlfT0ZfTU9OVEg8L2NvZGU+IGNhbm5vdAorICogYmUgMzEgaW4gdGhlIG1vbnRoIEFwcmlsLiBBZGQgcnVsZSAyIHNldHMgaXQgdG8gdGhlIGNsb3Nlc3QgcG9zc2libGUKKyAqIHZhbHVlLCAzMC4gRmluYWxseSwgdGhlIDxzdHJvbmc+cm9sbCBydWxlPC9zdHJvbmc+IG1haW50YWlucyB0aGUKKyAqIDxjb2RlPllFQVI8L2NvZGU+IGZpZWxkIHZhbHVlIG9mIDE5OTkuPC9wPgorICoKKyAqIDxwPjxlbT5FeGFtcGxlPC9lbT46IENvbnNpZGVyIGEgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+CisgKiBvcmlnaW5hbGx5IHNldCB0byBTdW5kYXkgSnVuZSA2LCAxOTk5LiBDYWxsaW5nCisgKiA8Y29kZT5yb2xsKENhbGVuZGFyLldFRUtfT0ZfTU9OVEgsIC0xKTwvY29kZT4gc2V0cyB0aGUgY2FsZW5kYXIgdG8KKyAqIFR1ZXNkYXkgSnVuZSAxLCAxOTk5LCB3aGVyZWFzIGNhbGxpbmcKKyAqIDxjb2RlPmFkZChDYWxlbmRhci5XRUVLX09GX01PTlRILCAtMSk8L2NvZGU+IHNldHMgdGhlIGNhbGVuZGFyIHRvCisgKiBTdW5kYXkgTWF5IDMwLCAxOTk5LiBUaGlzIGlzIGJlY2F1c2UgdGhlIHJvbGwgcnVsZSBpbXBvc2VzIGFuCisgKiBhZGRpdGlvbmFsIGNvbnN0cmFpbnQ6IFRoZSA8Y29kZT5NT05USDwvY29kZT4gbXVzdCBub3QgY2hhbmdlIHdoZW4gdGhlCisgKiA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBpcyByb2xsZWQuIFRha2VuIHRvZ2V0aGVyIHdpdGggYWRkIHJ1bGUgMSwKKyAqIHRoZSByZXN1bHRhbnQgZGF0ZSBtdXN0IGJlIGJldHdlZW4gVHVlc2RheSBKdW5lIDEgYW5kIFNhdHVyZGF5IEp1bmUKKyAqIDUuIEFjY29yZGluZyB0byBhZGQgcnVsZSAyLCB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+LCBhbiBpbnZhcmlhbnQKKyAqIHdoZW4gY2hhbmdpbmcgdGhlIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+LCBpcyBzZXQgdG8gVHVlc2RheSwgdGhlCisgKiBjbG9zZXN0IHBvc3NpYmxlIHZhbHVlIHRvIFN1bmRheSAod2hlcmUgU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlCisgKiB3ZWVrKS48L3A+CisgKgorICogPHA+PHN0cm9uZz5Vc2FnZSBtb2RlbDwvc3Ryb25nPi4gVG8gbW90aXZhdGUgdGhlIGJlaGF2aW9yIG9mCisgKiA8Y29kZT5hZGQoKTwvY29kZT4gYW5kIDxjb2RlPnJvbGwoKTwvY29kZT4sIGNvbnNpZGVyIGEgdXNlciBpbnRlcmZhY2UKKyAqIGNvbXBvbmVudCB3aXRoIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgZm9yIHRoZSBtb250aCwgZGF5LCBhbmQKKyAqIHllYXIsIGFuZCBhbiB1bmRlcmx5aW5nIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPi4gSWYgdGhlCisgKiBpbnRlcmZhY2UgcmVhZHMgSmFudWFyeSAzMSwgMTk5OSBhbmQgdGhlIHVzZXIgcHJlc3NlcyB0aGUgbW9udGgKKyAqIGluY3JlbWVudCBidXR0b24sIHdoYXQgc2hvdWxkIGl0IHJlYWQ/IElmIHRoZSB1bmRlcmx5aW5nCisgKiBpbXBsZW1lbnRhdGlvbiB1c2VzIDxjb2RlPnNldCgpPC9jb2RlPiwgaXQgbWlnaHQgcmVhZCBNYXJjaCAzLCAxOTk5LiBBCisgKiBiZXR0ZXIgcmVzdWx0IHdvdWxkIGJlIEZlYnJ1YXJ5IDI4LCAxOTk5LiBGdXJ0aGVybW9yZSwgaWYgdGhlIHVzZXIKKyAqIHByZXNzZXMgdGhlIG1vbnRoIGluY3JlbWVudCBidXR0b24gYWdhaW4sIGl0IHNob3VsZCByZWFkIE1hcmNoIDMxLAorICogMTk5OSwgbm90IE1hcmNoIDI4LCAxOTk5LiBCeSBzYXZpbmcgdGhlIG9yaWdpbmFsIGRhdGUgYW5kIHVzaW5nIGVpdGhlcgorICogPGNvZGU+YWRkKCk8L2NvZGU+IG9yIDxjb2RlPnJvbGwoKTwvY29kZT4sIGRlcGVuZGluZyBvbiB3aGV0aGVyIGxhcmdlcgorICogZmllbGRzIHNob3VsZCBiZSBhZmZlY3RlZCwgdGhlIHVzZXIgaW50ZXJmYWNlIGNhbiBiZWhhdmUgYXMgbW9zdCB1c2VycworICogd2lsbCBpbnR1aXRpdmVseSBleHBlY3QuPC9wPgorICoKKyAqIDxwPjxiPk5vdGU6PC9iPiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2Uge0BsaW5rICNyb2xsIHJvbGx9IGFuZCB7QGxpbmsgI2FkZCBhZGR9IHJhdGhlcgorICogdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25zIGRpcmVjdGx5IG9uIHRoZSBmaWVsZHMKKyAqIG9mIGEgPHR0PkNhbGVuZGFyPC90dD4uICBJdCBpcyBxdWl0ZSBwb3NzaWJsZSBmb3IgPHR0PkNhbGVuZGFyPC90dD4gc3ViY2xhc3NlcworICogdG8gaGF2ZSBmaWVsZHMgd2l0aCBub24tbGluZWFyIGJlaGF2aW9yLCBmb3IgZXhhbXBsZSBtaXNzaW5nIG1vbnRocworICogb3IgZGF5cyBkdXJpbmcgbm9uLWxlYXAgeWVhcnMuICBUaGUgc3ViY2xhc3NlcycgPHR0PmFkZDwvdHQ+IGFuZCA8dHQ+cm9sbDwvdHQ+CisgKiBtZXRob2RzIHdpbGwgdGFrZSB0aGlzIGludG8gYWNjb3VudCwgd2hpbGUgc2ltcGxlIGFyaXRobWV0aWMgbWFuaXB1bGF0aW9ucworICogbWF5IGdpdmUgaW52YWxpZCByZXN1bHRzLgorICoKKyAqIDxwPjxiaWc+PGJpZz48Yj5DYWxlbmRhciBBcmNoaXRlY3R1cmUgaW4gSUNVNEo8L2I+PC9iaWc+PC9iaWc+PC9wPgorICoKKyAqIDxwPlJlY2VudGx5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gaGFzIGNoYW5nZWQKKyAqIHNpZ25pZmljYW50bHkgaW4gb3JkZXIgdG8gYmV0dGVyIHN1cHBvcnQgc3ViY2xhc3NpbmcuIFRoZSBvcmlnaW5hbAorICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGNsYXNzIHdhcyBkZXNpZ25lZCB0byBzdXBwb3J0IHN1YmNsYXNzaW5nLCBidXQKKyAqIGl0IGhhZCBvbmx5IG9uZSBpbXBsZW1lbnRlZCBzdWJjbGFzcywgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+LgorICogV2l0aCB0aGUgaW1wbGVtZW50YXRpb24gb2Ygc2V2ZXJhbCBuZXcgY2FsZW5kYXIgc3ViY2xhc3NlcywgaW5jbHVkaW5nCisgKiB0aGUgPGNvZGU+QnVkZGhpc3RDYWxlbmRhcjwvY29kZT4sIDxjb2RlPkNoaW5lc2VDYWxlbmRhcjwvY29kZT4sCisgKiA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4sIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4sIGFuZAorICogPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4sIHRoZSBzdWJjbGFzc2luZyBBUEkgaGFzIGJlZW4gcmV3b3JrZWQKKyAqIHRob3JvdWdobHkuIFRoaXMgc2VjdGlvbiBkZXRhaWxzIHRoZSBuZXcgc3ViY2xhc3NpbmcgQVBJIGFuZCBvdGhlcgorICogd2F5cyBpbiB3aGljaCA8Y29kZT5jb20uaWJtLmljdS51dGlsLkNhbGVuZGFyPC9jb2RlPiBkaWZmZXJzIGZyb20KKyAqIDxjb2RlPmphdmEudXRpbC5DYWxlbmRhcjwvY29kZT4uCisgKiA8L3A+CisgKgorICogPHA+PGJpZz48Yj5DaGFuZ2VzPC9iPjwvYmlnPjwvcD4KKyAqCisgKiA8cD5PdmVydmlldyBvZiBjaGFuZ2VzIGJldHdlZW4gdGhlIGNsYXNzaWMgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+CisgKiBhcmNoaXRlY3R1cmUgYW5kIHRoZSBuZXcgYXJjaGl0ZWN0dXJlLgorICoKKyAqIDx1bD4KKyAqCisgKiAgIDxsaT5UaGUgPGNvZGU+ZmllbGRzW108L2NvZGU+IGFycmF5IGlzIDxjb2RlPnByaXZhdGU8L2NvZGU+IG5vdworICogICAgIGluc3RlYWQgb2YgPGNvZGU+cHJvdGVjdGVkPC9jb2RlPi4gIFN1YmNsYXNzZXMgbXVzdCBhY2Nlc3MgaXQKKyAqICAgICB1c2luZyB0aGUgbWV0aG9kcyB7QGxpbmsgI2ludGVybmFsU2V0fSBhbmQKKyAqICAgICB7QGxpbmsgI2ludGVybmFsR2V0fS4gIDxiPk1vdGl2YXRpb246PC9iPiBTdWJjbGFzc2VzIHNob3VsZAorICogICAgIG5vdCBkaXJlY3RseSBhY2Nlc3MgZGF0YSBtZW1iZXJzLjwvbGk+CisgKgorICogICA8bGk+VGhlIDxjb2RlPnRpbWU8L2NvZGU+IGxvbmcgd29yZCBpcyA8Y29kZT5wcml2YXRlPC9jb2RlPiBub3cKKyAqICAgICBpbnN0ZWFkIG9mIDxjb2RlPnByb3RlY3RlZDwvY29kZT4uICBTdWJjbGFzc2VzIG1heSBhY2Nlc3MgaXQgdXNpbmcKKyAqICAgICB0aGUgbWV0aG9kIHtAbGluayAjaW50ZXJuYWxHZXRUaW1lSW5NaWxsaXN9LCB3aGljaCBkb2VzIG5vdAorICogICAgIHByb3Zva2UgYW4gdXBkYXRlLiA8Yj5Nb3RpdmF0aW9uOjwvYj4gU3ViY2xhc3NlcyBzaG91bGQgbm90CisgKiAgICAgZGlyZWN0bHkgYWNjZXNzIGRhdGEgbWVtYmVycy48L2xpPgorICoKKyAqICAgPGxpPlRoZSBzY29wZSBvZiByZXNwb25zaWJpbGl0eSBvZiBzdWJjbGFzc2VzIGhhcyBiZWVuIGRyYXN0aWNhbGx5CisgKiAgICAgcmVkdWNlZC4gQXMgbXVjaCBmdW5jdGlvbmFsaXR5IGFzIHBvc3NpYmxlIGlzIGltcGxlbWVudGVkIGluIHRoZQorICogICAgIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBiYXNlIGNsYXNzLiBBcyBhIHJlc3VsdCwgaXQgaXMgbXVjaCBlYXNpZXIKKyAqICAgICB0byBzdWJjbGFzcyA8Y29kZT5DYWxlbmRhcjwvY29kZT4uIDxiPk1vdGl2YXRpb246PC9iPiBTdWJjbGFzc2VzCisgKiAgICAgc2hvdWxkIG5vdCBoYXZlIHRvIHJlaW1wbGVtZW50IGNvbW1vbiBjb2RlLiBDZXJ0YWluIGJlaGF2aW9ycyBhcmUKKyAqICAgICBjb21tb24gYWNyb3NzIGNhbGVuZGFyIHN5c3RlbXM6IFRoZSBkZWZpbml0aW9uIGFuZCBiZWhhdmlvciBvZgorICogICAgIHdlZWstcmVsYXRlZCBmaWVsZHMgYW5kIHRpbWUgZmllbGRzLCB0aGUgYXJpdGhtZXRpYworICogICAgICh7QGxpbmsgI2FkZChpbnQsIGludCkgYWRkfSBhbmQge0BsaW5rICNyb2xsKGludCwgaW50KSByb2xsfSkgYmVoYXZpb3Igb2YgbWFueQorICogICAgIGZpZWxkcywgYW5kIHRoZSBmaWVsZCB2YWxpZGF0aW9uIHN5c3RlbS48L2xpPgorICoKKyAqICAgPGxpPlRoZSBzdWJjbGFzc2luZyBBUEkgaGFzIGJlZW4gY29tcGxldGVseSByZWRlc2lnbmVkLjwvbGk+CisgKgorICogICA8bGk+VGhlIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBiYXNlIGNsYXNzIGNvbnRhaW5zIHNvbWUgR3JlZ29yaWFuCisgKiAgICAgY2FsZW5kYXIgYWxnb3JpdGhtaWMgc3VwcG9ydCB0aGF0IHN1YmNsYXNzZXMgY2FuIHVzZSAoc3BlY2lmaWNhbGx5CisgKiAgICAgaW4ge0BsaW5rICNoYW5kbGVDb21wdXRlRmllbGRzfSkuICBTdWJjbGFzc2VzIGNhbiB1c2UgdGhlCisgKiAgICAgbWV0aG9kcyA8Y29kZT5nZXRHcmVnb3JpYW5YeHgoKTwvY29kZT4gdG8gb2J0YWluIHByZWNvbXB1dGVkCisgKiAgICAgdmFsdWVzLiA8Yj5Nb3RpdmF0aW9uOjwvYj4gVGhpcyBpcyByZXF1aXJlZCBieSBhbGwKKyAqICAgICA8Y29kZT5DYWxlbmRhcjwvY29kZT4gc3ViY2xhc3NlcyBpbiBvcmRlciB0byBpbXBsZW1lbnQgY29uc2lzdGVudAorICogICAgIHRpbWUgem9uZSBiZWhhdmlvciwgYW5kIEdyZWdvcmlhbi1kZXJpdmVkIHN5c3RlbXMgY2FuIHVzZSB0aGUKKyAqICAgICBhbHJlYWR5IGNvbXB1dGVkIGRhdGEuPC9saT4KKyAqCisgKiAgIDxsaT5UaGUgPGNvZGU+RklFTERfQ09VTlQ8L2NvZGU+IGNvbnN0YW50IGhhcyBiZWVuIHJlbW92ZWQuIFVzZQorICogICAgIHtAbGluayAjZ2V0RmllbGRDb3VudH0uICBJbiBhZGRpdGlvbiwgZnJhbWV3b3JrIEFQSSBoYXMgYmVlbgorICogICAgIGFkZGVkIHRvIGFsbG93IHN1YmNsYXNzZXMgdG8gZGVmaW5lIGFkZGl0aW9uYWwgZmllbGRzLgorICogICAgIDxiPk1vdGl2YXRpb246IDwvYj5UaGUgbnVtYmVyIG9mIGZpZWxkcyBpcyBub3QgY29uc3RhbnQgYWNyb3NzCisgKiAgICAgY2FsZW5kYXIgc3lzdGVtcy48L2xpPgorICoKKyAqICAgPGxpPlRoZSByYW5nZSBvZiBoYW5kbGVkIGRhdGVzIGhhcyBiZWVuIG5hcnJvd2VkIGZyb20gKy8tCisgKiAgICAgfjMwMCwwMDAsMDAwIHllYXJzIHRvICsvLSB+NSwwMDAsMDAwIHllYXJzLiBJbiBwcmFjdGljYWwgdGVybXMKKyAqICAgICB0aGlzIHNob3VsZCBub3QgYWZmZWN0IGNsaWVudHMuIEhvd2V2ZXIsIGl0IGRvZXMgbWVhbiB0aGF0IGNsaWVudAorICogICAgIGNvZGUgY2Fubm90IGJlIGd1YXJhbnRlZWQgd2VsbC1iZWhhdmVkIHJlc3VsdHMgd2l0aCBkYXRlcyBzdWNoIGFzCisgKiAgICAgPGNvZGU+RGF0ZShMb25nLk1JTl9WQUxVRSk8L2NvZGU+IG9yCisgKiAgICAgPGNvZGU+RGF0ZShMb25nLk1BWF9WQUxVRSk8L2NvZGU+LiBJbnN0ZWFkLCB0aGUKKyAqICAgICA8Y29kZT5DYWxlbmRhcjwvY29kZT4gY29uc3RhbnRzIHtAbGluayAjTUlOX0RBVEV9LAorICogICAgIHtAbGluayAjTUFYX0RBVEV9LCB7QGxpbmsgI01JTl9NSUxMSVN9LAorICogICAgIHtAbGluayAjTUFYX01JTExJU30sIHtAbGluayAjTUlOX0pVTElBTn0sIGFuZAorICogICAgIHtAbGluayAjTUFYX0pVTElBTn0gc2hvdWxkIGJlIHVzZWQuIDxiPk1vdGl2YXRpb246PC9iPiBXaXRoCisgKiAgICAgdGhlIGFkZGl0aW9uIG9mIHRoZSB7QGxpbmsgI0pVTElBTl9EQVl9IGZpZWxkLCBKdWxpYW4gZGF5CisgKiAgICAgbnVtYmVycyBtdXN0IGJlIHJlc3RyaWN0ZWQgdG8gYSAzMi1iaXQgPGNvZGU+aW50PC9jb2RlPi4gIFRoaXMKKyAqICAgICByZXN0cmljdHMgdGhlIG92ZXJhbGwgc3VwcG9ydGVkIHJhbmdlLiBGdXJ0aGVybW9yZSwgcmVzdHJpY3RpbmcKKyAqICAgICB0aGUgc3VwcG9ydGVkIHJhbmdlIHNpbXBsaWZpZXMgdGhlIGNvbXB1dGF0aW9ucyBieSByZW1vdmluZworICogICAgIHNwZWNpYWwgY2FzZSBjb2RlIHRoYXQgd2FzIHVzZWQgdG8gYWNjb21vZGF0ZSBhcml0aG1ldGljIG92ZXJmbG93CisgKiAgICAgYXQgbWlsbGlzIG5lYXIgPGNvZGU+TG9uZy5NSU5fVkFMVUU8L2NvZGU+IGFuZAorICogICAgIDxjb2RlPkxvbmcuTUFYX1ZBTFVFPC9jb2RlPi48L2xpPgorICoKKyAqICAgPGxpPk5ldyBmaWVsZHMgYXJlIGltcGxlbWVudGVkOiB7QGxpbmsgI0pVTElBTl9EQVl9IGRlZmluZXMKKyAqICAgICBzaW5nbGUtZmllbGQgc3BlY2lmaWNhdGlvbiBvZiB0aGUKKyAqICAgICBkYXRlLiB7QGxpbmsgI01JTExJU0VDT05EU19JTl9EQVl9IGRlZmluZXMgYSBzaW5nbGUtZmllbGQKKyAqICAgICBzcGVjaWZpY2F0aW9uIG9mIHRoZSB3YWxsIHRpbWUuIHtAbGluayAjRE9XX0xPQ0FMfSBhbmQKKyAqICAgICB7QGxpbmsgI1lFQVJfV09ZfSBpbXBsZW1lbnQgbG9jYWxpemVkIGRheS1vZi13ZWVrIGFuZAorICogICAgIHdlZWstb2YteWVhciBiZWhhdmlvci48L2xpPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgY2FuIGFjY2VzcyBtaWxsaXNlY29uZCBjb25zdGFudHMKKyAqICAgICB7QGxpbmsgI09ORV9TRUNPTkR9LCB7QGxpbmsgI09ORV9NSU5VVEV9LAorICogICAgIHtAbGluayAjT05FX0hPVVJ9LCB7QGxpbmsgI09ORV9EQVl9LCBhbmQKKyAqICAgICB7QGxpbmsgI09ORV9XRUVLfSBkZWZpbmVkIGluIDxjb2RlPkNhbGVuZGFyPC9jb2RlPi48L2xpPgorICoKKyAqICAgPGxpPk5ldyBBUEkgaGFzIGJlZW4gYWRkZWQgdG8gc3Vwb3J0IGNhbGVuZGFyLXNwZWNpZmljIHN1YmNsYXNzZXMKKyAqICAgICBvZiA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPi48L2xpPgorICoKKyAqICAgPGxpPlNldmVyYWwgc3ViY2xhc3NlcyBoYXZlIGJlZW4gaW1wbGVtZW50ZWQsIHJlcHJlc2VudGluZworICogICAgIHZhcmlvdXMgaW50ZXJuYXRpb25hbCBjYWxlbmRhciBzeXN0ZW1zLjwvbGk+CisgKgorICogPC91bD4KKyAqCisgKiA8cD48YmlnPjxiPlN1YmNsYXNzIEFQSTwvYj48L2JpZz48L3A+CisgKgorICogPHA+VGhlIG9yaWdpbmFsIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBBUEkgd2FzIGJhc2VkIG9uIHRoZSBleHBlcmllbmNlCisgKiBvZiBpbXBsZW1lbnRpbmcgYSBvbmx5IGEgc2luZ2xlIHN1YmNsYXNzLAorICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+LiBBcyBhIHJlc3VsdCwgYWxsIG9mIHRoZSBzdWJjbGFzc2luZworICoga2lua3MgaGFkIG5vdCBiZWVuIHdvcmtlZCBvdXQuIFRoZSBuZXcgc3ViY2xhc3NpbmcgQVBJIGhhcyBiZWVuCisgKiByZWZpbmVkIGJhc2VkIG9uIHNldmVyYWwgaW1wbGVtZW50ZWQgc3ViY2xhc3Nlcy4gVGhpcyBpbmNsdWRlcyBtZXRob2RzCisgKiB0aGF0IG11c3QgYmUgb3ZlcnJpZGRlbiBhbmQgbWV0aG9kcyBmb3Igc3ViY2xhc3NlcyB0byBjYWxsLiBTdWJjbGFzc2VzCisgKiBubyBsb25nZXIgaGF2ZSBkaXJlY3QgYWNjZXNzIHRvIDxjb2RlPmZpZWxkczwvY29kZT4gYW5kCisgKiA8Y29kZT5zdGFtcDwvY29kZT4uIEluc3RlYWQsIHRoZXkgaGF2ZSBuZXcgQVBJIHRvIGFjY2VzcworICogdGhlc2UuIFN1YmNsYXNzZXMgYXJlIGFibGUgdG8gYWxsb2NhdGUgdGhlIDxjb2RlPmZpZWxkczwvY29kZT4gYXJyYXkKKyAqIHRocm91Z2ggYSBwcm90ZWN0ZWQgZnJhbWV3b3JrIG1ldGhvZDsgdGhpcyBhbGxvd3Mgc3ViY2xhc3NlcyB0bworICogc3BlY2lmeSBhZGRpdGlvbmFsIGZpZWxkcy4gPC9wPgorICoKKyAqIDxwPk1vcmUgZnVuY3Rpb25hbGl0eSBoYXMgYmVlbiBtb3ZlZCBpbnRvIHRoZSBiYXNlIGNsYXNzLiBUaGUgYmFzZQorICogY2xhc3Mgbm93IGNvbnRhaW5zIG11Y2ggb2YgdGhlIGNvbXB1dGF0aW9uYWwgbWFjaGluZXJ5IHRvIHN1cHBvcnQgdGhlCisgKiBHcmVnb3JpYW4gY2FsZW5kYXIuIFRoaXMgaXMgYmFzZWQgb24gdHdvIHRoaW5nczogKDEpIE1hbnkgY2FsZW5kYXJzCisgKiBhcmUgYmFzZWQgb24gdGhlIEdyZWdvcmlhbiBjYWxlbmRhciAoc3VjaCBhcyB0aGUgQnVkZGhpc3QgYW5kIEphcGFuZXNlCisgKiBpbXBlcmlhbCBjYWxlbmRhcnMpLiAoMikgPGVtPkFsbDwvZW0+IGNhbGVuZGFycyByZXF1aXJlIGJhc2ljCisgKiBHcmVnb3JpYW4gc3VwcG9ydCBpbiBvcmRlciB0byBoYW5kbGUgdGltZXpvbmUgY29tcHV0YXRpb25zLiA8L3A+CisgKgorICogPHA+Q29tbW9uIGNvbXB1dGF0aW9ucyBoYXZlIGJlZW4gbW92ZWQgaW50bworICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LiBTdWJjbGFzc2VzIG5vIGxvbmdlciBjb21wdXRlIHRoZSB3ZWVrIHJlbGF0ZWQKKyAqIGZpZWxkcyBhbmQgdGhlIHRpbWUgcmVsYXRlZCBmaWVsZHMuIFRoZXNlIGFyZSBjb21tb25seSBoYW5kbGVkIGZvciBhbGwKKyAqIGNhbGVuZGFycyBieSB0aGUgYmFzZSBjbGFzcy4gPC9wPgorICoKKyAqIDxwPjxiPlN1YmNsYXNzIGNvbXB1dGF0aW9uIG9mIHRpbWUgPHR0Pj0mZ3Q7PC90dD4gZmllbGRzPC9iPgorICoKKyAqIDxwPlRoZSB7QGxpbmsgI0VSQX0sIHtAbGluayAjWUVBUn0sCisgKiB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9LCB7QGxpbmsgI01PTlRIfSwKKyAqIHtAbGluayAjREFZX09GX01PTlRIfSwgYW5kIHtAbGluayAjREFZX09GX1lFQVJ9IGZpZWxkcyBhcmUKKyAqIGNvbXB1dGVkIGJ5IHRoZSBzdWJjbGFzcywgYmFzZWQgb24gdGhlIEp1bGlhbiBkYXkuIEFsbCBvdGhlciBmaWVsZHMKKyAqIGFyZSBjb21wdXRlZCBieSA8Y29kZT5DYWxlbmRhcjwvY29kZT4uCisgKgorICogPHVsPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB7QGxpbmsgI2hhbmRsZUNvbXB1dGVGaWVsZHN9CisgKiAgICAgdG8gY29tcHV0ZSB0aGUge0BsaW5rICNFUkF9LCB7QGxpbmsgI1lFQVJ9LAorICogICAgIHtAbGluayAjRVhURU5ERURfWUVBUn0sIHtAbGluayAjTU9OVEh9LAorICogICAgIHtAbGluayAjREFZX09GX01PTlRIfSwgYW5kIHtAbGluayAjREFZX09GX1lFQVJ9IGZpZWxkcywKKyAqICAgICBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgdGhlIHtAbGluayAjSlVMSUFOX0RBWX0gZmllbGQuIElmIHRoZXJlCisgKiAgICAgYXJlIGNhbGVuZGFyLXNwZWNpZmljIGZpZWxkcyBub3QgZGVmaW5lZCBieSA8Y29kZT5DYWxlbmRhcjwvY29kZT4sCisgKiAgICAgdGhleSBtdXN0IGFsc28gYmUgY29tcHV0ZWQuIFRoZXNlIGFyZSB0aGUgb25seSBmaWVsZHMgdGhhdCB0aGUKKyAqICAgICBzdWJjbGFzcyBzaG91bGQgY29tcHV0ZS4gQWxsIG90aGVyIGZpZWxkcyBhcmUgY29tcHV0ZWQgYnkgdGhlIGJhc2UKKyAqICAgICBjbGFzcywgc28gdGltZSBhbmQgd2VlayBmaWVsZHMgYmVoYXZlIGluIGEgY29uc2lzdGVudCB3YXkgYWNyb3NzCisgKiAgICAgYWxsIGNhbGVuZGFycy4gVGhlIGRlZmF1bHQgdmVyc2lvbiBvZiB0aGlzIG1ldGhvZCBpbgorICogICAgIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpbXBsZW1lbnRzIGEgcHJvbGVwdGljIEdyZWdvcmlhbgorICogICAgIGNhbGVuZGFyLiBXaXRoaW4gdGhpcyBtZXRob2QsIHN1YmNsYXNzZXMgbWF5IGNhbGwKKyAqICAgICA8Y29kZT5nZXRHcmVnb3JpYW5YeHgoKTwvY29kZT4gdG8gb2J0YWluIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIKKyAqICAgICBtb250aCwgZGF5IG9mIG1vbnRoLCBhbmQgZXh0ZW5kZWQgeWVhciBmb3IgdGhlIGdpdmVuIGRhdGUuPC9saT4KKyAqCisgKiA8L3VsPgorICoKKyAqIDxwPjxiPlN1YmNsYXNzIGNvbXB1dGF0aW9uIG9mIGZpZWxkcyA8dHQ+PSZndDs8L3R0PiB0aW1lPC9iPgorICoKKyAqIDxwPlRoZSBpbnRlcnByZXRhdGlvbiBvZiBtb3N0IGZpZWxkIHZhbHVlcyBpcyBoYW5kbGVkIGVudGlyZWx5IGJ5CisgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4uIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBkZXRlcm1pbmVzIHdoaWNoIGZpZWxkcworICogYXJlIHNldCwgd2hpY2ggYXJlIG5vdCwgd2hpY2ggYXJlIHNldCBtb3JlIHJlY2VudGx5LCBhbmQgc28gb24uIEluCisgKiBhZGRpdGlvbiwgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGhhbmRsZXMgdGhlIGNvbXB1dGF0aW9uIG9mIHRoZSB0aW1lCisgKiBmcm9tIHRoZSB0aW1lIGZpZWxkcyBhbmQgaGFuZGxlcyB0aGUgd2Vlay1yZWxhdGVkIGZpZWxkcy4gVGhlIG9ubHkKKyAqIHRoaW5nIHRoZSBzdWJjbGFzcyBtdXN0IGRvIGlzIGRldGVybWluZSB0aGUgZXh0ZW5kZWQgeWVhciwgYmFzZWQgb24KKyAqIHRoZSB5ZWFyIGZpZWxkcywgYW5kIHRoZW4sIGdpdmVuIGFuIGV4dGVuZGVkIHllYXIgYW5kIGEgbW9udGgsIGl0IG11c3QKKyAqIHJldHVybiBhIEp1bGlhbiBkYXkgbnVtYmVyLgorICoKKyAqIDx1bD4KKyAqCisgKiAgIDxsaT5TdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQge0BsaW5rICNoYW5kbGVHZXRFeHRlbmRlZFllYXJ9CisgKiAgICAgdG8gcmV0dXJuIHRoZSBleHRlbmRlZCB5ZWFyIGZvciB0aGlzIGNhbGVuZGFyIHN5c3RlbSwgYmFzZWQgb24gdGhlCisgKiAgICAge0BsaW5rICNZRUFSfSwge0BsaW5rICNFWFRFTkRFRF9ZRUFSfSwgYW5kIGFueSBmaWVsZHMgdGhhdAorICogICAgIHRoZSBjYWxlbmRhciBzeXN0ZW0gdXNlcyB0aGF0IGFyZSBsYXJnZXIgdGhhbiBhIHllYXIsIHN1Y2ggYXMKKyAqICAgICB7QGxpbmsgI0VSQX0uPC9saT4KKyAqCisgKiAgIDxsaT5TdWJjbGFzc2VzIHNob3VsZCBpbXBsZW1lbnQge0BsaW5rICNoYW5kbGVDb21wdXRlTW9udGhTdGFydH0KKyAqICAgICB0byByZXR1cm4gdGhlIEp1bGlhbiBkYXkgbnVtYmVyCisgKiAgICAgYXNzb2NpYXRlZCB3aXRoIGEgbW9udGggYW5kIGV4dGVuZGVkIHllYXIuIFRoaXMgaXMgdGhlIEp1bGlhbiBkYXkKKyAqICAgICBudW1iZXIgb2YgdGhlIGRheSBiZWZvcmUgdGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGguIFRoZSBtb250aAorICogICAgIG51bWJlciBpcyB6ZXJvLWJhc2VkLiBUaGlzIGNvbXB1dGF0aW9uIHNob3VsZCBub3QgZGVwZW5kIG9uIGFueQorICogICAgIGZpZWxkIHZhbHVlcy48L2xpPgorICoKKyAqIDwvdWw+CisgKgorICogPHA+PGI+T3RoZXIgbWV0aG9kczwvYj4KKyAqCisgKiA8dWw+CisgKgorICogICA8bGk+U3ViY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHtAbGluayAjaGFuZGxlR2V0TW9udGhMZW5ndGh9CisgKiAgICAgdG8gcmV0dXJuIHRoZSBudW1iZXIgb2YgZGF5cyBpbiBhCisgKiAgICAgZ2l2ZW4gbW9udGggb2YgYSBnaXZlbiBleHRlbmRlZCB5ZWFyLiBUaGUgbW9udGggbnVtYmVyLCBhcyBhbHdheXMsCisgKiAgICAgaXMgemVyby1iYXNlZC48L2xpPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB7QGxpbmsgI2hhbmRsZUdldFllYXJMZW5ndGh9CisgKiAgICAgdG8gcmV0dXJuIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGUgZ2l2ZW4KKyAqICAgICBleHRlbmRlZCB5ZWFyLiBUaGlzIG1ldGhvZCBpcyB1c2VkIGJ5CisgKiAgICAgPHR0PmNvbXB1dGVXZWVrRmllbGRzPC90dD4gdG8gY29tcHV0ZSB0aGUKKyAqICAgICB7QGxpbmsgI1dFRUtfT0ZfWUVBUn0gYW5kIHtAbGluayAjWUVBUl9XT1l9IGZpZWxkcy48L2xpPgorICoKKyAqICAgPGxpPlN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB7QGxpbmsgI2hhbmRsZUdldExpbWl0fQorICogICAgIHRvIHJldHVybiB0aGUge0BsaW5rICNNSU5JTVVNfSwKKyAqICAgICB7QGxpbmsgI0dSRUFURVNUX01JTklNVU19LCB7QGxpbmsgI0xFQVNUX01BWElNVU19LCBvcgorICogICAgIHtAbGluayAjTUFYSU1VTX0gb2YgYSBmaWVsZCwgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZgorICogICAgIDxjb2RlPmxpbWl0VHlwZTwvY29kZT4uIFRoaXMgbWV0aG9kIG9ubHkgbmVlZHMgdG8gaGFuZGxlIHRoZQorICogICAgIGZpZWxkcyB7QGxpbmsgI0VSQX0sIHtAbGluayAjWUVBUn0sIHtAbGluayAjTU9OVEh9LAorICogICAgIHtAbGluayAjV0VFS19PRl9ZRUFSfSwge0BsaW5rICNXRUVLX09GX01PTlRIfSwKKyAqICAgICB7QGxpbmsgI0RBWV9PRl9NT05USH0sIHtAbGluayAjREFZX09GX1lFQVJ9LAorICogICAgIHtAbGluayAjREFZX09GX1dFRUtfSU5fTU9OVEh9LCB7QGxpbmsgI1lFQVJfV09ZfSwgYW5kCisgKiAgICAge0BsaW5rICNFWFRFTkRFRF9ZRUFSfS4gIE90aGVyIGZpZWxkcyBhcmUgaW52YXJpYW50ICh3aXRoCisgKiAgICAgcmVzcGVjdCB0byBjYWxlbmRhciBzeXN0ZW0pIGFuZCBhcmUgaGFuZGxlZCBieSB0aGUgYmFzZQorICogICAgIGNsYXNzLjwvbGk+CisgKgorICogICA8bGk+T3B0aW9uYWxseSwgc3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUge0BsaW5rICN2YWxpZGF0ZUZpZWxkfQorICogICAgIHRvIGNoZWNrIGFueSBzdWJjbGFzcy1zcGVjaWZpYyBmaWVsZHMuIElmIHRoZQorICogICAgIGZpZWxkJ3MgdmFsdWUgaXMgb3V0IG9mIHJhbmdlLCB0aGUgbWV0aG9kIHNob3VsZCB0aHJvdyBhbgorICogICAgIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4uIFRoZSBtZXRob2QgbWF5IGNhbGwKKyAqICAgICA8Y29kZT5zdXBlci52YWxpZGF0ZUZpZWxkKGZpZWxkKTwvY29kZT4gdG8gaGFuZGxlIGZpZWxkcyBpbiBhCisgKiAgICAgZ2VuZXJpYyB3YXksIHRoYXQgaXMsIHRvIGNvbXBhcmUgdGhlbSB0byB0aGUgcmFuZ2UKKyAqICAgICA8Y29kZT5nZXRNaW5pbXVtKGZpZWxkKTwvY29kZT4uLjxjb2RlPmdldE1heGltdW0oZmllbGQpPC9jb2RlPi48L2xpPgorICoKKyAqICAgPGxpPk9wdGlvbmFsbHksIHN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlCisgKiAgICAge0BsaW5rICNoYW5kbGVDcmVhdGVGaWVsZHN9IHRvIGNyZWF0ZSBhbiA8Y29kZT5pbnRbXTwvY29kZT4KKyAqICAgICBhcnJheSBsYXJnZSBlbm91Z2ggdG8gaG9sZCB0aGUgY2FsZW5kYXIncyBmaWVsZHMuIFRoaXMgaXMgb25seQorICogICAgIG5lY2Vzc2FyeSBpZiB0aGUgY2FsZW5kYXIgZGVmaW5lcyBhZGRpdGlvbmFsIGZpZWxkcyBiZXlvbmQgdGhvc2UKKyAqICAgICBkZWZpbmVkIGJ5IDxjb2RlPkNhbGVuZGFyPC9jb2RlPi4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IG11c3QgYmUKKyAqICAgICBhdCBsZWFzdCB7QGxpbmsgI0JBU0VfRklFTERfQ09VTlR9IGFuZCBubyBtb3JlIHRoYW4KKyAqICAgICB7QGxpbmsgI01BWF9GSUVMRF9DT1VOVH0uPC9saT4KKyAqCisgKiAgIDxsaT5PcHRpb25hbGx5LCBzdWJjbGFzc2VzIG1heSBvdmVycmlkZQorICogICAgIHtAbGluayAjaGFuZGxlR2V0RGF0ZUZvcm1hdH0gdG8gY3JlYXRlIGEKKyAqICAgICA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiBhcHByb3ByaWF0ZSB0byB0aGlzIGNhbGVuZGFyLiBUaGlzIGlzIG9ubHkKKyAqICAgICByZXF1aXJlZCBpZiBhIGNhbGVuZGFyIHN1YmNsYXNzIHJlZGVmaW5lcyB0aGUgdXNlIG9mIGEgZmllbGQgKGZvcgorICogICAgIGV4YW1wbGUsIGNoYW5nZXMgdGhlIHtAbGluayAjRVJBfSBmaWVsZCBmcm9tIGEgc3ltYm9saWMgZmllbGQKKyAqICAgICB0byBhIG51bWVyaWMgb25lKSBvciBkZWZpbmVzIGFuIGFkZGl0aW9uYWwgZmllbGQuPC9saT4KKyAqCisgKiAgIDxsaT5PcHRpb25hbGx5LCBzdWJjbGFzc2VzIG1heSBvdmVycmlkZSB7QGxpbmsgI3JvbGwgcm9sbH0gYW5kCisgKiAgICAge0BsaW5rICNhZGQgYWRkfSB0byBoYW5kbGUgZmllbGRzIHRoYXQgYXJlIGRpc2NvbnRpbnVvdXMuIEZvcgorICogICAgIGV4YW1wbGUsIGluIHRoZSBIZWJyZXcgY2FsZW5kYXIgdGhlIG1vbnRoICZxdW90O0FkYXIgSSZxdW90OyBvbmx5CisgKiAgICAgb2NjdXJzIGluIGxlYXAgeWVhcnM7IGluIG90aGVyIHllYXJzIHRoZSBjYWxlbmRhciBqdW1wcyBmcm9tCisgKiAgICAgU2hldmF0IChtb250aCAjNCkgdG8gQWRhciAobW9udGggIzYpLiBUaGUge0BsaW5rCisgKiAgICAgSGVicmV3Q2FsZW5kYXIjYWRkIEhlYnJld0NhbGVuZGFyLmFkZH0gYW5kIHtAbGluaworICogICAgIEhlYnJld0NhbGVuZGFyI3JvbGwgSGVicmV3Q2FsZW5kYXIucm9sbH0gbWV0aG9kcyB0YWtlIHRoaXMgaW50bworICogICAgIGFjY291bnQsIHNvIHRoYXQgYWRkaW5nIDEgbW9udGggdG8gU2hldmF0IGdpdmVzIHRoZSBwcm9wZXIgcmVzdWx0CisgKiAgICAgKEFkYXIpIGluIGEgbm9uLWxlYXAgeWVhci4gVGhlIHByb3RlY3RlZCB1dGlsaXR5IG1ldGhvZCB7QGxpbmsKKyAqICAgICAjcGluRmllbGQgcGluRmllbGR9IGlzIG9mdGVuIHVzZWZ1bCB3aGVuIGltcGxlbWVudGluZyB0aGVzZSB0d28KKyAqICAgICBtZXRob2RzLiA8L2xpPgorICoKKyAqIDwvdWw+CisgKgorICogPHA+PGJpZz48Yj5Ob3JtYWxpemVkIGJlaGF2aW9yPC9iPjwvYmlnPgorICoKKyAqIDxwPlRoZSBiZWhhdmlvciBvZiBjZXJ0YWluIGZpZWxkcyBoYXMgYmVlbiBtYWRlIGNvbnNpc3RlbnQgYWNyb3NzIGFsbAorICogY2FsZW5kYXIgc3lzdGVtcyBhbmQgaW1wbGVtZW50ZWQgaW4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+LgorICoKKyAqIDx1bD4KKyAqCisgKiAgIDxsaT5UaW1lIGlzIG5vcm1hbGl6ZWQuIEV2ZW4gdGhvdWdoIHNvbWUgY2FsZW5kYXIgc3lzdGVtcyB0cmFuc2l0aW9uCisgKiAgICAgYmV0d2VlbiBkYXlzIGF0IHN1bnNldCBvciBhdCBvdGhlciB0aW1lcywgYWxsIElDVTRKIGNhbGVuZGFycworICogICAgIHRyYW5zaXRpb24gYmV0d2VlbiBkYXlzIGF0IDxlbT5sb2NhbCB6b25lIG1pZG5pZ2h0PC9lbT4uICBUaGlzCisgKiAgICAgYWxsb3dzIElDVTRKIHRvIGNlbnRyYWxpemUgdGhlIHRpbWUgY29tcHV0YXRpb25zIGluCisgKiAgICAgPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGFuZCB0byBtYWludGFpbiBiYXNpYyBjb3JyZXBzb25kZW5jZXMKKyAqICAgICBiZXR3ZWVuIGNhbGVuZGFyIHN5c3RlbXMuIEFmZmVjdGVkIGZpZWxkczoge0BsaW5rICNBTV9QTX0sCisgKiAgICAge0BsaW5rICNIT1VSfSwge0BsaW5rICNIT1VSX09GX0RBWX0sIHtAbGluayAjTUlOVVRFfSwKKyAqICAgICB7QGxpbmsgI1NFQ09ORH0sIHtAbGluayAjTUlMTElTRUNPTkR9LAorICogICAgIHtAbGluayAjWk9ORV9PRkZTRVR9LCBhbmQge0BsaW5rICNEU1RfT0ZGU0VUfS48L2xpPgorICoKKyAqICAgPGxpPkRTVCBiZWhhdmlvciBpcyBub3JtYWxpemVkLiBEYXlsaWdodCBzYXZpbmdzIHRpbWUgYmVoYXZpb3IgaXMKKyAqICAgICBjb21wdXRlZCB0aGUgc2FtZSBmb3IgYWxsIGNhbGVuZGFyIHN5c3RlbXMsIGFuZCBkZXBlbmRzIG9uIHRoZQorICogICAgIHZhbHVlIG9mIHNldmVyYWwgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IGZpZWxkczogdGhlCisgKiAgICAge0BsaW5rICNZRUFSfSwge0BsaW5rICNNT05USH0sIGFuZAorICogICAgIHtAbGluayAjREFZX09GX01PTlRIfS4gQXMgYSByZXN1bHQsIDxjb2RlPkNhbGVuZGFyPC9jb2RlPgorICogICAgIGFsd2F5cyBjb21wdXRlcyB0aGVzZSBmaWVsZHMsIGV2ZW4gZm9yIG5vbi1HcmVnb3JpYW4gY2FsZW5kYXIKKyAqICAgICBzeXN0ZW1zLiBUaGVzZSBmaWVsZHMgYXJlIGF2YWlsYWJsZSB0byBzdWJjbGFzc2VzLjwvbGk+CisgKgorICogICA8bGk+V2Vla3MgYXJlIG5vcm1hbGl6ZWQuIEFsdGhvdWdoIGxvY2FsZXMgZGVmaW5lIHRoZSB3ZWVrCisgKiAgICAgZGlmZmVyZW50bHksIGluIHRlcm1zIG9mIHRoZSBkYXkgb24gd2hpY2ggaXQgc3RhcnRzLCBhbmQgdGhlCisgKiAgICAgZGVzaWduYXRpb24gb2Ygd2VlayBudW1iZXIgb25lIG9mIGEgbW9udGggb3IgeWVhciwgdGhleSBhbGwgdXNlIGEKKyAqICAgICBjb21tb24gbWVjaGFuaXNtLiBGdXJ0aGVybW9yZSwgdGhlIGRheSBvZiB0aGUgd2VlayBoYXMgYSBzaW1wbGUKKyAqICAgICBhbmQgY29uc2lzdGVudCBkZWZpbml0aW9uIHRocm91Z2hvdXQgaGlzdG9yeS4gRm9yIGV4YW1wbGUsCisgKiAgICAgYWx0aG91Z2ggdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBpbnRyb2R1Y2VkIGEgZGlzY29udGludWl0eSB3aGVuCisgKiAgICAgZmlyc3QgaW5zdGl0dXRlZCwgdGhlIGRheSBvZiB3ZWVrIHdhcyBub3QgZGlzcnVwdGVkLiBGb3IgdGhpcworICogICAgIHJlYXNvbiwgdGhlIGZpZWxkcyB7QGxpbmsgI0RBWV9PRl9XRUVLfSwgPGNvZGU+V0VFS19PRl9ZRUFSLAorICogICAgIFdFRUtfT0ZfTU9OVEg8L2NvZGU+LCB7QGxpbmsgI0RBWV9PRl9XRUVLX0lOX01PTlRIfSwKKyAqICAgICB7QGxpbmsgI0RPV19MT0NBTH0sIHtAbGluayAjWUVBUl9XT1l9IGFyZSBhbGwgY29tcHV0ZWQgaW4KKyAqICAgICBhIGNvbnNpc3RlbnQgd2F5IGluIHRoZSBiYXNlIGNsYXNzLCBiYXNlZCBvbiB0aGUKKyAqICAgICB7QGxpbmsgI0VYVEVOREVEX1lFQVJ9LCB7QGxpbmsgI0RBWV9PRl9ZRUFSfSwKKyAqICAgICB7QGxpbmsgI01PTlRIfSwgYW5kIHtAbGluayAjREFZX09GX01PTlRIfSwgd2hpY2ggYXJlCisgKiAgICAgY29tcHV0ZWQgYnkgdGhlIHN1YmNsYXNzLjwvbGk+CisgKgorICogPC91bD4KKyAqCisgKiA8cD48YmlnPjxiPlN1cHBvcnRlZCByYW5nZTwvYj48L2JpZz4KKyAqCisgKiA8cD5UaGUgYWxsb3dhYmxlIHJhbmdlIG9mIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBoYXMgYmVlbgorICogbmFycm93ZWQuIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiB1c2VkIHRvIGF0dGVtcHQgdG8gc3VwcG9ydAorICogdGhlIHJhbmdlIG9mIGRhdGVzIHdpdGggbWlsbGlzZWNvbmQgdmFsdWVzIGZyb20KKyAqIDxjb2RlPkxvbmcuTUlOX1ZBTFVFPC9jb2RlPiB0byA8Y29kZT5Mb25nLk1BWF9WQUxVRTwvY29kZT4uIFRoaXMKKyAqIGludHJvZHVjZWQgYXdrd2FyZCBjb25zdHJ1Y3Rpb25zIChoYWNrcykgd2hpY2ggc2xvd2VkIGRvd24KKyAqIHBlcmZvcm1hbmNlLiBJdCBhbHNvIGludHJvZHVjZWQgbm9uLXVuaWZvcm0gYmVoYXZpb3IgYXQgdGhlCisgKiBib3VuZGFyaWVzLiBUaGUgbmV3IDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBwcm90b2NvbCBzcGVjaWZpZXMgdGhlCisgKiBtYXhpbXVtIHJhbmdlIG9mIHN1cHBvcnRhYmxlIGRhdGVzIGFzIHRob3NlIGhhdmluZyBKdWxpYW4gZGF5IG51bWJlcnMKKyAqIG9mIDxjb2RlPi0weDdGMDAwMDAwPC9jb2RlPiB0byA8Y29kZT4rMHg3RjAwMDAwMDwvY29kZT4uIFRoaXMKKyAqIGNvcnJlc3BvbmRzIHRvIHllYXJzIGZyb20gfjUsMDAwLDAwMCBCQ0UgdG8gfjUsMDAwLDAwMCBDRS4gUHJvZ3JhbW1lcnMKKyAqIHNob3VsZCB1c2UgdGhlIGNvbnN0YW50cyB7QGxpbmsgI01JTl9EQVRFfSAob3IKKyAqIHtAbGluayAjTUlOX01JTExJU30gb3Ige0BsaW5rICNNSU5fSlVMSUFOfSkgYW5kCisgKiB7QGxpbmsgI01BWF9EQVRFfSAob3Ige0BsaW5rICNNQVhfTUlMTElTfSBvcgorICoge0BsaW5rICNNQVhfSlVMSUFOfSkgaW4gPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IHRvIHNwZWNpZnkgYW4KKyAqIGV4dHJlbWVseSBlYXJseSBvciBleHRyZW1lbHkgbGF0ZSBkYXRlLjwvcD4KKyAqCisgKiA8cD48YmlnPjxiPkdlbmVyYWwgbm90ZXM8L2I+PC9iaWc+CisgKgorICogPHVsPgorICoKKyAqICAgPGxpPkNhbGVuZGFycyBpbXBsZW1lbnRhdGlvbnMgYXJlIDxlbT5wcm9sZXB0aWM8L2VtPi4gRm9yIGV4YW1wbGUsCisgKiAgICAgZXZlbiB0aG91Z2ggdGhlIEdyZWdvcmlhbiBjYWxlbmRhciB3YXMgbm90IGluc3RpdHV0ZWQgdW50aWwgdGhlCisgKiAgICAgMTZ0aCBjZW50dXJ5LCB0aGUgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IGNsYXNzIHN1cHBvcnRzCisgKiAgICAgZGF0ZXMgYmVmb3JlIHRoZSBoaXN0b3JpY2FsIG9uc2V0IG9mIHRoZSBjYWxlbmRhciBieSBleHRlbmRpbmcgdGhlCisgKiAgICAgY2FsZW5kYXIgc3lzdGVtIGJhY2t3YXJkIGluIHRpbWUuIFNpbWlsYXJseSwgdGhlCisgKiAgICAgPGNvZGU+SGVicmV3Q2FsZW5kYXI8L2NvZGU+IGV4dGVuZHMgYmFja3dhcmQgYmVmb3JlIHRoZSBzdGFydCBvZgorICogICAgIGl0cyBlcG9jaCBpbnRvIHplcm8gYW5kIG5lZ2F0aXZlIHllYXJzLiBTdWJjbGFzc2VzIGRvIG5vdCB0aHJvdworICogICAgIGV4Y2VwdGlvbnMgYmVjYXVzZSBhIGRhdGUgcHJlY2VkZXMgdGhlIGhpc3RvcmljYWwgc3RhcnQgb2YgYQorICogICAgIGNhbGVuZGFyIHN5c3RlbS4gSW5zdGVhZCwgdGhleSBpbXBsZW1lbnQKKyAqICAgICB7QGxpbmsgI2hhbmRsZUdldExpbWl0fSB0byByZXR1cm4gYXBwcm9wcmlhdGUgbGltaXRzIG9uCisgKiAgICAge0BsaW5rICNZRUFSfSwge0BsaW5rICNFUkF9LCBldGMuIGZpZWxkcy4gVGhlbiwgaWYgdGhlCisgKiAgICAgY2FsZW5kYXIgaXMgc2V0IHRvIG5vdCBiZSBsZW5pZW50LCBvdXQtb2YtcmFuZ2UgZmllbGQgdmFsdWVzIHdpbGwKKyAqICAgICB0cmlnZ2VyIGFuIGV4Y2VwdGlvbi48L2xpPgorICoKKyAqICAgPGxpPkNhbGVuZGFyIHN5c3RlbSBzdWJjbGFzc2VzIGNvbXB1dGUgYSA8ZW0+ZXh0ZW5kZWQKKyAqICAgICB5ZWFyPC9lbT4uIFRoaXMgZGlmZmVycyBmcm9tIHRoZSB7QGxpbmsgI1lFQVJ9IGZpZWxkIGluIHRoYXQKKyAqICAgICBpdCByYW5nZXMgb3ZlciBhbGwgaW50ZWdlciB2YWx1ZXMsIGluY2x1ZGluZyB6ZXJvIGFuZCBuZWdhdGl2ZQorICogICAgIHZhbHVlcywgYW5kIGl0IGVuY2Fwc3VsYXRlcyB0aGUgaW5mb3JtYXRpb24gb2YgdGhlCisgKiAgICAge0BsaW5rICNZRUFSfSBmaWVsZCBhbmQgYWxsIGxhcmdlciBmaWVsZHMuICBUaHVzLCBmb3IgdGhlCisgKiAgICAgR3JlZ29yaWFuIGNhbGVuZGFyLCB0aGUge0BsaW5rICNFWFRFTkRFRF9ZRUFSfSBpcyBjb21wdXRlZCBhcworICogICAgIDxjb2RlPkVSQT09QUQgPyBZRUFSIDogMS1ZRUFSPC9jb2RlPi4gQW5vdGhlciBleGFtcGxlIGlzIHRoZSBNYXlhbgorICogICAgIGxvbmcgY291bnQsIHdoaWNoIGhhcyB5ZWFycyAoPGNvZGU+S1VOPC9jb2RlPikgYW5kIG5lc3RlZCBjeWNsZXMKKyAqICAgICBvZiB5ZWFycyAoPGNvZGU+S0FUVU48L2NvZGU+IGFuZCA8Y29kZT5CQUtUVU48L2NvZGU+KS4gVGhlIE1heWFuCisgKiAgICAge0BsaW5rICNFWFRFTkRFRF9ZRUFSfSBpcyBjb21wdXRlZCBhcyA8Y29kZT5UVU4gKyAyMCAqIChLQVRVTgorICogICAgICsgMjAgKiBCQUtUVU4pPC9jb2RlPi4gVGhlIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBiYXNlIGNsYXNzIHVzZXMKKyAqICAgICB0aGUge0BsaW5rICNFWFRFTkRFRF9ZRUFSfSBmaWVsZCB0byBjb21wdXRlIHRoZSB3ZWVrLXJlbGF0ZWQKKyAqICAgICBmaWVsZHMuPC9saT4KKyAqCisgKiA8L3VsPgorICoKKyAqIEBzZWUgICAgICAgICAgRGF0ZQorICogQHNlZSAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSAgICAgICAgICBUaW1lWm9uZQorICogQHNlZSAgICAgICAgICBEYXRlRm9ybWF0CisgKiBAYXV0aG9yIE1hcmsgRGF2aXMsIERhdmlkIEdvbGRzbWl0aCwgQ2hlbi1MaWVoIEh1YW5nLCBBbGFuIExpdSwgTGF1cmEgV2VybmVyCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIENhbGVuZGFyIGltcGxlbWVudHMgU2VyaWFsaXphYmxlLCBDbG9uZWFibGUsIENvbXBhcmFibGUgeworCisgICAgLy8gRGF0YSBmbG93IGluIENhbGVuZGFyCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBUaGUgY3VycmVudCB0aW1lIGlzIHJlcHJlc2VudGVkIGluIHR3byB3YXlzIGJ5IENhbGVuZGFyOiBhcyBVVEMKKyAgICAvLyBtaWxsaXNlY29uZHMgZnJvbSB0aGUgZXBvY2ggc3RhcnQgKDEgSmFudWFyeSAxOTcwIDA6MDAgVVRDKSwgYW5kIGFzIGxvY2FsCisgICAgLy8gZmllbGRzIHN1Y2ggYXMgTU9OVEgsIEhPVVIsIEFNX1BNLCBldGMuICBJdCBpcyBwb3NzaWJsZSB0byBjb21wdXRlIHRoZQorICAgIC8vIG1pbGxpcyBmcm9tIHRoZSBmaWVsZHMsIGFuZCB2aWNlIHZlcnNhLiAgVGhlIGRhdGEgbmVlZGVkIHRvIGRvIHRoaXMKKyAgICAvLyBjb252ZXJzaW9uIGlzIGVuY2Fwc3VsYXRlZCBieSBhIFRpbWVab25lIG9iamVjdCBvd25lZCBieSB0aGUgQ2FsZW5kYXIuCisgICAgLy8gVGhlIGRhdGEgcHJvdmlkZWQgYnkgdGhlIFRpbWVab25lIG9iamVjdCBtYXkgYWxzbyBiZSBvdmVycmlkZGVuIGlmIHRoZQorICAgIC8vIHVzZXIgc2V0cyB0aGUgWk9ORV9PRkZTRVQgYW5kL29yIERTVF9PRkZTRVQgZmllbGRzIGRpcmVjdGx5LiBUaGUgY2xhc3MKKyAgICAvLyBrZWVwcyB0cmFjayBvZiB3aGF0IGluZm9ybWF0aW9uIHdhcyBtb3N0IHJlY2VudGx5IHNldCBieSB0aGUgY2FsbGVyLCBhbmQKKyAgICAvLyB1c2VzIHRoYXQgdG8gY29tcHV0ZSBhbnkgb3RoZXIgaW5mb3JtYXRpb24gYXMgbmVlZGVkLgorCisgICAgLy8gSWYgdGhlIHVzZXIgc2V0cyB0aGUgZmllbGRzIHVzaW5nIHNldCgpLCB0aGUgZGF0YSBmbG93IGlzIGFzIGZvbGxvd3MuCisgICAgLy8gVGhpcyBpcyBpbXBsZW1lbnRlZCBieSB0aGUgQ2FsZW5kYXIgc3ViY2xhc3MncyBjb21wdXRlVGltZSgpIG1ldGhvZC4KKyAgICAvLyBEdXJpbmcgdGhpcyBwcm9jZXNzLCBjZXJ0YWluIGZpZWxkcyBtYXkgYmUgaWdub3JlZC4gIFRoZSBkaXNhbWJpZ3VhdGlvbgorICAgIC8vIGFsZ29yaXRobSBmb3IgcmVzb2x2aW5nIHdoaWNoIGZpZWxkcyB0byBwYXkgYXR0ZW50aW9uIHRvIGlzIGRlc2NyaWJlZAorICAgIC8vIGFib3ZlLgorCisgICAgLy8gICBsb2NhbCBmaWVsZHMgKFlFQVIsIE1PTlRILCBEQVRFLCBIT1VSLCBNSU5VVEUsIGV0Yy4pCisgICAgLy8gICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgfCBVc2luZyBDYWxlbmRhci1zcGVjaWZpYyBhbGdvcml0aG0KKyAgICAvLyAgICAgICAgICAgVgorICAgIC8vICAgbG9jYWwgc3RhbmRhcmQgbWlsbGlzCisgICAgLy8gICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgfCBVc2luZyBUaW1lWm9uZSBvciB1c2VyLXNldCBaT05FX09GRlNFVCAvIERTVF9PRkZTRVQKKyAgICAvLyAgICAgICAgICAgVgorICAgIC8vICAgVVRDIG1pbGxpcyAoaW4gdGltZSBkYXRhIG1lbWJlcikKKworICAgIC8vIElmIHRoZSB1c2VyIHNldHMgdGhlIFVUQyBtaWxsaXMgdXNpbmcgc2V0VGltZSgpLCB0aGUgZGF0YSBmbG93IGlzIGFzCisgICAgLy8gZm9sbG93cy4gIFRoaXMgaXMgaW1wbGVtZW50ZWQgYnkgdGhlIENhbGVuZGFyIHN1YmNsYXNzJ3MgY29tcHV0ZUZpZWxkcygpCisgICAgLy8gbWV0aG9kLgorCisgICAgLy8gICBVVEMgbWlsbGlzIChpbiB0aW1lIGRhdGEgbWVtYmVyKQorICAgIC8vICAgICAgICAgICB8CisgICAgLy8gICAgICAgICAgIHwgVXNpbmcgVGltZVpvbmUgZ2V0T2Zmc2V0KCkKKyAgICAvLyAgICAgICAgICAgVgorICAgIC8vICAgbG9jYWwgc3RhbmRhcmQgbWlsbGlzCisgICAgLy8gICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgfCBVc2luZyBDYWxlbmRhci1zcGVjaWZpYyBhbGdvcml0aG0KKyAgICAvLyAgICAgICAgICAgVgorICAgIC8vICAgbG9jYWwgZmllbGRzIChZRUFSLCBNT05USCwgREFURSwgSE9VUiwgTUlOVVRFLCBldGMuKQorCisgICAgLy8gSW4gZ2VuZXJhbCwgYSByb3VuZCB0cmlwIGZyb20gZmllbGRzLCB0aHJvdWdoIGxvY2FsIGFuZCBVVEMgbWlsbGlzLCBhbmQKKyAgICAvLyBiYWNrIG91dCB0byBmaWVsZHMgaXMgbWFkZSB3aGVuIG5lY2Vzc2FyeS4gIFRoaXMgaXMgaW1wbGVtZW50ZWQgYnkgdGhlCisgICAgLy8gY29tcGxldGUoKSBtZXRob2QuICBSZXNvbHZpbmcgYSBwYXJ0aWFsIHNldCBvZiBmaWVsZHMgaW50byBhIFVUQyBtaWxsaXMKKyAgICAvLyB2YWx1ZSBhbGxvd3MgYWxsIHJlbWFpbmluZyBmaWVsZHMgdG8gYmUgZ2VuZXJhdGVkIGZyb20gdGhhdCB2YWx1ZS4gIElmCisgICAgLy8gdGhlIENhbGVuZGFyIGlzIGxlbmllbnQsIHRoZSBmaWVsZHMgYXJlIGFsc28gcmVub3JtYWxpemVkIHRvIHN0YW5kYXJkCisgICAgLy8gcmFuZ2VzIHdoZW4gdGhleSBhcmUgcmVnZW5lcmF0ZWQuCisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBlcmEsIGUuZy4sIEFEIG9yIEJDIGluIHRoZSBKdWxpYW4gY2FsZW5kYXIuIFRoaXMgaXMgYSBjYWxlbmRhci1zcGVjaWZpYworICAgICAqIHZhbHVlOyBzZWUgc3ViY2xhc3MgZG9jdW1lbnRhdGlvbi4KKyAgICAgKiBAc2VlIEdyZWdvcmlhbkNhbGVuZGFyI0FECisgICAgICogQHNlZSBHcmVnb3JpYW5DYWxlbmRhciNCQworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEVSQSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiB5ZWFyLiBUaGlzIGlzIGEgY2FsZW5kYXItc3BlY2lmaWMgdmFsdWU7IHNlZSBzdWJjbGFzcyBkb2N1bWVudGF0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFlFQVIgPSAxOworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogbW9udGguIFRoaXMgaXMgYSBjYWxlbmRhci1zcGVjaWZpYyB2YWx1ZS4gVGhlIGZpcnN0IG1vbnRoIG9mIHRoZSB5ZWFyIGlzCisgICAgICogPGNvZGU+SkFOVUFSWTwvY29kZT47IHRoZSBsYXN0IGRlcGVuZHMgb24gdGhlIG51bWJlciBvZiBtb250aHMgaW4gYSB5ZWFyLgorICAgICAqIEBzZWUgI0pBTlVBUlkKKyAgICAgKiBAc2VlICNGRUJSVUFSWQorICAgICAqIEBzZWUgI01BUkNICisgICAgICogQHNlZSAjQVBSSUwKKyAgICAgKiBAc2VlICNNQVkKKyAgICAgKiBAc2VlICNKVU5FCisgICAgICogQHNlZSAjSlVMWQorICAgICAqIEBzZWUgI0FVR1VTVAorICAgICAqIEBzZWUgI1NFUFRFTUJFUgorICAgICAqIEBzZWUgI09DVE9CRVIKKyAgICAgKiBAc2VlICNOT1ZFTUJFUgorICAgICAqIEBzZWUgI0RFQ0VNQkVSCisgICAgICogQHNlZSAjVU5ERUNJTUJFUgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1PTlRIID0gMjsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIHdlZWsgbnVtYmVyIHdpdGhpbiB0aGUgY3VycmVudCB5ZWFyLiAgVGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIsIGFzCisgICAgICogZGVmaW5lZCBieSA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+LCBoYXMgdmFsdWUgMS4gIFN1YmNsYXNzZXMgZGVmaW5lCisgICAgICogdGhlIHZhbHVlIG9mIDxjb2RlPldFRUtfT0ZfWUVBUjwvY29kZT4gZm9yIGRheXMgYmVmb3JlIHRoZSBmaXJzdCB3ZWVrIG9mCisgICAgICogdGhlIHllYXIuCisgICAgICogQHNlZSAjZ2V0Rmlyc3REYXlPZldlZWsKKyAgICAgKiBAc2VlICNnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgV0VFS19PRl9ZRUFSID0gMzsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIHdlZWsgbnVtYmVyIHdpdGhpbiB0aGUgY3VycmVudCBtb250aC4gIFRoZSBmaXJzdCB3ZWVrIG9mIHRoZSBtb250aCwgYXMKKyAgICAgKiBkZWZpbmVkIGJ5IDxjb2RlPmdldEZpcnN0RGF5T2ZXZWVrKCk8L2NvZGU+IGFuZAorICAgICAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4sIGhhcyB2YWx1ZSAxLiAgU3ViY2xhc3NlcyBkZWZpbmUKKyAgICAgKiB0aGUgdmFsdWUgb2YgPGNvZGU+V0VFS19PRl9NT05USDwvY29kZT4gZm9yIGRheXMgYmVmb3JlIHRoZSBmaXJzdCB3ZWVrIG9mCisgICAgICogdGhlIG1vbnRoLgorICAgICAqIEBzZWUgI2dldEZpcnN0RGF5T2ZXZWVrCisgICAgICogQHNlZSAjZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFdFRUtfT0ZfTU9OVEggPSA0OworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogZGF5IG9mIHRoZSBtb250aC4gVGhpcyBpcyBhIHN5bm9ueW0gZm9yIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4uCisgICAgICogVGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGggaGFzIHZhbHVlIDEuCisgICAgICogQHNlZSAjREFZX09GX01PTlRICisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFURSA9IDU7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBkYXkgb2YgdGhlIG1vbnRoLiBUaGlzIGlzIGEgc3lub255bSBmb3IgPGNvZGU+REFURTwvY29kZT4uCisgICAgICogVGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGggaGFzIHZhbHVlIDEuCisgICAgICogQHNlZSAjREFURQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9NT05USCA9IDU7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUgZGF5CisgICAgICogbnVtYmVyIHdpdGhpbiB0aGUgY3VycmVudCB5ZWFyLiAgVGhlIGZpcnN0IGRheSBvZiB0aGUgeWVhciBoYXMgdmFsdWUgMS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBEQVlfT0ZfWUVBUiA9IDY7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUgZGF5CisgICAgICogb2YgdGhlIHdlZWsuICBUaGlzIGZpZWxkIHRha2VzIHZhbHVlcyA8Y29kZT5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPk1PTkRBWTwvY29kZT4sIDxjb2RlPlRVRVNEQVk8L2NvZGU+LCA8Y29kZT5XRURORVNEQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPlRIVVJTREFZPC9jb2RlPiwgPGNvZGU+RlJJREFZPC9jb2RlPiwgYW5kIDxjb2RlPlNBVFVSREFZPC9jb2RlPi4KKyAgICAgKiBAc2VlICNTVU5EQVkKKyAgICAgKiBAc2VlICNNT05EQVkKKyAgICAgKiBAc2VlICNUVUVTREFZCisgICAgICogQHNlZSAjV0VETkVTREFZCisgICAgICogQHNlZSAjVEhVUlNEQVkKKyAgICAgKiBAc2VlICNGUklEQVkKKyAgICAgKiBAc2VlICNTQVRVUkRBWQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERBWV9PRl9XRUVLID0gNzsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIG9yZGluYWwgbnVtYmVyIG9mIHRoZSBkYXkgb2YgdGhlIHdlZWsgd2l0aGluIHRoZSBjdXJyZW50IG1vbnRoLiBUb2dldGhlcgorICAgICAqIHdpdGggdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCwgdGhpcyB1bmlxdWVseSBzcGVjaWZpZXMgYSBkYXkKKyAgICAgKiB3aXRoaW4gYSBtb250aC4gIFVubGlrZSA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5XRUVLX09GX1lFQVI8L2NvZGU+LCB0aGlzIGZpZWxkJ3MgdmFsdWUgZG9lcyA8ZW0+bm90PC9lbT4gZGVwZW5kIG9uCisgICAgICogPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gb3IKKyAgICAgKiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+LiAgPGNvZGU+REFZX09GX01PTlRIIDE8L2NvZGU+CisgICAgICogdGhyb3VnaCA8Y29kZT43PC9jb2RlPiBhbHdheXMgY29ycmVzcG9uZCB0byA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USAorICAgICAqIDE8L2NvZGU+OyA8Y29kZT44PC9jb2RlPiB0aHJvdWdoIDxjb2RlPjE1PC9jb2RlPiBjb3JyZXNwb25kIHRvCisgICAgICogPGNvZGU+REFZX09GX1dFRUtfSU5fTU9OVEggMjwvY29kZT4sIGFuZCBzbyBvbi4KKyAgICAgKiA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCAwPC9jb2RlPiBpbmRpY2F0ZXMgdGhlIHdlZWsgYmVmb3JlCisgICAgICogPGNvZGU+REFZX09GX1dFRUtfSU5fTU9OVEggMTwvY29kZT4uICBOZWdhdGl2ZSB2YWx1ZXMgY291bnQgYmFjayBmcm9tIHRoZQorICAgICAqIGVuZCBvZiB0aGUgbW9udGgsIHNvIHRoZSBsYXN0IFN1bmRheSBvZiBhIG1vbnRoIGlzIHNwZWNpZmllZCBhcworICAgICAqIDxjb2RlPkRBWV9PRl9XRUVLID0gU1VOREFZLCBEQVlfT0ZfV0VFS19JTl9NT05USCA9IC0xPC9jb2RlPi4gIEJlY2F1c2UKKyAgICAgKiBuZWdhdGl2ZSB2YWx1ZXMgY291bnQgYmFja3dhcmQgdGhleSB3aWxsIHVzdWFsbHkgYmUgYWxpZ25lZCBkaWZmZXJlbnRseQorICAgICAqIHdpdGhpbiB0aGUgbW9udGggdGhhbiBwb3NpdGl2ZSB2YWx1ZXMuICBGb3IgZXhhbXBsZSwgaWYgYSBtb250aCBoYXMgMzEKKyAgICAgKiBkYXlzLCA8Y29kZT5EQVlfT0ZfV0VFS19JTl9NT05USCAtMTwvY29kZT4gd2lsbCBvdmVybGFwCisgICAgICogPGNvZGU+REFZX09GX1dFRUtfSU5fTU9OVEggNTwvY29kZT4gYW5kIHRoZSBlbmQgb2YgPGNvZGU+NDwvY29kZT4uCisgICAgICogQHNlZSAjREFZX09GX1dFRUsKKyAgICAgKiBAc2VlICNXRUVLX09GX01PTlRICisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREFZX09GX1dFRUtfSU5fTU9OVEggPSA4OworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcKKyAgICAgKiB3aGV0aGVyIHRoZSA8Y29kZT5IT1VSPC9jb2RlPiBpcyBiZWZvcmUgb3IgYWZ0ZXIgbm9vbi4KKyAgICAgKiBFLmcuLCBhdCAxMDowNDoxNS4yNTAgUE0gdGhlIDxjb2RlPkFNX1BNPC9jb2RlPiBpcyA8Y29kZT5QTTwvY29kZT4uCisgICAgICogQHNlZSAjQU0KKyAgICAgKiBAc2VlICNQTQorICAgICAqIEBzZWUgI0hPVVIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBBTV9QTSA9IDk7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBob3VyIG9mIHRoZSBtb3JuaW5nIG9yIGFmdGVybm9vbi4gPGNvZGU+SE9VUjwvY29kZT4gaXMgdXNlZCBmb3IgdGhlIDEyLWhvdXIKKyAgICAgKiBjbG9jay4KKyAgICAgKiBFLmcuLCBhdCAxMDowNDoxNS4yNTAgUE0gdGhlIDxjb2RlPkhPVVI8L2NvZGU+IGlzIDEwLgorICAgICAqIEBzZWUgI0FNX1BNCisgICAgICogQHNlZSAjSE9VUl9PRl9EQVkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBIT1VSID0gMTA7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBob3VyIG9mIHRoZSBkYXkuIDxjb2RlPkhPVVJfT0ZfREFZPC9jb2RlPiBpcyB1c2VkIGZvciB0aGUgMjQtaG91ciBjbG9jay4KKyAgICAgKiBFLmcuLCBhdCAxMDowNDoxNS4yNTAgUE0gdGhlIDxjb2RlPkhPVVJfT0ZfREFZPC9jb2RlPiBpcyAyMi4KKyAgICAgKiBAc2VlICNIT1VSCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSE9VUl9PRl9EQVkgPSAxMTsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0PC9jb2RlPiBhbmQgPGNvZGU+c2V0PC9jb2RlPiBpbmRpY2F0aW5nIHRoZQorICAgICAqIG1pbnV0ZSB3aXRoaW4gdGhlIGhvdXIuCisgICAgICogRS5nLiwgYXQgMTA6MDQ6MTUuMjUwIFBNIHRoZSA8Y29kZT5NSU5VVEU8L2NvZGU+IGlzIDQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgTUlOVVRFID0gMTI7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiBzZWNvbmQgd2l0aGluIHRoZSBtaW51dGUuCisgICAgICogRS5nLiwgYXQgMTA6MDQ6MTUuMjUwIFBNIHRoZSA8Y29kZT5TRUNPTkQ8L2NvZGU+IGlzIDE1LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFNFQ09ORCA9IDEzOworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogbWlsbGlzZWNvbmQgd2l0aGluIHRoZSBzZWNvbmQuCisgICAgICogRS5nLiwgYXQgMTA6MDQ6MTUuMjUwIFBNIHRoZSA8Y29kZT5NSUxMSVNFQ09ORDwvY29kZT4gaXMgMjUwLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IE1JTExJU0VDT05EID0gMTQ7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldDwvY29kZT4gYW5kIDxjb2RlPnNldDwvY29kZT4gaW5kaWNhdGluZyB0aGUKKyAgICAgKiByYXcgb2Zmc2V0IGZyb20gR01UIGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBaT05FX09GRlNFVCA9IDE1OworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQ8L2NvZGU+IGFuZCA8Y29kZT5zZXQ8L2NvZGU+IGluZGljYXRpbmcgdGhlCisgICAgICogZGF5bGlnaHQgc2F2aW5ncyBvZmZzZXQgaW4gbWlsbGlzZWNvbmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IERTVF9PRkZTRVQgPSAxNjsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0KCk8L2NvZGU+IGFuZCA8Y29kZT5zZXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBleHRlbmRlZCB5ZWFyIGNvcnJlc3BvbmRpbmcgdG8gdGhlCisgICAgICogPGNvZGU+V0VFS19PRl9ZRUFSPC9jb2RlPiBmaWVsZC4gIFRoaXMgbWF5IGJlIG9uZSBncmVhdGVyIG9yIGxlc3MKKyAgICAgKiB0aGFuIHRoZSB2YWx1ZSBvZiA8Y29kZT5FWFRFTkRFRF9ZRUFSPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZRUFSX1dPWSA9IDE3OworCisgICAgLyoqCisgICAgICogRmllbGQgbnVtYmVyIGZvciA8Y29kZT5nZXQoKTwvY29kZT4gYW5kIDxjb2RlPnNldCgpPC9jb2RlPgorICAgICAqIGluZGljYXRpbmcgdGhlIGxvY2FsaXplZCBkYXkgb2Ygd2Vlay4gIFRoaXMgd2lsbCBiZSBhIHZhbHVlIGZyb20gMQorICAgICAqIHRvIDcgaW5jbHVzaXZlLCB3aXRoIDEgYmVpbmcgdGhlIGxvY2FsaXplZCBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRE9XX0xPQ0FMID0gMTg7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldCgpPC9jb2RlPiBhbmQgPGNvZGU+c2V0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgZXh0ZW5kZWQgeWVhci4gIFRoaXMgaXMgYSBzaW5nbGUgbnVtYmVyIGRlc2lnbmF0aW5nCisgICAgICogdGhlIHllYXIgb2YgdGhpcyBjYWxlbmRhciBzeXN0ZW0sIGVuY29tcGFzc2luZyBhbGwgc3VwcmEteWVhcgorICAgICAqIGZpZWxkcy4gIEZvciBleGFtcGxlLCBmb3IgdGhlIEp1bGlhbiBjYWxlbmRhciBzeXN0ZW0sIHllYXIgbnVtYmVycworICAgICAqIGFyZSBwb3NpdGl2ZSwgd2l0aCBhbiBlcmEgb2YgQkNFIG9yIENFLiAgQW4gZXh0ZW5kZWQgeWVhciB2YWx1ZSBmb3IKKyAgICAgKiB0aGUgSnVsaWFuIGNhbGVuZGFyIHN5c3RlbSBhc3NpZ25zIHBvc2l0aXZlIHZhbHVlcyB0byBDRSB5ZWFycyBhbmQKKyAgICAgKiBuZWdhdGl2ZSB2YWx1ZXMgdG8gQkNFIHllYXJzLCB3aXRoIDEgQkNFIGJlaW5nIHllYXIgMC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFWFRFTkRFRF9ZRUFSID0gMTk7CisKKyAgICAvKioKKyAgICAgKiBGaWVsZCBudW1iZXIgZm9yIDxjb2RlPmdldCgpPC9jb2RlPiBhbmQgPGNvZGU+c2V0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgbW9kaWZpZWQgSnVsaWFuIGRheSBudW1iZXIuICBUaGlzIGlzIGRpZmZlcmVudCBmcm9tCisgICAgICogdGhlIGNvbnZlbnRpb25hbCBKdWxpYW4gZGF5IG51bWJlciBpbiB0d28gcmVnYXJkcy4gIEZpcnN0LCBpdAorICAgICAqIGRlbWFyY2F0ZXMgZGF5cyBhdCBsb2NhbCB6b25lIG1pZG5pZ2h0LCByYXRoZXIgdGhhbiBub29uIEdNVC4KKyAgICAgKiBTZWNvbmQsIGl0IGlzIGEgbG9jYWwgbnVtYmVyOyB0aGF0IGlzLCBpdCBkZXBlbmRzIG9uIHRoZSBsb2NhbCB0aW1lCisgICAgICogem9uZS4gIEl0IGNhbiBiZSB0aG91Z2h0IG9mIGFzIGEgc2luZ2xlIG51bWJlciB0aGF0IGVuY29tcGFzc2VzIGFsbAorICAgICAqIHRoZSBkYXRlLXJlbGF0ZWQgZmllbGRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpVTElBTl9EQVkgPSAyMDsKKworICAgIC8qKgorICAgICAqIEZpZWxkIG51bWJlciBmb3IgPGNvZGU+Z2V0KCk8L2NvZGU+IGFuZCA8Y29kZT5zZXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBtaWxsaXNlY29uZHMgaW4gdGhlIGRheS4gIFRoaXMgcmFuZ2VzIGZyb20gMCB0bworICAgICAqIDIzOjU5OjU5Ljk5OSAocmVnYXJkbGVzcyBvZiBEU1QpLiAgVGhpcyBmaWVsZCBiZWhhdmVzCisgICAgICogPGVtPmV4YWN0bHk8L2VtPiBsaWtlIGEgY29tcG9zaXRlIG9mIGFsbCB0aW1lLXJlbGF0ZWQgZmllbGRzLCBub3QKKyAgICAgKiBpbmNsdWRpbmcgdGhlIHpvbmUgZmllbGRzLiAgQXMgc3VjaCwgaXQgYWxzbyByZWZsZWN0cworICAgICAqIGRpc2NvbnRpbnVpdGllcyBvZiB0aG9zZSBmaWVsZHMgb24gRFNUIHRyYW5zaXRpb24gZGF5cy4gIE9uIGEgZGF5IG9mCisgICAgICogRFNUIG9uc2V0LCBpdCB3aWxsIGp1bXAgZm9yd2FyZC4gIE9uIGEgZGF5IG9mIERTVCBjZXNzYXRpb24sIGl0IHdpbGwKKyAgICAgKiBqdW1wIGJhY2t3YXJkLiAgVGhpcyByZWZsZWN0cyB0aGUgZmFjdCB0aGF0IGlzIG11c3QgYmUgY29tYmluZWQgd2l0aAorICAgICAqIHRoZSBEU1RfT0ZGU0VUIGZpZWxkIHRvIG9idGFpbiBhIHVuaXF1ZSBsb2NhbCB0aW1lIHZhbHVlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1JTExJU0VDT05EU19JTl9EQVkgPSAyMTsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgZmllbGRzIGRlZmluZWQgYnkgdGhpcyBjbGFzcy4gIFN1YmNsYXNzZXMgbWF5IGRlZmluZQorICAgICAqIGFkZGl0aW9uIGZpZWxkcyBzdGFydGluZyB3aXRoIHRoaXMgbnVtYmVyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEJBU0VfRklFTERfQ09VTlQgPSAyMjsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBmaWVsZHMgcG9zc2libGUuICBTdWJjbGFzc2VzIG11c3Qgbm90IGRlZmluZQorICAgICAqIG1vcmUgdG90YWwgZmllbGRzIHRoYW4gdGhpcyBudW1iZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0ZJRUxEX0NPVU5UID0gMzI7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBTdW5kYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU1VOREFZID0gMTsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIE1vbmRheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNT05EQVkgPSAyOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogVHVlc2RheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBUVUVTREFZID0gMzsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5EQVlfT0ZfV0VFSzwvY29kZT4gZmllbGQgaW5kaWNhdGluZworICAgICAqIFdlZG5lc2RheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBXRURORVNEQVkgPSA0OworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogVGh1cnNkYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgVEhVUlNEQVkgPSA1OworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkRBWV9PRl9XRUVLPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogRnJpZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZSSURBWSA9IDY7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+REFZX09GX1dFRUs8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiBTYXR1cmRheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBTQVRVUkRBWSA9IDc7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogZmlyc3QgbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSkFOVUFSWSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogc2Vjb25kIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEZFQlJVQVJZID0gMTsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiB0aGlyZCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNQVJDSCA9IDI7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogZm91cnRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEFQUklMID0gMzsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBmaWZ0aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBNQVkgPSA0OworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHNpeHRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEpVTkUgPSA1OworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHNldmVudGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgSlVMWSA9IDY7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogZWlnaHRoIG1vbnRoIG9mIHRoZSB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IEFVR1VTVCA9IDc7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcgdGhlCisgICAgICogbmludGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgU0VQVEVNQkVSID0gODsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiB0ZW50aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBPQ1RPQkVSID0gOTsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBlbGV2ZW50aCBtb250aCBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBOT1ZFTUJFUiA9IDEwOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPk1PTlRIPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHR3ZWxmdGggbW9udGggb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgREVDRU1CRVIgPSAxMTsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5NT05USDwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiB0aGlydGVlbnRoIG1vbnRoIG9mIHRoZSB5ZWFyLiBBbHRob3VnaCA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4KKyAgICAgKiBkb2VzIG5vdCB1c2UgdGhpcyB2YWx1ZSwgbHVuYXIgY2FsZW5kYXJzIGRvLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgaW50IFVOREVDSU1CRVIgPSAxMjsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5BTV9QTTwvY29kZT4gZmllbGQgaW5kaWNhdGluZyB0aGUKKyAgICAgKiBwZXJpb2Qgb2YgdGhlIGRheSBmcm9tIG1pZG5pZ2h0IHRvIGp1c3QgYmVmb3JlIG5vb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBpbnQgQU0gPSAwOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIDxjb2RlPkFNX1BNPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nIHRoZQorICAgICAqIHBlcmlvZCBvZiB0aGUgZGF5IGZyb20gbm9vbiB0byBqdXN0IGJlZm9yZSBtaWRuaWdodC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGludCBQTSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBnZXREYXlPZldlZWtUeXBlKGludCBkYXlPZldlZWspIHRvIGluZGljYXRlIGEKKyAgICAgKiB3ZWVrZGF5LgorICAgICAqIEBzZWUgI1dFRUtFTkQKKyAgICAgKiBAc2VlICNXRUVLRU5EX09OU0VUCisgICAgICogQHNlZSAjV0VFS0VORF9DRUFTRQorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXRUVLREFZID0gMDsKKworICAgIC8qKgorICAgICAqIFZhbHVlIHJldHVybmVkIGJ5IGdldERheU9mV2Vla1R5cGUoaW50IGRheU9mV2VlaykgdG8gaW5kaWNhdGUgYQorICAgICAqIHdlZWtlbmQgZGF5LgorICAgICAqIEBzZWUgI1dFRUtEQVkKKyAgICAgKiBAc2VlICNXRUVLRU5EX09OU0VUCisgICAgICogQHNlZSAjV0VFS0VORF9DRUFTRQorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXRUVLRU5EID0gMTsKKworICAgIC8qKgorICAgICAqIFZhbHVlIHJldHVybmVkIGJ5IGdldERheU9mV2Vla1R5cGUoaW50IGRheU9mV2VlaykgdG8gaW5kaWNhdGUgYQorICAgICAqIGRheSB0aGF0IHN0YXJ0cyBhcyBhIHdlZWtkYXkgYW5kIHRyYW5zaXRpb25zIHRvIHRoZSB3ZWVrZW5kLgorICAgICAqIENhbGwgZ2V0V2Vla2VuZFRyYW5zaXRpb24oKSB0byBnZXQgdGhlIHBvaW50IG9mIHRyYW5zaXRpb24uCisgICAgICogQHNlZSAjV0VFS0RBWQorICAgICAqIEBzZWUgI1dFRUtFTkQKKyAgICAgKiBAc2VlICNXRUVLRU5EX0NFQVNFCisgICAgICogQHNlZSAjZ2V0RGF5T2ZXZWVrVHlwZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFdFRUtFTkRfT05TRVQgPSAyOworCisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgZ2V0RGF5T2ZXZWVrVHlwZShpbnQgZGF5T2ZXZWVrKSB0byBpbmRpY2F0ZSBhCisgICAgICogZGF5IHRoYXQgc3RhcnRzIGFzIHRoZSB3ZWVrZW5kIGFuZCB0cmFuc2l0aW9ucyB0byBhIHdlZWtkYXkuCisgICAgICogQ2FsbCBnZXRXZWVrZW5kVHJhbnNpdGlvbigpIHRvIGdldCB0aGUgcG9pbnQgb2YgdHJhbnNpdGlvbi4KKyAgICAgKiBAc2VlICNXRUVLREFZCisgICAgICogQHNlZSAjV0VFS0VORAorICAgICAqIEBzZWUgI1dFRUtFTkRfT05TRVQKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0VFS0VORF9DRUFTRSA9IDM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBvbmUgc2Vjb25kLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50ICBPTkVfU0VDT05EID0gMTAwMDsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGluIG9uZSBtaW51dGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgIE9ORV9NSU5VVEUgPSA2MCpPTkVfU0VDT05EOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIGhvdXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgIE9ORV9IT1VSICAgPSA2MCpPTkVfTUlOVVRFOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIGRheS4gIEFsdGhvdWdoIE9ORV9EQVkgYW5kCisgICAgICogT05FX1dFRUsgY2FuIGZpdCBpbnRvIGludHMsIHRoZXkgbXVzdCBiZSBsb25ncyBpbiBvcmRlciB0byBwcmV2ZW50CisgICAgICogYXJpdGhtZXRpYyBvdmVyZmxvdyB3aGVuIHBlcmZvcm1pbmcgKGJ1ZyA0MTczNTE2KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcgT05FX0RBWSAgICA9IDI0Kk9ORV9IT1VSOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIHdlZWsuICBBbHRob3VnaCBPTkVfREFZIGFuZAorICAgICAqIE9ORV9XRUVLIGNhbiBmaXQgaW50byBpbnRzLCB0aGV5IG11c3QgYmUgbG9uZ3MgaW4gb3JkZXIgdG8gcHJldmVudAorICAgICAqIGFyaXRobWV0aWMgb3ZlcmZsb3cgd2hlbiBwZXJmb3JtaW5nIChidWcgNDE3MzUxNikuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIE9ORV9XRUVLICAgPSA3Kk9ORV9EQVk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgSnVsaWFuIGRheSBvZiB0aGUgR3JlZ29yaWFuIGVwb2NoLCB0aGF0IGlzLCBKYW51YXJ5IDEsIDEgb24gdGhlCisgICAgICogR3JlZ29yaWFuIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEpBTl8xXzFfSlVMSUFOX0RBWSA9IDE3MjE0MjY7CisKKyAgICAvKioKKyAgICAgKiBUaGUgSnVsaWFuIGRheSBvZiB0aGUgZXBvY2gsIHRoYXQgaXMsIEphbnVhcnkgMSwgMTk3MCBvbiB0aGUKKyAgICAgKiBHcmVnb3JpYW4gY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgRVBPQ0hfSlVMSUFOX0RBWSAgID0gMjQ0MDU4ODsKKworICAgIC8qKgorICAgICAqIFRoZSBtaW5pbXVtIHN1cHBvcnRlZCBKdWxpYW4gZGF5LiAgVGhpcyB2YWx1ZSBpcyBlcXVpdmFsZW50IHRvCisgICAgICogPGNvZGU+TUlOX01JTExJUzwvY29kZT4gYW5kIDxjb2RlPk1JTl9EQVRFPC9jb2RlPi4KKyAgICAgKiBAc2VlICNKVUxJQU5fREFZCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUlOX0pVTElBTiA9IC0weDdGMDAwMDAwOworCisgICAgLyoqCisgICAgICogVGhlIG1pbmltdW0gc3VwcG9ydGVkIGVwb2NoIG1pbGxpc2Vjb25kcy4gIFRoaXMgdmFsdWUgaXMgZXF1aXZhbGVudAorICAgICAqIHRvIDxjb2RlPk1JTl9KVUxJQU48L2NvZGU+IGFuZCA8Y29kZT5NSU5fREFURTwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBsb25nIE1JTl9NSUxMSVMgPSAtMTg0MzAzOTAyNTI4MDAwMDAwTDsKKworICAgIC8vIEdldCBhcm91bmQgYnVnIGluIGppa2VzIDEuMTIgZm9yIG5vdy4gIExhdGVyLCB1c2U6CisgICAgLy9wcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcgTUlOX01JTExJUyA9IChNSU5fSlVMSUFOIC0gRVBPQ0hfSlVMSUFOX0RBWSkgKiBPTkVfREFZOworCisgICAgLyoqCisgICAgICogVGhlIG1pbmltdW0gc3VwcG9ydGVkIDxjb2RlPkRhdGU8L2NvZGU+LiAgVGhpcyB2YWx1ZSBpcyBlcXVpdmFsZW50CisgICAgICogdG8gPGNvZGU+TUlOX0pVTElBTjwvY29kZT4gYW5kIDxjb2RlPk1JTl9NSUxMSVM8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgRGF0ZSBNSU5fREFURSA9IG5ldyBEYXRlKE1JTl9NSUxMSVMpOworCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gc3VwcG9ydGVkIEp1bGlhbiBkYXkuICBUaGlzIHZhbHVlIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiA8Y29kZT5NQVhfTUlMTElTPC9jb2RlPiBhbmQgPGNvZGU+TUFYX0RBVEU8L2NvZGU+LgorICAgICAqIEBzZWUgI0pVTElBTl9EQVkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVhfSlVMSUFOID0gKzB4N0YwMDAwMDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbWF4aW11bSBzdXBwb3J0ZWQgZXBvY2ggbWlsbGlzZWNvbmRzLiAgVGhpcyB2YWx1ZSBpcyBlcXVpdmFsZW50CisgICAgICogdG8gPGNvZGU+TUFYX0pVTElBTjwvY29kZT4gYW5kIDxjb2RlPk1BWF9EQVRFPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGxvbmcgTUFYX01JTExJUyA9IChNQVhfSlVMSUFOIC0gRVBPQ0hfSlVMSUFOX0RBWSkgKiBPTkVfREFZOworCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gc3VwcG9ydGVkIDxjb2RlPkRhdGU8L2NvZGU+LiAgVGhpcyB2YWx1ZSBpcyBlcXVpdmFsZW50CisgICAgICogdG8gPGNvZGU+TUFYX0pVTElBTjwvY29kZT4gYW5kIDxjb2RlPk1BWF9NSUxMSVM8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgRGF0ZSBNQVhfREFURSA9IG5ldyBEYXRlKE1BWF9NSUxMSVMpOworCisgICAgLy8gSW50ZXJuYWwgbm90ZXM6CisgICAgLy8gQ2FsZW5kYXIgY29udGFpbnMgdHdvIGtpbmRzIG9mIHRpbWUgcmVwcmVzZW50YXRpb25zOiBjdXJyZW50ICJ0aW1lIiBpbgorICAgIC8vIG1pbGxpc2Vjb25kcywgYW5kIGEgc2V0IG9mIHRpbWUgImZpZWxkcyIgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHRpbWUuCisgICAgLy8gVGhlIHR3byByZXByZXNlbnRhdGlvbnMgYXJlIHVzdWFsbHkgaW4gc3luYywgYnV0IGNhbiBnZXQgb3V0IG9mIHN5bmMKKyAgICAvLyBhcyBmb2xsb3dzLgorICAgIC8vIDEuIEluaXRpYWxseSwgbm8gZmllbGRzIGFyZSBzZXQsIGFuZCB0aGUgdGltZSBpcyBpbnZhbGlkLgorICAgIC8vIDIuIElmIHRoZSB0aW1lIGlzIHNldCwgYWxsIGZpZWxkcyBhcmUgY29tcHV0ZWQgYW5kIGluIHN5bmMuCisgICAgLy8gMy4gSWYgYSBzaW5nbGUgZmllbGQgaXMgc2V0LCB0aGUgdGltZSBpcyBpbnZhbGlkLgorICAgIC8vIFJlY29tcHV0YXRpb24gb2YgdGhlIHRpbWUgYW5kIGZpZWxkcyBoYXBwZW5zIHdoZW4gdGhlIG9iamVjdCBuZWVkcworICAgIC8vIHRvIHJldHVybiBhIHJlc3VsdCB0byB0aGUgdXNlciwgb3IgdXNlIGEgcmVzdWx0IGZvciBhIGNvbXB1dGF0aW9uLgorCisgICAgLyoqCisgICAgICogVGhlIGZpZWxkIHZhbHVlcyBmb3IgdGhlIGN1cnJlbnRseSBzZXQgdGltZSBmb3IgdGhpcyBjYWxlbmRhci4KKyAgICAgKiBUaGlzIGlzIGFuIGFycmF5IG9mIGF0IGxlYXN0IDxjb2RlPkJBU0VfRklFTERfQ09VTlQ8L2NvZGU+IGludGVnZXJzLgorICAgICAqIEBzZWUgI2hhbmRsZUNyZWF0ZUZpZWxkcworICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgICAgICAgICAgIGZpZWxkc1tdOworCisgICAgLyoqCisgICAgICogUHNldWRvLXRpbWUtc3RhbXBzIHdoaWNoIHNwZWNpZnkgd2hlbiBlYWNoIGZpZWxkIHdhcyBzZXQuIFRoZXJlCisgICAgICogYXJlIHR3byBzcGVjaWFsIHZhbHVlcywgVU5TRVQgYW5kIElOVEVSTkFMTFlfU0VULiBWYWx1ZXMgZnJvbQorICAgICAqIE1JTklNVU1fVVNFUl9TRVQgdG8gSW50ZWdlci5NQVhfVkFMVUUgYXJlIGxlZ2FsIHVzZXIgc2V0IHZhbHVlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgICAgICAgICAgIHN0YW1wW107CisKKyAgICAvKioKKyAgICAgKiBUaGUgY3VycmVudGx5IHNldCB0aW1lIGZvciB0aGlzIGNhbGVuZGFyLCBleHByZXNzZWQgaW4gbWlsbGlzZWNvbmRzIGFmdGVyCisgICAgICogSmFudWFyeSAxLCAxOTcwLCAwOjAwOjAwIEdNVC4KKyAgICAgKiBAc2VlIDx0dD5pc1RpbWVTZXQ8L3R0PgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGxvbmcgICAgICAgICAgdGltZTsKKworICAgIC8qKgorICAgICAqIFRydWUgaWYgdGhlbiB0aGUgdmFsdWUgb2YgPGNvZGU+dGltZTwvY29kZT4gaXMgdmFsaWQuCisgICAgICogVGhlIHRpbWUgaXMgbWFkZSBpbnZhbGlkIGJ5IGEgY2hhbmdlIHRvIGFuIGl0ZW0gb2YgPGNvZGU+ZmllbGRbXTwvY29kZT4uCisgICAgICogQHNlZSAjdGltZQorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuICAgICAgIGlzVGltZVNldDsKKworICAgIC8qKgorICAgICAqIFRydWUgaWYgPGNvZGU+ZmllbGRzW108L2NvZGU+IGFyZSBpbiBzeW5jIHdpdGggdGhlIGN1cnJlbnRseSBzZXQgdGltZS4KKyAgICAgKiBJZiBmYWxzZSwgdGhlbiB0aGUgbmV4dCBhdHRlbXB0IHRvIGdldCB0aGUgdmFsdWUgb2YgYSBmaWVsZCB3aWxsCisgICAgICogZm9yY2UgYSByZWNvbXB1dGF0aW9uIG9mIGFsbCBmaWVsZHMgZnJvbSB0aGUgY3VycmVudCB2YWx1ZSBvZgorICAgICAqIDxjb2RlPnRpbWU8L2NvZGU+LgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBib29sZWFuICAgICAgIGFyZUZpZWxkc1NldDsKKworICAgIC8qKgorICAgICAqIFRydWUgaWYgYWxsIGZpZWxkcyBoYXZlIGJlZW4gc2V0LiAgVGhpcyBpcyBvbmx5IGZhbHNlIGluIGEgZmV3CisgICAgICogc2l0dWF0aW9uczogSW4gYSBuZXdseSBjcmVhdGVkLCBwYXJ0aWFsbHkgY29uc3RydWN0ZWQgb2JqZWN0LiAgQWZ0ZXIKKyAgICAgKiBhIGNhbGwgdG8gY2xlYXIoKS4gIEluIGFuIG9iamVjdCBqdXN0IHJlYWQgZnJvbSBhIHN0cmVhbSB1c2luZworICAgICAqIHJlYWRPYmplY3QoKS4gIE9uY2UgY29tcHV0ZUZpZWxkcygpIGhhcyBiZWVuIGNhbGxlZCB0aGlzIGlzIHNldCB0bworICAgICAqIHRydWUgYW5kIHN0YXlzIHRydWUgdW50aWwgb25lIG9mIHRoZSBhYm92ZSBzaXR1YXRpb25zIHJlY3Vycy4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiAgICAgICBhcmVBbGxGaWVsZHNTZXQ7CisKKyAgICAvKioKKyAgICAgKiBUcnVlIGlmIGFsbCBmaWVsZHMgaGF2ZSBiZWVuIHZpcnR1YWxseSBzZXQsIGJ1dCBoYXZlIG5vdCB5ZXQgYmVlbgorICAgICAqIGNvbXB1dGVkLiAgVGhpcyBvY2N1cnMgb25seSBpbiBzZXRUaW1lSW5NaWxsaXMoKS4gIEEgY2FsZW5kYXIgc2V0CisgICAgICogdG8gdGhpcyBzdGF0ZSB3aWxsIGNvbXB1dGUgYWxsIGZpZWxkcyBmcm9tIHRoZSB0aW1lIGlmIGl0IGJlY29tZXMKKyAgICAgKiBuZWNlc3NhcnksIGJ1dCBvdGhlcndpc2Ugd2lsbCBkZWxheSBzdWNoIGNvbXB1dGF0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGJvb2xlYW4gYXJlRmllbGRzVmlydHVhbGx5U2V0OworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB0aGlzIGNhbGVuZGFyIGFsbG93cyBvdXQtb2YtcmFuZ2UgZmllbGQgdmFsdWVzIGR1cmluZyBjb21wdXRhdGlvbgorICAgICAqIG9mIDxjb2RlPnRpbWU8L2NvZGU+IGZyb20gPGNvZGU+ZmllbGRzW108L2NvZGU+LgorICAgICAqIEBzZWUgI3NldExlbmllbnQKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuICAgICAgICAgbGVuaWVudCA9IHRydWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IHVzZWQgYnkgdGhpcyBjYWxlbmRhci4gPC9jb2RlPkNhbGVuZGFyPC9jb2RlPgorICAgICAqIHVzZXMgdGhlIHRpbWUgem9uZSBkYXRhIHRvIHRyYW5zbGF0ZSBiZXR3ZWVuIGxvY2FsZSBhbmQgR01UIHRpbWUuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgVGltZVpvbmUgICAgICAgIHpvbmU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLCB3aXRoIHBvc3NpYmxlIHZhbHVlcyA8Y29kZT5TVU5EQVk8L2NvZGU+LAorICAgICAqIDxjb2RlPk1PTkRBWTwvY29kZT4sIGV0Yy4gIFRoaXMgaXMgYSBsb2NhbGUtZGVwZW5kZW50IHZhbHVlLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICBmaXJzdERheU9mV2VlazsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgZGF5cyByZXF1aXJlZCBmb3IgdGhlIGZpcnN0IHdlZWsgaW4gYSBtb250aCBvciB5ZWFyLAorICAgICAqIHdpdGggcG9zc2libGUgdmFsdWVzIGZyb20gMSB0byA3LiAgVGhpcyBpcyBhIGxvY2FsZS1kZXBlbmRlbnQgdmFsdWUuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgaW50ICAgICAgICAgICAgIG1pbmltYWxEYXlzSW5GaXJzdFdlZWs7CisKKyAgICAvKioKKyAgICAgKiBGaXJzdCBkYXkgb2YgdGhlIHdlZWtlbmQgaW4gdGhpcyBjYWxlbmRhcidzIGxvY2FsZS4gIE11c3QgYmUgaW4KKyAgICAgKiB0aGUgcmFuZ2UgU1VOREFZLi4uU0FUVVJEQVkgKDEuLjcpLiAgVGhlIHdlZWtlbmQgc3RhcnRzIGF0CisgICAgICogd2Vla2VuZE9uc2V0TWlsbGlzIG1pbGxpc2Vjb25kcyBhZnRlciBtaWRuaWdodCBvbiB0aGF0IGRheSBvZgorICAgICAqIHRoZSB3ZWVrLiAgVGhpcyB2YWx1ZSBpcyB0YWtlbiBmcm9tIGxvY2FsZSByZXNvdXJjZSBkYXRhLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHdlZWtlbmRPbnNldDsKKworICAgIC8qKgorICAgICAqIE1pbGxpc2Vjb25kcyBhZnRlciBtaWRuaWdodCBhdCB3aGljaCB0aGUgd2Vla2VuZCBzdGFydHMgb24gdGhlCisgICAgICogZGF5IG9mIHRoZSB3ZWVrIHdlZWtlbmRPbnNldC4gIFRpbWVzIHRoYXQgYXJlIGdyZWF0ZXIgdGhhbiBvcgorICAgICAqIGVxdWFsIHRvIHdlZWtlbmRPbnNldE1pbGxpcyBhcmUgY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSB3ZWVrZW5kLgorICAgICAqIE11c3QgYmUgaW4gdGhlIHJhbmdlIDAuLjI0KjYwKjYwKjEwMDAtMS4gIFRoaXMgdmFsdWUgaXMgdGFrZW4KKyAgICAgKiBmcm9tIGxvY2FsZSByZXNvdXJjZSBkYXRhLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHdlZWtlbmRPbnNldE1pbGxpczsKKworICAgIC8qKgorICAgICAqIERheSBvZiB0aGUgd2VlayB3aGVuIHRoZSB3ZWVrZW5kIHN0b3BzIGluIHRoaXMgY2FsZW5kYXIncworICAgICAqIGxvY2FsZS4gIE11c3QgYmUgaW4gdGhlIHJhbmdlIFNVTkRBWS4uLlNBVFVSREFZICgxLi43KS4gIFRoZQorICAgICAqIHdlZWtlbmQgc3RvcHMgYXQgd2Vla2VuZENlYXNlTWlsbGlzIG1pbGxpc2Vjb25kcyBhZnRlciBtaWRuaWdodAorICAgICAqIG9uIHRoYXQgZGF5IG9mIHRoZSB3ZWVrLiAgVGhpcyB2YWx1ZSBpcyB0YWtlbiBmcm9tIGxvY2FsZQorICAgICAqIHJlc291cmNlIGRhdGEuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgd2Vla2VuZENlYXNlOworCisgICAgLyoqCisgICAgICogTWlsbGlzZWNvbmRzIGFmdGVyIG1pZG5pZ2h0IGF0IHdoaWNoIHRoZSB3ZWVrZW5kIHN0b3BzIG9uIHRoZQorICAgICAqIGRheSBvZiB0aGUgd2VlayB3ZWVrZW5kQ2Vhc2UuICBUaW1lcyB0aGF0IGFyZSBncmVhdGVyIHRoYW4gb3IKKyAgICAgKiBlcXVhbCB0byB3ZWVrZW5kQ2Vhc2VNaWxsaXMgYXJlIGNvbnNpZGVyZWQgbm90IHRvIGJlIHRoZQorICAgICAqIHdlZWtlbmQuICBNdXN0IGJlIGluIHRoZSByYW5nZSAwLi4yNCo2MCo2MCoxMDAwLTEuICBUaGlzIHZhbHVlCisgICAgICogaXMgdGFrZW4gZnJvbSBsb2NhbGUgcmVzb3VyY2UgZGF0YS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCB3ZWVrZW5kQ2Vhc2VNaWxsaXM7CisKKyAgICAvKioKKyAgICAgKiBDYWNoZSB0byBob2xkIHRoZSBmaXJzdERheU9mV2VlayBhbmQgbWluaW1hbERheXNJbkZpcnN0V2VlaworICAgICAqIG9mIGEgTG9jYWxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIEhhc2h0YWJsZSBjYWNoZWRMb2NhbGVEYXRhID0gbmV3IEhhc2h0YWJsZSgzKTsKKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSB0aW1lIHN0YW1wIDxjb2RlPnN0YW1wW108L2NvZGU+IGluZGljYXRpbmcgdGhhdAorICAgICAqIGEgZmllbGQgaGFzIG5vdCBiZWVuIHNldCBzaW5jZSB0aGUgbGFzdCBjYWxsIHRvIDxjb2RlPmNsZWFyKCk8L2NvZGU+LgorICAgICAqIEBzZWUgI0lOVEVSTkFMTFlfU0VUCisgICAgICogQHNlZSAjTUlOSU1VTV9VU0VSX1NUQU1QCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgVU5TRVQgPSAwOworCisgICAgLyoqCisgICAgICogVmFsdWUgb2YgdGhlIHRpbWUgc3RhbXAgPGNvZGU+c3RhbXBbXTwvY29kZT4gaW5kaWNhdGluZyB0aGF0IGEgZmllbGQKKyAgICAgKiBoYXMgYmVlbiBzZXQgdmlhIGNvbXB1dGF0aW9ucyBmcm9tIHRoZSB0aW1lIG9yIGZyb20gb3RoZXIgZmllbGRzLgorICAgICAqIEBzZWUgI1VOU0VUCisgICAgICogQHNlZSAjTUlOSU1VTV9VU0VSX1NUQU1QCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgSU5URVJOQUxMWV9TRVQgPSAxOworCisgICAgLyoqCisgICAgICogSWYgdGhlIHRpbWUgc3RhbXAgPGNvZGU+c3RhbXBbXTwvY29kZT4gaGFzIGEgdmFsdWUgZ3JlYXRlciB0aGFuIG9yCisgICAgICogZXF1YWwgdG8gPGNvZGU+TUlOSU1VTV9VU0VSX1NFVDwvY29kZT4gdGhlbiBpdCBoYXMgYmVlbiBzZXQgYnkgdGhlCisgICAgICogdXNlciB2aWEgYSBjYWxsIHRvIDxjb2RlPnNldCgpPC9jb2RlPi4KKyAgICAgKiBAc2VlICNVTlNFVAorICAgICAqIEBzZWUgI0lOVEVSTkFMTFlfU0VUCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgTUlOSU1VTV9VU0VSX1NUQU1QID0gMjsKKworICAgIC8qKgorICAgICAqIFRoZSBuZXh0IGF2YWlsYWJsZSB2YWx1ZSBmb3IgPGNvZGU+c3RhbXBbXTwvY29kZT4sIGFuIGludGVybmFsIGFycmF5LgorICAgICAqIFRoaXMgYWN0dWFsbHkgc2hvdWxkIG5vdCBiZSB3cml0dGVuIG91dCB0byB0aGUgc3RyZWFtLCBhbmQgd2lsbCBwcm9iYWJseQorICAgICAqIGJlIHJlbW92ZWQgZnJvbSB0aGUgc3RyZWFtIGluIHRoZSBuZWFyIGZ1dHVyZS4gIEluIHRoZSBtZWFudGltZSwKKyAgICAgKiBhIHZhbHVlIG9mIDxjb2RlPk1JTklNVU1fVVNFUl9TVEFNUDwvY29kZT4gc2hvdWxkIGJlIHVzZWQuCisgICAgICogQHNlcmlhbAorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCAgICAgICAgICAgICBuZXh0U3RhbXAgPSBNSU5JTVVNX1VTRVJfU1RBTVA7CisKKyAgICAvLyB0aGUgaW50ZXJuYWwgc2VyaWFsIHZlcnNpb24gd2hpY2ggc2F5cyB3aGljaCB2ZXJzaW9uIHdhcyB3cml0dGVuCisgICAgLy8gLSAwIChkZWZhdWx0KSBmb3IgdmVyc2lvbiB1cCB0byBKREsgMS4xLjUKKyAgICAvLyAtIDEgZm9yIHZlcnNpb24gZnJvbSBKREsgMS4xLjYsIHdoaWNoIHdyaXRlcyBhIGNvcnJlY3QgJ3RpbWUnIHZhbHVlCisgICAgLy8gICAgIGFzIHdlbGwgYXMgY29tcGF0aWJsZSB2YWx1ZXMgZm9yIG90aGVyIGZpZWxkcy4gIFRoaXMgaXMgYQorICAgIC8vICAgICB0cmFuc2l0aW9uYWwgZm9ybWF0LgorICAgIC8vIC0gMiAobm90IGltcGxlbWVudGVkIHlldCkgYSBmdXR1cmUgdmVyc2lvbiwgaW4gd2hpY2ggZmllbGRzW10sCisgICAgLy8gICAgIGFyZUZpZWxkc1NldCwgYW5kIGlzVGltZVNldCBiZWNvbWUgdHJhbnNpZW50LCBhbmQgaXNTZXRbXSBpcworICAgIC8vICAgICByZW1vdmVkLiBJbiBKREsgMS4xLjYgd2Ugd3JpdGUgYSBmb3JtYXQgY29tcGF0aWJsZSB3aXRoIHZlcnNpb24gMi4KKyAgICAvLyBzdGF0aWMgZmluYWwgaW50ICAgICAgICBjdXJyZW50U2VyaWFsVmVyc2lvbiA9IDE7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgc2VyaWFsaXplZCBkYXRhIG9uIHRoZSBzdHJlYW0uICBQb3NzaWJsZSB2YWx1ZXM6CisgICAgICogPGRsPgorICAgICAqIDxkdD48Yj4wPC9iPiBvciBub3QgcHJlc2VudCBvbiBzdHJlYW08L2R0PgorICAgICAqIDxkZD4KKyAgICAgKiBKREsgMS4xLjUgb3IgZWFybGllci4KKyAgICAgKiA8L2RkPgorICAgICAqIDxkdD48Yj4xPC9iPjwvZHQ+CisgICAgICogPGRkPgorICAgICAqIEpESyAxLjEuNiBvciBsYXRlci4gIFdyaXRlcyBhIGNvcnJlY3QgJ3RpbWUnIHZhbHVlCisgICAgICogYXMgd2VsbCBhcyBjb21wYXRpYmxlIHZhbHVlcyBmb3Igb3RoZXIgZmllbGRzLiAgVGhpcyBpcyBhCisgICAgICogdHJhbnNpdGlvbmFsIGZvcm1hdC4KKyAgICAgKiA8L2RkPgorICAgICAqIDwvZGw+CisgICAgICogV2hlbiBzdHJlYW1pbmcgb3V0IHRoaXMgY2xhc3MsIHRoZSBtb3N0IHJlY2VudCBmb3JtYXQKKyAgICAgKiBhbmQgdGhlIGhpZ2hlc3QgYWxsb3dhYmxlIDxjb2RlPnNlcmlhbFZlcnNpb25PblN0cmVhbTwvY29kZT4KKyAgICAgKiBpcyB3cml0dGVuLgorICAgICAqIEBzZXJpYWwKKyAgICAgKiBAc2luY2UgSkRLMS4xLjYKKyAgICAgKi8KKyAgICAvLyBwcml2YXRlIGludCAgICAgICAgICAgICBzZXJpYWxWZXJzaW9uT25TdHJlYW0gPSBjdXJyZW50U2VyaWFsVmVyc2lvbjsKKworICAgIC8vIFByb2NsYWltIHNlcmlhbGl6YXRpb24gY29tcGF0aWJpbGl0eSB3aXRoIEpESyAxLjEKKyAgICAvLyBzdGF0aWMgZmluYWwgbG9uZyAgICAgICBzZXJpYWxWZXJzaW9uVUlEID0gLTE4MDc1NDc1MDU4MjE1OTA2NDJMOworICAgIAorICAgIC8vIGhhdmVuJ3QgYmVlbiBjb21wYXRpYmxlIGZvciBhd2hpbGUsIG5vIGxvbmdlciB0cnkKKyAgICAvLyBqZGsxLjQuMiBzZXJpYWx2ZXIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA2MjIyNjQ2MTA0ODg4NzkwOTg5TDsKKworICAgIC8qKgorICAgICAqIEJpdG1hc2sgZm9yIGludGVybmFsU2V0KCkgZGVmaW5pbmcgd2hpY2ggZmllbGRzIG1heSBsZWdhbGx5IGJlIHNldAorICAgICAqIGJ5IHN1YmNsYXNzZXMuICBBbnkgYXR0ZW1wdCB0byBzZXQgYSBmaWVsZCBub3QgaW4gdGhpcyBiaXRtYXNrCisgICAgICogcmVzdWx0cyBpbiBhbiBleGNlcHRpb24sIGJlY2F1c2Ugc3VjaCBmaWVsZHMgbXVzdCBiZSBzZXQgYnkgdGhlIGJhc2UKKyAgICAgKiBjbGFzcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgaW50ZXJuYWxTZXRNYXNrOworCisgICAgLyoqCisgICAgICogVGhlIEdyZWdvcmlhbiB5ZWFyLCBhcyBjb21wdXRlZCBieSBjb21wdXRlR3JlZ29yaWFuRmllbGRzKCkgYW5kCisgICAgICogcmV0dXJuZWQgYnkgZ2V0R3JlZ29yaWFuWWVhcigpLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBncmVnb3JpYW5ZZWFyOworCisgICAgLyoqCisgICAgICogVGhlIEdyZWdvcmlhbiBtb250aCwgYXMgY29tcHV0ZWQgYnkgY29tcHV0ZUdyZWdvcmlhbkZpZWxkcygpIGFuZAorICAgICAqIHJldHVybmVkIGJ5IGdldEdyZWdvcmlhbk1vbnRoKCkuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGdyZWdvcmlhbk1vbnRoOworCisgICAgLyoqCisgICAgICogVGhlIEdyZWdvcmlhbiBkYXkgb2YgdGhlIHllYXIsIGFzIGNvbXB1dGVkIGJ5CisgICAgICogY29tcHV0ZUdyZWdvcmlhbkZpZWxkcygpIGFuZCByZXR1cm5lZCBieSBnZXRHcmVnb3JpYW5EYXlPZlllYXIoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgZ3JlZ29yaWFuRGF5T2ZZZWFyOworCisgICAgLyoqCisgICAgICogVGhlIEdyZWdvcmlhbiBkYXkgb2YgdGhlIG1vbnRoLCBhcyBjb21wdXRlZCBieQorICAgICAqIGNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoKSBhbmQgcmV0dXJuZWQgYnkgZ2V0R3JlZ29yaWFuRGF5T2ZNb250aCgpLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBncmVnb3JpYW5EYXlPZk1vbnRoOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIENhbGVuZGFyIHdpdGggdGhlIGRlZmF1bHQgdGltZSB6b25lCisgICAgICogYW5kIGxvY2FsZS4KKyAgICAgKiBAc2VlICAgICBUaW1lWm9uZSNnZXREZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIENhbGVuZGFyKCkKKyAgICB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIGNhbGVuZGFyIHdpdGggdGhlIHNwZWNpZmllZCB0aW1lIHpvbmUgYW5kIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgdGltZSB6b25lIHRvIHVzZQorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBsb2NhbGUgZm9yIHRoZSB3ZWVrIGRhdGEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgTG9jYWxlIGFMb2NhbGUpCisgICAgeworICAgICAgICB0aGlzKHpvbmUsIFVMb2NhbGUuZm9yTG9jYWxlKGFMb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgY2FsZW5kYXIgd2l0aCB0aGUgc3BlY2lmaWVkIHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRoZSB0aW1lIHpvbmUgdG8gdXNlCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgdWxvY2FsZSBmb3IgdGhlIHdlZWsgZGF0YQorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIENhbGVuZGFyKFRpbWVab25lIHpvbmUsIFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgdGhpcy56b25lID0gem9uZTsKKyAgICAgICAgc2V0V2Vla0RhdGEobG9jYWxlKTsKKyAgICAgICAgaW5pdEludGVybmFsKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGluaXRJbnRlcm5hbCgpCisgICAgeworICAgICAgICAvLyBBbGxvY2F0ZSBmaWVsZHMgdGhyb3VnaCB0aGUgZnJhbWV3b3JrIG1ldGhvZC4gIFN1YmNsYXNzZXMKKyAgICAgICAgLy8gbWF5IG92ZXJyaWRlIHRoaXMgdG8gZGVmaW5lIGFkZGl0aW9uYWwgZmllbGRzLgorICAgICAgICBmaWVsZHMgPSBoYW5kbGVDcmVhdGVGaWVsZHMoKTsKKyAgICAgICAgLy8vQ0xPVkVSOk9GRgorICAgICAgICAvLyB0b2RvOiBmaXgsIGRpZmZpY3VsdCB0byB0ZXN0IHdpdGhvdXQgc3ViY2xhc3NpbmcKKyAgICAgICAgaWYgKGZpZWxkcyA9PSBudWxsIHx8IGZpZWxkcy5sZW5ndGggPCBCQVNFX0ZJRUxEX0NPVU5UIHx8CisgICAgICAgICAgICBmaWVsZHMubGVuZ3RoID4gTUFYX0ZJRUxEX0NPVU5UKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJJbnZhbGlkIGZpZWxkc1tdIik7CisgICAgICAgIH0KKyAgICAgICAgLy8vQ0xPVkVSOk9OCisgICAgICAgIHN0YW1wID0gbmV3IGludFtmaWVsZHMubGVuZ3RoXTsKKyAgICAgICAgaW50IG1hc2sgPSAoMSA8PCBFUkEpIHwKKyAgICAgICAgICAgICgxIDw8IFlFQVIpIHwKKyAgICAgICAgICAgICgxIDw8IE1PTlRIKSB8CisgICAgICAgICAgICAoMSA8PCBEQVlfT0ZfTU9OVEgpIHwKKyAgICAgICAgICAgICgxIDw8IERBWV9PRl9ZRUFSKSB8CisgICAgICAgICAgICAoMSA8PCBFWFRFTkRFRF9ZRUFSKTsKKyAgICAgICAgZm9yIChpbnQgaT1CQVNFX0ZJRUxEX0NPVU5UOyBpPGZpZWxkcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbWFzayB8PSAoMSA8PCBpKTsKKyAgICAgICAgfQorICAgICAgICBpbnRlcm5hbFNldE1hc2sgPSBtYXNrOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBjYWxlbmRhciB1c2luZyB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgYW5kIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIGEgQ2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgQ2FsZW5kYXIgZ2V0SW5zdGFuY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCksIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBjYWxlbmRhciB1c2luZyB0aGUgc3BlY2lmaWVkIHRpbWUgem9uZSBhbmQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIHRpbWUgem9uZSB0byB1c2UKKyAgICAgKiBAcmV0dXJuIGEgQ2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgQ2FsZW5kYXIgZ2V0SW5zdGFuY2UoVGltZVpvbmUgem9uZSkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZSh6b25lLCBVTG9jYWxlLmdldERlZmF1bHQoKSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyBhIGNhbGVuZGFyIHVzaW5nIHRoZSBkZWZhdWx0IHRpbWUgem9uZSBhbmQgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgbG9jYWxlIGZvciB0aGUgd2VlayBkYXRhCisgICAgICogQHJldHVybiBhIENhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKExvY2FsZSBhTG9jYWxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5mb3JMb2NhbGUoYUxvY2FsZSksIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBjYWxlbmRhciB1c2luZyB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgYW5kIHNwZWNpZmllZCBsb2NhbGUuICAKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSB1bG9jYWxlIGZvciB0aGUgd2VlayBkYXRhCisgICAgICogQHJldHVybiBhIENhbGVuZGFyLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgQ2FsZW5kYXIgZ2V0SW5zdGFuY2UoVUxvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBsb2NhbGUsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBjYWxlbmRhciB3aXRoIHRoZSBzcGVjaWZpZWQgdGltZSB6b25lIGFuZCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIHRpbWUgem9uZSB0byB1c2UKKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgbG9jYWxlIGZvciB0aGUgd2VlayBkYXRhCisgICAgICogQHJldHVybiBhIENhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKFRpbWVab25lIHpvbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKHpvbmUsIFVMb2NhbGUuZm9yTG9jYWxlKGFMb2NhbGUpLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgY2FsZW5kYXIgd2l0aCB0aGUgc3BlY2lmaWVkIHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB6b25lIHRoZSB0aW1lIHpvbmUgdG8gdXNlCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgdWxvY2FsZSBmb3IgdGhlIHdlZWsgZGF0YQorICAgICAqIEByZXR1cm4gYSBDYWxlbmRhci4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKFRpbWVab25lIHpvbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKHpvbmUsIGxvY2FsZSwgbnVsbCk7CisgICAgfQorCisgICAgLy8gPT09PSBGYWN0b3J5IFN0dWZmID09PT0KKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgY2FsZW5kYXIgb2YgZm9yIHRoZSBUaW1lWm9uZSBhbmQgbG9jYWxlLiAgSWYgZmFjdG9yeU5hbWUgaXMKKyAgICAgKiBub3QgbnVsbCwgbG9va3MgaW4gdGhlIGNvbGxlY3Rpb24gb2YgQ2FsZW5kYXJGYWN0b3JpZXMgZm9yIGEgbWF0Y2gKKyAgICAgKiBhbmQgdXNlcyB0aGF0IGZhY3RvcnkgdG8gaW5zdGFudGlhdGUgdGhlIGNhbGVuZGFyLiAgT3RoZXJ3aXNlLCBpdAorICAgICAqIHVzZXMgdGhlIGRlZmF1bHQgZmFjdG9yeSB0aGF0IGhhcyBiZWVuIHJlZ2lzdGVyZWQgZm9yIHRoZSBsb2NhbGUuCisgICAgICogQHByb3RvdHlwZQorICAgICAqLworICAgIC8qIHB1YmxpYyAqLyBzdGF0aWMgc3luY2hyb25pemVkIENhbGVuZGFyIGdldEluc3RhbmNlKFRpbWVab25lIHpvbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGZhY3RvcnlOYW1lKQorICAgIHsKKyAgICAgICAgQ2FsZW5kYXJGYWN0b3J5IGZhY3RvcnkgPSBudWxsOworICAgICAgICBpZiAoZmFjdG9yeU5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgZmFjdG9yeSA9IChDYWxlbmRhckZhY3RvcnkpZ2V0RmFjdG9yeU1hcCgpLmdldChmYWN0b3J5TmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBVTG9jYWxlW10gYWN0dWFsUmV0dXJuID0gbmV3IFVMb2NhbGVbMV07CisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwgJiYgc2VydmljZSAhPSBudWxsKSB7CisgICAgICAgICAgICBmYWN0b3J5ID0gKENhbGVuZGFyRmFjdG9yeSlzZXJ2aWNlLmdldChsb2NhbGUsIGFjdHVhbFJldHVybik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZmFjdG9yeSA9PSBudWxsKSB7CisgICAgICAgICAgICBpbnQgY2FsVHlwZSA9IGdldENhbGVuZGFyVHlwZShsb2NhbGUpOworICAgICAgICAgICAgc3dpdGNoIChjYWxUeXBlKSB7CisgICAgICAgICAgICBjYXNlIEJVRERISVNUOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQnVkZGhpc3RDYWxlbmRhcih6b25lLCBsb2NhbGUpOworICAgICAgICAgICAgY2FzZSBDSElORVNFOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ2hpbmVzZUNhbGVuZGFyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgICAgICBjYXNlIENPUFRJQzoKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENvcHRpY0NhbGVuZGFyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgICAgICBjYXNlIEVUSElPUElDOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXRoaW9waWNDYWxlbmRhcih6b25lLCBsb2NhbGUpOworICAgICAgICAgICAgY2FzZSBHUkVHT1JJQU46CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBHcmVnb3JpYW5DYWxlbmRhcih6b25lLCBsb2NhbGUpOworICAgICAgICAgICAgY2FzZSBIRUJSRVc6CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBIZWJyZXdDYWxlbmRhcih6b25lLCBsb2NhbGUpOworICAgICAgICAgICAgY2FzZSBJU0xBTUlDOgorICAgICAgICAgICAgY2FzZSBJU0xBTUlDX0NJVklMOiB7CisgICAgICAgICAgICAgICAgSXNsYW1pY0NhbGVuZGFyIHJlc3VsdCA9IG5ldyBJc2xhbWljQ2FsZW5kYXIoem9uZSwgbG9jYWxlKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0Q2l2aWwoY2FsVHlwZSA9PSBJU0xBTUlDX0NJVklMKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBKQVBBTkVTRToKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEphcGFuZXNlQ2FsZW5kYXIoem9uZSwgbG9jYWxlKTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQ2FsZW5kYXIgcmVzdWx0ID0gZmFjdG9yeS5jcmVhdGUoem9uZSwgbG9jYWxlKTsKKworICAgICAgICAgICAgLy8gVE9ETzogZ2V0IHRoZSBhY3R1YWwvdmFsaWQgbG9jYWxlIHByb3Blcmx5CisgICAgICAgICAgICBVTG9jYWxlIHVsb2MgPSBhY3R1YWxSZXR1cm5bMF07CisgICAgICAgICAgICByZXN1bHQuc2V0TG9jYWxlKHVsb2MsIHVsb2MpOworCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCVURESElTVCA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENISU5FU0UgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDT1BUSUMgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFVEhJT1BJQyA9IDM7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEdSRUdPUklBTiA9IDQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEhFQlJFVyA9IDU7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElTTEFNSUMgPSA2OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBJU0xBTUlDX0NJVklMID0gNzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSkFQQU5FU0UgPSA4OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gY2FsVHlwZXMgPSB7CisgICAgICAgICJidWRkaGlzdCIsICJjaGluZXNlIiwgImNvcHRpYyIsICJldGhpb3BpYyIsICJncmVnb3JpYW4iLCAiaGVicmV3IiwgCisgICAgICAgICJpc2xhbWljIiwgImlzbGFtaWMtY2l2aWwiLCAiamFwYW5lc2UiLAorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0Q2FsZW5kYXJUeXBlKFVMb2NhbGUgbCkgeworICAgICAgICBTdHJpbmcgcyA9IGwuZ2V0S2V5d29yZFZhbHVlKCJjYWxlbmRhciIpOworICAgICAgICBpZiAocyA9PSBudWxsKSB7CisgICAgICAgICAgICBsID0gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0RnVuY3Rpb25hbEVxdWl2YWxlbnQoCisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgImNhbGVuZGFyIiwgImNhbGVuZGFyIiwgbCwgbnVsbCk7CisgICAgICAgICAgICBzID0gbC5nZXRLZXl3b3JkVmFsdWUoImNhbGVuZGFyIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldENhbGVuZGFyVHlwZShzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2V0Q2FsZW5kYXJUeXBlKFN0cmluZyBzKSB7CisgICAgICAgIGlmIChzICE9IG51bGwpIHsKKyAgICAgICAgICAgIHMgPSBzLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNhbFR5cGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgaWYgKHMuZXF1YWxzKGNhbFR5cGVzW2ldKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEdSRUdPUklBTjsKKyAgICB9CisKKyAgICAvLy9DTE9WRVI6T04KKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIENhbGVuZGFycyBhcmUgaW5zdGFsbGVkLgorICAgICAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQ2FsZW5kYXJzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBzZXJ2aWNlID09IG51bGwKKyAgICAgICAgICAgID8gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKQorICAgICAgICAgICAgOiBzZXJ2aWNlLmdldEF2YWlsYWJsZUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsaXN0IG9mIGxvY2FsZXMgZm9yIHdoaWNoIENhbGVuZGFycyBhcmUgaW5zdGFsbGVkLgorICAgICAqIEByZXR1cm4gdGhlIGxpc3Qgb2YgbG9jYWxlcyBmb3Igd2hpY2ggQ2FsZW5kYXJzIGFyZSBpbnN0YWxsZWQuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpCisgICAgeworICAgICAgICByZXR1cm4gc2VydmljZSA9PSBudWxsCisgICAgICAgICAgICA/IElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZVVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUpCisgICAgICAgICAgICA6IHNlcnZpY2UuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgcHJpdmF0ZSBzdGF0aWMgTWFwIGZhY3RvcnlNYXA7CisgICAgcHJpdmF0ZSBzdGF0aWMgTWFwIGdldEZhY3RvcnlNYXAoKSB7CisgICAgICAgIGlmIChmYWN0b3J5TWFwID09IG51bGwpIHsKKyAgICAgICAgICAgIE1hcCBtID0gbmV3IEhhc2hNYXAoNSk7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgYWRkRmFjdG9yeShtLCBCdWRkaGlzdENhbGVuZGFyLmZhY3RvcnkoKSk7CisgICAgICAgICAgICBhZGRGYWN0b3J5KG0sIENoaW5lc2VDYWxlbmRhci5mYWN0b3J5KCkpOworICAgICAgICAgICAgYWRkRmFjdG9yeShtLCBHcmVnb3JpYW5DYWxlbmRhci5mYWN0b3J5KCkpOworICAgICAgICAgICAgYWRkRmFjdG9yeShtLCBIZWJyZXdDYWxlbmRhci5mYWN0b3J5KCkpOworICAgICAgICAgICAgYWRkRmFjdG9yeShtLCBJc2xhbWljQ2FsZW5kYXIuZmFjdG9yeSgpKTsKKyAgICAgICAgICAgIGFkZEZhY3RvcnkobSwgSmFwYW5lc2VDYWxlbmRhci5mYWN0b3J5KCkpOworICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGZhY3RvcnlNYXAgPSBtOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWN0b3J5TWFwOworICAgIH0KKworLy8gTmV2ZXIgdXNlZCAtLSB3aHkgaXMgdGhpcyBoZXJlPyBBbGFuIDIwMDMtMDUKKy8vICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYWRkRmFjdG9yeShNYXAgbSwgQ2FsZW5kYXJGYWN0b3J5IGYpIHsKKy8vICAgICAgICBtLnB1dChmLmZhY3RvcnlOYW1lKCksIGYpOworLy8gICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgc2V0IG9mIGFsbCB0aGUgcmVnaXN0ZXJlZCBjYWxlbmRhciBmYWN0b3J5IG5hbWVzLgorICAgICAqIEBwcm90b3R5cGUKKyAgICAgKi8KKyAgICAvKiBwdWJsaWMgKi8gc3RhdGljIFNldCBnZXRDYWxlbmRhckZhY3RvcnlOYW1lcygpIHsKKyAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChnZXRGYWN0b3J5TWFwKCkua2V5U2V0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGEgbmV3IENhbGVuZGFyRmFjdG9yeS4gIGdldEluc3RhbmNlKFRpbWVab25lLCBVTG9jYWxlLCBTdHJpbmcpIHdpbGwKKyAgICAgKiB0cnkgdG8gbG9jYXRlIGEgcmVnaXN0ZXJlZCBmYWN0b3JpZXMgbWF0Y2hpbmcgdGhlIGZhY3RvcnlOYW1lLiAgT25seSByZWdpc3RlcmVkCisgICAgICogZmFjdG9yaWVzIHdpbGwgYmUgZm91bmQuCisgICAgICogQHByb3RvdHlwZQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgcmVnaXN0ZXJGYWN0b3J5KENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5KSB7CisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkZhY3RvcnkgbXVzdCBub3QgYmUgbnVsbCIpOworICAgICAgICB9CisgICAgICAgIGdldEZhY3RvcnlNYXAoKS5wdXQoZmFjdG9yeS5mYWN0b3J5TmFtZSgpLCBmYWN0b3J5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBvdmVycmlkZSBvZiByZWdpc3RlcihDYWxlbmRhckZhY3RvcnksIFVMb2NhbGUsIGJvb2xlYW4pOworICAgICAqIEBwcm90b3R5cGUKKyAgICAgKi8KKyAgICAvKiBwdWJsaWMgKi8gc3RhdGljIE9iamVjdCByZWdpc3RlcihDYWxlbmRhckZhY3RvcnkgZmFjdG9yeSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIHJlZ2lzdGVyKGZhY3RvcnksIGxvY2FsZSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIGEgZGVmYXVsdCBDYWxlbmRhckZhY3RvcnkgZm9yIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogSWYgdGhlIGZhY3RvcnkgaGFzIG5vdCBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZCB3aXRoCisgICAgICogcmVnaXN0ZXJGYWN0b3J5LCBpdCB3aWxsIGJlLgorICAgICAqIEBwcm90b3R5cGUKKyAgICAgKi8KKyAgICAvKiBwdWJsaWMgKi8gc3RhdGljIE9iamVjdCByZWdpc3RlcihDYWxlbmRhckZhY3RvcnkgZmFjdG9yeSwgVUxvY2FsZSBsb2NhbGUsIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICBpZiAoZmFjdG9yeSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjYWxlbmRhciBtdXN0IG5vdCBiZSBudWxsIik7CisgICAgICAgIH0KKyAgICAgICAgcmVnaXN0ZXJGYWN0b3J5KGZhY3RvcnkpOworICAgICAgICByZXR1cm4gZ2V0U2VydmljZSgpLnJlZ2lzdGVyT2JqZWN0KGZhY3RvcnksIGxvY2FsZSwgdmlzaWJsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciB0aGUgQ2FsZW5kYXJGYWN0b3J5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGtleQorICAgICAqIChvYnRhaW5lZCBmcm9tIHJlZ2lzdGVyKS4KKyAgICAgKiBAcHJvdG90eXBlCisgICAgICovCisgICAgLyogcHVibGljICovIHN0YXRpYyBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IHJlZ2lzdHJ5S2V5KSB7CisgICAgICAgIHJldHVybiBzZXJ2aWNlID09IG51bGwKKyAgICAgICAgICAgID8gZmFsc2UKKyAgICAgICAgICAgIDogc2VydmljZS51bnJlZ2lzdGVyRmFjdG9yeSgoRmFjdG9yeSlyZWdpc3RyeUtleSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgSUNVTG9jYWxlU2VydmljZSBzZXJ2aWNlID0gbnVsbDsKKyAgICBwcml2YXRlIHN0YXRpYyBJQ1VMb2NhbGVTZXJ2aWNlIGdldFNlcnZpY2UoKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAoQ2FsZW5kYXIuY2xhc3MpIHsKKyAgICAgICAgICAgIGlmIChzZXJ2aWNlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzZXJ2aWNlID0gbmV3IElDVUxvY2FsZVNlcnZpY2UoIkNhbGVuZGFyIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNlcnZpY2U7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorICAgIC8vID09PT0gRW5kIG9mIGZhY3RvcnkgU3R1ZmYgPT09PQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGlzIENhbGVuZGFyJ3MgY3VycmVudCB0aW1lLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgdGltZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgRGF0ZSBnZXRUaW1lKCkgeworICAgICAgICByZXR1cm4gbmV3IERhdGUoIGdldFRpbWVJbk1pbGxpcygpICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGlzIENhbGVuZGFyJ3MgY3VycmVudCB0aW1lIHdpdGggdGhlIGdpdmVuIERhdGUuCisgICAgICogPHA+CisgICAgICogTm90ZTogQ2FsbGluZyA8Y29kZT5zZXRUaW1lKCk8L2NvZGU+IHdpdGgKKyAgICAgKiA8Y29kZT5EYXRlKExvbmcuTUFYX1ZBTFVFKTwvY29kZT4gb3IgPGNvZGU+RGF0ZShMb25nLk1JTl9WQUxVRSk8L2NvZGU+CisgICAgICogbWF5IHlpZWxkIGluY29ycmVjdCBmaWVsZCB2YWx1ZXMgZnJvbSA8Y29kZT5nZXQoKTwvY29kZT4uCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGdpdmVuIERhdGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0VGltZShEYXRlIGRhdGUpIHsKKyAgICAgICAgc2V0VGltZUluTWlsbGlzKCBkYXRlLmdldFRpbWUoKSApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhpcyBDYWxlbmRhcidzIGN1cnJlbnQgdGltZSBhcyBhIGxvbmcuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCB0aW1lIGFzIFVUQyBtaWxsaXNlY29uZHMgZnJvbSB0aGUgZXBvY2guCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGxvbmcgZ2V0VGltZUluTWlsbGlzKCkgeworICAgICAgICBpZiAoIWlzVGltZVNldCkgdXBkYXRlVGltZSgpOworICAgICAgICByZXR1cm4gdGltZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoaXMgQ2FsZW5kYXIncyBjdXJyZW50IHRpbWUgZnJvbSB0aGUgZ2l2ZW4gbG9uZyB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gbWlsbGlzIHRoZSBuZXcgdGltZSBpbiBVVEMgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGVwb2NoLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRpbWVJbk1pbGxpcyggbG9uZyBtaWxsaXMgKSB7CisgICAgICAgIGlmIChtaWxsaXMgPiBNQVhfTUlMTElTKSB7CisgICAgICAgICAgICBtaWxsaXMgPSBNQVhfTUlMTElTOworICAgICAgICB9IGVsc2UgaWYgKG1pbGxpcyA8IE1JTl9NSUxMSVMpIHsKKyAgICAgICAgICAgIG1pbGxpcyA9IE1JTl9NSUxMSVM7CisgICAgICAgIH0KKyAgICAgICAgdGltZSA9IG1pbGxpczsKKyAgICAgICAgYXJlRmllbGRzU2V0ID0gYXJlQWxsRmllbGRzU2V0ID0gZmFsc2U7CisgICAgICAgIGlzVGltZVNldCA9IGFyZUZpZWxkc1ZpcnR1YWxseVNldCA9IHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdmFsdWUgZm9yIGEgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHJldHVybiB0aGUgdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0KGludCBmaWVsZCkKKyAgICB7CisgICAgICAgIGNvbXBsZXRlKCk7CisgICAgICAgIHJldHVybiBmaWVsZHNbZmllbGRdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHZhbHVlIGZvciBhIGdpdmVuIHRpbWUgZmllbGQuICBUaGlzIGlzIGFuIGludGVybmFsIG1ldGhvZAorICAgICAqIGZvciBzdWJjbGFzc2VzIHRoYXQgZG9lcyA8ZW0+bm90PC9lbT4gdHJpZ2dlciBhbnkgY2FsY3VsYXRpb25zLgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcmV0dXJuIHRoZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBpbnRlcm5hbEdldChpbnQgZmllbGQpCisgICAgeworICAgICAgICByZXR1cm4gZmllbGRzW2ZpZWxkXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHZhbHVlIGZvciBhIGdpdmVuIHRpbWUgZmllbGQsIG9yIHJldHVybiB0aGUgZ2l2ZW4gZGVmYXVsdAorICAgICAqIHZhbHVlIGlmIHRoZSBmaWVsZCBpcyBub3Qgc2V0LiAgVGhpcyBpcyBhbiBpbnRlcm5hbCBtZXRob2QgZm9yCisgICAgICogc3ViY2xhc3NlcyB0aGF0IGRvZXMgPGVtPm5vdDwvZW0+IHRyaWdnZXIgYW55IGNhbGN1bGF0aW9ucy4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZSB2YWx1ZSB0byByZXR1cm4gaWYgZmllbGQgaXMgbm90IHNldAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZCBvZiBkZWZhdWx0VmFsdWUgaWYgdGhlCisgICAgICogZmllbGQgaXMgdW5zZXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGludGVybmFsR2V0KGludCBmaWVsZCwgaW50IGRlZmF1bHRWYWx1ZSkgeworICAgICAgICByZXR1cm4gKHN0YW1wW2ZpZWxkXSA+IFVOU0VUKSA/IGZpZWxkc1tmaWVsZF0gOiBkZWZhdWx0VmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZSBmaWVsZCB3aXRoIHRoZSBnaXZlbiB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBiZSBzZXQgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChpbnQgZmllbGQsIGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChhcmVGaWVsZHNWaXJ0dWFsbHlTZXQpIHsKKyAgICAgICAgICAgIGNvbXB1dGVGaWVsZHMoKTsKKyAgICAgICAgfQorICAgICAgICBmaWVsZHNbZmllbGRdID0gdmFsdWU7CisgICAgICAgIHN0YW1wW2ZpZWxkXSA9IG5leHRTdGFtcCsrOworICAgICAgICBpc1RpbWVTZXQgPSBhcmVGaWVsZHNTZXQgPSBhcmVGaWVsZHNWaXJ0dWFsbHlTZXQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZXMgZm9yIHRoZSBmaWVsZHMgeWVhciwgbW9udGgsIGFuZCBkYXRlLgorICAgICAqIFByZXZpb3VzIHZhbHVlcyBvZiBvdGhlciBmaWVsZHMgYXJlIHJldGFpbmVkLiAgSWYgdGhpcyBpcyBub3QgZGVzaXJlZCwKKyAgICAgKiBjYWxsIDxjb2RlPmNsZWFyPC9jb2RlPiBmaXJzdC4KKyAgICAgKiBAcGFyYW0geWVhciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFlFQVIgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBNT05USCB0aW1lIGZpZWxkLgorICAgICAqIE1vbnRoIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBEQVRFIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKQorICAgIHsKKyAgICAgICAgc2V0KFlFQVIsIHllYXIpOworICAgICAgICBzZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgc2V0KERBVEUsIGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHZhbHVlcyBmb3IgdGhlIGZpZWxkcyB5ZWFyLCBtb250aCwgZGF0ZSwgaG91ciwgYW5kIG1pbnV0ZS4KKyAgICAgKiBQcmV2aW91cyB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIGFyZSByZXRhaW5lZC4gIElmIHRoaXMgaXMgbm90IGRlc2lyZWQsCisgICAgICogY2FsbCA8Y29kZT5jbGVhcjwvY29kZT4gZmlyc3QuCisgICAgICogQHBhcmFtIHllYXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBZRUFSIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTU9OVEggdGltZSBmaWVsZC4KKyAgICAgKiBNb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgREFURSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBob3VyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgSE9VUl9PRl9EQVkgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbWludXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTUlOVVRFIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0KGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwgaW50IG1pbnV0ZSkKKyAgICB7CisgICAgICAgIHNldChZRUFSLCB5ZWFyKTsKKyAgICAgICAgc2V0KE1PTlRILCBtb250aCk7CisgICAgICAgIHNldChEQVRFLCBkYXRlKTsKKyAgICAgICAgc2V0KEhPVVJfT0ZfREFZLCBob3VyKTsKKyAgICAgICAgc2V0KE1JTlVURSwgbWludXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZXMgZm9yIHRoZSBmaWVsZHMgeWVhciwgbW9udGgsIGRhdGUsIGhvdXIsIG1pbnV0ZSwgYW5kIHNlY29uZC4KKyAgICAgKiBQcmV2aW91cyB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIGFyZSByZXRhaW5lZC4gIElmIHRoaXMgaXMgbm90IGRlc2lyZWQsCisgICAgICogY2FsbCA8Y29kZT5jbGVhcjwvY29kZT4gZmlyc3QuCisgICAgICogQHBhcmFtIHllYXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBZRUFSIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTU9OVEggdGltZSBmaWVsZC4KKyAgICAgKiBNb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgREFURSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBob3VyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgSE9VUl9PRl9EQVkgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbWludXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTUlOVVRFIHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIHNlY29uZCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFNFQ09ORCB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldChpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsIGludCBtaW51dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzZWNvbmQpCisgICAgeworICAgICAgICBzZXQoWUVBUiwgeWVhcik7CisgICAgICAgIHNldChNT05USCwgbW9udGgpOworICAgICAgICBzZXQoREFURSwgZGF0ZSk7CisgICAgICAgIHNldChIT1VSX09GX0RBWSwgaG91cik7CisgICAgICAgIHNldChNSU5VVEUsIG1pbnV0ZSk7CisgICAgICAgIHNldChTRUNPTkQsIHNlY29uZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xlYXJzIHRoZSB2YWx1ZXMgb2YgYWxsIHRoZSB0aW1lIGZpZWxkcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBjbGVhcigpCisgICAgeworICAgICAgICBmb3IgKGludCBpPTA7IGk8ZmllbGRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBmaWVsZHNbaV0gPSBzdGFtcFtpXSA9IDA7IC8vIFVOU0VUID09IDAKKyAgICAgICAgfQorICAgICAgICBpc1RpbWVTZXQgPSBhcmVGaWVsZHNTZXQgPSBhcmVBbGxGaWVsZHNTZXQgPSBhcmVGaWVsZHNWaXJ0dWFsbHlTZXQgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDbGVhcnMgdGhlIHZhbHVlIGluIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgdGltZSBmaWVsZCB0byBiZSBjbGVhcmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIGNsZWFyKGludCBmaWVsZCkKKyAgICB7CisgICAgICAgIGlmIChhcmVGaWVsZHNWaXJ0dWFsbHlTZXQpIHsKKyAgICAgICAgICAgIGNvbXB1dGVGaWVsZHMoKTsKKyAgICAgICAgfQorICAgICAgICBmaWVsZHNbZmllbGRdID0gMDsKKyAgICAgICAgc3RhbXBbZmllbGRdID0gVU5TRVQ7CisgICAgICAgIGlzVGltZVNldCA9IGFyZUZpZWxkc1NldCA9IGFyZUFsbEZpZWxkc1NldCA9IGFyZUZpZWxkc1ZpcnR1YWxseVNldCA9IGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIHRpbWUgZmllbGQgaGFzIGEgdmFsdWUgc2V0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gdGltZSBmaWVsZCBoYXMgYSB2YWx1ZSBzZXQ7IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgYm9vbGVhbiBpc1NldChpbnQgZmllbGQpCisgICAgeworICAgICAgICByZXR1cm4gYXJlRmllbGRzVmlydHVhbGx5U2V0IHx8IChzdGFtcFtmaWVsZF0gIT0gVU5TRVQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbGxzIGluIGFueSB1bnNldCBmaWVsZHMgaW4gdGhlIHRpbWUgZmllbGQgbGlzdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjb21wbGV0ZSgpCisgICAgeworICAgICAgICBpZiAoIWlzVGltZVNldCkgdXBkYXRlVGltZSgpOworICAgICAgICBpZiAoIWFyZUZpZWxkc1NldCkgeworICAgICAgICAgICAgY29tcHV0ZUZpZWxkcygpOyAvLyBmaWxscyBpbiB1bnNldCBmaWVsZHMKKyAgICAgICAgICAgIGFyZUZpZWxkc1NldCA9IHRydWU7CisgICAgICAgICAgICBhcmVBbGxGaWVsZHNTZXQgPSB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhpcyBjYWxlbmRhciB0byB0aGUgc3BlY2lmaWVkIG9iamVjdC4KKyAgICAgKiBUaGUgcmVzdWx0IGlzIDxjb2RlPnRydWU8L2NvZGU+IGlmIGFuZCBvbmx5IGlmIHRoZSBhcmd1bWVudCBpcworICAgICAqIG5vdCA8Y29kZT5udWxsPC9jb2RlPiBhbmQgaXMgYSA8Y29kZT5DYWxlbmRhcjwvY29kZT4gb2JqZWN0IHRoYXQKKyAgICAgKiByZXByZXNlbnRzIHRoZSBzYW1lIGNhbGVuZGFyIGFzIHRoaXMgb2JqZWN0LgorICAgICAqIEBwYXJhbSBvYmogdGhlIG9iamVjdCB0byBjb21wYXJlIHdpdGguCisgICAgICogQHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgb2JqZWN0cyBhcmUgdGhlIHNhbWU7CisgICAgICogPGNvZGU+ZmFsc2U8L2NvZGU+IG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAodGhpcyA9PSBvYmopIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmICh0aGlzLmdldENsYXNzKCkgIT0gb2JqLmdldENsYXNzKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIENhbGVuZGFyIHRoYXQgPSAoQ2FsZW5kYXIpIG9iajsKKworICAgICAgICByZXR1cm4gaXNFcXVpdmFsZW50VG8odGhhdCkgJiYKKyAgICAgICAgICAgIGdldFRpbWVJbk1pbGxpcygpID09IHRoYXQuZ2V0VGltZSgpLmdldFRpbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIENhbGVuZGFyIG9iamVjdCBpcyBlcXVpdmFsZW50IHRvIHRoaXMKKyAgICAgKiBvbmUuICBBbiBlcXVpdmFsZW50IENhbGVuZGFyIHdpbGwgYmVoYXZlIGV4YWN0bHkgYXMgdGhpcyBvbmUKKyAgICAgKiBkb2VzLCBidXQgaXQgbWF5IGJlIHNldCB0byBhIGRpZmZlcmVudCB0aW1lLiAgQnkgY29udHJhc3QsIGZvcgorICAgICAqIHRoZSBlcXVhbHMoKSBtZXRob2QgdG8gcmV0dXJuIHRydWUsIHRoZSBvdGhlciBDYWxlbmRhciBtdXN0CisgICAgICogYmUgc2V0IHRvIHRoZSBzYW1lIHRpbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgdGhlIENhbGVuZGFyIHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcyBDYWxlbmRhcgorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzRXF1aXZhbGVudFRvKENhbGVuZGFyIG90aGVyKSB7CisgICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzKCkgPT0gb3RoZXIuZ2V0Q2xhc3MoKSAmJgorICAgICAgICAgICAgaXNMZW5pZW50KCkgPT0gb3RoZXIuaXNMZW5pZW50KCkgJiYKKyAgICAgICAgICAgIGdldEZpcnN0RGF5T2ZXZWVrKCkgPT0gb3RoZXIuZ2V0Rmlyc3REYXlPZldlZWsoKSAmJgorICAgICAgICAgICAgZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpID09IG90aGVyLmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSAmJgorICAgICAgICAgICAgZ2V0VGltZVpvbmUoKS5lcXVhbHMob3RoZXIuZ2V0VGltZVpvbmUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGhhc2ggY29kZSBmb3IgdGhpcyBjYWxlbmRhci4KKyAgICAgKiBAcmV0dXJuIGEgaGFzaCBjb2RlIHZhbHVlIGZvciB0aGlzIG9iamVjdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICAvKiBEb24ndCBpbmNsdWRlIHRoZSB0aW1lIGJlY2F1c2UgKGEpIHdlIGRvbid0IHdhbnQgdGhlIGhhc2ggdmFsdWUgdG8KKyAgICAgICAgICogbW92ZSBhcm91bmQganVzdCBiZWNhdXNlIGEgY2FsZW5kYXIgaXMgc2V0IHRvIGRpZmZlcmVudCB0aW1lcywgYW5kCisgICAgICAgICAqIChiKSB3ZSBkb24ndCB3YW50IHRvIHRyaWdnZXIgYSB0aW1lIGNvbXB1dGF0aW9uIGp1c3QgdG8gZ2V0IGEgaGFzaC4KKyAgICAgICAgICogTm90ZSB0aGF0IGl0IGlzIG5vdCBuZWNlc3NhcnkgZm9yIHVuZXF1YWwgb2JqZWN0cyB0byBhbHdheXMgaGF2ZQorICAgICAgICAgKiB1bmVxdWFsIGhhc2hlcywgYnV0IGVxdWFsIG9iamVjdHMgbXVzdCBoYXZlIGVxdWFsIGhhc2hlcy4gICovCisgICAgICAgIHJldHVybiAobGVuaWVudCA/IDEgOiAwKQorICAgICAgICAgICAgfCAoZmlyc3REYXlPZldlZWsgPDwgMSkKKyAgICAgICAgICAgIHwgKG1pbmltYWxEYXlzSW5GaXJzdFdlZWsgPDwgNCkKKyAgICAgICAgICAgIHwgKHpvbmUuaGFzaENvZGUoKSA8PCA3KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4gdGhlIG1vbWVudCB0aGlzCisgICAgICogY2FsZW5kYXIgaXMgc2V0IHRvIGFuZCB0aGUgbW9tZW50IHRoZSBnaXZlbiBjYWxlbmRhciBvciBEYXRlIG9iamVjdAorICAgICAqIGlzIHNldCB0by4KKyAgICAgKi8KKyAgICBwcml2YXRlIGxvbmcgY29tcGFyZShPYmplY3QgdGhhdCkgeworICAgICAgICBsb25nIHRoYXRNczsKKyAgICAgICAgaWYgKHRoYXQgaW5zdGFuY2VvZiBDYWxlbmRhcikgeworICAgICAgICAgICAgdGhhdE1zID0gKChDYWxlbmRhcil0aGF0KS5nZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgfSBlbHNlIGlmICh0aGF0IGluc3RhbmNlb2YgRGF0ZSkgeworICAgICAgICAgICAgdGhhdE1zID0gKChEYXRlKXRoYXQpLmdldFRpbWUoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24odGhhdCArICJpcyBub3QgYSBDYWxlbmRhciBvciBEYXRlIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldFRpbWVJbk1pbGxpcygpIC0gdGhhdE1zOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIHRoZSB0aW1lIGZpZWxkIHJlY29yZHMuCisgICAgICogRXF1aXZhbGVudCB0byBjb21wYXJpbmcgcmVzdWx0IG9mIGNvbnZlcnNpb24gdG8gVVRDLgorICAgICAqIEBwYXJhbSB3aGVuIHRoZSBDYWxlbmRhciB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMgQ2FsZW5kYXIuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjdXJyZW50IHRpbWUgb2YgdGhpcyBDYWxlbmRhciBpcyBiZWZvcmUKKyAgICAgKiB0aGUgdGltZSBvZiBDYWxlbmRhciB3aGVuOyBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gYmVmb3JlKE9iamVjdCB3aGVuKSB7CisgICAgICAgIHJldHVybiBjb21wYXJlKHdoZW4pIDwgMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgdGltZSBmaWVsZCByZWNvcmRzLgorICAgICAqIEVxdWl2YWxlbnQgdG8gY29tcGFyaW5nIHJlc3VsdCBvZiBjb252ZXJzaW9uIHRvIFVUQy4KKyAgICAgKiBAcGFyYW0gd2hlbiB0aGUgQ2FsZW5kYXIgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzIENhbGVuZGFyLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY3VycmVudCB0aW1lIG9mIHRoaXMgQ2FsZW5kYXIgaXMgYWZ0ZXIKKyAgICAgKiB0aGUgdGltZSBvZiBDYWxlbmRhciB3aGVuOyBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gYWZ0ZXIoT2JqZWN0IHdoZW4pIHsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmUod2hlbikgPiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWF4aW11bSB2YWx1ZSB0aGF0IHRoaXMgZmllbGQgY291bGQgaGF2ZSwgZ2l2ZW4gdGhlCisgICAgICogY3VycmVudCBkYXRlLiAgRm9yIGV4YW1wbGUsIHdpdGggdGhlIEdyZWdvcmlhbiBkYXRlIEZlYnJ1YXJ5IDMsIDE5OTcKKyAgICAgKiBhbmQgdGhlIHtAbGluayAjREFZX09GX01PTlRIIERBWV9PRl9NT05USH0gZmllbGQsIHRoZSBhY3R1YWwgbWF4aW11bQorICAgICAqIGlzIDI4OyBmb3IgRmVicnVhcnkgMywgMTk5NiBpdCBpcyAyOS4KKyAgICAgKgorICAgICAqIDxwPlRoZSBhY3R1YWwgbWF4aW11bSBjb21wdXRhdGlvbiBpZ25vcmVzIHNtYWxsZXIgZmllbGRzIGFuZCB0aGUKKyAgICAgKiBjdXJyZW50IHZhbHVlIG9mIGxpa2Utc2l6ZWQgZmllbGRzLiAgRm9yIGV4YW1wbGUsIHRoZSBhY3R1YWwgbWF4aW11bQorICAgICAqIG9mIHRoZSBEQVlfT0ZfWUVBUiBvciBNT05USCBkZXBlbmRzIG9ubHkgb24gdGhlIHllYXIgYW5kIHN1cHJhLXllYXIKKyAgICAgKiBmaWVsZHMuICBUaGUgYWN0dWFsIG1heGltdW0gb2YgdGhlIERBWV9PRl9NT05USCBkZXBlbmRzLCBpbgorICAgICAqIGFkZGl0aW9uLCBvbiB0aGUgTU9OVEggZmllbGQgYW5kIGFueSBvdGhlciBmaWVsZHMgYXQgdGhhdAorICAgICAqIGdyYW51bGFyaXR5IChzdWNoIGFzIENoaW5lc2VDYWxlbmRhci5JU19MRUFQX01PTlRIKS4gIFRoZQorICAgICAqIERBWV9PRl9XRUVLX0lOX01PTlRIIGZpZWxkIGRvZXMgbm90IGRlcGVuZCBvbiB0aGUgY3VycmVudAorICAgICAqIERBWV9PRl9XRUVLOyBpdCByZXR1cm5zIHRoZSBtYXhpbXVtIGZvciBhbnkgZGF5IG9mIHdlZWsgaW4gdGhlCisgICAgICogY3VycmVudCBtb250aC4gIExpa2V3aXNlIGZvciB0aGUgV0VFS19PRl9NT05USCBhbmQgV0VFS19PRl9ZRUFSCisgICAgICogZmllbGRzLgorICAgICAqCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBmaWVsZCB3aG9zZSBtYXhpbXVtIGlzIGRlc2lyZWQKKyAgICAgKiBAcmV0dXJuIHRoZSBtYXhpbXVtIG9mIHRoZSBnaXZlbiBmaWVsZCBmb3IgdGhlIGN1cnJlbnQgZGF0ZSBvZiB0aGlzIGNhbGVuZGFyCisgICAgICogQHNlZSAjZ2V0TWF4aW11bQorICAgICAqIEBzZWUgI2dldExlYXN0TWF4aW11bQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWN0dWFsTWF4aW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgaW50IHJlc3VsdDsKKworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgREFZX09GX01PTlRIOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIENhbGVuZGFyIGNhbCA9IChDYWxlbmRhcikgY2xvbmUoKTsKKyAgICAgICAgICAgICAgICBjYWwucHJlcGFyZUdldEFjdHVhbChmaWVsZCwgZmFsc2UpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGhhbmRsZUdldE1vbnRoTGVuZ3RoKGNhbC5nZXQoRVhURU5ERURfWUVBUiksIGNhbC5nZXQoTU9OVEgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgREFZX09GX1lFQVI6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gKENhbGVuZGFyKSBjbG9uZSgpOworICAgICAgICAgICAgICAgIGNhbC5wcmVwYXJlR2V0QWN0dWFsKGZpZWxkLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gaGFuZGxlR2V0WWVhckxlbmd0aChjYWwuZ2V0KEVYVEVOREVEX1lFQVIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgREFZX09GX1dFRUs6CisgICAgICAgIGNhc2UgQU1fUE06CisgICAgICAgIGNhc2UgSE9VUjoKKyAgICAgICAgY2FzZSBIT1VSX09GX0RBWToKKyAgICAgICAgY2FzZSBNSU5VVEU6CisgICAgICAgIGNhc2UgU0VDT05EOgorICAgICAgICBjYXNlIE1JTExJU0VDT05EOgorICAgICAgICBjYXNlIFpPTkVfT0ZGU0VUOgorICAgICAgICBjYXNlIERTVF9PRkZTRVQ6CisgICAgICAgIGNhc2UgRE9XX0xPQ0FMOgorICAgICAgICBjYXNlIEpVTElBTl9EQVk6CisgICAgICAgIGNhc2UgTUlMTElTRUNPTkRTX0lOX0RBWToKKyAgICAgICAgICAgIC8vIFRoZXNlIGZpZWxkcyBhbGwgaGF2ZSBmaXhlZCBtaW5pbWEvbWF4aW1hCisgICAgICAgICAgICByZXN1bHQgPSBnZXRNYXhpbXVtKGZpZWxkKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAvLyBGb3IgYWxsIG90aGVyIGZpZWxkcywgZG8gaXQgdGhlIGhhcmQgd2F5Li4uLgorICAgICAgICAgICAgcmVzdWx0ID0gZ2V0QWN0dWFsSGVscGVyKGZpZWxkLCBnZXRMZWFzdE1heGltdW0oZmllbGQpLCBnZXRNYXhpbXVtKGZpZWxkKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWluaW11bSB2YWx1ZSB0aGF0IHRoaXMgZmllbGQgY291bGQgaGF2ZSwgZ2l2ZW4gdGhlIGN1cnJlbnQgZGF0ZS4KKyAgICAgKiBGb3IgbW9zdCBmaWVsZHMsIHRoaXMgaXMgdGhlIHNhbWUgYXMge0BsaW5rICNnZXRNaW5pbXVtIGdldE1pbmltdW19CisgICAgICogYW5kIHtAbGluayAjZ2V0R3JlYXRlc3RNaW5pbXVtIGdldEdyZWF0ZXN0TWluaW11bX0uICBIb3dldmVyLCBzb21lIGZpZWxkcywKKyAgICAgKiBlc3BlY2lhbGx5IHRob3NlIHJlbGF0ZWQgdG8gd2VlayBudW1iZXIsIGFyZSBtb3JlIGNvbXBsaWNhdGVkLgorICAgICAqIDxwPgorICAgICAqIEZvciBleGFtcGxlLCBhc3N1bWUge0BsaW5rICNnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrIGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWt9CisgICAgICogcmV0dXJucyA0IGFuZCB7QGxpbmsgI2dldEZpcnN0RGF5T2ZXZWVrIGdldEZpcnN0RGF5T2ZXZWVrfSByZXR1cm5zIFNVTkRBWS4KKyAgICAgKiBJZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBtb250aCBpcyBTdW5kYXksIE1vbmRheSwgVHVlc2RheSwgb3IgV2VkbmVzZGF5CisgICAgICogdGhlcmUgd2lsbCBiZSBmb3VyIG9yIG1vcmUgZGF5cyBpbiB0aGUgZmlyc3Qgd2Vlaywgc28gaXQgd2lsbCBiZSB3ZWVrIG51bWJlciAxLAorICAgICAqIGFuZCA8Y29kZT5nZXRBY3R1YWxNaW5pbXVtKFdFRUtfT0ZfTU9OVEgpPC9jb2RlPiB3aWxsIHJldHVybiAxLiAgSG93ZXZlciwKKyAgICAgKiBpZiB0aGUgZmlyc3Qgb2YgdGhlIG1vbnRoIGlzIGEgVGh1cnNkYXksIEZyaWRheSwgb3IgU2F0dXJkYXksIHRoZXJlIGFyZQorICAgICAqIDxlbT5ub3Q8L2VtPiBmb3VyIGRheXMgaW4gdGhhdCB3ZWVrLCBzbyBpdCBpcyB3ZWVrIG51bWJlciAwLCBhbmQKKyAgICAgKiA8Y29kZT5nZXRBY3R1YWxNaW5pbXVtKFdFRUtfT0ZfTU9OVEgpPC9jb2RlPiB3aWxsIHJldHVybiAwLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZmllbGQgd2hvc2UgYWN0dWFsIG1pbmltdW0gdmFsdWUgaXMgZGVzaXJlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaW5pbXVtIG9mIHRoZSBnaXZlbiBmaWVsZCBmb3IgdGhlIGN1cnJlbnQgZGF0ZSBvZiB0aGlzIGNhbGVuZGFyCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRNaW5pbXVtCisgICAgICogQHNlZSAjZ2V0R3JlYXRlc3RNaW5pbXVtCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRBY3R1YWxNaW5pbXVtKGludCBmaWVsZCkgeworICAgICAgICBpbnQgcmVzdWx0OworCisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBEQVlfT0ZfV0VFSzoKKyAgICAgICAgY2FzZSBBTV9QTToKKyAgICAgICAgY2FzZSBIT1VSOgorICAgICAgICBjYXNlIEhPVVJfT0ZfREFZOgorICAgICAgICBjYXNlIE1JTlVURToKKyAgICAgICAgY2FzZSBTRUNPTkQ6CisgICAgICAgIGNhc2UgTUlMTElTRUNPTkQ6CisgICAgICAgIGNhc2UgWk9ORV9PRkZTRVQ6CisgICAgICAgIGNhc2UgRFNUX09GRlNFVDoKKyAgICAgICAgY2FzZSBET1dfTE9DQUw6CisgICAgICAgIGNhc2UgSlVMSUFOX0RBWToKKyAgICAgICAgY2FzZSBNSUxMSVNFQ09ORFNfSU5fREFZOgorICAgICAgICAgICAgLy8gVGhlc2UgZmllbGRzIGFsbCBoYXZlIGZpeGVkIG1pbmltYS9tYXhpbWEKKyAgICAgICAgICAgIHJlc3VsdCA9IGdldE1pbmltdW0oZmllbGQpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIEZvciBhbGwgb3RoZXIgZmllbGRzLCBkbyBpdCB0aGUgaGFyZCB3YXkuLi4uCisgICAgICAgICAgICByZXN1bHQgPSBnZXRBY3R1YWxIZWxwZXIoZmllbGQsIGdldEdyZWF0ZXN0TWluaW11bShmaWVsZCksIGdldE1pbmltdW0oZmllbGQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJlcGFyZSB0aGlzIGNhbGVuZGFyIGZvciBjb21wdXRpbmcgdGhlIGFjdHVhbCBtaW5pbXVtIG9yIG1heGltdW0uCisgICAgICogVGhpcyBtZXRob2QgbW9kaWZpZXMgdGhpcyBjYWxlbmRhcidzIGZpZWxkczsgaXQgaXMgY2FsbGVkIG9uIGEKKyAgICAgKiB0ZW1wb3JhcnkgY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiA8cD5SYXRpb25hbGU6IFRoZSBzZW1hbnRpY3Mgb2YgZ2V0QWN0dWFsWHh4KCkgaXMgdG8gcmV0dXJuIHRoZQorICAgICAqIG1heGltdW0gb3IgbWluaW11bSB2YWx1ZSB0aGF0IHRoZSBnaXZlbiBmaWVsZCBjYW4gdGFrZSwgdGFraW5nIGludG8KKyAgICAgKiBhY2NvdW50IG90aGVyIHJlbGV2YW50IGZpZWxkcy4gIEluIGdlbmVyYWwgdGhlc2Ugb3RoZXIgZmllbGRzIGFyZQorICAgICAqIGxhcmdlciBmaWVsZHMuICBGb3IgZXhhbXBsZSwgd2hlbiBjb21wdXRpbmcgdGhlIGFjdHVhbCBtYXhpbXVtCisgICAgICogREFZX09GX01PTlRILCB0aGUgY3VycmVudCB2YWx1ZSBvZiBEQVlfT0ZfTU9OVEggaXRzZWxmIGlzIGlnbm9yZWQsCisgICAgICogYXMgaXMgdGhlIHZhbHVlIG9mIGFueSBmaWVsZCBzbWFsbGVyLgorICAgICAqCisgICAgICogPHA+VGhlIHRpbWUgZmllbGRzIGFsbCBoYXZlIGZpeGVkIG1pbmltYSBhbmQgbWF4aW1hLCBzbyB3ZSBkb24ndAorICAgICAqIG5lZWQgdG8gd29ycnkgYWJvdXQgdGhlbS4gIFRoaXMgYWxzbyBsZXRzIHVzIHNldCB0aGUKKyAgICAgKiBNSUxMSVNFQ09ORFNfSU5fREFZIHRvIHplcm8gdG8gZXJhc2UgYW55IGVmZmVjdHMgdGhlIHRpbWUgZmllbGRzCisgICAgICogbWlnaHQgaGF2ZSB3aGVuIGNvbXB1dGluZyBkYXRlIGZpZWxkcy4KKyAgICAgKgorICAgICAqIDxwPkRBWV9PRl9XRUVLIGlzIGFkanVzdGVkIHNwZWNpYWxseSBmb3IgdGhlIFdFRUtfT0ZfTU9OVEggYW5kCisgICAgICogV0VFS19PRl9ZRUFSIGZpZWxkcyB0byBlbnN1cmUgdGhhdCB0aGV5IGFyZSBjb21wdXRlZCBjb3JyZWN0bHkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgcHJlcGFyZUdldEFjdHVhbChpbnQgZmllbGQsIGJvb2xlYW4gaXNNaW5pbXVtKSB7CisgICAgICAgIHNldChNSUxMSVNFQ09ORFNfSU5fREFZLCAwKTsKKworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgWUVBUjoKKyAgICAgICAgY2FzZSBZRUFSX1dPWToKKyAgICAgICAgY2FzZSBFWFRFTkRFRF9ZRUFSOgorICAgICAgICAgICAgc2V0KERBWV9PRl9ZRUFSLCBnZXRHcmVhdGVzdE1pbmltdW0oREFZX09GX1lFQVIpKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTU9OVEg6CisgICAgICAgICAgICBzZXQoREFZX09GX01PTlRILCBnZXRHcmVhdGVzdE1pbmltdW0oREFZX09GX01PTlRIKSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERBWV9PRl9XRUVLX0lOX01PTlRIOgorICAgICAgICAgICAgLy8gRm9yIGRvd2ltLCB0aGUgbWF4aW11bSBvY2N1cnMgZm9yIHRoZSBET1cgb2YgdGhlIGZpcnN0IG9mIHRoZQorICAgICAgICAgICAgLy8gbW9udGguCisgICAgICAgICAgICBzZXQoREFZX09GX01PTlRILCAxKTsKKyAgICAgICAgICAgIHNldChEQVlfT0ZfV0VFSywgZ2V0KERBWV9PRl9XRUVLKSk7IC8vIE1ha2UgdGhpcyB1c2VyIHNldAorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBXRUVLX09GX01PTlRIOgorICAgICAgICBjYXNlIFdFRUtfT0ZfWUVBUjoKKyAgICAgICAgICAgIC8vIElmIHdlJ3JlIGNvdW50aW5nIHdlZWtzLCBzZXQgdGhlIGRheSBvZiB0aGUgd2VlayB0byBlaXRoZXIgdGhlCisgICAgICAgICAgICAvLyBmaXJzdCBvciBsYXN0IGxvY2FsaXplZCBET1cuICBXZSBrbm93IHRoZSBsYXN0IHdlZWsgb2YgYSBtb250aAorICAgICAgICAgICAgLy8gb3IgeWVhciB3aWxsIGNvbnRhaW4gdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlaywgYW5kIHRoYXQgdGhlCisgICAgICAgICAgICAvLyBmaXJzdCB3ZWVrIHdpbGwgY29udGFpbiB0aGUgbGFzdCBET1cuCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IGRvdyA9IGZpcnN0RGF5T2ZXZWVrOworICAgICAgICAgICAgICAgIGlmIChpc01pbmltdW0pIHsKKyAgICAgICAgICAgICAgICAgICAgZG93ID0gKGRvdyArIDYpICUgNzsgLy8gc2V0IHRvIGxhc3QgRE9XCisgICAgICAgICAgICAgICAgICAgIGlmIChkb3cgPCBTVU5EQVkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvdyArPSA3OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldChEQVlfT0ZfV0VFSywgZG93KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgLy8gRG8gdGhpcyBsYXN0IHRvIGdpdmUgaXQgdGhlIG5ld2VzdCB0aW1lIHN0YW1wCisgICAgICAgIHNldChmaWVsZCwgZ2V0R3JlYXRlc3RNaW5pbXVtKGZpZWxkKSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgZ2V0QWN0dWFsSGVscGVyKGludCBmaWVsZCwgaW50IHN0YXJ0VmFsdWUsIGludCBlbmRWYWx1ZSkgeworCisgICAgICAgIGlmIChzdGFydFZhbHVlID09IGVuZFZhbHVlKSB7CisgICAgICAgICAgICAvLyBpZiB3ZSBrbm93IHRoYXQgdGhlIG1heGltdW0gdmFsdWUgaXMgYWx3YXlzIHRoZSBzYW1lLCBqdXN0IHJldHVybiBpdAorICAgICAgICAgICAgcmV0dXJuIHN0YXJ0VmFsdWU7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBpbnQgZGVsdGEgPSAoZW5kVmFsdWUgPiBzdGFydFZhbHVlKSA/IDEgOiAtMTsKKworICAgICAgICAvLyBjbG9uZSB0aGUgY2FsZW5kYXIgc28gd2UgZG9uJ3QgbWVzcyB3aXRoIHRoZSByZWFsIG9uZSwgYW5kIHNldCBpdCB0bworICAgICAgICAvLyBhY2NlcHQgYW55dGhpbmcgZm9yIHRoZSBmaWVsZCB2YWx1ZXMKKyAgICAgICAgQ2FsZW5kYXIgd29yayA9IChDYWxlbmRhcikgY2xvbmUoKTsKKyAgICAgICAgd29yay5zZXRMZW5pZW50KHRydWUpOworICAgICAgICB3b3JrLnByZXBhcmVHZXRBY3R1YWwoZmllbGQsIGRlbHRhIDwgMCk7CisKKyAgICAgICAgLy8gbm93IHRyeSBlYWNoIHZhbHVlIGZyb20gdGhlIHN0YXJ0IHRvIHRoZSBlbmQgb25lIGJ5IG9uZSB1bnRpbAorICAgICAgICAvLyB3ZSBnZXQgYSB2YWx1ZSB0aGF0IG5vcm1hbGl6ZXMgdG8gYW5vdGhlciB2YWx1ZS4gIFRoZSBsYXN0IHZhbHVlIHRoYXQKKyAgICAgICAgLy8gbm9ybWFsaXplcyB0byBpdHNlbGYgaXMgdGhlIGFjdHVhbCBtYXhpbXVtIGZvciB0aGUgY3VycmVudCBkYXRlCisgICAgICAgIGludCByZXN1bHQgPSBzdGFydFZhbHVlOworICAgICAgICBkbyB7CisgICAgICAgICAgICB3b3JrLnNldChmaWVsZCwgc3RhcnRWYWx1ZSk7CisgICAgICAgICAgICBpZiAod29yay5nZXQoZmllbGQpICE9IHN0YXJ0VmFsdWUpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc3RhcnRWYWx1ZTsKKyAgICAgICAgICAgICAgICBzdGFydFZhbHVlICs9IGRlbHRhOworICAgICAgICAgICAgfQorICAgICAgICB9IHdoaWxlIChyZXN1bHQgIT0gZW5kVmFsdWUpOworCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUm9sbHMgKHVwL2Rvd24pIGEgc2luZ2xlIHVuaXQgb2YgdGltZSBvbiB0aGUgZ2l2ZW4gZmllbGQuICBJZiB0aGUKKyAgICAgKiBmaWVsZCBpcyByb2xsZWQgcGFzdCBpdHMgbWF4aW11bSBhbGxvd2FibGUgdmFsdWUsIGl0IHdpbGwgIndyYXAiIGJhY2sKKyAgICAgKiB0byBpdHMgbWluaW11bSBhbmQgY29udGludWUgcm9sbGluZy4gRm9yCisgICAgICogZXhhbXBsZSwgdG8gcm9sbCB0aGUgY3VycmVudCBkYXRlIHVwIGJ5IG9uZSBkYXksIHlvdSBjYW4gY2FsbDoKKyAgICAgKiA8cD4KKyAgICAgKiA8Y29kZT5yb2xsKHtAbGluayAjREFURX0sIHRydWUpPC9jb2RlPgorICAgICAqIDxwPgorICAgICAqIFdoZW4gcm9sbGluZyBvbiB0aGUge0BsaW5rICNZRUFSfSBmaWVsZCwgaXQgd2lsbCByb2xsIHRoZSB5ZWFyCisgICAgICogdmFsdWUgaW4gdGhlIHJhbmdlIGJldHdlZW4gMSBhbmQgdGhlIHZhbHVlIHJldHVybmVkIGJ5IGNhbGxpbmcKKyAgICAgKiB7QGxpbmsgI2dldE1heGltdW0gZ2V0TWF4aW11bX0oe0BsaW5rICNZRUFSfSkuCisgICAgICogPHA+CisgICAgICogV2hlbiByb2xsaW5nIG9uIGNlcnRhaW4gZmllbGRzLCB0aGUgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBtYXkgY29uZmxpY3QgYW5kCisgICAgICogbmVlZCB0byBiZSBjaGFuZ2VkLiAgRm9yIGV4YW1wbGUsIHdoZW4gcm9sbGluZyB0aGUgPGNvZGU+TU9OVEg8L2NvZGU+IGZpZWxkCisgICAgICogZm9yIHRoZSBHcmVnb3JpYW4gZGF0ZSAxLzMxLzk2IHVwd2FyZCwgdGhlIDxjb2RlPkRBWV9PRl9NT05USDwvY29kZT4gZmllbGQKKyAgICAgKiBtdXN0IGJlIGFkanVzdGVkIHNvIHRoYXQgdGhlIHJlc3VsdCBpcyAyLzI5Lzk2IHJhdGhlciB0aGFuIHRoZSBpbnZhbGlkCisgICAgICogMi8zMS85Ni4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gQ2FsbGluZyA8dHQ+cm9sbChmaWVsZCwgdHJ1ZSk8L3R0PiBOIHRpbWVzIGlzIDxlbT5ub3Q8L2VtPgorICAgICAqIG5lY2Vzc2FyaWx5IGVxdWl2YWxlbnQgdG8gY2FsbGluZyA8dHQ+cm9sbChmaWVsZCwgTik8L3R0Pi4gIEZvciBleGFtcGxlLAorICAgICAqIGltYWdpbmUgdGhhdCB5b3Ugc3RhcnQgd2l0aCB0aGUgZGF0ZSBHcmVnb3JpYW4gZGF0ZSBKYW51YXJ5IDMxLCAxOTk1LiAgSWYgeW91IGNhbGwKKyAgICAgKiA8dHQ+cm9sbChDYWxlbmRhci5NT05USCwgMik8L3R0PiwgdGhlIHJlc3VsdCB3aWxsIGJlIE1hcmNoIDMxLCAxOTk1LgorICAgICAqIEJ1dCBpZiB5b3UgY2FsbCA8dHQ+cm9sbChDYWxlbmRhci5NT05USCwgdHJ1ZSk8L3R0PiwgdGhlIHJlc3VsdCB3aWxsIGJlCisgICAgICogRmVicnVhcnkgMjgsIDE5OTUuICBDYWxsaW5nIGl0IG9uZSBtb3JlIHRpbWUgd2lsbCBnaXZlIE1hcmNoIDI4LCAxOTk1LCB3aGljaAorICAgICAqIGlzIHVzdWFsbHkgbm90IHRoZSBkZXNpcmVkIHJlc3VsdC4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gWW91IHNob3VsZCBhbHdheXMgdXNlIDx0dD5yb2xsPC90dD4gYW5kIDx0dD5hZGQ8L3R0PiByYXRoZXIKKyAgICAgKiB0aGFuIGF0dGVtcHRpbmcgdG8gcGVyZm9ybSBhcml0aG1ldGljIG9wZXJhdGlvbnMgZGlyZWN0bHkgb24gdGhlIGZpZWxkcworICAgICAqIG9mIGEgPHR0PkNhbGVuZGFyPC90dD4uICBJdCBpcyBxdWl0ZSBwb3NzaWJsZSBmb3IgPHR0PkNhbGVuZGFyPC90dD4gc3ViY2xhc3NlcworICAgICAqIHRvIGhhdmUgZmllbGRzIHdpdGggbm9uLWxpbmVhciBiZWhhdmlvciwgZm9yIGV4YW1wbGUgbWlzc2luZyBtb250aHMKKyAgICAgKiBvciBkYXlzIGR1cmluZyBub24tbGVhcCB5ZWFycy4gIFRoZSBzdWJjbGFzc2VzJyA8dHQ+YWRkPC90dD4gYW5kIDx0dD5yb2xsPC90dD4KKyAgICAgKiBtZXRob2RzIHdpbGwgdGFrZSB0aGlzIGludG8gYWNjb3VudCwgd2hpbGUgc2ltcGxlIGFyaXRobWV0aWMgbWFuaXB1bGF0aW9ucworICAgICAqIG1heSBnaXZlIGludmFsaWQgcmVzdWx0cy4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgdGhlIGNhbGVuZGFyIGZpZWxkIHRvIHJvbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdXAgICAgaW5kaWNhdGVzIGlmIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHRpbWUgZmllbGQgaXMgdG8gYmUKKyAgICAgKiAgICAgICAgICAgICAgcm9sbGVkIHVwIG9yIHJvbGxlZCBkb3duLiBVc2UgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgcm9sbGluZyB1cCwKKyAgICAgKiAgICAgICAgICAgICAgPGNvZGU+ZmFsc2U8L2NvZGU+IG90aGVyd2lzZS4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGZpZWxkIGlzIGludmFsaWQgb3IgcmVmZXJzCisgICAgICogICAgICAgICAgICAgIHRvIGEgZmllbGQgdGhhdCBjYW5ub3QgYmUgaGFuZGxlZCBieSB0aGlzIG1ldGhvZC4KKyAgICAgKiBAc2VlICNyb2xsKGludCwgaW50KQorICAgICAqIEBzZWUgI2FkZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJvbGwoaW50IGZpZWxkLCBib29sZWFuIHVwKQorICAgIHsKKyAgICAgICAgcm9sbChmaWVsZCwgdXAgPyArMSA6IC0xKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSb2xscyAodXAvZG93bikgYSBzcGVjaWZpZWQgYW1vdW50IHRpbWUgb24gdGhlIGdpdmVuIGZpZWxkLiAgRm9yCisgICAgICogZXhhbXBsZSwgdG8gcm9sbCB0aGUgY3VycmVudCBkYXRlIHVwIGJ5IHRocmVlIGRheXMsIHlvdSBjYW4gY2FsbAorICAgICAqIDxjb2RlPnJvbGwoQ2FsZW5kYXIuREFURSwgMyk8L2NvZGU+LiAgSWYgdGhlCisgICAgICogZmllbGQgaXMgcm9sbGVkIHBhc3QgaXRzIG1heGltdW0gYWxsb3dhYmxlIHZhbHVlLCBpdCB3aWxsICJ3cmFwIiBiYWNrCisgICAgICogdG8gaXRzIG1pbmltdW0gYW5kIGNvbnRpbnVlIHJvbGxpbmcuCisgICAgICogRm9yIGV4YW1wbGUsIGNhbGxpbmcgPGNvZGU+cm9sbChDYWxlbmRhci5EQVRFLCAxMCk8L2NvZGU+CisgICAgICogb24gYSBHcmVnb3JpYW4gY2FsZW5kYXIgc2V0IHRvIDQvMjUvOTYgd2lsbCByZXN1bHQgaW4gdGhlIGRhdGUgNC81Lzk2LgorICAgICAqIDxwPgorICAgICAqIFdoZW4gcm9sbGluZyBvbiBjZXJ0YWluIGZpZWxkcywgdGhlIHZhbHVlcyBvZiBvdGhlciBmaWVsZHMgbWF5IGNvbmZsaWN0IGFuZAorICAgICAqIG5lZWQgdG8gYmUgY2hhbmdlZC4gIEZvciBleGFtcGxlLCB3aGVuIHJvbGxpbmcgdGhlIHtAbGluayAjTU9OVEggTU9OVEh9IGZpZWxkCisgICAgICogZm9yIHRoZSBHcmVnb3JpYW4gZGF0ZSAxLzMxLzk2IGJ5ICsxLCB0aGUge0BsaW5rICNEQVlfT0ZfTU9OVEggREFZX09GX01PTlRIfSBmaWVsZAorICAgICAqIG11c3QgYmUgYWRqdXN0ZWQgc28gdGhhdCB0aGUgcmVzdWx0IGlzIDIvMjkvOTYgcmF0aGVyIHRoYW4gdGhlIGludmFsaWQKKyAgICAgKiAyLzMxLzk2LgorICAgICAqIDxwPgorICAgICAqIFRoZSA8Y29kZT5jb20uaWJtLmljdS51dGlsLkNhbGVuZGFyPC9jb2RlPiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1ldGhvZCBpcyBhYmxlIHRvIHJvbGwKKyAgICAgKiBhbGwgZmllbGRzIGV4Y2VwdCBmb3Ige0BsaW5rICNFUkEgRVJBfSwge0BsaW5rICNEU1RfT0ZGU0VUIERTVF9PRkZTRVR9LAorICAgICAqIGFuZCB7QGxpbmsgI1pPTkVfT0ZGU0VUIFpPTkVfT0ZGU0VUfS4gIFN1YmNsYXNzZXMgbWF5LCBvZiBjb3Vyc2UsIGFkZCBzdXBwb3J0IGZvcgorICAgICAqIGFkZGl0aW9uYWwgZmllbGRzIGluIHRoZWlyIG92ZXJyaWRlcyBvZiA8Y29kZT5yb2xsPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gWW91IHNob3VsZCBhbHdheXMgdXNlIDx0dD5yb2xsPC90dD4gYW5kIDx0dD5hZGQ8L3R0PiByYXRoZXIKKyAgICAgKiB0aGFuIGF0dGVtcHRpbmcgdG8gcGVyZm9ybSBhcml0aG1ldGljIG9wZXJhdGlvbnMgZGlyZWN0bHkgb24gdGhlIGZpZWxkcworICAgICAqIG9mIGEgPHR0PkNhbGVuZGFyPC90dD4uICBJdCBpcyBxdWl0ZSBwb3NzaWJsZSBmb3IgPHR0PkNhbGVuZGFyPC90dD4gc3ViY2xhc3NlcworICAgICAqIHRvIGhhdmUgZmllbGRzIHdpdGggbm9uLWxpbmVhciBiZWhhdmlvciwgZm9yIGV4YW1wbGUgbWlzc2luZyBtb250aHMKKyAgICAgKiBvciBkYXlzIGR1cmluZyBub24tbGVhcCB5ZWFycy4gIFRoZSBzdWJjbGFzc2VzJyA8dHQ+YWRkPC90dD4gYW5kIDx0dD5yb2xsPC90dD4KKyAgICAgKiBtZXRob2RzIHdpbGwgdGFrZSB0aGlzIGludG8gYWNjb3VudCwgd2hpbGUgc2ltcGxlIGFyaXRobWV0aWMgbWFuaXB1bGF0aW9ucworICAgICAqIG1heSBnaXZlIGludmFsaWQgcmVzdWx0cy4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5TdWJjbGFzc2luZzo8L2I+PGJyPgorICAgICAqIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgPGNvZGU+cm9sbDwvY29kZT4gYXNzdW1lcyB0aGF0IHRoZSBiZWhhdmlvciBvZiB0aGUKKyAgICAgKiBmaWVsZCBpcyBjb250aW51b3VzIGJldHdlZW4gaXRzIG1pbmltdW0gYW5kIG1heGltdW0sIHdoaWNoIGFyZSBmb3VuZCBieQorICAgICAqIGNhbGxpbmcge0BsaW5rICNnZXRBY3R1YWxNaW5pbXVtIGdldEFjdHVhbE1pbmltdW19IGFuZCB7QGxpbmsgI2dldEFjdHVhbE1heGltdW0gZ2V0QWN0dWFsTWF4aW11bX0uCisgICAgICogRm9yIG1vc3Qgc3VjaCBmaWVsZHMsIHNpbXBsZSBhZGRpdGlvbiwgc3VidHJhY3Rpb24sIGFuZCBtb2R1bHVzIG9wZXJhdGlvbnMKKyAgICAgKiBhcmUgc3VmZmljaWVudCB0byBwZXJmb3JtIHRoZSByb2xsLiAgRm9yIHdlZWstcmVsYXRlZCBmaWVsZHMsCisgICAgICogdGhlIHJlc3VsdHMgb2Yge0BsaW5rICNnZXRGaXJzdERheU9mV2VlayBnZXRGaXJzdERheU9mV2Vla30gYW5kCisgICAgICoge0BsaW5rICNnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrIGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWt9IGFyZSBhbHNvIG5lY2Vzc2FyeS4KKyAgICAgKiBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSB0aGVzZSB0d28gbWV0aG9kcyBpZiB0aGVpciB2YWx1ZXMgZGlmZmVyIGZyb20gdGhlIGRlZmF1bHRzLgorICAgICAqIDxwPgorICAgICAqIFN1YmNsYXNzZXMgdGhhdCBoYXZlIGZpZWxkcyBmb3Igd2hpY2ggdGhlIGFzc3VtcHRpb24gb2YgY29udGludWl0eSBicmVha3MKKyAgICAgKiBkb3duIG11c3Qgb3ZlcmlkZSA8Y29kZT5yb2xsPC9jb2RlPiB0byBoYW5kbGUgdGhvc2UgZmllbGRzIHNwZWNpYWxseS4KKyAgICAgKiBGb3IgZXhhbXBsZSwgaW4gdGhlIEhlYnJldyBjYWxlbmRhciB0aGUgbW9udGggIkFkYXIgSSIKKyAgICAgKiBvbmx5IG9jY3VycyBpbiBsZWFwIHllYXJzOyBpbiBvdGhlciB5ZWFycyB0aGUgY2FsZW5kYXIganVtcHMgZnJvbQorICAgICAqIFNoZXZhdCAobW9udGggIzQpIHRvIEFkYXIgKG1vbnRoICM2KS4gIFRoZQorICAgICAqIHtAbGluayBIZWJyZXdDYWxlbmRhciNyb2xsIEhlYnJld0NhbGVuZGFyLnJvbGx9IG1ldGhvZCB0YWtlcyB0aGlzIGludG8gYWNjb3VudCwKKyAgICAgKiBzbyB0aGF0IHJvbGxpbmcgdGhlIG1vbnRoIG9mIFNoZXZhdCBieSBvbmUgZ2l2ZXMgdGhlIHByb3BlciByZXN1bHQgKEFkYXIpIGluIGEKKyAgICAgKiBub24tbGVhcCB5ZWFyLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBmaWVsZCAgICAgdGhlIGNhbGVuZGFyIGZpZWxkIHRvIHJvbGwuCisgICAgICogQHBhcmFtIGFtb3VudCAgICB0aGUgYW1vdW50IGJ5IHdoaWNoIHRoZSBmaWVsZCBzaG91bGQgYmUgcm9sbGVkLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZmllbGQgaXMgaW52YWxpZCBvciByZWZlcnMKKyAgICAgKiAgICAgICAgICAgICAgdG8gYSBmaWVsZCB0aGF0IGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgbWV0aG9kLgorICAgICAqIEBzZWUgI3JvbGwoaW50LCBib29sZWFuKQorICAgICAqIEBzZWUgI2FkZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJvbGwoaW50IGZpZWxkLCBpbnQgYW1vdW50KSB7CisKKyAgICAgICAgaWYgKGFtb3VudCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm47IC8vIE5vdGhpbmcgdG8gZG8KKyAgICAgICAgfQorCisgICAgICAgIGNvbXBsZXRlKCk7CisKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIERBWV9PRl9NT05USDoKKyAgICAgICAgY2FzZSBBTV9QTToKKyAgICAgICAgY2FzZSBNSU5VVEU6CisgICAgICAgIGNhc2UgU0VDT05EOgorICAgICAgICBjYXNlIE1JTExJU0VDT05EOgorICAgICAgICBjYXNlIE1JTExJU0VDT05EU19JTl9EQVk6CisgICAgICAgIGNhc2UgRVJBOgorICAgICAgICAgICAgLy8gVGhlc2UgYXJlIHRoZSBzdGFuZGFyZCByb2xsIGluc3RydWN0aW9ucy4gIFRoZXNlIHdvcmsgZm9yIGFsbAorICAgICAgICAgICAgLy8gc2ltcGxlIGNhc2VzLCB0aGF0IGlzLCBjYXNlcyBpbiB3aGljaCB0aGUgbGltaXRzIGFyZSBmaXhlZCwgc3VjaAorICAgICAgICAgICAgLy8gYXMgdGhlIGhvdXIsIHRoZSBkYXkgb2YgdGhlIG1vbnRoLCBhbmQgdGhlIGVyYS4KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgbWluID0gZ2V0QWN0dWFsTWluaW11bShmaWVsZCk7CisgICAgICAgICAgICAgICAgaW50IG1heCA9IGdldEFjdHVhbE1heGltdW0oZmllbGQpOworICAgICAgICAgICAgICAgIGludCBnYXAgPSBtYXggLSBtaW4gKyAxOworCisgICAgICAgICAgICAgICAgaW50IHZhbHVlID0gaW50ZXJuYWxHZXQoZmllbGQpICsgYW1vdW50OworICAgICAgICAgICAgICAgIHZhbHVlID0gKHZhbHVlIC0gbWluKSAlIGdhcDsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlICs9IGdhcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFsdWUgKz0gbWluOworCisgICAgICAgICAgICAgICAgc2V0KGZpZWxkLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgIGNhc2UgSE9VUjoKKyAgICAgICAgY2FzZSBIT1VSX09GX0RBWToKKyAgICAgICAgICAgIC8vIFJvbGxpbmcgdGhlIGhvdXIgaXMgZGlmZmljdWx0IG9uIHRoZSBPTlNFVCBhbmQgQ0VBU0UgZGF5cyBvZgorICAgICAgICAgICAgLy8gZGF5bGlnaHQgc2F2aW5ncy4gIEZvciBleGFtcGxlLCBpZiB0aGUgY2hhbmdlIG9jY3VycyBhdAorICAgICAgICAgICAgLy8gMiBBTSwgd2UgaGF2ZSB0aGUgZm9sbG93aW5nIHByb2dyZXNzaW9uOgorICAgICAgICAgICAgLy8gT05TRVQ6IDEyIFN0ZCAtPiAxIFN0ZCAtPiAzIERzdCAtPiA0IERzdAorICAgICAgICAgICAgLy8gQ0VBU0U6IDEyIERzdCAtPiAxIERzdCAtPiAxIFN0ZCAtPiAyIFN0ZAorICAgICAgICAgICAgLy8gVG8gZ2V0IGFyb3VuZCB0aGlzIHByb2JsZW0gd2UgZG9uJ3QgdXNlIGZpZWxkczsgd2UgbWFuaXB1bGF0ZQorICAgICAgICAgICAgLy8gdGhlIHRpbWUgaW4gbWlsbGlzIGRpcmVjdGx5LgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIEFzc3VtZSBtaW4gPT0gMCBpbiBjYWxjdWxhdGlvbnMgYmVsb3cKKyAgICAgICAgICAgICAgICBsb25nIHN0YXJ0ID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgaW50IG9sZEhvdXIgPSBpbnRlcm5hbEdldChmaWVsZCk7CisgICAgICAgICAgICAgICAgaW50IG1heCA9IGdldE1heGltdW0oZmllbGQpOworICAgICAgICAgICAgICAgIGludCBuZXdIb3VyID0gKG9sZEhvdXIgKyBhbW91bnQpICUgKG1heCArIDEpOworICAgICAgICAgICAgICAgIGlmIChuZXdIb3VyIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBuZXdIb3VyICs9IG1heCArIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyhzdGFydCArIE9ORV9IT1VSICogKG5ld0hvdXIgLSBvbGRIb3VyKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgIGNhc2UgTU9OVEg6CisgICAgICAgICAgICAvLyBSb2xsaW5nIHRoZSBtb250aCBpbnZvbHZlcyBib3RoIHBpbm5pbmcgdGhlIGZpbmFsIHZhbHVlCisgICAgICAgICAgICAvLyBhbmQgYWRqdXN0aW5nIHRoZSBEQVlfT0ZfTU9OVEggaWYgbmVjZXNzYXJ5LiAgV2Ugb25seSBhZGp1c3QgdGhlCisgICAgICAgICAgICAvLyBEQVlfT0ZfTU9OVEggaWYsIGFmdGVyIHVwZGF0aW5nIHRoZSBNT05USCBmaWVsZCwgaXQgaXMgaWxsZWdhbC4KKyAgICAgICAgICAgIC8vIEUuZy4sIDxqYW4zMT4ucm9sbChNT05USCwgMSkgLT4gPGZlYjI4PiBvciA8ZmViMjk+LgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludCBtYXggPSBnZXRBY3R1YWxNYXhpbXVtKE1PTlRIKTsKKyAgICAgICAgICAgICAgICBpbnQgbW9uID0gKGludGVybmFsR2V0KE1PTlRIKSArIGFtb3VudCkgJSAobWF4KzEpOworCisgICAgICAgICAgICAgICAgaWYgKG1vbiA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbW9uICs9IChtYXggKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2V0KE1PTlRILCBtb24pOworCisgICAgICAgICAgICAgICAgLy8gS2VlcCB0aGUgZGF5IG9mIG1vbnRoIGluIHJhbmdlLiAgV2UgZG9uJ3Qgd2FudCB0byBzcGlsbCBvdmVyCisgICAgICAgICAgICAgICAgLy8gaW50byB0aGUgbmV4dCBtb250aDsgZS5nLiwgd2UgZG9uJ3Qgd2FudCBqYW4zMSArIDEgbW8gLT4gZmViMzEgLT4KKyAgICAgICAgICAgICAgICAvLyBtYXIzLgorICAgICAgICAgICAgICAgIHBpbkZpZWxkKERBWV9PRl9NT05USCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgIGNhc2UgWUVBUjoKKyAgICAgICAgY2FzZSBZRUFSX1dPWToKKyAgICAgICAgY2FzZSBFWFRFTkRFRF9ZRUFSOgorICAgICAgICAgICAgLy8gUm9sbGluZyB0aGUgeWVhciBjYW4gaW52b2x2ZSBwaW5uaW5nIHRoZSBEQVlfT0ZfTU9OVEguCisgICAgICAgICAgICBzZXQoZmllbGQsIGludGVybmFsR2V0KGZpZWxkKSArIGFtb3VudCk7CisgICAgICAgICAgICBwaW5GaWVsZChNT05USCk7CisgICAgICAgICAgICBwaW5GaWVsZChEQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGNhc2UgV0VFS19PRl9NT05USDoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHRyaWNreSwgYmVjYXVzZSBkdXJpbmcgdGhlIHJvbGwgd2UgbWF5IGhhdmUgdG8gc2hpZnQKKyAgICAgICAgICAgICAgICAvLyB0byBhIGRpZmZlcmVudCBkYXkgb2YgdGhlIHdlZWsuICBGb3IgZXhhbXBsZToKKworICAgICAgICAgICAgICAgIC8vICAgIHMgIG0gIHQgIHcgIHIgIGYgIHMKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAxICAyICAzICA0ICA1CisgICAgICAgICAgICAgICAgLy8gICAgNiAgNyAgOCAgOSAxMCAxMSAxMgorCisgICAgICAgICAgICAgICAgLy8gV2hlbiByb2xsaW5nIGZyb20gdGhlIDZ0aCBvciA3dGggYmFjayBvbmUgd2Vlaywgd2UgZ28gdG8gdGhlCisgICAgICAgICAgICAgICAgLy8gMXN0IChhc3N1bWluZyB0aGF0IHRoZSBmaXJzdCBwYXJ0aWFsIHdlZWsgY291bnRzKS4gIFRoZSBzYW1lCisgICAgICAgICAgICAgICAgLy8gdGhpbmcgaGFwcGVucyBhdCB0aGUgZW5kIG9mIHRoZSBtb250aC4KKworICAgICAgICAgICAgICAgIC8vIFRoZSBvdGhlciB0cmlja3kgdGhpbmcgaXMgdGhhdCB3ZSBoYXZlIHRvIGZpZ3VyZSBvdXQgd2hldGhlcgorICAgICAgICAgICAgICAgIC8vIHRoZSBmaXJzdCBwYXJ0aWFsIHdlZWsgYWN0dWFsbHkgY291bnRzIG9yIG5vdCwgYmFzZWQgb24gdGhlCisgICAgICAgICAgICAgICAgLy8gbWluaW1hbCBmaXJzdCBkYXlzIGluIHRoZSB3ZWVrLiAgQW5kIHdlIGhhdmUgdG8gdXNlIHRoZQorICAgICAgICAgICAgICAgIC8vIGNvcnJlY3QgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIHRvIGRlbGluZWF0ZSB0aGUgd2VlaworICAgICAgICAgICAgICAgIC8vIGJvdW5kYXJpZXMuCisKKyAgICAgICAgICAgICAgICAvLyBIZXJlJ3Mgb3VyIGFsZ29yaXRobS4gIEZpcnN0LCB3ZSBmaW5kIHRoZSByZWFsIGJvdW5kYXJpZXMgb2YKKyAgICAgICAgICAgICAgICAvLyB0aGUgbW9udGguICBUaGVuIHdlIGRpc2NhcmQgdGhlIGZpcnN0IHBhcnRpYWwgd2VlayBpZiBpdAorICAgICAgICAgICAgICAgIC8vIGRvZXNuJ3QgY291bnQgaW4gdGhpcyBsb2NhbGUuICBUaGVuIHdlIGZpbGwgaW4gdGhlIGVuZHMgd2l0aAorICAgICAgICAgICAgICAgIC8vIHBoYW50b20gZGF5cywgc28gdGhhdCB0aGUgZmlyc3QgcGFydGlhbCB3ZWVrIGFuZCB0aGUgbGFzdAorICAgICAgICAgICAgICAgIC8vIHBhcnRpYWwgd2VlayBhcmUgZnVsbCB3ZWVrcy4gIFdlIHRoZW4gaGF2ZSBhIG5pY2Ugc3F1YXJlCisgICAgICAgICAgICAgICAgLy8gYmxvY2sgb2Ygd2Vla3MuICBXZSBkbyB0aGUgdXN1YWwgcm9sbGluZyB3aXRoaW4gdGhpcyBibG9jaywKKyAgICAgICAgICAgICAgICAvLyBhcyBpcyBkb25lIGVsc2V3aGVyZSBpbiB0aGlzIG1ldGhvZC4gIElmIHdlIHdpbmQgdXAgb24gb25lIG9mCisgICAgICAgICAgICAgICAgLy8gdGhlIHBoYW50b20gZGF5cyB0aGF0IHdlIGFkZGVkLCB3ZSByZWNvZ25pemUgdGhpcyBhbmQgcGluIHRvCisgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IG9yIHRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGguICBFYXN5LCBlaD8KKworICAgICAgICAgICAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgREFZX09GX1dFRUsgc28gdGhhdCAwIGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsKKyAgICAgICAgICAgICAgICAvLyBpbiB0aGlzIGxvY2FsZS4gIFdlIGhhdmUgZG93IGluIDAuLjYuCisgICAgICAgICAgICAgICAgaW50IGRvdyA9IGludGVybmFsR2V0KERBWV9PRl9XRUVLKSAtIGdldEZpcnN0RGF5T2ZXZWVrKCk7CisgICAgICAgICAgICAgICAgaWYgKGRvdyA8IDApIGRvdyArPSA3OworCisgICAgICAgICAgICAgICAgLy8gRmluZCB0aGUgZGF5IG9mIHRoZSB3ZWVrIChub3JtYWxpemVkIGZvciBsb2NhbGUpIGZvciB0aGUgZmlyc3QKKyAgICAgICAgICAgICAgICAvLyBvZiB0aGUgbW9udGguCisgICAgICAgICAgICAgICAgaW50IGZkbSA9IChkb3cgLSBpbnRlcm5hbEdldChEQVlfT0ZfTU9OVEgpICsgMSkgJSA3OworICAgICAgICAgICAgICAgIGlmIChmZG0gPCAwKSBmZG0gKz0gNzsKKworICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgZmlyc3QgZGF5IG9mIHRoZSBmaXJzdCBmdWxsIHdlZWsgb2YgdGhlIG1vbnRoLAorICAgICAgICAgICAgICAgIC8vIGluY2x1ZGluZyBwaGFudG9tIGRheXMsIGlmIGFueS4gIEZpZ3VyZSBvdXQgaWYgdGhlIGZpcnN0IHdlZWsKKyAgICAgICAgICAgICAgICAvLyBjb3VudHMgb3Igbm90OyBpZiBpdCBjb3VudHMsIHRoZW4gZmlsbCBpbiBwaGFudG9tIGRheXMuICBJZgorICAgICAgICAgICAgICAgIC8vIG5vdCwgYWR2YW5jZSB0byB0aGUgZmlyc3QgcmVhbCBmdWxsIHdlZWsgKHNraXAgdGhlIHBhcnRpYWwgd2VlaykuCisgICAgICAgICAgICAgICAgaW50IHN0YXJ0OworICAgICAgICAgICAgICAgIGlmICgoNyAtIGZkbSkgPCBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkpCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gOCAtIGZkbTsgLy8gU2tpcCB0aGUgZmlyc3QgcGFydGlhbCB3ZWVrCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzdGFydCA9IDEgLSBmZG07IC8vIFRoaXMgbWF5IGJlIHplcm8gb3IgbmVnYXRpdmUKKworICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgZGF5IG9mIHRoZSB3ZWVrIChub3JtYWxpemVkIGZvciBsb2NhbGUpIGZvciB0aGUgbGFzdAorICAgICAgICAgICAgICAgIC8vIGRheSBvZiB0aGUgbW9udGguCisgICAgICAgICAgICAgICAgaW50IG1vbnRoTGVuID0gZ2V0QWN0dWFsTWF4aW11bShEQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgICAgIGludCBsZG0gPSAobW9udGhMZW4gLSBpbnRlcm5hbEdldChEQVlfT0ZfTU9OVEgpICsgZG93KSAlIDc7CisgICAgICAgICAgICAgICAgLy8gV2Uga25vdyBtb250aExlbiA+PSBEQVlfT0ZfTU9OVEggc28gd2Ugc2tpcCB0aGUgKz0gNyBzdGVwIGhlcmUuCisKKyAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIGxpbWl0IGRheSBmb3IgdGhlIGJsb2NrZWQtb2ZmIHJlY3Rhbmd1bGFyIG1vbnRoOyB0aGF0CisgICAgICAgICAgICAgICAgLy8gaXMsIHRoZSBkYXkgd2hpY2ggaXMgb25lIHBhc3QgdGhlIGxhc3QgZGF5IG9mIHRoZSBtb250aCwKKyAgICAgICAgICAgICAgICAvLyBhZnRlciB0aGUgbW9udGggaGFzIGFscmVhZHkgYmVlbiBmaWxsZWQgaW4gd2l0aCBwaGFudG9tIGRheXMKKyAgICAgICAgICAgICAgICAvLyB0byBmaWxsIG91dCB0aGUgbGFzdCB3ZWVrLiAgVGhpcyBkYXkgaGFzIGEgbm9ybWFsaXplZCBET1cgb2YgMC4KKyAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSBtb250aExlbiArIDcgLSBsZG07CisKKyAgICAgICAgICAgICAgICAvLyBOb3cgcm9sbCBiZXR3ZWVuIHN0YXJ0IGFuZCAobGltaXQgLSAxKS4KKyAgICAgICAgICAgICAgICBpbnQgZ2FwID0gbGltaXQgLSBzdGFydDsKKyAgICAgICAgICAgICAgICBpbnQgZGF5X29mX21vbnRoID0gKGludGVybmFsR2V0KERBWV9PRl9NT05USCkgKyBhbW91bnQqNyAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCkgJSBnYXA7CisgICAgICAgICAgICAgICAgaWYgKGRheV9vZl9tb250aCA8IDApIGRheV9vZl9tb250aCArPSBnYXA7CisgICAgICAgICAgICAgICAgZGF5X29mX21vbnRoICs9IHN0YXJ0OworCisgICAgICAgICAgICAgICAgLy8gRmluYWxseSwgcGluIHRvIHRoZSByZWFsIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIG1vbnRoLgorICAgICAgICAgICAgICAgIGlmIChkYXlfb2ZfbW9udGggPCAxKSBkYXlfb2ZfbW9udGggPSAxOworICAgICAgICAgICAgICAgIGlmIChkYXlfb2ZfbW9udGggPiBtb250aExlbikgZGF5X29mX21vbnRoID0gbW9udGhMZW47CisKKyAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIERBWV9PRl9NT05USC4gIFdlIHJlbHkgb24gdGhlIGZhY3QgdGhhdCB0aGlzIGZpZWxkCisgICAgICAgICAgICAgICAgLy8gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGV2ZXJ5dGhpbmcgZWxzZSAoc2luY2UgYWxsIG90aGVyIGZpZWxkcworICAgICAgICAgICAgICAgIC8vIGFyZSBhbHNvIHNldCBhdCB0aGlzIHBvaW50KS4gIElmIHRoaXMgZmFjdCBjaGFuZ2VzIChpZiB0aGUKKyAgICAgICAgICAgICAgICAvLyBkaXNhbWJpZ3VhdGlvbiBhbGdvcml0aG0gY2hhbmdlcykgdGhlbiB3ZSB3aWxsIGhhdmUgdG8gdW5zZXQKKyAgICAgICAgICAgICAgICAvLyB0aGUgYXBwcm9wcmlhdGUgZmllbGRzIGhlcmUgc28gdGhhdCBEQVlfT0ZfTU9OVEggaXMgYXR0ZW5kZWQKKyAgICAgICAgICAgICAgICAvLyB0by4KKyAgICAgICAgICAgICAgICBzZXQoREFZX09GX01PTlRILCBkYXlfb2ZfbW9udGgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBXRUVLX09GX1lFQVI6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBmb2xsb3dzIHRoZSBvdXRsaW5lIG9mIFdFRUtfT0ZfTU9OVEgsIGV4Y2VwdCBpdCBhcHBsaWVzCisgICAgICAgICAgICAgICAgLy8gdG8gdGhlIHdob2xlIHllYXIuICBQbGVhc2Ugc2VlIHRoZSBjb21tZW50IGZvciBXRUVLX09GX01PTlRICisgICAgICAgICAgICAgICAgLy8gZm9yIGdlbmVyYWwgbm90ZXMuCisKKyAgICAgICAgICAgICAgICAvLyBOb3JtYWxpemUgdGhlIERBWV9PRl9XRUVLIHNvIHRoYXQgMCBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrCisgICAgICAgICAgICAgICAgLy8gaW4gdGhpcyBsb2NhbGUuICBXZSBoYXZlIGRvdyBpbiAwLi42LgorICAgICAgICAgICAgICAgIGludCBkb3cgPSBpbnRlcm5hbEdldChEQVlfT0ZfV0VFSykgLSBnZXRGaXJzdERheU9mV2VlaygpOworICAgICAgICAgICAgICAgIGlmIChkb3cgPCAwKSBkb3cgKz0gNzsKKworICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIGRheSBvZiB0aGUgd2VlayAobm9ybWFsaXplZCBmb3IgbG9jYWxlKSBmb3IgdGhlIGZpcnN0CisgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHllYXIuCisgICAgICAgICAgICAgICAgaW50IGZkeSA9IChkb3cgLSBpbnRlcm5hbEdldChEQVlfT0ZfWUVBUikgKyAxKSAlIDc7CisgICAgICAgICAgICAgICAgaWYgKGZkeSA8IDApIGZkeSArPSA3OworCisgICAgICAgICAgICAgICAgLy8gR2V0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIGZpcnN0IGZ1bGwgd2VlayBvZiB0aGUgeWVhciwKKyAgICAgICAgICAgICAgICAvLyBpbmNsdWRpbmcgcGhhbnRvbSBkYXlzLCBpZiBhbnkuICBGaWd1cmUgb3V0IGlmIHRoZSBmaXJzdCB3ZWVrCisgICAgICAgICAgICAgICAgLy8gY291bnRzIG9yIG5vdDsgaWYgaXQgY291bnRzLCB0aGVuIGZpbGwgaW4gcGhhbnRvbSBkYXlzLiAgSWYKKyAgICAgICAgICAgICAgICAvLyBub3QsIGFkdmFuY2UgdG8gdGhlIGZpcnN0IHJlYWwgZnVsbCB3ZWVrIChza2lwIHRoZSBwYXJ0aWFsIHdlZWspLgorICAgICAgICAgICAgICAgIGludCBzdGFydDsKKyAgICAgICAgICAgICAgICBpZiAoKDcgLSBmZHkpIDwgZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpKQorICAgICAgICAgICAgICAgICAgICBzdGFydCA9IDggLSBmZHk7IC8vIFNraXAgdGhlIGZpcnN0IHBhcnRpYWwgd2VlaworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSAxIC0gZmR5OyAvLyBUaGlzIG1heSBiZSB6ZXJvIG9yIG5lZ2F0aXZlCisKKyAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIGRheSBvZiB0aGUgd2VlayAobm9ybWFsaXplZCBmb3IgbG9jYWxlKSBmb3IgdGhlIGxhc3QKKyAgICAgICAgICAgICAgICAvLyBkYXkgb2YgdGhlIHllYXIuCisgICAgICAgICAgICAgICAgaW50IHllYXJMZW4gPSBnZXRBY3R1YWxNYXhpbXVtKERBWV9PRl9ZRUFSKTsKKyAgICAgICAgICAgICAgICBpbnQgbGR5ID0gKHllYXJMZW4gLSBpbnRlcm5hbEdldChEQVlfT0ZfWUVBUikgKyBkb3cpICUgNzsKKyAgICAgICAgICAgICAgICAvLyBXZSBrbm93IHllYXJMZW4gPj0gREFZX09GX1lFQVIgc28gd2Ugc2tpcCB0aGUgKz0gNyBzdGVwIGhlcmUuCisKKyAgICAgICAgICAgICAgICAvLyBHZXQgdGhlIGxpbWl0IGRheSBmb3IgdGhlIGJsb2NrZWQtb2ZmIHJlY3Rhbmd1bGFyIHllYXI7IHRoYXQKKyAgICAgICAgICAgICAgICAvLyBpcywgdGhlIGRheSB3aGljaCBpcyBvbmUgcGFzdCB0aGUgbGFzdCBkYXkgb2YgdGhlIHllYXIsCisgICAgICAgICAgICAgICAgLy8gYWZ0ZXIgdGhlIHllYXIgaGFzIGFscmVhZHkgYmVlbiBmaWxsZWQgaW4gd2l0aCBwaGFudG9tIGRheXMKKyAgICAgICAgICAgICAgICAvLyB0byBmaWxsIG91dCB0aGUgbGFzdCB3ZWVrLiAgVGhpcyBkYXkgaGFzIGEgbm9ybWFsaXplZCBET1cgb2YgMC4KKyAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSB5ZWFyTGVuICsgNyAtIGxkeTsKKworICAgICAgICAgICAgICAgIC8vIE5vdyByb2xsIGJldHdlZW4gc3RhcnQgYW5kIChsaW1pdCAtIDEpLgorICAgICAgICAgICAgICAgIGludCBnYXAgPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICAgICAgICAgIGludCBkYXlfb2ZfeWVhciA9IChpbnRlcm5hbEdldChEQVlfT0ZfWUVBUikgKyBhbW91bnQqNyAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCkgJSBnYXA7CisgICAgICAgICAgICAgICAgaWYgKGRheV9vZl95ZWFyIDwgMCkgZGF5X29mX3llYXIgKz0gZ2FwOworICAgICAgICAgICAgICAgIGRheV9vZl95ZWFyICs9IHN0YXJ0OworCisgICAgICAgICAgICAgICAgLy8gRmluYWxseSwgcGluIHRvIHRoZSByZWFsIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIG1vbnRoLgorICAgICAgICAgICAgICAgIGlmIChkYXlfb2ZfeWVhciA8IDEpIGRheV9vZl95ZWFyID0gMTsKKyAgICAgICAgICAgICAgICBpZiAoZGF5X29mX3llYXIgPiB5ZWFyTGVuKSBkYXlfb2ZfeWVhciA9IHllYXJMZW47CisKKyAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgeWVhciBhbmQgZGF5IG9mIHllYXIgYXJlIGF0dGVuZGVkIHRvIGJ5CisgICAgICAgICAgICAgICAgLy8gY2xlYXJpbmcgb3RoZXIgZmllbGRzIHdoaWNoIHdvdWxkIG5vcm1hbGx5IHRha2UgcHJlY2VkZW5jZS4KKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZGlzYW1iaWd1YXRpb24gYWxnb3JpdGhtIGlzIGNoYW5nZWQsIHRoaXMgc2VjdGlvbiB3aWxsCisgICAgICAgICAgICAgICAgLy8gaGF2ZSB0byBiZSB1cGRhdGVkIGFzIHdlbGwuCisgICAgICAgICAgICAgICAgc2V0KERBWV9PRl9ZRUFSLCBkYXlfb2ZfeWVhcik7CisgICAgICAgICAgICAgICAgY2xlYXIoTU9OVEgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBEQVlfT0ZfWUVBUjoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBSb2xsIHRoZSBkYXkgb2YgeWVhciB1c2luZyBtaWxsaXMuICBDb21wdXRlIHRoZSBtaWxsaXMgZm9yCisgICAgICAgICAgICAgICAgLy8gdGhlIHN0YXJ0IG9mIHRoZSB5ZWFyLCBhbmQgZ2V0IHRoZSBsZW5ndGggb2YgdGhlIHllYXIuCisgICAgICAgICAgICAgICAgbG9uZyBkZWx0YSA9IGFtb3VudCAqIE9ORV9EQVk7IC8vIFNjYWxlIHVwIGZyb20gZGF5cyB0byBtaWxsaXMKKyAgICAgICAgICAgICAgICBsb25nIG1pbjIgPSB0aW1lIC0gKGludGVybmFsR2V0KERBWV9PRl9ZRUFSKSAtIDEpICogT05FX0RBWTsKKyAgICAgICAgICAgICAgICBpbnQgeWVhckxlbmd0aCA9IGdldEFjdHVhbE1heGltdW0oREFZX09GX1lFQVIpOworICAgICAgICAgICAgICAgIHRpbWUgPSAodGltZSArIGRlbHRhIC0gbWluMikgJSAoeWVhckxlbmd0aCpPTkVfREFZKTsKKyAgICAgICAgICAgICAgICBpZiAodGltZSA8IDApIHRpbWUgKz0geWVhckxlbmd0aCpPTkVfREFZOworICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyh0aW1lICsgbWluMik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICBjYXNlIERBWV9PRl9XRUVLOgorICAgICAgICBjYXNlIERPV19MT0NBTDoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBSb2xsIHRoZSBkYXkgb2Ygd2VlayB1c2luZyBtaWxsaXMuICBDb21wdXRlIHRoZSBtaWxsaXMgZm9yCisgICAgICAgICAgICAgICAgLy8gdGhlIHN0YXJ0IG9mIHRoZSB3ZWVrLCB1c2luZyB0aGUgZmlyc3QgZGF5IG9mIHdlZWsgc2V0dGluZy4KKyAgICAgICAgICAgICAgICAvLyBSZXN0cmljdCB0aGUgbWlsbGlzIHRvIFtzdGFydCwgc3RhcnQrN2RheXMpLgorICAgICAgICAgICAgICAgIGxvbmcgZGVsdGEgPSBhbW91bnQgKiBPTkVfREFZOyAvLyBTY2FsZSB1cCBmcm9tIGRheXMgdG8gbWlsbGlzCisgICAgICAgICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIGRheXMgYmVmb3JlIHRoZSBjdXJyZW50IGRheSBpbiB0aGlzCisgICAgICAgICAgICAgICAgLy8gd2Vlay4gIFRoaXMgd2lsbCBiZSBhIHZhbHVlIDAuLjYuCisgICAgICAgICAgICAgICAgaW50IGxlYWREYXlzID0gaW50ZXJuYWxHZXQoZmllbGQpOworICAgICAgICAgICAgICAgIGxlYWREYXlzIC09IChmaWVsZCA9PSBEQVlfT0ZfV0VFSykgPyBnZXRGaXJzdERheU9mV2VlaygpIDogMTsKKyAgICAgICAgICAgICAgICBpZiAobGVhZERheXMgPCAwKSBsZWFkRGF5cyArPSA3OworICAgICAgICAgICAgICAgIGxvbmcgbWluMiA9IHRpbWUgLSBsZWFkRGF5cyAqIE9ORV9EQVk7CisgICAgICAgICAgICAgICAgdGltZSA9ICh0aW1lICsgZGVsdGEgLSBtaW4yKSAlIE9ORV9XRUVLOworICAgICAgICAgICAgICAgIGlmICh0aW1lIDwgMCkgdGltZSArPSBPTkVfV0VFSzsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXModGltZSArIG1pbjIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBEQVlfT0ZfV0VFS19JTl9NT05USDoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBSb2xsIHRoZSBkYXkgb2Ygd2VlayBpbiB0aGUgbW9udGggdXNpbmcgbWlsbGlzLiAgRGV0ZXJtaW5lCisgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayBpbiB0aGUgbW9udGgsIGFuZCB0aGVuIHRoZSBsYXN0LAorICAgICAgICAgICAgICAgIC8vIGFuZCB0aGVuIHJvbGwgd2l0aGluIHRoYXQgcmFuZ2UuCisgICAgICAgICAgICAgICAgbG9uZyBkZWx0YSA9IGFtb3VudCAqIE9ORV9XRUVLOyAvLyBTY2FsZSB1cCBmcm9tIHdlZWtzIHRvIG1pbGxpcworICAgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIG51bWJlciBvZiBzYW1lIGRheXMgb2YgdGhlIHdlZWsgYmVmb3JlIHRoaXMgb25lCisgICAgICAgICAgICAgICAgLy8gaW4gdGhpcyBtb250aC4KKyAgICAgICAgICAgICAgICBpbnQgcHJlV2Vla3MgPSAoaW50ZXJuYWxHZXQoREFZX09GX01PTlRIKSAtIDEpIC8gNzsKKyAgICAgICAgICAgICAgICAvLyBGaW5kIHRoZSBudW1iZXIgb2Ygc2FtZSBkYXlzIG9mIHRoZSB3ZWVrIGFmdGVyIHRoaXMgb25lCisgICAgICAgICAgICAgICAgLy8gaW4gdGhpcyBtb250aC4KKyAgICAgICAgICAgICAgICBpbnQgcG9zdFdlZWtzID0gKGdldEFjdHVhbE1heGltdW0oREFZX09GX01PTlRIKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbEdldChEQVlfT0ZfTU9OVEgpKSAvIDc7CisgICAgICAgICAgICAgICAgLy8gRnJvbSB0aGVzZSBjb21wdXRlIHRoZSBtaW4gYW5kIGdhcCBtaWxsaXMgZm9yIHJvbGxpbmcuCisgICAgICAgICAgICAgICAgbG9uZyBtaW4yID0gdGltZSAtIHByZVdlZWtzICogT05FX1dFRUs7CisgICAgICAgICAgICAgICAgbG9uZyBnYXAyID0gT05FX1dFRUsgKiAocHJlV2Vla3MgKyBwb3N0V2Vla3MgKyAxKTsgLy8gTXVzdCBhZGQgMSEKKyAgICAgICAgICAgICAgICAvLyBSb2xsIHdpdGhpbiB0aGlzIHJhbmdlCisgICAgICAgICAgICAgICAgdGltZSA9ICh0aW1lICsgZGVsdGEgLSBtaW4yKSAlIGdhcDI7CisgICAgICAgICAgICAgICAgaWYgKHRpbWUgPCAwKSB0aW1lICs9IGdhcDI7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHRpbWUgKyBtaW4yKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIGNhc2UgSlVMSUFOX0RBWToKKyAgICAgICAgICAgIHNldChmaWVsZCwgaW50ZXJuYWxHZXQoZmllbGQpICsgYW1vdW50KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8vIE90aGVyIGZpZWxkcyBjYW5ub3QgYmUgcm9sbGVkIGJ5IHRoaXMgbWV0aG9kCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDYWxlbmRhci5yb2xsKCIgKyBmaWVsZE5hbWUoZmllbGQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIikgbm90IHN1cHBvcnRlZCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGEgc2lnbmVkIGFtb3VudCB0byBhIHNwZWNpZmllZCBmaWVsZCwgdXNpbmcgdGhpcyBjYWxlbmRhcidzIHJ1bGVzLgorICAgICAqIEZvciBleGFtcGxlLCB0byBhZGQgdGhyZWUgZGF5cyB0byB0aGUgY3VycmVudCBkYXRlLCB5b3UgY2FuIGNhbGwKKyAgICAgKiA8Y29kZT5hZGQoQ2FsZW5kYXIuREFURSwgMyk8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIFdoZW4gYWRkaW5nIHRvIGNlcnRhaW4gZmllbGRzLCB0aGUgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBtYXkgY29uZmxpY3QgYW5kCisgICAgICogbmVlZCB0byBiZSBjaGFuZ2VkLiAgRm9yIGV4YW1wbGUsIHdoZW4gYWRkaW5nIG9uZSB0byB0aGUge0BsaW5rICNNT05USCBNT05USH0gZmllbGQKKyAgICAgKiBmb3IgdGhlIEdyZWdvcmlhbiBkYXRlIDEvMzEvOTYsIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZpZWxkCisgICAgICogbXVzdCBiZSBhZGp1c3RlZCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgMi8yOS85NiByYXRoZXIgdGhhbiB0aGUgaW52YWxpZAorICAgICAqIDIvMzEvOTYuCisgICAgICogPHA+CisgICAgICogVGhlIDxjb2RlPmNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXI8L2NvZGU+IGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbWV0aG9kIGlzIGFibGUgdG8gYWRkIHRvCisgICAgICogYWxsIGZpZWxkcyBleGNlcHQgZm9yIHtAbGluayAjRVJBIEVSQX0sIHtAbGluayAjRFNUX09GRlNFVCBEU1RfT0ZGU0VUfSwKKyAgICAgKiBhbmQge0BsaW5rICNaT05FX09GRlNFVCBaT05FX09GRlNFVH0uICBTdWJjbGFzc2VzIG1heSwgb2YgY291cnNlLCBhZGQgc3VwcG9ydCBmb3IKKyAgICAgKiBhZGRpdGlvbmFsIGZpZWxkcyBpbiB0aGVpciBvdmVycmlkZXMgb2YgPGNvZGU+YWRkPC9jb2RlPi4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4gWW91IHNob3VsZCBhbHdheXMgdXNlIDx0dD5yb2xsPC90dD4gYW5kIDx0dD5hZGQ8L3R0PiByYXRoZXIKKyAgICAgKiB0aGFuIGF0dGVtcHRpbmcgdG8gcGVyZm9ybSBhcml0aG1ldGljIG9wZXJhdGlvbnMgZGlyZWN0bHkgb24gdGhlIGZpZWxkcworICAgICAqIG9mIGEgPHR0PkNhbGVuZGFyPC90dD4uICBJdCBpcyBxdWl0ZSBwb3NzaWJsZSBmb3IgPHR0PkNhbGVuZGFyPC90dD4gc3ViY2xhc3NlcworICAgICAqIHRvIGhhdmUgZmllbGRzIHdpdGggbm9uLWxpbmVhciBiZWhhdmlvciwgZm9yIGV4YW1wbGUgbWlzc2luZyBtb250aHMKKyAgICAgKiBvciBkYXlzIGR1cmluZyBub24tbGVhcCB5ZWFycy4gIFRoZSBzdWJjbGFzc2VzJyA8dHQ+YWRkPC90dD4gYW5kIDx0dD5yb2xsPC90dD4KKyAgICAgKiBtZXRob2RzIHdpbGwgdGFrZSB0aGlzIGludG8gYWNjb3VudCwgd2hpbGUgc2ltcGxlIGFyaXRobWV0aWMgbWFuaXB1bGF0aW9ucworICAgICAqIG1heSBnaXZlIGludmFsaWQgcmVzdWx0cy4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5TdWJjbGFzc2luZzo8L2I+PGJyPgorICAgICAqIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgPGNvZGU+YWRkPC9jb2RlPiBhc3N1bWVzIHRoYXQgdGhlIGJlaGF2aW9yIG9mIHRoZQorICAgICAqIGZpZWxkIGlzIGNvbnRpbnVvdXMgYmV0d2VlbiBpdHMgbWluaW11bSBhbmQgbWF4aW11bSwgd2hpY2ggYXJlIGZvdW5kIGJ5CisgICAgICogY2FsbGluZyB7QGxpbmsgI2dldEFjdHVhbE1pbmltdW0gZ2V0QWN0dWFsTWluaW11bX0gYW5kCisgICAgICoge0BsaW5rICNnZXRBY3R1YWxNYXhpbXVtIGdldEFjdHVhbE1heGltdW19LgorICAgICAqIEZvciBzdWNoIGZpZWxkcywgc2ltcGxlIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBhcmUgc3VmZmljaWVudCB0bworICAgICAqIHBlcmZvcm0gdGhlIGFkZC4KKyAgICAgKiA8cD4KKyAgICAgKiBTdWJjbGFzc2VzIHRoYXQgaGF2ZSBmaWVsZHMgZm9yIHdoaWNoIHRoaXMgYXNzdW1wdGlvbiBvZiBjb250aW51aXR5IGJyZWFrcworICAgICAqIGRvd24gbXVzdCBvdmVyaWRlIDxjb2RlPmFkZDwvY29kZT4gdG8gaGFuZGxlIHRob3NlIGZpZWxkcyBzcGVjaWFsbHkuCisgICAgICogRm9yIGV4YW1wbGUsIGluIHRoZSBIZWJyZXcgY2FsZW5kYXIgdGhlIG1vbnRoICJBZGFyIEkiCisgICAgICogb25seSBvY2N1cnMgaW4gbGVhcCB5ZWFyczsgaW4gb3RoZXIgeWVhcnMgdGhlIGNhbGVuZGFyIGp1bXBzIGZyb20KKyAgICAgKiBTaGV2YXQgKG1vbnRoICM0KSB0byBBZGFyIChtb250aCAjNikuICBUaGUKKyAgICAgKiB7QGxpbmsgSGVicmV3Q2FsZW5kYXIjYWRkIEhlYnJld0NhbGVuZGFyLmFkZH0gbWV0aG9kIHRha2VzIHRoaXMgaW50byBhY2NvdW50LAorICAgICAqIHNvIHRoYXQgYWRkaW5nIG9uZSBtb250aAorICAgICAqIHRvIGEgZGF0ZSBpbiBTaGV2YXQgZ2l2ZXMgdGhlIHByb3BlciByZXN1bHQgKEFkYXIpIGluIGEgbm9uLWxlYXAgeWVhci4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgICAgIHRoZSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBhbW91bnQgICAgdGhlIGFtb3VudCB0byBhZGQgdG8gdGhlIGZpZWxkLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZmllbGQgaXMgaW52YWxpZCBvciByZWZlcnMKKyAgICAgKiAgICAgICAgICAgICAgdG8gYSBmaWVsZCB0aGF0IGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgbWV0aG9kLgorICAgICAqIEBzZWUgI3JvbGwoaW50LCBpbnQpCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkKGludCBmaWVsZCwgaW50IGFtb3VudCkgeworCisgICAgICAgIGlmIChhbW91bnQgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuOyAgIC8vIERvIG5vdGhpbmchCisgICAgICAgIH0KKworICAgICAgICAvLyBXZSBoYW5kbGUgbW9zdCBmaWVsZHMgaW4gdGhlIHNhbWUgd2F5LiAgVGhlIGFsZ29yaXRobSBpcyB0byBhZGQKKyAgICAgICAgLy8gYSBjb21wdXRlZCBhbW91bnQgb2YgbWlsbGlzIHRvIHRoZSBjdXJyZW50IG1pbGxpcy4gIFRoZSBvbmx5CisgICAgICAgIC8vIHdyaW5rbGUgaXMgd2l0aCBEU1QgLS0gZm9yIHNvbWUgZmllbGRzLCBsaWtlIHRoZSBEQVlfT0ZfTU9OVEgsCisgICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdGhlIEhPVVIgdG8gc2hpZnQgZHVlIHRvIGNoYW5nZXMgaW4gRFNULiAgSWYgdGhlCisgICAgICAgIC8vIHJlc3VsdCBvZiB0aGUgYWRkIG9wZXJhdGlvbiBpcyB0byBtb3ZlIGZyb20gRFNUIHRvIFN0YW5kYXJkLCBvcgorICAgICAgICAvLyB2aWNlIHZlcnNhLCB3ZSBuZWVkIHRvIGFkanVzdCBieSBhbiBob3VyIGZvcndhcmQgb3IgYmFjaywKKyAgICAgICAgLy8gcmVzcGVjdGl2ZWx5LiAgRm9yIHN1Y2ggZmllbGRzIHdlIHNldCBrZWVwSG91ckludmFyaWFudCB0byB0cnVlLgorCisgICAgICAgIC8vIFdlIG9ubHkgYWRqdXN0IHRoZSBEU1QgZm9yIGZpZWxkcyBsYXJnZXIgdGhhbiBhbiBob3VyLiAgRm9yCisgICAgICAgIC8vIGZpZWxkcyBzbWFsbGVyIHRoYW4gYW4gaG91ciwgd2UgY2Fubm90IGFkanVzdCBmb3IgRFNUIHdpdGhvdXQKKyAgICAgICAgLy8gY2F1c2luZyBwcm9ibGVtcy4gIGZvciBpbnN0YW5jZSwgaWYgeW91IGFkZCBvbmUgaG91ciB0byBBcHJpbCA1LAorICAgICAgICAvLyAxOTk4LCAxOjAwIEFNLCBpbiBQU1QsIHRoZSB0aW1lIGJlY29tZXMgIjI6MDAgQU0gUERUIiAoYW4KKyAgICAgICAgLy8gaWxsZWdhbCB2YWx1ZSksIGJ1dCB0aGVuIHRoZSBhZGp1c3RtZW50IHNlZXMgdGhlIGNoYW5nZSBhbmQKKyAgICAgICAgLy8gY29tcGVuc2F0ZXMgYnkgc3VidHJhY3RpbmcgYW4gaG91ci4gIEFzIGEgcmVzdWx0IHRoZSB0aW1lCisgICAgICAgIC8vIGRvZXNuJ3QgYWR2YW5jZSBhdCBhbGwuCisKKyAgICAgICAgLy8gRm9yIHNvbWUgZmllbGRzIGxhcmdlciB0aGFuIGEgZGF5LCBzdWNoIGFzIGEgTU9OVEgsIHdlIHBpbiB0aGUKKyAgICAgICAgLy8gREFZX09GX01PTlRILiAgVGhpcyBhbGxvd3MgPE1hcmNoIDMxPi5hZGQoTU9OVEgsIDEpIHRvIGJlCisgICAgICAgIC8vIDxBcHJpbCAzMD4sIHJhdGhlciB0aGFuIDxBcHJpbCAzMT4gPT4gPE1heSAxPi4KKworICAgICAgICBsb25nIGRlbHRhID0gYW1vdW50OyAvLyBkZWx0YSBpbiBtcworICAgICAgICBib29sZWFuIGtlZXBIb3VySW52YXJpYW50ID0gdHJ1ZTsKKworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgRVJBOgorICAgICAgICAgICAgc2V0KGZpZWxkLCBnZXQoZmllbGQpICsgYW1vdW50KTsKKyAgICAgICAgICAgIHBpbkZpZWxkKEVSQSk7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSBZRUFSOgorICAgICAgICBjYXNlIEVYVEVOREVEX1lFQVI6CisgICAgICAgIGNhc2UgWUVBUl9XT1k6CisgICAgICAgIGNhc2UgTU9OVEg6CisgICAgICAgICAgICBzZXQoZmllbGQsIGdldChmaWVsZCkgKyBhbW91bnQpOworICAgICAgICAgICAgcGluRmllbGQoREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIFdFRUtfT0ZfWUVBUjoKKyAgICAgICAgY2FzZSBXRUVLX09GX01PTlRIOgorICAgICAgICBjYXNlIERBWV9PRl9XRUVLX0lOX01PTlRIOgorICAgICAgICAgICAgZGVsdGEgKj0gT05FX1dFRUs7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIEFNX1BNOgorICAgICAgICAgICAgZGVsdGEgKj0gMTIgKiBPTkVfSE9VUjsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgREFZX09GX01PTlRIOgorICAgICAgICBjYXNlIERBWV9PRl9ZRUFSOgorICAgICAgICBjYXNlIERBWV9PRl9XRUVLOgorICAgICAgICBjYXNlIERPV19MT0NBTDoKKyAgICAgICAgY2FzZSBKVUxJQU5fREFZOgorICAgICAgICAgICAgZGVsdGEgKj0gT05FX0RBWTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgSE9VUl9PRl9EQVk6CisgICAgICAgIGNhc2UgSE9VUjoKKyAgICAgICAgICAgIGRlbHRhICo9IE9ORV9IT1VSOworICAgICAgICAgICAga2VlcEhvdXJJbnZhcmlhbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgTUlOVVRFOgorICAgICAgICAgICAgZGVsdGEgKj0gT05FX01JTlVURTsKKyAgICAgICAgICAgIGtlZXBIb3VySW52YXJpYW50ID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIFNFQ09ORDoKKyAgICAgICAgICAgIGRlbHRhICo9IE9ORV9TRUNPTkQ7CisgICAgICAgICAgICBrZWVwSG91ckludmFyaWFudCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBNSUxMSVNFQ09ORDoKKyAgICAgICAgY2FzZSBNSUxMSVNFQ09ORFNfSU5fREFZOgorICAgICAgICAgICAga2VlcEhvdXJJbnZhcmlhbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDYWxlbmRhci5hZGQoIiArIGZpZWxkTmFtZShmaWVsZCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKSBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBJbiBvcmRlciB0byBrZWVwIHRoZSBob3VyIGludmFyaWFudCAoZm9yIGZpZWxkcyB3aGVyZSB0aGlzIGlzCisgICAgICAgIC8vIGFwcHJvcHJpYXRlKSwgcmVjb3JkIHRoZSBEU1RfT0ZGU0VUIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGFkZCgpCisgICAgICAgIC8vIG9wZXJhdGlvbi4gIElmIGl0IGhhcyBjaGFuZ2VkLCB0aGVuIGFkanVzdCB0aGUgbWlsbGlzIHRvCisgICAgICAgIC8vIGNvbXBlbnNhdGUuCisgICAgICAgIGludCBkc3QgPSAwOworICAgICAgICBpbnQgaG91ciA9IDA7CisgICAgICAgIGlmIChrZWVwSG91ckludmFyaWFudCkgeworICAgICAgICAgICAgZHN0ID0gZ2V0KERTVF9PRkZTRVQpOworICAgICAgICAgICAgaG91ciA9IGludGVybmFsR2V0KEhPVVJfT0ZfREFZKTsKKyAgICAgICAgfQorCisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhnZXRUaW1lSW5NaWxsaXMoKSArIGRlbHRhKTsKKworICAgICAgICBpZiAoa2VlcEhvdXJJbnZhcmlhbnQpIHsKKyAgICAgICAgICAgIGRzdCAtPSBnZXQoRFNUX09GRlNFVCk7CisgICAgICAgICAgICBpZiAoZHN0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIGRvbmUgYW4gaG91ci1pbnZhcmlhbnQgYWRqdXN0bWVudCBidXQgdGhlCisgICAgICAgICAgICAgICAgLy8gRFNUIG9mZnNldCBoYXMgYWx0ZXJlZC4gIFdlIGFkanVzdCBtaWxsaXMgdG8ga2VlcAorICAgICAgICAgICAgICAgIC8vIHRoZSBob3VyIGNvbnN0YW50LiAgSW4gY2FzZXMgc3VjaCBhcyBtaWRuaWdodCBhZnRlcgorICAgICAgICAgICAgICAgIC8vIGEgRFNUIGNoYW5nZSB3aGljaCBvY2N1cnMgYXQgbWlkbmlnaHQsIHRoZXJlIGlzIHRoZQorICAgICAgICAgICAgICAgIC8vIGRhbmdlciBvZiBhZGp1c3RpbmcgaW50byBhIGRpZmZlcmVudCBkYXkuICBUbyBhdm9pZAorICAgICAgICAgICAgICAgIC8vIHRoaXMgd2UgbWFrZSB0aGUgYWRqdXN0bWVudCBvbmx5IGlmIGl0IGFjdHVhbGx5CisgICAgICAgICAgICAgICAgLy8gbWFpbnRhaW5zIHRoZSBob3VyLgorICAgICAgICAgICAgICAgIGxvbmcgdCA9IHRpbWU7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHRpbWUgKyBkc3QpOworICAgICAgICAgICAgICAgIGlmIChnZXQoSE9VUl9PRl9EQVkpICE9IGhvdXIpIHsKKyAgICAgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmFtZSBvZiB0aGlzIGNhbGVuZGFyIGluIHRoZSBsYW5ndWFnZSBvZiB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoTG9jYWxlIGxvYykgeworICAgICAgICByZXR1cm4gdGhpcy5nZXRDbGFzcygpLmdldE5hbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhpcyBjYWxlbmRhciBpbiB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3MoKS5nZXROYW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIHRpbWVzIChpbiBtaWxsaXMpIHJlcHJlc2VudGVkIGJ5IHR3bworICAgICAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBvYmplY3RzLgorICAgICAqCisgICAgICogQHBhcmFtIHRoYXQgdGhlIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiB0byBjb21wYXJlIHRvIHRoaXMuCisgICAgICogQHJldHVybiA8Y29kZT4wPC9jb2RlPiBpZiB0aGUgdGltZSByZXByZXNlbnRlZCBieSAKKyAgICAgKiB0aGlzIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpcyBlcXVhbCB0byB0aGUgdGltZSByZXByZXNlbnRlZCAKKyAgICAgKiBieSB0aGF0IDxjb2RlPkNhbGVuZGFyPC9jb2RlPiwgYSB2YWx1ZSBsZXNzIHRoYW4gCisgICAgICogPGNvZGU+MDwvY29kZT4gaWYgdGhlIHRpbWUgcmVwcmVzZW50ZWQgYnkgdGhpcyBpcyBiZWZvcmUKKyAgICAgKiB0aGUgdGltZSByZXByZXNlbnRlZCBieSB0aGF0LCBhbmQgYSB2YWx1ZSBncmVhdGVyIHRoYW4KKyAgICAgKiA8Y29kZT4wPC9jb2RlPiBpZiB0aGUgdGltZSByZXByZXNlbnRlZCBieSB0aGlzCisgICAgICogaXMgYWZ0ZXIgdGhlIHRpbWUgcmVwcmVzZW50ZWQgYnkgdGhhdC4KKyAgICAgKiBAdGhyb3dzIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIHRoYXQgCisgICAgICogPGNvZGU+Q2FsZW5kYXI8L2NvZGU+IGlzIG51bGwuCisgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIHRpbWUgb2YgdGhhdCAKKyAgICAgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gY2FuJ3QgYmUgb2J0YWluZWQgYmVjYXVzZSBvZiBpbnZhbGlkCisgICAgICogY2FsZW5kYXIgdmFsdWVzLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGludCBjb21wYXJlVG8oQ2FsZW5kYXIgdGhhdCkgeworICAgICAgICBsb25nIHYgPSBnZXRUaW1lSW5NaWxsaXMoKSAtIHRoYXQuZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgIHJldHVybiB2IDwgMCA/IC0xIDogKHYgPiAwID8gMSA6IDApOworICAgIH0KKworICAgIC8qKgorICAgICAqIEltcGxlbWVudCBjb21wYXJhYmxlIEFQSSBhcyBhIGNvbnZlbmllbmNlIG92ZXJyaWRlIG9mCisgICAgICoge0BsaW5rICNjb21wYXJlVG8oQ2FsZW5kYXIpfS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCB0aGF0KSB7CisgICAgICAgIHJldHVybiBjb21wYXJlVG8oKENhbGVuZGFyKXRoYXQpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEludGVyZmFjZSBmb3IgY3JlYXRpbmcgY3VzdG9uIERhdGVGb3JtYXRzIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgQ2FsZW5kYXJzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiBhcHByb3ByaWF0ZSB0byB0aGlzIGNhbGVuZGFyLgorICAgICAqIFN1YmNsYXNzZXMgd2lzaGluZyB0byBzcGVjaWFsaXplIHRoaXMgYmVoYXZpb3Igc2hvdWxkIG92ZXJyaWRlCisgICAgICogPGNvZGU+aGFuZGxlR2V0RGF0ZUZvcm1hdCgpPC9jb2RlPgorICAgICAqIEBzZWUgI2hhbmRsZUdldERhdGVGb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZUZvcm1hdCBnZXREYXRlVGltZUZvcm1hdChpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlLCBMb2NhbGUgbG9jKSB7CisgICAgICAgIHJldHVybiBmb3JtYXRIZWxwZXIodGhpcywgVUxvY2FsZS5mb3JMb2NhbGUobG9jKSwgZGF0ZVN0eWxlLCB0aW1lU3R5bGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFwcHJvcHJpYXRlIHRvIHRoaXMgY2FsZW5kYXIuCisgICAgICogU3ViY2xhc3NlcyB3aXNoaW5nIHRvIHNwZWNpYWxpemUgdGhpcyBiZWhhdmlvciBzaG91bGQgb3ZlcnJpZGUKKyAgICAgKiA8Y29kZT5oYW5kbGVHZXREYXRlRm9ybWF0KCk8L2NvZGU+CisgICAgICogQHNlZSAjaGFuZGxlR2V0RGF0ZUZvcm1hdAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIERhdGVGb3JtYXQgZ2V0RGF0ZVRpbWVGb3JtYXQoaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSwgVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdEhlbHBlcih0aGlzLCBsb2MsIGRhdGVTdHlsZSwgdGltZVN0eWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPiBhcHByb3ByaWF0ZSB0byB0aGlzIGNhbGVuZGFyLgorICAgICAqIFRoaXMgaXMgYSBmcmFtZXdvcmsgbWV0aG9kIGZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlLiAgVGhpcyBtZXRob2QKKyAgICAgKiBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhlIGNhbGVuZGFyLXNwZWNpZmljIERhdGVGb3JtYXQgYW5kCisgICAgICogRGF0ZUZvcm1hdFN5bWJvbHMgb2JqZWN0cyBhcyBuZWVkZWQuCisgICAgICogQHBhcmFtIHBhdHRlcm4gdGhlIHBhdHRlcm4sIHNwZWNpZmljIHRvIHRoZSA8Y29kZT5EYXRlRm9ybWF0PC9jb2RlPgorICAgICAqIHN1YmNsYXNzCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGZvciB3aGljaCB0aGUgc3ltYm9scyBzaG91bGQgYmUgZHJhd24KKyAgICAgKiBAcmV0dXJuIGEgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gYXBwcm9wcmlhdGUgdG8gdGhpcyBjYWxlbmRhcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBEYXRlRm9ybWF0IGhhbmRsZUdldERhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUdldERhdGVGb3JtYXQocGF0dGVybiwgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4gYXBwcm9wcmlhdGUgdG8gdGhpcyBjYWxlbmRhci4KKyAgICAgKiBUaGlzIGlzIGEgZnJhbWV3b3JrIG1ldGhvZCBmb3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZS4gIFRoaXMgbWV0aG9kCisgICAgICogaXMgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoZSBjYWxlbmRhci1zcGVjaWZpYyBEYXRlRm9ybWF0IGFuZAorICAgICAqIERhdGVGb3JtYXRTeW1ib2xzIG9iamVjdHMgYXMgbmVlZGVkLgorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBwYXR0ZXJuLCBzcGVjaWZpYyB0byB0aGUgPGNvZGU+RGF0ZUZvcm1hdDwvY29kZT4KKyAgICAgKiBzdWJjbGFzcworICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIHN5bWJvbHMgc2hvdWxkIGJlIGRyYXduCisgICAgICogQHJldHVybiBhIDxjb2RlPkRhdGVGb3JtYXQ8L2NvZGU+IGFwcHJvcHJpYXRlIHRvIHRoaXMgY2FsZW5kYXIKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBEYXRlRm9ybWF0IGhhbmRsZUdldERhdGVGb3JtYXQoU3RyaW5nIHBhdHRlcm4sIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHModGhpcywgbG9jYWxlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBTaW1wbGVEYXRlRm9ybWF0KHBhdHRlcm4sIHN5bWJvbHMsIGxvY2FsZSk7CisgICAgfQorCisgICAgc3RhdGljIHByaXZhdGUgRGF0ZUZvcm1hdCBmb3JtYXRIZWxwZXIoQ2FsZW5kYXIgY2FsLCBVTG9jYWxlIGxvYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSkKKyAgICB7CisgICAgICAgIC8vIFNlZSBpZiB0aGVyZSBhcmUgYW55IGN1c3RvbSByZXNvdXJjZXMgZm9yIHRoaXMgY2FsZW5kYXIKKyAgICAgICAgLy8gSWYgbm90LCBqdXN0IHVzZSB0aGUgZGVmYXVsdCBEYXRlRm9ybWF0CisgICAgICAgIERhdGVGb3JtYXQgcmVzdWx0ID0gbnVsbDsKKyAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQ2FsZW5kYXJEYXRhIGNhbERhdGEgPSBuZXcgQ2FsZW5kYXJEYXRhKGxvYywgY2FsLmdldFR5cGUoKSk7CisgICAgICAgICAgICAgICBTdHJpbmdbXSBwYXR0ZXJucyA9IGNhbERhdGEuZ2V0KCJEYXRlVGltZVBhdHRlcm5zIikuZ2V0U3RyaW5nQXJyYXkoKTsKKworICAgICAgICAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gbnVsbDsKKyAgICAgICAgICAgICAgICBpZiAoKHRpbWVTdHlsZSA+PSAwKSAmJiAoZGF0ZVN0eWxlID49IDApKSB7CisgICAgICAgICAgICAgICAgICAgIE9iamVjdFtdIGRhdGVUaW1lQXJncyA9IHsgcGF0dGVybnNbdGltZVN0eWxlXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuc1tkYXRlU3R5bGUgKyA0XSB9OworICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuID0gTWVzc2FnZUZvcm1hdC5mb3JtYXQocGF0dGVybnNbOF0sIGRhdGVUaW1lQXJncyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRpbWVTdHlsZSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuc1t0aW1lU3R5bGVdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChkYXRlU3R5bGUgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuID0gcGF0dGVybnNbZGF0ZVN0eWxlICsgNF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJObyBkYXRlIG9yIHRpbWUgc3R5bGUgc3BlY2lmaWVkIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNhbC5oYW5kbGVHZXREYXRlRm9ybWF0KHBhdHRlcm4sIGxvYyk7CisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vICEhISBuZWVkIGRhdGVmb3JtYXQgc3ViY2xhc3MgYXBwcm9wcmlhdGUgdG8gY2FsZW5kYXIgdHlwZSBoZXJlIQorICAgICAgICAgICAgICAgIC8vIE5vIGN1c3RvbSBwYXR0ZXJucworICAgICAgICAgICAgICAgIC8vICEhISBub3RlOiBwb3NzaWJsZSBjaXJjdWxhcml0eSBoZXJlLCBpZiBnZXREYXRlVGltZUluc3RhbmNlIGNhbGxzIHVzIGJlY2F1c2Ugb2YKKyAgICAgICAgICAgICAgICAvLyBsb2Mgc3BlY2lmeWluZyBhIGNhbGVuZGFyLgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShkYXRlU3R5bGUsIHRpbWVTdHlsZSwgbG9jKTsKKworICAgICAgICAgICAgICAgIERhdGVGb3JtYXRTeW1ib2xzIHN5bWJvbHMgPSBuZXcgRGF0ZUZvcm1hdFN5bWJvbHMoY2FsLCBsb2MpOworICAgICAgICAgICAgICAgICgoU2ltcGxlRGF0ZUZvcm1hdCkgcmVzdWx0KS5zZXREYXRlRm9ybWF0U3ltYm9scyhzeW1ib2xzKTsgLy8gYWxpdQorICAgICAgICAgICAgfQorICAgICAgICByZXN1bHQuc2V0Q2FsZW5kYXIoY2FsKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQcm90ZWN0ZWQgdXRpbGl0eSBtZXRob2RzIGZvciB1c2UgYnkgc3ViY2xhc3Nlcy4gIFRoZXNlIGFyZSB2ZXJ5IGhhbmR5CisgICAgLy8gZm9yIGltcGxlbWVudGluZyBhZGQsIHJvbGwsIGFuZCBjb21wdXRlRmllbGRzLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQWRqdXN0IHRoZSBzcGVjaWZpZWQgZmllbGQgc28gdGhhdCBpdCBpcyB3aXRoaW4KKyAgICAgKiB0aGUgYWxsb3dhYmxlIHJhbmdlIGZvciB0aGUgZGF0ZSB0byB3aGljaCB0aGlzIGNhbGVuZGFyIGlzIHNldC4KKyAgICAgKiBGb3IgZXhhbXBsZSwgaW4gYSBHcmVnb3JpYW4gY2FsZW5kYXIgcGlubmluZyB0aGUge0BsaW5rICNEQVlfT0ZfTU9OVEggREFZX09GX01PTlRIfQorICAgICAqIGZpZWxkIGZvciBhIGNhbGVuZGFyIHNldCB0byBBcHJpbCAzMSB3b3VsZCBjYXVzZSBpdCB0byBiZSBzZXQKKyAgICAgKiB0byBBcHJpbCAzMC4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5TdWJjbGFzc2luZzo8L2I+CisgICAgICogPGJyPgorICAgICAqIFRoaXMgdXRpbGl0eSBtZXRob2QgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBzdWJjbGFzc2VzIHRoYXQgbmVlZCB0byBpbXBsZW1lbnQKKyAgICAgKiB0aGVpciBvd24gb3ZlcnJpZGVzIG9mIHtAbGluayAjcm9sbCByb2xsfSBhbmQge0BsaW5rICNhZGQgYWRkfS4KKyAgICAgKiA8cD4KKyAgICAgKiA8Yj5Ob3RlOjwvYj4KKyAgICAgKiA8Y29kZT5waW5GaWVsZDwvY29kZT4gaXMgaW1wbGVtZW50ZWQgaW4gdGVybXMgb2YKKyAgICAgKiB7QGxpbmsgI2dldEFjdHVhbE1pbmltdW0gZ2V0QWN0dWFsTWluaW11bX0KKyAgICAgKiBhbmQge0BsaW5rICNnZXRBY3R1YWxNYXhpbXVtIGdldEFjdHVhbE1heGltdW19LiAgSWYgZWl0aGVyIG9mIHRob3NlIG1ldGhvZHMgdXNlcworICAgICAqIGEgc2xvdywgaXRlcmF0aXZlIGFsZ29yaXRobSBmb3IgYSBwYXJ0aWN1bGFyIGZpZWxkLCBpdCB3b3VsZCBiZQorICAgICAqIHVud2lzZSB0byBhdHRlbXB0IHRvIGNhbGwgPGNvZGU+cGluRmllbGQ8L2NvZGU+IGZvciB0aGF0IGZpZWxkLiAgSWYgeW91CisgICAgICogcmVhbGx5IGRvIG5lZWQgdG8gZG8gc28sIHlvdSBzaG91bGQgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gZG8KKyAgICAgKiBzb21ldGhpbmcgbW9yZSBlZmZpY2llbnQgZm9yIHRoYXQgZmllbGQuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGZpZWxkIFRoZSBjYWxlbmRhciBmaWVsZCB3aG9zZSB2YWx1ZSBzaG91bGQgYmUgcGlubmVkLgorICAgICAqCisgICAgICogQHNlZSAjZ2V0QWN0dWFsTWluaW11bQorICAgICAqIEBzZWUgI2dldEFjdHVhbE1heGltdW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBwaW5GaWVsZChpbnQgZmllbGQpIHsKKyAgICAgICAgaW50IG1heCA9IGdldEFjdHVhbE1heGltdW0oZmllbGQpOworICAgICAgICBpbnQgbWluID0gZ2V0QWN0dWFsTWluaW11bShmaWVsZCk7CisKKyAgICAgICAgaWYgKGZpZWxkc1tmaWVsZF0gPiBtYXgpIHsKKyAgICAgICAgICAgIHNldChmaWVsZCwgbWF4KTsKKyAgICAgICAgfSBlbHNlIGlmIChmaWVsZHNbZmllbGRdIDwgbWluKSB7CisgICAgICAgICAgICBzZXQoZmllbGQsIG1pbik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHdlZWsgbnVtYmVyIG9mIGEgZGF5LCB3aXRoaW4gYSBwZXJpb2QuIFRoaXMgbWF5IGJlIHRoZSB3ZWVrIG51bWJlciBpbgorICAgICAqIGEgeWVhciBvciB0aGUgd2VlayBudW1iZXIgaW4gYSBtb250aC4gVXN1YWxseSB0aGlzIHdpbGwgYmUgYSB2YWx1ZSA+PSAxLCBidXQgaWYKKyAgICAgKiBzb21lIGluaXRpYWwgZGF5cyBvZiB0aGUgcGVyaW9kIGFyZSBleGNsdWRlZCBmcm9tIHdlZWsgMSwgYmVjYXVzZQorICAgICAqIHtAbGluayAjZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlayBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrfSBpcyA+IDEsIHRoZW4KKyAgICAgKiB0aGUgd2VlayBudW1iZXIgd2lsbCBiZSB6ZXJvIGZvciB0aG9zZQorICAgICAqIGluaXRpYWwgZGF5cy4gVGhpcyBtZXRob2QgcmVxdWlyZXMgdGhlIGRheSBudW1iZXIgYW5kIGRheSBvZiB3ZWVrIGZvciBzb21lCisgICAgICoga25vd24gZGF0ZSBpbiB0aGUgcGVyaW9kIGluIG9yZGVyIHRvIGRldGVybWluZSB0aGUgZGF5IG9mIHdlZWsKKyAgICAgKiBvbiB0aGUgZGVzaXJlZCBkYXkuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPgorICAgICAqIDxicj4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IHN1YmNsYXNzZXMgaW4gaW1wbGVtZW50aW5nIHRoZWlyCisgICAgICoge0BsaW5rICNjb21wdXRlVGltZSBjb21wdXRlVGltZX0gYW5kL29yIHtAbGluayAjY29tcHV0ZUZpZWxkcyBjb21wdXRlRmllbGRzfSBtZXRob2RzLgorICAgICAqIEl0IGlzIG9mdGVuIHVzZWZ1bCBpbiB7QGxpbmsgI2dldEFjdHVhbE1pbmltdW0gZ2V0QWN0dWFsTWluaW11bX0gYW5kCisgICAgICoge0BsaW5rICNnZXRBY3R1YWxNYXhpbXVtIGdldEFjdHVhbE1heGltdW19IGFzIHdlbGwuCisgICAgICogPHA+CisgICAgICogVGhpcyB2YXJpYW50IGlzIGhhbmR5IGZvciBjb21wdXRpbmcgdGhlIHdlZWsgbnVtYmVyIG9mIHNvbWUgb3RoZXIKKyAgICAgKiBkYXkgb2YgYSBwZXJpb2QgKG9mdGVuIHRoZSBmaXJzdCBvciBsYXN0IGRheSBvZiB0aGUgcGVyaW9kKSB3aGVuIGl0cyBkYXkKKyAgICAgKiBvZiB0aGUgd2VlayBpcyBub3Qga25vd24gYnV0IHRoZSBkYXkgbnVtYmVyIGFuZCBkYXkgb2Ygd2VlayBmb3Igc29tZSBvdGhlcgorICAgICAqIGRheSBpbiB0aGUgcGVyaW9kIChlLmcuIHRoZSBjdXJyZW50IGRhdGUpIDxlbT5pczwvZW0+IGtub3duLgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBkZXNpcmVkRGF5ICAgIFRoZSB7QGxpbmsgI0RBWV9PRl9ZRUFSIERBWV9PRl9ZRUFSfSBvcgorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IHdob3NlIHdlZWsgbnVtYmVyIGlzIGRlc2lyZWQuCisgICAgICogICAgICAgICAgICAgIFNob3VsZCBiZSAxIGZvciB0aGUgZmlyc3QgZGF5IG9mIHRoZSBwZXJpb2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF5T2ZQZXJpb2QgICBUaGUge0BsaW5rICNEQVlfT0ZfWUVBUiBEQVlfT0ZfWUVBUn0KKyAgICAgKiAgICAgICAgICAgICAgb3Ige0BsaW5rICNEQVlfT0ZfTU9OVEggREFZX09GX01PTlRIfSBmb3IgYSBkYXkgaW4gdGhlIHBlcmlvZCB3aG9zZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgI0RBWV9PRl9XRUVLIERBWV9PRl9XRUVLfSBpcyBzcGVjaWZpZWQgYnkgdGhlCisgICAgICogICAgICAgICAgICAgIDxjb2RlPmRheU9mV2VlazwvY29kZT4gcGFyYW1ldGVyLgorICAgICAqICAgICAgICAgICAgICBTaG91bGQgYmUgMSBmb3IgZmlyc3QgZGF5IG9mIHBlcmlvZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgIFRoZSB7QGxpbmsgI0RBWV9PRl9XRUVLIERBWV9PRl9XRUVLfSBmb3IgdGhlIGRheQorICAgICAqICAgICAgICAgICAgICBjb3JyZXNwb25kaW5nIHRvIHRoZSA8Y29kZT5kYXlPZlBlcmlvZDwvY29kZT4gcGFyYW1ldGVyLgorICAgICAqICAgICAgICAgICAgICAxLWJhc2VkIHdpdGggMT1TdW5kYXkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgVGhlIHdlZWsgbnVtYmVyIChvbmUtYmFzZWQpLCBvciB6ZXJvIGlmIHRoZSBkYXkgZmFsbHMgYmVmb3JlCisgICAgICogICAgICAgICAgICAgIHRoZSBmaXJzdCB3ZWVrIGJlY2F1c2UKKyAgICAgKiAgICAgICAgICAgICAge0BsaW5rICNnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrIGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWt9CisgICAgICogICAgICAgICAgICAgIGlzIG1vcmUgdGhhbiBvbmUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCB3ZWVrTnVtYmVyKGludCBkZXNpcmVkRGF5LCBpbnQgZGF5T2ZQZXJpb2QsIGludCBkYXlPZldlZWspCisgICAgeworICAgICAgICAvLyBEZXRlcm1pbmUgdGhlIGRheSBvZiB0aGUgd2VlayBvZiB0aGUgZmlyc3QgZGF5IG9mIHRoZSBwZXJpb2QKKyAgICAgICAgLy8gaW4gcXVlc3Rpb24gKGVpdGhlciBhIHllYXIgb3IgYSBtb250aCkuICBaZXJvIHJlcHJlc2VudHMgdGhlCisgICAgICAgIC8vIGZpcnN0IGRheSBvZiB0aGUgd2VlayBvbiB0aGlzIGNhbGVuZGFyLgorICAgICAgICBpbnQgcGVyaW9kU3RhcnREYXlPZldlZWsgPSAoZGF5T2ZXZWVrIC0gZ2V0Rmlyc3REYXlPZldlZWsoKSAtIGRheU9mUGVyaW9kICsgMSkgJSA3OworICAgICAgICBpZiAocGVyaW9kU3RhcnREYXlPZldlZWsgPCAwKSBwZXJpb2RTdGFydERheU9mV2VlayArPSA3OworCisgICAgICAgIC8vIENvbXB1dGUgdGhlIHdlZWsgbnVtYmVyLiAgSW5pdGlhbGx5LCBpZ25vcmUgdGhlIGZpcnN0IHdlZWssIHdoaWNoCisgICAgICAgIC8vIG1heSBiZSBmcmFjdGlvbmFsIChvciBtYXkgbm90IGJlKS4gIFdlIGFkZCBwZXJpb2RTdGFydERheU9mV2VlayBpbgorICAgICAgICAvLyBvcmRlciB0byBmaWxsIG91dCB0aGUgZmlyc3Qgd2VlaywgaWYgaXQgaXMgZnJhY3Rpb25hbC4KKyAgICAgICAgaW50IHdlZWtObyA9IChkZXNpcmVkRGF5ICsgcGVyaW9kU3RhcnREYXlPZldlZWsgLSAxKS83OworCisgICAgICAgIC8vIElmIHRoZSBmaXJzdCB3ZWVrIGlzIGxvbmcgZW5vdWdoLCB0aGVuIGNvdW50IGl0LiAgSWYKKyAgICAgICAgLy8gdGhlIG1pbmltYWwgZGF5cyBpbiB0aGUgZmlyc3Qgd2VlayBpcyBvbmUsIG9yIGlmIHRoZSBwZXJpb2Qgc3RhcnQKKyAgICAgICAgLy8gaXMgemVybywgd2UgYWx3YXlzIGluY3JlbWVudCB3ZWVrTm8uCisgICAgICAgIGlmICgoNyAtIHBlcmlvZFN0YXJ0RGF5T2ZXZWVrKSA+PSBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkpICsrd2Vla05vOworCisgICAgICAgIHJldHVybiB3ZWVrTm87CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB3ZWVrIG51bWJlciBvZiBhIGRheSwgd2l0aGluIGEgcGVyaW9kLiBUaGlzIG1heSBiZSB0aGUgd2VlayBudW1iZXIgaW4KKyAgICAgKiBhIHllYXIsIG9yIHRoZSB3ZWVrIG51bWJlciBpbiBhIG1vbnRoLiBVc3VhbGx5IHRoaXMgd2lsbCBiZSBhIHZhbHVlID49IDEsIGJ1dCBpZgorICAgICAqIHNvbWUgaW5pdGlhbCBkYXlzIG9mIHRoZSBwZXJpb2QgYXJlIGV4Y2x1ZGVkIGZyb20gd2VlayAxLCBiZWNhdXNlCisgICAgICoge0BsaW5rICNnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrIGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWt9IGlzID4gMSwKKyAgICAgKiB0aGVuIHRoZSB3ZWVrIG51bWJlciB3aWxsIGJlIHplcm8gZm9yIHRob3NlCisgICAgICogaW5pdGlhbCBkYXlzLiBUaGlzIG1ldGhvZCByZXF1aXJlcyB0aGUgZGF5IG9mIHdlZWsgZm9yIHRoZSBnaXZlbiBkYXRlIGluIG9yZGVyIHRvCisgICAgICogZGV0ZXJtaW5lIHRoZSByZXN1bHQuCisgICAgICogPHA+CisgICAgICogPGI+U3ViY2xhc3Npbmc6PC9iPgorICAgICAqIDxicj4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IHN1YmNsYXNzZXMgaW4gaW1wbGVtZW50aW5nIHRoZWlyCisgICAgICoge0BsaW5rICNjb21wdXRlVGltZSBjb21wdXRlVGltZX0gYW5kL29yIHtAbGluayAjY29tcHV0ZUZpZWxkcyBjb21wdXRlRmllbGRzfSBtZXRob2RzLgorICAgICAqIEl0IGlzIG9mdGVuIHVzZWZ1bCBpbiB7QGxpbmsgI2dldEFjdHVhbE1pbmltdW0gZ2V0QWN0dWFsTWluaW11bX0gYW5kCisgICAgICoge0BsaW5rICNnZXRBY3R1YWxNYXhpbXVtIGdldEFjdHVhbE1heGltdW19IGFzIHdlbGwuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGRheU9mUGVyaW9kICAgVGhlIHtAbGluayAjREFZX09GX1lFQVIgREFZX09GX1lFQVJ9IG9yCisgICAgICogICAgICAgICAgICAgICAgICAgICAge0BsaW5rICNEQVlfT0ZfTU9OVEggREFZX09GX01PTlRIfSB3aG9zZSB3ZWVrIG51bWJlciBpcyBkZXNpcmVkLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIFNob3VsZCBiZSAxIGZvciB0aGUgZmlyc3QgZGF5IG9mIHRoZSBwZXJpb2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrICAgICBUaGUge0BsaW5rICNEQVlfT0ZfV0VFSyBEQVlfT0ZfV0VFS30gZm9yIHRoZSBkYXkKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBjb3JyZXNwb25kaW5nIHRvIHRoZSA8Y29kZT5kYXlPZlBlcmlvZDwvY29kZT4gcGFyYW1ldGVyLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIDEtYmFzZWQgd2l0aCAxPVN1bmRheS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBUaGUgd2VlayBudW1iZXIgKG9uZS1iYXNlZCksIG9yIHplcm8gaWYgdGhlIGRheSBmYWxscyBiZWZvcmUKKyAgICAgKiAgICAgICAgICAgICAgdGhlIGZpcnN0IHdlZWsgYmVjYXVzZQorICAgICAqICAgICAgICAgICAgICB7QGxpbmsgI2dldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgZ2V0TWluaW1hbERheXNJbkZpcnN0V2Vla30KKyAgICAgKiAgICAgICAgICAgICAgaXMgbW9yZSB0aGFuIG9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IHdlZWtOdW1iZXIoaW50IGRheU9mUGVyaW9kLCBpbnQgZGF5T2ZXZWVrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdlZWtOdW1iZXIoZGF5T2ZQZXJpb2QsIGRheU9mUGVyaW9kLCBkYXlPZldlZWspOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENvbnN0YW50cworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogW05FV10KKyAgICAgKiBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgZ2l2ZW4gdGltZSBhbmQgdGhlIHRpbWUgdGhpcworICAgICAqIGNhbGVuZGFyIG9iamVjdCBpcyBzZXQgdG8uICBJZiB0aGlzIGNhbGVuZGFyIGlzIHNldAorICAgICAqIDxlbT5iZWZvcmU8L2VtPiB0aGUgZ2l2ZW4gdGltZSwgdGhlIHJldHVybmVkIHZhbHVlIHdpbGwgYmUKKyAgICAgKiBwb3NpdGl2ZS4gIElmIHRoaXMgY2FsZW5kYXIgaXMgc2V0IDxlbT5hZnRlcjwvZW0+IHRoZSBnaXZlbgorICAgICAqIHRpbWUsIHRoZSByZXR1cm5lZCB2YWx1ZSB3aWxsIGJlIG5lZ2F0aXZlLiAgVGhlCisgICAgICogPGNvZGU+ZmllbGQ8L2NvZGU+IHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHVuaXRzIG9mIHRoZSByZXR1cm4KKyAgICAgKiB2YWx1ZS4gIEZvciBleGFtcGxlLCBpZiA8Y29kZT5maWVsZERpZmZlcmVuY2Uod2hlbiwKKyAgICAgKiBDYWxlbmRhci5NT05USCk8L2NvZGU+IHJldHVybnMgMywgdGhlbiB0aGlzIGNhbGVuZGFyIGlzIHNldCB0bworICAgICAqIDMgbW9udGhzIGJlZm9yZSA8Y29kZT53aGVuPC9jb2RlPiwgYW5kIHBvc3NpYmx5IHNvbWUgYWRkaXRpb25hbAorICAgICAqIHRpbWUgbGVzcyB0aGFuIG9uZSBtb250aC4KKyAgICAgKgorICAgICAqIDxwPkFzIGEgc2lkZSBlZmZlY3Qgb2YgdGhpcyBjYWxsLCB0aGlzIGNhbGVuZGFyIGlzIGFkdmFuY2VkCisgICAgICogdG93YXJkIDxjb2RlPndoZW48L2NvZGU+IGJ5IHRoZSBnaXZlbiBhbW91bnQuICBUaGF0IGlzLCBjYWxsaW5nCisgICAgICogdGhpcyBtZXRob2QgaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBjYWxsaW5nIDxjb2RlPmFkZChmaWVsZCwKKyAgICAgKiBuKTwvY29kZT4sIHdoZXJlIDxjb2RlPm48L2NvZGU+IGlzIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICoKKyAgICAgKiA8cD5Vc2FnZTogVG8gdXNlIHRoaXMgbWV0aG9kLCBjYWxsIGl0IGZpcnN0IHdpdGggdGhlIGxhcmdlc3QKKyAgICAgKiBmaWVsZCBvZiBpbnRlcmVzdCwgdGhlbiB3aXRoIHByb2dyZXNzaXZlbHkgc21hbGxlciBmaWVsZHMuICBGb3IKKyAgICAgKiBleGFtcGxlOgorICAgICAqCisgICAgICogPHByZT4KKyAgICAgKiBpbnQgeSA9IGNhbC5maWVsZERpZmZlcmVuY2Uod2hlbiwgQ2FsZW5kYXIuWUVBUik7CisgICAgICogaW50IG0gPSBjYWwuZmllbGREaWZmZXJlbmNlKHdoZW4sIENhbGVuZGFyLk1PTlRIKTsKKyAgICAgKiBpbnQgZCA9IGNhbC5maWVsZERpZmZlcmVuY2Uod2hlbiwgQ2FsZW5kYXIuREFURSk7PC9wcmU+CisgICAgICoKKyAgICAgKiBjb21wdXRlcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIDxjb2RlPmNhbDwvY29kZT4gYW5kCisgICAgICogPGNvZGU+d2hlbjwvY29kZT4gaW4geWVhcnMsIG1vbnRocywgYW5kIGRheXMuCisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiA8Y29kZT5maWVsZERpZmZlcmVuY2UoKTwvY29kZT4gaXMKKyAgICAgKiA8ZW0+YXN5bW1ldHJpY2FsPC9lbT4uICBUaGF0IGlzLCBpbiB0aGUgZm9sbG93aW5nIGNvZGU6CisgICAgICoKKyAgICAgKiA8cHJlPgorICAgICAqIGNhbC5zZXRUaW1lKGRhdGUxKTsKKyAgICAgKiBpbnQgbTEgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUyLCBDYWxlbmRhci5NT05USCk7CisgICAgICogaW50IGQxID0gY2FsLmZpZWxkRGlmZmVyZW5jZShkYXRlMiwgQ2FsZW5kYXIuREFURSk7CisgICAgICogY2FsLnNldFRpbWUoZGF0ZTIpOworICAgICAqIGludCBtMiA9IGNhbC5maWVsZERpZmZlcmVuY2UoZGF0ZTEsIENhbGVuZGFyLk1PTlRIKTsKKyAgICAgKiBpbnQgZDIgPSBjYWwuZmllbGREaWZmZXJlbmNlKGRhdGUxLCBDYWxlbmRhci5EQVRFKTs8L3ByZT4KKyAgICAgKgorICAgICAqIG9uZSBtaWdodCBleHBlY3QgdGhhdCA8Y29kZT5tMSA9PSAtbTIgJiYgZDEgPT0gLWQyPC9jb2RlPi4KKyAgICAgKiBIb3dldmVyLCB0aGlzIGlzIG5vdCBnZW5lcmFsbHkgdGhlIGNhc2UsIGJlY2F1c2Ugb2YKKyAgICAgKiBpcnJlZ3VsYXJpdGllcyBpbiB0aGUgdW5kZXJseWluZyBjYWxlbmRhciBzeXN0ZW0gKGUuZy4sIHRoZQorICAgICAqIEdyZWdvcmlhbiBjYWxlbmRhciBoYXMgYSB2YXJ5aW5nIG51bWJlciBvZiBkYXlzIHBlciBtb250aCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gd2hlbiB0aGUgZGF0ZSB0byBjb21wYXJlIHRoaXMgY2FsZW5kYXIncyB0aW1lIHRvCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBmaWVsZCBpbiB3aGljaCB0byBjb21wdXRlIHRoZSByZXN1bHQKKyAgICAgKiBAcmV0dXJuIHRoZSBkaWZmZXJlbmNlLCBlaXRoZXIgcG9zaXRpdmUgb3IgbmVnYXRpdmUsIGJldHdlZW4KKyAgICAgKiB0aGlzIGNhbGVuZGFyJ3MgdGltZSBhbmQgPGNvZGU+d2hlbjwvY29kZT4sIGluIHRlcm1zIG9mCisgICAgICogPGNvZGU+ZmllbGQ8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZmllbGREaWZmZXJlbmNlKERhdGUgd2hlbiwgaW50IGZpZWxkKSB7CisgICAgICAgIGludCBtaW4gPSAwOworICAgICAgICBsb25nIHN0YXJ0TXMgPSBnZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgbG9uZyB0YXJnZXRNcyA9IHdoZW4uZ2V0VGltZSgpOworICAgICAgICAvLyBBbHdheXMgYWRkIGZyb20gdGhlIHN0YXJ0IG1pbGxpcy4gIFRoaXMgYWNjb21vZGF0ZXMKKyAgICAgICAgLy8gb3BlcmF0aW9ucyBsaWtlIGFkZGluZyB5ZWFycyBmcm9tIEZlYnJ1YXJ5IDI5LCAyMDAwIHVwIHRvCisgICAgICAgIC8vIEZlYnJ1YXJ5IDI5LCAyMDA0LiAgSWYgMSwgMSwgMSwgMSBpcyBhZGRlZCB0byB0aGUgeWVhcgorICAgICAgICAvLyBmaWVsZCwgdGhlIERPTSBnZXRzIHBpbm5lZCB0byAyOCBhbmQgc3RheXMgdGhlcmUsIGdpdmluZyBhbgorICAgICAgICAvLyBpbmNvcnJlY3QgRE9NIGRpZmZlcmVuY2Ugb2YgMS4gIFdlIGhhdmUgdG8gYWRkIDEsIHJlc2V0LCAyLAorICAgICAgICAvLyByZXNldCwgMywgcmVzZXQsIDQuCisgICAgICAgIGlmIChzdGFydE1zIDwgdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgIGludCBtYXggPSAxOworICAgICAgICAgICAgLy8gRmluZCBhIHZhbHVlIHRoYXQgaXMgdG9vIGxhcmdlCisgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHN0YXJ0TXMpOworICAgICAgICAgICAgICAgIGFkZChmaWVsZCwgbWF4KTsKKyAgICAgICAgICAgICAgICBsb25nIG1zID0gZ2V0VGltZUluTWlsbGlzKCk7CisgICAgICAgICAgICAgICAgaWYgKG1zID09IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXg7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtcyA+IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1heCA8PD0gMTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1heCA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpZWxkIGRpZmZlcmVuY2UgdG9vIGxhcmdlIHRvIGZpdCBpbnRvIGludAorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIERvIGEgYmluYXJ5IHNlYXJjaAorICAgICAgICAgICAgd2hpbGUgKChtYXggLSBtaW4pID4gMSkgeworICAgICAgICAgICAgICAgIGludCB0ID0gKG1pbiArIG1heCkgLyAyOworICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyhzdGFydE1zKTsKKyAgICAgICAgICAgICAgICBhZGQoZmllbGQsIHQpOworICAgICAgICAgICAgICAgIGxvbmcgbXMgPSBnZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgICAgICAgICBpZiAobXMgPT0gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtcyA+IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIG1heCA9IHQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbWluID0gdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoc3RhcnRNcyA+IHRhcmdldE1zKSB7CisgICAgICAgICAgICBpZiAoZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHdvcmtzLCBhbmQgbWFrZXMgdGhlIGNvZGUgc21hbGxlciwgYnV0IGNvc3RzCisgICAgICAgICAgICAgICAgLy8gYW4gZXh0cmEgb2JqZWN0IGNyZWF0aW9uIGFuZCBhbiBleHRyYSBjb3VwbGUgY3ljbGVzCisgICAgICAgICAgICAgICAgLy8gb2YgY2FsZW5kYXIgY29tcHV0YXRpb24uCisgICAgICAgICAgICAgICAgc2V0VGltZUluTWlsbGlzKHRhcmdldE1zKTsKKyAgICAgICAgICAgICAgICBtaW4gPSAtZmllbGREaWZmZXJlbmNlKG5ldyBEYXRlKHN0YXJ0TXMpLCBmaWVsZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgbWF4ID0gLTE7CisgICAgICAgICAgICAvLyBGaW5kIGEgdmFsdWUgdGhhdCBpcyB0b28gc21hbGwKKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXMoc3RhcnRNcyk7CisgICAgICAgICAgICAgICAgYWRkKGZpZWxkLCBtYXgpOworICAgICAgICAgICAgICAgIGxvbmcgbXMgPSBnZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgICAgICAgICBpZiAobXMgPT0gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1heDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1zIDwgdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbWF4IDw8PSAxOworICAgICAgICAgICAgICAgICAgICBpZiAobWF4ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpZWxkIGRpZmZlcmVuY2UgdG9vIGxhcmdlIHRvIGZpdCBpbnRvIGludAorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIERvIGEgYmluYXJ5IHNlYXJjaAorICAgICAgICAgICAgd2hpbGUgKChtaW4gLSBtYXgpID4gMSkgeworICAgICAgICAgICAgICAgIGludCB0ID0gKG1pbiArIG1heCkgLyAyOworICAgICAgICAgICAgICAgIHNldFRpbWVJbk1pbGxpcyhzdGFydE1zKTsKKyAgICAgICAgICAgICAgICBhZGQoZmllbGQsIHQpOworICAgICAgICAgICAgICAgIGxvbmcgbXMgPSBnZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgICAgICAgICBpZiAobXMgPT0gdGFyZ2V0TXMpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtcyA8IHRhcmdldE1zKSB7CisgICAgICAgICAgICAgICAgICAgIG1heCA9IHQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbWluID0gdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gU2V0IGNhbGVuZGFyIHRvIGVuZCBwb2ludAorICAgICAgICBzZXRUaW1lSW5NaWxsaXMoc3RhcnRNcyk7CisgICAgICAgIGFkZChmaWVsZCwgbWluKTsKKyAgICAgICAgcmV0dXJuIG1pbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gdGltZSB6b25lIHZhbHVlLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRpbWVab25lKFRpbWVab25lIHZhbHVlKQorICAgIHsKKyAgICAgICAgem9uZSA9IHZhbHVlOworICAgICAgICAvKiBSZWNvbXB1dGUgdGhlIGZpZWxkcyBmcm9tIHRoZSB0aW1lIHVzaW5nIHRoZSBuZXcgem9uZS4gIFRoaXMgYWxzbworICAgICAgICAgKiB3b3JrcyBpZiBpc1RpbWVTZXQgaXMgZmFsc2UgKGFmdGVyIGEgY2FsbCB0byBzZXQoKSkuICBJbiB0aGF0IGNhc2UKKyAgICAgICAgICogdGhlIHRpbWUgd2lsbCBiZSBjb21wdXRlZCBmcm9tIHRoZSBmaWVsZHMgdXNpbmcgdGhlIG5ldyB6b25lLCB0aGVuCisgICAgICAgICAqIHRoZSBmaWVsZHMgd2lsbCBnZXQgcmVjb21wdXRlZCBmcm9tIHRoYXQuICBDb25zaWRlciB0aGUgc2VxdWVuY2Ugb2YKKyAgICAgICAgICogY2FsbHM6IGNhbC5zZXRUaW1lWm9uZShFU1QpOyBjYWwuc2V0KEhPVVIsIDEpOyBjYWwuc2V0VGltZVpvbmUoUFNUKS4KKyAgICAgICAgICogSXMgY2FsIHNldCB0byAxIG8nY2xvY2sgRVNUIG9yIDEgbydjbG9jayBQU1Q/ICBBbnN3ZXI6IFBTVC4gIE1vcmUKKyAgICAgICAgICogZ2VuZXJhbGx5LCBhIGNhbGwgdG8gc2V0VGltZVpvbmUoKSBhZmZlY3RzIGNhbGxzIHRvIHNldCgpIEJFRk9SRSBBTkQKKyAgICAgICAgICogQUZURVIgaXQgdXAgdG8gdGhlIG5leHQgY2FsbCB0byBjb21wbGV0ZSgpLgorICAgICAgICAgKi8KKyAgICAgICAgYXJlRmllbGRzU2V0ID0gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSB6b25lLgorICAgICAqIEByZXR1cm4gdGhlIHRpbWUgem9uZSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFRpbWVab25lIGdldFRpbWVab25lKCkKKyAgICB7CisgICAgICAgIHJldHVybiB6b25lOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNwZWNpZnkgd2hldGhlciBvciBub3QgZGF0ZS90aW1lIGludGVycHJldGF0aW9uIGlzIHRvIGJlIGxlbmllbnQuICBXaXRoCisgICAgICogbGVuaWVudCBpbnRlcnByZXRhdGlvbiwgYSBkYXRlIHN1Y2ggYXMgIkZlYnJ1YXJ5IDk0MiwgMTk5NiIgd2lsbCBiZQorICAgICAqIHRyZWF0ZWQgYXMgYmVpbmcgZXF1aXZhbGVudCB0byB0aGUgOTQxc3QgZGF5IGFmdGVyIEZlYnJ1YXJ5IDEsIDE5OTYuCisgICAgICogV2l0aCBzdHJpY3QgaW50ZXJwcmV0YXRpb24sIHN1Y2ggZGF0ZXMgd2lsbCBjYXVzZSBhbiBleGNlcHRpb24gdG8gYmUKKyAgICAgKiB0aHJvd24uCisgICAgICoKKyAgICAgKiBAc2VlIERhdGVGb3JtYXQjc2V0TGVuaWVudAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldExlbmllbnQoYm9vbGVhbiBsZW5pZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5sZW5pZW50ID0gbGVuaWVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZWxsIHdoZXRoZXIgZGF0ZS90aW1lIGludGVycHJldGF0aW9uIGlzIHRvIGJlIGxlbmllbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNMZW5pZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiBsZW5pZW50OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgd2hhdCB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIGlzOyBlLmcuLCBTdW5kYXkgaW4gVVMsCisgICAgICogTW9uZGF5IGluIEZyYW5jZS4KKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIGdpdmVuIGZpcnN0IGRheSBvZiB0aGUgd2Vlay4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGaXJzdERheU9mV2VlayhpbnQgdmFsdWUpCisgICAgeworICAgICAgICBpZiAoZmlyc3REYXlPZldlZWsgIT0gdmFsdWUpIHsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IFNVTkRBWSB8fCB2YWx1ZSA+IFNBVFVSREFZKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBkYXkgb2Ygd2VlayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZmlyc3REYXlPZldlZWsgPSB2YWx1ZTsKKyAgICAgICAgICAgIGFyZUZpZWxkc1NldCA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB3aGF0IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgaXM7IGUuZy4sIFN1bmRheSBpbiBVUywKKyAgICAgKiBNb25kYXkgaW4gRnJhbmNlLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZpcnN0RGF5T2ZXZWVrKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmaXJzdERheU9mV2VlazsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHdoYXQgdGhlIG1pbmltYWwgZGF5cyByZXF1aXJlZCBpbiB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhciBhcmUuCisgICAgICogRm9yIGV4YW1wbGUsIGlmIHRoZSBmaXJzdCB3ZWVrIGlzIGRlZmluZWQgYXMgb25lIHRoYXQgY29udGFpbnMgdGhlIGZpcnN0CisgICAgICogZGF5IG9mIHRoZSBmaXJzdCBtb250aCBvZiBhIHllYXIsIGNhbGwgdGhlIG1ldGhvZCB3aXRoIHZhbHVlIDEuIElmIGl0CisgICAgICogbXVzdCBiZSBhIGZ1bGwgd2VlaywgdXNlIHZhbHVlIDcuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSBnaXZlbiBtaW5pbWFsIGRheXMgcmVxdWlyZWQgaW4gdGhlIGZpcnN0IHdlZWsKKyAgICAgKiBvZiB0aGUgeWVhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIC8vIFZhbHVlcyBsZXNzIHRoYW4gMSBoYXZlIHRoZSBzYW1lIGVmZmVjdCBhcyAxOyB2YWx1ZXMgZ3JlYXRlcgorICAgICAgICAvLyB0aGFuIDcgaGF2ZSB0aGUgc2FtZSBlZmZlY3QgYXMgNy4gSG93ZXZlciwgd2Ugbm9ybWFsaXplIHZhbHVlcworICAgICAgICAvLyBzbyBvcGVyYXRvcj09IGFuZCBzbyBmb3J0aCB3b3JrLgorICAgICAgICBpZiAodmFsdWUgPCAxKSB7CisgICAgICAgICAgICB2YWx1ZSA9IDE7CisgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPiA3KSB7CisgICAgICAgICAgICB2YWx1ZSA9IDc7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1pbmltYWxEYXlzSW5GaXJzdFdlZWsgIT0gdmFsdWUpIHsKKyAgICAgICAgICAgIG1pbmltYWxEYXlzSW5GaXJzdFdlZWsgPSB2YWx1ZTsKKyAgICAgICAgICAgIGFyZUZpZWxkc1NldCA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB3aGF0IHRoZSBtaW5pbWFsIGRheXMgcmVxdWlyZWQgaW4gdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIgYXJlOworICAgICAqIGUuZy4sIGlmIHRoZSBmaXJzdCB3ZWVrIGlzIGRlZmluZWQgYXMgb25lIHRoYXQgY29udGFpbnMgdGhlIGZpcnN0IGRheQorICAgICAqIG9mIHRoZSBmaXJzdCBtb250aCBvZiBhIHllYXIsIGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsgcmV0dXJucyAxLiBJZgorICAgICAqIHRoZSBtaW5pbWFsIGRheXMgcmVxdWlyZWQgbXVzdCBiZSBhIGZ1bGwgd2VlaywgZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaworICAgICAqIHJldHVybnMgNy4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaW5pbWFsIGRheXMgcmVxdWlyZWQgaW4gdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtaW5pbWFsRGF5c0luRmlyc3RXZWVrOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU1JVFNbXVtdID0geworICAgICAgICAvLyAgICBNaW5pbXVtICBHcmVhdGVzdCBtaW4gICAgICBMZWFzdCBtYXggICBHcmVhdGVzdCBtYXgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBFUkEKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBZRUFSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTU9OVEgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBXRUVLX09GX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBXRUVLX09GX01PTlRICisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gREFZX09GX01PTlRICisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gREFZX09GX1lFQVIKKyAgICAgICAgeyAgICAgICAgICAgMSwgICAgICAgICAgICAxLCAgICAgICAgICAgICA3LCAgICAgICAgICAgICA3ICB9LCAvLyBEQVlfT0ZfV0VFSworICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERBWV9PRl9XRUVLX0lOX01PTlRICisgICAgICAgIHsgICAgICAgICAgIDAsICAgICAgICAgICAgMCwgICAgICAgICAgICAgMSwgICAgICAgICAgICAgMSAgfSwgLy8gQU1fUE0KKyAgICAgICAgeyAgICAgICAgICAgMCwgICAgICAgICAgICAwLCAgICAgICAgICAgIDExLCAgICAgICAgICAgIDExICB9LCAvLyBIT1VSCisgICAgICAgIHsgICAgICAgICAgIDAsICAgICAgICAgICAgMCwgICAgICAgICAgICAyMywgICAgICAgICAgICAyMyAgfSwgLy8gSE9VUl9PRl9EQVkKKyAgICAgICAgeyAgICAgICAgICAgMCwgICAgICAgICAgICAwLCAgICAgICAgICAgIDU5LCAgICAgICAgICAgIDU5ICB9LCAvLyBNSU5VVEUKKyAgICAgICAgeyAgICAgICAgICAgMCwgICAgICAgICAgICAwLCAgICAgICAgICAgIDU5LCAgICAgICAgICAgIDU5ICB9LCAvLyBTRUNPTkQKKyAgICAgICAgeyAgICAgICAgICAgMCwgICAgICAgICAgICAwLCAgICAgICAgICAgOTk5LCAgICAgICAgICAgOTk5ICB9LCAvLyBNSUxMSVNFQ09ORAorICAgICAgICB7LTEyKk9ORV9IT1VSLCAtMTIqT05FX0hPVVIsICAgMTIqT05FX0hPVVIsICAgMTIqT05FX0hPVVIgIH0sIC8vIFpPTkVfT0ZGU0VUCisgICAgICAgIHsgICAgICAgICAgIDAsICAgICAgICAgICAgMCwgICAgMSpPTkVfSE9VUiwgICAgMSpPTkVfSE9VUiAgfSwgLy8gRFNUX09GRlNFVAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFlFQVJfV09ZCisgICAgICAgIHsgICAgICAgICAgIDEsICAgICAgICAgICAgMSwgICAgICAgICAgICAgNywgICAgICAgICAgICAgNyAgfSwgLy8gRE9XX0xPQ0FMCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRVhURU5ERURfWUVBUgorICAgICAgICB7IC0weDdGMDAwMDAwLCAgLTB4N0YwMDAwMDAsICAgIDB4N0YwMDAwMDAsICAgIDB4N0YwMDAwMDAgIH0sIC8vIEpVTElBTl9EQVkKKyAgICAgICAgeyAgICAgICAgICAgMCwgICAgICAgICAgICAwLCAyNCpPTkVfSE9VUi0xLCAyNCpPTkVfSE9VUi0xICB9LCAvLyBNSUxMSVNFQ09ORFNfSU5fREFZCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFN1YmNsYXNzIEFQSSBmb3IgZGVmaW5pbmcgbGltaXRzIG9mIGRpZmZlcmVudCB0eXBlcy4KKyAgICAgKiBTdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kIHRvIHJldHVybiBsaW1pdHMgZm9yIHRoZQorICAgICAqIGZvbGxvd2luZyBmaWVsZHM6CisgICAgICoKKyAgICAgKiA8cHJlPkVSQQorICAgICAqIFlFQVIKKyAgICAgKiBNT05USAorICAgICAqIFdFRUtfT0ZfWUVBUgorICAgICAqIFdFRUtfT0ZfTU9OVEgKKyAgICAgKiBEQVlfT0ZfTU9OVEgKKyAgICAgKiBEQVlfT0ZfWUVBUgorICAgICAqIERBWV9PRl9XRUVLX0lOX01PTlRICisgICAgICogWUVBUl9XT1kKKyAgICAgKiBFWFRFTkRFRF9ZRUFSPC9wcmU+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZmllbGQgb25lIG9mIHRoZSBhYm92ZSBmaWVsZCBudW1iZXJzCisgICAgICogQHBhcmFtIGxpbWl0VHlwZSBvbmUgb2YgPGNvZGU+TUlOSU1VTTwvY29kZT4sIDxjb2RlPkdSRUFURVNUX01JTklNVU08L2NvZGU+LAorICAgICAqIDxjb2RlPkxFQVNUX01BWElNVU08L2NvZGU+LCBvciA8Y29kZT5NQVhJTVVNPC9jb2RlPgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGFic3RyYWN0IHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIGxpbWl0IGZvciBhIGZpZWxkLgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZmllbGQsIGZyb20gMC4uPC9jb2RlPmdldEZpZWxkQ291bnQoKS0xPC9jb2RlPgorICAgICAqIEBwYXJhbSBsaW1pdFR5cGUgdGhlIHR5cGUgc3BlY2lmaWVyIGZvciB0aGUgbGltaXQKKyAgICAgKiBAc2VlICNNSU5JTVVNCisgICAgICogQHNlZSAjR1JFQVRFU1RfTUlOSU1VTQorICAgICAqIEBzZWUgI0xFQVNUX01BWElNVU0KKyAgICAgKiBAc2VlICNNQVhJTVVNCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBnZXRMaW1pdChpbnQgZmllbGQsIGludCBsaW1pdFR5cGUpIHsKKyAgICAgICAgc3dpdGNoIChmaWVsZCkgeworICAgICAgICBjYXNlIERBWV9PRl9XRUVLOgorICAgICAgICBjYXNlIEFNX1BNOgorICAgICAgICBjYXNlIEhPVVI6CisgICAgICAgIGNhc2UgSE9VUl9PRl9EQVk6CisgICAgICAgIGNhc2UgTUlOVVRFOgorICAgICAgICBjYXNlIFNFQ09ORDoKKyAgICAgICAgY2FzZSBNSUxMSVNFQ09ORDoKKyAgICAgICAgY2FzZSBaT05FX09GRlNFVDoKKyAgICAgICAgY2FzZSBEU1RfT0ZGU0VUOgorICAgICAgICBjYXNlIERPV19MT0NBTDoKKyAgICAgICAgY2FzZSBKVUxJQU5fREFZOgorICAgICAgICBjYXNlIE1JTExJU0VDT05EU19JTl9EQVk6CisgICAgICAgICAgICByZXR1cm4gTElNSVRTW2ZpZWxkXVtsaW1pdFR5cGVdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBoYW5kbGVHZXRMaW1pdChmaWVsZCwgbGltaXRUeXBlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMaW1pdCB0eXBlIGZvciA8Y29kZT5nZXRMaW1pdCgpPC9jb2RlPiBhbmQgPGNvZGU+aGFuZGxlR2V0TGltaXQoKTwvY29kZT4KKyAgICAgKiBpbmRpY2F0aW5nIHRoZSBtaW5pbXVtIHZhbHVlIHRoYXQgYSBmaWVsZCBjYW4gdGFrZSAobGVhc3QgbWluaW11bSkuCisgICAgICogQHNlZSAjZ2V0TGltaXQKKyAgICAgKiBAc2VlICNoYW5kbGVHZXRMaW1pdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IE1JTklNVU0gPSAwOworCisgICAgLyoqCisgICAgICogTGltaXQgdHlwZSBmb3IgPGNvZGU+Z2V0TGltaXQoKTwvY29kZT4gYW5kIDxjb2RlPmhhbmRsZUdldExpbWl0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgZ3JlYXRlc3QgbWluaW11bSB2YWx1ZSB0aGF0IGEgZmllbGQgY2FuIHRha2UuCisgICAgICogQHNlZSAjZ2V0TGltaXQKKyAgICAgKiBAc2VlICNoYW5kbGVHZXRMaW1pdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IEdSRUFURVNUX01JTklNVU0gPSAxOworCisgICAgLyoqCisgICAgICogTGltaXQgdHlwZSBmb3IgPGNvZGU+Z2V0TGltaXQoKTwvY29kZT4gYW5kIDxjb2RlPmhhbmRsZUdldExpbWl0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgbGVhc3QgbWF4aW11bSB2YWx1ZSB0aGF0IGEgZmllbGQgY2FuIHRha2UuCisgICAgICogQHNlZSAjZ2V0TGltaXQKKyAgICAgKiBAc2VlICNoYW5kbGVHZXRMaW1pdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IExFQVNUX01BWElNVU0gPSAyOworCisgICAgLyoqCisgICAgICogTGltaXQgdHlwZSBmb3IgPGNvZGU+Z2V0TGltaXQoKTwvY29kZT4gYW5kIDxjb2RlPmhhbmRsZUdldExpbWl0KCk8L2NvZGU+CisgICAgICogaW5kaWNhdGluZyB0aGUgbWF4aW11bSB2YWx1ZSB0aGF0IGEgZmllbGQgY2FuIHRha2UgKGdyZWF0ZXN0IG1heGltdW0pLgorICAgICAqIEBzZWUgI2dldExpbWl0CisgICAgICogQHNlZSAjaGFuZGxlR2V0TGltaXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNQVhJTVVNID0gMzsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG1pbmltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIGUuZy4sIGZvciBHcmVnb3JpYW4gREFZX09GX01PTlRILCAxLgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBtaW5pbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldE1pbmltdW0oaW50IGZpZWxkKSB7CisgICAgICAgIHJldHVybiBnZXRMaW1pdChmaWVsZCwgTUlOSU1VTSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogZS5nLiBmb3IgR3JlZ29yaWFuIERBWV9PRl9NT05USCwgMzEuCisgICAgICogQHBhcmFtIGZpZWxkIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEByZXR1cm4gdGhlIG1heGltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0TWF4aW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGdldExpbWl0KGZpZWxkLCBNQVhJTVVNKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBoaWdoZXN0IG1pbmltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiBmaWVsZCBpZiB2YXJpZXMuCisgICAgICogT3RoZXJ3aXNlIHNhbWUgYXMgZ2V0TWluaW11bSgpLiBGb3IgR3JlZ29yaWFuLCBubyBkaWZmZXJlbmNlLgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBoaWdoZXN0IG1pbmltdW0gdmFsdWUgZm9yIHRoZSBnaXZlbiB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0R3JlYXRlc3RNaW5pbXVtKGludCBmaWVsZCkgeworICAgICAgICByZXR1cm4gZ2V0TGltaXQoZmllbGQsIEdSRUFURVNUX01JTklNVU0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxvd2VzdCBtYXhpbXVtIHZhbHVlIGZvciB0aGUgZ2l2ZW4gZmllbGQgaWYgdmFyaWVzLgorICAgICAqIE90aGVyd2lzZSBzYW1lIGFzIGdldE1heGltdW0oKS4gZS5nLiwgZm9yIEdyZWdvcmlhbiBEQVlfT0ZfTU9OVEgsIDI4LgorICAgICAqIEBwYXJhbSBmaWVsZCB0aGUgZ2l2ZW4gdGltZSBmaWVsZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb3dlc3QgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIGdpdmVuIHRpbWUgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIGludCBnZXRMZWFzdE1heGltdW0oaW50IGZpZWxkKSB7CisgICAgICAgIHJldHVybiBnZXRMaW1pdChmaWVsZCwgTEVBU1RfTUFYSU1VTSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gV2Vla2VuZCBzdXBwb3J0IC0tIGRldGVybWluaW5nIHdoaWNoIGRheXMgb2YgdGhlIHdlZWsgYXJlIHRoZSB3ZWVrZW5kCisgICAgLy8gaW4gYSBnaXZlbiBsb2NhbGUKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBkYXkgb2YgdGhlIHdlZWsgaXMgYSB3ZWVrZGF5LCBhCisgICAgICogd2Vla2VuZCBkYXksIG9yIGEgZGF5IHRoYXQgdHJhbnNpdGlvbnMgZnJvbSBvbmUgdG8gdGhlIG90aGVyLAorICAgICAqIGluIHRoaXMgY2FsZW5kYXIgc3lzdGVtLiAgSWYgYSB0cmFuc2l0aW9uIG9jY3VycyBhdCBtaWRuaWdodCwKKyAgICAgKiB0aGVuIHRoZSBkYXlzIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHRyYW5zaXRpb24gd2lsbCBoYXZlIHRoZQorICAgICAqIHR5cGUgV0VFS0RBWSBvciBXRUVLRU5ELiAgSWYgYSB0cmFuc2l0aW9uIG9jY3VycyBhdCBhIHRpbWUKKyAgICAgKiBvdGhlciB0aGFuIG1pZG5pZ2h0LCB0aGVuIHRoZSBkYXkgb2YgdGhlIHRyYW5zaXRpb24gd2lsbCBoYXZlCisgICAgICogdGhlIHR5cGUgV0VFS0VORF9PTlNFVCBvciBXRUVLRU5EX0NFQVNFLiAgSW4gdGhpcyBjYXNlLCB0aGUKKyAgICAgKiBtZXRob2QgZ2V0V2Vla2VuZFRyYW5zaXRpb24oKSB3aWxsIHJldHVybiB0aGUgcG9pbnQgb2YKKyAgICAgKiB0cmFuc2l0aW9uLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgZWl0aGVyIFNVTkRBWSwgTU9OREFZLCBUVUVTREFZLCBXRURORVNEQVksCisgICAgICogVEhVUlNEQVksIEZSSURBWSwgb3IgU0FUVVJEQVkKKyAgICAgKiBAcmV0dXJuIGVpdGhlciBXRUVLREFZLCBXRUVLRU5ELCBXRUVLRU5EX09OU0VULCBvcgorICAgICAqIFdFRUtFTkRfQ0VBU0UKKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBkYXlPZldlZWsgaXMgbm90CisgICAgICogYmV0d2VlbiBTVU5EQVkgYW5kIFNBVFVSREFZLCBpbmNsdXNpdmUKKyAgICAgKiBAc2VlICNXRUVLREFZCisgICAgICogQHNlZSAjV0VFS0VORAorICAgICAqIEBzZWUgI1dFRUtFTkRfT05TRVQKKyAgICAgKiBAc2VlICNXRUVLRU5EX0NFQVNFCisgICAgICogQHNlZSAjZ2V0V2Vla2VuZFRyYW5zaXRpb24KKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoRGF0ZSkKKyAgICAgKiBAc2VlICNpc1dlZWtlbmQoKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RGF5T2ZXZWVrVHlwZShpbnQgZGF5T2ZXZWVrKSB7CisgICAgICAgIGlmIChkYXlPZldlZWsgPCBTVU5EQVkgfHwgZGF5T2ZXZWVrID4gU0FUVVJEQVkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZGF5IG9mIHdlZWsiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAod2Vla2VuZE9uc2V0IDwgd2Vla2VuZENlYXNlKSB7CisgICAgICAgICAgICBpZiAoZGF5T2ZXZWVrIDwgd2Vla2VuZE9uc2V0IHx8IGRheU9mV2VlayA+IHdlZWtlbmRDZWFzZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBXRUVLREFZOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGRheU9mV2VlayA+IHdlZWtlbmRDZWFzZSAmJiBkYXlPZldlZWsgPCB3ZWVrZW5kT25zZXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gV0VFS0RBWTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZGF5T2ZXZWVrID09IHdlZWtlbmRPbnNldCkgeworICAgICAgICAgICAgcmV0dXJuICh3ZWVrZW5kT25zZXRNaWxsaXMgPT0gMCkgPyBXRUVLRU5EIDogV0VFS0VORF9PTlNFVDsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGF5T2ZXZWVrID09IHdlZWtlbmRDZWFzZSkgeworICAgICAgICAgICAgcmV0dXJuICh3ZWVrZW5kQ2Vhc2VNaWxsaXMgPT0gMCkgPyBXRUVLREFZIDogV0VFS0VORF9DRUFTRTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gV0VFS0VORDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRpbWUgZHVyaW5nIHRoZSBkYXkgYXQgd2hpY2ggdGhlIHdlZWtlbmQgYmVnaW5zIG9yIGVuZCBpbgorICAgICAqIHRoaXMgY2FsZW5kYXIgc3lzdGVtLiAgSWYgZ2V0RGF5T2ZXZWVrVHlwZShkYXlPZldlZWspID09CisgICAgICogV0VFS0VORF9PTlNFVCByZXR1cm4gdGhlIHRpbWUgYXQgd2hpY2ggdGhlIHdlZWtlbmQgYmVnaW5zLiAgSWYKKyAgICAgKiBnZXREYXlPZldlZWtUeXBlKGRheU9mV2VlaykgPT0gV0VFS0VORF9DRUFTRSByZXR1cm4gdGhlIHRpbWUgYXQKKyAgICAgKiB3aGljaCB0aGUgd2Vla2VuZCBlbmRzLiAgSWYgZ2V0RGF5T2ZXZWVrVHlwZShkYXlPZldlZWspIGhhcyBzb21lCisgICAgICogb3RoZXIgdmFsdWUsIHRoZW4gdGhyb3cgYW4gZXhjZXB0aW9uLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgZWl0aGVyIFNVTkRBWSwgTU9OREFZLCBUVUVTREFZLCBXRURORVNEQVksCisgICAgICogVEhVUlNEQVksIEZSSURBWSwgb3IgU0FUVVJEQVkKKyAgICAgKiBAcmV0dXJuIHRoZSBtaWxsaXNlY29uZHMgYWZ0ZXIgbWlkbmlnaHQgYXQgd2hpY2ggdGhlCisgICAgICogd2Vla2VuZCBiZWdpbnMgb3IgZW5kcworICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIGRheU9mV2VlayBpcyBub3QKKyAgICAgKiBXRUVLRU5EX09OU0VUIG9yIFdFRUtFTkRfQ0VBU0UKKyAgICAgKiBAc2VlICNnZXREYXlPZldlZWtUeXBlCisgICAgICogQHNlZSAjaXNXZWVrZW5kKERhdGUpCisgICAgICogQHNlZSAjaXNXZWVrZW5kKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFdlZWtlbmRUcmFuc2l0aW9uKGludCBkYXlPZldlZWspIHsKKyAgICAgICAgaWYgKGRheU9mV2VlayA9PSB3ZWVrZW5kT25zZXQpIHsKKyAgICAgICAgICAgIHJldHVybiB3ZWVrZW5kT25zZXRNaWxsaXM7CisgICAgICAgIH0gZWxzZSBpZiAoZGF5T2ZXZWVrID09IHdlZWtlbmRDZWFzZSkgeworICAgICAgICAgICAgcmV0dXJuIHdlZWtlbmRDZWFzZU1pbGxpczsKKyAgICAgICAgfQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJOb3Qgd2Vla2VuZCB0cmFuc2l0aW9uIGRheSIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBkYXRlIGFuZCB0aW1lIGlzIGluIHRoZSB3ZWVrZW5kIGluCisgICAgICogdGhpcyBjYWxlbmRhciBzeXN0ZW0uICBFcXVpdmFsZW50IHRvIGNhbGxpbmcgc2V0VGltZSgpIGZvbGxvd2VkCisgICAgICogYnkgaXNXZWVrZW5kKCkuICBOb3RlOiBUaGlzIG1ldGhvZCBjaGFuZ2VzIHRoZSB0aW1lIHRoaXMKKyAgICAgKiBjYWxlbmRhciBpcyBzZXQgdG8uCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgYW5kIHRpbWUKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGRhdGUgYW5kIHRpbWUgaXMgcGFydCBvZiB0aGUKKyAgICAgKiB3ZWVrZW5kCisgICAgICogQHNlZSAjZ2V0RGF5T2ZXZWVrVHlwZQorICAgICAqIEBzZWUgI2dldFdlZWtlbmRUcmFuc2l0aW9uCisgICAgICogQHNlZSAjaXNXZWVrZW5kKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1dlZWtlbmQoRGF0ZSBkYXRlKSB7CisgICAgICAgIHNldFRpbWUoZGF0ZSk7CisgICAgICAgIHJldHVybiBpc1dlZWtlbmQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIENhbGVuZGFyJ3MgY3VycmVudCBkYXRlIGFuZCB0aW1lIGlzIGluIHRoZQorICAgICAqIHdlZWtlbmQgaW4gdGhpcyBjYWxlbmRhciBzeXN0ZW0uCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBkYXRlIGFuZCB0aW1lIGlzIHBhcnQgb2YgdGhlCisgICAgICogd2Vla2VuZAorICAgICAqIEBzZWUgI2dldERheU9mV2Vla1R5cGUKKyAgICAgKiBAc2VlICNnZXRXZWVrZW5kVHJhbnNpdGlvbgorICAgICAqIEBzZWUgI2lzV2Vla2VuZChEYXRlKQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzV2Vla2VuZCgpIHsKKyAgICAgICAgaW50IGRvdyA9ICBnZXQoREFZX09GX1dFRUspOworICAgICAgICBpbnQgZG93dCA9IGdldERheU9mV2Vla1R5cGUoZG93KTsKKyAgICAgICAgc3dpdGNoIChkb3d0KSB7CisgICAgICAgIGNhc2UgV0VFS0RBWToKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBXRUVLRU5EOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6IC8vIFRoYXQgaXMsIFdFRUtFTkRfT05TRVQgb3IgV0VFS0VORF9DRUFTRQorICAgICAgICAgICAgLy8gVXNlIGludGVybmFsR2V0KCkgYmVjYXVzZSB0aGUgYWJvdmUgY2FsbCB0byBnZXQoKSBwb3B1bGF0ZWQKKyAgICAgICAgICAgIC8vIGFsbCBmaWVsZHMuCisgICAgICAgICAgICAvLyBbTm90ZTogVGhlcmUgc2hvdWxkIGJlIGEgYmV0dGVyIHdheSB0byBnZXQgbWlsbGlzIGluIGRheS4KKyAgICAgICAgICAgIC8vICBGb3IgSUNVNEosIHN1Ym1pdCByZXF1ZXN0IGZvciBhIE1JTExJU19JTl9EQVkgZmllbGQKKyAgICAgICAgICAgIC8vICBhbmQgYSBEQVlfTlVNQkVSIGZpZWxkIChjb3VsZCBiZSBKdWxpYW4gZGF5ICMpLiAtIGFsaXVdCisgICAgICAgICAgICBpbnQgbWlsbGlzSW5EYXkgPSBpbnRlcm5hbEdldChNSUxMSVNFQ09ORCkgKyAxMDAwICogKGludGVybmFsR2V0KFNFQ09ORCkgKworICAgICAgICAgICAgICAgIDYwICogKGludGVybmFsR2V0KE1JTlVURSkgKyA2MCAqIGludGVybmFsR2V0KEhPVVJfT0ZfREFZKSkpOworICAgICAgICAgICAgaW50IHRyYW5zaXRpb24gPSBnZXRXZWVrZW5kVHJhbnNpdGlvbihkb3cpOworICAgICAgICAgICAgcmV0dXJuIChkb3d0ID09IFdFRUtFTkRfT05TRVQpCisgICAgICAgICAgICAgICAgPyAobWlsbGlzSW5EYXkgPj0gdHJhbnNpdGlvbikKKyAgICAgICAgICAgICAgICA6IChtaWxsaXNJbkRheSA8ICB0cmFuc2l0aW9uKTsKKyAgICAgICAgfQorICAgICAgICAvLyAoV2UgY2FuIG5ldmVyIHJlYWNoIHRoaXMgcG9pbnQuKQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEVuZCBvZiB3ZWVrZW5kIHN1cHBvcnQKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlcyBDbG9uZWFibGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDYWxlbmRhciBvdGhlciA9IChDYWxlbmRhcikgc3VwZXIuY2xvbmUoKTsKKworICAgICAgICAgICAgb3RoZXIuZmllbGRzID0gbmV3IGludFtmaWVsZHMubGVuZ3RoXTsKKyAgICAgICAgICAgIG90aGVyLnN0YW1wID0gbmV3IGludFtmaWVsZHMubGVuZ3RoXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGhpcy5maWVsZHMsIDAsIG90aGVyLmZpZWxkcywgMCwgZmllbGRzLmxlbmd0aCk7CisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRoaXMuc3RhbXAsIDAsIG90aGVyLnN0YW1wLCAwLCBmaWVsZHMubGVuZ3RoKTsKKworICAgICAgICAgICAgb3RoZXIuem9uZSA9IChUaW1lWm9uZSkgem9uZS5jbG9uZSgpOworICAgICAgICAgICAgcmV0dXJuIG90aGVyOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyB0aGlzIHNob3VsZG4ndCBoYXBwZW4sIHNpbmNlIHdlIGFyZSBDbG9uZWFibGUKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGNhbGVuZGFyLiBUaGlzIG1ldGhvZAorICAgICAqIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgb25seSBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLCBhbmQgdGhlCisgICAgICogZm9ybWF0IG9mIHRoZSByZXR1cm5lZCBzdHJpbmcgbWF5IHZhcnkgYmV0d2VlbiBpbXBsZW1lbnRhdGlvbnMuCisgICAgICogVGhlIHJldHVybmVkIHN0cmluZyBtYXkgYmUgZW1wdHkgYnV0IG1heSBub3QgYmUgPGNvZGU+bnVsbDwvY29kZT4uCisgICAgICoKKyAgICAgKiBAcmV0dXJuICBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOworICAgICAgICBidWZmZXIuYXBwZW5kKCJbdGltZT0iKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChpc1RpbWVTZXQgPyBTdHJpbmcudmFsdWVPZih0aW1lKSA6ICI/Iik7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIixhcmVGaWVsZHNTZXQ9Iik7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoYXJlRmllbGRzU2V0KTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiLGFyZUFsbEZpZWxkc1NldD0iKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChhcmVBbGxGaWVsZHNTZXQpOworICAgICAgICBidWZmZXIuYXBwZW5kKCIsbGVuaWVudD0iKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChsZW5pZW50KTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZCgiLHpvbmU9Iik7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoem9uZSk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIixmaXJzdERheU9mV2Vlaz0iKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChmaXJzdERheU9mV2Vlayk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIixtaW5pbWFsRGF5c0luRmlyc3RXZWVrPSIpOworICAgICAgICBidWZmZXIuYXBwZW5kKG1pbmltYWxEYXlzSW5GaXJzdFdlZWspOworICAgICAgICBmb3IgKGludCBpPTA7IGk8ZmllbGRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBidWZmZXIuYXBwZW5kKCcsJykuYXBwZW5kKEZJRUxEX05BTUVbaV0pLmFwcGVuZCgnPScpOworICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChpc1NldChpKSA/IFN0cmluZy52YWx1ZU9mKGZpZWxkc1tpXSkgOiAiPyIpOworICAgICAgICB9CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoJ10nKTsKKyAgICAgICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygpOworICAgIH0KKworICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09cHJpdmF0ZXM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBJbnRlcm5hbCBjbGFzcyB0aGF0IGhvbGRzIGNhY2hlZCBsb2NhbGUgZGF0YS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBXZWVrRGF0YSB7CisgICAgICAgIHB1YmxpYyBpbnQgZmlyc3REYXlPZldlZWs7CisgICAgICAgIHB1YmxpYyBpbnQgbWluaW1hbERheXNJbkZpcnN0V2VlazsKKyAgICAgICAgcHVibGljIGludCB3ZWVrZW5kT25zZXQ7CisgICAgICAgIHB1YmxpYyBpbnQgd2Vla2VuZE9uc2V0TWlsbGlzOworICAgICAgICBwdWJsaWMgaW50IHdlZWtlbmRDZWFzZTsKKyAgICAgICAgcHVibGljIGludCB3ZWVrZW5kQ2Vhc2VNaWxsaXM7CisgICAgICAgIHB1YmxpYyBVTG9jYWxlIGFjdHVhbExvY2FsZTsKKyAgICAgICAgcHVibGljIFdlZWtEYXRhKGludCBmZG93LCBpbnQgbWRpZncsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd2Vla2VuZE9uc2V0LCBpbnQgd2Vla2VuZE9uc2V0TWlsbGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdlZWtlbmRDZWFzZSwgaW50IHdlZWtlbmRDZWFzZU1pbGxpcywKKyAgICAgICAgICAgICAgICAgICAgICAgIFVMb2NhbGUgYWN0dWFsTG9jKSB7CisgICAgICAgICAgICB0aGlzLmZpcnN0RGF5T2ZXZWVrID0gZmRvdzsKKyAgICAgICAgICAgIHRoaXMubWluaW1hbERheXNJbkZpcnN0V2VlayA9IG1kaWZ3OworICAgICAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgPSBhY3R1YWxMb2M7CisgICAgICAgICAgICB0aGlzLndlZWtlbmRPbnNldCA9IHdlZWtlbmRPbnNldDsKKyAgICAgICAgICAgIHRoaXMud2Vla2VuZE9uc2V0TWlsbGlzID0gd2Vla2VuZE9uc2V0TWlsbGlzOworICAgICAgICAgICAgdGhpcy53ZWVrZW5kQ2Vhc2UgPSB3ZWVrZW5kQ2Vhc2U7CisgICAgICAgICAgICB0aGlzLndlZWtlbmRDZWFzZU1pbGxpcyA9IHdlZWtlbmRDZWFzZU1pbGxpczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhpcyBjYWxlbmRhciB0byBjb250YWluIHdlZWsgYW5kIHdlZWtlbmQgZGF0YSBmb3IgdGhlIGdpdmVuCisgICAgICogbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGxvY2FsZQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXRXZWVrRGF0YShVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIC8qIHRyeSB0byBnZXQgdGhlIExvY2FsZSBkYXRhIGZyb20gdGhlIGNhY2hlICovCisgICAgICAgIFdlZWtEYXRhIGRhdGEgPSAoV2Vla0RhdGEpIGNhY2hlZExvY2FsZURhdGEuZ2V0KGxvY2FsZSk7CisgICAgICAgIAorICAgICAgICBpZiAoZGF0YSA9PSBudWxsKSB7ICAvKiBjYWNoZSBtaXNzICovCisKKyAgICAgICAgICAgIENhbGVuZGFyRGF0YSBjYWxEYXRhID0gbmV3IENhbGVuZGFyRGF0YShsb2NhbGUsIGdldFR5cGUoKSk7CisgICAgICAgICAgICBpbnRbXSBkYXRlVGltZUVsZW1lbnRzID0gY2FsRGF0YS5nZXQoIkRhdGVUaW1lRWxlbWVudHMiKS5nZXRJbnRWZWN0b3IoKTsKKyAgICAgICAgICAgIGludFtdIHdlZWtlbmQgPSBjYWxEYXRhLmdldCgid2Vla2VuZCIpLmdldEludFZlY3RvcigpOworICAgICAgICAgICAgZGF0YSA9IG5ldyBXZWVrRGF0YShkYXRlVGltZUVsZW1lbnRzWzBdLGRhdGVUaW1lRWxlbWVudHNbMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlZWtlbmRbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlZWtlbmRbMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlZWtlbmRbMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlZWtlbmRbM10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbERhdGEuZ2V0VUxvY2FsZSgpKTsKKyAgICAgICAgICAgIC8qIGNhY2hlIHVwZGF0ZSAqLworICAgICAgICAgICAgY2FjaGVkTG9jYWxlRGF0YS5wdXQobG9jYWxlLCBkYXRhKTsKKyAgICAgICAgfQorICAgICAgICBzZXRGaXJzdERheU9mV2VlayhkYXRhLmZpcnN0RGF5T2ZXZWVrKTsKKyAgICAgICAgc2V0TWluaW1hbERheXNJbkZpcnN0V2VlayhkYXRhLm1pbmltYWxEYXlzSW5GaXJzdFdlZWspOworICAgICAgICB3ZWVrZW5kT25zZXQgICAgICAgPSBkYXRhLndlZWtlbmRPbnNldDsKKyAgICAgICAgd2Vla2VuZE9uc2V0TWlsbGlzID0gZGF0YS53ZWVrZW5kT25zZXRNaWxsaXM7CisgICAgICAgIHdlZWtlbmRDZWFzZSAgICAgICA9IGRhdGEud2Vla2VuZENlYXNlOworICAgICAgICB3ZWVrZW5kQ2Vhc2VNaWxsaXMgPSBkYXRhLndlZWtlbmRDZWFzZU1pbGxpczsKKworICAgICAgICAvLyBUT0RPOiBkZXRlcm1pbmUgdGhlIGFjdHVhbC92YWxpZCBsb2NhbGUKKyAgICAgICAgVUxvY2FsZSB1bG9jID0gZGF0YS5hY3R1YWxMb2NhbGU7CisgICAgICAgIHNldExvY2FsZSh1bG9jLCB1bG9jKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWNvbXB1dGUgdGhlIHRpbWUgYW5kIHVwZGF0ZSB0aGUgc3RhdHVzIGZpZWxkcyBpc1RpbWVTZXQKKyAgICAgKiBhbmQgYXJlRmllbGRzU2V0LiAgQ2FsbGVycyBzaG91bGQgY2hlY2sgaXNUaW1lU2V0IGFuZCBvbmx5CisgICAgICogY2FsbCB0aGlzIG1ldGhvZCBpZiBpc1RpbWVTZXQgaXMgZmFsc2UuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZVRpbWUoKSB7CisgICAgICAgIGNvbXB1dGVUaW1lKCk7CisgICAgICAgIC8vIElmIHdlIGFyZSBsZW5pZW50LCB3ZSBuZWVkIHRvIHJlY29tcHV0ZSB0aGUgZmllbGRzIHRvIG5vcm1hbGl6ZQorICAgICAgICAvLyB0aGUgdmFsdWVzLiAgQWxzbywgaWYgd2UgaGF2ZW4ndCBzZXQgYWxsIHRoZSBmaWVsZHMgeWV0IChpLmUuLAorICAgICAgICAvLyBpbiBhIG5ld2x5LWNyZWF0ZWQgb2JqZWN0KSwgd2UgbmVlZCB0byBmaWxsIGluIHRoZSBmaWVsZHMuIFtMSVVdCisgICAgICAgIGlmIChpc0xlbmllbnQoKSB8fCAhYXJlQWxsRmllbGRzU2V0KSBhcmVGaWVsZHNTZXQgPSBmYWxzZTsKKyAgICAgICAgaXNUaW1lU2V0ID0gdHJ1ZTsKKyAgICAgICAgYXJlRmllbGRzVmlydHVhbGx5U2V0ID0gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2F2ZSB0aGUgc3RhdGUgb2YgdGhpcyBvYmplY3QgdG8gYSBzdHJlYW0gKGkuZS4sIHNlcmlhbGl6ZSBpdCkuCisgICAgICoKKyAgICAgKiBJZGVhbGx5LCA8Y29kZT5DYWxlbmRhcjwvY29kZT4gd291bGQgb25seSB3cml0ZSBvdXQgaXRzIHN0YXRlIGRhdGEgYW5kCisgICAgICogdGhlIGN1cnJlbnQgdGltZSwgYW5kIG5vdCB3cml0ZSBhbnkgZmllbGQgZGF0YSBvdXQsIHN1Y2ggYXMKKyAgICAgKiA8Y29kZT5maWVsZHNbXTwvY29kZT4sIDxjb2RlPmlzVGltZVNldDwvY29kZT4sIDxjb2RlPmFyZUZpZWxkc1NldDwvY29kZT4sCisgICAgICogYW5kIDxjb2RlPmlzU2V0W108L2NvZGU+LiAgPGNvZGU+bmV4dFN0YW1wPC9jb2RlPiBhbHNvIHNob3VsZCBub3QgYmUgcGFydAorICAgICAqIG9mIHRoZSBwZXJzaXN0ZW50IHN0YXRlLiBVbmZvcnR1bmF0ZWx5LCB0aGlzIGRpZG4ndCBoYXBwZW4gYmVmb3JlIEpESyAxLjEKKyAgICAgKiBzaGlwcGVkLiBUbyBiZSBjb21wYXRpYmxlIHdpdGggSkRLIDEuMSwgd2Ugd2lsbCBhbHdheXMgaGF2ZSB0byB3cml0ZSBvdXQKKyAgICAgKiB0aGUgZmllbGQgdmFsdWVzIGFuZCBzdGF0ZSBmbGFncy4gIEhvd2V2ZXIsIDxjb2RlPm5leHRTdGFtcDwvY29kZT4gY2FuIGJlCisgICAgICogcmVtb3ZlZCBmcm9tIHRoZSBzZXJpYWxpemF0aW9uIHN0cmVhbTsgdGhpcyB3aWxsIHByb2JhYmx5IGhhcHBlbiBpbiB0aGUKKyAgICAgKiBuZWFyIGZ1dHVyZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgd3JpdGVPYmplY3QoT2JqZWN0T3V0cHV0U3RyZWFtIHN0cmVhbSkKKyAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgLy8gVHJ5IHRvIGNvbXB1dGUgdGhlIHRpbWUgY29ycmVjdGx5LCBmb3IgdGhlIGZ1dHVyZSAoc3RyZWFtCisgICAgICAgIC8vIHZlcnNpb24gMikgaW4gd2hpY2ggd2UgZG9uJ3Qgd3JpdGUgb3V0IGZpZWxkc1tdIG9yIGlzU2V0W10uCisgICAgICAgIGlmICghaXNUaW1lU2V0KSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHVwZGF0ZVRpbWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZSkge30KKyAgICAgICAgfQorCisgICAgICAgIC8vIFdyaXRlIG91dCB0aGUgMS4xIEZDUyBvYmplY3QuCisgICAgICAgIHN0cmVhbS5kZWZhdWx0V3JpdGVPYmplY3QoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWNvbnN0aXR1dGUgdGhpcyBvYmplY3QgZnJvbSBhIHN0cmVhbSAoaS5lLiwgZGVzZXJpYWxpemUgaXQpLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCByZWFkT2JqZWN0KE9iamVjdElucHV0U3RyZWFtIHN0cmVhbSkKKyAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBzdHJlYW0uZGVmYXVsdFJlYWRPYmplY3QoKTsKKworICAgICAgICBpbml0SW50ZXJuYWwoKTsKKworICAgICAgICBpc1RpbWVTZXQgPSB0cnVlOworICAgICAgICBhcmVGaWVsZHNTZXQgPSBhcmVBbGxGaWVsZHNTZXQgPSBmYWxzZTsKKyAgICAgICAgbmV4dFN0YW1wID0gTUlOSU1VTV9VU0VSX1NUQU1QOworICAgIH0KKworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gVGltZSAtPiBGaWVsZHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnZlcnRzIHRoZSBjdXJyZW50IG1pbGxpc2Vjb25kIHRpbWUgdmFsdWUgPGNvZGU+dGltZTwvY29kZT4gdG8KKyAgICAgKiBmaWVsZCB2YWx1ZXMgaW4gPGNvZGU+ZmllbGRzW108L2NvZGU+LiAgVGhpcyBzeW5jaHJvbml6ZXMgdGhlIHRpbWUKKyAgICAgKiBmaWVsZCB2YWx1ZXMgd2l0aCBhIG5ldyB0aW1lIHRoYXQgaXMgc2V0IGZvciB0aGUgY2FsZW5kYXIuICBUaGUgdGltZQorICAgICAqIGlzIDxlbT5ub3Q8L2VtPiByZWNvbXB1dGVkIGZpcnN0OyB0byByZWNvbXB1dGUgdGhlIHRpbWUsIHRoZW4gdGhlCisgICAgICogZmllbGRzLCBjYWxsIHRoZSA8Y29kZT5jb21wbGV0ZTwvY29kZT4gbWV0aG9kLgorICAgICAqIEBzZWUgI2NvbXBsZXRlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgY29tcHV0ZUZpZWxkcygpIHsKKyAgICAgICAgaW50IG9mZnNldHNbXSA9IG5ldyBpbnRbMl07CisgICAgICAgIGdldFRpbWVab25lKCkuZ2V0T2Zmc2V0KHRpbWUsIGZhbHNlLCBvZmZzZXRzKTsKKyAgICAgICAgbG9uZyBsb2NhbE1pbGxpcyA9IHRpbWUgKyBvZmZzZXRzWzBdICsgb2Zmc2V0c1sxXTsKKworICAgICAgICAvLyBNYXJrIGZpZWxkcyBhcyBzZXQuICBEbyB0aGlzIGJlZm9yZSBjYWxsaW5nIGhhbmRsZUNvbXB1dGVGaWVsZHMoKS4KKyAgICAgICAgaW50IG1hc2sgPSBpbnRlcm5hbFNldE1hc2s7CisgICAgICAgIGZvciAoaW50IGk9MDsgaTxmaWVsZHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmICgobWFzayAmIDEpID09IDApIHsKKyAgICAgICAgICAgICAgICBzdGFtcFtpXSA9IElOVEVSTkFMTFlfU0VUOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGFtcFtpXSA9IFVOU0VUOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbWFzayA+Pj0gMTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdlIHVzZWQgdG8gY2hlY2sgZm9yIGFuZCBjb3JyZWN0IGV4dHJlbWUgbWlsbGlzIHZhbHVlcyAobmVhcgorICAgICAgICAvLyBMb25nLk1JTl9WQUxVRSBvciBMb25nLk1BWF9WQUxVRSkgaGVyZS4gIFN1Y2ggdmFsdWVzIHdvdWxkIGNhdXNlCisgICAgICAgIC8vIG92ZXJmbG93cyBmcm9tIHBvc2l0aXZlIHRvIG5lZ2F0aXZlIChvciB2aWNlIHZlcnNhKSBhbmQgaGFkIHRvCisgICAgICAgIC8vIGJlIG1hbnVhbGx5IHR3ZWFrZWQuICBXZSBubyBsb25nZXIgbmVlZCB0byBkbyB0aGlzIGJlY2F1c2Ugd2UKKyAgICAgICAgLy8gaGF2ZSBsaW1pdGVkIHRoZSByYW5nZSBvZiBzdXBwb3J0ZWQgZGF0ZXMgdG8gdGhvc2UgdGhhdCBoYXZlIGEKKyAgICAgICAgLy8gSnVsaWFuIGRheSB0aGF0IGZpdHMgaW50byBhbiBpbnQuICBUaGlzIGFsbG93cyB1cyB0byBpbXBsZW1lbnQgYQorICAgICAgICAvLyBKVUxJQU5fREFZIGZpZWxkIGFuZCBhbHNvIHJlbW92ZXMgc29tZSBpbmVsZWdhbnQgY29kZS4gLSBMaXUKKyAgICAgICAgLy8gMTEvNi8wMAorCisgICAgICAgIGxvbmcgZGF5cyA9IGZsb29yRGl2aWRlKGxvY2FsTWlsbGlzLCBPTkVfREFZKTsKKworICAgICAgICBmaWVsZHNbSlVMSUFOX0RBWV0gPSAoaW50KSBkYXlzICsgRVBPQ0hfSlVMSUFOX0RBWTsKKworICAgICAgICAvLyBJbiBzb21lIGNhc2VzIHdlIHdpbGwgaGF2ZSB0byBjYWxsIHRoaXMgbWV0aG9kIGFnYWluIGJlbG93IHRvCisgICAgICAgIC8vIGFkanVzdCBmb3IgRFNUIHB1c2hpbmcgdXMgaW50byB0aGUgbmV4dCBKdWxpYW4gZGF5LgorICAgICAgICBjb21wdXRlR3JlZ29yaWFuQW5kRE9XRmllbGRzKGZpZWxkc1tKVUxJQU5fREFZXSk7CisKKyAgICAgICAgLy8gQ2FsbCBmcmFtZXdvcmsgbWV0aG9kIHRvIGhhdmUgc3ViY2xhc3MgY29tcHV0ZSBpdHMgZmllbGRzLgorICAgICAgICAvLyBUaGVzZSBtdXN0IGluY2x1ZGUsIGF0IGEgbWluaW11bSwgTU9OVEgsIERBWV9PRl9NT05USCwKKyAgICAgICAgLy8gRVhURU5ERURfWUVBUiwgWUVBUiwgREFZX09GX1lFQVIuICBUaGlzIG1ldGhvZCB3aWxsIGNhbGwgaW50ZXJuYWxTZXQoKSwKKyAgICAgICAgLy8gd2hpY2ggd2lsbCB1cGRhdGUgc3RhbXBbXS4KKyAgICAgICAgaGFuZGxlQ29tcHV0ZUZpZWxkcyhmaWVsZHNbSlVMSUFOX0RBWV0pOworCisgICAgICAgIC8vIENvbXB1dGUgd2Vlay1yZWxhdGVkIGZpZWxkcywgYmFzZWQgb24gdGhlIHN1YmNsYXNzLWNvbXB1dGVkCisgICAgICAgIC8vIGZpZWxkcyBjb21wdXRlZCBieSBoYW5kbGVDb21wdXRlRmllbGRzKCkuCisgICAgICAgIGNvbXB1dGVXZWVrRmllbGRzKCk7CisKKyAgICAgICAgLy8gQ29tcHV0ZSB0aW1lLXJlbGF0ZWQgZmllbGRzLiAgVGhlc2UgYXJlIGluZGVwZW50IG9mIHRoZSBkYXRlIGFuZAorICAgICAgICAvLyBvZiB0aGUgc3ViY2xhc3MgYWxnb3JpdGhtLiAgVGhleSBkZXBlbmQgb25seSBvbiB0aGUgbG9jYWwgem9uZQorICAgICAgICAvLyB3YWxsIG1pbGxpc2Vjb25kcyBpbiBkYXkuCisgICAgICAgIGludCBtaWxsaXNJbkRheSA9IChpbnQpIChsb2NhbE1pbGxpcyAtIChkYXlzICogT05FX0RBWSkpOworICAgICAgICBmaWVsZHNbTUlMTElTRUNPTkRTX0lOX0RBWV0gPSBtaWxsaXNJbkRheTsKKyAgICAgICAgZmllbGRzW01JTExJU0VDT05EXSA9IG1pbGxpc0luRGF5ICUgMTAwMDsKKyAgICAgICAgbWlsbGlzSW5EYXkgLz0gMTAwMDsKKyAgICAgICAgZmllbGRzW1NFQ09ORF0gPSBtaWxsaXNJbkRheSAlIDYwOworICAgICAgICBtaWxsaXNJbkRheSAvPSA2MDsKKyAgICAgICAgZmllbGRzW01JTlVURV0gPSBtaWxsaXNJbkRheSAlIDYwOworICAgICAgICBtaWxsaXNJbkRheSAvPSA2MDsKKyAgICAgICAgZmllbGRzW0hPVVJfT0ZfREFZXSA9IG1pbGxpc0luRGF5OworICAgICAgICBmaWVsZHNbQU1fUE1dID0gbWlsbGlzSW5EYXkgLyAxMjsgLy8gQXNzdW1lIEFNID09IDAKKyAgICAgICAgZmllbGRzW0hPVVJdID0gbWlsbGlzSW5EYXkgJSAxMjsKKyAgICAgICAgZmllbGRzW1pPTkVfT0ZGU0VUXSA9IG9mZnNldHNbMF07CisgICAgICAgIGZpZWxkc1tEU1RfT0ZGU0VUXSA9IG9mZnNldHNbMV07CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIHllYXIsIG1vbnRoLCBhbmQgZGF5IG9mIG1vbnRoIGZyb20KKyAgICAgKiB0aGUgZ2l2ZW4gSnVsaWFuIGRheS4gIFRoZXNlIHZhbHVlcyBhcmUgbm90IHN0b3JlZCBpbiBmaWVsZHMsIGJ1dCBpbgorICAgICAqIG1lbWJlciB2YXJpYWJsZXMgZ3JlZ29yaWFuWHh4LiAgQWxzbyBjb21wdXRlIHRoZSBEQVlfT0ZfV0VFSyBhbmQKKyAgICAgKiBET1dfTE9DQUwgZmllbGRzLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBjb21wdXRlR3JlZ29yaWFuQW5kRE9XRmllbGRzKGludCBqdWxpYW5EYXkpIHsKKyAgICAgICAgY29tcHV0ZUdyZWdvcmlhbkZpZWxkcyhqdWxpYW5EYXkpOworCisgICAgICAgIC8vIENvbXB1dGUgZGF5IG9mIHdlZWs6IEpEIDAgPSBNb25kYXkKKyAgICAgICAgaW50IGRvdyA9IGZpZWxkc1tEQVlfT0ZfV0VFS10gPSBqdWxpYW5EYXlUb0RheU9mV2VlayhqdWxpYW5EYXkpOworCisgICAgICAgIC8vIENhbGN1bGF0ZSAxLWJhc2VkIGxvY2FsaXplZCBkYXkgb2Ygd2VlaworICAgICAgICBpbnQgZG93TG9jYWwgPSBkb3cgLSBnZXRGaXJzdERheU9mV2VlaygpICsgMTsKKyAgICAgICAgaWYgKGRvd0xvY2FsIDwgMSkgeworICAgICAgICAgICAgZG93TG9jYWwgKz0gNzsKKyAgICAgICAgfQorICAgICAgICBmaWVsZHNbRE9XX0xPQ0FMXSA9IGRvd0xvY2FsOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXB1dGUgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciB5ZWFyLCBtb250aCwgYW5kIGRheSBvZiBtb250aCBmcm9tIHRoZQorICAgICAqIEp1bGlhbiBkYXkuICBUaGVzZSB2YWx1ZXMgYXJlIG5vdCBzdG9yZWQgaW4gZmllbGRzLCBidXQgaW4gbWVtYmVyCisgICAgICogdmFyaWFibGVzIGdyZWdvcmlhblh4eC4gIFRoZXkgYXJlIHVzZWQgZm9yIHRpbWUgem9uZSBjb21wdXRhdGlvbnMgYW5kIGJ5CisgICAgICogc3ViY2xhc3NlcyB0aGF0IGFyZSBHcmVnb3JpYW4gZGVyaXZhdGl2ZXMuICBTdWJjbGFzc2VzIG1heSBjYWxsIHRoaXMKKyAgICAgKiBtZXRob2QgdG8gcGVyZm9ybSBhIEdyZWdvcmlhbiBjYWxlbmRhciBtaWxsaXMtPmZpZWxkcyBjb21wdXRhdGlvbi4KKyAgICAgKiBUbyBwZXJmb3JtIGEgR3JlZ29yaWFuIGNhbGVuZGFyIGZpZWxkcy0+bWlsbGlzIGNvbXB1dGF0aW9uLCBjYWxsCisgICAgICogY29tcHV0ZUdyZWdvcmlhbk1vbnRoU3RhcnQoKS4KKyAgICAgKiBAc2VlICNjb21wdXRlR3JlZ29yaWFuTW9udGhTdGFydAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIGNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoaW50IGp1bGlhbkRheSkgeworICAgICAgICBpbnQgeWVhciwgbW9udGgsIGRheU9mTW9udGgsIGRheU9mWWVhcjsKKworICAgICAgICAvLyBUaGUgR3JlZ29yaWFuIGVwb2NoIGRheSBpcyB6ZXJvIGZvciBNb25kYXkgSmFudWFyeSAxLCB5ZWFyIDEuCisgICAgICAgIGxvbmcgZ3JlZ29yaWFuRXBvY2hEYXkgPSBqdWxpYW5EYXkgLSBKQU5fMV8xX0pVTElBTl9EQVk7CisKKyAgICAgICAgLy8gSGVyZSB3ZSBjb252ZXJ0IGZyb20gdGhlIGRheSBudW1iZXIgdG8gdGhlIG11bHRpcGxlIHJhZGl4CisgICAgICAgIC8vIHJlcHJlc2VudGF0aW9uLiAgV2UgdXNlIDQwMC15ZWFyLCAxMDAteWVhciwgYW5kIDQteWVhciBjeWNsZXMuCisgICAgICAgIC8vIEZvciBleGFtcGxlLCB0aGUgNC15ZWFyIGN5Y2xlIGhhcyA0IHllYXJzICsgMSBsZWFwIGRheTsgZ2l2aW5nCisgICAgICAgIC8vIDE0NjEgPT0gMzY1KjQgKyAxIGRheXMuCisgICAgICAgIGludFtdIHJlbSA9IG5ldyBpbnRbMV07CisgICAgICAgIGludCBuNDAwID0gZmxvb3JEaXZpZGUoZ3JlZ29yaWFuRXBvY2hEYXksIDE0NjA5NywgcmVtKTsgLy8gNDAwLXllYXIgY3ljbGUgbGVuZ3RoCisgICAgICAgIGludCBuMTAwID0gZmxvb3JEaXZpZGUocmVtWzBdLCAzNjUyNCwgcmVtKTsgLy8gMTAwLXllYXIgY3ljbGUgbGVuZ3RoCisgICAgICAgIGludCBuNCA9IGZsb29yRGl2aWRlKHJlbVswXSwgMTQ2MSwgcmVtKTsgLy8gNC15ZWFyIGN5Y2xlIGxlbmd0aAorICAgICAgICBpbnQgbjEgPSBmbG9vckRpdmlkZShyZW1bMF0sIDM2NSwgcmVtKTsKKyAgICAgICAgeWVhciA9IDQwMCpuNDAwICsgMTAwKm4xMDAgKyA0Km40ICsgbjE7CisgICAgICAgIGRheU9mWWVhciA9IHJlbVswXTsgLy8gemVyby1iYXNlZCBkYXkgb2YgeWVhcgorICAgICAgICBpZiAobjEwMCA9PSA0IHx8IG4xID09IDQpIHsKKyAgICAgICAgICAgIGRheU9mWWVhciA9IDM2NTsgLy8gRGVjIDMxIGF0IGVuZCBvZiA0LSBvciA0MDAteXIgY3ljbGUKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICsreWVhcjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gaXNMZWFwID0gKCh5ZWFyJjB4MykgPT0gMCkgJiYgLy8gZXF1aXYuIHRvICh5ZWFyJTQgPT0gMCkKKyAgICAgICAgICAgICh5ZWFyJTEwMCAhPSAwIHx8IHllYXIlNDAwID09IDApOworCisgICAgICAgIGludCBjb3JyZWN0aW9uID0gMDsKKyAgICAgICAgaW50IG1hcmNoMSA9IGlzTGVhcCA/IDYwIDogNTk7IC8vIHplcm8tYmFzZWQgRE9ZIGZvciBNYXJjaCAxCisgICAgICAgIGlmIChkYXlPZlllYXIgPj0gbWFyY2gxKSBjb3JyZWN0aW9uID0gaXNMZWFwID8gMSA6IDI7CisgICAgICAgIG1vbnRoID0gKDEyICogKGRheU9mWWVhciArIGNvcnJlY3Rpb24pICsgNikgLyAzNjc7IC8vIHplcm8tYmFzZWQgbW9udGgKKyAgICAgICAgZGF5T2ZNb250aCA9IGRheU9mWWVhciAtCisgICAgICAgICAgICBHUkVHT1JJQU5fTU9OVEhfQ09VTlRbbW9udGhdW2lzTGVhcD8zOjJdICsgMTsgLy8gb25lLWJhc2VkIERPTQorCisgICAgICAgIGdyZWdvcmlhblllYXIgPSB5ZWFyOworICAgICAgICBncmVnb3JpYW5Nb250aCA9IG1vbnRoOyAvLyAwLWJhc2VkIGFscmVhZHkKKyAgICAgICAgZ3JlZ29yaWFuRGF5T2ZNb250aCA9IGRheU9mTW9udGg7IC8vIDEtYmFzZWQgYWxyZWFkeQorICAgICAgICBncmVnb3JpYW5EYXlPZlllYXIgPSBkYXlPZlllYXIgKyAxOyAvLyBDb252ZXJ0IGZyb20gMC1iYXNlZCB0byAxLWJhc2VkCisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSB0aGUgZmllbGRzIFdFRUtfT0ZfWUVBUiwgWUVBUl9XT1ksIFdFRUtfT0ZfTU9OVEgsCisgICAgICogREFZX09GX1dFRUtfSU5fTU9OVEgsIGFuZCBET1dfTE9DQUwgZnJvbSBFWFRFTkRFRF9ZRUFSLCBZRUFSLAorICAgICAqIERBWV9PRl9XRUVLLCBhbmQgREFZX09GX1lFQVIuICBUaGUgbGF0dGVyIGZpZWxkcyBhcmUgY29tcHV0ZWQgYnkgdGhlCisgICAgICogc3ViY2xhc3MgYmFzZWQgb24gdGhlIGNhbGVuZGFyIHN5c3RlbS4KKyAgICAgKgorICAgICAqIDxwPlRoZSBZRUFSX1dPWSBmaWVsZCBpcyBjb21wdXRlZCBzaW1wbGlzdGljYWxseS4gIEl0IGlzIGVxdWFsIHRvIFlFQVIKKyAgICAgKiBtb3N0IG9mIHRoZSB0aW1lLCBidXQgYXQgdGhlIHllYXIgYm91bmRhcnkgaXQgbWF5IGJlIGFkanVzdGVkIHRvIFlFQVItMQorICAgICAqIG9yIFlFQVIrMSB0byByZWZsZWN0IHRoZSBvdmVybGFwIG9mIGEgd2VlayBpbnRvIGFuIGFkamFjZW50IHllYXIuICBJbgorICAgICAqIHRoaXMgY2FzZSwgYSBzaW1wbGUgaW5jcmVtZW50IG9yIGRlY3JlbWVudCBpcyBwZXJmb3JtZWQgb24gWUVBUiwgZXZlbgorICAgICAqIHRob3VnaCB0aGlzIG1heSB5aWVsZCBhbiBpbnZhbGlkIFlFQVIgdmFsdWUuICBGb3IgaW5zdGFuY2UsIGlmIHRoZSBZRUFSCisgICAgICogaXMgcGFydCBvZiBhIGNhbGVuZGFyIHN5c3RlbSB3aXRoIGFuIE4teWVhciBjeWNsZSBmaWVsZCBDWUNMRSwgdGhlbgorICAgICAqIGluY3JlbWVudGluZyB0aGUgWUVBUiBtYXkgaW52b2x2ZSBpbmNyZW1lbnRpbmcgQ1lDTEUgYW5kIHNldHRpbmcgWUVBUgorICAgICAqIGJhY2sgdG8gMCBvciAxLiAgVGhpcyBpcyBub3QgaGFuZGxlZCBieSB0aGlzIGNvZGUsIGFuZCBpbiBmYWN0IGNhbm5vdCBiZQorICAgICAqIHNpbXBseSBoYW5kbGVkIHdpdGhvdXQgaGF2aW5nIHN1YmNsYXNzZXMgZGVmaW5lIGFuIGVudGlyZSBwYXJhbGxlbCBzZXQgb2YKKyAgICAgKiBmaWVsZHMgZm9yIGZpZWxkcyBsYXJnZXIgdGhhbiBvciBlcXVhbCB0byBhIHllYXIuICBUaGlzIGFkZGl0aW9uYWwKKyAgICAgKiBjb21wbGV4aXR5IGlzIG5vdCB3YXJyYW50ZWQsIHNpbmNlIHRoZSBpbnRlbnRpb24gb2YgdGhlIFlFQVJfV09ZIGZpZWxkIGlzCisgICAgICogdG8gc3VwcG9ydCBJU08gODYwMSBub3RhdGlvbiwgc28gaXQgd2lsbCB0eXBpY2FsbHkgYmUgdXNlZCB3aXRoIGEKKyAgICAgKiBwcm9sZXB0aWMgR3JlZ29yaWFuIGNhbGVuZGFyLCB3aGljaCBoYXMgbm8gZmllbGQgbGFyZ2VyIHRoYW4gYSB5ZWFyLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCBjb21wdXRlV2Vla0ZpZWxkcygpIHsKKyAgICAgICAgaW50IGV5ZWFyID0gZmllbGRzW0VYVEVOREVEX1lFQVJdOworICAgICAgICBpbnQgeWVhciA9IGZpZWxkc1tZRUFSXTsKKyAgICAgICAgaW50IGRheU9mV2VlayA9IGZpZWxkc1tEQVlfT0ZfV0VFS107CisgICAgICAgIGludCBkYXlPZlllYXIgPSBmaWVsZHNbREFZX09GX1lFQVJdOworCisgICAgICAgIC8vIFdFRUtfT0ZfWUVBUiBzdGFydAorICAgICAgICAvLyBDb21wdXRlIHRoZSB3ZWVrIG9mIHRoZSB5ZWFyLiAgRm9yIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIsIHZhbGlkIHdlZWsKKyAgICAgICAgLy8gbnVtYmVycyBydW4gZnJvbSAxIHRvIDUyIG9yIDUzLCBkZXBlbmRpbmcgb24gdGhlIHllYXIsIHRoZSBmaXJzdCBkYXkKKyAgICAgICAgLy8gb2YgdGhlIHdlZWssIGFuZCB0aGUgbWluaW1hbCBkYXlzIGluIHRoZSBmaXJzdCB3ZWVrLiAgRm9yIG90aGVyCisgICAgICAgIC8vIGNhbGVuZGFycywgdGhlIHZhbGlkIHJhbmdlIG1heSBiZSBkaWZmZXJlbnQgLS0gaXQgZGVwZW5kcyBvbiB0aGUgeWVhcgorICAgICAgICAvLyBsZW5ndGguICBEYXlzIGF0IHRoZSBzdGFydCBvZiB0aGUgeWVhciBtYXkgZmFsbCBpbnRvIHRoZSBsYXN0IHdlZWsgb2YKKyAgICAgICAgLy8gdGhlIHByZXZpb3VzIHllYXI7IGRheXMgYXQgdGhlIGVuZCBvZiB0aGUgeWVhciBtYXkgZmFsbCBpbnRvIHRoZQorICAgICAgICAvLyBmaXJzdCB3ZWVrIG9mIHRoZSBuZXh0IHllYXIuICBBU1NVTUUgdGhhdCB0aGUgeWVhciBsZW5ndGggaXMgbGVzcyB0aGFuCisgICAgICAgIC8vIDcwMDAgZGF5cy4KKyAgICAgICAgaW50IHllYXJPZldlZWtPZlllYXIgPSB5ZWFyOworICAgICAgICBpbnQgcmVsRG93ID0gKGRheU9mV2VlayArIDcgLSBnZXRGaXJzdERheU9mV2VlaygpKSAlIDc7IC8vIDAuLjYKKyAgICAgICAgaW50IHJlbERvd0phbjEgPSAoZGF5T2ZXZWVrIC0gZGF5T2ZZZWFyICsgNzAwMSAtIGdldEZpcnN0RGF5T2ZXZWVrKCkpICUgNzsgLy8gMC4uNgorICAgICAgICBpbnQgd295ID0gKGRheU9mWWVhciAtIDEgKyByZWxEb3dKYW4xKSAvIDc7IC8vIDAuLjUzCisgICAgICAgIGlmICgoNyAtIHJlbERvd0phbjEpID49IGdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKSkgeworICAgICAgICAgICAgKyt3b3k7CisgICAgICAgIH0KKworICAgICAgICAvLyBBZGp1c3QgZm9yIHdlZWtzIGF0IHRoZSB5ZWFyIGVuZCB0aGF0IG92ZXJsYXAgaW50byB0aGUgcHJldmlvdXMgb3IKKyAgICAgICAgLy8gbmV4dCBjYWxlbmRhciB5ZWFyLgorICAgICAgICBpZiAod295ID09IDApIHsKKyAgICAgICAgICAgIC8vIFdlIGFyZSB0aGUgbGFzdCB3ZWVrIG9mIHRoZSBwcmV2aW91cyB5ZWFyLgorICAgICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHdlIGFyZSBpbiB0aGUgbGFzdCB3ZWVrOyBpZiBzbywgd2UgbmVlZAorICAgICAgICAgICAgLy8gdG8gaGFuZGxlIHRoZSBjYXNlIGluIHdoaWNoIHdlIGFyZSB0aGUgZmlyc3Qgd2VlayBvZiB0aGUKKyAgICAgICAgICAgIC8vIG5leHQgeWVhci4KKworICAgICAgICAgICAgaW50IHByZXZEb3kgPSBkYXlPZlllYXIgKyBoYW5kbGVHZXRZZWFyTGVuZ3RoKGV5ZWFyIC0gMSk7CisgICAgICAgICAgICB3b3kgPSB3ZWVrTnVtYmVyKHByZXZEb3ksIGRheU9mV2Vlayk7CisgICAgICAgICAgICB5ZWFyT2ZXZWVrT2ZZZWFyLS07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgbGFzdERveSA9IGhhbmRsZUdldFllYXJMZW5ndGgoZXllYXIpOworICAgICAgICAgICAgLy8gRmFzdCBjaGVjazogRm9yIGl0IHRvIGJlIHdlZWsgMSBvZiB0aGUgbmV4dCB5ZWFyLCB0aGUgRE9ZCisgICAgICAgICAgICAvLyBtdXN0IGJlIG9uIG9yIGFmdGVyIEwtNSwgd2hlcmUgTCBpcyB5ZWFyTGVuZ3RoKCksIHRoZW4gaXQKKyAgICAgICAgICAgIC8vIGNhbm5vdCBwb3NzaWJseSBiZSB3ZWVrIDEgb2YgdGhlIG5leHQgeWVhcjoKKyAgICAgICAgICAgIC8vICAgICAgICAgIEwtNSAgICAgICAgICAgICAgICAgIEwKKyAgICAgICAgICAgIC8vIGRveTogMzU5IDM2MCAzNjEgMzYyIDM2MyAzNjQgMzY1IDAwMQorICAgICAgICAgICAgLy8gZG93OiAgICAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcKKyAgICAgICAgICAgIGlmIChkYXlPZlllYXIgPj0gKGxhc3REb3kgLSA1KSkgeworICAgICAgICAgICAgICAgIGludCBsYXN0UmVsRG93ID0gKHJlbERvdyArIGxhc3REb3kgLSBkYXlPZlllYXIpICUgNzsKKyAgICAgICAgICAgICAgICBpZiAobGFzdFJlbERvdyA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgbGFzdFJlbERvdyArPSA3OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoKCg2IC0gbGFzdFJlbERvdykgPj0gZ2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpKSAmJgorICAgICAgICAgICAgICAgICAgICAoKGRheU9mWWVhciArIDcgLSByZWxEb3cpID4gbGFzdERveSkpIHsKKyAgICAgICAgICAgICAgICAgICAgd295ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgeWVhck9mV2Vla09mWWVhcisrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmaWVsZHNbV0VFS19PRl9ZRUFSXSA9IHdveTsKKyAgICAgICAgZmllbGRzW1lFQVJfV09ZXSA9IHllYXJPZldlZWtPZlllYXI7CisgICAgICAgIC8vIFdFRUtfT0ZfWUVBUiBlbmQKKworICAgICAgICBpbnQgZGF5T2ZNb250aCA9IGZpZWxkc1tEQVlfT0ZfTU9OVEhdOworICAgICAgICBmaWVsZHNbV0VFS19PRl9NT05USF0gPSB3ZWVrTnVtYmVyKGRheU9mTW9udGgsIGRheU9mV2Vlayk7CisgICAgICAgIGZpZWxkc1tEQVlfT0ZfV0VFS19JTl9NT05USF0gPSAoZGF5T2ZNb250aC0xKSAvIDcgKyAxOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEZpZWxkcyAtPiBUaW1lCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSB0byBPUiBhZ2FpbnN0IHJlc29sdmUgdGFibGUgZmllbGQgdmFsdWVzIGZvciByZW1hcHBpbmcuCisgICAgICogQHNlZSAjcmVzb2x2ZUZpZWxkcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IFJFU09MVkVfUkVNQVAgPSAzMjsKKyAgICAvLyBBIHBvd2VyIG9mIDIgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIE1BWF9GSUVMRF9DT1VOVAorCisgICAgLy8gRGVmYXVsdCB0YWJsZSBmb3IgZGF5IGluIHllYXIKKyAgICBzdGF0aWMgZmluYWwgaW50W11bXVtdIERBVEVfUFJFQ0VERU5DRSA9IHsKKyAgICAgICAgeworICAgICAgICAgICAgeyBEQVlfT0ZfTU9OVEggfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9ZRUFSLCBEQVlfT0ZfV0VFSyB9LAorICAgICAgICAgICAgeyBXRUVLX09GX01PTlRILCBEQVlfT0ZfV0VFSyB9LAorICAgICAgICAgICAgeyBEQVlfT0ZfV0VFS19JTl9NT05USCwgREFZX09GX1dFRUsgfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9ZRUFSLCBET1dfTE9DQUwgfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9NT05USCwgRE9XX0xPQ0FMIH0sCisgICAgICAgICAgICB7IERBWV9PRl9XRUVLX0lOX01PTlRILCBET1dfTE9DQUwgfSwKKyAgICAgICAgICAgIHsgREFZX09GX1lFQVIgfSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgeyBXRUVLX09GX1lFQVIgfSwKKyAgICAgICAgICAgIHsgV0VFS19PRl9NT05USCB9LAorICAgICAgICAgICAgeyBEQVlfT0ZfV0VFS19JTl9NT05USCB9LAorICAgICAgICAgICAgeyBSRVNPTFZFX1JFTUFQIHwgREFZX09GX1dFRUtfSU5fTU9OVEgsIERBWV9PRl9XRUVLIH0sCisgICAgICAgICAgICB7IFJFU09MVkVfUkVNQVAgfCBEQVlfT0ZfV0VFS19JTl9NT05USCwgRE9XX0xPQ0FMIH0sCisgICAgICAgIH0sCisgICAgfTsKKworICAgIHN0YXRpYyBmaW5hbCBpbnRbXVtdW10gRE9XX1BSRUNFREVOQ0UgPSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIHsgREFZX09GX1dFRUsgfSwKKyAgICAgICAgICAgIHsgRE9XX0xPQ0FMIH0sCisgICAgICAgIH0sCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgcHJlY2VkZW5jZSB0YWJsZSwgcmV0dXJuIHRoZSBuZXdlc3QgZmllbGQgY29tYmluYXRpb24gaW4KKyAgICAgKiB0aGUgdGFibGUsIG9yIC0xIGlmIG5vbmUgaXMgZm91bmQuCisgICAgICoKKyAgICAgKiA8cD5UaGUgcHJlY2VkZW5jZSB0YWJsZSBpcyBhIDMtZGltZW5zaW9uYWwgYXJyYXkgb2YgaW50ZWdlcnMuICBJdAorICAgICAqIG1heSBiZSB0aG91Z2h0IG9mIGFzIGFuIGFycmF5IG9mIGdyb3Vwcy4gIEVhY2ggZ3JvdXAgaXMgYW4gYXJyYXkgb2YKKyAgICAgKiBsaW5lcy4gIEVhY2ggbGluZSBpcyBhbiBhcnJheSBvZiBmaWVsZCBudW1iZXJzLiAgV2l0aGluIGEgbGluZSwgaWYKKyAgICAgKiBhbGwgZmllbGRzIGFyZSBzZXQsIHRoZW4gdGhlIHRpbWUgc3RhbXAgb2YgdGhlIGxpbmUgaXMgdGFrZW4gdG8gYmUKKyAgICAgKiB0aGUgc3RhbXAgb2YgdGhlIG1vc3QgcmVjZW50bHkgc2V0IGZpZWxkLiAgSWYgYW55IGZpZWxkIG9mIGEgbGluZSBpcworICAgICAqIHVuc2V0LCB0aGVuIHRoZSBsaW5lIGZhaWxzIHRvIG1hdGNoLiAgV2l0aGluIGEgZ3JvdXAsIHRoZSBsaW5lIHdpdGgKKyAgICAgKiB0aGUgbmV3ZXN0IHRpbWUgc3RhbXAgaXMgc2VsZWN0ZWQuICBUaGUgZmlyc3QgZmllbGQgb2YgdGhlIGxpbmUgaXMKKyAgICAgKiByZXR1cm5lZCB0byBpbmRpY2F0ZSB3aGljaCBsaW5lIG1hdGNoZWQuCisgICAgICoKKyAgICAgKiA8cD5JbiBzb21lIGNhc2VzLCBpdCBtYXkgYmUgZGVzaXJhYmxlIHRvIG1hcCBhIGxpbmUgdG8gZmllbGQgdGhhdAorICAgICAqIHdob3NlIHN0YW1wIGlzIE5PVCBleGFtaW5lZC4gIEZvciBleGFtcGxlLCBpZiB0aGUgYmVzdCBmaWVsZCBpcworICAgICAqIERBWV9PRl9XRUVLIHRoZW4gdGhlIERBWV9PRl9XRUVLX0lOX01PTlRIIGFsZ29yaXRobSBtYXkgYmUgdXNlZC4gIEluCisgICAgICogb3JkZXIgdG8gZG8gdGhpcywgaW5zZXJ0IHRoZSB2YWx1ZSA8Y29kZT5SRU1BUF9SRVNPTFZFIHwgRjwvY29kZT4gYXQKKyAgICAgKiB0aGUgc3RhcnQgb2YgdGhlIGxpbmUsIHdoZXJlIDxjb2RlPkY8L2NvZGU+IGlzIHRoZSBkZXNpcmVkIHJldHVybgorICAgICAqIGZpZWxkIHZhbHVlLiAgVGhpcyBmaWVsZCB3aWxsIE5PVCBiZSBleGFtaW5lZDsgaXQgb25seSBkZXRlcm1pbmVzCisgICAgICogdGhlIHJldHVybiB2YWx1ZSBpZiB0aGUgb3RoZXIgZmllbGRzIGluIHRoZSBsaW5lIGFyZSB0aGUgbmV3ZXN0LgorICAgICAqCisgICAgICogPHA+SWYgYWxsIGxpbmVzIG9mIGEgZ3JvdXAgY29udGFpbiBhdCBsZWFzdCBvbmUgdW5zZXQgZmllbGQsIHRoZW4gbm8KKyAgICAgKiBsaW5lIHdpbGwgbWF0Y2gsIGFuZCB0aGUgZ3JvdXAgYXMgYSB3aG9sZSB3aWxsIGZhaWwgdG8gbWF0Y2guICBJbgorICAgICAqIHRoYXQgY2FzZSwgdGhlIG5leHQgZ3JvdXAgd2lsbCBiZSBwcm9jZXNzZWQuICBJZiBhbGwgZ3JvdXBzIGZhaWwgdG8KKyAgICAgKiBtYXRjaCwgdGhlbiAtMSBpcyByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IHJlc29sdmVGaWVsZHMoaW50W11bXVtdIHByZWNlZGVuY2VUYWJsZSkgeworICAgICAgICBpbnQgYmVzdEZpZWxkID0gLTE7CisgICAgICAgIGZvciAoaW50IGc9MDsgZzxwcmVjZWRlbmNlVGFibGUubGVuZ3RoICYmIGJlc3RGaWVsZCA8IDA7ICsrZykgeworICAgICAgICAgICAgaW50W11bXSBncm91cCA9IHByZWNlZGVuY2VUYWJsZVtnXTsKKyAgICAgICAgICAgIGludCBiZXN0U3RhbXAgPSBVTlNFVDsKKyAgICAgICAgbGluZXNJbkdyb3VwOgorICAgICAgICAgICAgZm9yIChpbnQgbD0wOyBsPGdyb3VwLmxlbmd0aDsgKytsKSB7CisgICAgICAgICAgICAgICAgaW50W10gbGluZT0gZ3JvdXBbbF07CisgICAgICAgICAgICAgICAgaW50IGxpbmVTdGFtcCA9IFVOU0VUOworICAgICAgICAgICAgICAgIC8vIFNraXAgb3ZlciBmaXJzdCBlbnRyeSBpZiBpdCBpcyBuZWdhdGl2ZQorICAgICAgICAgICAgICAgIGZvciAoaW50IGk9KGxpbmVbMF0+PVJFU09MVkVfUkVNQVApPzE6MDsgaTxsaW5lLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBzID0gc3RhbXBbbGluZVtpXV07CisgICAgICAgICAgICAgICAgICAgIC8vIElmIGFueSBmaWVsZCBpcyB1bnNldCB0aGVuIGRvbid0IHVzZSB0aGlzIGxpbmUKKyAgICAgICAgICAgICAgICAgICAgaWYgKHMgPT0gVU5TRVQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGxpbmVzSW5Hcm91cDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVTdGFtcCA9IE1hdGgubWF4KGxpbmVTdGFtcCwgcyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gUmVjb3JkIG5ldyBtYXhpbXVtIHN0YW1wICYgZmllbGQgbm8uCisgICAgICAgICAgICAgICAgaWYgKGxpbmVTdGFtcCA+IGJlc3RTdGFtcCkgeworICAgICAgICAgICAgICAgICAgICBiZXN0U3RhbXAgPSBsaW5lU3RhbXA7CisgICAgICAgICAgICAgICAgICAgIGJlc3RGaWVsZCA9IGxpbmVbMF07IC8vIEZpcnN0IGZpZWxkIHJlZmVycyB0byBlbnRpcmUgbGluZQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKGJlc3RGaWVsZD49UkVTT0xWRV9SRU1BUCk/KGJlc3RGaWVsZCYoUkVTT0xWRV9SRU1BUC0xKSk6YmVzdEZpZWxkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmV3ZXN0IHN0YW1wIG9mIGEgZ2l2ZW4gcmFuZ2Ugb2YgZmllbGRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbmV3ZXN0U3RhbXAoaW50IGZpcnN0LCBpbnQgbGFzdCwgaW50IGJlc3RTdGFtcFNvRmFyKSB7CisgICAgICAgIGludCBiZXN0U3RhbXAgPSBiZXN0U3RhbXBTb0ZhcjsKKyAgICAgICAgZm9yIChpbnQgaT1maXJzdDsgaTw9bGFzdDsgKytpKSB7CisgICAgICAgICAgICBpZiAoc3RhbXBbaV0gPiBiZXN0U3RhbXApIHsKKyAgICAgICAgICAgICAgICBiZXN0U3RhbXAgPSBzdGFtcFtpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYmVzdFN0YW1wOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdGltZXN0YW1wIG9mIGEgZmllbGQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRTdGFtcChpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIHN0YW1wW2ZpZWxkXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpZWxkIHRoYXQgaXMgbmV3ZXIsIGVpdGhlciBkZWZhdWx0RmllbGQsIG9yCisgICAgICogYWx0ZXJuYXRlRmllbGQuICBJZiBuZWl0aGVyIGlzIG5ld2VyIG9yIG5laXRoZXIgaXMgc2V0LCByZXR1cm4gZGVmYXVsdEZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgbmV3ZXJGaWVsZChpbnQgZGVmYXVsdEZpZWxkLCBpbnQgYWx0ZXJuYXRlRmllbGQpIHsKKyAgICAgICAgaWYgKHN0YW1wW2FsdGVybmF0ZUZpZWxkXSA+IHN0YW1wW2RlZmF1bHRGaWVsZF0pIHsKKyAgICAgICAgICAgIHJldHVybiBhbHRlcm5hdGVGaWVsZDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGVmYXVsdEZpZWxkOworICAgIH0KKworICAgIC8qKgorICAgICAqIEVuc3VyZSB0aGF0IGVhY2ggZmllbGQgaXMgd2l0aGluIGl0cyB2YWxpZCByYW5nZSBieSBjYWxsaW5nIHtAbGluaworICAgICAqICN2YWxpZGF0ZUZpZWxkKGludCl9IG9uIGVhY2ggZmllbGQgdGhhdCBoYXMgYmVlbiBzZXQuICBUaGlzIG1ldGhvZAorICAgICAqIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBpZiB0aGlzIGNhbGVuZGFyIGlzIG5vdCBsZW5pZW50LgorICAgICAqIEBzZWUgI2lzTGVuaWVudAorICAgICAqIEBzZWUgI3ZhbGlkYXRlRmllbGQoaW50KQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHZhbGlkYXRlRmllbGRzKCkgeworICAgICAgICBmb3IgKGludCBmaWVsZCA9IDA7IGZpZWxkIDwgZmllbGRzLmxlbmd0aDsgZmllbGQrKykgeworICAgICAgICAgICAgaWYgKGlzU2V0KGZpZWxkKSkgeworICAgICAgICAgICAgICAgIHZhbGlkYXRlRmllbGQoZmllbGQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVmFsaWRhdGUgYSBzaW5nbGUgZmllbGQgb2YgdGhpcyBjYWxlbmRhci4gIFN1YmNsYXNzZXMgc2hvdWxkCisgICAgICogb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gdmFsaWRhdGUgYW55IGNhbGVuZGFyLXNwZWNpZmljIGZpZWxkcy4KKyAgICAgKiBHZW5lcmljIGZpZWxkcyBjYW4gYmUgaGFuZGxlZCBieQorICAgICAqIDxjb2RlPkNhbGVuZGFyLnZhbGlkYXRlRmllbGQoKTwvY29kZT4uCisgICAgICogQHNlZSAjdmFsaWRhdGVGaWVsZChpbnQsIGludCwgaW50KQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHZhbGlkYXRlRmllbGQoaW50IGZpZWxkKSB7CisgICAgICAgIGludCB5OworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgREFZX09GX01PTlRIOgorICAgICAgICAgICAgeSA9IGhhbmRsZUdldEV4dGVuZGVkWWVhcigpOworICAgICAgICAgICAgdmFsaWRhdGVGaWVsZChmaWVsZCwgMSwgaGFuZGxlR2V0TW9udGhMZW5ndGgoeSwgaW50ZXJuYWxHZXQoTU9OVEgpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBEQVlfT0ZfWUVBUjoKKyAgICAgICAgICAgIHkgPSBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKTsKKyAgICAgICAgICAgIHZhbGlkYXRlRmllbGQoZmllbGQsIDEsIGhhbmRsZUdldFllYXJMZW5ndGgoeSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgREFZX09GX1dFRUtfSU5fTU9OVEg6CisgICAgICAgICAgICBpZiAoaW50ZXJuYWxHZXQoZmllbGQpID09IDApIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJEQVlfT0ZfV0VFS19JTl9NT05USCBjYW5ub3QgYmUgemVybyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFsaWRhdGVGaWVsZChmaWVsZCwgZ2V0TWluaW11bShmaWVsZCksIGdldE1heGltdW0oZmllbGQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdmFsaWRhdGVGaWVsZChmaWVsZCwgZ2V0TWluaW11bShmaWVsZCksIGdldE1heGltdW0oZmllbGQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVmFsaWRhdGUgYSBzaW5nbGUgZmllbGQgb2YgdGhpcyBjYWxlbmRhciBnaXZlbiBpdHMgbWluaW11bSBhbmQKKyAgICAgKiBtYXhpbXVtIGFsbG93ZWQgdmFsdWUuICBJZiB0aGUgZmllbGQgaXMgb3V0IG9mIHJhbmdlLCB0aHJvdyBhCisgICAgICogZGVzY3JpcHRpdmUgPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPi4gIFN1YmNsYXNzZXMgbWF5CisgICAgICogdXNlIHRoaXMgbWV0aG9kIGluIHRoZWlyIGltcGxlbWVudGF0aW9uIG9mIHtAbGluaworICAgICAqICN2YWxpZGF0ZUZpZWxkKGludCl9LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHZhbGlkYXRlRmllbGQoaW50IGZpZWxkLCBpbnQgbWluLCBpbnQgbWF4KSB7CisgICAgICAgIGludCB2YWx1ZSA9IGZpZWxkc1tmaWVsZF07CisgICAgICAgIGlmICh2YWx1ZSA8IG1pbiB8fCB2YWx1ZSA+IG1heCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihmaWVsZE5hbWUoZmllbGQpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJz0nICsgdmFsdWUgKyAiLCB2YWxpZCByYW5nZT0iICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluICsgIi4uIiArIG1heCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyB0aGUgY3VycmVudCBmaWVsZCB2YWx1ZXMgaW4gPGNvZGU+ZmllbGRzW108L2NvZGU+IHRvIHRoZQorICAgICAqIG1pbGxpc2Vjb25kIHRpbWUgdmFsdWUgPGNvZGU+dGltZTwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICBwcm90ZWN0ZWQgdm9pZCBjb21wdXRlVGltZSgpIHsKKyAgICAgICAgaWYgKCFpc0xlbmllbnQoKSkgeworICAgICAgICAgICAgdmFsaWRhdGVGaWVsZHMoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbXB1dGUgdGhlIEp1bGlhbiBkYXkKKyAgICAgICAgaW50IGp1bGlhbkRheSA9IGNvbXB1dGVKdWxpYW5EYXkoKTsKKworICAgICAgICBsb25nIG1pbGxpcyA9IGp1bGlhbkRheVRvTWlsbGlzKGp1bGlhbkRheSk7CisKKyAgICAgICAgaW50IG1pbGxpc0luRGF5OworCisgICAgICAgIC8vIFdlIG9ubHkgdXNlIE1JTExJU0VDT05EU19JTl9EQVkgaWYgaXQgaGFzIGJlZW4gc2V0IGJ5IHRoZSB1c2VyLgorICAgICAgICAvLyBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgY2FsbGVyIHRvIHNldCB0aGUgY2FsZW5kYXIgdG8gYQorICAgICAgICAvLyB0aW1lIGFuZCBjYWxsIGNsZWFyKE1PTlRIKSB0byByZXNldCB0aGUgTU9OVEggdG8gSmFudWFyeS4gIFRoaXMKKyAgICAgICAgLy8gaXMgbGVnYWN5IGJlaGF2aW9yLiAgV2l0aG91dCB0aGlzLCBjbGVhcihNT05USCkgaGFzIG5vIGVmZmVjdCwKKyAgICAgICAgLy8gc2luY2UgdGhlIGludGVybmFsbHkgc2V0IEpVTElBTl9EQVkgaXMgdXNlZC4KKyAgICAgICAgaWYgKHN0YW1wW01JTExJU0VDT05EU19JTl9EQVldID49IE1JTklNVU1fVVNFUl9TVEFNUCAmJgorICAgICAgICAgICAgbmV3ZXN0U3RhbXAoQU1fUE0sIE1JTExJU0VDT05ELCBVTlNFVCkgPD0gc3RhbXBbTUlMTElTRUNPTkRTX0lOX0RBWV0pIHsKKyAgICAgICAgICAgIG1pbGxpc0luRGF5ID0gaW50ZXJuYWxHZXQoTUlMTElTRUNPTkRTX0lOX0RBWSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtaWxsaXNJbkRheSA9IGNvbXB1dGVNaWxsaXNJbkRheSgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29tcHV0ZSB0aGUgdGltZSB6b25lIG9mZnNldCBhbmQgRFNUIG9mZnNldC4gIFRoZXJlIGFyZSB0d28gcG90ZW50aWFsCisgICAgICAgIC8vIGFtYmlndWl0aWVzIGhlcmUuICBXZSdsbCBhc3N1bWUgYSAyOjAwIGFtICh3YWxsIHRpbWUpIHN3aXRjaG92ZXIgdGltZQorICAgICAgICAvLyBmb3IgZGlzY3Vzc2lvbiBwdXJwb3NlcyBoZXJlLgorICAgICAgICAvLyAxLiBUaGUgdHJhbnNpdGlvbiBpbnRvIERTVC4gIEhlcmUsIGEgZGVzaWduYXRlZCB0aW1lIG9mIDI6MDAgYW0gLSAyOjU5IGFtCisgICAgICAgIC8vICAgIGNhbiBiZSBpbiBzdGFuZGFyZCBvciBpbiBEU1QgZGVwZW5kaW5nLiAgSG93ZXZlciwgMjowMCBhbSBpcyBhbiBpbnZhbGlkCisgICAgICAgIC8vICAgIHJlcHJlc2VudGF0aW9uICh0aGUgcmVwcmVzZW50YXRpb24ganVtcHMgZnJvbSAxOjU5OjU5IGFtIFN0ZCB0byAzOjAwOjAwIGFtIERTVCkuCisgICAgICAgIC8vICAgIFdlIGFzc3VtZSBzdGFuZGFyZCB0aW1lLgorICAgICAgICAvLyAyLiBUaGUgdHJhbnNpdGlvbiBvdXQgb2YgRFNULiAgSGVyZSwgYSBkZXNpZ25hdGVkIHRpbWUgb2YgMTowMCBhbSAtIDE6NTkgYW0KKyAgICAgICAgLy8gICAgY2FuIGJlIGluIHN0YW5kYXJkIG9yIERTVC4gIEJvdGggYXJlIHZhbGlkIHJlcHJlc2VudGF0aW9ucyAodGhlIHJlcAorICAgICAgICAvLyAgICBqdW1wcyBmcm9tIDE6NTk6NTkgRFNUIHRvIDE6MDA6MDAgU3RkKS4KKyAgICAgICAgLy8gICAgQWdhaW4sIHdlIGFzc3VtZSBzdGFuZGFyZCB0aW1lLgorICAgICAgICAvLyBXZSB1c2UgdGhlIFRpbWVab25lIG9iamVjdCwgdW5sZXNzIHRoZSB1c2VyIGhhcyBleHBsaWNpdGx5IHNldCB0aGUgWk9ORV9PRkZTRVQKKyAgICAgICAgLy8gb3IgRFNUX09GRlNFVCBmaWVsZHM7IHRoZW4gd2UgdXNlIHRob3NlIGZpZWxkcy4KKyAgICAgICAgaWYgKHN0YW1wW1pPTkVfT0ZGU0VUXSA+PSBNSU5JTVVNX1VTRVJfU1RBTVAgfHwKKyAgICAgICAgICAgIHN0YW1wW0RTVF9PRkZTRVRdID49IE1JTklNVU1fVVNFUl9TVEFNUCkgeworICAgICAgICAgICAgbWlsbGlzSW5EYXkgLT0gaW50ZXJuYWxHZXQoWk9ORV9PRkZTRVQpICsgaW50ZXJuYWxHZXQoRFNUX09GRlNFVCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtaWxsaXNJbkRheSAtPSBjb21wdXRlWm9uZU9mZnNldChtaWxsaXMsIG1pbGxpc0luRGF5KTsKKyAgICAgICAgfQorCisgICAgICAgIHRpbWUgPSBtaWxsaXMgKyBtaWxsaXNJbkRheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIHRoZSBtaWxsaXNlY29uZHMgaW4gdGhlIGRheSBmcm9tIHRoZSBmaWVsZHMuICBUaGlzIGlzIGEKKyAgICAgKiB2YWx1ZSBmcm9tIDAgdG8gMjM6NTk6NTkuOTk5IGluY2x1c2l2ZSwgdW5sZXNzIGZpZWxkcyBhcmUgb3V0IG9mCisgICAgICogcmFuZ2UsIGluIHdoaWNoIGNhc2UgaXQgY2FuIGJlIGFuIGFyYml0cmFyeSB2YWx1ZS4gIFRoaXMgdmFsdWUKKyAgICAgKiByZWZsZWN0cyBsb2NhbCB6b25lIHdhbGwgdGltZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGNvbXB1dGVNaWxsaXNJbkRheSgpIHsKKyAgICAgICAgLy8gRG8gdGhlIHRpbWUgcG9ydGlvbiBvZiB0aGUgY29udmVyc2lvbi4KKworICAgICAgICBpbnQgbWlsbGlzSW5EYXkgPSAwOworCisgICAgICAgIC8vIEZpbmQgdGhlIGJlc3Qgc2V0IG9mIGZpZWxkcyBzcGVjaWZ5aW5nIHRoZSB0aW1lIG9mIGRheS4gIFRoZXJlCisgICAgICAgIC8vIGFyZSBvbmx5IHR3byBwb3NzaWJpbGl0aWVzIGhlcmU7IHRoZSBIT1VSX09GX0RBWSBvciB0aGUKKyAgICAgICAgLy8gQU1fUE0gYW5kIHRoZSBIT1VSLgorICAgICAgICBpbnQgaG91ck9mRGF5U3RhbXAgPSBzdGFtcFtIT1VSX09GX0RBWV07CisgICAgICAgIGludCBob3VyU3RhbXAgPSBNYXRoLm1heChzdGFtcFtIT1VSXSwgc3RhbXBbQU1fUE1dKTsKKyAgICAgICAgaW50IGJlc3RTdGFtcCA9IChob3VyU3RhbXAgPiBob3VyT2ZEYXlTdGFtcCkgPyBob3VyU3RhbXAgOiBob3VyT2ZEYXlTdGFtcDsKKworICAgICAgICAvLyBIb3VycworICAgICAgICBpZiAoYmVzdFN0YW1wICE9IFVOU0VUKSB7CisgICAgICAgICAgICBpZiAoYmVzdFN0YW1wID09IGhvdXJPZkRheVN0YW1wKSB7CisgICAgICAgICAgICAgICAgLy8gRG9uJ3Qgbm9ybWFsaXplIGhlcmU7IGxldCBvdmVyZmxvdyBidW1wIGludG8gdGhlIG5leHQgcGVyaW9kLgorICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIGhvdyB3ZSBoYW5kbGUgb3RoZXIgZmllbGRzLgorICAgICAgICAgICAgICAgIG1pbGxpc0luRGF5ICs9IGludGVybmFsR2V0KEhPVVJfT0ZfREFZKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gRG9uJ3Qgbm9ybWFsaXplIGhlcmU7IGxldCBvdmVyZmxvdyBidW1wIGludG8gdGhlIG5leHQgcGVyaW9kLgorICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIGhvdyB3ZSBoYW5kbGUgb3RoZXIgZmllbGRzLgorICAgICAgICAgICAgICAgIG1pbGxpc0luRGF5ICs9IGludGVybmFsR2V0KEhPVVIpOworICAgICAgICAgICAgICAgIG1pbGxpc0luRGF5ICs9IDEyICogaW50ZXJuYWxHZXQoQU1fUE0pOyAvLyBEZWZhdWx0IHdvcmtzIGZvciB1bnNldCBBTV9QTQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gV2UgdXNlIHRoZSBmYWN0IHRoYXQgdW5zZXQgPT0gMDsgd2Ugc3RhcnQgd2l0aCBtaWxsaXNJbkRheQorICAgICAgICAvLyA9PSBIT1VSX09GX0RBWS4KKyAgICAgICAgbWlsbGlzSW5EYXkgKj0gNjA7CisgICAgICAgIG1pbGxpc0luRGF5ICs9IGludGVybmFsR2V0KE1JTlVURSk7IC8vIG5vdyBoYXZlIG1pbnV0ZXMKKyAgICAgICAgbWlsbGlzSW5EYXkgKj0gNjA7CisgICAgICAgIG1pbGxpc0luRGF5ICs9IGludGVybmFsR2V0KFNFQ09ORCk7IC8vIG5vdyBoYXZlIHNlY29uZHMKKyAgICAgICAgbWlsbGlzSW5EYXkgKj0gMTAwMDsKKyAgICAgICAgbWlsbGlzSW5EYXkgKz0gaW50ZXJuYWxHZXQoTUlMTElTRUNPTkQpOyAvLyBub3cgaGF2ZSBtaWxsaXMKKworICAgICAgICByZXR1cm4gbWlsbGlzSW5EYXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgY2FuIGFzc3VtZSBFWFRFTkRFRF9ZRUFSIGhhcyBiZWVuIHNldC4KKyAgICAgKiBAcGFyYW0gbWlsbGlzIG1pbGxpc2Vjb25kcyBvZiB0aGUgZGF0ZSBmaWVsZHMgKGxvY2FsIG1pZG5pZ2h0IG1pbGxpcykKKyAgICAgKiBAcGFyYW0gbWlsbGlzSW5EYXkgbWlsbGlzZWNvbmRzIG9mIHRoZSB0aW1lIGZpZWxkczsgbWF5IGJlIG91dAorICAgICAqIG9yIHJhbmdlLgorICAgICAqIEByZXR1cm4gdG90YWwgem9uZSBvZmZzZXQgKHJhdyArIERTVCkgZm9yIHRoZSBnaXZlbiBtb21lbnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGNvbXB1dGVab25lT2Zmc2V0KGxvbmcgbWlsbGlzLCBpbnQgbWlsbGlzSW5EYXkpIHsKKyAgICAgICAgaW50IG9mZnNldHNbXSA9IG5ldyBpbnRbMl07CisgICAgICAgIHpvbmUuZ2V0T2Zmc2V0KG1pbGxpcyArIG1pbGxpc0luRGF5LCB0cnVlLCBvZmZzZXRzKTsKKyAgICAgICAgcmV0dXJuIG9mZnNldHNbMF0gKyBvZmZzZXRzWzFdOworCisgICAgICAgIC8vIE5vdGU6IEJlY2F1c2Ugd2UgcGFzcyBpbiB3YWxsIG1pbGxpc0luRGF5LCByYXRoZXIgdGhhbgorICAgICAgICAvLyBzdGFuZGFyZCBtaWxsaXNJbkRheSwgd2UgaW50ZXJwcmV0ICIxOjAwIGFtIiBvbiB0aGUgZGF5CisgICAgICAgIC8vIG9mIGNlc3NhdGlvbiBvZiBEU1QgYXMgIjE6MDAgYW0gU3RkIiAoYXNzdW1pbmcgdGhlIHRpbWUKKyAgICAgICAgLy8gb2YgY2Vzc2F0aW9uIGlzIDI6MDAgYW0pLgorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXB1dGUgdGhlIEp1bGlhbiBkYXkgbnVtYmVyIGFzIHNwZWNpZmllZCBieSB0aGlzIGNhbGVuZGFyJ3MgZmllbGRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgY29tcHV0ZUp1bGlhbkRheSgpIHsKKworICAgICAgICAvLyBXZSB3YW50IHRvIHNlZSBpZiBhbnkgb2YgdGhlIGRhdGUgZmllbGRzIGlzIG5ld2VyIHRoYW4gdGhlCisgICAgICAgIC8vIEpVTElBTl9EQVkuICBJZiBub3QsIHRoZW4gd2UgdXNlIEpVTElBTl9EQVkuICBJZiBzbywgdGhlbiB3ZSBkbworICAgICAgICAvLyB0aGUgbm9ybWFsIHJlc29sdXRpb24uICBXZSBvbmx5IHVzZSBKVUxJQU5fREFZIGlmIGl0IGhhcyBiZWVuCisgICAgICAgIC8vIHNldCBieSB0aGUgdXNlci4gIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBjYWxsZXIgdG8gc2V0CisgICAgICAgIC8vIHRoZSBjYWxlbmRhciB0byBhIHRpbWUgYW5kIGNhbGwgY2xlYXIoTU9OVEgpIHRvIHJlc2V0IHRoZSBNT05USAorICAgICAgICAvLyB0byBKYW51YXJ5LiAgVGhpcyBpcyBsZWdhY3kgYmVoYXZpb3IuICBXaXRob3V0IHRoaXMsCisgICAgICAgIC8vIGNsZWFyKE1PTlRIKSBoYXMgbm8gZWZmZWN0LCBzaW5jZSB0aGUgaW50ZXJuYWxseSBzZXQgSlVMSUFOX0RBWQorICAgICAgICAvLyBpcyB1c2VkLgorICAgICAgICBpZiAoc3RhbXBbSlVMSUFOX0RBWV0gPj0gTUlOSU1VTV9VU0VSX1NUQU1QKSB7CisgICAgICAgICAgICBpbnQgYmVzdFN0YW1wID0gbmV3ZXN0U3RhbXAoRVJBLCBEQVlfT0ZfV0VFS19JTl9NT05USCwgVU5TRVQpOworICAgICAgICAgICAgYmVzdFN0YW1wID0gbmV3ZXN0U3RhbXAoWUVBUl9XT1ksIEVYVEVOREVEX1lFQVIsIGJlc3RTdGFtcCk7CisgICAgICAgICAgICBpZiAoYmVzdFN0YW1wIDw9IHN0YW1wW0pVTElBTl9EQVldKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsR2V0KEpVTElBTl9EQVkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaW50IGJlc3RGaWVsZCA9IHJlc29sdmVGaWVsZHMoZ2V0RmllbGRSZXNvbHV0aW9uVGFibGUoKSk7CisgICAgICAgIGlmIChiZXN0RmllbGQgPCAwKSB7CisgICAgICAgICAgICBiZXN0RmllbGQgPSBEQVlfT0ZfTU9OVEg7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaGFuZGxlQ29tcHV0ZUp1bGlhbkRheShiZXN0RmllbGQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmllbGQgcmVzb2x1dGlvbiBhcnJheSBmb3IgdGhpcyBjYWxlbmRhci4gIENhbGVuZGFycyB0aGF0CisgICAgICogZGVmaW5lIGFkZGl0aW9uYWwgZmllbGRzIG9yIGNoYW5nZSB0aGUgc2VtYW50aWNzIG9mIGV4aXN0aW5nIGZpZWxkcworICAgICAqIHNob3VsZCBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBhZGp1c3QgdGhlIGZpZWxkIHJlc29sdXRpb24gc2VtYW50aWNzCisgICAgICogYWNjb3JkaW5nbHkuICBPdGhlciBzdWJjbGFzc2VzIHNob3VsZCBub3Qgb3ZlcnJpZGUgdGhpcyBtZXRob2QuCisgICAgICogQHNlZSAjcmVzb2x2ZUZpZWxkcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnRbXVtdW10gZ2V0RmllbGRSZXNvbHV0aW9uVGFibGUoKSB7CisgICAgICAgIHJldHVybiBEQVRFX1BSRUNFREVOQ0U7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBKdWxpYW4gZGF5IG51bWJlciBvZiBkYXkgYmVmb3JlIHRoZSBmaXJzdCBkYXkgb2YgdGhlCisgICAgICogZ2l2ZW4gbW9udGggaW4gdGhlIGdpdmVuIGV4dGVuZGVkIHllYXIuICBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZQorICAgICAqIHRoaXMgbWV0aG9kIHRvIGltcGxlbWVudCB0aGVpciBjYWxlbmRhciBzeXN0ZW0uCisgICAgICogQHBhcmFtIGV5ZWFyIHRoZSBleHRlbmRlZCB5ZWFyCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB6ZXJvLWJhc2VkIG1vbnRoLCBvciAwIGlmIHVzZU1vbnRoIGlzIGZhbHNlCisgICAgICogQHBhcmFtIHVzZU1vbnRoIGlmIGZhbHNlLCBjb21wdXRlIHRoZSBkYXkgYmVmb3JlIHRoZSBmaXJzdCBkYXkgb2YKKyAgICAgKiB0aGUgZ2l2ZW4geWVhciwgb3RoZXJ3aXNlLCBjb21wdXRlIHRoZSBkYXkgYmVmb3JlIHRoZSBmaXJzdCBkYXkgb2YKKyAgICAgKiB0aGUgZ2l2ZW4gbW9udGgKKyAgICAgKiBAcmV0dXJuIHRoZSBKdWxpYW4gZGF5IG51bWJlciBvZiB0aGUgZGF5IGJlZm9yZSB0aGUgZmlyc3QKKyAgICAgKiBkYXkgb2YgdGhlIGdpdmVuIG1vbnRoIGFuZCB5ZWFyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgYWJzdHJhY3QgcHJvdGVjdGVkIGludCBoYW5kbGVDb21wdXRlTW9udGhTdGFydChpbnQgZXllYXIsIGludCBtb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gdXNlTW9udGgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBleHRlbmRlZCB5ZWFyIGRlZmluZWQgYnkgdGhlIGN1cnJlbnQgZmllbGRzLiAgVGhpcyB3aWxsCisgICAgICogdXNlIHRoZSBFWFRFTkRFRF9ZRUFSIGZpZWxkIG9yIHRoZSBZRUFSIGFuZCBzdXByYS15ZWFyIGZpZWxkcyAoc3VjaAorICAgICAqIGFzIEVSQSkgc3BlY2lmaWMgdG8gdGhlIGNhbGVuZGFyIHN5c3RlbSwgZGVwZW5kaW5nIG9uIHdoaWNoIHNldCBvZgorICAgICAqIGZpZWxkcyBpcyBuZXdlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBleHRlbmRlZCB5ZWFyCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgYWJzdHJhY3QgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKTsKKworICAgIC8vIChUaGUgZm9sbG93aW5nIG1ldGhvZCBpcyBub3QgY2FsbGVkIGJlY2F1c2UgYWxsIGV4aXN0aW5nIHN1YmNsYXNzZXMKKyAgICAvLyBvdmVycmlkZSBpdC4gIDIwMDMtMDYtMTEgSUNVIDIuNiBBbGFuKQorICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbiBtb250aCBvZiB0aGUgZ2l2ZW4gZXh0ZW5kZWQKKyAgICAgKiB5ZWFyIG9mIHRoaXMgY2FsZW5kYXIgc3lzdGVtLiAgU3ViY2xhc3NlcyBzaG91bGQgb3ZlcnJpZGUgdGhpcworICAgICAqIG1ldGhvZCBpZiB0aGV5IGNhbiBwcm92aWRlIGEgbW9yZSBjb3JyZWN0IG9yIG1vcmUgZWZmaWNpZW50CisgICAgICogaW1wbGVtZW50YXRpb24gdGhhbiB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpbiBDYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldE1vbnRoTGVuZ3RoKGludCBleHRlbmRlZFllYXIsIGludCBtb250aCkgeworICAgICAgICByZXR1cm4gaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoZXh0ZW5kZWRZZWFyLCBtb250aCsxLCB0cnVlKSAtCisgICAgICAgICAgICAgICBoYW5kbGVDb21wdXRlTW9udGhTdGFydChleHRlbmRlZFllYXIsIG1vbnRoLCB0cnVlKTsKKyAgICB9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbiBleHRlbmRlZCB5ZWFyIG9mIHRoaXMKKyAgICAgKiBjYWxlbmRhciBzeXN0ZW0uICBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZSB0aGlzIG1ldGhvZCBpZiB0aGV5IGNhbgorICAgICAqIHByb3ZpZGUgYSBtb3JlIGNvcnJlY3Qgb3IgbW9yZSBlZmZpY2llbnQgaW1wbGVtZW50YXRpb24gdGhhbiB0aGUKKyAgICAgKiBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGluIENhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0WWVhckxlbmd0aChpbnQgZXllYXIpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGV5ZWFyKzEsIDAsIGZhbHNlKSAtCisgICAgICAgICAgICAgICBoYW5kbGVDb21wdXRlTW9udGhTdGFydChleWVhciwgMCwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXMgdGhhdCB1c2UgYWRkaXRpb25hbCBmaWVsZHMgYmV5b25kIHRob3NlIGRlZmluZWQgaW4KKyAgICAgKiA8Y29kZT5DYWxlbmRhcjwvY29kZT4gc2hvdWxkIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHJldHVybiBhbgorICAgICAqIDxjb2RlPmludFtdPC9jb2RlPiBhcnJheSBvZiB0aGUgYXBwcm9wcmlhdGUgbGVuZ3RoLiAgVGhlIGxlbmd0aAorICAgICAqIG11c3QgYmUgYXQgbGVhc3QgPGNvZGU+QkFTRV9GSUVMRF9DT1VOVDwvY29kZT4gYW5kIG5vIG1vcmUgdGhhbgorICAgICAqIDxjb2RlPk1BWF9GSUVMRF9DT1VOVDwvY29kZT4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludFtdIGhhbmRsZUNyZWF0ZUZpZWxkcygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBpbnRbQkFTRV9GSUVMRF9DT1VOVF07CisgICAgfQorCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUgdGhpcy4gIFRoaXMgbWV0aG9kIGNhbGxzCisgICAgICogaGFuZGxlR2V0TW9udGhMZW5ndGgoKSB0byBvYnRhaW4gdGhlIGNhbGVuZGFyLXNwZWNpZmljIG1vbnRoCisgICAgICogbGVuZ3RoLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlQ29tcHV0ZUp1bGlhbkRheShpbnQgYmVzdEZpZWxkKSB7CisKKyAgICAgICAgYm9vbGVhbiB1c2VNb250aCA9IChiZXN0RmllbGQgPT0gREFZX09GX01PTlRIIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVzdEZpZWxkID09IFdFRUtfT0ZfTU9OVEggfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXN0RmllbGQgPT0gREFZX09GX1dFRUtfSU5fTU9OVEgpOworCisgICAgICAgIGludCB5ZWFyID0gaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCk7CisgICAgICAgIGludGVybmFsU2V0KEVYVEVOREVEX1lFQVIsIHllYXIpOworCisgICAgICAgIC8vIEdldCB0aGUgSnVsaWFuIGRheSBvZiB0aGUgZGF5IEJFRk9SRSB0aGUgc3RhcnQgb2YgdGhpcyB5ZWFyLgorICAgICAgICAvLyBJZiB1c2VNb250aCBpcyB0cnVlLCBnZXQgdGhlIGRheSBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSBtb250aC4KKyAgICAgICAgaW50IGp1bGlhbkRheSA9IGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KHllYXIsIHVzZU1vbnRoID8gaW50ZXJuYWxHZXQoTU9OVEgpIDogMCwgdXNlTW9udGgpOworCisgICAgICAgIGlmIChiZXN0RmllbGQgPT0gREFZX09GX01PTlRIKSB7CisgICAgICAgICAgICByZXR1cm4ganVsaWFuRGF5ICsgaW50ZXJuYWxHZXQoREFZX09GX01PTlRILCAxKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChiZXN0RmllbGQgPT0gREFZX09GX1lFQVIpIHsKKyAgICAgICAgICAgIHJldHVybiBqdWxpYW5EYXkgKyBpbnRlcm5hbEdldChEQVlfT0ZfWUVBUik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZmlyc3REYXlPZldlZWsgPSBnZXRGaXJzdERheU9mV2VlaygpOyAvLyBMb2NhbGl6ZWQgZmR3CisKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCBqdWxpYW5EYXkgaXMgdGhlIDAtYmFzZWQgZGF5IEJFRk9SRSB0aGUgZmlyc3QgZGF5IG9mCisgICAgICAgIC8vIEphbnVhcnkgMSwgeWVhciAxIG9mIHRoZSBnaXZlbiBjYWxlbmRhci4gIElmIGp1bGlhbkRheSA9PSAwLCBpdAorICAgICAgICAvLyBzcGVjaWZpZXMgKEphbi4gMSwgMSkgLSAxLCBpbiB3aGF0ZXZlciBjYWxlbmRhciB3ZSBhcmUgdXNpbmcgKEp1bGlhbgorICAgICAgICAvLyBvciBHcmVnb3JpYW4pLgorCisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2UgbmVlZCB0byBwcm9jZXNzIHRoZSBXRUVLX09GX01PTlRIIG9yCisgICAgICAgIC8vIFdFRUtfT0ZfWUVBUiwgd2hpY2ggYXJlIHNpbWlsYXIsIG9yIHRoZSBEQVlfT0ZfV0VFS19JTl9NT05USC4KKyAgICAgICAgLy8gRmlyc3QsIHBlcmZvcm0gaW5pdGlhbCBzaGFyZWQgY29tcHV0YXRpb25zLiAgVGhlc2UgbG9jYXRlIHRoZQorICAgICAgICAvLyBmaXJzdCB3ZWVrIG9mIHRoZSBwZXJpb2QuCisKKyAgICAgICAgLy8gR2V0IHRoZSAwLWJhc2VkIGxvY2FsaXplZCBET1cgb2YgZGF5IG9uZSBvZiB0aGUgbW9udGggb3IgeWVhci4KKyAgICAgICAgLy8gVmFsaWQgcmFuZ2UgMC4uNi4KKyAgICAgICAgaW50IGZpcnN0ID0ganVsaWFuRGF5VG9EYXlPZldlZWsoanVsaWFuRGF5ICsgMSkgLSBmaXJzdERheU9mV2VlazsKKyAgICAgICAgaWYgKGZpcnN0IDwgMCkgeworICAgICAgICAgICAgZmlyc3QgKz0gNzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEdldCB6ZXJvLWJhc2VkIGxvY2FsaXplZCBET1csIHZhbGlkIHJhbmdlIDAuLjYuICBUaGlzIGlzIHRoZSBET1cKKyAgICAgICAgLy8gd2UgYXJlIGxvb2tpbmcgZm9yLgorICAgICAgICBpbnQgZG93TG9jYWwgPSAwOworICAgICAgICBzd2l0Y2ggKHJlc29sdmVGaWVsZHMoRE9XX1BSRUNFREVOQ0UpKSB7CisgICAgICAgIGNhc2UgREFZX09GX1dFRUs6CisgICAgICAgICAgICBkb3dMb2NhbCA9IGludGVybmFsR2V0KERBWV9PRl9XRUVLKSAtIGZpcnN0RGF5T2ZXZWVrOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRE9XX0xPQ0FMOgorICAgICAgICAgICAgZG93TG9jYWwgPSBpbnRlcm5hbEdldChET1dfTE9DQUwpIC0gMTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRvd0xvY2FsID0gZG93TG9jYWwgJSA3OworICAgICAgICBpZiAoZG93TG9jYWwgPCAwKSB7CisgICAgICAgICAgICBkb3dMb2NhbCArPSA3OworICAgICAgICB9CisKKyAgICAgICAgLy8gRmluZCB0aGUgZmlyc3QgdGFyZ2V0IERPVyAoZG93TG9jYWwpIGluIHRoZSBtb250aCBvciB5ZWFyLgorICAgICAgICAvLyBBY3R1YWxseSwgaXQgbWF5IGJlIGp1c3QgYmVmb3JlIHRoZSBmaXJzdCBvZiB0aGUgbW9udGggb3IgeWVhci4KKyAgICAgICAgLy8gSXQgd2lsbCBiZSBhbiBpbnRlZ2VyIGZyb20gLTUuLjcuCisgICAgICAgIGludCBkYXRlID0gMSAtIGZpcnN0ICsgZG93TG9jYWw7CisKKyAgICAgICAgaWYgKGJlc3RGaWVsZCA9PSBEQVlfT0ZfV0VFS19JTl9NT05USCkgeworCisgICAgICAgICAgICAvLyBBZGp1c3QgdGhlIHRhcmdldCBET1cgdG8gYmUgaW4gdGhlIG1vbnRoIG9yIHllYXIuCisgICAgICAgICAgICBpZiAoZGF0ZSA8IDEpIHsKKyAgICAgICAgICAgICAgICBkYXRlICs9IDc7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFRoZSBvbmx5IHRyaWNraW5lc3Mgb2NjdXJzIGlmIHRoZSBkYXktb2Ytd2Vlay1pbi1tb250aCBpcworICAgICAgICAgICAgLy8gbmVnYXRpdmUuCisgICAgICAgICAgICBpbnQgZGltID0gaW50ZXJuYWxHZXQoREFZX09GX1dFRUtfSU5fTU9OVEgsIDEpOworICAgICAgICAgICAgaWYgKGRpbSA+PSAwKSB7CisgICAgICAgICAgICAgICAgZGF0ZSArPSA3KihkaW0gLSAxKTsKKworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBNb3ZlIGRhdGUgdG8gdGhlIGxhc3Qgb2YgdGhpcyBkYXktb2Ytd2VlayBpbiB0aGlzIG1vbnRoLAorICAgICAgICAgICAgICAgIC8vIHRoZW4gYmFjayB1cCBhcyBuZWVkZWQuICBJZiBkaW09PS0xLCB3ZSBkb24ndCBiYWNrIHVwIGF0CisgICAgICAgICAgICAgICAgLy8gYWxsLiAgSWYgZGltPT0tMiwgd2UgYmFjayB1cCBvbmNlLCBldGMuICBEb24ndCBiYWNrIHVwCisgICAgICAgICAgICAgICAgLy8gcGFzdCB0aGUgZmlyc3Qgb2YgdGhlIGdpdmVuIGRheS1vZi13ZWVrIGluIHRoaXMgbW9udGguCisgICAgICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHdlIGhhbmRsZSAtMiwgLTMsIGV0Yy4gY29ycmVjdGx5LCBldmVuIHRob3VnaAorICAgICAgICAgICAgICAgIC8vIHZhbHVlcyA8IC0xIGFyZSB0ZWNobmljYWxseSBkaXNhbGxvd2VkLgorICAgICAgICAgICAgICAgIGludCBtID0gaW50ZXJuYWxHZXQoTU9OVEgsIEpBTlVBUlkpOworICAgICAgICAgICAgICAgIGludCBtb250aExlbmd0aCA9IGhhbmRsZUdldE1vbnRoTGVuZ3RoKHllYXIsIG0pOworICAgICAgICAgICAgICAgIGRhdGUgKz0gKChtb250aExlbmd0aCAtIGRhdGUpIC8gNyArIGRpbSArIDEpICogNzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGFzc2VydChiZXN0RmllbGQgPT0gV0VFS19PRl9NT05USCB8fCBiZXN0RmllbGQgPT0gV0VFS19PRl9ZRUFSKQorCisgICAgICAgICAgICAvLyBBZGp1c3QgZm9yIG1pbmltYWwgZGF5cyBpbiBmaXJzdCB3ZWVrCisgICAgICAgICAgICBpZiAoKDcgLSBmaXJzdCkgPCBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkpIHsKKyAgICAgICAgICAgICAgICBkYXRlICs9IDc7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE5vdyBhZGp1c3QgZm9yIHRoZSB3ZWVrIG51bWJlci4KKyAgICAgICAgICAgIGRhdGUgKz0gNyAqIChpbnRlcm5hbEdldChiZXN0RmllbGQpIC0gMSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4ganVsaWFuRGF5ICsgZGF0ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIHRoZSBKdWxpYW4gZGF5IG9mIGEgbW9udGggb2YgdGhlIEdyZWdvcmlhbiBjYWxlbmRhci4KKyAgICAgKiBTdWJjbGFzc2VzIG1heSBjYWxsIHRoaXMgbWV0aG9kIHRvIHBlcmZvcm0gYSBHcmVnb3JpYW4gY2FsZW5kYXIKKyAgICAgKiBmaWVsZHMtPm1pbGxpcyBjb21wdXRhdGlvbi4gIFRvIHBlcmZvcm0gYSBHcmVnb3JpYW4gY2FsZW5kYXIKKyAgICAgKiBtaWxsaXMtPmZpZWxkcyBjb21wdXRhdGlvbiwgY2FsbCBjb21wdXRlR3JlZ29yaWFuRmllbGRzKCkuCisgICAgICogQHBhcmFtIHllYXIgZXh0ZW5kZWQgR3JlZ29yaWFuIHllYXIKKyAgICAgKiBAcGFyYW0gbW9udGggemVyby1iYXNlZCBHcmVnb3JpYW4gbW9udGgKKyAgICAgKiBAcmV0dXJuIHRoZSBKdWxpYW4gZGF5IG51bWJlciBvZiB0aGUgZGF5IGJlZm9yZSB0aGUgZmlyc3QKKyAgICAgKiBkYXkgb2YgdGhlIGdpdmVuIG1vbnRoIGluIHRoZSBnaXZlbiBleHRlbmRlZCB5ZWFyCisgICAgICogQHNlZSAjY29tcHV0ZUdyZWdvcmlhbkZpZWxkcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgY29tcHV0ZUdyZWdvcmlhbk1vbnRoU3RhcnQoaW50IHllYXIsIGludCBtb250aCkgeworCisgICAgICAgIC8vIElmIHRoZSBtb250aCBpcyBvdXQgb2YgcmFuZ2UsIGFkanVzdCBpdCBpbnRvIHJhbmdlLCBhbmQKKyAgICAgICAgLy8gbW9kaWZ5IHRoZSBleHRlbmRlZCB5ZWFyIHZhbHVlIGFjY29yZGluZ2x5LgorICAgICAgICBpZiAobW9udGggPCAwIHx8IG1vbnRoID4gMTEpIHsKKyAgICAgICAgICAgIGludFtdIHJlbSA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICB5ZWFyICs9IGZsb29yRGl2aWRlKG1vbnRoLCAxMiwgcmVtKTsKKyAgICAgICAgICAgIG1vbnRoID0gcmVtWzBdOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBpc0xlYXAgPSAoeWVhciU0ID09IDApICYmICgoeWVhciUxMDAgIT0gMCkgfHwgKHllYXIlNDAwID09IDApKTsKKyAgICAgICAgaW50IHkgPSB5ZWFyIC0gMTsKKyAgICAgICAgLy8gVGhpcyBjb21wdXRhdGlvbiBpcyBhY3R1YWxseSAuLi4gKyAoSkFOXzFfMV9KVUxJQU5fREFZIC0gMykgKyAyLgorICAgICAgICAvLyBBZGQgMiBiZWNhdXNlIEdyZWdvcmlhbiBjYWxlbmRhciBzdGFydHMgMiBkYXlzIGFmdGVyIEp1bGlhbgorICAgICAgICAvLyBjYWxlbmRhci4KKyAgICAgICAgaW50IGp1bGlhbkRheSA9IDM2NSp5ICsgZmxvb3JEaXZpZGUoeSwgNCkgLSBmbG9vckRpdmlkZSh5LCAxMDApICsKKyAgICAgICAgICAgIGZsb29yRGl2aWRlKHksIDQwMCkgKyBKQU5fMV8xX0pVTElBTl9EQVkgLSAxOworCisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQganVsaWFuRGF5IGluZGljYXRlcyB0aGUgZGF5IEJFRk9SRSB0aGUgZmlyc3QgZGF5CisgICAgICAgIC8vIG9mIEphbnVhcnkgMSwgPGV5ZWFyPiBvZiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLgorICAgICAgICBpZiAobW9udGggIT0gMCkgeworICAgICAgICAgICAganVsaWFuRGF5ICs9IEdSRUdPUklBTl9NT05USF9DT1VOVFttb250aF1baXNMZWFwPzM6Ml07CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4ganVsaWFuRGF5OworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFN1YmNsYXNzIEFQSQorICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyAoVGhlIGZvbGxvd2luZyBtZXRob2QgaXMgbm90IGNhbGxlZCBiZWNhdXNlIGFsbCBleGlzdGluZyBzdWJjbGFzc2VzCisgICAgLy8gb3ZlcnJpZGUgaXQuICAyMDAzLTA2LTExIElDVSAyLjYgQWxhbikKKyAgICAvLy9DTE9WRVI6T0ZGCisgICAgLyoqCisgICAgICogU3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gY29tcHV0ZSBzZXZlcmFsIGZpZWxkcworICAgICAqIHNwZWNpZmljIHRvIGVhY2ggY2FsZW5kYXIgc3lzdGVtLiAgVGhlc2UgYXJlOgorICAgICAqCisgICAgICogPHVsPjxsaT5FUkEKKyAgICAgKiA8bGk+WUVBUgorICAgICAqIDxsaT5NT05USAorICAgICAqIDxsaT5EQVlfT0ZfTU9OVEgKKyAgICAgKiA8bGk+REFZX09GX1lFQVIKKyAgICAgKiA8bGk+RVhURU5ERURfWUVBUjwvdWw+CisgICAgICoKKyAgICAgKiBTdWJjbGFzc2VzIGNhbiByZWZlciB0byB0aGUgREFZX09GX1dFRUsgYW5kIERPV19MT0NBTCBmaWVsZHMsIHdoaWNoCisgICAgICogd2lsbCBiZSBzZXQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQuICBTdWJjbGFzc2VzIGNhbiBhbHNvIGNhbGwKKyAgICAgKiB0aGUgZ2V0R3JlZ29yaWFuWHh4KCkgbWV0aG9kcyB0byBvYnRhaW4gR3JlZ29yaWFuIGNhbGVuZGFyCisgICAgICogZXF1aXZhbGVudHMgZm9yIHRoZSBnaXZlbiBKdWxpYW4gZGF5LgorICAgICAqCisgICAgICogPHA+SW4gYWRkaXRpb24sIHN1YmNsYXNzZXMgc2hvdWxkIGNvbXB1dGUgYW55IHN1YmNsYXNzLXNwZWNpZmljCisgICAgICogZmllbGRzLCB0aGF0IGlzLCBmaWVsZHMgZnJvbSBCQVNFX0ZJRUxEX0NPVU5UIHRvCisgICAgICogZ2V0RmllbGRDb3VudCgpIC0gMS4KKyAgICAgKgorICAgICAqIDxwPlRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGluIDxjb2RlPkNhbGVuZGFyPC9jb2RlPiBpbXBsZW1lbnRzCisgICAgICogYSBwdXJlIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQ29tcHV0ZUZpZWxkcyhpbnQganVsaWFuRGF5KSB7CisgICAgICAgIGludGVybmFsU2V0KE1PTlRILCBnZXRHcmVnb3JpYW5Nb250aCgpKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX01PTlRILCBnZXRHcmVnb3JpYW5EYXlPZk1vbnRoKCkpOworICAgICAgICBpbnRlcm5hbFNldChEQVlfT0ZfWUVBUiwgZ2V0R3JlZ29yaWFuRGF5T2ZZZWFyKCkpOworICAgICAgICBpbnQgZXllYXIgPSBnZXRHcmVnb3JpYW5ZZWFyKCk7CisgICAgICAgIGludGVybmFsU2V0KEVYVEVOREVEX1lFQVIsIGV5ZWFyKTsKKyAgICAgICAgaW50IGVyYSA9IEdyZWdvcmlhbkNhbGVuZGFyLkFEOworICAgICAgICBpZiAoZXllYXIgPCAxKSB7CisgICAgICAgICAgICBlcmEgPSBHcmVnb3JpYW5DYWxlbmRhci5CQzsKKyAgICAgICAgICAgIGV5ZWFyID0gMSAtIGV5ZWFyOworICAgICAgICB9CisgICAgICAgIGludGVybmFsU2V0KEVSQSwgZXJhKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoWUVBUiwgZXllYXIpOworICAgIH0KKyAgICAvLy9DTE9WRVI6T04KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFN1YmNsYXNzIEFQSQorICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIGNhbGwKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZXh0ZW5kZWQgeWVhciBvbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIGFzIGNvbXB1dGVkIGJ5CisgICAgICogPGNvZGU+Y29tcHV0ZUdyZWdvcmlhbkZpZWxkcygpPC9jb2RlPi4KKyAgICAgKiBAc2VlICNjb21wdXRlR3JlZ29yaWFuRmllbGRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRHcmVnb3JpYW5ZZWFyKCkgeworICAgICAgICByZXR1cm4gZ3JlZ29yaWFuWWVhcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1vbnRoICgwLWJhc2VkKSBvbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIGFzIGNvbXB1dGVkIGJ5CisgICAgICogPGNvZGU+Y29tcHV0ZUdyZWdvcmlhbkZpZWxkcygpPC9jb2RlPi4KKyAgICAgKiBAc2VlICNjb21wdXRlR3JlZ29yaWFuRmllbGRzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGludCBnZXRHcmVnb3JpYW5Nb250aCgpIHsKKyAgICAgICAgcmV0dXJuIGdyZWdvcmlhbk1vbnRoOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZGF5IG9mIHllYXIgKDEtYmFzZWQpIG9uIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgYXMKKyAgICAgKiBjb21wdXRlZCBieSA8Y29kZT5jb21wdXRlR3JlZ29yaWFuRmllbGRzKCk8L2NvZGU+LgorICAgICAqIEBzZWUgI2NvbXB1dGVHcmVnb3JpYW5GaWVsZHMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgaW50IGdldEdyZWdvcmlhbkRheU9mWWVhcigpIHsKKyAgICAgICAgcmV0dXJuIGdyZWdvcmlhbkRheU9mWWVhcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGRheSBvZiBtb250aCAoMS1iYXNlZCkgb24gdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBhcworICAgICAqIGNvbXB1dGVkIGJ5IDxjb2RlPmNvbXB1dGVHcmVnb3JpYW5GaWVsZHMoKTwvY29kZT4uCisgICAgICogQHNlZSAjY29tcHV0ZUdyZWdvcmlhbkZpZWxkcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBmaW5hbCBpbnQgZ2V0R3JlZ29yaWFuRGF5T2ZNb250aCgpIHsKKyAgICAgICAgcmV0dXJuIGdyZWdvcmlhbkRheU9mTW9udGg7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgZmllbGRzIGRlZmluZWQgYnkgdGhpcyBjYWxlbmRhci4gIFZhbGlkIGZpZWxkCisgICAgICogYXJndW1lbnRzIHRvIDxjb2RlPnNldCgpPC9jb2RlPiBhbmQgPGNvZGU+Z2V0KCk8L2NvZGU+IGFyZQorICAgICAqIDxjb2RlPjAuLmdldEZpZWxkQ291bnQoKS0xPC9jb2RlPi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldEZpZWxkQ291bnQoKSB7CisgICAgICAgIHJldHVybiBmaWVsZHMubGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBhIGZpZWxkIHRvIGEgdmFsdWUuICBTdWJjbGFzc2VzIHNob3VsZCB1c2UgdGhpcyBtZXRob2Qgd2hlbgorICAgICAqIGNvbXB1dGluZyBmaWVsZHMuICBJdCBzZXRzIHRoZSB0aW1lIHN0YW1wIGluIHRoZQorICAgICAqIDxjb2RlPnN0YW1wW108L2NvZGU+IGFycmF5IHRvIDxjb2RlPklOVEVSTkFMTFlfU0VUPC9jb2RlPi4gIElmIGEKKyAgICAgKiBmaWVsZCB0aGF0IG1heSBub3QgYmUgc2V0IGJ5IHN1YmNsYXNzZXMgaXMgcGFzc2VkIGluLCBhbgorICAgICAqIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4gaXMgdGhyb3duLiAgVGhpcyBwcmV2ZW50cworICAgICAqIHN1YmNsYXNzZXMgZnJvbSBtb2RpZnlpbmcgZmllbGRzIHRoYXQgYXJlIGludGVuZGVkIHRvIGJlCisgICAgICogY2FsZW5kYXItc3lzdGVtIGludmFyaWFudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBpbnRlcm5hbFNldChpbnQgZmllbGQsIGludCB2YWx1ZSkgeworICAgICAgICBpZiAoKCgxIDw8IGZpZWxkKSAmIGludGVybmFsU2V0TWFzaykgPT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiU3ViY2xhc3MgY2Fubm90IHNldCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lKGZpZWxkKSk7CisgICAgICAgIH0KKyAgICAgICAgZmllbGRzW2ZpZWxkXSA9IHZhbHVlOworICAgICAgICBzdGFtcFtmaWVsZF0gPSBJTlRFUk5BTExZX1NFVDsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnRbXVtdIEdSRUdPUklBTl9NT05USF9DT1VOVCA9IHsKKyAgICAgICAgLy9sZW4gbGVuMiAgIHN0ICBzdDIKKyAgICAgICAgeyAgMzEsICAzMSwgICAwLCAgIDAgfSwgLy8gSmFuCisgICAgICAgIHsgIDI4LCAgMjksICAzMSwgIDMxIH0sIC8vIEZlYgorICAgICAgICB7ICAzMSwgIDMxLCAgNTksICA2MCB9LCAvLyBNYXIKKyAgICAgICAgeyAgMzAsICAzMCwgIDkwLCAgOTEgfSwgLy8gQXByCisgICAgICAgIHsgIDMxLCAgMzEsIDEyMCwgMTIxIH0sIC8vIE1heQorICAgICAgICB7ICAzMCwgIDMwLCAxNTEsIDE1MiB9LCAvLyBKdW4KKyAgICAgICAgeyAgMzEsICAzMSwgMTgxLCAxODIgfSwgLy8gSnVsCisgICAgICAgIHsgIDMxLCAgMzEsIDIxMiwgMjEzIH0sIC8vIEF1ZworICAgICAgICB7ICAzMCwgIDMwLCAyNDMsIDI0NCB9LCAvLyBTZXAKKyAgICAgICAgeyAgMzEsICAzMSwgMjczLCAyNzQgfSwgLy8gT2N0CisgICAgICAgIHsgIDMwLCAgMzAsIDMwNCwgMzA1IH0sIC8vIE5vdgorICAgICAgICB7ICAzMSwgIDMxLCAzMzQsIDMzNSB9ICAvLyBEZWMKKyAgICAgICAgLy8gbGVuICBsZW5ndGggb2YgbW9udGgKKyAgICAgICAgLy8gbGVuMiBsZW5ndGggb2YgbW9udGggaW4gYSBsZWFwIHllYXIKKyAgICAgICAgLy8gc3QgICBkYXlzIGluIHllYXIgYmVmb3JlIHN0YXJ0IG9mIG1vbnRoCisgICAgICAgIC8vIHN0MiAgZGF5cyBpbiB5ZWFyIGJlZm9yZSBtb250aCBpbiBsZWFwIHllYXIKKyAgICB9OworCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4geWVhciBpcyBhIGxlYXAgeWVhci4gUmV0dXJucyB0cnVlIGlmIHRoZQorICAgICAqIGdpdmVuIHllYXIgaXMgYSBsZWFwIHllYXIuCisgICAgICogQHBhcmFtIHllYXIgdGhlIGdpdmVuIHllYXIuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiB5ZWFyIGlzIGEgbGVhcCB5ZWFyOyBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzR3JlZ29yaWFuTGVhcFllYXIoaW50IHllYXIpIHsKKyAgICAgICAgcmV0dXJuICh5ZWFyJTQgPT0gMCkgJiYgKCh5ZWFyJTEwMCAhPSAwKSB8fCAoeWVhciU0MDAgPT0gMCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVuZ3RoIG9mIGEgbW9udGggb2YgdGhlIEdyZWdvcmlhbiBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0geSB0aGUgZXh0ZW5kZWQgeWVhcgorICAgICAqIEBwYXJhbSBtIHRoZSAwLWJhc2VkIG1vbnRoIG51bWJlcgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSBnaXZlbiBtb250aAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IGdyZWdvcmlhbk1vbnRoTGVuZ3RoKGludCB5LCBpbnQgbSkgeworICAgICAgICByZXR1cm4gR1JFR09SSUFOX01PTlRIX0NPVU5UW21dW2lzR3JlZ29yaWFuTGVhcFllYXIoeSk/MTowXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiBhIHByZXZpb3VzIG1vbnRoIG9mIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIuCisgICAgICogQHBhcmFtIHkgdGhlIGV4dGVuZGVkIHllYXIKKyAgICAgKiBAcGFyYW0gbSB0aGUgMC1iYXNlZCBtb250aCBudW1iZXIKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGUgbW9udGggcHJldmlvdXMgdG8gdGhlIGdpdmVuIG1vbnRoCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgZ3JlZ29yaWFuUHJldmlvdXNNb250aExlbmd0aChpbnQgeSwgaW50IG0pIHsKKyAgICAgICAgcmV0dXJuIChtID4gMCkgPyBncmVnb3JpYW5Nb250aExlbmd0aCh5LCBtLTEpIDogMzE7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGl2aWRlIHR3byBsb25nIGludGVnZXJzLCByZXR1cm5pbmcgdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudC4KKyAgICAgKiA8cD4KKyAgICAgKiBVbmxpa2UgdGhlIGJ1aWx0LWluIGRpdmlzaW9uLCB0aGlzIGlzIG1hdGhlbWF0aWNhbGx5IHdlbGwtYmVoYXZlZC4KKyAgICAgKiBFLmcuLCA8Y29kZT4tMS80PC9jb2RlPiA9PiAwCisgICAgICogYnV0IDxjb2RlPmZsb29yRGl2aWRlKC0xLDQpPC9jb2RlPiA9PiAtMS4KKyAgICAgKiBAcGFyYW0gbnVtZXJhdG9yIHRoZSBudW1lcmF0b3IKKyAgICAgKiBAcGFyYW0gZGVub21pbmF0b3IgYSBkaXZpc29yIHdoaWNoIG11c3QgYmUgPiAwCisgICAgICogQHJldHVybiB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgbG9uZyBmbG9vckRpdmlkZShsb25nIG51bWVyYXRvciwgbG9uZyBkZW5vbWluYXRvcikgeworICAgICAgICAvLyBXZSBkbyB0aGlzIGNvbXB1dGF0aW9uIGluIG9yZGVyIHRvIGhhbmRsZQorICAgICAgICAvLyBhIG51bWVyYXRvciBvZiBMb25nLk1JTl9WQUxVRSBjb3JyZWN0bHkKKyAgICAgICAgcmV0dXJuIChudW1lcmF0b3IgPj0gMCkgPworICAgICAgICAgICAgbnVtZXJhdG9yIC8gZGVub21pbmF0b3IgOgorICAgICAgICAgICAgKChudW1lcmF0b3IgKyAxKSAvIGRlbm9taW5hdG9yKSAtIDE7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGl2aWRlIHR3byBpbnRlZ2VycywgcmV0dXJuaW5nIHRoZSBmbG9vciBvZiB0aGUgcXVvdGllbnQuCisgICAgICogPHA+CisgICAgICogVW5saWtlIHRoZSBidWlsdC1pbiBkaXZpc2lvbiwgdGhpcyBpcyBtYXRoZW1hdGljYWxseSB3ZWxsLWJlaGF2ZWQuCisgICAgICogRS5nLiwgPGNvZGU+LTEvNDwvY29kZT4gPT4gMAorICAgICAqIGJ1dCA8Y29kZT5mbG9vckRpdmlkZSgtMSw0KTwvY29kZT4gPT4gLTEuCisgICAgICogQHBhcmFtIG51bWVyYXRvciB0aGUgbnVtZXJhdG9yCisgICAgICogQHBhcmFtIGRlbm9taW5hdG9yIGEgZGl2aXNvciB3aGljaCBtdXN0IGJlID4gMAorICAgICAqIEByZXR1cm4gdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBmbG9vckRpdmlkZShpbnQgbnVtZXJhdG9yLCBpbnQgZGVub21pbmF0b3IpIHsKKyAgICAgICAgLy8gV2UgZG8gdGhpcyBjb21wdXRhdGlvbiBpbiBvcmRlciB0byBoYW5kbGUKKyAgICAgICAgLy8gYSBudW1lcmF0b3Igb2YgSW50ZWdlci5NSU5fVkFMVUUgY29ycmVjdGx5CisgICAgICAgIHJldHVybiAobnVtZXJhdG9yID49IDApID8KKyAgICAgICAgICAgIG51bWVyYXRvciAvIGRlbm9taW5hdG9yIDoKKyAgICAgICAgICAgICgobnVtZXJhdG9yICsgMSkgLyBkZW5vbWluYXRvcikgLSAxOworICAgIH0KKworICAgIC8qKgorICAgICAqIERpdmlkZSB0d28gaW50ZWdlcnMsIHJldHVybmluZyB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LCBhbmQKKyAgICAgKiB0aGUgbW9kdWx1cyByZW1haW5kZXIuCisgICAgICogPHA+CisgICAgICogVW5saWtlIHRoZSBidWlsdC1pbiBkaXZpc2lvbiwgdGhpcyBpcyBtYXRoZW1hdGljYWxseSB3ZWxsLWJlaGF2ZWQuCisgICAgICogRS5nLiwgPGNvZGU+LTEvNDwvY29kZT4gPT4gMCBhbmQgPGNvZGU+LTElNDwvY29kZT4gPT4gLTEsCisgICAgICogYnV0IDxjb2RlPmZsb29yRGl2aWRlKC0xLDQpPC9jb2RlPiA9PiAtMSB3aXRoIDxjb2RlPnJlbWFpbmRlclswXTwvY29kZT4gPT4gMy4KKyAgICAgKiBAcGFyYW0gbnVtZXJhdG9yIHRoZSBudW1lcmF0b3IKKyAgICAgKiBAcGFyYW0gZGVub21pbmF0b3IgYSBkaXZpc29yIHdoaWNoIG11c3QgYmUgPiAwCisgICAgICogQHBhcmFtIHJlbWFpbmRlciBhbiBhcnJheSBvZiBhdCBsZWFzdCBvbmUgZWxlbWVudCBpbiB3aGljaCB0aGUgdmFsdWUKKyAgICAgKiA8Y29kZT5udW1lcmF0b3IgbW9kIGRlbm9taW5hdG9yPC9jb2RlPiBpcyByZXR1cm5lZC4gVW5saWtlIDxjb2RlPm51bWVyYXRvcgorICAgICAqICUgZGVub21pbmF0b3I8L2NvZGU+LCB0aGlzIHdpbGwgYWx3YXlzIGJlIG5vbi1uZWdhdGl2ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBmbG9vciBvZiB0aGUgcXVvdGllbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgZmxvb3JEaXZpZGUoaW50IG51bWVyYXRvciwgaW50IGRlbm9taW5hdG9yLCBpbnRbXSByZW1haW5kZXIpIHsKKyAgICAgICAgaWYgKG51bWVyYXRvciA+PSAwKSB7CisgICAgICAgICAgICByZW1haW5kZXJbMF0gPSBudW1lcmF0b3IgJSBkZW5vbWluYXRvcjsKKyAgICAgICAgICAgIHJldHVybiBudW1lcmF0b3IgLyBkZW5vbWluYXRvcjsKKyAgICAgICAgfQorICAgIGludCBxdW90aWVudCA9ICgobnVtZXJhdG9yICsgMSkgLyBkZW5vbWluYXRvcikgLSAxOworICAgICAgICByZW1haW5kZXJbMF0gPSBudW1lcmF0b3IgLSAocXVvdGllbnQgKiBkZW5vbWluYXRvcik7CisgICAgICAgIHJldHVybiBxdW90aWVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEaXZpZGUgdHdvIGludGVnZXJzLCByZXR1cm5pbmcgdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudCwgYW5kCisgICAgICogdGhlIG1vZHVsdXMgcmVtYWluZGVyLgorICAgICAqIDxwPgorICAgICAqIFVubGlrZSB0aGUgYnVpbHQtaW4gZGl2aXNpb24sIHRoaXMgaXMgbWF0aGVtYXRpY2FsbHkgd2VsbC1iZWhhdmVkLgorICAgICAqIEUuZy4sIDxjb2RlPi0xLzQ8L2NvZGU+ID0+IDAgYW5kIDxjb2RlPi0xJTQ8L2NvZGU+ID0+IC0xLAorICAgICAqIGJ1dCA8Y29kZT5mbG9vckRpdmlkZSgtMSw0KTwvY29kZT4gPT4gLTEgd2l0aCA8Y29kZT5yZW1haW5kZXJbMF08L2NvZGU+ID0+IDMuCisgICAgICogQHBhcmFtIG51bWVyYXRvciB0aGUgbnVtZXJhdG9yCisgICAgICogQHBhcmFtIGRlbm9taW5hdG9yIGEgZGl2aXNvciB3aGljaCBtdXN0IGJlID4gMAorICAgICAqIEBwYXJhbSByZW1haW5kZXIgYW4gYXJyYXkgb2YgYXQgbGVhc3Qgb25lIGVsZW1lbnQgaW4gd2hpY2ggdGhlIHZhbHVlCisgICAgICogPGNvZGU+bnVtZXJhdG9yIG1vZCBkZW5vbWluYXRvcjwvY29kZT4gaXMgcmV0dXJuZWQuIFVubGlrZSA8Y29kZT5udW1lcmF0b3IKKyAgICAgKiAlIGRlbm9taW5hdG9yPC9jb2RlPiwgdGhpcyB3aWxsIGFsd2F5cyBiZSBub24tbmVnYXRpdmUuCisgICAgICogQHJldHVybiB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IGZsb29yRGl2aWRlKGxvbmcgbnVtZXJhdG9yLCBpbnQgZGVub21pbmF0b3IsIGludFtdIHJlbWFpbmRlcikgeworICAgICAgICBpZiAobnVtZXJhdG9yID49IDApIHsKKyAgICAgICAgICAgIHJlbWFpbmRlclswXSA9IChpbnQpKG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKKyAgICAgICAgICAgIHJldHVybiAoaW50KShudW1lcmF0b3IgLyBkZW5vbWluYXRvcik7CisgICAgICAgIH0KKyAgICAgICAgaW50IHF1b3RpZW50ID0gKGludCkoKChudW1lcmF0b3IgKyAxKSAvIGRlbm9taW5hdG9yKSAtIDEpOworICAgICAgICByZW1haW5kZXJbMF0gPSAoaW50KShudW1lcmF0b3IgLSAocXVvdGllbnQgKiBkZW5vbWluYXRvcikpOworICAgICAgICByZXR1cm4gcXVvdGllbnQ7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW10gRklFTERfTkFNRSA9IHsKKyAgICAgICAgIkVSQSIsICJZRUFSIiwgIk1PTlRIIiwgIldFRUtfT0ZfWUVBUiIsICJXRUVLX09GX01PTlRIIiwKKyAgICAgICAgIkRBWV9PRl9NT05USCIsICJEQVlfT0ZfWUVBUiIsICJEQVlfT0ZfV0VFSyIsCisgICAgICAgICJEQVlfT0ZfV0VFS19JTl9NT05USCIsICJBTV9QTSIsICJIT1VSIiwgIkhPVVJfT0ZfREFZIiwKKyAgICAgICAgIk1JTlVURSIsICJTRUNPTkQiLCAiTUlMTElTRUNPTkQiLCAiWk9ORV9PRkZTRVQiLAorICAgICAgICAiRFNUX09GRlNFVCIsICJZRUFSX1dPWSIsICJET1dfTE9DQUwiLCAiRVhURU5ERURfWUVBUiIsCisgICAgICAgICJKVUxJQU5fREFZIiwgIk1JTExJU0VDT05EU19JTl9EQVkiLAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBzdHJpbmcgbmFtZSBmb3IgYSBmaWVsZCwgZm9yIGRlYnVnZ2luZyBhbmQgZXhjZXB0aW9ucy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGZpZWxkTmFtZShpbnQgZmllbGQpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBGSUVMRF9OQU1FW2ZpZWxkXTsKKyAgICAgICAgfSBjYXRjaCAoQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiAiRmllbGQgIiArIGZpZWxkOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydHMgdGltZSBhcyBtaWxsaXNlY29uZHMgdG8gSnVsaWFuIGRheS4KKyAgICAgKiBAcGFyYW0gbWlsbGlzIHRoZSBnaXZlbiBtaWxsaXNlY29uZHMuCisgICAgICogQHJldHVybiB0aGUgSnVsaWFuIGRheSBudW1iZXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgbWlsbGlzVG9KdWxpYW5EYXkobG9uZyBtaWxsaXMpIHsKKyAgICAgICAgcmV0dXJuIChpbnQpIChFUE9DSF9KVUxJQU5fREFZICsgZmxvb3JEaXZpZGUobWlsbGlzLCBPTkVfREFZKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydHMgSnVsaWFuIGRheSB0byB0aW1lIGFzIG1pbGxpc2Vjb25kcy4KKyAgICAgKiBAcGFyYW0ganVsaWFuIHRoZSBnaXZlbiBKdWxpYW4gZGF5IG51bWJlci4KKyAgICAgKiBAcmV0dXJuIHRpbWUgYXMgbWlsbGlzZWNvbmRzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgbG9uZyBqdWxpYW5EYXlUb01pbGxpcyhpbnQganVsaWFuKSB7CisgICAgICAgIHJldHVybiAoanVsaWFuIC0gRVBPQ0hfSlVMSUFOX0RBWSkgKiBPTkVfREFZOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZGF5IG9mIHdlZWssIGZyb20gU1VOREFZIHRvIFNBVFVSREFZLCBnaXZlbiBhIEp1bGlhbiBkYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQganVsaWFuRGF5VG9EYXlPZldlZWsoaW50IGp1bGlhbikgeworICAgICAgICAvLyBJZiBqdWxpYW4gaXMgbmVnYXRpdmUsIHRoZW4ganVsaWFuJTcgd2lsbCBiZSBuZWdhdGl2ZSwgc28gd2UgYWRqdXN0CisgICAgICAgIC8vIGFjY29yZGluZ2x5LiAgSnVsaWFuIGRheSAwIGlzIE1vbmRheS4KKyAgICAgICAgaW50IGRheU9mV2VlayA9IChqdWxpYW4gKyBNT05EQVkpICUgNzsKKyAgICAgICAgaWYgKGRheU9mV2VlayA8IFNVTkRBWSkgeworICAgICAgICAgICAgZGF5T2ZXZWVrICs9IDc7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRheU9mV2VlazsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgbWlsbGlzZWNvbmRzIHdpdGhvdXQgcmVjb21wdXRpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGZpbmFsIGxvbmcgaW50ZXJuYWxHZXRUaW1lSW5NaWxsaXMoKSB7CisgICAgICAgIHJldHVybiB0aW1lOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQ2FsZW5kYXIgdHlwZS4KKyAgICAgKiBOb3RlLCBpbiAzLjAgdGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiAnZ3JlZ29yaWFuJyBpbiBDYWxlbmRhciB0byBlbXVsYXRlIGxlZ2FjeSBiZWhhdmlvcgorICAgICAqIEByZXR1cm4gdHlwZSBvZiBjYWxlbmRhciAoZ3JlZ29yaWFuLCBldGMpCisgICAgICogQGludGVybmFsIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiAiZ3JlZ29yaWFuIjsKKyAgICB9CisgICAgCisgICAgLy8gLS0tLS0tLS0gQkVHSU4gVUxvY2FsZSBib2lsZXJwbGF0ZSAtLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsb2NhbGUgdGhhdCB3YXMgdXNlZCB0byBjcmVhdGUgdGhpcyBvYmplY3QsIG9yIG51bGwuCisgICAgICogVGhpcyBtYXkgbWF5IGRpZmZlciBmcm9tIHRoZSBsb2NhbGUgcmVxdWVzdGVkIGF0IHRoZSB0aW1lIG9mCisgICAgICogdGhpcyBvYmplY3QncyBjcmVhdGlvbi4gIEZvciBleGFtcGxlLCBpZiBhbiBvYmplY3QgaXMgY3JlYXRlZAorICAgICAqIGZvciBsb2NhbGUgPHR0PmVuX1VTX0NBTElGT1JOSUE8L3R0PiwgdGhlIGFjdHVhbCBkYXRhIG1heSBiZQorICAgICAqIGRyYXduIGZyb20gPHR0PmVuPC90dD4gKHRoZSA8aT5hY3R1YWw8L2k+IGxvY2FsZSksIGFuZAorICAgICAqIDx0dD5lbl9VUzwvdHQ+IG1heSBiZSB0aGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgdGhhdCBleGlzdHMgKHRoZQorICAgICAqIDxpPnZhbGlkPC9pPiBsb2NhbGUpLgorICAgICAqCisgICAgICogPHA+Tm90ZTogVGhpcyBtZXRob2Qgd2lsbCBiZSBpbXBsZW1lbnRlZCBpbiBJQ1UgMy4wOyBJQ1UgMi44CisgICAgICogY29udGFpbnMgYSBwYXJ0aWFsIHByZXZpZXcgaW1wbGVtZW50YXRpb24uICBUaGUgKiA8aT5hY3R1YWw8L2k+CisgICAgICogbG9jYWxlIGlzIHJldHVybmVkIGNvcnJlY3RseSwgYnV0IHRoZSA8aT52YWxpZDwvaT4gbG9jYWxlIGlzCisgICAgICogbm90LCBpbiBtb3N0IGNhc2VzLgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgaW5mb3JtYXRpb24gcmVxdWVzdGVkLCBlaXRoZXIge0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRX0gb3Ige0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEV9LgorICAgICAqIEByZXR1cm4gdGhlIGluZm9ybWF0aW9uIHNwZWNpZmllZCBieSA8aT50eXBlPC9pPiwgb3IgbnVsbCBpZgorICAgICAqIHRoaXMgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YS4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBVTG9jYWxlIGdldExvY2FsZShVTG9jYWxlLlR5cGUgdHlwZSkgeworICAgICAgICByZXR1cm4gdHlwZSA9PSBVTG9jYWxlLkFDVFVBTF9MT0NBTEUgPworICAgICAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgOiB0aGlzLnZhbGlkTG9jYWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYWxlcyB0aGF0IHdlcmUgdXNlZCB0byBjcmVhdGUgdGhpcworICAgICAqIG9iamVjdC4gIElmIHRoZSBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tIGxvY2FsZSBkYXRhLAorICAgICAqIGJvdGggYXJndW1lbnRzIHNob3VsZCBiZSBzZXQgdG8gbnVsbC4gIE90aGVyd2lzZSwgbmVpdGhlcgorICAgICAqIHNob3VsZCBiZSBudWxsLiAgVGhlIGFjdHVhbCBsb2NhbGUgbXVzdCBiZSBhdCB0aGUgc2FtZSBsZXZlbCBvcgorICAgICAqIGxlc3Mgc3BlY2lmaWMgdGhhbiB0aGUgdmFsaWQgbG9jYWxlLiAgVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQKKyAgICAgKiBmb3IgdXNlIGJ5IGZhY3RvcmllcyBvciBvdGhlciBlbnRpdGllcyB0aGF0IGNyZWF0ZSBvYmplY3RzIG9mCisgICAgICogdGhpcyBjbGFzcy4KKyAgICAgKiBAcGFyYW0gdmFsaWQgdGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlCisgICAgICogZGF0YSwgb3IgbnVsbAorICAgICAqIEBwYXJhbSBhY3R1YWwgdGhlIGxvY2FsZSBjb250YWluaW5nIGRhdGEgdXNlZCB0byBjb25zdHJ1Y3QgdGhpcworICAgICAqIG9iamVjdCwgb3IgbnVsbAorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjVkFMSURfTE9DQUxFCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGZpbmFsIHZvaWQgc2V0TG9jYWxlKFVMb2NhbGUgdmFsaWQsIFVMb2NhbGUgYWN0dWFsKSB7CisgICAgICAgIC8vIENoYW5nZSB0aGUgZm9sbG93aW5nIHRvIGFuIGFzc2VydGlvbiBsYXRlcgorICAgICAgICBpZiAoKHZhbGlkID09IG51bGwpICE9IChhY3R1YWwgPT0gbnVsbCkpIHsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICB9CisgICAgICAgIC8vIEFub3RoZXIgY2hlY2sgd2UgY291bGQgZG8gaXMgdGhhdCB0aGUgYWN0dWFsIGxvY2FsZSBpcyBhdAorICAgICAgICAvLyB0aGUgc2FtZSBsZXZlbCBvciBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4KKyAgICAgICAgdGhpcy52YWxpZExvY2FsZSA9IHZhbGlkOworICAgICAgICB0aGlzLmFjdHVhbExvY2FsZSA9IGFjdHVhbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGUgbW9zdCBzcGVjaWZpYyBsb2NhbGUgY29udGFpbmluZyBhbnkgcmVzb3VyY2UgZGF0YSwgb3IgbnVsbC4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZSB2YWxpZExvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMgb2JqZWN0LCBvcgorICAgICAqIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgYWN0dWFsTG9jYWxlOworCisgICAgLy8gLS0tLS0tLS0gRU5EIFVMb2NhbGUgYm9pbGVycGxhdGUgLS0tLS0tLS0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FsZW5kYXJGYWN0b3J5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DYWxlbmRhckZhY3RvcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDY1MmExCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FsZW5kYXJGYWN0b3J5LmphdmEKQEAgLTAsMCArMSwxOCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMjAwMi0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworLyoqCisgKiBAcHJvdG90eXBlCisgKi8KK2ludGVyZmFjZSBDYWxlbmRhckZhY3RvcnkgeworICAgIHB1YmxpYyBDYWxlbmRhciBjcmVhdGUoVGltZVpvbmUgdHosIFVMb2NhbGUgbG9jKTsKKyAgICBwdWJsaWMgU3RyaW5nIGZhY3RvcnlOYW1lKCk7Cit9CisgICAgICAgIApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FzZUluc2Vuc2l0aXZlU3RyaW5nLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DYXNlSW5zZW5zaXRpdmVTdHJpbmcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40OThhMjRiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2FzZUluc2Vuc2l0aXZlU3RyaW5nLmphdmEKQEAgLTAsMCArMSw2NiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CisKKy8qKgorICogQSBzdHJpbmcgdXNlZCBhcyBhIGtleSBpbiBqYXZhLnV0aWwuSGFzaHRhYmxlIGFuZCBvdGhlcgorICogY29sbGVjdGlvbnMuICBJdCByZXRhaW5zIGNhc2UgaW5mb3JtYXRpb24sIGJ1dCBpdHMgZXF1YWxzKCkgYW5kCisgKiBoYXNoQ29kZSgpIG1ldGhvZHMgaWdub3JlIGNhc2UuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworcHVibGljIGNsYXNzIENhc2VJbnNlbnNpdGl2ZVN0cmluZyB7CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgc3RyaW5nOworCisgICAgcHJpdmF0ZSBpbnQgaGFzaCA9IDA7CisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiBDYXNlSW5zZW50aXZlU3RyaW5nIG9iamVjdCBmcm9tIHRoZSBnaXZlbiBzdHJpbmcKKyAgICAgKiBAcGFyYW0gcyBUaGUgc3RyaW5nIHRvIGNvbnN0cnVjdCB0aGlzIG9iamVjdCBmcm9tIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBDYXNlSW5zZW5zaXRpdmVTdHJpbmcoU3RyaW5nIHMpIHsKKyAgICAgICAgc3RyaW5nID0gczsKKyAgICB9CisgICAgLyoqCisgICAgICogcmV0dXJucyB0aGUgdW5kZXJseWluZyBzdHJpbmcgCisgICAgICogQHJldHVybiBTdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFN0cmluZygpIHsKKyAgICAgICAgcmV0dXJuIHN0cmluZzsKKyAgICB9CisgICAgLyoqCisgICAgICogQ29tcGFyZSB0aGUgb2JqZWN0IHdpdGggdGhpcyAKKyAgICAgKiBAcGFyYW0gbyBPYmplY3QgdG8gY29tcGFyZSB0aGlzIG9iamVjdCB3aXRoIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgbykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5lcXVhbHNJZ25vcmVDYXNlKCgoQ2FzZUluc2Vuc2l0aXZlU3RyaW5nKW8pLnN0cmluZyk7CisgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJldHVybiBzdHJpbmcuZXF1YWxzSWdub3JlQ2FzZSgoU3RyaW5nKW8pOworICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGhhc2hDb2RlIG9mIHRoaXMgb2JqZWN0CisgICAgICogQHJldHVybiBpbnQgaGFzaGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICBpZiAoaGFzaCA9PSAwKSB7CisgICAgICAgICAgICBoYXNoID0gVUNoYXJhY3Rlci5mb2xkQ2FzZShzdHJpbmcsIHRydWUpLmhhc2hDb2RlKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGhhc2g7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2hpbmVzZUNhbGVuZGFyLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DaGluZXNlQ2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NWQ0ZWViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ2hpbmVzZUNhbGVuZGFyLmphdmEKQEAgLTAsMCArMSw4NjkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC4qOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckFzdHJvbm9tZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5DYWxlbmRhckNhY2hlOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogPGNvZGU+Q2hpbmVzZUNhbGVuZGFyPC9jb2RlPiBpcyBhIGNvbmNyZXRlIHN1YmNsYXNzIG9mIHtAbGluayBDYWxlbmRhcn0KKyAqIHRoYXQgaW1wbGVtZW50cyBhIHRyYWRpdGlvbmFsIENoaW5lc2UgY2FsZW5kYXIuICBUaGUgdHJhZGl0aW9uYWwgQ2hpbmVzZQorICogY2FsZW5kYXIgaXMgYSBsdW5pc29sYXIgY2FsZW5kYXI6IEVhY2ggbW9udGggc3RhcnRzIG9uIGEgbmV3IG1vb24sIGFuZAorICogdGhlIG1vbnRocyBhcmUgbnVtYmVyZWQgYWNjb3JkaW5nIHRvIHNvbGFyIGV2ZW50cywgc3BlY2lmaWNhbGx5LCB0bworICogZ3VhcmFudGVlIHRoYXQgbW9udGggMTEgYWx3YXlzIGNvbnRhaW5zIHRoZSB3aW50ZXIgc29sc3RpY2UuICBJbiBvcmRlcgorICogdG8gYWNjb21wbGlzaCB0aGlzLCBsZWFwIG1vbnRocyBhcmUgaW5zZXJ0ZWQgaW4gY2VydGFpbiB5ZWFycy4gIExlYXAKKyAqIG1vbnRocyBhcmUgbnVtYmVyZWQgdGhlIHNhbWUgYXMgdGhlIG1vbnRoIHRoZXkgZm9sbG93LiAgVGhlIGRlY2lzaW9uIG9mCisgKiB3aGljaCBtb250aCBpcyBhIGxlYXAgbW9udGggZGVwZW5kcyBvbiB0aGUgcmVsYXRpdmUgbW92ZW1lbnRzIG9mIHRoZSBzdW4KKyAqIGFuZCBtb29uLgorICoKKyAqIDxwPlRoaXMgY2xhc3MgZGVmaW5lcyBvbmUgYWRkaXRpb24gZmllbGQgYmV5b25kIHRob3NlIGRlZmluZWQgYnkKKyAqIDxjb2RlPkNhbGVuZGFyPC9jb2RlPjogVGhlIDxjb2RlPklTX0xFQVBfTU9OVEg8L2NvZGU+IGZpZWxkIHRha2VzIHRoZQorICogdmFsdWUgb2YgMCBmb3Igbm9ybWFsIG1vbnRocywgb3IgMSBmb3IgbGVhcCBtb250aHMuCisgKgorICogPHA+QWxsIGFzdHJvbm9taWNhbCBjb21wdXRhdGlvbnMgYXJlIHBlcmZvcm1lZCB3aXRoIHJlc3BlY3QgdG8gYSB0aW1lCisgKiB6b25lIG9mIEdNVCs4OjAwIGFuZCBhIGxvbmdpdHVkZSBvZiAxMjAgZGVncmVlcyBlYXN0LiAgQWx0aG91Z2ggc29tZQorICogY2FsZW5kYXJzIGltcGxlbWVudCBhIGhpc3RvcmljYWxseSBtb3JlIGFjY3VyYXRlIGNvbnZlbnRpb24gb2YgdXNpbmcKKyAqIEJlaWppbmcncyBsb2NhbCBsb25naXR1ZGUgKDExNiBkZWdyZWVzIDI1IG1pbnV0ZXMgZWFzdCkgYW5kIHRpbWUgem9uZQorICogKEdNVCs3OjQ1OjQwKSBmb3IgZGF0ZXMgYmVmb3JlIDE5MjksIHdlIGRvIG5vdCBpbXBsZW1lbnQgdGhpcyBoZXJlLgorICoKKyAqIDxwPlllYXJzIGFyZSBjb3VudGVkIGluIHR3byBkaWZmZXJlbnQgd2F5cyBpbiB0aGUgQ2hpbmVzZSBjYWxlbmRhci4gIFRoZQorICogZmlyc3QgbWV0aG9kIGlzIGJ5IHNlcXVlbnRpYWwgbnVtYmVyaW5nIGZyb20gdGhlIDYxc3QgeWVhciBvZiB0aGUgcmVpZ24KKyAqIG9mIEh1YW5nIERpLCAyNjM3IEJDRSwgd2hpY2ggaXMgZGVzaWduYXRlZCB5ZWFyIDEgb24gdGhlIENoaW5lc2UKKyAqIGNhbGVuZGFyLiAgVGhlIHNlY29uZCBtZXRob2QgdXNlcyA2MC15ZWFyIGN5Y2xlcyBmcm9tIHRoZSBzYW1lIHN0YXJ0aW5nCisgKiBwb2ludCwgd2hpY2ggaXMgZGVzaWduYXRlZCB5ZWFyIDEgb2YgY3ljbGUgMS4gIEluIHRoaXMgY2xhc3MsIHRoZQorICogPGNvZGU+RVhURU5ERURfWUVBUjwvY29kZT4gZmllbGQgY29udGFpbnMgdGhlIHNlcXVlbnRpYWwgeWVhciBjb3VudC4KKyAqIFRoZSA8Y29kZT5FUkE8L2NvZGU+IGZpZWxkIGNvbnRhaW5zIHRoZSBjeWNsZSBudW1iZXIsIGFuZCB0aGUKKyAqIDxjb2RlPllFQVI8L2NvZGU+IGZpZWxkIGNvbnRhaW5zIHRoZSB5ZWFyIG9mIHRoZSBjeWNsZSwgYSB2YWx1ZSBiZXR3ZWVuCisgKiAxIGFuZCA2MC4KKyAqCisgKiA8cD5UaGVyZSBpcyBzb21lIHZhcmlhdGlvbiBpbiB3aGF0IGlzIGNvbnNpZGVyZWQgdGhlIHN0YXJ0aW5nIHBvaW50IG9mCisgKiB0aGUgY2FsZW5kYXIsIHdpdGggc29tZSBzb3VyY2VzIHN0YXJ0aW5nIGluIHRoZSBmaXJzdCB5ZWFyIG9mIHRoZSByZWlnbgorICogb2YgSHVhbmcgRGksIHJhdGhlciB0aGFuIHRoZSA2MXN0LiAgVGhpcyBnaXZlcyBjb250aW51b3VzIHllYXIgbnVtYmVycworICogNjAgeWVhcnMgZ3JlYXRlciBhbmQgY3ljbGUgbnVtYmVycyBvbmUgZ3JlYXRlciB0aGFuIHdoYXQgdGhpcyBjbGFzcworICogaW1wbGVtZW50cy4KKyAqCisgKiA8cD5CZWNhdXNlIDxjb2RlPkNoaW5lc2VDYWxlbmRhcjwvY29kZT4gZGVmaW5lcyBhbiBhZGRpdGlvbmFsIGZpZWxkIGFuZAorICogcmVkZWZpbmVzIHRoZSB3YXkgdGhlIDxjb2RlPkVSQTwvY29kZT4gZmllbGQgaXMgdXNlZCwgaXQgcmVxdWlyZXMgYSBuZXcKKyAqIGZvcm1hdCBjbGFzcywgPGNvZGU+Q2hpbmVzZURhdGVGb3JtYXQ8L2NvZGU+LiAgQXMgYWx3YXlzLCB1c2UgdGhlCisgKiBtZXRob2RzIDxjb2RlPkRhdGVGb3JtYXQuZ2V0WHh4SW5zdGFuY2UoQ2FsZW5kYXIgY2FsLC4uLik8L2NvZGU+IHRvCisgKiBvYnRhaW4gYSBmb3JtYXR0ZXIgZm9yIHRoaXMgY2FsZW5kYXIuCisgKgorICogPHA+UmVmZXJlbmNlczo8dWw+CisgKiAKKyAqIDxsaT5EZXJzaG93aXR6IGFuZCBSZWluZ29sZCwgPGk+Q2FsZW5kcmljYWwgQ2FsY3VsYXRpb25zPC9pPiwKKyAqIENhbWJyaWRnZSBVbml2ZXJzaXR5IFByZXNzLCAxOTk3PC9saT4KKyAqIAorICogPGxpPkhlbG1lciBBc2xha3NlbidzCisgKiA8YSBocmVmPSJodHRwOi8vd3d3Lm1hdGgubnVzLmVkdS5zZy9hc2xha3Nlbi9jYWxlbmRhci9jaGluZXNlLnNodG1sIj4KKyAqIENoaW5lc2UgQ2FsZW5kYXIgcGFnZTwvYT48L2xpPgorICoKKyAqIDxsaT5UaGUgPGEgaHJlZj0iaHR0cDovL3d3dy50b25kZXJpbmcuZGsvY2xhdXMvY2FsZW5kYXIuaHRtbCI+CisgKiBDYWxlbmRhciBGQVE8L2E+PC9saT4KKyAqCisgKiA8L3VsPgorICoKKyAqIDxwPgorICogVGhpcyBjbGFzcyBzaG91bGQgbm90IGJlIHN1YmNsYXNzZWQuPC9wPgorICogPHA+CisgKiBDaGluZXNlQ2FsZW5kYXIgdXN1YWxseSBzaG91bGQgYmUgaW5zdGFudGlhdGVkIHVzaW5nIAorICoge0BsaW5rIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIjZ2V0SW5zdGFuY2UoVUxvY2FsZSl9IHBhc3NpbmcgaW4gYSA8Y29kZT5VTG9jYWxlPC9jb2RlPgorICogd2l0aCB0aGUgdGFnIDxjb2RlPiJAY2FsZW5kYXI9Y2hpbmVzZSI8L2NvZGU+LjwvcD4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LnRleHQuQ2hpbmVzZURhdGVGb3JtYXQKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcgorICogQGF1dGhvciBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi44CisgKi8KK3B1YmxpYyBjbGFzcyBDaGluZXNlQ2FsZW5kYXIgZXh0ZW5kcyBDYWxlbmRhciB7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gNzMxMjExMDc1MTk0MDkyOTQyMEw7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIERldmVsb3BlciBOb3RlcworICAgIC8vIAorICAgIC8vIFRpbWUgaXMgcmVwcmVzZW50ZWQgYXMgYSBzY2FsYXIgaW4gdHdvIHdheXMgaW4gdGhpcyBjbGFzcy4gIE9uZSBpcworICAgIC8vIHRoZSB1c3VhbCBVVEMgZXBvY2ggbWlsbGlzLCB0aGF0IGlzLCBtaWxsaXNlY29uZHMgYWZ0ZXIgSmFudWFyeSAxLAorICAgIC8vIDE5NzAgR3JlZ29yaWFuLCAwOjAwOjAwLjAwMCBVVEMuICBUaGUgb3RoZXIgaXMgaW4gdGVybXMgb2YgJ2xvY2FsCisgICAgLy8gZGF5cy4nICBUaGlzIGlzIHRoZSBudW1iZXIgb2YgZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgR3JlZ29yaWFuLAorICAgIC8vIGxvY2FsIHRvIEJlaWppbmcsIENoaW5hIChzaW5jZSBhbGwgY29tcHV0YXRpb25zIG9mIHRoZSBDaGluZXNlCisgICAgLy8gY2FsZW5kYXIgYXJlIGRvbmUgaW4gQmVpamluZykuICBUaGF0IGlzLCAwIHJlcHJlc2VudHMgSmFudWFyeSAxLAorICAgIC8vIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpLiAgQ29udmVyc2lvbiBvZiBsb2NhbCBkYXlzIHRvIGFuZCBmcm9tCisgICAgLy8gc3RhbmRhcmQgZXBvY2ggbWlsbGlzZWNvbmRzIGlzIGFjY29tcGxpc2hlZCBieSB0aGUgZGF5c1RvTWlsbGlzKCkKKyAgICAvLyBhbmQgbWlsbGlzVG9EYXlzKCkgbWV0aG9kcy4KKyAgICAvLyAKKyAgICAvLyBTZXZlcmFsIG1ldGhvZHMgdXNlIGNhY2hlcyB0byBpbXByb3ZlIHBlcmZvcm1hbmNlLiAgQ2FjaGVzIGFyZSBhdAorICAgIC8vIHRoZSBvYmplY3QsIG5vdCBjbGFzcyBsZXZlbCwgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCB0eXBpY2FsCisgICAgLy8gdXNhZ2Ugd2lsbCBiZSB0byBoYXZlIG9uZSBpbnN0YW5jZSBvZiBDaGluZXNlQ2FsZW5kYXIgYXQgYSB0aW1lLgorIAorICAgIC8qKgorICAgICAqIFdlIGhhdmUgb25lIGluc3RhbmNlIHBlciBvYmplY3QsIGFuZCB3ZSBkb24ndCBzeW5jaHJvbml6ZSBpdCBiZWNhdXNlCisgICAgICogQ2FsZW5kYXIgZG9lc24ndCBzdXBwb3J0IG11bHRpdGhyZWFkZWQgZXhlY3V0aW9uIGluIHRoZSBmaXJzdCBwbGFjZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBDYWxlbmRhckFzdHJvbm9tZXIgYXN0cm8gPSBuZXcgQ2FsZW5kYXJBc3Ryb25vbWVyKCk7CisKKyAgICAvKioKKyAgICAgKiBDYWNoZSB0aGF0IG1hcHMgR3JlZ29yaWFuIHllYXIgdG8gbG9jYWwgZGF5cyBvZiB3aW50ZXIgc29sc3RpY2UuCisgICAgICogQHNlZSAjd2ludGVyU29sc3RpY2UKKyAgICAgKi8KKyAgICBwcml2YXRlIHRyYW5zaWVudCBDYWxlbmRhckNhY2hlIHdpbnRlclNvbHN0aWNlQ2FjaGUgPSBuZXcgQ2FsZW5kYXJDYWNoZSgpOworCisgICAgLyoqCisgICAgICogQ2FjaGUgdGhhdCBtYXBzIEdyZWdvcmlhbiB5ZWFyIHRvIGxvY2FsIGRheXMgb2YgQ2hpbmVzZSBuZXcgeWVhci4KKyAgICAgKiBAc2VlICNuZXdZZWFyCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgQ2FsZW5kYXJDYWNoZSBuZXdZZWFyQ2FjaGUgPSBuZXcgQ2FsZW5kYXJDYWNoZSgpOworCisgICAgLyoqCisgICAgICogVHJ1ZSBpZiB0aGUgY3VycmVudCB5ZWFyIGlzIGEgbGVhcCB5ZWFyLiAgVXBkYXRlZCB3aXRoIGVhY2ggdGltZSB0bworICAgICAqIGZpZWxkcyByZXNvbHV0aW9uLgorICAgICAqIEBzZWUgI2NvbXB1dGVDaGluZXNlRmllbGRzCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgYm9vbGVhbiBpc0xlYXBZZWFyOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdHJ1Y3RvcnMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgQ2hpbmVzZSBjYWxlbmRhciB3aXRoIHRoZSBkZWZhdWx0IHRpbWUgem9uZSBhbmQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBDaGluZXNlQ2FsZW5kYXIoKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgQ2hpbmVzZSBjYWxlbmRhciB3aXRoIHRoZSBnaXZlbiB0aW1lIHpvbmUgYW5kIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aW1lIHpvbmUgZm9yIHRoaXMgY2FsZW5kYXIKKyAgICAgKiBAcGFyYW0gbG9jYWxlIGxvY2FsZSBmb3IgdGhpcyBjYWxlbmRhcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBDaGluZXNlQ2FsZW5kYXIoVGltZVpvbmUgem9uZSwgTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBsb2NhbGUpOworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIENoaW5lc2UgY2FsZW5kYXIgd2l0aCB0aGUgZ2l2ZW4gdGltZSB6b25lIGFuZCBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGltZSB6b25lIGZvciB0aGlzIGNhbGVuZGFyCisgICAgICogQHBhcmFtIGxvY2FsZSB1bG9jYWxlIGZvciB0aGlzIGNhbGVuZGFyCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2hpbmVzZUNhbGVuZGFyKFRpbWVab25lIHpvbmUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQdWJsaWMgY29uc3RhbnRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEZpZWxkIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdGhlIGN1cnJlbnQgbW9udGggaXMgYSBsZWFwIG1vbnRoLgorICAgICAqIFNob3VsZCBoYXZlIGEgdmFsdWUgb2YgMCBmb3Igbm9uLWxlYXAgbW9udGhzLCBhbmQgMSBmb3IgbGVhcCBtb250aHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgSVNfTEVBUF9NT05USCA9IEJBU0VfRklFTERfQ09VTlQ7CisKKyAgICAvKioKKyAgICAgKiBDb3VudCBvZiBmaWVsZHMgaW4gdGhpcyBjbGFzcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklFTERfQ09VTlQgPSBJU19MRUFQX01PTlRIICsgMTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ2FsZW5kYXIgZnJhbWV3b3JrCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIENhbGVuZGFyIHRvIGFsbG9jYXRlIG91ciBhZGRpdGlvbmFsIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnRbXSBoYW5kbGVDcmVhdGVGaWVsZHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgaW50W0ZJRUxEX0NPVU5UXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcnJheSBkZWZpbmluZyB0aGUgbGltaXRzIG9mIGZpZWxkIHZhbHVlcyBmb3IgdGhpcyBjbGFzcy4gIEZpZWxkCisgICAgICogbGltaXRzIHdoaWNoIGFyZSBpbnZhcmlhbnQgd2l0aCByZXNwZWN0IHRvIGNhbGVuZGFyIHN5c3RlbSBhbmQKKyAgICAgKiBkZWZpbmVkIGJ5IENhbGVuZGFyIGFyZSBsZWZ0IGJsYW5rLgorICAgICAqCisgICAgICogTm90ZXM6CisgICAgICoKKyAgICAgKiBFUkEgNTAwMDAwMCAvIDYwID0gODMzMzMuCisgICAgICoKKyAgICAgKiBNT05USCBUaGVyZSBhcmUgMTIgb3IgMTMgbHVuYXIgbW9udGhzIGluIGEgeWVhci4gIEhvd2V2ZXIsIHdlIGFsd2F5cworICAgICAqIG51bWJlciB0aGVtIDAuLjExLCB3aXRoIGFuIGludGVyY2FsYXRlZCwgaWRlbnRpY2FsbHkgbnVtYmVyZWQgbGVhcAorICAgICAqIG1vbnRoLCB3aGVuIG5lY2Vzc2FyeS4KKyAgICAgKgorICAgICAqIERBWV9PRl9ZRUFSIEluIGEgbm9uLWxlYXAgeWVhciB0aGVyZSBhcmUgMzUzLCAzNTQsIG9yIDM1NSBkYXlzLiAgSW4KKyAgICAgKiBhIGxlYXAgeWVhciB0aGVyZSBhcmUgMzgzLCAzODQsIG9yIDM4NSBkYXlzLgorICAgICAqCisgICAgICogV0VFS19PRl9ZRUFSIFRoZSBsZWFzdCBtYXhpbXVtIG9jY3VycyBpZiB0aGVyZSBhcmUgMzUzIGRheXMgaW4gdGhlCisgICAgICogeWVhciwgYW5kIHRoZSBmaXJzdCA2IGFyZSB0aGUgbGFzdCB3ZWVrIG9mIHRoZSBwcmV2aW91cyB5ZWFyLiAgVGhlbgorICAgICAqIHdlIGhhdmUgNDkgZnVsbCB3ZWVrcyBhbmQgNCBkYXlzIGluIHRoZSBsYXN0IHdlZWs6IDYgKyA0OSo3ICsgNCA9CisgICAgICogMzUzLiAgU28gdGhlIGxlYXN0IG1heGltdW0gaXMgNTAuICBUaGUgbWF4aW11bSBvY2N1cnMgaWYgdGhlcmUgYXJlCisgICAgICogMzg1IGRheXMgaW4gdGhlIHllYXIsIGFuZCBXT1kgMSBleHRlbmRzIDYgZGF5cyBpbnRvIHRoZSBwcmlvciB5ZWFyLgorICAgICAqIFRoZW4gdGhlcmUgYXJlIDU0IGZ1bGwgd2Vla3MsIGFuZCA2IGRheXMgaW4gdGhlIGxhc3Qgd2VlazogMSArIDU0KjcKKyAgICAgKiArIDYgPSAzODUuICBUaGUgNiBkYXlzIG9mIHRoZSBsYXN0IHdlZWsgd2lsbCBmYWxsIGludG8gV09ZIDEgb2YgdGhlCisgICAgICogbmV4dCB5ZWFyLiAgTWF4aW11bSBpcyA1NS4KKyAgICAgKgorICAgICAqIFdFRUtfT0ZfTU9OVEggSW4gYSAyOSBkYXkgbW9udGgsIGlmIHRoZSBmaXJzdCA3IGRheXMgbWFrZSB1cCB3ZWVrIDEKKyAgICAgKiB0aGF0IGxlYXZlcyAzIGZ1bGwgd2Vla3MgYW5kIDEgZGF5IGF0IHRoZSBlbmQuICBUaGUgbGVhc3QgbWF4aW11bSBpcworICAgICAqIHRodXMgNS4gIEluIGEgMzAgZGF5cyBtb250aCwgaWYgdGhlIHByZXZpb3VzIDYgZGF5cyBiZWxvbmcgV09NIDEgb2YKKyAgICAgKiB0aGlzIG1vbnRoLCB3ZSBoYXZlIDQgZnVsbCB3ZWVrcyBhbmQgMSBkYXlzIGF0IHRoZSBlbmQgKHdoaWNoCisgICAgICogdGVjaG5pY2FsbHkgd2lsbCBiZSBXT00gMSBvZiB0aGUgbmV4dCBtb250aCwgYnV0IHdpbGwgYmUgcmVwb3J0ZWQgYnkKKyAgICAgKiB0aW1lLT5maWVsZHMgYW5kIGhlbmNlIGJ5IGdldEFjdHVhbE1heGltdW0gYXMgV09NIDYgb2YgdGhpcyBtb250aCkuCisgICAgICogTWF4aW11bSBpcyA2LgorICAgICAqCisgICAgICogREFZX09GX1dFRUtfSU5fTU9OVEggSW4gYSAyOSBvciAzMCBkYXkgbW9udGgsIHRoZXJlIGFyZSA0IGZ1bGwgd2Vla3MKKyAgICAgKiBwbHVzIDEgb3IgMiBkYXlzIGF0IHRoZSBlbmQsIHNvIHRoZSBtYXhpbXVtIGlzIGFsd2F5cyA1LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU1JVFNbXVtdID0geworICAgICAgICAvLyBNaW5pbXVtICBHcmVhdGVzdCAgICBMZWFzdCAgTWF4aW11bQorICAgICAgICAvLyAgICAgICAgICAgTWluaW11bSAgTWF4aW11bQorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICA4MzMzMywgICA4MzMzMyB9LCAvLyBFUkEKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAgNzAsICAgICAgNzAgfSwgLy8gWUVBUgorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAxMSwgICAgICAxMSB9LCAvLyBNT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICA1MCwgICAgICA1NSB9LCAvLyBXRUVLX09GX1lFQVIKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAgIDUsICAgICAgIDYgfSwgLy8gV0VFS19PRl9NT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICAyOSwgICAgICAzMCB9LCAvLyBEQVlfT0ZfTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAzNTMsICAgICAzODUgfSwgLy8gREFZX09GX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gREFZX09GX1dFRUsKKyAgICAgICAgeyAgICAgICAtMSwgICAgICAgLTEsICAgICAgIDUsICAgICAgIDUgfSwgLy8gREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gQU1fUE0KKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSE9VUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBIT1VSX09GX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSU5VVEUKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTExJU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFpPTkVfT0ZGU0VUCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERTVF9PRkZTRVQKKyAgICAgICAgeyAtNTAwMDAwMSwgLTUwMDAwMDEsIDUwMDAwMDEsIDUwMDAwMDEgfSwgLy8gWUVBUl9XT1kKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRE9XX0xPQ0FMCisgICAgICAgIHsgLTUwMDAwMDAsIC01MDAwMDAwLCA1MDAwMDAwLCA1MDAwMDAwIH0sIC8vIEVYVEVOREVEX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSlVMSUFOX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSUxMSVNFQ09ORFNfSU5fREFZCisgICAgICAgIHsgICAgICAgIDAsICAgICAgICAwLCAgICAgICAxLCAgICAgICAxIH0sIC8vIElTX0xFQVBfTU9OVEgKKyAgICB9OworCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgdG8gcmV0dXJuIHRoZSBsaW1pdCB2YWx1ZSBmb3IgdGhlIGdpdmVuIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKSB7CisgICAgICAgIHJldHVybiBMSU1JVFNbZmllbGRdW2xpbWl0VHlwZV07CisgICAgfQorCisgICAgLyoqCisgICAgICogSW1wbGVtZW50IGFic3RyYWN0IENhbGVuZGFyIG1ldGhvZCB0byByZXR1cm4gdGhlIGV4dGVuZGVkIHllYXIKKyAgICAgKiBkZWZpbmVkIGJ5IHRoZSBjdXJyZW50IGZpZWxkcy4gIFRoaXMgd2lsbCB1c2UgZWl0aGVyIHRoZSBFUkEgYW5kCisgICAgICogWUVBUiBmaWVsZCBhcyB0aGUgY3ljbGUgYW5kIHllYXItb2YtY3ljbGUsIG9yIHRoZSBFWFRFTkRFRF9ZRUFSCisgICAgICogZmllbGQgYXMgdGhlIGNvbnRpbnVvdXMgeWVhciBjb3VudCwgZGVwZW5kaW5nIG9uIHdoaWNoIGlzIG5ld2VyLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCkgeworICAgICAgICBpbnQgeWVhcjsKKyAgICAgICAgaWYgKG5ld2VzdFN0YW1wKEVSQSwgWUVBUiwgVU5TRVQpIDw9IGdldFN0YW1wKEVYVEVOREVEX1lFQVIpKSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUiwgMSk7IC8vIERlZmF1bHQgdG8geWVhciAxCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgY3ljbGUgPSBpbnRlcm5hbEdldChFUkEsIDEpIC0gMTsgLy8gMC1iYXNlZCBjeWNsZQorICAgICAgICAgICAgeWVhciA9IGN5Y2xlICogNjAgKyBpbnRlcm5hbEdldChZRUFSLCAxKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geWVhcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBDYWxlbmRhciBtZXRob2QgdG8gcmV0dXJuIHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBleHRlbmRlZCB5ZWFyIGFuZCBtb250aC4KKyAgICAgKgorICAgICAqIDxwPk5vdGU6IFRoaXMgbWV0aG9kIGFsc28gcmVhZHMgdGhlIElTX0xFQVBfTU9OVEggZmllbGQgdG8gZGV0ZXJtaW5lCisgICAgICogd2hldGhlciBvciBub3QgdGhlIGdpdmVuIG1vbnRoIGlzIGEgbGVhcCBtb250aC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldE1vbnRoTGVuZ3RoKGludCBleHRlbmRlZFllYXIsIGludCBtb250aCkgeworICAgICAgICBpbnQgdGhpc1N0YXJ0ID0gaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoZXh0ZW5kZWRZZWFyLCBtb250aCwgdHJ1ZSkgLQorICAgICAgICAgICAgRVBPQ0hfSlVMSUFOX0RBWSArIDE7IC8vIEp1bGlhbiBkYXkgLT4gbG9jYWwgZGF5cworICAgICAgICBpbnQgbmV4dFN0YXJ0ID0gbmV3TW9vbk5lYXIodGhpc1N0YXJ0ICsgU1lOT0RJQ19HQVAsIHRydWUpOworICAgICAgICByZXR1cm4gbmV4dFN0YXJ0IC0gdGhpc1N0YXJ0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEZyYW1ld29yayBtZXRob2QgdG8gY3JlYXRlIGEgY2FsZW5kYXItc3BlY2lmaWMgRGF0ZUZvcm1hdCBvYmplY3QKKyAgICAgKiB1c2luZyB0aGUgdGhlIGdpdmVuIHBhdHRlcm4uICBUaGlzIG1ldGhvZCBpcyByZXNwb25zaWJsZSBmb3IKKyAgICAgKiBjcmVhdGluZyB0aGUgY2FsZW5kYXItIHNwZWNpZmljIERhdGVGb3JtYXQgYW5kIERhdGVGb3JtYXRTeW1ib2xzCisgICAgICogb2JqZWN0cyBhcyBuZWVkZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIERhdGVGb3JtYXQgaGFuZGxlR2V0RGF0ZUZvcm1hdChTdHJpbmcgcGF0dGVybiwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDaGluZXNlRGF0ZUZvcm1hdChwYXR0ZXJuLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpZWxkIHJlc29sdXRpb24gdGFibGUgdGhhdCBpbmNvcnBvcmF0ZXMgSVNfTEVBUF9NT05USC4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgaW50W11bXVtdIENISU5FU0VfREFURV9QUkVDRURFTkNFID0geworICAgICAgICB7CisgICAgICAgICAgICB7IERBWV9PRl9NT05USCB9LAorICAgICAgICAgICAgeyBXRUVLX09GX1lFQVIsIERBWV9PRl9XRUVLIH0sCisgICAgICAgICAgICB7IFdFRUtfT0ZfTU9OVEgsIERBWV9PRl9XRUVLIH0sCisgICAgICAgICAgICB7IERBWV9PRl9XRUVLX0lOX01PTlRILCBEQVlfT0ZfV0VFSyB9LAorICAgICAgICAgICAgeyBXRUVLX09GX1lFQVIsIERPV19MT0NBTCB9LAorICAgICAgICAgICAgeyBXRUVLX09GX01PTlRILCBET1dfTE9DQUwgfSwKKyAgICAgICAgICAgIHsgREFZX09GX1dFRUtfSU5fTU9OVEgsIERPV19MT0NBTCB9LAorICAgICAgICAgICAgeyBEQVlfT0ZfWUVBUiB9LAorICAgICAgICAgICAgeyBSRVNPTFZFX1JFTUFQIHwgREFZX09GX01PTlRILCBJU19MRUFQX01PTlRIIH0sCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIHsgV0VFS19PRl9ZRUFSIH0sCisgICAgICAgICAgICB7IFdFRUtfT0ZfTU9OVEggfSwKKyAgICAgICAgICAgIHsgREFZX09GX1dFRUtfSU5fTU9OVEggfSwKKyAgICAgICAgICAgIHsgUkVTT0xWRV9SRU1BUCB8IERBWV9PRl9XRUVLX0lOX01PTlRILCBEQVlfT0ZfV0VFSyB9LAorICAgICAgICAgICAgeyBSRVNPTFZFX1JFTUFQIHwgREFZX09GX1dFRUtfSU5fTU9OVEgsIERPV19MT0NBTCB9LAorICAgICAgICB9LAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBDYWxlbmRhciB0byBhZGQgSVNfTEVBUF9NT05USCB0byB0aGUgZmllbGQgcmVzb2x1dGlvbgorICAgICAqIHRhYmxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnRbXVtdW10gZ2V0RmllbGRSZXNvbHV0aW9uVGFibGUoKSB7CisgICAgICAgIHJldHVybiBDSElORVNFX0RBVEVfUFJFQ0VERU5DRTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGp1c3QgdGhpcyBjYWxlbmRhciB0byBiZSBkZWx0YSBtb250aHMgYmVmb3JlIG9yIGFmdGVyIGEgZ2l2ZW4KKyAgICAgKiBzdGFydCBwb3NpdGlvbiwgcGlubmluZyB0aGUgZGF5IG9mIG1vbnRoIGlmIG5lY2Vzc2FyeS4gIFRoZSBzdGFydAorICAgICAqIHBvc2l0aW9uIGlzIGdpdmVuIGFzIGEgbG9jYWwgZGF5cyBudW1iZXIgZm9yIHRoZSBzdGFydCBvZiB0aGUgbW9udGgKKyAgICAgKiBhbmQgYSBkYXktb2YtbW9udGguICBVc2VkIGJ5IGFkZCgpIGFuZCByb2xsKCkuCisgICAgICogQHBhcmFtIG5ld01vb24gdGhlIGxvY2FsIGRheXMgb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGggb2YgdGhlCisgICAgICogc3RhcnQgcG9zaXRpb24gKGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaSkKKyAgICAgKiBAcGFyYW0gZG9tIHRoZSAxLWJhc2VkIGRheS1vZi1tb250aCBvZiB0aGUgc3RhcnQgcG9zaXRpb24KKyAgICAgKiBAcGFyYW0gZGVsdGEgdGhlIG51bWJlciBvZiBtb250aHMgdG8gbW92ZSBmb3J3YXJkIG9yIGJhY2t3YXJkIGZyb20KKyAgICAgKiB0aGUgc3RhcnQgcG9zaXRpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgb2Zmc2V0TW9udGgoaW50IG5ld01vb24sIGludCBkb20sIGludCBkZWx0YSkgeworICAgICAgICAvLyBNb3ZlIHRvIHRoZSBtaWRkbGUgb2YgdGhlIG1vbnRoIGJlZm9yZSBvdXIgdGFyZ2V0IG1vbnRoLgorICAgICAgICBuZXdNb29uICs9IChpbnQpIChDYWxlbmRhckFzdHJvbm9tZXIuU1lOT0RJQ19NT05USCAqIChkZWx0YSAtIDAuNSkpOworCisgICAgICAgIC8vIFNlYXJjaCBmb3J3YXJkIHRvIHRoZSB0YXJnZXQgbW9udGgncyBuZXcgbW9vbgorICAgICAgICBuZXdNb29uID0gbmV3TW9vbk5lYXIobmV3TW9vbiwgdHJ1ZSk7CisKKyAgICAgICAgLy8gRmluZCB0aGUgdGFyZ2V0IGRvbQorICAgICAgICBpbnQgamQgPSBuZXdNb29uICsgRVBPQ0hfSlVMSUFOX0RBWSAtIDEgKyBkb207CisKKyAgICAgICAgLy8gUGluIHRoZSBkb20uICBJbiB0aGlzIGNhbGVuZGFyIGFsbCBtb250aHMgYXJlIDI5IG9yIDMwIGRheXMKKyAgICAgICAgLy8gc28gcGlubmluZyBqdXN0IG1lYW5zIGhhbmRsaW5nIGRvbSAzMC4KKyAgICAgICAgaWYgKGRvbSA+IDI5KSB7CisgICAgICAgICAgICBzZXQoSlVMSUFOX0RBWSwgamQtMSk7CisgICAgICAgICAgICAvLyBUT0RPIEZpeCB0aGlzLiAgV2UgcmVhbGx5IHNob3VsZG4ndCBldmVyIGhhdmUgdG8KKyAgICAgICAgICAgIC8vIGV4cGxpY2l0bHkgY2FsbCBjb21wbGV0ZSgpLiAgVGhpcyBpcyBlaXRoZXIgYSBidWcgaW4KKyAgICAgICAgICAgIC8vIHRoaXMgbWV0aG9kLCBpbiBDaGluZXNlQ2FsZW5kYXIsIG9yIGluCisgICAgICAgICAgICAvLyBDYWxlbmRhci5nZXRBY3R1YWxNYXhpbXVtKCkuICBJIHN1c3BlY3QgdGhlIGxhc3QuCisgICAgICAgICAgICBjb21wbGV0ZSgpOworICAgICAgICAgICAgaWYgKGdldEFjdHVhbE1heGltdW0oREFZX09GX01PTlRIKSA+PSBkb20pIHsKKyAgICAgICAgICAgICAgICBzZXQoSlVMSUFOX0RBWSwgamQpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2V0KEpVTElBTl9EQVksIGpkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIENhbGVuZGFyIHRvIGhhbmRsZSBsZWFwIG1vbnRocyBwcm9wZXJseS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGQoaW50IGZpZWxkLCBpbnQgYW1vdW50KSB7CisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBNT05USDoKKyAgICAgICAgICAgIGlmIChhbW91bnQgIT0gMCkgeworICAgICAgICAgICAgICAgIGludCBkb20gPSBnZXQoREFZX09GX01PTlRIKTsKKyAgICAgICAgICAgICAgICBpbnQgZGF5ID0gZ2V0KEpVTElBTl9EQVkpIC0gRVBPQ0hfSlVMSUFOX0RBWTsgLy8gR2V0IGxvY2FsIGRheQorICAgICAgICAgICAgICAgIGludCBtb29uID0gZGF5IC0gZG9tICsgMTsgLy8gTmV3IG1vb24gCisgICAgICAgICAgICAgICAgb2Zmc2V0TW9udGgobW9vbiwgZG9tLCBhbW91bnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdXBlci5hZGQoZmllbGQsIGFtb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIENhbGVuZGFyIHRvIGhhbmRsZSBsZWFwIG1vbnRocyBwcm9wZXJseS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByb2xsKGludCBmaWVsZCwgaW50IGFtb3VudCkgeworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgTU9OVEg6CisgICAgICAgICAgICBpZiAoYW1vdW50ICE9IDApIHsKKyAgICAgICAgICAgICAgICBpbnQgZG9tID0gZ2V0KERBWV9PRl9NT05USCk7CisgICAgICAgICAgICAgICAgaW50IGRheSA9IGdldChKVUxJQU5fREFZKSAtIEVQT0NIX0pVTElBTl9EQVk7IC8vIEdldCBsb2NhbCBkYXkKKyAgICAgICAgICAgICAgICBpbnQgbW9vbiA9IGRheSAtIGRvbSArIDE7IC8vIE5ldyBtb29uIChzdGFydCBvZiB0aGlzIG1vbnRoKQorCisgICAgICAgICAgICAgICAgLy8gTm90ZSB0aHJvdWdob3V0IHRoZSBmb2xsb3dpbmc6ICBNb250aHMgMTIgYW5kIDEgYXJlIG5ldmVyCisgICAgICAgICAgICAgICAgLy8gZm9sbG93ZWQgYnkgYSBsZWFwIG1vbnRoIChEJlIgcC4gMTg1KS4KKworICAgICAgICAgICAgICAgIC8vIENvbXB1dGUgdGhlIGFkanVzdGVkIG1vbnRoIG51bWJlciBtLiAgVGhpcyBpcyB6ZXJvLWJhc2VkCisgICAgICAgICAgICAgICAgLy8gdmFsdWUgZnJvbSAwLi4xMSBpbiBhIG5vbi1sZWFwIHllYXIsIGFuZCBmcm9tIDAuLjEyIGluIGEKKyAgICAgICAgICAgICAgICAvLyBsZWFwIHllYXIuCisgICAgICAgICAgICAgICAgaW50IG0gPSBnZXQoTU9OVEgpOyAvLyAwLWJhc2VkIG1vbnRoCisgICAgICAgICAgICAgICAgaWYgKGlzTGVhcFllYXIpIHsgLy8gKG1lbWJlciB2YXJpYWJsZSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGdldChJU19MRUFQX01PTlRIKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICArK207CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3IgYSBwcmlvciBsZWFwIG1vbnRoLiAgKEluIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9sbG93aW5nLCBtb250aCAwIGlzIHRoZSBmaXJzdCBtb250aCBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHllYXIuKSAgTW9udGggMCBpcyBuZXZlciBmb2xsb3dlZCBieSBhIGxlYXAKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1vbnRoLCBhbmQgd2Uga25vdyBtb250aCBtIGlzIG5vdCBhIGxlYXAgbW9udGguCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBtb29uMSB3aWxsIGJlIHRoZSBzdGFydCBvZiBtb250aCAwIGlmIHRoZXJlIGlzCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBubyBsZWFwIG1vbnRoIGJldHdlZW4gbW9udGggMCBhbmQgbW9udGggbTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSBpdCB3aWxsIGJlIHRoZSBzdGFydCBvZiBtb250aCAxLgorICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vb24xID0gbW9vbiAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkgKENhbGVuZGFyQXN0cm9ub21lci5TWU5PRElDX01PTlRIICogKG0gLSAwLjUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vb24xID0gbmV3TW9vbk5lYXIobW9vbjEsIHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTGVhcE1vbnRoQmV0d2Vlbihtb29uMSwgbW9vbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK207CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBOb3cgZG8gdGhlIHN0YW5kYXJkIHJvbGwgY29tcHV0YXRpb24gb24gbSwgd2l0aCB0aGUKKyAgICAgICAgICAgICAgICAvLyBhbGxvd2VkIHJhbmdlIG9mIDAuLm4tMSwgd2hlcmUgbiBpcyAxMiBvciAxMy4KKyAgICAgICAgICAgICAgICBpbnQgbiA9IGlzTGVhcFllYXIgPyAxMyA6IDEyOyAvLyBNb250aHMgaW4gdGhpcyB5ZWFyCisgICAgICAgICAgICAgICAgaW50IG5ld00gPSAobSArIGFtb3VudCkgJSBuOworICAgICAgICAgICAgICAgIGlmIChuZXdNIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBuZXdNICs9IG47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKG5ld00gIT0gbSkgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXRNb250aChtb29uLCBkb20sIG5ld00gLSBtKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHN1cGVyLnJvbGwoZmllbGQsIGFtb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gU3VwcG9ydCBtZXRob2RzIGFuZCBjb25zdGFudHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgCisgICAgLyoqCisgICAgICogVGhlIHN0YXJ0IHllYXIgb2YgdGhlIENoaW5lc2UgY2FsZW5kYXIsIHRoZSA2MXN0IHllYXIgb2YgdGhlIHJlaWduCisgICAgICogb2YgSHVhbmcgRGkuICBTb21lIHNvdXJjZXMgdXNlIHRoZSBmaXJzdCB5ZWFyIG9mIGhpcyByZWlnbiwKKyAgICAgKiByZXN1bHRpbmcgaW4gRVhURU5ERURfWUVBUiB2YWx1ZXMgNjAgeWVhcnMgZ3JlYXRlciBhbmQgRVJBIChjeWNsZSkKKyAgICAgKiB2YWx1ZXMgb25lIGdyZWF0ZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENISU5FU0VfRVBPQ0hfWUVBUiA9IC0yNjM2OyAvLyBHcmVnb3JpYW4geWVhcgorCisgICAgLyoqCisgICAgICogVGhlIG9mZnNldCBmcm9tIEdNVCBpbiBtaWxsaXNlY29uZHMgYXQgd2hpY2ggd2UgcGVyZm9ybSBhc3Ryb25vbWljYWwKKyAgICAgKiBjb21wdXRhdGlvbnMuICBTb21lIHNvdXJjZXMgdXNlIGEgZGlmZmVyZW50IGhpc3RvcmljYWxseSBhY2N1cmF0ZQorICAgICAqIG9mZnNldCBvZiBHTVQrNzo0NTo0MCBmb3IgeWVhcnMgYmVmb3JlIDE5Mjk7IHdlIGRvIG5vdCBkbyB0aGlzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgQ0hJTkFfT0ZGU0VUID0gOCpPTkVfSE9VUjsKKworICAgIC8qKgorICAgICAqIFZhbHVlIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSB0aGUgbG9jYWwgZGF5cyBvZiBhIG5ldyBtb29uIHRvCisgICAgICogZ2V0IGNsb3NlIHRvIHRoZSBuZXh0IG9yIHByaW9yIG5ldyBtb29uLCBidXQgbm90IGNyb3NzIGl0LiAgTXVzdCBiZQorICAgICAqID49IDEgYW5kIDwgQ2FsZW5kYXJBc3Ryb25vbWVyLlNZTk9ESUNfTU9OVEguCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNZTk9ESUNfR0FQID0gMjU7CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGxvY2FsIGRheXMgdG8gVVRDIGVwb2NoIG1pbGxpc2Vjb25kcy4KKyAgICAgKiBAcGFyYW0gZGF5cyBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkKKyAgICAgKiBAcmV0dXJuIG1pbGxpc2Vjb25kcyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBHTVQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGRheXNUb01pbGxpcyhpbnQgZGF5cykgeworICAgICAgICByZXR1cm4gKGRheXMgKiBPTkVfREFZKSAtIENISU5BX09GRlNFVDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IFVUQyBlcG9jaCBtaWxsaXNlY29uZHMgdG8gbG9jYWwgZGF5cy4KKyAgICAgKiBAcGFyYW0gbWlsbGlzIG1pbGxpc2Vjb25kcyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBHTVQKKyAgICAgKiBAcmV0dXJuIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBtaWxsaXNUb0RheXMobG9uZyBtaWxsaXMpIHsKKyAgICAgICAgcmV0dXJuIChpbnQpIGZsb29yRGl2aWRlKG1pbGxpcyArIENISU5BX09GRlNFVCwgT05FX0RBWSk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBBc3Ryb25vbWljYWwgY29tcHV0YXRpb25zCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1ham9yIHNvbGFyIHRlcm0gb24gb3IgYWZ0ZXIgRGVjZW1iZXIgMTUgb2YgdGhlIGdpdmVuCisgICAgICogR3JlZ29yaWFuIHllYXIsIHRoYXQgaXMsIHRoZSB3aW50ZXIgc29sc3RpY2Ugb2YgdGhlIGdpdmVuIHllYXIuCisgICAgICogQ29tcHV0YXRpb25zIGFyZSByZWxhdGl2ZSB0byBBc2lhL1NoYW5naGFpIHRpbWUgem9uZS4KKyAgICAgKiBAcGFyYW0gZ3llYXIgYSBHcmVnb3JpYW4geWVhcgorICAgICAqIEByZXR1cm4gZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpIG9mIHRoZQorICAgICAqIHdpbnRlciBzb2xzdGljZSBvZiB0aGUgZ2l2ZW4geWVhcgorICAgICAqLworICAgIHByaXZhdGUgaW50IHdpbnRlclNvbHN0aWNlKGludCBneWVhcikgeworCisgICAgICAgIGxvbmcgY2FjaGVWYWx1ZSA9IHdpbnRlclNvbHN0aWNlQ2FjaGUuZ2V0KGd5ZWFyKTsKKworICAgICAgICBpZiAoY2FjaGVWYWx1ZSA9PSBDYWxlbmRhckNhY2hlLkVNUFRZKSB7CisgICAgICAgICAgICAvLyBJbiBib29rcyBEZWNlbWJlciAxNSBpcyB1c2VkLCBidXQgaXQgZmFpbHMgZm9yIHNvbWUgeWVhcnMKKyAgICAgICAgICAgIC8vIHVzaW5nIG91ciBhbGdvcml0aG1zLCBlLmcuOiAxMjk4IDEzOTEgMTQ5MiAxNTUzIDE1NjAuICBUaGF0CisgICAgICAgICAgICAvLyBpcywgd2ludGVyU29sc3RpY2UoMTI5OCkgc3RhcnRzIHNlYXJjaCBhdCBEZWMgMTQgMDg6MDA6MDAKKyAgICAgICAgICAgIC8vIFBTVCAxMjk4IHdpdGggYSBmaW5hbCByZXN1bHQgb2YgRGVjIDE0IDEwOjMxOjU5IFBTVCAxMjk5LgorICAgICAgICAgICAgbG9uZyBtcyA9IGRheXNUb01pbGxpcyhjb21wdXRlR3JlZ29yaWFuTW9udGhTdGFydChneWVhciwgREVDRU1CRVIpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAtIEVQT0NIX0pVTElBTl9EQVkpOworICAgICAgICAgICAgYXN0cm8uc2V0VGltZShtcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFdpbnRlciBzb2xzdGljZSBpcyAyNzAgZGVncmVlcyBzb2xhciBsb25naXR1ZGUgYWthIERvbmd6aGkKKyAgICAgICAgICAgIGxvbmcgc29sYXJMb25nID0gYXN0cm8uZ2V0U3VuVGltZShDYWxlbmRhckFzdHJvbm9tZXIuV0lOVEVSX1NPTFNUSUNFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOworICAgICAgICAgICAgY2FjaGVWYWx1ZSA9IG1pbGxpc1RvRGF5cyhzb2xhckxvbmcpOworICAgICAgICAgICAgd2ludGVyU29sc3RpY2VDYWNoZS5wdXQoZ3llYXIsIGNhY2hlVmFsdWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoaW50KSBjYWNoZVZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY2xvc2VzdCBuZXcgbW9vbiB0byB0aGUgZ2l2ZW4gZGF0ZSwgc2VhcmNoaW5nIGVpdGhlcgorICAgICAqIGZvcndhcmQgb3IgYmFja3dhcmQgaW4gdGltZS4KKyAgICAgKiBAcGFyYW0gZGF5cyBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkKKyAgICAgKiBAcGFyYW0gYWZ0ZXIgaWYgdHJ1ZSwgc2VhcmNoIGZvciBhIG5ldyBtb29uIG9uIG9yIGFmdGVyIHRoZSBnaXZlbgorICAgICAqIGRhdGU7IG90aGVyd2lzZSwgc2VhcmNoIGZvciBhIG5ldyBtb29uIGJlZm9yZSBpdAorICAgICAqIEByZXR1cm4gZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpIG9mIHRoZSBuZWFyZXN0CisgICAgICogbmV3IG1vb24gYWZ0ZXIgb3IgYmVmb3JlIDxjb2RlPmRheXM8L2NvZGU+CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbmV3TW9vbk5lYXIoaW50IGRheXMsIGJvb2xlYW4gYWZ0ZXIpIHsKKyAgICAgICAgCisgICAgICAgIGFzdHJvLnNldFRpbWUoZGF5c1RvTWlsbGlzKGRheXMpKTsKKyAgICAgICAgbG9uZyBuZXdNb29uID0gYXN0cm8uZ2V0TW9vblRpbWUoQ2FsZW5kYXJBc3Ryb25vbWVyLk5FV19NT09OLCBhZnRlcik7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbWlsbGlzVG9EYXlzKG5ld01vb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbmVhcmVzdCBpbnRlZ2VyIG51bWJlciBvZiBzeW5vZGljIG1vbnRocyBiZXR3ZWVuCisgICAgICogdHdvIGRhdGVzLgorICAgICAqIEBwYXJhbSBkYXkxIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaQorICAgICAqIEBwYXJhbSBkYXkyIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaQorICAgICAqIEByZXR1cm4gdGhlIG5lYXJlc3QgaW50ZWdlciBudW1iZXIgb2YgbW9udGhzIGJldHdlZW4gZGF5MSBhbmQgZGF5MgorICAgICAqLworICAgIHByaXZhdGUgaW50IHN5bm9kaWNNb250aHNCZXR3ZWVuKGludCBkYXkxLCBpbnQgZGF5MikgeworICAgICAgICByZXR1cm4gKGludCkgTWF0aC5yb3VuZCgoZGF5MiAtIGRheTEpIC8gQ2FsZW5kYXJBc3Ryb25vbWVyLlNZTk9ESUNfTU9OVEgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWFqb3Igc29sYXIgdGVybSBvbiBvciBiZWZvcmUgYSBnaXZlbiBkYXRlLiAgVGhpcworICAgICAqIHdpbGwgYmUgYW4gaW50ZWdlciBmcm9tIDEuLjEyLCB3aXRoIDEgY29ycmVzcG9uZGluZyB0byAzMzAgZGVncmVlcywKKyAgICAgKiAyIHRvIDAgZGVncmVlcywgMyB0byAzMCBkZWdyZWVzLC4uLiwgYW5kIDEyIHRvIDMwMCBkZWdyZWVzLgorICAgICAqIEBwYXJhbSBkYXlzIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1ham9yU29sYXJUZXJtKGludCBkYXlzKSB7CisgICAgICAgIAorICAgICAgICBhc3Ryby5zZXRUaW1lKGRheXNUb01pbGxpcyhkYXlzKSk7CisKKyAgICAgICAgLy8gQ29tcHV0ZSAoZmxvb3Ioc29sYXJMb25naXR1ZGUgLyAocGkvNikpICsgMikgJSAxMgorICAgICAgICBpbnQgdGVybSA9ICgoaW50KSBNYXRoLmZsb29yKDYgKiBhc3Ryby5nZXRTdW5Mb25naXR1ZGUoKSAvIE1hdGguUEkpICsgMikgJSAxMjsKKyAgICAgICAgaWYgKHRlcm0gPCAxKSB7CisgICAgICAgICAgICB0ZXJtICs9IDEyOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0ZXJtOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBtb250aCBsYWNrcyBhIG1ham9yIHNvbGFyIHRlcm0uCisgICAgICogQHBhcmFtIG5ld01vb24gZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpIG9mIGEgbmV3CisgICAgICogbW9vbgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBoYXNOb01ham9yU29sYXJUZXJtKGludCBuZXdNb29uKSB7CisgICAgICAgIAorICAgICAgICBpbnQgbXN0ID0gbWFqb3JTb2xhclRlcm0obmV3TW9vbik7CisgICAgICAgIGludCBubW4gPSBuZXdNb29uTmVhcihuZXdNb29uICsgU1lOT0RJQ19HQVAsIHRydWUpOworICAgICAgICBpbnQgbXN0dCA9IG1ham9yU29sYXJUZXJtKG5tbik7CisgICAgICAgIHJldHVybiBtc3QgPT0gbXN0dDsKKyAgICAgICAgLyoKKyAgICAgICAgcmV0dXJuIG1ham9yU29sYXJUZXJtKG5ld01vb24pID09CisgICAgICAgICAgICBtYWpvclNvbGFyVGVybShuZXdNb29uTmVhcihuZXdNb29uICsgU1lOT0RJQ19HQVAsIHRydWUpKTsKKyAgICAgICAgKi8KKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFRpbWUgdG8gZmllbGRzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGxlYXAgbW9udGggb24gb3IgYWZ0ZXIgbW9udGggbmV3TW9vbjEgYW5kCisgICAgICogYXQgb3IgYmVmb3JlIG1vbnRoIG5ld01vb24yLgorICAgICAqIEBwYXJhbSBuZXdNb29uMSBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkgb2YgYQorICAgICAqIG5ldyBtb29uCisgICAgICogQHBhcmFtIG5ld01vb24yIGRheXMgYWZ0ZXIgSmFudWFyeSAxLCAxOTcwIDA6MDAgQXNpYS9TaGFuZ2hhaSBvZiBhCisgICAgICogbmV3IG1vb24KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gaXNMZWFwTW9udGhCZXR3ZWVuKGludCBuZXdNb29uMSwgaW50IG5ld01vb24yKSB7CisKKyAgICAgICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCB0byBkZWJ1ZyB0aGUgdGltZU9mQW5nbGUgZGl2ZXJnZW5jZSBidWcuCisgICAgICAgIC8vIFJlbW92ZSB0aGlzIGxhdGVyLiBMaXUgMTEvOS8wMAorICAgICAgICAvLyBERUJVRworICAgICAgICBpZiAoc3lub2RpY01vbnRoc0JldHdlZW4obmV3TW9vbjEsIG5ld01vb24yKSA+PSA1MCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiaXNMZWFwTW9udGhCZXR3ZWVuKCIgKyBuZXdNb29uMSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsICIgKyBuZXdNb29uMiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpOiBJbnZhbGlkIHBhcmFtZXRlcnMiKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAobmV3TW9vbjIgPj0gbmV3TW9vbjEpICYmCisgICAgICAgICAgICAoaXNMZWFwTW9udGhCZXR3ZWVuKG5ld01vb24xLCBuZXdNb29uTmVhcihuZXdNb29uMiAtIFNZTk9ESUNfR0FQLCBmYWxzZSkpIHx8CisgICAgICAgICAgICAgaGFzTm9NYWpvclNvbGFyVGVybShuZXdNb29uMikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIENhbGVuZGFyIHRvIGNvbXB1dGUgc2V2ZXJhbCBmaWVsZHMgc3BlY2lmaWMgdG8gdGhlIENoaW5lc2UKKyAgICAgKiBjYWxlbmRhciBzeXN0ZW0uICBUaGVzZSBhcmU6CisgICAgICoKKyAgICAgKiA8dWw+PGxpPkVSQQorICAgICAqIDxsaT5ZRUFSCisgICAgICogPGxpPk1PTlRICisgICAgICogPGxpPkRBWV9PRl9NT05USAorICAgICAqIDxsaT5EQVlfT0ZfWUVBUgorICAgICAqIDxsaT5FWFRFTkRFRF9ZRUFSPC91bD4KKyAgICAgKiAKKyAgICAgKiBUaGUgREFZX09GX1dFRUsgYW5kIERPV19MT0NBTCBmaWVsZHMgYXJlIGFscmVhZHkgc2V0IHdoZW4gdGhpcworICAgICAqIG1ldGhvZCBpcyBjYWxsZWQuICBUaGUgZ2V0R3JlZ29yaWFuWHh4KCkgbWV0aG9kcyByZXR1cm4gR3JlZ29yaWFuCisgICAgICogY2FsZW5kYXIgZXF1aXZhbGVudHMgZm9yIHRoZSBnaXZlbiBKdWxpYW4gZGF5LgorICAgICAqCisgICAgICogPHA+Q29tcHV0ZSB0aGUgQ2hpbmVzZUNhbGVuZGFyLXNwZWNpZmljIGZpZWxkIElTX0xFQVBfTU9OVEguCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQ29tcHV0ZUZpZWxkcyhpbnQganVsaWFuRGF5KSB7CisKKyAgICAgICAgY29tcHV0ZUNoaW5lc2VGaWVsZHMoanVsaWFuRGF5IC0gRVBPQ0hfSlVMSUFOX0RBWSwgLy8gbG9jYWwgZGF5cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRHcmVnb3JpYW5ZZWFyKCksIGdldEdyZWdvcmlhbk1vbnRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOyAvLyBzZXQgYWxsIGZpZWxkcworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXB1dGUgZmllbGRzIGZvciB0aGUgQ2hpbmVzZSBjYWxlbmRhciBzeXN0ZW0uICBUaGlzIG1ldGhvZCBjYW4KKyAgICAgKiBlaXRoZXIgc2V0IGFsbCByZWxldmFudCBmaWVsZHMsIGFzIHJlcXVpcmVkIGJ5CisgICAgICogPGNvZGU+aGFuZGxlQ29tcHV0ZUZpZWxkcygpPC9jb2RlPiwgb3IgaXQgY2FuIGp1c3Qgc2V0IHRoZSBNT05USCBhbmQKKyAgICAgKiBJU19MRUFQX01PTlRIIGZpZWxkcywgYXMgcmVxdWlyZWQgYnkKKyAgICAgKiA8Y29kZT5oYW5kbGVDb21wdXRlTW9udGhTdGFydCgpPC9jb2RlPi4KKyAgICAgKgorICAgICAqIDxwPkFzIGEgc2lkZSBlZmZlY3QsIHRoaXMgbWV0aG9kIHNldHMge0BsaW5rICNpc0xlYXBZZWFyfS4KKyAgICAgKiBAcGFyYW0gZGF5cyBkYXlzIGFmdGVyIEphbnVhcnkgMSwgMTk3MCAwOjAwIEFzaWEvU2hhbmdoYWkgb2YgdGhlCisgICAgICogZGF0ZSB0byBjb21wdXRlIGZpZWxkcyBmb3IKKyAgICAgKiBAcGFyYW0gZ3llYXIgdGhlIEdyZWdvcmlhbiB5ZWFyIG9mIHRoZSBnaXZlbiBkYXRlCisgICAgICogQHBhcmFtIGdtb250aCB0aGUgR3JlZ29yaWFuIG1vbnRoIG9mIHRoZSBnaXZlbiBkYXRlCisgICAgICogQHBhcmFtIHNldEFsbEZpZWxkcyBpZiB0cnVlLCBzZXQgdGhlIEVYVEVOREVEX1lFQVIsIEVSQSwgWUVBUiwKKyAgICAgKiBEQVlfT0ZfTU9OVEgsIGFuZCBEQVlfT0ZfWUVBUiBmaWVsZHMuICBJbiBlaXRoZXIgY2FzZSBzZXQgdGhlIE1PTlRICisgICAgICogYW5kIElTX0xFQVBfTU9OVEggZmllbGRzLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjb21wdXRlQ2hpbmVzZUZpZWxkcyhpbnQgZGF5cywgaW50IGd5ZWFyLCBpbnQgZ21vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHNldEFsbEZpZWxkcykgeworCisgICAgICAgIC8vIEZpbmQgdGhlIHdpbnRlciBzb2xzdGljZXMgYmVmb3JlIGFuZCBhZnRlciB0aGUgdGFyZ2V0IGRhdGUuCisgICAgICAgIC8vIFRoZXNlIGRlZmluZSB0aGUgYm91bmRhcmllcyBvZiB0aGlzIENoaW5lc2UgeWVhciwgc3BlY2lmaWNhbGx5LAorICAgICAgICAvLyB0aGUgcG9zaXRpb24gb2YgbW9udGggMTEsIHdoaWNoIGFsd2F5cyBjb250YWlucyB0aGUgc29sc3RpY2UuCisgICAgICAgIC8vIFdlIHdhbnQgc29sc3RpY2VCZWZvcmUgPD0gZGF0ZSA8IHNvbHN0aWNlQWZ0ZXIuCisgICAgICAgIGludCBzb2xzdGljZUJlZm9yZTsKKyAgICAgICAgaW50IHNvbHN0aWNlQWZ0ZXIgPSB3aW50ZXJTb2xzdGljZShneWVhcik7CisgICAgICAgIGlmIChkYXlzIDwgc29sc3RpY2VBZnRlcikgeworICAgICAgICAgICAgc29sc3RpY2VCZWZvcmUgPSB3aW50ZXJTb2xzdGljZShneWVhciAtIDEpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc29sc3RpY2VCZWZvcmUgPSBzb2xzdGljZUFmdGVyOworICAgICAgICAgICAgc29sc3RpY2VBZnRlciA9IHdpbnRlclNvbHN0aWNlKGd5ZWFyICsgMSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBGaW5kIHRoZSBzdGFydCBvZiB0aGUgbW9udGggYWZ0ZXIgbW9udGggMTEuICBUaGlzIHdpbGwgYmUgZWl0aGVyCisgICAgICAgIC8vIHRoZSBwcmlvciBtb250aCAxMiBvciBsZWFwIG1vbnRoIDExICh2ZXJ5IHJhcmUpLiAgQWxzbyBmaW5kIHRoZQorICAgICAgICAvLyBzdGFydCBvZiB0aGUgZm9sbG93aW5nIG1vbnRoIDExLgorICAgICAgICBpbnQgZmlyc3RNb29uID0gbmV3TW9vbk5lYXIoc29sc3RpY2VCZWZvcmUgKyAxLCB0cnVlKTsKKyAgICAgICAgaW50IGxhc3RNb29uID0gbmV3TW9vbk5lYXIoc29sc3RpY2VBZnRlciArIDEsIGZhbHNlKTsKKyAgICAgICAgaW50IHRoaXNNb29uID0gbmV3TW9vbk5lYXIoZGF5cyArIDEsIGZhbHNlKTsgLy8gU3RhcnQgb2YgdGhpcyBtb250aAorICAgICAgICAvLyBOb3RlOiBpc0xlYXBZZWFyIGlzIGEgbWVtYmVyIHZhcmlhYmxlCisgICAgICAgIGlzTGVhcFllYXIgPSBzeW5vZGljTW9udGhzQmV0d2VlbihmaXJzdE1vb24sIGxhc3RNb29uKSA9PSAxMjsKKworICAgICAgICBpbnQgbW9udGggPSBzeW5vZGljTW9udGhzQmV0d2VlbihmaXJzdE1vb24sIHRoaXNNb29uKTsKKyAgICAgICAgaWYgKGlzTGVhcFllYXIgJiYgaXNMZWFwTW9udGhCZXR3ZWVuKGZpcnN0TW9vbiwgdGhpc01vb24pKSB7CisgICAgICAgICAgICBtb250aC0tOworICAgICAgICB9CisgICAgICAgIGlmIChtb250aCA8IDEpIHsKKyAgICAgICAgICAgIG1vbnRoICs9IDEyOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBpc0xlYXBNb250aCA9IGlzTGVhcFllYXIgJiYKKyAgICAgICAgICAgIGhhc05vTWFqb3JTb2xhclRlcm0odGhpc01vb24pICYmCisgICAgICAgICAgICAhaXNMZWFwTW9udGhCZXR3ZWVuKGZpcnN0TW9vbiwgbmV3TW9vbk5lYXIodGhpc01vb24gLSBTWU5PRElDX0dBUCwgZmFsc2UpKTsKKworICAgICAgICBpbnRlcm5hbFNldChNT05USCwgbW9udGgtMSk7IC8vIENvbnZlcnQgZnJvbSAxLWJhc2VkIHRvIDAtYmFzZWQKKyAgICAgICAgaW50ZXJuYWxTZXQoSVNfTEVBUF9NT05USCwgaXNMZWFwTW9udGg/MTowKTsKKworICAgICAgICBpZiAoc2V0QWxsRmllbGRzKSB7CisKKyAgICAgICAgICAgIGludCB5ZWFyID0gZ3llYXIgLSBDSElORVNFX0VQT0NIX1lFQVI7CisgICAgICAgICAgICBpZiAobW9udGggPCAxMSB8fAorICAgICAgICAgICAgICAgIGdtb250aCA+PSBKVUxZKSB7CisgICAgICAgICAgICAgICAgeWVhcisrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGRheU9mTW9udGggPSBkYXlzIC0gdGhpc01vb24gKyAxOworCisgICAgICAgICAgICBpbnRlcm5hbFNldChFWFRFTkRFRF9ZRUFSLCB5ZWFyKTsKKworICAgICAgICAgICAgLy8gMC0+MCw2MCAgMS0+MSwxICA2MC0+MSw2MCAgNjEtPjIsMSAgZXRjLgorICAgICAgICAgICAgaW50W10geWVhck9mQ3ljbGUgPSBuZXcgaW50WzFdOworICAgICAgICAgICAgaW50IGN5Y2xlID0gZmxvb3JEaXZpZGUoeWVhci0xLCA2MCwgeWVhck9mQ3ljbGUpOworICAgICAgICAgICAgaW50ZXJuYWxTZXQoRVJBLCBjeWNsZSsxKTsKKyAgICAgICAgICAgIGludGVybmFsU2V0KFlFQVIsIHllYXJPZkN5Y2xlWzBdKzEpOworCisgICAgICAgICAgICBpbnRlcm5hbFNldChEQVlfT0ZfTU9OVEgsIGRheU9mTW9udGgpOworCisgICAgICAgICAgICAvLyBEYXlzIHdpbGwgYmUgYmVmb3JlIHRoZSBmaXJzdCBuZXcgeWVhciB3ZSBjb21wdXRlIGlmIHRoaXMKKyAgICAgICAgICAgIC8vIGRhdGUgaXMgaW4gbW9udGggMTEsIGxlYXAgMTEsIDEyLiAgVGhlcmUgaXMgbmV2ZXIgYSBsZWFwIDEyLgorICAgICAgICAgICAgLy8gTmV3IHllYXIgY29tcHV0YXRpb25zIGFyZSBjYWNoZWQgc28gdGhpcyBzaG91bGQgYmUgY2hlYXAgaW4KKyAgICAgICAgICAgIC8vIHRoZSBsb25nIHJ1bi4KKyAgICAgICAgICAgIGludCBuZXdZZWFyID0gbmV3WWVhcihneWVhcik7CisgICAgICAgICAgICBpZiAoZGF5cyA8IG5ld1llYXIpIHsKKyAgICAgICAgICAgICAgICBuZXdZZWFyID0gbmV3WWVhcihneWVhci0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludGVybmFsU2V0KERBWV9PRl9ZRUFSLCBkYXlzIC0gbmV3WWVhciArIDEpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBGaWVsZHMgdG8gdGltZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBDaGluZXNlIG5ldyB5ZWFyIG9mIHRoZSBnaXZlbiBHcmVnb3JpYW4geWVhci4KKyAgICAgKiBAcGFyYW0gZ3llYXIgYSBHcmVnb3JpYW4geWVhcgorICAgICAqIEByZXR1cm4gZGF5cyBhZnRlciBKYW51YXJ5IDEsIDE5NzAgMDowMCBBc2lhL1NoYW5naGFpIG9mIHRoZQorICAgICAqIENoaW5lc2UgbmV3IHllYXIgb2YgdGhlIGdpdmVuIHllYXIgKHRoaXMgd2lsbCBiZSBhIG5ldyBtb29uKQorICAgICAqLworICAgIHByaXZhdGUgaW50IG5ld1llYXIoaW50IGd5ZWFyKSB7CisKKyAgICAgICAgbG9uZyBjYWNoZVZhbHVlID0gbmV3WWVhckNhY2hlLmdldChneWVhcik7CisKKyAgICAgICAgaWYgKGNhY2hlVmFsdWUgPT0gQ2FsZW5kYXJDYWNoZS5FTVBUWSkgeworCisgICAgICAgICAgICBpbnQgc29sc3RpY2VCZWZvcmU9IHdpbnRlclNvbHN0aWNlKGd5ZWFyIC0gMSk7CisgICAgICAgICAgICBpbnQgc29sc3RpY2VBZnRlciA9IHdpbnRlclNvbHN0aWNlKGd5ZWFyKTsKKyAgICAgICAgICAgIGludCBuZXdNb29uMSA9IG5ld01vb25OZWFyKHNvbHN0aWNlQmVmb3JlICsgMSwgdHJ1ZSk7CisgICAgICAgICAgICBpbnQgbmV3TW9vbjIgPSBuZXdNb29uTmVhcihuZXdNb29uMSArIFNZTk9ESUNfR0FQLCB0cnVlKTsKKyAgICAgICAgICAgIGludCBuZXdNb29uMTEgPSBuZXdNb29uTmVhcihzb2xzdGljZUFmdGVyICsgMSwgZmFsc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc3lub2RpY01vbnRoc0JldHdlZW4obmV3TW9vbjEsIG5ld01vb24xMSkgPT0gMTIgJiYKKyAgICAgICAgICAgICAgICAoaGFzTm9NYWpvclNvbGFyVGVybShuZXdNb29uMSkgfHwgaGFzTm9NYWpvclNvbGFyVGVybShuZXdNb29uMikpKSB7CisgICAgICAgICAgICAgICAgY2FjaGVWYWx1ZSA9IG5ld01vb25OZWFyKG5ld01vb24yICsgU1lOT0RJQ19HQVAsIHRydWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjYWNoZVZhbHVlID0gbmV3TW9vbjI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG5ld1llYXJDYWNoZS5wdXQoZ3llYXIsIGNhY2hlVmFsdWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoaW50KSBjYWNoZVZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgSnVsaWFuIGRheSBudW1iZXIgb2YgZGF5IGJlZm9yZSB0aGUgZmlyc3QgZGF5IG9mIHRoZQorICAgICAqIGdpdmVuIG1vbnRoIGluIHRoZSBnaXZlbiBleHRlbmRlZCB5ZWFyLgorICAgICAqIAorICAgICAqIDxwPk5vdGU6IFRoaXMgbWV0aG9kIHJlYWRzIHRoZSBJU19MRUFQX01PTlRIIGZpZWxkIHRvIGRldGVybWluZQorICAgICAqIHdoZXRoZXIgdGhlIGdpdmVuIG1vbnRoIGlzIGEgbGVhcCBtb250aC4KKyAgICAgKiBAcGFyYW0gZXllYXIgdGhlIGV4dGVuZGVkIHllYXIKKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIHplcm8tYmFzZWQgbW9udGguICBUaGUgbW9udGggaXMgYWxzbyBkZXRlcm1pbmVkCisgICAgICogYnkgcmVhZGluZyB0aGUgSVNfTEVBUF9NT05USCBmaWVsZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBKdWxpYW4gZGF5IG51bWJlciBvZiB0aGUgZGF5IGJlZm9yZSB0aGUgZmlyc3QKKyAgICAgKiBkYXkgb2YgdGhlIGdpdmVuIG1vbnRoIGFuZCB5ZWFyCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVDb21wdXRlTW9udGhTdGFydChpbnQgZXllYXIsIGludCBtb250aCwgYm9vbGVhbiB1c2VNb250aCkgeworCisgICAgICAgIC8vIElmIHRoZSBtb250aCBpcyBvdXQgb2YgcmFuZ2UsIGFkanVzdCBpdCBpbnRvIHJhbmdlLCBhbmQKKyAgICAgICAgLy8gbW9kaWZ5IHRoZSBleHRlbmRlZCB5ZWFyIHZhbHVlIGFjY29yZGluZ2x5LgorICAgICAgICBpZiAobW9udGggPCAwIHx8IG1vbnRoID4gMTEpIHsKKyAgICAgICAgICAgIGludFtdIHJlbSA9IG5ldyBpbnRbMV07CisgICAgICAgICAgICBleWVhciArPSBmbG9vckRpdmlkZShtb250aCwgMTIsIHJlbSk7CisgICAgICAgICAgICBtb250aCA9IHJlbVswXTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBneWVhciA9IGV5ZWFyICsgQ0hJTkVTRV9FUE9DSF9ZRUFSIC0gMTsgLy8gR3JlZ29yaWFuIHllYXIKKyAgICAgICAgaW50IG5ld1llYXIgPSBuZXdZZWFyKGd5ZWFyKTsKKyAgICAgICAgaW50IG5ld01vb24gPSBuZXdNb29uTmVhcihuZXdZZWFyICsgbW9udGggKiAyOSwgdHJ1ZSk7CisgICAgICAgIAorICAgICAgICBpbnQganVsaWFuRGF5ID0gbmV3TW9vbiArIEVQT0NIX0pVTElBTl9EQVk7CisKKyAgICAgICAgLy8gU2F2ZSBmaWVsZHMgZm9yIGxhdGVyIHJlc3RvcmF0aW9uCisgICAgICAgIGludCBzYXZlTW9udGggPSBpbnRlcm5hbEdldChNT05USCk7CisgICAgICAgIGludCBzYXZlSXNMZWFwTW9udGggPSBpbnRlcm5hbEdldChJU19MRUFQX01PTlRIKTsKKworICAgICAgICAvLyBJZ25vcmUgSVNfTEVBUF9NT05USCBmaWVsZCBpZiB1c2VNb250aCBpcyBmYWxzZQorICAgICAgICBpbnQgaXNMZWFwTW9udGggPSB1c2VNb250aCA/IHNhdmVJc0xlYXBNb250aCA6IDA7CisKKyAgICAgICAgY29tcHV0ZUdyZWdvcmlhbkZpZWxkcyhqdWxpYW5EYXkpOworICAgICAgICAKKyAgICAgICAgLy8gVGhpcyB3aWxsIG1vZGlmeSB0aGUgTU9OVEggYW5kIElTX0xFQVBfTU9OVEggZmllbGRzIChvbmx5KQorICAgICAgICBjb21wdXRlQ2hpbmVzZUZpZWxkcyhuZXdNb29uLCBnZXRHcmVnb3JpYW5ZZWFyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEdyZWdvcmlhbk1vbnRoKCksIGZhbHNlKTsgICAgICAgIAorCisgICAgICAgIGlmIChtb250aCAhPSBpbnRlcm5hbEdldChNT05USCkgfHwKKyAgICAgICAgICAgIGlzTGVhcE1vbnRoICE9IGludGVybmFsR2V0KElTX0xFQVBfTU9OVEgpKSB7CisgICAgICAgICAgICBuZXdNb29uID0gbmV3TW9vbk5lYXIobmV3TW9vbiArIFNZTk9ESUNfR0FQLCB0cnVlKTsKKyAgICAgICAgICAgIGp1bGlhbkRheSA9IG5ld01vb24gKyBFUE9DSF9KVUxJQU5fREFZOworICAgICAgICB9CisKKyAgICAgICAgaW50ZXJuYWxTZXQoTU9OVEgsIHNhdmVNb250aCk7CisgICAgICAgIGludGVybmFsU2V0KElTX0xFQVBfTU9OVEgsIHNhdmVJc0xlYXBNb250aCk7CisKKyAgICAgICAgcmV0dXJuIGp1bGlhbkRheSAtIDE7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IENhbGVuZGFyIHR5cGUuCisgICAgICogQHJldHVybiB0eXBlIG9mIGNhbGVuZGFyIChncmVnb3JpYW4sIGV0Yy4pCisgICAgICogQGludGVybmFsIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiAiY2hpbmVzZSI7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgcmVhZE9iamVjdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVhZE9iamVjdChPYmplY3RJbnB1dFN0cmVhbSBzdHJlYW0pCisgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgc3RyZWFtLmRlZmF1bHRSZWFkT2JqZWN0KCk7CisgICAgICAgIAorICAgICAgICAvKiBzZXQgdXAgdGhlIHRyYW5zaWVudCBjYWNoZXMuLi4gKi8KKyAgICAgICAgYXN0cm8gPSBuZXcgQ2FsZW5kYXJBc3Ryb25vbWVyKCk7CisgICAgICAgIHdpbnRlclNvbHN0aWNlQ2FjaGUgPSBuZXcgQ2FsZW5kYXJDYWNoZSgpOworICAgICAgICBuZXdZZWFyQ2FjaGUgPSBuZXcgQ2FsZW5kYXJDYWNoZSgpOworICAgIH0KKyAgICAKKyAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5OworICAgIHB1YmxpYyBzdGF0aWMgQ2FsZW5kYXJGYWN0b3J5IGZhY3RvcnkoKSB7CisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwpIHsKKyAgICAgICAgICAgIGZhY3RvcnkgPSBuZXcgQ2FsZW5kYXJGYWN0b3J5KCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyBDYWxlbmRhciBjcmVhdGUoVGltZVpvbmUgdHosIFVMb2NhbGUgbG9jKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ2hpbmVzZUNhbGVuZGFyKHR6LCBsb2MpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgZmFjdG9yeU5hbWUoKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiQ2hpbmVzZSI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFjdG9yeTsKKyAgICB9CisgICAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0NvbXBhY3RCeXRlQXJyYXkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0NvbXBhY3RCeXRlQXJyYXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMDI1ZTU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29tcGFjdEJ5dGVBcnJheS5qYXZhCkBAIC0wLDAgKzEsMzY4IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBjbGFzcyBDb21wYWN0QVR5cGVBcnJheSA6IHVzZSBvbmx5IG9uIHByaW1pdGl2ZSBkYXRhIHR5cGVzCisgKiBQcm92aWRlcyBhIGNvbXBhY3Qgd2F5IHRvIHN0b3JlIGluZm9ybWF0aW9uIHRoYXQgaXMgaW5kZXhlZCBieSBVbmljb2RlCisgKiB2YWx1ZXMsIHN1Y2ggYXMgY2hhcmFjdGVyIHByb3BlcnRpZXMsIHR5cGVzLCBrZXlib2FyZCB2YWx1ZXMsIGV0Yy5UaGlzCisgKiBpcyB2ZXJ5IHVzZWZ1bCB3aGVuIHlvdSBoYXZlIGEgYmxvY2sgb2YgVW5pY29kZSBkYXRhIHRoYXQgY29udGFpbnMKKyAqIHNpZ25pZmljYW50IHZhbHVlcyB3aGlsZSB0aGUgcmVzdCBvZiB0aGUgVW5pY29kZSBkYXRhIGlzIHVudXNlZCBpbiB0aGUKKyAqIGFwcGxpY2F0aW9uIG9yIHdoZW4geW91IGhhdmUgYSBsb3Qgb2YgcmVkdW5kYW5jZSwgc3VjaCBhcyB3aGVyZSBhbGwgMjEsMDAwCisgKiBIYW4gaWRlb2dyYXBocyBoYXZlIHRoZSBzYW1lIHZhbHVlLiAgSG93ZXZlciwgbG9va3VwIGlzIG11Y2ggZmFzdGVyIHRoYW4gYQorICogaGFzaCB0YWJsZS4KKyAqIEEgY29tcGFjdCBhcnJheSBvZiBhbnkgcHJpbWl0aXZlIGRhdGEgdHlwZSBzZXJ2ZXMgdHdvIHB1cnBvc2VzOgorICogPFVMIHR5cGUgPSByb3VuZD4KKyAqICAgICA8TEk+RmFzdCBhY2Nlc3Mgb2YgdGhlIGluZGV4ZWQgdmFsdWVzLgorICogICAgIDxMST5TbWFsbGVyIG1lbW9yeSBmb290cHJpbnQuCisgKiA8L1VMPgorICogQSBjb21wYWN0IGFycmF5IGlzIGNvbXBvc2VkIG9mIGEgaW5kZXggYXJyYXkgYW5kIHZhbHVlIGFycmF5LiAgVGhlIGluZGV4CisgKiBhcnJheSBjb250YWlucyB0aGUgaW5kaWNpZXMgb2YgVW5pY29kZSBjaGFyYWN0ZXJzIHRvIHRoZSB2YWx1ZSBhcnJheS4KKyAqCisgKiBAc2VlICAgICAgICAgICAgICAgIENvbXBhY3RDaGFyQXJyYXkKKyAqIEBhdXRob3IgICAgICAgICAgICAgSGVsZW5hIFNoaWgKKyAqIEBpbnRlcm5hbAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQ29tcGFjdEJ5dGVBcnJheSBpbXBsZW1lbnRzIENsb25lYWJsZSB7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIFVuaWNvZGUgY2hhcmFjdGVycy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljICBmaW5hbCBpbnQgVU5JQ09ERUNPVU5UID02NTUzNjsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IgZm9yIENvbXBhY3RCeXRlQXJyYXksIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZQorICAgICAqIGNvbXBhY3QgYXJyYXkgaXMgMC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcGFjdEJ5dGVBcnJheSgpCisgICAgeworICAgICAgICB0aGlzKChieXRlKTApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZvciBDb21wYWN0Qnl0ZUFycmF5LgorICAgICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RCeXRlQXJyYXkoYnl0ZSBkZWZhdWx0VmFsdWUpCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgdmFsdWVzID0gbmV3IGJ5dGVbVU5JQ09ERUNPVU5UXTsKKyAgICAgICAgaW5kaWNlcyA9IG5ldyBjaGFyW0lOREVYQ09VTlRdOworICAgICAgICBoYXNoZXMgPSBuZXcgaW50W0lOREVYQ09VTlRdOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgVU5JQ09ERUNPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIHZhbHVlc1tpXSA9IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgSU5ERVhDT1VOVDsgKytpKSB7CisgICAgICAgICAgICBpbmRpY2VzW2ldID0gKGNoYXIpKGk8PEJMT0NLU0hJRlQpOworICAgICAgICAgICAgaGFzaGVzW2ldID0gMDsKKyAgICAgICAgfQorICAgICAgICBpc0NvbXBhY3QgPSBmYWxzZTsKKworICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmb3IgQ29tcGFjdEJ5dGVBcnJheS4KKyAgICAgKiBAcGFyYW0gaW5kZXhBcnJheSB0aGUgaW5kaWNpZXMgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlcyB0aGUgdmFsdWVzIG9mIHRoZSBjb21wYWN0IGFycmF5LgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIElmIHRoZSBpbmRleCBpcyBvdXQgb2YgcmFuZ2UuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RCeXRlQXJyYXkoY2hhciBpbmRleEFycmF5W10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZSBuZXdWYWx1ZXNbXSkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBpZiAoaW5kZXhBcnJheS5sZW5ndGggIT0gSU5ERVhDT1VOVCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkluZGV4IG91dCBvZiBib3VuZHMuIik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBJTkRFWENPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIGNoYXIgaW5kZXggPSBpbmRleEFycmF5W2ldOworICAgICAgICAgICAgaWYgKChpbmRleCA8IDApIHx8IChpbmRleCA+PSBuZXdWYWx1ZXMubGVuZ3RoK0JMT0NLQ09VTlQpKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkluZGV4IG91dCBvZiBib3VuZHMuIik7CisgICAgICAgIH0KKyAgICAgICAgaW5kaWNlcyA9IGluZGV4QXJyYXk7CisgICAgICAgIHZhbHVlcyA9IG5ld1ZhbHVlczsKKyAgICAgICAgaXNDb21wYWN0ID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmb3IgQ29tcGFjdEJ5dGVBcnJheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleEFycmF5IHRoZSBSTEUtZW5jb2RlZCBpbmRpY2llcyBvZiB0aGUgY29tcGFjdCBhcnJheS4KKyAgICAgKiBAcGFyYW0gdmFsdWVBcnJheSB0aGUgUkxFLWVuY29kZWQgdmFsdWVzIG9mIHRoZSBjb21wYWN0IGFycmF5LgorICAgICAqCisgICAgICogQHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIGluZGV4IG9yIHZhbHVlIGFycmF5IGlzCisgICAgICogICAgICAgICAgdGhlIHdyb25nIHNpemUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RCeXRlQXJyYXkoU3RyaW5nIGluZGV4QXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlQXJyYXkpCisgICAgeworICAgICAgICB0aGlzKCBVdGlsaXR5LlJMRVN0cmluZ1RvQ2hhckFycmF5KGluZGV4QXJyYXkpLAorICAgICAgICAgICAgICBVdGlsaXR5LlJMRVN0cmluZ1RvQnl0ZUFycmF5KHZhbHVlQXJyYXkpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG1hcHBlZCB2YWx1ZSBvZiBhIFVuaWNvZGUgY2hhcmFjdGVyLgorICAgICAqIEBwYXJhbSBpbmRleCB0aGUgY2hhcmFjdGVyIHRvIGdldCB0aGUgbWFwcGVkIHZhbHVlIHdpdGgKKyAgICAgKiBAcmV0dXJuIHRoZSBtYXBwZWQgdmFsdWUgb2YgdGhlIGdpdmVuIGNoYXJhY3RlcgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBieXRlIGVsZW1lbnRBdChjaGFyIGluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuICh2YWx1ZXNbKGluZGljZXNbaW5kZXggPj4gQkxPQ0tTSElGVF0gJiAweEZGRkYpCisgICAgICAgICAgICAgICAgICAgICAgICsgKGluZGV4ICYgQkxPQ0tNQVNLKV0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBhIG5ldyB2YWx1ZSBmb3IgYSBVbmljb2RlIGNoYXJhY3Rlci4KKyAgICAgKiBTZXQgYXV0b21hdGljYWxseSBleHBhbmRzIHRoZSBhcnJheSBpZiBpdCBpcyBjb21wYWN0ZWQuCisgICAgICogQHBhcmFtIGluZGV4IHRoZSBjaGFyYWN0ZXIgdG8gc2V0IHRoZSBtYXBwZWQgdmFsdWUgd2l0aAorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgbmV3IG1hcHBlZCB2YWx1ZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVsZW1lbnRBdChjaGFyIGluZGV4LCBieXRlIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKGlzQ29tcGFjdCkKKyAgICAgICAgICAgIGV4cGFuZCgpOworICAgICAgICB2YWx1ZXNbKGludClpbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgdG91Y2hCbG9jayhpbmRleCA+PiBCTE9DS1NISUZULCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IG5ldyB2YWx1ZXMgZm9yIGEgcmFuZ2Ugb2YgVW5pY29kZSBjaGFyYWN0ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gZW5kIHRoZSBlbmRpbmcgb2Zmc2V0IG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgbmV3IG1hcHBlZCB2YWx1ZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVsZW1lbnRBdChjaGFyIHN0YXJ0LCBjaGFyIGVuZCwgYnl0ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBpZiAoaXNDb21wYWN0KSB7CisgICAgICAgICAgICBleHBhbmQoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8PSBlbmQ7ICsraSkgeworICAgICAgICAgICAgdmFsdWVzW2ldID0gdmFsdWU7CisgICAgICAgICAgICB0b3VjaEJsb2NrKGkgPj4gQkxPQ0tTSElGVCwgdmFsdWUpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIENvbXBhY3QgdGhlIGFycmF5LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbXBhY3QoKSB7CisgICAgICAgIGNvbXBhY3QoZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhY3QgdGhlIGFycmF5LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbXBhY3QoYm9vbGVhbiBleGhhdXN0aXZlKQorICAgIHsKKyAgICAgICAgaWYgKCFpc0NvbXBhY3QpIHsKKyAgICAgICAgICAgIGludCBsaW1pdENvbXBhY3RlZCA9IDA7CisgICAgICAgICAgICBpbnQgaUJsb2NrU3RhcnQgPSAwOworICAgICAgICAgICAgY2hhciBpVW50b3VjaGVkID0gMHhGRkZGOworCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGljZXMubGVuZ3RoOyArK2ksIGlCbG9ja1N0YXJ0ICs9IEJMT0NLQ09VTlQpIHsKKyAgICAgICAgICAgICAgICBpbmRpY2VzW2ldID0gMHhGRkZGOworICAgICAgICAgICAgICAgIGJvb2xlYW4gdG91Y2hlZCA9IGJsb2NrVG91Y2hlZChpKTsKKyAgICAgICAgICAgICAgICBpZiAoIXRvdWNoZWQgJiYgaVVudG91Y2hlZCAhPSAweEZGRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgbm8gdmFsdWVzIGluIHRoaXMgYmxvY2sgd2VyZSBzZXQsIHdlIGNhbiBqdXN0IHNldCBpdHMKKyAgICAgICAgICAgICAgICAgICAgLy8gaW5kZXggdG8gYmUgdGhlIHNhbWUgYXMgc29tZSBvdGhlciBibG9jayB3aXRoIG5vIHZhbHVlcworICAgICAgICAgICAgICAgICAgICAvLyBzZXQsIGFzc3VtaW5nIHdlJ3ZlIHNlZW4gb25lIHlldC4KKyAgICAgICAgICAgICAgICAgICAgaW5kaWNlc1tpXSA9IGlVbnRvdWNoZWQ7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGpCbG9ja1N0YXJ0ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgaW50IGogPSAwOworICAgICAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgbGltaXRDb21wYWN0ZWQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytqLCBqQmxvY2tTdGFydCArPSBCTE9DS0NPVU5UKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzaGVzW2ldID09IGhhc2hlc1tqXSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheVJlZ2lvbk1hdGNoZXModmFsdWVzLCBpQmxvY2tTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLCBqQmxvY2tTdGFydCwgQkxPQ0tDT1VOVCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2VzW2ldID0gKGNoYXIpakJsb2NrU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGluZGljZXNbaV0gPT0gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBkaWRuJ3QgbWF0Y2gsIHNvIGNvcHkgJiB1cGRhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodmFsdWVzLCBpQmxvY2tTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMsIGpCbG9ja1N0YXJ0LCBCTE9DS0NPVU5UKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGljZXNbaV0gPSAoY2hhcilqQmxvY2tTdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hlc1tqXSA9IGhhc2hlc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrbGltaXRDb21wYWN0ZWQ7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdG91Y2hlZCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhlIGZpcnN0IHVudG91Y2hlZCBibG9jayB3ZSd2ZSBzZWVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbWVtYmVyIGl0cyBpbmRleC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpVW50b3VjaGVkID0gKGNoYXIpakJsb2NrU3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyB3ZSBhcmUgZG9uZSBjb21wYWN0aW5nLCBzbyBub3cgbWFrZSB0aGUgYXJyYXkgc2hvcnRlcgorICAgICAgICAgICAgaW50IG5ld1NpemUgPSBsaW1pdENvbXBhY3RlZCpCTE9DS0NPVU5UOworICAgICAgICAgICAgYnl0ZVtdIHJlc3VsdCA9IG5ldyBieXRlW25ld1NpemVdOworICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weSh2YWx1ZXMsIDAsIHJlc3VsdCwgMCwgbmV3U2l6ZSk7CisgICAgICAgICAgICB2YWx1ZXMgPSByZXN1bHQ7CisgICAgICAgICAgICBpc0NvbXBhY3QgPSB0cnVlOworICAgICAgICAgICAgaGFzaGVzID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHV0aWxpdHkgdG8gY29tcGFyZSB0d28gYXJyYXlzIG9mIGRvdWJsZXMuCisgICAgICogQHBhcmFtIGxlbiB0aGUgbGVuZ3RoIHRvIGNvbXBhcmUuCisgICAgICogVGhlIHN0YXJ0IGluZGljZXMgYW5kIHN0YXJ0K2xlbiBtdXN0IGJlIHZhbGlkLgorICAgICAqLworICAgIGZpbmFsIHN0YXRpYyBib29sZWFuIGFycmF5UmVnaW9uTWF0Y2hlcyhieXRlW10gc291cmNlLCBpbnQgc291cmNlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVbXSB0YXJnZXQsIGludCB0YXJnZXRTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbikKKyAgICB7CisgICAgICAgIGludCBzb3VyY2VFbmQgPSBzb3VyY2VTdGFydCArIGxlbjsKKyAgICAgICAgaW50IGRlbHRhID0gdGFyZ2V0U3RhcnQgLSBzb3VyY2VTdGFydDsKKyAgICAgICAgZm9yIChpbnQgaSA9IHNvdXJjZVN0YXJ0OyBpIDwgc291cmNlRW5kOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChzb3VyY2VbaV0gIT0gdGFyZ2V0W2kgKyBkZWx0YV0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtZW1iZXIgdGhhdCBhIHNwZWNpZmllZCBibG9jayB3YXMgInRvdWNoZWQiLCBpLmUuIGhhZCBhIHZhbHVlIHNldC4KKyAgICAgKiBVbnRvdWNoZWQgYmxvY2tzIGNhbiBiZSBza2lwcGVkIHdoZW4gY29tcGFjdGluZyB0aGUgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIHZvaWQgdG91Y2hCbG9jayhpbnQgaSwgaW50IHZhbHVlKSB7CisgICAgICAgIGhhc2hlc1tpXSA9IChoYXNoZXNbaV0gKyAodmFsdWU8PDEpKSB8IDE7CisgICAgfQorCisgICAgLyoqCisgICAgICogUXVlcnkgd2hldGhlciBhIHNwZWNpZmllZCBibG9jayB3YXMgInRvdWNoZWQiLCBpLmUuIGhhZCBhIHZhbHVlIHNldC4KKyAgICAgKiBVbnRvdWNoZWQgYmxvY2tzIGNhbiBiZSBza2lwcGVkIHdoZW4gY29tcGFjdGluZyB0aGUgYXJyYXkKKyAgICAgKi8KKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gYmxvY2tUb3VjaGVkKGludCBpKSB7CisgICAgICAgIHJldHVybiBoYXNoZXNbaV0gIT0gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuICBEbyBub3QgbW9kaWZ5IHRoZSByZXN1bHQsIHRoZSBiZWhhdmlvciBvZgorICAgICAqIG1vZGlmaWVkIHJlc3VsdHMgYXJlIHVuZGVmaW5lZC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhcltdIGdldEluZGV4QXJyYXkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGluZGljZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogRm9yIGludGVybmFsIHVzZSBvbmx5LiAgRG8gbm90IG1vZGlmeSB0aGUgcmVzdWx0LCB0aGUgYmVoYXZpb3Igb2YKKyAgICAgKiBtb2RpZmllZCByZXN1bHRzIGFyZSB1bmRlZmluZWQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGJ5dGVbXSBnZXRWYWx1ZUFycmF5KCkKKyAgICB7CisgICAgICAgIHJldHVybiB2YWx1ZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENvbXBhY3RCeXRlQXJyYXkgb3RoZXIgPSAoQ29tcGFjdEJ5dGVBcnJheSkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIG90aGVyLnZhbHVlcyA9IChieXRlW10pdmFsdWVzLmNsb25lKCk7CisgICAgICAgICAgICBvdGhlci5pbmRpY2VzID0gKGNoYXJbXSlpbmRpY2VzLmNsb25lKCk7CisgICAgICAgICAgICBpZiAoaGFzaGVzICE9IG51bGwpIG90aGVyLmhhc2hlcyA9IChpbnRbXSloYXNoZXMuY2xvbmUoKTsKKyAgICAgICAgICAgIHJldHVybiBvdGhlcjsKKyAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZXMgdGhlIGVxdWFsaXR5IG9mIHR3byBjb21wYWN0IGFycmF5IG9iamVjdHMuCisgICAgICogQHBhcmFtIG9iaiB0aGUgY29tcGFjdCBhcnJheSBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY3VycmVudCBjb21wYWN0IGFycmF5IG9iamVjdCBpcyB0aGUgc2FtZQorICAgICAqIGFzIHRoZSBjb21wYWN0IGFycmF5IG9iamVjdCBvYmo7IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSAgICAgICAgICAgICAgICAgICAgICAvLyBxdWljayBjaGVjaworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKSAgICAgICAgIC8vIHNhbWUgY2xhc3M/CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIENvbXBhY3RCeXRlQXJyYXkgb3RoZXIgPSAoQ29tcGFjdEJ5dGVBcnJheSkgb2JqOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IFVOSUNPREVDT1VOVDsgaSsrKSB7CisgICAgICAgICAgICAvLyBjb3VsZCBiZSBzcGVkIHVwIGxhdGVyCisgICAgICAgICAgICBpZiAoZWxlbWVudEF0KChjaGFyKWkpICE9IG90aGVyLmVsZW1lbnRBdCgoY2hhcilpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7IC8vIHdlIG1hZGUgaXQgdGhyb3VnaCB0aGUgZ3VhbnRsZXQuCisgICAgfQorCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIHRoZSBoYXNoIGNvZGUgZm9yIHRoZSBjb21wYWN0IGFycmF5IG9iamVjdAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBpbnQgaW5jcmVtZW50ID0gTWF0aC5taW4oMywgdmFsdWVzLmxlbmd0aC8xNik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSs9IGluY3JlbWVudCkgeworICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMzcgKyB2YWx1ZXNbaV07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHByaXZhdGUKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogRXhwYW5kaW5nIHRha2VzIHRoZSBhcnJheSBiYWNrIHRvIGEgNjU1MzYgZWxlbWVudCBhcnJheS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZXhwYW5kKCkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBpZiAoaXNDb21wYWN0KSB7CisgICAgICAgICAgICBieXRlW10gIHRlbXBBcnJheTsKKyAgICAgICAgICAgIGhhc2hlcyA9IG5ldyBpbnRbSU5ERVhDT1VOVF07CisgICAgICAgICAgICB0ZW1wQXJyYXkgPSBuZXcgYnl0ZVtVTklDT0RFQ09VTlRdOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IFVOSUNPREVDT1VOVDsgKytpKSB7CisgICAgICAgICAgICAgICAgYnl0ZSB2YWx1ZSA9IGVsZW1lbnRBdCgoY2hhcilpKTsKKyAgICAgICAgICAgICAgICB0ZW1wQXJyYXlbaV0gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB0b3VjaEJsb2NrKGkgPj4gQkxPQ0tTSElGVCwgdmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IElOREVYQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgICAgIGluZGljZXNbaV0gPSAoY2hhcikoaTw8QkxPQ0tTSElGVCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YWx1ZXMgPSBudWxsOworICAgICAgICAgICAgdmFsdWVzID0gdGVtcEFycmF5OworICAgICAgICAgICAgaXNDb21wYWN0ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyAgZmluYWwgaW50IEJMT0NLU0hJRlQgPTc7CisgICAgcHJpdmF0ZSBzdGF0aWMgIGZpbmFsIGludCBCTE9DS0NPVU5UID0oMTw8QkxPQ0tTSElGVCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgIGZpbmFsIGludCBJTkRFWFNISUZUID0oMTYtQkxPQ0tTSElGVCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgIGZpbmFsIGludCBJTkRFWENPVU5UID0oMTw8SU5ERVhTSElGVCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgIGZpbmFsIGludCBCTE9DS01BU0sgPSBCTE9DS0NPVU5UIC0gMTsKKworICAgIHByaXZhdGUgYnl0ZVtdIHZhbHVlczsKKyAgICBwcml2YXRlIGNoYXIgaW5kaWNlc1tdOworICAgIHByaXZhdGUgaW50W10gaGFzaGVzOworICAgIHByaXZhdGUgYm9vbGVhbiBpc0NvbXBhY3Q7CisgICAgYnl0ZSBkZWZhdWx0VmFsdWU7Cit9OwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29tcGFjdENoYXJBcnJheS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29tcGFjdENoYXJBcnJheS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA0ZGFiZmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Db21wYWN0Q2hhckFycmF5LmphdmEKQEAgLTAsMCArMSwzOTMgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuVXRpbGl0eTsKKworLyoqCisgKiBjbGFzcyBDb21wYWN0QVR5cGVBcnJheSA6IHVzZSBvbmx5IG9uIHByaW1pdGl2ZSBkYXRhIHR5cGVzCisgKiBQcm92aWRlcyBhIGNvbXBhY3Qgd2F5IHRvIHN0b3JlIGluZm9ybWF0aW9uIHRoYXQgaXMgaW5kZXhlZCBieSBVbmljb2RlCisgKiB2YWx1ZXMsIHN1Y2ggYXMgY2hhcmFjdGVyIHByb3BlcnRpZXMsIHR5cGVzLCBrZXlib2FyZCB2YWx1ZXMsIGV0Yy5UaGlzCisgKiBpcyB2ZXJ5IHVzZWZ1bCB3aGVuIHlvdSBoYXZlIGEgYmxvY2sgb2YgVW5pY29kZSBkYXRhIHRoYXQgY29udGFpbnMKKyAqIHNpZ25pZmljYW50IHZhbHVlcyB3aGlsZSB0aGUgcmVzdCBvZiB0aGUgVW5pY29kZSBkYXRhIGlzIHVudXNlZCBpbiB0aGUKKyAqIGFwcGxpY2F0aW9uIG9yIHdoZW4geW91IGhhdmUgYSBsb3Qgb2YgcmVkdW5kYW5jZSwgc3VjaCBhcyB3aGVyZSBhbGwgMjEsMDAwCisgKiBIYW4gaWRlb2dyYXBocyBoYXZlIHRoZSBzYW1lIHZhbHVlLiAgSG93ZXZlciwgbG9va3VwIGlzIG11Y2ggZmFzdGVyIHRoYW4gYQorICogaGFzaCB0YWJsZS4KKyAqIEEgY29tcGFjdCBhcnJheSBvZiBhbnkgcHJpbWl0aXZlIGRhdGEgdHlwZSBzZXJ2ZXMgdHdvIHB1cnBvc2VzOgorICogPFVMIHR5cGUgPSByb3VuZD4KKyAqICAgICA8TEk+RmFzdCBhY2Nlc3Mgb2YgdGhlIGluZGV4ZWQgdmFsdWVzLgorICogICAgIDxMST5TbWFsbGVyIG1lbW9yeSBmb290cHJpbnQuCisgKiA8L1VMPgorICogQSBjb21wYWN0IGFycmF5IGlzIGNvbXBvc2VkIG9mIGEgaW5kZXggYXJyYXkgYW5kIHZhbHVlIGFycmF5LiAgVGhlIGluZGV4CisgKiBhcnJheSBjb250YWlucyB0aGUgaW5kaWNpZXMgb2YgVW5pY29kZSBjaGFyYWN0ZXJzIHRvIHRoZSB2YWx1ZSBhcnJheS4KKyAqIEBzZWUgICAgICAgICAgICAgICAgQ29tcGFjdEJ5dGVBcnJheQorICogQGF1dGhvciAgICAgICAgICAgICBIZWxlbmEgU2hpaAorICogQGludGVybmFsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb21wYWN0Q2hhckFycmF5IGltcGxlbWVudHMgQ2xvbmVhYmxlIHsKKworICAgIC8qKgorICAgICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgVW5pY29kZSBjaGFyYWN0ZXJzLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgIGZpbmFsIGludCBVTklDT0RFQ09VTlQgPSA2NTUzNjsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IgZm9yIENvbXBhY3RDaGFyQXJyYXksIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZQorICAgICAqIGNvbXBhY3QgYXJyYXkgaXMgMC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcGFjdENoYXJBcnJheSgpCisgICAgeworICAgICAgICB0aGlzKChjaGFyKTApOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZvciBDb21wYWN0Q2hhckFycmF5LgorICAgICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RDaGFyQXJyYXkoY2hhciBkZWZhdWx0VmFsdWUpCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgdmFsdWVzID0gbmV3IGNoYXJbVU5JQ09ERUNPVU5UXTsKKyAgICAgICAgaW5kaWNlcyA9IG5ldyBjaGFyW0lOREVYQ09VTlRdOworICAgICAgICBoYXNoZXMgPSBuZXcgaW50W0lOREVYQ09VTlRdOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgVU5JQ09ERUNPVU5UOyArK2kpIHsKKyAgICAgICAgICAgIHZhbHVlc1tpXSA9IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgSU5ERVhDT1VOVDsgKytpKSB7CisgICAgICAgICAgICBpbmRpY2VzW2ldID0gKGNoYXIpKGk8PEJMT0NLU0hJRlQpOworICAgICAgICAgICAgaGFzaGVzW2ldID0gMDsKKyAgICAgICAgfQorICAgICAgICBpc0NvbXBhY3QgPSBmYWxzZTsKKworICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmb3IgQ29tcGFjdENoYXJBcnJheS4KKyAgICAgKiBAcGFyYW0gaW5kZXhBcnJheSB0aGUgaW5kaWNpZXMgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQHBhcmFtIG5ld1ZhbHVlcyB0aGUgdmFsdWVzIG9mIHRoZSBjb21wYWN0IGFycmF5LgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIElmIHRoZSBpbmRleCBpcyBvdXQgb2YgcmFuZ2UuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIENvbXBhY3RDaGFyQXJyYXkoY2hhciBpbmRleEFycmF5W10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgbmV3VmFsdWVzW10pCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgaWYgKGluZGV4QXJyYXkubGVuZ3RoICE9IElOREVYQ09VTlQpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbmRleCBvdXQgb2YgYm91bmRzLiIpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgSU5ERVhDT1VOVDsgKytpKSB7CisgICAgICAgICAgICBjaGFyIGluZGV4ID0gaW5kZXhBcnJheVtpXTsKKyAgICAgICAgICAgIGlmICgoaW5kZXggPCAwKSB8fCAoaW5kZXggPj0gbmV3VmFsdWVzLmxlbmd0aCtCTE9DS0NPVU5UKSkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbmRleCBvdXQgb2YgYm91bmRzLiIpOworICAgICAgICB9CisgICAgICAgIGluZGljZXMgPSBpbmRleEFycmF5OworICAgICAgICB2YWx1ZXMgPSBuZXdWYWx1ZXM7CisgICAgICAgIGlzQ29tcGFjdCA9IHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgZm9yIENvbXBhY3RDaGFyQXJyYXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5kZXhBcnJheSB0aGUgUkxFLWVuY29kZWQgaW5kaWNpZXMgb2YgdGhlIGNvbXBhY3QgYXJyYXkuCisgICAgICogQHBhcmFtIHZhbHVlQXJyYXkgdGhlIFJMRS1lbmNvZGVkIHZhbHVlcyBvZiB0aGUgY29tcGFjdCBhcnJheS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBpbmRleCBvciB2YWx1ZSBhcnJheSBpcworICAgICAqICAgICAgICAgIHRoZSB3cm9uZyBzaXplLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBDb21wYWN0Q2hhckFycmF5KFN0cmluZyBpbmRleEFycmF5LAorICAgICAgICAgICAgICAgIFN0cmluZyB2YWx1ZUFycmF5KQorICAgIHsKKyAgICAgICAgdGhpcyggVXRpbGl0eS5STEVTdHJpbmdUb0NoYXJBcnJheShpbmRleEFycmF5KSwKKyAgICAgICAgICAgICAgVXRpbGl0eS5STEVTdHJpbmdUb0NoYXJBcnJheSh2YWx1ZUFycmF5KSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBtYXBwZWQgdmFsdWUgb2YgYSBVbmljb2RlIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGNoYXJhY3RlciB0byBnZXQgdGhlIG1hcHBlZCB2YWx1ZSB3aXRoCisgICAgICogQHJldHVybiB0aGUgbWFwcGVkIHZhbHVlIG9mIHRoZSBnaXZlbiBjaGFyYWN0ZXIKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBlbGVtZW50QXQoY2hhciBpbmRleCkKKyAgICB7CisgICAgaW50IGl4ID0gKGluZGljZXNbaW5kZXggPj4gQkxPQ0tTSElGVF0gJiAweEZGRkYpCisgICAgICAgICsgKGluZGV4ICYgQkxPQ0tNQVNLKTsKKyAgICByZXR1cm4gaXggPj0gdmFsdWVzLmxlbmd0aCA/IGRlZmF1bHRWYWx1ZSA6IHZhbHVlc1tpeF07CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGEgbmV3IHZhbHVlIGZvciBhIFVuaWNvZGUgY2hhcmFjdGVyLgorICAgICAqIFNldCBhdXRvbWF0aWNhbGx5IGV4cGFuZHMgdGhlIGFycmF5IGlmIGl0IGlzIGNvbXBhY3RlZC4KKyAgICAgKiBAcGFyYW0gaW5kZXggdGhlIGNoYXJhY3RlciB0byBzZXQgdGhlIG1hcHBlZCB2YWx1ZSB3aXRoCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSBuZXcgbWFwcGVkIHZhbHVlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RWxlbWVudEF0KGNoYXIgaW5kZXgsIGNoYXIgdmFsdWUpCisgICAgeworICAgICAgICBpZiAoaXNDb21wYWN0KQorICAgICAgICAgICAgZXhwYW5kKCk7CisgICAgICAgICB2YWx1ZXNbKGludClpbmRleF0gPSB2YWx1ZTsKKyAgICAgICAgdG91Y2hCbG9jayhpbmRleCA+PiBCTE9DS1NISUZULCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IG5ldyB2YWx1ZXMgZm9yIGEgcmFuZ2Ugb2YgVW5pY29kZSBjaGFyYWN0ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gZW5kIHRoZSBlbmRpbmcgb2Zmc2V0IG9mIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgbmV3IG1hcHBlZCB2YWx1ZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVsZW1lbnRBdChjaGFyIHN0YXJ0LCBjaGFyIGVuZCwgY2hhciB2YWx1ZSkKKyAgICB7CisgICAgICAgIGludCBpOworICAgICAgICBpZiAoaXNDb21wYWN0KSB7CisgICAgICAgICAgICBleHBhbmQoKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8PSBlbmQ7ICsraSkgeworICAgICAgICAgICAgdmFsdWVzW2ldID0gdmFsdWU7CisgICAgICAgICAgICB0b3VjaEJsb2NrKGkgPj4gQkxPQ0tTSElGVCwgdmFsdWUpOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIENvbXBhY3QgdGhlIGFycmF5CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHZvaWQgY29tcGFjdCgpIHsKKyAgICAgICAgY29tcGFjdCh0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYWN0IHRoZSBhcnJheS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb21wYWN0KGJvb2xlYW4gZXhoYXVzdGl2ZSkKKyAgICB7CisgICAgICAgIGlmICghaXNDb21wYWN0KSB7CisgICAgICAgICAgICBpbnQgaUJsb2NrU3RhcnQgPSAwOworICAgICAgICAgICAgY2hhciBpVW50b3VjaGVkID0gMHhGRkZGOworICAgICAgICAgICAgaW50IG5ld1NpemUgPSAwOworCisgICAgICAgICAgICBjaGFyW10gdGFyZ2V0ID0gZXhoYXVzdGl2ZSA/IG5ldyBjaGFyW1VOSUNPREVDT1VOVF0gOiB2YWx1ZXM7CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kaWNlcy5sZW5ndGg7ICsraSwgaUJsb2NrU3RhcnQgKz0gQkxPQ0tDT1VOVCkgeworICAgICAgICAgICAgICAgIGluZGljZXNbaV0gPSAweEZGRkY7CisgICAgICAgICAgICAgICAgYm9vbGVhbiB0b3VjaGVkID0gYmxvY2tUb3VjaGVkKGkpOworICAgICAgICAgICAgICAgIGlmICghdG91Y2hlZCAmJiBpVW50b3VjaGVkICE9IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICAvLyBJZiBubyB2YWx1ZXMgaW4gdGhpcyBibG9jayB3ZXJlIHNldCwgd2UgY2FuIGp1c3Qgc2V0IGl0cworICAgICAgICAgICAgICAgICAgICAvLyBpbmRleCB0byBiZSB0aGUgc2FtZSBhcyBzb21lIG90aGVyIGJsb2NrIHdpdGggbm8gdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIC8vIHNldCwgYXNzdW1pbmcgd2UndmUgc2VlbiBvbmUgeWV0LgorICAgICAgICAgICAgICAgICAgICBpbmRpY2VzW2ldID0gaVVudG91Y2hlZDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpbnQgakJsb2NrU3RhcnQgPSAwOworICAgICAgICAgICAgICAgICAgICAvLyBTZWUgaWYgd2UgY2FuIGZpbmQgYSBwcmV2aW91c2x5IGNvbXBhY3RlZCBibG9jayB0aGF0J3MgaWRlbnRpY2FsCisgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgaTsgKytqLCBqQmxvY2tTdGFydCArPSBCTE9DS0NPVU5UKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzaGVzW2ldID09IGhhc2hlc1tqXSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheVJlZ2lvbk1hdGNoZXModmFsdWVzLCBpQmxvY2tTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcywgakJsb2NrU3RhcnQsIEJMT0NLQ09VTlQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNlc1tpXSA9IGluZGljZXNbal07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGluZGljZXNbaV0gPT0gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdDsgICAvLyBXaGVyZSB0byBjb3B5CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhoYXVzdGl2ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlZSBpZiB3ZSBjYW4gZmluZCBzb21lIG92ZXJsYXAgd2l0aCBhbm90aGVyIGJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdCA9IEZpbmRPdmVybGFwcGluZ1Bvc2l0aW9uKGlCbG9ja1N0YXJ0LCB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTaXplKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSnVzdCBjb3B5IHRvIHRoZSBlbmQ7IGl0J3MgcXVpY2tlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3QgPSBuZXdTaXplOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0ID0gZGVzdCArIEJMT0NLQ09VTlQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGltaXQgPiBuZXdTaXplKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IG5ld1NpemU7IGogPCBsaW1pdDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFtqXSA9IHZhbHVlc1tpQmxvY2tTdGFydCArIGogLSBkZXN0XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U2l6ZSA9IGxpbWl0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNlc1tpXSA9IChjaGFyKWRlc3Q7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRvdWNoZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSBmaXJzdCB1bnRvdWNoZWQgYmxvY2sgd2UndmUgc2VlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZW1lbWJlciBpdHMgaW5kZXguCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaVVudG91Y2hlZCA9IChjaGFyKWpCbG9ja1N0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gd2UgYXJlIGRvbmUgY29tcGFjdGluZywgc28gbm93IG1ha2UgdGhlIGFycmF5IHNob3J0ZXIKKyAgICAgICAgICAgIGNoYXJbXSByZXN1bHQgPSBuZXcgY2hhcltuZXdTaXplXTsKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkodGFyZ2V0LCAwLCByZXN1bHQsIDAsIG5ld1NpemUpOworICAgICAgICAgICAgdmFsdWVzID0gcmVzdWx0OworICAgICAgICAgICAgaXNDb21wYWN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIGhhc2hlcyA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBGaW5kT3ZlcmxhcHBpbmdQb3NpdGlvbihpbnQgc3RhcnQsIGNoYXJbXSB0ZW1wVmFsdWVzLCBpbnQgdGVtcENvdW50KQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZW1wQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgaW50IGN1cnJlbnRDb3VudCA9IEJMT0NLQ09VTlQ7CisgICAgICAgICAgICBpZiAoaSArIEJMT0NLQ09VTlQgPiB0ZW1wQ291bnQpIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50Q291bnQgPSB0ZW1wQ291bnQgLSBpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFycmF5UmVnaW9uTWF0Y2hlcyh2YWx1ZXMsIHN0YXJ0LCB0ZW1wVmFsdWVzLCBpLCBjdXJyZW50Q291bnQpKQorICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0ZW1wQ291bnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgdXRpbGl0eSB0byBjb21wYXJlIHR3byBhcnJheXMgb2YgZG91Ymxlcy4KKyAgICAgKiBAcGFyYW0gbGVuIHRoZSBsZW5ndGggdG8gY29tcGFyZS4KKyAgICAgKiBUaGUgc3RhcnQgaW5kaWNlcyBhbmQgc3RhcnQrbGVuIG11c3QgYmUgdmFsaWQuCisgICAgICovCisgICAgZmluYWwgc3RhdGljIGJvb2xlYW4gYXJyYXlSZWdpb25NYXRjaGVzKGNoYXJbXSBzb3VyY2UsIGludCBzb3VyY2VTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHRhcmdldCwgaW50IHRhcmdldFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuKQorICAgIHsKKyAgICAgICAgaW50IHNvdXJjZUVuZCA9IHNvdXJjZVN0YXJ0ICsgbGVuOworICAgICAgICBpbnQgZGVsdGEgPSB0YXJnZXRTdGFydCAtIHNvdXJjZVN0YXJ0OworICAgICAgICBmb3IgKGludCBpID0gc291cmNlU3RhcnQ7IGkgPCBzb3VyY2VFbmQ7IGkrKykgeworICAgICAgICAgICAgaWYgKHNvdXJjZVtpXSAhPSB0YXJnZXRbaSArIGRlbHRhXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1lbWJlciB0aGF0IGEgc3BlY2lmaWVkIGJsb2NrIHdhcyAidG91Y2hlZCIsIGkuZS4gaGFkIGEgdmFsdWUgc2V0LgorICAgICAqIFVudG91Y2hlZCBibG9ja3MgY2FuIGJlIHNraXBwZWQgd2hlbiBjb21wYWN0aW5nIHRoZSBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgdm9pZCB0b3VjaEJsb2NrKGludCBpLCBpbnQgdmFsdWUpIHsKKyAgICAgICAgaGFzaGVzW2ldID0gKGhhc2hlc1tpXSArICh2YWx1ZTw8MSkpIHwgMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBRdWVyeSB3aGV0aGVyIGEgc3BlY2lmaWVkIGJsb2NrIHdhcyAidG91Y2hlZCIsIGkuZS4gaGFkIGEgdmFsdWUgc2V0LgorICAgICAqIFVudG91Y2hlZCBibG9ja3MgY2FuIGJlIHNraXBwZWQgd2hlbiBjb21wYWN0aW5nIHRoZSBhcnJheQorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBibG9ja1RvdWNoZWQoaW50IGkpIHsKKyAgICAgICAgcmV0dXJuIGhhc2hlc1tpXSAhPSAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZvciBpbnRlcm5hbCB1c2Ugb25seS4gIERvIG5vdCBtb2RpZnkgdGhlIHJlc3VsdCwgdGhlIGJlaGF2aW9yIG9mCisgICAgICogbW9kaWZpZWQgcmVzdWx0cyBhcmUgdW5kZWZpbmVkLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBjaGFyW10gZ2V0SW5kZXhBcnJheSgpCisgICAgeworICAgICAgICByZXR1cm4gaW5kaWNlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuICBEbyBub3QgbW9kaWZ5IHRoZSByZXN1bHQsIHRoZSBiZWhhdmlvciBvZgorICAgICAqIG1vZGlmaWVkIHJlc3VsdHMgYXJlIHVuZGVmaW5lZC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhcltdIGdldFZhbHVlQXJyYXkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZXMgQ2xvbmVhYmxlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ29tcGFjdENoYXJBcnJheSBvdGhlciA9IChDb21wYWN0Q2hhckFycmF5KSBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgb3RoZXIudmFsdWVzID0gKGNoYXJbXSl2YWx1ZXMuY2xvbmUoKTsKKyAgICAgICAgICAgIG90aGVyLmluZGljZXMgPSAoY2hhcltdKWluZGljZXMuY2xvbmUoKTsKKyAgICAgICAgICAgIGlmIChoYXNoZXMgIT0gbnVsbCkgb3RoZXIuaGFzaGVzID0gKGludFtdKWhhc2hlcy5jbG9uZSgpOworICAgICAgICAgICAgcmV0dXJuIG90aGVyOworICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlcyB0aGUgZXF1YWxpdHkgb2YgdHdvIGNvbXBhY3QgYXJyYXkgb2JqZWN0cy4KKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBjb21wYWN0IGFycmF5IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjdXJyZW50IGNvbXBhY3QgYXJyYXkgb2JqZWN0IGlzIHRoZSBzYW1lCisgICAgICogYXMgdGhlIGNvbXBhY3QgYXJyYXkgb2JqZWN0IG9iajsgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAodGhpcyA9PSBvYmopICAgICAgICAgICAgICAgICAgICAgIC8vIHF1aWNrIGNoZWNrCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGdldENsYXNzKCkgIT0gb2JqLmdldENsYXNzKCkpICAgICAgICAgLy8gc2FtZSBjbGFzcz8KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgQ29tcGFjdENoYXJBcnJheSBvdGhlciA9IChDb21wYWN0Q2hhckFycmF5KSBvYmo7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVU5JQ09ERUNPVU5UOyBpKyspIHsKKyAgICAgICAgICAgIC8vIGNvdWxkIGJlIHNwZWQgdXAgbGF0ZXIKKyAgICAgICAgICAgIGlmIChlbGVtZW50QXQoKGNoYXIpaSkgIT0gb3RoZXIuZWxlbWVudEF0KChjaGFyKWkpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gd2UgbWFkZSBpdCB0aHJvdWdoIHRoZSBndWFudGxldC4KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgdGhlIGhhc2ggY29kZSBmb3IgdGhlIGNvbXBhY3QgYXJyYXkgb2JqZWN0CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IDA7CisgICAgICAgIGludCBpbmNyZW1lbnQgPSBNYXRoLm1pbigzLCB2YWx1ZXMubGVuZ3RoLzE2KTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKz0gaW5jcmVtZW50KSB7CisgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKiAzNyArIHZhbHVlc1tpXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBwcml2YXRlCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEV4cGFuZGluZyB0YWtlcyB0aGUgYXJyYXkgYmFjayB0byBhIDY1NTM2IGVsZW1lbnQgYXJyYXkuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGV4cGFuZCgpCisgICAgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgaWYgKGlzQ29tcGFjdCkgeworICAgICAgICAgICAgY2hhcltdIHRlbXBBcnJheTsKKyAgICAgICAgICAgIGhhc2hlcyA9IG5ldyBpbnRbSU5ERVhDT1VOVF07CisgICAgICAgICAgICB0ZW1wQXJyYXkgPSBuZXcgY2hhcltVTklDT0RFQ09VTlRdOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IFVOSUNPREVDT1VOVDsgKytpKSB7CisgICAgICAgICAgICAgICAgdGVtcEFycmF5W2ldID0gZWxlbWVudEF0KChjaGFyKWkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IElOREVYQ09VTlQ7ICsraSkgeworICAgICAgICAgICAgICAgIGluZGljZXNbaV0gPSAoY2hhcikoaTw8QkxPQ0tTSElGVCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YWx1ZXMgPSBudWxsOworICAgICAgICAgICAgdmFsdWVzID0gdGVtcEFycmF5OworICAgICAgICAgICAgaXNDb21wYWN0ID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyAgZmluYWwgaW50IEJMT0NLU0hJRlQgPSA1OyAvLyBOb3JtYWxpemVyQnVpbGRlciBuZWVkcyAtIGxpdQorICAgIHN0YXRpYyAgZmluYWwgaW50IEJMT0NLQ09VTlQgPSgxPDxCTE9DS1NISUZUKTsKKyAgICBzdGF0aWMgIGZpbmFsIGludCBJTkRFWFNISUZUID0oMTYtQkxPQ0tTSElGVCk7CisgICAgc3RhdGljICBmaW5hbCBpbnQgSU5ERVhDT1VOVCA9KDE8PElOREVYU0hJRlQpOworICAgIHN0YXRpYyAgZmluYWwgaW50IEJMT0NLTUFTSyA9IEJMT0NLQ09VTlQgLSAxOworCisgICAgcHJpdmF0ZSBjaGFyIHZhbHVlc1tdOworICAgIHByaXZhdGUgY2hhciBpbmRpY2VzW107CisgICAgcHJpdmF0ZSBpbnRbXSBoYXNoZXM7CisgICAgcHJpdmF0ZSBib29sZWFuIGlzQ29tcGFjdDsKKyAgICBjaGFyIGRlZmF1bHRWYWx1ZTsKK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9Db3B0aWNDYWxlbmRhci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29wdGljQ2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTY5OTFkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ29wdGljQ2FsZW5kYXIuamF2YQpAQCAtMCwwICsxLDI5NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICAgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogSW1wbGVtZW50IHRoZSBDb3B0aWMgY2FsZW5kYXIgc3lzdGVtLgorICogPHA+CisgKiBDb3B0aWNDYWxlbmRhciB1c3VhbGx5IHNob3VsZCBiZSBpbnN0YW50aWF0ZWQgdXNpbmcgCisgKiB7QGxpbmsgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhciNnZXRJbnN0YW5jZShVTG9jYWxlKX0gcGFzc2luZyBpbiBhIDxjb2RlPlVMb2NhbGU8L2NvZGU+CisgKiB3aXRoIHRoZSB0YWcgPGNvZGU+IkBjYWxlbmRhcj1jb3B0aWMiPC9jb2RlPi48L3A+CisgKgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyCisgKiBAZHJhZnQgSUNVIDMuNAorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb3B0aWNDYWxlbmRhciBleHRlbmRzIENFQ2FsZW5kYXIgCit7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gNTkwMzgxODc1MTg0Njc0MjkxMUw7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDNjOVx1MDNiZlx1MDNiM1x1MDNjNC9cdTA2MmFcdWZlZWVcdWZlOTcsCisgICAgICogdGhlIDFzdCBtb250aCBvZiB0aGUgQ29wdGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVE9VVCA9IDA7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDNhMFx1MDNiMVx1MDNiZlx1MDNjMFx1MDNiOS9cdWZlZWFcdWZlOTFcdWZlOGVcdWZlOTEsCisgICAgICogdGhlIDJuZCBtb250aCBvZiB0aGUgQ29wdGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFCQSA9IDE7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDM5MVx1MDNiOFx1MDNiZlx1MDNjMS9cdTA2MzFcdWZlZWVcdWZlOTdcdWZlOGVcdWZlZWIsCisgICAgICogdGhlIDNyZCBtb250aCBvZiB0aGUgQ29wdGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFUT1IgPSAyOworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTAzYTdcdTAzYmZcdTAzYjlcdTAzYjFcdTAzYmEvXHVmZWRhXHVmZWVjXHVmZWY0XHVmZWRiLAorICAgICAqIHRoZSA0dGggbW9udGggb2YgdGhlIENvcHRpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEtJQUhLID0gMzsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUwM2E0XHUwM2M5XHUwM2IyXHUwM2I5L1x1MDYzN1x1ZmVlZVx1ZmU5Mlx1ZmVlYiwKKyAgICAgKiB0aGUgNXRoIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUT0JBID0gNDsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUwMzljXHUwM2I1XHUwM2UzXHUwM2I5XHUwM2MxL1x1ZmVhZVx1ZmVmNFx1ZmViOFx1ZmVlM1x1MDYyMywKKyAgICAgKiB0aGUgNnRoIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTVNISVIgPSA1OworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTAzYTBcdTAzYjFcdTAzYzFcdTAzYjVcdTAzYmNcdTAzZTlcdTAzYjFcdTAzYzQvXHUwNjJhXHVmZThlXHVmZWVjXHVmZWUzXHVmZWFlXHVmZTkxLAorICAgICAqIHRoZSA3dGggbW9udGggb2YgdGhlIENvcHRpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJBUkFNSEFUID0gNjsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUwM2E2XHUwM2IxXHUwM2MxXHUwM2JjXHUwM2JmXHUwM2I4XHUwM2I5L1x1MDY0N1x1MDYyZlx1ZmVlZVx1ZmVlM1x1ZmVhZVx1ZmU5MSwgCisgICAgICogdGhlIDh0aCBtb250aCBvZiB0aGUgQ29wdGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFSQU1PVURBID0gNzsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUwM2EwXHUwM2IxXHUwM2UzXHUwM2IxXHUwM2JkL1x1ZmViMlx1ZmVlOFx1ZmViOFx1ZmU5MSwgCisgICAgICogdGhlIDl0aCBtb250aCBvZiB0aGUgQ29wdGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQkFTSEFOUyA9IDg7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDNhMFx1MDNiMVx1MDNjOVx1MDNiZFx1MDNiOS9cdWZlZWFcdWZlZTdcdTA2MjRcdWZlZWVcdWZlOTEsIAorICAgICAqIHRoZSAxMHRoIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQQU9OQSA9IDk7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDM5NVx1MDNjMFx1MDNiN1x1MDNjMC9cdWZlOTBcdWZlZjRcdWZlOTFcdTA2MjMsIAorICAgICAqIHRoZSAxMXRoIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUEVQID0gMTA7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MDM5Y1x1MDNiNVx1MDNmMlx1MDNjOVx1MDNjMVx1MDNiNy9cdTA2NDlcdWZlYWVcdWZlYjRcdWZlZTMsIAorICAgICAqIHRoZSAxMnRoIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRVNSQSA9IDExOworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTAzYTBcdTAzYjlcdTAzYmFcdTAzYmZcdTAzYjNcdTAzZWJcdTAzYjkgCisgICAgICogXHUwM2JjXHUwM2IxXHUwM2IyXHUwM2JmXHUwM2M0L1x1ZmVhZVx1ZmVmNFx1ZmVkMFx1ZmViY1x1ZmVkZlx1MDYyNyAKKyAgICAgKiBcdWZlYWVcdWZlZWNcdWZlYjhcdWZlZGZcdTA2MjcsIAorICAgICAqIHRoZSAxM3RoIG1vbnRoIG9mIHRoZSBDb3B0aWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOQVNJRSA9IDEyOworICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSkRfRVBPQ0hfT0ZGU0VUICA9IDE4MjQ2NjU7CisKKyAgICAvLyBpbml0IGJhc2UgY2xhc3MgdmFsdWUsIGNvbW1vbiB0byBhbGwgY29uc3RydWN0b3JzCisgICAgeworICAgICAgICBqZEVwb2NoT2Zmc2V0ID0gSkRfRVBPQ0hfT0ZGU0VUOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBkZWZhdWx0IDxjb2RlPkNvcHRpY0NhbGVuZGFyPC9jb2RlPiB1c2luZyB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29wdGljQ2FsZW5kYXIoKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNvcHRpY0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIFRoZSB0aW1lIHpvbmUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDb3B0aWNDYWxlbmRhcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIHN1cGVyKHpvbmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Db3B0aWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYUxvY2FsZSBUaGUgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENvcHRpY0NhbGVuZGFyKExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Db3B0aWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBpY3UgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29wdGljQ2FsZW5kYXIoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgc3VwZXIobG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q29wdGljQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIFRoZSB0aW1lIHpvbmUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIGFMb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENvcHRpY0NhbGVuZGFyKFRpbWVab25lIHpvbmUsIExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGFMb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+Q29wdGljQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6b25lIFRoZSB0aW1lIHpvbmUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgaWN1IGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIENvcHRpY0NhbGVuZGFyKFRpbWVab25lIHpvbmUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGxvY2FsZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5Db3B0aWNDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIFRvdXQuCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNEQVRFIERBVEV9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDb3B0aWNDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkgeworICAgICAgICBzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNvcHRpY0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIGRhdGUgdG8gd2hpY2ggdGhlIG5ldyBjYWxlbmRhciBpcyBzZXQuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDb3B0aWNDYWxlbmRhcihEYXRlIGRhdGUpIHsKKyAgICAgICAgc3VwZXIoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkNvcHRpY0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlCisgICAgICogYW5kIHRpbWUgc2V0IGZvciB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIFRvdXQuCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNEQVRFIERBVEV9IHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIGhvdXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNIT1VSX09GX0RBWSBIT1VSX09GX0RBWX0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbWludXRlICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01JTlVURSBNSU5VVEV9IHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIHNlY29uZCAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNTRUNPTkQgU0VDT05EfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29wdGljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWludXRlLCBpbnQgc2Vjb25kKSB7CisgICAgICAgIHN1cGVyKHllYXIsIG1vbnRoLCBkYXRlLCBob3VyLCBtaW51dGUsIHNlY29uZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhbiBDb3B0aWMgeWVhciwgbW9udGgsIGFuZCBkYXkgdG8gYSBKdWxpYW4gZGF5LgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgdGhlIHllYXIKKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIG1vbnRoCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGRheQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb3B0aWNUb0pEKGxvbmcgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkgeworICAgICAgICByZXR1cm4gY2VUb0pEKHllYXIsIG1vbnRoLCBkYXRlLCBKRF9FUE9DSF9PRkZTRVQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSW50ZWdlcltdIGdldERhdGVGcm9tSkQoaW50IGp1bGlhbkRheSkgeworICAgICAgICByZXR1cm4gZ2V0RGF0ZUZyb21KRChqdWxpYW5EYXksIEpEX0VQT0NIX09GRlNFVCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IENhbGVuZGFyIHR5cGUuCisgICAgICogQHJldHVybiB0eXBlIG9mIGNhbGVuZGFyIChncmVnb3JpYW4sIGV0Yy4pCisgICAgICogQGludGVybmFsIElDVSAzLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiAiY29wdGljIjsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0N1cnJlbmN5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DdXJyZW5jeS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjZGQ5NGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9DdXJyZW5jeS5qYXZhCkBAIC0wLDAgKzEsNzUyIEBACisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEudGV4dC5DaG9pY2VGb3JtYXQ7CitpbXBvcnQgamF2YS50ZXh0LlBhcnNlUG9zaXRpb247CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VEZWJ1ZzsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuTG9jYWxlVXRpbGl0eTsKKworLyoqCisgKiBBIGNsYXNzIGVuY2Fwc3VsYXRpbmcgYSBjdXJyZW5jeSwgYXMgZGVmaW5lZCBieSBJU08gNDIxNy4gIEEKKyAqIDx0dD5DdXJyZW5jeTwvdHQ+IG9iamVjdCBjYW4gYmUgY3JlYXRlZCBnaXZlbiBhIDx0dD5Mb2NhbGU8L3R0PiBvcgorICogZ2l2ZW4gYW4gSVNPIDQyMTcgY29kZS4gIE9uY2UgY3JlYXRlZCwgdGhlIDx0dD5DdXJyZW5jeTwvdHQ+IG9iamVjdAorICogY2FuIHJldHVybiB2YXJpb3VzIGRhdGEgbmVjZXNzYXJ5IHRvIGl0cyBwcm9wZXIgZGlzcGxheToKKyAqCisgKiA8dWw+PGxpPkEgZGlzcGxheSBzeW1ib2wsIGZvciBhIHNwZWNpZmljIGxvY2FsZQorICogPGxpPlRoZSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzIHRvIGRpc3BsYXkKKyAqIDxsaT5BIHJvdW5kaW5nIGluY3JlbWVudAorICogPC91bD4KKyAqCisgKiBUaGUgPHR0PkRlY2ltYWxGb3JtYXQ8L3R0PiBjbGFzcyB1c2VzIHRoZXNlIGRhdGEgdG8gZGlzcGxheQorICogY3VycmVuY2llcy4KKyAqCisgKiA8cD5Ob3RlOiBUaGlzIGNsYXNzIGRlbGliZXJhdGVseSByZXNlbWJsZXMKKyAqIDx0dD5qYXZhLnV0aWwuQ3VycmVuY3k8L3R0PiBidXQgaXQgaGFzIGEgY29tcGxldGVseSBpbmRlcGVuZGVudAorICogaW1wbGVtZW50YXRpb24sIGFuZCBhZGRzIGZlYXR1cmVzIG5vdCBwcmVzZW50IGluIHRoZSBKREsuCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjIKKyAqLworcHVibGljIGNsYXNzIEN1cnJlbmN5IGV4dGVuZHMgTWVhc3VyZVVuaXQgaW1wbGVtZW50cyBTZXJpYWxpemFibGUgeworICAgIC8vIHVzaW5nIHNlcmlhbHZlciBmcm9tIGpkazEuNC4yXzA1CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTU4Mzk5NzM4NTU1NTQ3NTA0ODRMOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gREVCVUcgPSBJQ1VEZWJ1Zy5lbmFibGVkKCJjdXJyZW5jeSIpOworICAgIC8qKgorICAgICAqIElTTyA0MjE3IDMtbGV0dGVyIGNvZGUuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgaXNvQ29kZTsKKworICAgIC8qKgorICAgICAqIFNlbGVjdG9yIGZvciBnZXROYW1lKCkgaW5kaWNhdGluZyBhIHN5bWJvbGljIG5hbWUgZm9yIGEKKyAgICAgKiBjdXJyZW5jeSwgc3VjaCBhcyAiJCIgZm9yIFVTRC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTWU1CT0xfTkFNRSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3RvciBmb3IgdWN1cnJfZ2V0TmFtZSBpbmRpY2F0aW5nIHRoZSBsb25nIG5hbWUgZm9yIGEKKyAgICAgKiBjdXJyZW5jeSwgc3VjaCBhcyAiVVMgRG9sbGFyIiBmb3IgVVNELgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IExPTkdfTkFNRSA9IDE7CisKKyAgICAvLyBiZWdpbiByZWdpc3RyeSBzdHVmZgorCisgICAgLy8gc2hpbSBmb3Igc2VydmljZSBjb2RlCisgICAgLyogcGFja2FnZSAqLyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgU2VydmljZVNoaW0geworICAgICAgICBhYnN0cmFjdCBVTG9jYWxlW10gZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgYWJzdHJhY3QgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpOworICAgICAgICBhYnN0cmFjdCBDdXJyZW5jeSBjcmVhdGVJbnN0YW5jZShVTG9jYWxlIGwpOworICAgICAgICBhYnN0cmFjdCBPYmplY3QgcmVnaXN0ZXJJbnN0YW5jZShDdXJyZW5jeSBjLCBVTG9jYWxlIGwpOworICAgICAgICBhYnN0cmFjdCBib29sZWFuIHVucmVnaXN0ZXIoT2JqZWN0IGYpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFNlcnZpY2VTaGltIHNoaW07CisgICAgcHJpdmF0ZSBzdGF0aWMgU2VydmljZVNoaW0gZ2V0U2hpbSgpIHsKKyAgICAgICAgLy8gTm90ZTogdGhpcyBpbnN0YW50aWF0aW9uIGlzIHNhZmUgb24gbG9vc2UtbWVtb3J5LW1vZGVsIGNvbmZpZ3VyYXRpb25zCisgICAgICAgIC8vIGRlc3BpdGUgbGFjayBvZiBzeW5jaHJvbml6YXRpb24sIHNpbmNlIHRoZSBzaGltIGluc3RhbmNlIGhhcyBubyBzdGF0ZS0tCisgICAgICAgIC8vIGl0J3MgYWxsIGluIHRoZSBjbGFzcyBpbml0LiAgVGhlIHdvcnN0IHByb2JsZW0gaXMgd2UgbWlnaHQgaW5zdGFudGlhdGUKKyAgICAgICAgLy8gdHdvIHNoaW0gaW5zdGFuY2VzLCBidXQgdGhleSdsbCBzaGFyZSB0aGUgc2FtZSBzdGF0ZSBzbyB0aGF0J3Mgb2suCisgICAgICAgIGlmIChzaGltID09IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgQ2xhc3MgY2xzID0gQ2xhc3MuZm9yTmFtZSgiY29tLmlibS5pY3UudXRpbC5DdXJyZW5jeVNlcnZpY2VTaGltIik7CisgICAgICAgICAgICAgICAgc2hpbSA9IChTZXJ2aWNlU2hpbSljbHMubmV3SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmKERFQlVHKXsKKyAgICAgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS5nZXRNZXNzYWdlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBzaGltOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBjdXJyZW5jeSBvYmplY3QgZm9yIHRoZSBkZWZhdWx0IGN1cnJlbmN5IGluIHRoZSBnaXZlbgorICAgICAqIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUKKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW5jeSBvYmplY3QgZm9yIHRoaXMgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBDdXJyZW5jeSBnZXRJbnN0YW5jZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXRJbnN0YW5jZShVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY3VycmVuY3kgb2JqZWN0IGZvciB0aGUgZGVmYXVsdCBjdXJyZW5jeSBpbiB0aGUgZ2l2ZW4KKyAgICAgKiBsb2NhbGUuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEN1cnJlbmN5IGdldEluc3RhbmNlKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgU3RyaW5nIGN1cnJlbmN5ID0gbG9jYWxlLmdldEtleXdvcmRWYWx1ZSgiY3VycmVuY3kiKTsKKyAgICBpZiAoY3VycmVuY3kgIT0gbnVsbCkgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UoY3VycmVuY3kpOworICAgIH0KKworICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlQ3VycmVuY3kobG9jYWxlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzaGltLmNyZWF0ZUluc3RhbmNlKGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5zdGFudGlhdGUgYSBjdXJyZW5jeSBmcm9tIGEgcmVzb3VyY2UgYnVuZGxlIGZvdW5kIGluIExvY2FsZSBsb2MuCisgICAgICovCisgICAgLyogcGFja2FnZSAqLyBzdGF0aWMgQ3VycmVuY3kgY3JlYXRlQ3VycmVuY3koVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgLy8gVE9ETzogY2hlY2ssIHRoaXMgbXVuZ2luZyBtaWdodCBub3QgYmUgcmVxdWlyZWQgZm9yIFVMb2NhbGUKKyAgICAgICAgU3RyaW5nIGNvdW50cnkgPSBsb2MuZ2V0Q291bnRyeSgpOworICAgICAgICBTdHJpbmcgdmFyaWFudCA9IGxvYy5nZXRWYXJpYW50KCk7CisgICAgICAgIGlmICh2YXJpYW50LmVxdWFscygiUFJFRVVSTyIpIHx8IHZhcmlhbnQuZXF1YWxzKCJFVVJPIikpIHsKKyAgICAgICAgICAgIGNvdW50cnkgPSBjb3VudHJ5ICsgJ18nICsgdmFyaWFudDsKKyAgICAgICAgfQorICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpIElDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIkN1cnJlbmN5RGF0YSIsIElDVVJlc291cmNlQnVuZGxlLklDVV9EQVRBX0NMQVNTX0xPQURFUik7CisgICAgICAgIGlmKGJ1bmRsZT09bnVsbCl7CisgICAgICAgICAgICAvL3Rocm93IG5ldyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24oKQorICAgICAgICB9CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGNtID0gYnVuZGxlLmdldCgiQ3VycmVuY3lNYXAiKTsKKworICAgICAgICAvLyBEbyBhIGxpbmVhciBzZWFyY2gKKyAgICAgICAgU3RyaW5nIGN1cnJpc28gPSBudWxsOworICAgICAgICB0cnkgeworICAgICAgICAgICAgY3VycmlzbyA9IGNtLmdldFN0cmluZyhjb3VudHJ5KTsKKyAgICAgICAgICAgIGlmIChjdXJyaXNvICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEN1cnJlbmN5KGN1cnJpc28pOworICAgICAgICAgICAgfQorICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAvLyBhIGRlcHJlY2F0ZWQgSVNPIGNvZGUgbWF5IGhhdmUgYmVlbiBwYXNzZWQKKyAgICAgICAgICAgICAgICAvLyB0cnkgdG8gZ2V0IHRoZSBjdXJyZW50IGNvdW50cnkgY29kZQorICAgICAgICAgICAgICAgIFN0cmluZyByZXAgPSBVTG9jYWxlLmdldEN1cnJlbnRDb3VudHJ5SUQoY291bnRyeSk7CisgICAgICAgICAgICAgICAgaWYoREVCVUcpIFN5c3RlbS5vdXQucHJpbnRsbigiREVCVUc6IG9sZElEOiAiK2NvdW50cnkgKyIgbmV3SUQ6IiArcmVwKTsKKyAgICAgICAgICAgICAgICAvLyBoZXJlIHBvaW50ZXIgY29tcGFyaXNvbiBpcyB2YWxpZCBzaW5jZSBnZXRDdXJyZW50Q291bnRyeUlECisgICAgICAgICAgICAgICAgLy8gd2lsbCByZXR1cm4gdGhlIGlucHV0IHN0cmluZyBpZiB0aGVyZSBpcyBubyByZXBsYWNlbWVudAorICAgICAgICAgICAgICAgIGlmKHJlcCAhPSBjb3VudHJ5KXsKKyAgICAgICAgICAgICAgICAgICAgY3VycmlzbyA9IGNtLmdldFN0cmluZyhyZXApOworICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmlzbyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEN1cnJlbmN5KGN1cnJpc28pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfWNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgICAgICAvL2RvIG5vdGhpbmcKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgLyoKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGNtLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoY291bnRyeS5lcXVhbHMoKFN0cmluZykgY21baV1bMF0pKSB7CisgICAgICAgICAgICAgICAgY3VycmlzbyA9IChTdHJpbmcpIGNtW2ldWzFdOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQ3VycmVuY3kgY3VyciA9IG51bGw7CisgICAgICAgIGlmIChjdXJyaXNvICE9IG51bGwpIHsKKworICAgICAgICAgICAgY3VyciA9IG5ldyBDdXJyZW5jeShjdXJyaXNvKTsKKworICAgICAgICAgICAgLy8gVE9ETzogRGV0ZXJtaW5lIHZhbGlkIGFuZCBhY3R1YWwgbG9jYWxlIGNvcnJlY3RseS4KKyAgICAgICAgICAgIFVMb2NhbGUgdWxvYyA9IGJ1bmRsZS5nZXRVTG9jYWxlKCk7CisgICAgICAgICAgICBjdXJyLnNldExvY2FsZSh1bG9jLCB1bG9jKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY3VycjsKKyAgICAgICAgKi8KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgY3VycmVuY3kgb2JqZWN0IGdpdmVuIGFuIElTTyA0MjE3IDMtbGV0dGVyIGNvZGUuCisgICAgICogQHBhcmFtIHRoZUlTT0NvZGUgdGhlIGlzbyBjb2RlCisgICAgICogQHJldHVybiB0aGUgY3VycmVuY3kgZm9yIHRoaXMgaXNvIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEN1cnJlbmN5IGdldEluc3RhbmNlKFN0cmluZyB0aGVJU09Db2RlKSB7CisgICAgICAgIHJldHVybiBuZXcgQ3VycmVuY3kodGhlSVNPQ29kZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIGEgbmV3IGN1cnJlbmN5IGZvciB0aGUgcHJvdmlkZWQgbG9jYWxlLiAgVGhlIHJldHVybmVkIG9iamVjdAorICAgICAqIGlzIGEga2V5IHRoYXQgY2FuIGJlIHVzZWQgdG8gdW5yZWdpc3RlciB0aGlzIGN1cnJlbmN5IG9iamVjdC4KKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgdGhlIGN1cnJlbmN5IHRvIHJlZ2lzdGVyCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgdWxvY2FsZSB1bmRlciB3aGljaCB0byByZWdpc3RlciB0aGUgY3VycmVuY3kKKyAgICAgKiBAcmV0dXJuIGEgcmVnaXN0cnkga2V5IHRoYXQgY2FuIGJlIHVzZWQgdG8gdW5yZWdpc3RlciB0aGlzIGN1cnJlbmN5CisgICAgICogQHNlZSAjdW5yZWdpc3RlcgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBPYmplY3QgcmVnaXN0ZXJJbnN0YW5jZShDdXJyZW5jeSBjdXJyZW5jeSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldFNoaW0oKS5yZWdpc3Rlckluc3RhbmNlKGN1cnJlbmN5LCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVucmVnaXN0ZXIgdGhlIGN1cnJlbmN5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGtleSAob2J0YWluZWQgZnJvbQorICAgICAqIHJlZ2lzdGVySW5zdGFuY2UpLgorICAgICAqIEBwYXJhbSByZWdpc3RyeUtleSB0aGUgcmVnaXN0cnkga2V5IHJldHVybmVkIGZyb20gcmVnaXN0ZXJJbnN0YW5jZQorICAgICAqIEBzZWUgI3JlZ2lzdGVySW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gdW5yZWdpc3RlcihPYmplY3QgcmVnaXN0cnlLZXkpIHsKKyAgICAgICAgaWYgKHJlZ2lzdHJ5S2V5ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJlZ2lzdHJ5S2V5IG11c3Qgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2hpbSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNoaW0udW5yZWdpc3RlcihyZWdpc3RyeUtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIGFycmF5IG9mIHRoZSBsb2NhbGVzIGZvciB3aGljaCBhIGN1cnJlbmN5CisgICAgICogaXMgZGVmaW5lZC4KKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIHRoZSBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlW10gZ2V0QXZhaWxhYmxlTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZUxvY2FsZXMoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gc2hpbS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gYXJyYXkgb2YgdGhlIHVsb2NhbGVzIGZvciB3aGljaCBhIGN1cnJlbmN5CisgICAgICogaXMgZGVmaW5lZC4KKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIHRoZSBhdmFpbGFibGUgdWxvY2FsZXMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVVTG9jYWxlcygpIHsKKyAgICAgICAgaWYgKHNoaW0gPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZVVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHNoaW0uZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGVuZCByZWdpc3RyeSBzdHVmZgorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgaGFzaGNvZGUgZm9yIHRoaXMgY3VycmVuY3kuCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIGlzb0NvZGUuaGFzaENvZGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiByaHMgaXMgYSBDdXJyZW5jeSBpbnN0YW5jZSwKKyAgICAgKiBpcyBub24tbnVsbCwgYW5kIGhhcyB0aGUgc2FtZSBjdXJyZW5jeSBjb2RlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisgICAgICAgIGlmIChyaHMgPT0gbnVsbCkgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAocmhzID09IHRoaXMpIHJldHVybiB0cnVlOworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ3VycmVuY3kgYyA9IChDdXJyZW5jeSkgcmhzOworICAgICAgICAgICAgcmV0dXJuIGlzb0NvZGUuZXF1YWxzKGMuaXNvQ29kZSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBJU08gNDIxNyAzLWxldHRlciBjb2RlIGZvciB0aGlzIGN1cnJlbmN5IG9iamVjdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEN1cnJlbmN5Q29kZSgpIHsKKyAgICAgICAgcmV0dXJuIGlzb0NvZGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgYW5kIGNvbXBhdGliaWxpdHkgb3ZlcnJpZGUgb2YgZ2V0TmFtZSB0aGF0CisgICAgICogcmVxdWVzdHMgdGhlIHN5bWJvbCBuYW1lLgorICAgICAqIEBzZWUgI2dldE5hbWUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3ltYm9sKCkgeworCXJldHVybiBnZXRTeW1ib2woVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIGFuZCBjb21wYXRpYmlsaXR5IG92ZXJyaWRlIG9mIGdldE5hbWUgdGhhdAorICAgICAqIHJlcXVlc3RzIHRoZSBzeW1ib2wgbmFtZS4KKyAgICAgKiBAcGFyYW0gbG9jIHRoZSBMb2NhbGUgZm9yIHRoZSBzeW1ib2wKKyAgICAgKiBAc2VlICNnZXROYW1lCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFN5bWJvbChMb2NhbGUgbG9jKSB7CisJcmV0dXJuIGdldFN5bWJvbChVTG9jYWxlLmZvckxvY2FsZShsb2MpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBhbmQgY29tcGF0aWJpbGl0eSBvdmVycmlkZSBvZiBnZXROYW1lIHRoYXQKKyAgICAgKiByZXF1ZXN0cyB0aGUgc3ltYm9sIG5hbWUuCisgICAgICogQHBhcmFtIHVsb2MgdGhlIFVMb2NhbGUgZm9yIHRoZSBzeW1ib2wKKyAgICAgKiBAc2VlICNnZXROYW1lCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFN5bWJvbChVTG9jYWxlIHVsb2MpIHsKKwlyZXR1cm4gZ2V0TmFtZSh1bG9jLCBTWU1CT0xfTkFNRSwgbmV3IGJvb2xlYW5bMV0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGdpdmVuIGN1cnJlbmN5IGluIHRoZQorICAgICAqIGdpdmVuIGxvY2FsZS4gIEZvciBleGFtcGxlLCB0aGUgZGlzcGxheSBuYW1lIGZvciB0aGUgVVNECisgICAgICogY3VycmVuY3kgb2JqZWN0IGluIHRoZSBlbl9VUyBsb2NhbGUgaXMgIiQiLgorICAgICAqIEBwYXJhbSBsb2NhbGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgY3VycmVuY3kKKyAgICAgKiBAcGFyYW0gbmFtZVN0eWxlIHNlbGVjdG9yIGZvciB3aGljaCBraW5kIG9mIG5hbWUgdG8gcmV0dXJuCisgICAgICogQHBhcmFtIGlzQ2hvaWNlRm9ybWF0IGZpbGwtaW47IGlzQ2hvaWNlRm9ybWF0WzBdIGlzIHNldCB0byB0cnVlCisgICAgICogaWYgdGhlIHJldHVybmVkIHZhbHVlIGlzIGEgQ2hvaWNlRm9ybWF0IHBhdHRlcm47IG90aGVyd2lzZSBpdAorICAgICAqIGlzIHNldCB0byBmYWxzZQorICAgICAqIEByZXR1cm4gZGlzcGxheSBzdHJpbmcgZm9yIHRoaXMgY3VycmVuY3kuICBJZiB0aGUgcmVzb3VyY2UgZGF0YQorICAgICAqIGNvbnRhaW5zIG5vIGVudHJ5IGZvciB0aGlzIGN1cnJlbmN5LCB0aGVuIHRoZSBJU08gNDIxNyBjb2RlIGlzCisgICAgICogcmV0dXJuZWQuICBJZiBpc0Nob2ljZUZvcm1hdFswXSBpcyB0cnVlLCB0aGVuIHRoZSByZXN1bHQgaXMgYQorICAgICAqIENob2ljZUZvcm1hdCBwYXR0ZXJuLiAgT3RoZXJ3aXNlIGl0IGlzIGEgc3RhdGljIHN0cmluZy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZShMb2NhbGUgbG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmFtZVN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuW10gaXNDaG9pY2VGb3JtYXQpIHsKKwlyZXR1cm4gZ2V0TmFtZShVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpLCBuYW1lU3R5bGUsIGlzQ2hvaWNlRm9ybWF0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBnaXZlbiBjdXJyZW5jeSBpbiB0aGUKKyAgICAgKiBnaXZlbiBsb2NhbGUuICBGb3IgZXhhbXBsZSwgdGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIFVTRAorICAgICAqIGN1cnJlbmN5IG9iamVjdCBpbiB0aGUgZW5fVVMgbG9jYWxlIGlzICIkIi4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IGN1cnJlbmN5CisgICAgICogQHBhcmFtIG5hbWVTdHlsZSBzZWxlY3RvciBmb3Igd2hpY2gga2luZCBvZiBuYW1lIHRvIHJldHVybgorICAgICAqIEBwYXJhbSBpc0Nob2ljZUZvcm1hdCBmaWxsLWluOyBpc0Nob2ljZUZvcm1hdFswXSBpcyBzZXQgdG8gdHJ1ZQorICAgICAqIGlmIHRoZSByZXR1cm5lZCB2YWx1ZSBpcyBhIENob2ljZUZvcm1hdCBwYXR0ZXJuOyBvdGhlcndpc2UgaXQKKyAgICAgKiBpcyBzZXQgdG8gZmFsc2UKKyAgICAgKiBAcmV0dXJuIGRpc3BsYXkgc3RyaW5nIGZvciB0aGlzIGN1cnJlbmN5LiAgSWYgdGhlIHJlc291cmNlIGRhdGEKKyAgICAgKiBjb250YWlucyBubyBlbnRyeSBmb3IgdGhpcyBjdXJyZW5jeSwgdGhlbiB0aGUgSVNPIDQyMTcgY29kZSBpcworICAgICAqIHJldHVybmVkLiAgSWYgaXNDaG9pY2VGb3JtYXRbMF0gaXMgdHJ1ZSwgdGhlbiB0aGUgcmVzdWx0IGlzIGEKKyAgICAgKiBDaG9pY2VGb3JtYXQgcGF0dGVybi4gIE90aGVyd2lzZSBpdCBpcyBhIHN0YXRpYyBzdHJpbmcuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoVUxvY2FsZSBsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYW1lU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW5bXSBpc0Nob2ljZUZvcm1hdCkgeworCisgICAgICAgIC8vIExvb2sgdXAgdGhlIEN1cnJlbmNpZXMgcmVzb3VyY2UgZm9yIHRoZSBnaXZlbiBsb2NhbGUuICBUaGUKKyAgICAgICAgLy8gQ3VycmVuY2llcyBsb2NhbGUgZGF0YSBsb29rcyBsaWtlIHRoaXM6CisgICAgICAgIC8vfGVuIHsKKyAgICAgICAgLy98ICBDdXJyZW5jaWVzIHsKKyAgICAgICAgLy98ICAgIFVTRCB7ICJVUyQiLCAiVVMgRG9sbGFyIiB9CisgICAgICAgIC8vfCAgICBDSEYgeyAiU3cgRiIsICJTd2lzcyBGcmFuYyIgfQorICAgICAgICAvL3wgICAgSU5SIHsgIj0wI1JzfDEjUmV8MTxScyIsICI9MCNSdXBlZXN8MSNSdXBlZXwxPFJ1cGVlcyIgfQorICAgICAgICAvL3wgICAgLy8uLi4KKyAgICAgICAgLy98ICB9CisgICAgICAgIC8vfH0KKworICAgICAgICBpZiAobmFtZVN0eWxlIDwgMCB8fCBuYW1lU3R5bGUgPiAxKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgcyA9IG51bGw7CisKKyAgICAgICAgIHRyeSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSxsb2NhbGUpOworICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgY3VycmVuY2llcyA9IHJiLmdldCgiQ3VycmVuY2llcyIpOworCisgICAgICAgICAgICAvLyBGZXRjaCByZXNvdXJjZSB3aXRoIG11bHRpLWxldmVsIHJlc291cmNlIGluaGVyaXRhbmNlIGZhbGxiYWNrCisgICAgICAgICAgICBzID0gY3VycmVuY2llcy5nZXRXaXRoRmFsbGJhY2soaXNvQ29kZSkuZ2V0U3RyaW5nKG5hbWVTdHlsZSk7CisgICAgICAgIH1jYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vVE9ETyB3aGF0IHNob3VsZCBiZSBkb25lIGhlcmU/CisgICAgICAgIH0KKworICAgICAgICAvLyBEZXRlcm1pbmUgaWYgdGhpcyBpcyBhIENob2ljZUZvcm1hdCBwYXR0ZXJuLiAgT25lIGxlYWRpbmcgbWFyaworICAgICAgICAvLyBpbmRpY2F0ZXMgYSBDaG9pY2VGb3JtYXQuICBUd28gaW5kaWNhdGVzIGEgc3RhdGljIHN0cmluZyB0aGF0CisgICAgICAgIC8vIHN0YXJ0cyB3aXRoIGEgbWFyay4gIEluIGVpdGhlciBjYXNlLCB0aGUgZmlyc3QgbWFyayBpcyBpZ25vcmVkLAorICAgICAgICAvLyBpZiBwcmVzZW50LiAgTWFya3MgaW4gdGhlIHJlc3Qgb2YgdGhlIHN0cmluZyBoYXZlIG5vIHNwZWNpYWwKKyAgICAgICAgLy8gbWVhbmluZy4KKyAgICAgICAgaXNDaG9pY2VGb3JtYXRbMF0gPSBmYWxzZTsKKyAgICAgICAgaWYgKHMgIT0gbnVsbCkgeworICAgICAgICAgICAgaW50IGk9MDsKKyAgICAgICAgICAgIHdoaWxlIChpIDwgcy5sZW5ndGgoKSAmJiBzLmNoYXJBdChpKSA9PSAnPScgJiYgaSA8IDIpIHsKKyAgICAgICAgICAgICAgICArK2k7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpc0Nob2ljZUZvcm1hdFswXT0gKGkgPT0gMSk7CisgICAgICAgICAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgICAgICAgICAgLy8gU2tpcCBvdmVyIGZpcnN0IG1hcmsKKyAgICAgICAgICAgICAgICBzID0gcy5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gczsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHdlIGZhaWwgdG8gZmluZCBhIG1hdGNoLCB1c2UgdGhlIElTTyA0MjE3IGNvZGUKKyAgICAgICAgcmV0dXJuIGlzb0NvZGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXR0ZW1wdCB0byBwYXJzZSB0aGUgZ2l2ZW4gc3RyaW5nIGFzIGEgY3VycmVuY3ksIGVpdGhlciBhcyBhCisgICAgICogZGlzcGxheSBuYW1lIGluIHRoZSBnaXZlbiBsb2NhbGUsIG9yIGFzIGEgMy1sZXR0ZXIgSVNPIDQyMTcKKyAgICAgKiBjb2RlLiAgSWYgbXVsdGlwbGUgZGlzcGxheSBuYW1lcyBtYXRjaCwgdGhlbiB0aGUgbG9uZ2VzdCBvbmUgaXMKKyAgICAgKiBzZWxlY3RlZC4gIElmIGJvdGggYSBkaXNwbGF5IG5hbWUgYW5kIGEgMy1sZXR0ZXIgSVNPIGNvZGUKKyAgICAgKiBtYXRjaCwgdGhlbiB0aGUgZGlzcGxheSBuYW1lIGlzIHByZWZlcnJlZCwgdW5sZXNzIGl0J3MgbGVuZ3RoCisgICAgICogaXMgbGVzcyB0aGFuIDMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgb2YgdGhlIGRpc3BsYXkgbmFtZXMgdG8gbWF0Y2gKKyAgICAgKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBwYXJzZQorICAgICAqIEBwYXJhbSBwb3MgaW5wdXQtb3V0cHV0IHBvc2l0aW9uOyBvbiBpbnB1dCwgdGhlIHBvc2l0aW9uIHdpdGhpbgorICAgICAqIHRleHQgdG8gbWF0Y2g7IG11c3QgaGF2ZSAwIDw9IHBvcy5nZXRJbmRleCgpIDwgdGV4dC5sZW5ndGgoKTsKKyAgICAgKiBvbiBvdXRwdXQsIHRoZSBwb3NpdGlvbiBhZnRlciB0aGUgbGFzdCBtYXRjaGVkIGNoYXJhY3Rlci4gSWYKKyAgICAgKiB0aGUgcGFyc2UgZmFpbHMsIHRoZSBwb3NpdGlvbiBpbiB1bmNoYW5nZWQgdXBvbiBvdXRwdXQuCisgICAgICogQHJldHVybiB0aGUgSVNPIDQyMTcgY29kZSwgYXMgYSBzdHJpbmcsIG9mIHRoZSBiZXN0IG1hdGNoLCBvcgorICAgICAqIG51bGwgaWYgdGhlcmUgaXMgbm8gbWF0Y2gKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHBhcnNlKFVMb2NhbGUgbG9jYWxlLCBTdHJpbmcgdGV4dCwgUGFyc2VQb3NpdGlvbiBwb3MpIHsKKworICAgICAgICAvLyBUT0RPOiBUaGVyZSBpcyBhIHNsaWdodCBwcm9ibGVtIHdpdGggdGhlIHBzZXVkby1tdWx0aS1sZXZlbAorICAgICAgICAvLyBmYWxsYmFjayBpbXBsZW1lbnRlZCBoZXJlLiAgTW9yZS1zcGVjaWZpYyBsb2NhbGVzIGRvbid0CisgICAgICAgIC8vIHByb3Blcmx5IHNoaWVsZCBkdXBsaWNhdGUgZW50cmllcyBpbiBsZXNzLXNwZWNpZmljIGxvY2FsZXMuCisgICAgICAgIC8vIFRoaXMgcHJvYmxlbSB3aWxsIGdvIGF3YXkgd2hlbiByZWFsIG11bHRpLWxldmVsIGZhbGxiYWNrIGlzCisgICAgICAgIC8vIGltcGxlbWVudGVkLiAgV2UgY291bGQgYWxzbyBmaXggdGhpcyBieSByZWNvcmRpbmcgKGluIGEKKyAgICAgICAgLy8gaGFzaCkgd2hpY2ggY29kZXMgYXJlIHVzZWQgYXQgZWFjaCBsZXZlbCBvZiBmYWxsYmFjaywgYnV0CisgICAgICAgIC8vIHRoaXMgZG9lc24ndCBzZWVtIHdhcnJhbnRlZC4KKworICAgICAgICBpbnQgc3RhcnQgPSBwb3MuZ2V0SW5kZXgoKTsKKyAgICAgICAgU3RyaW5nIGZyYWdtZW50ID0gdGV4dC5zdWJzdHJpbmcoc3RhcnQpOworCisgICAgICAgIFN0cmluZyBpc28gPSBudWxsOworICAgICAgICBpbnQgbWF4ID0gMDsKKworICAgICAgICAvLyBMb29rIHVwIHRoZSBDdXJyZW5jaWVzIHJlc291cmNlIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLiAgVGhlCisgICAgICAgIC8vIEN1cnJlbmNpZXMgbG9jYWxlIGRhdGEgbG9va3MgbGlrZSB0aGlzOgorICAgICAgICAvL3xlbiB7CisgICAgICAgIC8vfCAgQ3VycmVuY2llcyB7CisgICAgICAgIC8vfCAgICBVU0QgeyAiVVMkIiwgIlVTIERvbGxhciIgfQorICAgICAgICAvL3wgICAgQ0hGIHsgIlN3IEYiLCAiU3dpc3MgRnJhbmMiIH0KKyAgICAgICAgLy98ICAgIElOUiB7ICI9MCNSc3wxI1JlfDE8UnMiLCAiPTAjUnVwZWVzfDEjUnVwZWV8MTxSdXBlZXMiIH0KKyAgICAgICAgLy98ICAgIC8vLi4uCisgICAgICAgIC8vfCAgfQorICAgICAgICAvL3x9CisKKyAgICAgICAgLy8gSW4gdGhlIGZ1dHVyZSwgcmVzb3VyY2UgYnVuZGxlcyBtYXkgaW1wbGVtZW50IG11bHRpLWxldmVsCisgICAgICAgIC8vIGZhbGxiYWNrLiAgVGhhdCBpcywgaWYgYSBjdXJyZW5jeSBpcyBub3QgZm91bmQgaW4gdGhlIGVuX1VTCisgICAgICAgIC8vIEN1cnJlbmNpZXMgZGF0YSwgdGhlbiB0aGUgZW4gQ3VycmVuY2llcyBkYXRhIHdpbGwgYmUgc2VhcmNoZWQuCisgICAgICAgIC8vIEN1cnJlbnRseSwgaWYgYSBDdXJyZW5jaWVzIGRhdHVtIGV4aXN0cyBpbiBlbl9VUyBhbmQgZW4sIHRoZQorICAgICAgICAvLyBlbl9VUyBlbnRyeSBoaWRlcyB0aGF0IGluIGVuLgorCisgICAgICAgIC8vIFdlIHdhbnQgbXVsdGktbGV2ZWwgZmFsbGJhY2sgZm9yIHRoaXMgcmVzb3VyY2UsIHNvIHdlIGltcGxlbWVudAorICAgICAgICAvLyBpdCBtYW51YWxseS4KKworICAgICAgICAvLyBNdWx0aS1sZXZlbCByZXNvdXJjZSBpbmhlcml0YW5jZSBmYWxsYmFjayBsb29wCisKKyAgICAgICAgd2hpbGUgKGxvY2FsZSAhPSBudWxsKSB7CisgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSByYiA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSxsb2NhbGUpOworICAgICAgICAgICAgLy8gV2UgY2FuJ3QgY2FzdCB0aGlzIHRvIFN0cmluZ1tdW107IHRoZSBjYXN0IGhhcyB0byBoYXBwZW4gbGF0ZXIKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBjdXJyZW5jaWVzID0gcmIuZ2V0KCJDdXJyZW5jaWVzIik7CisgICAgICAgICAgICAgICAgLy8gRG8gYSBsaW5lYXIgc2VhcmNoCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPGN1cnJlbmNpZXMuZ2V0U2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgLy9TdHJpbmcgbmFtZSA9ICgoU3RyaW5nW10pIGN1cnJlbmNpZXNbaV1bMV0pWzBdOworICAgICAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBpdGVtID0gY3VycmVuY2llcy5nZXQoaSk7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gaXRlbS5nZXRTdHJpbmcoMCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpIDwgMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWdub3JlIHplcm8tbGVuZ3RoIG5hbWVzIC0tIGxhdGVyLCBjaGFuZ2UgdGhpcworICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiB6ZXJvLWxlbmd0aCBpcyB1c2VkIHRvIG1lYW4gc29tZXRoaW5nLgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZS5jaGFyQXQoMCkgPT0gJz0nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmFtZS5sZW5ndGgoKSA+IDAgJiYgbmFtZS5jaGFyQXQoMCkgIT0gJz0nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hvaWNlRm9ybWF0IGNob2ljZSA9IG5ldyBDaG9pY2VGb3JtYXQobmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTnVtYmVyIG4gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNob2ljZS5wYXJzZSh0ZXh0LCBwb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW4gPSBwb3MuZ2V0SW5kZXgoKSAtIHN0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW4gPiBtYXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNvID0gaXRlbS5nZXRLZXkoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4ID0gbGVuOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3Muc2V0SW5kZXgoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpID4gbWF4ICYmIGZyYWdtZW50LnN0YXJ0c1dpdGgobmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzbyA9IGl0ZW0uZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXggPSBuYW1lLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7fQorCisgICAgICAgICAgICBsb2NhbGUgPSBsb2NhbGUuZ2V0RmFsbGJhY2soKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgIDEuIExvb2sgYXQgdGhlIEN1cnJlbmNpZXMgYXJyYXkgZnJvbSB0aGUgbG9jYWxlCisgICAgICAgICAgICAxYS4gSXRlcmF0ZSB0aHJvdWdoIGl0LCBhbmQgY2hlY2sgZWFjaCByb3cgdG8gc2VlIGlmIHJvd1sxXSBtYXRjaGVzCisgICAgICAgICAgICAgICAgMWExLiBJZiByb3dbMV0gaXMgYSBwYXR0ZXJuLCB1c2UgQ2hvaWNlRm9ybWF0IHRvIGF0dGVtcHQgYSBwYXJzZQorICAgICAgICAgICAgMWIuIFVwb24gYSBtYXRjaCwgcmV0dXJuIHRoZSBJU08gY29kZSBzdG9yZWQgYXQgcm93WzBdCisgICAgICAgIDIuIElmIHRoZXJlIGlzIG5vIG1hdGNoLCBmYWxsIGJhY2sgdG8gImVuIiBhbmQgdHJ5IGFnYWluCisgICAgICAgIDMuIElmIHRoZXJlIGlzIG5vIG1hdGNoLCBmYWxsIGJhY2sgdG8gcm9vdCBhbmQgdHJ5IGFnYWluCisgICAgICAgIDQuIElmIHN0aWxsIG5vIG1hdGNoLCBwYXJzZSAzLWxldHRlciBJU08ge3RoaXMgY29kZSBpcyBwcm9iYWJseSB1bmNoYW5nZWR9LgorCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJiID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgbG9jYWxlKTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgY3VycmVuY2llcyA9IHJiLmdldCgiQ3VycmVuY2llcyIpOworICAgICAgICAqLworICAgICAgICAvLyBJZiBkaXNwbGF5IG5hbWUgcGFyc2UgZmFpbHMgb3IgaWYgaXQgbWF0Y2hlcyBmZXdlciB0aGFuIDMKKyAgICAgICAgLy8gY2hhcmFjdGVycywgdHJ5IHRvIHBhcnNlIDMtbGV0dGVyIElTTy4gIERvIHRoaXMgYWZ0ZXIgdGhlCisgICAgICAgIC8vIGRpc3BsYXkgbmFtZSBwcm9jZXNzaW5nIHNvIDMtbGV0dGVyIGRpc3BsYXkgbmFtZXMgYXJlCisgICAgICAgIC8vIHByZWZlcnJlZC4gIENvbnNpZGVyIC9bQS1aXXszfS8gdG8gYmUgdmFsaWQgSVNPLCBhbmQgcGFyc2UKKyAgICAgICAgLy8gaXQgbWFudWFsbHktLVVuaWNvZGVTZXQvcmVnZXggYXJlIHRvbyBzbG93IGFuZCBoZWF2eS4KKyAgICAgICAgaWYgKG1heCA8IDMgJiYgKHRleHQubGVuZ3RoKCkgLSBzdGFydCkgPj0gMykgeworICAgICAgICAgICAgYm9vbGVhbiB2YWxpZCA9IHRydWU7CisgICAgICAgICAgICBmb3IgKGludCBrPTA7IGs8MzsgKytrKSB7CisgICAgICAgICAgICAgICAgY2hhciBjaCA9IHRleHQuY2hhckF0KHN0YXJ0ICsgayk7IC8vIDE2LWJpdCBvaworICAgICAgICAgICAgICAgIGlmIChjaCA8ICdBJyB8fCBjaCA+ICdaJykgeworICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodmFsaWQpIHsKKyAgICAgICAgICAgICAgICBpc28gPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgc3RhcnQrMyk7CisgICAgICAgICAgICAgICAgbWF4ID0gMzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHBvcy5zZXRJbmRleChzdGFydCArIG1heCk7CisgICAgICAgIHJldHVybiBpc287CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRoZSBudW1iZXIgb2YgZnJhY3Rpb24gZGlnaXRzIHRoYXQgc2hvdWxkCisgICAgICogYmUgZGlzcGxheWVkIGZvciB0aGlzIGN1cnJlbmN5LgorICAgICAqIEByZXR1cm4gYSBub24tbmVnYXRpdmUgbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cyB0byBiZQorICAgICAqIGRpc3BsYXllZAorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0RGVmYXVsdEZyYWN0aW9uRGlnaXRzKCkgeworICAgICAgICByZXR1cm4gKGZpbmREYXRhKCkpWzBdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHJvdW5kaW5nIGluY3JlbWVudCBmb3IgdGhpcyBjdXJyZW5jeSwgb3IgMC4wIGlmIG5vCisgICAgICogcm91bmRpbmcgaXMgZG9uZSBieSB0aGlzIGN1cnJlbmN5LgorICAgICAqIEByZXR1cm4gdGhlIG5vbi1uZWdhdGl2ZSByb3VuZGluZyBpbmNyZW1lbnQsIG9yIDAuMCBpZiBub25lCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgcHVibGljIGRvdWJsZSBnZXRSb3VuZGluZ0luY3JlbWVudCgpIHsKKyAgICAgICAgaW50W10gZGF0YSA9IGZpbmREYXRhKCk7CisKKyAgICAgICAgaW50IGRhdGExID0gZGF0YVsxXTsgLy8gcm91bmRpbmcgaW5jcmVtZW50CisKKyAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gcm91bmRpbmcgcmV0dXJuIDAuMCB0byBpbmRpY2F0ZSBubyByb3VuZGluZy4KKyAgICAgICAgLy8gVGhpcyBpcyB0aGUgaGlnaC1ydW5uZXIgY2FzZSwgYnkgZmFyLgorICAgICAgICBpZiAoZGF0YTEgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIDAuMDsKKyAgICAgICAgfQorCisgICAgICAgIGludCBkYXRhMCA9IGRhdGFbMF07IC8vIGZyYWN0aW9uIGRpZ2l0cworCisgICAgICAgIC8vIElmIHRoZSBtZXRhIGRhdGEgaXMgaW52YWxpZCwgcmV0dXJuIDAuMCB0byBpbmRpY2F0ZSBubyByb3VuZGluZy4KKyAgICAgICAgaWYgKGRhdGEwIDwgMCB8fCBkYXRhMCA+PSBQT1cxMC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiAwLjA7CisgICAgICAgIH0KKworICAgICAgICAvLyBSZXR1cm4gZGF0YVsxXSAvIDEwXihkYXRhWzBdKS4gIFRoZSBvbmx5IGFjdHVhbCByb3VuZGluZyBkYXRhLAorICAgICAgICAvLyBhcyBvZiB0aGlzIHdyaXRpbmcsIGlzIENIRiB7IDIsIDI1IH0uCisgICAgICAgIHJldHVybiAoZG91YmxlKSBkYXRhMSAvIFBPVzEwW2RhdGEwXTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBJU08gNDIxNyBjb2RlIGZvciB0aGlzIGN1cnJlbmN5LgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBpc29Db2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBjdXJyZW5jeSBvYmplY3QgZm9yIHRoZSBnaXZlbiBJU08gNDIxNyAzLWxldHRlcgorICAgICAqIGNvZGUuICBUaGlzIGNvbnN0cnVjdG9yIGFzc3VtZXMgdGhhdCB0aGUgY29kZSBpcyB2YWxpZC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gdGhlSVNPQ29kZSBUaGUgaXNvIGNvZGUgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIGN1cnJlbmN5LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIEN1cnJlbmN5KFN0cmluZyB0aGVJU09Db2RlKSB7CisgICAgICAgIGlzb0NvZGUgPSB0aGVJU09Db2RlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEludGVybmFsIGZ1bmN0aW9uIHRvIGxvb2sgdXAgY3VycmVuY3kgZGF0YS4gIFJlc3VsdCBpcyBhbiBhcnJheSBvZgorICAgICAqIHR3byBJbnRlZ2Vycy4gIFRoZSBmaXJzdCBpcyB0aGUgZnJhY3Rpb24gZGlnaXRzLiAgVGhlIHNlY29uZCBpcyB0aGUKKyAgICAgKiByb3VuZGluZyBpbmNyZW1lbnQsIG9yIDAgaWYgbm9uZS4gIFRoZSByb3VuZGluZyBpbmNyZW1lbnQgaXMgaW4KKyAgICAgKiB1bml0cyBvZiAxMF4oLWZyYWN0aW9uX2RpZ2l0cykuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnRbXSBmaW5kRGF0YSgpIHsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgLy8gR2V0IEN1cnJlbmN5TWV0YSByZXNvdXJjZSBvdXQgb2Ygcm9vdCBsb2NhbGUgZmlsZS4gIFtUaGlzIG1heQorICAgICAgICAgICAgLy8gbW92ZSBvdXQgb2YgdGhlIHJvb3QgbG9jYWxlIGZpbGUgbGF0ZXI7IGlmIGl0IGRvZXMsIHVwZGF0ZSB0aGlzCisgICAgICAgICAgICAvLyBjb2RlLl0KKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHJvb3QgPSAoSUNVUmVzb3VyY2VCdW5kbGUpSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwiQ3VycmVuY3lEYXRhIiwgSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0RBVEFfQ0xBU1NfTE9BREVSKTsKKyAgICAgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGN1cnJlbmN5TWV0YSA9IHJvb3QuZ2V0KCJDdXJyZW5jeU1ldGEiKTsKKworICAgICAgICAgICAgLy9JbnRlZ2VyW10gaSA9IG51bGw7CisgICAgICAgICAgICAvL2ludCBkZWZhdWx0UG9zID0gLTE7CisgICAgICAgICAgICBpbnRbXSBpID0gY3VycmVuY3lNZXRhLmdldChpc29Db2RlKS5nZXRJbnRWZWN0b3IoKTsKKworICAgICAgICAgICAgLy8gRG8gYSBsaW5lYXIgc2VhcmNoIGZvciBpc29Db2RlLiAgQXQgdGhlIHNhbWUgdGltZSwKKyAgICAgICAgICAgIC8vIHJlY29yZCB0aGUgcG9zaXRpb24gb2YgdGhlIERFRkFVTFQgbWV0YSBkYXRhLiAgSWYgdGhlCisgICAgICAgICAgICAvLyBtZXRhIGRhdGEgYmVjb21lcyBsYXJnZSwgbWFrZSB0aGlzIGZhc3Rlci4KKyAgICAgICAgICAgIC8qZm9yIChpbnQgaj0wOyBqPGN1cnJlbmN5TWV0YS5sZW5ndGg7ICsraikgeworICAgICAgICAgICAgICAgIE9iamVjdFtdIHJvdyA9IGN1cnJlbmN5TWV0YVtqXTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcyA9IChTdHJpbmcpIHJvd1swXTsKKyAgICAgICAgICAgICAgICBpbnQgYyA9IGlzb0NvZGUuY29tcGFyZVRvSWdub3JlQ2FzZShzKTsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGkgPSAoSW50ZWdlcltdKSByb3dbMV07CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIkRFRkFVTFQiLmVxdWFsc0lnbm9yZUNhc2UocykpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFBvcyA9IGo7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChjIDwgMCAmJiBkZWZhdWx0UG9zID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChpID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpID0gY3VycmVuY3lNZXRhLmdldCgiREVGQVVMVCIpLmdldEludFZlY3RvcigpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaSAhPSBudWxsICYmIGkubGVuZ3RoID49IDIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHt9CisKKyAgICAgICAgLy8gQ29uZmlnL2J1aWxkIGVycm9yOyByZXR1cm4gaGFyZC1jb2RlZCBkZWZhdWx0cworICAgICAgICByZXR1cm4gTEFTVF9SRVNPUlRfREFUQTsKKyAgICB9CisKKyAgICAvLyBEZWZhdWx0IGN1cnJlbmN5IG1ldGEgZGF0YSBvZiBsYXN0IHJlc29ydC4gIFdlIHRyeSB0byB1c2UgdGhlCisgICAgLy8gZGVmYXVsdHMgZW5jb2RlZCBpbiB0aGUgbWV0YSBkYXRhIHJlc291cmNlIGJ1bmRsZS4gIElmIHRoZXJlIGlzIGEKKyAgICAvLyBjb25maWd1cmF0aW9uL2J1aWxkIGVycm9yIGFuZCB0aGVzZSBhcmUgbm90IGF2YWlsYWJsZSwgd2UgdXNlIHRoZXNlCisgICAgLy8gaGFyZC1jb2RlZCBkZWZhdWx0cyAod2hpY2ggc2hvdWxkIGJlIGlkZW50aWNhbCkuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gTEFTVF9SRVNPUlRfREFUQSA9IG5ldyBpbnRbXSB7IDIsIDAgfTsKKworICAgIC8vIFBPVzEwW2ldID0gMTBeaQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIFBPVzEwID0geyAxLCAxMCwgMTAwLCAxMDAwLCAxMDAwMCwgMTAwMDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAwMDAwLCAxMDAwMDAwMCwgMTAwMDAwMDAwLCAxMDAwMDAwMDAwIH07CisKKyAgICAvLyAtLS0tLS0tLSBCRUdJTiBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxvY2FsZSB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGlzIG9iamVjdCwgb3IgbnVsbC4KKyAgICAgKiBUaGlzIG1heSBtYXkgZGlmZmVyIGZyb20gdGhlIGxvY2FsZSByZXF1ZXN0ZWQgYXQgdGhlIHRpbWUgb2YKKyAgICAgKiB0aGlzIG9iamVjdCdzIGNyZWF0aW9uLiAgRm9yIGV4YW1wbGUsIGlmIGFuIG9iamVjdCBpcyBjcmVhdGVkCisgICAgICogZm9yIGxvY2FsZSA8dHQ+ZW5fVVNfQ0FMSUZPUk5JQTwvdHQ+LCB0aGUgYWN0dWFsIGRhdGEgbWF5IGJlCisgICAgICogZHJhd24gZnJvbSA8dHQ+ZW48L3R0PiAodGhlIDxpPmFjdHVhbDwvaT4gbG9jYWxlKSwgYW5kCisgICAgICogPHR0PmVuX1VTPC90dD4gbWF5IGJlIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSB0aGF0IGV4aXN0cyAodGhlCisgICAgICogPGk+dmFsaWQ8L2k+IGxvY2FsZSkuCisgICAgICoKKyAgICAgKiA8cD5Ob3RlOiBUaGlzIG1ldGhvZCB3aWxsIGJlIG9ic29sZXRlZC4gIFRoZSBpbXBsZW1lbnRhdGlvbiBpcworICAgICAqIG5vIGxvbmdlciBsb2NhbGUtc3BlY2lmaWMgYW5kIHNvIHRoZXJlIGlzIG5vIGxvbmdlciBhIHZhbGlkIG9yCisgICAgICogYWN0dWFsIGxvY2FsZSBhc3NvY2lhdGVkIHdpdGggdGhlIEN1cnJlbmN5IG9iamVjdC4gIFVudGlsCisgICAgICogaXQgaXMgcmVtb3ZlZCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gdGhlIHJvb3QgbG9jYWxlLgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgaW5mb3JtYXRpb24gcmVxdWVzdGVkLCBlaXRoZXIge0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRX0gb3Ige0BsaW5rCisgICAgICogY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEV9LgorICAgICAqIEByZXR1cm4gdGhlIGluZm9ybWF0aW9uIHNwZWNpZmllZCBieSA8aT50eXBlPC9pPiwgb3IgbnVsbCBpZgorICAgICAqIHRoaXMgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YS4KKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAb2Jzb2xldGUgSUNVIDMuMiB0byBiZSByZW1vdmVkCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFVMb2NhbGUgZ2V0TG9jYWxlKFVMb2NhbGUuVHlwZSB0eXBlKSB7CisgICAgcmV0dXJuIFVMb2NhbGUuUk9PVDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvY2FsZXMgdGhhdCB3ZXJlIHVzZWQgdG8gY3JlYXRlIHRoaXMKKyAgICAgKiBvYmplY3QuICBJZiB0aGUgb2JqZWN0IHdhcyBub3QgY29uc3RydWN0ZWQgZnJvbSBsb2NhbGUgZGF0YSwKKyAgICAgKiBib3RoIGFyZ3VtZW50cyBzaG91bGQgYmUgc2V0IHRvIG51bGwuICBPdGhlcndpc2UsIG5laXRoZXIKKyAgICAgKiBzaG91bGQgYmUgbnVsbC4gIFRoZSBhY3R1YWwgbG9jYWxlIG11c3QgYmUgYXQgdGhlIHNhbWUgbGV2ZWwgb3IKKyAgICAgKiBsZXNzIHNwZWNpZmljIHRoYW4gdGhlIHZhbGlkIGxvY2FsZS4gIFRoaXMgbWV0aG9kIGlzIGludGVuZGVkCisgICAgICogZm9yIHVzZSBieSBmYWN0b3JpZXMgb3Igb3RoZXIgZW50aXRpZXMgdGhhdCBjcmVhdGUgb2JqZWN0cyBvZgorICAgICAqIHRoaXMgY2xhc3MuCisgICAgICogQHBhcmFtIHZhbGlkIHRoZSBtb3N0IHNwZWNpZmljIGxvY2FsZSBjb250YWluaW5nIGFueSByZXNvdXJjZQorICAgICAqIGRhdGEsIG9yIG51bGwKKyAgICAgKiBAcGFyYW0gYWN0dWFsIHRoZSBsb2NhbGUgY29udGFpbmluZyBkYXRhIHVzZWQgdG8gY29uc3RydWN0IHRoaXMKKyAgICAgKiBvYmplY3QsIG9yIG51bGwKKyAgICAgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI0FDVFVBTF9MT0NBTEUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBmaW5hbCB2b2lkIHNldExvY2FsZShVTG9jYWxlIHZhbGlkLCBVTG9jYWxlIGFjdHVhbCkgeworICAgICAgICAvLyBDaGFuZ2UgdGhlIGZvbGxvd2luZyB0byBhbiBhc3NlcnRpb24gbGF0ZXIKKyAgICAgICAgaWYgKCh2YWxpZCA9PSBudWxsKSAhPSAoYWN0dWFsID09IG51bGwpKSB7CisgICAgICAgICAgICAvLy9DTE9WRVI6T0ZGCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICAvLy9DTE9WRVI6T04KKyAgICAgICAgfQorICAgICAgICAvLyBBbm90aGVyIGNoZWNrIHdlIGNvdWxkIGRvIGlzIHRoYXQgdGhlIGFjdHVhbCBsb2NhbGUgaXMgYXQKKyAgICAgICAgLy8gdGhlIHNhbWUgbGV2ZWwgb3IgbGVzcyBzcGVjaWZpYyB0aGFuIHRoZSB2YWxpZCBsb2NhbGUuCisgICAgICAgIHRoaXMudmFsaWRMb2NhbGUgPSB2YWxpZDsKKyAgICAgICAgdGhpcy5hY3R1YWxMb2NhbGUgPSBhY3R1YWw7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIG1vc3Qgc3BlY2lmaWMgbG9jYWxlIGNvbnRhaW5pbmcgYW55IHJlc291cmNlIGRhdGEsIG9yIG51bGwuCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUgdmFsaWRMb2NhbGU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbG9jYWxlIGNvbnRhaW5pbmcgZGF0YSB1c2VkIHRvIGNvbnN0cnVjdCB0aGlzIG9iamVjdCwgb3IKKyAgICAgKiBudWxsLgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBVTG9jYWxlIGFjdHVhbExvY2FsZTsKKworICAgIC8vIC0tLS0tLS0tIEVORCBVTG9jYWxlIGJvaWxlcnBsYXRlIC0tLS0tLS0tCit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9DdXJyZW5jeUFtb3VudC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ3VycmVuY3lBbW91bnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGMxMzYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ3VycmVuY3lBbW91bnQuamF2YQpAQCAtMCwwICsxLDU4IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogQXByaWwgMTIsIDIwMDQKKyogU2luY2U6IElDVSAzLjAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLmxhbmcuTnVtYmVyOworCisvKioKKyAqIEFuIGFtb3VudCBvZiBjdXJyZW5jeSwgY29uc2lzdGluZyBvZiBhIE51bWJlciBhbmQgYSBDdXJyZW5jeS4KKyAqIEN1cnJlbmN5QW1vdW50IG9iamVjdHMgYXJlIGltbXV0YWJsZS4KKyAqCisgKiBAc2VlIGphdmEubGFuZy5OdW1iZXIKKyAqIEBzZWUgQ3VycmVuY3kKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBkcmFmdCBJQ1UgMy4wCisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworcHVibGljIGNsYXNzIEN1cnJlbmN5QW1vdW50IGV4dGVuZHMgTWVhc3VyZSB7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIG5ldyBvYmplY3QgZ2l2ZW4gYSBudW1iZXIgYW5kIGEgY3VycmVuY3kuCisgICAgICogQHBhcmFtIG51bWJlciB0aGUgbnVtYmVyCisgICAgICogQHBhcmFtIGN1cnJlbmN5IHRoZSBjdXJyZW5jeQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEN1cnJlbmN5QW1vdW50KE51bWJlciBudW1iZXIsIEN1cnJlbmN5IGN1cnJlbmN5KSB7CisgICAgICAgIHN1cGVyKG51bWJlciwgY3VycmVuY3kpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgb2JqZWN0IGdpdmVuIGEgZG91YmxlIHZhbHVlIGFuZCBhIGN1cnJlbmN5LgorICAgICAqIEBwYXJhbSBudW1iZXIgYSBkb3VibGUgdmFsdWUKKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgdGhlIGN1cnJlbmN5CisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ3VycmVuY3lBbW91bnQoZG91YmxlIG51bWJlciwgQ3VycmVuY3kgY3VycmVuY3kpIHsKKyAgICAgICAgc3VwZXIobmV3IERvdWJsZShudW1iZXIpLCBjdXJyZW5jeSk7CisgICAgfSAgICAKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW5jeSBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRoaXMgb2JqZWN0J3MgQ3VycmVuY3kKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBDdXJyZW5jeSBnZXRDdXJyZW5jeSgpIHsKKyAgICAgICAgcmV0dXJuIChDdXJyZW5jeSkgZ2V0VW5pdCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0N1cnJlbmN5U2VydmljZVNoaW0uamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0N1cnJlbmN5U2VydmljZVNoaW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDU4Y2IzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvQ3VycmVuY3lTZXJ2aWNlU2hpbS5qYXZhCkBAIC0wLDAgKzEsNzUgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMS0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVNlcnZpY2U7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VTZXJ2aWNlLkZhY3Rvcnk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VMb2NhbGVTZXJ2aWNlOworCisvKioKKyAqIFRoaXMgaXMgYSBwYWNrYWdlLWFjY2VzcyBpbXBsZW1lbnRhdGlvbiBvZiByZWdpc3RyYXRpb24gZm9yCisgKiBjdXJyZW5jeS4gIFRoZSBzaGltIGlzIGluc3RhbnRpYXRlZCBieSByZWZsZWN0aW9uIGluIEN1cnJlbmN5LCBhbGwKKyAqIGRlcGVuZGVuY2llcyBvbiBJQ1VTZXJ2aWNlIGFyZSBsb2NhdGVkIGluIHRoaXMgZmlsZS4gVGhpcyBzdHJ1Y3R1cmUKKyAqIGlzIHRvIGFsbG93IElDVTRKIHRvIGJlIGJ1aWx0IHdpdGhvdXQgc2VydmljZSByZWdpc3RyYXRpb24gc3VwcG9ydC4gIAorICovCitmaW5hbCBjbGFzcyBDdXJyZW5jeVNlcnZpY2VTaGltIGV4dGVuZHMgQ3VycmVuY3kuU2VydmljZVNoaW0geworICAgIAorICAgIExvY2FsZVtdIGdldEF2YWlsYWJsZUxvY2FsZXMoKSB7CisgICAgICAgIGlmIChzZXJ2aWNlLmlzRGVmYXVsdCgpKSB7CisgICAgICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlTG9jYWxlcyhJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2VydmljZS5nZXRBdmFpbGFibGVMb2NhbGVzKCk7CisgICAgfQorCisgICAgVUxvY2FsZVtdIGdldEF2YWlsYWJsZVVMb2NhbGVzKCkgeworICAgICAgICBpZiAoc2VydmljZS5pc0RlZmF1bHQoKSkgeworICAgICAgICAgICAgcmV0dXJuIElDVVJlc291cmNlQnVuZGxlLmdldEF2YWlsYWJsZVVMb2NhbGVzKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzZXJ2aWNlLmdldEF2YWlsYWJsZVVMb2NhbGVzKCk7CisgICAgfQorCisgICAgQ3VycmVuY3kgY3JlYXRlSW5zdGFuY2UoVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgLy8gVE9ETzogY29udmVydCB0byBVTG9jYWxlIHdoZW4gc2VydmljZSBzd2l0Y2hlcyBvdmVyCisKKyAgICAgICAgaWYgKHNlcnZpY2UuaXNEZWZhdWx0KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBDdXJyZW5jeS5jcmVhdGVDdXJyZW5jeShsb2MpOworICAgICAgICB9CisgICAgICAgIFVMb2NhbGVbXSBhY3R1YWxMb2MgPSBuZXcgVUxvY2FsZVsxXTsKKyAgICBDdXJyZW5jeSBjdXJyID0gKEN1cnJlbmN5KXNlcnZpY2UuZ2V0KGxvYywgYWN0dWFsTG9jKTsKKyAgICAgICAgVUxvY2FsZSB1bG9jID0gYWN0dWFsTG9jWzBdOworICAgICAgICBjdXJyLnNldExvY2FsZSh1bG9jLCB1bG9jKTsgLy8gc2VydmljZXMgbWFrZSBubyBkaXN0aW5jdGlvbiBiZXR3ZWVuIGFjdHVhbCAmIHZhbGlkCisgICAgICAgIHJldHVybiBjdXJyOworICAgIH0KKworICAgIE9iamVjdCByZWdpc3Rlckluc3RhbmNlKEN1cnJlbmN5IGN1cnJlbmN5LCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICByZXR1cm4gc2VydmljZS5yZWdpc3Rlck9iamVjdChjdXJyZW5jeSwgbG9jYWxlKTsKKyAgICB9CisgICAgCisgICAgYm9vbGVhbiB1bnJlZ2lzdGVyKE9iamVjdCByZWdpc3RyeUtleSkgeworICAgICAgICByZXR1cm4gc2VydmljZS51bnJlZ2lzdGVyRmFjdG9yeSgoRmFjdG9yeSlyZWdpc3RyeUtleSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ0ZTZXJ2aWNlIGV4dGVuZHMgSUNVTG9jYWxlU2VydmljZSB7CisgICAgICAgIENGU2VydmljZSgpIHsKKyAgICAgICAgICAgIHN1cGVyKCJDdXJyZW5jeSIpOworCisgICAgICAgICAgICBjbGFzcyBDdXJyZW5jeUZhY3RvcnkgZXh0ZW5kcyBJQ1VSZXNvdXJjZUJ1bmRsZUZhY3RvcnkgeworICAgICAgICAgICAgICAgIHByb3RlY3RlZCBPYmplY3QgaGFuZGxlQ3JlYXRlKFVMb2NhbGUgbG9jLCBpbnQga2luZCwgSUNVU2VydmljZSBzZXJ2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBDdXJyZW5jeS5jcmVhdGVDdXJyZW5jeShsb2MpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVnaXN0ZXJGYWN0b3J5KG5ldyBDdXJyZW5jeUZhY3RvcnkoKSk7CisgICAgICAgICAgICBtYXJrRGVmYXVsdCgpOworICAgICAgICB9CisgICAgfQorICAgIHN0YXRpYyBmaW5hbCBJQ1VMb2NhbGVTZXJ2aWNlIHNlcnZpY2UgPSBuZXcgQ0ZTZXJ2aWNlKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9EYXRlUnVsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRGF0ZVJ1bGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYzQyY2IzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRGF0ZVJ1bGUuamF2YQpAQCAtMCwwICsxLDc3IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworLyoqCisgKiBEYXRlUnVsZSBpcyBhbiBpbnRlcmZhY2UgZm9yIGNhbGN1bGF0aW5nIHRoZSBkYXRlIG9mIGFuIGV2ZW50LgorICogSXQgc3VwcG9ydHMgYm90aCByZWN1cnJpbmcgZXZlbnRzIGFuZCB0aG9zZSB3aGljaCBvY2N1ciBvbmx5IG9uY2UuCisgKiBEYXRlUnVsZSBpcyB1c2VmdWwgZm9yIHN0b3JpbmcgaW5mb3JtYXRpb24gYWJvdXQgaG9saWRheXMsCisgKiBEYXlsaWdodCBTYXZpbmdzIFRpbWUgcnVsZXMsIGFuZCBvdGhlciBldmVudHMgc3VjaCBhcyBtZWV0aW5ncy4KKyAqCisgKiBAc2VlIFNpbXBsZURhdGVSdWxlCisgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluQWxsKQorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgRGF0ZVJ1bGUKK3sKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IG9jY3VycmFuY2Ugb2YgdGhlIGV2ZW50IHJlcHJlc2VudGVkIGJ5IHRoaXMgcnVsZQorICAgICAqIHRoYXQgaXMgb24gb3IgYWZ0ZXIgdGhlIGdpdmVuIHN0YXJ0IGRhdGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgT25seSBvY2N1cnJhbmNlcyBvbiBvciBhZnRlciB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSBkYXRlIG9uIHdoaWNoIHRoaXMgZXZlbnQgb2NjdXJzLCBvciBudWxsIGlmIGl0CisgICAgICogICAgICAgICAgICAgIGRvZXMgbm90IG9jY3VyIG9uIG9yIGFmdGVyIHRoZSBzdGFydCBkYXRlLgorICAgICAqCisgICAgICogQHNlZSAjZmlyc3RCZXR3ZWVuCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgRGF0ZSAgICBmaXJzdEFmdGVyKERhdGUgc3RhcnQpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoZSBldmVudCByZXByZXNlbnRlZCBieSB0aGlzIHJ1bGUKKyAgICAgKiB0aGF0IGlzIG9uIG9yIGFmdGVyIHRoZSBnaXZlbiBzdGFydCBkYXRlIGFuZCBiZWZvcmUgdGhlIGdpdmVuCisgICAgICogZW5kIGRhdGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgT25seSBvY2N1cnJhbmNlcyBvbiBvciBhZnRlciB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqIEBwYXJhbSBlbmQgICBPbmx5IG9jY3VycmFuY2VzIGJlZm9yZSB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSBkYXRlIG9uIHdoaWNoIHRoaXMgZXZlbnQgb2NjdXJzLCBvciBudWxsIGlmIGl0CisgICAgICogICAgICAgICAgICAgIGRvZXMgbm90IG9jY3VyIGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgZGF0ZXMuCisgICAgICoKKyAgICAgKiBAc2VlICNmaXJzdEFmdGVyCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgRGF0ZSAgICBmaXJzdEJldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpOworCisgICAgLyoqCisgICAgICogQ2hlY2tzIHdoZXRoZXIgdGhpcyBldmVudCBvY2N1cnMgb24gdGhlIGdpdmVuIGRhdGUuICBUaGlzIGRvZXMKKyAgICAgKiA8ZW0+bm90PC9lbT4gdGFrZSB0aW1lIG9mIGRheSBpbnRvIGFjY291bnQ7IGluc3RlYWQgaXQgY2hlY2tzCisgICAgICogd2hldGhlciB0aGlzIGV2ZW50IGFuZCB0aGUgZ2l2ZW4gZGF0ZSBhcmUgb24gdGhlIHNhbWUgZGF5LgorICAgICAqIFRoaXMgaXMgdXNlZnVsIGZvciBhcHBsaWNhdGlvbnMgc3VjaCBhcyBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZ2l2ZW4KKyAgICAgKiBkYXkgaXMgYSBob2xpZGF5LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgIFRoZSBkYXRlIHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gICAgICB0cnVlIGlmIHRoaXMgZXZlbnQgb2NjdXJzIG9uIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIGJvb2xlYW4gaXNPbihEYXRlIGRhdGUpOworCisgICAgLyoqCisgICAgICogQ2hlY2sgd2hldGhlciB0aGlzIGV2ZW50IG9jY3VycyBhdCBsZWFzdCBvbmNlIGJldHdlZW4gdGhlIHR3bworICAgICAqIGRhdGVzIGdpdmVuLgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIGJvb2xlYW4gaXNCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKTsKK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9FYXN0ZXJIb2xpZGF5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9FYXN0ZXJIb2xpZGF5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWYxNGUyMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0Vhc3RlckhvbGlkYXkuamF2YQpAQCAtMCwwICsxLDI4NyBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKKy8qKgorICogQSBIb2xpZGF5IHN1YmNsYXNzIHdoaWNoIHJlcHJlc2VudHMgaG9saWRheXMgdGhhdCBvY2N1cgorICogYSBmaXhlZCBudW1iZXIgb2YgZGF5cyBiZWZvcmUgb3IgYWZ0ZXIgRWFzdGVyLiAgU3VwcG9ydHMgYm90aCB0aGUKKyAqIFdlc3Rlcm4gYW5kIE9ydGhvZG94IG1ldGhvZHMgZm9yIGNhbGN1bGF0aW5nIEVhc3Rlci4KKyAqIEBkcmFmdCBJQ1UgMi44IChyZXRhaW5BbGwpCisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworcHVibGljIGNsYXNzIEVhc3RlckhvbGlkYXkgZXh0ZW5kcyBIb2xpZGF5Cit7CisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgaG9saWRheSB0aGF0IGZhbGxzIG9uIEVhc3RlciBTdW5kYXkgZXZlcnkgeWVhcgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGhvbGlkYXkKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBFYXN0ZXJIb2xpZGF5KFN0cmluZyBuYW1lKQorICAgIHsKKyAgICAgICAgc3VwZXIobmFtZSwgbmV3IEVhc3RlclJ1bGUoMCwgZmFsc2UpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBob2xpZGF5IHRoYXQgZmFsbHMgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRheXMgYmVmb3JlCisgICAgICogb3IgYWZ0ZXIgRWFzdGVyIFN1bmRheSBlYWNoIHllYXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF5c0FmdGVyIFRoZSBudW1iZXIgb2YgZGF5cyBiZWZvcmUgKC0pIG9yIGFmdGVyICgrKSBFYXN0ZXIKKyAgICAgKiBAcGFyYW0gbmFtZSAgICAgIFRoZSBuYW1lIG9mIHRoZSBob2xpZGF5CisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRWFzdGVySG9saWRheShpbnQgZGF5c0FmdGVyLCBTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIG5ldyBFYXN0ZXJSdWxlKGRheXNBZnRlciwgZmFsc2UpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBob2xpZGF5IHRoYXQgZmFsbHMgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRheXMgYmVmb3JlCisgICAgICogb3IgYWZ0ZXIgRWFzdGVyIFN1bmRheSBlYWNoIHllYXIsIHVzaW5nIGVpdGhlciB0aGUgV2VzdGVybgorICAgICAqIG9yIE9ydGhvZG94IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIGRheXNBZnRlciBUaGUgbnVtYmVyIG9mIGRheXMgYmVmb3JlICgtKSBvciBhZnRlciAoKykgRWFzdGVyCisgICAgICogQHBhcmFtIG9ydGhvZG94ICBVc2UgdGhlIE9ydGhvZG94IGNhbGVuZGFyPworICAgICAqIEBwYXJhbSBuYW1lICAgICAgVGhlIG5hbWUgb2YgdGhlIGhvbGlkYXkKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBFYXN0ZXJIb2xpZGF5KGludCBkYXlzQWZ0ZXIsIGJvb2xlYW4gb3J0aG9kb3gsIFN0cmluZyBuYW1lKQorICAgIHsKKyAgICAgICAgc3VwZXIobmFtZSwgbmV3IEVhc3RlclJ1bGUoZGF5c0FmdGVyLCBvcnRob2RveCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNocm92ZSBUdWVzZGF5LCBha2EgTWFyZGkgR3JhcywgNDggZGF5cyBiZWZvcmUgRWFzdGVyCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIEVhc3RlckhvbGlkYXkgU0hST1ZFX1RVRVNEQVkgID0gbmV3IEVhc3RlckhvbGlkYXkoLTQ4LCAgICAiU2hyb3ZlIFR1ZXNkYXkiKTsKKworICAgIC8qKgorICAgICAqIEFzaCBXZWRuZXNkYXksIHN0YXJ0IG9mIExlbnQsIDQ3IGRheXMgYmVmb3JlIEVhc3RlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IEFTSF9XRURORVNEQVkgICA9IG5ldyBFYXN0ZXJIb2xpZGF5KC00NywgICAgIkFzaCBXZWRuZXNkYXkiKTsKKworICAgIC8qKgorICAgICAqIFBhbG0gU3VuZGF5LCA3IGRheXMgYmVmb3JlIEVhc3RlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IFBBTE1fU1VOREFZICAgICA9IG5ldyBFYXN0ZXJIb2xpZGF5KCAtNywgICAgIlBhbG0gU3VuZGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBNYXVuZHkgVGh1cnNkYXksIDMgZGF5cyBiZWZvcmUgRWFzdGVyCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIEVhc3RlckhvbGlkYXkgTUFVTkRZX1RIVVJTREFZID0gbmV3IEVhc3RlckhvbGlkYXkoIC0zLCAgICAiTWF1bmR5IFRodXJzZGF5Iik7CisKKyAgICAvKioKKyAgICAgKiBHb29kIEZyaWRheSwgMiBkYXlzIGJlZm9yZSBFYXN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBHT09EX0ZSSURBWSAgICAgPSBuZXcgRWFzdGVySG9saWRheSggLTIsICAgICJHb29kIEZyaWRheSIpOworCisgICAgLyoqCisgICAgICogRWFzdGVyIFN1bmRheQorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IEVBU1RFUl9TVU5EQVkgICA9IG5ldyBFYXN0ZXJIb2xpZGF5KCAgMCwgICAgIkVhc3RlciBTdW5kYXkiKTsKKworICAgIC8qKgorICAgICAqIEVhc3RlciBNb25kYXksIDEgZGF5IGFmdGVyIEVhc3RlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IEVBU1RFUl9NT05EQVkgICA9IG5ldyBFYXN0ZXJIb2xpZGF5KCAgMSwgICAgIkVhc3RlciBNb25kYXkiKTsKKworICAgIC8qKgorICAgICAqIEFzY2Vuc2lvbiwgMzkgZGF5cyBhZnRlciBFYXN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBBU0NFTlNJT04gICAgICAgPSBuZXcgRWFzdGVySG9saWRheSggMzksICAgICJBc2NlbnNpb24iKTsKKworICAgIC8qKgorICAgICAqIFBlbnRlY29zdCAoYWthIFdoaXQgU3VuZGF5KSwgNDkgZGF5cyBhZnRlciBFYXN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBQRU5URUNPU1QgICAgICAgPSBuZXcgRWFzdGVySG9saWRheSggNDksICAgICJQZW50ZWNvc3QiKTsKKworICAgIC8qKgorICAgICAqIFdoaXQgU3VuZGF5IChha2EgUGVudGVjb3N0KSwgNDkgZGF5cyBhZnRlciBFYXN0ZXIKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgRWFzdGVySG9saWRheSBXSElUX1NVTkRBWSAgICAgPSBuZXcgRWFzdGVySG9saWRheSggNDksICAgICJXaGl0IFN1bmRheSIpOworCisgICAgLyoqCisgICAgICogV2hpdCBNb25kYXksIDUwIGRheXMgYWZ0ZXIgRWFzdGVyCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIEVhc3RlckhvbGlkYXkgV0hJVF9NT05EQVkgICAgID0gbmV3IEVhc3RlckhvbGlkYXkoIDUwLCAgICAiV2hpdCBNb25kYXkiKTsKKworICAgIC8qKgorICAgICAqIENvcnB1cyBDaHJpc3RpLCA2MCBkYXlzIGFmdGVyIEVhc3RlcgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBmaW5hbCBFYXN0ZXJIb2xpZGF5IENPUlBVU19DSFJJU1RJICA9IG5ldyBFYXN0ZXJIb2xpZGF5KCA2MCwgICAgIkNvcnB1cyBDaHJpc3RpIik7Cit9CisKK2NsYXNzIEVhc3RlclJ1bGUgaW1wbGVtZW50cyBEYXRlUnVsZSB7CisgICAgcHVibGljIEVhc3RlclJ1bGUoaW50IGRheXNBZnRlckVhc3RlciwgYm9vbGVhbiBpc09ydGhvZG94KSB7CisgICAgICAgIHRoaXMuZGF5c0FmdGVyRWFzdGVyID0gZGF5c0FmdGVyRWFzdGVyOworICAgICAgICBpZiAoaXNPcnRob2RveCkgeworICAgICAgICAgICAgb3J0aG9kb3guc2V0R3JlZ29yaWFuQ2hhbmdlKG5ldyBEYXRlKExvbmcuTUFYX1ZBTFVFKSk7CisgICAgICAgICAgICBjYWxlbmRhciA9IG9ydGhvZG94OworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoaXMgcnVsZSBvbiBvciBhZnRlciB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqLworICAgIHB1YmxpYyBEYXRlIGZpcnN0QWZ0ZXIoRGF0ZSBzdGFydCkKKyAgICB7CisgICAgICAgIHJldHVybiBkb0ZpcnN0QmV0d2VlbihzdGFydCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoaXMgcnVsZSBvbiBvciBhZnRlcgorICAgICAqIHRoZSBnaXZlbiBzdGFydCBkYXRlIGFuZCBiZWZvcmUgdGhlIGdpdmVuIGVuZCBkYXRlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlIGZpcnN0QmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCkKKyAgICB7CisgICAgICAgIHJldHVybiBkb0ZpcnN0QmV0d2VlbihzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gRGF0ZSBpcyBvbiB0aGUgc2FtZSBkYXkgYXMgRWFzdGVyCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNPbihEYXRlIGRhdGUpCisgICAgeworICAgICAgICBzeW5jaHJvbml6ZWQoY2FsZW5kYXIpIHsKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoZGF0ZSk7CisgICAgICAgICAgICBpbnQgZGF5T2ZZZWFyID0gY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKTsKKworICAgICAgICAgICAgY2FsZW5kYXIuc2V0VGltZShjb21wdXRlSW5ZZWFyKGNhbGVuZGFyLmdldFRpbWUoKSwgY2FsZW5kYXIpKTsKKworICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikgPT0gZGF5T2ZZZWFyOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgRWFzdGVyIG9jY3VycyBiZXR3ZWVuIHRoZSB0d28gZGF0ZXMgZ2l2ZW4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0JldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpCisgICAgeworICAgICAgICByZXR1cm4gZmlyc3RCZXR3ZWVuKHN0YXJ0LCBlbmQpICE9IG51bGw7IC8vIFRPRE86IG9wdGltaXplPworICAgIH0KKworICAgIHByaXZhdGUgRGF0ZSBkb0ZpcnN0QmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCkKKyAgICB7CisgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJkb0ZpcnN0QmV0d2Vlbjogc3RhcnQgICA9ICIgKyBzdGFydC50b1N0cmluZygpKTsKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImRvRmlyc3RCZXR3ZWVuOiBlbmQgICAgID0gIiArIGVuZC50b1N0cmluZygpKTsKKworICAgICAgICBzeW5jaHJvbml6ZWQoY2FsZW5kYXIpIHsKKyAgICAgICAgICAgIC8vIEZpZ3VyZSBvdXQgd2hlbiB0aGlzIGhvbGlkYXkgbGFuZHMgaW4gdGhlIGdpdmVuIHllYXIKKyAgICAgICAgICAgIERhdGUgcmVzdWx0ID0gY29tcHV0ZUluWWVhcihzdGFydCwgY2FsZW5kYXIpOworCisgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICAgICAgICAgICAgICAgIHJlc3VsdCAgPSAiICsgcmVzdWx0LnRvU3RyaW5nKCkpOworCisgICAgICAgICAgICAvLyBXZSBtaWdodCBoYXZlIGdvdHRlbiBhIGRhdGUgdGhhdCdzIGluIHRoZSBzYW1lIHllYXIgYXMgInN0YXJ0IiwgYnV0CisgICAgICAgICAgICAvLyBlYXJsaWVyIGluIHRoZSB5ZWFyLiAgSWYgc28sIGdvIHRvIG5leHQgeWVhcgorICAgICAgICAgICAgaWYgKHJlc3VsdC5iZWZvcmUoc3RhcnQpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhbGVuZGFyLnNldFRpbWUoc3RhcnQpOworICAgICAgICAgICAgICAgIGNhbGVuZGFyLmdldChDYWxlbmRhci5ZRUFSKTsgICAgLy8gSkRLIDEuMS4yIGJ1ZyB3b3JrYXJvdW5kCisgICAgICAgICAgICAgICAgY2FsZW5kYXIuYWRkKENhbGVuZGFyLllFQVIsIDEpOworCisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgICAgICAgICAgICBSZXN1bHQgYmVmb3JlIHN0YXJ0LCBnb2luZyB0byBuZXh0IHllYXI6ICIKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICsgY2FsZW5kYXIuZ2V0VGltZSgpLnRvU3RyaW5nKCkpOworCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gY29tcHV0ZUluWWVhcihjYWxlbmRhci5nZXRUaW1lKCksIGNhbGVuZGFyKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICAgICAgICAgICAgICAgIHJlc3VsdCAgPSAiICsgcmVzdWx0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZW5kICE9IG51bGwgJiYgcmVzdWx0LmFmdGVyKGVuZCkpIHsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiUmVzdWx0IGFmdGVyIGVuZCwgcmV0dXJuaW5nIG51bGwiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIHRoZSBtb250aCBhbmQgZGF0ZSBvbiB3aGljaCB0aGlzIGhvbGlkYXkgZmFsbHMgaW4gdGhlIHllYXIKKyAgICAgKiBjb250YWluaW5nIHRoZSBkYXRlICJkYXRlIi4gIEZpcnN0IGZpZ3VyZSBvdXQgd2hpY2ggZGF0ZSBFYXN0ZXIKKyAgICAgKiBsYW5kcyBvbiBpbiB0aGlzIHllYXIsIGFuZCB0aGVuIGFkZCB0aGUgb2Zmc2V0IGZvciB0aGlzIGhvbGlkYXkgdG8gZ2V0CisgICAgICogdGhlIHJpZ2h0IGRhdGUuCisgICAgICogPHA+CisgICAgICogVGhlIGFsZ29yaXRobSBoZXJlIGlzIHRha2VuIGZyb20gdGhlCisgICAgICogPGEgaHJlZj0iaHR0cDovL3d3dy5mYXFzLm9yZy9mYXFzL2NhbGVuZGFycy9mYXEvIj5DYWxlbmRhciBGQVE8L2E+LgorICAgICAqLworICAgIHByaXZhdGUgRGF0ZSBjb21wdXRlSW5ZZWFyKERhdGUgZGF0ZSwgR3JlZ29yaWFuQ2FsZW5kYXIgY2FsKQorICAgIHsKKyAgICAgICAgaWYgKGNhbCA9PSBudWxsKSBjYWwgPSBjYWxlbmRhcjsKKworICAgICAgICBzeW5jaHJvbml6ZWQoY2FsKSB7CisgICAgICAgICAgICBjYWwuc2V0VGltZShkYXRlKTsKKworICAgICAgICAgICAgaW50IHllYXIgPSBjYWwuZ2V0KENhbGVuZGFyLllFQVIpOworICAgICAgICAgICAgaW50IGcgPSB5ZWFyICUgMTk7ICAvLyAiR29sZGVuIE51bWJlciIgb2YgeWVhciAtIDEKKyAgICAgICAgICAgIGludCBpID0gMDsgICAgICAgICAgLy8gIyBvZiBkYXlzIGZyb20gMy8yMSB0byB0aGUgUGFzY2hhbCBmdWxsIG1vb24KKyAgICAgICAgICAgIGludCBqID0gMDsgICAgICAgICAgLy8gV2Vla2RheSAoMC1iYXNlZCkgb2YgUGFzY2hhbCBmdWxsIG1vb24KKworICAgICAgICAgICAgaWYgKGNhbC5nZXRUaW1lKCkuYWZ0ZXIoIGNhbC5nZXRHcmVnb3JpYW5DaGFuZ2UoKSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gV2UncmUgcGFzdCB0aGUgR3JlZ29yaWFuIHN3aXRjaG92ZXIsIHNvIHVzZSB0aGUgR3JlZ29yaWFuIHJ1bGVzLgorICAgICAgICAgICAgICAgIGludCBjID0geWVhciAvIDEwMDsKKyAgICAgICAgICAgICAgICBpbnQgaCA9IChjIC0gYy80IC0gKDgqYysxMykvMjUgKyAxOSpnICsgMTUpICUgMzA7CisgICAgICAgICAgICAgICAgaSA9IGggLSAoaC8yOCkqKDEgLSAoaC8yOCkqKDI5LyhoKzEpKSooKDIxLWcpLzExKSk7CisgICAgICAgICAgICAgICAgaiA9ICh5ZWFyICsgeWVhci80ICsgaSArIDIgLSBjICsgYy80KSAlIDc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gVXNlIHRoZSBvbGQgSnVsaWFuIHJ1bGVzLgorICAgICAgICAgICAgICAgIGkgPSAoMTkqZyArIDE1KSAlIDMwOworICAgICAgICAgICAgICAgIGogPSAoeWVhciArIHllYXIvNCArIGkpICUgNzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBsID0gaSAtIGo7CisgICAgICAgICAgICBpbnQgbSA9IDMgKyAobCs0MCkvNDQ7ICAgICAgICAgICAgICAvLyAxLWJhc2VkIG1vbnRoIGluIHdoaWNoIEVhc3RlciBmYWxscworICAgICAgICAgICAgaW50IGQgPSBsICsgMjggLSAzMSoobS80KTsgICAgICAgICAgLy8gRGF0ZSBvZiBFYXN0ZXIgd2l0aGluIHRoYXQgbW9udGgKKworICAgICAgICAgICAgY2FsLmNsZWFyKCk7CisgICAgICAgICAgICBjYWwuc2V0KENhbGVuZGFyLkVSQSwgR3JlZ29yaWFuQ2FsZW5kYXIuQUQpOworICAgICAgICAgICAgY2FsLnNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuTU9OVEgsIG0tMSk7ICAgICAgIC8vIDAtYmFzZWQKKyAgICAgICAgICAgIGNhbC5zZXQoQ2FsZW5kYXIuREFURSwgZCk7CisgICAgICAgICAgICBjYWwuZ2V0VGltZSgpOyAgICAgICAgICAgICAgICAgICAgICAvLyBKREsgMS4xLjIgYnVnIHdvcmthcm91bmQKKyAgICAgICAgICAgIGNhbC5hZGQoQ2FsZW5kYXIuREFURSwgZGF5c0FmdGVyRWFzdGVyKTsKKworICAgICAgICAgICAgcmV0dXJuIGNhbC5nZXRUaW1lKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBHcmVnb3JpYW5DYWxlbmRhciBncmVnb3JpYW4gPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoLyogbmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKSAqLyk7CisgICAgcHJpdmF0ZSBzdGF0aWMgR3JlZ29yaWFuQ2FsZW5kYXIgb3J0aG9kb3ggPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoLyogbmV3IFNpbXBsZVRpbWVab25lKDAsICJVVEMiKSAqLyk7CisKKyAgICBwcml2YXRlIGludCAgICAgICAgICAgICAgIGRheXNBZnRlckVhc3RlcjsKKyAgICBwcml2YXRlIEdyZWdvcmlhbkNhbGVuZGFyIGNhbGVuZGFyID0gZ3JlZ29yaWFuOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRXRoaW9waWNDYWxlbmRhci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvRXRoaW9waWNDYWxlbmRhci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5NTFmYzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9FdGhpb3BpY0NhbGVuZGFyLmphdmEKQEAgLTAsMCArMSwzMzIgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAgICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIEltcGxlbWVudCB0aGUgRXRoaW9waWMgY2FsZW5kYXIgc3lzdGVtLgorICogPHA+CisgKiBFdGhpb3BpY0NhbGVuZGFyIHVzdWFsbHkgc2hvdWxkIGJlIGluc3RhbnRpYXRlZCB1c2luZyAKKyAqIHtAbGluayBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyI2dldEluc3RhbmNlKFVMb2NhbGUpfSBwYXNzaW5nIGluIGEgPGNvZGU+VUxvY2FsZTwvY29kZT4KKyAqIHdpdGggdGhlIHRhZyA8Y29kZT4iQGNhbGVuZGFyPWV0aGlvcGljIjwvY29kZT4uPC9wPgorICoKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcgorICogQGRyYWZ0IElDVSAzLjQKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgRXRoaW9waWNDYWxlbmRhciBleHRlbmRzIENFQ2FsZW5kYXIgCit7CisgICAgLy9qZGsxLjQuMiBzZXJpYWx2ZXIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtMjQzODQ5NTc3MTMzOTMxNTYwOEw7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTIxOFx1MTIzNVx1MTJhOFx1MTIyOFx1MTIxZCwgdGhlIDFzdCBtb250aCBvZiB0aGUgRXRoaW9waWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNRVNLRVJFTSA9IDA7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTMyNVx1MTI0NVx1MTIxZFx1MTI3NSwgdGhlIDJuZCBtb250aCBvZiB0aGUgRXRoaW9waWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURUtFTVQgPSAxOworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTEyODVcdTEyZjNcdTEyMmQsIHRoZSAzcmQgbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEVEQVIgPSAyOworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTEyNzNcdTEyODVcdTEyMjNcdTEyMjUsIHRoZSA0dGggbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEFIU0FTID0gMzsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUxMzI1XHUxMjJkLCB0aGUgNXRoIG1vbnRoIG9mIHRoZSBFdGhpb3BpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFUiA9IDQ7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTJlOFx1MTJhYlx1MTI3Mlx1MTI3NSwgdGhlIDZ0aCBtb250aCBvZiB0aGUgRXRoaW9waWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBZRUtBVElUID0gNTsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUxMjE4XHUxMzBiXHUxMjYyXHUxMjc1LCB0aGUgN3RoIG1vbnRoIG9mIHRoZSBFdGhpb3BpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1FR0FCSVQgPSA2OworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBcdTEyMWFcdTEyZWJcdTEyZGRcdTEyZWIsIHRoZSA4dGggbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUlBWklBID0gNzsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUxMzBkXHUxMjk1XHUxMjY2XHUxMjc1LCB0aGUgOXRoIG1vbnRoIG9mIHRoZSBFdGhpb3BpYyB5ZWFyLiAKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEdFTkJPVCA9IDg7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTIzMFx1MTI5NCwgdGhlIDEwdGggbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VORSA9IDk7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTIxMFx1MTIxZFx1MTIwYywgdGhlIDExdGggbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSEFNTEUgPSAxMDsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgXHUxMjkwXHUxMjEwXHUxMjM0LCB0aGUgMTJ0aCBtb250aCBvZiB0aGUgRXRoaW9waWMgeWVhci4gCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBORUhBU1NFID0gMTE7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIFx1MTMzM1x1MTMwOVx1MTIxY1x1MTI5NSwgdGhlIDEzdGggbW9udGggb2YgdGhlIEV0aGlvcGljIHllYXIuIAorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUEFHVU1FTiA9IDEyOworIAorICAgIC8vIFVwIHVudGlsIHRoZSBlbmQgb2YgdGhlIDE5dGggY2VudHVyeSB0aGUgcHJldmFpbGFudCBjb252ZW50aW9uIHdhcyB0bworICAgIC8vIHJlZmVyZW5jZSB0aGUgRXRoaW9waWMgQ2FsZW5kYXIgZnJvbSB0aGUgY3JlYXRpb24gb2YgdGhlIHdvcmxkLCAKKyAgICAvLyBcdTEyZDNcdTEyMThcdTEyNzBcdTEzNjFcdTEyZDNcdTEyMDhcdTEyMWQKKyAgICAvLyAoQW1ldGUgQWxlbSA1NTAwIEJDKS4gIEFzIEV0aGlvcGlhIG1vZGVybml6ZWQgdGhlIHJlZmVyZW5jZSBlcG9jaCBmcm9tCisgICAgLy8gdGhlIGJpcnRoIG9mIENocmlzdCAoXHUxMmQzXHUxMjE4XHUxMjcwXHUxMzYxXHUxMjFkXHUxMjE1XHUxMjI4XHUxMjc1KSAKKyAgICAvLyBiZWdhbiB0byBkaXNwbGFjZSB0aGUgY3JlYXRpb24gb2YgdGhlCisgICAgLy8gd29ybGQgcmVmZXJlbmNlIHBvaW50LiAgSG93ZXZlciwgeWVhcnMgYmVmb3JlIHRoZSBiaXJ0aCBvZiBDaHJpc3QgYXJlCisgICAgLy8gc3RpbGwgcmVmZXJlbmNlZCBpbiB0aGUgY3JlYXRpb24gb2YgdGhlIHdvcmxkIHN5c3RlbS4gICAKKyAgICAvLyBUaHVzIC0xMDAgXHUxMmQzL1x1MTIxZAorICAgIC8vIHdvdWxkIGJlIHJlbmRlcmVkIGFzIDU0MDAgIFx1MTJkMy9cdTEyZDMuCisgICAgLy8KKyAgICAvLyBUaGUgY3JlYXRpb24gb2YgdGhlIHdvcmxkIGluIEV0aGlvcGljIGNhbm5vbiB3YXMgCisgICAgLy8gTWVza2VyZW0gMSwgLTU1MDAgIFx1MTJkMy9cdTEyMWQgMDA6MDA6MDAKKyAgICAvLyBhcHBseWluZyB0aGUgYmlydGggb2YgQ2hyaXN0IHJlZmVyZW5jZSBhbmQgRXRoaW9waWFuIHRpbWUgY29udmVudGlvbnMuICBUaGlzIGlzCisgICAgLy8gNiBob3VycyBsZXNzIHRoYW4gdGhlIEp1bGlhbiBlcG9jaCByZWZlcmVuY2UgcG9pbnQgKG5vb24pLiAgSW4gR3JlZ29yaWFuCisgICAgLy8gdGhlIGRhdGUgYW5kIHRpbWUgd2FzIEp1bHkgMTh0aCAtNTQ5MyBCQyAwNjowMCBBTS4KKwkKKyAgICAvLyBKdWxpYW4gRGF5cyByZWxhdGl2ZSB0byB0aGUgCisgICAgLy8gXHUxMmQzXHUxMjE4XHUxMjcwXHUxMzYxXHUxMjFkXHUxMjE1XHUxMjI4XHUxMjc1IGVwb2NoCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEpEX0VQT0NIX09GRlNFVF9BTUVURV9BTEVNID0gLTI4NTAxOTsKKworICAgIC8vIEp1bGlhbiBEYXlzIHJlbGF0aXZlIHRvIHRoZSAKKyAgICAvLyBcdTEyZDNcdTEyMThcdTEyNzBcdTEzNjFcdTEyZDNcdTEyMDhcdTEyMWQgZXBvY2gKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgSkRfRVBPQ0hfT0ZGU0VUX0FNRVRFX01JSFJFVCA9IDE3MjM4NTY7CisKKyAgICAvLyBpbml0aWFsaXplIGJhc2UgY2xhc3MgY29uc3RhbnQsIGNvbW1vbiB0byBhbGwgY29uc3RydWN0b3JzCisgICAgeworICAgIAlqZEVwb2NoT2Zmc2V0ID0gSkRfRVBPQ0hfT0ZGU0VUX0FNRVRFX01JSFJFVDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgZGVmYXVsdCA8Y29kZT5FdGhpb3BpY0NhbGVuZGFyPC9jb2RlPiB1c2luZyB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXRoaW9waWNDYWxlbmRhcigpIHsKKyAgICAJc3VwZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RXRoaW9waWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSBUaGUgdGltZSB6b25lIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXRoaW9waWNDYWxlbmRhcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIHN1cGVyKHpvbmUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FdGhpb3BpY0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXRoaW9waWNDYWxlbmRhcihMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICBzdXBlcihhTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RXRoaW9waWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBpY3UgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXRoaW9waWNDYWxlbmRhcihVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcihsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FdGhpb3BpY0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSBUaGUgdGltZSB6b25lIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBFdGhpb3BpY0NhbGVuZGFyKFRpbWVab25lIHpvbmUsIExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGFMb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RXRoaW9waWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBpY3UgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXRoaW9waWNDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBsb2NhbGUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+RXRoaW9waWNDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIE1lc2tlcmVtLgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXRoaW9waWNDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkgeworICAgIAlzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkV0aGlvcGljQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgZGF0ZSB0byB3aGljaCB0aGUgbmV3IGNhbGVuZGFyIGlzIHNldC4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEV0aGlvcGljQ2FsZW5kYXIoRGF0ZSBkYXRlKSB7CisgICAgCXN1cGVyKGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5FdGhpb3BpY0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlCisgICAgICogYW5kIHRpbWUgc2V0IGZvciB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gbW9udGggICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIE1lc2tlcmVtLgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjREFURSBEQVRFfSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBob3VyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjSE9VUl9PRl9EQVkgSE9VUl9PRl9EQVl9IHRpbWUgZmllbGQuCisgICAgICogQHBhcmFtIG1pbnV0ZSAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNSU5VVEUgTUlOVVRFfSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBzZWNvbmQgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjU0VDT05EIFNFQ09ORH0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEV0aGlvcGljQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUsIGludCBob3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgeworICAgIAlzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSwgaG91ciwgbWludXRlLCBzZWNvbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYW4gRXRoaW9waWMgeWVhciwgbW9udGgsIGFuZCBkYXkgdG8gYSBKdWxpYW4gZGF5LgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgdGhlIHllYXIKKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIG1vbnRoCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGRheQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBFdGhpb3BpY1RvSkQobG9uZyB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKSB7CisgICAgCXJldHVybiBjZVRvSkQoeWVhciwgbW9udGgsIGRhdGUsIEpEX0VQT0NIX09GRlNFVF9BTUVURV9NSUhSRVQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSW50ZWdlcltdIGdldERhdGVGcm9tSkQoaW50IGp1bGlhbkRheSkgeworICAgIAlyZXR1cm4gZ2V0RGF0ZUZyb21KRChqdWxpYW5EYXksIEpEX0VQT0NIX09GRlNFVF9BTUVURV9NSUhSRVQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgQWxlbSBvciBNaWhyZXQgZXJhLgorICAgICAqCisgICAgICogQHBhcmFtIG9uT2ZmIFNldCBBbWV0ZSBBbGVtIGVyYSBpZiB0cnVlLCBvdGhlcndpc2Ugc2V0IEFtZXRlIE1paHJldCBlcmEuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEFtZXRlQWxlbUVyYShib29sZWFuIG9uT2ZmKSB7CisgICAgCXRoaXMuamRFcG9jaE9mZnNldCA9IG9uT2ZmIAorCSAgICA/IEpEX0VQT0NIX09GRlNFVF9BTUVURV9BTEVNIAorCSAgICA6IEpEX0VQT0NIX09GRlNFVF9BTUVURV9NSUhSRVQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgY2FsZW5kYXIgaXMgc2V0IHRvIHRoZSBBbWV0ZSBBbGVtIGVyYS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBzZXQgdG8gdGhlIEFtZXRlIEFsZW0gZXJhLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0FtZXRlQWxlbUVyYSgpIHsKKyAgICAJcmV0dXJuIHRoaXMuamRFcG9jaE9mZnNldCA9PSBKRF9FUE9DSF9PRkZTRVRfQU1FVEVfQUxFTTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQ2FsZW5kYXIgdHlwZS4KKyAgICAgKiBAcmV0dXJuIHR5cGUgb2YgY2FsZW5kYXIgKGdyZWdvcmlhbiwgZXRjLikKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuNAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VHlwZSgpIHsKKyAgICAgICAgcmV0dXJuICJldGhpb3BpYyI7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9GcmVlemFibGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0ZyZWV6YWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3NDYwNjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9GcmVlemFibGUuamF2YQpAQCAtMCwwICsxLDMyNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKKy8qKgorICogPHByZT4KKyAqICBEUkFGVAorICogIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAqICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiA8L3ByZT4KKyAqIAorICogUHJvdmlkZXMgYSBmbGV4aWJsZSBtZWNoYW5pc20gZm9yIGNvbnRyb2xsaW5nIGFjY2Vzcywgd2l0aG91dCByZXF1aXJpbmcgdGhhdAorICogYSBjbGFzcyBiZSBpbW11dGFibGUuIE9uY2UgbG9ja2VkLCBhbiBvYmplY3QgY2FuIG5ldmVyIGJlIHVubG9ja2VkLCBzbyBpdCBpcworICogdGhyZWFkLXNhZmUgZnJvbSB0aGF0IHBvaW50IG9ud2FyZC4gVGhlIGltcGxlbWVudGF0aW9uIG9mIGJvdGggbWV0aG9kcyBtdXN0CisgKiBiZSBzeW5jaHJvbml6ZWQuIE9uY2UgdGhlIG9iamVjdCBoYXMgYmVlbiBsb2NrZWQsIGl0IG11c3QgZ3VhcmFudGVlIHRoYXQgbm8KKyAqIGNoYW5nZXMgY2FuIGJlIG1hZGUgdG8gaXQuIEFueSBhdHRlbXB0IHRvIGFsdGVyIGl0IG11c3QgcmFpc2UgYW4KKyAqIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uIGV4Y2VwdGlvbi4gVGhpcyBtZWFucyB0aGF0IHdoZW4gdGhlIG9iamVjdAorICogcmV0dXJucyBpbnRlcm5hbCBvYmplY3RzLCBvciBpZiBhbnlvbmUgaGFzIHJlZmVyZW5jZXMgdG8gdGhvc2UgaW50ZXJuYWwKKyAqIG9iamVjdHMsIHRoYXQgdGhvc2UgaW50ZXJuYWwgb2JqZWN0cyBtdXN0IGVpdGhlciBiZSBpbW11dGFibGUsIG9yIG11c3QgYWxzbworICogcmFpc2UgZXhjZXB0aW9ucyBpZiBhbnkgYXR0ZW1wdCB0byBtb2RpZnkgdGhlbSBpcyBtYWRlLiBPZiBjb3Vyc2UsIHRoZSBvYmplY3QKKyAqIGNhbiByZXR1cm4gY2xvbmVzIG9mIGludGVybmFsIG9iamVjdHMsIHNpbmNlIHRob3NlIGFyZSBzYWZlLgorICogPGgyPkJhY2tncm91bmQ8L2gyPgorICogPHA+CisgKiBUaGVyZSBhcmUgb2Z0ZW4gdGltZXMgd2hlbiB5b3UgbmVlZCBvYmplY3RzIHRvIGJlIG9iamVjdHMgJ3NhZmUnLCBzbyB0aGF0CisgKiB0aGV5IGNhbid0IGJlIG1vZGlmaWVkLiBFeGFtcGxlcyBhcmUgd2hlbiBvYmplY3RzIG5lZWQgdG8gYmUgdGhyZWFkLXNhZmUsIG9yCisgKiBpbiB3cml0aW5nIHJvYnVzdCBjb2RlLCBvciBpbiBjYWNoZXMuIElmIHlvdSBhcmUgb25seSBjcmVhdGluZyB5b3VyIG93bgorICogb2JqZWN0cywgeW91IGNhbiBndWFyYW50ZWUgdGhpcywgb2YgY291cnNlIC0tIGJ1dCBvbmx5IGlmIHlvdSBkb24ndCBtYWtlIGEKKyAqIG1pc3Rha2UuIElmIHlvdSBoYXZlIG9iamVjdHMgaGFuZGVkIGludG8geW91LCBvciBhcmUgY3JlYXRpbmcgb2JqZWN0cyB1c2luZworICogb3RoZXJzIGhhbmRlZCBpbnRvIHlvdSwgaXQgaXMgYSBkaWZmZXJlbnQgc3RvcnkuIEl0IGFsbCBjb21lcyBkb3duIHRvIHdoZXRoZXIKKyAqIHlvdSB3YW50IHRvIHRha2UgdGhlIEJsYW5jaGUgRHVib2lzIGFwcHJvYWNoICgmcXVvdDtkZXBlbmQgb24gdGhlIGtpbmRuZXNzIG9mCisgKiBzdHJhbmdlcnMmcXVvdDspIG9yIHRoZSBBbmR5IEdyb3ZlIGFwcHJvYWNoICgmcXVvdDtPbmx5IHRoZSBQYXJhbm9pZAorICogU3Vydml2ZSZxdW90OykuCisgKiA8L3A+CisgKiA8cD4KKyAqIEZvciBleGFtcGxlLCBzdXBwb3NlIHdlIGhhdmUgYSBzaW1wbGUgY2xhc3M6CisgKiA8L3A+CisgKiAKKyAqIDxwcmU+CisgKiBwdWJsaWMgY2xhc3MgQSB7CisgKiAJcHJvdGVjdGVkIENvbGxlY3Rpb24gYjsKKyAqIAorICogCXByb3RlY3RlZCBDb2xsZWN0aW9uIGM7CisgKiAKKyAqIAlwdWJsaWMgQ29sbGVjdGlvbiBnZXRfYigpIHsKKyAqIAkJcmV0dXJuIGI7CisgKiAJfQorICogCisgKiAJcHVibGljIENvbGxlY3Rpb24gZ2V0X2MoKSB7CisgKiAJCXJldHVybiBjOworICogCX0KKyAqIAorICogCXB1YmxpYyBBKENvbGxlY3Rpb24gbmV3X2IsIENvbGxlY3Rpb24gbmV3X2MpIHsKKyAqIAkJYiA9IG5ld19iOworICogCQljID0gbmV3X2M7CisgKiAJfQorICogfQorICogPC9wcmU+CisgKiAKKyAqIDxwPgorICogU2luY2UgdGhlIGNsYXNzIGRvZXNuJ3QgaGF2ZSBhbnkgc2V0dGVycywgc29tZW9uZSBtaWdodCB0aGluayB0aGF0IGl0IGlzCisgKiBpbW11dGFibGUuIFlvdSBrbm93IHdoZXJlIHRoaXMgaXMgbGVhZGluZywgb2YgY291cnNlOyB0aGlzIGNsYXNzIGlzIHVuc2FmZSBpbgorICogYSBudW1iZXIgb2Ygd2F5cy4gVGhlIGZvbGxvd2luZyBpbGx1c3RyYXRlcyB0aGF0LgorICogPC9wPgorICogCisgKiA8cHJlPgorICogIHB1YmxpYyB0ZXN0MShTdXBwb3NlZGx5SW1tdXRhYmxlQ2xhc3MgeCwgU2FmZVN0b3JhZ2UgeSkgeworICogICAmbHQ7Zm9udCBjb2xvcj0mcXVvdDsjMDAwMEZGJnF1b3Q7Jmd0OyAgICAmbHQ7YiZndDsvLyB1bnNhZmUgZ2V0dGVyJmx0Oy9iJmd0OworICogICAmbHQ7L2ZvbnQmZ3Q7ICAgIEEgYSA9IHguZ2V0QSgpOworICogICBDb2xsZWN0aW9uIGNvbCA9IGEuZ2V0X2IoKTsKKyAqICAgY29sLmFkZChzb21ldGhpbmcpOyZsdDtmb250IGNvbG9yPSZxdW90OyMwMDAwRkYmcXVvdDsmZ3Q7IC8vIGEgaGFzIG5vdyBiZWVuIGNoYW5nZWQsIGFuZCB4IHRvbworICogICAmbHQ7L2ZvbnQmZ3Q7CisgKiAgICZsdDtmb250IGNvbG9yPSZxdW90OyMwMDAwRkYmcXVvdDsmZ3Q7Jmx0O2ImZ3Q7Ly8gdW5zYWZlIGNvbnN0cnVjdG9yJmx0Oy9iJmd0OyZsdDsvZm9udCZndDsKKyAqICAgYSA9IG5ldyBBKGNvbCwgY29sKTsKKyAqICAgeS5zdG9yZShhKTsKKyAqICAgY29sLmFkZChzb21ldGhpbmcpOyZsdDtmb250IGNvbG9yPSZxdW90OyMwMDAwRkYmcXVvdDsmZ3Q7IC8vIGEgaGFzIG5vdyBiZWVuIGNoYW5nZWQsIGFuZCB5IHRvbworICogIAorICogICAmbHQ7L2ZvbnQmZ3Q7fQorICogPC9wcmU+CisgKiAKKyAqIDxwPgorICogVGhlcmUgYXJlIGEgZmV3IGRpZmZlcmVudCB0ZWNobmlxdWVzIGZvciBoYXZpbmcgc2FmZSBjbGFzc2VzLgorICogPC9wPgorICogPG9sPgorICogPGxpPkNvbnN0IG9iamVjdHMuIEluIEMrKywgeW91IGNhbiBkZWNsYXJlIHBhcmFtZXRlcnMgY29uc3QuPC9saT4KKyAqIDxsaT5JbW11dGFibGUgd3JhcHBlcnMuIEZvciBleGFtcGxlLCB5b3UgY2FuIHB1dCBhIGNvbGxlY3Rpb24gaW4gYW4KKyAqIGltbXV0YWJsZSB3cmFwcGVyLjwvbGk+CisgKiA8bGk+QWx3YXlzLUltbXV0YWJsZSBvYmplY3RzLiBKYXZhIHVzZXMgdGhpcyBhcHByb2FjaCwgd2l0aCBhIGZldworICogdmFyaWF0aW9ucy4gRXhhbXBsZXM6CisgKiA8b2w+CisgKiA8bGk+U2ltcGxlLiBPbmNlIGEgQ29sb3IgaXMgY3JlYXRlZCAoZWcgZnJvbSBSLCBHLCBhbmQgQiBpbnRlZ2VycykgaXQgaXMKKyAqIGltbXV0YWJsZS48L2xpPgorICogPGxpPkJ1aWxkZXIgQ2xhc3MuIFRoZXJlIGlzIGEgc2VwYXJhdGUgJ2J1aWxkZXInIGNsYXNzLiBGb3IgZXhhbXBsZSwKKyAqIG1vZGlmaWFibGUgU3RyaW5ncyBhcmUgY3JlYXRlZCB1c2luZyBTdHJpbmdCdWZmZXIgKHdoaWNoIGRvZXNuJ3QgaGF2ZSB0aGUKKyAqIGZ1bGwgU3RyaW5nIEFQSSBhdmFpbGFibGUpLiBPbmNlIHlvdSB3YW50IGFuIGltbXV0YWJsZSBmb3JtLCB5b3UgY3JlYXRlIG9uZQorICogd2l0aCB0b1N0cmluZygpLjwvbGk+CisgKiA8bGk+UHJpbWl0aXZlcy4gVGhlc2UgYXJlIGFsd2F5cyBzYWZlLCBzaW5jZSB0aGV5IGFyZSBjb3BpZWQgb24gaW5wdXQvb3V0cHV0CisgKiBmcm9tIG1ldGhvZHMuPC9saT4KKyAqIDwvb2w+CisgKiA8L2xpPgorICogPGxpPkNsb25pbmcuIFdoZXJlIHlvdSBuZWVkIGFuIG9iamVjdCB0byBiZSBzYWZlLCB5b3UgY2xvbmUgaXQuPC9saT4KKyAqIDwvb2w+CisgKiA8cD4KKyAqIFRoZXJlIGFyZSBhZHZhbnRhZ2VzIGFuZCBkaXNhZHZhbnRhZ2VzIG9mIGVhY2ggb2YgdGhlc2UuCisgKiA8L3A+CisgKiA8b2w+CisgKiA8bGk+Q29uc3QgcHJvdmlkZXMgYSBjZXJ0YWluIGxldmVsIG9mIHByb3RlY3Rpb24sIGJ1dCBzaW5jZSBjb25zdCBjYW4gYmUgYW5kCisgKiBpcyBvZnRlbiBjYXN0IGF3YXksIGl0IG9ubHkgcHJvdGVjdHMgYWdhaW5zdCBtb3N0IGluYWR2ZXJ0ZW50IG1pc3Rha2VzLiBJdAorICogYWxzbyBvZmZlcnMgbm8gdGhyZWFkaW5nIHByb3RlY3Rpb24sIHNpbmNlIGFueW9uZSB3aG8gaGFzIGEgcG9pbnRlciB0byB0aGUKKyAqICh1bmNvbnN0KSBvYmplY3QgaW4gYW5vdGhlciB0aHJlYWQgY2FuIG1lc3MgeW91IHVwLjwvbGk+CisgKiA8bGk+SW1tdXRhYmxlIHdyYXBwZXJzIGFyZSBzYWZlciB0aGFuIGNvbnN0IGluIHRoYXQgdGhlIGNvbnN0bmVzcyBjYW4ndCBiZQorICogY2FzdCBhd2F5LiBCdXQgb3RoZXIgdGhhbiB0aGF0IHRoZXkgaGF2ZSBhbGwgdGhlIHNhbWUgcHJvYmxlbXM6IG5vdCBzYWZlIGlmCisgKiBzb21lb25lIGVsc2Uga2VlcHMgaG9sZCBvZiB0aGUgb3JpZ2luYWwgb2JqZWN0LCBvciBpZiBhbnkgb2YgdGhlIG9iamVjdHMKKyAqIHJldHVybmVkIGJ5IHRoZSBjbGFzcyBhcmUgbXV0YWJsZS48L2xpPgorICogPGxpPkFsd2F5cy1JbW11dGFibGUgT2JqZWN0cyBhcmUgc2FmZSwgYnV0IHVzYWdlIGNhbiByZXF1aXJlIGV4Y2Vzc2l2ZQorICogb2JqZWN0IGNyZWF0aW9uLjwvbGk+CisgKiA8bGk+Q2xvbmluZyBpcyBvbmx5IHNhZmUgaWYgdGhlIG9iamVjdCB0cnVseSBoYXMgYSAnc2FmZScgY2xvbmU7IGRlZmluZWQgYXMKKyAqIG9uZSB0aGF0IDxpPmVuc3VyZXMgdGhhdCBubyBjaGFuZ2UgdG8gdGhlIGNsb25lIGFmZmVjdHMgdGhlIG9yaWdpbmFsPC9pPi4KKyAqIFVuZm9ydHVuYXRlbHksIG1hbnkgb2JqZWN0cyBkb24ndCBoYXZlIGEgJ3NhZmUnIGNsb25lLCBhbmQgYWx3YXlzIGNsb25pbmcgY2FuCisgKiByZXF1aXJlIGV4Y2Vzc2l2ZSBvYmplY3QgY3JlYXRpb24uPC9saT4KKyAqIDwvb2w+CisgKiA8aDI+RnJlZXphYmxlIE1vZGVsPC9oMj4KKyAqIDxwPgorICogVGhlIDxjb2RlPkZyZWV6YWJsZTwvY29kZT4gbW9kZWwgc3VwcGxlbWVudHMgdGhlc2UgY2hvaWNlcyBieSBnaXZpbmcgeW91CisgKiB0aGUgYWJpbGl0eSB0byBidWlsZCB1cCBhbiBvYmplY3QgYnkgY2FsbGluZyB2YXJpb3VzIG1ldGhvZHMsIHRoZW4gd2hlbiBpdCBpcworICogaW4gYSBmaW5hbCBzdGF0ZSwgeW91IGNhbiA8aT5tYWtlPC9pPiBpdCBpbW11dGFibGUuIE9uY2UgaW1tdXRhYmxlLCBhbgorICogb2JqZWN0IGNhbm5vdCA8aT5ldmVyIDwvaT5iZSBtb2RpZmllZCwgYW5kIGlzIGNvbXBsZXRlbHkgdGhyZWFkLXNhZmU6IHRoYXQKKyAqIGlzLCBtdWx0aXBsZSB0aHJlYWRzIGNhbiBoYXZlIHJlZmVyZW5jZXMgdG8gaXQgd2l0aG91dCBhbnkgc3luY2hyb25pemF0aW9uLgorICogSWYgc29tZW9uZSBuZWVkcyBhIG11dGFibGUgdmVyc2lvbiBvZiBhbiBvYmplY3QsIHRoZXkgY2FuIHVzZQorICogPGNvZGU+Y2xvbmVBc1RoYXdlZCgpPC9jb2RlPiwgYW5kIG1vZGlmeSB0aGUgY29weS4gVGhpcyBwcm92aWRlcyBhIHNpbXBsZSwKKyAqIGVmZmVjdGl2ZSBtZWNoYW5pc20gZm9yIHNhZmUgY2xhc3NlcyBpbiBjaXJjdW1zdGFuY2VzIHdoZXJlIHRoZSBhbHRlcm5hdGl2ZXMKKyAqIGFyZSBpbnN1ZmZpY2llbnQgb3IgY2x1bXN5LiAoSWYgYW4gb2JqZWN0IGlzIHNoYXJlZCBiZWZvcmUgaXQgaXMgaW1tdXRhYmxlLAorICogdGhlbiBpdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgZWFjaCB0aHJlYWQgdG8gbXV0ZXggaXRzIHVzYWdlIChhcyB3aXRoCisgKiBvdGhlciBvYmplY3RzKS4pCisgKiA8L3A+CisgKiA8cD4KKyAqIEhlcmUgaXMgd2hhdCBuZWVkcyB0byBiZSBkb25lIHRvIGltcGxlbWVudCB0aGlzIGludGVyZmFjZSwgZGVwZW5kaW5nIG9uIHRoZQorICogdHlwZSBvZiB0aGUgb2JqZWN0LgorICogPC9wPgorICogPGgzPjxiPkltbXV0YWJsZSBPYmplY3RzPC9iPjwvaDM+CisgKiA8cD4KKyAqIFRoZXNlIGFyZSB0aGUgZWFzaWVzdC4gWW91IGp1c3QgdXNlIHRoZSBpbnRlcmZhY2UgdG8gcmVmbGVjdCB0aGF0LCBieSBhZGRpbmcKKyAqIHRoZSBmb2xsb3dpbmc6CisgKiA8L3A+CisgKiAKKyAqIDxwcmU+CisgKiAgcHVibGljIGNsYXNzIEEgaW1wbGVtZW50cyBGcmVlemFibGUgeworICogICAuLi4KKyAqICAgcHVibGljIGZpbmFsIGJvb2xlYW4gaXNGcm96ZW4oKSB7cmV0dXJuIHRydWU7fQorICogICBwdWJsaWMgZmluYWwgT2JqZWN0IGZyZWV6ZSgpIHtyZXR1cm4gdGhpczt9CisgKiAgIHB1YmxpYyBmaW5hbCBPYmplY3QgY2xvbmVBc1RoYXdlZCgpIHsgcmV0dXJuIHRoaXM7IH0KKyAqICAgfQorICogPC9wcmU+CisgKiAKKyAqIDxwPgorICogVGhlc2UgY2FuIGJlIGZpbmFsIG1ldGhvZHMgYmVjYXVzZSBzdWJjbGFzc2VzIG9mIGltbXV0YWJsZSBvYmplY3RzIG11c3QKKyAqIHRoZW1zZWx2ZXMgYmUgaW1tdXRhYmxlLiAoTm90ZTogPGNvZGU+ZnJlZXplPC9jb2RlPiBpcyByZXR1cm5pbmcKKyAqIDxjb2RlPnRoaXM8L2NvZGU+IGZvciBjaGFpbmluZy4pCisgKiA8L3A+CisgKiA8aDM+PGI+TXV0YWJsZSBPYmplY3RzPC9iPjwvaDM+CisgKiA8cD4KKyAqIEFkZCBhIHByb3RlY3RlZCAnZmxhZ2dpbmcnIGZpZWxkOgorICogPC9wPgorICogCisgKiA8cHJlPgorICogcHJvdGVjdGVkIGJvb2xlYW4gaW1tdXRhYmxlOworICogPC9wcmU+CisgKiAKKyAqIDxwPgorICogQWRkIHRoZSBmb2xsb3dpbmcgbWV0aG9kczoKKyAqIDwvcD4KKyAqIAorICogPHByZT4KKyAqIHB1YmxpYyBmaW5hbCBib29sZWFuIGlzRnJvemVuKCkgeworICogCXJldHVybiBmcm96ZW47CisgKiB9OworICogCisgKiBwdWJsaWMgT2JqZWN0IGZyZWV6ZSgpIHsKKyAqIAlmcm96ZW4gPSB0cnVlOworICogCXJldHVybiB0aGlzOworICogfQorICogPC9wcmU+CisgKiAKKyAqIDxwPgorICogQWRkIGEgPGNvZGU+Y2xvbmVBc1RoYXdlZCgpPC9jb2RlPiBtZXRob2QgZm9sbG93aW5nIHRoZSBub3JtYWwgcGF0dGVybiBmb3IKKyAqIDxjb2RlPmNsb25lKCk8L2NvZGU+LCBleGNlcHQgdGhhdCA8Y29kZT5mcm96ZW49ZmFsc2U8L2NvZGU+IGluIHRoZSBuZXcKKyAqIGNsb25lLgorICogPC9wPgorICogPHA+CisgKiBUaGVuIHRha2UgdGhlIHNldHRlcnMgKHRoYXQgaXMsIGFueSBtZXRob2QgdGhhdCBjYW4gY2hhbmdlIHRoZSBpbnRlcm5hbCBzdGF0ZQorICogb2YgdGhlIG9iamVjdCksIGFuZCBhZGQgdGhlIGZvbGxvd2luZyBhcyB0aGUgZmlyc3Qgc3RhdGVtZW50OgorICogPC9wPgorICogCisgKiA8cHJlPgorICogaWYgKGlzRnJvemVuKCkpIHsKKyAqIAl0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oJnF1b3Q7QXR0ZW1wdCB0byBtb2RpZnkgZnJvemVuIG9iamVjdCZxdW90Oyk7CisgKiB9CisgKiA8L3ByZT4KKyAqIAorICogPGg0PjxiPlN1YmNsYXNzaW5nPC9iPjwvaDQ+CisgKiA8cD4KKyAqIEFueSBzdWJjbGFzcyBvZiBhIDxjb2RlPkZyZWV6YWJsZTwvY29kZT4gd2lsbCBqdXN0IHVzZSBpdHMgc3VwZXJjbGFzcydzCisgKiBmbGFnZ2luZyBmaWVsZC4gSXQgbXVzdCBvdmVycmlkZSA8Y29kZT5mcmVlemUoKTwvY29kZT4gYW5kCisgKiA8Y29kZT5jbG9uZUFzVGhhd2VkKCk8L2NvZGU+IHRvIGNhbGwgdGhlIHN1cGVyY2xhc3MsIGJ1dCBub3JtYWxseSBkb2VzIG5vdAorICogb3ZlcnJpZGUgPGNvZGU+aXNGcm96ZW4oKTwvY29kZT4uIEl0IG11c3QgdGhlbiBqdXN0IHBheSBhdHRlbnRpb24gdG8gaXRzCisgKiBvd24gZ2V0dGVycywgc2V0dGVycyBhbmQgZmllbGRzLgorICogPC9wPgorICogPGg0PjxiPkludGVybmFsIENhY2hlczwvYj48L2g0PgorICogPHA+CisgKiBJbnRlcm5hbCBjYWNoZXMgYXJlIGNhc2VzIHdoZXJlIHRoZSBvYmplY3QgaXMgbG9naWNhbGx5IHVubW9kaWZpZWQsIGJ1dAorICogaW50ZXJuYWwgc3RhdGUgb2YgdGhlIG9iamVjdCBjaGFuZ2VzLiBGb3IgZXhhbXBsZSwgdGhlcmUgYXJlIGNvbnN0IEMrKworICogZnVuY3Rpb25zIHRoYXQgY2FzdCBhd2F5IHRoZSBjb25zdCBvbiB0aGUgJnF1b3Q7dGhpcyZxdW90OyBwb2ludGVyIGluIG9yZGVyCisgKiB0byBtb2RpZnkgYW4gb2JqZWN0IGNhY2hlLiBUaGVzZSBjYXNlcyBhcmUgaGFuZGxlZCBieSBtdXRleGluZyB0aGUgaW50ZXJuYWwKKyAqIGNhY2hlIHRvIGVuc3VyZSB0aHJlYWQtc2FmZXR5LiBGb3IgZXhhbXBsZSwgc3VwcG9zZSB0aGF0IFVuaWNvZGVTZXQgaGFkIGFuCisgKiBpbnRlcm5hbCBtYXJrZXIgdG8gdGhlIGxhc3QgY29kZSBwb2ludCBhY2Nlc3NlZC4gSW4gdGhpcyBjYXNlLCB0aGUgZmllbGQgaXMKKyAqIG5vdCBleHRlcm5hbGx5IHZpc2libGUsIHNvIHRoZSBvbmx5IHRoaW5nIHlvdSBuZWVkIHRvIGRvIGlzIHRvIHN5bmNocm9uaXplCisgKiB0aGUgZmllbGQgZm9yIHRocmVhZCBzYWZldHkuCisgKiA8L3A+CisgKiA8aDQ+VW5zYWZlIEludGVybmFsIEFjY2VzczwvaDQ+CisgKiA8cD4KKyAqIEludGVybmFsIGZpZWxkcyBhcmUgY2FsbGVkIDxpPnNhZmU8L2k+IGlmIHRoZXkgYXJlIGVpdGhlcgorICogPGNvZGU+ZnJvemVuPC9jb2RlPiBvciBpbW11dGFibGUgKHN1Y2ggYXMgU3RyaW5nIG9yIHByaW1pdGl2ZXMpLiBJZiB5b3UndmUKKyAqIG5ldmVyIGFsbG93ZWQgaW50ZXJuYWwgYWNjZXNzIHRvIHRoZXNlLCB0aGVuIHlvdSBhcmUgYWxsIGRvbmUuIEZvciBleGFtcGxlLAorICogY29udmVydGluZyBVbmljb2RlU2V0IHRvIGJlIDxjb2RlPkZyZWV6YWJsZTwvY29kZT4gaXMganVzdCBhY2NvbXBsaXNoZWQKKyAqIHdpdGggdGhlIGFib3ZlIHN0ZXBzLiBCdXQgcmVtZW1iZXIgdGhhdCB5b3UgPGk+PGI+aGF2ZTwvYj48L2k+IGFsbG93ZWQKKyAqIGFjY2VzcyB0byB1bnNhZmUgaW50ZXJuYWxzIGlmIHlvdSBoYXZlIGFueSBjb2RlIGxpa2UgdGhlIGZvbGxvd2luZywgaW4gYQorICogZ2V0dGVyLCBzZXR0ZXIsIG9yIGNvbnN0cnVjdG9yOgorICogPC9wPgorICogCisgKiA8cHJlPgorICogQ29sbGVjdGlvbiBnZXRTdHVmZigpIHsKKyAqIAlyZXR1cm4gc3R1ZmY7CisgKiB9IC8vIGNhbGxlciBjb3VsZCBrZWVwIHJlZmVyZW5jZSAmYW1wOyBtb2RpZnkKKyAqIAorICogdm9pZCBzZXRTdHVmZihDb2xsZWN0aW9uIHgpIHsKKyAqIAlzdHVmZiA9IHg7CisgKiB9IC8vIGNhbGxlciBjb3VsZCBrZWVwIHJlZmVyZW5jZSAmYW1wOyBtb2RpZnkKKyAqIAorICogTXlDbGFzcyhDb2xsZWN0aW9uIHgpIHsKKyAqIAlzdHVmZiA9IHg7CisgKiB9IC8vIGNhbGxlciBjb3VsZCBrZWVwIHJlZmVyZW5jZSAmYW1wOyBtb2RpZnkKKyAqIDwvcHJlPgorICogCisgKiA8cD4KKyAqIFRoZXNlIGFsc28gaWxsdXN0cmF0ZWQgaW4gdGhlIGNvZGUgc2FtcGxlIGluIDxiPkJhY2tncm91bmQ8L2I+IGFib3ZlLgorICogPC9wPgorICogPHA+CisgKiBUbyBkZWFsIHdpdGggdW5zYWZlIGludGVybmFscywgdGhlIHNpbXBsZXN0IGNvdXJzZSBvZiBhY3Rpb24gaXMgdG8gZG8gdGhlCisgKiB3b3JrIGluIHRoZSA8Y29kZT4KKyBmcmVlemUoKTwvY29kZT4gZnVuY3Rpb24uIEp1c3QgbWFrZSBhbGwgb2YgeW91ciBpbnRlcm5hbAorICogZmllbGRzIGZyb3plbiwgYW5kIHNldCB0aGUgZnJvemVuIGZsYWcuIEFueSBzdWJzZXF1ZW50IGdldHRlci9zZXR0ZXIgd2lsbAorICogd29yayBwcm9wZXJseS4gSGVyZSBpcyBhbiBleGFtcGxlOgorICogPC9wPgorICogCisgKiA8cHJlPgorICogcHVibGljIE9iamVjdCBmcmVlemUoKSB7CisgKiAJaWYgKCFmcm96ZW4pIHsKKyAqIAkJZm9vLmZyZWV6ZSgpOworICogCQlmcm96ZW4gPSB0cnVlOworICogCX0KKyAqIAlyZXR1cm4gdGhpczsKKyAqIH0KKyAqIDwvcHJlPgorICogCisgKiA8cD4KKyAqIElmIHRoZSBmaWVsZCBpcyBhIDxjb2RlPkNvbGxlY3Rpb248L2NvZGU+IG9yIDxjb2RlPk1hcDwvY29kZT4sIHRoZW4gdG8KKyAqIG1ha2UgaXQgZnJvemVuIHlvdSBoYXZlIHR3byBjaG9pY2VzLiBJZiB5b3UgaGF2ZSBuZXZlciBhbGxvd2VkIGFjY2VzcyB0byB0aGUKKyAqIGNvbGxlY3Rpb24gZnJvbSBvdXRzaWRlIHlvdXIgb2JqZWN0LCB0aGVuIGp1c3Qgd3JhcCBpdCB0byBwcmV2ZW50IGZ1dHVyZQorICogbW9kaWZpY2F0aW9uLgorICogPC9wPgorICogCisgKiA8cHJlPgorICogem9uZV90b19jb3VudHJ5ID0gQ29sbGVjdGlvbnMudW5tb2RpZmlhYmxlTWFwKHpvbmVfdG9fY291bnRyeSk7CisgKiA8L3ByZT4KKyAqIAorICogPHA+CisgKiBJZiB5b3UgaGF2ZSA8aT5ldmVyPC9pPiBhbGxvd2VkIGFjY2VzcywgdGhlbiBkbyBhIDxjb2RlPmNsb25lKCk8L2NvZGU+CisgKiBiZWZvcmUgd3JhcHBpbmcgaXQuCisgKiA8L3A+CisgKiAKKyAqIDxwcmU+CisgKiB6b25lX3RvX2NvdW50cnkgPSBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVNYXAoem9uZV90b19jb3VudHJ5LmNsb25lKCkpOworICogPC9wcmU+CisgKiAKKyAqIDxwPgorICogSWYgYSBjb2xsZWN0aW9uIDxpPihvciBhbnkgb3RoZXIgY29udGFpbmVyIG9mIG9iamVjdHMpPC9pPiBpdHNlbGYgY2FuCisgKiBjb250YWluIG11dGFibGUgb2JqZWN0cywgdGhlbiBmb3IgYSBzYWZlIGNsb25lIHlvdSBuZWVkIHRvIHJlY3Vyc2UgdGhyb3VnaCBpdAorICogdG8gbWFrZSB0aGUgZW50aXJlIGNvbGxlY3Rpb24gaW1tdXRhYmxlLiBUaGUgcmVjdXJzaW5nIGNvZGUgc2hvdWxkIHBpY2sgdGhlCisgKiBtb3N0IHNwZWNpZmljIGNvbGxlY3Rpb24gYXZhaWxhYmxlLCB0byBhdm9pZCB0aGUgbmVjZXNzaXR5IG9mIGxhdGVyCisgKiBkb3duY2FzaW5nLgorICogPC9wPgorICogPGJsb2NrcXVvdGU+CisgKiA8cD4KKyAqIDxiPk5vdGU6IDwvYj5BbiBhbm5veWluZyBmbGF3IGluIEphdmEgaXMgdGhhdCB0aGUgZ2VuZXJpYyBjb2xsZWN0aW9ucywgbGlrZQorICogPGNvZGU+TWFwPC9jb2RlPiBvciA8Y29kZT5TZXQ8L2NvZGU+LCBkb24ndCBoYXZlIGEgPGNvZGU+Y2xvbmUoKTwvY29kZT4KKyAqIG9wZXJhdGlvbi4gV2hlbiB5b3UgZG9uJ3Qga25vdyB0aGUgdHlwZSBvZiB0aGUgY29sbGVjdGlvbiwgdGhlIHNpbXBsZXN0CisgKiBjb3Vyc2UgaXMgdG8ganVzdCBjcmVhdGUgYSBuZXcgY29sbGVjdGlvbjoKKyAqIDwvcD4KKyAqIAorICogPHByZT4KKyAqIHpvbmVfdG9fY291bnRyeSA9IENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZU1hcChuZXcgSGFzaE1hcCh6b25lX3RvX2NvdW50cnkpKTsKKyAqIDwvcHJlPgorICogCisgKiA8L2Jsb2NrcXVvdGU+CisgKgorICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAqLworcHVibGljIGludGVyZmFjZSBGcmVlemFibGUgZXh0ZW5kcyBDbG9uZWFibGUgeworCS8qKgorCSAqIERldGVybWluZXMgd2hldGhlciB0aGUgb2JqZWN0IGhhcyBiZWVuIGxvY2tlZCBvciBub3QuCisJICovCisJcHVibGljIGJvb2xlYW4gaXNGcm96ZW4oKTsKKwkvKioKKwkgKiBMb2NrcyB0aGUgb2JqZWN0LgorCSAqIEByZXR1cm4gdGhlIG9iamVjdCBpdHNlbGYuCisJICovCisJcHVibGljIE9iamVjdCBmcmVlemUoKTsKKwkvKioKKwkgKiBQcm92aWRlcyBmb3IgdGhlIGNsb25lIG9wZXJhdGlvbi4gQW55IGNsb25lIGlzIGluaXRpYWxseSB1bmxvY2tlZC4KKwkgKi8KKwlwdWJsaWMgT2JqZWN0IGNsb25lQXNUaGF3ZWQoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvR2xvYmFsaXphdGlvblByZWZlcmVuY2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWZkZWMyYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0dsb2JhbGl6YXRpb25QcmVmZXJlbmNlcy5qYXZhCkBAIC0wLDAgKzEsMTA5NyBAQAorLy8jI2hlYWRlcgorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpbmtlZExpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZU1hcDsKKworLy8jaWZuZGVmIEZPVU5EQVRJT04KK2ltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKK2ltcG9ydCBqYXZhLnV0aWwucmVnZXguUGF0dGVybjsKKy8vI2VuZGlmCisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLlV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5ab25lTWV0YTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LkRlY2ltYWxGb3JtYXQ7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9sczsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0Lk51bWJlckZvcm1hdDsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CisKKy8qKgorICogVGhpcyBjb252ZW5pZW5jZSBjbGFzcyBwcm92aWRlcyBhIG1lY2hhbmlzbSBmb3IgYnVuZGxpbmcgdG9nZXRoZXIgZGlmZmVyZW50CisgKiBnbG9iYWxpemF0aW9uIHByZWZlcmVuY2VzLiBJdCBpbmNsdWRlczoKKyAqIDx1bD4KKyAqIDxsaT5BIGxpc3Qgb2YgbG9jYWxlcy9sYW5ndWFnZXMgaW4gcHJlZmVyZW5jZSBvcmRlcjwvbGk+CisgKiA8bGk+QSB0ZXJyaXRvcnk8L2xpPgorICogPGxpPkEgY3VycmVuY3k8L2xpPgorICogPGxpPkEgdGltZXpvbmU8L2xpPgorICogPGxpPkEgY2FsZW5kYXI8L2xpPgorICogPGxpPkEgY29sbGF0b3IgKGZvciBsYW5ndWFnZS1zZW5zaXRpdmUgc29ydGluZywgc2VhcmNoaW5nLCBhbmQgbWF0Y2hpbmcpLjwvbGk+CisgKiA8bGk+RXhwbGljaXQgb3ZlcnJpZGVzIGZvciBkYXRlL3RpbWUgZm9ybWF0cywgZXRjLjwvbGk+CisgKiA8L3VsPgorICogVGhlIGNsYXNzIHdpbGwgaGV1cmlzdGljYWxseSBjb21wdXRlIGltcGxpY2l0LCBoZXVyaXN0aWMgdmFsdWVzIGZvciB0aGUgYWJvdmUKKyAqIGJhc2VkIG9uIGF2YWlsYWJsZSBkYXRhIGlmIGV4cGxpY2l0IHZhbHVlcyBhcmUgbm90IHN1cHBsaWVkLiBUaGVzZSBpbXBsaWNpdAorICogdmFsdWVzIGNhbiBiZSBwcmVzZW50ZWQgdG8gdXNlcnMgZm9yIGNvbmZpcm1hdGlvbiwgb3IgcmVwbGFjZW1lbnQgaWYgdGhlCisgKiB2YWx1ZXMgYXJlIGluY29ycmVjdC4KKyAqIDxwPgorICogVG8gcmVzZXQgYW55IGV4cGxpY2l0IGZpZWxkIHNvIHRoYXQgaXQgd2lsbCBnZXQgaGV1cmlzdGljIHZhbHVlcywgcGFzcyBpbgorICogbnVsbC4gRm9yIGV4YW1wbGUsIG15UHJlZmVyZW5jZXMuc2V0TG9jYWxlKG51bGwpOworICogPHA+CisgKiBBbGwgb2YgdGhlIGhldXJpc3RpY3MgY2FuIGJlIGN1c3RvbWl6ZWQgYnkgc3ViY2xhc3NlcywgYnkgb3ZlcnJpZGluZworICogZ2V0VGVycml0b3J5KCksIGd1ZXNzQ29sbGF0b3IoKSwgZXRjLgorICogPHA+CisgKiBUaGUgY2xhc3MgYWxzbyBzdXBwbGllcyBkaXNwbGF5IG5hbWVzIGZvciBsYW5ndWFnZXMsIHNjcmlwdHMsIHRlcnJpdG9yaWVzLAorICogY3VycmVuY2llcywgdGltZXpvbmVzLCBldGMuIFRoZXNlIGFyZSBjb21wdXRlZCBhY2NvcmRpbmcgdG8gdGhlCisgKiBsb2NhbGUvbGFuZ3VhZ2UgcHJlZmVyZW5jZSBsaXN0LiBUaHVzLCBpZiB0aGUgcHJlZmVyZW5jZSBpcyBCcmV0b247IEZyZW5jaDsKKyAqIEVuZ2xpc2gsIHRoZW4gdGhlIGRpc3BsYXkgbmFtZSBmb3IgYSBsYW5ndWFnZSB3aWxsIGJlIHJldHVybmVkIGluIEJyZXRvbiBpZgorICogYXZhaWxhYmxlLCBvdGhlcndpc2UgaW4gRnJlbmNoIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGluIEVuZ2xpc2guCisgKiA8cD4KKyAqIFRoZSBjb2RlcyB1c2VkIHRvIHJlZmVyZW5jZSB0ZXJyaXRvcnksIGN1cnJlbmN5LCBldGMuIGFyZSBhcyBkZWZpbmVkIGVsc2V3aGVyZSBpbiBJQ1UsCisgKiBhbmQgYXJlIHRha2VuIGZyb20gQ0xEUiAod2hpY2ggcmVmbGVjdHMgUkZDIDMwNjZiaXMgdXNhZ2UsIElTTyA0MjE3LCBhbmQgdGhlIAorICogVFogVGltZXpvbmUgZGF0YWJhc2UgaWRlbnRpZmllcnMpLgorICogPHA+CisgKiA8Yj5UaGlzIGlzIGF0IGEgcHJvdG90eXBlIHN0YWdlLCBhbmQgaGFzIG5vdCBpbmNvcnBvcmF0ZWQgYWxsIHRoZSBkZXNpZ24KKyAqIGNoYW5nZXMgdGhhdCB3ZSB3b3VsZCBsaWtlIHlldDsgZnVydGhlciBmZWVkYmFjayBpcyB3ZWxjb21lLjwvYj48L3A+CisgKiA8cD4KKyAqIFRPRE86PHVsPgorICogPGxpPlNlcGFyYXRlIG91dCBiYXNlIGNsYXNzPC9saT4KKyAqIDxsaT5BZGQgQnJlYWtJdGVyYXRvcjwvbGk+CisgKiA8bGk+QWRkIEhvbGlkYXlzPC9saT4KKyAqIDxsaT5BZGQgY29udmVuaWVuY2UgdG8gZ2V0L3Rha2UgTG9jYWxlIGFzIHdlbGwgYXMgVUxvY2FsZS48L2xpPgorICogPGxpPkFkZCBnZXRSZXNvdXJjZUJ1bmRsZShTdHJpbmcgYmFzZU5hbWUsIENsYXNzTG9hZGVyIGxvYWRlcik7PC9saT4KKyAqIDxsaT5BZGQgZ2V0RmFsbGJhY2tMb2NhbGVzKCk7PC9saT4KKyAqIDxsaT5BZGQgTGVuaWVudCBkYXRldGltZSBmb3JtYXR0aW5nIHdoZW4gdGhhdCBpcyBhdmFpbGFibGUuPC9saT4KKyAqIDxsaT5TaG91bGQgdGhpcyBiZSBzZXJpYWxpemFibGU/PC9saT4KKyAqIDxsaT5PdGhlciB1dGlsaXRpZXM/PC9saT4KKyAqIDwvdWw+CisgKiBOb3RlOgorICogPHVsPgorICogPGxpPnRvIGdldCB0aGUgZGlzcGxheSBuYW1lIGZvciB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLCB1c2UgdGhlIGNhbGVuZGFyICsKKyAqIGRpc3BsYXkgbmFtZXMuPC9saT4KKyAqIDxsaT50byBnZXQgdGhlIHdvcmsgZGF5cywgYXNrIHRoZSBjYWxlbmRhciAod2hlbiB0aGF0IGlzIGF2YWlsYWJsZSkuPC9saT4KKyAqIDxsaT50byBnZXQgcGFwZXJzaXplIC8gbWVhc3VyZW1lbnQgc3lzdGVtL2JpZGktb3JpZW50YXRpb24sIGFzayB0aGUgbG9jYWxlCisgKiAod2hlbiB0aGF0IGlzIGF2YWlsYWJsZSB0aGVyZSk8L2xpPgorICogPGxpPnRvIGdldCB0aGUgZmllbGQgb3JkZXIgaW4gYSBkYXRlLCBhbmQgd2hldGhlciBhIHRpbWUgaXMgMjRob3VyIG9yIG5vdCwKKyAqIGFzayB0aGUgRGF0ZUZvcm1hdCAod2hlbiB0aGF0IGlzIGF2YWlsYWJsZSB0aGVyZSk8L2xpPgorICogPGxpPml0IHdpbGwgc3VwcG9ydCBIT1NUIGxvY2FsZSB3aGVuIGl0IGJlY29tZXMgYXZhaWxhYmxlIChpdCBpcyBhIHNwZWNpYWwKKyAqIGxvY2FsZSB0aGF0IHdpbGwgYXNrIHRoZSBzZXJ2aWNlcyB0byB1c2UgdGhlIGhvc3QgcGxhdGZvcm0ncyB2YWx1ZXMpLjwvbGk+CisgKiA8L3VsPgorICoKKyAqIEBpbnRlcm5hbAorICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgKi8KK3B1YmxpYyBjbGFzcyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgaW1wbGVtZW50cyBGcmVlemFibGUgeworICAgIC8qKgorICAgICAqIE51bWJlciBGb3JtYXQgdHlwZXMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDVVJSRU5DWSA9IDAsIE5VTUJFUiA9IDEsIElOVEVHRVIgPSAyLCBTQ0lFTlRJRklDID0gMywgCisgICAgICAgIFBFUkNFTlQgPSA0LCBOVU1CRVJfTElNSVQgPSA1OworCisgICAgLyoqCisgICAgICogU3VwcGxlbWVudCB0byBEYXRlRm9ybWF0LkZVTEwsIExPTkcsIE1FRElVTSwgU0hPUlQuIEluZGljYXRlcworICAgICAqIHRoYXQgbm8gdmFsdWUgZm9yIG9uZSBvZiBkYXRlIG9yIHRpbWUgaXMgdG8gYmUgdXNlZC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT05FID0gNDsKKworICAgIC8qKgorICAgICAqIEZvciBzZWxlY3RpbmcgYSBjaG9pY2Ugb2YgZGlzcGxheSBuYW1lcworICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50CisgICAgICAgIExPQ0FMRUlEID0gMCwgTEFOR1VBR0VJRCA9IDEsIFNDUklQVElEID0gMiwgVEVSUklUT1JZSUQgPSAzLCBWQVJJQU5USUQgPSA0LCAKKyAgICAgICAgS0VZV09SRElEID0gNSwgS0VZV09SRF9WQUxVRUlEID0gNiwKKyAgICAgICAgQ1VSUkVOQ1lJRCA9IDcsIENVUlJFTkNZX1NZTUJPTElEID0gOCwgVElNRVpPTkVJRCA9IDksIERJU1BMQVlJRF9MSU1JVCA9IDEwOworCQorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGxhbmd1YWdlL2xvY2FsZSBwcmlvcml0eSBsaXN0LiBJZiBvdGhlciBpbmZvcm1hdGlvbiBpcworICAgICAqIG5vdCAoeWV0KSBhdmFpbGFibGUsIHRoaXMgaXMgdXNlZCB0byB0byBwcm9kdWNlIGEgZGVmYXVsdCB2YWx1ZQorICAgICAqIGZvciB0aGUgYXBwcm9wcmlhdGUgdGVycml0b3J5LCBjdXJyZW5jeSwgdGltZXpvbmUsIGV0Yy4gIFRoZQorICAgICAqIHVzZXIgc2hvdWxkIGJlIGdpdmVuIHRoZSBvcHBvcnR1bml0eSB0byBjb3JyZWN0IHRob3NlIGRlZmF1bHRzCisgICAgICogaW4gY2FzZSB0aGV5IGFyZSBpbmNvcnJlY3QuCisgICAgICogQHBhcmFtIGxvY2FsZXMgbGlzdCBvZiBsb2NhbGVzIGluIHByaW9yaXR5IG9yZGVyLCBlZyB7ImJlIiwgImZyIn0gCisgICAgICogICAgIGZvciBCcmV0b24gZmlyc3QsIHRoZW4gRnJlbmNoIGlmIHRoYXQgZmFpbHMuCisgICAgICogQHJldHVybiB0aGlzLCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHNldExvY2FsZXMoTGlzdCBsb2NhbGVzKSB7CisgICAgICAgIGlmIChpc0Zyb3plbigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGltbXV0YWJsZSBvYmplY3QiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobG9jYWxlcy5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgdGhpcy5sb2NhbGVzID0gbG9jYWxlcy5nZXQoMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aGlzLmxvY2FsZXMgPSBuZXcgQXJyYXlMaXN0KGxvY2FsZXMpOyAvLyBjbG9uZSBmb3Igc2FmZXR5CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgY29weSBvZiB0aGUgbGFuZ3VhZ2UvbG9jYWxlIHByaW9yaXR5IGxpc3QKKyAgICAgKiBAcmV0dXJuIGEgY29weSBvZiB0aGUgbGFuZ3VhZ2UvbG9jYWxlIHByaW9yaXR5IGxpc3QuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIExpc3QgZ2V0TG9jYWxlcygpIHsKKyAgICAgICAgTGlzdCByZXN1bHQgPSBuZXcgQXJyYXlMaXN0KCk7IC8vIGNsb25lIGZvciBzYWZldHkKKyAgICAgICAgaWYgKGxvY2FsZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gZ3Vlc3NMb2NhbGVzKCk7CisgICAgICAgIH0gZWxzZSBpZiAobG9jYWxlcyBpbnN0YW5jZW9mIFVMb2NhbGUpIHsKKyAgICAgICAgICAgIHJlc3VsdC5hZGQobG9jYWxlcyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQuYWRkQWxsKChMaXN0KWxvY2FsZXMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIGdldHRpbmcgdGhlIGxvY2FsZXMgaW4gcHJpb3JpdHkgb3JkZXIKKyAgICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4ICgwLi5uKSBvZiB0aGUgZGVzaXJlZCBpdGVtLgorICAgICAqIEByZXR1cm4gZGVzaXJlZCBpdGVtLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBVTG9jYWxlIGdldExvY2FsZShpbnQgaW5kZXgpIHsKKyAgICAgICAgaWYgKGxvY2FsZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIChVTG9jYWxlKWd1ZXNzTG9jYWxlcygpLmdldChpbmRleCk7CisgICAgICAgIH0gZWxzZSBpZiAobG9jYWxlcyBpbnN0YW5jZW9mIFVMb2NhbGUpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCAhPSAwKSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPdXQgb2YgYm91bmRzOiAiICsgaW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIChVTG9jYWxlKWxvY2FsZXM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gKFVMb2NhbGUpKChMaXN0KWxvY2FsZXMpLmdldChpbmRleCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSByb3V0aW5lIGZvciBzZXR0aW5nIHRoZSBsYW5ndWFnZS9sb2NhbGUgcHJpb3JpdHkKKyAgICAgKiBsaXN0IGZyb20gYW4gYXJyYXkuCisgICAgICogQHNlZSAjc2V0TG9jYWxlcyhMaXN0IGxvY2FsZXMpCisgICAgICogQHBhcmFtIHVMb2NhbGVzIGxpc3Qgb2YgbG9jYWxlcyBpbiBhbiBhcnJheQorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBzZXRMb2NhbGVzKFVMb2NhbGVbXSB1TG9jYWxlcykgeworICAgICAgICBpZiAoaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1vZGlmeSBpbW11dGFibGUgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNldExvY2FsZXMoQXJyYXlzLmFzTGlzdCh1TG9jYWxlcykpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSByb3V0aW5lIGZvciBzZXR0aW5nIHRoZSBsYW5ndWFnZS9sb2NhbGUgcHJpb3JpdHkKKyAgICAgKiBsaXN0IGZyb20gYSBzaW5nbGUgbG9jYWxlL2xhbmd1YWdlLgorICAgICAqIEBzZWUgI3NldExvY2FsZXMoTGlzdCBsb2NhbGVzKQorICAgICAqIEBwYXJhbSB1TG9jYWxlIHNpbmdsZSBsb2NhbGUKKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgc2V0TG9jYWxlKFVMb2NhbGUgdUxvY2FsZSkgeworICAgICAgICBpZiAoaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1vZGlmeSBpbW11dGFibGUgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNldExvY2FsZXMobmV3IFVMb2NhbGVbXXt1TG9jYWxlfSk7CisgICAgfQorCisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHJvdXRpbmUgZm9yIHNldHRpbmcgdGhlIGxvY2FsZSBwcmlvcml0eSBsaXN0IGZyb20KKyAgICAgKiBhbiBBY2NlcHQtTGFuZ3VhZ2Ugc3RyaW5nLgorICAgICAqIEBzZWUgI3NldExvY2FsZXMoTGlzdCBsb2NhbGVzKQorICAgICAqIEBwYXJhbSBhY2NlcHRMYW5ndWFnZVN0cmluZyBBY2NlcHQtTGFuZ3VhZ2UgbGlzdCwgYXMgZGVmaW5lZCBieSAKKyAgICAgKiAgICAgU2VjdGlvbiAxNC40IG9mIHRoZSBSRkMgMjYxNiAoSFRUUCAxLjEpCisgICAgICogQHJldHVybiB0aGlzLCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHNldExvY2FsZXMoU3RyaW5nIGFjY2VwdExhbmd1YWdlU3RyaW5nKSB7CisgICAgICAgIGlmIChpc0Zyb3plbigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGltbXV0YWJsZSBvYmplY3QiKTsKKyAgICAgICAgfQorICAgICAgICAvKgorICAgICAgICAgIEFjY2VwdC1MYW5ndWFnZSA9ICJBY2NlcHQtTGFuZ3VhZ2UiICI6IiAxIyggbGFuZ3VhZ2UtcmFuZ2UgWyAiOyIgInEiICI9IiBxdmFsdWUgXSApCisgICAgICAgICAgeCBtYXRjaGVzIHgtLi4uCisgICAgICAgICovCisgICAgICAgIC8vIHJlb3JkZXJzIGluIHF1YWxpdHkgb3JkZXIKKyAgICAgICAgLy8gZG9uJ3QgY2FyZSB0aGF0IGl0IGlzIG5vdCB2ZXJ5IGVmZmljaWVudCByaWdodCBub3cKKyAgICAgICAgTWF0Y2hlciBhY2NlcHRNYXRjaGVyID0gUGF0dGVybi5jb21waWxlKCJcXHMqKFstX2EtekEtWl0rKSg7cT0oWy4wLTldKykpP1xccyoiKS5tYXRjaGVyKCIiKTsKKyAgICAgICAgTWFwIHJlb3JkZXIgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICBTdHJpbmdbXSBwaWVjZXMgPSBhY2NlcHRMYW5ndWFnZVN0cmluZy5zcGxpdCgiLCIpOworCQkKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwaWVjZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIERvdWJsZSBxVmFsdWUgPSBuZXcgRG91YmxlKDEpOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAoIWFjY2VwdE1hdGNoZXIucmVzZXQocGllY2VzW2ldKS5tYXRjaGVzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBTdHJpbmcgcVZhbHVlU3RyaW5nID0gYWNjZXB0TWF0Y2hlci5ncm91cCgzKTsKKyAgICAgICAgICAgICAgICBpZiAocVZhbHVlU3RyaW5nICE9IG51bGwpIHFWYWx1ZSA9IG5ldyBEb3VibGUoRG91YmxlLnBhcnNlRG91YmxlKHFWYWx1ZVN0cmluZykpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJlbGVtZW50ICciICsgcGllY2VzW2ldICsgCisgICAgICAgICAgICAgICAgICAgICInIGlzIG5vdCBvZiB0aGUgZm9ybSAnPGxvY2FsZT57O3E9PG51bWJlcj59Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBMaXN0IGl0ZW1zID0gKExpc3QpcmVvcmRlci5nZXQocVZhbHVlKTsKKyAgICAgICAgICAgIGlmIChpdGVtcyA9PSBudWxsKSByZW9yZGVyLnB1dChxVmFsdWUsIGl0ZW1zID0gbmV3IExpbmtlZExpc3QoKSk7CisgICAgICAgICAgICBpdGVtcy5hZGQoMCwgYWNjZXB0TWF0Y2hlci5ncm91cCgxKSk7IC8vIHJldmVyc2Ugb3JkZXIsIHdpbGwgcmV2ZXJzZSBhZ2FpbgorICAgICAgICB9CisgICAgICAgIC8vIG5vdyByZWFkIG91dCBpbiByZXZlcnNlIG9yZGVyCisgICAgICAgIExpc3QgcmVzdWx0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gcmVvcmRlci5rZXlTZXQoKS5pdGVyYXRvcigpOyBpdC5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gaXQubmV4dCgpOworICAgICAgICAgICAgTGlzdCBpdGVtcyA9IChMaXN0KXJlb3JkZXIuZ2V0KGtleSk7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0MiA9IGl0ZW1zLml0ZXJhdG9yKCk7IGl0Mi5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCgwLCBuZXcgVUxvY2FsZSgoU3RyaW5nKWl0Mi5uZXh0KCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2V0TG9jYWxlcyhyZXN1bHQpOworICAgIH0KKy8vI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB0ZXJyaXRvcnksIHdoaWNoIGlzIGEgdmFsaWQgdGVycml0b3J5IGFjY29yZGluZyB0byBmb3IKKyAgICAgKiBSRkMgMzA2NiAob3Igc3VjY2Vzc29yKS4gIElmIG5vdCBvdGhlcndpc2Ugc2V0LCBkZWZhdWx0CisgICAgICogY3VycmVuY3kgYW5kIHRpbWV6b25lIHZhbHVlcyB3aWxsIGJlIHNldCBmcm9tIHRoaXMuICBUaGUgdXNlcgorICAgICAqIHNob3VsZCBiZSBnaXZlbiB0aGUgb3Bwb3J0dW5pdHkgdG8gY29ycmVjdCB0aG9zZSBkZWZhdWx0cyBpbgorICAgICAqIGNhc2UgdGhleSBhcmUgaW5jb3JyZWN0LgorICAgICAqIEBwYXJhbSB0ZXJyaXRvcnkgY29kZQorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBzZXRUZXJyaXRvcnkoU3RyaW5nIHRlcnJpdG9yeSkgeworICAgICAgICBpZiAoaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1vZGlmeSBpbW11dGFibGUgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy50ZXJyaXRvcnkgPSB0ZXJyaXRvcnk7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHRlcnJpdG9yeSBzZXR0aW5nLiBJZiBpdCB3YXNuJ3QgZXhwbGljaXRseSBzZXQsIGl0IGlzCisgICAgICogY29tcHV0ZWQgZnJvbSB0aGUgZ2VuZXJhbCBsb2NhbGUgc2V0dGluZy4KKyAgICAgKiBAcmV0dXJuIHRlcnJpdG9yeSBjb2RlLCBleHBsaWNpdCBvciBpbXBsaWNpdC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRlcnJpdG9yeSgpIHsKKyAgICAgICAgaWYgKHRlcnJpdG9yeSA9PSBudWxsKSByZXR1cm4gZ3Vlc3NUZXJyaXRvcnkoKTsKKyAgICAgICAgcmV0dXJuIHRlcnJpdG9yeTsgLy8gaW1tdXRhYmxlLCBzbyBkb24ndCBuZWVkIHRvIGNsb25lCisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVuY3kgY29kZS4gSWYgdGhpcyBoYXMgbm90IGJlZW4gc2V0LCB1c2VzIGRlZmF1bHQgZm9yIHRlcnJpdG9yeS4KKyAgICAgKiBAcGFyYW0gY3VycmVuY3kgVmFsaWQgSVNPIDQyMTcgY3VycmVuY3kgY29kZS4KKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgc2V0Q3VycmVuY3koQ3VycmVuY3kgY3VycmVuY3kpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIHRoaXMuY3VycmVuY3kgPSBjdXJyZW5jeTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgY29weSBvZiB0aGUgY3VycmVuY3kgY29tcHV0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncy4gCisgICAgICogQHJldHVybiBjdXJyZW5jeSBjb2RlLCBleHBsaWNpdCBvciBpbXBsaWNpdC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ3VycmVuY3kgZ2V0Q3VycmVuY3koKSB7CisgICAgICAgIGlmIChjdXJyZW5jeSA9PSBudWxsKSByZXR1cm4gZ3Vlc3NDdXJyZW5jeSgpOworICAgICAgICByZXR1cm4gY3VycmVuY3k7IC8vIGltbXV0YWJsZSwgc28gZG9uJ3QgaGF2ZSB0byBjbG9uZQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGNhbGVuZGFyLiBJZiB0aGlzIGhhcyBub3QgYmVlbiBzZXQsIHVzZXMgZGVmYXVsdCBmb3IgdGVycml0b3J5LgorICAgICAqIEBwYXJhbSBjYWxlbmRhciBhcmJpdHJhcnkgY2FsZW5kYXIKKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgc2V0Q2FsZW5kYXIoQ2FsZW5kYXIgY2FsZW5kYXIpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIHRoaXMuY2FsZW5kYXIgPSBjYWxlbmRhcjsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgY29weSBvZiB0aGUgY2FsZW5kYXIgYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncy4gCisgICAgICogQHJldHVybiBjYWxlbmRhciBleHBsaWNpdCBvciBpbXBsaWNpdC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ2FsZW5kYXIgZ2V0Q2FsZW5kYXIoKSB7CisgICAgICAgIGlmIChjYWxlbmRhciA9PSBudWxsKSByZXR1cm4gZ3Vlc3NDYWxlbmRhcigpOworICAgICAgICBDYWxlbmRhciB0ZW1wID0gKENhbGVuZGFyKSBjYWxlbmRhci5jbG9uZSgpOyAvLyBjbG9uZSBmb3Igc2FmZXR5CisgICAgICAgIHRlbXAuc2V0VGltZVpvbmUoZ2V0VGltZVpvbmUoKSk7CisgICAgICAgIHJldHVybiB0ZW1wOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHRpbWV6b25lIElELiAgSWYgdGhpcyBoYXMgbm90IGJlZW4gc2V0LCB1c2VzIGRlZmF1bHQgZm9yIHRlcnJpdG9yeS4KKyAgICAgKiBAcGFyYW0gdGltZXpvbmUgYSB2YWxpZCBUWklEIChzZWUgVVRTIzM1KS4KKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgc2V0VGltZVpvbmUoVGltZVpvbmUgdGltZXpvbmUpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIHRoaXMudGltZXpvbmUgPSB0aW1lem9uZTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSB0aW1lem9uZS4gSXQgd2FzIGVpdGhlciBleHBsaWNpdGx5IHNldCwgb3IgaXMKKyAgICAgKiBoZXVyaXN0aWNhbGx5IGNvbXB1dGVkIGZyb20gb3RoZXIgc2V0dGluZ3MuCisgICAgICogQHJldHVybiB0aW1lem9uZSwgZWl0aGVyIGltcGxpY2l0bHkgb3IgZXhwbGljaXRseSBzZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGltZVpvbmUgZ2V0VGltZVpvbmUoKSB7CisgICAgICAgIGlmICh0aW1lem9uZSA9PSBudWxsKSByZXR1cm4gZ3Vlc3NUaW1lWm9uZSgpOworICAgICAgICByZXR1cm4gKFRpbWVab25lKSB0aW1lem9uZS5jbG9uZSgpOyAvLyBjbG9uZSBmb3Igc2FmZXR5CisgICAgfQorCQorICAgIC8qKgorICAgICAqIEdldCBhIGNvcHkgb2YgdGhlIGNvbGxhdG9yIGFjY29yZGluZyB0byB0aGUgc2V0dGluZ3MuIAorICAgICAqIEByZXR1cm4gY29sbGF0b3IgZXhwbGljaXQgb3IgaW1wbGljaXQuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIENvbGxhdG9yIGdldENvbGxhdG9yKCkgeworICAgICAgICBpZiAoY29sbGF0b3IgPT0gbnVsbCkgcmV0dXJuIGd1ZXNzQ29sbGF0b3IoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiAoQ29sbGF0b3IpIGNvbGxhdG9yLmNsb25lKCk7ICAvLyBjbG9uZSBmb3Igc2FmZXR5CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkVycm9yIGluIGNsb25pbmcgY29sbGF0b3IiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEV4cGxpY2l0bHkgc2V0IHRoZSBjb2xsYXRvciBmb3IgdGhpcyBvYmplY3QuCisgICAgICogQHBhcmFtIGNvbGxhdG9yCisgICAgICogQHJldHVybiB0aGlzLCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHNldENvbGxhdG9yKENvbGxhdG9yIGNvbGxhdG9yKSB7CisgICAgICAgIGlmIChpc0Zyb3plbigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGltbXV0YWJsZSBvYmplY3QiKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmNvbGxhdG9yID0gY29sbGF0b3I7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZGF0ZSBsb2NhbGUuIAorICAgICAqIEBwYXJhbSBkYXRlTG9jYWxlIElmIG5vdCBudWxsLCBvdmVycmlkZXMgdGhlIGxvY2FsZSBwcmlvcml0eSBsaXN0IGZvciBhbGwgdGhlIGRhdGUgZm9ybWF0cy4KKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqLworICAgIHB1YmxpYyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgc2V0RGF0ZUxvY2FsZShVTG9jYWxlIGRhdGVMb2NhbGUpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIHRoaXMuZGF0ZUxvY2FsZSA9IGRhdGVMb2NhbGU7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGRhdGUgbG9jYWxlLCB0byBiZSB1c2VkIGluIGNvbXB1dGluZyBkYXRlIGZvcm1hdHMuIE92ZXJyaWRlcyB0aGUgZ2VuZXJhbCBsb2NhbGUgc2V0dGluZy4KKyAgICAgKiBAcmV0dXJuIGRhdGUgbG9jYWxlLiBOdWxsIGlmIG5vbmUgd2FzIHNldCBleHBsaWNpdGx5LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBVTG9jYWxlIGdldERhdGVMb2NhbGUoKSB7CisgICAgICAgIHJldHVybiBkYXRlTG9jYWxlICE9IG51bGwgPyBkYXRlTG9jYWxlIDogZ2V0TG9jYWxlKDApOworICAgIH0KKwkKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG51bWJlciBsb2NhbGUuIAorICAgICAqIEBwYXJhbSBudW1iZXJMb2NhbGUgSWYgbm90IG51bGwsIG92ZXJyaWRlcyB0aGUgbG9jYWxlIHByaW9yaXR5IGxpc3QgZm9yIGFsbCB0aGUgZGF0ZSBmb3JtYXRzLgorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBzZXROdW1iZXJMb2NhbGUoVUxvY2FsZSBudW1iZXJMb2NhbGUpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIHRoaXMubnVtYmVyTG9jYWxlID0gbnVtYmVyTG9jYWxlOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGN1cnJlbnQgbnVtYmVyIGxvY2FsZSBzZXR0aW5nIHVzZWQgZm9yIGdldE51bWJlckZvcm1hdC4KKyAgICAgKiBAcmV0dXJuIG51bWJlciBsb2NhbGUuIE51bGwgaWYgbm9uZSB3YXMgc2V0IGV4cGxpY2l0bHkuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIFVMb2NhbGUgZ2V0TnVtYmVyTG9jYWxlKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyTG9jYWxlICE9IG51bGwgPyBudW1iZXJMb2NhbGUgOiBnZXRMb2NhbGUoMCk7CisgICAgfQorCQorICAgIC8qKgorICAgICAqIEdldCB0aGUgZGlzcGxheSBuYW1lIGZvciBhbiBJRDogbGFuZ3VhZ2UsIHNjcmlwdCwgdGVycml0b3J5LCBjdXJyZW5jeSwgdGltZXpvbmUuLi4KKyAgICAgKiBVc2VzIHRoZSBsYW5ndWFnZSBwcmlvcml0eSBsaXN0IHRvIGRvIHNvLgorICAgICAqIEBwYXJhbSBpZCBsYW5ndWFnZSBjb2RlLCBzY3JpcHQgY29kZSwgLi4uCisgICAgICogQHBhcmFtIHR5cGUgc3BlY2lmaWVzIHRoZSB0eXBlIG9mIHRoZSBJRDogTEFOR1VBR0UsIGV0Yy4KKyAgICAgKiBAcmV0dXJuIHRoZSBkaXNwbGF5IG5hbWUKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFN0cmluZyBpZCwgaW50IHR5cGUpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdCA9IGlkOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gZ2V0TG9jYWxlcygpLml0ZXJhdG9yKCk7IGl0Lmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIFVMb2NhbGUgbG9jYWxlID0gKFVMb2NhbGUpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgY2FzZSBMT0NBTEVJRDogCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVUxvY2FsZS5nZXREaXNwbGF5TmFtZShpZCwgbG9jYWxlKTsgCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIExBTkdVQUdFSUQ6IAorICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVMb2NhbGUuZ2V0RGlzcGxheUxhbmd1YWdlKGlkLCBsb2NhbGUpOyAKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU0NSSVBUSUQ6IAorICAgICAgICAgICAgICAgIHJlc3VsdCA9IFVMb2NhbGUuZ2V0RGlzcGxheVNjcmlwdCgidW5kLSIgKyBpZCwgbG9jYWxlKTsgCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFRFUlJJVE9SWUlEOiAKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVTG9jYWxlLmdldERpc3BsYXlDb3VudHJ5KCJ1bmQtIiArIGlkLCBsb2NhbGUpOyAKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVkFSSUFOVElEOiAKKyAgICAgICAgICAgICAgICAvLyBUT0RPIGZpeCB2YXJpYW50IHBhcnNpbmcKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVTG9jYWxlLmdldERpc3BsYXlWYXJpYW50KCJ1bmQtUVEtIiArIGlkLCBsb2NhbGUpOyAKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS0VZV09SRElEOiAKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBVTG9jYWxlLmdldERpc3BsYXlLZXl3b3JkKGlkLCBsb2NhbGUpOyAKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS0VZV09SRF9WQUxVRUlEOgorICAgICAgICAgICAgICAgIFN0cmluZ1tdIHBhcnRzID0gbmV3IFN0cmluZ1syXTsKKyAgICAgICAgICAgICAgICBVdGlsaXR5LnNwbGl0KGlkLCc9JyxwYXJ0cyk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVUxvY2FsZS5nZXREaXNwbGF5S2V5d29yZFZhbHVlKCJ1bmRAIitpZCwgcGFydHNbMF0sIGxvY2FsZSk7CisgICAgICAgICAgICAgICAgLy8gVE9ETyBmaXggdG8gdGVsbCB3aGVuIHN1Y2Nlc3NmdWwKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmVxdWFscyhwYXJ0c1sxXSkpIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDVVJSRU5DWV9TWU1CT0xJRDoKKyAgICAgICAgICAgIGNhc2UgQ1VSUkVOQ1lJRDoKKyAgICAgICAgICAgICAgICBDdXJyZW5jeSB0ZW1wID0gbmV3IEN1cnJlbmN5KGlkKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPXRlbXAuZ2V0TmFtZShsb2NhbGUsIHR5cGU9PUNVUlJFTkNZSUQgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBDdXJyZW5jeS5MT05HX05BTUUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBDdXJyZW5jeS5TWU1CT0xfTkFNRSwgbmV3IGJvb2xlYW5bMV0pOworICAgICAgICAgICAgICAgIC8vIFRPRE86IGhhdmUgbWV0aG9kIHRoYXQgZG9lc24ndCB0YWtlIHBhcmFtZXRlci4gQWRkCisgICAgICAgICAgICAgICAgLy8gZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgc3RyaW5nIGlzIGNob2ljZQorICAgICAgICAgICAgICAgIC8vIGZvcm1hdC4gIAorICAgICAgICAgICAgICAgIC8vIFRPRE86IGhhdmUgbWV0aG9kIHRoYXQgZG9lc24ndCByZXF1aXJlIHVzCisgICAgICAgICAgICAgICAgLy8gdG8gY3JlYXRlIGEgY3VycmVuY3kKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVElNRVpPTkVJRDoKKyAgICAgICAgICAgICAgICBTaW1wbGVEYXRlRm9ybWF0IGR0ZiA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KCJ2dnZ2Iixsb2NhbGUpOworICAgICAgICAgICAgICAgIGR0Zi5zZXRUaW1lWm9uZShUaW1lWm9uZS5nZXRUaW1lWm9uZShpZCkpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGR0Zi5mb3JtYXQobmV3IERhdGUoKSk7CisgICAgICAgICAgICAgICAgLy8gVE9ETywgaGF2ZSBtZXRob2QgdGhhdCBkb2Vzbid0IHJlcXVpcmUgdXMgdG8gY3JlYXRlIGEgdGltZXpvbmUKKyAgICAgICAgICAgICAgICAvLyBmaXggb3RoZXIgaGFja3MKKyAgICAgICAgICAgICAgICAvLyBoYWNrIGZvciBjb3VsZG4ndCBtYXRjaAorICAgICAgICAgICAgICAgIC8vIG5vdGUsIGNvbXBpbGluZyB3aXRoIEZPVU5EQVRJT04gb21pdHMgdGhpcyBjaGVjayBmb3Igbm93CisvLyNpZm5kZWYgRk9VTkRBVElPTgorICAgICAgICAgICAgICAgIGlmIChiYWRUaW1lWm9uZS5yZXNldChyZXN1bHQpLm1hdGNoZXMoKSkgY29udGludWU7CisvLyNlbmRpZgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVbmtub3duIHR5cGU6ICIgKyB0eXBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghaWQuZXF1YWxzKHJlc3VsdCkpIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAvLyBUT0RPIG5lZWQgYmV0dGVyIHdheSBvZiBzZWVpbmcgaWYgd2UgZmVsbCBiYWNrIHRvIHJvb3QhIQorICAgICAgICAgICAgLy8gVGhpcyB3aWxsIG5vdCB3b3JrIGF0IGFsbCBmb3IgbG90cyBvZiBzdHVmZgorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAvLyBUT0RPIHJlbW92ZSBuZWVkIGZvciB0aGlzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTWF0Y2hlciBiYWRUaW1lWm9uZSA9IFBhdHRlcm4uY29tcGlsZSgiW0EtWl17Mn18LipcXHNcXChbQS1aXXsyfVxcKSIpLm1hdGNoZXIoIiIpOworLy8jZW5kaWYKKworCisgICAgLyoqCisgICAgICogU2V0IGFuIGV4cGxpY2l0IGRhdGUgZm9ybWF0LiBPdmVycmlkZXMgYm90aCB0aGUgZGF0ZSBsb2NhbGUsCisgICAgICogYW5kIHRoZSBsb2NhbGUgcHJpb3JpdHkgbGlzdCBmb3IgYSBwYXJ0aWN1bGFyIGNvbWJpbmF0aW9uIG9mCisgICAgICogZGF0ZVN0eWxlIGFuZCB0aW1lU3R5bGUuIE5PTkUgc2hvdWxkIGJlIHVzZWQgaWYgZm9yIHRoZSBzdHlsZSwKKyAgICAgKiB3aGVyZSBvbmx5IHRoZSBkYXRlIG9yIHRpbWUgZm9ybWF0IGluZGl2aWR1YWxseSBpcyBiZWluZyBzZXQuCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSBOT05FLCBvciBEYXRlRm9ybWF0LkZVTEwsIExPTkcsIE1FRElVTSwgU0hPUlQKKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIE5PTkUsIG9yIERhdGVGb3JtYXQuRlVMTCwgTE9ORywgTUVESVVNLCBTSE9SVAorICAgICAqIEBwYXJhbSBmb3JtYXQKKyAgICAgKiBAcmV0dXJuIHRoaXMsIGZvciBjaGFpbmluZworICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMgc2V0RGF0ZUZvcm1hdChpbnQgZGF0ZVN0eWxlLCBpbnQgdGltZVN0eWxlLCBEYXRlRm9ybWF0IGZvcm1hdCkgeworICAgICAgICBpZiAoaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1vZGlmeSBpbW11dGFibGUgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRhdGVGb3JtYXRzID09IG51bGwpIGRhdGVGb3JtYXRzID0gbmV3IE9iamVjdFtOT05FKzFdW05PTkUrMV07CisgICAgICAgIGRhdGVGb3JtYXRzW2RhdGVTdHlsZV1bdGltZVN0eWxlXSA9IChEYXRlRm9ybWF0KSBmb3JtYXQuY2xvbmUoKTsgLy8gZm9yIHNhZmV0eQorICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisJCisgICAgLyoqCisgICAgICogU2V0IGFuIGV4cGxpY2l0IGRhdGUgZm9ybWF0LiBPdmVycmlkZXMgYm90aCB0aGUgZGF0ZSBsb2NhbGUsCisgICAgICogYW5kIHRoZSBsb2NhbGUgcHJpb3JpdHkgbGlzdCBmb3IgYSBwYXJ0aWN1bGFyIGNvbWJpbmF0aW9uIG9mCisgICAgICogZGF0ZVN0eWxlIGFuZCB0aW1lU3R5bGUuIE5PTkUgc2hvdWxkIGJlIHVzZWQgaWYgZm9yIHRoZSBzdHlsZSwKKyAgICAgKiB3aGVyZSBvbmx5IHRoZSBkYXRlIG9yIHRpbWUgZm9ybWF0IGluZGl2aWR1YWxseSBpcyBiZWluZyBzZXQuCisgICAgICogQHBhcmFtIGRhdGVTdHlsZSBOT05FLCBvciBEYXRlRm9ybWF0LkZVTEwsIExPTkcsIE1FRElVTSwgU0hPUlQKKyAgICAgKiBAcGFyYW0gdGltZVN0eWxlIE5PTkUsIG9yIERhdGVGb3JtYXQuRlVMTCwgTE9ORywgTUVESVVNLCBTSE9SVAorICAgICAqIEBwYXJhbSBmb3JtYXRQYXR0ZXJuIGRhdGUgcGF0dGVybiwgZWcgInl5eXktTU1NLWRkIgorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBzZXREYXRlRm9ybWF0KGludCBkYXRlU3R5bGUsIGludCB0aW1lU3R5bGUsIFN0cmluZyBmb3JtYXRQYXR0ZXJuKSB7CisgICAgICAgIGlmIChpc0Zyb3plbigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGltbXV0YWJsZSBvYmplY3QiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGF0ZUZvcm1hdHMgPT0gbnVsbCkgZGF0ZUZvcm1hdHMgPSBuZXcgT2JqZWN0W05PTkUrMV1bTk9ORSsxXTsKKyAgICAgICAgLy8gdGVzdCB0aGUgZm9ybWF0IHRvIG1ha2Ugc3VyZSBpdCB3b24ndCB0aHJvdyBhbiBlcnJvciBsYXRlcgorICAgICAgICBuZXcgU2ltcGxlRGF0ZUZvcm1hdChmb3JtYXRQYXR0ZXJuLCBnZXREYXRlTG9jYWxlKCkpOworICAgICAgICBkYXRlRm9ybWF0c1tkYXRlU3R5bGVdW3RpbWVTdHlsZV0gPSBmb3JtYXRQYXR0ZXJuOyAvLyBmb3Igc2FmZXR5CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgYSBkYXRlIGZvcm1hdCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgc2V0dGluZ3MuIElmIHRoZXJlCisgICAgICogaXMgYW4gZXhwbGljaXQgKG5vbi1udWxsKSBkYXRlL3RpbWUgZm9ybWF0IHNldCwgYSBjb3B5IG9mIHRoYXQKKyAgICAgKiBpcyByZXR1cm5lZC4gT3RoZXJ3aXNlLCBpZiB0aGVyZSBpcyBhIG5vbi1udWxsIGRhdGUgbG9jYWxlLAorICAgICAqIHRoYXQgaXMgdXNlZC4gIE90aGVyd2lzZSwgdGhlIGxhbmd1YWdlIHByaW9yaXR5IGxpc3QgaXMKKyAgICAgKiB1c2VkLiBOT05FIHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3R5bGUsIHdoZXJlIG9ubHkgdGhlIGRhdGUgb3IKKyAgICAgKiB0aW1lIGZvcm1hdCBpbmRpdmlkdWFsbHkgaXMgYmVpbmcgZ290dGVuLgorICAgICAqIEBwYXJhbSBkYXRlU3R5bGUgTk9ORSwgb3IgRGF0ZUZvcm1hdC5GVUxMLCBMT05HLCBNRURJVU0sIFNIT1JUCisgICAgICogQHBhcmFtIHRpbWVTdHlsZSBOT05FLCBvciBEYXRlRm9ybWF0LkZVTEwsIExPTkcsIE1FRElVTSwgU0hPUlQKKyAgICAgKiBAcmV0dXJuIGEgRGF0ZUZvcm1hdCwgYWNjb3JkaW5nIHRvIHRoZSBhYm92ZSBkZXNjcmlwdGlvbgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBEYXRlRm9ybWF0IGdldERhdGVGb3JtYXQoaW50IGRhdGVTdHlsZSwgaW50IHRpbWVTdHlsZSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCByZXN1bHQgPSBudWxsOworICAgICAgICAgICAgaWYgKGRhdGVGb3JtYXRzICE9IG51bGwpIHsgLy8gYW5kIG92ZXJyaWRlIGNhbiBlaXRoZXIgYmUgYSBzdHJpbmcgb3IgYSBwYXR0ZXJuCisgICAgICAgICAgICAgICAgT2JqZWN0IHRlbXAgPSBkYXRlRm9ybWF0c1tkYXRlU3R5bGVdW3RpbWVTdHlsZV07CisgICAgICAgICAgICAgICAgaWYgKHRlbXAgaW5zdGFuY2VvZiBEYXRlRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChEYXRlRm9ybWF0KSB0ZW1wOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBTaW1wbGVEYXRlRm9ybWF0KChTdHJpbmcpdGVtcCwgZ2V0RGF0ZUxvY2FsZSgpKTsKKyAgICAgICAgICAgICAgICB9CQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gKERhdGVGb3JtYXQpIHJlc3VsdC5jbG9uZSgpOyAvLyBjbG9uZSBmb3Igc2FmZXR5CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldENhbGVuZGFyKGdldENhbGVuZGFyKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBJbiB0aGUgY2FzZSBvZiBkYXRlIGZvcm1hdHMsIHdlIGRvbid0IGhhdmUgdG8gbG9vayBhdCBtb3JlIHRoYW4gb25lCisgICAgICAgICAgICAgICAgLy8gbG9jYWxlLiBNYXkgYmUgZGlmZmVyZW50IGZvciBvdGhlciBjYXNlcworICAgICAgICAgICAgICAgIC8vIFRPRE8gTWFrZSB0aGlzIG9uZSBmdW5jdGlvbi4KKyAgICAgICAgICAgICAgICBpZiAodGltZVN0eWxlID09IE5PTkUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoZ2V0Q2FsZW5kYXIoKSwgZGF0ZVN0eWxlLCBnZXREYXRlTG9jYWxlKCkpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0ZVN0eWxlID09IE5PTkUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoZ2V0Q2FsZW5kYXIoKSwgdGltZVN0eWxlLCBnZXREYXRlTG9jYWxlKCkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZShnZXRDYWxlbmRhcigpLCBkYXRlU3R5bGUsIHRpbWVTdHlsZSwgZ2V0RGF0ZUxvY2FsZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9IGNhdGNoIChSdW50aW1lRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBleCA9IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkNhbm5vdCBjcmVhdGUgRGF0ZUZvcm1hdCIpOworLy8jaWZuZGVmIEZPVU5EQVRJT04KKyAgICAgICAgICAgIGV4LmluaXRDYXVzZShlKTsKKy8vI2VuZGlmCisgICAgICAgICAgICB0aHJvdyBleDsKKyAgICAgICAgfQorICAgIH0KKwkKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgbnVtYmVyIGZvcm1hdCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgc2V0dGluZ3MuICBJZgorICAgICAqIHRoZXJlIGlzIGFuIGV4cGxpY2l0IChub24tbnVsbCkgbnVtYmVyIGZvcm1hdCBzZXQsIGEgY29weSBvZgorICAgICAqIHRoYXQgaXMgcmV0dXJuZWQuIE90aGVyd2lzZSwgaWYgdGhlcmUgaXMgYSBub24tbnVsbCBudW1iZXIKKyAgICAgKiBsb2NhbGUsIHRoYXQgaXMgdXNlZC4gIE90aGVyd2lzZSwgdGhlIGxhbmd1YWdlIHByaW9yaXR5IGxpc3QgaXMKKyAgICAgKiB1c2VkLiBOT05FIHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3R5bGUsIHdoZXJlIG9ubHkgdGhlIGRhdGUgb3IKKyAgICAgKiB0aW1lIGZvcm1hdCBpbmRpdmlkdWFsbHkgaXMgYmVpbmcgZ290dGVuLgorICAgICAqIEBwYXJhbSBzdHlsZSBDVVJSRU5DWSwgTlVNQkVSLCBJTlRFR0VSLCBTQ0lFTlRJRklDLCBQRVJDRU5UCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIE51bWJlckZvcm1hdCBnZXROdW1iZXJGb3JtYXQoaW50IHN0eWxlKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBOdW1iZXJGb3JtYXQgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChudW1iZXJGb3JtYXRzICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBPYmplY3QgdGVtcCA9IG51bWJlckZvcm1hdHNbc3R5bGVdOworICAgICAgICAgICAgICAgIGlmICh0ZW1wIGluc3RhbmNlb2YgTnVtYmVyRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IChOdW1iZXJGb3JtYXQpIHRlbXA7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV3IERlY2ltYWxGb3JtYXQoKFN0cmluZyl0ZW1wLCBuZXcgRGVjaW1hbEZvcm1hdFN5bWJvbHMoZ2V0RGF0ZUxvY2FsZSgpKSk7CisgICAgICAgICAgICAgICAgfQkKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IChOdW1iZXJGb3JtYXQpIHJlc3VsdC5jbG9uZSgpOyAvLyBjbG9uZSBmb3Igc2FmZXR5IChsYXRlciBvcHRpbWl6ZSkKKyAgICAgICAgICAgICAgICBpZiAoc3R5bGUgPT0gQ1VSUkVOQ1kpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldEN1cnJlbmN5KGdldEN1cnJlbmN5KCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OyAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIEluIHRoZSBjYXNlIG9mIGRhdGUgZm9ybWF0cywgd2UgZG9uJ3QgaGF2ZSB0byBsb29rIGF0IG1vcmUgdGhhbiBvbmUKKyAgICAgICAgICAgIC8vIGxvY2FsZS4gTWF5IGJlIGRpZmZlcmVudCBmb3Igb3RoZXIgY2FzZXMKKyAgICAgICAgICAgIHN3aXRjaCAoc3R5bGUpIHsKKyAgICAgICAgICAgIGNhc2UgTlVNQkVSOiByZXR1cm4gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKGdldE51bWJlckxvY2FsZSgpKTsKKyAgICAgICAgICAgIGNhc2UgU0NJRU5USUZJQzogcmV0dXJuIE51bWJlckZvcm1hdC5nZXRTY2llbnRpZmljSW5zdGFuY2UoZ2V0TnVtYmVyTG9jYWxlKCkpOworICAgICAgICAgICAgY2FzZSBJTlRFR0VSOiByZXR1cm4gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZShnZXROdW1iZXJMb2NhbGUoKSk7CisgICAgICAgICAgICBjYXNlIFBFUkNFTlQ6IHJldHVybiBOdW1iZXJGb3JtYXQuZ2V0UGVyY2VudEluc3RhbmNlKGdldE51bWJlckxvY2FsZSgpKTsKKyAgICAgICAgICAgIGNhc2UgQ1VSUkVOQ1k6IHJlc3VsdCA9IE51bWJlckZvcm1hdC5nZXRDdXJyZW5jeUluc3RhbmNlKGdldE51bWJlckxvY2FsZSgpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0Q3VycmVuY3koZ2V0Q3VycmVuY3koKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaCAoUnVudGltZUV4Y2VwdGlvbiBlKSB7fQorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7IC8vIGZpeCBsYXRlcgorICAgIH0KKwkKKyAgICAvKioKKyAgICAgKiBTZXRzIGEgbnVtYmVyIGZvcm1hdCBleHBsaWNpdGx5LiBPdmVycmlkZXMgdGhlIG51bWJlciBsb2NhbGUKKyAgICAgKiBhbmQgdGhlIGdlbmVyYWwgbG9jYWxlIHNldHRpbmdzLgorICAgICAqIEBwYXJhbSBzdHlsZSBDVVJSRU5DWSwgTlVNQkVSLCBJTlRFR0VSLCBTQ0lFTlRJRklDLCBQRVJDRU5UCisgICAgICogQHJldHVybiB0aGlzLCBmb3IgY2hhaW5pbmcKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHNldE51bWJlckZvcm1hdChpbnQgc3R5bGUsIERhdGVGb3JtYXQgZm9ybWF0KSB7CisgICAgICAgIGlmIChpc0Zyb3plbigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIkF0dGVtcHQgdG8gbW9kaWZ5IGltbXV0YWJsZSBvYmplY3QiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobnVtYmVyRm9ybWF0cyA9PSBudWxsKSBudW1iZXJGb3JtYXRzID0gbmV3IE9iamVjdFtOVU1CRVJfTElNSVRdOworICAgICAgICBudW1iZXJGb3JtYXRzW3N0eWxlXSA9IChOdW1iZXJGb3JtYXQpIGZvcm1hdC5jbG9uZSgpOyAvLyBmb3Igc2FmZXR5CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKwkKKyAgICAvKioKKyAgICAgKiBTZXRzIGEgbnVtYmVyIGZvcm1hdCBleHBsaWNpdGx5LiBPdmVycmlkZXMgdGhlIG51bWJlciBsb2NhbGUKKyAgICAgKiBhbmQgdGhlIGdlbmVyYWwgbG9jYWxlIHNldHRpbmdzLgorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyBzZXROdW1iZXJGb3JtYXQoaW50IHN0eWxlLCBTdHJpbmcgZm9ybWF0UGF0dGVybikgeworICAgICAgICBpZiAoaXNGcm96ZW4oKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJBdHRlbXB0IHRvIG1vZGlmeSBpbW11dGFibGUgb2JqZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG51bWJlckZvcm1hdHMgPT0gbnVsbCkgbnVtYmVyRm9ybWF0cyA9IG5ldyBPYmplY3RbTlVNQkVSX0xJTUlUXTsKKyAgICAgICAgLy8gY2hlY2sgdG8gbWFrZSBzdXJlIGl0IGNvbXBpbGVzCisgICAgICAgIG5ldyBEZWNpbWFsRm9ybWF0KChTdHJpbmcpZm9ybWF0UGF0dGVybiwgbmV3IERlY2ltYWxGb3JtYXRTeW1ib2xzKGdldERhdGVMb2NhbGUoKSkpOworICAgICAgICBudW1iZXJGb3JtYXRzW3N0eWxlXSA9IGZvcm1hdFBhdHRlcm47IC8vIGZvciBzYWZldHkKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzdG9yZSB0aGUgb2JqZWN0IHRvIHRoZSBpbml0aWFsIHN0YXRlLgorICAgICAqIEByZXR1cm4gdGhpcywgZm9yIGNoYWluaW5nCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIEdsb2JhbGl6YXRpb25QcmVmZXJlbmNlcyByZXNldCgpIHsKKyAgICAgICAgaWYgKGlzRnJvemVuKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtb2RpZnkgaW1tdXRhYmxlIG9iamVjdCIpOworICAgICAgICB9CisgICAgICAgIHRlcnJpdG9yeSA9IG51bGw7CisgICAgICAgIGNhbGVuZGFyID0gbnVsbDsKKyAgICAgICAgY29sbGF0b3IgPSBudWxsOworICAgICAgICB0aW1lem9uZSA9IG51bGw7CisgICAgICAgIGN1cnJlbmN5ID0gbnVsbDsKKyAgICAgICAgZGF0ZUZvcm1hdHMgPSBudWxsOworICAgICAgICBudW1iZXJGb3JtYXRzID0gbnVsbDsKKyAgICAgICAgZGF0ZUxvY2FsZSA9IG51bGw7CisgICAgICAgIG51bWJlckxvY2FsZSA9IG51bGw7CisgICAgICAgIGxvY2FsZXMgPSBudWxsOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisJCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHVzZSBkaWZmZXJlbnQgaGV1cmlzdGljcy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGd1ZXNzVGVycml0b3J5KCkgeworICAgICAgICBTdHJpbmcgcmVzdWx0OworICAgICAgICAvLyBwYXNzIHRocm91Z2ggbG9jYWxlcyB0byBzZWUgaWYgdGhlcmUgaXMgYSB0ZXJyaXRvcnkuCisgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBnZXRMb2NhbGVzKCkuaXRlcmF0b3IoKTsgaXQuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgVUxvY2FsZSBsb2NhbGUgPSAoVUxvY2FsZSlpdC5uZXh0KCk7CisgICAgICAgICAgICByZXN1bHQgPSBsb2NhbGUuZ2V0Q291bnRyeSgpOworICAgICAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvLyBpZiBub3QsIGd1ZXNzIGZyb20gdGhlIGZpcnN0IGxhbmd1YWdlIHRhZywgb3IgbWF5YmUgZnJvbQorICAgICAgICAvLyBpbnRlcnNlY3Rpb24gb2YgbGFuZ3VhZ2VzLCBlZyBubCArIGZyID0+IEJFCisgICAgICAgIC8vIFRPRE86IGZpeCB1c2luZyByZWFsIGRhdGEKKyAgICAgICAgLy8gZm9yIG5vdywganVzdCB1c2UgZml4ZWQgdmFsdWVzCisgICAgICAgIFVMb2NhbGUgZmlyc3RMb2NhbGUgPSBnZXRMb2NhbGUoMCk7CisgICAgICAgIFN0cmluZyBsYW5ndWFnZSA9IGZpcnN0TG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgICAgIFN0cmluZyBzY3JpcHQgPSBmaXJzdExvY2FsZS5nZXRTY3JpcHQoKTsKKyAgICAgICAgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgaWYgKHNjcmlwdC5sZW5ndGgoKSAhPSAwKSB7CisgICAgICAgICAgICByZXN1bHQgPSAoU3RyaW5nKSBsYW5ndWFnZV90ZXJyaXRvcnlfaGFja19tYXAuZ2V0KGxhbmd1YWdlICsgIl8iICsgc2NyaXB0KTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IChTdHJpbmcpIGxhbmd1YWdlX3RlcnJpdG9yeV9oYWNrX21hcC5nZXQobGFuZ3VhZ2UpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9ICJVUyI7IC8vIG5lZWQgKnNvbWUqIGRlZmF1bHQKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gdXNlIGRpZmZlcmVudCBoZXVyaXN0aWNzCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIEN1cnJlbmN5IGd1ZXNzQ3VycmVuY3koKSB7CisgICAgICAgIHJldHVybiBDdXJyZW5jeS5nZXRJbnN0YW5jZShuZXcgVUxvY2FsZSgidW5kLSIgKyBnZXRUZXJyaXRvcnkoKSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byB1c2UgZGlmZmVyZW50IGhldXJpc3RpY3MKKyAgICAgKiA8Yj5JdCBNVVNUIHJldHVybiBhICdzYWZlJyB2YWx1ZSwKKyAgICAgKiBvbmUgd2hvc2UgbW9kaWZpY2F0aW9uIHdpbGwgbm90IGFmZmVjdCB0aGlzIG9iamVjdC48L2I+CisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHJvdGVjdGVkIExpc3QgZ3Vlc3NMb2NhbGVzKCkgeworICAgICAgICBMaXN0IHJlc3VsdCA9IG5ldyBBcnJheUxpc3QoMCk7CisgICAgICAgIHJlc3VsdC5hZGQoVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byB1c2UgZGlmZmVyZW50IGhldXJpc3RpY3MuCisgICAgICogPGI+SXQgTVVTVCByZXR1cm4gYSAnc2FmZScgdmFsdWUsCisgICAgICogb25lIHdob3NlIG1vZGlmaWNhdGlvbiB3aWxsIG5vdCBhZmZlY3QgdGhpcyBvYmplY3QuPC9iPgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCBDb2xsYXRvciBndWVzc0NvbGxhdG9yKCkgeworICAgICAgICByZXR1cm4gQ29sbGF0b3IuZ2V0SW5zdGFuY2UoZ2V0TG9jYWxlKDApKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gdXNlIGRpZmZlcmVudCBoZXVyaXN0aWNzLgorICAgICAqIDxiPkl0IE1VU1QgcmV0dXJuIGEgJ3NhZmUnIHZhbHVlLAorICAgICAqIG9uZSB3aG9zZSBtb2RpZmljYXRpb24gd2lsbCBub3QgYWZmZWN0IHRoaXMgb2JqZWN0LjwvYj4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVGltZVpvbmUgZ3Vlc3NUaW1lWm9uZSgpIHsKKyAgICAgICAgLy8gVE9ETyBmaXggdXNpbmcgcmVhbCBkYXRhCisgICAgICAgIC8vIGZvciBzaW5nbGUtem9uZSBjb3VudHJpZXMsIHBpY2sgdGhhdCB6b25lCisgICAgICAgIC8vIGZvciBvdGhlcnMsIHBpY2sgdGhlIG1vc3QgcG9wdWxvdXMgem9uZQorICAgICAgICAvLyBmb3Igbm93LCBqdXN0IHVzZSBmaXhlZCB2YWx1ZQorICAgICAgICAvLyBOT1RFOiBpbiBhIGZldyBjYXNlcyBjYW4gZG8gYmV0dGVyIGJ5IGxvb2tpbmcgYXQgbGFuZ3VhZ2UuIAorICAgICAgICAvLyBFZyBoYXcrVVMgc2hvdWxkIGdvIHRvIFBhY2lmaWMvSG9ub2x1bHUKKyAgICAgICAgLy8gZnIrQ0Egc2hvdWxkIGdvIHRvIEFtZXJpY2EvTW9udHJlYWwKKyAgICAgICAgU3RyaW5nIHRpbWV6b25lU3RyaW5nID0gKFN0cmluZykgdGVycml0b3J5X3R6aWRfaGFja19tYXAuZ2V0KGdldFRlcnJpdG9yeSgpKTsKKyAgICAgICAgaWYgKHRpbWV6b25lU3RyaW5nID09IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZ1tdIGF0dGVtcHQgPSBab25lTWV0YS5nZXRBdmFpbGFibGVJRHMoZ2V0VGVycml0b3J5KCkpOworICAgICAgICAgICAgaWYgKGF0dGVtcHQubGVuZ3RoID09IDApIHsKKyAgICAgICAgICAgICAgICB0aW1lem9uZVN0cmluZyA9ICJFdGMvR01UIjsgLy8gZ290dGEgZG8gc29tZXRoaW5nCisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGludCBpOworICAgICAgICAgICAgICAgIC8vIHRoaXMgYWxsIG5lZWRzIHRvIGJlIGZpeGVkIHRvIHVzZSByZWFsIGRhdGEuIEJ1dCBmb3Igbm93LCBkbyBzbGlnaHRseSBiZXR0ZXIgYnkgc2tpcHBpbmcgY3J1ZnQKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXR0ZW1wdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXR0ZW1wdFtpXS5pbmRleE9mKCIvIikgPj0gMCkgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpID4gYXR0ZW1wdC5sZW5ndGgpIGkgPSAwOworICAgICAgICAgICAgICAgIHRpbWV6b25lU3RyaW5nID0gYXR0ZW1wdFtpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gVGltZVpvbmUuZ2V0VGltZVpvbmUodGltZXpvbmVTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyB0byB1c2UgZGlmZmVyZW50IGhldXJpc3RpY3MuCisgICAgICogPGI+SXQgTVVTVCByZXR1cm4gYSAnc2FmZScgdmFsdWUsCisgICAgICogb25lIHdob3NlIG1vZGlmaWNhdGlvbiB3aWxsIG5vdCBhZmZlY3QgdGhpcyBvYmplY3QuPC9iPgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHByb3RlY3RlZCBDYWxlbmRhciBndWVzc0NhbGVuZGFyKCkgeworICAgICAgICAvLyBUT0RPIGFkZCBiZXR0ZXIgQVBJCisgICAgICAgIHJldHVybiBDYWxlbmRhci5nZXRJbnN0YW5jZShuZXcgVUxvY2FsZSgidW5kLSIgKyBnZXRUZXJyaXRvcnkoKSkpOworICAgIH0KKwkKKyAgICAvLyBQUklWQVRFUworCQorICAgIHByaXZhdGUgT2JqZWN0IGxvY2FsZXM7CisgICAgcHJpdmF0ZSBTdHJpbmcgdGVycml0b3J5OworICAgIHByaXZhdGUgQ3VycmVuY3kgY3VycmVuY3k7CisgICAgcHJpdmF0ZSBUaW1lWm9uZSB0aW1lem9uZTsKKyAgICBwcml2YXRlIENhbGVuZGFyIGNhbGVuZGFyOworICAgIHByaXZhdGUgQ29sbGF0b3IgY29sbGF0b3I7CisJCisgICAgcHJpdmF0ZSBVTG9jYWxlIGRhdGVMb2NhbGU7CisgICAgcHJpdmF0ZSBPYmplY3RbXVtdIGRhdGVGb3JtYXRzOworICAgIHByaXZhdGUgVUxvY2FsZSBudW1iZXJMb2NhbGU7CisgICAgcHJpdmF0ZSBPYmplY3RbXSBudW1iZXJGb3JtYXRzOworCQorICAgIHsKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisJCisgICAgLyoqIFdBUk5JTkc6IEFsbCBvZiB0aGlzIGRhdGEgaXMgdGVtcG9yYXJ5LCB1bnRpbCB3ZSBzdGFydCBpbXBvcnRpbmcgZnJvbSBDTERSISEhCisgICAgICogCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTWFwIGxhbmd1YWdlX3RlcnJpdG9yeV9oYWNrX21hcCA9IG5ldyBIYXNoTWFwKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nW11bXSBsYW5ndWFnZV90ZXJyaXRvcnlfaGFjayA9IHsKKyAgICAgICAgeyJhZiIsICJaQSJ9LAorICAgICAgICB7ImFtIiwgIkVUIn0sCisgICAgICAgIHsiYXIiLCAiU0EifSwKKyAgICAgICAgeyJhcyIsICJJTiJ9LAorICAgICAgICB7ImF5IiwgIlBFIn0sCisgICAgICAgIHsiYXoiLCAiQVoifSwKKyAgICAgICAgeyJiYWwiLCAiUEsifSwKKyAgICAgICAgeyJiZSIsICJCWSJ9LAorICAgICAgICB7ImJnIiwgIkJHIn0sCisgICAgICAgIHsiYm4iLCAiSU4ifSwKKyAgICAgICAgeyJicyIsICJCQSJ9LAorICAgICAgICB7ImNhIiwgIkVTIn0sCisgICAgICAgIHsiY2giLCAiTVAifSwKKyAgICAgICAgeyJjcGUiLCAiU0wifSwKKyAgICAgICAgeyJjcyIsICJDWiJ9LAorICAgICAgICB7ImN5IiwgIkdCIn0sCisgICAgICAgIHsiZGEiLCAiREsifSwKKyAgICAgICAgeyJkZSIsICJERSJ9LAorICAgICAgICB7ImR2IiwgIk1WIn0sCisgICAgICAgIHsiZHoiLCAiQlQifSwKKyAgICAgICAgeyJlbCIsICJHUiJ9LAorICAgICAgICB7ImVuIiwgIlVTIn0sCisgICAgICAgIHsiZXMiLCAiRVMifSwKKyAgICAgICAgeyJldCIsICJFRSJ9LAorICAgICAgICB7ImV1IiwgIkVTIn0sCisgICAgICAgIHsiZmEiLCAiSVIifSwKKyAgICAgICAgeyJmaSIsICJGSSJ9LAorICAgICAgICB7ImZpbCIsICJQSCJ9LAorICAgICAgICB7ImZqIiwgIkZKIn0sCisgICAgICAgIHsiZm8iLCAiRk8ifSwKKyAgICAgICAgeyJmciIsICJGUiJ9LAorICAgICAgICB7ImdhIiwgIklFIn0sCisgICAgICAgIHsiZ2QiLCAiR0IifSwKKyAgICAgICAgeyJnbCIsICJFUyJ9LAorICAgICAgICB7ImduIiwgIlBZIn0sCisgICAgICAgIHsiZ3UiLCAiSU4ifSwKKyAgICAgICAgeyJndiIsICJHQiJ9LAorICAgICAgICB7ImhhIiwgIk5HIn0sCisgICAgICAgIHsiaGUiLCAiSUwifSwKKyAgICAgICAgeyJoaSIsICJJTiJ9LAorICAgICAgICB7ImhvIiwgIlBHIn0sCisgICAgICAgIHsiaHIiLCAiSFIifSwKKyAgICAgICAgeyJodCIsICJIVCJ9LAorICAgICAgICB7Imh1IiwgIkhVIn0sCisgICAgICAgIHsiaHkiLCAiQU0ifSwKKyAgICAgICAgeyJpZCIsICJJRCJ9LAorICAgICAgICB7ImlzIiwgIklTIn0sCisgICAgICAgIHsiaXQiLCAiSVQifSwKKyAgICAgICAgeyJqYSIsICJKUCJ9LAorICAgICAgICB7ImthIiwgIkdFIn0sCisgICAgICAgIHsia2siLCAiS1oifSwKKyAgICAgICAgeyJrbCIsICJHTCJ9LAorICAgICAgICB7ImttIiwgIktIIn0sCisgICAgICAgIHsia24iLCAiSU4ifSwKKyAgICAgICAgeyJrbyIsICJLUiJ9LAorICAgICAgICB7ImtvayIsICJJTiJ9LAorICAgICAgICB7ImtzIiwgIklOIn0sCisgICAgICAgIHsia3UiLCAiVFIifSwKKyAgICAgICAgeyJreSIsICJLRyJ9LAorICAgICAgICB7ImxhIiwgIlZBIn0sCisgICAgICAgIHsibGIiLCAiTFUifSwKKyAgICAgICAgeyJsbiIsICJDRyJ9LAorICAgICAgICB7ImxvIiwgIkxBIn0sCisgICAgICAgIHsibHQiLCAiTFQifSwKKyAgICAgICAgeyJsdiIsICJMViJ9LAorICAgICAgICB7Im1haSIsICJJTiJ9LAorICAgICAgICB7Im1lbiIsICJHTiJ9LAorICAgICAgICB7Im1nIiwgIk1HIn0sCisgICAgICAgIHsibWgiLCAiTUgifSwKKyAgICAgICAgeyJtayIsICJNSyJ9LAorICAgICAgICB7Im1sIiwgIklOIn0sCisgICAgICAgIHsibW4iLCAiTU4ifSwKKyAgICAgICAgeyJtbmkiLCAiSU4ifSwKKyAgICAgICAgeyJtbyIsICJNRCJ9LAorICAgICAgICB7Im1yIiwgIklOIn0sCisgICAgICAgIHsibXMiLCAiTVkifSwKKyAgICAgICAgeyJtdCIsICJNVCJ9LAorICAgICAgICB7Im15IiwgIk1NIn0sCisgICAgICAgIHsibmEiLCAiTlIifSwKKyAgICAgICAgeyJuYiIsICJOTyJ9LAorICAgICAgICB7Im5kIiwgIlpBIn0sCisgICAgICAgIHsibmUiLCAiTlAifSwKKyAgICAgICAgeyJuaXUiLCAiTlUifSwKKyAgICAgICAgeyJubCIsICJOTCJ9LAorICAgICAgICB7Im5uIiwgIk5PIn0sCisgICAgICAgIHsibm8iLCAiTk8ifSwKKyAgICAgICAgeyJuciIsICJaQSJ9LAorICAgICAgICB7Im5zbyIsICJaQSJ9LAorICAgICAgICB7Im55IiwgIk1XIn0sCisgICAgICAgIHsib20iLCAiS0UifSwKKyAgICAgICAgeyJvciIsICJJTiJ9LAorICAgICAgICB7InBhIiwgIklOIn0sCisgICAgICAgIHsicGF1IiwgIlBXIn0sCisgICAgICAgIHsicGwiLCAiUEwifSwKKyAgICAgICAgeyJwcyIsICJQSyJ9LAorICAgICAgICB7InB0IiwgIkJSIn0sCisgICAgICAgIHsicXUiLCAiUEUifSwKKyAgICAgICAgeyJybiIsICJCSSJ9LAorICAgICAgICB7InJvIiwgIlJPIn0sCisgICAgICAgIHsicnUiLCAiUlUifSwKKyAgICAgICAgeyJydyIsICJSVyJ9LAorICAgICAgICB7InNkIiwgIklOIn0sCisgICAgICAgIHsic2ciLCAiQ0YifSwKKyAgICAgICAgeyJzaSIsICJMSyJ9LAorICAgICAgICB7InNrIiwgIlNLIn0sCisgICAgICAgIHsic2wiLCAiU0kifSwKKyAgICAgICAgeyJzbSIsICJXUyJ9LAorICAgICAgICB7InNvIiwgIkRKIn0sCisgICAgICAgIHsic3EiLCAiQ1MifSwKKyAgICAgICAgeyJzciIsICJDUyJ9LAorICAgICAgICB7InNzIiwgIlpBIn0sCisgICAgICAgIHsic3QiLCAiWkEifSwKKyAgICAgICAgeyJzdiIsICJTRSJ9LAorICAgICAgICB7InN3IiwgIktFIn0sCisgICAgICAgIHsidGEiLCAiSU4ifSwKKyAgICAgICAgeyJ0ZSIsICJJTiJ9LAorICAgICAgICB7InRlbSIsICJTTCJ9LAorICAgICAgICB7InRldCIsICJUTCJ9LAorICAgICAgICB7InRoIiwgIlRIIn0sCisgICAgICAgIHsidGkiLCAiRVQifSwKKyAgICAgICAgeyJ0ZyIsICJUSiJ9LAorICAgICAgICB7InRrIiwgIlRNIn0sCisgICAgICAgIHsidGtsIiwgIlRLIn0sCisgICAgICAgIHsidHZsIiwgIlRWIn0sCisgICAgICAgIHsidGwiLCAiUEgifSwKKyAgICAgICAgeyJ0biIsICJaQSJ9LAorICAgICAgICB7InRvIiwgIlRPIn0sCisgICAgICAgIHsidHBpIiwgIlBHIn0sCisgICAgICAgIHsidHIiLCAiVFIifSwKKyAgICAgICAgeyJ0cyIsICJaQSJ9LAorICAgICAgICB7InVrIiwgIlVBIn0sCisgICAgICAgIHsidXIiLCAiSU4ifSwKKyAgICAgICAgeyJ1eiIsICJVWiJ9LAorICAgICAgICB7InZlIiwgIlpBIn0sCisgICAgICAgIHsidmkiLCAiVk4ifSwKKyAgICAgICAgeyJ3byIsICJTTiJ9LAorICAgICAgICB7InhoIiwgIlpBIn0sCisgICAgICAgIHsiemgiLCAiQ04ifSwKKyAgICAgICAgeyJ6aF9IYW50IiwgIlRXIn0sCisgICAgICAgIHsienUiLCAiWkEifSwKKyAgICAgICAgeyJhYSIsICJFVCJ9LAorICAgICAgICB7ImJ5biIsICJFUiJ9LAorICAgICAgICB7ImVvIiwgIkRFIn0sCisgICAgICAgIHsiZ2V6IiwgIkVUIn0sCisgICAgICAgIHsiaGF3IiwgIlVTIn0sCisgICAgICAgIHsiaXUiLCAiQ0EifSwKKyAgICAgICAgeyJrdyIsICJHQiJ9LAorICAgICAgICB7InNhIiwgIklOIn0sCisgICAgICAgIHsic2giLCAiSFIifSwKKyAgICAgICAgeyJzaWQiLCAiRVQifSwKKyAgICAgICAgeyJzeXIiLCAiU1kifSwKKyAgICAgICAgeyJ0aWciLCAiRVIifSwKKyAgICAgICAgeyJ0dCIsICJSVSJ9LAorICAgICAgICB7IndhbCIsICJFVCJ9LAl9OworICAgIHN0YXRpYyB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGFuZ3VhZ2VfdGVycml0b3J5X2hhY2subGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGxhbmd1YWdlX3RlcnJpdG9yeV9oYWNrX21hcC5wdXQobGFuZ3VhZ2VfdGVycml0b3J5X2hhY2tbaV1bMF0sbGFuZ3VhZ2VfdGVycml0b3J5X2hhY2tbaV1bMV0pOworICAgICAgICB9CisgICAgfQorCQorICAgIHN0YXRpYyBmaW5hbCBNYXAgdGVycml0b3J5X3R6aWRfaGFja19tYXAgPSBuZXcgSGFzaE1hcCgpOworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmdbXVtdIHRlcnJpdG9yeV90emlkX2hhY2sgPSB7CisgICAgICAgIHsiQVEiLCAiQW50YXJjdGljYS9NY011cmRvIn0sCisgICAgICAgIHsiQVIiLCAiQW1lcmljYS9CdWVub3NfQWlyZXMifSwKKyAgICAgICAgeyJBVSIsICJBdXN0cmFsaWEvU3lkbmV5In0sCisgICAgICAgIHsiQlIiLCAiQW1lcmljYS9TYW9fUGF1bG8ifSwKKyAgICAgICAgeyJDQSIsICJBbWVyaWNhL1Rvcm9udG8ifSwKKyAgICAgICAgeyJDRCIsICJBZnJpY2EvS2luc2hhc2EifSwKKyAgICAgICAgeyJDTCIsICJBbWVyaWNhL1NhbnRpYWdvIn0sCisgICAgICAgIHsiQ04iLCAiQXNpYS9TaGFuZ2hhaSJ9LAorICAgICAgICB7IkVDIiwgIkFtZXJpY2EvR3VheWFxdWlsIn0sCisgICAgICAgIHsiRVMiLCAiRXVyb3BlL01hZHJpZCJ9LAorICAgICAgICB7IkdCIiwgIkV1cm9wZS9Mb25kb24ifSwKKyAgICAgICAgeyJHTCIsICJBbWVyaWNhL0dvZHRoYWIifSwKKyAgICAgICAgeyJJRCIsICJBc2lhL0pha2FydGEifSwKKyAgICAgICAgeyJNTCIsICJBZnJpY2EvQmFtYWtvIn0sCisgICAgICAgIHsiTVgiLCAiQW1lcmljYS9NZXhpY29fQ2l0eSJ9LAorICAgICAgICB7Ik1ZIiwgIkFzaWEvS3VhbGFfTHVtcHVyIn0sCisgICAgICAgIHsiTloiLCAiUGFjaWZpYy9BdWNrbGFuZCJ9LAorICAgICAgICB7IlBUIiwgIkV1cm9wZS9MaXNib24ifSwKKyAgICAgICAgeyJSVSIsICJFdXJvcGUvTW9zY293In0sCisgICAgICAgIHsiVUEiLCAiRXVyb3BlL0tpZXYifSwKKyAgICAgICAgeyJVUyIsICJBbWVyaWNhL05ld19Zb3JrIn0sCisgICAgICAgIHsiVVoiLCAiQXNpYS9UYXNoa2VudCJ9LAorICAgICAgICB7IlBGIiwgIlBhY2lmaWMvVGFoaXRpIn0sCisgICAgICAgIHsiRk0iLCAiUGFjaWZpYy9Lb3NyYWUifSwKKyAgICAgICAgeyJLSSIsICJQYWNpZmljL1RhcmF3YSJ9LAorICAgICAgICB7IktaIiwgIkFzaWEvQWxtYXR5In0sCisgICAgICAgIHsiTUgiLCAiUGFjaWZpYy9NYWp1cm8ifSwKKyAgICAgICAgeyJNTiIsICJBc2lhL1VsYWFuYmFhdGFyIn0sCisgICAgICAgIHsiU0oiLCAiQXJjdGljL0xvbmd5ZWFyYnllbiJ9LAorICAgICAgICB7IlVNIiwgIlBhY2lmaWMvTWlkd2F5In0sCQorICAgIH07CisgICAgc3RhdGljIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0ZXJyaXRvcnlfdHppZF9oYWNrLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB0ZXJyaXRvcnlfdHppZF9oYWNrX21hcC5wdXQodGVycml0b3J5X3R6aWRfaGFja1tpXVswXSx0ZXJyaXRvcnlfdHppZF9oYWNrW2ldWzFdKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBmcm96ZW47CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0Zyb3plbigpIHsKKyAgICAgICAgcmV0dXJuIGZyb3plbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIEFQSSBpcyBJQ1UgaW50ZXJuYWwgb25seS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGZyZWV6ZSgpIHsKKyAgICAgICAgZnJvemVuID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZUFzVGhhd2VkKCkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgR2xvYmFsaXphdGlvblByZWZlcmVuY2VzIHJlc3VsdCA9IChHbG9iYWxpemF0aW9uUHJlZmVyZW5jZXMpIGNsb25lKCk7CisgICAgICAgICAgICByZXN1bHQuZnJvemVuID0gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAvLyB3aWxsIGFsd2F5cyB3b3JrCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvR3JlZ29yaWFuQ2FsZW5kYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0dyZWdvcmlhbkNhbGVuZGFyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODlhYzRmYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0dyZWdvcmlhbkNhbGVuZGFyLmphdmEKQEAgLTAsMCArMSw5MDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKKy8qKgorICogPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+IGlzIGEgY29uY3JldGUgc3ViY2xhc3Mgb2YKKyAqIHtAbGluayBDYWxlbmRhcn0KKyAqIGFuZCBwcm92aWRlcyB0aGUgc3RhbmRhcmQgY2FsZW5kYXIgdXNlZCBieSBtb3N0IG9mIHRoZSB3b3JsZC4KKyAqCisgKiA8cD4KKyAqIFRoZSBzdGFuZGFyZCAoR3JlZ29yaWFuKSBjYWxlbmRhciBoYXMgMiBlcmFzLCBCQyBhbmQgQUQuCisgKgorICogPHA+CisgKiBUaGlzIGltcGxlbWVudGF0aW9uIGhhbmRsZXMgYSBzaW5nbGUgZGlzY29udGludWl0eSwgd2hpY2ggY29ycmVzcG9uZHMgYnkKKyAqIGRlZmF1bHQgdG8gdGhlIGRhdGUgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciB3YXMgaW5zdGl0dXRlZCAoT2N0b2JlciAxNSwgMTU4MgorICogaW4gc29tZSBjb3VudHJpZXMsIGxhdGVyIGluIG90aGVycykuICBUaGUgY3V0b3ZlciBkYXRlIG1heSBiZSBjaGFuZ2VkIGJ5IHRoZQorICogY2FsbGVyIGJ5IGNhbGxpbmcgPGNvZGU+c2V0R3JlZ29yaWFuQ2hhbmdlKCk8L2NvZGU+LgorICoKKyAqIDxwPgorICogSGlzdG9yaWNhbGx5LCBpbiB0aG9zZSBjb3VudHJpZXMgd2hpY2ggYWRvcHRlZCB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIGZpcnN0LAorICogT2N0b2JlciA0LCAxNTgyIHdhcyB0aHVzIGZvbGxvd2VkIGJ5IE9jdG9iZXIgMTUsIDE1ODIuIFRoaXMgY2FsZW5kYXIgbW9kZWxzCisgKiB0aGlzIGNvcnJlY3RseS4gIEJlZm9yZSB0aGUgR3JlZ29yaWFuIGN1dG92ZXIsIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPgorICogaW1wbGVtZW50cyB0aGUgSnVsaWFuIGNhbGVuZGFyLiAgVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBHcmVnb3JpYW4KKyAqIGFuZCB0aGUgSnVsaWFuIGNhbGVuZGFyIGlzIHRoZSBsZWFwIHllYXIgcnVsZS4gVGhlIEp1bGlhbiBjYWxlbmRhciBzcGVjaWZpZXMKKyAqIGxlYXAgeWVhcnMgZXZlcnkgZm91ciB5ZWFycywgd2hlcmVhcyB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIG9taXRzIGNlbnR1cnkKKyAqIHllYXJzIHdoaWNoIGFyZSBub3QgZGl2aXNpYmxlIGJ5IDQwMC4KKyAqCisgKiA8cD4KKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBpbXBsZW1lbnRzIDxlbT5wcm9sZXB0aWM8L2VtPiBHcmVnb3JpYW4gYW5kCisgKiBKdWxpYW4gY2FsZW5kYXJzLiBUaGF0IGlzLCBkYXRlcyBhcmUgY29tcHV0ZWQgYnkgZXh0cmFwb2xhdGluZyB0aGUgY3VycmVudAorICogcnVsZXMgaW5kZWZpbml0ZWx5IGZhciBiYWNrd2FyZCBhbmQgZm9yd2FyZCBpbiB0aW1lLiBBcyBhIHJlc3VsdCwKKyAqIDxjb2RlPkdyZWdvcmlhbkNhbGVuZGFyPC9jb2RlPiBtYXkgYmUgdXNlZCBmb3IgYWxsIHllYXJzIHRvIGdlbmVyYXRlCisgKiBtZWFuaW5nZnVsIGFuZCBjb25zaXN0ZW50IHJlc3VsdHMuIEhvd2V2ZXIsIGRhdGVzIG9idGFpbmVkIHVzaW5nCisgKiA8Y29kZT5HcmVnb3JpYW5DYWxlbmRhcjwvY29kZT4gYXJlIGhpc3RvcmljYWxseSBhY2N1cmF0ZSBvbmx5IGZyb20gTWFyY2ggMSwgNAorICogQUQgb253YXJkLCB3aGVuIG1vZGVybiBKdWxpYW4gY2FsZW5kYXIgcnVsZXMgd2VyZSBhZG9wdGVkLiAgQmVmb3JlIHRoaXMgZGF0ZSwKKyAqIGxlYXAgeWVhciBydWxlcyB3ZXJlIGFwcGxpZWQgaXJyZWd1bGFybHksIGFuZCBiZWZvcmUgNDUgQkMgdGhlIEp1bGlhbgorICogY2FsZW5kYXIgZGlkIG5vdCBldmVuIGV4aXN0LgorICoKKyAqIDxwPgorICogUHJpb3IgdG8gdGhlIGluc3RpdHV0aW9uIG9mIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIsIE5ldyBZZWFyJ3MgRGF5IHdhcworICogTWFyY2ggMjUuIFRvIGF2b2lkIGNvbmZ1c2lvbiwgdGhpcyBjYWxlbmRhciBhbHdheXMgdXNlcyBKYW51YXJ5IDEuIEEgbWFudWFsCisgKiBhZGp1c3RtZW50IG1heSBiZSBtYWRlIGlmIGRlc2lyZWQgZm9yIGRhdGVzIHRoYXQgYXJlIHByaW9yIHRvIHRoZSBHcmVnb3JpYW4KKyAqIGNoYW5nZW92ZXIgYW5kIHdoaWNoIGZhbGwgYmV0d2VlbiBKYW51YXJ5IDEgYW5kIE1hcmNoIDI0LgorICoKKyAqIDxwPlZhbHVlcyBjYWxjdWxhdGVkIGZvciB0aGUgPGNvZGU+V0VFS19PRl9ZRUFSPC9jb2RlPiBmaWVsZCByYW5nZSBmcm9tIDEgdG8KKyAqIDUzLiAgV2VlayAxIGZvciBhIHllYXIgaXMgdGhlIGVhcmxpZXN0IHNldmVuIGRheSBwZXJpb2Qgc3RhcnRpbmcgb24KKyAqIDxjb2RlPmdldEZpcnN0RGF5T2ZXZWVrKCk8L2NvZGU+IHRoYXQgY29udGFpbnMgYXQgbGVhc3QKKyAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4gZGF5cyBmcm9tIHRoYXQgeWVhci4gIEl0IHRodXMKKyAqIGRlcGVuZHMgb24gdGhlIHZhbHVlcyBvZiA8Y29kZT5nZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCk8L2NvZGU+LAorICogPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4sIGFuZCB0aGUgZGF5IG9mIHRoZSB3ZWVrIG9mIEphbnVhcnkgMS4KKyAqIFdlZWtzIGJldHdlZW4gd2VlayAxIG9mIG9uZSB5ZWFyIGFuZCB3ZWVrIDEgb2YgdGhlIGZvbGxvd2luZyB5ZWFyIGFyZQorICogbnVtYmVyZWQgc2VxdWVudGlhbGx5IGZyb20gMiB0byA1MiBvciA1MyAoYXMgbmVlZGVkKS4KKworICogPHA+Rm9yIGV4YW1wbGUsIEphbnVhcnkgMSwgMTk5OCB3YXMgYSBUaHVyc2RheS4gIElmCisgKiA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBpcyA8Y29kZT5NT05EQVk8L2NvZGU+IGFuZAorICogPGNvZGU+Z2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpPC9jb2RlPiBpcyA0ICh0aGVzZSBhcmUgdGhlIHZhbHVlcworICogcmVmbGVjdGluZyBJU08gODYwMSBhbmQgbWFueSBuYXRpb25hbCBzdGFuZGFyZHMpLCB0aGVuIHdlZWsgMSBvZiAxOTk4IHN0YXJ0cworICogb24gRGVjZW1iZXIgMjksIDE5OTcsIGFuZCBlbmRzIG9uIEphbnVhcnkgNCwgMTk5OC4gIElmLCBob3dldmVyLAorICogPGNvZGU+Z2V0Rmlyc3REYXlPZldlZWsoKTwvY29kZT4gaXMgPGNvZGU+U1VOREFZPC9jb2RlPiwgdGhlbiB3ZWVrIDEgb2YgMTk5OAorICogc3RhcnRzIG9uIEphbnVhcnkgNCwgMTk5OCwgYW5kIGVuZHMgb24gSmFudWFyeSAxMCwgMTk5ODsgdGhlIGZpcnN0IHRocmVlIGRheXMKKyAqIG9mIDE5OTggdGhlbiBhcmUgcGFydCBvZiB3ZWVrIDUzIG9mIDE5OTcuCisgKgorICogPHA+VmFsdWVzIGNhbGN1bGF0ZWQgZm9yIHRoZSA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBmaWVsZCByYW5nZSBmcm9tIDAgb3IKKyAqIDEgdG8gNCBvciA1LiAgV2VlayAxIG9mIGEgbW9udGggKHRoZSBkYXlzIHdpdGggPGNvZGU+V0VFS19PRl9NT05USCA9CisgKiAxPC9jb2RlPikgaXMgdGhlIGVhcmxpZXN0IHNldCBvZiBhdCBsZWFzdAorICogPGNvZGU+Z2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpPC9jb2RlPiBjb250aWd1b3VzIGRheXMgaW4gdGhhdCBtb250aCwKKyAqIGVuZGluZyBvbiB0aGUgZGF5IGJlZm9yZSA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPi4gIFVubGlrZQorICogd2VlayAxIG9mIGEgeWVhciwgd2VlayAxIG9mIGEgbW9udGggbWF5IGJlIHNob3J0ZXIgdGhhbiA3IGRheXMsIG5lZWQKKyAqIG5vdCBzdGFydCBvbiA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiwgYW5kIHdpbGwgbm90IGluY2x1ZGUgZGF5cyBvZgorICogdGhlIHByZXZpb3VzIG1vbnRoLiAgRGF5cyBvZiBhIG1vbnRoIGJlZm9yZSB3ZWVrIDEgaGF2ZSBhCisgKiA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBvZiAwLgorICoKKyAqIDxwPkZvciBleGFtcGxlLCBpZiA8Y29kZT5nZXRGaXJzdERheU9mV2VlaygpPC9jb2RlPiBpcyA8Y29kZT5TVU5EQVk8L2NvZGU+CisgKiBhbmQgPGNvZGU+Z2V0TWluaW1hbERheXNJbkZpcnN0V2VlaygpPC9jb2RlPiBpcyA0LCB0aGVuIHRoZSBmaXJzdCB3ZWVrIG9mCisgKiBKYW51YXJ5IDE5OTggaXMgU3VuZGF5LCBKYW51YXJ5IDQgdGhyb3VnaCBTYXR1cmRheSwgSmFudWFyeSAxMC4gIFRoZXNlIGRheXMKKyAqIGhhdmUgYSA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBvZiAxLiAgVGh1cnNkYXksIEphbnVhcnkgMSB0aHJvdWdoCisgKiBTYXR1cmRheSwgSmFudWFyeSAzIGhhdmUgYSA8Y29kZT5XRUVLX09GX01PTlRIPC9jb2RlPiBvZiAwLiAgSWYKKyAqIDxjb2RlPmdldE1pbmltYWxEYXlzSW5GaXJzdFdlZWsoKTwvY29kZT4gaXMgY2hhbmdlZCB0byAzLCB0aGVuIEphbnVhcnkgMQorICogdGhyb3VnaCBKYW51YXJ5IDMgaGF2ZSBhIDxjb2RlPldFRUtfT0ZfTU9OVEg8L2NvZGU+IG9mIDEuCisgKgorICogPHA+CisgKiA8c3Ryb25nPkV4YW1wbGU6PC9zdHJvbmc+CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiAvLyBnZXQgdGhlIHN1cHBvcnRlZCBpZHMgZm9yIEdNVC0wODowMCAoUGFjaWZpYyBTdGFuZGFyZCBUaW1lKQorICogU3RyaW5nW10gaWRzID0gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzKC04ICogNjAgKiA2MCAqIDEwMDApOworICogLy8gaWYgbm8gaWRzIHdlcmUgcmV0dXJuZWQsIHNvbWV0aGluZyBpcyB3cm9uZy4gZ2V0IG91dC4KKyAqIGlmIChpZHMubGVuZ3RoID09IDApCisgKiAgICAgU3lzdGVtLmV4aXQoMCk7CisgKgorICogIC8vIGJlZ2luIG91dHB1dAorICogU3lzdGVtLm91dC5wcmludGxuKCJDdXJyZW50IFRpbWUiKTsKKyAqCisgKiAvLyBjcmVhdGUgYSBQYWNpZmljIFN0YW5kYXJkIFRpbWUgdGltZSB6b25lCisgKiBTaW1wbGVUaW1lWm9uZSBwZHQgPSBuZXcgU2ltcGxlVGltZVpvbmUoLTggKiA2MCAqIDYwICogMTAwMCwgaWRzWzBdKTsKKyAqCisgKiAvLyBzZXQgdXAgcnVsZXMgZm9yIGRheWxpZ2h0IHNhdmluZ3MgdGltZQorICogcGR0LnNldFN0YXJ0UnVsZShDYWxlbmRhci5BUFJJTCwgMSwgQ2FsZW5kYXIuU1VOREFZLCAyICogNjAgKiA2MCAqIDEwMDApOworICogcGR0LnNldEVuZFJ1bGUoQ2FsZW5kYXIuT0NUT0JFUiwgLTEsIENhbGVuZGFyLlNVTkRBWSwgMiAqIDYwICogNjAgKiAxMDAwKTsKKyAqCisgKiAvLyBjcmVhdGUgYSBHcmVnb3JpYW5DYWxlbmRhciB3aXRoIHRoZSBQYWNpZmljIERheWxpZ2h0IHRpbWUgem9uZQorICogLy8gYW5kIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUKKyAqIENhbGVuZGFyIGNhbGVuZGFyID0gbmV3IEdyZWdvcmlhbkNhbGVuZGFyKHBkdCk7CisgKiBEYXRlIHRyaWFsVGltZSA9IG5ldyBEYXRlKCk7CisgKiBjYWxlbmRhci5zZXRUaW1lKHRyaWFsVGltZSk7CisgKgorICogLy8gcHJpbnQgb3V0IGEgYnVuY2ggb2YgaW50ZXJlc3RpbmcgdGhpbmdzCisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkVSQTogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5FUkEpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiWUVBUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5ZRUFSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIk1PTlRIOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIldFRUtfT0ZfWUVBUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiV0VFS19PRl9NT05USDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5XRUVLX09GX01PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBVEU6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFURSkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfTU9OVEg6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBWV9PRl9ZRUFSOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBWV9PRl9XRUVLOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBWV9PRl9XRUVLX0lOX01PTlRIOiAiCisgKiAgICAgICAgICAgICAgICAgICAgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiQU1fUE06ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuQU1fUE0pKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiSE9VUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5IT1VSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkhPVVJfT0ZfREFZOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIk1JTlVURTogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NSU5VVEUpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiU0VDT05EOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLlNFQ09ORCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJNSUxMSVNFQ09ORDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJaT05FX09GRlNFVDogIgorICogICAgICAgICAgICAgICAgICAgICsgKGNhbGVuZGFyLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRTVF9PRkZTRVQ6ICIKKyAqICAgICAgICAgICAgICAgICAgICArIChjYWxlbmRhci5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7CisKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiQ3VycmVudCBUaW1lLCB3aXRoIGhvdXIgcmVzZXQgdG8gMyIpOworICogY2FsZW5kYXIuY2xlYXIoQ2FsZW5kYXIuSE9VUl9PRl9EQVkpOyAvLyBzbyBkb2Vzbid0IG92ZXJyaWRlCisgKiBjYWxlbmRhci5zZXQoQ2FsZW5kYXIuSE9VUiwgMyk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkVSQTogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5FUkEpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiWUVBUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5ZRUFSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIk1PTlRIOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLk1PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIldFRUtfT0ZfWUVBUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiV0VFS19PRl9NT05USDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5XRUVLX09GX01PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBVEU6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFURSkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJEQVlfT0ZfTU9OVEg6ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX01PTlRIKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBWV9PRl9ZRUFSOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBWV9PRl9XRUVLOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkRBWV9PRl9XRUVLKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRBWV9PRl9XRUVLX0lOX01PTlRIOiAiCisgKiAgICAgICAgICAgICAgICAgICAgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuREFZX09GX1dFRUtfSU5fTU9OVEgpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiQU1fUE06ICIgKyBjYWxlbmRhci5nZXQoQ2FsZW5kYXIuQU1fUE0pKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiSE9VUjogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5IT1VSKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkhPVVJfT0ZfREFZOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLkhPVVJfT0ZfREFZKSk7CisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIk1JTlVURTogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NSU5VVEUpKTsKKyAqIFN5c3RlbS5vdXQucHJpbnRsbigiU0VDT05EOiAiICsgY2FsZW5kYXIuZ2V0KENhbGVuZGFyLlNFQ09ORCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJNSUxMSVNFQ09ORDogIiArIGNhbGVuZGFyLmdldChDYWxlbmRhci5NSUxMSVNFQ09ORCkpOworICogU3lzdGVtLm91dC5wcmludGxuKCJaT05FX09GRlNFVDogIgorICogICAgICAgICsgKGNhbGVuZGFyLmdldChDYWxlbmRhci5aT05FX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7IC8vIGluIGhvdXJzCisgKiBTeXN0ZW0ub3V0LnByaW50bG4oIkRTVF9PRkZTRVQ6ICIKKyAqICAgICAgICArIChjYWxlbmRhci5nZXQoQ2FsZW5kYXIuRFNUX09GRlNFVCkvKDYwKjYwKjEwMDApKSk7IC8vIGluIGhvdXJzPC9wcmU+CisgKiA8L2Jsb2NrcXVvdGU+CisgKiA8cD4KKyAqIEdyZWdvcmlhbkNhbGVuZGFyIHVzdWFsbHkgc2hvdWxkIGJlIGluc3RhbnRpYXRlZCB1c2luZyAKKyAqIHtAbGluayBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyI2dldEluc3RhbmNlKFVMb2NhbGUpfSBwYXNzaW5nIGluIGEgPGNvZGU+VUxvY2FsZTwvY29kZT4KKyAqIHdpdGggdGhlIHRhZyA8Y29kZT4iQGNhbGVuZGFyPWdyZWdvcmlhbiI8L2NvZGU+LjwvcD4KKworICogQHNlZSAgICAgICAgICBDYWxlbmRhcgorICogQHNlZSAgICAgICAgICBUaW1lWm9uZQorICogQGF1dGhvciBEYXZpZCBHb2xkc21pdGgsIE1hcmsgRGF2aXMsIENoZW4tTGllaCBIdWFuZywgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitwdWJsaWMgY2xhc3MgR3JlZ29yaWFuQ2FsZW5kYXIgZXh0ZW5kcyBDYWxlbmRhciB7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gOTE5OTM4ODY5NDM1MTA2MjEzN0w7CisKKyAgICAvKgorICAgICAqIEltcGxlbWVudGF0aW9uIE5vdGVzCisgICAgICoKKyAgICAgKiBUaGUgSnVsaWFuIGRheSBudW1iZXIsIGFzIHVzZWQgaGVyZSwgaXMgYSBtb2RpZmllZCBudW1iZXIgd2hpY2ggaGFzIGl0cworICAgICAqIG9uc2V0IGF0IG1pZG5pZ2h0LCByYXRoZXIgdGhhbiBub29uLgorICAgICAqCisgICAgICogVGhlIGVwb2NoIGlzIHRoZSBudW1iZXIgb2YgZGF5cyBvciBtaWxsaXNlY29uZHMgZnJvbSBzb21lIGRlZmluZWQKKyAgICAgKiBzdGFydGluZyBwb2ludC4gVGhlIGVwb2NoIGZvciBqYXZhLnV0aWwuRGF0ZSBpcyB1c2VkIGhlcmU7IHRoYXQgaXMsCisgICAgICogbWlsbGlzZWNvbmRzIGZyb20gSmFudWFyeSAxLCAxOTcwIChHcmVnb3JpYW4pLCBtaWRuaWdodCBVVEMuICBPdGhlcgorICAgICAqIGVwb2NocyB3aGljaCBhcmUgdXNlZCBhcmUgSmFudWFyeSAxLCB5ZWFyIDEgKEdyZWdvcmlhbiksIHdoaWNoIGlzIGRheSAxCisgICAgICogb2YgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciwgYW5kIERlY2VtYmVyIDMwLCB5ZWFyIDAgKEdyZWdvcmlhbiksIHdoaWNoIGlzCisgICAgICogZGF5IDEgb2YgdGhlIEp1bGlhbiBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIFdlIGltcGxlbWVudCB0aGUgcHJvbGVwdGljIEp1bGlhbiBhbmQgR3JlZ29yaWFuIGNhbGVuZGFycy4gIFRoaXMgbWVhbnMgd2UKKyAgICAgKiBpbXBsZW1lbnQgdGhlIG1vZGVybiBkZWZpbml0aW9uIG9mIHRoZSBjYWxlbmRhciBldmVuIHRob3VnaCB0aGUKKyAgICAgKiBoaXN0b3JpY2FsIHVzYWdlIGRpZmZlcnMuICBGb3IgZXhhbXBsZSwgaWYgdGhlIEdyZWdvcmlhbiBjaGFuZ2UgaXMgc2V0CisgICAgICogdG8gbmV3IERhdGUoTG9uZy5NSU5fVkFMVUUpLCB3ZSBoYXZlIGEgcHVyZSBHcmVnb3JpYW4gY2FsZW5kYXIgd2hpY2gKKyAgICAgKiBsYWJlbHMgZGF0ZXMgcHJlY2VkaW5nIHRoZSBpbnZlbnRpb24gb2YgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBpbiAxNTgyIGFzCisgICAgICogaWYgdGhlIGNhbGVuZGFyIGV4aXN0ZWQgdGhlbi4KKyAgICAgKgorICAgICAqIExpa2V3aXNlLCB3aXRoIHRoZSBKdWxpYW4gY2FsZW5kYXIsIHdlIGFzc3VtZSBhIGNvbnNpc3RlbnQgNC15ZWFyIGxlYXAKKyAgICAgKiBydWxlLCBldmVuIHRob3VnaCB0aGUgaGlzdG9yaWNhbCBwYXR0ZXJuIG9mIGxlYXAgeWVhcnMgaXMgaXJyZWd1bGFyLAorICAgICAqIGJlaW5nIGV2ZXJ5IDMgeWVhcnMgZnJvbSA0NSBCQyB0aHJvdWdoIDkgQkMsIHRoZW4gZXZlcnkgNCB5ZWFycyBmcm9tIDggQUQKKyAgICAgKiBvbndhcmRzLCB3aXRoIG5vIGxlYXAgeWVhcnMgaW4tYmV0d2Vlbi4gIFRodXMgZGF0ZSBjb21wdXRhdGlvbnMgYW5kCisgICAgICogZnVuY3Rpb25zIHN1Y2ggYXMgaXNMZWFwWWVhcigpIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgaGlzdG9yaWNhbGx5CisgICAgICogYWNjdXJhdGUuCisgICAgICoKKyAgICAgKiBHaXZlbiB0aGF0IG1pbGxpc2Vjb25kcyBhcmUgYSBsb25nLCBkYXkgbnVtYmVycyBzdWNoIGFzIEp1bGlhbiBkYXkKKyAgICAgKiBudW1iZXJzLCBHcmVnb3JpYW4gb3IgSnVsaWFuIGNhbGVuZGFyIGRheXMsIG9yIGVwb2NoIGRheXMsIGFyZSBhbHNvCisgICAgICogbG9uZ3MuIFllYXJzIGNhbiBmaXQgaW50byBhbiBpbnQuCisgICAgICovCisKKy8vLy8vLy8vLy8vLy8vLy8vLworLy8gQ2xhc3MgVmFyaWFibGVzCisvLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIHRoZSA8Y29kZT5FUkE8L2NvZGU+IGZpZWxkIGluZGljYXRpbmcKKyAgICAgKiB0aGUgcGVyaW9kIGJlZm9yZSB0aGUgY29tbW9uIGVyYSAoYmVmb3JlIENocmlzdCksIGFsc28ga25vd24gYXMgQkNFLgorICAgICAqIFRoZSBzZXF1ZW5jZSBvZiB5ZWFycyBhdCB0aGUgdHJhbnNpdGlvbiBmcm9tIDxjb2RlPkJDPC9jb2RlPiB0byA8Y29kZT5BRDwvY29kZT4gaXMKKyAgICAgKiAuLi4sIDIgQkMsIDEgQkMsIDEgQUQsIDIgQUQsLi4uCisgICAgICogQHNlZSBDYWxlbmRhciNFUkEKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCQyA9IDA7CisKKyAgICAvKioKKyAgICAgKiBWYWx1ZSBvZiB0aGUgPGNvZGU+RVJBPC9jb2RlPiBmaWVsZCBpbmRpY2F0aW5nCisgICAgICogdGhlIGNvbW1vbiBlcmEgKEFubm8gRG9taW5pKSwgYWxzbyBrbm93biBhcyBDRS4KKyAgICAgKiBUaGUgc2VxdWVuY2Ugb2YgeWVhcnMgYXQgdGhlIHRyYW5zaXRpb24gZnJvbSA8Y29kZT5CQzwvY29kZT4gdG8gPGNvZGU+QUQ8L2NvZGU+IGlzCisgICAgICogLi4uLCAyIEJDLCAxIEJDLCAxIEFELCAyIEFELC4uLgorICAgICAqIEBzZWUgQ2FsZW5kYXIjRVJBCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUQgPSAxOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEVQT0NIX1lFQVIgPSAxOTcwOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W11bXSBNT05USF9DT1VOVCA9IHsKKyAgICAgICAgLy9sZW4gbGVuMiAgIHN0ICBzdDIKKyAgICAgICAgeyAgMzEsICAzMSwgICAwLCAgIDAgfSwgLy8gSmFuCisgICAgICAgIHsgIDI4LCAgMjksICAzMSwgIDMxIH0sIC8vIEZlYgorICAgICAgICB7ICAzMSwgIDMxLCAgNTksICA2MCB9LCAvLyBNYXIKKyAgICAgICAgeyAgMzAsICAzMCwgIDkwLCAgOTEgfSwgLy8gQXByCisgICAgICAgIHsgIDMxLCAgMzEsIDEyMCwgMTIxIH0sIC8vIE1heQorICAgICAgICB7ICAzMCwgIDMwLCAxNTEsIDE1MiB9LCAvLyBKdW4KKyAgICAgICAgeyAgMzEsICAzMSwgMTgxLCAxODIgfSwgLy8gSnVsCisgICAgICAgIHsgIDMxLCAgMzEsIDIxMiwgMjEzIH0sIC8vIEF1ZworICAgICAgICB7ICAzMCwgIDMwLCAyNDMsIDI0NCB9LCAvLyBTZXAKKyAgICAgICAgeyAgMzEsICAzMSwgMjczLCAyNzQgfSwgLy8gT2N0CisgICAgICAgIHsgIDMwLCAgMzAsIDMwNCwgMzA1IH0sIC8vIE5vdgorICAgICAgICB7ICAzMSwgIDMxLCAzMzQsIDMzNSB9ICAvLyBEZWMKKyAgICAgICAgLy8gbGVuICBsZW5ndGggb2YgbW9udGgKKyAgICAgICAgLy8gbGVuMiBsZW5ndGggb2YgbW9udGggaW4gYSBsZWFwIHllYXIKKyAgICAgICAgLy8gc3QgICBkYXlzIGluIHllYXIgYmVmb3JlIHN0YXJ0IG9mIG1vbnRoCisgICAgICAgIC8vIHN0MiAgZGF5cyBpbiB5ZWFyIGJlZm9yZSBtb250aCBpbiBsZWFwIHllYXIKKyAgICB9OworICAgIAorICAgIC8qKgorICAgICAqIE9sZCB5ZWFyIGxpbWl0cyB3ZXJlIGxlYXN0IG1heCAyOTIyNjkwNTQsIG1heCAyOTIyNzg5OTQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExJTUlUU1tdW10gPSB7CisgICAgICAgIC8vIE1pbmltdW0gIEdyZWF0ZXN0ICAgIExlYXN0ICBNYXhpbXVtCisgICAgICAgIC8vICAgICAgICAgICBNaW5pbXVtICBNYXhpbXVtCisgICAgICAgIHsgICAgICAgIDAsICAgICAgICAwLCAgICAgICAxLCAgICAgICAxIH0sIC8vIEVSQQorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgNTgyODk2MywgNTgzODI3MCB9LCAvLyBZRUFSCisgICAgICAgIHsgICAgICAgIDAsICAgICAgICAwLCAgICAgIDExLCAgICAgIDExIH0sIC8vIE1PTlRICisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgIDUyLCAgICAgIDUzIH0sIC8vIFdFRUtfT0ZfWUVBUgorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAgNCwgICAgICAgNiB9LCAvLyBXRUVLX09GX01PTlRICisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgIDI4LCAgICAgIDMxIH0sIC8vIERBWV9PRl9NT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgIDM2NSwgICAgIDM2NiB9LCAvLyBEQVlfT0ZfWUVBUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEQVlfT0ZfV0VFSworICAgICAgICB7ICAgICAgIC0xLCAgICAgICAtMSwgICAgICAgNCwgICAgICAgNiB9LCAvLyBEQVlfT0ZfV0VFS19JTl9NT05USAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBBTV9QTQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBIT1VSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEhPVVJfT0ZfREFZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTlVURQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBTRUNPTkQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlMTElTRUNPTkQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gWk9ORV9PRkZTRVQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRFNUX09GRlNFVAorICAgICAgICB7IC01ODM4MjcwLCAtNTgzODI3MCwgNTgyODk2NCwgNTgzODI3MSB9LCAvLyBZRUFSX1dPWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBET1dfTE9DQUwKKyAgICAgICAgeyAtNTgzODI2OSwgLTU4MzgyNjksIDU4Mjg5NjMsIDU4MzgyNzAgfSwgLy8gRVhURU5ERURfWUVBUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBKVUxJQU5fREFZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTExJU0VDT05EU19JTl9EQVkKKyAgICB9OworCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRMaW1pdChpbnQgZmllbGQsIGludCBsaW1pdFR5cGUpIHsKKyAgICAgICAgcmV0dXJuIExJTUlUU1tmaWVsZF1bbGltaXRUeXBlXTsKKyAgICB9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gSW5zdGFuY2UgVmFyaWFibGVzCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIC8qKgorICAgICAqIFRoZSBwb2ludCBhdCB3aGljaCB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIHJ1bGVzIGFyZSB1c2VkLCBtZWFzdXJlZCBpbgorICAgICAqIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBzdGFuZGFyZCBlcG9jaC4gIERlZmF1bHQgaXMgT2N0b2JlciAxNSwgMTU4MgorICAgICAqIChHcmVnb3JpYW4pIDAwOjAwOjAwIFVUQyBvciAtMTIyMTkyOTI4MDAwMDBMLiAgRm9yIHRoaXMgdmFsdWUsIE9jdG9iZXIgNCwKKyAgICAgKiAxNTgyIChKdWxpYW4pIGlzIGZvbGxvd2VkIGJ5IE9jdG9iZXIgMTUsIDE1ODIgKEdyZWdvcmlhbikuICBUaGlzCisgICAgICogY29ycmVzcG9uZHMgdG8gSnVsaWFuIGRheSBudW1iZXIgMjI5OTE2MS4KKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBsb25nIGdyZWdvcmlhbkN1dG92ZXIgPSAtMTIyMTkyOTI4MDAwMDBMOworCisgICAgLyoqCisgICAgICogSnVsaWFuIGRheSBudW1iZXIgb2YgdGhlIEdyZWdvcmlhbiBjdXRvdmVyLgorICAgICAqLworICAgIHByaXZhdGUgdHJhbnNpZW50IGludCBjdXRvdmVySnVsaWFuRGF5ID0gMjI5OTE2MTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgeWVhciBvZiB0aGUgZ3JlZ29yaWFuQ3V0b3Zlciwgd2l0aCAwIHJlcHJlc2VudGluZworICAgICAqIDEgQkMsIC0xIHJlcHJlc2VudGluZyAyIEJDLCBldGMuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50IGdyZWdvcmlhbkN1dG92ZXJZZWFyID0gMTU4MjsKKworICAgIC8qKgorICAgICAqIFVzZWQgYnkgaGFuZGxlQ29tcHV0ZUp1bGlhbkRheSgpIGFuZCBoYW5kbGVDb21wdXRlTW9udGhTdGFydCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHRyYW5zaWVudCBwcm90ZWN0ZWQgYm9vbGVhbiBpc0dyZWdvcmlhbjsKKworICAgIC8qKgorICAgICAqIFVzZWQgYnkgaGFuZGxlQ29tcHV0ZUp1bGlhbkRheSgpIGFuZCBoYW5kbGVDb21wdXRlTW9udGhTdGFydCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHRyYW5zaWVudCBwcm90ZWN0ZWQgYm9vbGVhbiBpbnZlcnRHcmVnb3JpYW47CisKKy8vLy8vLy8vLy8vLy8vLworLy8gQ29uc3RydWN0b3JzCisvLy8vLy8vLy8vLy8vLy8KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBkZWZhdWx0IEdyZWdvcmlhbkNhbGVuZGFyIHVzaW5nIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIEdyZWdvcmlhbkNhbGVuZGFyKCkgeworICAgICAgICB0aGlzKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBHcmVnb3JpYW5DYWxlbmRhciBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBHcmVnb3JpYW5DYWxlbmRhcihUaW1lWm9uZSB6b25lKSB7CisgICAgICAgIHRoaXMoem9uZSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBHcmVnb3JpYW5DYWxlbmRhciBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gYUxvY2FsZSB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBHcmVnb3JpYW5DYWxlbmRhcihMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICB0aGlzKFRpbWVab25lLmdldERlZmF1bHQoKSwgYUxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEdyZWdvcmlhbkNhbGVuZGFyIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGdpdmVuIHVsb2NhbGUuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgR3JlZ29yaWFuQ2FsZW5kYXIoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEdyZWdvcmlhbkNhbGVuZGFyIGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIEdyZWdvcmlhbkNhbGVuZGFyKFRpbWVab25lIHpvbmUsIExvY2FsZSBhTG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGFMb2NhbGUpOworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBHcmVnb3JpYW5DYWxlbmRhciBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEdyZWdvcmlhbkNhbGVuZGFyKFRpbWVab25lIHpvbmUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEdyZWdvcmlhbkNhbGVuZGFyIHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgWUVBUiB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBNT05USCB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBNb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgREFURSB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgR3JlZ29yaWFuQ2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHNldChFUkEsIEFEKTsKKyAgICAgICAgc2V0KFlFQVIsIHllYXIpOworICAgICAgICBzZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgc2V0KERBVEUsIGRhdGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBHcmVnb3JpYW5DYWxlbmRhciB3aXRoIHRoZSBnaXZlbiBkYXRlCisgICAgICogYW5kIHRpbWUgc2V0IGZvciB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIHllYXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBZRUFSIHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIE1PTlRIIHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIE1vbnRoIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRhdGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBEQVRFIHRpbWUgZmllbGQgaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBob3VyIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgSE9VUl9PRl9EQVkgdGltZSBmaWVsZAorICAgICAqIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gbWludXRlIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTUlOVVRFIHRpbWUgZmllbGQKKyAgICAgKiBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIEdyZWdvcmlhbkNhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbnV0ZSkgeworICAgICAgICBzdXBlcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgc2V0KEVSQSwgQUQpOworICAgICAgICBzZXQoWUVBUiwgeWVhcik7CisgICAgICAgIHNldChNT05USCwgbW9udGgpOworICAgICAgICBzZXQoREFURSwgZGF0ZSk7CisgICAgICAgIHNldChIT1VSX09GX0RBWSwgaG91cik7CisgICAgICAgIHNldChNSU5VVEUsIG1pbnV0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIEdyZWdvcmlhbkNhbGVuZGFyIHdpdGggdGhlIGdpdmVuIGRhdGUKKyAgICAgKiBhbmQgdGltZSBzZXQgZm9yIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0geWVhciB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIFlFQVIgdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgTU9OVEggdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogTW9udGggdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIERBVEUgdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIGhvdXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBIT1VSX09GX0RBWSB0aW1lIGZpZWxkCisgICAgICogaW4gdGhlIGNhbGVuZGFyLgorICAgICAqIEBwYXJhbSBtaW51dGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBNSU5VVEUgdGltZSBmaWVsZAorICAgICAqIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gc2Vjb25kIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgU0VDT05EIHRpbWUgZmllbGQKKyAgICAgKiBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIEdyZWdvcmlhbkNhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbnV0ZSwgaW50IHNlY29uZCkgeworICAgICAgICBzdXBlcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgc2V0KEVSQSwgQUQpOworICAgICAgICBzZXQoWUVBUiwgeWVhcik7CisgICAgICAgIHNldChNT05USCwgbW9udGgpOworICAgICAgICBzZXQoREFURSwgZGF0ZSk7CisgICAgICAgIHNldChIT1VSX09GX0RBWSwgaG91cik7CisgICAgICAgIHNldChNSU5VVEUsIG1pbnV0ZSk7CisgICAgICAgIHNldChTRUNPTkQsIHNlY29uZCk7CisgICAgfQorCisvLy8vLy8vLy8vLy8vLy8vLworLy8gUHVibGljIG1ldGhvZHMKKy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBHcmVnb3JpYW5DYWxlbmRhciBjaGFuZ2UgZGF0ZS4gVGhpcyBpcyB0aGUgcG9pbnQgd2hlbiB0aGUgc3dpdGNoCisgICAgICogZnJvbSBKdWxpYW4gZGF0ZXMgdG8gR3JlZ29yaWFuIGRhdGVzIG9jY3VycmVkLiBEZWZhdWx0IGlzIE9jdG9iZXIgMTUsCisgICAgICogMTU4Mi4gUHJldmlvdXMgdG8gdGhpcywgZGF0ZXMgd2lsbCBiZSBpbiB0aGUgSnVsaWFuIGNhbGVuZGFyLgorICAgICAqIDxwPgorICAgICAqIFRvIG9idGFpbiBhIHB1cmUgSnVsaWFuIGNhbGVuZGFyLCBzZXQgdGhlIGNoYW5nZSBkYXRlIHRvCisgICAgICogPGNvZGU+RGF0ZShMb25nLk1BWF9WQUxVRSk8L2NvZGU+LiAgVG8gb2J0YWluIGEgcHVyZSBHcmVnb3JpYW4gY2FsZW5kYXIsCisgICAgICogc2V0IHRoZSBjaGFuZ2UgZGF0ZSB0byA8Y29kZT5EYXRlKExvbmcuTUlOX1ZBTFVFKTwvY29kZT4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSB0aGUgZ2l2ZW4gR3JlZ29yaWFuIGN1dG92ZXIgZGF0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRHcmVnb3JpYW5DaGFuZ2UoRGF0ZSBkYXRlKSB7CisgICAgICAgIGdyZWdvcmlhbkN1dG92ZXIgPSBkYXRlLmdldFRpbWUoKTsKKworICAgICAgICAvLyBJZiB0aGUgY3V0b3ZlciBoYXMgYW4gZXh0cmVtZSB2YWx1ZSwgdGhlbiBjcmVhdGUgYSBwdXJlCisgICAgICAgIC8vIEdyZWdvcmlhbiBvciBwdXJlIEp1bGlhbiBjYWxlbmRhciBieSBnaXZpbmcgdGhlIGN1dG92ZXIgeWVhciBhbmQKKyAgICAgICAgLy8gSkQgZXh0cmVtZSB2YWx1ZXMuCisgICAgICAgIGlmIChncmVnb3JpYW5DdXRvdmVyIDw9IE1JTl9NSUxMSVMpIHsKKyAgICAgICAgICAgIGdyZWdvcmlhbkN1dG92ZXJZZWFyID0gY3V0b3Zlckp1bGlhbkRheSA9IEludGVnZXIuTUlOX1ZBTFVFOworICAgICAgICB9IGVsc2UgaWYgKGdyZWdvcmlhbkN1dG92ZXIgPj0gTUFYX01JTExJUykgeworICAgICAgICAgICAgZ3JlZ29yaWFuQ3V0b3ZlclllYXIgPSBjdXRvdmVySnVsaWFuRGF5ID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBQcmVjb21wdXRlIHR3byBpbnRlcm5hbCB2YXJpYWJsZXMgd2hpY2ggd2UgdXNlIHRvIGRvIHRoZSBhY3R1YWwKKyAgICAgICAgICAgIC8vIGN1dG92ZXIgY29tcHV0YXRpb25zLiAgVGhlc2UgYXJlIHRoZSBKdWxpYW4gZGF5IG9mIHRoZSBjdXRvdmVyCisgICAgICAgICAgICAvLyBhbmQgdGhlIGN1dG92ZXIgeWVhci4KKyAgICAgICAgICAgIGN1dG92ZXJKdWxpYW5EYXkgPSAoaW50KSBmbG9vckRpdmlkZShncmVnb3JpYW5DdXRvdmVyLCBPTkVfREFZKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ29udmVydCBjdXRvdmVyIG1pbGxpcyB0byBleHRlbmRlZCB5ZWFyCisgICAgICAgICAgICBHcmVnb3JpYW5DYWxlbmRhciBjYWwgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoZ2V0VGltZVpvbmUoKSk7CisgICAgICAgICAgICBjYWwuc2V0VGltZShkYXRlKTsKKyAgICAgICAgICAgIGdyZWdvcmlhbkN1dG92ZXJZZWFyID0gY2FsLmdldChFWFRFTkRFRF9ZRUFSKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIEdyZWdvcmlhbiBDYWxlbmRhciBjaGFuZ2UgZGF0ZS4gIFRoaXMgaXMgdGhlIHBvaW50IHdoZW4gdGhlCisgICAgICogc3dpdGNoIGZyb20gSnVsaWFuIGRhdGVzIHRvIEdyZWdvcmlhbiBkYXRlcyBvY2N1cnJlZC4gRGVmYXVsdCBpcworICAgICAqIE9jdG9iZXIgMTUsIDE1ODIuIFByZXZpb3VzIHRvIHRoaXMsIGRhdGVzIHdpbGwgYmUgaW4gdGhlIEp1bGlhbgorICAgICAqIGNhbGVuZGFyLgorICAgICAqIEByZXR1cm4gdGhlIEdyZWdvcmlhbiBjdXRvdmVyIGRhdGUgZm9yIHRoaXMgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIERhdGUgZ2V0R3JlZ29yaWFuQ2hhbmdlKCkgeworICAgICAgICByZXR1cm4gbmV3IERhdGUoZ3JlZ29yaWFuQ3V0b3Zlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4geWVhciBpcyBhIGxlYXAgeWVhci4gUmV0dXJucyB0cnVlIGlmIHRoZQorICAgICAqIGdpdmVuIHllYXIgaXMgYSBsZWFwIHllYXIuCisgICAgICogQHBhcmFtIHllYXIgdGhlIGdpdmVuIHllYXIuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiB5ZWFyIGlzIGEgbGVhcCB5ZWFyOyBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNMZWFwWWVhcihpbnQgeWVhcikgeworICAgICAgICByZXR1cm4geWVhciA+PSBncmVnb3JpYW5DdXRvdmVyWWVhciA/CisgICAgICAgICAgICAoKHllYXIlNCA9PSAwKSAmJiAoKHllYXIlMTAwICE9IDApIHx8ICh5ZWFyJTQwMCA9PSAwKSkpIDogLy8gR3JlZ29yaWFuCisgICAgICAgICAgICAoeWVhciU0ID09IDApOyAvLyBKdWxpYW4KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIENhbGVuZGFyIG9iamVjdCBpcyBlcXVpdmFsZW50IHRvIHRoaXMKKyAgICAgKiBvbmUuICBDYWxlbmRhciBvdmVycmlkZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciB0aGUgQ2FsZW5kYXIgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzIENhbGVuZGFyICAgCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNFcXVpdmFsZW50VG8oQ2FsZW5kYXIgb3RoZXIpIHsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmlzRXF1aXZhbGVudFRvKG90aGVyKSAmJgorICAgICAgICAgICAgZ3JlZ29yaWFuQ3V0b3ZlciA9PSAoKEdyZWdvcmlhbkNhbGVuZGFyKW90aGVyKS5ncmVnb3JpYW5DdXRvdmVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIGhhc2hDb2RlLgorICAgICAqIEdlbmVyYXRlcyB0aGUgaGFzaCBjb2RlIGZvciB0aGUgR3JlZ29yaWFuQ2FsZW5kYXIgb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmhhc2hDb2RlKCkgXiAoaW50KWdyZWdvcmlhbkN1dG92ZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUm9sbCBhIGZpZWxkIGJ5IGEgc2lnbmVkIGFtb3VudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByb2xsKGludCBmaWVsZCwgaW50IGFtb3VudCkgeworCisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBXRUVLX09GX1lFQVI6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gVW5saWtlIFdFRUtfT0ZfTU9OVEgsIFdFRUtfT0ZfWUVBUiBuZXZlciBzaGlmdHMgdGhlIGRheSBvZiB0aGUKKyAgICAgICAgICAgICAgICAvLyB3ZWVrLiAgQWxzbywgcm9sbGluZyB0aGUgd2VlayBvZiB0aGUgeWVhciBjYW4gaGF2ZSBzZWVtaW5nbHkKKyAgICAgICAgICAgICAgICAvLyBzdHJhbmdlIGVmZmVjdHMgc2ltcGx5IGJlY2F1c2UgdGhlIHllYXIgb2YgdGhlIHdlZWsgb2YgeWVhcgorICAgICAgICAgICAgICAgIC8vIG1heSBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgY2FsZW5kYXIgeWVhci4gIEZvciBleGFtcGxlLCB0aGUKKyAgICAgICAgICAgICAgICAvLyBkYXRlIERlYyAyOCwgMTk5NyBpcyB0aGUgZmlyc3QgZGF5IG9mIHdlZWsgMSBvZiAxOTk4IChpZgorICAgICAgICAgICAgICAgIC8vIHdlZWtzIHN0YXJ0IG9uIFN1bmRheSBhbmQgdGhlIG1pbmltYWwgZGF5cyBpbiBmaXJzdCB3ZWVrIGlzCisgICAgICAgICAgICAgICAgLy8gPD0gMykuCisgICAgICAgICAgICAgICAgaW50IHdveSA9IGdldChXRUVLX09GX1lFQVIpOworICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgSVNPIHllYXIsIHdoaWNoIG1hdGNoZXMgdGhlIHdlZWsgb2YgeWVhci4gIFRoaXMKKyAgICAgICAgICAgICAgICAvLyBtYXkgYmUgb25lIHllYXIgYmVmb3JlIG9yIGFmdGVyIHRoZSBjYWxlbmRhciB5ZWFyLgorICAgICAgICAgICAgICAgIGludCBpc29ZZWFyID0gZ2V0KFlFQVJfV09ZKTsKKyAgICAgICAgICAgICAgICBpbnQgaXNvRG95ID0gaW50ZXJuYWxHZXQoREFZX09GX1lFQVIpOworICAgICAgICAgICAgICAgIGlmIChpbnRlcm5hbEdldChNT05USCkgPT0gQ2FsZW5kYXIuSkFOVUFSWSkgeworICAgICAgICAgICAgICAgICAgICBpZiAod295ID49IDUyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpc29Eb3kgKz0gaGFuZGxlR2V0WWVhckxlbmd0aChpc29ZZWFyKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3b3kgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaXNvRG95IC09IGhhbmRsZUdldFllYXJMZW5ndGgoaXNvWWVhciAtIDEpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdveSArPSBhbW91bnQ7CisgICAgICAgICAgICAgICAgLy8gRG8gZmFzdCBjaGVja3MgdG8gYXZvaWQgdW5uZWNlc3NhcnkgY29tcHV0YXRpb246CisgICAgICAgICAgICAgICAgaWYgKHdveSA8IDEgfHwgd295ID4gNTIpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBsYXN0IHdlZWsgb2YgdGhlIElTTyB5ZWFyLgorICAgICAgICAgICAgICAgICAgICAvLyBXZSBkbyB0aGlzIHVzaW5nIHRoZSBzdGFuZGFyZCBmb3JtdWxhIHdlIHVzZQorICAgICAgICAgICAgICAgICAgICAvLyBldmVyeXdoZXJlIGluIHRoaXMgZmlsZS4gIElmIHdlIGNhbiBzZWUgdGhhdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gZGF5cyBhdCB0aGUgZW5kIG9mIHRoZSB5ZWFyIGFyZSBnb2luZyB0byBmYWxsIGludG8KKyAgICAgICAgICAgICAgICAgICAgLy8gd2VlayAxIG9mIHRoZSBuZXh0IHllYXIsIHdlIGRyb3AgdGhlIGxhc3Qgd2VlayBieQorICAgICAgICAgICAgICAgICAgICAvLyBzdWJ0cmFjdGluZyA3IGZyb20gdGhlIGxhc3QgZGF5IG9mIHRoZSB5ZWFyLgorICAgICAgICAgICAgICAgICAgICBpbnQgbGFzdERveSA9IGhhbmRsZUdldFllYXJMZW5ndGgoaXNvWWVhcik7CisgICAgICAgICAgICAgICAgICAgIGludCBsYXN0UmVsRG93ID0gKGxhc3REb3kgLSBpc29Eb3kgKyBpbnRlcm5hbEdldChEQVlfT0ZfV0VFSykgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRGaXJzdERheU9mV2VlaygpKSAlIDc7CisgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0UmVsRG93IDwgMCkgbGFzdFJlbERvdyArPSA3OworICAgICAgICAgICAgICAgICAgICBpZiAoKDYgLSBsYXN0UmVsRG93KSA+PSBnZXRNaW5pbWFsRGF5c0luRmlyc3RXZWVrKCkpIGxhc3REb3kgLT0gNzsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxhc3RXb3kgPSB3ZWVrTnVtYmVyKGxhc3REb3ksIGxhc3RSZWxEb3cgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgd295ID0gKCh3b3kgKyBsYXN0V295IC0gMSkgJSBsYXN0V295KSArIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldChXRUVLX09GX1lFQVIsIHdveSk7CisgICAgICAgICAgICAgICAgc2V0KFlFQVIsIGlzb1llYXIpOyAvLyBXaHkgbm90IFlFQVJfV09ZPyAtIEFsYW4gMTEvNi8wMAorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgc3VwZXIucm9sbChmaWVsZCwgYW1vdW50KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWluaW11bSB2YWx1ZSB0aGF0IHRoaXMgZmllbGQgY291bGQgaGF2ZSwgZ2l2ZW4gdGhlIGN1cnJlbnQgZGF0ZS4KKyAgICAgKiBGb3IgdGhlIEdyZWdvcmlhbiBjYWxlbmRhciwgdGhpcyBpcyB0aGUgc2FtZSBhcyBnZXRNaW5pbXVtKCkgYW5kIGdldEdyZWF0ZXN0TWluaW11bSgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0QWN0dWFsTWluaW11bShpbnQgZmllbGQpIHsKKyAgICAgICAgcmV0dXJuIGdldE1pbmltdW0oZmllbGQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbWF4aW11bSB2YWx1ZSB0aGF0IHRoaXMgZmllbGQgY291bGQgaGF2ZSwgZ2l2ZW4gdGhlIGN1cnJlbnQgZGF0ZS4KKyAgICAgKiBGb3IgZXhhbXBsZSwgd2l0aCB0aGUgZGF0ZSAiRmViIDMsIDE5OTciIGFuZCB0aGUgREFZX09GX01PTlRIIGZpZWxkLCB0aGUgYWN0dWFsCisgICAgICogbWF4aW11bSB3b3VsZCBiZSAyODsgZm9yICJGZWIgMywgMTk5NiIgaXQgcyAyOS4gIFNpbWlsYXJseSBmb3IgYSBIZWJyZXcgY2FsZW5kYXIsCisgICAgICogZm9yIHNvbWUgeWVhcnMgdGhlIGFjdHVhbCBtYXhpbXVtIGZvciBNT05USCBpcyAxMiwgYW5kIGZvciBvdGhlcnMgMTMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXRBY3R1YWxNYXhpbXVtKGludCBmaWVsZCkgeworICAgICAgICAvKiBJdCBpcyBhIGtub3duIGxpbWl0YXRpb24gdGhhdCB0aGUgY29kZSBoZXJlIChhbmQgaW4gZ2V0QWN0dWFsTWluaW11bSkKKyAgICAgICAgICogd29uJ3QgYmVoYXZlIHByb3Blcmx5IGF0IHRoZSBleHRyZW1lIGxpbWl0cyBvZiBHcmVnb3JpYW5DYWxlbmRhcidzCisgICAgICAgICAqIHJlcHJlc2VudGFibGUgcmFuZ2UgKGV4Y2VwdCBmb3IgdGhlIGNvZGUgdGhhdCBoYW5kbGVzIHRoZSBZRUFSCisgICAgICAgICAqIGZpZWxkKS4gIFRoYXQncyBiZWNhdXNlIHRoZSBlbmRzIG9mIHRoZSByZXByZXNlbnRhYmxlIHJhbmdlIGFyZSBhdAorICAgICAgICAgKiBvZGQgc3BvdHMgaW4gdGhlIHllYXIuICBGb3IgY2FsZW5kYXJzIHdpdGggdGhlIGRlZmF1bHQgR3JlZ29yaWFuCisgICAgICAgICAqIGN1dG92ZXIsIHRoZXNlIGxpbWl0cyBhcmUgU3VuIERlYyAwMiAxNjo0NzowNCBHTVQgMjkyMjY5MDU1IEJDIHRvIFN1bgorICAgICAgICAgKiBBdWcgMTcgMDc6MTI6NTUgR01UIDI5MjI3ODk5NCBBRCwgc29tZXdoYXQgZGlmZmVyZW50IGZvciBub24tR01UCisgICAgICAgICAqIHpvbmVzLiAgQXMgYSByZXN1bHQsIGlmIHRoZSBjYWxlbmRhciBpcyBzZXQgdG8gQXVnIDEgMjkyMjc4OTk0IEFELAorICAgICAgICAgKiB0aGUgYWN0dWFsIG1heGltdW0gb2YgREFZX09GX01PTlRIIGlzIDE3LCBub3QgMzAuICBJZiB0aGUgZGF0ZSBpcyBNYXIKKyAgICAgICAgICogMzEgaW4gdGhhdCB5ZWFyLCB0aGUgYWN0dWFsIG1heGltdW0gbW9udGggbWlnaHQgYmUgSnVsLCB3aGVyZWFzIGlzCisgICAgICAgICAqIHRoZSBkYXRlIGlzIE1hciAxNSwgdGhlIGFjdHVhbCBtYXhpbXVtIG1pZ2h0IGJlIEF1ZyAtLSBkZXBlbmRpbmcgb24KKyAgICAgICAgICogdGhlIHByZWNpc2Ugc2VtYW50aWNzIHRoYXQgYXJlIGRlc2lyZWQuICBTaW1pbGFyIGNvbnNpZGVyYXRpb25zCisgICAgICAgICAqIGFmZmVjdCBhbGwgZmllbGRzLiAgTm9uZXRoZWxlc3MsIHRoaXMgZWZmZWN0IGlzIHN1ZmZpY2llbnRseSBhcmNhbmUKKyAgICAgICAgICogdGhhdCB3ZSBwZXJtaXQgaXQsIHJhdGhlciB0aGFuIGNvbXBsaWNhdGluZyB0aGUgY29kZSB0byBoYW5kbGUgc3VjaAorICAgICAgICAgKiBpbnRyaWNhY2llcy4gLSBsaXUgOC8yMC85OAorCisgICAgICAgICAqIFVQREFURTogTm8gbG9uZ2VyIHRydWUsIHNpbmNlIHdlIGhhdmUgcHVsbGVkIGluIHRoZSBsaW1pdCB2YWx1ZXMgb24KKyAgICAgICAgICogdGhlIHllYXIuIC0gTGl1IDExLzYvMDAgKi8KKworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisKKyAgICAgICAgY2FzZSBZRUFSOgorICAgICAgICAgICAgLyogVGhlIHllYXIgY29tcHV0YXRpb24gaXMgbm8gZGlmZmVyZW50LCBpbiBwcmluY2lwbGUsIGZyb20gdGhlCisgICAgICAgICAgICAgKiBvdGhlcnMsIGhvd2V2ZXIsIHRoZSByYW5nZSBvZiBwb3NzaWJsZSBtYXhpbWEgaXMgbGFyZ2UuICBJbgorICAgICAgICAgICAgICogYWRkaXRpb24sIHRoZSB3YXkgd2Uga25vdyB3ZSd2ZSBleGNlZWRlZCB0aGUgcmFuZ2UgaXMgZGlmZmVyZW50LgorICAgICAgICAgICAgICogRm9yIHRoZXNlIHJlYXNvbnMsIHdlIHVzZSB0aGUgc3BlY2lhbCBjYXNlIGNvZGUgYmVsb3cgdG8gaGFuZGxlCisgICAgICAgICAgICAgKiB0aGlzIGZpZWxkLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFRoZSBhY3R1YWwgbWF4aW1hIGZvciBZRUFSIGRlcGVuZCBvbiB0aGUgdHlwZSBvZiBjYWxlbmRhcjoKKyAgICAgICAgICAgICAqCisgICAgICAgICAgICAgKiAgICAgR3JlZ29yaWFuID0gTWF5IDE3LCAyOTIyNzUwNTYgQkMgLSBBdWcgMTcsIDI5MjI3ODk5NCBBRAorICAgICAgICAgICAgICogICAgIEp1bGlhbiAgICA9IERlYyAgMiwgMjkyMjY5MDU1IEJDIC0gSmFuICAzLCAyOTIyNzI5OTMgQUQKKyAgICAgICAgICAgICAqICAgICBIeWJyaWQgICAgPSBEZWMgIDIsIDI5MjI2OTA1NSBCQyAtIEF1ZyAxNywgMjkyMjc4OTk0IEFECisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogV2Uga25vdyB3ZSd2ZSBleGNlZWRlZCB0aGUgbWF4aW11bSB3aGVuIGVpdGhlciB0aGUgbW9udGgsIGRhdGUsCisgICAgICAgICAgICAgKiB0aW1lLCBvciBlcmEgY2hhbmdlcyBpbiByZXNwb25zZSB0byBzZXR0aW5nIHRoZSB5ZWFyLiAgV2UgZG9uJ3QKKyAgICAgICAgICAgICAqIGNoZWNrIGZvciBtb250aCwgZGF0ZSwgYW5kIHRpbWUgaGVyZSBiZWNhdXNlIHRoZSB5ZWFyIGFuZCBlcmEgYXJlCisgICAgICAgICAgICAgKiBzdWZmaWNpZW50IHRvIGRldGVjdCBhbiBpbnZhbGlkIHllYXIgc2V0dGluZy4gIE5PVEU6IElmIGNvZGUgaXMKKyAgICAgICAgICAgICAqIGFkZGVkIHRvIGNoZWNrIHRoZSBtb250aCBhbmQgZGF0ZSBpbiB0aGUgZnV0dXJlIGZvciBzb21lIHJlYXNvbiwKKyAgICAgICAgICAgICAqIEZlYiAyOSBtdXN0IGJlIGFsbG93ZWQgdG8gc2hpZnQgdG8gTWFyIDEgd2hlbiBzZXR0aW5nIHRoZSB5ZWFyLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgQ2FsZW5kYXIgY2FsID0gKENhbGVuZGFyKSBjbG9uZSgpOworICAgICAgICAgICAgICAgIGNhbC5zZXRMZW5pZW50KHRydWUpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGludCBlcmEgPSBjYWwuZ2V0KEVSQSk7CisgICAgICAgICAgICAgICAgRGF0ZSBkID0gY2FsLmdldFRpbWUoKTsKKworICAgICAgICAgICAgICAgIC8qIFBlcmZvcm0gYSBiaW5hcnkgc2VhcmNoLCB3aXRoIHRoZSBpbnZhcmlhbnQgdGhhdCBsb3dHb29kIGlzIGEKKyAgICAgICAgICAgICAgICAgKiB2YWxpZCB5ZWFyLCBhbmQgaGlnaEJhZCBpcyBhbiBvdXQgb2YgcmFuZ2UgeWVhci4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBpbnQgbG93R29vZCA9IExJTUlUU1tZRUFSXVsxXTsKKyAgICAgICAgICAgICAgICBpbnQgaGlnaEJhZCA9IExJTUlUU1tZRUFSXVsyXSsxOworICAgICAgICAgICAgICAgIHdoaWxlICgobG93R29vZCArIDEpIDwgaGlnaEJhZCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgeSA9IChsb3dHb29kICsgaGlnaEJhZCkgLyAyOworICAgICAgICAgICAgICAgICAgICBjYWwuc2V0KFlFQVIsIHkpOworICAgICAgICAgICAgICAgICAgICBpZiAoY2FsLmdldChZRUFSKSA9PSB5ICYmIGNhbC5nZXQoRVJBKSA9PSBlcmEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvd0dvb2QgPSB5OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaGlnaEJhZCA9IHk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWwuc2V0VGltZShkKTsgLy8gUmVzdG9yZSBvcmlnaW5hbCBmaWVsZHMKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICByZXR1cm4gbG93R29vZDsKKyAgICAgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmdldEFjdHVhbE1heGltdW0oZmllbGQpOworICAgICAgICB9CisgICAgfQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBQcm9wb3NlZCBwdWJsaWMgQVBJCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY3VycmVudCB0aW1lIGZvciB0aGlzIENhbGVuZGFyIGlzIGluIERheWxpZ250CisgICAgICogU2F2aW5ncyBUaW1lLgorICAgICAqCisgICAgICogTm90ZSAtLSBNQUtFIFRISVMgUFVCTElDIEFUIFRIRSBORVhUIEFQSSBDSEFOR0UuICBQT1NTSUJMWSBERVBSRUNBVEUKKyAgICAgKiBBTkQgUkVNT1ZFIFRpbWVab25lLmluRGF5bGlnaHRUaW1lKCkuCisgICAgICovCisgICAgYm9vbGVhbiBpbkRheWxpZ2h0VGltZSgpIHsKKyAgICAgICAgaWYgKCFnZXRUaW1lWm9uZSgpLnVzZURheWxpZ2h0VGltZSgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIGNvbXBsZXRlKCk7IC8vIEZvcmNlIHVwZGF0ZSBvZiBEU1RfT0ZGU0VUIGZpZWxkCisgICAgICAgIHJldHVybiBpbnRlcm5hbEdldChEU1RfT0ZGU0VUKSAhPSAwOworICAgIH0KKworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIENhbGVuZGFyIGZyYW1ld29yaworLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldE1vbnRoTGVuZ3RoKGludCBleHRlbmRlZFllYXIsIGludCBtb250aCkgeworICAgICAgICByZXR1cm4gTU9OVEhfQ09VTlRbbW9udGhdW2lzTGVhcFllYXIoZXh0ZW5kZWRZZWFyKT8xOjBdOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0WWVhckxlbmd0aChpbnQgZXllYXIpIHsKKyAgICAgICAgcmV0dXJuIGlzTGVhcFllYXIoZXllYXIpID8gMzY2IDogMzY1OworICAgIH0KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIFRpbWUgPT4gRmllbGRzIGNvbXB1dGF0aW9uCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgLyoqCisgICAgICogT3ZlcnJpZGUgQ2FsZW5kYXIgdG8gY29tcHV0ZSBzZXZlcmFsIGZpZWxkcyBzcGVjaWZpYyB0byB0aGUgaHlicmlkCisgICAgICogR3JlZ29yaWFuLUp1bGlhbiBjYWxlbmRhciBzeXN0ZW0uICBUaGVzZSBhcmU6CisgICAgICoKKyAgICAgKiA8dWw+PGxpPkVSQQorICAgICAqIDxsaT5ZRUFSCisgICAgICogPGxpPk1PTlRICisgICAgICogPGxpPkRBWV9PRl9NT05USAorICAgICAqIDxsaT5EQVlfT0ZfWUVBUgorICAgICAqIDxsaT5FWFRFTkRFRF9ZRUFSPC91bD4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVDb21wdXRlRmllbGRzKGludCBqdWxpYW5EYXkpIHsKKyAgICAgICAgaW50IGV5ZWFyLCBtb250aCwgZGF5T2ZNb250aCwgZGF5T2ZZZWFyOworCisgICAgICAgIGlmIChqdWxpYW5EYXkgPj0gY3V0b3Zlckp1bGlhbkRheSkgeworICAgICAgICAgICAgbW9udGggPSBnZXRHcmVnb3JpYW5Nb250aCgpOworICAgICAgICAgICAgZGF5T2ZNb250aCA9IGdldEdyZWdvcmlhbkRheU9mTW9udGgoKTsKKyAgICAgICAgICAgIGRheU9mWWVhciA9IGdldEdyZWdvcmlhbkRheU9mWWVhcigpOworICAgICAgICAgICAgZXllYXIgPSBnZXRHcmVnb3JpYW5ZZWFyKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUaGUgSnVsaWFuIGVwb2NoIGRheSAobm90IHRoZSBzYW1lIGFzIEp1bGlhbiBEYXkpCisgICAgICAgICAgICAvLyBpcyB6ZXJvIG9uIFNhdHVyZGF5IERlY2VtYmVyIDMwLCAwIChHcmVnb3JpYW4pLgorICAgICAgICAgICAgbG9uZyBqdWxpYW5FcG9jaERheSA9IGp1bGlhbkRheSAtIChKQU5fMV8xX0pVTElBTl9EQVkgLSAyKTsKKyAgICAgICAgICAgIGV5ZWFyID0gKGludCkgZmxvb3JEaXZpZGUoNCpqdWxpYW5FcG9jaERheSArIDE0NjQsIDE0NjEpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBDb21wdXRlIHRoZSBKdWxpYW4gY2FsZW5kYXIgZGF5IG51bWJlciBmb3IgSmFudWFyeSAxLCBleWVhcgorICAgICAgICAgICAgbG9uZyBqYW51YXJ5MSA9IDM2NSooZXllYXItMSkgKyBmbG9vckRpdmlkZShleWVhci0xLCA0KTsKKyAgICAgICAgICAgIGRheU9mWWVhciA9IChpbnQpKGp1bGlhbkVwb2NoRGF5IC0gamFudWFyeTEpOyAvLyAwLWJhc2VkCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEp1bGlhbiBsZWFwIHllYXJzIG9jY3VycmVkIGhpc3RvcmljYWxseSBldmVyeSA0IHllYXJzIHN0YXJ0aW5nCisgICAgICAgICAgICAvLyB3aXRoIDggQUQuICBCZWZvcmUgOCBBRCB0aGUgc3BhY2luZyBpcyBpcnJlZ3VsYXI7IGV2ZXJ5IDMgeWVhcnMKKyAgICAgICAgICAgIC8vIGZyb20gNDUgQkMgdG8gOSBCQywgYW5kIHRoZW4gbm9uZSB1bnRpbCA4IEFELiAgSG93ZXZlciwgd2UgZG9uJ3QKKyAgICAgICAgICAgIC8vIGltcGxlbWVudCB0aGlzIGhpc3RvcmljYWwgZGV0YWlsOyBpbnN0ZWFkLCB3ZSBpbXBsZW1lbnQgdGhlCisgICAgICAgICAgICAvLyBjb21wdXRhdGluYWxseSBjbGVhbmVyIHByb2xlcHRpYyBjYWxlbmRhciwgd2hpY2ggYXNzdW1lcworICAgICAgICAgICAgLy8gY29uc2lzdGVudCA0LXllYXIgY3ljbGVzIHRocm91Z2hvdXQgdGltZS4KKyAgICAgICAgICAgIGJvb2xlYW4gaXNMZWFwID0gKChleWVhciYweDMpID09IDApOyAvLyBlcXVpdi4gdG8gKGV5ZWFyJTQgPT0gMCkKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ29tbW9uIEp1bGlhbi9HcmVnb3JpYW4gY2FsY3VsYXRpb24KKyAgICAgICAgICAgIGludCBjb3JyZWN0aW9uID0gMDsKKyAgICAgICAgICAgIGludCBtYXJjaDEgPSBpc0xlYXAgPyA2MCA6IDU5OyAvLyB6ZXJvLWJhc2VkIERPWSBmb3IgTWFyY2ggMQorICAgICAgICAgICAgaWYgKGRheU9mWWVhciA+PSBtYXJjaDEpIHsKKyAgICAgICAgICAgICAgICBjb3JyZWN0aW9uID0gaXNMZWFwID8gMSA6IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtb250aCA9ICgxMiAqIChkYXlPZlllYXIgKyBjb3JyZWN0aW9uKSArIDYpIC8gMzY3OyAvLyB6ZXJvLWJhc2VkIG1vbnRoCisgICAgICAgICAgICBkYXlPZk1vbnRoID0gZGF5T2ZZZWFyIC0gTU9OVEhfQ09VTlRbbW9udGhdW2lzTGVhcD8zOjJdICsgMTsgLy8gb25lLWJhc2VkIERPTQorICAgICAgICAgICAgKytkYXlPZlllYXI7CisgICAgICAgIH0KKyAgICAgICAgaW50ZXJuYWxTZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX01PTlRILCBkYXlPZk1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX1lFQVIsIGRheU9mWWVhcik7CisgICAgICAgIGludGVybmFsU2V0KEVYVEVOREVEX1lFQVIsIGV5ZWFyKTsKKyAgICAgICAgaW50IGVyYSA9IEFEOworICAgICAgICBpZiAoZXllYXIgPCAxKSB7CisgICAgICAgICAgICBlcmEgPSBCQzsKKyAgICAgICAgICAgIGV5ZWFyID0gMSAtIGV5ZWFyOworICAgICAgICB9CisgICAgICAgIGludGVybmFsU2V0KEVSQSwgZXJhKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoWUVBUiwgZXllYXIpOworICAgIH0KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEZpZWxkcyA9PiBUaW1lIGNvbXB1dGF0aW9uCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRFeHRlbmRlZFllYXIoKSB7CisgICAgICAgIGludCB5ZWFyOworICAgICAgICBpZiAobmV3ZXJGaWVsZChFWFRFTkRFRF9ZRUFSLCBZRUFSKSA9PSBFWFRFTkRFRF9ZRUFSKSB7CisgICAgICAgICAgICB5ZWFyID0gaW50ZXJuYWxHZXQoRVhURU5ERURfWUVBUiwgRVBPQ0hfWUVBUik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUaGUgeWVhciBkZWZhdWx0cyB0byB0aGUgZXBvY2ggc3RhcnQsIHRoZSBlcmEgdG8gQUQKKyAgICAgICAgICAgIGludCBlcmEgPSBpbnRlcm5hbEdldChFUkEsIEFEKTsKKyAgICAgICAgICAgIGlmIChlcmEgPT0gQkMpIHsKKyAgICAgICAgICAgICAgICB5ZWFyID0gMSAtIGludGVybmFsR2V0KFlFQVIsIDEpOyAvLyBDb252ZXJ0IHRvIGV4dGVuZGVkIHllYXIKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KFlFQVIsIEVQT0NIX1lFQVIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB5ZWFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlQ29tcHV0ZUp1bGlhbkRheShpbnQgYmVzdEZpZWxkKSB7CisKKyAgICAgICAgaW52ZXJ0R3JlZ29yaWFuID0gZmFsc2U7CisKKyAgICAgICAgaW50IGpkID0gc3VwZXIuaGFuZGxlQ29tcHV0ZUp1bGlhbkRheShiZXN0RmllbGQpOworCisgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY2hlY2sgaGFuZGxlcyBwb3J0aW9ucyBvZiB0aGUgY3V0b3ZlciB5ZWFyIEJFRk9SRSB0aGUKKyAgICAgICAgLy8gY3V0b3ZlciBpdHNlbGYgaGFwcGVucy4KKyAgICAgICAgaWYgKGlzR3JlZ29yaWFuICE9IChqZCA+PSBjdXRvdmVySnVsaWFuRGF5KSkgeworICAgICAgICAgICAgaW52ZXJ0R3JlZ29yaWFuID0gdHJ1ZTsKKyAgICAgICAgICAgIGpkID0gc3VwZXIuaGFuZGxlQ29tcHV0ZUp1bGlhbkRheShiZXN0RmllbGQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gamQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIEpEIG9mIHN0YXJ0IG9mIGdpdmVuIG1vbnRoL3llYXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGludCBleWVhciwgaW50IG1vbnRoLCBib29sZWFuIHVzZU1vbnRoKSB7CisKKyAgICAgICAgLy8gSWYgdGhlIG1vbnRoIGlzIG91dCBvZiByYW5nZSwgYWRqdXN0IGl0IGludG8gcmFuZ2UsIGFuZAorICAgICAgICAvLyBtb2RpZnkgdGhlIGV4dGVuZGVkIHllYXIgdmFsdWUgYWNjb3JkaW5nbHkuCisgICAgICAgIGlmIChtb250aCA8IDAgfHwgbW9udGggPiAxMSkgeworICAgICAgICAgICAgaW50W10gcmVtID0gbmV3IGludFsxXTsKKyAgICAgICAgICAgIGV5ZWFyICs9IGZsb29yRGl2aWRlKG1vbnRoLCAxMiwgcmVtKTsKKyAgICAgICAgICAgIG1vbnRoID0gcmVtWzBdOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBpc0xlYXAgPSBleWVhciU0ID09IDA7CisgICAgICAgIGludCB5ID0gZXllYXIgLSAxOworICAgICAgICBpbnQganVsaWFuRGF5ID0gMzY1KnkgKyBmbG9vckRpdmlkZSh5LCA0KSArIChKQU5fMV8xX0pVTElBTl9EQVkgLSAzKTsKKworICAgICAgICBpc0dyZWdvcmlhbiA9IChleWVhciA+PSBncmVnb3JpYW5DdXRvdmVyWWVhcik7CisgICAgICAgIGlmIChpbnZlcnRHcmVnb3JpYW4pIHsKKyAgICAgICAgICAgIGlzR3JlZ29yaWFuID0gIWlzR3JlZ29yaWFuOworICAgICAgICB9CisgICAgICAgIGlmIChpc0dyZWdvcmlhbikgeworICAgICAgICAgICAgaXNMZWFwID0gaXNMZWFwICYmICgoZXllYXIlMTAwICE9IDApIHx8IChleWVhciU0MDAgPT0gMCkpOworICAgICAgICAgICAgLy8gQWRkIDIgYmVjYXVzZSBHcmVnb3JpYW4gY2FsZW5kYXIgc3RhcnRzIDIgZGF5cyBhZnRlcgorICAgICAgICAgICAgLy8gSnVsaWFuIGNhbGVuZGFyCisgICAgICAgICAgICBqdWxpYW5EYXkgKz0gZmxvb3JEaXZpZGUoeSwgNDAwKSAtIGZsb29yRGl2aWRlKHksIDEwMCkgKyAyOworICAgICAgICB9CisKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCBqdWxpYW5EYXkgaW5kaWNhdGVzIHRoZSBkYXkgQkVGT1JFIHRoZSBmaXJzdAorICAgICAgICAvLyBkYXkgb2YgSmFudWFyeSAxLCA8ZXllYXI+IG9mIGVpdGhlciB0aGUgSnVsaWFuIG9yIEdyZWdvcmlhbgorICAgICAgICAvLyBjYWxlbmRhci4KKworICAgICAgICBpZiAobW9udGggIT0gMCkgeworICAgICAgICAgICAganVsaWFuRGF5ICs9IE1PTlRIX0NPVU5UW21vbnRoXVtpc0xlYXA/MzoyXTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBqdWxpYW5EYXk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjdXJyZW50IENhbGVuZGFyIHR5cGUuCisgICAgICogQHJldHVybiB0eXBlIG9mIGNhbGVuZGFyIChncmVnb3JpYW4sIGV0Yy4pCisgICAgICogQGludGVybmFsIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiAiZ3JlZ29yaWFuIjsKKyAgICB9CisKKyAgICAvKgorICAgIHByaXZhdGUgc3RhdGljIENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5OworICAgIHB1YmxpYyBzdGF0aWMgQ2FsZW5kYXJGYWN0b3J5IGZhY3RvcnkoKSB7CisgICAgICAgIGlmIChmYWN0b3J5ID09IG51bGwpIHsKKyAgICAgICAgICAgIGZhY3RvcnkgPSBuZXcgQ2FsZW5kYXJGYWN0b3J5KCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyBDYWxlbmRhciBjcmVhdGUoVGltZVpvbmUgdHosIFVMb2NhbGUgbG9jKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIodHosIGxvYyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHVibGljIFN0cmluZyBmYWN0b3J5TmFtZSgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJHcmVnb3JpYW4iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhY3Rvcnk7CisgICAgfQorICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9IZWJyZXdDYWxlbmRhci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSGVicmV3Q2FsZW5kYXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lOWRkNmMwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSGVicmV3Q2FsZW5kYXIuamF2YQpAQCAtMCwwICsxLDg2OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJDYWNoZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiBpcyBhIHN1YmNsYXNzIG9mIDxjb2RlPkNhbGVuZGFyPC9jb2RlPgorICogdGhhdCB0aGF0IGltcGxlbWVudHMgdGhlIHRyYWRpdGlvbmFsIEhlYnJldyBjYWxlbmRhci4KKyAqIFRoaXMgaXMgdGhlIGNpdmlsIGNhbGVuZGFyIGluIElzcmFlbCBhbmQgdGhlIGxpdHVyZ2ljYWwgY2FsZW5kYXIKKyAqIG9mIHRoZSBKZXdpc2ggZmFpdGggd29ybGR3aWRlLgorICogPHA+CisgKiBUaGUgSGVicmV3IGNhbGVuZGFyIGlzIGx1bmlzb2xhciBhbmQgdGh1cyBoYXMgYSBudW1iZXIgb2YgaW50ZXJlc3RpbmcKKyAqIHByb3BlcnRpZXMgdGhhdCBkaXN0aW5ndWlzaCBpdCBmcm9tIHRoZSBHcmVnb3JpYW4uICBNb250aHMgc3RhcnQKKyAqIG9uIHRoZSBkYXkgb2YgKGFuIGFyaXRobWV0aWMgYXBwcm94aW1hdGlvbiBvZikgZWFjaCBuZXcgbW9vbi4gIFNpbmNlIHRoZQorICogc29sYXIgeWVhciAoYXBwcm94aW1hdGVseSAzNjUuMjQgZGF5cykgaXMgbm90IGFuIGV2ZW4gbXVsdGlwbGUgb2YKKyAqIHRoZSBsdW5hciBtb250aCAoYXBwcm94aW1hdGVseSAyOS41MyBkYXlzKSBhbiBleHRyYSAibGVhcCBtb250aCIgaXMKKyAqIGluc2VydGVkIGluIDcgb3V0IG9mIGV2ZXJ5IDE5IHllYXJzLiAgVG8gbWFrZSBtYXR0ZXJzIGV2ZW4gbW9yZQorICogaW50ZXJlc3RpbmcsIHRoZSBzdGFydCBvZiBhIHllYXIgY2FuIGJlIGRlbGF5ZWQgYnkgdXAgdG8gdGhyZWUgZGF5cworICogaW4gb3JkZXIgdG8gcHJldmVudCBjZXJ0YWluIGhvbGlkYXlzIGZyb20gZmFsbGluZyBvbiB0aGUgU2FiYmF0aCBhbmQKKyAqIHRvIHByZXZlbnQgY2VydGFpbiBpbGxlZ2FsIHllYXIgbGVuZ3Rocy4gIEZpbmFsbHksIHRoZSBsZW5ndGhzIG9mIGNlcnRhaW4KKyAqIG1vbnRocyBjYW4gdmFyeSBkZXBlbmRpbmcgb24gdGhlIG51bWJlciBvZiBkYXlzIGluIHRoZSB5ZWFyLgorICogPHA+CisgKiBUaGUgbGVhcCBtb250aCBpcyBrbm93biBhcyAiQWRhciAxIiBhbmQgaXMgaW5zZXJ0ZWQgYmV0d2VlbiB0aGUKKyAqIG1vbnRocyBvZiBTaGV2YXQgYW5kIEFkYXIgaW4gbGVhcCB5ZWFycy4gIFNpbmNlIHRoZSBsZWFwIG1vbnRoIGRvZXMKKyAqIG5vdCBjb21lIGF0IHRoZSBlbmQgb2YgdGhlIHllYXIsIGNhbGN1bGF0aW9ucyBpbnZvbHZpbmcKKyAqIG1vbnRoIG51bWJlcnMgYXJlIHBhcnRpY3VsYXJseSBjb21wbGV4LiAgVXNlcnMgb2YgdGhpcyBjbGFzcyBzaG91bGQKKyAqIG1ha2Ugc3VyZSB0byB1c2UgdGhlIHtAbGluayAjcm9sbCByb2xsfSBhbmQge0BsaW5rICNhZGQgYWRkfSBtZXRob2RzCisgKiByYXRoZXIgdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gZGF0ZSBhcml0aG1ldGljIGJ5IG1hbmlwdWxhdGluZworICogdGhlIGZpZWxkcyBkaXJlY3RseS4KKyAqIDxwPgorICogPGI+Tm90ZTo8L2I+IEluIHRoZSB0cmFkaXRpb25hbCBIZWJyZXcgY2FsZW5kYXIsIGRheXMgc3RhcnQgYXQgc3Vuc2V0LgorICogSG93ZXZlciwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgdGltZSBmaWVsZHMgaW4gdGhpcyBjbGFzcworICogc3luY2hyb25pemVkIHdpdGggdGhvc2Ugb2YgdGhlIG90aGVyIGNhbGVuZGFycyBhbmQgd2l0aCBsb2NhbCBjbG9jayB0aW1lLAorICogd2UgdHJlYXQgZGF5cyBhbmQgbW9udGhzIGFzIGJlZ2lubmluZyBhdCBtaWRuaWdodCwKKyAqIHJvdWdobHkgNiBob3VycyBhZnRlciB0aGUgY29ycmVzcG9uZGluZyBzdW5zZXQuCisgKiA8cD4KKyAqIElmIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBydWxlcyBiZWhpbmQgdGhlIEhlYnJldworICogY2FsZW5kYXIsIHNlZSBvbmUgb2YgdGhlIGZvbGxvd2luZyByZWZlcmVuY2VzOgorICogPHVsPgorICogPGxpPiI8YSBocmVmPSJodHRwOi8vd3d3LmFtYXpvbi5jb20vZXhlYy9vYmlkb3MvQVNJTi8wNTIxNTY0NzQzIj5DYWxlbmRyaWNhbCBDYWxjdWxhdGlvbnM8L2E+IiwKKyAqICAgICAgYnkgTmFjaHVtIERlcnNob3dpdHogJiBFZHdhcmQgUmVpbmdvbGQsIENhbWJyaWRnZSBVbml2ZXJzaXR5IFByZXNzLCAxOTk3LCBwYWdlcyA4NS05MS4KKyAqCisgKiA8bGk+SGVicmV3IENhbGVuZGFyIFNjaWVuY2UgYW5kIE15dGhzLAorICogICAgICA8YSBocmVmPSJodHRwOi8vd3d3Lmdlb2NpdGllcy5jb20vQXRoZW5zLzE1ODQvIj4KKyAqICAgICAgaHR0cDovL3d3dy5nZW9jaXRpZXMuY29tL0F0aGVucy8xNTg0LzwvYT4KKyAqCisgKiA8bGk+VGhlIENhbGVuZGFyIEZBUSwKKyAqICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5mYXFzLm9yZy9mYXFzL2NhbGVuZGFycy9mYXEvIj4KKyAqICAgICAgaHR0cDovL3d3dy5mYXFzLm9yZy9mYXFzL2NhbGVuZGFycy9mYXEvPC9hPgorICogPC91bD4KKyAqCisgKiA8cD4KKyAqIFRoaXMgY2xhc3Mgc2hvdWxkIG5vdCBiZSBzdWJjbGFzc2VkLjwvcD4KKyAqIDxwPgorICogSGVicmV3Q2FsZW5kYXIgdXN1YWxseSBzaG91bGQgYmUgaW5zdGFudGlhdGVkIHVzaW5nIAorICoge0BsaW5rIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIjZ2V0SW5zdGFuY2UoVUxvY2FsZSl9IHBhc3NpbmcgaW4gYSA8Y29kZT5VTG9jYWxlPC9jb2RlPgorICogd2l0aCB0aGUgdGFnIDxjb2RlPiJAY2FsZW5kYXI9aGVicmV3IjwvY29kZT4uPC9wPgorICoKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyCisgKgorICogQGF1dGhvciBMYXVyYSBXZXJuZXIKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgY2xhc3MgSGVicmV3Q2FsZW5kYXIgZXh0ZW5kcyBDYWxlbmRhciB7CisgICAgLy8gamRrMS40LjIgc2VyaWFsdmVyCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTE5NTI1MjQ1NjA1ODg4MjU4MTZMOworCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGNvcHlyaWdodCA9ICJDb3B5cmlnaHQgXHUwMGE5IDE5OTctMTk5OCBJQk0gQ29ycC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gVG9ucyBvJyBDb25zdGFudHMuLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciBUaXNocmksIHRoZSAxc3QgbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVElTSFJJID0gMDsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBIZXNodmFuLCB0aGUgMm5kIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEhFU0hWQU4gPSAxOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIEtpc2xldiwgdGhlIDNyZCBtb250aCBvZiB0aGUgSGVicmV3IHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLSVNMRVYgPSAyOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIFRldmV0LCB0aGUgNHRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFVkVUID0gMzsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBTaGV2YXQsIHRoZSA1dGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0hFVkFUID0gNDsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBBZGFyIEksIHRoZSA2dGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyCisgICAgICogKHByZXNlbnQgaW4gbGVhcCB5ZWFycyBvbmx5KS4gSW4gbm9uLWxlYXAgeWVhcnMsIHRoZSBjYWxlbmRhcgorICAgICAqIGp1bXBzIGZyb20gU2hldmF0ICg1dGggbW9udGgpIHRvIEFkYXIgKDd0aCBtb250aCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQURBUl8xID0gNTsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgdGhlIEFkYXIsIHRoZSA3dGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQURBUiA9IDY7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgTmlzYW4sIHRoZSA4dGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTklTQU4gPSA3OworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIEl5YXIsIHRoZSA5dGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSVlBUiA9IDg7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgU2l2YW4sIHRoZSAxMHRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJVkFOID0gOTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBUYW1tdXosIHRoZSAxMXRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRBTVVaID0gMTA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgQXYsIHRoZSAxMnRoIG1vbnRoIG9mIHRoZSBIZWJyZXcgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFWID0gMTE7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgRWx1bCwgdGhlIDEzdGggbW9udGggb2YgdGhlIEhlYnJldyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRUxVTCA9IDEyOworCisgICAgLyoqCisgICAgICogVGhlIGFic29sdXRlIGRhdGUsIGluIG1pbGxpc2Vjb25kcyBzaW5jZSAxLzEvMTk3MCBBRCwgR3JlZ29yaWFuLAorICAgICAqIG9mIHRoZSBzdGFydCBvZiB0aGUgSGVicmV3IGNhbGVuZGFyLiAgSW4gb3JkZXIgdG8ga2VlcCB0aGlzIGNhbGVuZGFyJ3MKKyAgICAgKiB0aW1lIG9mIGRheSBpbiBzeW5jIHdpdGggdGhhdCBvZiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLCB3ZSB1c2UKKyAgICAgKiBtaWRuaWdodCwgcmF0aGVyIHRoYW4gc3Vuc2V0IHRoZSBkYXkgYmVmb3JlLgorICAgICAqLworICAgIC8vcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBFUE9DSF9NSUxMSVMgPSAtMTgwNzk5ODYyNDAwMDAwTDsgLy8gMS8xLzEgSFkKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMSU1JVFNbXVtdID0geworICAgICAgICAvLyBNaW5pbXVtICBHcmVhdGVzdCAgICBMZWFzdCAgTWF4aW11bQorICAgICAgICAvLyAgICAgICAgICAgTWluaW11bSAgTWF4aW11bQorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAgMCwgICAgICAgMCB9LCAvLyBFUkEKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsIDUwMDAwMDAsIDUwMDAwMDAgfSwgLy8gWUVBUgorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAxMiwgICAgICAxMiB9LCAvLyBNT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICA1MSwgICAgICA1NiB9LCAvLyBXRUVLX09GX1lFQVIKKyAgICAgICAgeyAgICAgICAgMCwgICAgICAgIDAsICAgICAgIDUsICAgICAgIDYgfSwgLy8gV0VFS19PRl9NT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgICAyOSwgICAgICAzMCB9LCAvLyBEQVlfT0ZfTU9OVEgKKyAgICAgICAgeyAgICAgICAgMSwgICAgICAgIDEsICAgICAzNTMsICAgICAzODUgfSwgLy8gREFZX09GX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gREFZX09GX1dFRUsKKyAgICAgICAgeyAgICAgICAtMSwgICAgICAgLTEsICAgICAgIDQsICAgICAgIDYgfSwgLy8gREFZX09GX1dFRUtfSU5fTU9OVEgKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gQU1fUE0KKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSE9VUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBIT1VSX09GX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSU5VVEUKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTExJU0VDT05ECisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIFpPTkVfT0ZGU0VUCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIERTVF9PRkZTRVQKKyAgICAgICAgeyAtNTAwMDAwMSwgLTUwMDAwMDEsIDUwMDAwMDEsIDUwMDAwMDEgfSwgLy8gWUVBUl9XT1kKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRE9XX0xPQ0FMCisgICAgICAgIHsgLTUwMDAwMDAsIC01MDAwMDAwLCA1MDAwMDAwLCA1MDAwMDAwIH0sIC8vIEVYVEVOREVEX1lFQVIKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gSlVMSUFOX0RBWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBNSUxMSVNFQ09ORFNfSU5fREFZCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFRoZSBsZW5ndGhzIG9mIHRoZSBIZWJyZXcgbW9udGhzLiAgVGhpcyBpcyBjb21wbGljYXRlZCwgYmVjYXVzZSB0aGVyZQorICAgICAqIGFyZSB0aHJlZSBkaWZmZXJlbnQgdHlwZXMgb2YgeWVhcnMsIG9yIHNpeCBpZiB5b3UgY291bnQgbGVhcCB5ZWFycy4KKyAgICAgKiBEdWUgdG8gdGhlIHJ1bGVzIGZvciBwb3N0cG9uaW5nIHRoZSBzdGFydCBvZiB0aGUgeWVhciB0byBhdm9pZCBoYXZpbmcKKyAgICAgKiBjZXJ0YWluIGhvbGlkYXlzIGZhbGwgb24gdGhlIHNhYmJhdGgsIHRoZSB5ZWFyIGNhbiBlbmQgdXAgYmVpbmcgdGhyZWUKKyAgICAgKiBkaWZmZXJlbnQgbGVuZ3RocywgY2FsbGVkICJkZWZpY2llbnQiLCAibm9ybWFsIiwgYW5kICJjb21wbGV0ZSIuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1PTlRIX0xFTkdUSFtdW10gPSB7CisgICAgICAgIC8vIERlZmljaWVudCAgTm9ybWFsICAgICBDb21wbGV0ZQorICAgICAgICB7ICAgMzAsICAgICAgICAgMzAsICAgICAgICAgMzAgICAgIH0sICAgICAgICAgICAvL1Rpc2hyaQorICAgICAgICB7ICAgMjksICAgICAgICAgMjksICAgICAgICAgMzAgICAgIH0sICAgICAgICAgICAvL0hlc2h2YW4KKyAgICAgICAgeyAgIDI5LCAgICAgICAgIDMwLCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9LaXNsZXYKKyAgICAgICAgeyAgIDI5LCAgICAgICAgIDI5LCAgICAgICAgIDI5ICAgICB9LCAgICAgICAgICAgLy9UZXZldAorICAgICAgICB7ICAgMzAsICAgICAgICAgMzAsICAgICAgICAgMzAgICAgIH0sICAgICAgICAgICAvL1NoZXZhdAorICAgICAgICB7ICAgMzAsICAgICAgICAgMzAsICAgICAgICAgMzAgICAgIH0sICAgICAgICAgICAvL0FkYXIgSSAobGVhcCB5ZWFycyBvbmx5KQorICAgICAgICB7ICAgMjksICAgICAgICAgMjksICAgICAgICAgMjkgICAgIH0sICAgICAgICAgICAvL0FkYXIKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9OaXNhbgorICAgICAgICB7ICAgMjksICAgICAgICAgMjksICAgICAgICAgMjkgICAgIH0sICAgICAgICAgICAvL0l5YXIKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICAgICB9LCAgICAgICAgICAgLy9TaXZhbgorICAgICAgICB7ICAgMjksICAgICAgICAgMjksICAgICAgICAgMjkgICAgIH0sICAgICAgICAgICAvL1RhbW11egorICAgICAgICB7ICAgMzAsICAgICAgICAgMzAsICAgICAgICAgMzAgICAgIH0sICAgICAgICAgICAvL0F2CisgICAgICAgIHsgICAyOSwgICAgICAgICAyOSwgICAgICAgICAyOSAgICAgfSwgICAgICAgICAgIC8vRWx1bAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgY3VtdWxhdGl2ZSAjIG9mIGRheXMgdG8gdGhlIGVuZCBvZiBlYWNoIG1vbnRoIGluIGEgbm9uLWxlYXAgeWVhcgorICAgICAqIEFsdGhvdWdoIHRoaXMgY2FuIGJlIGNhbGN1bGF0ZWQgZnJvbSB0aGUgTU9OVEhfTEVOR1RIIHRhYmxlLAorICAgICAqIGtlZXBpbmcgaXQgYXJvdW5kIHNlcGFyYXRlbHkgbWFrZXMgc29tZSBjYWxjdWxhdGlvbnMgYSBsb3QgZmFzdGVyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE1PTlRIX1NUQVJUW11bXSA9IHsKKyAgICAgICAgLy8gRGVmaWNpZW50ICBOb3JtYWwgICAgIENvbXBsZXRlCisgICAgICAgIHsgICAgMCwgICAgICAgICAgMCwgICAgICAgICAgMCAgfSwgICAgICAgICAgLy8gKHBsYWNlaG9sZGVyKQorICAgICAgICB7ICAgMzAsICAgICAgICAgMzAsICAgICAgICAgMzAgIH0sICAgICAgICAgIC8vIFRpc2hyaQorICAgICAgICB7ICAgNTksICAgICAgICAgNTksICAgICAgICAgNjAgIH0sICAgICAgICAgIC8vIEhlc2h2YW4KKyAgICAgICAgeyAgIDg4LCAgICAgICAgIDg5LCAgICAgICAgIDkwICB9LCAgICAgICAgICAvLyBLaXNsZXYKKyAgICAgICAgeyAgMTE3LCAgICAgICAgMTE4LCAgICAgICAgMTE5ICB9LCAgICAgICAgICAvLyBUZXZldAorICAgICAgICB7ICAxNDcsICAgICAgICAxNDgsICAgICAgICAxNDkgIH0sICAgICAgICAgIC8vIFNoZXZhdAorICAgICAgICB7ICAxNDcsICAgICAgICAxNDgsICAgICAgICAxNDkgIH0sICAgICAgICAgIC8vIChBZGFyIEkgcGxhY2Vob2xkZXIpCisgICAgICAgIHsgIDE3NiwgICAgICAgIDE3NywgICAgICAgIDE3OCAgfSwgICAgICAgICAgLy8gQWRhcgorICAgICAgICB7ICAyMDYsICAgICAgICAyMDcsICAgICAgICAyMDggIH0sICAgICAgICAgIC8vIE5pc2FuCisgICAgICAgIHsgIDIzNSwgICAgICAgIDIzNiwgICAgICAgIDIzNyAgfSwgICAgICAgICAgLy8gSXlhcgorICAgICAgICB7ICAyNjUsICAgICAgICAyNjYsICAgICAgICAyNjcgIH0sICAgICAgICAgIC8vIFNpdmFuCisgICAgICAgIHsgIDI5NCwgICAgICAgIDI5NSwgICAgICAgIDI5NiAgfSwgICAgICAgICAgLy8gVGFtbXV6CisgICAgICAgIHsgIDMyNCwgICAgICAgIDMyNSwgICAgICAgIDMyNiAgfSwgICAgICAgICAgLy8gQXYKKyAgICAgICAgeyAgMzUzLCAgICAgICAgMzU0LCAgICAgICAgMzU1ICB9LCAgICAgICAgICAvLyBFbHVsCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFRoZSBjdW11bGF0aXZlICMgb2YgZGF5cyB0byB0aGUgZW5kIG9mIGVhY2ggbW9udGggaW4gYSBsZWFwIHllYXIKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTEVBUF9NT05USF9TVEFSVFtdW10gPSB7CisgICAgICAgIC8vIERlZmljaWVudCAgTm9ybWFsICAgICBDb21wbGV0ZQorICAgICAgICB7ICAgIDAsICAgICAgICAgIDAsICAgICAgICAgIDAgIH0sICAgICAgICAgIC8vIChwbGFjZWhvbGRlcikKKyAgICAgICAgeyAgIDMwLCAgICAgICAgIDMwLCAgICAgICAgIDMwICB9LCAgICAgICAgICAvLyBUaXNocmkKKyAgICAgICAgeyAgIDU5LCAgICAgICAgIDU5LCAgICAgICAgIDYwICB9LCAgICAgICAgICAvLyBIZXNodmFuCisgICAgICAgIHsgICA4OCwgICAgICAgICA4OSwgICAgICAgICA5MCAgfSwgICAgICAgICAgLy8gS2lzbGV2CisgICAgICAgIHsgIDExNywgICAgICAgIDExOCwgICAgICAgIDExOSAgfSwgICAgICAgICAgLy8gVGV2ZXQKKyAgICAgICAgeyAgMTQ3LCAgICAgICAgMTQ4LCAgICAgICAgMTQ5ICB9LCAgICAgICAgICAvLyBTaGV2YXQKKyAgICAgICAgeyAgMTc3LCAgICAgICAgMTc4LCAgICAgICAgMTc5ICB9LCAgICAgICAgICAvLyBBZGFyIEkKKyAgICAgICAgeyAgMjA2LCAgICAgICAgMjA3LCAgICAgICAgMjA4ICB9LCAgICAgICAgICAvLyBBZGFyIElJCisgICAgICAgIHsgIDIzNiwgICAgICAgIDIzNywgICAgICAgIDIzOCAgfSwgICAgICAgICAgLy8gTmlzYW4KKyAgICAgICAgeyAgMjY1LCAgICAgICAgMjY2LCAgICAgICAgMjY3ICB9LCAgICAgICAgICAvLyBJeWFyCisgICAgICAgIHsgIDI5NSwgICAgICAgIDI5NiwgICAgICAgIDI5NyAgfSwgICAgICAgICAgLy8gU2l2YW4KKyAgICAgICAgeyAgMzI0LCAgICAgICAgMzI1LCAgICAgICAgMzI2ICB9LCAgICAgICAgICAvLyBUYW1tdXoKKyAgICAgICAgeyAgMzU0LCAgICAgICAgMzU1LCAgICAgICAgMzU2ICB9LCAgICAgICAgICAvLyBBdgorICAgICAgICB7ICAzODMsICAgICAgICAzODQsICAgICAgICAzODUgIH0sICAgICAgICAgIC8vIEVsdWwKKyAgICB9OworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gRGF0YSBNZW1iZXJzLi4uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBwcml2YXRlIHN0YXRpYyBDYWxlbmRhckNhY2hlIGNhY2hlID0gbmV3IENhbGVuZGFyQ2FjaGUoKTsKKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdHJ1Y3RvcnMuLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBkZWZhdWx0IDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiB1c2luZyB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBIZWJyZXdDYWxlbmRhcigpIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SGVicmV3Q2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZ2l2ZW4gdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgVGhlIHRpbWUgem9uZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoVGltZVpvbmUgem9uZSkgeworICAgICAgICB0aGlzKHpvbmUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SGVicmV3Q2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGFMb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIGFMb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5IZWJyZXdDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSBsb2NhbGUgZm9yIHRoZSBuZXcgY2FsZW5kYXIuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcyhUaW1lWm9uZS5nZXREZWZhdWx0KCksIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSBUaGUgdGltZSB6b25lIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIGFMb2NhbGUgVGhlIGxvY2FsZSBmb3IgdGhlIG5ldyBjYWxlbmRhci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoVGltZVpvbmUgem9uZSwgTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoem9uZSwgYUxvY2FsZSk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSBUaGUgdGltZSB6b25lIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGZvciB0aGUgbmV3IGNhbGVuZGFyLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEhlYnJld0NhbGVuZGFyKFRpbWVab25lIHpvbmUsIFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHN1cGVyKHpvbmUsIGxvY2FsZSk7CisgICAgICAgIHNldFRpbWVJbk1pbGxpcyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjWUVBUiBZRUFSfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNT05USCBNT05USH0gdGltZSBmaWVsZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBUaXNocmkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoaW50IHllYXIsIGludCBtb250aCwgaW50IGRhdGUpIHsKKyAgICAgICAgc3VwZXIoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIHRoaXMuc2V0KFlFQVIsIHllYXIpOworICAgICAgICB0aGlzLnNldChNT05USCwgbW9udGgpOworICAgICAgICB0aGlzLnNldChEQVRFLCBkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SGVicmV3Q2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgZGF0ZSB0byB3aGljaCB0aGUgbmV3IGNhbGVuZGFyIGlzIHNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3Q2FsZW5kYXIoRGF0ZSBkYXRlKSB7CisgICAgICAgIHN1cGVyKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB0aGlzLnNldFRpbWUoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkhlYnJld0NhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlCisgICAgICogYW5kIHRpbWUgc2V0IGZvciB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IHRpbWUgZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgVGlzaHJpLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNEQVRFIERBVEV9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaG91ciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0hPVVJfT0ZfREFZIEhPVVJfT0ZfREFZfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIG1pbnV0ZSAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNSU5VVEUgTUlOVVRFfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIHNlY29uZCAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNTRUNPTkQgU0VDT05EfSB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBIZWJyZXdDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgeworICAgICAgICBzdXBlcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgdGhpcy5zZXQoWUVBUiwgeWVhcik7CisgICAgICAgIHRoaXMuc2V0KE1PTlRILCBtb250aCk7CisgICAgICAgIHRoaXMuc2V0KERBVEUsIGRhdGUpOworICAgICAgICB0aGlzLnNldChIT1VSX09GX0RBWSwgaG91cik7CisgICAgICAgIHRoaXMuc2V0KE1JTlVURSwgbWludXRlKTsKKyAgICAgICAgdGhpcy5zZXQoU0VDT05ELCBzZWNvbmQpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFJvbGxpbmcgYW5kIGFkZGluZyBmdW5jdGlvbnMgb3ZlcnJpZGRlbiBmcm9tIENhbGVuZGFyCisgICAgLy8KKyAgICAvLyBUaGVzZSBtZXRob2RzIGNhbGwgdGhyb3VnaCB0byB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpbiBJQk1DYWxlbmRhcgorICAgIC8vIGZvciBtb3N0IG9mIHRoZSBmaWVsZHMgYW5kIG9ubHkgaGFuZGxlIHRoZSB1bnVzdWFsIG9uZXMgdGhlbXNlbHZlcy4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEFkZCBhIHNpZ25lZCBhbW91bnQgdG8gYSBzcGVjaWZpZWQgZmllbGQsIHVzaW5nIHRoaXMgY2FsZW5kYXIncyBydWxlcy4KKyAgICAgKiBGb3IgZXhhbXBsZSwgdG8gYWRkIHRocmVlIGRheXMgdG8gdGhlIGN1cnJlbnQgZGF0ZSwgeW91IGNhbiBjYWxsCisgICAgICogPGNvZGU+YWRkKENhbGVuZGFyLkRBVEUsIDMpPC9jb2RlPi4gCisgICAgICogPHA+CisgICAgICogV2hlbiBhZGRpbmcgdG8gY2VydGFpbiBmaWVsZHMsIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzIG1heSBjb25mbGljdCBhbmQKKyAgICAgKiBuZWVkIHRvIGJlIGNoYW5nZWQuICBGb3IgZXhhbXBsZSwgd2hlbiBhZGRpbmcgb25lIHRvIHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZAorICAgICAqIGZvciB0aGUgZGF0ZSAiMzAgQXYgNTc1OCIsIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZpZWxkCisgICAgICogbXVzdCBiZSBhZGp1c3RlZCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgIjI5IEVsdWwgNTc1OCIgcmF0aGVyIHRoYW4gdGhlIGludmFsaWQKKyAgICAgKiAiMzAgRWx1bCA1NzU4Ii4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyBhYmxlIHRvIGFkZCB0bworICAgICAqIGFsbCBmaWVsZHMgZXhjZXB0IGZvciB7QGxpbmsgI0VSQSBFUkF9LCB7QGxpbmsgI0RTVF9PRkZTRVQgRFNUX09GRlNFVH0sCisgICAgICogYW5kIHtAbGluayAjWk9ORV9PRkZTRVQgWk9ORV9PRkZTRVR9LgorICAgICAqIDxwPgorICAgICAqIDxiPk5vdGU6PC9iPiBZb3Ugc2hvdWxkIGFsd2F5cyB1c2Uge0BsaW5rICNyb2xsIHJvbGx9IGFuZCBhZGQgcmF0aGVyCisgICAgICogdGhhbiBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25zIGRpcmVjdGx5IG9uIHRoZSBmaWVsZHMKKyAgICAgKiBvZiBhIDx0dD5IZWJyZXdDYWxlbmRhcjwvdHQ+LiAgU2luY2UgdGhlIHtAbGluayAjTU9OVEggTU9OVEh9IGZpZWxkIGJlaGF2ZXMKKyAgICAgKiBkaXNjb250aW51b3VzbHkgaW4gbm9uLWxlYXAgeWVhcnMsIHNpbXBsZSBhcml0aG1ldGljIGNhbiBnaXZlIGludmFsaWQgcmVzdWx0cy4KKyAgICAgKiA8cD4KKyAgICAgKiBAcGFyYW0gZmllbGQgICAgIHRoZSB0aW1lIGZpZWxkLgorICAgICAqIEBwYXJhbSBhbW91bnQgICAgdGhlIGFtb3VudCB0byBhZGQgdG8gdGhlIGZpZWxkLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiAgIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiB0aGUgZmllbGQgaXMgaW52YWxpZCBvciByZWZlcnMKKyAgICAgKiAgICAgICAgICAgICAgdG8gYSBmaWVsZCB0aGF0IGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHRoaXMgbWV0aG9kLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZChpbnQgZmllbGQsIGludCBhbW91bnQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgTU9OVEg6IAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFdlIGNhbid0IGp1c3QgZG8gYSBzZXQoTU9OVEgsIGdldChNT05USCkgKyBhbW91bnQpLiAgVGhlCisgICAgICAgICAgICAgICAgLy8gcmVhc29uIGlzIEFEQVJfMS4gIFN1cHBvc2UgYW1vdW50IGlzICsyIGFuZCB3ZSBsYW5kIGluCisgICAgICAgICAgICAgICAgLy8gQURBUl8xIC0tIHRoZW4gd2UgaGF2ZSB0byBidW1wIHRvIEFEQVJfMiBha2EgQURBUi4gIEJ1dAorICAgICAgICAgICAgICAgIC8vIGlmIGFtb3VudCBpcyAtMiBhbmQgd2UgbGFuZCBpbiBBREFSXzEsIHRoZW4gd2UgaGF2ZSB0bworICAgICAgICAgICAgICAgIC8vIGJ1bXAgdGhlIG90aGVyIHdheSAtLSBkb3duIHRvIFNIRVZBVC4gIC0gQWxhbiAxMS8wMAorICAgICAgICAgICAgICAgIGludCBtb250aCA9IGdldChNT05USCk7CisgICAgICAgICAgICAgICAgaW50IHllYXIgPSBnZXQoWUVBUik7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBhY3Jvc3NBZGFyMTsKKyAgICAgICAgICAgICAgICBpZiAoYW1vdW50ID4gMCkgeworICAgICAgICAgICAgICAgICAgICBhY3Jvc3NBZGFyMSA9IChtb250aCA8IEFEQVJfMSk7IC8vIHN0YXJ0ZWQgYmVmb3JlIEFEQVJfMT8KKyAgICAgICAgICAgICAgICAgICAgbW9udGggKz0gYW1vdW50OworICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWNyb3NzQWRhcjEgJiYgbW9udGg+PUFEQVJfMSAmJiAhaXNMZWFwWWVhcih5ZWFyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrbW9udGg7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9udGggPD0gRUxVTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbW9udGggLT0gRUxVTCsxOworICAgICAgICAgICAgICAgICAgICAgICAgKyt5ZWFyOworICAgICAgICAgICAgICAgICAgICAgICAgYWNyb3NzQWRhcjEgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYWNyb3NzQWRhcjEgPSAobW9udGggPiBBREFSXzEpOyAvLyBzdGFydGVkIGFmdGVyIEFEQVJfMT8KKyAgICAgICAgICAgICAgICAgICAgbW9udGggKz0gYW1vdW50OworICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWNyb3NzQWRhcjEgJiYgbW9udGg8PUFEQVJfMSAmJiAhaXNMZWFwWWVhcih5ZWFyKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tbW9udGg7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobW9udGggPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbW9udGggKz0gRUxVTCsxOworICAgICAgICAgICAgICAgICAgICAgICAgLS15ZWFyOworICAgICAgICAgICAgICAgICAgICAgICAgYWNyb3NzQWRhcjEgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldChNT05USCwgbW9udGgpOworICAgICAgICAgICAgICAgIHNldChZRUFSLCB5ZWFyKTsKKyAgICAgICAgICAgICAgICBwaW5GaWVsZChEQVlfT0ZfTU9OVEgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdXBlci5hZGQoZmllbGQsIGFtb3VudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJvbGxzICh1cC9kb3duKSBhIHNwZWNpZmllZCBhbW91bnQgdGltZSBvbiB0aGUgZ2l2ZW4gZmllbGQuICBGb3IKKyAgICAgKiBleGFtcGxlLCB0byByb2xsIHRoZSBjdXJyZW50IGRhdGUgdXAgYnkgdGhyZWUgZGF5cywgeW91IGNhbiBjYWxsCisgICAgICogPGNvZGU+cm9sbChDYWxlbmRhci5EQVRFLCAzKTwvY29kZT4uICBJZiB0aGUKKyAgICAgKiBmaWVsZCBpcyByb2xsZWQgcGFzdCBpdHMgbWF4aW11bSBhbGxvd2FibGUgdmFsdWUsIGl0IHdpbGwgIndyYXAiIGJhY2sKKyAgICAgKiB0byBpdHMgbWluaW11bSBhbmQgY29udGludWUgcm9sbGluZy4gIAorICAgICAqIEZvciBleGFtcGxlLCBjYWxsaW5nIDxjb2RlPnJvbGwoQ2FsZW5kYXIuREFURSwgMTApPC9jb2RlPgorICAgICAqIG9uIGEgSGVicmV3IGNhbGVuZGFyIHNldCB0byAiMjUgQXYgNTc1OCIgd2lsbCByZXN1bHQgaW4gdGhlIGRhdGUgIjUgQXYgNTc1OCIuCisgICAgICogPHA+CisgICAgICogV2hlbiByb2xsaW5nIGNlcnRhaW4gZmllbGRzLCB0aGUgdmFsdWVzIG9mIG90aGVyIGZpZWxkcyBtYXkgY29uZmxpY3QgYW5kCisgICAgICogbmVlZCB0byBiZSBjaGFuZ2VkLiAgRm9yIGV4YW1wbGUsIHdoZW4gcm9sbGluZyB0aGUge0BsaW5rICNNT05USCBNT05USH0gZmllbGQKKyAgICAgKiB1cHdhcmQgYnkgb25lIGZvciB0aGUgZGF0ZSAiMzAgQXYgNTc1OCIsIHRoZSB7QGxpbmsgI0RBWV9PRl9NT05USCBEQVlfT0ZfTU9OVEh9IGZpZWxkCisgICAgICogbXVzdCBiZSBhZGp1c3RlZCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgIjI5IEVsdWwgNTc1OCIgcmF0aGVyIHRoYW4gdGhlIGludmFsaWQKKyAgICAgKiAiMzAgRWx1bCIuCisgICAgICogPHA+CisgICAgICogVGhpcyBtZXRob2QgaXMgYWJsZSB0byByb2xsCisgICAgICogYWxsIGZpZWxkcyBleGNlcHQgZm9yIHtAbGluayAjRVJBIEVSQX0sIHtAbGluayAjRFNUX09GRlNFVCBEU1RfT0ZGU0VUfSwKKyAgICAgKiBhbmQge0BsaW5rICNaT05FX09GRlNFVCBaT05FX09GRlNFVH0uICBTdWJjbGFzc2VzIG1heSwgb2YgY291cnNlLCBhZGQgc3VwcG9ydCBmb3IKKyAgICAgKiBhZGRpdGlvbmFsIGZpZWxkcyBpbiB0aGVpciBvdmVycmlkZXMgb2YgPGNvZGU+cm9sbDwvY29kZT4uCisgICAgICogPHA+CisgICAgICogPGI+Tm90ZTo8L2I+IFlvdSBzaG91bGQgYWx3YXlzIHVzZSByb2xsIGFuZCB7QGxpbmsgI2FkZCBhZGR9IHJhdGhlcgorICAgICAqIHRoYW4gYXR0ZW1wdGluZyB0byBwZXJmb3JtIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBkaXJlY3RseSBvbiB0aGUgZmllbGRzCisgICAgICogb2YgYSA8dHQ+SGVicmV3Q2FsZW5kYXI8L3R0Pi4gIFNpbmNlIHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSBmaWVsZCBiZWhhdmVzCisgICAgICogZGlzY29udGludW91c2x5IGluIG5vbi1sZWFwIHllYXJzLCBzaW1wbGUgYXJpdGhtZXRpYyBjYW4gZ2l2ZSBpbnZhbGlkIHJlc3VsdHMuCisgICAgICogPHA+CisgICAgICogQHBhcmFtIGZpZWxkICAgICB0aGUgdGltZSBmaWVsZC4KKyAgICAgKiBAcGFyYW0gYW1vdW50ICAgIHRoZSBhbW91bnQgYnkgd2hpY2ggdGhlIGZpZWxkIHNob3VsZCBiZSByb2xsZWQuCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uICAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGlmIHRoZSBmaWVsZCBpcyBpbnZhbGlkIG9yIHJlZmVycworICAgICAqICAgICAgICAgICAgICB0byBhIGZpZWxkIHRoYXQgY2Fubm90IGJlIGhhbmRsZWQgYnkgdGhpcyBtZXRob2QuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgcm9sbChpbnQgZmllbGQsIGludCBhbW91bnQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGZpZWxkKSB7CisgICAgICAgIGNhc2UgTU9OVEg6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IG1vbnRoID0gZ2V0KE1PTlRIKTsKKyAgICAgICAgICAgICAgICBpbnQgeWVhciA9IGdldChZRUFSKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sZWFuIGxlYXBZZWFyID0gaXNMZWFwWWVhcih5ZWFyKTsKKyAgICAgICAgICAgICAgICBpbnQgeWVhckxlbmd0aCA9IG1vbnRoc0luWWVhcih5ZWFyKTsKKyAgICAgICAgICAgICAgICBpbnQgbmV3TW9udGggPSBtb250aCArIChhbW91bnQgJSB5ZWFyTGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8vIElmIGl0J3Mgbm90IGEgbGVhcCB5ZWFyIGFuZCB3ZSdyZSByb2xsaW5nIHBhc3QgdGhlIG1pc3NpbmcgbW9udGgKKyAgICAgICAgICAgICAgICAvLyBvZiBBREFSXzEsIHdlIG5lZWQgdG8gcm9sbCBhbiBleHRyYSBtb250aCB0byBtYWtlIHVwIGZvciBpdC4KKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIGlmICghbGVhcFllYXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFtb3VudCA+IDAgJiYgbW9udGggPCBBREFSXzEgJiYgbmV3TW9udGggPj0gQURBUl8xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdNb250aCsrOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFtb3VudCA8IDAgJiYgbW9udGggPiBBREFSXzEgJiYgbmV3TW9udGggPD0gQURBUl8xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdNb250aC0tOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldChNT05USCwgKG5ld01vbnRoICsgMTMpICUgMTMpOworICAgICAgICAgICAgICAgIHBpbkZpZWxkKERBWV9PRl9NT05USCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgc3VwZXIucm9sbChmaWVsZCwgYW1vdW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFN1cHBvcnQgbWV0aG9kcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gSGVicmV3IGRhdGUgY2FsY3VsYXRpb25zIGFyZSBwZXJmb3JtZWQgaW4gdGVybXMgb2YgZGF5cywgaG91cnMsIGFuZAorICAgIC8vICJwYXJ0cyIgKG9yIGhhbGFraW0pLCB3aGljaCBhcmUgMS8xMDgwIG9mIGFuIGhvdXIsIG9yIDMgMS8zIHNlY29uZHMuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBIT1VSX1BBUlRTID0gMTA4MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIERBWV9QQVJUUyAgPSAyNCpIT1VSX1BBUlRTOworICAgIAorICAgIC8vIEFuIGFwcHJveGltYXRlIHZhbHVlIGZvciB0aGUgbGVuZ3RoIG9mIGEgbHVuYXIgbW9udGguCisgICAgLy8gSXQgaXMgdXNlZCB0byBjYWxjdWxhdGUgdGhlIGFwcHJveGltYXRlIHllYXIgYW5kIG1vbnRoIG9mIGEgZ2l2ZW4KKyAgICAvLyBhYnNvbHV0ZSBkYXRlLgorICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGludCAgTU9OVEhfREFZUyA9IDI5OworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgTU9OVEhfRlJBQ1QgPSAxMipIT1VSX1BBUlRTICsgNzkzOworICAgIHN0YXRpYyBwcml2YXRlIGZpbmFsIGxvbmcgTU9OVEhfUEFSVFMgPSBNT05USF9EQVlTKkRBWV9QQVJUUyArIE1PTlRIX0ZSQUNUOworICAgIAorICAgIC8vIFRoZSB0aW1lIG9mIHRoZSBuZXcgbW9vbiAoaW4gcGFydHMpIG9uIDEgVGlzaHJpLCB5ZWFyIDEgKHRoZSBlcG9jaCkKKyAgICAvLyBjb3VudGluZyBmcm9tIG5vb24gb24gdGhlIGRheSBiZWZvcmUuICBCQUhBUkFEIGlzIGFuIGFiYnJldmlhdGlvbiBvZgorICAgIC8vIEJldCAoTW9uZGF5KSwgSGV5ICg1IGhvdXJzIGZyb20gc3Vuc2V0KSwgUmVzaC1EYWxlZCAoMjA0KS4KKyAgICBzdGF0aWMgcHJpdmF0ZSBmaW5hbCBsb25nIEJBSEFSQUQgPSAxMSpIT1VSX1BBUlRTICsgMjA0OworCisgICAgLyoqCisgICAgICogRmluZHMgdGhlIGRheSAjIG9mIHRoZSBmaXJzdCBkYXkgaW4gdGhlIGdpdmVuIEhlYnJldyB5ZWFyLgorICAgICAqIFRvIGRvIHRoaXMsIHdlIHdhbnQgdG8gY2FsY3VsYXRlIHRoZSB0aW1lIG9mIHRoZSBUaXNocmkgMSBuZXcgbW9vbgorICAgICAqIGluIHRoYXQgeWVhci4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgYWxnb3JpdGhtIGhlcmUgaXMgc2ltaWxhciB0byBvbmVzIGRlc2NyaWJlZCBpbiBhIG51bWJlciBvZgorICAgICAqIHJlZmVyZW5jZXMsIGluY2x1ZGluZzoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPiJDYWxlbmRyaWNhbCBDYWxjdWxhdGlvbnMiLCBieSBOYWNodW0gRGVyc2hvd2l0eiAmIEVkd2FyZCBSZWluZ29sZCwKKyAgICAgKiAgICAgQ2FtYnJpZGdlIFVuaXZlcnNpdHkgUHJlc3MsIDE5OTcsIHBhZ2VzIDg1LTkxLgorICAgICAqCisgICAgICogPGxpPkhlYnJldyBDYWxlbmRhciBTY2llbmNlIGFuZCBNeXRocywKKyAgICAgKiAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5nZW9jaXRpZXMuY29tL0F0aGVucy8xNTg0LyI+CisgICAgICogICAgIGh0dHA6Ly93d3cuZ2VvY2l0aWVzLmNvbS9BdGhlbnMvMTU4NC88L2E+CisgICAgICoKKyAgICAgKiA8bGk+VGhlIENhbGVuZGFyIEZBUSwKKyAgICAgKiAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuZmFxcy5vcmcvZmFxcy9jYWxlbmRhcnMvZmFxLyI+CisgICAgICogICAgICBodHRwOi8vd3d3LmZhcXMub3JnL2ZhcXMvY2FsZW5kYXJzL2ZhcS88L2E+CisgICAgICogPC91bD4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIHN0YXJ0T2ZZZWFyKGludCB5ZWFyKQorICAgIHsKKyAgICAgICAgbG9uZyBkYXkgPSBjYWNoZS5nZXQoeWVhcik7CisgICAgICAgIAorICAgICAgICBpZiAoZGF5ID09IENhbGVuZGFyQ2FjaGUuRU1QVFkpIHsKKyAgICAgICAgICAgIGludCBtb250aHMgPSAoMjM1ICogeWVhciAtIDIzNCkgLyAxOTsgICAgICAgICAgIC8vICMgb2YgbW9udGhzIGJlZm9yZSB5ZWFyCisKKyAgICAgICAgICAgIGxvbmcgZnJhYyA9IG1vbnRocyAqIE1PTlRIX0ZSQUNUICsgQkFIQVJBRDsgICAgIC8vIEZyYWN0aW9uYWwgcGFydCBvZiBkYXkgIworICAgICAgICAgICAgZGF5ICA9IG1vbnRocyAqIDI5ICsgKGZyYWMgLyBEQVlfUEFSVFMpOyAgICAgICAgLy8gV2hvbGUgIyBwYXJ0IG9mIGNhbGN1bGF0aW9uCisgICAgICAgICAgICBmcmFjID0gZnJhYyAlIERBWV9QQVJUUzsgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaW1lIG9mIGRheQorCisgICAgICAgICAgICBpbnQgd2QgPSAoaW50KShkYXkgJSA3KTsgICAgICAgICAgICAgICAgICAgICAgICAvLyBEYXkgb2Ygd2VlayAoMCA9PSBNb25kYXkpCisKKyAgICAgICAgICAgIGlmICh3ZCA9PSAyIHx8IHdkID09IDQgfHwgd2QgPT0gNikgeworICAgICAgICAgICAgICAgIC8vIElmIHRoZSAxc3QgaXMgb24gU3VuLCBXZWQsIG9yIEZyaSwgcG9zdHBvbmUgdG8gdGhlIG5leHQgZGF5CisgICAgICAgICAgICAgICAgZGF5ICs9IDE7CisgICAgICAgICAgICAgICAgd2QgPSAoaW50KShkYXkgJSA3KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh3ZCA9PSAxICYmIGZyYWMgPiAxNSpIT1VSX1BBUlRTKzIwNCAmJiAhaXNMZWFwWWVhcih5ZWFyKSApIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgbmV3IG1vb24gZmFsbHMgYWZ0ZXIgMzoxMToyMGFtICgxNWgyMDRwIGZyb20gdGhlIHByZXZpb3VzIG5vb24pCisgICAgICAgICAgICAgICAgLy8gb24gYSBUdWVzZGF5IGFuZCBpdCBpcyBub3QgYSBsZWFwIHllYXIsIHBvc3Rwb25lIGJ5IDIgZGF5cy4KKyAgICAgICAgICAgICAgICAvLyBUaGlzIHByZXZlbnRzIDM1Ni1kYXkgeWVhcnMuCisgICAgICAgICAgICAgICAgZGF5ICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICh3ZCA9PSAwICYmIGZyYWMgPiAyMSpIT1VSX1BBUlRTKzU4OSAmJiBpc0xlYXBZZWFyKHllYXItMSkgKSB7CisgICAgICAgICAgICAgICAgLy8gSWYgdGhlIG5ldyBtb29uIGZhbGxzIGFmdGVyIDk6MzI6NDMgMS8zYW0gKDIxaDU4OXAgZnJvbSB5ZXN0ZXJkYXkgbm9vbikKKyAgICAgICAgICAgICAgICAvLyBvbiBhIE1vbmRheSBhbmQgKmxhc3QqIHllYXIgd2FzIGEgbGVhcCB5ZWFyLCBwb3N0cG9uZSBieSAxIGRheS4KKyAgICAgICAgICAgICAgICAvLyBQcmV2ZW50cyAzODItZGF5IHllYXJzLgorICAgICAgICAgICAgICAgIGRheSArPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FjaGUucHV0KHllYXIsIGRheSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5kIHRoZSBkYXkgb2YgdGhlIHdlZWsgZm9yIGEgZ2l2ZW4gZGF5CisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF5ICAgVGhlICMgb2YgZGF5cyBzaW5jZSB0aGUgc3RhcnQgb2YgdGhlIEhlYnJldyBjYWxlbmRhciwKKyAgICAgKiAgICAgICAgICAgICAgMS1iYXNlZCAoaS5lLiAxLzEvMSBBTSBpcyBkYXkgMSkuCisgICAgICovCisgICAgLy8vQ0xPVkVSOk9GRgorICAgIHByaXZhdGUgc3RhdGljIGludCBhYnNvbHV0ZURheVRvRGF5T2ZXZWVrKGxvbmcgZGF5KQorICAgIHsKKyAgICAgICAgLy8gV2Uga25vdyB0aGF0IDEvMS8xIEFNIGlzIGEgTW9uZGF5LCB3aGljaCBtYWtlcyB0aGUgbWF0aCBlYXN5Li4uCisgICAgICAgIHJldHVybiAoaW50KShkYXkgJSA3KSArIDE7CisgICAgfQorICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGhlIHR5cGUgb2YgYSBnaXZlbiB5ZWFyLgorICAgICAqICAwICAgIkRlZmljaWVudCIgeWVhciB3aXRoIDM1MyBvciAzODMgZGF5cworICAgICAqICAxICAgIk5vcm1hbCIgICAgeWVhciB3aXRoIDM1NCBvciAzODQgZGF5cworICAgICAqICAyICAgIkNvbXBsZXRlIiAgeWVhciB3aXRoIDM1NSBvciAzODUgZGF5cworICAgICAqLworICAgIHByaXZhdGUgZmluYWwgaW50IHllYXJUeXBlKGludCB5ZWFyKQorICAgIHsKKyAgICAgICAgaW50IHllYXJMZW5ndGggPSBoYW5kbGVHZXRZZWFyTGVuZ3RoKHllYXIpOworCisgICAgICAgIGlmICh5ZWFyTGVuZ3RoID4gMzgwKSB7CisgICAgICAgICAgIHllYXJMZW5ndGggLT0gMzA7ICAgICAgICAvLyBTdWJ0cmFjdCBsZW5ndGggb2YgbGVhcCBtb250aC4KKyAgICAgICAgfQorCisgICAgICAgIGludCB0eXBlID0gMDsKKworICAgICAgICBzd2l0Y2ggKHllYXJMZW5ndGgpIHsKKyAgICAgICAgICAgIGNhc2UgMzUzOgorICAgICAgICAgICAgICAgIHR5cGUgPSAwOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMzU0OgorICAgICAgICAgICAgICAgIHR5cGUgPSAxOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMzU1OgorICAgICAgICAgICAgICAgIHR5cGUgPSAyOyBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCB5ZWFyIGxlbmd0aCAiICsgeWVhckxlbmd0aCArICIgaW4geWVhciAiICsgeWVhcik7CisKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHlwZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmUgd2hldGhlciBhIGdpdmVuIEhlYnJldyB5ZWFyIGlzIGEgbGVhcCB5ZWFyCisgICAgICoKKyAgICAgKiBUaGUgcnVsZSBoZXJlIGlzIHRoYXQgaWYgKHllYXIgJSAxOSkgPT0gMCwgMywgNiwgOCwgMTEsIDE0LCBvciAxNy4KKyAgICAgKiBUaGUgZm9ybXVsYSBiZWxvdyBwZXJmb3JtcyB0aGUgc2FtZSB0ZXN0LCBiZWxpZXZlIGl0IG9yIG5vdC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGlzTGVhcFllYXIoaW50IHllYXIpIHsKKyAgICAgICAgLy9yZXR1cm4gKHllYXIgKiAxMiArIDE3KSAlIDE5ID49IDEyOworICAgICAgICBpbnQgeCA9ICh5ZWFyKjEyICsgMTcpICUgMTk7CisgICAgICAgIHJldHVybiB4ID49ICgoeCA8IDApID8gLTcgOiAxMik7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG1vbnRoc0luWWVhcihpbnQgeWVhcikgeworICAgICAgICByZXR1cm4gaXNMZWFwWWVhcih5ZWFyKSA/IDEzIDogMTI7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ2FsZW5kYXIgZnJhbWV3b3JrCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldExpbWl0KGludCBmaWVsZCwgaW50IGxpbWl0VHlwZSkgeworICAgICAgICByZXR1cm4gTElNSVRTW2ZpZWxkXVtsaW1pdFR5cGVdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgZ2l2ZW4gbW9udGggaW4gdGhlIGdpdmVuIHllYXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldE1vbnRoTGVuZ3RoKGludCBleHRlbmRlZFllYXIsIGludCBtb250aCkgeworCisgICAgICAgIHN3aXRjaCAobW9udGgpIHsKKyAgICAgICAgICAgIGNhc2UgSEVTSFZBTjoKKyAgICAgICAgICAgIGNhc2UgS0lTTEVWOgorICAgICAgICAgICAgICAgIC8vIFRoZXNlIHR3byBtb250aCBsZW5ndGhzIGNhbiB2YXJ5CisgICAgICAgICAgICAgICAgcmV0dXJuIE1PTlRIX0xFTkdUSFttb250aF1beWVhclR5cGUoZXh0ZW5kZWRZZWFyKV07CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIC8vIFRoZSByZXN0IGFyZSBhIGZpeGVkIGxlbmd0aAorICAgICAgICAgICAgICAgIHJldHVybiBNT05USF9MRU5HVEhbbW9udGhdWzBdOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhlIGdpdmVuIEhlYnJldyB5ZWFyCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRZZWFyTGVuZ3RoKGludCBleWVhcikgeworICAgICAgICByZXR1cm4gKGludCkoc3RhcnRPZlllYXIoZXllYXIrMSkgLSBzdGFydE9mWWVhcihleWVhcikpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEZ1bmN0aW9ucyBmb3IgY29udmVydGluZyBmcm9tIG1pbGxpc2Vjb25kcyB0byBmaWVsZCB2YWx1ZXMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFN1YmNsYXNzZXMgbWF5IG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGNvbXB1dGUgc2V2ZXJhbCBmaWVsZHMKKyAgICAgKiBzcGVjaWZpYyB0byBlYWNoIGNhbGVuZGFyIHN5c3RlbS4gIFRoZXNlIGFyZToKKyAgICAgKgorICAgICAqIDx1bD48bGk+RVJBCisgICAgICogPGxpPllFQVIKKyAgICAgKiA8bGk+TU9OVEgKKyAgICAgKiA8bGk+REFZX09GX01PTlRICisgICAgICogPGxpPkRBWV9PRl9ZRUFSCisgICAgICogPGxpPkVYVEVOREVEX1lFQVI8L3VsPgorICAgICAqIAorICAgICAqIFN1YmNsYXNzZXMgY2FuIHJlZmVyIHRvIHRoZSBEQVlfT0ZfV0VFSyBhbmQgRE9XX0xPQ0FMIGZpZWxkcywKKyAgICAgKiB3aGljaCB3aWxsIGJlIHNldCB3aGVuIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4gIFN1YmNsYXNzZXMgY2FuCisgICAgICogYWxzbyBjYWxsIHRoZSBnZXRHcmVnb3JpYW5YeHgoKSBtZXRob2RzIHRvIG9idGFpbiBHcmVnb3JpYW4KKyAgICAgKiBjYWxlbmRhciBlcXVpdmFsZW50cyBmb3IgdGhlIGdpdmVuIEp1bGlhbiBkYXkuCisgICAgICoKKyAgICAgKiA8cD5JbiBhZGRpdGlvbiwgc3ViY2xhc3NlcyBzaG91bGQgY29tcHV0ZSBhbnkgc3ViY2xhc3Mtc3BlY2lmaWMKKyAgICAgKiBmaWVsZHMsIHRoYXQgaXMsIGZpZWxkcyBmcm9tIEJBU0VfRklFTERfQ09VTlQgdG8KKyAgICAgKiBnZXRGaWVsZENvdW50KCkgLSAxLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUNvbXB1dGVGaWVsZHMoaW50IGp1bGlhbkRheSkgeworICAgICAgICBsb25nIGQgPSBqdWxpYW5EYXkgLSAzNDc5OTc7CisgICAgICAgIGxvbmcgbSA9IChkICogREFZX1BBUlRTKSAvIE1PTlRIX1BBUlRTOyAgICAgICAgIC8vIE1vbnRocyAoYXBwcm94KQorICAgICAgICBpbnQgeWVhciA9IChpbnQpKCgxOSAqIG0gKyAyMzQpIC8gMjM1KSArIDE7ICAgICAvLyBZZWFycyAoYXBwcm94KQorICAgICAgICBsb25nIHlzICA9IHN0YXJ0T2ZZZWFyKHllYXIpOyAgICAgICAgICAgICAgICAgICAvLyAxc3QgZGF5IG9mIHllYXIKKyAgICAgICAgaW50IGRheU9mWWVhciA9IChpbnQpKGQgLSB5cyk7CisKKyAgICAgICAgLy8gQmVjYXVzZSBvZiB0aGUgcG9zdHBvbmVtZW50IHJ1bGVzLCBpdCdzIHBvc3NpYmxlIHRvIGd1ZXNzIHdyb25nLiAgRml4IGl0LgorICAgICAgICB3aGlsZSAoZGF5T2ZZZWFyIDwgMSkgeworICAgICAgICAgICAgeWVhci0tOworICAgICAgICAgICAgeXMgID0gc3RhcnRPZlllYXIoeWVhcik7CisgICAgICAgICAgICBkYXlPZlllYXIgPSAoaW50KShkIC0geXMpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTm93IGZpZ3VyZSBvdXQgd2hpY2ggbW9udGggd2UncmUgaW4sIGFuZCB0aGUgZGF0ZSB3aXRoaW4gdGhhdCBtb250aAorICAgICAgICBpbnQgeWVhclR5cGUgPSB5ZWFyVHlwZSh5ZWFyKTsKKyAgICAgICAgaW50IG1vbnRoU3RhcnRbXVtdID0gaXNMZWFwWWVhcih5ZWFyKSA/IExFQVBfTU9OVEhfU1RBUlQgOiBNT05USF9TVEFSVDsKKworICAgICAgICBpbnQgbW9udGggPSAwOworICAgICAgICB3aGlsZSAoZGF5T2ZZZWFyID4gbW9udGhTdGFydFttb250aF1beWVhclR5cGVdKSB7CisgICAgICAgICAgICBtb250aCsrOworICAgICAgICB9CisgICAgICAgIG1vbnRoLS07CisgICAgICAgIGludCBkYXlPZk1vbnRoID0gZGF5T2ZZZWFyIC0gbW9udGhTdGFydFttb250aF1beWVhclR5cGVdOworCisgICAgICAgIGludGVybmFsU2V0KEVSQSwgMCk7CisgICAgICAgIGludGVybmFsU2V0KFlFQVIsIHllYXIpOworICAgICAgICBpbnRlcm5hbFNldChFWFRFTkRFRF9ZRUFSLCB5ZWFyKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX01PTlRILCBkYXlPZk1vbnRoKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoREFZX09GX1lFQVIsIGRheU9mWWVhcik7ICAgICAgIAorICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEZ1bmN0aW9ucyBmb3IgY29udmVydGluZyBmcm9tIGZpZWxkIHZhbHVlcyB0byBtaWxsaXNlY29uZHMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCkgeworICAgICAgICBpbnQgeWVhcjsKKyAgICAgICAgaWYgKG5ld2VyRmllbGQoRVhURU5ERURfWUVBUiwgWUVBUikgPT0gRVhURU5ERURfWUVBUikgeworICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KEVYVEVOREVEX1lFQVIsIDEpOyAvLyBEZWZhdWx0IHRvIHllYXIgMQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgeWVhciA9IGludGVybmFsR2V0KFlFQVIsIDEpOyAvLyBEZWZhdWx0IHRvIHllYXIgMQorICAgICAgICB9CisgICAgICAgIHJldHVybiB5ZWFyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBKRCBvZiBzdGFydCBvZiBnaXZlbiBtb250aC95ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlQ29tcHV0ZU1vbnRoU3RhcnQoaW50IGV5ZWFyLCBpbnQgbW9udGgsIGJvb2xlYW4gdXNlTW9udGgpIHsKKworICAgICAgICAvLyBSZXNvbHZlIG91dC1vZi1yYW5nZSBtb250aHMuICBUaGlzIGlzIG5lY2Vzc2FyeSBpbiBvcmRlciB0bworICAgICAgICAvLyBvYnRhaW4gdGhlIGNvcnJlY3QgeWVhci4gIFdlIGNvcnJlY3QgdG8KKyAgICAgICAgLy8gYSAxMi0gb3IgMTMtbW9udGggeWVhciAoYWRkL3N1YnRyYWN0IDEyIG9yIDEzLCBkZXBlbmRpbmcKKyAgICAgICAgLy8gb24gdGhlIHllYXIpIGJ1dCBzaW5jZSB3ZSBfYWx3YXlzXyBudW1iZXIgZnJvbSAwLi4xMiwgYW5kCisgICAgICAgIC8vIHRoZSBsZWFwIHllYXIgZGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCBtb250aCA1IChBZGFyIDEpCisgICAgICAgIC8vIGlzIHByZXNlbnQsIHdlIGFsbG93IDAuLjEyIGluIGFueSBnaXZlbiB5ZWFyLgorICAgICAgICB3aGlsZSAobW9udGggPCAwKSB7CisgICAgICAgICAgICBtb250aCArPSBtb250aHNJblllYXIoLS1leWVhcik7CisgICAgICAgIH0KKyAgICAgICAgLy8gQ2FyZWZ1bDogYWxsb3cgMC4uMTIgaW4gYWxsIHllYXJzCisgICAgICAgIHdoaWxlIChtb250aCA+IDEyKSB7CisgICAgICAgICAgICBtb250aCAtPSBtb250aHNJblllYXIoZXllYXIrKyk7CisgICAgICAgIH0KKworICAgICAgICBsb25nIGRheSA9IHN0YXJ0T2ZZZWFyKGV5ZWFyKTsKKworICAgICAgICBpZiAobW9udGggIT0gMCkgeworICAgICAgICAgICAgaWYgKGlzTGVhcFllYXIoZXllYXIpKSB7CisgICAgICAgICAgICAgICAgZGF5ICs9IExFQVBfTU9OVEhfU1RBUlRbbW9udGhdW3llYXJUeXBlKGV5ZWFyKV07CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRheSArPSBNT05USF9TVEFSVFttb250aF1beWVhclR5cGUoZXllYXIpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAoaW50KSAoZGF5ICsgMzQ3OTk3KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQ2FsZW5kYXIgdHlwZS4KKyAgICAgKiBAcmV0dXJuIHR5cGUgb2YgY2FsZW5kYXIgKGdyZWdvcmlhbiwgZXRjLikKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VHlwZSgpIHsKKyAgICAgICAgcmV0dXJuICJoZWJyZXciOworICAgIH0KKworICAgIC8qCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2FsZW5kYXJGYWN0b3J5IGZhY3Rvcnk7CisgICAgcHVibGljIHN0YXRpYyBDYWxlbmRhckZhY3RvcnkgZmFjdG9yeSgpIHsKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgZmFjdG9yeSA9IG5ldyBDYWxlbmRhckZhY3RvcnkoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIENhbGVuZGFyIGNyZWF0ZShUaW1lWm9uZSB0eiwgVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBIZWJyZXdDYWxlbmRhcih0eiwgbG9jKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwdWJsaWMgU3RyaW5nIGZhY3RvcnlOYW1lKCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkhlYnJldyI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFjdG9yeTsKKyAgICB9CisgICAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0hlYnJld0hvbGlkYXkuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0hlYnJld0hvbGlkYXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMWZmZjRhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSGVicmV3SG9saWRheS5qYXZhCkBAIC0wLDAgKzEsMTgyIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKKy8qKgorICogQGRyYWZ0IElDVSAyLjggKHJldGFpbkFsbCkKKyAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICovCitwdWJsaWMgY2xhc3MgSGVicmV3SG9saWRheSBleHRlbmRzIEhvbGlkYXkKK3sKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBIZWJyZXdDYWxlbmRhciBnQ2FsZW5kYXIgPSBuZXcgSGVicmV3Q2FsZW5kYXIoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIGhvbGlkYXkgZGVmaW5lZCBpbiByZWZlcmVuY2UgdG8gdGhlIEhlYnJldyBjYWxlbmRhci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBob2xpZGF5CisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSGVicmV3SG9saWRheShpbnQgbW9udGgsIGludCBkYXRlLCBTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIHRoaXMobW9udGgsIGRhdGUsIDEsIG5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIEhlYnJld0hvbGlkYXkoaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGxlbmd0aCwgU3RyaW5nIG5hbWUpCisgICAgeworICAgICAgICBzdXBlcihuYW1lLCBuZXcgU2ltcGxlRGF0ZVJ1bGUobW9udGgsIGRhdGUsIGdDYWxlbmRhcikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFJPU0hfSEFTSEFOQUggICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlRJU0hSSSwgIDEsICAyLCAgIlJvc2ggSGFzaGFuYWgiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IEdFREFMSUFIICAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlRJU0hSSSwgIDMsICAgICAgIkZhc3Qgb2YgR2VkYWxpYWgiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFlPTV9LSVBQVVIgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlRJU0hSSSwgMTAsICAgICAgIllvbSBLaXBwdXIiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFNVS0tPVCAgICAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlRJU0hSSSwgMTUsICA2LCAgIlN1a2tvdCIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgSE9TSEFOQUhfUkFCQkFIID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuVElTSFJJLCAyMSwgICAgICAiSG9zaGFuYWggUmFiYmFoIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBTSEVNSU5JX0FUWkVSRVQgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5USVNIUkksIDIyLCAgICAgICJTaGVtaW5pIEF0emVyZXQiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFNJTUNIQVRfVE9SQUggICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLlRJU0hSSSwgMjMsICAgICAgIlNpbWNoYXQgVG9yYWgiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IEhBTlVLS0FIICAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLktJU0xFViwgMjUsICAgICAgIkhhbnVra2FoIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBURVZFVF8xMCAgICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5URVZFVCwgIDEwLCAgICAgICJGYXN0IG9mIFRldmV0IDEwIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBUVV9CU0hFVkFUICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5TSEVWQVQsIDE1LCAgICAgICJUdSBCJ1NoZXZhdCIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgRVNUSEVSICAgICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuQURBUiwgICAxMywgICAgICAiRmFzdCBvZiBFc3RoZXIiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFBVUklNICAgICAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLkFEQVIsICAgMTQsICAgICAgIlB1cmltIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBTSFVTSEFOX1BVUklNICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5BREFSLCAgIDE1LCAgICAgICJTaHVzaGFuIFB1cmltIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBQQVNTT1ZFUiAgICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5OSVNBTiwgIDE1LCAgOCwgICJQYXNzb3ZlciIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgWU9NX0hBU0hPQUggICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuTklTQU4sICAyNywgICAgICAiWW9tIEhhc2hvYWgiKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFlPTV9IQVpJS0FST04gICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLklZQVIsICAgIDQsICAgICAgIllvbSBIYXppa2Fyb24iKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFlPTV9IQUFUWk1BVVQgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLklZQVIsICAgIDUsICAgICAgIllvbSBIYSdBdHptYXV0Iik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBQRVNBQ0hfU0hFSU5JICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5JWUFSLCAgIDE0LCAgICAgICJQZXNhY2ggU2hlaW5pIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBMQUdfQk9NRVIgICAgICAgPSBuZXcgSGVicmV3SG9saWRheShIZWJyZXdDYWxlbmRhci5JWUFSLCAgIDE4LCAgICAgICJMYWIgQidPbWVyIik7CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSGVicmV3SG9saWRheSBZT01fWUVSVVNIQUxBWUlNID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuSVlBUiwgICAyOCwgICAgICAiWW9tIFllcnVzaGFsYXlpbSIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgU0hBVlVPVCAgICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuU0lWQU4sICAgNiwgIDIsICAiU2hhdnVvdCIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgVEFNTVVaXzE3ICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuVEFNVVosICAxNywgICAgICAiRmFzdCBvZiBUYW1tdXogMTciKTsKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIZWJyZXdIb2xpZGF5IFRJU0hBX0JBViAgICAgICA9IG5ldyBIZWJyZXdIb2xpZGF5KEhlYnJld0NhbGVuZGFyLkFWLCAgICAgIDksICAgICAgIkZhc3Qgb2YgVGlzaGEgQidBdiIpOworCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhlYnJld0hvbGlkYXkgU0VMSUhPVCAgICAgICAgID0gbmV3IEhlYnJld0hvbGlkYXkoSGVicmV3Q2FsZW5kYXIuRUxVTCwgICAyMSwgICAgICAiU2VsaWhvdCIpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSG9saWRheS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSG9saWRheS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFjYTc1MTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Ib2xpZGF5LmphdmEKQEAgLTAsMCArMSwyMDkgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CisKKy8qKgorICogQW4gYWJzdHJhY3QgY2xhc3MgcmVwcmVzZW50aW5nIGEgaG9saWRheS4KKyAqIEBkcmFmdCBJQ1UgMi44IChyZXRhaW5BbGwpCisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIEhvbGlkYXkgaW1wbGVtZW50cyBEYXRlUnVsZQoreworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBIb2xpZGF5W10gZ2V0SG9saWRheXMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEhvbGlkYXlzKFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSG9saWRheVtdIGdldEhvbGlkYXlzKExvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0SG9saWRheXMoVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEhvbGlkYXlbXSBnZXRIb2xpZGF5cyhVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIEhvbGlkYXlbXSByZXN1bHQgPSBub0hvbGlkYXlzOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSBVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoIkhvbGlkYXlCdW5kbGUiLCBsb2NhbGUpOworCisgICAgICAgICAgICByZXN1bHQgPSAoSG9saWRheVtdKSBidW5kbGUuZ2V0T2JqZWN0KCJob2xpZGF5cyIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoaXMgaG9saWRheSBvbiBvciBhZnRlciB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqCisgICAgICogQHBhcmFtIHN0YXJ0IE9ubHkgaG9saWRheXMgb24gb3IgYWZ0ZXIgdGhpcyBkYXRlIGFyZSByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICBUaGUgZGF0ZSBvbiB3aGljaCB0aGlzIGhvbGlkYXkgb2NjdXJzLCBvciBudWxsIGlmIGl0CisgICAgICogICAgICAgICAgICAgIGRvZXMgbm90IG9jY3VyIG9uIG9yIGFmdGVyIHRoZSBzdGFydCBkYXRlLgorICAgICAqCisgICAgICogQHNlZSAjZmlyc3RCZXR3ZWVuCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBmaXJzdEFmdGVyKERhdGUgc3RhcnQpIHsKKyAgICAgICAgcmV0dXJuIHJ1bGUuZmlyc3RBZnRlcihzdGFydCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoaXMgaG9saWRheSB0aGF0IGlzIG9uIG9yIGFmdGVyCisgICAgICogdGhlIGdpdmVuIHN0YXJ0IGRhdGUgYW5kIGJlZm9yZSB0aGUgZ2l2ZW4gZW5kIGRhdGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgT25seSBvY2N1cnJhbmNlcyBvbiBvciBhZnRlciB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqIEBwYXJhbSBlbmQgICBPbmx5IG9jY3VycmFuY2VzIGJlZm9yZSB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSBkYXRlIG9uIHdoaWNoIHRoaXMgZXZlbnQgb2NjdXJzLCBvciBudWxsIGlmIGl0CisgICAgICogICAgICAgICAgICAgIGRvZXMgbm90IG9jY3VyIGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgZGF0ZXMuCisgICAgICoKKyAgICAgKiBAc2VlICNmaXJzdEFmdGVyCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBmaXJzdEJldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpIHsKKyAgICAgICAgcmV0dXJuIHJ1bGUuZmlyc3RCZXR3ZWVuKHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyB3aGV0aGVyIHRoaXMgaG9saWRheSBmYWxscyBvbiB0aGUgZ2l2ZW4gZGF0ZS4gIFRoaXMgZG9lcworICAgICAqIDxlbT5ub3Q8L2VtPiB0YWtlIHRpbWUgb2YgZGF5IGludG8gYWNjb3VudDsgaW5zdGVhZCBpdCBjaGVja3MKKyAgICAgKiB3aGV0aGVyIHRoZSBob2xpZGF5IGFuZCB0aGUgZ2l2ZW4gZGF0ZSBhcmUgb24gdGhlIHNhbWUgZGF5LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgIFRoZSBkYXRlIHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gICAgICB0cnVlIGlmIHRoaXMgaG9saWRheSBvY2N1cnMgb24gdGhlIGdpdmVuIGRhdGUuCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc09uKERhdGUgZGF0ZSkgeworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbihuYW1lICsgIi5pc09uKCIgKyBkYXRlLnRvU3RyaW5nKCkgKyAiKToiKTsKKyAgICAgICAgcmV0dXJuIHJ1bGUuaXNPbihkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayB3aGV0aGVyIHRoaXMgaG9saWRheSBvY2N1cnMgYXQgbGVhc3Qgb25jZSBiZXR3ZWVuIHRoZSB0d28KKyAgICAgKiBkYXRlcyBnaXZlbi4KKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzQmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCkgeworICAgICAgICByZXR1cm4gcnVsZS5pc0JldHdlZW4oc3RhcnQsIGVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IEhvbGlkYXkgb2JqZWN0LiAgVGhpcyBpcyBmb3IgdXNlIGJ5IHN1YmNsYXNzZXMgb25seS4KKyAgICAgKiBUaGlzIGNvbnN0cnVjdHMgYSBuZXcgaG9saWRheSB3aXRoIHRoZSBnaXZlbiBuYW1lIGFuZCBkYXRlIHJ1bGVzLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgIFRoZSBuYW1lIG9mIHRoaXMgaG9saWRheS4gIFRoZSBnZXREaXNwbGF5TmFtZSBtZXRob2QKKyAgICAgKiAgICAgICAgICAgICAgdXNlcyB0aGlzIHN0cmluZyBhcyBhIGtleSB0byBsb29rIHVwIHRoZSBob2xpZGF5J3MgbmFtZSBhCisgICAgICogICAgICAgICAgICAgIHJlc291cmNlIGJ1bmRsZSBvYmplY3QgbmFtZWQgSG9saWRheUJ1bmRsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBydWxlICBUaGUgZGF0ZSBydWxlcyB1c2VkIGZvciBkZXRlcm1pbmluZyB3aGVuIHRoaXMgaG9saWRheQorICAgICAqICAgICAgICAgICAgICBmYWxscy4gIEhvbGlkYXkncyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRGF0ZVJ1bGUgaW50ZWZhY2UKKyAgICAgKiAgICAgICAgICAgICAgc2ltcGx5IGRlbGVnYXRlcyB0byB0aGlzIERhdGVSdWxlIG9iamVjdC4KKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBIb2xpZGF5KFN0cmluZyBuYW1lLCBEYXRlUnVsZSBydWxlKQorICAgIHsKKyAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKKyAgICAgICAgdGhpcy5ydWxlID0gcnVsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhpcyBob2xpZGF5IGluIHRoZSBsYW5ndWFnZSBvZiB0aGUgZGVmYXVsdCBsb2NhbGUKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZShVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoaXMgaG9saWRheSBpbiB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBUaGUgPGNvZGU+bmFtZTwvY29kZT4gcGFyYW1ldGVyIHBhc3NlZCB0byB0aGlzIG9iamVjdCdzIGNvbnN0cnVjdG9yIGlzIHVzZWQKKyAgICAgKiBhcyBhIGtleSB0byBsb29rIHVwIHRoZSBob2xpZGF5J3MgbG9jYWxpemVkIG5hbWUgaW4gYSBSZXNvdXJjZUJ1bmRsZSBvYmplY3QKKyAgICAgKiBuYW1lZCBIb2xpZGF5QnVuZGxlLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSAgIEEgbG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIGluIHdoaWNoIHRoZSBuYW1lIGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAc2VlIFJlc291cmNlQnVuZGxlCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKExvY2FsZSBsb2NhbGUpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWUoVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoaXMgaG9saWRheSBpbiB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBUaGUgPGNvZGU+bmFtZTwvY29kZT4gcGFyYW1ldGVyIHBhc3NlZCB0byB0aGlzIG9iamVjdCdzIGNvbnN0cnVjdG9yIGlzIHVzZWQKKyAgICAgKiBhcyBhIGtleSB0byBsb29rIHVwIHRoZSBob2xpZGF5J3MgbG9jYWxpemVkIG5hbWUgaW4gYSBSZXNvdXJjZUJ1bmRsZSBvYmplY3QKKyAgICAgKiBuYW1lZCBIb2xpZGF5QnVuZGxlLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSAgIEEgbG9jYWxlIHNwZWNpZnlpbmcgdGhlIGxhbmd1YWdlIGluIHdoaWNoIHRoZSBuYW1lIGlzIGRlc2lyZWQuCisgICAgICoKKyAgICAgKiBAc2VlIFJlc291cmNlQnVuZGxlCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSB0aGlzLm5hbWU7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiSG9saWRheUJ1bmRsZSIsIGxvY2FsZSk7CisgICAgICAgICAgICBuYW1lID0gYnVuZGxlLmdldFN0cmluZyhuYW1lKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJVc2luZyBkZWZhdWx0IGRpc3BsYXkgbmFtZSBmb3IgIiArIG5hbWUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIERhdGVSdWxlIGdldFJ1bGUoKSB7CisgICAgICAgIHJldHVybiBydWxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UnVsZShEYXRlUnVsZSBydWxlKSB7CisgICAgICAgIHRoaXMucnVsZSA9IHJ1bGU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgICAgICBuYW1lOworICAgIHByaXZhdGUgRGF0ZVJ1bGUgICAgcnVsZTsKKworICAgIHByaXZhdGUgc3RhdGljIEhvbGlkYXlbXSBub0hvbGlkYXlzID0ge307Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9Jc2xhbWljQ2FsZW5kYXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0lzbGFtaWNDYWxlbmRhci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNjZGE2MjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Jc2xhbWljQ2FsZW5kYXIuamF2YQpAQCAtMCwwICsxLDY3MSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLlRpbWVab25lOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJBc3Ryb25vbWVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuQ2FsZW5kYXJDYWNoZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gaXMgYSBzdWJjbGFzcyBvZiA8Y29kZT5DYWxlbmRhcjwvY29kZT4KKyAqIHRoYXQgdGhhdCBpbXBsZW1lbnRzIHRoZSBJc2xhbWljIGNpdmlsIGFuZCByZWxpZ2lvdXMgY2FsZW5kYXJzLiAgSXQKKyAqIGlzIHVzZWQgYXMgdGhlIGNpdmlsIGNhbGVuZGFyIGluIG1vc3Qgb2YgdGhlIEFyYWIgd29ybGQgYW5kIHRoZQorICogbGl0dXJnaWNhbCBjYWxlbmRhciBvZiB0aGUgSXNsYW1pYyBmYWl0aCB3b3JsZHdpZGUuICBUaGlzIGNhbGVuZGFyCisgKiBpcyBhbHNvIGtub3duIGFzIHRoZSAiSGlqcmkiIGNhbGVuZGFyLCBzaW5jZSBpdCBzdGFydHMgYXQgdGhlIHRpbWUKKyAqIG9mIE1vaGFtbWVkJ3MgZW1pZ3JhdGlvbiAob3IgImhpanJhIikgdG8gTWVkaW5haCBvbiBUaHVyc2RheSwgCisgKiBKdWx5IDE1LCA2MjIgQUQgKEp1bGlhbikuCisgKiA8cD4KKyAqIFRoZSBJc2xhbWljIGNhbGVuZGFyIGlzIHN0cmljdGx5IGx1bmFyLCBhbmQgdGh1cyBhbiBJc2xhbWljIHllYXIgb2YgdHdlbHZlCisgKiBsdW5hciBtb250aHMgZG9lcyBub3QgY29ycmVzcG9uZCB0byB0aGUgc29sYXIgeWVhciB1c2VkIGJ5IG1vc3Qgb3RoZXIKKyAqIGNhbGVuZGFyIHN5c3RlbXMsIGluY2x1ZGluZyB0aGUgR3JlZ29yaWFuLiAgQW4gSXNsYW1pYyB5ZWFyIGlzLCBvbiBhdmVyYWdlLAorICogYWJvdXQgMzU0IGRheXMgbG9uZywgc28gZWFjaCBzdWNjZXNzaXZlIElzbGFtaWMgeWVhciBzdGFydHMgYWJvdXQgMTEgZGF5cworICogZWFybGllciBpbiB0aGUgY29ycmVzcG9uZGluZyBHcmVnb3JpYW4geWVhci4KKyAqIDxwPgorICogRWFjaCBtb250aCBvZiB0aGUgY2FsZW5kYXIgc3RhcnRzIHdoZW4gdGhlIG5ldyBtb29uJ3MgY3Jlc2NlbnQgaXMgdmlzaWJsZQorICogYXQgc3Vuc2V0LiAgSG93ZXZlciwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgdGltZSBmaWVsZHMgaW4gdGhpcyBjbGFzcworICogc3luY2hyb25pemVkIHdpdGggdGhvc2Ugb2YgdGhlIG90aGVyIGNhbGVuZGFycyBhbmQgd2l0aCBsb2NhbCBjbG9jayB0aW1lLAorICogd2UgdHJlYXQgZGF5cyBhbmQgbW9udGhzIGFzIGJlZ2lubmluZyBhdCBtaWRuaWdodCwKKyAqIHJvdWdobHkgNiBob3VycyBhZnRlciB0aGUgY29ycmVzcG9uZGluZyBzdW5zZXQuCisgKiA8cD4KKyAqIFRoZXJlIGFyZSB0d28gbWFpbiB2YXJpYW50cyBvZiB0aGUgSXNsYW1pYyBjYWxlbmRhciBpbiBleGlzdGVuY2UuICBUaGUgZmlyc3QKKyAqIGlzIHRoZSA8ZW0+Y2l2aWw8L2VtPiBjYWxlbmRhciwgd2hpY2ggdXNlcyBhIGZpeGVkIGN5Y2xlIG9mIGFsdGVybmF0aW5nIDI5LQorICogYW5kIDMwLWRheSBtb250aHMsIHdpdGggYSBsZWFwIGRheSBhZGRlZCB0byB0aGUgbGFzdCBtb250aCBvZiAxMSBvdXQgb2YKKyAqIGV2ZXJ5IDMwIHllYXJzLiAgVGhpcyBjYWxlbmRhciBpcyBlYXNpbHkgY2FsY3VsYXRlZCBhbmQgdGh1cyBwcmVkaWN0YWJsZSBpbgorICogYWR2YW5jZSwgc28gaXQgaXMgdXNlZCBhcyB0aGUgY2l2aWwgY2FsZW5kYXIgaW4gYSBudW1iZXIgb2YgQXJhYiBjb3VudHJpZXMuCisgKiBUaGlzIGlzIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIGEgbmV3bHktY3JlYXRlZCA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+CisgKiBvYmplY3QuCisgKiA8cD4KKyAqIFRoZSBJc2xhbWljIDxlbT5yZWxpZ2lvdXM8L2VtPiBjYWxlbmRhciwgaG93ZXZlciwgaXMgYmFzZWQgb24gdGhlIDxlbT5vYnNlcnZhdGlvbjwvZW0+CisgKiBvZiB0aGUgY3Jlc2NlbnQgbW9vbi4gIEl0IGlzIHRodXMgYWZmZWN0ZWQgYnkgdGhlIHBvc2l0aW9uIGF0IHdoaWNoIHRoZQorICogb2JzZXJ2YXRpb25zIGFyZSBtYWRlLCBzZWFzb25hbCB2YXJpYXRpb25zIGluIHRoZSB0aW1lIG9mIHN1bnNldCwgdGhlCisgKiBlY2NlbnRyaWNpdGllcyBvZiB0aGUgbW9vbidzIG9yYml0LCBhbmQgZXZlbiB0aGUgd2VhdGhlciBhdCB0aGUgb2JzZXJ2YXRpb24KKyAqIHNpdGUuICBUaGlzIG1ha2VzIGl0IGltcG9zc2libGUgdG8gY2FsY3VsYXRlIGluIGFkdmFuY2UsIGFuZCBpdCBjYXVzZXMgdGhlCisgKiBzdGFydCBvZiBhIG1vbnRoIGluIHRoZSByZWxpZ2lvdXMgY2FsZW5kYXIgdG8gZGlmZmVyIGZyb20gdGhlIGNpdmlsIGNhbGVuZGFyCisgKiBieSB1cCB0byB0aHJlZSBkYXlzLgorICogPHA+CisgKiBVc2luZyBhc3Ryb25vbWljYWwgY2FsY3VsYXRpb25zIGZvciB0aGUgcG9zaXRpb24gb2YgdGhlIHN1biBhbmQgbW9vbiwgdGhlCisgKiBtb29uJ3MgaWxsdW1pbmF0aW9uLCBhbmQgb3RoZXIgZmFjdG9ycywgaXQgaXMgcG9zc2libGUgdG8gZGV0ZXJtaW5lIHRoZSBzdGFydAorICogb2YgYSBsdW5hciBtb250aCB3aXRoIGEgZmFpcmx5IGhpZ2ggZGVncmVlIG9mIGNlcnRhaW50eS4gIEhvd2V2ZXIsIHRoZXNlCisgKiBjYWxjdWxhdGlvbnMgYXJlIGV4dHJlbWVseSBjb21wbGljYXRlZCBhbmQgdGh1cyBzbG93LCBzbyBtb3N0IGFsZ29yaXRobXMsCisgKiBpbmNsdWRpbmcgdGhlIG9uZSB1c2VkIGhlcmUsIGFyZSBvbmx5IGFwcHJveGltYXRpb25zIG9mIHRoZSB0cnVlIGFzdHJvbmljYWwKKyAqIGNhbGN1bGF0aW9ucy4gIEF0IHByZXNlbnQsIHRoZSBhcHByb3hpbWF0aW9ucyB1c2VkIGluIHRoaXMgY2xhc3MgYXJlIGZhaXJseQorICogc2ltcGxpc3RpYzsgdGhleSB3aWxsIGJlIGltcHJvdmVkIGluIGxhdGVyIHZlcnNpb25zIG9mIHRoZSBjb2RlLgorICogPHA+CisgKiBUaGUge0BsaW5rICNzZXRDaXZpbCBzZXRDaXZpbH0gbWV0aG9kIGRldGVybWluZXMKKyAqIHdoaWNoIGFwcHJvYWNoIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBzdGFydCBvZiBhIG1vbnRoLiAgQnkgZGVmYXVsdCwgdGhlCisgKiBmaXhlZC1jeWNsZSBjaXZpbCBjYWxlbmRhciBpcyB1c2VkLiAgSG93ZXZlciwgaWYgPGNvZGU+c2V0Q2l2aWwoZmFsc2UpPC9jb2RlPgorICogaXMgY2FsbGVkLCBhbiBhcHByb3hpbWF0aW9uIG9mIHRoZSB0cnVlIGx1bmFyIGNhbGVuZGFyIHdpbGwgYmUgdXNlZC4KKyAqIDxwPgorICogVGhpcyBjbGFzcyBzaG91bGQgbm90IGJlIHN1YmNsYXNzZWQuPC9wPgorICogPHA+CisgKiBJc2xhbWljQ2FsZW5kYXIgdXN1YWxseSBzaG91bGQgYmUgaW5zdGFudGlhdGVkIHVzaW5nIAorICoge0BsaW5rIGNvbS5pYm0uaWN1LnV0aWwuQ2FsZW5kYXIjZ2V0SW5zdGFuY2UoVUxvY2FsZSl9IHBhc3NpbmcgaW4gYSA8Y29kZT5VTG9jYWxlPC9jb2RlPgorICogd2l0aCB0aGUgdGFnIDxjb2RlPiJAY2FsZW5kYXI9aXNsYW1pYyI8L2NvZGU+IG9yIDxjb2RlPiJAY2FsZW5kYXI9aXNsYW1pYy1jaXZpbCI8L2NvZGU+LjwvcD4KKyAqCisgKiBAc2VlIGNvbS5pYm0uaWN1LnV0aWwuR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcgorICoKKyAqIEBhdXRob3IgTGF1cmEgV2VybmVyCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAc3RhYmxlIElDVSAyLjgKKyAqLworcHVibGljIGNsYXNzIElzbGFtaWNDYWxlbmRhciBleHRlbmRzIENhbGVuZGFyIHsKKyAgICAvLyBqZGsxLjQuMiBzZXJpYWx2ZXIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNjI1MzM2NTQ3NDA3Mzg2OTMyNUw7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCBcdTAwYTkgMTk5Ny0xOTk4IElCTSBDb3JwLiBBbGwgUmlnaHRzIFJlc2VydmVkLiI7CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBDb25zdGFudHMuLi4KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgTXVoYXJyYW0sIHRoZSAxc3QgbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1VSEFSUkFNID0gMDsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBTYWZhciwgdGhlIDJuZCBtb250aCBvZiB0aGUgSXNsYW1pYyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0FGQVIgPSAxOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIFJhYmknIGFsLWF3d2FsIChvciBSYWJpJyBJKSwgdGhlIDNyZCBtb250aCBvZiB0aGUgSXNsYW1pYyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUkFCSV8xID0gMjsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBSYWJpJyBhbC10aGFuaSBvciAoUmFiaScgSUkpLCB0aGUgNHRoIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBSQUJJXzIgPSAzOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIEp1bWFkYSBhbC1hd3dhbCBvciAoSnVtYWRhIEkpLCB0aGUgNXRoIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKVU1BREFfMSA9IDQ7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgSnVtYWRhIGFsLXRoYW5pIG9yIChKdW1hZGEgSUkpLCB0aGUgNnRoIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBKVU1BREFfMiA9IDU7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgUmFqYWIsIHRoZSA3dGggbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJBSkFCID0gNjsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBTaGEnYmFuLCB0aGUgOHRoIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSEFCQU4gPSA3OworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIFJhbWFkYW4sIHRoZSA5dGggbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFJBTUFEQU4gPSA4OworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgZm9yIFNoYXd3YWwsIHRoZSAxMHRoIG1vbnRoIG9mIHRoZSBJc2xhbWljIHllYXIuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSEFXV0FMID0gOTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IGZvciBEaHUgYWwtUWknZGFoLCB0aGUgMTF0aCBtb250aCBvZiB0aGUgSXNsYW1pYyB5ZWFyLiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjggCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREhVX0FMX1FJREFIID0gMTA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCBmb3IgRGh1IGFsLUhpamphaCwgdGhlIDEydGggbW9udGggb2YgdGhlIElzbGFtaWMgeWVhci4gCisgICAgICogQHN0YWJsZSBJQ1UgMi44IAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERIVV9BTF9ISUpKQUggPSAxMTsKKworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBISUpSQV9NSUxMSVMgPSAtNDI1MjE1ODcyMDAwMDBMOyAgICAvLyA3LzE2LzYyMiBBRCAwMDowMAorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RydWN0b3JzLi4uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgZGVmYXVsdCA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+IHVzaW5nIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIElzbGFtaWNDYWxlbmRhcigpCisgICAgeworICAgICAgICB0aGlzKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBJc2xhbWljQ2FsZW5kYXIoVGltZVpvbmUgem9uZSkKKyAgICB7CisgICAgICAgIHRoaXMoem9uZSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIElzbGFtaWNDYWxlbmRhcihMb2NhbGUgYUxvY2FsZSkKKyAgICB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBhTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBnaXZlbiB1bG9jYWxlLgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIElzbGFtaWNDYWxlbmRhcihVTG9jYWxlIGxvY2FsZSkKKyAgICB7CisgICAgICAgIHRoaXMoVGltZVpvbmUuZ2V0RGVmYXVsdCgpLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIElzbGFtaWNDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBMb2NhbGUgYUxvY2FsZSkKKyAgICB7CisgICAgICAgIHN1cGVyKHpvbmUsIGFMb2NhbGUpOworICAgICAgICBzZXRUaW1lSW5NaWxsaXMoU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYW4gPGNvZGU+SXNsYW1pY0NhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGdpdmVuIHVsb2NhbGUuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSXNsYW1pY0NhbGVuZGFyKFRpbWVab25lIHpvbmUsIFVMb2NhbGUgbG9jYWxlKQorICAgIHsKKyAgICAgICAgc3VwZXIoem9uZSwgbG9jYWxlKTsKKyAgICAgICAgc2V0VGltZUluTWlsbGlzKFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGFuIDxjb2RlPklzbGFtaWNDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSBkYXRlIHRvIHdoaWNoIHRoZSBuZXcgY2FsZW5kYXIgaXMgc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBJc2xhbWljQ2FsZW5kYXIoRGF0ZSBkYXRlKSB7CisgICAgICAgIHN1cGVyKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB0aGlzLnNldFRpbWUoZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUgc2V0CisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSB7QGxpbmsgI1lFQVIgWUVBUn0gdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIG1vbnRoIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUge0BsaW5rICNNT05USCBNT05USH0gdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogICAgICAgICAgICAgIE5vdGUgdGhhdCB0aGUgbW9udGggdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgTXVoYXJyYW0uCisgICAgICogQHBhcmFtIGRhdGUgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIElzbGFtaWNDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkKKyAgICB7CisgICAgICAgIHN1cGVyKFRpbWVab25lLmdldERlZmF1bHQoKSwgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgICAgICB0aGlzLnNldChDYWxlbmRhci5ZRUFSLCB5ZWFyKTsKKyAgICAgICAgdGhpcy5zZXQoQ2FsZW5kYXIuTU9OVEgsIG1vbnRoKTsKKyAgICAgICAgdGhpcy5zZXQoQ2FsZW5kYXIuREFURSwgZGF0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhbiA8Y29kZT5Jc2xhbWljQ2FsZW5kYXI8L2NvZGU+IHdpdGggdGhlIGdpdmVuIGRhdGUKKyAgICAgKiBhbmQgdGltZSBzZXQgZm9yIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIHtAbGluayAjWUVBUiBZRUFSfSB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSB7QGxpbmsgI01PTlRIIE1PTlRIfSB0aW1lIGZpZWxkIGluIHRoZSBjYWxlbmRhci4KKyAgICAgKiAgICAgICAgICAgICAgTm90ZSB0aGF0IHRoZSBtb250aCB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBNdWhhcnJhbS4KKyAgICAgKiBAcGFyYW0gZGF0ZSAgdGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSB7QGxpbmsgI0RBVEUgREFURX0gdGltZSBmaWVsZCBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIGhvdXIgIHRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUge0BsaW5rICNIT1VSX09GX0RBWSBIT1VSX09GX0RBWX0gdGltZSBmaWVsZAorICAgICAqICAgICAgICAgICAgICBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIG1pbnV0ZSB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIHtAbGluayAjTUlOVVRFIE1JTlVURX0gdGltZSBmaWVsZAorICAgICAqICAgICAgICAgICAgICBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHBhcmFtIHNlY29uZCB0aGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIHtAbGluayAjU0VDT05EIFNFQ09ORH0gdGltZSBmaWVsZAorICAgICAqICAgICAgICAgICAgICBpbiB0aGUgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIElzbGFtaWNDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSwgaW50IGhvdXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW51dGUsIGludCBzZWNvbmQpCisgICAgeworICAgICAgICBzdXBlcihUaW1lWm9uZS5nZXREZWZhdWx0KCksIFVMb2NhbGUuZ2V0RGVmYXVsdCgpKTsKKyAgICAgICAgdGhpcy5zZXQoQ2FsZW5kYXIuWUVBUiwgeWVhcik7CisgICAgICAgIHRoaXMuc2V0KENhbGVuZGFyLk1PTlRILCBtb250aCk7CisgICAgICAgIHRoaXMuc2V0KENhbGVuZGFyLkRBVEUsIGRhdGUpOworICAgICAgICB0aGlzLnNldChDYWxlbmRhci5IT1VSX09GX0RBWSwgaG91cik7CisgICAgICAgIHRoaXMuc2V0KENhbGVuZGFyLk1JTlVURSwgbWludXRlKTsKKyAgICAgICAgdGhpcy5zZXQoQ2FsZW5kYXIuU0VDT05ELCBzZWNvbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGlzIG9iamVjdCB1c2VzIHRoZSBmaXhlZC1jeWNsZSBJc2xhbWljIGNpdmlsIGNhbGVuZGFyCisgICAgICogb3IgYW4gYXBwcm94aW1hdGlvbiBvZiB0aGUgcmVsaWdpb3VzLCBhc3Ryb25vbWljYWwgY2FsZW5kYXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYmVDaXZpbCAgIDxjb2RlPnRydWU8L2NvZGU+IHRvIHVzZSB0aGUgY2l2aWwgY2FsZW5kYXIsCisgICAgICogICAgICAgICAgICAgICAgICA8Y29kZT5mYWxzZTwvY29kZT4gdG8gdXNlIHRoZSBhc3Ryb25vbWljYWwgY2FsZW5kYXIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2l2aWwoYm9vbGVhbiBiZUNpdmlsKQorICAgIHsKKyAgICAgICAgaWYgKGNpdmlsICE9IGJlQ2l2aWwpIHsKKyAgICAgICAgICAgIC8vIFRoZSBmaWVsZHMgb2YgdGhlIGNhbGVuZGFyIHdpbGwgYmVjb21lIGludmFsaWQsIGJlY2F1c2UgdGhlIGNhbGVuZGFyCisgICAgICAgICAgICAvLyBydWxlcyBhcmUgZGlmZmVyZW50CisgICAgICAgICAgICBsb25nIG0gPSBnZXRUaW1lSW5NaWxsaXMoKTsKKyAgICAgICAgICAgIGNpdmlsID0gYmVDaXZpbDsKKyAgICAgICAgICAgIGNsZWFyKCk7CisgICAgICAgICAgICBzZXRUaW1lSW5NaWxsaXMobSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIG9iamVjdCBpcyB1c2luZyB0aGUgZml4ZWQtY3ljbGUgY2l2aWwKKyAgICAgKiBjYWxlbmRhciwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIHVzaW5nIHRoZSByZWxpZ2lvdXMsIGFzdHJvbm9taWNhbAorICAgICAqIGNhbGVuZGFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzQ2l2aWwoKSB7CisgICAgICAgIHJldHVybiBjaXZpbDsKKyAgICB9CisgICAgCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gTWluaW11bSAvIE1heGltdW0gYWNjZXNzIGZ1bmN0aW9ucworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IExJTUlUU1tdW10gPSB7CisgICAgICAgIC8vIE1pbmltdW0gIEdyZWF0ZXN0ICAgIExlYXN0ICBNYXhpbXVtCisgICAgICAgIC8vICAgICAgICAgICBNaW5pbXVtICBNYXhpbXVtCisgICAgICAgIHsgICAgICAgIDAsICAgICAgICAwLCAgICAgICAwLCAgICAgICAwIH0sIC8vIEVSQQorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgNTAwMDAwMCwgNTAwMDAwMCB9LCAvLyBZRUFSCisgICAgICAgIHsgICAgICAgIDAsICAgICAgICAwLCAgICAgIDExLCAgICAgIDExIH0sIC8vIE1PTlRICisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgIDUxLCAgICAgIDUyIH0sIC8vIFdFRUtfT0ZfWUVBUgorICAgICAgICB7ICAgICAgICAwLCAgICAgICAgMCwgICAgICAgNSwgICAgICAgNiB9LCAvLyBXRUVLX09GX01PTlRICisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgIDI5LCAgICAgIDMwIH0sIC8vIERBWV9PRl9NT05USAorICAgICAgICB7ICAgICAgICAxLCAgICAgICAgMSwgICAgIDM1NCwgICAgIDM1NSB9LCAvLyBEQVlfT0ZfWUVBUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBEQVlfT0ZfV0VFSworICAgICAgICB7ICAgICAgIC0xLCAgICAgICAtMSwgICAgICAgNCwgICAgICAgNSB9LCAvLyBEQVlfT0ZfV0VFS19JTl9NT05USAorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBBTV9QTQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBIT1VSCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIEhPVVJfT0ZfREFZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTlVURQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBTRUNPTkQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gTUlMTElTRUNPTkQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gWk9ORV9PRkZTRVQKKyAgICAgICAgey8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovfSwgLy8gRFNUX09GRlNFVAorICAgICAgICB7IC01MDAwMDAxLCAtNTAwMDAwMSwgNTAwMDAwMSwgNTAwMDAwMSB9LCAvLyBZRUFSX1dPWQorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBET1dfTE9DQUwKKyAgICAgICAgeyAtNTAwMDAwMCwgLTUwMDAwMDAsIDUwMDAwMDAsIDUwMDAwMDAgfSwgLy8gRVhURU5ERURfWUVBUgorICAgICAgICB7LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi99LCAvLyBKVUxJQU5fREFZCisgICAgICAgIHsvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL30sIC8vIE1JTExJU0VDT05EU19JTl9EQVkKKyAgICB9OworCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIGludCBoYW5kbGVHZXRMaW1pdChpbnQgZmllbGQsIGludCBsaW1pdFR5cGUpIHsKKyAgICAgICAgcmV0dXJuIExJTUlUU1tmaWVsZF1bbGltaXRUeXBlXTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBBc3NvcnRlZCBjYWxjdWxhdGlvbiB1dGlsaXRpZXMKKyAgICAvLworCisvLyBVbnVzZWQgY29kZSAtIEFsYW4gMjAwMy0wNQorLy8gICAgLyoqCisvLyAgICAgKiBGaW5kIHRoZSBkYXkgb2YgdGhlIHdlZWsgZm9yIGEgZ2l2ZW4gZGF5CisvLyAgICAgKgorLy8gICAgICogQHBhcmFtIGRheSAgIFRoZSAjIG9mIGRheXMgc2luY2UgdGhlIHN0YXJ0IG9mIHRoZSBJc2xhbWljIGNhbGVuZGFyLgorLy8gICAgICovCisvLyAgICAvLyBwcml2YXRlIGFuZCB1bmNhbGxlZCwgcGVyaGFwcyBub3QgdXNlZCB5ZXQ/CisvLyAgICAvLy9DTE9WRVI6T0ZGCisvLyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgYWJzb2x1dGVEYXlUb0RheU9mV2Vlayhsb25nIGRheSkKKy8vICAgIHsKKy8vICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIGRheSBvZiB0aGUgd2Vlay4KKy8vICAgICAgICAvLyBUaGlzIHJlbGllcyBvbiB0aGUgZmFjdCB0aGF0IHRoZSBlcG9jaCB3YXMgYSBUaHVyc2RheS4KKy8vICAgICAgICBpbnQgZGF5T2ZXZWVrID0gKGludCkoZGF5ICsgVEhVUlNEQVkpICUgNyArIFNVTkRBWTsKKy8vICAgICAgICBpZiAoZGF5T2ZXZWVrIDwgMCkgeworLy8gICAgICAgICAgICBkYXlPZldlZWsgKz0gNzsKKy8vICAgICAgICB9CisvLyAgICAgICAgcmV0dXJuIGRheU9mV2VlazsKKy8vICAgIH0KKy8vICAgIC8vL0NMT1ZFUjpPTgorCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgYSB5ZWFyIGlzIGEgbGVhcCB5ZWFyIGluIHRoZSBJc2xhbWljIGNpdmlsIGNhbGVuZGFyCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgYm9vbGVhbiBjaXZpbExlYXBZZWFyKGludCB5ZWFyKQorICAgIHsKKyAgICAgICAgcmV0dXJuICgxNCArIDExICogeWVhcikgJSAzMCA8IDExOworICAgICAgICAKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBkYXkgIyBvbiB3aGljaCB0aGUgZ2l2ZW4geWVhciBzdGFydHMuICBEYXlzIGFyZSBjb3VudGVkCisgICAgICogZnJvbSB0aGUgSGlqcmkgZXBvY2gsIG9yaWdpbiAwLgorICAgICAqLworICAgIHByaXZhdGUgbG9uZyB5ZWFyU3RhcnQoaW50IHllYXIpIHsKKyAgICAgICAgaWYgKGNpdmlsKSB7CisgICAgICAgICAgICByZXR1cm4gKHllYXItMSkqMzU0ICsgKGxvbmcpTWF0aC5mbG9vcigoMysxMSp5ZWFyKS8zMC4wKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlTW9udGhTdGFydCgxMiooeWVhci0xKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBkYXkgIyBvbiB3aGljaCB0aGUgZ2l2ZW4gbW9udGggc3RhcnRzLiAgRGF5cyBhcmUgY291bnRlZAorICAgICAqIGZyb20gdGhlIEhpanJpIGVwb2NoLCBvcmlnaW4gMC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICBUaGUgaGlqcmkgeWVhcgorICAgICAqIEBwYXJhbSB5ZWFyICBUaGUgaGlqcmkgbW9udGgsIDAtYmFzZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIGxvbmcgbW9udGhTdGFydChpbnQgeWVhciwgaW50IG1vbnRoKSB7CisgICAgICAgIGlmIChjaXZpbCkgeworICAgICAgICAgICAgcmV0dXJuIChsb25nKU1hdGguY2VpbCgyOS41Km1vbnRoKQorICAgICAgICAgICAgICAgICAgICArICh5ZWFyLTEpKjM1NCArIChsb25nKU1hdGguZmxvb3IoKDMrMTEqeWVhcikvMzAuMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZU1vbnRoU3RhcnQoMTIqKHllYXItMSkgKyBtb250aCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRmluZCB0aGUgZGF5IG51bWJlciBvbiB3aGljaCBhIHBhcnRpY3VsYXIgbW9udGggb2YgdGhlIHRydWUvbHVuYXIKKyAgICAgKiBJc2xhbWljIGNhbGVuZGFyIHN0YXJ0cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCBUaGUgbW9udGggaW4gcXVlc3Rpb24sIG9yaWdpbiAwIGZyb20gdGhlIEhpanJpIGVwb2NoCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBkYXkgbnVtYmVyIG9uIHdoaWNoIHRoZSBnaXZlbiBtb250aCBzdGFydHMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyB0cnVlTW9udGhTdGFydChsb25nIG1vbnRoKQorICAgIHsKKyAgICAgICAgbG9uZyBzdGFydCA9IGNhY2hlLmdldChtb250aCk7CisKKyAgICAgICAgaWYgKHN0YXJ0ID09IENhbGVuZGFyQ2FjaGUuRU1QVFkpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIE1ha2UgYSBndWVzcyBhdCB3aGVuIHRoZSBtb250aCBzdGFydGVkLCB1c2luZyB0aGUgYXZlcmFnZSBsZW5ndGgKKyAgICAgICAgICAgIGxvbmcgb3JpZ2luID0gSElKUkFfTUlMTElTIAorICAgICAgICAgICAgICAgICAgICAgICAgKyAobG9uZylNYXRoLmZsb29yKG1vbnRoICogQ2FsZW5kYXJBc3Ryb25vbWVyLlNZTk9ESUNfTU9OVEggLSAxKSAqIE9ORV9EQVk7CisKKyAgICAgICAgICAgIGRvdWJsZSBhZ2UgPSBtb29uQWdlKG9yaWdpbik7CisKKyAgICAgICAgICAgIGlmIChtb29uQWdlKG9yaWdpbikgPj0gMCkgeworICAgICAgICAgICAgICAgIC8vIFRoZSBtb250aCBoYXMgYWxyZWFkeSBzdGFydGVkCisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBvcmlnaW4gLT0gT05FX0RBWTsKKyAgICAgICAgICAgICAgICAgICAgYWdlID0gbW9vbkFnZShvcmlnaW4pOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKGFnZSA+PSAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFByZWNlZGluZyBtb250aCBoYXMgbm90IGVuZGVkIHlldC4KKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIG9yaWdpbiArPSBPTkVfREFZOworICAgICAgICAgICAgICAgICAgICBhZ2UgPSBtb29uQWdlKG9yaWdpbik7CisgICAgICAgICAgICAgICAgfSB3aGlsZSAoYWdlIDwgMCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0YXJ0ID0gKG9yaWdpbiAtIEhJSlJBX01JTExJUykgLyBPTkVfREFZICsgMTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY2FjaGUucHV0KG1vbnRoLCBzdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgImFnZSIgb2YgdGhlIG1vb24gYXQgdGhlIGdpdmVuIHRpbWU7IHRoaXMgaXMgdGhlIGRpZmZlcmVuY2UKKyAgICAgKiBpbiBlY2xpcHRpYyBsYXRpdHVkZSBiZXR3ZWVuIHRoZSBtb29uIGFuZCB0aGUgc3VuLiAgVGhpcyBtZXRob2Qgc2ltcGx5CisgICAgICogY2FsbHMgQ2FsZW5kYXJBc3Ryb25vbWVyLm1vb25BZ2UsIGNvbnZlcnRzIHRvIGRlZ3JlZXMsIAorICAgICAqIGFuZCBhZGp1c3RzIHRoZSByZXN1bHR0byBiZSBpbiB0aGUgcmFuZ2UgWy0xODAsIDE4MF0uCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZSAgVGhlIHRpbWUgYXQgd2hpY2ggdGhlIG1vb24ncyBhZ2UgaXMgZGVzaXJlZCwKKyAgICAgKiAgICAgICAgICAgICAgaW4gbWlsbGlzIHNpbmNlIDEvMS8xOTcwLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBkb3VibGUgbW9vbkFnZShsb25nIHRpbWUpCisgICAgeworICAgICAgICBkb3VibGUgYWdlID0gMDsKKyAgICAgICAgCisgICAgICAgIHN5bmNocm9uaXplZChhc3RybykgeworICAgICAgICAgICAgYXN0cm8uc2V0VGltZSh0aW1lKTsKKyAgICAgICAgICAgIGFnZSA9IGFzdHJvLmdldE1vb25BZ2UoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBDb252ZXJ0IHRvIGRlZ3JlZXMgYW5kIG5vcm1hbGl6ZS4uLgorICAgICAgICBhZ2UgPSBhZ2UgKiAxODAgLyBNYXRoLlBJOworICAgICAgICBpZiAoYWdlID4gMTgwKSB7CisgICAgICAgICAgICBhZ2UgPSBhZ2UgLSAzNjA7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYWdlOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEludGVybmFsIGRhdGEuLi4uCisgICAgLy8KKyAgICAKKyAgICAvLyBBbmQgYW4gQXN0cm9ub21lciBvYmplY3QgZm9yIHRoZSBtb29uIGFnZSBjYWxjdWxhdGlvbnMKKyAgICBwcml2YXRlIHN0YXRpYyBDYWxlbmRhckFzdHJvbm9tZXIgYXN0cm8gPSBuZXcgQ2FsZW5kYXJBc3Ryb25vbWVyKCk7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2FsZW5kYXJDYWNoZSBjYWNoZSA9IG5ldyBDYWxlbmRhckNhY2hlKCk7CisgICAgCisgICAgLyoqCisgICAgICogPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBvYmplY3QgdXNlcyB0aGUgZml4ZWQtY3ljbGUgSXNsYW1pYyBjaXZpbCBjYWxlbmRhciwKKyAgICAgKiBhbmQgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IGFwcHJveGltYXRlcyB0aGUgdHJ1ZSByZWxpZ2lvdXMgY2FsZW5kYXIgdXNpbmcKKyAgICAgKiBhc3Ryb25vbWljYWwgY2FsY3VsYXRpb25zIGZvciB0aGUgdGltZSBvZiB0aGUgbmV3IG1vb24uCisgICAgICoKKyAgICAgKiBAc2VyaWFsCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGNpdmlsID0gdHJ1ZTsKKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIENhbGVuZGFyIGZyYW1ld29yaworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZW5ndGggKGluIGRheXMpIG9mIHRoZSBnaXZlbiBtb250aC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBleHRlbmRlZFllYXIgIFRoZSBoaWpyaSB5ZWFyCisgICAgICogQHBhcmFtIG1vbnRoIFRoZSBoaWpyaSBtb250aCwgMC1iYXNlZAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TW9udGhMZW5ndGgoaW50IGV4dGVuZGVkWWVhciwgaW50IG1vbnRoKSB7CisKKyAgICAgICAgaW50IGxlbmd0aCA9IDA7CisgICAgICAgIAorICAgICAgICBpZiAoY2l2aWwpIHsKKyAgICAgICAgICAgIGxlbmd0aCA9IDI5ICsgKG1vbnRoKzEpICUgMjsKKyAgICAgICAgICAgIGlmIChtb250aCA9PSBESFVfQUxfSElKSkFIICYmIGNpdmlsTGVhcFllYXIoZXh0ZW5kZWRZZWFyKSkgeworICAgICAgICAgICAgICAgIGxlbmd0aCsrOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbW9udGggPSAxMiooZXh0ZW5kZWRZZWFyLTEpICsgbW9udGg7CisgICAgICAgICAgICBsZW5ndGggPSAoaW50KSggdHJ1ZU1vbnRoU3RhcnQobW9udGgrMSkgLSB0cnVlTW9udGhTdGFydChtb250aCkgKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbGVuZ3RoOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGRheXMgaW4gdGhlIGdpdmVuIElzbGFtaWMgeWVhcgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0WWVhckxlbmd0aChpbnQgZXh0ZW5kZWRZZWFyKSB7CisgICAgICAgIGlmIChjaXZpbCkgeworICAgICAgICAgICAgcmV0dXJuIDM1NCArIChjaXZpbExlYXBZZWFyKGV4dGVuZGVkWWVhcikgPyAxIDogMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpbnQgbW9udGggPSAxMiooZXh0ZW5kZWRZZWFyLTEpOworICAgICAgICAgICAgcmV0dXJuIChpbnQpKHRydWVNb250aFN0YXJ0KG1vbnRoICsgMTIpIC0gdHJ1ZU1vbnRoU3RhcnQobW9udGgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBGdW5jdGlvbnMgZm9yIGNvbnZlcnRpbmcgZnJvbSBmaWVsZCB2YWx1ZXMgdG8gbWlsbGlzZWNvbmRzLi4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gUmV0dXJuIEpEIG9mIHN0YXJ0IG9mIGdpdmVuIG1vbnRoL3llYXIKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUNvbXB1dGVNb250aFN0YXJ0KGludCBleWVhciwgaW50IG1vbnRoLCBib29sZWFuIHVzZU1vbnRoKSB7CisgICAgICAgIHJldHVybiAoaW50KSBtb250aFN0YXJ0KGV5ZWFyLCBtb250aCkgKyAxOTQ4NDM5OworICAgIH0gICAgCisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBGdW5jdGlvbnMgZm9yIGNvbnZlcnRpbmcgZnJvbSBtaWxsaXNlY29uZHMgdG8gZmllbGQgdmFsdWVzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IGhhbmRsZUdldEV4dGVuZGVkWWVhcigpIHsKKyAgICAgICAgaW50IHllYXI7CisgICAgICAgIGlmIChuZXdlckZpZWxkKEVYVEVOREVEX1lFQVIsIFlFQVIpID09IEVYVEVOREVEX1lFQVIpIHsKKyAgICAgICAgICAgIHllYXIgPSBpbnRlcm5hbEdldChFWFRFTkRFRF9ZRUFSLCAxKTsgLy8gRGVmYXVsdCB0byB5ZWFyIDEKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHllYXIgPSBpbnRlcm5hbEdldChZRUFSLCAxKTsgLy8gRGVmYXVsdCB0byB5ZWFyIDEKKyAgICAgICAgfQorICAgICAgICByZXR1cm4geWVhcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSBDYWxlbmRhciB0byBjb21wdXRlIHNldmVyYWwgZmllbGRzIHNwZWNpZmljIHRvIHRoZSBJc2xhbWljCisgICAgICogY2FsZW5kYXIgc3lzdGVtLiAgVGhlc2UgYXJlOgorICAgICAqCisgICAgICogPHVsPjxsaT5FUkEKKyAgICAgKiA8bGk+WUVBUgorICAgICAqIDxsaT5NT05USAorICAgICAqIDxsaT5EQVlfT0ZfTU9OVEgKKyAgICAgKiA8bGk+REFZX09GX1lFQVIKKyAgICAgKiA8bGk+RVhURU5ERURfWUVBUjwvdWw+CisgICAgICogCisgICAgICogVGhlIERBWV9PRl9XRUVLIGFuZCBET1dfTE9DQUwgZmllbGRzIGFyZSBhbHJlYWR5IHNldCB3aGVuIHRoaXMKKyAgICAgKiBtZXRob2QgaXMgY2FsbGVkLiBUaGUgZ2V0R3JlZ29yaWFuWHh4KCkgbWV0aG9kcyByZXR1cm4gR3JlZ29yaWFuCisgICAgICogY2FsZW5kYXIgZXF1aXZhbGVudHMgZm9yIHRoZSBnaXZlbiBKdWxpYW4gZGF5LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZUNvbXB1dGVGaWVsZHMoaW50IGp1bGlhbkRheSkgeworICAgICAgICBpbnQgeWVhciwgbW9udGgsIGRheU9mTW9udGgsIGRheU9mWWVhcjsKKyAgICAgICAgbG9uZyBtb250aFN0YXJ0OworICAgICAgICBsb25nIGRheXMgPSBqdWxpYW5EYXkgLSAxOTQ4NDQwOworCisgICAgICAgIGlmIChjaXZpbCkgeworICAgICAgICAgICAgLy8gVXNlIHRoZSBjaXZpbCBjYWxlbmRhciBhcHByb3hpbWF0aW9uLCB3aGljaCBpcyBqdXN0IGFyaXRobWV0aWMKKyAgICAgICAgICAgIHllYXIgID0gKGludClNYXRoLmZsb29yKCAoMzAgKiBkYXlzICsgMTA2NDYpIC8gMTA2MzEuMCApOworICAgICAgICAgICAgbW9udGggPSAoaW50KU1hdGguY2VpbCgoZGF5cyAtIDI5IC0geWVhclN0YXJ0KHllYXIpKSAvIDI5LjUgKTsKKyAgICAgICAgICAgIG1vbnRoID0gTWF0aC5taW4obW9udGgsIDExKTsKKyAgICAgICAgICAgIG1vbnRoU3RhcnQgPSBtb250aFN0YXJ0KHllYXIsIG1vbnRoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEd1ZXNzIGF0IHRoZSBudW1iZXIgb2YgZWxhcHNlZCBmdWxsIG1vbnRocyBzaW5jZSB0aGUgZXBvY2gKKyAgICAgICAgICAgIGludCBtb250aHMgPSAoaW50KU1hdGguZmxvb3IoZGF5cyAvIENhbGVuZGFyQXN0cm9ub21lci5TWU5PRElDX01PTlRIKTsKKworICAgICAgICAgICAgbW9udGhTdGFydCA9IChsb25nKU1hdGguZmxvb3IobW9udGhzICogQ2FsZW5kYXJBc3Ryb25vbWVyLlNZTk9ESUNfTU9OVEggLSAxKTsKKworICAgICAgICAgICAgaWYgKCBkYXlzIC0gbW9udGhTdGFydCA+PSAyOCAmJiBtb29uQWdlKGludGVybmFsR2V0VGltZUluTWlsbGlzKCkpID4gMCkgeworICAgICAgICAgICAgICAgIC8vIElmIHdlJ3JlIG5lYXIgdGhlIGVuZCBvZiB0aGUgbW9udGgsIGFzc3VtZSBuZXh0IG1vbnRoIGFuZCBzZWFyY2ggYmFja3dhcmRzCisgICAgICAgICAgICAgICAgbW9udGhzKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEZpbmQgb3V0IHRoZSBsYXN0IHRpbWUgdGhhdCB0aGUgbmV3IG1vb24gd2FzIGFjdHVhbGx5IHZpc2libGUgYXQgdGhpcyBsb25naXR1ZGUKKyAgICAgICAgICAgIC8vIFRoaXMgcmV0dXJucyBtaWRuaWdodCB0aGUgbmlnaHQgdGhhdCB0aGUgbW9vbiB3YXMgdmlzaWJsZSBhdCBzdW5zZXQuCisgICAgICAgICAgICB3aGlsZSAoKG1vbnRoU3RhcnQgPSB0cnVlTW9udGhTdGFydChtb250aHMpKSA+IGRheXMpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiBpdCB3YXMgYWZ0ZXIgdGhlIGRhdGUgaW4gcXVlc3Rpb24sIGJhY2sgdXAgYSBtb250aCBhbmQgdHJ5IGFnYWluCisgICAgICAgICAgICAgICAgbW9udGhzLS07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHllYXIgPSBtb250aHMgLyAxMiArIDE7CisgICAgICAgICAgICBtb250aCA9IG1vbnRocyAlIDEyOworICAgICAgICB9CisKKyAgICAgICAgZGF5T2ZNb250aCA9IChpbnQpKGRheXMgLSBtb250aFN0YXJ0KHllYXIsIG1vbnRoKSkgKyAxOworCisgICAgICAgIC8vIE5vdyBmaWd1cmUgb3V0IHRoZSBkYXkgb2YgdGhlIHllYXIuCisgICAgICAgIGRheU9mWWVhciA9IChpbnQpKGRheXMgLSBtb250aFN0YXJ0KHllYXIsIDApICsgMSk7CisKKyAgICAgICAgaW50ZXJuYWxTZXQoRVJBLCAwKTsKKyAgICAgICAgaW50ZXJuYWxTZXQoWUVBUiwgeWVhcik7CisgICAgICAgIGludGVybmFsU2V0KEVYVEVOREVEX1lFQVIsIHllYXIpOworICAgICAgICBpbnRlcm5hbFNldChNT05USCwgbW9udGgpOworICAgICAgICBpbnRlcm5hbFNldChEQVlfT0ZfTU9OVEgsIGRheU9mTW9udGgpOworICAgICAgICBpbnRlcm5hbFNldChEQVlfT0ZfWUVBUiwgZGF5T2ZZZWFyKTsgICAgICAgCisgICAgfSAgICAKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgY3VycmVudCBDYWxlbmRhciB0eXBlLgorICAgICAqIEByZXR1cm4gdHlwZSBvZiBjYWxlbmRhciAoZ3JlZ29yaWFuLCBldGMuKQorICAgICAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gImlzbGFtaWMiOworICAgIH0KKworICAgIC8qCisgICAgcHJpdmF0ZSBzdGF0aWMgQ2FsZW5kYXJGYWN0b3J5IGZhY3Rvcnk7CisgICAgcHVibGljIHN0YXRpYyBDYWxlbmRhckZhY3RvcnkgZmFjdG9yeSgpIHsKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgZmFjdG9yeSA9IG5ldyBDYWxlbmRhckZhY3RvcnkoKSB7CisgICAgICAgICAgICAgICAgcHVibGljIENhbGVuZGFyIGNyZWF0ZShUaW1lWm9uZSB0eiwgVUxvY2FsZSBsb2MpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBJc2xhbWljQ2FsZW5kYXIodHosIGxvYyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHVibGljIFN0cmluZyBmYWN0b3J5TmFtZSgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJJc2xhbWljIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWN0b3J5OworICAgIH0KKyAgICAqLworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSmFwYW5lc2VDYWxlbmRhci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvSmFwYW5lc2VDYWxlbmRhci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE5ZGNkYjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9KYXBhbmVzZUNhbGVuZGFyLmphdmEKQEAgLTAsMCArMSw2MjQgQEAKKy8qCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5UaW1lWm9uZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCisvKioKKyAqIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+IGlzIGEgc3ViY2xhc3Mgb2YgPGNvZGU+R3JlZ29yaWFuQ2FsZW5kYXI8L2NvZGU+CisgKiB0aGF0IG51bWJlcnMgeWVhcnMgYW5kIGVyYXMgYmFzZWQgb24gdGhlIHJlaWducyBvZiB0aGUgSmFwYW5lc2UgZW1wZXJvcnMuCisgKiBUaGUgSmFwYW5lc2UgY2FsZW5kYXIgaXMgaWRlbnRpY2FsIHRvIHRoZSBHcmVnb3JpYW4gY2FsZW5kYXIgaW4gYWxsIHJlc3BlY3RzCisgKiBleGNlcHQgZm9yIHRoZSB5ZWFyIGFuZCBlcmEuICBUaGUgYXNjZW5zaW9uIG9mIGVhY2ggIGVtcGVyb3IgdG8gdGhlIHRocm9uZQorICogYmVnaW5zIGEgbmV3IGVyYSwgYW5kIHRoZSB5ZWFycyBvZiB0aGF0IGVyYSBhcmUgbnVtYmVyZWQgc3RhcnRpbmcgd2l0aCB0aGUKKyAqIHllYXIgb2YgYXNjZW5zaW9uIGFzIHllYXIgMS4KKyAqIDxwPgorICogTm90ZSB0aGF0IGluIHRoZSB5ZWFyIG9mIGFuIGltcGVyaWFsIGFzY2Vuc2lvbiwgdGhlcmUgYXJlIHR3byBwb3NzaWJsZSBzZXRzCisgKiBvZiB5ZWFyIGFuZCBlcmEgdmFsdWVzOiB0aGF0IGZvciB0aGUgb2xkIGVyYSBhbmQgZm9yIHRoZSBuZXcuICBGb3IgZXhhbXBsZSwgYQorICogbmV3IGVyYSBiZWdhbiBvbiBKYW51YXJ5IDcsIDE5ODkgQUQuICBTdHJpY3RseSBzcGVha2luZywgdGhlIGZpcnN0IHNpeCBkYXlzCisgKiBvZiB0aGF0IHllYXIgd2VyZSBpbiB0aGUgU2hvd2EgZXJhLCBlLmcuICJKYW51YXJ5IDYsIDY0IFNob3dhIiwgd2hpbGUgdGhlIHJlc3QKKyAqIG9mIHRoZSB5ZWFyIHdhcyBpbiB0aGUgSGVpc2VpIGVyYSwgZS5nLiAiSmFudWFyeSA3LCAxIEhlaXNlaSIuICBUaGlzIGNsYXNzCisgKiBoYW5kbGVzIHRoaXMgZGlzdGluY3Rpb24gY29ycmVjdGx5IHdoZW4gY29tcHV0aW5nIGRhdGVzLiAgSG93ZXZlciwgaW4gbGVuaWVudAorICogbW9kZSBlaXRoZXIgZm9ybSBvZiBkYXRlIGlzIGFjY2VwdGFibGUgYXMgaW5wdXQuIAorICogPHA+CisgKiBJbiBtb2Rlcm4gdGltZXMsIGVyYXMgaGF2ZSBzdGFydGVkIG9uIEphbnVhcnkgOCwgMTg2OCBBRCwgR3JlZ29yaWFuIChNZWlqaSksCisgKiBKdWx5IDMwLCAxOTEyIChUYWlzaG8pLCBEZWNlbWJlciAyNSwgMTkyNiAoU2hvd2EpLCBhbmQgSmFudWFyeSA3LCAxOTg5IChIZWlzZWkpLiAgQ29uc3RhbnRzCisgKiBmb3IgdGhlc2UgZXJhcywgc3VpdGFibGUgZm9yIHVzZSBpbiB0aGUgPGNvZGU+RVJBPC9jb2RlPiBmaWVsZCwgYXJlIHByb3ZpZGVkCisgKiBpbiB0aGlzIGNsYXNzLiAgTm90ZSB0aGF0IHRoZSA8ZW0+bnVtYmVyPC9lbT4gdXNlZCBmb3IgZWFjaCBlcmEgaXMgbW9yZSBvcgorICogbGVzcyBhcmJpdHJhcnkuICBDdXJyZW50bHksIHRoZSBlcmEgc3RhcnRpbmcgaW4gMTA1MyBBRCBpcyBlcmEgIzA7IGhvd2V2ZXIgdGhpcworICogbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIGFzIHdlIGFkZCBtb3JlIGhpc3RvcmljYWwgZGF0YS4gIFVzZSB0aGUgcHJlZGVmaW5lZAorICogY29uc3RhbnRzIHJhdGhlciB0aGFuIHVzaW5nIGFjdHVhbCwgYWJzb2x1dGUgbnVtYmVycy4KKyAqIDxwPgorICogVGhpcyBjbGFzcyBzaG91bGQgbm90IGJlIHN1YmNsYXNzZWQuPC9wPgorICogPHA+CisgKiBKYXBhbmVzZUNhbGVuZGFyIHVzdWFsbHkgc2hvdWxkIGJlIGluc3RhbnRpYXRlZCB1c2luZyAKKyAqIHtAbGluayBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyI2dldEluc3RhbmNlKFVMb2NhbGUpfSBwYXNzaW5nIGluIGEgPGNvZGU+VUxvY2FsZTwvY29kZT4KKyAqIHdpdGggdGhlIHRhZyA8Y29kZT4iQGNhbGVuZGFyPWphcGFuZXNlIjwvY29kZT4uPC9wPgorICoKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5HcmVnb3JpYW5DYWxlbmRhcgorICogQHNlZSBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyCisgKgorICogQGF1dGhvciBMYXVyYSBXZXJuZXIKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgY2xhc3MgSmFwYW5lc2VDYWxlbmRhciBleHRlbmRzIEdyZWdvcmlhbkNhbGVuZGFyIHsKKyAgICAvLyBqZGsxLjQuMiBzZXJpYWx2ZXIKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtMjk3NzE4OTkwMjYwMzcwNDY5MUw7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgY29weXJpZ2h0ID0gIkNvcHlyaWdodCBcdTAwYTkgMTk5OCBJQk0gQ29ycC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4iOworCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gQ29uc3RydWN0b3JzLi4uCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgZGVmYXVsdCA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiB1c2luZyB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBKYXBhbmVzZUNhbGVuZGFyKCkgeworICAgICAgICBzdXBlcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBKYXBhbmVzZUNhbGVuZGFyKFRpbWVab25lIHpvbmUpIHsKKyAgICAgICAgc3VwZXIoem9uZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBhTG9jYWxlIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEphcGFuZXNlQ2FsZW5kYXIoTG9jYWxlIGFMb2NhbGUpIHsKKyAgICAgICAgc3VwZXIoYUxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBhIDxjb2RlPkphcGFuZXNlQ2FsZW5kYXI8L2NvZGU+IGJhc2VkIG9uIHRoZSBjdXJyZW50IHRpbWUKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGdpdmVuIHVsb2NhbGUuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcihVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcihsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiBiYXNlZCBvbiB0aGUgY3VycmVudCB0aW1lCisgICAgICogaW4gdGhlIGdpdmVuIHRpbWUgem9uZSB3aXRoIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gem9uZSB0aGUgZ2l2ZW4gdGltZSB6b25lLgorICAgICAqCisgICAgICogQHBhcmFtIGFMb2NhbGUgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBMb2NhbGUgYUxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBhTG9jYWxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gYmFzZWQgb24gdGhlIGN1cnJlbnQgdGltZQorICAgICAqIGluIHRoZSBnaXZlbiB0aW1lIHpvbmUgd2l0aCB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHpvbmUgdGhlIGdpdmVuIHRpbWUgem9uZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIGdpdmVuIHVsb2NhbGUuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcihUaW1lWm9uZSB6b25lLCBVTG9jYWxlIGxvY2FsZSkgeworICAgICAgICBzdXBlcih6b25lLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSA8Y29kZT5KYXBhbmVzZUNhbGVuZGFyPC9jb2RlPiB3aXRoIHRoZSBnaXZlbiBkYXRlIHNldAorICAgICAqIGluIHRoZSBkZWZhdWx0IHRpbWUgem9uZSB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIGRhdGUgdG8gd2hpY2ggdGhlIG5ldyBjYWxlbmRhciBpcyBzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIEphcGFuZXNlQ2FsZW5kYXIoRGF0ZSBkYXRlKSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgc2V0VGltZShkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXJhICAgICAgIFRoZSBpbXBlcmlhbCBlcmEgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNFUkEgRVJBfSBmaWVsZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIEVyYXMgYXJlIG51bWJlcmVkIHN0YXJ0aW5nIHdpdGggdGhlIFRlbmtpIGVyYSwgd2hpY2gKKyAgICAgKiAgICAgICAgICAgICAgICAgIGJlZ2FuIGluIDEwNTMgQUQgR3JlZ29yaWFuLCBhcyBlcmEgemVyby4gIFJlY2VudAorICAgICAqICAgICAgICAgICAgICAgICAgZXJhcyBjYW4gYmUgc3BlY2lmaWVkIHVzaW5nIHRoZSBjb25zdGFudHMKKyAgICAgKiAgICAgICAgICAgICAgICAgIHtAbGluayAjTUVJSkl9ICh3aGljaCBzdGFydGVkIGluIDE4NjggQUQpLAorICAgICAqICAgICAgICAgICAgICAgICAge0BsaW5rICNUQUlTSE99ICgxOTEyIEFEKSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIHtAbGluayAjU0hPV0F9ICgxOTI2IEFEKSwgYW5kCisgICAgICogICAgICAgICAgICAgICAgICB7QGxpbmsgI0hFSVNFSX0gKDE5ODkgQUQpLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IGZpZWxkLAorICAgICAqICAgICAgICAgICAgICAgICAgaW4gdGVybXMgb2YgdGhlIGVyYS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjTU9OVEggTU9OVEh9IGZpZWxkLgorICAgICAqICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGlzIDAtYmFzZWQuIGUuZy4sIDAgZm9yIEphbnVhcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyBEQVRFIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBKYXBhbmVzZUNhbGVuZGFyKGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlKSB7CisgICAgICAgIHN1cGVyKHllYXIsIG1vbnRoLCBkYXRlKTsKKyAgICAgICAgc2V0KEVSQSwgZXJhKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZSBzZXQKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCB0aW1lIHpvbmUgd2l0aCB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0geWVhciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI1lFQVIgWUVBUn0gZmllbGQsCisgICAgICogICAgICAgICAgICAgICAgICBpbiB0aGUgZXJhIEhlaXNlaSwgdGhlIG1vc3QgY3VycmVudCBhdCB0aGUgdGltZSB0aGlzCisgICAgICogICAgICAgICAgICAgICAgICBjbGFzcyB3YXMgbGFzdCB1cGRhdGVkLgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNT05USCBNT05USH0gZmllbGQuCisgICAgICogICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRlICAgICAgVGhlIHZhbHVlIHVzZWQgdG8gc2V0IHRoZSBjYWxlbmRhcidzIHtAbGluayAjREFURSBEQVRFfSBmaWVsZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgSmFwYW5lc2VDYWxlbmRhcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF0ZSkgeworICAgICAgICBzdXBlcih5ZWFyLCBtb250aCwgZGF0ZSk7CisgICAgICAgIHNldChFUkEsIENVUlJFTlRfRVJBKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgPGNvZGU+SmFwYW5lc2VDYWxlbmRhcjwvY29kZT4gd2l0aCB0aGUgZ2l2ZW4gZGF0ZQorICAgICAqIGFuZCB0aW1lIHNldCBmb3IgdGhlIGRlZmF1bHQgdGltZSB6b25lIHdpdGggdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHllYXIgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNZRUFSIFlFQVJ9IHRpbWUgZmllbGQsCisgICAgICogICAgICAgICAgICAgICAgICBpbiB0aGUgZXJhIEhlaXNlaSwgdGhlIG1vc3QgY3VycmVudCBhdCB0aGUgdGltZSBvZiB0aGlzCisgICAgICogICAgICAgICAgICAgICAgICB3cml0aW5nLgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNT05USCBNT05USH0gdGltZSBmaWVsZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpcyAwLWJhc2VkLiBlLmcuLCAwIGZvciBKYW51YXJ5LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgICAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNEQVRFIERBVEV9IHRpbWUgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaG91ciAgICAgIFRoZSB2YWx1ZSB1c2VkIHRvIHNldCB0aGUgY2FsZW5kYXIncyB7QGxpbmsgI0hPVVJfT0ZfREFZIEhPVVJfT0ZfREFZfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIG1pbnV0ZSAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNNSU5VVEUgTUlOVVRFfSB0aW1lIGZpZWxkLgorICAgICAqCisgICAgICogQHBhcmFtIHNlY29uZCAgICBUaGUgdmFsdWUgdXNlZCB0byBzZXQgdGhlIGNhbGVuZGFyJ3Mge0BsaW5rICNTRUNPTkQgU0VDT05EfSB0aW1lIGZpZWxkLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBKYXBhbmVzZUNhbGVuZGFyKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXRlLCBpbnQgaG91ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pbnV0ZSwgaW50IHNlY29uZCkKKyAgICB7CisgICAgICAgIHN1cGVyKHllYXIsIG1vbnRoLCBkYXRlLCBob3VyLCBtaW51dGUsIHNlY29uZCk7CisgICAgICAgIHNldChFUkEsIENVUlJFTlRfRVJBKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0RXh0ZW5kZWRZZWFyKCkgeworICAgICAgICBpbnQgeWVhcjsKKyAgICAgICAgLy8gVE9ETyByZWltcGxlbWVudCB0aGlzIHRvIGJlIGZhc3Rlcj8KKyAgICAgICAgaWYgKG5ld2VyRmllbGQoRVhURU5ERURfWUVBUiwgWUVBUikgPT0gRVhURU5ERURfWUVBUiAmJgorICAgICAgICAgICAgbmV3ZXJGaWVsZChFWFRFTkRFRF9ZRUFSLCBFUkEpID09IEVYVEVOREVEX1lFQVIpIHsKKyAgICAgICAgICAgIHllYXIgPSBpbnRlcm5hbEdldChFWFRFTkRFRF9ZRUFSLCAxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFN1YnRyYWN0IG9uZSBiZWNhdXNlIHllYXIgc3RhcnRzIGF0IDEKKyAgICAgICAgICAgIHllYXIgPSBpbnRlcm5hbEdldChZRUFSKSArIEVSQVNbaW50ZXJuYWxHZXQoRVJBLCBDVVJSRU5UX0VSQSkgKiAzXSAtIDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHllYXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQ29tcHV0ZUZpZWxkcyhpbnQganVsaWFuRGF5KSB7CisgICAgICAgIHN1cGVyLmhhbmRsZUNvbXB1dGVGaWVsZHMoanVsaWFuRGF5KTsKKyAgICAgICAgaW50IHllYXIgPSBpbnRlcm5hbEdldChFWFRFTkRFRF9ZRUFSKTsKKworICAgICAgICBpbnQgbG93ID0gMDsKKworICAgICAgICAvLyBTaG9ydCBjaXJjdWl0IGZvciByZWNlbnQgeWVhcnMuICBNb3N0IG1vZGVybiBjb21wdXRhdGlvbnMgd2lsbAorICAgICAgICAvLyBvY2N1ciBpbiB0aGUgY3VycmVudCBlcmEgYW5kIHdvbid0IHJlcXVpcmUgdGhlIGJpbmFyeSBzZWFyY2guCisgICAgICAgIC8vIE5vdGUgdGhhdCBpZiB0aGUgeWVhciBpcyA9PSB0aGUgY3VycmVudCBlcmEgeWVhciwgdGhlbiB3ZSB1c2UKKyAgICAgICAgLy8gdGhlIGJpbmFyeSBzZWFyY2ggdG8gaGFuZGxlIHRoZSBtb250aC9kb20gY29tcGFyaXNvbi4KKyAgICAgICAgaWYgKHllYXIgPiBFUkFTW0VSQVMubGVuZ3RoIC0gM10pIHsKKyAgICAgICAgICAgIGxvdyA9IENVUlJFTlRfRVJBOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gQmluYXJ5IHNlYXJjaAorICAgICAgICAgICAgaW50IGhpZ2ggPSBFUkFTLmxlbmd0aCAvIDM7CisgICAgICAgIAorICAgICAgICAgICAgd2hpbGUgKGxvdyA8IGhpZ2ggLSAxKSB7CisgICAgICAgICAgICAgICAgaW50IGkgPSAobG93ICsgaGlnaCkgLyAyOworICAgICAgICAgICAgICAgIGludCBkaWZmID0geWVhciAtIEVSQVNbaSozXTsKKworICAgICAgICAgICAgICAgIC8vIElmIHllYXJzIGFyZSB0aGUgc2FtZSwgdGhlbiBjb21wYXJlIHRoZSBtb250aHMsIGFuZCBpZiB0aG9zZQorICAgICAgICAgICAgICAgIC8vIGFyZSB0aGUgc2FtZSwgY29tcGFyZSBkYXlzIG9mIG1vbnRoLiAgSW4gdGhlIEVSQVMgYXJyYXkKKyAgICAgICAgICAgICAgICAvLyBtb250aHMgYXJlIDEtYmFzZWQgZm9yIGVhc2llciBtYWludGVuYW5jZS4KKyAgICAgICAgICAgICAgICBpZiAoZGlmZiA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGRpZmYgPSBpbnRlcm5hbEdldChNT05USCkgLSAoRVJBU1tpKjMgKyAxXSAtIDEpOworICAgICAgICAgICAgICAgICAgICBpZiAoZGlmZiA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkaWZmID0gaW50ZXJuYWxHZXQoREFZX09GX01PTlRIKSAtIEVSQVNbaSozICsgMl07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGRpZmYgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBsb3cgPSBpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGhpZ2ggPSBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyB3ZSd2ZSBmb3VuZCB0aGUgbGFzdCBlcmEgdGhhdCBzdGFydHMgYmVmb3JlIHRoaXMgZGF0ZSwgc28KKyAgICAgICAgLy8gYWRqdXN0IHRoZSB5ZWFyIHRvIGNvdW50IGZyb20gdGhlIHN0YXJ0IG9mIHRoYXQgZXJhLiAgTm90ZSB0aGF0CisgICAgICAgIC8vIGFsbCBkYXRlcyBiZWZvcmUgdGhlIGZpcnN0IGVyYSB3aWxsIGZhbGwgaW50byB0aGUgZmlyc3QgZXJhIGJ5CisgICAgICAgIC8vIHRoZSBhbGdvcml0aG0uCisgICAgICAgIGludGVybmFsU2V0KEVSQSwgbG93KTsKKyAgICAgICAgaW50ZXJuYWxTZXQoWUVBUiwgeWVhciAtIEVSQVNbbG93KjNdICsgMSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gRVJBUyA9IHsKKyAgICAvLyAgR3JlZ29yaWFuIGRhdGUgb2YgZWFjaCBlbXBlcm9yJ3MgYXNjZW5zaW9uCisgICAgLy8gIFllYXJzIGFyZSBBRCwgbW9udGhzIGFyZSAxLWJhc2VkLgorICAgIC8vICBZZWFyICBNb250aCBEYXkKKyAgICAgICAgIDY0NSwgICAgNiwgMTksICAgICAvLyBUYWlrYQorICAgICAgICAgNjUwLCAgICAyLCAxNSwgICAgIC8vIEhha3VjaGkKKyAgICAgICAgIDY3MiwgICAgMSwgIDEsICAgICAvLyBIYWt1aG8KKyAgICAgICAgIDY4NiwgICAgNywgMjAsICAgICAvLyBTaHVjaG8KKyAgICAgICAgIDcwMSwgICAgMywgMjEsICAgICAvLyBUYWlobworICAgICAgICAgNzA0LCAgICA1LCAxMCwgICAgIC8vIEtlaXVuCisgICAgICAgICA3MDgsICAgIDEsIDExLCAgICAgLy8gV2FkbworICAgICAgICAgNzE1LCAgICA5LCAgMiwgICAgIC8vIFJlaWtpCisgICAgICAgICA3MTcsICAgMTEsIDE3LCAgICAgLy8gWW9ybworICAgICAgICAgNzI0LCAgICAyLCAgNCwgICAgIC8vIEppbmtpCisgICAgICAgICA3MjksICAgIDgsICA1LCAgICAgLy8gVGVtcHlvCisgICAgICAgICA3NDksICAgIDQsIDE0LCAgICAgLy8gVGVtcHlvLWthbXBvCisgICAgICAgICA3NDksICAgIDcsICAyLCAgICAgLy8gVGVtcHlvLXNob2hvCisgICAgICAgICA3NTcsICAgIDgsIDE4LCAgICAgLy8gVGVtcHlvLWhvamkKKyAgICAgICAgIDc2NSwgICAgMSwgIDcsICAgICAvLyBUZW1waG8tamluZ28KKyAgICAgICAgIDc2NywgICAgOCwgMTYsICAgICAvLyBKaW5nby1rZWl1bgorICAgICAgICAgNzcwLCAgIDEwLCAgMSwgICAgIC8vIEhva2kKKyAgICAgICAgIDc4MSwgICAgMSwgIDEsICAgICAvLyBUZW4tbworICAgICAgICAgNzgyLCAgICA4LCAxOSwgICAgIC8vIEVucnlha3UKKyAgICAgICAgIDgwNiwgICAgNSwgMTgsICAgICAvLyBEYWlkbworICAgICAgICAgODEwLCAgICA5LCAxOSwgICAgIC8vIEtvbmluCisgICAgICAgICA4MjQsICAgIDEsICA1LCAgICAgLy8gVGVuY2hvCisgICAgICAgICA4MzQsICAgIDEsICAzLCAgICAgLy8gU2hvd2EKKyAgICAgICAgIDg0OCwgICAgNiwgMTMsICAgICAvLyBLYWpvCisgICAgICAgICA4NTEsICAgIDQsIDI4LCAgICAgLy8gTmluanUKKyAgICAgICAgIDg1NCwgICAxMSwgMzAsICAgICAvLyBTYWlrbworICAgICAgICAgODU3LCAgICAyLCAyMSwgICAgIC8vIFRlbm5hbgorICAgICAgICAgODU5LCAgICA0LCAxNSwgICAgIC8vIEpvZ2FuCisgICAgICAgICA4NzcsICAgIDQsIDE2LCAgICAgLy8gR2Vua2VpCisgICAgICAgICA4ODUsICAgIDIsIDIxLCAgICAgLy8gTmlubmEKKyAgICAgICAgIDg4OSwgICAgNCwgMjcsICAgICAvLyBLYW1weW8KKyAgICAgICAgIDg5OCwgICAgNCwgMjYsICAgICAvLyBTaG90YWkKKyAgICAgICAgIDkwMSwgICAgNywgMTUsICAgICAvLyBFbmdpCisgICAgICAgICA5MjMsICAgIDQsIDExLCAgICAgLy8gRW5jaG8KKyAgICAgICAgIDkzMSwgICAgNCwgMjYsICAgICAvLyBTaG9oZWkKKyAgICAgICAgIDkzOCwgICAgNSwgMjIsICAgICAvLyBUZW5neW8KKyAgICAgICAgIDk0NywgICAgNCwgMjIsICAgICAvLyBUZW5yeWFrdQorICAgICAgICAgOTU3LCAgIDEwLCAyNywgICAgIC8vIFRlbnRva3UKKyAgICAgICAgIDk2MSwgICAgMiwgMTYsICAgICAvLyBPd2EKKyAgICAgICAgIDk2NCwgICAgNywgMTAsICAgICAvLyBLb2hvCisgICAgICAgICA5NjgsICAgIDgsIDEzLCAgICAgLy8gQW5uYQorICAgICAgICAgOTcwLCAgICAzLCAyNSwgICAgIC8vIFRlbnJva3UKKyAgICAgICAgIDk3MywgICAxMiwgMjAsICAgICAvLyBUZW4tZW4KKyAgICAgICAgIDk3NiwgICAgNywgMTMsICAgICAvLyBKb2dlbgorICAgICAgICAgOTc4LCAgIDExLCAyOSwgICAgIC8vIFRlbmdlbgorICAgICAgICAgOTgzLCAgICA0LCAxNSwgICAgIC8vIEVpa2FuCisgICAgICAgICA5ODUsICAgIDQsIDI3LCAgICAgLy8gS2FubmEKKyAgICAgICAgIDk4NywgICAgNCwgIDUsICAgICAvLyBFaS1lbgorICAgICAgICAgOTg5LCAgICA4LCAgOCwgICAgIC8vIEVpc28KKyAgICAgICAgIDk5MCwgICAxMSwgIDcsICAgICAvLyBTaG9yeWFrdQorICAgICAgICAgOTk1LCAgICAyLCAyMiwgICAgIC8vIENob3Rva3UKKyAgICAgICAgIDk5OSwgICAgMSwgMTMsICAgICAvLyBDaG9obworICAgICAgICAxMDA0LCAgICA3LCAyMCwgICAgIC8vIEthbmtvCisgICAgICAgIDEwMTIsICAgMTIsIDI1LCAgICAgLy8gQ2hvd2EKKyAgICAgICAgMTAxNywgICAgNCwgMjMsICAgICAvLyBLYW5uaW4KKyAgICAgICAgMTAyMSwgICAgMiwgIDIsICAgICAvLyBKaWFuCisgICAgICAgIDEwMjQsICAgIDcsIDEzLCAgICAgLy8gTWFuanUKKyAgICAgICAgMTAyOCwgICAgNywgMjUsICAgICAvLyBDaG9nZW4KKyAgICAgICAgMTAzNywgICAgNCwgMjEsICAgICAvLyBDaG9yeWFrdQorICAgICAgICAxMDQwLCAgIDExLCAxMCwgICAgIC8vIENob2t5dQorICAgICAgICAxMDQ0LCAgIDExLCAyNCwgICAgIC8vIEthbnRva3UKKyAgICAgICAgMTA0NiwgICAgNCwgMTQsICAgICAvLyBFaXNobworICAgICAgICAxMDUzLCAgICAxLCAxMSwgICAgIC8vIFRlbmdpCisgICAgICAgIDEwNTgsICAgIDgsIDI5LCAgICAgLy8gS29oZWkKKyAgICAgICAgMTA2NSwgICAgOCwgIDIsICAgICAvLyBKaXJ5YWt1CisgICAgICAgIDEwNjksICAgIDQsIDEzLCAgICAgLy8gRW5reXUKKyAgICAgICAgMTA3NCwgICAgOCwgMjMsICAgICAvLyBTaG9obworICAgICAgICAxMDc3LCAgIDExLCAxNywgICAgIC8vIFNob3J5YWt1CisgICAgICAgIDEwODEsICAgIDIsIDEwLCAgICAgLy8gRWlobworICAgICAgICAxMDg0LCAgICAyLCAgNywgICAgIC8vIE90b2t1CisgICAgICAgIDEwODcsICAgIDQsICA3LCAgICAgLy8gS2FuamkKKyAgICAgICAgMTA5NCwgICAxMiwgMTUsICAgICAvLyBLYWhvCisgICAgICAgIDEwOTYsICAgMTIsIDE3LCAgICAgLy8gRWljaG8KKyAgICAgICAgMTA5NywgICAxMSwgMjEsICAgICAvLyBTaG90b2t1CisgICAgICAgIDEwOTksICAgIDgsIDI4LCAgICAgLy8gS293YQorICAgICAgICAxMTA0LCAgICAyLCAxMCwgICAgIC8vIENob2ppCisgICAgICAgIDExMDYsICAgIDQsICA5LCAgICAgLy8gS2FzaG8KKyAgICAgICAgMTEwOCwgICAgOCwgIDMsICAgICAvLyBUZW5uaW4KKyAgICAgICAgMTExMCwgICAgNywgMTMsICAgICAvLyBUZW4tZWkKKyAgICAgICAgMTExMywgICAgNywgMTMsICAgICAvLyBFaWt5dQorICAgICAgICAxMTE4LCAgICA0LCAgMywgICAgIC8vIEdlbi1laQorICAgICAgICAxMTIwLCAgICA0LCAxMCwgICAgIC8vIEhvYW4KKyAgICAgICAgMTEyNCwgICAgNCwgIDMsICAgICAvLyBUZW5qaQorICAgICAgICAxMTI2LCAgICAxLCAyMiwgICAgIC8vIERhaWppCisgICAgICAgIDExMzEsICAgIDEsIDI5LCAgICAgLy8gVGVuc2hvCisgICAgICAgIDExMzIsICAgIDgsIDExLCAgICAgLy8gQ2hvc2hvCisgICAgICAgIDExMzUsICAgIDQsIDI3LCAgICAgLy8gSG9lbgorICAgICAgICAxMTQxLCAgICA3LCAxMCwgICAgIC8vIEVpamkKKyAgICAgICAgMTE0MiwgICAgNCwgMjgsICAgICAvLyBLb2ppCisgICAgICAgIDExNDQsICAgIDIsIDIzLCAgICAgLy8gVGVueW8KKyAgICAgICAgMTE0NSwgICAgNywgMjIsICAgICAvLyBLeXVhbgorICAgICAgICAxMTUxLCAgICAxLCAyNiwgICAgIC8vIE5pbnBlaQorICAgICAgICAxMTU0LCAgIDEwLCAyOCwgICAgIC8vIEt5dWp1CisgICAgICAgIDExNTYsICAgIDQsIDI3LCAgICAgLy8gSG9nZW4KKyAgICAgICAgMTE1OSwgICAgNCwgMjAsICAgICAvLyBIZWlqaQorICAgICAgICAxMTYwLCAgICAxLCAxMCwgICAgIC8vIEVpcnlha3UKKyAgICAgICAgMTE2MSwgICAgOSwgIDQsICAgICAvLyBPaG8KKyAgICAgICAgMTE2MywgICAgMywgMjksICAgICAvLyBDaG9rYW4KKyAgICAgICAgMTE2NSwgICAgNiwgIDUsICAgICAvLyBFaW1hbgorICAgICAgICAxMTY2LCAgICA4LCAyNywgICAgIC8vIE5pbi1hbgorICAgICAgICAxMTY5LCAgICA0LCAgOCwgICAgIC8vIEthbworICAgICAgICAxMTcxLCAgICA0LCAyMSwgICAgIC8vIFNob2FuCisgICAgICAgIDExNzUsICAgIDcsIDI4LCAgICAgLy8gQW5nZW4KKyAgICAgICAgMTE3NywgICAgOCwgIDQsICAgICAvLyBKaXNobworICAgICAgICAxMTgxLCAgICA3LCAxNCwgICAgIC8vIFlvd2EKKyAgICAgICAgMTE4MiwgICAgNSwgMjcsICAgICAvLyBKdWVpCisgICAgICAgIDExODQsICAgIDQsIDE2LCAgICAgLy8gR2Vucnl1a3UKKyAgICAgICAgMTE4NSwgICAgOCwgMTQsICAgICAvLyBCdW5qaQorICAgICAgICAxMTkwLCAgICA0LCAxMSwgICAgIC8vIEtlbmt5dQorICAgICAgICAxMTk5LCAgICA0LCAyNywgICAgIC8vIFNob2ppCisgICAgICAgIDEyMDEsICAgIDIsIDEzLCAgICAgLy8gS2VubmluCisgICAgICAgIDEyMDQsICAgIDIsIDIwLCAgICAgLy8gR2Vua3l1CisgICAgICAgIDEyMDYsICAgIDQsIDI3LCAgICAgLy8gS2VuLWVpCisgICAgICAgIDEyMDcsICAgMTAsIDI1LCAgICAgLy8gU2hvZ2VuCisgICAgICAgIDEyMTEsICAgIDMsICA5LCAgICAgLy8gS2Vucnlha3UKKyAgICAgICAgMTIxMywgICAxMiwgIDYsICAgICAvLyBLZW5wbworICAgICAgICAxMjE5LCAgICA0LCAxMiwgICAgIC8vIFNob2t5dQorICAgICAgICAxMjIyLCAgICA0LCAxMywgICAgIC8vIEpvbworICAgICAgICAxMjI0LCAgIDExLCAyMCwgICAgIC8vIEdlbm5pbgorICAgICAgICAxMjI1LCAgICA0LCAyMCwgICAgIC8vIEthcm9rdQorICAgICAgICAxMjI3LCAgIDEyLCAxMCwgICAgIC8vIEFudGVpCisgICAgICAgIDEyMjksICAgIDMsICA1LCAgICAgLy8gS2Fua2kKKyAgICAgICAgMTIzMiwgICAgNCwgIDIsICAgICAvLyBKb2VpCisgICAgICAgIDEyMzMsICAgIDQsIDE1LCAgICAgLy8gVGVtcHVrdQorICAgICAgICAxMjM0LCAgIDExLCAgNSwgICAgIC8vIEJ1bnJ5YWt1CisgICAgICAgIDEyMzUsICAgIDksIDE5LCAgICAgLy8gS2F0ZWkKKyAgICAgICAgMTIzOCwgICAxMSwgMjMsICAgICAvLyBSeWFrdW5pbgorICAgICAgICAxMjM5LCAgICAyLCAgNywgICAgIC8vIEVuLW8KKyAgICAgICAgMTI0MCwgICAgNywgMTYsICAgICAvLyBOaW5qaQorICAgICAgICAxMjQzLCAgICAyLCAyNiwgICAgIC8vIEthbmdlbgorICAgICAgICAxMjQ3LCAgICAyLCAyOCwgICAgIC8vIEhvamkKKyAgICAgICAgMTI0OSwgICAgMywgMTgsICAgICAvLyBLZW5jaG8KKyAgICAgICAgMTI1NiwgICAxMCwgIDUsICAgICAvLyBLb2dlbgorICAgICAgICAxMjU3LCAgICAzLCAxNCwgICAgIC8vIFNob2thCisgICAgICAgIDEyNTksICAgIDMsIDI2LCAgICAgLy8gU2hvZ2VuCisgICAgICAgIDEyNjAsICAgIDQsIDEzLCAgICAgLy8gQnVuLW8KKyAgICAgICAgMTI2MSwgICAgMiwgMjAsICAgICAvLyBLb2NobworICAgICAgICAxMjY0LCAgICAyLCAyOCwgICAgIC8vIEJ1bi1laQorICAgICAgICAxMjc1LCAgICA0LCAyNSwgICAgIC8vIEtlbmppCisgICAgICAgIDEyNzgsICAgIDIsIDI5LCAgICAgLy8gS29hbgorICAgICAgICAxMjg4LCAgICA0LCAyOCwgICAgIC8vIFNob28KKyAgICAgICAgMTI5MywgICAgOCwgNTUsICAgICAvLyBFaW5pbgorICAgICAgICAxMjk5LCAgICA0LCAyNSwgICAgIC8vIFNob2FuCisgICAgICAgIDEzMDIsICAgMTEsIDIxLCAgICAgLy8gS2VuZ2VuCisgICAgICAgIDEzMDMsICAgIDgsICA1LCAgICAgLy8gS2FnZW4KKyAgICAgICAgMTMwNiwgICAxMiwgMTQsICAgICAvLyBUb2t1amkKKyAgICAgICAgMTMwOCwgICAxMCwgIDksICAgICAvLyBFbmtlaQorICAgICAgICAxMzExLCAgICA0LCAyOCwgICAgIC8vIE9jaG8KKyAgICAgICAgMTMxMiwgICAgMywgMjAsICAgICAvLyBTaG93YQorICAgICAgICAxMzE3LCAgICAyLCAgMywgICAgIC8vIEJ1bnBvCisgICAgICAgIDEzMTksICAgIDQsIDI4LCAgICAgLy8gR2VubworICAgICAgICAxMzIxLCAgICAyLCAyMywgICAgIC8vIEdlbmt5bworICAgICAgICAxMzI0LCAgIDEyLCAgOSwgICAgIC8vIFNob2NodQorICAgICAgICAxMzI2LCAgICA0LCAyNiwgICAgIC8vIEthcmVraQorICAgICAgICAxMzI5LCAgICA4LCAyOSwgICAgIC8vIEdlbnRva3UKKyAgICAgICAgMTMzMSwgICAgOCwgIDksICAgICAvLyBHZW5rbworICAgICAgICAxMzM0LCAgICAxLCAyOSwgICAgIC8vIEtlbW11CisgICAgICAgIDEzMzYsICAgIDIsIDI5LCAgICAgLy8gRW5nZW4KKyAgICAgICAgMTM0MCwgICAgNCwgMjgsICAgICAvLyBLb2tva3UKKyAgICAgICAgMTM0NiwgICAxMiwgIDgsICAgICAvLyBTaG9oZWkKKyAgICAgICAgMTM3MCwgICAgNywgMjQsICAgICAvLyBLZW50b2t1CisgICAgICAgIDEzNzIsICAgIDQsICAxLCAgICAgLy8gQnVuY2hcdTAxNjkKKyAgICAgICAgMTM3NSwgICAgNSwgMjcsICAgICAvLyBUZW5qdQorICAgICAgICAxMzc5LCAgICAzLCAyMiwgICAgIC8vIEtvcnlha3UKKyAgICAgICAgMTM4MSwgICAgMiwgMTAsICAgICAvLyBLb3dhCisgICAgICAgIDEzODQsICAgIDQsIDI4LCAgICAgLy8gR2VuY2hcdTAxNjkKKyAgICAgICAgMTM4NCwgICAgMiwgMjcsICAgICAvLyBNZWl0b2t1CisgICAgICAgIDEzODcsICAgIDgsIDIzLCAgICAgLy8gS2FrZWkKKyAgICAgICAgMTM4OSwgICAgMiwgIDksICAgICAvLyBLb28KKyAgICAgICAgMTM5MCwgICAgMywgMjYsICAgICAvLyBNZWl0b2t1CisgICAgICAgIDEzOTQsICAgIDcsICA1LCAgICAgLy8gT2VpCisgICAgICAgIDE0MjgsICAgIDQsIDI3LCAgICAgLy8gU2hvY2hvCisgICAgICAgIDE0MjksICAgIDksICA1LCAgICAgLy8gRWlreW8KKyAgICAgICAgMTQ0MSwgICAgMiwgMTcsICAgICAvLyBLYWtpdHN1CisgICAgICAgIDE0NDQsICAgIDIsICA1LCAgICAgLy8gQnVuLWFuCisgICAgICAgIDE0NDksICAgIDcsIDI4LCAgICAgLy8gSG90b2t1CisgICAgICAgIDE0NTIsICAgIDcsIDI1LCAgICAgLy8gS3lvdG9rdQorICAgICAgICAxNDU1LCAgICA3LCAyNSwgICAgIC8vIEtvc2hvCisgICAgICAgIDE0NTcsICAgIDksIDI4LCAgICAgLy8gQ2hvcm9rdQorICAgICAgICAxNDYwLCAgIDEyLCAyMSwgICAgIC8vIEthbnNobworICAgICAgICAxNDY2LCAgICAyLCAyOCwgICAgIC8vIEJ1bnNobworICAgICAgICAxNDY3LCAgICAzLCAgMywgICAgIC8vIE9uaW4KKyAgICAgICAgMTQ2OSwgICAgNCwgMjgsICAgICAvLyBCdW5tZWkKKyAgICAgICAgMTQ4NywgICAgNywgMjksICAgICAvLyBDaG9reW8KKyAgICAgICAgMTQ4OSwgICAgOCwgMjEsICAgICAvLyBFbnRva3UKKyAgICAgICAgMTQ5MiwgICAgNywgMTksICAgICAvLyBNZWlvCisgICAgICAgIDE1MDEsICAgIDIsIDI5LCAgICAgLy8gQnVua2kKKyAgICAgICAgMTUwNCwgICAgMiwgMzAsICAgICAvLyBFaXNobworICAgICAgICAxNTIxLCAgICA4LCAyMywgICAgIC8vIFRhaWVpCisgICAgICAgIDE1MjgsICAgIDgsIDIwLCAgICAgLy8gS3lvcm9rdQorICAgICAgICAxNTMyLCAgICA3LCAyOSwgICAgIC8vIFRlbm1vbgorICAgICAgICAxNTU1LCAgIDEwLCAyMywgICAgIC8vIEtvamkKKyAgICAgICAgMTU1OCwgICAgMiwgMjgsICAgICAvLyBFaXJva3UKKyAgICAgICAgMTU3MCwgICAgNCwgMjMsICAgICAvLyBHZW5raQorICAgICAgICAxNTczLCAgICA3LCAyOCwgICAgIC8vIFRlbnNobworICAgICAgICAxNTkyLCAgIDEyLCAgOCwgICAgIC8vIEJ1bnJva3UKKyAgICAgICAgMTU5NiwgICAxMCwgMjcsICAgICAvLyBLZWljaG8KKyAgICAgICAgMTYxNSwgICAgNywgMTMsICAgICAvLyBHZW53YQorICAgICAgICAxNjI0LCAgICAyLCAzMCwgICAgIC8vIEthbi1laQorICAgICAgICAxNjQ0LCAgIDEyLCAxNiwgICAgIC8vIFNob2hvCisgICAgICAgIDE2NDgsICAgIDIsIDE1LCAgICAgLy8gS2VpYW4KKyAgICAgICAgMTY1MiwgICAgOSwgMTgsICAgICAvLyBTaG9vCisgICAgICAgIDE2NTUsICAgIDQsIDEzLCAgICAgLy8gTWVpcnlha3UKKyAgICAgICAgMTY1OCwgICAgNywgMjMsICAgICAvLyBNYW5qaQorICAgICAgICAxNjYxLCAgICA0LCAyNSwgICAgIC8vIEthbmJ1bgorICAgICAgICAxNjczLCAgICA5LCAyMSwgICAgIC8vIEVucG8KKyAgICAgICAgMTY4MSwgICAgOSwgMjksICAgICAvLyBUZW53YQorICAgICAgICAxNjg0LCAgICAyLCAyMSwgICAgIC8vIEpva3lvCisgICAgICAgIDE2ODgsICAgIDksIDMwLCAgICAgLy8gR2Vucm9rdQorICAgICAgICAxNzA0LCAgICAzLCAxMywgICAgIC8vIEhvZWkKKyAgICAgICAgMTcxMSwgICAgNCwgMjUsICAgICAvLyBTaG90b2t1CisgICAgICAgIDE3MTYsICAgIDYsIDIyLCAgICAgLy8gS3lvaG8KKyAgICAgICAgMTczNiwgICAgNCwgMjgsICAgICAvLyBHZW5idW4KKyAgICAgICAgMTc0MSwgICAgMiwgMjcsICAgICAvLyBLYW5wbworICAgICAgICAxNzQ0LCAgICAyLCAyMSwgICAgIC8vIEVua3lvCisgICAgICAgIDE3NDgsICAgIDcsIDEyLCAgICAgLy8gS2FuLWVuCisgICAgICAgIDE3NTEsICAgMTAsIDI3LCAgICAgLy8gSG9yeWFrdQorICAgICAgICAxNzY0LCAgICA2LCAgMiwgICAgIC8vIE1laXdhCisgICAgICAgIDE3NzIsICAgMTEsIDE2LCAgICAgLy8gQW4tZWkKKyAgICAgICAgMTc4MSwgICAgNCwgIDIsICAgICAvLyBUZW5tZWkKKyAgICAgICAgMTc4OSwgICAgMSwgMjUsICAgICAvLyBLYW5zZWkKKyAgICAgICAgMTgwMSwgICAgMiwgIDUsICAgICAvLyBLeW93YQorICAgICAgICAxODA0LCAgICAyLCAxMSwgICAgIC8vIEJ1bmthCisgICAgICAgIDE4MTgsICAgIDQsIDIyLCAgICAgLy8gQnVuc2VpCisgICAgICAgIDE4MzAsICAgMTIsIDEwLCAgICAgLy8gVGVucG8KKyAgICAgICAgMTg0NCwgICAxMiwgIDIsICAgICAvLyBLb2thCisgICAgICAgIDE4NDgsICAgIDIsIDI4LCAgICAgLy8gS2FlaQorICAgICAgICAxODU0LCAgIDExLCAyNywgICAgIC8vIEFuc2VpCisgICAgICAgIDE4NjAsICAgIDMsIDE4LCAgICAgLy8gTWFuLWVuCisgICAgICAgIDE4NjEsICAgIDIsIDE5LCAgICAgLy8gQnVua3l1CisgICAgICAgIDE4NjQsICAgIDIsIDIwLCAgICAgLy8gR2VuamkKKyAgICAgICAgMTg2NSwgICAgNCwgIDcsICAgICAvLyBLZWlvCisgICAgICAgIDE4NjgsICAgIDksICA4LCAgICAgLy8gTWVpamkKKyAgICAgICAgMTkxMiwgICAgNywgMzAsICAgICAvLyBUYWlzaG8KKyAgICAgICAgMTkyNiwgICAxMiwgMjUsICAgICAvLyBTaG93YQorICAgICAgICAxOTg5LCAgICAxLCAgOCwgICAgIC8vIEhlaXNlaQorICAgIH07CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBQdWJsaWMgY29uc3RhbnRzIGZvciBzb21lIG9mIHRoZSByZWNlbnQgZXJhcyB0aGF0IGZvbGtzIG1pZ2h0IHVzZS4uLgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLy8gQ29uc3RhbnQgZm9yIHRoZSBjdXJyZW50IGVyYS4gIFRoaXMgbXVzdCBiZSByZWd1bGFybHkgdXBkYXRlZC4KKyAgICAvKioKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludCBDVVJSRU5UX0VSQSA9IChFUkFTLmxlbmd0aCAvIDMpIC0gMTsKKyAgICAKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgZm9yIHRoZSBlcmEgc3RhcnRpbmcgb24gU2VwdC4gOCwgMTg2OCBBRC4KKyAgICAgKiBAc3RhYmxlICBJQ1UgMi44IAorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgZmluYWwgaW50IE1FSUpJID0gQ1VSUkVOVF9FUkEgLSAzOworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciB0aGUgZXJhIHN0YXJ0aW5nIG9uIEp1bHkgMzAsIDE5MTIgQUQuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludCBUQUlTSE8gPSBDVVJSRU5UX0VSQSAtIDI7CisgICAgCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IGZvciB0aGUgZXJhIHN0YXJ0aW5nIG9uIERlYy4gMjUsIDE5MjYgQUQuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludCBTSE9XQSA9IENVUlJFTlRfRVJBIC0gMTsKKworICAgIC8qKiAKKyAgICAgKiBDb25zdGFudCBmb3IgdGhlIGVyYSBzdGFydGluZyBvbiBKYW4uIDcsIDE5ODkgQUQuIAorICAgICAqIEBzdGFibGUgSUNVIDIuOCAKKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIGZpbmFsIGludCBIRUlTRUkgPSBDVVJSRU5UX0VSQTsKKworICAgIC8qKgorICAgICAqIFBhcnRpYWwgbGltaXRzIHRhYmxlIGZvciBsaW1pdHMgdGhhdCBkaWZmZXIgZnJvbSBHcmVnb3JpYW5DYWxlbmRhcidzLgorICAgICAqIFRoZSBZRUFSIG1heCBsaW1pdHMgYXJlIGZpbGxlZCBpbiB0aGUgZmlyc3QgdGltZSB0aGV5IGFyZSBuZWVkZWQuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IExJTUlUU1tdW10gPSB7CisgICAgICAgIC8vIE1pbmltdW0gIEdyZWF0ZXN0ICAgICAgICBMZWFzdCAgICAgIE1heGltdW0KKyAgICAgICAgLy8gICAgICAgICAgIE1pbmltdW0gICAgICBNYXhpbXVtCisgICAgICAgIHsgICAgICAgIDAsICAgICAgICAwLCBDVVJSRU5UX0VSQSwgQ1VSUkVOVF9FUkEgfSwgLy8gRVJBCisgICAgICAgIHsgICAgICAgIDEsICAgICAgICAxLCAgICAgICAgICAgMCwgICAgICAgICAgIDAgfSwgLy8gWUVBUgorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIFlFQVJfTElNSVRfS05PV04gPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIEdyZWdvcmlhbkNhbGVuZGFyLiAgV2Ugc2hvdWxkIHJlYWxseSBoYW5kbGUgWUVBUl9XT1kgYW5kCisgICAgICogRVhURU5ERURfWUVBUiBoZXJlIHRvbyB0byBpbXBsZW1lbnQgdGhlIDEuLjUwMDAwMDAgcmFuZ2UsIGJ1dCBpdCdzCisgICAgICogbm90IGNyaXRpY2FsLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHByb3RlY3RlZCBpbnQgaGFuZGxlR2V0TGltaXQoaW50IGZpZWxkLCBpbnQgbGltaXRUeXBlKSB7CisgICAgICAgIHN3aXRjaCAoZmllbGQpIHsKKyAgICAgICAgY2FzZSBFUkE6CisgICAgICAgICAgICByZXR1cm4gTElNSVRTW2ZpZWxkXVtsaW1pdFR5cGVdOworICAgICAgICBjYXNlIFlFQVI6CisgICAgICAgICAgICBpZiAoIVlFQVJfTElNSVRfS05PV04pIHsKKyAgICAgICAgICAgICAgICBpbnQgbWluID0gRVJBU1szXSAtIEVSQVNbMF07CisgICAgICAgICAgICAgICAgaW50IG1heCA9IG1pbjsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpPTY7IGk8RVJBUy5sZW5ndGg7IGkrPTMpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IGQgPSBFUkFTW2ldIC0gRVJBU1tpLTNdOworICAgICAgICAgICAgICAgICAgICBpZiAoZCA8IG1pbikgeworICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gZDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoZCA+IG1heCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbWF4ID0gZDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBMSU1JVFNbZmllbGRdW0xFQVNUX01BWElNVU1dID0gKyttaW47IC8vIDEtYmFzZWQKKyAgICAgICAgICAgICAgICBMSU1JVFNbZmllbGRdW01BWElNVU1dID0gKyttYXg7IC8vIDEtYmFzZWQKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBMSU1JVFNbZmllbGRdW2xpbWl0VHlwZV07CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuaGFuZGxlR2V0TGltaXQoZmllbGQsIGxpbWl0VHlwZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGN1cnJlbnQgQ2FsZW5kYXIgdHlwZS4KKyAgICAgKiBAcmV0dXJuIHR5cGUgb2YgY2FsZW5kYXIgKGdyZWdvcmlhbiwgZXRjLikKKyAgICAgKiBAaW50ZXJuYWwgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VHlwZSgpIHsKKyAgICAgICAgcmV0dXJuICJqYXBhbmVzZSI7CisgICAgfQorCisgICAgLyoKKyAgICBwcml2YXRlIHN0YXRpYyBDYWxlbmRhckZhY3RvcnkgZmFjdG9yeTsKKyAgICBwdWJsaWMgc3RhdGljIENhbGVuZGFyRmFjdG9yeSBmYWN0b3J5KCkgeworICAgICAgICBpZiAoZmFjdG9yeSA9PSBudWxsKSB7CisgICAgICAgICAgICBmYWN0b3J5ID0gbmV3IENhbGVuZGFyRmFjdG9yeSgpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgQ2FsZW5kYXIgY3JlYXRlKFRpbWVab25lIHR6LCBVTG9jYWxlIGxvYykgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEphcGFuZXNlQ2FsZW5kYXIodHosIGxvYyk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHVibGljIFN0cmluZyBmYWN0b3J5TmFtZSgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJKYXBhbmVzZSI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFjdG9yeTsKKyAgICB9CisgICAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL0xvY2FsZURhdGEuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL0xvY2FsZURhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2U5NDc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvTG9jYWxlRGF0YS5qYXZhCkBAIC0wLDAgKzEsMzExIEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlOworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVW5pY29kZVNldDsKKworLyoqCisgKiBBIGNsYXNzIGZvciBhY2Nlc3NpbmcgbWlzY2VsbGVuZW91cyBkYXRhIGluIHRoZSBsb2NhbGUgYnVuZGxlcworICogQGF1dGhvciByYW0KKyAqIEBzdGFibGUgSUNVIDIuOAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgTG9jYWxlRGF0YSB7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEVYRU1QTEFSX0NIQVJTICAgICAgPSAiRXhlbXBsYXJDaGFyYWN0ZXJzIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTUVBU1VSRU1FTlRfU1lTVEVNICA9ICJNZWFzdXJlbWVudFN5c3RlbSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFBBUEVSX1NJWkUgICAgICAgICAgPSAiUGFwZXJTaXplIjsKKyAgICBwcml2YXRlIGJvb2xlYW4gbm9TdWJzdGl0dXRlOworICAgIHByaXZhdGUgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlOworCisgICAgLyoqCisgICAgICogRVhUeXBlIGZvciB7QGxpbmsgI2dldEV4ZW1wbGFyU2V0KGludCwgaW50KX0uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFU19TVEFOREFSRCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBFWFR5cGUgZm9yIHtAbGluayAjZ2V0RXhlbXBsYXJTZXQoaW50LCBpbnQpfS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVTX0FVWElMSUFSWSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBDb3VudCBvZiBFWFR5cGVzIGZvciB7QGxpbmsgI2dldEV4ZW1wbGFyU2V0KGludCwgaW50KX0uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFU19DT1VOVCA9IDI7CisgICAgCisgICAgLyoqCisgICAgICogRGVsaW1pdGVyIHR5cGUgZm9yIHtAbGluayAjZ2V0RGVsaW1pdGVyKGludCl9LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgUVVPVEFUSU9OX1NUQVJUID0gMDsKKworICAgIC8qKgorICAgICAqIERlbGltaXRlciB0eXBlIGZvciB7QGxpbmsgI2dldERlbGltaXRlcihpbnQpfS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFFVT1RBVElPTl9FTkQgPSAxOworCisgICAgLyoqCisgICAgICogRGVsaW1pdGVyIHR5cGUgZm9yIHtAbGluayAjZ2V0RGVsaW1pdGVyKGludCl9LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUxUX1FVT1RBVElPTl9TVEFSVCA9IDI7CisKKyAgICAvKioKKyAgICAgKiBEZWxpbWl0ZXIgdHlwZSBmb3Ige0BsaW5rICNnZXREZWxpbWl0ZXIoaW50KX0uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBTFRfUVVPVEFUSU9OX0VORCA9IDM7CisKKyAgICAvKioKKyAgICAgKiBDb3VudCBvZiBkZWxpbWl0ZXIgdHlwZXMgZm9yIHtAbGluayAjZ2V0RGVsaW1pdGVyKGludCl9LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgREVMSU1JVEVSX0NPVU5UID0gNDsKKworICAgIC8vIHByaXZhdGUgY29uc3RydWN0b3IgdG8gcHJldmVudCBkZWZhdWx0IGNvbnN0cnVjdGlvbgorICAgIC8vL0NMT1ZFUjpPRkYKKyAgICBwcml2YXRlIExvY2FsZURhdGEoKXt9CisgICAgLy8vQ0xPVkVSOk9OCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzZXQgb2YgZXhlbXBsYXIgY2hhcmFjdGVycyBmb3IgYSBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlICAgIExvY2FsZSBmb3Igd2hpY2ggdGhlIGV4ZW1wbGFyIGNoYXJhY3RlciBzZXQKKyAgICAgKiAgICAgICAgICAgICAgICAgIGlzIHRvIGJlIHJldHJpZXZlZC4KKyAgICAgKiBAcGFyYW0gb3B0aW9ucyAgIEJpdG1hc2sgZm9yIG9wdGlvbnMgdG8gYXBwbHkgdG8gdGhlIGV4ZW1wbGFyIHBhdHRlcm4uCisgICAgICogICAgICAgICAgICAgICAgICBTcGVjaWZ5IHplcm8gdG8gcmV0cmlldmUgdGhlIGV4ZW1wbGFyIHNldCBhcyBpdCBpcworICAgICAqICAgICAgICAgICAgICAgICAgZGVmaW5lZCBpbiB0aGUgbG9jYWxlIGRhdGEuICBTcGVjaWZ5CisgICAgICogICAgICAgICAgICAgICAgICBVbmljb2RlU2V0LkNBU0UgdG8gcmV0cmlldmUgYSBjYXNlLWZvbGRlZCBleGVtcGxhcgorICAgICAqICAgICAgICAgICAgICAgICAgc2V0LiAgU2VlIHtAbGluayBVbmljb2RlU2V0I2FwcGx5UGF0dGVybihTdHJpbmcsCisgICAgICogICAgICAgICAgICAgICAgICBpbnQpfSBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIHZhbGlkIG9wdGlvbnMuICBUaGUKKyAgICAgKiAgICAgICAgICAgICAgICAgIElHTk9SRV9TUEFDRSBiaXQgaXMgYWx3YXlzIHNldCwgcmVnYXJkbGVzcyBvZiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgIHZhbHVlIG9mICdvcHRpb25zJy4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBzZXQgb2YgZXhlbXBsYXIgY2hhcmFjdGVycyBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVW5pY29kZVNldCBnZXRFeGVtcGxhclNldChVTG9jYWxlIGxvY2FsZSwgaW50IG9wdGlvbnMpIHsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUpOworICAgICAgICBTdHJpbmcgcGF0dGVybiA9IGJ1bmRsZS5nZXRTdHJpbmcoRVhFTVBMQVJfQ0hBUlMpOworICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVTZXQocGF0dGVybiwgVW5pY29kZVNldC5JR05PUkVfU1BBQ0UgfCBvcHRpb25zKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2V0IG9mIGV4ZW1wbGFyIGNoYXJhY3RlcnMgZm9yIGEgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIG9wdGlvbnMgICBCaXRtYXNrIGZvciBvcHRpb25zIHRvIGFwcGx5IHRvIHRoZSBleGVtcGxhciBwYXR0ZXJuLgorICAgICAqICAgICAgICAgICAgICAgICAgU3BlY2lmeSB6ZXJvIHRvIHJldHJpZXZlIHRoZSBleGVtcGxhciBzZXQgYXMgaXQgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgIGRlZmluZWQgaW4gdGhlIGxvY2FsZSBkYXRhLiAgU3BlY2lmeQorICAgICAqICAgICAgICAgICAgICAgICAgVW5pY29kZVNldC5DQVNFIHRvIHJldHJpZXZlIGEgY2FzZS1mb2xkZWQgZXhlbXBsYXIKKyAgICAgKiAgICAgICAgICAgICAgICAgIHNldC4gIFNlZSB7QGxpbmsgVW5pY29kZVNldCNhcHBseVBhdHRlcm4oU3RyaW5nLAorICAgICAqICAgICAgICAgICAgICAgICAgaW50KX0gZm9yIGEgY29tcGxldGUgbGlzdCBvZiB2YWxpZCBvcHRpb25zLiAgVGhlCisgICAgICogICAgICAgICAgICAgICAgICBJR05PUkVfU1BBQ0UgYml0IGlzIGFsd2F5cyBzZXQsIHJlZ2FyZGxlc3Mgb2YgdGhlCisgICAgICogICAgICAgICAgICAgICAgICB2YWx1ZSBvZiAnb3B0aW9ucycuCisgICAgICogQHBhcmFtIGV4dHlwZSAgICAgIFRoZSB0eXBlIG9mIGV4ZW1wbGFyIHNldCB0byBiZSByZXRyaWV2ZWQsCisgICAgICogICAgICAgICAgICAgICAgICBFU19TVEFOREFSRCBvciBFU19BVVhJTElBUlkKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBzZXQgb2YgZXhlbXBsYXIgY2hhcmFjdGVycyBmb3IgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBVbmljb2RlU2V0IGdldEV4ZW1wbGFyU2V0KGludCBvcHRpb25zLCBpbnQgZXh0eXBlKSB7CisgICAgICAgIFN0cmluZyBbXSBleGVtcGxhclNldFR5cGVzID0geyAiRXhlbXBsYXJDaGFyYWN0ZXJzIiwgIkF1eEV4ZW1wbGFyQ2hhcmFjdGVycyIgfTsKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3RyaW5nQnVuZGxlID0gYnVuZGxlLmdldChleGVtcGxhclNldFR5cGVzW2V4dHlwZV0pOworCisgICAgICAgIGlmICggbm9TdWJzdGl0dXRlICYmIChzdHJpbmdCdW5kbGUuZ2V0TG9hZGluZ1N0YXR1cygpID09IElDVVJlc291cmNlQnVuZGxlLkZST01fUk9PVCkgKQorICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICByZXR1cm4gbmV3IFVuaWNvZGVTZXQoc3RyaW5nQnVuZGxlLmdldFN0cmluZygpLCBVbmljb2RlU2V0LklHTk9SRV9TUEFDRSB8IG9wdGlvbnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIExvY2FsZURhdGEgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgVUxvY2FsZSBzcGVjaWZpZWQgaW4gbG9jYWxlCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlICAgIExvY2FsZSB3aXRoIHRoaWNoIHRoZSBsb2NhbGUgZGF0YSBvYmplY3QgaXMgYXNzb2NpYXRlZC4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgbG9jYWxlIGRhdGEgb2JqZWN0LgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBMb2NhbGVEYXRhIGdldEluc3RhbmNlKFVMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgTG9jYWxlRGF0YSBsZCA9IG5ldyBMb2NhbGVEYXRhKCk7CisgICAgICAgbGQuYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShJQ1VSZXNvdXJjZUJ1bmRsZS5JQ1VfQkFTRV9OQU1FLCBsb2NhbGUgKTsKKyAgICAgICBsZC5ub1N1YnN0aXR1dGUgPSBmYWxzZTsKKyAgICAgICByZXR1cm4gbGQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgTG9jYWxlRGF0YSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZhdWx0IGxvY2FsZQorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICBBIGxvY2FsZSBkYXRhIG9iamVjdC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTG9jYWxlRGF0YSBnZXRJbnN0YW5jZSgpIHsKKyAgICAgICByZXR1cm4gTG9jYWxlRGF0YS5nZXRJbnN0YW5jZShVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgIm5vIHN1YnN0aXR1dGUiIGJlaGF2aW9yIG9mIHRoaXMgbG9jYWxlIGRhdGEgb2JqZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIHNldHRpbmcJVmFsdWUgZm9yIHRoZSBubyBzdWJzdGl0dXRlIGJlaGF2aW9yLiAgSWYgVFJVRSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIG1ldGhvZHMgb2YgdGhpcyBsb2NhbGUgZGF0YSBvYmplY3Qgd2lsbCByZXR1cm4KKyAgICAgKiAgICAgICAgICAgICAgICAgIGFuIGVycm9yIHdoZW4gbm8gZGF0YSBpcyBhdmFpbGFibGUgZm9yIHRoYXQgbWV0aG9kLAorICAgICAqICAgICAgICAgICAgICAgICAgZ2l2ZW4gdGhlIGxvY2FsZSBJRCBzdXBwbGllZCB0byB0aGUgY29uc3RydWN0b3IuCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROb1N1YnN0aXR1dGUoYm9vbGVhbiBzZXR0aW5nKSB7CisgICAgICAgbm9TdWJzdGl0dXRlID0gc2V0dGluZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSAibm8gc3Vic3RpdHV0ZSIgYmVoYXZpb3Igb2YgdGhpcyBsb2NhbGUgZGF0YSBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFZhbHVlIGZvciB0aGUgbm8gc3Vic3RpdHV0ZSBiZWhhdmlvci4gIElmIFRSVUUsCisgICAgICogICAgICAgICAgICAgICAgICBtZXRob2RzIG9mIHRoaXMgbG9jYWxlIGRhdGEgb2JqZWN0IHdpbGwgcmV0dXJuCisgICAgICogICAgICAgICAgICAgICAgICBhbiBlcnJvciB3aGVuIG5vIGRhdGEgaXMgYXZhaWxhYmxlIGZvciB0aGF0IG1ldGhvZCwKKyAgICAgKiAgICAgICAgICAgICAgICAgIGdpdmVuIHRoZSBsb2NhbGUgSUQgc3VwcGxpZWQgdG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ2V0Tm9TdWJzdGl0dXRlKCkgeworICAgICAgIHJldHVybiBub1N1YnN0aXR1dGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIGEgZGVsaW1pdGVyIHN0cmluZyBmcm9tIHRoZSBsb2NhbGUgZGF0YS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0eXBlICAgICAgVGhlIHR5cGUgb2YgZGVsaW1pdGVyIHN0cmluZyBkZXNpcmVkLiAgQ3VycmVudGx5LAorICAgICAqICAgICAgICAgICAgICAgICAgdGhlIHZhbGlkIGNob2ljZXMgYXJlIFFVT1RBVElPTl9TVEFSVCwgUVVPVEFUSU9OX0VORCwKKyAgICAgKiAgICAgICAgICAgICAgICAgIEFMVF9RVU9UQVRJT05fU1RBUlQsIG9yIEFMVF9RVU9UQVRJT05fRU5ELgorICAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIGRlc2lyZWQgZGVsaW1pdGVyIHN0cmluZy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGVsaW1pdGVyKGludCB0eXBlKSB7CisgICAgICAgIFN0cmluZyBbXSBkZWxpbWl0ZXJUeXBlcyA9IHsgInF1b3RhdGlvblN0YXJ0IiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInF1b3RhdGlvbkVuZCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbHRlcm5hdGVRdW90YXRpb25TdGFydCIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbHRlcm5hdGVRdW90YXRpb25FbmQiIH07CisKKyAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgc3RyaW5nQnVuZGxlID0gYnVuZGxlLmdldCgiZGVsaW1pdGVycyIpLmdldChkZWxpbWl0ZXJUeXBlc1t0eXBlXSk7CisKKyAgICAgICAgaWYgKCBub1N1YnN0aXR1dGUgJiYgKHN0cmluZ0J1bmRsZS5nZXRMb2FkaW5nU3RhdHVzKCkgPT0gSUNVUmVzb3VyY2VCdW5kbGUuRlJPTV9ST09UKSApCisgICAgICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgIHJldHVybiBuZXcgU3RyaW5nIChzdHJpbmdCdW5kbGUuZ2V0U3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEVudW1lcmF0aW9uIGZvciByZXByZXNlbnRpbmcgdGhlIG1lYXN1cmVtZW50IHN5c3RlbXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBNZWFzdXJlbWVudFN5c3RlbXsKKyAgICAgICAgLyoqIAorICAgICAgICAgKiBNZWFzdXJlbWVudCBzeXN0ZW0gc3BlY2lmaWVkIGJ5IExlIFN5c3QmI3gwMEU4O21lIEludGVybmF0aW9uYWwgZCdVbml0JiN4MDBFOTtzIChTSSkKKyAgICAgICAgICogb3RoZXJ3aXNlIGtub3duIGFzIE1ldHJpYyBzeXN0ZW0uIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTWVhc3VyZW1lbnRTeXN0ZW0gU0kgPSBuZXcgTWVhc3VyZW1lbnRTeXN0ZW0oMCk7CisgCisgICAgICAgIC8qKiAKKyAgICAgICAgICogTWVhc3VyZW1lbnQgc3lzdGVtIGZvbGxvd2VkIGluIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2EuIAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovIAorICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1lYXN1cmVtZW50U3lzdGVtIFVTID0gbmV3IE1lYXN1cmVtZW50U3lzdGVtKDEpOworICAgIAorICAgICAgICBwcml2YXRlIGludCBzeXN0ZW1JRDsKKyAgICAgICAgcHJpdmF0ZSBNZWFzdXJlbWVudFN5c3RlbShpbnQgaWQpeworICAgICAgICAgICAgc3lzdGVtSUQgPSBpZDsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBlcXVhbHMoaW50IGlkKXsKKyAgICAgICAgICAgIHJldHVybiBzeXN0ZW1JRCA9PSBpZDsKKyAgICAgICAgfQorICAgIH0KKyAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1lYXN1cmVtZW50IHN5c3RlbSB1c2VkIGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5IHRoZSBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlICAgICAgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIG1lYXN1cmVtZW50IHN5c3RlbSB0byBiZSByZXRyaWV2ZWQuCisgICAgICogQHJldHVybiBNZWFzdXJlbWVudFN5c3RlbSB0aGUgbWVhc3VyZW1lbnQgc3lzdGVtIHVzZWQgaW4gdGhlIGxvY2FsZS4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgTWVhc3VyZW1lbnRTeXN0ZW0gZ2V0TWVhc3VyZW1lbnRTeXN0ZW0oVUxvY2FsZSBsb2NhbGUpeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIGxvY2FsZSk7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIHN5c0J1bmRsZSA9IGJ1bmRsZS5nZXQoTUVBU1VSRU1FTlRfU1lTVEVNKTsKKyAgICAgICAgCisgICAgICAgIGludCBzeXN0ZW0gPSBzeXNCdW5kbGUuZ2V0SW50KCk7CisgICAgICAgIGlmKE1lYXN1cmVtZW50U3lzdGVtLlVTLmVxdWFscyhzeXN0ZW0pKXsKKyAgICAgICAgICAgIHJldHVybiBNZWFzdXJlbWVudFN5c3RlbS5VUzsKKyAgICAgICAgfQorICAgICAgICBpZihNZWFzdXJlbWVudFN5c3RlbS5TSS5lcXVhbHMoc3lzdGVtKSl7CisgICAgICAgICAgICByZXR1cm4gTWVhc3VyZW1lbnRTeXN0ZW0uU0k7CisgICAgICAgIH0KKyAgICAgICAgLy8gcmV0dXJuIG51bGwgaWYgdGhlIG9iamVjdCBpcyBudWxsIG9yIGlzIG5vdCBhbiBpbnN0YW5jZQorICAgICAgICAvLyBvZiBpbnRlZ2VyIGluZGljYXRpbmcgYW4gZXJyb3IKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEEgY2xhc3MgdGhhdCByZXByZXNlbnRzIHRoZSBzaXplIG9mIGxldHRlciBoZWFkIAorICAgICAqIHVzZWQgaW4gdGhlIGNvdW50cnkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFBhcGVyU2l6ZXsKKyAgICAgICAgcHJpdmF0ZSBpbnQgaGVpZ2h0OworICAgICAgICBwcml2YXRlIGludCB3aWR0aDsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgUGFwZXJTaXplKGludCBoLCBpbnQgdyl7CisgICAgICAgICAgICBoZWlnaHQgPSBoOworICAgICAgICAgICAgd2lkdGggPSB3OworICAgICAgICB9CisgICAgICAgIC8qKiAKKyAgICAgICAgICogUmV0cnVucyB0aGUgaGVpZ2h0IG9mIHRoZSBwYXBlcgorICAgICAgICAgKiBAcmV0dXJuIHRoZSBoZWlnaHQgCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBnZXRIZWlnaHQoKXsKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisgICAgICAgIH0KKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIHdpZHRoIG9mIGh0ZSBwYXBlcgorICAgICAgICAgKiBAcmV0dXJuIHRoZSB3aWR0aAorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0V2lkdGgoKXsKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzaXplIG9mIHBhcGVyIHVzZWQgaW4gdGhlIGxvY2FsZS4gVGhlIHBhcGVyIHNpemVzIHJldHVybmVkIGFyZSBhbHdheXMgaW4gCisgICAgICogPGVtPiBtaWxsaS1tZXRlcnM8ZW0+LgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggdGhlIG1lYXN1cmVtZW50IHN5c3RlbSB0byBiZSByZXRyaWV2ZWQuIAorICAgICAqIEByZXR1cm4gVGhlIHBhcGVyIHNpemUgdXNlZCBpbiB0aGUgbG9jYWxlCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFBhcGVyU2l6ZSBnZXRQYXBlclNpemUoVUxvY2FsZSBsb2NhbGUpeworICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIGxvY2FsZSk7CisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIG9iaiA9IGJ1bmRsZS5nZXQoUEFQRVJfU0laRSk7CisgICAgICAgIGludFtdIHNpemUgPSBvYmouZ2V0SW50VmVjdG9yKCk7CisgICAgICAgIHJldHVybiBuZXcgUGFwZXJTaXplKHNpemVbMF0sIHNpemVbMV0pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL01lYXN1cmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL01lYXN1cmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTM0YjlhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvTWVhc3VyZS5qYXZhCkBAIC0wLDAgKzEsMTExIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogQXByaWwgMjAsIDIwMDQKKyogU2luY2U6IElDVSAzLjAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLmxhbmcuTnVtYmVyOworCisvKioKKyAqIEFuIGFtb3VudCBvZiBhIHNwZWNpZmllZCB1bml0LCBjb25zaXN0aW5nIG9mIGEgTnVtYmVyIGFuZCBhIFVuaXQuCisgKiBGb3IgZXhhbXBsZSwgYSBsZW5ndGggbWVhc3VyZSBjb25zaXN0cyBvZiBhIE51bWJlciBhbmQgYSBsZW5ndGgKKyAqIHVuaXQsIHN1Y2ggYXMgZmVldCBvciBtZXRlcnMuICBUaGlzIGlzIGFuIGFic3RyYWN0IGNsYXNzLgorICogU3ViY2xhc3NlcyBzcGVjaWZ5IGEgY29uY3JldGUgVW5pdCB0eXBlLgorICoKKyAqIDxwPk1lYXN1cmUgb2JqZWN0cyBhcmUgcGFyc2VkIGFuZCBmb3JtYXR0ZWQgYnkgc3ViY2xhc3NlcyBvZgorICogTWVhc3VyZUZvcm1hdC4KKyAqCisgKiA8cD5NZWFzdXJlIG9iamVjdHMgYXJlIGltbXV0YWJsZS4KKyAqCisgKiBAc2VlIGphdmEubGFuZy5OdW1iZXIKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5NZWFzdXJlVW5pdAorICogQHNlZSBjb20uaWJtLmljdS50ZXh0Lk1lYXN1cmVGb3JtYXQKKyAqIEBhdXRob3IgQWxhbiBMaXUKKyAqIEBkcmFmdCBJQ1UgMy4wCisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIE1lYXN1cmUgeworICAgIAorICAgIHByaXZhdGUgTnVtYmVyIG51bWJlcjsKKworICAgIHByaXZhdGUgTWVhc3VyZVVuaXQgdW5pdDsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBuZXcgb2JqZWN0IGdpdmVuIGEgbnVtYmVyIGFuZCBhIHVuaXQuCisgICAgICogQHBhcmFtIG51bWJlciB0aGUgbnVtYmVyCisgICAgICogQHBhcmFtIHVuaXQgdGhlIHVuaXQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBNZWFzdXJlKE51bWJlciBudW1iZXIsIE1lYXN1cmVVbml0IHVuaXQpIHsKKyAgICAgICAgaWYgKG51bWJlciA9PSBudWxsIHx8IHVuaXQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5udW1iZXIgPSBudW1iZXI7CisgICAgICAgIHRoaXMudW5pdCA9IHVuaXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGVxdWFsIHRvIHRoaXMgb2JqZWN0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIG9iamVjdCBpcyBlcXVhbCB0byB0aGUgZ2l2ZW4gb2JqZWN0CisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAob2JqID09IG51bGwpIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKG9iaiA9PSB0aGlzKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE1lYXN1cmUgbSA9IChNZWFzdXJlKSBvYmo7CisgICAgICAgICAgICByZXR1cm4gbnVtYmVyLmVxdWFscyhtLm51bWJlcikgJiYgdW5pdC5lcXVhbHMobS51bml0KTsKKyAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBoYXNoY29kZSBmb3IgdGhpcyBvYmplY3QuCisgICAgICogQHJldHVybiBhIDMyLWJpdCBoYXNoCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyLmhhc2hDb2RlKCkgXiB1bml0Lmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGNvbnNpc3Rpbmcgb2YgdGhlIElTTyBjdXJyZW5jeQorICAgICAqIGNvZGUgdG9nZXRoZXIgd2l0aCB0aGUgbnVtZXJpYyBhbW91bnQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiBudW1iZXIudG9TdHJpbmcoKSArICcgJyArIHVuaXQudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIHZhbHVlIG9mIHRoaXMgb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhpcyBvYmplY3QncyBOdW1iZXIKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBOdW1iZXIgZ2V0TnVtYmVyKCkgeworICAgICAgICByZXR1cm4gbnVtYmVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHVuaXQgb2YgdGhpcyBvYmplY3QuCisgICAgICogQHJldHVybiB0aGlzIG9iamVjdCdzIFVuaXQKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBNZWFzdXJlVW5pdCBnZXRVbml0KCkgeworICAgICAgICByZXR1cm4gdW5pdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9NZWFzdXJlVW5pdC5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvTWVhc3VyZVVuaXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGU5MjNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvTWVhc3VyZVVuaXQuamF2YQpAQCAtMCwwICsxLDI3IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKGMpIDIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEF1dGhvcjogQWxhbiBMaXUKKyogQ3JlYXRlZDogQXByaWwgMjAsIDIwMDQKKyogU2luY2U6IElDVSAzLjAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKKy8qKgorICogQSB1bml0IHN1Y2ggYXMgbGVuZ3RoLCBtYXNzLCB2b2x1bWUsIGN1cnJlbmN5LCBldGMuICBBIHVuaXQgaXMKKyAqIGNvdXBsZWQgd2l0aCBhIG51bWVyaWMgYW1vdW50IHRvIHByb2R1Y2UgYSBNZWFzdXJlLgorICoKKyAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5NZWFzdXJlCisgKiBAYXV0aG9yIEFsYW4gTGl1CisgKiBAZHJhZnQgSUNVIDMuMAorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBNZWFzdXJlVW5pdCB7CisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIE1lYXN1cmVVbml0KCkge307Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9PdmVybGF5QnVuZGxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9PdmVybGF5QnVuZGxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWVhNTQzOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL092ZXJsYXlCdW5kbGUuamF2YQpAQCAtMCwwICsxLDE3MyBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuKjsKKworLyoqCisgKiBBIFJlc291cmNlQnVuZGxlIHRoYXQgb3ZlcmxheXMgb25lIGhpZXJhcmNoeSBhdG9wIGFub3RoZXIuICBUaGlzIGlzCisgKiBiZXN0IGV4cGxhaW5lZCBieSBleGFtcGxlLiAgU3VwcG9zZSBvbmUgd2FudHMgdG8gdXNlIHRoZQorICogcmVzb3VyY2UgaGlhcmFyY2h5IChpbiBKREsgMS4yIGFuZCAxLjMsIGJ1dCBub3QgMS40KSBhdCAKKyAqICJqYXZhLnRleHQucmVzb3VyY2VzLkxvY2FsZUVsZW1lbnRzIiwgYnV0IG9uZSB3YW50cyB0byB1c2UKKyAqIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgIk51bWJlclBhdHRlcm5zIiByZXNvdXJjZSBpbiB0aGUKKyAqIGZyX0ZSIGxvY2FsZS4gIE9uZSB3YXkgdG8gZG8gdGhpcyBpcyB0byBhZGQgc3BlY2lhbCBjYXNlIGNvZGUKKyAqIHRvIHRoZSBsb29rdXAgb3BlcmF0aW9uIHRvIGNoZWNrIGZvciBmcl9GUiBhbmQgdGhlIGtleQorICogIk51bWJlclBhdHRlcm5zIiwgYW5kIGluIHRoYXQgY2FzZSwgbG9hZCB1cCBjdXN0b20gZGF0YS4gIEhvd2V2ZXIsCisgKiB0aGlzIGJlY29tZXMgdW53aWVsZHkgYW5kIHBsYWNlcyBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRoZQorICogZWZmZWN0aXZlIHJlc291cmNlIGhpZXJhcmNoeSBpbnRvIHRoZSBjb2RlLgorICoKKyAqIFRoZSBPdmVybGF5QnVuZGxlIHNvbHZlcyB0aGlzIHByb2JsZW0gYnkgbGF5ZXJpbmcgYW5vdGhlcgorICogaGllcmFyY2h5LCBlLmcsICJjb20uYWNtZS5yZXNvdXJjZXMuTG9jYWxlRWxlbWVudHMiLCBvbiB0b3Agb2YgYQorICogYmFzZSBoaWVyYXJjaHkuICBXaGVuIGEgcmVzb3VyY2UgaXMgcmVxdWVzdGVkLCBpdCBpcyBmaXJzdCBzb3VnaHQKKyAqIGluIHRoZSBvdmVybGF5IGhpZXJhcmNoeSwgYW5kIGlmIG5vdCBmb3VuZCB0aGVyZSwgaXQgaXMgc291Z2h0IGluCisgKiB0aGUgYmFzZSBoaWVyYXJjaHkuICBNdWx0aXBsZSBvdmVybGF5cyBhcmUgc3VwcG9ydGVkLCBidXQgaW4KKyAqIHByYWN0aWNlIG9uZSBpcyB1c3VhbGx5IHN1ZmZpY2llbnQuCisgKiAKKyAqIFRoZSBPdmVybGF5QnVuZGxlIGFsc28gYWRkcmVzc2VzIHRoZSBwcm9ibGVtIG9mIGNvdW50cnktb3JpZW50ZWQKKyAqIGRhdGEuICBUbyBzcGVjaWZ5IHRoZSBkZWZhdWx0IGRhdGEgZm9yIGEgbGFuZ3VhZ2UsIG9uZSBqdXN0IHNldHMKKyAqIHRoZSBsYW5ndWFnZSByZXNvdXJjZSBidW5kbGUgZGF0YS4gIEhvd2V2ZXIsIHNwZWNpZnlpbmcgdGhlIGRlZmF1bHQKKyAqIGRhdGEgZm9yIGEgY291bnRyeSB1c2luZyB0aGUgc3RhbmRhcmQgUmVzb3VyY2VCdW5kbGUgbWVjaGFuaXNtIGlzCisgKiBpbXBvc3NpYmxlLiAgVGhlIE92ZXJsYXlCdW5kbGUgcmVjb2duaXplcyAid2lsZGNhcmQiIGxvY2FsZXMgd2l0aAorICogdGhlIHNwZWNpYWwgbGFuZ3VhZ2UgY29kZSAieHgiLiAgV2hlbiBsb29raW5nIHVwIGRhdGEgZm9yIGEgbG9jYWxlCisgKiB3aXRoIGEgbm9uLWVtcHR5IGNvdW50cnksIGlmIGFuIGV4YWN0IGxvY2FsZSBtYXRjaCBjYW5ub3QgYmUgZm91bmQsCisgKiB0aGUgT3ZlcmxheUJ1bmRsZSBsb29rcyBmb3IgZGF0YSBpbiB0aGUgbG9jYWxlIHh4X1lZLCB3aGVyZSBZWSBpcworICogdGhlIGNvdW50cnkgYmVpbmcgc291Z2h0LiAgVGhpcyBlZmZlY3RpdmVseSBhZGRzIGFub3RoZXIgZW50cnkgaW4KKyAqIHRoZSBmYWxsYmFjayBzZXF1ZW5jZSBmb3IgYSBsb2NhbGUgYWFfQkI6IGFhX0JCLCB4eF9CQiwgYWEsIHJvb3QuCisgKiBXaWxkY2FyZCBsb2NhbGVzIGFyZSBub3QgaW1wbGVtZW50ZWQgZm9yIHRoZSBiYXNlIGhpZXJhcmNoeSwgb25seQorICogZm9yIG92ZXJsYXlzLgorICoKKyAqIFRoZSBPdmVybGF5QnVuZGxlIGlzIGltcGxlbWVudGVkIGFzIGFuIGFycmF5IG9mIG4gUmVzb3VyY2VCdW5kbGUKKyAqIGJhc2UgbmFtZXMuICBUaGUgYmFzZSBuYW1lcyBhcmUgc2VhcmNoZWQgZnJvbSAwIHRvIG4tMS4gIEJhc2UgbmFtZQorICogbi0xIGlzIHNwZWNpYWw7IGl0IGlzIHRoZSBiYXNlIGhpZXJhcmNoeS4gIFRoaXMgc2hvdWxkIGJlIGEKKyAqIHdlbGwtcG9wdWxhdGVkIGhpZXJhcmNoeSB3aXRoIG1vc3Qgb2YgdGhlIGRlZmF1bHQgZGF0YSwgdHlwaWNhbGx5LAorICogdGhlIGljdSBvciBzdW4gY29yZSBoaWVyYXJjaGllcy4gIFRoZSBiYXNlIGhpZXJhcmNoeSBpcworICogdHJlYXRlZCBkaWZmZXJlbnRseSBmcm9tIHRoZSBvdmVybGF5cyBhYm92ZSBpdC4gIEl0IGRvZXMgbm90IGdldAorICogd2lsZGNhcmQgcmVzb2x1dGlvbiwgYW5kIHRoZSBnZXRLZXlzKCkgZnJhbWV3b3JrIG1ldGhvZCBpcworICogZGVsZWdhdGVkIHRvIHRoZSBiYXNlIGhpZXJhcmNoeSBidW5kbGUuCisgKgorICogVXNhZ2U6IEluc3RhbnRpYXRlIGFuIE92ZXJsYXlCdW5kbGUgZGlyZWN0bHkgKG5vdCB2aWEgYSBmYWN0b3J5CisgKiBtZXRob2QgYXMgaW4gUmVzb3VyY2VCdW5kbGUpLiAgSW5zdGVhZCBvZiBzcGVjaWZ5aW5nIGEgc2luZ2xlIGJhc2UKKyAqIG5hbWUsIHBhc3MgaXQgYW4gYXJyYXkgb2YgMiBvciBtb3JlIGJhc2UgbmFtZXMuICBBZnRlciB0aGF0LCB1c2UgaXQKKyAqIGV4YWN0bHkgYXMgeW91IHdvdWxkIHVzZSBSZXNvdXJjZUJ1bmRsZS4KKyAqCisgKiBAc2VlIGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZQorICogQGF1dGhvciBBbGFuIExpdQorICogQGludGVybmFsCisgKiBAZGVwcmVjYXRlZCBJQ1UgMi40LiBUaGlzIGNsYXNzIG1heSBiZSByZW1vdmVkIG9yIG1vZGlmaWVkLgorICovCisvLyBwcmVwYXJlIHRvIGRlcHJlY2F0ZSBpbiBuZXh0IHJlbGVhc2UKKy8vL0NMT1ZFUjpPRkYKK3B1YmxpYyBjbGFzcyBPdmVybGF5QnVuZGxlIGV4dGVuZHMgUmVzb3VyY2VCdW5kbGUgeworCisgICAgLyoqCisgICAgICogVGhlIGFycmF5IG9mIGJhc2UgbmFtZXMsIHdpdGggdGhlIGxlbmd0aC0xIGVudHJ5IGJlaW5nIHRoZSBiYXNlCisgICAgICogaGllcmFyY2h5LCB0eXBpY2FsbHkgInN1bi50ZXh0LnJlc291cmNlcy5Mb2NhbGVFbGVtZW50cyIuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmdbXSBiYXNlTmFtZXM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcmVxdWVzdGVkIGxvY2FsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIExvY2FsZSBsb2NhbGU7CisKKyAgICAvKioKKyAgICAgKiBMb2FkZWQgYnVuZGxlcy4gIFRoZXNlIHdpbGwgYmUgbnVsbCB1bnRpbCB0aGV5IGFyZSBsb2FkZWQgb24KKyAgICAgKiBkZW1hbmQuCisgICAgICovCisgICAgcHJpdmF0ZSBSZXNvdXJjZUJ1bmRsZVtdIGJ1bmRsZXM7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gb3ZlcmxheSBidW5kbGUgZ2l2ZW4gYSBzZXF1ZW5jZSBvZiBiYXNlIG5hbWVzIGFuZAorICAgICAqIGEgbG9jYWxlLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFRoaXMgY2xhc3MgbWF5IGJlIHJlbW92ZWQgb3IgbW9kaWZpZWQuCisgICAgICovCisgICAgcHVibGljIE92ZXJsYXlCdW5kbGUoU3RyaW5nW10gYmFzZU5hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgdGhpcy5iYXNlTmFtZXMgPSBiYXNlTmFtZXM7CisgICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlOworICAgICAgICBidW5kbGVzID0gbmV3IFJlc291cmNlQnVuZGxlW2Jhc2VOYW1lcy5sZW5ndGhdOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc291cmNlQnVuZGxlIGZyYW1ld29yayBtZXRob2QuICBEZWxlZ2F0ZXMgdG8KKyAgICAgKiBidW5kbGVzW2ldLmdldE9iamVjdCgpLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkZXByZWNhdGVkIElDVSAyLjQuIFRoaXMgY2xhc3MgbWF5IGJlIHJlbW92ZWQgb3IgbW9kaWZpZWQuCisgICAgICovIAorICAgcHJvdGVjdGVkIE9iamVjdCBoYW5kbGVHZXRPYmplY3QoU3RyaW5nIGtleSkgCisgICAgICAgIHRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24geworCisgICAgICAgIE9iamVjdCBvID0gbnVsbDsKKworICAgICAgICBmb3IgKGludCBpPTA7IGk8YnVuZGxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbG9hZChpKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgbyA9IGJ1bmRsZXNbaV0uZ2V0T2JqZWN0KGtleSk7CisgICAgICAgICAgICB9IGNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChpID09IGJ1bmRsZXMubGVuZ3RoLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNvdXJjZUJ1bmRsZSBmcmFtZXdvcmsgbWV0aG9kLiAgRGVsZWdhdGVzIHRvCisgICAgICogYnVuZGxlc1tidW5kbGVzLmxlbmd0aC0xXS5nZXRLZXlzKCkuCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDIuNC4gVGhpcyBjbGFzcyBtYXkgYmUgcmVtb3ZlZCBvciBtb2RpZmllZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgRW51bWVyYXRpb24gZ2V0S2V5cygpIHsKKyAgICAgICAgLy8gUmV0dXJuIHRoZSBlbnVtZXJhdGlvbiBvZiB0aGUgbGFzdCBidW5kbGUsIHdoaWNoIGlzIHRoZSBiYXNlCisgICAgICAgIC8vIG9mIG91ciBoaWVyYXJjaHkgc3RhY2suCisgICAgICAgIGludCBpID0gYnVuZGxlcy5sZW5ndGggLSAxOworICAgICAgICBsb2FkKGkpOworICAgICAgICByZXR1cm4gYnVuZGxlc1tpXS5nZXRLZXlzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTG9hZCB0aGUgaS10aCBidW5kbGUgYW5kIGltcGxlbWVudCB3aWxkY2FyZCByZXNvbHV0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBsb2FkKGludCBpKQorICAgICAgICB0aHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoYnVuZGxlc1tpXSA9PSBudWxsKSB7CisgICAgICAgICAgICBib29sZWFuIHRyeVdpbGRjYXJkID0gZmFsc2U7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGJ1bmRsZXNbaV0gPSBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUoYmFzZU5hbWVzW2ldLCBsb2NhbGUpOworICAgICAgICAgICAgICAgIGlmIChidW5kbGVzW2ldLmdldExvY2FsZSgpLmVxdWFscyhsb2NhbGUpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGxvY2FsZS5nZXRDb3VudHJ5KCkubGVuZ3RoKCkgIT0gMCAmJiBpICE9IGJ1bmRsZXMubGVuZ3RoLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJ5V2lsZGNhcmQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGkgPT0gYnVuZGxlcy5sZW5ndGgtMSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnlXaWxkY2FyZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodHJ5V2lsZGNhcmQpIHsKKyAgICAgICAgICAgICAgICBMb2NhbGUgd2lsZGNhcmQgPSBuZXcgTG9jYWxlKCJ4eCIsIGxvY2FsZS5nZXRDb3VudHJ5KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGUuZ2V0VmFyaWFudCgpKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBidW5kbGVzW2ldID0gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKGJhc2VOYW1lc1tpXSwgd2lsZGNhcmQpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChidW5kbGVzW2ldID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9SYW5nZURhdGVSdWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9SYW5nZURhdGVSdWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzkzZjQzMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1JhbmdlRGF0ZVJ1bGUuamF2YQpAQCAtMCwwICsxLDE2OCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworLyoqCisgKiBJbXBsZW1lbnRhdGlvbiBvZiBEYXRlUnVsZSB0aGF0IHRha2VzIGEgcmFuZ2UuCisgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluQWxsKQorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBjbGFzcyBSYW5nZURhdGVSdWxlIGltcGxlbWVudHMgRGF0ZVJ1bGUgeworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFJhbmdlRGF0ZVJ1bGUoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgLy8gUmFuZ2UgaXMgYSBwYWNrYWdlLXByaXZhdGUgY2xhc3Mgc28gdGhpcyBzaG91bGQgYmUgcGFja2FnZS1wcml2YXRlIHRvbywgcHJvYmFibHkKKy8vICAgIHB1YmxpYyBSYW5nZURhdGVSdWxlKFJhbmdlW10gcmFuZ2VzKQorLy8gICAgeworLy8gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmFuZ2VzLmxlbmd0aDsgaSsrKSB7CisvLyAgICAgICAgICAgIHRoaXMucmFuZ2VzLmFkZEVsZW1lbnQocmFuZ2VzW2ldKTsKKy8vICAgICAgICB9CisvLyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZChEYXRlUnVsZSBydWxlKSB7CisgICAgICAgIGFkZChuZXcgRGF0ZShMb25nLk1JTl9WQUxVRSksIHJ1bGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkKERhdGUgc3RhcnQsIERhdGVSdWxlIHJ1bGUpIHsKKyAgICAgICAgLy8gVE9ETzogSW5zZXJ0IGluIHRoZSByaWdodCBwbGFjZQorICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oIkFkZDogIiArIHN0YXJ0LnRvU3RyaW5nKCkpOworICAgICAgICByYW5nZXMuYWRkRWxlbWVudChuZXcgUmFuZ2Uoc3RhcnQsIHJ1bGUpKTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlIGZpcnN0QWZ0ZXIoRGF0ZSBzdGFydCkgeworICAgICAgICAvLyBGaW5kIHRoZSByYW5nZSB0aGF0IEkgc2hvdWxkIGxvb2sgYXQKKyAgICAgICAgaW50IGluZGV4ID0gc3RhcnRJbmRleChzdGFydCk7CisgICAgICAgIGlmIChpbmRleCA9PSByYW5nZXMuc2l6ZSgpKSB7CisgICAgICAgICAgICBpbmRleCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgRGF0ZSByZXN1bHQgPSBudWxsOworCisgICAgICAgIFJhbmdlIHIgPSByYW5nZUF0KGluZGV4KTsKKyAgICAgICAgUmFuZ2UgZSA9IHJhbmdlQXQoaW5kZXgrMSk7CisKKyAgICAgICAgaWYgKHIgIT0gbnVsbCAmJiByLnJ1bGUgIT0gbnVsbCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHIucnVsZS5maXJzdEJldHdlZW4oc3RhcnQsIGUuc3RhcnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSByLnJ1bGUuZmlyc3RBZnRlcihzdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlIGZpcnN0QmV0d2VlbihEYXRlIHN0YXJ0LCBEYXRlIGVuZCkgeworICAgICAgICBpZiAoZW5kID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmaXJzdEFmdGVyKHN0YXJ0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gRmluZCB0aGUgcmFuZ2UgdGhhdCBJIHNob3VsZCBsb29rIGF0CisgICAgICAgIGludCBpbmRleCA9IHN0YXJ0SW5kZXgoc3RhcnQpOworICAgICAgICBEYXRlIHJlc3VsdCA9IG51bGw7CisKKyAgICAgICAgUmFuZ2UgbmV4dCA9IHJhbmdlQXQoaW5kZXgpOworCisgICAgICAgIHdoaWxlIChyZXN1bHQgPT0gbnVsbCAmJiBuZXh0ICE9IG51bGwgJiYgIW5leHQuc3RhcnQuYWZ0ZXIoZW5kKSkKKyAgICAgICAgeworICAgICAgICAgICAgUmFuZ2UgciA9IG5leHQ7CisgICAgICAgICAgICBuZXh0ID0gcmFuZ2VBdChpbmRleCsxKTsKKworICAgICAgICAgICAgaWYgKHIucnVsZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgRGF0ZSBlID0gKG5leHQgIT0gbnVsbCAmJiAhbmV4dC5zdGFydC5hZnRlcihlbmQpKSA/IG5leHQuc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZW5kOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IHIucnVsZS5maXJzdEJldHdlZW4oc3RhcnQsIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc09uKERhdGUgZGF0ZSkgeworICAgICAgICBSYW5nZSByID0gcmFuZ2VBdChzdGFydEluZGV4KGRhdGUpKTsKKyAgICAgICAgcmV0dXJuIHIgIT0gbnVsbCAmJiByLnJ1bGUgIT0gbnVsbCAmJiByLnJ1bGUuaXNPbihkYXRlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDaGVjayB3aGV0aGVyIHRoaXMgZXZlbnQgb2NjdXJzIGF0IGxlYXN0IG9uY2UgYmV0d2VlbiB0aGUgdHdvCisgICAgICogZGF0ZXMgZ2l2ZW4uCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0JldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpIHsKKyAgICAgICAgcmV0dXJuIGZpcnN0QmV0d2VlbihzdGFydCxlbmQpID09IG51bGw7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBmaW5kIHRoZSBpbmRleCBvZiB0aGUgbGFzdCByYW5nZSB3aG9zZSBzdGFydCBkYXRlIGlzIGJlZm9yZSAic3RhcnQiCisgICAgICogcmV0dXJucyBhbiBpbmRleCA+PSByYW5nZXMuc2l6ZSgpIGlmIHRoZXJlIGlzIG5vbmUKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzdGFydEluZGV4KERhdGUgc3RhcnQpIHsKKyAgICAgICAgaW50IGxhc3RJbmRleCA9IHJhbmdlcy5zaXplKCk7CisKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYW5nZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIFJhbmdlIHIgPSAoUmFuZ2UpIHJhbmdlcy5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBpZiAoc3RhcnQuYmVmb3JlKHIuc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYXN0SW5kZXggPSBpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsYXN0SW5kZXg7CisgICAgfQorCisgICAgcHJpdmF0ZSBSYW5nZSByYW5nZUF0KGludCBpbmRleCkgeworICAgICAgIHJldHVybiAoaW5kZXggPCByYW5nZXMuc2l6ZSgpKSA/IChSYW5nZSkgcmFuZ2VzLmVsZW1lbnRBdChpbmRleCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsOworICAgIH0KKworICAgIFZlY3RvciByYW5nZXMgPSBuZXcgVmVjdG9yKDIsMik7Cit9CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIFByaXZhdGVzCisvLworCitjbGFzcyBSYW5nZSB7CisgICAgcHVibGljIFJhbmdlKERhdGUgc3RhcnQsIERhdGVSdWxlIHJ1bGUpIHsKKyAgICAgICAgdGhpcy5zdGFydCA9IHN0YXJ0OworICAgICAgICB0aGlzLnJ1bGUgPSBydWxlOworICAgIH0KKyAgICBwdWJsaWMgRGF0ZSAgICAgc3RhcnQ7CisgICAgcHVibGljIERhdGVSdWxlIHJ1bGU7Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL1JhbmdlVmFsdWVJdGVyYXRvci5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvUmFuZ2VWYWx1ZUl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjg3NDRjMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1JhbmdlVmFsdWVJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTEwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKKy8qKgorICogPHA+SW50ZXJmYWNlIGZvciBlbmFibGluZyBpdGVyYXRpb24gb3ZlciBzZXRzIG9mIDxpbnQgaW5kZXgsIGludCB2YWx1ZT4sIAorICogd2hlcmUgaW5kZXggaXMgdGhlIHNvcnRlZCBpbnRlZ2VyIGluZGV4IGluIGFzY2VuZGluZyBvcmRlciBhbmQgdmFsdWUsIGl0cyAKKyAqIGFzc29jaWF0ZWQgaW50ZWdlciB2YWx1ZS48L3A+CisgKiA8cD5UaGUgcmVzdWx0IGZvciBlYWNoIGl0ZXJhdGlvbiBpcyB0aGUgY29uc2VjdXRpdmUgcmFuZ2Ugb2YgCisgKiA8aW50IGluZGV4LCBpbnQgdmFsdWU+IHdpdGggdGhlIHNhbWUgdmFsdWUuIFJlc3VsdCBpcyByZXByZXNlbnRlZCBieSAKKyAqIDxzdGFydCwgbGltaXQsIHZhbHVlPiB3aGVyZTwvcD4KKyAqIDx1bD4KKyAqIDxsaT4gc3RhcnQgaXMgdGhlIHN0YXJ0aW5nIGludGVnZXIgb2YgdGhlIHJlc3VsdCByYW5nZQorICogPGxpPiBsaW1pdCBpcyAxIGFmdGVyIHRoZSBtYXhpbXVtIGludGVnZXIgdGhhdCBmb2xsb3dzIHN0YXJ0LCBzdWNoIHRoYXQKKyAqICAgICAgYWxsIGludGVnZXJzIGJldHdlZW4gc3RhcnQgYW5kIChsaW1pdCAtIDEpLCBpbmNsdXNpdmUsIGhhdmUgdGhlIHNhbWUgCisgKiAgICAgIGFzc29jaWF0ZWQgaW50ZWdlciB2YWx1ZS4KKyAqIDxsaT4gdmFsdWUgaXMgdGhlIGludGVnZXIgdmFsdWUgdGhhdCBhbGwgaW50ZWdlcnMgZnJvbSBzdGFydCB0byAobGltaXQgLSAxKSAKKyAqICAgICAgc2hhcmUgaW4gY29tbW9uLgorICogPC91bD4KKyAqIDxwPgorICogSGVuY2UgdmFsdWUoc3RhcnQpID0gdmFsdWUoc3RhcnQgKyAxKSA9IC4uLi4gPSB2YWx1ZShzdGFydCArIG4pID0gLi4uLiA9CisgKiB2YWx1ZShsaW1pdCAtIDEpLiBIb3dldmVyIHZhbHVlKHN0YXJ0IC0xKSAhPSB2YWx1ZShzdGFydCkgYW5kIAorICogdmFsdWUobGltaXQpICE9IHZhbHVlKHN0YXJ0KS4KKyAqIDwvcD4KKyAqIDxwPk1vc3QgaW1wbGVtZW50YXRpb25zIHdpbGwgYmUgY3JlYXRlZCBieSBmYWN0b3J5IG1ldGhvZHMsIHN1Y2ggYXMgdGhlCisgKiBjaGFyYWN0ZXIgdHlwZSBpdGVyYXRvciBpbiBVQ2hhcmFjdGVyLmdldFR5cGVJdGVyYXRvci4gU2VlIGV4YW1wbGUgYmVsb3cuCisgKiA8L3A+CisgKiBFeGFtcGxlIG9mIHVzZTo8YnI+CisgKiA8cHJlPgorICogUmFuZ2VWYWx1ZUl0ZXJhdG9yIGl0ZXJhdG9yID0gVUNoYXJhY3Rlci5nZXRUeXBlSXRlcmF0b3IoKTsKKyAqIFJhbmdlVmFsdWVJdGVyYXRvci5FbGVtZW50IHJlc3VsdCA9IG5ldyBSYW5nZVZhbHVlSXRlcmF0b3IuRWxlbWVudCgpOworICogd2hpbGUgKGl0ZXJhdG9yLm5leHQocmVzdWx0KSkgeworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29kZXBvaW50IFxcdSIgKyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhyZXN1bHQuc3RhcnQpICsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICIgdG8gY29kZXBvaW50IFxcdSIgKworICogICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLnRvSGV4U3RyaW5nKHJlc3VsdC5saW1pdCAtIDEpICsgCisgKiAgICAgICAgICAgICAgICAgICAgICAgICIgaGFzIHRoZSBjaGFyYWN0ZXIgdHlwZSAiICsgcmVzdWx0LnZhbHVlKTsKKyAqIH0KKyAqIDwvcHJlPgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzdGFibGUgSUNVIDIuNgorICovCitwdWJsaWMgaW50ZXJmYWNlIFJhbmdlVmFsdWVJdGVyYXRvcgoreworICAgIC8vIHB1YmxpYyBpbm5lciBjbGFzcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIFJldHVybiByZXN1bHQgd3JhcHBlciBmb3IgY29tLmlibS5pY3UudXRpbC5SYW5nZVZhbHVlSXRlcmF0b3IuCisgICAgKiBTdG9yZXMgdGhlIHN0YXJ0IGFuZCBsaW1pdCBvZiB0aGUgY29udGlub3VzIHJlc3VsdCByYW5nZSBhbmQgdGhlCisgICAgKiBjb21tb24gdmFsdWUgYWxsIGludGVnZXJzIGJldHdlZW4gW3N0YXJ0LCBsaW1pdCAtIDFdIGhhcy4KKyAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICovCisgICAgcHVibGljIGNsYXNzIEVsZW1lbnQKKyAgICB7CisgICAgICAgIC8vIHB1YmxpYyBkYXRhIG1lbWJlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAqIFN0YXJ0aW5nIGludGVnZXIgb2YgdGhlIGNvbnRpbnVvdXMgcmVzdWx0IHJhbmdlIHRoYXQgaGFzIHRoZSBzYW1lIAorICAgICAgICAqIHZhbHVlCisgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgc3RhcnQ7CisgICAgICAgIC8qKgorICAgICAgICAqIChFbmQgKyAxKSBpbnRlZ2VyIG9mIGNvbnRpbnVvdXMgcmVzdWx0IHJhbmdlIHRoYXQgaGFzIHRoZSBzYW1lIAorICAgICAgICAqIHZhbHVlCisgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgbGltaXQ7CisgICAgICAgIC8qKgorICAgICAgICAqIEdldHMgdGhlIGNvbW1vbiB2YWx1ZSBvZiB0aGUgY29udGlub3VzIHJlc3VsdCByYW5nZQorICAgICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAgICAqLyAKKyAgICAgICAgcHVibGljIGludCB2YWx1ZTsKKyAgICAgICAgCisgICAgICAgIC8vIHB1YmxpYyBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIEVtcHR5IGRlZmF1bHQgY29uc3RydWN0b3IgdG8gbWFrZSBqYXZhZG9jIGhhcHB5CisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEVsZW1lbnQoKSAKKyAgICAgICAgeworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICAvKioKKyAgICAqIDxwPkdldHMgdGhlIG5leHQgbWF4aW1hbCByZXN1bHQgcmFuZ2Ugd2l0aCBhIGNvbW1vbiB2YWx1ZSBhbmQgcmV0dXJucyAKKyAgICAqIHRydWUgaWYgd2UgYXJlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24sIGZhbHNlIG90aGVyd2lzZS48L3A+CisgICAgKiA8cD5JZiB0aGUgcmV0dXJuIGJvb2xlYW4gaXMgYSBmYWxzZSwgdGhlIGNvbnRlbnRzIG9mIGVsZW1lbnRzIHdpbGwgbm90CisgICAgKiBiZSB1cGRhdGVkLjwvcD4KKyAgICAqIEBwYXJhbSBlbGVtZW50IGZvciBzdG9yaW5nIHRoZSByZXN1bHQgcmFuZ2UgYW5kIHZhbHVlCisgICAgKiBAcmV0dXJuIHRydWUgaWYgd2UgYXJlIG5vdCBhdCB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24sIGZhbHNlIG90aGVyd2lzZS4KKyAgICAqIEBzZWUgRWxlbWVudAorICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBuZXh0KEVsZW1lbnQgZWxlbWVudCk7CisgICAgCisgICAgLyoqCisgICAgKiBSZXNldHMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGl0ZXJhdGlvbi4KKyAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL1NUWkluZm8uamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1NUWkluZm8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzRhZjU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU1RaSW5mby5qYXZhCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiAgIENvcHlyaWdodCAoQykgMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworICogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKKworLyoqCisgKiBAaW50ZXJuYWwKKyAqLworZmluYWwgY2xhc3MgU1RaSW5mbyBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTc4NDk2MTIwMzc4NDIzNzAxNjhMOworCisgICAgdm9pZCBzZXRTdGFydChpbnQgc20sIGludCBzZHdtLCBpbnQgc2R3LCBpbnQgc3QsIGludCBzZG0sIGJvb2xlYW4gc2EpIHsKKyAgICAgICAgdGhpcy5zbSA9IHNtOworICAgICAgICB0aGlzLnNkd20gPSBzZHdtOworICAgICAgICB0aGlzLnNkdyA9IHNkdzsKKyAgICAgICAgdGhpcy5zdCA9IHN0OworICAgICAgICB0aGlzLnNkbSA9IHNkbTsKKyAgICAgICAgdGhpcy5zYSA9IHNhOworICAgIH0KKworICAgIHZvaWQgc2V0RW5kKGludCBlbSwgaW50IGVkd20sIGludCBlZHcsIGludCBldCwgaW50IGVkbSwgYm9vbGVhbiBlYSkgeworICAgICAgICB0aGlzLmVtID0gZW07CisgICAgICAgIHRoaXMuZWR3bSA9IGVkd207CisgICAgICAgIHRoaXMuZWR3ID0gZWR3OworICAgICAgICB0aGlzLmV0ID0gZXQ7CisgICAgICAgIHRoaXMuZWRtID0gZWRtOworICAgICAgICB0aGlzLmVhID0gZWE7CisgICAgfQorCisgICAgdm9pZCBhcHBseVRvKGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZSBzdHopIHsKKyAgICAgICAgaWYgKHN5ICE9IC0xKSB7CisgICAgICAgICAgICBzdHouc2V0U3RhcnRZZWFyKHN5KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc20gIT0gLTEpIHsKKyAgICAgICAgICAgIGlmIChzZG0gPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBzdHouc2V0U3RhcnRSdWxlKHNtLCBzZHdtLCBzZHcsIHN0KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc2R3ID09IC0xKSB7CisgICAgICAgICAgICAgICAgc3R6LnNldFN0YXJ0UnVsZShzbSwgc2RtLCBzdCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0ei5zZXRTdGFydFJ1bGUoc20sIHNkbSwgc2R3LCBzdCwgc2EpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChlbSAhPSAtMSkgeworICAgICAgICAgICAgaWYgKGVkbSA9PSAtMSkgeworICAgICAgICAgICAgICAgIHN0ei5zZXRFbmRSdWxlKGVtLCBlZHdtLCBlZHcsIGV0KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZWR3ID09IC0xKSB7CisgICAgICAgICAgICAgICAgc3R6LnNldEVuZFJ1bGUoZW0sIGVkbSwgZXQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdHouc2V0RW5kUnVsZShlbSwgZWRtLCBlZHcsIGV0LCBlYSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCBhcHBseVRvKGNvbS5pYm0uaWN1LnV0aWwuU2ltcGxlVGltZVpvbmUgc3R6KSB7CisgICAgICAgIGlmIChzeSAhPSAtMSkgeworICAgICAgICAgICAgc3R6LnNldFN0YXJ0WWVhcihzeSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNtICE9IC0xKSB7CisgICAgICAgICAgICBpZiAoc2RtID09IC0xKSB7CisgICAgICAgICAgICAgICAgc3R6LnNldFN0YXJ0UnVsZShzbSwgc2R3bSwgc2R3LCBzdCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNkdyA9PSAtMSkgeworICAgICAgICAgICAgICAgIHN0ei5zZXRTdGFydFJ1bGUoc20sIHNkbSwgc3QpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdHouc2V0U3RhcnRSdWxlKHNtLCBzZG0sIHNkdywgc3QsIHNhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZW0gIT0gLTEpIHsKKyAgICAgICAgICAgIGlmIChlZG0gPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBzdHouc2V0RW5kUnVsZShlbSwgZWR3bSwgZWR3LCBldCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGVkdyA9PSAtMSkgeworICAgICAgICAgICAgICAgIHN0ei5zZXRFbmRSdWxlKGVtLCBlZG0sIGV0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3R6LnNldEVuZFJ1bGUoZW0sIGVkbSwgZWR3LCBldCwgZWEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGludCBzeSA9IC0xOworICAgIGludCBzbSA9IC0xLCBzZHdtLCBzZHcsIHN0LCBzZG07CisgICAgYm9vbGVhbiBzYTsKKyAgICBpbnQgZW0gPSAtMSwgZWR3bSwgZWR3LCBldCwgZWRtOworICAgIGJvb2xlYW4gZWE7Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL1NpbXBsZURhdGVSdWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVEYXRlUnVsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIxYTdjMzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVEYXRlUnVsZS5qYXZhCkBAIC0wLDAgKzEsMjI2IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworLyoqCisgKiBTaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgRGF0ZVJ1bGUuCisgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluQWxsKQorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KK3B1YmxpYyBjbGFzcyBTaW1wbGVEYXRlUnVsZSBpbXBsZW1lbnRzIERhdGVSdWxlCit7CisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgcnVsZSBmb3IgYSBmaXhlZCBkYXRlIHdpdGhpbiBhIG1vbnRoCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgICAgICBUaGUgbW9udGggaW4gd2hpY2ggdGhpcyBydWxlIG9jY3VycyAoMC1iYXNlZCkuCisgICAgICogQHBhcmFtIGRheU9mTW9udGggICAgVGhlIGRhdGUgaW4gdGhhdCBtb250aCAoMS1iYXNlZCkuCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlRGF0ZVJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCkKKyAgICB7CisgICAgICAgIHRoaXMubW9udGggICAgICA9IG1vbnRoOworICAgICAgICB0aGlzLmRheU9mTW9udGggPSBkYXlPZk1vbnRoOworICAgICAgICB0aGlzLmRheU9mV2VlayAgPSAwOworICAgIH0KKworICAgIC8vIHRlbXBvcmFyeQorICAgIC8qIHBhY2thZ2UgKi9TaW1wbGVEYXRlUnVsZShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBDYWxlbmRhciBjYWwpCisgICAgeworICAgICAgICB0aGlzLm1vbnRoICAgICAgPSBtb250aDsKKyAgICAgICAgdGhpcy5kYXlPZk1vbnRoID0gZGF5T2ZNb250aDsKKyAgICAgICAgdGhpcy5kYXlPZldlZWsgID0gMDsKKyAgICAgICAgdGhpcy5jYWxlbmRhciAgID0gY2FsOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIHJ1bGUgZm9yIGEgd2Vla2RheSB3aXRoaW4gYSBtb250aCwgZS5nLiB0aGUgZmlyc3QgTW9uZGF5LgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgVGhlIG1vbnRoIGluIHdoaWNoIHRoaXMgcnVsZSBvY2N1cnMgKDAtYmFzZWQpLgorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoICAgIEEgZGF0ZSB3aXRoaW4gdGhhdCBtb250aCAoMS1iYXNlZCkuCisgICAgICogQHBhcmFtIGRheU9mV2VlayAgICAgVGhlIGRheSBvZiB0aGUgd2VlayBvbiB3aGljaCB0aGlzIHJ1bGUgb2NjdXJzLgorICAgICAqIEBwYXJhbSBhZnRlciAgICAgICAgIElmIHRydWUsIHRoaXMgcnVsZSBzZWxlY3RzIHRoZSBmaXJzdCBkYXlPZldlZWsKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBvbiBvciBhZnRlciBkYXlPZk1vbnRoLiAgSWYgZmFsc2UsIHRoZSBydWxlIHNlbGVjdHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB0aGUgZmlyc3QgZGF5T2ZXZWVrIG9uIG9yIGJlZm9yZSBkYXlPZk1vbnRoLgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFNpbXBsZURhdGVSdWxlKGludCBtb250aCwgaW50IGRheU9mTW9udGgsIGludCBkYXlPZldlZWssIGJvb2xlYW4gYWZ0ZXIpCisgICAgeworICAgICAgICB0aGlzLm1vbnRoICAgICAgPSBtb250aDsKKyAgICAgICAgdGhpcy5kYXlPZk1vbnRoID0gZGF5T2ZNb250aDsKKyAgICAgICAgdGhpcy5kYXlPZldlZWsgID0gYWZ0ZXIgPyBkYXlPZldlZWsgOiAtZGF5T2ZXZWVrOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3Qgb2NjdXJyYW5jZSBvZiB0aGUgZXZlbnQgcmVwcmVzZW50ZWQgYnkgdGhpcyBydWxlCisgICAgICogdGhhdCBpcyBvbiBvciBhZnRlciB0aGUgZ2l2ZW4gc3RhcnQgZGF0ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFydCBPbmx5IG9jY3VycmFuY2VzIG9uIG9yIGFmdGVyIHRoaXMgZGF0ZSBhcmUgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgVGhlIGRhdGUgb24gd2hpY2ggdGhpcyBldmVudCBvY2N1cnMsIG9yIG51bGwgaWYgaXQKKyAgICAgKiAgICAgICAgICAgICAgZG9lcyBub3Qgb2NjdXIgb24gb3IgYWZ0ZXIgdGhlIHN0YXJ0IGRhdGUuCisgICAgICoKKyAgICAgKiBAc2VlICNmaXJzdEJldHdlZW4KKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBEYXRlIGZpcnN0QWZ0ZXIoRGF0ZSBzdGFydCkKKyAgICB7CisgICAgICAgIHJldHVybiBkb0ZpcnN0QmV0d2VlbihzdGFydCwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoZSBldmVudCByZXByZXNlbnRlZCBieSB0aGlzIHJ1bGUKKyAgICAgKiB0aGF0IGlzIG9uIG9yIGFmdGVyIHRoZSBnaXZlbiBzdGFydCBkYXRlIGFuZCBiZWZvcmUgdGhlIGdpdmVuCisgICAgICogZW5kIGRhdGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhcnQgT25seSBvY2N1cnJhbmNlcyBvbiBvciBhZnRlciB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqIEBwYXJhbSBlbmQgICBPbmx5IG9jY3VycmFuY2VzIGJlZm9yZSB0aGlzIGRhdGUgYXJlIHJldHVybmVkLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgIFRoZSBkYXRlIG9uIHdoaWNoIHRoaXMgZXZlbnQgb2NjdXJzLCBvciBudWxsIGlmIGl0CisgICAgICogICAgICAgICAgICAgIGRvZXMgbm90IG9jY3VyIGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQgZGF0ZXMuCisgICAgICoKKyAgICAgKiBAc2VlICNmaXJzdEFmdGVyCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGF0ZSBmaXJzdEJldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpCisgICAgeworICAgICAgICAvLyBQaW4gdG8gdGhlIG1pbi9tYXggZGF0ZXMgZm9yIHRoaXMgcnVsZQorICAgICAgICByZXR1cm4gZG9GaXJzdEJldHdlZW4oc3RhcnQsIGVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIHdoZXRoZXIgdGhpcyBldmVudCBvY2N1cnMgb24gdGhlIGdpdmVuIGRhdGUuICBUaGlzIGRvZXMKKyAgICAgKiA8ZW0+bm90PC9lbT4gdGFrZSB0aW1lIG9mIGRheSBpbnRvIGFjY291bnQ7IGluc3RlYWQgaXQgY2hlY2tzCisgICAgICogd2hldGhlciB0aGlzIGV2ZW50IGFuZCB0aGUgZ2l2ZW4gZGF0ZSBhcmUgb24gdGhlIHNhbWUgZGF5LgorICAgICAqIFRoaXMgaXMgdXNlZnVsIGZvciBhcHBsaWNhdGlvbnMgc3VjaCBhcyBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZ2l2ZW4KKyAgICAgKiBkYXkgaXMgYSBob2xpZGF5LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgIFRoZSBkYXRlIHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gICAgICB0cnVlIGlmIHRoaXMgZXZlbnQgb2NjdXJzIG9uIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNPbihEYXRlIGRhdGUpCisgICAgeworICAgICAgICBDYWxlbmRhciBjID0gY2FsZW5kYXI7CisKKyAgICAgICAgc3luY2hyb25pemVkKGMpIHsKKyAgICAgICAgICAgIGMuc2V0VGltZShkYXRlKTsKKworICAgICAgICAgICAgaW50IGRheU9mWWVhciA9IGMuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKTsKKworICAgICAgICAgICAgYy5zZXRUaW1lKGNvbXB1dGVJblllYXIoYy5nZXQoQ2FsZW5kYXIuWUVBUiksIGMpKTsKKworLy8gICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICBpc09uOiBkYXlPZlllYXIgPSAiICsgZGF5T2ZZZWFyKTsKKy8vICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgICAgaG9saWRheSAgID0gIiArIGMuZ2V0KENhbGVuZGFyLkRBWV9PRl9ZRUFSKSk7CisKKyAgICAgICAgICAgIHJldHVybiBjLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikgPT0gZGF5T2ZZZWFyOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgd2hldGhlciB0aGlzIGV2ZW50IG9jY3VycyBhdCBsZWFzdCBvbmNlIGJldHdlZW4gdGhlIHR3bworICAgICAqIGRhdGVzIGdpdmVuLgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNCZXR3ZWVuKERhdGUgc3RhcnQsIERhdGUgZW5kKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZpcnN0QmV0d2VlbihzdGFydCwgZW5kKSAhPSBudWxsOyAvLyBUT0RPOiBvcHRpbWl6ZT8KKyAgICB9CisKKyAgICBwcml2YXRlIERhdGUgZG9GaXJzdEJldHdlZW4oRGF0ZSBzdGFydCwgRGF0ZSBlbmQpCisgICAgeworICAgICAgICBDYWxlbmRhciBjID0gY2FsZW5kYXI7CisKKyAgICAgICAgc3luY2hyb25pemVkKGMpIHsKKyAgICAgICAgICAgIGMuc2V0VGltZShzdGFydCk7CisKKyAgICAgICAgICAgIGludCB5ZWFyID0gYy5nZXQoQ2FsZW5kYXIuWUVBUik7CisgICAgICAgICAgICBpbnQgbW9udGggPSBjLmdldChDYWxlbmRhci5NT05USCk7CisKKyAgICAgICAgICAgIC8vIElmIHRoZSBydWxlIGlzIGVhcmxpZXIgaW4gdGhlIHllYXIgdGhhbiB0aGUgc3RhcnQgZGF0ZQorICAgICAgICAgICAgLy8gd2UgaGF2ZSB0byBnbyB0byB0aGUgbmV4dCB5ZWFyLgorICAgICAgICAgICAgaWYgKG1vbnRoID4gdGhpcy5tb250aCkgeworICAgICAgICAgICAgICAgIHllYXIrKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gRmlndXJlIG91dCB3aGVuIHRoZSBydWxlIGxhbmRzIGluIHRoZSBnaXZlbiB5ZWFyCisgICAgICAgICAgICBEYXRlIHJlc3VsdCA9IGNvbXB1dGVJblllYXIoeWVhciwgYyk7CisKKyAgICAgICAgICAgIC8vIElmIHRoZSBydWxlIGlzIGluIHRoZSBzYW1lIG1vbnRoIGFzIHRoZSBzdGFydCBkYXRlLCBpdCdzIHBvc3NpYmxlCisgICAgICAgICAgICAvLyB0byBnZXQgYSByZXN1bHQgdGhhdCdzIGJlZm9yZSB0aGUgc3RhcnQuICBJZiBzbywgZ28gdG8gbmV4dCB5ZWFyLgorICAgICAgICAgICAgaWYgKG1vbnRoID09IHRoaXMubW9udGggJiYgcmVzdWx0LmJlZm9yZShzdGFydCkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBjb21wdXRlSW5ZZWFyKHllYXIrMSwgYyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChlbmQgIT0gbnVsbCAmJiByZXN1bHQuYWZ0ZXIoZW5kKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgRGF0ZSBjb21wdXRlSW5ZZWFyKGludCB5ZWFyLCBDYWxlbmRhciBjKQorICAgIHsKKyAgICAgICAgc3luY2hyb25pemVkKGMpIHsKKyAgICAgICAgICAgIGMuY2xlYXIoKTsKKyAgICAgICAgICAgIGMuc2V0KENhbGVuZGFyLkVSQSwgYy5nZXRNYXhpbXVtKENhbGVuZGFyLkVSQSkpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuWUVBUiwgeWVhcik7CisgICAgICAgICAgICBjLnNldChDYWxlbmRhci5NT05USCwgbW9udGgpOworICAgICAgICAgICAgYy5zZXQoQ2FsZW5kYXIuREFURSwgZGF5T2ZNb250aCk7CisKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCIgICAgIGNvbXB1dGVJblllYXI6IHN0YXJ0IGF0ICIgKyBjLmdldFRpbWUoKS50b1N0cmluZygpKTsKKworICAgICAgICAgICAgaWYgKGRheU9mV2VlayAhPSAwKSB7CisgICAgICAgICAgICAgICAgYy5zZXRUaW1lKGMuZ2V0VGltZSgpKTsgICAgICAgIC8vIEpESyAxLjEuMiB3b3JrYXJvdW5kCisgICAgICAgICAgICAgICAgaW50IHdlZWtkYXkgPSBjLmdldChDYWxlbmRhci5EQVlfT0ZfV0VFSyk7CisKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5ID0gIiArIHdlZWtkYXkpOworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCIgICAgICAgICAgICAgICAgICAgIGRheU9mWWVhciA9ICIgKyBjLmdldChDYWxlbmRhci5EQVlfT0ZfWUVBUikpOworCisgICAgICAgICAgICAgICAgaW50IGRlbHRhID0gMDsKKyAgICAgICAgICAgICAgICBpZiAoZGF5T2ZXZWVrID4gMCkgeworICAgICAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRoZSBmaXJzdCBvY2N1cnJhbmNlIG9mIHRoZSBnaXZlbiBkYXkgb2YgdGhlIHdlZWsKKyAgICAgICAgICAgICAgICAgICAgLy8gb24gb3IgYWZ0ZXIgdGhlIHNwZWNpZmllZCBkYXRlIGluIHRoZSBtb250aC4KKyAgICAgICAgICAgICAgICAgICAgZGVsdGEgPSAoZGF5T2ZXZWVrIC0gd2Vla2RheSArIDcpICUgNzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlIHdhbnQgdGhlIGZpcnN0IG9jY3VycmFuY2Ugb2YgdGhlICgtZGF5T2ZXZWVrKQorICAgICAgICAgICAgICAgICAgICAvLyBvbiBvciBiZWZvcmUgdGhlIHNwZWNpZmllZCBkYXRlIGluIHRoZSBtb250aC4KKyAgICAgICAgICAgICAgICAgICAgZGVsdGEgPSAtKChkYXlPZldlZWsgKyB3ZWVrZGF5ICsgNykgJSA3KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIiAgICAgICAgICAgICAgICAgICAgYWRkaW5nICIgKyBkZWx0YSArICIgZGF5cyIpOworICAgICAgICAgICAgICAgIGMuYWRkKENhbGVuZGFyLkRBVEUsIGRlbHRhKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGMuZ2V0VGltZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKy8vICAgIHB1YmxpYyB2b2lkIHNldENhbGVuZGFyKENhbGVuZGFyIGMpIHsKKy8vICAgICAgICBjYWxlbmRhciA9IGM7CisvLyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBHcmVnb3JpYW5DYWxlbmRhciBnQ2FsZW5kYXIgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoKTsKKworICAgIHByaXZhdGUgQ2FsZW5kYXIgY2FsZW5kYXIgPSBnQ2FsZW5kYXI7CisKKyAgICBwcml2YXRlIGludCAgICAgbW9udGg7CisgICAgcHJpdmF0ZSBpbnQgICAgIGRheU9mTW9udGg7CisgICAgcHJpdmF0ZSBpbnQgICAgIGRheU9mV2VlazsKK307CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVIb2xpZGF5LmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9TaW1wbGVIb2xpZGF5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTQxNzZiOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1NpbXBsZUhvbGlkYXkuamF2YQpAQCAtMCwwICsxLDI2NCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkRhdGU7CitpbXBvcnQgY29tLmlibS5pY3UudXRpbC5DYWxlbmRhcjsKK2ltcG9ydCBjb20uaWJtLmljdS51dGlsLkdyZWdvcmlhbkNhbGVuZGFyOworCisvKioKKyAqIEEgaG9saWRheSB3aG9zZSBkYXRlIGNhbiBiZSByZXByZXNlbnRlZCBieSBhIG1vbnRoLCBkYXksIGFuZCBvcHRpb25hbGx5IGRheSBvZiB3ZWVrCisgKiBpbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLgorICoKKyAqIEBkcmFmdCBJQ1UgMi44IChyZXRhaW5BbGwpCisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworcHVibGljIGNsYXNzIFNpbXBsZUhvbGlkYXkgZXh0ZW5kcyBIb2xpZGF5IHsKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gb2JqZWN0IHJlcHJlc2VudGluZyBhIGhvbGlkYXkKKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgIFRoZSBtb250aCBpbiB3aGljaCB0aGlzIGhvbGlkYXkgb2NjdXJzICgwLWJhc2VkKQorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoICAgIFRoZSBkYXRlIHdpdGhpbiB0aGUgbW9udGggKDEtYmFzZWQpLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgIFRoZSBuYW1lIG9mIHRoaXMgaG9saWRheS4gIFRoaXMgc3RyaW5nIGlzIHVzZWQgYXMgYSBrZXkKKyAgICAgKiAgICAgICAgICAgICAgdG8gbG9vayB1cCB0aGUgaG9saWRheSdzIG5hbWUgYSByZXNvdXJjZSBidW5kbGUuCisgICAgICogICAgICAgICAgICAgIElmIHRoZSBuYW1lIGlzIG5vdCBmb3VuZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLAorICAgICAqICAgICAgICAgICAgICBnZXREaXNwbGF5TmFtZSB3aWxsIHJldHVybiB0aGlzIHN0cmluZyBpbnN0ZWFkLgorICAgICAqCisgICAgICogQHNlZSBIb2xpZGF5I2dldERpc3BsYXlOYW1lKGphdmEudXRpbC5Mb2NhbGUpCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlSG9saWRheShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBTdHJpbmcgbmFtZSkKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIG5ldyBTaW1wbGVEYXRlUnVsZShtb250aCwgZGF5T2ZNb250aCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhbiBvYmplY3QgcmVwcmVzZW50aW5nIGEgaG9saWRheQorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgVGhlIG1vbnRoIGluIHdoaWNoIHRoaXMgaG9saWRheSBvY2N1cnMgKDAtYmFzZWQpCisgICAgICogQHBhcmFtIGRheU9mTW9udGggICAgVGhlIGRhdGUgd2l0aGluIHRoZSBtb250aCAoMS1iYXNlZCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZSAgVGhlIG5hbWUgb2YgdGhpcyBob2xpZGF5LiAgVGhpcyBzdHJpbmcgaXMgdXNlZCBhcyBhIGtleQorICAgICAqICAgICAgICAgICAgICB0byBsb29rIHVwIHRoZSBob2xpZGF5J3MgbmFtZSBhIHJlc291cmNlIGJ1bmRsZS4KKyAgICAgKiAgICAgICAgICAgICAgSWYgdGhlIG5hbWUgaXMgbm90IGZvdW5kIGluIHRoZSByZXNvdXJjZSBidW5kbGUsCisgICAgICogICAgICAgICAgICAgIGdldERpc3BsYXlOYW1lIHdpbGwgcmV0dXJuIHRoaXMgc3RyaW5nIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBAc2VlIEhvbGlkYXkjZ2V0RGlzcGxheU5hbWUoamF2YS51dGlsLkxvY2FsZSkKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVIb2xpZGF5KGludCBtb250aCwgaW50IGRheU9mTW9udGgsIFN0cmluZyBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydFllYXIpCisgICAgeworICAgICAgICBzdXBlcihuYW1lLCByYW5nZVJ1bGUoc3RhcnRZZWFyLCAwLCBuZXcgU2ltcGxlRGF0ZVJ1bGUobW9udGgsIGRheU9mTW9udGgpKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGFuIG9iamVjdCByZXByZXNlbnRpbmcgYSBob2xpZGF5CisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgICAgICBUaGUgbW9udGggaW4gd2hpY2ggdGhpcyBob2xpZGF5IG9jY3VycyAoMC1iYXNlZCkKKyAgICAgKiBAcGFyYW0gZGF5T2ZNb250aCAgICBUaGUgZGF0ZSB3aXRoaW4gdGhlIG1vbnRoICgxLWJhc2VkKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lICBUaGUgbmFtZSBvZiB0aGlzIGhvbGlkYXkuICBUaGlzIHN0cmluZyBpcyB1c2VkIGFzIGEga2V5CisgICAgICogICAgICAgICAgICAgIHRvIGxvb2sgdXAgdGhlIGhvbGlkYXkncyBuYW1lIGEgcmVzb3VyY2UgYnVuZGxlLgorICAgICAqICAgICAgICAgICAgICBJZiB0aGUgbmFtZSBpcyBub3QgZm91bmQgaW4gdGhlIHJlc291cmNlIGJ1bmRsZSwKKyAgICAgKiAgICAgICAgICAgICAgZ2V0RGlzcGxheU5hbWUgd2lsbCByZXR1cm4gdGhpcyBzdHJpbmcgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIEBzZWUgSG9saWRheSNnZXREaXNwbGF5TmFtZShqYXZhLnV0aWwuTG9jYWxlKQorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFNpbXBsZUhvbGlkYXkoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgU3RyaW5nIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0WWVhciwgaW50IGVuZFllYXIpCisgICAgeworICAgICAgICBzdXBlcihuYW1lLCByYW5nZVJ1bGUoc3RhcnRZZWFyLCBlbmRZZWFyLCBuZXcgU2ltcGxlRGF0ZVJ1bGUobW9udGgsIGRheU9mTW9udGgpKSk7CisgICAgfQorCisgICAgLyoqIC8vIFRPRE86IHJlbW92ZQorICAgICAqIENvbnN0cnVjdCBhbiBvYmplY3QgcmVwcmVzZW50aW5nIGEgaG9saWRheQorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoIFRoZSBtb250aCBpbiB3aGljaCB0aGlzIGhvbGlkYXkgb2NjdXJzICgwLWJhc2VkKQorICAgICAqCisgICAgICogQHBhcmFtIGRheU9mTW9udGggQSBkYXRlIHdpdGhpbiB0aGUgbW9udGggKDEtYmFzZWQpLiAgVGhlCisgICAgICogICAgICBpbnRlcnByZXRhdGlvbiBvZiB0aGlzIHBhcmFtZXRlciBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZgorICAgICAqICAgICAgPGNvZGU+ZGF5T2ZXZWVrPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgVGhlIGRheSBvZiB0aGUgd2VlayBvbiB3aGljaCB0aGlzIGhvbGlkYXkgb2NjdXJzLgorICAgICAqICAgICAgVGhlIGZvbGxvd2luZyB2YWx1ZXMgYXJlIGxlZ2FsOiA8dWw+CisgICAgICogICAgICA8bGk+ZGF5T2ZXZWVrID09IDAgLSB1c2UgZGF5T2ZNb250aCBvbmx5CisgICAgICogICAgICA8bGk+ZGF5T2ZXZWVrIDwgMCAgLSB1c2UgbGFzdCAtZGF5T2ZXZWVrIGJlZm9yZSBvciBvbiBkYXlPZk1vbnRoCisgICAgICogICAgICA8bGk+ZGF5T2ZXZWVrID4gMCAgLSB1c2UgZmlyc3QgZGF5T2ZXZWVrIGFmdGVyIG9yIG9uIGRheU9mTW9udGgKKyAgICAgKiAgICAgIDwvdWw+CisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZSAgVGhlIG5hbWUgb2YgdGhpcyBob2xpZGF5LiAgVGhpcyBzdHJpbmcgaXMgdXNlZCBhcyBhIGtleQorICAgICAqICAgICAgICAgICAgICB0byBsb29rIHVwIHRoZSBob2xpZGF5J3MgbmFtZSBhIHJlc291cmNlIGJ1bmRsZS4KKyAgICAgKiAgICAgICAgICAgICAgSWYgdGhlIG5hbWUgaXMgbm90IGZvdW5kIGluIHRoZSByZXNvdXJjZSBidW5kbGUsCisgICAgICogICAgICAgICAgICAgIGdldERpc3BsYXlOYW1lIHdpbGwgcmV0dXJuIHRoaXMgc3RyaW5nIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBAc2VlIEhvbGlkYXkjZ2V0RGlzcGxheU5hbWUoamF2YS51dGlsLkxvY2FsZSkKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVIb2xpZGF5KGludCBtb250aCwgaW50IGRheU9mTW9udGgsIGludCBkYXlPZldlZWssIFN0cmluZyBuYW1lKQorICAgIHsKKyAgICAgICAgc3VwZXIobmFtZSwgbmV3IFNpbXBsZURhdGVSdWxlKG1vbnRoLCBkYXlPZk1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheU9mV2VlayA+IDAgPyBkYXlPZldlZWsgOiAtIGRheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlPZldlZWsgPiAwKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2ltcGxlSG9saWRheShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgZGF5T2ZXZWVrLCBTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydFllYXIpCisgICAgeworICAgICAgICBzdXBlcihuYW1lLCByYW5nZVJ1bGUoc3RhcnRZZWFyLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTaW1wbGVEYXRlUnVsZShtb250aCwgZGF5T2ZNb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlPZldlZWsgPiAwID8gZGF5T2ZXZWVrIDogLSBkYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5T2ZXZWVrID4gMCkpKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFNpbXBsZUhvbGlkYXkoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgaW50IGRheU9mV2VlaywgU3RyaW5nIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRZZWFyLCBpbnQgZW5kWWVhcikKKyAgICB7CisgICAgICAgIHN1cGVyKG5hbWUsIHJhbmdlUnVsZShzdGFydFllYXIsIGVuZFllYXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFNpbXBsZURhdGVSdWxlKG1vbnRoLCBkYXlPZk1vbnRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheU9mV2VlayA+IDAgPyBkYXlPZldlZWsgOiAtIGRheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlPZldlZWsgPiAwKSkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIERhdGVSdWxlIHJhbmdlUnVsZShpbnQgc3RhcnRZZWFyLCBpbnQgZW5kWWVhciwgRGF0ZVJ1bGUgcnVsZSkKKyAgICB7CisgICAgICAgIGlmIChzdGFydFllYXIgPT0gMCAmJiBlbmRZZWFyID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBydWxlOworICAgICAgICB9CisKKyAgICAgICAgUmFuZ2VEYXRlUnVsZSByYW5nZVJ1bGUgPSBuZXcgUmFuZ2VEYXRlUnVsZSgpOworCisgICAgICAgIGlmIChzdGFydFllYXIgIT0gMCkgeworICAgICAgICAgICAgQ2FsZW5kYXIgc3RhcnQgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoc3RhcnRZZWFyLCBDYWxlbmRhci5KQU5VQVJZLCAxKTsKKyAgICAgICAgICAgIHJhbmdlUnVsZS5hZGQoc3RhcnQuZ2V0VGltZSgpLCBydWxlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJhbmdlUnVsZS5hZGQocnVsZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVuZFllYXIgIT0gMCkgeworICAgICAgICAgICAgRGF0ZSBlbmQgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIoZW5kWWVhciwgQ2FsZW5kYXIuREVDRU1CRVIsIDMxKS5nZXRUaW1lKCk7CisgICAgICAgICAgICByYW5nZVJ1bGUuYWRkKGVuZCwgbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmFuZ2VSdWxlOworICAgIH0KKworICAgIC8qIENvbnN0YW50cyBmb3IgaG9saWRheXMgdGhhdCBhcmUgY29tbW9uIHRocm91Z2hvdXQgdGhlIFdlc3Rlcm4KKyAgICAgKiBhbmQgQ2hyaXN0aWFuIHdvcmxkcy4uLi4gKi8KKworICAgIC8qKgorICAgICAqIE5ldyBZZWFyJ3MgRGF5IC0gSmFudWFyeSAxc3QKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBORVdfWUVBUlNfREFZID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuSkFOVUFSWSwgICAgMSwgICJOZXcgWWVhcidzIERheSIpOworCisgICAgLyoqCisgICAgICogRXBpcGhhbnksIEphbnVhcnkgNnRoCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNpbXBsZUhvbGlkYXkgRVBJUEhBTlkgPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5KQU5VQVJZLCAgICA2LCAgIkVwaXBoYW55Iik7CisKKyAgICAvKioKKyAgICAgKiBNYXkgRGF5LCBNYXkgMXN0CisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNpbXBsZUhvbGlkYXkgTUFZX0RBWSA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLk1BWSwgICAgICAgIDEsICAiTWF5IERheSIpOworCisgICAgLyoqCisgICAgICogQXNzdW1wdGlvbiwgQXVndXN0IDE1dGgKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBBU1NVTVBUSU9OID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuQVVHVVNULCAgICAxNSwgICJBc3N1bXB0aW9uIik7CisKKyAgICAvKioKKyAgICAgKiBBbGwgU2FpbnRzJyBEYXksIE5vdmVtYmVyIDFzdAorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTaW1wbGVIb2xpZGF5IEFMTF9TQUlOVFNfREFZID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAgMSwgICJBbGwgU2FpbnRzJyBEYXkiKTsKKworICAgIC8qKgorICAgICAqIEFsbCBTb3VscycgRGF5LCBOb3ZlbWJlciAxc3QKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBBTExfU09VTFNfREFZID0KKyAgICAgICAgbmV3IFNpbXBsZUhvbGlkYXkoQ2FsZW5kYXIuTk9WRU1CRVIsICAgMiwgICJBbGwgU291bHMnIERheSIpOworCisgICAgLyoqCisgICAgICogSW1tYWN1bGF0ZSBDb25jZXB0aW9uLCBEZWNlbWJlciA4dGgKKyAgICAgKiBAZHJhZnQgSUNVIDIuOAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU2ltcGxlSG9saWRheSBJTU1BQ1VMQVRFX0NPTkNFUFRJT04gPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgICA4LCAgIkltbWFjdWxhdGUgQ29uY2VwdGlvbiIpOworCisgICAgLyoqCisgICAgICogQ2hyaXN0bWFzIEV2ZSwgRGVjZW1iZXIgMjR0aAorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTaW1wbGVIb2xpZGF5IENIUklTVE1BU19FVkUgPQorICAgICAgICBuZXcgU2ltcGxlSG9saWRheShDYWxlbmRhci5ERUNFTUJFUiwgIDI0LCAgIkNocmlzdG1hcyBFdmUiKTsKKworICAgIC8qKgorICAgICAqIENocmlzdG1hcywgRGVjZW1iZXIgMjV0aAorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTaW1wbGVIb2xpZGF5IENIUklTVE1BUyA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkRFQ0VNQkVSLCAgMjUsICAiQ2hyaXN0bWFzIik7CisKKyAgICAvKioKKyAgICAgKiBCb3hpbmcgRGF5LCBEZWNlbWJlciAyNnRoCisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNpbXBsZUhvbGlkYXkgQk9YSU5HX0RBWSA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkRFQ0VNQkVSLCAgMjYsICAiQm94aW5nIERheSIpOworCisgICAgLyoqCisgICAgICogU2FpbnQgU3RlcGhlbidzIERheSwgRGVjZW1iZXIgMjZ0aAorICAgICAqIEBkcmFmdCBJQ1UgMi44CisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTaW1wbGVIb2xpZGF5IFNUX1NURVBIRU5TX0RBWSA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkRFQ0VNQkVSLCAgMjYsICAiU3QuIFN0ZXBoZW4ncyBEYXkiKTsKKworICAgIC8qKgorICAgICAqIE5ldyBZZWFyJ3MgRXZlLCBEZWNlbWJlciAzMXN0CisgICAgICogQGRyYWZ0IElDVSAyLjgKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFNpbXBsZUhvbGlkYXkgTkVXX1lFQVJTX0VWRSA9CisgICAgICAgIG5ldyBTaW1wbGVIb2xpZGF5KENhbGVuZGFyLkRFQ0VNQkVSLCAgMzEsICAiTmV3IFllYXIncyBFdmUiKTsKKworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvU2ltcGxlVGltZVpvbmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1NpbXBsZVRpbWVab25lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYThkNDA1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1NpbXBsZVRpbWVab25lLmphdmEKQEAgLTAsMCArMSwxMTQyIEBACisvKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5KREtUaW1lWm9uZTsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkRhdGU7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLk9sc29uVGltZVpvbmU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5VdGlsaXR5OworCisvLy9DTE9WRVI6VVNFQ0xBU1MKKy8qKgorICogPGNvZGU+U2ltcGxlVGltZVpvbmU8L2NvZGU+IGlzIGEgY29uY3JldGUgc3ViY2xhc3Mgb2YgPGNvZGU+VGltZVpvbmU8L2NvZGU+CisgKiB0aGF0IHJlcHJlc2VudHMgYSB0aW1lIHpvbmUgZm9yIHVzZSB3aXRoIGEgR3JlZ29yaWFuIGNhbGVuZGFyLiBUaGlzCisgKiBjbGFzcyBkb2VzIG5vdCBoYW5kbGUgaGlzdG9yaWNhbCBjaGFuZ2VzLgorICoKKyAqIDxQPgorICogVXNlIGEgbmVnYXRpdmUgdmFsdWUgZm9yIDxjb2RlPmRheU9mV2Vla0luTW9udGg8L2NvZGU+IHRvIGluZGljYXRlIHRoYXQKKyAqIDxjb2RlPlNpbXBsZVRpbWVab25lPC9jb2RlPiBzaG91bGQgY291bnQgZnJvbSB0aGUgZW5kIG9mIHRoZSBtb250aCBiYWNrd2FyZHMuCisgKiBGb3IgZXhhbXBsZSwgRGF5bGlnaHQgU2F2aW5ncyBUaW1lIGVuZHMgYXQgdGhlIGxhc3QKKyAqIChkYXlPZldlZWtJbk1vbnRoID0gLTEpIFN1bmRheSBpbiBPY3RvYmVyLCBhdCAyIEFNIGluIHN0YW5kYXJkIHRpbWUuCisgKgorICogQHNlZSAgICAgIENhbGVuZGFyCisgKiBAc2VlICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIKKyAqIEBzZWUgICAgICBUaW1lWm9uZQorICogQGF1dGhvciAgIERhdmlkIEdvbGRzbWl0aCwgTWFyayBEYXZpcywgQ2hlbi1MaWVoIEh1YW5nLCBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3B1YmxpYyBjbGFzcyBTaW1wbGVUaW1lWm9uZSBleHRlbmRzIEpES1RpbWVab25lIHsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtNzAzNDY3NjIzOTMxMTMyMjc2OUw7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIGEgU2ltcGxlVGltZVpvbmUgd2l0aCB0aGUgZ2l2ZW4gYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IGZyb20gR01UCisgICAgICogYW5kIHRpbWUgem9uZSBJRC4gVGltZXpvbmUgSURzIGNhbiBiZSBvYnRhaW5lZCBmcm9tCisgICAgICogVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzLiBOb3JtYWxseSB5b3Ugc2hvdWxkIHVzZSBUaW1lWm9uZS5nZXREZWZhdWx0IHRvCisgICAgICogY29uc3RydWN0IGEgVGltZVpvbmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmF3T2Zmc2V0ICBUaGUgZ2l2ZW4gYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IHRvIEdNVC4KKyAgICAgKiBAcGFyYW0gSUQgICAgICAgICBUaGUgdGltZSB6b25lIElEIHdoaWNoIGlzIG9idGFpbmVkIGZyb20KKyAgICAgKiAgICAgICAgICAgICAgICAgICBUaW1lWm9uZS5nZXRBdmFpbGFibGVJRHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFNpbXBsZVRpbWVab25lKGludCByYXdPZmZzZXQsIFN0cmluZyBJRCkgeworICAgICAgICAvL3RoaXMobmV3IGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZShyYXdPZmZzZXQsIElEKSwgSUQpOworICAgICAgICAvL3N1cGVyKElEKTsKKyAgICAgICAgY29uc3RydWN0KHJhd09mZnNldCwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAwLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAwLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgTUlMTElTX1BFUl9IT1VSKTsKKyAgICAgICAgc3VwZXIuc2V0SUQoSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFNpbXBsZVRpbWVab25lIHdpdGggdGhlIGdpdmVuIGJhc2UgdGltZSB6b25lIG9mZnNldCBmcm9tCisgICAgICogR01ULCB0aW1lIHpvbmUgSUQsIHRpbWUgdG8gc3RhcnQgYW5kIGVuZCB0aGUgZGF5bGlnaHQgdGltZS4gVGltZXpvbmUgSURzCisgICAgICogY2FuIGJlIG9idGFpbmVkIGZyb20gVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzLiBOb3JtYWxseSB5b3Ugc2hvdWxkIHVzZQorICAgICAqIFRpbWVab25lLmdldERlZmF1bHQgdG8gY3JlYXRlIGEgVGltZVpvbmUuIEZvciBhIHRpbWUgem9uZSB0aGF0IGRvZXMgbm90CisgICAgICogdXNlIGRheWxpZ2h0IHNhdmluZyB0aW1lLCBkbyBub3QgdXNlIHRoaXMgY29uc3RydWN0b3I7IGluc3RlYWQgeW91IHNob3VsZAorICAgICAqIHVzZSBTaW1wbGVUaW1lWm9uZShyYXdPZmZzZXQsIElEKS4KKyAgICAgKgorICAgICAqIEJ5IGRlZmF1bHQsIHRoaXMgY29uc3RydWN0b3Igc3BlY2lmaWVzIGRheS1vZi13ZWVrLWluLW1vbnRoIHJ1bGVzLiBUaGF0CisgICAgICogaXMsIGlmIHRoZSBzdGFydERheSBpcyAxLCBhbmQgdGhlIHN0YXJ0RGF5T2ZXZWVrIGlzIFNVTkRBWSwgdGhlbiB0aGlzCisgICAgICogaW5kaWNhdGVzIHRoZSBmaXJzdCBTdW5kYXkgaW4gdGhlIHN0YXJ0TW9udGguIEEgc3RhcnREYXkgb2YgLTEgbGlrZXdpc2UKKyAgICAgKiBpbmRpY2F0ZXMgdGhlIGxhc3QgU3VuZGF5LiBIb3dldmVyLCBieSB1c2luZyBuZWdhdGl2ZSBvciB6ZXJvIHZhbHVlcyBmb3IKKyAgICAgKiBjZXJ0YWluIHBhcmFtZXRlcnMsIG90aGVyIHR5cGVzIG9mIHJ1bGVzIGNhbiBiZSBzcGVjaWZpZWQuCisgICAgICoKKyAgICAgKiBEYXkgb2YgbW9udGguIFRvIHNwZWNpZnkgYW4gZXhhY3QgZGF5IG9mIHRoZSBtb250aCwgc3VjaCBhcyBNYXJjaCAxLCBzZXQKKyAgICAgKiBzdGFydERheU9mV2VlayB0byB6ZXJvLgorICAgICAqCisgICAgICogRGF5IG9mIHdlZWsgYWZ0ZXIgZGF5IG9mIG1vbnRoLiBUbyBzcGVjaWZ5IHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsKKyAgICAgKiBvY2N1cnJpbmcgb24gb3IgYWZ0ZXIgYW4gZXhhY3QgZGF5IG9mIHRoZSBtb250aCwgbWFrZSB0aGUgZGF5IG9mIHRoZSB3ZWVrCisgICAgICogbmVnYXRpdmUuIEZvciBleGFtcGxlLCBpZiBzdGFydERheSBpcyA1IGFuZCBzdGFydERheU9mV2VlayBpcyAtTU9OREFZLAorICAgICAqIHRoaXMgaW5kaWNhdGVzIHRoZSBmaXJzdCBNb25kYXkgb24gb3IgYWZ0ZXIgdGhlIDV0aCBkYXkgb2YgdGhlCisgICAgICogc3RhcnRNb250aC4KKyAgICAgKgorICAgICAqIERheSBvZiB3ZWVrIGJlZm9yZSBkYXkgb2YgbW9udGguIFRvIHNwZWNpZnkgdGhlIGxhc3QgZGF5IG9mIHRoZSB3ZWVrCisgICAgICogb2NjdXJyaW5nIG9uIG9yIGJlZm9yZSBhbiBleGFjdCBkYXkgb2YgdGhlIG1vbnRoLCBtYWtlIHRoZSBkYXkgb2YgdGhlCisgICAgICogd2VlayBhbmQgdGhlIGRheSBvZiB0aGUgbW9udGggbmVnYXRpdmUuIEZvciBleGFtcGxlLCBpZiBzdGFydERheSBpcyAtMjEKKyAgICAgKiBhbmQgc3RhcnREYXlPZldlZWsgaXMgLVdFRE5FU0RBWSwgdGhpcyBpbmRpY2F0ZXMgdGhlIGxhc3QgV2VkbmVzZGF5IG9uIG9yCisgICAgICogYmVmb3JlIHRoZSAyMXN0IG9mIHRoZSBzdGFydE1vbnRoLgorICAgICAqCisgICAgICogVGhlIGFib3ZlIGV4YW1wbGVzIHJlZmVyIHRvIHRoZSBzdGFydE1vbnRoLCBzdGFydERheSwgYW5kIHN0YXJ0RGF5T2ZXZWVrOworICAgICAqIHRoZSBzYW1lIGFwcGxpZXMgZm9yIHRoZSBlbmRNb250aCwgZW5kRGF5LCBhbmQgZW5kRGF5T2ZXZWVrLgorICAgICAqCisgICAgICogQHBhcmFtIHJhd09mZnNldCAgICAgICBUaGUgZ2l2ZW4gYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IHRvIEdNVC4KKyAgICAgKiBAcGFyYW0gSUQgICAgICAgICAgICAgIFRoZSB0aW1lIHpvbmUgSUQgd2hpY2ggaXMgb2J0YWluZWQgZnJvbQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgVGltZVpvbmUuZ2V0QXZhaWxhYmxlSURzLgorICAgICAqIEBwYXJhbSBzdGFydE1vbnRoICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgbW9udGguIE1vbnRoIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAwLWJhc2VkLiBlZywgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gc3RhcnREYXkgICAgICAgIFRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBkYXktb2Ytd2Vlay1pbi1tb250aC4gUGxlYXNlIHNlZSB0aGUgbWVtYmVyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAcGFyYW0gc3RhcnREYXlPZldlZWsgIFRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIGRheS1vZi13ZWVrLiBQbGVhc2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNlZSB0aGUgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBzdGFydFRpbWUgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgdGltZSBpbiBsb2NhbCB3YWxsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICB0aW1lLCB3aGljaCBpcyBzdGFuZGFyZCB0aW1lIGluIHRoaXMgY2FzZS4gUGxlYXNlIHNlZSB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIG1lbWJlciBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAcGFyYW0gZW5kTW9udGggICAgICAgIFRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZyBtb250aC4gTW9udGggaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIDAtYmFzZWQuIGVnLCAwIGZvciBKYW51YXJ5LgorICAgICAqIEBwYXJhbSBlbmREYXkgICAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIGRheS1vZi13ZWVrLWluLW1vbnRoLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgUGxlYXNlIHNlZSB0aGUgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBlbmREYXlPZldlZWsgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIGRheS1vZi13ZWVrLiBQbGVhc2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgIHNlZSB0aGUgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBlbmRUaW1lICAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIHRpbWUgaW4gbG9jYWwgd2FsbCB0aW1lLAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgd2hpY2ggaXMgZGF5bGlnaHQgdGltZSBpbiB0aGlzIGNhc2UuIFBsZWFzZSBzZWUgdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICBtZW1iZXIgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhlIG1vbnRoLCBkYXksIGRheU9mV2Vlaywgb3IgdGltZQorICAgICAqIHBhcmFtZXRlcnMgYXJlIG91dCBvZiByYW5nZSBmb3IgdGhlIHN0YXJ0IG9yIGVuZCBydWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFNpbXBsZVRpbWVab25lKGludCByYXdPZmZzZXQsIFN0cmluZyBJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0TW9udGgsIGludCBzdGFydERheSwgaW50IHN0YXJ0RGF5T2ZXZWVrLCBpbnQgc3RhcnRUaW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kTW9udGgsIGludCBlbmREYXksIGludCBlbmREYXlPZldlZWssIGludCBlbmRUaW1lKSB7CisvKiAgICAgICAgdGhpcyhuZXcgamF2YS51dGlsLlNpbXBsZVRpbWVab25lKHJhd09mZnNldCwgSUQsIHN0YXJ0TW9udGgsIHN0YXJ0RGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnREYXlPZldlZWssIHN0YXJ0VGltZSwgZW5kTW9udGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmREYXksIGVuZERheU9mV2VlaywgZW5kVGltZSksIElEKTsqLworICAgICAgIC8vIFNUWkluZm8geGluZm8gPSBnZXRTVFpJbmZvKCk7CisgICAgICAgLy8geGluZm8uc2V0U3RhcnQoc3RhcnRNb250aCwgc3RhcnREYXksIHN0YXJ0RGF5T2ZXZWVrLCBzdGFydFRpbWUsIC0xLCBmYWxzZSk7CisgICAgICAgLy8geGluZm8uc2V0RW5kKGVuZE1vbnRoLCBlbmREYXksIGVuZERheU9mV2VlaywgZW5kVGltZSwgLTEsIGZhbHNlKTsKKyAgICAgICAgY29uc3RydWN0KHJhd09mZnNldCwKKyAgICAgICAgICAgICAgICBzdGFydE1vbnRoLCBzdGFydERheSwgc3RhcnREYXlPZldlZWssCisgICAgICAgICAgICAgICAgc3RhcnRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgZW5kTW9udGgsIGVuZERheSwgZW5kRGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgIGVuZFRpbWUsIFdBTExfVElNRSwKKyAgICAgICAgICAgICAgICBNSUxMSVNfUEVSX0hPVVIpOworICAgICAgICBzdXBlci5zZXRJRChJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuICBUaGlzIGNvbnN0cnVjdG9yIGlzIGlkZW50aWNhbCB0byB0aGUgMTAtYXJndW1lbnQKKyAgICAgKiBjb25zdHJ1Y3RvciwgYnV0IGFsc28gdGFrZXMgYSBkc3RTYXZpbmdzIHBhcmFtZXRlci4KKyAgICAgKiBAcGFyYW0gZHN0U2F2aW5ncyAgIFRoZSBhbW91bnQgb2YgdGltZSBpbiBtcyBzYXZlZCBkdXJpbmcgRFNULgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBtb250aCwgZGF5LCBkYXlPZldlZWssIG9yIHRpbWUKKyAgICAgKiBwYXJhbWV0ZXJzIGFyZSBvdXQgb2YgcmFuZ2UgZm9yIHRoZSBzdGFydCBvciBlbmQgcnVsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVUaW1lWm9uZShpbnQgcmF3T2Zmc2V0LCBTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydE1vbnRoLCBpbnQgc3RhcnREYXksIGludCBzdGFydERheU9mV2VlaywgaW50IHN0YXJ0VGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZE1vbnRoLCBpbnQgZW5kRGF5LCBpbnQgZW5kRGF5T2ZXZWVrLCBpbnQgZW5kVGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRzdFNhdmluZ3MpIHsKKyAgICAgICAgLyp0aGlzKG5ldyBqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUocmF3T2Zmc2V0LCBJRCwgc3RhcnRNb250aCwgc3RhcnREYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydERheU9mV2Vlaywgc3RhcnRUaW1lLCBlbmRNb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZERheSwgZW5kRGF5T2ZXZWVrLCBlbmRUaW1lLCBkc3RTYXZpbmdzKSwgSUQpOyovCisgICAgICAgIHRoaXMucmF3ID0gcmF3T2Zmc2V0OworICAgICAgICB0aGlzLmRzdCA9IGRzdFNhdmluZ3M7CisgICAgICAgIC8qCisgICAgICAgIFNUWkluZm8geGluZm8gPSBnZXRTVFpJbmZvKCk7CisgICAgICAgIHhpbmZvLnNldFN0YXJ0KHN0YXJ0TW9udGgsIHN0YXJ0RGF5LCBzdGFydERheU9mV2Vlaywgc3RhcnRUaW1lLCAtMSwgZmFsc2UpOworICAgICAgICB4aW5mby5zZXRFbmQoZW5kTW9udGgsIGVuZERheSwgZW5kRGF5T2ZXZWVrLCBlbmRUaW1lLCAtMSwgZmFsc2UpOworICAgICAgICAqLworCisgICAgICAgIGNvbnN0cnVjdChyYXdPZmZzZXQsCisgICAgICAgICAgICAgICAgc3RhcnRNb250aCwgc3RhcnREYXksIHN0YXJ0RGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgIHN0YXJ0VGltZSwgV0FMTF9USU1FLAorICAgICAgICAgICAgICAgIGVuZE1vbnRoLCBlbmREYXksIGVuZERheU9mV2VlaywKKyAgICAgICAgICAgICAgICBlbmRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgZHN0U2F2aW5ncyk7IAorICAgICAgICBzdXBlci5zZXRJRChJRCk7CisgICAgfQorICAgIAorCisgICAgLyoqCisgICAgICogU2V0IHRoZSByYXcgb2Zmc2V0LgorICAgICAqCisgICAgICogQHBhcmFtIG9mZnNldE1pbGxpcyB0aGUgcmF3IG9mZnNldCBvZiB0aGUgdGltZSB6b25lCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSYXdPZmZzZXQoaW50IG9mZnNldE1pbGxpcykgeworICAgICAgICByYXcgPSBvZmZzZXRNaWxsaXM7CisgICAgfQorICAKKyAgICAvKioKKyAgICAgKiBnZXQgdGhlIHJhdyBvZmZzZXQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSByYXcgb2Zmc2V0CisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFJhd09mZnNldCgpIHsKKyAgICAgICAgcmV0dXJuIHJhdzsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgeWVhci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB5ZWFyICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBzdGFydGluZyB5ZWFyLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFN0YXJ0WWVhcihpbnQgeWVhcikgeworICAgICAgICAvL3Vud3JhcFNUWigpLnNldFN0YXJ0WWVhcih5ZWFyKTsKKworICAgICAgICBnZXRTVFpJbmZvKCkuc3kgPSB5ZWFyOworICAgICAgICB0aGlzLnN0YXJ0WWVhciA9IHllYXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZGF5bGlnaHQgc2F2aW5ncyBzdGFydGluZyBydWxlLiBGb3IgZXhhbXBsZSwgRGF5bGlnaHQgU2F2aW5ncworICAgICAqIFRpbWUgc3RhcnRzIGF0IHRoZSBmaXJzdCBTdW5kYXkgaW4gQXByaWwsIGF0IDIgQU0gaW4gc3RhbmRhcmQgdGltZS4KKyAgICAgKiBUaGVyZWZvcmUsIHlvdSBjYW4gc2V0IHRoZSBzdGFydCBydWxlIGJ5IGNhbGxpbmc6CisgICAgICogc2V0U3RhcnRSdWxlKFRpbWVGaWVsZHMuQVBSSUwsIDEsIFRpbWVGaWVsZHMuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgICAgIFRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIG1vbnRoLiBNb250aCBpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAwLWJhc2VkLiBlZywgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrSW5Nb250aCAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5LW9mLXdlZWstaW4tbW9udGguIFBsZWFzZSBzZWUgdGhlIG1lbWJlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrICAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgZGF5LW9mLXdlZWsuCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIFBsZWFzZSBzZWUgdGhlIG1lbWJlciBkZXNjcmlwdGlvbiBmb3IgYW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhhbXBsZS4KKyAgICAgKiBAcGFyYW0gdGltZSAgICAgICAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgdGltZSBpbiBsb2NhbCB3YWxsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUsIHdoaWNoIGlzIHN0YW5kYXJkIHRpbWUgaW4gdGhpcyBjYXNlLiBQbGVhc2Ugc2VlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBtZW1iZXIgZGVzY3JpcHRpb24gZm9yIGFuIGV4YW1wbGUuCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhlIG1vbnRoLCBkYXlPZldlZWtJbk1vbnRoLAorICAgICAqIGRheU9mV2Vlaywgb3IgdGltZSBwYXJhbWV0ZXJzIGFyZSBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdGFydFJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZXZWVrSW5Nb250aCwgaW50IGRheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRpbWUpIHsKKyAgICAgICAgLy91bndyYXBTVFooKS5zZXRTdGFydFJ1bGUobW9udGgsIGRheU9mV2Vla0luTW9udGgsIGRheU9mV2VlaywgdGltZSk7CisKKyAgICAgICAgZ2V0U1RaSW5mbygpLnNldFN0YXJ0KG1vbnRoLCBkYXlPZldlZWtJbk1vbnRoLCBkYXlPZldlZWssIHRpbWUsIC0xLCBmYWxzZSk7CisgICAgICAgIHNldFN0YXJ0UnVsZShtb250aCwgZGF5T2ZXZWVrSW5Nb250aCwgZGF5T2ZXZWVrLCB0aW1lLCBXQUxMX1RJTUUpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIHJ1bGUuIEZvciBleGFtcGxlLCBpbiB0aGUgVS5TLiwgRGF5bGlnaHQgU2F2aW5ncworICAgICAqIFRpbWUgc3RhcnRzIGF0IHRoZSBmaXJzdCBTdW5kYXkgaW4gQXByaWwsIGF0IDIgQU0gaW4gc3RhbmRhcmQgdGltZS4KKyAgICAgKiBUaGVyZWZvcmUsIHlvdSBjYW4gc2V0IHRoZSBzdGFydCBydWxlIGJ5IGNhbGxpbmc6CisgICAgICogc2V0U3RhcnRSdWxlKFRpbWVGaWVsZHMuQVBSSUwsIDEsIFRpbWVGaWVsZHMuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICAgICAqIFRoZSBkYXlPZldlZWtJbk1vbnRoIGFuZCBkYXlPZldlZWsgcGFyYW1ldGVycyB0b2dldGhlciBzcGVjaWZ5IGhvdyB0byBjYWxjdWxhdGUKKyAgICAgKiB0aGUgZXhhY3Qgc3RhcnRpbmcgZGF0ZS4gIFRoZWlyIGV4YWN0IG1lYW5pbmcgZGVwZW5kIG9uIHRoZWlyIHJlc3BlY3RpdmUgc2lnbnMsCisgICAgICogYWxsb3dpbmcgdmFyaW91cyB0eXBlcyBvZiBydWxlcyB0byBiZSBjb25zdHJ1Y3RlZCwgYXMgZm9sbG93czo8dWw+CisgICAgICogICA8bGk+SWYgYm90aCBkYXlPZldlZWtJbk1vbnRoIGFuZCBkYXlPZldlZWsgYXJlIHBvc2l0aXZlLCB0aGV5IHNwZWNpZnkgdGhlCisgICAgICogICAgICAgZGF5IG9mIHdlZWsgaW4gdGhlIG1vbnRoIChlLmcuLCAoMiwgV0VETkVTREFZKSBpcyB0aGUgc2Vjb25kIFdlZG5lc2RheQorICAgICAqICAgICAgIG9mIHRoZSBtb250aCkuCisgICAgICogICA8bGk+SWYgZGF5T2ZXZWVrIGlzIHBvc2l0aXZlIGFuZCBkYXlPZldlZWtJbk1vbnRoIGlzIG5lZ2F0aXZlLCB0aGV5IHNwZWNpZnkKKyAgICAgKiAgICAgICB0aGUgZGF5IG9mIHdlZWsgaW4gdGhlIG1vbnRoIGNvdW50aW5nIGJhY2t3YXJkIGZyb20gdGhlIGVuZCBvZiB0aGUgbW9udGguCisgICAgICogICAgICAgKGUuZy4sICgtMSwgTU9OREFZKSBpcyB0aGUgbGFzdCBNb25kYXkgaW4gdGhlIG1vbnRoKQorICAgICAqICAgPGxpPklmIGRheU9mV2VlayBpcyB6ZXJvIGFuZCBkYXlPZldlZWtJbk1vbnRoIGlzIHBvc2l0aXZlLCBkYXlPZldlZWtJbk1vbnRoCisgICAgICogICAgICAgc3BlY2lmaWVzIHRoZSBkYXkgb2YgdGhlIG1vbnRoLCByZWdhcmRsZXNzIG9mIHdoYXQgZGF5IG9mIHRoZSB3ZWVrIGl0IGlzLgorICAgICAqICAgICAgIChlLmcuLCAoMTAsIDApIGlzIHRoZSB0ZW50aCBkYXkgb2YgdGhlIG1vbnRoKQorICAgICAqICAgPGxpPklmIGRheU9mV2VlayBpcyB6ZXJvIGFuZCBkYXlPZldlZWtJbk1vbnRoIGlzIG5lZ2F0aXZlLCBkYXlPZldlZWtJbk1vbnRoCisgICAgICogICAgICAgc3BlY2lmaWVzIHRoZSBkYXkgb2YgdGhlIG1vbnRoIGNvdW50aW5nIGJhY2t3YXJkIGZyb20gdGhlIGVuZCBvZiB0aGUKKyAgICAgKiAgICAgICBtb250aCwgcmVnYXJkbGVzcyBvZiB3aGF0IGRheSBvZiB0aGUgd2VlayBpdCBpcyAoZS5nLiwgKC0yLCAwKSBpcyB0aGUKKyAgICAgKiAgICAgICBuZXh0LXRvLWxhc3QgZGF5IG9mIHRoZSBtb250aCkuCisgICAgICogICA8bGk+SWYgZGF5T2ZXZWVrIGlzIG5lZ2F0aXZlIGFuZCBkYXlPZldlZWtJbk1vbnRoIGlzIHBvc2l0aXZlLCB0aGV5IHNwZWNpZnkgdGhlCisgICAgICogICAgICAgZmlyc3Qgc3BlY2lmaWVkIGRheSBvZiB0aGUgd2VlayBvbiBvciBhZnRlciB0aGUgc3BlY2ZpZWQgZGF5IG9mIHRoZSBtb250aC4KKyAgICAgKiAgICAgICAoZS5nLiwgKDE1LCAtU1VOREFZKSBpcyB0aGUgZmlyc3QgU3VuZGF5IGFmdGVyIHRoZSAxNXRoIG9mIHRoZSBtb250aAorICAgICAqICAgICAgIFtvciB0aGUgMTV0aCBpdHNlbGYgaWYgdGhlIDE1dGggaXMgYSBTdW5kYXldLikKKyAgICAgKiAgIDxsaT5JZiBkYXlPZldlZWsgYW5kIERheU9mV2Vla0luTW9udGggYXJlIGJvdGggbmVnYXRpdmUsIHRoZXkgc3BlY2lmeSB0aGUKKyAgICAgKiAgICAgICBsYXN0IHNwZWNpZmllZCBkYXkgb2YgdGhlIHdlZWsgb24gb3IgYmVmb3JlIHRoZSBzcGVjaWZpZWQgZGF5IG9mIHRoZSBtb250aC4KKyAgICAgKiAgICAgICAoZS5nLiwgKC0yMCwgLVRVRVNEQVkpIGlzIHRoZSBsYXN0IFR1ZXNkYXkgYmVmb3JlIHRoZSAyMHRoIG9mIHRoZSBtb250aAorICAgICAqICAgICAgIFtvciB0aGUgMjB0aCBpdHNlbGYgaWYgdGhlIDIwdGggaXMgYSBUdWVzZGF5XS4pPC91bD4KKyAgICAgKiBAcGFyYW0gbW9udGggdGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgbW9udGguIE1vbnRoIGlzIDAtYmFzZWQuCisgICAgICogZWcsIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRheU9mV2Vla0luTW9udGggdGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcKKyAgICAgKiBkYXktb2Ytd2Vlay1pbi1tb250aC4gUGxlYXNlIHNlZSB0aGUgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgdGhlIGRheWxpZ2h0IHNhdmluZ3Mgc3RhcnRpbmcgZGF5LW9mLXdlZWsuIFBsZWFzZSBzZWUKKyAgICAgKiB0aGUgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSB0aW1lIHRoZSBkYXlsaWdodCBzYXZpbmdzIHN0YXJ0aW5nIHRpbWUuIFBsZWFzZSBzZWUgdGhlIG1lbWJlcgorICAgICAqIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqLworICAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0U3RhcnRSdWxlKGludCBtb250aCwgaW50IGRheU9mV2Vla0luTW9udGgsIGludCBkYXlPZldlZWssIGludCB0aW1lLCBpbnQgbW9kZSkKKyAgICB7CisgICAgICAgIHN0YXJ0TW9udGggICAgID0gIG1vbnRoOworICAgICAgICBzdGFydERheSAgICAgICA9IGRheU9mV2Vla0luTW9udGg7CisgICAgICAgIHN0YXJ0RGF5T2ZXZWVrID0gZGF5T2ZXZWVrOworICAgICAgICBzdGFydFRpbWUgICAgICA9IHRpbWU7CisgICAgICAgIHN0YXJ0VGltZU1vZGUgID0gbW9kZTsKKyAgICAgICAgZGVjb2RlU3RhcnRSdWxlKCk7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldHMgdGhlIERTVCBzdGFydCBydWxlIHRvIGEgZml4ZWQgZGF0ZSB3aXRoaW4gYSBtb250aC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb250aCAgICAgICAgIFRoZSBtb250aCBpbiB3aGljaCB0aGlzIHJ1bGUgb2NjdXJzICgwLWJhc2VkKS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZNb250aCAgICBUaGUgZGF0ZSBpbiB0aGF0IG1vbnRoICgxLWJhc2VkKS4KKyAgICAgKiBAcGFyYW0gdGltZSAgICAgICAgICBUaGUgdGltZSBvZiB0aGF0IGRheSAobnVtYmVyIG9mIG1pbGxpcyBhZnRlciBtaWRuaWdodCkKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB3aGVuIERTVCB0YWtlcyBlZmZlY3QgaW4gbG9jYWwgd2FsbCB0aW1lLCB3aGljaCBpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkIHRpbWUgaW4gdGhpcyBjYXNlLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBtb250aCwKKyAgICAgKiBkYXlPZk1vbnRoLCBvciB0aW1lIHBhcmFtZXRlcnMgYXJlIG91dCBvZiByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFN0YXJ0UnVsZShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgdGltZSkgeworICAgICAgIC8vIHVud3JhcFNUWigpLnNldFN0YXJ0UnVsZShtb250aCwgZGF5T2ZNb250aCwgdGltZSk7CisKKyAgICAgICAgZ2V0U1RaSW5mbygpLnNldFN0YXJ0KG1vbnRoLCAtMSwgLTEsIHRpbWUsIGRheU9mTW9udGgsIGZhbHNlKTsKKyAgICAgICAgc2V0U3RhcnRSdWxlKG1vbnRoLCBkYXlPZk1vbnRoLCAwLCB0aW1lLCBXQUxMX1RJTUUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIERTVCBzdGFydCBydWxlIHRvIGEgd2Vla2RheSBiZWZvcmUgb3IgYWZ0ZXIgYSBnaXZlIGRhdGUgd2l0aGluCisgICAgICogYSBtb250aCwgZS5nLiwgdGhlIGZpcnN0IE1vbmRheSBvbiBvciBhZnRlciB0aGUgOHRoLgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgVGhlIG1vbnRoIGluIHdoaWNoIHRoaXMgcnVsZSBvY2N1cnMgKDAtYmFzZWQpLgorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoICAgIEEgZGF0ZSB3aXRoaW4gdGhhdCBtb250aCAoMS1iYXNlZCkuCisgICAgICogQHBhcmFtIGRheU9mV2VlayAgICAgVGhlIGRheSBvZiB0aGUgd2VlayBvbiB3aGljaCB0aGlzIHJ1bGUgb2NjdXJzLgorICAgICAqIEBwYXJhbSB0aW1lICAgICAgICAgIFRoZSB0aW1lIG9mIHRoYXQgZGF5IChudW1iZXIgb2YgbWlsbGlzIGFmdGVyIG1pZG5pZ2h0KQorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHdoZW4gRFNUIHRha2VzIGVmZmVjdCBpbiBsb2NhbCB3YWxsIHRpbWUsIHdoaWNoIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgc3RhbmRhcmQgdGltZSBpbiB0aGlzIGNhc2UuCisgICAgICogQHBhcmFtIGFmdGVyICAgICAgICAgSWYgdHJ1ZSwgdGhpcyBydWxlIHNlbGVjdHMgdGhlIGZpcnN0IGRheU9mV2VlayBvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIG9yIGFmdGVyIGRheU9mTW9udGguICBJZiBmYWxzZSwgdGhpcyBydWxlIHNlbGVjdHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB0aGUgbGFzdCBkYXlPZldlZWsgb24gb3IgYmVmb3JlIGRheU9mTW9udGguCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhlIG1vbnRoLCBkYXlPZk1vbnRoLAorICAgICAqIGRheU9mV2Vlaywgb3IgdGltZSBwYXJhbWV0ZXJzIGFyZSBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdGFydFJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgaW50IGRheU9mV2VlaywgaW50IHRpbWUsIGJvb2xlYW4gYWZ0ZXIpIHsKKyAgICAgICAgLy91bndyYXBTVFooKS5zZXRTdGFydFJ1bGUobW9udGgsIGRheU9mTW9udGgsIGRheU9mV2VlaywgdGltZSwgYWZ0ZXIpOworCisgICAgICAgIGdldFNUWkluZm8oKS5zZXRTdGFydChtb250aCwgLTEsIGRheU9mV2VlaywgdGltZSwgZGF5T2ZNb250aCwgYWZ0ZXIpOworICAgICAgICBzZXRTdGFydFJ1bGUobW9udGgsIGFmdGVyID8gZGF5T2ZNb250aCA6IC1kYXlPZk1vbnRoLAorICAgICAgICAgICAgICAgIC1kYXlPZldlZWssIHRpbWUsIFdBTExfVElNRSk7CisKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZyBydWxlLiBGb3IgZXhhbXBsZSwgRGF5bGlnaHQgU2F2aW5ncyBUaW1lCisgICAgICogZW5kcyBhdCB0aGUgbGFzdCAoLTEpIFN1bmRheSBpbiBPY3RvYmVyLCBhdCAyIEFNIGluIHN0YW5kYXJkIHRpbWUuCisgICAgICogVGhlcmVmb3JlLCB5b3UgY2FuIHNldCB0aGUgZW5kIHJ1bGUgYnkgY2FsbGluZzoKKyAgICAgKiBzZXRFbmRSdWxlKFRpbWVGaWVsZHMuT0NUT0JFUiwgLTEsIFRpbWVGaWVsZHMuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgICAgIFRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZyBtb250aC4gTW9udGggaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgMC1iYXNlZC4gZWcsIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRheU9mV2Vla0luTW9udGggIFRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBkYXktb2Ytd2Vlay1pbi1tb250aC4gUGxlYXNlIHNlZSB0aGUgbWVtYmVyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBwYXJhbSBkYXlPZldlZWsgICAgICAgICBUaGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgZGF5LW9mLXdlZWsuIFBsZWFzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBzZWUgdGhlIG1lbWJlciBkZXNjcmlwdGlvbiBmb3IgYW4gZXhhbXBsZS4KKyAgICAgKiBAcGFyYW0gdGltZSAgICAgICAgICAgICAgVGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIHRpbWUgaW4gbG9jYWwgd2FsbCB0aW1lLAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICB3aGljaCBpcyBkYXlsaWdodCB0aW1lIGluIHRoaXMgY2FzZS4gUGxlYXNlIHNlZSB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtYmVyIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBtb250aCwgZGF5T2ZXZWVrSW5Nb250aCwKKyAgICAgKiBkYXlPZldlZWssIG9yIHRpbWUgcGFyYW1ldGVycyBhcmUgb3V0IG9mIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RW5kUnVsZShpbnQgbW9udGgsIGludCBkYXlPZldlZWtJbk1vbnRoLCBpbnQgZGF5T2ZXZWVrLCBpbnQgdGltZSkgeworICAgICAgICAvL3Vud3JhcFNUWigpLnNldEVuZFJ1bGUobW9udGgsIGRheU9mV2Vla0luTW9udGgsIGRheU9mV2VlaywgdGltZSk7CisKKyAgICAgICAgZ2V0U1RaSW5mbygpLnNldEVuZChtb250aCwgZGF5T2ZXZWVrSW5Nb250aCwgZGF5T2ZXZWVrLCB0aW1lLCAtMSwgZmFsc2UpOworICAgICAgICBzZXRFbmRSdWxlKG1vbnRoLCBkYXlPZldlZWtJbk1vbnRoLCBkYXlPZldlZWssIHRpbWUsIFdBTExfVElNRSk7ICAgICAgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBEU1QgZW5kIHJ1bGUgdG8gYSBmaXhlZCBkYXRlIHdpdGhpbiBhIG1vbnRoLgorICAgICAqCisgICAgICogQHBhcmFtIG1vbnRoICAgICAgICAgVGhlIG1vbnRoIGluIHdoaWNoIHRoaXMgcnVsZSBvY2N1cnMgKDAtYmFzZWQpLgorICAgICAqIEBwYXJhbSBkYXlPZk1vbnRoICAgIFRoZSBkYXRlIGluIHRoYXQgbW9udGggKDEtYmFzZWQpLgorICAgICAqIEBwYXJhbSB0aW1lICAgICAgICAgIFRoZSB0aW1lIG9mIHRoYXQgZGF5IChudW1iZXIgb2YgbWlsbGlzIGFmdGVyIG1pZG5pZ2h0KQorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHdoZW4gRFNUIGVuZHMgaW4gbG9jYWwgd2FsbCB0aW1lLCB3aGljaCBpcyBkYXlsaWdodAorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHRpbWUgaW4gdGhpcyBjYXNlLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHRoZSBtb250aCwKKyAgICAgKiBkYXlPZk1vbnRoLCBvciB0aW1lIHBhcmFtZXRlcnMgYXJlIG91dCBvZiByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVuZFJ1bGUoaW50IG1vbnRoLCBpbnQgZGF5T2ZNb250aCwgaW50IHRpbWUpIHsKKyAgICAgICAgLy91bndyYXBTVFooKS5zZXRFbmRSdWxlKG1vbnRoLCBkYXlPZk1vbnRoLCB0aW1lKTsKKworICAgICAgICBnZXRTVFpJbmZvKCkuc2V0RW5kKG1vbnRoLCAtMSwgLTEsIHRpbWUsIGRheU9mTW9udGgsIGZhbHNlKTsKKyAgICAgICAgc2V0RW5kUnVsZShtb250aCwgZGF5T2ZNb250aCwgV0FMTF9USU1FLCB0aW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBEU1QgZW5kIHJ1bGUgdG8gYSB3ZWVrZGF5IGJlZm9yZSBvciBhZnRlciBhIGdpdmUgZGF0ZSB3aXRoaW4KKyAgICAgKiBhIG1vbnRoLCBlLmcuLCB0aGUgZmlyc3QgTW9uZGF5IG9uIG9yIGFmdGVyIHRoZSA4dGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9udGggICAgICAgICBUaGUgbW9udGggaW4gd2hpY2ggdGhpcyBydWxlIG9jY3VycyAoMC1iYXNlZCkuCisgICAgICogQHBhcmFtIGRheU9mTW9udGggICAgQSBkYXRlIHdpdGhpbiB0aGF0IG1vbnRoICgxLWJhc2VkKS4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrICAgICBUaGUgZGF5IG9mIHRoZSB3ZWVrIG9uIHdoaWNoIHRoaXMgcnVsZSBvY2N1cnMuCisgICAgICogQHBhcmFtIHRpbWUgICAgICAgICAgVGhlIHRpbWUgb2YgdGhhdCBkYXkgKG51bWJlciBvZiBtaWxsaXMgYWZ0ZXIgbWlkbmlnaHQpCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd2hlbiBEU1QgZW5kcyBpbiBsb2NhbCB3YWxsIHRpbWUsIHdoaWNoIGlzIGRheWxpZ2h0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgdGltZSBpbiB0aGlzIGNhc2UuCisgICAgICogQHBhcmFtIGFmdGVyICAgICAgICAgSWYgdHJ1ZSwgdGhpcyBydWxlIHNlbGVjdHMgdGhlIGZpcnN0IGRheU9mV2VlayBvbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIG9yIGFmdGVyIGRheU9mTW9udGguICBJZiBmYWxzZSwgdGhpcyBydWxlIHNlbGVjdHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB0aGUgbGFzdCBkYXlPZldlZWsgb24gb3IgYmVmb3JlIGRheU9mTW9udGguCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhlIG1vbnRoLCBkYXlPZk1vbnRoLAorICAgICAqIGRheU9mV2Vlaywgb3IgdGltZSBwYXJhbWV0ZXJzIGFyZSBvdXQgb2YgcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRFbmRSdWxlKGludCBtb250aCwgaW50IGRheU9mTW9udGgsIGludCBkYXlPZldlZWssIGludCB0aW1lLCBib29sZWFuIGFmdGVyKSB7CisgICAgICAgLy8gdW53cmFwU1RaKCkuc2V0RW5kUnVsZShtb250aCwgZGF5T2ZNb250aCwgZGF5T2ZXZWVrLCB0aW1lLCBhZnRlcik7CisKKyAgICAgICAgZ2V0U1RaSW5mbygpLnNldEVuZChtb250aCwgLTEsIGRheU9mV2VlaywgdGltZSwgZGF5T2ZNb250aCwgYWZ0ZXIpOworICAgICAgICBzZXRFbmRSdWxlKG1vbnRoLCBkYXlPZk1vbnRoLCBkYXlPZldlZWssIHRpbWUsIFdBTExfVElNRSwgYWZ0ZXIpOworICAgIH0KKyAgICBwcml2YXRlIHZvaWQgc2V0RW5kUnVsZShpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgZGF5T2ZXZWVrLCAKKyAgICAJCQkJCQlpbnQgdGltZSwgaW50IG1vZGUsIGJvb2xlYW4gYWZ0ZXIpeworICAgICAgICBzZXRFbmRSdWxlKG1vbnRoLCBhZnRlciA/IGRheU9mTW9udGggOiAtZGF5T2ZNb250aCwgLWRheU9mV2VlaywgdGltZSwgbW9kZSk7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIHJ1bGUuIEZvciBleGFtcGxlLCBpbiB0aGUgVS5TLiwgRGF5bGlnaHQKKyAgICAgKiBTYXZpbmdzIFRpbWUgZW5kcyBhdCB0aGUgbGFzdCAoLTEpIFN1bmRheSBpbiBPY3RvYmVyLCBhdCAyIEFNIGluIHN0YW5kYXJkIHRpbWUuCisgICAgICogVGhlcmVmb3JlLCB5b3UgY2FuIHNldCB0aGUgZW5kIHJ1bGUgYnkgY2FsbGluZzoKKyAgICAgKiBzZXRFbmRSdWxlKFRpbWVGaWVsZHMuT0NUT0JFUiwgLTEsIFRpbWVGaWVsZHMuU1VOREFZLCAyKjYwKjYwKjEwMDApOworICAgICAqIFZhcmlvdXMgb3RoZXIgdHlwZXMgb2YgcnVsZXMgY2FuIGJlIHNwZWNpZmllZCBieSBtYW5pcHVsYXRpbmcgdGhlIGRheU9mV2VlaworICAgICAqIGFuZCBkYXlPZldlZWtJbk1vbnRoIHBhcmFtZXRlcnMuICBGb3IgY29tcGxldGUgZGV0YWlscywgc2VlIHRoZSBkb2N1bWVudGF0aW9uCisgICAgICogZm9yIHNldFN0YXJ0UnVsZSgpLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgZGF5bGlnaHQgc2F2aW5ncyBlbmRpbmcgbW9udGguIE1vbnRoIGlzIDAtYmFzZWQuCisgICAgICogZWcsIDAgZm9yIEphbnVhcnkuCisgICAgICogQHBhcmFtIGRheU9mV2Vla0luTW9udGggdGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nCisgICAgICogZGF5LW9mLXdlZWstaW4tbW9udGguIFNlZSBzZXRTdGFydFJ1bGUoKSBmb3IgYSBjb21wbGV0ZSBleHBsYW5hdGlvbi4KKyAgICAgKiBAcGFyYW0gZGF5T2ZXZWVrIHRoZSBkYXlsaWdodCBzYXZpbmdzIGVuZGluZyBkYXktb2Ytd2Vlay4gU2VlIHNldFN0YXJ0UnVsZSgpCisgICAgICogZm9yIGEgY29tcGxldGUgZXhwbGFuYXRpb24uCisgICAgICogQHBhcmFtIHRpbWUgdGhlIGRheWxpZ2h0IHNhdmluZ3MgZW5kaW5nIHRpbWUuIFBsZWFzZSBzZWUgdGhlIG1lbWJlcgorICAgICAqIGRlc2NyaXB0aW9uIGZvciBhbiBleGFtcGxlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBzZXRFbmRSdWxlKGludCBtb250aCwgaW50IGRheU9mV2Vla0luTW9udGgsIGludCBkYXlPZldlZWssIGludCB0aW1lLCBpbnQgbW9kZSl7CisgICAgICAgIGVuZE1vbnRoICAgICA9IG1vbnRoOworICAgICAgICBlbmREYXkgICAgICAgPSBkYXlPZldlZWtJbk1vbnRoOworICAgICAgICBlbmREYXlPZldlZWsgPSBkYXlPZldlZWs7CisgICAgICAgIGVuZFRpbWUgICAgICA9IHRpbWU7CisgICAgICAgIGVuZFRpbWVNb2RlICA9IG1vZGU7CisgICAgICAgIGRlY29kZUVuZFJ1bGUoKTsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0cyB0aGUgYW1vdW50IG9mIHRpbWUgaW4gbXMgdGhhdCB0aGUgY2xvY2sgaXMgYWR2YW5jZWQgZHVyaW5nIERTVC4KKyAgICAgKiBAcGFyYW0gbWlsbGlzU2F2ZWREdXJpbmdEU1QgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhlIHRpbWUgaXMKKyAgICAgKiBhZHZhbmNlZCB3aXRoIHJlc3BlY3QgdG8gc3RhbmRhcmQgdGltZSB3aGVuIHRoZSBkYXlsaWdodCBzYXZpbmdzIHJ1bGVzCisgICAgICogYXJlIGluIGVmZmVjdC4gQSBwb3NpdGl2ZSBudW1iZXIsIHR5cGljYWxseSBvbmUgaG91ciAoMzYwMDAwMCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RFNUU2F2aW5ncyhpbnQgbWlsbGlzU2F2ZWREdXJpbmdEU1QpIHsKKyAgICAgICAgLy91bndyYXBTVFooKS5zZXREU1RTYXZpbmdzKG1pbGxpc1NhdmVkRHVyaW5nRFNUKTsKKyAgICAgICAgaWYgKG1pbGxpc1NhdmVkRHVyaW5nRFNUIDw9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICBkc3QgPSBtaWxsaXNTYXZlZER1cmluZ0RTVDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhbW91bnQgb2YgdGltZSBpbiBtcyB0aGF0IHRoZSBjbG9jayBpcyBhZHZhbmNlZCBkdXJpbmcgRFNULgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhlIHRpbWUgaXMKKyAgICAgKiBhZHZhbmNlZCB3aXRoIHJlc3BlY3QgdG8gc3RhbmRhcmQgdGltZSB3aGVuIHRoZSBkYXlsaWdodCBzYXZpbmdzIHJ1bGVzCisgICAgICogYXJlIGluIGVmZmVjdC4gQSBwb3NpdGl2ZSBudW1iZXIsIHR5cGljYWxseSBvbmUgaG91ciAoMzYwMDAwMCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGludCBnZXREU1RTYXZpbmdzKCkgeworICAgICAgICByZXR1cm4gZHN0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBTaW1wbGVUaW1lWm9uZSB0aGF0IHdyYXBzIHRoZSBnaXZlbgorICAgICAqIGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZS4gIERvIG5vdCBjYWxsOyB1c2UgdGhlIFRpbWVab25lCisgICAgICogQVBJLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVUaW1lWm9uZShqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUgdHosIFN0cmluZyBJRCkgeworICAgICAgICBzdXBlcih0eik7CisgICAgICAgIHN1cGVyLnNldElEKElEKTsKKyAgICAgICAgZHN0ID0gdHouZ2V0RFNUU2F2aW5ncygpOworICAgICAgICByYXcgPSB0ei5nZXRSYXdPZmZzZXQoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgamF2YS51dGlsLlNpbXBsZVRpbWVab25lIHRoYXQgdGhpcyBjbGFzcyB3cmFwcy4KKyAgICAgKgorICAgIGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZSB1bndyYXBTVFooKSB7CisgICAgICAgIHJldHVybiAoamF2YS51dGlsLlNpbXBsZVRpbWVab25lKSB1bndyYXAoKTsKKyAgICB9CisgICAgKi8KKyAgICAvLyBvbiBKREsgMS40IGFuZCBsYXRlciwgY2FuJ3QgZGVzZXJpYWxpemUgYSBTaW1wbGVUaW1lWm9uZSBhcyBhIFNpbXBsZVRpbWVab25lLi4uCisgICAgcHJpdmF0ZSB2b2lkIHJlYWRPYmplY3QoamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbSBpbikgdGhyb3dzIElPRXhjZXB0aW9uLCBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKyAgICAgICAgaW4uZGVmYXVsdFJlYWRPYmplY3QoKTsKKyAgICAgICAgU3RyaW5nIGlkID0gZ2V0SUQoKTsKKyAgICAgICAgLyoKKyAgICAgICAgaWYgKGlkIT1udWxsICYmICEoem9uZSBpbnN0YW5jZW9mIGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZSAmJiB6b25lLmdldElEKCkuZXF1YWxzKGlkKSkpIHsKKyAgICAgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigiKioqIHJlYWRqdXN0ICIgKyB6b25lLmdldENsYXNzKCkuZ2V0TmFtZSgpICsgIiAiICsgem9uZS5nZXRJRCgpICsgIiAqKioiKTsKKyAgICAgICAgICAgIGphdmEudXRpbC5TaW1wbGVUaW1lWm9uZSBzdHogPSAKKyAgICAgICAgICAgICAgICBuZXcgamF2YS51dGlsLlNpbXBsZVRpbWVab25lKHJhdywgaWQpOworICAgICAgICAgICAgaWYgKGRzdCAhPSAwKSB7CisgICAgICAgICAgICAgICAgc3R6LnNldERTVFNhdmluZ3MoZHN0KTsKKyAgICAgICAgICAgICAgICAvLyBpZiBpdCBpcyAwLCB0aGVuIHRoZXJlIHNob3VsZG4ndCBiZSBzdGFydC9lbmQgcnVsZXMgYW5kIHRoZSBkZWZhdWx0CisgICAgICAgICAgICAgICAgLy8gYmVoYXZpb3Igc2hvdWxkIGJlIG5vIGRzdAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoeGluZm8gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHhpbmZvLmFwcGx5VG8oc3R6KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHpvbmVKREsgPSBzdHo7CisgICAgICAgIH0KKyAgICAgICAgKi8KKyAgICAgICAgLyogc2V0IGFsbCBpbnN0YW5jZSB2YXJpYWJsZXMgaW4gdGhpcyBvYmplY3QKKyAgICAgICAgICogdG8gdGhlIHZhbHVlcyBpbiB6b25lIAorICAgICAgICAgKi8gICAgICAgICAgICAKKyAgICAgICAgIGlmICh4aW5mbyAhPSBudWxsKSB7CisgICAgICAgICAgICAgeGluZm8uYXBwbHlUbyh0aGlzKTsKKyAgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuCisgICAgICogQHJldHVybiAgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QKKyAgICAgKiBAZHJhZnQgSUNVIDMuNC4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuICJTaW1wbGVUaW1lWm9uZTogIiArIGdldElEKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBTVFpJbmZvIGdldFNUWkluZm8oKSB7CisgICAgICAgIGlmICh4aW5mbyA9PSBudWxsKSB7CisgICAgICAgICAgICB4aW5mbyA9IG5ldyBTVFpJbmZvKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHhpbmZvOworICAgIH0KKy8vICBXQVJOSU5HOiBhc3N1bWVzIHRoYXQgbm8gcnVsZSBpcyBtZWFzdXJlZCBmcm9tIHRoZSBlbmQgb2YgRmVicnVhcnksCisvLyAgc2luY2Ugd2UgZG9uJ3QgaGFuZGxlIGxlYXAgeWVhcnMuIENvdWxkIGhhbmRsZSBhc3N1bWluZyBhbHdheXMKKy8vICBHcmVnb3JpYW4sIHNpbmNlIHdlIGtub3cgdGhleSBkaWRuJ3QgaGF2ZSBkYXlsaWdodCB0aW1lIHdoZW4KKy8vICBHcmVnb3JpYW4gY2FsZW5kYXIgc3RhcnRlZC4KKyAgLy8gIHByaXZhdGUgc3RhdGljIGZpbmFsIGludFtdIFNUQVRJQ01PTlRITEVOR1RIID0gbmV3IGludFtdezMxLDI5LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxfTsKKyAgICBwcml2YXRlIGZpbmFsIGJ5dGUgbW9udGhMZW5ndGhbXSA9IHN0YXRpY01vbnRoTGVuZ3RoOworICAgIHByaXZhdGUgZmluYWwgc3RhdGljIGJ5dGUgc3RhdGljTW9udGhMZW5ndGhbXSA9IHszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMX07CisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgYnl0ZSBzdGF0aWNMZWFwTW9udGhMZW5ndGhbXSA9IHszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMX07CisKKy8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwgcmV2aXNpdCBmb3IgSUNVIDMuNgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0T2Zmc2V0KGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRheU9mV2VlaywgaW50IG1pbGxpcykgCisgICAgeworICAgICAgICAvLyBDaGVjayB0aGUgbW9udGggYmVmb3JlIGluZGV4aW5nIGludG8gU1RBVElDTU9OVEhMRU5HVEguIFRoaXMKKyAgICAgICAgLy8gZHVwbGljYXRlcyB0aGUgdGVzdCB0aGF0IG9jY3VycyBpbiB0aGUgNy1hcmd1bWVudCBnZXRPZmZzZXQoKSwKKyAgICAgICAgLy8gaG93ZXZlciwgdGhpcyBpcyB1bmF2b2lkYWJsZS4gV2UgZG9uJ3QgbWluZCBiZWNhdXNlIHRoaXMgbWV0aG9kLCBpbgorICAgICAgICAvLyBmYWN0LCBzaG91bGQgbm90IGJlIGNhbGxlZDsgaW50ZXJuYWwgY29kZSBzaG91bGQgYWx3YXlzIGNhbGwgdGhlCisgICAgICAgIC8vIDctYXJndW1lbnQgZ2V0T2Zmc2V0KCksIGFuZCBvdXRzaWRlIGNvZGUgc2hvdWxkIHVzZSBDYWxlbmRhci5nZXQoaW50CisgICAgICAgIC8vIGZpZWxkKSB3aXRoIGZpZWxkcyBaT05FX09GRlNFVCBhbmQgRFNUX09GRlNFVC4gV2UgY2FuJ3QgZ2V0IHJpZCBvZgorICAgICAgICAvLyB0aGlzIG1ldGhvZCBiZWNhdXNlIGl0J3MgcHVibGljIEFQSS4gLSBsaXUgOC8xMC85OAorICAgICAgICBpZihtb250aCA8IENhbGVuZGFyLkpBTlVBUlkgfHwgbW9udGggPiBDYWxlbmRhci5ERUNFTUJFUikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGdldE9mZnNldChlcmEsIHllYXIsIG1vbnRoLCBkYXksIGRheU9mV2VlaywgbWlsbGlzLCBzdGF0aWNNb250aExlbmd0aFttb250aF0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkYXlPZldlZWssIGludCBtaWxsaXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vbnRoTGVuZ3RoKSAgeworICAgICAgICAvLyBDaGVjayB0aGUgbW9udGggYmVmb3JlIGluZGV4aW5nIGludG8gU1RBVElDTU9OVEhMRU5HVEguIFRoaXMKKyAgICAgICAgLy8gZHVwbGljYXRlcyBhIHRlc3QgdGhhdCBvY2N1cnMgaW4gdGhlIDktYXJndW1lbnQgZ2V0T2Zmc2V0KCksCisgICAgICAgIC8vIGhvd2V2ZXIsIHRoaXMgaXMgdW5hdm9pZGFibGUuIFdlIGRvbid0IG1pbmQgYmVjYXVzZSB0aGlzIG1ldGhvZCwgaW4KKyAgICAgICAgLy8gZmFjdCwgc2hvdWxkIG5vdCBiZSBjYWxsZWQ7IGludGVybmFsIGNvZGUgc2hvdWxkIGFsd2F5cyBjYWxsIHRoZQorICAgICAgICAvLyA5LWFyZ3VtZW50IGdldE9mZnNldCgpLCBhbmQgb3V0c2lkZSBjb2RlIHNob3VsZCB1c2UgQ2FsZW5kYXIuZ2V0KGludAorICAgICAgICAvLyBmaWVsZCkgd2l0aCBmaWVsZHMgWk9ORV9PRkZTRVQgYW5kIERTVF9PRkZTRVQuIFdlIGNhbid0IGdldCByaWQgb2YKKyAgICAgICAgLy8gdGhpcyBtZXRob2QgYmVjYXVzZSBpdCdzIHB1YmxpYyBBUEkuIC0gbGl1IDgvMTAvOTgKKyAgICAgICAgaWYobW9udGggPCBDYWxlbmRhci5KQU5VQVJZIHx8IG1vbnRoID4gQ2FsZW5kYXIuREVDRU1CRVIpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gVE9ETyBGSVggV2UgZG9uJ3QgaGFuZGxlIGxlYXAgeWVhcnMgeWV0IQorICAgICAgICBpbnQgcHJldk1vbnRoTGVuZ3RoID0gKG1vbnRoID49IDEpID8gc3RhdGljTW9udGhMZW5ndGhbbW9udGggLSAxXSA6IDMxOworCisgICAgICAgIHJldHVybiBnZXRPZmZzZXQoZXJhLCB5ZWFyLCBtb250aCwgZGF5LCBkYXlPZldlZWssIG1pbGxpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBtb250aExlbmd0aCwgcHJldk1vbnRoTGVuZ3RoKTsKKyAgICB9CisKKyAgICBpbnQgZ2V0T2Zmc2V0KGludCBlcmEsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXksCisgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLCBpbnQgbWlsbGlzLCAKKyAgICAgICAgICAgICAgICAgIGludCBtb250aExlbmd0aCwgaW50IHByZXZNb250aExlbmd0aCApeworCisgICAgICAgIGlmICh0cnVlKSB7CisgICAgICAgICAgICAvKiBVc2UgdGhpcyBwYXJhbWV0ZXIgY2hlY2tpbmcgY29kZSBmb3Igbm9ybWFsIG9wZXJhdGlvbi4gIE9ubHkgb25lCisgICAgICAgICAgICAgKiBvZiB0aGVzZSB0d28gYmxvY2tzIHNob3VsZCBhY3R1YWxseSBnZXQgY29tcGlsZWQgaW50byB0aGUgY2xhc3MKKyAgICAgICAgICAgICAqIGZpbGUuICAqLworICAgICAgICAgICAgaWYgKChlcmEgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQUQgJiYgZXJhICE9IEdyZWdvcmlhbkNhbGVuZGFyLkJDKQorICAgICAgICAgICAgICAgIHx8IG1vbnRoIDwgQ2FsZW5kYXIuSkFOVUFSWQorICAgICAgICAgICAgICAgIHx8IG1vbnRoID4gQ2FsZW5kYXIuREVDRU1CRVIKKyAgICAgICAgICAgICAgICB8fCBkYXkgPCAxCisgICAgICAgICAgICAgICAgfHwgZGF5ID4gbW9udGhMZW5ndGgKKyAgICAgICAgICAgICAgICB8fCBkYXlPZldlZWsgPCBDYWxlbmRhci5TVU5EQVkKKyAgICAgICAgICAgICAgICB8fCBkYXlPZldlZWsgPiBDYWxlbmRhci5TQVRVUkRBWQorICAgICAgICAgICAgICAgIHx8IG1pbGxpcyA8IDAKKyAgICAgICAgICAgICAgICB8fCBtaWxsaXMgPj0gTUlMTElTX1BFUl9EQVkKKyAgICAgICAgICAgICAgICB8fCBtb250aExlbmd0aCA8IDI4CisgICAgICAgICAgICAgICAgfHwgbW9udGhMZW5ndGggPiAzMQorICAgICAgICAgICAgICAgIHx8IHByZXZNb250aExlbmd0aCA8IDI4CisgICAgICAgICAgICAgICAgfHwgcHJldk1vbnRoTGVuZ3RoID4gMzEpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvKiBUaGlzIHBhcmFtZXRlciBjaGVja2luZyBjb2RlIGlzIGJldHRlciBmb3IgZGVidWdnaW5nLCBidXQKKyAgICAgICAgICAgICAqIG92ZXJraWxsIGZvciBub3JtYWwgb3BlcmF0aW9uLiAgT25seSBvbmUgb2YgdGhlc2UgdHdvIGJsb2NrcworICAgICAgICAgICAgICogc2hvdWxkIGFjdHVhbGx5IGdldCBjb21waWxlZCBpbnRvIHRoZSBjbGFzcyBmaWxlLiAgKi8KKyAgICAgICAgICAgIGlmIChlcmEgIT0gR3JlZ29yaWFuQ2FsZW5kYXIuQUQgJiYgZXJhICE9IEdyZWdvcmlhbkNhbGVuZGFyLkJDKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSWxsZWdhbCBlcmEgIiArIGVyYSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobW9udGggPCBDYWxlbmRhci5KQU5VQVJZCisgICAgICAgICAgICAgICAgfHwgbW9udGggPiBDYWxlbmRhci5ERUNFTUJFUikgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgbW9udGggIiArIG1vbnRoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkYXkgPCAxCisgICAgICAgICAgICAgICAgfHwgZGF5ID4gbW9udGhMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGRheSAiICsgZGF5KyIgbWF4IG1vbnRoIGxlbjogIittb250aExlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZGF5T2ZXZWVrIDwgQ2FsZW5kYXIuU1VOREFZCisgICAgICAgICAgICAgICAgfHwgZGF5T2ZXZWVrID4gQ2FsZW5kYXIuU0FUVVJEQVkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIGRheSBvZiB3ZWVrICIgKyBkYXlPZldlZWspOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1pbGxpcyA8IDAKKyAgICAgICAgICAgICAgICB8fCBtaWxsaXMgPj0gTUlMTElTX1BFUl9EQVkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbGxlZ2FsIG1pbGxpcyAiICsgbWlsbGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtb250aExlbmd0aCA8IDI4CisgICAgICAgICAgICAgICAgfHwgbW9udGhMZW5ndGggPiAzMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgbW9udGggbGVuZ3RoICIgKyBtb250aExlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocHJldk1vbnRoTGVuZ3RoIDwgMjgKKyAgICAgICAgICAgICAgICB8fCBwcmV2TW9udGhMZW5ndGggPiAzMSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgcHJldmlvdXMgbW9udGggbGVuZ3RoICIgKyBwcmV2TW9udGhMZW5ndGgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaW50IHJlc3VsdCA9IHJhdzsKKworICAgICAgICAvLyBCYWlsIG91dCBpZiB3ZSBhcmUgYmVmb3JlIHRoZSBvbnNldCBvZiBkYXlsaWdodCBzYXZpbmdzIHRpbWUKKyAgICAgICAgaWYgKCF1c2VEYXlsaWdodCB8fCB5ZWFyIDwgc3RhcnRZZWFyIHx8IGVyYSAhPSBHcmVnb3JpYW5DYWxlbmRhci5BRCkgcmV0dXJuIHJlc3VsdDsKKworICAgICAgICAvLyBDaGVjayBmb3Igc291dGhlcm4gaGVtaXNwaGVyZS4gIFdlIGFzc3VtZSB0aGF0IHRoZSBzdGFydCBhbmQgZW5kCisgICAgICAgIC8vIG1vbnRoIGFyZSBkaWZmZXJlbnQuCisgICAgICAgIGJvb2xlYW4gc291dGhlcm4gPSAoc3RhcnRNb250aCA+IGVuZE1vbnRoKTsKKworICAgICAgICAvLyBDb21wYXJlIHRoZSBkYXRlIHRvIHRoZSBzdGFydGluZyBhbmQgZW5kaW5nIHJ1bGVzLisxID0gZGF0ZT5ydWxlLCAtMQorICAgICAgICAvLyA9IGRhdGU8cnVsZSwgMCA9IGRhdGU9PXJ1bGUuCisgICAgICAgIGludCBzdGFydENvbXBhcmUgPSBjb21wYXJlVG9SdWxlKG1vbnRoLCBtb250aExlbmd0aCwgcHJldk1vbnRoTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXksIGRheU9mV2VlaywgbWlsbGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWVNb2RlID09IFVUQ19USU1FID8gLXJhdyA6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0TW9kZSwgc3RhcnRNb250aCwgc3RhcnREYXlPZldlZWssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0RGF5LCBzdGFydFRpbWUpOworICAgICAgICBpbnQgZW5kQ29tcGFyZSA9IDA7CisKKyAgICAgICAgLyogV2UgZG9uJ3QgYWx3YXlzIGhhdmUgdG8gY29tcHV0ZSBlbmRDb21wYXJlLiAgRm9yIG1hbnkgaW5zdGFuY2VzLAorICAgICAgICAgKiBzdGFydENvbXBhcmUgaXMgZW5vdWdoIHRvIGRldGVybWluZSBpZiB3ZSBhcmUgaW4gRFNUIG9yIG5vdC4gIEluIHRoZQorICAgICAgICAgKiBub3J0aGVybiBoZW1pc3BoZXJlLCBpZiB3ZSBhcmUgYmVmb3JlIHRoZSBzdGFydCBydWxlLCB3ZSBjYW4ndCBoYXZlCisgICAgICAgICAqIERTVC4gIEluIHRoZSBzb3V0aGVybiBoZW1pc3BoZXJlLCBpZiB3ZSBhcmUgYWZ0ZXIgdGhlIHN0YXJ0IHJ1bGUsIHdlCisgICAgICAgICAqIG11c3QgaGF2ZSBEU1QuICBUaGlzIGlzIHJlZmxlY3RlZCBpbiB0aGUgd2F5IHRoZSBuZXh0IGlmIHN0YXRlbWVudAorICAgICAgICAgKiAobm90IHRoZSBvbmUgaW1tZWRpYXRlbHkgZm9sbG93aW5nKSBzaG9ydCBjaXJjdWl0cy4gKi8KKyAgICAgICAgaWYgKHNvdXRoZXJuICE9IChzdGFydENvbXBhcmUgPj0gMCkpIHsKKyAgICAgICAgICAgIC8qIEZvciB0aGUgZW5kaW5nIHJ1bGUgY29tcGFyaXNvbiwgd2UgYWRkIHRoZSBkc3RTYXZpbmdzIHRvIHRoZSBtaWxsaXMKKyAgICAgICAgICAgICAqIHBhc3NlZCBpbiB0byBjb252ZXJ0IHRoZW0gZnJvbSBzdGFuZGFyZCB0byB3YWxsIHRpbWUuICBXZSB0aGVuIG11c3QKKyAgICAgICAgICAgICAqIG5vcm1hbGl6ZSB0aGUgbWlsbGlzIHRvIHRoZSByYW5nZSAwLi5taWxsaXNQZXJEYXktMS4gKi8KKyAgICAgICAgICAgIGVuZENvbXBhcmUgPSBjb21wYXJlVG9SdWxlKG1vbnRoLCBtb250aExlbmd0aCwgcHJldk1vbnRoTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5LCBkYXlPZldlZWssIG1pbGxpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWVNb2RlID09IFdBTExfVElNRSA/IGRzdCA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZFRpbWVNb2RlID09IFVUQ19USU1FID8gLXJhdyA6IDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kTW9kZSwgZW5kTW9udGgsIGVuZERheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZERheSwgZW5kVGltZSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayBmb3IgYm90aCB0aGUgbm9ydGhlcm4gYW5kIHNvdXRoZXJuIGhlbWlzcGhlcmUgY2FzZXMuICBXZQorICAgICAgICAvLyBhc3N1bWUgdGhhdCBpbiB0aGUgbm9ydGhlcm4gaGVtaXNwaGVyZSwgdGhlIHN0YXJ0IHJ1bGUgaXMgYmVmb3JlIHRoZQorICAgICAgICAvLyBlbmQgcnVsZSB3aXRoaW4gdGhlIGNhbGVuZGFyIHllYXIsIGFuZCB2aWNlIHZlcnNhIGZvciB0aGUgc291dGhlcm4KKyAgICAgICAgLy8gaGVtaXNwaGVyZS4KKyAgICAgICAgaWYgKCghc291dGhlcm4gJiYgKHN0YXJ0Q29tcGFyZSA+PSAwICYmIGVuZENvbXBhcmUgPCAwKSkgfHwKKyAgICAgICAgICAgIChzb3V0aGVybiAmJiAoc3RhcnRDb21wYXJlID49IDAgfHwgZW5kQ29tcGFyZSA8IDApKSkKKyAgICAgICAgICAgIHJlc3VsdCArPSBkc3Q7CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKy8vICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50CisgICAgICAgIERPTV9NT0RFID0gMSwKKyAgICAgICAgRE9XX0lOX01PTlRIX01PREU9MiwKKyAgICAgICAgRE9XX0dFX0RPTV9NT0RFPTMsCisgICAgICAgIERPV19MRV9ET01fTU9ERT00OworCisgICAgLyoqCisgICAgICogVGltZU1vZGUgaXMgdXNlZCwgdG9nZXRoZXIgd2l0aCBhIG1pbGxpc2Vjb25kIG9mZnNldCBhZnRlcgorICAgICAqIG1pZG5pZ2h0LCB0byBzcGVjaWZ5IGEgcnVsZSB0cmFuc2l0aW9uIHRpbWUuICBNb3N0IHJ1bGVzCisgICAgICogdHJhbnNpdGlvbiBhdCBhIGxvY2FsIHdhbGwgdGltZSwgdGhhdCBpcywgYWNjb3JkaW5nIHRvIHRoZQorICAgICAqIGN1cnJlbnQgdGltZSBpbiBlZmZlY3QsIGVpdGhlciBzdGFuZGFyZCwgb3IgRFNULiAgSG93ZXZlciwgc29tZQorICAgICAqIHJ1bGVzIHRyYW5zaXRpb24gYXQgbG9jYWwgc3RhbmRhcmQgdGltZSwgYW5kIHNvbWUgYXQgYSBzcGVjaWZpYworICAgICAqIFVUQyB0aW1lLiAgQWx0aG91Z2ggaXQgbWlnaHQgc2VlbSB0aGF0IGFsbCB0aW1lcyBjb3VsZCBiZQorICAgICAqIGNvbnZlcnRlZCB0byB3YWxsIHRpbWUsIHRodXMgZWxpbWluYXRpbmcgdGhlIG5lZWQgZm9yIHRoaXMKKyAgICAgKiBwYXJhbWV0ZXIsIHRoaXMgaXMgbm90IHRoZSBjYXNlLgorICAgICAqIEBkcmFmdCBJQ1UgMy42CisgICAgICovCisgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBXQUxMX1RJTUUgPSAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBTkRBUkRfVElNRSA9IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVENfVElNRSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIGEgZ2l2ZW4gZGF0ZSBpbiB0aGUgeWVhciB0byBhIHJ1bGUuIFJldHVybiAxLCAwLCBvciAtMSwgZGVwZW5kaW5nCisgICAgICogb24gd2hldGhlciB0aGUgZGF0ZSBpcyBhZnRlciwgZXF1YWwgdG8sIG9yIGJlZm9yZSB0aGUgcnVsZSBkYXRlLiBUaGUKKyAgICAgKiBtaWxsaXMgYXJlIGNvbXBhcmVkIGRpcmVjdGx5IGFnYWluc3QgdGhlIHJ1bGVNaWxsaXMsIHNvIGFueQorICAgICAqIHN0YW5kYXJkLWRheWxpZ2h0IGFkanVzdG1lbnRzIG11c3QgYmUgaGFuZGxlZCBieSB0aGUgY2FsbGVyLgorICAgICAqCisgICAgICogQHJldHVybiAgMSBpZiB0aGUgZGF0ZSBpcyBhZnRlciB0aGUgcnVsZSBkYXRlLCAtMSBpZiB0aGUgZGF0ZSBpcyBiZWZvcmUKKyAgICAgKiAgICAgICAgICB0aGUgcnVsZSBkYXRlLCBvciAwIGlmIHRoZSBkYXRlIGlzIGVxdWFsIHRvIHRoZSBydWxlIGRhdGUuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgY29tcGFyZVRvUnVsZShpbnQgbW9udGgsIGludCBtb250aExlbiwgaW50IHByZXZNb250aExlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZNb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLCBpbnQgbWlsbGlzLCBpbnQgbWlsbGlzRGVsdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJ1bGVNb2RlLCBpbnQgcnVsZU1vbnRoLCBpbnQgcnVsZURheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcnVsZURheSwgaW50IHJ1bGVNaWxsaXMpCisgICAgeworICAgICAgICAvLyBNYWtlIGFkanVzdG1lbnRzIGZvciBzdGFydFRpbWVNb2RlIGFuZCBlbmRUaW1lTW9kZQorICAgIAkKKyAgICAJbWlsbGlzICs9IG1pbGxpc0RlbHRhOworICAgIAkKKyAgICAgICAgd2hpbGUgKG1pbGxpcyA+PSBNSUxMSVNfUEVSX0RBWSkgeworICAgICAgICAgICAgbWlsbGlzIC09IE1JTExJU19QRVJfREFZOworICAgICAgICAgICAgKytkYXlPZk1vbnRoOworICAgICAgICAgICAgZGF5T2ZXZWVrID0gMSArIChkYXlPZldlZWsgJSA3KTsgLy8gZGF5T2ZXZWVrIGlzIG9uZS1iYXNlZAorICAgICAgICAgICAgaWYgKGRheU9mTW9udGggPiBtb250aExlbikgeworICAgICAgICAgICAgICAgIGRheU9mTW9udGggPSAxOworICAgICAgICAgICAgICAgIC8qIFdoZW4gaW5jcmVtZW50aW5nIHRoZSBtb250aCwgaXQgaXMgZGVzaXJpYmxlIHRvIG92ZXJmbG93CisgICAgICAgICAgICAgICAgICogZnJvbSBERUNFTUJFUiB0byBERUNFTUJFUisxLCBzaW5jZSB3ZSB1c2UgdGhlIHJlc3VsdCB0bworICAgICAgICAgICAgICAgICAqIGNvbXBhcmUgYWdhaW5zdCBhIHJlYWwgbW9udGguIFdyYXBhcm91bmQgb2YgdGhlIHZhbHVlCisgICAgICAgICAgICAgICAgICogbGVhZHMgdG8gYnVnIDQxNzM2MDQuICovCisgICAgICAgICAgICAgICAgKyttb250aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB3aGlsZSAobWlsbGlzIDwgMCkgeworICAgICAgICAgICAgbWlsbGlzICs9IE1JTExJU19QRVJfREFZOworICAgICAgICAgICAgLS1kYXlPZk1vbnRoOworICAgICAgICAgICAgZGF5T2ZXZWVrID0gMSArICgoZGF5T2ZXZWVrKzUpICUgNyk7IC8vIGRheU9mV2VlayBpcyBvbmUtYmFzZWQKKyAgICAgICAgICAgIGlmIChkYXlPZk1vbnRoIDwgMSkgeworICAgICAgICAgICAgICAgIGRheU9mTW9udGggPSBwcmV2TW9udGhMZW47CisgICAgICAgICAgICAgICAgLS1tb250aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG1vbnRoIDwgcnVsZU1vbnRoKSByZXR1cm4gLTE7CisgICAgICAgIGVsc2UgaWYgKG1vbnRoID4gcnVsZU1vbnRoKSByZXR1cm4gMTsKKworICAgICAgICBpbnQgcnVsZURheU9mTW9udGggPSAwOworICAgICAgICBzd2l0Y2ggKHJ1bGVNb2RlKQorICAgICAgICB7CisgICAgICAgIGNhc2UgRE9NX01PREU6CisgICAgICAgICAgICBydWxlRGF5T2ZNb250aCA9IHJ1bGVEYXk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBET1dfSU5fTU9OVEhfTU9ERToKKyAgICAgICAgICAgIC8vIEluIHRoaXMgY2FzZSBydWxlRGF5IGlzIHRoZSBkYXktb2Ytd2Vlay1pbi1tb250aAorICAgICAgICAgICAgaWYgKHJ1bGVEYXkgPiAwKQorICAgICAgICAgICAgICAgIHJ1bGVEYXlPZk1vbnRoID0gMSArIChydWxlRGF5IC0gMSkgKiA3ICsKKyAgICAgICAgICAgICAgICAgICAgKDcgKyBydWxlRGF5T2ZXZWVrIC0gKGRheU9mV2VlayAtIGRheU9mTW9udGggKyAxKSkgJSA3OworICAgICAgICAgICAgZWxzZSAvLyBBc3N1bWUgcnVsZURheSA8IDAgaGVyZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJ1bGVEYXlPZk1vbnRoID0gbW9udGhMZW4gKyAocnVsZURheSArIDEpICogNyAtCisgICAgICAgICAgICAgICAgICAgICg3ICsgKGRheU9mV2VlayArIG1vbnRoTGVuIC0gZGF5T2ZNb250aCkgLSBydWxlRGF5T2ZXZWVrKSAlIDc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBET1dfR0VfRE9NX01PREU6CisgICAgICAgICAgICBydWxlRGF5T2ZNb250aCA9IHJ1bGVEYXkgKworICAgICAgICAgICAgICAgICg0OSArIHJ1bGVEYXlPZldlZWsgLSBydWxlRGF5IC0gZGF5T2ZXZWVrICsgZGF5T2ZNb250aCkgJSA3OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRE9XX0xFX0RPTV9NT0RFOgorICAgICAgICAgICAgcnVsZURheU9mTW9udGggPSBydWxlRGF5IC0KKyAgICAgICAgICAgICAgICAoNDkgLSBydWxlRGF5T2ZXZWVrICsgcnVsZURheSArIGRheU9mV2VlayAtIGRheU9mTW9udGgpICUgNzsKKyAgICAgICAgICAgIC8vIE5vdGUgYXQgdGhpcyBwb2ludCBydWxlRGF5T2ZNb250aCBtYXkgYmUgPDEsIGFsdGhvdWdoIGl0IHdpbGwKKyAgICAgICAgICAgIC8vIGJlID49MSBmb3Igd2VsbC1mb3JtZWQgcnVsZXMuCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkYXlPZk1vbnRoIDwgcnVsZURheU9mTW9udGgpIHJldHVybiAtMTsKKyAgICAgICAgZWxzZSBpZiAoZGF5T2ZNb250aCA+IHJ1bGVEYXlPZk1vbnRoKSByZXR1cm4gMTsKKworICAgICAgICBpZiAobWlsbGlzIDwgcnVsZU1pbGxpcyl7CisgICAgICAgIAlyZXR1cm4gLTE7CisgICAgICAgIH1lbHNlIGlmIChtaWxsaXMgPiBydWxlTWlsbGlzKXsKKyAgICAgICAgCXJldHVybiAxOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgCXJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIC8vIGRhdGEgbmVlZGVkIGZvciBzdHJlYW1pbmcgbXV0YXRlZCBTaW1wbGVUaW1lWm9uZXMgaW4gSkRLMTQKKyAgICBwcml2YXRlIGludCByYXc7Ly8gdGhlIFRpbWVab25lJ3MgcmF3IEdNVCBvZmZzZXQgCisgICAgcHJpdmF0ZSBpbnQgZHN0ID0gMzYwMDAwMDsKKyAgICBwcml2YXRlIFNUWkluZm8geGluZm8gPSBudWxsOworICAgIHByaXZhdGUgaW50IHN0YXJ0TW9udGgsIHN0YXJ0RGF5LCBzdGFydERheU9mV2VlazsgICAvLyB0aGUgbW9udGgsIGRheSwgRE9XLCBhbmQgdGltZSBEU1Qgc3RhcnRzCisgICAgcHJpdmF0ZSBpbnQgc3RhcnRUaW1lOworICAgIHByaXZhdGUgaW50IHN0YXJ0VGltZU1vZGUsIGVuZFRpbWVNb2RlOyAvLyBNb2RlIGZvciBzdGFydFRpbWUsIGVuZFRpbWU7IHNlZSBUaW1lTW9kZQorICAgIHByaXZhdGUgaW50IGVuZE1vbnRoLCBlbmREYXksIGVuZERheU9mV2VlazsgLy8gdGhlIG1vbnRoLCBkYXksIERPVywgYW5kIHRpbWUgRFNUIGVuZHMKKyAgICBwcml2YXRlIGludCBlbmRUaW1lOworICAgIHByaXZhdGUgaW50IHN0YXJ0WWVhcjsgIC8vIHRoZSB5ZWFyIHRoZXNlIERTVCBydWxlcyB0b29rIGVmZmVjdCAKKyAgICBwcml2YXRlIGJvb2xlYW4gdXNlRGF5bGlnaHQ7IC8vIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoaXMgVGltZVpvbmUgdXNlcyBEU1QKKyAgICBwcml2YXRlIGludCBzdGFydE1vZGUsIGVuZE1vZGU7ICAgLy8gZmxhZ3MgaW5kaWNhdGluZyB3aGF0IGtpbmQgb2YgcnVsZXMgdGhlIERTVCBydWxlcyBhcmUKKyAgICAKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwgcmV2aXNpdCBmb3IgSUNVIDMuNgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHVzZURheWxpZ2h0VGltZSgpeworICAgICAgICByZXR1cm4gdXNlRGF5bGlnaHQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaW5EYXlsaWdodFRpbWUoRGF0ZSBkYXRlKXsKKyAgICAgICAgR3JlZ29yaWFuQ2FsZW5kYXIgZ2MgPSBuZXcgR3JlZ29yaWFuQ2FsZW5kYXIodGhpcyk7CisgICAgICAgIGdjLnNldFRpbWUoZGF0ZSk7CisgICAgICAgIHJldHVybiBnYy5pbkRheWxpZ2h0VGltZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICovCisgICAgcHVibGljIFNpbXBsZVRpbWVab25lKGludCByYXcsICBTdHJpbmcgSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydE1vbnRoLCBpbnQgc3RhcnREYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydERheU9mV2VlaywgaW50IHN0YXJ0VGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0VGltZU1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbmRNb250aCwgaW50IGVuZERheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZERheU9mV2VlaywgaW50IGVuZFRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbmRUaW1lTW9kZSxpbnQgZHN0KXsKKyAgICAgICAgLyp0aGlzKG5ldyBqYXZhLnV0aWwuU2ltcGxlVGltZVpvbmUocmF3T2Zmc2V0R01ULCBJRCwgc2F2aW5nc1N0YXJ0TW9udGgsIHNhdmluZ3NTdGFydERheSwKKyAgICAgICAgICAgICAgICBzYXZpbmdzU3RhcnREYXlPZldlZWssIHNhdmluZ3NTdGFydFRpbWUsIHNhdmluZ3NFbmRNb250aCwKKyAgICAgICAgICAgICAgICBzYXZpbmdzRW5kRGF5LCBzYXZpbmdzRW5kRGF5T2ZXZWVrLCBzYXZpbmdzRW5kVGltZSwgc2F2aW5nc0RTVCksIElEKTsqLworICAgICAgICBjb25zdHJ1Y3QocmF3LAorICAgICAgICAgICAgICAgICAgc3RhcnRNb250aCwgc3RhcnREYXksIHN0YXJ0RGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lLCBzdGFydFRpbWVNb2RlLAorICAgICAgICAgICAgICAgICAgZW5kTW9udGgsIGVuZERheSwgZW5kRGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgZW5kVGltZSwgZW5kVGltZU1vZGUsCisgICAgICAgICAgICAgICAgICBkc3QpOworICAgIH0KKworLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8qCisgICAgU2ltcGxlVGltZVpvbmUoaW50IHJhd09mZnNldEdNVCwgU3RyaW5nIElELAorICAgICAgICBpbnQgc2F2aW5nc1N0YXJ0TW9udGgsIGludCBzYXZpbmdzU3RhcnREYXksCisgICAgICAgIGludCBzYXZpbmdzU3RhcnREYXlPZldlZWssIGludCBzYXZpbmdzU3RhcnRUaW1lLAorICAgICAgICBpbnQgc2F2aW5nc0VuZE1vbnRoLCBpbnQgc2F2aW5nc0VuZERheSwKKyAgICAgICAgaW50IHNhdmluZ3NFbmREYXlPZldlZWssIGludCBzYXZpbmdzRW5kVGltZSkKKyAgICB7CisgICAgICAgIGNvbnN0cnVjdChyYXdPZmZzZXRHTVQsCisgICAgICAgICAgICAgICAgICBzYXZpbmdzU3RhcnRNb250aCwgc2F2aW5nc1N0YXJ0RGF5LCBzYXZpbmdzU3RhcnREYXlPZldlZWssCisgICAgICAgICAgICAgICAgICBzYXZpbmdzU3RhcnRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgICBzYXZpbmdzRW5kTW9udGgsIHNhdmluZ3NFbmREYXksIHNhdmluZ3NFbmREYXlPZldlZWssCisgICAgICAgICAgICAgICAgICBzYXZpbmdzRW5kVGltZSwgV0FMTF9USU1FLAorICAgICAgICAgICAgICAgICAgVGltZVpvbmUuTUlMTElTX1BFUl9EQVkpOworICAgIH0KKyovCisvLyAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLyoKKyAgICBTaW1wbGVUaW1lWm9uZShpbnQgcmF3T2Zmc2V0R01ULCBTdHJpbmcgSUQsCisgICAgICAgIGludCBzYXZpbmdzU3RhcnRNb250aCwgaW50IHNhdmluZ3NTdGFydERheSwKKyAgICAgICAgaW50IHNhdmluZ3NTdGFydERheU9mV2VlaywgaW50IHNhdmluZ3NTdGFydFRpbWUsCisgICAgICAgIGludCBzYXZpbmdzRW5kTW9udGgsIGludCBzYXZpbmdzRW5kRGF5LAorICAgICAgICBpbnQgc2F2aW5nc0VuZERheU9mV2VlaywgaW50IHNhdmluZ3NFbmRUaW1lLAorICAgICAgICBpbnQgc2F2aW5nc0RTVCkKKyAgICB7CisgICAgICAgIGNvbnN0cnVjdChyYXdPZmZzZXRHTVQsCisgICAgICAgICAgICAgICAgICBzYXZpbmdzU3RhcnRNb250aCwgc2F2aW5nc1N0YXJ0RGF5LCBzYXZpbmdzU3RhcnREYXlPZldlZWssCisgICAgICAgICAgICAgICAgICBzYXZpbmdzU3RhcnRUaW1lLCBXQUxMX1RJTUUsCisgICAgICAgICAgICAgICAgICBzYXZpbmdzRW5kTW9udGgsIHNhdmluZ3NFbmREYXksIHNhdmluZ3NFbmREYXlPZldlZWssCisgICAgICAgICAgICAgICAgICBzYXZpbmdzRW5kVGltZSwgV0FMTF9USU1FLAorICAgICAgICAgICAgICAgICAgc2F2aW5nc0RTVCk7CisgICAgfQorICAgICovCisgICAgLyoqCisgICAgICogSW50ZXJuYWwgY29uc3RydWN0aW9uIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgY29uc3RydWN0KGludCByYXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRNb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydERheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydERheU9mV2VlaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydFRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRUaW1lTW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbmRNb250aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlbmREYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kRGF5T2ZXZWVrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZFRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW5kVGltZU1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHN0KSB7CisgICAgICAgIHRoaXMucmF3ICAgICAgICAgICAgPSByYXc7CisgICAgICAgIHRoaXMuc3RhcnRNb250aCAgICAgPSBzdGFydE1vbnRoOworICAgICAgICB0aGlzLnN0YXJ0RGF5ICAgICAgID0gc3RhcnREYXk7CisgICAgICAgIHRoaXMuc3RhcnREYXlPZldlZWsgPSBzdGFydERheU9mV2VlazsKKyAgICAgICAgdGhpcy5zdGFydFRpbWUgICAgICA9IHN0YXJ0VGltZTsKKyAgICAgICAgdGhpcy5zdGFydFRpbWVNb2RlICA9IHN0YXJ0VGltZU1vZGU7CisgICAgICAgIHRoaXMuZW5kTW9udGggICAgICAgPSBlbmRNb250aDsKKyAgICAgICAgdGhpcy5lbmREYXkgICAgICAgICA9IGVuZERheTsKKyAgICAgICAgdGhpcy5lbmREYXlPZldlZWsgICA9IGVuZERheU9mV2VlazsKKyAgICAgICAgdGhpcy5lbmRUaW1lICAgICAgICA9IGVuZFRpbWU7CisgICAgICAgIHRoaXMuZW5kVGltZU1vZGUgICAgPSBlbmRUaW1lTW9kZTsKKyAgICAgICAgdGhpcy5kc3QgICAgICAgICAgICA9IGRzdDsKKyAgICAgICAgdGhpcy5zdGFydFllYXIgICAgICA9IDA7CisgICAgICAgIHRoaXMuc3RhcnRNb2RlICAgICAgPSBET01fTU9ERTsKKyAgICAgICAgdGhpcy5lbmRNb2RlICAgICAgICA9IERPTV9NT0RFOworCisgICAgICAgIGRlY29kZVJ1bGVzKCk7CisKKyAgICAgICAgaWYgKGRzdCA8PSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcHJpdmF0ZSB2b2lkIGRlY29kZVJ1bGVzKCl7CisgICAgICAgIGRlY29kZVN0YXJ0UnVsZSgpOworICAgICAgICBkZWNvZGVFbmRSdWxlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjb2RlIHRoZSBzdGFydCBydWxlIGFuZCB2YWxpZGF0ZSB0aGUgcGFyYW1ldGVycy4gIFRoZSBwYXJhbWV0ZXJzIGFyZQorICAgICAqIGV4cGVjdGVkIHRvIGJlIGluIGVuY29kZWQgZm9ybSwgd2hpY2ggcmVwcmVzZW50cyB0aGUgdmFyaW91cyBydWxlIG1vZGVzCisgICAgICogYnkgbmVnYXRpbmcgb3IgemVyb2luZyBjZXJ0YWluIHZhbHVlcy4gIFJlcHJlc2VudGF0aW9uIGZvcm1hdHMgYXJlOgorICAgICAqIDxwPgorICAgICAqIDxwcmU+CisgICAgICogICAgICAgICAgICBET1dfSU5fTU9OVEggIERPTSAgICBET1c+PURPTSAgRE9XPD1ET00gIG5vIERTVAorICAgICAqICAgICAgICAgICAgLS0tLS0tLS0tLS0tICAtLS0tLSAgLS0tLS0tLS0gIC0tLS0tLS0tICAtLS0tLS0tLS0tCisgICAgICogbW9udGggICAgICAgMC4uMTEgICAgICAgIHNhbWUgICAgc2FtZSAgICAgIHNhbWUgICAgIGRvbid0IGNhcmUKKyAgICAgKiBkYXkgICAgICAgIC01Li41ICAgICAgICAgMS4uMzEgICAxLi4zMSAgICAtMS4uLTMxICAgMAorICAgICAqIGRheU9mV2VlayAgIDEuLjcgICAgICAgICAwICAgICAgLTEuLi03ICAgIC0xLi4tNyAgICBkb24ndCBjYXJlCisgICAgICogdGltZSAgICAgICAgMC4uT05FREFZICAgIHNhbWUgICAgc2FtZSAgICAgIHNhbWUgICAgIGRvbid0IGNhcmUKKyAgICAgKiA8L3ByZT4KKyAgICAgKiBUaGUgcmFuZ2UgZm9yIG1vbnRoIGRvZXMgbm90IGluY2x1ZGUgVU5ERUNJTUJFUiBzaW5jZSB0aGlzIGNsYXNzIGlzCisgICAgICogcmVhbGx5IHNwZWNpZmljIHRvIEdyZWdvcmlhbkNhbGVuZGFyLCB3aGljaCBkb2VzIG5vdCB1c2UgdGhhdCBtb250aC4KKyAgICAgKiBUaGUgcmFuZ2UgZm9yIHRpbWUgaW5jbHVkZXMgT05FREFZICh2cy4gZW5kaW5nIGF0IE9ORURBWS0xKSBiZWNhdXNlIHRoZQorICAgICAqIGVuZCBydWxlIGlzIGFuIGV4Y2x1c2l2ZSBsaW1pdCBwb2ludC4gIFRoYXQgaXMsIHRoZSByYW5nZSBvZiB0aW1lcyB0aGF0CisgICAgICogYXJlIGluIERTVCBpbmNsdWRlIHRob3NlID49IHRoZSBzdGFydCBhbmQgPCB0aGUgZW5kLiAgRm9yIHRoaXMgcmVhc29uLAorICAgICAqIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBzcGVjaWZ5IGFuIGVuZCBvZiBPTkVEQVkgaW4gb3JkZXIgdG8gaW5jbHVkZSB0aGUKKyAgICAgKiBlbnRpcmUgZGF5LiAgQWx0aG91Z2ggdGhpcyBpcyBlcXVpdmFsZW50IHRvIHRpbWUgMCBvZiB0aGUgZm9sbG93aW5nIGRheSwKKyAgICAgKiBpdCdzIG5vdCBhbHdheXMgcG9zc2libGUgdG8gc3BlY2lmeSB0aGF0LCBmb3IgZXhhbXBsZSwgb24gRGVjZW1iZXIgMzEuCisgICAgICogV2hpbGUgYXJndWFibHkgdGhlIHN0YXJ0IHJhbmdlIHNob3VsZCBzdGlsbCBiZSAwLi5PTkVEQVktMSwgd2Uga2VlcAorICAgICAqIHRoZSBzdGFydCBhbmQgZW5kIHJhbmdlcyB0aGUgc2FtZSBmb3IgY29uc2lzdGVuY3kuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGRlY29kZVN0YXJ0UnVsZSgpIHsKKworICAgICAgICB1c2VEYXlsaWdodCA9IChib29sZWFuKSgoc3RhcnREYXkgIT0gMCkgJiYgKGVuZERheSAhPSAwKSA/IHRydWUgOiBmYWxzZSAgKTsKKyAgICAgICAgaWYgKHVzZURheWxpZ2h0ICYmIGRzdCA9PSAwKSB7CisgICAgICAgICAgICBkc3QgPSBUaW1lWm9uZS5NSUxMSVNfUEVSX0RBWTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhcnREYXkgIT0gMCkgeworICAgICAgICAgICAgaWYgKHN0YXJ0TW9udGggPCBDYWxlbmRhci5KQU5VQVJZIHx8IHN0YXJ0TW9udGggPiBDYWxlbmRhci5ERUNFTUJFUikgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzdGFydFRpbWUgPCAwIHx8IHN0YXJ0VGltZSA+PSBUaW1lWm9uZS5NSUxMSVNfUEVSX0RBWSB8fAorICAgICAgICAgICAgICAgIHN0YXJ0VGltZU1vZGUgPCBXQUxMX1RJTUUgfHwgc3RhcnRUaW1lTW9kZSA+IFVUQ19USU1FKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHN0YXJ0RGF5T2ZXZWVrID09IDApIHsKKyAgICAgICAgICAgICAgICBzdGFydE1vZGUgPSBET01fTU9ERTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0RGF5T2ZXZWVrID4gMCkgeworICAgICAgICAgICAgICAgICAgICBzdGFydE1vZGUgPSBET1dfSU5fTU9OVEhfTU9ERTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzdGFydERheU9mV2VlayA9IChpbnQpLXN0YXJ0RGF5T2ZXZWVrOworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnREYXkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydE1vZGUgPSBET1dfR0VfRE9NX01PREU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydERheSA9IChpbnQpLXN0YXJ0RGF5OworICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRNb2RlID0gRE9XX0xFX0RPTV9NT0RFOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChzdGFydERheU9mV2VlayA+IENhbGVuZGFyLlNBVFVSREFZKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RhcnRNb2RlID09IERPV19JTl9NT05USF9NT0RFKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0RGF5IDwgLTUgfHwgc3RhcnREYXkgPiA1KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0RGF5IDwgMSB8fCBzdGFydERheSA+IHN0YXRpY01vbnRoTGVuZ3RoW3N0YXJ0TW9udGhdKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGVjb2RlIHRoZSBlbmQgcnVsZSBhbmQgdmFsaWRhdGUgdGhlIHBhcmFtZXRlcnMuICBUaGlzIG1ldGhvZCBpcyBleGFjdGx5CisgICAgICogYW5hbG9nb3VzIHRvIGRlY29kZVN0YXJ0UnVsZSgpLgorICAgICAqIEBzZWUgI2RlY29kZVN0YXJ0UnVsZQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBkZWNvZGVFbmRSdWxlKCkgeworICAgICAgICB1c2VEYXlsaWdodCA9IChib29sZWFuKSgoc3RhcnREYXkgIT0gMCkgJiYgKGVuZERheSAhPSAwKSA/IHRydWUgOiBmYWxzZSk7CisgICAgICAgIGlmICh1c2VEYXlsaWdodCAmJiBkc3QgPT0gMCkgeworICAgICAgICAgICAgZHN0ID0gVGltZVpvbmUuTUlMTElTX1BFUl9EQVk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVuZERheSAhPSAwKSB7CisgICAgICAgICAgICBpZiAoZW5kTW9udGggPCBDYWxlbmRhci5KQU5VQVJZIHx8IGVuZE1vbnRoID4gQ2FsZW5kYXIuREVDRU1CRVIpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZW5kVGltZSA8IDAgfHwgZW5kVGltZSA+IFRpbWVab25lLk1JTExJU19QRVJfREFZIHx8CisgICAgICAgICAgICAgICAgZW5kVGltZU1vZGUgPCBXQUxMX1RJTUUgfHwgZW5kVGltZU1vZGUgPiBVVENfVElNRSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChlbmREYXlPZldlZWsgPT0gMCkgeworICAgICAgICAgICAgICAgIGVuZE1vZGUgPSBET01fTU9ERTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGVuZERheU9mV2VlayA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZW5kTW9kZSA9IERPV19JTl9NT05USF9NT0RFOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGVuZERheU9mV2VlayA9IChpbnQpLWVuZERheU9mV2VlazsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGVuZERheSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZE1vZGUgPSBET1dfR0VfRE9NX01PREU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlbmREYXkgPSAoaW50KS1lbmREYXk7CisgICAgICAgICAgICAgICAgICAgICAgICBlbmRNb2RlID0gRE9XX0xFX0RPTV9NT0RFOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChlbmREYXlPZldlZWsgPiBDYWxlbmRhci5TQVRVUkRBWSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGVuZE1vZGUgPT0gRE9XX0lOX01PTlRIX01PREUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZW5kRGF5IDwgLTUgfHwgZW5kRGF5ID4gNSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIGlmIChlbmREYXk8MSB8fCBlbmREYXkgPiBzdGF0aWNNb250aExlbmd0aFtlbmRNb250aF0pIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiBvYmogaXMgYSBTaW1wbGVUaW1lWm9uZSBlcXVpdmFsZW50IHRvIHRoaXMuCisgICAgICogQHJldHVybiB0cnVlIGlmIG9iaiBpcyBhIFNpbXBsZVRpbWVab25lIGVxdWl2YWxlbnQgdG8gdGhpcworICAgICAqIEBkcmFmdCBJQ1UgMy40LjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iail7CisgICAgICAgIGlmICh0aGlzID09IG9iaikgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChvYmogPT0gbnVsbCB8fCBnZXRDbGFzcygpICE9IG9iai5nZXRDbGFzcygpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIFNpbXBsZVRpbWVab25lIHRoYXQgPSAoU2ltcGxlVGltZVpvbmUpIG9iajsKKyAgICAgICAgcmV0dXJuIHJhdyAgICAgPT0gdGhhdC5yYXcgJiYKKyAgICAgICAgICAgIHVzZURheWxpZ2h0ICAgICA9PSB0aGF0LnVzZURheWxpZ2h0ICYmCisgICAgICAgICAgICBpZEVxdWFscyhnZXRJRCgpLHRoYXQuZ2V0SUQoKSkgJiYKKyAgICAgICAgICAgICghdXNlRGF5bGlnaHQKKyAgICAgICAgICAgICAvLyBPbmx5IGNoZWNrIHJ1bGVzIGlmIHVzaW5nIERTVAorICAgICAgICAgICAgIHx8IChkc3QgICAgICAgICAgICA9PSB0aGF0LmRzdCAmJgorICAgICAgICAgICAgICAgICBzdGFydE1vZGUgICAgICA9PSB0aGF0LnN0YXJ0TW9kZSAmJgorICAgICAgICAgICAgICAgICBzdGFydE1vbnRoICAgICA9PSB0aGF0LnN0YXJ0TW9udGggJiYKKyAgICAgICAgICAgICAgICAgc3RhcnREYXkgICAgICAgPT0gdGhhdC5zdGFydERheSAmJgorICAgICAgICAgICAgICAgICBzdGFydERheU9mV2VlayA9PSB0aGF0LnN0YXJ0RGF5T2ZXZWVrICYmCisgICAgICAgICAgICAgICAgIHN0YXJ0VGltZSAgICAgID09IHRoYXQuc3RhcnRUaW1lICYmCisgICAgICAgICAgICAgICAgIHN0YXJ0VGltZU1vZGUgID09IHRoYXQuc3RhcnRUaW1lTW9kZSAmJgorICAgICAgICAgICAgICAgICBlbmRNb2RlICAgICAgICA9PSB0aGF0LmVuZE1vZGUgJiYKKyAgICAgICAgICAgICAgICAgZW5kTW9udGggICAgICAgPT0gdGhhdC5lbmRNb250aCAmJgorICAgICAgICAgICAgICAgICBlbmREYXkgICAgICAgICA9PSB0aGF0LmVuZERheSAmJgorICAgICAgICAgICAgICAgICBlbmREYXlPZldlZWsgICA9PSB0aGF0LmVuZERheU9mV2VlayAmJgorICAgICAgICAgICAgICAgICBlbmRUaW1lICAgICAgICA9PSB0aGF0LmVuZFRpbWUgJiYKKyAgICAgICAgICAgICAgICAgZW5kVGltZU1vZGUgICAgPT0gdGhhdC5lbmRUaW1lTW9kZSAmJgorICAgICAgICAgICAgICAgICBzdGFydFllYXIgICAgICA9PSB0aGF0LnN0YXJ0WWVhciApKTsKKworICAgIH0KKyAgICBwcml2YXRlIGJvb2xlYW4gaWRFcXVhbHMoU3RyaW5nIGlkMSwgU3RyaW5nIGlkMil7CisgICAgICAgIGlmKGlkMT09bnVsbCAmJiBpZDI9PW51bGwpeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYoaWQxIT1udWxsICYmIGlkMiE9bnVsbCl7CisgICAgICAgICAgICByZXR1cm4gaWQxLmVxdWFscyhpZDIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGhhc2ggY29kZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBoYXNoIGNvZGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuNC4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpeworICAgIAlpbnQgcmV0ID0gKGludCkoIHN1cGVyLmhhc2hDb2RlKCkgKworICAgIAkJCQkJIHJhdyBeIChyYXc+Pj44KSArCisgICAgCQkJCQkgKHVzZURheWxpZ2h0PzA6MSkpOworICAgIAlpZighdXNlRGF5bGlnaHQpeworICAgIAkJcmV0ICs9IChpbnQpKGRzdCBeIChkc3Q+Pj4xMCkgKworICAgIAkJCQlzdGFydE1vZGUgXiAoc3RhcnRNb2RlPj4+MTEpICsKKyAgICAJCQkJc3RhcnRNb250aCBeIChzdGFydE1vbnRoPj4+MTIpICsKKyAgICAJCQkJc3RhcnREYXkgXiAoc3RhcnREYXk+Pj4xMykgKworICAgIAkJCQlzdGFydERheU9mV2VlayBeIChzdGFydERheU9mV2Vlaz4+PjE0KSArCisgICAgCQkJCXN0YXJ0VGltZSBeIChzdGFydFRpbWU+Pj4xNSkgKworICAgIAkJCQlzdGFydFRpbWVNb2RlIF4gKHN0YXJ0VGltZU1vZGU+Pj4xNikgKworICAgIAkJCQllbmRNb2RlIF4gKGVuZE1vZGU+Pj4xNykgKworICAgIAkJCQllbmRNb250aCBeIChlbmRNb250aD4+PjE4KSArCisgICAgCQkJCWVuZERheSBeIChlbmREYXk+Pj4xOSkgKworICAgIAkJCQllbmREYXlPZldlZWsgXiAoZW5kRGF5T2ZXZWVrPj4+MjApICsKKyAgICAJCQkJZW5kVGltZSBeIChlbmRUaW1lPj4+MjEpICsKKyAgICAJCQkJZW5kVGltZU1vZGUgXiAoZW5kVGltZU1vZGU+Pj4yMikgKworICAgIAkJCQlzdGFydFllYXIgXiAoc3RhcnRZZWFyPj4+MjMpKTsKKyAgICAJfQorCQlyZXR1cm4gcmV0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIGNsb25lIG9mIHRoaXMgdGltZSB6b25lLgorICAgICAqIEByZXR1cm4gYSBjbG9uZSBvZiB0aGlzIHRpbWUgem9uZQorICAgICAqIEBkcmFmdCBJQ1UgMy40LjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICBTaW1wbGVUaW1lWm9uZSBjbG9uZSA9IG5ldyBTaW1wbGVUaW1lWm9uZSggcmF3LCBnZXRJRCgpKTsKKyAgICAgICAgY2xvbmUuc3RhcnRNb250aCAgICAgPSBzdGFydE1vbnRoOworICAgICAgICBjbG9uZS5zdGFydERheSAgICAgICA9IHN0YXJ0RGF5OworICAgICAgICBjbG9uZS5zdGFydERheU9mV2VlayA9IHN0YXJ0RGF5T2ZXZWVrOworICAgICAgICBjbG9uZS5zdGFydFRpbWUgICAgICA9IHN0YXJ0VGltZTsKKyAgICAgICAgY2xvbmUuc3RhcnRUaW1lTW9kZSAgPSBzdGFydFRpbWVNb2RlOworICAgICAgICBjbG9uZS5lbmRNb250aCAgICAgICA9IGVuZE1vbnRoOworICAgICAgICBjbG9uZS5lbmREYXkgICAgICAgICA9IGVuZERheTsKKyAgICAgICAgY2xvbmUuZW5kRGF5T2ZXZWVrICAgPSBlbmREYXlPZldlZWs7CisgICAgICAgIGNsb25lLmVuZFRpbWUgICAgICAgID0gZW5kVGltZTsKKyAgICAgICAgY2xvbmUuZW5kVGltZU1vZGUgICAgPSBlbmRUaW1lTW9kZTsKKyAgICAgICAgY2xvbmUuZHN0ICAgICAgICAgICAgPSBkc3Q7CisgICAgICAgIGNsb25lLnN0YXJ0WWVhciAgICAgID0gc3RhcnRZZWFyOworICAgICAgICBjbG9uZS5zdGFydE1vZGUgICAgICA9IHN0YXJ0TW9kZTsKKyAgICAgICAgY2xvbmUuZW5kTW9kZSAgICAgICAgPSBlbmRNb2RlOworICAgICAgICBjbG9uZS51c2VEYXlsaWdodCAgICA9IHVzZURheWxpZ2h0OworICAgICAgICByZXR1cm4gY2xvbmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNTYW1lUnVsZXMoVGltZVpvbmUgb3RocikgeworICAgIAlpZighKG90aHIgaW5zdGFuY2VvZiBTaW1wbGVUaW1lWm9uZSkpeworICAgIAkJcmV0dXJuIGZhbHNlOworICAgIAl9CisgICAgCVNpbXBsZVRpbWVab25lIG90aGVyID0gKFNpbXBsZVRpbWVab25lKW90aHI7CisgICAgICAgIHJldHVybiBvdGhlciAhPSBudWxsICYmCisgICAgICAgIHJhdyAgICAgPT0gb3RoZXIucmF3ICYmCisgICAgICAgIHVzZURheWxpZ2h0ICAgICA9PSBvdGhlci51c2VEYXlsaWdodCAmJgorICAgICAgICAoIXVzZURheWxpZ2h0CisgICAgICAgICAvLyBPbmx5IGNoZWNrIHJ1bGVzIGlmIHVzaW5nIERTVAorICAgICAgICAgfHwgKGRzdCAgICAgPT0gb3RoZXIuZHN0ICYmCisgICAgICAgICAgICAgc3RhcnRNb2RlICAgICAgPT0gb3RoZXIuc3RhcnRNb2RlICYmCisgICAgICAgICAgICAgc3RhcnRNb250aCAgICAgPT0gb3RoZXIuc3RhcnRNb250aCAmJgorICAgICAgICAgICAgIHN0YXJ0RGF5ICAgICAgID09IG90aGVyLnN0YXJ0RGF5ICYmCisgICAgICAgICAgICAgc3RhcnREYXlPZldlZWsgPT0gb3RoZXIuc3RhcnREYXlPZldlZWsgJiYKKyAgICAgICAgICAgICBzdGFydFRpbWUgICAgICA9PSBvdGhlci5zdGFydFRpbWUgJiYKKyAgICAgICAgICAgICBzdGFydFRpbWVNb2RlICA9PSBvdGhlci5zdGFydFRpbWVNb2RlICYmCisgICAgICAgICAgICAgZW5kTW9kZSAgICAgICAgPT0gb3RoZXIuZW5kTW9kZSAmJgorICAgICAgICAgICAgIGVuZE1vbnRoICAgICAgID09IG90aGVyLmVuZE1vbnRoICYmCisgICAgICAgICAgICAgZW5kRGF5ICAgICAgICAgPT0gb3RoZXIuZW5kRGF5ICYmCisgICAgICAgICAgICAgZW5kRGF5T2ZXZWVrICAgPT0gb3RoZXIuZW5kRGF5T2ZXZWVrICYmCisgICAgICAgICAgICAgZW5kVGltZSAgICAgICAgPT0gb3RoZXIuZW5kVGltZSAmJgorICAgICAgICAgICAgIGVuZFRpbWVNb2RlICAgID09IG90aGVyLmVuZFRpbWVNb2RlICYmCisgICAgICAgICAgICAgc3RhcnRZZWFyICAgICAgPT0gb3RoZXIuc3RhcnRZZWFyKSk7CisgICAgfQorCit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9TdHJpbmdUb2tlbml6ZXIuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1N0cmluZ1Rva2VuaXplci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwZmNmYzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9TdHJpbmdUb2tlbml6ZXIuamF2YQpAQCAtMCwwICsxLDYzNCBAQAorLyoqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLk5vU3VjaEVsZW1lbnRFeGNlcHRpb247CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5Vbmljb2RlU2V0OworaW1wb3J0IGNvbS5pYm0uaWN1LnRleHQuVVRGMTY7CisKKy8qKgorICogPHA+VGhlIHN0cmluZyB0b2tlbml6ZXIgY2xhc3MgYWxsb3dzIGFuIGFwcGxpY2F0aW9uIHRvIGJyZWFrIGEgc3RyaW5nIAorICogaW50byB0b2tlbnMgYnkgcGVyZm9ybWluZyBjb2RlIHBvaW50IGNvbXBhcmlzb24uIAorICogVGhlIDxjb2RlPlN0cmluZ1Rva2VuaXplcjwvY29kZT4gbWV0aG9kcyBkbyBub3QgZGlzdGluZ3Vpc2ggCisgKiBhbW9uZyBpZGVudGlmaWVycywgbnVtYmVycywgYW5kIHF1b3RlZCBzdHJpbmdzLCBub3IgZG8gdGhleSByZWNvZ25pemUgCisgKiBhbmQgc2tpcCBjb21tZW50cy48L3A+CisgKiA8cD4KKyAqIFRoZSBzZXQgb2YgZGVsaW1pdGVycyAodGhlIGNvZGVwb2ludHMgdGhhdCBzZXBhcmF0ZSB0b2tlbnMpIG1heSBiZSAKKyAqIHNwZWNpZmllZCBlaXRoZXIgYXQgY3JlYXRpb24gdGltZSBvciBvbiBhIHBlci10b2tlbiBiYXNpcy4gCisgKiA8L3A+CisgKiA8cD4KKyAqIEFuIGluc3RhbmNlIG9mIDxjb2RlPlN0cmluZ1Rva2VuaXplcjwvY29kZT4gYmVoYXZlcyBpbiBvbmUgb2YgdGhyZWUgd2F5cywgCisgKiBkZXBlbmRpbmcgb24gd2hldGhlciBpdCB3YXMgY3JlYXRlZCB3aXRoIHRoZSA8Y29kZT5yZXR1cm5EZWxpbXM8L2NvZGU+IAorICogYW5kIDxjb2RlPmNvYWxlc2NlRGVsaW1zPC9jb2RlPgorICogZmxhZ3MgaGF2aW5nIHRoZSB2YWx1ZSA8Y29kZT50cnVlPC9jb2RlPiBvciA8Y29kZT5mYWxzZTwvY29kZT46IAorICogPHVsPgorICogPGxpPklmIHJldHVybkRlbGltcyBpcyA8Y29kZT5mYWxzZTwvY29kZT4sIGRlbGltaXRlciBjb2RlIHBvaW50cyBzZXJ2ZSB0byAKKyAqIHNlcGFyYXRlIHRva2Vucy4gQSB0b2tlbiBpcyBhIG1heGltYWwgc2VxdWVuY2Ugb2YgY29uc2VjdXRpdmUgCisgKiBjb2RlIHBvaW50cyB0aGF0IGFyZSBub3QgZGVsaW1pdGVycy4gCisgKiA8bGk+SWYgcmV0dXJuRGVsaW1zIGlzIDxjb2RlPnRydWU8L2NvZGU+LCBkZWxpbWl0ZXIgY29kZSBwb2ludHMgYXJlIAorICogdGhlbXNlbHZlcyBjb25zaWRlcmVkIHRvIGJlIHRva2Vucy4gSW4gdGhpcyBjYXNlLCBpZiBjb2FsZXNjZURlbGltcyBpcworICogPGNvZGU+dHJ1ZTwvY29kZT4sIHN1Y2ggdG9rZW5zIHdpbGwgYmUgdGhlIG1heGltYWwgc2VxdWVuY2Ugb2YgY29uc2VjdXRpdmUKKyAqIGNvZGUgcG9pbnRzIHRoYXQgPGVtPmFyZTwvZW0+IGRlbGltaXRlcnMuICBJZiBjb2FsZXNjZURlbGltcyBpcyBmYWxzZSwKKyAqIGEgdG9rZW4gd2lsbCBiZSByZWNlaXZlZCBmb3IgZWFjaCBkZWxpbWl0ZXIgY29kZSBwb2ludC4KKyAqIDwvdWw+CisgKiA8cD5BIHRva2VuIGlzIHRodXMgZWl0aGVyIG9uZSAKKyAqIGRlbGltaXRlciBjb2RlIHBvaW50LCBhIG1heGltYWwgc2VxdWVuY2Ugb2YgY29uc2VjdXRpdmUgY29kZSBwb2ludHMgdGhhdAorICogYXJlIGRlbGltaXRlcnMsIG9yIGEgbWF4aW1hbCBzZXF1ZW5jZSBvZiBjb25zZWN1dGl2ZSBjb2RlIAorICogcG9pbnRzIHRoYXQgYXJlIG5vdCBkZWxpbWl0ZXJzLgorICogPC9wPgorICogPHA+CisgKiBBIDx0dD5TdHJpbmdUb2tlbml6ZXI8L3R0PiBvYmplY3QgaW50ZXJuYWxseSBtYWludGFpbnMgYSBjdXJyZW50IAorICogcG9zaXRpb24gd2l0aGluIHRoZSBzdHJpbmcgdG8gYmUgdG9rZW5pemVkLiBTb21lIG9wZXJhdGlvbnMgYWR2YW5jZSB0aGlzIAorICogY3VycmVudCBwb3NpdGlvbiBwYXN0IHRoZSBjb2RlIHBvaW50IHByb2Nlc3NlZC4KKyAqIDwvcD4KKyAqIDxwPgorICogQSB0b2tlbiBpcyByZXR1cm5lZCBieSB0YWtpbmcgYSBzdWJzdHJpbmcgb2YgdGhlIHN0cmluZyB0aGF0IHdhcyB1c2VkIHRvIAorICogY3JlYXRlIHRoZSA8dHQ+U3RyaW5nVG9rZW5pemVyPC90dD4gb2JqZWN0LgorICogPC9wPgorICogPHA+CisgKiBFeGFtcGxlIG9mIHRoZSB1c2Ugb2YgdGhlIGRlZmF1bHQgZGVsaW1pdGVyIHRva2VuaXplci4KKyAqIDxibG9ja3F1b3RlPjxwcmU+CisgKiBTdHJpbmdUb2tlbml6ZXIgc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKCJ0aGlzIGlzIGEgdGVzdCIpOworICogd2hpbGUgKHN0Lmhhc01vcmVUb2tlbnMoKSkgeworICogICAgIHByaW50bG4oc3QubmV4dFRva2VuKCkpOworICogICAgIH0KKyAqIDwvcHJlPjwvYmxvY2txdW90ZT4KKyAqIDwvcD4KKyAqIDxwPgorICogcHJpbnRzIHRoZSBmb2xsb3dpbmcgb3V0cHV0OgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqICAgICB0aGlzCisgKiAgICAgaXMKKyAqICAgICBhCisgKiAgICAgdGVzdAorICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogPC9wPgorICogPHA+CisgKiBFeGFtcGxlIG9mIHRoZSB1c2Ugb2YgdGhlIHRva2VuaXplciB3aXRoIHVzZXIgc3BlY2lmaWVkIGRlbGltaXRlci4KKyAqIDxibG9ja3F1b3RlPjxwcmU+CisgKiAgICAgU3RyaW5nVG9rZW5pemVyIHN0ID0gbmV3IFN0cmluZ1Rva2VuaXplcigKKyAqICAgICAidGhpcyBpcyBhIHRlc3Qgd2l0aCBzdXBwbGVtZW50YXJ5IGNoYXJhY3RlcnMgJiM5Mjt1ZDgwMCYjOTI7dWQ4MDAmIzkyO3VkYzAwJiM5Mjt1ZGMwMCIsCisgKiAgICAgICAgICIgJiM5Mjt1ZDgwMCYjOTI7dWRjMDAiKTsKKyAqICAgICB3aGlsZSAoc3QuaGFzTW9yZVRva2VucygpKSB7CisgKiAgICAgICAgIHByaW50bG4oc3QubmV4dFRva2VuKCkpOworICogICAgIH0KKyAqIDwvcHJlPjwvYmxvY2txdW90ZT4KKyAqIDwvcD4KKyAqIDxwPgorICogcHJpbnRzIHRoZSBmb2xsb3dpbmcgb3V0cHV0OgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqICAgICB0aGlzCisgKiAgICAgaXMKKyAqICAgICBhCisgKiAgICAgdGVzdAorICogICAgIHdpdGgKKyAqICAgICBzdXBwbGVtZW50YXJ5CisgKiAgICAgY2hhcmFjdGVycworICogICAgICYjOTI7dWQ4MDAKKyAqICAgICAmIzkyO3VkYzAwCisgKiA8L3ByZT48L2Jsb2NrcXVvdGU+CisgKiA8L3A+CisgKiBAYXV0aG9yIHN5biB3ZWUKKyAqIEBzdGFibGUgSUNVIDIuNAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgU3RyaW5nVG9rZW5pemVyIGltcGxlbWVudHMgRW51bWVyYXRpb24gCit7CisgICAgLy8gcHVibGljIGNvbnN0cnVjdG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgCisgICAgLyoqCisgICAgICogPHA+Q29uc3RydWN0cyBhIHN0cmluZyB0b2tlbml6ZXIgZm9yIHRoZSBzcGVjaWZpZWQgc3RyaW5nLiBBbGwgCisgICAgICogY2hhcmFjdGVycyBpbiB0aGUgZGVsaW0gYXJndW1lbnQgYXJlIHRoZSBkZWxpbWl0ZXJzIGZvciBzZXBhcmF0aW5nIAorICAgICAqIHRva2Vucy48L3A+IAorICAgICAqIDxwPklmIHRoZSByZXR1cm5EZWxpbXMgZmxhZyBpcyBmYWxzZSwgdGhlIGRlbGltaXRlciBjaGFyYWN0ZXJzIGFyZSAKKyAgICAgKiBza2lwcGVkIGFuZCBvbmx5IHNlcnZlIGFzIHNlcGFyYXRvcnMgYmV0d2VlbiB0b2tlbnMuPC9wPgorICAgICAqIDxwPklmIHRoZSByZXR1cm5EZWxpbXMgZmxhZyBpcyB0cnVlLCB0aGVuIHRoZSBkZWxpbWl0ZXIgY2hhcmFjdGVycyAKKyAgICAgKiBhcmUgYWxzbyByZXR1cm5lZCBhcyB0b2tlbnMsIG9uZSBwZXIgZGVsaW1pdGVyLgorICAgICAqIEBwYXJhbSBzdHIgYSBzdHJpbmcgdG8gYmUgcGFyc2VkLgorICAgICAqIEBwYXJhbSBkZWxpbSB0aGUgZGVsaW1pdGVycy4KKyAgICAgKiBAcGFyYW0gcmV0dXJuZGVsaW1zIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRvIHJldHVybiB0aGUgZGVsaW1pdGVycyAKKyAgICAgKiAgICAgICAgYXMgdG9rZW5zLgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGEgTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgc3RyIGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nVG9rZW5pemVyKFN0cmluZyBzdHIsIFVuaWNvZGVTZXQgZGVsaW0sIGJvb2xlYW4gcmV0dXJuZGVsaW1zKQorICAgIHsKKyAgICAgICAgdGhpcyhzdHIsIGRlbGltLCByZXR1cm5kZWxpbXMsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Db25zdHJ1Y3RzIGEgc3RyaW5nIHRva2VuaXplciBmb3IgdGhlIHNwZWNpZmllZCBzdHJpbmcuIEFsbCAKKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSBkZWxpbSBhcmd1bWVudCBhcmUgdGhlIGRlbGltaXRlcnMgZm9yIHNlcGFyYXRpbmcgCisgICAgICogdG9rZW5zLjwvcD4gCisgICAgICogPHA+SWYgdGhlIHJldHVybkRlbGltcyBmbGFnIGlzIGZhbHNlLCB0aGUgZGVsaW1pdGVyIGNoYXJhY3RlcnMgYXJlIAorICAgICAqIHNraXBwZWQgYW5kIG9ubHkgc2VydmUgYXMgc2VwYXJhdG9ycyBiZXR3ZWVuIHRva2Vucy48L3A+CisgICAgICogPHA+SWYgdGhlIHJldHVybkRlbGltcyBmbGFnIGlzIHRydWUsIHRoZW4gdGhlIGRlbGltaXRlciBjaGFyYWN0ZXJzIAorICAgICAqIGFyZSBhbHNvIHJldHVybmVkIGFzIHRva2Vucy4gIElmIGNvYWxlc2NlZGVsaW1zIGlzIHRydWUsIG9uZSB0b2tlbgorICAgICAqIGlzIHJldHVybmVkIGZvciBlYWNoIHJ1biBvZiBkZWxpbWl0ZXIgY2hhcmFjdGVycywgb3RoZXJ3aXNlIG9uZQorICAgICAqIHRva2VuIGlzIHJldHVybmVkIHBlciBkZWxpbWl0ZXIuICBTaW5jZSBzdXJyb2dhdGUgcGFpcnMgY2FuIGJlCisgICAgICogZGVsaW1pdGVycywgdGhlIHJldHVybmVkIHRva2VuIG1pZ2h0IGJlIHR3byBjaGFycyBpbiBsZW5ndGguPC9wPgorICAgICAqIEBwYXJhbSBzdHIgYSBzdHJpbmcgdG8gYmUgcGFyc2VkLgorICAgICAqIEBwYXJhbSBkZWxpbSB0aGUgZGVsaW1pdGVycy4KKyAgICAgKiBAcGFyYW0gcmV0dXJuZGVsaW1zIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRvIHJldHVybiB0aGUgZGVsaW1pdGVycyAKKyAgICAgKiAgICAgICAgYXMgdG9rZW5zLgorICAgICAqIEBwYXJhbSBjb2FsZXNjZWRlbGltcyBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0byByZXR1cm4gYSBydW4gb2YgCisgICAgICogICAgICAgIGRlbGltaXRlcnMgYXMgYSBzaW5nbGUgdG9rZW4gb3IgYXMgb25lIHRva2VuIHBlciBkZWxpbWl0ZXIuICAKKyAgICAgKiAgICAgICAgVGhpcyBvbmx5IHRha2VzIGVmZmVjdCBpZiByZXR1cm5kZWxpbXMgaXMgdHJ1ZS4KKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIHN0ciBpcyBudWxsCisgICAgICogQGludGVybmFsIElDVSAzLjQuMworICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdUb2tlbml6ZXIoU3RyaW5nIHN0ciwgVW5pY29kZVNldCBkZWxpbSwgYm9vbGVhbiByZXR1cm5kZWxpbXMsIGJvb2xlYW4gY29hbGVzY2VkZWxpbXMpCisgICAgeworICAgICAgICBtX3NvdXJjZV8gPSBzdHI7CisgICAgICAgIG1fbGVuZ3RoXyA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgaWYgKGRlbGltID09IG51bGwpIHsKKyAgICAgICAgICAgIG1fZGVsaW1pdGVyc18gPSBFTVBUWV9ERUxJTUlURVJfOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9kZWxpbWl0ZXJzXyA9IGRlbGltOyAgIAorICAgICAgICB9CisgICAgICAgIG1fcmV0dXJuRGVsaW1pdGVyc18gPSByZXR1cm5kZWxpbXM7CisgICAgICAgIG1fY29hbGVzY2VEZWxpbWl0ZXJzXyA9IGNvYWxlc2NlZGVsaW1zOworICAgICAgICBtX3Rva2VuT2Zmc2V0XyA9IC0xOworICAgICAgICBtX3Rva2VuU2l6ZV8gPSAtMTsKKyAgICAgICAgaWYgKG1fbGVuZ3RoXyA9PSAwKSB7CisgICAgICAgICAgICAvLyBzdHJpbmcgbGVuZ3RoIDAsIG5vIHRva2VucworICAgICAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IC0xOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IDA7CisgICAgICAgICAgICBpZiAoIXJldHVybmRlbGltcykgeworICAgICAgICAgICAgICAgIG1fbmV4dE9mZnNldF8gPSBnZXROZXh0Tm9uRGVsaW1pdGVyKDApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIDxwPkNvbnN0cnVjdHMgYSBzdHJpbmcgdG9rZW5pemVyIGZvciB0aGUgc3BlY2lmaWVkIHN0cmluZy4gVGhlIAorICAgICAqIGNoYXJhY3RlcnMgaW4gdGhlIGRlbGltIGFyZ3VtZW50IGFyZSB0aGUgZGVsaW1pdGVycyBmb3Igc2VwYXJhdGluZyAKKyAgICAgKiB0b2tlbnMuPC9wPiAKKyAgICAgKiA8cD5EZWxpbWl0ZXIgY2hhcmFjdGVycyB0aGVtc2VsdmVzIHdpbGwgbm90IGJlIHRyZWF0ZWQgYXMgdG9rZW5zLjwvcD4KKyAgICAgKiBAcGFyYW0gc3RyIGEgc3RyaW5nIHRvIGJlIHBhcnNlZC4KKyAgICAgKiBAcGFyYW0gZGVsaW0gdGhlIGRlbGltaXRlcnMuCisgICAgICogQGV4Y2VwdGlvbiB0aHJvd3MgYSBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBzdHIgaXMgbnVsbAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdUb2tlbml6ZXIoU3RyaW5nIHN0ciwgVW5pY29kZVNldCBkZWxpbSkKKyAgICB7CisgICAgICAgIHRoaXMoc3RyLCBkZWxpbSwgZmFsc2UsIGZhbHNlKTsKKyAgICB9CisgICAgICAgCisgICAgLyoqCisgICAgICogPHA+Q29uc3RydWN0cyBhIHN0cmluZyB0b2tlbml6ZXIgZm9yIHRoZSBzcGVjaWZpZWQgc3RyaW5nLiBBbGwgCisgICAgICogY2hhcmFjdGVycyBpbiB0aGUgZGVsaW0gYXJndW1lbnQgYXJlIHRoZSBkZWxpbWl0ZXJzIGZvciBzZXBhcmF0aW5nIAorICAgICAqIHRva2Vucy48L3A+IAorICAgICAqIDxwPklmIHRoZSByZXR1cm5EZWxpbXMgZmxhZyBpcyBmYWxzZSwgdGhlIGRlbGltaXRlciBjaGFyYWN0ZXJzIGFyZSAKKyAgICAgKiBza2lwcGVkIGFuZCBvbmx5IHNlcnZlIGFzIHNlcGFyYXRvcnMgYmV0d2VlbiB0b2tlbnMuPC9wPgorICAgICAqIDxwPklmIHRoZSByZXR1cm5EZWxpbXMgZmxhZyBpcyB0cnVlLCB0aGVuIHRoZSBkZWxpbWl0ZXIgY2hhcmFjdGVycyAKKyAgICAgKiBhcmUgYWxzbyByZXR1cm5lZCBhcyB0b2tlbnMsIG9uZSBwZXIgZGVsaW1pdGVyLgorICAgICAqIEBwYXJhbSBzdHIgYSBzdHJpbmcgdG8gYmUgcGFyc2VkLgorICAgICAqIEBwYXJhbSBkZWxpbSB0aGUgZGVsaW1pdGVycy4KKyAgICAgKiBAcGFyYW0gcmV0dXJuZGVsaW1zIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRvIHJldHVybiB0aGUgZGVsaW1pdGVycyAKKyAgICAgKiAgICAgICAgYXMgdG9rZW5zLgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGEgTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgc3RyIGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nVG9rZW5pemVyKFN0cmluZyBzdHIsIFN0cmluZyBkZWxpbSwgYm9vbGVhbiByZXR1cm5kZWxpbXMpCisgICAgeworICAgICAgICB0aGlzKHN0ciwgZGVsaW0sIHJldHVybmRlbGltcywgZmFsc2UpOyAvLyBqYXZhIGRlZmF1bHQgYmVoYXZpb3IKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Db25zdHJ1Y3RzIGEgc3RyaW5nIHRva2VuaXplciBmb3IgdGhlIHNwZWNpZmllZCBzdHJpbmcuIEFsbCAKKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSBkZWxpbSBhcmd1bWVudCBhcmUgdGhlIGRlbGltaXRlcnMgZm9yIHNlcGFyYXRpbmcgCisgICAgICogdG9rZW5zLjwvcD4gCisgICAgICogPHA+SWYgdGhlIHJldHVybkRlbGltcyBmbGFnIGlzIGZhbHNlLCB0aGUgZGVsaW1pdGVyIGNoYXJhY3RlcnMgYXJlIAorICAgICAqIHNraXBwZWQgYW5kIG9ubHkgc2VydmUgYXMgc2VwYXJhdG9ycyBiZXR3ZWVuIHRva2Vucy48L3A+CisgICAgICogPHA+SWYgdGhlIHJldHVybkRlbGltcyBmbGFnIGlzIHRydWUsIHRoZW4gdGhlIGRlbGltaXRlciBjaGFyYWN0ZXJzIAorICAgICAqIGFyZSBhbHNvIHJldHVybmVkIGFzIHRva2Vucy4gIElmIGNvYWxlc2NlZGVsaW1zIGlzIHRydWUsIG9uZSB0b2tlbgorICAgICAqIGlzIHJldHVybmVkIGZvciBlYWNoIHJ1biBvZiBkZWxpbWl0ZXIgY2hhcmFjdGVycywgb3RoZXJ3aXNlIG9uZQorICAgICAqIHRva2VuIGlzIHJldHVybmVkIHBlciBkZWxpbWl0ZXIuICBTaW5jZSBzdXJyb2dhdGUgcGFpcnMgY2FuIGJlCisgICAgICogZGVsaW1pdGVycywgdGhlIHJldHVybmVkIHRva2VuIG1pZ2h0IGJlIHR3byBjaGFycyBpbiBsZW5ndGguPC9wPgorICAgICAqIEBwYXJhbSBzdHIgYSBzdHJpbmcgdG8gYmUgcGFyc2VkLgorICAgICAqIEBwYXJhbSBkZWxpbSB0aGUgZGVsaW1pdGVycy4KKyAgICAgKiBAcGFyYW0gcmV0dXJuZGVsaW1zIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRvIHJldHVybiB0aGUgZGVsaW1pdGVycyAKKyAgICAgKiAgICAgICAgYXMgdG9rZW5zLgorICAgICAqIEBwYXJhbSBjb2FsZXNjZWRlbGltcyBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0byByZXR1cm4gYSBydW4gb2YgCisgICAgICogICAgICAgIGRlbGltaXRlcnMgYXMgYSBzaW5nbGUgdG9rZW4gb3IgYXMgb25lIHRva2VuIHBlciBkZWxpbWl0ZXIuICAKKyAgICAgKiAgICAgICAgVGhpcyBvbmx5IHRha2VzIGVmZmVjdCBpZiByZXR1cm5kZWxpbXMgaXMgdHJ1ZS4KKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhIE51bGxQb2ludGVyRXhjZXB0aW9uIGlmIHN0ciBpcyBudWxsCisgICAgICogQGludGVybmFsIElDVSAzLjQuMworICAgICAqIEBkZXByZWNhdGVkIFRoaXMgQVBJIGlzIElDVSBpbnRlcm5hbCBvbmx5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmdUb2tlbml6ZXIoU3RyaW5nIHN0ciwgU3RyaW5nIGRlbGltLCBib29sZWFuIHJldHVybmRlbGltcywgYm9vbGVhbiBjb2FsZXNjZWRlbGltcykKKyAgICB7CisgICAgICAgIC8vIGRvbid0IGlnbm9yZSB3aGl0ZXNwYWNlCisgICAgICAgIG1fZGVsaW1pdGVyc18gPSBFTVBUWV9ERUxJTUlURVJfOworICAgICAgICBpZiAoZGVsaW0gIT0gbnVsbCAmJiBkZWxpbS5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIG1fZGVsaW1pdGVyc18gPSBuZXcgVW5pY29kZVNldCgpOworICAgICAgICAgICAgbV9kZWxpbWl0ZXJzXy5hZGRBbGwoZGVsaW0pOworICAgICAgICB9CisgICAgICAgIG1fY29hbGVzY2VEZWxpbWl0ZXJzXyA9IGNvYWxlc2NlZGVsaW1zOworICAgICAgICBtX3NvdXJjZV8gPSBzdHI7CisgICAgICAgIG1fbGVuZ3RoXyA9IHN0ci5sZW5ndGgoKTsKKyAgICAgICAgbV9yZXR1cm5EZWxpbWl0ZXJzXyA9IHJldHVybmRlbGltczsKKyAgICAgICAgbV90b2tlbk9mZnNldF8gPSAtMTsKKyAgICAgICAgbV90b2tlblNpemVfID0gLTE7CisgICAgICAgIGlmIChtX2xlbmd0aF8gPT0gMCkgeworICAgICAgICAgICAgLy8gc3RyaW5nIGxlbmd0aCAwLCBubyB0b2tlbnMKKyAgICAgICAgICAgIG1fbmV4dE9mZnNldF8gPSAtMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1fbmV4dE9mZnNldF8gPSAwOworICAgICAgICAgICAgaWYgKCFyZXR1cm5kZWxpbXMpIHsKKyAgICAgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gZ2V0TmV4dE5vbkRlbGltaXRlcigwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5Db25zdHJ1Y3RzIGEgc3RyaW5nIHRva2VuaXplciBmb3IgdGhlIHNwZWNpZmllZCBzdHJpbmcuIFRoZSAKKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSBkZWxpbSBhcmd1bWVudCBhcmUgdGhlIGRlbGltaXRlcnMgZm9yIHNlcGFyYXRpbmcgCisgICAgICogdG9rZW5zLjwvcD4gCisgICAgICogPHA+RGVsaW1pdGVyIGNoYXJhY3RlcnMgdGhlbXNlbHZlcyB3aWxsIG5vdCBiZSB0cmVhdGVkIGFzIHRva2Vucy48L3A+CisgICAgICogQHBhcmFtIHN0ciBhIHN0cmluZyB0byBiZSBwYXJzZWQuCisgICAgICogQHBhcmFtIGRlbGltIHRoZSBkZWxpbWl0ZXJzLgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGEgTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgc3RyIGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nVG9rZW5pemVyKFN0cmluZyBzdHIsIFN0cmluZyBkZWxpbSkKKyAgICB7CisgICAgICAgIC8vIGRvbid0IGlnbm9yZSB3aGl0ZXNwYWNlCisgICAgICAgIHRoaXMoc3RyLCBkZWxpbSwgZmFsc2UsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Db25zdHJ1Y3RzIGEgc3RyaW5nIHRva2VuaXplciBmb3IgdGhlIHNwZWNpZmllZCBzdHJpbmcuIAorICAgICAqIFRoZSB0b2tlbml6ZXIgdXNlcyB0aGUgZGVmYXVsdCBkZWxpbWl0ZXIgc2V0LCB3aGljaCBpcyAKKyAgICAgKiAiICYjOTI7dCYjOTI7biYjOTI7ciYjOTI7ZiI6IAorICAgICAqIHRoZSBzcGFjZSBjaGFyYWN0ZXIsIHRoZSB0YWIgY2hhcmFjdGVyLCB0aGUgbmV3bGluZSBjaGFyYWN0ZXIsIHRoZSAKKyAgICAgKiBjYXJyaWFnZS1yZXR1cm4gY2hhcmFjdGVyLCBhbmQgdGhlIGZvcm0tZmVlZCBjaGFyYWN0ZXIuPC9wPiAKKyAgICAgKiA8cD5EZWxpbWl0ZXIgY2hhcmFjdGVycyB0aGVtc2VsdmVzIHdpbGwgbm90IGJlIHRyZWF0ZWQgYXMgdG9rZW5zLjwvcD4KKyAgICAgKiBAcGFyYW0gc3RyIGEgc3RyaW5nIHRvIGJlIHBhcnNlZAorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGEgTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgc3RyIGlzIG51bGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nVG9rZW5pemVyKFN0cmluZyBzdHIpIAorICAgIHsKKyAgICAgICAgdGhpcyhzdHIsIERFRkFVTFRfREVMSU1JVEVSU18sIGZhbHNlLCBmYWxzZSk7CisgICAgfQorICAgIAorICAgIC8vIHB1YmxpYyBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgICogVGVzdHMgaWYgdGhlcmUgYXJlIG1vcmUgdG9rZW5zIGF2YWlsYWJsZSBmcm9tIHRoaXMgdG9rZW5pemVyJ3MgCisgICAgICogc3RyaW5nLiAKKyAgICAgKiBJZiB0aGlzIG1ldGhvZCByZXR1cm5zIDx0dD50cnVlPC90dD4sIHRoZW4gYSBzdWJzZXF1ZW50IGNhbGwgdG8gCisgICAgICogPHR0Pm5leHRUb2tlbjwvdHQ+IHdpdGggbm8gYXJndW1lbnQgd2lsbCBzdWNjZXNzZnVsbHkgcmV0dXJuIGEgdG9rZW4uCisgICAgICogQHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiBhbmQgb25seSBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgdG9rZW4gCisgICAgICogICAgICAgICBpbiB0aGUgc3RyaW5nIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uOyA8Y29kZT5mYWxzZTwvY29kZT4gCisgICAgICogICAgICAgICBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzTW9yZVRva2VucygpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fbmV4dE9mZnNldF8gPj0gMDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbmV4dCB0b2tlbiBmcm9tIHRoaXMgc3RyaW5nIHRva2VuaXplci4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IHRva2VuIGZyb20gdGhpcyBzdHJpbmcgdG9rZW5pemVyLgorICAgICAqIEBleGNlcHRpb24gTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiBpZiB0aGVyZSBhcmUgbm8gbW9yZSB0b2tlbnMgaW4gCisgICAgICogICAgICAgICAgICB0aGlzIHRva2VuaXplcidzIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIG5leHRUb2tlbigpIAorICAgIHsKKyAgICAgICAgaWYgKG1fdG9rZW5PZmZzZXRfIDwgMCkgeworICAgICAgICAgICAgaWYgKG1fbmV4dE9mZnNldF8gPCAwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24oIk5vIG1vcmUgdG9rZW5zIGluIFN0cmluZyIpOyAgIAorICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gcHJlLWNhbGN1bGF0aW9ucyBvZiB0b2tlbnMgbm90IGRvbmUKKyAgICAgICAgICAgIGlmIChtX3JldHVybkRlbGltaXRlcnNfKSB7CisgICAgICAgICAgICAgICAgaW50IHRva2VubGltaXQgPSAwOworICAgICAgICAgICAgICAgIGludCBjID0gVVRGMTYuY2hhckF0KG1fc291cmNlXywgbV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgaWYgKG1fZGVsaW1pdGVyc18uY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmIChtX2NvYWxlc2NlRGVsaW1pdGVyc18pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRva2VubGltaXQgPSBnZXROZXh0Tm9uRGVsaW1pdGVyKG1fbmV4dE9mZnNldF8pOworICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRva2VubGltaXQgPSBtX25leHRPZmZzZXRfICsgVVRGMTYuZ2V0Q2hhckNvdW50KGMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRva2VubGltaXQgPT0gbV9sZW5ndGhfKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5saW1pdCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5saW1pdCA9IGdldE5leHREZWxpbWl0ZXIobV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKHRva2VubGltaXQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fc291cmNlXy5zdWJzdHJpbmcobV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBtX3NvdXJjZV8uc3Vic3RyaW5nKG1fbmV4dE9mZnNldF8sIHRva2VubGltaXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gdG9rZW5saW1pdDsKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaW50IHRva2VubGltaXQgPSBnZXROZXh0RGVsaW1pdGVyKG1fbmV4dE9mZnNldF8pOworICAgICAgICAgICAgICAgIFN0cmluZyByZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKHRva2VubGltaXQgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG1fc291cmNlXy5zdWJzdHJpbmcobV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgICAgIG1fbmV4dE9mZnNldF8gPSB0b2tlbmxpbWl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbV9zb3VyY2VfLnN1YnN0cmluZyhtX25leHRPZmZzZXRfLCB0b2tlbmxpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IGdldE5leHROb25EZWxpbWl0ZXIodG9rZW5saW1pdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gY291bnQgd2FzIGNhbGxlZCBiZWZvcmUgYW5kIHdlIGhhdmUgYWxsIHRoZSB0b2tlbnMKKyAgICAgICAgaWYgKG1fdG9rZW5PZmZzZXRfID49IG1fdG9rZW5TaXplXykgeworICAgICAgICAgICAgdGhyb3cgbmV3IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24oIk5vIG1vcmUgdG9rZW5zIGluIFN0cmluZyIpOworICAgICAgICB9CisgICAgICAgIFN0cmluZyByZXN1bHQ7CisgICAgICAgIGlmIChtX3Rva2VuTGltaXRfW21fdG9rZW5PZmZzZXRfXSA+PSAwKSB7CisgICAgICAgICAgICByZXN1bHQgPSBtX3NvdXJjZV8uc3Vic3RyaW5nKG1fdG9rZW5TdGFydF9bbV90b2tlbk9mZnNldF9dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Rva2VuTGltaXRfW21fdG9rZW5PZmZzZXRfXSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBtX3NvdXJjZV8uc3Vic3RyaW5nKG1fdG9rZW5TdGFydF9bbV90b2tlbk9mZnNldF9dKTsKKyAgICAgICAgfQorICAgICAgICBtX3Rva2VuT2Zmc2V0XyArKzsKKyAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IC0xOworICAgICAgICBpZiAobV90b2tlbk9mZnNldF8gPCBtX3Rva2VuU2l6ZV8pIHsKKyAgICAgICAgICAgIG1fbmV4dE9mZnNldF8gPSBtX3Rva2VuU3RhcnRfW21fdG9rZW5PZmZzZXRfXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IHRva2VuIGluIHRoaXMgc3RyaW5nIHRva2VuaXplcidzIHN0cmluZy4gRmlyc3QsIAorICAgICAqIHRoZSBzZXQgb2YgY2hhcmFjdGVycyBjb25zaWRlcmVkIHRvIGJlIGRlbGltaXRlcnMgYnkgdGhpcyAKKyAgICAgKiA8dHQ+U3RyaW5nVG9rZW5pemVyPC90dD4gb2JqZWN0IGlzIGNoYW5nZWQgdG8gYmUgdGhlIGNoYXJhY3RlcnMgaW4gCisgICAgICogdGhlIHN0cmluZyA8dHQ+ZGVsaW08L3R0Pi4gVGhlbiB0aGUgbmV4dCB0b2tlbiBpbiB0aGUgc3RyaW5nCisgICAgICogYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgcmV0dXJuZWQuIFRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIAorICAgICAqIGFkdmFuY2VkIGJleW9uZCB0aGUgcmVjb2duaXplZCB0b2tlbi4gIFRoZSBuZXcgZGVsaW1pdGVyIHNldCAKKyAgICAgKiByZW1haW5zIHRoZSBkZWZhdWx0IGFmdGVyIHRoaXMgY2FsbC4gCisgICAgICogQHBhcmFtIGRlbGltIHRoZSBuZXcgZGVsaW1pdGVycy4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IHRva2VuLCBhZnRlciBzd2l0Y2hpbmcgdG8gdGhlIG5ldyBkZWxpbWl0ZXIgc2V0LgorICAgICAqIEBleGNlcHRpb24gTm9TdWNoRWxlbWVudEV4Y2VwdGlvbiBpZiB0aGVyZSBhcmUgbm8gbW9yZSB0b2tlbnMgaW4gCisgICAgICogICAgICAgICAgICB0aGlzIHRva2VuaXplcidzIHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIG5leHRUb2tlbihTdHJpbmcgZGVsaW0pIAorICAgIHsKKyAgICAgICAgbV9kZWxpbWl0ZXJzXyA9IEVNUFRZX0RFTElNSVRFUl87CisgICAgICAgIGlmIChkZWxpbSAhPSBudWxsICYmIGRlbGltLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgbV9kZWxpbWl0ZXJzXyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgICAgICAgICBtX2RlbGltaXRlcnNfLmFkZEFsbChkZWxpbSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5leHRUb2tlbihtX2RlbGltaXRlcnNfKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbmV4dCB0b2tlbiBpbiB0aGlzIHN0cmluZyB0b2tlbml6ZXIncyBzdHJpbmcuIEZpcnN0LCAKKyAgICAgKiB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgY29uc2lkZXJlZCB0byBiZSBkZWxpbWl0ZXJzIGJ5IHRoaXMgCisgICAgICogPHR0PlN0cmluZ1Rva2VuaXplcjwvdHQ+IG9iamVjdCBpcyBjaGFuZ2VkIHRvIGJlIHRoZSBjaGFyYWN0ZXJzIGluIAorICAgICAqIHRoZSBzdHJpbmcgPHR0PmRlbGltPC90dD4uIFRoZW4gdGhlIG5leHQgdG9rZW4gaW4gdGhlIHN0cmluZworICAgICAqIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIHJldHVybmVkLiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyAKKyAgICAgKiBhZHZhbmNlZCBiZXlvbmQgdGhlIHJlY29nbml6ZWQgdG9rZW4uICBUaGUgbmV3IGRlbGltaXRlciBzZXQgCisgICAgICogcmVtYWlucyB0aGUgZGVmYXVsdCBhZnRlciB0aGlzIGNhbGwuIAorICAgICAqIEBwYXJhbSBkZWxpbSB0aGUgbmV3IGRlbGltaXRlcnMuCisgICAgICogQHJldHVybiB0aGUgbmV4dCB0b2tlbiwgYWZ0ZXIgc3dpdGNoaW5nIHRvIHRoZSBuZXcgZGVsaW1pdGVyIHNldC4KKyAgICAgKiBAZXhjZXB0aW9uIE5vU3VjaEVsZW1lbnRFeGNlcHRpb24gaWYgdGhlcmUgYXJlIG5vIG1vcmUgdG9rZW5zIGluIAorICAgICAqICAgICAgICAgICAgdGhpcyB0b2tlbml6ZXIncyBzdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBuZXh0VG9rZW4oVW5pY29kZVNldCBkZWxpbSkgCisgICAgeworICAgICAgICBtX2RlbGltaXRlcnNfID0gZGVsaW07CisgICAgICAgIG1fdG9rZW5PZmZzZXRfID0gLTE7CisgICAgICAgIG1fdG9rZW5TaXplXyA9IC0xOworICAgICAgICBpZiAoIW1fcmV0dXJuRGVsaW1pdGVyc18pIHsKKyAgICAgICAgICAgIG1fbmV4dE9mZnNldF8gPSBnZXROZXh0Tm9uRGVsaW1pdGVyKG1fbmV4dE9mZnNldF8pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXh0VG9rZW4oKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgPGNvZGU+aGFzTW9yZVRva2VuczwvY29kZT4gbWV0aG9kLiAKKyAgICAgKiBJdCBleGlzdHMgc28gdGhhdCB0aGlzIGNsYXNzIGNhbiBpbXBsZW1lbnQgdGhlIAorICAgICAqIDxjb2RlPkVudW1lcmF0aW9uPC9jb2RlPiBpbnRlcmZhY2UuIAorICAgICAqIEByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgYXJlIG1vcmUgdG9rZW5zOworICAgICAqICAgICAgICAgPGNvZGU+ZmFsc2U8L2NvZGU+IG90aGVyd2lzZS4KKyAgICAgKiBAc2VlICNoYXNNb3JlVG9rZW5zKCkKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBoYXNNb3JlRWxlbWVudHMoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBoYXNNb3JlVG9rZW5zKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIDxjb2RlPm5leHRUb2tlbjwvY29kZT4gbWV0aG9kLCBleGNlcHQgCisgICAgICogdGhhdCBpdHMgZGVjbGFyZWQgcmV0dXJuIHZhbHVlIGlzIDxjb2RlPk9iamVjdDwvY29kZT4gcmF0aGVyIHRoYW4gCisgICAgICogPGNvZGU+U3RyaW5nPC9jb2RlPi4gSXQgZXhpc3RzIHNvIHRoYXQgdGhpcyBjbGFzcyBjYW4gaW1wbGVtZW50IHRoZSAKKyAgICAgKiA8Y29kZT5FbnVtZXJhdGlvbjwvY29kZT4gaW50ZXJmYWNlLiAKKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IHRva2VuIGluIHRoZSBzdHJpbmcuCisgICAgICogQGV4Y2VwdGlvbiBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uIGlmIHRoZXJlIGFyZSBubyBtb3JlIHRva2VucyBpbiAKKyAgICAgKiAgICAgICAgICAgIHRoaXMgdG9rZW5pemVyJ3Mgc3RyaW5nLgorICAgICAqIEBzZWUgI25leHRUb2tlbigpCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgcHVibGljIE9iamVjdCBuZXh0RWxlbWVudCgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIG5leHRUb2tlbigpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGVzIHRoZSBudW1iZXIgb2YgdGltZXMgdGhhdCB0aGlzIHRva2VuaXplcidzIAorICAgICAqIDxjb2RlPm5leHRUb2tlbjwvY29kZT4gbWV0aG9kIGNhbiBiZSBjYWxsZWQgYmVmb3JlIGl0IGdlbmVyYXRlcyBhbiAKKyAgICAgKiBleGNlcHRpb24uIFRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIG5vdCBhZHZhbmNlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgdG9rZW5zIHJlbWFpbmluZyBpbiB0aGUgc3RyaW5nIHVzaW5nIHRoZSAKKyAgICAgKiAgICAgICAgIGN1cnJlbnQgZGVsaW1pdGVyIHNldC4KKyAgICAgKiBAc2VlICNuZXh0VG9rZW4oKQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHB1YmxpYyBpbnQgY291bnRUb2tlbnMoKSAKKyAgICB7CisgICAgICAgIGludCByZXN1bHQgPSAwOworICAgICAgICBpZiAoaGFzTW9yZVRva2VucygpKSB7CisgICAgICAgICAgICBpZiAobV90b2tlbk9mZnNldF8gPj0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBtX3Rva2VuU2l6ZV8gLSBtX3Rva2VuT2Zmc2V0XzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtX3Rva2VuU3RhcnRfID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBtX3Rva2VuU3RhcnRfID0gbmV3IGludFtUT0tFTl9TSVpFX107CisgICAgICAgICAgICAgICAgbV90b2tlbkxpbWl0XyA9IG5ldyBpbnRbVE9LRU5fU0laRV9dOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGlmIChtX3Rva2VuU3RhcnRfLmxlbmd0aCA9PSByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgaW50IHRlbXB0b2tlbmluZGV4W10gPSBtX3Rva2VuU3RhcnRfOworICAgICAgICAgICAgICAgICAgICBpbnQgdGVtcHRva2Vuc2l6ZVtdID0gbV90b2tlbkxpbWl0XzsKKyAgICAgICAgICAgICAgICAgICAgaW50IG9yaWdpbmFsc2l6ZSA9IHRlbXB0b2tlbmluZGV4Lmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgaW50IG5ld3NpemUgPSBvcmlnaW5hbHNpemUgKyBUT0tFTl9TSVpFXzsKKyAgICAgICAgICAgICAgICAgICAgbV90b2tlblN0YXJ0XyA9IG5ldyBpbnRbbmV3c2l6ZV07CisgICAgICAgICAgICAgICAgICAgIG1fdG9rZW5MaW1pdF8gPSBuZXcgaW50W25ld3NpemVdOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRlbXB0b2tlbmluZGV4LCAwLCBtX3Rva2VuU3RhcnRfLCAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbHNpemUpOworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHRlbXB0b2tlbnNpemUsIDAsIG1fdG9rZW5MaW1pdF8sIDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsc2l6ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fdG9rZW5TdGFydF9bcmVzdWx0XSA9IG1fbmV4dE9mZnNldF87CisgICAgICAgICAgICAgICAgaWYgKG1fcmV0dXJuRGVsaW1pdGVyc18pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fZGVsaW1pdGVyc18uY29udGFpbnMoVVRGMTYuY2hhckF0KG1fc291cmNlXywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX25leHRPZmZzZXRfKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fdG9rZW5MaW1pdF9bcmVzdWx0XSA9IGdldE5leHROb25EZWxpbWl0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9uZXh0T2Zmc2V0Xyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3Rva2VuTGltaXRfW3Jlc3VsdF0gPSBnZXROZXh0RGVsaW1pdGVyKG1fbmV4dE9mZnNldF8pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG1fbmV4dE9mZnNldF8gPSBtX3Rva2VuTGltaXRfW3Jlc3VsdF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBtX3Rva2VuTGltaXRfW3Jlc3VsdF0gPSBnZXROZXh0RGVsaW1pdGVyKG1fbmV4dE9mZnNldF8pOworICAgICAgICAgICAgICAgICAgICBtX25leHRPZmZzZXRfID0gZ2V0TmV4dE5vbkRlbGltaXRlcihtX3Rva2VuTGltaXRfW3Jlc3VsdF0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9IHdoaWxlIChtX25leHRPZmZzZXRfID49IDApOworICAgICAgICAgICAgbV90b2tlbk9mZnNldF8gPSAwOworICAgICAgICAgICAgbV90b2tlblNpemVfID0gcmVzdWx0OworICAgICAgICAgICAgbV9uZXh0T2Zmc2V0XyA9IG1fdG9rZW5TdGFydF9bMF07CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgLy8gcHJpdmF0ZSBkYXRhIG1lbWJlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEN1cnJlbnQgb2Zmc2V0IHRvIHRoZSB0b2tlbiBhcnJheS4gSWYgdGhlIGFycmF5IHRva2VuIGlzIG5vdCBzZXQgdXAgeWV0LAorICAgICAqIHRoaXMgdmFsdWUgaXMgYSAtMQorICAgICAqLworICAgIHByaXZhdGUgaW50IG1fdG9rZW5PZmZzZXRfOworICAgIC8qKgorICAgICAqIFNpemUgb2YgdGhlIHRva2VuIGFycmF5LiBJZiB0aGUgYXJyYXkgdG9rZW4gaXMgbm90IHNldCB1cCB5ZXQsCisgICAgICogdGhpcyB2YWx1ZSBpcyBhIC0xCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV90b2tlblNpemVfOworICAgIC8qKgorICAgICAqIEFycmF5IG9mIHByZS1jYWxjdWxhdGVkIHRva2VucyBzdGFydCBpbmRleGVzIGluIHNvdXJjZSBzdHJpbmcgdGVybWluYXRlZCAKKyAgICAgKiBieSAtMS4KKyAgICAgKiBUaGlzIGlzIG9ubHkgc2V0IHVwIGR1cmluZyBjb3VudFRva2VucygpIGFuZCBvbmx5IHN0b3JlcyB0aGUgcmVtYWluaW5nCisgICAgICogdG9rZW5zLCBub3QgYWxsIHRva2VucyBpbmNsdWRpbmcgcGFyc2VkIG9uZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3Rva2VuU3RhcnRfW107CisgICAgLyoqCisgICAgICogQXJyYXkgb2YgcHJlLWNhbGN1bGF0ZWQgdG9rZW5zIGxpbWl0IGluZGV4ZXMgaW4gc291cmNlIHN0cmluZy4KKyAgICAgKiBUaGlzIGlzIG9ubHkgc2V0IHVwIGR1cmluZyBjb3VudFRva2VucygpIGFuZCBvbmx5IHN0b3JlcyB0aGUgcmVtYWluaW5nCisgICAgICogdG9rZW5zLCBub3QgYWxsIHRva2VucyBpbmNsdWRpbmcgcGFyc2VkIG9uZXMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3Rva2VuTGltaXRfW107CisgICAgLyoqCisgICAgICogVW5pY29kZVNldCBjb250YWluaW5nIGRlbGltaXRlcnMKKyAgICAgKi8KKyAgICBwcml2YXRlIFVuaWNvZGVTZXQgbV9kZWxpbWl0ZXJzXzsKKyAgICAvKioKKyAgICAgKiBTdHJpbmcgdG8gcGFyc2UgZm9yIHRva2VucworICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIG1fc291cmNlXzsKKyAgICAvKioKKyAgICAgKiBMZW5ndGggb2YgbV9zb3VyY2VfCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbV9sZW5ndGhfOworICAgIC8qKgorICAgICAqIEN1cnJlbnQgcG9zaXRpb24gaW4gc3RyaW5nIHRvIHBhcnNlIGZvciB0b2tlbnMKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX25leHRPZmZzZXRfOworICAgIC8qKgorICAgICAqIEZsYWcgaW5kaWNhdG9yIGlmIGRlbGltaXRlcnMgYXJlIHRvIGJlIHRyZWF0ZWQgYXMgdG9rZW5zIHRvbworICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX3JldHVybkRlbGltaXRlcnNfOworCisgICAgLyoqCisgICAgICogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gY29hbGVzY2UgcnVucyBvZiBkZWxpbWl0ZXJzIGludG8gc2luZ2xlIHRva2VucworICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBtX2NvYWxlc2NlRGVsaW1pdGVyc187CisKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IHNldCBvZiBkZWxpbWl0ZXJzICYjOTI7dCYjOTI7biYjOTI7ciYjOTI7ZgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgREVGQVVMVF9ERUxJTUlURVJTXyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IG5ldyBVbmljb2RlU2V0KCJbIFx0XG5cclxmXSIsIGZhbHNlKTsKKyAgICAvKioKKyAgICAgKiBBcnJheSBzaXplIGluY3JlbWVudHMKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVE9LRU5fU0laRV8gPSAxMDA7CisgICAgLyoqCisgICAgICogQSBlbXB0eSBkZWxpbWl0ZXIgVW5pY29kZVNldCwgdXNlZCB3aGVuIHVzZXIgc3BlY2lmaWVkIG51bGwgZGVsaW1pdGVycworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFVuaWNvZGVTZXQgRU1QVFlfREVMSU1JVEVSXyA9IG5ldyBVbmljb2RlU2V0KCk7CisgICAgCisgICAgLy8gcHJpdmF0ZSBtZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGluZGV4IG9mIHRoZSBuZXh0IGRlbGltaXRlciBhZnRlciBvZmZzZXQKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRvIHRoZSBzb3VyY2Ugc3RyaW5nCisgICAgICogQHJldHVybiBvZmZzZXQgb2YgdGhlIGltbWVkaWF0ZSBuZXh0IGRlbGltaXRlciwgb3RoZXJ3aXNlIAorICAgICAqICAgICAgICAgKC0gc291cmNlIHN0cmluZyBsZW5ndGggLSAxKSBpZiB0aGVyZQorICAgICAqICAgICAgICAgYXJlIG5vIG1vcmUgZGVsaW1pdGVycyBhZnRlciBtX25leHRPZmZzZXQKKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBnZXROZXh0RGVsaW1pdGVyKGludCBvZmZzZXQpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0ID49IDApIHsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSBvZmZzZXQ7IAorICAgICAgICAgICAgaW50IGMgPSAwOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGMgPSBVVEYxNi5jaGFyQXQobV9zb3VyY2VfLCByZXN1bHQpOworICAgICAgICAgICAgICAgIGlmIChtX2RlbGltaXRlcnNfLmNvbnRhaW5zKGMpKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXN1bHQgKys7CisgICAgICAgICAgICB9IHdoaWxlIChyZXN1bHQgPCBtX2xlbmd0aF8pOworICAgICAgICAgICAgaWYgKHJlc3VsdCA8IG1fbGVuZ3RoXykgeworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xIC0gbV9sZW5ndGhfOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBpbmRleCBvZiB0aGUgbmV4dCBub24tZGVsaW1pdGVyIGFmdGVyIG1fbmV4dE9mZnNldF8KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRvIHRoZSBzb3VyY2Ugc3RyaW5nCisgICAgICogQHJldHVybiBvZmZzZXQgb2YgdGhlIGltbWVkaWF0ZSBuZXh0IG5vbi1kZWxpbWl0ZXIsIG90aGVyd2lzZSAKKyAgICAgKiAgICAgICAgICgtIHNvdXJjZSBzdHJpbmcgbGVuZ3RoIC0gMSkgaWYgdGhlcmUKKyAgICAgKiAgICAgICAgIGFyZSBubyBtb3JlIGRlbGltaXRlcnMgYWZ0ZXIgbV9uZXh0T2Zmc2V0CisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0TmV4dE5vbkRlbGltaXRlcihpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gb2Zmc2V0OyAKKyAgICAgICAgICAgIGludCBjID0gMDsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBjID0gVVRGMTYuY2hhckF0KG1fc291cmNlXywgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICBpZiAoIW1fZGVsaW1pdGVyc18uY29udGFpbnMoYykpIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJlc3VsdCArKzsKKyAgICAgICAgICAgIH0gd2hpbGUgKHJlc3VsdCA8IG1fbGVuZ3RoXyk7CisgICAgICAgICAgICBpZiAocmVzdWx0IDwgbV9sZW5ndGhfKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTEgLSBtX2xlbmd0aF87CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVGltZVpvbmUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1RpbWVab25lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDg4ZGJjZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1RpbWVab25lLmphdmEKQEAgLTAsMCArMSw3OTQgQEAKKy8qCisgKiBAKCMpVGltZVpvbmUuamF2YSAgICAxLjUxIDAwLzAxLzE5CisgKgorICogQ29weXJpZ2h0IChDKSAxOTk2LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyAqIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEubGFuZy5yZWYuU29mdFJlZmVyZW5jZTsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuSUNVUmVzb3VyY2VCdW5kbGU7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5UaW1lWm9uZUFkYXB0ZXI7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5ab25lTWV0YTsKK2ltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CisKKy8qKgorICogPGNvZGU+VGltZVpvbmU8L2NvZGU+IHJlcHJlc2VudHMgYSB0aW1lIHpvbmUgb2Zmc2V0LCBhbmQgYWxzbyBmaWd1cmVzIG91dCBkYXlsaWdodAorICogc2F2aW5ncy4KKyAqCisgKiA8cD4KKyAqIFR5cGljYWxseSwgeW91IGdldCBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiB1c2luZyA8Y29kZT5nZXREZWZhdWx0PC9jb2RlPgorICogd2hpY2ggY3JlYXRlcyBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiBiYXNlZCBvbiB0aGUgdGltZSB6b25lIHdoZXJlIHRoZSBwcm9ncmFtCisgKiBpcyBydW5uaW5nLiBGb3IgZXhhbXBsZSwgZm9yIGEgcHJvZ3JhbSBydW5uaW5nIGluIEphcGFuLCA8Y29kZT5nZXREZWZhdWx0PC9jb2RlPgorICogY3JlYXRlcyBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiBvYmplY3QgYmFzZWQgb24gSmFwYW5lc2UgU3RhbmRhcmQgVGltZS4KKyAqCisgKiA8cD4KKyAqIFlvdSBjYW4gYWxzbyBnZXQgYSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gdXNpbmcgPGNvZGU+Z2V0VGltZVpvbmU8L2NvZGU+CisgKiBhbG9uZyB3aXRoIGEgdGltZSB6b25lIElELiBGb3IgaW5zdGFuY2UsIHRoZSB0aW1lIHpvbmUgSUQgZm9yIHRoZQorICogVS5TLiBQYWNpZmljIFRpbWUgem9uZSBpcyAiQW1lcmljYS9Mb3NfQW5nZWxlcyIuIFNvLCB5b3UgY2FuIGdldCBhCisgKiBVLlMuIFBhY2lmaWMgVGltZSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gb2JqZWN0IHdpdGg6CisgKiA8YmxvY2txdW90ZT4KKyAqIDxwcmU+CisgKiBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKCJBbWVyaWNhL0xvc19BbmdlbGVzIik7CisgKiA8L3ByZT4KKyAqIDwvYmxvY2txdW90ZT4KKyAqIFlvdSBjYW4gdXNlIDxjb2RlPmdldEF2YWlsYWJsZUlEczwvY29kZT4gbWV0aG9kIHRvIGl0ZXJhdGUgdGhyb3VnaAorICogYWxsIHRoZSBzdXBwb3J0ZWQgdGltZSB6b25lIElEcy4gWW91IGNhbiB0aGVuIGNob29zZSBhCisgKiBzdXBwb3J0ZWQgSUQgdG8gZ2V0IGEgPGNvZGU+VGltZVpvbmU8L2NvZGU+LgorICogSWYgdGhlIHRpbWUgem9uZSB5b3Ugd2FudCBpcyBub3QgcmVwcmVzZW50ZWQgYnkgb25lIG9mIHRoZQorICogc3VwcG9ydGVkIElEcywgdGhlbiB5b3UgY2FuIGNyZWF0ZSBhIGN1c3RvbSB0aW1lIHpvbmUgSUQgd2l0aAorICogdGhlIGZvbGxvd2luZyBzeW50YXg6CisgKgorICogPGJsb2NrcXVvdGU+CisgKiA8cHJlPgorICogR01UWyt8LV1oaFtbOl1tbV0KKyAqIDwvcHJlPgorICogPC9ibG9ja3F1b3RlPgorICoKKyAqIEZvciBleGFtcGxlLCB5b3UgbWlnaHQgc3BlY2lmeSBHTVQrMTQ6MDAgYXMgYSBjdXN0b20KKyAqIHRpbWUgem9uZSBJRC4gIFRoZSA8Y29kZT5UaW1lWm9uZTwvY29kZT4gdGhhdCBpcyByZXR1cm5lZAorICogd2hlbiB5b3Ugc3BlY2lmeSBhIGN1c3RvbSB0aW1lIHpvbmUgSUQgZG9lcyBub3QgaW5jbHVkZQorICogZGF5bGlnaHQgc2F2aW5ncyB0aW1lLgorICogPHA+CisgKiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIEpESyAxLjEueCwgc29tZSBvdGhlciB0aHJlZS1sZXR0ZXIgdGltZSB6b25lIElEcworICogKHN1Y2ggYXMgIlBTVCIsICJDVFQiLCAiQVNUIikgYXJlIGFsc28gc3VwcG9ydGVkLiBIb3dldmVyLCA8c3Ryb25nPnRoZWlyCisgKiB1c2UgaXMgZGVwcmVjYXRlZDwvc3Ryb25nPiBiZWNhdXNlIHRoZSBzYW1lIGFiYnJldmlhdGlvbiBpcyBvZnRlbiB1c2VkCisgKiBmb3IgbXVsdGlwbGUgdGltZSB6b25lcyAoZm9yIGV4YW1wbGUsICJDU1QiIGNvdWxkIGJlIFUuUy4gIkNlbnRyYWwgU3RhbmRhcmQKKyAqIFRpbWUiIGFuZCAiQ2hpbmEgU3RhbmRhcmQgVGltZSIpLCBhbmQgdGhlIEphdmEgcGxhdGZvcm0gY2FuIHRoZW4gb25seQorICogcmVjb2duaXplIG9uZSBvZiB0aGVtLgorICoKKyAqCisgKiBAc2VlICAgICAgICAgIENhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIEdyZWdvcmlhbkNhbGVuZGFyCisgKiBAc2VlICAgICAgICAgIFNpbXBsZVRpbWVab25lCisgKiBAYXV0aG9yICAgICAgIE1hcmsgRGF2aXMsIERhdmlkIEdvbGRzbWl0aCwgQ2hlbi1MaWVoIEh1YW5nLCBBbGFuIExpdQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2Fic3RyYWN0IHB1YmxpYyBjbGFzcyBUaW1lWm9uZSBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSwgQ2xvbmVhYmxlIHsKKyAgICAvLyB1c2luZyBzZXJpYWx2ZXIgZnJvbSBqZGsxLjQuMl8wNQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC03NDQ5NDIxMjgzMTgzMzc0NzFMOworCisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb25zdHJ1Y3Rvci4gIChGb3IgaW52b2NhdGlvbiBieSBzdWJjbGFzcyBjb25zdHJ1Y3RvcnMsCisgICAgICogdHlwaWNhbGx5IGltcGxpY2l0LikKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgVGltZVpvbmUoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogQSBzdHlsZSBzcGVjaWZpZXIgZm9yIDxjb2RlPmdldERpc3BsYXlOYW1lKCk8L2NvZGU+IGluZGljYXRpbmcKKyAgICAgKiBhIHNob3J0IG5hbWUsIHN1Y2ggYXMgIlBTVC4iCisgICAgICogQHNlZSAjTE9ORworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNIT1JUID0gMDsKKworICAgIC8qKgorICAgICAqIEEgc3R5bGUgc3BlY2lmaWVyIGZvciA8Y29kZT5nZXREaXNwbGF5TmFtZSgpPC9jb2RlPiBpbmRpY2F0aW5nCisgICAgICogYSBsb25nIG5hbWUsIHN1Y2ggYXMgIlBhY2lmaWMgU3RhbmRhcmQgVGltZS4iCisgICAgICogQHNlZSAjU0hPUlQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBMT05HICA9IDE7CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgU0hPUlRfR0VORVJJQyA9IDI7CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTE9OR19HRU5FUklDID0gMzsKKworICAgIC8qKgorICAgICAqIENhY2hlIHRvIGhvbGQgdGhlIFNpbXBsZURhdGVGb3JtYXQgb2JqZWN0cyBmb3IgYSBMb2NhbGUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgSGFzaHRhYmxlIGNhY2hlZExvY2FsZURhdGEgPSBuZXcgSGFzaHRhYmxlKDMpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdGltZSB6b25lIG9mZnNldCwgZm9yIGN1cnJlbnQgZGF0ZSwgbW9kaWZpZWQgaW4gY2FzZSBvZgorICAgICAqIGRheWxpZ2h0IHNhdmluZ3MuIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHBhcmFtIGVyYSB0aGUgZXJhIG9mIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSB5ZWFyIHRoZSB5ZWFyIGluIHRoZSBnaXZlbiBkYXRlLgorICAgICAqIEBwYXJhbSBtb250aCB0aGUgbW9udGggaW4gdGhlIGdpdmVuIGRhdGUuCisgICAgICogTW9udGggaXMgMC1iYXNlZC4gZS5nLiwgMCBmb3IgSmFudWFyeS4KKyAgICAgKiBAcGFyYW0gZGF5IHRoZSBkYXktaW4tbW9udGggb2YgdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIGRheU9mV2VlayB0aGUgZGF5LW9mLXdlZWsgb2YgdGhlIGdpdmVuIGRhdGUuCisgICAgICogQHBhcmFtIG1pbGxpc2Vjb25kcyB0aGUgbWlsbGlzIGluIGRheSBpbiA8ZW0+c3RhbmRhcmQ8L2VtPiBsb2NhbCB0aW1lLgorICAgICAqIEByZXR1cm4gdGhlIG9mZnNldCB0byBhZGQgKnRvKiBHTVQgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIGludCBnZXRPZmZzZXQoaW50IGVyYSwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGF5T2ZXZWVrLCBpbnQgbWlsbGlzZWNvbmRzKTsKKworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgb2Zmc2V0IG9mIHRoaXMgdGltZSB6b25lIGZyb20gVVRDIGF0IHRoZSBzcGVjaWZpZWQKKyAgICAgKiBkYXRlLiBJZiBEYXlsaWdodCBTYXZpbmcgVGltZSBpcyBpbiBlZmZlY3QgYXQgdGhlIHNwZWNpZmllZAorICAgICAqIGRhdGUsIHRoZSBvZmZzZXQgdmFsdWUgaXMgYWRqdXN0ZWQgd2l0aCB0aGUgYW1vdW50IG9mIGRheWxpZ2h0CisgICAgICogc2F2aW5nLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgcmVwcmVzZW50ZWQgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MCAwMDowMDowMCBHTVQKKyAgICAgKiBAcmV0dXJuIHRoZSBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gYWRkIHRvIFVUQyB0byBnZXQgbG9jYWwgdGltZS4KKyAgICAgKgorICAgICAqIEBzZWUgQ2FsZW5kYXIjWk9ORV9PRkZTRVQKKyAgICAgKiBAc2VlIENhbGVuZGFyI0RTVF9PRkZTRVQKKyAgICAgKiBAc2VlICNnZXRPZmZzZXQobG9uZywgYm9vbGVhbiwgaW50W10pCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXRPZmZzZXQobG9uZyBkYXRlKSB7CisJaW50W10gcmVzdWx0ID0gbmV3IGludFsyXTsKKwlnZXRPZmZzZXQoZGF0ZSwgZmFsc2UsIHJlc3VsdCk7CisJcmV0dXJuIHJlc3VsdFswXStyZXN1bHRbMV07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdGltZSB6b25lIHJhdyBhbmQgR01UIG9mZnNldCBmb3IgdGhlIGdpdmVuIG1vbWVudAorICAgICAqIGluIHRpbWUuICBVcG9uIHJldHVybiwgbG9jYWwtbWlsbGlzID0gR01ULW1pbGxpcyArIHJhd09mZnNldCArCisgICAgICogZHN0T2Zmc2V0LiAgQWxsIGNvbXB1dGF0aW9ucyBhcmUgcGVyZm9ybWVkIGluIHRoZSBwcm9sZXB0aWMKKyAgICAgKiBHcmVnb3JpYW4gY2FsZW5kYXIuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgVGltZVpvbmUKKyAgICAgKiBjbGFzcyBkZWxlZ2F0ZXMgdG8gdGhlIDgtYXJndW1lbnQgZ2V0T2Zmc2V0KCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0ZSBtb21lbnQgaW4gdGltZSBmb3Igd2hpY2ggdG8gcmV0dXJuIG9mZnNldHMsIGluCisgICAgICogdW5pdHMgb2YgbWlsbGlzZWNvbmRzIGZyb20gSmFudWFyeSAxLCAxOTcwIDA6MDAgR01ULCBlaXRoZXIgR01UCisgICAgICogdGltZSBvciBsb2NhbCB3YWxsIHRpbWUsIGRlcGVuZGluZyBvbiBgbG9jYWwnLgorICAgICAqIEBwYXJhbSBsb2NhbCBpZiB0cnVlLCBgZGF0ZScgaXMgbG9jYWwgd2FsbCB0aW1lOyBvdGhlcndpc2UgaXQKKyAgICAgKiBpcyBpbiBHTVQgdGltZS4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0cyBvdXRwdXQgcGFyYW1ldGVyIHRvIHJlY2VpdmUgdGhlIHJhdyBvZmZzZXQsIHRoYXQKKyAgICAgKiBpcywgdGhlIG9mZnNldCBub3QgaW5jbHVkaW5nIERTVCBhZGp1c3RtZW50cywgaW4gb2Zmc2V0c1swXSwKKyAgICAgKiBhbmQgdGhlIERTVCBvZmZzZXQsIHRoYXQgaXMsIHRoZSBvZmZzZXQgdG8gYmUgYWRkZWQgdG8KKyAgICAgKiBgcmF3T2Zmc2V0JyB0byBvYnRhaW4gdGhlIHRvdGFsIG9mZnNldCBiZXR3ZWVuIGxvY2FsIGFuZCBHTVQKKyAgICAgKiB0aW1lLCBpbiBvZmZzZXRzWzFdLiBJZiBEU1QgaXMgbm90IGluIGVmZmVjdCwgdGhlIERTVCBvZmZzZXQgaXMKKyAgICAgKiB6ZXJvOyBvdGhlcndpc2UgaXQgaXMgYSBwb3NpdGl2ZSB2YWx1ZSwgdHlwaWNhbGx5IG9uZSBob3VyLgorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHZvaWQgZ2V0T2Zmc2V0KGxvbmcgZGF0ZSwgYm9vbGVhbiBsb2NhbCwgaW50W10gb2Zmc2V0cykgeworICAgICAgICBvZmZzZXRzWzBdID0gZ2V0UmF3T2Zmc2V0KCk7CisgICAgICAgIAorICAgICAgICAvLyBDb252ZXJ0IHRvIGxvY2FsIHdhbGwgbWlsbGlzIGlmIG5lY2Vzc2FyeQorICAgICAgICBpZiAoIWxvY2FsKSB7CisgICAgICAgICAgICBkYXRlICs9IG9mZnNldHNbMF07IC8vIG5vdyBpbiBsb2NhbCBzdGFuZGFyZCBtaWxsaXMKKyAgICAgICAgfQorCisgICAgICAgIC8vIFdoZW4gbG9jYWw9PUZBTFNFLCB3ZSBtaWdodCBoYXZlIHRvIHJlY29tcHV0ZS4gVGhpcyBsb29wIGlzCisgICAgICAgIC8vIGV4ZWN1dGVkIG9uY2UsIHVubGVzcyBhIHJlY29tcHV0YXRpb24gaXMgcmVxdWlyZWQ7IHRoZW4gaXQgaXMKKyAgICAgICAgLy8gZXhlY3V0ZWQgdHdpY2UuCisgICAgICAgIGZvciAoaW50IHBhc3M9MDsgOyArK3Bhc3MpIHsKKyAgICAgICAgICAgIGludCBmaWVsZHNbXSA9IG5ldyBpbnRbNF07CisgICAgICAgICAgICBsb25nIGRheSA9IGZsb29yRGl2aWRlKGRhdGUsIE1JTExJU19QRVJfREFZLCBmaWVsZHMpOworICAgICAgICAgICAgaW50IG1pbGxpcyA9IGZpZWxkc1swXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY29tcHV0ZUdyZWdvcmlhbkZpZWxkcyhkYXksIGZpZWxkcyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG9mZnNldHNbMV0gPSBnZXRPZmZzZXQoR3JlZ29yaWFuQ2FsZW5kYXIuQUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1swXSwgZmllbGRzWzFdLCBmaWVsZHNbMl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc1szXSwgbWlsbGlzKSAtIG9mZnNldHNbMF07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIFJlY29tcHV0ZSBpZiBsb2NhbD09RkFMU0UsIGRzdE9mZnNldCE9MCwgYW5kIGFkZGl0aW9uIG9mCisgICAgICAgICAgICAvLyB0aGUgZHN0T2Zmc2V0IHB1dHMgdXMgaW4gYSBkaWZmZXJlbnQgZGF5LgorICAgICAgICAgICAgaWYgKHBhc3MhPTAgfHwgbG9jYWwgfHwgb2Zmc2V0c1sxXT09MCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGF0ZSArPSBvZmZzZXRzWzFdOworICAgICAgICAgICAgaWYgKGZsb29yRGl2aWRlKGRhdGUsIE1JTExJU19QRVJfREFZKSA9PSBkYXkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBEaXZpZGUgdHdvIGxvbmcgaW50ZWdlcnMsIHJldHVybmluZyB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqIDxwPgorICAgICAqIFVubGlrZSB0aGUgYnVpbHQtaW4gZGl2aXNpb24sIHRoaXMgaXMgbWF0aGVtYXRpY2FsbHkgd2VsbC1iZWhhdmVkLgorICAgICAqIEUuZy4sIDxjb2RlPi0xLzQ8L2NvZGU+ID0+IDAKKyAgICAgKiBidXQgPGNvZGU+Zmxvb3JEaXZpZGUoLTEsNCk8L2NvZGU+ID0+IC0xLgorICAgICAqIFRPRE86IFRoaXMgZHVwbGljYXRlcyBhIG1ldGhvZCBpbiBDYWxlbmRhcjsgY2xlYW4gdXAgYW5kCisgICAgICogY29uc29saWRhdGUgaW4gSUNVIDMuMC4KKyAgICAgKiBAcGFyYW0gbnVtZXJhdG9yIHRoZSBudW1lcmF0b3IKKyAgICAgKiBAcGFyYW0gZGVub21pbmF0b3IgYSBkaXZpc29yIHdoaWNoIG11c3QgYmUgPiAwCisgICAgICogQHJldHVybiB0aGUgZmxvb3Igb2YgdGhlIHF1b3RpZW50LgorICAgICAqLworICAgIHN0YXRpYyBsb25nIGZsb29yRGl2aWRlKGxvbmcgbnVtZXJhdG9yLCBsb25nIGRlbm9taW5hdG9yKSB7CisgICAgICAgIC8vIFdlIGRvIHRoaXMgY29tcHV0YXRpb24gaW4gb3JkZXIgdG8gaGFuZGxlCisgICAgICAgIC8vIGEgbnVtZXJhdG9yIG9mIExvbmcuTUlOX1ZBTFVFIGNvcnJlY3RseQorICAgICAgICByZXR1cm4gKG51bWVyYXRvciA+PSAwKSA/CisgICAgICAgICAgICBudW1lcmF0b3IgLyBkZW5vbWluYXRvciA6CisgICAgICAgICAgICAoKG51bWVyYXRvciArIDEpIC8gZGVub21pbmF0b3IpIC0gMTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEaXZpZGUgdHdvIGludGVnZXJzLCByZXR1cm5pbmcgdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudCwgYW5kCisgICAgICogdGhlIG1vZHVsdXMgcmVtYWluZGVyLgorICAgICAqIDxwPgorICAgICAqIFVubGlrZSB0aGUgYnVpbHQtaW4gZGl2aXNpb24sIHRoaXMgaXMgbWF0aGVtYXRpY2FsbHkgd2VsbC1iZWhhdmVkLgorICAgICAqIEUuZy4sIDxjb2RlPi0xLzQ8L2NvZGU+ID0+IDAgYW5kIDxjb2RlPi0xJTQ8L2NvZGU+ID0+IC0xLAorICAgICAqIGJ1dCA8Y29kZT5mbG9vckRpdmlkZSgtMSw0KTwvY29kZT4gPT4gLTEgd2l0aCA8Y29kZT5yZW1haW5kZXJbMF08L2NvZGU+ID0+IDMuCisgICAgICogVE9ETzogVGhpcyBkdXBsaWNhdGVzIGEgbWV0aG9kIGluIENhbGVuZGFyOyBjbGVhbiB1cCBhbmQKKyAgICAgKiBjb25zb2xpZGF0ZSBpbiBJQ1UgMy4wLgorICAgICAqIEBwYXJhbSBudW1lcmF0b3IgdGhlIG51bWVyYXRvcgorICAgICAqIEBwYXJhbSBkZW5vbWluYXRvciBhIGRpdmlzb3Igd2hpY2ggbXVzdCBiZSA+IDAKKyAgICAgKiBAcGFyYW0gcmVtYWluZGVyIGFuIGFycmF5IG9mIGF0IGxlYXN0IG9uZSBlbGVtZW50IGluIHdoaWNoIHRoZSB2YWx1ZQorICAgICAqIDxjb2RlPm51bWVyYXRvciBtb2QgZGVub21pbmF0b3I8L2NvZGU+IGlzIHJldHVybmVkLiBVbmxpa2UgPGNvZGU+bnVtZXJhdG9yCisgICAgICogJSBkZW5vbWluYXRvcjwvY29kZT4sIHRoaXMgd2lsbCBhbHdheXMgYmUgbm9uLW5lZ2F0aXZlLgorICAgICAqIEByZXR1cm4gdGhlIGZsb29yIG9mIHRoZSBxdW90aWVudC4KKyAgICAgKi8KKyAgICBzdGF0aWMgaW50IGZsb29yRGl2aWRlKGxvbmcgbnVtZXJhdG9yLCBpbnQgZGVub21pbmF0b3IsIGludFtdIHJlbWFpbmRlcikgeworICAgICAgICBpZiAobnVtZXJhdG9yID49IDApIHsKKyAgICAgICAgICAgIHJlbWFpbmRlclswXSA9IChpbnQpKG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKKyAgICAgICAgICAgIHJldHVybiAoaW50KShudW1lcmF0b3IgLyBkZW5vbWluYXRvcik7CisgICAgICAgIH0KKyAgICAgICAgaW50IHF1b3RpZW50ID0gKGludCkoKChudW1lcmF0b3IgKyAxKSAvIGRlbm9taW5hdG9yKSAtIDEpOworICAgICAgICByZW1haW5kZXJbMF0gPSAoaW50KShudW1lcmF0b3IgLSAocXVvdGllbnQgKiBkZW5vbWluYXRvcikpOworICAgICAgICByZXR1cm4gcXVvdGllbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcHV0ZSB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyIHllYXIsIG1vbnRoLCBhbmQgZGF5IG9mIG1vbnRoCisgICAgICogZnJvbSB0aGUgZXBvY2ggZGF5LCBhbmQgcmV0dXJuIHRoZW0gaW4gdGhlIGdpdmVuIGFycmF5LgorICAgICAqIFRPRE86IFRoaXMgZHVwbGljYXRlcyBhIG1ldGhvZCBpbiBDYWxlbmRhcjsgY2xlYW4gdXAgYW5kCisgICAgICogY29uc29saWRhdGUgaW4gSUNVIDMuMC4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBjb21wdXRlR3JlZ29yaWFuRmllbGRzKGxvbmcgZGF5LCBpbnQgZmllbGRzW10pIHsKKyAgICAgICAgaW50IHllYXIsIG1vbnRoLCBkYXlPZk1vbnRoLCBkYXlPZlllYXI7CisKKyAgICAgICAgLy8gQ29udmVydCBmcm9tIDE5NzAgQ0UgZXBvY2ggdG8gMSBDRSBlcG9jaCAoR3JlZ29yaWFuIGNhbGVuZGFyKQorICAgICAgICAvLyBKVUxJQU5fMV9DRSAgICA9IDE3MjE0MjY7IC8vIEphbnVhcnkgMSwgMSBDRSBHcmVnb3JpYW4KKyAgICAgICAgLy8gSlVMSUFOXzE5NzBfQ0UgPSAyNDQwNTg4OyAvLyBKYW51YXJ5IDEsIDE5NzAgQ0UgR3JlZ29yaWFuCisgICAgICAgIGRheSArPSAoMjQ0MDU4OCAtIDE3MjE0MjYpOworCisgICAgICAgIC8vIEhlcmUgd2UgY29udmVydCBmcm9tIHRoZSBkYXkgbnVtYmVyIHRvIHRoZSBtdWx0aXBsZSByYWRpeAorICAgICAgICAvLyByZXByZXNlbnRhdGlvbi4gIFdlIHVzZSA0MDAteWVhciwgMTAwLXllYXIsIGFuZCA0LXllYXIgY3ljbGVzLgorICAgICAgICAvLyBGb3IgZXhhbXBsZSwgdGhlIDQteWVhciBjeWNsZSBoYXMgNCB5ZWFycyArIDEgbGVhcCBkYXk7IGdpdmluZworICAgICAgICAvLyAxNDYxID09IDM2NSo0ICsgMSBkYXlzLgorICAgICAgICBpbnRbXSByZW0gPSBuZXcgaW50WzFdOworICAgICAgICBpbnQgbjQwMCA9IGZsb29yRGl2aWRlKGRheSwgMTQ2MDk3LCByZW0pOyAvLyA0MDAteWVhciBjeWNsZSBsZW5ndGgKKyAgICAgICAgaW50IG4xMDAgPSBmbG9vckRpdmlkZShyZW1bMF0sIDM2NTI0LCByZW0pOyAvLyAxMDAteWVhciBjeWNsZSBsZW5ndGgKKyAgICAgICAgaW50IG40ID0gZmxvb3JEaXZpZGUocmVtWzBdLCAxNDYxLCByZW0pOyAvLyA0LXllYXIgY3ljbGUgbGVuZ3RoCisgICAgICAgIGludCBuMSA9IGZsb29yRGl2aWRlKHJlbVswXSwgMzY1LCByZW0pOworICAgICAgICB5ZWFyID0gNDAwKm40MDAgKyAxMDAqbjEwMCArIDQqbjQgKyBuMTsKKyAgICAgICAgZGF5T2ZZZWFyID0gcmVtWzBdOyAvLyB6ZXJvLWJhc2VkIGRheSBvZiB5ZWFyCisgICAgICAgIGlmIChuMTAwID09IDQgfHwgbjEgPT0gNCkgeworICAgICAgICAgICAgZGF5T2ZZZWFyID0gMzY1OyAvLyBEZWMgMzEgYXQgZW5kIG9mIDQtIG9yIDQwMC15ciBjeWNsZQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgKyt5ZWFyOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBpc0xlYXAgPSAoKHllYXImMHgzKSA9PSAwKSAmJiAvLyBlcXVpdi4gdG8gKHllYXIlNCA9PSAwKQorICAgICAgICAgICAgKHllYXIlMTAwICE9IDAgfHwgeWVhciU0MDAgPT0gMCk7CisKKyAgICAgICAgaW50IGNvcnJlY3Rpb24gPSAwOworICAgICAgICBpbnQgbWFyY2gxID0gaXNMZWFwID8gNjAgOiA1OTsgLy8gemVyby1iYXNlZCBET1kgZm9yIE1hcmNoIDEKKyAgICAgICAgaWYgKGRheU9mWWVhciA+PSBtYXJjaDEpIGNvcnJlY3Rpb24gPSBpc0xlYXAgPyAxIDogMjsKKyAgICAgICAgbW9udGggPSAoMTIgKiAoZGF5T2ZZZWFyICsgY29ycmVjdGlvbikgKyA2KSAvIDM2NzsgLy8gemVyby1iYXNlZCBtb250aAorICAgICAgICBkYXlPZk1vbnRoID0gZGF5T2ZZZWFyIC0KKyAgICAgICAgICAgIEdSRUdPUklBTl9NT05USF9DT1VOVFttb250aF1baXNMZWFwPzE6MF0gKyAxOyAvLyBvbmUtYmFzZWQgRE9NCisKKyAgICAgICAgLy8gSmFuIDEgMSBDRSBpcyBNb25kYXkKKyAgICAgICAgaW50IGRheU9mV2VlayA9IChpbnQpICgoZGF5ICsgQ2FsZW5kYXIuTU9OREFZKSAlIDcpOworICAgICAgICBpZiAoZGF5T2ZXZWVrIDwgQ2FsZW5kYXIuU1VOREFZKSB7CisgICAgICAgICAgICBkYXlPZldlZWsgKz0gNzsKKyAgICAgICAgfQorCisgICAgICAgIGZpZWxkc1swXSA9IHllYXI7CisgICAgICAgIGZpZWxkc1sxXSA9IG1vbnRoOyAvLyAwLWJhc2VkIGFscmVhZHkKKyAgICAgICAgZmllbGRzWzJdID0gZGF5T2ZNb250aDsgLy8gMS1iYXNlZCBhbHJlYWR5CisgICAgICAgIGZpZWxkc1szXSA9IGRheU9mV2VlazsgLy8gMS1iYXNlZCBhbHJlYWR5CisgICAgICAgIC8vZmllbGRzWzRdID0gZGF5T2ZZZWFyICsgMTsgLy8gQ29udmVydCBmcm9tIDAtYmFzZWQgdG8gMS1iYXNlZAorICAgIH0KKworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gYW4gaG91ci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNSUxMSVNfUEVSX0hPVVIgPSA2MCo2MCoxMDAwOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgaW4gb25lIGRheS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCBNSUxMSVNfUEVSX0RBWSA9IDI0Kk1JTExJU19QRVJfSE9VUjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBGb3IgZWFjaCBtb250aCwgdGhlIGRheXMgaW4gYSBub24tbGVhcCB5ZWFyIGJlZm9yZSB0aGUgc3RhcnQKKyAgICAgKiB0aGUgb2YgbW9udGgsIGFuZCB0aGUgZGF5cyBpbiBhIGxlYXAgeWVhciBiZWZvcmUgdGhlIHN0YXJ0IG9mCisgICAgICogdGhlIG1vbnRoLgorICAgICAqIFRPRE86IFRoaXMgZHVwbGljYXRlcyBkYXRhIGluIENhbGVuZGFyLmphdmE7IGNsZWFuIHVwIGFuZAorICAgICAqIGNvbnNvbGlkYXRlIGluIElDVSAzLjAuCisgICAgICovCisgICAgc3RhdGljIGZpbmFsIGludFtdW10gR1JFR09SSUFOX01PTlRIX0NPVU5UID0geworICAgICAgICB7ICAgMCwgICAwIH0sIC8vIEphbgorICAgICAgICB7ICAzMSwgIDMxIH0sIC8vIEZlYgorICAgICAgICB7ICA1OSwgIDYwIH0sIC8vIE1hcgorICAgICAgICB7ICA5MCwgIDkxIH0sIC8vIEFwcgorICAgICAgICB7IDEyMCwgMTIxIH0sIC8vIE1heQorICAgICAgICB7IDE1MSwgMTUyIH0sIC8vIEp1bgorICAgICAgICB7IDE4MSwgMTgyIH0sIC8vIEp1bAorICAgICAgICB7IDIxMiwgMjEzIH0sIC8vIEF1ZworICAgICAgICB7IDI0MywgMjQ0IH0sIC8vIFNlcAorICAgICAgICB7IDI3MywgMjc0IH0sIC8vIE9jdAorICAgICAgICB7IDMwNCwgMzA1IH0sIC8vIE5vdgorICAgICAgICB7IDMzNCwgMzM1IH0gIC8vIERlYworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBiYXNlIHRpbWUgem9uZSBvZmZzZXQgdG8gR01ULgorICAgICAqIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHBhcmFtIG9mZnNldE1pbGxpcyB0aGUgZ2l2ZW4gYmFzZSB0aW1lIHpvbmUgb2Zmc2V0IHRvIEdNVC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgdm9pZCBzZXRSYXdPZmZzZXQoaW50IG9mZnNldE1pbGxpcyk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHVubW9kaWZpZWQgb2Zmc2V0LCBOT1QgbW9kaWZpZWQgaW4gY2FzZSBvZiBkYXlsaWdodCBzYXZpbmdzLgorICAgICAqIFRoaXMgaXMgdGhlIG9mZnNldCB0byBhZGQgKnRvKiBVVEMgdG8gZ2V0IGxvY2FsIHRpbWUuCisgICAgICogQHJldHVybiB0aGUgdW5tb2RpZmllZCBvZmZzZXQgdG8gYWRkICp0byogVVRDIHRvIGdldCBsb2NhbCB0aW1lLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGFic3RyYWN0IHB1YmxpYyBpbnQgZ2V0UmF3T2Zmc2V0KCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBJRCBvZiB0aGlzIHRpbWUgem9uZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBJRCBvZiB0aGlzIHRpbWUgem9uZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldElEKCkgeworICAgICAgICByZXR1cm4gSUQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdGltZSB6b25lIElELiBUaGlzIGRvZXMgbm90IGNoYW5nZSBhbnkgb3RoZXIgZGF0YSBpbgorICAgICAqIHRoZSB0aW1lIHpvbmUgb2JqZWN0LgorICAgICAqIEBwYXJhbSBJRCB0aGUgbmV3IHRpbWUgem9uZSBJRC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJRChTdHJpbmcgSUQpIHsKKyAgICAgICAgaWYgKElEID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIHRoaXMuSUQgPSBJRDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBzdWl0YWJsZSBmb3IgcHJlc2VudGF0aW9uIHRvIHRoZSB1c2VyCisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGxvbmcgZ2VuZXJpYyBuYW1lLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiBhIGZhbGxiYWNrIGJhc2VkIG9uIHRoZSBjb3VudHJ5LCBjaXR5LCBvciB0aW1lIHpvbmUgaWQgd2lsbCBiZSB1c2VkLgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoKSB7CisgICAgICAgIHJldHVybiBfZ2V0RGlzcGxheU5hbWUoZmFsc2UsIExPTkdfR0VORVJJQywgVUxvY2FsZS5nZXREZWZhdWx0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIHN1aXRhYmxlIGZvciBwcmVzZW50YXRpb24gdG8gdGhlIHVzZXIKKyAgICAgKiBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBsb25nIGdlbmVyaWMgbmFtZS4KKyAgICAgKiBJZiB0aGUgZGlzcGxheSBuYW1lIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBsb2NhbGUsCisgICAgICogYSBmYWxsYmFjayBiYXNlZCBvbiB0aGUgY291bnRyeSwgY2l0eSwgb3IgdGltZSB6b25lIGlkIHdpbGwgYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gc3VwcGx5IHRoZSBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogb3IgaW4gdGhlIGRlZmF1bHQgbG9jYWxlIGlmIHRoZSBnaXZlbiBsb2NhbGUgaXMgbm90IHJlY29nbml6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBnZXREaXNwbGF5TmFtZShMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHJldHVybiBfZ2V0RGlzcGxheU5hbWUoZmFsc2UsIExPTkdfR0VORVJJQywgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGxvbmcgbmFtZSwgbm90IGluY2x1ZGluZyBkYXlsaWdodCBzYXZpbmdzLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiBhIGZhbGxiYWNrIGJhc2VkIG9uIHRoZSBjb3VudHJ5LCBjaXR5LCBvciB0aW1lIHpvbmUgaWQgd2lsbCBiZSB1c2VkLgorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIHVsb2NhbGUgaW4gd2hpY2ggdG8gc3VwcGx5IHRoZSBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIHRpbWUgem9uZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlCisgICAgICogb3IgaW4gdGhlIGRlZmF1bHQgdWxvY2FsZSBpZiB0aGUgZ2l2ZW4gdWxvY2FsZSBpcyBub3QgcmVjb2duaXplZC4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIF9nZXREaXNwbGF5TmFtZShmYWxzZSwgTE9OR19HRU5FUklDLCBsb2NhbGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIHN1aXRhYmxlIGZvciBwcmVzZW50YXRpb24gdG8gdGhlIHVzZXIKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogSWYgdGhlIGRpc3BsYXkgbmFtZSBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGUgbG9jYWxlLAorICAgICAqIHRoZW4gdGhpcyBtZXRob2QgcmV0dXJucyBhIHN0cmluZyBpbiB0aGUgZm9ybWF0CisgICAgICogPGNvZGU+R01UWystXWhoOm1tPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gZGF5bGlnaHQgaWYgdHJ1ZSwgcmV0dXJuIHRoZSBkYXlsaWdodCBzYXZpbmdzIG5hbWUuCisgICAgICogQHBhcmFtIHN0eWxlIGVpdGhlciA8Y29kZT5MT05HPC9jb2RlPiBvciA8Y29kZT5TSE9SVDwvY29kZT4KKyAgICAgKiBAcmV0dXJuIHRoZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoaXMgdGltZSB6b25lIGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgU3RyaW5nIGdldERpc3BsYXlOYW1lKGJvb2xlYW4gZGF5bGlnaHQsIGludCBzdHlsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWUoZGF5bGlnaHQsIHN0eWxlLCBVTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiB0aGVuIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgaW4gdGhlIGZvcm1hdAorICAgICAqIDxjb2RlPkdNVFsrLV1oaDptbTwvY29kZT4uCisgICAgICogQHBhcmFtIGRheWxpZ2h0IGlmIHRydWUsIHJldHVybiB0aGUgZGF5bGlnaHQgc2F2aW5ncyBuYW1lLgorICAgICAqIEBwYXJhbSBzdHlsZSBlaXRoZXIgPGNvZGU+TE9ORzwvY29kZT4gb3IgPGNvZGU+U0hPUlQ8L2NvZGU+CisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIHN1cHBseSB0aGUgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGdpdmVuIGxvY2FsZQorICAgICAqIG9yIGluIHRoZSBkZWZhdWx0IGxvY2FsZSBpZiB0aGUgZ2l2ZW4gbG9jYWxlIGlzIG5vdCByZWNvZ25pemVkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHN0eWxlIGlzIGludmFsaWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZShib29sZWFuIGRheWxpZ2h0LCBpbnQgc3R5bGUsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lKGRheWxpZ2h0LCBzdHlsZSwgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgc3VpdGFibGUgZm9yIHByZXNlbnRhdGlvbiB0byB0aGUgdXNlcgorICAgICAqIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIElmIHRoZSBkaXNwbGF5IG5hbWUgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIGxvY2FsZSwKKyAgICAgKiB0aGVuIHRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgaW4gdGhlIGZvcm1hdAorICAgICAqIDxjb2RlPkdNVFsrLV1oaDptbTwvY29kZT4uCisgICAgICogQHBhcmFtIGRheWxpZ2h0IGlmIHRydWUsIHJldHVybiB0aGUgZGF5bGlnaHQgc2F2aW5ncyBuYW1lLgorICAgICAqIEBwYXJhbSBzdHlsZSBlaXRoZXIgPGNvZGU+TE9ORzwvY29kZT4gb3IgPGNvZGU+U0hPUlQ8L2NvZGU+CisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIHN1cHBseSB0aGUgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGh1bWFuLXJlYWRhYmxlIG5hbWUgb2YgdGhpcyB0aW1lIHpvbmUgaW4gdGhlIGdpdmVuIGxvY2FsZQorICAgICAqIG9yIGluIHRoZSBkZWZhdWx0IGxvY2FsZSBpZiB0aGUgZ2l2ZW4gbG9jYWxlIGlzIG5vdCByZWNvZ25pemVkLgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHN0eWxlIGlzIGludmFsaWQuCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKGJvb2xlYW4gZGF5bGlnaHQsIGludCBzdHlsZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgaWYgKHN0eWxlICE9IFNIT1JUICYmIHN0eWxlICE9IExPTkcpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgc3R5bGU6ICIgKyBzdHlsZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIF9nZXREaXNwbGF5TmFtZShkYXlsaWdodCwgc3R5bGUsIGxvY2FsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIHB1YmxpYyB2ZXJzaW9uIG9mIHRoaXMgQVBJIG9ubHkgYWNjZXB0cyBMT05HL1NIT1JULCB0aGUKKyAgICAgKiBpbnRlcm5hbCB2ZXJzaW9uICh3aGljaCB0aGlzIGNhbGxzKSBhbHNvIGFjY2VwdHMgTE9OR19HRU5FUklDL1NIT1JUX0dFTkVSSUMuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgX2dldERpc3BsYXlOYW1lKGJvb2xlYW4gZGF5bGlnaHQsIGludCBzdHlsZSwgVUxvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgLyogTk9URVM6CisgICAgICAgICAqICgxKSBXZSB1c2UgU2ltcGxlRGF0ZUZvcm1hdCBmb3Igc2ltcGxpY2l0eTsgd2UgY291bGQgZG8gdGhpcworICAgICAgICAgKiBtb3JlIGVmZmljaWVudGx5IGJ1dCBpdCB3b3VsZCBkdXBsaWNhdGUgdGhlIFNpbXBsZURhdGVGb3JtYXQgY29kZQorICAgICAgICAgKiBoZXJlLCB3aGljaCBpcyB1bmRlc2lyYWJsZS4KKyAgICAgICAgICogKDIpIEF0dGVtcHRzIHRvIG1vdmUgdGhlIGNvZGUgZnJvbSBTaW1wbGVEYXRlRm9ybWF0IHRvIGhlcmUgYWxzbyBydW4KKyAgICAgICAgICogYWdyb3VuZCBiZWNhdXNlIHRoaXMgcmVxdWlyZXMgU2ltcGxlRGF0ZUZvcm1hdCB0byBrZWVwIGEgTG9jYWxlCisgICAgICAgICAqIG9iamVjdCBhcm91bmQsIHdoaWNoIGl0IGN1cnJlbnRseSBkb2Vzbid0OyB0byBzeW50aGVzaXplIHN1Y2ggYQorICAgICAgICAgKiBsb2NhbGUgdXBvbiByZXN1cnJlY3Rpb247IGFuZCB0byBzb21laG93IGhhbmRsZSB0aGUgc3BlY2lhbCBjYXNlIG9mCisgICAgICAgICAqIGNvbnN0cnVjdGlvbiBmcm9tIGEgRGF0ZUZvcm1hdFN5bWJvbHMgb2JqZWN0LgorICAgICAgICAgKi8KKworICAgICAgICAvLyBXZSBrZWVwIGEgY2FjaGUsIGluZGV4ZWQgYnkgbG9jYWxlLiAgVGhlIGNhY2hlIGNvbnRhaW5zIGEKKyAgICAgICAgLy8gU2ltcGxlRGF0ZUZvcm1hdCBvYmplY3QsIHdoaWNoIHdlIGNyZWF0ZSBvbiBkZW1hbmQuCisgICAgICAgIFNvZnRSZWZlcmVuY2UgZGF0YSA9IChTb2Z0UmVmZXJlbmNlKWNhY2hlZExvY2FsZURhdGEuZ2V0KGxvY2FsZSk7CisgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgZm9ybWF0OworICAgICAgICBpZiAoZGF0YSA9PSBudWxsIHx8CisgICAgICAgICAgICAoZm9ybWF0ID0gKFNpbXBsZURhdGVGb3JtYXQpZGF0YS5nZXQoKSkgPT0gbnVsbCkgeworICAgICAgICAgICAgZm9ybWF0ID0gbmV3IFNpbXBsZURhdGVGb3JtYXQobnVsbCwgbG9jYWxlKTsKKyAgICAgICAgICAgIGNhY2hlZExvY2FsZURhdGEucHV0KGxvY2FsZSwgbmV3IFNvZnRSZWZlcmVuY2UoZm9ybWF0KSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IFNpbXBsZVRpbWVab25lIGFzIGEgc3RhbmQtaW4gZm9yIHRoaXMgem9uZTsgdGhlIHN0YW5kLWluCisgICAgICAgIC8vIHdpbGwgaGF2ZSBubyBEU1QsIG9yIERTVCBkdXJpbmcgSmFudWFyeSwgYnV0IHRoZSBzYW1lIElEIGFuZCBvZmZzZXQsCisgICAgICAgIC8vIGFuZCBoZW5jZSB0aGUgc2FtZSBkaXNwbGF5IG5hbWUuICBXZSBkb24ndCBjYWNoZSB0aGVzZSBiZWNhdXNlCisgICAgICAgIC8vIHRoZXkncmUgc21hbGwgYW5kIGNoZWFwIHRvIGNyZWF0ZS4KKyAgICAgICAgU2ltcGxlVGltZVpvbmUgdHo7CisgICAgICAgIGlmIChkYXlsaWdodCAmJiB1c2VEYXlsaWdodFRpbWUoKSkgeworICAgICAgICAgICAgaW50IHNhdmluZ3MgPSBnZXREU1RTYXZpbmdzKCk7CisgICAgICAgICAgICB0eiA9IG5ldyBTaW1wbGVUaW1lWm9uZShnZXRSYXdPZmZzZXQoKSwgZ2V0SUQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyLkpBTlVBUlksIDEsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhci5GRUJSVUFSWSwgMSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhdmluZ3MpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdHogPSBuZXcgU2ltcGxlVGltZVpvbmUoZ2V0UmF3T2Zmc2V0KCksIGdldElEKCkpOworICAgICAgICB9CisgICAgICAgIFN0cmluZ1tdIHBhdHRlcm5zID0geyAieiIsICJ6enp6IiwgInYiLCAidnZ2diIgfTsKKyAgICAgICAgZm9ybWF0LmFwcGx5UGF0dGVybihwYXR0ZXJuc1tzdHlsZV0pOyAgICAgIAorICAgICAgICBmb3JtYXQuc2V0VGltZVpvbmUodHopOworICAgICAgICAvLyBGb3JtYXQgYSBkYXRlIGluIEphbnVhcnkuICBXZSB1c2UgdGhlIHZhbHVlIDEwKk9ORV9EQVkgPT0gSmFuIDExIDE5NzAKKyAgICAgICAgLy8gMDowMCBHTVQuCisgICAgICAgIHJldHVybiBmb3JtYXQuZm9ybWF0KG5ldyBEYXRlKDg2NDAwMDAwMEwpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhbW91bnQgb2YgdGltZSB0byBiZSBhZGRlZCB0byBsb2NhbCBzdGFuZGFyZCB0aW1lCisgICAgICogdG8gZ2V0IGxvY2FsIHdhbGwgY2xvY2sgdGltZS4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBhbHdheXMgcmV0dXJucyAzNjAwMDAwIG1pbGxpc2Vjb25kcworICAgICAqIChpLmUuLCBvbmUgaG91cikgaWYgdGhpcyB0aW1lIHpvbmUgb2JzZXJ2ZXMgRGF5bGlnaHQgU2F2aW5nCisgICAgICogVGltZS4gT3RoZXJ3aXNlLCAwICh6ZXJvKSBpcyByZXR1cm5lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiBhbiB1bmRlcmx5aW5nIFRpbWVab25lIGltcGxlbWVudGF0aW9uIHN1YmNsYXNzIHN1cHBvcnRzCisgICAgICogaGlzdG9yaWNhbCBEYXlsaWdodCBTYXZpbmcgVGltZSBjaGFuZ2VzLCB0aGlzIG1ldGhvZCByZXR1cm5zCisgICAgICogdGhlIGtub3duIGxhdGVzdCBkYXlsaWdodCBzYXZpbmcgdmFsdWUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBhbW91bnQgb2Ygc2F2aW5nIHRpbWUgaW4gbWlsbGlzZWNvbmRzCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIGludCBnZXREU1RTYXZpbmdzKCkgeworICAgIAlpZiAodXNlRGF5bGlnaHRUaW1lKCkpIHsKKyAgICAJICAgIHJldHVybiAzNjAwMDAwOworICAgIAl9CisgICAgCXJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFF1ZXJpZXMgaWYgdGhpcyB0aW1lIHpvbmUgdXNlcyBkYXlsaWdodCBzYXZpbmdzIHRpbWUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgdGltZSB6b25lIHVzZXMgZGF5bGlnaHQgc2F2aW5ncyB0aW1lLAorICAgICAqIGZhbHNlLCBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgYWJzdHJhY3QgcHVibGljIGJvb2xlYW4gdXNlRGF5bGlnaHRUaW1lKCk7CisKKyAgICAvKioKKyAgICAgKiBRdWVyaWVzIGlmIHRoZSBnaXZlbiBkYXRlIGlzIGluIGRheWxpZ2h0IHNhdmluZ3MgdGltZSBpbgorICAgICAqIHRoaXMgdGltZSB6b25lLgorICAgICAqIEBwYXJhbSBkYXRlIHRoZSBnaXZlbiBEYXRlLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gZGF0ZSBpcyBpbiBkYXlsaWdodCBzYXZpbmdzIHRpbWUsCisgICAgICogZmFsc2UsIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBhYnN0cmFjdCBwdWJsaWMgYm9vbGVhbiBpbkRheWxpZ2h0VGltZShEYXRlIGRhdGUpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IGZvciB0aGUgZ2l2ZW4gSUQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gSUQgdGhlIElEIGZvciBhIDxjb2RlPlRpbWVab25lPC9jb2RlPiwgZWl0aGVyIGFuIGFiYnJldmlhdGlvbgorICAgICAqIHN1Y2ggYXMgIlBTVCIsIGEgZnVsbCBuYW1lIHN1Y2ggYXMgIkFtZXJpY2EvTG9zX0FuZ2VsZXMiLCBvciBhIGN1c3RvbQorICAgICAqIElEIHN1Y2ggYXMgIkdNVC04OjAwIi4gTm90ZSB0aGF0IHRoZSBzdXBwb3J0IG9mIGFiYnJldmlhdGlvbnMgaXMKKyAgICAgKiBmb3IgSkRLIDEuMS54IGNvbXBhdGliaWxpdHkgb25seSBhbmQgZnVsbCBuYW1lcyBzaG91bGQgYmUgdXNlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdGhlIHNwZWNpZmllZCA8Y29kZT5UaW1lWm9uZTwvY29kZT4sIG9yIHRoZSBHTVQgem9uZSBpZiB0aGUgZ2l2ZW4gSUQKKyAgICAgKiBjYW5ub3QgYmUgdW5kZXJzdG9vZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHN5bmNocm9uaXplZCBUaW1lWm9uZSBnZXRUaW1lWm9uZShTdHJpbmcgSUQpIHsKKyAgICAgICAgLyogV2UgZmlyc3QgdHJ5IHRvIGxvb2t1cCB0aGUgem9uZSBJRCBpbiBvdXIgc3lzdGVtIGxpc3QuICBJZiB0aGlzCisgICAgICAgICAqIGZhaWxzLCB3ZSB0cnkgdG8gcGFyc2UgaXQgYXMgYSBjdXN0b20gc3RyaW5nIEdNVFsrLV1oaDptbS4gIElmCisgICAgICAgICAqIGFsbCBlbHNlIGZhaWxzLCB3ZSByZXR1cm4gR01ULCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB0aGUKKyAgICAgICAgICogdXNlciB3YW50cywgYnV0IGF0IGxlYXN0IGlzIGEgZnVuY3Rpb25pbmcgVGltZVpvbmUgb2JqZWN0LgorICAgICAgICAgKgorICAgICAgICAgKiBXZSBjYW5ub3QgcmV0dXJuIE5VTEwsIGJlY2F1c2UgdGhhdCB3b3VsZCBicmVhayBjb21wYXRpYmlsaXR5CisgICAgICAgICAqIHdpdGggdGhlIEpESy4KKyAgICAgICAgICovCisgICAgICAgIGlmKElEPT1udWxsKXsKKyAgICAgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigpOworICAgICAgICB9CisgICAgICAgIFRpbWVab25lIHJlc3VsdCA9IFpvbmVNZXRhLmdldFN5c3RlbVRpbWVab25lKElEKTsKKyAgICAgICAgCisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gWm9uZU1ldGEuZ2V0Q3VzdG9tVGltZVpvbmUoSUQpOworICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gWm9uZU1ldGEuZ2V0R01UKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBuZXcgU3RyaW5nIGFycmF5IGNvbnRhaW5pbmcgYWxsIHN5c3RlbSBUaW1lWm9uZSBJRHMKKyAgICAgKiB3aXRoIHRoZSBnaXZlbiByYXcgb2Zmc2V0IGZyb20gR01ULiAgVGhlc2UgSURzIG1heSBiZSBwYXNzZWQgdG8KKyAgICAgKiA8Y29kZT5nZXQoKTwvY29kZT4gdG8gY29uc3RydWN0IHRoZSBjb3JyZXNwb25kaW5nIFRpbWVab25lCisgICAgICogb2JqZWN0LgorICAgICAqIEBwYXJhbSByYXdPZmZzZXQgdGhlIG9mZnNldCBpbiBtaWxsaXNlY29uZHMgZnJvbSBHTVQKKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IG9mIElEcyBmb3Igc3lzdGVtIFRpbWVab25lcyB3aXRoIHRoZSBnaXZlbgorICAgICAqIHJhdyBvZmZzZXQuICBJZiB0aGVyZSBhcmUgbm9uZSwgcmV0dXJuIGEgemVyby1sZW5ndGggYXJyYXkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRBdmFpbGFibGVJRHMoaW50IHJhd09mZnNldCkgeworICAgICAgICByZXR1cm4gWm9uZU1ldGEuZ2V0QXZhaWxhYmxlSURzKHJhd09mZnNldCk7CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIG5ldyBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gY291bnRyeS4gIFRoZXNlIElEcyBtYXkgYmUgcGFzc2VkIHRvCisgICAgICogPGNvZGU+Z2V0KCk8L2NvZGU+IHRvIGNvbnN0cnVjdCB0aGUgY29ycmVzcG9uZGluZyBUaW1lWm9uZQorICAgICAqIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gY291bnRyeSBhIHR3by1sZXR0ZXIgSVNPIDMxNjYgY291bnRyeSBjb2RlLCBvciA8Y29kZT5udWxsPC9jb2RlPgorICAgICAqIHRvIHJldHVybiB6b25lcyBub3QgYXNzb2NpYXRlZCB3aXRoIGFueSBjb3VudHJ5CisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiBJRHMgZm9yIHN5c3RlbSBUaW1lWm9uZXMgaW4gdGhlIGdpdmVuCisgICAgICogY291bnRyeS4gIElmIHRoZXJlIGFyZSBub25lLCByZXR1cm4gYSB6ZXJvLWxlbmd0aCBhcnJheS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1tdIGdldEF2YWlsYWJsZUlEcyhTdHJpbmcgY291bnRyeSkgeworICAgICAgICByZXR1cm4gWm9uZU1ldGEuZ2V0QXZhaWxhYmxlSURzKGNvdW50cnkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIG5ldyBTdHJpbmcgYXJyYXkgY29udGFpbmluZyBhbGwgc3lzdGVtIFRpbWVab25lIElEcy4KKyAgICAgKiBUaGVzZSBJRHMgKGFuZCBvbmx5IHRoZXNlIElEcykgbWF5IGJlIHBhc3NlZCB0bworICAgICAqIDxjb2RlPmdldCgpPC9jb2RlPiB0byBjb25zdHJ1Y3QgdGhlIGNvcnJlc3BvbmRpbmcgVGltZVpvbmUKKyAgICAgKiBvYmplY3QuCisgICAgICogQHJldHVybiBhbiBhcnJheSBvZiBhbGwgc3lzdGVtIFRpbWVab25lIElEcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0QXZhaWxhYmxlSURzKCkgeworICAgICAgICByZXR1cm4gWm9uZU1ldGEuZ2V0QXZhaWxhYmxlSURzKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBJRHMgaW4gdGhlIGVxdWl2YWxlbmN5IGdyb3VwIHRoYXQKKyAgICAgKiBpbmNsdWRlcyB0aGUgZ2l2ZW4gSUQuICBBbiBlcXVpdmFsZW5jeSBncm91cCBjb250YWlucyB6b25lcworICAgICAqIHRoYXQgaGF2ZSB0aGUgc2FtZSBHTVQgb2Zmc2V0IGFuZCBydWxlcy4KKyAgICAgKgorICAgICAqIDxwPlRoZSByZXR1cm5lZCBjb3VudCBpbmNsdWRlcyB0aGUgZ2l2ZW4gSUQ7IGl0IGlzIGFsd2F5cyA+PSAxCisgICAgICogZm9yIHZhbGlkIElEcy4gIFRoZSBnaXZlbiBJRCBtdXN0IGJlIGEgc3lzdGVtIHRpbWUgem9uZS4gIElmIGl0CisgICAgICogaXMgbm90LCByZXR1cm5zIHplcm8uCisgICAgICogQHBhcmFtIGlkIGEgc3lzdGVtIHRpbWUgem9uZSBJRAorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiB6b25lcyBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAgY29udGFpbmluZworICAgICAqICdpZCcsIG9yIHplcm8gaWYgJ2lkJyBpcyBub3QgYSB2YWxpZCBzeXN0ZW0gSUQKKyAgICAgKiBAc2VlICNnZXRFcXVpdmFsZW50SUQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBjb3VudEVxdWl2YWxlbnRJRHMoU3RyaW5nIGlkKSB7CisgICAgICAgIHJldHVybiBab25lTWV0YS5jb3VudEVxdWl2YWxlbnRJRHMoaWQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gSUQgaW4gdGhlIGVxdWl2YWxlbmN5IGdyb3VwIHRoYXQKKyAgICAgKiBpbmNsdWRlcyB0aGUgZ2l2ZW4gSUQuICBBbiBlcXVpdmFsZW5jeSBncm91cCBjb250YWlucyB6b25lcworICAgICAqIHRoYXQgaGF2ZSB0aGUgc2FtZSBHTVQgb2Zmc2V0IGFuZCBydWxlcy4KKyAgICAgKgorICAgICAqIDxwPlRoZSBnaXZlbiBpbmRleCBtdXN0IGJlIGluIHRoZSByYW5nZSAwLi5uLTEsIHdoZXJlIG4gaXMgdGhlCisgICAgICogdmFsdWUgcmV0dXJuZWQgYnkgPGNvZGU+Y291bnRFcXVpdmFsZW50SURzKGlkKTwvY29kZT4uICBGb3IKKyAgICAgKiBzb21lIHZhbHVlIG9mICdpbmRleCcsIHRoZSByZXR1cm5lZCB2YWx1ZSB3aWxsIGJlIGVxdWFsIHRvIHRoZQorICAgICAqIGdpdmVuIGlkLiAgSWYgdGhlIGdpdmVuIGlkIGlzIG5vdCBhIHZhbGlkIHN5c3RlbSB0aW1lIHpvbmUsIG9yCisgICAgICogaWYgJ2luZGV4JyBpcyBvdXQgb2YgcmFuZ2UsIHRoZW4gcmV0dXJucyBhbiBlbXB0eSBzdHJpbmcuCisgICAgICogQHBhcmFtIGlkIGEgc3lzdGVtIHRpbWUgem9uZSBJRAorICAgICAqIEBwYXJhbSBpbmRleCBhIHZhbHVlIGZyb20gMCB0byBuLTEsIHdoZXJlIG4gaXMgdGhlIHZhbHVlCisgICAgICogcmV0dXJuZWQgYnkgPGNvZGU+Y291bnRFcXVpdmFsZW50SURzKGlkKTwvY29kZT4KKyAgICAgKiBAcmV0dXJuIHRoZSBJRCBvZiB0aGUgaW5kZXgtdGggem9uZSBpbiB0aGUgZXF1aXZhbGVuY3kgZ3JvdXAKKyAgICAgKiBjb250YWluaW5nICdpZCcsIG9yIGFuIGVtcHR5IHN0cmluZyBpZiAnaWQnIGlzIG5vdCBhIHZhbGlkCisgICAgICogc3lzdGVtIElEIG9yICdpbmRleCcgaXMgb3V0IG9mIHJhbmdlCisgICAgICogQHNlZSAjY291bnRFcXVpdmFsZW50SURzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RXF1aXZhbGVudElEKFN0cmluZyBpZCwgaW50IGluZGV4KSB7CisgICAgICAgIHJldHVybiBab25lTWV0YS5nZXRFcXVpdmFsZW50SUQoaWQsIGluZGV4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkZWZhdWx0IDxjb2RlPlRpbWVab25lPC9jb2RlPiBmb3IgdGhpcyBob3N0LgorICAgICAqIFRoZSBzb3VyY2Ugb2YgdGhlIGRlZmF1bHQgPGNvZGU+VGltZVpvbmU8L2NvZGU+IAorICAgICAqIG1heSB2YXJ5IHdpdGggaW1wbGVtZW50YXRpb24uCisgICAgICogQHJldHVybiBhIGRlZmF1bHQgPGNvZGU+VGltZVpvbmU8L2NvZGU+LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIFRpbWVab25lIGdldERlZmF1bHQoKSB7CisgICAgICAgIGlmIChkZWZhdWx0Wm9uZSA9PSBudWxsKSB7CisgICAgICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUgdGVtcD1qYXZhLnV0aWwuVGltZVpvbmUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgZGVmYXVsdFpvbmUgPSBnZXRUaW1lWm9uZSh0ZW1wLmdldElEKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoVGltZVpvbmUpIGRlZmF1bHRab25lLmNsb25lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IHRoYXQgaXMKKyAgICAgKiByZXR1cm5lZCBieSB0aGUgPGNvZGU+Z2V0RGVmYXVsdDwvY29kZT4gbWV0aG9kLiAgSWYgPGNvZGU+em9uZTwvY29kZT4KKyAgICAgKiBpcyBudWxsLCByZXNldCB0aGUgZGVmYXVsdCB0byB0aGUgdmFsdWUgaXQgaGFkIG9yaWdpbmFsbHkgd2hlbiB0aGUKKyAgICAgKiBWTSBmaXJzdCBzdGFydGVkLgorICAgICAqIEBwYXJhbSB0eiB0aGUgbmV3IGRlZmF1bHQgdGltZSB6b25lCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgdm9pZCBzZXREZWZhdWx0KFRpbWVab25lIHR6KSB7CisgICAgICAgIAorICAgICAgICBkZWZhdWx0Wm9uZSA9IHR6OworICAgICAgICAvLyBLZWVwIGphdmEudXRpbC5UaW1lWm9uZSBkZWZhdWx0IGluIHN5bmMgc28gamF2YS51dGlsLkRhdGUKKyAgICAgICAgLy8gY2FuIGludGVyb3BlcmF0ZSB3aXRoIGNvbS5pYm0uaWN1LnV0aWwgY2xhc3Nlcy4KKyAgICAgICAgamF2YS51dGlsLlRpbWVab25lIGpka1pvbmUgPSBudWxsOworICAgICAgICBpZiAodHogIT0gbnVsbCkgeworICAgICAgICAgICAgamRrWm9uZSA9IFRpbWVab25lQWRhcHRlci53cmFwKHR6KTsKKyAgICAgICAgfQorICAgICAgICBqYXZhLnV0aWwuVGltZVpvbmUuc2V0RGVmYXVsdChqZGtab25lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhpcyB6b25lIGhhcyB0aGUgc2FtZSBydWxlIGFuZCBvZmZzZXQgYXMgYW5vdGhlciB6b25lLgorICAgICAqIFRoYXQgaXMsIGlmIHRoaXMgem9uZSBkaWZmZXJzIG9ubHkgaW4gSUQsIGlmIGF0IGFsbC4gIFJldHVybnMgZmFsc2UKKyAgICAgKiBpZiB0aGUgb3RoZXIgem9uZSBpcyBudWxsLgorICAgICAqIEBwYXJhbSBvdGhlciB0aGUgPGNvZGU+VGltZVpvbmU8L2NvZGU+IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvdGhlciB6b25lIGlzIG5vdCBudWxsIGFuZCBpcyB0aGUgc2FtZSBhcyB0aGlzIG9uZSwKKyAgICAgKiB3aXRoIHRoZSBwb3NzaWJsZSBleGNlcHRpb24gb2YgdGhlIElECisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaGFzU2FtZVJ1bGVzKFRpbWVab25lIG90aGVyKSB7CisgICAgICAgIHJldHVybiBvdGhlciAhPSBudWxsICYmCisgICAgICAgICAgICBnZXRSYXdPZmZzZXQoKSA9PSBvdGhlci5nZXRSYXdPZmZzZXQoKSAmJgorICAgICAgICAgICAgdXNlRGF5bGlnaHRUaW1lKCkgPT0gb3RoZXIudXNlRGF5bGlnaHRUaW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogT3ZlcnJpZGVzIENsb25lYWJsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBUaW1lWm9uZSBvdGhlciA9IChUaW1lWm9uZSkgc3VwZXIuY2xvbmUoKTsKKyAgICAgICAgICAgIG90aGVyLklEID0gSUQ7CisgICAgICAgICAgICByZXR1cm4gb3RoZXI7CisgICAgICAgIH0gY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIG9iaiBpcyBhIFRpbWVab25lIHdpdGggdGhlIHNhbWUgY2xhc3MgYW5kIElEIGFzIHRoaXMuCisgICAgICogQHJldHVybiB0cnVlIGlmIG9iaiBpcyBhIFRpbWVab25lIHdpdGggdGhlIHNhbWUgY2xhc3MgYW5kIElEIGFzIHRoaXMKKyAgICAgKiBAcGFyYW0gb2JqIHRoZSBvYmplY3QgdG8gY29tcGFyZSBhZ2FpbnN0CisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKXsKKyAgICAgICAgaWYgKHRoaXMgPT0gb2JqKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKG9iaiA9PSBudWxsIHx8IGdldENsYXNzKCkgIT0gb2JqLmdldENsYXNzKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIChJRC5lcXVhbHMoKChUaW1lWm9uZSlvYmopLklEKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBoYXNoIGNvZGUuCisgICAgICogQHJldHVybiB0aGUgaGFzaCBjb2RlCisgICAgICogQGRyYWZ0IElDVSAzLjQuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKXsKKyAgICAJcmV0dXJuIElELmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT1wcml2YXRlcz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFRoZSBzdHJpbmcgaWRlbnRpZmllciBvZiB0aGlzIDxjb2RlPlRpbWVab25lPC9jb2RlPi4gIFRoaXMgaXMgYQorICAgICAqIHByb2dyYW1tYXRpYyBpZGVudGlmaWVyIHVzZWQgaW50ZXJuYWxseSB0byBsb29rIHVwIDxjb2RlPlRpbWVab25lPC9jb2RlPgorICAgICAqIG9iamVjdHMgZnJvbSB0aGUgc3lzdGVtIHRhYmxlIGFuZCBhbHNvIHRvIG1hcCB0aGVtIHRvIHRoZWlyIGxvY2FsaXplZAorICAgICAqIGRpc3BsYXkgbmFtZXMuICA8Y29kZT5JRDwvY29kZT4gdmFsdWVzIGFyZSB1bmlxdWUgaW4gdGhlIHN5c3RlbQorICAgICAqIHRhYmxlIGJ1dCBtYXkgbm90IGJlIGZvciBkeW5hbWljYWxseSBjcmVhdGVkIHpvbmVzLgorICAgICAqIEBzZXJpYWwKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyAgICAgICAgICAgSUQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZGVmYXVsdCB0aW1lIHpvbmUsIG9yIG51bGwgaWYgbm90IHNldC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBUaW1lWm9uZSAgZGVmYXVsdFpvbmUgPSBudWxsOworCit9CisKKy8vZW9mCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9VTG9jYWxlLmphdmEgYi9zcmMvY29tL2libS9pY3UvdXRpbC9VTG9jYWxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTEyMTg1YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1VMb2NhbGUuamF2YQpAQCAtMCwwICsxLDI4MTUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAzLTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CisKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLkxvY2FsZVV0aWxpdHk7CitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5sYW5nLlVDaGFyYWN0ZXI7CisKKy8qKgorICogQSBjbGFzcyBhbmFsb2dvdXMgdG8ge0BsaW5rIGphdmEudXRpbC5Mb2NhbGV9IHRoYXQgcHJvdmlkZXMgYWRkaXRpb25hbAorICogc3VwcG9ydCBmb3IgSUNVIHByb3RvY29sLiAgSW4gSUNVIDMuMCB0aGlzIGNsYXNzIGlzIGVuaGFuY2VkIHRvIHN1cHBvcnQKKyAqIFJGQyAzMDY2IGxhbmd1YWdlIGlkZW50aWZpZXJzLgorICoKKyAqIDxwPk1hbnkgY2xhc3NlcyBhbmQgc2VydmljZXMgaW4gSUNVIGZvbGxvdyBhIGZhY3RvcnkgaWRpb20sIGluCisgKiB3aGljaCBhIGZhY3RvcnkgbWV0aG9kIG9yIG9iamVjdCByZXNwb25kcyB0byBhIGNsaWVudCByZXF1ZXN0IHdpdGgKKyAqIGFuIG9iamVjdC4gIFRoZSByZXF1ZXN0IGluY2x1ZGVzIGEgbG9jYWxlICh0aGUgPGk+cmVxdWVzdGVkPC9pPgorICogbG9jYWxlKSwgYW5kIHRoZSByZXR1cm5lZCBvYmplY3QgaXMgY29uc3RydWN0ZWQgdXNpbmcgZGF0YSBmb3IgdGhhdAorICogbG9jYWxlLiAgVGhlIHN5c3RlbSBtYXkgbGFjayBkYXRhIGZvciB0aGUgcmVxdWVzdGVkIGxvY2FsZSwgaW4KKyAqIHdoaWNoIGNhc2UgdGhlIGxvY2FsZSBmYWxsYmFjayBtZWNoYW5pc20gd2lsbCBiZSBpbnZva2VkIHVudGlsIGEKKyAqIHBvcHVsYXRlZCBsb2NhbGUgaXMgZm91bmQgKHRoZSA8aT52YWxpZDwvaT4gbG9jYWxlKS4gIEZ1cnRoZXJtb3JlLAorICogZXZlbiB3aGVuIGEgcG9wdWxhdGVkIGxvY2FsZSBpcyBmb3VuZCAodGhlIDxpPnZhbGlkPC9pPiBsb2NhbGUpLAorICogZnVydGhlciBmYWxsYmFjayBtYXkgYmUgcmVxdWlyZWQgdG8gcmVhY2ggYSBsb2NhbGUgY29udGFpbmluZyB0aGUKKyAqIHNwZWNpZmljIGRhdGEgcmVxdWlyZWQgYnkgdGhlIHNlcnZpY2UgKHRoZSA8aT5hY3R1YWw8L2k+IGxvY2FsZSkuCisgKgorICogPHA+VUxvY2FsZSBwZXJmb3JtcyA8Yj4nbm9ybWFsaXphdGlvbic8L2I+IGFuZCA8Yj4nY2Fub25pY2FsaXphdGlvbic8L2I+IG9mIGxvY2FsZSBpZHMuCisgKiBOb3JtYWxpemF0aW9uICdjbGVhbnMgdXAnIElDVSBsb2NhbGUgaWRzIGFzIGZvbGxvd3M6CisgKiA8dWw+CisgKiA8bGk+bGFuZ3VhZ2UsIHNjcmlwdCwgY291bnRyeSwgdmFyaWFudCwgYW5kIGtleXdvcmRzIGFyZSBwcm9wZXJseSBjYXNlZDxicj4KKyAqIChsb3dlciwgdGl0bGUsIHVwcGVyLCB1cHBlciwgYW5kIGxvd2VyIGNhc2UgcmVzcGVjdGl2ZWx5KTwvbGk+CisgKiA8bGk+aHlwaGVucyB1c2VkIGFzIHNlcGFyYXRvcnMgYXJlIGNvbnZlcnRlZCB0byB1bmRlcnNjb3JlczwvbGk+CisgKiA8bGk+dGhyZWUtbGV0dGVyIGxhbmd1YWdlIGFuZCBjb3VudHJ5IGlkcyBhcmUgY29udmVydGVkIHRvIHR3by1sZXR0ZXIKKyAqIGVxdWl2YWxlbnRzIHdoZXJlIGF2YWlsYWJsZTwvbGk+CisgKiA8bGk+c3Vycm91bmRpbmcgc3BhY2VzIGFyZSByZW1vdmVkIGZyb20ga2V5d29yZHMgYW5kIHZhbHVlczwvbGk+CisgKiA8bGk+aWYgdGhlcmUgYXJlIG11bHRpcGxlIGtleXdvcmRzLCB0aGV5IGFyZSBwdXQgaW4gc29ydGVkIG9yZGVyPC9saT4KKyAqIDwvdWw+CisgKiBDYW5vbmljYWxpemF0aW9uIGFkZGl0aW9uYWxseSBwZXJmb3JtcyB0aGUgZm9sbG93aW5nOgorICogPHVsPgorICogPGxpPlBPU0lYIGlkcyBhcmUgY29udmVydGVkIHRvIElDVSBmb3JtYXQgSURzPC9saT4KKyAqIDxsaT4nZ3JhbmRmYXRoZXJlZCcgMzA2NiBpZHMgYXJlIGNvbnZlcnRlZCB0byBJQ1Ugc3RhbmRhcmQgZm9ybTwvbGk+CisgKiA8bGk+J1BSRUVVUk8nIGFuZCAnRVVSTycgdmFyaWFudHMgYXJlIGNvbnZlcnRlZCB0byBjdXJyZW5jeSBrZXl3b3JkIGZvcm0sIHdpdGggdGhlIGN1cnJlbmN5CisgKiBpZCBhcHByb3ByaWF0ZSB0byB0aGUgY291bnRyeSBvZiB0aGUgbG9jYWxlIChmb3IgUFJFRVVSTykgb3IgRVVSIChmb3IgRVVSTykuCisgKiA8L3VsPgorICogQWxsIFVMb2NhbGUgY29uc3RydWN0b3JzIGF1dG9tYXRpY2FsbHkgbm9ybWFsaXplIHRoZSBsb2NhbGUgaWQuICBUbyBoYW5kbGUKKyAqIFBPU0lYIGlkcywgPGNvZGU+Y2Fub25pY2FsaXplPC9jb2RlPiBjYW4gYmUgY2FsbGVkIHRvIGNvbnZlcnQgdGhlIGlkCisgKiB0byBjYW5vbmljYWwgZm9ybSwgb3IgdGhlIDxjb2RlPmNhbm9uaWNhbEluc3RhbmNlPC9jb2RlPiBmYWN0b3J5IG1ldGhvZAorICogY2FuIGJlIGNhbGxlZC48L3A+CisgKgorICogPHA+VGhpcyBjbGFzcyBwcm92aWRlcyBzZWxlY3RvcnMge0BsaW5rICNWQUxJRF9MT0NBTEV9IGFuZCB7QGxpbmsKKyAqICNBQ1RVQUxfTE9DQUxFfSBpbnRlbmRlZCBmb3IgdXNlIGluIG1ldGhvZHMgbmFtZWQKKyAqIDx0dD5nZXRMb2NhbGUoKTwvdHQ+LiAgVGhlc2UgbWV0aG9kcyBleGlzdCBpbiBzZXZlcmFsIElDVSBjbGFzc2VzLAorICogaW5jbHVkaW5nIHtAbGluayBjb20uaWJtLmljdS51dGlsLkNhbGVuZGFyfSwge0BsaW5rCisgKiBjb20uaWJtLmljdS51dGlsLkN1cnJlbmN5fSwge0BsaW5rIGNvbS5pYm0uaWN1LnRleHQuVUZvcm1hdH0sCisgKiB7QGxpbmsgY29tLmlibS5pY3UudGV4dC5CcmVha0l0ZXJhdG9yfSwge0BsaW5rCisgKiBjb20uaWJtLmljdS50ZXh0LkNvbGxhdG9yfSwge0BsaW5rCisgKiBjb20uaWJtLmljdS50ZXh0LkRhdGVGb3JtYXRTeW1ib2xzfSwgYW5kIHtAbGluaworICogY29tLmlibS5pY3UudGV4dC5EZWNpbWFsRm9ybWF0U3ltYm9sc30gYW5kIHRoZWlyIHN1YmNsYXNzZXMsIGlmCisgKiBhbnkuICBPbmNlIGFuIG9iamVjdCBvZiBvbmUgb2YgdGhlc2UgY2xhc3NlcyBoYXMgYmVlbiBjcmVhdGVkLAorICogPHR0PmdldExvY2FsZSgpPC90dD4gbWF5IGJlIGNhbGxlZCBvbiBpdCB0byBkZXRlcm1pbmUgdGhlIHZhbGlkIGFuZAorICogYWN0dWFsIGxvY2FsZSBhcnJpdmVkIGF0IGR1cmluZyB0aGUgb2JqZWN0J3MgY29uc3RydWN0aW9uLgorICoKKyAqIDxwPk5vdGU6IFRoZSA8dHQ+Z2V0TG9jYWxlKCk8L3R0PiBtZXRob2Qgd2lsbCBiZSBpbXBsZW1lbnRlZCBpbiBJQ1UKKyAqIDMuMDsgSUNVIDIuOCBjb250YWlucyBhIHBhcnRpYWwgcHJldmlldyBpbXBsZW1lbnRhdGlvbi4gIFRoZQorICogPGk+YWN0dWFsPC9pPiBsb2NhbGUgaXMgcmV0dXJuZWQgY29ycmVjdGx5LCBidXQgdGhlIDxpPnZhbGlkPC9pPgorICogbG9jYWxlIGlzIG5vdCwgaW4gbW9zdCBjYXNlcy4KKyAqCisgKiBAc2VlIGphdmEudXRpbC5Mb2NhbGUKKyAqIEBhdXRob3Igd2VpdgorICogQGF1dGhvciBBbGFuIExpdQorICogQGF1dGhvciBSYW0gVmlzd2FuYWRoYQorICogQHN0YWJsZSBJQ1UgMi44IAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVUxvY2FsZSBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSB7CisgICAgLy8gdXNpbmcgc2VyaWFsdmVyIGZyb20gamRrMS40LjJfMDUKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAzNzE1MTc3NjcwMzUyMzA5MjE3TDsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGxhbmd1YWdlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBFTkdMSVNIID0gbmV3IFVMb2NhbGUoImVuIiwgTG9jYWxlLkVOR0xJU0gpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEZSRU5DSCA9IG5ldyBVTG9jYWxlKCJmciIsIExvY2FsZS5GUkVOQ0gpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEdFUk1BTiA9IG5ldyBVTG9jYWxlKCJkZSIsIExvY2FsZS5HRVJNQU4pOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIElUQUxJQU4gPSBuZXcgVUxvY2FsZSgiaXQiLCBMb2NhbGUuSVRBTElBTik7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgSkFQQU5FU0UgPSBuZXcgVUxvY2FsZSgiamEiLCBMb2NhbGUuSkFQQU5FU0UpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEtPUkVBTiA9IG5ldyBVTG9jYWxlKCJrbyIsIExvY2FsZS5LT1JFQU4pOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgbGFuZ3VhZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIENISU5FU0UgPSBuZXcgVUxvY2FsZSgiemgiLCBMb2NhbGUuQ0hJTkVTRSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgU0lNUExJRklFRF9DSElORVNFID0gbmV3IFVMb2NhbGUoInpoX0hhbnMiLCBMb2NhbGUuQ0hJTkVTRSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBsYW5ndWFnZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgVFJBRElUSU9OQUxfQ0hJTkVTRSA9IG5ldyBVTG9jYWxlKCJ6aF9IYW50IiwgTG9jYWxlLkNISU5FU0UpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEZSQU5DRSA9IG5ldyBVTG9jYWxlKCJmcl9GUiIsIExvY2FsZS5GUkFOQ0UpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEdFUk1BTlkgPSBuZXcgVUxvY2FsZSgiZGVfREUiLCBMb2NhbGUuR0VSTUFOWSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgSVRBTFkgPSBuZXcgVUxvY2FsZSgiaXRfSVQiLCBMb2NhbGUuSVRBTFkpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIEpBUEFOID0gbmV3IFVMb2NhbGUoImphX0pQIiwgTG9jYWxlLkpBUEFOKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBLT1JFQSA9IG5ldyBVTG9jYWxlKCJrb19LUiIsIExvY2FsZS5LT1JFQSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgQ0hJTkEgPSBuZXcgVUxvY2FsZSgiemhfSGFuc19DTiIsIExvY2FsZS5DSElOQSk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgUFJDID0gQ0hJTkE7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgVEFJV0FOID0gbmV3IFVMb2NhbGUoInpoX0hhbnRfVFciLCBMb2NhbGUuVEFJV0FOKTsKKworICAgIC8qKiAKKyAgICAgKiBVc2VmdWwgY29uc3RhbnQgZm9yIGNvdW50cnkvcmVnaW9uLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVUxvY2FsZSBVSyA9IG5ldyBVTG9jYWxlKCJlbl9HQiIsIExvY2FsZS5VSyk7CisKKyAgICAvKiogCisgICAgICogVXNlZnVsIGNvbnN0YW50IGZvciBjb3VudHJ5L3JlZ2lvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgVVMgPSBuZXcgVUxvY2FsZSgiZW5fVVMiLCBMb2NhbGUuVVMpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIENBTkFEQSA9IG5ldyBVTG9jYWxlKCJlbl9DQSIsIExvY2FsZS5DQU5BREEpOworCisgICAgLyoqIAorICAgICAqIFVzZWZ1bCBjb25zdGFudCBmb3IgY291bnRyeS9yZWdpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBVTG9jYWxlIENBTkFEQV9GUkVOQ0ggPSBuZXcgVUxvY2FsZSgiZnJfQ0EiLCBMb2NhbGUuQ0FOQURBX0ZSRU5DSCk7CisKKyAgICAvKioKKyAgICAgKiBIYW5keSBjb25zdGFudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRU1QVFlfU1RSSU5HID0gIiI7CisKKyAgICAvLyBVc2VkIGluIGJvdGggVUxvY2FsZSBhbmQgSURQYXJzZXIsIHNvIG1vdmVkIHVwIGhlcmUuCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBVTkRFUlNDT1JFICAgICAgICAgICAgPSAnXyc7CisKKyAgICAvLyBkZWZhdWx0IGVtcHR5IGxvY2FsZQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvY2FsZSBFTVBUWV9MT0NBTEUgPSBuZXcgTG9jYWxlKCIiLCAiIik7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcm9vdCBVTG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFVMb2NhbGUgUk9PVCA9IG5ldyBVTG9jYWxlKCJyb290IiwgRU1QVFlfTE9DQUxFKTsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBIYXNoTWFwIENBQ0hFID0gbmV3IEhhc2hNYXAoMjApOworICAgIHN0YXRpYyB7CisgICAgICAgIENBQ0hFLnB1dChFTVBUWV9MT0NBTEUsIFJPT1QpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkVOR0xJU0gsIEVOR0xJU0gpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkZSRU5DSCwgRlJFTkNIKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5HRVJNQU4sIEdFUk1BTik7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuSVRBTElBTiwgSVRBTElBTik7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuSkFQQU5FU0UsIEpBUEFORVNFKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5LT1JFQU4sIEtPUkVBTik7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuQ0hJTkVTRSwgQ0hJTkVTRSk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuU0lNUExJRklFRF9DSElORVNFLCBTSU1QTElGSUVEX0NISU5FU0UpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLlRSQURJVElPTkFMX0NISU5FU0UsIFRSQURJVElPTkFMX0NISU5FU0UpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkZSQU5DRSwgRlJBTkNFKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5HRVJNQU5ZLCBHRVJNQU5ZKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5JVEFMWSwgSVRBTFkpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkpBUEFOLCBKQVBBTik7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuS09SRUEsIEtPUkVBKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5DSElOQSwgQ0hJTkEpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLlRBSVdBTiwgVEFJV0FOKTsKKyAgICAgICAgQ0FDSEUucHV0KExvY2FsZS5VSywgVUspOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLlVTLCBVUyk7CisgICAgICAgIENBQ0hFLnB1dChMb2NhbGUuQ0FOQURBLCBDQU5BREEpOworICAgICAgICBDQUNIRS5wdXQoTG9jYWxlLkNBTkFEQV9GUkVOQ0gsIENBTkFEQV9GUkVOQ0gpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENhY2hlIHRoZSBsb2NhbGUuCisgICAgICovCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgTG9jYWxlIGxvY2FsZTsKKworICAgIC8qKgorICAgICAqIFRoZSByYXcgbG9jYWxlSUQgdGhhdCB3ZSB3ZXJlIHBhc3NlZCBpbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBsb2NhbGVJRDsKKworICAgIC8qKgorICAgICAqIFRhYmxlcyB1c2VkIGluIG5vcm1hbGl6aW5nIHBvcnRpb25zIG9mIHRoZSBpZC4KKyAgICAgKi8KKyAgICAvKiB0YWJsZXMgdXBkYXRlZCBwZXIgaHR0cDovL2xjd2ViLmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLyAKKyAgICAgICB0byBpbmNsdWRlIHRoZSByZXZpc2lvbnMgdXAgdG8gMjAwMS83LzI3ICpDV0IqLworICAgIC8qIFRoZSAzIGNoYXJhY3RlciBjb2RlcyBhcmUgdGhlIHRlcm1pbm9sb2d5IGNvZGVzIGxpa2UgUkZDIDMwNjYuICAKKyAgICAgICBUaGlzIGlzIGNvbXBhdGlibGUgd2l0aCBwcmlvciBJQ1UgY29kZXMgKi8KKyAgICAvKiAiaW4iICJpdyIgImppIiAianciICYgInNoIiBoYXZlIGJlZW4gd2l0aGRyYXduIGJ1dCBhcmUgc3RpbGwgaW4gCisgICAgICAgdGhlIHRhYmxlIGJ1dCBub3cgYXQgdGhlIGVuZCBvZiB0aGUgdGFibGUgYmVjYXVzZSAKKyAgICAgICAzIGNoYXJhY3RlciBjb2RlcyBhcmUgZHVwbGljYXRlcy4gIFRoaXMgYXZvaWRzIGJhZCBzZWFyY2hlcworICAgICAgIGdvaW5nIGZyb20gMyB0byAyIGNoYXJhY3RlciBjb2Rlcy4qLworICAgIC8qIFRoZSByYW5nZSBxYWEtcXR6IGlzIHJlc2VydmVkIGZvciBsb2NhbCB1c2UuICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfbGFuZ3VhZ2VzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9yZXBsYWNlbWVudExhbmd1YWdlczsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfb2Jzb2xldGVMYW5ndWFnZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX2xhbmd1YWdlczM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX29ic29sZXRlTGFuZ3VhZ2VzMzsKKworICAgIC8vIEF2b2lkIGluaXRpYWxpemluZyBsYW5ndWFnZXMgdGFibGVzIHVubGVzcyB3ZSBoYXZlIHRvLgorICAgIHByaXZhdGUgc3RhdGljIHZvaWQgaW5pdExhbmd1YWdlVGFibGVzKCkgeworICAgICAgICBpZiAoX2xhbmd1YWdlcyA9PSBudWxsKSB7CisKKyAgICAgICAgICAgIC8qIFRoaXMgbGlzdCBNVVNUIGJlIGluIHNvcnRlZCBvcmRlciwgYW5kIE1VU1QgY29udGFpbiB0aGUgdHdvLWxldHRlciBjb2RlcworICAgICAgICAgICAgICAgaWYgb25lIGV4aXN0cyBvdGhlcndpc2UgdXNlIHRoZSB0aHJlZSBsZXR0ZXIgY29kZSAqLworICAgICAgICAgICAgU3RyaW5nW10gdGVtcExhbmd1YWdlcyA9IHsKKyAgICAgICAgICAgICAgICAiYWEiLCAgImFiIiwgICJhY2UiLCAiYWNoIiwgImFkYSIsICJhZHkiLCAiYWUiLCAgImFmIiwgICJhZmEiLAorICAgICAgICAgICAgICAgICJhZmgiLCAiYWsiLCAgImFrayIsICJhbGUiLCAiYWxnIiwgImFtIiwgICJhbiIsICAiYW5nIiwgImFwYSIsCisgICAgICAgICAgICAgICAgImFyIiwgICJhcmMiLCAiYXJuIiwgImFycCIsICJhcnQiLCAiYXJ3IiwgImFzIiwgICJhc3QiLAorICAgICAgICAgICAgICAgICJhdGgiLCAiYXVzIiwgImF2IiwgICJhd2EiLCAiYXkiLCAgImF6IiwgICJiYSIsICAiYmFkIiwKKyAgICAgICAgICAgICAgICAiYmFpIiwgImJhbCIsICJiYW4iLCAiYmFzIiwgImJhdCIsICJiZSIsICAiYmVqIiwKKyAgICAgICAgICAgICAgICAiYmVtIiwgImJlciIsICJiZyIsICAiYmgiLCAgImJobyIsICJiaSIsICAiYmlrIiwgImJpbiIsCisgICAgICAgICAgICAgICAgImJsYSIsICJibSIsICAiYm4iLCAgImJudCIsICJibyIsICAiYnIiLCAgImJyYSIsICJicyIsCisgICAgICAgICAgICAgICAgImJ0ayIsICJidWEiLCAiYnVnIiwgImJ5biIsICJjYSIsICAiY2FkIiwgImNhaSIsICJjYXIiLCAiY2F1IiwKKyAgICAgICAgICAgICAgICAiY2UiLCAgImNlYiIsICJjZWwiLCAiY2giLCAgImNoYiIsICJjaGciLCAiY2hrIiwgImNobSIsCisgICAgICAgICAgICAgICAgImNobiIsICJjaG8iLCAiY2hwIiwgImNociIsICJjaHkiLCAiY21jIiwgImNvIiwgICJjb3AiLAorICAgICAgICAgICAgICAgICJjcGUiLCAiY3BmIiwgImNwcCIsICJjciIsICAiY3JoIiwgImNycCIsICJjcyIsICAiY3NiIiwgImN1IiwgICJjdXMiLAorICAgICAgICAgICAgICAgICJjdiIsICAiY3kiLCAgImRhIiwgICJkYWsiLCAiZGFyIiwgImRheSIsICJkZSIsICAiZGVsIiwgImRlbiIsCisgICAgICAgICAgICAgICAgImRnciIsICJkaW4iLCAiZG9pIiwgImRyYSIsICJkc2IiLCAiZHVhIiwgImR1bSIsICJkdiIsICAiZHl1IiwKKyAgICAgICAgICAgICAgICAiZHoiLCAgImVlIiwgICJlZmkiLCAiZWd5IiwgImVrYSIsICJlbCIsICAiZWx4IiwgImVuIiwKKyAgICAgICAgICAgICAgICAiZW5tIiwgImVvIiwgICJlcyIsICAiZXQiLCAgImV1IiwgICJld28iLCAiZmEiLAorICAgICAgICAgICAgICAgICJmYW4iLCAiZmF0IiwgImZmIiwgICJmaSIsICAiZml1IiwgImZqIiwgICJmbyIsICAiZm9uIiwKKyAgICAgICAgICAgICAgICAiZnIiLCAgImZybSIsICJmcm8iLCAiZnVyIiwgImZ5IiwgICJnYSIsICAiZ2FhIiwgImdheSIsCisgICAgICAgICAgICAgICAgImdiYSIsICJnZCIsICAiZ2VtIiwgImdleiIsICJnaWwiLCAiZ2wiLCAgImdtaCIsICJnbiIsCisgICAgICAgICAgICAgICAgImdvaCIsICJnb24iLCAiZ29yIiwgImdvdCIsICJncmIiLCAiZ3JjIiwgImd1IiwgICJndiIsCisgICAgICAgICAgICAgICAgImd3aSIsICJoYSIsICAiaGFpIiwgImhhdyIsICJoZSIsICAiaGkiLCAgImhpbCIsICJoaW0iLAorICAgICAgICAgICAgICAgICJoaXQiLCAiaG1uIiwgImhvIiwgICJociIsICAiaHNiIiwgImh0IiwgICJodSIsICAiaHVwIiwgImh5IiwgICJoeiIsCisgICAgICAgICAgICAgICAgImlhIiwgICJpYmEiLCAiaWQiLCAgImllIiwgICJpZyIsICAiaWkiLCAgImlqbyIsICJpayIsCisgICAgICAgICAgICAgICAgImlsbyIsICJpbmMiLCAiaW5lIiwgImluaCIsICJpbyIsICAiaXJhIiwgImlybyIsICJpcyIsICAiaXQiLAorICAgICAgICAgICAgICAgICJpdSIsICAiamEiLCAgImpibyIsICJqcHIiLCAianJiIiwgImp2IiwgICJrYSIsICAia2FhIiwgImthYiIsCisgICAgICAgICAgICAgICAgImthYyIsICJrYW0iLCAia2FyIiwgImthdyIsICJrYmQiLCAia2ciLCAgImtoYSIsICJraGkiLAorICAgICAgICAgICAgICAgICJraG8iLCAia2kiLCAgImtqIiwgICJrayIsICAia2wiLCAgImttIiwgICJrbWIiLCAia24iLAorICAgICAgICAgICAgICAgICJrbyIsICAia29rIiwgImtvcyIsICJrcGUiLCAia3IiLCAgImtyYyIsICJrcm8iLCAia3J1IiwgImtzIiwKKyAgICAgICAgICAgICAgICAia3UiLCAgImt1bSIsICJrdXQiLCAia3YiLCAgImt3IiwgICJreSIsICAibGEiLCAgImxhZCIsCisgICAgICAgICAgICAgICAgImxhaCIsICJsYW0iLCAibGIiLCAgImxleiIsICJsZyIsICAibGkiLCAgImxuIiwgICJsbyIsICAibG9sIiwKKyAgICAgICAgICAgICAgICAibG96IiwgImx0IiwgICJsdSIsICAibHVhIiwgImx1aSIsICJsdW4iLCAibHVvIiwgImx1cyIsCisgICAgICAgICAgICAgICAgImx2IiwgICJtYWQiLCAibWFnIiwgIm1haSIsICJtYWsiLCAibWFuIiwgIm1hcCIsICJtYXMiLAorICAgICAgICAgICAgICAgICJtZGYiLCAibWRyIiwgIm1lbiIsICJtZyIsICAibWdhIiwgIm1oIiwgICJtaSIsICAibWljIiwgIm1pbiIsCisgICAgICAgICAgICAgICAgIm1pcyIsICJtayIsICAibWtoIiwgIm1sIiwgICJtbiIsICAibW5jIiwgIm1uaSIsICJtbm8iLAorICAgICAgICAgICAgICAgICJtbyIsICAibW9oIiwgIm1vcyIsICJtciIsICAibXMiLCAgIm10IiwgICJtdWwiLCAibXVuIiwKKyAgICAgICAgICAgICAgICAibXVzIiwgIm13ciIsICJteSIsICAibXluIiwgIm15diIsICJuYSIsICAibmFoIiwgIm5haSIsICJuYXAiLAorICAgICAgICAgICAgICAgICJuYiIsICAibmQiLCAgIm5kcyIsICJuZSIsICAibmV3IiwgIm5nIiwgICJuaWEiLCAibmljIiwKKyAgICAgICAgICAgICAgICAibml1IiwgIm5sIiwgICJubiIsICAibm8iLCAgIm5vZyIsICJub24iLCAibnIiLCAgIm5zbyIsICJudWIiLAorICAgICAgICAgICAgICAgICJudiIsICAibndjIiwgIm55IiwgICJueW0iLCAibnluIiwgIm55byIsICJuemkiLCAib2MiLCAgIm9qIiwKKyAgICAgICAgICAgICAgICAib20iLCAgIm9yIiwgICJvcyIsICAib3NhIiwgIm90YSIsICJvdG8iLCAicGEiLCAgInBhYSIsCisgICAgICAgICAgICAgICAgInBhZyIsICJwYWwiLCAicGFtIiwgInBhcCIsICJwYXUiLCAicGVvIiwgInBoaSIsICJwaG4iLAorICAgICAgICAgICAgICAgICJwaSIsICAicGwiLCAgInBvbiIsICJwcmEiLCAicHJvIiwgInBzIiwgICJwdCIsICAicXUiLAorICAgICAgICAgICAgICAgICJyYWoiLCAicmFwIiwgInJhciIsICJybSIsICAicm4iLCAgInJvIiwgICJyb2EiLCAicm9tIiwKKyAgICAgICAgICAgICAgICAicnUiLCAgInJ1cCIsICJydyIsICAic2EiLCAgInNhZCIsICJzYWgiLCAic2FpIiwgInNhbCIsICJzYW0iLAorICAgICAgICAgICAgICAgICJzYXMiLCAic2F0IiwgInNjIiwgICJzY28iLCAic2QiLCAgInNlIiwgICJzZWwiLCAic2VtIiwKKyAgICAgICAgICAgICAgICAic2ciLCAgInNnYSIsICJzZ24iLCAic2huIiwgInNpIiwgICJzaWQiLCAic2lvIiwgInNpdCIsCisgICAgICAgICAgICAgICAgInNrIiwgICJzbCIsICAic2xhIiwgInNtIiwgICJzbWEiLCAic21pIiwgInNtaiIsICJzbW4iLAorICAgICAgICAgICAgICAgICJzbXMiLCAic24iLCAgInNuayIsICJzbyIsICAic29nIiwgInNvbiIsICJzcSIsICAic3IiLAorICAgICAgICAgICAgICAgICJzcnIiLCAic3MiLCAgInNzYSIsICJzdCIsICAic3UiLCAgInN1ayIsICJzdXMiLCAic3V4IiwKKyAgICAgICAgICAgICAgICAic3YiLCAgInN3IiwgICJzeXIiLCAidGEiLCAgInRhaSIsICJ0ZSIsICAidGVtIiwgInRlciIsCisgICAgICAgICAgICAgICAgInRldCIsICJ0ZyIsICAidGgiLCAgInRpIiwgICJ0aWciLCAidGl2IiwgInRrIiwgICJ0a2wiLAorICAgICAgICAgICAgICAgICJ0bCIsICAidGxoIiwgInRsaSIsICJ0bWgiLCAidG4iLCAgInRvIiwgICJ0b2ciLCAidHBpIiwgInRyIiwKKyAgICAgICAgICAgICAgICAidHMiLCAgInRzaSIsICJ0dCIsICAidHVtIiwgInR1cCIsICJ0dXQiLCAidHZsIiwgInR3IiwKKyAgICAgICAgICAgICAgICAidHkiLCAgInR5diIsICJ1ZG0iLCAidWciLCAgInVnYSIsICJ1ayIsICAidW1iIiwgInVuZCIsICJ1ciIsCisgICAgICAgICAgICAgICAgInV6IiwgICJ2YWkiLCAidmUiLCAgInZpIiwgICJ2byIsICAidm90IiwgIndhIiwgICJ3YWsiLAorICAgICAgICAgICAgICAgICJ3YWwiLCAid2FyIiwgIndhcyIsICJ3ZW4iLCAid28iLCAgInhhbCIsICJ4aCIsICAieWFvIiwgInlhcCIsCisgICAgICAgICAgICAgICAgInlpIiwgICJ5byIsICAieXBrIiwgInphIiwgICJ6YXAiLCAiemVuIiwgInpoIiwgICJ6bmQiLAorICAgICAgICAgICAgICAgICJ6dSIsICAienVuIiwgCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wUmVwbGFjZW1lbnRMYW5ndWFnZXMgPSB7CisgICAgICAgICAgICAgICAgImlkIiwgImhlIiwgInlpIiwgImp2IiwgInNyIiwgIm5iIiwvKiByZXBsYWNlbWVudCBsYW5ndWFnZSBjb2RlcyAqLworICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgU3RyaW5nW10gdGVtcE9ic29sZXRlTGFuZ3VhZ2VzID0geworICAgICAgICAgICAgICAgICJpbiIsICJpdyIsICJqaSIsICJqdyIsICJzaCIsICJubyIsICAgIC8qIG9ic29sZXRlIGxhbmd1YWdlIGNvZGVzICovICAgICAgICAgCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICAvKiBUaGlzIGxpc3QgTVVTVCBjb250YWluIGEgdGhyZWUtbGV0dGVyIGNvZGUgZm9yIGV2ZXJ5IHR3by1sZXR0ZXIgY29kZSBpbiB0aGUKKyAgICAgICAgICAgICAgIGxpc3QgYWJvdmUsIGFuZCB0aGV5IE1VU1QgbmUgaW4gdGhlIHNhbWUgb3JkZXIgKGkuZS4sIHRoZSBzYW1lIGxhbmd1YWdlIG11c3QKKyAgICAgICAgICAgICAgIGJlIGluIHRoZSBzYW1lIHBsYWNlIGluIGJvdGggbGlzdHMpISAqLworICAgICAgICAgICAgU3RyaW5nW10gdGVtcExhbmd1YWdlczMgPSB7CisgICAgICAgICAgICAgICAgLyoiYWEiLCAgImFiIiwgICJhY2UiLCAiYWNoIiwgImFkYSIsICJhZHkiLCAiYWUiLCAgImFmIiwgICJhZmEiLCAgICAqLworICAgICAgICAgICAgICAgICJhYXIiLCAiYWJrIiwgImFjZSIsICJhY2giLCAiYWRhIiwgImFkeSIsICJhdmUiLCAiYWZyIiwgImFmYSIsCisgICAgICAgICAgICAgICAgLyoiYWZoIiwgImFrIiwgICJha2siLCAiYWxlIiwgImFsZyIsICJhbSIsICAiYW4iLCAgImFuZyIsICJhcGEiLCAgICAqLworICAgICAgICAgICAgICAgICJhZmgiLCAiYWthIiwgImFrayIsICJhbGUiLCAiYWxnIiwgImFtaCIsICJhcmciLCAiYW5nIiwgImFwYSIsCisgICAgICAgICAgICAgICAgLyoiYXIiLCAgImFyYyIsICJhcm4iLCAiYXJwIiwgImFydCIsICJhcnciLCAiYXMiLCAgImFzdCIsICAgICovCisgICAgICAgICAgICAgICAgImFyYSIsICJhcmMiLCAiYXJuIiwgImFycCIsICJhcnQiLCAiYXJ3IiwgImFzbSIsICJhc3QiLAorICAgICAgICAgICAgICAgIC8qImF0aCIsICJhdXMiLCAiYXYiLCAgImF3YSIsICJheSIsICAiYXoiLCAgImJhIiwgICJiYWQiLCAgICAqLworICAgICAgICAgICAgICAgICJhdGgiLCAiYXVzIiwgImF2YSIsICJhd2EiLCAiYXltIiwgImF6ZSIsICJiYWsiLCAiYmFkIiwKKyAgICAgICAgICAgICAgICAvKiJiYWkiLCAiYmFsIiwgImJhbiIsICJiYXMiLCAiYmF0IiwgImJlIiwgICJiZWoiLCAgICAqLworICAgICAgICAgICAgICAgICJiYWkiLCAiYmFsIiwgImJhbiIsICJiYXMiLCAiYmF0IiwgImJlbCIsICJiZWoiLAorICAgICAgICAgICAgICAgIC8qImJlbSIsICJiZXIiLCAiYmciLCAgImJoIiwgICJiaG8iLCAiYmkiLCAgImJpayIsICJiaW4iLCAgICAqLworICAgICAgICAgICAgICAgICJiZW0iLCAiYmVyIiwgImJ1bCIsICJiaWgiLCAiYmhvIiwgImJpcyIsICJiaWsiLCAiYmluIiwKKyAgICAgICAgICAgICAgICAvKiJibGEiLCAiYm0iLCAgImJuIiwgICJibnQiLCAiYm8iLCAgImJyIiwgICJicmEiLCAiYnMiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiYmxhIiwgImJhbSIsICAiYmVuIiwgImJudCIsICJib2QiLCAiYnJlIiwgImJyYSIsICJib3MiLAorICAgICAgICAgICAgICAgIC8qImJ0ayIsICJidWEiLCAiYnVnIiwgImJ5biIsICJjYSIsICAiY2FkIiwgImNhaSIsICJjYXIiLCAiY2F1IiwgICAgKi8KKyAgICAgICAgICAgICAgICAiYnRrIiwgImJ1YSIsICJidWciLCAiYnluIiwgImNhdCIsICJjYWQiLCAiY2FpIiwgImNhciIsICJjYXUiLAorICAgICAgICAgICAgICAgIC8qImNlIiwgICJjZWIiLCAiY2VsIiwgImNoIiwgICJjaGIiLCAiY2hnIiwgImNoayIsICJjaG0iLCAgICAqLworICAgICAgICAgICAgICAgICJjaGUiLCAiY2ViIiwgImNlbCIsICJjaGEiLCAiY2hiIiwgImNoZyIsICJjaGsiLCAiY2htIiwKKyAgICAgICAgICAgICAgICAvKiJjaG4iLCAiY2hvIiwgImNocCIsICJjaHIiLCAiY2h5IiwgImNtYyIsICJjbyIsICAiY29wIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiY2huIiwgImNobyIsICJjaHAiLCAiY2hyIiwgImNoeSIsICJjbWMiLCAiY29zIiwgImNvcCIsCisgICAgICAgICAgICAgICAgLyoiY3BlIiwgImNwZiIsICJjcHAiLCAiY3IiLCAgImNyaCIsICJjcnAiLCAiY3MiLCAgImNzYiIsICJjdSIsICAiY3VzIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiY3BlIiwgImNwZiIsICJjcHAiLCAiY3JlIiwgImNyaCIsICJjcnAiLCAiY2VzIiwgImNzYiIsICJjaHUiLCAiY3VzIiwKKyAgICAgICAgICAgICAgICAvKiJjdiIsICAiY3kiLCAgImRhIiwgICJkYWsiLCAiZGFyIiwgImRheSIsICJkZSIsICAiZGVsIiwgImRlbiIsICAgICovCisgICAgICAgICAgICAgICAgImNodiIsICJjeW0iLCAiZGFuIiwgImRhayIsICJkYXIiLCAiZGF5IiwgImRldSIsICJkZWwiLCAiZGVuIiwKKyAgICAgICAgICAgICAgICAvKiJkZ3IiLCAiZGluIiwgImRvaSIsICJkcmEiLCAiZHNiIiwgImR1YSIsICJkdW0iLCAiZHYiLCAgImR5dSIsICAgICovCisgICAgICAgICAgICAgICAgImRnciIsICJkaW4iLCAiZG9pIiwgImRyYSIsICJkc2IiLCAiZHVhIiwgImR1bSIsICJkaXYiLCAiZHl1IiwKKyAgICAgICAgICAgICAgICAvKiJkeiIsICAiZWUiLCAgImVmaSIsICJlZ3kiLCAiZWthIiwgImVsIiwgICJlbHgiLCAiZW4iLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiZHpvIiwgImV3ZSIsICJlZmkiLCAiZWd5IiwgImVrYSIsICJlbGwiLCAiZWx4IiwgImVuZyIsCisgICAgICAgICAgICAgICAgLyoiZW5tIiwgImVvIiwgICJlcyIsICAiZXQiLCAgImV1IiwgICJld28iLCAiZmEiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiZW5tIiwgImVwbyIsICJzcGEiLCAiZXN0IiwgImV1cyIsICJld28iLCAiZmFzIiwKKyAgICAgICAgICAgICAgICAvKiJmYW4iLCAiZmF0IiwgImZmIiwgICJmaSIsICAiZml1IiwgImZqIiwgICJmbyIsICAiZm9uIiwgICAgKi8KKyAgICAgICAgICAgICAgICAiZmFuIiwgImZhdCIsICJmdWwiLCAiZmluIiwgImZpdSIsICJmaWoiLCAiZmFvIiwgImZvbiIsCisgICAgICAgICAgICAgICAgLyoiZnIiLCAgImZybSIsICJmcm8iLCAiZnVyIiwgImZ5IiwgICJnYSIsICAiZ2FhIiwgImdheSIsICAgICovCisgICAgICAgICAgICAgICAgImZyYSIsICJmcm0iLCAiZnJvIiwgImZ1ciIsICJmcnkiLCAiZ2xlIiwgImdhYSIsICJnYXkiLAorICAgICAgICAgICAgICAgIC8qImdiYSIsICJnZCIsICAiZ2VtIiwgImdleiIsICJnaWwiLCAiZ2wiLCAgImdtaCIsICJnbiIsICAgICAqLworICAgICAgICAgICAgICAgICJnYmEiLCAiZ2xhIiwgImdlbSIsICJnZXoiLCAiZ2lsIiwgImdsZyIsICJnbWgiLCAiZ3JuIiwKKyAgICAgICAgICAgICAgICAvKiJnb2giLCAiZ29uIiwgImdvciIsICJnb3QiLCAiZ3JiIiwgImdyYyIsICJndSIsICAiZ3YiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiZ29oIiwgImdvbiIsICJnb3IiLCAiZ290IiwgImdyYiIsICJncmMiLCAiZ3VqIiwgImdsdiIsCisgICAgICAgICAgICAgICAgLyoiZ3dpIiwgImhhIiwgICJoYWkiLCAiaGF3IiwgImhlIiwgICJoaSIsICAiaGlsIiwgImhpbSIsICAgICovCisgICAgICAgICAgICAgICAgImd3aSIsICJoYXUiLCAiaGFpIiwgImhhdyIsICJoZWIiLCAiaGluIiwgImhpbCIsICJoaW0iLAorICAgICAgICAgICAgICAgIC8qImhpdCIsICJobW4iLCAiaG8iLCAgImhyIiwgICJoc2IiLCAiaHQiLCAgImh1IiwgICJodXAiLCAiaHkiLCAgImh6IiwgICAgICovCisgICAgICAgICAgICAgICAgImhpdCIsICJobW4iLCAiaG1vIiwgImhydiIsICJoc2IiLCAiaGF0IiwgImh1biIsICJodXAiLCAiaHllIiwgImhlciIsCisgICAgICAgICAgICAgICAgLyoiaWEiLCAgImliYSIsICJpZCIsICAiaWUiLCAgImlnIiwgICJpaSIsICAiaWpvIiwgImlrIiwgICAgICovCisgICAgICAgICAgICAgICAgImluYSIsICJpYmEiLCAiaW5kIiwgImlsZSIsICJpYm8iLCAiaWlpIiwgImlqbyIsICJpcGsiLAorICAgICAgICAgICAgICAgIC8qImlsbyIsICJpbmMiLCAiaW5lIiwgImluaCIsICJpbyIsICAiaXJhIiwgImlybyIsICJpcyIsICAiaXQiLCAgICAgICovCisgICAgICAgICAgICAgICAgImlsbyIsICJpbmMiLCAiaW5lIiwgImluaCIsICJpZG8iLCAiaXJhIiwgImlybyIsICJpc2wiLCAiaXRhIiwKKyAgICAgICAgICAgICAgICAvKiJpdSIsICAiamEiLCAgImpibyIsICJqcHIiLCAianJiIiwgImp2IiwgICJrYSIsICAia2FhIiwgImthYiIsICAgKi8KKyAgICAgICAgICAgICAgICAiaWt1IiwgImpwbiIsICJqYm8iLCAianByIiwgImpyYiIsICJqYXciLCAia2F0IiwgImthYSIsICJrYWIiLAorICAgICAgICAgICAgICAgIC8qImthYyIsICJrYW0iLCAia2FyIiwgImthdyIsICJrYmQiLCAia2ciLCAgImtoYSIsICJraGkiLCAgICAqLworICAgICAgICAgICAgICAgICJrYWMiLCAia2FtIiwgImthciIsICJrYXciLCAia2JkIiwgImtvbiIsICJraGEiLCAia2hpIiwKKyAgICAgICAgICAgICAgICAvKiJraG8iLCAia2kiLCAgImtqIiwgICJrayIsICAia2wiLCAgImttIiwgICJrbWIiLCAia24iLCAgICAgKi8KKyAgICAgICAgICAgICAgICAia2hvIiwgImtpayIsICJrdWEiLCAia2F6IiwgImthbCIsICJraG0iLCAia21iIiwgImthbiIsCisgICAgICAgICAgICAgICAgLyoia28iLCAgImtvayIsICJrb3MiLCAia3BlIiwgImtyIiwgICJrcmMiLCAia3JvIiwgImtydSIsICJrcyIsICAgICAqLworICAgICAgICAgICAgICAgICJrb3IiLCAia29rIiwgImtvcyIsICJrcGUiLCAia2F1IiwgImtyYyIsICJrcm8iLCAia3J1IiwgImthcyIsCisgICAgICAgICAgICAgICAgLyoia3UiLCAgImt1bSIsICJrdXQiLCAia3YiLCAgImt3IiwgICJreSIsICAibGEiLCAgImxhZCIsICAgICovCisgICAgICAgICAgICAgICAgImt1ciIsICJrdW0iLCAia3V0IiwgImtvbSIsICJjb3IiLCAia2lyIiwgImxhdCIsICJsYWQiLAorICAgICAgICAgICAgICAgIC8qImxhaCIsICJsYW0iLCAibGIiLCAgImxleiIsICJsZyIsICAibGkiLCAgImxuIiwgICJsbyIsICAibG9sIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibGFoIiwgImxhbSIsICJsdHoiLCAibGV6IiwgImx1ZyIsICJsaW0iLCAibGluIiwgImxhbyIsICJsb2wiLAorICAgICAgICAgICAgICAgIC8qImxveiIsICJsdCIsICAibHUiLCAgImx1YSIsICJsdWkiLCAibHVuIiwgImx1byIsICJsdXMiLCAgICAqLworICAgICAgICAgICAgICAgICJsb3oiLCAibGl0IiwgImx1YiIsICJsdWEiLCAibHVpIiwgImx1biIsICJsdW8iLCAibHVzIiwKKyAgICAgICAgICAgICAgICAvKiJsdiIsICAibWFkIiwgIm1hZyIsICJtYWkiLCAibWFrIiwgIm1hbiIsICJtYXAiLCAibWFzIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibGF2IiwgIm1hZCIsICJtYWciLCAibWFpIiwgIm1hayIsICJtYW4iLCAibWFwIiwgIm1hcyIsCisgICAgICAgICAgICAgICAgLyoibWRmIiwgIm1kciIsICJtZW4iLCAibWciLCAgIm1nYSIsICJtaCIsICAibWkiLCAgIm1pYyIsICJtaW4iLCAgICAqLworICAgICAgICAgICAgICAgICJtZGYiLCAibWRyIiwgIm1lbiIsICJtbGciLCAibWdhIiwgIm1haCIsICJtcmkiLCAibWljIiwgIm1pbiIsCisgICAgICAgICAgICAgICAgLyoibWlzIiwgIm1rIiwgICJta2giLCAibWwiLCAgIm1uIiwgICJtbmMiLCAibW5pIiwgIm1ubyIsICAgICovCisgICAgICAgICAgICAgICAgIm1pcyIsICJta2QiLCAibWtoIiwgIm1hbCIsICJtb24iLCAibW5jIiwgIm1uaSIsICJtbm8iLAorICAgICAgICAgICAgICAgIC8qIm1vIiwgICJtb2giLCAibW9zIiwgIm1yIiwgICJtcyIsICAibXQiLCAgIm11bCIsICJtdW4iLCAgICAqLworICAgICAgICAgICAgICAgICJtb2wiLCAibW9oIiwgIm1vcyIsICJtYXIiLCAibXNhIiwgIm1sdCIsICJtdWwiLCAibXVuIiwKKyAgICAgICAgICAgICAgICAvKiJtdXMiLCAibXdyIiwgIm15IiwgICJteW4iLCAibXl2IiwgIm5hIiwgICJuYWgiLCAibmFpIiwgIm5hcCIsICAgICovCisgICAgICAgICAgICAgICAgIm11cyIsICJtd3IiLCAibXlhIiwgIm15biIsICJteXYiLCAibmF1IiwgIm5haCIsICJuYWkiLCAibmFwIiwKKyAgICAgICAgICAgICAgICAvKiJuYiIsICAibmQiLCAgIm5kcyIsICJuZSIsICAibmV3IiwgIm5nIiwgICJuaWEiLCAibmljIiwgICAgKi8KKyAgICAgICAgICAgICAgICAibm9iIiwgIm5kZSIsICJuZHMiLCAibmVwIiwgIm5ldyIsICJuZG8iLCAibmlhIiwgIm5pYyIsCisgICAgICAgICAgICAgICAgLyoibml1IiwgIm5sIiwgICJubiIsICAibm8iLCAgIm5vZyIsICJub24iLCAibnIiLCAgIm5zbyIsICJudWIiLCAgICAqLworICAgICAgICAgICAgICAgICJuaXUiLCAibmxkIiwgIm5ubyIsICJub3IiLCAibm9nIiwgIm5vbiIsICJuYmwiLCAibnNvIiwgIm51YiIsCisgICAgICAgICAgICAgICAgLyoibnYiLCAgIm53YyIsICJueSIsICAibnltIiwgIm55biIsICJueW8iLCAibnppIiwgIm9jIiwgICJvaiIsICAgICAqLworICAgICAgICAgICAgICAgICJuYXYiLCAibndjIiwgIm55YSIsICJueW0iLCAibnluIiwgIm55byIsICJuemkiLCAib2NpIiwgIm9qaSIsCisgICAgICAgICAgICAgICAgLyoib20iLCAgIm9yIiwgICJvcyIsICAib3NhIiwgIm90YSIsICJvdG8iLCAicGEiLCAgInBhYSIsICAgICovCisgICAgICAgICAgICAgICAgIm9ybSIsICJvcmkiLCAib3NzIiwgIm9zYSIsICJvdGEiLCAib3RvIiwgInBhbiIsICJwYWEiLAorICAgICAgICAgICAgICAgIC8qInBhZyIsICJwYWwiLCAicGFtIiwgInBhcCIsICJwYXUiLCAicGVvIiwgInBoaSIsICJwaG4iLCAgICAqLworICAgICAgICAgICAgICAgICJwYWciLCAicGFsIiwgInBhbSIsICJwYXAiLCAicGF1IiwgInBlbyIsICJwaGkiLCAicGhuIiwKKyAgICAgICAgICAgICAgICAvKiJwaSIsICAicGwiLCAgInBvbiIsICJwcmEiLCAicHJvIiwgInBzIiwgICJwdCIsICAicXUiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAicGxpIiwgInBvbCIsICJwb24iLCAicHJhIiwgInBybyIsICJwdXMiLCAicG9yIiwgInF1ZSIsCisgICAgICAgICAgICAgICAgLyoicmFqIiwgInJhcCIsICJyYXIiLCAicm0iLCAgInJuIiwgICJybyIsICAicm9hIiwgInJvbSIsICAgICovCisgICAgICAgICAgICAgICAgInJhaiIsICJyYXAiLCAicmFyIiwgInJvaCIsICJydW4iLCAicm9uIiwgInJvYSIsICJyb20iLAorICAgICAgICAgICAgICAgIC8qInJ1IiwgICJydXAiLCAicnciLCAgInNhIiwgICJzYWQiLCAic2FoIiwgInNhaSIsICJzYWwiLCAic2FtIiwgICAgKi8KKyAgICAgICAgICAgICAgICAicnVzIiwgInJ1cCIsICJraW4iLCAic2FuIiwgInNhZCIsICJzYWgiLCAic2FpIiwgInNhbCIsICJzYW0iLAorICAgICAgICAgICAgICAgIC8qInNhcyIsICJzYXQiLCAic2MiLCAgInNjbyIsICJzZCIsICAic2UiLCAgInNlbCIsICJzZW0iLCAgICAqLworICAgICAgICAgICAgICAgICJzYXMiLCAic2F0IiwgInNyZCIsICJzY28iLCAic25kIiwgInNtZSIsICJzZWwiLCAic2VtIiwKKyAgICAgICAgICAgICAgICAvKiJzZyIsICAic2dhIiwgInNnbiIsICJzaG4iLCAic2kiLCAgInNpZCIsICJzaW8iLCAic2l0IiwgICAgKi8KKyAgICAgICAgICAgICAgICAic2FnIiwgInNnYSIsICJzZ24iLCAic2huIiwgInNpbiIsICJzaWQiLCAic2lvIiwgInNpdCIsCisgICAgICAgICAgICAgICAgLyoic2siLCAgInNsIiwgICJzbGEiLCAic20iLCAgInNtYSIsICJzbWkiLCAic21qIiwgInNtbiIsICAgICovCisgICAgICAgICAgICAgICAgInNsayIsICJzbHYiLCAic2xhIiwgInNtbyIsICJzbWEiLCAic21pIiwgInNtaiIsICJzbW4iLAorICAgICAgICAgICAgICAgIC8qInNtcyIsICJzbiIsICAic25rIiwgInNvIiwgICJzb2ciLCAic29uIiwgInNxIiwgICJzciIsICAgICAqLworICAgICAgICAgICAgICAgICJzbXMiLCAic25hIiwgInNuayIsICJzb20iLCAic29nIiwgInNvbiIsICJzcWkiLCAic3JwIiwKKyAgICAgICAgICAgICAgICAvKiJzcnIiLCAic3MiLCAgInNzYSIsICJzdCIsICAic3UiLCAgInN1ayIsICJzdXMiLCAic3V4IiwgICAgKi8KKyAgICAgICAgICAgICAgICAic3JyIiwgInNzdyIsICJzc2EiLCAic290IiwgInN1biIsICJzdWsiLCAic3VzIiwgInN1eCIsCisgICAgICAgICAgICAgICAgLyoic3YiLCAgInN3IiwgICJzeXIiLCAidGEiLCAgInRhaSIsICJ0ZSIsICAidGVtIiwgInRlciIsICAgICovCisgICAgICAgICAgICAgICAgInN3ZSIsICJzd2EiLCAic3lyIiwgInRhbSIsICJ0YWkiLCAidGVsIiwgInRlbSIsICJ0ZXIiLAorICAgICAgICAgICAgICAgIC8qInRldCIsICJ0ZyIsICAidGgiLCAgInRpIiwgICJ0aWciLCAidGl2IiwgInRrIiwgICJ0a2wiLCAgICAqLworICAgICAgICAgICAgICAgICJ0ZXQiLCAidGdrIiwgInRoYSIsICJ0aXIiLCAidGlnIiwgInRpdiIsICJ0dWsiLCAidGtsIiwKKyAgICAgICAgICAgICAgICAvKiJ0bCIsICAidGxoIiwgInRsaSIsICJ0bWgiLCAidG4iLCAgInRvIiwgICJ0b2ciLCAidHBpIiwgInRyIiwgICAgICovCisgICAgICAgICAgICAgICAgInRnbCIsICJ0bGgiLCAidGxpIiwgInRtaCIsICJ0c24iLCAidG9uIiwgInRvZyIsICJ0cGkiLCAidHVyIiwKKyAgICAgICAgICAgICAgICAvKiJ0cyIsICAidHNpIiwgInR0IiwgICJ0dW0iLCAidHVwIiwgInR1dCIsICJ0dmwiLCAidHciLCAgICAgKi8KKyAgICAgICAgICAgICAgICAidHNvIiwgInRzaSIsICJ0YXQiLCAidHVtIiwgInR1cCIsICJ0dXQiLCAidHZsIiwgInR3aSIsCisgICAgICAgICAgICAgICAgLyoidHkiLCAgInR5diIsICJ1ZG0iLCAidWciLCAgInVnYSIsICJ1ayIsICAidW1iIiwgInVuZCIsICJ1ciIsICAgICAqLworICAgICAgICAgICAgICAgICJ0YWgiLCAidHl2IiwgInVkbSIsICJ1aWciLCAidWdhIiwgInVrciIsICJ1bWIiLCAidW5kIiwgInVyZCIsCisgICAgICAgICAgICAgICAgLyoidXoiLCAgInZhaSIsICJ2ZSIsICAidmkiLCAgInZvIiwgICJ2b3QiLCAid2EiLCAgIndhayIsICAgICovCisgICAgICAgICAgICAgICAgInV6YiIsICJ2YWkiLCAidmVuIiwgInZpZSIsICJ2b2wiLCAidm90IiwgIndsbiIsICJ3YWsiLAorICAgICAgICAgICAgICAgIC8qIndhbCIsICJ3YXIiLCAid2FzIiwgIndlbiIsICJ3byIsICAieGFsIiwgInhoIiwgICJ5YW8iLCAieWFwIiwgICAgKi8KKyAgICAgICAgICAgICAgICAid2FsIiwgIndhciIsICJ3YXMiLCAid2VuIiwgIndvbCIsICJ4YWwiLCAieGhvIiwgInlhbyIsICJ5YXAiLAorICAgICAgICAgICAgICAgIC8qInlpIiwgICJ5byIsICAieXBrIiwgInphIiwgICJ6YXAiLCAiemVuIiwgInpoIiwgICJ6bmQiLCAgICAqLworICAgICAgICAgICAgICAgICJ5aWQiLCAieW9yIiwgInlwayIsICJ6aGEiLCAiemFwIiwgInplbiIsICJ6aG8iLCAiem5kIiwKKyAgICAgICAgICAgICAgICAvKiJ6dSIsICAienVuIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAienVsIiwgInp1biIsICAKKyAgICAgICAgICAgIH07CisgICAgCisgICAgICAgICAgICBTdHJpbmdbXSB0ZW1wT2Jzb2xldGVMYW5ndWFnZXMzID0geworICAgICAgICAgICAgICAgIC8qICJpbiIsICAiaXciLCAgImppIiwgICJqdyIsICAic2giLCAqLworICAgICAgICAgICAgICAgICJpbmQiLCAiaGViIiwgInlpZCIsICJqYXciLCAic3JwIiwgCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKFVMb2NhbGUuY2xhc3MpIHsKKyAgICAgICAgICAgICAgICBpZiAoX2xhbmd1YWdlcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIF9sYW5ndWFnZXMgPSB0ZW1wTGFuZ3VhZ2VzOworICAgICAgICAgICAgICAgICAgICBfcmVwbGFjZW1lbnRMYW5ndWFnZXMgPSB0ZW1wUmVwbGFjZW1lbnRMYW5ndWFnZXM7CisgICAgICAgICAgICAgICAgICAgIF9vYnNvbGV0ZUxhbmd1YWdlcyA9IHRlbXBPYnNvbGV0ZUxhbmd1YWdlczsKKyAgICAgICAgICAgICAgICAgICAgX2xhbmd1YWdlczMgPSB0ZW1wTGFuZ3VhZ2VzMzsKKyAgICAgICAgICAgICAgICAgICAgX29ic29sZXRlTGFuZ3VhZ2VzMyA9IHRlbXBPYnNvbGV0ZUxhbmd1YWdlczM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX2NvdW50cmllczsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfZGVwcmVjYXRlZENvdW50cmllczsKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmdbXSBfcmVwbGFjZW1lbnRDb3VudHJpZXM7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW10gX29ic29sZXRlQ291bnRyaWVzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9jb3VudHJpZXMzOworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZ1tdIF9vYnNvbGV0ZUNvdW50cmllczM7ICAKKworICAgIC8vIEF2b2lkIGluaXRpYWxpemluZyBjb3VudHJ5IHRhYmxlcyB1bmxlc3Mgd2UgaGF2ZSB0by4KKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGluaXRDb3VudHJ5VGFibGVzKCkgeyAgICAKKyAgICAgICAgaWYgKF9jb3VudHJpZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgLyogWlIoWkFSKSBpcyBub3cgQ0QoQ09EKSBhbmQgRlgoRlhYKSBpcyBQUyhQU0UpIGFzIHBlcgorICAgICAgICAgICAgICAgaHR0cDovL3d3dy5ldmVydHlwZS5jb20vc3RhbmRhcmRzL2lzbzMxNjYvaXNvMzE2Ni0xLWVuLmh0bWwgCisgICAgICAgICAgICAgICBhZGRlZCBuZXcgY29kZXMga2VlcGluZyB0aGUgb2xkIG9uZXMgZm9yIGNvbXBhdGliaWxpdHkKKyAgICAgICAgICAgICAgIHVwZGF0ZWQgdG8gaW5jbHVkZSAxOTk5LzEyLzAzIHJldmlzaW9ucyAqQ1dCKi8KKyAgICAKKyAgICAgICAgICAgIC8qIFJPKFJPTSkgaXMgbm93IFJPKFJPVSkgYWNjb3JkaW5nIHRvIAorICAgICAgICAgICAgICAgaHR0cDovL3d3dy5pc28ub3JnL2lzby9lbi9wcm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEvMDN1cGRhdGVzLW9uLWlzby0zMTY2L25sdjNlLXJvdS5odG1sCisgICAgICAgICAgICAqLworICAgIAorICAgICAgICAgICAgLyogVGhpcyBsaXN0IE1VU1QgYmUgaW4gc29ydGVkIG9yZGVyLCBhbmQgTVVTVCBjb250YWluIG9ubHkgdHdvLWxldHRlciBjb2RlcyEgKi8KKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBDb3VudHJpZXMgPSB7CisgICAgICAgICAgICAgICAgIkFEIiwgICJBRSIsICAiQUYiLCAgIkFHIiwgICJBSSIsICAiQUwiLCAgIkFNIiwgICJBTiIsCisgICAgICAgICAgICAgICAgIkFPIiwgICJBUSIsICAiQVIiLCAgIkFTIiwgICJBVCIsICAiQVUiLCAgIkFXIiwgICJBWiIsCisgICAgICAgICAgICAgICAgIkJBIiwgICJCQiIsICAiQkQiLCAgIkJFIiwgICJCRiIsICAiQkciLCAgIkJIIiwgICJCSSIsCisgICAgICAgICAgICAgICAgIkJKIiwgICJCTSIsICAiQk4iLCAgIkJPIiwgICJCUiIsICAiQlMiLCAgIkJUIiwgICJCViIsCisgICAgICAgICAgICAgICAgIkJXIiwgICJCWSIsICAiQloiLCAgIkNBIiwgICJDQyIsICAiQ0QiLCAgIkNGIiwgICJDRyIsCisgICAgICAgICAgICAgICAgIkNIIiwgICJDSSIsICAiQ0siLCAgIkNMIiwgICJDTSIsICAiQ04iLCAgIkNPIiwgICJDUiIsCisgICAgICAgICAgICAgICAgIkNVIiwgICJDViIsICAiQ1giLCAgIkNZIiwgICJDWiIsICAiREUiLCAgIkRKIiwgICJESyIsCisgICAgICAgICAgICAgICAgIkRNIiwgICJETyIsICAiRFoiLCAgIkVDIiwgICJFRSIsICAiRUciLCAgIkVIIiwgICJFUiIsCisgICAgICAgICAgICAgICAgIkVTIiwgICJFVCIsICAiRkkiLCAgIkZKIiwgICJGSyIsICAiRk0iLCAgIkZPIiwgICJGUiIsCisgICAgICAgICAgICAgICAgIkdBIiwgICJHQiIsICAiR0QiLCAgIkdFIiwgICJHRiIsICAiR0giLCAgIkdJIiwgICJHTCIsCisgICAgICAgICAgICAgICAgIkdNIiwgICJHTiIsICAiR1AiLCAgIkdRIiwgICJHUiIsICAiR1MiLCAgIkdUIiwgICJHVSIsCisgICAgICAgICAgICAgICAgIkdXIiwgICJHWSIsICAiSEsiLCAgIkhNIiwgICJITiIsICAiSFIiLCAgIkhUIiwgICJIVSIsCisgICAgICAgICAgICAgICAgIklEIiwgICJJRSIsICAiSUwiLCAgIklOIiwgICJJTyIsICAiSVEiLCAgIklSIiwgICJJUyIsCisgICAgICAgICAgICAgICAgIklUIiwgICJKTSIsICAiSk8iLCAgIkpQIiwgICJLRSIsICAiS0ciLCAgIktIIiwgICJLSSIsCisgICAgICAgICAgICAgICAgIktNIiwgICJLTiIsICAiS1AiLCAgIktSIiwgICJLVyIsICAiS1kiLCAgIktaIiwgICJMQSIsCisgICAgICAgICAgICAgICAgIkxCIiwgICJMQyIsICAiTEkiLCAgIkxLIiwgICJMUiIsICAiTFMiLCAgIkxUIiwgICJMVSIsCisgICAgICAgICAgICAgICAgIkxWIiwgICJMWSIsICAiTUEiLCAgIk1DIiwgICJNRCIsICAiTUciLCAgIk1IIiwgICJNSyIsCisgICAgICAgICAgICAgICAgIk1MIiwgICJNTSIsICAiTU4iLCAgIk1PIiwgICJNUCIsICAiTVEiLCAgIk1SIiwgICJNUyIsCisgICAgICAgICAgICAgICAgIk1UIiwgICJNVSIsICAiTVYiLCAgIk1XIiwgICJNWCIsICAiTVkiLCAgIk1aIiwgICJOQSIsCisgICAgICAgICAgICAgICAgIk5DIiwgICJORSIsICAiTkYiLCAgIk5HIiwgICJOSSIsICAiTkwiLCAgIk5PIiwgICJOUCIsCisgICAgICAgICAgICAgICAgIk5SIiwgICJOVSIsICAiTloiLCAgIk9NIiwgICJQQSIsICAiUEUiLCAgIlBGIiwgICJQRyIsCisgICAgICAgICAgICAgICAgIlBIIiwgICJQSyIsICAiUEwiLCAgIlBNIiwgICJQTiIsICAiUFIiLCAgIlBTIiwgICJQVCIsCisgICAgICAgICAgICAgICAgIlBXIiwgICJQWSIsICAiUUEiLCAgIlJFIiwgICJSTyIsICAiUlUiLCAgIlJXIiwgICJTQSIsCisgICAgICAgICAgICAgICAgIlNCIiwgICJTQyIsICAiU0QiLCAgIlNFIiwgICJTRyIsICAiU0giLCAgIlNJIiwgICJTSiIsCisgICAgICAgICAgICAgICAgIlNLIiwgICJTTCIsICAiU00iLCAgIlNOIiwgICJTTyIsICAiU1IiLCAgIlNUIiwgICJTViIsCisgICAgICAgICAgICAgICAgIlNZIiwgICJTWiIsICAiVEMiLCAgIlREIiwgICJURiIsICAiVEciLCAgIlRIIiwgICJUSiIsCisgICAgICAgICAgICAgICAgIlRLIiwgICJUTCIsICAiVE0iLCAgIlROIiwgICJUTyIsICAiVFIiLCAgIlRUIiwgICJUViIsCisgICAgICAgICAgICAgICAgIlRXIiwgICJUWiIsICAiVUEiLCAgIlVHIiwgICJVTSIsICAiVVMiLCAgIlVZIiwgICJVWiIsCisgICAgICAgICAgICAgICAgIlZBIiwgICJWQyIsICAiVkUiLCAgIlZHIiwgICJWSSIsICAiVk4iLCAgIlZVIiwgICJXRiIsCisgICAgICAgICAgICAgICAgIldTIiwgICJZRSIsICAiWVQiLCAgIllVIiwgICJaQSIsICAiWk0iLCAgIlpXIiwgIAorICAgICAgICAgICAgfTsJCisKKyAgICAgICAgICAgIC8qIHRoaXMgdGFibGUgaXMgdXNlZCBmb3IgMyBsZXR0ZXIgY29kZXMgKi8KKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBPYnNvbGV0ZUNvdW50cmllcyA9IHsKKyAgICAgICAgICAgICAgICAiRlgiLCAgIlJPIiwgICJUUCIsICAiWlIiLCAgLyogb2Jzb2xldGUgY291bnRyeSBjb2RlcyAqLyAgICAgIAorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgU3RyaW5nW10gdGVtcERlcHJlY2F0ZWRDb3VudHJpZXMgPSB7CisgICAgICAgICAgICAgICAiQlUiLCAiRFkiLCAiRlgiLCAiSFYiLCAiTkgiLCAiUkgiLCAiVFAiLCAiWVUiLCAiWlIiIC8qIGRlcHJlY2F0ZWQgY291bnRyeSBsaXN0ICovCisgICAgICAgICAgICB9OworICAgICAgICAgICAgU3RyaW5nW10gdGVtcFJlcGxhY2VtZW50Q291bnRyaWVzID0geworICAgICAgICAgICAvKiAgIkJVIiwgIkRZIiwgIkZYIiwgIkhWIiwgIk5IIiwgIlJIIiwgIlRQIiwgIllVIiwgIlpSIiAqLworICAgICAgICAgICAgICAgIk1NIiwgIkJKIiwgIkZSIiwgIkJGIiwgIlZVIiwgIlpXIiwgIlRMIiwgIkNTIiwgIkNEIiwgICAvKiByZXBsYWNlbWVudCBjb3VudHJ5IGNvZGVzICovICAgICAgCisgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgLyogVGhpcyBsaXN0IE1VU1QgY29udGFpbiBhIHRocmVlLWxldHRlciBjb2RlIGZvciBldmVyeSB0d28tbGV0dGVyIGNvZGUgaW4KKyAgICAgICAgICAgICAgIHRoZSBhYm92ZSBsaXN0LCBhbmQgdGhleSBNVVNUIGJlIGxpc3RlZCBpbiB0aGUgc2FtZSBvcmRlciEgKi8KKyAgICAgICAgICAgIFN0cmluZ1tdIHRlbXBDb3VudHJpZXMzID0geworICAgICAgICAgICAgICAgIC8qIkFEIiwgICJBRSIsICAiQUYiLCAgIkFHIiwgICJBSSIsICAiQUwiLCAgIkFNIiwgICJBTiIsICAgICAqLworICAgICAgICAgICAgICAgICJBTkQiLCAiQVJFIiwgIkFGRyIsICJBVEciLCAiQUlBIiwgIkFMQiIsICJBUk0iLCAiQU5UIiwKKyAgICAgICAgICAgICAgICAvKiJBTyIsICAiQVEiLCAgIkFSIiwgICJBUyIsICAiQVQiLCAgIkFVIiwgICJBVyIsICAiQVoiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQUdPIiwgIkFUQSIsICJBUkciLCAiQVNNIiwgIkFVVCIsICJBVVMiLCAiQUJXIiwgIkFaRSIsCisgICAgICAgICAgICAgICAgLyoiQkEiLCAgIkJCIiwgICJCRCIsICAiQkUiLCAgIkJGIiwgICJCRyIsICAiQkgiLCAgIkJJIiwgICAgICovCisgICAgICAgICAgICAgICAgIkJJSCIsICJCUkIiLCAiQkdEIiwgIkJFTCIsICJCRkEiLCAiQkdSIiwgIkJIUiIsICJCREkiLAorICAgICAgICAgICAgICAgIC8qIkJKIiwgICJCTSIsICAiQk4iLCAgIkJPIiwgICJCUiIsICAiQlMiLCAgIkJUIiwgICJCViIsICAgICAqLworICAgICAgICAgICAgICAgICJCRU4iLCAiQk1VIiwgIkJSTiIsICJCT0wiLCAiQlJBIiwgIkJIUyIsICJCVE4iLCAiQlZUIiwKKyAgICAgICAgICAgICAgICAvKiJCVyIsICAiQlkiLCAgIkJaIiwgICJDQSIsICAiQ0MiLCAgIkNEIiwgICJDRiIsICAiQ0ciLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiQldBIiwgIkJMUiIsICJCTFoiLCAiQ0FOIiwgIkNDSyIsICJDT0QiLCAiQ0FGIiwgIkNPRyIsCisgICAgICAgICAgICAgICAgLyoiQ0giLCAgIkNJIiwgICJDSyIsICAiQ0wiLCAgIkNNIiwgICJDTiIsICAiQ08iLCAgIkNSIiwgICAgICovCisgICAgICAgICAgICAgICAgIkNIRSIsICJDSVYiLCAiQ09LIiwgIkNITCIsICJDTVIiLCAiQ0hOIiwgIkNPTCIsICJDUkkiLAorICAgICAgICAgICAgICAgIC8qIkNVIiwgICJDViIsICAiQ1giLCAgIkNZIiwgICJDWiIsICAiREUiLCAgIkRKIiwgICJESyIsICAgICAqLworICAgICAgICAgICAgICAgICJDVUIiLCAiQ1BWIiwgIkNYUiIsICJDWVAiLCAiQ1pFIiwgIkRFVSIsICJESkkiLCAiRE5LIiwKKyAgICAgICAgICAgICAgICAvKiJETSIsICAiRE8iLCAgIkRaIiwgICJFQyIsICAiRUUiLCAgIkVHIiwgICJFSCIsICAiRVIiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiRE1BIiwgIkRPTSIsICJEWkEiLCAiRUNVIiwgIkVTVCIsICJFR1kiLCAiRVNIIiwgIkVSSSIsCisgICAgICAgICAgICAgICAgLyoiRVMiLCAgIkVUIiwgICJGSSIsICAiRkoiLCAgIkZLIiwgICJGTSIsICAiRk8iLCAgIkZSIiwgICAgICovCisgICAgICAgICAgICAgICAgIkVTUCIsICJFVEgiLCAiRklOIiwgIkZKSSIsICJGTEsiLCAiRlNNIiwgIkZSTyIsICJGUkEiLAorICAgICAgICAgICAgICAgIC8qIkdBIiwgICJHQiIsICAiR0QiLCAgIkdFIiwgICJHRiIsICAiR0giLCAgIkdJIiwgICJHTCIsICAgICAqLworICAgICAgICAgICAgICAgICJHQUIiLCAiR0JSIiwgIkdSRCIsICJHRU8iLCAiR1VGIiwgIkdIQSIsICJHSUIiLCAiR1JMIiwKKyAgICAgICAgICAgICAgICAvKiJHTSIsICAiR04iLCAgIkdQIiwgICJHUSIsICAiR1IiLCAgIkdTIiwgICJHVCIsICAiR1UiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiR01CIiwgIkdJTiIsICJHTFAiLCAiR05RIiwgIkdSQyIsICJTR1MiLCAiR1RNIiwgIkdVTSIsCisgICAgICAgICAgICAgICAgLyoiR1ciLCAgIkdZIiwgICJISyIsICAiSE0iLCAgIkhOIiwgICJIUiIsICAiSFQiLCAgIkhVIiwgICAgICovCisgICAgICAgICAgICAgICAgIkdOQiIsICJHVVkiLCAiSEtHIiwgIkhNRCIsICJITkQiLCAiSFJWIiwgIkhUSSIsICJIVU4iLAorICAgICAgICAgICAgICAgIC8qIklEIiwgICJJRSIsICAiSUwiLCAgIklOIiwgICJJTyIsICAiSVEiLCAgIklSIiwgICJJUyIsICAgICAqLworICAgICAgICAgICAgICAgICJJRE4iLCAiSVJMIiwgIklTUiIsICJJTkQiLCAiSU9UIiwgIklSUSIsICJJUk4iLCAiSVNMIiwKKyAgICAgICAgICAgICAgICAvKiJJVCIsICAiSk0iLCAgIkpPIiwgICJKUCIsICAiS0UiLCAgIktHIiwgICJLSCIsICAiS0kiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiSVRBIiwgIkpBTSIsICJKT1IiLCAiSlBOIiwgIktFTiIsICJLR1oiLCAiS0hNIiwgIktJUiIsCisgICAgICAgICAgICAgICAgLyoiS00iLCAgIktOIiwgICJLUCIsICAiS1IiLCAgIktXIiwgICJLWSIsICAiS1oiLCAgIkxBIiwgICAgICovCisgICAgICAgICAgICAgICAgIkNPTSIsICJLTkEiLCAiUFJLIiwgIktPUiIsICJLV1QiLCAiQ1lNIiwgIktBWiIsICJMQU8iLAorICAgICAgICAgICAgICAgIC8qIkxCIiwgICJMQyIsICAiTEkiLCAgIkxLIiwgICJMUiIsICAiTFMiLCAgIkxUIiwgICJMVSIsICAgICAqLworICAgICAgICAgICAgICAgICJMQk4iLCAiTENBIiwgIkxJRSIsICJMS0EiLCAiTEJSIiwgIkxTTyIsICJMVFUiLCAiTFVYIiwKKyAgICAgICAgICAgICAgICAvKiJMViIsICAiTFkiLCAgIk1BIiwgICJNQyIsICAiTUQiLCAgIk1HIiwgICJNSCIsICAiTUsiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiTFZBIiwgIkxCWSIsICJNQVIiLCAiTUNPIiwgIk1EQSIsICJNREciLCAiTUhMIiwgIk1LRCIsCisgICAgICAgICAgICAgICAgLyoiTUwiLCAgIk1NIiwgICJNTiIsICAiTU8iLCAgIk1QIiwgICJNUSIsICAiTVIiLCAgIk1TIiwgICAgICovCisgICAgICAgICAgICAgICAgIk1MSSIsICJNTVIiLCAiTU5HIiwgIk1BQyIsICJNTlAiLCAiTVRRIiwgIk1SVCIsICJNU1IiLAorICAgICAgICAgICAgICAgIC8qIk1UIiwgICJNVSIsICAiTVYiLCAgIk1XIiwgICJNWCIsICAiTVkiLCAgIk1aIiwgICJOQSIsICAgICAqLworICAgICAgICAgICAgICAgICJNTFQiLCAiTVVTIiwgIk1EViIsICJNV0kiLCAiTUVYIiwgIk1ZUyIsICJNT1oiLCAiTkFNIiwKKyAgICAgICAgICAgICAgICAvKiJOQyIsICAiTkUiLCAgIk5GIiwgICJORyIsICAiTkkiLCAgIk5MIiwgICJOTyIsICAiTlAiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiTkNMIiwgIk5FUiIsICJORksiLCAiTkdBIiwgIk5JQyIsICJOTEQiLCAiTk9SIiwgIk5QTCIsCisgICAgICAgICAgICAgICAgLyoiTlIiLCAgIk5VIiwgICJOWiIsICAiT00iLCAgIlBBIiwgICJQRSIsICAiUEYiLCAgIlBHIiwgICAgICovCisgICAgICAgICAgICAgICAgIk5SVSIsICJOSVUiLCAiTlpMIiwgIk9NTiIsICJQQU4iLCAiUEVSIiwgIlBZRiIsICJQTkciLAorICAgICAgICAgICAgICAgIC8qIlBIIiwgICJQSyIsICAiUEwiLCAgIlBNIiwgICJQTiIsICAiUFIiLCAgIlBTIiwgICJQVCIsICAgICAqLworICAgICAgICAgICAgICAgICJQSEwiLCAiUEFLIiwgIlBPTCIsICJTUE0iLCAiUENOIiwgIlBSSSIsICJQU0UiLCAiUFJUIiwKKyAgICAgICAgICAgICAgICAvKiJQVyIsICAiUFkiLCAgIlFBIiwgICJSRSIsICAiUk8iLCAgIlJVIiwgICJSVyIsICAiU0EiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiUExXIiwgIlBSWSIsICJRQVQiLCAiUkVVIiwgIlJPVSIsICJSVVMiLCAiUldBIiwgIlNBVSIsCisgICAgICAgICAgICAgICAgLyoiU0IiLCAgIlNDIiwgICJTRCIsICAiU0UiLCAgIlNHIiwgICJTSCIsICAiU0kiLCAgIlNKIiwgICAgICovCisgICAgICAgICAgICAgICAgIlNMQiIsICJTWUMiLCAiU0ROIiwgIlNXRSIsICJTR1AiLCAiU0hOIiwgIlNWTiIsICJTSk0iLAorICAgICAgICAgICAgICAgIC8qIlNLIiwgICJTTCIsICAiU00iLCAgIlNOIiwgICJTTyIsICAiU1IiLCAgIlNUIiwgICJTViIsICAgICAqLworICAgICAgICAgICAgICAgICJTVksiLCAiU0xFIiwgIlNNUiIsICJTRU4iLCAiU09NIiwgIlNVUiIsICJTVFAiLCAiU0xWIiwKKyAgICAgICAgICAgICAgICAvKiJTWSIsICAiU1oiLCAgIlRDIiwgICJURCIsICAiVEYiLCAgIlRHIiwgICJUSCIsICAiVEoiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiU1lSIiwgIlNXWiIsICJUQ0EiLCAiVENEIiwgIkFURiIsICJUR08iLCAiVEhBIiwgIlRKSyIsCisgICAgICAgICAgICAgICAgLyoiVEsiLCAgIlRMIiwgICJUTSIsICAiVE4iLCAgIlRPIiwgICJUUiIsICAiVFQiLCAgIlRWIiwgICAgICovCisgICAgICAgICAgICAgICAgIlRLTCIsICJUTFMiLCAiVEtNIiwgIlRVTiIsICJUT04iLCAiVFVSIiwgIlRUTyIsICJUVVYiLAorICAgICAgICAgICAgICAgIC8qIlRXIiwgICJUWiIsICAiVUEiLCAgIlVHIiwgICJVTSIsICAiVVMiLCAgIlVZIiwgICJVWiIsICAgICAqLworICAgICAgICAgICAgICAgICJUV04iLCAiVFpBIiwgIlVLUiIsICJVR0EiLCAiVU1JIiwgIlVTQSIsICJVUlkiLCAiVVpCIiwKKyAgICAgICAgICAgICAgICAvKiJWQSIsICAiVkMiLCAgIlZFIiwgICJWRyIsICAiVkkiLCAgIlZOIiwgICJWVSIsICAiV0YiLCAgICAgKi8KKyAgICAgICAgICAgICAgICAiVkFUIiwgIlZDVCIsICJWRU4iLCAiVkdCIiwgIlZJUiIsICJWTk0iLCAiVlVUIiwgIldMRiIsCisgICAgICAgICAgICAgICAgLyoiV1MiLCAgIllFIiwgICJZVCIsICAiWVUiLCAgIlpBIiwgICJaTSIsICAiWlciLCAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgIldTTSIsICJZRU0iLCAiTVlUIiwgIllVRyIsICJaQUYiLCAiWk1CIiwgIlpXRSIsCisgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgU3RyaW5nW10gdGVtcE9ic29sZXRlQ291bnRyaWVzMyA9IHsKKyAgICAgICAgICAgICAgICAvKiJGWCIsICAiUk8iLCAgIlRQIiwgICJaUiIsICAgKi8KKyAgICAgICAgICAgICAgICAiRlhYIiwgIlJPTSIsICJUTVAiLCAiWkFSIiwgICAgCisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBzeW5jaHJvbml6ZWQgKFVMb2NhbGUuY2xhc3MpIHsKKyAgICAgICAgICAgICAgICBpZiAoX2NvdW50cmllcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIF9jb3VudHJpZXMgPSB0ZW1wQ291bnRyaWVzOworICAgICAgICAgICAgICAgICAgICBfZGVwcmVjYXRlZENvdW50cmllcyA9IHRlbXBEZXByZWNhdGVkQ291bnRyaWVzOworICAgICAgICAgICAgICAgICAgICBfcmVwbGFjZW1lbnRDb3VudHJpZXMgPSB0ZW1wUmVwbGFjZW1lbnRDb3VudHJpZXM7CisgICAgICAgICAgICAgICAgICAgIF9vYnNvbGV0ZUNvdW50cmllcyA9IHRlbXBPYnNvbGV0ZUNvdW50cmllczsKKyAgICAgICAgICAgICAgICAgICAgX2NvdW50cmllczMgPSB0ZW1wQ291bnRyaWVzMzsKKyAgICAgICAgICAgICAgICAgICAgX29ic29sZXRlQ291bnRyaWVzMyA9IHRlbXBPYnNvbGV0ZUNvdW50cmllczM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nW11bXSBfdmFyaWFudHNUb0tleXdvcmRzOworCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBpbml0VmFyaWFudHNUYWJsZSgpIHsKKyAgICAgICAgaWYgKF92YXJpYW50c1RvS2V5d29yZHMgPT0gbnVsbCkgeworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBUaGlzIHRhYmxlIGxpc3RzIHBhaXJzIG9mIGxvY2FsZSBpZHMgZm9yIGNhbm9uaWNhbGl6YXRpb24uICBUaGUKKyAgICAgICAgICAgICAqIFRoZSBmaXJzdCBpdGVtIGlzIHRoZSBub3JtYWxpemVkIGlkLCB0aGUgc2Vjb25kIGl0ZW0gaXMgdGhlCisgICAgICAgICAgICAgKiBjYW5vbmljYWxpemVkIGlkLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBTdHJpbmdbXVtdIHRlbXBWYXJpYW50c1RvS2V5d29yZHMgPSB7CisvLyAgICAgICAgICAgICAgeyBFTVBUWV9TVFJJTkcsICAgICAiZW5fVVNfUE9TSVgiLCBudWxsLCBudWxsIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgIkMiLCAgICAgICAgICAgICAgImVuX1VTX1BPU0lYIiwgbnVsbCwgbnVsbCB9LCAvKiBQT1NJWCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiYXJ0X0xPSkJBTiIsICAgICAiamJvIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJhel9BWl9DWVJMIiwgICAgICJhel9DeXJsX0FaIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJhel9BWl9MQVROIiwgICAgICJhel9MYXRuX0FaIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJjYV9FU19QUkVFVVJPIiwgICJjYV9FUyIsICJjdXJyZW5jeSIsICJFU1AiIH0sCisgICAgICAgICAgICAgICAgeyAiY2VsX0dBVUxJU0giLCAgICAiY2VsX19HQVVMSVNIIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJkZV8xOTAxIiwgICAgICAgICJkZV9fMTkwMSIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiZGVfMTkwNiIsICAgICAgICAiZGVfXzE5MDYiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgImRlX19QSE9ORUJPT0siLCAgImRlIiwgImNvbGxhdGlvbiIsICJwaG9uZWJvb2siIH0sCisgICAgICAgICAgICAgICAgeyAiZGVfQVRfUFJFRVVSTyIsICAiZGVfQVQiLCAiY3VycmVuY3kiLCAiQVRTIiB9LAorICAgICAgICAgICAgICAgIHsgImRlX0RFX1BSRUVVUk8iLCAgImRlX0RFIiwgImN1cnJlbmN5IiwgIkRFTSIgfSwKKyAgICAgICAgICAgICAgICB7ICJkZV9MVV9QUkVFVVJPIiwgICJkZV9MVSIsICJjdXJyZW5jeSIsICJFVVIiIH0sCisgICAgICAgICAgICAgICAgeyAiZWxfR1JfUFJFRVVSTyIsICAiZWxfR1IiLCAiY3VycmVuY3kiLCAiR1JEIiB9LAorICAgICAgICAgICAgICAgIHsgImVuX0JPT05UIiwgICAgICAgImVuX19CT09OVCIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiZW5fU0NPVVNFIiwgICAgICAiZW5fX1NDT1VTRSIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiZW5fQkVfUFJFRVVSTyIsICAiZW5fQkUiLCAiY3VycmVuY3kiLCAiQkVGIiB9LAorICAgICAgICAgICAgICAgIHsgImVuX0lFX1BSRUVVUk8iLCAgImVuX0lFIiwgImN1cnJlbmN5IiwgIklFUCIgfSwKKyAgICAgICAgICAgICAgICB7ICJlc19fVFJBRElUSU9OQUwiLCAiZXMiLCAiY29sbGF0aW9uIiwgInRyYWRpdGlvbmFsIiB9LAorICAgICAgICAgICAgICAgIHsgImVzX0VTX1BSRUVVUk8iLCAgImVzX0VTIiwgImN1cnJlbmN5IiwgIkVTUCIgfSwKKyAgICAgICAgICAgICAgICB7ICJldV9FU19QUkVFVVJPIiwgICJldV9FUyIsICJjdXJyZW5jeSIsICJFU1AiIH0sCisgICAgICAgICAgICAgICAgeyAiZmlfRklfUFJFRVVSTyIsICAiZmlfRkkiLCAiY3VycmVuY3kiLCAiRklNIiB9LAorICAgICAgICAgICAgICAgIHsgImZyX0JFX1BSRUVVUk8iLCAgImZyX0JFIiwgImN1cnJlbmN5IiwgIkJFRiIgfSwKKyAgICAgICAgICAgICAgICB7ICJmcl9GUl9QUkVFVVJPIiwgICJmcl9GUiIsICJjdXJyZW5jeSIsICJGUkYiIH0sCisgICAgICAgICAgICAgICAgeyAiZnJfTFVfUFJFRVVSTyIsICAiZnJfTFUiLCAiY3VycmVuY3kiLCAiTFVGIiB9LAorICAgICAgICAgICAgICAgIHsgImdhX0lFX1BSRUVVUk8iLCAgImdhX0lFIiwgImN1cnJlbmN5IiwgIklFUCIgfSwKKyAgICAgICAgICAgICAgICB7ICJnbF9FU19QUkVFVVJPIiwgICJnbF9FUyIsICJjdXJyZW5jeSIsICJFU1AiIH0sCisgICAgICAgICAgICAgICAgeyAiaGlfX0RJUkVDVCIsICAgICAiaGkiLCAiY29sbGF0aW9uIiwgImRpcmVjdCIgfSwKKyAgICAgICAgICAgICAgICB7ICJpdF9JVF9QUkVFVVJPIiwgICJpdF9JVCIsICJjdXJyZW5jeSIsICJJVEwiIH0sCisgICAgICAgICAgICAgICAgeyAiamFfSlBfVFJBRElUSU9OQUwiLCAiamFfSlAiLCAiY2FsZW5kYXIiLCAiamFwYW5lc2UiIH0sCisvLyAgICAgICAgICAgICAgeyAibmJfTk9fTlkiLCAgICAgICAibm5fTk8iLCBudWxsLCBudWxsIH0sCisgICAgICAgICAgICAgICAgeyAibmxfQkVfUFJFRVVSTyIsICAibmxfQkUiLCAiY3VycmVuY3kiLCAiQkVGIiB9LAorICAgICAgICAgICAgICAgIHsgIm5sX05MX1BSRUVVUk8iLCAgIm5sX05MIiwgImN1cnJlbmN5IiwgIk5MRyIgfSwKKyAgICAgICAgICAgICAgICB7ICJwdF9QVF9QUkVFVVJPIiwgICJwdF9QVCIsICJjdXJyZW5jeSIsICJQVEUiIH0sCisgICAgICAgICAgICAgICAgeyAic2xfUk9aQUoiLCAgICAgICAic2xfX1JPWkFKIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJzcl9TUF9DWVJMIiwgICAgICJzcl9DeXJsX0NTIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJzcl9TUF9MQVROIiwgICAgICJzcl9MYXRuX0NTIiwgbnVsbCwgbnVsbCB9LCAvKiAuTkVUIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJzcl9ZVV9DWVJJTExJQyIsICJzcl9DeXJsX0NTIiwgbnVsbCwgbnVsbCB9LCAvKiBMaW51eCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAidXpfVVpfQ1lSSUxMSUMiLCAidXpfQ3lybF9VWiIsIG51bGwsIG51bGwgfSwgLyogTGludXggbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInV6X1VaX0NZUkwiLCAgICAgInV6X0N5cmxfVVoiLCBudWxsLCBudWxsIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInV6X1VaX0xBVE4iLCAgICAgInV6X0xhdG5fVVoiLCBudWxsLCBudWxsIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX0NIUyIsICAgICAgICAgInpoX0hhbnMiLCBudWxsLCBudWxsIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX0NIVCIsICAgICAgICAgInpoX0hhbnQiLCBudWxsLCBudWxsIH0sIC8qIC5ORVQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX0dBTiIsICAgICAgICAgInpoX19HQU4iLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX0dVT1lVIiwgICAgICAgInpoIiwgbnVsbCwgbnVsbCB9LCAvKiByZWdpc3RlcmVkIG5hbWUgKi8KKyAgICAgICAgICAgICAgICB7ICJ6aF9IQUtLQSIsICAgICAgICJ6aF9fSEFLS0EiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX01JTiIsICAgICAgICAgInpoX19NSU4iLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX01JTl9OQU4iLCAgICAgInpoX19NSU5OQU4iLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX1dVVSIsICAgICAgICAgInpoX19XVVUiLCBudWxsLCBudWxsIH0sIC8qIHJlZ2lzdGVyZWQgbmFtZSAqLworICAgICAgICAgICAgICAgIHsgInpoX1hJQU5HIiwgICAgICAgInpoX19YSUFORyIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAiemhfWVVFIiwgICAgICAgICAiemhfX1lVRSIsIG51bGwsIG51bGwgfSwgLyogcmVnaXN0ZXJlZCBuYW1lICovCisgICAgICAgICAgICAgICAgeyAidGhfVEhfVFJBRElUSU9OQUwiLCAidGhfVEgiLCAiY2FsZW5kYXIiLCAiYnVkZGhpc3QiIH0sCisgICAgICAgICAgICAgICAgeyAiemhfVFdfU1RST0tFIiwgICAiemhfVFciLCAiY29sbGF0aW9uIiwgInN0cm9rZSIgfSwKKyAgICAgICAgICAgICAgICB7ICJ6aF9fUElOWUlOIiwgICAgICJ6aCIsICJjb2xsYXRpb24iLCAicGlueWluIiB9CisgICAgICAgICAgICB9OworICAgIAorICAgICAgICAgICAgc3luY2hyb25pemVkIChVTG9jYWxlLmNsYXNzKSB7CisgICAgICAgICAgICAgICAgaWYgKF92YXJpYW50c1RvS2V5d29yZHMgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBfdmFyaWFudHNUb0tleXdvcmRzID0gdGVtcFZhcmlhbnRzVG9LZXl3b3JkczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcml2YXRlIGNvbnN0cnVjdG9yIHVzZWQgYnkgc3RhdGljIGluaXRpYWxpemVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVMb2NhbGUoU3RyaW5nIGxvY2FsZUlELCBMb2NhbGUgbG9jYWxlKSB7CisgICAgICAgIHRoaXMubG9jYWxlSUQgPSBsb2NhbGVJRDsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgVUxvY2FsZSBvYmplY3QgZnJvbSBhIHtAbGluayBqYXZhLnV0aWwuTG9jYWxlfS4KKyAgICAgKiBAcGFyYW0gbG9jIGEgSkRLIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgVUxvY2FsZShMb2NhbGUgbG9jKSB7CisgICAgICAgIHRoaXMubG9jYWxlSUQgPSBnZXROYW1lKGxvYy50b1N0cmluZygpKTsKKyAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2M7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgVUxvY2FsZSBvYmplY3QgZm9yIGEge0BsaW5rIGphdmEudXRpbC5Mb2NhbGV9LgorICAgICAqIFRoZSBVTG9jYWxlIGlzIGNhbm9uaWNhbGl6ZWQuCisgICAgICogQHBhcmFtIGxvYyBhIEpESyBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGUgZm9yTG9jYWxlKExvY2FsZSBsb2MpIHsKKyAgICAgICAgaWYgKGxvYyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBpZiAobG9jLnRvU3RyaW5nKCkubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIFJPT1Q7CisgICAgICAgIH0KKyAgICAgICAgVUxvY2FsZSByZXN1bHQgPSAoVUxvY2FsZSlDQUNIRS5nZXQobG9jKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsICYmIGRlZmF1bHRVTG9jYWxlICE9IG51bGwgJiYgbG9jID09IGRlZmF1bHRVTG9jYWxlLmxvY2FsZSkgeworICAgICAgICAgICAgcmVzdWx0ID0gZGVmYXVsdFVMb2NhbGU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBuZXcgVUxvY2FsZShsb2MudG9TdHJpbmcoKSwgbG9jKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFVMb2NhbGUgZnJvbSBhIFJGQyAzMDY2IGxvY2FsZSBJRC4gVGhlIGxvY2FsZSBJRCBjb25zaXN0cworICAgICAqIG9mIG9wdGlvbmFsIGxhbmd1YWdlLCBzY3JpcHQsIGNvdW50cnksIGFuZCB2YXJpYW50IGZpZWxkcyBpbiB0aGF0IG9yZGVyLCAKKyAgICAgKiBzZXBhcmF0ZWQgYnkgdW5kZXJzY29yZXMsIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsIGtleXdvcmQgbGlzdC4gIFRoZQorICAgICAqIHNjcmlwdCwgaWYgcHJlc2VudCwgaXMgZm91ciBjaGFyYWN0ZXJzIGxvbmctLSB0aGlzIGRpc3Rpbmd1aXNoZXMgaXQKKyAgICAgKiBmcm9tIGEgY291bnRyeSBjb2RlLCB3aGljaCBpcyB0d28gY2hhcmFjdGVycyBsb25nLiAgT3RoZXIgZmllbGRzCisgICAgICogYXJlIGRpc3Rpbmd1aXNoZWQgYnkgcG9zaXRpb24gYXMgaW5kaWNhdGVkIGJ5IHRoZSB1bmRlcnNjb3Jlcy4gIFRoZQorICAgICAqIHN0YXJ0IG9mIHRoZSBrZXl3b3JkIGxpc3QgaXMgaW5kaWNhdGVkIGJ5ICdAJywgYW5kIGNvbnNpc3RzIG9mIG9uZQorICAgICAqIG9yIG1vcmUga2V5d29yZC92YWx1ZSBwYWlycyBzZXBhcmF0ZWQgYnkgY29tbWFzLgorICAgICAqIDxwPgorICAgICAqIFRoaXMgY29uc3RydWN0b3IgZG9lcyBub3QgY2Fub25pY2FsaXplIHRoZSBsb2NhbGVJRC4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBsb2NhbGUsIGUuZzoKKyAgICAgKiAiZW5fVVMiLCAic3lfQ3lybF9ZVSIsICJ6aF9fcGlueWluIiwgImVzX0VTQGN1cnJlbmN5PUVVUixjb2xsYXRpb249dHJhZGl0aW9uYWwiCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovIAorICAgIHB1YmxpYyBVTG9jYWxlKFN0cmluZyBsb2NhbGVJRCkgeworICAgICAgICB0aGlzLmxvY2FsZUlEID0gZ2V0TmFtZShsb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugb3ZlcmxvYWQgb2YgVUxvY2FsZShTdHJpbmcsIFN0cmluZywgU3RyaW5nKSBmb3IgCisgICAgICogY29tcGF0aWJpbGl0eSB3aXRoIGphdmEudXRpbC5Mb2NhbGUuCisgICAgICogQHNlZSAjVUxvY2FsZShTdHJpbmcsIFN0cmluZywgU3RyaW5nKQorICAgICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAqLworICAgIHB1YmxpYyBVTG9jYWxlKFN0cmluZyBhLCBTdHJpbmcgYikgeworCXRoaXMoYSwgYiwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgVUxvY2FsZSBmcm9tIGEgbG9jYWxlSUQgY29uc3RydWN0ZWQgZnJvbSB0aGUgdGhyZWUgJ2ZpZWxkcycgYSwgYiwgYW5kIGMuICBUaGVzZQorICAgICAqIGZpZWxkcyBhcmUgY29uY2F0ZW5hdGVkIHVzaW5nIHVuZGVyc2NvcmVzIHRvIGZvcm0gYSBsb2NhbGVJRCBvZgorICAgICAqIHRoZSBmb3JtIGFfYl9jLCB3aGljaCBpcyB0aGVuIGhhbmRsZWQgbGlrZSB0aGUgbG9jYWxlSUQgcGFzc2VkCisgICAgICogdG8gPGNvZGU+VUxvY2FsZShTdHJpbmcgbG9jYWxlSUQpPC9jb2RlPi4gIAorICAgICAqCisgICAgICogPHA+SmF2YSBsb2NhbGUgc3RyaW5ncyBjb25zaXN0aW5nIG9mIGxhbmd1YWdlLCBjb3VudHJ5LCBhbmQKKyAgICAgKiB2YXJpYW50IHdpbGwgYmUgaGFuZGxlZCBieSB0aGlzIGZvcm0sIHNpbmNlIHRoZSBjb3VudHJ5IGNvZGUKKyAgICAgKiAoYmVpbmcgc2hvcnRlciB0aGFuIGZvdXIgbGV0dGVycyBsb25nKSB3aWxsIG5vdCBiZSBpbnRlcnByZXRlZAorICAgICAqIGFzIGEgc2NyaXB0IGNvZGUuICBJZiBhIHNjcmlwdCBjb2RlIGlzIHByZXNlbnQsIHRoZSBmaW5hbAorICAgICAqIGFyZ3VtZW50ICgnYycpIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgdGhlIGNvdW50cnkgY29kZS4gIEl0IGlzCisgICAgICogcmVjb21tZW5kZWQgdGhhdCB0aGlzIGNvbnN0cnVjdG9yIG9ubHkgYmUgdXNlZCB0byBlYXNlIHBvcnRpbmcsCisgICAgICogYW5kIHRoYXQgY2xpZW50cyBpbnN0ZWFkIHVzZSB0aGUgc2luZ2xlLWFyZ3VtZW50IGNvbnN0cnVjdG9yCisgICAgICogd2hlbiBjb25zdHJ1Y3RpbmcgYSBVTG9jYWxlIGZyb20gYSBsb2NhbGVJRC4KKyAgICAgKiBAcGFyYW0gYSBmaXJzdCBjb21wb25lbnQgb2YgdGhlIGxvY2FsZSBpZAorICAgICAqIEBwYXJhbSBiIHNlY29uZCBjb21wb25lbnQgb2YgdGhlIGxvY2FsZSBpZAorICAgICAqIEBwYXJhbSBjIHRoaXJkIGNvbXBvbmVudCBvZiB0aGUgbG9jYWxlIGlkCisgICAgICogQHNlZSAjVUxvY2FsZShTdHJpbmcpCisgICAgICogQHN0YWJsZSBJQ1UgMy4wIAorICAgICAqLworICAgIHB1YmxpYyBVTG9jYWxlKFN0cmluZyBhLCBTdHJpbmcgYiwgU3RyaW5nIGMpIHsKKyAgICAgICAgbG9jYWxlSUQgPSBnZXROYW1lKGxzY3ZUb0lEKGEsIGIsIGMsIEVNUFRZX1NUUklORykpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFVMb2NhbGUgZnJvbSB0aGUgaWQgYnkgZmlyc3QgY2Fub25pY2FsaXppbmcgdGhlIGlkLgorICAgICAqIEBwYXJhbSBub25DYW5vbmljYWxJRCB0aGUgbG9jYWxlIGlkIHRvIGNhbm9uaWNhbGl6ZQorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsZSBjcmVhdGVkIGZyb20gdGhlIGNhbm9uaWNhbCB2ZXJzaW9uIG9mIHRoZSBJRC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGUgY3JlYXRlQ2Fub25pY2FsKFN0cmluZyBub25DYW5vbmljYWxJRCkgeworICAgICAgICByZXR1cm4gbmV3IFVMb2NhbGUoY2Fub25pY2FsaXplKG5vbkNhbm9uaWNhbElEKSwgKExvY2FsZSludWxsKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgbHNjdlRvSUQoU3RyaW5nIGxhbmcsIFN0cmluZyBzY3JpcHQsIFN0cmluZyBjb3VudHJ5LCBTdHJpbmcgdmFyaWFudCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAKKyAgICAgICAgaWYgKGxhbmcgIT0gbnVsbCAmJiBsYW5nLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgYnVmLmFwcGVuZChsYW5nKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2NyaXB0ICE9IG51bGwgJiYgc2NyaXB0Lmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgYnVmLmFwcGVuZChVTkRFUlNDT1JFKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoc2NyaXB0KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY291bnRyeSAhPSBudWxsICYmIGNvdW50cnkubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKFVOREVSU0NPUkUpOworICAgICAgICAgICAgYnVmLmFwcGVuZChjb3VudHJ5KTsKKyAgICAgICAgfQorICAgICAgICBpZiAodmFyaWFudCAhPSBudWxsICYmIHZhcmlhbnQubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBpZiAoY291bnRyeSA9PSBudWxsIHx8IGNvdW50cnkubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoVU5ERVJTQ09SRSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWYuYXBwZW5kKFVOREVSU0NPUkUpOworICAgICAgICAgICAgYnVmLmFwcGVuZCh2YXJpYW50KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCB0aGlzIFVMb2NhbGUgb2JqZWN0IHRvIGEge0BsaW5rIGphdmEudXRpbC5Mb2NhbGV9LgorICAgICAqIEByZXR1cm4gYSBKREsgbG9jYWxlIHRoYXQgZWl0aGVyIGV4YWN0bHkgcmVwcmVzZW50cyB0aGlzIG9iamVjdAorICAgICAqIG9yIGlzIHRoZSBjbG9zZXN0IGFwcHJveGltYXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIExvY2FsZSB0b0xvY2FsZSgpIHsKKyAgICAgICAgaWYgKGxvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0TGFuZ3VhZ2VTY3JpcHRDb3VudHJ5VmFyaWFudCgpOworICAgICAgICAgICAgbG9jYWxlID0gbmV3IExvY2FsZShuYW1lc1swXSwgbmFtZXNbMl0sIG5hbWVzWzNdKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbG9jYWxlOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBLZWVwIG91ciBvd24gZGVmYXVsdCBVTG9jYWxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFVMb2NhbGUgZGVmYXVsdFVMb2NhbGU7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGRlZmF1bHQgVUxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8gCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlIGdldERlZmF1bHQoKSB7CisgICAgICAgIHN5bmNocm9uaXplZCAoVUxvY2FsZS5jbGFzcykgeworICAgICAgICAgICAgTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICAgICAgaWYgKGRlZmF1bHRVTG9jYWxlID09IG51bGwgfHwgZGVmYXVsdFVMb2NhbGUudG9Mb2NhbGUoKSAhPSBkZWZhdWx0TG9jYWxlKSB7CisgICAgICAgICAgICAgICAgZGVmYXVsdFVMb2NhbGUgPSBuZXcgVUxvY2FsZShkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VUxvY2FsZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRlZmF1bHQgVUxvY2FsZS4gIFRoaXMgYWxzbyBzZXRzIHRoZSBkZWZhdWx0IExvY2FsZS4KKyAgICAgKiBJZiB0aGUgY2FsbGVyIGRvZXMgbm90IGhhdmUgd3JpdGUgcGVybWlzc2lvbiB0byB0aGUKKyAgICAgKiB1c2VyLmxhbmd1YWdlIHByb3BlcnR5LCBhIHNlY3VyaXR5IGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biwKKyAgICAgKiBhbmQgdGhlIGRlZmF1bHQgVUxvY2FsZSB3aWxsIHJlbWFpbiB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIG5ld0xvY2FsZSB0aGUgbmV3IGRlZmF1bHQgbG9jYWxlCisgICAgICogQHRocm93cyBTZWN1cml0eUV4Y2VwdGlvbgorICAgICAqICAgICAgICBpZiBhIHNlY3VyaXR5IG1hbmFnZXIgZXhpc3RzIGFuZCBpdHMKKyAgICAgKiAgICAgICAgPGNvZGU+Y2hlY2tQZXJtaXNzaW9uPC9jb2RlPiBtZXRob2QgZG9lc24ndCBhbGxvdyB0aGUgb3BlcmF0aW9uLgorICAgICAqIEB0aHJvd3MgTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgPGNvZGU+bmV3TG9jYWxlPC9jb2RlPiBpcyBudWxsCisgICAgICogQHNlZSBTZWN1cml0eU1hbmFnZXIjY2hlY2tQZXJtaXNzaW9uCisgICAgICogQHNlZSBqYXZhLnV0aWwuUHJvcGVydHlQZXJtaXNzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMy4wIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgc3luY2hyb25pemVkIHZvaWQgc2V0RGVmYXVsdChVTG9jYWxlIG5ld0xvY2FsZSl7CisgICAgICAgIExvY2FsZS5zZXREZWZhdWx0KG5ld0xvY2FsZS50b0xvY2FsZSgpKTsKKyAgICAgICAgZGVmYXVsdFVMb2NhbGUgPSBuZXdMb2NhbGU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgaXMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBMb2NhbGUtLSBpbiBhY3R1YWxpdHksIHNpbmNlIFVMb2NhbGUgaXMKKyAgICAgKiBpbW11dGFibGUsIHRoZXJlIGlzIG5vIHJlYXNvbiB0byBjbG9uZSBpdCwgc28gdGhpcyBBUEkgcmV0dXJucyAndGhpcycuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaGFzaENvZGUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZUlELmhhc2hDb2RlKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgb3RoZXIgb2JqZWN0IGlzIGFub3RoZXIgVUxvY2FsZSB3aXRoIHRoZQorICAgICAqIHNhbWUgZnVsbCBuYW1lLCBvciBpcyBhIFN0cmluZyBsb2NhbGVJRCB0aGF0IG1hdGNoZXMgdGhlIGZ1bGwgbmFtZS4KKyAgICAgKiBOb3RlIHRoYXQgc2luY2UgbmFtZXMgYXJlIG5vdCBjYW5vbmljYWxpemVkLCB0d28gVUxvY2FsZXMgdGhhdAorICAgICAqIGZ1bmN0aW9uIGlkZW50aWNhbGx5IG1pZ2h0IG5vdCBjb21wYXJlIGVxdWFsLgorICAgICAqCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgTG9jYWxlIGlzIGVxdWFsIHRvIHRoZSBzcGVjaWZpZWQgb2JqZWN0LgorICAgICAqIEBzdGFibGUgSUNVIDMuMCAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICBpZiAodGhpcyA9PSBvYmopIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBTdHJpbmcpIHsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGVJRC5lcXVhbHMoKFN0cmluZylvYmopOyAgIAorICAgICAgICB9CisgICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBVTG9jYWxlKSB7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxlSUQuZXF1YWxzKCgoVUxvY2FsZSlvYmopLmxvY2FsZUlEKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBpbnN0YWxsZWQgbG9jYWxlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVMb2NhbGVbXSBnZXRBdmFpbGFibGVMb2NhbGVzKCkgeworICAgICAgICByZXR1cm4gSUNVUmVzb3VyY2VCdW5kbGUuZ2V0QXZhaWxhYmxlVUxvY2FsZXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgMi1sZXR0ZXIgY291bnRyeSBjb2RlcyBkZWZpbmVkIGluIElTTyAzMTY2LgorICAgICAqIENhbiBiZSB1c2VkIHRvIGNyZWF0ZSBMb2NhbGVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0SVNPQ291bnRyaWVzKCkgeworICAgICAgICBpbml0Q291bnRyeVRhYmxlcygpOworICAgICAgICByZXR1cm4gKFN0cmluZ1tdKV9jb3VudHJpZXMuY2xvbmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgMi1sZXR0ZXIgbGFuZ3VhZ2UgY29kZXMgZGVmaW5lZCBpbiBJU08gNjM5LgorICAgICAqIENhbiBiZSB1c2VkIHRvIGNyZWF0ZSBMb2NhbGVzLgorICAgICAqIFtOT1RFOiAgSVNPIDYzOSBpcyBub3QgYSBzdGFibGUgc3RhbmRhcmQtLSBzb21lIGxhbmd1YWdlcycgY29kZXMgaGF2ZSBjaGFuZ2VkLgorICAgICAqIFRoZSBsaXN0IHRoaXMgZnVuY3Rpb24gcmV0dXJucyBpbmNsdWRlcyBib3RoIHRoZSBuZXcgYW5kIHRoZSBvbGQgY29kZXMgZm9yIHRoZQorICAgICAqIGxhbmd1YWdlcyB3aG9zZSBjb2RlcyBoYXZlIGNoYW5nZWQuXQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nW10gZ2V0SVNPTGFuZ3VhZ2VzKCkgeworICAgICAgICBpbml0TGFuZ3VhZ2VUYWJsZXMoKTsKKyAgICAgICAgcmV0dXJuIChTdHJpbmdbXSlfbGFuZ3VhZ2VzLmNsb25lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGFuZ3VhZ2UgY29kZSBmb3IgdGhpcyBsb2NhbGUsIHdoaWNoIHdpbGwgZWl0aGVyIGJlIHRoZSBlbXB0eSBzdHJpbmcKKyAgICAgKiBvciBhIGxvd2VyY2FzZSBJU08gNjM5IGNvZGUuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheUxhbmd1YWdlCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldExhbmd1YWdlKGxvY2FsZUlEKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGFuZ3VhZ2UgY29kZSBmb3IgdGhlIGxvY2FsZSBJRCwKKyAgICAgKiB3aGljaCB3aWxsIGVpdGhlciBiZSB0aGUgZW1wdHkgc3RyaW5nCisgICAgICogb3IgYSBsb3dlcmNhc2UgSVNPIDYzOSBjb2RlLgorICAgICAqIEBzZWUgI2dldERpc3BsYXlMYW5ndWFnZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldExhbmd1YWdlKFN0cmluZyBsb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRMYW5ndWFnZSgpOworICAgIH0KKyAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2NyaXB0IGNvZGUgZm9yIHRoaXMgbG9jYWxlLCB3aGljaCBtaWdodCBiZSB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAqIEBzZWUgI2dldERpc3BsYXlTY3JpcHQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFNjcmlwdCgpIHsKKyAgICAgICAgcmV0dXJuIGdldFNjcmlwdChsb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2NyaXB0IGNvZGUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLCB3aGljaCBtaWdodCBiZSB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAqIEBzZWUgI2dldERpc3BsYXlTY3JpcHQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRTY3JpcHQoU3RyaW5nIGxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldFNjcmlwdCgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb3VudHJ5L3JlZ2lvbiBjb2RlIGZvciB0aGlzIGxvY2FsZSwgd2hpY2ggd2lsbCBlaXRoZXIgYmUgdGhlIGVtcHR5IHN0cmluZworICAgICAqIG9yIGFuIHVwcGVyY2FzZSBJU08gMzE2NiAyLWxldHRlciBjb2RlLgorICAgICAqIEBzZWUgI2dldERpc3BsYXlDb3VudHJ5CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRDb3VudHJ5KCkgeworICAgICAgICByZXR1cm4gZ2V0Q291bnRyeShsb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY291bnRyeS9yZWdpb24gY29kZSBmb3IgdGhpcyBsb2NhbGUsIHdoaWNoIHdpbGwgZWl0aGVyIGJlIHRoZSBlbXB0eSBzdHJpbmcKKyAgICAgKiBvciBhbiB1cHBlcmNhc2UgSVNPIDMxNjYgMi1sZXR0ZXIgY29kZS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQKKyAgICAgKiBAc2VlICNnZXREaXNwbGF5Q291bnRyeQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldENvdW50cnkoU3RyaW5nIGxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldENvdW50cnkoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFyaWFudCBjb2RlIGZvciB0aGlzIGxvY2FsZSwgd2hpY2ggbWlnaHQgYmUgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgKiBAc2VlICNnZXREaXNwbGF5VmFyaWFudAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VmFyaWFudCgpIHsKKyAgICAgICAgcmV0dXJuIGdldFZhcmlhbnQobG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhcmlhbnQgY29kZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUsIHdoaWNoIG1pZ2h0IGJlIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICogQHNlZSAjZ2V0RGlzcGxheVZhcmlhbnQKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRWYXJpYW50KFN0cmluZyBsb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRWYXJpYW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZmFsbGJhY2sgbG9jYWxlIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSwgd2hpY2ggbWlnaHQgYmUgdGhlIGVtcHR5IHN0cmluZy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRGYWxsYmFjayhTdHJpbmcgbG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldEZhbGxiYWNrU3RyaW5nKGdldE5hbWUobG9jYWxlSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBmYWxsYmFjayBsb2NhbGUgZm9yIHRoaXMgbG9jYWxlLiAgSWYgdGhpcyBsb2NhbGUgaXMgcm9vdCwgcmV0dXJucyBudWxsLgorICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBVTG9jYWxlIGdldEZhbGxiYWNrKCkgeworICAgICAgICBpZiAobG9jYWxlSUQubGVuZ3RoKCkgPT0gMCB8fCBsb2NhbGVJRC5jaGFyQXQoMCkgPT0gJ0AnKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFVMb2NhbGUoZ2V0RmFsbGJhY2tTdHJpbmcobG9jYWxlSUQpLCAoTG9jYWxlKW51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZ2l2ZW4gKGNhbm9uaWNhbCkgbG9jYWxlIGlkIG1pbnVzIHRoZSBsYXN0IHBhcnQgYmVmb3JlIHRoZSB0YWdzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXRGYWxsYmFja1N0cmluZyhTdHJpbmcgZmFsbGJhY2spIHsKKyAgICAgICAgaW50IGxpbWl0ID0gZmFsbGJhY2suaW5kZXhPZignQCcpOworICAgICAgICBpZiAobGltaXQgPT0gLTEpIHsKKyAgICAgICAgICAgIGxpbWl0ID0gZmFsbGJhY2subGVuZ3RoKCk7CisgICAgICAgIH0KKyAgICAgICAgaW50IHN0YXJ0ID0gZmFsbGJhY2subGFzdEluZGV4T2YoJ18nLCBsaW1pdCk7CisgICAgICAgIGlmIChzdGFydCA9PSAtMSkgeworICAgICAgICAgICAgc3RhcnQgPSAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxsYmFjay5zdWJzdHJpbmcoMCwgc3RhcnQpICsgZmFsbGJhY2suc3Vic3RyaW5nKGxpbWl0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSAobm9ybWFsaXplZCkgYmFzZSBuYW1lIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBiYXNlIG5hbWUgYXMgYSBTdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRCYXNlTmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldEJhc2VOYW1lKGxvY2FsZUlEKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgKG5vcm1hbGl6ZWQpIGJhc2UgbmFtZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGUgSUQgYXMgYSBzdHJpbmcKKyAgICAgKiBAcmV0dXJuIHRoZSBiYXNlIG5hbWUgYXMgYSBTdHJpbmcuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0QmFzZU5hbWUoU3RyaW5nIGxvY2FsZUlEKXsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0QmFzZU5hbWUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSAobm9ybWFsaXplZCkgZnVsbCBuYW1lIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU3RyaW5nIHRoZSBmdWxsIG5hbWUgb2YgdGhlIGxvY2FsZUlECisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGxvY2FsZUlEOyAvLyBhbHdheXMgbm9ybWFsaXplZAorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIChub3JtYWxpemVkKSBmdWxsIG5hbWUgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGVJRCBhcyBhIHN0cmluZworICAgICAqIEByZXR1cm4gU3RyaW5nIHRoZSBmdWxsIG5hbWUgb2YgdGhlIGxvY2FsZUlECisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0TmFtZShTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICByZXR1cm4gbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXROYW1lKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gbG9jYWxlSUQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpdGVyYXRvciBvdmVyIGtleXdvcmRzIGZvciB0aGlzIGxvY2FsZS4gIElmIHRoZXJlIAorICAgICAqIGFyZSBubyBrZXl3b3JkcywgcmV0dXJucyBudWxsLgorICAgICAqIEByZXR1cm4gaXRlcmF0b3Igb3ZlciBrZXl3b3Jkcywgb3IgbnVsbCBpZiB0aGVyZSBhcmUgbm8ga2V5d29yZHMuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIEl0ZXJhdG9yIGdldEtleXdvcmRzKCkgeworICAgICAgICByZXR1cm4gZ2V0S2V5d29yZHMobG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaXRlcmF0b3Igb3ZlciBrZXl3b3JkcyBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuICBJZiB0aGVyZSAKKyAgICAgKiBhcmUgbm8ga2V5d29yZHMsIHJldHVybnMgbnVsbC4KKyAgICAgKiBAcmV0dXJuIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGtleXdvcmRzIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLCBvciBudWxsCisgICAgICogaWYgdGhlcmUgYXJlIG5vIGtleXdvcmRzLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgSXRlcmF0b3IgZ2V0S2V5d29yZHMoU3RyaW5nIGxvY2FsZUlEKXsKKyAgICAgICAgcmV0dXJuIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0S2V5d29yZHMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBmb3IgYSBrZXl3b3JkIGluIHRoaXMgbG9jYWxlLiBJZiB0aGUga2V5d29yZCBpcyBub3QgZGVmaW5lZCwgcmV0dXJucyBudWxsLgorICAgICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3JkIHdob3NlIHZhbHVlIGlzIGRlc2lyZWQuIENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGtleXdvcmQsIG9yIG51bGwuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmROYW1lKXsKKyAgICAgICAgcmV0dXJuIGdldEtleXdvcmRWYWx1ZShsb2NhbGVJRCwga2V5d29yZE5hbWUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBmb3IgYSBrZXl3b3JkIGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLiBJZiB0aGUga2V5d29yZCBpcyBub3QgZGVmaW5lZCwgcmV0dXJucyBudWxsLiAKKyAgICAgKiBUaGUgbG9jYWxlIG5hbWUgZG9lcyBub3QgbmVlZCB0byBiZSBub3JtYWxpemVkLgorICAgICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3JkIHdob3NlIHZhbHVlIGlzIGRlc2lyZWQuIENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHJldHVybiBTdHJpbmcgdGhlIHZhbHVlIG9mIHRoZSBrZXl3b3JkIGFzIGEgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0S2V5d29yZFZhbHVlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGtleXdvcmROYW1lKSB7CisgICAgICAgIHJldHVybiBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldEtleXdvcmRWYWx1ZShrZXl3b3JkTmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXRpbGl0eSBjbGFzcyB0byBwYXJzZSBhbmQgbm9ybWFsaXplIGxvY2FsZSBpZHMgKGluY2x1ZGluZyBQT1NJWCBzdHlsZSkKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJRFBhcnNlciB7CisgICAgICAgIHByaXZhdGUgY2hhcltdIGlkOworICAgICAgICBwcml2YXRlIGludCBpbmRleDsKKyAgICAgICAgcHJpdmF0ZSBjaGFyW10gYnVmZmVyOworICAgICAgICBwcml2YXRlIGludCBibGVuOworICAgICAgICAvLyB1bSwgZG9uJ3QgaGFuZGxlIFBPU0lYIGlkcyB1bmxlc3Mgd2UgcmVxdWVzdCBpdC4gIHdoeSBub3Q/ICB3ZWxsLi4uIGJlY2F1c2UuCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBjYW5vbmljYWxpemU7CisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBoYWRDb3VudHJ5OworCisgICAgICAgIC8vIHVzZWQgd2hlbiBjYW5vbmljYWxpemluZworICAgICAgICBNYXAga2V5d29yZHM7CisgICAgICAgIFN0cmluZyBiYXNlTmFtZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogUGFyc2luZyBjb25zdGFudHMuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIEtFWVdPUkRfU0VQQVJBVE9SICAgICA9ICdAJzsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBIWVBIRU4gICAgICAgICAgICAgICAgPSAnLSc7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgS0VZV09SRF9BU1NJR04gICAgICAgID0gJz0nOworICAgICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIENPTU1BICAgICAgICAgICAgICAgICA9ICcsJzsKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBJVEVNX1NFUEFSQVRPUiAgICAgICAgPSAnOyc7CisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRE9UICAgICAgICAgICAgICAgICAgID0gJy4nOworCisgICAgICAgIHByaXZhdGUgSURQYXJzZXIoU3RyaW5nIGxvY2FsZUlEKSB7CisgICAgICAgICAgICB0aGlzKGxvY2FsZUlELCBmYWxzZSk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIElEUGFyc2VyKFN0cmluZyBsb2NhbGVJRCwgYm9vbGVhbiBjYW5vbmljYWxpemUpIHsKKyAgICAgICAgICAgIGlkID0gbG9jYWxlSUQudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgIGluZGV4ID0gMDsKKyAgICAgICAgICAgIGJ1ZmZlciA9IG5ldyBjaGFyW2lkLmxlbmd0aCArIDVdOworICAgICAgICAgICAgYmxlbiA9IDA7CisgICAgICAgICAgICB0aGlzLmNhbm9uaWNhbGl6ZSA9IGNhbm9uaWNhbGl6ZTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCByZXNldCgpIHsKKyAgICAgICAgICAgIGluZGV4ID0gYmxlbiA9IDA7CisgICAgICAgIH0KKworICAgICAgICAvLyB1dGlsaXRpZXMgZm9yIHdvcmtpbmcgb24gdGV4dCBpbiB0aGUgYnVmZmVyCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFwcGVuZCBjIHRvIHRoZSBidWZmZXIuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgYXBwZW5kKGNoYXIgYykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBidWZmZXJbYmxlbl0gPSBjOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGlmIChidWZmZXIubGVuZ3RoID4gNTEyKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHNvbWV0aGluZyBpcyBzZXJpb3VzbHkgd3JvbmcsIGxldCB0aGlzIGdvCisgICAgICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNoYXJbXSBuYnVmZmVyID0gbmV3IGNoYXJbYnVmZmVyLmxlbmd0aCAqIDJdOworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoYnVmZmVyLCAwLCBuYnVmZmVyLCAwLCBidWZmZXIubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBuYnVmZmVyW2JsZW5dID0gYzsKKyAgICAgICAgICAgICAgICBidWZmZXIgPSBuYnVmZmVyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKytibGVuOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGFkZFNlcGFyYXRvcigpIHsKKyAgICAgICAgICAgIGFwcGVuZChVTkRFUlNDT1JFKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSB0ZXh0IGluIHRoZSBidWZmZXIgZnJvbSBzdGFydCB0byBibGVuIGFzIGEgU3RyaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0U3RyaW5nKGludCBzdGFydCkgeworICAgICAgICAgICAgaWYgKHN0YXJ0ID09IGJsZW4pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFlfU1RSSU5HOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoYnVmZmVyLCBzdGFydCwgYmxlbi1zdGFydCk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogU2V0IHRoZSBsZW5ndGggb2YgdGhlIGJ1ZmZlciB0byBwb3MsIHRoZW4gYXBwZW5kIHRoZSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgc2V0KGludCBwb3MsIFN0cmluZyBzKSB7CisgICAgICAgICAgICB0aGlzLmJsZW4gPSBwb3M7IC8vIG5vIHNhZmV0eQorICAgICAgICAgICAgYXBwZW5kKHMpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFwcGVuZCB0aGUgc3RyaW5nIHRvIHRoZSBidWZmZXIuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgYXBwZW5kKFN0cmluZyBzKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGFwcGVuZChzLmNoYXJBdChpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyB1dGlsaXRpZXMgZm9yIHBhcnNpbmcgdGV4dCBvdXQgb2YgdGhlIGlkCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENoYXJhY3RlciB0byBpbmRpY2F0ZSBubyBtb3JlIHRleHQgaXMgYXZhaWxhYmxlIGluIHRoZSBpZC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgRE9ORSA9ICdcdWZmZmYnOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBjaGFyYWN0ZXIgYXQgaW5kZXggaW4gdGhlIGlkLCBhbmQgYWR2YW5jZSBpbmRleC4gIFRoZSByZXR1cm5lZCBjaGFyYWN0ZXIKKyAgICAgICAgICogaXMgRE9ORSBpZiBpbmRleCB3YXMgYXQgdGhlIGxpbWl0IG9mIHRoZSBidWZmZXIuICBUaGUgaW5kZXggaXMgYWR2YW5jZWQgcmVnYXJkbGVzcworICAgICAgICAgKiBzbyB0aGF0IGRlY3JlbWVudGluZyB0aGUgaW5kZXggd2lsbCBhbHdheXMgJ3VuZ2V0JyB0aGUgbGFzdCBjaGFyYWN0ZXIgcmV0dXJuZWQuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGNoYXIgbmV4dCgpIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA9PSBpZC5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBpbmRleCsrOworICAgICAgICAgICAgICAgIHJldHVybiBET05FOyAKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGlkW2luZGV4KytdOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkdmFuY2UgaW5kZXggdW50aWwgdGhlIG5leHQgdGVybWluYXRvciBvciBpZCBzZXBhcmF0b3IsIGFuZCBsZWF2ZSBpdCB0aGVyZS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgdm9pZCBza2lwVW50aWxUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcigpIHsKKyAgICAgICAgICAgIHdoaWxlICghaXNUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcihuZXh0KCkpKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAtLWluZGV4OworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGF0IGluZGV4IGluIHRoZSBpZCBpcyBhIHRlcm1pbmF0b3IuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gYXRUZXJtaW5hdG9yKCkgeworICAgICAgICAgICAgcmV0dXJuIGluZGV4ID49IGlkLmxlbmd0aCB8fCBpc1Rlcm1pbmF0b3IoaWRbaW5kZXhdKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGNoYXJhY3RlciBpcyBhbiBpZCBzZXBhcmF0b3IgKHVuZGVyc2NvcmUgb3IgaHlwaGVuKS4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBpc0lEU2VwYXJhdG9yKGNoYXIgYykgeworICAgICAgICAgICAgcmV0dXJuIGMgPT0gVU5ERVJTQ09SRSB8fCBjID09IEhZUEhFTjsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGNoYXJhY3RlciBpcyBhIHRlcm1pbmF0b3IgKGtleXdvcmQgc2VwYXJhdG9yLCBkb3QsIG9yIERPTkUpLgorICAgICAgICAgKiBEb3QgaXMgYSB0ZXJtaW5hdG9yIGJlY2F1c2Ugb2YgdGhlIFBPU0lYIGZvcm0sIHdoZXJlIGRvdCBwcmVjZWRlcyB0aGUgY29kZXBhZ2UuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gaXNUZXJtaW5hdG9yKGNoYXIgYykgeworICAgICAgICAgICAgLy8gYWx3YXlzIHRlcm1pbmF0ZSBhdCBET1QsIGV2ZW4gaWYgbm90IGhhbmRsaW5nIFBPU0lYLiAgSXQncyBhbiBlcnJvci4uLgorICAgICAgICAgICAgcmV0dXJuIGMgPT0gS0VZV09SRF9TRVBBUkFUT1IgfHwgYyA9PSBET05FIHx8IGMgPT0gRE9UOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGlzIGEgdGVybWluYXRvciBvciBpZCBzZXBhcmF0b3IuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gaXNUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcihjaGFyIGMpIHsKKyAgICAgICAgICAgIHJldHVybiBjID09IEtFWVdPUkRfU0VQQVJBVE9SIHx8IGMgPT0gVU5ERVJTQ09SRSB8fCBjID09IEhZUEhFTiB8fCAKKyAgICAgICAgICAgICAgICBjID09IERPTkUgfHwgYyA9PSBET1Q7ICAgCisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzdGFydCBvZiB0aGUgYnVmZmVyIGhhcyBhbiBleHBlcmltZW50YWwgb3IgcHJpdmF0ZSBsYW5ndWFnZSAKKyAgICAgICAgICogcHJlZml4LCB0aGUgcGF0dGVybiAnW2l4SVhdWy1fXS4nIHNob3dzIHRoZSBzeW50YXggY2hlY2tlZC4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgYm9vbGVhbiBoYXZlRXhwZXJpbWVudGFsTGFuZ3VhZ2VQcmVmaXgoKSB7CisgICAgICAgICAgICBpZiAoaWQubGVuZ3RoID4gMikgeworICAgICAgICAgICAgICAgIGNoYXIgYyA9IGlkWzFdOworICAgICAgICAgICAgICAgIGlmIChjID09IEhZUEhFTiB8fCBjID09IFVOREVSU0NPUkUpIHsKKyAgICAgICAgICAgICAgICAgICAgYyA9IGlkWzBdOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gYyA9PSAneCcgfHwgYyA9PSAnWCcgfHwgYyA9PSAnaScgfHwgYyA9PSAnSSc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdHJ1ZSBpZiBhIHZhbHVlIHNlcGFyYXRvciBvY2N1cnMgYXQgb3IgYWZ0ZXIgaW5kZXguCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGJvb2xlYW4gaGF2ZUtleXdvcmRBc3NpZ24oKSB7CisgICAgICAgICAgICAvLyBhc3N1bWUgaXQgaXMgc2FmZSB0byBzdGFydCBmcm9tIGluZGV4CisgICAgICAgICAgICBmb3IgKGludCBpID0gaW5kZXg7IGkgPCBpZC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmIChpZFtpXSA9PSBLRVlXT1JEX0FTU0lHTikgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IGxhbmd1YWdlLCBhbmQgYWNjdW11bGF0ZSBub3JtYWxpemVkIGxhbmd1YWdlIGNvZGUgaW4gYnVmZmVyLgorICAgICAgICAgKiBJbmRleCBtdXN0IGJlIGF0IDAgd2hlbiB0aGlzIGlzIGNhbGxlZC4gIEluZGV4IGlzIGxlZnQgYXQgYSB0ZXJtaW5hdG9yIG9yIGlkIAorICAgICAgICAgKiBzZXBhcmF0b3IuICBSZXR1cm5zIHRoZSBzdGFydCBvZiB0aGUgbGFuZ3VhZ2UgY29kZSBpbiB0aGUgYnVmZmVyLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBpbnQgcGFyc2VMYW5ndWFnZSgpIHsKKyAgICAgICAgICAgIGlmIChoYXZlRXhwZXJpbWVudGFsTGFuZ3VhZ2VQcmVmaXgoKSkgeworICAgICAgICAgICAgICAgIGFwcGVuZChDaGFyYWN0ZXIudG9Mb3dlckNhc2UoaWRbMF0pKTsKKyAgICAgICAgICAgICAgICBhcHBlbmQoSFlQSEVOKTsKKyAgICAgICAgICAgICAgICBpbmRleCA9IDI7CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICAgICAgY2hhciBjOworICAgICAgICAgICAgd2hpbGUoIWlzVGVybWluYXRvck9ySURTZXBhcmF0b3IoYyA9IG5leHQoKSkpIHsKKyAgICAgICAgICAgICAgICBhcHBlbmQoQ2hhcmFjdGVyLnRvTG93ZXJDYXNlKGMpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0taW5kZXg7IC8vIHVuZ2V0CisKKyAgICAgICAgICAgIGlmIChibGVuID09IDMpIHsKKyAgICAgICAgICAgICAgICBpbml0TGFuZ3VhZ2VUYWJsZXMoKTsKKworICAgICAgICAgICAgICAgIC8qIGNvbnZlcnQgMyBjaGFyYWN0ZXIgY29kZSB0byAyIGNoYXJhY3RlciBjb2RlIGlmIHBvc3NpYmxlICpDV0IqLworICAgICAgICAgICAgICAgIFN0cmluZyBsYW5nID0gZ2V0U3RyaW5nKDApOworICAgICAgICAgICAgICAgIGludCBvZmZzZXQgPSBmaW5kSW5kZXgoX2xhbmd1YWdlczMsIGxhbmcpOworICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBzZXQoMCwgX2xhbmd1YWdlc1tvZmZzZXRdKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBmaW5kSW5kZXgoX29ic29sZXRlTGFuZ3VhZ2VzMywgbGFuZyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0KDAsIF9vYnNvbGV0ZUxhbmd1YWdlc1tvZmZzZXRdKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IGxhbmd1YWdlLiAgSW5kZXggbXVzdCBiZSBhdCAwIHdoZW4gdGhpcyBpcyBjYWxsZWQuICBJbmRleAorICAgICAgICAgKiBpcyBsZWZ0IGF0IGEgdGVybWluYXRvciBvciBpZCBzZXBhcmF0b3IuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgc2tpcExhbmd1YWdlKCkgeworICAgICAgICAgICAgaWYgKGhhdmVFeHBlcmltZW50YWxMYW5ndWFnZVByZWZpeCgpKSB7CisgICAgICAgICAgICAgICAgaW5kZXggPSAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2tpcFVudGlsVGVybWluYXRvck9ySURTZXBhcmF0b3IoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBZHZhbmNlIGluZGV4IHBhc3Qgc2NyaXB0LCBhbmQgYWNjdW11bGF0ZSBub3JtYWxpemVkIHNjcmlwdCBpbiBidWZmZXIuCisgICAgICAgICAqIEluZGV4IG11c3QgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxhbmd1YWdlLgorICAgICAgICAgKiBJZiB0aGUgaXRlbSBhdCB0aGlzIHBvc2l0aW9uIGlzIG5vdCBhIHNjcmlwdCAoaXMgbm90IGZvdXIgY2hhcmFjdGVycworICAgICAgICAgKiBsb25nKSBsZWF2ZSBpbmRleCBhbmQgYnVmZmVyIHVuY2hhbmdlZC4gIE90aGVyd2lzZSBpbmRleCBpcyBsZWZ0IGF0CisgICAgICAgICAqIGEgdGVybWluYXRvciBvciBpZCBzZXBhcmF0b3IuICBSZXR1cm5zIHRoZSBzdGFydCBvZiB0aGUgc2NyaXB0IGNvZGUKKyAgICAgICAgICogaW4gdGhlIGJ1ZmZlciAodGhpcyBtYXkgYmUgZXF1YWwgdG8gdGhlIGJ1ZmZlciBsZW5ndGgsIGlmIHRoZXJlIGlzIG5vCisgICAgICAgICAqIHNjcmlwdCkuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBwYXJzZVNjcmlwdCgpIHsKKyAgICAgICAgICAgIGlmICghYXRUZXJtaW5hdG9yKCkpIHsKKyAgICAgICAgICAgICAgICBpbnQgb2xkSW5kZXggPSBpbmRleDsgLy8gc2F2ZSBvcmlnaW5hbCBpbmRleAorICAgICAgICAgICAgICAgICsraW5kZXg7CisKKyAgICAgICAgICAgICAgICBpbnQgb2xkQmxlbiA9IGJsZW47IC8vIGdldCBiZWZvcmUgYXBwZW5kIGh5cGhlbiwgaWYgd2UgdHJ1bmNhdGUgZXZlcnl0aGluZyBpcyB1bmRvbmUKKyAgICAgICAgICAgICAgICBjaGFyIGM7CisgICAgICAgICAgICAgICAgd2hpbGUoIWlzVGVybWluYXRvck9ySURTZXBhcmF0b3IoYyA9IG5leHQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJsZW4gPT0gb2xkQmxlbikgeyAvLyBmaXJzdCBwYXNzCisgICAgICAgICAgICAgICAgICAgICAgICBhZGRTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZChDaGFyYWN0ZXIudG9VcHBlckNhc2UoYykpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKENoYXJhY3Rlci50b0xvd2VyQ2FzZShjKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLS1pbmRleDsgLy8gdW5nZXQKKworICAgICAgICAgICAgICAgIC8qIElmIGl0J3Mgbm90IGV4YWN0bHkgNCBjaGFyYWN0ZXJzIGxvbmcsIHRoZW4gaXQncyBub3QgYSBzY3JpcHQuICovCisgICAgICAgICAgICAgICAgaWYgKGluZGV4IC0gb2xkSW5kZXggIT0gNSkgeyAvLyArMSB0byBhY2NvdW50IGZvciBzZXBhcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBvbGRJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgYmxlbiA9IG9sZEJsZW47CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgb2xkQmxlbisrOyAvLyBpbmRleCBwYXN0IGh5cGhlbiwgZm9yIGNsaWVudHMgd2hvIHdhbnQgdG8gZXh0cmFjdCBqdXN0IHRoZSBzY3JpcHQKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICByZXR1cm4gb2xkQmxlbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBibGVuOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkdmFuY2UgaW5kZXggcGFzdCBzY3JpcHQuCisgICAgICAgICAqIEluZGV4IG11c3QgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxhbmd1YWdlIGFuZCBJRFNlcGFyYXRvci4KKyAgICAgICAgICogSWYgdGhlIGl0ZW0gYXQgdGhpcyBwb3NpdGlvbiBpcyBub3QgYSBzY3JpcHQgKGlzIG5vdCBmb3VyIGNoYXJhY3RlcnMKKyAgICAgICAgICogbG9uZykgbGVhdmUgaW5kZXguICBPdGhlcndpc2UgaW5kZXggaXMgbGVmdCBhdCBhIHRlcm1pbmF0b3Igb3IKKyAgICAgICAgICogaWQgc2VwYXJhdG9yLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNraXBTY3JpcHQoKSB7CisgICAgICAgICAgICBpZiAoIWF0VGVybWluYXRvcigpKSB7CisgICAgICAgICAgICAgICAgaW50IG9sZEluZGV4ID0gaW5kZXg7CisgICAgICAgICAgICAgICAgKytpbmRleDsKKworICAgICAgICAgICAgICAgIHNraXBVbnRpbFRlcm1pbmF0b3JPcklEU2VwYXJhdG9yKCk7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4IC0gb2xkSW5kZXggIT0gNSkgeyAvLyArMSB0byBhY2NvdW50IGZvciBzZXBhcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBvbGRJbmRleDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IGNvdW50cnksIGFuZCBhY2N1bXVsYXRlIG5vcm1hbGl6ZWQgY291bnRyeSBpbiBidWZmZXIuCisgICAgICAgICAqIEluZGV4IG11c3QgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHNjcmlwdCAoaWYgdGhlcmUgaXMgb25lLCBlbHNlIGxhbmd1YWdlKQorICAgICAgICAgKiBhbmQgSURTZXBhcmF0b3IuICBSZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBjb3VudHJ5IGNvZGUgaW4gdGhlIGJ1ZmZlci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IHBhcnNlQ291bnRyeSgpIHsKKyAgICAgICAgICAgIGlmICghYXRUZXJtaW5hdG9yKCkpIHsKKyAgICAgICAgICAgICAgICArK2luZGV4OworCisgICAgICAgICAgICAgICAgaW50IG9sZEJsZW4gPSBibGVuOworICAgICAgICAgICAgICAgIGNoYXIgYzsKKyAgICAgICAgICAgICAgICB3aGlsZSAoIWlzVGVybWluYXRvck9ySURTZXBhcmF0b3IoYyA9IG5leHQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9sZEJsZW4gPT0gYmxlbikgeyAvLyBmaXJzdCwgYWRkIGh5cGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgaGFkQ291bnRyeSA9IHRydWU7IC8vIHdlIGhhdmUgYSBjb3VudHJ5LCBsZXQgdmFyaWFudCBwYXJzaW5nIGtub3cKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICAgICAgICAgICAgICAgICAgKytvbGRCbGVuOyAvLyBpbmNyZW1lbnQgcGFzdCBoeXBoZW4KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhcHBlbmQoQ2hhcmFjdGVyLnRvVXBwZXJDYXNlKGMpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLS1pbmRleDsgLy8gdW5nZXQKKworICAgICAgICAgICAgICAgIGlmIChibGVuIC0gb2xkQmxlbiA9PSAzKSB7CisgICAgICAgICAgICAgICAgICAgIGluaXRDb3VudHJ5VGFibGVzKCk7CisKKyAgICAgICAgICAgICAgICAgICAgLyogY29udmVydCAzIGNoYXJhY3RlciBjb2RlIHRvIDIgY2hhcmFjdGVyIGNvZGUgaWYgcG9zc2libGUgKkNXQiovCisgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQgPSBmaW5kSW5kZXgoX2NvdW50cmllczMsIGdldFN0cmluZyhvbGRCbGVuKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2V0KG9sZEJsZW4sIF9jb3VudHJpZXNbb2Zmc2V0XSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBmaW5kSW5kZXgoX29ic29sZXRlQ291bnRyaWVzMywgZ2V0U3RyaW5nKG9sZEJsZW4pKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldChvbGRCbGVuLCBfb2Jzb2xldGVDb3VudHJpZXNbb2Zmc2V0XSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICByZXR1cm4gb2xkQmxlbjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGJsZW47CisgICAgICAgIH0JICAKKworICAgICAgICAvKioKKyAgICAgICAgICogQWR2YW5jZSBpbmRleCBwYXN0IGNvdW50cnkuCisgICAgICAgICAqIEluZGV4IG11c3QgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHNjcmlwdCAoaWYgdGhlcmUgaXMgb25lLCBlbHNlIGxhbmd1YWdlKQorICAgICAgICAgKiBhbmQgSURTZXBhcmF0b3IuCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIHZvaWQgc2tpcENvdW50cnkoKSB7CisgICAgICAgICAgICBpZiAoIWF0VGVybWluYXRvcigpKSB7CisgICAgICAgICAgICAgICAgKytpbmRleDsKKyAgICAgICAgICAgICAgICBza2lwVW50aWxUZXJtaW5hdG9yT3JJRFNlcGFyYXRvcigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFkdmFuY2UgaW5kZXggcGFzdCB2YXJpYW50LCBhbmQgYWNjdW11bGF0ZSBub3JtYWxpemVkIHZhcmlhbnQgaW4gYnVmZmVyLiAgVGhpcyBpZ25vcmVzCisgICAgICAgICAqIHRoZSBjb2RlcGFnZSBpbmZvcm1hdGlvbiBmcm9tIFBPU0lYIGlkcy4gIEluZGV4IG11c3QgYmUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGNvdW50cnkKKyAgICAgICAgICogb3Igc2NyaXB0LiAgSW5kZXggaXMgbGVmdCBhdCB0aGUga2V5d29yZCBzZXBhcmF0b3Igb3IgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dC4gIFJldHVybgorICAgICAgICAgKiB0aGUgc3RhcnQgb2YgdGhlIHZhcmlhbnQgY29kZSBpbiB0aGUgYnVmZmVyLgorICAgICAgICAgKgorICAgICAgICAgKiBJbiBzdGFuZGFyZCBmb3JtLCB3ZSBjYW4gaGF2ZSB0aGUgZm9sbG93aW5nIGZvcm1zOgorICAgICAgICAgKiBsbF9fVlZWVgorICAgICAgICAgKiBsbF9DQ19WVlZWCisgICAgICAgICAqIGxsX1Nzc3NfVlZWVgorICAgICAgICAgKiBsbF9Tc3NzX0NDX1ZWVlYKKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBhbHNvIGhhbmRsZXMgUE9TSVggaWRzLCB3aGljaCBjYW4gaGF2ZSB0aGUgZm9sbG93aW5nIGZvcm1zIChwcHBwIGlzIGNvZGUgcGFnZSBpZCk6CisgICAgICAgICAqIGxsX0NDLnBwcHAgICAgICAgICAgLS0+IGxsX0NDCisgICAgICAgICAqIGxsX0NDLnBwcHBAVlZWViAgICAgLS0+IGxsX0NDX1ZWVlYKKyAgICAgICAgICogbGxfQ0NAVlZWViAgICAgICAgICAtLT4gbGxfQ0NfVlZWVgorICAgICAgICAgKgorICAgICAgICAgKiBXZSBpZGVudGlmeSB0aGlzIHVzZSBvZiAnQCcgaW4gUE9TSVggaWRzIGJ5IGxvb2tpbmcgZm9yIGFuICc9JyBmb2xsb3dpbmcKKyAgICAgICAgICogdGhlICdAJy4gIElmIHRoZXJlIGlzIG9uZSwgd2UgY29uc2lkZXIgJ0AnIHRvIHN0YXJ0IGEga2V5d29yZCBsaXN0LCBpbnN0ZWFkIG9mCisgICAgICAgICAqIGJlaW5nIHBhcnQgb2YgYSBQT1NJWCBpZC4KKyAgICAgICAgICoKKyAgICAgICAgICogTm90ZTogIHNpbmNlIGl0IHdhcyBkZWNpZGVkIHRoYXQgd2Ugd2FudCBhbiBvcHRpb24gdG8gbm90IGhhbmRsZSBQT1NJWCBpZHMsIHRoaXMKKyAgICAgICAgICogYmVjb21lcyBhIGJpdCBtb3JlIGNvbXBsZXguCisgICAgICAgICAqLworICAgICAgICBwcml2YXRlIGludCBwYXJzZVZhcmlhbnQoKSB7CisgICAgICAgICAgICBpbnQgb2xkQmxlbiA9IGJsZW47CisKKyAgICAgICAgICAgIGJvb2xlYW4gc3RhcnQgPSB0cnVlOworICAgICAgICAgICAgYm9vbGVhbiBuZWVkU2VwYXJhdG9yID0gdHJ1ZTsKKyAgICAgICAgICAgIGJvb2xlYW4gc2tpcHBpbmcgPSBmYWxzZTsKKyAgICAgICAgICAgIGNoYXIgYzsKKyAgICAgICAgICAgIHdoaWxlICgoYyA9IG5leHQoKSkgIT0gRE9ORSkgeworICAgICAgICAgICAgICAgIGlmIChjID09IERPVCkgeworICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBza2lwcGluZyA9IHRydWU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjID09IEtFWVdPUkRfU0VQQVJBVE9SKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChoYXZlS2V5d29yZEFzc2lnbigpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBza2lwcGluZyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBuZWVkU2VwYXJhdG9yID0gdHJ1ZTsgLy8gYWRkIGFub3RoZXIgdW5kZXJzY29yZSBpZiB3ZSBoYXZlIG1vcmUgdGV4dAorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFza2lwcGluZykgeworICAgICAgICAgICAgICAgICAgICBpZiAobmVlZFNlcGFyYXRvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpbmNPbGRCbGVuID0gYmxlbiA9PSBvbGRCbGVuOyAvLyBuZWVkIHRvIHNraXAgc2VwYXJhdG9ycworICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFNlcGFyYXRvciA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluY09sZEJsZW4gJiYgIWhhZENvdW50cnkpIHsgLy8gbm8gY291bnRyeSwgd2UnbGwgbmVlZCB0d28KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK29sZEJsZW47IC8vIGZvciBzdXJlCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRTZXBhcmF0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmNPbGRCbGVuKSB7IC8vIG9ubHkgZm9yIHRoZSBmaXJzdCBzZXBhcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK29sZEJsZW47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYyA9IENoYXJhY3Rlci50b1VwcGVyQ2FzZShjKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gSFlQSEVOIHx8IGMgPT0gQ09NTUEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBVTkRFUlNDT1JFOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAtLWluZGV4OyAvLyB1bmdldAorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gb2xkQmxlbjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG5vIG5lZWQgZm9yIHNraXB2YXJpYW50LCB0byBnZXQgdGhlIGtleXdvcmRzIHdlJ2xsIGp1c3Qgc2NhbiBkaXJlY3RseSBmb3IgCisgICAgICAgIC8vIHRoZSBrZXl3b3JkIHNlcGFyYXRvcgorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBub3JtYWxpemVkIGxhbmd1YWdlIGlkLCBvciB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRMYW5ndWFnZSgpIHsKKyAgICAgICAgICAgIHJlc2V0KCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0U3RyaW5nKHBhcnNlTGFuZ3VhZ2UoKSk7CisgICAgICAgIH0KKyAgIAorICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgbm9ybWFsaXplZCBzY3JpcHQgaWQsIG9yIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFNjcmlwdCgpIHsKKyAgICAgICAgICAgIHJlc2V0KCk7CisgICAgICAgICAgICBza2lwTGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmcocGFyc2VTY3JpcHQoKSk7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIHJldHVybiB0aGUgbm9ybWFsaXplZCBjb3VudHJ5IGlkLCBvciB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRDb3VudHJ5KCkgeworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIHNraXBMYW5ndWFnZSgpOworICAgICAgICAgICAgc2tpcFNjcmlwdCgpOworICAgICAgICAgICAgcmV0dXJuIGdldFN0cmluZyhwYXJzZUNvdW50cnkoKSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUmV0dXJucyB0aGUgbm9ybWFsaXplZCB2YXJpYW50IGlkLCBvciB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRWYXJpYW50KCkgeworICAgICAgICAgICAgcmVzZXQoKTsKKyAgICAgICAgICAgIHNraXBMYW5ndWFnZSgpOworICAgICAgICAgICAgc2tpcFNjcmlwdCgpOworICAgICAgICAgICAgc2tpcENvdW50cnkoKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRTdHJpbmcocGFyc2VWYXJpYW50KCkpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIGxhbmd1YWdlLCBzY3JpcHQsIGNvdW50cnksIGFuZCB2YXJpYW50IGFzIHNlcGFyYXRlIHN0cmluZ3MuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgU3RyaW5nW10gZ2V0TGFuZ3VhZ2VTY3JpcHRDb3VudHJ5VmFyaWFudCgpIHsKKyAgICAgICAgICAgIHJlc2V0KCk7CisgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICAgICBnZXRTdHJpbmcocGFyc2VMYW5ndWFnZSgpKSwKKyAgICAgICAgICAgICAgICBnZXRTdHJpbmcocGFyc2VTY3JpcHQoKSksCisgICAgICAgICAgICAgICAgZ2V0U3RyaW5nKHBhcnNlQ291bnRyeSgpKSwKKyAgICAgICAgICAgICAgICBnZXRTdHJpbmcocGFyc2VWYXJpYW50KCkpCisgICAgICAgICAgICB9OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgc2V0QmFzZU5hbWUoU3RyaW5nIGJhc2VOYW1lKSB7CisgICAgICAgICAgICB0aGlzLmJhc2VOYW1lID0gYmFzZU5hbWU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBwYXJzZUJhc2VOYW1lKCkgeworICAgICAgICAgICAgaWYgKGJhc2VOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzZXQoMCwgYmFzZU5hbWUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXNldCgpOworICAgICAgICAgICAgICAgIHBhcnNlTGFuZ3VhZ2UoKTsKKyAgICAgICAgICAgICAgICBwYXJzZVNjcmlwdCgpOworICAgICAgICAgICAgICAgIHBhcnNlQ291bnRyeSgpOworICAgICAgICAgICAgICAgIHBhcnNlVmFyaWFudCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gY2F0Y2ggdW53YW50ZWQgdHJhaWxpbmcgdW5kZXJzY29yZSBhZnRlciBjb3VudHJ5IGlmIHRoZXJlIHdhcyBubyB2YXJpYW50CisgICAgICAgICAgICAgICAgaWYgKGJsZW4gPiAxICYmIGJ1ZmZlcltibGVuLTFdID09IFVOREVSU0NPUkUpIHsKKyAgICAgICAgICAgICAgICAgICAgLS1ibGVuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBub3JtYWxpemVkIGJhc2UgZm9ybSBvZiB0aGUgbG9jYWxlIGlkLiAgVGhlIGJhc2UKKyAgICAgICAgICogZm9ybSBkb2VzIG5vdCBpbmNsdWRlIGtleXdvcmRzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRCYXNlTmFtZSgpIHsKKyAgICAgICAgICAgIGlmIChiYXNlTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2VOYW1lOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcGFyc2VCYXNlTmFtZSgpOworICAgICAgICAgICAgcmV0dXJuIGdldFN0cmluZygwKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIHRoZSBub3JtYWxpemVkIGZ1bGwgZm9ybSBvZiB0aGUgbG9jYWxlIGlkLiAgVGhlIGZ1bGwKKyAgICAgICAgICogZm9ybSBpbmNsdWRlcyBrZXl3b3JkcyBpZiB0aGV5IGFyZSBwcmVzZW50LgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAgICAgcGFyc2VCYXNlTmFtZSgpOworICAgICAgICAgICAgcGFyc2VLZXl3b3JkcygpOworICAgICAgICAgICAgcmV0dXJuIGdldFN0cmluZygwKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGtleXdvcmQgdXRpbGl0aWVzCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIElmIHdlIGhhdmUga2V5d29yZHMsIGFkdmFuY2UgaW5kZXggdG8gdGhlIHN0YXJ0IG9mIHRoZSBrZXl3b3JkcyBhbmQgcmV0dXJuIHRydWUsIAorICAgICAgICAgKiBvdGhlcndpc2UgcmV0dXJuIGZhbHNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIHNldFRvS2V5d29yZFN0YXJ0KCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IGluZGV4OyBpIDwgaWQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoaWRbaV0gPT0gS0VZV09SRF9TRVBBUkFUT1IpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNhbm9uaWNhbGl6ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9ICsraTsgaiA8IGlkLmxlbmd0aDsgKytqKSB7IC8vIGluY3JlbWVudCBpIHBhc3Qgc2VwYXJhdG9yIGZvciByZXR1cm4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWRbal0gPT0gS0VZV09SRF9BU1NJR04pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKytpIDwgaWQubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBpc0RvbmVPcktleXdvcmRBc3NpZ24oY2hhciBjKSB7CisgICAgICAgICAgICByZXR1cm4gYyA9PSBET05FIHx8IGMgPT0gS0VZV09SRF9BU1NJR047CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzRG9uZU9ySXRlbVNlcGFyYXRvcihjaGFyIGMpIHsKKyAgICAgICAgICAgIHJldHVybiBjID09IERPTkUgfHwgYyA9PSBJVEVNX1NFUEFSQVRPUjsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGdldEtleXdvcmQoKSB7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSBpbmRleDsKKyAgICAgICAgICAgIHdoaWxlICghaXNEb25lT3JLZXl3b3JkQXNzaWduKG5leHQoKSkpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC0taW5kZXg7CisgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZyhpZCwgc3RhcnQsIGluZGV4LXN0YXJ0KS50cmltKCkudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgU3RyaW5nIGdldFZhbHVlKCkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gaW5kZXg7CisgICAgICAgICAgICB3aGlsZSAoIWlzRG9uZU9ySXRlbVNlcGFyYXRvcihuZXh0KCkpKSB7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAtLWluZGV4OworICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoaWQsIHN0YXJ0LCBpbmRleC1zdGFydCkudHJpbSgpOyAvLyBsZWF2ZSBjYXNlIGFsb25lCisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIENvbXBhcmF0b3IgZ2V0S2V5Q29tcGFyYXRvcigpIHsKKyAgICAgICAgICAgIGZpbmFsIENvbXBhcmF0b3IgY29tcCA9IG5ldyBDb21wYXJhdG9yKCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGNvbXBhcmUoT2JqZWN0IGxocywgT2JqZWN0IHJocykgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoU3RyaW5nKWxocykuY29tcGFyZVRvKChTdHJpbmcpcmhzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gY29tcDsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIGEgbWFwIG9mIHRoZSBrZXl3b3JkcyBhbmQgdmFsdWVzLCBvciBudWxsIGlmIHRoZXJlIGFyZSBub25lLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSBNYXAgZ2V0S2V5d29yZE1hcCgpIHsKKyAgICAgICAgICAgIGlmIChrZXl3b3JkcyA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgVHJlZU1hcCBtID0gbnVsbDsKKyAgICAgICAgICAgICAgICBpZiAoc2V0VG9LZXl3b3JkU3RhcnQoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyB0cmltIHNwYWNlcyBhbmQgY29udmVydCB0byBsb3dlciBjYXNlLCBib3RoIGtleXdvcmRzIGFuZCB2YWx1ZXMuCisgICAgICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSBnZXRLZXl3b3JkKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5Lmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgYyA9IG5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjICE9IEtFWVdPUkRfQVNTSUdOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigia2V5ICciICsga2V5ICsgIicgbWlzc2luZyBhIHZhbHVlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09IERPTkUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gZ2V0VmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigia2V5ICciICsga2V5ICsgIicgbWlzc2luZyBhIHZhbHVlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0gPSBuZXcgVHJlZU1hcChnZXRLZXlDb21wYXJhdG9yKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtLmNvbnRhaW5zS2V5KGtleSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJrZXkgJyIgKyBrZXkgKyAiJyBhbHJlYWR5IGhhcyBhIHZhbHVlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbS5wdXQoa2V5LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKG5leHQoKSA9PSBJVEVNX1NFUEFSQVRPUik7CisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGtleXdvcmRzID0gbSAhPSBudWxsID8gbSA6IENvbGxlY3Rpb25zLkVNUFRZX01BUDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGtleXdvcmRzOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFBhcnNlIHRoZSBrZXl3b3JkcyBhbmQgcmV0dXJuIHN0YXJ0IG9mIHRoZSBzdHJpbmcgaW4gdGhlIGJ1ZmZlci4KKyAgICAgICAgICovCisgICAgICAgIHByaXZhdGUgaW50IHBhcnNlS2V5d29yZHMoKSB7CisgICAgICAgICAgICBpbnQgb2xkQmxlbiA9IGJsZW47CisgICAgICAgICAgICBNYXAgbSA9IGdldEtleXdvcmRNYXAoKTsKKyAgICAgICAgICAgIGlmICghbS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBpdGVyID0gbS5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBmaXJzdCA9IHRydWU7CisgICAgICAgICAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZChmaXJzdCA/IEtFWVdPUkRfU0VQQVJBVE9SIDogSVRFTV9TRVBBUkFUT1IpOworICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBNYXAuRW50cnkgZSA9IChNYXAuRW50cnkpaXRlci5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZCgoU3RyaW5nKWUuZ2V0S2V5KCkpOworICAgICAgICAgICAgICAgICAgICBhcHBlbmQoS0VZV09SRF9BU1NJR04pOworICAgICAgICAgICAgICAgICAgICBhcHBlbmQoKFN0cmluZyllLmdldFZhbHVlKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYmxlbiAhPSBvbGRCbGVuKSB7CisgICAgICAgICAgICAgICAgICAgICsrb2xkQmxlbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gb2xkQmxlbjsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGtleXdvcmRzLCBvciBudWxsIGlmIHdlIGhhdmUgYW4gZW1wdHkgbWFwLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEl0ZXJhdG9yIGdldEtleXdvcmRzKCkgeworICAgICAgICAgICAgTWFwIG0gPSBnZXRLZXl3b3JkTWFwKCk7CisgICAgICAgICAgICByZXR1cm4gbS5pc0VtcHR5KCkgPyBudWxsIDogbS5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFJldHVybnMgdGhlIHZhbHVlIGZvciB0aGUgbmFtZWQga2V5d29yZCwgb3IgbnVsbCBpZiB0aGUga2V5d29yZCBpcyBub3QKKyAgICAgICAgICogcHJlc2VudC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkTmFtZSkgeworICAgICAgICAgICAgTWFwIG0gPSBnZXRLZXl3b3JkTWFwKCk7CisgICAgICAgICAgICByZXR1cm4gbS5pc0VtcHR5KCkgPyBudWxsIDogKFN0cmluZyltLmdldChrZXl3b3JkTmFtZS50cmltKCkudG9Mb3dlckNhc2UoKSk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogU2V0IHRoZSBrZXl3b3JkIHZhbHVlIG9ubHkgaWYgaXQgaXMgbm90IGFscmVhZHkgc2V0IHRvIHNvbWV0aGluZyBlbHNlLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgZGVmYXVsdEtleXdvcmRWYWx1ZShTdHJpbmcga2V5d29yZE5hbWUsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICAgICAgc2V0S2V5d29yZFZhbHVlKGtleXdvcmROYW1lLCB2YWx1ZSwgZmFsc2UpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNldCB0aGUgdmFsdWUgZm9yIHRoZSBuYW1lZCBrZXl3b3JkLCBvciB1bnNldCBpdCBpZiB2YWx1ZSBpcyBudWxsLiAgSWYKKyAgICAgICAgICoga2V5d29yZE5hbWUgaXRzZWxmIGlzIG51bGwsIHVuc2V0IGFsbCBrZXl3b3Jkcy4gIElmIGtleXdvcmROYW1lIGlzIG5vdCBudWxsLAorICAgICAgICAgKiB2YWx1ZSBtdXN0IG5vdCBiZSBudWxsLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIHZvaWQgc2V0S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkTmFtZSwgU3RyaW5nIHZhbHVlKSB7CisgICAgICAgICAgICBzZXRLZXl3b3JkVmFsdWUoa2V5d29yZE5hbWUsIHZhbHVlLCB0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXQgdGhlIHZhbHVlIGZvciB0aGUgbmFtZWQga2V5d29yZCwgb3IgdW5zZXQgaXQgaWYgdmFsdWUgaXMgbnVsbC4gIElmCisgICAgICAgICAqIGtleXdvcmROYW1lIGl0c2VsZiBpcyBudWxsLCB1bnNldCBhbGwga2V5d29yZHMuICBJZiBrZXl3b3JkTmFtZSBpcyBub3QgbnVsbCwKKyAgICAgICAgICogdmFsdWUgbXVzdCBub3QgYmUgbnVsbC4gIElmIHJlc2V0IGlzIHRydWUsIGlnbm9yZSBhbnkgcHJldmlvdXMgdmFsdWUgZm9yIAorICAgICAgICAgKiB0aGUga2V5d29yZCwgb3RoZXJ3aXNlIGRvIG5vdCBjaGFuZ2UgdGhlIGtleXdvcmQgKGluY2x1ZGluZyByZW1vdmFsIG9mCisgICAgICAgICAqIG9uZSBvciBhbGwga2V5d29yZHMpLgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIHNldEtleXdvcmRWYWx1ZShTdHJpbmcga2V5d29yZE5hbWUsIFN0cmluZyB2YWx1ZSwgYm9vbGVhbiByZXNldCkgeworICAgICAgICAgICAgaWYgKGtleXdvcmROYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzZXQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gZm9yY2UgbmV3IG1hcCwgaWdub3JlIHZhbHVlCisgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzID0gQ29sbGVjdGlvbnMuRU1QVFlfTUFQOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAga2V5d29yZE5hbWUgPSBrZXl3b3JkTmFtZS50cmltKCkudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgICAgICAgICBpZiAoa2V5d29yZE5hbWUubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJrZXl3b3JkIG11c3Qgbm90IGJlIGVtcHR5Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudHJpbSgpOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidmFsdWUgbXVzdCBub3QgYmUgZW1wdHkiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBNYXAgbSA9IGdldEtleXdvcmRNYXAoKTsKKyAgICAgICAgICAgICAgICBpZiAobS5pc0VtcHR5KCkpIHsgLy8gaXQgaXMgRU1QVFlfTUFQCisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSBuZXcgbWFwCisgICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3JkcyA9IG5ldyBUcmVlTWFwKGdldEtleUNvbXBhcmF0b3IoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3Jkcy5wdXQoa2V5d29yZE5hbWUsIHZhbHVlLnRyaW0oKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAocmVzZXQgfHwgIW0uY29udGFpbnNLZXkoa2V5d29yZE5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0ucHV0KGtleXdvcmROYW1lLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0ucmVtb3ZlKGtleXdvcmROYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yY2UgbmV3IG1hcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3JkcyA9IENvbGxlY3Rpb25zLkVNUFRZX01BUDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBsaW5lYXIgc2VhcmNoIG9mIHRoZSBzdHJpbmcgYXJyYXkuIHRoZSBhcnJheXMgYXJlIHVuZm9ydHVuYXRlbHkgb3JkZXJlZCBieSB0aGUKKyAgICAgKiB0d28tbGV0dGVyIHRhcmdldCBjb2RlLCBub3QgdGhlIHRocmVlLWxldHRlciBzZWFyY2ggY29kZSwgd2hpY2ggc2VlbXMgYmFja3dhcmRzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBmaW5kSW5kZXgoU3RyaW5nW10gYXJyYXksIFN0cmluZyB0YXJnZXQpeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAodGFyZ2V0LmVxdWFscyhhcnJheVtpXSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfSAgICAKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNhbm9uaWNhbCBuYW1lIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBJRC4gIFRoaXMgaXMgdXNlZCB0byBjb252ZXJ0IFBPU0lYCisgICAgICogYW5kIG90aGVyIGdyYW5kZmF0aGVyZWQgSURzIHRvIHN0YW5kYXJkIElDVSBmb3JtLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgbG9jYWxlIGlkCisgICAgICogQHJldHVybiB0aGUgY2Fub25pY2FsaXplZCBpZAorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbGl6ZShTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICBJRFBhcnNlciBwYXJzZXIgPSBuZXcgSURQYXJzZXIobG9jYWxlSUQsIHRydWUpOworICAgICAgICBTdHJpbmcgYmFzZU5hbWUgPSBwYXJzZXIuZ2V0QmFzZU5hbWUoKTsKKyAgICAgICAgYm9vbGVhbiBmb3VuZFZhcmlhbnQgPSBmYWxzZTsKKyAgICAgIAorICAgICAgICAvLyBmb3JtZXJseSwgd2UgYWx3YXlzIHNldCB0byBlbl9VU19QT1NJWCBpZiB0aGUgYmFzZW5hbWUgd2FzIGVtcHR5LCBidXQKKyAgICAgICAgLy8gbm93IHdlIHJlcXVpcmUgdGhhdCB0aGUgZW50aXJlIGlkIGJlIGVtcHR5LCBzbyB0aGF0ICJAZm9vPWJhciIKKyAgICAgICAgLy8gd2lsbCBwYXNzIHRocm91Z2ggdW5jaGFuZ2VkLgorICAgICAgICAvLyB7ZGxmfSBJJ2QgcmF0aGVyIGtlZXAgIiIgdW5jaGFuZ2VkLgorICAgICAgICBpZiAobG9jYWxlSUQuZXF1YWxzKCIiKSkgeworICAgICAgICAgICAgcmV0dXJuICIiOworLy8gICAgICAgICAgICAgIHJldHVybiAiZW5fVVNfUE9TSVgiOworICAgICAgICB9CisKKyAgICAgICAgLy8gd2UgaGF2ZSBhbiBJRCBpbiB0aGUgZm9ybSB4eF9ZeXl5X1paX0tLS0tLCisKKyAgICAgICAgaW5pdFZhcmlhbnRzVGFibGUoKTsKKworICAgICAgICAvKiBTZWUgaWYgdGhpcyBpcyBhbiBhbHJlYWR5IGtub3duIGxvY2FsZSAqLworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IF92YXJpYW50c1RvS2V5d29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChfdmFyaWFudHNUb0tleXdvcmRzW2ldWzBdLmVxdWFscyhiYXNlTmFtZSkpIHsKKyAgICAgICAgICAgICAgICBmb3VuZFZhcmlhbnQgPSB0cnVlOworCisgICAgICAgICAgICAgICAgU3RyaW5nW10gdmFscyA9IF92YXJpYW50c1RvS2V5d29yZHNbaV07CisgICAgICAgICAgICAgICAgcGFyc2VyLnNldEJhc2VOYW1lKHZhbHNbMV0pOworICAgICAgICAgICAgICAgIGlmICh2YWxzWzJdICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFyc2VyLmRlZmF1bHRLZXl3b3JkVmFsdWUodmFsc1syXSwgdmFsc1szXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogY29udmVydCB0aGUgRXVybyB2YXJpYW50IHRvIGFwcHJvcHJpYXRlIElEICovCisgICAgICAgIGlmICghZm91bmRWYXJpYW50KSB7CisgICAgICAgICAgICBpbnQgaWR4ID0gYmFzZU5hbWUuaW5kZXhPZigiX0VVUk8iKTsKKyAgICAgICAgICAgIGlmIChpZHggPiAtMSkgeworICAgICAgICAgICAgICAgIHBhcnNlci5zZXRCYXNlTmFtZShiYXNlTmFtZS5zdWJzdHJpbmcoMCwgaWR4KSk7CisgICAgICAgICAgICAgICAgcGFyc2VyLmRlZmF1bHRLZXl3b3JkVmFsdWUoImN1cnJlbmN5IiwgIkVVUiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogdG90YWwgbW9uZG8gaGFjayBmb3IgTm9yd2VnaWFuLCBmb3J0dW5hdGVseSB0aGUgbWFpbiBOWSBjYXNlIGlzIGhhbmRsZWQgZWFybGllciAqLworICAgICAgICBpZiAoIWZvdW5kVmFyaWFudCkgeworICAgICAgICAgICAgaWYgKHBhcnNlci5nZXRMYW5ndWFnZSgpLmVxdWFscygibmIiKSAmJiBwYXJzZXIuZ2V0VmFyaWFudCgpLmVxdWFscygiTlkiKSkgeworICAgICAgICAgICAgICAgIHBhcnNlci5zZXRCYXNlTmFtZShsc2N2VG9JRCgibm4iLCBwYXJzZXIuZ2V0U2NyaXB0KCksIHBhcnNlci5nZXRDb3VudHJ5KCksIG51bGwpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwYXJzZXIuZ2V0TmFtZSgpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIGtleXdvcmQgYW5kIGEgdmFsdWUsIHJldHVybiBhIG5ldyBsb2NhbGUgd2l0aCBhbiB1cGRhdGVkCisgICAgICoga2V5d29yZCBhbmQgdmFsdWUuICBJZiBrZXl3b3JkIGlzIG51bGwsIHRoaXMgcmVtb3ZlcyBhbGwga2V5d29yZHMgZnJvbSB0aGUgbG9jYWxlIGlkLgorICAgICAqIE90aGVyd2lzZSwgaWYgdGhlIHZhbHVlIGlzIG51bGwsIHRoaXMgcmVtb3ZlcyB0aGUgdmFsdWUgZm9yIHRoaXMga2V5d29yZCBmcm9tIHRoZQorICAgICAqIGxvY2FsZSBpZC4gIE90aGVyd2lzZSwgdGhpcyBhZGRzL3JlcGxhY2VzIHRoZSB2YWx1ZSBmb3IgdGhpcyBrZXl3b3JkIGluIHRoZSBsb2NhbGUgaWQuCisgICAgICogVGhlIGtleXdvcmQgYW5kIHZhbHVlIG11c3Qgbm90IGJlIGVtcHR5LgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHRvIGFkZC9yZW1vdmUsIG9yIG51bGwgdG8gcmVtb3ZlIGFsbCBrZXl3b3Jkcy4KKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRvIGFkZC9zZXQsIG9yIG51bGwgdG8gcmVtb3ZlIHRoaXMgcGFydGljdWxhciBrZXl3b3JkLgorICAgICAqIEByZXR1cm4gdGhlIHVwZGF0ZWQgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMy4yCisgICAgICovCisgICAgcHVibGljIFVMb2NhbGUgc2V0S2V5d29yZFZhbHVlKFN0cmluZyBrZXl3b3JkLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBVTG9jYWxlKHNldEtleXdvcmRWYWx1ZShsb2NhbGVJRCwga2V5d29yZCwgdmFsdWUpLCAoTG9jYWxlKW51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgbG9jYWxlIGlkLCBhIGtleXdvcmQsIGFuZCBhIHZhbHVlLCByZXR1cm4gYSBuZXcgbG9jYWxlIGlkIHdpdGggYW4gdXBkYXRlZAorICAgICAqIGtleXdvcmQgYW5kIHZhbHVlLiAgSWYga2V5d29yZCBpcyBudWxsLCB0aGlzIHJlbW92ZXMgYWxsIGtleXdvcmRzIGZyb20gdGhlIGxvY2FsZSBpZC4KKyAgICAgKiBPdGhlcndpc2UsIGlmIHRoZSB2YWx1ZSBpcyBudWxsLCB0aGlzIHJlbW92ZXMgdGhlIHZhbHVlIGZvciB0aGlzIGtleXdvcmQgZnJvbSB0aGUKKyAgICAgKiBsb2NhbGUgaWQuICBPdGhlcndpc2UsIHRoaXMgYWRkcy9yZXBsYWNlcyB0aGUgdmFsdWUgZm9yIHRoaXMga2V5d29yZCBpbiB0aGUgbG9jYWxlIGlkLgorICAgICAqIFRoZSBrZXl3b3JkIGFuZCB2YWx1ZSBtdXN0IG5vdCBiZSBlbXB0eS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGxvY2FsZSBpZCB0byBtb2RpZnkKKyAgICAgKiBAcGFyYW0ga2V5d29yZCB0aGUga2V5d29yZCB0byBhZGQvcmVtb3ZlLCBvciBudWxsIHRvIHJlbW92ZSBhbGwga2V5d29yZHMuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBhZGQvc2V0LCBvciBudWxsIHRvIHJlbW92ZSB0aGlzIHBhcnRpY3VsYXIga2V5d29yZC4KKyAgICAgKiBAcmV0dXJuIHRoZSB1cGRhdGVkIGxvY2FsZSBpZAorICAgICAqIEBzdGFibGUgSUNVIDMuMgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHNldEtleXdvcmRWYWx1ZShTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBrZXl3b3JkLCBTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgSURQYXJzZXIgcGFyc2VyID0gbmV3IElEUGFyc2VyKGxvY2FsZUlEKTsKKyAgICAgICAgcGFyc2VyLnNldEtleXdvcmRWYWx1ZShrZXl3b3JkLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiBwYXJzZXIuZ2V0TmFtZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdpdmVuIGEgbG9jYWxlIGlkLCBhIGtleXdvcmQsIGFuZCBhIHZhbHVlLCByZXR1cm4gYSBuZXcgbG9jYWxlIGlkIHdpdGggYW4gdXBkYXRlZAorICAgICAqIGtleXdvcmQgYW5kIHZhbHVlLCBpZiB0aGUga2V5d29yZCBkb2VzIG5vdCBhbHJlYWR5IGhhdmUgYSB2YWx1ZS4gIFRoZSBrZXl3b3JkIGFuZAorICAgICAqIHZhbHVlIG11c3Qgbm90IGJlIG51bGwgb3IgZW1wdHkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGUgaWQgdG8gbW9kaWZ5CisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgdG8gYWRkLCBpZiBub3QgYWxyZWFkeSBwcmVzZW50CisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBhZGQsIGlmIG5vdCBhbHJlYWR5IHByZXNlbnQKKyAgICAgKiBAcmV0dXJuIHRoZSB1cGRhdGVkIGxvY2FsZSBpZAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBkZWZhdWx0S2V5d29yZFZhbHVlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGtleXdvcmQsIFN0cmluZyB2YWx1ZSkgeworICAgICAgICBJRFBhcnNlciBwYXJzZXIgPSBuZXcgSURQYXJzZXIobG9jYWxlSUQpOworICAgICAgICBwYXJzZXIuZGVmYXVsdEtleXdvcmRWYWx1ZShrZXl3b3JkLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiBwYXJzZXIuZ2V0TmFtZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0aHJlZS1sZXR0ZXIgYWJicmV2aWF0aW9uIGZvciB0aGlzIGxvY2FsZSdzIGxhbmd1YWdlLiAgSWYgdGhlIGxvY2FsZQorICAgICAqIGRvZXNuJ3Qgc3BlY2lmeSBhIGxhbmd1YWdlLCByZXR1cm5zIHRoZSBlbXB0eSBzdHJpbmcuICBPdGhlcndpc2UsIHJldHVybnMKKyAgICAgKiBhIGxvd2VyY2FzZSBJU08gNjM5LTIvVCBsYW5ndWFnZSBjb2RlLgorICAgICAqIFRoZSBJU08gNjM5LTIgbGFuZ3VhZ2UgY29kZXMgY2FuIGJlIGZvdW5kIG9uLWxpbmUgYXQKKyAgICAgKiAgIDxhIGhyZWY9ImZ0cDovL2RrdXVnLmRrL2kxOG4vaXNvLTYzOS0yLnR4dCI+PGNvZGU+ZnRwOi8vZGt1dWcuZGsvaTE4bi9pc28tNjM5LTIudHh0PC9jb2RlPjwvYT4KKyAgICAgKiBAZXhjZXB0aW9uIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBUaHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGlmIHRoZQorICAgICAqIHRocmVlLWxldHRlciBsYW5ndWFnZSBhYmJyZXZpYXRpb24gaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhpcyBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRJU08zTGFuZ3VhZ2UoKXsKKyAgICAgICAgcmV0dXJuIGdldElTTzNMYW5ndWFnZShsb2NhbGVJRCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRocmVlLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UuICBJZiB0aGUgbG9jYWxlCisgICAgICogZG9lc24ndCBzcGVjaWZ5IGEgbGFuZ3VhZ2UsIHJldHVybnMgdGhlIGVtcHR5IHN0cmluZy4gIE90aGVyd2lzZSwgcmV0dXJucworICAgICAqIGEgbG93ZXJjYXNlIElTTyA2MzktMi9UIGxhbmd1YWdlIGNvZGUuCisgICAgICogVGhlIElTTyA2MzktMiBsYW5ndWFnZSBjb2RlcyBjYW4gYmUgZm91bmQgb24tbGluZSBhdAorICAgICAqICAgPGEgaHJlZj0iZnRwOi8vZGt1dWcuZGsvaTE4bi9pc28tNjM5LTIudHh0Ij48Y29kZT5mdHA6Ly9ka3V1Zy5kay9pMThuL2lzby02MzktMi50eHQ8L2NvZGU+PC9hPgorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIFRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gaWYgdGhlCisgICAgICogdGhyZWUtbGV0dGVyIGxhbmd1YWdlIGFiYnJldmlhdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRJU08zTGFuZ3VhZ2UoU3RyaW5nIGxvY2FsZUlEKXsKKyAgICAgICAgaW5pdExhbmd1YWdlVGFibGVzKCk7CisKKyAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gZ2V0TGFuZ3VhZ2UobG9jYWxlSUQpOworICAgICAgICBpbnQgb2Zmc2V0ID0gZmluZEluZGV4KF9sYW5ndWFnZXMsIGxhbmd1YWdlKTsKKyAgICAgICAgaWYob2Zmc2V0Pj0wKXsKKyAgICAgICAgICAgIHJldHVybiBfbGFuZ3VhZ2VzM1tvZmZzZXRdOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgb2Zmc2V0ID0gZmluZEluZGV4KF9vYnNvbGV0ZUxhbmd1YWdlcywgbGFuZ3VhZ2UpOworICAgICAgICAgICAgaWYgKG9mZnNldCA+PSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIF9vYnNvbGV0ZUxhbmd1YWdlczNbb2Zmc2V0XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRU1QVFlfU1RSSU5HOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdGhyZWUtbGV0dGVyIGFiYnJldmlhdGlvbiBmb3IgdGhpcyBsb2NhbGUncyBjb3VudHJ5L3JlZ2lvbi4gIElmIHRoZSBsb2NhbGUKKyAgICAgKiBkb2Vzbid0IHNwZWNpZnkgYSBjb3VudHJ5LCByZXR1cm5zIHRoZSBlbXB0eSBzdHJpbmcuICBPdGhlcndpc2UsIHJldHVybnMKKyAgICAgKiBhbiB1cHBlcmNhc2UgSVNPIDMxNjYgMy1sZXR0ZXIgY291bnRyeSBjb2RlLgorICAgICAqIEBleGNlcHRpb24gTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIFRocm93cyBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gaWYgdGhlCisgICAgICogdGhyZWUtbGV0dGVyIGNvdW50cnkgYWJicmV2aWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoaXMgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SVNPM0NvdW50cnkoKXsKKyAgICAgICAgcmV0dXJuIGdldElTTzNDb3VudHJ5KGxvY2FsZUlEKTsKKyAgICB9CisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRocmVlLWxldHRlciBhYmJyZXZpYXRpb24gZm9yIHRoaXMgbG9jYWxlJ3MgY291bnRyeS9yZWdpb24uICBJZiB0aGUgbG9jYWxlCisgICAgICogZG9lc24ndCBzcGVjaWZ5IGEgY291bnRyeSwgcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nLiAgT3RoZXJ3aXNlLCByZXR1cm5zCisgICAgICogYW4gdXBwZXJjYXNlIElTTyAzMTY2IDMtbGV0dGVyIGNvdW50cnkgY29kZS4KKyAgICAgKiBAZXhjZXB0aW9uIE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBUaHJvd3MgTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGlmIHRoZQorICAgICAqIHRocmVlLWxldHRlciBjb3VudHJ5IGFiYnJldmlhdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRJU08zQ291bnRyeShTdHJpbmcgbG9jYWxlSUQpeworICAgICAgICBpbml0Q291bnRyeVRhYmxlcygpOworCisgICAgICAgIFN0cmluZyBjb3VudHJ5ID0gZ2V0Q291bnRyeShsb2NhbGVJRCk7CisgICAgICAgIGludCBvZmZzZXQgPSBmaW5kSW5kZXgoX2NvdW50cmllcywgY291bnRyeSk7CisgICAgICAgIGlmKG9mZnNldD49MCl7CisgICAgICAgICAgICByZXR1cm4gX2NvdW50cmllczNbb2Zmc2V0XTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAgICBvZmZzZXQgPSBmaW5kSW5kZXgoX29ic29sZXRlQ291bnRyaWVzLCBjb3VudHJ5KTsKKyAgICAgICAgICAgIGlmKG9mZnNldD49MCl7CisgICAgICAgICAgICAgICAgcmV0dXJuIF9vYnNvbGV0ZUNvdW50cmllczNbb2Zmc2V0XTsgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gRU1QVFlfU1RSSU5HOworICAgIH0KKyAgICAKKyAgICAvLyBkaXNwbGF5IG5hbWVzCisKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IHRvIGZldGNoIGxvY2FsZSBkaXNwbGF5IGRhdGEgZnJvbSByZXNvdXJjZSBidW5kbGUgdGFibGVzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXRUYWJsZVN0cmluZyhTdHJpbmcgdGFibGVOYW1lLCBTdHJpbmcgc3VidGFibGVOYW1lLCBTdHJpbmcgaXRlbSwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICBpZiAoaXRlbS5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gKElDVVJlc291cmNlQnVuZGxlKVVSZXNvdXJjZUJ1bmRsZS4KKyAgICAgICAgICAgICAgICAgIGdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIGRpc3BsYXlMb2NhbGVJRCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldFRhYmxlU3RyaW5nKHRhYmxlTmFtZSwgc3VidGFibGVOYW1lLCBpdGVtLCBidW5kbGUpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKy8vICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImd0c3U6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGl0ZW07CisgICAgfQorICAgICAgICAKKyAgICAvKioKKyAgICAgKiBVdGlsaXR5IHRvIGZldGNoIGxvY2FsZSBkaXNwbGF5IGRhdGEgZnJvbSByZXNvdXJjZSBidW5kbGUgdGFibGVzLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyBnZXRUYWJsZVN0cmluZyhTdHJpbmcgdGFibGVOYW1lLCBTdHJpbmcgc3VidGFibGVOYW1lLCBTdHJpbmcgaXRlbSwgSUNVUmVzb3VyY2VCdW5kbGUgYnVuZGxlKSB7CisvLyAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZ3RzIHRhYmxlOiAiICsgdGFibGVOYW1lICsgCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAiIHN1YnRhYmxlOiAiICsgc3VidGFibGVOYW1lICsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICIgaXRlbTogIiArIGl0ZW0gKworLy8gICAgICAgICAgICAgICAgICAgICAgICAgIiBidW5kbGU6ICIgKyBidW5kbGUuZ2V0VUxvY2FsZSgpKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICAvLyBzcGVjaWFsIGNhc2UgY3VycmVuY3kKKyAgICAgICAgICAgICAgICBpZiAoImN1cnJlbmN5Ii5lcXVhbHMoc3VidGFibGVOYW1lKSkgeworICAgICAgICAgICAgICAgICAgICBJQ1VSZXNvdXJjZUJ1bmRsZSB0YWJsZSA9IGJ1bmRsZS5nZXRXaXRoRmFsbGJhY2soIkN1cnJlbmNpZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgdGFibGUgPSB0YWJsZS5nZXRXaXRoRmFsbGJhY2soaXRlbSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0YWJsZS5nZXRTdHJpbmcoMSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgSUNVUmVzb3VyY2VCdW5kbGUgdGFibGUgPSBidW5kbGUuZ2V0V2l0aEZhbGxiYWNrKHRhYmxlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VidGFibGVOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZSA9IHRhYmxlLmdldFdpdGhGYWxsYmFjayhzdWJ0YWJsZU5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlLmdldFN0cmluZ1dpdGhGYWxsYmFjayhpdGVtKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjYXRjaCAoTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYoc3VidGFibGVOYW1lPT1udWxsKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1heSBiZSBhIGRlcHJlY2F0ZWQgY29kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgY3VycmVudE5hbWUgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih0YWJsZU5hbWUuZXF1YWxzKCJDb3VudHJpZXMiKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TmFtZSA9IGdldEN1cnJlbnRDb3VudHJ5SUQoaXRlbSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKHRhYmxlTmFtZS5lcXVhbHMoIkxhbmd1YWdlcyIpKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnROYW1lID0gZ2V0Q3VycmVudExhbmd1YWdlSUQoaXRlbSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlLmdldFN0cmluZ1dpdGhGYWxsYmFjayhjdXJyZW50TmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWNhdGNoIChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpey8qIGZhbGwgdGhyb3VnaCovfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdGlsbCBjYW4ndCBmaWd1cmUgb3V0ID8uLiB0cnkgdGhlIGZhbGxiYWNrIG1lY2hhbmlzbQorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGZhbGxiYWNrTG9jYWxlID0gdGFibGUuZ2V0V2l0aEZhbGxiYWNrKCJGYWxsYmFjayIpLmdldFN0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrTG9jYWxlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFja0xvY2FsZSA9ICJyb290IjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiYnVuZGxlOiAiICsgYnVuZGxlLmdldFVMb2NhbGUoKSArICIgZmFsbGJhY2s6ICIgKyBmYWxsYmFja0xvY2FsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihmYWxsYmFja0xvY2FsZS5lcXVhbHModGFibGUuZ2V0VUxvY2FsZSgpLmxvY2FsZUlEKSl7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBidW5kbGUgPSAoSUNVUmVzb3VyY2VCdW5kbGUpVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKElDVVJlc291cmNlQnVuZGxlLklDVV9CQVNFX05BTUUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFja0xvY2FsZSk7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmYWxsYmFjayBmcm9tICIgKyB0YWJsZS5nZXRVTG9jYWxlKCkgKyAiIHRvICIgKyBmYWxsYmFja0xvY2FsZSArIAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCBnb3QgYnVuZGxlICIgKyBidW5kbGUuZ2V0VUxvY2FsZSgpKTsgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImd0c2k6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGl0ZW07CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSdzIGxhbmd1YWdlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxhbmd1YWdlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TGFuZ3VhZ2UoKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TGFuZ3VhZ2VJbnRlcm5hbChsb2NhbGVJRCwgZ2V0RGVmYXVsdCgpLmxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsYW5ndWFnZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheUxhbmd1YWdlKFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheUxhbmd1YWdlSW50ZXJuYWwobG9jYWxlSUQsIGRpc3BsYXlMb2NhbGUubG9jYWxlSUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbG9jYWxlJ3MgbGFuZ3VhZ2UgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBsYW5ndWFnZSB3aWxsIGJlIGRpc3BsYXllZAorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbGFuZ3VhZ2UgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5TGFuZ3VhZ2UoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TGFuZ3VhZ2VJbnRlcm5hbChsb2NhbGVJRCwgZ2V0TmFtZShkaXNwbGF5TG9jYWxlSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbG9jYWxlJ3MgbGFuZ3VhZ2UgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogVGhpcyBpcyBhIGNvdmVyIGZvciB0aGUgSUNVNEMgQVBJLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBsYW5ndWFnZSB3aWxsIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGxhbmd1YWdlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUxhbmd1YWdlKFN0cmluZyBsb2NhbGVJRCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TGFuZ3VhZ2VJbnRlcm5hbChsb2NhbGVJRCwgZGlzcGxheUxvY2FsZS5sb2NhbGVJRCk7CisgICAgfQkgCisKKyAgICBzdGF0aWMgU3RyaW5nIGdldEN1cnJlbnRDb3VudHJ5SUQoU3RyaW5nIG9sZElEKXsKKyAgICAgICAgaW5pdENvdW50cnlUYWJsZXMoKTsKKyAgICAgICAgaW50IG9mZnNldCA9IGZpbmRJbmRleChfZGVwcmVjYXRlZENvdW50cmllcywgb2xkSUQpOworICAgICAgICBpZiAob2Zmc2V0ID49IDApIHsKKyAgICAgICAgICAgIHJldHVybiBfcmVwbGFjZW1lbnRDb3VudHJpZXNbb2Zmc2V0XTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb2xkSUQ7CisgICAgfQorICAgIHN0YXRpYyBTdHJpbmcgZ2V0Q3VycmVudExhbmd1YWdlSUQoU3RyaW5nIG9sZElEKXsKKyAgICAgICAgaW5pdExhbmd1YWdlVGFibGVzKCk7CisgICAgICAgIGludCBvZmZzZXQgPSBmaW5kSW5kZXgoX29ic29sZXRlTGFuZ3VhZ2VzLCBvbGRJRCk7CisgICAgICAgIGlmIChvZmZzZXQgPj0gMCkgeworICAgICAgICAgICAgcmV0dXJuIF9yZXBsYWNlbWVudExhbmd1YWdlc1tvZmZzZXRdOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvbGRJRDsgICAgICAgIAorICAgIH0KKwkKKworICAgIC8vIGRpc3BsYXlMb2NhbGVJRCBpcyBjYW5vbmljYWwsIGxvY2FsZUlEIG5lZWQgbm90IGJlIHNpbmNlIHBhcnNpbmcgd2lsbCBmaXggdGhpcy4KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUxhbmd1YWdlSW50ZXJuYWwoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBnZXRUYWJsZVN0cmluZygiTGFuZ3VhZ2VzIiwgbnVsbCwgbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRMYW5ndWFnZSgpLCBkaXNwbGF5TG9jYWxlSUQpOworICAgIH0KKyAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHNjcmlwdCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheVNjcmlwdCgpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlTY3JpcHRJbnRlcm5hbChsb2NhbGVJRCwgZ2V0RGVmYXVsdCgpLmxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgc2NyaXB0IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5U2NyaXB0KFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheVNjcmlwdEludGVybmFsKGxvY2FsZUlELCBkaXNwbGF5TG9jYWxlLmxvY2FsZUlEKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxvY2FsZSdzIHNjcmlwdCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIHNjcmlwdCB3aWxsIGJlIGRpc3BsYXllZAorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgc2NyaXB0IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheVNjcmlwdChTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlTY3JpcHRJbnRlcm5hbChsb2NhbGVJRCwgZ2V0TmFtZShkaXNwbGF5TG9jYWxlSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbG9jYWxlJ3Mgc2NyaXB0IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBsb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSB3aG9zZSBzY3JpcHQgd2lsbCBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBzY3JpcHQgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5U2NyaXB0KFN0cmluZyBsb2NhbGVJRCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5U2NyaXB0SW50ZXJuYWwobG9jYWxlSUQsIGRpc3BsYXlMb2NhbGUubG9jYWxlSUQpOworICAgIH0KKworICAgIC8vIGRpc3BsYXlMb2NhbGVJRCBpcyBjYW5vbmljYWwsIGxvY2FsZUlEIG5lZWQgbm90IGJlIHNpbmNlIHBhcnNpbmcgd2lsbCBmaXggdGhpcy4KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheVNjcmlwdEludGVybmFsKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gZ2V0VGFibGVTdHJpbmcoIlNjcmlwdHMiLCBudWxsLCBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldFNjcmlwdCgpLCBkaXNwbGF5TG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIGNvdW50cnkgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlDb3VudHJ5KCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheUNvdW50cnlJbnRlcm5hbChsb2NhbGVJRCwgZ2V0RGVmYXVsdCgpLmxvY2FsZUlEKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGlzIGxvY2FsZSdzIGNvdW50cnkgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBwcm92aWRlZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBjb3VudHJ5IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5Q291bnRyeShVTG9jYWxlIGRpc3BsYXlMb2NhbGUpeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheUNvdW50cnlJbnRlcm5hbChsb2NhbGVJRCwgZGlzcGxheUxvY2FsZS5sb2NhbGVJRCk7ICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsb2NhbGUncyBjb3VudHJ5IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2UgY291bnRyeSB3aWxsIGJlIGRpc3BsYXllZAorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgY291bnRyeSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlDb3VudHJ5KFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheUNvdW50cnlJbnRlcm5hbChsb2NhbGVJRCwgZ2V0TmFtZShkaXNwbGF5TG9jYWxlSUQpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbG9jYWxlJ3MgY291bnRyeSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIGNvdW50cnkgd2lsbCBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBjb3VudHJ5IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUNvdW50cnkoU3RyaW5nIGxvY2FsZUlELCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlDb3VudHJ5SW50ZXJuYWwobG9jYWxlSUQsIGRpc3BsYXlMb2NhbGUubG9jYWxlSUQpOworICAgIH0KKworICAgIC8vIGRpc3BsYXlMb2NhbGVJRCBpcyBjYW5vbmljYWwsIGxvY2FsZUlEIG5lZWQgbm90IGJlIHNpbmNlIHBhcnNpbmcgd2lsbCBmaXggdGhpcy4KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUNvdW50cnlJbnRlcm5hbChTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldFRhYmxlU3RyaW5nKCJDb3VudHJpZXMiLCBudWxsLCAgbmV3IElEUGFyc2VyKGxvY2FsZUlEKS5nZXRDb3VudHJ5KCksIGRpc3BsYXlMb2NhbGVJRCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUncyB2YXJpYW50IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhcmlhbnQgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlWYXJpYW50KCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheVZhcmlhbnRJbnRlcm5hbChsb2NhbGVJRCwgZ2V0RGVmYXVsdCgpLmxvY2FsZUlEKTsgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlJ3MgdmFyaWFudCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHJldHVybiB0aGUgbG9jYWxpemVkIHZhcmlhbnQgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlWYXJpYW50KFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheVZhcmlhbnRJbnRlcm5hbChsb2NhbGVJRCwgZGlzcGxheUxvY2FsZS5sb2NhbGVJRCk7ICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsb2NhbGUncyB2YXJpYW50IGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgcHJvdmlkZWQgbG9jYWxlLgorICAgICAqIFRoaXMgaXMgYSBjb3ZlciBmb3IgdGhlIElDVTRDIEFQSS4KKyAgICAgKiBAcGFyYW0gbG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgd2hvc2UgdmFyaWFudCB3aWxsIGJlIGRpc3BsYXllZAorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFyaWFudCBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlWYXJpYW50KFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCl7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5VmFyaWFudEludGVybmFsKGxvY2FsZUlELCBnZXROYW1lKGRpc3BsYXlMb2NhbGVJRCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbG9jYWxlJ3MgdmFyaWFudCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIHZhcmlhbnQgd2lsbCBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YXJpYW50IG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheVZhcmlhbnQoU3RyaW5nIGxvY2FsZUlELCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlWYXJpYW50SW50ZXJuYWwobG9jYWxlSUQsIGRpc3BsYXlMb2NhbGUubG9jYWxlSUQpOworICAgIH0KKworICAgIC8vIGRpc3BsYXlMb2NhbGVJRCBpcyBjYW5vbmljYWwsIGxvY2FsZUlEIG5lZWQgbm90IGJlIHNpbmNlIHBhcnNpbmcgd2lsbCBmaXggdGhpcy4KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheVZhcmlhbnRJbnRlcm5hbChTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldFRhYmxlU3RyaW5nKCJWYXJpYW50cyIsIG51bGwsIG5ldyBJRFBhcnNlcihsb2NhbGVJRCkuZ2V0VmFyaWFudCgpLCBkaXNwbGF5TG9jYWxlSUQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBrZXl3b3JkIG5hbWUuCisgICAgICogQHNlZSAjZ2V0S2V5d29yZHMKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZChTdHJpbmcga2V5d29yZCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheUtleXdvcmRJbnRlcm5hbChrZXl3b3JkLCBnZXREZWZhdWx0KCkubG9jYWxlSUQpOyAgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlSUQgdGhlIGlkIG9mIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUga2V5d29yZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQga2V5d29yZCBuYW1lLgorICAgICAqIEBzZWUgI2dldEtleXdvcmRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmQoU3RyaW5nIGtleXdvcmQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlLZXl3b3JkSW50ZXJuYWwoa2V5d29yZCwgZ2V0TmFtZShkaXNwbGF5TG9jYWxlSUQpKTsgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogQHBhcmFtIGtleXdvcmQgdGhlIGtleXdvcmQgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHRoZSBsb2NhbGUgaW4gd2hpY2ggdG8gZGlzcGxheSB0aGUga2V5d29yZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQga2V5d29yZCBuYW1lLgorICAgICAqIEBzZWUgI2dldEtleXdvcmRzCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmQoU3RyaW5nIGtleXdvcmQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheUtleXdvcmRJbnRlcm5hbChrZXl3b3JkLCBkaXNwbGF5TG9jYWxlLmxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvLyBkaXNwbGF5TG9jYWxlSUQgaXMgY2Fub25pY2FsLCBsb2NhbGVJRCBuZWVkIG5vdCBiZSBzaW5jZSBwYXJzaW5nIHdpbGwgZml4IHRoaXMuCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlLZXl3b3JkSW50ZXJuYWwoU3RyaW5nIGtleXdvcmQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgcmV0dXJuIGdldFRhYmxlU3RyaW5nKCJLZXlzIiwgbnVsbCwga2V5d29yZC50cmltKCkudG9Mb3dlckNhc2UoKSwgZGlzcGxheUxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEga2V5d29yZCB2YWx1ZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHdob3NlIHZhbHVlIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFsdWUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlLZXl3b3JkVmFsdWUoU3RyaW5nIGtleXdvcmQpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlLZXl3b3JkVmFsdWVJbnRlcm5hbChsb2NhbGVJRCwga2V5d29yZCwgZ2V0RGVmYXVsdCgpLmxvY2FsZUlEKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGtleXdvcmQgdmFsdWUgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHdob3NlIHZhbHVlIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIHZhbHVlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YWx1ZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGxheUtleXdvcmRWYWx1ZShTdHJpbmcga2V5d29yZCwgVUxvY2FsZSBkaXNwbGF5TG9jYWxlKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5S2V5d29yZFZhbHVlSW50ZXJuYWwobG9jYWxlSUQsIGtleXdvcmQsIGRpc3BsYXlMb2NhbGUubG9jYWxlSUQpOyAgIAorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIHZhbHVlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIGtleXdvcmQgdmFsdWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHdob3NlIHZhbHVlIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIHZhbHVlLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCB2YWx1ZSBuYW1lLgorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlLZXl3b3JkVmFsdWUoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcga2V5d29yZCwgU3RyaW5nIGRpc3BsYXlMb2NhbGVJRCkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheUtleXdvcmRWYWx1ZUludGVybmFsKGxvY2FsZUlELCBrZXl3b3JkLCBnZXROYW1lKGRpc3BsYXlMb2NhbGVJRCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBrZXl3b3JkIHZhbHVlIGxvY2FsaXplZCBmb3IgZGlzcGxheSBpbiB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBpZCBvZiB0aGUgbG9jYWxlIHdob3NlIGtleXdvcmQgdmFsdWUgaXMgdG8gYmUgZGlzcGxheWVkLgorICAgICAqIEBwYXJhbSBrZXl3b3JkIHRoZSBrZXl3b3JkIHdob3NlIHZhbHVlIGlzIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSB2YWx1ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgdmFsdWUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXREaXNwbGF5S2V5d29yZFZhbHVlKFN0cmluZyBsb2NhbGVJRCwgU3RyaW5nIGtleXdvcmQsIFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheUtleXdvcmRWYWx1ZUludGVybmFsKGxvY2FsZUlELCBrZXl3b3JkLCBkaXNwbGF5TG9jYWxlLmxvY2FsZUlEKTsKKyAgICB9CisKKyAgICAvLyBkaXNwbGF5TG9jYWxlSUQgaXMgY2Fub25pY2FsLCBsb2NhbGVJRCBuZWVkIG5vdCBiZSBzaW5jZSBwYXJzaW5nIHdpbGwgZml4IHRoaXMuCisgICAgcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldERpc3BsYXlLZXl3b3JkVmFsdWVJbnRlcm5hbChTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBrZXl3b3JkLCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIGtleXdvcmQgPSBrZXl3b3JkLnRyaW0oKS50b0xvd2VyQ2FzZSgpOworICAgICAgICBTdHJpbmcgdmFsdWUgPSBuZXcgSURQYXJzZXIobG9jYWxlSUQpLmdldEtleXdvcmRWYWx1ZShrZXl3b3JkKTsKKyAgICAgICAgcmV0dXJuIGdldFRhYmxlU3RyaW5nKCJUeXBlcyIsIGtleXdvcmQsIHZhbHVlLCBkaXNwbGF5TG9jYWxlSUQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoaXMgbG9jYWxlIG5hbWUgbG9jYWxpemVkIGZvciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbG9jYWxlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwbGF5TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lSW50ZXJuYWwobG9jYWxlSUQsIGdldERlZmF1bHQoKS5sb2NhbGVJRCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhpcyBsb2NhbGUgbmFtZSBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSB0aGUgbG9jYWxlIGluIHdoaWNoIHRvIGRpc3BsYXkgdGhlIGxvY2FsZSBuYW1lLgorICAgICAqIEByZXR1cm4gdGhlIGxvY2FsaXplZCBsb2NhbGUgbmFtZS4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERpc3BsYXlOYW1lKFVMb2NhbGUgZGlzcGxheUxvY2FsZSkgeworICAgICAgICByZXR1cm4gZ2V0RGlzcGxheU5hbWVJbnRlcm5hbChsb2NhbGVJRCwgZGlzcGxheUxvY2FsZS5sb2NhbGVJRCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSBJRCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGUgd2hvc2UgbmFtZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGVJRCB0aGUgaWQgb2YgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBsb2NhbGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbG9jYWxlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGxvY2FsZUlELCBTdHJpbmcgZGlzcGxheUxvY2FsZUlEKSB7CisgICAgICAgIHJldHVybiBnZXREaXNwbGF5TmFtZUludGVybmFsKGxvY2FsZUlELCBnZXROYW1lKGRpc3BsYXlMb2NhbGVJRCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSBJRCBsb2NhbGl6ZWQgZm9yIGRpc3BsYXkgaW4gdGhlIHByb3ZpZGVkIGxvY2FsZS4KKyAgICAgKiBUaGlzIGlzIGEgY292ZXIgZm9yIHRoZSBJQ1U0QyBBUEkuCisgICAgICogQHBhcmFtIGxvY2FsZUlEIHRoZSBsb2NhbGUgd2hvc2UgbmFtZSBpcyB0byBiZSBkaXNwbGF5ZWQuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgdGhlIGxvY2FsZSBpbiB3aGljaCB0byBkaXNwbGF5IHRoZSBsb2NhbGUgbmFtZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGl6ZWQgbG9jYWxlIG5hbWUuCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWUoU3RyaW5nIGxvY2FsZUlELCBVTG9jYWxlIGRpc3BsYXlMb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIGdldERpc3BsYXlOYW1lSW50ZXJuYWwobG9jYWxlSUQsIGRpc3BsYXlMb2NhbGUubG9jYWxlSUQpOworICAgIH0KKworICAgIC8vIGRpc3BsYXlMb2NhbGVJRCBpcyBjYW5vbmljYWwsIGxvY2FsZUlEIG5lZWQgbm90IGJlIHNpbmNlIHBhcnNpbmcgd2lsbCBmaXggdGhpcy4KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgZ2V0RGlzcGxheU5hbWVJbnRlcm5hbChTdHJpbmcgbG9jYWxlSUQsIFN0cmluZyBkaXNwbGF5TG9jYWxlSUQpIHsKKyAgICAgICAgLy8gbGFuZworICAgICAgICAvLyBsYW5nIChzY3JpcHQsIGNvdW50cnksIHZhcmlhbnQsIGtleXdvcmQ9dmFsdWUsIC4uLikKKyAgICAgICAgLy8gc2NyaXB0LCBjb3VudHJ5LCB2YXJpYW50LCBrZXl3b3JkPXZhbHVlLCAuLi4KKworICAgICAgICBmaW5hbCBTdHJpbmdbXSB0YWJsZU5hbWVzID0geyAiTGFuZ3VhZ2VzIiwgIlNjcmlwdHMiLCAiQ291bnRyaWVzIiwgIlZhcmlhbnRzIiB9OworCisgICAgICAgIElDVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IChJQ1VSZXNvdXJjZUJ1bmRsZSlVUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlSW5zdGFuY2UoSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgZGlzcGxheUxvY2FsZUlEKTsKKworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmID0gbmV3IFN0cmluZ0J1ZmZlcigpOworCisgICAgICAgIElEUGFyc2VyIHBhcnNlciA9IG5ldyBJRFBhcnNlcihsb2NhbGVJRCk7CisgICAgICAgIFN0cmluZ1tdIG5hbWVzID0gcGFyc2VyLmdldExhbmd1YWdlU2NyaXB0Q291bnRyeVZhcmlhbnQoKTsKKworICAgICAgICBib29sZWFuIGhhdmVMYW5ndWFnZSA9IG5hbWVzWzBdLmxlbmd0aCgpID4gMDsKKyAgICAgICAgYm9vbGVhbiBvcGVuUGFyZW4gPSBmYWxzZTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBuYW1lc1tpXTsKKyAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgIG5hbWUgPSBnZXRUYWJsZVN0cmluZyh0YWJsZU5hbWVzW2ldLCBudWxsLCBuYW1lLCBidW5kbGUpOworICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPiAwKSB7IC8vIG5lZWQgYSBzZXBhcmF0b3IKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVMYW5ndWFnZSAmICFvcGVuUGFyZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoIiAoIik7CisgICAgICAgICAgICAgICAgICAgICAgICBvcGVuUGFyZW4gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKG5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgTWFwIG0gPSBwYXJzZXIuZ2V0S2V5d29yZE1hcCgpOworICAgICAgICBpZiAoIW0uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBJdGVyYXRvciBrZXlzID0gbS5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAoa2V5cy5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaGF2ZUxhbmd1YWdlICYgIW9wZW5QYXJlbikgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCgiICgiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5QYXJlbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIE1hcC5FbnRyeSBlID0gKE1hcC5FbnRyeSlrZXlzLm5leHQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZyllLmdldEtleSgpOworICAgICAgICAgICAgICAgIFN0cmluZyB2YWwgPSAoU3RyaW5nKWUuZ2V0VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKGdldFRhYmxlU3RyaW5nKCJLZXlzIiwgbnVsbCwga2V5LCBidW5kbGUpKTsKKyAgICAgICAgICAgICAgICBidWYuYXBwZW5kKCI9Iik7CisgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChnZXRUYWJsZVN0cmluZygiVHlwZXMiLCBrZXksIHZhbCwgYnVuZGxlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob3BlblBhcmVuKSB7CisgICAgICAgICAgICBidWYuYXBwZW5kKCIpIik7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCk7CisgICAgfQorCisgICAgLyoqIAorICAgICAqIFNlbGVjdG9yIGZvciA8dHQ+Z2V0TG9jYWxlKCk8L3R0PiBpbmRpY2F0aW5nIHRoZSBsb2NhbGUgb2YgdGhlCisgICAgICogcmVzb3VyY2UgY29udGFpbmluZyB0aGUgZGF0YS4gIFRoaXMgaXMgYWx3YXlzIGF0IG9yIGFib3ZlIHRoZQorICAgICAqIHZhbGlkIGxvY2FsZS4gIElmIHRoZSB2YWxpZCBsb2NhbGUgZG9lcyBub3QgY29udGFpbiB0aGUKKyAgICAgKiBzcGVjaWZpYyBkYXRhIGJlaW5nIHJlcXVlc3RlZCwgdGhlbiB0aGUgYWN0dWFsIGxvY2FsZSB3aWxsIGJlCisgICAgICogYWJvdmUgdGhlIHZhbGlkIGxvY2FsZS4gIElmIHRoZSBvYmplY3Qgd2FzIG5vdCBjb25zdHJ1Y3RlZCBmcm9tCisgICAgICogbG9jYWxlIGRhdGEsIHRoZW4gdGhlIHZhbGlkIGxvY2FsZSBpcyA8aT5udWxsPC9pPi4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMi44IChyZXRhaW4pCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBUeXBlIEFDVFVBTF9MT0NBTEUgPSBuZXcgVHlwZSgwKTsKKyAKKyAgICAvKiogCisgICAgICogU2VsZWN0b3IgZm9yIDx0dD5nZXRMb2NhbGUoKTwvdHQ+IGluZGljYXRpbmcgdGhlIG1vc3Qgc3BlY2lmaWMKKyAgICAgKiBsb2NhbGUgZm9yIHdoaWNoIGFueSBkYXRhIGV4aXN0cy4gIFRoaXMgaXMgYWx3YXlzIGF0IG9yIGFib3ZlCisgICAgICogdGhlIHJlcXVlc3RlZCBsb2NhbGUsIGFuZCBhdCBvciBiZWxvdyB0aGUgYWN0dWFsIGxvY2FsZS4gIElmCisgICAgICogdGhlIHJlcXVlc3RlZCBsb2NhbGUgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbnkgcmVzb3VyY2UgZGF0YSwKKyAgICAgKiB0aGVuIHRoZSB2YWxpZCBsb2NhbGUgd2lsbCBiZSBhYm92ZSB0aGUgcmVxdWVzdGVkIGxvY2FsZS4gIElmCisgICAgICogdGhlIG9iamVjdCB3YXMgbm90IGNvbnN0cnVjdGVkIGZyb20gbG9jYWxlIGRhdGEsIHRoZW4gdGhlCisgICAgICogYWN0dWFsIGxvY2FsZSBpcyA8aT5udWxsPC9pPi4KKyAgICAgKgorICAgICAqIDxwPk5vdGU6IFRoZSB2YWxpZCBsb2NhbGUgd2lsbCBiZSByZXR1cm5lZCBjb3JyZWN0bHkgaW4gSUNVCisgICAgICogMy4wIG9yIGxhdGVyLiAgSW4gSUNVIDIuOCwgaXQgaXMgbm90IHJldHVybmVkIGNvcnJlY3RseS4KKyAgICAgKiBAZHJhZnQgSUNVIDIuOCAocmV0YWluKQorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLyAKKyAgICBwdWJsaWMgc3RhdGljIFR5cGUgVkFMSURfTE9DQUxFID0gbmV3IFR5cGUoMSk7CisgICAgCisgICAgLyoqCisgICAgICogT3BhcXVlIHNlbGVjdG9yIGVudW0gZm9yIDx0dD5nZXRMb2NhbGUoKTwvdHQ+LgorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlCisgICAgICogQHNlZSBjb20uaWJtLmljdS51dGlsLlVMb2NhbGUjQUNUVUFMX0xPQ0FMRQorICAgICAqIEBzZWUgY29tLmlibS5pY3UudXRpbC5VTG9jYWxlI1ZBTElEX0xPQ0FMRQorICAgICAqIEBkcmFmdCBJQ1UgMi44IChyZXRhaW5BbGwpCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBUeXBlIHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgbG9jYWxlVHlwZTsKKyAgICAgICAgcHJpdmF0ZSBUeXBlKGludCB0eXBlKSB7IGxvY2FsZVR5cGUgPSB0eXBlOyB9CisgICAgfQorICAgIAorICAgIAorICAvKioKKyAgICAqIEJhc2VkIG9uIGEgSFRUUCBmb3JtYXR0ZWQgbGlzdCBvZiBhY2NlcHRhYmxlIGxvY2FsZXMsIGRldGVybWluZSBhbiBhdmFpbGFibGUgbG9jYWxlIGZvciB0aGUgdXNlci4KKyAgICAqIE51bGxQb2ludGVyRXhjZXB0aW9uIGlzIHRocm93biBpZiBhY2NlcHRMYW5ndWFnZUxpc3Qgb3IgYXZhaWxhYmxlTG9jYWxlcyBpcworICAgICogbnVsbC4gIElmIGZhbGxiYWNrIGlzIG5vbi1udWxsLCBpdCB3aWxsIGNvbnRhaW4gdHJ1ZSBpZiBhIGZhbGxiYWNrIGxvY2FsZSAob25lCisgICAgKiBub3QgaW4gdGhlIGFjY2VwdExhbmd1YWdlTGlzdCkgd2FzIHJldHVybmVkLiAgVGhlIHZhbHVlIG9uIGVudHJ5IGlzIGlnbm9yZWQuIAorICAgICogVUxvY2FsZSB3aWxsIGJlIG9uZSBvZiB0aGUgbG9jYWxlcyBpbiBhdmFpbGFibGVMb2NhbGVzLCBvciB0aGUgUk9PVCBVTG9jYWxlIGlmCisgICAgKiBpZiBhIFJPT1QgbG9jYWxlIHdhcyB1c2VkIGFzIGEgZmFsbGJhY2sgKGJlY2F1c2Ugbm90aGluZyBlbHNlIGluCisgICAgKiBhdmFpbGFibGVMb2NhbGVzIG1hdGNoZWQpLiAgTm8gVUxvY2FsZSBhcnJheSBlbGVtZW50IHNob3VsZCBiZSBudWxsOyBiZWhhdmlvcgorICAgICogaXMgdW5kZWZpbmVkIGlmIHRoaXMgaXMgdGhlIGNhc2UuCisgICAgKiBAcGFyYW0gYWNjZXB0TGFuZ3VhZ2VMaXN0IGxpc3QgaW4gSFRUUCAiQWNjZXB0LUxhbmd1YWdlOiIgZm9ybWF0IG9mIGFjY2VwdGFibGUgbG9jYWxlcworICAgICogQHBhcmFtIGF2YWlsYWJsZUxvY2FsZXMgbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcy4gT25lIG9mIHRoZXNlIHdpbGwgYmUgcmV0dXJuZWQuCisgICAgKiBAcGFyYW0gZmFsbGJhY2sgaWYgbm9uLW51bGwsIGEgMS1lbGVtZW50IGFycmF5IGNvbnRhaW5pbmcgYSBib29sZWFuIHRvIGJlIHNldCB3aXRoIHRoZSBmYWxsYmFjayBzdGF0dXMKKyAgICAqIEByZXR1cm4gb25lIG9mIHRoZSBsb2NhbGVzIGZyb20gdGhlIGF2YWlsYWJsZUxvY2FsZXMgbGlzdCwgb3IgbnVsbCBpZiBub25lIG1hdGNoCisgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgKi8KKworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBhY2NlcHRMYW5ndWFnZShTdHJpbmcgYWNjZXB0TGFuZ3VhZ2VMaXN0LCBVTG9jYWxlW10gYXZhaWxhYmxlTG9jYWxlcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW5bXSBmYWxsYmFjaykgeworICAgICAgICAvKioKKyAgICAgICAgICogQGludGVybmFsIElDVSAzLjQKKyAgICAgICAgICovCisgICAgICAgIGNsYXNzIFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEgaW1wbGVtZW50cyBDb21wYXJhYmxlIHsKKyAgICAgICAgICAgIHByaXZhdGUgZG91YmxlIHE7CisgICAgICAgICAgICBwcml2YXRlIGRvdWJsZSBzZXJpYWw7CisgICAgICAgICAgICBwdWJsaWMgVUxvY2FsZUFjY2VwdExhbmd1YWdlUShkb3VibGUgdGhlcSwgaW50IHRoZXNlcmlhbCkgeworICAgICAgICAgICAgICAgIHEgPSB0aGVxOworICAgICAgICAgICAgICAgIHNlcmlhbCA9IHRoZXNlcmlhbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCBvKSB7CisgICAgICAgICAgICAgICAgVUxvY2FsZUFjY2VwdExhbmd1YWdlUSBvdGhlciA9IChVTG9jYWxlQWNjZXB0TGFuZ3VhZ2VRKSBvOworICAgICAgICAgICAgICAgIGlmKHEgPiBvdGhlci5xKSB7IC8vIHJldmVyc2UgLSB0byBzb3J0IGluIGRlc2NlbmRpbmcgb3JkZXIKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZihxIDwgb3RoZXIucSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoc2VyaWFsIDwgb3RoZXIuc2VyaWFsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoc2VyaWFsID4gb3RoZXIuc2VyaWFsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOyAvLyBzYW1lIG9iamVjdAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIDFzdDogcGFyc2Ugb3V0IHRoZSBhY2NlcHRMYW5ndWFnZUxpc3QgaW50byBhbiBhcnJheQorICAgICAgICAKKyAgICAgICAgVHJlZU1hcCBtYXAgPSBuZXcgVHJlZU1hcCgpOworICAgICAgICAKKyAgICAgICAgZmluYWwgaW50IGwgPSBhY2NlcHRMYW5ndWFnZUxpc3QubGVuZ3RoKCk7CisgICAgICAgIGludCBuOworICAgICAgICBpbnQgbGFzdD0tMTsKKyAgICAgICAgZm9yKG49MDtuPGw7bisrKSB7CisgICAgICAgICAgICBpbnQgaXRlbUVuZCA9IGFjY2VwdExhbmd1YWdlTGlzdC5pbmRleE9mKCcsJyxuKTsKKyAgICAgICAgICAgIGlmKGl0ZW1FbmQgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBpdGVtRW5kID0gbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBwYXJhbUVuZCA9IGFjY2VwdExhbmd1YWdlTGlzdC5pbmRleE9mKCc7JyxuKTsKKyAgICAgICAgICAgIGRvdWJsZSBxID0gMS4wOworIAorICAgICAgICAgICAgaWYoKHBhcmFtRW5kICE9IC0xKSAmJiAocGFyYW1FbmQgPCBpdGVtRW5kKSkgeworICAgICAgICAgICAgICAgIC8qIHNlbWljb2xvbiAoOykgaXMgY2xvc2VyIHRoYW4gZW5kICgsKSAqLworICAgICAgICAgICAgICAgIGludCB0ID0gcGFyYW1FbmQgKyAxOworICAgICAgICAgICAgICAgIHdoaWxlKFVDaGFyYWN0ZXIuaXNXaGl0ZXNwYWNlKGFjY2VwdExhbmd1YWdlTGlzdC5jaGFyQXQodCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KT09J3EnKSB7CisgICAgICAgICAgICAgICAgICAgIHQrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2hpbGUoVUNoYXJhY3Rlci5pc1doaXRlc3BhY2UoYWNjZXB0TGFuZ3VhZ2VMaXN0LmNoYXJBdCh0KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihhY2NlcHRMYW5ndWFnZUxpc3QuY2hhckF0KHQpPT0nPScpIHsKKyAgICAgICAgICAgICAgICAgICAgdCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZShVQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShhY2NlcHRMYW5ndWFnZUxpc3QuY2hhckF0KHQpKSkgeworICAgICAgICAgICAgICAgICAgICB0Kys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyB2YWwgPSBhY2NlcHRMYW5ndWFnZUxpc3Quc3Vic3RyaW5nKHQsaXRlbUVuZCkudHJpbSgpOworICAgICAgICAgICAgICAgICAgICBxID0gRG91YmxlLnBhcnNlRG91YmxlKHZhbCk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIG5mZSkgeworICAgICAgICAgICAgICAgICAgICBxID0gMS4wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcSA9IDEuMDsgLy9kZWZhdWx0CisgICAgICAgICAgICAgICAgcGFyYW1FbmQgPSBpdGVtRW5kOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdHJpbmcgbG9jID0gYWNjZXB0TGFuZ3VhZ2VMaXN0LnN1YnN0cmluZyhuLHBhcmFtRW5kKS50cmltKCk7CisgICAgICAgICAgICBpbnQgc2VyaWFsID0gbWFwLnNpemUoKTsKKyAgICAgICAgICAgIFVMb2NhbGVBY2NlcHRMYW5ndWFnZVEgZW50cnkgPSBuZXcgVUxvY2FsZUFjY2VwdExhbmd1YWdlUShxLHNlcmlhbCk7CisgICAgICAgICAgICBtYXAucHV0KGVudHJ5LCBuZXcgVUxvY2FsZShjYW5vbmljYWxpemUobG9jKSkpOyAvLyBzb3J0IGluIHJldmVyc2Ugb3JkZXIuLiAgIDEuMCwgMC45LCAwLjggLi4gZXRjCisgICAgICAgICAgICBuID0gaXRlbUVuZDsgLy8gZ2V0IG5leHQgaXRlbS4gKG4rKyB3aWxsIHNraXAgb3ZlciBkZWxpbWl0ZXIpCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIDIuIHB1bGwgb3V0IHRoZSBtYXAgCisgICAgICAgIFVMb2NhbGUgYWNjZXB0TGlzdFtdID0gKFVMb2NhbGVbXSltYXAudmFsdWVzKCkudG9BcnJheShuZXcgVUxvY2FsZVttYXAuc2l6ZSgpXSk7CisgICAgICAgIAorICAgICAgICAvLyAzLiBjYWxsIHRoZSByZWFsIGZ1bmN0aW9uCisgICAgICAgIHJldHVybiBhY2NlcHRMYW5ndWFnZShhY2NlcHRMaXN0LCBhdmFpbGFibGVMb2NhbGVzLCBmYWxsYmFjayk7CisgICAgfQorICAgIAorICAgLyoqCisgICAgKiBCYXNlZCBvbiBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBsb2NhbGVzLCBkZXRlcm1pbmUgYW4gYXZhaWxhYmxlIGxvY2FsZSBmb3IgdGhlIHVzZXIuCisgICAgKiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpcyB0aHJvd24gaWYgYWNjZXB0TGFuZ3VhZ2VMaXN0IG9yIGF2YWlsYWJsZUxvY2FsZXMgaXMKKyAgICAqIG51bGwuICBJZiBmYWxsYmFjayBpcyBub24tbnVsbCwgaXQgd2lsbCBjb250YWluIHRydWUgaWYgYSBmYWxsYmFjayBsb2NhbGUgKG9uZQorICAgICogbm90IGluIHRoZSBhY2NlcHRMYW5ndWFnZUxpc3QpIHdhcyByZXR1cm5lZC4gIFRoZSB2YWx1ZSBvbiBlbnRyeSBpcyBpZ25vcmVkLiAKKyAgICAqIFVMb2NhbGUgd2lsbCBiZSBvbmUgb2YgdGhlIGxvY2FsZXMgaW4gYXZhaWxhYmxlTG9jYWxlcywgb3IgdGhlIFJPT1QgVUxvY2FsZSBpZgorICAgICogaWYgYSBST09UIGxvY2FsZSB3YXMgdXNlZCBhcyBhIGZhbGxiYWNrIChiZWNhdXNlIG5vdGhpbmcgZWxzZSBpbgorICAgICogYXZhaWxhYmxlTG9jYWxlcyBtYXRjaGVkKS4gIE5vIFVMb2NhbGUgYXJyYXkgZWxlbWVudCBzaG91bGQgYmUgbnVsbDsgYmVoYXZpb3IKKyAgICAqIGlzIHVuZGVmaW5lZCBpZiB0aGlzIGlzIHRoZSBjYXNlLgorICAgICogQHBhcmFtIGFjY2VwdExhbmd1YWdlTGlzdCBsaXN0IG9mIGFjY2VwdGFibGUgbG9jYWxlcworICAgICogQHBhcmFtIGF2YWlsYWJsZUxvY2FsZXMgbGlzdCBvZiBhdmFpbGFibGUgbG9jYWxlcy4gT25lIG9mIHRoZXNlIHdpbGwgYmUgcmV0dXJuZWQuCisgICAgKiBAcGFyYW0gZmFsbGJhY2sgaWYgbm9uLW51bGwsIGEgMS1lbGVtZW50IGFycmF5IGNvbnRhaW5pbmcgYSBib29sZWFuIHRvIGJlIHNldCB3aXRoIHRoZSBmYWxsYmFjayBzdGF0dXMKKyAgICAqIEByZXR1cm4gb25lIG9mIHRoZSBsb2NhbGVzIGZyb20gdGhlIGF2YWlsYWJsZUxvY2FsZXMgbGlzdCwgb3IgbnVsbCBpZiBub25lIG1hdGNoCisgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgKi8KKworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBhY2NlcHRMYW5ndWFnZShVTG9jYWxlW10gYWNjZXB0TGFuZ3VhZ2VMaXN0LCBVTG9jYWxlW10KKyAgICBhdmFpbGFibGVMb2NhbGVzLCBib29sZWFuW10gZmFsbGJhY2spIHsKKyAgICAgICAgLy8gZmFsbGJhY2tsaXN0CisgICAgICAgIGludCBpLGo7CisgICAgICAgIGlmKGZhbGxiYWNrICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZhbGxiYWNrWzBdPXRydWU7CisgICAgICAgIH0KKyAgICAgICAgZm9yKGk9MDtpPGFjY2VwdExhbmd1YWdlTGlzdC5sZW5ndGg7aSsrKSB7CisgICAgICAgICAgICBVTG9jYWxlIGFMb2NhbGUgPSBhY2NlcHRMYW5ndWFnZUxpc3RbaV07CisgICAgICAgICAgICBib29sZWFuW10gc2V0RmFsbGJhY2sgPSBmYWxsYmFjazsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBmb3Ioaj0wO2o8YXZhaWxhYmxlTG9jYWxlcy5sZW5ndGg7aisrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmKGF2YWlsYWJsZUxvY2FsZXNbal0uZXF1YWxzKGFMb2NhbGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihzZXRGYWxsYmFjayAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RmFsbGJhY2tbMF09ZmFsc2U7IC8vIGZpcnN0IHRpbWUgd2l0aCB0aGlzIGxvY2FsZSAtIG5vdCBhIGZhbGxiYWNrLgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF2YWlsYWJsZUxvY2FsZXNbal07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgTG9jYWxlIGxvYyA9IGFMb2NhbGUudG9Mb2NhbGUoKTsKKyAgICAgICAgICAgICAgICBMb2NhbGUgcGFyZW50ID0gTG9jYWxlVXRpbGl0eS5mYWxsYmFjayhsb2MpOworICAgICAgICAgICAgICAgIGlmKHBhcmVudCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGFMb2NhbGUgPSBuZXcgVUxvY2FsZShwYXJlbnQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFMb2NhbGUgPSBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXRGYWxsYmFjayA9IG51bGw7IC8vIERvIG5vdCBzZXQgZmFsbGJhY2sgaW4gbGF0ZXIgaXRlcmF0aW9ucworICAgICAgICAgICAgfSB3aGlsZSAoYUxvY2FsZSAhPSBudWxsKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgIC8qKgorICAgICogQmFzZWQgb24gYSBIVFRQIGZvcm1hdHRlZCBsaXN0IG9mIGFjY2VwdGFibGUgbG9jYWxlcywgZGV0ZXJtaW5lIGFuIGF2YWlsYWJsZSBsb2NhbGUgZm9yIHRoZSB1c2VyLgorICAgICogTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFjY2VwdExhbmd1YWdlTGlzdCBvciBhdmFpbGFibGVMb2NhbGVzIGlzCisgICAgKiBudWxsLiAgSWYgZmFsbGJhY2sgaXMgbm9uLW51bGwsIGl0IHdpbGwgY29udGFpbiB0cnVlIGlmIGEgZmFsbGJhY2sgbG9jYWxlIChvbmUKKyAgICAqIG5vdCBpbiB0aGUgYWNjZXB0TGFuZ3VhZ2VMaXN0KSB3YXMgcmV0dXJuZWQuICBUaGUgdmFsdWUgb24gZW50cnkgaXMgaWdub3JlZC4gCisgICAgKiBVTG9jYWxlIHdpbGwgYmUgb25lIG9mIHRoZSBsb2NhbGVzIGluIGF2YWlsYWJsZUxvY2FsZXMsIG9yIHRoZSBST09UIFVMb2NhbGUgaWYKKyAgICAqIGlmIGEgUk9PVCBsb2NhbGUgd2FzIHVzZWQgYXMgYSBmYWxsYmFjayAoYmVjYXVzZSBub3RoaW5nIGVsc2UgaW4KKyAgICAqIGF2YWlsYWJsZUxvY2FsZXMgbWF0Y2hlZCkuICBObyBVTG9jYWxlIGFycmF5IGVsZW1lbnQgc2hvdWxkIGJlIG51bGw7IGJlaGF2aW9yCisgICAgKiBpcyB1bmRlZmluZWQgaWYgdGhpcyBpcyB0aGUgY2FzZS4KKyAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBjaG9vc2UgYSBsb2NhbGUgZnJvbSB0aGUgVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCkgbGlzdCBhcyBhdmFpbGFibGUuCisgICAgKiBAcGFyYW0gYWNjZXB0TGFuZ3VhZ2VMaXN0IGxpc3QgaW4gSFRUUCAiQWNjZXB0LUxhbmd1YWdlOiIgZm9ybWF0IG9mIGFjY2VwdGFibGUgbG9jYWxlcworICAgICogQHBhcmFtIGZhbGxiYWNrIGlmIG5vbi1udWxsLCBhIDEtZWxlbWVudCBhcnJheSBjb250YWluaW5nIGEgYm9vbGVhbiB0byBiZSBzZXQgd2l0aCB0aGUgZmFsbGJhY2sgc3RhdHVzCisgICAgKiBAcmV0dXJuIG9uZSBvZiB0aGUgbG9jYWxlcyBmcm9tIHRoZSBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKSBsaXN0LCBvciBudWxsIGlmIG5vbmUgbWF0Y2gKKyAgICAqIEBkcmFmdCBJQ1UgMy40CisgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAqLworCisgICAgcHVibGljIHN0YXRpYyBVTG9jYWxlIGFjY2VwdExhbmd1YWdlKFN0cmluZyBhY2NlcHRMYW5ndWFnZUxpc3QsIGJvb2xlYW5bXSBmYWxsYmFjaykgeworICAgICAgICByZXR1cm4gYWNjZXB0TGFuZ3VhZ2UoYWNjZXB0TGFuZ3VhZ2VMaXN0LCBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKSwKKyAgICAgICAgICAgICAgICAJCQkJZmFsbGJhY2spOworICAgIH0KKworICAgLyoqCisgICAgKiBCYXNlZCBvbiBhbiBvcmRlcmVkIGFycmF5IG9mIGFjY2VwdGFibGUgbG9jYWxlcywgZGV0ZXJtaW5lIGFuIGF2YWlsYWJsZSBsb2NhbGUgZm9yIHRoZSB1c2VyLgorICAgICogTnVsbFBvaW50ZXJFeGNlcHRpb24gaXMgdGhyb3duIGlmIGFjY2VwdExhbmd1YWdlTGlzdCBvciBhdmFpbGFibGVMb2NhbGVzIGlzCisgICAgKiBudWxsLiAgSWYgZmFsbGJhY2sgaXMgbm9uLW51bGwsIGl0IHdpbGwgY29udGFpbiB0cnVlIGlmIGEgZmFsbGJhY2sgbG9jYWxlIChvbmUKKyAgICAqIG5vdCBpbiB0aGUgYWNjZXB0TGFuZ3VhZ2VMaXN0KSB3YXMgcmV0dXJuZWQuICBUaGUgdmFsdWUgb24gZW50cnkgaXMgaWdub3JlZC4gCisgICAgKiBVTG9jYWxlIHdpbGwgYmUgb25lIG9mIHRoZSBsb2NhbGVzIGluIGF2YWlsYWJsZUxvY2FsZXMsIG9yIHRoZSBST09UIFVMb2NhbGUgaWYKKyAgICAqIGlmIGEgUk9PVCBsb2NhbGUgd2FzIHVzZWQgYXMgYSBmYWxsYmFjayAoYmVjYXVzZSBub3RoaW5nIGVsc2UgaW4KKyAgICAqIGF2YWlsYWJsZUxvY2FsZXMgbWF0Y2hlZCkuICBObyBVTG9jYWxlIGFycmF5IGVsZW1lbnQgc2hvdWxkIGJlIG51bGw7IGJlaGF2aW9yCisgICAgKiBpcyB1bmRlZmluZWQgaWYgdGhpcyBpcyB0aGUgY2FzZS4KKyAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBjaG9vc2UgYSBsb2NhbGUgZnJvbSB0aGUgVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCkgbGlzdCBhcyBhdmFpbGFibGUuCisgICAgKiBAcGFyYW0gYWNjZXB0TGFuZ3VhZ2VMaXN0IG9yZGVyZWQgYXJyYXkgb2YgYWNjZXB0YWJsZSBsb2NhbGVzIChwcmVmZXJyZWQgYXJlIGxpc3RlZCBmaXJzdCkKKyAgICAqIEBwYXJhbSBmYWxsYmFjayBpZiBub24tbnVsbCwgYSAxLWVsZW1lbnQgYXJyYXkgY29udGFpbmluZyBhIGJvb2xlYW4gdG8gYmUgc2V0IHdpdGggdGhlIGZhbGxiYWNrIHN0YXR1cworICAgICogQHJldHVybiBvbmUgb2YgdGhlIGxvY2FsZXMgZnJvbSB0aGUgVUxvY2FsZS5nZXRBdmFpbGFibGVMb2NhbGVzKCkgbGlzdCwgb3IgbnVsbCBpZiBub25lIG1hdGNoCisgICAgKiBAZHJhZnQgSUNVIDMuNAorICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgKi8KKworICAgIHB1YmxpYyBzdGF0aWMgVUxvY2FsZSBhY2NlcHRMYW5ndWFnZShVTG9jYWxlW10gYWNjZXB0TGFuZ3VhZ2VMaXN0LCBib29sZWFuW10KKyAgICBmYWxsYmFjaykgeworICAgICAgICByZXR1cm4gYWNjZXB0TGFuZ3VhZ2UoYWNjZXB0TGFuZ3VhZ2VMaXN0LCBVTG9jYWxlLmdldEF2YWlsYWJsZUxvY2FsZXMoKSwKKwkJCQlmYWxsYmFjayk7CisgICAgfSAgICAKKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL1VSZXNvdXJjZUJ1bmRsZS5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVVJlc291cmNlQnVuZGxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU5YWNlMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1VSZXNvdXJjZUJ1bmRsZS5qYXZhCkBAIC0wLDAgKzEsNTI0IEBACisvKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmLlNvZnRSZWZlcmVuY2U7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCitpbXBvcnQgY29tLmlibS5pY3UuaW1wbC5JQ1VSZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBjb20uaWJtLmljdS5pbXBsLklDVVJlc291cmNlQnVuZGxlUmVhZGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LmltcGwuUmVzb3VyY2VCdW5kbGVXcmFwcGVyOworaW1wb3J0IGNvbS5pYm0uaWN1LnV0aWwuVUxvY2FsZTsKKworLyoqCisgKiBBIGNsYXNzIHJlcHJlc2VudGluZyBhIGNvbGxlY3Rpb24gb2YgcmVzb3VyY2UgaW5mb3JtYXRpb24gcGVydGFpbmluZyB0byBhIGdpdmVuCisgKiBsb2NhbGUuIEEgcmVzb3VyY2UgYnVuZGxlIHByb3ZpZGVzIGEgd2F5IG9mIGFjY2Vzc2luZyBsb2NhbGUtIHNwZWNmaWMgaW5mb3JtYXRpb24gaW4KKyAqIGEgZGF0YSBmaWxlLiBZb3UgY3JlYXRlIGEgcmVzb3VyY2UgYnVuZGxlIHRoYXQgbWFuYWdlcyB0aGUgcmVzb3VyY2VzIGZvciBhIGdpdmVuCisgKiBsb2NhbGUgYW5kIHRoZW4gYXNrIGl0IGZvciBpbmRpdmlkdWFsIHJlc291cmNlcy4KKyAqIDxQPgorICogSW4gUmVzb3VyY2VCdW5kbGUgY2xhc3MsIGFuIG9iamVjdCBpcyBjcmVhdGVkIAorICogYW5kIHRoZSBzdWIgaXRlbXMgYXJlIGZldGNoZWQgdXNpbmcgZ2V0U3RyaW5nLCBnZXRPYmplY3QgbWV0aG9kcy4gCisgKiBJbiBVUmVzb3VyY2VCdW5kbGUsZWFjaCBpbmRpdmlkdWFsIGVsZW1lbnQgb2YgYSByZXNvdXJjZSBpcyBhIHJlc291cmNlIGJ5IGl0c2VsZi4KKyAqIAorICogPFA+CisgKiBSZXNvdXJjZSBidW5kbGVzIGluIElDVSBhcmUgY3VycmVudGx5IGRlZmluZWQgdXNpbmcgdGV4dCBmaWxlcyB3aGljaCBjb25mb3JtIHRvIHRoZSBmb2xsb3dpbmcKKyAqIDxhIGhyZWY9Imh0dHA6Ly9kZXYuaWN1LXByb2plY3Qub3JnL2NnaS1iaW4vdmlld2N2cy5jZ2kvfmNoZWNrb3V0fi9pY3VodG1sL2Rlc2lnbi9ibmZfcmIudHh0Ij5CTkYgZGVmaW5pdGlvbjwvYT4uCisgKiBNb3JlIG9uIHJlc291cmNlIGJ1bmRsZSBjb25jZXB0cyBhbmQgc3ludGF4IGNhbiBiZSBmb3VuZCBpbiB0aGUgCisgKiA8YSBocmVmPSJodHRwOi8vaWN1LnNvdXJjZWZvcmdlLm5ldC91c2VyZ3VpZGUvUmVzb3VyY2VNYW5hZ2VtZW50Lmh0bWwiPlVzZXJzIEd1aWRlPC9hPi4KKyAqIDxQPgorICogCisgKiBUaGUgcGFja2FnaW5nIG9mIElDVSAqLnJlcyBmaWxlcyBjYW4gYmUgb2YgdHdvIHR5cGVzCisgKiBJQ1U0QzoKKyAqIDxjb2RlPgorICogICAgICAgcm9vdC5yZXMKKyAqICAgICAgICAgfAorICogICAgICAtLS0tLS0tLQorICogICAgIHwgICAgICAgIHwKKyAqICAgZnIucmVzICBlbi5yZXMKKyAqICAgICB8CisgKiAgIC0tLS0tLS0tCisgKiAgfCAgICAgICAgfAorICogZnJfQ0EucmVzIGZyX0ZSLnJlcyAgICAgCisgKiA8L2NvZGU+CisgKiBKQVZBL0pESzoKKyAqIDxjb2RlPgorICogICAgTG9jYWxlRWxlbWVudHMucmVzCisgKiAgICAgICAgIHwKKyAqICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAgIHwgICAgICAgICAgICAgICAgICAgfAorICogTG9jYWxlRWxlbWVudHNfZnIucmVzICBMb2NhbGVFbGVtZW50c19lbi5yZXMKKyAqICAgICB8CisgKiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICogTG9jYWxlRWxlbWVudHNfZnJfQ0EucmVzICAgTG9jYWxlRWxlbWVudHNfZnJfRlIucmVzCisgKiA8L2NvZGU+CisgKiBEZXBlbmRpbmcgb24gdGhlIG9yZ2FuaXphdGlvbiBvZiB5b3VyIHJlc291cmNlcywgdGhlIHN5bnRheCB0byBnZXRCdW5kbGVJbnN0YW5jZSB3aWxsIGNoYW5nZS4KKyAqIFRvIG9wZW4gSUNVIHN0eWxlIG9yZ2FuaXphdGlvbiB1c2U6CisgKiA8Y29kZT4KKyAqICAgICAgVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tL2libS9pY3UvaW1wbC9kYXRhL2ljdWR0MzBiIiwgImVuX1VTIik7CisgKiA8L2NvZGU+CisgKiBUbyBvcGVuIEphdmEvSkRLIHN0eWxlIG9yZ2FuaXphdGlvbiB1c2U6CisgKiA8Y29kZT4KKyAqICAgICAgVVJlc291cmNlQnVuZGxlIGJ1bmRsZSA9IFVSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZSgiY29tLmlibS5pY3UuaW1wbC5kYXRhLkxvY2FsZUVsZW1lbnRzIiwgImVuX1VTIik7CisgKiA8L2NvZGU+CisgKiBAZHJhZnQgSUNVIDMuMAorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKiBAYXV0aG9yIHJhbQorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVVJlc291cmNlQnVuZGxlIGV4dGVuZHMgUmVzb3VyY2VCdW5kbGV7CisKKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgcmVzb3VyY2UgYnVuZGxlIHVzaW5nIHRoZSBzcGVjaWZpZWQgYmFzZSBuYW1lIGFuZCBsb2NhbGUuCisgICAgICogSUNVX0RBVEFfQ0xBU1MgaXMgdXNlZCBhcyB0aGUgZGVmYXVsdCByb290LgorICAgICAqIEBwYXJhbSBiYXNlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBidW5kbGUsIGEgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUKKyAgICAgKiBAcGFyYW0gbG9jYWxlTmFtZSB0aGUgbG9jYWxlIGZvciB3aGljaCBhIHJlc291cmNlIGJ1bmRsZSBpcyBkZXNpcmVkCisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiAgICAgaWYgbm8gcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgc3BlY2lmaWVkIGJhc2UgbmFtZSBjYW4gYmUgZm91bmQKKyAgICAgKiBAcmV0dXJuIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGFuZCBsb2NhbGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVVJlc291cmNlQnVuZGxlIGdldEJ1bmRsZUluc3RhbmNlKFN0cmluZyBiYXNlTmFtZSwgU3RyaW5nIGxvY2FsZU5hbWUpeworICAgICAgICByZXR1cm4gZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIGxvY2FsZU5hbWUsIElDVVJlc291cmNlQnVuZGxlLklDVV9EQVRBX0NMQVNTX0xPQURFUiwgZmFsc2UpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgcmVzb3VyY2UgYnVuZGxlIHVzaW5nIHRoZSBzcGVjaWZpZWQgYmFzZSBuYW1lLCBsb2NhbGUsIGFuZCBjbGFzcyByb290LgorICAgICAqCisgICAgICogQHBhcmFtIGJhc2VOYW1lIHRoZSBiYXNlIG5hbWUgb2YgdGhlIHJlc291cmNlIGJ1bmRsZSwgYSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZQorICAgICAqIEBwYXJhbSBsb2NhbGVOYW1lIHRoZSBsb2NhbGUgZm9yIHdoaWNoIGEgcmVzb3VyY2UgYnVuZGxlIGlzIGRlc2lyZWQKKyAgICAgKiBAcGFyYW0gcm9vdCB0aGUgY2xhc3Mgb2JqZWN0IGZyb20gd2hpY2ggdG8gbG9hZCB0aGUgcmVzb3VyY2UgYnVuZGxlCisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiAgICAgaWYgbm8gcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgc3BlY2lmaWVkIGJhc2UgbmFtZSBjYW4gYmUgZm91bmQKKyAgICAgKiBAcmV0dXJuIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGFuZCBsb2NhbGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVVJlc291cmNlQnVuZGxlIGdldEJ1bmRsZUluc3RhbmNlKFN0cmluZyBiYXNlTmFtZSwgU3RyaW5nIGxvY2FsZU5hbWUsIENsYXNzTG9hZGVyIHJvb3QpeworICAgICAgICByZXR1cm4gZ2V0QnVuZGxlSW5zdGFuY2UoYmFzZU5hbWUsIGxvY2FsZU5hbWUsIHJvb3QsIGZhbHNlKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIHJlc291cmNlIGJ1bmRsZSB1c2luZyB0aGUgc3BlY2lmaWVkIGJhc2UgbmFtZSwgbG9jYWxlLCBhbmQgY2xhc3Mgcm9vdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBiYXNlTmFtZSB0aGUgYmFzZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBidW5kbGUsIGEgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUKKyAgICAgKiBAcGFyYW0gbG9jYWxlTmFtZSB0aGUgbG9jYWxlIGZvciB3aGljaCBhIHJlc291cmNlIGJ1bmRsZSBpcyBkZXNpcmVkCisgICAgICogQHBhcmFtIHJvb3QgdGhlIGNsYXNzIG9iamVjdCBmcm9tIHdoaWNoIHRvIGxvYWQgdGhlIHJlc291cmNlIGJ1bmRsZQorICAgICAqIEBwYXJhbSBkaXNhYmxlRmFsbGJhY2sgT3B0aW9uIHRvIGRpc2FibGUgbG9jYWxlIGluaGVyaXRlbmNlLiAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdHJ1ZSB0aGUgZmFsbGJhY2sgY2hhaW4gd2lsbCBub3QgYmUgYnVpbHQuCisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiAgICAgaWYgbm8gcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgc3BlY2lmaWVkIGJhc2UgbmFtZSBjYW4gYmUgZm91bmQKKyAgICAgKiBAcmV0dXJuIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGFuZCBsb2NhbGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqIAorICAgICAqLyAgICAKKyAgICBwcm90ZWN0ZWQgc3RhdGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGVJbnN0YW5jZShTdHJpbmcgYmFzZU5hbWUsIFN0cmluZyBsb2NhbGVOYW1lLCBDbGFzc0xvYWRlciByb290LCBib29sZWFuIGRpc2FibGVGYWxsYmFjayl7CisgICAgICAgIHJldHVybiBpbnN0YW50aWF0ZUJ1bmRsZShiYXNlTmFtZSwgbG9jYWxlTmFtZSwgcm9vdCwgZGlzYWJsZUZhbGxiYWNrKTsgICAKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTb2xlIGNvbnN0cnVjdG9yLiAgKEZvciBpbnZvY2F0aW9uIGJ5IHN1YmNsYXNzIGNvbnN0cnVjdG9ycywgdHlwaWNhbGx5CisgICAgICogaW1wbGljaXQuKSAgVGhpcyBpcyBwdWJsaWMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBKYXZhLCB3aG9zZSBjb21waWxlcgorICAgICAqIHdpbGwgZ2VuZXJhdGUgcHVibGljIGRlZmF1bHQgY29uc3RydWN0b3JzIGZvciBhbiBhYnN0cmFjdCBjbGFzcy4KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBVUmVzb3VyY2VCdW5kbGUoKSB7ICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBVUmVzb3VyY2VCdW5kbGUgZm9yIHRoZSBsb2NhbGUgc3BlY2lmaWVkLCBmcm9tIHdoaWNoIHVzZXJzIGNhbiBleHRyYWN0IHJlc291cmNlcyBieSB1c2luZworICAgICAqIHRoZWlyIGNvcnJlc3BvbmRpbmcga2V5cy4KKyAgICAgKiBAcGFyYW0gbG9jYWxlICBzcGVjaWZpZXMgdGhlIGxvY2FsZSBmb3Igd2hpY2ggd2Ugd2FudCB0byBvcGVuIHRoZSByZXNvdXJjZS4KKyAgICAgKiAgICAgICAgICAgICAgICBJZiBudWxsIHRoZSBidW5kbGUgZm9yIGRlZmF1bHQgbG9jYWxlIGlzIG9wZW5lZC4gICAgICAgICAgICAgIAorICAgICAqIEByZXR1cm4gYSByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBnaXZlbiBsb2NhbGUgICAgICAgICAgICAgICAKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVVJlc291cmNlQnVuZGxlIGdldEJ1bmRsZUluc3RhbmNlKFVMb2NhbGUgbG9jYWxlKXsKKyAgICAgICAgaWYobG9jYWxlPT1udWxsKXsKKyAgICAgICAgICAgIGxvY2FsZSA9IFVMb2NhbGUuZ2V0RGVmYXVsdCgpOyAgIAorICAgICAgICB9CisgICAgICAgIHJldHVybiBnZXRCdW5kbGVJbnN0YW5jZSggSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0JBU0VfTkFNRSwgbG9jYWxlLnRvU3RyaW5nKCksIElDVVJlc291cmNlQnVuZGxlLklDVV9EQVRBX0NMQVNTX0xPQURFUiApOyAgIAorICAgIH0KKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgVVJlc291cmNlQnVuZGxlIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgYW5kIHNwZWNpZmllZCBiYXNlIG5hbWUsCisgICAgICogZnJvbSB3aGljaCB1c2VycyBjYW4gZXh0cmFjdCByZXNvdXJjZXMgYnkgdXNpbmcgdGhlaXIgY29ycmVzcG9uZGluZyBrZXlzLgorICAgICAqIEBwYXJhbSBiYXNlTmFtZSAgc3BlY2lmaWVzIHRoZSBsb2NhbGUgZm9yIHdoaWNoIHdlIHdhbnQgdG8gb3BlbiB0aGUgcmVzb3VyY2UuCisgICAgICogICAgICAgICAgICAgICAgSWYgbnVsbCB0aGUgYnVuZGxlIGZvciBkZWZhdWx0IGxvY2FsZSBpcyBvcGVuZWQuICAgICAgICAgICAgICAKKyAgICAgKiBAcmV0dXJuIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGFuZCBkZWZhdWx0IGxvY2FsZSAgICAgICAgICAgICAgCisgICAgICogQGRyYWZ0IElDVSAzLjAgCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovICAgIAorICAgIHB1YmxpYyBzdGF0aWMgVVJlc291cmNlQnVuZGxlIGdldEJ1bmRsZUluc3RhbmNlKFN0cmluZyBiYXNlTmFtZSl7CisgICAgICAgIHJldHVybiBnZXRCdW5kbGVJbnN0YW5jZSggYmFzZU5hbWUsIFVMb2NhbGUuZ2V0RGVmYXVsdCgpLnRvU3RyaW5nKCksIElDVVJlc291cmNlQnVuZGxlLklDVV9EQVRBX0NMQVNTX0xPQURFUiApOworICAgIH0KKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgVVJlc291cmNlQnVuZGxlIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBhbmQgc3BlY2lmaWVkIGJhc2UgbmFtZSwKKyAgICAgKiBmcm9tIHdoaWNoIHVzZXJzIGNhbiBleHRyYWN0IHJlc291cmNlcyBieSB1c2luZyB0aGVpciBjb3JyZXNwb25kaW5nIGtleXMuCisgICAgICogQHBhcmFtIGJhc2VOYW1lICBzcGVjaWZpZXMgdGhlIGxvY2FsZSBmb3Igd2hpY2ggd2Ugd2FudCB0byBvcGVuIHRoZSByZXNvdXJjZS4KKyAgICAgKiAgICAgICAgICAgICAgICBJZiBudWxsIHRoZSBidW5kbGUgZm9yIGRlZmF1bHQgbG9jYWxlIGlzIG9wZW5lZC4gICAgICAgICAgICAgIAorICAgICAqIEBwYXJhbSBsb2NhbGUgIHNwZWNpZmllcyB0aGUgbG9jYWxlIGZvciB3aGljaCB3ZSB3YW50IHRvIG9wZW4gdGhlIHJlc291cmNlLgorICAgICAqICAgICAgICAgICAgICAgIElmIG51bGwgdGhlIGJ1bmRsZSBmb3IgZGVmYXVsdCBsb2NhbGUgaXMgb3BlbmVkLiAgCisgICAgICogQHJldHVybiBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKworICAgIHB1YmxpYyBzdGF0aWMgVVJlc291cmNlQnVuZGxlIGdldEJ1bmRsZUluc3RhbmNlKFN0cmluZyBiYXNlTmFtZSwgTG9jYWxlIGxvY2FsZSl7CisgICAgICAgIHJldHVybiBnZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgVUxvY2FsZS5mb3JMb2NhbGUobG9jYWxlKSk7CisgICAgfQorICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIFVSZXNvdXJjZUJ1bmRsZSwgZnJvbSB3aGljaCB1c2VycyBjYW4gZXh0cmFjdCByZXNvdXJjZXMgYnkgdXNpbmcKKyAgICAgKiB0aGVpciBjb3JyZXNwb25kaW5nIGtleXMuCisgICAgICogQHBhcmFtIGJhc2VOYW1lIHN0cmluZyBjb250YWluaW5nIHRoZSBuYW1lIG9mIHRoZSBkYXRhIHBhY2thZ2UuCisgICAgICogICAgICAgICAgICAgICAgICAgIElmIG51bGwgdGhlIGRlZmF1bHQgSUNVIHBhY2thZ2UgbmFtZSBpcyB1c2VkLgorICAgICAqIEBwYXJhbSBsb2NhbGUgIHNwZWNpZmllcyB0aGUgbG9jYWxlIGZvciB3aGljaCB3ZSB3YW50IHRvIG9wZW4gdGhlIHJlc291cmNlLgorICAgICAqICAgICAgICAgICAgICAgIElmIG51bGwgdGhlIGJ1bmRsZSBmb3IgZGVmYXVsdCBsb2NhbGUgaXMgb3BlbmVkLiAgICAgICAgICAgICAgCisgICAgICogQHJldHVybiBhIHJlc291cmNlIGJ1bmRsZSBmb3IgdGhlIGdpdmVuIGJhc2UgbmFtZSBhbmQgbG9jYWxlICAgICAgICAgICAgICAgCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFVSZXNvdXJjZUJ1bmRsZSBnZXRCdW5kbGVJbnN0YW5jZShTdHJpbmcgYmFzZU5hbWUsIFVMb2NhbGUgbG9jYWxlKXsKKyAgICAgICAgIHJldHVybiBnZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbG9jYWxlLnRvU3RyaW5nKCksSUNVUmVzb3VyY2VCdW5kbGUuSUNVX0RBVEFfQ0xBU1NfTE9BREVSKTsgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgVVJlc291cmNlQnVuZGxlIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZSBhbmQgc3BlY2lmaWVkIGJhc2UgbmFtZSwKKyAgICAgKiBmcm9tIHdoaWNoIHVzZXJzIGNhbiBleHRyYWN0IHJlc291cmNlcyBieSB1c2luZyB0aGVpciBjb3JyZXNwb25kaW5nIGtleXMuCisgICAgICogQHBhcmFtIGJhc2VOYW1lICBzcGVjaWZpZXMgdGhlIGxvY2FsZSBmb3Igd2hpY2ggd2Ugd2FudCB0byBvcGVuIHRoZSByZXNvdXJjZS4KKyAgICAgKiAgICAgICAgICAgICAgICBJZiBudWxsIHRoZSBidW5kbGUgZm9yIGRlZmF1bHQgbG9jYWxlIGlzIG9wZW5lZC4gICAgICAgICAgICAgIAorICAgICAqIEBwYXJhbSBsb2NhbGUgIHNwZWNpZmllcyB0aGUgbG9jYWxlIGZvciB3aGljaCB3ZSB3YW50IHRvIG9wZW4gdGhlIHJlc291cmNlLgorICAgICAqICAgICAgICAgICAgICAgIElmIG51bGwgdGhlIGJ1bmRsZSBmb3IgZGVmYXVsdCBsb2NhbGUgaXMgb3BlbmVkLiAgCisgICAgICogQHBhcmFtIGxvYWRlciAgdGhlIGxvYWRlciB0byB1c2UKKyAgICAgKiBAcmV0dXJuIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGFuZCBsb2NhbGUKKyAgICAgKiBAaW50ZXJuYWwgcmV2aXNpdCBmb3IgSUNVIDMuNgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVVJlc291cmNlQnVuZGxlIGdldEJ1bmRsZUluc3RhbmNlKFN0cmluZyBiYXNlTmFtZSwgTG9jYWxlIGxvY2FsZSwgQ2xhc3NMb2FkZXIgbG9hZGVyKXsKKyAgICAgICAgcmV0dXJuIGdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBVTG9jYWxlLmZvckxvY2FsZShsb2NhbGUpLCBsb2FkZXIpOworICAgIH0KKyAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBVUmVzb3VyY2VCdW5kbGUsIGZyb20gd2hpY2ggdXNlcnMgY2FuIGV4dHJhY3QgcmVzb3VyY2VzIGJ5IHVzaW5nCisgICAgICogdGhlaXIgY29ycmVzcG9uZGluZyBrZXlzLgorICAgICAqIEBwYXJhbSBiYXNlTmFtZSBzdHJpbmcgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZGF0YSBwYWNrYWdlLgorICAgICAqICAgICAgICAgICAgICAgICAgICBJZiBudWxsIHRoZSBkZWZhdWx0IElDVSBwYWNrYWdlIG5hbWUgaXMgdXNlZC4KKyAgICAgKiBAcGFyYW0gbG9jYWxlICBzcGVjaWZpZXMgdGhlIGxvY2FsZSBmb3Igd2hpY2ggd2Ugd2FudCB0byBvcGVuIHRoZSByZXNvdXJjZS4KKyAgICAgKiAgICAgICAgICAgICAgICBJZiBudWxsIHRoZSBidW5kbGUgZm9yIGRlZmF1bHQgbG9jYWxlIGlzIG9wZW5lZC4KKyAgICAgKiBAcGFyYW0gbG9hZGVyICB0aGUgbG9hZGVyIHRvIHVzZQorICAgICAqIEByZXR1cm4gYSByZXNvdXJjZSBidW5kbGUgZm9yIHRoZSBnaXZlbiBiYXNlIG5hbWUgYW5kIGxvY2FsZSAgICAgICAgICAgICAgIAorICAgICAqIEBpbnRlcm5hbCByZXZpc2l0IGZvciBJQ1UgMy42CisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgZ2V0QnVuZGxlSW5zdGFuY2UoU3RyaW5nIGJhc2VOYW1lLCBVTG9jYWxlIGxvY2FsZSwgQ2xhc3NMb2FkZXIgbG9hZGVyKXsKKyAgICAgICAgIHJldHVybiBnZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbG9jYWxlLnRvU3RyaW5nKCksbG9hZGVyKTsgIAorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBSRkMgMzA2NiBjb25mb3JtYW50IGxvY2FsZSBpZCBvZiB0aGlzIHJlc291cmNlIGJ1bmRsZS4gCisgICAgICogVGhpcyBtZXRob2QgY2FuIGJlIHVzZWQgYWZ0ZXIgYSBjYWxsIHRvIGdldEJ1bmRsZUluc3RhbmNlKCkgdG8KKyAgICAgKiBkZXRlcm1pbmUgd2hldGhlciB0aGUgcmVzb3VyY2UgYnVuZGxlIHJldHVybmVkIHJlYWxseQorICAgICAqIGNvcnJlc3BvbmRzIHRvIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG9yIGlzIGEgZmFsbGJhY2suCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHRoZSBsb2NhbGUgb2YgdGhpcyByZXNvdXJjZSBidW5kbGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBVTG9jYWxlIGdldFVMb2NhbGUoKTsgCisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbG9jYWxlSUQKKyAgICAgKiBAcmV0dXJuIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGxvY2FsZUlECisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgU3RyaW5nIGdldExvY2FsZUlEKCk7CisgICAgLyoqCisgICAgICogR2V0cyB0aGUgYmFzZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBidW5kbGUKKyAgICAgKiBAcmV0dXJuIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGJhc2UgbmFtZQorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IFN0cmluZyBnZXRCYXNlTmFtZSgpOworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHBhcmVudCBidW5kbGUKKyAgICAgKiBAcmV0dXJuIFRoZSBwYXJlbnQgYnVuZGxlCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgVVJlc291cmNlQnVuZGxlIGdldFBhcmVudCgpOworICAgIAorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgbG9jYWxlIG9mIHRoaXMgYnVuZGxlCisgICAgICogQHJldHVybiB0aGUgbG9jYWxlIG9mIHRoaXMgcmVzb3VyY2UgYnVuZGxlCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTG9jYWxlIGdldExvY2FsZSgpeworICAgICAgICByZXR1cm4gZ2V0VUxvY2FsZSgpLnRvTG9jYWxlKCk7ICAgCisgICAgfQorCisgICAgLy8gQ2FjaGUgZm9yIFJlc291cmNlQnVuZGxlIGluc3RhbnRpYXRpb24KKyAgICBwcml2YXRlIHN0YXRpYyBTb2Z0UmVmZXJlbmNlIEJVTkRMRV9DQUNIRTsKKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYWRkVG9DYWNoZShSZXNvdXJjZUNhY2hlS2V5IGtleSwgVVJlc291cmNlQnVuZGxlIGIpIHsKKyAgICAgICAgTWFwIG0gPSBudWxsOworICAgICAgICBpZiAoQlVORExFX0NBQ0hFICE9IG51bGwpIHsKKyAgICAgICAgICAgIG0gPSAoTWFwKUJVTkRMRV9DQUNIRS5nZXQoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobSA9PSBudWxsKSB7CisgICAgICAgICAgICBtID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIEJVTkRMRV9DQUNIRSA9IG5ldyBTb2Z0UmVmZXJlbmNlKG0pOworICAgICAgICB9CisgICAgICAgIG0ucHV0KGtleSwgYik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIHN5bmNocm9uaXplZCB2b2lkIGFkZFRvQ2FjaGUoQ2xhc3NMb2FkZXIgY2wsIFN0cmluZyBmdWxsTmFtZSwgVUxvY2FsZSBkZWZhdWx0TG9jYWxlLCAgVVJlc291cmNlQnVuZGxlIGIpeworICAgICAgICBjYWNoZUtleS5zZXRLZXlWYWx1ZXMoY2wsIGZ1bGxOYW1lLCBkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgYWRkVG9DYWNoZSgoUmVzb3VyY2VDYWNoZUtleSljYWNoZUtleS5jbG9uZSgpLCBiKTsKKyAgICB9CisgICAgLyoqCisgICAgICogQGludGVybmFsIHJldmlzaXQgZm9yIElDVSAzLjYKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIHN5bmNocm9uaXplZCBVUmVzb3VyY2VCdW5kbGUgbG9hZEZyb21DYWNoZShDbGFzc0xvYWRlciBjbCwgU3RyaW5nIGZ1bGxOYW1lLCBVTG9jYWxlIGRlZmF1bHRMb2NhbGUpeworICAgICAgICBjYWNoZUtleS5zZXRLZXlWYWx1ZXMoY2wsIGZ1bGxOYW1lLCBkZWZhdWx0TG9jYWxlKTsKKyAgICAgICAgcmV0dXJuIGxvYWRGcm9tQ2FjaGUoY2FjaGVLZXkpOworICAgIH0KKyAgICBwcml2YXRlIHN0YXRpYyBVUmVzb3VyY2VCdW5kbGUgbG9hZEZyb21DYWNoZShSZXNvdXJjZUNhY2hlS2V5IGtleSkgeworICAgICAgICBpZiAoQlVORExFX0NBQ0hFICE9IG51bGwpIHsKKyAgICAgICAgICAgIE1hcCBtID0gKE1hcClCVU5ETEVfQ0FDSEUuZ2V0KCk7CisgICAgICAgICAgICBpZiAobSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChVUmVzb3VyY2VCdW5kbGUpbS5nZXQoa2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9ICAgCisgICAgCisgICAgLyoqCisgICAgICogS2V5IHVzZWQgZm9yIGNhY2hlZCByZXNvdXJjZSBidW5kbGVzLiAgVGhlIGtleSBjaGVja3MKKyAgICAgKiB0aGUgcmVzb3VyY2UgbmFtZSwgdGhlIGNsYXNzIHJvb3QsIGFuZCB0aGUgZGVmYXVsdAorICAgICAqIGxvY2FsZSB0byBkZXRlcm1pbmUgaWYgdGhlIHJlc291cmNlIGlzIGEgbWF0Y2ggdG8gdGhlCisgICAgICogcmVxdWVzdGVkIG9uZS4gVGhlIHJvb3QgbWF5IGJlIG51bGwsIGJ1dCB0aGUKKyAgICAgKiBzZWFyY2hOYW1lIGFuZCB0aGUgZGVmYXVsdCBsb2NhbGUgbXVzdCBoYXZlIGEgbm9uLW51bGwgdmFsdWUuCisgICAgICogTm90ZSB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBtYXkgY2hhbmdlIG92ZXIgdGltZSwgYW5kCisgICAgICogbG9va3VwIHNob3VsZCBhbHdheXMgYmUgYmFzZWQgb24gdGhlIGN1cnJlbnQgZGVmYXVsdAorICAgICAqIGxvY2FsZSAoaWYgYXQgYWxsKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBSZXNvdXJjZUNhY2hlS2V5IGltcGxlbWVudHMgQ2xvbmVhYmxlIHsKKyAgICAgICAgcHJpdmF0ZSBTb2Z0UmVmZXJlbmNlIGxvYWRlclJlZjsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgc2VhcmNoTmFtZTsKKyAgICAgICAgcHJpdmF0ZSBVTG9jYWxlIGRlZmF1bHRMb2NhbGU7CisgICAgICAgIHByaXZhdGUgaW50IGhhc2hDb2RlQ2FjaGU7CisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvdGhlcikgeworICAgICAgICAgICAgaWYgKHRoaXMgPT0gb3RoZXIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZmluYWwgUmVzb3VyY2VDYWNoZUtleSBvdGhlckVudHJ5ID0gKFJlc291cmNlQ2FjaGVLZXkpIG90aGVyOworICAgICAgICAgICAgICAgIC8vcXVpY2sgY2hlY2sgdG8gc2VlIGlmIHRoZXkgYXJlIG5vdCBlcXVhbAorICAgICAgICAgICAgICAgIGlmIChoYXNoQ29kZUNhY2hlICE9IG90aGVyRW50cnkuaGFzaENvZGVDYWNoZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8vYXJlIHRoZSBuYW1lcyB0aGUgc2FtZT8KKyAgICAgICAgICAgICAgICBpZiAoIXNlYXJjaE5hbWUuZXF1YWxzKG90aGVyRW50cnkuc2VhcmNoTmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBhcmUgdGhlIGRlZmF1bHQgbG9jYWxlcyB0aGUgc2FtZT8KKyAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdExvY2FsZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChvdGhlckVudHJ5LmRlZmF1bHRMb2NhbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFkZWZhdWx0TG9jYWxlLmVxdWFscyhvdGhlckVudHJ5LmRlZmF1bHRMb2NhbGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy9hcmUgcmVmcyAoYm90aCBub24tbnVsbCkgb3IgKGJvdGggbnVsbCk/CisgICAgICAgICAgICAgICAgaWYgKGxvYWRlclJlZiA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBvdGhlckVudHJ5LmxvYWRlclJlZiA9PSBudWxsOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAob3RoZXJFbnRyeS5sb2FkZXJSZWYgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAobG9hZGVyUmVmLmdldCgpID09IG90aGVyRW50cnkubG9hZGVyUmVmLmdldCgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChOdWxsUG9pbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBoYXNoQ29kZUNhY2hlOworICAgICAgICB9CisgICAgICAgIHB1YmxpYyBPYmplY3QgY2xvbmUoKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJldHVybiBzdXBlci5jbG9uZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoQ2xvbmVOb3RTdXBwb3J0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIC8vdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vL0NMT1ZFUjpPTgorICAgICAgICBwcml2YXRlIHZvaWQgc2V0S2V5VmFsdWVzKENsYXNzTG9hZGVyIHJvb3QsIFN0cmluZyBzZWFyY2hOYW1lLCBVTG9jYWxlIGRlZmF1bHRMb2NhbGUpIHsKKyAgICAgICAgICAgIHRoaXMuc2VhcmNoTmFtZSA9IHNlYXJjaE5hbWU7CisgICAgICAgICAgICBoYXNoQ29kZUNhY2hlID0gc2VhcmNoTmFtZS5oYXNoQ29kZSgpOworICAgICAgICAgICAgdGhpcy5kZWZhdWx0TG9jYWxlID0gZGVmYXVsdExvY2FsZTsKKyAgICAgICAgICAgIGlmIChkZWZhdWx0TG9jYWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBoYXNoQ29kZUNhY2hlIF49IGRlZmF1bHRMb2NhbGUuaGFzaENvZGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChyb290ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmxvYWRlclJlZiA9IG51bGw7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxvYWRlclJlZiA9IG5ldyBTb2Z0UmVmZXJlbmNlKHJvb3QpOworICAgICAgICAgICAgICAgIGhhc2hDb2RlQ2FjaGUgXj0gcm9vdC5oYXNoQ29kZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vL0NMT1ZFUjpPRkYKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGNsZWFyKCkgeworICAgICAgICAgICAgc2V0S2V5VmFsdWVzKG51bGwsICIiLCBudWxsKTsKKyAgICAgICAgfQorICAgICAgICAvLy9DTE9WRVI6T04KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgUmVzb3VyY2VDYWNoZUtleSBjYWNoZUtleSA9IG5ldyBSZXNvdXJjZUNhY2hlS2V5KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBST09UX01JU1NJTkcgPSAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBST09UX0lDVSA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFJPT1RfSkFWQSA9IDI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgU29mdFJlZmVyZW5jZSBST09UX0NBQ0hFOworCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldFJvb3RUeXBlKFN0cmluZyBiYXNlTmFtZSwgQ2xhc3NMb2FkZXIgcm9vdCkKKyAgICB7CisgICAgICAgIE1hcCBtID0gbnVsbDsKKyAgICAgICAgSW50ZWdlciByb290VHlwZTsKKyAgICAgICAgCisgICAgICAgIGlmIChST09UX0NBQ0hFICE9IG51bGwpIHsKKyAgICAgICAgICAgIG0gPSAoTWFwKSBST09UX0NBQ0hFLmdldCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobSA9PSBudWxsKSB7CisgICAgICAgICAgICBtID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIFJPT1RfQ0FDSEUgPSBuZXcgU29mdFJlZmVyZW5jZShtKTsKKyAgICAgICAgfQorCisgICAgICAgIHJvb3RUeXBlID0gKEludGVnZXIpIG0uZ2V0KGJhc2VOYW1lKTsKKyAgICAgICAgCisgICAgICAgIGlmIChyb290VHlwZSA9PSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmcgcm9vdExvY2FsZSA9IChiYXNlTmFtZS5pbmRleE9mKCcuJyk9PS0xKSA/ICJyb290IiA6ICIiOworICAgICAgICAgICAgaW50IHJ0ID0gUk9PVF9NSVNTSU5HOworICAgICAgICAgICAgVVJlc291cmNlQnVuZGxlIGIgPSBudWxsOyAgCisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgYiA9IElDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCByb290TG9jYWxlLCByb290LCB0cnVlKTsKKyAgICAgICAgICAgICAgICBydCA9IFJPT1RfSUNVOyAKKyAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZXgpeworICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgYiA9IFJlc291cmNlQnVuZGxlV3JhcHBlci5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgcm9vdExvY2FsZSwgcm9vdCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIHJ0ID0gUk9PVF9KQVZBOworICAgICAgICAgICAgICAgIH1jYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgICAgIC8vdGhyb3cgYXdheSB0aGUgZXhjZXB0aW9uCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByb290VHlwZSA9IG5ldyBJbnRlZ2VyKHJ0KTsKKyAgICAgICAgICAgIG0ucHV0KGJhc2VOYW1lLCByb290VHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiByb290VHlwZS5pbnRWYWx1ZSgpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHNldFJvb3RUeXBlKFN0cmluZyBiYXNlTmFtZSwgaW50IHJvb3RUeXBlKQorICAgIHsKKyAgICAgICAgSW50ZWdlciBydCA9IG5ldyBJbnRlZ2VyKHJvb3RUeXBlKTsKKyAgICAgICAgTWFwIG0gPSBudWxsOworICAgICAgICAKKyAgICAgICAgaWYgKFJPT1RfQ0FDSEUgIT0gbnVsbCkgeworICAgICAgICAgICAgbSA9IChNYXApIFJPT1RfQ0FDSEUuZ2V0KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIFJPT1RfQ0FDSEUgPSBuZXcgU29mdFJlZmVyZW5jZShtKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbS5wdXQoYmFzZU5hbWUsIHJ0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogTG9hZHMgYSBuZXcgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZSBiYXNlIG5hbWUsIGxvY2FsZSBhbmQgY2xhc3MgbG9hZGVyLgorICAgICAqIE9wdGlvbmFsbHkgd2lsbCBkaXNhYmxlIGxvYWRpbmcgb2YgZmFsbGJhY2sgYnVuZGxlcy4KKyAgICAgKiBAcGFyYW0gYmFzZU5hbWUgdGhlIGJhc2UgbmFtZSBvZiB0aGUgcmVzb3VyY2UgYnVuZGxlLCBhIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lCisgICAgICogQHBhcmFtIGxvY2FsZU5hbWUgdGhlIGxvY2FsZSBmb3Igd2hpY2ggYSByZXNvdXJjZSBidW5kbGUgaXMgZGVzaXJlZAorICAgICAqIEBwYXJhbSByb290IHRoZSBjbGFzcyBvYmplY3QgZnJvbSB3aGljaCB0byBsb2FkIHRoZSByZXNvdXJjZSBidW5kbGUKKyAgICAgKiBAcGFyYW0gZGlzYWJsZUZhbGxiYWNrIGRpc2FibGVzIGxvYWRpbmcgb2YgZmFsbGJhY2sgbG9va3VwIGNoYWluCisgICAgICogQGV4Y2VwdGlvbiBNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24KKyAgICAgKiAgICAgaWYgbm8gcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgc3BlY2lmaWVkIGJhc2UgbmFtZSBjYW4gYmUgZm91bmQKKyAgICAgKiBAcmV0dXJuIGEgcmVzb3VyY2UgYnVuZGxlIGZvciB0aGUgZ2l2ZW4gYmFzZSBuYW1lIGFuZCBsb2NhbGUKKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgc3luY2hyb25pemVkIFVSZXNvdXJjZUJ1bmRsZSBpbnN0YW50aWF0ZUJ1bmRsZSgKKyAgICAgICAgU3RyaW5nIGJhc2VOYW1lLCBTdHJpbmcgbG9jYWxlTmFtZSwgQ2xhc3NMb2FkZXIgcm9vdCwgYm9vbGVhbiBkaXNhYmxlRmFsbGJhY2spCisgICAgeworICAgICAgICBVUmVzb3VyY2VCdW5kbGUgYiA9IG51bGw7CisgICAgICAgIGludCByb290VHlwZSA9IGdldFJvb3RUeXBlKGJhc2VOYW1lLCByb290KTsKKworICAgICAgICBVTG9jYWxlIGRlZmF1bHRMb2NhbGUgPSBVTG9jYWxlLmdldERlZmF1bHQoKTsKKyAgICAgICAgCisgICAgICAgIHN3aXRjaCAocm9vdFR5cGUpCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBST09UX0lDVToKKyAgICAgICAgICAgIGlmKGRpc2FibGVGYWxsYmFjaykgeworICAgICAgICAgICAgICAgIFN0cmluZyBmdWxsTmFtZSA9IElDVVJlc291cmNlQnVuZGxlUmVhZGVyLmdldEZ1bGxOYW1lKGJhc2VOYW1lLCBsb2NhbGVOYW1lKTsgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGNhY2hlS2V5LnNldEtleVZhbHVlcyhyb290LCBmdWxsTmFtZSwgZGVmYXVsdExvY2FsZSk7CisgICAgICAgICAgICAgICAgYiA9IGxvYWRGcm9tQ2FjaGUoY2FjaGVLZXkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChiID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgYiA9IElDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NhbGVOYW1lLCByb290LCBkaXNhYmxlRmFsbGJhY2spOworICAgICAgICAgICAgICAgICAgICBjYWNoZUtleS5zZXRLZXlWYWx1ZXMocm9vdCwgZnVsbE5hbWUsIGRlZmF1bHRMb2NhbGUpOworICAgICAgICAgICAgICAgICAgICBhZGRUb0NhY2hlKGNhY2hlS2V5LCBiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGIgPSBJQ1VSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGVJbnN0YW5jZShiYXNlTmFtZSwgbG9jYWxlTmFtZSwgcm9vdCwgZGlzYWJsZUZhbGxiYWNrKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGI7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBST09UX0pBVkE6CisgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VCdW5kbGVXcmFwcGVyLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NhbGVOYW1lLCByb290LCBkaXNhYmxlRmFsbGJhY2spOworICAgICAgICAgICAgCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0cnl7CisgICAgICAgICAgICAgICAgYiA9IElDVVJlc291cmNlQnVuZGxlLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NhbGVOYW1lLCByb290LCBkaXNhYmxlRmFsbGJhY2spOworICAgICAgICAgICAgICAgIHNldFJvb3RUeXBlKGJhc2VOYW1lLCBST09UX0lDVSk7CisgICAgICAgICAgICB9Y2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGV4KXsKKyAgICAgICAgICAgICAgICBiID0gUmVzb3VyY2VCdW5kbGVXcmFwcGVyLmdldEJ1bmRsZUluc3RhbmNlKGJhc2VOYW1lLCBsb2NhbGVOYW1lLCByb290LCBkaXNhYmxlRmFsbGJhY2spOworICAgICAgICAgICAgICAgIHNldFJvb3RUeXBlKGJhc2VOYW1lLCBST09UX0pBVkEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgc2V0TG9hZGluZ1N0YXR1cyhpbnQgbmV3U3RhdHVzKTsKKyAgICAKKyAgICAKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL1VSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVVJlc291cmNlVHlwZU1pc21hdGNoRXhjZXB0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODhlOWIzNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1VSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbi5qYXZhCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgKgorKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKK3BhY2thZ2UgY29tLmlibS5pY3UudXRpbDsKKworLyoqCisgKiBFeGNlcHRpb24gdGhyb3duIHdoZW4gdGhlIHJlcXVlc3RlZCByZXNvdXJjZSB0eXBlIAorICogaXMgbm90IHRoZSBzYW1lIHR5cGUgYXMgdGhlIGF2YWlsYWJsZSByZXNvdXJjZQorICogQGF1dGhvciByYW0KKyAqIEBkcmFmdCBJQ1UgMy4wCisgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAqLworcHVibGljIGNsYXNzIFVSZXNvdXJjZVR5cGVNaXNtYXRjaEV4Y2VwdGlvbiBleHRlbmRzIFJ1bnRpbWVFeGNlcHRpb24geworICAgIC8vIEdlbmVyYXRlZCBieSBzZXJpYWx2ZXIgZnJvbSBKREsgMS40LjFfMDEKKyAgICBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMTI4NjU2OTA2MTA5NTQzNDU0MUw7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3R1Y3QgdGhlIGV4Y2VwdGlvbiB3aXRoIHRoZSBnaXZlbiBtZXNzYWdlCisgICAgICogQHBhcmFtIG1zZyB0aGUgZXJyb3IgbWVzc2FnZSBmb3IgdGhpcyBleGNlcHRpb24KKyAgICAgKiBAZHJhZnQgSUNVIDMuMAorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBVUmVzb3VyY2VUeXBlTWlzbWF0Y2hFeGNlcHRpb24oU3RyaW5nIG1zZyl7CisgICAgICAgIHN1cGVyKG1zZyk7ICAgICAgIAorICAgIH0KKyAgICAvKgorICAgICAqIFJldHVybnMgdGhlIGVycm9yIG1lc3NhZ2Ugc3RvcmVkIGluIHRoaXMgZXhjZXB0aW9uCisgICAgICogQHJldHVybiBTdHJpbmcgdGhlIGVycm9yIG1lc3NhZ2Ugc3RyaW5nCisgICAgICogQGRyYWZ0IElDVSAzLjAKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKgorICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKXsKKyAgICAgICAgcmV0dXJuIG1lc3NhZ2U7ICAgCisgICAgfQorICAgICovCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9Vbml2ZXJzYWxUaW1lU2NhbGUuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1VuaXZlcnNhbFRpbWVTY2FsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3ZWQzOTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9pY3UvdXRpbC9Vbml2ZXJzYWxUaW1lU2NhbGUuamF2YQpAQCAtMCwwICsxLDgwNSBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwNCAtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKK2ltcG9ydCBjb20uaWJtLmljdS5tYXRoLkJpZ0RlY2ltYWw7CitpbXBvcnQgY29tLmlibS5pY3UudGV4dC5NZXNzYWdlRm9ybWF0OworaW1wb3J0IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb247CisKKy8qKiAKKyAqIFRoZXJlIGFyZSBxdWl0ZSBhIGZldyBkaWZmZXJlbnQgY29udmVudGlvbnMgZm9yIGJpbmFyeSBkYXRldGltZSwgZGVwZW5kaW5nIG9uIGRpZmZlcmVudAorICogcGxhdGZvcm1zIGFuZCBwcm90b2NvbHMuIFNvbWUgb2YgdGhlc2UgaGF2ZSBzZXZlcmUgZHJhd2JhY2tzLiBGb3IgZXhhbXBsZSwgcGVvcGxlIHVzaW5nCisgKiBVbml4IHRpbWUgKHNlY29uZHMgc2luY2UgSmFuIDEsIDE5NzApIHRoaW5rIHRoYXQgdGhleSBhcmUgc2FmZSB1bnRpbCBuZWFyIHRoZSB5ZWFyIDIwMzguCisgKiBCdXQgY2FzZXMgY2FuIGFuZCBkbyBhcmlzZSB3aGVyZSBhcml0aG1ldGljIG1hbmlwdWxhdGlvbnMgY2F1c2VzIHNlcmlvdXMgcHJvYmxlbXMuIENvbnNpZGVyCisgKiB0aGUgY29tcHV0YXRpb24gb2YgdGhlIGF2ZXJhZ2Ugb2YgdHdvIGRhdGV0aW1lcywgZm9yIGV4YW1wbGU6IGlmIG9uZSBjYWxjdWxhdGVzIHRoZW0gd2l0aAorICogPGNvZGU+YXZlcmFnZVRpbWUgPSAodGltZTEgKyB0aW1lMikvMjwvY29kZT4sIHRoZXJlIHdpbGwgYmUgb3ZlcmZsb3cgZXZlbiB3aXRoIGRhdGVzCisgKiBhcm91bmQgdGhlIHByZXNlbnQuIE1vcmVvdmVyLCBldmVuIGlmIHRoZXNlIHByb2JsZW1zIGRvbid0IG9jY3VyLCB0aGVyZSBpcyB0aGUgaXNzdWUgb2YKKyAqIGNvbnZlcnNpb24gYmFjayBhbmQgZm9ydGggYmV0d2VlbiBkaWZmZXJlbnQgc3lzdGVtcy4KKyAqCisgKiA8cD4KKyAqIEJpbmFyeSBkYXRldGltZXMgZGlmZmVyIGluIGEgbnVtYmVyIG9mIHdheXM6IHRoZSBkYXRhdHlwZSwgdGhlIHVuaXQsCisgKiBhbmQgdGhlIGVwb2NoIChvcmlnaW4pLiBXZSdsbCByZWZlciB0byB0aGVzZSBhcyB0aW1lIHNjYWxlcy4gRm9yIGV4YW1wbGU6CisgKgorICogPHRhYmxlIGJvcmRlcj0iMSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSI0Ij4KKyAqICA8Y2FwdGlvbj4KKyAqICAgIDxoMz5UYWJsZSAxOiBCaW5hcnkgVGltZSBTY2FsZXM8L2gzPgorICoKKyAqICA8L2NhcHRpb24+CisgKiAgPHRyPgorICogICAgPHRoIGFsaWduPSJsZWZ0Ij5Tb3VyY2U8L3RoPgorICogICAgPHRoIGFsaWduPSJsZWZ0Ij5EYXRhdHlwZTwvdGg+CisgKiAgICA8dGggYWxpZ249ImxlZnQiPlVuaXQ8L3RoPgorICogICAgPHRoIGFsaWduPSJsZWZ0Ij5FcG9jaDwvdGg+CisgKiAgPC90cj4KKyAqCisgKiAgPHRyPgorICogICAgPHRkPkpBVkFfVElNRTwvdGQ+CisgKiAgICA8dGQ+bG9uZzwvdGQ+CisgKiAgICA8dGQ+bWlsbGlzZWNvbmRzPC90ZD4KKyAqICAgIDx0ZD5KYW4gMSwgMTk3MDwvdGQ+CisgKiAgPC90cj4KKyAqICA8dHI+CisgKgorICogICAgPHRkPlVOSVhfVElNRTwvdGQ+CisgKiAgICA8dGQ+aW50IG9yIGxvbmc8L3RkPgorICogICAgPHRkPnNlY29uZHM8L3RkPgorICogICAgPHRkPkphbiAxLCAxOTcwPC90ZD4KKyAqICA8L3RyPgorICogIDx0cj4KKyAqICAgIDx0ZD5JQ1U0QzwvdGQ+CisgKgorICogICAgPHRkPmRvdWJsZTwvdGQ+CisgKiAgICA8dGQ+bWlsbGlzZWNvbmRzPC90ZD4KKyAqICAgIDx0ZD5KYW4gMSwgMTk3MDwvdGQ+CisgKiAgPC90cj4KKyAqICA8dHI+CisgKiAgICA8dGQ+V0lORE9XU19GSUxFX1RJTUU8L3RkPgorICogICAgPHRkPmxvbmc8L3RkPgorICoKKyAqICAgIDx0ZD50aWNrcyAoMTAwIG5hbm9zZWNvbmRzKTwvdGQ+CisgKiAgICA8dGQ+SmFuIDEsIDE2MDE8L3RkPgorICogIDwvdHI+CisgKiAgPHRyPgorICogICAgPHRkPkRPVE5FVF9EQVRFX1RJTUU8L3RkPgorICogICAgPHRkPmxvbmc8L3RkPgorICogICAgPHRkPnRpY2tzICgxMDAgbmFub3NlY29uZHMpPC90ZD4KKyAqCisgKiAgICA8dGQ+SmFuIDEsIDAwMDE8L3RkPgorICogIDwvdHI+CisgKiAgPHRyPgorICogICAgPHRkPk1BQ19PTERfVElNRTwvdGQ+CisgKiAgICA8dGQ+aW50PC90ZD4KKyAqICAgIDx0ZD5zZWNvbmRzPC90ZD4KKyAqICAgIDx0ZD5KYW4gMSwgMTkwNDwvdGQ+CisgKgorICogIDwvdHI+CisgKiAgPHRyPgorICogICAgPHRkPk1BQ19USU1FPC90ZD4KKyAqICAgIDx0ZD5kb3VibGU8L3RkPgorICogICAgPHRkPnNlY29uZHM8L3RkPgorICogICAgPHRkPkphbiAxLCAyMDAxPC90ZD4KKyAqICA8L3RyPgorICoKKyAqICA8dHI+CisgKiAgICA8dGQ+RVhDRUxfVElNRTwvdGQ+CisgKiAgICA8dGQ+PzwvdGQ+CisgKiAgICA8dGQ+ZGF5czwvdGQ+CisgKiAgICA8dGQ+RGVjIDMxLCAxODk5PC90ZD4KKyAqICA8L3RyPgorICogIDx0cj4KKyAqCisgKiAgICA8dGQ+REIyX1RJTUU8L3RkPgorICogICAgPHRkPj88L3RkPgorICogICAgPHRkPmRheXM8L3RkPgorICogICAgPHRkPkRlYyAzMSwgMTg5OTwvdGQ+CisgKiAgPC90cj4KKyAqIDwvdGFibGU+CisgKgorICogPHA+CisgKiBBbGwgb2YgdGhlIGVwb2NocyBzdGFydCBhdCAwMDowMCBhbSAodGhlIGVhcmxpZXN0IHBvc3NpYmxlIHRpbWUgb24gdGhlIGRheSBpbiBxdWVzdGlvbiksCisgKiBhbmQgYXJlIGFzc3VtZWQgdG8gYmUgVVRDLgorICoKKyAqIDxwPgorICogVGhlIHJhbmdlcyBmb3IgZGlmZmVyZW50IGRhdGF0eXBlcyBhcmUgZ2l2ZW4gaW4gdGhlIGZvbGxvd2luZyB0YWJsZSAoYWxsIHZhbHVlcyBpbiB5ZWFycykuCisgKiBUaGUgcmFuZ2Ugb2YgeWVhcnMgaW5jbHVkZXMgdGhlIGVudGlyZSByYW5nZSBleHByZXNzaWJsZSB3aXRoIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZQorICogdmFsdWVzIG9mIHRoZSBkYXRhdHlwZS4gVGhlIHJhbmdlIG9mIHllYXJzIGZvciBkb3VibGUgaXMgdGhlIHJhbmdlIHRoYXQgd291bGQgYmUgYWxsb3dlZAorICogd2l0aG91dCBsb3NpbmcgcHJlY2lzaW9uIHRvIHRoZSBjb3JyZXNwb25kaW5nIHVuaXQuCisgKgorICogPHRhYmxlIGJvcmRlcj0iMSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSI0Ij4KKyAqICA8dHI+CisgKiAgICA8dGggYWxpZ249ImxlZnQiPlVuaXRzPC90aD4KKyAqICAgIDx0aCBhbGlnbj0ibGVmdCI+bG9uZzwvdGg+CisgKiAgICA8dGggYWxpZ249ImxlZnQiPmRvdWJsZTwvdGg+CisgKiAgICA8dGggYWxpZ249ImxlZnQiPmludDwvdGg+CisgKiAgPC90cj4KKyAqCisgKiAgPHRyPgorICogICAgPHRkPjEgc2VjPC90ZD4KKyAqICAgIDx0ZCBhbGlnbj0icmlnaHQiPjUuODQ1NDImI3hENzsxMCYjeEI5OyYjeEI5OzwvdGQ+CisgKiAgICA8dGQgYWxpZ249InJpZ2h0Ij4yODUsNDIwLDkyMC45NDwvdGQ+CisgKiAgICA8dGQgYWxpZ249InJpZ2h0Ij4xMzYuMTA8L3RkPgorICogIDwvdHI+CisgKiAgPHRyPgorICoKKyAqICAgIDx0ZD4xIG1pbGxpc2Vjb25kPC90ZD4KKyAqICAgIDx0ZCBhbGlnbj0icmlnaHQiPjU4NCw1NDIsMDQ2LjA5PC90ZD4KKyAqICAgIDx0ZCBhbGlnbj0icmlnaHQiPjI4NSw0MjAuOTI8L3RkPgorICogICAgPHRkIGFsaWduPSJyaWdodCI+MC4xNDwvdGQ+CisgKiAgPC90cj4KKyAqICA8dHI+CisgKiAgICA8dGQ+MSBtaWNyb3NlY29uZDwvdGQ+CisgKgorICogICAgPHRkIGFsaWduPSJyaWdodCI+NTg0LDU0Mi4wNTwvdGQ+CisgKiAgICA8dGQgYWxpZ249InJpZ2h0Ij4yODUuNDI8L3RkPgorICogICAgPHRkIGFsaWduPSJyaWdodCI+MC4wMDwvdGQ+CisgKiAgPC90cj4KKyAqICA8dHI+CisgKiAgICA8dGQ+MTAwIG5hbm9zZWNvbmRzICh0aWNrKTwvdGQ+CisgKiAgICA8dGQgYWxpZ249InJpZ2h0Ij41OCw0NTQuMjA8L3RkPgorICogICAgPHRkIGFsaWduPSJyaWdodCI+MjguNTQ8L3RkPgorICogICAgPHRkIGFsaWduPSJyaWdodCI+MC4wMDwvdGQ+CisgKiAgPC90cj4KKyAqICA8dHI+CisgKiAgICA8dGQ+MSBuYW5vc2Vjb25kPC90ZD4KKyAqICAgIDx0ZCBhbGlnbj0icmlnaHQiPjU4NC41NDIwNDYxPC90ZD4KKyAqICAgIDx0ZCBhbGlnbj0icmlnaHQiPjAuMjg1NDwvdGQ+CisgKiAgICA8dGQgYWxpZ249InJpZ2h0Ij4wLjAwPC90ZD4KKyAqICA8L3RyPgorICogPC90YWJsZT4KKyAqCisgKiA8cD4KKyAqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBhIHVuaXZlcnNhbCB0aW1lIHNjYWxlIHdoaWNoIGNhbiBiZSB1c2VkIGFzIGEgJ3Bpdm90JywKKyAqIGFuZCBwcm92aWRlIGNvbnZlcnNpb24gZnVuY3Rpb25zIHRvIGFuZCBmcm9tIGFsbCBvdGhlciBtYWpvciB0aW1lIHNjYWxlcy4KKyAqIFRoaXMgZGF0ZXRpbWVzIHRvIGJlIGNvbnZlcnRlZCB0byB0aGUgcGl2b3QgdGltZSwgc2FmZWx5IG1hbmlwdWxhdGVkLAorICogYW5kIGNvbnZlcnRlZCBiYWNrIHRvIGFueSBvdGhlciBkYXRldGltZSB0aW1lIHNjYWxlLgorICoKKyAqPHA+CisgKiBTbyB3aGF0IHRvIHVzZSBmb3IgdGhpcyBwaXZvdD8gSmF2YSB0aW1lIGhhcyBwbGVudHkgb2YgcmFuZ2UsIGJ1dCBjYW5ub3QgcmVwcmVzZW50CisgKiAuTkVUIGZyYW1ld29yayA8Y29kZT5TeXN0ZW0uRGF0ZVRpbWU8L2NvZGU+IHZhdWxlcyB3aXRob3V0IHNldmVyZSBsb3NzIG9mIHByZWNpc2lvbi4gSUNVNEMgdGltZSBhZGRyZXNzZXMgdGhpcyBieSB1c2luZyBhCisgKiA8Y29kZT5kb3VibGU8L2NvZGU+IHRoYXQgaXMgb3RoZXJ3aXNlIGVxdWl2YWxlbnQgdG8gdGhlIEphdmEgdGltZS4gSG93ZXZlciwgdGhlcmUgYXJlIGRpc2FkdmFudGFnZXMKKyAqIHdpdGggPGNvZGU+ZG91YmxlczwvY29kZT4uIFRoZXkgcHJvdmlkZSBmb3IgbXVjaCBtb3JlIGdyYWNlZnVsIGRlZ3JhZGF0aW9uIGluIGFyaXRobWV0aWMgb3BlcmF0aW9ucy4KKyAqIEJ1dCB0aGV5IG9ubHkgaGF2ZSA1MyBiaXRzIG9mIGFjY3VyYWN5LCB3aGljaCBtZWFucyB0aGF0IHRoZXkgd2lsbCBsb3NlIHByZWNpc2lvbiB3aGVuCisgKiBjb252ZXJ0aW5nIGJhY2sgYW5kIGZvcnRoIHRvIHRpY2tzLiBXaGF0IHdvdWxkIHJlYWxseSBiZSBuaWNlIHdvdWxkIGJlIGEKKyAqIDxjb2RlPmxvbmcgZG91YmxlPC9jb2RlPiAoODAgYml0cyAtLSA2NCBiaXQgbWFudGlzc2EpLCBidXQgdGhhdCBpcyBub3Qgc3VwcG9ydGVkIG9uIG1vc3Qgc3lzdGVtcy4KKyAqCisgKjxwPgorICogVGhlIFVuaXggZXh0ZW5kZWQgdGltZSB1c2VzIGEgc3RydWN0dXJlIHdpdGggdHdvIGNvbXBvbmVudHM6IHRpbWUgaW4gc2Vjb25kcyBhbmQgYQorICogZnJhY3Rpb25hbCBmaWVsZCAobWljcm9zZWNvbmRzKS4gSG93ZXZlciwgdGhpcyBpcyBjbHVtc3ksIHNsb3csIGFuZAorICogcHJvbmUgdG8gZXJyb3IgKHlvdSBhbHdheXMgaGF2ZSB0byBrZWVwIHRyYWNrIG9mIG92ZXJmbG93IGFuZCB1bmRlcmZsb3cgaW4gdGhlCisgKiBmcmFjdGlvbmFsIGZpZWxkKS4gPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gd291bGQgYWxsb3cgZm9yIGFyYml0cmFyeSBwcmVjaXNpb24gYW5kIGFyYml0cmFyeSByYW5nZSwKKyAqIGJ1dCB3ZSB3b3VsZCBub3Qgd2FudCB0byB1c2UgdGhpcyBhcyB0aGUgbm9ybWFsIHR5cGUsIGJlY2F1c2UgaXQgaXMgc2xvdyBhbmQgZG9lcyBub3QKKyAqIGhhdmUgYSBmaXhlZCBzaXplLgorICoKKyAqPHA+CisgKiBCZWNhdXNlIG9mIHRoZXNlIGlzc3Vlcywgd2UgZW5kZWQgdXAgY29uY2x1ZGluZyB0aGF0IHRoZSAuTkVUIGZyYW1ld29yaydzIDxjb2RlPlN5c3RlbS5EYXRlVGltZTwvY29kZT4gd291bGQgYmUgdGhlCisgKiBiZXN0IHBpdm90LiBIb3dldmVyLCB3ZSB1c2UgdGhlIGZ1bGwgcmFuZ2UgYWxsb3dlZCBieSB0aGUgZGF0YXR5cGUsIGFsbG93aW5nIGZvcgorICogZGF0ZXRpbWVzIGJhY2sgdG8gMjksMDAwIEJDIGFuZCB1cCB0byAyOSwwMDAgQUQuIFRoaXMgdGltZSBzY2FsZSBpcyB2ZXJ5IGZpbmUgZ3JhaW5lZCwKKyAqIGRvZXMgbm90IGxvc2UgcHJlY2lzaW9uLCBhbmQgY292ZXJzIGEgcmFuZ2UgdGhhdCB3aWxsIG1lZXQgYWxtb3N0IGFsbCByZXF1aXJlbWVudHMuCisgKiBJdCB3aWxsIG5vdCBoYW5kbGUgdGhlIHJhbmdlIHRoYXQgSmF2YSB0aW1lcyB3b3VsZCwgYnV0IGZyYW5rbHksIGJlaW5nIGFibGUgdG8gaGFuZGxlIGRhdGVzCisgKiBiZWZvcmUgMjksMDAwIEJDIG9yIGFmdGVyIDI5LDAwMCBBRCBpcyBvZiB2ZXJ5IGxpbWl0ZWQgaW50ZXJlc3QuIEhvd2V2ZXIsIGZvciB0aG9zZSBjYXNlcywKKyAqIHdlIGFsc28gYWxsb3cgY29udmVyc2lvbiB0byBhbiBvcHRpb25hbCA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiBmb3JtYXQgdGhhdCB3b3VsZCBoYXZlIGFyYml0cmFyeQorICogcHJlY2lzaW9uIGFuZCByYW5nZS4KKyAqCisgKiBAZHJhZnQgSUNVIDMuMgorICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFVuaXZlcnNhbFRpbWVTY2FsZQoreworICAgIC8qKgorICAgICAqIFVzZWQgaW4gdGhlIEpESy4gRGF0YSBpcyBhIDxjb2RlPmxvbmc8L2NvZGU+LiBWYWx1ZQorICAgICAqIGlzIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEpBVkFfVElNRSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIFVuaXggc3lzdGVtcy4gRGF0YSBpcyBhbiA8Y29kZT5pbnQ8L2NvZGU+IG9yIGEgPGNvZGU+bG9uZzwvY29kZT4uIFZhbHVlCisgICAgICogaXMgc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVOSVhfVElNRSA9IDE7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIHRoZSBJQ1U0Qy4gRGF0YSBpcyBhIDxjb2RlPmRvdWJsZTwvY29kZT4uIFZhbHVlCisgICAgICogaXMgbWlsbGlzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MC4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgSUNVNENfVElNRSA9IDI7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIFdpbmRvd3MgZm9yIGZpbGUgdGltZXMuIERhdGEgaXMgYSA8Y29kZT5sb25nPC9jb2RlPi4gVmFsdWUKKyAgICAgKiBpcyB0aWNrcyAoMSB0aWNrID09IDEwMCBuYW5vc2Vjb25kcykgc2luY2UgSmFudWFyeSAxLCAxNjAxLgorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBXSU5ET1dTX0ZJTEVfVElNRSA9IDM7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIHRoZSAuTkVUIGZyYW1ld29yaydzIDxjb2RlPlN5c3RlbS5EYXRlVGltZTwvY29kZT4gc3RydWN0dXJlLgorICAgICAqIERhdGEgaXMgYSA8Y29kZT5sb25nPC9jb2RlPi4gVmFsdWUgaXMgdGlja3MgKDEgdGljayA9PSAxMDAgbmFub3NlY29uZHMpIHNpbmNlIEphbnVhcnkgMSwgMDAwMS4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRE9UTkVUX0RBVEVfVElNRSA9IDQ7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIG9sZGVyIE1hY2ludG9zaCBzeXN0ZW1zLiBEYXRhIGlzIGFuIDxjb2RlPmludDwvY29kZT4uIFZhbHVlCisgICAgICogaXMgc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5MDQuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BQ19PTERfVElNRSA9IDU7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIGluIHRoZSBKREsuIERhdGEgaXMgYSA8Y29kZT5kb3VibGU8L2NvZGU+LiBWYWx1ZQorICAgICAqIGlzIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDIwMDEuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BQ19USU1FID0gNjsKKworICAgIC8qKgorICAgICAqIFVzZWQgaW4gRXhjZWwuIERhdGEgaXMgYSA8Y29kZT4/dW5rbm93bj88L2NvZGU+LiBWYWx1ZQorICAgICAqIGlzIGRheXMgc2luY2UgRGVjZW1iZXIgMzEsIDE4OTkuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVYQ0VMX1RJTUUgPSA3OworCisgICAgLyoqCisgICAgICogVXNlZCBpbiBEQjIuIERhdGEgaXMgYSA8Y29kZT4/dW5rbm93bj88L2NvZGU+LiBWYWx1ZQorICAgICAqIGlzIGRheXMgc2luY2UgRGVjZW1iZXIgMzEsIDE4OTkuCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERCMl9USU1FID0gODsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHRoZSBmaXJzdCB1bnVzZWQgdGltZSBzY2FsZSB2YWx1ZS4KKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTUFYX1NDQUxFID0gOTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgY29uc3RhbnQgdXNlZCB0byBzZWxlY3QgdGhlIHVuaXRzIHZhbHVlCisgICAgICogZm9yIGEgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5JVFNfVkFMVUUgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBjb25zdGFudCB1c2VkIHRvIHNlbGVjdCB0aGUgZXBvY2ggb2Zmc2V0IHZhbHVlCisgICAgICogZm9yIGEgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNnZXRUaW1lU2NhbGVWYWx1ZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUE9DSF9PRkZTRVRfVkFMVUUgPSAxOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBjb25zdGFudCB1c2VkIHRvIHNlbGVjdCB0aGUgbWluaW11bSBmcm9tIHZhbHVlCisgICAgICogZm9yIGEgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNnZXRUaW1lU2NhbGVWYWx1ZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGUk9NX01JTl9WQUxVRSA9IDI7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGNvbnN0YW50IHVzZWQgdG8gc2VsZWN0IHRoZSBtYXhpbXVtIGZyb20gdmFsdWUKKyAgICAgKiBmb3IgYSB0aW1lIHNjYWxlLgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZST01fTUFYX1ZBTFVFID0gMzsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgY29uc3RhbnQgdXNlZCB0byBzZWxlY3QgdGhlIG1pbmltdW0gdG8gdmFsdWUKKyAgICAgKiBmb3IgYSB0aW1lIHNjYWxlLgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRPX01JTl9WQUxVRSA9IDQ7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGNvbnN0YW50IHVzZWQgdG8gc2VsZWN0IHRoZSBtYXhpbXVtIHRvIHZhbHVlCisgICAgICogZm9yIGEgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNnZXRUaW1lU2NhbGVWYWx1ZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBUT19NQVhfVkFMVUUgPSA1OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBjb25zdGFudCB1c2VkIHRvIHNlbGVjdCB0aGUgZXBvY2ggcGx1cyBvbmUgdmFsdWUKKyAgICAgKiBmb3IgYSB0aW1lIHNjYWxlLgorICAgICAqIAorICAgICAqIE5PVEU6IFRoaXMgaXMgYW4gaW50ZXJuYWwgdmFsdWUuIERPIE5PVCBVU0UgSVQuIE1heSBub3QKKyAgICAgKiBhY3R1YWxseSBiZSBlcXVhbCB0byB0aGUgZXBvY2ggb2Zmc2V0IHZhbHVlIHBsdXMgb25lLgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVQT0NIX09GRlNFVF9QTFVTXzFfVkFMVUUgPSA2OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBjb25zdGFudCB1c2VkIHRvIHNlbGVjdCB0aGUgZXBvY2ggb2Zmc2V0IG1pbnVzIG9uZSB2YWx1ZQorICAgICAqIGZvciBhIHRpbWUgc2NhbGUuCisgICAgICogCisgICAgICogTk9URTogVGhpcyBpcyBhbiBpbnRlcm5hbCB2YWx1ZS4gRE8gTk9UIFVTRSBJVC4gTWF5IG5vdAorICAgICAqIGFjdHVhbGx5IGJlIGVxdWFsIHRvIHRoZSBlcG9jaCBvZmZzZXQgdmFsdWUgbWludXMgb25lLgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBFUE9DSF9PRkZTRVRfTUlOVVNfMV9WQUxVRSA9IDc7CisgICAgCisgICAgLyoqCisgICAgICogVGhlIGNvbnN0YW50IHVzZWQgdG8gc2VsZWN0IHRoZSB1bml0cyByb3VuZCB2YWx1ZQorICAgICAqIGZvciBhIHRpbWUgc2NhbGUuCisgICAgICogCisgICAgICogTk9URTogVGhpcyBpcyBhbiBpbnRlcm5hbCB2YWx1ZS4gRE8gTk9UIFVTRSBJVC4KKyAgICAgKiAKKyAgICAgKiBAc2VlICNnZXRUaW1lU2NhbGVWYWx1ZQorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVU5JVFNfUk9VTkRfVkFMVUUgPSA4OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBjb25zdGFudCB1c2VkIHRvIHNlbGVjdCB0aGUgbWluaW11bSBzYWZlIHJvdW5kaW5nIHZhbHVlCisgICAgICogZm9yIGEgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBOT1RFOiBUaGlzIGlzIGFuIGludGVybmFsIHZhbHVlLiBETyBOT1QgVVNFIElULgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNSU5fUk9VTkRfVkFMVUUgPSA5OworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBjb25zdGFudCB1c2VkIHRvIHNlbGVjdCB0aGUgbWF4aW11bSBzYWZlIHJvdW5kaW5nIHZhbHVlCisgICAgICogZm9yIGEgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBOT1RFOiBUaGlzIGlzIGFuIGludGVybmFsIHZhbHVlLiBETyBOT1QgVVNFIElULgorICAgICAqIAorICAgICAqIEBzZWUgI2dldFRpbWVTY2FsZVZhbHVlCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBNQVhfUk9VTkRfVkFMVUUgPSAxMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIHRpbWUgc2NhbGUgdmFsdWVzLgorICAgICAqIAorICAgICAqIE5PVEU6IFRoaXMgaXMgYW4gaW50ZXJuYWwgdmFsdWUuIERPIE5PVCBVU0UgSVQuCisgICAgICogCisgICAgICogQHNlZSAjZ2V0VGltZVNjYWxlVmFsdWUKKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IE1BWF9TQ0FMRV9WQUxVRSA9IDExOworICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgdGlja3MgICAgICAgID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIG1pY3Jvc2Vjb25kcyA9IHRpY2tzICogMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBtaWxsaXNlY29uZHMgPSBtaWNyb3NlY29uZHMgKiAxMDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2Vjb25kcyAgICAgID0gbWlsbGlzZWNvbmRzICogMTAwMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIG1pbnV0ZXMgICAgICA9IHNlY29uZHMgKiA2MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGhvdXJzICAgICAgICA9IG1pbnV0ZXMgKiA2MDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIGRheXMgICAgICAgICA9IGhvdXJzICogMjQ7CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBjbGFzcyBob2xkcyB0aGUgZGF0YSB0aGF0IGRlc2NyaWJlcyBhIHBhcnRpY3VsYXIKKyAgICAgKiB0aW1lIHNjYWxlLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgVGltZVNjYWxlRGF0YQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YShsb25nIHRoZVVuaXRzLCBsb25nIHRoZUVwb2NoT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRoZVRvTWluLCBsb25nIHRoZVRvTWF4LAorICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRoZUZyb21NaW4sIGxvbmcgdGhlRnJvbU1heCkKKyAgICAgICAgeworICAgICAgICAgICAgdW5pdHMgICAgICA9IHRoZVVuaXRzOworICAgICAgICAgICAgdW5pdHNSb3VuZCA9IHRoZVVuaXRzIC8gMjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbWluUm91bmQgPSBMb25nLk1JTl9WQUxVRSArIHVuaXRzUm91bmQ7CisgICAgICAgICAgICBtYXhSb3VuZCA9IExvbmcuTUFYX1ZBTFVFIC0gdW5pdHNSb3VuZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZXBvY2hPZmZzZXQgICA9IHRoZUVwb2NoT2Zmc2V0IC8gdGhlVW5pdHM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh0aGVVbml0cyA9PSAxKSB7CisgICAgICAgICAgICAgICAgZXBvY2hPZmZzZXRQMSA9IGVwb2NoT2Zmc2V0TTEgPSBlcG9jaE9mZnNldDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXBvY2hPZmZzZXRQMSA9IGVwb2NoT2Zmc2V0ICsgMTsKKyAgICAgICAgICAgICAgICBlcG9jaE9mZnNldE0xID0gZXBvY2hPZmZzZXQgLSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB0b01pbiA9IHRoZVRvTWluOworICAgICAgICAgICAgdG9NYXggPSB0aGVUb01heDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZnJvbU1pbiA9IHRoZUZyb21NaW47CisgICAgICAgICAgICBmcm9tTWF4ID0gdGhlRnJvbU1heDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbG9uZyB1bml0czsKKyAgICAgICAgbG9uZyBlcG9jaE9mZnNldDsKKyAgICAgICAgbG9uZyBmcm9tTWluOworICAgICAgICBsb25nIGZyb21NYXg7CisgICAgICAgIGxvbmcgdG9NaW47CisgICAgICAgIGxvbmcgdG9NYXg7CisgICAgICAgIAorICAgICAgICBsb25nIGVwb2NoT2Zmc2V0UDE7CisgICAgICAgIGxvbmcgZXBvY2hPZmZzZXRNMTsKKyAgICAgICAgbG9uZyB1bml0c1JvdW5kOworICAgICAgICBsb25nIG1pblJvdW5kOworICAgICAgICBsb25nIG1heFJvdW5kOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBUaW1lU2NhbGVEYXRhW10gdGltZVNjYWxlVGFibGUgPSB7CisgICAgICAgICAgICBuZXcgVGltZVNjYWxlRGF0YShtaWxsaXNlY29uZHMsIDYyMTM1NzY5NjAwMDAwMDAwMEwsIC05MjIzMzcyMDM2ODU0Nzc0OTk5TCwgOTIyMzM3MjAzNjg1NDc3NDk5OUwsIC05ODQ0NzI5NzMyODU0NzdMLCAgICAgICAgIDg2MDIwMTQzNDA4NTQ3N0wpLCAvLyBKQVZBX1RJTUUKKyAgICAgICAgICAgIG5ldyBUaW1lU2NhbGVEYXRhKHNlY29uZHMsICAgICAgNjIxMzU3Njk2MDAwMDAwMDAwTCwgLTkyMjMzNzIwMzY4NTQ3NzU4MDhMLCA5MjIzMzcyMDM2ODU0Nzc1ODA3TCwgLTk4NDQ3Mjk3MzI4NUwsICAgICAgICAgICAgICAgODYwMjAxNDM0MDg1TCksIC8vIFVOSVhfVElNRQorICAgICAgICAgICAgbmV3IFRpbWVTY2FsZURhdGEobWlsbGlzZWNvbmRzLCA2MjEzNTc2OTYwMDAwMDAwMDBMLCAtOTIyMzM3MjAzNjg1NDc3NDk5OUwsIDkyMjMzNzIwMzY4NTQ3NzQ5OTlMLCAtOTg0NDcyOTczMjg1NDc3TCwgICAgICAgICA4NjAyMDE0MzQwODU0NzdMKSwgLy8gSUNVNENfVElNRQorICAgICAgICAgICAgbmV3IFRpbWVTY2FsZURhdGEodGlja3MsICAgICAgICA1MDQ5MTI5NjAwMDAwMDAwMDBMLCAtODcxODQ1OTA3Njg1NDc3NTgwOEwsIDkyMjMzNzIwMzY4NTQ3NzU4MDdMLCAtOTIyMzM3MjAzNjg1NDc3NTgwOEwsIDg3MTg0NTkwNzY4NTQ3NzU4MDdMKSwgLy8gV0lORE9XU19GSUxFX1RJTUUKKyAgICAgICAgICAgIG5ldyBUaW1lU2NhbGVEYXRhKHRpY2tzLCAgICAgICAgMDAwMDAwMDAwMDAwMDAwMDAwTCwgLTkyMjMzNzIwMzY4NTQ3NzU4MDhMLCA5MjIzMzcyMDM2ODU0Nzc1ODA3TCwgLTkyMjMzNzIwMzY4NTQ3NzU4MDhMLCA5MjIzMzcyMDM2ODU0Nzc1ODA3TCksIC8vIERPVE5FVF9EQVRFX1RJTUUKKyAgICAgICAgICAgIG5ldyBUaW1lU2NhbGVEYXRhKHNlY29uZHMsICAgICAgNjAwNTI5MjQ4MDAwMDAwMDAwTCwgLTkyMjMzNzIwMzY4NTQ3NzU4MDhMLCA5MjIzMzcyMDM2ODU0Nzc1ODA3TCwgLTk4MjM5MDEyODQ4NUwsICAgICAgICAgICAgICAgODYyMjg0Mjc4ODg1TCksIC8vIE1BQ19PTERfVElNRQorICAgICAgICAgICAgbmV3IFRpbWVTY2FsZURhdGEoc2Vjb25kcywgICAgICA2MzExNDA3NjgwMDAwMDAwMDBMLCAtOTIyMzM3MjAzNjg1NDc3NTgwOEwsIDkyMjMzNzIwMzY4NTQ3NzU4MDdMLCAtOTg1NDUxMjgwNDg1TCwgICAgICAgICAgICAgICA4NTkyMjMxMjY4ODVMKSwgLy8gTUFDX1RJTUUKKyAgICAgICAgICAgIG5ldyBUaW1lU2NhbGVEYXRhKGRheXMsICAgICAgICAgNTk5MjY2OTQ0MDAwMDAwMDAwTCwgLTkyMjMzNzIwMzY4NTQ3NzU4MDhMLCA5MjIzMzcyMDM2ODU0Nzc1ODA3TCwgLTExMzY4Nzk1TCwgICAgICAgICAgICAgICAgICAgICAgICA5OTgxNjAzTCksIC8vIEVYQ0VMX1RJTUUKKyAgICAgICAgICAgIG5ldyBUaW1lU2NhbGVEYXRhKGRheXMsICAgICAgICAgNTk5MjY2OTQ0MDAwMDAwMDAwTCwgLTkyMjMzNzIwMzY4NTQ3NzU4MDhMLCA5MjIzMzcyMDM2ODU0Nzc1ODA3TCwgLTExMzY4Nzk1TCwgICAgICAgICAgICAgICAgICAgICAgICA5OTgxNjAzTCkgIC8vIERCMl9USU1FCisgICAgfTsKKyAgICAKKyAgICAKKyAgICAvKgorICAgICAqIFByZXZlbnQgY29uc3RydWN0aW9uIG9mIHRoaXMgY2xhc3MuCisgICAgICovCisgICAgcHJpdmF0ZSBVbml2ZXJzYWxUaW1lU2NhbGUoKQorICAgIHsKKyAgICAgICAgLy8gbm90aGluZyB0byBkbworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgPGNvZGU+bG9uZzwvY29kZT4gZGF0ZXRpbWUgZnJvbSB0aGUgZ2l2ZW4gdGltZSBzY2FsZSB0byB0aGUgdW5pdmVyc2FsIHRpbWUgc2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXJUaW1lIFRoZSA8Y29kZT5sb25nPC9jb2RlPiBkYXRldGltZQorICAgICAqIEBwYXJhbSB0aW1lU2NhbGUgVGhlIHRpbWUgc2NhbGUgdG8gY29udmVydCBmcm9tCisgICAgICogCisgICAgICogQHJldHVybiBUaGUgZGF0ZXRpbWUgY29udmVydGVkIHRvIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGxvbmcgZnJvbShsb25nIG90aGVyVGltZSwgaW50IHRpbWVTY2FsZSkKKyAgICB7CisgICAgICAgIFRpbWVTY2FsZURhdGEgZGF0YSA9IGZyb21SYW5nZUNoZWNrKG90aGVyVGltZSwgdGltZVNjYWxlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIChvdGhlclRpbWUgKyBkYXRhLmVwb2NoT2Zmc2V0KSAqIGRhdGEudW5pdHM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIDxjb2RlPmRvdWJsZTwvY29kZT4gZGF0ZXRpbWUgZnJvbSB0aGUgZ2l2ZW4gdGltZSBzY2FsZSB0byB0aGUgdW5pdmVyc2FsIHRpbWUgc2NhbGUuCisgICAgICogQWxsIGNhbGN1bGF0aW9ucyBhcmUgZG9uZSB1c2luZyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBndWFyYW50ZWUgdGhhdCB0aGUgdmFsdWUKKyAgICAgKiBkb2VzIG5vdCBnbyBvdXQgb2YgcmFuZ2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXJUaW1lIFRoZSA8Y29kZT5kb3VibGU8L2NvZGU+IGRhdGV0aW1lCisgICAgICogQHBhcmFtIHRpbWVTY2FsZSBUaGUgdGltZSBzY2FsZSB0byBjb252ZXJ0IGZyb20KKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIFRoZSBkYXRldGltZSBjb252ZXJ0ZWQgdG8gdGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlCisgICAgICoKKyAgICAgKiBAZHJhZnQgSUNVIDMuMgorICAgICAqIEBwcm92aXNpb25hbCBUaGlzIEFQSSBtaWdodCBjaGFuZ2Ugb3IgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQmlnRGVjaW1hbCBiaWdEZWNpbWFsRnJvbShkb3VibGUgb3RoZXJUaW1lLCBpbnQgdGltZVNjYWxlKQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YSBkYXRhICAgICA9IGdldFRpbWVTY2FsZURhdGEodGltZVNjYWxlKTsKKyAgICAgICAgQmlnRGVjaW1hbCBvdGhlciAgICAgICA9IG5ldyBCaWdEZWNpbWFsKFN0cmluZy52YWx1ZU9mKG90aGVyVGltZSkpOworICAgICAgICBCaWdEZWNpbWFsIHVuaXRzICAgICAgID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS51bml0cyk7CisgICAgICAgIEJpZ0RlY2ltYWwgZXBvY2hPZmZzZXQgPSBuZXcgQmlnRGVjaW1hbChkYXRhLmVwb2NoT2Zmc2V0KTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBvdGhlci5hZGQoZXBvY2hPZmZzZXQpLm11bHRpcGx5KHVuaXRzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgPGNvZGU+bG9uZzwvY29kZT4gZGF0ZXRpbWUgZnJvbSB0aGUgZ2l2ZW4gdGltZSBzY2FsZSB0byB0aGUgdW5pdmVyc2FsIHRpbWUgc2NhbGUuCisgICAgICogQWxsIGNhbGN1bGF0aW9ucyBhcmUgZG9uZSB1c2luZyA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBndWFyYW50ZWUgdGhhdCB0aGUgdmFsdWUKKyAgICAgKiBkb2VzIG5vdCBnbyBvdXQgb2YgcmFuZ2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXJUaW1lIFRoZSA8Y29kZT5sb25nPC9jb2RlPiBkYXRldGltZQorICAgICAqIEBwYXJhbSB0aW1lU2NhbGUgVGhlIHRpbWUgc2NhbGUgdG8gY29udmVydCBmcm9tCisgICAgICogCisgICAgICogQHJldHVybiBUaGUgZGF0ZXRpbWUgY29udmVydGVkIHRvIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJpZ0RlY2ltYWwgYmlnRGVjaW1hbEZyb20obG9uZyBvdGhlclRpbWUsIGludCB0aW1lU2NhbGUpCisgICAgeworICAgICAgICBUaW1lU2NhbGVEYXRhIGRhdGEgICAgID0gZ2V0VGltZVNjYWxlRGF0YSh0aW1lU2NhbGUpOworICAgICAgICBCaWdEZWNpbWFsIG90aGVyICAgICAgID0gbmV3IEJpZ0RlY2ltYWwob3RoZXJUaW1lKTsKKyAgICAgICAgQmlnRGVjaW1hbCB1bml0cyAgICAgICA9IG5ldyBCaWdEZWNpbWFsKGRhdGEudW5pdHMpOworICAgICAgICBCaWdEZWNpbWFsIGVwb2NoT2Zmc2V0ID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS5lcG9jaE9mZnNldCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gb3RoZXIuYWRkKGVwb2NoT2Zmc2V0KS5tdWx0aXBseSh1bml0cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29udmVydCBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGRhdGV0aW1lIGZyb20gdGhlIGdpdmVuIHRpbWUgc2NhbGUgdG8gdGhlIHVuaXZlcnNhbCB0aW1lIHNjYWxlLgorICAgICAqIEFsbCBjYWxjdWxhdGlvbnMgYXJlIGRvbmUgdXNpbmcgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gdG8gZ3VhcmFudGVlIHRoYXQgdGhlIHZhbHVlCisgICAgICogZG9lcyBub3QgZ28gb3V0IG9mIHJhbmdlLgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyVGltZSBUaGUgPGNvZGU+QmlnRGVjaW1hbDwvY29kZT4gZGF0ZXRpbWUKKyAgICAgKiBAcGFyYW0gdGltZVNjYWxlIFRoZSB0aW1lIHNjYWxlIHRvIGNvbnZlcnQgZnJvbQorICAgICAqIAorICAgICAqIEByZXR1cm4gVGhlIGRhdGV0aW1lIGNvbnZlcnRlZCB0byB0aGUgdW5pdmVyc2FsIHRpbWUgc2NhbGUKKyAgICAgKgorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCaWdEZWNpbWFsIGJpZ0RlY2ltYWxGcm9tKEJpZ0RlY2ltYWwgb3RoZXJUaW1lLCBpbnQgdGltZVNjYWxlKQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YSBkYXRhID0gZ2V0VGltZVNjYWxlRGF0YSh0aW1lU2NhbGUpOworICAgICAgICAKKyAgICAgICAgQmlnRGVjaW1hbCB1bml0cyA9IG5ldyBCaWdEZWNpbWFsKGRhdGEudW5pdHMpOworICAgICAgICBCaWdEZWNpbWFsIGVwb2NoT2Zmc2V0ID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS5lcG9jaE9mZnNldCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gb3RoZXJUaW1lLmFkZChlcG9jaE9mZnNldCkubXVsdGlwbHkodW5pdHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBkYXRldGltZSBmcm9tIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZSBzdG9yZWQgYXMgYSA8Y29kZT5CaWdEZWNpbWFsPC9jb2RlPiB0byBhCisgICAgICogPGNvZGU+bG9uZzwvY29kZT4gaW4gdGhlIGdpdmVuIHRpbWUgc2NhbGUuCisgICAgICoKKyAgICAgKiBTaW5jZSB0aGlzIGNhbGN1bGF0aW9uIHJlcXVpcmVzIGEgZGl2aWRlLCB3ZSBtdXN0IHJvdW5kLiBUaGUgc3RyYWlnaHQgZm9yd2FyZAorICAgICAqIHdheSB0byByb3VuZCBieSBhZGRpbmcgaGFsZiBvZiB0aGUgZGl2aXNvciB3aWxsIHB1c2ggdGhlIHN1bSBvdXQgb2YgcmFuZ2UgZm9yIHZhbHVlcworICAgICAqIHdpdGhpbiBoYXZlIHRoZSBkaXZpc29yIG9mIHRoZSBsaW1pdHMgb2YgdGhlIHByZWNpc2lvbiBvZiBhIDxjb2RlPmxvbmc8L2NvZGU+LiBUbyBnZXQgYXJvdW5kIHRoaXMsIHdlIGRvCisgICAgICogdGhlIHJvdW5kaW5nIGxpa2UgdGhpczoKKyAgICAgKiAKKyAgICAgKiA8cD48Y29kZT4KKyAgICAgKiAodW5pdmVyc2FsVGltZSAtIHVuaXRzICsgdW5pdHMvMikgLyB1bml0cyArIDEKKyAgICAgKiA8L2NvZGU+CisgICAgICogCisgICAgICogPHA+CisgICAgICogKGkuZS4gd2Ugc3VidHJhY3QgdW5pdHMgZmlyc3QgdG8gZ3VhcmFudGVlIHRoYXQgd2UnbGwgc3RpbGwgYmUgaW4gcmFuZ2Ugd2hlbiB3ZQorICAgICAqIGFkZCA8Y29kZT51bml0cy8yPC9jb2RlPi4gV2UgdGhlbiBuZWVkIHRvIGFkZCBvbmUgdG8gdGhlIHF1b3RlbnQgdG8gbWFrZSB1cCBmb3IgdGhlIGV4dHJhIHN1YnRyYWN0aW9uLgorICAgICAqIFRoaXMgc2ltcGxpZmllcyB0bzoKKyAgICAgKiAKKyAgICAgKiA8cD48Y29kZT4KKyAgICAgKiAodW5pdmVyc2FsVGltZSAtIHVuaXRzLzIpIC8gdW5pdHMgLSAxCisgICAgICogPC9jb2RlPgorICAgICAqIAorICAgICAqIDxwPgorICAgICAqIEZvciBuZWdhdGl2ZSB2YWx1ZXMgdG8gcm91bmQgYXdheSBmcm9tIHplcm8sIHdlIG5lZWQgdG8gZmxpcCB0aGUgc2lnbnM6CisgICAgICogCisgICAgICogPHA+PGNvZGU+CisgICAgICogKHVuaXZlcnNhbFRpbWUgKyB1bml0cy8yKSAvIHVuaXRzICsgMQorICAgICAqIDwvY29kZT4KKyAgICAgKiAKKyAgICAgKiA8cD4KKyAgICAgKiBTaW5jZSB3ZSBhbHNvIG5lZWQgdG8gc3VidHJhY3QgdGhlIGVwb2NoT2Zmc2V0LCB3ZSBmb2xkIHRoZSA8Y29kZT4rLy0gMTwvY29kZT4KKyAgICAgKiBpbnRvIHRoZSBvZmZzZXQgdmFsdWUuIChpLmUuIDxjb2RlPmVwb2NoT2Zmc2V0UDE8L2NvZGU+LCA8Y29kZT5lcG9jaE9mZnNldE0xPC9jb2RlPi4pCisgICAgICogCisgICAgICogQHBhcmFtIHVuaXZlcnNhbFRpbWUgVGhlIGRhdGV0aW1lIGluIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZQorICAgICAqIEBwYXJhbSB0aW1lU2NhbGUgVGhlIHRpbWUgc2NhbGUgdG8gY29udmVydCB0bworICAgICAqIAorICAgICAqIEByZXR1cm4gVGhlIGRhdGV0aW1lIGNvbnZlcnRlZCB0byB0aGUgZ2l2ZW4gdGltZSBzY2FsZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGxvbmcgdG9Mb25nKGxvbmcgdW5pdmVyc2FsVGltZSwgaW50IHRpbWVTY2FsZSkKKyAgICB7CisgICAgICAgIFRpbWVTY2FsZURhdGEgZGF0YSA9IHRvUmFuZ2VDaGVjayh1bml2ZXJzYWxUaW1lLCB0aW1lU2NhbGUpOworICAgICAgICAKKyAgICAgICAgaWYgKHVuaXZlcnNhbFRpbWUgPCAwKSB7CisgICAgICAgICAgICBpZiAodW5pdmVyc2FsVGltZSA8IGRhdGEubWluUm91bmQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKHVuaXZlcnNhbFRpbWUgKyBkYXRhLnVuaXRzUm91bmQpIC8gZGF0YS51bml0cyAtIGRhdGEuZXBvY2hPZmZzZXRQMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuICh1bml2ZXJzYWxUaW1lIC0gZGF0YS51bml0c1JvdW5kKSAvIGRhdGEudW5pdHMgLSBkYXRhLmVwb2NoT2Zmc2V0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodW5pdmVyc2FsVGltZSA+IGRhdGEubWF4Um91bmQpIHsKKyAgICAgICAgICAgIHJldHVybiAodW5pdmVyc2FsVGltZSAtIGRhdGEudW5pdHNSb3VuZCkgLyBkYXRhLnVuaXRzIC0gZGF0YS5lcG9jaE9mZnNldE0xOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gKHVuaXZlcnNhbFRpbWUgKyBkYXRhLnVuaXRzUm91bmQpIC8gZGF0YS51bml0cyAtIGRhdGEuZXBvY2hPZmZzZXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBkYXRldGltZSBmcm9tIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZSB0byBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGluIHRoZSBnaXZlbiB0aW1lIHNjYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHVuaXZlcnNhbFRpbWUgVGhlIGRhdGV0aW1lIGluIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZQorICAgICAqIEBwYXJhbSB0aW1lU2NhbGUgVGhlIHRpbWUgc2NhbGUgdG8gY29udmVydCB0bworICAgICAqIAorICAgICAqIEByZXR1cm4gVGhlIGRhdGV0aW1lIGNvbnZlcnRlZCB0byB0aGUgZ2l2ZW4gdGltZSBzY2FsZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJpZ0RlY2ltYWwgdG9CaWdEZWNpbWFsKGxvbmcgdW5pdmVyc2FsVGltZSwgaW50IHRpbWVTY2FsZSkKKyAgICB7CisgICAgICAgIFRpbWVTY2FsZURhdGEgZGF0YSAgICAgPSBnZXRUaW1lU2NhbGVEYXRhKHRpbWVTY2FsZSk7CisgICAgICAgIEJpZ0RlY2ltYWwgdW5pdmVyc2FsICAgPSBuZXcgQmlnRGVjaW1hbCh1bml2ZXJzYWxUaW1lKTsKKyAgICAgICAgQmlnRGVjaW1hbCB1bml0cyAgICAgICA9IG5ldyBCaWdEZWNpbWFsKGRhdGEudW5pdHMpOworICAgICAgICBCaWdEZWNpbWFsIGVwb2NoT2Zmc2V0ID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS5lcG9jaE9mZnNldCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdW5pdmVyc2FsLmRpdmlkZSh1bml0cywgQmlnRGVjaW1hbC5ST1VORF9IQUxGX1VQKS5zdWJ0cmFjdChlcG9jaE9mZnNldCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlcnQgYSBkYXRldGltZSBmcm9tIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZSB0byBhIDxjb2RlPkJpZ0RlY2ltYWw8L2NvZGU+IGluIHRoZSBnaXZlbiB0aW1lIHNjYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHVuaXZlcnNhbFRpbWUgVGhlIGRhdGV0aW1lIGluIHRoZSB1bml2ZXJzYWwgdGltZSBzY2FsZQorICAgICAqIEBwYXJhbSB0aW1lU2NhbGUgVGhlIHRpbWUgc2NhbGUgdG8gY29udmVydCB0bworICAgICAqIAorICAgICAqIEByZXR1cm4gVGhlIGRhdGV0aW1lIGNvbnZlcnRlZCB0byB0aGUgZ2l2ZW4gdGltZSBzY2FsZQorICAgICAqCisgICAgICogQGRyYWZ0IElDVSAzLjIKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEJpZ0RlY2ltYWwgdG9CaWdEZWNpbWFsKEJpZ0RlY2ltYWwgdW5pdmVyc2FsVGltZSwgaW50IHRpbWVTY2FsZSkKKyAgICB7CisgICAgICAgIFRpbWVTY2FsZURhdGEgZGF0YSAgICAgPSBnZXRUaW1lU2NhbGVEYXRhKHRpbWVTY2FsZSk7CisgICAgICAgIEJpZ0RlY2ltYWwgdW5pdHMgICAgICAgPSBuZXcgQmlnRGVjaW1hbChkYXRhLnVuaXRzKTsKKyAgICAgICAgQmlnRGVjaW1hbCBlcG9jaE9mZnNldCA9IG5ldyBCaWdEZWNpbWFsKGRhdGEuZXBvY2hPZmZzZXQpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHVuaXZlcnNhbFRpbWUuZGl2aWRlKHVuaXRzLCBCaWdEZWNpbWFsLlJPVU5EX0hBTEZfVVApLnN1YnRyYWN0KGVwb2NoT2Zmc2V0KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSA8Y29kZT5UaW1lU2NhbGVEYXRhPC9jb2RlPiBvYmplY3QgZm9yIHRoZSBnaXZlbiB0aW1lCisgICAgICogc2NhbGUuCisgICAgICogCisgICAgICogQHBhcmFtIHNjYWxlIC0gdGhlIHRpbWUgc2NhbGUKKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIHRoZSA8Y29kZT5UaW1lU2NhbGVEYXRhPC9jb2RlPiBvYmplY3QgZm9yIHRoZSBnaXZlbiB0aW1lIHNjYWxlCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgVGltZVNjYWxlRGF0YSBnZXRUaW1lU2NhbGVEYXRhKGludCBzY2FsZSkKKyAgICB7CisgICAgICAgIGlmIChzY2FsZSA8IDAgfHwgc2NhbGUgPj0gTUFYX1NDQUxFKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzY2FsZSBvdXQgb2YgcmFuZ2U6ICIgKyBzY2FsZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiB0aW1lU2NhbGVUYWJsZVtzY2FsZV07CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCBhIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBhIHBhcnRpY3VsYXIgdGltZSBzY2FsZS4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gc2NhbGUgLSB0aGUgdGltZSBzY2FsZQorICAgICAqIEBwYXJhbSB2YWx1ZSAtIGEgY29uc3RhbnQgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZSB0byBnZXQKKyAgICAgKiAKKyAgICAgKiBAcmV0dXJuIC0gdGhlIHZhbHVlLgorICAgICAqIAorICAgICAqIEBkcmFmdCBJQ1UgMy4yCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBsb25nIGdldFRpbWVTY2FsZVZhbHVlKGludCBzY2FsZSwgaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YSBkYXRhID0gZ2V0VGltZVNjYWxlRGF0YShzY2FsZSk7CisgICAgICAgIAorICAgICAgICBzd2l0Y2ggKHZhbHVlKQorICAgICAgICB7CisgICAgICAgIGNhc2UgVU5JVFNfVkFMVUU6CisgICAgICAgICAgICByZXR1cm4gZGF0YS51bml0czsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIEVQT0NIX09GRlNFVF9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLmVwb2NoT2Zmc2V0OworICAgICAgICAKKyAgICAgICAgY2FzZSBGUk9NX01JTl9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLmZyb21NaW47CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBGUk9NX01BWF9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLmZyb21NYXg7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBUT19NSU5fVkFMVUU6CisgICAgICAgICAgICByZXR1cm4gZGF0YS50b01pbjsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIFRPX01BWF9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLnRvTWF4OworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgRVBPQ0hfT0ZGU0VUX1BMVVNfMV9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLmVwb2NoT2Zmc2V0UDE7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBFUE9DSF9PRkZTRVRfTUlOVVNfMV9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLmVwb2NoT2Zmc2V0TTE7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBVTklUU19ST1VORF9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLnVuaXRzUm91bmQ7CisgICAgICAgIAorICAgICAgICBjYXNlIE1JTl9ST1VORF9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLm1pblJvdW5kOworICAgICAgICAgICAgCisgICAgICAgIGNhc2UgTUFYX1JPVU5EX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIGRhdGEubWF4Um91bmQ7CisgICAgICAgICAgICAKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInZhbHVlIG91dCBvZiByYW5nZTogIiArIHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBUaW1lU2NhbGVEYXRhIHRvUmFuZ2VDaGVjayhsb25nIHVuaXZlcnNhbFRpbWUsIGludCBzY2FsZSkKKyAgICB7CisgICAgICAgIFRpbWVTY2FsZURhdGEgZGF0YSA9IGdldFRpbWVTY2FsZURhdGEoc2NhbGUpOworICAgICAgICAgIAorICAgICAgICBpZiAodW5pdmVyc2FsVGltZSA+PSBkYXRhLnRvTWluICYmIHVuaXZlcnNhbFRpbWUgPD0gZGF0YS50b01heCkgeworICAgICAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInVuaXZlcnNhbFRpbWUgb3V0IG9mIHJhbmdlOiIgKyB1bml2ZXJzYWxUaW1lKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgVGltZVNjYWxlRGF0YSBmcm9tUmFuZ2VDaGVjayhsb25nIG90aGVyVGltZSwgaW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgVGltZVNjYWxlRGF0YSBkYXRhID0gZ2V0VGltZVNjYWxlRGF0YShzY2FsZSk7CisgICAgICAgICAgCisgICAgICAgIGlmIChvdGhlclRpbWUgPj0gZGF0YS5mcm9tTWluICYmIG90aGVyVGltZSA8PSBkYXRhLmZyb21NYXgpIHsKKyAgICAgICAgICAgIHJldHVybiBkYXRhOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJvdGhlclRpbWUgb3V0IG9mIHJhbmdlOiIgKyBvdGhlclRpbWUpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IGEgdGltZSBpbiB0aGUgVW5pdmVyc2FsIFRpbWUgU2NhbGUgaW50byBhbm90aGVyIHRpbWUKKyAgICAgKiBzY2FsZS4gVGhlIGRpdmlzaW9uIHVzZWQgdG8gZG8gdGhlIGNvbnZlcnNpb24gcm91bmRzIGRvd24uCisgICAgICogCisgICAgICogTk9URTogVGhpcyBpcyBhbiBpbnRlcm5hbCByb3V0aW5lIHVzZWQgYnkgdGhlIHRvb2wgdGhhdAorICAgICAqIGdlbmVyYXRlcyB0aGUgdG8gYW5kIGZyb20gbGltaXRzLiBVc2UgaXQgYXQgeW91ciBvd24gcmlzay4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gdW5pdmVyc2FsVGltZSB0aGUgdGltZSBpbiB0aGUgVW5pdmVyc2FsIFRpbWUgc2NhbGUKKyAgICAgKiBAcGFyYW0gdGltZVNjYWxlIHRoZSB0aW1lIHNjYWxlIHRvIGNvbnZlcnQgdG8KKyAgICAgKiBAcmV0dXJuIHRoZSB0aW1lIGluIHRoZSBnaXZlbiB0aW1lIHNjYWxlCisgICAgICogCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBCaWdEZWNpbWFsIHRvQmlnRGVjaW1hbFRydW5jKEJpZ0RlY2ltYWwgdW5pdmVyc2FsVGltZSwgaW50IHRpbWVTY2FsZSkKKyAgICB7CisgICAgICAgIFRpbWVTY2FsZURhdGEgZGF0YSA9IGdldFRpbWVTY2FsZURhdGEodGltZVNjYWxlKTsKKyAgICAgICAgQmlnRGVjaW1hbCB1bml0cyA9IG5ldyBCaWdEZWNpbWFsKGRhdGEudW5pdHMpOworICAgICAgICBCaWdEZWNpbWFsIGVwb2NoT2Zmc2V0ID0gbmV3IEJpZ0RlY2ltYWwoZGF0YS5lcG9jaE9mZnNldCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdW5pdmVyc2FsVGltZS5kaXZpZGUodW5pdHMsIEJpZ0RlY2ltYWwuUk9VTkRfRE9XTikuc3VidHJhY3QoZXBvY2hPZmZzZXQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL2ljdS91dGlsL1ZhbHVlSXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL2ljdS91dGlsL1ZhbHVlSXRlcmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTNjNzE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVmFsdWVJdGVyYXRvci5qYXZhCkBAIC0wLDAgKzEsMTA5IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICoKKyogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCitwYWNrYWdlIGNvbS5pYm0uaWN1LnV0aWw7CisKKy8qKgorICogPHA+SW50ZXJmYWNlIGZvciBlbmFibGluZyBpdGVyYXRpb24gb3ZlciBzZXRzIG9mIDxpbnQsIE9iamVjdD4sIHdoZXJlCisgKiBpbnQgaXMgdGhlIHNvcnRlZCBpbnRlZ2VyIGluZGV4IGluIGFzY2VuZGluZyBvcmRlciBhbmQgT2JqZWN0LCBpdHMgCisgKiBhc3NvY2lhdGVkIHZhbHVlLjwvcD4KKyAqIDxwPlRoZSBWYWx1ZUl0ZXJhdG9yIGFsbG93cyBpdGVyYXRpb25zIG92ZXIgaW50ZWdlciBpbmRleGVzIGluIHRoZSByYW5nZSAKKyAqIG9mIEludGVnZXIuTUlOX1ZBTFVFIHRvIEludGVnZXIuTUFYX1ZBTFVFIGluY2x1c2l2ZS4gSW1wbGVtZW50YXRpb25zIG9mIAorICogVmFsdWVJdGVyYXRvciBzaG91bGQgc3BlY2lmeSB0aGVpciBvd24gbWF4aW11bSBzdWJyYW5nZSB3aXRoaW4gdGhlIGFib3ZlIAorICogcmFuZ2UgdGhhdCBpcyBtZWFuaW5nZnVsIHRvIGl0cyBhcHBsaWNhdGlvbnMuPC9wPgorICogPHA+TW9zdCBpbXBsZW1lbnRhdGlvbnMgd2lsbCBiZSBjcmVhdGVkIGJ5IGZhY3RvcnkgbWV0aG9kcywgc3VjaCBhcyB0aGUKKyAqIGNoYXJhY3RlciBuYW1lIGl0ZXJhdG9yIGluIFVDaGFyYWN0ZXIuZ2V0TmFtZUl0ZXJhdG9yLiBTZWUgZXhhbXBsZSBiZWxvdy4KKyAqIDwvcD4KKyAqIEV4YW1wbGUgb2YgdXNlOjxicj4KKyAqIDxwcmU+CisgKiBWYWx1ZUl0ZXJhdG9yIGl0ZXJhdG9yID0gVUNoYXJhY3Rlci5nZXROYW1lSXRlcmF0b3IoKTsKKyAqIFZhbHVlSXRlcmF0b3IuRWxlbWVudCByZXN1bHQgPSBuZXcgVmFsdWVJdGVyYXRvci5FbGVtZW50KCk7CisgKiBpdGVyYXRvci5zZXRSYW5nZShVQ2hhcmFjdGVyLk1JTl9WQUxVRSwgVUNoYXJhY3Rlci5NQVhfVkFMVUUpOworICogd2hpbGUgKGl0ZXJhdG9yLm5leHQocmVzdWx0KSkgeworICogICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29kZXBvaW50IFxcdSIgKyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci50b0hleFN0cmluZyhyZXN1bHQuaW50ZWdlcikgKyAKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIiBoYXMgdGhlIGNoYXJhY3RlciBuYW1lICIgKyAoU3RyaW5nKXJlc3VsdC52YWx1ZSk7CisgKiB9CisgKiA8L3ByZT4KKyAqIEBhdXRob3Igc3lud2VlCisgKiBAc3RhYmxlIElDVSAyLjYKKyAqLworcHVibGljIGludGVyZmFjZSBWYWx1ZUl0ZXJhdG9yCit7CisgICAgLy8gcHVibGljIGlubmVyIGNsYXNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIC8qKgorICAgICogPHA+VGhlIHJldHVybiByZXN1bHQgY29udGFpbmVyIG9mIGVhY2ggaXRlcmF0aW9uLiBTdG9yZXMgdGhlIG5leHQgCisgICAgKiBpbnRlZ2VyIGluZGV4IGFuZCBpdHMgYXNzb2NpYXRlZCB2YWx1ZSBPYmplY3QuPC9wPiAKKyAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBFbGVtZW50CisgICAgeworICAgICAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAqIEludGVnZXIgaW5kZXggb2YgdGhlIGN1cnJlbnQgaXRlcmF0aW9uCisgICAgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgaW50ZWdlcjsKKyAgICAgICAgLyoqCisgICAgICAgICogR2V0cyB0aGUgT2JqZWN0IHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgaW50ZWdlciBpbmRleC4KKyAgICAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgICAgKi8gCisgICAgICAgIHB1YmxpYyBPYmplY3QgdmFsdWU7CisgICAgICAgIAorICAgICAgICAvLyBwdWJsaWMgY29uc3RydWN0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIAorICAgICAgICAvKioKKyAgICAgICAgICogRW1wdHkgZGVmYXVsdCBjb25zdHJ1Y3RvciB0byBtYWtlIGphdmFkb2MgaGFwcHkKKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgRWxlbWVudCgpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgLyoqCisgICAgKiA8cD5HZXRzIHRoZSBuZXh0IHJlc3VsdCBmb3IgdGhpcyBpdGVyYXRpb24gYW5kIHJldHVybnMgCisgICAgKiB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSBvdGhlcndpc2UuPC9wPgorICAgICogPHA+SWYgdGhlIHJldHVybiBib29sZWFuIGlzIGEgZmFsc2UsIHRoZSBjb250ZW50cyBvZiBlbGVtZW50cyB3aWxsIG5vdAorICAgICogYmUgdXBkYXRlZC48L3A+CisgICAgKiBAcGFyYW0gZWxlbWVudCBmb3Igc3RvcmluZyB0aGUgcmVzdWx0IGluZGV4IGFuZCB2YWx1ZQorICAgICogQHJldHVybiB0cnVlIGlmIHdlIGFyZSBub3QgYXQgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLCBmYWxzZSBvdGhlcndpc2UuCisgICAgKiBAc2VlIEVsZW1lbnQKKyAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbmV4dChFbGVtZW50IGVsZW1lbnQpOworICAgIAorICAgIC8qKgorICAgICogPHA+UmVzZXRzIHRoZSBpdGVyYXRvciB0byBzdGFydCBpdGVyYXRpbmcgZnJvbSB0aGUgaW50ZWdlciBpbmRleCAKKyAgICAqIEludGVnZXIuTUlOX1ZBTFVFIG9yIFggaWYgYSBzZXRSYW5nZShYLCBZKSBoYXMgYmVlbiBjYWxsZWQgcHJldmlvdXNseS4KKyAgICAqIDwvcD4KKyAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiA8cD5SZXN0cmljdHMgdGhlIHJhbmdlIG9mIGludGVnZXJzIHRvIGl0ZXJhdGUgYW5kIHJlc2V0cyB0aGUgaXRlcmF0aW9uIAorICAgICAqIHRvIGJlZ2luIGF0IHRoZSBpbmRleCBhcmd1bWVudCBzdGFydC48L3A+CisgICAgICogPHA+SWYgc2V0UmFuZ2Uoc3RhcnQsIGVuZCkgaXMgbm90IHBlcmZvcm1lZCBiZWZvcmUgbmV4dChlbGVtZW50KSBpcyAKKyAgICAgKiBjYWxsZWQsIHRoZSBpdGVyYXRpb24gd2lsbCBzdGFydCBmcm9tIHRoZSBpbnRlZ2VyIGluZGV4IAorICAgICAqIEludGVnZXIuTUlOX1ZBTFVFIGFuZCBlbmQgYXQgSW50ZWdlci5NQVhfVkFMVUUuPC9wPgorICAgICAqIDxwPgorICAgICAqIElmIHRoaXMgcmFuZ2UgaXMgc2V0IG91dHNpZGUgdGhlIG1lYW5pbmdmdWwgcmFuZ2Ugc3BlY2lmaWVkIGJ5IHRoZSAKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiwgbmV4dChlbGVtZW50KSB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UuCisgICAgICogPC9wPgorICAgICAqIEBwYXJhbSBzdGFydCBmaXJzdCBpbnRlZ2VyIGluIHRoZSByYW5nZSB0byBpdGVyYXRlCisgICAgICogQHBhcmFtIGxpbWl0IG9uZSBtb3JlIHRoYW4gdGhlIGxhc3QgaW50ZWdlciBpbiB0aGUgcmFuZ2UgCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gdGhyb3duIHdoZW4gYXR0ZW1wdGluZyB0byBzZXQgYW4gCisgICAgICogICAgICAgICAgICBpbGxlZ2FsIHJhbmdlLiBFLmcgbGltaXQgPD0gc3RhcnQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSYW5nZShpbnQgc3RhcnQsIGludCBsaW1pdCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9WZXJzaW9uSW5mby5qYXZhIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVmVyc2lvbkluZm8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjc5ZTNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vaWN1L3V0aWwvVmVyc2lvbkluZm8uamF2YQpAQCAtMCwwICsxLDQ3MiBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDE5OTYtMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworcGFja2FnZSBjb20uaWJtLmljdS51dGlsOworCitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CisKKy8qKgorICogQ2xhc3MgdG8gc3RvcmUgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBmb3JtIG1ham9yLm1pbm9yLm1pbGxpLm1pY3JvLgorICogQGF1dGhvciBzeW53ZWUKKyAqIEBzdGFibGUgSUNVIDIuNgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVmVyc2lvbkluZm8KK3sKKyAgICAvLyBwdWJsaWMgZGF0YSBtZW1iZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMS4wIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfMV8wOworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMS4wLjEgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8xXzBfMTsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDEuMS4wIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfMV8xXzA7CisgICAgLyoqCisgICAgICogVW5pY29kZSAxLjEuNSB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzFfMV81OworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMi4wIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfMl8wOworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMi4xLjIgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8yXzFfMjsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDIuMS41IHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfMl8xXzU7CisgICAgLyoqCisgICAgICogVW5pY29kZSAyLjEuOCB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzJfMV84OworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMi4xLjkgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8yXzFfOTsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDMuMCB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzNfMDsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDMuMC4xIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfM18wXzE7CisgICAgLyoqCisgICAgICogVW5pY29kZSAzLjEuMCB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzNfMV8wOworICAgIC8qKgorICAgICAqIFVuaWNvZGUgMy4xLjEgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVU5JQ09ERV8zXzFfMTsKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDMuMiB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVTklDT0RFXzNfMjsKKworICAgIC8qKgorICAgICAqIFVuaWNvZGUgNC4wIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfNF8wOworCisgICAgLyoqCisgICAgICogVW5pY29kZSA0LjAuMSB2ZXJzaW9uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfNF8wXzE7CisKKyAgICAvKioKKyAgICAgKiBVbmljb2RlIDQuMSB2ZXJzaW9uCisgICAgICogQGRyYWZ0IElDVSAzLjQKKyAgICAgKiBAcHJvdmlzaW9uYWwgVGhpcyBBUEkgbWlnaHQgY2hhbmdlIG9yIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVOSUNPREVfNF8xOworCisgICAgLyoqCisgICAgICogSUNVNEogY3VycmVudCByZWxlYXNlIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIElDVV9WRVJTSU9OOworCisgICAgLyoqCisgICAgICogRGF0YSB2ZXJzaW9uIHN0cmluZyBmb3IgSUNVJ3MgaW50ZXJuYWwgZGF0YQorICAgICAqIEBpbnRlcm5hbAorICAgICAqIEBkcmFmdCBJQ1UgMy4wCisgICAgICogQHByb3Zpc2lvbmFsIFRoaXMgQVBJIG1pZ2h0IGNoYW5nZSBvciBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSUNVX0RBVEFfVkVSU0lPTiA9ICIzNGIiOworCisgICAgLyoqCisgICAgICogSUNVNEogY29sbGF0b3IgcnVudGltZSB2ZXJzaW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBWZXJzaW9uSW5mbyBVQ09MX1JVTlRJTUVfVkVSU0lPTjsKKworICAgIC8qKgorICAgICAqIElDVTRKIGNvbGxhdG9yIGJ1aWxkZXIgdmVyc2lvbgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgVmVyc2lvbkluZm8gVUNPTF9CVUlMREVSX1ZFUlNJT047CisKKyAgICAvKioKKyAgICAgKiBJQ1U0SiBjb2xsYXRvciB0YWlsb3JpbmdzIHZlcnNpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFZlcnNpb25JbmZvIFVDT0xfVEFJTE9SSU5HU19WRVJTSU9OOworCisKKyAgICAvLyBwdWJsaWMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgVmVyc2lvbkluZm8gd2l0aCB0aGUgYXJndW1lbnQgdmVyc2lvbi4KKyAgICAgKiBAcGFyYW0gdmVyc2lvbiB2ZXJzaW9uIFN0cmluZyBpbiB0aGUgZm9ybWF0IG9mICJtYWpvci5taW5vci5taWxsaS5taWNybyIKKyAgICAgKiAgICAgICAgICAgICAgICBvciAibWFqb3IubWlub3IubWlsbGkiIG9yICJtYWpvci5taW5vciIgb3IgIm1ham9yIiwKKyAgICAgKiAgICAgICAgICAgICAgICB3aGVyZSBtYWpvciwgbWlub3IsIG1pbGxpLCBtaWNybyBhcmUgbm9uLW5lZ2F0aXZlIG51bWJlcnMKKyAgICAgKiAgICAgICAgICAgICAgICA8PSAyNTUuIElmIHRoZSB0cmFpbGluZyB2ZXJzaW9uIG51bWJlcnMgYXJlCisgICAgICogICAgICAgICAgICAgICAgbm90IHNwZWNpZmllZCB0aGV5IGFyZSB0YWtlbiBhcyAwcy4gRS5nLiBWZXJzaW9uICIzLjEiIGlzCisgICAgICogICAgICAgICAgICAgICAgZXF1aXZhbGVudCB0byAiMy4xLjAuMCIuCisgICAgICogQHJldHVybiBhbiBpbnN0YW5jZSBvZiBWZXJzaW9uSW5mbyB3aXRoIHRoZSBhcmd1bWVudCB2ZXJzaW9uLgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aGVuIHRoZSBhcmd1bWVudCB2ZXJzaW9uCisgICAgICogICAgICAgICAgICAgICAgaXMgbm90IGluIHRoZSByaWdodCBmb3JtYXQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZlcnNpb25JbmZvIGdldEluc3RhbmNlKFN0cmluZyB2ZXJzaW9uKQorICAgIHsKKyAgICAgICAgaW50IGxlbmd0aCAgPSB2ZXJzaW9uLmxlbmd0aCgpOworICAgICAgICBpbnQgYXJyYXlbXSA9IHswLCAwLCAwLCAwfTsKKyAgICAgICAgaW50IGNvdW50ICAgPSAwOworICAgICAgICBpbnQgaW5kZXggICA9IDA7CisKKyAgICAgICAgd2hpbGUgKGNvdW50IDwgNCAmJiBpbmRleCA8IGxlbmd0aCkgeworICAgICAgICAgICAgY2hhciBjID0gdmVyc2lvbi5jaGFyQXQoaW5kZXgpOworICAgICAgICAgICAgaWYgKGMgPT0gJy4nKSB7CisgICAgICAgICAgICAgICAgY291bnQgKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjIC09ICcwJzsKKyAgICAgICAgICAgICAgICBpZiAoYyA8IDAgfHwgYyA+IDkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihJTlZBTElEX1ZFUlNJT05fTlVNQkVSXyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFycmF5W2NvdW50XSAqPSAxMDsKKyAgICAgICAgICAgICAgICBhcnJheVtjb3VudF0gKz0gYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluZGV4ICsrOworICAgICAgICB9CisgICAgICAgIGlmIChpbmRleCAhPSBsZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIHZlcnNpb24gbnVtYmVyOiBTdHJpbmcgJyIgKyB2ZXJzaW9uICsgIicgZXhjZWVkcyB2ZXJzaW9uIGZvcm1hdCIpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSArKykgeworICAgICAgICAgICAgaWYgKGFycmF5W2ldIDwgMCB8fCBhcnJheVtpXSA+IDI1NSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oSU5WQUxJRF9WRVJTSU9OX05VTUJFUl8pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKGFycmF5WzBdLCBhcnJheVsxXSwgYXJyYXlbMl0sIGFycmF5WzNdKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIFZlcnNpb25JbmZvIHdpdGggdGhlIGFyZ3VtZW50IHZlcnNpb24uCisgICAgICogQHBhcmFtIG1ham9yIG1ham9yIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBwYXJhbSBtaW5vciBtaW5vciB2ZXJzaW9uLCBub24tbmVnYXRpdmUgbnVtYmVyIDw9IDI1NS4KKyAgICAgKiBAcGFyYW0gbWlsbGkgbWlsbGkgdmVyc2lvbiwgbm9uLW5lZ2F0aXZlIG51bWJlciA8PSAyNTUuCisgICAgICogQHBhcmFtIG1pY3JvIG1pY3JvIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aGVuIGVpdGhlciBhcmd1bWVudHMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmUgb3IgPiAyNTUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZlcnNpb25JbmZvIGdldEluc3RhbmNlKGludCBtYWpvciwgaW50IG1pbm9yLCBpbnQgbWlsbGksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWljcm8pCisgICAgeworICAgICAgICAvLyBjaGVja3MgaWYgaXQgaXMgaW4gdGhlIGhhc2htYXAKKyAgICAgICAgLy8gZWxzZQorICAgICAgICBpZiAobWFqb3IgPCAwIHx8IG1ham9yID4gMjU1IHx8IG1pbm9yIDwgMCB8fCBtaW5vciA+IDI1NSB8fAorICAgICAgICAgICAgbWlsbGkgPCAwIHx8IG1pbGxpID4gMjU1IHx8IG1pY3JvIDwgMCB8fCBtaWNybyA+IDI1NSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbihJTlZBTElEX1ZFUlNJT05fTlVNQkVSXyk7CisgICAgICAgIH0KKyAgICAgICAgaW50ICAgICB2ZXJzaW9uID0gZ2V0SW50KG1ham9yLCBtaW5vciwgbWlsbGksIG1pY3JvKTsKKyAgICAgICAgSW50ZWdlciBrZXkgICAgID0gbmV3IEludGVnZXIodmVyc2lvbik7CisgICAgICAgIE9iamVjdCAgcmVzdWx0ICA9IE1BUF8uZ2V0KGtleSk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFZlcnNpb25JbmZvKHZlcnNpb24pOworICAgICAgICAgICAgTUFQXy5wdXQoa2V5LCByZXN1bHQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoVmVyc2lvbkluZm8pcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgVmVyc2lvbkluZm8gd2l0aCB0aGUgYXJndW1lbnQgdmVyc2lvbi4KKyAgICAgKiBFcXVpdmFsZW50IHRvIGdldEluc3RhbmNlKG1ham9yLCBtaW5vciwgbWlsbGksIDApLgorICAgICAqIEBwYXJhbSBtYWpvciBtYWpvciB2ZXJzaW9uLCBub24tbmVnYXRpdmUgbnVtYmVyIDw9IDI1NS4KKyAgICAgKiBAcGFyYW0gbWlub3IgbWlub3IgdmVyc2lvbiwgbm9uLW5lZ2F0aXZlIG51bWJlciA8PSAyNTUuCisgICAgICogQHBhcmFtIG1pbGxpIG1pbGxpIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aGVuIGVpdGhlciBhcmd1bWVudHMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmUgb3IgPiAyNTUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZlcnNpb25JbmZvIGdldEluc3RhbmNlKGludCBtYWpvciwgaW50IG1pbm9yLCBpbnQgbWlsbGkpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UobWFqb3IsIG1pbm9yLCBtaWxsaSwgMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBWZXJzaW9uSW5mbyB3aXRoIHRoZSBhcmd1bWVudCB2ZXJzaW9uLgorICAgICAqIEVxdWl2YWxlbnQgdG8gZ2V0SW5zdGFuY2UobWFqb3IsIG1pbm9yLCAwLCAwKS4KKyAgICAgKiBAcGFyYW0gbWFqb3IgbWFqb3IgdmVyc2lvbiwgbm9uLW5lZ2F0aXZlIG51bWJlciA8PSAyNTUuCisgICAgICogQHBhcmFtIG1pbm9yIG1pbm9yIHZlcnNpb24sIG5vbi1uZWdhdGl2ZSBudW1iZXIgPD0gMjU1LgorICAgICAqIEBleGNlcHRpb24gdGhyb3dzIGFuIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aGVuIGVpdGhlciBhcmd1bWVudHMgYXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmUgb3IgPiAyNTUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFZlcnNpb25JbmZvIGdldEluc3RhbmNlKGludCBtYWpvciwgaW50IG1pbm9yKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldEluc3RhbmNlKG1ham9yLCBtaW5vciwgMCwgMCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBWZXJzaW9uSW5mbyB3aXRoIHRoZSBhcmd1bWVudCB2ZXJzaW9uLgorICAgICAqIEVxdWl2YWxlbnQgdG8gZ2V0SW5zdGFuY2UobWFqb3IsIDAsIDAsIDApLgorICAgICAqIEBwYXJhbSBtYWpvciBtYWpvciB2ZXJzaW9uLCBub24tbmVnYXRpdmUgbnVtYmVyIDw9IDI1NS4KKyAgICAgKiBAZXhjZXB0aW9uIHRocm93cyBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gd2hlbiBlaXRoZXIgYXJndW1lbnRzIGFyZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZ2F0aXZlIG9yID4gMjU1CisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBWZXJzaW9uSW5mbyBnZXRJbnN0YW5jZShpbnQgbWFqb3IpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0SW5zdGFuY2UobWFqb3IsIDAsIDAsIDApOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIFZlcnNpb25JbmZvIGphdmFWZXJzaW9uOworCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyBBUEkgaXMgSUNVIGludGVybmFsIG9ubHkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBWZXJzaW9uSW5mbyBqYXZhVmVyc2lvbigpIHsKKyAgICAgICAgaWYgKGphdmFWZXJzaW9uID09IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZyBzID0gU3lzdGVtLmdldFByb3BlcnR5KCJqYXZhLnZlcnNpb24iKTsKKyAgICAgICAgICAgIC8vIGNsZWFuIHN0cmluZworICAgICAgICAgICAgLy8gcHJlc2VydmUgb25seSBkaWdpdHMsIHNlcGFyYXRlZCBieSBzaW5nbGUgJy4nCisgICAgICAgICAgICAvLyBpZ25vcmUgb3ZlciA0IGRpZ2l0IHNlcXVlbmNlcworICAgICAgICAgICAgLy8gZG9lcyBub3QgdGVzdCA8IDI1NSwgdmVyeSBvZGQuLi4KKworICAgICAgICAgICAgY2hhcltdIGNoYXJzID0gcy50b0NoYXJBcnJheSgpOworICAgICAgICAgICAgaW50IHIgPSAwLCB3ID0gMCwgY291bnQgPSAwOworICAgICAgICAgICAgYm9vbGVhbiBudW1lcmljID0gZmFsc2U7IC8vIGlnbm9yZSBsZWFkaW5nIG5vbi1udW1lcmljcworICAgICAgICAgICAgd2hpbGUgKHIgPCBjaGFycy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBjaGFyIGMgPSBjaGFyc1tyKytdOworICAgICAgICAgICAgICAgIGlmIChjIDwgJzAnIHx8IGMgPiAnOScpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG51bWVyaWMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSAzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25seSBmb3VyIGRpZ2l0IHN0cmluZ3MgYWxsb3dlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgbnVtZXJpYyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnNbdysrXSA9ICcuJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrY291bnQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBudW1lcmljID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgY2hhcnNbdysrXSA9IGM7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUgKHcgPiAwICYmIGNoYXJzW3ctMV0gPT0gJy4nKSB7CisgICAgICAgICAgICAgICAgLS13OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdHJpbmcgdnMgPSBuZXcgU3RyaW5nKGNoYXJzLCAwLCB3KTsKKworICAgICAgICAgICAgamF2YVZlcnNpb24gPSBWZXJzaW9uSW5mby5nZXRJbnN0YW5jZSh2cyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGphdmFWZXJzaW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFN0cmluZyByZXByZXNlbnRhdGl2ZSBvZiBWZXJzaW9uSW5mbyBpbiB0aGUgZm9ybWF0IG9mCisgICAgICogIm1ham9yLm1pbm9yLm1pbGxpLm1pY3JvIgorICAgICAqIEByZXR1cm4gU3RyaW5nIHJlcHJlc2VudGF0aXZlIG9mIFZlcnNpb25JbmZvCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpCisgICAgeworICAgICAgICBTdHJpbmdCdWZmZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1ZmZlcig3KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChnZXRNYWpvcigpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnLicpOworICAgICAgICByZXN1bHQuYXBwZW5kKGdldE1pbm9yKCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKCcuJyk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoZ2V0TWlsbGkoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoJy4nKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChnZXRNaWNybygpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1ham9yIHZlcnNpb24gbnVtYmVyCisgICAgICogQHJldHVybiB0aGUgbWFqb3IgdmVyc2lvbiBudW1iZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1ham9yKCkKKyAgICB7CisgICAgICAgIHJldHVybiAobV92ZXJzaW9uXyA+PiAyNCkgJiBMQVNUX0JZVEVfTUFTS18gOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1pbm9yIHZlcnNpb24gbnVtYmVyCisgICAgICogQHJldHVybiB0aGUgbWlub3IgdmVyc2lvbiBudW1iZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1pbm9yKCkKKyAgICB7CisgICAgICAgIHJldHVybiAobV92ZXJzaW9uXyA+PiAxNikgJiBMQVNUX0JZVEVfTUFTS18gOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG1pbGxpIHZlcnNpb24gbnVtYmVyCisgICAgICogQHJldHVybiB0aGUgbWlsbGkgdmVyc2lvbiBudW1iZXIKKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldE1pbGxpKCkKKyAgICB7CisgICAgICAgIHJldHVybiAobV92ZXJzaW9uXyA+PiA4KSAmIExBU1RfQllURV9NQVNLXyA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWljcm8gdmVyc2lvbiBudW1iZXIKKyAgICAgKiBAcmV0dXJuIHRoZSBtaWNybyB2ZXJzaW9uIG51bWJlcgorICAgICAqIEBzdGFibGUgSUNVIDIuNgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TWljcm8oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdmVyc2lvbl8gJiBMQVNUX0JZVEVfTUFTS18gOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0aGlzIHZlcnNpb24gaW5mb3JtYXRpb24gaXMgZXF1YWxzIHRvIHRoZSBhcmd1bWVudCB2ZXJzaW9uCisgICAgICogQHBhcmFtIG90aGVyIG9iamVjdCB0byBiZSBjb21wYXJlZAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBvdGhlciBpcyBlcXVhbHMgdG8gdGhpcyBvYmplY3QncyB2ZXJzaW9uIGluZm9ybWF0aW9uLAorICAgICAqICAgICAgICAgZmFsc2Ugb3RoZXJ3aXNlCisgICAgICogQHN0YWJsZSBJQ1UgMi42CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvdGhlcikKKyAgICB7CisgICAgICAgIHJldHVybiBvdGhlciA9PSB0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmVzIG90aGVyIHdpdGggdGhpcyBWZXJzaW9uSW5mby4KKyAgICAgKiBAcGFyYW0gb3RoZXIgVmVyc2lvbkluZm8gdG8gYmUgY29tcGFyZWQKKyAgICAgKiBAcmV0dXJuIDAgaWYgdGhlIGFyZ3VtZW50IGlzIGEgVmVyc2lvbkluZm8gb2JqZWN0IHRoYXQgaGFzIHZlcnNpb24KKyAgICAgKiAgICAgICAgICAgaW5mb3JtYXRpb24gZXF1YWxzIHRvIHRoaXMgb2JqZWN0LgorICAgICAqICAgICAgICAgICBMZXNzIHRoYW4gMCBpZiB0aGUgYXJndW1lbnQgaXMgYSBWZXJzaW9uSW5mbyBvYmplY3QgdGhhdCBoYXMKKyAgICAgKiAgICAgICAgICAgdmVyc2lvbiBpbmZvcm1hdGlvbiBncmVhdGVyIHRoYW4gdGhpcyBvYmplY3QuCisgICAgICogICAgICAgICAgIEdyZWF0ZXIgdGhhbiAwIGlmIHRoZSBhcmd1bWVudCBpcyBhIFZlcnNpb25JbmZvIG9iamVjdCB0aGF0CisgICAgICogICAgICAgICAgIGhhcyB2ZXJzaW9uIGluZm9ybWF0aW9uIGxlc3MgdGhhbiB0aGlzIG9iamVjdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjYKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGNvbXBhcmVUbyhWZXJzaW9uSW5mbyBvdGhlcikKKyAgICB7CisgICAgICAgIHJldHVybiBtX3ZlcnNpb25fIC0gb3RoZXIubV92ZXJzaW9uXzsKKyAgICB9CisKKyAgICAvLyBwcml2YXRlIGRhdGEgbWVtYmVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvKioKKyAgICAgKiBWZXJzaW9uIG51bWJlciBzdG9yZWQgYXMgYSBieXRlIGZvciBlYWNoIG9mIHRoZSBtYWpvciwgbWlub3IsIG1pbGxpIGFuZAorICAgICAqIG1pY3JvIG51bWJlcnMgaW4gdGhlIDMyIGJpdCBpbnQuCisgICAgICogTW9zdCBzaWduaWZpY2FudCBmb3IgdGhlIG1ham9yIGFuZCB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgY29udGFpbnMgdGhlCisgICAgICogbWljcm8gbnVtYmVycy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBtX3ZlcnNpb25fOworICAgIC8qKgorICAgICAqIE1hcCBvZiBzaW5nbGV0b25zCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSGFzaE1hcCBNQVBfID0gbmV3IEhhc2hNYXAoKTsKKyAgICAvKioKKyAgICAgKiBMYXN0IGJ5dGUgbWFzaworICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMQVNUX0JZVEVfTUFTS18gPSAweEZGOworICAgIC8qKgorICAgICAqIEVycm9yIHN0YXRlbWVudCBzdHJpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSU5WQUxJRF9WRVJTSU9OX05VTUJFUl8gPQorICAgICAgICAiSW52YWxpZCB2ZXJzaW9uIG51bWJlcjogVmVyc2lvbiBudW1iZXIgbWF5IGJlIG5lZ2F0aXZlIG9yIGdyZWF0ZXIgdGhhbiAyNTUiOworCisgICAgLy8gc3RhdGljIGRlY2xhcmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSB2ZXJzaW9ucyBvbmx5IGFmdGVyIE1BUF8gaGFzIGJlZW4gY3JlYXRlZAorICAgICAqLworICAgIHN0YXRpYyB7CisgICAgICAgIFVOSUNPREVfMV8wICAgPSBnZXRJbnN0YW5jZSgxLCAwLCAwLCAwKTsKKyAgICAgICAgVU5JQ09ERV8xXzBfMSA9IGdldEluc3RhbmNlKDEsIDAsIDEsIDApOworICAgICAgICBVTklDT0RFXzFfMV8wID0gZ2V0SW5zdGFuY2UoMSwgMSwgMCwgMCk7CisgICAgICAgIFVOSUNPREVfMV8xXzUgPSBnZXRJbnN0YW5jZSgxLCAxLCA1LCAwKTsKKyAgICAgICAgVU5JQ09ERV8yXzAgICA9IGdldEluc3RhbmNlKDIsIDAsIDAsIDApOworICAgICAgICBVTklDT0RFXzJfMV8yID0gZ2V0SW5zdGFuY2UoMiwgMSwgMiwgMCk7CisgICAgICAgIFVOSUNPREVfMl8xXzUgPSBnZXRJbnN0YW5jZSgyLCAxLCA1LCAwKTsKKyAgICAgICAgVU5JQ09ERV8yXzFfOCA9IGdldEluc3RhbmNlKDIsIDEsIDgsIDApOworICAgICAgICBVTklDT0RFXzJfMV85ID0gZ2V0SW5zdGFuY2UoMiwgMSwgOSwgMCk7CisgICAgICAgIFVOSUNPREVfM18wICAgPSBnZXRJbnN0YW5jZSgzLCAwLCAwLCAwKTsKKyAgICAgICAgVU5JQ09ERV8zXzBfMSA9IGdldEluc3RhbmNlKDMsIDAsIDEsIDApOworICAgICAgICBVTklDT0RFXzNfMV8wID0gZ2V0SW5zdGFuY2UoMywgMSwgMCwgMCk7CisgICAgICAgIFVOSUNPREVfM18xXzEgPSBnZXRJbnN0YW5jZSgzLCAxLCAxLCAwKTsKKyAgICAgICAgVU5JQ09ERV8zXzIgICA9IGdldEluc3RhbmNlKDMsIDIsIDAsIDApOworICAgICAgICBVTklDT0RFXzRfMCAgID0gZ2V0SW5zdGFuY2UoNCwgMCwgMCwgMCk7CisgICAgICAgIFVOSUNPREVfNF8wXzEgPSBnZXRJbnN0YW5jZSg0LCAwLCAxLCAwKTsKKyAgICAgICAgVU5JQ09ERV80XzEgICA9IGdldEluc3RhbmNlKDQsIDEsIDAsIDApOworICAgICAgICBJQ1VfVkVSU0lPTiAgID0gZ2V0SW5zdGFuY2UoMywgNCwgNSwgMCk7CisgICAgICAgIFVDT0xfUlVOVElNRV9WRVJTSU9OID0gZ2V0SW5zdGFuY2UoNik7CisgICAgICAgIFVDT0xfQlVJTERFUl9WRVJTSU9OID0gZ2V0SW5zdGFuY2UoNyk7CisgICAgICAgIFVDT0xfVEFJTE9SSU5HU19WRVJTSU9OID0gZ2V0SW5zdGFuY2UoMSk7CisgICAgfQorCisgICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3Igd2l0aCBpbnQKKyAgICAgKiBAcGFyYW0gY29tcGFjdHZlcnNpb24gYSAzMiBiaXQgaW50IHdpdGggZWFjaCBieXRlIHJlcHJlc2VudGluZyBhIG51bWJlcgorICAgICAqLworICAgIHByaXZhdGUgVmVyc2lvbkluZm8oaW50IGNvbXBhY3R2ZXJzaW9uKQorICAgIHsKKyAgICAgICAgbV92ZXJzaW9uXyA9IGNvbXBhY3R2ZXJzaW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGludCBmcm9tIHRoZSB2ZXJzaW9uIG51bWJlcnMKKyAgICAgKiBAcGFyYW0gbWFqb3Igbm9uLW5lZ2F0aXZlIHZlcnNpb24gbnVtYmVyCisgICAgICogQHBhcmFtIG1pbm9yIG5vbi1uZWdhdGl2ZXZlcnNpb24gbnVtYmVyCisgICAgICogQHBhcmFtIG1pbGxpIG5vbi1uZWdhdGl2ZXZlcnNpb24gbnVtYmVyCisgICAgICogQHBhcmFtIG1pY3JvIG5vbi1uZWdhdGl2ZXZlcnNpb24gbnVtYmVyCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGdldEludChpbnQgbWFqb3IsIGludCBtaW5vciwgaW50IG1pbGxpLCBpbnQgbWljcm8pCisgICAgeworICAgICAgICByZXR1cm4gKG1ham9yIDw8IDI0KSB8IChtaW5vciA8PCAxNikgfCAobWlsbGkgPDwgOCkgfCBtaWNybzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9pY3UvdXRpbC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9pY3UvdXRpbC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmRjMDZjNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL2ljdS91dGlsL3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPCEtLSAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kCisgIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworLS0+Cis8L2hlYWQ+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitJbnRlcm5hdGlvbmFsIGNhbGVuZGFycyBhbmQgb3RoZXIgdXRpbGl0eSBjbGFzc2VzLgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL0F3dE1lbnVCdWlsZGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9Bd3RNZW51QnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdlNjQ5ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9Bd3RNZW51QnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsMjM2IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpOworCitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuTWVudTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51QmFyOworaW1wb3J0IGphdmEuYXd0LldpbmRvdzsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC4qOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLkRpYWxvZ0l0ZW0uRGlhbG9nRmFjdG9yeTsKKworLy8gVE8gRE86ICBEb24ndCBoYXJkLWNvZGUgbWVudSBjb25maWd1cmF0aW9ucy4gIEluc3RlYWQsIHNwZWNpZnkgdGhlbSB3aXRoCisvLyBzdHJpbmdzIHNvbWVob3cuICBUaGlzIGlzIGFuIGltcHJvdmVtZW50IG92ZXIgd2hhdCB3ZSBoYWQsIGFuZCBpdCdsbCBkbworLy8gZm9yIG5vdy4KKworLyoqCisgKiBBd3RNZW51QnVpbGRlciBjcmVhdGVzIGEgc2V0IG9mIEFXVCBtZW51cyBmb3IgaW50ZXJhY3RpbmcKKyAqIHdpdGggYW4gTVRleHRQYW5lbC4gIEZ1dHVyZSB2ZXJzaW9ucyBvZiB0aGlzIGNsYXNzIG1heSBhbGxvdworICogY2xpZW50cyB0byBjb250cm9sIHRoZSBtZW51IGNvbnRlbnRzLgorICogQHNlZSBNVGV4dFBhbmVsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBBd3RNZW51QnVpbGRlciBleHRlbmRzIE1lbnVCdWlsZGVyIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEF3dE1lbnVCdWlsZGVyIElOU1RBTkNFID0gbmV3IEF3dE1lbnVCdWlsZGVyKCk7CisgICAgCisgICAgLyoqCisgICAgICogSWQgZm9yIGFuIEVkaXQgbWVudS4gIFRoZSBFZGl0IG1lbnUgaGFzIHRoZSBmb2xsb3dpbmcgaXRlbXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj5VbmRvPC9iPiAtIGludm9rZSB1bmRvKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5SZWRvPC9iPiAtIGludm9rZSByZWRvKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5DdXQ8L2I+IC0gaW52b2tlIGN1dCgpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+Q29weTwvYj4gLSBpbnZva2UgY29weSgpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+UGFzdGU8L2I+IC0gaW52b2tlIHBhc3RlKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5DbGVhcjwvYj4gLSBpbnZva2UgY2xlYXIoKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPGxpPjxiPlNlbGVjdCBBbGw8L2I+IC0gaW52b2tlIHNlbGVjdEFsbCgpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVESVQgPSBNZW51QnVpbGRlci5FRElUOworICAgIC8qKgorICAgICAqIElkIGZvciB0aGUgcG9pbnQgc2l6ZXMgbWVudS4gIFRoZSBtZW51IGhhcyBpdGVtcyB0aGF0IHNldCB0aGUgc2l6ZSBvZiBhIGNoYXJhY3RlcgorICAgICAqIGluIGEgdHlwZWZhY2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0laRSA9IE1lbnVCdWlsZGVyLlNJWkU7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgU3R5bGUgbWVudS4gIFRoZSBTdHlsZSBtZW51IGhhcyB0aGUgZm9sbG93aW5nIGl0ZW1zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+UGxhaW48L2I+IC0gcmVtb3ZlIDxjb2RlPldFSUdIVDwvY29kZT4sCisgICAgICogICAgICAgICAgICAgICAgICAgIDxjb2RlPlBPU1RVUkU8L2NvZGU+LAorICAgICAqICAgICAgICAgICAgICAgICAgICA8Y29kZT5VTkRFUkxJTkU8L2NvZGU+IGFuZAorICAgICAqICAgICAgICAgICAgICAgICAgICA8Y29kZT5TVFJJS0VUSFJPVUdIPC9jb2RlPiBhdHRyaWJ1dGVzIGZyb20gdGhlCisgICAgICogY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5Cb2xkPC9iPiAtIGFkZCA8Y29kZT57V0VJR0hULFdFSUdIVF9CT0xEfTwvY29kZT4gdG8KKyAgICAgKiB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5JdGFsaWM8L2I+IC0gYWRkIDxjb2RlPntQT1NUVVJFLFBPU1RVUkVfSVRBTElDfTwvY29kZT4gdG8KKyAgICAgKiB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5VbmRlcmxpbmU8L2I+IC0gYWRkIDxjb2RlPntVTkRFUkxJTkUsVU5ERVJMSU5FX09OfTwvY29kZT4gdG8KKyAgICAgKiB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5TdHJpa2V0aHJvdWdoPC9iPiAtIGFkZCA8Y29kZT57U1RSSUtFVEhST1VHSCxTVFJJS0VUSFJPVUdIX09OfTwvY29kZT4KKyAgICAgKiB0byB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5Gb250Li4uPC9iPiAtIGRpc3BsYXkgYSBkaWFsb2cgYWxsb3dpbmcgdGhlIHVzZXIgdG8KKyAgICAgKiBzZWxlY3QgYSB0eXBlZmFjZSAoZm9udCBmYW1pbHkpIGZvciB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDxsaT48Yj5Gb3JlY29sb3IuLi48L2I+IC0gZGlzcGxheSBhIGRpYWxvZyBhbGxvd2luZyB0aGUgdXNlciB0bworICAgICAqIHNlbGVjdCBhIGZvcmVncm91bmQgY29sb3IgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPkJhY2tjb2xvci4uLjwvYj4gLSBkaXNwbGF5IGEgZGlhbG9nIGFsbG93aW5nIHRoZSB1c2VyIHRvCisgICAgICogc2VsZWN0IGEgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUWUxFID0gTWVudUJ1aWxkZXIuU1RZTEU7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgcGFyYWdyYXBoIGFsaWdubWVudCBtZW51LiAgVGhlIG1lbnUgaGFzIHRoZSBmb2xsb3dpbmcgaXRlbXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj5MZWFkaW5nPC9iPiAtIGdpdmUgc2VsZWN0ZWQgcGFyYWdyYXBoKHMpIExFQURJTkcgZmx1c2g8L2xpPgorICAgICAqIDxsaT48Yj5DZW50ZXI8L2I+IC0gZ2l2ZSBzZWxlY3RlZCBwYXJhZ3JhcGgocykgQ0VOVEVSIGZsdXNoPC9saT4KKyAgICAgKiA8bGk+PGI+VHJhaWxpbmc8L2I+IC0gZ2l2ZSBzZWxlY3RlZCBwYXJhZ3JhcGgocykgVFJBSUxJTkcgZmx1c2g8L2xpPgorICAgICAqIDxsaT48Yj5KdXN0aWZpZWQ8L2I+IC0gZ2l2ZSBzZWxlY3RlZCBwYXJhZ3JhcGgocykgZnVsbCBqdXN0aWZpY2F0aW9uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEZMVVNIID0gTWVudUJ1aWxkZXIuRkxVU0g7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgbWVudSB0aGF0IHNldHMgdGhlIEtleVJlbWFwCisgICAgICogb24gYW4gTVRleHRQYW5lbC4gIFRoZSBtZW51IGhhcyB0aGUgZm9sbG93aW5nIGl0ZW1zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+PGI+RGVmYXVsdDwvYj4gLSBzZXQgS2V5UmVtYXAgdG8gaWRlbnRpdHkgcmVtYXA8L2xpPgorICAgICAqIDxsaT48Yj5BcmFiaWM8L2I+IC0gc2V0IEtleVJlbWFwIHRvIEFyYWJpYyB0cmFuc2xpdGVyYXRpb248L2xpPgorICAgICAqIDxsaT48Yj5IZWJyZXc8L2I+IC0gc2V0IEtleVJlbWFwIHRvIEhlYnJldyB0cmFuc2xpdGVyYXRpb248L2xpPgorICAgICAqIDxsaT48Yj5Jc3JhZWwgTmlrdWQ8L2I+IC0gc2V0IEtleVJlbWFwIHRvIElzcmFlbCBOaWt1ZDwvbGk+CisgICAgICogPGxpPjxiPlRoYWkgS2V0bWFuZWU8L2I+IC0gc2V0IEtleVJlbWFwIHRvIFRoYWkgS2V0bWFuZWU8L2xpPgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0VZTUFQID0gTWVudUJ1aWxkZXIuS0VZTUFQOworICAgIC8qKgorICAgICAqIElkIGZvciBhIG1lbnUgdGhhdCBzZXRzCisgICAgICogdGhlIHByaW1hcnkgcnVuIGRpcmVjdGlvbiBmb3IgYSBwYXJhZ3JhcGguICBSdW4gZGlyZWN0aW9uIGNhbiBiZSBsZWZ0LXRvLXJpZ2h0LAorICAgICAqIHJpZ2h0LXRvLWxlZnQsIG9yIGNhbiB1c2UgdGhlIGRlZmF1bHQgcnVuIGRpcmVjdGlvbiBmcm9tIHRoZSBVbmljb2RlIGJpZGkgYWxnb3JpdGhtLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEJJREkgPSBNZW51QnVpbGRlci5CSURJOworICAgIC8qKgorICAgICAqIElkIGZvciBhIG1lbnUgd2l0aCBhbiA8Yj5BYm91dDwvYj4gaXRlbS4gIFdoZW4gc2VsZWN0ZWQsIAorICAgICAqIHRoZSBpdGVtIGRpc3BsYXlzIGEgRnJhbWUgY29udGFpbmluZyBzb21lCisgICAgICogc2VsZi1wcm9tb3Rpb25hbCB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEFCT1VUID0gTWVudUJ1aWxkZXIuQUJPVVQ7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIGluc3RhbmNlIG9mIEF3dE1lbnVCdWlsZGVyLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQXd0TWVudUJ1aWxkZXIgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gSU5TVEFOQ0U7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTWVudUJhciBmTWVudUJhcjsKKyAgICAKKyAgICBwcml2YXRlIEF3dE1lbnVCdWlsZGVyKCkgeworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgYSBzdGFuZGFyZCBzZXQgb2YgbWVudXMgdG8gdGhlIGdpdmVuIG1lbnUgYmFyLiAgVGhlIG1lbnVzIAorICAgICAqIHdpbGwgaW50ZXJhY3Qgd2l0aCB0aGUgZ2l2ZW4gTVRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbWVudUJhciB0aGUgTWVudUJhciB0byB3aGljaCBtZW51cyBhcmUgYWRkZWQKKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHdpdGggd2hpY2ggdGhlIG1lbnVzIGludGVyYWN0CisgICAgICogQHBhcmFtIGZyYW1lIGEgRnJhbWUgdG8gdXNlIGFzIHRoZSBwYXJlbnQgb2YgYW55IGRpYWxvZ3MgY3JlYXRlZCBieSBhIAorICAgICAqICAgYSBtZW51IGl0ZW0uICBJZiBudWxsLCBtZW51IGl0ZW1zIHdoaWNoIGNyZWF0ZSBkaWFsb2dzIHdpbGwgYmUgb21pdHRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjcmVhdGVNZW51cyhNZW51QmFyIG1lbnVCYXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lIGZyYW1lKSB7CisgICAgICAgIAorICAgICAgICBjcmVhdGVNZW51cyhtZW51QmFyLCB0ZXh0UGFuZWwsIGZyYW1lLCBkZWZhdWx0TWVudXMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgYSBzZXQgb2YgbWVudXMgdG8gdGhlIGdpdmVuIG1lbnUgYmFyLiAgVGhlIG1lbnVzIAorICAgICAqIHdpbGwgaW50ZXJhY3Qgd2l0aCB0aGUgZ2l2ZW4gTVRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbWVudUJhciB0aGUgTWVudUJhciB0byB3aGljaCBtZW51cyBhcmUgYWRkZWQKKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHdpdGggd2hpY2ggdGhlIG1lbnVzIGludGVyYWN0CisgICAgICogQHBhcmFtIGZyYW1lIGEgRnJhbWUgdG8gdXNlIGFzIHRoZSBwYXJlbnQgb2YgYW55IGRpYWxvZ3MgY3JlYXRlZCBieSBhIAorICAgICAqICAgYSBtZW51IGl0ZW0uICBJZiBudWxsLCBtZW51IGl0ZW1zIHdoaWNoIGNyZWF0ZSBkaWFsb2dzIHdpbGwgYmUgb21pdHRlZC4KKyAgICAgKiBAcGFyYW0gbWVudXMgYW4gYXJyYXkgb2YgaW50ZWdlciBtZW51IGlkJ3MuICBFYWNoIGVsZW1lbnQgb2YgdGhlCisgICAgICogICBhcnJheSBtdXN0IGJlIG9uZSBvZiB0aGlzIGNsYXNzJ3MgbWVudSBpZCBjb25zdGFudHMuICBJZiBudWxsLAorICAgICAqICAgdGhlIGRlZmF1bHQgbWVudXMgYXJlIGNyZWF0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY3JlYXRlTWVudXMoTWVudUJhciBtZW51QmFyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBtZW51cykgeworICAgICAgICAKKyAgICAgICAgaWYgKG1lbnVzID09IG51bGwpIHsKKyAgICAgICAgICAgIG1lbnVzID0gZGVmYXVsdE1lbnVzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzeW5jaHJvbml6ZWQgKE1JdGVtLkxPQ0spIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZk1lbnVCYXIgPSBtZW51QmFyOworICAgICAgICAgICAgZG9DcmVhdGVNZW51cyh0ZXh0UGFuZWwsIGZyYW1lLCBtZW51cyk7CisgICAgICAgICAgICBmTWVudUJhciA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQWRkTWVudShTdHJpbmcga2V5KSB7CisgICAgICAgIAorICAgICAgICBNZW51IG1lbnUgPSBuZXcgTWVudShSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKGtleSkpOworICAgICAgICBmTWVudUJhci5hZGQobWVudSk7CisgICAgICAgIE1JdGVtLnNldEl0ZW1GYWN0b3J5KG5ldyBBd3RNZW51RmFjdG9yeShtZW51KSk7CisgICAgfQorCisgICAgcHJvdGVjdGVkIERpYWxvZ0ZhY3RvcnkgY3JlYXRlT2JqZWN0RGlhbG9nRmFjdG9yeShmaW5hbCBTdHJpbmcgZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgZGlhbG9nTWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBib29sZWFuIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZ1tdIG5hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgT2JqZWN0W10gdmFsdWVzKSB7CisgICAgICAgIAorICAgICAgICBmaW5hbCBGcmFtZSBkaWFsb2dQYXJlbnQgPSBmRGlhbG9nUGFyZW50OworCisgICAgICAgIHJldHVybiBuZXcgRGlhbG9nRmFjdG9yeSgpIHsgICAgCisgICAgICAgICAgICBwdWJsaWMgV2luZG93IGNyZWF0ZURpYWxvZyhNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0RGlhbG9nKGRpYWxvZ1BhcmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dUaXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBEaWFsb2dGYWN0b3J5IGNyZWF0ZU51bWJlckRpYWxvZ0ZhY3RvcnkoZmluYWwgU3RyaW5nIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGRpYWxvZ01lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBjaGFyYWN0ZXIpIHsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIEZyYW1lIGRpYWxvZ1BhcmVudCA9IGZEaWFsb2dQYXJlbnQ7CisgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBEaWFsb2dGYWN0b3J5KCkgeworICAgICAgICAgICAgcHVibGljIFdpbmRvdyBjcmVhdGVEaWFsb2coTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE51bWJlckRpYWxvZyhkaWFsb2dQYXJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nTWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9ICAgIAorICAgIAorICAgIHByb3RlY3RlZCBEaWFsb2dGYWN0b3J5IGNyZWF0ZUFib3V0RGlhbG9nRmFjdG9yeSgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgRGlhbG9nRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBXaW5kb3cgY3JlYXRlRGlhbG9nKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5BQk9VVF9USVRMRSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNZXNzYWdlRGlhbG9nKHRpdGxlLCBBYm91dFRleHQuZ2V0QWJvdXRUZXh0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9Bd3RNZW51RmFjdG9yeS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvQXd0TWVudUZhY3RvcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mN2Y4ZjU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvQXd0TWVudUZhY3RvcnkuamF2YQpAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGphdmEuYXd0LkNoZWNrYm94TWVudUl0ZW07CitpbXBvcnQgamF2YS5hd3QuTWVudTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51SXRlbTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51U2hvcnRjdXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5JdGVtRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuSXRlbUxpc3RlbmVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLk1JdGVtOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLk1JdGVtLkl0ZW1GYWN0b3J5OworCitmaW5hbCBjbGFzcyBBd3RNZW51RmFjdG9yeSBpbXBsZW1lbnRzIEl0ZW1GYWN0b3J5IHsKKyAgICAgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGZpbmFsIGNsYXNzIEF3dE1JdGVtIGV4dGVuZHMgTUl0ZW0geworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBNZW51SXRlbSBmSXRlbTsKKyAgICAgICAgCisgICAgICAgIEF3dE1JdGVtKE1lbnVJdGVtIGl0ZW0pIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZkl0ZW0gPSBpdGVtOworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDaGVja2JveE1lbnVJdGVtIGNoSXRlbSA9IChDaGVja2JveE1lbnVJdGVtKSBmSXRlbTsKKyAgICAgICAgICAgICAgICBjaEl0ZW0uYWRkSXRlbUxpc3RlbmVyKG5ldyBJdGVtTGlzdGVuZXIoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGl0ZW1TdGF0ZUNoYW5nZWQoSXRlbUV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcihuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8gQWNrIC0gaG93IGRvIHlvdSBkbyB0aGlzIGZyb20gaW5uZXIgY2xhc3Nlcz8/CisgICAgICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVNlbGVjdGVkKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBzdXBlci5oYW5kbGVTZWxlY3RlZCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmSXRlbS5zZXRFbmFibGVkKGVuYWJsZWQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCBzZXRTdGF0ZShib29sZWFuIGNoZWNrZWQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBDaGVja2JveE1lbnVJdGVtIGl0ZW0gPSAoQ2hlY2tib3hNZW51SXRlbSkgZkl0ZW07CisgICAgICAgICAgICAgICAgaXRlbS5zZXRTdGF0ZShjaGVja2VkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcGVyZm9ybSBzZXRDaGVja2VkIG9uIG5vbi1jaGVja2JveCBpdGVtIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBNZW51IGZNZW51OworICAgICAgICAKKyAgICBBd3RNZW51RmFjdG9yeShNZW51IG1lbnUpIHsKKyAgICAgICAgICAgIAorICAgICAgICBmTWVudSA9IG1lbnU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgTUl0ZW0gaGFuZGxlQ3JlYXRlKE1lbnVJdGVtIGl0ZW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVudURhdGEgbWVudURhdGEpIHsKKworICAgICAgICBpZiAobWVudURhdGEuaGFzU2hvcnRjdXQoKSkgeworICAgICAgICAgICAgaXRlbS5zZXRTaG9ydGN1dChuZXcgTWVudVNob3J0Y3V0KG1lbnVEYXRhLmdldFNob3J0Y3V0Q2hhcigpKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZNZW51LmFkZChpdGVtKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgQXd0TUl0ZW0oaXRlbSk7CisgICAgfQorICAgICAgICAKKyAgICBwdWJsaWMgTUl0ZW0gY3JlYXRlSXRlbShNZW51RGF0YSBtZW51RGF0YSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGhhbmRsZUNyZWF0ZShuZXcgTWVudUl0ZW0obWVudURhdGEuZ2V0TmFtZSgpKSwgbWVudURhdGEpOworICAgIH0gICAgICAgIAorCisgICAgcHVibGljIE1JdGVtIGNyZWF0ZUNoZWNrYm94SXRlbShNZW51RGF0YSBtZW51RGF0YSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGhhbmRsZUNyZWF0ZShuZXcgQ2hlY2tib3hNZW51SXRlbShtZW51RGF0YS5nZXROYW1lKCkpLCBtZW51RGF0YSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGNyZWF0ZVNlcGFyYXRvcigpIHsKKyAgICAgICAgCisgICAgICAgIGZNZW51LmFkZChuZXcgTWVudUl0ZW0oIi0iKSk7CisgICAgfQorfQorICAgIApkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvTVRhYlJ1bGVyQ29tcG9uZW50LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9NVGFiUnVsZXJDb21wb25lbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMWQyNzM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvTVRhYlJ1bGVyQ29tcG9uZW50LmphdmEKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGFiUnVsZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKKworLyoqCisgKiBNVGFiUnVsZXJDb21wb25lbnQgaXMgaW1wbGVtZW50ZWQgYnkgY29tcG9uZW50cyB3aGljaCBwcm92aWRlIGEgdGFiLXJ1bGVyCisgKiBpbnRlcmZhY2UgZm9yIGludGVyYWN0aW5nIHdpdGggYW4gTVRleHRQYW5lbC4KKyAqIDxwPgorICogVXNlcnMgaW50ZXJhY3Qgd2l0aCBNVGFiUnVsZXJDb21wb25lbnQgaW1wbGVtZW50YXRpb25zIGFzIGZvbGxvd3M6CisgKiA8dWw+CisgKiA8bGk+VGhlIGxlYWRpbmcgbWFyZ2luIGNhbiBiZSBzZXQgYnkgZHJhZ2dpbmcgdGhlIGJvdHRvbSBoYWxmCisgKiBvZiB0aGUgbGVmdG1vc3QgdHJpYW5nbGUuICBUaGUgZmlyc3QtbGluZSBpbmRlbnQgd2lsbCAic3RpY2siIHdpdGgKKyAqIHRoZSBsZWFkaW5nIG1hcmdpbi48L2xpPgorICogPGxpPlRoZSBmaXJzdC1saW5lIGluZGVudCBjYW4gYmUgc2V0IGJ5IGRyYWdnaW5nIHRoZSB0b3AgaGFsZiBvZiB0aGUKKyAqIGxlZnRtb3N0IHRyaWFuZ2xlLiAgVGhlIGZpcnN0LWxpbmUgaW5kZW50IGFwcGxpZXMgdG8gdGhlIGZpcnN0IGxpbmUgb2YKKyAqIGEgcGFyYWdyYXBoLjwvbGk+CisgKiA8bGk+VGhlIHRyYWlsaW5nIG1hcmdpbiBjYW4gYmUgc2V0IGJ5IGRyYWdnaW5nIHRoZSByaWdodG1vc3QgdHJpYW5nbGUuPC9saT4KKyAqIDxsaT5UYWJzIGNhbiBiZSBhZGRlZCB0byB0aGUgcnVsZXIgYnkgY2xpY2tpbmcgdGhlIG1vdXNlIG9uIHRoZSBydWxlciB3aXRoIHRoZQorICogY29udHJvbCBrZXkgcHJlc3NlZC4gIEZvdXIga2luZHMgb2YgdGFicyBhcmUgcHJvdmlkZWQ6ICBsZWFkaW5nLCB0cmFpbGluZywgY2VudGVyLAorICogYW5kIGRlY2ltYWwuICBUaGUgdHlwZSBvZiBhIHRhYiBjYW4gYmUgY2hhbmdlZCBieSBkb3VibGUtY2xpY2tpbmcgdGhlIHRhYi48L2xpPgorICogPGxpPlRhYnMgY2FuIGJlIHJlcG9zaXRpb25lZCBieSBkcmFnZ2luZyB0aGVtIHdpdGggdGhlIG1vdXNlLjwvbGk+CisgKiA8L3VsPgorICogPHA+CisgKiBNVGFiUnVsZXJDb21wb25lbnQncyBhcHBlYXJhbmNlIHdpbGwgcmVmbGVjdCB0aGUgcGFyYWdyYXBoIHN0eWxlcyBpbiB0aGUKKyAqIGZpcnN0IHNlbGVjdGVkIHBhcmFncmFwaC4gIFN0eWxlIGNoYW5nZXMgcGVyZm9ybWVkIHdpdGggYW4gCisgKiBNVGFiUnVsZXJDb21wb25lbnQgd2lsbCBhcHBseSB0byBhbGwgc2VsZWN0ZWQgcGFyYWdyYXBocy4KKyAqLworcHVibGljIGludGVyZmFjZSBNVGFiUnVsZXJDb21wb25lbnQgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICAvKioKKyAgICAgKiBMaXN0ZW4gdG8gdGhlIGdpdmVuIE1UZXh0UGFuZWwgYW5kIHJlZmxlY3QgaXRzIGNoYW5nZXMsCisgICAgICogYW5kIHVwZGF0ZSBpdHMgcGFyYWdyYXBoIHN0eWxlcyB3aGVuIFRhYlJ1bGVyIGlzCisgICAgICogbWFuaXB1bGF0ZWQuCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB0byBsaXN0ZW4gdG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBsaXN0ZW5Ub1RleHRQYW5lbChNVGV4dFBhbmVsIHRleHRQYW5lbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sb3IgZ2V0QmFja0NvbG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcGFyYW0gYmFja0NvbG9yIHRoZSBuZXcgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QmFja0NvbG9yKENvbG9yIGJhY2tDb2xvcik7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1UYWJSdWxlciByZXByZXNlbnRlZCBieSB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIE1UYWJSdWxlciByZXByZXNlbnRlZCBieSB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIE1UYWJSdWxlciBnZXRSdWxlcigpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZWFkaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGxlYWRpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExlYWRpbmdNYXJnaW4oKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgbGluZSBpbmRlbnQgb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBsaW5lIGluZGVudCBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGaXJzdExpbmVJbmRlbnQoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFRyYWlsaW5nTWFyZ2luKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9NZXNzYWdlRGlhbG9nLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9NZXNzYWdlRGlhbG9nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODY2MjE2NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL01lc3NhZ2VEaWFsb2cuamF2YQpAQCAtMCwwICsxLDY1IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuQ2FyZExheW91dDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxTZXR0aW5nczsKKworLyoqCisgKiBNZXNzYWdlRGlhbG9nIGlzIGEgc2ltcGxlIEZyYW1lIHdoaWNoIGRpc3BsYXlzIGEgc3R5bGVkCisgKiB0ZXh0IG1lc3NhZ2UgaW4gYSBUZXh0UGFuZWwuCisgKiBUaGUgdGV4dCBpbiB0aGUgbWVzc2FnZSBpcyBub3Qgc2VsZWN0YWJsZSBvciBlZGl0YWJsZS4KKyAqIEBzZWUgTUNvbnN0VGV4dAorICogQHNlZSBUZXh0UGFuZWwKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIE1lc3NhZ2VEaWFsb2cgZXh0ZW5kcyBGcmFtZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKgorICAgICogQ3JlYXRlIGEgbmV3IE1lc3NhZ2VEaWFsb2cuCisgICAgKiBAcGFyYW0gdGl0bGUgdGhlIGRpYWxvZydzIHRpdGxlCisgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgdGV4dCB3aGljaCB3aWxsIGFwcGVhciBpbiB0aGUgZGlhbG9nCisgICAgKi8KKyAgICBwdWJsaWMgTWVzc2FnZURpYWxvZyhTdHJpbmcgdGl0bGUsIE1Db25zdFRleHQgbWVzc2FnZSkKKyAgICB7CisgICAgICAgIHN1cGVyKHRpdGxlKTsKKworICAgICAgICBzZXRMYXlvdXQobmV3IENhcmRMYXlvdXQoKSk7CisgICAgICAgIFRleHRQYW5lbFNldHRpbmdzIHNldHRpbmdzID0gVGV4dFBhbmVsLmdldERlZmF1bHRTZXR0aW5ncygpOworICAgICAgICBzZXR0aW5ncy5zZXRTY3JvbGxhYmxlKGZhbHNlKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0U2VsZWN0YWJsZShmYWxzZSk7CisgICAgICAgIFRleHRQYW5lbCBwYW5lbCA9IG5ldyBUZXh0UGFuZWwoc2V0dGluZ3MsIG1lc3NhZ2UsIG51bGwpOworCisgICAgICAgIHBhbmVsLnNldEJhY2tncm91bmQoQ29sb3IuYmxhY2spOworICAgICAgICBhZGQoIkNlbnRlciIsIHBhbmVsKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworICAgICAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgc2V0U2l6ZSg0NTAsMzIwKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9OdW1iZXJEaWFsb2cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL051bWJlckRpYWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRlZGFmNjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9OdW1iZXJEaWFsb2cuamF2YQpAQCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGphdmEuYXd0LkZsb3dMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuRGlhbG9nOworaW1wb3J0IGphdmEuYXd0LlRleHRGaWVsZDsKK2ltcG9ydCBqYXZhLmF3dC5CdXR0b247CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuUGFuZWw7CitpbXBvcnQgamF2YS5hd3QuTGFiZWw7CisKK2ltcG9ydCBqYXZhLnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuTWVudUl0ZW1TZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuUmVzb3VyY2VVdGlsczsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CisKKy8qKgorKiBTaW1wbGUgZGlhbG9nIHdoaWNoIGdldHMgYSBudW1iZXIsIGFuZCBzZW5kcyBhbiBhcHByb3ByaWF0ZSBjb21tYW5kCisqLworZmluYWwgY2xhc3MgTnVtYmVyRGlhbG9nIGV4dGVuZHMgRGlhbG9nIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgTVRleHRQYW5lbCBmVGV4dFBhbmVsOworICAgIHByaXZhdGUgVGV4dEZpZWxkIGZJbnB1dCA9IG51bGw7CisgICAgcHJpdmF0ZSBCdXR0b24gZk9LQnV0dG9uID0gbnVsbDsKKyAgICBwcml2YXRlIEJ1dHRvbiBmQ2FuY2VsQnV0dG9uID0gbnVsbDsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkNoYXJhY3RlcjsKKyAgICBwcml2YXRlIE9iamVjdCBmS2V5OworICAgIHByaXZhdGUgZmxvYXQgZk11bHRpcGxpZXI7IAorCisgICAgLyoqCisgICAgICogQHBhcmFtIG11bHRpcGxpZXIgdGhlIGZhY3RvciBieSB3aGljaCB0byBtdWx0aXBseSB0aGUgdXNlcidzCisgICAgICogICAgICAgIHNlbGVjdGlvbiBiZWZvcmUgY3JlYXRpbmcgdGhlIGF0dHJpYnV0ZSB2YWx1ZS4gICBUaGlzCisgICAgICogICAgICAgIGlzIHVzZWZ1bCBmb3Igc3Vic2NyaXB0aW5nLgorICAgICAqLworICAgIE51bWJlckRpYWxvZyhGcmFtZSBwYXJlbnQsCisgICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZSwKKyAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgZmxvYXQgbXVsdGlwbGllcikgeworCisgICAgICAgIHN1cGVyKHBhcmVudCwgdGl0bGUsIGZhbHNlKTsKKyAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKyAgICAgICAgZktleSA9IGtleTsKKyAgICAgICAgZkNoYXJhY3RlciA9IGNoYXJhY3RlcjsKKyAgICAgICAgZk11bHRpcGxpZXIgPSBtdWx0aXBsaWVyOworICAgICAgICBzZXRMYXlvdXQobmV3IGphdmEuYXd0LkdyaWRMYXlvdXQoMiwxKSk7CisKKyAgICAgICAgUGFuZWwgcGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgcGFuZWwuc2V0TGF5b3V0KG5ldyBGbG93TGF5b3V0KEZsb3dMYXlvdXQuQ0VOVEVSLCAxMCwgMTUpKTsKKyAgICAgICAgZklucHV0ID0gbmV3IFRleHRGaWVsZCg1KTsKKyAgICAgICAgcGFuZWwuYWRkKG5ldyBMYWJlbChtZXNzYWdlKSk7CisgICAgICAgIHBhbmVsLmFkZChmSW5wdXQpOworICAgICAgICBhZGQoIkNlbnRlciIsIHBhbmVsKTsKKworICAgICAgICBmQ2FuY2VsQnV0dG9uID0gbmV3IEJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkNBTkNFTCkpOworICAgICAgICBmT0tCdXR0b24gPSBuZXcgQnV0dG9uKFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuT0spKTsKKyAgICAgICAgUGFuZWwgcCA9IG5ldyBQYW5lbCgpOworICAgICAgICBwLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgNSwgNSkpOworICAgICAgICBwLmFkZChmQ2FuY2VsQnV0dG9uKTsKKyAgICAgICAgcC5hZGQoZk9LQnV0dG9uKTsKKyAgICAgICAgYWRkKCJTb3V0aCIsIHApOworCisgICAgICAgIHBhY2soKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGNsb3NlV2luZG93KGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICBmT0tCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGZDYW5jZWxCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNsb3NlV2luZG93KGJvb2xlYW4gc2VuZEFjdGlvbikgeworCisgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworCisgICAgICAgIGludCBudW0gPSAwOworICAgICAgICBpZiAoc2VuZEFjdGlvbikgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IGZJbnB1dC5nZXRUZXh0KCk7CisgICAgICAgICAgICAgICAgbnVtID0gTnVtYmVyRm9ybWF0LmdldEluc3RhbmNlKCkucGFyc2UodGV4dCkuaW50VmFsdWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoIChQYXJzZUV4Y2VwdGlvbiBleGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICBzZW5kQWN0aW9uID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2VuZEFjdGlvbikgeworICAgICAgICAgICAgc2VuZEFjdGlvbihudW0pOworICAgICAgICB9CisKKyAgICAgICAgZGlzcG9zZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisKKyAgICAgICAgT2JqZWN0IHNvdXJjZSA9IGUuZ2V0U291cmNlKCk7CisKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBmT0tCdXR0b24pIHsKKyAgICAgICAgICAgIGNsb3NlV2luZG93KHRydWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmQ2FuY2VsQnV0dG9uKSB7CisgICAgICAgICAgICBjbG9zZVdpbmRvdyhmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIEFjdGlvbkV2ZW50ISIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBIYW5kbGUgdGhlIHVzZXIgaW5wdXQKKyAgICAqIEBwYXJhbSB0aGUgbnVtYmVyIHRoZSB1c2VyIHR5cGVkIGluCisgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2VuZEFjdGlvbihpbnQgbnVtYmVyKSB7CisgICAgICAgIGZsb2F0IG51bSA9IG51bWJlciAqIGZNdWx0aXBsaWVyOworICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmxvYXQobnVtKSk7CisgICAgICAgIGlmIChmQ2hhcmFjdGVyID09IE1lbnVJdGVtU2V0LkNIQVJBQ1RFUikgeworICAgICAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9PYmplY3REaWFsb2cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL09iamVjdERpYWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI5MTNhYTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9PYmplY3REaWFsb2cuamF2YQpAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVTZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5NZW51SXRlbVNldDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5GcmFtZVJlc291cmNlczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5SZXNvdXJjZVV0aWxzOworCitpbXBvcnQgamF2YS5hd3QuRGlhbG9nOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LkJ1dHRvbjsKK2ltcG9ydCBqYXZhLmF3dC5DaG9pY2U7CitpbXBvcnQgamF2YS5hd3QuTGFiZWw7CitpbXBvcnQgamF2YS5hd3QuRmxvd0xheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5QYW5lbDsKK2ltcG9ydCBqYXZhLmF3dC5HcmlkTGF5b3V0OworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKKworLyoqCisqIFNpbXBsZSBkaWFsb2cgd2hpY2ggZ2V0cyBhIGNvbG9yCisqLworZmluYWwgY2xhc3MgT2JqZWN0RGlhbG9nIGV4dGVuZHMgRGlhbG9nIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBmaW5hbCBNVGV4dFBhbmVsIGZUZXh0UGFuZWw7CisgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3QgZktleTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkNoYXJhY3RlcjsKKworICAgIHByaXZhdGUgZmluYWwgQnV0dG9uIGZPS0J1dHRvbjsKKyAgICBwcml2YXRlIGZpbmFsIEJ1dHRvbiBmQ2FuY2VsQnV0dG9uOworICAgIHByaXZhdGUgZmluYWwgQ2hvaWNlIGZJdGVtczsKKyAgICBwcml2YXRlIGZpbmFsIEhhc2h0YWJsZSBmTmFtZVRvVmFsdWVNYXA7CisgICAgLyoqCisgICAgKiBDb25zdHJ1Y3QgYSBuZXcgQ29sb3JEaWFsb2cuCisgICAgKiBAcGFyYW0gcGFyZW50IHRoZSBkaWFsb2cncyBwYXJlbnQgZnJhbWUKKyAgICAqIEBwYXJhbSB0aXRsZSB0aGUgZGlhbG9ncyB0aXRsZQorICAgICogQHBhcmFtIG1lc3NhZ2UgdGhlIG1lc3NhZ2UgZGlzcGxheWVkIG5leHQgdG8gdGhlIGlucHV0IGJveAorICAgICovCisgICAgT2JqZWN0RGlhbG9nKEZyYW1lIHBhcmVudCwgCisgICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZSwgCisgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlLCAKKyAgICAgICAgICAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgICBTdHJpbmdbXSBuYW1lcywKKyAgICAgICAgICAgICAgICAgT2JqZWN0W10gdmFsdWVzKSB7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBzdXBlcihwYXJlbnQsIHRpdGxlLCBmYWxzZSk7CisgICAgICAgIGZUZXh0UGFuZWwgPSB0ZXh0UGFuZWw7CisgICAgICAgIGZLZXkgPSBrZXk7CisgICAgICAgIGZDaGFyYWN0ZXIgPSBjaGFyYWN0ZXI7CisgICAgICAgIAorICAgICAgICBzZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMiwgMSkpOworCisgICAgICAgIFBhbmVsIHBhbmVsID0gbmV3IFBhbmVsKCk7CisgICAgICAgIHBhbmVsLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgMTAsIDEwKSk7CisgICAgICAgIGZJdGVtcyA9IG5ldyBDaG9pY2UoKTsKKworICAgICAgICBpZiAobmFtZXMubGVuZ3RoICE9IHZhbHVlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk11c3QgaGF2ZSBzYW1lIG51bWJlciBvZiBuYW1lcyBhbmQgdmFsdWVzLiIpOworICAgICAgICB9CisKKyAgICAgICAgZk5hbWVUb1ZhbHVlTWFwID0gbmV3IEhhc2h0YWJsZShuYW1lcy5sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGZJdGVtcy5hZGQobmFtZXNbaV0pOworICAgICAgICAgICAgaWYgKHZhbHVlc1tpXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZk5hbWVUb1ZhbHVlTWFwLnB1dChuYW1lc1tpXSwgdmFsdWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHBhbmVsLmFkZChuZXcgTGFiZWwobWVzc2FnZSkpOyAgICAgICAgCisgICAgICAgIHBhbmVsLmFkZChmSXRlbXMpOworICAgICAgICAKKyAgICAgICAgYWRkKCJOb3J0aCIsIHBhbmVsKTsKKworICAgICAgICBmQ2FuY2VsQnV0dG9uID0gbmV3IEJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkNBTkNFTCkpOworICAgICAgICBmT0tCdXR0b24gPSBuZXcgQnV0dG9uKFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuT0spKTsKKyAgICAgICAgUGFuZWwgcCA9IG5ldyBQYW5lbCgpOworICAgICAgICBwLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgNSwgNSkpOworICAgICAgICBwLmFkZChmQ2FuY2VsQnV0dG9uKTsKKyAgICAgICAgcC5hZGQoZk9LQnV0dG9uKTsKKyAgICAgICAgYWRkKCJTb3V0aCIsIHApOworCisgICAgICAgIHBhY2soKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGNsb3NlV2luZG93KGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIAorICAgICAgICBmT0tCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGZDYW5jZWxCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNsb3NlV2luZG93KGJvb2xlYW4gc2VuZEFjdGlvbikgeworCisgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworICAgICAgICBpZiAoc2VuZEFjdGlvbikgeworICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gZk5hbWVUb1ZhbHVlTWFwLmdldChmSXRlbXMuZ2V0U2VsZWN0ZWRJdGVtKCkpOworICAgICAgICAgICAgc2VuZEFjdGlvbih2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZGlzcG9zZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBlKSB7CisKKyAgICAgICAgT2JqZWN0IHNvdXJjZSA9IGUuZ2V0U291cmNlKCk7CisKKyAgICAgICAgaWYgKHNvdXJjZSA9PSBmT0tCdXR0b24pIHsKKyAgICAgICAgICAgIGNsb3NlV2luZG93KHRydWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmQ2FuY2VsQnV0dG9uKSB7CisgICAgICAgICAgICBjbG9zZVdpbmRvdyhmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIEFjdGlvbkV2ZW50ISIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBIYW5kbGUgdGhlIHVzZXIgaW5wdXQKKyAgICAqIEBwYXJhbSBvYmogdGhlIHZhbHVlIG9iamVjdAorICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNlbmRBY3Rpb24oT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllcjsKKyAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihmS2V5LCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVTZXQgc2V0ID0gbmV3IEF0dHJpYnV0ZVNldChmS2V5KTsKKyAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVSZW1vdmVNb2RpZmllcihzZXQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBNZW51SXRlbVNldC5DSEFSQUNURVIpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLm1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvVGFiUnVsZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL1RhYlJ1bGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDExYTFjMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL1RhYlJ1bGVyLmphdmEKQEAgLTAsMCArMSwxMjkgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuYXd0dWk7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5UYWJSdWxlckltcGw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UYWJSdWxlcjsKKworLyoqCisgKiBUYWJSdWxlciBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBNVGFiUnVsZXJDb21wb25lbnQgaW4gYW4gQVdUIGNvbXBvbmVudC4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFRhYlJ1bGVyIGV4dGVuZHMgQ29tcG9uZW50IGltcGxlbWVudHMgTVRhYlJ1bGVyQ29tcG9uZW50IHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgVGFiUnVsZXJJbXBsIGZJbXBsOworICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBUYWJSdWxlci4KKyAgICAgKiBAcGFyYW0gYmFzZWxpbmUgdGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgcnVsZXIncyBiYXNlbGluZQorICAgICAqIEBwYXJhbSBvcmlnaW4gdGhlIHgtY29vcmRpbmF0ZSBpbiB0aGlzIENvbXBvbmVudCB3aGVyZQorICAgICAqICAgICB0aGUgbGVmdCBtYXJnaW4gYXBwZWFycworICAgICAqIEBwYXJhbSB0ZXh0UGFuZWwgdGhlIE1UZXh0UGFuZWwgdG8gbGlzdGVuIHRvLiAgVGhpcyBUYWJSdWxlcgorICAgICAqICAgICB3aWxsIHJlZmxlY3QgdGhlIE1UZXh0UGFuZWwncyBwYXJhZ3JhcGggc3R5bGVzLCBhbmQgdXBkYXRlCisgICAgICogICAgIHRoZSBwYXJhZ3JhcGggc3R5bGVzIHdoZW4gbWFuaXB1bGF0ZWQuCisgICAgICovCisgICAgcHVibGljIFRhYlJ1bGVyKGludCBiYXNlbGluZSwgaW50IG9yaWdpbiwgTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAgICAgCisgICAgICAgIGZJbXBsID0gbmV3IFRhYlJ1bGVySW1wbChiYXNlbGluZSwgb3JpZ2luLCB0ZXh0UGFuZWwsIHRoaXMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBMaXN0ZW4gdG8gdGhlIGdpdmVuIE1UZXh0UGFuZWwgYW5kIHJlZmxlY3QgaXRzIGNoYW5nZXMsCisgICAgICogYW5kIHVwZGF0ZSBpdHMgcGFyYWdyYXBoIHN0eWxlcyB3aGVuIFRhYlJ1bGVyIGlzCisgICAgICogbWFuaXB1bGF0ZWQuCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB0byBsaXN0ZW4gdG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBsaXN0ZW5Ub1RleHRQYW5lbChNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworCisgICAgICAgIGZJbXBsLmxpc3RlblRvVGV4dFBhbmVsKHRleHRQYW5lbCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBDb2xvciBnZXRCYWNrQ29sb3IoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldEJhY2tDb2xvcigpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcGFyYW0gYmFja0NvbG9yIHRoZSBuZXcgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QmFja0NvbG9yKENvbG9yIGJhY2tDb2xvcikgeworCisgICAgICAgIGZJbXBsLnNldEJhY2tDb2xvcihiYWNrQ29sb3IpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1UYWJSdWxlciByZXByZXNlbnRlZCBieSB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIE1UYWJSdWxlciByZXByZXNlbnRlZCBieSB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIE1UYWJSdWxlciBnZXRSdWxlcigpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRSdWxlcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVhZGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZWFkaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGludCBnZXRMZWFkaW5nTWFyZ2luKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldExlYWRpbmdNYXJnaW4oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZpcnN0IGxpbmUgaW5kZW50IG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgbGluZSBpbmRlbnQgb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rmlyc3RMaW5lSW5kZW50KCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldEZpcnN0TGluZUluZGVudCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFRyYWlsaW5nTWFyZ2luKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFRyYWlsaW5nTWFyZ2luKCk7CisgICAgfQorICAgIAorICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlIENvbXBvbmVudCBtZXRob2RzIHdoaWNoIG5lZWQgdG8gYmUgZGVsZWdhdGVkIHRvCisgICAgLy8gdGhlIGltcGxlbWVudGF0aW9uOgorICAgIAorICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgCisgICAgICAgIGZJbXBsLnBhaW50KGcpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgRGltZW5zaW9uIGdldFByZWZlcnJlZFNpemUoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0UHJlZmVycmVkU2l6ZSgpOworICAgIH0KKworICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0TWluaW11bVNpemUoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0TWluaW11bVNpemUoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9UZXh0RnJhbWUuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL1RleHRGcmFtZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhmMGI5NmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9hd3R1aS9UZXh0RnJhbWUuamF2YQpAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5hd3R1aTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0Lk1lbnVCYXI7CitpbXBvcnQgamF2YS5hd3QuVG9vbGtpdDsKKworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmQ7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworCisvKioKKyAqIFRleHRGcmFtZSBpcyBhIEZyYW1lIGNvbnRhaW5pbmcgYW4gZWRpdGFibGUgVGV4dFBhbmVsLCBhIHNldCBvZiBzdGFuZGFyZAorICogbWVudXMsIGFuZCBhIFRhYlJ1bGVyLiAgVGhpcyBjbGFzcyBjYW4gYmUgdXNlZCBhcy1pcywgYnV0IGlzCisgKiBwcmltYXJpbHkgaW50ZW5kZWQgdG8gYmUgYSBzaW1wbGUgZXhhbXBsZSBvZiBob3cgdG8gdXNlIHRoZSBvdGhlciBjbGFzc2VzCisgKiBpbiB0aGlzIHBhY2thZ2UuCisgKiBAc2VlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbAorICogQHNlZSBBd3RNZW51QnVpbGRlcgorICogQHNlZSBUYWJSdWxlcgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVGV4dEZyYW1lIGV4dGVuZHMgRnJhbWUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIFRleHRQYW5lbCBmVGV4dFBhbmVsOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IFRleHRGcmFtZSB3aXRoIG5vIHRleHQgYW5kIG5vIHRpdGxlLgorICAgICAqLworICAgIHB1YmxpYyBUZXh0RnJhbWUoKSB7CisgICAgICAgIAorICAgICAgICBzdXBlcigpOworICAgICAgICBpbml0KG51bGwsIFRvb2xraXQuZ2V0RGVmYXVsdFRvb2xraXQoKS5nZXRTeXN0ZW1DbGlwYm9hcmQoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBUZXh0RnJhbWUgd2l0aCBubyB0ZXh0IGFuZCB0aGUgZ2l2ZW4gdGl0bGUuCisgICAgICogQHBhcmFtIHRpdGxlIHRoZSB0aXRsZSBvZiB0aGlzIEZyYW1lCisgICAgICovCisgICAgcHVibGljIFRleHRGcmFtZShTdHJpbmcgdGl0bGUpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKHRpdGxlKTsKKyAgICAgICAgaW5pdChudWxsLCBUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgVGV4dEZyYW1lIHdpdGggdGhlIGdpdmVuIHRleHQgYW5kIHRpdGxlLCB3aG9zZQorICAgICAqIFRleHRQYW5lbCB3aWxsIHVzZSB0aGUgZ2l2ZW4gY2xpcGJvYXJkLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBpbml0aWFsIHRleHQgaW4gdGhlIFRleHRQYW5lbC4gIElmIG51bGwgdGhlCisgICAgICogICAgICBUZXh0UGFuZWwgd2lsbCBpbml0aWFsbHkgYmUgZW1wdHkKKyAgICAgKiBAcGFyYW0gdGl0bGUgdGhlIHRpdGxlIG9mIHRoaXMgRnJhbWUKKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBDbGlwYm9hcmQgd2hpY2ggdGhlIFRleHRQYW5lbCB3aWxsIHVzZS4KKyAgICAgKiAgICAgIElmIG51bGwgdGhlIFRleHRQYW5lbCB3aWxsIHVzZSBhIHByaXZhdGUgQ2xpcGJvYXJkCisgICAgICovCisgICAgcHVibGljIFRleHRGcmFtZShNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGl0bGUsCisgICAgICAgICAgICAgICAgICAgICBDbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisKKyAgICAgICAgc3VwZXIodGl0bGUpOworICAgICAgICBpbml0KHRleHQsIGNsaXBib2FyZCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGluaXQoTUNvbnN0VGV4dCB0ZXh0LCBDbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisgICAgICAgIAorICAgICAgICBmVGV4dFBhbmVsID0gbmV3IFRleHRQYW5lbCh0ZXh0LCBjbGlwYm9hcmQpOworCisgICAgICAgIFRhYlJ1bGVyIHRhYlJ1bGVyID0gbmV3IFRhYlJ1bGVyKDE0LCAxMCwgZlRleHRQYW5lbCk7CisKKyAgICAgICAgY3JlYXRlTWVudXMoKTsKKworICAgICAgICBzZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKyAgICAgICAgYWRkKGZUZXh0UGFuZWwsICJDZW50ZXIiKTsKKyAgICAgICAgYWRkKHRhYlJ1bGVyLCAiTm9ydGgiKTsKKyAgICAgICAgcGFjaygpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjcmVhdGVNZW51cygpIHsKKworICAgICAgICBNZW51QmFyIG1lbnVCYXIgPSBuZXcgTWVudUJhcigpOworCisgICAgICAgIEF3dE1lbnVCdWlsZGVyLmdldEluc3RhbmNlKCkuY3JlYXRlTWVudXMobWVudUJhciwgZlRleHRQYW5lbCwgdGhpcyk7CisKKyAgICAgICAgc2V0TWVudUJhcihtZW51QmFyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1UZXh0UGFuZWwgaW4gdGhpcyBmcmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTVRleHRQYW5lbCBnZXRUZXh0UGFuZWwoKSB7CisKKyAgICAgICAgcmV0dXJuIGZUZXh0UGFuZWw7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKyAgICAgICAgCisgICAgICAgIFRleHRGcmFtZSBmcmFtZSA9IG5ldyBUZXh0RnJhbWUoKTsKKyAgICAgICAgZnJhbWUuYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIGZyYW1lLnNldFNpemUoNTUwLCA3MDApOworICAgICAgICBmcmFtZS5zaG93KCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2F3dHVpL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZDE2ZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvYXd0dWkvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhLS0KKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworLS0+Cis8aHRtbD4KKzxib2R5IGJnY29sb3I9IndoaXRlIj4KK1Byb3ZpZGVzIGNsYXNzZXMgZm9yIGJ1aWxkaW5nIGFuIEFXVC1iYXNlZCB1c2VyIGludGVyZmFjZSBmb3IgYSBUZXh0UGFuZWwuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0F3dERvY3VtZW50V2luZG93LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0F3dERvY3VtZW50V2luZG93LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjJmMjNhZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vQXd0RG9jdW1lbnRXaW5kb3cuamF2YQpAQCAtMCwwICsxLDM1NyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5hd3R1aS5UYWJSdWxlcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxMaXN0ZW5lcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxTZXR0aW5nczsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuYXd0dWkuQXd0TWVudUJ1aWxkZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnByaW50LlByaW50aW5nVXRpbHM7CisKK2ltcG9ydCBqYXZhLmF3dC5Cb3JkZXJMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuQnV0dG9uOworaW1wb3J0IGphdmEuYXd0LkRpYWxvZzsKK2ltcG9ydCBqYXZhLmF3dC5GaWxlRGlhbG9nOworaW1wb3J0IGphdmEuYXd0LkdyaWRMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuTWVudTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51QmFyOworaW1wb3J0IGphdmEuYXd0LkxhYmVsOworaW1wb3J0IGphdmEuYXd0LlBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKKworaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OworCisvKioKKyAqIEF3dERvY3VtZW50V2luZG93IGlzIGEgRnJhbWUgY29udGFpbmluZyBhIFRleHRQYW5lbCwgd2l0aCBhIGRvY3VtZW50CisgKiBmb3Igc3RvcmluZyB0aGUgdGV4dCBpbiB0aGUgVGV4dFBhbmVsLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQXd0RG9jdW1lbnRXaW5kb3cgZXh0ZW5kcyBGcmFtZSBpbXBsZW1lbnRzIERvY3VtZW50V2luZG93IHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIFRleHRQYW5lbCBmVGV4dFBhbmVsOworICAgIHByaXZhdGUgRWRpdEFwcGxpY2F0aW9uIGZBcHBsaWNhdGlvbjsKKyAgICBwcml2YXRlIFRleHREb2N1bWVudCBmRG9jdW1lbnQ7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgQXd0RG9jdW1lbnRXaW5kb3cuCisgICAgICogQHBhcmFtIGFwcGxpY2F0aW9uIHRoZSBhcHBsaWNhdGlvbiB0aGF0IG93bnMgdGhpcyBkb2N1bWVudAorICAgICAqIEBwYXJhbSBjbGlwYm9hcmQgdGhlIGNsaXBib2FyZCB0byB1c2UKKyAgICAgKiBAcGFyYW0gZG9jdW1lbnQgdGhlIGRvY3VtZW50IHRvIHNob3cgaW4gdGhpcyBBd3REb2N1bWVudFdpbmRvdworICAgICAqLworICAgIEF3dERvY3VtZW50V2luZG93KEVkaXRBcHBsaWNhdGlvbiBhcHBsaWNhdGlvbiwKKyAgICAgICAgICAgICAgICAgICBUZXh0RG9jdW1lbnQgZG9jdW1lbnQsCisgICAgICAgICAgICAgICAgICAgVGV4dFBhbmVsU2V0dGluZ3MgdGV4dFBhbmVsU2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB1c2VUYWJSdWxlciwKKyAgICAgICAgICAgICAgICAgICBUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICBib29sZWFuIHN1cHBvcnRTdHlsZWRUZXh0LAorICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFBsYWluVGV4dCwKKyAgICAgICAgICAgICAgICAgICBpbnRbXSBtZW51cykgeworCisgICAgICAgIGZBcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uOworICAgICAgICAKKyAgICAgICAgZlRleHRQYW5lbCA9IG5ldyBUZXh0UGFuZWwodGV4dFBhbmVsU2V0dGluZ3MsIG51bGwsIGFwcGxpY2F0aW9uLmdldENsaXBib2FyZCgpKTsKKyAgICAgICAgaWYgKGxpc3RlbmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuYWRkTGlzdGVuZXIobGlzdGVuZXIpOworICAgICAgICB9CisgICAgICAgIHNldERvY3VtZW50KGRvY3VtZW50KTsKKworICAgICAgICBhZGRNZW51QmFyKHN1cHBvcnRTdHlsZWRUZXh0LCBzdXBwb3J0UGxhaW5UZXh0LCBtZW51cyk7CisKKyAgICAgICAgc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisKKyAgICAgICAgaWYgKHVzZVRhYlJ1bGVyKSB7CisgICAgICAgICAgICBUYWJSdWxlciB0YWJSdWxlciA9IG5ldyBUYWJSdWxlcigxNCwgMTAsIGZUZXh0UGFuZWwpOworICAgICAgICAgICAgYWRkKHRhYlJ1bGVyLCAiTm9ydGgiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYWRkKGZUZXh0UGFuZWwsICJDZW50ZXIiKTsKKyAgICAgICAgcGFjaygpOworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGRvQ2xvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFkZE1lbnVCYXIoYm9vbGVhbiBzdXBwb3J0U3R5bGVkVGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzdXBwb3J0UGxhaW5UZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIG1lbnVzKSB7CisgICAgICAgIAorICAgICAgICBNZW51QmFyIG1lbnVCYXIgPSBuZXcgTWVudUJhcigpOworICAgICAgICBTdHJpbmcgbWVudVRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLkZJTEUpOworICAgICAgICBNZW51IG1lbnUgPSBuZXcgTWVudShtZW51VGl0bGUpOworICAgICAgICBuZXcgQXd0RmlsZU1lbnVNYW5hZ2VyKG1lbnUsIGZBcHBsaWNhdGlvbiwgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydFN0eWxlZFRleHQsIHN1cHBvcnRQbGFpblRleHQpOworICAgICAgICBtZW51QmFyLmFkZChtZW51KTsKKworICAgICAgICBBd3RNZW51QnVpbGRlci5nZXRJbnN0YW5jZSgpLmNyZWF0ZU1lbnVzKG1lbnVCYXIsIGZUZXh0UGFuZWwsIHRoaXMsIG1lbnVzKTsKKyAgICAgICAgc2V0TWVudUJhcihtZW51QmFyKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgaXQgaXMgT0sgdG8gc2V0IHRoZSBkb2N1bWVudCB0ZXh0IGFuZCBmaWxlIHRvCisgICAgICogc29tZXRoaW5nIGRpZmZlcmVudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY2FuQ2hhbmdlRG9jdW1lbnRzKCkgeworCisgICAgICAgIC8vIElmIHRoZSB0ZXh0IGlzIG1vZGlmaWVkLCBnaXZlIHRoZSB1c2VyIGEgY2hhbmNlIHRvCisgICAgICAgIC8vIHNhdmUgaXQuICBPdGhlcndpc2UgcmV0dXJuIHRydWUuCisKKyAgICAgICAgaWYgKGZEb2N1bWVudC5pc01vZGlmaWVkKCkpIHsKKyAgICAgICAgICAgIGJ5dGUgc2F2ZSA9IGFza1NhdmUodGhpcywgZ2V0VGl0bGUoKSk7CisgICAgICAgICAgICBpZiAoc2F2ZSA9PSBZRVMpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZG9TYXZlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2F2ZSA9PSBOTzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldERvY3VtZW50KFRleHREb2N1bWVudCBkb2N1bWVudCkgeworCisgICAgICAgIGZEb2N1bWVudCA9IGRvY3VtZW50OworICAgICAgICBmRG9jdW1lbnQuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBzZXRUaXRsZShmRG9jdW1lbnQuZ2V0VGl0bGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkb2N1bWVudCB0byBlbXB0eSB0ZXh0IHdpdGggbm8gYXNzb2NpYXRlZCBmaWxlLiAgSWYKKyAgICAgKiB0aGUgZG9jdW1lbnQgdGV4dCBpcyBub3Qgc2F2ZWQsIHByb21wdCB0aGUgdXNlciB0byBzYXZlIHRoZQorICAgICAqIHRoZSB0ZXh0IGZpcnN0LiAgSWYgdGhpcyBvcGVyYXRpb24gaXMgY2FuY2VsZWQsIHRoZSBkb2N1bWVudAorICAgICAqIGlzIHVuY2hhbmdlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb05ldygpIHsKKworICAgICAgICBpZiAoIWNhbkNoYW5nZURvY3VtZW50cygpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNldERvY3VtZW50KGZBcHBsaWNhdGlvbi5jcmVhdGVOZXdEb2N1bWVudCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9tcHQgdGhlIHVzZXIgZm9yIGEgZmlsZSBmcm9tIHdoaWNoIHRvIGxvYWQgYSB0ZXh0IGRvY3VtZW50LgorICAgICAqIElmIHRoZSBjdXJyZW50IHRleHQgaXMgbm90IHNhdmVkLCBmaXJzdCBwcm9tcHQgdGhlIHVzZXIgdG8KKyAgICAgKiBzYXZlLiAgSWYgZWl0aGVyIG9wZXJhdGlvbiBpcyBjYW5jZWxlZCBvciBmYWlscywgdGhlIGRvY3VtZW50CisgICAgICogaXMgdW5jaGFuZ2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvT3BlbigpIHsKKworICAgICAgICBpZiAoIWNhbkNoYW5nZURvY3VtZW50cygpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBUZXh0RG9jdW1lbnQgZG9jdW1lbnQgPSBmQXBwbGljYXRpb24ub3BlbkRvY3VtZW50KHRoaXMpOworCisgICAgICAgIGlmIChkb2N1bWVudCAhPSBudWxsKSB7CisgICAgICAgICAgICBzZXREb2N1bWVudChkb2N1bWVudCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9tcHQgdGhlIHVzZXIgZm9yIGEgZmlsZSBpbiB3aGljaCB0byBzYXZlIHRoZSBkb2N1bWVudCB0ZXh0LgorICAgICAqIElmIHRoaXMgb3BlcmF0aW9uIGlzIG5vdCBjYW5jZWxlZCwgc2F2ZSB0aGUgdGV4dCBpbiB0aGUgZmlsZS4KKyAgICAgKiBUaGUgZmlsZSBiZWNvbWVzIHRoaXMgZG9jdW1lbnQncyBmaWxlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGRvU2F2ZUFzKGludCBmb3JtYXQpIHsKKworICAgICAgICBTdHJpbmcgdGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuU0FWRV9USVRMRSk7CisgICAgICAgIEZpbGUgZmlsZSA9IGdldEZpbGVGcm9tRGlhbG9nKGZEb2N1bWVudC5nZXRGaWxlKCksIHRpdGxlLCB0aGlzLCBGaWxlRGlhbG9nLlNBVkUpOworICAgICAgICAKKyAgICAgICAgaWYgKGZpbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmRG9jdW1lbnQuc2V0RmlsZShmaWxlKTsKKyAgICAgICAgc2V0VGl0bGUoZkRvY3VtZW50LmdldFRpdGxlKCkpOworCisgICAgICAgIGZEb2N1bWVudC5zZXRGb3JtYXQoZm9ybWF0KTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmRG9jdW1lbnQuc2F2ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNhdmUgdGhlIHRleHQgaW4gdGhpcyBkb2N1bWVudC4gIElmIHRoZXJlIGlzIG5vIGZpbGUgYXNzb2NpYXRlZAorICAgICAqIHdpdGggdGhlIHRleHQsIHRoaXMgaXMgZXF1aXZhbGVudCB0byA8Y29kZT5kb1NhdmVBczwvY29kZT4uCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHNhdmVkLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGRvU2F2ZSgpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50LmdldEZpbGUoKSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZG9TYXZlQXMoZkRvY3VtZW50LmdldEZvcm1hdCgpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZEb2N1bWVudC5zYXZlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJpbnQgdGhlIGNvbnRlbnRzIG9mIHRoaXMgd2luZG93LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvUHJpbnQoKSB7CisKKyAgICAgICAgUHJpbnRpbmdVdGlscy51c2VyUHJpbnRUZXh0KGZEb2N1bWVudC5nZXRUZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLmdldERlZmF1bHRWYWx1ZXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRpdGxlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEF0dGVtcHQgdG8gY2xvc2UgdGhpcyB3aW5kb3cuICBJZiB0aGUgdGV4dCBoYXMgbm90IGJlZW4gc2F2ZWQsCisgICAgICogZ2l2ZSB0aGUgdXNlciBhIGNoYW5jZSB0byBzYXZlIHRoZSB0ZXh0IGJlZm9yZSBjbG9zaW5nIHRoZQorICAgICAqIHdpbmRvdy4gIElmIHRoZSB1c2VyIGNhbmNlbHMgdGhpcyBvcGVyYXRpb24sIHRoaXMgbWV0aG9kIHJldHVybnMKKyAgICAgKiBmYWxzZSBhbmQgdGhlIHdpbmRvdyBpcyBub3QgY2xvc2VkOyAgb3RoZXJ3aXNlIHRoaXMgbWV0aG9kCisgICAgICogcmV0dXJucyB0cnVlIGFuZCB0aGUgd2luZG93IGlzIGNsb3NlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBkb0Nsb3NlKCkgeworCisgICAgICAgIGlmIChjYW5DaGFuZ2VEb2N1bWVudHMoKSkgeworICAgICAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICBmQXBwbGljYXRpb24ucmVtb3ZlRG9jdW1lbnRXaW5kb3codGhpcyk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGEgZmlsZSBmcm9tIGEgZGlhbG9nLiAgSWYgdGhlIHVzZXIgZG9lcyBub3QKKyAgICAgKiBzZWxlY3QgYSBmaWxlIGluIHRoZSBkaWFsb2cgdGhpcyBtZXRob2QgcmV0dXJucyBudWxsLgorICAgICAqIEBwYXJhbSBraW5kIGVpdGhlciBGaWxlRGlhbG9nLkxPQUQgb3IgRmlsZURpYWxvZy5TQVZFLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgRmlsZSBnZXRGaWxlRnJvbURpYWxvZyhGaWxlIG9yaWdGaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGlhbG9nVGl0bGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBvd25lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGtpbmQpIHsKKyAgICAgICAgCisgICAgICAgIEZpbGVEaWFsb2cgZGlhbG9nID0gbmV3IEZpbGVEaWFsb2cob3duZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQpOworICAgICAgICBpZiAob3JpZ0ZpbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgZGlhbG9nLnNldERpcmVjdG9yeShvcmlnRmlsZS5nZXRQYXJlbnQoKSk7CisgICAgICAgICAgICBkaWFsb2cuc2V0RmlsZShvcmlnRmlsZS5nZXROYW1lKCkpOworICAgICAgICB9CisgICAgICAgIGRpYWxvZy5zaG93KCk7CisgICAgICAgIFN0cmluZyBmaWxlU3RyID0gZGlhbG9nLmdldEZpbGUoKTsKKyAgICAgICAgU3RyaW5nIGRpclN0ciA9IGRpYWxvZy5nZXREaXJlY3RvcnkoKTsKKyAgICAgICAgCisgICAgICAgIEZpbGUgZmlsZSA9IG51bGw7CisgICAgICAgIAorICAgICAgICBpZiAoZmlsZVN0ciAhPSBudWxsKSB7CisgICAgICAgICAgICBmaWxlID0gbmV3IEZpbGUoZGlyU3RyLCBmaWxlU3RyKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZpbGU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgWUVTID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIE5PID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIENBTkNFTCA9IDI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBEaWFsb2dMaXN0ZW5lciBpbXBsZW1lbnRzIEFjdGlvbkxpc3RlbmVyIHsKKworICAgICAgICBEaWFsb2cgZkRpYWxvZzsKKyAgICAgICAgQnV0dG9uIGZZZXMsIGZObywgZkNhbmNlbDsKKyAgICAgICAgYnl0ZSBmU3RhdGU7CisKKyAgICAgICAgRGlhbG9nTGlzdGVuZXIoRGlhbG9nIGRpYWxvZywKKyAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uIHllcywKKyAgICAgICAgICAgICAgICAgICAgICAgQnV0dG9uIG5vLAorICAgICAgICAgICAgICAgICAgICAgICBCdXR0b24gY2FuY2VsKSB7CisKKyAgICAgICAgICAgIGZEaWFsb2cgPSBkaWFsb2c7CisgICAgICAgICAgICBmWWVzID0geWVzOworICAgICAgICAgICAgZk5vID0gbm87CisgICAgICAgICAgICBmQ2FuY2VsID0gY2FuY2VsOworICAgICAgICAgICAgZlllcy5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIGZOby5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIGZDYW5jZWwuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgICAgICBmU3RhdGUgPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldmVudCkgeworCisgICAgICAgICAgICBPYmplY3Qgc291cmNlID0gZXZlbnQuZ2V0U291cmNlKCk7CisgICAgICAgICAgICBpZiAoc291cmNlID09IGZZZXMpIHsKKyAgICAgICAgICAgICAgICBmU3RhdGUgPSBZRVM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZk5vKSB7CisgICAgICAgICAgICAgICAgZlN0YXRlID0gTk87CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZkNhbmNlbCkgeworICAgICAgICAgICAgICAgIGZTdGF0ZSA9IENBTkNFTDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZkRpYWxvZy5kaXNwb3NlKCk7CisgICAgICAgIH0KKworICAgICAgICBieXRlIGdldFN0YXRlKCkgeworCisgICAgICAgICAgICByZXR1cm4gZlN0YXRlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRGlzcGxheSBhIGRpYWxvZyB0aGF0IGFza3Mgd2hldGhlciB0aGUgdXNlciB3YW50cyB0bworICAgICAqIHNhdmUgYSBkb2N1bWVudC4gIFBvc3NpYmxlIHJlcG9uc2VzIGFyZSBZZXMsIE5vLCBhbmQKKyAgICAgKiBDYW5jZWwuICBUaGUgcmV0dXJuZWQgdmFsdWUgaW5kaWNhdGVzIHdoaWNoIHJlc3BvbnNlCisgICAgICogd2FzIGNob3Nlbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBieXRlIGFza1NhdmUoRnJhbWUgcGFyZW50LCBTdHJpbmcgZmlsZU5hbWUpIHsKKworICAgICAgICBEaWFsb2cgZGlhbG9nID0gbmV3IERpYWxvZyhwYXJlbnQsIHRydWUpOworICAgICAgICBkaWFsb2cuc2V0TGF5b3V0KG5ldyBHcmlkTGF5b3V0KDAsIDEpKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZyBwYXR0ZXJuID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLlNBVkVfTVNHKTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSBNZXNzYWdlRm9ybWF0LmZvcm1hdChwYXR0ZXJuLCBuZXcgT2JqZWN0W10ge2ZpbGVOYW1lfSk7CisgICAgICAgIGRpYWxvZy5hZGQobmV3IExhYmVsKHRleHQsIExhYmVsLkNFTlRFUikpOworICAgICAgICAKKyAgICAgICAgQnV0dG9uIHllcyA9IG5ldyBCdXR0b24oUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLllFUykpOworICAgICAgICBCdXR0b24gbm8gPSBuZXcgQnV0dG9uKFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5OTykpOworICAgICAgICBCdXR0b24gY2FuY2VsID0gbmV3IEJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuQ0FOQ0VMKSk7CisKKyAgICAgICAgUGFuZWwgcGFuZWwgPSBuZXcgUGFuZWwoKTsKKyAgICAgICAgcGFuZWwuYWRkKHllcyk7CisgICAgICAgIHBhbmVsLmFkZChubyk7CisgICAgICAgIHBhbmVsLmFkZChjYW5jZWwpOworICAgICAgICBkaWFsb2cuYWRkKHBhbmVsKTsKKworICAgICAgICBEaWFsb2dMaXN0ZW5lciBsaXN0ZW5lciA9IG5ldyBEaWFsb2dMaXN0ZW5lcihkaWFsb2csIHllcywgbm8sIGNhbmNlbCk7CisKKyAgICAgICAgZGlhbG9nLnNldFNpemUoMjIwLCAxMzApOworICAgICAgICBkaWFsb2cuc2hvdygpOworCisgICAgICAgIHJldHVybiBsaXN0ZW5lci5nZXRTdGF0ZSgpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0F3dEZpbGVNZW51TWFuYWdlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9Bd3RGaWxlTWVudU1hbmFnZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zN2Q4MDA1MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vQXd0RmlsZU1lbnVNYW5hZ2VyLmphdmEKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS5hd3QuTWVudTsKK2ltcG9ydCBqYXZhLmF3dC5NZW51SXRlbTsKKworZmluYWwgY2xhc3MgQXd0RmlsZU1lbnVNYW5hZ2VyIGV4dGVuZHMgRmlsZU1lbnVNYW5hZ2VyIHsKKworICAgIHByaXZhdGUgTWVudSBmTWVudTsKKyAgICAKKyAgICBwdWJsaWMgQXd0RmlsZU1lbnVNYW5hZ2VyKE1lbnUgbWVudSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRBcHBsaWNhdGlvbiBhcHBsaWNhdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb2N1bWVudFdpbmRvdyBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFN0eWxlZEZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFBsYWluRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBzdXBlcihhcHBsaWNhdGlvbiwgZG9jdW1lbnQpOworICAgICAgICAKKyAgICAgICAgZk1lbnUgPSBtZW51OworICAgICAgICBjcmVhdGVJdGVtcyhzdXBwb3J0U3R5bGVkRm9ybWF0LCBzdXBwb3J0UGxhaW5Gb3JtYXQpOworICAgICAgICBmTWVudSA9IG51bGw7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBPYmplY3QgYWRkTWVudUl0ZW0oU3RyaW5nIGtleSkgeworCisgICAgICAgIE1lbnVJdGVtIGl0ZW0gPSBSZXNvdXJjZVV0aWxzLmNyZWF0ZU1lbnVJdGVtKGtleSk7CisgICAgICAgIGl0ZW0uYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGZNZW51LmFkZChpdGVtKTsKKyAgICAgICAgcmV0dXJuIGl0ZW07CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGFkZFNlcGFyYXRvcigpIHsKKyAgICAKKyAgICAgICAgZk1lbnUuYWRkKG5ldyBNZW51SXRlbSgiLSIpKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0NvZGVFZGl0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0NvZGVFZGl0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWVkZjJlZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vQ29kZUVkaXQuamF2YQpAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS5hd3QuRmlsZURpYWxvZzsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmF3dC5Ub29sa2l0OworCitpbXBvcnQgamF2YS5pby5GaWxlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsU2V0dGluZ3M7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5hd3R1aS5Bd3RNZW51QnVpbGRlcjsKKworcHVibGljIGNsYXNzIENvZGVFZGl0IGV4dGVuZHMgRWRpdEFwcGxpY2F0aW9uIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIAorICAgIHByb3RlY3RlZCBmaW5hbCBUZXh0UGFuZWxTZXR0aW5ncyBmU2V0dGluZ3M7CisgICAgCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKworICAgICAgICBpZiAoYXJncy5sZW5ndGggPiAwICYmIGFyZ3NbMF0uZXF1YWxzKCItc3dpbmciKSkgeworICAgICAgICAgICAgbmV3IGNvbS5pYm0ucmljaHRleHQuc3dpbmdkZW1vLlN3aW5nQ29kZUVkaXQoYXJncywxKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG5ldyBDb2RlRWRpdChhcmdzLCAwKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBDb2RlRWRpdChTdHJpbmdbXSBhcmdzLCBpbnQgc3RhcnQpIHsKKworICAgICAgICBzdXBlcihUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCksCisgICAgICAgICAgICAgIFRleHREb2N1bWVudC5QTEFJTl9URVhUKTsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFN0eWxlID0gbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlNJWkUsIG5ldyBGbG9hdCgxMikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWRkQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuRkFNSUxZLCAiTW9ub3NwYWNlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGZTZXR0aW5ncyA9IFRleHRQYW5lbC5nZXREZWZhdWx0U2V0dGluZ3MoKTsKKyAgICAgICAgZlNldHRpbmdzLnNldFdyYXBzKGZhbHNlKTsKKyAgICAgICAgZlNldHRpbmdzLmFkZERlZmF1bHRWYWx1ZXMoZGVmYXVsdFN0eWxlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSBzdGFydCkgeworICAgICAgICAgICAgZG9OZXdXaW5kb3coKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGJvb2xlYW4gb3BlbmVkQURvY3VtZW50ID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpPXN0YXJ0OyBpIDwgYXJncy5sZW5ndGg7IGkrKykgeworCisgICAgICAgICAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoYXJnc1tpXSk7CisgICAgICAgICAgICAgICAgVGV4dERvY3VtZW50IGRvY3VtZW50ID0gbnVsbDsKKyAgICAgICAgICAgICAgICBUaHJvd2FibGUgZXJyb3IgPSBudWxsOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50ID0gVGV4dERvY3VtZW50LmNyZWF0ZUZyb21GaWxlKGZpbGUsIFRleHREb2N1bWVudC5QTEFJTl9URVhUKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZXJyb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBlcnJvci5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFkZERvY3VtZW50KGRvY3VtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgb3BlbmVkQURvY3VtZW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIW9wZW5lZEFEb2N1bWVudCkgeworICAgICAgICAgICAgICAgIHF1aXQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgRG9jdW1lbnRXaW5kb3cgY3JlYXRlRG9jdW1lbnRXaW5kb3coVGV4dERvY3VtZW50IGRvY3VtZW50KSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBBd3REb2N1bWVudFdpbmRvdyh0aGlzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN5bnRheENvbG9yZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVzKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnRbXSBtZW51cyA9IHsgQXd0TWVudUJ1aWxkZXIuRURJVCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXd0TWVudUJ1aWxkZXIuQklESSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBd3RNZW51QnVpbGRlci5BQk9VVCB9OworCisgICAgcHVibGljIFRleHREb2N1bWVudCBvcGVuRG9jdW1lbnQoRnJhbWUgZGlhbG9nUGFyZW50KSB7CisgICAgCisgICAgICAgIFN0cmluZyB0aXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5PUEVOX1RJVExFKTsKKyAgICAgICAgCisgICAgICAgIEZpbGUgZmlsZSA9IEF3dERvY3VtZW50V2luZG93LmdldEZpbGVGcm9tRGlhbG9nKG51bGwsIHRpdGxlLCBkaWFsb2dQYXJlbnQsIEZpbGVEaWFsb2cuTE9BRCk7CisgICAgICAgIGlmIChmaWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFRleHREb2N1bWVudC5jcmVhdGVGcm9tRmlsZShmaWxlLCBUZXh0RG9jdW1lbnQuUExBSU5fVEVYVCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0RvY3VtZW50V2luZG93LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0RvY3VtZW50V2luZG93LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmM2OWYwMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRG9jdW1lbnRXaW5kb3cuamF2YQpAQCAtMCwwICsxLDMyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmRlbW87CisKK3B1YmxpYyBpbnRlcmZhY2UgRG9jdW1lbnRXaW5kb3cgeworCisgICAgcHVibGljIHZvaWQgZG9OZXcoKTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBkb09wZW4oKTsKKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBkb0Nsb3NlKCk7CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gZG9TYXZlKCk7CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gZG9TYXZlQXMoaW50IGZvcm1hdCk7CisgICAgCisgICAgcHVibGljIHZvaWQgZG9QcmludCgpOworICAgIAorICAgIHB1YmxpYyB2b2lkIHNldFNpemUoaW50IHdkLCBpbnQgaHQpOworICAgIAorICAgIHB1YmxpYyB2b2lkIHNob3coKTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0VkaXRBcHBsaWNhdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9FZGl0QXBwbGljYXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMzYzMGU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9FZGl0QXBwbGljYXRpb24uamF2YQpAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZDsKKworaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OworCitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIEVkaXRBcHBsaWNhdGlvbiB7CisKKyAgICBwcml2YXRlIENsaXBib2FyZCBmQ2xpcGJvYXJkOworICAgIHByaXZhdGUgaW50IGZEZWZhdWx0Rm9ybWF0OworICAgIHByaXZhdGUgVmVjdG9yIGZXaW5kb3dzID0gbmV3IFZlY3RvcigpOworICAgIHByaXZhdGUgaW50IGZVbnRpdGxlZENvdW50ID0gMDsKKyAgICAKKyAgICBwcm90ZWN0ZWQgRWRpdEFwcGxpY2F0aW9uKENsaXBib2FyZCBjbGlwYm9hcmQsIGludCBkZWZhdWx0Rm9ybWF0KSB7CisgICAgICAgIAorICAgICAgICBmQ2xpcGJvYXJkID0gY2xpcGJvYXJkOworICAgICAgICBmRGVmYXVsdEZvcm1hdCA9IGRlZmF1bHRGb3JtYXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE5ldyBkb2N1bWVudHMgYXJlIG5hbWVkICJVbnRpdGxlZCAxIiwgIlVudGl0bGVkIDIiLCBldGMuICBUaGlzCisgICAgICogbWV0aG9kIHJldHVybnMgdGhlIGFwcHJvcHJpYXRlIG5hbWUgZm9yIHRoZSBuZXh0IG5ldyBkb2N1bWVudC4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IG5ldyBkb2N1bWVudCBuYW1lCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0TmV4dE5ld05hbWUoKSB7CisKKyAgICAgICAgZlVudGl0bGVkQ291bnQgKz0gMTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuVU5USVRMRURfTVNHKTsKKyAgICAgICAgcmV0dXJuIE1lc3NhZ2VGb3JtYXQuZm9ybWF0KHBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117bmV3IEludGVnZXIoZlVudGl0bGVkQ291bnQpfSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmaW5hbCBDbGlwYm9hcmQgZ2V0Q2xpcGJvYXJkKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZDbGlwYm9hcmQ7CisgICAgfQorCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IERvY3VtZW50V2luZG93IGNyZWF0ZURvY3VtZW50V2luZG93KFRleHREb2N1bWVudCBkb2N1bWVudCk7CisgICAgCisgICAgcHVibGljIGFic3RyYWN0IFRleHREb2N1bWVudCBvcGVuRG9jdW1lbnQoRnJhbWUgZGlhbG9nUGFyZW50KTsKKyAgICAKKyAgICBwdWJsaWMgZmluYWwgVGV4dERvY3VtZW50IGNyZWF0ZU5ld0RvY3VtZW50KCkgeworICAgIAorICAgICAgICBTdHJpbmcgbmFtZSA9IGdldE5leHROZXdOYW1lKCk7CisgICAgICAgIGludCBmb3JtYXQgPSBmRGVmYXVsdEZvcm1hdDsKKyAgICAgICAgcmV0dXJuIFRleHREb2N1bWVudC5jcmVhdGVFbXB0eShuYW1lLCBmb3JtYXQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBkb05ld1dpbmRvdygpIHsKKyAgICAgICAgCisgICAgICAgIGFkZERvY3VtZW50KFRleHREb2N1bWVudC5jcmVhdGVFbXB0eShnZXROZXh0TmV3TmFtZSgpLCBmRGVmYXVsdEZvcm1hdCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBhZGREb2N1bWVudChUZXh0RG9jdW1lbnQgZG9jdW1lbnQpIHsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIERvY3VtZW50V2luZG93IHdpbmRvdyA9IGNyZWF0ZURvY3VtZW50V2luZG93KGRvY3VtZW50KTsKKworICAgICAgICB3aW5kb3cuc2V0U2l6ZSg1MDAsIDQwMCk7CisgICAgICAgIHdpbmRvdy5zaG93KCk7CisgICAgICAgIGZXaW5kb3dzLmFkZEVsZW1lbnQod2luZG93KTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmVtb3ZlIGRvY3VtZW50IGZyb20gbGlzdCBvZiBkb2N1bWVudHMuICBRdWl0IGFwcGxpY2F0aW9uIGlmIGxpc3QKKyAgICAgKiBsZW5ndGggZmFsbHMgdG8gemVyby4KKyAgICAgKiBAcGFyYW0gd2luZG93IHdpbmRvdyBvZiB0aGUgZG9jdW1lbnQgdG8gcmVtb3ZlCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHZvaWQgcmVtb3ZlRG9jdW1lbnRXaW5kb3coRG9jdW1lbnRXaW5kb3cgd2luZG93KSB7CisKKyAgICAgICAgZldpbmRvd3MucmVtb3ZlRWxlbWVudCh3aW5kb3cpOworICAgICAgICBpZiAoZldpbmRvd3MuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBxdWl0KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHbyB0aHJvdWdoIGxpc3Qgb2YgZG9jdW1lbnRzIGFuZCBhdHRlbXB0IHRvIGNsb3NlIGVhY2ggZG9jdW1lbnQuCisgICAgICogSWYgYWxsIGRvY3VtZW50cyBjbG9zZSBzdWNjZXNzZnVsbHksIHRoZW4gZXhpdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgdm9pZCBkb0V4aXQoKSB7CisKKyAgICAgICAgLy8gQ2xvbmUgZldpbmRvd3Mgc2luY2UgaXQgY2FuIGdldCBtb2RpZmllZCB3aGlsZSBiZWluZyB0cmF2ZXJzZWQuCisgICAgICAgIFZlY3RvciB3aW5kb3dzID0gKFZlY3RvcikgZldpbmRvd3MuY2xvbmUoKTsKKworICAgICAgICBpbnQgc2l6ZSA9IHdpbmRvd3Muc2l6ZSgpOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgICAgIERvY3VtZW50V2luZG93IHdpbmRvdyA9IChEb2N1bWVudFdpbmRvdykgd2luZG93cy5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy5kb0Nsb3NlKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBxdWl0IHdpbGwgYmUgY2FsbGVkIHdoZW4gbGFzdCBkb2N1bWVudCByZW1vdmVzIGl0c2VsZgorICAgIH0KKworICAgIC8qKgorICAgICAqIENhbGxlZCB3aGVuIGxhc3QgZG9jdW1lbnQgd2luZG93IGNsb3Nlcy4gIERlZmF1bHQgaW1wbGVtZW50YXRpb24KKyAgICAgKiBjYWxscyBTeXN0ZW0uZXhpdC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBxdWl0KCkgeworCisgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRWRpdERlbW8uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRWRpdERlbW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNTcyYWVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9FZGl0RGVtby5qYXZhCkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmRlbW87CisKK2ltcG9ydCBqYXZhLmF3dC5GaWxlRGlhbG9nOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LlRvb2xraXQ7CisKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS5pby5TdHJlYW1Db3JydXB0ZWRFeGNlcHRpb247CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsOworCisvKioKKyAqIEVkaXREZW1vIGlzIHRoZSBtYWluIGNsYXNzIGZvciBhIHNpbXBsZSwgbXVsdGlwbGUtZG9jdW1lbnQKKyAqIHN0eWxlZCB0ZXh0IGVkaXRvciwgYnVpbHQgd2l0aCB0aGUgY2xhc3NlcyBpbiB0aGUgdGV4dHBhbmVsCisgKiBhbmQgdGV4dGZyYW1lIHBhY2thZ2VzLgorICogPHA+CisgKiBUbyBydW4gRWRpdERlbW8sIHR5cGU6CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogamF2YSBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdERlbW8gW2ZpbGUxXSBbZmlsZTJdIFsuLi5dCisgKiA8L3ByZT48L2Jsb2NrcXVvdGU+CisgKiB3aGVyZSB0aGUgZmlsZW5hbWVzIGFyZSBmaWxlcyBzYXZlZCB3aXRoIHRoaXMgZGVtby4KKyAqLworcHVibGljIGNsYXNzIEVkaXREZW1vIGV4dGVuZHMgRWRpdEFwcGxpY2F0aW9uIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgCisgICAgcHVibGljIHN0YXRpYyBzeW5jaHJvbml6ZWQgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKworICAgICAgICBpZiAoYXJncy5sZW5ndGggPiAwICYmIGFyZ3NbMF0uZXF1YWxzKCItc3dpbmciKSkgeworICAgICAgICAgICAgbmV3IGNvbS5pYm0ucmljaHRleHQuc3dpbmdkZW1vLlN3aW5nRWRpdERlbW8oYXJncywxKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG5ldyBFZGl0RGVtbyhhcmdzLCAwKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCBFZGl0RGVtbyhTdHJpbmdbXSBhcmdzLCBpbnQgc3RhcnQpIHsKKworICAgICAgICBzdXBlcihUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCksIAorICAgICAgICAgICAgICBUZXh0RG9jdW1lbnQuU1RZTEVEX1RFWFQpOworCisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSBzdGFydCkgeworICAgICAgICAgICAgZG9OZXdXaW5kb3coKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGJvb2xlYW4gb3BlbmVkQURvY3VtZW50ID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGludCBpPXN0YXJ0OyBpIDwgYXJncy5sZW5ndGg7IGkrKykgeworCisgICAgICAgICAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoYXJnc1tpXSk7CisgICAgICAgICAgICAgICAgVGV4dERvY3VtZW50IGRvY3VtZW50ID0gZ2V0RG9jdW1lbnRGcm9tRmlsZShmaWxlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBhZGREb2N1bWVudChkb2N1bWVudCk7CisgICAgICAgICAgICAgICAgICAgIG9wZW5lZEFEb2N1bWVudCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFvcGVuZWRBRG9jdW1lbnQpIHsKKyAgICAgICAgICAgICAgICBxdWl0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBUZXh0RG9jdW1lbnQgZ2V0RG9jdW1lbnRGcm9tRmlsZShGaWxlIGZpbGUpIHsKKyAgICAKKyAgICAgICAgRXhjZXB0aW9uIGV4Y2VwdGlvbiA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIFRleHREb2N1bWVudC5jcmVhdGVGcm9tRmlsZShmaWxlLCBUZXh0RG9jdW1lbnQuU1RZTEVEX1RFWFQpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKFN0cmVhbUNvcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQuY3JlYXRlRnJvbUZpbGUoZmlsZSwgVGV4dERvY3VtZW50LlBMQUlOX1RFWFQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goRXhjZXB0aW9uIGUyKSB7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gZTI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGV4Y2VwdGlvbiA9IGU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiRXhjZXB0aW9uIG9wZW5pbmcgZmlsZS4iKTsKKyAgICAgICAgZXhjZXB0aW9uLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBEb2N1bWVudFdpbmRvdyBjcmVhdGVEb2N1bWVudFdpbmRvdyhUZXh0RG9jdW1lbnQgZG9jdW1lbnQpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgQXd0RG9jdW1lbnRXaW5kb3codGhpcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dFBhbmVsLmdldERlZmF1bHRTZXR0aW5ncygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBUZXh0RG9jdW1lbnQgb3BlbkRvY3VtZW50KEZyYW1lIGRpYWxvZ1BhcmVudCkgeworICAgIAorICAgICAgICBTdHJpbmcgdGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuT1BFTl9USVRMRSk7CisgICAgICAgIEZpbGUgZmlsZSA9IEF3dERvY3VtZW50V2luZG93LmdldEZpbGVGcm9tRGlhbG9nKG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dQYXJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVEaWFsb2cuTE9BRCk7CisgICAgICAgIGlmIChmaWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBnZXREb2N1bWVudEZyb21GaWxlKGZpbGUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9FZGl0b3JSZXNvdXJjZXMuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vRWRpdG9yUmVzb3VyY2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDk1ZmRlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0VkaXRvclJlc291cmNlcy5qYXZhCkBAIC0wLDAgKzEsMTA1IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmRlbW87CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworCitwdWJsaWMgZmluYWwgY2xhc3MgRWRpdG9yUmVzb3VyY2VzIGV4dGVuZHMgTGlzdFJlc291cmNlQnVuZGxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLy8gbWVudSBuYW1lcyAtIHZhbHVlcyBhcmUgU3RyaW5ncworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEZJTEUgPSAiRmlsZSI7CisKKyAgICAvLyBmaWxlIG1lbnUgaXRlbXMgLSB2YWx1ZXMgYXJlIE1lbnVEYXRhIGluc3RhbmNlcworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE5FVyA9ICJOZXciOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE5FV19XSU5ET1cgPSAiTmV3IFdpbmRvdyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1BFTiA9ICJPcGVuLi4uIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTQVZFID0gIlNhdmUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNBVkVfQVMgPSAiU2F2ZSBBcy4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0FWRV9BU19TVFlMRUQgPSAiU2F2ZSBBcyBTdHlsZWQgVGV4dC4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0FWRV9BU19URVhUID0gIlNhdmUgQXMgUGxhaW4gVGV4dC4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0xPU0UgPSAiQ2xvc2UiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBSSU5UID0gIlByaW50IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFWElUID0gIkV4aXQiOworCisgICAgLy8gYnV0dG9uIGxhYmVscyAtIHZhbHVlcyBhcmUgU3RyaW5ncworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFlFUyA9ICJZZXMiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE5PID0gIk5vIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDQU5DRUwgPSAiQ2FuY2VsIjsKKworICAgIC8vIG1lc3NhZ2Ugc3RyaW5ncyAtIHZhbHVlcyBhcmUgU3RyaW5ncworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNBVkVfTVNHID0gIlNhdmUgezB9IGJlZm9yZSBjbG9zaW5nPyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVU5USVRMRURfTVNHID0gIlVudGl0bGVkIHswfSI7CisKKyAgICAvLyB3aW5kb3cgYW5kIGRpYWxvZyB0aXRsZXMgLSB2YWx1ZXMgYXJlIFN0cmluZ3MKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBPUEVOX1RJVExFID0gIk9wZW4gRG9jdW1lbnQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNBVkVfVElUTEUgPSAiU2F2ZSBBcyI7CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdGhhdCByZXR1cm5zIGEgdHdvLWVsZW1lbnQKKyAgICAgKiBPYmplY3QgYXJyYXkuICBUaGUgZmlyc3QgZWxlbWVudCBpcyBuYW1lLCB0aGUKKyAgICAgKiBzZWNvbmQgaXMgYSBNZW51RGF0YSBpbnN0YW5jZSB3aXRoIHRoZSBnaXZlbgorICAgICAqIHNob3J0Y3V0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIG1ha2VFbnRyeShTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBzaG9ydEN1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGtleUNvZGUpIHsKKworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgbmFtZSwgbmV3IE1lbnVEYXRhKG5hbWUsIHNob3J0Q3V0LCBrZXlDb2RlKSB9OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0aGF0IHJldHVybnMgYSB0d28tZWxlbWVudAorICAgICAqIE9iamVjdCBhcnJheS4gIFRoZSBmaXJzdCBlbGVtZW50IGlzIG5hbWUsIHRoZQorICAgICAqIHNlY29uZCBpcyBhIE1lbnVEYXRhIGluc3RhbmNlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIG1ha2VFbnRyeShTdHJpbmcgbmFtZSkgeworCisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W10geyBuYW1lLCBuZXcgTWVudURhdGEobmFtZSkgfTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdGhhdCByZXR1cm5zIGEgdHdvLWVsZW1lbnQKKyAgICAgKiBPYmplY3QgYXJyYXkgaW4gd2hpY2ggYm90aCBlbGVtZW50cyBhcmUgb2JqLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIGR1cGxpY2F0ZShPYmplY3Qgb2JqKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXSB7IG9iaiwgb2JqIH07CisgICAgfQorCisgICAgcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbXVtdIHsKKyAgICAgICAgICAgIGR1cGxpY2F0ZShGSUxFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShZRVMpLAorICAgICAgICAgICAgZHVwbGljYXRlKE5PKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShDQU5DRUwpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNBVkVfTVNHKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTQVZFX1RJVExFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShPUEVOX1RJVExFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShVTlRJVExFRF9NU0cpLAorICAgICAgICAgICAgbWFrZUVudHJ5KE5FVywgJ24nLCBLZXlFdmVudC5WS19OKSwKKyAgICAgICAgICAgIG1ha2VFbnRyeShORVdfV0lORE9XKSwKKyAgICAgICAgICAgIG1ha2VFbnRyeShPUEVOLCAnbycsIEtleUV2ZW50LlZLX08pLAorICAgICAgICAgICAgbWFrZUVudHJ5KFNBVkUsICdzJywgS2V5RXZlbnQuVktfUyksCisgICAgICAgICAgICBtYWtlRW50cnkoU0FWRV9BUyksCisgICAgICAgICAgICBtYWtlRW50cnkoU0FWRV9BU19TVFlMRUQpLAorICAgICAgICAgICAgbWFrZUVudHJ5KFNBVkVfQVNfVEVYVCksCisgICAgICAgICAgICBtYWtlRW50cnkoQ0xPU0UpLAorICAgICAgICAgICAgbWFrZUVudHJ5KFBSSU5UKSwKKyAgICAgICAgICAgIG1ha2VFbnRyeShFWElUKSwKKyAgICAgICAgfTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL0ZpbGVNZW51TWFuYWdlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9GaWxlTWVudU1hbmFnZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNzBjZjAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9GaWxlTWVudU1hbmFnZXIuamF2YQpAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CisKKy8qKgorICogVGhpcyBjbGFzcyBjcmVhdGVzIGEgRmlsZSBtZW51IGFuZCBtYW5hZ2VzIHVzZXIgaW50ZXJhY3Rpb25zCisgKiB3aXRoIHRoZSBtZW51LgorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRmlsZU1lbnVNYW5hZ2VyIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIEVkaXRBcHBsaWNhdGlvbiBmQXBwbGljYXRpb247CisgICAgcHJpdmF0ZSBEb2N1bWVudFdpbmRvdyBmRG9jdW1lbnRXaW5kb3c7CisgICAgcHJpdmF0ZSBPYmplY3QgZk5ldywgZk5ld1dpbmRvdywgZk9wZW4sIGZTYXZlOworICAgIHByaXZhdGUgT2JqZWN0IGZTYXZlQXNTdHlsZWQsIGZTYXZlQXNUZXh0LCBmQ2xvc2UsIGZQcmludCwgZkV4aXQ7CisKKyAgICBwcm90ZWN0ZWQgRmlsZU1lbnVNYW5hZ2VyKEVkaXRBcHBsaWNhdGlvbiBhcHBsaWNhdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb2N1bWVudFdpbmRvdyBkb2N1bWVudCkgeworCisgICAgICAgIGZBcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uOworICAgICAgICBmRG9jdW1lbnRXaW5kb3cgPSBkb2N1bWVudDsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGZpbmFsIHZvaWQgY3JlYXRlSXRlbXMoYm9vbGVhbiBzdXBwb3J0U3R5bGVkRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFBsYWluRm9ybWF0KSB7CisgICAgICAgIAorICAgICAgICBpZiAoIXN1cHBvcnRTdHlsZWRGb3JtYXQgJiYgIXN1cHBvcnRQbGFpbkZvcm1hdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiTXVzdCBzdXBwb3J0IGF0IGxlYXN0IG9uZSBmb3JtYXQuIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZOZXcgPSBhZGRNZW51SXRlbShFZGl0b3JSZXNvdXJjZXMuTkVXKTsKKyAgICAgICAgZk5ld1dpbmRvdyA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5ORVdfV0lORE9XKTsKKyAgICAgICAgCisgICAgICAgIGFkZFNlcGFyYXRvcigpOworCisgICAgICAgIGZPcGVuID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLk9QRU4pOworCisgICAgICAgIGZTYXZlID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLlNBVkUpOworICAgICAgICAKKyAgICAgICAgaWYgKHN1cHBvcnRTdHlsZWRGb3JtYXQpIHsKKyAgICAgICAgICAgIGlmIChzdXBwb3J0UGxhaW5Gb3JtYXQpIHsKKyAgICAgICAgICAgICAgICBmU2F2ZUFzU3R5bGVkID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLlNBVkVfQVNfU1RZTEVEKTsKKyAgICAgICAgICAgICAgICBmU2F2ZUFzVGV4dCA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5TQVZFX0FTX1RFWFQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZlNhdmVBc1N0eWxlZCA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5TQVZFX0FTKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZTYXZlQXNUZXh0ID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLlNBVkVfQVMpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBhZGRTZXBhcmF0b3IoKTsKKyAgICAgICAgZkNsb3NlID0gYWRkTWVudUl0ZW0oRWRpdG9yUmVzb3VyY2VzLkNMT1NFKTsKKyAgICAgICAgYWRkU2VwYXJhdG9yKCk7CisgICAgICAgIGZQcmludCA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5QUklOVCk7CisgICAgICAgIGFkZFNlcGFyYXRvcigpOworICAgICAgICBmRXhpdCA9IGFkZE1lbnVJdGVtKEVkaXRvclJlc291cmNlcy5FWElUKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IE9iamVjdCBhZGRNZW51SXRlbShTdHJpbmcga2V5KTsKKworICAgIHByb3RlY3RlZCBhYnN0cmFjdCB2b2lkIGFkZFNlcGFyYXRvcigpOworICAgIAorICAgIHB1YmxpYyBmaW5hbCB2b2lkIGFjdGlvblBlcmZvcm1lZChBY3Rpb25FdmVudCBldmVudCkgeworCisgICAgICAgIE9iamVjdCBzb3VyY2UgPSBldmVudC5nZXRTb3VyY2UoKTsKKworICAgICAgICBpZiAoc291cmNlID09IGZOZXcpIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFdpbmRvdy5kb05ldygpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmTmV3V2luZG93KSB7CisgICAgICAgICAgICBmQXBwbGljYXRpb24uZG9OZXdXaW5kb3coKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZk9wZW4pIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFdpbmRvdy5kb09wZW4oKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZkNsb3NlKSB7CisgICAgICAgICAgICBmRG9jdW1lbnRXaW5kb3cuZG9DbG9zZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmU2F2ZSkgeworICAgICAgICAgICAgZkRvY3VtZW50V2luZG93LmRvU2F2ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmU2F2ZUFzU3R5bGVkKSB7CisgICAgICAgICAgICBmRG9jdW1lbnRXaW5kb3cuZG9TYXZlQXMoVGV4dERvY3VtZW50LlNUWUxFRF9URVhUKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZlNhdmVBc1RleHQpIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFdpbmRvdy5kb1NhdmVBcyhUZXh0RG9jdW1lbnQuUExBSU5fVEVYVCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZQcmludCkgeworICAgICAgICAgICAgZkRvY3VtZW50V2luZG93LmRvUHJpbnQoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzb3VyY2UgPT0gZkV4aXQpIHsKKyAgICAgICAgICAgIGZBcHBsaWNhdGlvbi5kb0V4aXQoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBldmVudCBzb3VyY2U6ICIgKyBzb3VyY2UpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vTWVudURhdGEuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vTWVudURhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZDM0NTljCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9NZW51RGF0YS5qYXZhCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuZGVtbzsKKworcHVibGljIGZpbmFsIGNsYXNzIE1lbnVEYXRhIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBTdHJpbmcgZk5hbWU7CisgICAgcHJpdmF0ZSBib29sZWFuIGZIYXNTaG9ydGN1dDsKKyAgICBwcml2YXRlIGNoYXIgZlNob3J0Y3V0OworICAgIHByaXZhdGUgaW50IGZTaG9ydGN1dEtleUNvZGU7CisKKyAgICBwdWJsaWMgTWVudURhdGEoU3RyaW5nIG5hbWUpIHsKKworICAgICAgICBmTmFtZSA9IG5hbWU7CisgICAgICAgIGZIYXNTaG9ydGN1dCA9IGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBNZW51RGF0YShTdHJpbmcgbmFtZSwgY2hhciBjaCwgaW50IGtleUNvZGUpIHsKKworICAgICAgICBmTmFtZSA9IG5hbWU7CisgICAgICAgIGZIYXNTaG9ydGN1dCA9IHRydWU7CisgICAgICAgIGZTaG9ydGN1dCA9IGNoOworICAgICAgICBmU2hvcnRjdXRLZXlDb2RlID0ga2V5Q29kZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZOYW1lOworICAgIH0KKworICAgIHB1YmxpYyBjaGFyIGdldFNob3J0Y3V0KCkgeworCisgICAgICAgIGlmICghZkhhc1Nob3J0Y3V0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgZG9lc24ndCBoYXZlIHNob3J0Y3V0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZTaG9ydGN1dDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRTaG9ydGN1dEtleUNvZGUoKSB7CisgICAgCisgICAgICAgIHJldHVybiBmU2hvcnRjdXRLZXlDb2RlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGhhc1Nob3J0Y3V0KCkgeworCisgICAgICAgIHJldHVybiBmSGFzU2hvcnRjdXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vUmVzb3VyY2VVdGlscy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9SZXNvdXJjZVV0aWxzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzE3YTY2MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vUmVzb3VyY2VVdGlscy5qYXZhCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuZGVtbzsKKworaW1wb3J0IGphdmEuYXd0Lk1lbnVJdGVtOworaW1wb3J0IGphdmEuYXd0Lk1lbnVTaG9ydGN1dDsKKworaW1wb3J0IGphdmEudXRpbC5NaXNzaW5nUmVzb3VyY2VFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCisvKioKKyAqIFV0aWxpdHkgY2xhc3MgZm9yIGRlYWxpbmcgd2l0aCByZXNvdXJjZSBkYXRhLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgUmVzb3VyY2VVdGlscyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIFJlc291cmNlQnVuZGxlIEJVTkRMRTsKKyAgICBzdGF0aWMgeworICAgICAgICBTdHJpbmcgYnVuZGxlTmFtZSA9ICJjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdG9yUmVzb3VyY2VzIjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEJVTkRMRSA9IFJlc291cmNlQnVuZGxlLmdldEJ1bmRsZShidW5kbGVOYW1lKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChNaXNzaW5nUmVzb3VyY2VFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3VsZG4ndCBsb2FkICIgKyBidW5kbGVOYW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiOyAgRXhjZXB0aW9uOiAiICsgZSk7CisgICAgICAgICAgICBCVU5ETEUgPSBuZXcgRWRpdG9yUmVzb3VyY2VzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRTdHJpbmcoU3RyaW5nIGtleSkgeworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gQlVORExFLmdldFN0cmluZyhrZXkpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4ga2V5OworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBNZW51RGF0YSBnZXRNZW51RGF0YShTdHJpbmcga2V5KSB7CisgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gKE1lbnVEYXRhKSBCVU5ETEUuZ2V0T2JqZWN0KGtleSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTWVudURhdGEoa2V5KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgCisgICAgcHVibGljIHN0YXRpYyBNZW51SXRlbSBjcmVhdGVNZW51SXRlbShTdHJpbmcga2V5KSB7CisKKyAgICAgICAgTWVudURhdGEgbWVudURhdGEgPSBnZXRNZW51RGF0YShrZXkpOworCisgICAgICAgIGlmIChtZW51RGF0YS5oYXNTaG9ydGN1dCgpKSB7CisgICAgICAgICAgICBNZW51U2hvcnRjdXQgc2hvcnRjdXQgPSBuZXcgTWVudVNob3J0Y3V0KG1lbnVEYXRhLmdldFNob3J0Y3V0KCkpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBNZW51SXRlbShtZW51RGF0YS5nZXROYW1lKCksIHNob3J0Y3V0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTWVudUl0ZW0obWVudURhdGEuZ2V0TmFtZSgpKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL1N5bnRheENvbG9yZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vU3ludGF4Q29sb3Jlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU4YWE4ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL1N5bnRheENvbG9yZXIuamF2YQpAQCAtMCwwICsxLDI4NiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTktMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LmRlbW87CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLlRleHRGcmFtZTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbEV2ZW50OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbExpc3RlbmVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93RXZlbnQ7CisKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS50ZXh0LkNvbGxhdGlvbktleTsKK2ltcG9ydCBqYXZhLnRleHQuQ29sbGF0b3I7CisKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworLyoqCisgKiBTeW50YXhDb2xvcmVyIGlzIGEgVGV4dFBhbmVsTGlzdGVuZXIgdGhhdCBhcHBsaWVzIGEgc3R5bGUKKyAqIHRvIGEgc2V0IG9mIHdvcmRzIGluIHRoZSBUZXh0UGFuZWwuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBTeW50YXhDb2xvcmVyIGltcGxlbWVudHMgVGV4dFBhbmVsTGlzdGVuZXIgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgQ29sb3JlciB7CisgICAgICAgIAorICAgICAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgICAgICBwcml2YXRlIGludCBmU3RhcnQ7CisgICAgICAgIHByaXZhdGUgSGFzaHRhYmxlIGZTdHlsZU1hcDsKKyAgICAgICAgcHJpdmF0ZSBDb2xsYXRvciBmQ29sbGF0b3IgPSBDb2xsYXRvci5nZXRJbnN0YW5jZSgpOworICAgICAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgZkJyZWFrSXRlciA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZlRleHQ7CisgICAgICAgIHByaXZhdGUgaW50IGZDdXJyZW50U3RhcnQ7CisgICAgICAgIHByaXZhdGUgaW50IGZDdXJyZW50TGltaXQ7CisgICAgICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZDdXJyZW50U3R5bGU7CisgICAgICAgIAorICAgICAgICBDb2xvcmVyKEhhc2h0YWJsZSBzdHlsZXMpIHsKKworICAgICAgICAgICAgZlN0eWxlTWFwID0gbmV3IEhhc2h0YWJsZShzdHlsZXMuc2l6ZSgpKTsKKworICAgICAgICAgICAgRW51bWVyYXRpb24gZSA9IHN0eWxlcy5rZXlzKCk7CisgICAgICAgICAgICB3aGlsZSAoZS5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrID0gKFN0cmluZykgZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgICAgIGZTdHlsZU1hcC5wdXQoZkNvbGxhdG9yLmdldENvbGxhdGlvbktleShrKSwgc3R5bGVzLmdldChrKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgc2V0KENoYXJhY3Rlckl0ZXJhdG9yIHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZTdGFydCA9IHN0YXJ0OworCisgICAgICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKGxpbWl0LXN0YXJ0KTsKKyAgICAgICAgICAgIGZvciAoY2hhciBjPXRleHQuc2V0SW5kZXgoc3RhcnQpOyB0ZXh0LmdldEluZGV4KCkgIT0gbGltaXQ7IGM9dGV4dC5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQoYyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmVGV4dCA9IHNiLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBmQ3VycmVudFN0YXJ0ID0gZkN1cnJlbnRMaW1pdCA9IDA7CisgICAgICAgICAgICBmQ3VycmVudFN0eWxlID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZCcmVha0l0ZXIuc2V0VGV4dChmVGV4dCk7CisgICAgICAgICAgICBmQnJlYWtJdGVyLmZpcnN0KCk7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBib29sZWFuIG5leHQoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChmQ3VycmVudExpbWl0ID09IGZUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZlRleHQgPSBudWxsOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZkN1cnJlbnRTdGFydCA9IGZDdXJyZW50TGltaXQ7CisgICAgICAgICAgICBmQ3VycmVudExpbWl0ID0gZkJyZWFrSXRlci5uZXh0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFN0cmluZyB3b3JkID0gZlRleHQuc3Vic3RyaW5nKGZDdXJyZW50U3RhcnQsIGZDdXJyZW50TGltaXQpOworICAgICAgICAgICAgQ29sbGF0aW9uS2V5IGNrID0gZkNvbGxhdG9yLmdldENvbGxhdGlvbktleSh3b3JkKTsKKyAgICAgICAgICAgIGZDdXJyZW50U3R5bGUgPSAoQXR0cmlidXRlTWFwKSBmU3R5bGVNYXAuZ2V0KGNrKTsKKyAgICAgICAgICAgIGlmIChmQ3VycmVudFN0eWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmQ3VycmVudFN0eWxlID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaW50IGN1cnJlbnRTdGFydCgpIHsKKyAgICAgICAgICAgIHJldHVybiBmQ3VycmVudFN0YXJ0ICsgZlN0YXJ0OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbnQgY3VycmVudExpbWl0KCkgeworICAgICAgICAgICAgcmV0dXJuIGZDdXJyZW50TGltaXQgKyBmU3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEF0dHJpYnV0ZU1hcCBjdXJyZW50U3R5bGUoKSB7CisgICAgICAgICAgICByZXR1cm4gZkN1cnJlbnRTdHlsZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgQnJlYWtJdGVyYXRvciBmQnJlYWtJdGVyID0gQnJlYWtJdGVyYXRvci5nZXRXb3JkSW5zdGFuY2UoKTsKKyAgICBwcml2YXRlIENvbG9yZXIgZkNvbG9yZXI7CisgICAgcHJpdmF0ZSBib29sZWFuIGZNb2RpZnlpbmcgPSBmYWxzZTsKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmRGVmYXVsdEtleXdvcmRTdHlsZSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgIHByaXZhdGUgSGFzaHRhYmxlIGZNb2RpZmllckNhY2hlOworICAgIAorICAgIHB1YmxpYyBTeW50YXhDb2xvcmVyKCkgeworICAgICAgICAKKyAgICAgICAgdGhpcyhudWxsKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN5bnRheENvbG9yZXIoTVRleHRQYW5lbCBwYW5lbCkgeworICAgICAgICAKKyAgICAgICAgSGFzaHRhYmxlIGh0ID0gbmV3IEhhc2h0YWJsZSgpOworCisgICAgICAgIC8vVW5jb21tZW50IHRoaXMgdG8gbWFrZSBrZXl3b3JkcyBhcHBlYXIgcmlnaHQtdG8tbGVmdCEKKyAgICAgICAgLy9mRGVmYXVsdEtleXdvcmRTdHlsZSA9IGZEZWZhdWx0S2V5d29yZFN0eWxlLmFkZEF0dHJpYnV0ZShUZXh0QXR0cmlidXRlLkJJRElfRU1CRURESU5HLCAKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSW50ZWdlcigtMSkpOworICAgICAgICAKKyAgICAgICAgZkRlZmF1bHRLZXl3b3JkU3R5bGUgPSBmRGVmYXVsdEtleXdvcmRTdHlsZS5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FX09OKTsKKyAgICAgICAgZkRlZmF1bHRLZXl3b3JkU3R5bGUgPSBmRGVmYXVsdEtleXdvcmRTdHlsZS5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5GT1JFR1JPVU5ELCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IuYmx1ZSk7CisgICAgICAgIAorICAgICAgICBTdHJpbmdbXSBqYXZhV29yZHMgPSB7ImFic3RyYWN0IiAsICJib29sZWFuIiwgImJyZWFrIiwgImJ5dGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ5dmFsdWUiLCAiY2FzZSIsICJjYXN0IiwgImRlZmF1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRvIiwgImRvdWJsZSIsICJlbHNlIiwgImV4dGVuZHMiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmYWxzZSIsICJmaW5hbCIsICJnb3RvIiwgImlmIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbXBsZW1lbnRzIiwgImltcG9ydCIsICJpbm5lciIsICJpbnN0YW5jZW9mIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnQiLCAib3BlcmF0b3IiLCAib3V0ZXIiLCAicGFja2FnZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJpdmF0ZSIsICJwcm90ZWN0ZWQiLCAicHVibGljIiwgInJlc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN5bmNocm9uaXplZCIsICJ0aGlzIiwgInRocm93IiwgInRocm93cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNpZW50IiwgInRydWUiLCAidHJ5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYXRjaCIsICJjaGFyIiwgImNvbnN0IiwgImNvbnRpbnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaW5hbGx5IiwgImZsb2F0IiwgImZvciIsICJmdXR1cmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdlbmVyaWMiLCAiaW50ZXJmYWNlIiwgImxvbmciLCAibmF0aXZlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuZXciLCAibnVsbCIsICJyZXR1cm4iLCAic2hvcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXRpYyIsICJzdXBlciIsICJzd2l0Y2giLCAidmFyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2b2lkIiwgInZvbGF0aWxlIiwgIndoaWxlIiwgImNsYXNzIn07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgamF2YVdvcmRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBodC5wdXQoamF2YVdvcmRzW2ldLCBmRGVmYXVsdEtleXdvcmRTdHlsZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZDb2xvcmVyID0gbmV3IENvbG9yZXIoaHQpOworICAgICAgICAKKyAgICAgICAgaWYgKHBhbmVsICE9IG51bGwpIHsKKyAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCA9IHBhbmVsLmdldFRleHQoKTsKKyAgICAgICAgICAgIGNvbG9yUmFuZ2UoMCwgdGV4dC5sZW5ndGgoKSwgdGV4dC5jcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigpLCBwYW5lbCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZNb2RpZmllckNhY2hlID0gbmV3IEhhc2h0YWJsZSgyKTsKKyAgICAgICAgZk1vZGlmaWVyQ2FjaGUucHV0KGZEZWZhdWx0S2V5d29yZFN0eWxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKGZEZWZhdWx0S2V5d29yZFN0eWxlKSk7CisgICAgICAgIGZNb2RpZmllckNhY2hlLnB1dChBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5URVhUX0NIQU5HRUQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHRleHRFdmVudE9jY3VycmVkKFRleHRQYW5lbEV2ZW50IGUpIHsKKworICAgICAgICBpZiAoZk1vZGlmeWluZykgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBNVGV4dFBhbmVsIHBhbmVsID0gKE1UZXh0UGFuZWwpIGUuZ2V0U291cmNlKCk7CisgICAgICAgIAorICAgICAgICBmaW5hbCBNQ29uc3RUZXh0IHRleHQgPSBwYW5lbC5nZXRUZXh0KCk7CisgICAgICAgIGludCBzdGFydCA9IHRleHQuZGFtYWdlZFJhbmdlU3RhcnQoKTsKKyAgICAgICAgaW50IGxpbWl0ID0gdGV4dC5kYW1hZ2VkUmFuZ2VMaW1pdCgpOworICAgICAgICBpZiAoc3RhcnQgPiBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBDaGFyYWN0ZXJJdGVyYXRvciB0ZXh0SXRlciA9IHRleHQuY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAgICAgCisgICAgICAgIGZCcmVha0l0ZXIuc2V0VGV4dCh0ZXh0SXRlcik7CisgICAgICAgIGlmIChzdGFydCA+IDApIHsKKyAgICAgICAgICAgIGlmIChzdGFydCA9PSB0ZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZkJyZWFrSXRlci5sYXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmQnJlYWtJdGVyLmZvbGxvd2luZyhzdGFydC0xKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YXJ0ID0gZkJyZWFrSXRlci5wcmV2aW91cygpOworICAgICAgICB9CisgICAgICAgIGlmIChsaW1pdCA8IHRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGZCcmVha0l0ZXIuZm9sbG93aW5nKGxpbWl0KTsKKyAgICAgICAgICAgIC8vaW50IGw7CisgICAgICAgICAgICBpZiAoKGZCcmVha0l0ZXIucHJldmlvdXMoKSkgPD0gbGltaXQpIHsKKyAgICAgICAgICAgICAgICBsaW1pdCA9IGZCcmVha0l0ZXIubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTW9kaWZ5aW5nID0gdHJ1ZTsKKyAgICAgICAgY29sb3JSYW5nZShzdGFydCwgbGltaXQsIHRleHRJdGVyLCBwYW5lbCk7CisgICAgICAgIGZNb2RpZnlpbmcgPSBmYWxzZTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNvbG9yUmFuZ2UoZmluYWwgaW50IHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgbGltaXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIHRleHRJdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwpIHsKKyAgICAgICAgCisgICAgICAgIGZDb2xvcmVyLnNldCh0ZXh0SXRlciwgc3RhcnQsIGxpbWl0KTsKKworICAgICAgICBNQ29uc3RUZXh0IG9sZFRleHQgPSBwYW5lbC5nZXRUZXh0KCk7CisgICAgICAgIE1UZXh0IG5ld1RleHQgPSBudWxsOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGZDb2xvcmVyLm5leHQoKSkgeworCisgICAgICAgICAgICBpbnQgcmFuZ2VTdGFydCA9IGZDb2xvcmVyLmN1cnJlbnRTdGFydCgpOworICAgICAgICAgICAgaW50IHJhbmdlTGltaXQgPSBmQ29sb3Jlci5jdXJyZW50TGltaXQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZkNvbG9yZXIuY3VycmVudFN0eWxlKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChvbGRUZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocmFuZ2VTdGFydCkgPCByYW5nZUxpbWl0IHx8CisgICAgICAgICAgICAgICAgICAgIG9sZFRleHQuY2hhcmFjdGVyU3R5bGVBdChyYW5nZVN0YXJ0KSAhPSBzdHlsZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaW50IGNzdGFydCA9IHJhbmdlU3RhcnQtc3RhcnQ7CisgICAgICAgICAgICAgICAgaW50IGNsaW1pdCA9IHJhbmdlTGltaXQtc3RhcnQ7CisgICAgICAgICAgICAgICAgaWYgKG5ld1RleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBuZXdUZXh0ID0gbmV3IFN0eWxlZFRleHQob2xkVGV4dCwgc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2QgPSAoU3R5bGVNb2RpZmllcikgZk1vZGlmaWVyQ2FjaGUuZ2V0KHN0eWxlKTsKKyAgICAgICAgICAgICAgICBuZXdUZXh0Lm1vZGlmeUNoYXJhY3RlclN0eWxlcyhjc3RhcnQsIGNsaW1pdCwgbW9kKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG5ld1RleHQgIT0gbnVsbCkgeworICAgICAgICAKKyAgICAgICAgICAgIGludCBvbGRTdGFydCA9IHBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgICAgICBpbnQgb2xkTGltaXQgPSBwYW5lbC5nZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcGFuZWwucmVwbGFjZVJhbmdlKG5ld1RleHQsIHN0YXJ0LCBsaW1pdCk7ICAgICAgICAgICAgCisgICAgCisgICAgICAgICAgICBwYW5lbC5zZWxlY3Qob2xkU3RhcnQsIG9sZExpbWl0KTsKKyAgICAgICAgICAgIGlmIChvbGRTdGFydCA9PSBvbGRMaW1pdCkgeworICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kID0gKFN0eWxlTW9kaWZpZXIpIGZNb2RpZmllckNhY2hlLmdldChBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHBhbmVsLm1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24obW9kKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisgICAgICAgIAorICAgICAgICBUZXh0RnJhbWUgZiA9IG5ldyBUZXh0RnJhbWUoKTsKKyAgICAgICAgZi5hZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgZi5zZXRTaXplKDQwMCwgMzAwKTsKKyAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IGYuZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIHBhbmVsLmFkZExpc3RlbmVyKG5ldyBTeW50YXhDb2xvcmVyKHBhbmVsKSk7CisgICAgICAgIGYuc2hvdygpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9kZW1vL1RleHREb2N1bWVudC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9UZXh0RG9jdW1lbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NWJlM2I5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9UZXh0RG9jdW1lbnQuamF2YQpAQCAtMCwwICsxLDM0OSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5kZW1vOworCitpbXBvcnQgamF2YS5pby4qOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCisvKioKKyAqIEEgVGV4dERvY3VtZW50IGhhbmRsZXMgdGhlIGFzc29jaWF0aW9uIGJldHdlZW4gYSBmaWxlIG9uIGRpc2sKKyAqIGFuZCBhIFRleHRQYW5lbC4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFRleHREb2N1bWVudCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBCVUZfU0laRSA9IDEwMjQ7CisgICAgCisgICAgcHJpdmF0ZSBTdHJpbmcgZlRpdGxlOworICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmVGV4dDsKKyAgICBwcml2YXRlIEZpbGUgZkZpbGU7CisgICAgcHJpdmF0ZSBNVGV4dFBhbmVsIGZUZXh0UGFuZWwgPSBudWxsOworICAgIHByaXZhdGUgYm9vbGVhbiBpc01vZGlmaWVkID0gZmFsc2U7CisgICAgcHJpdmF0ZSBpbnQgZkZvcm1hdCA9IFNUWUxFRF9URVhUOworICAgIAorICAgIHByaXZhdGUgVGV4dERvY3VtZW50KFN0cmluZyB0aXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZSBmaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmb3JtYXQpIHsKKyAgICAgICAgCisgICAgICAgIGZUaXRsZSA9IHRpdGxlOworICAgICAgICBmVGV4dCA9IHRleHQ7CisgICAgICAgIGZGaWxlID0gZmlsZTsKKyAgICAgICAgc2V0Rm9ybWF0KGZvcm1hdCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUWUxFRF9URVhUID0gMDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBQTEFJTl9URVhUID0gMTsKKyAgICAKKyAgICAvKiogCisgICAgICogUmV0dXJuIGEgbmV3IFRleHREb2N1bWVudCB3aXRoIG5vIGFzc29jaWF0ZWQgZmlsZSBhbmQKKyAgICAgKiBlbXB0eSB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVGV4dERvY3VtZW50IGNyZWF0ZUVtcHR5KFN0cmluZyB0aXRsZSwgaW50IGZvcm1hdCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ldyBUZXh0RG9jdW1lbnQodGl0bGUsIG5ldyBTdHlsZWRUZXh0KCksIG51bGwsIGZvcm1hdCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiBhIFRleHREb2N1bWVudCBjcmVhdGVkIGZyb20gdGhlIGNvbnRlbnRzIG9mIHRoZSBnaXZlbgorICAgICAqIGZpbGUuICBUaGlzIG1ldGhvZCBtYXkgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZSBmaWxlIGNhbm5vdAorICAgICAqIGJlIHJlYWQuICBJbiBwYXJ0aWN1bGFyLCBpZiB0aGUgZm9ybWF0IGlzIGdpdmVuIGFzIFNUWUxFRF9URVhUCisgICAgICogYnV0IHRoZSBmaWxlIGRvZXMgbm90IGNvbnRhaW4gYSBzZXJpYWxpemVkIE1Db25zdFRleHQsIAorICAgICAqIHRoaXMgbWV0aG9kIHdpbGwgdGhyb3cgU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVGV4dERvY3VtZW50IGNyZWF0ZUZyb21GaWxlKEZpbGUgZmlsZSwgaW50IGZvcm1hdCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICBpZiAoZm9ybWF0ICE9IFNUWUxFRF9URVhUICYmIGZvcm1hdCAhPSBQTEFJTl9URVhUKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGZvcm1hdCIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBNQ29uc3RUZXh0IHRleHQ7CisgICAgICAgIGlmIChmb3JtYXQgPT0gU1RZTEVEX1RFWFQpIHsKKyAgICAgICAgICAgIHRleHQgPSByZWFkTVRleHQoZmlsZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0ZXh0ID0gcmVhZE1UZXh0RnJvbVRleHRGaWxlKGZpbGUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBUZXh0RG9jdW1lbnQgZG9jdW1lbnQgPSBuZXcgVGV4dERvY3VtZW50KGZpbGUuZ2V0TmFtZSgpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIGRvY3VtZW50J3MgdGV4dCBkaWZmZXJzIGZyb20gdGhlIGNvbnRlbnRzCisgICAgICogb2YgaXRzIGZpbGUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2RpZmllZCgpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmVGV4dFBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBpc01vZGlmaWVkOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZUZXh0UGFuZWwuaXNNb2RpZmllZCgpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgTVRleHRQYW5lbCB0aGF0IHdpbGwgYmUgdXNlZCB0byBlZGl0IHRoZSBkb2N1bWVudCdzCisgICAgICogdGV4dC4gIFRoZSBkb2N1bWVudCdzIHRleHQgYmVjb21lcyB0aGUgY29udGVudHMgb2YgdGhlCisgICAgICogTVRleHRQYW5lbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0UGFuZWwoTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKworICAgICAgICBpZiAoZlRleHRQYW5lbCAhPSBudWxsKSB7CisgICAgICAgICAgICBmVGV4dCA9IGZUZXh0UGFuZWwuZ2V0VGV4dCgpOworICAgICAgICAgICAgaXNNb2RpZmllZCA9IGZUZXh0UGFuZWwuaXNNb2RpZmllZCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmVGV4dFBhbmVsID0gdGV4dFBhbmVsOworICAgICAgICAKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRUZXh0KGZUZXh0KTsKKyAgICAgICAgICAgIGZUZXh0ID0gbnVsbDsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0TW9kaWZpZWQoaXNNb2RpZmllZCk7CisgICAgICAgICAgICBmVGV4dFBhbmVsLmNsZWFyQ29tbWFuZExvZygpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBGaWxlIGdldEZpbGUoKSB7CisgICAgCisgICAgICAgIHJldHVybiBmRmlsZTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoaXMgZG9jdW1lbnQncyBmaWxlLiAgVGhlIGRvY3VtZW50J3MgdGl0bGUgd2lsbAorICAgICAqIGNoYW5nZSB0byB0aGUgZmlsZSBuYW1lLiAgVGhlIGZpbGUgY2Fubm90IGJlIG51bGwuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RmlsZShGaWxlIGZpbGUpIHsKKyAgICAgICAgCisgICAgICAgIGZGaWxlID0gZmlsZTsKKyAgICAgICAgZlRpdGxlID0gZmlsZS5nZXROYW1lKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgZm9ybWF0IG9mIHRoaXMgZG9jdW1lbnQuICBUaGUgZm9ybWF0IGRldGVybWluZXMKKyAgICAgKiB3aGV0aGVyIHRoZSBkb2N1bWVudCB3aWxsIGJlIHdyaXR0ZW4gdG8gZmlsZXMgYXMgc3R5bGVkCisgICAgICogdGV4dCBvciBwbGFpbiBjaGFyYWN0ZXJzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZvcm1hdChpbnQgZm9ybWF0KSB7CisgICAgICAgIAorICAgICAgICBpZiAoZm9ybWF0ICE9IFNUWUxFRF9URVhUICYmIGZvcm1hdCAhPSBQTEFJTl9URVhUKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGZvcm1hdCIpOworICAgICAgICB9CisgICAgICAgIGZGb3JtYXQgPSBmb3JtYXQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZm9ybWF0IG9mIHRoaXMgZG9jdW1lbnQuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGb3JtYXQoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkZvcm1hdDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogV3JpdGUgdGhlIGRvY3VtZW50J3MgdGV4dCB0byBpdHMgZmlsZS4gIElmIHRoZSBkb2N1bWVudCBkb2VzCisgICAgICogbm90IGhhdmUgYW4gYXNzb2NpYXRlZCBmaWxlIHRoZW4gdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0bworICAgICAqIHNhdmVBcy4gIFRoaXMgbWV0aG9kIHJldHVybnMgdHJ1ZSBpZiB0aGUgc2F2ZSBvcGVyYXRpb24gc3VjY2VlZHMuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gc2F2ZSgpIHsKKworICAgICAgICBpZiAoZkZpbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkNhbid0IHNhdmUgd2l0aG91dCBhIGZpbGUuIik7CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgTUNvbnN0VGV4dCB0ZXh0ID0gZ2V0VGV4dCgpOworICAgICAgICBib29sZWFuIHN1Y2Nlc3MgPSBmRm9ybWF0PT1TVFlMRURfVEVYVD8gd3JpdGVNVGV4dChmRmlsZSwgdGV4dCkgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVQbGFpbk1UZXh0KGZGaWxlLCB0ZXh0KTsKKyAgICAgICAgaWYgKHN1Y2Nlc3MgJiYgZlRleHRQYW5lbCAhPSBudWxsKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnNldE1vZGlmaWVkKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc3VjY2VzczsKKyAgICB9CisgICAgCisgICAgLyoqIAorICAgICAqIFJldHVybiB0aGlzIGRvY3VtZW50J3Mgc3R5bGVkIHRleHQuCisgICAgICovCisgICAgcHVibGljIE1Db25zdFRleHQgZ2V0VGV4dCgpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmVGV4dFBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmVGV4dDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmVGV4dFBhbmVsLmdldFRleHQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRpdGxlIG9mIHRoaXMgZG9jdW1lbnQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUaXRsZSgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmVGl0bGU7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgTVRleHQgc2VyaWFsaXplZCBpbiB0aGUgZ2l2ZW4gZmlsZS4KKyAgICAgKiBJbiBjYXNlIG9mIGFuIGVycm9yIHJldHVybiBudWxsLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE1Db25zdFRleHQgcmVhZE1UZXh0KEZpbGUgZmlsZSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgRmlsZUlucHV0U3RyZWFtIGluU3RyZWFtID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpblN0cmVhbSA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvYmpTdHJlYW0gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oaW5TdHJlYW0pOworCisgICAgICAgICAgICByZXR1cm4gKE1Db25zdFRleHQpIG9ialN0cmVhbS5yZWFkT2JqZWN0KCk7CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBpZiAoaW5TdHJlYW0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGluU3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJlYWQgdGhlIGdpdmVuIGZpbGUgYXMgYSBwbGFpbiB0ZXh0IGZpbGUsIGFuZCByZXR1cm4gaXRzCisgICAgICogY29udGVudHMgYXMgYW4gTUNvbnN0VGV4dC4gIFRoZSBjaGFyYWN0ZXIgYW5kIHBhcmFncmFwaCBzdHlsZXMgaW4gCisgICAgICogdGhlIHJldHVybmVkIHRleHQgd2lsbCBiZSBFTVBUWV9BVFRSSUJVVEVfTUFQLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIE1Db25zdFRleHQgcmVhZE1UZXh0RnJvbVRleHRGaWxlKEZpbGUgZmlsZSkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICBJbnB1dFN0cmVhbVJlYWRlciBpbiA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgaW4gPSBuZXcgRmlsZVJlYWRlcihmaWxlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTVRleHQgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNoYXJbXSBidWYgPSBuZXcgY2hhcltCVUZfU0laRV07CisgICAgICAgICAgICBpbnQgcmVhZDsKKyAgICAgICAgICAgIHdoaWxlICgocmVhZD1pbi5yZWFkKGJ1ZiwgMCwgYnVmLmxlbmd0aCkpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgaW50IGxlbiA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgdGV4dC5yZXBsYWNlKGxlbiwgbGVuLCBidWYsIDAsIHJlYWQsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgaWYgKGluICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBpbi5jbG9zZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEF0dGVtcHQgdG8gc2F2ZSB0aGUgZ2l2ZW4gdGV4dCBpbiB0aGUgZ2l2ZW4gZmlsZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIHdyaXRlTVRleHQoRmlsZSBmaWxlLCBNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICBUaHJvd2FibGUgZXJyb3IgPSBudWxsOworICAgICAgICBPdXRwdXRTdHJlYW0gb3V0U3RyZWFtID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBvdXRTdHJlYW0gPSBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlKTsKKyAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvYmpTdHJlYW0gPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKG91dFN0cmVhbSk7CisKKyAgICAgICAgICAgIG9ialN0cmVhbS53cml0ZU9iamVjdCh0ZXh0KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIGlmIChvdXRTdHJlYW0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIG91dFN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisKKyAgICAgICAgaWYgKGVycm9yICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVycm9yLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXcml0ZSB0aGUgZ2l2ZW4gTUNvbnN0VGV4dCB0byB0aGUgZ2l2ZW4gZmlsZSBhcyBwbGFpbiB0ZXh0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gd3JpdGVQbGFpbk1UZXh0KEZpbGUgZmlsZSwgTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgVGhyb3dhYmxlIGVycm9yID0gbnVsbDsKKyAgICAgICAgT3V0cHV0U3RyZWFtV3JpdGVyIG91dFN0cmVhbSA9IG51bGw7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgb3V0U3RyZWFtID0gbmV3IEZpbGVXcml0ZXIoZmlsZSk7CisgICAgICAgICAgICBjaGFyW10gYnVmID0gbmV3IGNoYXJbQlVGX1NJWkVdOworICAgICAgICAgICAgaW50IGxlbmd0aCA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICBpbnQgc3RhcnQgPSAwOworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGludCBjb3VudCA9IE1hdGgubWluKGxlbmd0aC1zdGFydCwgYnVmLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgdGV4dC5leHRyYWN0Q2hhcnMoc3RhcnQsIHN0YXJ0K2NvdW50LCBidWYsIDApOworICAgICAgICAgICAgICAgIG91dFN0cmVhbS53cml0ZShidWYsIDAsIGNvdW50KTsKKyAgICAgICAgICAgICAgICBzdGFydCArPSBjb3VudDsKKyAgICAgICAgICAgIH0gd2hpbGUgKHN0YXJ0IDwgbGVuZ3RoKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBpZiAob3V0U3RyZWFtICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBvdXRTdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCisgICAgICAgIGlmIChlcnJvciAhPSBudWxsKSB7CisgICAgICAgICAgICBlcnJvci5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvZGVtby9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY3Y2U4YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L2RlbW8vcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+PCEtLSAgQ29weXJpZ2h0IChDKSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCistLT4KKworPHRpdGxlPkM6SUNVNEogLmxhbmcgUGFja2FnZSBPdmVydmlldzwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IGJnY29sb3I9IndoaXRlIj4KKworPHA+UHJvdmlkZXMgRWRpdERlbW8sIGEgc2ltcGxlLCBtdWx0aXBsZS1kb2N1bWVudCBzdHlsZWQgdGV4dCBlZGl0b3IsIGJ1aWx0IHdpdGggdGhlIHJpY2h0ZXh0IGNsYXNzZXMgaW4gdGhlIHRleHRwYW5lbCBhbmQgdGV4dGZyYW1lIHBhY2thZ2VzLjwvcD4KKworPHA+VG8gcnVuIHRoZSBkZW1vLCB0eXBlOiAKKzx0dD48YmxvY2txdW90ZT4gIGphdmEgLWNsYXNzcGF0aCBjbGFzc2VzIGNvbS5pYm0ucmljaHRleHQuZGVtby5FZGl0RGVtbyBbLXN3aW5nXSBbZmlsZV0qPC9ibG9ja3F1b3RlPgorSXQgd2lsbCB1c2UgYSBTd2luZyBHVUkgaWYgPGNvZGU+LXN3aW5nPC9jb2RlPiBpcyBwcmVzZW50LCBvdGhlcndpc2UgaXQgd2lsbCB1c2UgYW4gQVdUIEdVSS4gIE9uZSBvciBtb3JlIDxjb2RlPmZpbGU8L2NvZGU+IGFyZ3VtZW50cyBjYW4gYmUgcHJlc2VudCwgdGhlc2UgbXVzdCBiZSBmaWxlcyB0aGF0IGhhdmUgYmVlbiBjcmVhdGVkIHdpdGggdGhlIEVkaXREZW1vLiAgQSBzZXBhcmF0ZSB3aW5kb3cgd2lsbCBiZSBvcGVuZWQgZm9yIGVhY2ggZmlsZS48L3A+CisKKzxwPk90aGVyIGNsYXNzZXMgaW4gdGhpcyBwYWNrYWdlIGFyZSBzdXBwb3J0aW5nIGNsYXNzZXMgZm9yIHRoZSBFZGl0RGVtby48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9tYW5pZmVzdC5zdHViIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvbWFuaWZlc3Quc3R1YgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZGE3MjAxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvbWFuaWZlc3Quc3R1YgpAQCAtMCwwICsxLDEzIEBACitNYWluLUNsYXNzOiBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdERlbW8KK01hbmlmZXN0LVZlcnNpb246IDEuMAorU3BlY2lmaWNhdGlvbi1UaXRsZTogSUNVIGZvciBKYXZhIFJpY2hFZGl0CitTcGVjaWZpY2F0aW9uLVZlcnNpb246IDIuNgorU3BlY2lmaWNhdGlvbi1WZW5kb3I6IElDVQorSW1wbGVtZW50YXRpb24tVGl0bGU6IElDVSBmb3IgSmF2YSBSaWNoRWRpdAorSW1wbGVtZW50YXRpb24tVmVyc2lvbjogMi42CitJbXBsZW1lbnRhdGlvbi1WZW5kb3I6IElCTSBDb3Jwb3JhdGlvbgorSW1wbGVtZW50YXRpb24tVmVuZG9yLUlkOiBjb20uaWJtCisKK05hbWU6IGNvbS9pYm0vcmljaHRleHQKKworCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9NQ29uc3RUZXh0UHJpbnRhYmxlLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9NQ29uc3RUZXh0UHJpbnRhYmxlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjJiYzEwYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3ByaW50L01Db25zdFRleHRQcmludGFibGUuamF2YQpAQCAtMCwwICsxLDE2MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5wcmludDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0Lk1Gb3JtYXR0ZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5Qb2ludDsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCisvKioKKyAqIFRoaXMgY2xhc3MncyBpbnRlcmZhY2UgaXMgdmVyeSBjbG9zZSB0byB0aGF0IG9mIHRoZSBKREsgMS4yIFByaW50YWJsZSAKKyAqIGludGVyZmFjZSwgYnV0IGNhbiBleGVjdXRlIG9uIEpESyAxLjEuICBPbiAxLjIsIHRoaXMgY2xhc3MgaXMgd3JhcHBlZAorICogaW4gYSByZWFsIFByaW50YWJsZS4gIE9uIDEuMSwgdGhlIFByaW50Q29udGV4dCBjbGFzcyB1c2VzIHRoaXMgY2xhc3MKKyAqIGFuZCBhIFByaW50Sm9iIGZvciBwcmludGluZy4KKyAqCisgKiBOb3RlIHRoYXQgdGhpcyBjbGFzcyBwYWdpbmF0ZXMgdGhlIHRleHQgaW4gdGhlIGZpcnN0IGNhbGwgdG8gcHJpbnQsCisgKiBvciB0byBnZXRQYWdlQ291bnQuCisgKiBBZnRlciBjb25zdHJ1Y3Rpb24sIGl0cyBwYWdlIHNpemUgaXMgZXNzZW50aWFsbHkgZml4ZWQuICBUaGlzIGlzIG5vdCAKKyAqIGFzIGZsZXhpYmxlIGFzIHRoZSAxLjIgY2xhc3NlcyBhbGxvdywgYnV0IGl0IHNob3VsZCBzdWZmaWNlLgorICovCitmaW5hbCBjbGFzcyBNQ29uc3RUZXh0UHJpbnRhYmxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBzdGF0aWMgZmluYWwgaW50IFBBR0VfRVhJU1RTID0gMDsKKyAgICBzdGF0aWMgZmluYWwgaW50IE5PX1NVQ0hfUEFHRSA9IDE7CisgICAgCisgICAgcHJpdmF0ZSBNQ29uc3RUZXh0IGZUZXh0OworICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZEZWZhdWx0U3R5bGVzOworICAgIHByaXZhdGUgUmVjdGFuZ2xlIGZQYWdlUmVjdDsKKyAgICAKKyAgICAvLyBJZiB0aGVzZSB0d28gZmllbGRzIGFyZSBudWxsIHRoZSB0ZXh0IGhhcyBub3QgYmVlbiBwYWdpbmF0ZWQuCisgICAgcHJpdmF0ZSBNRm9ybWF0dGVyIGZGb3JtYXR0ZXI7CisgICAgcHJpdmF0ZSBWZWN0b3IgZlBhZ2VTdGFydHM7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gTUNvbnN0VGV4dFByaW50YWJsZSB0byBwcmludCB0aGUgZ2l2ZW4gdGV4dC4gIEVhY2ggcGFnZSB3aWxsIGZpdAorICAgICAqIGludG8gcGFnZVJlY3QuCisgICAgICovCisgICAgTUNvbnN0VGV4dFByaW50YWJsZShNQ29uc3RUZXh0IHRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGRlZmF1bHRTdHlsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgcGFnZVJlY3QpIHsKKworICAgICAgICBmVGV4dCA9IHRleHQ7CisgICAgICAgIGZEZWZhdWx0U3R5bGVzID0gZGVmYXVsdFN0eWxlczsKKyAgICAgICAgZlBhZ2VSZWN0ID0gbmV3IFJlY3RhbmdsZShwYWdlUmVjdCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dChNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgIGNoYXIgY2ggPSB0ZXh0LmF0KHRleHQubGVuZ3RoKCktMSk7CisgICAgICAgICAgICByZXR1cm4gY2ggPT0gJ1xuJyB8fCBjaCA9PSAnXHUyMDI5JzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwYWdpbmF0ZShHcmFwaGljcyBncmFwaGljcykgeworICAgICAgICAKKyAgICAgICAgaWYgKGZQYWdlU3RhcnRzID09IG51bGwpIHsKKworICAgICAgICAgICAgZkZvcm1hdHRlciA9IE1Gb3JtYXR0ZXIuY3JlYXRlRm9ybWF0dGVyKGZUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZEZWZhdWx0U3R5bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZQYWdlUmVjdC53aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyYXBoaWNzKTsKKyAKKyAgICAgICAgICAgIGZGb3JtYXR0ZXIuZm9ybWF0VG9IZWlnaHQoSW50ZWdlci5NQVhfVkFMVUUpOworICAgICAgICAgICAgZkZvcm1hdHRlci5zdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKworICAgICAgICAgICAgZlBhZ2VTdGFydHMgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBsaW5lQ291bnQgPSBmRm9ybWF0dGVyLmdldExpbmVDb3VudCgpOworICAgICAgICAgICAgaWYgKGVtcHR5UGFyYWdyYXBoQXRFbmRPZlRleHQoZlRleHQpKSB7CisgICAgICAgICAgICAgICAgbGluZUNvdW50IC09IDE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBzdGFydExpbmUgPSAwOworICAgICAgICAgICAgZlBhZ2VTdGFydHMuYWRkRWxlbWVudChuZXcgSW50ZWdlcihzdGFydExpbmUpKTsKKyAgICAgICAgICAgIGludCBzdGFydEhlaWdodCA9IDA7CisgICAgICAgICAgICBmaW5hbCBpbnQgcGFnZUhlaWdodCA9IGZQYWdlUmVjdC5oZWlnaHQ7CisKKyAgICAgICAgICAgIHdoaWxlIChzdGFydExpbmUgPCBsaW5lQ291bnQpIHsKKworICAgICAgICAgICAgICAgIGludCBuZXh0U3RhcnQgPSBmRm9ybWF0dGVyLmxpbmVBdEhlaWdodChzdGFydEhlaWdodCArIHBhZ2VIZWlnaHQpOworICAgICAgICAgICAgICAgIGZQYWdlU3RhcnRzLmFkZEVsZW1lbnQobmV3IEludGVnZXIobmV4dFN0YXJ0KSk7CisgICAgICAgICAgICAgICAgc3RhcnRIZWlnaHQgPSBmRm9ybWF0dGVyLmxpbmVHcmFwaGljU3RhcnQobmV4dFN0YXJ0KTsKKyAgICAgICAgICAgICAgICBzdGFydExpbmUgPSBuZXh0U3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcmludCB0aGUgZ2l2ZW4gcGFnZSBpbiB0aGUgZ2l2ZW4gZ3JhcGhpY3MuICBQYWdlIG51bWJlcnMgYXJlCisgICAgICogMC1iYXNlZC4gIFRoZSB0aGUgcmV0dXJuIHZhbHVlIGluZGljYXRlcyB3aGV0aGVyCisgICAgICogdGhlIHBhZ2UgbnVtYmVyIGlzIHZhbGlkIChhcyBpbiBKREsgMS4yKS4gIFNpbmNlIHlvdSBjYW4gZ2V0IHRoZSBwYWdlIGNvdW50CisgICAgICogZGlyZWN0bHksIHRoZXJlJ3MgcmVhbGx5IG5vIGV4Y3VzZSBmb3IgcGFzc2luZyBpbiBhbiBpbnZhbGlkIHBhZ2UKKyAgICAgKiBpbmRleC4KKyAgICAgKiBAcGFyYW0gZ3JhcGhpY3MgdGhlIEdyYXBoaWNzIHRvIHByaW50IHRvCisgICAgICogQHBhcmFtIHBhZ2VOdW1iZXIgdGhlIDAtYmFzZWQgcGFnZSBudW1iZXIuICBTaG91bGQgYmUgbm9ubmVnYXRpdmUgYW5kCisgICAgICogbGVzcyB0aGFuIGdldFBhZ2VDb3VudCgpCisgICAgICogQHJldHVybiBQQUdFX0VYSVNUUyBpZiB0aGUgcGFnZSBudW1iZXIgaXMgdmFsaWQsIG9yIAorICAgICAqICAgICAgICAgTk9fU1VDSF9QQUdFIG90aGVyd2lzZQorICAgICAqLworICAgIGludCBwcmludChHcmFwaGljcyBncmFwaGljcywgaW50IHBhZ2VOdW1iZXIpIHsKKyAgICAgICAgCisgICAgICAgIHBhZ2luYXRlKGdyYXBoaWNzKTsKKyAgICAgICAgCisgICAgICAgIGlmIChwYWdlTnVtYmVyIDwgZ2V0UGFnZUNvdW50KGdyYXBoaWNzKSAmJiBwYWdlTnVtYmVyID49IDApIHsKKyAgICAgICAgICAgIGdyYXBoaWNzLnNldENvbG9yKENvbG9yLmJsYWNrKTsgLy8gd29ya2Fyb3VuZCBmb3IgMS4yIHByaW50aW5nIGJ1ZworICAgICAgICAgICAgaW50IHN0YXJ0TGluZSA9ICgoSW50ZWdlcilmUGFnZVN0YXJ0cy5lbGVtZW50QXQocGFnZU51bWJlcikpLmludFZhbHVlKCk7CisgICAgICAgICAgICBpbnQgbGltaXRMaW5lID0gKChJbnRlZ2VyKWZQYWdlU3RhcnRzLmVsZW1lbnRBdChwYWdlTnVtYmVyKzEpKS5pbnRWYWx1ZSgpOworCisgICAgICAgICAgICBpbnQgdG9wT2ZQYWdlID0gZkZvcm1hdHRlci5saW5lR3JhcGhpY1N0YXJ0KHN0YXJ0TGluZSk7CisgICAgICAgICAgICBpbnQgcGFnZUhlaWdodCA9IGZGb3JtYXR0ZXIubGluZUdyYXBoaWNTdGFydChsaW1pdExpbmUpIC0gdG9wT2ZQYWdlOworCisgICAgICAgICAgICBQb2ludCBvcmlnaW4gPSBuZXcgUG9pbnQoZlBhZ2VSZWN0LngsIGZQYWdlUmVjdC55IC0gdG9wT2ZQYWdlKTsKKyAgICAgICAgICAgIFJlY3RhbmdsZSBkcmF3UmVjdCA9IG5ldyBSZWN0YW5nbGUoZlBhZ2VSZWN0KTsKKyAgICAgICAgICAgIGRyYXdSZWN0LmhlaWdodCA9IHBhZ2VIZWlnaHQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZGb3JtYXR0ZXIuZHJhdyhncmFwaGljcywgZHJhd1JlY3QsIG9yaWdpbik7CisgICAgICAgICAgICByZXR1cm4gUEFHRV9FWElTVFM7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gTk9fU1VDSF9QQUdFOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRoYXQgY2FuIGJlIHByaW50ZWQuCisgICAgICogQHBhcmFtIGdyYXBoaWNzIGEgR3JhcGhpY3MgaW5zdGFuY2UgcmVwcmVzZW50YXRpdmUgb2YgdGhvc2UgCisgICAgICogd2hpY2ggd2lsbCBiZSBwcmludGVkIGludG8KKyAgICAgKi8KKyAgICBpbnQgZ2V0UGFnZUNvdW50KEdyYXBoaWNzIGdyYXBoaWNzKSB7CisgICAgICAgIAorICAgICAgICBwYWdpbmF0ZShncmFwaGljcyk7CisgICAgICAgIHJldHVybiBmUGFnZVN0YXJ0cy5zaXplKCkgLSAxOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9QcmludENvbnRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3ByaW50L1ByaW50Q29udGV4dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM4MWFmOWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9QcmludENvbnRleHQuamF2YQpAQCAtMCwwICsxLDc5IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnByaW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworCitpbXBvcnQgamF2YS5hd3QucHJpbnQuUGFnZUZvcm1hdDsKK2ltcG9ydCBqYXZhLmF3dC5wcmludC5QcmludGFibGU7CitpbXBvcnQgamF2YS5hd3QucHJpbnQuUHJpbnRlckpvYjsKK2ltcG9ydCBqYXZhLmF3dC5wcmludC5QcmludGVyRXhjZXB0aW9uOworCitmaW5hbCBjbGFzcyBQcmludENvbnRleHQgaW1wbGVtZW50cyBQcmludGFibGUgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIE1Db25zdFRleHRQcmludGFibGUgZlByaW50YWJsZTsKKyAgICAKKyAgICBQcmludENvbnRleHQoTUNvbnN0VGV4dCB0ZXh0LCBBdHRyaWJ1dGVNYXAgZGVmYXVsdFN0eWxlcywgUGFnZUZvcm1hdCBwZikgeworICAgICAgICAKKyAgICAgICAgaW50IHdpZHRoID0gKGludCkgTWF0aC5yb3VuZChwZi5nZXRJbWFnZWFibGVXaWR0aCgpKTsKKyAgICAgICAgaW50IGhlaWdodCA9IChpbnQpIE1hdGgucm91bmQocGYuZ2V0SW1hZ2VhYmxlSGVpZ2h0KCkpOworICAgICAgICBpbnQgbGVmdCA9ICgoKGludClNYXRoLnJvdW5kKHBmLmdldFdpZHRoKCkpKSAtIHdpZHRoKSAvIDI7CisgICAgICAgIGludCB0b3AgPSAoKChpbnQpTWF0aC5yb3VuZChwZi5nZXRIZWlnaHQoKSkpIC0gaGVpZ2h0KSAvIDI7CisgICAgICAgIAorICAgICAgICBSZWN0YW5nbGUgcGFnZVJlY3QgPSBuZXcgUmVjdGFuZ2xlKGxlZnQsIHRvcCwgd2lkdGgsIGhlaWdodCk7CisgICAgICAgIGZQcmludGFibGUgPSBuZXcgTUNvbnN0VGV4dFByaW50YWJsZSh0ZXh0LCBkZWZhdWx0U3R5bGVzLCBwYWdlUmVjdCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBpbnQgcHJpbnQoR3JhcGhpY3MgZ3JhcGhpY3MsCisgICAgICAgICAgICAgICAgICAgICBQYWdlRm9ybWF0IGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgIGludCBwYWdlSW5kZXgpIHRocm93cyBQcmludGVyRXhjZXB0aW9uIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmYWxzZSkKKyAgICAgICAgICAgIHRocm93IG5ldyBQcmludGVyRXhjZXB0aW9uKCJzYXZlIHRyZWVzIik7CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKGZQcmludGFibGUucHJpbnQoZ3JhcGhpY3MsIHBhZ2VJbmRleCkgPT0gTUNvbnN0VGV4dFByaW50YWJsZS5QQUdFX0VYSVNUUykgeworICAgICAgICAgICAgcmV0dXJuIFBBR0VfRVhJU1RTOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIE5PX1NVQ0hfUEFHRTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdm9pZCB1c2VyUHJpbnRUZXh0KE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0U3R5bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUgZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgam9iVGl0bGUpIHsKKworICAgICAgICBQcmludGVySm9iIGpvYiA9IFByaW50ZXJKb2IuZ2V0UHJpbnRlckpvYigpOworICAgICAgICBqb2Iuc2V0Sm9iTmFtZShqb2JUaXRsZSk7CisgICAgICAgIGlmIChqb2IucHJpbnREaWFsb2coKSkgeworICAgICAgICAgICAgam9iLnNldFByaW50YWJsZShuZXcgUHJpbnRDb250ZXh0KHRleHQsIGRlZmF1bHRTdHlsZXMsIGpvYi5kZWZhdWx0UGFnZSgpKSk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGpvYi5wcmludCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goUHJpbnRlckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQcmludGVyIGV4Y2VwdGlvbjogIiArIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvUHJpbnRpbmdVdGlscy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvcHJpbnQvUHJpbnRpbmdVdGlscy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE4NWQwODYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9QcmludGluZ1V0aWxzLmphdmEKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5wcmludDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CisKKy8qKgorICogUHJpbnRpbmdVdGlscyBjb250YWlucyBhIHN0YXRpYyBtZXRob2QgZm9yIHByaW50aW5nIHN0eWxlZCB0ZXh0LgorICogQHNlZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgUHJpbnRpbmdVdGlscyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgLy8gS2VlcCBpdCBvdXQgb2YgSmF2YWRvYy4uLgorICAgIHByaXZhdGUgUHJpbnRpbmdVdGlscygpIHsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUHJpbnQgdGhlIGdpdmVuIHRleHQuICBBIFByaW50IGRpYWxvZyBpcyBwcmVzZW50ZWQgdG8gdGhlIHVzZXI7CisgICAgICogdW5sZXNzIHRoZSB1c2VyIGNhbmNlbHMsIHRoZSB0ZXh0IGlzIHByaW50ZWQuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgdG8gcHJpbnQKKyAgICAgKiBAcGFyYW0gZGVmYXVsdFN0eWxlcyBkZWZhdWx0IHZhbHVlcyBmb3IgdW5zcGVjaWZpZWQgYXR0cmlidXRlcworICAgICAqIEBwYXJhbSBmcmFtZSB0aGUgcGFyZW50IG9mIHRoZSBQcmludCBkaWFsb2cKKyAgICAgKiBAcGFyYW0gam9iVGl0bGUgdGhlIHRpdGxlIG9mIHRoZSBQcmludEpvYgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB1c2VyUHJpbnRUZXh0KE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFN0eWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgam9iVGl0bGUpIHsKKworICAgICAgICBQcmludENvbnRleHQudXNlclByaW50VGV4dCh0ZXh0LCBkZWZhdWx0U3R5bGVzLCBmcmFtZSwgam9iVGl0bGUpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9yaWNodGV4dC9wcmludC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDkwNmVkYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3ByaW50L3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IS0tIAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCistLT4KKzxodG1sPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorUHJvdmlkZXMgcHJpbnRpbmcgZm9yIHN0eWxlZCB0ZXh0LgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9DaGFyQnVmZmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L0NoYXJCdWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xODdlZTNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9DaGFyQnVmZmVyLmphdmEKQEAgLTAsMCArMSwzNzcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvKiogQW4gaW1wbGVtZW50YXRpb24gb2YgTUNoYXJCdWZmZXIgdGhhdCBzdG9yZXMgY2hhcnMgaW4gYW4gYXJyYXkgd2l0aCBhbiBpbnNlcnRpb24gZ2FwLiAqLworLyoKKyAgICBDaGFuZ2UgaGlzdG9yeQorICAgIDA3MjM5NiBqZiAgIC0gZml4ZWQgYSBidWcgaW4gcmVwbGFjZShpbnQsIGludCwgY2hhcltdLCBpbnQsIGludCkgc28gdGhhdCBpdCBjb3JyZWN0bHkKKyAgICAgICAgICAgICAgICBpbnNlcnRlZCBpbnRvIHRoZSBtaWRkbGUgb2YgdGhlIGJ1ZmZlci4KKyAgICAwODAyOTYgamYgICAtIGFkZGVkIHRpbWVzdGFtcC4gIFRoaXMgaXMgc3RyaWN0bHkgYSBkZWJ1Z2dpbmcgZGV2aWNlIHRvIGhlbHAgY2F0Y2gKKyAgICAgICAgICAgICAgICBzdGFsZSBpdGVyYXRvcnMuCisKKyAgICAwODIyOTYgamJyICBhZGRlZCBjaGVjayBmb3IgMC1sZW5ndGggaXRlcmF0b3IgaW4gcmVwbGFjZQorKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworZmluYWwgY2xhc3MgQ2hhckJ1ZmZlcgorICAgIGV4dGVuZHMgTUNoYXJCdWZmZXIgaW1wbGVtZW50cyBFeHRlcm5hbGl6YWJsZQoreworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtHcm93U2l6ZSA9IDB4ODA7IC8vIHNtYWxsIHNpemUgZm9yIHRlc3RpbmcKKyAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTlRfVkVSU0lPTiA9IDE7IC8vIHZlcnNpb24gY29kZSBmb3Igc3RyZWFtaW5nCisgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDU2MzE3NDsKKworICB0cmFuc2llbnQgVmFsaWRhdGlvbiBmVmFsaWRhdGlvbiA9IG51bGw7CisgIHByaXZhdGUgY2hhcltdIGZBcnJheTsKKyAgdHJhbnNpZW50IHByaXZhdGUgaW50IGZBcnJheVNpemU7CisgIHRyYW5zaWVudCBwcml2YXRlIGludCBmR2FwOworCisgIC8qKiBDcmVhdGUgYW4gZW1wdHkgY2hhciBidWZmZXIuICovCisgIHB1YmxpYyBDaGFyQnVmZmVyKCkKKyAgeworICB9CisKKyAgLyoqIENyZWF0ZSBhIGNoYXIgYnVmZmVyIHRoYXQgY2FuIGhvbGQgYXQgbGVhc3QgY2FwYWNpdHkgY2hhcnMuICovCisKKyAgcHVibGljIENoYXJCdWZmZXIoaW50IGNhcGFjaXR5KQorICB7CisgICAgZkFycmF5ID0gYWxsb2NhdGUoY2FwYWNpdHkpOworICB9CisKKyAgcHVibGljIHZvaWQgcmVhZEV4dGVybmFsKE9iamVjdElucHV0IGluKSB0aHJvd3MgSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworCisgICAgaWYgKGluLnJlYWRJbnQoKSAhPSBDVVJSRU5UX1ZFUlNJT04pIHsKKyAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgQ2hhckJ1ZmZlciIpOworICAgIH0KKworICAgIGZBcnJheSA9IChjaGFyW10pIGluLnJlYWRPYmplY3QoKTsKKyAgICBpZiAoZkFycmF5ICE9IG51bGwpIHsKKyAgICAgICAgZkFycmF5U2l6ZSA9IGZBcnJheS5sZW5ndGg7CisgICAgICAgIGZHYXAgPSBmQXJyYXlTaXplOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgZkFycmF5U2l6ZSA9IDA7CisgICAgICAgIGZHYXAgPSAwOworICAgIH0KKyAgfQorCisgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgIGNvbXByZXNzKCk7CisgICAgb3V0LndyaXRlSW50KENVUlJFTlRfVkVSU0lPTik7CisgICAgb3V0LndyaXRlT2JqZWN0KGZBcnJheSk7CisgIH0KKworICBwcml2YXRlIHZvaWQgaW52YWxpZGF0ZSgpIHsKKworICAgIGlmIChmVmFsaWRhdGlvbiAhPSBudWxsKSB7CisgICAgICAgIGZWYWxpZGF0aW9uLmludmFsaWRhdGUoKTsKKyAgICAgICAgZlZhbGlkYXRpb24gPSBudWxsOworICAgIH0KKyAgfQorCisgIC8vIG5vdCBUaHJlYWRTYWZlIC0gY291bGQgZW5kIHVwIHdpdGggdHdvIFZhbGlkYXRpb25zCisgIC8vIGJlaW5nIGdlbmVyYXRlZAorICBwcml2YXRlIFZhbGlkYXRpb24gZ2V0VmFsaWRhdGlvbigpIHsKKworICAgIGlmIChmVmFsaWRhdGlvbiA9PSBudWxsKSB7CisgICAgICAgIGZWYWxpZGF0aW9uID0gbmV3IFZhbGlkYXRpb24oKTsKKyAgICB9CisgICAgcmV0dXJuIGZWYWxpZGF0aW9uOworICB9CisKKyAgLyoqIFJlcGxhY2UgdGhlIGNoYXJzIGZyb20gc3RhcnQgdG8gbGltaXQgd2l0aCB0aGUgY2hhcnMgZnJvbSBzcmNTdGFydCB0byBzcmNMaW1pdCBpbiBzcmNCdWZmZXIuICovCisKKyAgLyoqIFJlcGxhY2UgdGhlIGNoYXJzIGZyb20gc3RhcnQgdG8gbGltaXQgd2l0aCB0aGUgY2hhcnMgZnJvbSBzcmNTdGFydCB0byBzcmNMaW1pdCBpbiBzcmNDaGFycy4KKyAgKiBUaGlzIGlzIHRoZSBjb3JlIHJvdXRpbmUgZm9yIG1hbmlwdWxhdGluZyB0aGUgYnVmZmVyLgorICAqLworICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gc3JjQ2hhcnMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KQorICB7CisgICAgaW52YWxpZGF0ZSgpOworICAgIGludCBkc3RMZW5ndGggPSBsaW1pdCAtIHN0YXJ0OworICAgIGludCBzcmNMZW5ndGggPSBzcmNMaW1pdCAtIHNyY1N0YXJ0OworCisgICAgaWYgKGRzdExlbmd0aCA8IDAgfHwgc3JjTGVuZ3RoIDwgMCkgeworICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJyZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gc3JjQ2hhcnMsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KSIpOworICAgIH0KKworICAgIGludCBnYXBBbGxvYyA9IDA7CisgICAgaWYgKHNyY0NoYXJzID09IG51bGwpIHsKKyAgICAgICAgZ2FwQWxsb2MgPSBzcmNMZW5ndGg7CisgICAgICAgIHNyY0xlbmd0aCA9IDA7CisgICAgfQorCisgICAgaW50IG5ld1NpemUgPSBmQXJyYXlTaXplIC0gZHN0TGVuZ3RoICsgc3JjTGVuZ3RoOworCisgICAgaWYgKGZBcnJheSA9PSBudWxsKSB7CisgICAgICAgIGlmIChzdGFydCAhPSAwIHx8IGxpbWl0ICE9IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBzcmNDaGFycywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5ld1NpemUgKyBnYXBBbGxvYyA+IDApIHsKKyAgICAgICAgICAgIGZBcnJheSA9IGFsbG9jYXRlKG5ld1NpemUgKyBnYXBBbGxvYyk7CisgICAgICAgICAgICBpZiAoc3JjTGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjQ2hhcnMsIHNyY1N0YXJ0LCBmQXJyYXksIDAsIHNyY0xlbmd0aCk7CisgICAgICAgICAgICAgICAgZkFycmF5U2l6ZSA9IHNyY0xlbmd0aDsKKyAgICAgICAgICAgICAgICBmR2FwID0gc3JjTGVuZ3RoOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaW50IG5ld0dhcCA9IHN0YXJ0ICsgc3JjTGVuZ3RoOworICAgICAgICBpbnQgZ2FwTGltaXQgPSBmQXJyYXkubGVuZ3RoIC0gZkFycmF5U2l6ZSArIGZHYXA7CisKKyAgICAgICAgaWYgKG5ld1NpemUgKyBnYXBBbGxvYyA+IGZBcnJheS5sZW5ndGgpIHsKKyAgICAgICAgICAgIGNoYXJbXSB0ZW1wID0gYWxsb2NhdGUobmV3U2l6ZSArIGdhcEFsbG9jKTsKKworICAgICAgICAgICAgLy9tb3ZlIHN0dWZmIGF0IGJlZ2lubmluZyB0aGF0IHdlIGFyZW4ndCB3cml0aW5nIG92ZXIKKyAgICAgICAgICAgIGlmIChzdGFydCA+IDApIHsKKyAgICAgICAgICAgICAgICBhdCgwLCBzdGFydCwgdGVtcCwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL21vdmUgc3R1ZmYgZnJvbSBzcmMgYXJyYXkgdGhhdCB3ZSBhcmUgY29weWluZworICAgICAgICAgICAgaWYgKHNyY0xlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHNyY0NoYXJzLCBzcmNTdGFydCwgdGVtcCwgc3RhcnQsIHNyY0xlbmd0aCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvL21vdmUgc3R1ZmYgYXQgZW5kIHRoYXQgd2UgYXJlbid0IGNvcHlpbmcgb3ZlcgorICAgICAgICAgICAgaWYgKGxpbWl0IDwgZkFycmF5U2l6ZSkgeworICAgICAgICAgICAgICAgIGF0KGxpbWl0LCBmQXJyYXlTaXplLCB0ZW1wLCB0ZW1wLmxlbmd0aCAtIG5ld1NpemUgKyBuZXdHYXApOworICAgICAgICAgICAgLy9jaGFuZ2UgNy0yMy05NgorICAgICAgICAgICAgLy8gICAgYXQobGltaXQsIGZBcnJheVNpemUgLSBsaW1pdCwgdGVtcCwgdGVtcC5sZW5ndGggLSBuZXdTaXplICsgbmV3R2FwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZkFycmF5ID0gdGVtcDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzdGFydCA+IGZHYXApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZBcnJheSwgZ2FwTGltaXQsIGZBcnJheSwgZkdhcCwgc3RhcnQgLSBmR2FwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChsaW1pdCA8IGZHYXApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZBcnJheSwgbGltaXQsIGZBcnJheSwgZkFycmF5Lmxlbmd0aCAtIG5ld1NpemUgKyBuZXdHYXAsIGZHYXAgLSBsaW1pdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3JjTGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3JjQ2hhcnMsIHNyY1N0YXJ0LCBmQXJyYXksIHN0YXJ0LCBzcmNMZW5ndGgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZkFycmF5U2l6ZSA9IG5ld1NpemU7CisgICAgICAgIGZHYXAgPSBuZXdHYXA7CisgICAgfQorICB9CisKKyAgLyoqIFJlcGxhY2UgdGhlIGNoYXJzIGZyb20gc3RhcnQgdG8gbGltaXQgd2l0aCB0aGUgY2hhcnMgZnJvbSBzcmNTdGFydCB0byBzcmNMaW1pdCBpbiBzcmNTdHJpbmcuICovCisKKyAgLyogVGhpcyBpbXBsZW1lbnRzIG9wdGltaXphdGlvbnMgZm9yIG51bGwgdGV4dCBvciBpbnNlcnRpbmcgdGV4dCB0aGF0IGZpdHMgYXQgdGhlIGdhcCwKKyAgICAgYW5kIGRlZmF1bHRzIHRvIGNhbGwgdGhlIGNvcmUgcmVwbGFjZSByb3V0aW5lIGlmIHRoZXNlIG9wdGltaXphdGlvbnMgZmFpbC4gKi8KKworICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBTdHJpbmcgc3JjU3RyaW5nLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkKKyAgeworICAgIGludmFsaWRhdGUoKTsKKyAgICBpbnQgbGVuZ3RoID0gbGltaXQgLSBzdGFydDsKKyAgICBpbnQgc3JjTGVuZ3RoID0gc3JjTGltaXQgLSBzcmNTdGFydDsKKworICAgIGlmIChmQXJyYXkgPT0gbnVsbCkgeworICAgICAgICBpZiAoc3RhcnQgIT0gMCB8fCBsaW1pdCAhPSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJyZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBTdHJpbmcgc3JjU3RyaW5nLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3JjTGVuZ3RoID4gMCkgeworICAgICAgICAgICAgZkFycmF5ID0gYWxsb2NhdGUoc3JjTGVuZ3RoKTsKKyAgICAgICAgICAgIHNyY1N0cmluZy5nZXRDaGFycyhzcmNTdGFydCwgc3JjTGltaXQsIGZBcnJheSwgMCk7CisgICAgICAgICAgICBmQXJyYXlTaXplID0gc3JjTGVuZ3RoOworICAgICAgICAgICAgZkdhcCA9IHNyY0xlbmd0aDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzdGFydCA9PSBmR2FwICYmIGZBcnJheS5sZW5ndGggPj0gZkFycmF5U2l6ZSAtIGxlbmd0aCArIHNyY0xlbmd0aCkgeworICAgICAgICAgICAgaWYgKHNyY0xpbWl0ID4gMCkgeworICAgICAgICAgICAgICAgIHNyY1N0cmluZy5nZXRDaGFycyhzcmNTdGFydCwgc3JjTGltaXQsIGZBcnJheSwgZkdhcCk7CisgICAgICAgICAgICAgICAgZkdhcCArPSBzcmNMZW5ndGg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmQXJyYXlTaXplICs9IHNyY0xlbmd0aCAtIGxlbmd0aDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlcGxhY2Uoc3RhcnQsIGxpbWl0LCBzcmNTdHJpbmcgIT0gbnVsbCA/IHNyY1N0cmluZy50b0NoYXJBcnJheSgpIDogbnVsbCwgc3JjU3RhcnQsIHNyY0xpbWl0KTsKKyAgICAgICAgfQorICAgIH0KKyAgfQorCisgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIE1Db25zdFRleHQgc3JjVGV4dCwgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpCisgIHsKKyAgICBpbnZhbGlkYXRlKCk7CisgICAgaW50IGxlbmd0aCA9IGxpbWl0IC0gc3RhcnQ7CisgICAgaW50IHNyY0xlbmd0aCA9IHNyY0xpbWl0IC0gc3JjU3RhcnQ7CisKKyAgICBpZiAoZkFycmF5ID09IG51bGwpIHsKKyAgICAgICAgaWYgKHN0YXJ0ICE9IDAgfHwgbGltaXQgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHNyY1N0cmluZywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNyY0xlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGZBcnJheSA9IGFsbG9jYXRlKHNyY0xlbmd0aCk7CisgICAgICAgICAgICBzcmNUZXh0LmV4dHJhY3RDaGFycyhzcmNTdGFydCwgc3JjTGltaXQsIGZBcnJheSwgMCk7CisgICAgICAgICAgICBmQXJyYXlTaXplID0gc3JjTGVuZ3RoOworICAgICAgICAgICAgZkdhcCA9IHNyY0xlbmd0aDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzdGFydCA9PSBmR2FwICYmIGZBcnJheS5sZW5ndGggPj0gZkFycmF5U2l6ZSAtIGxlbmd0aCArIHNyY0xlbmd0aCkgeworICAgICAgICAgICAgaWYgKHNyY0xpbWl0ID4gMCkgeworICAgICAgICAgICAgICAgIHNyY1RleHQuZXh0cmFjdENoYXJzKHNyY1N0YXJ0LCBzcmNMaW1pdCwgZkFycmF5LCBmR2FwKTsKKyAgICAgICAgICAgICAgICBmR2FwICs9IHNyY0xlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZBcnJheVNpemUgKz0gc3JjTGVuZ3RoIC0gbGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY2hhcltdIHRlbXAgPSBzcmNMZW5ndGggPT0gMD8gbnVsbCA6IG5ldyBjaGFyW3NyY0xlbmd0aF07CisgICAgICAgICAgICBpZiAodGVtcCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgc3JjVGV4dC5leHRyYWN0Q2hhcnMoc3JjU3RhcnQsIHNyY0xpbWl0LCB0ZW1wLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlcGxhY2Uoc3RhcnQsIGxpbWl0LCB0ZW1wLCAwLCBzcmNMaW1pdCAtIHNyY1N0YXJ0KTsKKyAgICAgICAgfQorICAgIH0KKyAgfQorCisgIC8qKiBSZXBsYWNlIHRoZSBjaGFycyBmcm9tIHN0YXJ0IHRvIGxpbWl0IHdpdGggc3JjQ2hhci4gKi8KKworICAvKiBUaGlzIGltcGxlbWVudHMgb3B0aW1pemF0aW9ucyBmb3IgbnVsbCB0ZXh0IG9yIHJlcGxhY2luZyBhIGNoYXJhY3RlciB0aGF0IGZpdHMgaW50byB0aGUgZ2FwLAorICAgICBhbmQgZGVmYXVsdHMgdG8gY2FsbCB0aGUgY29yZSByZXBsYWNlIHJvdXRpbmUgaWYgdGhlc2Ugb3B0aW1pemF0aW9ucyBmYWlsLiAqLworCisgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXIgc3JjQ2hhcikKKyAgeworICAgIGludmFsaWRhdGUoKTsKKyAgICBpZiAoZkFycmF5ID09IG51bGwpIHsKKyAgICAgICAgaWYgKHN0YXJ0ICE9IDAgfHwgbGltaXQgIT0gMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhciBzcmNDaGFyKSIpOworICAgICAgICB9CisgICAgICAgIGZBcnJheSA9IGFsbG9jYXRlKDEpOworICAgICAgICBmQXJyYXlbMF0gPSBzcmNDaGFyOworICAgICAgICBmQXJyYXlTaXplID0gMTsKKyAgICAgICAgZkdhcCA9IDE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaW50IGxlbmd0aCA9IGxpbWl0IC0gc3RhcnQ7CisgICAgICAgIGlmIChzdGFydCA9PSBmR2FwICYmIGZBcnJheS5sZW5ndGggPiBmQXJyYXlTaXplIC0gbGVuZ3RoKSB7CisgICAgICAgICAgICBmQXJyYXlbZkdhcF0gPSBzcmNDaGFyOworICAgICAgICAgICAgZkdhcCArPSAxOworICAgICAgICAgICAgZkFycmF5U2l6ZSArPSAxIC0gbGVuZ3RoOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVwbGFjZShzdGFydCwgbGltaXQsIG5ldyBjaGFyW10geyBzcmNDaGFyfSAsIDAsIDEpOworICAgICAgICB9CisgICAgfQorICB9CisKKyAgLyoqIFJldHVybiB0aGUgY2hhciBhdCBwb3MuICovCisKKyAgcHVibGljIGNoYXIgYXQoaW50IHBvcykKKyAgeworICAgIGlmIChwb3MgPCAwIHx8IHBvcyA+PSBmQXJyYXlTaXplKSB7CisgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgfQorICAgIHJldHVybiBwb3MgPCBmR2FwID8gZkFycmF5W3Bvc10gOiBmQXJyYXlbZkFycmF5Lmxlbmd0aCAtIGZBcnJheVNpemUgKyBwb3NdOworICB9CisKKyAgLyoqIENvcHkgdGhlIGNoYXJzIGZyb20gc3RhcnQgdG8gbGltaXQgdG8gZHN0IHN0YXJ0aW5nIGF0IGRzdFN0YXJ0LiAqLworCisgIHB1YmxpYyB2b2lkIGF0KGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gZHN0LCBpbnQgZHN0U3RhcnQpCisgIHsKKyAgICBpbnQgbGVuZ3RoID0gbGltaXQgLSBzdGFydDsKKworICAgIGlmIChzdGFydCA8IDAgfHwgbGltaXQgPCBzdGFydCB8fCBsaW1pdCA+IGZBcnJheVNpemUpIHsKKyAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigpOworICAgIH0KKworICAgIGlmIChsaW1pdCA8PSBmR2FwKSB7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZkFycmF5LCBzdGFydCwgZHN0LCBkc3RTdGFydCwgbGVuZ3RoKTsKKyAgICB9IGVsc2UgaWYgKHN0YXJ0ID49IGZHYXApIHsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmQXJyYXksIGZBcnJheS5sZW5ndGggLSBmQXJyYXlTaXplICsgc3RhcnQsIGRzdCwgZHN0U3RhcnQsIGxlbmd0aCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmQXJyYXksIHN0YXJ0LCBkc3QsIGRzdFN0YXJ0LCBmR2FwIC0gc3RhcnQpOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZBcnJheSwgZkFycmF5Lmxlbmd0aCAtIGZBcnJheVNpemUgKyBmR2FwLCBkc3QsIGRzdFN0YXJ0ICsgZkdhcCAtIHN0YXJ0LCBsaW1pdCAtIGZHYXApOworICAgIH0KKyAgfQorCisgIC8qKiBSZXR1cm4gdGhlIG51bWJlciBvZiBjaGFycyBpbiB0aGUgYnVmZmVyLiAqLworCisgIHB1YmxpYyBmaW5hbCBpbnQgbGVuZ3RoKCkKKyAgeworICAgIHJldHVybiBmQXJyYXlTaXplOworICB9CisKKyAgLyoqIFJldHVybiB0aGUgbnVtYmVyIG9mIGNoYXJzIHRoZSBidWZmZXIgY2FuIGhvbGQgYmVmb3JlIGl0IG11c3QgcmVhbGxvY2F0ZS4gKi8KKworICBwdWJsaWMgZmluYWwgaW50IGNhcGFjaXR5KCkKKyAgeworICAgIHJldHVybiBmQXJyYXkgIT0gbnVsbCA/IGZBcnJheS5sZW5ndGggOiAwOworICB9CisKKyAgLyoqIFJlc2VydmUgY2FwYWNpdHkgY2hhcnMgYXQgc3RhcnQuIFV0aWxpdHkgdG8gb3B0aW1pemUgYSBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGF0IHN0YXJ0LiAqLworCisgIHB1YmxpYyB2b2lkIHJlc2VydmVDYXBhY2l0eShpbnQgc3RhcnQsIGludCBjYXBhY2l0eSkKKyAgeworICAgIHJlcGxhY2Uoc3RhcnQsIHN0YXJ0LCAoY2hhcltdKW51bGwsIDAsIGNhcGFjaXR5KTsKKyAgfQorCisgIC8qKiBNaW5pbWl6ZSB0aGUgc3RvcmFnZSB1c2VkIGJ5IHRoZSBidWZmZXIuICovCisKKyAgcHVibGljIHZvaWQgY29tcHJlc3MoKQorICB7CisgICAgaW52YWxpZGF0ZSgpOworICAgIGlmIChmQXJyYXlTaXplID09IDApIHsKKyAgICAgICAgZkFycmF5ID0gbnVsbDsKKyAgICAgICAgZkdhcCA9IDA7CisgICAgfSBlbHNlIGlmIChmQXJyYXlTaXplICE9IGZBcnJheS5sZW5ndGgpIHsKKyAgICAgICAgY2hhcltdIHRlbXAgPSBuZXcgY2hhcltmQXJyYXlTaXplXTsKKyAgICAgICAgYXQoMCwgZkFycmF5U2l6ZSwgdGVtcCwgMCk7CisgICAgICAgIGZBcnJheSA9IHRlbXA7CisgICAgICAgIGZHYXAgPSBmQXJyYXlTaXplOworICAgIH0KKyAgfQorCisgIC8qKiBEaXNwbGF5IHRoZSBidWZmZXIuICovCisKKyAgcHVibGljIFN0cmluZyB0b1N0cmluZygpCisgIHsKKyAgICBpZiAoZkFycmF5ICE9IG51bGwpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdCdWZmZXIoKQorICAgICAgICAuYXBwZW5kKCJsaW1pdDogIikuYXBwZW5kKGZBcnJheS5sZW5ndGgpCisgICAgICAgIC5hcHBlbmQoIiwgc2l6ZTogIikuYXBwZW5kKGZBcnJheVNpemUpCisgICAgICAgIC5hcHBlbmQoIiwgZ2FwOiAiKS5hcHBlbmQoZkdhcCkKKyAgICAgICAgLmFwcGVuZCgiLCAiKS5hcHBlbmQoZkFycmF5LCAwLCBmR2FwKQorICAgICAgICAuYXBwZW5kKGZBcnJheSwgZkFycmF5Lmxlbmd0aCAtIGZBcnJheVNpemUgKyBmR2FwLCBmQXJyYXlTaXplIC0gZkdhcCkKKyAgICAgICAgLnRvU3RyaW5nKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoIlRoZSBidWZmZXIgaXMgZW1wdHkuIik7CisgICAgfQorICB9CisKKyAgcHVibGljIENoYXJhY3Rlckl0ZXJhdG9yIGNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICBWYWxpZGF0aW9uIHZhbCA9IGdldFZhbGlkYXRpb24oKTsKKyAgICByZXR1cm4gbmV3IENoYXJCdWZmZXJJdGVyYXRvcihzdGFydCwgbGltaXQsIGZBcnJheSwgZkFycmF5U2l6ZSwgZkdhcCwgdmFsKTsKKyAgfQorCisgIC8qKiBUaGUgcmVzaXppbmcgYWxnb3JpdGhtLiBSZXR1cm4gYSB2YWx1ZSA+PSBtaW5TaXplLiAqLworCisgIHByb3RlY3RlZCBpbnQgYWxsb2NhdGlvbihpbnQgbWluU2l6ZSkKKyAgeworICAgIC8vICAgIHJldHVybiAobWluU2l6ZSArIGtHcm93U2l6ZSkgJiB+KGtHcm93U2l6ZSAtIDEpOworICAgIHJldHVybiBtaW5TaXplIDwga0dyb3dTaXplID8ga0dyb3dTaXplIDogKG1pblNpemUgKiAyICsga0dyb3dTaXplKSAmIH4oa0dyb3dTaXplIC0gMSk7CisgIH0KKworICAvKiogQWxsb2NhdGUgYSBuZXcgY2hhcmFjdGVyIGFycmF5IG9mIGxpbWl0ID49IG1pblNpemUuICovCisKKyAgcHJvdGVjdGVkIGNoYXJbXSBhbGxvY2F0ZShpbnQgbWluU2l6ZSkKKyAgeworICAgIHJldHVybiBuZXcgY2hhclthbGxvY2F0aW9uKG1pblNpemUpXTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9DaGFyQnVmZmVySXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvQ2hhckJ1ZmZlckl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTU4ZDA1NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvQ2hhckJ1ZmZlckl0ZXJhdG9yLmphdmEKQEAgLTAsMCArMSwxMjkgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworZmluYWwgY2xhc3MgQ2hhckJ1ZmZlckl0ZXJhdG9yIGltcGxlbWVudHMgQ2hhcmFjdGVySXRlcmF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbG9uZWFibGUKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgaW50IGZSYW5nZVN0YXJ0OworICAgIHByaXZhdGUgaW50IGZSYW5nZUxpbWl0OworICAgIHByaXZhdGUgaW50IGZDdXJyZW50SW5kZXg7CisgICAgcHJpdmF0ZSBjaGFyIGZTdG9yYWdlW107CisgICAgcHJpdmF0ZSBpbnQgZkdhcDsKKyAgICBwcml2YXRlIGludCBmR2FwTGVuZ3RoOworICAgIHByaXZhdGUgVmFsaWRhdGlvbiBmVmFsaWRhdGlvbjsKKworICAgIENoYXJCdWZmZXJJdGVyYXRvcihpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgY2hhcltdIHN0b3JhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBnYXAsCisgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRpb24gdmFsaWRhdGlvbikgeworCisgICAgICAgIGlmIChzdGFydCA+IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzdGFydCA+IGxpbWl0Iik7CisgICAgICAgIH0KKyAgICAgICAgZlJhbmdlU3RhcnQgPSBzdGFydDsKKyAgICAgICAgZlJhbmdlTGltaXQgPSBsaW1pdDsKKyAgICAgICAgZkN1cnJlbnRJbmRleCA9IGZSYW5nZVN0YXJ0OworICAgICAgICBmU3RvcmFnZSA9IHN0b3JhZ2U7CisgICAgICAgIGZHYXAgPSBnYXA7CisgICAgICAgIGZHYXBMZW5ndGggPSAoc3RvcmFnZT09bnVsbD8gMCA6IHN0b3JhZ2UubGVuZ3RoKSAtIGxlbmd0aDsKKyAgICAgICAgZlZhbGlkYXRpb24gPSB2YWxpZGF0aW9uOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBjaGVja1ZhbGlkYXRpb24oKSB7CisKKyAgICAgICAgaWYgKCFmVmFsaWRhdGlvbi5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSXRlcmF0b3IgaXMgbm8gbG9uZ2VyIHZhbGlkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgY2hhciBmaXJzdCgpCisgICAgeworICAgICAgICByZXR1cm4gc2V0SW5kZXgoZlJhbmdlU3RhcnQpOworICAgIH0KKworICAgIHB1YmxpYyBjaGFyIGxhc3QoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNldEluZGV4KGZSYW5nZUxpbWl0IC0gMSk7CisgICAgfQorCisgICAgcHVibGljIGNoYXIgY3VycmVudCgpCisgICAgeworICAgICAgICBjaGVja1ZhbGlkYXRpb24oKTsKKyAgICAgICAgaWYgKGZDdXJyZW50SW5kZXggPCBmUmFuZ2VTdGFydCB8fCBmQ3VycmVudEluZGV4ID49IGZSYW5nZUxpbWl0KQorICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIGludCBpID0gKGZDdXJyZW50SW5kZXggPCBmR2FwKSA/IGZDdXJyZW50SW5kZXggOiAoZkN1cnJlbnRJbmRleCArIGZHYXBMZW5ndGgpOworICAgICAgICByZXR1cm4gZlN0b3JhZ2VbaV07CisgICAgfQorCisgICAgcHVibGljIGNoYXIgbmV4dCgpCisgICAgeworICAgICAgICBjaGVja1ZhbGlkYXRpb24oKTsKKyAgICAgICAgZkN1cnJlbnRJbmRleCsrOworICAgICAgICBpZiAoZkN1cnJlbnRJbmRleCA+PSBmUmFuZ2VMaW1pdCkKKyAgICAgICAgeworICAgICAgICAgICAgZkN1cnJlbnRJbmRleCA9IGZSYW5nZUxpbWl0OworICAgICAgICAgICAgcmV0dXJuIERPTkU7CisgICAgICAgIH0KKyAgICAgICAgaW50IGkgPSAoZkN1cnJlbnRJbmRleCA8IGZHYXApID8gZkN1cnJlbnRJbmRleCA6IChmQ3VycmVudEluZGV4ICsgZkdhcExlbmd0aCk7CisgICAgICAgIHJldHVybiBmU3RvcmFnZVtpXTsKKyAgICB9CisKKyAgICBwdWJsaWMgY2hhciBwcmV2aW91cygpCisgICAgeworICAgICAgICBmQ3VycmVudEluZGV4LS07CisgICAgICAgIGlmIChmQ3VycmVudEluZGV4ID49IGZSYW5nZVN0YXJ0KQorICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQoKTsKKyAgICAgICAgZkN1cnJlbnRJbmRleCA9IGZSYW5nZVN0YXJ0OworICAgICAgICByZXR1cm4gRE9ORTsKKyAgICB9CisKKyAgICBwdWJsaWMgY2hhciBzZXRJbmRleChpbnQgaSkKKyAgICB7CisgICAgICAgIGlmIChpIDwgZlJhbmdlU3RhcnQgfHwgaSA+IGZSYW5nZUxpbWl0KQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBwb3NpdGlvbiIpOworICAgICAgICBmQ3VycmVudEluZGV4ID0gaTsKKyAgICAgICAgcmV0dXJuIGN1cnJlbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldEJlZ2luSW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZSYW5nZVN0YXJ0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0RW5kSW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZSYW5nZUxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBpbnQgZ2V0SW5kZXgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZDdXJyZW50SW5kZXg7CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBjbG9uZSgpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmNsb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKENsb25lTm90U3VwcG9ydGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9GYXN0SW50QmluYXJ5U2VhcmNoLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L0Zhc3RJbnRCaW5hcnlTZWFyY2guamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jOTkzZTI5NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvRmFzdEludEJpbmFyeVNlYXJjaC5qYXZhCkBAIC0wLDAgKzEsMTE1IEBACisvKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqLworCisvKgorICAgIDcvMjkvOTYKKyAgICAgICAgTW9kaWZpZWQgdG8gc2VhcmNoIHBvcnRpb25zIG9mIGFuIGludGVnZXIgYXJyYXkuICBTaG91bGQgYmUgcmV0ZXN0ZWQuCisqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworLyoqCisgKiBUaGlzIGNsYXNzIHNlYXJjaGVzIGEgc2VnbWVudCBvZiBhbiBhcnJheSBvZiBpbnRlZ2Vycy4gIFRoZSBzZWdtZW50CisgKiBtdXN0IGJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXIgKGJ1dCB0aGlzIGNsYXNzIGRvZXMgbm90IHZlcmlmeSB0aGlzKS4KKyAqIEFsc28sIHRoaXMgY2xhc3MgYWxpYXNlcyB0aGUgYXJyYXk7ICBpZiB0aGUgYXJyYXkgaXMgbW9kaWZpZWQgbGF0ZXIgdGhlCisgKiBzZWFyY2ggcmVzdWx0cyBhcmUgdW5kZWZpbmVkLgorICovCitmaW5hbCBjbGFzcyBGYXN0SW50QmluYXJ5U2VhcmNoCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGludCBkYXRhQXJyYXlbXTsKKyAgICBwcml2YXRlIGludCBhdXhTdGFydDsKKyAgICBwcml2YXRlIGludCBwb3dlcjsKKworICAgIHByaXZhdGUgaW50IGZGaXJzdEluZGV4OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGV4cDJbXSA9IHsgMSwgMiwgNCwgOCwgMTYsIDMyLCA2NCwgMTI4LCAyNTYsIDUxMiwgMTAyNCwgMjA0OCwgNDA5NiwgODE5MiwgMTYzODQsIDMyNzY4LCA2NTUzNiwgMTMxMDcyIH07CisKKyAgICBwdWJsaWMgRmFzdEludEJpbmFyeVNlYXJjaChpbnQgZGF0YVtdKQorICAgIHsKKyAgICAgICAgdGhpcyhkYXRhLCAwLCBkYXRhLmxlbmd0aCk7CisgICAgfQorCisgICAgcHVibGljIEZhc3RJbnRCaW5hcnlTZWFyY2goaW50IGRhdGFbXSwgaW50IGZpcnN0VmFsaWRJbmRleCwgaW50IHZhbGlkTGVuZ3RoKQorICAgIHsKKyAgICAgICAgc2V0RGF0YShkYXRhLCBmaXJzdFZhbGlkSW5kZXgsIHZhbGlkTGVuZ3RoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0RGF0YShpbnQgZGF0YVtdKSB7CisgICAgICAgIAorICAgICAgICBzZXREYXRhKGRhdGEsIDAsIGRhdGEubGVuZ3RoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0RGF0YShpbnQgZGF0YVtdLCBpbnQgZmlyc3RWYWxpZEluZGV4LCBpbnQgdmFsaWRMZW5ndGgpIHsKKworICAgICAgICBpZiAoZGF0YS5sZW5ndGggPCAxKSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisgICAgICAgIGlmIChkYXRhLmxlbmd0aCA+PSBleHAyW2V4cDIubGVuZ3RoLTFdKSB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCk7CisKKyAgICAgICAgZGF0YUFycmF5ID0gZGF0YTsKKyAgICAgICAgZkZpcnN0SW5kZXggPSBmaXJzdFZhbGlkSW5kZXg7CisKKyAgICAgICAgZm9yIChwb3dlciA9IGV4cDIubGVuZ3RoLTE7IHBvd2VyID4gMCAmJiB2YWxpZExlbmd0aCA8IGV4cDJbcG93ZXJdOyBwb3dlci0tKSB7fQorCisgICAgICAgIC8vIGF0IHRoaXMgcG9pbnQsIGFycmF5Lmxlbmd0aCA+PSAyXnBvd2VyCisKKyAgICAgICAgYXV4U3RhcnQgPSB2YWxpZExlbmd0aCAtIGV4cDJbcG93ZXJdOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGluZGV4IGluIHRoZSBhcnJheSBvZiB0aGUgZmlyc3QgZWxlbWVudCB3aGljaCBpcyBhdCBsZWFzdAorICAgICAqIGFzIGxhcmdlIGFzIDx0dD52YWx1ZTwvdHQ+LiAgSWYgdmFsdWUgaXMgbGFyZ2VyIHRoYW4gdGhlIGxhcmdlc3QKKyAgICAgKiBlbGVtZW50IGluIHRoZSBhcnJheSB0aGUgbGFzdCB2YWxpZCBpbmRleCBpbiB0aGUgYXJyYXkgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgcHVibGljIGludCBmaW5kSW5kZXgoaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgaW50IGluZGV4ID0gZXhwMltwb3dlcl0tMSArIGZGaXJzdEluZGV4OworICAgICAgICBpZiAodmFsdWUgPj0gZGF0YUFycmF5W2F1eFN0YXJ0ICsgZkZpcnN0SW5kZXhdKSB7CisgICAgICAgICAgICBpbmRleCArPSBhdXhTdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGF0IHRoaXMgcG9pbnQsIGluZGV4IGlzIHRoZSAidXBwZXIgbGltaXQiIG9mIHRoZSBzZWFyY2gKKworICAgICAgICBzd2l0Y2ggKHBvd2VyKSB7CisgICAgICAgIGNhc2UgMTc6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtNjU1MzZdKSBpbmRleCAtPSA2NTUzNjsKKyAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC0zMjc2OF0pIGluZGV4IC09IDMyNzY4OworICAgICAgICBjYXNlIDE1OgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTE2Mzg0XSkgaW5kZXggLT0gMTYzODQ7CisgICAgICAgIGNhc2UgMTQ6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtODE5Ml0pIGluZGV4IC09IDgxOTI7CisgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtNDA5Nl0pIGluZGV4IC09IDQwOTY7CisgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMjA0OF0pIGluZGV4IC09IDIwNDg7CisgICAgICAgIGNhc2UgMTE6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMTAyNF0pIGluZGV4IC09IDEwMjQ7CisgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtNTEyXSkgaW5kZXggLT0gNTEyOworICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMjU2XSkgaW5kZXggLT0gMjU2OworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMTI4XSkgaW5kZXggLT0gMTI4OworICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtNjRdKSBpbmRleCAtPSA2NDsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTMyXSkgaW5kZXggLT0gMzI7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC0xNl0pIGluZGV4IC09IDE2OworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtOF0pIGluZGV4IC09IDg7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleC00XSkgaW5kZXggLT0gNDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHZhbHVlIDwgZGF0YUFycmF5W2luZGV4LTJdKSBpbmRleCAtPSAyOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBpZiAodmFsdWUgPCBkYXRhQXJyYXlbaW5kZXgtMV0pIGluZGV4IC09IDE7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IGRhdGFBcnJheVtpbmRleF0pIGluZGV4IC09IDE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGluZGV4OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTUNoYXJCdWZmZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTUNoYXJCdWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40M2FiZjcxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NQ2hhckJ1ZmZlci5qYXZhCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKiBBIGR5bmFtaWMgY2hhcmFjdGVyIGFycmF5IG9wdGltaXplZCBmb3Igc2VxdWVuY2VzIG9mIGluc2VydAorICAgIG9yIGRlbGV0ZSBvcGVyYXRpb25zIGluIGEgbG9jYWwgcmVnaW9uLiAqLworCithYnN0cmFjdCBjbGFzcyBNQ2hhckJ1ZmZlcgoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHRleHQsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KTsKKyAgICBhYnN0cmFjdCB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBzcmNDaGFycywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpOworICAgIGFic3RyYWN0IHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgU3RyaW5nIHNyY1N0cmluZywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpOworICAgIGFic3RyYWN0IHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsIGludCBsaW1pdCwgY2hhciBzcmNDaGFyKTsKKyAgICBhYnN0cmFjdCBDaGFyYWN0ZXJJdGVyYXRvciBjcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcihpbnQgc3RhcnQsIGludCBsaW1pdCk7CisgICAgYWJzdHJhY3QgY2hhciBhdChpbnQgcG9zKTsKKyAgICBhYnN0cmFjdCB2b2lkIGF0KGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gZHN0LCBpbnQgZHN0U3RhcnQpOworCisgICAgYWJzdHJhY3QgaW50ICBsZW5ndGgoKTsKKworICAgIGFic3RyYWN0IGludCAgY2FwYWNpdHkoKTsKKyAgICBhYnN0cmFjdCB2b2lkIHJlc2VydmVDYXBhY2l0eShpbnQgcG9zLCBpbnQgbGVuZ3RoKTsKKyAgICBhYnN0cmFjdCB2b2lkIGNvbXByZXNzKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01Db25zdFRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTUNvbnN0VGV4dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcwMThkMDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01Db25zdFRleHQuamF2YQpAQCAtMCwwICsxLDMyMyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuRGF0YUZsYXZvcjsKKworLyoqCisgKiBNQ29uc3RUZXh0IGlzIGEgYmFzZSBjbGFzcyBmb3IgdGV4dCB3aXRoIG11bHRpcGxlIGNoYXJhY3RlciBhbmQKKyAqIHBhcmFncmFwaCBzdHlsZXMuICBUaGUgdGV4dCBpcyBhIHNlcXVlbmNlIG9mIFVuaWNvZGUgY2hhcmFjdGVycywKKyAqIHJlcHJlc2VudGVkIGJ5IDxjb2RlPmNoYXI8L2NvZGU+LiAgQ2hhcmFjdGVyIGFuZCBwYXJhZ3JhcGgKKyAqIHN0eWxlcyBhcmUgcmVwcmVzZW50ZWQgYnkgdGhlIDxjb2RlPkF0dHJpYnV0ZU1hcDwvY29kZT4gY2xhc3MuCisgKiA8cD4KKyAqIENoYXJhY3RlcnMgaW4gdGhlIHRleHQgYXJlIGFjY2Vzc2VkIHdpdGggYW4gaW50ZWdlciBpbmRleCB1c2luZyB0aGUKKyAqIDxjb2RlPmF0PC9jb2RlPiBtZXRob2QuCisgKiBWYWxpZCBpbmRpY2VzIGFyZSBiZXR3ZWVuIDAgYW5kIChsZW5ndGgtMSksIHdoZXJlIGxlbmd0aCBpcyB0aGUgbnVtYmVyCisgKiBvZiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LiAgQWRkaXRpb25hbGx5LCB0aGUKKyAqIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQgbWF5IGJlIGFjY2Vzc2VkIHRocm91Z2ggYQorICogPGNvZGU+amF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yPC9jb2RlPi4KKyAqIDxwPgorICogRXZlcnkgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGhhcyBhIGNoYXJhY3RlciBzdHlsZSBhc3NvY2lhdGVkIHdpdGggaXQsCisgKiByZXByZXNlbnRlZCBieSB0aGUgPGNvZGU+QXR0cmlidXRlTWFwPC9jb2RlPiBjbGFzcy4gIFRoZSBjaGFyYWN0ZXIKKyAqIHN0eWxlIGZvciBhIHBhcnRpY3VsYXIgY2hhcmFjdGVyIGNhbiBiZSBvYnRhaW5lZCB1c2luZyB0aGUKKyAqIDxjb2RlPmNoYXJhY3RlclN0eWxlQXQ8L2NvZGU+IG1ldGhvZC4KKyAqIDxwPgorICogRWFjaCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgaXMgY29udGFpbmVkIGluIGEgcGFyYWdyYXBoLiAgQSBwYXJhZ3JhcGgKKyAqIGlzIGEgcmFuZ2Ugb2YgdGV4dCBpbmNsdWRpbmcgYW5kIHRlcm1pbmF0ZWQgYnkgYQorICogcGFyYWdyYXBoIHNlcGFyYXRvciAoZWl0aGVyIDxjb2RlPlxuPC9jb2RlPiBvciA8Y29kZT5VKzIwMjk8L2NvZGU+KS4KKyAqIEV2ZXJ5CisgKiBwYXJhZ3JhcGggaGFzIGEgcGFyYWdyYXBoIHN0eWxlIGFzc29jaWF0ZWQgd2l0aCBpdCwgcmVwcmVzZW50ZWQKKyAqIGJ5IHRoZSA8Y29kZT5BdHRyaWJ1dGVNYXA8L2NvZGU+IGNsYXNzLiAgUGFyYWdyYXBoIGJvdW5kYXJpZXMgYW5kCisgKiBzdHlsZXMgY2FuIGJlIG9idGFpbmVkIGZyb20gdGhlIE1Db25zdFRleHQuCisgKiA8cD4KKyAqIFRoaXMgY2xhc3MgZG9lcyBub3QgaGF2ZSBtZXRob2RzIGZvciBtb2RpZnlpbmcgdGhlIHRleHQgb3Igc3R5bGVzLgorICogSG93ZXZlciwgc3ViY2xhc3NlcyBtYXkgYWRkIHRoaXMgY2FwYWJpbGl0eSwgc28gaXQgaXMgbm90IHNhZmUgdG8KKyAqIGFzc3VtZSB0aGF0IGFuIE1Db25zdFRleHQgaW5zdGFuY2UgaXMgaW1tdXRhYmxlLiAgSW4gcGFydGljdWxhciwKKyAqIHRoZSBNVGV4dCBjbGFzcyBhZGRzIG1vZGlmaWNhdGlvbiBwcm90b2NvbCB0byB0aGlzIGNsYXNzLiAgQ2xpZW50cworICogY2FuIGRldGVjdCB3aGV0aGVyIGFuIE1Db25zdFRleHQgaGFzIGNoYW5nZWQgYnkga2VlcGluZyB0cmFjayBvZiBpdHMKKyAqIHRpbWVzdGFtcC4KKyAqIDxwPgorICogQSBEYXRhRmxhdm9yIGZvciBjbGlwYm9hcmQgY29udGVudCBpcyBkZWZpbmVkIGluIHRoaXMgY2xhc3MuICBVc2luZworICogdGhpcyBEYXRhRmxhdm9yIGluc3VyZXMgdGhhdCBhbGwgY2xpZW50cyB3aWxsIHJlY29nbml6ZSBNQ29uc3RUZXh0CisgKiBjb250ZW50IG9uIHRoZSBjbGlwYm9hcmQuCisgKiBAc2VlIE1UZXh0CisgKiBAc2VlIEF0dHJpYnV0ZU1hcAorICogQHNlZSBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzZWUgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkRhdGFGbGF2b3IKKyAqLworcHVibGljIGFic3RyYWN0IGNsYXNzIE1Db25zdFRleHQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAgKiBUaGUgRGF0YUZsYXZvciBmb3IgTUNvbnN0VGV4dCBjbGlwYm9hcmQgY29udGVudC4gIFVzZWQgdG8KKyAgICAgKiBpbmRpY2F0ZSB0aGF0IGNsaXBib2FyZCBkYXRhIGhhcyBhbiBNQ29uc3RUZXh0IHJlcHJlc2VudGF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRGF0YUZsYXZvciBzdHlsZWRUZXh0Rmxhdm9yID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRGF0YUZsYXZvcihNQ29uc3RUZXh0LmNsYXNzLCAiU3R5bGVkIFRleHQiKTsKKworICAgIHByb3RlY3RlZCBNQ29uc3RUZXh0KCkgeworICAgIH0KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gQ0hBUkFDVEVSIEFDQ0VTUworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLyoqCisqIFJldHVybiB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIGEgdmFsaWQgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBjaGFyIGF0KGludCBwb3MpOworCisvKioKKyogQ29weSB0aGUgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KQorKiBpbnRvIHRoZSBhcnJheSA8Y29kZT5kc3Q8L2NvZGU+LCBiZWdpbm5pbmcgYXQgPGNvZGU+ZHN0U3RhcnQ8L2NvZGU+LgorKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIGZpcnN0IGNoYXJhY3RlciB3aGljaCB3aWxsIGJlIGNvcGllZCBpbnRvIHRoZSBhcnJheQorKiBAcGFyYW0gbGltaXQgb2Zmc2V0IGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciB3aGljaCB3aWxsIGJlIGNvcGllZCBpbnRvIHRoZSBhcnJheQorKiBAcGFyYW0gZHN0IGFycmF5IGluIHdoaWNoIHRvIGNvcHkgY2hhcmFjdGVycy4gIFRoZSBsZW5ndGggb2YgPGNvZGU+ZHN0PC9jb2RlPiBtdXN0IGJlIGF0IGxlYXN0CisqICg8Y29kZT5kc3RTdGFydCArIGxpbWl0IC0gc3RhcnQ8L2NvZGU+KS4KKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgZXh0cmFjdENoYXJzKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyW10gZHN0LCBpbnQgZHN0U3RhcnQpOworCisvKioKKyogQ3JlYXRlIGFuIE1Db25zdFRleHQgY29udGFpbmluZyB0aGUgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGluIHRoZSByYW5nZQorKiBbPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5saW1pdDwvY29kZT4pLgorKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgbmV3IHRleHQKKyogQHBhcmFtIGxpbWl0IG9mZnNldCBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIG5ldyB0ZXh0CisqIEByZXR1cm4gYW4gTUNvbnN0VGV4dCBvYmplY3QgY29udGFpbmluZyB0aGUgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGluIHRoZSBnaXZlbiByYW5nZQorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgTUNvbnN0VGV4dCBleHRyYWN0KGludCBzdGFydCwgaW50IGxpbWl0KTsKKworLyoqCisqIENyZWF0ZSBhIDxjb2RlPmphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb3ZlciBhbGwKKyogb2YgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQuICBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGNhbGxzCisqIDxjb2RlPmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKDAsIGxlbmd0aCgpKTwvY29kZT4KKyogQHJldHVybiBhIDxjb2RlPmphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb3ZlciBhbGwKKyogICAgICBvZiB0aGUgY2hhcmFjdGVycyBpbiB0aGUgdGV4dAorKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoKSB7CisKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKDAsIGxlbmd0aCgpKTsKKyAgICB9CisKKy8qKgorKiBDcmVhdGUgYSA8Y29kZT5qYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG92ZXIgdGhlCisqIGdpdmVuIHJhbmdlIG9mIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQuCisqIEBwYXJhbSBzdGFydCB0aGUgZmlyc3QgaW5kZXggaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorKiBAcGFyYW0gbGltaXQgdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisqIEByZXR1cm4gYSA8Y29kZT5qYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG92ZXIgdGhlCisqICAgICBnaXZlbiByYW5nZQorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgQ2hhcmFjdGVySXRlcmF0b3IgY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQpOworCisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFNJWkUvQ0FQQUNJVFkKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8qKgorKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgTUNvbnN0VGV4dCBvYmplY3QuICBUaGUgbGVuZ3RoIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgdGV4dC4KKyogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBNQ29uc3RUZXh0IG9iamVjdAorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGxlbmd0aCgpOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBDaGFyYWN0ZXIgc3R5bGVzCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy8qKgorKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIGNoYXJhY3RlciBzdHlsZSBydW4KKyogY29udGFpbmluZyBwb3MuICBBbGwgY2hhcmFjdGVycyBpbiBhIHN0eWxlIHJ1biBoYXZlIHRoZSBzYW1lIGNoYXJhY3RlcgorKiBzdHlsZS4KKyogQHJldHVybiB0aGUgc3R5bGUgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBjaGFyYWN0ZXJTdHlsZVN0YXJ0KGludCBwb3MpOworCisvKioKKyogUmV0dXJuIHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIGNoYXJhY3RlciBzdHlsZSBydW4KKyogY29udGFpbmluZyBwb3MuICBBbGwgY2hhcmFjdGVycyBpbiBhIHN0eWxlIHJ1biBoYXZlIHRoZSBzYW1lIGNoYXJhY3RlcgorKiBzdHlsZS4KKyogQHJldHVybiB0aGUgc3R5bGUgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBjaGFyYWN0ZXJTdHlsZUxpbWl0KGludCBwb3MpOworCisvKioKKyogUmV0dXJuIHRoZSBzdHlsZSBhcHBsaWVkIHRvIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgYSB2YWxpZCBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJuIHRoZSBzdHlsZSBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgQXR0cmlidXRlTWFwIGNoYXJhY3RlclN0eWxlQXQoaW50IHBvcyk7CisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFBBUkFHUkFQSCBCT1VOREFSSUVTCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvKioKKyogUmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBhIHZhbGlkIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgcGFyYWdyYXBoU3RhcnQoaW50IHBvcyk7CisKKy8qKgorKiBSZXR1cm4gdGhlIGxpbWl0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIGEgdmFsaWQgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybiB0aGUgbGltaXQgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBwYXJhZ3JhcGhMaW1pdChpbnQgcG9zKTsKKworLyoqCisqIFJldHVybiB0aGUgcGFyYWdyYXBoIHN0eWxlIGFwcGxpZWQgdG8gdGhlIHBhcmFncmFwaCBjb250YWluaW5nIG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIGEgdmFsaWQgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybiB0aGUgcGFyYWdyYXBoIHN0eWxlIGluIGVmZmVjdCBhdCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBBdHRyaWJ1dGVNYXAgcGFyYWdyYXBoU3R5bGVBdChpbnQgcG9zKTsKKworLyoqCisqIFJldHVybiB0aGUgY3VycmVudCB0aW1lIHN0YW1wLiAgVGhlIHRpbWUgc3RhbXAgaXMKKyogaW5jcmVtZW50ZWQgd2hlbmV2ZXIgdGhlIGNvbnRlbnRzIG9mIHRoZSBNQ29uc3RUZXh0IGNoYW5nZXMuCisqIEByZXR1cm4gdGhlIGN1cnJlbnQgcGFyYWdyYXBoIHN0eWxlIHRpbWUgc3RhbXAKKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRUaW1lU3RhbXAoKTsKKworLyoqCisqIFJldHVybiB0aGUgc3RhcnQgb2YgdGhlIGRhbWFnZWQgcmFuZ2UuICBJZiB0aGUgc3RhcnQgaXMgbm90IGxlc3MKKyogdGhhbiB0aGUgdGhlIGxpbWl0IG9mIHRoZSBkYW1hZ2VkIHJhbmdlLCB0aGVuIHRoZSBkYW1hZ2VkIHJhbmdlCisqIGlzIGVtcHR5LgorKiBAcmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgZGFtYWdlZCByYW5nZQorKiBAc2VlICNkYW1hZ2VkUmFuZ2VMaW1pdAorKiBAc2VlIE1UZXh0I3Jlc2V0RGFtYWdlZFJhbmdlCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZGFtYWdlZFJhbmdlU3RhcnQoKTsKKworLyoqCisqIFJldHVybiB0aGUgbGltaXQgb2YgdGhlIGRhbWFnZWQgcmFuZ2UuICBJZiB0aGUgc3RhcnQgaXMgbm90IGxlc3MKKyogdGhhbiB0aGUgdGhlIGxpbWl0IG9mIHRoZSBkYW1hZ2VkIHJhbmdlLCB0aGVuIHRoZSBkYW1hZ2VkIHJhbmdlCisqIGlzIGVtcHR5LgorKiBAcmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgZGFtYWdlZCByYW5nZQorKiBAc2VlICNkYW1hZ2VkUmFuZ2VTdGFydAorKiBAc2VlIE1UZXh0I3Jlc2V0RGFtYWdlZFJhbmdlCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZGFtYWdlZFJhbmdlTGltaXQoKTsKKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gRXF1YWxpdHkgYW5kIGhhc2hDb2RlCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvKioKKyogQ29tcGFyZSB0aGlzIHRvIGFub3RoZXIgT2JqZWN0IGZvciBlcXVhbGl0eS4gIFRoaXMgaXMKKyogZXF1YWwgdG8gcmhzIGlmIHJocyBpcyBhbiBNQ29uc3RUZXh0IHdoaWNoIGlzIGVxdWFsCisqIHRvIHRoaXMuCisqIEBwYXJhbSByaHMgT2JqZWN0IHRvIGNvbXBhcmUgdG8KKyogQHJldHVybiB0cnVlIGlmIHRoaXMgZXF1YWxzIDxjb2RlPnJoczwvY29kZT4KKyovCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gZXF1YWxzKE9iamVjdCByaHMpIHsKKworICAgICAgICBNQ29uc3RUZXh0IG90aGVyVGV4dDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgb3RoZXJUZXh0ID0gKE1Db25zdFRleHQpIHJoczsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGVxdWFscyhvdGhlclRleHQpOworICAgIH0KKworLyoqCisqIENvbXBhcmUgdGhpcyB0byBhbm90aGVyIE1Db25zdFRleHQgZm9yIGVxdWFsaXR5LiAgVGhpcyBpcworKiBlcXVhbCB0byByaHMgaWYgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiByaHMgYXJlIHRoZQorKiBzYW1lIGFzIHRoaXMuICBTdWJjbGFzc2VzIG1heSBvdmVycmlkZSB0aGlzIGltcGxlbWVudGF0aW9uCisqIGZvciBlZmZpY2llbmN5LCBidXQgdGhleSBzaG91bGQgcHJlc2VydmUgdGhlc2Ugc2VtYW50aWNzLgorKiBEZXRlcm1pbmluZyB0aGF0IHR3byBNQ29uc3RUZXh0IGluc3RhbmNlcyBhcmUgZXF1YWwgbWF5IGJlCisqIGFuIGV4cGVuc2l2ZSBvcGVyYXRpb24sIHNpbmNlIGV2ZXJ5IGNoYXJhY3RlciBhbmQgc3R5bGUgbXVzdAorKiBiZSBjb21wYXJlZC4KKyogQHBhcmFtIHJocyBPYmplY3QgdG8gY29tcGFyZSB0bworKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBlcXVhbHMgPGNvZGU+cmhzPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoTUNvbnN0VGV4dCByaHMpIHsKKworICAgICAgICBpZiAocmhzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyaHMgPT0gdGhpcykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaGFzaENvZGUoKSAhPSByaHMuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxlbmd0aCA9IGxlbmd0aCgpOworICAgICAgICBpZiAobGVuZ3RoICE9IHJocy5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpIDwgbGVuZ3RoICYmIGF0KGkpICE9IHJocy5hdChpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IHN0YXJ0ID0gMDsgc3RhcnQgPCBsZW5ndGg7KSB7CisgICAgICAgICAgICBpZiAoIWNoYXJhY3RlclN0eWxlQXQoc3RhcnQpLmVxdWFscyhyaHMuY2hhcmFjdGVyU3R5bGVBdChzdGFydCkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGxpbWl0ID0gY2hhcmFjdGVyU3R5bGVMaW1pdChzdGFydCk7CisgICAgICAgICAgICBpZiAobGltaXQgIT0gcmhzLmNoYXJhY3RlclN0eWxlTGltaXQoc3RhcnQpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RhcnQgPSBsaW1pdDsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IHN0YXJ0ID0gMDsgc3RhcnQgPCBsZW5ndGg7KSB7CisKKyAgICAgICAgICAgIGlmICghcGFyYWdyYXBoU3R5bGVBdChzdGFydCkuZXF1YWxzKHJocy5wYXJhZ3JhcGhTdHlsZUF0KHN0YXJ0KSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzdGFydCA9IHBhcmFncmFwaExpbWl0KHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwYXJhZ3JhcGhTdHlsZUF0KGxlbmd0aCkuZXF1YWxzKHJocy5wYXJhZ3JhcGhTdHlsZUF0KGxlbmd0aCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaGFzaENvZGUgZm9yIHRoaXMgTUNvbnN0VGV4dC4gIEFuIGVtcHR5IE1Db25zdFRleHQKKyAgICAgKiBoYXMgaGFzaENvZGUgMDsgIGEgbm9uZW1wdHkgTUNvbnN0VGV4dCdzIGhhc2hDb2RlIGlzCisgICAgICogPGJsb2NrcXVvdGU+PHByZT4KKyAgICAgKiAgICAgICBhdCgwKSArCisgICAgICogICAgICAgYXQobGVuZ3RoLzIpKjMxXjEgKworICAgICAqICAgICAgIGF0KGxlbmd0aC0xKSozMV4yICsKKyAgICAgKiAgICAgICBjaGFyYWN0ZXJTdHlsZUF0KDApLmhhc2hDb2RlKCkqMzFeMyArCisgICAgICogICAgICAgcGFyYWdyYXBoU3R5bGVBdChsZW5ndGgtMSkuaGFzaENvZGUoKSozMV40CisgICAgICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICAgICAqIHdoZXJlIDxjb2RlPl48L2NvZGU+IGlzIGV4cG9uZW50aWF0aW9uIChub3QgYml0d2lzZSBYT1IpLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgaGFzaENvZGUoKSB7CisKKyAgICAgICAgaW50IGhhc2hDb2RlID0gMDsKKyAgICAgICAgaW50IGxlbmd0aCA9IGxlbmd0aCgpOworCisgICAgICAgIGlmIChsZW5ndGggPiAwKSB7CisgICAgICAgICAgICBoYXNoQ29kZSA9IHBhcmFncmFwaFN0eWxlQXQobGVuZ3RoLTEpLmhhc2hDb2RlKCk7CisgICAgICAgICAgICBoYXNoQ29kZSA9IGhhc2hDb2RlKjMxICsgY2hhcmFjdGVyU3R5bGVBdCgwKS5oYXNoQ29kZSgpOworICAgICAgICAgICAgaGFzaENvZGUgPSBoYXNoQ29kZSozMSArIGF0KGxlbmd0aC0xKTsKKyAgICAgICAgICAgIGhhc2hDb2RlID0gaGFzaENvZGUqMzEgKyBhdChsZW5ndGgvMik7CisgICAgICAgICAgICBoYXNoQ29kZSA9IGhhc2hDb2RlKjMxICsgYXQoMCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaGFzaENvZGU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NUGFyYWdyYXBoQnVmZmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01QYXJhZ3JhcGhCdWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYTkwMWUwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NUGFyYWdyYXBoQnVmZmVyLmphdmEKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCithYnN0cmFjdCBjbGFzcyBNUGFyYWdyYXBoQnVmZmVyCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworLyoqCisqIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyBvZmZzZXQgPHR0PnBvczwvdHQ+LgorKi8KKyAgICBhYnN0cmFjdCBpbnQgcGFyYWdyYXBoU3RhcnQoaW50IHBvcyk7CisKKy8qKgorKiBSZXR1cm5zIHRoZSBsaW1pdCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgb2Zmc2V0IDx0dD5wb3M8L3R0Pi4KKyovCisgICAgYWJzdHJhY3QgaW50IHBhcmFncmFwaExpbWl0KGludCBwb3MpOworCisvKioKKyogUmV0dXJucyB0aGUgc3R5bGUgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIG9mZnNldCA8dHQ+cG9zPC90dD4uCisqLworICAgIGFic3RyYWN0IEF0dHJpYnV0ZU1hcCBwYXJhZ3JhcGhTdHlsZUF0KGludCBvZmZzZXQpOworCisvKioKKyogUHJvY2VzcyBhIGNoYXJhY3RlciBpbnNlcnRpb24gYXQgb2Zmc2V0IDx0dD5zdGFydDwvdHQ+LgorKiBJZiBhIHBhcmFncmFwaCBicmVhayB3YXMgaW5zZXJ0ZWQsIHByb3BvZ2F0ZSBwYXJhZ3JhcGggc3R5bGUgYXQKKyogPHR0PnN0YXJ0PC90dD4gdG8gbmV3IHBhcmFncmFwaC4KKyovCisgICAgYWJzdHJhY3Qgdm9pZCBpbnNlcnRUZXh0KGludCBzdGFydCwgY2hhciBpbnNlcnRlZENoYXIpOworCisvKioKKyogUHJvY2VzcyBjaGFyYWN0ZXIgaW5zZXJ0aW9uIGF0IG9mZnNldCA8dHQ+c3RhcnQ8L3R0Pi4KKyogRWFjaCBuZXcgcGFyYWdyYXBoIGdldHMgcGFyYWdyYXBoIHN0eWxlIGF0CisqIDx0dD5zdGFydDwvdHQ+LgorKi8KKyAgICBhYnN0cmFjdCB2b2lkIGluc2VydFRleHQoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gc3JjQ2hhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNyY0xpbWl0KTsKKworLyoqCisqIFByb2Nlc3MgZGVsZXRpb24gYnkgcmVtb3ZpbmcgcGFyYWdyYXBoIGJyZWFrcyBjb250YWluZWQgaW4KKyogZGVsZXRlZCByYW5nZS4gIFByb3BvZ2F0ZSBwYXJhZ3JhcGggc3R5bGVzIGJhY2t3YXJkLCBpZiBuZWNlc3NhcnkuCisqLworICAgIGFic3RyYWN0IHZvaWQgZGVsZXRlVGV4dChpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGFtYWdlZFJhbmdlKTsKKworLyoKKyogUmVwbGFjZSBwYXJhZ3JhcGggYnJlYWtzL3N0eWxlcyBiZXR3ZWVuIHN0YXJ0IGFuZCBsaW1pdCB3aXRoIHBhcmFncmFwaCBicmVha3Mvc3R5bGVzCisqIGZyb20gPHR0PnNyY1RleHQ8L3R0Pi4KKyogQHBhcmFtIHN0YXJ0IGFuIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEBwYXJhbSBsaW1pdCB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIHRvIHJlcGxhY2UKKyogQHBhcmFtIHNyY1RleHQgdGhlIHRleHQgZnJvbSB3aGljaCBuZXcgcGFyYWdyYXBocyBhcmUgdGFrZW4KKyogQHBhcmFtIHNyY1N0YXJ0IHRoZSBzdGFydCBvZiB0aGUgcmFuZ2UgaW4gPGNvZGU+c3JjVGV4dDwvY29kZT4gdG8gY29weQorKiBAcGFyYW0gc3JjTGltaXQgdGhlIGZpcnN0IGluZGV4IGFmdGVyIHRoZSByYW5nZSBpbiA8Y29kZT5zcmNUZXh0PC9jb2RlPiB0byBjb3B5CisqLworICAgIGFic3RyYWN0IHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBzcmNUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGFtYWdlZFJhbmdlKTsKKworLyoqCisqIFNldCB0aGUgc3R5bGUgb2YgYWxsIHBhcmFncmFwaHMgY29udGFpbmluZyBvZmZzZXRzIGluIHRoZSByYW5nZSBbc3RhcnQsIGxpbWl0KSB0bworKiA8dHQ+c3R5bGU8L3R0Pi4KKyovCisgICAgYWJzdHJhY3QgYm9vbGVhbiBtb2RpZnlQYXJhZ3JhcGhTdHlsZXMoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIGRhbWFnZWRSYW5nZSk7CisKKy8qKgorKiBNaW5pbWl6ZSB0aGUgYW1vdW50IG9mIG1lbW9yeSB1c2VkIGJ5IHRoaXMgb2JqZWN0LgorKi8KKyAgICBhYnN0cmFjdCB2b2lkIGNvbXByZXNzKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01TdHlsZUJ1ZmZlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NU3R5bGVCdWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NjI5ZTU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NU3R5bGVCdWZmZXIuamF2YQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworLyoKKyAgICA4LzEvOTYKKyAgICAgICAgU3R5bGUgLT4gUmVzb2x2ZWRTdHlsZQorICAgIDgvNy85NiBqZgorICAgICAgICBhZGRlZCBjb3VudFN0eWxlcyBhbmQgZ2V0U3R5bGVzIHByb3RvY29sCisgICAgOC8xMy85NgorICAgICAgICBSZXNvbHZlZFN0eWxlLT5TdHlsZQorICAgIDgvMjIvOTYgamYKKyAgICAgICAgUmVtb3ZlZCB0aGUgc2V0SXRlcmF0b3IgbWV0aG9kcy4KKyovCisvKgorKiBNU3R5bGVCdWZmZXIgaXMgdGhlIGFic3RyYWN0IGludGVyZmFjZSBmb3IgYSBjbGFzcyB3aGljaCBtYWludGFpbnMKKyogc3R5bGUgcnVucyBpbiBhbiA8dHQ+TVRleHQ8L3R0Pi4gIEEgInN0eWxlIHJ1biIgY29uc2lzdHMgb2YgYQorKiBzdHlsZSBhbmQgdGhlIGludGVydmFsIG9uIHdoaWNoIHRoZSBzdHlsZSBhcHBsaWVzLgorKiA8cD4KKyogTVN0eWxlQnVmZmVyIGluY2x1ZGVzIG1ldGhvZHMgdG8gY2FsbCB3aGVuIHRleHQgaXMgaW5zZXJ0ZWQgaW50bworKiBvciBkZWxldGVkIGZyb20gdGhlIDx0dD5NVGV4dDwvdHQ+LiAgVGhlc2UgbWV0aG9kcyB1cGRhdGUgdGhlCisqIHN0eWxlIHJ1bnMgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBjb21tb25seSBhY2NlcHRlZCBiZWhhdmlvciBmb3IKKyogc3R5bGUgcnVucy4KKyogPHA+CisqIEFkZGl0aW9uYWxseSwgTVN0eWxlQnVmZmVyIHByb3ZpZGVzIG1ldGhvZHMgZm9yIHJlcGxhY2luZyB0aGUgc3R5bGUgcnVucyBvbiBhCisqIHRleHQgcmFuZ2Ugd2l0aCBhbm90aGVyIHNldCBvZiBzdHlsZSBydW5zLiAgTVN0eWxlQnVmZmVyIGRvZXMgbm90IGRvIHN0eWxlICJjb21iaW5pbmciIChmb3IKKyogZXhhbXBsZSwgYWRkaW5nIHRoZSBib2xkIGF0dHJpYnV0ZSB0byB0ZXh0IHdoaWNoIGlzIGl0YWxpY2l6ZWQpOyAgY2xpZW50cyBhcmUKKyogcmVzcG9uc2libGUgZm9yIGNvbXB1dGluZyB0aGUgY29tYmluZWQgc3R5bGVzLCBhbmQgcGFzc2luZyB0aGVzZSBzdHlsZXMgaW50bworKiBNU3R5bGVCdWZmZXIuCisqIDxwPgorKiBNU3R5bGVCdWZmZXIgc3VwcGxpZXMgYSBtZXRob2QgZm9yIHJlcGxhY2luZyB0aGUgc3R5bGUgcnVucyBvbiBhIHRleHQgcmFuZ2Ugd2l0aCB0aGUgcnVucworKiByZXByZXNlbnRlZCBpbiBhbiA8dHQ+TVN0eWxlUnVuSXRlcmF0b3I8L3R0Pi4gIFRoaXMgaXMgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgcGFzdGUKKyogb3BlcmF0aW9ucywgaW4gd2hpY2ggdGhlIHN0eWxlIHJ1bnMgb24gYSByYW5nZSBvZiB0ZXh0IGFyZSByZXBsYWNlZCBieSBzdHlsZSBydW5zCisqIGZyb20gYW4gZXh0ZXJuYWwgc291cmNlLgorKiA8cD4KKyoKKyogQGF1dGhvciBKb2huIFJhbGV5CisqCisqIEBzZWUgQXR0cmlidXRlTWFwCisqIEBzZWUgTVRleHQKKyovCithYnN0cmFjdCBjbGFzcyBNU3R5bGVCdWZmZXIKK3sKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisvKioKKyogUmVzcG9uZCB0byBhbiBpbnNlcnRpb24gaW4gdGhlIHRleHQuICBUaGUgbGVuZ3RoIG9mIHRoZSBsYXN0IHN0eWxlIHJ1biB3aGljaAorKiBiZWdpbnMgYmVmb3JlIDx0dD5zdGFydDwvdHQ+IGlzIGluY3JlYXNlZCBieSA8dHQ+bGltaXQtc3RhcnQ8L3R0Pi4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgd2hlcmUgdGhlIGluc2VydGlvbiBiZWdhbgorKiBAcGFyYW0gbGltaXQgdGhlIG9mZnNldCB3aGVyZSB0aGUgaW5zZXJ0aW9uIGVuZGVkCisqLworICAgIGFic3RyYWN0IHZvaWQgaW5zZXJ0VGV4dChpbnQgc3RhcnQsIGludCBsaW1pdCk7CisKKy8qKgorKiBSZXNwb25kIHRvIGEgZGVsZXRpb24gaW4gdGhlIHRleHQuICBUaGUgbGFzdCBzdHlsZSBydW4gYmVmb3JlCisqIDx0dD5zdGFydDwvdHQ+IGlzIHRydW5jYXRlZCB0byBlbmQgYXQgPHR0PnN0YXJ0PC90dD4uICBUaGUKKyogc3R5bGUgcnVuIGNvbnRhaW5pbmcgKDx0dD5zdGFydDwvdHQ+Kzx0dD5sZW5ndGg8L3R0PikgaXMgc2V0IHRvIGJlZ2luCisqIGF0ICg8dHQ+c3RhcnQ8L3R0Pis8dHQ+bGVuZ3RoPC90dD4pLiAgUnVucyBpbiBiZXR3ZWVuIGFyZSBkZWxldGVkLgorKiBJZiB0aGUgZGVsZXRpb24gb2NjdXJzIGVudGlyZWx5IHdpdGhpbiBvbmUgc3R5bGUgcnVuLCB0aGUgbGVuZ3RoIG9mIHRoZSBzdHlsZQorKiBydW4gaXMgcmVkdWNlZCBieSA8dHQ+bGVuZ3RoPC90dD4uCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSBkZWxldGlvbiBiZWdhbgorKiBAcGFyYW0gbGVuZ3RoIHRoZSBvZmZzZXQgd2hlcmUgdGhlIGRlbGV0aW9uIGVuZGVkCisqLworICAgIGFic3RyYWN0IHZvaWQgZGVsZXRlVGV4dChpbnQgc3RhcnQsIGludCBsaW1pdCk7CisKKy8qCisqIFJlcGxhY2Ugc3R5bGUgcnVucyBiZXR3ZWVuIG9mZnNldHMgPHR0PnN0YXJ0PC90dD4gYW5kIDx0dD5saW1pdDwvdHQ+IHdpdGggc3R5bGVzIGluCisqIDx0dD5pdGVyPC90dD4uICBUaGlzIG1ldGhvZCBjYW4gYmUgdXNlZCB0byBwZXJmb3JtIGEgInBhc3RlIiBvcGVyYXRpb24uCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSByZXBsYWNlbWVudCBiZWdpbnMKKyogQHBhcmFtIGxpbWl0IHRoZSBvZmZzZXQgd2hlcmUgdGhlIHJlcGxhY2VtZW50IGVuZHMKKyogQHBhcmFtIGl0ZXIgYW4gPHR0Pk1TdHlsZVJ1bkl0ZXJhdG9yPC90dD4gY29udGFpbmluZyBzdHlsZSBydW5zIHdoaWNoIHdpbGwgcmVwbGFjZSBvbGQKKyogc3R5bGUgcnVucy4KKyovCisgICAgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHNyY1RleHQsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KTsKKworICAgIGFic3RyYWN0IGludCBzdHlsZVN0YXJ0KGludCBwb3MpOworICAgIGFic3RyYWN0IGludCBzdHlsZUxpbWl0KGludCBwb3MpOworCisvKioKKyogUmV0dXJuIHN0eWxlIGF0IGxvY2F0aW9uIDx0dD5wb3M8L3R0Pi4KKyogQHBhcmFtIHBvcyBhbiBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJucyB0aGUgc3R5bGUgb2YgdGhlIGNoYXJhY3RlciBhdCA8dHQ+b2Zmc2V0PC90dD4KKyovCisgICAgYWJzdHJhY3QgQXR0cmlidXRlTWFwIHN0eWxlQXQoaW50IHBvcyk7CisKKy8qKgorICogUmV0dXJuIHRydWUgaWYgc3R5bGVzIHdlcmUgbW9kaWZpZWQuCisgKi8KKyAgICBhYnN0cmFjdCBib29sZWFuIG1vZGlmeVN0eWxlcyhpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGFtYWdlZFJhbmdlKTsKKworLyoqCisqIE1pbmltaXplIHRoZSBhbW91bnQgb2YgbWVtb3J5IHVzZWQgYnkgdGhpcyBvYmplY3QuCisqLworICAgIGFic3RyYWN0IHZvaWQgY29tcHJlc3MoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVRhYlJ1bGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01UYWJSdWxlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM0MjFmNzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L01UYWJSdWxlci5qYXZhCkBAIC0wLDAgKzEsMTExIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKKy8qKgorICogVGhpcyBpbnRlcmZhY2UgcmVwcmVzZW50cyBhIHNlcXVlbmNlIG9mIFRhYlN0b3BzLCBvcmRlcmVkIGJ5IHBvc2l0aW9uLgorICogVGhlIGZpcnN0CisgKiBUYWJTdG9wIGluIHRoZSBydWxlciBjYW4gYmUgb2J0YWluZWQgd2l0aCB0aGUgPGNvZGU+Zmlyc3RUYWI8L2NvZGU+CisgKiBtZXRob2Q7ICBzdWJzZXF1ZW50IFRhYlN0b3BzIGFyZSBvYnRhaW5lZCB3aXRoIHRoZSA8Y29kZT5uZXh0VGFiPC9jb2RlPgorICogbWV0aG9kLgorICogPHA+CisgKiBJZiBhIFRhYlN0b3Agd2l0aCB0eXBlIDxjb2RlPlRhYlN0b3Aua0F1dG88L2NvZGU+IGlzIHJldHVybmVkLCBhbGwgdGFicworICogYWZ0ZXIgdGhhdCBUYWJTdG9wIHdpbGwgYWxzbyBoYXZlIHR5cGUgPGNvZGU+VGFiU3RvcC5rQXV0bzwvY29kZT4sIGFuZAorICogdGhlaXIgcG9zaXRpb25zIHdpbGwgYmUgbXVsdGlwbGVzIG9mIDxjb2RlPmF1dG9TcGFjaW5nPC9jb2RlPi4KKyAqIEBzZWUgVGFiU3RvcAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTVRhYlJ1bGVyCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gZmlyc3QgdGFiIGluIHRoZSBydWxlci4gIElmIGFuIGF1dG9UYWIsIGl0IGlzIGF0IHBvc2l0aW9uIHplcm8sIGFuZAorICAgICAqIGFsbCBzdWJzZXF1ZW50IHRhYnMgd2lsbCBiZSBhdXRvdGFicyBhdCBhdXRvU3BhY2luZyBpbnRlcnZhbHMuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFRhYlN0b3AgZmlyc3RUYWIoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgdGFiIGluIHRoZSBydWxlciB3aXRoIGZQb3NpdGlvbiA+IHBvc2l0aW9uLiAgSWYgaXQgaXMgYW4KKyAgICAgKiBhdXRvdGFiLCBpdCBpcyBhdCBhbiBpbmNyZW1lbnQgb2YgYXV0b1NwYWNpbmcsIGFuZCBhbGwgc3Vic2VxdWVudCB0YWJzIHdpbGwgYmUKKyAgICAgKiBhdXRvdGFicyBhdCBhdXRvU3BhY2luZyBpbnRlcnZhbHMuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFRhYlN0b3AgbmV4dFRhYihpbnQgcG9zaXRpb24pOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbnRlcnZhbCBmb3IgYXV0b3RhYnMuCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IGludCBhdXRvU3BhY2luZygpOworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSB0aGUgaGFzaENvZGUgZm9yIHRoaXMgcnVsZXIuICBUaGUgaGFzaENvZGUgaXMgdGhlCisgICAgICogaGFzaENvZGUgb2YgdGhlIGZpcnN0IHRhYiBtdWx0aXBsaWVkIGJ5IHRoZSBhdXRvU3BhY2luZworICAgICAqIGludGVydmFsLgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgaGFzaENvZGUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZpcnN0VGFiKCkuaGFzaENvZGUoKSAqIGF1dG9TcGFjaW5nKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyB0YWIgcnVsZXIgY29udGFpbnMgdGhlIGdpdmVuIHRhYi4KKyAgICAgKiBAcGFyYW0gdGFiVG9UZXN0IHRoZSB0YWIgdG8gc2VhcmNoIGZvcgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIHRhYiBydWxlciBjb250YWlucyA8Y29kZT50YWJUb1Rlc3Q8L2NvZGU+CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNUYWIoVGFiU3RvcCB0YWJUb1Rlc3QpIHsKKworICAgICAgICBmb3IgKFRhYlN0b3AgdGFiID0gZmlyc3RUYWIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYi5nZXRUeXBlKCkgIT0gVGFiU3RvcC5rQXV0bzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYiA9IG5leHRUYWIodGFiLmdldFBvc2l0aW9uKCkpKSB7CisgICAgICAgICAgICBpZiAodGFiLmdldFBvc2l0aW9uKCkgPj0gdGFiVG9UZXN0LmdldFBvc2l0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGFiVG9UZXN0LmVxdWFscyh0YWIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHRhYiBydWxlciBpZGVudGljYWwgdG8gdGhpcyBydWxlciwgZXhjZXB0IHdpdGggdGhlCisgICAgICogZ2l2ZW4gdGFiIGFkZGVkLiAgVGhpcyBydWxlciBpcyBub3QgbW9kaWZpZWQuCisgICAgICogQHBhcmFtIHRhYlRvQWRkIHRoZSB0YWIgdG8gYWRkIHRvIHRoZSBuZXcgdGFiIHJ1bGVyCisgICAgICogQHJldHVybiBhbiBNVGFiUnVsZXIgcmVzdWx0aW5nIGZyb20gdGhpcyBvcGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgTVRhYlJ1bGVyIGFkZFRhYihUYWJTdG9wIHRhYlRvQWRkKSB7CisKKyAgICAgICAgcmV0dXJuIFN0YW5kYXJkVGFiUnVsZXIuYWRkVGFiVG9SdWxlcih0aGlzLCB0YWJUb0FkZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdGFiIHJ1bGVyIGlkZW50aWNhbCB0byB0aGUgZ2l2ZW4gcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIHRhYiBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24gcmVtb3ZlZC4gIFRoaXMgcnVsZXIgaXMgbm90IG1vZGlmaWVkLgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gb2YgdGhlIHRhYiB0byByZW1vdmUgZnJvbSB0aGUgbmV3IHRhYiBydWxlcgorICAgICAqIEByZXR1cm4gYW4gTVRhYlJ1bGVyIHJlc3VsdGluZyBmcm9tIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgcHVibGljIE1UYWJSdWxlciByZW1vdmVUYWIoaW50IHBvc2l0aW9uKSB7CisKKyAgICAgICAgcmV0dXJuIFN0YW5kYXJkVGFiUnVsZXIucmVtb3ZlVGFiRnJvbVJ1bGVyKHRoaXMsIHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSB0YWIgcnVsZXIgaWRlbnRpY2FsIHRvIHRoaXMgcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIHRhYiBhdCBwb3NpdGlvbiA8Y29kZT5mcm9tUG9zaXRpb248L2NvZGU+IG1vdmVkIHRvIHBvc2l0aW9uCisgICAgICogPGNvZGU+dG9Qb3NpdGlvbjwvY29kZT4uICBUaGlzIHJ1bGVyIGlzIG5vdCBtb2RpZmllZC4KKyAgICAgKiBAcGFyYW0gZnJvbVBvc2l0aW9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFiIHRvIG1vdmUKKyAgICAgKiBAcGFyYW0gdG9Qb3NpdGlvbiB0aGUgbmV3IHBvc2l0aW9uIG9mIHRoZSB0YWIKKyAgICAgKiBAcmV0dXJuIGFuIE1UYWJSdWxlciByZXN1bHRpbmcgZnJvbSB0aGlzIG9wZXJhdGlvbgorICAgICAqLworICAgIHB1YmxpYyBNVGFiUnVsZXIgbW92ZVRhYihpbnQgZnJvbVBvc2l0aW9uLCBpbnQgdG9Qb3NpdGlvbikgeworCisgICAgICAgIHJldHVybiBTdGFuZGFyZFRhYlJ1bGVyLm1vdmVUYWJPblJ1bGVyKHRoaXMsIGZyb21Qb3NpdGlvbiwgdG9Qb3NpdGlvbik7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvTVRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zN2MzOWZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9NVGV4dC5qYXZhCkBAIC0wLDAgKzEsMjQxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8qCisgICAgQ2hhbmdlIGhpc3Rvcnk6CisKKyAgICAxMC8yOS85NiBqZWYgICAgc3BsaXQgdGhlIGNoYXJhY3RlciBhbmQgcGFyYWdyYXBoIHN0eWxlIGFjY2VzcyBmdW5jdGlvbnMKKyAgICA4LzE0Lzk2IHNmYiAgICAgZWxpbWluYXRlZCBTdHlsZVNoZWV0SXRlcmF0b3IKKyAgICA4LzIxLzk2IGplZiAgICAgICAgY29tcGxldGVkIGFic3RyYWN0IGludGVyZmFjZSAoY2hhbmdlZCBpdGVyYXRvciBjbGFzc2VzIGV0Yy4pCisgICAgMS8zMC85NyBydGcgICAgIGNsZWFuZWQgdXAgaW50ZXJmYWNlLCBicm91Z2h0IGluIGZ1bmN0aW9ucyBmcm9tIFNpbXBsZVRleHRWaWV3CisgICAgNy8zMS85OCBqYnIgc3dpdGNoZWQgZnJvbSBTdHlsZSB0byBBdHRyaWJ1dGVNYXAKKworKi8KKworLyoqCisgKiBUaGlzIGNsYXNzIGlzIGEgbXV0YWJsZSBleHRlbnNpb24gb2YgTUNvbnN0VGV4dC4gIEl0IGhhcyBtZXRob2RzIGZvcgorICogaW5zZXJ0aW5nLCBhcHBlbmRpbmcsIHJlcGxhY2luZywgYW5kIHJlbW92aW5nIHN0eWxlZCB0ZXh0LiAgQWRkaXRpb25hbGx5LAorICogaXQgaGFzIG1ldGhvZHMgZm9yIG1vZGlmeWluZyBwYXJhZ3JhcGggYW5kIGNoYXJhY3RlciBzdHlsZXMuCisgKiA8cD4KKyAqIFN0eWxlZCBjaGFyYWN0ZXJzIChmcm9tIGFub3RoZXIgPGNvZGU+TUNvbnN0VGV4dDwvY29kZT4gaW5zdGFuY2UpIGFkZGVkCisgKiB0byB0aGUgdGV4dCByZXRhaW4gdGhlaXIgb3JpZ2luYWwgY2hhcmFjdGVyIHN0eWxlcy4gIFRoZSBzdHlsZSBvZiBwbGFpbiBjaGFyYWN0ZXJzCisgKiAoc3BlY2lmaWVkIGFzIGEgPGNvZGU+Y2hhcjwvY29kZT4gb3IgPGNvZGU+Y2hhcltdPC9jb2RlPikgaXMgYWx3YXlzCisgKiBzcGVjaWZpZWQgZXhwbGljaXRseSB3aGVuIHRoZXkgYXJlIGFkZGVkIHRvIHRoZSB0ZXh0LiAgTVRleHQgZG9lcyBub3QgZG8KKyAqIGNoYXJhY3RlciBzdHlsZSAicHJvcGFnYXRpb24iLCB3aGVyZSB1bnN0eWxlZCBjaGFyYWN0ZXJzIHRha2Ugb24gdGhlCisgKiBzdHlsZSBvZiBwcmV2aW91cyBjaGFyYWN0ZXJzLiAgQ2xpZW50cyBjYW4gaW1wbGVtZW50IHRoaXMgYmVoYXZpb3IgYnkKKyAqIHNwZWNpZnlpbmcgdGhlIHN0eWxlcyB0byBwcm9wYWdhdGUuCisgKiA8cD4KKyAqIFdoZW4gdW5zdHlsZWQgY2hhcmFjdGVycyBhcmUgYWRkZWQgdG8gdGhlIHRleHQsIHRoZWlyIHBhcmFncmFwaCBzdHlsZQorICogaXMgdGhlIHBhcmFncmFwaCBzdHlsZSBpbiBlZmZlY3QgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxhc3QgbmV3IGNoYXJhY3Rlci4KKyAqIElmIHRoZSBjaGFyYWN0ZXJzIGNvbnRhaW4gcGFyYWdyYXBoIHNlcGFyYXRvcnMsIHRoZW4gZXZlcnkgbmV3IHBhcmFncmFwaAorICogd2lsbCBoYXZlIHRoZSBzYW1lIHBhcmFncmFwaCBzdHlsZS4gIFdoZW4gc3R5bGVkIGNoYXJhY3RlcnMgYXJlIGFkZGVkCisgKiB0byB0aGUgdGV4dCwgdGhlaXIgcmVzdWx0aW5nIHBhcmFncmFwaCBzdHlsZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZQorICogZm9sbG93aW5nIHJ1bGU6CisgKiA8YmxvY2txdW90ZT4KKyAqIFRoZSBwYXJhZ3JhcGggc3R5bGVzIGluIHRoZSBuZXcgdGV4dAorICogYmVjb21lIHRoZSBwYXJhZ3JhcGggc3R5bGVzIGluIHRoZSB0YXJnZXQgdGV4dCwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZQorICogbGFzdCBwYXJhZ3JhcGggaW4gdGhlIG5ldyB0ZXh0LCB3aGljaCB0YWtlcyBvbiB0aGUgcGFyYWdyYXBoIHN0eWxlIGluCisgKiBlZmZlY3QgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGluc2VydGVkIHRleHQuCisgKiBJZiB0aGUgbmV3IHRleHQgaXMgYWRkZWQgYXQgdGhlIGVuZCBvZiB0aGUgdGFyZ2V0IHRleHQsIHRoZSBuZXcgdGV4dCdzCisgKiBwYXJhZ3JhcGggc3R5bGVzIHRha2UgZWZmZWN0IGluIGFueSBwYXJhZ3JhcGggYWZmZWN0ZWQgYnkgdGhlIGFkZGl0aW9uLgorICogPC9ibG9ja3F1b3RlPgorICogRm9yIGV4YW1wbGUsIHN1cHBvc2UgdGhlcmUgaXMgYSBzaW5nbGUgcGFyYWdyYXBoIG9mIHRleHQgd2l0aCBzdHlsZSAnQScsCisgKiBkZWxpbWl0ZWQgd2l0aCBhIHBhcmFncmFwaCBzZXBhcmF0b3IgJ1AnOgorICogPGJsb2NrcXVvdGU+CisgKiBBQUFBQUFQCisgKiA8L2Jsb2NrcXVvdGU+CisgKiBTdXBwb3NlIHRoZSBmb2xsb3dpbmcgc3R5bGVkIHBhcmFncmFwaHMgYXJlIGluc2VydGVkIGludG8gdGhlIGFib3ZlIHRleHQKKyAqIGFmdGVyIHRoZSBmb3VydGggY2hhcmFjdGVyOgorICogPGJsb2NrcXVvdGU+CisgKiBCQkJCUENDQ1BEREQKKyAqIDwvYmxvY2txdW90ZT4KKyAqIFRoZW4gdGhlIG9yaWdpbmFsIHBhcmFncmFwaCBzdHlsZSBvZiBlYWNoIGNoYXJhY3RlciBpczoKKyAqIDxibG9ja3F1b3RlPgorICogQUFBQUJCQkJQQ0NDUEREREFBUAorICogPC9ibG9ja3F1b3RlPgorICogVGhlIHJlc3VsdGluZyBwYXJhZ3JhcGggc3R5bGVzIGFyZToKKyAqIDxibG9ja3F1b3RlPgorICogQkJCQkJCQkJQQ0NDUEFBQUFBUAorICogPC9ibG9ja3F1b3RlPgorICogU2ltaWxhcmx5LCBpZiBjaGFyYWN0ZXJzIGFyZSBkZWxldGVkLCB0aGUgcGFyYWdyYXBoIHN0eWxlIGltbWVkaWF0ZWx5CisgKiBhZnRlciB0aGUgZGVsZXRpb24gdGFrZXMgZWZmZWN0IG9uIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyB0aGUgZGVsZXRpb24uCisgKiBTbywgaWYgY2hhcmFjdGVycyA0LTE2IHdlcmUgZGVsZXRlZCBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIHBhcmFncmFwaAorICogc3R5bGVzIHdvdWxkIGJlOgorICogPGJsb2NrcXVvdGU+CisgKiBBQUFBQUFQCisgKiA8L2Jsb2NrcXVvdGU+CisgKiBUaGlzIHBhcmFncmFwaC1zdHlsZSBwcm9wYWdhdGlvbiBwb2xpY3kgaXMgc29tZXRpbWVzIHJlZmVycmVkIHRvIGFzIDxzdHJvbmc+CisgKiBmb2xsb3dpbmcgc3R5bGVzIHdpbjwvc3Ryb25nPiwgc2luY2Ugc3R5bGVzIGF0IHRoZSBlbmQgb2YgdGhlIHBhcmFncmFwaAorICogYmVjb21lIHRoZSBzdHlsZSBmb3IgdGhlIGVudGlyZSBwYXJhZ3JhcGguCisgKiA8cD4KKyAqIFRoaXMgY2xhc3MgY2FuIGFjY3VtdWxhdGUgYSA8c3Ryb25nPmRhbWFnZWQgcmFuZ2U8L3N0cm9uZz4gLSBhbiBpbnRlcnZhbCBpbgorICogd2hpY2ggY2hhcmFjdGVycywgY2hhcmFjdGVyIHN0eWxlcywgb3IgcGFyYWdyYXBoIHN0eWxlcyBoYXZlIGNoYW5nZWQuICBUaGlzIGlzCisgKiB1c2VmdWwgZm9yIGNsaWVudHMgc3VjaCBhcyB0ZXh0IGVkaXRvcnMgd2hpY2ggcmVmb3JtYXQgYW5kIGRyYXcgdGV4dCBhZnRlcgorICogY2hhbmdlcy4gIFVzdWFsbHkgdGhlIGRhbWFnZWQgcmFuZ2UgaXMgZXhhY3RseSB0aGUgcmFuZ2Ugb2YgY2hhcmFjdGVycworICogb3BlcmF0ZWQgdXBvbjsgIGhvd2V2ZXIsIGxhcmdlciByYW5nZXMgbWF5IGJlIGRhbWFnZWQgaWYgcGFyYWdyYXBoIHN0eWxlcworICogY2hhbmdlLgorICogQHNlZSBTdHlsZU1vZGlmaWVyCisgKi8KKworcHVibGljIGFic3RyYWN0IGNsYXNzIE1UZXh0IGV4dGVuZHMgTUNvbnN0VGV4dAoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJvdGVjdGVkIE1UZXh0KCkgeworICAgIH0KKworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLy8gTUFJTiBDSEFSQUNURVIgTU9ESUZJQ0FUSU9OIEZVTkNUSU9OUworLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KSB3aXRoIHRoZSBjaGFyYWN0ZXJzCisqIGFuZCBzdHlsZXMgaW4gPGNvZGU+c3JjVGV4dDwvY29kZT4gaW4gdGhlIHJhbmdlIFs8Y29kZT5zcmNTdGFydDwvY29kZT4sIDxjb2RlPnNyY0xpbWl0PC9jb2RlPikuICA8Y29kZT5zcmNUZXh0PC9jb2RlPiBpcyBub3QKKyogbW9kaWZpZWQuCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBiZWdpbnMKKyogQHBhcmFtIGxpbWl0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGVuZHMuICBUaGUgY2hhcmFjdGVyIGFuZCBzdHlsZSBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gc3JjVGV4dCB0aGUgc291cmNlIGZvciB0aGUgbmV3IGNoYXJhY3RlcnMgYW5kIHN0eWxlcworKiBAcGFyYW0gc3JjU3RhcnQgdGhlIG9mZnNldCBpbnRvIDxjb2RlPnNyY1RleHQ8L2NvZGU+IHdoZXJlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgd2lsbCBiZSBvYnRhaW5lZAorKiBAcGFyYW0gc3JjTGltaXQgdGhlIG9mZnNldCBpbnRvIDxjb2RlPnNyY1RleHQ8L2NvZGU+IHdoZXJlIHRoZSBuZXcgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGVuZAorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHNyY1RleHQsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KTsKKworLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KSB3aXRoIHRoZSBjaGFyYWN0ZXJzCisqIGFuZCBzdHlsZXMgaW4gPGNvZGU+c3JjVGV4dDwvY29kZT4uICA8Y29kZT5zcmNUZXh0PC9jb2RlPiBpcyBub3QKKyogbW9kaWZpZWQuCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBiZWdpbnMKKyogQHBhcmFtIGxpbWl0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGVuZHMuICBUaGUgY2hhcmFjdGVyIGFuZCBzdHlsZSBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gdGV4dCB0aGUgc291cmNlIGZvciB0aGUgbmV3IGNoYXJhY3RlcnMgYW5kIHN0eWxlcworKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHRleHQpOworCisvKioKKyogUmVwbGFjZSB0aGUgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KSB3aXRoIHRoZSBjaGFyYWN0ZXJzCisqIGluIDxjb2RlPnNyY0NoYXJzPC9jb2RlPiBpbiB0aGUgcmFuZ2UgWzxjb2RlPnNyY1N0YXJ0PC9jb2RlPiwgPGNvZGU+c3JjTGltaXQ8L2NvZGU+KS4gIE5ldyBjaGFyYWN0ZXJzIHRha2Ugb24gdGhlIHN0eWxlCisqIDxjb2RlPmNoYXJzU3R5bGU8L2NvZGU+LgorKiA8Y29kZT5zcmNDaGFyczwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBlbmRzLiAgVGhlIGNoYXJhY3RlciBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gc3JjQ2hhcnMgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzCisqIEBwYXJhbSBzcmNTdGFydCB0aGUgb2Zmc2V0IGludG8gPGNvZGU+c3JjQ2hhcnM8L2NvZGU+IHdoZXJlIG5ldyBjaGFyYWN0ZXJzIHdpbGwgYmUgb2J0YWluZWQKKyogQHBhcmFtIHNyY0xpbWl0IHRoZSBvZmZzZXQgaW50byA8Y29kZT5zcmNDaGFyczwvY29kZT4gd2hlcmUgdGhlIG5ldyBjaGFyYWN0ZXJzIGVuZAorKiBAcGFyYW0gY2hhcnNTdHlsZSB0aGUgc3R5bGUgb2YgdGhlIG5ldyBjaGFyYWN0ZXJzCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBzcmNDaGFycywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsIEF0dHJpYnV0ZU1hcCBjaGFyc1N0eWxlKTsKKworLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikgd2l0aCB0aGUgY2hhcmFjdGVyIDxjb2RlPnNyY0NoYXI8L2NvZGU+LgorKiBUaGUgbmV3IGNoYXJhY3RlciB0YWtlcyBvbiB0aGUgc3R5bGUgPGNvZGU+Y2hhclN0eWxlPC9jb2RlPgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBlbmRzLiAgVGhlIGNoYXJhY3RlciBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gc3JjQ2hhciB0aGUgbmV3IGNoYXJhY3RlcgorKiBAcGFyYW0gY2hhclN0eWxlIHRoZSBzdHlsZSBvZiB0aGUgbmV3IGNoYXJhY3RlcgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyIHNyY0NoYXIsIEF0dHJpYnV0ZU1hcCBjaGFyU3R5bGUpOworCisvKioKKyogUmVwbGFjZSB0aGUgZW50aXJlIGNvbnRlbnRzIG9mIHRoaXMgTVRleHQgKGJvdGggY2hhcmFjdGVycyBhbmQgc3R5bGVzKSB3aXRoCisqIHRoZSBjb250ZW50cyBvZiA8Y29kZT5zcmNUZXh0PC9jb2RlPi4KKyogQHBhcmFtIHNyY1RleHQgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVwbGFjZUFsbChNQ29uc3RUZXh0IHNyY1RleHQpOworCisvKioKKyogSW5zZXJ0IHRoZSBjb250ZW50cyBvZiA8Y29kZT5zcmNUZXh0PC9jb2RlPiAoYm90aCBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMpIGludG8gdGhpcworKiBNVGV4dCBhdCB0aGUgcG9zaXRpb24gc3BlY2lmaWVkIGJ5IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgVGhlIGNoYXJhY3RlciBvZmZzZXQgd2hlcmUgdGhlIG5ldyB0ZXh0IGlzIHRvIGJlIGluc2VydGVkLgorKiBAcGFyYW0gc3JjVGV4dCBUaGUgdGV4dCB0byBpbnNlcnQuICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgaW5zZXJ0KGludCBwb3MsIE1Db25zdFRleHQgc3JjVGV4dCk7CisKKy8qKgorKiBBcHBlbmQgdGhlIGNvbnRlbnRzIG9mIDxjb2RlPnNyY1RleHQ8L2NvZGU+IChib3RoIGNoYXJhY3RlcnMgYW5kIHN0eWxlcykgdG8gdGhlCisqIGVuZCBvZiB0aGlzIE1UZXh0LgorKiBAcGFyYW0gc3JjVGV4dCBUaGUgdGV4dCB0byBhcHBlbmQuICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgYXBwZW5kKE1Db25zdFRleHQgc3JjVGV4dCk7CisKKy8qKgorKiBEZWxldGUgdGhlIHNwZWNpZmllZCByYW5nZSBvZiBjaGFyYWN0ZXJzIChhbmQgc3R5bGVzKS4KKyogQHBhcmFtIHN0YXJ0IE9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIGRlbGV0ZS4KKyogQHBhcmFtIGxpbWl0IE9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGFmdGVyIHRoZSByYW5nZSB0byBkZWxldGUuICovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVtb3ZlKGludCBzdGFydCwgaW50IGxpbWl0KTsKKworLyoqCisqIERlbGV0ZSBhbGwgY2hhcmFjdGVycyBhbmQgc3R5bGVzLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZW1vdmUoKTsKKworLyoqCisqIENyZWF0ZSBhbiBNVGV4dCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIHJhbmdlCisqIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikuCisqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBuZXcgdGV4dAorKiBAcGFyYW0gbGltaXQgb2Zmc2V0IGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgbmV3IHRleHQKKyogQHJldHVybiBhbiBNQ29uc3RUZXh0IG9iamVjdCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgaW4gdGhlIGdpdmVuIHJhbmdlCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBNVGV4dCBleHRyYWN0V3JpdGFibGUoaW50IHN0YXJ0LCBpbnQgbGltaXQpOworCisKKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFNUT1JBR0UgTUFOQUdFTUVOVAorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisvKioKKyogTWluaW1pemUgdGhlIGFtb3VudCBvZiBtZW1vcnkgdXNlZCBieSB0aGUgTVRleHQgb2JqZWN0LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBjb21wcmVzcygpOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBTVFlMRSBNT0RJRklDQVRJT04KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLyoqCisqIFNldCB0aGUgY2hhcmFjdGVyIHN0eWxlIG9mIGFsbCBjaGFyYWN0ZXJzIGluIHRoZSBNVGV4dCBvYmplY3QgdG8KKyogPGNvZGU+QXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA8L2NvZGU+LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZW1vdmVDaGFyYWN0ZXJTdHlsZXMoKTsKKworLyoqCisqIEludm9rZSB0aGUgZ2l2ZW4gbW9kaWZpZXIgb24gYWxsIGNoYXJhY3RlciBzdHlsZXMgZnJvbSBzdGFydCB0byBsaW1pdC4KKyogQHBhcmFtIG1vZGlmaWVyIHRoZSBtb2RpZmllciB0byBhcHBseSB0byB0aGUgcmFuZ2UuCisqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gbW9kaWZ5LgorKiBAcGFyYW0gbGltaXQgdGhlIGxpbWl0IG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIG1vZGlmeS4KKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgbW9kaWZ5Q2hhcmFjdGVyU3R5bGVzKGludCBzdGFydCwgaW50IGxpbWl0LCBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyKTsKKworLyoqCisqIEludm9rZSB0aGUgZ2l2ZW4gbW9kaWZpZXIgb24gYWxsIHBhcmFncmFwaCBzdHlsZXMgaW4gcGFyYWdyYXBocworKiBjb250YWluaW5nIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFtzdGFydCwgbGltaXQpLgorKiBAcGFyYW0gbW9kaWZpZXIgdGhlIG1vZGlmaWVyIHRvIGFwcGx5IHRvIHRoZSByYW5nZS4KKyogQHBhcmFtIHN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBtb2RpZnkuCisqIEBwYXJhbSBsaW1pdCB0aGUgbGltaXQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gbW9kaWZ5LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBtb2RpZnlQYXJhZ3JhcGhTdHlsZXMoaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpOworCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBEQU1BR0VEIFJBTkdFCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvKioKKyogUmVzZXQgdGhlIGRhbWFnZWQgcmFuZ2UgdG8gYW4gZW1wdHkgaW50ZXJ2YWwsIGFuZCBiZWdpbiBhY2N1bXVsYXRpbmcgdGhlIGRhbWFnZWQKKyogcmFuZ2UuICBUaGUgZGFtYWdlZCByYW5nZSBpbmNsdWRlcyBldmVyeSBpbmRleCB3aGVyZSBhIGNoYXJhY3RlciwgY2hhcmFjdGVyIHN0eWxlLAorKiBvciBwYXJhZ3JhcGggc3R5bGUgaGFzIGNoYW5nZWQuCisqIEBzZWUgI2RhbWFnZWRSYW5nZVN0YXJ0CisqIEBzZWUgI2RhbWFnZWRSYW5nZUxpbWl0CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlc2V0RGFtYWdlZFJhbmdlKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1BhcmFncmFwaEJ1ZmZlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9QYXJhZ3JhcGhCdWZmZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNWNhZDk3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9QYXJhZ3JhcGhCdWZmZXIuamF2YQpAQCAtMCwwICsxLDcxNCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgamF2YS5pby5FeHRlcm5hbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0OworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8qCisgICAgUmlnaHQgbm93LCB5b3UgaGF2ZSB0byBjb25zdHJ1Y3QgdGhpcyBjbGFzcyB3aXRoIGEgY2hhckJ1ZmZlci4gIFRoYXQncyBwcmV0dHkgdWdseS4uLiAqLworCisvKgorICAgIDgvOC85NgorICAgICAgICBBZGRlZCByZXBsYWNlIG1ldGhvZCwgd2hpY2ggcmVhZHMgc3R5bGVzIGZyb20gYSBQYXJhZ3JhcGhJdGVyYXRvci4KKyAgICAgICAgQWxzbywgYWRkZWQgYSBjb25zdHJ1Y3RvciB3aGljaCB0YWtlcyBhIFBhcmFncmFwaEl0ZXJhdG9yLgorICAgICAgICBUaGVzZSBtZXRob2RzIGFyZSBmb3IgY29weS9wYXN0ZSBzdXBwb3J0LgorCisgICAgOC8yMi85NgorICAgICAgICBSZXBsYWNlIG1ldGhvZCAod2hpY2ggdGFrZXMgYW4gaXRlcmF0b3IgYXMgYW4gYXJndW1lbnQpIHRlc3RzIGZvciBhCisgICAgICAgIDAtbGVuZ3RoIGl0ZXJhdG9yLgorCisgICAgOS8zMC85NgorICAgICAgICB7amJyfSBtb2RpZmllZCBwYXJhZ3JhcGhMaW1pdCgpOworCisgICAgMTAvMjMvOTYKKyAgICAgICAgVGhpcyBjbGFzcyBub3cgbWFpbnRhaW5zIHBhcmFncmFwaCBzdHlsZXMuICBBbHNvIGhhcyBhIHRpbWVzdGFtcC4KKworICAgIDEwLzI1Lzk2CisgICAgICAgIEhvbGRzIG9uIHRvIFN0eWxlIGluc3RlYWQgb2YgU3R5bGUuCisKKyAgICA3LzMxLzk4IFN3aXRjaGVkIHRvIEF0dHJpYnV0ZU1hcAorCisqLworCisvKioKKyogVGhpcyBjbGFzcyBzdG9yZXMgb2Zmc2V0cyB3aGVyZSBwYXJhZ3JhcGggYnJlYWtzIG9jY3VyLCBhbmQgdGhlIHN0eWxlIGFwcGxpZWQgdG8KKyogZWFjaCBwYXJhZ3JhcGguCisqCisqIFRoZSBvZmZzZXRzIHdoZXJlIHBhcmFncmFwaCBicmVha3Mgb2NjdXIgYXJlIHN0b3JlZCBpbiBhIFJ1bkFycmF5IG9iamVjdC4gIFRoaXMgaXMKKyogbm90IHN0cmljdGx5IG5lY2Vzc2FyeSwgYnV0IGl0IG1ha2VzIHNjYW5uaW5nIHRoZSB0ZXh0IGZvciBwYXJhZ3JhcGggYnJlYWtzIHVubmVjZXNzYXJ5LgorKiBIb3dldmVyLCBpdCBtYWtlcyBkZXRlcm1pbmluZyB3aGVyZSBwYXJhZ3JhcGhzIHN0YXJ0IGEgbGl0dGxlIGNvbmZ1c2luZy4gIElmIHRoZXJlIGlzIGEKKyogcGFyYWdyYXBoIGJyZWFrIGF0IG9mZnNldCBwLCB0aGVuIHRoZXJlIHdpbGwgYmUgYSBwYXJhZ3JhcGggc3RhcnQgYXQgb2Zmc2V0IHArMS4KKyogSWYgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGlzIGEgcGFyYWdyYXBoIGJyZWFrLCB0aGVyZSB3aWxsIGJlIGEgcnVuIGFycmF5IGVudHJ5CisqIGZvciB0aGF0IGNoYXJhY3RlciAoYW5kIGFsc28gYSBwYXJhZ3JhcGggc3R5bGUgZm9yIHRoYXQgcGFyYWdyYXBoLCBldmVuIHRob3VnaCB0aGUKKyogc3R5bGUgZG9lcyBub3QgYXBwbHkgdG8gYW55IHRleHQpLgorKgorKiBUaGUgc3R5bGUgb2YgdGhlIGZpcnN0IHBhcmFncmFwaCBpbiB0aGUgdGV4dCBpcyBpbiB0aGUgZkZpcnN0U3R5bGUgbWVtYmVyLiAgT3RoZXIKKyogcGFyYWdyYXBoIHN0eWxlcyBhcmUgc3RvcmVkIGluIHRoZSBmU3R5bGVUYWJsZSBhcnJheSwgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXI6ICB0aGUKKyogcGFyYWdyYXBoIHdpdGggYmVnaW5zIGF0IG9mZnNldCBmUnVuQXJyYXkuZlJ1blN0YXJ0W2ldKzEgaGFzIHN0eWxlIGZTdHlsZVRhYmxlW2ldLgorKiBUaGUgc3R5bGUgdGFibGUncyAiZ2FwIHJhbmdlIiBpcyBrZXB0IGluIHN5bmMgd2l0aCB0aGUgUnVuQXJyYXkuCisqCisqIFRoaXMgY2xhc3MgcHJvcG9nYXRlcyBwYXJhZ3JhcGggc3R5bGVzIGluIHRoZSAiTWljcm9zb2Z0IFdvcmQiIGZhc2hpb246ICBzdHlsZXMKKyogcHJvcG9nYXRlIGJhY2t3YXJkIGZyb20gcGFyYWdyYXBoIGJyZWFrcy4KKyoKKyogVGhpcyBjbGFzcyBtYWludGFpbnMgYSB0aW1lIHN0YW1wLCB3aGljaCBjaGFuZ2VzIGV2ZXJ5IHRpbWUgZXh0cmEgZm9ybWF0dGluZyAoZm9ybWF0dGluZworKiBvbiBhIHJhbmdlIG90aGVyIHRoYW4gdGhlIGN1cnJlbnQgc2VsZWN0aW9uKSBpcyBuZWVkZWQ7ICBmb3IgZXhhbXBsZSwgd2hlbiBhIHBhcmFncmFwaAorKiBicmVhayBpcyByZW1vdmVkLgorKi8KKworCitmaW5hbCBjbGFzcyBQYXJhZ3JhcGhCdWZmZXIgZXh0ZW5kcyBNUGFyYWdyYXBoQnVmZmVyIGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga0luaXRpYWxTaXplID0gMTA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTlRfVkVSU0lPTiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMjIzNTY5MzQ7CisKKyAgICBwcml2YXRlIFJ1bkFycmF5IGZSdW5BcnJheTsKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcFtdIGZTdHlsZVRhYmxlOworICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZGaXJzdFN0eWxlOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBpc1BhcmFncmFwaEJyZWFrKGNoYXIgYykgeworCisgICAgICAgIHJldHVybiBjID09J1x1MjAyOScgfHwgYyA9PSAnXG4nOworICAgIH0KKworLyoqCisqIENvbnN0cnVjdCBhIG5ldyBwYXJhZ3JhcGggYnVmZmVyIGZyb20gdGhlIGNoYXJhY3RlcnMgaW4gPHR0PmNoYXJCdWZmZXI8L3R0Pi4KKyovCisgICAgUGFyYWdyYXBoQnVmZmVyKE1DaGFyQnVmZmVyIGNoYXJCdWZmZXIpIHsKKworICAgICAgICB0aGlzKGNoYXJCdWZmZXIubGVuZ3RoKCkpOworCisgICAgICAgIC8vIHNjYW4gdGV4dCBmb3IgcGFyYWdyYXBoIGJvdW5kYXJpZXMKKworICAgICAgICBpbnQgdGV4dExlbmd0aCA9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisKKyAgICAgICAgZm9yIChpbnQgcG9zPTA7IHBvcyA8IHRleHRMZW5ndGg7IHBvcysrKSB7CisKKyAgICAgICAgICAgIGlmIChpc1BhcmFncmFwaEJyZWFrKGNoYXJCdWZmZXIuYXQocG9zKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQrMSA+PSBmUnVuQXJyYXkuZk5lZ1N0YXJ0KQorICAgICAgICAgICAgICAgICAgICBleHBhbmRTdHlsZVRhYmxlKCk7CisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFsrK2ZSdW5BcnJheS5mUG9zRW5kXSA9IHBvczsKKyAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPSBmRmlyc3RTdHlsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisvKioKKyogUHJpdmF0ZSBjb25zdHJ1Y3Rvci4KKyovCisgICAgcHJpdmF0ZSBQYXJhZ3JhcGhCdWZmZXIoaW50IGluaXRpYWxMZW5ndGgpIHsKKworICAgICAgICBmUnVuQXJyYXkgPSBuZXcgUnVuQXJyYXkoa0luaXRpYWxTaXplLCBpbml0aWFsTGVuZ3RoKTsKKyAgICAgICAgZlN0eWxlVGFibGUgPSBuZXcgQXR0cmlidXRlTWFwW2ZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpXTsKKworICAgICAgICBmRmlyc3RTdHlsZSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgIH0KKworICAgIC8qKgorICAgICAqIE5vdGU6IHRoaXMgY29uc3RydWN0b3IgaXMgT05MWSBmb3IgdXNlIGJ5IHRoZSBTZXJpYWxpemF0aW9uCisgICAgICogbWVjaGFuaXNtLiAgSXQgZG9lcyBub3QgbGVhdmUgdGhpcyBvYmplY3QgaW4gYSB2YWxpZCBzdGF0ZSEKKyAgICAgKi8KKyAgICBwdWJsaWMgUGFyYWdyYXBoQnVmZmVyKCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBjb21wcmVzcygpOworICAgICAgICBvdXQud3JpdGVJbnQoQ1VSUkVOVF9WRVJTSU9OKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KGZSdW5BcnJheSk7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmU3R5bGVUYWJsZSk7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmRmlyc3RTdHlsZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVhZEV4dGVybmFsKE9iamVjdElucHV0IGluKSB0aHJvd3MgSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoaW4ucmVhZEludCgpICE9IENVUlJFTlRfVkVSU0lPTikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgUGFyYWdyYXBoQnVmZmVyIik7CisgICAgICAgIH0KKyAgICAgICAgZlJ1bkFycmF5ID0gKFJ1bkFycmF5KSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIGZTdHlsZVRhYmxlID0gKEF0dHJpYnV0ZU1hcFtdKSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIGZGaXJzdFN0eWxlID0gKEF0dHJpYnV0ZU1hcCkgaW4ucmVhZE9iamVjdCgpOworICAgIH0KKworLyoqCisqIFNoaWZ0IHRhYmxlIHN1Y2ggdGhhdCB0aGUgbGFzdCBwb3NpdGl2ZSBydW4gc3RhcnRzIGJlZm9yZSBwb3MuCisqLworICAgIHByaXZhdGUgdm9pZCBzaGlmdFRhYmxlVG8oaW50IHBvcykgeworCisgICAgICAgIGludCBvbGROZWdTdGFydCA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGludCBvbGRQb3NFbmQgPSBmUnVuQXJyYXkuZlBvc0VuZDsKKworICAgICAgICBmUnVuQXJyYXkuc2hpZnRUYWJsZVRvKHBvcyk7CisKKyAgICAgICAgaWYgKG9sZFBvc0VuZCA+IGZSdW5BcnJheS5mUG9zRW5kKQorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShmU3R5bGVUYWJsZSwgZlJ1bkFycmF5LmZQb3NFbmQrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlN0eWxlVGFibGUsIGZSdW5BcnJheS5mTmVnU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBvc0VuZC1mUnVuQXJyYXkuZlBvc0VuZCk7CisgICAgICAgIGVsc2UgaWYgKG9sZE5lZ1N0YXJ0IDwgZlJ1bkFycmF5LmZOZWdTdGFydCkKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZlN0eWxlVGFibGUsIG9sZE5lZ1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZSwgb2xkUG9zRW5kKzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mTmVnU3RhcnQtb2xkTmVnU3RhcnQpOworICAgIH0KKworLyoqCisqIFVwZGF0ZSB0aGUgc3R5bGUgdGFibGUgdG8gcmVmbGVjdCBhIGNoYW5nZSBpbiB0aGUgUnVuQXJyYXkncyBzaXplLgorKi8KKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlQXJyYXlSZXNpemUoaW50IG9sZE5lZ1N0YXJ0KSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIG5ld1N0eWxlVGFibGVbXSA9IG5ldyBBdHRyaWJ1dGVNYXBbZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCldOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZTdHlsZVRhYmxlLCAwLCBuZXdTdHlsZVRhYmxlLCAwLCBmUnVuQXJyYXkuZlBvc0VuZCsxKTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmU3R5bGVUYWJsZSwgb2xkTmVnU3RhcnQsIG5ld1N0eWxlVGFibGUsIGZSdW5BcnJheS5mTmVnU3RhcnQsIChmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKS1mUnVuQXJyYXkuZk5lZ1N0YXJ0KSk7CisgICAgICAgIGZTdHlsZVRhYmxlID0gbmV3U3R5bGVUYWJsZTsKKyAgICB9CisKKyAgICB2b2lkIGNvbXByZXNzKCkgeworCisgICAgICAgIGludCBvbGROZWdTdGFydCA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGZSdW5BcnJheS5jb21wcmVzcygpOworICAgICAgICBpZiAoZlJ1bkFycmF5LmZOZWdTdGFydCAhPSBvbGROZWdTdGFydCkgeworICAgICAgICAgICAgaGFuZGxlQXJyYXlSZXNpemUob2xkTmVnU3RhcnQpOworICAgICAgICB9CisgICAgfQorCisvKioKKyogTWFrZSBtb3JlIHJvb20gaW4gcnVuL3N0eWxlIHRhYmxlcy4KKyovCisgICAgcHJpdmF0ZSB2b2lkIGV4cGFuZFN0eWxlVGFibGUoKSB7CisKKyAgICAgICAgaW50IG9sZE5lZ1N0YXJ0ID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgZlJ1bkFycmF5LmV4cGFuZFJ1blRhYmxlKCk7CisgICAgICAgIGhhbmRsZUFycmF5UmVzaXplKG9sZE5lZ1N0YXJ0KTsKKyAgICB9CisKKy8qKgorKiBQcm9jZXNzIGEgY2hhcmFjdGVyIGluc2VydGlvbiBhdCBvZmZzZXQgPHR0PnN0YXJ0PC90dD4uCisqIElmIGEgcGFyYWdyYXBoIGJyZWFrIHdhcyBpbnNlcnRlZCwgcHJvcG9nYXRlIHBhcmFncmFwaCBzdHlsZSBhdAorKiA8dHQ+c3RhcnQ8L3R0PiB0byBuZXcgcGFyYWdyYXBoLgorKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnRUZXh0KGludCBzdGFydCwgY2hhciBpbnNlcnRlZENoYXIpIHsKKworICAgICAgICBzaGlmdFRhYmxlVG8oc3RhcnQpOworICAgICAgICBpZiAoaXNQYXJhZ3JhcGhCcmVhayhpbnNlcnRlZENoYXIpKSB7CisgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQrMSA+PSBmUnVuQXJyYXkuZk5lZ1N0YXJ0KQorICAgICAgICAgICAgICAgIGV4cGFuZFN0eWxlVGFibGUoKTsKKyAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbKytmUnVuQXJyYXkuZlBvc0VuZF0gPSBzdGFydDsKKyAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSA9CisgICAgICAgICAgICAgICAgKGZSdW5BcnJheS5mUG9zRW5kID09IDApPyBmRmlyc3RTdHlsZSA6IGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kLTFdOworICAgICAgICAgICAgZlJ1bkFycmF5LnJ1blN0YXJ0c0NoYW5nZWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vZlJ1bkFycmF5LmZDdXJUZXh0TGVuZ3RoKys7CisgICAgICAgIGZSdW5BcnJheS5hZGRUb0N1clRleHRMZW5ndGgoMSk7CisgICAgfQorCisvKioKKyogUHJvY2VzcyBjaGFyYWN0ZXIgaW5zZXJ0aW9uIGF0IG9mZnNldCA8dHQ+c3RhcnQ8L3R0Pi4KKyogRWFjaCBuZXcgcGFyYWdyYXBoIGdldHMgcGFyYWdyYXBoIHN0eWxlIGF0CisqIDx0dD5zdGFydDwvdHQ+LgorKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnRUZXh0KGludCBzdGFydCwgY2hhciBzcmNDaGFyc1tdLCBpbnQgc3JjU3RhcnQsIGludCBzcmNMaW1pdCkgeworCisgICAgICAgIHNoaWZ0VGFibGVUbyhzdGFydCk7CisKKyAgICAgICAgaW50IGFkanVzdCA9IHN0YXJ0IC0gc3JjU3RhcnQ7CisKKyAgICAgICAgZm9yIChpbnQgaT1zcmNTdGFydDsgIGkgPCBzcmNMaW1pdDsgaSsrKQorICAgICAgICAgICAgaWYgKGlzUGFyYWdyYXBoQnJlYWsoc3JjQ2hhcnNbaV0pKSB7CisgICAgICAgICAgICAgICAgaWYgKGZSdW5BcnJheS5mUG9zRW5kKzEgPj0gZlJ1bkFycmF5LmZOZWdTdGFydCkKKyAgICAgICAgICAgICAgICAgICAgZXhwYW5kU3R5bGVUYWJsZSgpOworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbKytmUnVuQXJyYXkuZlBvc0VuZF0gPSBhZGp1c3QgKyBpOworICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSA9CisgICAgICAgICAgICAgICAgICAgIChmUnVuQXJyYXkuZlBvc0VuZCA9PSAwKT8gZkZpcnN0U3R5bGUgOiBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZC0xXTsKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkucnVuU3RhcnRzQ2hhbmdlZCgpOworICAgICAgICAgICAgfQorCisgICAgICAgIC8vZlJ1bkFycmF5LmZDdXJUZXh0TGVuZ3RoICs9IChzcmNMaW1pdC1zcmNTdGFydCk7CisgICAgICAgIGZSdW5BcnJheS5hZGRUb0N1clRleHRMZW5ndGgoc3JjTGltaXQtc3JjU3RhcnQpOworICAgIH0KKworLyoqCisqIFByb2Nlc3MgZGVsZXRpb24gYnkgcmVtb3ZpbmcgcGFyYWdyYXBoIGJyZWFrcyBjb250YWluZWQgaW4KKyogZGVsZXRlZCByYW5nZS4gIFByb3BvZ2F0ZSBwYXJhZ3JhcGggc3R5bGVzIGJhY2t3YXJkLCBpZiBuZWNlc3NhcnkuCisqLworICAgIHB1YmxpYyB2b2lkIGRlbGV0ZVRleHQoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludFtdIGRhbWFnZWRSYW5nZSkgeworCisgICAgICAgIGludCBsZW5ndGggPSBsaW1pdCAtIHN0YXJ0OworICAgICAgICBpZiAobGVuZ3RoIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCByYW5nZSIpOworICAgICAgICB9CisKKyAgICAgICAgc2hpZnRUYWJsZVRvKGxpbWl0KTsKKworICAgICAgICBpbnQgbmV3RW5kID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHN0YXJ0LTEpOworCisgICAgICAgIGlmIChuZXdFbmQgIT0gZlJ1bkFycmF5LmZQb3NFbmQpIHsKKworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHByb3BTdHlsZSA9IGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXTsKKyAgICAgICAgICAgIGJvb2xlYW4gcHJvcG9nYXRlZDsKKworICAgICAgICAgICAgaWYgKG5ld0VuZCA9PSAtMSkgeworICAgICAgICAgICAgICAgIHByb3BvZ2F0ZWQgPSAhcHJvcFN0eWxlLmVxdWFscyhmRmlyc3RTdHlsZSk7CisgICAgICAgICAgICAgICAgZkZpcnN0U3R5bGUgPSBwcm9wU3R5bGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9wb2dhdGVkID0gIXByb3BTdHlsZS5lcXVhbHMoZlN0eWxlVGFibGVbbmV3RW5kXSk7CisgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbbmV3RW5kXSA9IHByb3BTdHlsZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHByb3BvZ2F0ZWQpIHsKKyAgICAgICAgICAgICAgICBpbnQgcFN0YXJ0ID0gKG5ld0VuZD09LTEpPyAwIDogZlJ1bkFycmF5LmZSdW5TdGFydFtuZXdFbmRdICsgMTsKKyAgICAgICAgICAgICAgICBkYW1hZ2VkUmFuZ2VbMF0gPSBNYXRoLm1pbihkYW1hZ2VkUmFuZ2VbMF0sIHBTdGFydCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZSdW5BcnJheS5mUG9zRW5kID0gbmV3RW5kOworICAgICAgICB9CisKKyAgICAgICAgZlJ1bkFycmF5LmFkZFRvQ3VyVGV4dExlbmd0aCgtbGVuZ3RoKTsKKworICAgICAgICBmUnVuQXJyYXkucnVuU3RhcnRzQ2hhbmdlZCgpOworICAgIH0KKworLyoqCisqIFJldHVybnMgdGhlIHN0YXJ0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyBvZmZzZXQgPHR0PnBvczwvdHQ+LgorKi8KKyAgICBwdWJsaWMgaW50IHBhcmFncmFwaFN0YXJ0KGludCBwb3MpIHsKKworICAgICAgICBpbnQgcnVuID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHBvcy0xKTsKKyAgICAgICAgaWYgKHJ1biA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZlJ1bkFycmF5LmdldExvZ2ljYWxSdW5TdGFydChydW4pICsgMTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIFJldHVybnMgdGhlIGxpbWl0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyBvZmZzZXQgPHR0PnBvczwvdHQ+LgorKi8KKyAgICBwdWJsaWMgaW50IHBhcmFncmFwaExpbWl0KGludCBwb3MpIHsKKworICAgICAgICBpbnQgcnVuID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHBvcy0xKTsKKworICAgICAgICBpZiAocnVuID09IGZSdW5BcnJheS5mUG9zRW5kKQorICAgICAgICAgICAgcnVuID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnVuKys7CisKKyAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKSkgeworICAgICAgICAgICAgcmV0dXJuIGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgc3RhcnQgPSBmUnVuQXJyYXkuZ2V0TG9naWNhbFJ1blN0YXJ0KHJ1bik7CisKKyAgICAgICAgcmV0dXJuIHN0YXJ0KzE7CisgICAgfQorCisvKioKKyogUmV0dXJucyB0aGUgc3R5bGUgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIG9mZnNldCA8dHQ+cG9zPC90dD4uCisqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgcGFyYWdyYXBoU3R5bGVBdChpbnQgb2Zmc2V0KSB7CisKKyAgICAgICAgaW50IHJ1biA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhvZmZzZXQtMSk7CisgICAgICAgIGlmIChydW4gPCAwKQorICAgICAgICAgICAgcmV0dXJuIGZGaXJzdFN0eWxlOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZlN0eWxlVGFibGVbcnVuXTsKKyAgICB9CisKKy8qKgorKiBDcmVhdGUgcGFyYWdyYXBoIGl0ZXJhdG9yLgorKi8KKy8qCisgICAgcHVibGljIE1QYXJhZ3JhcGhJdGVyYXRvciBjcmVhdGVQYXJhZ3JhcGhJdGVyYXRvcihpbnQgc3RhcnQsIGludCBsaW1pdCkgeworCisgICAgICAgIHJldHVybiBuZXcgUGFyYWdyYXBoSXRlcmF0b3Ioc3RhcnQsIGxpbWl0KTsKKyAgICB9CisqLworCisvKioKKyogQ2FsbGVkIGJ5IGl0ZXJhdG9yIHRvIGdldCBydW4gaW5mby4KKyovCisgICAgcHJpdmF0ZSB2b2lkIHNldEl0ZXJhdG9yKGludCBwb3MsIFBhcmFncmFwaEl0ZXJhdG9yIGl0ZXIpIHsKKworICAgICAgICBpZiAoKHBvcyA8IDApIHx8IChwb3MgPj0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKSkpIHsKKyAgICAgICAgICAgIGl0ZXIuc2V0KDAsIDAsIGtOb1J1biwgbnVsbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpbnQgcnVuOworCisgICAgICAgIGlmIChwb3MgPiAwKQorICAgICAgICAgICAgcnVuID0gZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHBvcy0xKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnVuID0gLTE7CisKKyAgICAgICAgc2V0SXRlcmF0b3JVc2luZ1J1bihydW4sIGl0ZXIpOworICAgIH0KKworLyoqCisqIENhbGxlZCBieSBpdGVyYXRvciB0byBnZXQgcnVuIGluZm8uCisqLworICAgIHByaXZhdGUgdm9pZCBzZXRJdGVyYXRvclVzaW5nUnVuKGludCBydW4sIFBhcmFncmFwaEl0ZXJhdG9yIGl0ZXIpIHsKKworICAgICAgICBpbnQgbGFzdFZhbGlkUnVuID0gZlJ1bkFycmF5Lmxhc3RSdW4oKTsKKworICAgICAgICBpZiAocnVuIDwgLTEgfHwgcnVuID4gbGFzdFZhbGlkUnVuKSB7CisgICAgICAgICAgICBpdGVyLnNldCgwLCAwLCBrTm9SdW4sIG51bGwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZlBvc0VuZCsxKQorICAgICAgICAgICAgcnVuID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgZWxzZSBpZiAocnVuID09IGZSdW5BcnJheS5mTmVnU3RhcnQtMSkKKyAgICAgICAgICAgIHJ1biA9IGZSdW5BcnJheS5mUG9zRW5kOworCisgICAgICAgIGludCBydW5TdGFydDsKKyAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlOworCisgICAgICAgIGlmIChydW4gPCAwKSB7CisgICAgICAgICAgICBydW5TdGFydCA9IDA7CisgICAgICAgICAgICBzdHlsZSA9IGZGaXJzdFN0eWxlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcnVuU3RhcnQgPSBmUnVuQXJyYXkuZlJ1blN0YXJ0W3J1bl07CisgICAgICAgICAgICBzdHlsZSA9IGZTdHlsZVRhYmxlW3J1bl07CisgICAgICAgICAgICBpZiAocnVuU3RhcnQgPCAwKQorICAgICAgICAgICAgICAgIHJ1blN0YXJ0ICs9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgICAgICBydW5TdGFydCsrOworICAgICAgICB9CisKKyAgICAgICAgaW50IG5leHRSdW47CisKKyAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZlBvc0VuZCkKKyAgICAgICAgICAgIG5leHRSdW4gPSBmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICBlbHNlCisgICAgICAgICAgICBuZXh0UnVuID0gcnVuICsgMTsKKworICAgICAgICBpbnQgcnVuTGltaXQ7CisKKyAgICAgICAgaWYgKG5leHRSdW4gPj0gZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkpCisgICAgICAgICAgICBydW5MaW1pdCA9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcnVuTGltaXQgPSBmUnVuQXJyYXkuZlJ1blN0YXJ0W25leHRSdW5dOworICAgICAgICAgICAgaWYgKHJ1bkxpbWl0IDwgMCkKKyAgICAgICAgICAgICAgICBydW5MaW1pdCArPSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICAgICAgcnVuTGltaXQrKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICBpdGVyLnNldChydW5TdGFydCwgcnVuTGltaXQsIHJ1biwgc3R5bGUpOworICAgIH0KKworLyoqCisqIFJlcGxhY2UgcGFyYWdyYXBoIGJyZWFrcy9zdHlsZXMgYmV0d2VlbiBzdGFydCBhbmQgbGVuZ3RoIHdpdGggcGFyYWdyYXBoIGJyZWFrcy9zdHlsZXMKKyogZnJvbSA8dHQ+c3JjVGV4dDwvdHQ+LgorKiBAcGFyYW0gc3RhcnQgYW4gb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHBhcmFtIGxpbWl0IHRoZSBpbmRleCBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgdG8gcmVwbGFjZQorKiBAcGFyYW0gc3JjVGV4dCB0aGUgdGV4dCBmcm9tIHdoaWNoIG5ldyBwYXJhZ3JhcGhzIGFyZSB0YWtlbgorKiBAcGFyYW0gc3JjU3RhcnQgdGhlIHN0YXJ0IG9mIHRoZSByYW5nZSBpbiA8Y29kZT5zcmNUZXh0PC9jb2RlPiB0byBjb3B5CisqIEBwYXJhbSBzcmNMaW1pdCB0aGUgZmlyc3QgaW5kZXggYWZ0ZXIgdGhlIHJhbmdlIGluIDxjb2RlPnNyY1RleHQ8L2NvZGU+IHRvIGNvcHkKKyovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZShpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IHNyY1RleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBkYW1hZ2VkUmFuZ2UpIHsKKworICAgICAgICBmaW5hbCBpbnQgaW5zTGVuZ3RoID0gc3JjTGltaXQgLSBzcmNTdGFydDsKKyAgICAgICAgaWYgKGluc0xlbmd0aCA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiaW52YWxpZCByYW5nZSIpOworICAgICAgICB9CisgICAgICAgIGZpbmFsIGludCBvcmlnTGVuZ3RoID0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKyAgICAgICAgZGVsZXRlVGV4dChzdGFydCwgbGltaXQsIGRhbWFnZWRSYW5nZSk7CisKKyAgICAgICAgaWYgKGluc0xlbmd0aCA9PSAwKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZpbmFsIGludCBvbGRQb3NFbmQgPSBmUnVuQXJyYXkuZlBvc0VuZDsKKyAgICAgICAgQXR0cmlidXRlTWFwIG9yaWdTdHlsZTsKKyAgICAgICAgaWYgKGxpbWl0IDwgb3JpZ0xlbmd0aCkgeworICAgICAgICAgICAgb3JpZ1N0eWxlID0gKGZSdW5BcnJheS5mUG9zRW5kPj0wKT8gZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdIDogZkZpcnN0U3R5bGU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBvcmlnU3R5bGUgPSBzcmNUZXh0LnBhcmFncmFwaFN0eWxlQXQoc3JjTGltaXQpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHBhcmFncmFwaFN0YXJ0ID0gc3JjU3RhcnQ7CisgICAgICAgIGludCBsYXN0UExpbWl0ID0gc3JjVGV4dC5wYXJhZ3JhcGhTdGFydChzcmNMaW1pdCk7CisgICAgICAgIGJvb2xlYW4gc2VwYXJhdG9yQXRFbmQgPSBsYXN0UExpbWl0ID4gc3JjU3RhcnQgJiYgaXNQYXJhZ3JhcGhCcmVhayhzcmNUZXh0LmF0KGxhc3RQTGltaXQtMSkpOworCisgICAgICAgIGlmIChsaW1pdCA9PSBvcmlnTGVuZ3RoICYmIGxhc3RQTGltaXQgPT0gcGFyYWdyYXBoU3RhcnQpIHsKKyAgICAgICAgICAgIGlmIChmUnVuQXJyYXkuZlBvc0VuZCA+IDApIHsKKyAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPSBvcmlnU3R5bGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmRmlyc3RTdHlsZSA9IG9yaWdTdHlsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGJvb2xlYW4gZmlyc3RQYXNzID0gdHJ1ZTsKKyAgICAgICAgICAgIHdoaWxlIChwYXJhZ3JhcGhTdGFydCA8IGxhc3RQTGltaXQpIHsKKworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IHNyY1RleHQucGFyYWdyYXBoU3R5bGVBdChwYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICAgICAgaW50IHBhcmFncmFwaExpbWl0ID0gc3JjVGV4dC5wYXJhZ3JhcGhMaW1pdChwYXJhZ3JhcGhTdGFydCk7CisKKyAgICAgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQrMSA+PSBmUnVuQXJyYXkuZk5lZ1N0YXJ0KQorICAgICAgICAgICAgICAgICAgICBleHBhbmRTdHlsZVRhYmxlKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXN0eWxlLmVxdWFscyhmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPSBzdHlsZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdFBhc3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcFN0YXJ0ID0gZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZlBvc0VuZF0rMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW1hZ2VkUmFuZ2VbMF0gPSBNYXRoLm1pbihkYW1hZ2VkUmFuZ2VbMF0sIHBTdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoIXN0eWxlLmVxdWFscyhmRmlyc3RTdHlsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZkZpcnN0U3R5bGUgPSBzdHlsZTsKKyAgICAgICAgICAgICAgICAgICAgZGFtYWdlZFJhbmdlWzBdID0gMDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmaXJzdFBhc3MgPSBmYWxzZTsKKworICAgICAgICAgICAgICAgIGlmIChwYXJhZ3JhcGhMaW1pdCA8IGxhc3RQTGltaXQgfHwgc2VwYXJhdG9yQXRFbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFsrK2ZSdW5BcnJheS5mUG9zRW5kXSA9IHBhcmFncmFwaExpbWl0IC0gMSArIHN0YXJ0IC0gc3JjU3RhcnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0YXJ0ID0gcGFyYWdyYXBoTGltaXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZQb3NFbmQgIT0gb2xkUG9zRW5kKSB7CisgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdID0gb3JpZ1N0eWxlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZlJ1bkFycmF5LmFkZFRvQ3VyVGV4dExlbmd0aChpbnNMZW5ndGgpOworICAgIH0KKworLyoqCisqIE1vZGlmeSB0aGUgc3R5bGUgb2YgYWxsIHBhcmFncmFwaHMgY29udGFpbmluZyBvZmZzZXRzIGluIHRoZSByYW5nZSBbc3RhcnQsIGxpbWl0KSB0bworKiA8dHQ+c3R5bGU8L3R0Pi4KKyovCisgICAgcHVibGljIGJvb2xlYW4gbW9kaWZ5UGFyYWdyYXBoU3R5bGVzKGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBkYW1hZ2VkUmFuZ2UpICB7CisKKyAgICAgICAgaW50IHJ1biA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhzdGFydC0xKTsKKyAgICAgICAgaW50IGN1cnJlbnRQU3RhcnQ7CisgICAgICAgIGlmIChydW4gPT0gLTEpIHsKKyAgICAgICAgICAgIGN1cnJlbnRQU3RhcnQgPSAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY3VycmVudFBTdGFydCA9IGZSdW5BcnJheS5nZXRMb2dpY2FsUnVuU3RhcnQocnVuKSArIDE7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG1vZGlmaWVkQW55d2hlcmUgPSBmYWxzZTsKKworICAgICAgICBmb3IgKDs7KSB7CisKKyAgICAgICAgICAgIGJvb2xlYW4gbW9kaWZpZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKHJ1biA8IDApIHsKKworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBuZXdTdHlsZSA9IG1vZGlmaWVyLm1vZGlmeVN0eWxlKGZGaXJzdFN0eWxlKTsKKworICAgICAgICAgICAgICAgIGlmICghbmV3U3R5bGUuZXF1YWxzKGZGaXJzdFN0eWxlKSkgeworICAgICAgICAgICAgICAgICAgICBmRmlyc3RTdHlsZSA9IG5ld1N0eWxlOworICAgICAgICAgICAgICAgICAgICBtb2RpZmllZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgbmV3U3R5bGUgPSBtb2RpZmllci5tb2RpZnlTdHlsZShmU3R5bGVUYWJsZVtydW5dKTsKKworICAgICAgICAgICAgICAgIGlmICghZlN0eWxlVGFibGVbcnVuXS5lcXVhbHMobmV3U3R5bGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW3J1bl0gPSBuZXdTdHlsZTsKKyAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZlBvc0VuZCkgeworICAgICAgICAgICAgICAgIHJ1biA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBydW4rKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IG5leHRQU3RhcnQ7CisgICAgICAgICAgICBpZiAocnVuID09IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgbmV4dFBTdGFydCA9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBuZXh0UFN0YXJ0ID0gZlJ1bkFycmF5LmdldExvZ2ljYWxSdW5TdGFydChydW4pICsgMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG1vZGlmaWVkKSB7CisgICAgICAgICAgICAgICAgbW9kaWZpZWRBbnl3aGVyZSA9IHRydWU7CisgICAgICAgICAgICAgICAgZGFtYWdlZFJhbmdlWzBdID0gTWF0aC5taW4oZGFtYWdlZFJhbmdlWzBdLCBjdXJyZW50UFN0YXJ0KTsKKyAgICAgICAgICAgICAgICBkYW1hZ2VkUmFuZ2VbMV0gPSBNYXRoLm1heChkYW1hZ2VkUmFuZ2VbMV0sIG5leHRQU3RhcnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobGltaXQgPD0gbmV4dFBTdGFydCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgY3VycmVudFBTdGFydCA9IG5leHRQU3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbW9kaWZpZWRBbnl3aGVyZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGR1bXBQYXJhZ3JhcGhTdGFydHMoUGFyYWdyYXBoQnVmZmVyIHN0KSB7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmUnVuQXJyYXkuZlBvc0VuZD0iK3N0LmZSdW5BcnJheS5mUG9zRW5kKyIsIGZSdW5BcnJheS5mTmVnU3RhcnQ9IitzdC5mUnVuQXJyYXkuZk5lZ1N0YXJ0KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpPSIrc3QuZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkrIiwgZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKT0iK3N0LmZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCkpOworCisgICAgICAgIGludCBpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJQb3NpdGl2ZXM6ICIpOworICAgICAgICBmb3IgKGk9MDsgaTw9c3QuZlJ1bkFycmF5LmZQb3NFbmQ7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoc3QuZlJ1bkFycmF5LmZSdW5TdGFydFtpXSsiICIpOworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAgIE5lZ2F0aXZlczogIik7CisgICAgICAgIGZvciAoaT1zdC5mUnVuQXJyYXkuZk5lZ1N0YXJ0OyBpPHN0LmZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpOyBpKyspCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KHN0LmZSdW5BcnJheS5mUnVuU3RhcnRbaV0rIiAiKTsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiAiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga05vUnVuID0gLTQyOyAvLyBpdGVyYXRvciB1c2UKKworICAgIHByaXZhdGUgZmluYWwgY2xhc3MgUGFyYWdyYXBoSXRlcmF0b3IgLyppbXBsZW1lbnRzIE1QYXJhZ3JhcGhJdGVyYXRvciovCisgICAgeworICAgICAgICBQYXJhZ3JhcGhJdGVyYXRvcihpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICAgICAgeworICAgICAgICAgICAgcmVzZXQoc3RhcnQsIGxpbWl0LCBzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCByZXNldChpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IHBvcykKKyAgICAgICAgeworICAgICAgICAgICAgZlN0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICBmTGltaXQgPSBsaW1pdDsKKyAgICAgICAgICAgIHNldEl0ZXJhdG9yKGZTdGFydCwgdGhpcyk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1ZhbGlkKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZDdXJyZW50UnVuICE9IGtOb1J1bjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIG5leHQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZlJ1bkxpbWl0IDwgZkxpbWl0KSB7CisgICAgICAgICAgICAgICAgZkN1cnJlbnRSdW4rKzsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvclVzaW5nUnVuKGZDdXJyZW50UnVuLCB0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzZXQoMCwgMCwga05vUnVuLCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHByZXYoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZlJ1blN0YXJ0ID4gZlN0YXJ0KSB7CisgICAgICAgICAgICAgICAgZkN1cnJlbnRSdW4tLTsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvclVzaW5nUnVuKGZDdXJyZW50UnVuLCB0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzZXQoMCwgMCwga05vUnVuLCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldChpbnQgcG9zKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocG9zID49IGZTdGFydCAmJiBwb3MgPCBmTGltaXQpIHsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvcihwb3MsIHRoaXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXQoMCwgMCwga05vUnVuLCBudWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFBhcmFncmFwaEJ1ZmZlciBjYWxscyBiYWNrIG9uIHRoaXMgdG8gc2V0IGl0ZXJhdG9ycworICAgICAgICB2b2lkIHNldChpbnQgc3RhcnQsIGludCBsaW1pdCwgaW50IGN1cnJlbnRSdW4sIEF0dHJpYnV0ZU1hcCBzdHlsZSkKKyAgICAgICAgeworICAgICAgICAgICAgZlJ1blN0YXJ0ID0gc3RhcnQgPCBmU3RhcnQgPyBmU3RhcnQgOiBzdGFydDsKKyAgICAgICAgICAgIGZSdW5MaW1pdCA9IGxpbWl0ID4gZkxpbWl0ID8gZkxpbWl0IDogbGltaXQ7CisgICAgICAgICAgICBmQ3VycmVudFJ1biA9IGN1cnJlbnRSdW47CisgICAgICAgICAgICBmU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHJlc2V0KGludCBzdGFydCwgaW50IGxpbWl0KQorICAgICAgICB7CisgICAgICAgICAgICByZXNldChzdGFydCwgbGltaXQsIHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGZpcnN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0KGZTdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBsYXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0KGZMaW1pdCAtIDEpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCByYW5nZVN0YXJ0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZTdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcmFuZ2VMaW1pdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmTGltaXQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJhbmdlTGVuZ3RoKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZMaW1pdCAtIGZTdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcnVuU3RhcnQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlJ1blN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBydW5MaW1pdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmUnVuTGltaXQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJ1bkxlbmd0aCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmUnVuTGltaXQgLSBmUnVuU3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHN0eWxlKCkgeworCisgICAgICAgICAgICByZXR1cm4gZlN0eWxlOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlN0YXJ0OworICAgICAgICBwcml2YXRlIGludCBmTGltaXQ7CisgICAgICAgIHByaXZhdGUgaW50IGZSdW5TdGFydDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlJ1bkxpbWl0OworICAgICAgICBwcml2YXRlIGludCBmQ3VycmVudFJ1bjsKKyAgICAgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlN0eWxlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvUnVuQXJyYXkuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvUnVuQXJyYXkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNjI3OTc2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9SdW5BcnJheS5qYXZhCkBAIC0wLDAgKzEsMjgwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLyoqCisqIFRoaXMgY2xhc3MgbWFpbnRhaW5zIGludGVydmFscyB3aXRoaW4gYSBwaWVjZSBvZiB0ZXh0LiAgSW50ZXJ2YWwgYm91bmRhcmllcworKiBhcmUgc3RvcmVkIGluIHRoZSBmUnVuU3RhcnQgYXJyYXkuICBJbnRlcnZhbCBib3VuZGFyaWVzIG1heSBoYXZlIGEKKyogcG9zaXRpdmUgb3IgbmVnYXRpdmUgcmVwcmVzZW50YXRpb24uICBBIHBvc2l0aXZlIGJvdW5kYXJ5IGlzIGdpdmVuIGFzIGFuIG9mZnNldAorKiBmcm9tIDAuICBBIG5lZ2F0aXZlIGJvdW5kYXJ5IGlzIGdpdmVuIGFzIGEgbmVnYXRpdmUgb2Zmc2V0IGZyb20gdGhlIG5lZCBvZiB0aGUgdGV4dC4KKyogVGhlIFJ1bkFycmF5IHN0b3JlcyBwb3NpdGl2ZSBib3VuZGFyaWVzIGluIHRoZSBlbnRyaWVzIFswLCBmUG9zRW5kXSwgYW5kIG5lZ2F0aXZlCisqIGJvdW5kYXJpZXMgaW4gdGhlIGVudHJpZXMgW2ZOZWdTdGFydCwgZkxlbmd0aCkuICBOZXcgYm91bmRhcmllcyBtYXkgYmUgaW5zZXJ0ZWQgaW50bworKiB0aGUgdW5kZWZpbmVkIG1pZGRsZSBvZiB0aGUgUnVuQXJyYXkuICBJZiBmUG9zRW5kIDwgMCwgdGhlcmUgYXJlIG5vIHBvc2l0aXZlIGVudHJpZXMuCisqIElmIGZOZWdTdGFydCA+PSBmUnVuQXJyYXkubGVuZ3RoLCB0aGVyZSBhcmUgbm8gbmVnYXRpdmUgbmV0cmllcy4gIEl0J3MgcG9zc2libGUgdG8gaGF2ZQorKiBhIHJ1bmFycmF5IHdpdGggbmVpdGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBlbnRyaWVzLgorKgorKiBBcyBhbiBleGFtcGxlIG9mIGhvdyB0aGUgUnVuQXJyYXkgd29ya3MsIGNvbnNpZGVyIGEgcGllY2Ugb2YgdGV4dCB3aXRoIDUgaW50ZXJ2YWxzLAorKiB3aGVyZSBlYWNoIGludGVydmFsIGlzIDMgY2hhcmFjdGVycyBpbiBsZW5ndGguICBUaGUgUnVuQXJyYXkgZm9yIHRoaXMgdGV4dCBjb3VsZAorKiBsb29rIGxpa2U6CisqICAgIGZDdXJUZXh0TGVuZ3RoID0gMTUsIGZQb3NFbmQgPSA1LCBmTmVnU3RhcnQgPSAxMCwKKyogICAgZlJ1blN0YXJ0ID0geyAwLCAzLCA2LCA5LCAxMiwgVSwgVSwgVSwgVSwgVSB9OworKiB3aGVyZSBVIGlzIGFuIHVuZGVmaW5lZCBhcnJheSBlbGVtZW50LgorCisqIEFuIGVxdWl2YWxlbnQgcmVwcmVzZW50YXRpb24gd291bGQgYmU6CisqICAgIGZDdXJUZXh0TGVuZ3RoID0gMTUsIGZQb3NFbmQgPSAzLCBmTmVnU3RhcnQgPSA4LAorKiAgICBmUnVuU3RhcnQgPSB7IDAsIDMsIDYsIFUsIFUsIFUsIFUsIFUsIC02LCAtMyB9OworKgorKiBUaGUgUnVuQXJyYXkgY2xhc3MgaXMgdXNlZCBpbiB0aGUgU3R5bGVCdWZmZXIgYW5kIHRoZSBQYXJhZ3JhcGhCdWZmZXIuICBJbiB0aGUgU3R5bGVCdWZmZXIsCisqIHRoZSBlbnRyaWVzIGluIGZSdW5TdGFydCBnaXZlIHRoZSBvZmZzZXRzIHdoZXJlIHN0eWxlIHJ1bnMgYmVnaW4uICBJbiB0aGUKKyogUGFyYWdyYXBoQnVmZmVyLCB0aGUgZlJ1blN0YXJ0IGVudHJpZXMgc3RvcmUgb2Zmc2V0cyBvZiBwYXJhZ3JhcGggYnJlYWtzLgorKgorKiBUaGlzIGNsYXNzIHByb3ZpZGVzIG1ldGhvZHMgZm9yIHNoaWZ0aW5nIHRoZSBydW4gdGFibGUgdG8gYSBwYXJ0aWN1bGFyIHBvc2l0aW9uLCBleHBhbmRpbmcgdGhlCisqIHJ1biB0YWJsZSwgYW5kIHJldHVybmluZyB0aGUgaW5kZXggb2YgdGhlIHJ1biBjb250YWluaW5nIGEgcGFydGljdWxhciBvZmZzZXQgaW4gdGhlIHRleHQuICBBbGwKKyogb3RoZXIgZnVuY3Rpb25hbGl0eSBpcyBpbXBsZW1lbnRlZCBpbiB0aGUgUnVuQXJyYXkgY2xpZW50cy4KKyoKKyogUnVuQXJyYXkgdXNlcyBGYXN0SW50QmluYXJ5U2VhcmNoIGZvciBzZWFyY2hlcy4gIFRoZSBzZWFyY2hlcyBhcmUgY29uc3RydWN0ZWQgb24gZGVtYW5kIGluCisqIHRoZSBmaW5kUnVuQ29udGFpbmluZyBtZXRob2QuICBUaGUgc2VhcmNoZXMgYXJlIGludmFsaWRhdGVkIHdoZW4gdGhlIHJ1biBhcnJheSBpcyBzaGlmdGVkOworKiBob3dldmVyLCB0aGUgUnVuQXJyYXkgY2FuIGJlIG1vZGlmaWVkIGJ5IG90aGVyIGNsYXNzZXMuICBUaHVzLCBpZiBhbm90aGVyIGNsYXNzIG1vZGlmaWVzCisqIHRoZSBlbnRyaWVzIGluIGZSdW5BcnJheSwgb3IgbW9kaWZpZXMgZlBvc0VuZCBvciBmTmVnU3RhcnQsIGl0IGlzIHJlc3BvbnNpYmxlIGZvcgorKiBjYWxsaW5nIHJ1blN0YXJ0c0NoYW5nZWQuCisqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworaW1wb3J0IGphdmEuaW8uRXh0ZXJuYWxpemFibGU7CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dDsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dDsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitmaW5hbCBjbGFzcyBSdW5BcnJheSBpbXBsZW1lbnRzIEV4dGVybmFsaXphYmxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMjIzNTY5MzQ7CisKKyAgICBpbnRbXSBmUnVuU3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgZkN1clRleHRMZW5ndGg7CisgICAgaW50IGZQb3NFbmQsIGZOZWdTdGFydDsKKyAgICAKKyAgICB0cmFuc2llbnQgcHJpdmF0ZSBGYXN0SW50QmluYXJ5U2VhcmNoIGZQb3NTZWFyY2g7CisgICAgdHJhbnNpZW50IHByaXZhdGUgYm9vbGVhbiBmUG9zU2VhcmNoVmFsaWQ7CisgICAgdHJhbnNpZW50IHByaXZhdGUgRmFzdEludEJpbmFyeVNlYXJjaCBmTmVnU2VhcmNoOworICAgIHRyYW5zaWVudCBwcml2YXRlIGJvb2xlYW4gZk5lZ1NlYXJjaFZhbGlkOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTlRfVkVSU0lPTiA9IDE7CisKKyAgICBSdW5BcnJheShpbnQgaW5pdGlhbFNpemUsIGludCBjdXJUZXh0TGVuZ3RoKSB7CisKKyAgICAgICAgZlJ1blN0YXJ0ID0gbmV3IGludFtpbml0aWFsU2l6ZV07CisgICAgICAgIGZDdXJUZXh0TGVuZ3RoID0gY3VyVGV4dExlbmd0aDsKKyAgICAgICAgZlBvc0VuZCA9IC0xOworICAgICAgICBmTmVnU3RhcnQgPSBpbml0aWFsU2l6ZTsKKyAgICAgICAgCisgICAgICAgIGZQb3NTZWFyY2ggPSBuZXcgRmFzdEludEJpbmFyeVNlYXJjaChmUnVuU3RhcnQsIDAsIDEpOworICAgICAgICBmTmVnU2VhcmNoID0gbmV3IEZhc3RJbnRCaW5hcnlTZWFyY2goZlJ1blN0YXJ0LCAwLCAxKTsKKyAgICAgICAgZlBvc1NlYXJjaFZhbGlkID0gZk5lZ1NlYXJjaFZhbGlkID0gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogTm90ZTogdGhpcyBjb25zdHJ1Y3RvciBpcyBPTkxZIGZvciB1c2UgYnkgdGhlIFNlcmlhbGl6YXRpb24KKyAgICAgKiBtZWNoYW5pc20uICBJdCBkb2VzIG5vdCBsZWF2ZSB0aGlzIG9iamVjdCBpbiBhIHZhbGlkIHN0YXRlIQorICAgICAqLworICAgIHB1YmxpYyBSdW5BcnJheSgpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUV4dGVybmFsKE9iamVjdE91dHB1dCBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgb3V0LndyaXRlSW50KENVUlJFTlRfVkVSU0lPTik7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmUnVuU3RhcnQpOworICAgICAgICBvdXQud3JpdGVJbnQoZkN1clRleHRMZW5ndGgpOworICAgICAgICBvdXQud3JpdGVJbnQoZlBvc0VuZCk7CisgICAgICAgIG91dC53cml0ZUludChmTmVnU3RhcnQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlYWRFeHRlcm5hbChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoaW4ucmVhZEludCgpICE9IENVUlJFTlRfVkVSU0lPTikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgUnVuQXJyYXkiKTsKKyAgICAgICAgfQorICAgICAgICBmUnVuU3RhcnQgPSAoaW50W10pIGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgZkN1clRleHRMZW5ndGggPSBpbi5yZWFkSW50KCk7CisgICAgICAgIGZQb3NFbmQgPSBpbi5yZWFkSW50KCk7CisgICAgICAgIGZOZWdTdGFydCA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgCisgICAgICAgIGZQb3NTZWFyY2ggPSBuZXcgRmFzdEludEJpbmFyeVNlYXJjaChmUnVuU3RhcnQsIDAsIDEpOworICAgICAgICBmTmVnU2VhcmNoID0gbmV3IEZhc3RJbnRCaW5hcnlTZWFyY2goZlJ1blN0YXJ0LCAwLCAxKTsKKyAgICAgICAgZlBvc1NlYXJjaFZhbGlkID0gZk5lZ1NlYXJjaFZhbGlkID0gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRDdXJUZXh0TGVuZ3RoKCkgeworCisgICAgICAgIHJldHVybiBmQ3VyVGV4dExlbmd0aDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRDdXJUZXh0TGVuZ3RoKGludCBjdXJUZXh0TGVuZ3RoKSB7CisKKyAgICAgICAgZkN1clRleHRMZW5ndGggPSBjdXJUZXh0TGVuZ3RoOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZFRvQ3VyVGV4dExlbmd0aChpbnQgZGVsdGEpIHsKKworICAgICAgICBmQ3VyVGV4dExlbmd0aCArPSBkZWx0YTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBydW5TdGFydHNDaGFuZ2VkKCkgeworCisgICAgICAgIGZQb3NTZWFyY2hWYWxpZCA9IGZOZWdTZWFyY2hWYWxpZCA9IGZhbHNlOworICAgIH0KKworLyoqCisqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBsYXN0IHZhbGlkIHJ1bi4KKyovCisgICAgaW50IGxhc3RSdW4oKSB7CisKKyAgICAgICAgcmV0dXJuIChmTmVnU3RhcnQgPT0gZlJ1blN0YXJ0Lmxlbmd0aCk/IGZQb3NFbmQgOiBmUnVuU3RhcnQubGVuZ3RoLTE7CisgICAgfQorCisvKioKKyogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBydW4gYXJyYXkuICBSZXBsYWNlcyBvbGQgZkxlbmd0aCBtZW1iZXIuCisqLworICAgIGludCBnZXRBcnJheUxlbmd0aCgpIHsKKworICAgICAgICByZXR1cm4gZlJ1blN0YXJ0Lmxlbmd0aDsKKyAgICB9CisKKy8qKgorKiBTaGlmdHMgc3R5bGUgdGFibGUgc3VjaCB0aGF0IHRoZSBsYXN0IHBvc2l0aXZlIHJ1bgorKiBzdGFydHMgYmVmb3JlIHBvcy4KKyovCisgICAgdm9pZCBzaGlmdFRhYmxlVG8oaW50IHBvcykgeworCisgICAgICAgIGludCBvbGRQb3NFbmQgPSBmUG9zRW5kOworCisgICAgICAgIHdoaWxlIChmUG9zRW5kID49IDAgJiYgZlJ1blN0YXJ0W2ZQb3NFbmRdID49IHBvcykgeworCisgICAgICAgICAgICBmTmVnU3RhcnQtLTsKKyAgICAgICAgICAgIGZSdW5TdGFydFtmTmVnU3RhcnRdID0gZlJ1blN0YXJ0W2ZQb3NFbmRdIC0gZkN1clRleHRMZW5ndGg7CisgICAgICAgICAgICBmUG9zRW5kLS07CisKKyAgICAgICAgfQorCisgICAgICAgIHBvcyAtPSBmQ3VyVGV4dExlbmd0aDsKKworICAgICAgICB3aGlsZSAoZk5lZ1N0YXJ0PGZSdW5TdGFydC5sZW5ndGggJiYgZlJ1blN0YXJ0W2ZOZWdTdGFydF0gPCBwb3MpIHsKKworICAgICAgICAgICAgZlBvc0VuZCsrOworICAgICAgICAgICAgZlJ1blN0YXJ0W2ZQb3NFbmRdID0gZlJ1blN0YXJ0W2ZOZWdTdGFydF0gKyBmQ3VyVGV4dExlbmd0aDsKKyAgICAgICAgICAgIGZOZWdTdGFydCsrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG9sZFBvc0VuZCAhPSBmUG9zRW5kKSB7CisgICAgICAgICAgICBmUG9zU2VhcmNoVmFsaWQgPSBmTmVnU2VhcmNoVmFsaWQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIFJldHVybnMgaW5kZXggb2Ygc3R5bGUgcnVuIGNvbnRhaW5pbmcgcG9zLiAgSWYgZmlyc3Qgc3R5bGUgcnVuIHN0YXJ0cyBiZWZvcmUKKyogcG9zLCAtMSBpcyByZXR1cm5lZC4gIElmIHBvcyBpcyBncmVhdGVyIHRoYW4gdGV4dCBsZW5ndGgsIGxhc3RydW4gaXMgcmV0dXJuZWQuCisqLworICAgIGludCBmaW5kUnVuQ29udGFpbmluZyhpbnQgcG9zKSB7CisKKyAgICAgICAgRmFzdEludEJpbmFyeVNlYXJjaCBzZWFyY2g7CisgICAgICAgIGZpbmFsIGludCBsZW5ndGggPSBmUnVuU3RhcnQubGVuZ3RoOworCisgICAgICAgIGlmIChmTmVnU3RhcnQgPCBsZW5ndGggJiYgKHBvcy1mQ3VyVGV4dExlbmd0aCA+PSBmUnVuU3RhcnRbZk5lZ1N0YXJ0XSkpIHsKKworICAgICAgICAgICAgcG9zIC09IGZDdXJUZXh0TGVuZ3RoOworCisgICAgICAgICAgICBpZiAoIWZOZWdTZWFyY2hWYWxpZCkgeworICAgICAgICAgICAgICAgIGZOZWdTZWFyY2guc2V0RGF0YShmUnVuU3RhcnQsIGZOZWdTdGFydCwgbGVuZ3RoLWZOZWdTdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWFyY2ggPSBmTmVnU2VhcmNoOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGZQb3NFbmQgPj0gMCkgeworCisgICAgICAgICAgICBpZiAoIWZQb3NTZWFyY2hWYWxpZCkgeworICAgICAgICAgICAgICAgIGZQb3NTZWFyY2guc2V0RGF0YShmUnVuU3RhcnQsIDAsIGZQb3NFbmQrMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWFyY2ggPSBmUG9zU2VhcmNoOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiAtMTsKKworICAgICAgICBpbnQgcnVuID0gc2VhcmNoLmZpbmRJbmRleChwb3MpOworCisgICAgICAgIHJldHVybiBydW47CisgICAgfQorCisgICAgaW50IGdldExvZ2ljYWxSdW5TdGFydChpbnQgcnVuKSB7CisKKyAgICAgICAgaWYgKHJ1biA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocnVuID09IGZSdW5TdGFydC5sZW5ndGgpIHsKKyAgICAgICAgICAgIHJldHVybiBmQ3VyVGV4dExlbmd0aDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChydW4gPD0gZlBvc0VuZCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmUnVuU3RhcnRbcnVuXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHJ1biA+PSBmTmVnU3RhcnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZlJ1blN0YXJ0W3J1bl0gKyBmQ3VyVGV4dExlbmd0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgcnVuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKy8qKgorKiBJbmNyZWFzZXMgc2l6ZSBvZiBydW4gdGFibGUuICBDdXJyZW50IGltcGxlbWVudGF0aW9uIGRvdWJsZXMgdGhlIHJ1biB0YWJsZSdzIHNpemUuCisqLworICAgIHZvaWQgZXhwYW5kUnVuVGFibGUoKSB7CisKKyAgICAgICAgcmVzaXplUnVuVGFibGUoZlJ1blN0YXJ0Lmxlbmd0aCAqIDIpOworICAgIH0KKworLyoqCisqIFJldHVybiB0aGUgbWluaW11bSBudW1iZXIgb2YgZWxlbWVudHMgcG9zc2libGUgaW4gZlJ1blN0YXJ0LgorKi8KKyAgICBwcml2YXRlIGludCBnZXRNaW5TaXplKCkgeworCisgICAgICAgIHJldHVybiBNYXRoLm1heChmUG9zRW5kICsgKGZSdW5TdGFydC5sZW5ndGgtZk5lZ1N0YXJ0KSArIDEsIDEpOworICAgIH0KKworICAgIHZvaWQgY29tcHJlc3MoKSB7CisKKyAgICAgICAgaW50IG1pblNpemUgPSBnZXRNaW5TaXplKCk7CisgICAgICAgIGlmIChmUnVuU3RhcnQubGVuZ3RoID4gbWluU2l6ZSkgeworICAgICAgICAgICAgcmVzaXplUnVuVGFibGUobWluU2l6ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmVzaXplUnVuVGFibGUoaW50IG5ld1NpemUpIHsKKworICAgICAgICBpZiAobmV3U2l6ZSA8IGdldE1pblNpemUoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQXR0ZW1wdCB0byBtYWtlIFJ1bkFycmF5IHRvbyBzbWFsbC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGludCBvbGRMZW5ndGggPSBmUnVuU3RhcnQubGVuZ3RoOworCisgICAgICAgIGludCBuZXdSdW5TdGFydFtdID0gbmV3IGludFtuZXdTaXplXTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmUnVuU3RhcnQsIDAsIG5ld1J1blN0YXJ0LCAwLCBmUG9zRW5kKzEpOworICAgICAgICBpbnQgbmV3TmVnU3RhcnQgPSBuZXdSdW5TdGFydC5sZW5ndGggLSAob2xkTGVuZ3RoLWZOZWdTdGFydCk7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZlJ1blN0YXJ0LCBmTmVnU3RhcnQsIG5ld1J1blN0YXJ0LCBuZXdOZWdTdGFydCwgKG9sZExlbmd0aC1mTmVnU3RhcnQpKTsKKworICAgICAgICBmTmVnU3RhcnQgPSBuZXdOZWdTdGFydDsKKyAgICAgICAgZlJ1blN0YXJ0ID0gbmV3UnVuU3RhcnQ7CisKKyAgICAgICAgZlBvc1NlYXJjaFZhbGlkID0gZk5lZ1NlYXJjaFZhbGlkID0gZmFsc2U7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9TdGFuZGFyZFRhYlJ1bGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0YW5kYXJkVGFiUnVsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MTI4ZjU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9TdGFuZGFyZFRhYlJ1bGVyLmphdmEKQEAgLTAsMCArMSwzNzIgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworLyoqCisgKiBUaGlzIGNsYXNzIGlzIGEgc3RhbmRhcmQgaW1wbGVtZW50YXRpb24gb2YgTVRhYlJ1bGVyLgorICogSXQgY2FuIGhhdmUgYSBmaW5pdGUgbnVtYmVyIG9mIGNsaWVudC1zcGVjaWZpZWQgVGFiU3RvcHMuICBBZnRlcgorICogdGhlIGNsaWVudC1zcGVjaWZpZWQgVGFiU3RvcHMsIGFsbCBUYWJTdG9wcyBoYXZlIHR5cGUKKyAqIDxjb2RlPlRhYlN0b3Aua0F1dG88L2NvZGU+IGFuZCBhcmUgYXQgdGhlIGF1dG9zcGFjZSBpbnRlcnZhbHMuCisgKiBAc2VlIFRhYlN0b3AKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFN0YW5kYXJkVGFiUnVsZXIgZXh0ZW5kcyBNVGFiUnVsZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5UX1ZFUlNJT04gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDIyMzU2OTM0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGFiU3RvcCBBVVRPX1pFUk8gPSBuZXcgVGFiU3RvcCgwLCBUYWJTdG9wLmtBdXRvKTsKKworICAgIHByaXZhdGUgVGFiU3RvcFtdIGZUYWJzID0gbnVsbDsKKyAgICBwcml2YXRlIGludCBmQXV0b1NwYWNpbmcgPSAzNjsgLy8gZXZlcnkgMS8yIGluY2guCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdGFuZGFyZFRhYlJ1bGVyIHdpdGggb25seSBhdXRvIHRhYnMsIHdpdGggc3BhY2luZyBvZiAzNi4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RhbmRhcmRUYWJSdWxlcigpCisgICAgeworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFN0YW5kYXJkVGFiUnVsZXIgd2l0aCBvbmx5IGF1dG8gdGFicywgd2l0aCB0aGUKKyAgICAgKiBnaXZlbiBhdXRvU3BhY2luZy4KKyAgICAgKiBAcGFyYW0gYXV0b1NwYWNpbmcgdGhlIGF1dG9TcGFjaW5nIGZvciB0aGlzIHRhYiBydWxlcgorICAgICAqLworICAgIHB1YmxpYyBTdGFuZGFyZFRhYlJ1bGVyKGludCBhdXRvU3BhY2luZykKKyAgICB7CisgICAgICAgIGZBdXRvU3BhY2luZyA9IGF1dG9TcGFjaW5nOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFN0YW5kYXJkVGFiUnVsZXIuICBUaGUgZmlyc3QgVGFiU3RvcHMgb24gdGhlIHJ1bGVyIHdpbGwgYmUKKyAgICAgKiB0aGUgVGFiU3RvcHMgaW4gdGhlIDxjb2RlPnRhYnM8L2NvZGU+IGFycmF5LiAgQWZ0ZXIgdGhlc2UgdGFicyBhbGwKKyAgICAgKiB0YWJzIGFyZSBhdXRvIHRhYnMuCisgICAgICogQHBhcmFtIHRhYnMgYW4gYXJyYXkgb2YgVGFiU3RvcHMuICBUaGUgVGFiU3RvcHMgaW4gdGhlIGFycmF5IG11c3QKKyAgICAgKiAgICBiZSBpbiBzdHJpY3RseSBpbmNyZWFzaW5nIG9yZGVyIChvZiBwb3NpdGlvbnMpLCBhbmQgY2Fubm90IGhhdmUKKyAgICAgKiAgICB0eXBlIDxjb2RlPlRhYlN0b3Aua0F1dG88L2NvZGU+LgorICAgICAqIEBwYXJhbSBhdXRvU3BhY2luZyB0aGUgYXV0b1NwYWNpbmcgaW50ZXJ2YWwgdG8gdXNlIGFmdGVyIHRoZSBsYXN0CisgICAgICogICAgY2xpZW50LXNwZWNpZmllZCB0YWIuCisgICAgICovCisgICAgcHVibGljIFN0YW5kYXJkVGFiUnVsZXIoVGFiU3RvcFtdIHRhYnMsIGludCBhdXRvU3BhY2luZykKKyAgICB7CisgICAgICAgIGlmICh0YWJzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIHZhbGlkYXRlVGFiQXJyYXkodGFicyk7CisgICAgICAgICAgICBmVGFicyA9IChUYWJTdG9wW10pIHRhYnMuY2xvbmUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZUYWJzID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBmQXV0b1NwYWNpbmcgPSBhdXRvU3BhY2luZzsKKyAgICB9CisKKyAgICAvKiogVGFicyBhcyBwcm92aWRlZCwgdGhlbiBhdXRvU3BhY2luZyBhZnRlciB0aGUgbGFzdCB0YWIgdG8gZXRlcm5pdHkuICBVc2UgdGhpcyBjb25zdHJ1Y3RvciB3aGVuCisgICAgICAgIG11bmdpbmcgYSBydWxlciwgaXQgZG9lcyBubyB2YWxpZGF0aW9uIG9uIHRoZSB0YWJzIGluIHRoZSB2ZWN0b3IuIFZlY3RvciBtYXkgbm90IGJlIG51bGwuICovCisKKyAgICAvKnB1YmxpYyovIFN0YW5kYXJkVGFiUnVsZXIoVmVjdG9yIHYsIGludCBhdXRvU3BhY2luZykKKyAgICB7CisgICAgICAgIGZUYWJzID0gdGFiQXJyYXlGcm9tVmVjdG9yKHYpOworICAgICAgICBmQXV0b1NwYWNpbmcgPSBhdXRvU3BhY2luZzsKKyAgICB9CisKKyAgICAvKiogQ29uc3RydWN0IGZyb20gYW5vdGhlciBydWxlci4gTm8gdmFsaWRhdGlvbi4gUnVsZXIgbWF5IG5vdCBiZSBudWxsLiAqLworCisgICAgLypwdWJsaWMqLyBTdGFuZGFyZFRhYlJ1bGVyKE1UYWJSdWxlciBydWxlcikKKyAgICB7CisgICAgICAgIGlmIChydWxlciA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJydWxlciBtYXkgbm90IGJlIG51bGwiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZUYWJzID0gdGFiQXJyYXlGcm9tVmVjdG9yKHZlY3RvckZyb21UYWJSdWxlcihydWxlcikpOworICAgICAgICBmQXV0b1NwYWNpbmcgPSBydWxlci5hdXRvU3BhY2luZygpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlYWRFeHRlcm5hbChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpbnQgdmVyc2lvbiA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgaWYgKHZlcnNpb24gIT0gQ1VSUkVOVF9WRVJTSU9OKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludmFsaWQgdmVyc2lvbiBvZiBTdHlsZWRUZXh0OiAiICsgdmVyc2lvbik7CisgICAgICAgIH0KKyAgICAgICAgZlRhYnMgPSAoVGFiU3RvcFtdKSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgIGZBdXRvU3BhY2luZyA9IGluLnJlYWRJbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUV4dGVybmFsKE9iamVjdE91dHB1dCBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgb3V0LndyaXRlSW50KENVUlJFTlRfVkVSU0lPTik7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmVGFicyk7CisgICAgICAgIG91dC53cml0ZUludChmQXV0b1NwYWNpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBmaXJzdCB0YWIgaW4gdGhlIHJ1bGVyLiAgSWYgYW4gYXV0b1RhYiwgaXQgaXMgYXQgcG9zaXRpb24gemVybywgYW5kCisgICAgICogYWxsIHN1YnNlcXVlbnQgdGFicyB3aWxsIGJlIGF1dG90YWJzIGF0IGF1dG9TcGFjaW5nIGludGVydmFscy4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGFiU3RvcCBmaXJzdFRhYigpCisgICAgeworICAgICAgICBpZiAoZlRhYnMgIT0gbnVsbCAmJiBmVGFicy5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gZlRhYnNbMF07CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gQVVUT19aRVJPOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgdGFiIGluIHRoZSBydWxlciB3aXRoIGZQb3NpdGlvbiA+IHBvc2l0aW9uLiAgSWYgaXQgaXMgYW4KKyAgICAgKiBhdXRvdGFiLCBpdCBpcyBhdCBhbiBpbmNyZW1lbnQgb2YgYXV0b1NwYWNpbmcsIGFuZCBhbGwgc3Vic2VxdWVudCB0YWJzIHdpbGwgYmUKKyAgICAgKiBhdXRvdGFicyBhdCBhdXRvU3BhY2luZyBpbnRlcnZhbHMuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiBvZiB0aGUgVGFiU3RvcCByZXR1cm5lZCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiB0aGlzIHBhcmFtZXRlcgorICAgICAqLworICAgIHB1YmxpYyBUYWJTdG9wIG5leHRUYWIoaW50IHBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKGZUYWJzICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZlRhYnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPCBmVGFic1tpXS5nZXRQb3NpdGlvbigpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZlRhYnNbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAocG9zaXRpb24gPj0gNDAwMCkgeyAvLyBkZWJ1Zzogc2FuaXR5IGNoZWNrCisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImF1dG8gdGFiIHBhc3QgNDAwMCIpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBUYWJTdG9wKCgocG9zaXRpb24gLyBmQXV0b1NwYWNpbmcpICsgMSkgKiBmQXV0b1NwYWNpbmcsIFRhYlN0b3Aua0F1dG8pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaW50ZXJ2YWwgZm9yIGF1dG90YWJzLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgYXV0b1NwYWNpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZBdXRvU3BhY2luZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHRoaXMgdG8gYW5vdGhlciBPYmplY3QuIFJldHVybnMgdHJ1ZSBpZiB0aGUgb2JqZWN0CisgICAgICogaXMgYW4gTVRhYlJ1bGVyIHdpdGggdGhlIHNhbWUgYXV0b1NwYWNpbmcgYW5kIHRhYnMuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvKQorICAgIHsKKyAgICAgICAgaWYgKG8gPT0gdGhpcykgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIE1UYWJSdWxlciByaHM7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByaHMgPSAoTVRhYlJ1bGVyKW87CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmQXV0b1NwYWNpbmcgIT0gcmhzLmF1dG9TcGFjaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgVGFiU3RvcCByaHNUYWIgPSByaHMuZmlyc3RUYWIoKTsKKworICAgICAgICBpZiAoZlRhYnMgIT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmVGFicy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICghZlRhYnNbaV0uZXF1YWxzKHJoc1RhYikpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgICAgIHJoc1RhYiA9IHJocy5uZXh0VGFiKHJoc1RhYi5nZXRQb3NpdGlvbigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByaHNUYWIuZ2V0VHlwZSgpID09IFRhYlN0b3Aua0F1dG87CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGRlYnVnIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgdGFiIHJ1bGVyLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmZlciA9IG5ldyBTdHJpbmdCdWZmZXIoc3VwZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGJ1ZmZlci5hcHBlbmQoIiBhdXRvOiAiKTsKKyAgICAgICAgYnVmZmVyLmFwcGVuZChJbnRlZ2VyLnRvU3RyaW5nKGZBdXRvU3BhY2luZykpOworCisgICAgICAgIGlmIChmVGFicyAhPSBudWxsKSB7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZUYWJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgYnVmZmVyLmFwcGVuZChmVGFic1tpXS50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKiogVXRpbGl0eSB0byBjb252ZXJ0IGEgdmVjdG9yIG9mIHRhYnMgdG8gYW4gYXJyYXkuICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBUYWJTdG9wW10gdGFiQXJyYXlGcm9tVmVjdG9yKFZlY3RvciB2KQorICAgIHsKKyAgICAgICAgaW50IGNvdW50ID0gdi5zaXplKCk7CisgICAgICAgIFRhYlN0b3BbXSB0YWJzID0gbmV3IFRhYlN0b3BbY291bnRdOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIHRhYnNbaV0gPSAoVGFiU3RvcCl2LmVsZW1lbnRBdChpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0YWJzOworICAgIH0KKworICAgIC8qKiBVdGlsaXR5IHRvIGNvbnZlcnQgYSBydWxlciB0byBhIHZlY3RvciBvZiB0YWJzLCBmb3IgbXVuZ2luZy4gKi8KKworICAgIHByaXZhdGUgc3RhdGljIFZlY3RvciB2ZWN0b3JGcm9tVGFiUnVsZXIoTVRhYlJ1bGVyIHJ1bGVyKQorICAgIHsKKyAgICAgICAgVmVjdG9yIHYgPSBuZXcgVmVjdG9yKCk7CisgICAgICAgIGZvciAoVGFiU3RvcCB0YWIgPSBydWxlci5maXJzdFRhYigpOyB0YWIgIT0gbnVsbCAmJiB0YWIuZ2V0VHlwZSgpICE9IFRhYlN0b3Aua0F1dG87IHRhYiA9IHJ1bGVyLm5leHRUYWIodGFiLmdldFBvc2l0aW9uKCkpKSB7CisgICAgICAgICAgICB2LmFkZEVsZW1lbnQodGFiKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB2OworICAgIH0KKworICAgIC8qKiBVdGlsaXR5IHRvIHZhbGlkYXRlIGFuIGFycmF5IG9mIHRhYnMuICBUaGUgYXJyYXkgbXVzdCBub3QgYmUgbnVsbCwgbXVzdCBub3QgY29udGFpbiBudWxsCisgICAgICAgIGVudHJpZXMsIG11c3Qgbm90IGJlIGtBdXRvLCBhbmQgcG9zaXRpb25zIG11c3QgaW4gaW5jcmVhc2luZyBvcmRlci4gKi8KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdmFsaWRhdGVUYWJBcnJheShUYWJTdG9wW10gdGFicykKKyAgICB7CisgICAgICAgIGludCBwb3MgPSBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWJzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAodGFic1tpXS5nZXRUeXBlKCkgPT0gVGFiU3RvcC5rQXV0bykgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNhbid0IGV4cGxpY2l0bHkgc3BlY2lmeSBhbiBhdXRvIHRhYi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBuZXh0cG9zID0gdGFic1tpXS5nZXRQb3NpdGlvbigpOworICAgICAgICAgICAgaWYgKG5leHRwb3MgPD0gcG9zKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigidGFiIHBvc2l0aW9ucyBtdXN0IGJlIGluIGluY3JlYXNpbmcgb3JkZXIuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3MgPSBuZXh0cG9zOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdGFiIHJ1bGVyIGlkZW50aWNhbCB0byB0aGUgZ2l2ZW4gcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIGdpdmVuIHRhYiBhZGRlZC4KKyAgICAgKiBAcGFyYW0gcnVsZXIgdGhlIG9yaWdpbmFsIHJ1bGVyLiAgVGhlIE1UYWJSdWxlciB3aWxsIGJlIHRoZSBzYW1lIGFzCisgICAgICogICB0aGlzIGV4Y2VwdCBmb3IgdGhlIGFkZGl0aW9uYWwgdGFiLiAgPGNvZGU+cnVsZXI8L2NvZGU+IGlzIG5vdCBtb2RpZmllZC4KKyAgICAgKiBAcGFyYW0gdGFiVG9BZGQgdGhlIHRhYiB0byBhZGQgdG8gdGhlIG5ldyB0YWIgcnVsZXIKKyAgICAgKiBAcmV0dXJuIGFuIE1UYWJSdWxlciByZXN1bHRpbmcgZnJvbSB0aGlzIG9wZXJhdGlvbgorICAgICAqLworICAgIC8qcHVibGljKi8gc3RhdGljIE1UYWJSdWxlciBhZGRUYWJUb1J1bGVyKE1UYWJSdWxlciBydWxlciwgVGFiU3RvcCB0YWJUb0FkZCkKKyAgICB7CisgICAgICAgIGlmIChydWxlciA9PSBudWxsIHx8IHRhYlRvQWRkID09IG51bGwpCisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJydWxlciBhbmQgdGFiVG9BZGQgbWF5IG5vdCBiZSBudWxsIik7CisKKyAgICAgICAgVmVjdG9yIHZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgYm9vbGVhbiBhZGRlZCA9IGZhbHNlOworICAgICAgICBmb3IgKFRhYlN0b3AgdGFiID0gcnVsZXIuZmlyc3RUYWIoKTsgdGFiLmdldFR5cGUoKSAhPSBUYWJTdG9wLmtBdXRvOyB0YWIgPSBydWxlci5uZXh0VGFiKHBvcykpIHsKKyAgICAgICAgICAgIHBvcyA9IHRhYi5nZXRQb3NpdGlvbigpOworCisgICAgICAgICAgICBpZiAoIWFkZGVkICYmIHBvcyA+PSB0YWJUb0FkZC5nZXRQb3NpdGlvbigpKSB7CisgICAgICAgICAgICAgICAgaWYgKHBvcyA9PSB0YWJUb0FkZC5nZXRQb3NpdGlvbigpKQorICAgICAgICAgICAgICAgICAgICB0YWIgPSBudWxsOworICAgICAgICAgICAgICAgIHZlY3Rvci5hZGRFbGVtZW50KHRhYlRvQWRkKTsKKyAgICAgICAgICAgICAgICBhZGRlZCA9IHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICh0YWIgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICB2ZWN0b3IuYWRkRWxlbWVudCh0YWIpOworICAgICAgICB9CisgICAgICAgIGlmICghYWRkZWQpCisgICAgICAgICAgICB2ZWN0b3IuYWRkRWxlbWVudCh0YWJUb0FkZCk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKHZlY3RvciwgcnVsZXIuYXV0b1NwYWNpbmcoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdGFiIHJ1bGVyIGlkZW50aWNhbCB0byB0aGUgZ2l2ZW4gcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIGdpdmVuIHRhYiByZW1vdmVkLgorICAgICAqIEBwYXJhbSBydWxlciB0aGUgb3JpZ2luYWwgcnVsZXIuICBUaGUgTVRhYlJ1bGVyIHdpbGwgYmUgdGhlIHNhbWUgYXMKKyAgICAgKiAgIHRoaXMgZXhjZXB0IGZvciB0aGUgcmVtb3ZlZCB0YWIuICA8Y29kZT5ydWxlcjwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gb2YgdGhlIHRhYiB0byByZW1vdmUgZnJvbSB0aGUgbmV3IHRhYiBydWxlcgorICAgICAqIEByZXR1cm4gYW4gTVRhYlJ1bGVyIHJlc3VsdGluZyBmcm9tIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgTVRhYlJ1bGVyIHJlbW92ZVRhYkZyb21SdWxlcihNVGFiUnVsZXIgcnVsZXIsIGludCBwb3NpdGlvbikKKyAgICB7CisgICAgICAgIGlmIChydWxlciA9PSBudWxsKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigicnVsZXIgbWF5IG5vdCBiZSBudWxsIik7CisKKyAgICAgICAgVmVjdG9yIHZlY3RvciA9IG5ldyBWZWN0b3IoKTsKKworICAgICAgICBpbnQgcG9zID0gMDsKKyAgICAgICAgYm9vbGVhbiByZW1vdmVkID0gZmFsc2U7CisgICAgICAgIGZvciAoVGFiU3RvcCB0YWIgPSBydWxlci5maXJzdFRhYigpOyB0YWIuZ2V0VHlwZSgpICE9IFRhYlN0b3Aua0F1dG87IHRhYiA9IHJ1bGVyLm5leHRUYWIocG9zKSkgeworICAgICAgICAgICAgcG9zID0gdGFiLmdldFBvc2l0aW9uKCk7CisKKyAgICAgICAgICAgIGlmICghcmVtb3ZlZCAmJiBwb3MgPj0gcG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAocG9zID09IHBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIHJlbW92ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gc2tpcCB0aGlzIHRhYiBhbmQgY29udGludWUgd2l0aCB0aGUgcmVtYWluZGVyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOyAvLyB3ZSBkaWRuJ3QgcmVtb3ZlIGEgdGFiLCBidXQgc2tpcHBlZCBwb3NpdGlvbiwgc28gZG9uJ3QgYm90aGVyIHdpdGggdGhlIHJlc3QKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmVjdG9yLmFkZEVsZW1lbnQodGFiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXJlbW92ZWQpIC8vIG5vIGNoYW5nZQorICAgICAgICAgICAgcmV0dXJuIHJ1bGVyOworCisgICAgICAgIGlmICh2ZWN0b3Iuc2l6ZSgpID09IDApCisgICAgICAgICAgICByZXR1cm4gbmV3IFN0YW5kYXJkVGFiUnVsZXIocnVsZXIuYXV0b1NwYWNpbmcoKSk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKHZlY3RvciwgcnVsZXIuYXV0b1NwYWNpbmcoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgdGFiIHJ1bGVyIGlkZW50aWNhbCB0byB0aGUgZ2l2ZW4gcnVsZXIsIGV4Y2VwdCB3aXRoIHRoZQorICAgICAqIHRhYiBhdCBwb3NpdGlvbiA8Y29kZT5mcm9tUG9zaXRpb248L2NvZGU+IG1vdmVkIHRvIHBvc2l0aW9uCisgICAgICogPGNvZGU+dG9Qb3NpdGlvbjwvY29kZT4uCisgICAgICogQHBhcmFtIHJ1bGVyIHRoZSBvcmlnaW5hbCBydWxlci4gIFRoZSBNVGFiUnVsZXIgd2lsbCBiZSB0aGUgc2FtZSBhcworICAgICAqICAgdGhpcyBleGNlcHQgZm9yIHRoZSBtb3ZlZCB0YWIuICA8Y29kZT5ydWxlcjwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorICAgICAqIEBwYXJhbSBmcm9tUG9zaXRpb24gdGhlIHBvc2l0aW9uIG9mIHRoZSB0YWIgdG8gbW92ZQorICAgICAqIEBwYXJhbSB0b1Bvc2l0aW9uIHRoZSBuZXcgcG9zaXRpb24gb2YgdGhlIHRhYgorICAgICAqIEByZXR1cm4gYW4gTVRhYlJ1bGVyIHJlc3VsdGluZyBmcm9tIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgTVRhYlJ1bGVyIG1vdmVUYWJPblJ1bGVyKE1UYWJSdWxlciBydWxlciwgaW50IGZyb21Qb3NpdGlvbiwgaW50IHRvUG9zaXRpb24pCisgICAgeworICAgICAgICBpZiAocnVsZXIgPT0gbnVsbCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oInJ1bGVyIG1heSBub3QgYmUgbnVsbCIpOworCisgICAgICAgIFZlY3RvciB2ZWN0b3IgPSBuZXcgVmVjdG9yKCk7CisKKyAgICAgICAgaW50IHBvcyA9IDA7CisgICAgICAgIGJvb2xlYW4gbW92ZWQgPSBmYWxzZTsKKyAgICAgICAgZm9yIChUYWJTdG9wIHRhYiA9IHJ1bGVyLmZpcnN0VGFiKCk7IHRhYi5nZXRUeXBlKCkgIT0gVGFiU3RvcC5rQXV0bzsgdGFiID0gcnVsZXIubmV4dFRhYihwb3MpKSB7CisgICAgICAgICAgICBwb3MgPSB0YWIuZ2V0UG9zaXRpb24oKTsKKworICAgICAgICAgICAgaWYgKCFtb3ZlZCAmJiBwb3MgPT0gZnJvbVBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgbW92ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIHRhYiA9IG5ldyBUYWJTdG9wKHRvUG9zaXRpb24sIHRhYi5nZXRUeXBlKCkpOyAvLyBjb3B5IGl0CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZlY3Rvci5hZGRFbGVtZW50KHRhYik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFtb3ZlZCkgLy8gbm8gY2hhbmdlCisgICAgICAgICAgICByZXR1cm4gcnVsZXI7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKHZlY3RvciwgcnVsZXIuYXV0b1NwYWNpbmcoKSk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0eWxlQnVmZmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0eWxlQnVmZmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmQ1YWNhOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3R5bGVCdWZmZXIuamF2YQpAQCAtMCwwICsxLDY2OSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgamF2YS5pby5FeHRlcm5hbGl6YWJsZTsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdElucHV0OworaW1wb3J0IGphdmEuaW8uT2JqZWN0T3V0cHV0OworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8qCisgICAgOC8yLzk2CisgICAgICAgIEFkZGVkIHNldEl0ZXJhdG9yVXNpbmdSdW4gbWV0aG9kCisKKyAgICA4LzUvOTYKKyAgICAgICAgTm8gbG9uZ2VyIGhhcyB0byBiZSBjb25zdHJ1Y3RlZCB3aXRoIGFuIE1UZXh0LgorCisgICAgOC84Lzk2CisgICAgICAgIEFkZGVkIHJlcGxhY2UgbWV0aG9kLCB3aGljaCByZWFkcyBzdHlsZXMgZnJvbSBhIFN0eWxlUnVuSXRlcmF0b3IuCisgICAgICAgIEFsc28sIGFkZGVkIGEgY29uc3RydWN0b3Igd2hpY2ggdGFrZXMgYSBTdHlsZVJ1bkl0ZXJhdG9yLgorICAgICAgICBUaGVzZSBtZXRob2RzIGFyZSBmb3IgY29weS9wYXN0ZSBzdXBwb3J0LgorICAgIDgvMTYvOTYKKyAgICAgICAgU3R5bGVCdWZmZXIgbm93IHRha2VzIE1Db25zdFRleHQgaW5zdGVhZCBvZiBNVGV4dCB3aGVyZSBwb3NzaWJsZS4KKworICAgIDEwLzIzLzk2CisgICAgICAgIFNvbWUgb2xkIGNvbW1lbnRlZC1vdXQgY29kZSByZW1vdmVkIGZvciBhZXN0aGV0aWMgcmVhc29ucy4KKworICAgIDcvMzEvOTggU3dpdGNoZWQgdG8gQXR0cmlidXRlTWFwCisqLworCisvKioKKyogU3R5bGVCdWZmZXIgaW1wbGVtZW50cyA8dHQ+TVN0eWxlQnVmZmVyPC90dD4uICBJdCBtYWludGFpbnMKKyogPHR0PkF0dHJpYnV0ZU1hcDwvdHQ+IG9iamVjdHMgdG8gYXBwbHkgdG8gdGhlIHRleHQgaW4gYW4gPHR0Pk1UZXh0PC90dD4gb2JqZWN0LAorKiBhbmQgdGhlCisqIGludGVydmFscyBvbiB3aGljaCB0aG9zZSBzdHlsZXMgYXBwbHkuCisqIDxwPgorKiBTdHlsZUJ1ZmZlciBzdG9yZXMgdGhlIGludGVydmFscyBvbiB3aGljaCBzdHlsZXMgYXBwbHkgaW4gYSA8dHQ+UnVuQXJyYXk8L3R0PgorKiBvYmplY3QgKHNlZSA8dHQ+UnVuQXJyYXk8L3R0PiBmb3IgbW9yZSBpbmZvcm1hdGlvbikuICBUaGUgc3R5bGVzIGFyZSBzdG9yZWQgaW4KKyogYW4gYXJyYXkgb2YgPHR0PkF0dHJpYnV0ZU1hcDwvdHQ+IG9iamVjdHMuCisqIDxwPgorKiA8dHQ+UnVuQXJyYXk8L3R0PiBtYWludGFpbnMgYW4gYXJyYXkgb2YgaW50ZWdlcnMgd2hpY2ggcmVwcmVzZW50IG9mZnNldHMgaW50byB0ZXh0LgorKiBUaGUgYXJyYXkgaGFzIGEgInBvc2l0aXZlIiByZWdpb24gaW4gd2hpY2ggb2Zmc2V0cyBhcmUgZ2l2ZW4gYXMgcG9zaXRpdmUgZGlzdGFuY2VzCisqIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSB0ZXh0LCBhbmQgYSAibmVnYXRpdmUiIHJlZ2lvbiBpbiB3aGljaCBvZmZzZXRzIGFyZSBnaXZlbiBhcworKiBuZWdhdGl2ZSBkaXN0YW5jZXMgZnJvbSB0aGUgZW5kIG9mIHRoZSB0ZXh0LiAgQmV0d2VlbiB0aGUgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHJlZ2lvbnMKKyogaXMgYSBnYXAsIGludG8gd2hpY2ggbmV3IG9mZnNldHMgbWF5IGJlIGluc2VydGVkLiAgVGhpcyBzdG9yYWdlIHNjaGVtZSBhbGxvd3MgZm9yCisqIGVmZmljaWVudCByZXNwb25zZSB0byBhIHNlcmllcyBvZiBlZGl0aW5nIG9wZXJhdGlvbnMgd2hpY2ggb2NjdXIgaW4gdGhlIHNhbWUgYXJlYSBvZiB0aGUKKyogdGV4dC4KKyogPHA+CisqIFN0eWxlQnVmZmVyIHVzZXMgdGhlIG9mZnNldHMgaW4gPHR0PlJ1bkFycmF5PC90dD4gYXMgdGhlIGJvdW5kYXJpZXMgb2Ygc3R5bGUgcnVucy4KKyogQSBzdHlsZSBydW4gYmVnaW5zIGF0IGVhY2ggb2Zmc2V0IGluIDx0dD5SdW5BcnJheTwvdHQ+LCBhbmQgZWFjaCBzdHlsZSBydW4gY29udGludWVzIHRvCisqIHRoZSBuZXh0IG9mZnNldC4gIFRoZSBzdHlsZSBhcnJheSBpcyBrZXB0IGluIHN5bmMgd2l0aCB0aGUgYXJyYXkgb2Ygb2Zmc2V0cyBpbiA8dHQ+UnVuQXJyYXk8L3R0PjsKKyogdGhhdCBpcywgdGhlIHN0eWxlIHdoaWNoIGJlZ2lucyBhdCBSdW5BcnJheVtpXSBpcyBzdG9yZWQgaW4gU3R5bGVBcnJheVtpXS4KKyogPHA+CisqIFRoZSBmaXJzdCBlbnRyeSBpbiB0aGUgPHR0PlJ1bkFycmF5PC90dD4gaXMgYWx3YXlzIDAuCisqCisqIEBhdXRob3IgSm9obiBSYWxleQorKgorKiBAc2VlIEF0dHJpYnV0ZU1hcAorKiBAc2VlIE1UZXh0CisqIEBzZWUgUnVuQXJyYXkKKyovCisKK2ZpbmFsIGNsYXNzIFN0eWxlQnVmZmVyIGV4dGVuZHMgTVN0eWxlQnVmZmVyIGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAqIENyZWF0ZXMgYSBuZXcgc3R5bGUgYnVmZmVyIHdpdGggbGVuZ3RoIGVxdWFsIHRvIHRoZSBsZW5ndGggb2YgPHR0PnRleHQ8L3R0PiwKKyAgICAqIGFuZCB3aXRoIGEgc2luZ2xlIHJ1biBvZiA8dHQ+ZGVmYXVsdFN0eWxlPC90dD4uCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAyMjM1NjkzNDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5UX1ZFUlNJT04gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrSW5pdGlhbFNpemUgPSAxMDsKKyAgICBwcml2YXRlIFJ1bkFycmF5IGZSdW5BcnJheTsKKworICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZTdHlsZVRhYmxlW107CisKKyAgICBTdHlsZUJ1ZmZlcihNQ29uc3RUZXh0IHRleHQsIEF0dHJpYnV0ZU1hcCBpbml0aWFsU3R5bGUpIHsKKworICAgICAgICB0aGlzKHRleHQubGVuZ3RoKCksIGluaXRpYWxTdHlsZSk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBDcmVhdGVzIGEgbmV3IHN0eWxlIGJ1ZmZlciB3aXRoIGxlbmd0aCA8dHQ+aW5pdGlhbExlbmd0aDwvdHQ+IGFuZCB3aXRoIGEKKyAgICAqIHNpbmdsZSBydW4gb2YgPHR0PmRlZmF1bHRTdHlsZTwvdHQ+LgorICAgICovCisKKyAgICBTdHlsZUJ1ZmZlcihpbnQgaW5pdGlhbExlbmd0aCwgQXR0cmlidXRlTWFwIGluaXRpYWxTdHlsZSkgeworCisgICAgICAgIGZSdW5BcnJheSA9IG5ldyBSdW5BcnJheShrSW5pdGlhbFNpemUsIGluaXRpYWxMZW5ndGgpOworICAgICAgICBmUnVuQXJyYXkuZlBvc0VuZCA9IDA7CisgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbMF0gPSAwOworCisgICAgICAgIGZTdHlsZVRhYmxlID0gbmV3IEF0dHJpYnV0ZU1hcFtrSW5pdGlhbFNpemVdOyAvLyBkbyBJIHJlYWxseSB3YW50IHRvIGRvIHRoaXM/Pz8KKworICAgICAgICBmU3R5bGVUYWJsZVswXSA9IGluaXRpYWxTdHlsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3RlOiB0aGlzIGNvbnN0cnVjdG9yIGlzIE9OTFkgZm9yIHVzZSBieSB0aGUgU2VyaWFsaXphdGlvbgorICAgICAqIG1lY2hhbmlzbS4gIEl0IGRvZXMgbm90IGxlYXZlIHRoaXMgb2JqZWN0IGluIGEgdmFsaWQgc3RhdGUhCisgICAgICovCisgICAgcHVibGljIFN0eWxlQnVmZmVyKCkgeworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBjb21wcmVzcygpOworICAgICAgICBvdXQud3JpdGVJbnQoQ1VSUkVOVF9WRVJTSU9OKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KGZSdW5BcnJheSk7CisgICAgICAgIG91dC53cml0ZU9iamVjdChmU3R5bGVUYWJsZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVhZEV4dGVybmFsKE9iamVjdElucHV0IGluKSB0aHJvd3MgSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoaW4ucmVhZEludCgpICE9IENVUlJFTlRfVkVSU0lPTikgeworICAgICAgICAgICAgdGhyb3cgbmV3IElPRXhjZXB0aW9uKCJJbnZhbGlkIHZlcnNpb24gb2YgU3R5bGVCdWZmZXIiKTsKKyAgICAgICAgfQorICAgICAgICBmUnVuQXJyYXkgPSAoUnVuQXJyYXkpIGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgZlN0eWxlVGFibGUgPSAoQXR0cmlidXRlTWFwW10pIGluLnJlYWRPYmplY3QoKTsKKyAgICB9CisKKy8qKgorKiBTaGlmdCBzdHlsZSBhbmQgcnVuIHRhYmxlcyBzdWNoIHRoYXQgdGhlIGxhc3QgcG9zaXRpdmUgcnVuIGJlZ2lucyBiZWZvcmUgdGhlIGdpdmVuIHBvc2l0aW9uLgorKiBTaW5jZSB0aGVyZSBpcyBhbHdheXMgYSBydW4gc3RhcnQgYXQgMCwgdGhpcyBtZXRob2QgZW5zdXJlcyB0aGF0IHRoZSBmaXJzdCBydW4gd2lsbCBub3QgYmUgc2hpZnRlZC4KKyogVGhpcyBpcyBjYWxsZWQgYnk6IDx0dD5pbnNlcnRUZXh0PC90dD4gYW5kIDx0dD5kZWxldGVUZXh0PC90dD4uCisqIEBwYXJhbSBwb3MgYSBwb3NpdGlvbiBpbiB0aGUgdGV4dC4KKyovCisKKyAgICBwcml2YXRlIHZvaWQgc2hpZnRUYWJsZVRvKGludCBwb3MpIHsKKworICAgICAgICBpZiAocG9zID09IDApCisgICAgICAgICAgICBwb3MgPSAxOworCisgICAgICAgIGludCBvbGROZWdTdGFydCA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGludCBvbGRQb3NFbmQgPSBmUnVuQXJyYXkuZlBvc0VuZDsKKworICAgICAgICBmUnVuQXJyYXkuc2hpZnRUYWJsZVRvKHBvcyk7CisKKyAgICAgICAgaWYgKG9sZFBvc0VuZCA+IGZSdW5BcnJheS5mUG9zRW5kKQorICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShmU3R5bGVUYWJsZSwgZlJ1bkFycmF5LmZQb3NFbmQrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlN0eWxlVGFibGUsIGZSdW5BcnJheS5mTmVnU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBvc0VuZC1mUnVuQXJyYXkuZlBvc0VuZCk7CisgICAgICAgIGVsc2UgaWYgKG9sZE5lZ1N0YXJ0IDwgZlJ1bkFycmF5LmZOZWdTdGFydCkKKyAgICAgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZlN0eWxlVGFibGUsIG9sZE5lZ1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZSwgb2xkUG9zRW5kKzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mTmVnU3RhcnQtb2xkTmVnU3RhcnQpOworICAgIH0KKworLyoqCisqIFVwZGF0ZSB0aGUgc3R5bGUgdGFibGUgdG8gcmVmbGVjdCBhIGNoYW5nZSBpbiB0aGUgUnVuQXJyYXkncyBzaXplLgorKi8KKyAgICBwcml2YXRlIHZvaWQgaGFuZGxlQXJyYXlSZXNpemUoaW50IG9sZE5lZ1N0YXJ0KSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIG5ld1N0eWxlVGFibGVbXSA9IG5ldyBBdHRyaWJ1dGVNYXBbZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCldOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZTdHlsZVRhYmxlLCAwLCBuZXdTdHlsZVRhYmxlLCAwLCBmUnVuQXJyYXkuZlBvc0VuZCsxKTsKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmU3R5bGVUYWJsZSwgb2xkTmVnU3RhcnQsIG5ld1N0eWxlVGFibGUsIGZSdW5BcnJheS5mTmVnU3RhcnQsIChmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKS1mUnVuQXJyYXkuZk5lZ1N0YXJ0KSk7CisgICAgICAgIGZTdHlsZVRhYmxlID0gbmV3U3R5bGVUYWJsZTsKKyAgICB9CisKKy8qKgorKiBNaW5pbWl6ZSB0aGUgYW1vdW50IG9mIHN0b3JhZ2UgdXNlZCBieSB0aGlzIG9iamVjdC4KKyovCisgICAgdm9pZCBjb21wcmVzcygpIHsKKworICAgICAgICBpbnQgb2xkTmVnU3RhcnQgPSBmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICBmUnVuQXJyYXkuY29tcHJlc3MoKTsKKyAgICAgICAgaWYgKGZSdW5BcnJheS5mTmVnU3RhcnQgIT0gb2xkTmVnU3RhcnQpIHsKKyAgICAgICAgICAgIGhhbmRsZUFycmF5UmVzaXplKG9sZE5lZ1N0YXJ0KTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIEluY3JlYXNlIHRoZSBzdG9yYWdlIGNhcGFjaXR5IG9mIHRoZSBzdHlsZSBhbmQgcnVuIHRhYmxlcyBpZiBubyByb29tIHJlbWFpbnMuCisqLworICAgIHByaXZhdGUgdm9pZCBleHBhbmRTdHlsZVRhYmxlSWZGdWxsKCkgeworCisgICAgICAgIGlmIChmUnVuQXJyYXkuZlBvc0VuZCArIDEgPT0gZlJ1bkFycmF5LmZOZWdTdGFydCkgeworCisgICAgICAgICAgICBpbnQgb2xkTmVnU3RhcnQgPSBmUnVuQXJyYXkuZk5lZ1N0YXJ0OworICAgICAgICAgICAgZlJ1bkFycmF5LmV4cGFuZFJ1blRhYmxlKCk7CisgICAgICAgICAgICBoYW5kbGVBcnJheVJlc2l6ZShvbGROZWdTdGFydCk7CisgICAgICAgIH0KKyAgICB9CisKKy8qCisgICAgcHVibGljIE1TdHlsZVJ1bkl0ZXJhdG9yIGNyZWF0ZVN0eWxlUnVuSXRlcmF0b3IoaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKworICAgICAgICByZXR1cm4gbmV3IFN0eWxlUnVuSXRlcmF0b3Ioc3RhcnQsIGxpbWl0KTsKKyAgICB9CisqLworLyoqCisqIFJlc3BvbmQgdG8gYW4gaW5zZXJ0aW9uIGluIHRoZSB0ZXh0LiAgVGhlIGxlbmd0aCBvZiB0aGUgbGFzdCBzdHlsZSBydW4gd2hpY2gKKyogYmVnaW5zIGJlZm9yZSA8dHQ+c3RhcnQ8L3R0PiBpcyBpbmNyZWFzZWQgYnkgPHR0Pmxlbmd0aDwvdHQ+LiAgVGhlIHJ1biB0YWJsZQorKiBpcyBzaGlmdGVkIHN1Y2ggdGhhdCB0aGUgcnVuIGludG8gd2hpY2ggdGV4dCB3YXMgaW5zZXJ0ZWQgaXMgdGhlIGxhc3QgcG9zaXRpdmUgcnVuLgorKiBUaGlzIGltcGxlbWVudGF0aW9uIGFzc3VtZXMgdGhhdCBhbGwgc3R5bGVzIHByb3BvZ2F0ZS4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgd2hlcmUgdGhlIGluc2VydGlvbiBiZWdhbgorKiBAcGFyYW0gbGVuZ3RoIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbnNlcnRlZAorKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnRUZXh0KGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgc2hpZnRUYWJsZVRvKHN0YXJ0KTsKKyAgICAgICAgZlJ1bkFycmF5LmFkZFRvQ3VyVGV4dExlbmd0aChsaW1pdCAtIHN0YXJ0KTsKKyAgICB9CisKKy8qKgorKiBSZXNwb25kIHRvIGEgZGVsZXRpb24gaW4gdGhlIHRleHQuICBUaGUgbGFzdCBzdHlsZSBydW4gYmVmb3JlCisqIDx0dD5zdGFydDwvdHQ+IGlzIHRydW5jYXRlZCB0byBlbmQgYXQgPHR0PnN0YXJ0PC90dD4uICBUaGUKKyogc3R5bGUgcnVuIGNvbnRhaW5pbmcgKDx0dD5zdGFydDwvdHQ+Kzx0dD5sZW5ndGg8L3R0PikgaXMgc2V0IHRvIGJlZ2luCisqIGF0ICg8dHQ+c3RhcnQ8L3R0Pis8dHQ+bGVuZ3RoPC90dD4pLiAgUnVucyBpbiBiZXR3ZWVuIGFyZSBkZWxldGVkLgorKiBJZiB0aGUgZGVsZXRpb24gb2NjdXJzIGVudGlyZWx5IHdpdGhpbiBvbmUgc3R5bGUgcnVuLCB0aGUgbGVuZ3RoIG9mIHRoZSBzdHlsZQorKiBydW4gaXMgcmVkdWNlZCBieSA8dHQ+bGVuZ3RoPC90dD4uCisqIFRoaXMgaW1wbGVtZW50YXRpb24gYXNzdW1lcyB0aGF0IGFsbCBzdHlsZXMgcHJvcG9nYXRlLgorKiBUaGlzIG1ldGhvZCBzaGlmdHMgdGhlIHJ1biB0YWJsZSBzdWNoIHRoYXQgdGhlIHJ1biBpbiB3aGljaCB0aGUgZGVsZXRlIGJlZ2FuCisqIGlzIHRoZSBsYXN0IHBvc2l0aXZlIHJ1bi4gIE90aGVyIG1ldGhvZHMgZGVwZW5kIG9uIHRoaXMgInNpZGUgZWZmZWN0Ii4KKyogQHBhcmFtIHN0YXJ0IHRoZSBvZmZzZXQgd2hlcmUgdGhlIGRlbGV0aW9uIGJlZ2FuCisqIEBwYXJhbSBsZW5ndGggdGhlIG9mZnNldCB3aGVyZSB0aGUgZGVsZXRpb24gc3RvcHBlZAorKi8KKyAgICBwdWJsaWMgdm9pZCBkZWxldGVUZXh0KGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgaW50IGxlbmd0aCA9IGxpbWl0IC0gc3RhcnQ7CisKKyAgICAgICAgLy8gQW4gb3B0aW1pemF0aW9uIC0gaWYgYSB3aG9sZSBydW4gd2Fzbid0IGRlbGV0ZWQgd2UgZG9uJ3QKKyAgICAgICAgLy8gbmVlZCB0byBjaGVjayBmb3IgcnVuIG1lcmdpbmcsIHdoaWNoIGNvdWxkIGJlIGV4cGVuc2l2ZS4KKyAgICAgICAgYm9vbGVhbiB3aG9sZVJ1bkRlbGV0ZWQgPSBmYWxzZTsKKworICAgICAgICBzaGlmdFRhYmxlVG8oc3RhcnQpOworCisgICAgICAgIGludCBmaXJzdFJ1bkxpbWl0ID0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKyAgICAgICAgaWYgKGZSdW5BcnJheS5mTmVnU3RhcnQgPCBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKSkKKyAgICAgICAgICAgIGZpcnN0UnVuTGltaXQgKz0gZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZk5lZ1N0YXJ0XTsKKworICAgICAgICBpZiAobGltaXQgPT0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKSkgeworICAgICAgICAgICAgZlJ1bkFycmF5LmZOZWdTdGFydCA9IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGxpbWl0ID49IGZpcnN0UnVuTGltaXQpIHsKKworICAgICAgICAgICAgaW50IGVuZCA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhsaW1pdCk7CisgICAgICAgICAgICBpZiAoZW5kICE9IGZSdW5BcnJheS5mUG9zRW5kKSB7CisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFtlbmRdID0gbGltaXQgLSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mTmVnU3RhcnQgPSBlbmQ7CisgICAgICAgICAgICAgICAgd2hvbGVSdW5EZWxldGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChmUnVuQXJyYXkuZk5lZ1N0YXJ0ICE9IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpKSB7CisgICAgICAgICAgICBpZiAoc3RhcnQgPT0gMCAmJiBsaW1pdCA+PSBmaXJzdFJ1bkxpbWl0KSB7CisgICAgICAgICAgICAgICAgLy8gdGhlIGZpcnN0IHN0eWxlIHJ1biB3YXMgZGVsZXRlZDsgIG1vdmUgZmlyc3QgIm5lZ2F0aXZlIiBydW4gaW50bworICAgICAgICAgICAgICAgIC8vIGZpcnN0IHBvc2l0aW9uCisgICAgICAgICAgICAgICAgZlN0eWxlVGFibGVbMF0gPSBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZk5lZ1N0YXJ0KytdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAod2hvbGVSdW5EZWxldGVkKSB7CisgICAgICAgICAgICAgICAgaWYgKGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mTmVnU3RhcnRdLmVxdWFscyhmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0pKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIG1lcmdlIHN0eWxlIHJ1bnMKKyAgICAgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZOZWdTdGFydCsrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZSdW5BcnJheS5hZGRUb0N1clRleHRMZW5ndGgoLWxlbmd0aCk7CisKKyAgICAgICAgZlJ1bkFycmF5LnJ1blN0YXJ0c0NoYW5nZWQoKTsKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkluIGRlbGV0ZVRleHQ6ICBudW1iZXIgb2Ygc3R5bGUgcnVucyA9ICIgKyBudW1SdW5zKHRoaXMpKTsKKyAgICB9CisKKy8qKgorKiBBcnJhbmdlIHN0eWxlIHRhYmxlIHNvIHRoYXQgb2xkIHN0eWxlcyBpbiB0aGUgcHJvdmlkZWQgcmFuZ2UgYXJlIHJlbW92ZWQsIGFuZAorKiBuZXcgc3R5bGVzIGNhbiBiZSBpbnNlcnRlZCBpbnRvIHRoZSBpbnNlcnRpb24gZ2FwLgorKiBBZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kLCBuZXcgc3R5bGUgc3RhcnRzIGFuZCBzdHlsZXMgbWF5IGJlIHBsYWNlZAorKiBpbiB0aGUgaW5zZXJ0aW9uIGdhcHMgb2YgZlJ1bkFycmF5LmZTdHlsZVN0YXJ0IGFuZCBmU3R5bGVUYWJsZS4KKyogQHBhcmFtIHN0YXJ0IG9mZnNldCBpbiB0aGUgdGV4dCB3aGVyZSBpbnNlcnRpb24gb3BlcmF0aW9uIGJlZ2lucworKiBAcGFyYW0gbGltaXQgb2Zmc2V0IGluIHRoZSB0ZXh0IHdoZXJlIHByZXZpb3VzIHN0eWxlcyByZXN1bWUKKyovCisgICAgcHJpdmF0ZSB2b2lkIHByZXBhcmVTdHlsZUluc2VydChpbnQgc3RhcnQpIHsKKworICAgICAgICBpZiAoc3RhcnQgPT0gMCkgeworCisgICAgICAgICAgICAvLyBmUnVuQXJyYXkuZlBvc0VuZCBzaG91bGQgYmUgMCBpZiB3ZSdyZSBpbiB0aGlzIGJyYW5jaC4KKworICAgICAgICAgICAgaWYgKGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCkgPiAwKSB7CisKKyAgICAgICAgICAgICAgICAvKiBNb3ZlIGZpcnN0IGV4aXN0aW5nIHN0eWxlIHJ1biB0byBuZWdhdGl2ZSBlbmQgb2YgYnVmZmVyLgorICAgICAgICAgICAgICAgICAgIERvbid0IGRvIHRoaXMgaWYgbGVuZ3RoPT0wOyAgdGhhdCBpcywgaWYgdGhlcmUgaXMgbm8gcmVhbAorICAgICAgICAgICAgICAgICAgIHN0eWxlIHJ1biBhdCAwLgorICAgICAgICAgICAgICAgICAqLworCisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZOZWdTdGFydC0tOworICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mTmVnU3RhcnRdID0gZlN0eWxlVGFibGVbMF07CisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZk5lZ1N0YXJ0XSA9IC1mUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmUnVuQXJyYXkuZlBvc0VuZCA9IC0xOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworCisgICAgICAgICAgICAvLyBjb25zaXN0ZW5jeSBjaGVjazogc3RhcnQgc2hvdWxkIGJlIGluIGN1cnJlbnQgZ2FwCisgICAgICAgICAgICBpZiAoZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZlBvc0VuZF0gPj0gc3RhcnQpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkluY29uc2lzdGVudCBzdGF0ZSEgIFN0YXJ0IHNob3VsZCBiZSB3aXRoaW4gaW5zZXJ0aW9uIGdhcC4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW50IGVuZE9mSW5zZXJ0aW9uR2FwID0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKyAgICAgICAgICAgIGlmIChmUnVuQXJyYXkuZk5lZ1N0YXJ0IDwgZlJ1bkFycmF5LmdldEFycmF5TGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlbmRPZkluc2VydGlvbkdhcCArPSBmUnVuQXJyYXkuZlJ1blN0YXJ0W2ZSdW5BcnJheS5mTmVnU3RhcnRdOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZW5kT2ZJbnNlcnRpb25HYXAgPCBzdGFydCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW5jb25zaXN0ZW50IHN0YXRlISAgU3RhcnQgc2hvdWxkIGJlIHdpdGhpbiBpbnNlcnRpb24gZ2FwLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBpZiBubyBicmVhayBhdCBzdGFydCAob24gbmVnYXRpdmUgZW5kIG9mIGJ1ZmZlcikgbWFrZSBvbmUKKworICAgICAgICAgICAgaWYgKGVuZE9mSW5zZXJ0aW9uR2FwICE9IHN0YXJ0KSB7CisKKyAgICAgICAgICAgICAgICAvLyBzcGxpdCBzdHlsZSBydW4gaW4gaW5zZXJ0aW9uIGdhcAorCisgICAgICAgICAgICAgICAgZXhwYW5kU3R5bGVUYWJsZUlmRnVsbCgpOworCisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZOZWdTdGFydC0tOworICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mTmVnU3RhcnRdID0gZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdOworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbZlJ1bkFycmF5LmZOZWdTdGFydF0gPSBzdGFydCAtIGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigic3BsaXR0aW5nIHJ1bi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vZGlmeVN0eWxlcyhpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gZGFtYWdlZFJhbmdlKSB7CisKKyAgICAgICAgaWYgKGxpbWl0ID09IHN0YXJ0KSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBzaGlmdFRhYmxlVG8oc3RhcnQpOworCisgICAgICAgIGludCBjdXJyZW50UnVuU3RhcnQgPSBzdGFydDsKKyAgICAgICAgQXR0cmlidXRlTWFwIG9sZFN0eWxlOworICAgICAgICBBdHRyaWJ1dGVNYXAgbWVyZ2VTdHlsZSA9IGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXTsKKworICAgICAgICBpZiAoZlJ1bkFycmF5LmZOZWdTdGFydCA8IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpICYmCisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZSdW5TdGFydFtmUnVuQXJyYXkuZk5lZ1N0YXJ0XStmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpID09IHN0YXJ0KSB7CisKKyAgICAgICAgICAgIG9sZFN0eWxlID0gZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZOZWdTdGFydF07CisgICAgICAgICAgICArK2ZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBvbGRTdHlsZSA9IG1lcmdlU3R5bGU7CisgICAgICAgIH0KKworICAgICAgICBib29sZWFuIG1vZGlmaWVkQW55d2hlcmUgPSBmYWxzZTsKKyAgICAgICAgZm9yKDs7KSB7CisKKyAgICAgICAgICAgIGJvb2xlYW4gbW9kaWZpZWQgPSBmYWxzZTsKKworICAgICAgICAgICAgLy8gcHVzaCBuZXcgc3R5bGUgaW50byBnYXAgb24gcG9zaXRpdmUgc2lkZQorICAgICAgICAgICAgQXR0cmlidXRlTWFwIG5ld1N0eWxlID0gbW9kaWZpZXIubW9kaWZ5U3R5bGUob2xkU3R5bGUpOworICAgICAgICAgICAgaWYgKGRhbWFnZWRSYW5nZSAhPSBudWxsICYmICFuZXdTdHlsZS5lcXVhbHMob2xkU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSBtb2RpZmllZEFueXdoZXJlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBkYW1hZ2VkUmFuZ2VbMF0gPSBNYXRoLm1pbihjdXJyZW50UnVuU3RhcnQsIGRhbWFnZWRSYW5nZVswXSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghbmV3U3R5bGUuZXF1YWxzKG1lcmdlU3R5bGUpKSB7CisKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudFJ1blN0YXJ0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwYW5kU3R5bGVUYWJsZUlmRnVsbCgpOworICAgICAgICAgICAgICAgICAgICArK2ZSdW5BcnJheS5mUG9zRW5kOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSA9IG5ld1N0eWxlOworICAgICAgICAgICAgICAgIGZSdW5BcnJheS5mUnVuU3RhcnRbZlJ1bkFycmF5LmZQb3NFbmRdID0gY3VycmVudFJ1blN0YXJ0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtZXJnZVN0eWxlID0gbmV3U3R5bGU7CisKKyAgICAgICAgICAgIGludCBuZXh0UnVuU3RhcnQgPSBmUnVuQXJyYXkuZ2V0TG9naWNhbFJ1blN0YXJ0KGZSdW5BcnJheS5mTmVnU3RhcnQpOworCisgICAgICAgICAgICBpZiAobGltaXQgPiBuZXh0UnVuU3RhcnQpIHsKKyAgICAgICAgICAgICAgICBvbGRTdHlsZSA9IGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mTmVnU3RhcnRdOworICAgICAgICAgICAgICAgIGN1cnJlbnRSdW5TdGFydCA9IG5leHRSdW5TdGFydDsKKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZGFtYWdlZFJhbmdlWzFdID0gTWF0aC5tYXgoY3VycmVudFJ1blN0YXJ0LCBkYW1hZ2VkUmFuZ2VbMV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK2ZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAobGltaXQgPCBuZXh0UnVuU3RhcnQgJiYgIW9sZFN0eWxlLmVxdWFscyhtZXJnZVN0eWxlKSkgeworICAgICAgICAgICAgICAgICAgICBleHBhbmRTdHlsZVRhYmxlSWZGdWxsKCk7CisgICAgICAgICAgICAgICAgICAgICsrZlJ1bkFycmF5LmZQb3NFbmQ7CisgICAgICAgICAgICAgICAgICAgIGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSA9IG9sZFN0eWxlOworICAgICAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZlJ1blN0YXJ0W2ZSdW5BcnJheS5mUG9zRW5kXSA9IGxpbWl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobW9kaWZpZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZGFtYWdlZFJhbmdlWzFdID0gTWF0aC5tYXgobGltaXQsIGRhbWFnZWRSYW5nZVsxXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gbWVyZ2UgbGFzdCBydW4gaWYgbmVlZGVkCisgICAgICAgIGlmICgoZlJ1bkFycmF5LmZOZWdTdGFydCA8IGZSdW5BcnJheS5nZXRBcnJheUxlbmd0aCgpKSAmJgorICAgICAgICAgICAgICAgICAgICAoZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZOZWdTdGFydF0uZXF1YWxzKGZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXSkpKSB7CisgICAgICAgICAgICBmUnVuQXJyYXkuZk5lZ1N0YXJ0Kys7CisgICAgICAgIH0KKworICAgICAgICBmUnVuQXJyYXkucnVuU3RhcnRzQ2hhbmdlZCgpOworCisgICAgICAgIHJldHVybiBtb2RpZmllZEFueXdoZXJlOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgc3R5bGVTdGFydChpbnQgcG9zKSB7CisKKyAgICAgICAgaWYgKHBvcyA9PSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gcG9zOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZSdW5BcnJheS5nZXRMb2dpY2FsUnVuU3RhcnQoZlJ1bkFycmF5LmZpbmRSdW5Db250YWluaW5nKHBvcykpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgc3R5bGVMaW1pdChpbnQgcG9zKSB7CisKKyAgICAgICAgaWYgKHBvcyA9PSBmUnVuQXJyYXkuZ2V0Q3VyVGV4dExlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gcG9zOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJ1biA9IGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhwb3MpOworCisgICAgICAgIGlmIChydW4gPT0gZlJ1bkFycmF5LmZQb3NFbmQpIHsKKyAgICAgICAgICAgIHJ1biA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICArK3J1bjsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmUnVuQXJyYXkuZ2V0TG9naWNhbFJ1blN0YXJ0KHJ1bik7CisgICAgfQorCisvKioKKyogUmV0dXJuIHN0eWxlIGF0IGxvY2F0aW9uIDx0dD5wb3M8L3R0Pi4KKyogQHBhcmFtIHBvcyBhbiBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJucyB0aGUgc3R5bGUgb2YgdGhlIGNoYXJhY3RlciBhdCA8dHQ+b2Zmc2V0PC90dD4KKyovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBzdHlsZUF0KGludCBwb3MpIHsKKworICAgICAgICByZXR1cm4gZlN0eWxlVGFibGVbIGZSdW5BcnJheS5maW5kUnVuQ29udGFpbmluZyhwb3MpIF07CisgICAgfQorCisvKgorKiBTZXQgcnVuIHN0YXJ0LCBydW4gbGVuZ3RoLCBhbmQgcnVuIHZhbHVlIGluIGFuIGl0ZXJhdG9yLiAgVGhpcyBtZXRob2QgaXMKKyogb25seSBjYWxsZWQgYnkgYSA8dHQ+U3R5bGVSdW5JdGVyYXRvcjwvdHQ+LgorKiBAcGFyYW0gcG9zIGFuIG9mZnNldCBpbnRvIHRoZSB0ZXh0LiAgVGhlIGl0ZXJhdG9yJ3MgcnVuIHN0YXJ0IGFuZCBydW4gbGltaXQgYXJlCisqIHNldCB0byB0aGUgcnVuIGNvbnRhaW5pbmcgPHR0PnBvczwvdHQ+LgorKiBAcGFyYW0gaXRlciB0aGUgaXRlcmF0b3IgdG8gc2V0CisqLworICAgIHZvaWQgc2V0SXRlcmF0b3IoaW50IHBvcywgU3R5bGVSdW5JdGVyYXRvciBpdGVyKSB7CisKKyAgICAgICAgaWYgKChwb3MgPCAwKSB8fCAocG9zID4gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKSkpIHsKKworICAgICAgICAgICAgaXRlci5zZXQobnVsbCwgMCwgMCwga05vUnVuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGludCBydW4gPSBmUnVuQXJyYXkuZmluZFJ1bkNvbnRhaW5pbmcocG9zKTsKKworICAgICAgICBzZXRJdGVyYXRvclVzaW5nUnVuKHJ1biwgaXRlcik7CisgICAgfQorCisvKioKKyogU2V0IHJ1biBzdGFydCwgcnVuIGxlbmd0aCwgYW5kIHJ1biB2YWx1ZSBpbiBhbiBpdGVyYXRvci4gIFRoaXMgbWV0aG9kIGlzCisqIG9ubHkgY2FsbGVkIGJ5IGEgPHR0PlN0eWxlUnVuSXRlcmF0b3I8L3R0Pi4KKyogQHBhcmFtIHJ1biB0aGUgaW5kZXggb2YgdGhlIHJ1biB0byB3aGljaCB0aGUgaXRlcmF0b3Igc2hvdWxkIGJlIHNldAorKiBAcGFyYW0gaXRlciB0aGUgaXRlcmF0b3IgdG8gc2V0CisqLworICAgIHByaXZhdGUgdm9pZCBzZXRJdGVyYXRvclVzaW5nUnVuKGludCBydW4sIFN0eWxlUnVuSXRlcmF0b3IgaXRlcikgeworCisgICAgICAgIGludCBsYXN0VmFsaWRSdW4gPSBmUnVuQXJyYXkubGFzdFJ1bigpOworCisgICAgICAgIGlmIChydW4gPCAwIHx8IHJ1biA+IGxhc3RWYWxpZFJ1bikgeworCisgICAgICAgICAgICBpdGVyLnNldChudWxsLCAwLCAwLCBrTm9SdW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJ1biA9PSBmUnVuQXJyYXkuZlBvc0VuZCsxKQorICAgICAgICAgICAgcnVuID0gZlJ1bkFycmF5LmZOZWdTdGFydDsKKyAgICAgICAgZWxzZSBpZiAocnVuID09IGZSdW5BcnJheS5mTmVnU3RhcnQtMSkKKyAgICAgICAgICAgIHJ1biA9IGZSdW5BcnJheS5mUG9zRW5kOworCisgICAgICAgIGludCBydW5TdGFydCA9IGZSdW5BcnJheS5mUnVuU3RhcnRbcnVuXTsKKyAgICAgICAgaWYgKHJ1blN0YXJ0IDwgMCkKKyAgICAgICAgICAgIHJ1blN0YXJ0ICs9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZlN0eWxlVGFibGVbcnVuXTsKKworICAgICAgICBpbnQgbmV4dFJ1bjsKKworICAgICAgICBpZiAocnVuID09IGZSdW5BcnJheS5mUG9zRW5kKQorICAgICAgICAgICAgbmV4dFJ1biA9IGZSdW5BcnJheS5mTmVnU3RhcnQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5leHRSdW4gPSBydW4gKyAxOworCisgICAgICAgIGludCBydW5MaW1pdDsKKworICAgICAgICBpZiAobmV4dFJ1biA+PSBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKSkKKyAgICAgICAgICAgIHJ1bkxpbWl0ID0gZlJ1bkFycmF5LmdldEN1clRleHRMZW5ndGgoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBydW5MaW1pdCA9IGZSdW5BcnJheS5mUnVuU3RhcnRbbmV4dFJ1bl07CisgICAgICAgICAgICBpZiAocnVuTGltaXQgPCAwKQorICAgICAgICAgICAgICAgIHJ1bkxpbWl0ICs9IGZSdW5BcnJheS5nZXRDdXJUZXh0TGVuZ3RoKCk7CisgICAgICAgIH0KKworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigic2V0SXRlcmF0b3I6IHBvcz0iK3BvcysiLCBydW5TdGFydD0iK3J1blN0YXJ0KyIsIHJ1bkxpbWl0PSIrcnVuTGltaXQrCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgIiwgcnVuPSIrcnVuKyIsIGZQb3NFbmQ9IitmUG9zRW5kKTsKKworICAgICAgICBpdGVyLnNldChzdHlsZSwgcnVuU3RhcnQsIHJ1bkxpbWl0LCBydW4pOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIE1Db25zdFRleHQgc3JjVGV4dCwgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQpCisgICAgeworICAgICAgICBkZWxldGVUZXh0KHN0YXJ0LCBsaW1pdCk7CisgICAgICAgIGlmIChzcmNTdGFydCA9PSBzcmNMaW1pdCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgcHJlcGFyZVN0eWxlSW5zZXJ0KHN0YXJ0KTsKKyAgICAgICAgZm9yIChpbnQgajIgPSBzcmNTdGFydDsgajIgPCBzcmNMaW1pdDsgajIgPSBzcmNUZXh0LmNoYXJhY3RlclN0eWxlTGltaXQoajIpKQorICAgICAgICB7CisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgYXR0cmlidXRlTWFwID0gc3JjVGV4dC5jaGFyYWN0ZXJTdHlsZUF0KGoyKTsKKyAgICAgICAgICAgIGlmIChmUnVuQXJyYXkuZlBvc0VuZCA8IDAgfHwgIWZTdHlsZVRhYmxlW2ZSdW5BcnJheS5mUG9zRW5kXS5lcXVhbHMoYXR0cmlidXRlTWFwKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBleHBhbmRTdHlsZVRhYmxlSWZGdWxsKCk7CisgICAgICAgICAgICAgICAgZlJ1bkFycmF5LmZQb3NFbmQrKzsKKyAgICAgICAgICAgICAgICBmUnVuQXJyYXkuZlJ1blN0YXJ0W2ZSdW5BcnJheS5mUG9zRW5kXSA9IGoyIC0gc3JjU3RhcnQgKyBzdGFydDsKKyAgICAgICAgICAgICAgICBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZlBvc0VuZF0gPSBhdHRyaWJ1dGVNYXA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZlJ1bkFycmF5LmFkZFRvQ3VyVGV4dExlbmd0aChzcmNMaW1pdCAtIHNyY1N0YXJ0KTsKKyAgICAgICAgaWYgKGZSdW5BcnJheS5mTmVnU3RhcnQgPCBmUnVuQXJyYXkuZ2V0QXJyYXlMZW5ndGgoKSAmJiBmU3R5bGVUYWJsZVtmUnVuQXJyYXkuZk5lZ1N0YXJ0XS5lcXVhbHMoZlN0eWxlVGFibGVbZlJ1bkFycmF5LmZQb3NFbmRdKSkKKyAgICAgICAgICAgIGZSdW5BcnJheS5mTmVnU3RhcnQrKzsKKyAgICB9CisKKyAgICBwcml2YXRlICBzdGF0aWMgZmluYWwgaW50IGtOb1J1biA9IC00MjsgLy8gaXRlcmF0b3IgdXNlCisKKyAgICBwcml2YXRlIGZpbmFsIGNsYXNzIFN0eWxlUnVuSXRlcmF0b3IgLyppbXBsZW1lbnRzIE1TdHlsZVJ1bkl0ZXJhdG9yKi8geworCisgICAgICAgIFN0eWxlUnVuSXRlcmF0b3IoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJlc2V0KHN0YXJ0LCBsaW1pdCwgc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCBwb3MpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZTdGFydCA9IHN0YXJ0OworICAgICAgICAgICAgZkxpbWl0ID0gbGltaXQ7CisgICAgICAgICAgICBzZXRJdGVyYXRvcihmU3RhcnQsIHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNWYWxpZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmU3R5bGUgIT0gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIG5leHQoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZlJ1bkxpbWl0IDwgZkxpbWl0KSB7CisgICAgICAgICAgICAgICAgZkN1cnJlbnRSdW4rKzsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvclVzaW5nUnVuKGZDdXJyZW50UnVuLCB0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzZXQobnVsbCwgMCwgMCwga05vUnVuKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHByZXYoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZlJ1blN0YXJ0ID4gZlN0YXJ0KSB7CisgICAgICAgICAgICAgICAgZkN1cnJlbnRSdW4tLTsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvclVzaW5nUnVuKGZDdXJyZW50UnVuLCB0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzZXQobnVsbCwgMCwgMCwga05vUnVuKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldChpbnQgcG9zKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocG9zID49IGZTdGFydCAmJiBwb3MgPCBmTGltaXQpIHsKKyAgICAgICAgICAgICAgICBzZXRJdGVyYXRvcihwb3MsIHRoaXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXQobnVsbCwgMCwgMCwga05vUnVuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgc2V0KEF0dHJpYnV0ZU1hcCBzdHlsZSwgaW50IHN0YXJ0LCBpbnQgbGltaXQsIGludCBjdXJyZW50UnVuKQorICAgICAgICB7CisgICAgICAgICAgICBmU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgICAgIGZDdXJyZW50UnVuID0gY3VycmVudFJ1bjsKKyAgICAgICAgICAgIGZSdW5TdGFydCA9IHN0YXJ0IDwgZlN0YXJ0ID8gZlN0YXJ0IDogc3RhcnQ7CisgICAgICAgICAgICBmUnVuTGltaXQgPSBsaW1pdCA+IGZMaW1pdCA/IGZMaW1pdCA6IGxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVzZXQoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJlc2V0KHN0YXJ0LCBsaW1pdCwgc3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgZmlyc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBzZXQoZlN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIGxhc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBzZXQoZkxpbWl0IC0gMSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJhbmdlU3RhcnQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCByYW5nZUxpbWl0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZMaW1pdDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcmFuZ2VMZW5ndGgoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZkxpbWl0IC0gZlN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBzdHlsZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmU3R5bGU7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IHJ1blN0YXJ0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZSdW5TdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgcnVuTGltaXQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlJ1bkxpbWl0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBydW5MZW5ndGgoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlJ1bkxpbWl0IC0gZlJ1blN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlN0YXJ0OworICAgICAgICBwcml2YXRlIGludCBmTGltaXQ7CisgICAgICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZTdHlsZTsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlJ1blN0YXJ0OworICAgICAgICBwcml2YXRlIGludCBmUnVuTGltaXQ7CisgICAgICAgIHByaXZhdGUgaW50IGZDdXJyZW50UnVuOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0eWxlTW9kaWZpZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3R5bGVNb2RpZmllci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAxNjAyNDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1N0eWxlTW9kaWZpZXIuamF2YQpAQCAtMCwwICsxLDE5MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZVNldDsKKworLyoqCisgKiBTdHlsZU1vZGlmaWVyIGlzIHRoZSBiYXNlIGNsYXNzIGZvciBvcGVyYXRpb25zIG9uIEF0dHJpYnV0ZU1hcC4gIFRvIGltcGxlbWVudAorICogYW4gb3BlcmF0aW9uIG9uIEF0dHJpYnV0ZU1hcCwgc3ViY2xhc3MgU3R5bGVNb2RpZmllciBhbmQgb3ZlcnJpZGUKKyAqIDxjb2RlPm1vZGlmeVN0eWxlPC9jb2RlPi4gIFN0eWxlTW9kaWZpZXJzIGFyZSB1c2VkIGJ5IE1UZXh0LgorICogPHA+CisgKiBGb3IgY29udmVuaWVuY2UsIHRoaXMgY2xhc3MgY29udGFpbnMgZmFjdG9yeSBtZXRob2RzIHdoaWNoIHdpbGwgY3JlYXRlIGEKKyAqIFN0eWxlTW9kaWZpZXIgZm9yCisgKiBjZXJ0YWluIGNvbW1vbiBvcGVyYXRpb25zOiBhdHRyaWJ1dGUgdW5pb24sIGF0dHJpYnV0ZSByZW1vdmFsLCBhbmQgQXR0cmlidXRlTWFwCisgKiByZXBsYWNlbWVudC4KKyAqIEBzZWUgQXR0cmlidXRlTWFwCisgKiBAc2VlIEF0dHJpYnV0ZVNldAorICogQHNlZSBNVGV4dAorICovCisvKgorICoge2picn0gU3R5bGVNb2RpZmllciBpcyBub3QgdGhlIGJlc3QgbmFtZSBmb3IgdGhpcyBjbGFzcyAtIHN0eWxlcyBhcmUgaW1tdXRhYmxlIGFuZCBuZXZlcgorICogcmVhbGx5IG1vZGlmaWVkLgorICovCitwdWJsaWMgY2xhc3MgU3R5bGVNb2RpZmllcgoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgU3R5bGVNb2RpZmllci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3R5bGVNb2RpZmllcigpIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGlzIFN0eWxlTW9kaWZpZXIncyBvcGVyYXRpb24gb24gdGhlIGdpdmVuIHN0eWxlLgorICAgICAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24ganVzdCByZXR1cm5zIHRoZSBnaXZlbiBzdHlsZS4KKyAgICAgKiBAcGFyYW0gc3R5bGUgdGhlIEF0dHJpYnV0ZU1hcCB0byBwZXJmb3JtIHRoZSBvcGVyYXRpb24gb24KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIG1vZGlmeVN0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBzdHlsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBIFN0eWxlTW9kaWZpZXIgd2hpY2ggc2ltcGx5IHJldHVybnMgdGhlIGdpdmVuIHN0eWxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3R5bGVNb2RpZmllciBJREVOVElUWSA9IG5ldyBTdHlsZU1vZGlmaWVyKCk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdHlsZU1vZGlmaWVyIHdob3NlIG9wZXJhdGlvbiBpcworICAgICAqIDxjb2RlPnN0eWxlLmFkZEF0dHJpYnV0ZXMocyk8L2NvZGU+LAorICAgICAqIHdoZXJlIDxjb2RlPnN0eWxlPC9jb2RlPiBpcyB0aGUgQXR0cmlidXRlTWFwIHBhc3NlZCB0bworICAgICAqIDxjb2RlPm1vZGlmeVN0eWxlPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gcyB0aGUgQXR0cmlidXRlTWFwIHRvIHVuaW9uIHdpdGgKKyAgICAgKiBAcmV0dXJuIGEgU3R5bGVNb2RpZmllciBmb3IgdGhpcyBvcGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0eWxlTW9kaWZpZXIgY3JlYXRlQWRkTW9kaWZpZXIoQXR0cmlidXRlTWFwIHMpIHsKKworICAgICAgICByZXR1cm4gbmV3IFN0eWxlQWRkTW9kaWZpZXIocyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgU3R5bGVNb2RpZmllciB3aG9zZSBvcGVyYXRpb24gaXMKKyAgICAgKiA8Y29kZT5zdHlsZS5hZGRBdHRyaWJ1dGUoa2V5LCB2YWx1ZSk8L2NvZGU+LAorICAgICAqIHdoZXJlIDxjb2RlPnN0eWxlPC9jb2RlPiBpcyB0aGUgQXR0cmlidXRlTWFwIHBhc3NlZCB0bworICAgICAqIDxjb2RlPm1vZGlmeVN0eWxlPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gYWRkCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBhZGQKKyAgICAgKiBAcmV0dXJuIGEgU3R5bGVNb2RpZmllciBmb3IgdGhpcyBvcGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0eWxlTW9kaWZpZXIgY3JlYXRlQWRkTW9kaWZpZXIoT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVBZGRNb2RpZmllcihrZXksIHZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdHlsZU1vZGlmaWVyIHdob3NlIG9wZXJhdGlvbiByZXR1cm5zIDxjb2RlPnM8L2NvZGU+LAorICAgICAqIGlnbm9yaW5nIHRoZSBwYXJhbWV0ZXIgdG8gPGNvZGU+bW9kaWZ5U3R5bGU8L2NvZGU+LgorICAgICAqIEBwYXJhbSBzIHRoZSBBdHRyaWJ1dGVNYXAgd2hpY2ggd2lsbCByZXBsYWNlIGFueSBvdGhlciBBdHRyaWJ1dGVNYXAKKyAgICAgKiBAcmV0dXJuIGEgU3R5bGVNb2RpZmllciBmb3IgdGhpcyBvcGVyYXRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0eWxlTW9kaWZpZXIgY3JlYXRlUmVwbGFjZU1vZGlmaWVyKEF0dHJpYnV0ZU1hcCBzKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdHlsZVJlcGxhY2VNb2RpZmllcihzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdHlsZU1vZGlmaWVyIHdob3NlIG9wZXJhdGlvbiBpcworICAgICAqIDxjb2RlPnN0eWxlLnJlbW92ZUF0dHJpYnV0ZXMocyk8L2NvZGU+LAorICAgICAqIHdoZXJlIDxjb2RlPnN0eWxlPC9jb2RlPiBpcyB0aGUgQXR0cmlidXRlTWFwIHBhc3NlZCB0bworICAgICAqIDxjb2RlPm1vZGlmeVN0eWxlPC9jb2RlPi4KKyAgICAgKiBAcGFyYW0gcyB0aGUgQXR0cmlidXRlU2V0IG9mIGF0dHJpYnV0ZXMgdG8gcmVtb3ZlCisgICAgICogQHJldHVybiBhIFN0eWxlTW9kaWZpZXIgZm9yIHRoaXMgb3BlcmF0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHlsZU1vZGlmaWVyIGNyZWF0ZVJlbW92ZU1vZGlmaWVyKEF0dHJpYnV0ZVNldCBzKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBTdHlsZVJlbW92ZU1vZGlmaWVyKHMpOworICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBBdHRyaWJ1dGVBZGRNb2RpZmllciBleHRlbmRzIFN0eWxlTW9kaWZpZXIgeworCisgICAgICAgIHByaXZhdGUgT2JqZWN0IGZLZXk7CisgICAgICAgIHByaXZhdGUgT2JqZWN0IGZWYWx1ZTsKKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlQWRkTW9kaWZpZXIoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgICAgIGZLZXkgPSBrZXk7CisgICAgICAgICAgICBmVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgICAgIHJldHVybiBzdHlsZS5hZGRBdHRyaWJ1dGUoZktleSwgZlZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSB0aGlzIHdpdGggdGhlIHN0eWxlcyB0byBhZGQuICBUaGVzZSBzdHlsZXMgd2lsbCBhZGQgdG8gYW5kIG92ZXJyaWRlIGFueSBhbHJlYWR5CisgICAgICogcHJlc2VudCBpbiB0aGUgc3R5bGUgcGFzc2VkIHRvIG1vZGlmeVN0eWxlLgorICAgICAqLworICAgIHN0YXRpYyBmaW5hbCBjbGFzcyBTdHlsZUFkZE1vZGlmaWVyIGV4dGVuZHMgU3R5bGVNb2RpZmllcgorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlN0eWxlOworCisgICAgICAgIHB1YmxpYyBTdHlsZUFkZE1vZGlmaWVyKEF0dHJpYnV0ZU1hcCBzdHlsZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHN0eWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzdHlsZSBpcyBudWxsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gc3R5bGUuYWRkQXR0cmlidXRlcyhmU3R5bGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIHRoaXMgd2l0aCB0aGUgc3R5bGVzIHRvIHJlcGxhY2UuICBBbGwgc3R5bGUgcnVucyB3aWxsIGhhdmUgb25seSB0aGVzZQorICAgICAqIHN0eWxlcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgZmluYWwgY2xhc3MgU3R5bGVSZXBsYWNlTW9kaWZpZXIgZXh0ZW5kcyBTdHlsZU1vZGlmaWVyCisgICAgeworICAgICAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmU3R5bGU7CisKKyAgICAgICAgcHVibGljIFN0eWxlUmVwbGFjZU1vZGlmaWVyKEF0dHJpYnV0ZU1hcCBzdHlsZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHN0eWxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJzdHlsZSBpcyBudWxsIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZlN0eWxlOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGZpbmFsIGNsYXNzIFN0eWxlUmVtb3ZlTW9kaWZpZXIgZXh0ZW5kcyBTdHlsZU1vZGlmaWVyIHsKKworICAgICAgICBwcml2YXRlIEF0dHJpYnV0ZVNldCBmUmVtb3ZlU2V0OworCisgICAgICAgIHB1YmxpYyBTdHlsZVJlbW92ZU1vZGlmaWVyKEF0dHJpYnV0ZVNldCByZW1vdmVTZXQpIHsKKworICAgICAgICAgICAgaWYgKHJlbW92ZVNldCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigic2V0IGlzIG51bGwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZSZW1vdmVTZXQgPSByZW1vdmVTZXQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQXR0cmlidXRlTWFwIG1vZGlmeVN0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworCisgICAgICAgICAgICByZXR1cm4gc3R5bGUucmVtb3ZlQXR0cmlidXRlcyhmUmVtb3ZlU2V0KTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3R5bGVkVGV4dC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9TdHlsZWRUZXh0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2RlNmY1NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvU3R5bGVkVGV4dC5qYXZhCkBAIC0wLDAgKzEsNjg0IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKKy8qKgorICogVGhpcyBjbGFzcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBNVGV4dCwgYSBtb2RpZnlhYmxlLCBzdHlsZWQgdGV4dAorICogc3RvcmFnZSBtb2RlbC4gIEFkZGl0aW9uYWxseSwgaXQgc3VwcG9ydHMgcGVyc2lzdGFuY2UgdGhyb3VnaCB0aGUKKyAqIEV4dGVybmFsaXphYmxlIGludGVyZmFjZS4KKyAqIEBzZWUgTVRleHQKKyAqLworCisvKgorICAgIDEwLzI4Lzk2IHtqZn0gLSBzcGxpdCB0aGUgY2hhcmFjdGVyIGFuZCBwYXJhZ3JhcGggc3R5bGUgYWNjZXNzIGFuZCBzZXR0ZXIgZnVuY3Rpb24gYXJvdW5kLi4uCisgICAgICAgICAgICBqdXN0IHRvIGtlZXAgdGhpbmdzIGludGVyZXN0aW5nLgorICAgIDgvNy85NiB7amZ9IC0gbW92ZWQgcGFyYWdyYXBoIGJyZWFrIGltcGxlbWVudGF0aW9uIGZyb20gQWJzdHJhY3RUZXh0IGludG8gU3R5bGUgdGV4dC4KKyAgICAgICAgICAgIC0gYWRkZWQgY291bnRTdHlsZXMsIGdldFN0eWxlcywgYW5kIFJlcGxhY2VTdHlsZXMgaW1wbGVtZW50YXRpb24uCisKKyAgICA4LzE0Lzk2IHNmYiAgZWxpbWluYXRlZCBTdHlsZVNoZWV0SXRlcmF0b3IKKworICAgIDgvMjkvOTYge2picn0gY2hhbmdlZCBpdGVyLWJhc2VkIHJlcGxhY2UgbWV0aG9kIC0gZG9lc24ndCBjYWxsIGF0KCkgdW5sZXNzIGl0IGlzIHNhZmUgdG8gZG8gc28KKyAgICAgICAgICAgIEFsc28sIGFkZGVkIGNoZWNrU3RhcnRBbmRMaW1pdCBmb3IgZGVidWdnaW5nCisKKyAgICA3LzMxLzk4IFN3aXRjaGVkIGZyb20gU3R5bGUgdG8gQXR0cmlidXRlTWFwCisKKyovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTdHlsZWRUZXh0IGV4dGVuZHMgTVRleHQgaW1wbGVtZW50cyBFeHRlcm5hbGl6YWJsZQoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IENVUlJFTlRfVkVSU0lPTiA9IDE7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMjIzNTY5MzQ7CisKKyAgICAvKiB1bmljb2RlIHN0b3JhZ2UgKi8KKyAgICBwcml2YXRlIE1DaGFyQnVmZmVyICAgICAgICAgZkNoYXJCdWZmZXI7CisgICAgLyogY2hhcmFjdGVyIHN0eWxlIHN0b3JhZ2UgKi8KKyAgICBwcml2YXRlIE1TdHlsZUJ1ZmZlciAgICAgICAgZlN0eWxlQnVmZmVyOworICAgIC8qIHBhcmFncmFwaCBzdHlsZSBzdG9yYWdlICovCisgICAgcHJpdmF0ZSBNUGFyYWdyYXBoQnVmZmVyICAgIGZQYXJhZ3JhcGhCdWZmZXI7CisKKyAgICBwcml2YXRlIHRyYW5zaWVudCBpbnQgZlRpbWVTdGFtcCA9IDA7CisgICAgcHJpdmF0ZSB0cmFuc2llbnQgaW50W10gZkRhbWFnZWRSYW5nZSA9IHsgSW50ZWdlci5NQVhfVkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZWdlci5NSU5fVkFMVUUgfTsKKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEZvcmNlTW9kaWZpZXIgZXh0ZW5kcyBTdHlsZU1vZGlmaWVyIHsKKworICAgICAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmU3R5bGUgPSBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUDsKKworICAgICAgICB2b2lkIHNldFN0eWxlKEF0dHJpYnV0ZU1hcCBzdHlsZSkgeworCisgICAgICAgICAgICBmU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmU3R5bGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBLZWVwIHRoaXMgYXJvdW5kIGZvcnVzZSBpbiByZXBsYWNlQ2hhclN0eWxlc1dpdGguICBPSyBzaW5jZQorICAgIC8vIHRoaXMgY2xhc3MgaXNuJ3QgdGhyZWFkc2FmZSBhbnl3YXkuCisgICAgcHJpdmF0ZSB0cmFuc2llbnQgRm9yY2VNb2RpZmllciBmb3JjZU1vZGlmaWVyID0gbnVsbDsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQ09OU1RSVUNUT1JTCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gZW1wdHkgdGV4dCBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIFN0eWxlZFRleHQoKQorICAgIHsKKyAgICAgICAgdGhpcygwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gZW1wdHkgdGV4dCBvYmplY3QgcmVhZHkgdG8gaG9sZCBhdCBsZWFzdCBjYXBhY2l0eSBjaGFycy4KKyAgICAgKiBAcGFyYW0gY2FwYWNpdHkgdGhlIG1pbmltdW0gY2FwYWNpdHkgb2YgdGhlIGludGVybmFsIHRleHQgYnVmZmVyCisgICAgICovCisgICAgcHVibGljIFN0eWxlZFRleHQoaW50IGNhcGFjaXR5KQorICAgIHsKKyAgICAgICAgZkNoYXJCdWZmZXIgICAgICAgICA9IGNhcGFjaXR5PjA/IG5ldyBDaGFyQnVmZmVyKGNhcGFjaXR5KSA6IG5ldyBDaGFyQnVmZmVyKCk7CisgICAgICAgIGZTdHlsZUJ1ZmZlciAgICAgICAgPSBuZXcgU3R5bGVCdWZmZXIodGhpcywgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworICAgICAgICBmUGFyYWdyYXBoQnVmZmVyICAgID0gbmV3IFBhcmFncmFwaEJ1ZmZlcihmQ2hhckJ1ZmZlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgdGV4dCBvYmplY3Qgd2l0aCB0aGUgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLAorICAgICAqIGluIHRoZSBnaXZlbiBzdHlsZS4KKyAgICAgKiBAcGFyYW0gc3RyaW5nIHRoZSBpbml0aWFsIGNvbnRlbnRzCisgICAgICogQHBhcmFtIGluaXRpYWxTdHlsZSB0aGUgc3R5bGUgb2YgdGhlIGluaXRpYWwgdGV4dAorICAgICAqLworICAgIHB1YmxpYyBTdHlsZWRUZXh0KFN0cmluZyBzdHJpbmcsIEF0dHJpYnV0ZU1hcCBpbml0aWFsU3R5bGUpCisgICAgeworICAgICAgICBmQ2hhckJ1ZmZlciA9IG5ldyBDaGFyQnVmZmVyKHN0cmluZy5sZW5ndGgoKSk7CisgICAgICAgIGZDaGFyQnVmZmVyLnJlcGxhY2UoMCwgMCwgc3RyaW5nLCAwLCBzdHJpbmcubGVuZ3RoKCkpOworCisgICAgICAgIGZTdHlsZUJ1ZmZlciA9IG5ldyBTdHlsZUJ1ZmZlcih0aGlzLCBpbml0aWFsU3R5bGUpOworICAgICAgICBmUGFyYWdyYXBoQnVmZmVyID0gbmV3IFBhcmFncmFwaEJ1ZmZlcihmQ2hhckJ1ZmZlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgdGV4dCBvYmplY3QgZnJvbSB0aGUgZ2l2ZW4gc291cmNlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHRleHQgdG8gY29weQorICAgICAqLworICAgIHB1YmxpYyBTdHlsZWRUZXh0KE1Db25zdFRleHQgc291cmNlKSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgYXBwZW5kKHNvdXJjZSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIHRleHQgb2JqZWN0IGZyb20gYSBzdWJyYW5nZSBvZiB0aGUgZ2l2ZW4gc291cmNlLgorICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIHRleHQgdG8gY29weSBmcm9tCisgICAgICogQHBhcmFtIHNyY1N0YXJ0IHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIGNvcHkKKyAgICAgKiBAcGFyYW0gc3JjTGltaXQgdGhlIGluZGV4IGFmdGVyIHRoZSBsYXN0IGNoYXJhY3RlciB0byBjb3B5CisgICAgICovCisgICAgcHVibGljIFN0eWxlZFRleHQoTUNvbnN0VGV4dCBzb3VyY2UsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KSB7CisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgcmVwbGFjZSgwLCAwLCBzb3VyY2UsIHNyY1N0YXJ0LCBzcmNMaW1pdCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgd3JpdGVFeHRlcm5hbChPYmplY3RPdXRwdXQgb3V0KSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIG91dC53cml0ZUludChDVVJSRU5UX1ZFUlNJT04pOworICAgICAgICBvdXQud3JpdGVPYmplY3QoZkNoYXJCdWZmZXIpOworICAgICAgICBvdXQud3JpdGVPYmplY3QoZlN0eWxlQnVmZmVyKTsKKyAgICAgICAgb3V0LndyaXRlT2JqZWN0KGZQYXJhZ3JhcGhCdWZmZXIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlYWRFeHRlcm5hbChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpbnQgdmVyc2lvbiA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgaWYgKHZlcnNpb24gIT0gQ1VSUkVOVF9WRVJTSU9OKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludmFsaWQgdmVyc2lvbiBvZiBTdHlsZWRUZXh0OiAiICsgdmVyc2lvbik7CisgICAgICAgIH0KKyAgICAgICAgZkNoYXJCdWZmZXIgPSAoTUNoYXJCdWZmZXIpIGluLnJlYWRPYmplY3QoKTsKKyAgICAgICAgZlN0eWxlQnVmZmVyID0gKE1TdHlsZUJ1ZmZlcikgaW4ucmVhZE9iamVjdCgpOworICAgICAgICBmUGFyYWdyYXBoQnVmZmVyID0gKE1QYXJhZ3JhcGhCdWZmZXIpIGluLnJlYWRPYmplY3QoKTsKKworICAgICAgICByZXNldERhbWFnZWRSYW5nZSgpOworICAgIH0KKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gTUNvbnN0VGV4dCBJTlRFUkZBQ0VTCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjaGFyYWN0ZXIgYWNjZXNzCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLyoqCisqIFJldHVybiB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIGEgdmFsaWQgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBjaGFyIGF0KGludCBwb3MpCisgICAgeworICAgICAgICByZXR1cm4gZkNoYXJCdWZmZXIuYXQocG9zKTsKKyAgICB9CisKKy8qKgorKiBDb3B5IHRoZSBjaGFyYWN0ZXJzIGluIHRoZSByYW5nZSBbPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5saW1pdDwvY29kZT4pCisqIGludG8gdGhlIGFycmF5IDxjb2RlPmRzdDwvY29kZT4sIGJlZ2lubmluZyBhdCA8Y29kZT5kc3RTdGFydDwvY29kZT4uCisqIEBwYXJhbSBzdGFydCBvZmZzZXQgb2YgZmlyc3QgY2hhcmFjdGVyIHdoaWNoIHdpbGwgYmUgY29waWVkIGludG8gdGhlIGFycmF5CisqIEBwYXJhbSBsaW1pdCBvZmZzZXQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIHdoaWNoIHdpbGwgYmUgY29waWVkIGludG8gdGhlIGFycmF5CisqIEBwYXJhbSBkc3QgYXJyYXkgaW4gd2hpY2ggdG8gY29weSBjaGFyYWN0ZXJzLiAgVGhlIGxlbmd0aCBvZiA8Y29kZT5kc3Q8L2NvZGU+IG11c3QgYmUgYXQgbGVhc3QKKyogKDxjb2RlPmRzdFN0YXJ0ICsgbGltaXQgLSBzdGFydDwvY29kZT4pLgorKi8KKyAgICBwdWJsaWMgdm9pZCBleHRyYWN0Q2hhcnMoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBkc3QsIGludCBkc3RTdGFydCkKKyAgICB7CisgICAgICAgIGZDaGFyQnVmZmVyLmF0KHN0YXJ0LCBsaW1pdCwgZHN0LCBkc3RTdGFydCk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gdGV4dCBtb2RlbCBjcmVhdGlvbgorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLyoqCisqIENyZWF0ZSBhbiBNQ29uc3RUZXh0IGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgcmFuZ2UKKyogWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KS4KKyogQHBhcmFtIHN0YXJ0IG9mZnNldCBvZiBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIG5ldyB0ZXh0CisqIEBwYXJhbSBsaW1pdCBvZmZzZXQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBuZXcgdGV4dAorKiBAcmV0dXJuIGFuIE1Db25zdFRleHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgZ2l2ZW4gcmFuZ2UKKyovCisgICAgcHVibGljIE1Db25zdFRleHQgZXh0cmFjdChpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIHJldHVybiBleHRyYWN0V3JpdGFibGUoc3RhcnQsIGxpbWl0KTsKKyAgICB9CisKKy8qKgorKiBDcmVhdGUgYW4gTVRleHQgY29udGFpbmluZyB0aGUgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGluIHRoZSByYW5nZQorKiBbPGNvZGU+c3RhcnQ8L2NvZGU+LCA8Y29kZT5saW1pdDwvY29kZT4pLgorKiBAcGFyYW0gc3RhcnQgb2Zmc2V0IG9mIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgbmV3IHRleHQKKyogQHBhcmFtIGxpbWl0IG9mZnNldCBpbW1lZGlhdGVseSBhZnRlciB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIG5ldyB0ZXh0CisqIEByZXR1cm4gYW4gTUNvbnN0VGV4dCBvYmplY3QgY29udGFpbmluZyB0aGUgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGluIHRoZSBnaXZlbiByYW5nZQorKi8KKyAgICBwdWJsaWMgTVRleHQgZXh0cmFjdFdyaXRhYmxlKGludCBzdGFydCwgaW50IGxpbWl0KQorICAgIHsKKyAgICAgICAgTVRleHQgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgIHRleHQucmVwbGFjZSgwLCAwLCB0aGlzLCBzdGFydCwgbGltaXQpOworICAgICAgICB0ZXh0LnJlc2V0RGFtYWdlZFJhbmdlKCk7CisgICAgICAgIHJldHVybiB0ZXh0OworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzaXplL2NhcGFjaXR5CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLyoqCisqIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBNQ29uc3RUZXh0IG9iamVjdC4gIFRoZSBsZW5ndGggaXMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LgorKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIE1Db25zdFRleHQgb2JqZWN0CisqLworICAgIHB1YmxpYyBpbnQgbGVuZ3RoKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmQ2hhckJ1ZmZlci5sZW5ndGgoKTsKKyAgICB9CisKKy8qKgorKiBDcmVhdGUgYSA8Y29kZT5DaGFyYWN0ZXJJdGVyYXRvcjwvY29kZT4gb3ZlciB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KS4KKyogQHBhcmFtIHN0YXJ0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGl0ZXJhdG9yJ3MgcmFuZ2UKKyogQHBhcmFtIGxpbWl0IHRoZSBsaW1pdCBvZiB0aGUgaXRlcmF0b3IncyByYW5nZQorKiBAcmV0dXJuIGEgdmFsaWQgPGNvZGU+Q2hhcmFjdGVySXRlcmF0b3I8L2NvZGU+IG92ZXIgdGhlIHNwZWNpZmllZCByYW5nZQorKiBAc2VlIGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcgorKi8KKyAgICBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgeworICAgICAgICByZXR1cm4gZkNoYXJCdWZmZXIuY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3Ioc3RhcnQsIGxpbWl0KTsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gY2hhcmFjdGVyIHN0eWxlcworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLyoqCisqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiB0aGUgY2hhcmFjdGVyIHN0eWxlIHJ1bgorKiBjb250YWluaW5nIHBvcy4gIEFsbCBjaGFyYWN0ZXJzIGluIGEgc3R5bGUgcnVuIGhhdmUgdGhlIHNhbWUgY2hhcmFjdGVyCisqIHN0eWxlLgorKiBAcmV0dXJuIHRoZSBzdHlsZSBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgaW50IGNoYXJhY3RlclN0eWxlU3RhcnQoaW50IHBvcykgeworCisgICAgICAgIGNoZWNrUG9zKHBvcywgTEVTU19USEFOX0xFTkdUSCk7CisgICAgICAgIHJldHVybiBmU3R5bGVCdWZmZXIuc3R5bGVTdGFydChwb3MpOworICAgIH0KKworLyoqCisqIFJldHVybiB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBjaGFyYWN0ZXIgc3R5bGUgcnVuCisqIGNvbnRhaW5pbmcgcG9zLiAgQWxsIGNoYXJhY3RlcnMgaW4gYSBzdHlsZSBydW4gaGF2ZSB0aGUgc2FtZSBjaGFyYWN0ZXIKKyogc3R5bGUuCisqIEByZXR1cm4gdGhlIHN0eWxlIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBpbnQgY2hhcmFjdGVyU3R5bGVMaW1pdChpbnQgcG9zKSB7CisKKyAgICAgICAgY2hlY2tQb3MocG9zLCBOT1RfR1JFQVRFUl9USEFOX0xFTkdUSCk7CisgICAgICAgIHJldHVybiBmU3R5bGVCdWZmZXIuc3R5bGVMaW1pdChwb3MpOworICAgIH0KKworLyoqCisqIFJldHVybiB0aGUgc3R5bGUgYXBwbGllZCB0byB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+LgorKiBAcGFyYW0gcG9zIGEgdmFsaWQgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHJldHVybiB0aGUgc3R5bGUgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4KKyovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBjaGFyYWN0ZXJTdHlsZUF0KGludCBwb3MpCisgICAgeworICAgICAgICBjaGVja1Bvcyhwb3MsIE5PVF9HUkVBVEVSX1RIQU5fTEVOR1RIKTsKKyAgICAgICAgcmV0dXJuIGZTdHlsZUJ1ZmZlci5zdHlsZUF0KHBvcyk7CisgICAgfQorCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIHBhcmFncmFwaCBib3VuZGFyaWVzIGFuZCBzdHlsZXMKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvKioKKyogUmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBhIHZhbGlkIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyB0aGUgY2hhcmFjdGVyIGF0IG9mZnNldCA8Y29kZT5wb3M8L2NvZGU+CisqLworICAgIHB1YmxpYyBpbnQgcGFyYWdyYXBoU3RhcnQoaW50IHBvcykKKyAgICB7CisgICAgICAgIGNoZWNrUG9zKHBvcywgTk9UX0dSRUFURVJfVEhBTl9MRU5HVEgpOworICAgICAgICByZXR1cm4gZlBhcmFncmFwaEJ1ZmZlci5wYXJhZ3JhcGhTdGFydChwb3MpOworICAgIH0KKworLyoqCisqIFJldHVybiB0aGUgbGltaXQgb2YgdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBjaGFyYWN0ZXIgYXQgb2Zmc2V0IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgYSB2YWxpZCBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcmV0dXJuIHRoZSBsaW1pdCBvZiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlciBhdCBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgaW50IHBhcmFncmFwaExpbWl0KGludCBwb3MpCisgICAgeworICAgICAgICBjaGVja1Bvcyhwb3MsIE5PVF9HUkVBVEVSX1RIQU5fTEVOR1RIKTsKKyAgICAgICAgcmV0dXJuIGZQYXJhZ3JhcGhCdWZmZXIucGFyYWdyYXBoTGltaXQocG9zKTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm4gdGhlIHBhcmFncmFwaCBzdHlsZSBhcHBsaWVkIHRvIHRoZSBwYXJhZ3JhcGggY29udGFpbmluZyBvZmZzZXQgPGNvZGU+cG9zPC9jb2RlPi4KKyogQHBhcmFtIHBvcyBhIHZhbGlkIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisqIEByZXR1cm4gdGhlIHBhcmFncmFwaCBzdHlsZSBpbiBlZmZlY3QgYXQgPGNvZGU+cG9zPC9jb2RlPgorKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHBhcmFncmFwaFN0eWxlQXQoaW50IHBvcykKKyAgICB7CisgICAgICAgIGNoZWNrUG9zKHBvcywgTk9UX0dSRUFURVJfVEhBTl9MRU5HVEgpOworICAgICAgICByZXR1cm4gZlBhcmFncmFwaEJ1ZmZlci5wYXJhZ3JhcGhTdHlsZUF0KHBvcyk7CisgICAgfQorCisvKioKKyogUmV0dXJuIHRoZSBjdXJyZW50IHRpbWUgc3RhbXAuICBUaGUgdGltZSBzdGFtcCBpcworKiBpbmNyZW1lbnRlZCB3aGVuZXZlciB0aGUgY29udGVudHMgb2YgdGhlIE1Db25zdFRleHQgY2hhbmdlcy4KKyogQHJldHVybiB0aGUgY3VycmVudCBwYXJhZ3JhcGggc3R5bGUgdGltZSBzdGFtcAorKi8KKyAgICBwdWJsaWMgaW50IGdldFRpbWVTdGFtcCgpIHsKKworICAgICAgICByZXR1cm4gZlRpbWVTdGFtcDsKKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIE1UZXh0IElOVEVSRkFDRVMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBjaGFyYWN0ZXIgbW9kZmljYXRpb24gZnVuY3Rpb25zCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZURhbWFnZWRSYW5nZShpbnQgZGVsZXRlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVsZXRlTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5zZXJ0TGVuZ3RoKSB7CisKKyAgICAgICAgZkRhbWFnZWRSYW5nZVswXSA9IE1hdGgubWluKGZEYW1hZ2VkUmFuZ2VbMF0sIGRlbGV0ZVN0YXJ0KTsKKworICAgICAgICBpZiAoZkRhbWFnZWRSYW5nZVsxXSA+PSBkZWxldGVMaW1pdCkgeworICAgICAgICAgICAgaW50IGxlbmd0aENoYW5nZSA9IGluc2VydExlbmd0aCAtIChkZWxldGVMaW1pdC1kZWxldGVTdGFydCk7CisgICAgICAgICAgICBmRGFtYWdlZFJhbmdlWzFdICs9IGxlbmd0aENoYW5nZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZEYW1hZ2VkUmFuZ2VbMV0gPSBkZWxldGVTdGFydCArIGluc2VydExlbmd0aDsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KSB3aXRoIHRoZSBjaGFyYWN0ZXJzCisqIGFuZCBzdHlsZXMgaW4gPGNvZGU+c3JjVGV4dDwvY29kZT4gaW4gdGhlIHJhbmdlIFs8Y29kZT5zcmNTdGFydDwvY29kZT4sIDxjb2RlPnNyY0xpbWl0PC9jb2RlPikuICA8Y29kZT5zcmNUZXh0PC9jb2RlPiBpcyBub3QKKyogbW9kaWZpZWQuCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBiZWdpbnMKKyogQHBhcmFtIGxpbWl0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGVuZHMuICBUaGUgY2hhcmFjdGVyIGFuZCBzdHlsZSBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gdGV4dCB0aGUgc291cmNlIGZvciB0aGUgbmV3IGNoYXJhY3RlcnMgYW5kIHN0eWxlcworKiBAcGFyYW0gc3JjU3RhcnQgdGhlIG9mZnNldCBpbnRvIDxjb2RlPnNyY1RleHQ8L2NvZGU+IHdoZXJlIG5ldyBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMgd2lsbCBiZSBvYnRhaW5lZAorKiBAcGFyYW0gc3JjTGltaXQgdGhlIG9mZnNldCBpbnRvIDxjb2RlPnNyY1RleHQ8L2NvZGU+IHdoZXJlIHRoZSBuZXcgY2hhcmFjdGVycyBhbmQgc3R5bGVzIGVuZAorKi8KKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHRleHQsIGludCBzcmNTdGFydCwgaW50IHNyY0xpbWl0KQorICAgIHsKKyAgICAgICAgaWYgKHRleHQgPT0gdGhpcykgeworICAgICAgICAgICAgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KHRleHQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0YXJ0ID09IGxpbWl0ICYmIHNyY1N0YXJ0ID09IHNyY0xpbWl0KSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjaGVja1N0YXJ0TGltaXQoc3RhcnQsIGxpbWl0KTsKKworICAgICAgICB1cGRhdGVEYW1hZ2VkUmFuZ2Uoc3RhcnQsIGxpbWl0LCBzcmNMaW1pdC1zcmNTdGFydCk7CisKKyAgICAgICAgZkNoYXJCdWZmZXIucmVwbGFjZShzdGFydCwgbGltaXQsIHRleHQsIHNyY1N0YXJ0LCBzcmNMaW1pdCk7CisgICAgICAgIGZTdHlsZUJ1ZmZlci5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgdGV4dCwgc3JjU3RhcnQsIHNyY0xpbWl0KTsKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlci5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgdGV4dCwgc3JjU3RhcnQsIHNyY0xpbWl0LCBmRGFtYWdlZFJhbmdlKTsKKyAgICAgICAgZlRpbWVTdGFtcCArPSAxOworICAgIH0KKworLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgYW5kIHN0eWxlcyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KSB3aXRoIHRoZSBjaGFyYWN0ZXJzCisqIGFuZCBzdHlsZXMgaW4gPGNvZGU+c3JjVGV4dDwvY29kZT4uICA8Y29kZT5zcmNUZXh0PC9jb2RlPiBpcyBub3QKKyogbW9kaWZpZWQuCisqIEBwYXJhbSBzdGFydCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBiZWdpbnMKKyogQHBhcmFtIGxpbWl0IHRoZSBvZmZzZXQgYXQgd2hpY2ggdGhlIHJlcGxhY2Ugb3BlcmF0aW9uIGVuZHMuICBUaGUgY2hhcmFjdGVyIGFuZCBzdHlsZSBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gdGV4dCB0aGUgc291cmNlIGZvciB0aGUgbmV3IGNoYXJhY3RlcnMgYW5kIHN0eWxlcworKi8KKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICByZXBsYWNlKHN0YXJ0LCBsaW1pdCwgdGV4dCwgMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgfQorCisvKioKKyogUmVwbGFjZSB0aGUgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2UgWzxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+bGltaXQ8L2NvZGU+KSB3aXRoIHRoZSBjaGFyYWN0ZXJzCisqIGluIDxjb2RlPnNyY0NoYXJzPC9jb2RlPiBpbiB0aGUgcmFuZ2UgWzxjb2RlPnNyY1N0YXJ0PC9jb2RlPiwgPGNvZGU+c3JjTGltaXQ8L2NvZGU+KS4gIE5ldyBjaGFyYWN0ZXJzIHRha2Ugb24gdGhlIHN0eWxlCisqIDxjb2RlPmNoYXJzU3R5bGU8L2NvZGU+LgorKiA8Y29kZT5zcmNDaGFyczwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBlbmRzLiAgVGhlIGNoYXJhY3RlciBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gc3JjQ2hhcnMgdGhlIHNvdXJjZSBmb3IgdGhlIG5ldyBjaGFyYWN0ZXJzCisqIEBwYXJhbSBzcmNTdGFydCB0aGUgb2Zmc2V0IGludG8gPGNvZGU+c3JjQ2hhcnM8L2NvZGU+IHdoZXJlIG5ldyBjaGFyYWN0ZXJzIHdpbGwgYmUgb2J0YWluZWQKKyogQHBhcmFtIHNyY0xpbWl0IHRoZSBvZmZzZXQgaW50byA8Y29kZT5zcmNDaGFyczwvY29kZT4gd2hlcmUgdGhlIG5ldyBjaGFyYWN0ZXJzIGVuZAorKiBAcGFyYW0gY2hhcnNTdHlsZSB0aGUgc3R5bGUgb2YgdGhlIG5ldyBjaGFyYWN0ZXJzCisqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2UoaW50IHN0YXJ0LCBpbnQgbGltaXQsIGNoYXJbXSBzcmNDaGFycywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsIEF0dHJpYnV0ZU1hcCBjaGFyc1N0eWxlKQorICAgIHsKKyAgICAgICAgY2hlY2tTdGFydExpbWl0KHN0YXJ0LCBsaW1pdCk7CisKKyAgICAgICAgaWYgKHN0YXJ0ID09IGxpbWl0ICYmIHNyY1N0YXJ0ID09IHNyY0xpbWl0KSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB1cGRhdGVEYW1hZ2VkUmFuZ2Uoc3RhcnQsIGxpbWl0LCBzcmNMaW1pdC1zcmNTdGFydCk7CisKKyAgICAgICAgZkNoYXJCdWZmZXIucmVwbGFjZShzdGFydCwgbGltaXQsIHNyY0NoYXJzLCBzcmNTdGFydCwgc3JjTGltaXQpOworCisgICAgICAgIHJlcGxhY2VDaGFyU3R5bGVzV2l0aChzdGFydCwgbGltaXQsIHN0YXJ0ICsgKHNyY0xpbWl0LXNyY1N0YXJ0KSwgY2hhcnNTdHlsZSk7CisKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlci5kZWxldGVUZXh0KHN0YXJ0LCBsaW1pdCwgZkRhbWFnZWRSYW5nZSk7CisgICAgICAgIGZQYXJhZ3JhcGhCdWZmZXIuaW5zZXJ0VGV4dChzdGFydCwgc3JjQ2hhcnMsIHNyY1N0YXJ0LCBzcmNMaW1pdCk7CisKKyAgICAgICAgZlRpbWVTdGFtcCArPSAxOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZXBsYWNlQ2hhclN0eWxlc1dpdGgoaW50IHN0YXJ0LCBpbnQgb2xkTGltaXQsIGludCBuZXdMaW1pdCwgQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgaWYgKHN0YXJ0IDwgb2xkTGltaXQpIHsKKyAgICAgICAgICAgIGZTdHlsZUJ1ZmZlci5kZWxldGVUZXh0KHN0YXJ0LCBvbGRMaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXJ0IDwgbmV3TGltaXQpIHsKKyAgICAgICAgICAgIGlmIChmb3JjZU1vZGlmaWVyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmb3JjZU1vZGlmaWVyID0gbmV3IEZvcmNlTW9kaWZpZXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvcmNlTW9kaWZpZXIuc2V0U3R5bGUoc3R5bGUpOworICAgICAgICAgICAgZlN0eWxlQnVmZmVyLmluc2VydFRleHQoc3RhcnQsIG5ld0xpbWl0KTsKKyAgICAgICAgICAgIGZTdHlsZUJ1ZmZlci5tb2RpZnlTdHlsZXMoc3RhcnQsIG5ld0xpbWl0LCBmb3JjZU1vZGlmaWVyLCBudWxsKTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIFJlcGxhY2UgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFs8Y29kZT5zdGFydDwvY29kZT4sIDxjb2RlPmxpbWl0PC9jb2RlPikgd2l0aCB0aGUgY2hhcmFjdGVyIDxjb2RlPnNyY0NoYXI8L2NvZGU+LgorKiBUaGUgbmV3IGNoYXJhY3RlciB0YWtlcyBvbiB0aGUgc3R5bGUgPGNvZGU+Y2hhclN0eWxlPC9jb2RlPgorKiBAcGFyYW0gc3RhcnQgdGhlIG9mZnNldCBhdCB3aGljaCB0aGUgcmVwbGFjZSBvcGVyYXRpb24gYmVnaW5zCisqIEBwYXJhbSBsaW1pdCB0aGUgb2Zmc2V0IGF0IHdoaWNoIHRoZSByZXBsYWNlIG9wZXJhdGlvbiBlbmRzLiAgVGhlIGNoYXJhY3RlciBhdAorKiA8Y29kZT5saW1pdDwvY29kZT4gaXMgbm90IG1vZGlmaWVkLgorKiBAcGFyYW0gc3JjQ2hhciB0aGUgbmV3IGNoYXJhY3RlcgorKiBAcGFyYW0gY2hhclN0eWxlIHRoZSBzdHlsZSBvZiB0aGUgbmV3IGNoYXJhY3RlcgorKi8KKyAgICBwdWJsaWMgdm9pZCByZXBsYWNlKGludCBzdGFydCwgaW50IGxpbWl0LCBjaGFyIHNyY0NoYXIsIEF0dHJpYnV0ZU1hcCBjaGFyU3R5bGUpCisgICAgeworICAgICAgICBjaGVja1N0YXJ0TGltaXQoc3RhcnQsIGxpbWl0KTsKKworICAgICAgICB1cGRhdGVEYW1hZ2VkUmFuZ2Uoc3RhcnQsIGxpbWl0LCAxKTsKKworICAgICAgICBmQ2hhckJ1ZmZlci5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgc3JjQ2hhcik7CisKKyAgICAgICAgcmVwbGFjZUNoYXJTdHlsZXNXaXRoKHN0YXJ0LCBsaW1pdCwgc3RhcnQgKyAxLCBjaGFyU3R5bGUpOworCisgICAgICAgIGlmIChzdGFydCA8IGxpbWl0KSB7CisgICAgICAgICAgICBmUGFyYWdyYXBoQnVmZmVyLmRlbGV0ZVRleHQoc3RhcnQsIGxpbWl0LCBmRGFtYWdlZFJhbmdlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZQYXJhZ3JhcGhCdWZmZXIuaW5zZXJ0VGV4dChzdGFydCwgc3JjQ2hhcik7CisKKyAgICAgICAgZlRpbWVTdGFtcCArPSAxOworICAgIH0KKworLyoqCisqIFJlcGxhY2UgdGhlIGVudGlyZSBjb250ZW50cyBvZiB0aGlzIE1UZXh0IChib3RoIGNoYXJhY3RlcnMgYW5kIHN0eWxlcykgd2l0aAorKiB0aGUgY29udGVudHMgb2YgPGNvZGU+c3JjVGV4dDwvY29kZT4uCisqIEBwYXJhbSBzcmNUZXh0IHRoZSBzb3VyY2UgZm9yIHRoZSBuZXcgY2hhcmFjdGVycyBhbmQgc3R5bGVzCisqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2VBbGwoTUNvbnN0VGV4dCBzcmNUZXh0KQorICAgIHsKKyAgICAgICAgcmVwbGFjZSgwLCBsZW5ndGgoKSwgc3JjVGV4dCwgMCwgc3JjVGV4dC5sZW5ndGgoKSk7CisgICAgfQorCisvKioKKyogSW5zZXJ0IHRoZSBjb250ZW50cyBvZiA8Y29kZT5zcmNUZXh0PC9jb2RlPiAoYm90aCBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMpIGludG8gdGhpcworKiBNVGV4dCBhdCB0aGUgcG9zaXRpb24gc3BlY2lmaWVkIGJ5IDxjb2RlPnBvczwvY29kZT4uCisqIEBwYXJhbSBwb3MgVGhlIGNoYXJhY3RlciBvZmZzZXQgd2hlcmUgdGhlIG5ldyB0ZXh0IGlzIHRvIGJlIGluc2VydGVkLgorKiBAcGFyYW0gc3JjVGV4dCBUaGUgdGV4dCB0byBpbnNlcnQuCisqLworICAgIHB1YmxpYyB2b2lkIGluc2VydChpbnQgcG9zLCBNQ29uc3RUZXh0IHNyY1RleHQpCisgICAgeworICAgICAgICByZXBsYWNlKHBvcywgcG9zLCBzcmNUZXh0LCAwLCBzcmNUZXh0Lmxlbmd0aCgpKTsKKyAgICB9CisKKy8qKgorKiBBcHBlbmQgdGhlIGNvbnRlbnRzIG9mIDxjb2RlPnNyY1RleHQ8L2NvZGU+IChib3RoIGNoYXJhY3RlcnMgYW5kIHN0eWxlcykgdG8gdGhlCisqIGVuZCBvZiB0aGlzIE1UZXh0LgorKiBAcGFyYW0gc3JjVGV4dCBUaGUgdGV4dCB0byBhcHBlbmQuCisqLworICAgIHB1YmxpYyB2b2lkIGFwcGVuZChNQ29uc3RUZXh0IHNyY1RleHQpCisgICAgeworICAgICAgICByZXBsYWNlKGxlbmd0aCgpLCBsZW5ndGgoKSwgc3JjVGV4dCwgMCwgc3JjVGV4dC5sZW5ndGgoKSk7CisgICAgfQorCisvKioKKyogRGVsZXRlIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgY2hhcmFjdGVycyAoYW5kIHN0eWxlcykuCisqIEBwYXJhbSBzdGFydCBPZmZzZXQgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciB0byBkZWxldGUuCisqIEBwYXJhbSBsaW1pdCBPZmZzZXQgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgcmFuZ2UgdG8gZGVsZXRlLgorKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmUoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgeworICAgICAgICByZXBsYWNlKHN0YXJ0LCBsaW1pdCwgKGNoYXJbXSludWxsLCAwLCAwLCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisgICAgfQorCisvKioKKyogRGVsZXRlIGFsbCBjaGFyYWN0ZXJzIGFuZCBzdHlsZXMuICBBbHdheXMgaW5jcmVtZW50cyB0aW1lIHN0YW1wLgorKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmUoKQorICAgIHsKKyAgICAgICAgLy8gcmF0aGVyIHRoYW4gZ29pbmcgdGhyb3VnaCByZXBsYWNlKCksIGp1c3QgcmVpbml0aWFsaXplIHRoZSBTdHlsZWRUZXh0LAorICAgICAgICAvLyBsZXR0aW5nIHRoZSBvbGQgZGF0YSBzdHJ1Y3R1cmVzIGZhbGwgb24gdGhlIGZsb29yCisgICAgICAgIGZDaGFyQnVmZmVyID0gbmV3IENoYXJCdWZmZXIoKTsKKyAgICAgICAgZlN0eWxlQnVmZmVyID0gbmV3IFN0eWxlQnVmZmVyKHRoaXMsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlciA9IG5ldyBQYXJhZ3JhcGhCdWZmZXIoZkNoYXJCdWZmZXIpOworICAgICAgICBmVGltZVN0YW1wICs9IDE7CisgICAgICAgIGZEYW1hZ2VkUmFuZ2VbMF0gPSBmRGFtYWdlZFJhbmdlWzFdID0gMDsKKyAgICB9CisKKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gc3RvcmFnZSBtYW5hZ2VtZW50CisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvKioKKyogTWluaW1pemUgdGhlIGFtb3VudCBvZiBtZW1vcnkgdXNlZCBieSB0aGUgTVRleHQgb2JqZWN0LgorKi8KKyAgICBwdWJsaWMgdm9pZCBjb21wcmVzcygpIHsKKworICAgICAgICBmQ2hhckJ1ZmZlci5jb21wcmVzcygpOworICAgICAgICBmU3R5bGVCdWZmZXIuY29tcHJlc3MoKTsKKyAgICAgICAgZlBhcmFncmFwaEJ1ZmZlci5jb21wcmVzcygpOworICAgIH0KKworICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBzdHlsZSBtb2RpZmljYXRpb24KKyAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy8qKgorKiBTZXQgdGhlIHN0eWxlIG9mIGFsbCBjaGFyYWN0ZXJzIGluIHRoZSBNVGV4dCBvYmplY3QgdG8KKyogPGNvZGU+QXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA8L2NvZGU+LgorKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmVDaGFyYWN0ZXJTdHlsZXMoKSB7CisKKyAgICAgICAgZlN0eWxlQnVmZmVyID0gbmV3IFN0eWxlQnVmZmVyKHRoaXMsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgZlRpbWVTdGFtcCArPSAxOworICAgICAgICBmRGFtYWdlZFJhbmdlWzBdID0gMDsKKyAgICAgICAgZkRhbWFnZWRSYW5nZVsxXSA9IGxlbmd0aCgpOworICAgIH0KKworLyoqCisqIEludm9rZSB0aGUgZ2l2ZW4gbW9kaWZpZXIgb24gYWxsIGNoYXJhY3RlciBzdHlsZXMgZnJvbSBzdGFydCB0byBsaW1pdC4KKyogQHBhcmFtIG1vZGlmaWVyIHRoZSBtb2RpZmllciB0byBhcHBseSB0byB0aGUgcmFuZ2UuCisqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gbW9kaWZ5LgorKiBAcGFyYW0gbGltaXQgdGhlIGxpbWl0IG9mIHRoZSByYW5nZSBvZiB0ZXh0IHRvIG1vZGlmeS4KKyovCisgICAgcHVibGljIHZvaWQgbW9kaWZ5Q2hhcmFjdGVyU3R5bGVzKGludCBzdGFydCwgaW50IGxpbWl0LCBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyKSB7CisKKyAgICAgICAgY2hlY2tTdGFydExpbWl0KHN0YXJ0LCBsaW1pdCk7CisgICAgICAgIGJvb2xlYW4gbW9kaWZpZWQgPSBmU3R5bGVCdWZmZXIubW9kaWZ5U3R5bGVzKHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZEYW1hZ2VkUmFuZ2UpOworICAgICAgICBpZiAobW9kaWZpZWQpIHsKKyAgICAgICAgICAgIGZUaW1lU3RhbXAgKz0gMTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIEludm9rZSB0aGUgZ2l2ZW4gbW9kaWZpZXIgb24gYWxsIHBhcmFncmFwaCBzdHlsZXMgaW4gcGFyYWdyYXBocworKiBjb250YWluaW5nIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFtzdGFydCwgbGltaXQpLgorKiBAcGFyYW0gbW9kaWZpZXIgdGhlIG1vZGlmaWVyIHRvIGFwcGx5IHRvIHRoZSByYW5nZS4KKyogQHBhcmFtIHN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgcmFuZ2Ugb2YgdGV4dCB0byBtb2RpZnkuCisqIEBwYXJhbSBsaW1pdCB0aGUgbGltaXQgb2YgdGhlIHJhbmdlIG9mIHRleHQgdG8gbW9kaWZ5LgorKi8KKyAgICBwdWJsaWMgdm9pZCBtb2RpZnlQYXJhZ3JhcGhTdHlsZXMoaW50IHN0YXJ0LCBpbnQgbGltaXQsIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpIHsKKworICAgICAgICBjaGVja1N0YXJ0TGltaXQoc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgYm9vbGVhbiBtb2RpZmllZCA9IGZQYXJhZ3JhcGhCdWZmZXIubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZEYW1hZ2VkUmFuZ2UpOworICAgICAgICBpZiAobW9kaWZpZWQpIHsKKyAgICAgICAgICAgIGZUaW1lU3RhbXAgKz0gMTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIFJlc2V0IHRoZSBkYW1hZ2VkIHJhbmdlIHRvIGFuIGVtcHR5IGludGVydmFsLCBhbmQgYmVnaW4gYWNjdW11bGF0aW5nIHRoZSBkYW1hZ2VkCisqIHJhbmdlLiAgVGhlIGRhbWFnZWQgcmFuZ2UgaW5jbHVkZXMgZXZlcnkgaW5kZXggd2hlcmUgYSBjaGFyYWN0ZXIsIGNoYXJhY3RlciBzdHlsZSwKKyogb3IgcGFyYWdyYXBoIHN0eWxlIGhhcyBjaGFuZ2VkLgorKiBAc2VlICNkYW1hZ2VkUmFuZ2VTdGFydAorKiBAc2VlICNkYW1hZ2VkUmFuZ2VMaW1pdAorKi8KKyAgICBwdWJsaWMgdm9pZCByZXNldERhbWFnZWRSYW5nZSgpIHsKKworICAgICAgICBmRGFtYWdlZFJhbmdlWzBdID0gSW50ZWdlci5NQVhfVkFMVUU7CisgICAgICAgIGZEYW1hZ2VkUmFuZ2VbMV0gPSBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICB9CisKKy8qKgorKiBSZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBkYW1hZ2VkIHJhbmdlLgorKiBJZiB0aGUgc3RhcnQgaXMKKyogPGNvZGU+SW50ZWdlci5NQVhfVkFMVUU8L2NvZGU+IGFuZCB0aGUgbGltaXQgaXMKKyogPGNvZGU+SW50ZWdlci5NSU5fVkFMVUU8L2NvZGU+LCB0aGVuIHRoZSBkYW1hZ2VkIHJhbmdlCisqIGlzIGVtcHR5LgorKiBAcmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgZGFtYWdlZCByYW5nZQorKiBAc2VlICNkYW1hZ2VkUmFuZ2VMaW1pdAorKiBAc2VlICNyZXNldERhbWFnZWRSYW5nZQorKi8KKyAgICBwdWJsaWMgaW50IGRhbWFnZWRSYW5nZVN0YXJ0KCkgeworCisgICAgICAgIHJldHVybiBmRGFtYWdlZFJhbmdlWzBdOworICAgIH0KKworLyoqCisqIFJldHVybiB0aGUgbGltaXQgb2YgdGhlIGRhbWFnZWQgcmFuZ2UuCisqIElmIHRoZSBzdGFydCBpcworKiA8Y29kZT5JbnRlZ2VyLk1BWF9WQUxVRTwvY29kZT4gYW5kIHRoZSBsaW1pdCBpcworKiA8Y29kZT5JbnRlZ2VyLk1JTl9WQUxVRTwvY29kZT4sIHRoZW4gdGhlIGRhbWFnZWQgcmFuZ2UKKyogaXMgZW1wdHkuCisqIEByZXR1cm4gdGhlIGxpbWl0IG9mIHRoZSBkYW1hZ2VkIHJhbmdlCisqIEBzZWUgI2RhbWFnZWRSYW5nZVN0YXJ0CisqIEBzZWUgI3Jlc2V0RGFtYWdlZFJhbmdlCisqLworICAgIHB1YmxpYyBpbnQgZGFtYWdlZFJhbmdlTGltaXQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZEYW1hZ2VkUmFuZ2VbMV07CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpCisgICAgeworICAgICAgICBTdHJpbmcgcmVzdWx0ID0iIjsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGgoKTsgaSsrKSB7CisgICAgICAgICAgICByZXN1bHQgKz0gYXQoaSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIElNUExFTUVOVEFUSU9OCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qIGNoZWNrIGEgcmFuZ2UgdG8gc2VlIGlmIGl0IGlzIHdlbGwgZm9ybWVkIGFuZCB3aXRoaW4gdGhlIGJvdW5kcyBvZiB0aGUgdGV4dCAqLworICAgIHByaXZhdGUgdm9pZCBjaGVja1N0YXJ0TGltaXQoaW50IHN0YXJ0LCBpbnQgbGltaXQpCisgICAgeworICAgICAgICBpZiAoc3RhcnQgPiBsaW1pdCkgeworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlN0YXJ0IGlzIGxlc3MgdGhhbiBsaW1pdC4gc3RhcnQ6IitzdGFydCsiOyBsaW1pdDoiK2xpbWl0KTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlN0YXJ0IGlzIGdyZWF0ZXIgdGhhbiBsaW1pdC4gc3RhcnQ6IitzdGFydCsiOyBsaW1pdDoiK2xpbWl0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGFydCA8IDApIHsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJTdGFydCBpcyBuZWdhdGl2ZS4gc3RhcnQ6IitzdGFydCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJTdGFydCBpcyBuZWdhdGl2ZS4gc3RhcnQ6IitzdGFydCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAobGltaXQgPiBsZW5ndGgoKSkgeworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkxpbWl0IGlzIGdyZWF0ZXIgdGhhbiBsZW5ndGguICBsaW1pdDoiK2xpbWl0KTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkxpbWl0IGlzIGdyZWF0ZXIgdGhhbiBsZW5ndGguICBsaW1pdDoiK2xpbWl0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gTEVTU19USEFOX0xFTkdUSCA9IGZhbHNlOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gTk9UX0dSRUFURVJfVEhBTl9MRU5HVEggPSB0cnVlOworCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrUG9zKGludCBwb3MsIGJvb2xlYW4gZW5kQWxsb3dlZCkgeworCisgICAgICAgIGludCBsYXN0VmFsaWRQb3MgPSBsZW5ndGgoKTsKKyAgICAgICAgaWYgKGVuZEFsbG93ZWQgPT0gTEVTU19USEFOX0xFTkdUSCkgeworICAgICAgICAgICAgLS1sYXN0VmFsaWRQb3M7CisgICAgICAgIH0KKworICAgICAgICBpZiAocG9zIDwgMCB8fCBwb3MgPiBsYXN0VmFsaWRQb3MpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlBvc2l0aW9uIGlzIG91dCBvZiByYW5nZS4iKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvVGFiU3RvcC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9UYWJTdG9wLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzY2YWU1NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvVGFiU3RvcC5qYXZhCkBAIC0wLDAgKzEsMTgzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLkV4dGVybmFsaXphYmxlOworaW1wb3J0IGphdmEuaW8uT2JqZWN0SW5wdXQ7CitpbXBvcnQgamF2YS5pby5PYmplY3RPdXRwdXQ7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworLyoqCisgKiBUYWJTdG9wIHJlcHJlc2VudHMgYSBwb3NpdGlvbiBvbiBhIHRhYiBydWxlci4gIEVhY2ggdGFiIHN0b3AgaGFzIGEKKyAqIHBvc2l0aW9uLCBnaXZpbmcgaXRzIGxvY2F0aW9uIG9uIHRoZSBydWxlciwgYW5kIG9uZSBvZiBzZXZlcmFsCisgKiB0eXBlcy4gIFRoZSB0eXBlIGRldGVybWluZXMgaG93IGEgc2VnbWVudCBjb250cm9sZWQgYnkgdGhpcyBUYWJTdG9wCisgKiBpcyBwb3NpdGlvbmVkIG9uIGEgbGluZToKKyAqIDx1bD4KKyAqIDxsaT48Y29kZT5rTGVhZGluZzwvY29kZT4gLSB0aGUgbGVhZGluZyBlZGdlIG9mIHRoZSBzZWdtZW50IGlzIGFsaWduZWQgdG8KKyAqICAgICB0aGUgVGFiU3RvcCdzIHBvc2l0aW9uPC9saT4KKyAqIDxsaT48Y29kZT5rQ2VudGVyPC9jb2RlPiAtIHRoZSBzZWdtZW50IGlzIGNlbnRlcmVkIG9uIHRoaXMgVGFiU3RvcCdzCisgKiAgICAgcG9zaXRpb248L2xpPgorICogPGxpPjxjb2RlPmtUcmFpbGluZzwvY29kZT4gLSB0aGUgdHJhaWxpbmcgZWRnZSBvZiB0aGUgc2VnbWVudCBpcyBhbGlnbmVkIHRvCisgKiAgICAgdGhlIFRhYlN0b3AncyBwb3NpdGlvbjwvbGk+CisgKiA8bGk+PGNvZGU+a0RlY2ltYWw8L2NvZGU+IC0gdGhlIGZpcnN0IGRlY2ltYWwgaW4gdGhlIHNlZ21lbnQgaXMgYWxpZ25lZCB0bworICogICAgIHRoZSBUYWJTdG9wJ3MgcG9zaXRpb248L2xpPgorICogPGxpPjxjb2RlPmtBdXRvPC9jb2RlPiAtIHNlbWFudGljYWxseSB0aGUgc2FtZSBhcyA8Y29kZT5rTGVhZGluZzwvY29kZT4uCisgKiAgICAgVXNlZCBieSB0YWIgcnVsZXJzIHRvIGluZGljYXRlIHRoYXQgYWxsIHN1YnNlcXVlbnQgdGFiIHN0b3BzCisgKiAgICAgd2lsbCBiZSBhdCBhdXRvc3BhY2VkIGludGVydmFscy48L2xpPgorICogPC91bD4KKyAqIEBzZWUgTVRhYlJ1bGVyCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUYWJTdG9wIGltcGxlbWVudHMgRXh0ZXJuYWxpemFibGUKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBDVVJSRU5UX1ZFUlNJT04gPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDIyMzU2OTM0OworCisgICAgcHJpdmF0ZSBieXRlIGZUeXBlOyAgICAvLyBsZWZ0LCBjZW50ZXIsIHJpZ2h0LCBkZWNpbWFsCisgICAgcHJpdmF0ZSBpbnQgZlBvc2l0aW9uOyAvLyB0YWIgc3RvcCBwb3NpdGlvbiBmcm9tIGxpbmUgb3JpZ2luLgorCisgICAgLyoqCisgICAgICogQSBUYWJTdG9wIHdpdGggdGhpcyB0eXBlIGFsaWducyBpdHMgc2VnbWVudCdzIGxlYWRpbmcgZWRnZQorICAgICAqIHRvIHRoZSBUYWJTdG9wJ3MgcG9zaXRpb24uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBieXRlIGtMZWFkaW5nID0gMDsKKworICAgIC8qKgorICAgICAqIEEgVGFiU3RvcCB3aXRoIHRoaXMgdHlwZSBhbGlnbnMgaXRzIHNlZ21lbnQncyBjZW50ZXIKKyAgICAgKiB0byB0aGUgVGFiU3RvcCdzIHBvc2l0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgYnl0ZSBrQ2VudGVyID0gMTsKKworICAgIC8qKgorICAgICAqIEEgVGFiU3RvcCB3aXRoIHRoaXMgdHlwZSBhbGlnbnMgaXRzIHNlZ21lbnQncyB0cmFpbGluZyBlZGdlCisgICAgICogdG8gdGhlIFRhYlN0b3AncyBwb3NpdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUga1RyYWlsaW5nID0gMjsKKworICAgIC8qKgorICAgICAqIEEgVGFiU3RvcCB3aXRoIHRoaXMgdHlwZSBhbGlnbnMgaXRzIHNlZ21lbnQncyBmaXJzdCBkZWNpbWFsCisgICAgICogdG8gdGhlIFRhYlN0b3AncyBwb3NpdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUga0RlY2ltYWwgPSAzOworCisgICAgLyoqCisgICAgICogQSBUYWJTdG9wIHdpdGggdGhpcyB0eXBlIGFsaWducyBpdHMgc2VnbWVudCdzIGxlYWRpbmcgZWRnZQorICAgICAqIHRvIHRoZSBUYWJTdG9wJ3MgcG9zaXRpb24uICBBZnRlciBhIFRhYlN0b3Agb2YgdGhpcyB0eXBlLAorICAgICAqIGFsbCB0YWJzIGFyZSBhdCBhdXRvc3BhY2UgaW50ZXJ2YWxzLiAgVXN1YWxseSwgY2xpZW50cyB3aWxsCisgICAgICogbm90IGNvbnN0cnVjdCBUYWJTdG9wcyB3aXRoIHRoaXMgdHlwZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJ5dGUga0F1dG8gPSA0OworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVGFiU3RvcCB3aXRoIHBvc2l0aW9uIDAgYW5kIHR5cGUgPGNvZGU+a0xlYWRpbmc8L2NvZGU+LgorICAgICAqLworICAgIHB1YmxpYyBUYWJTdG9wKCkgeworCisgICAgICAgdGhpcygwLCBrTGVhZGluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVGFiU3RvcCB3aXRoIHRoZSBnaXZlbiBwb3NpdGlvbiBhbmQgdHlwZS4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIFRhYlN0b3AncyBwb3NpdGlvbgorICAgICAqIEBwYXJhbSB0eXBlIHRoZSBUYWJTdG9wJ3MgdHlwZS4gIE11c3QgYmUgb25lIG9mIGNvbnN0YW50cworICAgICAqICAgICAgaW4gdGhpcyBjbGFzcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGFiU3RvcChpbnQgcG9zaXRpb24sIGJ5dGUgdHlwZSkgeworCisgICAgICAgIGlmICh0eXBlIDwga0xlYWRpbmcgfHwgdHlwZSA+IGtBdXRvKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHRhYiB0eXBlIik7CisgICAgICAgIH0KKworICAgICAgICBmUG9zaXRpb24gPSBwb3NpdGlvbjsKKyAgICAgICAgZlR5cGUgPSB0eXBlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlYWRFeHRlcm5hbChPYmplY3RJbnB1dCBpbikgdGhyb3dzIElPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBpbnQgdmVyc2lvbiA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgaWYgKHZlcnNpb24gIT0gQ1VSUkVOVF9WRVJTSU9OKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludmFsaWQgdmVyc2lvbiBvZiBUYWJTdG9wLiIpOworICAgICAgICB9CisgICAgICAgIGZQb3NpdGlvbiA9IGluLnJlYWRJbnQoKTsKKyAgICAgICAgZlR5cGUgPSBpbi5yZWFkQnl0ZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHdyaXRlRXh0ZXJuYWwoT2JqZWN0T3V0cHV0IG91dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBvdXQud3JpdGVJbnQoQ1VSUkVOVF9WRVJTSU9OKTsKKyAgICAgICAgb3V0LndyaXRlSW50KGZQb3NpdGlvbik7CisgICAgICAgIG91dC53cml0ZUJ5dGUoZlR5cGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXBhcmUgdGhpcyB0byBhbm90aGVyIE9iamVjdC4gIFRhYlN0b3BzIGFyZSBlcXVhbCBpZgorICAgICAqIHRoZWlyIHBvc2l0aW9uIGFuZCB0eXBlIGFyZSB0aGUgc2FtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IHJocykKKyAgICB7CisgICAgICAgIGlmIChyaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgVGFiU3RvcCByaHNUYWI7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByaHNUYWIgPSAoVGFiU3RvcCkgcmhzOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZlR5cGUgPT0gcmhzVGFiLmZUeXBlICYmIGZQb3NpdGlvbiA9PSByaHNUYWIuZlBvc2l0aW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgaGFzaCBjb2RlIGZvciB0aGlzIFRhYlN0b3AuICBUaGUgaGFzaCBjb2RlIGlzCisgICAgICogPGNvZGU+cG9zaXRpb24gPDwgdHlwZTwvY29kZT4uCisgICAgICovCisgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKworICAgICAgICByZXR1cm4gZlBvc2l0aW9uIDw8IGZUeXBlOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgY2hhciB0eXBlQ2hhcjsKKyAgICAgICAgc3dpdGNoIChmVHlwZSkgeworICAgICAgICAgICAgY2FzZSBrTGVhZGluZzogdHlwZUNoYXIgPSAnTCc7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBrQ2VudGVyOiB0eXBlQ2hhciA9ICdDJzsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGtUcmFpbGluZzogdHlwZUNoYXIgPSAnUic7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBrRGVjaW1hbDogdHlwZUNoYXIgPSAnRCc7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBrQXV0bzogdHlwZUNoYXIgPSAnQSc7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogdHlwZUNoYXIgPSAnPyc7IGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiAiVGFiU3RvcFsiICsgSW50ZWdlci50b1N0cmluZyhmUG9zaXRpb24pICsgdHlwZUNoYXIgKyAnXSc7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0eXBlIG9mIHRoaXMgVGFiU3RvcC4gIFdpbGwgYmUgb25lIG9mIHRoZSBjb25zdGFudHMKKyAgICAgKiBpbiB0aGlzIGNsYXNzLgorICAgICAqLworICAgIHB1YmxpYyBieXRlIGdldFR5cGUoKSB7CisgICAgICAgIHJldHVybiBmVHlwZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHBvc2l0aW9uIG9mIHRoaXMgVGFiU3RvcC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFBvc2l0aW9uKCkgeworICAgICAgICByZXR1cm4gZlBvc2l0aW9uOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9UZXN0RmFzdEludEJpbmFyeVNlYXJjaC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9UZXN0RmFzdEludEJpbmFyeVNlYXJjaC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmExNWU4NDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1Rlc3RGYXN0SW50QmluYXJ5U2VhcmNoLmphdmEKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0OworCitmaW5hbCBjbGFzcyBUZXN0RmFzdEludEJpbmFyeVNlYXJjaCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKworICAgICAgICBib29sZWFuIHJlc3VsdCA9IG5ldyBUZXN0RmFzdEludEJpbmFyeVNlYXJjaCgpLnRlc3QoKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHJlc3VsdD8gIlBBU1NFRCIgOiAiRkFJTEVEIik7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gdGVzdCgpIHsKKworICAgICAgICBib29sZWFuIHJlc3VsdCA9IHRydWU7CisgICAgICAgIGludFtdIHRlc3QgPSB7LTUsIC0zLCAwLCAyLCA1fTsKKyAgICAgICAgRmFzdEludEJpbmFyeVNlYXJjaCBmaWJzID0gbmV3IEZhc3RJbnRCaW5hcnlTZWFyY2godGVzdCk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgMjsgaSsrKSB7CisgICAgICAgICAgICBpbnQgYmVmb3JlQW55ID0gZmlicy5maW5kSW5kZXgoLTYpOworICAgICAgICAgICAgaWYgKGJlZm9yZUFueSAhPSAtMSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgYXRFbmQgPSBmaWJzLmZpbmRJbmRleCg1KTsKKyAgICAgICAgICAgIGlmIChhdEVuZCAhPSB0ZXN0Lmxlbmd0aC0xKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBhZnRlckFueSA9IGZpYnMuZmluZEluZGV4KDYpOworICAgICAgICAgICAgaWYgKGFmdGVyQW55ICE9IHRlc3QubGVuZ3RoLTEpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGV4YWN0bHkgPSBmaWJzLmZpbmRJbmRleCgtMyk7CisgICAgICAgICAgICBpZiAoZXhhY3RseSAhPSAxKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZpYnMgPSBuZXcgRmFzdEludEJpbmFyeVNlYXJjaChuZXcgaW50W10gezIwLCA0MH0pOworICAgICAgICAgICAgZmlicy5zZXREYXRhKHRlc3QpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1ZhbGlkYXRpb24uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvVmFsaWRhdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkwMWIwNGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zdHlsZWR0ZXh0L1ZhbGlkYXRpb24uamF2YQpAQCAtMCwwICsxLDM3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQ7CisKKy8qKgorICogSXRlcmF0b3JzIHVzZSB0aGlzIGNsYXNzIHRvIGtlZXAgZnJvbSBnZXR0aW5nIG91dCBvZiBzeW5jIHdpdGgKKyAqIHRoZWlyIHVuZGVybHlpbmcgZGF0YS4gIFdoZW4gY3JlYXRlZCwgdGhlIGl0ZXJhdG9yIGdldHMgYQorICogVmFsaWRhdGlvbiBpbnN0YW5jZS4gIElmIHRoZSB1bmRlcmx5aW5nIGRhdGEgY2hhbmdlcywgdGhlIFZhbGlkYXRpb24KKyAqIGJlY29tZXMgaW52YWxpZC4gIFVzdWFsbHkgaXRlcmF0b3JzIHdpbGwgdGhyb3cgZXhjZXB0aW9ucyBpZiBhY2Nlc3NlZAorICogYWZ0ZXIgYmVjb21pbmcgaW52YWxpZC4KKyAqLworZmluYWwgY2xhc3MgVmFsaWRhdGlvbiB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgYm9vbGVhbiBmSXNWYWxpZCA9IHRydWU7CisKKyAgICBib29sZWFuIGlzVmFsaWQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJc1ZhbGlkOworICAgIH0KKworICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsKKworICAgICAgICBmSXNWYWxpZCA9IGZhbHNlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvcGFja2FnZS5odG1sIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3R5bGVkdGV4dC9wYWNrYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjU5YmVkNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N0eWxlZHRleHQvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhLS0gCisvKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKy0tPgorPGh0bWw+Cis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CitQcm92aWRlcyBzdHlsZWQgdGV4dCBzdG9yYWdlIGFuZCByZWxhdGVkIGNsYXNzZXMuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ2RlbW8vU3dpbmdDb2RlRWRpdC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nQ29kZUVkaXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yOTVkY2EzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nQ29kZUVkaXQuamF2YQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN3aW5nZGVtbzsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5Db2RlRWRpdDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRG9jdW1lbnRXaW5kb3c7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLlN5bnRheENvbG9yZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLlRleHREb2N1bWVudDsKKworcHVibGljIGNsYXNzIFN3aW5nQ29kZUVkaXQgZXh0ZW5kcyBDb2RlRWRpdCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgIAorICAgICAgICBuZXcgU3dpbmdDb2RlRWRpdChhcmdzLCAwKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN3aW5nQ29kZUVkaXQoU3RyaW5nW10gYXJncywgaW50IHN0YXJ0KSB7CisgICAgCisgICAgICAgIHN1cGVyKGFyZ3MsIHN0YXJ0KTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIERvY3VtZW50V2luZG93IGNyZWF0ZURvY3VtZW50V2luZG93KFRleHREb2N1bWVudCBkb2N1bWVudCkgeworCisgICAgICAgIHJldHVybiBuZXcgU3dpbmdEb2N1bWVudFdpbmRvdyh0aGlzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3ludGF4Q29sb3JlcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudXMpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ2RlbW8vU3dpbmdEb2N1bWVudFdpbmRvdy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRG9jdW1lbnRXaW5kb3cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZjUwNjVhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRG9jdW1lbnRXaW5kb3cuamF2YQpAQCAtMCwwICsxLDI3MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ2RlbW87CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5KVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbExpc3RlbmVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbFNldHRpbmdzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpLkpUYWJSdWxlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN3aW5ndWkuU3dpbmdNZW51QnVpbGRlcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQucHJpbnQuUHJpbnRpbmdVdGlsczsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5Bd3REb2N1bWVudFdpbmRvdzsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRG9jdW1lbnRXaW5kb3c7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLkVkaXRBcHBsaWNhdGlvbjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdG9yUmVzb3VyY2VzOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5SZXNvdXJjZVV0aWxzOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5UZXh0RG9jdW1lbnQ7CisKK2ltcG9ydCBqYXZhLmF3dC5Cb3JkZXJMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuRmlsZURpYWxvZzsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpGcmFtZTsKK2ltcG9ydCBqYXZheC5zd2luZy5KTWVudTsKK2ltcG9ydCBqYXZheC5zd2luZy5KTWVudUJhcjsKK2ltcG9ydCBqYXZheC5zd2luZy5KT3B0aW9uUGFuZTsKK2ltcG9ydCBqYXZheC5zd2luZy5XaW5kb3dDb25zdGFudHM7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworCitpbXBvcnQgamF2YS5pby5GaWxlOworCitpbXBvcnQgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CisKKy8qKgorICogQXd0RG9jdW1lbnRXaW5kb3cgaXMgYSBGcmFtZSBjb250YWluaW5nIGEgVGV4dFBhbmVsLCB3aXRoIGEgZG9jdW1lbnQKKyAqIGZvciBzdG9yaW5nIHRoZSB0ZXh0IGluIHRoZSBUZXh0UGFuZWwuCisgKi8KK2ZpbmFsIGNsYXNzIFN3aW5nRG9jdW1lbnRXaW5kb3cgZXh0ZW5kcyBKRnJhbWUgaW1wbGVtZW50cyBEb2N1bWVudFdpbmRvdyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBKVGV4dFBhbmVsIGZUZXh0UGFuZWw7CisgICAgcHJpdmF0ZSBFZGl0QXBwbGljYXRpb24gZkFwcGxpY2F0aW9uOworICAgIHByaXZhdGUgVGV4dERvY3VtZW50IGZEb2N1bWVudDsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBBd3REb2N1bWVudFdpbmRvdy4KKyAgICAgKiBAcGFyYW0gYXBwbGljYXRpb24gdGhlIGFwcGxpY2F0aW9uIHRoYXQgb3ducyB0aGlzIGRvY3VtZW50CisgICAgICogQHBhcmFtIGRvY3VtZW50IHRoZSBkb2N1bWVudCB0byBzaG93IGluIHRoaXMgQXd0RG9jdW1lbnRXaW5kb3cKKyAgICAgKi8KKyAgICBTd2luZ0RvY3VtZW50V2luZG93KEVkaXRBcHBsaWNhdGlvbiBhcHBsaWNhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRleHREb2N1bWVudCBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRleHRQYW5lbFNldHRpbmdzIHRleHRQYW5lbFNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiB1c2VUYWJSdWxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzdXBwb3J0U3R5bGVkVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc3VwcG9ydFBsYWluVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludFtdIG1lbnVzKSB7CisKKyAgICAgICAgZkFwcGxpY2F0aW9uID0gYXBwbGljYXRpb247CisgICAgICAgIHNldERlZmF1bHRDbG9zZU9wZXJhdGlvbihXaW5kb3dDb25zdGFudHMuRE9fTk9USElOR19PTl9DTE9TRSk7CisgICAgICAgIAorICAgICAgICBmVGV4dFBhbmVsID0gbmV3IEpUZXh0UGFuZWwodGV4dFBhbmVsU2V0dGluZ3MsIG51bGwsIGFwcGxpY2F0aW9uLmdldENsaXBib2FyZCgpKTsKKyAgICAgICAgaWYgKGxpc3RlbmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuYWRkTGlzdGVuZXIobGlzdGVuZXIpOworICAgICAgICB9CisgICAgICAgIHNldERvY3VtZW50KGRvY3VtZW50KTsKKworICAgICAgICBhZGRNZW51QmFyKHN1cHBvcnRTdHlsZWRUZXh0LCBzdXBwb3J0UGxhaW5UZXh0LCBtZW51cyk7CisKKyAgICAgICAgZ2V0Q29udGVudFBhbmUoKS5zZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKworICAgICAgICBpZiAodXNlVGFiUnVsZXIpIHsKKyAgICAgICAgICAgIEpUYWJSdWxlciB0YWJSdWxlciA9IG5ldyBKVGFiUnVsZXIoMTQsIDEwLCBmVGV4dFBhbmVsKTsKKyAgICAgICAgICAgIGdldENvbnRlbnRQYW5lKCkuYWRkKHRhYlJ1bGVyLCAiTm9ydGgiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZ2V0Q29udGVudFBhbmUoKS5hZGQoZlRleHRQYW5lbCwgIkNlbnRlciIpOworCisgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgZG9DbG9zZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgYWRkTWVudUJhcihib29sZWFuIHN1cHBvcnRTdHlsZWRUZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHN1cHBvcnRQbGFpblRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50W10gbWVudXMpIHsKKyAgICAgICAgCisgICAgICAgIEpNZW51QmFyIG1lbnVCYXIgPSBuZXcgSk1lbnVCYXIoKTsKKyAgICAgICAgU3RyaW5nIG1lbnVUaXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5GSUxFKTsKKyAgICAgICAgSk1lbnUgbWVudSA9IG5ldyBKTWVudShtZW51VGl0bGUpOworICAgICAgICBuZXcgU3dpbmdGaWxlTWVudU1hbmFnZXIobWVudSwgZkFwcGxpY2F0aW9uLCB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydFN0eWxlZFRleHQsIHN1cHBvcnRQbGFpblRleHQpOworICAgICAgICBtZW51QmFyLmFkZChtZW51KTsKKworICAgICAgICBTd2luZ01lbnVCdWlsZGVyLmdldEluc3RhbmNlKCkuY3JlYXRlTWVudXMobWVudUJhciwgZlRleHRQYW5lbCwgdGhpcywgbWVudXMpOworICAgICAgICBzZXRKTWVudUJhcihtZW51QmFyKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgaXQgaXMgT0sgdG8gc2V0IHRoZSBkb2N1bWVudCB0ZXh0IGFuZCBmaWxlIHRvCisgICAgICogc29tZXRoaW5nIGRpZmZlcmVudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gY2FuQ2hhbmdlRG9jdW1lbnRzKCkgeworCisgICAgICAgIC8vIElmIHRoZSB0ZXh0IGlzIG1vZGlmaWVkLCBnaXZlIHRoZSB1c2VyIGEgY2hhbmNlIHRvCisgICAgICAgIC8vIHNhdmUgaXQuICBPdGhlcndpc2UgcmV0dXJuIHRydWUuCisKKyAgICAgICAgaWYgKGZEb2N1bWVudC5pc01vZGlmaWVkKCkpIHsKKyAgICAgICAgICAgIGludCBzYXZlID0gYXNrU2F2ZSgpOworICAgICAgICAgICAgaWYgKHNhdmUgPT0gSk9wdGlvblBhbmUuWUVTX09QVElPTikgeworICAgICAgICAgICAgICAgIHJldHVybiBkb1NhdmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBzYXZlID09IEpPcHRpb25QYW5lLk5PX09QVElPTjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldERvY3VtZW50KFRleHREb2N1bWVudCBkb2N1bWVudCkgeworCisgICAgICAgIGZEb2N1bWVudCA9IGRvY3VtZW50OworICAgICAgICBmRG9jdW1lbnQuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBzZXRUaXRsZShmRG9jdW1lbnQuZ2V0VGl0bGUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkb2N1bWVudCB0byBlbXB0eSB0ZXh0IHdpdGggbm8gYXNzb2NpYXRlZCBmaWxlLiAgSWYKKyAgICAgKiB0aGUgZG9jdW1lbnQgdGV4dCBpcyBub3Qgc2F2ZWQsIHByb21wdCB0aGUgdXNlciB0byBzYXZlIHRoZQorICAgICAqIHRoZSB0ZXh0IGZpcnN0LiAgSWYgdGhpcyBvcGVyYXRpb24gaXMgY2FuY2VsZWQsIHRoZSBkb2N1bWVudAorICAgICAqIGlzIHVuY2hhbmdlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb05ldygpIHsKKworICAgICAgICBpZiAoIWNhbkNoYW5nZURvY3VtZW50cygpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNldERvY3VtZW50KGZBcHBsaWNhdGlvbi5jcmVhdGVOZXdEb2N1bWVudCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9tcHQgdGhlIHVzZXIgZm9yIGEgZmlsZSBmcm9tIHdoaWNoIHRvIGxvYWQgYSB0ZXh0IGRvY3VtZW50LgorICAgICAqIElmIHRoZSBjdXJyZW50IHRleHQgaXMgbm90IHNhdmVkLCBmaXJzdCBwcm9tcHQgdGhlIHVzZXIgdG8KKyAgICAgKiBzYXZlLiAgSWYgZWl0aGVyIG9wZXJhdGlvbiBpcyBjYW5jZWxlZCBvciBmYWlscywgdGhlIGRvY3VtZW50CisgICAgICogaXMgdW5jaGFuZ2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvT3BlbigpIHsKKworICAgICAgICBpZiAoIWNhbkNoYW5nZURvY3VtZW50cygpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBUZXh0RG9jdW1lbnQgZG9jdW1lbnQgPSBmQXBwbGljYXRpb24ub3BlbkRvY3VtZW50KHRoaXMpOworCisgICAgICAgIGlmIChkb2N1bWVudCAhPSBudWxsKSB7CisgICAgICAgICAgICBzZXREb2N1bWVudChkb2N1bWVudCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9tcHQgdGhlIHVzZXIgZm9yIGEgZmlsZSBpbiB3aGljaCB0byBzYXZlIHRoZSBkb2N1bWVudCB0ZXh0LgorICAgICAqIElmIHRoaXMgb3BlcmF0aW9uIGlzIG5vdCBjYW5jZWxlZCwgc2F2ZSB0aGUgdGV4dCBpbiB0aGUgZmlsZS4KKyAgICAgKiBUaGUgZmlsZSBiZWNvbWVzIHRoaXMgZG9jdW1lbnQncyBmaWxlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGRvU2F2ZUFzKGludCBmb3JtYXQpIHsKKworICAgICAgICBTdHJpbmcgdGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuU0FWRV9USVRMRSk7CisgICAgICAgIEZpbGUgZmlsZSA9IEF3dERvY3VtZW50V2luZG93LmdldEZpbGVGcm9tRGlhbG9nKGZEb2N1bWVudC5nZXRGaWxlKCksIHRpdGxlLCB0aGlzLCBGaWxlRGlhbG9nLlNBVkUpOworICAgICAgICAKKyAgICAgICAgaWYgKGZpbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmRG9jdW1lbnQuc2V0RmlsZShmaWxlKTsKKyAgICAgICAgc2V0VGl0bGUoZkRvY3VtZW50LmdldFRpdGxlKCkpOworCisgICAgICAgIGZEb2N1bWVudC5zZXRGb3JtYXQoZm9ybWF0KTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmRG9jdW1lbnQuc2F2ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNhdmUgdGhlIHRleHQgaW4gdGhpcyBkb2N1bWVudC4gIElmIHRoZXJlIGlzIG5vIGZpbGUgYXNzb2NpYXRlZAorICAgICAqIHdpdGggdGhlIHRleHQsIHRoaXMgaXMgZXF1aXZhbGVudCB0byA8Y29kZT5kb1NhdmVBczwvY29kZT4uCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0cnVlIGlmIHRoZSBkb2N1bWVudCB3YXMgc3VjY2Vzc2Z1bGx5IHNhdmVkLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGRvU2F2ZSgpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50LmdldEZpbGUoKSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZG9TYXZlQXMoZkRvY3VtZW50LmdldEZvcm1hdCgpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZEb2N1bWVudC5zYXZlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJpbnQgdGhlIGNvbnRlbnRzIG9mIHRoaXMgd2luZG93LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvUHJpbnQoKSB7CisKKyAgICAgICAgUHJpbnRpbmdVdGlscy51c2VyUHJpbnRUZXh0KGZEb2N1bWVudC5nZXRUZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLmdldERlZmF1bHRWYWx1ZXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFRpdGxlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEF0dGVtcHQgdG8gY2xvc2UgdGhpcyB3aW5kb3cuICBJZiB0aGUgdGV4dCBoYXMgbm90IGJlZW4gc2F2ZWQsCisgICAgICogZ2l2ZSB0aGUgdXNlciBhIGNoYW5jZSB0byBzYXZlIHRoZSB0ZXh0IGJlZm9yZSBjbG9zaW5nIHRoZQorICAgICAqIHdpbmRvdy4gIElmIHRoZSB1c2VyIGNhbmNlbHMgdGhpcyBvcGVyYXRpb24sIHRoaXMgbWV0aG9kIHJldHVybnMKKyAgICAgKiBmYWxzZSBhbmQgdGhlIHdpbmRvdyBpcyBub3QgY2xvc2VkOyAgb3RoZXJ3aXNlIHRoaXMgbWV0aG9kCisgICAgICogcmV0dXJucyB0cnVlIGFuZCB0aGUgd2luZG93IGlzIGNsb3NlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBkb0Nsb3NlKCkgeworCisgICAgICAgIGlmIChjYW5DaGFuZ2VEb2N1bWVudHMoKSkgeworICAgICAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7CisgICAgICAgICAgICBkaXNwb3NlKCk7CisgICAgICAgICAgICBmQXBwbGljYXRpb24ucmVtb3ZlRG9jdW1lbnRXaW5kb3codGhpcyk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIERpc3BsYXkgYSBkaWFsb2cgdGhhdCBhc2tzIHdoZXRoZXIgdGhlIHVzZXIgd2FudHMgdG8KKyAgICAgKiBzYXZlIGEgZG9jdW1lbnQuICBUaGUgcmV0dXJuZWQgdmFsdWUgd2lsbCBiZSBZRVNfT1BUSU9OLAorICAgICAqIE5PX09QVElPTiwgb3IgQ0FOQ0VMX09QVElPTiBmcm9tIEpPcHRpb25QYW5lLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGFza1NhdmUoKSB7CisKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuU0FWRV9NU0cpOworICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IE1lc3NhZ2VGb3JtYXQuZm9ybWF0KHBhdHRlcm4sIG5ldyBPYmplY3RbXSB7Z2V0VGl0bGUoKX0pOworICAgICAgICAKKyAgICAgICAgU3RyaW5nIHllcyA9IFJlc291cmNlVXRpbHMuZ2V0U3RyaW5nKEVkaXRvclJlc291cmNlcy5ZRVMpOworICAgICAgICBTdHJpbmcgbm8gPSBSZXNvdXJjZVV0aWxzLmdldFN0cmluZyhFZGl0b3JSZXNvdXJjZXMuTk8pOworICAgICAgICBTdHJpbmcgY2FuY2VsID0gUmVzb3VyY2VVdGlscy5nZXRTdHJpbmcoRWRpdG9yUmVzb3VyY2VzLkNBTkNFTCk7CisKKyAgICAgICAgcmV0dXJuIEpPcHRpb25QYW5lLnNob3dPcHRpb25EaWFsb2codGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpPcHRpb25QYW5lLllFU19OT19DQU5DRUxfT1BUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKT3B0aW9uUGFuZS5RVUVTVElPTl9NRVNTQUdFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117eWVzLG5vLGNhbmNlbH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHllcyk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5nZGVtby9Td2luZ0VkaXREZW1vLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ2RlbW8vU3dpbmdFZGl0RGVtby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc2Zjk5MjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ2RlbW8vU3dpbmdFZGl0RGVtby5qYXZhCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQuc3dpbmdkZW1vOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLkVkaXREZW1vOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5Eb2N1bWVudFdpbmRvdzsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uVGV4dERvY3VtZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuSlRleHRQYW5lbDsKKworcHVibGljIGNsYXNzIFN3aW5nRWRpdERlbW8gZXh0ZW5kcyBFZGl0RGVtbyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgIAorICAgICAgICBuZXcgU3dpbmdDb2RlRWRpdChhcmdzLCAwKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN3aW5nRWRpdERlbW8oU3RyaW5nW10gYXJncywgaW50IHN0YXJ0KSB7CisgICAgCisgICAgICAgIHN1cGVyKGFyZ3MsIHN0YXJ0KTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIERvY3VtZW50V2luZG93IGNyZWF0ZURvY3VtZW50V2luZG93KFRleHREb2N1bWVudCBkb2N1bWVudCkgeworCisgICAgICAgIHJldHVybiBuZXcgU3dpbmdEb2N1bWVudFdpbmRvdyh0aGlzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlRleHRQYW5lbC5nZXREZWZhdWx0U2V0dGluZ3MoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRmlsZU1lbnVNYW5hZ2VyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ2RlbW8vU3dpbmdGaWxlTWVudU1hbmFnZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yOTJkNjgzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmdkZW1vL1N3aW5nRmlsZU1lbnVNYW5hZ2VyLmphdmEKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ2RlbW87CisKK2ltcG9ydCBqYXZhLmF3dC5FdmVudDsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpNZW51OworaW1wb3J0IGphdmF4LnN3aW5nLkpNZW51SXRlbTsKK2ltcG9ydCBqYXZheC5zd2luZy5KU2VwYXJhdG9yOworaW1wb3J0IGphdmF4LnN3aW5nLktleVN0cm9rZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5Eb2N1bWVudFdpbmRvdzsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uRWRpdEFwcGxpY2F0aW9uOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5GaWxlTWVudU1hbmFnZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5kZW1vLk1lbnVEYXRhOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5SZXNvdXJjZVV0aWxzOworCitmaW5hbCBjbGFzcyBTd2luZ0ZpbGVNZW51TWFuYWdlciBleHRlbmRzIEZpbGVNZW51TWFuYWdlciB7CisKKyAgICBwcml2YXRlIEpNZW51IGZNZW51OworICAgIAorICAgIHB1YmxpYyBTd2luZ0ZpbGVNZW51TWFuYWdlcihKTWVudSBtZW51LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZGl0QXBwbGljYXRpb24gYXBwbGljYXRpb24sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb2N1bWVudFdpbmRvdyBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzdXBwb3J0U3R5bGVkRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHN1cHBvcnRQbGFpbkZvcm1hdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgc3VwZXIoYXBwbGljYXRpb24sIGRvY3VtZW50KTsKKyAgICAgICAgCisgICAgICAgIGZNZW51ID0gbWVudTsKKyAgICAgICAgY3JlYXRlSXRlbXMoc3VwcG9ydFN0eWxlZEZvcm1hdCwgc3VwcG9ydFBsYWluRm9ybWF0KTsKKyAgICAgICAgZk1lbnUgPSBudWxsOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IGFkZE1lbnVJdGVtKFN0cmluZyBrZXkpIHsKKworICAgICAgICBNZW51RGF0YSBtZW51RGF0YSA9IFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoa2V5KTsKKyAgICAgICAgSk1lbnVJdGVtIGl0ZW0gPSBuZXcgSk1lbnVJdGVtKG1lbnVEYXRhLmdldE5hbWUoKSk7CisgICAgICAgIGlmIChtZW51RGF0YS5oYXNTaG9ydGN1dCgpKSB7CisgICAgICAgICAgICBLZXlTdHJva2Uga3MgPSBLZXlTdHJva2UuZ2V0S2V5U3Ryb2tlKG1lbnVEYXRhLmdldFNob3J0Y3V0S2V5Q29kZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudC5DVFJMX01BU0spOworICAgICAgICAgICAgaXRlbS5zZXRBY2NlbGVyYXRvcihrcyk7CisgICAgICAgIH0KKyAgICAgICAgaXRlbS5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZk1lbnUuYWRkKGl0ZW0pOworICAgICAgICByZXR1cm4gaXRlbTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgYWRkU2VwYXJhdG9yKCkgeworICAgIAorICAgICAgICBmTWVudS5hZGQobmV3IEpTZXBhcmF0b3IoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KTWVzc2FnZURpYWxvZy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KTWVzc2FnZURpYWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ1MjdkODAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pNZXNzYWdlRGlhbG9nLmphdmEKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuQ29udGFpbmVyOworaW1wb3J0IGphdmEuYXd0LkNhcmRMYXlvdXQ7CisKK2ltcG9ydCBqYXZheC5zd2luZy5KRnJhbWU7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5KVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbFNldHRpbmdzOworCisvKioKKyAqIE1lc3NhZ2VEaWFsb2cgaXMgYSBzaW1wbGUgRnJhbWUgd2hpY2ggZGlzcGxheXMgYSBzdHlsZWQKKyAqIHRleHQgbWVzc2FnZSBpbiBhIFRleHRQYW5lbC4KKyAqIFRoZSB0ZXh0IGluIHRoZSBtZXNzYWdlIGlzIG5vdCBzZWxlY3RhYmxlIG9yIGVkaXRhYmxlLgorICogQHNlZSBNQ29uc3RUZXh0CisgKiBAc2VlIEpUZXh0UGFuZWwKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEpNZXNzYWdlRGlhbG9nIGV4dGVuZHMgSkZyYW1lIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgKiBDcmVhdGUgYSBuZXcgTWVzc2FnZURpYWxvZy4KKyAgICAqIEBwYXJhbSB0aXRsZSB0aGUgZGlhbG9nJ3MgdGl0bGUKKyAgICAqIEBwYXJhbSBtZXNzYWdlIHRoZSB0ZXh0IHdoaWNoIHdpbGwgYXBwZWFyIGluIHRoZSBkaWFsb2cKKyAgICAqLworICAgIHB1YmxpYyBKTWVzc2FnZURpYWxvZyhTdHJpbmcgdGl0bGUsIE1Db25zdFRleHQgbWVzc2FnZSkKKyAgICB7CisgICAgICAgIHN1cGVyKHRpdGxlKTsKKworICAgICAgICBDb250YWluZXIgY29udGVudCA9IGdldENvbnRlbnRQYW5lKCk7CisgICAgICAgIGNvbnRlbnQuc2V0TGF5b3V0KG5ldyBDYXJkTGF5b3V0KCkpOworICAgICAgICBUZXh0UGFuZWxTZXR0aW5ncyBzZXR0aW5ncyA9IEpUZXh0UGFuZWwuZ2V0RGVmYXVsdFNldHRpbmdzKCk7CisgICAgICAgIHNldHRpbmdzLnNldFNjcm9sbGFibGUoZmFsc2UpOworICAgICAgICBzZXR0aW5ncy5zZXRTZWxlY3RhYmxlKGZhbHNlKTsKKyAgICAgICAgSlRleHRQYW5lbCBwYW5lbCA9IG5ldyBKVGV4dFBhbmVsKHNldHRpbmdzLCBtZXNzYWdlLCBudWxsKTsKKworICAgICAgICBwYW5lbC5zZXRCYWNrZ3JvdW5kKENvbG9yLmJsYWNrKTsKKyAgICAgICAgY29udGVudC5hZGQoIkNlbnRlciIsIHBhbmVsKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworICAgICAgICAgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICAgICAgc2V0U2l6ZSg0NTAsMzIwKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pOdW1iZXJEaWFsb2cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSk51bWJlckRpYWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk3ZmMxOWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pOdW1iZXJEaWFsb2cuamF2YQpAQCAtMCwwICsxLDE2MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpOworCitpbXBvcnQgamF2YS5hd3QuQ29udGFpbmVyOworaW1wb3J0IGphdmEuYXd0LkZsb3dMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CisKK2ltcG9ydCBqYXZhLnRleHQuTnVtYmVyRm9ybWF0OworaW1wb3J0IGphdmEudGV4dC5QYXJzZUV4Y2VwdGlvbjsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpEaWFsb2c7CitpbXBvcnQgamF2YXguc3dpbmcuSlBhbmVsOworaW1wb3J0IGphdmF4LnN3aW5nLkpUZXh0RmllbGQ7CitpbXBvcnQgamF2YXguc3dpbmcuSkJ1dHRvbjsKK2ltcG9ydCBqYXZheC5zd2luZy5KTGFiZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25MaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLkZyYW1lUmVzb3VyY2VzOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLk1lbnVJdGVtU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLlJlc291cmNlVXRpbHM7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworCisvKioKKyogU2ltcGxlIGRpYWxvZyB3aGljaCBnZXRzIGEgbnVtYmVyLCBhbmQgc2VuZHMgYW4gYXBwcm9wcmlhdGUgY29tbWFuZAorKi8KK2ZpbmFsIGNsYXNzIEpOdW1iZXJEaWFsb2cgZXh0ZW5kcyBKRGlhbG9nIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgTVRleHRQYW5lbCBmVGV4dFBhbmVsOworICAgIHByaXZhdGUgSlRleHRGaWVsZCBmSW5wdXQgPSBudWxsOworCisgICAgcHJpdmF0ZSBKQnV0dG9uIGZPS0J1dHRvbiA9IG51bGw7CisgICAgcHJpdmF0ZSBKQnV0dG9uIGZDYW5jZWxCdXR0b24gPSBudWxsOworICAgIHByaXZhdGUgYm9vbGVhbiBmQ2hhcmFjdGVyOworICAgIHByaXZhdGUgT2JqZWN0IGZLZXk7CisgICAgcHJpdmF0ZSBmbG9hdCBmTXVsdGlwbGllcjsgCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbXVsdGlwbGllciB0aGUgZmFjdG9yIGJ5IHdoaWNoIHRvIG11bHRpcGx5IHRoZSB1c2VyJ3MKKyAgICAgKiAgICAgICAgc2VsZWN0aW9uIGJlZm9yZSBjcmVhdGluZyB0aGUgYXR0cmlidXRlIHZhbHVlLiAgIFRoaXMKKyAgICAgKiAgICAgICAgaXMgdXNlZnVsIGZvciBzdWJzY3JpcHRpbmcuCisgICAgICovCisgICAgSk51bWJlckRpYWxvZyhGcmFtZSBwYXJlbnQsCisgICAgICAgICAgICAgICAgICBTdHJpbmcgdGl0bGUsCisgICAgICAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICAgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyLAorICAgICAgICAgICAgICAgICAgZmxvYXQgbXVsdGlwbGllcikgeworCisgICAgICAgIHN1cGVyKHBhcmVudCwgdGl0bGUsIGZhbHNlKTsKKyAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKyAgICAgICAgZktleSA9IGtleTsKKyAgICAgICAgZkNoYXJhY3RlciA9IGNoYXJhY3RlcjsKKyAgICAgICAgZk11bHRpcGxpZXIgPSBtdWx0aXBsaWVyOworICAgICAgICAKKyAgICAgICAgQ29udGFpbmVyIGNvbnRlbnQgPSBnZXRDb250ZW50UGFuZSgpOworICAgICAgICAKKyAgICAgICAgY29udGVudC5zZXRMYXlvdXQobmV3IGphdmEuYXd0LkdyaWRMYXlvdXQoMiwxKSk7CisKKyAgICAgICAgSlBhbmVsIHBhbmVsID0gbmV3IEpQYW5lbCgpOworICAgICAgICBwYW5lbC5zZXRMYXlvdXQobmV3IEZsb3dMYXlvdXQoRmxvd0xheW91dC5DRU5URVIsIDEwLCAxNSkpOworICAgICAgICBmSW5wdXQgPSBuZXcgSlRleHRGaWVsZCg1KTsKKworICAgICAgICBwYW5lbC5hZGQobmV3IEpMYWJlbChtZXNzYWdlKSk7CisgICAgICAgIHBhbmVsLmFkZChmSW5wdXQpOworICAgICAgICBjb250ZW50LmFkZCgiQ2VudGVyIiwgcGFuZWwpOworCisgICAgICAgIGZDYW5jZWxCdXR0b24gPSBuZXcgSkJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkNBTkNFTCkpOworICAgICAgICBmT0tCdXR0b24gPSBuZXcgSkJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLk9LKSk7CisgICAgICAgIEpQYW5lbCBwID0gbmV3IEpQYW5lbCgpOworICAgICAgICBwLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgNSwgNSkpOworICAgICAgICBwLmFkZChmQ2FuY2VsQnV0dG9uKTsKKyAgICAgICAgcC5hZGQoZk9LQnV0dG9uKTsKKyAgICAgICAgY29udGVudC5hZGQoIlNvdXRoIiwgcCk7CisKKyAgICAgICAgcGFjaygpOworCisgICAgICAgIGFkZFdpbmRvd0xpc3RlbmVyKG5ldyBXaW5kb3dBZGFwdGVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgY2xvc2VXaW5kb3coZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIGZPS0J1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZkNhbmNlbEJ1dHRvbi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY2xvc2VXaW5kb3coYm9vbGVhbiBzZW5kQWN0aW9uKSB7CisKKyAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7CisKKyAgICAgICAgaW50IG51bSA9IDA7CisgICAgICAgIGlmIChzZW5kQWN0aW9uKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFN0cmluZyB0ZXh0ID0gZklucHV0LmdldFRleHQoKTsKKyAgICAgICAgICAgICAgICBudW0gPSBOdW1iZXJGb3JtYXQuZ2V0SW5zdGFuY2UoKS5wYXJzZSh0ZXh0KS5pbnRWYWx1ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKFBhcnNlRXhjZXB0aW9uIGV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgIHNlbmRBY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzZW5kQWN0aW9uKSB7CisgICAgICAgICAgICBzZW5kQWN0aW9uKG51bSk7CisgICAgICAgIH0KKworICAgICAgICBkaXNwb3NlKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGUpIHsKKworICAgICAgICBPYmplY3Qgc291cmNlID0gZS5nZXRTb3VyY2UoKTsKKworICAgICAgICBpZiAoc291cmNlID09IGZPS0J1dHRvbikgeworICAgICAgICAgICAgY2xvc2VXaW5kb3codHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc291cmNlID09IGZDYW5jZWxCdXR0b24pIHsKKyAgICAgICAgICAgIGNsb3NlV2luZG93KGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgQWN0aW9uRXZlbnQhIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIEhhbmRsZSB0aGUgdXNlciBpbnB1dAorICAgICogQHBhcmFtIG51bWJlciBUaGUgbnVtYmVyIHRoZSB1c2VyIHR5cGVkIGluCisgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2VuZEFjdGlvbihpbnQgbnVtYmVyKSB7CisgICAgICAgIGZsb2F0IG51bSA9IG51bWJlciAqIGZNdWx0aXBsaWVyOworICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRmxvYXQobnVtKSk7CisgICAgICAgIGlmIChmQ2hhcmFjdGVyID09IE1lbnVJdGVtU2V0LkNIQVJBQ1RFUikgeworICAgICAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pPYmplY3REaWFsb2cuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSk9iamVjdERpYWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNiZWMwNzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pPYmplY3REaWFsb2cuamF2YQpAQCAtMCwwICsxLDI3NiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpOworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworaW1wb3J0IGphdmF4LnN3aW5nLkJveDsKK2ltcG9ydCBqYXZheC5zd2luZy5Cb3JkZXJGYWN0b3J5OworaW1wb3J0IGphdmF4LnN3aW5nLkJveExheW91dDsKK2ltcG9ydCBqYXZheC5zd2luZy5KRGlhbG9nOworaW1wb3J0IGphdmF4LnN3aW5nLkpQYW5lbDsKK2ltcG9ydCBqYXZheC5zd2luZy5KU2Nyb2xsUGFuZTsKK2ltcG9ydCBqYXZheC5zd2luZy5KQnV0dG9uOworaW1wb3J0IGphdmF4LnN3aW5nLkpMaXN0OworaW1wb3J0IGphdmF4LnN3aW5nLkpMYWJlbDsKK2ltcG9ydCBqYXZheC5zd2luZy5MaXN0U2VsZWN0aW9uTW9kZWw7CisKK2ltcG9ydCBqYXZheC5zd2luZy5ldmVudC5MaXN0U2VsZWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YXguc3dpbmcuZXZlbnQuTGlzdFNlbGVjdGlvbkxpc3RlbmVyOworCitpbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkNvbnRhaW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5EaW1lbnNpb247CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuRmxvd0xheW91dDsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVTZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5NZW51SXRlbVNldDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5GcmFtZVJlc291cmNlczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5SZXNvdXJjZVV0aWxzOworCisvKioKKyogU2ltcGxlIGRpYWxvZyB0aGF0IHNldHMgYW4gYXR0cmlidXRlLgorKi8KK2ZpbmFsIGNsYXNzIEpPYmplY3REaWFsb2cgZXh0ZW5kcyBKRGlhbG9nIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIGZpbmFsIE1UZXh0UGFuZWwgZlRleHRQYW5lbDsKKyAgICBwcml2YXRlIGZpbmFsIE9iamVjdCBmS2V5OworICAgIHByaXZhdGUgYm9vbGVhbiBmQ2hhcmFjdGVyOworICAgIHByaXZhdGUgSGFzaHRhYmxlIGZOYW1lVG9WYWx1ZU1hcDsKKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIEpCdXR0b24gZk9LQnV0dG9uOworICAgIHByaXZhdGUgZmluYWwgSkJ1dHRvbiBmQ2FuY2VsQnV0dG9uOworICAgIHByaXZhdGUgZmluYWwgSkxpc3QgZkl0ZW1zOworICAgIAorICAgIC8qKgorICAgICogQ29uc3RydWN0IGEgbmV3IEpPYmplY3REaWFsb2cuCisgICAgKiBAcGFyYW0gcGFyZW50IHRoZSBkaWFsb2cncyBwYXJlbnQgZnJhbWUKKyAgICAqIEBwYXJhbSB0aXRsZSB0aGUgZGlhbG9ncyB0aXRsZQorICAgICogQHBhcmFtIG1lc3NhZ2UgdGhlIG1lc3NhZ2UgZGlzcGxheWVkIG5leHQgdG8gdGhlIGlucHV0IGJveAorICAgICovCisgICAgSk9iamVjdERpYWxvZyhGcmFtZSBwYXJlbnQsCisgICAgICAgICAgICAgICAgICBTdHJpbmcgdGl0bGUsIAorICAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UsIAorICAgICAgICAgICAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBuYW1lcywKKyAgICAgICAgICAgICAgICAgIE9iamVjdFtdIHZhbHVlcykgeworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgc3VwZXIocGFyZW50LCB0aXRsZSwgZmFsc2UpOworCisgICAgICAgIHNldHVwTWFwKG5hbWVzLCB2YWx1ZXMpOworICAgICAgICAKKyAgICAgICAgRGltZW5zaW9uIHNpemUgPSBuZXcgRGltZW5zaW9uKDI1MCwgMjAwKTsKKyAgICAgICAgCisgICAgICAgIGZUZXh0UGFuZWwgPSB0ZXh0UGFuZWw7CisgICAgICAgIGZLZXkgPSBrZXk7CisgICAgICAgIGZDaGFyYWN0ZXIgPSBjaGFyYWN0ZXI7CisgICAgICAgIAorICAgICAgICBmSXRlbXMgPSBuZXcgSkxpc3QobmFtZXMpOworICAgICAgICBmSXRlbXMuc2V0U2VsZWN0aW9uTW9kZShMaXN0U2VsZWN0aW9uTW9kZWwuTVVMVElQTEVfSU5URVJWQUxfU0VMRUNUSU9OKTsKKyAgICAgICAgCisgICAgICAgIGZJdGVtcy5hZGRNb3VzZUxpc3RlbmVyKG5ldyBNb3VzZUFkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBtb3VzZUNsaWNrZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgaWYgKGUuZ2V0Q2xpY2tDb3VudCgpID09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgY2xvc2VXaW5kb3codHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIEpTY3JvbGxQYW5lIGxpc3RTY3JvbGxlciA9IG5ldyBKU2Nyb2xsUGFuZShmSXRlbXMpOworICAgICAgICBsaXN0U2Nyb2xsZXIuc2V0UHJlZmVycmVkU2l6ZShzaXplKTsKKyAgICAgICAgbGlzdFNjcm9sbGVyLnNldFByZWZlcnJlZFNpemUoc2l6ZSk7CisgICAgICAgIGxpc3RTY3JvbGxlci5zZXRBbGlnbm1lbnRYKExFRlRfQUxJR05NRU5UKTsKKworICAgICAgICBKTGFiZWwgbGFiZWwgPSBuZXcgSkxhYmVsKG1lc3NhZ2UpOworICAgICAgICBsYWJlbC5zZXRMYWJlbEZvcihmSXRlbXMpOworICAgICAgICAKKyAgICAgICAgSlBhbmVsIGl0ZW1QYW5lbCA9IG5ldyBKUGFuZWwoKTsKKyAgICAgICAgaXRlbVBhbmVsLmFkZChsYWJlbCk7CisgICAgICAgIGl0ZW1QYW5lbC5hZGQoQm94LmNyZWF0ZVJpZ2lkQXJlYShuZXcgRGltZW5zaW9uKDAsNSkpKTsKKyAgICAgICAgaXRlbVBhbmVsLmFkZChsaXN0U2Nyb2xsZXIpOworICAgICAgICBpdGVtUGFuZWwuc2V0Qm9yZGVyKEJvcmRlckZhY3RvcnkuY3JlYXRlRW1wdHlCb3JkZXIoMTAsMTAsMTAsMTApKTsKKyAgICAgICAgCisgICAgICAgIGl0ZW1QYW5lbC5zZXRMYXlvdXQobmV3IEJveExheW91dChpdGVtUGFuZWwsIEJveExheW91dC5ZX0FYSVMpKTsKKyAgICAgICAgCisgICAgICAgIGZDYW5jZWxCdXR0b24gPSBuZXcgSkJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkNBTkNFTCkpOworICAgICAgICBmT0tCdXR0b24gPSBuZXcgSkJ1dHRvbihSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLk9LKSk7CisgICAgICAgIAorICAgICAgICBKUGFuZWwgYnV0dG9uUGFuZWwgPSBuZXcgSlBhbmVsKCk7CisgICAgICAgIGJ1dHRvblBhbmVsLnNldExheW91dChuZXcgRmxvd0xheW91dChGbG93TGF5b3V0LkNFTlRFUiwgNSwgNSkpOworICAgICAgICBidXR0b25QYW5lbC5hZGQoZkNhbmNlbEJ1dHRvbik7CisgICAgICAgIGJ1dHRvblBhbmVsLmFkZChmT0tCdXR0b24pOworICAgICAgICAKKyAgICAgICAgQ29udGFpbmVyIGNvbnRlbnQgPSBnZXRDb250ZW50UGFuZSgpOworICAgICAgICBjb250ZW50LmFkZChpdGVtUGFuZWwsIEJvcmRlckxheW91dC5DRU5URVIpOworICAgICAgICBjb250ZW50LmFkZChidXR0b25QYW5lbCwgQm9yZGVyTGF5b3V0LlNPVVRIKTsKKworICAgICAgICBwYWNrKCk7CisKKyAgICAgICAgYWRkV2luZG93TGlzdGVuZXIobmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBjbG9zZVdpbmRvdyhmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICAKKyAgICAgICAgQWN0aW9uTGlzdGVuZXIgbGlzdGVuZXIgPSBuZXcgQWN0aW9uTGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgT2JqZWN0IHNvdXJjZSA9IGUuZ2V0U291cmNlKCk7CisgICAgICAgICAgICAgICAgaWYgKHNvdXJjZSA9PSBmT0tCdXR0b24pIHsKKyAgICAgICAgICAgICAgICAgICAgY2xvc2VXaW5kb3codHJ1ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmQ2FuY2VsQnV0dG9uKSB7CisgICAgICAgICAgICAgICAgICAgIGNsb3NlV2luZG93KGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmT0tCdXR0b24uYWRkQWN0aW9uTGlzdGVuZXIobGlzdGVuZXIpOworICAgICAgICBmQ2FuY2VsQnV0dG9uLmFkZEFjdGlvbkxpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICAgICAgCisgICAgICAgIHNlbGVjdFN0eWxlcyh2YWx1ZXMpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgc2V0dXBNYXAoU3RyaW5nW10gbmFtZXMsIE9iamVjdFtdIHZhbHVlcykgeworICAgIAorICAgICAgICBpZiAobmFtZXMubGVuZ3RoICE9IHZhbHVlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIk11c3QgaGF2ZSBzYW1lIG51bWJlciBvZiBuYW1lcyBhbmQgdmFsdWVzLiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTmFtZVRvVmFsdWVNYXAgPSBuZXcgSGFzaHRhYmxlKG5hbWVzLmxlbmd0aCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBuYW1lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKHZhbHVlc1tpXSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZk5hbWVUb1ZhbHVlTWFwLnB1dChuYW1lc1tpXSwgdmFsdWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGNsb3NlV2luZG93KGJvb2xlYW4gc2VuZEFjdGlvbikgeworCisgICAgICAgIHNldFZpc2libGUoZmFsc2UpOworICAgICAgICAKKyAgICAgICAgaWYgKHNlbmRBY3Rpb24gJiYgZkl0ZW1zLmdldE1pblNlbGVjdGlvbkluZGV4KCkgIT0gZkl0ZW1zLmdldE1heFNlbGVjdGlvbkluZGV4KCkpIHsKKyAgICAgICAgICAgIHNlbmRBY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHNlbmRBY3Rpb24pIHsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IGZOYW1lVG9WYWx1ZU1hcC5nZXQoZkl0ZW1zLmdldFNlbGVjdGVkVmFsdWUoKSk7CisgICAgICAgICAgICBzZW5kQWN0aW9uKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBkaXNwb3NlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBIYW5kbGUgdGhlIHVzZXIgaW5wdXQKKyAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgb2JqZWN0CisgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2VuZEFjdGlvbihPYmplY3QgdmFsdWUpIHsKKworICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyOworICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkgeworICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKGZLZXksIHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZVNldCBzZXQgPSBuZXcgQXR0cmlidXRlU2V0KGZLZXkpOworICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlbW92ZU1vZGlmaWVyKHNldCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBNZW51SXRlbVNldC5DSEFSQUNURVIpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwubW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLm1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBzZWxlY3RWYWx1ZShPYmplY3QgdmFsdWUsIE9iamVjdFtdIHZhbHVlcykgeworICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgCisgICAgICAgICAgICBpZiAoKHZhbHVlICE9IG51bGwgJiYgdmFsdWUuZXF1YWxzKHZhbHVlc1tpXSkpIHx8ICh2YWx1ZSA9PSBudWxsICYmIHZhbHVlc1tpXSA9PSBudWxsKSkgeworICAgICAgICAgICAgICAgIGZJdGVtcy5hZGRTZWxlY3Rpb25JbnRlcnZhbChpLCBpKTsKKyAgICAgICAgICAgICAgICBmSXRlbXMuZW5zdXJlSW5kZXhJc1Zpc2libGUoaSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBzZWxlY3RTdHlsZXMoT2JqZWN0W10gdmFsdWVzKSB7CisgICAgCisgICAgICAgIE9iamVjdCB2YWx1ZTsKKyAKKyAgICAgICAgaWYgKGZDaGFyYWN0ZXIpIHsKKyAgICAgICAgICAgIHZhbHVlID0gZlRleHRQYW5lbC5nZXRDaGFyYWN0ZXJTdHlsZU92ZXJTZWxlY3Rpb24oZktleSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB2YWx1ZSA9IGZUZXh0UGFuZWwuZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKGZLZXkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodmFsdWUgIT0gTVRleHRQYW5lbC5NVUxUSVBMRV9WQUxVRVMpIHsKKyAgICAgICAgICAgIHNlbGVjdFZhbHVlKHZhbHVlLCB2YWx1ZXMpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZk9LQnV0dG9uLnNldEVuYWJsZWQoZmFsc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgc2VsTGltaXQgPSBmVGV4dFBhbmVsLmdldFNlbGVjdGlvbkVuZCgpOworICAgICAgICAgICAgTUNvbnN0VGV4dCB0ZXh0ID0gZlRleHRQYW5lbC5nZXRUZXh0KCk7CisgICAgICAgICAgICBmb3IgKGludCBydW5TdGFydCA9IGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKTsgcnVuU3RhcnQgPD0gc2VsTGltaXQ7CisgICAgICAgICAgICAgICAgICAgIHJ1blN0YXJ0ID0gZkNoYXJhY3Rlcj8gdGV4dC5jaGFyYWN0ZXJTdHlsZUxpbWl0KHJ1blN0YXJ0KSA6IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQucGFyYWdyYXBoTGltaXQocnVuU3RhcnQpKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBPYmplY3QgcnVuVmFsOworICAgICAgICAgICAgICAgIGlmIChmQ2hhcmFjdGVyKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1blZhbCA9IHRleHQuY2hhcmFjdGVyU3R5bGVBdChydW5TdGFydCkuZ2V0KGZLZXkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcnVuVmFsID0gdGV4dC5wYXJhZ3JhcGhTdHlsZUF0KHJ1blN0YXJ0KS5nZXQoZktleSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChydW5WYWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBydW5WYWwgPSBmVGV4dFBhbmVsLmdldERlZmF1bHRWYWx1ZXMoKS5nZXQoZktleSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNlbGVjdFZhbHVlKHJ1blZhbCwgdmFsdWVzKTsKKyAgICAgICAgICAgICAgICBpZiAocnVuU3RhcnQgPT0gdGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZJdGVtcy5hZGRMaXN0U2VsZWN0aW9uTGlzdGVuZXIobmV3IExpc3RTZWxlY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHZhbHVlQ2hhbmdlZChMaXN0U2VsZWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgIGZJdGVtcy5zZXRTZWxlY3Rpb25Nb2RlKExpc3RTZWxlY3Rpb25Nb2RlbC5TSU5HTEVfU0VMRUNUSU9OKTsKKyAgICAgICAgICAgICAgICBmT0tCdXR0b24uc2V0RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgICAgICBmSXRlbXMucmVtb3ZlTGlzdFNlbGVjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL0pUYWJSdWxlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KVGFiUnVsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44OTgyODAzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KVGFiUnVsZXIuamF2YQpAQCAtMCwwICsxLDEzMiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworCitpbXBvcnQgamF2YXguc3dpbmcuSkNvbXBvbmVudDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UYWJSdWxlcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLlRhYlJ1bGVySW1wbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLk1UYWJSdWxlckNvbXBvbmVudDsKKworLyoqCisgKiBKVGFiUnVsZXIgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgTVRhYlJ1bGVyQ29tcG9uZW50IGluIGEgU3dpbmcgY29tcG9uZW50LgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgSlRhYlJ1bGVyIGV4dGVuZHMgSkNvbXBvbmVudCBpbXBsZW1lbnRzIE1UYWJSdWxlckNvbXBvbmVudCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIFRhYlJ1bGVySW1wbCBmSW1wbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgVGFiUnVsZXIuCisgICAgICogQHBhcmFtIGJhc2VsaW5lIHRoZSB5LWNvb3JkaW5hdGUgb2YgdGhlIHJ1bGVyJ3MgYmFzZWxpbmUKKyAgICAgKiBAcGFyYW0gb3JpZ2luIHRoZSB4LWNvb3JkaW5hdGUgaW4gdGhpcyBDb21wb25lbnQgd2hlcmUKKyAgICAgKiAgICAgdGhlIGxlZnQgbWFyZ2luIGFwcGVhcnMKKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHRvIGxpc3RlbiB0by4gIFRoaXMgVGFiUnVsZXIKKyAgICAgKiAgICAgd2lsbCByZWZsZWN0IHRoZSBNVGV4dFBhbmVsJ3MgcGFyYWdyYXBoIHN0eWxlcywgYW5kIHVwZGF0ZQorICAgICAqICAgICB0aGUgcGFyYWdyYXBoIHN0eWxlcyB3aGVuIG1hbmlwdWxhdGVkLgorICAgICAqLworICAgIHB1YmxpYyBKVGFiUnVsZXIoaW50IGJhc2VsaW5lLCBpbnQgb3JpZ2luLCBNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworICAgICAgICAKKyAgICAgICAgZkltcGwgPSBuZXcgVGFiUnVsZXJJbXBsKGJhc2VsaW5lLCBvcmlnaW4sIHRleHRQYW5lbCwgdGhpcyk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIExpc3RlbiB0byB0aGUgZ2l2ZW4gTVRleHRQYW5lbCBhbmQgcmVmbGVjdCBpdHMgY2hhbmdlcywKKyAgICAgKiBhbmQgdXBkYXRlIGl0cyBwYXJhZ3JhcGggc3R5bGVzIHdoZW4gVGFiUnVsZXIgaXMKKyAgICAgKiBtYW5pcHVsYXRlZC4KKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHRvIGxpc3RlbiB0bworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGxpc3RlblRvVGV4dFBhbmVsKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisKKyAgICAgICAgZkltcGwubGlzdGVuVG9UZXh0UGFuZWwodGV4dFBhbmVsKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIENvbG9yIGdldEJhY2tDb2xvcigpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0QmFja0NvbG9yKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFNldCB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEBwYXJhbSBiYWNrQ29sb3IgdGhlIG5ldyBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRCYWNrQ29sb3IoQ29sb3IgYmFja0NvbG9yKSB7CisKKyAgICAgICAgZkltcGwuc2V0QmFja0NvbG9yKGJhY2tDb2xvcik7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgTVRhYlJ1bGVyIHJlcHJlc2VudGVkIGJ5IHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgTVRhYlJ1bGVyIHJlcHJlc2VudGVkIGJ5IHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgTVRhYlJ1bGVyIGdldFJ1bGVyKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFJ1bGVyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsZWFkaW5nIG1hcmdpbiBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGxlYWRpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldExlYWRpbmdNYXJnaW4oKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0TGVhZGluZ01hcmdpbigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZmlyc3QgbGluZSBpbmRlbnQgb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBsaW5lIGluZGVudCBvZiB0aGlzIFRhYlJ1bGVyCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGaXJzdExpbmVJbmRlbnQoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0Rmlyc3RMaW5lSW5kZW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0cmFpbGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSB0cmFpbGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0VHJhaWxpbmdNYXJnaW4oKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0VHJhaWxpbmdNYXJnaW4oKTsKKyAgICB9CisgICAgCisgICAgLy8gVGhlIGZvbGxvd2luZyBhcmUgQ29tcG9uZW50IG1ldGhvZHMgd2hpY2ggbmVlZCB0byBiZSBkZWxlZ2F0ZWQgdG8KKyAgICAvLyB0aGUgaW1wbGVtZW50YXRpb246CisgICAgCisgICAgcHVibGljIHZvaWQgcGFpbnQoR3JhcGhpY3MgZykgeworICAgICAgICAKKyAgICAgICAgZkltcGwucGFpbnQoZyk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0UHJlZmVycmVkU2l6ZSgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRQcmVmZXJyZWRTaXplKCk7CisgICAgfQorCisgICAgcHVibGljIERpbWVuc2lvbiBnZXRNaW5pbXVtU2l6ZSgpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRNaW5pbXVtU2l6ZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSlRleHRGcmFtZS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9KVGV4dEZyYW1lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGEzYThkMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvSlRleHRGcmFtZS5qYXZhCkBAIC0wLDAgKzEsMTQxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN3aW5ndWk7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLkpUZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKK2ltcG9ydCBqYXZhLmF3dC5Cb3JkZXJMYXlvdXQ7CitpbXBvcnQgamF2YS5hd3QuVG9vbGtpdDsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpGcmFtZTsKK2ltcG9ydCBqYXZheC5zd2luZy5KTWVudUJhcjsKK2ltcG9ydCBqYXZheC5zd2luZy5VSU1hbmFnZXI7CisKK2ltcG9ydCBqYXZhLmF3dC5Db250YWluZXI7CisKKy8qKgorICogSlRleHRGcmFtZSBpcyBhIEpGcmFtZSBjb250YWluaW5nIGFuIGVkaXRhYmxlIEpUZXh0UGFuZWwsIGEgc2V0IG9mIHN0YW5kYXJkCisgKiBtZW51cywgYW5kIGEgSlRhYlJ1bGVyLiAgVGhpcyBjbGFzcyBjYW4gYmUgdXNlZCBhcy1pcywgYnV0IGlzCisgKiBwcmltYXJpbHkgaW50ZW5kZWQgdG8gYmUgYSBzaW1wbGUgZXhhbXBsZSBvZiBob3cgdG8gdXNlIHRoZSBvdGhlciBjbGFzc2VzCisgKiBpbiB0aGlzIHBhY2thZ2UuCisgKiBAc2VlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLkpUZXh0UGFuZWwKKyAqIEBzZWUgU3dpbmdNZW51QnVpbGRlcgorICogQHNlZSBKVGFiUnVsZXIKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEpUZXh0RnJhbWUgZXh0ZW5kcyBKRnJhbWUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIEpUZXh0UGFuZWwgZlRleHRQYW5lbDsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBKVGV4dEZyYW1lIHdpdGggbm8gdGV4dCwgbm8gdGl0bGUsIAorICAgICAqIGFuZCBhIHByaXZhdGUgY2xpcGJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyBKVGV4dEZyYW1lKCkgeworICAgICAgICAKKyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgaW5pdChudWxsLCBUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCkpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgSlRleHRGcmFtZSB3aXRoIG5vIHRleHQgYW5kIHRoZSBnaXZlbiB0aXRsZS4KKyAgICAgKiBUaGUgSlRleHRQYW5lbCB3aWxsIHVzZSBhIHByaXZhdGUgY2xpcGJvYXJkLgorICAgICAqIEBwYXJhbSB0aXRsZSB0aGUgdGl0bGUgb2YgdGhpcyBGcmFtZQorICAgICAqLworICAgIHB1YmxpYyBKVGV4dEZyYW1lKFN0cmluZyB0aXRsZSkgeworICAgICAgICAKKyAgICAgICAgc3VwZXIodGl0bGUpOworICAgICAgICBpbml0KG51bGwsIFRvb2xraXQuZ2V0RGVmYXVsdFRvb2xraXQoKS5nZXRTeXN0ZW1DbGlwYm9hcmQoKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBKVGV4dEZyYW1lIHdpdGggdGhlIGdpdmVuIHRleHQgYW5kIHRpdGxlLCB3aG9zZQorICAgICAqIFRleHRQYW5lbCB3aWxsIHVzZSB0aGUgZ2l2ZW4gY2xpcGJvYXJkLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSBpbml0aWFsIHRleHQgaW4gdGhlIFRleHRQYW5lbC4gIElmIG51bGwgdGhlCisgICAgICogICAgICBUZXh0UGFuZWwgd2lsbCBpbml0aWFsbHkgYmUgZW1wdHkKKyAgICAgKiBAcGFyYW0gdGl0bGUgdGhlIHRpdGxlIG9mIHRoaXMgRnJhbWUKKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBDbGlwYm9hcmQgd2hpY2ggdGhlIFRleHRQYW5lbCB3aWxsIHVzZS4KKyAgICAgKiAgICAgIElmIG51bGwgdGhlIFRleHRQYW5lbCB3aWxsIHVzZSBhIHByaXZhdGUgQ2xpcGJvYXJkCisgICAgICovCisgICAgcHVibGljIEpUZXh0RnJhbWUoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRpdGxlLAorICAgICAgICAgICAgICAgICAgICAgQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworCisgICAgICAgIHN1cGVyKHRpdGxlKTsKKyAgICAgICAgaW5pdCh0ZXh0LCBjbGlwYm9hcmQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBpbml0KE1Db25zdFRleHQgdGV4dCwgQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworICAgICAgICAKKyAgICAgICAgZlRleHRQYW5lbCA9IG5ldyBKVGV4dFBhbmVsKHRleHQsIGNsaXBib2FyZCk7CisKKyAgICAgICAgSlRhYlJ1bGVyIHRhYlJ1bGVyID0gbmV3IEpUYWJSdWxlcigxNCwgMTAsIGZUZXh0UGFuZWwpOworCisgICAgICAgIGNyZWF0ZU1lbnVzKCk7CisKKyAgICAgICAgQ29udGFpbmVyIGNvbnRlbnRQYW5lID0gZ2V0Q29udGVudFBhbmUoKTsKKyAgICAgICAgY29udGVudFBhbmUuc2V0TGF5b3V0KG5ldyBCb3JkZXJMYXlvdXQoKSk7CisgICAgICAgIGNvbnRlbnRQYW5lLmFkZChmVGV4dFBhbmVsLCAiQ2VudGVyIik7CisgICAgICAgIGNvbnRlbnRQYW5lLmFkZCh0YWJSdWxlciwgIk5vcnRoIik7CisgICAgICAgIHBhY2soKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlTWVudXMoKSB7CisKKyAgICAgICAgSk1lbnVCYXIgbWVudUJhciA9IG5ldyBKTWVudUJhcigpOworCisgICAgICAgIFN3aW5nTWVudUJ1aWxkZXIuZ2V0SW5zdGFuY2UoKS5jcmVhdGVNZW51cyhtZW51QmFyLCBmVGV4dFBhbmVsLCB0aGlzKTsKKyAgICAgICAgCisgICAgICAgIHNldEpNZW51QmFyKG1lbnVCYXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgTVRleHRQYW5lbCBpbiB0aGlzIGZyYW1lLgorICAgICAqLworICAgIHB1YmxpYyBNVGV4dFBhbmVsIGdldFRleHRQYW5lbCgpIHsKKworICAgICAgICByZXR1cm4gZlRleHRQYW5lbDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICAKKyAgICAgICAgU3RyaW5nIGxhZiA9IFVJTWFuYWdlci5nZXRTeXN0ZW1Mb29rQW5kRmVlbENsYXNzTmFtZSgpOworICAgICAgICBpZiAoYXJncy5sZW5ndGggPT0gMSkgeworICAgICAgICAgICAgaWYgKGFyZ3NbMF0uZXF1YWxzKCJjcCIpKSB7CisgICAgICAgICAgICAgICAgbGFmID0gVUlNYW5hZ2VyLmdldENyb3NzUGxhdGZvcm1Mb29rQW5kRmVlbENsYXNzTmFtZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVSU1hbmFnZXIuc2V0TG9va0FuZEZlZWwobGFmKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChUaHJvd2FibGUgdGgpIHsKKyAgICAgICAgICAgIHRoLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgICAgIEpUZXh0RnJhbWUgZnJhbWUgPSBuZXcgSlRleHRGcmFtZSgpOworICAgICAgICBmcmFtZS5hZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgZnJhbWUuc2V0U2l6ZSg1NTAsIDcwMCk7CisgICAgICAgIGZyYW1lLnNob3coKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL1N3aW5nTWVudUJ1aWxkZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvU3dpbmdNZW51QnVpbGRlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNkMTljODEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL1N3aW5nTWVudUJ1aWxkZXIuamF2YQpAQCAtMCwwICsxLDIzNCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC5zd2luZ3VpOworCitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuV2luZG93OworCitpbXBvcnQgamF2YXguc3dpbmcuSk1lbnU7CitpbXBvcnQgamF2YXguc3dpbmcuSk1lbnVCYXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLkZyYW1lUmVzb3VyY2VzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwuKjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5EaWFsb2dJdGVtLkRpYWxvZ0ZhY3Rvcnk7CisKKy8qKgorICogU3dpbmdNZW51QnVpbGRlciBwcm92aWRlcyBhIG1ldGhvZCBmb3IgY3JlYXRpbmcgYSBzZXQgb2YgU3dpbmcgbWVudXMgZm9yIGludGVyYWN0aW5nCisgKiB3aXRoIGFuIE1UZXh0UGFuZWwuICBGdXR1cmUgdmVyc2lvbnMgb2YgdGhpcyBjbGFzcyBtYXkgcHJvdmlkZSBncmVhdGVyIGNvbnRyb2wKKyAqIG92ZXIgdGhlIG1lbnUgY29udGVudHMuCisgKiBAc2VlIE1UZXh0UGFuZWwKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFN3aW5nTWVudUJ1aWxkZXIgZXh0ZW5kcyBNZW51QnVpbGRlciB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTd2luZ01lbnVCdWlsZGVyIElOU1RBTkNFID0gbmV3IFN3aW5nTWVudUJ1aWxkZXIoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBJZCBmb3IgYW4gRWRpdCBtZW51LiAgVGhlIEVkaXQgbWVudSBoYXMgdGhlIGZvbGxvd2luZyBpdGVtczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPlVuZG88L2I+IC0gaW52b2tlIHVuZG8oKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPGxpPjxiPlJlZG88L2I+IC0gaW52b2tlIHJlZG8oKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPGxpPjxiPkN1dDwvYj4gLSBpbnZva2UgY3V0KCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5Db3B5PC9iPiAtIGludm9rZSBjb3B5KCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDxsaT48Yj5QYXN0ZTwvYj4gLSBpbnZva2UgcGFzdGUoKSBvbiB0aGUgTVRleHRQYW5lbDwvbGk+CisgICAgICogPGxpPjxiPkNsZWFyPC9iPiAtIGludm9rZSBjbGVhcigpIG9uIHRoZSBNVGV4dFBhbmVsPC9saT4KKyAgICAgKiA8bGk+PGI+U2VsZWN0IEFsbDwvYj4gLSBpbnZva2Ugc2VsZWN0QWxsKCkgb24gdGhlIE1UZXh0UGFuZWw8L2xpPgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRURJVCA9IE1lbnVCdWlsZGVyLkVESVQ7CisgICAgLyoqCisgICAgICogSWQgZm9yIHRoZSBwb2ludCBzaXplcyBtZW51LiAgVGhlIG1lbnUgaGFzIGl0ZW1zIHRoYXQgc2V0IHRoZSBzaXplIG9mIGEgY2hhcmFjdGVyCisgICAgICogaW4gYSB0eXBlZmFjZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTSVpFID0gTWVudUJ1aWxkZXIuU0laRTsKKyAgICAvKioKKyAgICAgKiBJZCBmb3IgYSBTdHlsZSBtZW51LiAgVGhlIFN0eWxlIG1lbnUgaGFzIHRoZSBmb2xsb3dpbmcgaXRlbXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj5QbGFpbjwvYj4gLSByZW1vdmUgPGNvZGU+V0VJR0hUPC9jb2RlPiwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgPGNvZGU+UE9TVFVSRTwvY29kZT4sCisgICAgICogICAgICAgICAgICAgICAgICAgIDxjb2RlPlVOREVSTElORTwvY29kZT4gYW5kCisgICAgICogICAgICAgICAgICAgICAgICAgIDxjb2RlPlNUUklLRVRIUk9VR0g8L2NvZGU+IGF0dHJpYnV0ZXMgZnJvbSB0aGUKKyAgICAgKiBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPkJvbGQ8L2I+IC0gYWRkIDxjb2RlPntXRUlHSFQsV0VJR0hUX0JPTER9PC9jb2RlPiB0bworICAgICAqIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPkl0YWxpYzwvYj4gLSBhZGQgPGNvZGU+e1BPU1RVUkUsUE9TVFVSRV9JVEFMSUN9PC9jb2RlPiB0bworICAgICAqIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPlVuZGVybGluZTwvYj4gLSBhZGQgPGNvZGU+e1VOREVSTElORSxVTkRFUkxJTkVfT059PC9jb2RlPiB0bworICAgICAqIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPlN0cmlrZXRocm91Z2g8L2I+IC0gYWRkIDxjb2RlPntTVFJJS0VUSFJPVUdILFNUUklLRVRIUk9VR0hfT059PC9jb2RlPgorICAgICAqIHRvIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPkZvbnQuLi48L2I+IC0gZGlzcGxheSBhIGRpYWxvZyBhbGxvd2luZyB0aGUgdXNlciB0bworICAgICAqIHNlbGVjdCBhIHR5cGVmYWNlIChmb250IGZhbWlseSkgZm9yIHRoZSBjdXJyZW50IHNlbGVjdGlvbjwvbGk+CisgICAgICogPGxpPjxiPkZvcmVjb2xvci4uLjwvYj4gLSBkaXNwbGF5IGEgZGlhbG9nIGFsbG93aW5nIHRoZSB1c2VyIHRvCisgICAgICogc2VsZWN0IGEgZm9yZWdyb3VuZCBjb2xvciBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uPC9saT4KKyAgICAgKiA8bGk+PGI+QmFja2NvbG9yLi4uPC9iPiAtIGRpc3BsYXkgYSBkaWFsb2cgYWxsb3dpbmcgdGhlIHVzZXIgdG8KKyAgICAgKiBzZWxlY3QgYSBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgY3VycmVudCBzZWxlY3Rpb248L2xpPgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU1RZTEUgPSBNZW51QnVpbGRlci5TVFlMRTsKKyAgICAvKioKKyAgICAgKiBJZCBmb3IgYSBwYXJhZ3JhcGggYWxpZ25tZW50IG1lbnUuICBUaGUgbWVudSBoYXMgdGhlIGZvbGxvd2luZyBpdGVtczoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxiPkxlYWRpbmc8L2I+IC0gZ2l2ZSBzZWxlY3RlZCBwYXJhZ3JhcGgocykgTEVBRElORyBmbHVzaDwvbGk+CisgICAgICogPGxpPjxiPkNlbnRlcjwvYj4gLSBnaXZlIHNlbGVjdGVkIHBhcmFncmFwaChzKSBDRU5URVIgZmx1c2g8L2xpPgorICAgICAqIDxsaT48Yj5UcmFpbGluZzwvYj4gLSBnaXZlIHNlbGVjdGVkIHBhcmFncmFwaChzKSBUUkFJTElORyBmbHVzaDwvbGk+CisgICAgICogPGxpPjxiPkp1c3RpZmllZDwvYj4gLSBnaXZlIHNlbGVjdGVkIHBhcmFncmFwaChzKSBmdWxsIGp1c3RpZmljYXRpb248L2xpPgorICAgICAqIDwvdWw+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRkxVU0ggPSBNZW51QnVpbGRlci5GTFVTSDsKKyAgICAvKioKKyAgICAgKiBJZCBmb3IgYSBtZW51IHRoYXQgc2V0cyB0aGUgS2V5UmVtYXAKKyAgICAgKiBvbiBhbiBNVGV4dFBhbmVsLiAgVGhlIG1lbnUgaGFzIHRoZSBmb2xsb3dpbmcgaXRlbXM6CisgICAgICogPHVsPgorICAgICAqIDxsaT48Yj5EZWZhdWx0PC9iPiAtIHNldCBLZXlSZW1hcCB0byBpZGVudGl0eSByZW1hcDwvbGk+CisgICAgICogPGxpPjxiPkFyYWJpYzwvYj4gLSBzZXQgS2V5UmVtYXAgdG8gQXJhYmljIHRyYW5zbGl0ZXJhdGlvbjwvbGk+CisgICAgICogPGxpPjxiPkhlYnJldzwvYj4gLSBzZXQgS2V5UmVtYXAgdG8gSGVicmV3IHRyYW5zbGl0ZXJhdGlvbjwvbGk+CisgICAgICogPGxpPjxiPklzcmFlbCBOaWt1ZDwvYj4gLSBzZXQgS2V5UmVtYXAgdG8gSXNyYWVsIE5pa3VkPC9saT4KKyAgICAgKiA8bGk+PGI+VGhhaSBLZXRtYW5lZTwvYj4gLSBzZXQgS2V5UmVtYXAgdG8gVGhhaSBLZXRtYW5lZTwvbGk+CisgICAgICogPC91bD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLRVlNQVAgPSBNZW51QnVpbGRlci5LRVlNQVA7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgbWVudSB0aGF0IHNldHMKKyAgICAgKiB0aGUgcHJpbWFyeSBydW4gZGlyZWN0aW9uIGZvciBhIHBhcmFncmFwaC4gIFJ1biBkaXJlY3Rpb24gY2FuIGJlIGxlZnQtdG8tcmlnaHQsCisgICAgICogcmlnaHQtdG8tbGVmdCwgb3IgY2FuIHVzZSB0aGUgZGVmYXVsdCBydW4gZGlyZWN0aW9uIGZyb20gdGhlIFVuaWNvZGUgYmlkaSBhbGdvcml0aG0uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQklESSA9IE1lbnVCdWlsZGVyLkJJREk7CisgICAgLyoqCisgICAgICogSWQgZm9yIGEgbWVudSB3aXRoIGFuIDxiPkFib3V0PC9iPiBpdGVtLiAgV2hlbiBzZWxlY3RlZCwgCisgICAgICogdGhlIGl0ZW0gZGlzcGxheXMgYSBGcmFtZSBjb250YWluaW5nIHNvbWUKKyAgICAgKiBzZWxmLXByb21vdGlvbmFsIHRleHQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQUJPVVQgPSBNZW51QnVpbGRlci5BQk9VVDsKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gaW5zdGFuY2Ugb2YgU3dpbmdNZW51QnVpbGRlci4KKyAgICAgKi8KKyAgICAgCisgICAgcHVibGljIHN0YXRpYyBTd2luZ01lbnVCdWlsZGVyIGdldEluc3RhbmNlKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIElOU1RBTkNFOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIEpNZW51QmFyIGZNZW51QmFyOworICAgIAorICAgIHByaXZhdGUgU3dpbmdNZW51QnVpbGRlcigpIHsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQWRkIGEgc3RhbmRhcmQgc2V0IG9mIG1lbnVzIHRvIHRoZSBnaXZlbiBtZW51IGJhci4gIFRoZSBtZW51cyAKKyAgICAgKiB3aWxsIGludGVyYWN0IHdpdGggdGhlIGdpdmVuIE1UZXh0UGFuZWwuCisgICAgICogQHBhcmFtIG1lbnVCYXIgdGhlIE1lbnVCYXIgdG8gd2hpY2ggbWVudXMgYXJlIGFkZGVkCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB3aXRoIHdoaWNoIHRoZSBtZW51cyBpbnRlcmFjdAorICAgICAqIEBwYXJhbSBmcmFtZSBhIEZyYW1lIHRvIHVzZSBhcyB0aGUgcGFyZW50IG9mIGFueSBkaWFsb2dzIGNyZWF0ZWQgYnkgYSAKKyAgICAgKiAgIGEgbWVudSBpdGVtLiAgSWYgbnVsbCwgbWVudSBpdGVtcyB3aGljaCBjcmVhdGUgZGlhbG9ncyB3aWxsIGJlIG9taXR0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY3JlYXRlTWVudXMoSk1lbnVCYXIgbWVudUJhciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUgZnJhbWUpIHsKKworICAgICAgICBjcmVhdGVNZW51cyhtZW51QmFyLCB0ZXh0UGFuZWwsIGZyYW1lLCBkZWZhdWx0TWVudXMpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgYSBzZXQgb2YgbWVudXMgdG8gdGhlIGdpdmVuIG1lbnUgYmFyLiAgVGhlIG1lbnVzIAorICAgICAqIHdpbGwgaW50ZXJhY3Qgd2l0aCB0aGUgZ2l2ZW4gTVRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbWVudUJhciB0aGUgTWVudUJhciB0byB3aGljaCBtZW51cyBhcmUgYWRkZWQKKyAgICAgKiBAcGFyYW0gdGV4dFBhbmVsIHRoZSBNVGV4dFBhbmVsIHdpdGggd2hpY2ggdGhlIG1lbnVzIGludGVyYWN0CisgICAgICogQHBhcmFtIGZyYW1lIGEgRnJhbWUgdG8gdXNlIGFzIHRoZSBwYXJlbnQgb2YgYW55IGRpYWxvZ3MgY3JlYXRlZCBieSBhIAorICAgICAqICAgYSBtZW51IGl0ZW0uICBJZiBudWxsLCBtZW51IGl0ZW1zIHdoaWNoIGNyZWF0ZSBkaWFsb2dzIHdpbGwgYmUgb21pdHRlZC4KKyAgICAgKiBAcGFyYW0gbWVudXMgYW4gYXJyYXkgb2YgaW50ZWdlciBtZW51IGlkJ3MuICBFYWNoIGVsZW1lbnQgb2YgdGhlCisgICAgICogICBhcnJheSBtdXN0IGJlIG9uZSBvZiB0aGlzIGNsYXNzJ3MgbWVudSBpZCBjb25zdGFudHMuICBJZiBudWxsLAorICAgICAqICAgdGhlIGRlZmF1bHQgbWVudXMgYXJlIGNyZWF0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY3JlYXRlTWVudXMoSk1lbnVCYXIgbWVudUJhciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBtZW51cykgeworICAgICAgICAKKyAgICAgICAgaWYgKG1lbnVzID09IG51bGwpIHsKKyAgICAgICAgICAgIG1lbnVzID0gZGVmYXVsdE1lbnVzOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzeW5jaHJvbml6ZWQgKE1JdGVtLkxPQ0spIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZk1lbnVCYXIgPSBtZW51QmFyOworICAgICAgICAgICAgZG9DcmVhdGVNZW51cyh0ZXh0UGFuZWwsIGZyYW1lLCBtZW51cyk7CisgICAgICAgICAgICBmTWVudUJhciA9IG51bGw7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgaGFuZGxlQWRkTWVudShTdHJpbmcga2V5KSB7CisgICAgICAgIAorICAgICAgICBKTWVudSBtZW51ID0gbmV3IEpNZW51KFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoa2V5KSk7CisgICAgICAgIGZNZW51QmFyLmFkZChtZW51KTsKKyAgICAgICAgTUl0ZW0uc2V0SXRlbUZhY3RvcnkobmV3IFN3aW5nTWVudUZhY3RvcnkobWVudSkpOworICAgIH0KKworICAgIHByb3RlY3RlZCBEaWFsb2dGYWN0b3J5IGNyZWF0ZU9iamVjdERpYWxvZ0ZhY3RvcnkoZmluYWwgU3RyaW5nIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGRpYWxvZ01lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgYm9vbGVhbiBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdbXSBuYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIE9iamVjdFtdIHZhbHVlcykgeworICAgICAgICAKKyAgICAgICAgZmluYWwgRnJhbWUgZGlhbG9nUGFyZW50ID0gZkRpYWxvZ1BhcmVudDsKKworICAgICAgICByZXR1cm4gbmV3IERpYWxvZ0ZhY3RvcnkoKSB7ICAgIAorICAgICAgICAgICAgcHVibGljIFdpbmRvdyBjcmVhdGVEaWFsb2coTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEpPYmplY3REaWFsb2coZGlhbG9nUGFyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ01lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIERpYWxvZ0ZhY3RvcnkgY3JlYXRlTnVtYmVyRGlhbG9nRmFjdG9yeShmaW5hbCBTdHJpbmcgZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcgZGlhbG9nTWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBib29sZWFuIGNoYXJhY3RlcikgeworICAgICAgICAKKyAgICAgICAgZmluYWwgRnJhbWUgZGlhbG9nUGFyZW50ID0gZkRpYWxvZ1BhcmVudDsKKyAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgZmluYWwgTVRleHRQYW5lbCB0ZXh0UGFuZWwgPSBmVGV4dFBhbmVsOworICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgRGlhbG9nRmFjdG9yeSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyBXaW5kb3cgY3JlYXRlRGlhbG9nKE1UZXh0UGFuZWwgZlRleHRQYW5lbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSk51bWJlckRpYWxvZyhkaWFsb2dQYXJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfSAgICAKKyAgICAKKyAgICBwcm90ZWN0ZWQgRGlhbG9nRmFjdG9yeSBjcmVhdGVBYm91dERpYWxvZ0ZhY3RvcnkoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IERpYWxvZ0ZhY3RvcnkoKSB7CisgICAgICAgICAgICBwdWJsaWMgV2luZG93IGNyZWF0ZURpYWxvZyhNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworICAgICAgICAgICAgICAgIFN0cmluZyB0aXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuQUJPVVRfVElUTEUpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgSk1lc3NhZ2VEaWFsb2codGl0bGUsIEFib3V0VGV4dC5nZXRBYm91dFRleHQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvU3dpbmdNZW51RmFjdG9yeS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9Td2luZ01lbnVGYWN0b3J5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2Q2MThlZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3N3aW5ndWkvU3dpbmdNZW51RmFjdG9yeS5qYXZhCkBAIC0wLDAgKzEsMTA1IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnN3aW5ndWk7CisKK2ltcG9ydCBqYXZhLmF3dC5FdmVudDsKKworaW1wb3J0IGphdmF4LnN3aW5nLkpDaGVja0JveE1lbnVJdGVtOworaW1wb3J0IGphdmF4LnN3aW5nLkpNZW51OworaW1wb3J0IGphdmF4LnN3aW5nLkpNZW51SXRlbTsKK2ltcG9ydCBqYXZheC5zd2luZy5KU2VwYXJhdG9yOworaW1wb3J0IGphdmF4LnN3aW5nLktleVN0cm9rZTsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLk1JdGVtOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLk1JdGVtLkl0ZW1GYWN0b3J5OworCitmaW5hbCBjbGFzcyBTd2luZ01lbnVGYWN0b3J5IGltcGxlbWVudHMgSXRlbUZhY3RvcnkgeworICAgICAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgZmluYWwgY2xhc3MgU3dpbmdNSXRlbSBleHRlbmRzIE1JdGVtIHsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgSk1lbnVJdGVtIGZJdGVtOworICAgICAgICAKKyAgICAgICAgU3dpbmdNSXRlbShKTWVudUl0ZW0gaXRlbSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmSXRlbSA9IGl0ZW07CisgICAgICAgICAgICBpdGVtLmFkZEFjdGlvbkxpc3RlbmVyKG5ldyBBY3Rpb25MaXN0ZW5lcigpIHsKKyAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZSkgeworICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVTZWxlY3RlZCgpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3VwZXIuaGFuZGxlU2VsZWN0ZWQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0RW5hYmxlZChib29sZWFuIGVuYWJsZWQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZkl0ZW0uc2V0RW5hYmxlZChlbmFibGVkKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgc2V0U3RhdGUoYm9vbGVhbiBjaGVja2VkKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgSkNoZWNrQm94TWVudUl0ZW0gaXRlbSA9IChKQ2hlY2tCb3hNZW51SXRlbSkgZkl0ZW07CisgICAgICAgICAgICAgICAgaXRlbS5zZXRTdGF0ZShjaGVja2VkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcGVyZm9ybSBzZXRDaGVja2VkIG9uIG5vbi1jaGVja2JveCBpdGVtIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBKTWVudSBmTWVudTsKKyAgICAgICAgCisgICAgU3dpbmdNZW51RmFjdG9yeShKTWVudSBtZW51KSB7CisgICAgICAgICAgICAKKyAgICAgICAgZk1lbnUgPSBtZW51OworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIE1JdGVtIGhhbmRsZUNyZWF0ZShKTWVudUl0ZW0gaXRlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51RGF0YSBtZW51RGF0YSkgeworCisgICAgICAgIGlmIChtZW51RGF0YS5oYXNTaG9ydGN1dCgpKSB7CisgICAgICAgICAgICBLZXlTdHJva2Uga3MgPSBLZXlTdHJva2UuZ2V0S2V5U3Ryb2tlKG1lbnVEYXRhLmdldFNob3J0Y3V0S2V5Q29kZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudC5DVFJMX01BU0spOworICAgICAgICAgICAgaXRlbS5zZXRBY2NlbGVyYXRvcihrcyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZNZW51LmFkZChpdGVtKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgU3dpbmdNSXRlbShpdGVtKTsKKyAgICB9CisgICAgICAgIAorICAgIHB1YmxpYyBNSXRlbSBjcmVhdGVJdGVtKE1lbnVEYXRhIG1lbnVEYXRhKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gaGFuZGxlQ3JlYXRlKG5ldyBKTWVudUl0ZW0obWVudURhdGEuZ2V0TmFtZSgpKSwgbWVudURhdGEpOworICAgIH0gICAgICAgIAorCisgICAgcHVibGljIE1JdGVtIGNyZWF0ZUNoZWNrYm94SXRlbShNZW51RGF0YSBtZW51RGF0YSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGhhbmRsZUNyZWF0ZShuZXcgSkNoZWNrQm94TWVudUl0ZW0obWVudURhdGEuZ2V0TmFtZSgpKSwgbWVudURhdGEpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgdm9pZCBjcmVhdGVTZXBhcmF0b3IoKSB7CisgICAgICAgIAorICAgICAgICBmTWVudS5hZGQobmV3IEpTZXBhcmF0b3IoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9yaWNodGV4dC9zd2luZ3VpL3BhY2thZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yY2U0MmVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvc3dpbmd1aS9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCEtLQorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAwLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCistLT4KKzxodG1sPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorUHJvdmlkZXMgY2xhc3NlcyBmb3IgYnVpbGRpbmcgYSBTd2luZy1iYXNlZCB1c2VyIGludGVyZmFjZSBmb3IgYSBUZXh0UGFuZWwuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L0RlY2xhcmF0aW9uLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L0RlY2xhcmF0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzE1ZmM1YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvRGVjbGFyYXRpb24uamF2YQpAQCAtMCwwICsxLDQyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3Q7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8qKgorICogVGhpcyBjbGFzcyBjb250YWlucyB0aGUgZmlyc3QgZm91ciBwYXJhZ3JhcGhzIG9mIHRoZSBEZWNsYXJhdGlvbgorICogb2YgSW5kZXBlbmRlbmNlLCBhcyBib3RoIHN0eWxlZCBhbmQgdW5zdHlsZWQgdGV4dC4gIFRoZSB2aWV3cworICogZXhwcmVzc2VkIHRoZXJlaW4gYXJlIG5vdCBuZWNlc3NhcmlseSB0aG9zZSBvZiB0aGUgcHJvZ3JhbW1lciBvciBvZgorICogaGlzL2hlciBlbXBsb3llci4gIE5vIGNyaXRpY2lzbSBvZiBhbnkgbW9uYXJjaHksIG9saWdhcmNoeSwgZGljdGF0b3JzaGlwLAorICogYXV0b2NyYWN5LCBwbHV0b2NyYWN5LCB0aGVvY3JhY3ksIGFuYXJjaGlzdCB0ZXJyaXRvcnksIGNvbG9uaWFsIHBvd2VyLAorICogb3IgYW55IG90aGVyIG5vbmRlbW9jcmF0aWMgZm9ybSBvZiBnb3Zlcm5tZW50IGlzIGludGVuZGVkLiAgVGhpcyBkb2N1bWVudAorICogaXMgcHJvdmlkZWQgImFzLWlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzZWQgb3IgaW1wbGllZC4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIERlY2xhcmF0aW9uIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmdEZWNsYXJhdGlvblN0ciA9ICJJbiBDb25ncmVzcywgSnVseSA0LCAxNzc2LCBUSEUgVU5BTklNT1VTIERFQ0xBUkFUSU9OIE9GIFRIRSBUSElSVEVFTiBVTklURUQgU1RBVEVTIE9GIEFNRVJJQ0FcbiIgKworICAgICAgICAiXG4iICsKKyAgICAgICAgIldoZW4gaW4gdGhlIENvdXJzZSBvZiBodW1hbiBFdmVudHMsIGl0IGJlY29tZXMgbmVjZXNzYXJ5IGZvciBvbmUgUGVvcGxlIHRvIGRpc3NvbHZlIHRoZSBQb2xpdGljYWwgQmFuZHMgd2hpY2ggaGF2ZSBjb25uZWN0ZWQgdGhlbSB3aXRoIGFub3RoZXIsIGFuZCB0byBhc3N1bWUgYW1vbmcgdGhlIFBvd2VycyBvZiB0aGUgRWFydGgsIHRoZSBzZXBhcmF0ZSBhbmQgZXF1YWwgU3RhdGlvbiB0byB3aGljaCB0aGUgTGF3cyBvZiBOYXR1cmUgYW5kIG9mIE5hdHVyZSdzIEdvZCBlbnRpdGxlIHRoZW0sIGEgZGVjZW50IFJlc3BlY3QgdG8gdGhlIE9waW5pb25zIG9mIE1hbmtpbmQgcmVxdWlyZXMgdGhhdCB0aGV5IHNob3VsZCBkZWNsYXJlIHRoZSBjYXVzZXMgd2hpY2ggaW1wZWwgdGhlbSB0byB0aGUgU2VwYXJhdGlvbi5cbiIgKworICAgICAgICAiXG4iICsKKyAgICAgICAgIldlIGhvbGQgdGhlc2UgVHJ1dGhzIHRvIGJlIHNlbGYtZXZpZGVudCwgdGhhdCBhbGwgTWVuIGFyZSBjcmVhdGVkIGVxdWFsLCB0aGF0IHRoZXkgYXJlIGVuZG93ZWQgYnkgdGhlaXIgQ3JlYXRvciB3aXRoIGNlcnRhaW4gdW5hbGllbmFibGUgUmlnaHRzLCB0aGF0IGFtb25nIHRoZXNlIGFyZSBMaWZlLCBMaWJlcnR5LCBhbmQgdGhlIFB1cnN1aXQgb2YgSGFwcGluZXNzLlxuIiArCisgICAgICAgICJcbiIgKworICAgICAgICAiVGhhdCB0byBzZWN1cmUgdGhlc2UgUmlnaHRzLCBHb3Zlcm5tZW50cyBhcmUgaW5zdGl0dXRlZCBhbW9uZyBNZW4sIGRlcml2aW5nIHRoZWlyIGp1c3QgUG93ZXJzIGZyb20gdGhlIENvbnNlbnQgb2YgdGhlIEdvdmVybmVkLCB0aGF0IHdoZW5ldmVyIGFueSBGb3JtIG9mIEdvdmVybm1lbnQgYmVjb21lcyBkZXN0cnVjdGl2ZSBvZiB0aGVzZSBFbmRzLCBpdCBpcyB0aGUgUmlnaHQgb2YgdGhlIFBlb3BsZSB0byBhbHRlciBvciB0byBhYm9saXNoIGl0LCBhbmQgdG8gaW5zdGl0dXRlIG5ldyBHb3Zlcm5tZW50LCBsYXlpbmcgaXRzIEZvdW5kYXRpb24gb24gc3VjaCBQcmluY2lwbGVzLCBhbmQgb3JnYW5pemluZyBpdHMgUG93ZXJzIGluIHN1Y2ggRm9ybSwgYXMgdG8gdGhlbSBzaGFsbCBzZWVtIG1vc3QgbGlrZWx5IHRvIGVmZmVjdCB0aGVpciBTYWZldHkgYW5kIEhhcHBpbmVzcy4gUHJ1ZGVuY2UsIGluZGVlZCwgd2lsbCBkaWN0YXRlIHRoYXQgR292ZXJubWVudHMgbG9uZyBlc3RhYmxpc2hlZCBzaG91bGQgbm90IGJlIGNoYW5nZWQgZm9yIGxpZ2h0IGFuZCB0cmFuc2llbnQgQ2F1c2VzOyBhbmQgYWNjb3JkaW5nbHkgYWxsIEV4cGVyaWVuY2UgaGF0aCBzaGV3biwgdGhhdCBNYW5raW5kIGFyZSBtb3JlIGRpc3Bvc2VkIHRvIHN1ZmZlciwgd2hpbGUgRXZpbHMgYXJlIHN1ZmZlcmFibGUsIHRoYW4gdG8gcmlnaHQgdGhlbXNlbHZlcyBieSBhYm9saXNoaW5nIHRoZSBGb3JtcyB0byB3aGljaCB0aGV5IGFyZSBhY2N1c3RvbWVkLiBCdXQgd2hlbiBhIGxvbmcgVHJhaW4gb2YgQWJ1c2VzIGFuZCBVc3VycGF0aW9ucywgcHVyc3VpbmcgaW52YXJpYWJseSB0aGUgc2FtZSBPYmplY3QsIGV2aW5jZXMgYSBEZXNpZ24gdG8gcmVkdWNlIHRoZW0gdW5kZXIgYWJzb2x1dGUgRGVzcG90aXNtLCBpdCBpcyB0aGVpciBSaWdodCwgaXQgaXMgdGhlaXIgRHV0eSwgdG8gdGhyb3cgb2ZmIHN1Y2ggR292ZXJubWVudCwgYW5kIHRvIHByb3ZpZGUgbmV3IEd1YXJkcyBmb3IgdGhlaXIgZnV0dXJlIFNlY3VyaXR5LlxuIiArCisgICAgICAgICJcbiI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE1Db25zdFRleHQgZmdEZWNsYXJhdGlvbiA9IG5ldyBTdHlsZWRUZXh0KGZnRGVjbGFyYXRpb25TdHIsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvSVRlc3RUZXh0UGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvSVRlc3RUZXh0UGFuZWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMzg2YjViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9JVGVzdFRleHRQYW5lbC5qYXZhCkBAIC0wLDAgKzEsMjExIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3Q7CisKK2ltcG9ydCBqYXZhLmF3dC5CdXR0b247CitpbXBvcnQgamF2YS5hd3QuRnJhbWU7CitpbXBvcnQgamF2YS5hd3QuR3JpZExheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkV2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFjdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKK2ltcG9ydCBqYXZhLnRleHQuRGF0ZUZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5hd3R1aS5UZXh0RnJhbWU7CisKK3B1YmxpYyBjbGFzcyBJVGVzdFRleHRQYW5lbCBleHRlbmRzIEZyYW1lIGltcGxlbWVudHMgQWN0aW9uTGlzdGVuZXIgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBsb25nIGZnT3BDb3VudCA9IDA7CisKKyAgICBwcml2YXRlIFRlc3RUZXh0UGFuZWwgZlRlc3Q7CisgICAgCisgICAgcHJpdmF0ZSBNVGV4dFBhbmVsIGZUZXh0UGFuZWw7CisgICAgcHJpdmF0ZSBGcmFtZSBmVGV4dEZyYW1lOworICAgIHByaXZhdGUgQ2xpcGJvYXJkIGZDbGlwYm9hcmQ7CisgICAgcHJpdmF0ZSBCdXR0b24gZkV4ZXJzaXplLCBmU3RyZXNzVGVzdCwgZlJlc2l6ZTsKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKworICAgICAgICBEYXRlIHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENsaXBib2FyZCBjbGlwYm9hcmQgPSBuZXcgQ2xpcGJvYXJkKCJJVGV4dFRlc3RQYW5lbCIpOworICAgICAgICAgICAgVGV4dEZyYW1lIGZyYW1lID0gbmV3IFRleHRGcmFtZShudWxsLCAiSW50ZXJhY3RpdmUgVGVzdCIsIGNsaXBib2FyZCk7CisgICAgICAgICAgICBNVGV4dFBhbmVsIHBhbmVsID0gZnJhbWUuZ2V0VGV4dFBhbmVsKCk7CisKKyAgICAgICAgICAgIG5ldyBJVGVzdFRleHRQYW5lbChwYW5lbCwgZnJhbWUsIGNsaXBib2FyZCkuc2hvdygpOworICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgRGF0ZUZvcm1hdCBkZiA9IERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdGFydCB0aW1lOiAiICsgZGYuZm9ybWF0KHN0YXJ0RGF0ZSkpOworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbmQgVGltZTogIiArIGRmLmZvcm1hdChuZXcgRGF0ZSgpKSk7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk9wIGNvdW50OiAiICsgZmdPcENvdW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBJVGVzdFRleHRQYW5lbChNVGV4dFBhbmVsIHBhbmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworCisgICAgICAgIGZUZXh0UGFuZWwgPSBwYW5lbDsKKyAgICAgICAgZlRlc3QgPSBuZXcgVGVzdFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgZkNsaXBib2FyZCA9IGNsaXBib2FyZDsKKworICAgICAgICBzZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMCwgMSkpOworCisgICAgICAgIGZUZXh0RnJhbWUgPSBmcmFtZTsKKyAgICAgICAgZlRleHRGcmFtZS5zZXRTaXplKDM1MCwgNTAwKTsKKyAgICAgICAgZlRleHRGcmFtZS5zaG93KCk7CisKKyAgICAgICAgLy8gaW5pdGlhbGl6ZSBVSToKKyAgICAgICAgZkV4ZXJzaXplID0gbmV3IEJ1dHRvbigiRXhlcmNpc2UiKTsKKyAgICAgICAgZkV4ZXJzaXplLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBhZGQoZkV4ZXJzaXplKTsKKworICAgICAgICBmU3RyZXNzVGVzdCA9IG5ldyBCdXR0b24oIlN0cmVzcyBUZXN0Iik7CisgICAgICAgIGZTdHJlc3NUZXN0LmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBhZGQoZlN0cmVzc1Rlc3QpOworCisgICAgICAgIHBhY2soKTsKKworICAgICAgICBhZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0FjdGl2YXRlZChXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgLy9hY3RpdmF0ZVRleHRGcmFtZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIHNldFNpemUoMjgwLCAxNTApOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBhY3RpdmF0ZVRleHRGcmFtZSgpIHsKKworICAgICAgICBmVGV4dEZyYW1lLnRvRnJvbnQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZlbnQgZXZlbnQpIHsKKworICAgICAgICBPYmplY3Qgc291cmNlID0gZXZlbnQuZ2V0U291cmNlKCk7CisgICAgICAgIGFjdGl2YXRlVGV4dEZyYW1lKCk7CisgICAgICAgIERhdGUgc3RhcnREYXRlID0gbmV3IERhdGUoKTsKKyAgICAgICAgYm9vbGVhbiBleGl0ZWROb3JtYWxseSA9IGZhbHNlOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoc291cmNlID09IGZFeGVyc2l6ZSkgeworICAgICAgICAgICAgICAgIGZUZXN0LmluY1JhbmRTZWVkKCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgMTAwOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0T3BlcmF0aW9uKGZUZXh0RnJhbWUsIGZDbGlwYm9hcmQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBmU3RyZXNzVGVzdCkgeworICAgICAgICAgICAgICAgIGZUZXN0LmluY1JhbmRTZWVkKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0T3BlcmF0aW9uKGZUZXh0RnJhbWUsIGZDbGlwYm9hcmQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV4aXRlZE5vcm1hbGx5ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgIGlmICghZXhpdGVkTm9ybWFsbHkpIHsKKyAgICAgICAgICAgICAgICBEYXRlRm9ybWF0IGRmID0gRGF0ZUZvcm1hdC5nZXREYXRlVGltZUluc3RhbmNlKCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdGFydCB0aW1lOiAiICsgZGYuZm9ybWF0KHN0YXJ0RGF0ZSkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW5kIFRpbWU6ICIgKyBkZi5mb3JtYXQobmV3IERhdGUoKSkpOworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmFuZCBzZWVkOiAiICsgZlRlc3QuZ2V0UmFuZFNlZWQoKSk7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJPcCBjb3VudDogIiArIGZnT3BDb3VudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgcmFuZG9tIG9wZXJhdGlvbiBvbiB0aGUgTVRleHRQYW5lbC4gIEZyYW1lIGNhbgorICAgICAqIGJlIG51bGwuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE9QX0NPVU5UID0gMTU7CisKKyAgICBwdWJsaWMgdm9pZCBzZWxlY3RPcGVyYXRpb24oRnJhbWUgZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsaXBib2FyZCBmQ2xpcGJvYXJkKSB7CisKKyAgICAgICAgaW50IG9wID0gZlRlc3QucmFuZEludChPUF9DT1VOVCk7CisKKyAgICAgICAgc3dpdGNoIChvcCkgeworCisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgZlRlc3QuX3Rlc3RTZXRTZWxlY3Rpb24oKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGZUZXN0Ll90ZXN0TW9kaWZpY2F0aW9ucyhUZXN0VGV4dFBhbmVsLk1PRF9URVhULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgZlRlc3QuX3Rlc3RFZGl0TWVudU9wZXJhdGlvbnMoZkNsaXBib2FyZCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICBmVGVzdC5fdGVzdE1vZEZsYWcoZlRleHRQYW5lbC5nZXRDb21tYW5kTG9nU2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgIGZUZXN0LmFwcGx5Q2hhcmFjdGVyU3R5bGUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgIGZUZXN0LmFwcGx5UGFyYWdyYXBoU3R5bGUoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAgICAgIGZUZXN0LnR5cGVLZXlzKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICAgICAgZlRlc3Quc2VsZWN0VGV4dCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDExOgorICAgICAgICAgICAgICAgIGZUZXN0LnVuZG9SZWRvKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICAgICAgLy9pZiAoZnJhbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIC8vICAgIGZUZXN0LnJlc2l6ZUZyYW1lKGZyYW1lKTsKKyAgICAgICAgICAgICAgICAvLyAgICBicmVhazsKKyAgICAgICAgICAgICAgICAvL30KKworICAgICAgICAgICAgY2FzZSAxMzoKKyAgICAgICAgICAgICAgICBmVGVzdC5hcHBseUtleVJlbWFwKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMTQ6CisgICAgICAgICAgICAgICAgZlRlc3QuX3Rlc3RDb21tYW5kTG9nQ29udHJvbCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiT1BfQ09VTlQgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgIH0KKyAgICAgICAgZmdPcENvdW50Kys7CisgICAgfQorCisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvVGVzdFRleHRQYW5lbC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9UZXN0VGV4dFBhbmVsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzdiNWI4OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvVGVzdFRleHRQYW5lbC5qYXZhCkBAIC0wLDAgKzEsODQyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3Q7CisKK2ltcG9ydCBqYXZhLnV0aWwuUmFuZG9tOworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworCitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZDsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkT3duZXI7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLlN0cmluZ1NlbGVjdGlvbjsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuVHJhbnNmZXJhYmxlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuS2V5UmVtYXA7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuS2V5RXZlbnRGb3J3YXJkZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsRXZlbnQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsTGlzdGVuZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZVNldDsKKworLy8gTm90ZTogIHRoaXMgdXNlZCB0byBiZSBhIFRlc3RGbXdrIHRlc3QuICBJZiB5b3UgYWRkCisvLyBtb3JlIHRlc3RzIHRvIGl0LCBiZSBzdXJlIHRvIGFkZCB0aGVtIHRvIAorLy8gY29tLmlibS5yaWNodGV4dC50ZXN0LnVuaXQuRm13a1Rlc3RUZXh0UGFuZWwudGVzdCgpIC0KKy8vIG90aGVyd2lzZSB0aGV5IHdvbid0IGdldCBydW4hCisKK3B1YmxpYyBjbGFzcyBUZXN0VGV4dFBhbmVsIC8qZXh0ZW5kcyBUZXN0Rm13ayovIHsKKworICAgIHByaXZhdGUgZmluYWwgY2xhc3MgVGVzdExpc3RlbmVyIGltcGxlbWVudHMgVGV4dFBhbmVsTGlzdGVuZXIgeworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBpbnQgTk9fV0FZID0gMDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgREVGSU5JVEVMWSA9IDE7CisgICAgICAgIHByaXZhdGUgaW50IE1BWUJFID0gMjsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgZmluYWwgaW50W10gc3RhdHVzOworICAgICAgICAKKyAgICAgICAgVGVzdExpc3RlbmVyKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBUZXh0UGFuZWxFdmVudC5URVhUX1BBTkVMX0xBU1QgLQorICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfRklSU1QgKyAxOworICAgICAgICAgICAgc3RhdHVzID0gbmV3IGludFtsZW5ndGhdOworICAgICAgICAgICAgdGV4dFBhbmVsLmFkZExpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgYWxsb3dBbGwoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCByZWZ1c2VBbGwoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHN0YXR1cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHN0YXR1c1tpXSA9IE5PX1dBWTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBhbGxvd0FsbCgpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgc3RhdHVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzW2ldID0gTUFZQkU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZvaWQgZXhwZWN0RXZlbnQoaW50IHR5cGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGluZGV4ID0gdHlwZSAtIFRleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfRklSU1Q7CisgICAgICAgICAgICBzdGF0dXNbaW5kZXhdID0gREVGSU5JVEVMWTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBhbGxvd0V2ZW50KGludCB0eXBlKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSB0eXBlIC0gVGV4dFBhbmVsRXZlbnQuVEVYVF9QQU5FTF9GSVJTVDsKKyAgICAgICAgICAgIHN0YXR1c1tpbmRleF0gPSBNQVlCRTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBhc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoKSB7CisgICAgICAgICAgICBhc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoZmFsc2UsIDAsIGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdm9pZCBhc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoaW50IGl0ZXJhdGlvbkNvdW50LCBib29sZWFuIGV4cCkgeworICAgICAgICAgICAgYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKHRydWUsIGl0ZXJhdGlvbkNvdW50LCBleHApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIHZvaWQgYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKGJvb2xlYW4gbG9nRGV0YWlscywgaW50IGl0ZXJhdGlvbkNvdW50LCBib29sZWFuIGV4cCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBib29sZWFuIGUgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHN0YXR1cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChzdGF0dXNbaV0gPT0gREVGSU5JVEVMWSkgeworICAgICAgICAgICAgICAgICAgICBpZiAobG9nRGV0YWlscykgeworICAgICAgICAgICAgICAgICAgICAgICAgbG9nTWVzc2FnZSgiRXhwZWN0aW5nIGV2ZW50ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpK1RleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfRklSU1QpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ01lc3NhZ2UoIml0ZXJhdGlvbkNvdW50PSIraXRlcmF0aW9uQ291bnQrIjsgIGV4cGV4dGluZz0iK2V4cCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZSA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGUpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiU29tZSBldmVudHMgcGVuZGluZyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgaW5kZXggPSBldmVudC5nZXRJRCgpIC0gVGV4dFBhbmVsRXZlbnQuVEVYVF9QQU5FTF9GSVJTVDsKKyAgICAgICAgICAgIGlmIChzdGF0dXNbaW5kZXhdID09IE5PX1dBWSkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJVbmV4cGVjdGVkIGV2ZW50OiAiICsgZXZlbnQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc3RhdHVzW2luZGV4XSA9PSBERUZJTklURUxZKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzW2luZGV4XSA9IE5PX1dBWTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1RSSU5HX0NPTlRFTlQgPSAiU29tZSBjb250ZW50IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVEVTVF9JVEVSUyA9IDI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBNQ29uc3RUZXh0IE1PRF9URVhUID0KKyAgICAgICAgICAgICAgICBuZXcgU3R5bGVkVGV4dCgiU3R5bGVkIiwgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworCisgICAgcHJpdmF0ZSBDbGlwYm9hcmQgZkNsaXBib2FyZDsKKyAgICBwcml2YXRlIE1UZXh0UGFuZWwgZlRleHRQYW5lbCA9IG51bGw7CisgICAgcHJpdmF0ZSBUZXN0TGlzdGVuZXIgZkxpc3RlbmVyID0gbnVsbDsKKyAgICBwcml2YXRlIGludCBmUmFuZFNlZWQgPSAwOworICAgIHByaXZhdGUgUmFuZG9tIHJhbmQ7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEJJR19DT01NQU5EX0xPR19TSVpFID0gNDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNNQUxMX0NPTU1BTkRfTE9HX1NJWkUgPSA4OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3R5bGVNb2RpZmllcltdIHBhcmFNb2RzID0geworICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKAorICAgICAgICAgICAgICAgIG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5MSU5FX0ZMVVNILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GTFVTSF9MRUFESU5HKSksCisgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoVGV4dEF0dHJpYnV0ZS5MSU5FX0ZMVVNILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GTFVTSF9DRU5URVIpLAorICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkxVU0hfVFJBSUxJTkcpLAorICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRlVMTFlfSlVTVElGSUVEKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT05fUlRMKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT05fTFRSKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZW1vdmVNb2RpZmllcigKKyAgICAgICAgICAgICAgICBuZXcgQXR0cmlidXRlU2V0KFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCkpLAorICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlbW92ZU1vZGlmaWVyKAorICAgICAgICAgICAgICAgIG5ldyBBdHRyaWJ1dGVTZXQoVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OKSkKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNFTEVDVCA9IDA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFNFVF9DQVJFVF9QT1MgPSAxOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRVRfU1RBUlQgPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTRVRfRU5EID0gMzsKKworICAgIC8vIHVzaW5nIGJvdGggc3R5bGVzIG9mIGFkZCBtb2RpZmllcjogQXR0cmlidXRlTWFwIGFuZAorICAgIC8vIGtleS12YWx1ZSwganVzdCBmb3IgdmFyaWV0eS4uLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0eWxlTW9kaWZpZXJbXSBjaGFyTW9kcyA9IHsKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcigKKyAgICAgICAgICAgICAgICBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuV0VJR0hULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5XRUlHSFRfQk9MRCkpLAorICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKFRleHRBdHRyaWJ1dGUuRk9SRUdST1VORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yLmdyZWVuKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcigKKyAgICAgICAgICAgICAgICBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkVfT04pLmFkZEF0dHJpYnV0ZXMoCisgICAgICAgICAgICAgICAgbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlNJWkUsIG5ldyBGbG9hdCg2KSkpKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZXBsYWNlTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgbmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLkZBTUlMWSwgIkRpYWxvZyIpKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZW1vdmVNb2RpZmllcigKKyAgICAgICAgICAgICAgICBuZXcgQXR0cmlidXRlU2V0KAorICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXSB7IFRleHRBdHRyaWJ1dGUuV0VJR0hULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlNUUklLRVRIUk9VR0gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBUIH0pKSwKKyAgICAgICAgU3R5bGVNb2RpZmllci5JREVOVElUWQorICAgIH07CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyW10gVFlQRURfQ0hBUlMgPSBuZXcgY2hhclsxMjggLSAnICcgKyAzXTsKKyAgICBzdGF0aWMgeworICAgICAgICBUWVBFRF9DSEFSU1swXSA9IDg7IC8vIGJhY2tzcGFjZQorICAgICAgICBUWVBFRF9DSEFSU1sxXSA9ICdcdCc7CisgICAgICAgIFRZUEVEX0NIQVJTWzJdID0gJ1xuJzsKKyAgICAgICAgZm9yIChpbnQgaT0zOyBpIDwgVFlQRURfQ0hBUlMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIFRZUEVEX0NIQVJTW2ldID0gKGNoYXIpICgnICcgKyBpIC0gMyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgVGVzdFRleHRQYW5lbCgpIHsKKworICAgICAgICBmQ2xpcGJvYXJkID0gbmV3IENsaXBib2FyZCgiVGVzdFRleHRQYW5lbCIpOworICAgICAgICBpbmNSYW5kU2VlZCgpOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHJlcG9ydEVycm9yKFN0cmluZyBtZXNzYWdlKSB7CisgICAgCisgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbihtZXNzYWdlKTsKKyAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24obWVzc2FnZSk7CisgICAgICAgIC8vc3VwZXIuZXJybG4obWVzc2FnZSk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGxvZ01lc3NhZ2UoU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAKKyAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKG1lc3NhZ2UpOworICAgICAgICAvL3N1cGVyLmxvZ01lc3NhZ2UobWVzc2FnZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBUZXN0VGV4dFBhbmVsKE1UZXh0UGFuZWwgcGFuZWwpIHsKKyAgICAgICAgCisgICAgICAgIHRoaXMoKTsKKyAgICAgICAgc2V0VGV4dFBhbmVsKHBhbmVsKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBpbmNSYW5kU2VlZCgpIHsKKyAgICAgICAgCisgICAgICAgIHJhbmQgPSBuZXcgUmFuZG9tKCsrZlJhbmRTZWVkKTsKKyAgICB9CisgICAgCisgICAgaW50IGdldFJhbmRTZWVkKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZSYW5kU2VlZDsKKyAgICB9CisKKyAgICBpbnQgcmFuZEludChpbnQgbGltaXQpIHsKKworICAgICAgICByZXR1cm4gcmFuZEludCgwLCBsaW1pdCk7CisgICAgfQorCisgICAgaW50IHJhbmRJbnQoaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKworICAgICAgICBpZiAoc3RhcnQgPiBsaW1pdCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiUmFuZ2UgaXMgMC1sZW5ndGguIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc3RhcnQgPT0gbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGFydDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzdGFydCArIChNYXRoLmFicyhyYW5kLm5leHRJbnQoKSklKGxpbWl0LXN0YXJ0KSkgOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIGJvbGQgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuV0VJR0hULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5XRUlHSFRfQk9MRCk7CisgICAgICAgIE1Db25zdFRleHQgdGV4dDEgPSBuZXcgU3R5bGVkVGV4dCgiVGVzdCBjb250ZW50cy4gMTIzNFxuSG93IGFib3V0IGl0PyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworICAgICAgICBNQ29uc3RUZXh0IHRleHQyID0gbmV3IFN0eWxlZFRleHQoIkFub3RoZXIgdGVzdCBzdHJpbmcuIiwgYm9sZCk7CisKKyAgICAgICAgX3Rlc3RXaXRoVGV4dCh0ZXh0MSk7CisgICAgICAgIF90ZXN0V2l0aFRleHQodGV4dDIpOworICAgICAgICBfdGVzdFdpdGhUZXh0KG5ldyBTdHlsZWRUZXh0KCkpOworCisgICAgICAgIFN0eWxlZFRleHQgYmlnMSA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IDUwOyBpKyspIHsKKyAgICAgICAgICAgIGJpZzEuYXBwZW5kKHRleHQxKTsKKyAgICAgICAgfQorCisgICAgICAgIF90ZXN0V2l0aFRleHQoYmlnMSk7CisgICAgICAgIFN0eWxlZFRleHQgYmlnMiA9IG5ldyBTdHlsZWRUZXh0KHRleHQxKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgODA7IGkrKykgeworICAgICAgICAgICAgYmlnMi5hcHBlbmQodGV4dDIpOworICAgICAgICB9CisKKyAgICAgICAgX3Rlc3RXaXRoVGV4dChiaWcyKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHNldFRleHRQYW5lbChNVGV4dFBhbmVsIHBhbmVsKSB7CisgICAgICAgIAorICAgICAgICBmVGV4dFBhbmVsID0gcGFuZWw7CisgICAgICAgIGZMaXN0ZW5lciA9IG5ldyBUZXN0TGlzdGVuZXIocGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RXaXRoVGV4dChNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICBzZXRUZXh0UGFuZWwobmV3IFRleHRQYW5lbCh0ZXh0LCBmQ2xpcGJvYXJkKSk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgVEVTVF9JVEVSUzsgaSsrKSB7CisgICAgICAgICAgICBfdGVzdFNldFNlbGVjdGlvbigpOworICAgICAgICAgICAgX3Rlc3RNb2RpZmljYXRpb25zKE1PRF9URVhULCB0cnVlKTsKKyAgICAgICAgICAgIF90ZXN0RWRpdE1lbnVPcGVyYXRpb25zKGZDbGlwYm9hcmQpOworICAgICAgICAgICAgX3Rlc3RNb2RGbGFnKGZUZXh0UGFuZWwuZ2V0Q29tbWFuZExvZ1NpemUoKSk7CisgICAgICAgICAgICBfdGVzdENvbW1hbmRMb2dDb250cm9sKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgX3Rlc3RTZWxlY3Rpb24oaW50IGZ1bmN0aW9uLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCBpbnQgYVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBhTGltaXQpIHsKKworICAgICAgICBpbnQgb2xkU3RhcnQgPSBmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIGludCBvbGRMaW1pdCA9IGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uRW5kKCk7CisKKyAgICAgICAgZmluYWwgaW50IGxlbmd0aCA9IGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpOworICAgICAgICAKKyAgICAgICAgaW50IHN0YXJ0ID0gYVN0YXJ0OworICAgICAgICBpbnQgbGltaXQgPSBhTGltaXQ7CisgICAgICAgIAorICAgICAgICBpZiAoc3RhcnQgPCAwKSB7CisgICAgICAgICAgICBzdGFydCA9IDA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc3RhcnQgPiBsZW5ndGgpIHsKKyAgICAgICAgICAgIHN0YXJ0ID0gbGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGxpbWl0IDwgc3RhcnQpIHsKKyAgICAgICAgICAgIGxpbWl0ID0gc3RhcnQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobGltaXQgPiBsZW5ndGgpIHsKKyAgICAgICAgICAgIGxpbWl0ID0gbGVuZ3RoOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmTGlzdGVuZXIucmVmdXNlQWxsKCk7CisgICAgICAgIAorICAgICAgICBpZiAob2xkU3RhcnQgIT0gc3RhcnQgfHwgb2xkTGltaXQgIT0gbGltaXQpIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCk7CisgICAgICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQpOworICAgICAgICB9CisgICAgICAgIGlmICgob2xkU3RhcnQ9PW9sZExpbWl0KSAhPSAoc3RhcnQ9PWxpbWl0KSkgeworICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9FTVBUWV9DSEFOR0VEKTsKKyAgICAgICAgfQorICAgICAgICBpZiAob2xkU3RhcnQ9PW9sZExpbWl0KSB7CisgICAgICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICB9CisKKyAgICAgICAgc3dpdGNoKGZ1bmN0aW9uKSB7CisgICAgICAgICAgICBjYXNlIFNFTEVDVDoKKyAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLnNlbGVjdChhU3RhcnQsIGFMaW1pdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFNFVF9DQVJFVF9QT1M6CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRDYXJldFBvc2l0aW9uKGFTdGFydCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFNFVF9TVEFSVDoKKyAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLnNldFNlbGVjdGlvblN0YXJ0KGFTdGFydCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFNFVF9FTkQ6CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRTZWxlY3Rpb25FbmQoYUxpbWl0KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBmdW5jdGlvbiIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpICE9IHN0YXJ0KSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiZ2V0U2VsZWN0aW9uU3RhcnQgaXMgaW5jb3JyZWN0IGFmdGVyIHNldCIpOworICAgICAgICB9CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFNlbGVjdGlvbkVuZCgpICE9IGxpbWl0KSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiZ2V0U2VsZWN0aW9uRW5kIGlzIGluY29ycmVjdCBhZnRlciBzZXQiKTsKKyAgICAgICAgfQorICAgICAgICBmTGlzdGVuZXIuYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0FsbCgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRBbmRUZXN0U2VsZWN0aW9uKGludCBzdGFydCwgaW50IGxpbWl0KSB7CisgICAgICAgIAorICAgICAgICBfdGVzdFNlbGVjdGlvbihTRUxFQ1QsIHN0YXJ0LCBsaW1pdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldEFuZFRlc3RDYXJldChpbnQgY2FyZXRQb3MpIHsKKworICAgICAgICBfdGVzdFNlbGVjdGlvbihTRVRfQ0FSRVRfUE9TLCBjYXJldFBvcywgY2FyZXRQb3MpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRBbmRUZXN0U2VsZWN0aW9uU3RhcnQoaW50IHNlbFN0YXJ0KSB7CisKKyAgICAgICAgaW50IGxpbWl0ID0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgX3Rlc3RTZWxlY3Rpb24oU0VUX1NUQVJULCBzZWxTdGFydCwgbGltaXQpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRBbmRUZXN0U2VsZWN0aW9uRW5kKGludCBzZWxFbmQpIHsKKworICAgICAgICBpbnQgc3RhcnQgPSBmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgIF90ZXN0U2VsZWN0aW9uKFNFVF9FTkQsIHN0YXJ0LCBzZWxFbmQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIF90ZXN0U2V0U2VsZWN0aW9uKCkgeworCisgICAgICAgIGludCB0ZXh0TGVuZ3RoID0gZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCk7CisgICAgICAgIGlmICh0ZXh0TGVuZ3RoICE9IGZUZXh0UGFuZWwuZ2V0VGV4dCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiVGV4dCBwYW5lbCBsZW5ndGggaXMgbm90IGNvcnJlY3QiKTsKKyAgICAgICAgfQorCisgICAgICAgIHNldEFuZFRlc3RTZWxlY3Rpb24oMCwgdGV4dExlbmd0aCAvIDIpOworICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uKHRleHRMZW5ndGggLyAyLCB0ZXh0TGVuZ3RoKTsKKyAgICAgICAgc2V0QW5kVGVzdFNlbGVjdGlvbigwLCB0ZXh0TGVuZ3RoKTsKKyAgICAgICAgc2V0QW5kVGVzdFNlbGVjdGlvbigtMSwgdGV4dExlbmd0aCsxKTsKKyAgICAgICAgaWYgKHRleHRMZW5ndGggPiAwKSB7CisgICAgICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uKDAsIHRleHRMZW5ndGggLSAxKTsKKyAgICAgICAgICAgIHNldEFuZFRlc3RTZWxlY3Rpb24oMCwgMSk7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBpbnQgaW5jQW1vdW50ID0gTWF0aC5tYXgoMSwgdGV4dExlbmd0aC81KTsKKyAgICAgICAgZm9yIChpbnQgaW5kZXggPSAwOyBpbmRleCA8PSB0ZXh0TGVuZ3RoOyBpbmRleCArPSBpbmNBbW91bnQpIHsKKworICAgICAgICAgICAgc2V0QW5kVGVzdENhcmV0KGluZGV4KTsKKyAgICAgICAgICAgIHNldEFuZFRlc3RTZWxlY3Rpb25TdGFydCh0ZXh0TGVuZ3RoLWluZGV4KTsKKyAgICAgICAgICAgIHNldEFuZFRlc3RTZWxlY3Rpb25FbmQodGV4dExlbmd0aCk7CisgICAgICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uU3RhcnQoMCk7CisgICAgICAgICAgICBzZXRBbmRUZXN0U2VsZWN0aW9uRW5kKHRleHRMZW5ndGgtaW5kZXgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGV4dCBtdXN0IGJlIGVkaXRhYmxlIHRvIHBhc3MgdGhpcyB0ZXN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIF90ZXN0TW9kaWZpY2F0aW9ucyhNQ29uc3RUZXh0IGluc2VydGlvblRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gcmVzdG9yZU9sZFRleHQpIHsKKworICAgICAgICBNQ29uc3RUZXh0IG9sZFRleHQgPSBuZXcgU3R5bGVkVGV4dChmVGV4dFBhbmVsLmdldFRleHQoKSk7CisgICAgICAgIGZpbmFsIGludCBpbnNMZW5ndGggPSBpbnNlcnRpb25UZXh0Lmxlbmd0aCgpOworCisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0FsbCgpOworICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEKTsKKyAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgZlRleHRQYW5lbC5hcHBlbmQoaW5zZXJ0aW9uVGV4dCk7CisgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoKTsKKyAgICAgICAgCisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCkgIT0gb2xkVGV4dC5sZW5ndGgoKSArIGluc0xlbmd0aCkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIkFwcGVuZCBkaWRuJ3QgcmVzdWx0IGluIGNvcnJlY3Qgc2VsZWN0aW9uIik7CisgICAgICAgIH0KKworICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEKTsKKyAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgZlRleHRQYW5lbC5pbnNlcnQoaW5zZXJ0aW9uVGV4dCwgMCk7CisgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoKTsKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93QWxsKCk7CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpICE9IGluc0xlbmd0aCkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIkluc2VydCBkaWRuJ3QgcmVzdWx0IGluIGNvcnJlY3Qgc2VsZWN0aW9uIik7CisgICAgICAgIH0KKworICAgICAgICBmVGV4dFBhbmVsLnJlcGxhY2VSYW5nZShpbnNlcnRpb25UZXh0LCBpbnNMZW5ndGgsIGluc0xlbmd0aCtvbGRUZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBpbnNMZW5ndGgqMikgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlJlcGxhY2UgZGlkbid0IHJlc3VsdCBpbiBjb3JyZWN0IHNlbGVjdGlvbiIpOworICAgICAgICB9CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFNlbGVjdGlvbkVuZCgpICE9IGluc0xlbmd0aCoyKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiUmVwbGFjZSBkaWRuJ3QgcmVzdWx0IGluIGNvcnJlY3Qgc2VsZWN0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IGluc0xlbmd0aCozKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigidGV4dExlbmd0aCBpcyBpbmNvcnJlY3QiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZXN0b3JlT2xkVGV4dCkgeworICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRUZXh0KG9sZFRleHQpOworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBvbGRUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoInNldFRleHQgZGlkbid0IHJlc3VsdCBpbiBjb3JyZWN0IHNlbGVjdGlvbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IG9sZFRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigibGVuZ3RoIGluY29ycmVjdCBhZnRlciBzZXRUZXh0Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0FsbCgpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCBpdGVyYXRpb25Db3VudCA9IDA7CisgICAgcHVibGljIHZvaWQgX3Rlc3RDb21tYW5kTG9nQ29udHJvbCgpIHsKKworICAgICAgICBmTGlzdGVuZXIucmVmdXNlQWxsKCk7CisgICAgICAgIGl0ZXJhdGlvbkNvdW50Kys7CisgICAgICAgIGJvb2xlYW4gZXhwID0gZmFsc2U7CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmNhblJlZG8oKSB8fCBCSUdfQ09NTUFORF9MT0dfU0laRT09MCkgeworICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgICAgICBleHAgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIC8vdHJ5IHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0Q29tbWFuZExvZ1NpemUoQklHX0NPTU1BTkRfTE9HX1NJWkUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5jYW5SZWRvKCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiY2FuUmVkbyBhZnRlciBzZXRDb21tYW5kTG9nU2l6ZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZkxpc3RlbmVyLmFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cyhpdGVyYXRpb25Db3VudCwgZXhwKTsKKyAgICAgICAgLy99CisgICAgICAgIC8vY2F0Y2goRXJyb3IgZSkgeworICAgICAgICAvLyAgICBsb2dNZXNzYWdlKCJpdGVyYXRpb25Db3VudD0iK2l0ZXJhdGlvbkNvdW50KyI7ICBleHBleHRpbmc9IitleHApOworICAgICAgICAvLyAgICB0aHJvdyBlOworICAgICAgICAvL30KKworICAgICAgICBNQ29uc3RUZXh0IGluc1RleHQgPSBuZXcgU3R5bGVkVGV4dCgiNyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKworICAgICAgICBmaW5hbCBpbnQgb3JpZ0xlbmd0aCA9IGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpOworICAgICAgICBpbnQgc3RhcnQgPSBvcmlnTGVuZ3RoIC8gMzsKKyAgICAgICAgCisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEKTsKKworICAgICAgICBmb3IgKGludCBpPXN0YXJ0OyBpIDwgQklHX0NPTU1BTkRfTE9HX1NJWkUrc3RhcnQ7IGkrKykgeworICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEKTsKKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCkgIT0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25FbmQoKSkgeworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmVGV4dFBhbmVsLmluc2VydChpbnNUZXh0LCBpKTsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5hc3NlcnROb3RFeHBlY3RpbmdFdmVudHMoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9FTVBUWV9DSEFOR0VEKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IEJJR19DT01NQU5EX0xPR19TSVpFLTE7IGkrKykgeworICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEKTsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICAgICAgZkxpc3RlbmVyLmFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cygpOworICAgICAgICB9CisgICAgICAgIGlmICghZlRleHRQYW5lbC5jYW5VbmRvKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJDb21tYW5kIGxvZyBpcyB0b28gc21hbGwiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93QWxsKCk7CisgICAgICAgIGZUZXh0UGFuZWwudW5kbygpOworICAgICAgICBpZiAoZlRleHRQYW5lbC5jYW5VbmRvKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJDb21tYW5kIGxvZyBpcyB0b28gbGFyZ2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBvcmlnTGVuZ3RoICogaW5zVGV4dC5sZW5ndGgoKSkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlRleHQgbGVuZ3RoIHdhcyBub3QgcmVzdG9yZWQiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IEJJR19DT01NQU5EX0xPR19TSVpFOyBpKyspIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwucmVkbygpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IG9yaWdMZW5ndGgrQklHX0NPTU1BTkRfTE9HX1NJWkUpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJUZXh0IGxlbmd0aCB3YXMgbm90IHJlc3RvcmVkIGFmdGVyIHJlZG8iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmVGV4dFBhbmVsLmNhblJlZG8oKSkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlNob3VsZCBub3QgYmUgYWJsZSB0byByZWRvIik7CisgICAgICAgIH0KKworICAgICAgICBmVGV4dFBhbmVsLnVuZG8oKTsKKworICAgICAgICBmVGV4dFBhbmVsLnNldENvbW1hbmRMb2dTaXplKFNNQUxMX0NPTU1BTkRfTE9HX1NJWkUpOworCisgICAgICAgIGlmIChmVGV4dFBhbmVsLmNhblJlZG8oKSkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoImNhblJlZG8gYWZ0ZXIgc2V0Q29tbWFuZExvZ1NpemUoc21hbGwpIik7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBTTUFMTF9DT01NQU5EX0xPR19TSVpFOyBpKyspIHsKKyAgICAgICAgICAgIGlmICghZlRleHRQYW5lbC5jYW5VbmRvKCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigic2hvdWxkIGJlIGFibGUgdG8gdW5kbyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuY2FuVW5kbygpKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigic2hvdWxkIG5vdCBiZSBhYmxlIHRvIHVuZG8gYWZ0ZXIgc2V0Q29tbWFuZExvZ1NpemUoc21hbGwpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmVGV4dFBhbmVsLmNhblJlZG8oKSkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIndoeSBjYW4ndCB0aGlzIHJlZG8/Pz8iKTsKKyAgICAgICAgfQorICAgICAgICBmVGV4dFBhbmVsLnJlZG8oKTsKKworICAgICAgICBmVGV4dFBhbmVsLmNsZWFyQ29tbWFuZExvZygpOworCisgICAgICAgIGlmIChmVGV4dFBhbmVsLmNhblVuZG8oKSB8fCBmVGV4dFBhbmVsLmNhblJlZG8oKSkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoIkNvbW1hbmQgbG9nIHdhc24ndCBjbGVhcmVkIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUZXN0IGN1dCwgY29weSwgcGFzdGUsIHVuZG8sIHJlZG8sIGNsZWFyLCBjYW5VbmRvLCBjYW5SZWRvLgorICAgICAqIFRleHQgbXVzdCBiZSBlZGl0YWJsZSB0byBwYXNzIHRoaXMgdGVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBfdGVzdEVkaXRNZW51T3BlcmF0aW9ucyhDbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisgICAgICAgIAorICAgICAgICBpZiAoY2xpcGJvYXJkICE9IG51bGwpIHsKKyAgICAgICAgICAgIC8vIHRlc3QgcGFzdGUgYW5kIHVuZG8gLyByZWRvCisgICAgICAgICAgICBUcmFuc2ZlcmFibGUgdHIgPSBuZXcgU3RyaW5nU2VsZWN0aW9uKFNUUklOR19DT05URU5UKTsKKyAgICAgICAgICAgIGNsaXBib2FyZC5zZXRDb250ZW50cyh0ciwgbmV3IENsaXBib2FyZE93bmVyKCkgeworICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIGxvc3RPd25lcnNoaXAoQ2xpcGJvYXJkIGMsIFRyYW5zZmVyYWJsZSB0KSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpZiAoIWZUZXh0UGFuZWwuY2xpcGJvYXJkTm90RW1wdHkoKSkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJNVGV4dFBhbmVsIGRvZXNuJ3QgcmVjb2duaXplIHN0cmluZyBjb250ZW50LiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmVGV4dFBhbmVsLnNldENhcmV0UG9zaXRpb24oZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpKTsKKyAgICAgICAgICAgIGludCBvbGRMZW5ndGggPSBmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKTsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwucGFzdGUoKTsKKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBvbGRMZW5ndGggKyBTVFJJTkdfQ09OVEVOVC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJUZXh0IGxlbmd0aCBpcyB3cm9uZyBhZnRlciBwYXN0ZS4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFmVGV4dFBhbmVsLmNhblVuZG8oKSkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJjYW5VbmRvIHNob3VsZCBiZSB0cnVlIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmVGV4dFBhbmVsLnVuZG8oKTsKKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBvbGRMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiTGVuZ3RoIGlzIHdyb25nIGFmdGVyIHVuZG8iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghZlRleHRQYW5lbC5jYW5SZWRvKCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiY2FuUmVkbyBzaG91bGQgYmUgdHJ1ZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHRQYW5lbC5yZWRvKCk7CisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb2xkTGVuZ3RoICsgU1RSSU5HX0NPTlRFTlQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICByZXBvcnRFcnJvcigiVGV4dCBsZW5ndGggaXMgd3JvbmcgYWZ0ZXIgcmVkby4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludCBvcmlnTGVuZ3RoID0gZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCk7CisgICAgICAgIGZUZXh0UGFuZWwuc2VsZWN0QWxsKCk7CisgICAgICAgIGZUZXh0UGFuZWwuY2xlYXIoKTsKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IDApIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJMZW5ndGggaXMgbm9uemVybyBhZnRlciBjbGVhciIpOworICAgICAgICB9CisgICAgICAgIGlmICghZlRleHRQYW5lbC5jYW5VbmRvKCkpIHsKKyAgICAgICAgICAgIHJlcG9ydEVycm9yKCJjYW5VbmRvIHNob3VsZCBiZSB0cnVlIik7CisgICAgICAgIH0KKyAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSAhPSBvcmlnTGVuZ3RoKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiT2xkIHRleHQgbm90IHJlc3RvcmVkIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAob3JpZ0xlbmd0aCA+IDApIHsKKworICAgICAgICAgICAgZlRleHRQYW5lbC5zZWxlY3QoMCwgMSk7CisgICAgICAgICAgICBmVGV4dFBhbmVsLmN1dCgpOworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpICE9IG9yaWdMZW5ndGgtMSkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJMZW5ndGggd3JvbmcgYWZ0ZXIgY3V0Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmVGV4dFBhbmVsLnBhc3RlKCk7CisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb3JpZ0xlbmd0aCkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJMZW5ndGggd3JvbmcgYWZ0ZXIgcGFzdGUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZUZXh0UGFuZWwuc2VsZWN0KDAsIG9yaWdMZW5ndGgpOworICAgICAgICAgICAgZlRleHRQYW5lbC5jb3B5KCk7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnNldENhcmV0UG9zaXRpb24oMCk7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnBhc3RlKCk7CisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gMipvcmlnTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoIkxlbmd0aCB3cm9uZyBhZnRlciBwYXN0ZSIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb3JpZ0xlbmd0aCkgeworICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJMZW5ndGggd3JvbmcgYWZ0ZXIgdW5kbyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNldEFuZFRlc3RNb2RGbGFnKGZpbmFsIGludCBkZXB0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBtb2RpZmllZCkgeworCisgICAgICAgIGZUZXh0UGFuZWwuc2V0TW9kaWZpZWQobW9kaWZpZWQpOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBkZXB0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoIWZUZXh0UGFuZWwuY2FuVW5kbygpKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoIlBhbmVsIGNhbm5vdCB1bmRvIGF0IHZhbGlkIGRlcHRoLiAgRGVwdGg9IiArIGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisgICAgICAgICAgICBmVGV4dFBhbmVsLnNldE1vZGlmaWVkKG1vZGlmaWVkKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNoZWNrIHRoYXQgYWxsIG1vZCBmbGFncyBhcmUgZmFsc2U6CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmlzTW9kaWZpZWQoKSAhPSBtb2RpZmllZCkgeworICAgICAgICAgICAgcmVwb3J0RXJyb3IoImlzTW9kaWZpZWQgaXMgbm90IGNvcnJlY3QiKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGRlcHRoOyBpKyspIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwucmVkbygpOworICAgICAgICAgICAgaWYgKGZUZXh0UGFuZWwuaXNNb2RpZmllZCgpICE9IG1vZGlmaWVkKSB7CisgICAgICAgICAgICAgICAgcmVwb3J0RXJyb3IoImlzTW9kaWZpZWQgaXMgbm90IGNvcnJlY3QiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE1ha2UgPGNvZGU+ZGVwdGg8L2NvZGU+IG1vZGlmaWNhdGlvbnMgdG8gdGhlIHRleHQgaW4gdGV4dGZUZXh0UGFuZWwuCisgICAgICogU2V0IHRoZSBtb2RpZmllZCBmbGFnIG9uIGVhY2ggb3BlcmF0aW9uLCBhbmQgdGhlbiByZXRyaWV2ZSBpdHMKKyAgICAgKiB2YWx1ZS4gIEZpbmFsbHksIHVuZG8gdGhlIG1vZGlmaWNhdGlvbnMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgX3Rlc3RNb2RGbGFnKGZpbmFsIGludCBkZXB0aCkgeworCisgICAgICAgIGZpbmFsIGludCBvbGRMZW5ndGggPSBmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBkZXB0aDsgaSsrKSB7CisgICAgICAgICAgICBmVGV4dFBhbmVsLmluc2VydChNT0RfVEVYVCwgMCk7CisgICAgICAgIH0KKworICAgICAgICBzZXRBbmRUZXN0TW9kRmxhZyhkZXB0aCwgZmFsc2UpOworICAgICAgICBzZXRBbmRUZXN0TW9kRmxhZyhkZXB0aCwgdHJ1ZSk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZGVwdGg7IGkrKykgeworICAgICAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRUZXh0TGVuZ3RoKCkgIT0gb2xkTGVuZ3RoKSB7CisgICAgICAgICAgICByZXBvcnRFcnJvcigiVW5kbyBkaWQgbm90IHJlc3RvcmUgb2xkIHRleHQuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIGFwcGx5Q2hhcmFjdGVyU3R5bGUoKSB7CisKKyAgICAgICAgU3R5bGVNb2RpZmllciBzdE1vZCA9IGNoYXJNb2RzW3JhbmRJbnQoY2hhck1vZHMubGVuZ3RoKV07CisgICAgICAgIGZMaXN0ZW5lci5yZWZ1c2VBbGwoKTsKKyAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCk7CisgICAgICAgIGlmIChmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCkgIT0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25FbmQoKSkgeworICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgICAgICBmTGlzdGVuZXIuYWxsb3dFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCk7CisgICAgICAgIH0KKyAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKHN0TW9kKTsKKyAgICAgICAgZkxpc3RlbmVyLmFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cygpOworICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICB9CisKKworICAgIHZvaWQgYXBwbHlQYXJhZ3JhcGhTdHlsZSgpIHsKKworICAgICAgICBmTGlzdGVuZXIucmVmdXNlQWxsKCk7CisgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQpOworICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEKTsKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQpOworICAgICAgICBTdHlsZU1vZGlmaWVyIHN0TW9kID0gcGFyYU1vZHNbcmFuZEludChwYXJhTW9kcy5sZW5ndGgpXTsKKyAgICAgICAgZlRleHRQYW5lbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKHN0TW9kKTsKKyAgICAgICAgZkxpc3RlbmVyLmFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cygpOworICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICB9CisKKyAgICB2b2lkIGFwcGx5S2V5UmVtYXAoKSB7CisKKyAgICAgICAgZkxpc3RlbmVyLnJlZnVzZUFsbCgpOworICAgICAgICBmTGlzdGVuZXIuZXhwZWN0RXZlbnQoVGV4dFBhbmVsRXZlbnQuS0VZUkVNQVBfQ0hBTkdFRCk7CisgICAgICAgIGludCBvcCA9IHJhbmRJbnQoNSk7CisgICAgICAgIHN3aXRjaCAob3ApIHsKKworICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0S2V5UmVtYXAoS2V5UmVtYXAuZ2V0SWRlbnRpdHlSZW1hcCgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGZUZXh0UGFuZWwuc2V0S2V5UmVtYXAoS2V5UmVtYXAuZ2V0QXJhYmljVHJhbnNsaXRlcmF0aW9uKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5zZXRLZXlSZW1hcChLZXlSZW1hcC5nZXRIZWJyZXdUcmFuc2xpdGVyYXRpb24oKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLnNldEtleVJlbWFwKEtleVJlbWFwLmdldElzcmFlbE5pa3VkKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgLy9mVGV4dFBhbmVsLnNldEtleVJlbWFwKEtleVJlbWFwLmdldFRoYWlLZXRtYW5lZSgpKTsKKyAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLnNldEtleVJlbWFwKEtleVJlbWFwLmdldElzcmFlbE5pa3VkKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJlcG9ydEVycm9yKCJJbnZhbGlkIG9wZXJhdGlvbiEiKTsKKyAgICAgICAgfQorICAgICAgICBmTGlzdGVuZXIuYXNzZXJ0Tm90RXhwZWN0aW5nRXZlbnRzKCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0FsbCgpOworICAgIH0KKworICAgIHZvaWQgcmVzaXplRnJhbWUoRnJhbWUgZnJhbWUpIHsKKworICAgICAgICBmTGlzdGVuZXIucmVmdXNlQWxsKCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LkZPUk1BVF9XSURUSF9DSEFOR0VEKTsKKyAgICAgICAgaW50IHdkID0gcmFuZEludCg1MCwgMTAwMCk7CisgICAgICAgIGludCBodCA9IHJhbmRJbnQoMjAsIDgwMCk7CisKKyAgICAgICAgZnJhbWUuc2V0U2l6ZSh3ZCwgaHQpOworICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICB9CisKKyAgICB2b2lkIHNlbGVjdFRleHQoKSB7CisKKyAgICAgICAgaW50IHNlbFN0YXJ0ID0gcmFuZEludCgtMTAsIGZUZXh0UGFuZWwuZ2V0VGV4dExlbmd0aCgpKTsKKyAgICAgICAgaW50IHNlbExpbWl0ID0gcmFuZEludCgwLCBmVGV4dFBhbmVsLmdldFRleHRMZW5ndGgoKSArIDEwKTsKKyAgICAgICAgX3Rlc3RTZWxlY3Rpb24oU0VMRUNULCBzZWxTdGFydCwgc2VsTGltaXQpOworICAgIH0KKworICAgIHZvaWQgdW5kb1JlZG8oKSB7CisKKyAgICAgICAgZmluYWwgaW50IG9wQ291bnQgPSByYW5kSW50KC0xMCwgMTUpOworCisgICAgICAgIGZvciAoaW50IGk9b3BDb3VudDsgaSA8PSAwOyBpKyspIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwucmVkbygpOworICAgICAgICB9CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IG9wQ291bnQ7IGkrKykgeworICAgICAgICAgICAgZlRleHRQYW5lbC51bmRvKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCB0eXBlS2V5cygpIHsKKworICAgICAgICBmaW5hbCBpbnQga2V5Q291bnQgPSByYW5kSW50KDEsIDEwMCk7CisgICAgICAgIFRleHRQYW5lbCB0ZXh0UGFuZWwgPSAoVGV4dFBhbmVsKSBmVGV4dFBhbmVsOworICAgICAgICAKKyAgICAgICAgS2V5RXZlbnRGb3J3YXJkZXIgZm9yd2FyZGVyID0gbmV3IEtleUV2ZW50Rm9yd2FyZGVyKHRleHRQYW5lbCk7CisgICAgICAgIAorICAgICAgICBmTGlzdGVuZXIucmVmdXNlQWxsKCk7CisgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgIAorICAgICAgICBpZiAoZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpICE9IGZUZXh0UGFuZWwuZ2V0U2VsZWN0aW9uRW5kKCkpIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci5leHBlY3RFdmVudChUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGtleUNvdW50OyBpKyspIHsKKyAgICAgICAgICAgIGNoYXIgdHlwZWRDaGFyID0gVFlQRURfQ0hBUlNbcmFuZEludChUWVBFRF9DSEFSUy5sZW5ndGgpXTsKKyAgICAgICAgICAgIEtleUV2ZW50IGV2ZW50ID0gbmV3IEtleUV2ZW50KHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleUV2ZW50LktFWV9UWVBFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5RXZlbnQuVktfVU5ERUZJTkVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZWRDaGFyKTsKKyAgICAgICAgICAgIGlmICh0eXBlZENoYXIgPT0gOCB8fCB0eXBlZENoYXIgPT0gMHg3ZikgeworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci5hbGxvd0V2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgICAgICAgICAgZkxpc3RlbmVyLmFsbG93RXZlbnQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisgICAgICAgICAgICAgICAgZkxpc3RlbmVyLmV4cGVjdEV2ZW50KFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvcndhcmRlci5oYW5kbGVLZXlFdmVudChldmVudCk7CisgICAgICAgICAgICAvL3RyeSB7CisgICAgICAgICAgICAgICAgZkxpc3RlbmVyLmFzc2VydE5vdEV4cGVjdGluZ0V2ZW50cyhpLCBmYWxzZSk7CisgICAgICAgICAgICAvL30KKyAgICAgICAgICAgIC8vY2F0Y2goRXJyb3IgZSkgeworICAgICAgICAgICAgLy8gICAgbG9nTWVzc2FnZSgiaT0iK2krIjsgdHlwZWRDaGFyPSIrSW50ZWdlci50b0hleFN0cmluZyh0eXBlZENoYXIpKTsKKyAgICAgICAgICAgIC8vICAgIHRocm93IGU7CisgICAgICAgICAgICAvL30KKyAgICAgICAgfQorICAgICAgICBmTGlzdGVuZXIuYWxsb3dBbGwoKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9UeXBpbmdQZXJmVGVzdC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC9UeXBpbmdQZXJmVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcwNDNlYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L1R5cGluZ1BlcmZUZXN0LmphdmEKQEAgLTAsMCArMSwyMzcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdDsKKworaW1wb3J0IGphdmEuYXd0LkJ1dHRvbjsKK2ltcG9ydCBqYXZhLmF3dC5HcmlkTGF5b3V0OworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWN0aW9uTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuV2luZG93QWRhcHRlcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dFdmVudDsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBqYXZhLnRleHQuRGF0ZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnV0aWwuRGF0ZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLktleUV2ZW50Rm9yd2FyZGVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmF3dHVpLlRleHRGcmFtZTsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuZGVtby5FZGl0RGVtbzsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LmRlbW8uVGV4dERvY3VtZW50OworCitwdWJsaWMgY2xhc3MgVHlwaW5nUGVyZlRlc3QgaW1wbGVtZW50cyBBY3Rpb25MaXN0ZW5lciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgVGV4dEZyYW1lIGZUZXh0RnJhbWU7CisgICAgcHJpdmF0ZSBLZXlFdmVudEZvcndhcmRlciBmS2V5RXZlbnRGb3J3YXJkZXI7CisgICAgcHJpdmF0ZSBQcmludFdyaXRlciBmT3V0OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGZnQXRTdGFydENvbW1hbmQgPSAiSW5zZXJ0IGF0IHN0YXJ0IjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmdBdEVuZENvbW1hbmQgPSAiSW5zZXJ0IGF0IGVuZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIGZnRndkRGVsZXRlID0gIkZvcndhcmQgZGVsZXRlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmdCYWNrc3BhY2UgPSAiQmFja3NwYWNlIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmdBdEN1cnJlbnRQb3NDb21tYW5kID0gIkluc2VydCBhdCBjdXJyZW50IHBvc2l0aW9uIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZmdMb3RzT2ZUZXh0Q29tbWFuZCA9ICJJbnNlcnQgYSBsb3Qgb2YgdGV4dCI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVNBR0UgPSAiVXNhZ2U6IGphdmEgY29tLmlibS5yaWNodGV4dC50ZXN0LlR5cGluZ1BlcmZUZXN0IFtmaWxlXSBbLWluc2VydGlvblRleHQgdGV4dF0iOworICAgIHByaXZhdGUgY2hhcltdIGZJbnNUZXh0OworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICAvLyBub3QgdXNlZCBPdXRwdXRTdHJlYW0gb3V0U3RyZWFtID0gbnVsbDsKKyAgICAgICAgUHJpbnRXcml0ZXIgd3JpdGVyID0gbmV3IFByaW50V3JpdGVyKFN5c3RlbS5vdXQpOworCisgICAgICAgIE1Db25zdFRleHQgdGV4dCA9IERlY2xhcmF0aW9uLmZnRGVjbGFyYXRpb247CisgICAgICAgIGNoYXJbXSBpbnNUZXh0ID0gIlRoZSBxdWljayBicm93biBmb3gganVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIFRoZSBlbmQuICIudG9DaGFyQXJyYXkoKTsKKyAgICAgICAgCisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIHdoaWxlIChpbmRleCA8IGFyZ3MubGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAoYXJnc1tpbmRleF0uZXF1YWxzKCItaW5zZXJ0aW9uVGV4dCIpKSB7CisgICAgICAgICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09ICsraW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFVTQUdFKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5zVGV4dCA9IGFyZ3NbaW5kZXgrK10udG9DaGFyQXJyYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCB0cnkgTUNvbnN0VGV4dCBmaXJzdCwgdGhlbiBwbGFpbiB0ZXh0LgorICAgICAgICAgICAgICAgIFRleHREb2N1bWVudCBkb2MgPSBFZGl0RGVtby5nZXREb2N1bWVudEZyb21GaWxlKG5ldyBGaWxlKGFyZ3NbaW5kZXgrK10pKTsKKyAgICAgICAgICAgICAgICBpZiAoZG9jID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb3VsZG4ndCBvcGVuIGZpbGUgIithcmdzW2luZGV4LTFdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGV4dCA9IGRvYy5nZXRUZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChpbmRleCAhPSBhcmdzLmxlbmd0aCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFVTQUdFKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbmV3IFR5cGluZ1BlcmZUZXN0KHdyaXRlciwgdGV4dCwgaW5zVGV4dCk7CisgICAgfQorCisgICAgcHVibGljIFR5cGluZ1BlcmZUZXN0KFByaW50V3JpdGVyIG91dCwgTUNvbnN0VGV4dCB0ZXh0LCBjaGFyW10gaW5zVGV4dCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKworICAgICAgICBmSW5zVGV4dCA9IGluc1RleHQ7CisgICAgICAgIGZUZXh0RnJhbWUgPSBuZXcgVGV4dEZyYW1lKHRleHQsICIiLCBudWxsKTsKKyAgICAgICAgVGV4dFBhbmVsIHRleHRQYW5lbCA9IChUZXh0UGFuZWwpIGZUZXh0RnJhbWUuZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIGZLZXlFdmVudEZvcndhcmRlciA9IG5ldyBLZXlFdmVudEZvcndhcmRlcih0ZXh0UGFuZWwpOworICAgICAgICBmT3V0ID0gb3V0OworCisgICAgICAgIERhdGVGb3JtYXQgZGYgPSBEYXRlRm9ybWF0LmdldERhdGVUaW1lSW5zdGFuY2UoKTsKKyAgICAgICAgb3V0LnByaW50bG4oIlRlc3QgZGF0ZTogIiArIGRmLmZvcm1hdChuZXcgRGF0ZSgpKSk7CisKKyAgICAgICAgZlRleHRGcmFtZS5zZXRTaXplKDUwMCwgNzAwKTsKKyAgICAgICAgZlRleHRGcmFtZS5zaG93KCk7CisKKyAgICAgICAgRnJhbWUgZiA9IG5ldyBGcmFtZSgiVHlwaW5nIFBlcmYgVGVzdCIpOworICAgICAgICBmLnNldExheW91dChuZXcgR3JpZExheW91dCgwLCAxKSk7CisgICAgICAgIEJ1dHRvbiBiOworLyoKKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdBdFN0YXJ0Q21kKTsKKyAgICAgICAgYi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZi5hZGQoYik7CisKKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdBdEVuZENtZCk7CisgICAgICAgIGIuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGYuYWRkKGIpOworKi8KKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdBdEN1cnJlbnRQb3NDb21tYW5kKTsKKyAgICAgICAgYi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZi5hZGQoYik7CisKKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdMb3RzT2ZUZXh0Q29tbWFuZCk7CisgICAgICAgIGIuYWRkQWN0aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGYuYWRkKGIpOworCisgICAgICAgIGIgPSBuZXcgQnV0dG9uKGZnRndkRGVsZXRlKTsKKyAgICAgICAgYi5hZGRBY3Rpb25MaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgZi5hZGQoYik7CisKKyAgICAgICAgYiA9IG5ldyBCdXR0b24oZmdCYWNrc3BhY2UpOworICAgICAgICBiLmFkZEFjdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICBmLmFkZChiKTsKKworICAgICAgICBmLmRvTGF5b3V0KCk7CisgICAgICAgIFdpbmRvd0FkYXB0ZXIgY2xvc2VyID0gbmV3IFdpbmRvd0FkYXB0ZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9zaW5nKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBmT3V0LmNsb3NlKCk7CisgICAgICAgICAgICAgICAgU3lzdGVtLmV4aXQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmLmFkZFdpbmRvd0xpc3RlbmVyKGNsb3Nlcik7CisgICAgICAgIGZUZXh0RnJhbWUuYWRkV2luZG93TGlzdGVuZXIoY2xvc2VyKTsKKyAgICAgICAgCisgICAgICAgIGYuc2V0U2l6ZSgyMDAsIDgwKTsKKyAgICAgICAgZi5zaG93KCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWN0aW9uUGVyZm9ybWVkKEFjdGlvbkV2ZW50IGV2dCkgeworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoZXZ0LmdldEFjdGlvbkNvbW1hbmQoKS5lcXVhbHMoZmdBdEN1cnJlbnRQb3NDb21tYW5kKSkgeworCisgICAgICAgICAgICAgICAgaW5zZXJ0QXRDdXJyZW50UG9zKDEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmdldEFjdGlvbkNvbW1hbmQoKS5lcXVhbHMoZmdMb3RzT2ZUZXh0Q29tbWFuZCkpIHsKKworICAgICAgICAgICAgICAgIGluc2VydEF0Q3VycmVudFBvcyg4KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5nZXRBY3Rpb25Db21tYW5kKCkuZXF1YWxzKGZnRndkRGVsZXRlKSkgeworCisgICAgICAgICAgICAgICAgZm9yd2FyZERlbGV0ZSgxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5nZXRBY3Rpb25Db21tYW5kKCkuZXF1YWxzKGZnQmFja3NwYWNlKSkgeworCisgICAgICAgICAgICAgICAgYmFja3NwYWNlKDEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2F1Z2h0IGV4Y2VwdGlvbjogIiArIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGluc2VydEF0Q3VycmVudFBvcyhmaW5hbCBpbnQgdGltZXMpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgZlRleHRGcmFtZS50b0Zyb250KCk7CisKKyAgICAgICAgU3lzdGVtLmdjKCk7CisKKyAgICAgICAgbG9uZyBzdGFydFRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKKworICAgICAgICBmb3IgKGludCB0PTA7IHQgPCB0aW1lczsgdCsrKSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBmSW5zVGV4dC5sZW5ndGg7IGkrKykgeworCisgICAgICAgICAgICAgICAgS2V5RXZlbnQgZXZlbnQgPSBuZXcgS2V5RXZlbnQoZlRleHRGcmFtZSwgS2V5RXZlbnQuS0VZX1RZUEVELCAwLCAwLCAwLCBmSW5zVGV4dFtpXSk7CisgICAgICAgICAgICAgICAgZktleUV2ZW50Rm9yd2FyZGVyLmhhbmRsZUtleUV2ZW50KGV2ZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGxvbmcgdGltZSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpIC0gc3RhcnRUaW1lOworCisgICAgICAgIGZPdXQucHJpbnRsbigiVG90YWwgdGltZTogIiArIHRpbWUpOworICAgICAgICBmT3V0LnByaW50bG4oIk1pbGxpcyBwZXIgY2hhcmFjdGVyOiAiICsgKHRpbWUgLyAoZkluc1RleHQubGVuZ3RoKnRpbWVzKSkpOworICAgICAgICBmT3V0LmZsdXNoKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGZvcndhcmREZWxldGUoZmluYWwgaW50IHRpbWVzKSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIFN5c3RlbS5nYygpOworCisgICAgICAgIGxvbmcgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisKKyAgICAgICAgZm9yIChpbnQgdD0wOyB0IDwgdGltZXM7IHQrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZkluc1RleHQubGVuZ3RoOyBpKyspIHsKKworICAgICAgICAgICAgICAgIEtleUV2ZW50IGV2ZW50ID0gbmV3IEtleUV2ZW50KGZUZXh0RnJhbWUsIDAsIDAsIDAsIEtleUV2ZW50LlZLX0RFTEVURSwgJ1x1MDBGRicpOworICAgICAgICAgICAgICAgIGZLZXlFdmVudEZvcndhcmRlci5oYW5kbGVLZXlFdmVudChldmVudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBsb25nIHRpbWUgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKSAtIHN0YXJ0VGltZTsKKworICAgICAgICBmT3V0LnByaW50bG4oIlRvdGFsIHRpbWU6ICIgKyB0aW1lKTsKKyAgICAgICAgZk91dC5wcmludGxuKCJNaWxsaXMgcGVyIGNoYXJhY3RlcjogIiArICh0aW1lIC8gKGZJbnNUZXh0Lmxlbmd0aCp0aW1lcykpKTsKKyAgICAgICAgZk91dC5mbHVzaCgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBiYWNrc3BhY2UoZmluYWwgaW50IHRpbWVzKSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIFN5c3RlbS5nYygpOworCisgICAgICAgIGxvbmcgc3RhcnRUaW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CisKKyAgICAgICAgZm9yIChpbnQgdD0wOyB0IDwgdGltZXM7IHQrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZkluc1RleHQubGVuZ3RoOyBpKyspIHsKKworICAgICAgICAgICAgICAgIEtleUV2ZW50IGV2ZW50ID0gbmV3IEtleUV2ZW50KGZUZXh0RnJhbWUsIDAsIDAsIDAsIEtleUV2ZW50LlZLX0JBQ0tfU1BBQ0UsICdcdTAwMTAnKTsKKyAgICAgICAgICAgICAgICBmS2V5RXZlbnRGb3J3YXJkZXIuaGFuZGxlS2V5RXZlbnQoZXZlbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbG9uZyB0aW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgLSBzdGFydFRpbWU7CisKKyAgICAgICAgZk91dC5wcmludGxuKCJUb3RhbCB0aW1lOiAiICsgdGltZSk7CisgICAgICAgIGZPdXQucHJpbnRsbigiTWlsbGlzIHBlciBjaGFyYWN0ZXI6ICIgKyAodGltZSAvIChmSW5zVGV4dC5sZW5ndGgqdGltZXMpKSk7CisgICAgICAgIGZPdXQuZmx1c2goKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvRm13a1Rlc3RUZXh0UGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9GbXdrVGVzdFRleHRQYW5lbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU4OWIxNjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvRm13a1Rlc3RUZXh0UGFuZWwuamF2YQpAQCAtMCwwICsxLDUwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3QudW5pdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGVzdC5UZXN0VGV4dFBhbmVsOworCitwdWJsaWMgZmluYWwgY2xhc3MgRm13a1Rlc3RUZXh0UGFuZWwgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAKKyAgICAgICAgbmV3IEZtd2tUZXN0VGV4dFBhbmVsKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIFRUUCB0dHA7CisgICAgCisgICAgcHVibGljIEZtd2tUZXN0VGV4dFBhbmVsKCkgeworICAgIAorICAgICAgICB0dHAgPSBuZXcgVFRQKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisgICAgCisgICAgICAgIHR0cC50ZXN0KCk7CisgICAgICAgIC8vIElmIFRlc3RUZXh0UGFuZWwgZ2V0cyBtb3JlIHRlc3RzLCBhZGQgdGhlbSBoZXJlCisgICAgfQorCisgICAgcHJpdmF0ZSBmaW5hbCBjbGFzcyBUVFAgZXh0ZW5kcyBUZXN0VGV4dFBhbmVsIHsKKyAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgcmVwb3J0RXJyb3IoU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICAgICAgCisgICAgICAgICAgICBlcnJsbihtZXNzYWdlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgbG9nTWVzc2FnZShTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICAKKyAgICAgICAgICAgIGxvZ2xuKG1lc3NhZ2UpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0QWxsLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEFsbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjczNWVlNTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEFsbC5qYXZhCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2suVGVzdEdyb3VwOworCitwdWJsaWMgY2xhc3MgVGVzdEFsbCBleHRlbmRzIFRlc3RHcm91cCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIG5ldyBUZXN0QWxsKCkucnVuKGFyZ3MpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgVGVzdEFsbCgpIHsKKyAgICAgICAgc3VwZXIobmV3IFN0cmluZ1tdIHsKKyAgICAgICAgICAgICJUZXN0QXR0cmlidXRlU2V0IiwKKyAgICAgICAgICAgICJUZXN0QXR0cmlidXRlTWFwIiwKKyAgICAgICAgICAgICJUZXN0Rm9ybWF0dGVyIiwKKyAgICAgICAgICAgICJUZXN0TVRleHQiLAorICAgICAgICAgICAgIlRlc3RQYXJhZ3JhcGhTdHlsZXMiLAorICAgICAgICAgICAgIlRlc3RNVGV4dFN0cmVhbWluZyIsCisgICAgICAgICAgICAiRm13a1Rlc3RUZXh0UGFuZWwiLAorICAgICAgICB9LAorICAgICAgICAgICAgICAiUmljaHRleHQgVW5pdCBUZXN0cyIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0QXR0cmlidXRlTWFwLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEF0dHJpYnV0ZU1hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRjOGI4ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEF0dHJpYnV0ZU1hcC5qYXZhCkBAIC0wLDAgKzEsNDEwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRlc3QudW5pdDsKKworaW1wb3J0IGNvbS5pYm0uaWN1LmRldi50ZXN0LlRlc3RGbXdrOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKKworLy8gSmF2YTIgaW1wb3J0cworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEudXRpbC5NYXAuRW50cnk7CisKKworcHVibGljIGNsYXNzIFRlc3RBdHRyaWJ1dGVNYXAgZXh0ZW5kcyBUZXN0Rm13ayAgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworCisgICAgLy8gVGhlcmUgYXJlIEpESyAxLjEgdmVyc2lvbnMgb2YgQXR0cmlidXRlTWFwIGFuZCBBdHRyaWJ1dGVTZXQuCisgICAgLy8gU29tZSBvZiB0aGUgdGVzdHMgaW4gdGhpcyBjbGFzcyByZXF1aXJlIEphdmEgMiBBUEkncy4gIEkgaGF2ZQorICAgIC8vIHRyaWVkIHRvIGlzb2xhdGUgdGhlc2UgdGVzdHMgYnkgY29uZGl0aW9uYWxpemluZyB0aGVtIG9uCisgICAgLy8gdGhpcyBzdGF0aWMgdmFyaWFibGUuICBJZiB5b3UgYXJlIGJhY2stcG9ydGluZyB0byAxLjEsIHJlbW92ZQorICAgIC8vIHRoZSBKYXZhIDIgdGVzdHMgT05MWS4KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBib29sZWFuIGdKREsxMSA9IGZhbHNlOworCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgbmV3IFRlc3RBdHRyaWJ1dGVNYXAoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBBdHRyaWJ1dGVTZXQgbWFwczsgIC8vIEEgU2V0IG9mIEF0dHJpYnV0ZU1hcHMKKyAgICBwcml2YXRlIEF0dHJpYnV0ZVNldCBzZXRzOyAgLy8gQSBTZXQgb2YgU2V0cworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgVGVzdEF0dHJpYnV0ZSBleHRlbmRzIFRleHRBdHRyaWJ1dGUgeworCisgICAgICAgIFRlc3RBdHRyaWJ1dGUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgICAgIHN1cGVyKG5hbWUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgVGVzdEF0dHJpYnV0ZVtdIGF0dHJpYnV0ZXMgPSB7CisgICAgICAgIG5ldyBUZXN0QXR0cmlidXRlKCIwIiksIG5ldyBUZXN0QXR0cmlidXRlKCIxIiksIG5ldyBUZXN0QXR0cmlidXRlKCIyIikKKyAgICB9OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgT2JqZWN0W10gdmFsdWVzID0geworICAgICAgICAiSGVsbG8gd29ybGQiLCBuZXcgRmxvYXQoLTQyKSwgbmV3IE9iamVjdCgpLCBuZXcgQXR0cmlidXRlTWFwKG5ldyBUZXN0QXR0cmlidXRlKCIzIiksICJISCIpCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgbGhzLmVxdWFscyhyaHMpIC0gYnV0IGFsc28gY2hlY2tzIGZvciBzeW1tZXRyeSwgYW5kCisgICAgICogY29uc2lzdGVuY3kgd2l0aCBoYXNoQ29kZSgpLgorICAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBlcXVhbE1hcHMoQXR0cmlidXRlTWFwIGxocywgT2JqZWN0IHJocykgeworCisgICAgICAgIGJvb2xlYW4gZXF1YWwgPSBsaHMuZXF1YWxzKHJocyk7CisgICAgICAgIGlmIChlcXVhbCAhPSAocmhzLmVxdWFscyhsaHMpKSkgeworICAgICAgICAgICAgZXJybG4oIkF0dHJpYnV0ZU1hcC5lcXVhbHMgaXMgbm90IHN5bWV0cmljIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVxdWFsKSB7CisgICAgICAgICAgICBpZiAobGhzLmhhc2hDb2RlKCkgIT0gcmhzLmhhc2hDb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiQXR0cmlidXRlTWFwcyBhcmUgZXF1YWwgYnV0IGhhc2hDb2RlcyBkaWZmZXIiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXF1YWw7CisgICAgfQorCisgICAgcHVibGljIFRlc3RBdHRyaWJ1dGVNYXAoKSB7CisKKyAgICAgICAgbWFwcyA9IEF0dHJpYnV0ZVNldC5FTVBUWV9TRVQ7CisgICAgICAgIG1hcHMgPSBtYXBzLmFkZEVsZW1lbnQoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworICAgICAgICBtYXBzLmFkZEVsZW1lbnQobmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBULCBUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBUX1NVQikpOworICAgICAgICBtYXBzLmFkZEVsZW1lbnQobmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBULCBUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBUX1NVUEVSKSk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgYXR0cmlidXRlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqIDwgdmFsdWVzLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICAgICAgbWFwcyA9IG1hcHMuYWRkRWxlbWVudChuZXcgQXR0cmlidXRlTWFwKGF0dHJpYnV0ZXNbaV0sIHZhbHVlc1tqXSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQXR0cmlidXRlTWFwIGJpZ01hcCA9IG5ldyBBdHRyaWJ1dGVNYXAobmV3IFRlc3RBdHRyaWJ1dGUoIjQiKSwgInZhbHVlIik7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IE1hdGgubWluKGF0dHJpYnV0ZXMubGVuZ3RoLCB2YWx1ZXMubGVuZ3RoKTsgaSsrKSB7CisgICAgICAgICAgICBiaWdNYXAgPSBiaWdNYXAuYWRkQXR0cmlidXRlKGF0dHJpYnV0ZXNbaV0sIHZhbHVlc1t2YWx1ZXMubGVuZ3RoLWktMV0pOworICAgICAgICB9CisgICAgICAgIG1hcHMgPSBtYXBzLmFkZEVsZW1lbnQoYmlnTWFwKTsKKworICAgICAgICBzZXRzID0gQXR0cmlidXRlU2V0LkVNUFRZX1NFVDsKKworICAgICAgICBzZXRzID0gbmV3IEF0dHJpYnV0ZVNldChBdHRyaWJ1dGVTZXQuRU1QVFlfU0VUKTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVTZXQgbmV3U2V0ID0gbmV3IEF0dHJpYnV0ZVNldChhdHRyaWJ1dGVzW2ldKTsKKyAgICAgICAgICAgIHNldHMgPSBzZXRzLmFkZEVsZW1lbnQobmV3U2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIEF0dHJpYnV0ZVNldCBhbGxBdHRycyA9IEF0dHJpYnV0ZVNldC5FTVBUWV9TRVQ7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGFsbEF0dHJzID0gYWxsQXR0cnMuYWRkRWxlbWVudChhdHRyaWJ1dGVzW2ldKTsKKyAgICAgICAgfQorCisgICAgICAgIHNldHMgPSBzZXRzLmFkZEVsZW1lbnQoYWxsQXR0cnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJ1biB0ZXN0cyBvbiBBdHRyaWJ1dGVNYXAuICBJZiBhIHRlc3QgZmFpbHMgYW4gZXhjZXB0aW9uIHdpbGwgcHJvcG9nYXRlIG91dAorICAgICAqIG9mIHRoaXMgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisKKyAgICAgICAgZWFzeVRlc3RzKCk7CisKKyAgICAgICAgRW51bWVyYXRpb24gbWFwSXRlciA9IG1hcHMuZWxlbWVudHMoKTsKKyAgICAgICAgd2hpbGUgKG1hcEl0ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHRlc3RNYXAgPSAoQXR0cmlidXRlTWFwKSBtYXBJdGVyLm5leHRFbGVtZW50KCk7CisKKyAgICAgICAgICAgIF90ZXN0TW9kaWZpZXJzKHRlc3RNYXApOworICAgICAgICAgICAgX3Rlc3RWaWV3cyh0ZXN0TWFwKTsKKworICAgICAgICAgICAgRW51bWVyYXRpb24gdW5pb25JdGVyID0gbWFwcy5lbGVtZW50cygpOworICAgICAgICAgICAgd2hpbGUgKHVuaW9uSXRlci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgICAgIF90ZXN0VW5pb25XaXRoKHRlc3RNYXAsIChBdHRyaWJ1dGVNYXApIHVuaW9uSXRlci5uZXh0RWxlbWVudCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgRW51bWVyYXRpb24gc2V0SXRlciA9IHNldHMuZWxlbWVudHMoKTsKKyAgICAgICAgICAgIHdoaWxlIChzZXRJdGVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgQXR0cmlidXRlU2V0IHRlc3RTZXQgPSAoQXR0cmlidXRlU2V0KSBzZXRJdGVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgX3Rlc3RJbnRlcnNlY3RXaXRoKHRlc3RNYXAsIHRlc3RTZXQpOworICAgICAgICAgICAgICAgIF90ZXN0UmVtb3ZlQXR0cmlidXRlcyh0ZXN0TWFwLCB0ZXN0U2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEludm9rZSBtb2RpZmllcnMgb24gbWFwLiAgQWxsIHNob3VsZCB0aHJvdworICAgICAqIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLCBhbmQgbGVhdmUgbWFwIHVubW9kaWZpZWQuCisgICAgICovCisgICAgdm9pZCBfdGVzdE1vZGlmaWVycyhBdHRyaWJ1dGVNYXAgbWFwKSB7CisKKyAgICAgICAgaWYgKGdKREsxMSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBBdHRyaWJ1dGVNYXAgb3JpZ2luYWxNYXAgPSBuZXcgQXR0cmlidXRlTWFwKG1hcCk7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG1hcC5wdXQoVGV4dEF0dHJpYnV0ZS5XRUlHSFQsIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQpOworICAgICAgICAgICAgZXJybG4oIlB1dCBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgT2JqZWN0IGtleSA9IFRleHRBdHRyaWJ1dGUuV0VJR0hUOworICAgICAgICAgICAgSXRlcmF0b3IgaXRlciA9IG1hcC5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgaWYgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAga2V5ID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtYXAucmVtb3ZlKGtleSk7CisgICAgICAgICAgICBlcnJsbigiU2V0IHNob3VsZCB0aHJvdyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBtYXAucHV0QWxsKG1hcCk7CisgICAgICAgICAgICBlcnJsbigicHV0QWxsIHNob3VsZCB0aHJvdyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4iKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBtYXAuY2xlYXIoKTsKKyAgICAgICAgICAgIGVycmxuKCJjbGVhciBzaG91bGQgdGhyb3cgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW9yaWdpbmFsTWFwLmVxdWFscyhtYXApKSB7CisgICAgICAgICAgICBlcnJsbigiTW9kaWZpZXJzIGNoYW5nZWQgbWFwLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5zdXJlIHRoYXQgbWFwLmFkZEF0dHJpYnV0ZXMoYWRkTWFwKSBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcKKyAgICAgKiBtYXAuYWRkIG9uIGFsbCBvZiBhZGRNYXAncyBlbnRyaWVzLgorICAgICAqLworICAgIHZvaWQgX3Rlc3RVbmlvbldpdGgoQXR0cmlidXRlTWFwIG1hcCwgQXR0cmlidXRlTWFwIGFkZE1hcCkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBsaHMgPSBtYXAuYWRkQXR0cmlidXRlcyhhZGRNYXApOworCisgICAgICAgIEF0dHJpYnV0ZU1hcCByaHMgPSBtYXA7CisKKyAgICAgICAgRW51bWVyYXRpb24gaXRlciA9IGFkZE1hcC5nZXRLZXlTZXQoKS5lbGVtZW50cygpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgT2JqZWN0IGF0dHIgPSBpdGVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBhZGRNYXAuZ2V0KGF0dHIpOworICAgICAgICAgICAgcmhzID0gcmhzLmFkZEF0dHJpYnV0ZShhdHRyLCB2YWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWVxdWFsTWFwcyhsaHMsIHJocykpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXBzIGFyZSBub3QgZXF1YWwuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbnN1cmUgdGhhdCBtYXAucmVtb3ZlQXR0cmlidXRlcyhyZW1vdmUpIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZworICAgICAqIG1hcC5yZW1vdmVBdHRyaWJ1dGUgb24gcmVtb3ZlJ3MgZWxlbWVudHMuCisgICAgICovCisgICAgdm9pZCBfdGVzdFJlbW92ZUF0dHJpYnV0ZXMoQXR0cmlidXRlTWFwIG1hcCwgQXR0cmlidXRlU2V0IHJlbW92ZSkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBsaHMgPSBtYXAucmVtb3ZlQXR0cmlidXRlcyhyZW1vdmUpOworCisgICAgICAgIEF0dHJpYnV0ZU1hcCByaHMgPSBtYXA7CisKKyAgICAgICAgRW51bWVyYXRpb24gaXRlciA9IHJlbW92ZS5lbGVtZW50cygpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgT2JqZWN0IGF0dHIgPSBpdGVyLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICByaHMgPSByaHMucmVtb3ZlQXR0cmlidXRlKGF0dHIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFlcXVhbE1hcHMobGhzLCByaHMpKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwcyBhcmUgbm90IGVxdWFsLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5zdXJlIHRoYXQgbWFwLmludGVyc2VjdFdpdGgoaW50ZXJzZWN0KSBpcyBlcXVpdmFsZW50IHRvCisgICAgICogbWFwLnJlbW92ZUF0dHJpYnV0ZXMobWFwLmtleVNldCgpIC0gaW50ZXJzZWN0KTsKKyAgICAgKi8KKyAgICB2b2lkIF90ZXN0SW50ZXJzZWN0V2l0aChBdHRyaWJ1dGVNYXAgbWFwLCBBdHRyaWJ1dGVTZXQgaW50ZXJzZWN0KSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIGxocyA9IG1hcC5pbnRlcnNlY3RXaXRoKGludGVyc2VjdCk7CisKKyAgICAgICAgQXR0cmlidXRlU2V0IGtleVNldCA9IG1hcC5nZXRLZXlTZXQoKTsKKyAgICAgICAgQXR0cmlidXRlU2V0IHJlbW92ZVNldCA9IGtleVNldC5zdWJ0cmFjdChpbnRlcnNlY3QpOworICAgICAgICBBdHRyaWJ1dGVNYXAgcmhzID0gbWFwLnJlbW92ZUF0dHJpYnV0ZXMocmVtb3ZlU2V0KTsKKworICAgICAgICBpZiAoIWVxdWFsTWFwcyhsaHMsIHJocykpIHsKKyAgICAgICAgICAgIG1hcC5pbnRlcnNlY3RXaXRoKGludGVyc2VjdCk7CisgICAgICAgICAgICBsb2dsbigiaW50ZXJzZWN0OiAiICsgaW50ZXJzZWN0KTsKKyAgICAgICAgICAgIGxvZ2xuKCJrZXlTZXQ6ICIgKyBrZXlTZXQpOworICAgICAgICAgICAgbG9nbG4oInJlbW92ZVNldDogIiArIHJlbW92ZVNldCk7CisgICAgICAgICAgICBsb2dsbigibWFwOiAiICsgbWFwKTsKKyAgICAgICAgICAgIGxvZ2xuKCJsaHM6ICIgKyBsaHMpOworICAgICAgICAgICAgbG9nbG4oInJoczogIiArIHJocyk7CisgICAgICAgICAgICBlcnJsbigiTWFwcyBhcmUgbm90IGVxdWFsLiIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogRW5zdXJlIHRoYXQ6CisgICAgICogICAgbWFwLCBtYXAua2V5U2V0KCksIGFuZCBtYXAuZW50cnlTZXQoKSBhcmUgdGhlIHNhbWUgc2l6ZTsKKyAgICAgKiAgICBtYXAuY29udGFpbnNLZXkoKSBpcyB0cnVlIGZvciBldmVyeSBrZXkgaW4ga2V5U2V0KCk7CisgICAgICogICAgbWFwLmNvbnRhaW5zVmFsdWUoKSBpcyB0cnVlIGZvciBldmVyeSB2YWx1ZSBpbiB2YWx1ZXM7CisgICAgICogICAgZXZlcnkgZW50cnkga2V5IGlzIGluIGtleVNldCwgZXZlcnkgZW50cnkgdmFsdWUgaXMgaW4gbWFwLnZhbHVlcygpOworICAgICAqICAgIG1hcC5nZXQoKSBpcyBjb25zaXN0ZW50IHdpdGggZW50cnkncyBrZXksIHZhbHVlOworICAgICAqICAgIHN1bSBvZiBoYXNoY29kZXMgb2YgZW50cmllcyBlcXVhbHMgbWFwLmhhc2hDb2RlKCkuCisgICAgICovCisgICAgdm9pZCBfdGVzdFZpZXdzKEF0dHJpYnV0ZU1hcCBtYXApIHsKKworICAgICAgICBBdHRyaWJ1dGVTZXQga2V5U2V0ID0gbWFwLmdldEtleVNldCgpOworCisgICAgICAgIEVudW1lcmF0aW9uIGtleUl0ZXIgPSBrZXlTZXQuZWxlbWVudHMoKTsKKyAgICAgICAgd2hpbGUgKGtleUl0ZXIuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIGlmICghbWFwLmNvbnRhaW5zS2V5KGtleUl0ZXIubmV4dEVsZW1lbnQoKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigia2V5U2V0IGNvbnRhaW5zIGtleSBub3QgaW4gbWFwIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoZ0pESzExKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIENvbGxlY3Rpb24gdmFsdWVzID0gbWFwLnZhbHVlcygpOworICAgICAgICBTZXQgZW50cnlTZXQgPSBtYXAuZW50cnlTZXQoKTsKKworICAgICAgICBpZiAoa2V5U2V0LnNpemUoKSAhPSBtYXAuc2l6ZSgpIHx8IGVudHJ5U2V0LnNpemUoKSAhPSBtYXAuc2l6ZSgpKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0IHNpemVzIGFyZSBpbmNvbnNpc3RlbnQgd2l0aCBtYXAgc2l6ZS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBoYXNoQ29kZSA9IDA7CisKKyAgICAgICAgSXRlcmF0b3IgdmFsdWVJdGVyID0gdmFsdWVzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlICh2YWx1ZUl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBpZiAoIW1hcC5jb250YWluc1ZhbHVlKHZhbHVlSXRlci5uZXh0KCkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oInZhbHVlIHNldCBjb250YWlucyB2YWx1ZSBub3QgaW4gbWFwIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBJdGVyYXRvciBlbnRyeUl0ZXIgPSBlbnRyeVNldC5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoZW50cnlJdGVyLmhhc05leHQoKSkgeworCisgICAgICAgICAgICBFbnRyeSBlbnRyeSA9IChFbnRyeSkgZW50cnlJdGVyLm5leHQoKTsKKworICAgICAgICAgICAgT2JqZWN0IGtleSA9IGVudHJ5LmdldEtleSgpOworICAgICAgICAgICAgaWYgKCFrZXlTZXQuY29udGFpbnMoa2V5KSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJFbnRyeSBrZXkgaXMgbm90IGluIGtleSBzZXQuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IG1hcC5nZXQoZW50cnkuZ2V0S2V5KCkpOworICAgICAgICAgICAgaWYgKCF2YWx1ZXMuY29udGFpbnModmFsdWUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIkVudHJ5IHZhbHVlIGlzIG5vdCBpbiB2YWx1ZSBzZXQuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtYXAuZ2V0KGtleSkgIT0gdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibWFwLmdldCBkaWQgbm90IHJldHVybiBlbnRyeSB2YWx1ZS4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaGFzaENvZGUgKz0gZW50cnkuaGFzaENvZGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChoYXNoQ29kZSAhPSBtYXAuaGFzaENvZGUoKSkgeworICAgICAgICAgICAgZXJybG4oIm1hcCBoYXNoY29kZSBpcyBub3Qgc3VtIG9mIGVudHJ5IGhhc2hjb2Rlcy4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIExvb2sgZm9yIGNvcnJlY3QgYmVoYXZpb3IgaW4gb2J2aW91cyBjYXNlcy4KKyAgICAgKi8KKyAgICB2b2lkIGVhc3lUZXN0cygpIHsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgbWFwID0gbmV3IEF0dHJpYnV0ZU1hcCgpOworICAgICAgICBpZiAoIW1hcC5lcXVhbHMoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApKSB7CisgICAgICAgICAgICBlcnJsbigiRGVmYXVsdC1jb25zdHJ1Y3RlZCBtYXAgaXMgbm90IGVxdWFsIHRvIGVtcHR5IG1hcC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIG1hcCA9IG1hcC5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBUZXh0QXR0cmlidXRlLlBPU1RVUkVfT0JMSVFVRSk7CisgICAgICAgIE9iamVjdCBvdGhlck1hcCA9IG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBUZXh0QXR0cmlidXRlLlBPU1RVUkVfT0JMSVFVRSk7CisgICAgICAgIGlmICghbWFwLmVxdWFscyhvdGhlck1hcCkpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXBzIGFyZSBpbmNvbnNpc3RlbnQgYWZ0ZXIgbWFwLmFkZCIpOworICAgICAgICB9CisKKyAgICAgICAgb3RoZXJNYXAgPSBtYXAuYWRkQXR0cmlidXRlcyhtYXApOworICAgICAgICBpZiAoIWVxdWFsTWFwcyhtYXAsb3RoZXJNYXApKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwcyBhcmUgaW5jb25zaXN0ZW50IGFmdGVyIGFkZEF0dHJpYnV0ZXMiKTsKKyAgICAgICAgfQorCisgICAgICAgIG1hcCA9IG1hcC5hZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUsIFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FX09OKTsKKworICAgICAgICBpZiAobWFwLnNpemUoKSAhPSAyKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwIHNpemUgaXMgd3JvbmcuICBtYXA9IittYXApOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVxdWFsTWFwcyhtYXAsb3RoZXJNYXApKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwcyBzaG91bGQgbm90IGJlIGVxdWFsIik7CisgICAgICAgIH0KKworICAgICAgICBPYmplY3QgcG9zdHVyZSA9IG5ldyBGbG9hdCgwKTsKKyAgICAgICAgbWFwID0gbWFwLmFkZEF0dHJpYnV0ZShUZXh0QXR0cmlidXRlLlBPU1RVUkUsIHBvc3R1cmUpOworCisgICAgICAgIGlmIChtYXAuc2l6ZSgpICE9IDIpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXAgc2l6ZSBpcyB3cm9uZyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFtYXAuZ2V0KFRleHRBdHRyaWJ1dGUuUE9TVFVSRSkuZXF1YWxzKHBvc3R1cmUpKSB7CisgICAgICAgICAgICBlcnJsbigiTWFwIGVsZW1lbnQgaXMgd3JvbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIG1hcCA9IG1hcC5yZW1vdmVBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUpOworCisgICAgICAgIGlmIChtYXAuc2l6ZSgpICE9IDEpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXAgc2l6ZSBpcyB3cm9uZyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1hcC5nZXQoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUpICE9IG51bGwpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXAgc2hvdWxkIG5vdCBoYXZlIGVsZW1lbnQiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG1hcCBoYXMgUE9TVFVSRV9SRUdVTEFSLiAgSWYgd2UgYWRkQXR0cmlidXRlcyBhIG1hcCB3aXRoCisgICAgICAgIC8vIFBPU1RVUkVfSVRBTElDIHRoZSBuZXcgbWFwIHNob3VsZCBoYXZlIFBPU1RVUkVfSVRBTElDCisKKyAgICAgICAgbWFwID0gbWFwLmFkZEF0dHJpYnV0ZXMobmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLlBPU1RVUkUsIFRleHRBdHRyaWJ1dGUuUE9TVFVSRV9PQkxJUVVFKSk7CisgICAgICAgIGlmIChtYXAuZ2V0KFRleHRBdHRyaWJ1dGUuUE9TVFVSRSkgIT0gVGV4dEF0dHJpYnV0ZS5QT1NUVVJFX09CTElRVUUpIHsKKyAgICAgICAgICAgIGVycmxuKCJNYXAgZWxlbWVudCBpcyB3cm9uZyIpOworICAgICAgICB9CisKKyAgICAgICAgX3Rlc3RNb2RpZmllcnMobWFwKTsKKyAgICAgICAgX3Rlc3RWaWV3cyhtYXApOworCisgICAgICAgIEVudW1lcmF0aW9uIG1hcEl0ZXIgPSBtYXBzLmVsZW1lbnRzKCk7CisgICAgICAgIHdoaWxlIChtYXBJdGVyLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgdGVzdE1hcCA9IChBdHRyaWJ1dGVNYXApIG1hcEl0ZXIubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIE9iamVjdCBuZXdWYWx1ZSA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBuZXdNYXAgPSB0ZXN0TWFwLmFkZEF0dHJpYnV0ZShhdHRyaWJ1dGVzWzBdLCBuZXdWYWx1ZSk7CisgICAgICAgICAgICBpZiAobmV3TWFwLmdldChhdHRyaWJ1dGVzWzBdKSAhPSBuZXdWYWx1ZSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJEaWQgbm90IGdldCBleHBlY3RlZCB2YWx1ZSBiYWNrLiAgbWFwPSIgKyBtYXApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0QXR0cmlidXRlU2V0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEF0dHJpYnV0ZVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg0N2RhYWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEF0dHJpYnV0ZVNldC5qYXZhCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKKworcHVibGljIGNsYXNzIFRlc3RBdHRyaWJ1dGVTZXQgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgICAgICAgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIG5ldyBUZXN0QXR0cmlidXRlU2V0KCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisKKyAgICAgICAgZmluYWwgT2JqZWN0IGVsZW0xID0gbmV3IE9iamVjdCgpOworICAgICAgICBmaW5hbCBPYmplY3QgZWxlbTIgPSBuZXcgRmxvYXQoNCk7CisgICAgICAgIGZpbmFsIE9iamVjdCBlbGVtMyA9ICJTdHJpbmciOworICAgICAgICBmaW5hbCBPYmplY3QgZWxlbTQgPSBCb29sZWFuLkZBTFNFOworCisgICAgICAgIEF0dHJpYnV0ZVNldCBzZXQxID0gbmV3IEF0dHJpYnV0ZVNldChuZXcgT2JqZWN0W10ge2VsZW0xLCBlbGVtMiwgZWxlbTN9KTsKKyAgICAgICAgaWYgKHNldDEuc2l6ZSgpICE9IDMpIHsKKyAgICAgICAgICAgIGVycmxuKCJTaXplIGlzIHdyb25nLiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNldDEuY29udGFpbnMoZWxlbTQpKXsKKyAgICAgICAgICAgIGVycmxuKCJTZXQgY29udGVudHMgYXJlIHdyb25nLiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFzZXQxLmNvbnRhaW5zKGVsZW0xKSkgeworICAgICAgICAgICAgZXJybG4oIlNldCBjb250ZW50cyBhcmUgd3JvbmcuIik7CisgICAgICAgIH0KKworICAgICAgICBBdHRyaWJ1dGVTZXQgc2V0MiA9IG5ldyBBdHRyaWJ1dGVTZXQoZWxlbTQpOworCisgICAgICAgIGlmIChzZXQyLnNpemUoKSAhPSAxKSB7CisgICAgICAgICAgICBlcnJsbigiU2l6ZSBpcyB3cm9uZy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghc2V0Mi5jb250YWlucyhlbGVtNCkpeworICAgICAgICAgICAgZXJybG4oIlNldCBjb250ZW50cyBhcmUgd3JvbmcuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2V0Mi5jb250YWlucyhlbGVtMSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTZXQgY29udGVudHMgYXJlIHdyb25nLiIpOworICAgICAgICB9CisKKyAgICAgICAgRW51bWVyYXRpb24gaXRlciA9IHNldDIuZWxlbWVudHMoKTsKKyAgICAgICAgaWYgKCFpdGVyLm5leHRFbGVtZW50KCkuZXF1YWxzKGVsZW00KSkgeworICAgICAgICAgICAgZXJybG4oIkludmFsaWQgb2JqZWN0IGluIGl0ZXJhdG9yLiIpOworICAgICAgICB9CisKKyAgICAgICAgQXR0cmlidXRlU2V0IHVuaW9uID0gc2V0Mi51bmlvbldpdGgoc2V0MSk7CisgICAgICAgIGlmICghc2V0MS51bmlvbldpdGgoc2V0MikuZXF1YWxzKHVuaW9uKSkgeworICAgICAgICAgICAgZXJybG4oInVuaW9uV2l0aCBpcyBub3QgY29tbXV0YXRpdmUuIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXVuaW9uLmNvbnRhaW5zKGVsZW0xKSB8fCAhdW5pb24uY29udGFpbnMoZWxlbTQpKSB7CisgICAgICAgICAgICBlcnJsbigiU2V0IGNvbnRlbnRzIGFyZSB3cm9uZy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghc2V0MS5hZGRFbGVtZW50KGVsZW00KS5lcXVhbHModW5pb24pKSB7CisgICAgICAgICAgICBlcnJsbigiYWRkRWxlbWVudCBpcyB3cm9uZy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghdW5pb24uaW50ZXJzZWN0V2l0aChzZXQxKS5lcXVhbHMoc2V0MSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJpbnRlcnNlY3RXaXRoIGlzIHdyb25nLiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCF1bmlvbi5zdWJ0cmFjdChzZXQxKS5lcXVhbHMoc2V0MikpIHsKKyAgICAgICAgICAgIGVycmxuKCJzdWJ0cmFjdCBpcyB3cm9uZy4iKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdEZvcm1hdHRlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RGb3JtYXR0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZTQxOWExCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RGb3JtYXR0ZXIuamF2YQpAQCAtMCwwICsxLDI0NSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXN0LnVuaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3RhbmRhcmRUYWJSdWxlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5NRm9ybWF0dGVyOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuUG9pbnQ7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworaW1wb3J0IGphdmEuYXd0LmltYWdlLkJ1ZmZlcmVkSW1hZ2U7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCitwdWJsaWMgZmluYWwgY2xhc3MgVGVzdEZvcm1hdHRlciBleHRlbmRzIFRlc3RGbXdrIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgbmV3IFRlc3RGb3JtYXR0ZXIoKS5ydW4oYXJncyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgUG9pbnQgT1JJR0lOID0gbmV3IFBvaW50KDAsIDApOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIERFRkFVTFRTOworICAgIHN0YXRpYyB7CisgICAgICAgIGZpbmFsIEZsb2F0IGZsb2F0WmVybyA9IG5ldyBGbG9hdCgwLjBmKTsKKworICAgICAgICBIYXNodGFibGUgZGVmYXVsdHMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkZBTUlMWSwgIlNlcmlmIik7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLldFSUdIVCwgbmV3IEZsb2F0KDEuMGYpKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuU0laRSwgbmV3IEZsb2F0KDE4LjBmKSk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBULCBuZXcgSW50ZWdlcigwKSk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQsIENvbG9yLmJsYWNrKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FLCBuZXcgSW50ZWdlcigtMSkpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5TVFJJS0VUSFJPVUdILCBCb29sZWFuLkZBTFNFKTsKKworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5FWFRSQV9MSU5FX1NQQUNJTkcsIGZsb2F0WmVybyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkZJUlNUX0xJTkVfSU5ERU5ULCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5NSU5fTElORV9TUEFDSU5HLCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5MSU5FX0ZMVVNILCBUZXh0QXR0cmlidXRlLkZMVVNIX0xFQURJTkcpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5MRUFESU5HX01BUkdJTiwgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuVFJBSUxJTkdfTUFSR0lOLCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5UQUJfUlVMRVIsIG5ldyBTdGFuZGFyZFRhYlJ1bGVyKCkpOworCisgICAgICAgIERFRkFVTFRTID0gbmV3IEF0dHJpYnV0ZU1hcChkZWZhdWx0cyk7CisgICAgfQorICAgIAorICAgIC8vIGFyZyB0byB0ZXN0TGluZUV4Y2VwdGlvbnMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgVU5LTk9XTiA9IC0xOworCisgICAgcHJpdmF0ZSBHcmFwaGljcyBmR3JhcGhpY3M7CisKKyAgICBwdWJsaWMgVGVzdEZvcm1hdHRlcigpIHsKKworICAgICAgICBmR3JhcGhpY3MgPSBuZXcgQnVmZmVyZWRJbWFnZSgxMDAsIDEwMCwgQnVmZmVyZWRJbWFnZS5UWVBFXzNCWVRFX0JHUikuZ2V0R3JhcGhpY3MoKTsKKyAgICAgICAgCisgICAgICAgIC8vSkRLIDEuMToKKyAgICAgICAgLy9GcmFtZSBmID0gbmV3IEZyYW1lKCk7CisgICAgICAgIC8vZi5zaG93KCk7CisgICAgICAgIC8vZkdyYXBoaWNzID0gZi5nZXRHcmFwaGljcygpOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIGZpdmVMaW5lcyA9ICJhXG5iXG5jXG5kXG5lIjsKKyAgICBwcml2YXRlIFN0cmluZyB0d2VsdmVMaW5lcyA9IGZpdmVMaW5lcyArICJcbiIgKyBmaXZlTGluZXMgKyAiXG5mXG4iOworICAgIEF0dHJpYnV0ZU1hcCBQTEFJTiA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworCisgICAgcHVibGljIHZvaWQgdGVzdCgpIHsKKworICAgICAgICBNQ29uc3RUZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dChmaXZlTGluZXMsIFBMQUlOKTsKKyAgICAgICAgX3Rlc3RMaW5lRXhjZXB0aW9ucyhtYWtlRm9ybWF0dGVyKHRleHQsIDEwMCwgdHJ1ZSksIDUpOworICAgICAgICBfdGVzdExpbmVBY2Nlc3MobWFrZUZvcm1hdHRlcih0ZXh0LCAxMDAsIHRydWUpLCA1KTsKKworICAgICAgICB0ZXh0ID0gbmV3IFN0eWxlZFRleHQodHdlbHZlTGluZXMsIFBMQUlOKTsKKyAgICAgICAgX3Rlc3RMaW5lRXhjZXB0aW9ucyhtYWtlRm9ybWF0dGVyKHRleHQsIDMsIGZhbHNlKSwgMTIpOworICAgICAgICBfdGVzdExpbmVBY2Nlc3MobWFrZUZvcm1hdHRlcih0ZXh0LCAxMDAsIHRydWUpLCAxMik7CisKKyAgICAgICAgX3Rlc3RXaXRoTW9kaWZpY2F0aW9uKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIF90ZXN0V2l0aE1vZGlmaWNhdGlvbigpIHsKKworICAgICAgICBNVGV4dCB0ZXh0ID0gbmV3IFN0eWxlZFRleHQoZml2ZUxpbmVzLCBQTEFJTik7CisgICAgICAgIE1Gb3JtYXR0ZXIgZm9ybWF0dGVyID0gbWFrZUZvcm1hdHRlcih0ZXh0LCAxMDAsIHRydWUpOworICAgICAgICBSZWN0YW5nbGUgdmlld1JlY3QgPSBuZXcgUmVjdGFuZ2xlKDAsIDAsIDEwMCwgSW50ZWdlci5NQVhfVkFMVUUpOworCisgICAgICAgIGZvcm1hdHRlci5zdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKyAgICAgICAgdGV4dC5hcHBlbmQobmV3IFN0eWxlZFRleHQoIlxuIiwgUExBSU4pKTsKKyAgICAgICAgZm9ybWF0dGVyLnVwZGF0ZUZvcm1hdCh0ZXh0Lmxlbmd0aCgpLTEsIDEsIHZpZXdSZWN0LCBPUklHSU4pOworCisgICAgICAgIF90ZXN0TGluZUFjY2Vzcyhmb3JtYXR0ZXIsIDYpOworCisgICAgICAgIGZvcm1hdHRlci5zdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKyAgICAgICAgdGV4dC5hcHBlbmQobmV3IFN0eWxlZFRleHQoImFkIiwgUExBSU4pKTsKKyAgICAgICAgZm9ybWF0dGVyLnVwZGF0ZUZvcm1hdCh0ZXh0Lmxlbmd0aCgpLTIsIDIsIHZpZXdSZWN0LCBPUklHSU4pOworICAgICAgICBfdGVzdExpbmVBY2Nlc3MoZm9ybWF0dGVyLCA2KTsKKyAgICAgICAgX3Rlc3RMaW5lRXhjZXB0aW9ucyhmb3JtYXR0ZXIsIDYpOworCisgICAgICAgIGZvcm1hdHRlci5zdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKyAgICAgICAgdGV4dC5yZW1vdmUoMCwgMSk7CisgICAgICAgIGZvcm1hdHRlci51cGRhdGVGb3JtYXQoMCwgMCwgdmlld1JlY3QsIE9SSUdJTik7CisgICAgICAgIF90ZXN0TGluZUFjY2Vzcyhmb3JtYXR0ZXIsIDYpOworICAgICAgICBfdGVzdExpbmVFeGNlcHRpb25zKGZvcm1hdHRlciwgNik7CisgICAgfQorCisKKyAgICBwcml2YXRlIE1Gb3JtYXR0ZXIgbWFrZUZvcm1hdHRlcihNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHdyYXApIHsKKworICAgICAgICByZXR1cm4gTUZvcm1hdHRlci5jcmVhdGVGb3JtYXR0ZXIodGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERUZBVUxUUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmR3JhcGhpY3MpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBfdGVzdExpbmVFeGNlcHRpb25zKE1Gb3JtYXR0ZXIgZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bUxpbmVzKSB7CisKKyAgICAgICAgaWYgKG51bUxpbmVzID09IFVOS05PV04pIHsKKyAgICAgICAgICAgIG51bUxpbmVzID0gZm9ybWF0dGVyLmdldExpbmVDb3VudCgpOworICAgICAgICB9CisKKyAgICAgICAgYm9vbGVhbiBjYXVnaHQgPSBmYWxzZTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9ybWF0dGVyLmxpbmVSYW5nZUxvdyhudW1MaW5lcyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGNhdWdodCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWNhdWdodCkgeworICAgICAgICAgICAgZXJybG4oIkRpZG4ndCBnZXQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgY2F1Z2h0ID0gZmFsc2U7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvcm1hdHRlci5saW5lUmFuZ2VMaW1pdChudW1MaW5lcyk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGNhdWdodCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWNhdWdodCkgeworICAgICAgICAgICAgZXJybG4oIkRpZG4ndCBnZXQgZXhjZXB0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgY2F1Z2h0ID0gZmFsc2U7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZvcm1hdHRlci5saW5lR3JhcGhpY1N0YXJ0KG51bUxpbmVzKzEpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBjYXVnaHQgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFjYXVnaHQpIHsKKyAgICAgICAgICAgIGVycmxuKCJEaWRuJ3QgZ2V0IGV4Y2VwdGlvbiIpOworICAgICAgICB9CisgICAgICAgIGNhdWdodCA9IGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBfdGVzdExpbmVBY2Nlc3MoTUZvcm1hdHRlciBmb3JtYXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtTGluZXMpIHsKKworICAgICAgICBpZiAobnVtTGluZXMgPT0gVU5LTk9XTikgeworICAgICAgICAgICAgbnVtTGluZXMgPSBmb3JtYXR0ZXIuZ2V0TGluZUNvdW50KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZm9ybWF0dGVyLmxpbmVHcmFwaGljU3RhcnQoMCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkxpbmUgMCBkb2Vzbid0IHN0YXJ0IGF0IGhlaWdodCAwIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZvcm1hdHRlci5saW5lUmFuZ2VMb3coMCkgIT0gMCkgeworICAgICAgICAgICAgZXJybG4oIkxpbmUgMCBkb2Vzbid0IHN0YXJ0IGF0IGNoYXJhY3RlciAwIik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGFzdExpbWl0ID0gZm9ybWF0dGVyLmxpbmVSYW5nZUxpbWl0KDApOworICAgICAgICBmaW5hbCBpbnQgbGluZUJvdW5kID0gZm9ybWF0dGVyLmxpbmVCb3VuZCgpOworICAgICAgICBpbnRbXSBoaXRYID0gbmV3IGludFtdIHsgLTEsIDEsIGxpbmVCb3VuZCArIDIgfTsKKworICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisKKyAgICAgICAgZm9yIChpbnQgaT0xOyBpIDwgbnVtTGluZXM7IGkrKykgeworCisgICAgICAgICAgICBpbnQgaGVpZ2h0ID0gZm9ybWF0dGVyLmxpbmVHcmFwaGljU3RhcnQoaSk7CisgICAgICAgICAgICBpZiAobGFzdExpbWl0ICE9IGZvcm1hdHRlci5saW5lUmFuZ2VMb3coaSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigibGFzdExpbmUgbGltaXQgaXMgbm90IGN1cnJlbnQgbGluZSBzdGFydCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IGxpbWl0ID0gZm9ybWF0dGVyLmxpbmVSYW5nZUxpbWl0KGkpOworCisgICAgICAgICAgICBpZiAobGltaXQgPCBsYXN0TGltaXQgfHwgKGxpbWl0ID09IGxhc3RMaW1pdCAmJiBpICE9IG51bUxpbmVzLTEpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oImxpbmUgaGFzIG5lZ2F0aXZlIG9yIDAgbGVuZ3RoIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBuZXh0SGVpZ2h0ID0gZm9ybWF0dGVyLmxpbmVHcmFwaGljU3RhcnQoaSsxKTsKKyAgICAgICAgICAgIGlmIChuZXh0SGVpZ2h0IDw9IGhlaWdodCkgeworICAgICAgICAgICAgICAgIGVycmxuKCIwLWhlaWdodCBsaW5lIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgaW5jQW1vdW50ID0gTWF0aC5tYXgoKG5leHRIZWlnaHQtaGVpZ2h0KS80LCAxKTsKKyAgICAgICAgICAgIGZvciAoaW50IGhpdFkgPSBoZWlnaHQ7IGhpdFkgPCBuZXh0SGVpZ2h0OyBoaXRZICs9IGluY0Ftb3VudCkgeworCisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRlci5saW5lQXRIZWlnaHQoaGl0WSkgIT0gaSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigibGluZUF0SGVpZ2h0IGlzIHdyb25nIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaj0wOyBqIDwgaGl0WC5sZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBmb3JtYXR0ZXIucG9pbnRUb1RleHRPZmZzZXQob2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpdFhbal0sIGhpdFksIE9SSUdJTiwgbnVsbCwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0LmZPZmZzZXQgPCBsYXN0TGltaXQgfHwgb2Zmc2V0LmZPZmZzZXQgPiBsaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkluY29uc2lzdGVudCBvZmZzZXQgZnJvbSBwb2ludFRvVGV4dE9mZnNldCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIC8vaWYgKGZvcm1hdHRlci5saW5lQ29udGFpbmluZyhvZmZzZXQpICE9IGkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gICAgaW50IGRlYnVnID0gZm9ybWF0dGVyLmxpbmVDb250YWluaW5nKG9mZnNldCk7CisgICAgICAgICAgICAgICAgICAgIC8vICAgIGVycmxuKCJsaW5lQ29udGFpbmluZyBpcyBpbmNvcnJlY3QiKTsKKyAgICAgICAgICAgICAgICAgICAgLy99CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsYXN0TGltaXQgPSBsaW1pdDsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdE1UZXh0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdE1UZXh0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmZhNWQzZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0TVRleHQuamF2YQpAQCAtMCwwICsxLDcxOCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXN0LnVuaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCitpbXBvcnQgamF2YS50ZXh0LkNoYXJhY3Rlckl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKK2ltcG9ydCBqYXZhLmlvLio7CisKK3B1YmxpYyBjbGFzcyBUZXN0TVRleHQgZXh0ZW5kcyBUZXN0Rm13ayB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIG5ldyBUZXN0TVRleHQoKS5ydW4oYXJncyk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBURVNUX0lURVJBVElPTlMgPSA1MDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBTVFlMRV9URVNUX0lURVJBVElPTlMgPSA1MDAwOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgUkFORF9TRUVEID0gNTk4NDM2OworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IE5PVF9JTl9NT05LRVlfVEVTVCA9IC01MDAwOworICAgIHByaXZhdGUgaW50IHRlc3RJdGVyYXRpb24gPSBOT1RfSU5fTU9OS0VZX1RFU1Q7CisgICAgcHJpdmF0ZSBpbnQgdGhlQ2FzZSA9IE5PVF9JTl9NT05LRVlfVEVTVDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBTdHlsZU1vZGlmaWVyIGNyZWF0ZU1pbnVzTW9kaWZpZXIoZmluYWwgT2JqZWN0IGF0dHIpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHlsZU1vZGlmaWVyKCkgeworICAgICAgICAgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBtb2RpZnlTdHlsZShBdHRyaWJ1dGVNYXAgc3R5bGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3R5bGUucmVtb3ZlQXR0cmlidXRlKGF0dHIpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisgICAgCisgICAgICAgIHNpbXBsZVRlc3QoKTsKKyAgICAgICAgc3R5bGVUZXN0KCk7CisgICAgICAgIG1vbmtleVRlc3QodHJ1ZSk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNpbXBsZVRlc3QoKSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIGJvbGRTdHlsZSA9IG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5XRUlHSFQsIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQpOworICAgICAgICBBdHRyaWJ1dGVNYXAgaXRhbGljU3R5bGUgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgVGV4dEF0dHJpYnV0ZS5QT1NUVVJFX09CTElRVUUpOworCisgICAgICAgIE1Db25zdFRleHQgYWxsQm9sZCA9IG5ldyBTdHlsZWRUZXh0KCJiYmJiYiIsIGJvbGRTdHlsZSk7CisgICAgICAgIE1Db25zdFRleHQgYWxsSXRhbGljID0gbmV3IFN0eWxlZFRleHQoImlpaSIsIGl0YWxpY1N0eWxlKTsKKyAgICAgICAgTUNvbnN0VGV4dCBwbGFpbiA9IG5ldyBTdHlsZWRUZXh0KCJwcHBwcHAiLCBBdHRyaWJ1dGVNYXAuRU1QVFlfQVRUUklCVVRFX01BUCk7CisKKyAgICAgICAgeworICAgICAgICAgICAgTVRleHQgYnVmID0gbmV3IFN0eWxlZFRleHQoKTsKKyAgICAgICAgICAgIGludCB0cyA9IGJ1Zi5nZXRUaW1lU3RhbXAoKTsKKyAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYWxsQm9sZCk7CisgICAgICAgICAgICBidWYuYXBwZW5kKGFsbEl0YWxpYyk7CisKKyAgICAgICAgICAgIGlmICh0cyA9PSBidWYuZ2V0VGltZVN0YW1wKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiVGltZSBzdGFtcCBub3QgaW5jcmVtZW50ZWQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gc2hvdWxkIGJlIGJiYmJiaWlpIG5vdworCisgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpICE9IGFsbEJvbGQubGVuZ3RoKCkgKyBhbGxJdGFsaWMubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiTGVuZ3RoIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBidWYubGVuZ3RoKCk7IGkrKykgeworCisgICAgICAgICAgICAgICAgY2hhciByaWdodENoYXI7CisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHJpZ2h0U3R5bGU7CisKKyAgICAgICAgICAgICAgICBpZiAoaSA8IGFsbEJvbGQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmlnaHRDaGFyID0gYWxsQm9sZC5hdCgwKTsKKyAgICAgICAgICAgICAgICAgICAgcmlnaHRTdHlsZSA9IGJvbGRTdHlsZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJpZ2h0Q2hhciA9IGFsbEl0YWxpYy5hdCgwKTsKKyAgICAgICAgICAgICAgICAgICAgcmlnaHRTdHlsZSA9IGl0YWxpY1N0eWxlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChidWYuYXQoaSkgIT0gcmlnaHRDaGFyKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXIgaXMgd3JvbmcuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICghYnVmLmNoYXJhY3RlclN0eWxlQXQoaSkuZXF1YWxzKHJpZ2h0U3R5bGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJTdHlsZSBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBwb3MgPSAwOworCisgICAgICAgICAgICBpZiAoIWJ1Zi5jaGFyYWN0ZXJTdHlsZUF0KHBvcykuZXF1YWxzKGJvbGRTdHlsZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiRmlyc3Qgc3R5bGUgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYnVmLmNoYXJhY3RlclN0eWxlTGltaXQocG9zKSAhPSBhbGxCb2xkLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlJ1biBsZW5ndGggaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBvcyA9IGFsbEJvbGQubGVuZ3RoKCk7CisKKyAgICAgICAgICAgIGlmICghYnVmLmNoYXJhY3RlclN0eWxlQXQocG9zKS5lcXVhbHMoaXRhbGljU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlNlY29uZCBzdHlsZSBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChidWYuY2hhcmFjdGVyU3R5bGVMaW1pdChwb3MpICE9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSdW4gbGVuZ3RoIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYnVmLnJlc2V0RGFtYWdlZFJhbmdlKCk7CisgICAgICAgICAgICAgICAgaW50IG9sZExlbmd0aCA9IGJ1Zi5sZW5ndGgoKTsKKyAgICAgICAgICAgICAgICBidWYucmVwbGFjZShidWYubGVuZ3RoKCksIGJ1Zi5sZW5ndGgoKSwgYWxsQm9sZCwgMCwgYWxsQm9sZC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgLy8gYmJiYmJpaWliYmJiYgorCisgICAgICAgICAgICAgICAgaWYgKGJ1Zi5kYW1hZ2VkUmFuZ2VTdGFydCgpICE9IG9sZExlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGFtYWdlZCByYW5nZSBzdGFydCBpcyBpbmNvcnJlY3QiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGJ1Zi5kYW1hZ2VkUmFuZ2VMaW1pdCgpICE9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGFtYWdlZCByYW5nZSBsaW1pdCBpcyBpbmNvcnJlY3QiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBzdGFydCA9IGFsbEJvbGQubGVuZ3RoKCk7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBzdGFydCArIGFsbEl0YWxpYy5sZW5ndGgoKTsKKyAgICAgICAgICAgIGJ1Zi5yZW1vdmUoc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgICAgIC8vIGJiYmJiYmJiYmIKKworICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSAhPSAyICogYWxsQm9sZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUZXh0IHNob3VsZCBiZSB0d2ljZSB0aGUgbGVuZ3RoIG9mIGJvbGQgdGV4dC4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcG9zID0gYnVmLmxlbmd0aCgpIC8gMjsKKyAgICAgICAgICAgIGlmIChidWYuY2hhcmFjdGVyU3R5bGVTdGFydChwb3MpICE9IDAgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYuY2hhcmFjdGVyU3R5bGVMaW1pdChwb3MpICE9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSdW4gcmFuZ2UgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWJ1Zi5jaGFyYWN0ZXJTdHlsZUF0KHBvcykuZXF1YWxzKGJvbGRTdHlsZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUnVuIHN0eWxlIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cyA9IGJ1Zi5nZXRUaW1lU3RhbXAoKTsKKyAgICAgICAgICAgIENoYXJhY3Rlckl0ZXJhdG9yIGNJdGVyID0gYnVmLmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgICAgICAgICBmb3IgKGNoYXIgY2ggPSBjSXRlci5maXJzdCgpOyBjaCAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FOyBjaCA9IGNJdGVyLm5leHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChjaCAhPSBhbGxCb2xkLmF0KDApKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXIgaXMgd3JvbmcuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodHMgIT0gYnVmLmdldFRpbWVTdGFtcCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlRpbWUgc3RhbXAgc2hvdWxkIG5vdCBoYXZlIGNoYW5nZWQiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYnVmLnJlcGxhY2UoMCwgMSwgcGxhaW4sIDAsIHBsYWluLmxlbmd0aCgpKTsKKworICAgICAgICAgICAgaWYgKHRzID09IGJ1Zi5nZXRUaW1lU3RhbXAoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJUaW1lIHN0YW1wIG5vdCBpbmNyZW1lbnRlZCIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBwcHBwcHBiYmJiYmJiYmIKKyAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKHBsYWluLmxlbmd0aCgpLCBidWYubGVuZ3RoKCksIGFsbEl0YWxpYywgMCwgYWxsSXRhbGljLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIC8vIHBwcHBwcGlpaQorCisgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpICE9IGFsbEl0YWxpYy5sZW5ndGgoKStwbGFpbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJMZW5ndGggaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBvcyA9IDA7CisgICAgICAgICAgICBpZiAoYnVmLmNoYXJhY3RlclN0eWxlTGltaXQocG9zKSAhPSBwbGFpbi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJSdW4gbGltaXQgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBvcyA9IHBsYWluLmxlbmd0aCgpOworICAgICAgICAgICAgaWYgKGJ1Zi5jaGFyYWN0ZXJTdHlsZUxpbWl0KHBvcykgIT0gYnVmLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlJ1biBsaW1pdCBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYnVmLnJlcGxhY2UocGxhaW4ubGVuZ3RoKCksIHBsYWluLmxlbmd0aCgpLCBhbGxCb2xkLCAwLCBhbGxCb2xkLmxlbmd0aCgpKTsKKyAgICAgICAgICAgIC8vIHBwcHBwcGJiYmJiaWlpCisKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdCA9IGJ1Zi5jaGFyYWN0ZXJTdHlsZUF0KDEpOworICAgICAgICAgICAgaWYgKCFzdC5lcXVhbHMoQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlN0eWxlIGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGJ1Zi5jaGFyYWN0ZXJTdHlsZVN0YXJ0KDEpICE9IDAgfHwgYnVmLmNoYXJhY3RlclN0eWxlTGltaXQoMSkgIT0gcGxhaW4ubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGUgc3RhcnQgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0ID0gYnVmLmNoYXJhY3RlclN0eWxlQXQoYnVmLmxlbmd0aCgpIC0gMSk7CisgICAgICAgICAgICBpZiAoIXN0LmVxdWFscyhpdGFsaWNTdHlsZSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGUgaXMgd3JvbmcuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYnVmLmNoYXJhY3RlclN0eWxlU3RhcnQoYnVmLmxlbmd0aCgpIC0gMSkgIT0gcGxhaW4ubGVuZ3RoKCkrYWxsQm9sZC5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJTdHlsZSBzdGFydCBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGJ1Zi5jaGFyYWN0ZXJTdHlsZUxpbWl0KGJ1Zi5sZW5ndGgoKSAtIDEpICE9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgIGVycmxuKCJTdHlsZSBsaW1pdCBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCByYW5kSW50KFJhbmRvbSByYW5kLCBpbnQgbGltaXQpIHsKKworICAgICAgICByZXR1cm4gcmFuZEludChyYW5kLCAwLCBsaW1pdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHJhbmRJbnQoUmFuZG9tIHJhbmQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgaWYgKHN0YXJ0ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJhbmdlIGxlbmd0aCBpcyBuZWdhdGl2ZS4iKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChzdGFydCA9PSBsaW1pdCkgeworICAgICAgICAgICAgcmV0dXJuIHN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHN0YXJ0ICsgKE1hdGguYWJzKHJhbmQubmV4dEludCgpKSUobGltaXQtc3RhcnQpKSA7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc3R5bGVUZXN0KCkgeworCisgICAgICAgIE1UZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dCgiMDEyMzQ1Njc4OSIsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKworICAgICAgICBBdHRyaWJ1dGVNYXBbXSBzdHlsZXMgPSBuZXcgQXR0cmlidXRlTWFwW3RleHQubGVuZ3RoKCldOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzdHlsZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHN0eWxlc1tpXSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgICAgICB9CisgICAgICAgIEF0dHJpYnV0ZU1hcFtdIG9sZFN0eWxlcyA9IG5ldyBBdHRyaWJ1dGVNYXBbc3R5bGVzLmxlbmd0aF07CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoc3R5bGVzLCAwLCBvbGRTdHlsZXMsIDAsIHN0eWxlcy5sZW5ndGgpOworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBiaWdTdHlsZSA9IG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUsIFRleHRBdHRyaWJ1dGUuVU5ERVJMSU5FX09OKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRBdHRyaWJ1dGUoVGV4dEF0dHJpYnV0ZS5TSVpFLCBuZXcgRmxvYXQoMjMuMGYpKTsKKworICAgICAgICBTdHlsZU1vZGlmaWVyW10gbW9kaWZpZXJzID0geworICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZXBsYWNlTW9kaWZpZXIobmV3IEF0dHJpYnV0ZU1hcChUZXh0QXR0cmlidXRlLldFSUdIVCwgVGV4dEF0dHJpYnV0ZS5XRUlHSFRfQk9MRCkpLAorICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVBZGRNb2RpZmllcihuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuV0VJR0hULCBuZXcgRmxvYXQoMS4wZikpKSwKKyAgICAgICAgICAgIGNyZWF0ZU1pbnVzTW9kaWZpZXIoVGV4dEF0dHJpYnV0ZS5XRUlHSFQpLAorCisgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBuZXcgRmxvYXQoMC4wZikpKSwKKyAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBUZXh0QXR0cmlidXRlLlBPU1RVUkVfT0JMSVFVRSkpLAorICAgICAgICAgICAgY3JlYXRlTWludXNNb2RpZmllcihUZXh0QXR0cmlidXRlLlBPU1RVUkUpLAorCisgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKGJpZ1N0eWxlKSwKKyAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKGJpZ1N0eWxlKSwKKyAgICAgICAgICAgIGNyZWF0ZU1pbnVzTW9kaWZpZXIoYmlnU3R5bGUuZ2V0S2V5U2V0KCkpCisgICAgICAgIH07CisKKyAgICAgICAgUmFuZG9tIHJhbmQgPSBuZXcgUmFuZG9tKFJBTkRfU0VFRCk7CisgICAgICAgIGZpbmFsIGludCBzdG9wQXQgPSA0OworCisgICAgICAgIGZvciAoaW50IHRlc3RJdGVyYXRpb249MDsgdGVzdEl0ZXJhdGlvbiA8IFNUWUxFX1RFU1RfSVRFUkFUSU9OUyArIDE7IHRlc3RJdGVyYXRpb24rKykgeworCisgICAgICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KHN0eWxlcywgMCwgb2xkU3R5bGVzLCAwLCBzdHlsZXMubGVuZ3RoKTsKKworICAgICAgICAgICAgaW50IHN0YXJ0aW5nQXQgPSBJbnRlZ2VyLk1BWF9WQUxVRTsKKyAgICAgICAgICAgIGludCBlbmRpbmdBdCA9IEludGVnZXIuTUlOX1ZBTFVFOworICAgICAgICAgICAgaW50IG9sZFRzID0gdGV4dC5nZXRUaW1lU3RhbXAoKTsKKworICAgICAgICAgICAgLy8gaGFjayB3YXkgdG8gZG8gYW4gaW52YXJpYW50IGNoZWNrIGJlZm9yZSBzdGFydGluZy4uLgorICAgICAgICAgICAgaWYgKHRlc3RJdGVyYXRpb24gIT0gMCkgeworICAgICAgICAgICAgICAgIC8vIG1vZGlmeSBzdHlsZXMKKyAgICAgICAgICAgICAgICB0ZXh0LnJlc2V0RGFtYWdlZFJhbmdlKCk7CisgICAgICAgICAgICAgICAgc3RhcnRpbmdBdCA9IHJhbmRJbnQocmFuZCwgc3R5bGVzLmxlbmd0aCsxKTsKKyAgICAgICAgICAgICAgICBlbmRpbmdBdCA9IHJhbmRJbnQocmFuZCwgc3RhcnRpbmdBdCwgc3R5bGVzLmxlbmd0aCsxKTsKKyAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyID0gbW9kaWZpZXJzW3JhbmRJbnQocmFuZCwgbW9kaWZpZXJzLmxlbmd0aCldOworCisgICAgICAgICAgICAgICAgaWYgKHRlc3RJdGVyYXRpb24gPT0gc3RvcEF0KSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RJdGVyYXRpb24gPSBzdG9wQXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRleHQubW9kaWZ5Q2hhcmFjdGVyU3R5bGVzKHN0YXJ0aW5nQXQsIGVuZGluZ0F0LCBtb2RpZmllcik7CisKKyAgICAgICAgICAgICAgICBmb3IgKGludCBqPXN0YXJ0aW5nQXQ7IGogPCBlbmRpbmdBdDsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIHN0eWxlc1tqXSA9IG1vZGlmaWVyLm1vZGlmeVN0eWxlKHN0eWxlc1tqXSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBjaGVjayBpbnZhcmlhbnRzCisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgb2xkU3R5bGUgPSBudWxsOworICAgICAgICAgICAgaW50IHRleHRMZW5ndGggPSB0ZXh0Lmxlbmd0aCgpOworICAgICAgICAgICAgZm9yIChpbnQgcnVuU3RhcnQgPSAwOyBydW5TdGFydCA8IHRleHRMZW5ndGg7KSB7CisKKyAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgY3VycmVudFN0eWxlID0gdGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHJ1blN0YXJ0KTsKKyAgICAgICAgICAgICAgICBpbnQgcnVuTGltaXQgPSB0ZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocnVuU3RhcnQpOworICAgICAgICAgICAgICAgIGlmIChydW5TdGFydCA+PSBydW5MaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiUnVuIGxlbmd0aCBpcyBub3QgcG9zaXRpdmUiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRTdHlsZS5lcXVhbHMob2xkU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgICAgIGVycmxuKCJTdHlsZXMgZGlkbid0IG1lcmdlIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9yIChpbnQgcG9zPXJ1blN0YXJ0OyBwb3MgPCBydW5MaW1pdDsgcG9zKyspIHsKKyAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGNoYXJTdHlsZUF0UG9zID0gdGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U3R5bGUgIT0gY2hhclN0eWxlQXRQb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJdGVyYXRvciBzdHlsZSBpcyBub3QgZXF1YWwgdG8gdGV4dCBzdHlsZSBhdCAiICsgcG9zICsgIi4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZXhwZWN0ZWQgPSBzdHlsZXNbcG9zXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50U3R5bGUuZXF1YWxzKGV4cGVjdGVkKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkl0ZXJhdG9yIHN0eWxlIGRvZXNuJ3QgbWF0Y2ggZXhwZWN0ZWQgc3R5bGUgYXQgIiArIHBvcyArICIuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCEodGV4dC5jaGFyYWN0ZXJTdHlsZVN0YXJ0KHBvcykgPT0gcnVuU3RhcnQpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgISh0ZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocG9zKSA9PSBydW5MaW1pdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJzdHlsZSBydW4gc3RhcnQgLyBsaW1pdCBpcyBub3QgY29uc2lzdGVudCIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJ1blN0YXJ0ID0gcnVuTGltaXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodGV4dExlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAodGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHRleHRMZW5ndGgpICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHRleHRMZW5ndGgtMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNoYXJhY3RlciBzdHlsZXMgYXQgZW5kIGFyZW4ndCB0aGUgc2FtZSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY2hlY2sgZGFtYWdlZCByYW5nZToKKyAgICAgICAgICAgIGludCBkYW1hZ2VTdGFydCA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICAgICAgaW50IGRhbWFnZUxpbWl0ID0gSW50ZWdlci5NSU5fVkFMVUU7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCB0ZXh0TGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoIXN0eWxlc1tpXS5lcXVhbHMob2xkU3R5bGVzW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBkYW1hZ2VTdGFydCA9IE1hdGgubWluKGksIGRhbWFnZVN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgZGFtYWdlTGltaXQgPSBNYXRoLm1heChpKzEsIGRhbWFnZUxpbWl0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZGFtYWdlU3RhcnQgIT0gdGV4dC5kYW1hZ2VkUmFuZ2VTdGFydCgpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFtYWdlTGltaXQgIT0gdGV4dC5kYW1hZ2VkUmFuZ2VMaW1pdCgpKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIlRlc3QgaXRlcmF0aW9uOiAiICsgdGVzdEl0ZXJhdGlvbik7CisgICAgICAgICAgICAgICAgbG9nbG4oInN0YXJ0aW5nQXQ6ICIgKyBzdGFydGluZ0F0ICsgIjsgIGVuZGluZ0F0OiAiICsgZW5kaW5nQXQpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJkYW1hZ2VTdGFydDogIiArIGRhbWFnZVN0YXJ0ICsgIjsgIGRhbWFnZUxpbWl0OiAiICsgZGFtYWdlTGltaXQpOworICAgICAgICAgICAgICAgIGxvZ2xuKCJ0ZXh0LnJhbmdlU3RhcnQ6ICIgKyB0ZXh0LmRhbWFnZWRSYW5nZVN0YXJ0KCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dC5yYW5nZUxpbWl0OiAiICsgdGV4dC5kYW1hZ2VkUmFuZ2VMaW1pdCgpKTsKKyAgICAgICAgICAgICAgICBlcnJsbigiRGFtYWdlIHJhbmdlIHN0YXJ0IG9yIGxpbWl0IGlzIG5vdCBleHBlY3RlZCB2YWx1ZSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoKGRhbWFnZUxpbWl0ID09IEludGVnZXIuTUlOX1ZBTFVFKSAhPSAob2xkVHMgPT0gdGV4dC5nZXRUaW1lU3RhbXAoKSkpIHsKKworICAgICAgICAgICAgICAgIGVycmxuKCJ0aW1lU3RhbXAgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtc2coU3RyaW5nIG1lc3NhZ2UsIGludCBsZXZlbCwgYm9vbGVhbiBpbmNDb3VudCwgYm9vbGVhbiBuZXdsbikgeworICAgICAgICBpZiAobGV2ZWwgPT0gRVJSICYmIHRlc3RJdGVyYXRpb24gIT0gTk9UX0lOX01PTktFWV9URVNUKSB7CisgICAgICAgICAgICBtZXNzYWdlID0gInRlc3RJdGVyYXRpb249Iit0ZXN0SXRlcmF0aW9uKyI7IHRlc3RDYXNlPSIrdGhlQ2FzZSttZXNzYWdlOworICAgICAgICB9CisgICAgICAgIHN1cGVyLm1zZyhtZXNzYWdlLCBsZXZlbCwgaW5jQ291bnQsIG5ld2xuKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBQZXJmb3JtIGEgcmFuZG9tIHNlcmllcyBvZiBvcGVyYXRpb25zIG9uIGFuIE1UZXh0IGFuZAorICAgICogY2hlY2sgdGhlIHJlc3VsdCBvZiBlYWNoIG9wZXJhdGlvbiBhZ2FpbnN0IGEgc2V0IG9mIGludmFyaWFudHMuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb25rZXlUZXN0KGJvb2xlYW4gc3RyZWFtaW5nKSB7CisKKyAgICAgICAgLyoKKyAgICAgICAgICAgIFlvdSBjYW4gYWRkIGFueSBvcGVyYXRpb24gdG8gdGhlIHN3aXRjaCBzdGF0ZW1lbnQgcHJvdmlkZWQgaXQKKyAgICAgICAgICAgIHByZXNlcnZlcyB0aGUgZm9sbG93aW5nIGludmFyaWFudHM6CisgICAgICAgICAgICAtIFRoZSBTdHJpbmcgcGxhaW5UZXh0IGNvbnRhaW5zIHRoZSBzYW1lIHRleHQgYXMgdGhlIFN0eWxlZFN0cmluZ0J1ZmZlci4KKyAgICAgICAgICAgICAgT2J2aW91c2x5LCBmb3IgdGhlIHRlc3QgdG8gYmUgbWVhbmluZ2Z1bCBwbGFpblRleHQgbXVzdCBiZSBjb21wdXRlZAorICAgICAgICAgICAgICBpbmRlcGVuZGVudGx5IG9mIHRoZSBidWZmZXIgKGllIGRvbid0IHdyaXRlOiAgcGxhaW5UZXh0ID0gYnVmLmdldFN0eWxlZFN0cmluZygpLnRvU3RyaW5nKCkpLgorICAgICAgICAgICAgLSBFdmVyeSAnYicgaXMgYm9sZCwgZXZlcnkgJ2knIGlzIGl0YWxpYywgZXZlcnkgJ3AnIGlzIHBsYWluLCBhbmQKKyAgICAgICAgICAgICAgbm8gb3RoZXIgY2hhcmFjdGVycyBhcHBlYXIgaW4gdGhlIHRleHQuCisgICAgICAgICovCisKKyAgICAgICAgQXR0cmlidXRlTWFwIGJvbGRBdHRycyA9IG5ldyBBdHRyaWJ1dGVNYXAoVGV4dEF0dHJpYnV0ZS5XRUlHSFQsIFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQpOworICAgICAgICBBdHRyaWJ1dGVNYXAgaXRhbGljQXR0cnMgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgVGV4dEF0dHJpYnV0ZS5QT1NUVVJFX09CTElRVUUpOworICAgICAgICBBdHRyaWJ1dGVNYXAgZW1wdHlBdHRycyA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworCisgICAgICAgIGZpbmFsIFN0cmluZyBib2xkMVN0cl9nZXRTdHJpbmcgPSAiYiI7CisgICAgICAgIE1Db25zdFRleHQgYm9sZDFTdHIgPSBuZXcgU3R5bGVkVGV4dChib2xkMVN0cl9nZXRTdHJpbmcsIGJvbGRBdHRycyk7CisKKyAgICAgICAgZmluYWwgU3RyaW5nIGl0YWxpYzFTdHJfZ2V0U3RyaW5nID0gImkiOworICAgICAgICBNQ29uc3RUZXh0IGl0YWxpYzFTdHIgPSBuZXcgU3R5bGVkVGV4dChpdGFsaWMxU3RyX2dldFN0cmluZywgaXRhbGljQXR0cnMpOworCisgICAgICAgIGZpbmFsIFN0cmluZyBwbGFpbjFTdHJfZ2V0U3RyaW5nID0gInAiOworICAgICAgICBNQ29uc3RUZXh0IHBsYWluMVN0ciA9IG5ldyBTdHlsZWRUZXh0KHBsYWluMVN0cl9nZXRTdHJpbmcsIGVtcHR5QXR0cnMpOworCisgICAgICAgIFN0eWxlZFRleHQgdGVtcCA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgIHRlbXAuYXBwZW5kKGJvbGQxU3RyKTsKKyAgICAgICAgdGVtcC5hcHBlbmQoaXRhbGljMVN0cik7CisgICAgICAgIGZpbmFsIFN0cmluZyBib2xkSXRhbGljU3RyX2dldFN0cmluZyA9IGJvbGQxU3RyX2dldFN0cmluZy5jb25jYXQoaXRhbGljMVN0cl9nZXRTdHJpbmcpOworICAgICAgICBNQ29uc3RUZXh0IGJvbGRJdGFsaWNTdHIgPSB0ZW1wOworCisgICAgICAgIHRlbXAgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICB0ZW1wLmFwcGVuZChib2xkMVN0cik7CisgICAgICAgIHRlbXAuYXBwZW5kKGJvbGQxU3RyKTsKKyAgICAgICAgdGVtcC5hcHBlbmQoYm9sZDFTdHIpOworICAgICAgICBmaW5hbCBTdHJpbmcgYm9sZDNTdHJfZ2V0U3RyaW5nID0gImJiYiI7CisgICAgICAgIE1Db25zdFRleHQgYm9sZDNTdHIgPSB0ZW1wOworCisgICAgICAgIE1UZXh0IGJ1ZiA9IG5ldyBTdHlsZWRUZXh0KCk7CisgICAgICAgIFN0cmluZyBwbGFpblRleHQgPSBuZXcgU3RyaW5nKCk7CisgICAgICAgIC8vaW50IHRlc3RJdGVyYXRpb249MDsgLSBub3cgaW5zdGFuY2UgdmFyaWFibGVzIHNvIGVycmxuIGNhbiByZXBvcnQgaXQKKyAgICAgICAgLy9pbnQgdGhlQ2FzZT0wOworCisgICAgICAgIGZpbmFsIGludCBOVU1fQ0FTRVMgPSAxNDsKKyAgICAgICAgYm9vbGVhbltdIGNhc2VzRXhlY3V0ZWQgPSBuZXcgYm9vbGVhbltOVU1fQ0FTRVNdOworICAgICAgICBmaW5hbCBpbnQgc3RvcEF0ID0gLTE7CisgICAgICAgIFJhbmRvbSByYW5kID0gbmV3IFJhbmRvbShSQU5EX1NFRUQpOworCisgICAgICAgIGZpbmFsIFN0cmluZyBBTFdBWVNfRElGRkVSRU5UID0gIlx1RkVGRiI7CisKKyAgICAgICAgICAgIGZvciAodGVzdEl0ZXJhdGlvbj0wOyB0ZXN0SXRlcmF0aW9uIDwgVEVTVF9JVEVSQVRJT05TOyB0ZXN0SXRlcmF0aW9uKyspIHsKKworICAgICAgICAgICAgICAgIHRoZUNhc2UgPSByYW5kSW50KHJhbmQsIE5VTV9DQVNFUyk7CisKKyAgICAgICAgICAgICAgICBjYXNlc0V4ZWN1dGVkW3RoZUNhc2VdID0gdHJ1ZTsKKworICAgICAgICAgICAgICAgIGlmICh0ZXN0SXRlcmF0aW9uID09IHN0b3BBdCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0SXRlcmF0aW9uID0gc3RvcEF0OyAgLy8gQ29udmVuaWVudCBwbGFjZSB0byBwdXQgYnJlYWtwb2ludAorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGludCB0aW1lU3RhbXAgPSBidWYuZ2V0VGltZVN0YW1wKCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIG9sZFBsYWluVGV4dCA9IHBsYWluVGV4dDsKKyAgICAgICAgICAgICAgICBpZiAob2xkUGxhaW5UZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZXJybG4oIm9sZFBsYWluVGV4dCBpcyBudWxsISIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHN3aXRjaCAodGhlQ2FzZSkgeworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBuZXcgc3RyaW5nOyByZXBsYWNlIGNoYXJzIGF0IHN0YXJ0IHdpdGggZGlmZmVyZW50IHN0eWxlCisgICAgICAgICAgICAgICAgICAgICAgICBidWYgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZChib2xkM1N0cik7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZSgwLCAxLCBpdGFsaWMxU3RyLCAwLCBpdGFsaWMxU3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKDAsIDAsIGl0YWxpYzFTdHIsIDAsIGl0YWxpYzFTdHIubGVuZ3RoKCkpOworCisgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSBib2xkM1N0cl9nZXRTdHJpbmcuc3Vic3RyaW5nKDEsIGJvbGQzU3RyLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IGl0YWxpYzFTdHJfZ2V0U3RyaW5nLmNvbmNhdChwbGFpblRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gaXRhbGljMVN0cl9nZXRTdHJpbmcuY29uY2F0KHBsYWluVGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICBvbGRQbGFpblRleHQgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVsZXRlIHRoZSBsYXN0IGNoYXJhY3RlciBmcm9tIHRoZSBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWYubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKDAsIDAsIGl0YWxpYzFTdHIsIDAsIGl0YWxpYzFTdHIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IGl0YWxpYzFTdHJfZ2V0U3RyaW5nOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBsYWluVGV4dCA9IEFMV0FZU19ESUZGRVJFTlQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVtb3ZlKGJ1Zi5sZW5ndGgoKS0xLCBidWYubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnN1YnN0cmluZygwLCBwbGFpblRleHQubGVuZ3RoKCktMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXBsYWNlIHNvbWUgb2YgdGhlIGJ1ZmZlciB3aXRoIGJvbGRJdGFsaWNTdHIKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByU3RhcnQgPSByYW5kSW50KHJhbmQsIGJ1Zi5sZW5ndGgoKSsxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCByU3RvcCA9IHJhbmRJbnQocmFuZCwgclN0YXJ0LCBidWYubGVuZ3RoKCkrMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZShyU3RhcnQsIHJTdG9wLCBib2xkSXRhbGljU3RyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbmV3U3RyaW5nID0gKHJTdGFydD4wKT8gcGxhaW5UZXh0LnN1YnN0cmluZygwLCByU3RhcnQpIDogbmV3IFN0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0cmluZyA9IG5ld1N0cmluZy5jb25jYXQoYm9sZEl0YWxpY1N0cl9nZXRTdHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyU3RvcCA8IHBsYWluVGV4dC5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3RyaW5nID0gbmV3U3RyaW5nLmNvbmNhdChwbGFpblRleHQuc3Vic3RyaW5nKHJTdG9wLCBwbGFpblRleHQubGVuZ3RoKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRQbGFpblRleHQgPSBBTFdBWVNfRElGRkVSRU5UOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IG5ld1N0cmluZzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcGVhdGVkbHkgaW5zZXJ0IHN0cmluZ3MgaW50byB0aGUgY2VudGVyIG9mIHRoZSBidWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5zUG9zID0gYnVmLmxlbmd0aCgpIC8gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcHJlZml4ID0gcGxhaW5UZXh0LnN1YnN0cmluZygwLCBpbnNQb3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBzdWZmaXggPSBwbGFpblRleHQuc3Vic3RyaW5nKGluc1BvcywgcGxhaW5UZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbWlkZGxlID0gbmV3IFN0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGlpPTA7IGlpPDQ7IGlpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCB3aGljaCA9IChpaSUyPT0wKT8gYm9sZEl0YWxpY1N0ciA6IGJvbGQzU3RyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgd2hpY2hTdHJpbmcgPSAoaWklMj09MCk/IGJvbGRJdGFsaWNTdHJfZ2V0U3RyaW5nIDogYm9sZDNTdHJfZ2V0U3RyaW5nOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGVtcFBvcyA9IGluc1BvcyttaWRkbGUubGVuZ3RoKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQodGVtcFBvcywgd2hpY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWRkbGUgPSBtaWRkbGUuY29uY2F0KHdoaWNoU3RyaW5nKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gcHJlZml4LmNvbmNhdChtaWRkbGUpLmNvbmNhdChzdWZmaXgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFBsYWluVGV4dCA9IEFMV0FZU19ESUZGRVJFTlQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICAgICAgICAgIC8vIGluc2VydCBib2xkMVN0ciBhdCBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoYm9sZDFTdHIpOworICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LmNvbmNhdChib2xkMVN0cl9nZXRTdHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgICAgICAvLyBkZWxldGUgYSBjaGFyYWN0ZXIgZnJvbSB0aGUgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVmLmxlbmd0aCgpID4gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZWxQb3MgPSByYW5kSW50KHJhbmQsIGJ1Zi5sZW5ndGgoKS0xKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVtb3ZlKGRlbFBvcywgZGVsUG9zKzEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHBsYWluVGV4dC5zdWJzdHJpbmcoMCwgZGVsUG9zKS5jb25jYXQocGxhaW5UZXh0LnN1YnN0cmluZyhkZWxQb3MrMSkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlcGxhY2UoMCwgMCwgcGxhaW4xU3RyLCAwLCBwbGFpbjFTdHIubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHBsYWluMVN0cl9nZXRTdHJpbmc7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgdGhlIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIgKGV4Y2VwdCB0aGUgZmlyc3QgY2hhcmFjdGVyKSB3aXRoIGl0c2VsZgorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCA9IGJ1Zi5sZW5ndGgoKSA+IDE/IDEgOiAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKHN0YXJ0LCBidWYubGVuZ3RoKCksIGJ1Zik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnN1YnN0cmluZygwLCBzdGFydCkuY29uY2F0KHBsYWluVGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGgoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGxhaW5UZXh0ID0gQUxXQVlTX0RJRkZFUkVOVDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICAgICAgICAgIC8vIGFwcGVuZCB0aGUgY29udGVudHMgb2YgdGhlIGJ1ZmZlciB0byBpdHNlbGYKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IGNvbnRlbnQgPSBidWY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmluc2VydChidWYubGVuZ3RoKCksIGNvbnRlbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9IHBsYWluVGV4dC5jb25jYXQocGxhaW5UZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSB0aGUgYnVmZmVyIHdpdGggYm9sZEl0YWxpY1N0citib2xkM1N0cgorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0IHJlcGxhY2VtZW50ID0gbmV3IFN0eWxlZFRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudC5hcHBlbmQoYm9sZEl0YWxpY1N0cik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZW1lbnQuYXBwZW5kKGJvbGQzU3RyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZSgwLCBidWYubGVuZ3RoKCksIHJlcGxhY2VtZW50LCAwLCByZXBsYWNlbWVudC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gYm9sZEl0YWxpY1N0cl9nZXRTdHJpbmcuY29uY2F0KGJvbGQzU3RyX2dldFN0cmluZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkUGxhaW5UZXh0ID0gQUxXQVlTX0RJRkZFUkVOVDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgOToKKyAgICAgICAgICAgICAgICAgICAgLy8gaW5zZXJ0IGJvbGQxU3RyIGF0IGVuZCAtIHNhbWUgYXMgNCBidXQgdXNlcyBkaWZmZXJlbnQgQVBJCisgICAgICAgICAgICAgICAgICAgICAgICBidWYucmVwbGFjZShidWYubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2xkMVN0cl9nZXRTdHJpbmcudG9DaGFyQXJyYXkoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2xkMVN0cl9nZXRTdHJpbmcubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2xkQXR0cnMpOworICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LmNvbmNhdChib2xkMVN0cl9nZXRTdHJpbmcpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGFsbAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW5UZXh0ID0gIiI7CisgICAgICAgICAgICAgICAgICAgICAgICBvbGRQbGFpblRleHQgPSBBTFdBWVNfRElGRkVSRU5UOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGFsbCAtIGRpZmZlcmVudCB3YXkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZW1vdmUoMCwgYnVmLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsYWluVGV4dCA9ICIiOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluc2VydCAnaScgYXQgM3JkIGNoYXJhY3RlciAob3IgbGFzdCwgaWYgZmV3ZXIgdGhhbiAzIGNoYXJzKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbnNQb3MgPSBNYXRoLm1pbihidWYubGVuZ3RoKCksIDMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZXBsYWNlKGluc1BvcywgaW5zUG9zLCAnaScsIGl0YWxpY0F0dHJzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHQgPSAocGxhaW5UZXh0LnN1YnN0cmluZygwLCBpbnNQb3MpKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25jYXQoaXRhbGljMVN0cl9nZXRTdHJpbmcpLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmNhdChwbGFpblRleHQuc3Vic3RyaW5nKGluc1BvcykpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxMzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJlYW1pbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaHJvd2FibGUgZXJyb3IgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ5dGVBcnJheU91dHB1dFN0cmVhbSBieXRlc091dCA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0T3V0cHV0U3RyZWFtIG9iak91dCA9IG5ldyBPYmplY3RPdXRwdXRTdHJlYW0oYnl0ZXNPdXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmpPdXQud3JpdGVPYmplY3QoYnVmKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlQXJyYXlJbnB1dFN0cmVhbSBieXRlc0luID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlc091dC50b0J5dGVBcnJheSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0SW5wdXRTdHJlYW0gb2JqSW4gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oYnl0ZXNJbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiA9IChNVGV4dCkgb2JqSW4ucmVhZE9iamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRQbGFpblRleHQgPSBudWxsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2goQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJTdHJlYW1pbmcgcHJvYmxlbTogIiArIGVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkludmFsaWQgY2FzZS4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aW1lIHN0YW1wIGlmIG9sZFBsYWluVGV4dCAhPSBudWxsLgorICAgICAgICAgICAgICAgIC8vIFRpbWUgc3RhbXAgc2hvdWxkIGJlIGRpZmZlcmVudCBpZmYKKyAgICAgICAgICAgICAgICAvLyBvbGRQbGFpblRleHQgPT0gcGxhaW5UZXh0CisgICAgICAgICAgICAgICAgaWYgKG9sZFBsYWluVGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgodGltZVN0YW1wPT1idWYuZ2V0VGltZVN0YW1wKCkpICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRQbGFpblRleHQuZXF1YWxzKHBsYWluVGV4dCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2xuKCJwbGFpblRleHQgaGFzaENvZGU6ICIgKyBwbGFpblRleHQuaGFzaENvZGUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dsbigib2xkUGxhaW5UZXh0IGhhc2hDb2RlOiAiICsgb2xkUGxhaW5UZXh0Lmhhc2hDb2RlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIlRpbWUgc3RhbXAgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBub3cgY2hlY2sgaW52YXJpYW50czoKKyAgICAgICAgICAgICAgICBpZiAocGxhaW5UZXh0Lmxlbmd0aCgpICE9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiTGVuZ3RocyBkb24ndCBtYXRjaCIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvciAoaW50IGo9MDsgaiA8IGJ1Zi5sZW5ndGgoKTsgaisrKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChidWYuYXQoaikgIT0gcGxhaW5UZXh0LmNoYXJBdChqKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkNoYXJhY3RlcnMgZG9uJ3QgbWF0Y2guIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQ7CisgICAgICAgICAgICAgICAgZm9yIChzdGFydCA9IDA7IHN0YXJ0IDwgYnVmLmxlbmd0aCgpOykgeworCisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydCAhPSBidWYuY2hhcmFjdGVyU3R5bGVTdGFydChzdGFydCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJzdHlsZSBzdGFydCBpcyB3cm9uZyIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCA9IGJ1Zi5jaGFyYWN0ZXJTdHlsZUxpbWl0KHN0YXJ0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0ID49IGxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigic3RhcnQgPj0gbGltaXQiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBjaGFyIGN1cnJlbnQgPSBwbGFpblRleHQuY2hhckF0KHN0YXJ0KTsKKworICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgY29tcCA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ID09ICdwJykgeworICAgICAgICAgICAgICAgICAgICAgICAgY29tcCA9IGVtcHR5QXR0cnM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudCA9PSAnYicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAgPSBib2xkQXR0cnM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudCA9PSAnaScpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAgPSBpdGFsaWNBdHRyczsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJBbiBpbnZhbGlkIGNoYXJhY3RlciBzbnVjayBpbiEiKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdGFydFN0eWxlID0gYnVmLmNoYXJhY3RlclN0eWxlQXQoc3RhcnQpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbXAuZXF1YWxzKHN0YXJ0U3R5bGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGUgaXMgbm90IGV4cGVjdGVkIHN0eWxlLiIpOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IHN0YXJ0OyBqIDwgbGltaXQ7IGorKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBsYWluVGV4dC5jaGFyQXQoaikgIT0gY3VycmVudCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJDaGFyYWN0ZXIgZG9lc24ndCBtYXRjaCBzdHlsZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWYuY2hhcmFjdGVyU3R5bGVBdChqKSAhPSBzdGFydFN0eWxlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCBzdHlsZSBpbiBydW4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmIChsaW1pdCA8IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBsYWluVGV4dC5jaGFyQXQobGltaXQpID09IGN1cnJlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiU3R5bGUgcnVuIGVuZHMgdG9vIHNvb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBsaW1pdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHN0YXJ0ICE9IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigiTGFzdCBsaW1pdCBpcyBub3QgYnVmZmVyIGxlbmd0aC4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyB3b24ndCB0cnkgdG8gY29tcHV0ZSBhbmQgY2hlY2sgZGFtYWdlZCByYW5nZTsgIGhvd2V2ZXIsCisgICAgICAgICAgICAgICAgLy8gaWYgbm9uZW1wdHkgaXQgc2hvdWxkIGFsd2F5cyBiZSB3aXRoaW4gdGV4dAorICAgICAgICAgICAgICAgIGludCBkYW1hZ2VTdGFydCA9IGJ1Zi5kYW1hZ2VkUmFuZ2VTdGFydCgpOworICAgICAgICAgICAgICAgIGludCBkYW1hZ2VMaW1pdCA9IGJ1Zi5kYW1hZ2VkUmFuZ2VMaW1pdCgpOworICAgICAgICAgICAgICAgIGlmIChkYW1hZ2VTdGFydCA9PSBJbnRlZ2VyLk1BWF9WQUxVRSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZGFtYWdlTGltaXQgIT0gSW50ZWdlci5NSU5fVkFMVUUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycmxuKCJJbnZhbGlkIGVtcHR5IGludGVydmFsIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChkYW1hZ2VTdGFydCA+IGRhbWFnZUxpbWl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJsbigiRGFtYWdlIHJhbmdlIGludmVydGVkIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGRhbWFnZVN0YXJ0IDwgMCB8fCBkYW1hZ2VMaW1pdCA+IGJ1Zi5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgZXJybG4oIkRhbWFnZSByYW5nZSBlbmRwb2ludCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgdGVzdEl0ZXJhdGlvbiA9IE5PVF9JTl9NT05LRVlfVEVTVDsKKyAgICAgICAgCisgICAgICAgIGJvb2xlYW4gYWxsQ2FzZXNFeGVjdXRlZCA9IHRydWU7CisgICAgICAgIGZvciAoaW50IGluZGV4PTA7IGluZGV4IDwgTlVNX0NBU0VTOyBpbmRleCsrKSB7CisgICAgICAgICAgICBhbGxDYXNlc0V4ZWN1dGVkICY9IGNhc2VzRXhlY3V0ZWRbaW5kZXhdOworICAgICAgICAgICAgaWYgKGNhc2VzRXhlY3V0ZWRbaW5kZXhdID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgbG9nbG4oIkNhc2UgIiArIGluZGV4ICsgIiBub3QgZXhlY3V0ZWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy9pZiAoYWxsQ2FzZXNFeGVjdXRlZCkgeworICAgICAgICAvLyAgICBsb2dsbigiQWxsIGNhc2VzIGV4ZWN1dGVkLiIpOworICAgICAgICAvL30KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdE1UZXh0U3RyZWFtaW5nLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXN0L3VuaXQvVGVzdE1UZXh0U3RyZWFtaW5nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTA1NzczOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0TVRleHRTdHJlYW1pbmcuamF2YQpAQCAtMCwwICsxLDE2MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXN0LnVuaXQ7CisKK2ltcG9ydCBjb20uaWJtLmljdS5kZXYudGVzdC5UZXN0Rm13azsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3RhbmRhcmRUYWJSdWxlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitwdWJsaWMgY2xhc3MgVGVzdE1UZXh0U3RyZWFtaW5nIGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBuZXcgVGVzdE1UZXh0U3RyZWFtaW5nKCkucnVuKGFyZ3MpOworICAgIH0KKworICAgIHB1YmxpYyBUZXN0TVRleHRTdHJlYW1pbmcoKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdCgpIHsKKworICAgICAgICBzaW1wbGVUZXN0KCk7CisgICAgICAgIGFsbEF0dHJpYnV0ZXNUZXN0KCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNpbXBsZVRlc3QoKSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisgICAgICAgIE1UZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dCgiSGVsbG8gd29ybGQhIiwgc3R5bGUpOworCisgICAgICAgIHN0cmVhbUFuZENvbXBhcmUodGV4dCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgVGVzdE1vZGlmaWVyIGV4dGVuZHMgU3R5bGVNb2RpZmllciB7CisKKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgZktleTsKKyAgICAgICAgcHJpdmF0ZSBPYmplY3QgZlZhbHVlOworCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgICAgIHJldHVybiBzdHlsZS5hZGRBdHRyaWJ1dGUoZktleSwgZlZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIFRlc3RNb2RpZmllcihPYmplY3Qga2V5LCBPYmplY3QgdmFsdWUpIHsKKworICAgICAgICAgICAgZktleSA9IGtleTsKKyAgICAgICAgICAgIGZWYWx1ZSA9IHZhbHVlOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGFsbEF0dHJpYnV0ZXNUZXN0KCkgeworCisgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQOworICAgICAgICBNVGV4dCB0ZXh0ID0gbmV3IFN0eWxlZFRleHQoIkhlbGxvIHdvcmxkISIsIHN0eWxlKTsKKworICAgICAgICBpbnQgbGVuZ3RoID0gdGV4dC5sZW5ndGgoKTsKKworICAgICAgICBmaW5hbCBib29sZWFuIENIQVJBQ1RFUiA9IHRydWU7CisgICAgICAgIGZpbmFsIGJvb2xlYW4gUEFSQUdSQVBIID0gZmFsc2U7CisKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLzIsIFRleHRBdHRyaWJ1dGUuRkFNSUxZLCAiVGltZXMiLCBDSEFSQUNURVIpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCBsZW5ndGgvMiwgbGVuZ3RoLCBUZXh0QXR0cmlidXRlLldFSUdIVCwgVGV4dEF0dHJpYnV0ZS5XRUlHSFRfQk9MRCwgQ0hBUkFDVEVSKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLzIsIFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwgVGV4dEF0dHJpYnV0ZS5QT1NUVVJFX09CTElRVUUsIENIQVJBQ1RFUik7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aC8yLCBUZXh0QXR0cmlidXRlLlNJWkUsIG5ldyBGbG9hdCgxMy43ZiksIENIQVJBQ1RFUik7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIGxlbmd0aC8yLCBsZW5ndGgsIFRleHRBdHRyaWJ1dGUuU1VQRVJTQ1JJUFQsIFRleHRBdHRyaWJ1dGUuU1VQRVJTQ1JJUFRfU1VCLCBDSEFSQUNURVIpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgvMiwgVGV4dEF0dHJpYnV0ZS5GT1JFR1JPVU5ELCBDb2xvci5ibHVlLCBDSEFSQUNURVIpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgvMiwgVGV4dEF0dHJpYnV0ZS5CQUNLR1JPVU5ELCBDb2xvci5yZWQsIENIQVJBQ1RFUik7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aC0xLCBUZXh0QXR0cmlidXRlLlNUUklLRVRIUk9VR0gsIEJvb2xlYW4uVFJVRSwgQ0hBUkFDVEVSKTsKKworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgsIFRleHRBdHRyaWJ1dGUuRVhUUkFfTElORV9TUEFDSU5HLCBuZXcgRmxvYXQoNCksIFBBUkFHUkFQSCk7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aCwgVGV4dEF0dHJpYnV0ZS5GSVJTVF9MSU5FX0lOREVOVCwgbmV3IEZsb2F0KDYpLCBQQVJBR1JBUEgpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgsIFRleHRBdHRyaWJ1dGUuTUlOX0xJTkVfU1BBQ0lORywgbmV3IEZsb2F0KDcpLCBQQVJBR1JBUEgpOworICAgICAgICBhZGRTdHlsZSh0ZXh0LCAwLCBsZW5ndGgsIFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwgVGV4dEF0dHJpYnV0ZS5GTFVTSF9UUkFJTElORywgUEFSQUdSQVBIKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLCBUZXh0QXR0cmlidXRlLkxFQURJTkdfTUFSR0lOLCBuZXcgRmxvYXQoOSksIFBBUkFHUkFQSCk7CisgICAgICAgIGFkZFN0eWxlKHRleHQsIDAsIGxlbmd0aCwgVGV4dEF0dHJpYnV0ZS5UUkFJTElOR19NQVJHSU4sIG5ldyBGbG9hdCg5KSwgUEFSQUdSQVBIKTsKKyAgICAgICAgYWRkU3R5bGUodGV4dCwgMCwgbGVuZ3RoLCBUZXh0QXR0cmlidXRlLlRBQl9SVUxFUiwgbmV3IFN0YW5kYXJkVGFiUnVsZXIoKSwgUEFSQUdSQVBIKTsKKworICAgICAgICBzdHJlYW1BbmRDb21wYXJlKHRleHQpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgYWRkU3R5bGUoTVRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlcikgeworCisgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIgPSBuZXcgVGVzdE1vZGlmaWVyKGtleSwgdmFsdWUpOworCisgICAgICAgIGlmIChjaGFyYWN0ZXIpIHsKKyAgICAgICAgICAgIHRleHQubW9kaWZ5Q2hhcmFjdGVyU3R5bGVzKHN0YXJ0LCBsaW1pdCwgbW9kaWZpZXIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGV4dC5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoc3RhcnQsIGxpbWl0LCBtb2RpZmllcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzdHJlYW1BbmRDb21wYXJlKE1UZXh0IHRleHQpIHsKKworICAgICAgICBUaHJvd2FibGUgZXJyb3IgPSBudWxsOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYnl0ZXNPdXQgPSBuZXcgQnl0ZUFycmF5T3V0cHV0U3RyZWFtKCk7CisgICAgICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb2JqT3V0ID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShieXRlc091dCk7CisgICAgICAgICAgICBvYmpPdXQud3JpdGVPYmplY3QodGV4dCk7CisKKyAgICAgICAgICAgIEJ5dGVBcnJheUlucHV0U3RyZWFtIGJ5dGVzSW4gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShieXRlc091dC50b0J5dGVBcnJheSgpKTsKKyAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9iakluID0gbmV3IE9iamVjdElucHV0U3RyZWFtKGJ5dGVzSW4pOworICAgICAgICAgICAgTVRleHQgc3RyZWFtZWRUZXh0ID0gKE1UZXh0KSBvYmpJbi5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICBpZiAoIWlzRXF1YWwodGV4dCwgc3RyZWFtZWRUZXh0KSkgeworICAgICAgICAgICAgICAgIGlzRXF1YWwodGV4dCwgc3RyZWFtZWRUZXh0KTsKKyAgICAgICAgICAgICAgICBlcnJsbigiU3RyZWFtZWQgdGV4dCBpcyBub3QgZXF1YWwiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorLyogICAgICAgIGNhdGNoKE9wdGlvbmFsRGF0YUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goU3RyZWFtQ29ycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfSovCisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlcnJvciAhPSBudWxsKSB7CisgICAgICAgICAgICBlcnJvci5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIGVycmxuKCJTZXJpYWxpemF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0VxdWFsKE1UZXh0IGxocywgTVRleHQgcmhzKSB7CisKKyAgICAgICAgcmV0dXJuIGxocy5lcXVhbHMocmhzKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGVzdC91bml0L1Rlc3RQYXJhZ3JhcGhTdHlsZXMuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0UGFyYWdyYXBoU3R5bGVzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmE1MjRkOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3Rlc3QvdW5pdC9UZXN0UGFyYWdyYXBoU3R5bGVzLmphdmEKQEAgLTAsMCArMSwzMzcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGVzdC51bml0OworCitpbXBvcnQgY29tLmlibS5pY3UuZGV2LnRlc3QuVGVzdEZtd2s7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGphdmEudXRpbC5SYW5kb207CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXN0UGFyYWdyYXBoU3R5bGVzIGV4dGVuZHMgVGVzdEZtd2sgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBuZXcgVGVzdFBhcmFncmFwaFN0eWxlcygpLnJ1bihhcmdzKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUkFORF9TRUVEID0gMTIzNDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTlVNX1RFU1RTID0gMjUwMDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gaXNQYXJhZ3JhcGhCcmVhayhjaGFyIGMpIHsKKworICAgICAgICByZXR1cm4gYyA9PSdcdTIwMjknIHx8IGMgPT0gJ1xuJzsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBPYmplY3QgS0VZID0gIktFWSI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIFBMQUlOID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIEFfU1RZTEUgPSBuZXcgQXR0cmlidXRlTWFwKEtFWSwgbmV3IENoYXJhY3RlcignYScpKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHlsZU1vZGlmaWVyIEFfTU9EID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihBX1NUWUxFKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBBdHRyaWJ1dGVNYXAgQl9TVFlMRSA9IG5ldyBBdHRyaWJ1dGVNYXAoS0VZLCBuZXcgQ2hhcmFjdGVyKCdiJykpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0eWxlTW9kaWZpZXIgQl9NT0QgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKEJfU1RZTEUpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEF0dHJpYnV0ZU1hcCBDX1NUWUxFID0gbmV3IEF0dHJpYnV0ZU1hcChLRVksIG5ldyBDaGFyYWN0ZXIoJ2MnKSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3R5bGVNb2RpZmllciBDX01PRCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllci5jcmVhdGVSZXBsYWNlTW9kaWZpZXIoQ19TVFlMRSk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIERfU1RZTEUgPSBuZXcgQXR0cmlidXRlTWFwKEtFWSwgbmV3IENoYXJhY3RlcignZCcpKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHlsZU1vZGlmaWVyIERfTU9EID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlcGxhY2VNb2RpZmllcihEX1NUWUxFKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBBdHRyaWJ1dGVNYXAgRV9TVFlMRSA9IG5ldyBBdHRyaWJ1dGVNYXAoS0VZLCBuZXcgQ2hhcmFjdGVyKCdlJykpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0eWxlTW9kaWZpZXIgRV9NT0QgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVwbGFjZU1vZGlmaWVyKEVfU1RZTEUpOworCisgICAgcHVibGljIHZvaWQgdGVzdCgpIHsKKworICAgICAgICBlYXN5VGVzdHMoKTsKKyAgICAgICAgcmFuZG9tVGVzdCgpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBlYXN5VGVzdHMoKSB7CisKKyAgICAgICAgTVRleHQgdGV4dCA9IG5ldyBTdHlsZWRUZXh0KCJhXG5iXG5jXG5kXG4iLCBQTEFJTik7CisgICAgICAgIHRleHQubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIHRleHQubGVuZ3RoKCksIEFfTU9EKTsKKyAgICAgICAgdmVyaWZ5UGFyYWdyYXBoQ291bnQodGV4dCk7CisKKyAgICAgICAgTVRleHQgc3JjID0gbmV3IFN0eWxlZFRleHQoIlhYWFxuWVlZIiwgUExBSU4pOworICAgICAgICBzcmMubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIHNyYy5sZW5ndGgoKSwgQl9NT0QpOworICAgICAgICB2ZXJpZnlQYXJhZ3JhcGhDb3VudChzcmMpOworCisgICAgICAgIE1UZXh0IHRlbXAgPSB0ZXh0LmV4dHJhY3RXcml0YWJsZSgwLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgdGVtcC5hcHBlbmQoc3JjKTsKKyAgICAgICAgdmVyaWZ5UGFyYWdyYXBoQ291bnQodGVtcCk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHRleHQubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCF0ZW1wLnBhcmFncmFwaFN0eWxlQXQoaSkuZXF1YWxzKHRleHQucGFyYWdyYXBoU3R5bGVBdChpKSkpIHsKKyAgICAgICAgICAgICAgICBlcnJsbigiUGFyYWdyYXBoIHN0eWxlcyBhcmUgd3JvbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzcmMubGVuZ3RoKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCF0ZW1wLnBhcmFncmFwaFN0eWxlQXQoaSt0ZXh0Lmxlbmd0aCgpKS5lcXVhbHMoc3JjLnBhcmFncmFwaFN0eWxlQXQoaSkpKSB7CisgICAgICAgICAgICAgICAgZXJybG4oIlBhcmFncmFwaCBzdHlsZXMgYXJlIHdyb25nIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB0ZW1wID0gdGV4dC5leHRyYWN0V3JpdGFibGUoMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIHRlbXAucmVwbGFjZSgwLCAxLCBzcmMsIDAsIHNyYy5sZW5ndGgoKSk7CisgICAgICAgIHZlcmlmeVBhcmFncmFwaENvdW50KHRlbXApOworICAgICAgICBpZiAodGVtcC5wYXJhZ3JhcGhMaW1pdCgwKSAhPSA0KSB7CisgICAgICAgICAgICBlcnJsbigiUGFyYWdyYXBoIGxpbWl0IGlzIHdyb25nIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0ZW1wLnBhcmFncmFwaFN0eWxlQXQoMCkuZXF1YWxzKEJfU1RZTEUpKSB7CisgICAgICAgICAgICBlcnJsbigiRmlyc3Qgc3R5bGUgaXMgd3JvbmciKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXRlbXAucGFyYWdyYXBoU3R5bGVBdCg0KS5lcXVhbHMoQV9TVFlMRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHlsZSBhZnRlciBpbnNlcnQgaXMgd3JvbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHRlc3QgYXBwZW5kCisgICAgICAgIE1Db25zdFRleHQgbmV3U3JjID0gc3JjLmV4dHJhY3QoNCwgNyk7CisgICAgICAgIE1UZXh0IGluaXRDID0gbmV3IFN0eWxlZFRleHQoImNjY2NjYyIsIFBMQUlOKTsKKyAgICAgICAgaW5pdEMubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIGluaXRDLmxlbmd0aCgpLCBDX01PRCk7CisgICAgICAgIGluaXRDLmFwcGVuZChuZXdTcmMpOworICAgICAgICAvLyBub3cgaW5pdEMgc2hvdWxkIGJlIG9uZSBwYXJhZ3JhcGggd2l0aCBzdHlsZSBCCisgICAgICAgIGlmIChpbml0Qy5wYXJhZ3JhcGhMaW1pdCgwKSAhPSBpbml0Qy5sZW5ndGgoKSkgeworICAgICAgICAgICAgZXJybG4oIlNob3VsZCBvbmx5IGJlIG9uZSBwYXJhZ3JhcGgiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5pdEMucGFyYWdyYXBoU3R5bGVBdCgwKSAhPSBpbml0Qy5wYXJhZ3JhcGhTdHlsZUF0KGluaXRDLmxlbmd0aCgpKSkgeworICAgICAgICAgICAgZXJybG4oIlR3byBkaWZmZXJlbnQgcGFyYWdyYXBoIHN0eWxlcyIpOworICAgICAgICB9CisgICAgICAgIGlmICghaW5pdEMucGFyYWdyYXBoU3R5bGVBdChpbml0Qy5sZW5ndGgoKS8yKS5lcXVhbHMoQl9TVFlMRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3QgcGFyYWdyYXBoIHN0eWxlIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHRleHQgPSBuZXcgU3R5bGVkVGV4dCgiYWFhXG4iLCBQTEFJTik7CisgICAgICAgIHRleHQubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIHRleHQubGVuZ3RoKCksIEFfTU9EKTsKKyAgICAgICAgdGV4dC5tb2RpZnlQYXJhZ3JhcGhTdHlsZXModGV4dC5sZW5ndGgoKSwgdGV4dC5sZW5ndGgoKSwgQl9NT0QpOworICAgICAgICBpZiAodGV4dC5wYXJhZ3JhcGhTdHlsZUF0KHRleHQubGVuZ3RoKCkpICE9IEJfU1RZTEUpIHsKKyAgICAgICAgICAgIGVycmxuKCIwLWxlbmd0aCBwYXJhZ3JhcGggYXQgZW5kIGhhcyBpbmNvcnJlY3Qgc3R5bGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGludCByYW5kSW50KFJhbmRvbSByYW5kLCBpbnQgbGltaXQpIHsKKworICAgICAgICByZXR1cm4gcmFuZEludChyYW5kLCAwLCBsaW1pdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IHJhbmRJbnQoUmFuZG9tIHJhbmQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgaWYgKHN0YXJ0ID4gbGltaXQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlJhbmdlIGlzIDAtbGVuZ3RoLiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHN0YXJ0ID09IGxpbWl0KSB7CisgICAgICAgICAgICByZXR1cm4gc3RhcnQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3RhcnQgKyAoTWF0aC5hYnMocmFuZC5uZXh0SW50KCkpJShsaW1pdC1zdGFydCkpIDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgcmFuZG9tVGVzdCgpIHsKKworICAgICAgICBNVGV4dCBub1BhcmFncmFwaCA9IG5ldyBTdHlsZWRUZXh0KCJ6enp6IiwgUExBSU4pOworICAgICAgICBub1BhcmFncmFwaC5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMCwgbm9QYXJhZ3JhcGgubGVuZ3RoKCksIEFfTU9EKTsKKyAgICAgICAgTVRleHQgdHdvUGFyYWdyYXBocyA9IG5ldyBTdHlsZWRUZXh0KCJhYWFcbmJiYiIsIFBMQUlOKTsKKyAgICAgICAgdHdvUGFyYWdyYXBocy5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMCwgdHdvUGFyYWdyYXBocy5wYXJhZ3JhcGhMaW1pdCgwKSwgQl9NT0QpOworICAgICAgICBNVGV4dCB0aHJlZVBhcmFncmFwaHMgPSBuZXcgU3R5bGVkVGV4dCgiY2NcbmRkXG5lZSIsIFBMQUlOKTsKKyAgICAgICAgdGhyZWVQYXJhZ3JhcGhzLm1vZGlmeVBhcmFncmFwaFN0eWxlcygwLCAzLCBDX01PRCk7CisgICAgICAgIHRocmVlUGFyYWdyYXBocy5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMywgNiwgRF9NT0QpOworICAgICAgICB0aHJlZVBhcmFncmFwaHMubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDYsIDgsIEVfTU9EKTsKKyAgICAgICAgTVRleHQgdHJhaWxpbmdQMSA9IG5ldyBTdHlsZWRUZXh0KCJoaGhoXG4iLCBQTEFJTik7CisgICAgICAgIHRyYWlsaW5nUDEubW9kaWZ5UGFyYWdyYXBoU3R5bGVzKDAsIHRyYWlsaW5nUDEucGFyYWdyYXBoTGltaXQoMCksIENfTU9EKTsKKyAgICAgICAgTVRleHQgdHJhaWxpbmdQMiA9IG5ldyBTdHlsZWRUZXh0KCJpaWlcbiIsIFBMQUlOKTsKKyAgICAgICAgdHJhaWxpbmdQMi5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoMCwgMCwgRF9NT0QpOworICAgICAgICB0cmFpbGluZ1AyLm1vZGlmeVBhcmFncmFwaFN0eWxlcyh0cmFpbGluZ1AyLmxlbmd0aCgpLCB0cmFpbGluZ1AyLmxlbmd0aCgpLCBCX01PRCk7CisKKyAgICAgICAgaWYgKCF0cmFpbGluZ1AyLnBhcmFncmFwaFN0eWxlQXQodHJhaWxpbmdQMi5sZW5ndGgoKS0xKS5lcXVhbHMoRF9TVFlMRSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJTdHlsZSBpbmNvcnJlY3QgaW4gdHJhaWxpbmdQMiIpOworICAgICAgICB9CisgICAgICAgIGlmICghdHJhaWxpbmdQMi5wYXJhZ3JhcGhTdHlsZUF0KHRyYWlsaW5nUDIubGVuZ3RoKCkpLmVxdWFscyhCX1NUWUxFKSkgeworICAgICAgICAgICAgZXJybG4oIkVuZGluZyBzdHlsZSBpbmNvcnJlY3QgaW4gdHJhaWxpbmdQMiIpOworICAgICAgICB9CisKKyAgICAgICAgTUNvbnN0VGV4dFtdIHRlc3RzID0geyBub1BhcmFncmFwaCwgdHdvUGFyYWdyYXBocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocmVlUGFyYWdyYXBocywgdHJhaWxpbmdQMSwgdHJhaWxpbmdQMiB9OworCisgICAgICAgIFJhbmRvbSByYW5kb20gPSBuZXcgUmFuZG9tKFJBTkRfU0VFRCk7CisKKyAgICAgICAgaW50IHN0b3BBdCA9IDQ2NTsKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICB0cnkgeworICAgICAgICAgICAgZm9yIChpPTA7IGkgPCBOVU1fVEVTVFM7IGkrKykgeworCisgICAgICAgICAgICAgICAgaW50IHNyY0luZGV4ID0gcmFuZEludChyYW5kb20sIHRlc3RzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgaW50IHRhcmdldEluZGV4ID0gcmFuZEludChyYW5kb20sIHRlc3RzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgTVRleHQgdGFyZ2V0ID0gbmV3IFN0eWxlZFRleHQodGVzdHNbdGFyZ2V0SW5kZXhdKTsKKyAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IHNyYyA9IHRlc3RzW3NyY0luZGV4XTsKKworICAgICAgICAgICAgICAgIGludCBzcmNTdGFydCA9IHJhbmRJbnQocmFuZG9tLCBzcmMubGVuZ3RoKCkpOworICAgICAgICAgICAgICAgIGludCBzcmNMaW1pdCA9IHJhbmRJbnQocmFuZG9tLCBzcmNTdGFydCwgc3JjLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpbnQgc3RhcnQgPSByYW5kSW50KHJhbmRvbSwgdGFyZ2V0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICBpbnQgbGltaXQgPSByYW5kSW50KHJhbmRvbSwgc3RhcnQsIHRhcmdldC5sZW5ndGgoKSk7CisKKyAgICAgICAgICAgICAgICBpZiAoaSA9PSBzdG9wQXQpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RvcEF0ID0gaTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbnNlcnRBbmRDaGVjayhzcmMsIHNyY1N0YXJ0LCBzcmNMaW1pdCwgdGFyZ2V0LCBzdGFydCwgbGltaXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgaWYgKGkgPCBOVU1fVEVTVFMpIHsKKyAgICAgICAgICAgICAgICBsb2dsbigiaXRlcmF0aW9uPSIgKyBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBpbnNlcnRBbmRDaGVjayhNQ29uc3RUZXh0IHNyYywgaW50IHNyY1N0YXJ0LCBpbnQgc3JjTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0IHRhcmdldCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKworICAgICAgICAvLyBwLXN0eWxlIGFmdGVyIGluc2VydGlvbgorICAgICAgICBBdHRyaWJ1dGVNYXAgYWZ0ZXI7CisgICAgICAgIGlmIChsaW1pdCA9PSB0YXJnZXQubGVuZ3RoKCkgJiYgc3JjTGltaXQgPiBzcmNTdGFydCkgeworICAgICAgICAgICAgYWZ0ZXIgPSBzcmMucGFyYWdyYXBoU3R5bGVBdChzcmNMaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhZnRlciA9IHRhcmdldC5wYXJhZ3JhcGhTdHlsZUF0KGxpbWl0KTsKKyAgICAgICAgfQorCisgICAgICAgIEF0dHJpYnV0ZU1hcCBiZWZvcmU7CisgICAgICAgIGJvb2xlYW4gc3JjSGFzUEJyZWFrID0gZmFsc2U7CisgICAgICAgIGZvciAoaW50IGk9c3JjU3RhcnQ7IGkgPCBzcmNMaW1pdDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaXNQYXJhZ3JhcGhCcmVhayhzcmMuYXQoaSkpKSB7CisgICAgICAgICAgICAgICAgc3JjSGFzUEJyZWFrID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGFydCA+IDAgJiYgaXNQYXJhZ3JhcGhCcmVhayh0YXJnZXQuYXQoc3RhcnQtMSkpKSB7CisgICAgICAgICAgICBiZWZvcmUgPSB0YXJnZXQucGFyYWdyYXBoU3R5bGVBdChzdGFydC0xKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGJlZm9yZSA9IHNyY0hhc1BCcmVhaz8gc3JjLnBhcmFncmFwaFN0eWxlQXQoc3JjU3RhcnQpIDogYWZ0ZXI7CisgICAgICAgIH0KKyAgICAgICAgYm9vbGVhbiBzdHlsZVByb3BvZ2F0ZWQgPSAhYmVmb3JlLmVxdWFscyh0YXJnZXQucGFyYWdyYXBoU3R5bGVBdChNYXRoLm1heCgwLCBzdGFydC0xKSkpOworCisKKyAgICAgICAgdGFyZ2V0LnJlc2V0RGFtYWdlZFJhbmdlKCk7CisgICAgICAgIHRhcmdldC5yZXBsYWNlKHN0YXJ0LCBsaW1pdCwgc3JjLCBzcmNTdGFydCwgc3JjTGltaXQpOworICAgICAgICBmaW5hbCBpbnQgZGFtYWdlTGltaXQgPSAoc3RhcnQ9PWxpbWl0ICYmIHNyY1N0YXJ0PT1zcmNMaW1pdCk/CisgICAgICAgICAgICAgICAgICAgICAgICBJbnRlZ2VyLk1JTl9WQUxVRSA6IHN0YXJ0ICsgKHNyY0xpbWl0LXNyY1N0YXJ0KTsKKworICAgICAgICBpZiAodGFyZ2V0LmRhbWFnZWRSYW5nZUxpbWl0KCkgIT0gZGFtYWdlTGltaXQpIHsKKyAgICAgICAgICAgIGxvZ2xuKCJsaW1pdDogIiArIGRhbWFnZUxpbWl0ICsgIjsgIHRhcmdldC5saW1pdDogIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5kYW1hZ2VkUmFuZ2VMaW1pdCgpKTsKKyAgICAgICAgICAgIGVycmxuKCJEYW1hZ2VkIHJhbmdlIGxpbWl0IGlzIGluY29ycmVjdCIpOworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgaW50IGRhbWFnZVN0YXJ0ID0gKGRhbWFnZUxpbWl0PT1JbnRlZ2VyLk1JTl9WQUxVRSk/IEludGVnZXIuTUFYX1ZBTFVFIDoKKyAgICAgICAgICAgICAgICAoc3R5bGVQcm9wb2dhdGVkPyB0YXJnZXQucGFyYWdyYXBoU3RhcnQoTWF0aC5tYXgoMCwgc3RhcnQtMSkpIDogc3RhcnQpOworICAgICAgICBpZiAodGFyZ2V0LmRhbWFnZWRSYW5nZVN0YXJ0KCkgPiBkYW1hZ2VTdGFydCkgeworICAgICAgICAgICAgbG9nbG4oInN0YXJ0OiAiICsgZGFtYWdlU3RhcnQgKyAiOyAgdGFyZ2V0LnN0YXJ0OiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmRhbWFnZWRSYW5nZVN0YXJ0KCkpOworICAgICAgICAgICAgZXJybG4oIkRhbWFnZWQgcmFuZ2Ugc3RhcnQgaXMgaW5jb3JyZWN0Iik7CisgICAgICAgIH0KKworICAgICAgICB2ZXJpZnlQYXJhZ3JhcGhDb3VudCh0YXJnZXQpOworCisgICAgICAgIC8vIGNoZWNrIGVuZHBvaW50cworICAgICAgICBpZiAoIWJlZm9yZS5lcXVhbHModGFyZ2V0LnBhcmFncmFwaFN0eWxlQXQoTWF0aC5tYXgoc3RhcnQtMSwgMCkpKSkgeworICAgICAgICAgICAgZXJybG4oIkluY29ycmVjdCBwYXJhZ3JhcGggc3R5bGUgYmVmb3JlIG1vZGlmaWVkIHJhbmdlIik7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGVuZ3RoRGVsdGEgPSAoc3JjTGltaXQtc3JjU3RhcnQpIC0gKGxpbWl0LXN0YXJ0KTsKKyAgICAgICAgaW50IGluZGV4QWZ0ZXJJbnNlcnQgPSBNYXRoLm1pbih0YXJnZXQubGVuZ3RoKCksIGxpbWl0ICsgbGVuZ3RoRGVsdGEpOworICAgICAgICBpZiAoIWFmdGVyLmVxdWFscyh0YXJnZXQucGFyYWdyYXBoU3R5bGVBdChpbmRleEFmdGVySW5zZXJ0KSkpIHsKKyAgICAgICAgICAgIGVycmxuKCJJbmNvcnJlY3QgcGFyYWdyYXBoIHN0eWxlIGFmdGVyIG1vZGlmaWVkIHJhbmdlIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc3JjSGFzUEJyZWFrKSB7CisgICAgICAgICAgICBpbnQgc3RhcnRQID0gdGFyZ2V0LnBhcmFncmFwaExpbWl0KHN0YXJ0KTsKKyAgICAgICAgICAgIGludCBsaW1pdE9mVGVzdCA9IHRhcmdldC5wYXJhZ3JhcGhTdGFydChpbmRleEFmdGVySW5zZXJ0KTsKKworICAgICAgICAgICAgaW50IG9mZnNldCA9IHN0YXJ0IC0gc3JjU3RhcnQ7CisKKyAgICAgICAgICAgIHdoaWxlIChzdGFydFAgPCBsaW1pdE9mVGVzdCkgeworICAgICAgICAgICAgICAgIGludCBsaW1pdFAgPSB0YXJnZXQucGFyYWdyYXBoTGltaXQoc3RhcnRQKTsKKyAgICAgICAgICAgICAgICBpZiAoc3JjLnBhcmFncmFwaExpbWl0KHN0YXJ0UC1vZmZzZXQpICsgb2Zmc2V0ICE9IGxpbWl0UCkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigicGFyYWdyYXBoIGxpbWl0cyBhcmUgbm90IGNvbnNpc3RlbnQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCFzcmMucGFyYWdyYXBoU3R5bGVBdChzdGFydFAtb2Zmc2V0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmVxdWFscyh0YXJnZXQucGFyYWdyYXBoU3R5bGVBdChzdGFydFApKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigicGFyYWdyYXBoIHN0eWxlcyBhcmUgbm90IGNvbnNpc3RlbnQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RhcnRQID0gbGltaXRQOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yIChpbnQgaT1zdGFydDsgaSA8IHN0YXJ0KyhzcmNMaW1pdC1zcmNTdGFydCk7IGkrKykgeworICAgICAgICAgICAgICAgIGlmICghYWZ0ZXIuZXF1YWxzKHRhcmdldC5wYXJhZ3JhcGhTdHlsZUF0KGkpKSkgeworICAgICAgICAgICAgICAgICAgICBlcnJsbigicGFyYWdyYXBoIHN0eWxlIGNoYW5nZWQgdW5leHBlY3RlZGx5Iik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHZlcmlmeVBhcmFncmFwaENvdW50KE1Db25zdFRleHQgdGV4dCkgeworCisgICAgICAgIGludCBwQ291bnQgPSAwOworICAgICAgICBpbnQgdGV4dExlbmd0aCA9IHRleHQubGVuZ3RoKCk7CisKKyAgICAgICAgaWYgKHRleHRMZW5ndGggPT0gMCkgeworICAgICAgICAgICAgcENvdW50ID0gMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW50IHM9MDsgcyA8IHRleHRMZW5ndGg7IHMgPSB0ZXh0LnBhcmFncmFwaExpbWl0KHMpKSB7CisgICAgICAgICAgICAgICAgcENvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaXNQYXJhZ3JhcGhCcmVhayh0ZXh0LmF0KHRleHRMZW5ndGgtMSkpKSB7CisgICAgICAgICAgICAgICAgcENvdW50Kys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgc2VwQ291bnQgPSAwOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCB0ZXh0TGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChpc1BhcmFncmFwaEJyZWFrKHRleHQuYXQoaSkpKSB7CisgICAgICAgICAgICAgICAgc2VwQ291bnQrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzZXBDb3VudCArIDEgIT0gcENvdW50KSB7CisgICAgICAgICAgICBsb2dsbigic2VwQ291bnQ9IiArIHNlcENvdW50ICsgIjsgIHBDb3VudD0iICsgcENvdW50KTsKKyAgICAgICAgICAgIGVycmxuKCJQYXJhZ3JhcGggY291bnQgaXMgbm90IGNvbnNpc3RlbnQgd2l0aCBjaGFyYWN0ZXJzIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgY2hlY2tFbmRwb2ludChNQ29uc3RUZXh0IHRleHQpIHsKKworICAgICAgICBib29sZWFuIGVtcHR5RmluYWxQYXJhZ3JhcGg7CisgICAgICAgIGludCBsZW5ndGggPSB0ZXh0Lmxlbmd0aCgpOworCisgICAgICAgIGlmIChsZW5ndGggIT0gMCkgeworICAgICAgICAgICAgY2hhciBjaCA9IHRleHQuYXQobGVuZ3RoLTEpOworICAgICAgICAgICAgZW1wdHlGaW5hbFBhcmFncmFwaCA9IGlzUGFyYWdyYXBoQnJlYWsoY2gpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZW1wdHlGaW5hbFBhcmFncmFwaCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKHRleHQucGFyYWdyYXBoU3RhcnQobGVuZ3RoKSA9PSBsZW5ndGgpICE9IGVtcHR5RmluYWxQYXJhZ3JhcGgpIHsKKyAgICAgICAgICAgIGVycmxuKCJGaW5hbCBwYXJhZ3JhcGggbGVuZ3RoIGlzIGluY29ycmVjdCIpOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL0FwcENsb3Nlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvQXBwQ2xvc2VyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2JjOWJlYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL0FwcENsb3Nlci5qYXZhCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGFwcHM7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworaW1wb3J0IGphdmEuYXd0LldpbmRvdzsKKworY2xhc3MgQXBwQ2xvc2VyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBpbnQgZkNvdW50ID0gMDsKKworICAgIHByaXZhdGUgV2luZG93QWRhcHRlciBmQWRhcHRlciA9IG5ldyBXaW5kb3dBZGFwdGVyKCkgeworCisgICAgICAgIHB1YmxpYyB2b2lkIHdpbmRvd0Nsb3NpbmcoV2luZG93RXZlbnQgZSkgeworICAgICAgICAgICAgLS1mQ291bnQ7CisgICAgICAgICAgICBpZiAoZkNvdW50ID09IDApIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0uZXhpdCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFdpbmRvdyB3ID0gZS5nZXRXaW5kb3coKTsKKyAgICAgICAgICAgIHcuc2V0VmlzaWJsZShmYWxzZSk7CisgICAgICAgICAgICB3LmRpc3Bvc2UoKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBwdWJsaWMgdm9pZCBsaXN0ZW5Ub0ZyYW1lKEZyYW1lIGZyYW1lKSB7CisKKyAgICAgICAgKytmQ291bnQ7CisgICAgICAgIGZyYW1lLmFkZFdpbmRvd0xpc3RlbmVyKGZBZGFwdGVyKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9CaWRpRGVtby5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvQmlkaURlbW8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYjI2ZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvQmlkaURlbW8uamF2YQpAQCAtMCwwICsxLDgzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuYXd0dWkuVGV4dEZyYW1lOworCitpbXBvcnQgamF2YS5hd3QuVG9vbGtpdDsKKworaW1wb3J0IGphdmEuaW8uKjsKK2ltcG9ydCBqYXZhLm5ldC5VUkw7CitpbXBvcnQgamF2YS51dGlsLlJlc291cmNlQnVuZGxlOworCitwdWJsaWMgY2xhc3MgQmlkaURlbW8geworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBBcHBDbG9zZXIgZmdMaXN0ZW5lciA9IG5ldyBBcHBDbG9zZXIoKTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzLnJlc291cmNlcy5TYW1wbGUiOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKKworICAgICAgICBTdHJpbmcgZG9jTmFtZTsKKyAgICAgICAgCisgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICBkb2NOYW1lID0gImRlZmF1bHQiOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZG9jTmFtZSA9IGFyZ3NbMF07CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG9wZW5UZXh0KGRvY05hbWUpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgb3BlblRleHQoU3RyaW5nIGRvY05hbWUpIHsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgUmVzb3VyY2VCdW5kbGUgYnVuZGxlID0gUmVzb3VyY2VCdW5kbGUuZ2V0QnVuZGxlKEJVTkRMRV9OQU1FKTsKKworICAgICAgICAgICAgT2JqZWN0IGRvY3VtZW50ID0gYnVuZGxlLmdldE9iamVjdChkb2NOYW1lKyIuc2FtcGxlIik7CisgICAgICAgICAgICBNQ29uc3RUZXh0IHRleHQ7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChkb2N1bWVudCBpbnN0YW5jZW9mIFN0cmluZykgeworICAgICAgICAgICAgICAgIHRleHQgPSBuZXcgU3R5bGVkVGV4dCgoU3RyaW5nKWRvY3VtZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgVVJMIHVybCA9IChVUkwpIGRvY3VtZW50OworICAgICAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIGluID0gbmV3IE9iamVjdElucHV0U3RyZWFtKHVybC5vcGVuU3RyZWFtKCkpOworICAgICAgICAgICAgICAgIHRleHQgPSAoTUNvbnN0VGV4dCkgaW4ucmVhZE9iamVjdCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGJ1bmRsZS5nZXRTdHJpbmcoZG9jTmFtZSsiLm5hbWUiKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbWFrZUZyYW1lKHRleHQsIG5hbWUpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICB0LnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBtYWtlRnJhbWUoTUNvbnN0VGV4dCB0ZXh0LCBTdHJpbmcgdGl0bGUpIHsKKworICAgICAgICBUZXh0RnJhbWUgZnJhbWUgPSBuZXcgVGV4dEZyYW1lKHRleHQsIHRpdGxlLCAKKyAgICAgICAgICAgICAgICBUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCkpOworICAgICAgICBmcmFtZS5zZXRTaXplKDU1MCwgNzAwKTsKKyAgICAgICAgZnJhbWUuc2hvdygpOworICAgICAgICBmZ0xpc3RlbmVyLmxpc3RlblRvRnJhbWUoZnJhbWUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL0ZpbGVVdGlscy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvRmlsZVV0aWxzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmFlYWY0YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL0ZpbGVVdGlscy5qYXZhCkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzOworCitpbXBvcnQgamF2YS5hd3QuRmlsZURpYWxvZzsKK2ltcG9ydCBqYXZhLmF3dC5GcmFtZTsKK2ltcG9ydCBqYXZhLmlvLio7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CisKK3B1YmxpYyBjbGFzcyBGaWxlVXRpbHMgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAgKiBQcmVzZW50IHRoZSB1c2VyIHdpdGggYSBmaWxlIGRpYWxvZywgYW5kIHJlcGxhY2UKKyAgICAgKiBkZXN0IHdpdGggdGhlIE1UZXh0IGluIHRoZSBzZWxlY3RlZCBmaWxlLCBhbmQgcmV0dXJuCisgICAgICogdGhlIGZpbGUgb2JqY3QuICBJZiBhbnkgZXJyb3JzIG9jY3VyLCByZXR1cm4gbnVsbCBhbmQKKyAgICAgKiBkbyBub3QgbW9kaWZ5IGRlc3QuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBGaWxlIHVzZXJMb2FkTVRleHQoU3RyaW5nIHRpdGxlLCBNVGV4dCBkZXN0LCBGcmFtZSBvd25lcikgeworCisgICAgICAgIEZpbGVEaWFsb2cgZGlhbG9nID0gbmV3IEZpbGVEaWFsb2cob3duZXIsIHRpdGxlLCBGaWxlRGlhbG9nLkxPQUQpOworICAgICAgICBkaWFsb2cuc2hvdygpOworICAgICAgICBTdHJpbmcgZmlsZVN0ciA9IGRpYWxvZy5nZXRGaWxlKCk7CisgICAgICAgIFN0cmluZyBkaXJTdHIgPSBkaWFsb2cuZ2V0RGlyZWN0b3J5KCk7CisKKyAgICAgICAgaWYgKGZpbGVTdHIgIT0gbnVsbCkgeworICAgICAgICAgICAgRmlsZSBydmFsID0gbmV3IEZpbGUoZGlyU3RyLCBmaWxlU3RyKTsKKyAgICAgICAgICAgIE1Db25zdFRleHQgc3JjID0gbG9hZE1UZXh0KHJ2YWwpOworICAgICAgICAgICAgaWYgKHNyYyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZGVzdC5yZXBsYWNlQWxsKHNyYyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJ2YWw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE1UZXh0IHNlcmlhbGl6ZWQgaW4gdGhlIGdpdmVuIGZpbGUuCisgICAgICogSW4gY2FzZSBvZiBhbiBlcnJvciByZXR1cm4gbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE1Db25zdFRleHQgbG9hZE1UZXh0KEZpbGUgZmlsZSkgeworCisgICAgICAgIFRocm93YWJsZSBlcnJvcjsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgRmlsZUlucHV0U3RyZWFtIGluU3RyZWFtID0gbmV3IEZpbGVJbnB1dFN0cmVhbShmaWxlKTsKKyAgICAgICAgICAgIE9iamVjdElucHV0U3RyZWFtIG9ialN0cmVhbSA9IG5ldyBPYmplY3RJbnB1dFN0cmVhbShpblN0cmVhbSk7CisKKyAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCA9IChNQ29uc3RUZXh0KSBvYmpTdHJlYW0ucmVhZE9iamVjdCgpOworICAgICAgICAgICAgaW5TdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICB9CisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisKKyAgICAgICAgZXJyb3IucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFByb21wdCB0aGUgdXNlciBmb3IgdGhlIGZpbGUgaWYgZmlsZSBpcyBudWxsLiAgVGhlbiBzYXZlIHRoZQorICAgICAqIHRleHQgaW4gdGhlIGZpbGUsIGlmIGFueS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEZpbGUgdXNlclNhdmVNVGV4dChGaWxlIGZpbGUsIFN0cmluZyB0aXRsZSwgTUNvbnN0VGV4dCB0ZXh0LCBGcmFtZSBvd25lcikgeworCisgICAgICAgIGlmIChmaWxlID09IG51bGwpIHsKKworICAgICAgICAgICAgRmlsZURpYWxvZyBkaWFsb2cgPSBuZXcgRmlsZURpYWxvZyhvd25lciwgdGl0bGUsIEZpbGVEaWFsb2cuU0FWRSk7CisgICAgICAgICAgICBkaWFsb2cuc2hvdygpOworICAgICAgICAgICAgU3RyaW5nIGZpbGVTdHIgPSBkaWFsb2cuZ2V0RmlsZSgpOworICAgICAgICAgICAgU3RyaW5nIGRpclN0ciA9IGRpYWxvZy5nZXREaXJlY3RvcnkoKTsKKworICAgICAgICAgICAgaWYgKGZpbGVTdHIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZpbGUgPSBuZXcgRmlsZShkaXJTdHIsIGZpbGVTdHIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGZpbGUgIT0gbnVsbCkgeworCisgICAgICAgICAgICBzYXZlTVRleHQoZmlsZSwgdGV4dCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmlsZTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2F2ZU1UZXh0KEZpbGUgZmlsZSwgTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgVGhyb3dhYmxlIGVycm9yOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBPdXRwdXRTdHJlYW0gb3V0U3RyZWFtID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICBPYmplY3RPdXRwdXRTdHJlYW0gb2JqU3RyZWFtID0gbmV3IE9iamVjdE91dHB1dFN0cmVhbShvdXRTdHJlYW0pOworCisgICAgICAgICAgICBvYmpTdHJlYW0ud3JpdGVPYmplY3QodGV4dCk7CisgICAgICAgICAgICBvdXRTdHJlYW0uY2xvc2UoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBlcnJvciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIGVycm9yLnByaW50U3RhY2tUcmFjZSgpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9NVGV4dFRvU3RyaW5nLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9NVGV4dFRvU3RyaW5nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2UwOWQzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL01UZXh0VG9TdHJpbmcuamF2YQpAQCAtMCwwICsxLDgyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKK2ltcG9ydCBqYXZhLmlvLio7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBNVGV4dFRvU3RyaW5nIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCisKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9IDIpIHsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB3cml0ZU1UZXh0QXNTdHJpbmcoYXJnc1swXSwgYXJnc1sxXSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkIHVzYWdlKCkgeworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVXNhZ2U6IE1UZXh0VG9TdHJpbmcgaW5GaWxlIG91dEZpbGUiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJpbkZpbGUgbXVzdCBiZSBhIHNlcmlhbGl6ZWQgTUNvbnN0VGV4dCIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk9uIGV4aXQsIG91dEZpbGUgd2lsbCBiZSBhIHNlcmlhbGl6ZWQgU3RyaW5nICIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQuIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5GaWxlIGFuZCBvdXRGaWxlIG11c3Qgbm90IGJlIHRoZSBzYW1lLiIpOworICAgICAgICBTeXN0ZW0uZXhpdCgxKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgd3JpdGVNVGV4dEFzU3RyaW5nKFN0cmluZyBpbkZpbGUsIFN0cmluZyBvdXRGaWxlKSB7CisKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoaW5GaWxlKTsKKyAgICAgICAgTUNvbnN0VGV4dCB0ZXh0ID0gRmlsZVV0aWxzLmxvYWRNVGV4dChmaWxlKTsKKworICAgICAgICBpZiAodGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBjaGFyW10gY2ggPSBuZXcgY2hhclt0ZXh0Lmxlbmd0aCgpXTsKKyAgICAgICAgICAgIHRleHQuZXh0cmFjdENoYXJzKDAsIGNoLmxlbmd0aCwgY2gsIDApOworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IG5ldyBTdHJpbmcoY2gpOworICAgICAgICAgICAgd3JpdGVTdHJpbmcoc3RyLCBvdXRGaWxlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2FuJ3QgcmVhZCBpbkZpbGUuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgd3JpdGVTdHJpbmcoU3RyaW5nIHN0cmluZ1RvV3JpdGUsIFN0cmluZyBvdXRGaWxlKSB7CisKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUob3V0RmlsZSk7CisgICAgICAgIFRocm93YWJsZSBlcnJvciA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIE91dHB1dFN0cmVhbSBvdXRTdHJlYW0gPSBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlKTsKKyAgICAgICAgICAgIE9iamVjdE91dHB1dFN0cmVhbSBvYmpTdHJlYW0gPSBuZXcgT2JqZWN0T3V0cHV0U3RyZWFtKG91dFN0cmVhbSk7CisKKyAgICAgICAgICAgIG9ialN0cmVhbS53cml0ZU9iamVjdChzdHJpbmdUb1dyaXRlKTsKKyAgICAgICAgICAgIG91dFN0cmVhbS5jbG9zZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisKKyAgICAgICAgZXJyb3IucHJpbnRTdGFja1RyYWNlKCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL1N0cmluZ1RvTVRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL1N0cmluZ1RvTVRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNjk4NWMxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvU3RyaW5nVG9NVGV4dC5qYXZhCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGFwcHM7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBqYXZhLmlvLio7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTdHJpbmdUb01UZXh0IHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCisKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9IDIgfHwgYXJnc1swXS5lcXVhbHMoYXJnc1sxXSkpIHsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgc3RyID0gbG9hZFN0cmluZyhuZXcgRmlsZShhcmdzWzBdKSk7CisgICAgICAgICAgICBpZiAoc3RyID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGxvYWQgU3RyaW5nIGZyb20gZmlsZSAiICsgYXJnc1swXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBNQ29uc3RUZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dChzdHIsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKyAgICAgICAgICAgIEZpbGVVdGlscy5zYXZlTVRleHQobmV3IEZpbGUoYXJnc1sxXSksIHRleHQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB1c2FnZSgpIHsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlVzYWdlOiBTdHJpbmdUb01UZXh0IGluRmlsZSBvdXRGaWxlIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW5GaWxlIG11c3QgYmUgYSBzZXJpYWxpemVkIFN0cmluZyIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk9uIGV4aXQsIG91dEZpbGUgd2lsbCBiZSBhIHNlcmlhbGl6ZWQgTVRleHQgIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY29udGFpbmluZyB0aGUgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nLiIpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImluRmlsZSBhbmQgb3V0RmlsZSBtdXN0IG5vdCBiZSB0aGUgc2FtZS4iKTsKKyAgICAgICAgU3lzdGVtLmV4aXQoMSk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgbG9hZFN0cmluZyhGaWxlIGZpbGUpIHsKKworICAgICAgICBUaHJvd2FibGUgZXJyb3I7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIEZpbGVJbnB1dFN0cmVhbSBpblN0cmVhbSA9IG5ldyBGaWxlSW5wdXRTdHJlYW0oZmlsZSk7CisgICAgICAgICAgICBPYmplY3RJbnB1dFN0cmVhbSBvYmpTdHJlYW0gPSBuZXcgT2JqZWN0SW5wdXRTdHJlYW0oaW5TdHJlYW0pOworCisgICAgICAgICAgICBTdHJpbmcgc3RyID0gKFN0cmluZykgb2JqU3RyZWFtLnJlYWRPYmplY3QoKTsKKyAgICAgICAgICAgIGluU3RyZWFtLmNsb3NlKCk7CisgICAgICAgICAgICByZXR1cm4gc3RyOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yID0gZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3IgPSBlOworICAgICAgICB9CisKKyAgICAgICAgZXJyb3IucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9UZXN0TVRleHRUb1N0cmluZy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvVGVzdE1UZXh0VG9TdHJpbmcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYWJhNTk0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvVGVzdE1UZXh0VG9TdHJpbmcuamF2YQpAQCAtMCwwICsxLDc1IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgamF2YS5pby5GaWxlOworCitwdWJsaWMgZmluYWwgY2xhc3MgVGVzdE1UZXh0VG9TdHJpbmcgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CisKKyAgICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9IDIgfHwgYXJnc1swXS5lcXVhbHMoYXJnc1sxXSkpIHsKKyAgICAgICAgICAgIHVzYWdlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBib29sZWFuIHN1Y2Nlc3MgPSB0ZXN0TVRleHRUb1N0cmluZyhhcmdzWzBdLCBhcmdzWzFdKTsKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihzdWNjZXNzPyAiUEFTU0VEIiA6ICJGQUlMRUQiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIHZvaWQgdXNhZ2UoKSB7CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJVc2FnZTogVGVzdE1UZXh0VG9TdHJpbmcgbXRleHRGaWxlIHN0cmluZ0ZpbGUiKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb21wYXJlcyB0aGUgY2hhcmFjdGVycyBpbiBtdGV4dEZpbGUgdG8gdGhlIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RyaW5nIGluIHN0cmluZ0ZpbGUuIik7CisgICAgICAgIFN5c3RlbS5leGl0KDApOworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiB0ZXN0TVRleHRUb1N0cmluZyhTdHJpbmcgbXRleHRGaWxlLCBTdHJpbmcgc3RyaW5nRmlsZSkgeworCisgICAgICAgIGJvb2xlYW4gc3VjY2VzcyA9IGZhbHNlOworCisgICAgICAgIEZpbGUgbXRleHQgPSBuZXcgRmlsZShtdGV4dEZpbGUpOworICAgICAgICBNQ29uc3RUZXh0IHRleHQgPSBGaWxlVXRpbHMubG9hZE1UZXh0KG10ZXh0KTsKKyAgICAgICAgaWYgKHRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nIHN0ciA9IFN0cmluZ1RvTVRleHQubG9hZFN0cmluZyhuZXcgRmlsZShzdHJpbmdGaWxlKSk7CisgICAgICAgICAgICBpZiAoc3RyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBzdWNjZXNzID0gY29tcGFyZU1UZXh0VG9TdHJpbmcodGV4dCwgc3RyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ291bGRuJ3QgbG9hZCBTdHJpbmcuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvdWxkbid0IGxvYWQgTVRleHQuIik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3VjY2VzczsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gY29tcGFyZU1UZXh0VG9TdHJpbmcoTUNvbnN0VGV4dCB0ZXh0LCBTdHJpbmcgc3RyKSB7CisKKyAgICAgICAgaWYgKHRleHQubGVuZ3RoKCkgIT0gc3RyLmxlbmd0aCgpKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpbnQgaT1zdHIubGVuZ3RoKCktMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgICAgIGlmICh0ZXh0LmF0KGkpICE9IHN0ci5jaGFyQXQoaSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcy9TYW1wbGUuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcy9TYW1wbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZTJmZWU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGFwcHMvcmVzb3VyY2VzL1NhbXBsZS5qYXZhCkBAIC0wLDAgKzEsMjYgQEAKKy8qKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZCAgICAqCisgKiBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRhcHBzLnJlc291cmNlczsKKworaW1wb3J0IGphdmEudXRpbC5MaXN0UmVzb3VyY2VCdW5kbGU7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTYW1wbGUgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworICAgIAorICAgIHB1YmxpYyBPYmplY3RbXVtdIGdldENvbnRlbnRzKCkgeworCisgICAgICAgIC8qT2JqZWN0IHNhbXBsZSA9Ki8gdGhpcy5nZXRDbGFzcygpLmdldFJlc291cmNlKCJoYWdhbiIpOworCisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W11bXSB7CisgICAgICAgICAgICB7ICJkZWZhdWx0LnNhbXBsZSIsIHRoaXMuZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZSgidW5pY29kZS5oZWJyZXcucmVkIikgfSwKKyAgICAgICAgICAgIHsgImRlZmF1bHQubmFtZSIsICJXaGF0IGlzIFVuaWNvZGUgLSBIZWJyZXciIH0sCisgICAgICAgICAgICB7ICJhcmFiaWMuc2FtcGxlIiwgdGhpcy5nZXRDbGFzcygpLmdldFJlc291cmNlKCJ1bmljb2RlLmFyYWJpYy5yZWQiKSB9LAorICAgICAgICAgICAgeyAiYXJhYmljLm5hbWUiLCAiV2hhdCBpcyBVbmljb2RlIC0gQXJhYmljIiB9LAorICAgICAgICAgICAgeyAiamFwYW5lc2Uuc2FtcGxlIiwgIlx1NmNlODogezF9IFx1MzA2ZVx1MzBlMVx1MzBiZFx1MzBjM1x1MzBjOSB7MH0gXHUzMDZmXHU2M2E4XHU1OTY4XHUzMDU1XHUzMDhjXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyIiB9LAorICAgICAgICAgICAgeyAiamFwYW5lc2UubmFtZSIsICJKYXBhbmVzZSBNZXNzYWdlIiB9LAorICAgICAgICB9OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcy91bmljb2RlLmFyYWJpYy5yZWQgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvdW5pY29kZS5hcmFiaWMucmVkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3ZDA3MjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvdW5pY29kZS5hcmFiaWMucmVkCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRhcHBzL3Jlc291cmNlcy91bmljb2RlLmhlYnJldy5yZWQgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvdW5pY29kZS5oZWJyZXcucmVkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2MDdmNjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0YXBwcy9yZXNvdXJjZXMvdW5pY29kZS5oZWJyZXcucmVkCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvQXN5bmNGb3JtYXR0ZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvQXN5bmNGb3JtYXR0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yODFiNzA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9Bc3luY0Zvcm1hdHRlci5qYXZhCkBAIC0wLDAgKzEsMjA1MSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCisvLyBSZXZpc2lvbjogNzAgMS4zOCByaWNodGV4dC9Bc3luY0Zvcm1hdHRlci5qYXZhLCByaWNodGV4dCwgcmljaHRleHQKKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CitpbXBvcnQgamF2YS5hd3QuUG9pbnQ7CitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CisKK2ltcG9ydCBqYXZhLnRleHQuQnJlYWtJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnRleHQuQ2hhcmFjdGVySXRlcmF0b3I7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5HcmFwaGljczJEQ29udmVyc2lvbjsKKworLy8vKkpESzEySU1QT1JUUworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzMkQ7CitpbXBvcnQgamF2YS5hd3QuZm9udC5MaW5lQnJlYWtNZWFzdXJlcjsKK2ltcG9ydCBqYXZhLmF3dC5mb250LkZvbnRSZW5kZXJDb250ZXh0OworLy9KREsxMklNUE9SVFMqLworCisvKkpESzExSU1QT1JUUworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5HcmFwaGljczJEOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5MaW5lQnJlYWtNZWFzdXJlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuRm9udFJlbmRlckNvbnRleHQ7CitKREsxMUlNUE9SVFMqLworCisvKgorICAgIENoYW5nZSBoaXN0b3J5OgorCisgICAgNy8yNS85NiAtCisKKyAgICA4LzE1Lzk2CisgICAgICAgIEZpeGVkIGJ1ZyBpbiB0ZXh0T2Zmc2V0VG9Qb2ludCAoZlBpeEhlaWdodCB3YXNuJ3QgYWRkZWQgdG8gbmVnYXRpdmUgaGVpZ2h0cykuIHtqYnJ9CisKKyAgICA4LzE5Lzk2CisgICAgICAgIFJlbW92ZWQgcmVmZXJlbmNlcyB0byBKdXN0aWZpY2F0aW9uU3R5bGUgY29uc3RhbnRzLCBhbmQgbW92ZWQgdGhlbSBpbnRvIE1Gb3JtYXR0ZXIge3NmYn0KKworICAgIDgvMjMvOTYKKyAgICAgICAgTW9kaWZpZWQgZmluZExpbmVBdCBhbmQgZ2V0TGluZUNvbnRhaW5pbmcgLSBhZGRlZCBvcHRpbWl6YXRpb24gaW4gc2VhcmNoIGxvb3AuICBBbHNvLAorICAgICAgICAgICAgdGhleSB3ZXJlIGZhaWxpbmcgd2hlbiBmTFRQb3NFbmQrMSA9PSBmTFROZWdTdGFydC4gIEZpeGVkLgorCisgICAgOC8yNi85NgorICAgICAgICBNb3ZlZCBGb3JtYXREYWVtb24gc3R1ZmYgaW50byB0aGlzIGNsYXNzLgorCisgICAgOS8xMS85NgorICAgICAgICBTaG9ydGVuZWQgbGluZSByZXR1cm5lZCBmcm9tIHRleHRPZmZzZXRUb1BvaW50IGJ5IDEgcGl4ZWwKKworICAgIDkvMjMvOTYKKyAgICAgICAgdGV4dE9mZnNldFRvUG9pbnQgbGluZSBsZW5ndGggcmVzdG9yZWQgKHNlZSBhYm92ZSkuICBkcmF3VGV4dCgpIG5vdyBkcmF3cyBvbmx5IGxpbmVzCisgICAgICAgIHdoaWNoIGZhbGwgaW4gcmVjdGFuZ2xlIHBhcmFtLgorCisgICAgOS8yNi85NgorICAgICAgICB3aGl0ZXNwYWNlIGF0IGVuZCBvZiBsaW5lIGlzIHVzZWQgZm9yIGNhcmV0IHBvc2l0aW9uaW5nCisKKyAgICAxMC80Lzk2CisgICAgICAgIEFkZGVkIHN0YXRpYyBUZXh0Qm94IG1ldGhvZC4KKworICAgIDEwLzgvOTYKKyAgICAgICAgTGluZSAxMzAwIC0gbGVzcyB0aGFuIGNoYW5nZWQgdG8gbGVzcyB0aGFuIG9yIGVxdWFsIGluIHRleHRPZmZzZXRUb1BvaW50LiAgV2F0Y2ggZm9yCisgICAgICAgICAgICBoYW5ncyBpbiBmb3JtYXRUZXh0LgorCisgICAgMTAvOS85NgorICAgICAgICBDaGFuZ2VkIHN5bmMuIG1vZGVsLiAgZkZvcm1hdEluQmFja2dyb3VuZCBpcyB1c2VkIHRvIHN0YXJ0L3N0b3AgYmcgZm9ybWF0dGluZworCisgICAgMTAvMTcvOTYKKyAgICAgICAgQWRkZWQgbmV3IGZsYWdzOiAgZkxpbmVJbmMsIGZGaWxsSW5jIGZvciBiaWRpIHN1cHBvcnQuICB1cGRhdGVGb3JtYXQsIHBvaW50VG9UZXh0T2Zmc2V0LCBnZXRCb3VuZGluZ1JlY3QsCisgICAgICAgIGFuZCBmaW5kTmV3SW5zZXJ0aW9uT2Zmc2V0IHNob3VsZCBub3cgZnVuY3Rpb24gY29ycmVjdGx5IGZvciBub24tUm9tYW4gZG9jdW1lbnRzLiAgTm90aGluZyBlbHNlIGhhcyBiZWVuCisgICAgICAgIG1vZGlmaWVkIHRvIHN1cHBvcnQgaW50bCB0ZXh0LgorCisgICAgMTAvMjEvOTYKKyAgICAgICAgUHVzaGVkIHBhcmFncmFwaCBmb3JtYXR0aW5nIGFuZCBjYXJldCBwb3NpdGlvbmluZyBpbnRvIExpbmVMYXlvdXQuICBJbiBwcm9jZXNzIG9mIHB1c2hpbmcKKyAgICAgICAgaGlnaGxpZ2h0aW5nIGludG8gTGluZUxheW91dC4KKworICAgIDEwLzI0Lzk2CisgICAgICAgIE5vdyBnZXR0aW5nIHBhcmFncmFwaCBzdHlsZXMgZnJvbSBwYXJhZ3JhcGggYnVmZmVyLgorCisgICAgNy83Lzk3CisgICAgICAgIFVwLWFycm93IGRvZXNuJ3QgbW92ZSB0byBiZWdpbm5pbmcgb2YgdGV4dCBpZiB5b3UncmUgb24gdGhlIGZpcnN0IGxpbmUuCisKKyAgICA3LzEvOTgKKyAgICAgICAgTm8gbG9uZ2VyIGludGVyc2VjdGluZyBkYW1hZ2VkIHJlY3Qgd2l0aCB2aWV3IHJlY3QgaW4gdXBkYXRlRm9ybWF0LgorKi8KKworLyoqCisqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBNRm9ybWF0dGVyLiAgSXQgbWFpbnRhaW5zIGEgdGFibGUgb2YKKyogPHR0PkxheW91dEluZm88L3R0PiBpbnN0YW5jZXMgd2hpY2ggY29udGFpbiBsYXlvdXQgaW5mb3JtYXRpb24KKyogZm9yIGVhY2ggbGluZSBpbiB0aGUgdGV4dC4gIFRoaXMgY2xhc3MgZm9ybWF0cyBsaW5lcyBvbiBkZW1hbmQsCisqIGFuZCBjcmVhdGVzIGEgbG93LXByaW9yaXR5IHRocmVhZCB0byBmb3JtYXQgdGV4dCBpbiB0aGUgYmFja2dyb3VuZC4KKyogTm90ZSB0aGF0LCBhdCB0aW1lcywgc29tZSB0ZXh0IG1heSBub3QgaGF2ZSBiZWVuIGZvcm1hdHRlZCwgZXNwZWNpYWxseQorKiBpZiB0aGUgdGV4dCBpcyBsYXJnZS4KKyogPHA+CisqIFRoZSBsaW5lIHRhYmxlIGlzIGFuIGFycmF5IG9mIDx0dD5MYXlvdXRJbmZvPC90dD4gb2JqZWN0cywgd2hpY2ggZXhwYW5kcyBhcyBuZWVkZWQgdG8gaG9sZAorKiBhbGwgY29tcHV0ZWQgbGluZXMgaW4gdGhlIHRleHQuICBUaGUgbGluZSB0YWJsZSBjb25zaXN0cyBvZiB0aHJlZQorKiByZWdpb25zOiAgYSAicG9zaXRpdmUiIHJlZ2lvbiwgYSAiZ2FwLCIgYW5kIGEgIm5lZ2F0aXZlIiByZWdpb24uCisqIEluIHRoZSBwb3NpdGl2ZSByZWdpb24sIGNoYXJhY3RlciBhbmQgZ3JhcGhpY3Mgb2Zmc2V0cyBhcmUgcG9zaXRpdmUKKyogaW50ZWdlcnMsIGNvbXB1dGVkIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCAvIGRpc3BsYXkuICBJbiB0aGUKKyogZ2FwLCBsaW5lIHRhYmxlIGVudHJpZXMgYXJlIG51bGwuICBOZXcgbGluZXMgbWF5IGJlIGluc2VydGVkIGludG8gdGhlIGdhcC4KKyogSW4gdGhlIG5lZ2F0aXZlIHJlZ2lvbiwgY2hhcmFjdGVyIGFuZCBncmFwaGljcyBvZmZzZXRzIGFyZSBuZWdhdGl2ZTsKKyogdGhlaXIgYWJzb2x1dGUgdmFsdWVzIGluZGljYXRlIGRpc3RhbmNlcyBmcm9tIHRoZSBlbmQgb2YgdGhlIHRleHQgLyBkaXNwbGF5LgorKiBUaGUgPHR0PmZMVFBvc0VuZDwvdHQ+IG1lbWJlciBnaXZlcyB0aGUgaW5kZXggaW4gdGhlIGxpbmUgdGFibGUgb2YgdGhlCisqIGxhc3QgcG9zaXRpdmUgZW50cnkuICBUaGUgPHR0PmZMVE5lZ1N0YXJ0PC90dD4gZ2l2ZXMgdGhlIGluZGV4IG9mIGZpcnN0CisqIG5lZ2F0aXZlIGVudHJ5LiAgSWYgdGhlcmUgYXJlIG5vIG5lZ2F0aXZlIGVudHJpZXMsIDx0dD5mTFROZWdTdGFydDwvdHQ+IGlzCisqIGVxdWFsIHRvIDx0dD5mTFRTaXplPC90dD4sIHRoZSBzaXplIG9mIHRoZSBsaW5lIHRhYmxlLgorKiA8cD4KKyogQ2hhbmdlcyB0byB0aGUgbGluZSB0YWJsZSBvY2N1ciBvbmx5IGluIHRoZSA8dHQ+Zm9ybWF0VGV4dCgpPC90dD4gbWV0aG9kLgorKiBUaGlzIG1ldGhvZCBjYWxscyA8dHQ+TGluZUxheW91dC5sYXlvdXQoKTwvdHQ+IGZvciBlYWNoIGxpbmUgdG8gZm9ybWF0LgorKgorKiBAYXV0aG9yIEpvaG4gUmFsZXkKKyoKKyogQHNlZSBNRm9ybWF0dGVyCisqIEBzZWUgTGluZUxheW91dAorKiBAc2VlIExheW91dENvbnRleHQKKyogQHNlZSBMYXlvdXRJbmZvCisqLworCitmaW5hbCBjbGFzcyBBc3luY0Zvcm1hdHRlciBleHRlbmRzIE1Gb3JtYXR0ZXIgaW1wbGVtZW50cyBSdW5uYWJsZQoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgKiBUZXh0IHRvIGZvcm1hdC4KKyAgICAqLworICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmVGV4dDsKKworICAgIC8qKgorICAgICogRGVmYXVsdCB2YWx1ZXMuCisgICAgKi8KKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmRGVmYXVsdFZhbHVlczsKKyAgICAKKyAgICAvKioKKyAgICAqIEZvbnQgcmVzb2x2ZXIuCisgICAgKi8KKyAgICBwcml2YXRlIEZvbnRSZXNvbHZlciBmRm9udFJlc29sdmVyOworICAgIAorICAgIC8qKgorICAgICogRGVmYXVsdCBjaGFyYWN0ZXIgbWV0cmljIC0gdXNlZCB0byBzZXQgaGVpZ2h0IG9mIGVtcHR5IHBhcmFncmFwaHMKKyAgICAqLworICAgIHByaXZhdGUgRGVmYXVsdENoYXJhY3Rlck1ldHJpYyBmRGVmYXVsdENoYXJNZXRyaWM7CisgICAgCisgICAgLyoqCisgICAgKiBMZW5ndGggdG8gd2hpY2ggbGluZXMgYXJlIGZvcm1hdHRlZC4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGZMaW5lRGltOworCisgICAgLyoqCisgICAgKiBUYWJsZSBvZiBmb3JtYXR0ZWQgbGluZXMuCisgICAgKi8KKyAgICBwcml2YXRlIExheW91dEluZm8gZkxpbmVUYWJsZVtdOworCisgICAgLyoqCisgICAgKiBTaXplIG9mIGxpbmUgdGFibGUuCisgICAgKi8KKyAgICBwcml2YXRlIGludCBmTFRTaXplID0gMTA7IC8vIGluaXRpYWwgc2l6ZSBtdXN0IGJlID4gMAorCisgICAgLyoqCisgICAgKiBJbmRleCBvZiBsYXN0IHBvc2l0aXZlIGVudHJ5IGluIGxpbmUgdGFibGUuCisgICAgKi8KKyAgICBwcml2YXRlIGludCBmTFRQb3NFbmQ7CisKKyAgICAvKioKKyAgICAqIEluZGV4IG9mIGZpcnN0IG5lZ2F0aXZlIGVudHJ5IGluIGxpbmUgdGFibGUuCisgICAgKi8KKyAgICBwcml2YXRlIGludCBmTFROZWdTdGFydDsKKworICAgIC8qKgorICAgICogTGVuZ3RoIG9mIHRleHQgb24gd2hpY2ggbmVnYXRpdmUgbGluZSBvZmZzZXRzIGFyZSBiYXNlZC4KKyAgICAqIEBzZWUgI2Zvcm1hdFRleHQKKyAgICAqLworICAgIHByaXZhdGUgaW50IGZMVEN1clRleHRMZW47CisKKyAgICAvKioKKyAgICAqIExlbmd0aCBvZiBmb3JtYXR0ZWQgdGV4dCBpbiBmaWxsIGRpcmVjdGlvbiwgaW4gcGl4ZWxzLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZlBpeEhlaWdodDsKKworICAgIC8qKgorICAgICogTGVuZ3RoIG9mIGZvcm1hdHRlZCB0ZXh0IGluY2x1ZGluZyBwc2V1ZG9saW5lLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZkZ1bGxQaXhIZWlnaHQ7CisKKyAgICBwcml2YXRlIGludCBmTWluWDsKKyAgICBwcml2YXRlIGludCBmTWF4WDsKKworICAgIC8qKgorICAgICogPHR0PnRydWU8L3R0PiBpZiBsaW5lcyBzaG91bGQgYmUgZm9ybWF0dGVkIHRvIGZpdCBsaW5lIGRpbWVuc2lvbi4KKyAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBmV3JhcDsKKworICAgIC8qKgorICAgICogPHR0PnRydWU8L3R0PiBpZiBjaGFyYWN0ZXJzIHJ1biBob3Jpem9udGFsbHkuCisgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZkhMaW5lID0gdHJ1ZTsKKworICAgIC8qKgorICAgICAqIDx0dD50cnVlPC90dD4gaWYgY2hhcmFjdGVycyBydW4gZnJvbSBmcm9tIGxvdyB0byBoaWdoIGNvb3JkaW5hdGVzIG9uIGxpbmUuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGZMaW5lSW5jID0gdHJ1ZTsKKworICAgIC8qKgorICAgICAqIDx0dD50cnVlPC90dD4gaWYgbGluZXMgcnVuIGZyb20gbG93IHRvIGhpZ2ggY29vcmRpbmF0ZXMgd2l0aGluIHBhZ2UuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGZGaWxsSW5jID0gdHJ1ZTsKKworICAgIC8qKgorICAgICogVmFsdWUgcmV0dXJuZWQgZnJvbSA8dHQ+ZmluZExpbmVBdCgpPC90dD4KKyAgICAqIGlmIHBpeGVsIGhlaWdodCBwcmVjZWRlcyB0b3Btb3N0IGxpbmUuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga0JlZm9yZUZpcnN0TGluZSA9IC0yOworCisgICAgLyoqCisgICAgKiBWYWx1ZSByZXR1cm5lZCBmcm9tIDx0dD5maW5kTGluZUF0KCk8L3R0PiBhbmQgPHR0PmdldExpbmVDb250YWluaW5nKCk8L3R0PgorICAgICogaWYgb2Zmc2V0IC8gcGl4ZWwgaGVpZ2h0IGlzIGFmdGVyIGFsbCBleGlzdGluZyBsaW5lcy4KKyAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrQWZ0ZXJMYXN0TGluZSA9IC0xOworCisgICAgLyoqCisgICAgKiBUaHJlYWQgd2hpY2ggaW52b2tlcyBmb3JtYXR0ZXIgaW4gdGhlIGJhY2tncm91bmQuCisgICAgKi8KKyAgICBwcml2YXRlIFRocmVhZCBmRGFlbW9uOworCisgICAgLyoqCisgICAgKiBGb250UmVuZGVyQ29udGV4dCB0byBtZWFzdXJlIHdpdGguICBDdXJyZW50bHkgbm90IHNldHRhYmxlIGFmdGVyCisgICAgKiBjb25zdHJ1Y3Rpb24uCisgICAgKi8KKyAgICBwcml2YXRlIEZvbnRSZW5kZXJDb250ZXh0IGZGb250UmVuZGVyQ29udGV4dDsKKworICAgIC8qKgorICAgICogQ29udHJvbHMgd2hldGhlciBiYWNrZ3JvdW5kIGZvcm1hdHRpbmcgY2FuIHJ1bi4KKyAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBmQmdGb3JtYXRBbGxvd2VkID0gZmFsc2U7CisgICAgCisgICAgLyoqCisgICAgKiBDYWNoZWQgbGluZSBicmVhayBvYmplY3QuCisgICAgKi8KKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgZkxpbmVCcmVhayA9IG51bGw7CisgICAgCisgICAgLyoqCisgICAgKiBDYWNoZWQgTGluZUJyZWFrTWVhc3VyZXIuCisgICAgKi8KKyAgICBwcml2YXRlIExpbmVCcmVha01lYXN1cmVyIGZDYWNoZWRNZWFzdXJlciA9IG51bGw7CisgICAgcHJpdmF0ZSBpbnQgZkNhY2hlZE1lYXN1cmVyU3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgZkNhY2hlZE1lYXN1cmVyTGltaXQ7CisgICAgCisgICAgLy8gU29tZSBKREsncyAoU3VuJ3MgMS4yLjIpIHRocm93IGV4Y2VwdGlvbnMgZnJvbSAKKyAgICAvLyBMaW5lQnJlYWtNZWFzdXJlci5pbnNlcnRDaGFyIGFuZCBkZWxldGVDaGFyLiAgVGhpcyBjbGFzcworICAgIC8vIGRldGVjdHMgdGhpcyBjb25kaXRpb24gYW5kIGRvZXNuJ3QgdXNlIHRoZXNlIHR3byBtZXRob2RzCisgICAgLy8gaWYgdGhleSB0aHJvdyBleGNlcHRpb25zLgorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZmdDYWNoZU1lYXN1cmVycyA9IHRydWU7CisgICAgCisgICAgLyoqCisgICAgKiBDdXJyZW50IHRleHQgdGltZSBzdGFtcC4gIFVzZWQgdG8gbWFpbnRhaW4gbW9kaWZpY2F0aW9uIGludmFyaWFudC4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGZDdXJUaW1lU3RhbXA7CisgICAgCisgICAgLyoqCisgICAgKiBDYWNoZSBvZiBQYXJhZ3JhcGhSZW5kZXJlcnMuCisgICAgKi8KKyAgICBwcml2YXRlIEhhc2h0YWJsZSBmUmVuZGVyZXJDYWNoZSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAKKyAgICAvKioKKyAgICAqIERyYXcgdGV4dCBpbnNpZGUgYSByZWN0YW5nbGUuIERvZXMgbm90IGNhY2hlIGFueSBmb3JtYXR0aW5nIGluZm9ybWF0aW9uLgorICAgICogVGhpcyBpcyBjb252ZW5pZW50IGZvciBzbWFsbCBhbW91bnRzIG9mIHRleHQ7IGNvbXBhcmFibGUgdG8gVEVUZXh0Qm94IG9uIHRoZSBNYWMuCisgICAgKiA8cD4KKyAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGRyYXcKKyAgICAqIEBwYXJhbSBnIEdyYXBoaWNzIG9uIHdoaWNoIHRvIGRyYXcKKyAgICAqIEBwYXJhbSBkcmF3UmVjdCByZWN0YW5nbGUgaW4gd2hpY2ggdGV4dCB3aWxsIGJlIGRyYXduCisgICAgKiBAcGFyYW0gZmlsbEluYyBpZiB0cnVlLCBsaW5lcyBydW4gZnJvbSBsb3cgdG8gaGlnaCBjb29yZGluYXRlcyBpbiBwYWdlLgorICAgICogQHBhcmFtIGhMaW5lIGlmIHRydWUsIGNoYXJhY3RlcnMgcnVuIGhvcml6b250YWxseSB3aXRoaW4gYSBsaW5lLgorICAgICovCisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzUGFyYWdyYXBoU2VwYXJhdG9yKGNoYXIgY2gpIHsKKworICAgICAgICByZXR1cm4gY2ggPT0gJ1xuJyB8fCBjaCA9PSAnXHUyMDI5JzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIENyZWF0ZSBhbiA8dHQ+QXN5bmNGb3JtYXR0ZXI8L3R0Pi4KKyAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGZvcm1hdAorICAgICogQHBhcmFtIGxpbmVCb3VuZCBsZW5ndGggdG8gd2hpY2ggbGluZXMgYXJlIGZvcmFtdHRlZAorICAgICogQHBhcmFtIHdyYXAgPHR0PnRydWU8L3R0PiBpZiB0ZXh0IHNob3VsZCBiZSAibGluZSB3cmFwcGVkIiAoZm9ybWF0dGVkIHRvIGZpdCBkZXN0aW5hdGlvbiBhcmVhKQorICAgICovCisgICAgQXN5bmNGb3JtYXR0ZXIoTUNvbnN0VGV4dCB0ZXh0LCAKKyAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gd3JhcCwKKyAgICAgICAgICAgICAgICAgICBHcmFwaGljcyBnKQorICAgIHsKKyAgICAgICAgZlRleHQgPSB0ZXh0OworICAgICAgICBmRGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRWYWx1ZXM7CisgICAgICAgIGZGb250UmVzb2x2ZXIgPSBuZXcgRm9udFJlc29sdmVyKGZEZWZhdWx0VmFsdWVzKTsKKyAgICAgICAgCisgICAgICAgIGZMaW5lRGltID0gbGluZUJvdW5kOworICAgICAgICBmV3JhcCA9IHdyYXA7CisgICAgICAgIEdyYXBoaWNzMkQgZzJkID0gR3JhcGhpY3MyRENvbnZlcnNpb24uZ2V0R3JhcGhpY3MyRChnKTsKKyAgICAgICAgZkZvbnRSZW5kZXJDb250ZXh0ID0gZzJkLmdldEZvbnRSZW5kZXJDb250ZXh0KCk7CisgICAgICAgIAorICAgICAgICBmRGVmYXVsdENoYXJNZXRyaWMgPSBuZXcgRGVmYXVsdENoYXJhY3Rlck1ldHJpYyhmRm9udFJlc29sdmVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkZvbnRSZW5kZXJDb250ZXh0KTsKKyAgICAgICAgZkxUQ3VyVGV4dExlbiA9IHRleHQubGVuZ3RoKCk7CisgICAgICAgIHJlbW92ZUFsbExpbmVzKCk7CisKKyAgICAgICAgZkRhZW1vbiA9IG5ldyBUaHJlYWQodGhpcyk7CisgICAgICAgIGZEYWVtb24uc3RhcnQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBnZXREZWZhdWx0VmFsdWVzKCkgeworICAgIAorICAgICAgICByZXR1cm4gZkRlZmF1bHRWYWx1ZXM7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGNoZWNrVGltZVN0YW1wKCkgeworICAgICAgICBTdHJpbmcgYWRtb25pdGlvbiA9ICJQcm9iYWJseSwgeW91IG1vZGlmaWVkICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgdGV4dCBiZWZvcmUgY2FsbGluZyBzdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKS4iOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAoZlRleHQuZ2V0VGltZVN0YW1wKCkgIT0gZkN1clRpbWVTdGFtcCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUaW1lIHN0YW1wIGlzIG91dCBvZiBzeW5jLiAgIiArIGFkbW9uaXRpb24pOworICAgICAgICB9CisgICAgICAgIGlmIChmVGV4dC5sZW5ndGgoKSAhPSBmTFRDdXJUZXh0TGVuKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkxlbmd0aCBjaGFuZ2VkIHVuZXhwZWN0ZWRseS4gICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmVGV4dC5sZW5ndGgoKT0iK2ZUZXh0Lmxlbmd0aCgpKyI7ICAiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmTFRDdXJUZXh0TGVuPSIrZkxUQ3VyVGV4dExlbisiOyAgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9ybWF0dGVyPSIrdGhpcysiOyAgIisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4dD0iK2ZUZXh0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogU3BlY2lmeSB3aGV0aGVyIHRvIHdyYXAgbGluZXMgdXNpbmcgdGhlIGxpbmUgZGltZW5zaW9uLgorICAgICogQHBhcmFtIHdyYXAgaWYgPHR0PnRydWU8L3R0PiBsaW5lcyB3aWxsIGJlIHdyYXBwZWQ7IG90aGVyd2lzZSBuZXcgbGluZXMgd2lsbCBvbmx5IGJlCisgICAgKiBzdGFydGVkIHdoZW4gYSBuZXdsaW5lIGlzIGVuY291bnRlcmVkLgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIHNldFdyYXAoYm9vbGVhbiB3cmFwKQorICAgIHsKKyAgICAgICAgaWYgKHdyYXAgIT0gZldyYXApIHsKKyAgICAgICAgICAgIGZXcmFwID0gd3JhcDsKKyAgICAgICAgICAgIHJlbW92ZUFsbExpbmVzKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiB0cnVlIGlmIGxpbmVzIGFyZSB3cmFwcGVkIHVzaW5nIHRoZSBsaW5lIGRpbWVuc2lvbi4KKyAgICAqIEBzZWUgI3NldFdyYXAKKyAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgYm9vbGVhbiB3cmFwKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmV3JhcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFNwZWNpZnkgdGhlIGxpbmVCb3VuZCBpbiBwaXhlbHMuICBJZiBsaW5lIHdyYXBwaW5nIGlzIG9uLCBsaW5lcworICAgICogd2lsbCBiZSB3cmFwcGVkIHRvIHRoaXMgdmFsdWUuCisgICAgKiA8cD4KKyAgICAqCisgICAgKiBAcGFyYW0gbGluZUJvdW5kIHRoZSBkaXN0YW5jZSwgaW4gcGl4ZWxzLCB1c2VkIHRvIHdyYXAgbGluZXMuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgc2V0TGluZUJvdW5kKGludCBsaW5lQm91bmQpCisgICAgeworICAgICAgICBpZiAoZkxpbmVEaW0gIT0gbGluZUJvdW5kKSB7CisgICAgICAgICAgICBmTGluZURpbSA9IGxpbmVCb3VuZDsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZldyYXApIHsKKyAgICAgICAgICAgICAgICByZW1vdmVBbGxMaW5lcygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBwaXhlbHMgYWxvbmcgdGhlIGxpbmUgZGltZW5zaW9uLgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbGluZUJvdW5kKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmTGluZURpbTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiA8dHQ+dHJ1ZTwvdHQ+IGlmIGNoYXJhY3RlcnMgcnVuIGZyb20gbG93IHRvIGhpZ2ggY29vcmRpbmF0ZXMgb24gbGluZS4KKyAgICAqLworICAgIHByaXZhdGUgYm9vbGVhbiBsaW5lSW5jKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmTGluZUluYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiA8dHQ+dHJ1ZTwvdHQ+IGlmIGxpbmVzIHJ1biBmcm9tIGxvdyB0byBoaWdoIGNvb3JkaW5hdGVzIG9uIHBhZ2UuCisgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gZmlsbEluYygpCisgICAgeworICAgICAgICByZXR1cm4gZkZpbGxJbmM7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZW1vdmUgYWxsIGxpbmVzIGluIHRoZSBsaW5lIHRhYmxlLiAgVXNlZCBhZnRlciBhbiBvcGVyYXRpb24gdGhhdAorICAgICogaW52YWxpZGF0ZXMgYWxsIGV4aXN0aW5nIGxpbmVzLCBzdWNoIGFzIGNoYW5naW5nIGxpbmUgd3JhcHBpbmcgb3IgdGhlCisgICAgKiBsaW5lIGRpbS4KKyAgICAqLworICAgIHByaXZhdGUgc3luY2hyb25pemVkIHZvaWQgcmVtb3ZlQWxsTGluZXMoKQorICAgIHsKKyAgICAgICAgZkN1clRpbWVTdGFtcCA9IGZUZXh0LmdldFRpbWVTdGFtcCgpOworICAgICAgICBzdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKworICAgICAgICBmTWluWCA9IDA7CisgICAgICAgIGZNYXhYID0gZkxpbmVEaW07CisgICAgICAgIAorICAgICAgICBmTGluZVRhYmxlID0gbmV3IExheW91dEluZm9bZkxUU2l6ZV07IC8vIGZMVFNpemUgbXVzdCBiZSA+IDAKKyAgICAgICAgZkxUTmVnU3RhcnQgPSBmTFRTaXplOworICAgICAgICBmTFRQb3NFbmQgPSAwOworCisgICAgICAgIGZMaW5lVGFibGVbMF0gPSBwc2V1ZG9MaW5lSW5mbyhudWxsLCAwKTsKKworICAgICAgICBmUGl4SGVpZ2h0ID0gZkxpbmVUYWJsZVswXS5nZXRIZWlnaHQoKTsgLy8gPz8/IG9yIHNob3VsZCBpdCBiZSB6ZXJvPworICAgICAgICBmRnVsbFBpeEhlaWdodCA9IGZQaXhIZWlnaHQ7CisKKyAgICAgICAgLy8gZm9ybWF0IGF0IGxlYXN0IG9uZSBsaW5lOgorICAgICAgICBmb3JtYXRUb0hlaWdodChmUGl4SGVpZ2h0ICsgMSk7CisKKyAgICAgICAgZW5hYmxlQkdGb3JtYXQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWxsIHRoZSBsYXlvdXQgaW5mbyB3aXRoIGluZm9ybWF0aW9uIGFwcHJvcHJpYXRlIHRvIHRoZSBwc2V1ZG9saW5lLgorICAgICAqLworICAgIHByaXZhdGUgc3luY2hyb25pemVkIExheW91dEluZm8gcHNldWRvTGluZUluZm8oTGF5b3V0SW5mbyBpbmZvLCBpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgQXR0cmlidXRlTWFwIHN0ID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChmTFRDdXJUZXh0TGVuKTsgLy8gPz8/IGlmIHRleHQgaXMgZW1wdHkgb3IgdGhpcyBpcyB0aGUgZW5kIG9mIHRoZSB0ZXh0LCB3aGF0IGhhcHBlbnM/CisgICAgICAgIFBhcmFncmFwaFJlbmRlcmVyIHJlbmRlcmVyID0gZ2V0UmVuZGVyZXJGb3Ioc3QpOworICAgICAgICBpbmZvID0gcmVuZGVyZXIubGF5b3V0KGZUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExpbmVCcmVha01lYXN1cmVyKW51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkZvbnRSZW5kZXJDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpbmVEaW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpbmVEaW0pOworCisgICAgICAgIHJldHVybiBpbmZvOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbGFzdCB2YWxpZCBsaW5lIGluIHRoZSBsaW5lIHRhYmxlLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGFzdExpbmUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIChmTFROZWdTdGFydCA9PSBmTFRTaXplKSA/IGZMVFBvc0VuZCA6IGZMVFNpemUgLSAxOworICAgIH0KKworICAgIC8qKgorICAgICogU2hpZnQgbGluZSB0YWJsZSBzdWNoIHRoYXQgPHR0Pmxhc3RQb3M8L3R0PiBpcyB0aGUgbGFzdCBwb3NpdGl2ZQorICAgICogZW50cnkgaW4gdGhlIHRhYmxlLiA8Yj5OT1RFOiA8dHQ+bGFzdFBvczwvdHQ+IG11c3QgYmUgYSB2YWxpZCBsaW5lITwvYj4KKyAgICAqIDxwPgorICAgICogQHBhcmFtIGxhc3RQb3MgdGhlIGluZGV4IG9mIHRoZSBsaW5lIHdoaWNoIHdpbGwgYmVjb21lIHRoZSBsYXN0IHBvc2l0aXZlCisgICAgKiBlbnRyeSBpbiB0aGUgbGluZSB0YWJsZQorICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHNoaWZ0VGFibGVUbyhpbnQgbGFzdFBvcykKKyAgICB7CisgICAgICAgIExheW91dEluZm8gbGk7CisKKyAgICAgICAgd2hpbGUgKGxhc3RQb3MgPCBmTFRQb3NFbmQpICAgIHsgLy8gc2hpZnQgKydzIHRvIC0ncworICAgICAgICAgICAgbGkgPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF07CisgICAgICAgICAgICBmTGluZVRhYmxlW2ZMVFBvc0VuZC0tXSA9IG51bGw7CisKKyAgICAgICAgICAgIGxpLm1ha2VSZWxhdGl2ZVRvRW5kKGZMVEN1clRleHRMZW4sIGZQaXhIZWlnaHQpOworCisgICAgICAgICAgICBmTGluZVRhYmxlWy0tZkxUTmVnU3RhcnRdID0gbGk7CisgICAgICAgIH0KKworICAgICAgICB3aGlsZSAobGFzdFBvcyA+PSBmTFROZWdTdGFydCkgeyAvLyBzaGlmdCAtJ3MgdG8gKydzCisgICAgICAgICAgICBsaSA9IGZMaW5lVGFibGVbZkxUTmVnU3RhcnRdOworICAgICAgICAgICAgZkxpbmVUYWJsZVtmTFROZWdTdGFydCsrXSA9ICAgIG51bGw7CisKKyAgICAgICAgICAgIGxpLm1ha2VSZWxhdGl2ZVRvQmVnaW5uaW5nKGZMVEN1clRleHRMZW4sIGZQaXhIZWlnaHQpOworCisgICAgICAgICAgICBmTGluZVRhYmxlWysrZkxUUG9zRW5kXSAgICA9IGxpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBJbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgbGluZSB0YWJsZS4KKyAgICAqLworICAgIHByaXZhdGUgdm9pZCBleHBhbmRMaW5lVGFibGUoKQorICAgIHsKKyAgICAgICAgLy8gVGhpcyBqdXN0IGRvdWJsZXMgdGhlIHNpemUgb2YgdGhlIGxpbmUgdGFibGUuCisKKyAgICAgICAgTGF5b3V0SW5mbyBuZXdMaW5lVGFibGVbXSA9IG5ldyBMYXlvdXRJbmZvW2ZMaW5lVGFibGUubGVuZ3RoICogMl07CisgICAgICAgIGludCBuZXdOZWdTdGFydCA9IG5ld0xpbmVUYWJsZS5sZW5ndGggLSAoZkxpbmVUYWJsZS5sZW5ndGggLSBmTFROZWdTdGFydCk7CisKKyAgICAgICAgU3lzdGVtLmFycmF5Y29weShmTGluZVRhYmxlLCAwLCBuZXdMaW5lVGFibGUsIDAsIGZMVFBvc0VuZCArIDEpOworICAgICAgICBTeXN0ZW0uYXJyYXljb3B5KGZMaW5lVGFibGUsIGZMVE5lZ1N0YXJ0LCBuZXdMaW5lVGFibGUsIG5ld05lZ1N0YXJ0LCBmTFRTaXplIC0gZkxUTmVnU3RhcnQpOworCisgICAgICAgIGZMVE5lZ1N0YXJ0ID0gbmV3TmVnU3RhcnQ7CisgICAgICAgIGZMVFNpemUgPSBuZXdMaW5lVGFibGUubGVuZ3RoOworICAgICAgICBmTGluZVRhYmxlID0gbmV3TGluZVRhYmxlOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbGluZSBjb250YWluaW5nIHRoZSBwaXhlbCBwb3NpdGlvbiA8dHQ+ZmlsbENvb3JkPC90dD4uCisgICAgKiBJZiBmaWxsQ29vcmQgZXhjZWVkcyB0aGUgYm90dG9tIG9mIHRoZSB0ZXh0LCByZXR1cm4ga0FmdGVyTGFzdExpbmUuCisgICAgKiBJZiBmaWxsQ29vcmQgaXMgbGVzcyB0aGFuIHRoZSB0b3Agb2YgdGhlIHRleHQsIHJldHVybiBrQmVmb3JlRmlyc3RMaW5lLgorICAgICogPHA+CisgICAgKiBAcGFyYW0gZmlsbENvb3JkICJoZWlnaHQiIG9mIGxpbmUgdG8gbG9jYXRlLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZmluZExpbmVBdChpbnQgZmlsbENvb3JkKQorICAgIHsKKyAgICAgICAgaW50IGxvdywgaGlnaCwgbWlkOworICAgICAgICBpbnQgbG93U3RhcnQsIGhpZ2hTdGFydCwgbWlkU3RhcnQ7CisKKyAgICAgICAgaWYgKGZpbGxDb29yZCA+PSBmUGl4SGVpZ2h0KQorICAgICAgICAgICAgcmV0dXJuIGtBZnRlckxhc3RMaW5lOworICAgICAgICBlbHNlIGlmIChmaWxsQ29vcmQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIGtCZWZvcmVGaXJzdExpbmU7CisKKyAgICAgICAgaWYgKChmTFROZWdTdGFydCA8IGZMVFNpemUpICYmIChmaWxsQ29vcmQgPj0gZkxpbmVUYWJsZVtmTFROZWdTdGFydF0uZ2V0R3JhcGhpY1N0YXJ0KGZQaXhIZWlnaHQpKSkgeworICAgICAgICAgICAgZmlsbENvb3JkIC09IGZQaXhIZWlnaHQ7CisKKyAgICAgICAgICAgIGxvdyA9IGZMVE5lZ1N0YXJ0OworICAgICAgICAgICAgaGlnaCA9IGZMVFNpemU7CisgICAgICAgICAgICBoaWdoU3RhcnQgPSAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbG93ID0gMDsKKyAgICAgICAgICAgIGhpZ2ggPSBmTFRQb3NFbmQgKyAxOworICAgICAgICAgICAgaGlnaFN0YXJ0ID0gZkxpbmVUYWJsZVtmTFRQb3NFbmRdLmdldEdyYXBoaWNTdGFydCgwKSArIGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRIZWlnaHQoKTsKKyAgICAgICAgfQorICAgICAgICBsb3dTdGFydCA9IGZMaW5lVGFibGVbbG93XS5nZXRHcmFwaGljU3RhcnQoMCk7CisKKyAgICAgICAgZG8geworICAgICAgICAgICAgaWYgKGxvd1N0YXJ0ID09IGhpZ2hTdGFydCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbG93OworCisgICAgICAgICAgICBtaWQgPSBsb3cgKyAoZmlsbENvb3JkIC0gbG93U3RhcnQpIC8gKGhpZ2hTdGFydCAtIGxvd1N0YXJ0KSAqIChoaWdoIC0gbG93KTsKKyAgICAgICAgICAgIG1pZFN0YXJ0ID0gZkxpbmVUYWJsZVttaWRdLmdldEdyYXBoaWNTdGFydCgwKTsKKworICAgICAgICAgICAgaWYgKG1pZFN0YXJ0ID4gZmlsbENvb3JkKSB7CisgICAgICAgICAgICAgICAgaGlnaCA9IG1pZDsKKyAgICAgICAgICAgICAgICBoaWdoU3RhcnQgPSBmTGluZVRhYmxlW2hpZ2hdLmdldEdyYXBoaWNTdGFydCgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKG1pZFN0YXJ0ICsgZkxpbmVUYWJsZVttaWRdLmdldEhlaWdodCgpIDw9IGZpbGxDb29yZCkgeworICAgICAgICAgICAgICAgIGxvdyA9IG1pZCArIDE7CisgICAgICAgICAgICAgICAgbG93U3RhcnQgPSBmTGluZVRhYmxlW2xvd10uZ2V0R3JhcGhpY1N0YXJ0KDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBtaWQ7CisKKyAgICAgICAgfSB3aGlsZSAobG93IDwgaGlnaCk7CisKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIHRoZSBsaW5lLgorICAgICAqIEBwYXJhbSBsaW5lIHRoZSBpbnRlcm5hbCBpbmRleCBvZiB0aGUgbGluZSAoZGlyZWN0IGluZGV4IGludG8gbGluZXRhYmxlKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBsaW5lQ2hhclN0YXJ0SW50ZXJuYWwoaW50IGxpbmUpCisgICAgeworICAgICAgICByZXR1cm4gZkxpbmVUYWJsZVtsaW5lXS5nZXRDaGFyU3RhcnQoZkxUQ3VyVGV4dExlbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIGxpbmUuCisgICAgICogQHBhcmFtIGxpbmUgdGhlIGludGVybmFsIGluZGV4IG9mIHRoZSBsaW5lIChkaXJlY3QgaW5kZXggaW50byBsaW5ldGFibGUpLgorICAgICAqLworICAgIHByaXZhdGUgaW50IGxpbmVDaGFyTGltaXRJbnRlcm5hbChpbnQgbGluZSkKKyAgICB7CisgICAgICAgIHJldHVybiBsaW5lQ2hhclN0YXJ0SW50ZXJuYWwobGluZSkgKyBmTGluZVRhYmxlW2xpbmVdLmdldENoYXJMZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGdyYXBoaWMgc3RhcnQgb2YgdGhlIGxpbmUsIHVuYWRqdXN0ZWQgZm9yIGZpbGwgZGlyZWN0aW9uLgorICAgICAqIEBwYXJhbSBsaW5lIHRoZSBpbnRlcm5hbCBpbmRleCBvZiB0aGUgbGluZSAoZGlyZWN0IGluZGV4IGludG8gbGluZXRhYmxlKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBsaW5lR3JhcGhpY1N0YXJ0SW50ZXJuYWwoaW50IGxpbmUpCisgICAgeworICAgICAgICByZXR1cm4gZkxpbmVUYWJsZVtsaW5lXS5nZXRHcmFwaGljU3RhcnQoZlBpeEhlaWdodCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBncmFwaGljIGxpbWl0IG9mIHRoZSBsaW5lLCB1bmFkanVzdGVkIGZvciBmaWxsIGRpcmVjdGlvbi4KKyAgICAgKiBAcGFyYW0gbGluZSB0aGUgaW50ZXJuYWwgaW5kZXggb2YgdGhlIGxpbmUgKGRpcmVjdCBpbmRleCBpbnRvIGxpbmV0YWJsZSkuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGluZUdyYXBoaWNMaW1pdEludGVybmFsKGludCBsaW5lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxpbmVHcmFwaGljU3RhcnRJbnRlcm5hbChsaW5lKSArIGZMaW5lVGFibGVbbGluZV0uZ2V0SGVpZ2h0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIHdoaWNoIGhhcyBub3QgYmVlbiBmb3JtYXR0ZWQuCisgICAgKiBJZiBhbGwgdGV4dCBoYXMgYmVlbiBmb3JtYXR0ZWQsIHJldHVybiB0aGUgY3VycmVudCB0ZXh0IGxlbmd0aC4KKyAgICAqLworICAgIHByaXZhdGUgaW50IGxhc3RMaW5lQ2hhclN0b3AoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGxpbmVDaGFyTGltaXRJbnRlcm5hbChsYXN0TGluZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSAndmFsaWQnIGxpbmUgY29udGFpbmluZyBvZmZzZXQuICBUaGlzIGRpZmZlcnMgZnJvbSBnZXRMaW5lQ29udGFpbmluZyBpbgorICAgICAqIHRoaXMgbWFwcyBrQWZ0ZXJMYXN0TGluZSB0byBsYXN0TGluZSgpLCBzbyB0aGF0IHRoZSByZXN1bHQgaXMgYWx3YXlzIGEgdmFsaWQKKyAgICAgKiBsaW5ldGFibGUgaW5kZXguCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0VmFsaWRMaW5lQ29udGFpbmluZyhUZXh0T2Zmc2V0IG9mZnNldCkgeworCisgICAgICAgIHJldHVybiBnZXRWYWxpZExpbmVDb250YWluaW5nKG9mZnNldC5mT2Zmc2V0LCBvZmZzZXQuZlBsYWNlbWVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgJ3ZhbGlkJyBsaW5lIGNvbnRhaW5pbmcgb2Zmc2V0LiAgVGhpcyBkaWZmZXJzIGZyb20gZ2V0TGluZUNvbnRhaW5pbmcgaW4KKyAgICAgKiB0aGlzIG1hcHMga0FmdGVyTGFzdExpbmUgdG8gbGFzdExpbmUoKSwgc28gdGhhdCB0aGUgcmVzdWx0IGlzIGFsd2F5cyBhIHZhbGlkCisgICAgICogbGluZXRhYmxlIGluZGV4LgorICAgICAqLworICAgIHByaXZhdGUgaW50IGdldFZhbGlkTGluZUNvbnRhaW5pbmcoaW50IGluc09mZnNldCwgYm9vbGVhbiBwbGFjZW1lbnQpCisgICAgeworICAgICAgICBpbnQgbGluZSA9IGdldExpbmVDb250YWluaW5nKGluc09mZnNldCwgcGxhY2VtZW50KTsKKyAgICAgICAgaWYgKGxpbmUgPT0ga0FmdGVyTGFzdExpbmUpCisgICAgICAgICAgICBsaW5lID0gbGFzdExpbmUoKTsKKyAgICAgICAgZWxzZSBpZiAobGluZSA9PSBrQmVmb3JlRmlyc3RMaW5lKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRGVidWc6IGdldExpbmVDb250YWluaW5nIHJldHVybmVkIGtCZWZvcmVGaXJzdExpbmUiKTsKKworICAgICAgICByZXR1cm4gbGluZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiBpbmRleCBvZiBsaW5lIGNvbnRhaW5pbmcgPHR0Pm9mZnNldDwvdHQ+LgorICAgICogPz8/IElmIG9mZnNldCBpcyBhZnRlciBsYXN0IGZvcm1hdHRlZCBsaW5lLCByZXR1cm5zIGtBZnRlckxhc3RMaW5lLiAgSXMgdGhhdCBnb29kPworICAgICogPHA+CisgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgd2hvc2UgbGluZSBzaG91bGQgYmUgbG9jYXRlZAorICAgICogQHJldHVybnMgbGluZSBjb250YWluaW5nIDx0dD5vZmZzZXQ8L3R0PgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgZ2V0TGluZUNvbnRhaW5pbmcoVGV4dE9mZnNldCBvZmZzZXQpIHsKKworICAgICAgICByZXR1cm4gZ2V0TGluZUNvbnRhaW5pbmcob2Zmc2V0LmZPZmZzZXQsIG9mZnNldC5mUGxhY2VtZW50KTsKKyAgICB9CisKKyAgICBwcml2YXRlIGludCBnZXRMaW5lQ29udGFpbmluZyhpbnQgaW5zT2Zmc2V0LCBib29sZWFuIHBsYWNlbWVudCkKKyAgICB7CisgICAgICAgIGludCBwb3MgPSBpbnNPZmZzZXQ7CisgICAgICAgIGlmIChwbGFjZW1lbnQgPT0gVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUICYmIHBvcyA+IDApCisgICAgICAgICAgICAtLXBvczsKKworICAgICAgICBpZiAocG9zIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRGVidWc6IGdldExpbmVDb250YWluaW5nIG9mZnNldCA8IDA6ICIgKyBwb3MpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBvcyA+PSBsYXN0TGluZUNoYXJTdG9wKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KCk/IGtBZnRlckxhc3RMaW5lIDogbGFzdExpbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBsb3csIGhpZ2gsIG1pZDsKKyAgICAgICAgaW50IGxvd1N0YXJ0LCBoaWdoU3RhcnQsIG1pZFN0YXJ0OworCisgICAgICAgIGlmICgoZkxUTmVnU3RhcnQgPCBmTFRTaXplKSAmJiAocG9zID49IGZMaW5lVGFibGVbZkxUTmVnU3RhcnRdLmdldENoYXJTdGFydChmTFRDdXJUZXh0TGVuKSkpIHsKKyAgICAgICAgICAgIHBvcyAtPSBmTFRDdXJUZXh0TGVuOworCisgICAgICAgICAgICBsb3cgPSBmTFROZWdTdGFydDsKKyAgICAgICAgICAgIGhpZ2ggPSBmTFRTaXplOworICAgICAgICAgICAgaGlnaFN0YXJ0ID0gMDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxvdyA9IDA7CisgICAgICAgICAgICBoaWdoID0gZkxUUG9zRW5kICsgMTsKKyAgICAgICAgICAgIGhpZ2hTdGFydCA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRDaGFyU3RhcnQoMCkgKyBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uZ2V0Q2hhckxlbmd0aCgpOworICAgICAgICB9CisgICAgICAgIGxvd1N0YXJ0ID0gZkxpbmVUYWJsZVtsb3ddLmdldENoYXJTdGFydCgwKTsKKworICAgICAgICBkbyB7CisgICAgICAgICAgICBpZiAoaGlnaFN0YXJ0ID09IGxvd1N0YXJ0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxvdzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWlkID0gbG93ICsgKHBvcyAtIGxvd1N0YXJ0KSAvIChoaWdoU3RhcnQgLSBsb3dTdGFydCkgKiAoaGlnaCAtIGxvdyk7CisgICAgICAgICAgICBtaWRTdGFydCA9IGZMaW5lVGFibGVbbWlkXS5nZXRDaGFyU3RhcnQoMCk7CisKKyAgICAgICAgICAgIGlmIChtaWRTdGFydCA+IHBvcykgeworICAgICAgICAgICAgICAgIGhpZ2ggPSBtaWQ7CisgICAgICAgICAgICAgICAgaGlnaFN0YXJ0ID0gZkxpbmVUYWJsZVtoaWdoXS5nZXRDaGFyU3RhcnQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChtaWRTdGFydCArIGZMaW5lVGFibGVbbWlkXS5nZXRDaGFyTGVuZ3RoKCkgPD0gcG9zKSB7CisgICAgICAgICAgICAgICAgbG93ID0gbWlkICsgMTsKKyAgICAgICAgICAgICAgICBsb3dTdGFydCA9IGZMaW5lVGFibGVbbG93XS5nZXRDaGFyU3RhcnQoMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbWlkOworICAgICAgICAgICAgfQorCisgICAgICAgIH0gd2hpbGUgKGxvdyA8IGhpZ2gpOworCisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICogRGlzcGxheSB0ZXh0IGluIGRyYXdBcmVhLiBEb2VzIG5vdCByZWZvcm1hdCB0ZXh0LgorICAgICogPHA+CisgICAgKiBAcGFyYW0gZyB0aGUgR3JhcGhpY3Mgb2JqZWN0IGluIHdoaWNoIHRvIGRyYXcKKyAgICAqIEBwYXJhbSBkcmF3QXJlYSB0aGUgcmVjdGFuZ2xlLCBpbiBnJ3MgY29vcmRpbmF0ZSBzeXN0ZW0sIGluIHdoaWNoIHRvIGRyYXcKKyAgICAqIEBwYXJhbSBvcmlnaW4gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dCwgaW4gZydzIGNvb3JkaW5hdGUgc3lzdGVtCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgZHJhdyhHcmFwaGljcyBnLCBSZWN0YW5nbGUgZHJhd0FyZWEsIFBvaW50IG9yaWdpbikKKyAgICB7CisgICAgICAgIGRyYXcoZywgZHJhd0FyZWEsIG9yaWdpbiwgbnVsbCwgbnVsbCwgbnVsbCk7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIGRyYXcoR3JhcGhpY3MgZywgUmVjdGFuZ2xlIGRyYXdBcmVhLCBQb2ludCBvcmlnaW4sCisgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCwgVGV4dE9mZnNldCBzZWxTdG9wLCBDb2xvciBoaWdobGlnaHQpIHsKKworICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICBHcmFwaGljczJEIGcyZCA9IEdyYXBoaWNzMkRDb252ZXJzaW9uLmdldEdyYXBoaWNzMkQoZyk7CisKKyAgICAgICAgLy8gR2V0IHN0YXJ0aW5nIGFuZCBlbmRpbmcgZmlsbCAnaGVpZ2h0cy4nCisKKyAgICAgICAgaW50IHN0YXJ0RmlsbDsKKyAgICAgICAgaW50IGVuZEZpbGw7CisKKyAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgc3RhcnRGaWxsID0gZHJhd0FyZWEueSAtIG9yaWdpbi55OworICAgICAgICBlbHNlCisgICAgICAgICAgICBzdGFydEZpbGwgPSBvcmlnaW4ueSAtIChkcmF3QXJlYS55ICsgZHJhd0FyZWEuaGVpZ2h0KTsKKworICAgICAgICBlbmRGaWxsID0gc3RhcnRGaWxsICsgZHJhd0FyZWEuaGVpZ2h0OworCisgICAgICAgIC8vIFdlJ3JlIGRyYXdpbmcgb25lIG1vcmUgbGluZSB0aGFuIG5lY2Vzc2FyeSB3aGVuIHdlIHVwZGF0ZSBiZWNhdXNlIG9mIGEKKyAgICAgICAgLy8gc2VsZWN0aW9uIGNoYW5nZS4gIEJ1dCB3ZSdyZSBkcmF3aW5nIHRoZSByaWdodCBhbW91bnQgb2YgbGluZXMgd2hlbiB3ZQorICAgICAgICAvLyByZWZyZXNoIHRoZSB3aG9sZSBkaXNwbGF5LiAgVGhpcyBhZmZlY3RzIHJlbmRlcmluZyBzcGVlZCBzaWduaWZpY2FudGx5LAorICAgICAgICAvLyBhbmQgY3JlYXRpbmcgYSBuZXcgcGFyYWdyYXBoIHJlbmRlcmVyIGZvciBlYWNoIGxpbmUgZG9lc24ndCBoZWxwIGVpdGhlci4KKyAgICAgICAgLy8gRm9yIG5vdywgSSdtIGdvaW5nIHRvIHN1YnRyYWN0IG9uZSBmcm9tIHRoZSBmaWxsIGhlaWdodCwgb24gdGhlIHRoZW9yeQorICAgICAgICAvLyB0aGF0IHdlJ3JlIHBpY2tpbmcgdXAgdGhlIGV4dHJhIGxpbmUgYmVjYXVzZSBvZiBhIG9uZS1waXhlbCBzbG9wLgorICAgICAgICAvLyBUaGlzIHNlZW1zIHRvIHdvcmssIGFsdGhvdWdoIHBlcmhhcHMgaWYgb25lIHBpeGVsIG9mIGEgbGluZSBhdCB0aGUKKyAgICAgICAgLy8gYm90dG9tIHNob3VsZCBkcmF3LCBpdCB3b24ndC4KKworICAgICAgICAtLWVuZEZpbGw7CisKKyAgICAgICAgLy8gRm9ybWF0IHRvIGVuZGluZyBmaWxsIGhlaWdodCwgc28gbGluZSB0YWJsZSBpcyB2YWxpZCBmb3IgYWxsIGxpbmVzIHdlIG5lZWQgdG8gZHJhdy4KKworICAgICAgICBmb3JtYXRUb0hlaWdodChlbmRGaWxsKTsKKworICAgICAgICAvLyBHZXQgc3RhcnRpbmcgYW5kIGVuZGluZyBsaW5lcyBmb3IgZmlsbCBoZWlnaHQuICBJZiB0aGUgc3RhcnQgb2YgdGhlIGZpbGwgaXMgYWZ0ZXIgdGhlIGxhc3QgbGluZSwKKyAgICAgICAgLy8gb3IgdGhlIGVuZCBvZiB0aGUgZmlsbCBpcyBiZWZvcmUgdGhlIGZpcnN0IGxpbmUsIHJldHVybi4KKworICAgICAgICBpbnQgY3VyTGluZSA9IGZpbmRMaW5lQXQoc3RhcnRGaWxsKTsKKyAgICAgICAgaWYgKGN1ckxpbmUgPT0ga0FmdGVyTGFzdExpbmUpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGVsc2UgaWYgKGN1ckxpbmUgPT0ga0JlZm9yZUZpcnN0TGluZSkKKyAgICAgICAgICAgIGN1ckxpbmUgPSAwOworCisgICAgICAgIGludCBsYXN0TGluZSA9IGZpbmRMaW5lQXQoZW5kRmlsbCk7CisgICAgICAgIGlmIChsYXN0TGluZSA9PSBrQmVmb3JlRmlyc3RMaW5lKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBlbHNlIGlmIChsYXN0TGluZSA9PSBrQWZ0ZXJMYXN0TGluZSkKKyAgICAgICAgICAgIGxhc3RMaW5lID0gbGFzdExpbmUoKTsKKworICAgICAgICAvLyBHZXQgdGhlIGJhc2UgY29vcmRpbmF0ZXMgKGxpbmVYLCBsaW5lWSkgZm9yIHRoZSBzdGFydGluZyBsaW5lLgorCisgICAgICAgIGludCBsaW5lWCwgbGluZVk7CisKKyAgICAgICAgaW50IGdTdGFydCA9IGxpbmVHcmFwaGljU3RhcnRJbnRlcm5hbChjdXJMaW5lKTsKKworICAgICAgICBpZiAoZkhMaW5lKSB7CisgICAgICAgICAgICBpZiAoZkxpbmVJbmMpCisgICAgICAgICAgICAgICAgbGluZVggPSBvcmlnaW4ueDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54IC0gZkxpbmVEaW07CisgICAgICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueSArIGdTdGFydDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5lWSA9IG9yaWdpbi55IC0gKGdTdGFydCArIGZMaW5lVGFibGVbY3VyTGluZV0uZ2V0SGVpZ2h0KCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGZMaW5lSW5jKQorICAgICAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueSAtIGZMaW5lRGltOworICAgICAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLnggKyBnU3RhcnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGluZVggPSBvcmlnaW4ueCAtIChnU3RhcnQgKyBmTGluZVRhYmxlW2N1ckxpbmVdLmdldEhlaWdodCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBsaW5lcywgZHJhd2luZyBlYWNoIG9uZSBhbmQgaW5jcmVtZW50aW5nIHRoZSBiYXNlIGNvb3JkaW5hdGUgYnkgdGhlIGxpbmUgaGVpZ2h0LgorCisKKyAgICAgICAgZm9yICg7IGN1ckxpbmUgPD0gbGFzdExpbmU7IGN1ckxpbmUrKykgeworICAgICAgICAgICAgLy8gQWRqdXN0IGN1ckxpbmUgYXJvdW5kIGdhcCBpbiBsaW5lIHRhYmxlLgorICAgICAgICAgICAgaWYgKChjdXJMaW5lID4gZkxUUG9zRW5kKSAmJiAoY3VyTGluZSA8IGZMVE5lZ1N0YXJ0KSkKKyAgICAgICAgICAgICAgICBjdXJMaW5lID0gZkxUTmVnU3RhcnQ7CisKKyAgICAgICAgICAgIGZMaW5lVGFibGVbY3VyTGluZV0ucmVuZGVyV2l0aEhpZ2hsaWdodChmTFRDdXJUZXh0TGVuLCBnMmQsIGZMaW5lRGltLCBsaW5lWCwgbGluZVksIHNlbFN0YXJ0LCBzZWxTdG9wLCBoaWdobGlnaHQpOworCisgICAgICAgICAgICAvLyBJbmNyZW1lbnQgbGluZSBiYXNlIGZvciBuZXh0IGl0ZXJhdGlvbi4KKyAgICAgICAgICAgIGludCBsaW5lSW5jID0gZkxpbmVUYWJsZVtjdXJMaW5lXS5nZXRIZWlnaHQoKTsKKyAgICAgICAgICAgIGlmIChmRmlsbEluYykgeworICAgICAgICAgICAgICAgIGlmIChmSExpbmUpCisgICAgICAgICAgICAgICAgICAgIGxpbmVZICs9IGxpbmVJbmM7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBsaW5lWCArPSBsaW5lSW5jOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoZkhMaW5lKQorICAgICAgICAgICAgICAgICAgICBsaW5lWSAtPSBsaW5lSW5jOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbGluZVggLT0gbGluZUluYzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogRm9ybWF0IHRleHQgdG8gZ2l2ZW4gaGVpZ2h0LgorICAgICogQHBhcmFtIGhlaWdodCB0aGUgaGVpZ2h0IHRvIHdoaWNoIHRleHQgd2lsbCBiZSBmb3JtYXR0ZWQuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgZm9ybWF0VG9IZWlnaHQoaW50IHJlcUhlaWdodCkKKyAgICB7CisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIGlmIChyZXFIZWlnaHQgPD0gZlBpeEhlaWdodCkgLy8gYWxyZWFkeSBmb3JtYXR0ZWQgdG8gdGhpcyBoZWlnaHQKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoZlRleHQubGVuZ3RoKCkgPT0gbGFzdExpbmVDaGFyU3RvcCgpKSAvLyBhbHJlYWR5IGZvcm1hdHRlZCBhbGwgdGhlIHRleHQKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAvLyArKysgc2hvdWxkIGRpc2FibGUgdXBkYXRlIHRocmVhZCBoZXJlCisKKyAgICAgICAgaWYgKGZMVE5lZ1N0YXJ0IDwgZkxUU2l6ZSkKKyAgICAgICAgICAgIHNoaWZ0VGFibGVUbyhmTFRTaXplIC0gMSk7CisKKyAgICAgICAgZm9ybWF0VGV4dCgwLCAwLCByZXFIZWlnaHQsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGb3JtYXQgdGV4dCB0byBnaXZlbiBvZmZzZXQuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIHdoaWNoIHRleHQgd2lsbCBiZSBmb3JtYXR0ZWQuCisgICAgICovCisgICAgIHByaXZhdGUgdm9pZCBmb3JtYXRUb09mZnNldChUZXh0T2Zmc2V0IG9mZnNldCkKKyAgICAgeworICAgICAgICBmb3JtYXRUb09mZnNldChvZmZzZXQuZk9mZnNldCwgb2Zmc2V0LmZQbGFjZW1lbnQpOworICAgICB9CisgICAgIAorICAgICBwcml2YXRlIHN5bmNocm9uaXplZCB2b2lkIGZvcm1hdFRvT2Zmc2V0KGludCBvZmZzZXQsIGJvb2xlYW4gcGxhY2VtZW50KSB7CisgICAgICAgIAorICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICBpbnQgbGxjcyA9IGxhc3RMaW5lQ2hhclN0b3AoKTsKKyAgICAgICAgaWYgKGxsY3MgPCBmTFRDdXJUZXh0TGVuKSB7CisgICAgICAgICAgICBpbnQgbGltaXQgPSBvZmZzZXQ7CisgICAgICAgICAgICBpZiAocGxhY2VtZW50ID09IFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUKSAvLyBmb3JtYXQgdG8gcGFzdCBjaGFyYWN0ZXIgb2Zmc2V0IGlzIGFzc29jaWF0ZWQgd2l0aAorICAgICAgICAgICAgICAgIGxpbWl0Kys7CisgICAgICAgICAgICBpZiAobGltaXQgPj0gbGxjcykgeyAvLyA/Pz8gd291bGQgJz4nIGJlIG9rIGluc3RlYWQgb3IgJz49Jz8KKyAgICAgICAgICAgICAgICBpZiAobGltaXQgPiBmTFRDdXJUZXh0TGVuKQorICAgICAgICAgICAgICAgICAgICBsaW1pdCA9IGZMVEN1clRleHRMZW47CisKKyAgICAgICAgICAgICAgICBzaGlmdFRhYmxlVG8obGFzdExpbmUoKSk7CisgICAgICAgICAgICAgICAgZm9ybWF0VGV4dChsbGNzLCBsaW1pdCAtIGxsY3MsIEludGVnZXIuTUFYX1ZBTFVFLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICB9CisKKy8qKgorKiBSZWZvcm1hdCB0ZXh0IGFmdGVyIGEgY2hhbmdlLgorKiBBZnRlciB0aGUgZm9ybWF0dGVyJ3MgdGV4dCBjaGFuZ2VzLCBjYWxsIHRoaXMgbWV0aG9kIHRvIHJlZm9ybWF0LiAgRG9lcworKiBub3QgcmVkcmF3LgorKiBAcGFyYW0gYWZTdGFydCB0aGUgb2Zmc2V0IGludG8gdGhlIHRleHQgd2hlcmUgbW9kaWZpY2F0aW9uIGJlZ2FuOyAgaWUsIHRoZQorKiBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgd2hpY2ggaXMgImRpZmZlcmVudCIgaW4gc29tZSB3YXkuICBEb2VzIG5vdAorKiBoYXZlIHRvIGJlIG5vbm5lZ2F0aXZlLgorKiBAcGFyYW0gYWZMZW5ndGggdGhlIG51bWJlciBvZiBuZXcgb3IgY2hhbmdlZCBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LiAgU2hvdWxkIG5ldmVyCisqIGJlIGxlc3MgdGhhbiAwLgorKiBAcGFyYW0gdmlld1JlY3QgdGhlIFJlY3RhbmdsZSBpbiB3aGljaCB0aGUgdGV4dCB3aWxsIGJlIGRpc3BsYXllZC4gIFRoaXMgaXMgbmVlZGVkIGZvcgorKiByZXR1cm5pbmcgdGhlICJkYW1hZ2VkIiBhcmVhIC0gdGhlIGFyZWEgb2YgdGhlIHNjcmVlbiBpbiB3aGljaCB0aGUgdGV4dCBtdXN0IGJlIHJlZHJhd24uCisqIEBwYXJhbSBvcmlnaW4gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dCwgaW4gdGhlIGRpc3BsYXkncyBjb29yZGluYXRlIHN5c3RlbQorKiBAcmV0dXJucyBhIDx0dD5SZWN0YW5nbGU8L3R0PiB3aGljaCBzcGVjaWZpZXMgdGhlIGFyZWEgaW4gd2hpY2ggdGV4dCBtdXN0IGJlCisqIHJlZHJhd24gdG8gcmVmbGVjdCB0aGUgY2hhbmdlIHRvIHRoZSB0ZXh0LgorKi8KKyAgICBwdWJsaWMgUmVjdGFuZ2xlIHVwZGF0ZUZvcm1hdChmaW5hbCBpbnQgYWZTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGFmTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgdmlld1JlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50IG9yaWdpbikKKyAgICB7CisgICAgICAgIGlmIChhZlN0YXJ0IDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiRGVidWc6IHVwZGF0ZUZvcm1hdCBhZlN0YXJ0IDwgMDogIiArIGFmU3RhcnQpOworICAgICAgICB9CisgICAgICAgIGlmIChmQmdGb3JtYXRBbGxvd2VkKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJCYWNrZ3JvdW5kIGZvcm1hdHRpbmcgc2hvdWxkIGhhdmUgYmVlbiBkaXNhYmxlZCIpOworICAgICAgICB9CisgICAgICAgIGZDdXJUaW1lU3RhbXAgPSBmVGV4dC5nZXRUaW1lU3RhbXAoKTsKKyAgICAgICAgCisgICAgICAgIGludCBjdXJMaW5lID0gZ2V0VmFsaWRMaW5lQ29udGFpbmluZyhhZlN0YXJ0LCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgIGludCBsaW5lU3RhcnRQb3MgPSBsaW5lQ2hhclN0YXJ0SW50ZXJuYWwoY3VyTGluZSk7CisKKyAgICAgICAgLy8gb3B0aW1pemUgYnkgZmluZGluZyBvdXQgd2hldGhlciBjaGFuZ2Ugb2NjdXJyZWQKKyAgICAgICAgLy8gYWZ0ZXIgZmlyc3Qgd29yZCBicmVhayBvbiBjdXJsaW5lCisKKyAgICAgICAgaW50IGZpcnN0UG9zc2libGVCcmVhazsKKworICAgICAgICBpZiAobGluZVN0YXJ0UG9zIDwgZlRleHQubGVuZ3RoKCkpIHsKKworICAgICAgICAgICAgaWYgKGZMaW5lQnJlYWsgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZMaW5lQnJlYWsgPSBCcmVha0l0ZXJhdG9yLmdldExpbmVJbnN0YW5jZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ2hhcmFjdGVySXRlcmF0b3IgY2hhckl0ZXIgPSBmVGV4dC5jcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgICAgICAgICAgY2hhckl0ZXIuc2V0SW5kZXgobGluZVN0YXJ0UG9zKTsKKyAgICAgICAgICAgIGZMaW5lQnJlYWsuc2V0VGV4dChjaGFySXRlcik7CisKKyAgICAgICAgICAgIGZpcnN0UG9zc2libGVCcmVhayA9IGZMaW5lQnJlYWsuZm9sbG93aW5nKGxpbmVTdGFydFBvcyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZmlyc3RQb3NzaWJsZUJyZWFrID0gYWZTdGFydDsKKworICAgICAgICBpZiAoKGN1ckxpbmUgPiAwKSAmJiAoZmlyc3RQb3NzaWJsZUJyZWFrID09IEJyZWFrSXRlcmF0b3IuRE9ORSB8fCBhZlN0YXJ0IDw9IGZpcnN0UG9zc2libGVCcmVhaykpIHsKKyAgICAgICAgICAgIGN1ckxpbmUtLTsKKyAgICAgICAgICAgIGlmIChjdXJMaW5lIDwgZkxUTmVnU3RhcnQgJiYgY3VyTGluZSA+IGZMVFBvc0VuZCkKKyAgICAgICAgICAgICAgICBjdXJMaW5lID0gZkxUUG9zRW5kOworICAgICAgICB9CisKKyAgICAgICAgc2hpZnRUYWJsZVRvKGN1ckxpbmUpOworCisgICAgICAgIGludCBwaXhIZWlnaHQ7IC8vIGFmdGVyIHRoZSBmb3JtYXRUZXh0IGNhbGwsIGF0IGxlYXN0IHBpeEhlaWdodCB0ZXh0IG11c3QgYmUgZm9ybWF0dGVkCisKKyAgICAgICAgaWYgKGZITGluZSkgeworICAgICAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgICAgIHBpeEhlaWdodCA9IHZpZXdSZWN0LnkgKyB2aWV3UmVjdC5oZWlnaHQgLSBvcmlnaW4ueTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBwaXhIZWlnaHQgPSBvcmlnaW4ueSAtIHZpZXdSZWN0Lnk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICAgICAgcGl4SGVpZ2h0ID0gdmlld1JlY3QueCArIHZpZXdSZWN0LndpZHRoIC0gb3JpZ2luLng7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcGl4SGVpZ2h0ID0gb3JpZ2luLnggLSB2aWV3UmVjdC54OworICAgICAgICB9CisKKyAgICAgICAgUmVjdGFuZ2xlIHIgPSBmb3JtYXRUZXh0KGFmU3RhcnQsIGFmTGVuZ3RoLCBwaXhIZWlnaHQsIGZhbHNlKTsKKworICAgICAgICAvL2R1bXBMaW5lVGFibGUoKTsKKworICAgICAgICBpZiAoKGZQaXhIZWlnaHQgPCBwaXhIZWlnaHQpICYmIChmTFROZWdTdGFydCA8IGZMVFNpemUpICYmIChmTFRDdXJUZXh0TGVuID4gbGFzdExpbmVDaGFyU3RvcCgpKSkgeworICAgICAgICAgICAgc2hpZnRUYWJsZVRvKGxhc3RMaW5lKCkpOworICAgICAgICAgICAgUmVjdGFuZ2xlIHMgPSBmb3JtYXRUZXh0KDAsIDAsIHBpeEhlaWdodCwgZmFsc2UpOworICAgICAgICAgICAgciA9IHIudW5pb24ocyk7CisgICAgICAgIH0KKworICAgICAgICBpbnRsUmVjdChvcmlnaW4sIHIpOworICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiRGFtYWdlZCByZWN0OiAiK3IrIjsgb3JpZ2luOiAiK29yaWdpbik7CisKKyAgICAgICAgLy8gZG9uJ3QgbmVlZCB0byBzeW5jaHJvbml6ZWQgaGVyZSwgYi9jIHRoZSBkYWVtb24gc2hvdWxkbid0IGJlIHJ1bm5pbmcgd2hlbgorICAgICAgICAvLyB0aGlzIGlzIGV4ZWN1dGluZworCisgICAgICAgIGlmIChmVGV4dC5sZW5ndGgoKSA8IGxhc3RMaW5lQ2hhclN0b3AoKSkKKyAgICAgICAgICAgIGVuYWJsZUJHRm9ybWF0KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpOworCisgICAgICAgIC8vZHVtcExpbmVUYWJsZSgpOworCisgICAgICAgIHJldHVybiByOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIExpbmVCcmVha01lYXN1cmVyIG1ha2VNZWFzdXJlcihpbnQgcGFyYWdyYXBoU3RhcnQsIGludCBwYXJhZ3JhcGhMaW1pdCkgeworCisgICAgICAgIE1UZXh0SXRlcmF0b3IgaXRlciA9IG5ldyBNVGV4dEl0ZXJhdG9yKGZUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRm9udFJlc29sdmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoTGltaXQpOworICAgICAgICBMaW5lQnJlYWtNZWFzdXJlciBtZWFzdXJlciA9IG5ldyBMaW5lQnJlYWtNZWFzdXJlcihpdGVyLCBmRm9udFJlbmRlckNvbnRleHQpOworICAgICAgICBpZiAoZmdDYWNoZU1lYXN1cmVycykgeworICAgICAgICAgICAgZkNhY2hlZE1lYXN1cmVyU3RhcnQgPSBwYXJhZ3JhcGhTdGFydDsKKyAgICAgICAgICAgIGZDYWNoZWRNZWFzdXJlckxpbWl0ID0gcGFyYWdyYXBoTGltaXQ7CisgICAgICAgICAgICBmQ2FjaGVkTWVhc3VyZXIgPSBtZWFzdXJlcjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWVhc3VyZXI7CisgICAgfSAgICAgICAgCisKKy8qKgorKiBDb21wdXRlIHRleHQgZm9ybWF0LiAgVGhpcyBtZXRob2QgY2FsY3VsYXRlcyB0ZXh0IGZvcm1hdDsgIGl0IGNhbiBiZQorKiBjYWxsZWQgZm9yIHZhcmlvdXMgcHVycG9zZXM6ICB0byByZWZvcm1hdCB0ZXh0IGFmdGVyIGFuIGVkaXQsIHRvCisqIGZvcm1hdCB0ZXh0IHRvIGEgcGFydGljdWxhciBoZWlnaHQsIG9yIHRvIGZvcm1hdCB0ZXh0IHVwIHRvIGEKKyogcGFydGljdWxhciBvZmZzZXQuCisqIDxwPgorKiBUaGUgY2FsbGluZyBtZXRob2QgbXVzdCBlbnN1cmUgdGhhdCA8dHQ+ZkxpbmVUYWJsZTwvdHQ+IGhhcyBiZWVuIHNoaWZ0ZWQKKyogc3VjaCB0aGF0IHRoZSBsYXN0IHBvc2l0aXZlIGxpbmUgaXMgd2hlcmUgdGhlIGZvcm1hdHRpbmcgb3BlcmF0aW9uIHdpbGwKKyogYmVnaW4uCisqIDxwPgorKiBDYWxsZWQgYnk6IDx0dD5mb3JtYXRUb0hlaWdodCgpPC90dD4sIDx0dD51cGRhdGVGb3JtYXQoKTwvdHQ+LAorKiA8dHQ+dGV4dE9mZnNldFRvUG9pbnQoKTwvdHQ+LCA8dHQ+Z2V0Qm91bmRpbmdSZWN0KCk8L3R0PgorKiBAcGFyYW0gYWZTdGFydCB0aGUgb2Zmc2V0IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgd2hpY2ggaGFzIGNoYW5nZWQKKyogQHBhcmFtIGFmTGVuZ3RoIHRoZSBudW1iZXIgb2YgbmV3IG9yIGNoYW5nZWQgY2hhcmFjdGVycyBpbiB0aGUgdGV4dAorKiBAcGFyYW0gcmVxSGVpZ2h0IHRoZSBwaXhlbCBoZWlnaHQgdG8gd2hpY2ggdGV4dCBtdXN0IGJlIGZvcm1hdHRlZC4gIElnbm9yZWQKKyogaWYgPHR0PmZvcm1hdEFsbE5ld1RleHQ8L3R0PiBpcyA8dHQ+dHJ1ZTwvdHQ+LCBvciBpZiBvbGQgbGluZXMgcmVtYWluIGluIHRoZQorKiBsaW5lIHRhYmxlIGFmdGVyIGFsbCBjaGFuZ2VkIHRleHQgaGFzIGJlZW4gZm9ybWF0dGVkLgorKiBAcGFyYW0gc2Vla09mZnNldEF0RW5kIGlmIDx0dD50cnVlPC90dD4sIGZvcm1hdHRpbmcgY29udGludWVzIHVudGlsIHRoZSBsaW5lCisqIGNvbnRhaW5pbmcgYWZTdGFydCthZkxlbmd0aCBoYXMgYmVlbiBmb3JtYXR0ZWQuICBJZiBmYWxzZSwgZm9ybWF0dGluZyBtYXkgc3RvcAorKiB3aGVuIHJlcUhlaWdodCBoYXMgYmVlbiByZWFjaGVkLiAgVGhpcyBwYXJhbWV0ZXIgc2hvdWxkIGJlIDx0dD50cnVlPC90dD4gPGI+b25seTwvYj4KKyogaWYgdGhlIG9iamVjdCBvZiB0aGUgZm9ybWF0dGluZyBvcGVyYXRpb24gaXMgdG8gZXh0ZW5kIGZvcm1hdHRpbmcgdG8gYSBwYXJ0aWN1bGFyCisqIG9mZnNldCB3aXRoaW4gdGhlIHRleHQ7ICBpdCBzaG91bGQgYmUgPHR0PmZhbHNlPC90dD4gZXZlcnl3aGVyZSBlbHNlLgorKiBAcmV0dXJucyBhIHJlY3RhbmdsZSwgcmVsYXRpdmUgdG8gdGhlIHRvcC1sZWZ0IG9mIHRoZSB0ZXh0LCB3aGljaCBlbmNsb3NlcyB0aGUKKyogc2NyZWVuIGFyZWEgd2hvc2UgYXBwZWFyYW5jZSBoYXMgY2hhbmdlZCBkdWUgdG8gdGhlIHJlZm9ybWF0dGluZy4KKyovCisKKyAgICBwcml2YXRlIFJlY3RhbmdsZSBmb3JtYXRUZXh0KGludCBhZlN0YXJ0LCBmaW5hbCBpbnQgYWZMZW5ndGgsIGludCByZXFIZWlnaHQsIGJvb2xlYW4gc2Vla09mZnNldEF0RW5kKQorICAgIHsKKyAgICAvKiBhc3N1bWVzIGxpbmUgdGFibGUgc2hpZnRlZCBzdWNoIHRoYXQgZmlyc3QgbGluZSB0byBmb3JtYXQgaXMKKyAgICBsYXN0IHBvc2l0aXZlIGxpbmUgKi8KKworICAgICAgICBpZiAoYWZMZW5ndGggPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJhZkxlbmd0aCA8IDAuICBhZkxlbmd0aD0iICsgYWZMZW5ndGgpOworICAgICAgICB9CisKKyAgICAgICAgaW50IG5ld1RleHRFbmQgPSBhZlN0YXJ0ICsgYWZMZW5ndGg7CisKKyAgICAgICAgZmluYWwgaW50IG5ld0N1clRleHRMZW4gPSBmVGV4dC5sZW5ndGgoKTsKKworICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBpbnQgb2xkUGl4SGVpZ2h0ID0gZlBpeEhlaWdodDsKKyAgICAgICAgaW50IG9sZEZ1bGxQaXhIZWlnaHQgPSBmRnVsbFBpeEhlaWdodDsKKyAgICAgICAgZlBpeEhlaWdodCAtPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uZ2V0SGVpZ2h0KCk7CisKKyAgICAgICAgaW50IGN1ckdyYXBoaWNTdGFydCA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRHcmFwaGljU3RhcnQoZlBpeEhlaWdodCk7CisgICAgICAgIGludCBjdXJMaW5lU3RhcnQgPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uZ2V0Q2hhclN0YXJ0KG5ld0N1clRleHRMZW4pOworICAgICAgICAKKyAgICAgICAgaW50IGN1clBhcmFncmFwaFN0YXJ0ID0gZlRleHQucGFyYWdyYXBoU3RhcnQoY3VyTGluZVN0YXJ0KTsKKyAgICAgICAgaW50IGN1clBhcmFncmFwaExpbWl0ID0gSW50ZWdlci5NSU5fVkFMVUU7IC8vIGR1bW15IHZhbHVlCisKKyAgICAgICAgaW50IGRhbWFnZVN0YXJ0ID0gY3VyR3JhcGhpY1N0YXJ0OworCisgICAgICAgIFBhcmFncmFwaFJlbmRlcmVyIHJlbmRlcmVyID0gbnVsbDsKKyAgICAgICAgTGluZUJyZWFrTWVhc3VyZXIgbWVhc3VyZXIgPSBudWxsOworICAgICAgICAKKyAgICAgICAgLy8gdHJ5IHRvIHVzZSBjYWNoZWQgTGluZUJyZWFrTWVhc3VyZXIgaWYgcG9zc2libGUKKyAgICAgICAgaWYgKGZDYWNoZWRNZWFzdXJlciAhPSBudWxsICYmIAorICAgICAgICAgICAgY3VyUGFyYWdyYXBoU3RhcnQgPT0gZkNhY2hlZE1lYXN1cmVyU3RhcnQpIHsKKworICAgICAgICAgICAgY3VyUGFyYWdyYXBoTGltaXQgPSBmVGV4dC5wYXJhZ3JhcGhMaW1pdChjdXJQYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKG5ld0N1clRleHRMZW4gLSBmTFRDdXJUZXh0TGVuID09IDEgJiYgYWZMZW5ndGggPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY3VyUGFyYWdyYXBoTGltaXQgPT0gZkNhY2hlZE1lYXN1cmVyTGltaXQrMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgTVRleHRJdGVyYXRvciBpdGVyID0gbmV3IE1UZXh0SXRlcmF0b3IoZlRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRm9udFJlc29sdmVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1clBhcmFncmFwaFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyUGFyYWdyYXBoTGltaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgZkNhY2hlZE1lYXN1cmVyLmluc2VydENoYXIoaXRlciwgYWZTdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICBmQ2FjaGVkTWVhc3VyZXJMaW1pdCArPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgbWVhc3VyZXIgPSBmQ2FjaGVkTWVhc3VyZXI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoZkxUQ3VyVGV4dExlbiAtIG5ld0N1clRleHRMZW4gPT0gMSAmJiBhZkxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChmQ2FjaGVkTWVhc3VyZXJMaW1pdCA+IGZDYWNoZWRNZWFzdXJlclN0YXJ0ICsgMSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhMaW1pdCA9PSBmQ2FjaGVkTWVhc3VyZXJMaW1pdC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dEl0ZXJhdG9yIGl0ZXIgPSBuZXcgTVRleHRJdGVyYXRvcihmVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZGb250UmVzb2x2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1clBhcmFncmFwaExpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZDYWNoZWRNZWFzdXJlci5kZWxldGVDaGFyKGl0ZXIsIGFmU3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgZkNhY2hlZE1lYXN1cmVyTGltaXQgLT0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVyID0gZkNhY2hlZE1lYXN1cmVyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2goQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBmQ2FjaGVkTWVhc3VyZXIgPSBudWxsOworICAgICAgICAgICAgICAgIGZnQ2FjaGVNZWFzdXJlcnMgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKG1lYXN1cmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHNldCB1cCByZW5kZXJlciBzaW5jZSB0aGUgcGFyYWdyYXBoIHVwZGF0ZSBpbiB0aGUKKyAgICAgICAgICAgICAgICAvLyBmb3JtYXR0aW5nIGxvb3Agd2lsbCBub3QgaGFwcGVuCisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChjdXJQYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICAgICAgcmVuZGVyZXIgPSBnZXRSZW5kZXJlckZvcihzdHlsZSk7CisgICAgICAgICAgICAgICAgbWVhc3VyZXIuc2V0UG9zaXRpb24oY3VyTGluZVN0YXJ0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG1lYXN1cmVyID09IG51bGwpIHsKKyAgICAgICAgICAgIC8vIHRyaWdnZXIgcGFyYWdyYXBoIHVwZGF0ZSBhdCBzdGFydCBvZiBmb3JtYXR0aW5nIGxvb3AKKyAgICAgICAgICAgIGN1clBhcmFncmFwaExpbWl0ID0gY3VyUGFyYWdyYXBoU3RhcnQ7CisgICAgICAgICAgICBjdXJQYXJhZ3JhcGhTdGFydCA9IDA7CisgICAgICAgIH0KKworICAgICAgICBmTFRDdXJUZXh0TGVuID0gbmV3Q3VyVGV4dExlbjsKKyAgICAgICAgCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImxpbmU6ICIgKyBmTFRQb3NFbmQgKyAiLCBjbHM6ICIgKyBjdXJMaW5lU3RhcnQpOworCisKKyAgICAgICAgICAgIGlmIChjdXJMaW5lU3RhcnQgPj0gY3VyUGFyYWdyYXBoTGltaXQpIHsKKyAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhTdGFydCA9IGN1clBhcmFncmFwaExpbWl0OworICAgICAgICAgICAgICAgIGN1clBhcmFncmFwaExpbWl0ID0gZlRleHQucGFyYWdyYXBoTGltaXQoY3VyUGFyYWdyYXBoU3RhcnQpOworCisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChjdXJQYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICAgICAgcmVuZGVyZXIgPSBnZXRSZW5kZXJlckZvcihzdHlsZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoY3VyUGFyYWdyYXBoU3RhcnQgPCBjdXJQYXJhZ3JhcGhMaW1pdCkgeworICAgICAgICAgICAgICAgICAgICBtZWFzdXJlciA9IG1ha2VNZWFzdXJlcihjdXJQYXJhZ3JhcGhTdGFydCwgY3VyUGFyYWdyYXBoTGltaXQpOworICAgICAgICAgICAgICAgICAgICBtZWFzdXJlci5zZXRQb3NpdGlvbihjdXJMaW5lU3RhcnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbWVhc3VyZXIgPSBudWxsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGJvb2xlYW4gaGF2ZU9sZERpcmVjdGlvbiA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXSAhPSBudWxsOworICAgICAgICAgICAgICAgIGJvb2xlYW4gb2xkRGlyZWN0aW9uID0gZmFsc2U7IC8vICBkdW1teSB2YWx1ZSBmb3IgY29tcGlsZXIKKyAgICAgICAgICAgICAgICBpZiAoaGF2ZU9sZERpcmVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICBvbGREaXJlY3Rpb24gPSBmTGluZVRhYmxlW2ZMVFBvc0VuZF0uaXNMZWZ0VG9SaWdodCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZMaW5lVGFibGVbZkxUUG9zRW5kXSA9IHJlbmRlcmVyLmxheW91dChmVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpbmVUYWJsZVtmTFRQb3NFbmRdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkZvbnRSZW5kZXJDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJQYXJhZ3JhcGhTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyUGFyYWdyYXBoTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZXcmFwID8gZkxpbmVEaW0gOiBJbnRlZ2VyLk1BWF9WQUxVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpbmVEaW0pOworICAgICAgICAgICAgICAgIGlmIChoYXZlT2xkRGlyZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChmTGluZVRhYmxlW2ZMVFBvc0VuZF0uaXNMZWZ0VG9SaWdodCgpICE9IG9sZERpcmVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3VGV4dEVuZCA9IE1hdGgubWF4KG5ld1RleHRFbmQsIGN1clBhcmFncmFwaExpbWl0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIExheW91dEluZm8gdGhlTGluZSA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXTsKKworICAgICAgICAgICAgICAgIHRoZUxpbmUuc2V0R3JhcGhpY1N0YXJ0KGN1ckdyYXBoaWNTdGFydCk7CisgICAgICAgICAgICAgICAgY3VyR3JhcGhpY1N0YXJ0ICs9IHRoZUxpbmUuZ2V0SGVpZ2h0KCk7CisKKyAgICAgICAgICAgICAgICBmUGl4SGVpZ2h0ICs9IHRoZUxpbmUuZ2V0SGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgY3VyTGluZVN0YXJ0ICs9IHRoZUxpbmUuZ2V0Q2hhckxlbmd0aCgpOworCisgICAgICAgICAgICAgICAgaWYgKCFmV3JhcCkgeworICAgICAgICAgICAgICAgICAgICBpbnQgbGluZVdpZHRoID0gdGhlTGluZS5nZXRUb3RhbEFkdmFuY2UoKSArIHRoZUxpbmUuZ2V0TGVhZGluZ01hcmdpbigpOworICAgICAgICAgICAgICAgICAgICBpZiAodGhlTGluZS5pc0xlZnRUb1JpZ2h0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmTWF4WCA8IGxpbmVXaWR0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZNYXhYID0gbGluZVdpZHRoOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZMaW5lRGltLWxpbmVXaWR0aCA8IGZNaW5YKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZk1pblggPSBmTGluZURpbS1saW5lV2lkdGg7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIE5leHQsIGRpc2NhcmQgb2Jzb2xldGUgbGluZXMuICBBIGxpbmUgaXMgb2Jzb2xldGUgaWYgaXQKKyAgICAgICAgICAgICAgICBjb250YWlucyBuZXcgdGV4dCBvciB0ZXh0IHdoaWNoIGhhcyBiZWVuIGZvcm1hdHRlZC4KKyAgICAgICAgICAgICovCisKKyAgICAgICAgICAgIHdoaWxlIChmTFROZWdTdGFydCA8IGZMVFNpemUpIHsKKyAgICAgICAgICAgICAgICBpbnQgbGluZVBvcyA9IGZMaW5lVGFibGVbZkxUTmVnU3RhcnRdLmdldENoYXJTdGFydChuZXdDdXJUZXh0TGVuKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZVBvcyA+PSBjdXJMaW5lU3RhcnQgJiYgbGluZVBvcyA+PSBuZXdUZXh0RW5kKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigiZGVsZXRlIG5lZyBsaW5lOiAiICsgZkxUTmVnU3RhcnQpOworICAgICAgICAgICAgICAgIGZQaXhIZWlnaHQgLT0gZkxpbmVUYWJsZVtmTFROZWdTdGFydF0uZ2V0SGVpZ2h0KCk7CisgICAgICAgICAgICAgICAgZkxpbmVUYWJsZVtmTFROZWdTdGFydCsrXSA9IG51bGw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludCBzdG9wQXQ7CisgICAgICAgICAgICBpZiAoZkxUTmVnU3RhcnQgPCBmTFRTaXplKQorICAgICAgICAgICAgICAgIHN0b3BBdCA9IGZMaW5lVGFibGVbZkxUTmVnU3RhcnRdLmdldENoYXJTdGFydChuZXdDdXJUZXh0TGVuKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzdG9wQXQgPSBuZXdDdXJUZXh0TGVuOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgIE5vdywgaWYgZXhpdCBjb25kaXRpb25zIGFyZW4ndCBtZXQsIGNyZWF0ZSBhIG5ldyBsaW5lLgorICAgICAgICAgICAgKi8KKworICAgICAgICAgICAgaWYgKHNlZWtPZmZzZXRBdEVuZCkgeworICAgICAgICAgICAgICAgIGlmICgoY3VyTGluZVN0YXJ0ID49IG5ld1RleHRFbmQpICYmIChmTFROZWdTdGFydCA9PSBmTFRTaXplKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImJyZWFrIDEiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGN1ckxpbmVTdGFydCA+PSBzdG9wQXQpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJjdXJMaW5lU3RhcnQ6ICIgKyBjdXJMaW5lU3RhcnQgKyAiID49IHN0b3BBdDogIiArIHN0b3BBdCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChmTFROZWdTdGFydD09ZkxUU2l6ZSAmJiBmUGl4SGVpZ2h0ID49IHJlcUhlaWdodCkgeworICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0ub3V0LnByaW50bG4oImJyZWFrIDMiKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZkxUUG9zRW5kICsgMSA9PSBmTFROZWdTdGFydCkKKyAgICAgICAgICAgICAgICBleHBhbmRMaW5lVGFibGUoKTsKKworICAgICAgICAgICAgZkxpbmVUYWJsZVsrK2ZMVFBvc0VuZF0gPSBudWxsOyAvLyB3aWxsIGJlIGNyZWF0ZWQgYnkgUmVuZGVyZXIKKyAgICAgICAgfQorICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnQoIlxuIik7CisKKyAgICAgICAgaWYgKG5ld0N1clRleHRMZW4gPT0gMCkgeworICAgICAgICAgICAgZkxpbmVUYWJsZVswXSA9IHBzZXVkb0xpbmVJbmZvKGZMaW5lVGFibGVbMF0sIDApOworICAgICAgICAgICAgZlBpeEhlaWdodCA9IGZMaW5lVGFibGVbMF0uZ2V0SGVpZ2h0KCk7CisgICAgICAgIH0KKyAgICAgICAgZkZ1bGxQaXhIZWlnaHQgPSBmUGl4SGVpZ2h0OworCisgICAgICAgIGlmIChpc1BhcmFCcmVha0JlZm9yZShuZXdDdXJUZXh0TGVuKSkgeworICAgICAgICAgICAgZkZ1bGxQaXhIZWlnaHQgKz0gbGFzdENoYXJIZWlnaHQoKTsKKyAgICAgICAgfQorLyoKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjdXJMaW5lU3RhcnQ6ICIgKyBjdXJMaW5lU3RhcnQgKworICAgICAgICAgICAgIiwgZkxUUG9zRW5kOiAiICsgZkxUUG9zRW5kICsKKyAgICAgICAgICAgICIsIGZMVE5lZ1N0YXJ0OiAiICsgZkxUTmVnU3RhcnQgKworICAgICAgICAgICAgIiwgZkxUU2l6ZTogIiArIGZMVFNpemUpOworCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigib2xkRnVsbFBpeEhlaWdodDogIiArIG9sZEZ1bGxQaXhIZWlnaHQgKyAiLCBuZXdGdWxsUGl4SGVpZ2h0OiAiICsgZkZ1bGxQaXhIZWlnaHQpOworKi8KKyAgICAgICAgaW50IGRhbWFnZUxlbmd0aDsKKyAgICAgICAgaWYgKGZGdWxsUGl4SGVpZ2h0ID09IG9sZEZ1bGxQaXhIZWlnaHQpIHsKKyAgICAgICAgICAgIGRhbWFnZUxlbmd0aCA9IGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRHcmFwaGljU3RhcnQoZlBpeEhlaWdodCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGZMaW5lVGFibGVbZkxUUG9zRW5kXS5nZXRIZWlnaHQoKSAtIGRhbWFnZVN0YXJ0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZGFtYWdlTGVuZ3RoID0gTWF0aC5tYXgoZkZ1bGxQaXhIZWlnaHQsIG9sZEZ1bGxQaXhIZWlnaHQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBSZWN0YW5nbGUoZk1pblgsIGRhbWFnZVN0YXJ0LCBmTWF4WC1mTWluWCwgZGFtYWdlTGVuZ3RoKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHVtcExpbmVUYWJsZSgpCisgICAgeworICAgICAgICBpbnQgaTsKKworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImZMVEN1clRleHRMZW49IiArIGZMVEN1clRleHRMZW4gKyAiICIgKTsKKyAgICAgICAgZm9yIChpPTA7IGk8PSBmTFRQb3NFbmQ7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTGluZSAiICsgaSArICIgc3RhcnRzIGF0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBmTGluZVRhYmxlW2ldLmdldENoYXJTdGFydChmTFRDdXJUZXh0TGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICIgYW5kIGV4dGVuZHMgIiArIGZMaW5lVGFibGVbaV0uZ2V0Q2hhckxlbmd0aCgpKTsKKworICAgICAgICBmb3IgKGk9ZkxUTmVnU3RhcnQ7IGk8IGZMVFNpemU7IGkrKykKKyAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTGluZSAiICsgKGktZkxUTmVnU3RhcnQrZkxUUG9zRW5kKzEpICsgIiBzdGFydHMgYXQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGZMaW5lVGFibGVbaV0uZ2V0Q2hhclN0YXJ0KGZMVEN1clRleHRMZW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBhbmQgZXh0ZW5kcyAiICsgZkxpbmVUYWJsZVtpXS5nZXRDaGFyTGVuZ3RoKCkpOworICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IG1pblgoKSB7CisgICAgCisgICAgICAgIHJldHVybiBmTWluWDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgKiBSZXR1cm4gdGhlIGhvcml6b250YWwgZXh0ZW50IG9mIHRoZSB0ZXh0LCBpbiBwaXhlbHMuCisgICAgKiA8cD4KKyAgICAqIFRoaXMgcmV0dXJucyBhbiBhcHByb3hpbWF0aW9uIGJhc2VkIG9uIHRoZSBjdXJyZW50bHkgZm9ybWF0dGVkIHRleHQuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBtYXhYKCkKKyAgICB7CisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisKKyAgICAgICAgcmV0dXJuIGZNYXhYOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBoZWlnaHQgb2YgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0LgorICAgICoKKyAgICAqIFRoaXMgaXMgdXNlZCBmb3IgdGhlICdleHRyYSBoZWlnaHQnIG5lZWRlZCB0byBkaXNwbGF5IGEgY2FyZXQgYXQgdGhlIGVuZCBvZiB0aGUgdGV4dCB3aGVuIHRoZQorICAgICogdGV4dCBpcyBlbXB0eSBvciBlbmRzIHdpdGggYSBuZXdsaW5lLgorICAgICovCisgICAgcHJpdmF0ZSBpbnQgbGFzdENoYXJIZWlnaHQoKQorICAgIHsKKyAgICAgICAgaW50IGNoYXJJbmRleCA9IGxhc3RMaW5lQ2hhclN0b3AoKSAtIDE7CisgICAgICAgIEF0dHJpYnV0ZU1hcCBzdCA9IGZUZXh0LmNoYXJhY3RlclN0eWxlQXQoY2hhckluZGV4KTsKKyAgICAgICAgRGVmYXVsdENoYXJhY3Rlck1ldHJpYy5NZXRyaWMgbWV0cmljID0gZkRlZmF1bHRDaGFyTWV0cmljLmdldE1ldHJpY0ZvclN0eWxlKHN0KTsKKworICAgICAgICBpbnQgaGVpZ2h0ID0gbWV0cmljLmdldEFzY2VudCgpOworICAgICAgICBoZWlnaHQgKz0gbWV0cmljLmdldERlc2NlbnQoKTsKKyAgICAgICAgaGVpZ2h0ICs9IG1ldHJpYy5nZXRMZWFkaW5nKCk7CisKKyAgICAgICAgcmV0dXJuIGhlaWdodDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGF0IHBvcyBpcyBhIHBhcmFncmFwaCBzZXBhcmF0b3IuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzUGFyYUJyZWFrQmVmb3JlKGludCBwb3MpCisgICAgeworICAgICAgICByZXR1cm4gcG9zID4gMCAmJiAoZlRleHQuYXQocG9zIC0gMSkgPT0gJ1x1MjAyOScgfHwgZlRleHQuYXQocG9zIC0gMSkgPT0gJ1xuJyk7CisgICAgICAgIC8vIHdlIHJlYWxseSBuZWVkIHRvIHRha2UgbG9vayBhdCB0aGlzIGFuZCBkZXRlcm1pbmUgd2hhdCB0aGlzIGZ1bmN0aW9uCisgICAgICAgIC8vIHNob3VsZCBiZSBkb2luZy4gIFdoYXQgSSd2ZSBnb3QgaGVyZSByaWdodCBub3cgaXMgYSB0ZW1wb3JhcnkgaW1wbGVtZW50YXRpb24uCisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbWluWSgpIHsKKyAgICAKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICogUmV0dXJuIHRoZSB2ZXJ0aWNhbCBleHRlbnQgb2YgdGhlIHRleHQsIGluIHBpeGVscy4KKyAgICAqIDxwPgorICAgICogVGhpcyByZXR1cm5zIGFuIGFwcHJveGltYXRpb24gYmFzZWQgb24gdGhlIGN1cnJlbnRseSBmb3JtYXR0ZWQgdGV4dC4KKyAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IG1heFkoKQorICAgIHsKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKworICAgICAgICBpbnQgbnVtQ2hhcnMgPSBsYXN0TGluZUNoYXJTdG9wKCk7CisKKyAgICAgICAgaW50IHBpeEhlaWdodCA9IGZQaXhIZWlnaHQ7CisgICAgICAgIGlmIChudW1DaGFycyA9PSBmTFRDdXJUZXh0TGVuICYmIGlzUGFyYUJyZWFrQmVmb3JlKGZMVEN1clRleHRMZW4pKSB7CisgICAgICAgICAgICBwaXhIZWlnaHQgKz0gbGFzdENoYXJIZWlnaHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChudW1DaGFycyAhPSAwKQorICAgICAgICAgICAgcmV0dXJuIHBpeEhlaWdodCAqIGZUZXh0Lmxlbmd0aCgpIC8gbnVtQ2hhcnM7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRoZSBhY3R1YWwgcGl4ZWwgbGVuZ3RoIG9mIHRoZSB0ZXh0IHdoaWNoIGhhcyBiZWVuIGZvcm1hdHRlZC4KKyAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IGZvcm1hdHRlZEhlaWdodCgpCisgICAgeworICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICByZXR1cm4gZlBpeEhlaWdodDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGVyZSBhcmUgdHdvIG1vZGVzIGZvciBkZWFsaW5nIHdpdGggY2FycmlhZ2UgcmV0dXJucyBhdCB0aGUgZW5kIG9mIGEgbGluZS4gIEluIHRoZSAnaW5maW5pdGUgd2lkdGgnCisgICAgICogbW9kZSwgdGhlIGxhc3QgY2hhcmFjdGVyIGlzIGNvbnNpZGVyZWQgdG8gaGF2ZSBpbmZpbml0ZSB3aWR0aC4gIFRodXMgaWYgdGhlIHBvaW50IGlzIHBhc3QgdGhlICdyZWFsJworICAgICAqIGVuZCBvZiB0aGUgbGluZSwgdGhlIG9mZnNldCBpcyB0aGUgcG9zaXRpb24gYmVmb3JlIHRoYXQgbGFzdCBjaGFyYWN0ZXIsIGFuZCB0aGUgb2Zmc2V0IGlzIGFzc29jaWF0ZWQKKyAgICAgKiB3aXRoIHRoYXQgY2hhcmFjdGVyIChwbGFjZW1lbnQgYWZ0ZXIpLiBJbiB0aGUgJ2FjdHVhbCB3aWR0aCcgbW9kZSwgdGhlIG9mZnNldCBpcyBwb3NpdGlvbmVkIGFmdGVyCisgICAgICogdGhhdCBjaGFyYWN0ZXIsIGJ1dCBzdGlsbCBhc3NvY2lhdGVkIHdpdGggaXQgKHBsYWNlbWVudCBiZWZvcmUpLgorICAgICAqLworCisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0IGxpbmVEaW1Ub09mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwgaW50IGxpbmUsIGludCBsaW5lWCwgaW50IGxpbmVZLCBUZXh0T2Zmc2V0IGFuY2hvciwgYm9vbGVhbiBpbmZpbml0ZU1vZGUpCisgICAgeworICAgIC8vIHRlbXBvcmFyaWx5IGFkanVzdCBsaW5lIGluZm8gdG8gcmVtb3ZlIHRoZSBuZWdhdGl2ZSBjaGFyIHN0YXJ0cyB1c2VkIGluIHRoZSBsaW5lIHRhYmxlLgorICAgIC8vIHRoZW4gY2FsbCB0aHJvdWdoIHRvIHRoZSBwYXJhZ3JhcGggcmVuZGVyZXIgdG8gZ2V0IHRoZSBvZmZzZXQuICBEb24ndCBwdXQgbGluZSBlbmQKKyAgICAvLyBvcHRpbWl6YXRpb24gaGVyZSwgbGV0IHRoZSByZW5kZXJlciBkbyBpdCAocGVyaGFwcyBpdCBkb2VzIGZhbmN5IHN0dWZmIHdpdGggdGhlIG1hcmdpbnMpLgorCisgICAgICAgIExheW91dEluZm8gbGluZUluZm8gPSBmTGluZVRhYmxlW2xpbmVdOworCisgICAgICAgIHJlc3VsdCA9IGxpbmVJbmZvLnBpeGVsVG9PZmZzZXQoZkxUQ3VyVGV4dExlbiwgcmVzdWx0LCBmTGluZURpbSwgbGluZVgsIGxpbmVZKTsKKworICAgICAgICBpZiAoaW5maW5pdGVNb2RlICYmCisgICAgICAgICAgICAocmVzdWx0LmZPZmZzZXQgPiBsaW5lSW5mby5nZXRDaGFyU3RhcnQoZkxUQ3VyVGV4dExlbikpICYmCisgICAgICAgICAgICBpc1BhcmFCcmVha0JlZm9yZShyZXN1bHQuZk9mZnNldCkgJiYKKyAgICAgICAgICAgIChhbmNob3IgPT0gbnVsbCB8fCBhbmNob3IuZk9mZnNldCA9PSByZXN1bHQuZk9mZnNldCAtIDEpKSB7CisKKyAgICAgICAgICAgIHJlc3VsdC5zZXRPZmZzZXQocmVzdWx0LmZPZmZzZXQgLSAxLCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICogR2l2ZW4gYSBzY3JlZW4gbG9jYXRpb24gcCwgcmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIGNoYXJhY3RlciBpbiB0aGUgdGV4dCBuZWFyZXN0IHRvIHAuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIFRleHRPZmZzZXQgcG9pbnRUb1RleHRPZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsIGludCBweCwgaW50IHB5LCBQb2ludCBvcmlnaW4sIFRleHRPZmZzZXQgYW5jaG9yLCBib29sZWFuIGluZmluaXRlTW9kZSkKKyAgICB7CisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisKKyAgICAgICAgaW50IGZpbGxEOworCisgICAgICAgIGlmIChmSExpbmUpCisgICAgICAgICAgICBmaWxsRCA9IHB5IC0gb3JpZ2luLnk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZpbGxEID0gcHggLSBvcmlnaW4ueDsKKworICAgICAgICBpZiAoIWZGaWxsSW5jKQorICAgICAgICAgICAgZmlsbEQgPSAtZmlsbEQ7CisKKyAgICAgICAgaWYgKGZpbGxEIDwgMCkgeworICAgICAgICAgICAgcmVzdWx0LnNldE9mZnNldCgwLCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgZm9ybWF0VG9IZWlnaHQoZmlsbEQpOworCisgICAgICAgIGlmIChmaWxsRCA+PSBmUGl4SGVpZ2h0KSB7CisgICAgICAgICAgICBib29sZWFuIGJpYXMgPSBmTFRDdXJUZXh0TGVuPT0wPyBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCA6IFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVDsKKyAgICAgICAgICAgIHJlc3VsdC5zZXRPZmZzZXQoZkxUQ3VyVGV4dExlbiwgYmlhcyk7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgaW50IGxpbmUgPSBmaW5kTGluZUF0KGZpbGxEKTsgLy8gYWx3YXlzIGEgdmFsaWQgbGluZQorICAgICAgICBpbnQgZ1N0YXJ0ID0gbGluZUdyYXBoaWNTdGFydEludGVybmFsKGxpbmUpOworCisgICAgICAgIGludCBsaW5lWCwgbGluZVk7ICAvLyB1cHBlci1sZWZ0IGNvcm5lciBvZiBsaW5lCisgICAgICAgIGlmIChmSExpbmUpIHsKKyAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLng7CisgICAgICAgICAgICBsaW5lWSA9IGZGaWxsSW5jPyBvcmlnaW4ueSArIGdTdGFydCA6IG9yaWdpbi55IC0gKGdTdGFydCArIGZMaW5lVGFibGVbbGluZV0uZ2V0SGVpZ2h0KCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueTsKKyAgICAgICAgICAgIGxpbmVYID0gZkZpbGxJbmM/IG9yaWdpbi54ICsgZ1N0YXJ0IDogb3JpZ2luLnggLSAoZ1N0YXJ0ICsgZkxpbmVUYWJsZVtsaW5lXS5nZXRIZWlnaHQoKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbGluZURpbVRvT2Zmc2V0KHJlc3VsdCwgbGluZSwgcHggLSBsaW5lWCwgcHkgLSBsaW5lWSwgYW5jaG9yLCBpbmZpbml0ZU1vZGUpOworICAgIH0KKworICAgIHByaXZhdGUgYm9vbGVhbiBlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KCkgeworCisgICAgICAgIHJldHVybiBmTFRDdXJUZXh0TGVuID4gMCAmJgorICAgICAgICAgICAgICAgIGlzUGFyYWdyYXBoU2VwYXJhdG9yKGZUZXh0LmF0KGZMVEN1clRleHRMZW4tMSkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBvZmZzZXQgZGVzaWduYXRlcyBhIHBvaW50IG9uIHRoZSBwc2V1ZG9saW5lIGZvbGxvd2luZyBhIHBhcmFncmFwaAorICAgICAqIHNlcGFyYXRvciBhdCB0aGUgZW5kIG9mIHRleHQuICBUaGlzIGlzIHRydWUgaWYgdGhlIG9mZnNldCBpcyB0aGUgZW5kIG9mIHRleHQKKyAgICAgKiBhbmQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGlzIGEgcGFyYWdyYXBoIHNlcGFyYXRvci4KKyAgICAgKi8KKyAgICBwcml2YXRlIGJvb2xlYW4gYWZ0ZXJMYXN0UGFyYWdyYXBoKFRleHRPZmZzZXQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9mZnNldC5mT2Zmc2V0ID09IGZMVEN1clRleHRMZW4gJiYKKyAgICAgICAgICAgIGVtcHR5UGFyYWdyYXBoQXRFbmRPZlRleHQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIEdpdmVuIGFuIG9mZnNldCwgcmV0dXJuIHRoZSBSZWN0YW5nbGUgYm91bmRpbmcgdGhlIGNhcmV0IGF0IHRoZSBvZmZzZXQuCisgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIG9mZnNldCBpbnRvIHRoZSB0ZXh0CisgICAgKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIHRoZSBkaXNwbGF5J3MgY29vcmRpbmF0ZSBzeXN0ZW0KKyAgICAqIEByZXR1cm4gYSBSZWN0YW5nbGUgYm91bmRpbmcgdGhlIGNhcmV0LgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBSZWN0YW5nbGUgZ2V0Q2FyZXRSZWN0KFRleHRPZmZzZXQgb2Zmc2V0LCBQb2ludCBvcmlnaW4pIHsKKworICAgICAgICBSZWN0YW5nbGUgciA9IG5ldyBSZWN0YW5nbGUoKTsKKyAgICAgICAgZ2V0Q2FyZXRSZWN0KHIsIG9mZnNldCwgb3JpZ2luKTsKKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBnZXRDYXJldFJlY3QoUmVjdGFuZ2xlIHIsIFRleHRPZmZzZXQgb2Zmc2V0LCBQb2ludCBvcmlnaW4pIHsKKyAgICAgICAgCisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIGZvcm1hdFRvT2Zmc2V0KG9mZnNldCk7CisKKyAgICAgICAgaWYgKGFmdGVyTGFzdFBhcmFncmFwaChvZmZzZXQpKSB7CisgICAgICAgICAgICBpbnQgcHNldWRvTGluZUhlaWdodCA9IGxhc3RDaGFySGVpZ2h0KCk7CisgICAgICAgICAgICBpZiAoZkhMaW5lKSB7CisgICAgICAgICAgICAgICAgaW50IGxpbmVZID0gZkZpbGxJbmMgPyBvcmlnaW4ueSArIGZQaXhIZWlnaHQgOiBvcmlnaW4ueSAtIGZQaXhIZWlnaHQgLSBwc2V1ZG9MaW5lSGVpZ2h0OworICAgICAgICAgICAgICAgIHIuc2V0Qm91bmRzKG9yaWdpbi54LCBsaW5lWSwgMCwgcHNldWRvTGluZUhlaWdodCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpbnQgbGluZVggPSBmRmlsbEluYz8gb3JpZ2luLnggKyBmUGl4SGVpZ2h0IDogb3JpZ2luLnggLSBmUGl4SGVpZ2h0IC0gcHNldWRvTGluZUhlaWdodDsKKyAgICAgICAgICAgICAgICByLnNldEJvdW5kcyhsaW5lWCwgb3JpZ2luLnksIHBzZXVkb0xpbmVIZWlnaHQsIDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxpbmUgPSBnZXRWYWxpZExpbmVDb250YWluaW5nKG9mZnNldCk7CisKKyAgICAgICAgaW50IGdTdGFydCA9IGxpbmVHcmFwaGljU3RhcnRJbnRlcm5hbChsaW5lKTsKKworICAgICAgICBpbnQgbGluZVgsIGxpbmVZOworCisgICAgICAgIGlmIChmSExpbmUpIHsKKyAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLng7CisgICAgICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueSArIGdTdGFydDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5lWSA9IG9yaWdpbi55IC0gKGdTdGFydCArIGZMaW5lVGFibGVbbGluZV0uZ2V0SGVpZ2h0KCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueTsKKyAgICAgICAgICAgIGlmIChmRmlsbEluYykKKyAgICAgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54ICsgZ1N0YXJ0OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxpbmVYID0gb3JpZ2luLnggLSAoZ1N0YXJ0ICsgZkxpbmVUYWJsZVtsaW5lXS5nZXRIZWlnaHQoKSk7CisgICAgICAgIH0KKworICAgICAgICBSZWN0YW5nbGUgYm91bmRzID0gZkxpbmVUYWJsZVtsaW5lXS5jYXJldEJvdW5kcyhmVGV4dCwgZkxUQ3VyVGV4dExlbiwgZkxpbmVEaW0sIG9mZnNldC5mT2Zmc2V0LCBsaW5lWCwgbGluZVkpOworCisgICAgICAgIHIuc2V0Qm91bmRzKGJvdW5kcyk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBEcmF3IHRoZSBjYXJldChzKSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIG9mZnNldCBpbnRvIHRoZSBnaXZlbiBHcmFwaGljcy4KKyAgICAqIEBwYXJhbSBnIHRoZSBHcmFwaGljcyB0byBkcmF3IGludG8KKyAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCBpbiB0aGUgdGV4dCBmb3Igd2hpY2ggdGhlIGNhcmV0IGlzIGRyYXduCisgICAgKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIHRoZSBkaXNwbGF5J3MgY29vcmRpbmF0ZSBzeXN0ZW0KKyAgICAqIEBwYXJhbSBzdHJvbmdDYXJldENvbG9yIHRoZSBjb2xvciBvZiB0aGUgc3Ryb25nIGNhcmV0CisgICAgKiBAcGFyYW0gd2Vha0NhcmV0Q29sb3IgdGhlIGNvbG9yIG9mIHRoZSB3ZWFrIGNhcmV0IChpZiBhbnkpCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgZHJhd0NhcmV0KEdyYXBoaWNzIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50IG9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHN0cm9uZ0NhcmV0Q29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciB3ZWFrQ2FyZXRDb2xvcikgeworCisgICAgICAgIGNoZWNrVGltZVN0YW1wKCk7CisgICAgICAgIEdyYXBoaWNzMkQgZzJkID0gR3JhcGhpY3MyRENvbnZlcnNpb24uZ2V0R3JhcGhpY3MyRChnKTsKKyAgICAgICAgZm9ybWF0VG9PZmZzZXQob2Zmc2V0KTsKKworICAgICAgICBMYXlvdXRJbmZvIGxpbmU7CisgICAgICAgIGludCBnU3RhcnQ7CisgICAgICAgIAorICAgICAgICBpZiAoYWZ0ZXJMYXN0UGFyYWdyYXBoKG9mZnNldCkpIHsKKyAgICAgICAgICAgIGdTdGFydCA9IGZQaXhIZWlnaHQ7CisgICAgICAgICAgICBsaW5lID0gcHNldWRvTGluZUluZm8obnVsbCwgb2Zmc2V0LmZPZmZzZXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IGxpbmVJbmRleCA9IGdldFZhbGlkTGluZUNvbnRhaW5pbmcob2Zmc2V0KTsKKyAgICAgICAgICAgIGdTdGFydCA9IGxpbmVHcmFwaGljU3RhcnRJbnRlcm5hbChsaW5lSW5kZXgpOworICAgICAgICAgICAgbGluZSA9IGZMaW5lVGFibGVbbGluZUluZGV4XTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IGxpbmVYLCBsaW5lWTsKKworICAgICAgICBpZiAoZkhMaW5lKSB7CisgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54OworICAgICAgICAgICAgaWYgKGZGaWxsSW5jKQorICAgICAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnkgKyBnU3RhcnQ7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbGluZVkgPSBvcmlnaW4ueSAtIChnU3RhcnQgKyBsaW5lLmdldEhlaWdodCgpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxpbmVZID0gb3JpZ2luLnk7CisgICAgICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICAgICAgbGluZVggPSBvcmlnaW4ueCArIGdTdGFydDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsaW5lWCA9IG9yaWdpbi54IC0gKGdTdGFydCArIGxpbmUuZ2V0SGVpZ2h0KCkpOworICAgICAgICB9CisKKyAgICAgICAgbGluZS5yZW5kZXJDYXJldChmVGV4dCwgZkxUQ3VyVGV4dExlbiwgZzJkLCBmTGluZURpbSwgbGluZVgsIGxpbmVZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQuZk9mZnNldCwgc3Ryb25nQ2FyZXRDb2xvciwgd2Vha0NhcmV0Q29sb3IpOworICAgIH0KKworLyoqCisqIEdpdmVuIHR3byBvZmZzZXRzIGluIHRoZSB0ZXh0LCByZXR1cm4gYSByZWN0YW5nbGUgd2hpY2ggZW5jbG9zZXMgdGhlIGxpbmVzIGNvbnRhaW5pbmcgdGhlIG9mZnNldHMuCisqIE9mZnNldHMgZG8gbm90IG5lZWQgdG8gYmUgb3JkZXJlZCBvciBub25uZWdhdGl2ZS4KKyogQHBhcmFtIG9mZnNldDEsb2Zmc2V0MiBvZmZzZXRzIGludG8gdGhlIHRleHQKKyogQHBhcmFtIG9yaWdpbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSB0ZXh0LCBpbiB0aGUgZGlzcGxheSdzIGNvb3JkaW5hdGUgc3lzdGVtCisqIEByZXR1cm5zIGEgPHR0PlJlY3RhbmdsZTwvdHQ+LCByZWxhdGl2ZSB0byA8dHQ+b3JpZ2luPC90dD4sIHdoaWNoIGVuY2xvc2VzIHRoZSBsaW5lcyBjb250YWluaW5nIHRoZSBvZmZzZXRzCisqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgUmVjdGFuZ2xlIGdldEJvdW5kaW5nUmVjdChUZXh0T2Zmc2V0IG9mZnNldDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgb2Zmc2V0MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnQgb3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHRpZ2h0KSB7CisKKyAgICAgICAgUmVjdGFuZ2xlIHIgPSBuZXcgUmVjdGFuZ2xlKCk7CisgICAgICAgIGdldEJvdW5kaW5nUmVjdChyLCBvZmZzZXQxLCBvZmZzZXQyLCBvcmlnaW4sIHRpZ2h0KTsKKyAgICAgICAgcmV0dXJuIHI7CisgICAgfQorCisvKgorICAgIFRyYW5zZm9ybSByIGZyb20gInRleHQiIGNvb3JkaW5hdGVzIHRvICJzY3JlZW4iIGNvb3JkaW5hdGVzLgorKi8KKworICAgIHByaXZhdGUgdm9pZCBpbnRsUmVjdChQb2ludCBvcmlnaW4sIFJlY3RhbmdsZSByKSB7CisKKyAgICAgICAgaW50IGxpbmVPcmlnLCBmaWxsT3JpZzsKKworICAgICAgICBpZiAoZkhMaW5lKSB7CisgICAgICAgICAgICBsaW5lT3JpZyA9IG9yaWdpbi54OworICAgICAgICAgICAgZmlsbE9yaWcgPSBvcmlnaW4ueTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxpbmVPcmlnID0gb3JpZ2luLnk7CisgICAgICAgICAgICBmaWxsT3JpZyA9IG9yaWdpbi54OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZMaW5lSW5jKQorICAgICAgICAgICAgci54ICs9IGxpbmVPcmlnOworICAgICAgICBlbHNlCisgICAgICAgICAgICByLnggPSBsaW5lT3JpZyAtIChyLnggKyByLndpZHRoKTsKKworICAgICAgICBpZiAoZkZpbGxJbmMpCisgICAgICAgICAgICByLnkgKz0gZmlsbE9yaWc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHIueSA9IGZpbGxPcmlnIC0gKHIueSArIHIuaGVpZ2h0KTsKKworCisgICAgICAgIGlmICghZkhMaW5lKSB7CisgICAgICAgICAgICBpbnQgdCA9IHIueDsKKyAgICAgICAgICAgIHIueCA9IHIueTsKKyAgICAgICAgICAgIHIueSA9IHQ7CisgICAgICAgICAgICB0ID0gci53aWR0aDsKKyAgICAgICAgICAgIHIud2lkdGggPSByLmhlaWdodDsKKyAgICAgICAgICAgIHIuaGVpZ2h0ID0gdDsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIGdldEJvdW5kaW5nUmVjdChSZWN0YW5nbGUgciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb2ludCBvcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHRpZ2h0KQorICAgIHsKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKyAgICAgICAgaWYgKG9mZnNldDEuZXF1YWxzKG9mZnNldDIpKSB7CisgICAgICAgICAgICBnZXRDYXJldFJlY3Qociwgb2Zmc2V0MSwgb3JpZ2luKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAob2Zmc2V0MS5ncmVhdGVyVGhhbihvZmZzZXQyKSkgeworICAgICAgICAgICAgVGV4dE9mZnNldCB0OyB0ID0gb2Zmc2V0MTsgb2Zmc2V0MSA9IG9mZnNldDI7IG9mZnNldDIgPSB0OworICAgICAgICB9CisKKyAgICAgICAgZm9ybWF0VG9PZmZzZXQob2Zmc2V0Mik7CisKKyAgICAgICAgaW50IGxpbmUgPSBnZXRWYWxpZExpbmVDb250YWluaW5nKG9mZnNldDEpOworICAgICAgICByLnkgPSBsaW5lR3JhcGhpY1N0YXJ0SW50ZXJuYWwobGluZSk7CisgICAgICAgIAorICAgICAgICBpbnQgZ0xpbWl0OworICAgICAgICBib29sZWFuIHNhbWVMaW5lID0gZmFsc2U7CisgICAgICAgICAgICAgICAgCisgICAgICAgIGlmIChhZnRlckxhc3RQYXJhZ3JhcGgob2Zmc2V0MikpCisgICAgICAgICAgICBnTGltaXQgPSBmUGl4SGVpZ2h0ICsgbGFzdENoYXJIZWlnaHQoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgbGluZTIgPSBnZXRWYWxpZExpbmVDb250YWluaW5nKG9mZnNldDIpOworICAgICAgICAgICAgZ0xpbWl0ID0gbGluZUdyYXBoaWNMaW1pdEludGVybmFsKGxpbmUyKTsKKyAgICAgICAgICAgIHNhbWVMaW5lID0gKGxpbmUgPT0gbGluZTIpOworICAgICAgICB9CisKKyAgICAgICAgci5oZWlnaHQgPSBnTGltaXQgLSByLnk7CisKKyAgICAgICAgaWYgKHNhbWVMaW5lICYmIHRpZ2h0PT1USUdIVCkgeworICAgICAgICAgICAgUmVjdGFuZ2xlIHJ0ID0gbmV3IFJlY3RhbmdsZSgpOworICAgICAgICAgICAgZ2V0Q2FyZXRSZWN0KHJ0LCBvZmZzZXQxLCBvcmlnaW4pOworICAgICAgICAgICAgci5zZXRCb3VuZHMocnQpOworICAgICAgICAgICAgaWYgKCFvZmZzZXQxLmVxdWFscyhvZmZzZXQyKSkgeworICAgICAgICAgICAgICAgIGdldENhcmV0UmVjdChydCwgb2Zmc2V0Miwgb3JpZ2luKTsKKyAgICAgICAgICAgICAgICByLmFkZChydCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByLnggPSBmTWluWDsKKyAgICAgICAgICAgIHIud2lkdGggPSBmTWF4WCAtIGZNaW5YOworICAgICAgICAgICAgaW50bFJlY3Qob3JpZ2luLCByKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnQoImdicjogIiArIHIueCArICIsICIgKyByLnkgKyAiLCAiICsgci53aWR0aCArICIsICIgKyByLmhlaWdodCk7CisKKyAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCIgLS0+ICIgKyByLnggKyAiLCAiICsgci55ICsgIiwgIiArIHIud2lkdGggKyAiLCAiICsgci5oZWlnaHQpOworICAgIH0KKworICAgIC8qKgorICAgICogQ29tcHV0ZSB0aGUgb2Zmc2V0IHJlc3VsdGluZyBmcm9tIG1vdmluZyBmcm9tIGEgcHJldmlvdXMgb2Zmc2V0IGluIGRpcmVjdGlvbiBkaXIuCisgICAgKiBGb3IgYXJyb3cga2V5cy4KKyAgICAqIEBwYXJhbSByZXN1bHQgdGhlIG9mZnNldCB0byBtb2RpZnkgYW5kIHJldHVybi4gIG1heSBiZSBudWxsLCBpZiBzbyBhIG5ldyBvZmZzZXQgaXMgYWxsb2NhdGVkLCBtb2RpZmllZCwgYW5kIHJldHVybmVkLgorICAgICogQHBhcmFtIHByZXZpb3VzT2Zmc2V0IHRoZSBpbnNlcnRpb24gb2Zmc2V0IHByaW9yIHRvIHRoZSBhcnJvdyBrZXkgcHJlc3MuCisgICAgKiBAcGFyYW0gZGlyZWN0aW9uIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGFycm93IGtleSAoZVVwLCBlRG93biwgZUxlZnQsIG9yIGVSaWdodCkKKyAgICAqIEByZXR1cm5zIG5ldyBvZmZzZXQgYmFzZWQgb24gZGlyZWN0aW9uIGFuZCBwcmV2aW91cyBvZmZzZXQuCisgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIFRleHRPZmZzZXQgZmluZEluc2VydGlvbk9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwgVGV4dE9mZnNldCBwcmV2T2Zmc2V0LCBzaG9ydCBkaXIpCisgICAgeworICAgICAgICByZXR1cm4gZmluZE5ld0luc2VydGlvbk9mZnNldChyZXN1bHQsIHByZXZPZmZzZXQsIHByZXZPZmZzZXQsIGRpcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogVHJhbnNmb3JtIGtleSBkaXJlY3Rpb246ICBhZnRlciB0aGlzIHN0ZXAsICJsZWZ0IiBtZWFucyBwcmV2aW91cyBnbHlwaCwgInJpZ2h0IiBtZWFucyBuZXh0IGdseXBoLAorICAgICAqInVwIiBtZWFucyBwcmV2aW91cyBsaW5lLCAiZG93biIgbWVhbnMgbmV4dCBsaW5lCisgICAgICovCisgICAgcHJpdmF0ZSBzaG9ydCByZW1hcEFycm93S2V5KHNob3J0IGRpcikgeworCisgICAgICAgIGlmICghZkxpbmVJbmMpIHsKKyAgICAgICAgICAgIGlmIChkaXIgPT0gZUxlZnQpCisgICAgICAgICAgICAgICAgZGlyID0gZVJpZ2h0OworICAgICAgICAgICAgZWxzZSBpZiAoZGlyID09IGVSaWdodCkKKyAgICAgICAgICAgICAgICBkaXIgPSBlTGVmdDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZkZpbGxJbmMpIHsKKyAgICAgICAgICAgIGlmIChkaXIgPT0gZVVwKQorICAgICAgICAgICAgICAgIGRpciA9IGVEb3duOworICAgICAgICAgICAgZWxzZSBpZiAoZGlyID09IGVEb3duKQorICAgICAgICAgICAgICAgIGRpciA9IGVVcDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZkhMaW5lKSB7CisgICAgICAgICAgICBpZiAoZGlyID09IGVMZWZ0KQorICAgICAgICAgICAgICAgIGRpciA9IGVVcDsKKyAgICAgICAgICAgIGVsc2UgaWYgKGRpciA9PSBlUmlnaHQpCisgICAgICAgICAgICAgICAgZGlyID0gZURvd247CisgICAgICAgICAgICBlbHNlIGlmIChkaXIgPT0gZVVwKQorICAgICAgICAgICAgICAgIGRpciA9IGVMZWZ0OworICAgICAgICAgICAgZWxzZSBpZiAoZGlyID09IGVEb3duKQorICAgICAgICAgICAgICAgIGRpciA9IGVSaWdodDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBkaXI7CisgICAgfQorCisgICAgLyoqCisgICAgKiBDb21wdXRlIHRoZSBvZmZzZXQgcmVzdWx0aW5nIGZyb20gbW92aW5nIGZyb20gYSBwcmV2aW91cyBvZmZzZXQsIHN0YXJ0aW5nIGF0IGFuIG9yaWdpbmFsIG9mZnNldCwgaW4gZGlyZWN0aW9uIGRpci4KKyAgICAqIEZvciBhcnJvdyBrZXlzLiAgVXNlIHRoaXMgZm9yICJzbWFydCIgdXAvZG93biBrZXlzLgorICAgICogQHBhcmFtIHJlc3VsdCB0aGUgb2Zmc2V0IHRvIG1vZGlmeSBhbmQgcmV0dXJuLiAgTWF5IGJlIG51bGwsIGlmIHNvIGEgbmV3IG9mZnNldCBpcyBhbGxvY2F0ZWQsIG1vZGlmaWVkLCBhbmQgcmV0dXJuZWQuCisgICAgKiBAcGFyYW0gb3JpZ09mZnNldCB0aGUgb2Zmc2V0IGF0IHdoaWNoIGFuIHVwLWRvd24gYXJyb3cga2V5IHNlcXVlbmNlIGJlZ2FuLgorICAgICogQHBhcmFtIHByZXZPZmZzZXQgdGhlIGluc2VydGlvbiBvZmZzZXQgcHJpb3IgdG8gdGhlIGFycm93IGtleSBwcmVzcworICAgICogQHBhcmFtIGRpciB0aGUgZGlyZWN0aW9uIG9mIHRoZSBhcnJvdyBrZXkgKGVVcCwgZURvd24sIGVMZWZ0LCBvciBlUmlnaHQpCisgICAgKiBAcmV0dXJucyBuZXcgb2Zmc2V0IGJhc2VkIG9uIGRpcmVjdGlvbiwgb3JpZ2luYWwgb2Zmc2V0LCBhbmQgcHJldmlvdXMgb2Zmc2V0LgorICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBUZXh0T2Zmc2V0IGZpbmROZXdJbnNlcnRpb25PZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsIFRleHRPZmZzZXQgb3JpZ09mZnNldCwgVGV4dE9mZnNldCBwcmV2T2Zmc2V0LCBzaG9ydCBkaXIpCisgICAgeworICAgICAgICBjaGVja1RpbWVTdGFtcCgpOworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpCisgICAgICAgICAgICByZXN1bHQgPSBuZXcgVGV4dE9mZnNldCgpOworCisgICAgICAgIGRpciA9IHJlbWFwQXJyb3dLZXkoZGlyKTsKKworICAgICAgICAvLyBhc3N1bWUgdGhhdCB0ZXh0IGF0IG9yaWdPZmZzZXQgYW5kIHByZXZPZmZzZXQgaGFzIGFscmVhZHkgYmVlbiBmb3JtYXR0ZWQKKworICAgICAgICBpZiAoZGlyID09IGVMZWZ0IHx8IGRpciA9PSBlUmlnaHQpIHsKKyAgICAgICAgICAgIGZvcm1hdFRvT2Zmc2V0KHByZXZPZmZzZXQpOworICAgICAgICAgICAgaW50IGxpbmUgPSBnZXRWYWxpZExpbmVDb250YWluaW5nKHByZXZPZmZzZXQpOworCisgICAgICAgICAgICByZXN1bHQuZlBsYWNlbWVudCA9IFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUOworICAgICAgICAgICAgcmVzdWx0LmZPZmZzZXQgPSBmTGluZVRhYmxlW2xpbmVdLmdldE5leHRPZmZzZXQoZkxUQ3VyVGV4dExlbiwgcHJldk9mZnNldC5mT2Zmc2V0LCBkaXIpOworICAgICAgICAgICAgaWYgKHJlc3VsdC5mT2Zmc2V0IDwgMCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5mT2Zmc2V0ID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHJlc3VsdC5mT2Zmc2V0ID49IGZMVEN1clRleHRMZW4pIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0T2Zmc2V0KGZMVEN1clRleHRMZW4sIFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgZGlzdE9uTGluZTsKKworICAgICAgICAgICAgaWYgKGFmdGVyTGFzdFBhcmFncmFwaChvcmlnT2Zmc2V0KSkKKyAgICAgICAgICAgICAgICBkaXN0T25MaW5lID0gMDsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBsaW5lID0gZ2V0VmFsaWRMaW5lQ29udGFpbmluZyhvcmlnT2Zmc2V0KTsKKworICAgICAgICAgICAgICAgIGRpc3RPbkxpbmUgPSBmTGluZVRhYmxlW2xpbmVdLnN0cm9uZ0NhcmV0QmFzZWxpbmVQb3NpdGlvbihmTFRDdXJUZXh0TGVuLCBmTGluZURpbSwgb3JpZ09mZnNldC5mT2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gZ2V0IHByZXZPZmZzZXQncyBsaW5lCisgICAgICAgICAgICBpbnQgbGluZTsKKyAgICAgICAgICAgIGlmIChhZnRlckxhc3RQYXJhZ3JhcGgocHJldk9mZnNldCkpCisgICAgICAgICAgICAgICAgbGluZSA9IGxhc3RMaW5lKCkgKyAxOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbGluZSA9IGdldExpbmVDb250YWluaW5nKHByZXZPZmZzZXQpOworCisgICAgICAgICAgICAgICAgaWYgKGRpciA9PSBlRG93biAmJiAobGluZSA9PSBrQWZ0ZXJMYXN0TGluZSB8fCBsaW5lID09IGxhc3RMaW5lKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAmJiAobGFzdExpbmVDaGFyU3RvcCgpIDwgZlRleHQubGVuZ3RoKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIHNoaWZ0VGFibGVUbyhsYXN0TGluZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0VGV4dChsYXN0TGluZUNoYXJTdG9wKCksIDEsIEludGVnZXIuTUFYX1ZBTFVFLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgbGluZSA9IGdldExpbmVDb250YWluaW5nKHByZXZPZmZzZXQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChsaW5lID09IGtCZWZvcmVGaXJzdExpbmUpCisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSAwOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGxpbmUgPT0ga0FmdGVyTGFzdExpbmUpCisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsYXN0TGluZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZGlyID09IGVVcCkKKyAgICAgICAgICAgICAgICBsaW5lLS07CisgICAgICAgICAgICBlbHNlIGlmIChkaXIgPT0gZURvd24pCisgICAgICAgICAgICAgICAgbGluZSsrOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkRlYnVnOiBJbGxlZ2FsIGRpcmVjdGlvbiBwYXJhbWV0ZXIgaW4gZmluZE5ld0luc2VydGlvbk9mZnNldCIpOworCisgICAgICAgICAgICBpZiAobGluZSA8IDApIHsKKyAgICAgICAgICAgICAgICAvL3Jlc3VsdC5zZXRPZmZzZXQoMCwgVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQpOworICAgICAgICAgICAgICAgIHJlc3VsdC5hc3NpZ24ocHJldk9mZnNldCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChsaW5lID4gbGFzdExpbmUoKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRPZmZzZXQoZkxUQ3VyVGV4dExlbiwgVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChmTGluZVRhYmxlW2xpbmVdID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSAoZGlyID09IGVVcCk/IGZMVFBvc0VuZCA6IGZMVE5lZ1N0YXJ0OworCisgICAgICAgICAgICAgICAgLy8gYW5jaG9yIGlzIG51bGwgc2luY2Ugd2UgbmV2ZXIgd2FudCBhIHBvc2l0aW9uIGFmdGVyIG5ld2xpbmUuICBJZiB3ZSB1c2VkIHRoZSByZWFsIGFuY2hvciwKKyAgICAgICAgICAgICAgICAvLyB3ZSBtaWdodCBub3QgaWdub3JlIHRoZSBuZXdsaW5lIGV2ZW4gdGhvdWdoIGluZmluaXRlTW9kZSBpcyB0cnVlLgorICAgICAgICAgICAgICAgIGxpbmVEaW1Ub09mZnNldChyZXN1bHQsIGxpbmUsIGRpc3RPbkxpbmUsIDAsIG51bGwsIHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCJmbmlvIHByZXY6ICIgKyBwcmV2T2Zmc2V0ICsgIiwgbmV3OiAiICsgcmVzdWx0KTsKKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBzdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKQorICAgIHsKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKyAgICAgICAgZkJnRm9ybWF0QWxsb3dlZCA9IGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgc3luY2hyb25pemVkIHZvaWQgZW5hYmxlQkdGb3JtYXQoKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZCZ0Zvcm1hdEFsbG93ZWQgPSB0cnVlOworICAgICAgICAgICAgbm90aWZ5KCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKElsbGVnYWxNb25pdG9yU3RhdGVFeGNlcHRpb24gZSkgeworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBpbnQgbGluZUluZGV4VG9OdW1iZXIoaW50IGxpbmVJbmRleCkgeworCisgICAgICAgIGlmIChsaW5lSW5kZXggPD0gZkxUUG9zRW5kKSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUluZGV4OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxpbmVJbmRleCAtIChmTFROZWdTdGFydC1mTFRQb3NFbmQtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBsaW5lTnVtYmVyVG9JbmRleChpbnQgbGluZU51bWJlcikgeworCisgICAgICAgIGlmIChsaW5lTnVtYmVyIDw9IGZMVFBvc0VuZCkgeworICAgICAgICAgICAgcmV0dXJuIGxpbmVOdW1iZXI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbGluZU51bWJlciArIChmTFROZWdTdGFydC1mTFRQb3NFbmQtMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZm9ybWF0VG9MaW5lTnVtYmVyKGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgd2hpbGUgKGxhc3RMaW5lQ2hhclN0b3AoKSA8IGZMVEN1clRleHRMZW4gJiYKKyAgICAgICAgICAgICAgICBsaW5lTnVtYmVyID49IGxpbmVJbmRleFRvTnVtYmVyKGZMVFNpemUpKSB7CisgICAgICAgICAgICAvLyBjb3VsZCBiZSBzbWFydGVyIGFuZCBjaG9vc2UgbGFyZ2VyIGFtb3VudHMgZm9yCisgICAgICAgICAgICAvLyBsYXJnZXIgbGluZXMsIGJ1dCBwcm9iYWJseSBub3Qgd29ydGggdGhlIGVmZm9ydAorICAgICAgICAgICAgZm9ybWF0VG9IZWlnaHQoZlBpeEhlaWdodCArIGtQaXhJbmNyZW1lbnQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgYm9vbGVhbiBTVFJJQ1QgPSB0cnVlOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGJvb2xlYW4gTEVOSUVOVCA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogSW5zdXJlIHRoYXQgYXQgbGVhc3QgbGluZU51bWJlciBsaW5lcyBleGlzdCwgZG9pbmcKKyAgICAgKiBleHRyYSBmb3JtYXR0aW5nIGlmIG5lY2Vzc2FyeS4KKyAgICAgKiBUaHJvd3MgZXhjZXB0aW9uIGlmIGxpbmVOdW1iZXIgaXMgbm90IHZhbGlkLgorICAgICAqIEBwYXJhbSBzdHJpY3QgaWYgU1RSSUNULCBvbmx5IGxpbmVzIFswLi4ubWF4TGluZU51bWJlcigpXQorICAgICAqICAgICAgICBhcmUgcGVybWl0dGVkLiAgSWYgTEVOSUVOVCwgbWF4TGluZU51bWJlcigpKzEgaXMKKyAgICAgKiAgICAgICAgdGhlIGdyZWF0ZXN0IHZhbGlkIHZhbHVlLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCB2YWxpZGF0ZUxpbmVOdW1iZXIoaW50IGxpbmVOdW1iZXIsIGJvb2xlYW4gc3RyaWN0KSB7CisKKyAgICAgICAgZm9ybWF0VG9MaW5lTnVtYmVyKGxpbmVOdW1iZXIpOworCisgICAgICAgIGludCBtYXhOdW1iZXIgPSBsaW5lSW5kZXhUb051bWJlcihmTFRTaXplKTsKKyAgICAgICAgaWYgKHN0cmljdCA9PSBTVFJJQ1QpIHsKKyAgICAgICAgICAgIG1heE51bWJlciAtPSAxOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGxpbmVOdW1iZXIgPiBtYXhOdW1iZXIrMSB8fAorICAgICAgICAgICAgICAgIChsaW5lTnVtYmVyID09IG1heE51bWJlcisxICYmICFlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KCkpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGxpbmUgbnVtYmVyOiAiICsgbGluZU51bWJlcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBnZXRMaW5lQ291bnQoKSB7CisKKyAgICAgICAgLy8gZm9ybWF0IGFsbCB0ZXh0OgorICAgICAgICBmb3JtYXRUb0hlaWdodChJbnRlZ2VyLk1BWF9WQUxVRSk7CisKKyAgICAgICAgaW50IGxpbmVDb3VudCA9IGxpbmVJbmRleFRvTnVtYmVyKGZMVFNpemUpOworCisgICAgICAgIGlmIChlbXB0eVBhcmFncmFwaEF0RW5kT2ZUZXh0KCkpIHsKKyAgICAgICAgICAgIGxpbmVDb3VudCArPSAxOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGxpbmVDb3VudDsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbGluZUNvbnRhaW5pbmcoaW50IGNoYXJJbmRleCkgeworICAgICAgICAKKyAgICAgICAgZm9ybWF0VG9PZmZzZXQoY2hhckluZGV4LCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgIAorICAgICAgICBib29sZWFuIHBsYWNlbWVudCA9IFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUOworICAgICAgICBpZiAoY2hhckluZGV4ID09IGZMVEN1clRleHRMZW4gJiYgY2hhckluZGV4ID4gMCkgeworICAgICAgICAgICAgcGxhY2VtZW50ID0gZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dCgpPyBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQuQkVGT1JFX09GRlNFVDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGxpbmVDb250YWluaW5nKGNoYXJJbmRleCwgcGxhY2VtZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBsaW5lQ29udGFpbmluZyhUZXh0T2Zmc2V0IG9mZnNldCkgeworCisgICAgICAgIGZvcm1hdFRvT2Zmc2V0KG9mZnNldCk7CisKKyAgICAgICAgaWYgKGFmdGVyTGFzdFBhcmFncmFwaChvZmZzZXQpKSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUluZGV4VG9OdW1iZXIoZkxUU2l6ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBsaW5lQ29udGFpbmluZyhvZmZzZXQuZk9mZnNldCwgb2Zmc2V0LmZQbGFjZW1lbnQpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGludCBsaW5lQ29udGFpbmluZyhpbnQgb2ZmLCBib29sZWFuIHBsYWNlbWVudCkgeworICAgICAgICAKKyAgICAgICAgaW50IGxpbmUgPSBvZmY9PTA/IDAgOiBnZXRMaW5lQ29udGFpbmluZyhvZmYsIHBsYWNlbWVudCk7CisgICAgICAgIAorICAgICAgICBpZiAobGluZSA9PSBrQWZ0ZXJMYXN0TGluZSkgeworICAgICAgICAgICAgbGluZSA9IGZMVFNpemU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobGluZSA9PSBrQmVmb3JlRmlyc3RMaW5lKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImxpbmVDb250YWluaW5nIGdvdCBpbnZhbGlkIHJlc3VsdCBmcm9tIGdldExpbmVDb250YWluaW5nKCkuIik7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbGluZUluZGV4VG9OdW1iZXIobGluZSk7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBpbnQgbGluZVJhbmdlTG93KGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgdmFsaWRhdGVMaW5lTnVtYmVyKGxpbmVOdW1iZXIsIFNUUklDVCk7CisgICAgICAgIGludCBpbmRleCA9IGxpbmVOdW1iZXJUb0luZGV4KGxpbmVOdW1iZXIpOworCisgICAgICAgIGlmIChpbmRleCA9PSBmTFRTaXplKSB7CisgICAgICAgICAgICBpZiAoZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RMaW5lQ2hhclN0b3AoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpbmRleCA+PSBmTFRTaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJsaW5lTnVtYmVyIGlzIGludmFsaWQuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUNoYXJTdGFydEludGVybmFsKGluZGV4KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgaW50IGxpbmVSYW5nZUxpbWl0KGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgdmFsaWRhdGVMaW5lTnVtYmVyKGxpbmVOdW1iZXIsIFNUUklDVCk7CisgICAgICAgIGludCBpbmRleCA9IGxpbmVOdW1iZXJUb0luZGV4KGxpbmVOdW1iZXIpOworCisgICAgICAgIGlmIChpbmRleCA9PSBmTFRTaXplKSB7CisgICAgICAgICAgICBpZiAoZW1wdHlQYXJhZ3JhcGhBdEVuZE9mVGV4dCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RMaW5lQ2hhclN0b3AoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChpbmRleCA+PSBmTFRTaXplKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJsaW5lTnVtYmVyIGlzIGludmFsaWQuIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbGluZUNoYXJMaW1pdEludGVybmFsKGluZGV4KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIHRoZSBsaW5lIGF0IHRoZSBnaXZlbiBncmFwaGljIGhlaWdodC4KKyAgICAgKiBJZiBoZWlnaHQgaXMgZ3JlYXRlciB0aGFuIGZ1bGwgaGVpZ2h0LCByZXR1cm4gbGluZSBjb3VudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBsaW5lQXRIZWlnaHQoaW50IGhlaWdodCkgeworCisgICAgICAgIGlmIChoZWlnaHQgPj0gZlBpeEhlaWdodCkgeworCisgICAgICAgICAgICBpbnQgbGluZSA9IGdldExpbmVDb3VudCgpOworICAgICAgICAgICAgaWYgKGhlaWdodCA8IGZGdWxsUGl4SGVpZ2h0KSB7CisgICAgICAgICAgICAgICAgbGluZSAtPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoaGVpZ2h0IDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxpbmVJbmRleFRvTnVtYmVyKGZpbmRMaW5lQXQoaGVpZ2h0KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGludCBsaW5lR3JhcGhpY1N0YXJ0KGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsKKyAgICAgICAgdmFsaWRhdGVMaW5lTnVtYmVyKGxpbmVOdW1iZXIsIExFTklFTlQpOworCisgICAgICAgIGludCBpbmRleCA9IGxpbmVOdW1iZXJUb0luZGV4KGxpbmVOdW1iZXIpOworCisgICAgICAgIGlmIChpbmRleCA8IGZMVFNpemUpIHsKKyAgICAgICAgICAgIHJldHVybiBsaW5lR3JhcGhpY1N0YXJ0SW50ZXJuYWwoaW5kZXgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGluZGV4ID09IGZMVFNpemUrMSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmRnVsbFBpeEhlaWdodDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBmUGl4SGVpZ2h0OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBib29sZWFuIGxpbmVJc0xlZnRUb1JpZ2h0KGludCBsaW5lTnVtYmVyKSB7CisgICAgICAgIAorICAgICAgICB2YWxpZGF0ZUxpbmVOdW1iZXIobGluZU51bWJlciwgU1RSSUNUKTsKKyAgICAgICAgCisgICAgICAgIGludCBpbmRleCA9IGxpbmVOdW1iZXJUb0luZGV4KGxpbmVOdW1iZXIpOworICAgICAgICAKKyAgICAgICAgaWYgKGluZGV4IDwgZkxUU2l6ZSkgeworICAgICAgICAgICAgcmV0dXJuIGZMaW5lVGFibGVbaW5kZXhdLmlzTGVmdFRvUmlnaHQoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdCA9IGZUZXh0LnBhcmFncmFwaFN0eWxlQXQoZkxUQ3VyVGV4dExlbik7CisgICAgICAgICAgICByZXR1cm4gIVRleHRBdHRyaWJ1dGUuUlVOX0RJUkVDVElPTl9SVEwuZXF1YWxzKHN0LmdldChUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT04pKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogTnVtYmVyIG9mIHBpeGVscyBieSB3aGljaCB0byBhZHZhbmNlIGZvcm1hdHRpbmcgaW4gdGhlIGJhY2tncm91bmQuCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga1BpeEluY3JlbWVudCA9IDEwMDsKKworICAgIC8qKgorICAgICogVGltZSB0byBzbGVlcCBiZXR3ZWVuIGJhY2tncm91bmQgZm9ybWF0dGluZyBvcGVyYXRpb25zLgorICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtJbnRlcnZhbCA9IDEwMDsKKworICAgIC8qKgorICAgICogUGVyZm9ybSBwZXJpb2RpYyBiYWNrZ3JvdW5kIGZvcm1hdHRpbmcuCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBydW4oKQorICAgIHsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAodGhpcykgeworICAgICAgICAgICAgICAgIHdoaWxlKCFmQmdGb3JtYXRBbGxvd2VkKSB7CisgICAgICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICB3YWl0KCk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2goSW50ZXJydXB0ZWRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY2hlY2tUaW1lU3RhbXAoKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9ybWF0VG9IZWlnaHQoZlBpeEhlaWdodCArIGtQaXhJbmNyZW1lbnQpOworCisgICAgICAgICAgICAgICAgaWYgKGxhc3RMaW5lQ2hhclN0b3AoKSA9PSBmTFRDdXJUZXh0TGVuKSB7CisgICAgICAgICAgICAgICAgICAgIHN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoa0ludGVydmFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgUGFyYWdyYXBoUmVuZGVyZXIgZ2V0UmVuZGVyZXJGb3IoQXR0cmlidXRlTWFwIHMpIHsKKyAgICAKKyAgICAgICAgLy8gTm90ZTogIGV2ZW50dWFsbHkgd2UgY291bGQgbGV0IGNsaWVudHMgcHV0IHRoZWlyIG93biByZW5kZXJlcnMKKyAgICAgICAgLy8gb24gdGhlIHRleHQuCisgICAgICAgIEJpZGlQYXJhZ3JhcGhSZW5kZXJlciByZW5kZXJlciA9IChCaWRpUGFyYWdyYXBoUmVuZGVyZXIpIGZSZW5kZXJlckNhY2hlLmdldChzKTsKKyAgICAgICAgaWYgKHJlbmRlcmVyID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3IEJpZGlQYXJhZ3JhcGhSZW5kZXJlcihmRGVmYXVsdFZhbHVlcy5hZGRBdHRyaWJ1dGVzKHMpLCBmRGVmYXVsdENoYXJNZXRyaWMpOworICAgICAgICAgICAgZlJlbmRlcmVyQ2FjaGUucHV0KHMsIHJlbmRlcmVyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVuZGVyZXI7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0JpZGlQYXJhZ3JhcGhSZW5kZXJlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9CaWRpUGFyYWdyYXBoUmVuZGVyZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MzBmMmViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9CaWRpUGFyYWdyYXBoUmVuZGVyZXIuamF2YQpAQCAtMCwwICsxLDExNDcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CitpbXBvcnQgamF2YS5hd3QuU2hhcGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UYWJSdWxlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuVGFiU3RvcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkdyYXBoaWNzMkRDb252ZXJzaW9uOworCisvLy8qSkRLMTJJTVBPUlRTCitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3MyRDsKKworaW1wb3J0IGphdmEuYXd0LmZvbnQuRm9udFJlbmRlckNvbnRleHQ7CitpbXBvcnQgamF2YS5hd3QuZm9udC5UZXh0TGF5b3V0OworaW1wb3J0IGphdmEuYXd0LmZvbnQuTGluZUJyZWFrTWVhc3VyZXI7CitpbXBvcnQgamF2YS5hd3QuZm9udC5UZXh0SGl0SW5mbzsKKworaW1wb3J0IGphdmEuYXd0Lmdlb20uQWZmaW5lVHJhbnNmb3JtOworaW1wb3J0IGphdmEuYXd0Lmdlb20uR2VuZXJhbFBhdGg7CitpbXBvcnQgamF2YS5hd3QuZ2VvbS5SZWN0YW5nbGUyRDsKKy8vSkRLMTJJTVBPUlRTKi8KKy8qSkRLMTFJTVBPUlRTCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkdyYXBoaWNzMkQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuRm9udFJlbmRlckNvbnRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LlRleHRMYXlvdXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkxpbmVCcmVha01lYXN1cmVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5UZXh0SGl0SW5mbzsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5BZmZpbmVUcmFuc2Zvcm07CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkdlbmVyYWxQYXRoOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5SZWN0YW5nbGUyRDsKK0pESzExSU1QT1JUUyovCisKK2ZpbmFsIGNsYXNzIEJpZGlQYXJhZ3JhcGhSZW5kZXJlciBleHRlbmRzIFBhcmFncmFwaFJlbmRlcmVyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBmaW5hbCBjbGFzcyBCaWRpU2VnbWVudCB7CisgICAgICAgIFRleHRMYXlvdXQgZkxheW91dDsKKyAgICAgICAgUmVjdGFuZ2xlMkQuRmxvYXQgZkJvdW5kczsKKyAgICAgICAgaW50IGZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgIH0KKworICAgIHByaXZhdGUgZmluYWwgY2xhc3MgQmlkaUxheW91dEluZm8gZXh0ZW5kcyBMYXlvdXRJbmZvCisgICAgeyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGludCBmQ2hhckxlbmd0aDsgICAgICAvLyBudW1iZXIgb2YgY2hhcmFjdGVycyBvbiBsaW5lICh3YXMgZkxlbmd0aCkKKyAgICAgICAgaW50IGZBc2NlbnQ7CisgICAgICAgIGludCBmRGVzY2VudDsKKyAgICAgICAgaW50IGZMZWFkaW5nOworICAgICAgICBpbnQgZlZpc2libGVBZHZhbmNlOyAgLy8gZGlzdGFuY2UgYWxvbmcgbGluZSBkaXJlY3Rpb24gaWUgd2lkdGgKKyAgICAgICAgaW50IGZUb3RhbEFkdmFuY2U7ICAgIC8vIGRpc3RhbmNlIGFsb25nIGxpbmUgZGlyZWN0aW9uIGluY2x1ZGluZyB0cmFpbGluZyB3aGl0ZXNwYWNlCisKKyAgICAgICAgaW50IGZMZWFkaW5nTWFyZ2luOyAgIC8vIHNjcmVlbiBkaXN0YW5jZSBmcm9tIGxlYWRpbmcgbWFyZ2luCisKKyAgICAgICAgYm9vbGVhbiBmTGVmdFRvUmlnaHQ7IC8vIHRydWUgaWZmIHRoZSBvcmllbnRhdGlvbiBpcyBsZWZ0LXRvLXJpZ2h0CisKKyAgICAgICAgZmluYWwgVmVjdG9yIGZTZWdtZW50cyA9IG5ldyBWZWN0b3IoKTsgLy8gc2VnbWVudHMgdG8gcmVuZGVyLCBpbiBsb2dpY2FsIG9yZGVyCisKKyAgICAgICAgcHVibGljIGludCBnZXRDaGFyTGVuZ3RoKCkgeworICAgICAgICAgICAgcmV0dXJuIGZDaGFyTGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRBc2NlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gZkFzY2VudDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0RGVzY2VudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBmRGVzY2VudDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0TGVhZGluZygpIHsKKyAgICAgICAgICAgIHJldHVybiBmTGVhZGluZzsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0VmlzaWJsZUFkdmFuY2UoKSB7CisgICAgICAgICAgICByZXR1cm4gZlZpc2libGVBZHZhbmNlOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRUb3RhbEFkdmFuY2UoKSB7CisgICAgICAgICAgICByZXR1cm4gZlRvdGFsQWR2YW5jZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0TGVhZGluZ01hcmdpbigpIHsKKyAgICAgICAgICAgIHJldHVybiBmTGVhZGluZ01hcmdpbjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGlzTGVmdFRvUmlnaHQoKSB7CisgICAgICAgICAgICByZXR1cm4gZkxlZnRUb1JpZ2h0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRIZWlnaHQoKSB7CisgICAgICAgICAgICByZXR1cm4gZkFzY2VudCArIGZEZXNjZW50ICsgZkxlYWRpbmc7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICJMYXlvdXRJbmZvKGNoYXJTdGFydDogIiArIGdldENoYXJTdGFydCgwKSArCisgICAgICAgICAgICAgICAgIiwgZkNoYXJMZW5ndGg6ICIgKyBmQ2hhckxlbmd0aCArCisgICAgICAgICAgICAgICAgIiwgZkFzY2VudDogIiArIGZBc2NlbnQgKworICAgICAgICAgICAgICAgICIsIGZEZXNjZW50OiAiICsgZkRlc2NlbnQgKworICAgICAgICAgICAgICAgICIsIGZWaXNpYmxlQWR2YW5jZTogIiArIGZWaXNpYmxlQWR2YW5jZSArCisgICAgICAgICAgICAgICAgIiwgZlRvdGFsQWR2YW5jZTogIiArIGZUb3RhbEFkdmFuY2UgKworICAgICAgICAgICAgICAgICIsIGZMZWFkaW5nTWFyZ2luOiAiICsgZkxlYWRpbmdNYXJnaW4gKworICAgICAgICAgICAgICAgICIpIjsKKyAgICAgICAgfQorCisgICAgICAgIEJpZGlQYXJhZ3JhcGhSZW5kZXJlciBmUmVuZGVyZXI7CisKKyAgICAgICAgLy8ganVzdCBkZWxlZ2F0ZSB0byByZW5kZXJlciBmb3Igbm93CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVuZGVyV2l0aEhpZ2hsaWdodChpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IgaGlnaGxpZ2h0Q29sb3IpIHsKKworICAgICAgICAgICAgZlJlbmRlcmVyLnJlbmRlcldpdGhIaWdobGlnaHQodGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxTdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0Q29sb3IpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVuZGVyKGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzMkQgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5KSB7CisgICAgICAgICAgICBmUmVuZGVyZXIucmVuZGVyKHRoaXMsIGxlbmd0aEJhc2lzLCBnLCBsaW5lQm91bmQsIHgsIHkpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgcmVuZGVyQ2FyZXQoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzMkQgZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3Igc3Ryb25nQ2FyZXRDb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3Igd2Vha0NhcmV0Q29sb3IpIHsKKyAgICAgICAgICAgIGZSZW5kZXJlci5yZW5kZXJDYXJldCh0aGlzLCB0ZXh0LCBsZW5ndGhCYXNpcywgZywgbGluZUJvdW5kLCB4LCB5LCBjaGFyT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9uZ0NhcmV0Q29sb3IsIHdlYWtDYXJldENvbG9yKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBUZXh0T2Zmc2V0IHBpeGVsVG9PZmZzZXQoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBmUmVuZGVyZXIucGl4ZWxUb09mZnNldCh0aGlzLCBsZW5ndGhCYXNpcywgcmVzdWx0LCBsaW5lQm91bmQsIHgsIHkpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFJlY3RhbmdsZSBjYXJldEJvdW5kcyhNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHkpIHsKKyAgICAgICAgICAgIHJldHVybiBmUmVuZGVyZXIuY2FyZXRCb3VuZHModGhpcywgdGV4dCwgbGVuZ3RoQmFzaXMsIGxpbmVCb3VuZCwgY2hhck9mZnNldCwgeCwgeSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBpbnQgc3Ryb25nQ2FyZXRCYXNlbGluZVBvc2l0aW9uKGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZSZW5kZXJlci5zdHJvbmdDYXJldEJhc2VsaW5lUG9zaXRpb24odGhpcywgbGVuZ3RoQmFzaXMsIGxpbmVCb3VuZCwgY2hhck9mZnNldCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGdldE5leHRPZmZzZXQoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBkaXIpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZSZW5kZXJlci5nZXROZXh0T2Zmc2V0KHRoaXMsIGxlbmd0aEJhc2lzLCBjaGFyT2Zmc2V0LCBkaXIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZMVVNIX0xFQURJTkcgPSBUZXh0QXR0cmlidXRlLkZMVVNIX0xFQURJTkcuaW50VmFsdWUoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRkxVU0hfQ0VOVEVSID0gVGV4dEF0dHJpYnV0ZS5GTFVTSF9DRU5URVIuaW50VmFsdWUoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRkxVU0hfVFJBSUxJTkcgPSBUZXh0QXR0cmlidXRlLkZMVVNIX1RSQUlMSU5HLmludFZhbHVlKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IEZVTExZX0pVU1RJRklFRCA9IFRleHRBdHRyaWJ1dGUuRlVMTFlfSlVTVElGSUVELmludFZhbHVlKCk7CisKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBjYWNoZVN0eWxlID0gbnVsbDsKKworICAgIHByaXZhdGUgZmxvYXQgZkxlYWRpbmdNYXJnaW47CisgICAgcHJpdmF0ZSBmbG9hdCBmVHJhaWxpbmdNYXJnaW47CisgICAgcHJpdmF0ZSBmbG9hdCBmRmlyc3RMaW5lSW5kZW50OworICAgIHByaXZhdGUgZmxvYXQgZk1pbkxpbmVTcGFjaW5nOworICAgIHByaXZhdGUgZmxvYXQgZkV4dHJhTGluZVNwYWNpbmc7CisgICAgCisgICAgcHJpdmF0ZSBpbnQgZkZsdXNoID0gLTE7CisgICAgcHJpdmF0ZSBNVGFiUnVsZXIgZlRhYlJ1bGVyOworICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBmTHRyRGVmYXVsdDsKKyAgICBwcml2YXRlIERlZmF1bHRDaGFyYWN0ZXJNZXRyaWMgZkRlZmF1bHRDaGFyTWV0cmljOworICAgIAorICAgIEJpZGlQYXJhZ3JhcGhSZW5kZXJlcihBdHRyaWJ1dGVNYXAgcFN0eWxlLCBEZWZhdWx0Q2hhcmFjdGVyTWV0cmljIGRlZmF1bHRDaGFyTWV0cmljKSB7CisKKyAgICAgICAgZkRlZmF1bHRDaGFyTWV0cmljID0gZGVmYXVsdENoYXJNZXRyaWM7CisgICAgICAgIGluaXRSZW5kZXJlcihwU3R5bGUpOworICAgIH0KKworICAgIHByaXZhdGUgZmxvYXQgZ2V0RmxvYXRWYWx1ZShPYmplY3Qga2V5LCBBdHRyaWJ1dGVNYXAgc3R5bGUpIHsKKyAgICAgICAgcmV0dXJuICgoRmxvYXQpc3R5bGUuZ2V0KGtleSkpLmZsb2F0VmFsdWUoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgZ2V0SW50VmFsdWUoT2JqZWN0IGtleSwgQXR0cmlidXRlTWFwIHN0eWxlKSB7CisgICAgICAgIHJldHVybiAoKEludGVnZXIpc3R5bGUuZ2V0KGtleSkpLmludFZhbHVlKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE5PVEU6ICBpdCBpcyBpbGxlZ2FsIHRvIGluaXRpYWxpemUgYSBTdGFuZGFyZFBhcmFncmFwaFJlbmRlcmVyIGZvciBhbnkgc3R5bGUKKyAgICAgKiBvdGhlciB0aGFuIHRoZSBvbmUgaXQgd2FzIGNyZWF0ZWQgd2l0aC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbml0UmVuZGVyZXIoQXR0cmlidXRlTWFwIHBTdHlsZSkgeworCisgICAgICAgIGlmIChjYWNoZVN0eWxlID09IG51bGwpIHsKKworICAgICAgICAgICAgZkxlYWRpbmdNYXJnaW4gPSBnZXRGbG9hdFZhbHVlKFRleHRBdHRyaWJ1dGUuTEVBRElOR19NQVJHSU4sIHBTdHlsZSk7CisgICAgICAgICAgICBmVHJhaWxpbmdNYXJnaW4gPSBnZXRGbG9hdFZhbHVlKFRleHRBdHRyaWJ1dGUuVFJBSUxJTkdfTUFSR0lOLCBwU3R5bGUpOworICAgICAgICAgICAgZkZpcnN0TGluZUluZGVudCA9IGdldEZsb2F0VmFsdWUoVGV4dEF0dHJpYnV0ZS5GSVJTVF9MSU5FX0lOREVOVCwgcFN0eWxlKTsKKyAgICAgICAgICAgIGZNaW5MaW5lU3BhY2luZyA9IGdldEZsb2F0VmFsdWUoVGV4dEF0dHJpYnV0ZS5NSU5fTElORV9TUEFDSU5HLCBwU3R5bGUpOworICAgICAgICAgICAgZkV4dHJhTGluZVNwYWNpbmcgPSBnZXRGbG9hdFZhbHVlKFRleHRBdHRyaWJ1dGUuRVhUUkFfTElORV9TUEFDSU5HLCBwU3R5bGUpOworCisgICAgICAgICAgICBmRmx1c2ggPSBnZXRJbnRWYWx1ZShUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gsIHBTdHlsZSk7CisKKyAgICAgICAgICAgIGZUYWJSdWxlciA9IChNVGFiUnVsZXIpIHBTdHlsZS5nZXQoVGV4dEF0dHJpYnV0ZS5UQUJfUlVMRVIpOworICAgICAgICAgICAgCisgICAgICAgICAgICBPYmplY3QgcnVuRGlyID0gcFN0eWxlLmdldChUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT04pOworICAgICAgICAgICAgZkx0ckRlZmF1bHQgPSAhVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX1JUTC5lcXVhbHMocnVuRGlyKTsKKworICAgICAgICAgICAgY2FjaGVTdHlsZSA9IHBTdHlsZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChwU3R5bGUgIT0gY2FjaGVTdHlsZSkgeworICAgICAgICAgICAgaWYgKCFwU3R5bGUuZXF1YWxzKGNhY2hlU3R5bGUpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0IHRvIHNoYXJlIEJpZGlQYXJhZ3JhcGhSZW5kZXJlciBiZXR3ZWVuIHN0eWxlcyEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNhY2hlU3R5bGUgPSBwU3R5bGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzVGFiKGNoYXIgY2gpIHsKKyAgICAgICAgcmV0dXJuIGNoID09ICdcdCc7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmlsbCBpbiBpbmZvIHdpdGggdGhlIG5leHQgbGluZS4KKyAgICAgKiBAcGFyYW0gbWVhc3VyZXIgdGhlIExpbmVCcmVha01lYXN1cmVyIGZvciB0aGlzIHBhcmFncmFwaC4KKyAgICAgKiAgQ3VycmVudCBwb3NpdGlvbiBzaG91bGQgYmUgdGhlIGZpcnN0IGNoYXJhY3RlciBvbiB0aGUgbGluZS4KKyAgICAgKiAgSWYgbnVsbCwgYSAwLWxlbmd0aCBsaW5lIGlzIGdlbmVyYXRlZC4gIElmIG1lYXN1cmVyIGlzIG51bGwKKyAgICAgKiAgdGhlbiBwYXJhZ3JhcGhTdGFydCBhbmQgcGFyYWdyYXBoTGltaXQgc2hvdWxkIGJlIGVxdWFsLgorICAgICAqLworICAgIC8vIFVzdWFsbHkgdG90YWxGb3JtYXRXaWR0aCBhbmQgbGluZUJvdW5kIHdpbGwgYmUgdGhlIHNhbWUuCisgICAgLy8gdG90YWxGb3JtYXRXaWR0aCBpcyB1c2VkIGZvciB3cmFwcGluZywgYnV0IGxpbmVCb3VuZCBpcworICAgIC8vIGZvciBmbHVzaGluZy4gIFRoZXNlIG1heSBiZSBkaWZmZXJlbnQgZm9yIHVud3JhcHBlZCB0ZXh0LAorICAgIC8vIGZvciBleGFtcGxlLgorICAgIHB1YmxpYyBMYXlvdXRJbmZvIGxheW91dChNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExheW91dEluZm8gbGF5b3V0VG9SZXVzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZUJyZWFrTWVhc3VyZXIgbWVhc3VyZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRSZW5kZXJDb250ZXh0IGZyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBhcmFncmFwaFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFyYWdyYXBoTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0b3RhbEZvcm1hdFdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kKSB7CisKKyAgICAgICAgaWYgKChtZWFzdXJlcj09bnVsbCkgIT0gKHBhcmFncmFwaFN0YXJ0PT1wYXJhZ3JhcGhMaW1pdCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICJtZWFzdXJlciwgcGFyYWdyYXBoU3RhcnQsIHBhcmFncmFwaExpbWl0IGFyZSB3cm9uZy4iKTsKKyAgICAgICAgfQorICAgICAgICBCaWRpTGF5b3V0SW5mbyBsaW5lID0gbnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgbGluZSA9IChCaWRpTGF5b3V0SW5mbykgbGF5b3V0VG9SZXVzZTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICB9CisKKyAgICAgICAgaWYgKGxpbmUgPT0gbnVsbCkgeworICAgICAgICAgICAgbGluZSA9IG5ldyBCaWRpTGF5b3V0SW5mbygpOworICAgICAgICB9CisKKyAgICAgICAgbGluZS5mUmVuZGVyZXIgPSB0aGlzOworCisgICAgICAgIGZpbmFsIGludCBsaW5lQ2hhclN0YXJ0ID0gbWVhc3VyZXI9PW51bGw/IHBhcmFncmFwaFN0YXJ0IDogbWVhc3VyZXIuZ2V0UG9zaXRpb24oKTsKKyAgICAgICAgbGluZS5zZXRDaGFyU3RhcnQobGluZUNoYXJTdGFydCk7CisKKyAgICAgICAgZmluYWwgaW50IGxpbmVJbmRlbnQgPSAobGluZUNoYXJTdGFydD09cGFyYWdyYXBoU3RhcnQpPyAoaW50KSBmRmlyc3RMaW5lSW5kZW50IDogMDsKKworICAgICAgICBpbnQgZm9ybWF0V2lkdGggPSB0b3RhbEZvcm1hdFdpZHRoIC0gKGludCkgKGZMZWFkaW5nTWFyZ2luICsgZlRyYWlsaW5nTWFyZ2luKTsKKyAgICAgICAgY29tcHV0ZUxpbmVNZXRyaWNzKHRleHQsIGxpbmUsIG1lYXN1cmVyLCBmcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3RhcnQsIHBhcmFncmFwaExpbWl0LCBmb3JtYXRXaWR0aCwgbGluZUluZGVudCk7CisKKyAgICAgICAgLy8gcG9zaXRpb24gdGhlIGxpbmUgYWNjb3JkaW5nIHRvIHRoZSBsaW5lIGZsdXNoCisgICAgICAgIGlmIChmRmx1c2ggPT0gRkxVU0hfVFJBSUxJTkcgfHwgZkZsdXNoID09IEZMVVNIX0NFTlRFUikgeworICAgICAgICAgICAgaW50IGxpbmVBcmVhID0gbGluZUJvdW5kIC0gKGludCkgKGZMZWFkaW5nTWFyZ2luICsgZlRyYWlsaW5nTWFyZ2luKTsKKyAgICAgICAgICAgIGludCBhZHZhbmNlRGlmZmVyZW5jZSA9IGxpbmVBcmVhIC0gbGluZS5mVmlzaWJsZUFkdmFuY2U7CisKKyAgICAgICAgICAgIGlmIChmRmx1c2ggPT0gRkxVU0hfVFJBSUxJTkcpIHsKKyAgICAgICAgICAgICAgICBsaW5lLmZMZWFkaW5nTWFyZ2luID0gKChpbnQpIChmTGVhZGluZ01hcmdpbikpICsgYWR2YW5jZURpZmZlcmVuY2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChmRmx1c2ggPT0gRkxVU0hfQ0VOVEVSKSB7CisgICAgICAgICAgICAgICAgbGluZS5mTGVhZGluZ01hcmdpbiA9IChpbnQpIChmTGVhZGluZ01hcmdpbiArIGFkdmFuY2VEaWZmZXJlbmNlLzIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbGluZS5mTGVhZGluZ01hcmdpbiA9IChpbnQpIGZMZWFkaW5nTWFyZ2luOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGxpbmU7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmlsbCBpbiB0aGUgZm9sbG93aW5nIGZpZWxkcyBpbiBsaW5lOgorICAgICAqIGZDaGFyTGVuZ3RoLCBmQXNjZW50LCBmRGVzY2VudCwgZkxlYWRpbmcsIGZWaXNpYmxlQWR2YW5jZSwKKyAgICAgKiBmVG90YWxBZHZhbmNlLgorICAgICAqIFVzZXM6IGxpbmUuZkxlYWRpbmdNYXJnaW4KKyAgICAgKiBAcGFyYW0gZm9ybWF0V2lkdGggdGhlIHdpZHRoIHRvIGZpdCB0aGUgbGluZSBpbnRvLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjb21wdXRlTGluZU1ldHJpY3MoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmlkaUxheW91dEluZm8gbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmVCcmVha01lYXN1cmVyIG1lYXN1cmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9udFJlbmRlckNvbnRleHQgZnJjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IHBhcmFncmFwaFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IHBhcmFncmFwaExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGZvcm1hdFdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGxpbmVJbmRlbnQpIHsKKworICAgICAgICBpbnQgc2VnbWVudENvdW50ID0gMDsKKyAgICAgICAgLyogdmFyaWFibGUgbm90IHVzZWQgYm9vbGVhbiBmaXJzdExpbmUgPSBtZWFzdXJlcj09bnVsbCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVyLmdldFBvc2l0aW9uKCkgPT0gcGFyYWdyYXBoU3RhcnQ7ICovCisKKyAgICAgICAgaWYgKG1lYXN1cmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGNvbXB1dGVTZWdtZW50cyh0ZXh0LCBsaW5lLCBtZWFzdXJlciwgcGFyYWdyYXBoTGltaXQsIGZvcm1hdFdpZHRoLCBsaW5lSW5kZW50KTsKKworICAgICAgICAgICAgLy8gaXRlcmF0ZSB0aHJvdWdoIHNlZ21lbnRzIGFuZCBhY2N1bXVsYXRlIGFzY2VudCwgZGVzY2VudCwKKyAgICAgICAgICAgIC8vIGxlYWRpbmcsIGNoYXIgbGVuZ3RoCisgICAgICAgICAgICBmbG9hdCBhc2NlbnQgPSAwOworICAgICAgICAgICAgZmxvYXQgZGVzY2VudCA9IDA7CisgICAgICAgICAgICBmbG9hdCBkZXNjZW50UGx1c0xlYWRpbmcgPSAwOworCisgICAgICAgICAgICBzZWdtZW50Q291bnQgPSBsaW5lLmZTZWdtZW50cy5zaXplKCk7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzZWdtZW50Q291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIFRleHRMYXlvdXQgbGF5b3V0ID0gKChCaWRpU2VnbWVudClsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoaSkpLmZMYXlvdXQ7CisgICAgICAgICAgICAgICAgYXNjZW50ID0gTWF0aC5tYXgoYXNjZW50LCBsYXlvdXQuZ2V0QXNjZW50KCkpOworICAgICAgICAgICAgICAgIGZsb2F0IHNlZ0Rlc2NlbnQgPSBsYXlvdXQuZ2V0RGVzY2VudCgpOworICAgICAgICAgICAgICAgIGRlc2NlbnQgPSBNYXRoLm1heChkZXNjZW50LCBzZWdEZXNjZW50KTsKKyAgICAgICAgICAgICAgICBkZXNjZW50UGx1c0xlYWRpbmcgPSBNYXRoLm1heChkZXNjZW50UGx1c0xlYWRpbmcsIHNlZ0Rlc2NlbnQrbGF5b3V0LmdldExlYWRpbmcoKSk7CisgICAgICAgICAgICAgICAgbGluZS5mQ2hhckxlbmd0aCArPSBsYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGluZS5mQXNjZW50ID0gKGludCkgTWF0aC5jZWlsKGFzY2VudCk7CisgICAgICAgICAgICBsaW5lLmZEZXNjZW50ID0gKGludCkgTWF0aC5jZWlsKGRlc2NlbnQpOworICAgICAgICAgICAgbGluZS5mTGVhZGluZyA9IChpbnQpIE1hdGguY2VpbChkZXNjZW50UGx1c0xlYWRpbmcpIC0gbGluZS5mRGVzY2VudDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGxpbmUuZkxlZnRUb1JpZ2h0ID0gZkx0ckRlZmF1bHQ7CisgICAgICAgICAgICBsaW5lLmZTZWdtZW50cy5yZW1vdmVBbGxFbGVtZW50cygpOworCisgICAgICAgICAgICBsaW5lLmZDaGFyTGVuZ3RoID0gMDsKKworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gdGV4dC5jaGFyYWN0ZXJTdHlsZUF0KHBhcmFncmFwaFN0YXJ0KTsKKyAgICAgICAgICAgIERlZmF1bHRDaGFyYWN0ZXJNZXRyaWMuTWV0cmljIGNtID0gZkRlZmF1bHRDaGFyTWV0cmljLmdldE1ldHJpY0ZvclN0eWxlKHN0eWxlKTsKKyAgICAgICAgICAgIGxpbmUuZkFzY2VudCA9IGNtLmdldEFzY2VudCgpOworICAgICAgICAgICAgbGluZS5mRGVzY2VudCA9IGNtLmdldERlc2NlbnQoKTsKKyAgICAgICAgICAgIGxpbmUuZkxlYWRpbmcgPSBjbS5nZXRMZWFkaW5nKCk7CisKKyAgICAgICAgICAgIGxpbmUuZlZpc2libGVBZHZhbmNlID0gbGluZS5mVG90YWxBZHZhbmNlID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmRXh0cmFMaW5lU3BhY2luZyAhPSAwKSB7CisgICAgICAgICAgICBsaW5lLmZBc2NlbnQgKz0gKGludCkgTWF0aC5jZWlsKGZFeHRyYUxpbmVTcGFjaW5nKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmTWluTGluZVNwYWNpbmcgIT0gMCl7CisgICAgICAgICAgICBpbnQgaGVpZ2h0ID0gbGluZS5nZXRIZWlnaHQoKTsKKyAgICAgICAgICAgIGlmIChoZWlnaHQgPCBmTWluTGluZVNwYWNpbmcpIHsKKyAgICAgICAgICAgICAgICBsaW5lLmZBc2NlbnQgKz0gTWF0aC5jZWlsKGZNaW5MaW5lU3BhY2luZyAtIGhlaWdodCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBpbnQgbGluZU5hdHVyYWxBZHZhbmNlID0gbGluZS5mVG90YWxBZHZhbmNlOworCisgICAgICAgIGxpbmUuZlRvdGFsQWR2YW5jZSArPSBsaW5lSW5kZW50OworICAgICAgICBsaW5lLmZWaXNpYmxlQWR2YW5jZSArPSBsaW5lSW5kZW50OworCisgICAgICAgIGlmIChtZWFzdXJlciAhPSBudWxsKSB7CisgICAgICAgICAgICAvLyBOb3cgZmlsbCBpbiBmQm91bmRzIGZpZWxkIG9mIEJpZGlTZWdtZW50cy4gIGZCb3VuZHMgc2hvdWxkIHRpbGUKKyAgICAgICAgICAgIC8vIHRoZSBsaW5lLgorICAgICAgICAgICAgZmluYWwgZmxvYXQgbGluZUhlaWdodCA9IGxpbmUuZ2V0SGVpZ2h0KCk7CisKKyAgICAgICAgICAgIGZvciAoaW50IGk9MTsgaSA8IHNlZ21lbnRDb3VudDsgaSsrKSB7CisKKyAgICAgICAgICAgICAgICBCaWRpU2VnbWVudCBjdXJyZW50U2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KGktMSk7CisgICAgICAgICAgICAgICAgQmlkaVNlZ21lbnQgbmV4dFNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChpKTsKKworICAgICAgICAgICAgICAgIGZsb2F0IG9yaWdpbjsKKyAgICAgICAgICAgICAgICBmbG9hdCB3aWR0aDsKKworICAgICAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgICAgICBvcmlnaW4gPSAwOworICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IG5leHRTZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBvcmlnaW4gPSBjdXJyZW50U2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luIC09IG5leHRTZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgICAgICAgICBvcmlnaW4gKz0gKGZsb2F0KSBNYXRoLmNlaWwobmV4dFNlZ21lbnQuZkxheW91dC5nZXRBZHZhbmNlKCkpOworICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IChmbG9hdCkgTWF0aC5jZWlsKGN1cnJlbnRTZWdtZW50LmZMYXlvdXQuZ2V0QWR2YW5jZSgpKSAtIG9yaWdpbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY3VycmVudFNlZ21lbnQuZkJvdW5kcyA9IG5ldyBSZWN0YW5nbGUyRC5GbG9hdChvcmlnaW4sIC1saW5lLmZBc2NlbnQsIHdpZHRoLCBsaW5lSGVpZ2h0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gc2V0IGxhc3Qgc2VnbWVudCdzIGJvdW5kcworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEJpZGlTZWdtZW50IGN1cnJlbnRTZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoc2VnbWVudENvdW50LTEpOworICAgICAgICAgICAgICAgIGZsb2F0IG9yaWdpbjsKKyAgICAgICAgICAgICAgICBmbG9hdCB3aWR0aDsKKworICAgICAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgICAgICBvcmlnaW4gPSAwOworICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IGxpbmVOYXR1cmFsQWR2YW5jZSAtIGN1cnJlbnRTZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luID0gY3VycmVudFNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW4gLSBsaW5lTmF0dXJhbEFkdmFuY2U7CisgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gKGZsb2F0KSBNYXRoLmNlaWwoY3VycmVudFNlZ21lbnQuZkxheW91dC5nZXRBZHZhbmNlKCkpIC0gb3JpZ2luOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGN1cnJlbnRTZWdtZW50LmZCb3VuZHMgPSBuZXcgUmVjdGFuZ2xlMkQuRmxvYXQob3JpZ2luLCAtbGluZS5mQXNjZW50LCB3aWR0aCwgbGluZUhlaWdodCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaWxsIGluIGZTZWdtZW50cywgZkxlZnRUb1JpZ2h0LiAgbWVhc3VyZXIgbXVzdCBub3QgYmUgbnVsbAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBjb21wdXRlU2VnbWVudHMoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmlkaUxheW91dEluZm8gbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmVCcmVha01lYXN1cmVyIG1lYXN1cmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IHBhcmFncmFwaExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGZvcm1hdFdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgaW50IGxpbmVJbmRlbnQpIHsKKworICAgICAgICAvLyBOb3RlIG9uIGp1c3RpZmljYXRpb246ICBvbmx5IHRoZSBsYXN0IHNlZ21lbnQgb2YgYSBsaW5lIGlzCisgICAgICAgIC8vIGp1c3RpZmllZC4gIAorICAgICAgICAvLyBBbHNvLCBpZiBhIGxpbmUgZW5kcyBpbiBhIHRhYiBpdCB3aWxsIG5vdCBiZSBqdXN0aWZpZWQuCisgICAgICAgIC8vIFRoaXMgYmVoYXZpb3IgaXMgY29uc2lzdGVudCB3aXRoIG90aGVyIHdvcmQgcHJvY2Vzc29ycworICAgICAgICAvLyBJIHRyaWVkIChNUyBXb3JkIGFuZCBMb3R1cyBXb3JkIFBybykuCisgICAgICAgIAorICAgICAgICBsaW5lLmZTZWdtZW50cy5yZW1vdmVBbGxFbGVtZW50cygpOworICAgICAgICBsaW5lLmZDaGFyTGVuZ3RoID0gMDsKKworICAgICAgICBUYWJTdG9wIGN1cnJlbnRUYWJTdG9wID0gbmV3IFRhYlN0b3AoKGludClmTGVhZGluZ01hcmdpbitsaW5lSW5kZW50LCBUYWJTdG9wLmtMZWFkaW5nKTsKKworICAgICAgICBpbnQgc2VnbWVudExpbWl0ID0gbWVhc3VyZXIuZ2V0UG9zaXRpb24oKTsKKyAgICAgICAgYm9vbGVhbiBmaXJzdFNlZ21lbnQgPSB0cnVlOworCisgICAgICAgIGludCBhZHZhbmNlRnJvbUxlYWRpbmdNYXJnaW4gPSBsaW5lSW5kZW50OworCisgICAgICAgIGJvb2xlYW4gY29tcHV0ZVNlZ3MgPSB0cnVlOworICAgICAgICAKKyAgICAgICAgY29tcHV0ZVRhYmJlZFNlZ21lbnRzOiBkbyB7CisKKyAgICAgICAgICAgIC8vIGNvbXB1dGUgc2VtZW50TGltaXQ6CisgICAgICAgICAgICBpZiAoc2VnbWVudExpbWl0IDw9IG1lYXN1cmVyLmdldFBvc2l0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICB3aGlsZSAoc2VnbWVudExpbWl0IDwgcGFyYWdyYXBoTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzVGFiKHRleHQuYXQoc2VnbWVudExpbWl0KyspKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE5PVEU6ICBhZGp1c3QgYXZhaWxhYmxlIHdpZHRoIGZvciBjZW50ZXIgdGFiISEhCisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiRm9ybWF0IHdpZHRoOiAiICsgKGZvcm1hdFdpZHRoLWFkdmFuY2VGcm9tTGVhZGluZ01hcmdpbikgKworICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIjsgIHNlZ21lbnRMaW1pdDogIiArIHNlZ21lbnRMaW1pdCk7CisKKyAgICAgICAgICAgIGludCB3cmFwcGluZ1dpZHRoID0gTWF0aC5tYXgoZm9ybWF0V2lkdGgtYWR2YW5jZUZyb21MZWFkaW5nTWFyZ2luLCAwKTsKKyAgICAgICAgICAgIFRleHRMYXlvdXQgbGF5b3V0ID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChmaXJzdFNlZ21lbnQgfHwgd3JhcHBpbmdXaWR0aCA+IDAgfHwgc2VnbWVudExpbWl0ID4gbWVhc3VyZXIuZ2V0UG9zaXRpb24oKSsxKSB7CisgICAgICAgICAgICAgICAgbGF5b3V0ID0gbWVhc3VyZXIubmV4dExheW91dCh3cmFwcGluZ1dpZHRoLCBzZWdtZW50TGltaXQsICFmaXJzdFNlZ21lbnQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobGF5b3V0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoZmlyc3RTZWdtZW50KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEkgZG91YnQgdGhpcyB3b3VsZCBoYXBwZW4sIGJ1dCBjaGVjayBhbnl3YXkKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJGaXJzdCBsYXlvdXQgaXMgbnVsbCEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWsgY29tcHV0ZVRhYmJlZFNlZ21lbnRzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBmaW5hbCBpbnQgbWVhc3VyZXJQb3MgPSBtZWFzdXJlci5nZXRQb3NpdGlvbigpOworICAgICAgICAgICAgaWYgKG1lYXN1cmVyUG9zIDwgc2VnbWVudExpbWl0KSB7CisgICAgICAgICAgICAgICAgY29tcHV0ZVNlZ3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAoZkZsdXNoID09IEZVTExZX0pVU1RJRklFRCkgeworICAgICAgICAgICAgICAgICAgICBsYXlvdXQgPSBsYXlvdXQuZ2V0SnVzdGlmaWVkTGF5b3V0KHdyYXBwaW5nV2lkdGgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNvbXB1dGVTZWdzID0gIShtZWFzdXJlclBvcyA9PSBwYXJhZ3JhcGhMaW1pdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChmaXJzdFNlZ21lbnQpIHsKKyAgICAgICAgICAgICAgICBmaXJzdFNlZ21lbnQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAvLyBIYXZlIHRvIGdldCBsdHIgb2ZmIG9mIGxheW91dC4gIE5vdCBhdmFpbGFibGUgZnJvbSBtZWFzdXJlciwKKyAgICAgICAgICAgICAgICAvLyB1bmZvcnR1bmF0ZWx5LgorICAgICAgICAgICAgICAgIGxpbmUuZkxlZnRUb1JpZ2h0ID0gbGF5b3V0LmlzTGVmdFRvUmlnaHQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCA9IG5ldyBCaWRpU2VnbWVudCgpOworICAgICAgICAgICAgc2VnbWVudC5mTGF5b3V0ID0gbGF5b3V0OworICAgICAgICAgICAgaW50IGxheW91dEFkdmFuY2UgPSAoaW50KSBNYXRoLmNlaWwobGF5b3V0LmdldEFkdmFuY2UoKSk7CisKKyAgICAgICAgICAgIC8vIHBvc2l0aW9uIGxheW91dCByZWxhdGl2ZSB0byBsZWFkaW5nIG1hcmdpbiwgdXBkYXRlIGxvZ2ljYWxQb3NpdGlvbk9uTGluZQorICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgcmVsYXRpdmVUYWJQb3NpdGlvbiA9IGN1cnJlbnRUYWJTdG9wLmdldFBvc2l0aW9uKCktKGludClmTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgIGludCBsb2dpY2FsUG9zaXRpb25PZkxheW91dDsKKyAgICAgICAgICAgIHN3aXRjaCAoY3VycmVudFRhYlN0b3AuZ2V0VHlwZSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBUYWJTdG9wLmtUcmFpbGluZzoKKyAgICAgICAgICAgICAgICAgICAgbG9naWNhbFBvc2l0aW9uT2ZMYXlvdXQgPSBNYXRoLm1heCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlVGFiUG9zaXRpb24tbGF5b3V0QWR2YW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmFuY2VGcm9tTGVhZGluZ01hcmdpbik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rQ2VudGVyOgorICAgICAgICAgICAgICAgICAgICBsb2dpY2FsUG9zaXRpb25PZkxheW91dCA9IE1hdGgubWF4KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVUYWJQb3NpdGlvbi0obGF5b3V0QWR2YW5jZS8yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmFuY2VGcm9tTGVhZGluZ01hcmdpbik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICAvLyBpbmNsdWRlcyBkZWNpbWFsIHRhYiByaWdodCBub3cKKyAgICAgICAgICAgICAgICAgICAgbG9naWNhbFBvc2l0aW9uT2ZMYXlvdXQgPSByZWxhdGl2ZVRhYlBvc2l0aW9uOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gcG9zaXRpb24gbGF5b3V0IGluIHNlZ21lbnQKKyAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIHNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW4gPSBsb2dpY2FsUG9zaXRpb25PZkxheW91dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW4gPSBsb2dpY2FsUG9zaXRpb25PZkxheW91dCtsYXlvdXRBZHZhbmNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyB1cGRhdGUgYWR2YW5jZUZyb21MZWFkaW5nTWFyZ2luCisgICAgICAgICAgICBhZHZhbmNlRnJvbUxlYWRpbmdNYXJnaW4gPSBsb2dpY2FsUG9zaXRpb25PZkxheW91dCArIGxheW91dEFkdmFuY2U7CisKKyAgICAgICAgICAgIC8vIGFkZCBzZWdtZW50IHRvIHNlZ21lbnQgVmVjdG9yCisgICAgICAgICAgICBsaW5lLmZTZWdtZW50cy5hZGRFbGVtZW50KHNlZ21lbnQpOworCisgICAgICAgICAgICAvLyBnZXQgbmV4dCB0YWIKKyAgICAgICAgICAgIGN1cnJlbnRUYWJTdG9wID0gZlRhYlJ1bGVyLm5leHRUYWIoKGludClmTGVhZGluZ01hcmdpbithZHZhbmNlRnJvbUxlYWRpbmdNYXJnaW4pOworICAgICAgICAgICAgaWYgKGN1cnJlbnRUYWJTdG9wLmdldFR5cGUoKSA9PSBUYWJTdG9wLmtMZWFkaW5nIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhYlN0b3AuZ2V0VHlwZSgpID09IFRhYlN0b3Aua0F1dG8pICB7CisgICAgICAgICAgICAgICAgYWR2YW5jZUZyb21MZWFkaW5nTWFyZ2luID0gY3VycmVudFRhYlN0b3AuZ2V0UG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiQWR2YW5jZSBmcm9tIGxlYWRpbmcgbWFyZ2luOiIgKyBhZHZhbmNlRnJvbUxlYWRpbmdNYXJnaW4pOworCisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJOb24tbGVhZGluZyB0YWIsIHR5cGU9IiArIGN1cnJlbnRUYWJTdG9wLmdldFR5cGUoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfSB3aGlsZSAoY29tcHV0ZVNlZ3MpOworCisgICAgICAgIC8vIE5vdyBjb21wdXRlIGZUb3RhbEFkdmFuY2UsIGZWaXNpYmxlQWR2YW5jZS4gIFRoZXNlIG1ldHJpY3MgbWF5IGJlIGFmZmVjdGVkCisgICAgICAgIC8vIGJ5IGEgdHJhaWxpbmcgdGFiLgorCisgICAgICAgIHsKKyAgICAgICAgICAgIEJpZGlTZWdtZW50IGxhc3RTZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5sYXN0RWxlbWVudCgpOworICAgICAgICAgICAgVGV4dExheW91dCBsYXN0TGF5b3V0ID0gbGFzdFNlZ21lbnQuZkxheW91dDsKKworICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgbGluZS5mVG90YWxBZHZhbmNlID0gKGludCkgTWF0aC5jZWlsKGxhc3RMYXlvdXQuZ2V0QWR2YW5jZSgpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgbGluZS5mVmlzaWJsZUFkdmFuY2UgPSAoaW50KSBNYXRoLmNlaWwobGFzdExheW91dC5nZXRWaXNpYmxlQWR2YW5jZSgpKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBsaW5lLmZUb3RhbEFkdmFuY2UgPSBsYXN0U2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICBsaW5lLmZWaXNpYmxlQWR2YW5jZSA9IGxhc3RTZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSBNYXRoLmNlaWwobGFzdExheW91dC5nZXRBZHZhbmNlKCkgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0TGF5b3V0LmdldFZpc2libGVBZHZhbmNlKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaXNUYWIodGV4dC5hdChtZWFzdXJlci5nZXRQb3NpdGlvbigpLTEpKSkgeworICAgICAgICAgICAgICAgIGxpbmUuZlRvdGFsQWR2YW5jZSA9IE1hdGgubWF4KGxpbmUuZlRvdGFsQWR2YW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYWJTdG9wLmdldFBvc2l0aW9uKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBoaWdobGlnaHQgc2hhcGUgZm9yIHRoZSBnaXZlbiBjaGFyYWN0ZXIgb2Zmc2V0cy4KKyAgICAgKiBUaGUgU2hhcGUgcmV0dXJuZWQgaXMgcmVsYXRpdmUgdG8gdGhlIGxlZnRtb3N0IHBvaW50IG9uIHRoZQorICAgICAqIGJhc2VsaW5lIG9mIGxpbmUuCisgICAgICovCisgICAgcHJpdmF0ZSBTaGFwZSBnZXRIaWdobGlnaHRTaGFwZShCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBobFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGhsTGltaXQpIHsKKworICAgICAgICBpZiAoaGxTdGFydCA+PSBobExpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJIaWdobGlnaHQgcmFuZ2UgbGVuZ3RoIGlzIG5vdCBwb3NpdGl2ZS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGludCBsZWFkaW5nTWFyZ2luID0gKGxpbmUuZkxlZnRUb1JpZ2h0KT8KKyAgICAgICAgICAgICAgICBsaW5lLmZMZWFkaW5nTWFyZ2luIDogbGluZUJvdW5kIC0gbGluZS5mTGVhZGluZ01hcmdpbjsKKyAgICAgICAgZmluYWwgaW50IHNlZ21lbnRDb3VudCA9IGxpbmUuZlNlZ21lbnRzLnNpemUoKTsKKworICAgICAgICBTaGFwZSBydmFsID0gbnVsbDsKKyAgICAgICAgR2VuZXJhbFBhdGggaGlnaGxpZ2h0UGF0aCA9IG51bGw7CisKKyAgICAgICAgaW50IGN1cnJlbnRMYXlvdXRTdGFydCA9IGxpbmUuZ2V0Q2hhclN0YXJ0KGxlbmd0aEJhc2lzKTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzZWdtZW50Q291bnQ7IGkrKykgeworCisgICAgICAgICAgICBCaWRpU2VnbWVudCBzZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBUZXh0TGF5b3V0IGxheW91dCA9IHNlZ21lbnQuZkxheW91dDsKKyAgICAgICAgICAgIGludCBjaGFyQ291bnQgPSBsYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKTsKKyAgICAgICAgICAgIGludCBjdXJyZW50TGF5b3V0TGltaXQgPSBjdXJyZW50TGF5b3V0U3RhcnQgKyBjaGFyQ291bnQ7CisgICAgICAgICAgICBib29sZWFuIHJhbmdlc0ludGVyc2VjdDsKKyAgICAgICAgICAgIGlmIChobFN0YXJ0IDw9IGN1cnJlbnRMYXlvdXRTdGFydCkgeworICAgICAgICAgICAgICAgIHJhbmdlc0ludGVyc2VjdCA9IGhsTGltaXQgPiBjdXJyZW50TGF5b3V0U3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByYW5nZXNJbnRlcnNlY3QgPSBobFN0YXJ0IDwgY3VycmVudExheW91dExpbWl0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAocmFuZ2VzSW50ZXJzZWN0KSB7CisKKyAgICAgICAgICAgICAgICBTaGFwZSBjdXJyZW50SGwgPSBsYXlvdXQuZ2V0TG9naWNhbEhpZ2hsaWdodFNoYXBlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGgubWF4KGhsU3RhcnQtY3VycmVudExheW91dFN0YXJ0LCAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbihobExpbWl0LWN1cnJlbnRMYXlvdXRTdGFydCwgY2hhckNvdW50KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50LmZCb3VuZHMpOworCisgICAgICAgICAgICAgICAgZmxvYXQgeFRyYW5zbGF0ZTsKKyAgICAgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICAgICAgeFRyYW5zbGF0ZSA9IGxlYWRpbmdNYXJnaW4gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHhUcmFuc2xhdGUgPSBsZWFkaW5nTWFyZ2luIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKHhUcmFuc2xhdGUgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBBZmZpbmVUcmFuc2Zvcm0geGZvcm0gPQorICAgICAgICAgICAgICAgICAgICAgICAgQWZmaW5lVHJhbnNmb3JtLmdldFRyYW5zbGF0ZUluc3RhbmNlKHhUcmFuc2xhdGUsIDApOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50SGwgPSB4Zm9ybS5jcmVhdGVUcmFuc2Zvcm1lZFNoYXBlKGN1cnJlbnRIbCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKHJ2YWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBydmFsID0gY3VycmVudEhsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGhpZ2hsaWdodFBhdGggPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0UGF0aCA9IG5ldyBHZW5lcmFsUGF0aCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0UGF0aC5hcHBlbmQocnZhbCwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICAgICAgcnZhbCA9IGhpZ2hsaWdodFBhdGg7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0UGF0aC5hcHBlbmQoY3VycmVudEhsLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudExheW91dFN0YXJ0ID0gY3VycmVudExheW91dExpbWl0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJ2YWw7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHJlbmRlcldpdGhIaWdobGlnaHQoQmlkaUxheW91dEluZm8gbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IgaGlnaGxpZ2h0Q29sb3IpIHsKKworICAgICAgICBmaW5hbCBpbnQgbGluZUNoYXJTdGFydCA9IGxpbmUuZ2V0Q2hhclN0YXJ0KGxlbmd0aEJhc2lzKTsKKworICAgICAgICBpZiAoc2VsU3RhcnQgIT0gbnVsbCAmJiBzZWxTdG9wICE9IG51bGwgJiYgIXNlbFN0YXJ0LmVxdWFscyhzZWxTdG9wKSAmJgorICAgICAgICAgICAgICAgIGxpbmUuZkNoYXJMZW5ndGggIT0gMCAmJgorICAgICAgICAgICAgICAgIHNlbFN0YXJ0LmZPZmZzZXQgPCBsaW5lQ2hhclN0YXJ0ICsgbGluZS5mQ2hhckxlbmd0aCAmJgorICAgICAgICAgICAgICAgIHNlbFN0b3AuZk9mZnNldCA+IGxpbmVDaGFyU3RhcnQpIHsKKworICAgICAgICAgICAgU2hhcGUgaGlnaGxpZ2h0ID0gZ2V0SGlnaGxpZ2h0U2hhcGUobGluZSwgbGVuZ3RoQmFzaXMsIGxpbmVCb3VuZCwgc2VsU3RhcnQuZk9mZnNldCwgc2VsU3RvcC5mT2Zmc2V0KTsKKyAgICAgICAgICAgIGlmIChoaWdobGlnaHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIEdyYXBoaWNzMkQgaGwgPSAoR3JhcGhpY3MyRCkgZy5jcmVhdGUoKTsKKyAgICAgICAgICAgICAgICBobC5zZXRDb2xvcihoaWdobGlnaHRDb2xvcik7CisgICAgICAgICAgICAgICAgaGwudHJhbnNsYXRlKHgsIHkgKyBsaW5lLmZBc2NlbnQpOworICAgICAgICAgICAgICAgIGhsLmZpbGwoaGlnaGxpZ2h0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlbmRlcihsaW5lLCBsZW5ndGhCYXNpcywgZywgbGluZUJvdW5kLCB4LCB5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEcmF3IHRoZSBsaW5lIGludG8gdGhlIGdyYXBoaWNzLiAgKHgsIHkpIGlzIHRoZSB1cHBlci1sZWZ0IGNvcm5lcgorICAgICAqIG9mIHRoZSBsaW5lLiAgVGhlIGxlYWRpbmcgZWRnZSBvZiBhIHJpZ2h0LWFsaWduZWQgbGluZSBpcyBhbGlnbmVkCisgICAgICogdG8gKHggKyBsaW5lQm91bmQpLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCByZW5kZXIoQmlkaUxheW91dEluZm8gbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzMkQgZywKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCB5KSB7CisKKyAgICAgICAgZmluYWwgaW50IGxlYWRpbmdNYXJnaW4gPSAobGluZS5mTGVmdFRvUmlnaHQpPworICAgICAgICAgICAgICAgIHggKyBsaW5lLmZMZWFkaW5nTWFyZ2luIDogeCArIGxpbmVCb3VuZCAtIGxpbmUuZkxlYWRpbmdNYXJnaW47CisgICAgICAgIGZpbmFsIGludCBiYXNlbGluZSA9IHkgKyBsaW5lLmZBc2NlbnQ7CisgICAgICAgIGZpbmFsIGludCBzZWdtZW50Q291bnQgPSBsaW5lLmZTZWdtZW50cy5zaXplKCk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgc2VnbWVudENvdW50OyBpKyspIHsKKworICAgICAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KGkpOworCisgICAgICAgICAgICBmbG9hdCBkcmF3WDsKKyAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIGRyYXdYID0gbGVhZGluZ01hcmdpbiArIHNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBkcmF3WCA9IGxlYWRpbmdNYXJnaW4gLSBzZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzZWdtZW50LmZMYXlvdXQuZHJhdyhnLCBkcmF3WCwgYmFzZWxpbmUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0IGhpdFRlc3RTZWdtZW50KFRleHRPZmZzZXQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2VnbWVudENoYXJTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHhJblNlZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5SW5TZWdtZW50KSB7CisKKyAgICAgICAgZmluYWwgVGV4dExheW91dCBsYXlvdXQgPSBzZWdtZW50LmZMYXlvdXQ7CisgICAgICAgIGZpbmFsIGludCBjaGFyQ291bnQgPSBsYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKTsKKyAgICAgICAgZmluYWwgaW50IGxheW91dEFkdmFuY2UgPSAoaW50KSBNYXRoLmNlaWwobGF5b3V0LmdldEFkdmFuY2UoKSk7CisgICAgICAgIFJlY3RhbmdsZTJEIGJvdW5kcyA9IHNlZ21lbnQuZkJvdW5kczsKKworICAgICAgICBmaW5hbCBib29sZWFuIGx0ciA9IGxheW91dC5pc0xlZnRUb1JpZ2h0KCk7CisKKyAgICAgICAgaWYgKGx0ciAmJiAoeEluU2VnbWVudCA+PSBsYXlvdXRBZHZhbmNlKSB8fCAhbHRyICYmICh4SW5TZWdtZW50IDw9IDApKSB7CisKKyAgICAgICAgICAgIC8vIHByZXRlbmQgdGhlIGV4dHJhIHNwYWNlIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUgaXMgYQorICAgICAgICAgICAgLy8gdGFiIGFuZCAnaGl0LXRlc3QnIGl0LgorICAgICAgICAgICAgZG91YmxlIHRhYkNlbnRlcjsKKyAgICAgICAgICAgIGlmIChsdHIpIHsKKyAgICAgICAgICAgICAgICB0YWJDZW50ZXIgPSAobGF5b3V0QWR2YW5jZStib3VuZHMuZ2V0TWF4WCgpKSAvIDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB0YWJDZW50ZXIgPSBib3VuZHMuZ2V0WCgpIC8gMjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCh4SW5TZWdtZW50ID49IHRhYkNlbnRlcikgPT0gbHRyKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmZPZmZzZXQgPSBjaGFyQ291bnQ7CisgICAgICAgICAgICAgICAgcmVzdWx0LmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkJFRk9SRV9PRkZTRVQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuZk9mZnNldCA9IGNoYXJDb3VudC0xOworICAgICAgICAgICAgICAgIHJlc3VsdC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBUZXh0SGl0SW5mbyBpbmZvID0gbGF5b3V0LmhpdFRlc3RDaGFyKHhJblNlZ21lbnQsIHlJblNlZ21lbnQsIHNlZ21lbnQuZkJvdW5kcyk7CisgICAgICAgICAgICByZXN1bHQuZk9mZnNldCA9IGluZm8uZ2V0SW5zZXJ0aW9uSW5kZXgoKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuZk9mZnNldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHJlc3VsdC5mT2Zmc2V0ID09IGNoYXJDb3VudCkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmZQbGFjZW1lbnQgPSBpbmZvLmlzTGVhZGluZ0VkZ2UoKT8KKyAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUIDogVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0LmZPZmZzZXQgKz0gc2VnbWVudENoYXJTdGFydDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBhdCB0aGUgcG9pbnQgKHgsIHkpLiAgKHgsIHkpIGlzIHJlbGF0aXZlIHRvIHRoZSB0b3AtbGVmdAorICAgICAqIG9mIHRoZSBsaW5lLiAgVGhlIGxlYWRpbmcgZWRnZSBvZiBhIHJpZ2h0LWFsaWduZWQgbGluZSBpcyBhbGlnbmVkCisgICAgICogdG8gbGluZUJvdW5kLgorICAgICAqLworICAgIHByaXZhdGUgVGV4dE9mZnNldCBwaXhlbFRvT2Zmc2V0KEJpZGlMYXlvdXRJbmZvIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHkpIHsKKworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIH0KKworICAgICAgICBmaW5hbCBpbnQgeUluU2VnbWVudCA9IHkgLSBsaW5lLmZBc2NlbnQ7CisgICAgICAgIGZpbmFsIGludCBsZWFkaW5nTWFyZ2luID0gKGxpbmUuZkxlZnRUb1JpZ2h0KT8KKyAgICAgICAgICAgICAgICBsaW5lLmZMZWFkaW5nTWFyZ2luIDogbGluZUJvdW5kIC0gbGluZS5mTGVhZGluZ01hcmdpbjsKKyAgICAgICAgZmluYWwgaW50IGxpbmVDaGFyU3RhcnQgPSBsaW5lLmdldENoYXJTdGFydChsZW5ndGhCYXNpcyk7CisKKyAgICAgICAgLy8gZmlyc3Qgc2VlIGlmIHBvaW50IGlzIGJlZm9yZSBsZWFkaW5nIGVkZ2Ugb2YgbGluZQorICAgICAgICBmaW5hbCBpbnQgc2VnbWVudENvdW50ID0gbGluZS5mU2VnbWVudHMuc2l6ZSgpOworICAgICAgICB7CisgICAgICAgICAgICBpbnQgc2VnTGVhZGluZ01hcmdpbiA9IGxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICBpZiAoc2VnbWVudENvdW50ID4gMCkgeworICAgICAgICAgICAgICAgIEJpZGlTZWdtZW50IGZpcnN0U2VnID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoMCk7CisgICAgICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgICAgIHNlZ0xlYWRpbmdNYXJnaW4gKz0gZmlyc3RTZWcuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzZWdMZWFkaW5nTWFyZ2luIC09IGZpcnN0U2VnLmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgICAgICAgICBzZWdMZWFkaW5nTWFyZ2luICs9IChmbG9hdCkgZmlyc3RTZWcuZkJvdW5kcy5nZXRNYXhYKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0ID09ICh4IDw9IHNlZ0xlYWRpbmdNYXJnaW4pKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmZPZmZzZXQgPSBsaW5lQ2hhclN0YXJ0OworICAgICAgICAgICAgICAgIHJlc3VsdC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5BRlRFUl9PRkZTRVQ7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludCBzZWdtZW50Q2hhclN0YXJ0ID0gbGluZUNoYXJTdGFydDsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBzZWdtZW50Q291bnQ7IGkrKykgeworCisgICAgICAgICAgICBCaWRpU2VnbWVudCBzZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBpbnQgc2VnbWVudE9yaWdpbiA9IGxpbmUuZkxlZnRUb1JpZ2h0PworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRpbmdNYXJnaW4rc2VnbWVudC5mRGlzdGFuY2VGcm9tTGVhZGluZ01hcmdpbiA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhZGluZ01hcmdpbi1zZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgaW50IHhJblNlZ21lbnQgPSB4IC0gc2VnbWVudE9yaWdpbjsKKyAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIGlmIChzZWdtZW50LmZCb3VuZHMuZ2V0TWF4WCgpID4geEluU2VnbWVudCkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGl0VGVzdFNlZ21lbnQocmVzdWx0LCBzZWdtZW50Q2hhclN0YXJ0LCBzZWdtZW50LCB4SW5TZWdtZW50LCB5SW5TZWdtZW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoc2VnbWVudC5mQm91bmRzLmdldFgoKSA8IHhJblNlZ21lbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhpdFRlc3RTZWdtZW50KHJlc3VsdCwgc2VnbWVudENoYXJTdGFydCwgc2VnbWVudCwgeEluU2VnbWVudCwgeUluU2VnbWVudCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgc2VnbWVudENoYXJTdGFydCArPSBzZWdtZW50LmZMYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdC5mT2Zmc2V0ID0gbGluZUNoYXJTdGFydCArIGxpbmUuZkNoYXJMZW5ndGg7CisgICAgICAgIHJlc3VsdC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZW5kZXJDYXJldChCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsIGludCBjaGFyT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBzdHJvbmdDYXJldENvbG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciB3ZWFrQ2FyZXRDb2xvcikKKyAgICB7CisgICAgICAgIGZpbmFsIGludCBzZWdtZW50Q291bnQgPSBsaW5lLmZTZWdtZW50cy5zaXplKCk7CisgICAgICAgIGZpbmFsIGludCBsaW5lU3RhcnQgPSBsaW5lLmdldENoYXJTdGFydChsZW5ndGhCYXNpcyk7CisKKyAgICAgICAgaW50IGN1cnJlbnRTdGFydCA9IGxpbmVTdGFydDsKKyAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCA9IG51bGw7CisgICAgICAgIGludCBzZWdtZW50SW5kZXg7CisKKyAgICAgICAgZm9yIChzZWdtZW50SW5kZXg9MDsgc2VnbWVudEluZGV4IDwgc2VnbWVudENvdW50OyBzZWdtZW50SW5kZXgrKykgeworICAgICAgICAgICAgc2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KHNlZ21lbnRJbmRleCk7CisgICAgICAgICAgICBpbnQgY3VycmVudEVuZHBvaW50ID0gY3VycmVudFN0YXJ0ICsgc2VnbWVudC5mTGF5b3V0LmdldENoYXJhY3RlckNvdW50KCk7CisgICAgICAgICAgICBpZiAoY3VycmVudEVuZHBvaW50ID4gY2hhck9mZnNldCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudFN0YXJ0ID0gY3VycmVudEVuZHBvaW50OworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICAgIFRoZXJlIGFyZSB0d28gY2hvaWNlcyBoZXJlOgorICAgICAgICAgICAgMS4gZ2V0IGNhcmV0cyBmcm9tIGEgVGV4dExheW91dCBhbmQgcmVuZGVyIHRoZW0sIG9yCisgICAgICAgICAgICAyLiBtYWtlIHVwIGEgY2FyZXQgb3Vyc2VsdmVzIGFuZCByZW5kZXIgaXQuCisgICAgICAgICAgICBXZSB3YW50IHRvIGRvIDIgd2hlbjoKKyAgICAgICAgICAgICAgICAqIHRoZXJlIGlzIG5vIHRleHQgb24gdGhlIGxpbmUsIG9yCisgICAgICAgICAgICAgICAgKiB0aGUgbGluZSBlbmRzIHdpdGggYSB0YWIgYW5kIHdlIGFyZSBkcmF3aW5nIHRoZSBsYXN0IGNhcmV0IG9uIHRoZSBsaW5lCisgICAgICAgICAgICBPdGhlcndpc2UsIHdlIHdhbnQgMS4KKyAgICAgICAgKi8KKworICAgICAgICBpZiAoc2VnbWVudEluZGV4ID09IHNlZ21lbnRDb3VudCAmJiBzZWdtZW50Q291bnQgPiAwKSB7CisgICAgICAgICAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgbGluZSBsZW5ndGggaXMgbm90IDAsIGFuZCBjaGFyT2Zmc2V0IGlzIGF0IGVuZCBvZiBsaW5lCisgICAgICAgICAgICBpZiAoIWlzVGFiKHRleHQuYXQoY2hhck9mZnNldC0xKSkpIHsKKyAgICAgICAgICAgICAgICBzZWdtZW50SW5kZXggPSBzZWdtZW50Q291bnQtMTsKKyAgICAgICAgICAgICAgICBzZWdtZW50ID0gKEJpZGlTZWdtZW50KSBsaW5lLmZTZWdtZW50cy5lbGVtZW50QXQoc2VnbWVudEluZGV4KTsKKyAgICAgICAgICAgICAgICBjdXJyZW50U3RhcnQgPSBsaW5lU3RhcnQgKyBsaW5lLmdldENoYXJMZW5ndGgoKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWdtZW50LmZMYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIE9iamVjdCBzYXZlZFBhaW50ID0gR3JhcGhpY3MyRENvbnZlcnNpb24uZ2V0Q29sb3JTdGF0ZShnKTsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKHNlZ21lbnRJbmRleCA8IHNlZ21lbnRDb3VudCkgeworICAgICAgICAgICAgICAgIFRleHRMYXlvdXQgbGF5b3V0ID0gc2VnbWVudC5mTGF5b3V0OworICAgICAgICAgICAgICAgIGludCBvZmZzZXRJbkxheW91dCA9IGNoYXJPZmZzZXQgLSBjdXJyZW50U3RhcnQ7CisgICAgICAgICAgICAgICAgU2hhcGVbXSBjYXJldHMgPSBsYXlvdXQuZ2V0Q2FyZXRTaGFwZXMob2Zmc2V0SW5MYXlvdXQsIHNlZ21lbnQuZkJvdW5kcyk7CisgICAgICAgICAgICAgICAgZy5zZXRDb2xvcihzdHJvbmdDYXJldENvbG9yKTsKKyAgICAgICAgICAgICAgICBpbnQgbGF5b3V0UG9zID0gbGluZS5mTGVhZGluZ01hcmdpbiArIHNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICAgICAgaW50IGxheW91dFggPSBsaW5lLmZMZWZ0VG9SaWdodD8KKyAgICAgICAgICAgICAgICAgICAgICAgIHggKyBsYXlvdXRQb3MgOiB4ICsgbGluZUJvdW5kIC0gbGF5b3V0UG9zOworICAgICAgICAgICAgICAgIGludCBsYXlvdXRZID0geSArIGxpbmUuZkFzY2VudDsKKworICAgICAgICAgICAgICAgIC8vIFRyYW5zbGF0aW5nIGFuZCB0aGVuIGNsaXBwaW5nIGRvZXNuJ3Qgd29yay4gIFRyeSB0aGlzOgorICAgICAgICAgICAgICAgIFJlY3RhbmdsZTJELkZsb2F0IGNsaXBSZWN0ID0gbmV3IFJlY3RhbmdsZTJELkZsb2F0KCk7CisgICAgICAgICAgICAgICAgY2xpcFJlY3Quc2V0UmVjdChzZWdtZW50LmZCb3VuZHMpOworICAgICAgICAgICAgICAgIGNsaXBSZWN0LnggKz0gbGF5b3V0WDsKKyAgICAgICAgICAgICAgICBjbGlwUmVjdC55ICs9IGxheW91dFk7CisgICAgICAgICAgICAgICAgY2xpcFJlY3Qud2lkdGggKz0gMTsKKyAgICAgICAgICAgICAgICBjbGlwUmVjdC5oZWlnaHQgLT0gMTsKKworICAgICAgICAgICAgICAgIE9iamVjdCBzYXZlZENsaXAgPSBDbGlwV29ya2Fyb3VuZC5zYXZlQ2xpcFN0YXRlKGcpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIENsaXBXb3JrYXJvdW5kLnRyYW5zbGF0ZUFuZERyYXdTaGFwZVdpdGhDbGlwKGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0WCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcmV0c1swXSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjYXJldHNbMV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgZy5zZXRDb2xvcih3ZWFrQ2FyZXRDb2xvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBDbGlwV29ya2Fyb3VuZC50cmFuc2xhdGVBbmREcmF3U2hhcGVXaXRoQ2xpcChnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwUmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FyZXRzWzFdKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICAgICAgQ2xpcFdvcmthcm91bmQucmVzdG9yZUNsaXBTdGF0ZShnLCBzYXZlZENsaXApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGludCBsaW5lRW5kID0gbGluZS5mTGVhZGluZ01hcmdpbiArIGxpbmUuZlRvdGFsQWR2YW5jZTsKKyAgICAgICAgICAgICAgICBpbnQgZW5kWCA9IGxpbmUuZkxlZnRUb1JpZ2h0PyBsaW5lRW5kIDogbGluZUJvdW5kLWxpbmVFbmQ7CisgICAgICAgICAgICAgICAgZW5kWCArPSB4OworICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUoZW5kWCwgeSwgZW5kWCwgeStsaW5lLmdldEhlaWdodCgpLTEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgR3JhcGhpY3MyRENvbnZlcnNpb24ucmVzdG9yZUNvbG9yU3RhdGUoZywgc2F2ZWRQYWludCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIFJlY3RhbmdsZSBjYXJldEJvdW5kcyhCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSkgeworCisgICAgICAgIGZpbmFsIGludCBzZWdtZW50Q291bnQgPSBsaW5lLmZTZWdtZW50cy5zaXplKCk7CisgICAgICAgIGZpbmFsIGludCBsaW5lU3RhcnQgPSBsaW5lLmdldENoYXJTdGFydChsZW5ndGhCYXNpcyk7CisgICAgICAgIGludCBjdXJyZW50U3RhcnQgPSBsaW5lU3RhcnQ7CisgICAgICAgIEJpZGlTZWdtZW50IHNlZ21lbnQgPSBudWxsOworICAgICAgICBpbnQgc2VnbWVudEluZGV4OworCisgICAgICAgIGZvciAoc2VnbWVudEluZGV4PTA7IHNlZ21lbnRJbmRleCA8IHNlZ21lbnRDb3VudDsgc2VnbWVudEluZGV4KyspIHsKKyAgICAgICAgICAgIHNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChzZWdtZW50SW5kZXgpOworICAgICAgICAgICAgaW50IGN1cnJlbnRFbmRwb2ludCA9IGN1cnJlbnRTdGFydCArIHNlZ21lbnQuZkxheW91dC5nZXRDaGFyYWN0ZXJDb3VudCgpOworICAgICAgICAgICAgaWYgKGN1cnJlbnRFbmRwb2ludCA+IGNoYXJPZmZzZXQpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRTdGFydCA9IGN1cnJlbnRFbmRwb2ludDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzZWdtZW50SW5kZXggPT0gc2VnbWVudENvdW50ICYmIHNlZ21lbnRDb3VudCA+IDApIHsKKyAgICAgICAgICAgIC8vIElmIHdlIGdldCBoZXJlLCBsaW5lIGxlbmd0aCBpcyBub3QgMCwgYW5kIGNoYXJPZmZzZXQgaXMgYXQgZW5kIG9mIGxpbmUKKyAgICAgICAgICAgIGlmICghaXNUYWIodGV4dC5hdChjaGFyT2Zmc2V0LTEpKSkgeworICAgICAgICAgICAgICAgIHNlZ21lbnRJbmRleCA9IHNlZ21lbnRDb3VudC0xOworICAgICAgICAgICAgICAgIHNlZ21lbnQgPSAoQmlkaVNlZ21lbnQpIGxpbmUuZlNlZ21lbnRzLmVsZW1lbnRBdChzZWdtZW50SW5kZXgpOworICAgICAgICAgICAgICAgIGN1cnJlbnRTdGFydCA9IGxpbmVTdGFydCArIGxpbmUuZ2V0Q2hhckxlbmd0aCgpIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZ21lbnQuZkxheW91dC5nZXRDaGFyYWN0ZXJDb3VudCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgUmVjdGFuZ2xlIHI7CisgICAgICAgIAorICAgICAgICBpZiAoc2VnbWVudEluZGV4IDwgc2VnbWVudENvdW50KSB7CisgICAgICAgICAgICBUZXh0TGF5b3V0IGxheW91dCA9IHNlZ21lbnQuZkxheW91dDsKKyAgICAgICAgICAgIGludCBvZmZzZXRJbkxheW91dCA9IGNoYXJPZmZzZXQgLSBjdXJyZW50U3RhcnQ7CisgICAgICAgICAgICBTaGFwZVtdIGNhcmV0cyA9IGxheW91dC5nZXRDYXJldFNoYXBlcyhvZmZzZXRJbkxheW91dCwgc2VnbWVudC5mQm91bmRzKTsKKyAgICAgICAgICAgIHIgPSBjYXJldHNbMF0uZ2V0Qm91bmRzKCk7CisgICAgICAgICAgICBpZiAoY2FyZXRzWzFdICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByLmFkZChjYXJldHNbMV0uZ2V0Qm91bmRzKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgci53aWR0aCArPSAxOworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGF5b3V0UG9zID0gbGluZS5mTGVhZGluZ01hcmdpbiArIHNlZ21lbnQuZkRpc3RhbmNlRnJvbUxlYWRpbmdNYXJnaW47CisgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICByLnggKz0gbGF5b3V0UG9zOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgci54ICs9IGxpbmVCb3VuZCAtIGxheW91dFBvczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHIueSArPSBsaW5lLmZBc2NlbnQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByID0gbmV3IFJlY3RhbmdsZSgpOworICAgICAgICAgICAgci5oZWlnaHQgPSBsaW5lLmdldEhlaWdodCgpOworICAgICAgICAgICAgci53aWR0aCA9IDE7CisgICAgICAgICAgICBpbnQgbGluZUVuZCA9IGxpbmUuZkxlYWRpbmdNYXJnaW4gKyBsaW5lLmZUb3RhbEFkdmFuY2U7CisgICAgICAgICAgICBpZiAobGluZS5mTGVmdFRvUmlnaHQpIHsKKyAgICAgICAgICAgICAgICByLnggPSBsaW5lRW5kOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgci54ID0gbGluZUJvdW5kIC0gbGluZUVuZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgci50cmFuc2xhdGUoeCwgeSk7CisgICAgICAgIHJldHVybiByOworICAgIH0KKworICAgIHByaXZhdGUgaW50IHN0cm9uZ0NhcmV0QmFzZWxpbmVQb3NpdGlvbihCaWRpTGF5b3V0SW5mbyBsaW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjaGFyT2Zmc2V0KSB7CisKKyAgICAgICAgZmluYWwgaW50IHNlZ21lbnRDb3VudCA9IGxpbmUuZlNlZ21lbnRzLnNpemUoKTsKKyAgICAgICAgaW50IGN1cnJlbnRTdGFydCA9IGxpbmUuZ2V0Q2hhclN0YXJ0KGxlbmd0aEJhc2lzKTsKKyAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCA9IG51bGw7CisgICAgICAgIGludCBzZWdtZW50SW5kZXg7CisKKyAgICAgICAgZm9yIChzZWdtZW50SW5kZXg9MDsgc2VnbWVudEluZGV4IDwgc2VnbWVudENvdW50OyBzZWdtZW50SW5kZXgrKykgeworICAgICAgICAgICAgc2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KHNlZ21lbnRJbmRleCk7CisgICAgICAgICAgICBpbnQgY3VycmVudEVuZHBvaW50ID0gY3VycmVudFN0YXJ0ICsgc2VnbWVudC5mTGF5b3V0LmdldENoYXJhY3RlckNvdW50KCk7CisgICAgICAgICAgICBpZiAoY3VycmVudEVuZHBvaW50ID4gY2hhck9mZnNldCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3VycmVudFN0YXJ0ID0gY3VycmVudEVuZHBvaW50OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNlZ21lbnRJbmRleCA8IHNlZ21lbnRDb3VudCkgeworICAgICAgICAgICAgVGV4dExheW91dCBsYXlvdXQgPSBzZWdtZW50LmZMYXlvdXQ7CisgICAgICAgICAgICBpbnQgb2Zmc2V0SW5MYXlvdXQgPSBjaGFyT2Zmc2V0IC0gY3VycmVudFN0YXJ0OworICAgICAgICAgICAgVGV4dEhpdEluZm8gaGl0ID0gVGV4dEhpdEluZm8uYWZ0ZXJPZmZzZXQob2Zmc2V0SW5MYXlvdXQpOworICAgICAgICAgICAgaGl0ID0gVGV4dExheW91dC5ERUZBVUxUX0NBUkVUX1BPTElDWS5nZXRTdHJvbmdDYXJldChoaXQsIGhpdC5nZXRPdGhlckhpdCgpLCBsYXlvdXQpOworICAgICAgICAgICAgZmxvYXRbXSBpbmZvID0gbGF5b3V0LmdldENhcmV0SW5mbyhoaXQpOworICAgICAgICAgICAgaW50IGxheW91dFBvcyA9IGxpbmUuZkxlYWRpbmdNYXJnaW4gKyBzZWdtZW50LmZEaXN0YW5jZUZyb21MZWFkaW5nTWFyZ2luOworICAgICAgICAgICAgaWYgKGxpbmUuZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxheW91dFBvcyArIChpbnQpIGluZm9bMF07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGluZUJvdW5kIC0gbGF5b3V0UG9zICsgKGludCkgaW5mb1swXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGludCBsaW5lRW5kID0gbGluZS5mTGVhZGluZ01hcmdpbiArIGxpbmUuZlRvdGFsQWR2YW5jZTsKKyAgICAgICAgICAgIGlmIChsaW5lLmZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIHJldHVybiBsaW5lRW5kOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxpbmVCb3VuZCAtIGxpbmVFbmQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIGludCBnZXROZXh0T2Zmc2V0KEJpZGlMYXlvdXRJbmZvIGxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0IGRpcikgeworCisgICAgICAgIGlmIChkaXIgIT0gTUZvcm1hdHRlci5lTGVmdCAmJiBkaXIgIT0gTUZvcm1hdHRlci5lUmlnaHQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgZGlyZWN0aW9uLiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZmluZCBzZWdtZW50IGNvbnRhaW5pbmcgb2Zmc2V0OgorICAgICAgICBmaW5hbCBpbnQgc2VnbWVudENvdW50ID0gbGluZS5mU2VnbWVudHMuc2l6ZSgpOworICAgICAgICBmaW5hbCBpbnQgbGluZUNoYXJTdGFydCA9IGxpbmUuZ2V0Q2hhclN0YXJ0KGxlbmd0aEJhc2lzKTsKKworICAgICAgICBpbnQgY3VycmVudFN0YXJ0ID0gbGluZUNoYXJTdGFydDsKKyAgICAgICAgQmlkaVNlZ21lbnQgc2VnbWVudCA9IG51bGw7CisgICAgICAgIGludCBzZWdtZW50SW5kZXg7CisKKyAgICAgICAgZm9yIChzZWdtZW50SW5kZXg9MDsgc2VnbWVudEluZGV4IDwgc2VnbWVudENvdW50OyBzZWdtZW50SW5kZXgrKykgeworICAgICAgICAgICAgc2VnbWVudCA9IChCaWRpU2VnbWVudCkgbGluZS5mU2VnbWVudHMuZWxlbWVudEF0KHNlZ21lbnRJbmRleCk7CisgICAgICAgICAgICBpbnQgY3VycmVudEVuZHBvaW50ID0gY3VycmVudFN0YXJ0ICsgc2VnbWVudC5mTGF5b3V0LmdldENoYXJhY3RlckNvdW50KCk7CisgICAgICAgICAgICBpZiAoY3VycmVudEVuZHBvaW50ID4gY2hhck9mZnNldCB8fAorICAgICAgICAgICAgICAgICAgICAoc2VnbWVudEluZGV4ID09IHNlZ21lbnRDb3VudC0xICYmIGN1cnJlbnRFbmRwb2ludD09Y2hhck9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGN1cnJlbnRTdGFydCA9IGN1cnJlbnRFbmRwb2ludDsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsIGJvb2xlYW4gbG9nQWR2YW5jZSA9IChkaXI9PU1Gb3JtYXR0ZXIuZVJpZ2h0KT09KGxpbmUuZkxlZnRUb1JpZ2h0KTsKKworICAgICAgICBpbnQgcmVzdWx0OworCisgICAgICAgIGlmIChzZWdtZW50SW5kZXggPCBzZWdtZW50Q291bnQpIHsKKyAgICAgICAgICAgIFRleHRMYXlvdXQgbGF5b3V0ID0gc2VnbWVudC5mTGF5b3V0OworICAgICAgICAgICAgaW50IG9mZnNldEluTGF5b3V0ID0gY2hhck9mZnNldCAtIGN1cnJlbnRTdGFydDsKKyAgICAgICAgICAgIFRleHRIaXRJbmZvIGhpdCA9IChkaXI9PU1Gb3JtYXR0ZXIuZUxlZnQpPworICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LmdldE5leHRMZWZ0SGl0KG9mZnNldEluTGF5b3V0KSA6CisgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQuZ2V0TmV4dFJpZ2h0SGl0KG9mZnNldEluTGF5b3V0KTsKKyAgICAgICAgICAgIGlmIChoaXQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGxvZ0FkdmFuY2U/CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdGFydCtsYXlvdXQuZ2V0Q2hhcmFjdGVyQ291bnQoKSsxIDogY3VycmVudFN0YXJ0LTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBoaXQuZ2V0SW5zZXJ0aW9uSW5kZXgoKSArIGN1cnJlbnRTdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGxvZ0FkdmFuY2U/IGxpbmVDaGFyU3RhcnQgKyBsaW5lLmZDaGFyTGVuZ3RoICsgMSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVDaGFyU3RhcnQgLSAxOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9DbGlwV29ya2Fyb3VuZC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9DbGlwV29ya2Fyb3VuZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA0NjdiMzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0NsaXBXb3JrYXJvdW5kLmphdmEKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGphdmEuYXd0LlNoYXBlOworLy8vKkpESzEySU1QT1JUUworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzMkQ7CitpbXBvcnQgamF2YS5hd3QuZ2VvbS5SZWN0YW5nbGUyRDsKK2ltcG9ydCBqYXZhLmF3dC5nZW9tLlBhdGhJdGVyYXRvcjsKK2ltcG9ydCBqYXZhLmF3dC5nZW9tLkxpbmUyRDsKKy8vSkRLMTJJTVBPUlRTKi8KKy8qSkRLMTFJTVBPUlRTCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkdyYXBoaWNzMkQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LlJlY3RhbmdsZTJEOworSkRLMTFJTVBPUlRTKi8KKworLyoqCisgKiBUaGlzIGNsYXNzIGV4aXN0cyB0byB3b3JrIGFyb3VuZCBhIGNsaXBwaW5nIGJ1ZyBpbiBKREsgMS4yLgorICovCitmaW5hbCBjbGFzcyBDbGlwV29ya2Fyb3VuZCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworLy8vKkpESzEySU1QT1JUUworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBleGN1c2UgPQorICAgICAgICAiU29ycnksIHRoaXMgbWV0aG9kIGlzIGEgdmVyeSBsaW1pdGVkIHdvcmthcm91bmQgZm9yIGEgSkRLIDEuMiBidWcuIjsKKy8vSkRLMTJJTVBPUlRTKi8KKyAgICAKKyAgICBzdGF0aWMgT2JqZWN0IHNhdmVDbGlwU3RhdGUoR3JhcGhpY3MyRCBnKSB7CisvLy8qSkRLMTJJTVBPUlRTCisgICAgICAgIHJldHVybiBudWxsOworLy9KREsxMklNUE9SVFMqLworLypKREsxMUlNUE9SVFMKKyAgICAgICAgcmV0dXJuIGcuZ2V0Q2xpcCgpOworSkRLMTFJTVBPUlRTKi8KKyAgICB9CisgICAgCisgICAgc3RhdGljIHZvaWQgcmVzdG9yZUNsaXBTdGF0ZShHcmFwaGljczJEIGcsIE9iamVjdCBzdGF0ZSkgeworLy8vKkpESzEySU1QT1JUUworICAgICAgICBpZiAoc3RhdGUgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNsaXAgc3RhdGUgZm9yIHRoaXMgY2xhc3MuIik7CisgICAgICAgIH0KKy8vSkRLMTJJTVBPUlRTKi8KKy8qSkRLMTFJTVBPUlRTCisgICAgICAgIGcuc2V0Q2xpcCgoU2hhcGUpc3RhdGUpOworSkRLMTFJTVBPUlRTKi8KKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogRHJhdyB0aGUgZ2l2ZW4gU2hhcGUgaW50byB0aGUgR3JhcGhpY3MsIHRyYW5zbGF0ZWQgYnkgKGR4LCBkeSkKKyAgICAgKiBhbmQgY2xpcHBlZCB0byBjbGlwUmVjdC4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCB0cmFuc2xhdGVBbmREcmF3U2hhcGVXaXRoQ2xpcChHcmFwaGljczJEIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGR4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUyRCBjbGlwUmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGFwZSBzaGFwZSkgeworLy8vKkpESzEySU1QT1JUUworICAgICAgICAvLyByZWFsbHkgYm9ndXMgaW1wbGVtZW50YXRpb24gcmlnaHQgbm93OiAgYmFzaWNhbGx5IG9ubHkKKyAgICAgICAgLy8gZHJhd3MgY2FyZXRzIGZyb20gYSBUZXh0TGF5b3V0LgorICAgICAgICAvLyBPaCB5ZWFoLCBpdCBkb2Vzbid0IHJlYWxseSBjbGlwIGNvcnJlY3RseSBlaXRoZXIuLi4KKworICAgICAgICBQYXRoSXRlcmF0b3IgcGF0aEl0ZXIgPSBzaGFwZS5nZXRQYXRoSXRlcmF0b3IobnVsbCk7CisgICAgICAgIGZsb2F0W10gcG9pbnRzID0gbmV3IGZsb2F0WzZdOworCisgICAgICAgIGludCB0eXBlID0gcGF0aEl0ZXIuY3VycmVudFNlZ21lbnQocG9pbnRzKTsKKyAgICAgICAgaWYgKHR5cGUgIT0gUGF0aEl0ZXJhdG9yLlNFR19NT1ZFVE8pIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihleGN1c2UpOworICAgICAgICB9CisgICAgICAgIGZsb2F0IHgxID0gcG9pbnRzWzBdICsgZHg7CisgICAgICAgIGZsb2F0IHkxID0gcG9pbnRzWzFdICsgZHk7CisKKyAgICAgICAgaWYgKHBhdGhJdGVyLmlzRG9uZSgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXhjdXNlKTsKKyAgICAgICAgfQorCisgICAgICAgIHBhdGhJdGVyLm5leHQoKTsKKyAgICAgICAgdHlwZSA9IHBhdGhJdGVyLmN1cnJlbnRTZWdtZW50KHBvaW50cyk7CisgICAgICAgIGlmICh0eXBlICE9IFBhdGhJdGVyYXRvci5TRUdfTElORVRPKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXhjdXNlKTsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCB4MiA9IHBvaW50c1swXSArIGR4OworICAgICAgICBmbG9hdCB5MiA9IHBvaW50c1sxXSArIGR5OworCisgICAgICAgIGZsb2F0IG1pblkgPSAoZmxvYXQpIGNsaXBSZWN0LmdldFkoKTsKKyAgICAgICAgZmxvYXQgbWF4WSA9IChmbG9hdCkgY2xpcFJlY3QuZ2V0TWF4WSgpOworCisgICAgICAgIC8vIE5vdyBjbGlwIHdpdGhpbiB2ZXJ0aWNhbCBsaW1pdHMgaW4gY2xpcFJlY3QKKyAgICAgICAgaWYgKHkxID09IHkyKSB7CisgICAgICAgICAgICBpZiAoeTEgPCBtaW5ZIHx8IHkxID49IG1heFkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoeTEgPiB5MikgeworICAgICAgICAgICAgICAgIGZsb2F0IHQgPSB4MTsKKyAgICAgICAgICAgICAgICB4MSA9IHgyOworICAgICAgICAgICAgICAgIHgyID0gdDsKKyAgICAgICAgICAgICAgICB0ID0geTE7CisgICAgICAgICAgICAgICAgeTEgPSB5MjsKKyAgICAgICAgICAgICAgICB5MiA9IHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZsb2F0IGludlNsb3BlID0gKHgyLXgxKSAvICh5Mi15MSk7CisgICAgICAgICAgICBpZiAoeTEgPCBtaW5ZKSB7CisgICAgICAgICAgICAgICAgeDEgLT0gKG1pblkteTEpICogaW52U2xvcGU7CisgICAgICAgICAgICAgICAgeTEgPSBtaW5ZOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHkyID49IG1heFkpIHsKKyAgICAgICAgICAgICAgICB4MSArPSAoeTItbWF4WSkgKiBpbnZTbG9wZTsKKyAgICAgICAgICAgICAgICB5MiA9IG1heFk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBnLmRyYXcobmV3IExpbmUyRC5GbG9hdCh4MSwgeTEsIHgyLCB5MikpOworLy9KREsxMklNUE9SVFMqLworLypKREsxMUlNUE9SVFMKKyAgICAgICAgZy5zZXRDbGlwKGNsaXBSZWN0KTsKKyAgICAgICAgZy50cmFuc2xhdGUoZHgsIGR5KTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGcuZHJhdyhzaGFwZSk7CisgICAgICAgIH0KKyAgICAgICAgZmluYWxseSB7CisgICAgICAgICAgICBnLnRyYW5zbGF0ZSgtZHgsIC1keSk7CisgICAgICAgIH0KK0pESzExSU1QT1JUUyovCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9EZWZhdWx0Q2hhcmFjdGVyTWV0cmljLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0RlZmF1bHRDaGFyYWN0ZXJNZXRyaWMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MzYzMmRlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9EZWZhdWx0Q2hhcmFjdGVyTWV0cmljLmphdmEKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKKy8vLypKREsxMklNUE9SVFMKK2ltcG9ydCBqYXZhLmF3dC5mb250LkZvbnRSZW5kZXJDb250ZXh0OworaW1wb3J0IGphdmEuYXd0LmZvbnQuVGV4dExheW91dDsKKy8vSkRLMTJJTVBPUlRTKi8KKworLypKREsxMUlNUE9SVFMKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuRm9udFJlbmRlckNvbnRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LlRleHRMYXlvdXQ7CitKREsxMUlNUE9SVFMqLworCisvKioKKyAqIFRoaXMgY2xhc3MgaXMgdXNlZCBieSB0aGUgRm9ybWF0dGVyIHRvIGVzdGltYXRlIHRoZSBoZWlnaHQKKyAqIG9mIGNoYXJhY3RlcnMgaW4gYSBwYXJ0aWN1bGFyIHN0eWxlLgorICovCitmaW5hbCBjbGFzcyBEZWZhdWx0Q2hhcmFjdGVyTWV0cmljIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgCisgICAgZmluYWwgY2xhc3MgTWV0cmljIHsKKyAgICAKKyAgICAgICAgcHJpdmF0ZSBmbG9hdCBmQXNjZW50OworICAgICAgICBwcml2YXRlIGZsb2F0IGZEZXNjZW50OworICAgICAgICBwcml2YXRlIGZsb2F0IGZMZWFkaW5nOworICAgIAorICAgICAgICBwcml2YXRlIE1ldHJpYyhmbG9hdCBhc2NlbnQsIGZsb2F0IGRlc2NlbnQsIGZsb2F0IGxlYWRpbmcpIHsKKyAgICAKKyAgICAgICAgICAgIGZBc2NlbnQgPSBhc2NlbnQ7CisgICAgICAgICAgICBmRGVzY2VudCA9IGRlc2NlbnQ7CisgICAgICAgICAgICBmTGVhZGluZyA9IGxlYWRpbmc7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcHVibGljIGludCBnZXRBc2NlbnQoKSB7CisgICAgICAgICAgICByZXR1cm4gKGludCkgTWF0aC5jZWlsKGZBc2NlbnQpOworICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0RGVzY2VudCgpIHsKKyAgICAgICAgICAgIHJldHVybiAoaW50KSBNYXRoLmNlaWwoZkRlc2NlbnQpOworICAgICAgICB9CisgICAgCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0TGVhZGluZygpIHsKKyAgICAgICAgICAgIHJldHVybiAoaW50KSBNYXRoLmNlaWwoZkxlYWRpbmcpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgZmluYWwgSGFzaHRhYmxlIGZDYWNoZSA9IG5ldyBIYXNodGFibGUoKTsKKyAgICBwcml2YXRlIC8qZmluYWwqLyBGb250UmVzb2x2ZXIgZlJlc29sdmVyOworICAgIHByaXZhdGUgLypmaW5hbCovIEZvbnRSZW5kZXJDb250ZXh0IGZGcmM7CisgICAgCisgICAgcHVibGljIERlZmF1bHRDaGFyYWN0ZXJNZXRyaWMoRm9udFJlc29sdmVyIHJlc29sdmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRSZW5kZXJDb250ZXh0IGZyYykgeworICAgIAorICAgICAgICBmUmVzb2x2ZXIgPSByZXNvbHZlcjsKKyAgICAgICAgZkZyYyA9IGZyYzsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0IGEgRGVmYXVsdENoYXJhY3Rlck1ldHJpYyBpbnN0YW5jZSBmb3IgdGhlIGdpdmVuIHN0eWxlLiAgVGhlCisgICAgICogc3R5bGUgaXMgZmlyc3QgcmVzb2x2ZWQgd2l0aCBGb250UmVzb2x2ZXIuCisgICAgICovCisgICAgcHVibGljIE1ldHJpYyBnZXRNZXRyaWNGb3JTdHlsZShBdHRyaWJ1dGVNYXAgc3R5bGUpIHsKKworICAgICAgICBzdHlsZSA9IGZSZXNvbHZlci5hcHBseUZvbnQoc3R5bGUpOworICAgICAgICBNZXRyaWMgbWV0cmljID0gKE1ldHJpYykgZkNhY2hlLmdldChzdHlsZSk7CisgICAgICAgIGlmIChtZXRyaWMgPT0gbnVsbCkgeworICAgICAgICAgICAgVGV4dExheW91dCBsYXlvdXQgPSBuZXcgVGV4dExheW91dCgiICIsIHN0eWxlLCBmRnJjKTsKKyAgICAgICAgICAgIG1ldHJpYyA9IG5ldyBNZXRyaWMobGF5b3V0LmdldEFzY2VudCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQuZ2V0RGVzY2VudCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQuZ2V0TGVhZGluZygpKTsKKyAgICAgICAgICAgIGZDYWNoZS5wdXQoc3R5bGUsIG1ldHJpYyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1ldHJpYzsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9Gb250UmVzb2x2ZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvRm9udFJlc29sdmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzk2ZGVlOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvRm9udFJlc29sdmVyLmphdmEKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkZvbnRVdGlsczsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS5hd3QuRm9udDsKKworZmluYWwgY2xhc3MgRm9udFJlc29sdmVyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBzdGF0aWMgeworLy8gRXZlbiB0aG91Z2ggaXQgdmlvbGF0ZXMgdGhlIFByaW1lIERpcmVjdGl2ZSBJJ2xsIGNvbmRpdGlvbmFsaXplCisvLyB0aGlzIGFueXdheSwgc2luY2UgaXQgaXMganVzdCBhIDEuMiB3b3JrYXJvdW5kIHdoaWNoIEkgZ3JlYXRseQorLy8gcmVzZW50LgorLy8vKkpESzEySU1QT1JUUworICAgICAgICBqYXZhLmF3dC5HcmFwaGljc0Vudmlyb25tZW50LmdldExvY2FsR3JhcGhpY3NFbnZpcm9ubWVudCgpLmdldEFsbEZvbnRzKCk7CisvL0pESzEySU1QT1JUUyovCisgICAgfQorCisgICAgcHJpdmF0ZSBIYXNodGFibGUgc3R5bGVNYXA7CisgICAgcHJpdmF0ZSBmaW5hbCBBdHRyaWJ1dGVNYXAgZkRlZmF1bHRGb250TWFwOworCisgICAgcHVibGljIEZvbnRSZXNvbHZlcihBdHRyaWJ1dGVNYXAgZGVmYXVsdHMpIHsKKworICAgICAgICBzdHlsZU1hcCA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgSGFzaHRhYmxlIHRlbXBNYXAgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgICAgIHRlbXBNYXAucHV0KFRleHRBdHRyaWJ1dGUuRkFNSUxZLCBkZWZhdWx0cy5nZXQoVGV4dEF0dHJpYnV0ZS5GQU1JTFkpKTsKKyAgICAgICAgdGVtcE1hcC5wdXQoVGV4dEF0dHJpYnV0ZS5XRUlHSFQsIGRlZmF1bHRzLmdldChUZXh0QXR0cmlidXRlLldFSUdIVCkpOworICAgICAgICB0ZW1wTWFwLnB1dChUZXh0QXR0cmlidXRlLlBPU1RVUkUsIGRlZmF1bHRzLmdldChUZXh0QXR0cmlidXRlLlBPU1RVUkUpKTsKKyAgICAgICAgdGVtcE1hcC5wdXQoVGV4dEF0dHJpYnV0ZS5TSVpFLCBkZWZhdWx0cy5nZXQoVGV4dEF0dHJpYnV0ZS5TSVpFKSk7CisgICAgICAgIGZEZWZhdWx0Rm9udE1hcCA9IG5ldyBBdHRyaWJ1dGVNYXAodGVtcE1hcCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmV0Y2ggcmVzdWx0IG9mIHJlc29sdmUoc3R5bGUpIGZyb20gY2FjaGUsIGlmIHByZXNlbnQuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBhcHBseUZvbnQoQXR0cmlidXRlTWFwIHN0eWxlKSB7CisKKyAgICAgICAgT2JqZWN0IGNhY2hlZE1hcCA9IHN0eWxlTWFwLmdldChzdHlsZSk7CisKKyAgICAgICAgaWYgKGNhY2hlZE1hcCA9PSBudWxsKSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgcmVzb2x2ZWRNYXAgPSByZXNvbHZlKHN0eWxlKTsKKyAgICAgICAgICAgIHN0eWxlTWFwLnB1dChzdHlsZSwgcmVzb2x2ZWRNYXApOworICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkTWFwOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIChBdHRyaWJ1dGVNYXApIGNhY2hlZE1hcDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVNYXAgY29udGFpbmluZyBhIEZvbnQgY29tcHV0ZWQgZnJvbSB0aGUKKyAgICAgKiBhdHRyaWJ1dGVzIGluIDx0dD5zdHlsZTwvdHQ+LgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgcmVzb2x2ZShBdHRyaWJ1dGVNYXAgc3R5bGUpIHsKKworICAgICAgICBpZiAoc3R5bGUuZ2V0KFRleHRBdHRyaWJ1dGUuRk9OVCkgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHN0eWxlOworICAgICAgICB9CisKKyAgICAgICAgRm9udCBmb250ID0gRm9udFV0aWxzLmdldEZvbnQoZkRlZmF1bHRGb250TWFwLmFkZEF0dHJpYnV0ZXMoc3R5bGUpKTsKKworICAgICAgICByZXR1cm4gc3R5bGUuYWRkQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuRk9OVCwgZm9udCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9MYXlvdXRJbmZvLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L0xheW91dEluZm8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMTYyZjM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9MYXlvdXRJbmZvLmphdmEKQEAgLTAsMCArMSwxOTcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorLyoqIExheW91dEluZm8KKworICAgIEEgbGluZSBvZiB0ZXh0LCBwb3NzaWJseSBjb250YWluaW5nIHRhYi1zZWdtZW50cy4KKyovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0OworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworCisvLy8qSkRLMTJJTVBPUlRTCitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3MyRDsKKy8vSkRLMTJJTVBPUlRTKi8KKworLypKREsxMUlNUE9SVFMKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuR3JhcGhpY3MyRDsKK0pESzExSU1QT1JUUyovCisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworYWJzdHJhY3QgY2xhc3MgTGF5b3V0SW5mbworeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBpbnQgZkNoYXJTdGFydDsgICAgICAgLy8gb2Zmc2V0IGluIHRleHQgdG8gc3RhcnQgb2YgbGluZSAod2FzIGZTdGFydCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBuZWcuIHZhbHVlcyBpbmRpY2F0ZSBkaXN0YW5jZSBmcm9tIGVuZCBvZiB0ZXh0CisgICAgcHJpdmF0ZSBpbnQgZkdyYXBoaWNTdGFydDsgICAgLy8gbWluIHBpeGVsIG9mZnNldCBpbiBmaWxsIGRpcmVjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lZ2F0aXZlIHZhbHVlcyBpbmRpY2F0ZSBkaXN0YW5jZSBmcm9tIGJvdHRvbSBvZiB0ZXh0IHZpZXcKKworICAgIC8qCisgICAgICAgIFRoZXNlIG1ldGhvZHMgYXJlIGZvciBzdG9yaW5nIExheW91dHMgaW4gYSBnYXAtc3RvcmFnZSwKKyAgICAgICAgcmVsYXRpdmUgdG8gZWl0aGVyIHRoZSBzdGFydCBvZiBlbmQgb2YgdGV4dC4gIFNlZSBBc3luY0Zvcm1hdHRlci4KKworICAgICAgICBJZiB5b3UganVzdCB3YW50IGFic29sdXRlICh0aGF0IGlzLCBzdGFydC1yZWxhdGl2ZSkgY2hhciBhbmQKKyAgICAgICAgZ3JhcGhpYyBzdGFydHMsIGRvbid0IG1ha2UgdGhlbSBlbmQtcmVsYXRpdmUuCisgICAgKi8KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0Q2hhclN0YXJ0KGludCBsZW5ndGhCYXNpcykgeworCisgICAgICAgIGlmIChmQ2hhclN0YXJ0ID49IDApIHsKKyAgICAgICAgICAgIHJldHVybiBmQ2hhclN0YXJ0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxlbmd0aEJhc2lzICsgZkNoYXJTdGFydDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCBpbnQgZ2V0R3JhcGhpY1N0YXJ0KGludCBncmFwaGljQmFzaXMpIHsKKworICAgICAgICBpZiAoZkdyYXBoaWNTdGFydCA+PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gZkdyYXBoaWNTdGFydDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBncmFwaGljQmFzaXMgKyBmR3JhcGhpY1N0YXJ0OworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0Q2hhclN0YXJ0KGludCBiZWdpbm5pbmdSZWxhdGl2ZVN0YXJ0KSB7CisKKyAgICAgICAgaWYgKGJlZ2lubmluZ1JlbGF0aXZlU3RhcnQgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJjaGFyU3RhcnQgbXVzdCBiZSBub25uZWdhdml0dmUiKTsKKyAgICAgICAgfQorICAgICAgICBmQ2hhclN0YXJ0ID0gYmVnaW5uaW5nUmVsYXRpdmVTdGFydDsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRHcmFwaGljU3RhcnQoaW50IGJlZ2lubmluZ1JlbGF0aXZlU3RhcnQpIHsKKworICAgICAgICBpZiAoYmVnaW5uaW5nUmVsYXRpdmVTdGFydCA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oImNoYXJTdGFydCBtdXN0IGJlIG5vbm5lZ2F2aXR2ZSIpOworICAgICAgICB9CisgICAgICAgIGZHcmFwaGljU3RhcnQgPSBiZWdpbm5pbmdSZWxhdGl2ZVN0YXJ0OworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIG1ha2VSZWxhdGl2ZVRvQmVnaW5uaW5nKGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZ3JhcGhpY0Jhc2lzKSB7CisKKyAgICAgICAgaWYgKGxlbmd0aEJhc2lzIDwgMCB8fCBncmFwaGljQmFzaXMgPCAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJCYXNlcyBtdXN0IGJlIHBvc2l0aXZlLiIpOworICAgICAgICB9CisgICAgICAgIGlmIChmQ2hhclN0YXJ0ID49IDAgfHwgZkdyYXBoaWNTdGFydCA+PSAwKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFscmVhZHkgc3RhcnQtcmVsYXRpdmUuIik7CisgICAgICAgIH0KKworICAgICAgICBmQ2hhclN0YXJ0ICs9IGxlbmd0aEJhc2lzOworICAgICAgICBmR3JhcGhpY1N0YXJ0ICs9IGdyYXBoaWNCYXNpczsKKyAgICB9CisKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBtYWtlUmVsYXRpdmVUb0VuZChpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGdyYXBoaWNCYXNpcykgeworCisgICAgICAgIGlmIChsZW5ndGhCYXNpcyA8IDAgfHwgZ3JhcGhpY0Jhc2lzIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiQmFzZXMgbXVzdCBiZSBwb3NpdGl2ZS4iKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZkNoYXJTdGFydCA8IDAgfHwgZkdyYXBoaWNTdGFydCA8IDApIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQWxyZWFkeSBlbmQtcmVsYXRpdmUuIik7CisgICAgICAgIH0KKworICAgICAgICBmQ2hhclN0YXJ0IC09IGxlbmd0aEJhc2lzOworICAgICAgICBmR3JhcGhpY1N0YXJ0IC09IGdyYXBoaWNCYXNpczsKKyAgICB9CisKKworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0Q2hhckxlbmd0aCgpOworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0QXNjZW50KCk7CisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXREZXNjZW50KCk7CisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRMZWFkaW5nKCk7CisKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldFZpc2libGVBZHZhbmNlKCk7CisgICAgcHVibGljIGFic3RyYWN0IGludCBnZXRUb3RhbEFkdmFuY2UoKTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldExlYWRpbmdNYXJnaW4oKTsKKworICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGlzTGVmdFRvUmlnaHQoKTsKKworICAgIHB1YmxpYyBpbnQgZ2V0SGVpZ2h0KCkgeworCisgICAgICAgIHJldHVybiBnZXRBc2NlbnQoKStnZXREZXNjZW50KCkrZ2V0TGVhZGluZygpOworICAgIH0KKworICAgIC8qKgorICAgICogRHJhd3MgdGV4dCB3aXRoIGhpZ2hsaWdodGluZy4KKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbmRlcldpdGhIaWdobGlnaHQoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MyRCBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IgaGlnaGxpZ2h0Q29sb3IpCisgICAgeworICAgIH0KKworICAgIC8qKiBVc2UgbGF5b3V0IGluZm9ybWF0aW9uIHRvIHJlbmRlciB0aGUgbGluZSBhdCB4LCB5LiovCisKKyAgICBwdWJsaWMgdm9pZCByZW5kZXIoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICBHcmFwaGljczJEIGcsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSkKKyAgICB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVuZGVyQ2FyZXQoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmFwaGljczJEIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBzdHJvbmdDYXJldENvbG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIHdlYWtDYXJldENvbG9yKQorICAgIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHaXZlbiBhIHBvaW50IHdpdGhpbiB0aGlzIGxpbmUsIHJldHVybiB0aGUgY2hhcmFjdGVyIG9mZnNldCBjb3JyZXNwb25kaW5nIHRvIHRoYXQgcG9pbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVzdWx0LiAgVGhpcyBtYXkgYmUgbnVsbCwgaW4gd2hpY2ggY2FzZSBhIG5ldyBUZXh0T2Zmc2V0IHdpbGwgYmUgYWxsb2NhdGVkLgorICAgICAqICAgICAgICBUaGlzIG9iamVjdCBpcyBtb2RpZmllZCBpbiBwbGFjZSwgYW5kIGFsc28gcmV0dXJuZWQgYXMgdGhlIGZ1bmN0aW9uIHJlc3VsdC4KKyAgICAgKiBAcGFyYW0gdGV4dCBUZXh0IHRvIGluc3BlY3QuCisgICAgICogQHBhcmFtIGxpbmVYIFBvc2l0aW9uIG9uIHRoaXMgbGluZSByZWxhdGl2ZSB0byB0b3AgbGVmdCBjb3JuZXIgb2YgdGhpcyBsaW5lLgorICAgICAqIEBwYXJhbSBsaW5lWSBQb3NpdGlvbiBvbiB0aGlzIGxpbmUgcmVsYXRpdmUgdG8gdG9wIGxlZnQgY29ybmVyIG9mIHRoaXMgbGluZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgVGV4dE9mZnNldCBwaXhlbFRvT2Zmc2V0KGludCBsZW5ndGhCYXNpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHkpOworCisgICAgcHVibGljIGFic3RyYWN0IGludCBzdHJvbmdDYXJldEJhc2VsaW5lUG9zaXRpb24oaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQpOworCisgICAgcHVibGljIGFic3RyYWN0IFJlY3RhbmdsZSBjYXJldEJvdW5kcyhNQ29uc3RUZXh0IHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuZ3RoQmFzaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZUJvdW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNoYXJPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5KTsKKyAgICAKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldE5leHRPZmZzZXQoaW50IGxlbmd0aEJhc2lzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2hhck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgZGlyKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvTUZvcm1hdHRlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9NRm9ybWF0dGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjYxZDc3ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvTUZvcm1hdHRlci5qYXZhCkBAIC0wLDAgKzEsMzUxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LlBvaW50OworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworLyoqCisqCisqIFRoaXMgY2xhc3MgZm9ybWF0cyBsaW5lcyBvZiB0ZXh0IHRvIGEgZ2l2ZW4gbGVuZ3RoLgorKiBJdCBwcm92aWRlcyBzZXJ2aWNlcyBuZWVkZWQgZm9yIHN0YXRpYyB0ZXh0IGRpc3BsYXksCisqIGFuZCBhbHNvIGVkaXRhYmxlIHRleHQsIGluY2x1ZGluZzogIGRpc3BsYXlpbmcgdGV4dCwKKyogcmVmb3JtYXR0aW5nIHRleHQgYWZ0ZXIgYW4gZWRpdCwgY29udmVydGluZyBiZXR3ZWVuCisqIHNjcmVlbiBsb2NhdGlvbnMgYW5kIG9mZnNldHMgaW50byB0aGUgdGV4dCwgY2FsY3VsYXRpbmcKKyogYXJlYXMgb2YgdGhlIHNjcmVlbiBmb3IgImhpZ2hsaWdodGluZywiICBhbmQgY29tcHV0aW5nCisqIG9mZnNldHMgaW50byB0aGUgdGV4dCByZXN1bHRpbmcgZnJvbSBhcnJvdyBrZXlzLgorKiA8cD4KKyogVGV4dCBjbGllbnRzIGluc3RhbnRpYXRlIHRoaXMgY2xhc3Mgd2l0aCBhbgorKiA8dHQ+TUNvbnN0VGV4dDwvdHQ+IG9iamVjdCBhbmQgYSBmb3JtYXQgd2lkdGguICBUZXh0CisqIGNhbiBiZSBmb3JtYXR0ZWQgc3VjaCB0aGF0IGFsbCBsaW5lcyBmaXQgd2l0aGluIHRoZQorKiBmb3JtYXQgbGVuZ3RoLiAgQWx0ZXJuYXRpdmVseSwgdGV4dCBjYW4gYmUgZm9ybWF0dGVkCisqIHN1Y2ggdGhhdCBsaW5lcyBlbmQgb25seSBhdCB0aGUgZW5kIG9mIHBhcmFncmFwaHMuCisqIDxwPgorKiBUaGUgZm9ybWF0IGxlbmd0aCBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgPHR0PnNldExpbmVCb3VuZCgpPC90dD4KKyogbWV0aG9kLgorKiA8cD4KKyogTWV0aG9kcyBpbiB0aGUgZm9ybWF0dGVyIHdoaWNoIGludGVyYWN0IHdpdGggdGhlIGdyYXBoaWNzCisqIHN5c3RlbSBnZW5lcmFsbHkgdGFrZSBhcyBhIHBhcmFtdGVyIGEgPHR0PlBvaW50PC90dD4gb2JqZWN0CisqIHdoaWNoIHJlcHJlc2VudHMgdGhlICJvcmlnaW4iIG9mIHRoZSB0ZXh0IGRpc3BsYXkuICBUaGUKKyogb3JpZ2luIHJlcHJlc2VudHMgdGhlIGxvY2F0aW9uLCBpbiB0aGUgZ3JhcGhpY3Mgc3lzdGVtIHVzZWQgdG8gZGlzcGxheSB0aGUgdGV4dCwgb2YKKyogdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dC4KKyogPHA+CisqIFRvIGRpc3BsYXkgdGhlIHRleHQsIGNhbGwgPHR0PmRyYXcoKTwvdHQ+LCBwYXNzaW5nIHRoZQorKiBhIHJlY3RhbmdsZSBpbiB3aGljaCB0byBkcmF3IGFzIGEgcGFyYW1ldGVyLiAgT25seSBsaW5lcworKiBvZiB0ZXh0IGluIHRoZSBkcmF3IHJlY3RhbmdsZSB3aWxsIGJlIGRyYXduLgorKiA8cD4KKyogV2hlbiB0aGUgZm9ybWF0dGVyJ3MgdGV4dCBjaGFuZ2VzLCBpdCBpcyBpbXBvcnRhbnQgdG8gZmlyc3QgY2FsbAorKiA8dHQ+c3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk8L3R0PiB0byBwcmV2ZW50IHRoZSBGb3JtYXR0ZXIgZnJvbQorKiBhY2Nlc3NpbmcgdGhlIHRleHQgZnJvbSBhIGJhY2tncm91bmQgdGhyZWFkLiAgQWZ0ZXIgbW9kaWZpY2F0aW9ucyBhcmUKKyogY29tcGxldGUsCisqIGNhbGwgdGhlIDx0dD51cGRhdGVGb3JtYXQoKTwvdHQ+IG1ldGhvZCBiZWZvcmUgaW52b2tpbmcgYW55IG90aGVyCisqIG1ldGhvZHMgb2YgdGhlIGZvcm1hdHRlci4gIDx0dD51cGRhdGVGb3JtYXQoKTwvdHQ+IHJlZm9ybWF0cyB0aGUKKyogbmV3IHRleHQsIGZvcm1hdHRpbmcgbm8gbW9yZSB0ZXh0IHRoYW4gaXMgbmVjZXNzYXJ5LgorKiA8cD4KKyogVGhlIGZvcm1hdHRlciBwcm92aWRlcyBzZXJ2aWNlcyBmb3IgcmVzcG9uZGluZyB0byB1c2VyIGlucHV0IGZyb20gdGhlCisqIG1vdXNlIGFuZCBrZXlib2FyZC4gIFRoZSBtZXRob2QgPHR0PnBvaW50VG9UZXh0T2Zmc2V0KCk8L3R0PiBjb252ZXJ0cworKiBhIHNjcmVlbiBsb2NhdGlvbiB0byBhbiBvZmZzZXQgaW4gdGhlIHRleHQuICBUaGUgbWV0aG9kIDx0dD50ZXh0T2Zmc2V0VG9Qb2ludDwvdHQ+CisqIGNvbnZlcnRzIGFuIG9mZnNldCBpbiB0aGUgdGV4dCB0byBhbiBhcnJheSBvZiB0d28gPHR0PlBvaW50PC90dD4gb2JqZWN0cywgd2hpY2ggY2FuIGJlCisqIHVzZWQgdG8gZHJhdyBhIHZlcnRpY2xlIGNhcmV0LCBkZW5vdGluZyBhbiBpbnNlcnRpb24gcG9pbnQuICA8dHQ+aGlnaGxpZ2h0QXJlYTwvdHQ+CisqIGFjY2VwdHMgdHdvIG9mZnNldHMgaW50byB0aGUgdGV4dCBhcyBwYXJhbXRlcnMsIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIDx0dD5Qb2x5Z29uPC90dD4KKyogb2JqZWN0cyByZXByZXNlbnRpbmcgYXJlYXMgd2hlcmUgdmlzdWFsIGhpZ2hsaWdodGluZyBzaG91bGQgYmUgYXBwbGllZC4KKyogPHA+CisqIEZpbmFsbHksIGZvcgorKiBrZXlib2FyZCBoYW5kbGluZywgdGhlIDx0dD5maW5kTmV3SW5zZXJ0aW9uT2Zmc2V0KCk8L3R0PiBtZXRob2QgYWNjZXB0cyBhbiAiaW5pdGlhbCIKKyogb2Zmc2V0LCBhICJwcmV2aW91cyIgb2Zmc2V0LCBhcyB3ZWxsIGFzIGEgZGlyZWN0aW9uLCBhbmQgcmV0dXJucyBhIG5ldyBvZmZzZXQuICBUaGUgZGlyZWN0aW9uCisqIGNhbiBiZSB1cCwgZG93biwgbGVmdCwgb3IgcmlnaHQuICBUaGUgcHJldmlvdXMgb2Zmc2V0IGlzIHRoZSBpbnNlcnRpb24gcG9pbnQgbG9jYXRpb24sIGJlZm9yZQorKiB0aGUgYXJyb3cga2V5IGlzIHByb2Nlc3NlZC4gIFRoZSBpbml0aWFsIG9mZnNldCBpcyB0aGUgb2Zmc2V0IHdoZXJlIGFuIHVwIG9yIGRvd24gYXJyb3cKKyoga2V5IHNlcXVlbmNlIGJlZ2FuLiAgVXNpbmcgdGhlIGluaXRpYWwgb2Zmc2V0IGFsbG93cyBmb3IgImludGVsbGlnZW50IiBoYW5kbGluZyBvZiB1cCBhbmQgZG93bgorKiBhcnJvdyBrZXlzLgorKiA8cD4KKyogRXhhbXBsZXMgb2YgdXNpbmcgdGhlIE1Gb3JtYXR0ZXIgY2xhc3MKKyogYXJlIGdpdmVuIGluIHRoZSA8dHQ+QXN5bmNGb3JtYXR0ZXI8L3R0PiBjbGFzcworKiBkb2N1bWVudGF0aW9uLgorKiA8cD4KKyogQGF1dGhvciBKb2huIFJhbGV5CisqCisqIEBzZWUgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0CisqLworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTUZvcm1hdHRlciB7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIHB1YmxpYyBhYnN0cmFjdCBBdHRyaWJ1dGVNYXAgZ2V0RGVmYXVsdFZhbHVlcygpOworCisvKioKKyogRGlzcGxheSB0ZXh0IGluIGRyYXdBcmVhLCB3aXRoIGhpZ2hsaWdodGluZy4KKyogRG9lcyBub3QgcmVmb3JtYXQgdGV4dAorKiBAcGFyYW0gZyB0aGUgR3JhcGhpY3Mgb2JqZWN0IGluIHdoaWNoIHRvIGRyYXcKKyogQHBhcmFtIGRyYXdBcmVhIHRoZSByZWN0YW5nbGUsIGluIGcncyBjb29yZGluYXRlIHN5c3RlbSwgaW4gd2hpY2ggdG8gZHJhdworKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIGcncyBjb29yZGluYXRlIHN5c3RlbQorKiBAcGFyYW0gc2VsU3RhcnQgdGhlIG9mZnNldCB3aGVyZSB0aGUgY3VycmVudCBzZWxlY3Rpb24gYmVnaW5zOyAgcGFzcyA8dHQ+bnVsbDwvdHQ+IGlmIG5vIHNlbGVjdGlvbgorKiBAcGFyYW0gc2VsU3RvcCB0aGUgb2Zmc2V0IHdoZXJlIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBlbmRzCisqIEBwYXJhbSBoaWdobGlnaHQgdGhlIGNvbG9yIG9mIHRoZSBoaWdobGlnaHRpbmcKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgZHJhdyhHcmFwaGljcyBnLCBSZWN0YW5nbGUgZHJhd0FyZWEsIFBvaW50IG9yaWdpbiwKKyAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsIFRleHRPZmZzZXQgc2VsU3RvcCwgQ29sb3IgaGlnaGxpZ2h0KTsKKworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGRyYXcoR3JhcGhpY3MgZywgUmVjdGFuZ2xlIGRyYXdBcmVhLCBQb2ludCBvcmlnaW4pOworCisvKioKKyogU3BlY2lmeSB3aGV0aGVyIHRvIHdyYXAgbGluZSBhdCB0aGUgZWRnZSBvZiB0aGUgZGVzdGluYXRpb24gYXJlYS4KKyogPHR0PnRydWU8L3R0PiBtZWFucyB3cmFwIGxpbmVzOyAgPHR0PmZhbHNlPC90dD4gbWVhbnMgdG8gYnJlYWsgbGluZXMKKyogb25seSB3aGVuIGFuIGVuZC1vZi1saW5lIGNoYXJhY3RlciBpcyByZWFjaGVkLgorKiBAcGFyYW0gd3JhcCA8dHQ+dHJ1ZTwvdHQ+IHRvIGJyZWFrIGxpbmVzIGF0IHRoZSBlZGdlIG9mIHRoZSBkZXN0aW5hdGlvbgorKiBhcmVhOyAgPHR0PmZhbHNlPC90dD4gb3RoZXJ3aXNlLgorKi8KKworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldFdyYXAoYm9vbGVhbiB3cmFwKTsKKworLyoqCisqIFJldHVybiB3aGV0aGVyIHRleHQgaXMgd3JhcHBlZCBhdCB0aGUgZWRnZSBvZiB0aGUgZGVzdGluYXRpb24gYXJlYS4KKyogQHNlZSAjc2V0V3JhcAorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiB3cmFwKCk7CisKKy8qKgorKiBTcGVjaWZ5IHRoZSBudW1iZXIgb2YgcGl4ZWxzIGFsb25nIHRoZSAibGluZSBkaW1lbnNpb24iLgorKiBMaW5lcyBhcmUgZm9ybWF0dGVkIHRvIGZpdCB3aXRoaW4gdGhlIGxpbmUgZGltZW5zaW9uLiAgVGhlCisqIGxpbmUgZGltZW5zaW9uIGluIFJvbWFuIHNjcmlwdCBpcyBob3Jpem9udGFsLgorKiBAcGFyYW0gbGluZUJvdW5kIHRoZSBsZW5ndGgsIGluIHBpeGVscywgdG8gd2hpY2ggbGluZXMgd2lsbCBiZSBmb3JtYXR0ZWQKKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0TGluZUJvdW5kKGludCBsaW5lQm91bmQpOworCisvKioKKyogUmV0dXJuIHRoZSBudW1iZXIgb2YgcGl4ZWxzIGFsb25nIHRoZSBsaW5lIGRpbWVuc2lvbi4KKyogQHJldHVybiB0aGUgbnVtYmVyIG9mIHBpeGVscyBhbG9uZyB0aGUgbGluZSBkaW1lbnNpb24uCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbGluZUJvdW5kKCk7CisgICAgCisvKioKKyogRm9ybWF0IHRleHQgZG93biB0byBnaXZlbiBoZWlnaHQuCisqIEBwYXJhbSBoZWlnaHQgdGhlIGhlaWdodCB0byB3aGljaCB0ZXh0IHdpbGwgYmUgZm9ybWF0dGVkCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGZvcm1hdFRvSGVpZ2h0KGludCBoZWlnaHQpOworCisvKioKKyogUmVmb3JtYXQgdGV4dCBhZnRlciBhIGNoYW5nZS4KKyogQWZ0ZXIgdGhlIGZvcm1hdHRlcidzIHRleHQgY2hhbmdlcywgY2FsbCB0aGlzIG1ldGhvZCB0byByZWZvcm1hdC4gIERvZXMKKyogbm90IHJlZHJhdy4KKyogQHBhcmFtIGFmU3RhcnQgdGhlIG9mZnNldCBpbnRvIHRoZSB0ZXh0IHdoZXJlIG1vZGlmaWNhdGlvbiBiZWdhbjsgIGllLCB0aGUKKyogZmlyc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IHdoaWNoIGlzICJkaWZmZXJlbnQiIGluIHNvbWUgd2F5LiAgRG9lcyBub3QKKyogaGF2ZSB0byBiZSBub25uZWdhdGl2ZS4KKyogQHBhcmFtIGFmTGVuZ3RoIHRoZSBudW1iZXIgb2YgbmV3IG9yIGNoYW5nZWQgY2hhcmFjdGVycyBpbiB0aGUgdGV4dC4gIFNob3VsZCBuZXZlcgorKiBiZSBsZXNzIHRoYW4gMC4KKyogQHBhcmFtIHZpZXdSZWN0IHRoZSBSZWN0YW5nbGUgaW4gd2hpY2ggdGhlIHRleHQgd2lsbCBiZSBkaXNwbGF5ZWQuICBUaGlzIGlzIG5lZWRlZCBmb3IKKyogcmV0dXJuaW5nIHRoZSAiZGFtYWdlZCIgYXJlYSAtIHRoZSBhcmVhIG9mIHRoZSBzY3JlZW4gaW4gd2hpY2ggdGhlIHRleHQgbXVzdCBiZSByZWRyYXduLgorKiBAcGFyYW0gb3JpZ2luIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHRleHQsIGluIHRoZSBkaXNwbGF5J3MgY29vcmRpbmF0ZSBzeXN0ZW0KKyogQHJldHVybiBhIDx0dD5SZWN0YW5nbGU8L3R0PiB3aGljaCBzcGVjaWZpZXMgdGhlIGFyZWEgaW4gd2hpY2ggdGV4dCBtdXN0IGJlCisqIHJlZHJhd24gdG8gcmVmbGVjdCB0aGUgY2hhbmdlIHRvIHRoZSB0ZXh0LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgUmVjdGFuZ2xlIHVwZGF0ZUZvcm1hdChpbnQgYWZTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWZMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIHZpZXdSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50IG9yaWdpbik7CisKKworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbWluWSgpOworICAgIAorLyoqCisgKiBSZXR1cm4gdGhlIG1heGltdW0gdmVydGljYWwgY29vcmRpbmF0ZSBvZiB0aGUgZG9jdW1lbnQgYXJlYS4KKyAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbWF4WSgpOworCisgICAgcHVibGljIGFic3RyYWN0IGludCBtaW5YKCk7CisKKy8qKgorICogUmV0dXJuIHRoZSBtYXhpbXVtIGhvcml6b250YWwgY29vcmRpbmF0ZSBvZiB0aGUgZG9jdW1lbnQgYXJlYS4KKyAqLworICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgbWF4WCgpOworCisvKioKKyogUmV0dXJuIHRoZSBhY3R1YWwgcGl4ZWwgbGVuZ3RoIG9mIHRoZSB0ZXh0IHdoaWNoIGhhcyBiZWVuIGZvcm1hdHRlZC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBmb3JtYXR0ZWRIZWlnaHQoKTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgc2hvcnQgZVVwID0gLTEwLCBlRG93biA9IDEwLCBlTGVmdCA9IC0xLCBlUmlnaHQgPSAxOworCisvKioKKyogR2l2ZW4gYSBzY3JlZW4gbG9jYXRpb24gcCwgcmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIGNoYXJhY3RlciBpbiB0aGUgdGV4dCBuZWFyZXN0IHRvIHAuCisqCisqIFRoZSBvZmZzZXQgbWF5IG9yIG1heSBub3QgaW5jbHVkZSBhIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiBhIGxpbmUsIGRldGVybWluZWQgYnkgYW5jaG9yIGFuZCBpbmZpbml0ZU1vZGUuCisqIFRoZSBuZXdsaW5lIGlzIG5vdCBpbmNsdWRlZCBpZiBpbmZpbml0ZU1vZGUgaXMgdHJ1ZSBhbmQgdGhlIGFuY2hvciBpcyB0aGUgcG9zaXRpb24gYmVmb3JlIHRoZSBuZXdsaW5lLgorKgorKiBAcGFyYW0gcmVzdWx0IFRleHRPZmZzZXQgdG8gbW9kaWZ5IGFuZCByZXR1cm4uICBJZiBudWxsLCBvbmUgd2lsbCBiZSBhbGxvY2F0ZWQsIG1vZGlmaWVkLCBhbmQgcmV0dXJuZWQuCisqIEBwYXJhbSBweCB0aGUgeCBjb21wb25lbnQgb2YgdGhlIHBvaW50LgorKiBAcGFyYW0gcHkgdGhlIHkgY29tcG9uZW50IG9mIHRoZSBwb2ludC4KKyogQHBhcmFtIG9yaWdpbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSB0ZXh0LCBpbiB0aGUgZGlzcGxheSdzIGNvb3JkaW5hdGUgc3lzdGVtCisqIEBwYXJhbSBhbmNob3IgdGhlIHByZXZpb3VzIG9mZnNldC4gIE1heSBiZSBudWxsLiAgVXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciBuZXdsaW5lcyBhcmUgaW5jbHVkZWQuCisqIEBwYXJhbSBpbmZpbml0ZU1vZGUgaWYgdHJ1ZSwgdHJlYXQgbmV3bGluZXMgYXQgZW5kIG9mIGxpbmUgYXMgaGF2aW5nIGluZmluaXRlIHdpZHRoLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgVGV4dE9mZnNldCBwb2ludFRvVGV4dE9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwgaW50IHB4LCBpbnQgcHksIFBvaW50IG9yaWdpbiwgVGV4dE9mZnNldCBhbmNob3IsIGJvb2xlYW4gaW5maW5pdGVNb2RlKTsKKworLyoqCisqIEdpdmVuIGFuIG9mZnNldCwgcmV0dXJuIHRoZSBSZWN0YW5nbGUgYm91bmRpbmcgdGhlIGNhcmV0IGF0IHRoZSBvZmZzZXQuCisqIEBwYXJhbSBvZmZzZXQgYW4gb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHBhcmFtIG9yaWdpbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSB0ZXh0LCBpbiB0aGUgZGlzcGxheSdzIGNvb3JkaW5hdGUgc3lzdGVtCisqIEByZXR1cm4gYSBSZWN0YW5nbGUgYm91bmRpbmcgdGhlIGNhcmV0LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgUmVjdGFuZ2xlIGdldENhcmV0UmVjdChUZXh0T2Zmc2V0IG9mZnNldCwgUG9pbnQgb3JpZ2luKTsKKworLyoqCisqIERyYXcgdGhlIGNhcmV0KHMpIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gb2Zmc2V0IGludG8gdGhlIGdpdmVuIEdyYXBoaWNzLgorKiBAcGFyYW0gZyB0aGUgR3JhcGhpY3MgdG8gZHJhdyBpbnRvCisqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCBpbiB0aGUgdGV4dCBmb3Igd2hpY2ggdGhlIGNhcmV0IGlzIGRyYXduCisqIEBwYXJhbSBvcmlnaW4gdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgdGV4dCwgaW4gdGhlIGRpc3BsYXkncyBjb29yZGluYXRlIHN5c3RlbQorKiBAcGFyYW0gc3Ryb25nQ2FyZXRDb2xvciB0aGUgY29sb3Igb2YgdGhlIHN0cm9uZyBjYXJldAorKiBAcGFyYW0gd2Vha0NhcmV0Q29sb3IgdGhlIGNvbG9yIG9mIHRoZSB3ZWFrIGNhcmV0IChpZiBhbnkpCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGRyYXdDYXJldChHcmFwaGljcyBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnQgb3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciBzdHJvbmdDYXJldENvbG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciB3ZWFrQ2FyZXRDb2xvcik7CisKKyAgICAvKioKKyAgICAgKiBAc2VlICNnZXRCb3VuZGluZ1JlY3QKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gTE9PU0UgPSBmYWxzZTsKKyAgICAvKioKKyAgICAgKiBAc2VlICNnZXRCb3VuZGluZ1JlY3QKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gVElHSFQgPSB0cnVlOworCisvKioKKyogR2l2ZW4gdHdvIG9mZnNldHMgaW4gdGhlIHRleHQsIHJldHVybiBhIHJlY3RhbmdsZSB3aGljaCBlbmNsb3NlcyB0aGUgbGluZXMgY29udGFpbmluZyB0aGUgb2Zmc2V0cy4KKyogT2Zmc2V0cyBkbyBub3QgbmVlZCB0byBiZSBvcmRlcmVkIG9yIG5vbm5lZ2F0aXZlLgorKiBAcGFyYW0gb2Zmc2V0MSBhbiBvZmZzZXQgaW50byB0aGUgdGV4dAorKiBAcGFyYW0gb2Zmc2V0MiB0aGUgb3RoZXIgb2Zmc2V0IGludG8gdGhlIHRleHQKKyogQHBhcmFtIG9yaWdpbiB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSB0ZXh0LCBpbiB0aGUgZGlzcGxheSdzIGNvb3JkaW5hdGUgc3lzdGVtCisqIEBwYXJhbSB0aWdodCBpZiBlcXVhbCB0byBUSUdIVCwgdGhlIGJvdW5kcyBpcyBhcyBzbWFsbCBhcyBwb3NzaWJsZS4gIElmIExPT1NFLCB0aGUgd2lkdGgKKyogb2YgdGhlIGJvdW5kcyBpcyBhbGxvd2VkIHRvIGJlIHdpZGVyIHRoYW4gbmVjZXNhcnkuICBMb29zZSBib3VuZHMgYXJlIGVhc2llciB0byBjb21wdXRlLgorKiBAcmV0dXJuIGEgPHR0PlJlY3RhbmdsZTwvdHQ+LCByZWxhdGl2ZSB0byA8dHQ+b3JpZ2luPC90dD4sIHdoaWNoIGVuY2xvc2VzIHRoZSBsaW5lcyBjb250YWluaW5nIHRoZSBvZmZzZXRzCisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBSZWN0YW5nbGUgZ2V0Qm91bmRpbmdSZWN0KFRleHRPZmZzZXQgb2Zmc2V0MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvaW50IG9yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHRpZ2h0KTsKKworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldEJvdW5kaW5nUmVjdChSZWN0YW5nbGUgYm91bmRpbmdSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG9mZnNldDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgb2Zmc2V0MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnQgb3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHRpZ2h0KTsKKworLyoqCisqIENvbXB1dGUgdGhlIG9mZnNldCByZXN1bHRpbmcgZnJvbSBtb3ZpbmcgZnJvbSBhIHByZXZpb3VzIG9mZnNldCBpbiBkaXJlY3Rpb24gZGlyLgorKiBGb3IgYXJyb3cga2V5cy4KKyogQHBhcmFtIHByZXZpb3VzT2Zmc2V0IHRoZSBpbnNlcnRpb24gb2Zmc2V0IHByaW9yIHRvIHRoZSBhcnJvdyBrZXkgcHJlc3MKKyogQHBhcmFtIGRpcmVjdGlvbiB0aGUgZGlyZWN0aW9uIG9mIHRoZSBhcnJvdyBrZXkgKGVVcCwgZURvd24sIGVMZWZ0LCBvciBlUmlnaHQpCisqIEByZXR1cm4gbmV3IG9mZnNldCBiYXNlZCBvbiBkaXJlY3Rpb24gYW5kIHByZXZpb3VzIG9mZnNldC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IFRleHRPZmZzZXQgZmluZEluc2VydGlvbk9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgcHJldmlvdXNPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBkaXJlY3Rpb24pOworCisvKioKKyogQ29tcHV0ZSB0aGUgb2Zmc2V0IHJlc3VsdGluZyBmcm9tIG1vdmluZyBmcm9tIGEgcHJldmlvdXMgb2Zmc2V0LCBzdGFydGluZyBhdCBhbiBvcmlnaW5hbCBvZmZzZXQsIGluIGRpcmVjdGlvbiBkaXIuCisqIEZvciBhcnJvdyBrZXlzLiAgVXNlIHRoaXMgZm9yICJzbWFydCIgdXAvZG93biBrZXlzLgorKiBAcGFyYW0gcmVzdWx0IFRleHRPZmZzZXQgdG8gbW9kaWZ5IGFuZCByZXR1cm4uICBJZiBudWxsLCBhIG5ldyBUZXh0T2Zmc2V0IGlzIGNyZWF0ZWQsIG1vZGlmaWVkLCBhbmQgcmV0dXJuZWQuCisqIEBwYXJhbSBpbml0aWFsT2Zmc2V0IFRoZSBvZmZzZXQgYXQgd2hpY2ggYW4gdXAtZG93biBhcnJvdyBrZXkgc2VxdWVuY2UgYmVnYW4uCisqIEBwYXJhbSBwcmV2aW91c09mZnNldCBUaGUgaW5zZXJ0aW9uIG9mZnNldCBwcmlvciB0byB0aGUgYXJyb3cga2V5IHByZXNzLgorKiBAcGFyYW0gZGlyZWN0aW9uIFRoZSBkaXJlY3Rpb24gb2YgdGhlIGFycm93IGtleSAoZVVwLCBlRG93biwgZUxlZnQsIG9yIGVSaWdodCkKKyogQHJldHVybiBuZXcgb2Zmc2V0IGJhc2VkIG9uIGRpcmVjdGlvbiBhbmQgcHJldmlvdXMgb2Zmc2V0KHMpLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgVGV4dE9mZnNldCBmaW5kTmV3SW5zZXJ0aW9uT2Zmc2V0KFRleHRPZmZzZXQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBpbml0aWFsT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBwcmV2aW91c09mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0IGRpcmVjdGlvbik7CisKKy8qKgorKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIGdpdmVuIGNoYXJhY3RlciBpbmRleC4KKyogVGhpcyBtZXRob2QgaGFzIGNvbXBsaWNhdGVkIHNlbWFudGljcywgYXJpc2luZyBmcm9tIG5vdCBrbm93aW5nIAorKiB3aGljaCBzaWRlIG9mIHRoZSBpbmRleCB0byBjaGVjay4gIFRoZSBpbmRleCB3aWxsIGJlIGdpdmVuIGFuCisqIGltcGxpY2l0IEFGVEVSIGJpYXMsIHVubGVzcyB0aGUgaW5kZXggaXMgdGhlIGxhc3QgaW5kZXggaW4gdGhlIHRleHQsCisqIHRoZSB0ZXh0IGxlbmd0aCBpcyBub24temVybywgYW5kIHRoZXJlIGlzIG5vdCBhIHBhcmFncmFwaCBzZXBhcmF0b3IKKyogYXQgdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsaW5lQ29udGFpbmluZyhpbnQgaW5kZXgpOworICAgIAorLyoqCisqIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIGxpbmUgY29udGFpbmluZyB0aGUgZ2l2ZW4gb2Zmc2V0LgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGxpbmVDb250YWluaW5nKFRleHRPZmZzZXQgb2Zmc2V0KTsKKworLyoqCisqIFJldHVybiB0aGUgbnVtYmVyIG9mIGxpbmVzLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldExpbmVDb3VudCgpOworCisvKioKKyogUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9uIHRoZSBnaXZlbiBsaW5lLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGxpbmVSYW5nZUxvdyhpbnQgbGluZU51bWJlcik7CisKKy8qKgorKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBnaXZlbiBsaW5lLgorKi8KKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGxpbmVSYW5nZUxpbWl0KGludCBsaW5lTnVtYmVyKTsKKworLyoqCisqIFRlbGxzIHRoZSBmb3JtYXR0ZXIgdG8gc3RvcCBhY2Nlc3NpbmcgdGhlIHRleHQgdW50aWwgdXBkYXRlRm9ybWF0IGlzIGNhbGxlZC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IHZvaWQgc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisKKy8qKgorKiBSZXR1cm4gdGhlIGxpbmUgbnVtYmVyIGF0IHRoZSBnaXZlbiBncmFwaGljIGhlaWdodC4gIElmIGhlaWdodCBpcyBncmVhdGVyIHRoYW4KKyogdGhlIHRleHQgaGVpZ2h0LCBtYXhMaW5lTnVtYmVyICsgMSBpcyByZXR1cm5lZC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsaW5lQXRIZWlnaHQoaW50IGhlaWdodCk7CisKKy8qKgorKiBSZXR1cm4gdGhlIGdyYXBoaWMgaGVpZ2h0IHdoZXJlIHRoZSBnaXZlbiBsaW5lIGJlZ2lucy4gIElmIHRoZSBsaW5lTnVtYmVyIGlzCisqIG1heExpbmVOdW1iZXIgdGhlIGVudGlyZSB0ZXh0IGhlaWdodCBpcyByZXR1cm5lZC4KKyovCisgICAgcHVibGljIGFic3RyYWN0IGludCBsaW5lR3JhcGhpY1N0YXJ0KGludCBsaW5lTnVtYmVyKTsKKworLyoqCisqIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBsaW5lIGlzIGxlZnQtdG8tcmlnaHQuCisqIEBwYXJhbSBsaW5lTnVtYmVyIGEgdmFsaWQgbGluZQorKiBAcmV0dXJuIHRydWUgaWYgbGluZU51bWJlciBpcyBsZWZ0LXRvLXJpZ2h0CisqLworICAgIHB1YmxpYyBhYnN0cmFjdCBib29sZWFuIGxpbmVJc0xlZnRUb1JpZ2h0KGludCBsaW5lTnVtYmVyKTsKKworLyoqCisqIFJldHVybiBhIG5ldyA8dHQ+TUZvcm1hdHRlcjwvdHQ+LgorKiBAcGFyYW0gdGV4dCB0aGUgdGV4dCB0byBmb3JtYXQKKyogQHBhcmFtIGRlZmF1bHRWYWx1ZXMgdmFsdWVzIHRvIHVzZSB3aGVuIGNlcnRhaW4gYXR0cmlidXRlcyBhcmUgbm90IHNwZWNpZmllZC4gCisqICAgIDx0dD5kZWZhdWx0VmFsdWVzPC90dD4gbXVzdCBjb250YWluIHZhbHVlcyBmb3IgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOgorKiAgICA8dHQ+RkFNSUxZPC90dD4sIDx0dD5XRUlHSFQ8L3R0PiwgPHR0PlBPU1RVUkU8L3R0PiwgPHR0PlNJWkU8L3R0PiwgPHR0PlNVUEVSU0NSSVBUPC90dD4sIAorKiAgICA8dHQ+Rk9SRUdST1VORDwvdHQ+LCA8dHQ+VU5ERVJMSU5FPC90dD4sIDx0dD5TVFJJS0VUSFJPVUdIPC90dD4sCisqICAgIDx0dD5FWFRSQV9MSU5FX1NQQUNJTkc8L3R0PiwgPHR0PkZJUlNUX0xJTkVfSU5ERU5UPC90dD4sPHR0Pk1JTl9MSU5FX1NQQUNJTkc8L3R0PiwKKyogICAgPHR0PkxJTkVfRkxVU0g8L3R0PiwgPHR0PkxFQURJTkdfTUFSR0lOPC90dD4sIDx0dD5UUkFJTElOR19NQVJHSU48L3R0PiwgPHR0PlRBQl9SVUxFUjwvdHQ+CisqIEBwYXJhbSBsaW5lQm91bmQgbGVuZ3RoIHRvIHdoaWNoIGxpbmVzIGFyZSBmb3JtYXR0ZWQKKyogQHBhcmFtIHdyYXAgPHR0PnRydWU8L3R0PiBpZiB0ZXh0IHNob3VsZCBiZSAibGluZSB3cmFwcGVkIiAoZm9ybWF0dGVkIHRvIGZpdCBkZXN0aW5hdGlvbiBhcmVhKQorKi8KKyAgICBwdWJsaWMgc3RhdGljIE1Gb3JtYXR0ZXIgY3JlYXRlRm9ybWF0dGVyKE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0VmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVCb3VuZCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHdyYXAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MgZykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgQXN5bmNGb3JtYXR0ZXIodGV4dCwgZGVmYXVsdFZhbHVlcywgbGluZUJvdW5kLCB3cmFwLCBnKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L01UZXh0SXRlcmF0b3IuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvTVRleHRJdGVyYXRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEyMWQxZDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L01UZXh0SXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDQwMiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGphdmEudGV4dC5DaGFyYWN0ZXJJdGVyYXRvcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworLy8vKkpESzEySU1QT1JUUworaW1wb3J0IGphdmEudGV4dC5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworLy9KREsxMklNUE9SVFMqLworCisvKkpESzExSU1QT1JUUworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IuQXR0cmlidXRlOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLk1hcDsKK0pESzExSU1QT1JUUyovCisKKy8qKgorICogQW4gQXR0cmlidXRlZENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgYW4gTUNvbnN0VGV4dC4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIE1UZXh0SXRlcmF0b3IgaW1wbGVtZW50cyBBdHRyaWJ1dGVkQ2hhcmFjdGVySXRlcmF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsb25lYWJsZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8vIG1lbW9yeSBsZWFrLCBzaW5jZSB0aGlzIGNhY2hlIGlzIG5ldmVyIGZsdXNoZWQKKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIE1hdGNoZXIgeworICAgICAgICAKKyAgICAgICAgYm9vbGVhbiBtYXRjaGVzKE1hcCBsaHMsIE1hcCByaHMsIE9iamVjdCBxdWVyeSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBPYmplY3QgbGhzVmFsID0gbGhzLmdldChxdWVyeSk7CisgICAgICAgICAgICBPYmplY3QgcmhzVmFsID0gcmhzLmdldChxdWVyeSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsaHNWYWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiByaHNWYWwgPT0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBsaHNWYWwuZXF1YWxzKHJoc1ZhbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTWF0Y2hlciBBVFRSX01BVENIRVIgPSBuZXcgTWF0Y2hlcigpOworICAgIAorICAgIC8vIE5vdCBxdWl0ZSBvcHRpbWFsLiAgQ291bGQgaGF2ZSBhIG1hdGNoZXIgdGhhdCB3b3VsZCBkZWNvbXBvc2UKKyAgICAvLyBhIHNldCBvbmNlIGZvciByZXBlYXRlZCBxdWVyaWVzLiAgT2YgY291cnNlIHRoYXQgd291bGQgcmVxdWlyZQorICAgIC8vIGFsbG9jYXRpb24uLi4KKy8vLypKREsxMklNUE9SVFMKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBNYXRjaGVyIFNFVF9NQVRDSEVSID0gbmV3IE1hdGNoZXIoKSB7CisgICAgICAgIAorICAgICAgICBib29sZWFuIG1hdGNoZXMoTWFwIGxocywgTWFwIHJocywgT2JqZWN0IHF1ZXJ5KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE5vdCB1c2luZyBJdGVyYXRvciB0byBzaW1wbGlmeSAxLjEgcG9ydC4KKyAgICAgICAgICAgIE9iamVjdFtdIGVsZW1lbnRzID0gKChTZXQpcXVlcnkpLnRvQXJyYXkoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFzdXBlci5tYXRjaGVzKGxocywgcmhzLCBlbGVtZW50c1tpXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfTsKKy8vSkRLMTJJTVBPUlRTKi8KKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIGNsYXNzIFN0eWxlQ2FjaGUgeworCisgICAgICAgIHByaXZhdGUgaW50IGZSdW5TdGFydCA9IDA7CisgICAgICAgIHByaXZhdGUgaW50IGZSdW5MaW1pdCA9IC0xOworICAgICAgICBwcml2YXRlIGludCBmUmFuZ2VTdGFydDsKKyAgICAgICAgcHJpdmF0ZSBpbnQgZlJhbmdlTGltaXQ7CisgICAgICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZTdHlsZTsKKworICAgICAgICBTdHlsZUNhY2hlKE1Db25zdFRleHQgdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGltaXQpIHsKKyAgICAgICAgICAgIGZUZXh0ID0gdGV4dDsKKyAgICAgICAgICAgIGZSYW5nZVN0YXJ0ID0gc3RhcnQ7CisgICAgICAgICAgICBmUmFuZ2VMaW1pdCA9IGxpbWl0OworICAgICAgICAgICAgdXBkYXRlKHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCB1cGRhdGUoaW50IHBvcykgeworICAgICAgICAgICAgaWYgKHBvcyA8IGZSdW5TdGFydCB8fCBwb3MgPj0gZlJ1bkxpbWl0KSB7CisgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVA7CisgICAgICAgICAgICAgICAgaWYgKHBvcyA8IGZSYW5nZVN0YXJ0KSB7CisgICAgICAgICAgICAgICAgICAgIGZSdW5MaW1pdCA9IGZSYW5nZVN0YXJ0OworICAgICAgICAgICAgICAgICAgICBmUnVuU3RhcnQgPSBJbnRlZ2VyLk1JTl9WQUxVRTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAocG9zID4gZlJhbmdlTGltaXQpIHsKKyAgICAgICAgICAgICAgICAgICAgZlJ1blN0YXJ0ID0gZlJhbmdlTGltaXQ7CisgICAgICAgICAgICAgICAgICAgIGZSdW5MaW1pdCA9IEludGVnZXIuTUFYX1ZBTFVFOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZlJ1blN0YXJ0ID0gTWF0aC5tYXgoZlJhbmdlU3RhcnQsIGZUZXh0LmNoYXJhY3RlclN0eWxlU3RhcnQocG9zKSk7CisgICAgICAgICAgICAgICAgICAgIGZSdW5TdGFydCA9IE1hdGgubWF4KGZSdW5TdGFydCwgZlRleHQucGFyYWdyYXBoU3RhcnQocG9zKSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBmUnVuTGltaXQgPSBNYXRoLm1pbihmUmFuZ2VMaW1pdCwgZlRleHQuY2hhcmFjdGVyU3R5bGVMaW1pdChwb3MpKTsKKyAgICAgICAgICAgICAgICAgICAgZlJ1bkxpbWl0ID0gTWF0aC5taW4oZlJ1bkxpbWl0LCBmVGV4dC5wYXJhZ3JhcGhMaW1pdChwb3MpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZSdW5TdGFydCA8IGZSdW5MaW1pdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUgPSBmVGV4dC5wYXJhZ3JhcGhTdHlsZUF0KHBvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSA9IHN0eWxlLmFkZEF0dHJpYnV0ZXMoZlRleHQuY2hhcmFjdGVyU3R5bGVBdChwb3MpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmU3R5bGUgPSBmRm9udFJlc29sdmVyLmFwcGx5Rm9udChzdHlsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpbnQgZ2V0UnVuU3RhcnQoaW50IHBvcykgeworICAgICAgICAgICAgdXBkYXRlKHBvcyk7CisgICAgICAgICAgICByZXR1cm4gZlJ1blN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgaW50IGdldFJ1bkxpbWl0KGludCBwb3MpIHsKKyAgICAgICAgICAgIHVwZGF0ZShwb3MpOworICAgICAgICAgICAgcmV0dXJuIGZSdW5MaW1pdDsKKyAgICAgICAgfQorCisgICAgICAgIE1hcCBnZXRTdHlsZShpbnQgcG9zKSB7CisgICAgICAgICAgICB1cGRhdGUocG9zKTsKKyAgICAgICAgICAgIHJldHVybiBmU3R5bGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIE1Db25zdFRleHQgZlRleHQ7CisgICAgcHJpdmF0ZSBDaGFyYWN0ZXJJdGVyYXRvciBmQ2hhckl0ZXI7CisgICAgcHJpdmF0ZSBGb250UmVzb2x2ZXIgZkZvbnRSZXNvbHZlcjsKKyAgICAKKyAgICBwcml2YXRlIFN0eWxlQ2FjaGUgZlN0eWxlQ2FjaGU7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gTVRleHRJdGVyYXRvciBvdmVyIHRoZSByYW5nZSBbc3RhcnQsIGxpbWl0KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgTVRleHRJdGVyYXRvcihNQ29uc3RUZXh0IHRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRSZXNvbHZlciByZXNvbHZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCkgeworCisgICAgICAgIGZUZXh0ID0gdGV4dDsKKyAgICAgICAgZkZvbnRSZXNvbHZlciA9IHJlc29sdmVyOworICAgICAgICBmQ2hhckl0ZXIgPSB0ZXh0LmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKHN0YXJ0LCBsaW1pdCk7CisKKyAgICAgICAgZlN0eWxlQ2FjaGUgPSBuZXcgU3R5bGVDYWNoZSh0ZXh0LCBzdGFydCwgbGltaXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBvc2l0aW9uIHRvIGdldEJlZ2luSW5kZXgoKSBhbmQgcmV0dXJucyB0aGUgY2hhcmFjdGVyIGF0IHRoYXQKKyAgICAgKiBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQsIG9yIERPTkUgaWYgdGhlIHRleHQgaXMgZW1wdHkKKyAgICAgKiBAc2VlICNnZXRCZWdpbkluZGV4CisgICAgICovCisgICAgcHVibGljIGNoYXIgZmlyc3QoKSB7CisgICAgICAgIHJldHVybiBmQ2hhckl0ZXIuZmlyc3QoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiB0byBnZXRFbmRJbmRleCgpLTEgKGdldEVuZEluZGV4KCkgaWYgdGhlIHRleHQgaXMgZW1wdHkpCisgICAgICogYW5kIHJldHVybnMgdGhlIGNoYXJhY3RlciBhdCB0aGF0IHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0LCBvciBET05FIGlmIHRoZSB0ZXh0IGlzIGVtcHR5CisgICAgICogQHNlZSAjZ2V0RW5kSW5kZXgKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBsYXN0KCkgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLmxhc3QoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gKGFzIHJldHVybmVkIGJ5IGdldEluZGV4KCkpLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCB0aGUgY3VycmVudCBwb3NpdGlvbiBvciBET05FIGlmIHRoZSBjdXJyZW50CisgICAgICogcG9zaXRpb24gaXMgb2ZmIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHNlZSAjZ2V0SW5kZXgKKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBjdXJyZW50KCkgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLmN1cnJlbnQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbmNyZW1lbnRzIHRoZSBpdGVyYXRvcidzIGluZGV4IGJ5IG9uZSBhbmQgcmV0dXJucyB0aGUgY2hhcmFjdGVyCisgICAgICogYXQgdGhlIG5ldyBpbmRleC4gIElmIHRoZSByZXN1bHRpbmcgaW5kZXggaXMgZ3JlYXRlciBvciBlcXVhbAorICAgICAqIHRvIGdldEVuZEluZGV4KCksIHRoZSBjdXJyZW50IGluZGV4IGlzIHJlc2V0IHRvIGdldEVuZEluZGV4KCkgYW5kCisgICAgICogYSB2YWx1ZSBvZiBET05FIGlzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gdGhlIGNoYXJhY3RlciBhdCB0aGUgbmV3IHBvc2l0aW9uIG9yIERPTkUgaWYgdGhlIG5ldworICAgICAqIHBvc2l0aW9uIGlzIG9mZiB0aGUgZW5kIG9mIHRoZSB0ZXh0IHJhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBjaGFyIG5leHQoKSB7CisgICAgICAgIHJldHVybiBmQ2hhckl0ZXIubmV4dCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERlY3JlbWVudHMgdGhlIGl0ZXJhdG9yJ3MgaW5kZXggYnkgb25lIGFuZCByZXR1cm5zIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiBhdCB0aGUgbmV3IGluZGV4LiBJZiB0aGUgY3VycmVudCBpbmRleCBpcyBnZXRCZWdpbkluZGV4KCksIHRoZSBpbmRleAorICAgICAqIHJlbWFpbnMgYXQgZ2V0QmVnaW5JbmRleCgpIGFuZCBhIHZhbHVlIG9mIERPTkUgaXMgcmV0dXJuZWQuCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBuZXcgcG9zaXRpb24gb3IgRE9ORSBpZiB0aGUgY3VycmVudAorICAgICAqIHBvc2l0aW9uIGlzIGVxdWFsIHRvIGdldEJlZ2luSW5kZXgoKS4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2hhciBwcmV2aW91cygpIHsKKyAgICAgICAgcmV0dXJuIGZDaGFySXRlci5wcmV2aW91cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBvc2l0aW9uIHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhlIHRleHQgYW5kIHJldHVybnMgdGhhdAorICAgICAqIGNoYXJhY3Rlci4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgdGV4dC4gIFZhbGlkIHZhbHVlcyByYW5nZSBmcm9tCisgICAgICogZ2V0QmVnaW5JbmRleCgpIHRvIGdldEVuZEluZGV4KCkuICBBbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaXMgdGhyb3duCisgICAgICogaWYgYW4gaW52YWxpZCB2YWx1ZSBpcyBzdXBwbGllZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBvciBET05FIGlmIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaXMgZXF1YWwgdG8gZ2V0RW5kSW5kZXgoKQorICAgICAqLworICAgIHB1YmxpYyBjaGFyIHNldEluZGV4KGludCBwb3NpdGlvbikgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLnNldEluZGV4KHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzdGFydCBpbmRleCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRoZSBpbmRleCBhdCB3aGljaCB0aGUgdGV4dCBiZWdpbnMuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRCZWdpbkluZGV4KCkgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLmdldEJlZ2luSW5kZXgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBlbmQgaW5kZXggb2YgdGhlIHRleHQuICBUaGlzIGluZGV4IGlzIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QKKyAgICAgKiBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiB0aGUgaW5kZXggYWZ0ZXIgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0CisgICAgICovCisgICAgcHVibGljIGludCBnZXRFbmRJbmRleCgpIHsKKyAgICAgICAgcmV0dXJuIGZDaGFySXRlci5nZXRFbmRJbmRleCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgaW5kZXguCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBpbmRleC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEluZGV4KCkgeworICAgICAgICByZXR1cm4gZkNoYXJJdGVyLmdldEluZGV4KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgcnVuCisgICAgICogd2l0aCByZXNwZWN0IHRvIGFsbCBhdHRyaWJ1dGVzIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UnVuU3RhcnQoKSB7CisgICAgICAgIHJldHVybiBmU3R5bGVDYWNoZS5nZXRSdW5TdGFydChmQ2hhckl0ZXIuZ2V0SW5kZXgoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgcnVuCisgICAgICogd2l0aCByZXNwZWN0IHRvIHRoZSBnaXZlbiBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSdW5TdGFydChPYmplY3QgYXR0cmlidXRlKSB7CisKKyAgICAgICAgcmV0dXJuIGdldFJ1blN0YXJ0KGF0dHJpYnV0ZSwgQVRUUl9NQVRDSEVSKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBydW4KKyAgICAgKiB3aXRoIHJlc3BlY3QgdG8gdGhlIGdpdmVuIGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKi8KKy8vLypKREsxMklNUE9SVFMKKyAgICBwdWJsaWMgaW50IGdldFJ1blN0YXJ0KEF0dHJpYnV0ZSBhdHRyaWJ1dGUpIHsKKworICAgICAgICByZXR1cm4gZ2V0UnVuU3RhcnQoYXR0cmlidXRlLCBBVFRSX01BVENIRVIpOworICAgIH0KKy8vSkRLMTJJTVBPUlRTKi8KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHJ1bgorICAgICAqIHdpdGggcmVzcGVjdCB0byB0aGUgZ2l2ZW4gYXR0cmlidXRlcyBjb250YWluaW5nIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKi8KKy8vLypKREsxMklNUE9SVFMKKyAgICBwdWJsaWMgaW50IGdldFJ1blN0YXJ0KFNldCBhdHRyaWJ1dGVzKSB7CisKKyAgICAgICAgcmV0dXJuIGdldFJ1blN0YXJ0KGF0dHJpYnV0ZXMsIFNFVF9NQVRDSEVSKTsKKyAgICB9CisvL0pESzEySU1QT1JUUyovCisgICAgCisgICAgcHJpdmF0ZSBpbnQgZ2V0UnVuU3RhcnQoT2JqZWN0IHF1ZXJ5LCBNYXRjaGVyIG1hdGNoZXIpIHsKKworICAgICAgICBpbnQgcnVuU3RhcnQgPSBnZXRSdW5TdGFydCgpOworICAgICAgICBpbnQgcmFuZ2VTdGFydCA9IGdldEJlZ2luSW5kZXgoKTsKKyAgICAgICAgTWFwIGluaXRpYWxTdHlsZSA9IGdldEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgCisgICAgICAgIHdoaWxlIChydW5TdGFydCA+IHJhbmdlU3RhcnQpIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IGZUZXh0LmNoYXJhY3RlclN0eWxlQXQocnVuU3RhcnQtMSk7CisgICAgICAgICAgICBpZiAoIW1hdGNoZXIubWF0Y2hlcyhpbml0aWFsU3R5bGUsIHN0eWxlLCBxdWVyeSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcnVuU3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBydW5TdGFydCA9IGZUZXh0LmNoYXJhY3RlclN0eWxlU3RhcnQocnVuU3RhcnQtMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJhbmdlU3RhcnQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBydW4KKyAgICAgKiB3aXRoIHJlc3BlY3QgdG8gYWxsIGF0dHJpYnV0ZXMgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSdW5MaW1pdCgpIHsKKyAgICAgICAgcmV0dXJuIGZTdHlsZUNhY2hlLmdldFJ1bkxpbWl0KGZDaGFySXRlci5nZXRJbmRleCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgcnVuCisgICAgICogd2l0aCByZXNwZWN0IHRvIHRoZSBnaXZlbiBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuCisgICAgICovCisgICAgcHVibGljIGludCBnZXRSdW5MaW1pdChPYmplY3QgYXR0cmlidXRlKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZ2V0UnVuTGltaXQoYXR0cmlidXRlLCBBVFRSX01BVENIRVIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgZm9sbG93aW5nIHRoZSBydW4KKyAgICAgKiB3aXRoIHJlc3BlY3QgdG8gdGhlIGdpdmVuIGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKi8KKy8vLypKREsxMklNUE9SVFMKKyAgICBwdWJsaWMgaW50IGdldFJ1bkxpbWl0KEF0dHJpYnV0ZSBhdHRyaWJ1dGUpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBnZXRSdW5MaW1pdChhdHRyaWJ1dGUsIEFUVFJfTUFUQ0hFUik7CisgICAgfQorLy9KREsxMklNUE9SVFMqLworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlciBmb2xsb3dpbmcgdGhlIHJ1bgorICAgICAqIHdpdGggcmVzcGVjdCB0byB0aGUgZ2l2ZW4gYXR0cmlidXRlcyBjb250YWluaW5nIHRoZSBjdXJyZW50IGNoYXJhY3Rlci4KKyAgICAgKi8KKy8vLypKREsxMklNUE9SVFMKKyAgICBwdWJsaWMgaW50IGdldFJ1bkxpbWl0KFNldCBhdHRyaWJ1dGVzKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZ2V0UnVuTGltaXQoYXR0cmlidXRlcywgU0VUX01BVENIRVIpOworICAgIH0KKy8vSkRLMTJJTVBPUlRTKi8KKworICAgIHByaXZhdGUgaW50IGdldFJ1bkxpbWl0KE9iamVjdCBxdWVyeSwgTWF0Y2hlciBtYXRjaGVyKSB7CisKKyAgICAgICAgaW50IHJ1bkxpbWl0ID0gZ2V0UnVuTGltaXQoKTsKKyAgICAgICAgaW50IHJhbmdlTGltaXQgPSBnZXRFbmRJbmRleCgpOworICAgICAgICBNYXAgaW5pdGlhbFN0eWxlID0gZ2V0QXR0cmlidXRlcygpOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKHJ1bkxpbWl0IDwgcmFuZ2VMaW1pdCkgeworICAgICAgICAgICAgQXR0cmlidXRlTWFwIHN0eWxlID0gZlRleHQuY2hhcmFjdGVyU3R5bGVBdChydW5MaW1pdCk7CisgICAgICAgICAgICBpZiAoIW1hdGNoZXIubWF0Y2hlcyhpbml0aWFsU3R5bGUsIHN0eWxlLCBxdWVyeSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcnVuTGltaXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBydW5MaW1pdCA9IGZUZXh0LmNoYXJhY3RlclN0eWxlTGltaXQocnVuTGltaXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByYW5nZUxpbWl0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbWFwIHdpdGggdGhlIGF0dHJpYnV0ZXMgZGVmaW5lZCBvbiB0aGUgY3VycmVudAorICAgICAqIGNoYXJhY3Rlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgTWFwIGdldEF0dHJpYnV0ZXMoKSB7CisgICAgICAgIHJldHVybiBmU3R5bGVDYWNoZS5nZXRTdHlsZShmQ2hhckl0ZXIuZ2V0SW5kZXgoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIG5hbWVkIGF0dHJpYnV0ZSBmb3IgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAqIFJldHVybnMgbnVsbCBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBkZWZpbmVkLgorICAgICAqIEBwYXJhbSBhdHRyaWJ1dGUgdGhlIGtleSBvZiB0aGUgYXR0cmlidXRlIHdob3NlIHZhbHVlIGlzIHJlcXVlc3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldEF0dHJpYnV0ZShPYmplY3QgYXR0cmlidXRlKSB7CisgICAgICAgIHJldHVybiBnZXRBdHRyaWJ1dGVzKCkuZ2V0KGF0dHJpYnV0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIG5hbWVkIGF0dHJpYnV0ZSBmb3IgdGhlIGN1cnJlbnQgY2hhcmFjdGVyLgorICAgICAqIFJldHVybnMgbnVsbCBpZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBkZWZpbmVkLgorICAgICAqIEBwYXJhbSBhdHRyaWJ1dGUgdGhlIGtleSBvZiB0aGUgYXR0cmlidXRlIHdob3NlIHZhbHVlIGlzIHJlcXVlc3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldEF0dHJpYnV0ZShBdHRyaWJ1dGUgYXR0cmlidXRlKSB7CisgICAgICAgIHJldHVybiBnZXRBdHRyaWJ1dGVzKCkuZ2V0KGF0dHJpYnV0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUga2V5cyBvZiBhbGwgYXR0cmlidXRlcyBkZWZpbmVkIG9uIHRoZQorICAgICAqIGl0ZXJhdG9yJ3MgdGV4dCByYW5nZS4gVGhlIHNldCBpcyBlbXB0eSBpZiBubworICAgICAqIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQuCisgICAgICovCisvLy8qSkRLMTJJTVBPUlRTCisgICAgcHVibGljIFNldCBnZXRBbGxBdHRyaWJ1dGVLZXlzKCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkltcGxlbWVudCB0aGlzIG1ldGhvZCEiKTsKKyAgICB9CisvL0pESzEySU1QT1JUUyovCisKKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworICAgICAgICByZXR1cm4gbmV3IE1UZXh0SXRlcmF0b3IoZlRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRm9udFJlc29sdmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0QmVnaW5JbmRleCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RW5kSW5kZXgoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9QYXJhZ3JhcGhSZW5kZXJlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGZvcm1hdC9QYXJhZ3JhcGhSZW5kZXJlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyYjgwMGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1BhcmFncmFwaFJlbmRlcmVyLmphdmEKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCisKKy8vLypKREsxMklNUE9SVFMKK2ltcG9ydCBqYXZhLmF3dC5mb250LkZvbnRSZW5kZXJDb250ZXh0OworaW1wb3J0IGphdmEuYXd0LmZvbnQuTGluZUJyZWFrTWVhc3VyZXI7CisvL0pESzEySU1QT1JUUyovCisKKy8qSkRLMTFJTVBPUlRTCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LkZvbnRSZW5kZXJDb250ZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5MaW5lQnJlYWtNZWFzdXJlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuR3JhcGhpY3MyRDsKK0pESzExSU1QT1JUUyovCisKKy8qKgorICogUGFyYWdyYXBoUmVuZGVyZXIgaXMgYSBmYWN0b3J5IGZvciBMYXlvdXRJbmZvIG9iamVjdHMuCisgKi8KK2Fic3RyYWN0IGNsYXNzIFBhcmFncmFwaFJlbmRlcmVyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLy8gSWYgcmVuZGVyZXJzIGNhbiBldmVyIHRyYXZlbCB3aXRoIHRoZWlyIHN0eWxlcywgdGhlbiB0aGlzIGF0dHJpYnV0ZSB3aWxsIGRlbm90ZSBhCisgICAgLy8gcmVuZGVyZXIuICBGb3Igbm93LCByZW5kZXJlcnMgYXJlIG5vdCBhZGRlZCBhcyBzdHlsZXMgc28gdGhpcyBpc24ndCBuZWVkZWQuCisgICAgLy9zdGF0aWMgZmluYWwgVGV4dEF0dHJpYnV0ZSBQQVJBR1JBUEhfUkVOREVSRVIgPSBuZXcgVGV4dEF0dHJpYnV0ZSgiUGFyYWdyYXBoX1JlbmRlcmVyIikge307CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgcmVuZGVyZXIgdG8gdXNlIGluZm9ybWF0aW9uIGZyb20gdGhpcyBzdHlsZS4gU2luY2UgcmVuZGVyZXJzIG1heSBiZSBzaGFyZWQsIHlvdSBzaG91bGQKKyAgICAgKiBtYWtlIHN1cmUgdGhlIHJlbmRlcmVyIGlzIGluaXRpYWxpemVkIGZvciB0aGUgc3R5bGUgeW91IHdpc2ggdG8gcmVuZGVyIGJlZm9yZSB5b3UgdXNlIGl0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGluaXRSZW5kZXJlcihBdHRyaWJ1dGVNYXAgcFN0eWxlKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgTGF5b3V0SW5mbyBmb3IgdGhlIHBhcmFncmFwaCByZXByZXNlbnRlZCBieQorICAgICAqIG1lYXN1cmVyLgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IGNvbnRhaW5pbmcgdGhlIHBhcmFncmFwaAorICAgICAqIEBwYXJhbSBsYXlvdXRUb1JldXNlIGNsaWVudHMgY2FuIHBhc3MgaW4gYSBMYXlvdXRJbmZvCisgICAgICogd2hpY2ggdGhlIFBhcmFncmFwaFJlbmRlcmVyIG1heSBjaG9vc2UgdG8gcmV1c2UKKyAgICAgKiBhbmQgcmV0dXJuLiAgSWYgbnVsbCwgYSBuZXcgTGF5b3V0SW5mbyB3aWxsIGJlCisgICAgICogY3JlYXRlZCBhbmQgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIG1lYXN1cmVyIHRoZSBMaW5lQnJlYWtNZWFzdXJlciBmb3IgdGhpcyBwYXJhZ3JhcGguCisgICAgICogIEN1cnJlbnQgcG9zaXRpb24gc2hvdWxkIGJlIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb24gdGhlIGxpbmUuCisgICAgICogIElmIG51bGwsIGEgMC1sZW5ndGggbGluZSBpcyBnZW5lcmF0ZWQuICBJZiBtZWFzdXJlciBpcyBudWxsCisgICAgICogIHRoZW4gcGFyYWdyYXBoU3RhcnQgYW5kIHBhcmFncmFwaExpbWl0IHNob3VsZCBiZSBlcXVhbC4KKyAgICAgKiBAcGFyYW0gZnJjIHRoZSBGb250UmVuZGVyQ29udGV4dCB1c2VkIGZvciBtZWFzdXJlcm1lbnQKKyAgICAgKiBAcGFyYW0gcGFyYWdyYXBoU3RhcnQgdGhlIGluZGV4IGluIHRoZSB0ZXh0IHdoZXJlIHRoZQorICAgICAqIGN1cnJlbnQgcGFyYWdyYXBoIGJlZ2lucworICAgICAqIEBwYXJhbSBwYXJhZ3JhcGhMaW1pdCB0aGUgaW5kZXggb2YgdGhlIGZpcnN0IGNoYXJhY3RlcgorICAgICAqIGFmdGVyIHRoZSBjdXJyZW50IHBhcmFncmFwaAorICAgICAqIEBwYXJhbSB0b3RhbEZvcm1hdFdpZHRoIHRoZSB3aWR0aCBpbiB3aGljaCB0aGUgbGluZSBzaG91bGQgZml0CisgICAgICogQHBhcmFtIGxpbmVCb3VuZCB3aGVyZSByaWdodC1hbGlnbmVkIGxpbmVzIGFyZSBhbGlnbmVkCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IExheW91dEluZm8gbGF5b3V0KE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF5b3V0SW5mbyBsYXlvdXRUb1JldXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5lQnJlYWtNZWFzdXJlciBtZWFzdXJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9udFJlbmRlckNvbnRleHQgZnJjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFyYWdyYXBoU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwYXJhZ3JhcGhMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRvdGFsRm9ybWF0V2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5lQm91bmQpOworCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1Rlc3RNVGV4dEl0ZXJhdG9yLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1Rlc3RNVGV4dEl0ZXJhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmFmNjc2YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvVGVzdE1UZXh0SXRlcmF0b3IuamF2YQpAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsOworCisvKioKKyAqIFRlc3QgZm9yIE1UZXh0SXRlcmF0b3IuCisgKi8KK2NsYXNzIFRlc3RNVGV4dEl0ZXJhdG9yIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgRm9udFJlc29sdmVyIEZPTlRfTUFQUEVSOworICAgIHN0YXRpYyB7CisgICAgICAgIEF0dHJpYnV0ZU1hcCBhdHRycyA9IFRleHRQYW5lbC5nZXREZWZhdWx0U2V0dGluZ3MoKS5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgICAgIEZPTlRfTUFQUEVSID0gbmV3IEZvbnRSZXNvbHZlcihhdHRycyk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGNvbXBhcmVJdGVyVG9UZXh0KE1UZXh0SXRlcmF0b3IgaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCB0ZXh0KSB7CisKKyAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIlRleHQ6ICIgKyB0ZXh0KTsKKyAgICAgICAgZmluYWwgaW50IGJlZ2luSW5kZXggPSBpdGVyLmdldEJlZ2luSW5kZXgoKTsKKyAgICAgICAgZmluYWwgaW50IGVuZEluZGV4ID0gaXRlci5nZXRFbmRJbmRleCgpOworCisgICAgICAgIGNoYXIgY2ggPSBpdGVyLnNldEluZGV4KGJlZ2luSW5kZXgpOworCisgICAgICAgIGZvciAoaW50IGk9YmVnaW5JbmRleDsgaSA8IGVuZEluZGV4OyBpKyspIHsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludChjaCsgIiAiKTsKKyAgICAgICAgICAgIGlmIChjaCAhPSB0ZXh0LmF0KGkpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDaGFyYWN0ZXJzIGFyZSBub3QgdGhlIHNhbWUuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaCA9IGl0ZXIubmV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNoICE9IE1UZXh0SXRlcmF0b3IuRE9ORSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJdGVyYXRvciBpcyBub3QgZG9uZS4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IGk9ZW5kSW5kZXgtMTsgaSA+PSBiZWdpbkluZGV4OyBpLS0pIHsKKyAgICAgICAgICAgIGNoID0gaXRlci5wcmV2aW91cygpOworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50KGNoKyAiICIpOworICAgICAgICAgICAgaWYgKGNoICE9IHRleHQuYXQoaSkpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhY2t3YXJkIGl0ZXJhdGlvbiBmYWlsZWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpdGVyLnNldEluZGV4KGJlZ2luSW5kZXgpOworCisgICAgICAgIGludCBydW5MaW1pdDsKKyAgICAgICAgZm9yIChpbnQgcnVuU3RhcnQgPSBiZWdpbkluZGV4OyBydW5TdGFydCA8IGVuZEluZGV4OyBydW5TdGFydCA9IHJ1bkxpbWl0KSB7CisKKyAgICAgICAgICAgIHJ1bkxpbWl0ID0gTWF0aC5taW4oZW5kSW5kZXgsIHRleHQuY2hhcmFjdGVyU3R5bGVMaW1pdChydW5TdGFydCkpOworCisgICAgICAgICAgICBpZiAoaXRlci5nZXRSdW5TdGFydCgpICE9IHJ1blN0YXJ0KSB7CisgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGl0ZXIuZ2V0UnVuU3RhcnQoKSArICI7ICIgKyBydW5TdGFydCk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJnZXRSdW5TdGFydCBpcyB3cm9uZy4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpdGVyLmdldFJ1bkxpbWl0KCkgIT0gcnVuTGltaXQpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oaXRlci5nZXRSdW5MaW1pdCgpICsgIjsgIiArIHJ1bkxpbWl0KTsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImdldFJ1bkxpbWl0IGlzIHdyb25nLiIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUgPSB0ZXh0LmNoYXJhY3RlclN0eWxlQXQocnVuU3RhcnQpOworCisgICAgICAgICAgICB3aGlsZSAoaXRlci5nZXRJbmRleCgpIDwgcnVuTGltaXQpIHsKKyAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgcmVzb2x2ZWQgPSBGT05UX01BUFBFUi5hcHBseUZvbnQoc3R5bGUpOworICAgICAgICAgICAgICAgIGlmICghaXRlci5nZXRBdHRyaWJ1dGVzKCkuZXF1YWxzKHJlc29sdmVkKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN0eWxlIGlzIHdyb25nLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3QoKSB7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIGJvbGQgPSBuZXcgQXR0cmlidXRlTWFwKFRleHRBdHRyaWJ1dGUuV0VJR0hULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5XRUlHSFRfQk9MRCk7CisgICAgICAgIE1UZXh0IHRleHQgPSBuZXcgU3R5bGVkVGV4dCgiSGVsbG8gdGhlcmUhIiwgQXR0cmlidXRlTWFwLkVNUFRZX0FUVFJJQlVURV9NQVApOworICAgICAgICB0ZXh0LnJlcGxhY2UoMiwgMiwgJ1YnLCBib2xkKTsKKworICAgICAgICBNVGV4dEl0ZXJhdG9yIGl0ZXIgPSBuZXcgTVRleHRJdGVyYXRvcih0ZXh0LCBGT05UX01BUFBFUiwgMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgICAgIGNvbXBhcmVJdGVyVG9UZXh0KGl0ZXIsIHRleHQpOworCisgICAgICAgIHRleHQucmVwbGFjZSg2LCA4LCBuZXcgU3R5bGVkVGV4dCgiQUxMX0JPTEQiLCBib2xkKSwgMCwgOCk7CisgICAgICAgIGl0ZXIgPSBuZXcgTVRleHRJdGVyYXRvcih0ZXh0LCBGT05UX01BUFBFUiwgMSwgdGV4dC5sZW5ndGgoKS0zKTsKKyAgICAgICAgY29tcGFyZUl0ZXJUb1RleHQoaXRlciwgdGV4dCk7CisKKyAgICAgICAgaXRlciA9IG5ldyBNVGV4dEl0ZXJhdG9yKHRleHQsIEZPTlRfTUFQUEVSLCAwLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICAgICAgY29tcGFyZUl0ZXJUb1RleHQoaXRlciwgdGV4dCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworCisgICAgICAgIG5ldyBUZXN0TVRleHRJdGVyYXRvcigpLnRlc3QoKTsKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQQVNTRUQiKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1RleHRPZmZzZXQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvVGV4dE9mZnNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAxNGViMDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L1RleHRPZmZzZXQuamF2YQpAQCAtMCwwICsxLDE5NiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJldmlzaW9uOiAwMyAxLjE2IHJpY2h0ZXh0L1RleHRPZmZzZXQuamF2YSwgcmljaHRleHQsIHJpY2h0ZXh0CisKKy8qCisgICAgOS81Lzk2IHtqYnJ9IGFkZGVkIHNldCBhbmQgZXF1YWxzIG1ldGhvZHMKKyovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0OworCisvKioKKyAqIEEgVGV4dE9mZnNldCBpbmRpY2F0ZXMgYm90aCBhbiBpbnRlZ2VyIG9mZnNldCBpbnRvIHRleHQgYW5kIGEgcGxhY2VtZW50CisgKiBvbiBvbmUgb2YgdGhlIGNoYXJhY3RlcnMgYWRqYWNlbnQgdG8gdGhlIG9mZnNldC4gIEFuIG9mZnNldCBpcyBhCisgKiBwb3NpdGlvbiBiZXR3ZWVuIHR3byBjaGFyYWN0ZXJzOyAgb2Zmc2V0IG4KKyAqIGlzIGJldHdlZW4gY2hhcmFjdGVyIG4tMSBhbmQgY2hhcmFjdGVyIG4uICBUaGUgcGxhY2VtZW50IHNwZWNpZmllcyB3aGV0aGVyCisgKiBpdCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGNoYXJhY3RlcgorICogYWZ0ZXIgdGhlIG9mZnNldAorICogKGNoYXJhY3RlciBuKSBvciB0aGUgY2hhcmFjdGVyIGJlZm9yZSB0aGUgb2Zmc2V0IChjaGFyYWN0ZXIgbi0xKS4KKyAqIDxwPgorICogS25vd2luZyB3aGljaCBjaGFyYWN0ZXIgdGhlIFRleHRPZmZzZXQgaXMgYXNzb2NpYXRlZCB3aXRoIGlzIG5lY2Vzc2FyeQorICogd2hlbiBkaXNwbGF5aW5nIGNhcmV0cy4gIEluIGJpZGlyZWN0aW9uYWwgdGV4dCwgYSBzaW5nbGUgb2Zmc2V0IG1heQorICogaGF2ZSB0d28gZGlzdGluY3QgY2FyZXRzLiAgQWxzbywgaW4gbXVsdGlsaW5lIHRleHQsIGFuIG9mZnNldCBhdCBhIGxpbmUKKyAqIGJyZWFrIGhhcyBhIHBvc3NpYmxlIGNhcmV0IG9uIGVhY2ggbGluZS4KKyAqIDxwPgorICogTW9zdCBjbGllbnRzIHdpbGwgbm90IGJlIGludGVyZXN0ZWQgaW4gdGhlIHBsYWNlbWVudCwgYW5kIHdpbGwganVzdCB1c2UKKyAqIHRoZSBvZmZzZXQuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXh0T2Zmc2V0Cit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgVGV4dE9mZnNldCBpcyBhc3NvY2lhdGVkIHdpdGggY2hhcmFjdGVyCisgICAgICogPGNvZGU+Zk9mZnNldCAtIDE8L2NvZGU+IC0gaWUgdGhlIGNoYXJhY3RlciBiZWZvcmUgaXRzIG9mZnNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIGJvb2xlYW4gQkVGT1JFX09GRlNFVCA9IHRydWU7CisKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgVGV4dE9mZnNldCBpcyBhc3NvY2lhdGVkIHdpdGggY2hhcmFjdGVyCisgICAgICogPGNvZGU+Zk9mZnNldDwvY29kZT4gLSBpZSB0aGUgY2hhcmFjdGVyIGFmdGVyIGl0cyBvZmZzZXQuCisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBib29sZWFuIEFGVEVSX09GRlNFVCA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogVGhlIG9mZnNldCBpbnRvIHRoZSB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZk9mZnNldCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcGxhY2VtZW50IC0gYmVmb3JlIG9yIGFmdGVyLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGZQbGFjZW1lbnQgPSBBRlRFUl9PRkZTRVQ7CisKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdHMgYSBuZXcgVGV4dE9mZnNldAorICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IGludG8gdGhlIHRleHQgdG8gcmVwcmVzZW50LiAgUGxhY2VtZW50IGlzIGltcGxpY2l0bHkgQUZURVJfT0ZGU0VULgorICAgICovCisgICAgcHVibGljIFRleHRPZmZzZXQoaW50IG9mZnNldCkKKyAgICB7CisgICAgICAgIGlmIChvZmZzZXQgPCAwKQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiT2Zmc2V0IGlzIG5lZ2F0aXZlIGluIFRleHRPZmZzZXQgY29uc3RydWN0b3IuIik7CisKKyAgICAgICAgZk9mZnNldCA9IG9mZnNldDsKKworICAgICAgICBmUGxhY2VtZW50ID0gQUZURVJfT0ZGU0VUOworICAgIH0KKworICAgIC8qKgorICAgICogQ29uc3RydWN0cyBhIG5ldyBUZXh0T2Zmc2V0IGF0IDAsIHdpdGggcGxhY2VtZW50IEFGVEVSX09GRlNFVC4KKyAgICAqLworICAgIHB1YmxpYyBUZXh0T2Zmc2V0KCkgeworICAgICAgICB0aGlzKDApOworICAgIH0KKworICAgIC8qKgorICAgICogQ29uc3RydWN0cyBhIG5ldyBUZXh0T2Zmc2V0IHdpdGggdGhlIGdpdmVuIG9mZnNldCBhbmQgcGxhY2VtZW50LgorICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IGludG8gdGhlIHRleHQKKyAgICAqIEBwYXJhbSBwbGFjZW1lbnQgaW5kaWNhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY2FyZXQ7IG9uZSBvZiBCRUZPUkVfT0ZGU0VUIG9yIEFGVEVSX09GRlNFVAorICAgICovCisgICAgcHVibGljIFRleHRPZmZzZXQoaW50IG9mZnNldCwgYm9vbGVhbiBwbGFjZW1lbnQpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRleHRPZmZzZXQgY29uc3RydWN0b3Igb2Zmc2V0IDwgMDogIiArIG9mZnNldCk7CisKKyAgICAgICAgZk9mZnNldCA9IG9mZnNldDsKKyAgICAgICAgZlBsYWNlbWVudCA9IHBsYWNlbWVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIENvbnN0cnVjdHMgYSBuZXcgVGV4dE9mZnNldCBmcm9tIGFuIGV4aXN0aW5nIG9uZS4KKyAgICAqIEBwYXJhbSByaHMgdGhlIFRleHRPZmZzZXQgdG8gY29weQorICAgICovCisgICAgcHVibGljIFRleHRPZmZzZXQoVGV4dE9mZnNldCByaHMpIHsKKworICAgICAgICB0aGlzKHJocy5mT2Zmc2V0LCByaHMuZlBsYWNlbWVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBTZXQgdGhlIHZhbHVlIG9mIHRoZSBUZXh0T2Zmc2V0CisgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgaW50byB0aGUgdGV4dAorICAgICogQHBhcmFtIHBsYWNlbWVudCBpbmRpY2F0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjYXJldDsgb25lIG9mIEJFRk9SRV9PRkZTRVQgb3IgQUZURVJfT0ZGU0VUCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRPZmZzZXQoaW50IG9mZnNldCwgYm9vbGVhbiBwbGFjZW1lbnQpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0IDwgMCkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRleHRPZmZzZXQgc2V0T2Zmc2V0IG9mZnNldCA8IDA6ICIgKyBvZmZzZXQpOworCisgICAgICAgIGZPZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgIGZQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcGFyZSB0aGlzIHRvIGFub3RoZXIgT2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb3RoZXIpIHsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGVxdWFscygoVGV4dE9mZnNldClvdGhlcik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRydWUgaWYgb2Zmc2V0IGFuZCBwbGFjZW1lbnQgYXJlIHRoZSBzYW1lLgorICAgICoKKyAgICAqIEBwYXJhbSBvdGhlciBvZmZzZXQgdG8gY29tcGFyZSBhZ2FpbnN0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgYm90aCBvZmZzZXRzIGFyZSBlcXVhbAorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKFRleHRPZmZzZXQgb3RoZXIpIHsKKworICAgICAgICByZXR1cm4gZk9mZnNldCA9PSBvdGhlci5mT2Zmc2V0ICYmIGZQbGFjZW1lbnQgPT0gb3RoZXIuZlBsYWNlbWVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGhhc2hDb2RlIGZvciB0aGlzIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworCisgICAgICAgIHJldHVybiBmUGxhY2VtZW50PT1BRlRFUl9PRkZTRVQ/IGZPZmZzZXQgOiAtZk9mZnNldDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgb2Zmc2V0IGlzICdncmVhdGVyVGhhbicgb3RoZXIuICBJZiB0aGUgZk9mZnNldCBmaWVsZHMgYXJlIGVxdWFsLCB0aGUKKyAgICAqIHBsYWNlbWVudCBmaWVsZCBpcyBjb25zaWRlcmVkLCBhbmQgQUZURVJfT0ZGU0VUIGlzIGNvbnNpZGVyZWQgJ2dyZWF0ZXJUaGFuJyBCRUZPUkVfT0ZGU0VULgorICAgICoKKyAgICAqIEBwYXJhbSBvdGhlciB0aGUgb3RoZXIgb2Zmc2V0CisgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBvZmZzZXQgYXBwZWFycyBhZnRlciBvdGhlcgorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ3JlYXRlclRoYW4oVGV4dE9mZnNldCBvdGhlcikKKyAgICB7CisgICAgICAgIHJldHVybiBmT2Zmc2V0ID4gb3RoZXIuZk9mZnNldCB8fAorICAgICAgICAgICAgKGZPZmZzZXQgPT0gb3RoZXIuZk9mZnNldCAmJiBmUGxhY2VtZW50ID09IEFGVEVSX09GRlNFVCAmJiBvdGhlci5mUGxhY2VtZW50ID09IEJFRk9SRV9PRkZTRVQpOworICAgIH0KKworICAgIC8qKgorICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBvZmZzZXQgaXMgJ2xlc3NUaGFuJyBvdGhlci4gIElmIHRoZSBmT2Zmc2V0IGZpZWxkcyBhcmUgZXF1YWwsIHRoZQorICAgICogcGxhY2VtZW50IGZpZWxkIGlzIGNvbnNpZGVyZWQsIGFuZCBCRUZPUkVfT0ZGU0VUIGlzIGNvbnNpZGVyZWQgJ2xlc3NUaGFuJyBBRlRFUl9PRkZTRVQuCisgICAgKgorICAgICogQHBhcmFtIG90aGVyIHRoZSBvdGhlciBvZmZzZXQKKyAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIG9mZnNldCBhcHBlYXJzIGJlZm9yZSBvdGhlcgorICAgICovCisgICAgcHVibGljIGJvb2xlYW4gbGVzc1RoYW4oVGV4dE9mZnNldCBvdGhlcikgeworCisgICAgICAgIHJldHVybiBmT2Zmc2V0IDwgb3RoZXIuZk9mZnNldCB8fAorICAgICAgICAgICAgKGZPZmZzZXQgPT0gb3RoZXIuZk9mZnNldCAmJiBmUGxhY2VtZW50ID09IEJFRk9SRV9PRkZTRVQgJiYgb3RoZXIuZlBsYWNlbWVudCA9PSBBRlRFUl9PRkZTRVQpOworICAgIH0KKworICAgIC8qKgorICAgICogQ29weSB0aGUgdmFsdWUgb2YgYW5vdGhlciBUZXh0T2Zmc2V0IGludG8gdGhpcworICAgICogQHBhcmFtIG90aGVyIHRoZSBUZXh0T2Zmc2V0IHRvIGNvcHkKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIGFzc2lnbihUZXh0T2Zmc2V0IG90aGVyKSB7CisgICAgICAgIGZPZmZzZXQgPSBvdGhlci5mT2Zmc2V0OworICAgICAgICBmUGxhY2VtZW50ID0gb3RoZXIuZlBsYWNlbWVudDsKKyAgICB9CisKKyAgICAvKioKKyAgICAqIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisKKyAgICAgICAgcmV0dXJuICJbIiArIChmUGxhY2VtZW50ID8gImJlZm9yZSAiIDogImFmdGVyICIpICsgZk9mZnNldCArICJdIjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L3BhY2thZ2UuaHRtbCBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRmb3JtYXQvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3ZjE2YmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0Zm9ybWF0L3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgMy4yIEZpbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPjwhLS0gIENvcHlyaWdodCAoQykgMjAwMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorLS0+CisKKzx0aXRsZT5DOklDVTRKIC5sYW5nIFBhY2thZ2UgT3ZlcnZpZXc8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSI+CisKKzxwPkNsYXNzZXMgdGhhdCBmb3JtYXQgdGV4dCBpbiBhIGJhY2tncm91bmQgdGhyZWFkIGFuZCByZW5kZXIgdGhlIGZvcm1hdHRlZCB0ZXh0IHRvIGEgZ3JhcGhpY3MuPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L0ZvbnRVdGlscy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9Gb250VXRpbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MTA5OWMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9Gb250VXRpbHMuamF2YQpAQCAtMCwwICsxLDI3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0OworCitpbXBvcnQgamF2YS5hd3QuRm9udDsKKworcHVibGljIGZpbmFsIGNsYXNzIEZvbnRVdGlscyB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgICAgICAgICAgICAgIAorICAgIHB1YmxpYyBzdGF0aWMgRm9udCBnZXRGb250KGphdmEudXRpbC5NYXAgYXR0cmlidXRlcykgeworCisgICAgICAgIHJldHVybiBGb250LmdldEZvbnQoYXR0cmlidXRlcyk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvR3JhcGhpY3MyRENvbnZlcnNpb24uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvR3JhcGhpY3MyRENvbnZlcnNpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZDczOTg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9HcmFwaGljczJEQ29udmVyc2lvbi5qYXZhCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQ7CisKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczJEOworaW1wb3J0IGphdmEuYXd0LlBhaW50OworCisvKioKKyAqIFRoaXMgY2xhc3MgYWxsb3dzIEpESyAxLjEgY29kZSB0byB1c2UgYSAiZmFrZSIgR3JhcGhpY3MyRAorICogZm9yIHNvdXJjZS1jb2RlIGNvbXBhdGliaWxpdHkgd2l0aCBKYXZhMiBjb2RlLiAgT24gSmF2YTIgaXQncworICogYSB0cml2aWFsIGNsYXNzLiAgVGhlIEpESyAxLjEgdmVyc2lvbiBvZiB0aGlzIGNsYXNzIGRvZXMgaW50ZXJlc3RpbmcKKyAqIHdvcmsuCisgKi8gCitwdWJsaWMgZmluYWwgY2xhc3MgR3JhcGhpY3MyRENvbnZlcnNpb24geworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgICAgICAgICAKKyAgICBwdWJsaWMgc3RhdGljIEdyYXBoaWNzMkQgZ2V0R3JhcGhpY3MyRChHcmFwaGljcyBnKSB7CisgICAgICAgIHJldHVybiAoR3JhcGhpY3MyRCkgZzsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIEdyYXBoaWNzIGdldEdyYXBoaWNzKEdyYXBoaWNzMkQgZykgeworICAgICAgICByZXR1cm4gZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXaWxsIHJldHVybiBhbiBpbnN0YW5jZSBvZiBQYWludC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE9iamVjdCBnZXRDb2xvclN0YXRlKEdyYXBoaWNzMkQgZykgeworCisgICAgICAgIHJldHVybiBnLmdldFBhaW50KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU3RhdGUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBQYWludC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcmVzdG9yZUNvbG9yU3RhdGUoR3JhcGhpY3MyRCBnLCBPYmplY3Qgc3RhdGUpIHsKKworICAgICAgICBnLnNldFBhaW50KChQYWludCkgc3RhdGUpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvQXR0cmlidXRlS2V5LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvQXR0cmlidXRlS2V5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjBlZmM3MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9BdHRyaWJ1dGVLZXkuamF2YQpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXM7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKKworLyoqCisgKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgY2Fubm9uaWNhbCBtYXBwaW5nIGJldHdlZW4gZmllbGRzIGluIFRleHRBdHRyaWJ1dGUKKyAqIGFuZCBpbnN0YW5jZXMgb2YgaXRzZWxmLiAgSXQgaXMgdXNlZCBieSBBdHRyaWJ1dGVNYXAgdG8gc2VyaWFsaXplCisgKiBhbmQgZGVzZXJpYWxpemUgVGV4dEF0dHJpYnV0ZSB0byBwcmVzZXJ2ZSB1bmlxdWVuZXNzIG9mIFRleHRBdHRyaWJ1dGUKKyAqIGluc3RhbmNlcyAoaWUgc28gdGhhdCBUZXh0QXR0cmlidXRlIGluc3RhbmNlcyByZW1haW4gc2luZ2xldG9ucyksCisgKiBhbmQgdG8gcHJvdmlkZSBjb21wYXRhYmlsaXR5IGJldHdlZW4gMS4xIGFuZCAxLjIgdmVyc2lvbnMgb2YKKyAqIFRleHRBdHRyaWJ1dGUuCisgKiA8cD4KKyAqIEV4YW1wbGUgdXNlIC0gaW5zdGVhZCBvZiBkb2luZyB0aGlzOgorICogPGJsb2NrcXVvdGU+PHByZT4KKyAqICAgICBvdXQud3JpdGVPYmplY3QoYW5BdHRyaWJ1dGUpOworICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogZG8gdGhpczoKKyAqIDxibG9ja3F1b3RlPjxwcmU+CisgKiAgICAgb3V0LndyaXRlT2JqZWN0KEF0dHJpYnV0ZUtleS5tYXBBdHRyaWJ1dGVUb0tleShhbkF0dHJpYnV0ZSkpOworICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogU2ltaWxhcmx5LCBpbnN0ZWFkIG9mIHRoaXM6CisgKiA8YmxvY2txdW90ZT48cHJlPgorICogICAgIGFuQXR0cmlidXRlID0gaW4ucmVhZE9iamVjdCgpOworICogPC9wcmU+PC9ibG9ja3F1b3RlPgorICogZG8gdGhpczoKKyAqIDxibG9ja3F1b3RlPjxwcmU+CisgKiAgICAgYW5BdHRyaWJ1dGUgPSBBdHRyaWJ1dGVLZXkubWFwS2V5VG9BdHRyaWJ1dGUoaW4ucmVhZE9iamVjdCgpKTsKKyAqIDwvcHJlPjwvYmxvY2txdW90ZT4KKyAqIDxwPgorICogSWYgYW5BdHRyaWJ1dGUgaXMgbm90IGEga25vd24gVGV4dEF0dHJpYnV0ZSwgdGhlbiA8Y29kZT5tYXBBdHRyaWJ1dGVUb0tleTwvY29kZT4KKyAqIHdpbGwganVzdCByZXR1cm4gaXRzIGFyZ3VtZW50LiAgU2ltaWxhcmx5LCA8Y29kZT5tYXBLZXlUb0F0dHJpYnV0ZTwvY29kZT4gd2lsbAorICogcmV0dXJuIGl0cyBhcmd1bWVudCBpZiB0aGUgYXJndW1lbnQgaXMgbm90IGEga25vd24gQXR0cmlidXRlS2V5LgorICovCisKKy8qcHVibGljKi8gZmluYWwgY2xhc3MgQXR0cmlidXRlS2V5IGltcGxlbWVudHMgU2VyaWFsaXphYmxlIHsKKworLyoKKyAgICBJbiB0aGlzIGltcGxlbWVudGF0aW9uLCB0d28gcGFyYWxsZWwgVmVjdG9ycyBhcmUKKyAgICBtYWludGFpbmVkLiAgVGV4dEF0dHJpYnV0ZShpKSBtYXBzIHRvIEF0dHJpYnV0ZUtleShpKS4KKyAgICBGb3IgY29tcGF0YWJpbGl0eSB3aXRoIGV4aXN0aW5nIGRhdGEsIHRoaXMgbWFwcGluZyBtdXN0CisgICAgYmUgbWFpbnRhaW5lZCBpbiB0aGUgZnV0dXJlISAgU28sIHdoZW4gbmV3IGF0dHJpYnV0ZXMKKyAgICBhcmUgYWRkZWQsIGFkZCB0aGVtIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuCisqLworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMzc3MjM3MTI1MzI3NzEwNzI5NEw7CisKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXSBmZ1RleHRBdHRyaWJ1dGVzOworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIGZnQXR0cmlidXRlS2V5czsKKworICAgIHN0YXRpYyB7CisgICAgICAgIGZnVGV4dEF0dHJpYnV0ZXMgPSBuZXcgT2JqZWN0W10geworICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GT05ULAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GQU1JTFksCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLldFSUdIVCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU0laRSwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU1VQRVJTQ1JJUFQsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkJBQ0tHUk9VTkQsCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlVOREVSTElORSwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU1RSSUtFVEhST1VHSCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuQ0hBUl9SRVBMQUNFTUVOVCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRVhUUkFfTElORV9TUEFDSU5HLAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5GSVJTVF9MSU5FX0lOREVOVCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuTUlOX0xJTkVfU1BBQ0lORywKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuTEVBRElOR19NQVJHSU4sCisgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlRSQUlMSU5HX01BUkdJTiwKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuVEFCX1JVTEVSLAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OLAorICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5CSURJX0VNQkVERElORywKKyAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuSlVTVElGSUNBVElPTiwKKyAgICAgICAgfTsKKworICAgICAgICBmaW5hbCBpbnQgYXR0ckNvdW50ID0gZmdUZXh0QXR0cmlidXRlcy5sZW5ndGg7CisgICAgICAgIGZnQXR0cmlidXRlS2V5cyA9IG5ldyBPYmplY3RbYXR0ckNvdW50XTsKKworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBhdHRyQ291bnQ7IGkgKz0gMSkgeworICAgICAgICAgICAgZmdBdHRyaWJ1dGVLZXlzW2ldID0gbmV3IEF0dHJpYnV0ZUtleShpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgVGV4dEF0dHJpYnV0ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBrZXkuCisgICAgICogSWYga2V5IGlzIGFuIGluc3RhbmNlIG9mIEF0dHJpYnV0ZUtleSBpdCB3aWxsIGJlIG1hcHBlZCB0bworICAgICAqIGEgVGV4dEF0dHJpYnV0ZS4gIE90aGVyd2lzZSwgdGhlIGtleSBpcyByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gbWFwIHRvIGEgVGV4dEF0dHJpYnV0ZSBmaWVsZAorICAgICAqIEByZXR1cm4gdGhlIFRleHRBdHRyaWJ1dGUgZm9yIDxjb2RlPmtleTwvY29kZT4gaWYgPGNvZGU+a2V5PC9jb2RlPgorICAgICAqICAgIGlzIGFuIEF0dHJpYnV0ZUtleTsgb3RoZXJ3aXNlIDxjb2RlPmtleTwvY29kZT4gaXMgcmV0dXJuZWQKKyAgICAgKi8KKyAgICAvKnB1YmxpYyovIHN0YXRpYyBPYmplY3QgbWFwS2V5VG9BdHRyaWJ1dGUoT2JqZWN0IGtleSkgeworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVLZXkgYUtleSA9IChBdHRyaWJ1dGVLZXkpIGtleTsKKyAgICAgICAgICAgIGlmIChhS2V5LmZJZCA8IGZnVGV4dEF0dHJpYnV0ZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZnVGV4dEF0dHJpYnV0ZXNbYUtleS5mSWRdOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGtleTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaChDbGFzc0Nhc3RFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgcmV0dXJuIGtleTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIElmIGF0dHJpYnV0ZSBpcyBhIGtub3duIFRleHRBdHRyaWJ1dGUsIHJldHVybiBhbiBBdHRyaWJ1dGVLZXkKKyAgICAgKiBmb3IgaXQuICBPdGhlcndpc2UgdGhlIG9iamVjdCBpcyByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gYXR0cmlidXRlIHRoZSBhdHRyaWJ1dGUgdG8gbWFwIHRvIGFuIEF0dHJpYnV0ZUtleQorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlS2V5IGZvciA8Y29kZT5hdHRyaWJ1dGU8L2NvZGU+CisgICAgICogICAgIGlmIDxjb2RlPmF0dHJpYnV0ZTwvY29kZT4gaXMgYSBrbm93biBhdHRyaWJ1dGU7IG90aGVyd2lzZQorICAgICAqICAgICA8Y29kZT5hdHRyaWJ1dGU8L2NvZGU+IGlzIHJldHVybmVkCisgICAgICovCisgICAgLypwdWJsaWMqLyBzdGF0aWMgT2JqZWN0IG1hcEF0dHJpYnV0ZVRvS2V5KE9iamVjdCBhdHRyaWJ1dGUpIHsKKworICAgICAgICBmaW5hbCBpbnQgYXR0ckNvdW50ID0gZmdUZXh0QXR0cmlidXRlcy5sZW5ndGg7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgYXR0ckNvdW50OyBpbmRleCArPSAxKSB7CisgICAgICAgICAgICBpZiAoZmdUZXh0QXR0cmlidXRlc1tpbmRleF0uZXF1YWxzKGF0dHJpYnV0ZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmdBdHRyaWJ1dGVLZXlzW2luZGV4XTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZTsKKyAgICB9CisKKworICAgIHByaXZhdGUgaW50IGZJZDsKKworICAgIHByaXZhdGUgQXR0cmlidXRlS2V5KGludCBpZCkgeworCisgICAgICAgIGZJZCA9IGlkOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiAoKEF0dHJpYnV0ZUtleSlyaHMpLmZJZCA9PSBmSWQ7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJZDsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL0F0dHJpYnV0ZU1hcC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL0F0dHJpYnV0ZU1hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBlMjE5Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvQXR0cmlidXRlTWFwLmphdmEKQEAgLTAsMCArMSw1MjcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlczsKKworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IGphdmEuaW8uRXh0ZXJuYWxpemFibGU7CitpbXBvcnQgamF2YS5pby5PYmplY3RJbnB1dDsKK2ltcG9ydCBqYXZhLmlvLk9iamVjdE91dHB1dDsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCisKKy8qKgorICogQXR0cmlidXRlTWFwIGlzIGFuIGltbXV0YWJsZSBNYXAuICBBZGRpdGlvbmFsbHksIHRoZXJlIGFyZQorICogc2V2ZXJhbCBtZXRob2RzIGZvciBjb21tb24gb3BlcmF0aW9ucyAodW5pb24sCisgKiByZW1vdmUsIGludGVyc2VjdCk7ICB0aGVzZSBtZXRob2RzIHJldHVybiBuZXcgQXR0cmlidXRlTWFwCisgKiBpbnN0YW5jZXMuCisgKiA8cD4KKyAqIEFsdGhvdWdoIGFueSBub24tbnVsbCBPYmplY3QgY2FuIGJlIGEga2V5IG9yIHZhbHVlIGluIGFuCisgKiBBdHRyaWJ1dGVNYXAsIHR5cGljYWxseSB0aGUga2V5cyBhcmUgZmllbGRzIG9mIFRleHRBdHRyaWJ1dGUuCisgKiBAc2VlIFRleHRBdHRyaWJ1dGUKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEF0dHJpYnV0ZU1hcCBpbXBsZW1lbnRzIGphdmEudXRpbC5NYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLk1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxpemFibGUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQ1VSUkVOVF9WRVJTSU9OID0gMTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDk1MTA4MDM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZXJyU3RyaW5nID0gIlN0eWxlU2V0cyBhcmUgaW1tdXRhYmxlLiI7CisKKyAgICAvLyBUaGlzIGlzIHBhc3NlZCB0byB0aGUgSGFzaHRhYmxlIGNvbnN0cnVjdG9yIGFzIHRoZQorICAgIC8vIGxvYWQgZmFjdG9yIGFyZ3VtZW50LiAgSXQgaXMgY2hvc2VuIHRvIGF2b2lkIHJlc2l6aW5nCisgICAgLy8gdGhlIEhhc2h0YWJsZSB3aGVuZXZlciBwb3NzaWJsZS4gIEkgdGhpbmsgdGhhdCAxCisgICAgLy8gZG9lcyB0aGlzLgorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBMT0FEX0ZBQ1RPUiA9IDE7CisKKyAgICBwcml2YXRlIEhhc2h0YWJsZSBzdHlsZVRhYmxlOworICAgIHByaXZhdGUgdHJhbnNpZW50IEF0dHJpYnV0ZVNldCBjYWNoZWRLZXlTZXQgPSBudWxsOworICAgIHByaXZhdGUgdHJhbnNpZW50IENvbGxlY3Rpb24gY2FjaGVkVmFsdWVDb2xsZWN0aW9uID0gbnVsbDsKKyAgICBwcml2YXRlIHRyYW5zaWVudCBTZXQgY2FjaGVkRW50cnlTZXQgPSBudWxsOworCisgICAgLyoqCisgICAgICogQW4gZW1wdHkgQXR0cmlidXRlTWFwLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQXR0cmlidXRlTWFwIEVNUFRZX0FUVFJJQlVURV9NQVAgPSBuZXcgQXR0cmlidXRlTWFwKCk7CisKKy8vID09PT09PT09PT09PT09CisvLyBDb25zdHJ1Y3RvcnMKKy8vID09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcsIGVtcHR5IEF0dHJpYnV0ZU1hcC4gIEVNUFRZX1NUWUxFX1NFVCBjYW4gYmUgdXNlZAorICAgICAqIGluIHBsYWNlIG9mIGFuIEF0dHJpYnV0ZU1hcCBwcm9kdWNlZCBieSB0aGlzIGNvbnN0cnVjdG9yLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAoKSB7CisKKyAgICAgICAgc3R5bGVUYWJsZSA9IG5ldyBIYXNodGFibGUoMSwgTE9BRF9GQUNUT1IpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhbiBBdHRyaWJ1dGVNYXAgd2l0aCB0aGUgc2FtZSBrZXktdmFsdWUKKyAgICAgKiBlbnRyaWVzIGFzIHRoZSBnaXZlbiBNYXAuCisgICAgICogQHBhcmFtIG1hcCBhIE1hcCB3aG9zZSBrZXktdmFsdWUgZW50cmllcyB3aWxsCisgICAgICogICAgICBiZWNvbWUgdGhlIGVudHJpZXMgZm9yIHRoaXMgQXR0cmlidXRlTWFwLiA8Y29kZT5tYXA8L2NvZGU+CisgICAgICogICAgICBpcyBub3QgbW9kaWZpZWQsIGFuZCBtdXN0IG5vdCBjb250YWluIG51bGwga2V5cyBvciB2YWx1ZXMuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcChqYXZhLnV0aWwuTWFwIG1hcCkgeworCisgICAgICAgIHN0eWxlVGFibGUgPSBuZXcgSGFzaHRhYmxlKG1hcC5zaXplKCksIExPQURfRkFDVE9SKTsKKyAgICAgICAgc3R5bGVUYWJsZS5wdXRBbGwobWFwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gQXR0cmlidXRlTWFwIHdpdGggdGhlIHNhbWUga2V5LXZhbHVlCisgICAgICogZW50cmllcyBhcyB0aGUgZ2l2ZW4gSGFzaHRhYmxlLgorICAgICAqIEBwYXJhbSBoYXNodGFibGUgYSBIYXNodGFibGUgd2hvc2Uga2V5LXZhbHVlIGVudHJpZXMgd2lsbAorICAgICAqICAgICAgYmVjb21lIHRoZSBlbnRyaWVzIGZvciB0aGlzIEF0dHJpYnV0ZU1hcC4gPGNvZGU+dGFibGU8L2NvZGU+CisgICAgICogICAgICBpcyBub3QgbW9kaWZpZWQuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcChIYXNodGFibGUgaGFzaHRhYmxlKSB7CisKKyAgICAgICAgdGhpcygoamF2YS51dGlsLk1hcCkgaGFzaHRhYmxlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gQXR0cmlidXRlTWFwIHdpdGggYSBzaW5nbGUgZW50cnkgb2YKKyAgICAgKiA8Y29kZT57YXR0cmlidXRlLCB2YWx1ZX08L2NvZGU+LgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSBpbiB0aGlzIEF0dHJpYnV0ZU1hcCdzIHNpbmdsZSBlbnRyeQorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgaW4gdGhpcyBBdHRyaWJ1dGVNYXAncyBzaW5nbGUgZW50cnkKKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwKE9iamVjdCBrZXksIE9iamVjdCB2YWx1ZSkgeworCisgICAgICAgIHN0eWxlVGFibGUgPSBuZXcgSGFzaHRhYmxlKDEsIExPQURfRkFDVE9SKTsKKworICAgICAgICAvLyBoYXNodGFibGUgY2hlY2tzIHZhbHVlIGZvciBudWxsCisgICAgICAgIHN0eWxlVGFibGUucHV0KGtleSwgdmFsdWUpOworICAgIH0KKworICAgIC8vIEZvciBpbnRlcm5hbCB1c2Ugb25seS4KKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcChIYXNodGFibGUgdGFibGUsIGJvb2xlYW4gY2xvbmUpIHsKKworICAgICAgICBpZiAoY2xvbmUpIHsKKyAgICAgICAgICAgIHN0eWxlVGFibGUgPSAoSGFzaHRhYmxlKSB0YWJsZS5jbG9uZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhpcy5zdHlsZVRhYmxlID0gdGFibGU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB3cml0ZUV4dGVybmFsKE9iamVjdE91dHB1dCBvdXQpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgb3V0LndyaXRlSW50KENVUlJFTlRfVkVSU0lPTik7CisgICAgICAgIG91dC53cml0ZUludChzdHlsZVRhYmxlLnNpemUoKSk7CisgICAgICAgIEVudW1lcmF0aW9uIGUgPSBzdHlsZVRhYmxlLmtleXMoKTsKKyAgICAgICAgd2hpbGUgKGUuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBrZXkgPSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBvdXQud3JpdGVPYmplY3QoQXR0cmlidXRlS2V5Lm1hcEF0dHJpYnV0ZVRvS2V5KGtleSkpOworICAgICAgICAgICAgb3V0LndyaXRlT2JqZWN0KHN0eWxlVGFibGUuZ2V0KGtleSkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVhZEV4dGVybmFsKE9iamVjdElucHV0IGluKSB0aHJvd3MgSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworCisgICAgICAgIGlmIChpbi5yZWFkSW50KCkgIT0gQ1VSUkVOVF9WRVJTSU9OKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSU9FeGNlcHRpb24oIkludmFsaWQgdmVyc2lvbiBvZiBTdHlsZUJ1ZmZlciIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGNvdW50ID0gaW4ucmVhZEludCgpOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBjb3VudDsgaSArPSAxKSB7CisgICAgICAgICAgICBPYmplY3Qga2V5ID0gQXR0cmlidXRlS2V5Lm1hcEtleVRvQXR0cmlidXRlKGluLnJlYWRPYmplY3QoKSk7CisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBpbi5yZWFkT2JqZWN0KCk7CisgICAgICAgICAgICBzdHlsZVRhYmxlLnB1dChrZXksIHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworLy8gPT09PT09PT09PT09PT0KKy8vIE1hcCBpbnRlcmZhY2UKKy8vID09PT09PT09PT09PT09CisKKy8vIHF1ZXJpZXMKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBBdHRyaWJ1dGVNYXAuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIEF0dHJpYnV0ZU1hcAorICAgICAqLworICAgIHB1YmxpYyBpbnQgc2l6ZSgpIHsKKworICAgICAgICByZXR1cm4gc3R5bGVUYWJsZS5zaXplKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBBdHRyaWJ1dGVNYXAKKyAgICAgKiBpcyAwLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIEF0dHJpYnV0ZU1hcAorICAgICAqIGlzIDAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0VtcHR5KCkgeworCisgICAgICAgIHJldHVybiBzdHlsZVRhYmxlLmlzRW1wdHkoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4ga2V5IGlzIGluIHRoaXMgQXR0cmlidXRlTWFwLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB0byB0ZXN0CisgICAgICogQHJldHVybiB0cnVlIGlmIDxjb2RlPmtleTwvY29kZT4gaXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc0tleShPYmplY3Qga2V5KSB7CisKKyAgICAgICAgcmV0dXJuIHN0eWxlVGFibGUuY29udGFpbnNLZXkoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byB0ZXN0CisgICAgICogQHJldHVybiB0cnVlIGlmIDxjb2RlPnZhbHVlPC9jb2RlPiBpcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNvbnRhaW5zVmFsdWUoT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgcmV0dXJuIHN0eWxlVGFibGUuY29udGFpbnNWYWx1ZSh2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGtleS4gIElmIHRoZQorICAgICAqIGtleSBpcyBub3QgaW4gdGhpcyBBdHRyaWJ1dGVNYXAgbnVsbCBpcyByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gbG9vayB1cAorICAgICAqIEByZXR1cm4gdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCA8Y29kZT5rZXk8L2NvZGU+LCBvcgorICAgICAqICAgICBudWxsIGlmIDxjb2RlPmtleTwvY29kZT4gaXMgbm90IGluIHRoaXMgQXR0cmlidXRlTWFwCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoT2JqZWN0IGtleSkgeworCisgICAgICAgIHJldHVybiBzdHlsZVRhYmxlLmdldChrZXkpOworICAgIH0KKworLy8gbW9kaWZpZXJzIC0gYWxsIHRocm93IGV4Y2VwdGlvbnMKKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNhZGRBdHRyaWJ1dGUKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBwdXQoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLgorICAgICAqIEBzZWUgI3JlbW92ZUF0dHJpYnV0ZXMKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIE9iamVjdCByZW1vdmUoT2JqZWN0IGtleSkgeworCisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNhZGRBdHRyaWJ1dGVzCisgICAgICogQHRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dEFsbChqYXZhLnV0aWwuTWFwIHQpIHsKKworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oZXJyU3RyaW5nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uCisgICAgICogQHNlZSAjRU1QVFlfQVRUUklCVVRFX01BUAorICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oZXJyU3RyaW5nKTsKKyAgICB9CisKKy8vIHZpZXdzCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlU2V0IGNvbnRhaW5pbmcgZXZlcnkga2V5IGluIHRoaXMgQXR0cmlidXRlTWFwLgorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlU2V0IGNvbnRhaW5pbmcgZXZlcnkga2V5IGluIHRoaXMgQXR0cmlidXRlTWFwCisgICAgICovCisgICAgcHVibGljIFNldCBrZXlTZXQoKSB7CisKKyAgICAgICAgcmV0dXJuIGdldEtleVNldCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVTZXQgY29udGFpbmluZyBldmVyeSBrZXkgaW4gdGhpcyBBdHRyaWJ1dGVNYXAuCisgICAgICogQHJldHVybiBhbiBBdHRyaWJ1dGVTZXQgY29udGFpbmluZyBldmVyeSBrZXkgaW4gdGhpcyBBdHRyaWJ1dGVNYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlU2V0IGdldEtleVNldCgpIHsKKworICAgICAgICBBdHRyaWJ1dGVTZXQgcmVzdWx0ID0gY2FjaGVkS2V5U2V0OworCisgICAgICAgIGlmIChyZXN1bHQgPT0gbnVsbCkgeworICAgICAgICAgICAgcmVzdWx0ID0gQXR0cmlidXRlU2V0LmNyZWF0ZUtleVNldChzdHlsZVRhYmxlKTsKKyAgICAgICAgICAgIGNhY2hlZEtleVNldCA9IHJlc3VsdDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgQ29sbGVjdGlvbiBjb250YWluaW5nIGV2ZXJ5IHZhbHVlIGluIHRoaXMgQXR0cmlidXRlTWFwLgorICAgICAqIEByZXR1cm4gYSBDb2xsZWN0aW9uIGNvbnRhaW5pbmcgZXZlcnkgdmFsdWUgaW4gdGhpcyBBdHRyaWJ1dGVNYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29sbGVjdGlvbiB2YWx1ZXMoKSB7CisKKyAgICAgICAgQ29sbGVjdGlvbiByZXN1bHQgPSBjYWNoZWRWYWx1ZUNvbGxlY3Rpb247CisKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXN1bHQgPSBDb2xsZWN0aW9ucy51bm1vZGlmaWFibGVDb2xsZWN0aW9uKHN0eWxlVGFibGUudmFsdWVzKCkpOworICAgICAgICAgICAgY2FjaGVkVmFsdWVDb2xsZWN0aW9uID0gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBTZXQgY29udGFpbmluZyBhbGwgZW50cmllcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2V0IGVudHJ5U2V0KCkgeworCisgICAgICAgIFNldCByZXN1bHQgPSBjYWNoZWRFbnRyeVNldDsKKworICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IENvbGxlY3Rpb25zLnVubW9kaWZpYWJsZVNldChzdHlsZVRhYmxlLmVudHJ5U2V0KCkpOworICAgICAgICAgICAgY2FjaGVkRW50cnlTZXQgPSByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3QgcmhzKSB7CisKKyAgICAgICAgaWYgKHJocyA9PSB0aGlzKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgQXR0cmlidXRlTWFwIHJoc1N0eWxlU2V0ID0gbnVsbDsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmhzU3R5bGVTZXQgPSAoQXR0cmlidXRlTWFwKSByaHM7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzdHlsZVRhYmxlLmVxdWFscyhyaHNTdHlsZVNldC5zdHlsZVRhYmxlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworCisgICAgICAgIHJldHVybiBzdHlsZVRhYmxlLmhhc2hDb2RlKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKworICAgICAgICByZXR1cm4gc3R5bGVUYWJsZS50b1N0cmluZygpOworICAgIH0KKworLy8gPT09PT09PT09PT09PT0KKy8vIE9wZXJhdGlvbnMKKy8vID09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBBdHRyaWJ1dGVNYXAgd2hpY2ggY29udGFpbnMgZW50cmllcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcCwKKyAgICAgKiBhbG9uZyB3aXRoIGFuIGVudHJ5IGZvciA8YXR0cmlidXRlLCB2YWx1ZT4uICBJZiBhdHRyaWJ1dGUKKyAgICAgKiBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhpcyBBdHRyaWJ1dGVNYXAgaXRzIHZhbHVlIGJlY29tZXMgdmFsdWUuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBhZGRBdHRyaWJ1dGUoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisKKyAgICAgICAgLy8gdHJ5IHRvIG9wdGltaXplIGZvciBjYXNlIHdoZXJlIDxrZXksIHZhbHVlPiBpcyBhbHJlYWR5IHRoZXJlPworICAgICAgICBIYXNodGFibGUgbmV3VGFibGUgPSBuZXcgSGFzaHRhYmxlKHN0eWxlVGFibGUuc2l6ZSgpICsgMSwgTE9BRF9GQUNUT1IpOworICAgICAgICBuZXdUYWJsZS5wdXRBbGwoc3R5bGVUYWJsZSk7CisgICAgICAgIG5ld1RhYmxlLnB1dChrZXksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVNYXAobmV3VGFibGUsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBBdHRyaWJ1dGVNYXAgd2hpY2ggY29udGFpbnMgZW50cmllcyBpbiB0aGlzIEF0dHJpYnV0ZU1hcAorICAgICAqIGFuZCBpbiByaHMuICBJZiBhbiBhdHRyaWJ1dGUgYXBwZWFycyBpbiBib3RoIFN0eWxlU2V0cyB0aGUKKyAgICAgKiB2YWx1ZSBmcm9tIHJocyBpcyB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgYWRkQXR0cmlidXRlcyhBdHRyaWJ1dGVNYXAgcmhzKSB7CisKKyAgICAgICAgaW50IHRoaXNTaXplID0gc2l6ZSgpOworCisgICAgICAgIGlmICh0aGlzU2l6ZSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmhzOworICAgICAgICB9CisKKyAgICAgICAgaW50IG90aGVyU2l6ZSA9IHJocy5zaXplKCk7CisKKyAgICAgICAgaWYgKG90aGVyU2l6ZSA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIEhhc2h0YWJsZSBuZXdUYWJsZSA9IG5ldyBIYXNodGFibGUodGhpc1NpemUgKyBvdGhlclNpemUsIExPQURfRkFDVE9SKTsKKworICAgICAgICBuZXdUYWJsZS5wdXRBbGwoc3R5bGVUYWJsZSk7CisgICAgICAgIG5ld1RhYmxlLnB1dEFsbChyaHMpOworCisgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlTWFwKG5ld1RhYmxlLCBmYWxzZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgQXR0cmlidXRlTWFwIHdoaWNoIGNvbnRhaW5zIGVudHJpZXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAKKyAgICAgKiBhbmQgaW4gcmhzLiAgSWYgYW4gYXR0cmlidXRlIGFwcGVhcnMgaW4gYm90aCBTdHlsZVNldHMgdGhlCisgICAgICogdmFsdWUgZnJvbSByaHMgaXMgdXNlZC4KKyAgICAgKiBUaGUgTWFwJ3Mga2V5cyBhbmQgdmFsdWVzIG11c3QgYmUgbm9uLW51bGwuCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBhZGRBdHRyaWJ1dGVzKGphdmEudXRpbC5NYXAgcmhzKSB7CisKKyAgICAgICAgaWYgKHJocyBpbnN0YW5jZW9mIEF0dHJpYnV0ZU1hcCkgeworICAgICAgICAgICAgcmV0dXJuIGFkZEF0dHJpYnV0ZXMoKEF0dHJpYnV0ZU1hcClyaHMpOworICAgICAgICB9CisKKyAgICAgICAgSGFzaHRhYmxlIG5ld1RhYmxlID0gbmV3IEhhc2h0YWJsZShzaXplKCkgKyByaHMuc2l6ZSgpLCBMT0FEX0ZBQ1RPUik7CisKKyAgICAgICAgbmV3VGFibGUucHV0QWxsKHN0eWxlVGFibGUpOworICAgICAgICBuZXdUYWJsZS5wdXRBbGwocmhzKTsKKworICAgICAgICByZXR1cm4gbmV3IEF0dHJpYnV0ZU1hcChuZXdUYWJsZSwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBlbnRyaWVzIGluIHRoaXMgQXR0cmlidXRlTWFwLCBidXQKKyAgICAgKiB3aXRob3V0IGF0dHJpYnV0ZSBhcyBhIGtleS4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlTWFwIHJlbW92ZUF0dHJpYnV0ZShPYmplY3QgYXR0cmlidXRlKSB7CisKKyAgICAgICAgaWYgKCFjb250YWluc0tleShhdHRyaWJ1dGUpKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIEhhc2h0YWJsZSBuZXdUYWJsZSA9IG5ldyBIYXNodGFibGUoc3R5bGVUYWJsZS5zaXplKCksIExPQURfRkFDVE9SKTsKKyAgICAgICAgbmV3VGFibGUucHV0QWxsKHN0eWxlVGFibGUpOworICAgICAgICBuZXdUYWJsZS5yZW1vdmUoYXR0cmlidXRlKTsKKworICAgICAgICByZXR1cm4gbmV3IEF0dHJpYnV0ZU1hcChuZXdUYWJsZSwgZmFsc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBlbnRyaWVzIG9mIHRoaXMgQXR0cmlidXRlTWFwIHdob3NlCisgICAgICogYXR0cmlidXRlcyBhcmUgPGI+bm90PC9iPiBpbiB0aGUgU2V0LgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgcmVtb3ZlQXR0cmlidXRlcyhBdHRyaWJ1dGVTZXQgYXR0cmlidXRlcykgeworCisgICAgICAgIFNldCBzZXQgPSBhdHRyaWJ1dGVzOworICAgICAgICByZXR1cm4gcmVtb3ZlQXR0cmlidXRlcyhzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBlbnRyaWVzIG9mIHRoaXMgQXR0cmlidXRlTWFwIHdob3NlCisgICAgICogYXR0cmlidXRlcyBhcmUgPGI+bm90PC9iPiBpbiB0aGUgU2V0LgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgcmVtb3ZlQXR0cmlidXRlcyhTZXQgYXR0cmlidXRlcykgeworCisgICAgICAgIC8vIENyZWF0ZSBuZXdUYWJsZSBvbiBkZW1hbmQ7ICBpZiBudWxsIGF0CisgICAgICAgIC8vIGVuZCBvZiBpdGVyYXRpb24gdGhlbiByZXR1cm4gdGhpcyBzZXQuCisgICAgICAgIC8vIFNob3VsZCB3ZSBpbnRlcnNlY3Qgc3R5bGVUYWJsZS5rZXlTZXQgd2l0aAorICAgICAgICAvLyBhdHRyaWJ1dGVzIGluc3RlYWQ/CisKKyAgICAgICAgSGFzaHRhYmxlIG5ld1RhYmxlID0gbnVsbDsKKyAgICAgICAgSXRlcmF0b3IgYXR0ckl0ZXIgPSBhdHRyaWJ1dGVzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChhdHRySXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBjdXJyZW50ID0gYXR0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgaWYgKGN1cnJlbnQgIT0gbnVsbCAmJiBzdHlsZVRhYmxlLmNvbnRhaW5zS2V5KGN1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgaWYgKG5ld1RhYmxlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3VGFibGUgPSBuZXcgSGFzaHRhYmxlKHN0eWxlVGFibGUuc2l6ZSgpLCBMT0FEX0ZBQ1RPUik7CisgICAgICAgICAgICAgICAgICAgIG5ld1RhYmxlLnB1dEFsbChzdHlsZVRhYmxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbmV3VGFibGUucmVtb3ZlKGN1cnJlbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG5ld1RhYmxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlTWFwKG5ld1RhYmxlLCBmYWxzZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBrZXlzIG9mIHRoaXMgQXR0cmlidXRlTWFwIHdoaWNoCisgICAgICogYXJlIGFsc28gaW4gdGhlIFNldC4gIFRoZSBzZXQgbXVzdCBub3QgY29udGFpbiBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgaW50ZXJzZWN0V2l0aChBdHRyaWJ1dGVTZXQgYXR0cmlidXRlcykgeworCisgICAgICAgIFNldCBzZXQgPSBhdHRyaWJ1dGVzOworICAgICAgICByZXR1cm4gaW50ZXJzZWN0V2l0aChzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEF0dHJpYnV0ZU1hcCB3aXRoIHRoZSBrZXlzIG9mIHRoaXMgQXR0cmlidXRlTWFwIHdoaWNoCisgICAgICogYXJlIGFsc28gaW4gdGhlIFNldC4gIFRoZSBzZXQgbXVzdCBub3QgY29udGFpbiBudWxsLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgaW50ZXJzZWN0V2l0aChTZXQgYXR0cmlidXRlcykgeworCisgICAgICAgIC8vIEZvciBub3csIGZvcmdldCBhYm91dCBvcHRpbWl6aW5nIGZvciB0aGUgY2FzZSB3aGVuCisgICAgICAgIC8vIHRoZSByZXR1cm4gdmFsdWUgaXMgZXF1aXZhbGVudCB0byB0aGlzIHNldC4KKworICAgICAgICBpbnQgYXR0clNpemUgPSBhdHRyaWJ1dGVzLnNpemUoKTsKKyAgICAgICAgaW50IHN0eWxlVGFibGVTaXplID0gc3R5bGVUYWJsZS5zaXplKCk7CisgICAgICAgIGludCBzaXplID0gTWF0aC5taW4oYXR0clNpemUsIHN0eWxlVGFibGVTaXplKTsKKyAgICAgICAgSGFzaHRhYmxlIG5ld1RhYmxlID0gbmV3IEhhc2h0YWJsZShzaXplLCBMT0FEX0ZBQ1RPUik7CisKKyAgICAgICAgaWYgKGF0dHJTaXplIDwgc3R5bGVUYWJsZVNpemUpIHsKKyAgICAgICAgICAgIEl0ZXJhdG9yIGF0dHJJdGVyID0gYXR0cmlidXRlcy5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGF0dHJJdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIE9iamVjdCBjdXJyZW50ID0gYXR0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gc3R5bGVUYWJsZS5nZXQoY3VycmVudCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdUYWJsZS5wdXQoY3VycmVudCwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgSXRlcmF0b3IgYXR0ckl0ZXIgPSBrZXlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGF0dHJJdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIE9iamVjdCBjdXJyZW50ID0gYXR0ckl0ZXIubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLmNvbnRhaW5zKGN1cnJlbnQpKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld1RhYmxlLnB1dChjdXJyZW50LCBzdHlsZVRhYmxlLmdldChjdXJyZW50KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVNYXAobmV3VGFibGUsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQdXQgYWxsIGVudHJpZXMgaW4gdGhpcyBBdHRyaWJ1dGVNYXAgaW50byB0aGUgZ2l2ZW4gTWFwLgorICAgICAqIEBwYXJhbSByaHMgdGhlIE1hcCBpbnRvIHdoaWNoIGVudHJpZXMgYXJlIHBsYWNlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dEFsbEludG8oamF2YS51dGlsLk1hcCByaHMpIHsKKworICAgICAgICByaHMucHV0QWxsKHRoaXMpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9BdHRyaWJ1dGVTZXQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9BdHRyaWJ1dGVTZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZjgwNjBiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL0F0dHJpYnV0ZVNldC5qYXZhCkBAIC0wLDAgKzEsMzQzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXM7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaHRhYmxlOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKKworLyoqCisgKiBBbiBBdHRyaWJ1dGVTZXQgaXMgYW4gaW1tdXRhYmxlIGNvbGxlY3Rpb24gb2YgdW5pcXVlIE9iamVjdHMuCisgKiBJdCBoYXMgc2V2ZXJhbCBvcGVyYXRpb25zCisgKiB3aGljaCByZXR1cm4gbmV3IEF0dHJpYnV0ZVNldCBpbnN0YW5jZXMuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBBdHRyaWJ1dGVTZXQgaW1wbGVtZW50cyBTZXQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIC8qKgorICAgICAqIEFuIEF0dHJpYnV0ZVNldCB3aXRoIG5vIG1lbWJlcnMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBBdHRyaWJ1dGVTZXQgRU1QVFlfU0VUID0gbmV3IEF0dHJpYnV0ZVNldCgpOworCisgICAgcHJpdmF0ZSBIYXNodGFibGUgZWxlbWVudHM7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgZXJyU3RyaW5nID0gIkF0dHJpYnV0ZVNldCBpcyBpbW11dGFibGUuIjsKKworICAgIHByaXZhdGUgQXR0cmlidXRlU2V0KEhhc2h0YWJsZSBlbGVtZW50cykgeworCisgICAgICAgIHRoaXMuZWxlbWVudHMgPSBlbGVtZW50czsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYWNrYWdlIG9ubHkuICBGb3IgQXR0cmlidXRlTWFwIHVzZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgQXR0cmlidXRlU2V0IGNyZWF0ZUtleVNldChIYXNodGFibGUgaGFzaHRhYmxlKSB7CisKKyAgICAgICAgSGFzaHRhYmxlIG5ld0VsZW1lbnRzID0gbmV3IEhhc2h0YWJsZSgpOworCisgICAgICAgIEVudW1lcmF0aW9uIGUgPSBoYXNodGFibGUua2V5cygpOworICAgICAgICB3aGlsZSAoZS5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgT2JqZWN0IG5leHQgPSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBuZXdFbGVtZW50cy5wdXQobmV4dCwgbmV4dCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEF0dHJpYnV0ZVNldChuZXdFbGVtZW50cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3LCBlbXB0eSBBdHRyaWJ1dGVTZXQuICBUaGUgc2V0IGlzIHNlbWFudGljYWxseQorICAgICAqIGVxdWl2YWxlbnQgdG8gRU1QVFlfU0VULgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVTZXQoKSB7CisKKyAgICAgICAgZWxlbWVudHMgPSBuZXcgSGFzaHRhYmxlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IEF0dHJpYnV0ZVNldCB3aXRoIHRoZSBzaW5nbGUgZWxlbWVudCBlbGVtLgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVTZXQoT2JqZWN0IGVsZW0pIHsKKworICAgICAgICBlbGVtZW50cyA9IG5ldyBIYXNodGFibGUoMSwgMSk7CisgICAgICAgIGVsZW1lbnRzLnB1dChlbGVtLCBlbGVtKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgQXR0cmlidXRlU2V0IGNvbnRhaW5pbmcgdGhlIGl0ZW1zIGluIHRoZSBhcnJheSBlbGVtcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgQXR0cmlidXRlU2V0KE9iamVjdFtdIGVsZW1zKSB7CisKKyAgICAgICAgZWxlbWVudHMgPSBuZXcgSGFzaHRhYmxlKGVsZW1zLmxlbmd0aCwgMSk7CisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGVsZW1zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBPYmplY3QgbmV4dCA9IGVsZW1zW2ldOworICAgICAgICAgICAgZWxlbWVudHMucHV0KG5leHQsIG5leHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGlzIHNldCBpcyAwLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoaXMgc2V0IGlzIDAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0VtcHR5KCkgeworCisgICAgICAgIHJldHVybiBlbGVtZW50cy5pc0VtcHR5KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhpcyBzZXQuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoaXMgc2V0CisgICAgICovCisgICAgcHVibGljIGludCBzaXplKCkgeworCisgICAgICAgIHJldHVybiBlbGVtZW50cy5zaXplKCk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCByaHMpIHsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGVxdWFscygoQXR0cmlidXRlU2V0KSByaHMpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoQXR0cmlidXRlU2V0IHJocykgeworCisgICAgICAgIGlmIChyaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGVsZW1lbnRzLmVxdWFscyhyaHMuZWxlbWVudHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgc2V0IGNvbnRhaW5zIHRoZSBnaXZlbiBPYmplY3QKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgPGNvZGU+bzwvY29kZT4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWlucyhPYmplY3QgbykgeworCisgICAgICAgIE9iamVjdCB2YWx1ZSA9IGVsZW1lbnRzLmdldChvKTsKKyAgICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgYWxsIGVsZW1lbnRzIGluIHRoZSBnaXZlbgorICAgICAqIENvbGxlY3Rpb24KKyAgICAgKiBAcGFyYW0gY29sbCB0aGUgY29sbGVjdGlvbiB0byBjb21wYXJlIHdpdGgKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBzZXQgY29udGFpbnMgYWxsIGVsZW1lbnRzIGluIHRoZSBnaXZlbgorICAgICAqIENvbGxlY3Rpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjb250YWluc0FsbChDb2xsZWN0aW9uIGNvbGwpIHsKKworICAgICAgICByZXR1cm4gZWxlbWVudHMua2V5U2V0KCkuY29udGFpbnNBbGwoY29sbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIEVudW1lcmF0aW9uIG9mIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldC4KKyAgICAgKiBAcmV0dXJuIGFuIEVudW1lcmF0aW9uIG9mIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldAorICAgICAqLworICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBlbGVtZW50cygpIHsKKworICAgICAgICByZXR1cm4gZWxlbWVudHMua2V5cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBJdGVyYXRvciB3aXRoIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldC4KKyAgICAgKiBAcmV0dXJuIGFuIEl0ZXJhdG9yIHdpdGggdGhlIGVsZW1lbnRzIGluIHRoaXMgc2V0LgorICAgICAqIFRoZSBJdGVyYXRvciBjYW5ub3QgYmUgdXNlZCB0byBtb2RpZnkgdGhpcyBBdHRyaWJ1dGVTZXQuCisgICAgICovCisgICAgcHVibGljIEl0ZXJhdG9yIGl0ZXJhdG9yKCkgeworCisgICAgICAgIHJldHVybiBuZXcgRW51bWVyYXRpb25JdGVyYXRvcihlbGVtZW50cy5rZXlzKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbGwgaW4gdGhlIGdpdmVuIGFycmF5IHdpdGggdGhlIGVsZW1lbnRzIGluIHRoaXMgc2V0LgorICAgICAqIEBwYXJhbSBzdG9yYWdlIGFuIGFycmF5IHRvIGZpbGwgd2l0aCB0aGlzIHNldCdzIGVsZW1lbnRzLgorICAgICAqIFRoZSBhcnJheSBjYW5ub3QgYmUgbnVsbC4KKyAgICAgKiBAcmV0dXJuIHRoZSA8dHQ+c3RvcmFnZTwvdHQ+IGFycmF5LgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3RbXSB0b0FycmF5KE9iamVjdFtdIHN0b3JhZ2UpIHsKKworICAgICAgICBFbnVtZXJhdGlvbiBrZXlzID0gZWxlbWVudHMua2V5cygpOworICAgICAgICBpbnQgbj0wOworICAgICAgICB3aGlsZSAoa2V5cy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgc3RvcmFnZVtuKytdID0ga2V5cy5uZXh0RWxlbWVudCgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdG9yYWdlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBhcnJheSB3aXRoIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldC4KKyAgICAgKiBAcmV0dXJuIGFuIGFycmF5IHdpdGggdGhlIGVsZW1lbnRzIGluIHRoaXMgc2V0CisgICAgICovCisgICAgcHVibGljIE9iamVjdFtdIHRvQXJyYXkoKSB7CisKKyAgICAgICAgcmV0dXJuIHRvQXJyYXkobmV3IE9iamVjdFtzaXplKCldKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLgorICAgICAqIEBzZWUgI2FkZEVsZW1lbnQKKyAgICAgKiBAdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gYWRkKE9iamVjdCBvKXsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLgorICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiByZW1vdmUoT2JqZWN0IG8pIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLgorICAgICAqIEBzZWUgI3VuaW9uV2l0aAorICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBhZGRBbGwoQ29sbGVjdGlvbiBjb2xsKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNzdWJ0cmFjdAorICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiByZW1vdmVBbGwoQ29sbGVjdGlvbiBjb2xsKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbihlcnJTdHJpbmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlICNpbnRlcnNlY3RXaXRoCisgICAgICogQHRocm93cyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHJldGFpbkFsbChDb2xsZWN0aW9uIGNvbGwpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLgorICAgICAqIEBzZWUgI0VNUFRZX1NFVAorICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKGVyclN0cmluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIEF0dHJpYnV0ZVNldCBjb250YWluaW5nIHRoZSBlbGVtZW50cyBvZiB0aGlzIHNldAorICAgICAqIGFuZCB0aGUgZ2l2ZW4gZWxlbWVudAorICAgICAqIEBwYXJhbSBlbGVtZW50IHRoZSBlbGVtZW50IHRvIGFkZAorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlU2V0IGxpa2UgdGhpcyBvbmUsIHdpdGggPGNvZGU+ZWxlbWVudDwvY29kZT4KKyAgICAgKiBhZGRlZAorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVTZXQgYWRkRWxlbWVudChPYmplY3QgZWxlbWVudCkgeworCisgICAgICAgIEhhc2h0YWJsZSBuZXdFbGVtZW50cyA9IChIYXNodGFibGUpIGVsZW1lbnRzLmNsb25lKCk7CisgICAgICAgIG5ld0VsZW1lbnRzLnB1dChlbGVtZW50LCBlbGVtZW50KTsKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVTZXQobmV3RWxlbWVudHMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVTZXQgd2hpY2ggaXMgdGhlIHVuaW9uIG9mCisgICAgICogdGhpcyBzZXQgd2l0aCB0aGUgZ2l2ZW4gc2V0LgorICAgICAqIEBwYXJhbSBzIHRoZSBzZXQgdG8gdW5pb24gd2l0aAorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlU2V0IG9mIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldCBvcgorICAgICAqIGluIDxjb2RlPnM8L2NvZGU+CisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZVNldCB1bmlvbldpdGgoQXR0cmlidXRlU2V0IHMpIHsKKworICAgICAgICBIYXNodGFibGUgbmV3RWxlbWVudHMgPSAoSGFzaHRhYmxlKSBlbGVtZW50cy5jbG9uZSgpOworCisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgT2JqZWN0IG5leHQgPSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIG5ld0VsZW1lbnRzLnB1dChuZXh0LCBuZXh0KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXcgQXR0cmlidXRlU2V0KG5ld0VsZW1lbnRzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlU2V0IHdoaWNoIGlzIHRoZSBpbnRlcnNlY3Rpb24gb2YKKyAgICAgKiB0aGlzIHNldCB3aXRoIHRoZSBnaXZlbiBzZXQuCisgICAgICogQHBhcmFtIHMgdGhlIHNldCB0byBpbnRlcnNlY3Qgd2l0aAorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlU2V0IG9mIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldCB3aGljaAorICAgICAqIGFyZSBpbiA8Y29kZT5zPC9jb2RlPgorICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVTZXQgaW50ZXJzZWN0V2l0aChBdHRyaWJ1dGVTZXQgcykgeworCisgICAgICAgIEhhc2h0YWJsZSBuZXdFbGVtZW50cyA9IG5ldyBIYXNodGFibGUoKTsKKworICAgICAgICBJdGVyYXRvciBpdGVyID0gcy5pdGVyYXRvcigpOworICAgICAgICB3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE9iamVjdCBuZXh0ID0gaXRlci5uZXh0KCk7CisgICAgICAgICAgICBpZiAoZWxlbWVudHMuZ2V0KG5leHQpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBuZXdFbGVtZW50cy5wdXQobmV4dCwgbmV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEF0dHJpYnV0ZVNldChuZXdFbGVtZW50cyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGFuIEF0dHJpYnV0ZVNldCB3aXRoIHRoZSBlbGVtZW50cyBpbiB0aGlzIHNldCB3aGljaAorICAgICAqIGFyZSBub3QgaW4gdGhlIGdpdmVuIHNldC4KKyAgICAgKiBAcGFyYW0gcyB0aGUgc2V0IG9mIGVsZW1lbnRzIHRvIGV4Y2x1ZGUKKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZVNldCBvZiB0aGUgZWxlbWVudHMgaW4gdGhpcyBzZXQgd2hpY2gKKyAgICAgKiBhcmUgbm90IGluIDxjb2RlPnM8L2NvZGU+CisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZVNldCBzdWJ0cmFjdChBdHRyaWJ1dGVTZXQgcykgeworCisgICAgICAgIEhhc2h0YWJsZSBuZXdFbGVtZW50cyA9IChIYXNodGFibGUpIGVsZW1lbnRzLmNsb25lKCk7CisKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHMuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBuZXdFbGVtZW50cy5yZW1vdmUoaXRlci5uZXh0KCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5ldyBBdHRyaWJ1dGVTZXQobmV3RWxlbWVudHMpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIEVudW1lcmF0aW9uSXRlcmF0b3IgaW1wbGVtZW50cyBJdGVyYXRvciB7CisKKyAgICAgICAgcHJpdmF0ZSBFbnVtZXJhdGlvbiBlOworCisgICAgICAgIEVudW1lcmF0aW9uSXRlcmF0b3IoRW51bWVyYXRpb24gZSkgeworICAgICAgICAgICAgdGhpcy5lID0gZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc05leHQoKSB7CisgICAgICAgICAgICByZXR1cm4gZS5oYXNNb3JlRWxlbWVudHMoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBPYmplY3QgbmV4dCgpIHsKKyAgICAgICAgICAgIHJldHVybiBlLm5leHRFbGVtZW50KCk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCByZW1vdmUoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oZXJyU3RyaW5nKTsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvTWFwLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvTWFwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDgwNTJhMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9NYXAuamF2YQpAQCAtMCwwICsxLDQ5IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLy8gUmVxdWlyZXMgSmF2YTIKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXM7CisKKy8qKgorICogQSBNYXAgaXMgYSBjb2xsZWN0aW9uIG9mIGtleS12YWx1ZSBwYWlycyAob3IgZW50cmllcyksIHdoZXJlIGVhY2gKKyAqIGtleSBpbiB0aGUgTWFwIGlzIHVuaXF1ZS4gIFRoaXMgaW50ZXJmYWNlIGlzIGEgc3Vic2V0IG9mIHRoZQorICogSkRLIDEuMiBNYXAgaW50ZXJmYWNlLiAgSXQgaXMgdXNlZCBieSBKREsgMS4xLWNvbXBhdGlibGUgY29kZS4KKyAqLworcHVibGljIGludGVyZmFjZSBNYXAgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoaXMgTWFwLgorICAgICAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoaXMgTWFwCisgICAgICovCisgICAgcHVibGljIGludCBzaXplKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIE1hcCBoYXMgbm8gZW50cmllcy4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBNYXAgaGFzIG5vIGVudHJpZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc0VtcHR5KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBnaXZlbiBrZXkuCisgICAgICogQHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGdpdmVuIGtleS4gIElmIHRoZSBrZXkgZG9lcyBub3QgaGF2ZQorICAgICAqIGEgdmFsdWUgaW4gdGhpcyBNYXAsIG51bGwgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoT2JqZWN0IGtleSk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIE1hcCBjb250YWlucyB0aGUgZ2l2ZW4ga2V5LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGlzIE1hcCBjb250YWlucyB0aGUgZ2l2ZW4ga2V5CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY29udGFpbnNLZXkoT2JqZWN0IGtleSk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dGxheW91dC9hdHRyaWJ1dGVzL1RleHRBdHRyaWJ1dGUuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9UZXh0QXR0cmlidXRlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzE5YzdlNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9UZXh0QXR0cmlidXRlLmphdmEKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvLyBSZXF1aXJlcyBKYXZhMgorcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlczsKKworaW1wb3J0IGphdmEudXRpbC5IYXNodGFibGU7CitpbXBvcnQgamF2YS50ZXh0LkF0dHJpYnV0ZWRDaGFyYWN0ZXJJdGVyYXRvci5BdHRyaWJ1dGU7CitpbXBvcnQgamF2YS5pby5JbnZhbGlkT2JqZWN0RXhjZXB0aW9uOworCisvKioKKyAqIFRoaXMgY2xhc3MgY29udGFpbnMgYSBudW1iZXIgb2Yga2V5cyAob3IgYXR0cmlidXRlcykgZm9yIHNwZWNpZnlpbmcgdGV4dCBzdHlsZXMKKyAqIGluIGEgTWFwLiAgQSB0ZXh0IHN0eWxlIGlzIGEgY29sbGVjdGlvbiBvZiBrZXktdmFsdWUgcGFpcnMsIHdoZXJlCisgKiB0aGUga2V5IHJlcHJlc2VudHMgYSBjZXJ0YWluIGNoYXJhY3RlcmlzdGljIChzdWNoIGFzIHNpemUpIGFuZAorICogdGhlIHZhbHVlIHRlbGxzIGhvdyB0aGF0IGNoYXJhY3RlcmlzdGljIGlzIHJlYWxpemVkIChpZSB3aGF0IHRoZQorICogc2l6ZSBpcykuCisgKiA8cD4KKyAqIEFsbCBvZiB0aGUgYXR0cmlidXRlcyBpbiBUZXh0QXR0cmlidXRlIHNwZWNpZnkgYSBjbGFzcyBmb3IgdGhlaXIgdmFsdWUuCisgKiBNYXAgZG9lcyBub3QgZW5mb3JjZSB0aGVzZSBjbGFzcyBzcGVjaWZpY2F0aW9uczsgIGhvd2V2ZXIsIHRleHQgcmVuZGVyaW5nIGNvZGUKKyAqIHdpbGwgdGVuZCB0byBmYWlsIHdpdGggYSBDbGFzc0Nhc3RFeGNlcHRpb24gaWYgYSBrZXkncyB2YWx1ZQorICogaGFzIGFuIHVuZXhwZWN0ZWQgY2xhc3MuCisgKiA8cD4KKyAqIFNvbWUgYXR0cmlidXRlcyBhcmUgbWVhbmluZ2Z1bCBmb3IgZW50aXJlIHBhcmFncmFwaHMsIG5vdCBpbmRpdmlkdWFsCisgKiBjaGFyYWN0ZXJzLiAgVGhlc2UgYXR0cmlidXRlcyBhcmUgZG9jdW1lbnRlZCBhcyBhcHBseWluZyB0byBwYXJhZ3JhcGhzLgorICogQWxsIG90aGVyIGF0dHJpYnV0ZXMgYXBwbHkgdG8gY2hhcmFjdGVycy4KKyAqIDxwPgorICogTWFueSBvZiB0aGUgZmllbGQgbmFtZXMgYW5kIHZhbHVlcyBpbiB0aGlzIGNsYXNzCisgKiBhcmUgdGFrZW4gZnJvbSB0aGUgSkRLIDEuMgorICogPGNvZGU+amF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlIGNsYXNzPC9jb2RlPi4KKyAqIEBzZWUgTWFwCisgKi8KK3B1YmxpYyBjbGFzcyBUZXh0QXR0cmlidXRlIGV4dGVuZHMgQXR0cmlidXRlIHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEhhc2h0YWJsZSBpbnN0YW5jZU1hcCA9IG5ldyBIYXNodGFibGUoOSk7CisKKyAgICBwcm90ZWN0ZWQgVGV4dEF0dHJpYnV0ZShTdHJpbmcgbmFtZSkgeworICAgICAgICBzdXBlcihuYW1lKTsKKyAgICAgICAgaWYgKHRoaXMuZ2V0Q2xhc3MoKSA9PSBUZXh0QXR0cmlidXRlLmNsYXNzKSB7CisgICAgICAgICAgICBpbnN0YW5jZU1hcC5wdXQobmFtZSwgdGhpcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IHJlYWRSZXNvbHZlKCkgdGhyb3dzIEludmFsaWRPYmplY3RFeGNlcHRpb24geworICAgICAgICBpZiAodGhpcy5nZXRDbGFzcygpICE9IFRleHRBdHRyaWJ1dGUuY2xhc3MpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT2JqZWN0RXhjZXB0aW9uKCJzdWJjbGFzcyBkaWRuJ3QgY29ycmVjdGx5IGltcGxlbWVudCByZWFkUmVzb2x2ZSIpOworICAgICAgICB9CisKKyAgICAgICAgVGV4dEF0dHJpYnV0ZSBpbnN0YW5jZSA9IChUZXh0QXR0cmlidXRlKSBpbnN0YW5jZU1hcC5nZXQoZ2V0TmFtZSgpKTsKKyAgICAgICAgaWYgKGluc3RhbmNlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkT2JqZWN0RXhjZXB0aW9uKCJ1bmtub3duIGF0dHJpYnV0ZSBuYW1lIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBGT05UID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLkZPTlQ7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBGQU1JTFkgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuRkFNSUxZOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgV0VJR0hUID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLldFSUdIVDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEZsb2F0IFdFSUdIVF9CT0xEID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLldFSUdIVF9CT0xEOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgUE9TVFVSRSA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5QT1NUVVJFOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRmxvYXQgUE9TVFVSRV9PQkxJUVVFID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlBPU1RVUkVfT0JMSVFVRTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IFNJWkUgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuU0laRTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IFNVUEVSU0NSSVBUID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBUOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgSW50ZWdlciBTVVBFUlNDUklQVF9TVVBFUiA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVF9TVVBFUjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEludGVnZXIgU1VQRVJTQ1JJUFRfU1VCID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlNVUEVSU0NSSVBUX1NVQjsKKworICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9yIGFkb3JubWVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBGT1JFR1JPVU5EID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQ7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgQkFDS0dST1VORCA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5CQUNLR1JPVU5EOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgVU5ERVJMSU5FID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlVOREVSTElORTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEludGVnZXIgVU5ERVJMSU5FX09OID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLlVOREVSTElORV9PTjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IFNUUklLRVRIUk9VR0ggPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuU1RSSUtFVEhST1VHSDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEJvb2xlYW4gU1RSSUtFVEhST1VHSF9PTiA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5TVFJJS0VUSFJPVUdIX09OOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgT0ZGU0VUID0gbmV3IFRleHRBdHRyaWJ1dGUoIm9mZnNldCIpOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgQ0hBUl9SRVBMQUNFTUVOVCA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5DSEFSX1JFUExBQ0VNRU5UOworLy8gUGFyYWdyYXBoIFN0eWxlcworCisvLyB2YWx1ZXMgYXJlIEZsb2F0czoKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBFWFRSQV9MSU5FX1NQQUNJTkcgPSBuZXcgVGV4dEF0dHJpYnV0ZSgiZXh0cmFfbGluZV9zcGFjaW5nIik7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgRVhUUkFfRklSU1RfTElORV9TUEFDSU5HID0gbmV3IFRleHRBdHRyaWJ1dGUoImV4dHJhX2ZpcnN0X2xpbmVfc3BhY2luZyIpOworCisgICAgLyoqCisgICAgICogQW1vdW50IGJleW9uZCBsZWFkaW5nIG1hcmdpbiB0byBpbmRlbnQgdGhlIGZpcnN0IGxpbmUgb2YgYSBwYXJhZ3JhcGguCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgRklSU1RfTElORV9JTkRFTlQgPSBuZXcgVGV4dEF0dHJpYnV0ZSgiZmlyc3RfbGluZV9pbmRlbnQiKTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IE1JTl9MSU5FX1NQQUNJTkcgPSBuZXcgVGV4dEF0dHJpYnV0ZSgibWluX2xpbmVfc3BhY2luZyIpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IE1JTl9GSVJTVF9MSU5FX1NQQUNJTkcgPSBuZXcgVGV4dEF0dHJpYnV0ZSgibWluX2ZpcnN0X2xpbmVfc3BhY2luZyIpOworCisgICAgLyoqCisgICAgICogRmx1c2ggbGluZXMgbGVmdCwgcmlnaHQsIG9yIGNlbnRlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBMSU5FX0ZMVVNIID0gbmV3IFRleHRBdHRyaWJ1dGUoImxpbmVfZmx1c2giKTsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgSW50ZWdlciBGTFVTSF9MRUFESU5HID0gbmV3IEludGVnZXIoMCk7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIEZMVVNIX0NFTlRFUiA9IG5ldyBJbnRlZ2VyKDEpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgSW50ZWdlciBGTFVTSF9UUkFJTElORyA9IG5ldyBJbnRlZ2VyKDIpOworICAgIC8qKgorICAgICAqIFZhbHVlIG9mIDxjb2RlPkxJTkVfRkxVU0g8L2NvZGU+IGZvciBmdWxsIGp1c3RpZmljYXRpb24uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIEZVTExZX0pVU1RJRklFRCA9IG5ldyBJbnRlZ2VyKDMpOworCisgICAgLyoqCisgICAgICogTGVhZGluZyBhbmQgdHJhaWxpbmcgbWFyZ2luIGluIHBhcmFncmFwaC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBMRUFESU5HX01BUkdJTiA9IG5ldyBUZXh0QXR0cmlidXRlKCJsZWFkaW5nX21hcmdpbiIpOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgT2JqZWN0IFRSQUlMSU5HX01BUkdJTiA9IG5ldyBUZXh0QXR0cmlidXRlKCJ0cmFpbGluZ19tYXJnaW4iKTsKKworICAgIC8qKgorICAgICAqIFRhYiBydWxlci4gIFZhbHVlcyBhcmUgTVRhYlJ1bGVyIGluc3RhbmNlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBUQUJfUlVMRVIgPSBuZXcgVGV4dEF0dHJpYnV0ZSgidGFiX3J1bGVyIik7CisgICAgCisgICAgLyoqCisgICAgICogQXR0cmlidXRlIGtleSBmb3IgdGhlIHJ1biBkaXJlY3Rpb24gb2YgdGhlIGxpbmUuCisgICAgICoKKyAgICAgKiA8UD48VEFCTEUgQk9SREVSPSIwIiBDRUxMU1BBQ0lORz0iMCIgQ0VMTFBBRERJTkc9IjEiPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+S2V5PC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPlJVTl9ESVJFQ1RJT048L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5WYWx1ZTwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5Cb29sZWFuPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+Q29uc3RhbnRzPC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPlJVTl9ESVJFQ1RJT05fTFRSID0gdHJ1ZSwgUlVOX0RJUkVDVElPTl9SVEwgPSBmYWxzZQorICAgICAqIDwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPkRlZmF1bHQ8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+VXNlIHRoZSBkZWZhdWx0IFVuaWNvZGUgYmFzZSBkaXJlY3Rpb24gZnJvbSB0aGUgQklESSAKKyAgICAgKiBhbGdvcml0aG0uPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+RGVzY3JpcHRpb248L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+PFA+U3BlY2lmaWVzIHdoaWNoIGJhc2UgcnVuIGRpcmVjdGlvbiB0byB1c2Ugd2hlbiAKKyAgICAgKiBwb3NpdGlvbmluZyBtaXhlZCBkaXJlY3Rpb25hbCBydW5zIHdpdGhpbiBhIHBhcmFncmFwaC4gSWYgdGhpcyB2YWx1ZSBpcworICAgICAqIFJVTl9ESVJFQ1RJT05fREVGQVVMVCwgPGNvZGU+VGV4dExheW91dDwvY29kZT4gdXNlcyB0aGUgZGVmYXVsdCBVbmljb2RlCisgICAgICogYmFzZSBkaXJlY3Rpb24gZnJvbSB0aGUgQklESSBhbGdvcml0aG0uPC9QPgorICAgICAqIDxQPjxJPlRoaXMgYXR0cmlidXRlIHNob3VsZCBoYXZlIHRoZSBzYW1lIHZhbHVlIG92ZXIgdGhlIHdob2xlIAorICAgICAqIHBhcmFncmFwaC48L0k+PC9URD48L1RSPgorICAgICAqIDwvVEFCTEU+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgUlVOX0RJUkVDVElPTiA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OOworCisgICAgLyoqCisgICAgICogTGVmdC10by1yaWdodCBydW4gZGlyZWN0aW9uLgorICAgICAqIEBzZWUgI1JVTl9ESVJFQ1RJT04KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIEJvb2xlYW4gUlVOX0RJUkVDVElPTl9MVFIgPSBqYXZhLmF3dC5mb250LlRleHRBdHRyaWJ1dGUuUlVOX0RJUkVDVElPTl9MVFI7CisKKyAgICAvKioKKyAgICAgKiBSaWdodC10by1sZWZ0IHJ1biBkaXJlY3Rpb24uCisgICAgICogQHNlZSAjUlVOX0RJUkVDVElPTgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgQm9vbGVhbiBSVU5fRElSRUNUSU9OX1JUTCA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX1JUTDsKKworICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBlbWJlZGRpbmcgbGV2ZWwgZm9yIG5lc3RlZCBiaWRpcmVjdGlvbmFsIHJ1bnMuCisgICAgICoKKyAgICAgKiA8UD48VEFCTEUgQk9SREVSPSIwIiBDRUxMU1BBQ0lORz0iMCIgQ0VMTFBBRERJTkc9IjEiPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+S2V5PC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPkJJRElfRU1CRURESU5HPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+VmFsdWU8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+SW50ZWdlcjwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPkxpbWl0czwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5Qb3NpdGl2ZSB2YWx1ZXMgMSB0aHJvdWdoIDE1IGFyZSA8ST5lbWJlZGRpbmc8L0k+CisgICAgICogbGV2ZWxzLCBuZWdhdGl2ZSB2YWx1ZXM8QlI+IHRocm91Z2ggLTE1IGFyZSA8ST5vdmVycmlkZTwvST4gbGV2ZWxzCisgICAgICogPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+RGVmYXVsdDwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5Vc2Ugc3RhbmRhcmQgQklESSB0byBjb21wdXRlIGxldmVscyBmcm9tIGZvcm1hdHRpbmcKKyAgICAgKiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LjwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPkRlc2NyaXB0aW9uPC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPlNwZWNpZmllcyB0aGUgYmlkaSBlbWJlZGRpbmcgbGV2ZWwgb2YgdGhlIGNoYXJhY3Rlci4KKyAgICAgKiBXaGVuIHRoaXMgYXR0cmlidXRlIGlzIHByZXNlbnQgYW55d2hlcmUgaW4gYSBwYXJhZ3JhcGgsIHRoZW4gdGhlIAorICAgICAqIFVuaWNvZGUgY2hhcmFjdGVycyBSTE8sIExSTywgUkxFLCBMUkUsIFBERiBhcmUgZGlzcmVnYXJkZWQgaW4gdGhlIEJJREkgCisgICAgICogYW5hbHlzaXMgb2YgdGhhdCBwYXJhZ3JhcGguIAorICAgICAqIFNlZSB0aGUgVW5pY29kZSBTdGFuZGFyZCB2LiAyLjAsIHNlY3Rpb24gMy0xMS4KKyAgICAgKiA8L1REPjwvVFI+CisgICAgICogPC9UQUJMRT4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIE9iamVjdCBCSURJX0VNQkVERElORyA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5CSURJX0VNQkVERElORzsKKworICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBqdXN0aWZpY2F0aW9uIG9mIGEgcGFyYWdyYXBoLgorICAgICAqCisgICAgICogPFA+PFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFNQQUNJTkc9IjAiIENFTExQQURESU5HPSIxIj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPktleTwvVEg+CisgICAgICogPFREIFZBTElHTj0iVE9QIj5KVVNUSUZJQ0FUSU9OPC9URD48L1RSPgorICAgICAqIDxUUj4KKyAgICAgKiA8VEggVkFMSUdOPSJUT1AiIEFMSUdOPSJSSUdIVCI+PFAgQUxJR049UklHSFQ+VmFsdWU8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+RmxvYXQ8L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5MaW1pdHM8L1RIPgorICAgICAqIDxURCBWQUxJR049IlRPUCI+MC4wIHRocm91Z2gxLjA8L1REPjwvVFI+CisgICAgICogPFRSPgorICAgICAqIDxUSCBWQUxJR049IlRPUCIgQUxJR049IlJJR0hUIj48UCBBTElHTj1SSUdIVD5EZWZhdWx0PC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPjEuMDwvVEQ+PC9UUj4KKyAgICAgKiA8VFI+CisgICAgICogPFRIIFZBTElHTj0iVE9QIiBBTElHTj0iUklHSFQiPjxQIEFMSUdOPVJJR0hUPkRlc2NyaXB0aW9uPC9USD4KKyAgICAgKiA8VEQgVkFMSUdOPSJUT1AiPjxQPlNwZWNpZmllcyB3aGljaCBmcmFjdGlvbiBvZiB0aGUgZXh0cmEgc3BhY2UgdG8gdXNlIAorICAgICAqIHdoZW4ganVzdGlmaWNhdGlvbiBpcyByZXF1ZXN0ZWQuIEZvciBleGFtcGxlLCBpZiB0aGUgbGluZSBpcyA1MCBwb2ludHMKKyAgICAgKiB3aWRlIGFuZCB0aGUgbWFyZ2lucyBhcmUgNzAgcG9pbnRzIGFwYXJ0LCBhIHZhbHVlIG9mIDAuNSBtZWFucyB0aGF0IHRoZQorICAgICAqIGxpbmUgaXMgcGFkZGVkIHRvIHJlYWNoIGEgd2lkdGggb2YgNjAgcG9pbnRzLjwvUD4KKyAgICAgKiA8UD48ST5UaGlzIGF0dHJpYnV0ZSBzaG91bGQgaGF2ZSB0aGUgc2FtZSB2YWx1ZSBvdmVyIHRoZSB3aG9sZQorICAgICAqIHBhcmFncmFwaC48L0k+PC9URD48L1RSPgorICAgICAqIDwvVEFCTEU+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgSlVTVElGSUNBVElPTiA9IGphdmEuYXd0LmZvbnQuVGV4dEF0dHJpYnV0ZS5KVVNUSUZJQ0FUSU9OOworCisgICAgLyoqCisgICAgICogSnVzdGlmeSB0aGUgbGluZSB0byB0aGUgZnVsbCByZXF1ZXN0ZWQgd2lkdGguCisgICAgICogQHNlZSAjSlVTVElGSUNBVElPTgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRmxvYXQgSlVTVElGSUNBVElPTl9GVUxMID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLkpVU1RJRklDQVRJT05fRlVMTDsKKworICAgIC8qKgorICAgICAqIERvIG5vdCBhbGxvdyB0aGUgbGluZSB0byBiZSBqdXN0aWZpZWQuCisgICAgICogQHNlZSAjSlVTVElGSUNBVElPTgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgRmxvYXQgSlVTVElGSUNBVElPTl9OT05FID0gamF2YS5hd3QuZm9udC5UZXh0QXR0cmlidXRlLkpVU1RJRklDQVRJT05fTk9ORTsKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRsYXlvdXQvYXR0cmlidXRlcy9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmY2E5MWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0bGF5b3V0L2F0dHJpYnV0ZXMvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCAzLjIgRmluYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+PCEtLSAgQ29weXJpZ2h0IChDKSAyMDAyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGFuZAorICBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCistLT4KKworPHRpdGxlPkM6SUNVNEogLmxhbmcgUGFja2FnZSBPdmVydmlldzwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IGJnY29sb3I9IndoaXRlIj4KKworPHA+UmljaHRleHQgYXR0cmlidXRlIHN1cHBvcnQuICBJbmNsdWRlcyB0YWIsIGZpcnN0IGxpbmUgaW5kZW50LCBhbmQgbWFyZ2luIGF0dHJpYnV0ZXMuPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQVRleHRQYW5lbEltcGwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9BVGV4dFBhbmVsSW1wbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAyZGM4MWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQVRleHRQYW5lbEltcGwuamF2YQpAQCAtMCwwICsxLDc1MSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5BZGp1c3RhYmxlOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5kYXRhdHJhbnNmZXIuQ2xpcGJvYXJkOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZWRUZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworCisvKioKKyAqIEltcGxlbWVudGF0aW9uIGNsYXNzIGZvciBUZXh0UGFuZWwgYW5kIEpUZXh0UGFuZWwuCisgKi8KK2ZpbmFsIGNsYXNzIEFUZXh0UGFuZWxJbXBsIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgICAgICAgICAgICAgIAorICAgIHByaXZhdGUgUnVuU3RyYXRlZ3kgZlJ1blN0cmF0ZWd5ID0gbnVsbDsKKyAgICBwcml2YXRlIFRleHRDb21wb25lbnQgZlRleHRDb21wb25lbnQgPSBudWxsOworICAgIHByaXZhdGUgVGV4dFNlbGVjdGlvbiBmU2VsZWN0aW9uID0gbnVsbDsKKyAgICBwcml2YXRlIFRleHRFZGl0QmVoYXZpb3IgZkVkaXRCZWhhdmlvciA9IG51bGw7CisgICAgcHJpdmF0ZSBNVGV4dCBmVGV4dCA9IG51bGw7CisKKyAgICBwcml2YXRlIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBmQnJvYWRjYXN0ZXI7CisgICAgcHJpdmF0ZSBLZXlSZW1hcCBmUmVtYXAgPSBLZXlSZW1hcC5nZXRJZGVudGl0eVJlbWFwKCk7CisKKyAgICAvLyBUaGlzIGlzIGEgbGl0dGxlIHVnbHkuICBUZXh0UGFuZWwgc3VwcG9ydHMgaXRzIG1vZGlmaWVkCisgICAgLy8gZmxhZyB3aGV0aGVyIG9yIG5vdCBpdCBpcyBlZGl0YWJsZSwgb3IgZXZlbiBzZWxlY3RhYmxlLgorICAgIC8vIFNvIGlmIHRoZXJlJ3Mgbm8gY29tbWFuZCBsb2cgdG8ga2VlcCB0cmFjayBvZiB0aGUgZmxhZworICAgIC8vIHN0YXRlIHRoZW4gaXRzIGRvbmUgcmlnaHQgaGVyZSBpbiBUZXh0UGFuZWwuICBJZiB0aGUKKyAgICAvLyBwYW5lbCBpcyBlZGl0YWJsZSB0aGlzIGZsYWcgaXMgaWdub3JlZC4KKyAgICBwcml2YXRlIGJvb2xlYW4gZk1vZGlmaWVkID0gZmFsc2U7CisKKyAgICBzdGF0aWMgZmluYWwgVGV4dFBhbmVsU2V0dGluZ3MgZmdEZWZhdWx0U2V0dGluZ3MgPSBuZXcgVGV4dFBhbmVsU2V0dGluZ3MoKTsKKworICAgIHN0YXRpYyBUZXh0UGFuZWxTZXR0aW5ncyBnZXREZWZhdWx0U2V0dGluZ3MoKSB7CisKKyAgICAgICAgcmV0dXJuIChUZXh0UGFuZWxTZXR0aW5ncykgZmdEZWZhdWx0U2V0dGluZ3MuY2xvbmUoKTsKKyAgICB9CisgICAgCisgICAgQVRleHRQYW5lbEltcGwoUnVuU3RyYXRlZ3kgcnVuU3RyYXRlZ3ksCisgICAgICAgICAgICAgICAgICAgVGV4dFBhbmVsU2V0dGluZ3Mgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBpbml0aWFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICBDbGlwYm9hcmQgY2xpcGJvYXJkLAorICAgICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgY2xpZW50LAorICAgICAgICAgICAgICAgICAgIEFkanVzdGFibGUgaG9yelNiLAorICAgICAgICAgICAgICAgICAgIEFkanVzdGFibGUgdmVydFNiKSB7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBmUnVuU3RyYXRlZ3kgPSBydW5TdHJhdGVneTsKKyAgICAgICAgZkJyb2FkY2FzdGVyID0gbmV3IFBhbmVsRXZlbnRCcm9hZGNhc3RlcihjbGllbnQpOworCisgICAgICAgIFNjcm9sbGVyIHNjcm9sbGVyID0gbnVsbDsKKyAgICAgICAgaWYgKHNldHRpbmdzLmdldFNjcm9sbGFibGUoKSkgeworICAgICAgICAgICAgc2Nyb2xsZXIgPSBuZXcgU2Nyb2xsZXIoaG9yelNiLCB2ZXJ0U2IpOworICAgICAgICB9CisKKyAgICAgICAgU3R5bGVkVGV4dENsaXBib2FyZCB0ZXh0Q2xpcGJvYXJkID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZWRUZXh0Q2xpcGJvYXJkLmdldENsaXBib2FyZEZvcihjbGlwYm9hcmQpOworCisgICAgICAgIGZUZXh0ID0gbmV3IFN0eWxlZFRleHQoKTsKKyAgICAgICAgaWYgKGluaXRpYWxUZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZUZXh0LmFwcGVuZChpbml0aWFsVGV4dCk7CisgICAgICAgIH0KKworICAgICAgICBmVGV4dENvbXBvbmVudCA9IG5ldyBUZXh0Q29tcG9uZW50KGZUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLmdldERlZmF1bHRWYWx1ZXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncy5nZXRXcmFwcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRDb21wb25lbnQuV0lORE9XX1dJRFRILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRDb21wb25lbnQuREVGQVVMVF9JTlNFVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q2xpcGJvYXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLmdldFNjcm9sbGFibGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQnJvYWRjYXN0ZXIpOworCisgICAgICAgIGlmIChzY3JvbGxlciAhPSBudWxsKSB7CisgICAgICAgICAgICBzY3JvbGxlci5zZXRDbGllbnQoZlRleHRDb21wb25lbnQpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBNYXkgaGF2ZSB0byB3YWl0IHVudGlsIGNvbXBvbmVudCBoYXMgaG9zdCB0byBkbyB0aGlzOgorICAgICAgICBpZiAoc2V0dGluZ3MuZ2V0U2VsZWN0YWJsZSgpKSB7CisgICAgICAgICAgICBmU2VsZWN0aW9uID0gbmV3IFRleHRTZWxlY3Rpb24oZlRleHRDb21wb25lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZCcm9hZGNhc3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmUnVuU3RyYXRlZ3kpOworICAgICAgICAgICAgZlNlbGVjdGlvbi5hZGRUb093bmVyKGZUZXh0Q29tcG9uZW50KTsKKyAgICAgICAgICAgIGlmIChzZXR0aW5ncy5nZXRFZGl0YWJsZSgpKSB7CisgICAgICAgICAgICAgICAgZkVkaXRCZWhhdmlvciA9IG5ldyBUZXh0RWRpdEJlaGF2aW9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LCBmU2VsZWN0aW9uLCBmQnJvYWRjYXN0ZXIsIGZSZW1hcCk7CisgICAgICAgICAgICAgICAgZkVkaXRCZWhhdmlvci5hZGRUb093bmVyKGZUZXh0Q29tcG9uZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBGYWtlQ29tcG9uZW50IGdldFRleHRDb21wb25lbnQoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQ7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkZCB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgdG8gdGhlIGxpc3RlbmVycyB3aGljaCB3aWxsCisgICAgICogcmVjZWl2ZSB1cGRhdGUgbm90aWZpY2F0aW9ucyBmcm9tIHRoaXMgVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gYWRkCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmQnJvYWRjYXN0ZXIuYWRkTGlzdGVuZXIobGlzdGVuZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgZnJvbSB0aGUgbGlzdGVuZXJzIHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIHVwZGF0ZSBub3RpZmljYXRpb25zIGZyb20gdGhpcyBUZXh0UGFuZWwuCisgICAgICogQHBhcmFtIGxpc3RlbmVyIHRoZSBsaXN0ZW5lciB0byByZW1vdmUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmVMaXN0ZW5lcihUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lcikgeworCisgICAgICAgIGZCcm9hZGNhc3Rlci5yZW1vdmVMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogWW91IGtub3cgd2hhdCB0aGlzIGRvZXMuLi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgcGluKGludCB2YWx1ZSwgaW50IG1pbiwgaW50IG1heCkgeworCisgICAgICAgIGlmIChtaW4gPiBtYXgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgcmFuZ2UiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh2YWx1ZSA8IG1pbikgeworICAgICAgICAgICAgdmFsdWUgPSBtaW47CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAodmFsdWUgPiBtYXgpIHsKKyAgICAgICAgICAgIHZhbHVlID0gbWF4OworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKy8vPT09PT09PT09PT09CisvLyBUZXh0IEFjY2VzcworLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZG9jdW1lbnQgdG8gPHR0Pm5ld1RleHQ8L3R0Pi4gIFRoaXMgb3BlcmF0aW9uCisgICAgICogbW9kaWZpZXMgdGhlIHRleHQgaW4gdGhlIFRleHRQYW5lbC4gIEl0IGRvZXMgbm90IG1vZGlmeSBvciBhZG9wdAorICAgICAqIDx0dD5uZXdUZXh0PC90dD4uICBUaGlzIG1ldGhvZCBzZXRzIHRoZSBzZWxlY3Rpb24gYW4gaW5zZXJ0aW9uIHBvaW50IGF0CisgICAgICogdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB3aGljaCB3aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KE1Db25zdFRleHQgbmV3VGV4dCkgeworCisgICAgICAgIHJlcGxhY2VSYW5nZShuZXdUZXh0LCAwLCBnZXRUZXh0TGVuZ3RoKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgZ2l2ZW4gdGV4dCB0byB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudC4gIEVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+aW5zZXJ0KG5ld1RleHQsIGdldFRleHRMZW5ndGgoKSk8L3R0Pi4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB0byBhcHBlbmQgdG8gdGhlIGRvY3VtZW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwZW5kKE1Db25zdFRleHQgbmV3VGV4dCkgeworCisgICAgICAgIGludCBsZW5ndGggPSBnZXRUZXh0TGVuZ3RoKCk7CisgICAgICAgIHJlcGxhY2VSYW5nZShuZXdUZXh0LCBsZW5ndGgsIGxlbmd0aCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5zZXJ0IHRoZSBnaXZlbiB0ZXh0IGludG8gdGhlIGRvY3VtZW50IGF0IHRoZSBnaXZlbiBwb3NpdGlvbi4KKyAgICAgKiBFcXVpdmFsZW50IHRvCisgICAgICogPHR0PnJlcGxhY2VSYW5nZShuZXdUZXh0LCBwb3NpdGlvbiwgcG9zaXRpb24pPC90dD4uCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgdG8gaW5zZXJ0IGludG8gdGhlIGRvY3VtZW50LgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gaW4gdGhlIGRvY3VtZW50IHdoZXJlIHRoZQorICAgICAqICAgICB0ZXh0IHdpbGwgYmUgaW5zZXJ0ZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbnNlcnQoTUNvbnN0VGV4dCBuZXdUZXh0LCBpbnQgcG9zaXRpb24pIHsKKworICAgICAgICByZXBsYWNlUmFuZ2UobmV3VGV4dCwgcG9zaXRpb24sIHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHRoZSBnaXZlbiByYW5nZSB3aXRoIDx0dD5uZXdUZXh0PC90dD4uICBBZnRlciB0aGlzCisgICAgICogb3BlcmF0aW9uIHRoZSBzZWxlY3Rpb24gcmFuZ2UgaXMgYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZQorICAgICAqIGVuZCBvZiB0aGUgbmV3IHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgd2l0aCB3aGljaCB0byByZXBsYWNlIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByYW5nZSB0byByZXBsYWNlCisgICAgICogQHBhcmFtIGVuZCB0aGUgZW5kIG9mIHRoZSByYW5nZSB0byByZXBsYWNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZVJhbmdlKE1Db25zdFRleHQgbmV3VGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisKKyAgICAgICAgaW50IGxlbmd0aCA9IGdldFRleHRMZW5ndGgoKTsKKworICAgICAgICBzdGFydCA9IHBpbihzdGFydCwgMCwgbGVuZ3RoKTsKKyAgICAgICAgZW5kID0gcGluKGVuZCwgc3RhcnQsIGxlbmd0aCk7CisKKyAgICAgICAgaWYgKGZTZWxlY3Rpb24gIT0gbnVsbCkgeworCisgICAgICAgICAgICAvLyBJZiB3ZSdyZSBzZWxlY3RhYmxlLCBidXQgbm90IGVkaXRhYmxlLCB3ZSdsbCB0ZW1wb3JhcmlseQorICAgICAgICAgICAgLy8gbWFrZSBvdXJzZWx2ZXMgZWRpdGFibGUgdG8gY2hhbmdlIHRoZSB0ZXh0LiAgQSBsaXR0bGUgZnVubnkKKyAgICAgICAgICAgIC8vIGJ1dCB0aGVyZSdzIGEgbG90IG9mIGNvZGUgZm9yIGdldHRpbmcgY2FyZXQgc3R1ZmYgcmlnaHQsCisgICAgICAgICAgICAvLyBhbmQgdGhpcyBpcyBub3QgYSBjb21tb24gb3BlcmF0aW9uIGFueXdheS4KKworICAgICAgICAgICAgVGV4dEVkaXRCZWhhdmlvciBiZWhhdmlvcjsKKworICAgICAgICAgICAgaWYgKGZFZGl0QmVoYXZpb3IgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGJlaGF2aW9yID0gbmV3IFRleHRFZGl0QmVoYXZpb3IoZlRleHRDb21wb25lbnQsIGZTZWxlY3Rpb24sIGZCcm9hZGNhc3RlciwgZlJlbWFwKTsKKyAgICAgICAgICAgICAgICBiZWhhdmlvci5hZGRUb093bmVyKGZUZXh0Q29tcG9uZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGJlaGF2aW9yID0gZkVkaXRCZWhhdmlvcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTZWxlY3Rpb24gPSBuZXcgVGV4dE9mZnNldChzdGFydCArIG5ld1RleHQubGVuZ3RoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUKTsKKworICAgICAgICAgICAgVGV4dFJlcGxhY2VtZW50IHJlcGxhY2VtZW50ID0gbmV3IFRleHRSZXBsYWNlbWVudChzdGFydCwgZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTZWxlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1NlbGVjdGlvbik7CisKKyAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5SRVBMQUNFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50KTsKKyAgICAgICAgICAgIGlmIChmRWRpdEJlaGF2aW9yID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBiZWhhdmlvci5yZW1vdmVGcm9tT3duZXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKworICAgICAgICAgICAgTVRleHQgb2xkVGV4dCA9IGZUZXh0Q29tcG9uZW50LmdldE1vZGlmaWFibGVUZXh0KCk7CisgICAgICAgICAgICBmVGV4dENvbXBvbmVudC5zdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKyAgICAgICAgICAgIG9sZFRleHQucmVwbGFjZUFsbChuZXdUZXh0KTsKKyAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LnJlZm9ybWF0QW5kRHJhd1RleHQoMCwgbmV3VGV4dC5sZW5ndGgoKSwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgVGV4dFBhbmVsLgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgVGV4dFBhbmVsCisgICAgICovCisgICAgcHVibGljIGludCBnZXRUZXh0TGVuZ3RoKCkgeworCisgICAgICAgIHJldHVybiBmVGV4dENvbXBvbmVudC5nZXRUZXh0KCkubGVuZ3RoKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBUZXh0UGFuZWwuCisgICAgICogQHJldHVybiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgVGV4dFBhbmVsLgorICAgICAqLworICAgIHB1YmxpYyBNQ29uc3RUZXh0IGdldFRleHQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZUZXh0Q29tcG9uZW50LmdldFRleHQoKTsKKyAgICB9CisKKy8vPT09PT09PT09PT09CisvLyBTZWxlY3Rpb24gQWNjZXNzCisvLz09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSBzZWxlY3Rpb24uCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25TdGFydCgpIHsKKworICAgICAgICBpZiAoZlNlbGVjdGlvbiAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZlNlbGVjdGlvbi5nZXRTdGFydCgpLmZPZmZzZXQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvbkVuZCgpIHsKKworICAgICAgICBpZiAoZlNlbGVjdGlvbiAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZlNlbGVjdGlvbi5nZXRFbmQoKS5mT2Zmc2V0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gPHR0PnNlbGVjdChzZWxlY3Rpb25TdGFydCwgZ2V0U2VsZWN0aW9uRW5kKCkpPC90dD4uCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvblN0YXJ0KGludCBzZWxlY3Rpb25TdGFydCkgeworCisgICAgICAgIHNlbGVjdChzZWxlY3Rpb25TdGFydCwgZ2V0U2VsZWN0aW9uRW5kKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UuICBUaGlzIGlzCisgICAgICogZXF1aXZhbGVudCB0byA8dHQ+c2VsZWN0KGdldFNlbGVjdGlvblN0YXJ0KCksIHNlbGVjdGlvbkVuZCk8L3R0Pi4KKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uU3RhcnQgdGhlIHN0YXJ0IG9mIHRoZSBuZXcgc2VsZWN0aW9uIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2VsZWN0aW9uRW5kKGludCBzZWxlY3Rpb25FbmQpIHsKKworICAgICAgICBzZWxlY3QoZ2V0U2VsZWN0aW9uU3RhcnQoKSwgc2VsZWN0aW9uRW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGlvbiByYW5nZSB0byBhbiBpbnNlcnRpb24gcG9pbnQgYXQgdGhlIGdpdmVuCisgICAgICogb2Zmc2V0LiAgVGhpcyBpcyBlcXVpdmFsZW50IHRvCisgICAgICogPHR0PnNlbGVjdChwb3NpdGlvbiwgcG9zaXRpb24pPC90dD4uCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBvZmZzZXQgb2YgdGhlIG5ldyBpbnNlcnRpb24gcG9pbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDYXJldFBvc2l0aW9uKGludCBwb3NpdGlvbikgeworCisgICAgICAgIHNlbGVjdChwb3NpdGlvbiwgcG9zaXRpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc2VsZWN0aW9uIHJhbmdlIHRvIHRoZSBnaXZlbiByYW5nZS4gIFRoZSByYW5nZSBzdGFydAorICAgICAqIGlzIHBpbm5lZCBiZXR3ZWVuIDAgYW5kIHRoZSB0ZXh0IGxlbmd0aDsgIHRoZSByYW5nZSBlbmQgaXMgcGlubmVkCisgICAgICogYmV0d2VlbiB0aGUgcmFuZ2Ugc3RhcnQgYW5kIHRoZSBlbmQgb2YgdGhlIHRleHQuICBUaGVzZSBzZW1hbnRpY3MKKyAgICAgKiBhcmUgaWRlbnRpY2FsIHRvIHRob3NlIG9mIDx0dD5qYXZhLmF3dC5UZXh0Q29tcG9uZW50PC90dD4uCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dCBpcyBub3Qgc2VsZWN0YWJsZS4KKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uU3RhcnQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlCisgICAgICogQHBhcmFtIHNlbGVjdGlvbkVuZCB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoaW50IHNlbGVjdGlvblN0YXJ0LCBpbnQgc2VsZWN0aW9uRW5kKSB7CisKKyAgICAgICAgaW50IGxlbmd0aCA9IGdldFRleHRMZW5ndGgoKTsKKworICAgICAgICBzZWxlY3Rpb25TdGFydCA9IHBpbihzZWxlY3Rpb25TdGFydCwgMCwgbGVuZ3RoKTsKKyAgICAgICAgc2VsZWN0aW9uRW5kID0gcGluKHNlbGVjdGlvbkVuZCwgc2VsZWN0aW9uU3RhcnQsIGxlbmd0aCk7CisKKyAgICAgICAgVGV4dFJhbmdlIHJhbmdlID0gbmV3IFRleHRSYW5nZShzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTsKKyAgICAgICAgZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLlNFTEVDVCwgcmFuZ2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbGVjdCBhbGwgb2YgdGhlIHRleHQgaW4gdGhlIGRvY3VtZW50LiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZSB0ZXh0IGlzIG5vdCBzZWxlY3RhYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNlbGVjdEFsbCgpIHsKKworICAgICAgICBzZWxlY3QoMCwgZ2V0VGV4dExlbmd0aCgpKTsKKyAgICB9CisKKworLy89PT09PT09PT09PT0KKy8vIEZvcm1hdCBXaWR0aAorLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdG90YWwgZm9ybWF0IHdpZHRoLCBpbiBwaXhlbHMuICBUaGUgZm9ybWF0IHdpZHRoIGlzIHRoZQorICAgICAqIHdpZHRoIHRvIHdoaWNoIHRleHQgaXMgd3JhcHBlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXQgd2lkdGgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZvcm1hdFdpZHRoKCkgeworCisgICAgICAgIHJldHVybiBmVGV4dENvbXBvbmVudC5nZXRGb3JtYXRXaWR0aCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBwYXJhZ3JhcGggYXQgdGhlIGdpdmVuIG9mZnNldCBpcyBsZWZ0LXRvLXJpZ2h0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgYW4gb2Zmc2V0IGluIHRoZSB0ZXh0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBwYXJhZ3JhcGggYXQgdGhlIGdpdmVuIG9mZnNldCBpcyBsZWZ0LXRvLXJpZ2h0CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcGFyYWdyYXBoSXNMZWZ0VG9SaWdodChpbnQgb2Zmc2V0KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQucGFyYWdyYXBoSXNMZWZ0VG9SaWdodChvZmZzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSB1bmRvbmUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSB1bmRvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY2FuVW5kbygpIHsKKworICAgICAgICBpZiAoZkVkaXRCZWhhdmlvciAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkVkaXRCZWhhdmlvci5jYW5VbmRvKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgcmVkb25lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgcmVkb25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNhblJlZG8oKSB7CisKKyAgICAgICAgaWYgKGZFZGl0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZFZGl0QmVoYXZpb3IuY2FuUmVkbygpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNsaXBib2FyZCBjb250YWlucyBjb250ZW50cyB3aGljaCBjb3VsZCBiZQorICAgICAqIHRyYW5zZmVyZWQgaW50byB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNsaXBib2FyZCBoYXMgdGV4dCBjb250ZW50LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNsaXBib2FyZE5vdEVtcHR5KCkgeworCisgICAgICAgIHJldHVybiBmVGV4dENvbXBvbmVudC5nZXRDbGlwYm9hcmQoKS5oYXNDb250ZW50cygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVNYXAgb2Yga2V5cyB3aXRoIGRlZmF1bHQgdmFsdWVzLiAgVGhlIGRlZmF1bHQKKyAgICAgKiB2YWx1ZXMgYXJlIHVzZWQgd2hlbiBkaXNwbGF5aW5nIHRleHQgZm9yIHZhbHVlcyB3aGljaCBhcmUgbm90CisgICAgICogc3BlY2lmaWVkIGluIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlTWFwIG9mIGRlZmF1bHQga2V5LXZhbHVlIHBhaXJzCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBnZXREZWZhdWx0VmFsdWVzKCkgeworCisgICAgICAgIHJldHVybiBmVGV4dENvbXBvbmVudC5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gb2JqZWN0c0FyZUVxdWFsKE9iamVjdCBsaHMsIE9iamVjdCByaHMpIHsKKyAgICAKKyAgICAgICAgaWYgKGxocyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gcmhzID09IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gbGhzLmVxdWFscyhyaHMpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0IGNvbnNpc3RlbnRDaGFyU3R5bGUoTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QgZGVmYXVsdFZhbHVlKSB7CisKKyAgICAgICAgaWYgKHN0YXJ0ID49IGxpbWl0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIHJhbmdlLiIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJ1blN0YXJ0ID0gc3RhcnQ7CisgICAgICAgIE9iamVjdCBpbml0aWFsVmFsdWUgPSB0ZXh0LmNoYXJhY3RlclN0eWxlQXQocnVuU3RhcnQpLmdldChrZXkpOworCisgICAgICAgIGlmIChpbml0aWFsVmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgaW5pdGlhbFZhbHVlID0gZGVmYXVsdFZhbHVlOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChydW5TdGFydCA9IHRleHQuY2hhcmFjdGVyU3R5bGVMaW1pdChydW5TdGFydCk7CisgICAgICAgICAgICAgcnVuU3RhcnQgPCBsaW1pdDsKKyAgICAgICAgICAgICBydW5TdGFydCA9IHRleHQuY2hhcmFjdGVyU3R5bGVMaW1pdChydW5TdGFydCkpIHsKKworICAgICAgICAgICAgT2JqZWN0IG5leHRWYWx1ZSA9IHRleHQuY2hhcmFjdGVyU3R5bGVBdChydW5TdGFydCkuZ2V0KGtleSk7CisKKyAgICAgICAgICAgIGlmIChuZXh0VmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG5leHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFvYmplY3RzQXJlRXF1YWwoaW5pdGlhbFZhbHVlLCBuZXh0VmFsdWUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE1UZXh0UGFuZWwuTVVMVElQTEVfVkFMVUVTOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpbnNwZWN0cyB0aGUgY2hhcmFjdGVyIHN0eWxlIHJ1bnMgaW4gdGhlIHNlbGVjdGlvbgorICAgICAqIHJhbmdlIChvciB0aGUgdHlwaW5nIHN0eWxlIGF0IHRoZSBpbnNlcnRpb24gcG9pbnQpIGFuZCByZXR1cm5zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+VGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PiwgaWYgdGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PgorICAgICAqIGlzIHRoZSBzYW1lIGluIGFsbCBvZiB0aGUgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uLCBvcjwvbGk+CisgICAgICogPGxpPm51bGwsIGlmIHR3byBvciBtb3JlIHN0eWxlIHJ1bnMgaGF2ZSBkaWZmZXJlbnQgdmFsdWVzIGZvciA8dHQ+a2V5PC90dD4uPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqIElmIGEgc3R5bGUgcnVuIGRvZXMgbm90IGNvbnRhaW4gPHR0PmtleTwvdHQ+LAorICAgICAqIGl0cyB2YWx1ZSBpcyBjb25zaWRlcmVkIHRvIGJlIDx0dD5kZWZhdWx0U3R5bGU8L3R0Pi4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgdGhlIGltcGxpY2l0IHZhbHVlIG9mIDx0dD5rZXk8L3R0PiBpbgorICAgICAqICAgICBzdHlsZSBydW5zIHdoZXJlIDx0dD5rZXk8L3R0PiBpcyBub3QgZGVmaW5lZAorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uKE9iamVjdCBrZXkpIHsKKworICAgICAgICBUZXh0UmFuZ2Ugc2VsUmFuZ2U7CisgICAgICAgIGlmIChmU2VsZWN0aW9uICE9IG51bGwpCisgICAgICAgICAgICBzZWxSYW5nZSA9IGZTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uUmFuZ2UoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2VsUmFuZ2UgPSBuZXcgVGV4dFJhbmdlKDAsIDApOworCisgICAgICAgIGlmIChzZWxSYW5nZS5zdGFydCA9PSBzZWxSYW5nZS5saW1pdCkgeworCisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgY29tcFN0eWxlOworCisgICAgICAgICAgICBpZiAoZkVkaXRCZWhhdmlvciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgY29tcFN0eWxlID0gZkVkaXRCZWhhdmlvci5nZXRJbnNlcnRpb25Qb2ludFN0eWxlKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb21wU3R5bGUgPSBUZXh0RWRpdEJlaGF2aW9yLnR5cGluZ1N0eWxlQXQoZlRleHQsIHNlbFJhbmdlLnN0YXJ0LCBzZWxSYW5nZS5saW1pdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IGNvbXBTdHlsZS5nZXQoa2V5KTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZT09bnVsbD8gZ2V0RGVmYXVsdFZhbHVlcygpLmdldChrZXkpIDogdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gY29uc2lzdGVudENoYXJTdHlsZShmVGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxSYW5nZS5zdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbFJhbmdlLmxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RGVmYXVsdFZhbHVlcygpLmdldChrZXkpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGluc3BlY3RzIHRoZSBwYXJhZ3JhcGggc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uCisgICAgICogcmFuZ2UgKG9yIHRoZSB0eXBpbmcgc3R5bGUgYXQgdGhlIGluc2VydGlvbiBwb2ludCkgYW5kIHJldHVybnM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5UaGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+LCBpZiB0aGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+CisgICAgICogaXMgdGhlIHNhbWUgaW4gYWxsIG9mIHRoZSBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24sIG9yPC9saT4KKyAgICAgKiA8bGk+bnVsbCwgaWYgdHdvIG9yIG1vcmUgc3R5bGUgcnVucyBoYXZlIGRpZmZlcmVudCB2YWx1ZXMgZm9yIDx0dD5rZXk8L3R0Pi48L2xpPgorICAgICAqIDwvdWw+CisgICAgICogSWYgYSBzdHlsZSBydW4gZG9lcyBub3QgY29udGFpbiA8dHQ+a2V5PC90dD4sCisgICAgICogaXRzIHZhbHVlIGlzIGNvbnNpZGVyZWQgdG8gYmUgPHR0PmRlZmF1bHRTdHlsZTwvdHQ+LgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBmb3IgY29uZmlndXJpbmcgc3R5bGUgbWVudXMuCisgICAgICogQHBhcmFtIGtleSB0aGUga2V5IHVzZWQgdG8gcmV0cmlldmUgdmFsdWVzIGZvciBjb21wYXJpc29uCisgICAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZSB0aGUgaW1wbGljaXQgdmFsdWUgb2YgPHR0PmtleTwvdHQ+IGluCisgICAgICogICAgIHN0eWxlIHJ1bnMgd2hlcmUgPHR0PmtleTwvdHQ+IGlzIG5vdCBkZWZpbmVkCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb24oT2JqZWN0IGtleSkgeworCisgICAgICAgIFRleHRSYW5nZSBzZWxSYW5nZTsKKyAgICAgICAgaWYgKGZTZWxlY3Rpb24gIT0gbnVsbCkgeworICAgICAgICAgICAgc2VsUmFuZ2UgPSBmU2VsZWN0aW9uLmdldFNlbGVjdGlvblJhbmdlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzZWxSYW5nZSA9IG5ldyBUZXh0UmFuZ2UoMCwgMCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2VsUmFuZ2Uuc3RhcnQgPT0gc2VsUmFuZ2UubGltaXQpIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBwU3R5bGUgPSBmVGV4dC5wYXJhZ3JhcGhTdHlsZUF0KHNlbFJhbmdlLnN0YXJ0KTsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IHBTdHlsZS5nZXQoa2V5KTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZT09bnVsbD8gZ2V0RGVmYXVsdFZhbHVlcygpLmdldChrZXkpIDogdmFsdWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgcGFyYWdyYXBoU3RhcnQgPSBzZWxSYW5nZS5zdGFydDsKKyAgICAgICAgICAgIE9iamVjdCBkZWZhdWx0VmFsdWUgPSBnZXREZWZhdWx0VmFsdWVzKCkuZ2V0KGtleSk7CisgICAgICAgICAgICBPYmplY3QgaW5pdGlhbFZhbHVlID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChwYXJhZ3JhcGhTdGFydCkuZ2V0KGtleSk7CisgICAgICAgICAgICBpZiAoaW5pdGlhbFZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWUgPSBkZWZhdWx0VmFsdWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAocGFyYWdyYXBoU3RhcnQgPSBmVGV4dC5wYXJhZ3JhcGhMaW1pdChwYXJhZ3JhcGhTdGFydCk7CisgICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0YXJ0IDwgc2VsUmFuZ2UubGltaXQ7CisgICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0YXJ0ID0gZlRleHQucGFyYWdyYXBoTGltaXQocGFyYWdyYXBoU3RhcnQpKSB7CisKKyAgICAgICAgICAgICAgICBPYmplY3QgbmV4dFZhbHVlID0gZlRleHQucGFyYWdyYXBoU3R5bGVBdChwYXJhZ3JhcGhTdGFydCkuZ2V0KGtleSk7CisgICAgICAgICAgICAgICAgaWYgKG5leHRWYWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIG5leHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoIW9iamVjdHNBcmVFcXVhbChpbml0aWFsVmFsdWUsIG5leHRWYWx1ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1UZXh0UGFuZWwuTVVMVElQTEVfVkFMVUVTOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgc2VsZWN0ZWQgdGV4dCBmcm9tIHRoZSBkb2N1bWVudCBhbmQgcGxhY2UgaXQKKyAgICAgKiBvbiB0aGUgY2xpcGJvYXJkLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dAorICAgICAqIGlzIG5vdCBlZGl0YWJsZSwgb3IgaWYgbm8gdGV4dCBpcyBzZWxlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjdXQoKSB7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5DVVQsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBsYWNlIHRoZSBzZWxlY3RlZCB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQuICBUaGlzIG1ldGhvZCBoYXMKKyAgICAgKiBubyBlZmZlY3QgaWYgbm8gdGV4dCBpcyBzZWxlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb3B5KCkgeworICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuQ09QWSwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZSB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHRleHQgd2l0aCB0aGUgdGV4dCBvbiB0aGUgY2xpcGJvYXJkLgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQgaXMgbm90IGVkaXRhYmxlLCBvciBpZiBubworICAgICAqIHRleHQgaXMgb24gdGhlIGNsaXBib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYXN0ZSgpIHsKKyAgICAgICAgZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLlBBU1RFLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgc2VsZWN0ZWQgdGV4dCBmcm9tIHRoZSBkb2N1bWVudCwgd2l0aG91dCBhbHRlcmluZyB0aGUgY2xpcGJvYXJkLgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlCisgICAgICogdGV4dCBpcyBub3QgZWRpdGFibGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5DTEVBUiwgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5kbyB0aGUgbW9zdCByZWNlbnQgdGV4dCBjaGFuZ2UuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlcmUgaXMgbm8gY2hhbmdlIHRvIHVuZG8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgdW5kbygpIHsKKyAgICAgICAgZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLlVORE8sIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZG8gdGhlIG1vc3QgcmVjZW50IHRleHQgY2hhbmdlLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZXJlIGlzIG5vIGNoYW5nZSB0byByZWRvLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlZG8oKSB7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5SRURPLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Q29tbWFuZExvZ1NpemUoKSB7CisKKyAgICAgICAgaWYgKGZFZGl0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZFZGl0QmVoYXZpb3IuZ2V0Q29tbWFuZExvZ1NpemUoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkLiAgQWxsCisgICAgICogcmVkb2FibGUgY29tbWFuZHMgYXJlIHJlbW92ZWQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICogQHBhcmFtIHNpemUgdGhlIG51bWJlciBvZiBjb21tYW5kcyBrZXB0IGluIHRoZSBjb21tYW5kIGxvZworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENvbW1hbmRMb2dTaXplKGludCBzaXplKSB7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5TRVRfQ09NTUFORF9MT0dfU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKHNpemUpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYWxsIGNvbW1hbmRzIGZyb20gdGhlIGNvbW1hbmQgbG9nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNsZWFyQ29tbWFuZExvZygpIHsKKyAgICAgICAgZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLkNMRUFSX0NPTU1BTkRfTE9HLCBudWxsKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZnkgdGhlIGNoYXJhY3RlciBzdHlsZXMgb24gdGhlIHNlbGVjdGVkIGNoYXJhY3RlcnMuICBJZiBubyBjaGFyYWN0ZXJzCisgICAgICogYXJlIHNlbGVjdGVkLCBtb2RpZnkgdGhlIHR5cGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gbW9kaWZpZXIgdGhlIFN0eWxlTW9kaWZpZXIgd2l0aCB3aGljaCB0byBtb2RpZnkgdGhlIHN0eWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24oU3R5bGVNb2RpZmllciBtb2RpZmllcikgeworICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuQ0hBUkFDVEVSX1NUWUxFX01PRCwgbW9kaWZpZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmeSB0aGUgcGFyYWdyYXBoIHN0eWxlcyBpbiBwYXJhZ3JhcGhzIGNvbnRhaW5pbmcgc2VsZWN0ZWQgY2hhcmFjdGVycywgb3IKKyAgICAgKiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGluc2VydGlvbiBwb2ludC4KKyAgICAgKiBAcGFyYW0gbW9kaWZpZXIgdGhlIFN0eWxlTW9kaWZpZXIgd2l0aCB3aGljaCB0byBtb2RpZnkgdGhlIHN0eWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24oU3R5bGVNb2RpZmllciBtb2RpZmllcikgeworICAgICAgICBmVGV4dENvbXBvbmVudC50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuUEFSQUdSQVBIX1NUWUxFX01PRCwgbW9kaWZpZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgS2V5UmVtYXAgdXNlZCB0byBwcm9jZXNzIGtleSBldmVudHMuCisgICAgICogQHJldHVybiB0aGUga2V5IHJlbWFwIHVzZWQgdG8gcHJvY2VzcyBrZXkgZXZlbnRzCisgICAgICogQHNlZSAjc2V0S2V5UmVtYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgS2V5UmVtYXAgZ2V0S2V5UmVtYXAoKSB7CisKKyAgICAgICAgcmV0dXJuIGZSZW1hcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVc2UgdGhlIGdpdmVuIEtleVJlbWFwIHRvIG1hcCBrZXkgZXZlbnRzIHRvIGNoYXJhY3RlcnMuCisgICAgICogT25seSBrZXkKKyAgICAgKiBldmVudHMgYXJlIGFmZmVjdGVkIGJ5IHRoZSByZW1hcDsgIG90aGVyIHRleHQgZW50ZXJpbmcgdGhlCisgICAgICogY29udHJvbCAodmlhIHRoZSBjbGlwYm9hcmQsIGZvciBleGFtcGxlKSBpcyBub3QgYWZmZWN0ZWQKKyAgICAgKiBieSB0aGUgS2V5UmVtYXAuCisgICAgICogPHA+CisgICAgICogRG8gbm90IHBhc3MgPHR0Pm51bGw8L3R0PiB0byB0aGlzIG1ldGhvZCB0byBsZWF2ZSBrZXkKKyAgICAgKiBldmVudHMgdW5tYXBwZWQuICBJbnN0ZWFkLCB1c2UgPHR0PktleVJlbWFwLmdldElkZW50aXR5UmVtYXAoKTwvdHQ+CisgICAgICogQHBhcmFtIHJlbWFwIHRoZSBLZXlSZW1hcCB0byB1c2UgZm9yIG1hcHBpbmcga2V5IGV2ZW50cyB0byBjaGFyYWN0ZXJzCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgcGFyYW1ldGVyIGlzIG51bGwKKyAgICAgKiBAc2VlIEtleVJlbWFwCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0S2V5UmVtYXAoS2V5UmVtYXAgcmVtYXApIHsKKworICAgICAgICBpZiAocmVtYXAgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCJyZW1hcCBjYW4ndCBiZSBudWxsIik7CisgICAgICAgIH0KKworICAgICAgICBmUmVtYXAgPSByZW1hcDsKKyAgICAgICAgaWYgKGZFZGl0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgZkVkaXRCZWhhdmlvci5zZXRLZXlSZW1hcChyZW1hcCk7CisgICAgICAgIH0KKworICAgICAgICBmQnJvYWRjYXN0ZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5LRVlSRU1BUF9DSEFOR0VEKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1vZGlmaWNhdGlvbiBmbGFnIG9mIHRoZSBjdXJyZW50IHRleHQgY2hhbmdlLgorICAgICAqIEBzZWUgI3NldE1vZGlmaWVkCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2RpZmllZCgpIHsKKworICAgICAgICBpZiAoZkVkaXRCZWhhdmlvciAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkVkaXRCZWhhdmlvci5pc01vZGlmaWVkKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZk1vZGlmaWVkOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBtb2RpZmljYXRpb24gZmxhZyBvZiB0aGUgY3VycmVudCB0ZXh0IGNoYW5nZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRNb2RpZmllZChib29sZWFuIG1vZGlmaWVkKSB7CisKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVkID0gZlRleHRDb21wb25lbnQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmVoYXZpb3IuU0VUX01PRElGSUVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQ/IEJvb2xlYW4uVFJVRSA6IEJvb2xlYW4uRkFMU0UpOworICAgICAgICBpZiAoIWhhbmRsZWQpIHsKKyAgICAgICAgICAgIGZNb2RpZmllZCA9IG1vZGlmaWVkOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaXMgZm9yIHBlcmYtdGVzdGluZyBvbmx5IQorICAgICAqLworICAgIHZvaWQgaGFuZGxlS2V5RXZlbnQoamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQga2V5RXZlbnQpIHsKKyAgICAKKyAgICAgICAgQ29tcG9uZW50IGhvc3QgPSBmVGV4dENvbXBvbmVudC5nZXRIb3N0KCk7CisgICAgICAgIGlmIChob3N0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGhvc3QuZGlzcGF0Y2hFdmVudChrZXlFdmVudCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQXJhYmljVHJhbnNsaXRlcmF0aW9uLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQXJhYmljVHJhbnNsaXRlcmF0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjM1NjIxMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9BcmFiaWNUcmFuc2xpdGVyYXRpb24uamF2YQpAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8qCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OCwgQWxsIFJpZ2h0cyBSZXNlcnZlZAorICovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKKy8qCitGb3IgYW55IGluY29taW5nIGNoYXJhY3RlciBDCitpZiB5b3UgY2FuIG1hcCBDIHVzaW5nIHRoZSBmb2xsb3dpbmcgRmFrZUFyYWJpY1RhYmxlLCByZXR1cm4KK0Zha2VBcmFiaWNUYWJsZShDKQorZWxzZSBpZiBDIGlzIGZyb20gQSB0aHJvdWdoIFosIHJldHVybiBGYWtlQXJhYmljVGFibGUobG93ZXJjYXNlKEMpKQorZWxzZSBqdXN0IHJldHVybiBDCisKKworRmFrZUFyYWJpY1RhYmxlIGlzIGRlZmluZWQgYnkgdGhlIGZvbGxvd2luZyBtYXBwaW5nCisKKzAgICAwNjYwO0FSQUJJQy1JTkRJQyBESUdJVCBaRVJPO05kOzA7QU47OzA7MDswO047Ozs7OworMSAgIDA2NjE7QVJBQklDLUlORElDIERJR0lUIE9ORTtOZDswO0FOOzsxOzE7MTtOOzs7OzsKKzIgICAwNjYyO0FSQUJJQy1JTkRJQyBESUdJVCBUV087TmQ7MDtBTjs7MjsyOzI7Tjs7Ozs7CiszICAgMDY2MztBUkFCSUMtSU5ESUMgRElHSVQgVEhSRUU7TmQ7MDtBTjs7MzszOzM7Tjs7Ozs7Cis0ICAgMDY2NDtBUkFCSUMtSU5ESUMgRElHSVQgRk9VUjtOZDswO0FOOzs0OzQ7NDtOOzs7OzsKKzUgICAwNjY1O0FSQUJJQy1JTkRJQyBESUdJVCBGSVZFO05kOzA7QU47OzU7NTs1O047Ozs7OworNiAgIDA2NjY7QVJBQklDLUlORElDIERJR0lUIFNJWDtOZDswO0FOOzs2OzY7NjtOOzs7OzsKKzcgICAwNjY3O0FSQUJJQy1JTkRJQyBESUdJVCBTRVZFTjtOZDswO0FOOzs3Ozc7NztOOzs7OzsKKzggICAwNjY4O0FSQUJJQy1JTkRJQyBESUdJVCBFSUdIVDtOZDswO0FOOzs4Ozg7ODtOOzs7OzsKKzkgICAwNjY5O0FSQUJJQy1JTkRJQyBESUdJVCBOSU5FO05kOzA7QU47Ozk7OTs5O047Ozs7OworCislICAgMDY2QTtBUkFCSUMgUEVSQ0VOVCBTSUdOO1BvOzA7RVQ7Ozs7O047Ozs7OworLiAgIDA2NkI7QVJBQklDIERFQ0lNQUwgU0VQQVJBVE9SO1BvOzA7QU47Ozs7O047Ozs7OworLCAgIDA2MEM7QVJBQklDIENPTU1BO1BvOzA7Ujs7Ozs7Tjs7Ozs7CistICAgMDY0MDtBUkFCSUMgVEFUV0VFTDtMbTswO1I7Ozs7O047Ozs7OworJyAgIDA2NTI7QVJBQklDIFNVS1VOO01uOzM0O1I7Ozs7O047Ozs7OworIiAgIDA2NTE7QVJBQklDIFNIQUREQTtNbjszMztSOzs7OztOO0FSQUJJQyBTSEFEREFIOzs7OworOyAgIDA2MUI7QVJBQklDIFNFTUlDT0xPTjtQbzswO1I7Ozs7O047Ozs7OworPyAgIDA2MUY7QVJBQklDIFFVRVNUSU9OIE1BUks7UG87MDtSOzs7OztOOzs7OzsKKworYSAgIDA2Mjc7QVJBQklDIExFVFRFUiBBTEVGO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitBICAgMDYzOTtBUkFCSUMgTEVUVEVSIEFJTjtMbzswO1I7Ozs7O047Ozs7OworYiAgIDA2Mjg7QVJBQklDIExFVFRFUiBCRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgQkFBOzs7OworYyAgIDA2MzU7QVJBQklDIExFVFRFUiBTQUQ7TG87MDtSOzs7OztOOzs7OzsKK2QgICAwNjJGO0FSQUJJQyBMRVRURVIgREFMO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitEICAgMDYzMDtBUkFCSUMgTEVUVEVSIFRIQUw7TG87MDtSOzs7OztOOzs7OzsKK0UgICAwNjRCO0FSQUJJQyBGQVRIQVRBTjtNbjsyNztSOzs7OztOOzs7OzsKK2UgICAwNjRFO0FSQUJJQyBGQVRIQTtNbjszMDtSOzs7OztOO0FSQUJJQyBGQVRIQUg7Ozs7CitmICAgMDY0MTtBUkFCSUMgTEVUVEVSIEZFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBGQTs7OzsKK2cgICAwNjNBO0FSQUJJQyBMRVRURVIgR0hBSU47TG87MDtSOzs7OztOOzs7OzsKK2ggICAwNjJEO0FSQUJJQyBMRVRURVIgSEFIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBQTs7OzsKK0ggICAwNjQ3O0FSQUJJQyBMRVRURVIgSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEhBOzs7OworSSAgIDA2NEQ7QVJBQklDIEtBU1JBVEFOO01uOzI5O1I7Ozs7O047Ozs7OworaSAgIDA2NTA7QVJBQklDIEtBU1JBO01uOzMyO1I7Ozs7O047QVJBQklDIEtBU1JBSDs7OzsKK2ogICAwNjJDO0FSQUJJQyBMRVRURVIgSkVFTTtMbzswO1I7Ozs7O047Ozs7OworSyAgIDA2MkU7QVJBQklDIExFVFRFUiBLSEFIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEtIQUE7Ozs7CitrICAgMDY0MztBUkFCSUMgTEVUVEVSIEtBRjtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBDQUY7Ozs7CitsICAgMDY0NDtBUkFCSUMgTEVUVEVSIExBTTtMbzswO1I7Ozs7O047Ozs7OworbSAgIDA2NDU7QVJBQklDIExFVFRFUiBNRUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CituICAgMDY0NjtBUkFCSUMgTEVUVEVSIE5PT047TG87MDtSOzs7OztOOzs7OzsKK28gICAwNjRGO0FSQUJJQyBEQU1NQTtNbjszMTtSOzs7OztOO0FSQUJJQyBEQU1NQUg7Ozs7CitwICAgMDYyODtBUkFCSUMgTEVUVEVSIEJFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBCQUE7Ozs7CitxICAgMDY0MjtBUkFCSUMgTEVUVEVSIFFBRjtMbzswO1I7Ozs7O047Ozs7OworciAgIDA2MzE7QVJBQklDIExFVFRFUiBSRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgUkE7Ozs7CitzICAgMDYzMztBUkFCSUMgTEVUVEVSIFNFRU47TG87MDtSOzs7OztOOzs7OzsKK1MgICAwNjM0O0FSQUJJQyBMRVRURVIgU0hFRU47TG87MDtSOzs7OztOOzs7OzsKK3QgICAwNjJBO0FSQUJJQyBMRVRURVIgVEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRBQTs7OzsKK1QgICAwNjJCO0FSQUJJQyBMRVRURVIgVEhFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBUSEFBOzs7OworVSAgIDA2NEM7QVJBQklDIERBTU1BVEFOO01uOzI4O1I7Ozs7O047Ozs7OwordSAgIDA2NEY7QVJBQklDIERBTU1BO01uOzMxO1I7Ozs7O047QVJBQklDIERBTU1BSDs7OzsKK3YgICAwNjQxO0FSQUJJQyBMRVRURVIgRkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBOzs7OwordyAgIDA2NDg7QVJBQklDIExFVFRFUiBXQVc7TG87MDtSOzs7OztOOzs7OzsKK3ggICAwNjMzO0FSQUJJQyBMRVRURVIgU0VFTjtMbzswO1I7Ozs7O047Ozs7OworeSAgIDA2NEE7QVJBQklDIExFVFRFUiBZRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgWUE7Ozs7Cit6ICAgMDYzMjtBUkFCSUMgTEVUVEVSIFpBSU47TG87MDtSOzs7OztOOzs7OzsKK1ogICAwNjM4O0FSQUJJQyBMRVRURVIgWkFIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIERIQUg7Ozs7CisKKyovCisKKy8qKgorICogVGhpcyBjbGFzcyBpbXBsZW1lbnRzIEtleVJlbWFwIHRvIHByb2R1Y2UgdHJhbnNsaXRlcmF0ZWQgQXJhYmljCisgKiBjaGFyYWN0ZXJzIGZyb20gTGF0aW4tMSBjaGFyYWN0ZXJzLgorICovCisKK2ZpbmFsIGNsYXNzIEFyYWJpY1RyYW5zbGl0ZXJhdGlvbiBleHRlbmRzIEtleVJlbWFwIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIGNoYXIgcmVtYXAoY2hhciBjKSB7CisKKyAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICBjYXNlICcwJzogcmV0dXJuICdcdTA2NjAnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgWkVSTworICAgICAgICAgICAgY2FzZSAnMSc6IHJldHVybiAnXHUwNjYxJzsgLy8gQVJBQklDLUlORElDIERJR0lUIE9ORQorICAgICAgICAgICAgY2FzZSAnMic6IHJldHVybiAnXHUwNjYyJzsgLy8gQVJBQklDLUlORElDIERJR0lUIFRXTworICAgICAgICAgICAgY2FzZSAnMyc6IHJldHVybiAnXHUwNjYzJzsgLy8gQVJBQklDLUlORElDIERJR0lUIFRIUkVFCisgICAgICAgICAgICBjYXNlICc0JzogcmV0dXJuICdcdTA2NjQnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgRk9VUgorICAgICAgICAgICAgY2FzZSAnNSc6IHJldHVybiAnXHUwNjY1JzsgLy8gQVJBQklDLUlORElDIERJR0lUIEZJVkUKKyAgICAgICAgICAgIGNhc2UgJzYnOiByZXR1cm4gJ1x1MDY2Nic7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBTSVgKKyAgICAgICAgICAgIGNhc2UgJzcnOiByZXR1cm4gJ1x1MDY2Nyc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBTRVZFTgorICAgICAgICAgICAgY2FzZSAnOCc6IHJldHVybiAnXHUwNjY4JzsgLy8gQVJBQklDLUlORElDIERJR0lUIEVJR0hUCisgICAgICAgICAgICBjYXNlICc5JzogcmV0dXJuICdcdTA2NjknOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgTklORQorCisgICAgICAgICAgICBjYXNlICclJzogcmV0dXJuICdcdTA2NkEnOyAvLyBBUkFCSUMgUEVSQ0VOVCBTSUdOCisgICAgICAgICAgICAvLyB0aGUgVHJhZGl0aW9uYWwgQXJhYmljIGZvbnQgZG9lcyBub3QgY29udGFpbiB0aGlzIGNoYXJhY3RlcgorICAgICAgICAgICAgLy8gY2FzZSAnLic6IHJldHVybiAnXHUwNjZCJzsgLy8gQVJBQklDIERFQ0lNQUwgU0VQQVJBVE9SCisgICAgICAgICAgICBjYXNlICcsJzogcmV0dXJuICdcdTA2MEMnOyAvLyBBUkFCSUMgQ09NTUEKKyAgICAgICAgICAgIGNhc2UgJy0nOiByZXR1cm4gJ1x1MDY0MCc7IC8vIEFSQUJJQyBUQVRXRUVMCisgICAgICAgICAgICBjYXNlICdcJyc6IHJldHVybiAnXHUwNjUyJzsgLy8gQVJBQklDIFNVS1VOCisgICAgICAgICAgICBjYXNlICciJzogcmV0dXJuICdcdTA2NTEnOyAvLyBBUkFCSUMgU0hBRERBCisgICAgICAgICAgICBjYXNlICc7JzogcmV0dXJuICdcdTA2MUInOyAvLyBBUkFCSUMgU0VNSUNPTE9OCisgICAgICAgICAgICBjYXNlICc/JzogcmV0dXJuICdcdTA2MUYnOyAvLyBBUkFCSUMgUVVFU1RJT04gTUFSSworCisgICAgICAgICAgICBjYXNlICdhJzogcmV0dXJuICdcdTA2MjcnOyAvLyBBUkFCSUMgTEVUVEVSIEFMRUYKKyAgICAgICAgICAgIGNhc2UgJ0EnOiByZXR1cm4gJ1x1MDYzOSc7IC8vIEFSQUJJQyBMRVRURVIgQUlOCisgICAgICAgICAgICBjYXNlICdiJzogcmV0dXJuICdcdTA2MjgnOyAvLyBBUkFCSUMgTEVUVEVSIEJFSAorICAgICAgICAgICAgY2FzZSAnQic6IHJldHVybiAnXHUwNjI4JzsgLy8gQVJBQklDIExFVFRFUiBCRUgKKyAgICAgICAgICAgIGNhc2UgJ2MnOiByZXR1cm4gJ1x1MDYzNSc7IC8vIEFSQUJJQyBMRVRURVIgU0FECisgICAgICAgICAgICBjYXNlICdDJzogcmV0dXJuICdcdTA2MzUnOyAvLyBBUkFCSUMgTEVUVEVSIFNBRAorICAgICAgICAgICAgY2FzZSAnZCc6IHJldHVybiAnXHUwNjJGJzsgLy8gQVJBQklDIExFVFRFUiBEQUwKKyAgICAgICAgICAgIGNhc2UgJ0QnOiByZXR1cm4gJ1x1MDYzMCc7IC8vIEFSQUJJQyBMRVRURVIgVEhBTAorICAgICAgICAgICAgY2FzZSAnZSc6IHJldHVybiAnXHUwNjRFJzsgLy8gQVJBQklDIEZBVEhBCisgICAgICAgICAgICBjYXNlICdFJzogcmV0dXJuICdcdTA2NEInOyAvLyBBUkFCSUMgRkFUSEFUQU4KKyAgICAgICAgICAgIGNhc2UgJ2YnOiByZXR1cm4gJ1x1MDY0MSc7IC8vIEFSQUJJQyBMRVRURVIgRkVICisgICAgICAgICAgICBjYXNlICdGJzogcmV0dXJuICdcdTA2NDEnOyAvLyBBUkFCSUMgTEVUVEVSIEZFSAorICAgICAgICAgICAgY2FzZSAnZyc6IHJldHVybiAnXHUwNjNBJzsgLy8gQVJBQklDIExFVFRFUiBHSEFJTgorICAgICAgICAgICAgY2FzZSAnRyc6IHJldHVybiAnXHUwNjNBJzsgLy8gQVJBQklDIExFVFRFUiBHSEFJTgorICAgICAgICAgICAgY2FzZSAnaCc6IHJldHVybiAnXHUwNjJEJzsgLy8gQVJBQklDIExFVFRFUiBIQUgKKyAgICAgICAgICAgIGNhc2UgJ0gnOiByZXR1cm4gJ1x1MDY0Nyc7IC8vIEFSQUJJQyBMRVRURVIgSEVICisgICAgICAgICAgICBjYXNlICdpJzogcmV0dXJuICdcdTA2NTAnOyAvLyBBUkFCSUMgS0FTUkEKKyAgICAgICAgICAgIGNhc2UgJ0knOiByZXR1cm4gJ1x1MDY0RCc7IC8vIEFSQUJJQyBLQVNSQVRBTgorICAgICAgICAgICAgY2FzZSAnaic6IHJldHVybiAnXHUwNjJDJzsgLy8gQVJBQklDIExFVFRFUiBKRUVNCisgICAgICAgICAgICBjYXNlICdKJzogcmV0dXJuICdcdTA2MkMnOyAvLyBBUkFCSUMgTEVUVEVSIEpFRU0KKyAgICAgICAgICAgIGNhc2UgJ2snOiByZXR1cm4gJ1x1MDY0Myc7IC8vIEFSQUJJQyBMRVRURVIgS0FGCisgICAgICAgICAgICBjYXNlICdLJzogcmV0dXJuICdcdTA2MkUnOyAvLyBBUkFCSUMgTEVUVEVSIEtIQUgKKyAgICAgICAgICAgIGNhc2UgJ2wnOiByZXR1cm4gJ1x1MDY0NCc7IC8vIEFSQUJJQyBMRVRURVIgTEFNCisgICAgICAgICAgICBjYXNlICdMJzogcmV0dXJuICdcdTA2NDQnOyAvLyBBUkFCSUMgTEVUVEVSIExBTQorICAgICAgICAgICAgY2FzZSAnbSc6IHJldHVybiAnXHUwNjQ1JzsgLy8gQVJBQklDIExFVFRFUiBNRUVNCisgICAgICAgICAgICBjYXNlICdNJzogcmV0dXJuICdcdTA2NDUnOyAvLyBBUkFCSUMgTEVUVEVSIE1FRU0KKyAgICAgICAgICAgIGNhc2UgJ24nOiByZXR1cm4gJ1x1MDY0Nic7IC8vIEFSQUJJQyBMRVRURVIgTk9PTgorICAgICAgICAgICAgY2FzZSAnTic6IHJldHVybiAnXHUwNjQ2JzsgLy8gQVJBQklDIExFVFRFUiBOT09OCisgICAgICAgICAgICBjYXNlICdvJzogcmV0dXJuICdcdTA2NEYnOyAvLyBBUkFCSUMgREFNTUEKKyAgICAgICAgICAgIGNhc2UgJ08nOiByZXR1cm4gJ1x1MDY0Ric7IC8vIEFSQUJJQyBEQU1NQQorICAgICAgICAgICAgY2FzZSAncCc6IHJldHVybiAnXHUwNjI4JzsgLy8gQVJBQklDIExFVFRFUiBCRUgKKyAgICAgICAgICAgIGNhc2UgJ1AnOiByZXR1cm4gJ1x1MDYyOCc7IC8vIEFSQUJJQyBMRVRURVIgQkVICisgICAgICAgICAgICBjYXNlICdxJzogcmV0dXJuICdcdTA2NDInOyAvLyBBUkFCSUMgTEVUVEVSIFFBRgorICAgICAgICAgICAgY2FzZSAnUSc6IHJldHVybiAnXHUwNjQyJzsgLy8gQVJBQklDIExFVFRFUiBRQUYKKyAgICAgICAgICAgIGNhc2UgJ3InOiByZXR1cm4gJ1x1MDYzMSc7IC8vIEFSQUJJQyBMRVRURVIgUkVICisgICAgICAgICAgICBjYXNlICdSJzogcmV0dXJuICdcdTA2MzEnOyAvLyBBUkFCSUMgTEVUVEVSIFJFSAorICAgICAgICAgICAgY2FzZSAncyc6IHJldHVybiAnXHUwNjMzJzsgLy8gQVJBQklDIExFVFRFUiBTRUVOCisgICAgICAgICAgICBjYXNlICdTJzogcmV0dXJuICdcdTA2MzQnOyAvLyBBUkFCSUMgTEVUVEVSIFNIRUVOCisgICAgICAgICAgICBjYXNlICd0JzogcmV0dXJuICdcdTA2MkEnOyAvLyBBUkFCSUMgTEVUVEVSIFRFSAorICAgICAgICAgICAgY2FzZSAnVCc6IHJldHVybiAnXHUwNjJCJzsgLy8gQVJBQklDIExFVFRFUiBUSEVICisgICAgICAgICAgICBjYXNlICdVJzogcmV0dXJuICdcdTA2NEMnOyAvLyBBUkFCSUMgREFNTUFUQU4KKyAgICAgICAgICAgIGNhc2UgJ3UnOiByZXR1cm4gJ1x1MDY0Ric7IC8vIEFSQUJJQyBEQU1NQQorICAgICAgICAgICAgY2FzZSAndic6IHJldHVybiAnXHUwNjQxJzsgLy8gQVJBQklDIExFVFRFUiBGRUgKKyAgICAgICAgICAgIGNhc2UgJ1YnOiByZXR1cm4gJ1x1MDY0MSc7IC8vIEFSQUJJQyBMRVRURVIgRkVICisgICAgICAgICAgICBjYXNlICd3JzogcmV0dXJuICdcdTA2NDgnOyAvLyBBUkFCSUMgTEVUVEVSIFdBVworICAgICAgICAgICAgY2FzZSAnVyc6IHJldHVybiAnXHUwNjQ4JzsgLy8gQVJBQklDIExFVFRFUiBXQVcKKyAgICAgICAgICAgIGNhc2UgJ3gnOiByZXR1cm4gJ1x1MDYzMyc7IC8vIEFSQUJJQyBMRVRURVIgU0VFTgorICAgICAgICAgICAgY2FzZSAnWCc6IHJldHVybiAnXHUwNjMzJzsgLy8gQVJBQklDIExFVFRFUiBTRUVOCisgICAgICAgICAgICBjYXNlICd5JzogcmV0dXJuICdcdTA2NEEnOyAvLyBBUkFCSUMgTEVUVEVSIFlFSAorICAgICAgICAgICAgY2FzZSAnWSc6IHJldHVybiAnXHUwNjRBJzsgLy8gQVJBQklDIExFVFRFUiBZRUgKKyAgICAgICAgICAgIGNhc2UgJ3onOiByZXR1cm4gJ1x1MDYzMic7IC8vIEFSQUJJQyBMRVRURVIgWkFJTgorICAgICAgICAgICAgY2FzZSAnWic6IHJldHVybiAnXHUwNjM4JzsgLy8gQVJBQklDIExFVFRFUiBaQUgKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9CZWhhdmlvci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0JlaGF2aW9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDRkNjYyNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9CZWhhdmlvci5qYXZhCkBAIC0wLDAgKzEsMjAxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKKworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkZvY3VzRXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VFdmVudDsKKworLyoqIEEgY2xhc3MgdGhhdCBoYW5kbGVzIGV2ZW50cyBmb3IgYSBCZWhhdmlvck93bmVyLgorKiBBIGJlaGF2aW9yIGVuYWNwc3VsYXRlcyBzb21lIHBpZWNlIG9mIHRoZSBldmVudC1oYW5kbGluZyBsb2dpYyBmb3IgYSBjb21wb25lbnQuCisqIFRoaXMgYWxsb3dzIHRoZSBjbGllbnQgdG8gc2VwYXJhdGUgZXZlbnQtaGFuZGxpbmcgbG9naWMgb3V0IGludG8gc2VwYXJhdGUgY2xhc3NlcworKiBhY2NvcmRpbmcgdG8gZnVuY3Rpb24sIG9yIHRvIGR5bmFtaWNhbGx5IGNoYW5nZSB0aGUgd2F5IGEgY29tcG9uZW50IGhhbmRsZXMKKyogZXZlbnRzIHdpdGhvdXQgYWRkaW5nIGEgbG90IG9mIHNwZWNpYWwtY2FzZSBjb2RlIHRvIHRoZSBwYW5lbCBpdHNlbGYuCisqIEJlaGF2aW9ycyBhcmUgc3RvcmVkIGluIGEgbGlua2VkIGxpc3QsIGFuZCBhbGwgYmVoYXZpb3JzIGdldCBhIGNyYWNrIGF0IGFuIGV2ZW50IGJlZm9yZQorKiB0aGUgb3duZXIgZ2V0cyBhIGNyYWNrIGF0IHRoZW0gKHJpZ2h0IG5vdywgd2UgcmVseSBvbiBvYmplY3RzIHRoYXQgaW1wbGVtZW50CisqIEJlaGF2aW9yT3duZXIgdG8gc3VwcG9ydCB0aGVzZSBzZW1hbnRpY3MpLgorKiBCZWhhdmlvciBwcm92aWRlcyBhbGwgdGhlIHNhbWUgZXZlbnQtaGFuZGxpbmcgZnVuY3Rpb25zIHRoYXQgQ29tcG9uZW50IHByb3ZpZGVzLCBhbmQKKyogdGhleSBhbGwgaGF2ZSBleGFjdGx5IHRoZSBzYW1lIHN5bnRheCBhbmQgc2VtYW50aWNzLiAqLworYWJzdHJhY3QgY2xhc3MgQmVoYXZpb3IgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIEJlaGF2aW9yIGZOZXh0QmVoYXZpb3IgPSBudWxsOworICAgIHByaXZhdGUgQmVoYXZpb3JPd25lciBmT3duZXIgPSBudWxsOworCisgICAgc3RhdGljIGNsYXNzIEV2ZW50VHlwZSB7CisKKyAgICAgICAgRXZlbnRUeXBlKCkgeworICAgICAgICB9CisgICAgfQorCisgICAgLy8gZXZlbnRzIC0gc2hvdWxkIHRoZXNlIGJlIGluIFRleHRQYW5lbCAob3IgZWxzZXdoZXJlKT8KKworICAgIC8vIFRoaXMgZXZlbnQncyBXSEFUIHBhcmFtZXRlciBpcyBhIFRleHRSYW5nZSBpbnN0YW5jZQorICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgU0VMRUNUID0gbmV3IEV2ZW50VHlwZSgpOworCisgICAgLy8gTm8gV0hBVCBwYXJhbSBmb3IgdGhlc2U6CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBDVVQgPSBuZXcgRXZlbnRUeXBlKCk7CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBDT1BZID0gbmV3IEV2ZW50VHlwZSgpOworICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgUEFTVEUgPSBuZXcgRXZlbnRUeXBlKCk7CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBDTEVBUiA9IG5ldyBFdmVudFR5cGUoKTsKKyAgICBzdGF0aWMgZmluYWwgRXZlbnRUeXBlIFVORE8gPSBuZXcgRXZlbnRUeXBlKCk7CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBSRURPID0gbmV3IEV2ZW50VHlwZSgpOworICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgQ0xFQVJfQ09NTUFORF9MT0cgPSBuZXcgRXZlbnRUeXBlKCk7CisKKyAgICAvLyBXSEFUIHBhcmFtIGlzIGEgU3R5bGVNb2RpZmllcgorICAgIHN0YXRpYyBmaW5hbCBFdmVudFR5cGUgQ0hBUkFDVEVSX1NUWUxFX01PRCA9IG5ldyBFdmVudFR5cGUoKTsKKyAgICBzdGF0aWMgZmluYWwgRXZlbnRUeXBlIFBBUkFHUkFQSF9TVFlMRV9NT0QgPSBuZXcgRXZlbnRUeXBlKCk7CisKKyAgICAvLyBXaXRoIHRoaXMgZXZlbnQsIHZhbHVlcyBvZiB0aGUgV0hBVCBwYXJhbWV0ZXIgYXJlCisgICAgLy8gZWl0aGVyIEJvb2xlYW4uVFJVRSBvciBCb29sZWFuLkZBTFNFCisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBTRVRfTU9ESUZJRUQgPSBuZXcgRXZlbnRUeXBlKCk7CisKKyAgICAvLyBXSEFUIHBhcmFtIGlzIGEgVGV4dFJlcGxhY2VtZW50CisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBSRVBMQUNFID0gbmV3IEV2ZW50VHlwZSgpOworCisgICAgLy8gV0hBVCBwYXJhbSBpcyBhbiBJbnRlZ2VyCisgICAgc3RhdGljIGZpbmFsIEV2ZW50VHlwZSBTRVRfQ09NTUFORF9MT0dfU0laRSA9IG5ldyBFdmVudFR5cGUoKTsKKworICAgIHB1YmxpYyBCZWhhdmlvcigpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRUb093bmVyKEJlaGF2aW9yT3duZXIgb3duZXIpIHsKKyAgICAgICAgcmVtb3ZlRnJvbU93bmVyKCk7CisgICAgICAgIGZPd25lciA9IG93bmVyOworICAgICAgICBzZXROZXh0QmVoYXZpb3Iob3duZXIuZ2V0QmVoYXZpb3IoKSk7CisgICAgICAgIG93bmVyLnNldEJlaGF2aW9yKHRoaXMpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGZvY3VzR2FpbmVkKEZvY3VzRXZlbnQgZSkgeworICAgICAgICBpZiAoZk5leHRCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3IuZm9jdXNHYWluZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBmb2N1c0xvc3QoRm9jdXNFdmVudCBlKSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5mb2N1c0xvc3QoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlQcmVzc2VkKEtleUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLmtleVByZXNzZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlUeXBlZChLZXlFdmVudCBlKSB7CisKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3Iua2V5VHlwZWQoZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlSZWxlYXNlZChLZXlFdmVudCBlKSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5rZXlSZWxlYXNlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlRHJhZ2dlZChNb3VzZUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLm1vdXNlRHJhZ2dlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlRW50ZXJlZChNb3VzZUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLm1vdXNlRW50ZXJlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICBpZiAoZk5leHRCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3IubW91c2VFeGl0ZWQoZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZU1vdmVkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICBpZiAoZk5leHRCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3IubW91c2VNb3ZlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlUHJlc3NlZChNb3VzZUV2ZW50IGUpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLm1vdXNlUHJlc3NlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlUmVsZWFzZWQoTW91c2VFdmVudCBlKSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5tb3VzZVJlbGVhc2VkKGUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIEJlaGF2aW9yIG5leHRCZWhhdmlvcigpIHsKKyAgICAgICAgcmV0dXJuIGZOZXh0QmVoYXZpb3I7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gcGFpbnQoR3JhcGhpY3MgZywgUmVjdGFuZ2xlIGRyYXdSZWN0KSB7CisgICAgICAgIGlmIChmTmV4dEJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZk5leHRCZWhhdmlvci5wYWludChnLCBkcmF3UmVjdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVGcm9tT3duZXIoKSB7CisgICAgICAgIGlmIChmT3duZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKGZPd25lci5nZXRCZWhhdmlvcigpID09IHRoaXMpCisgICAgICAgICAgICAgICAgZk93bmVyLnNldEJlaGF2aW9yKG5leHRCZWhhdmlvcigpKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIEJlaGF2aW9yICAgIGN1cnJlbnQgPSBmT3duZXIuZ2V0QmVoYXZpb3IoKTsKKworICAgICAgICAgICAgICAgIHdoaWxlIChjdXJyZW50ICE9IG51bGwgJiYgY3VycmVudC5uZXh0QmVoYXZpb3IoKSAhPSB0aGlzKQorICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5uZXh0QmVoYXZpb3IoKTsKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudCAhPSBudWxsKQorICAgICAgICAgICAgICAgICAgICBjdXJyZW50LnNldE5leHRCZWhhdmlvcihuZXh0QmVoYXZpb3IoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXROZXh0QmVoYXZpb3IobnVsbCk7CisgICAgICAgICAgICBmT3duZXIgPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0TmV4dEJlaGF2aW9yKEJlaGF2aW9yIG5leHQpIHsKKyAgICAgICAgZk5leHRCZWhhdmlvciA9IG5leHQ7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gdGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEV2ZW50VHlwZSBldmVudCwgT2JqZWN0IGRhdGEpIHsKKyAgICAgICAgaWYgKGZOZXh0QmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBmTmV4dEJlaGF2aW9yLnRleHRDb250cm9sRXZlbnRPY2N1cnJlZChldmVudCwgZGF0YSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQmVoYXZpb3JPd25lci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0JlaGF2aW9yT3duZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lODJmZWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0JlaGF2aW9yT3duZXIuamF2YQpAQCAtMCwwICsxLDIwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW50ZXJmYWNlIEJlaGF2aW9yT3duZXIgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIEJlaGF2aW9yIGdldEJlaGF2aW9yKCk7CisgICAgcHVibGljIHZvaWQgc2V0QmVoYXZpb3IoQmVoYXZpb3IgYik7Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvQ29tbWFuZC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0NvbW1hbmQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZGRkMjdmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0NvbW1hbmQuamF2YQpAQCAtMCwwICsxLDUzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworYWJzdHJhY3QgY2xhc3MgQ29tbWFuZCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgQ29tbWFuZCBmUHJldmlvdXNDb21tYW5kID0gbnVsbDsKKworICAgIC8vIGZNb2RpZmllZCBpcyB1c2VkIHRvIGtlZXAgYSB0ZXh0TW9kaWZpZWQgZmxhZyBmb3IKKyAgICAvLyBjbGllbnRzCisgICAgcHJpdmF0ZSBib29sZWFuIGZNb2RpZmllZDsKKworICAgIHB1YmxpYyBDb21tYW5kKCkgeworICAgICAgICBmTW9kaWZpZWQgPSB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBDb21tYW5kIHByZXZpb3VzQ29tbWFuZCgpIHsKKyAgICAgICAgcmV0dXJuIGZQcmV2aW91c0NvbW1hbmQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UHJldmlvdXNDb21tYW5kKENvbW1hbmQgIHByZXZpb3VzQ29tbWFuZCkgeworICAgICAgICBmUHJldmlvdXNDb21tYW5kID0gcHJldmlvdXNDb21tYW5kOworICAgIH0KKworICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGV4ZWN1dGUoKTsKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCB1bmRvKCk7CisKKyAgICBwdWJsaWMgdm9pZCByZWRvKCkgeworICAgICAgICBleGVjdXRlKCk7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIGJvb2xlYW4gaXNNb2RpZmllZCgpIHsKKworICAgICAgICByZXR1cm4gZk1vZGlmaWVkOworICAgIH0KKworICAgIHB1YmxpYyBmaW5hbCB2b2lkIHNldE1vZGlmaWVkKGJvb2xlYW4gbW9kaWZpZWQpIHsKKworICAgICAgICBmTW9kaWZpZWQgPSBtb2RpZmllZDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvRmFrZUNvbXBvbmVudC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0Zha2VDb21wb25lbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMzhjZDg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0Zha2VDb21wb25lbnQuamF2YQpAQCAtMCwwICsxLDMwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKKworYWJzdHJhY3QgY2xhc3MgRmFrZUNvbXBvbmVudCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcm90ZWN0ZWQgQ29tcG9uZW50IGZIb3N0OworICAgIAorICAgIGFic3RyYWN0IHZvaWQgYWRkTm90aWZ5KCk7CisgICAgYWJzdHJhY3Qgdm9pZCBwYWludChHcmFwaGljcyBnKTsKKyAgICB2b2lkIHNldEhvc3QoQ29tcG9uZW50IGhvc3QpIHsgICAKKyAgICAgICAgZkhvc3QgPSBob3N0OworICAgIH0KKyAgICBhYnN0cmFjdCB2b2lkIHJlcXVlc3RGb2N1cygpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9IYWNrQXJhYmljVHJhbnNsaXRlcmF0aW9uLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSGFja0FyYWJpY1RyYW5zbGl0ZXJhdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEyZTA1N2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSGFja0FyYWJpY1RyYW5zbGl0ZXJhdGlvbi5qYXZhCkBAIC0wLDAgKzEsMTgxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLyoKKyAqCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LCBBbGwgUmlnaHRzIFJlc2VydmVkCisgKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworLyoKK0ZvciBhbnkgaW5jb21pbmcgY2hhcmFjdGVyIEMKK2lmIHlvdSBjYW4gbWFwIEMgdXNpbmcgdGhlIGZvbGxvd2luZyBGYWtlQXJhYmljVGFibGUsIHJldHVybgorRmFrZUFyYWJpY1RhYmxlKEMpCitlbHNlIGlmIEMgaXMgZnJvbSBBIHRocm91Z2ggWiwgcmV0dXJuIEZha2VBcmFiaWNUYWJsZShsb3dlcmNhc2UoQykpCitlbHNlIGp1c3QgcmV0dXJuIEMKKworCitGYWtlQXJhYmljVGFibGUgaXMgZGVmaW5lZCBieSB0aGUgZm9sbG93aW5nIG1hcHBpbmcKKworMCAgIDA2NjA7QVJBQklDLUlORElDIERJR0lUIFpFUk87TmQ7MDtBTjs7MDswOzA7Tjs7Ozs7CisxICAgMDY2MTtBUkFCSUMtSU5ESUMgRElHSVQgT05FO05kOzA7QU47OzE7MTsxO047Ozs7OworMiAgIDA2NjI7QVJBQklDLUlORElDIERJR0lUIFRXTztOZDswO0FOOzsyOzI7MjtOOzs7OzsKKzMgICAwNjYzO0FSQUJJQy1JTkRJQyBESUdJVCBUSFJFRTtOZDswO0FOOzszOzM7MztOOzs7OzsKKzQgICAwNjY0O0FSQUJJQy1JTkRJQyBESUdJVCBGT1VSO05kOzA7QU47OzQ7NDs0O047Ozs7OworNSAgIDA2NjU7QVJBQklDLUlORElDIERJR0lUIEZJVkU7TmQ7MDtBTjs7NTs1OzU7Tjs7Ozs7Cis2ICAgMDY2NjtBUkFCSUMtSU5ESUMgRElHSVQgU0lYO05kOzA7QU47OzY7Njs2O047Ozs7OworNyAgIDA2Njc7QVJBQklDLUlORElDIERJR0lUIFNFVkVOO05kOzA7QU47Ozc7Nzs3O047Ozs7OworOCAgIDA2Njg7QVJBQklDLUlORElDIERJR0lUIEVJR0hUO05kOzA7QU47Ozg7ODs4O047Ozs7OworOSAgIDA2Njk7QVJBQklDLUlORElDIERJR0lUIE5JTkU7TmQ7MDtBTjs7OTs5Ozk7Tjs7Ozs7CisKKyUgICAwNjZBO0FSQUJJQyBQRVJDRU5UIFNJR047UG87MDtFVDs7Ozs7Tjs7Ozs7CisuICAgMDY2QjtBUkFCSUMgREVDSU1BTCBTRVBBUkFUT1I7UG87MDtBTjs7Ozs7Tjs7Ozs7CissICAgMDYwQztBUkFCSUMgQ09NTUE7UG87MDtSOzs7OztOOzs7OzsKKy0gICAwNjQwO0FSQUJJQyBUQVRXRUVMO0xtOzA7Ujs7Ozs7Tjs7Ozs7CisnICAgMDY1MjtBUkFCSUMgU1VLVU47TW47MzQ7Ujs7Ozs7Tjs7Ozs7CisiICAgMDY1MTtBUkFCSUMgU0hBRERBO01uOzMzO1I7Ozs7O047QVJBQklDIFNIQUREQUg7Ozs7Cis7ICAgMDYxQjtBUkFCSUMgU0VNSUNPTE9OO1BvOzA7Ujs7Ozs7Tjs7Ozs7Cis/ICAgMDYxRjtBUkFCSUMgUVVFU1RJT04gTUFSSztQbzswO1I7Ozs7O047Ozs7OworCithICAgMDYyNztBUkFCSUMgTEVUVEVSIEFMRUY7TG87MDtSOzs7OztOOzs7OzsKK0EgICAwNjM5O0FSQUJJQyBMRVRURVIgQUlOO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitiICAgMDYyODtBUkFCSUMgTEVUVEVSIEJFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBCQUE7Ozs7CitjICAgMDYzNTtBUkFCSUMgTEVUVEVSIFNBRDtMbzswO1I7Ozs7O047Ozs7OworZCAgIDA2MkY7QVJBQklDIExFVFRFUiBEQUw7TG87MDtSOzs7OztOOzs7OzsKK0QgICAwNjMwO0FSQUJJQyBMRVRURVIgVEhBTDtMbzswO1I7Ozs7O047Ozs7OworRSAgIDA2NEI7QVJBQklDIEZBVEhBVEFOO01uOzI3O1I7Ozs7O047Ozs7OworZSAgIDA2NEU7QVJBQklDIEZBVEhBO01uOzMwO1I7Ozs7O047QVJBQklDIEZBVEhBSDs7OzsKK2YgICAwNjQxO0FSQUJJQyBMRVRURVIgRkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEZBOzs7OworZyAgIDA2M0E7QVJBQklDIExFVFRFUiBHSEFJTjtMbzswO1I7Ozs7O047Ozs7OworaCAgIDA2MkQ7QVJBQklDIExFVFRFUiBIQUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEFBOzs7OworSCAgIDA2NDc7QVJBQklDIExFVFRFUiBIRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgSEE7Ozs7CitJICAgMDY0RDtBUkFCSUMgS0FTUkFUQU47TW47Mjk7Ujs7Ozs7Tjs7Ozs7CitpICAgMDY1MDtBUkFCSUMgS0FTUkE7TW47MzI7Ujs7Ozs7TjtBUkFCSUMgS0FTUkFIOzs7OworaiAgIDA2MkM7QVJBQklDIExFVFRFUiBKRUVNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CitLICAgMDYyRTtBUkFCSUMgTEVUVEVSIEtIQUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgS0hBQTs7OzsKK2sgICAwNjQzO0FSQUJJQyBMRVRURVIgS0FGO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIENBRjs7OzsKK2wgICAwNjQ0O0FSQUJJQyBMRVRURVIgTEFNO0xvOzA7Ujs7Ozs7Tjs7Ozs7CittICAgMDY0NTtBUkFCSUMgTEVUVEVSIE1FRU07TG87MDtSOzs7OztOOzs7OzsKK24gICAwNjQ2O0FSQUJJQyBMRVRURVIgTk9PTjtMbzswO1I7Ozs7O047Ozs7OworbyAgIDA2NEY7QVJBQklDIERBTU1BO01uOzMxO1I7Ozs7O047QVJBQklDIERBTU1BSDs7OzsKK3AgICAwNjI4O0FSQUJJQyBMRVRURVIgQkVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIEJBQTs7OzsKK3EgICAwNjQyO0FSQUJJQyBMRVRURVIgUUFGO0xvOzA7Ujs7Ozs7Tjs7Ozs7CityICAgMDYzMTtBUkFCSUMgTEVUVEVSIFJFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBSQTs7OzsKK3MgICAwNjMzO0FSQUJJQyBMRVRURVIgU0VFTjtMbzswO1I7Ozs7O047Ozs7OworUyAgIDA2MzQ7QVJBQklDIExFVFRFUiBTSEVFTjtMbzswO1I7Ozs7O047Ozs7OwordCAgIDA2MkE7QVJBQklDIExFVFRFUiBURUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgVEFBOzs7OworVCAgIDA2MkI7QVJBQklDIExFVFRFUiBUSEVIO0xvOzA7Ujs7Ozs7TjtBUkFCSUMgTEVUVEVSIFRIQUE7Ozs7CitVICAgMDY0QztBUkFCSUMgREFNTUFUQU47TW47Mjg7Ujs7Ozs7Tjs7Ozs7Cit1ICAgMDY0RjtBUkFCSUMgREFNTUE7TW47MzE7Ujs7Ozs7TjtBUkFCSUMgREFNTUFIOzs7OwordiAgIDA2NDE7QVJBQklDIExFVFRFUiBGRUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgRkE7Ozs7Cit3ICAgMDY0ODtBUkFCSUMgTEVUVEVSIFdBVztMbzswO1I7Ozs7O047Ozs7OworeCAgIDA2MzM7QVJBQklDIExFVFRFUiBTRUVOO0xvOzA7Ujs7Ozs7Tjs7Ozs7Cit5ICAgMDY0QTtBUkFCSUMgTEVUVEVSIFlFSDtMbzswO1I7Ozs7O047QVJBQklDIExFVFRFUiBZQTs7OzsKK3ogICAwNjMyO0FSQUJJQyBMRVRURVIgWkFJTjtMbzswO1I7Ozs7O047Ozs7OworWiAgIDA2Mzg7QVJBQklDIExFVFRFUiBaQUg7TG87MDtSOzs7OztOO0FSQUJJQyBMRVRURVIgREhBSDs7OzsKKworKi8KKworLyoqCisgKiBUaGlzIGNsYXNzIGltcGxlbWVudHMgS2V5UmVtYXAgdG8gcHJvZHVjZSB0cmFuc2xpdGVyYXRlZCBBcmFiaWMKKyAqIGNoYXJhY3RlcnMgZnJvbSBMYXRpbi0xIGNoYXJhY3RlcnMuCisgKi8KKworLy8gTk9URTogdGhpcyBjbGFzcyBlbGltaW5hdGVzIEFyYWJpYyB2b3dlbHMgd2hpY2ggbG9vayB1Z2x5CisvLyBpbiB0aGUgZm9udCBpbiB3aGljaCB3ZSBoYXBwZW4gdG8gYmUgZGVtbydpbmcuICBJdCdzIHRvdGFsbHkKKy8vIGJvZ3VzIG90aGVyd2lzZS4KK2ZpbmFsIGNsYXNzIEhhY2tBcmFiaWNUcmFuc2xpdGVyYXRpb24gZXh0ZW5kcyBLZXlSZW1hcCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBjaGFyIHJlbWFwKGNoYXIgYykgeworCisgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgY2FzZSAnMCc6IHJldHVybiAnXHUwNjYwJzsgLy8gQVJBQklDLUlORElDIERJR0lUIFpFUk8KKyAgICAgICAgICAgIGNhc2UgJzEnOiByZXR1cm4gJ1x1MDY2MSc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBPTkUKKyAgICAgICAgICAgIGNhc2UgJzInOiByZXR1cm4gJ1x1MDY2Mic7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBUV08KKyAgICAgICAgICAgIGNhc2UgJzMnOiByZXR1cm4gJ1x1MDY2Myc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBUSFJFRQorICAgICAgICAgICAgY2FzZSAnNCc6IHJldHVybiAnXHUwNjY0JzsgLy8gQVJBQklDLUlORElDIERJR0lUIEZPVVIKKyAgICAgICAgICAgIGNhc2UgJzUnOiByZXR1cm4gJ1x1MDY2NSc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBGSVZFCisgICAgICAgICAgICBjYXNlICc2JzogcmV0dXJuICdcdTA2NjYnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgU0lYCisgICAgICAgICAgICBjYXNlICc3JzogcmV0dXJuICdcdTA2NjcnOyAvLyBBUkFCSUMtSU5ESUMgRElHSVQgU0VWRU4KKyAgICAgICAgICAgIGNhc2UgJzgnOiByZXR1cm4gJ1x1MDY2OCc7IC8vIEFSQUJJQy1JTkRJQyBESUdJVCBFSUdIVAorICAgICAgICAgICAgY2FzZSAnOSc6IHJldHVybiAnXHUwNjY5JzsgLy8gQVJBQklDLUlORElDIERJR0lUIE5JTkUKKworICAgICAgICAgICAgY2FzZSAnJSc6IHJldHVybiAnXHUwNjZBJzsgLy8gQVJBQklDIFBFUkNFTlQgU0lHTgorICAgICAgICAgICAgLy8gdGhlIFRyYWRpdGlvbmFsIEFyYWJpYyBmb250IGRvZXMgbm90IGNvbnRhaW4gdGhpcyBjaGFyYWN0ZXIKKyAgICAgICAgICAgIC8vIGNhc2UgJy4nOiByZXR1cm4gJ1x1MDY2Qic7IC8vIEFSQUJJQyBERUNJTUFMIFNFUEFSQVRPUgorICAgICAgICAgICAgY2FzZSAnLCc6IHJldHVybiAnXHUwNjBDJzsgLy8gQVJBQklDIENPTU1BCisgICAgICAgICAgICBjYXNlICctJzogcmV0dXJuICdcdTA2NDAnOyAvLyBBUkFCSUMgVEFUV0VFTAorICAgICAgICAgICAgY2FzZSAnXCcnOiByZXR1cm4gJ1x1MDY1Mic7IC8vIEFSQUJJQyBTVUtVTgorICAgICAgICAgICAgY2FzZSAnIic6IHJldHVybiAnXHUwNjUxJzsgLy8gQVJBQklDIFNIQUREQQorICAgICAgICAgICAgY2FzZSAnOyc6IHJldHVybiAnXHUwNjFCJzsgLy8gQVJBQklDIFNFTUlDT0xPTgorICAgICAgICAgICAgY2FzZSAnPyc6IHJldHVybiAnXHUwNjFGJzsgLy8gQVJBQklDIFFVRVNUSU9OIE1BUksKKworICAgICAgICAgICAgY2FzZSAnYSc6IHJldHVybiAnXHUwNjI3JzsgLy8gQVJBQklDIExFVFRFUiBBTEVGCisgICAgICAgICAgICBjYXNlICdBJzogcmV0dXJuICdcdTA2MzknOyAvLyBBUkFCSUMgTEVUVEVSIEFJTgorICAgICAgICAgICAgY2FzZSAnYic6IHJldHVybiAnXHUwNjI4JzsgLy8gQVJBQklDIExFVFRFUiBCRUgKKyAgICAgICAgICAgIGNhc2UgJ0InOiByZXR1cm4gJ1x1MDYyOCc7IC8vIEFSQUJJQyBMRVRURVIgQkVICisgICAgICAgICAgICBjYXNlICdjJzogcmV0dXJuICdcdTA2MzUnOyAvLyBBUkFCSUMgTEVUVEVSIFNBRAorICAgICAgICAgICAgY2FzZSAnQyc6IHJldHVybiAnXHUwNjM1JzsgLy8gQVJBQklDIExFVFRFUiBTQUQKKyAgICAgICAgICAgIGNhc2UgJ2QnOiByZXR1cm4gJ1x1MDYyRic7IC8vIEFSQUJJQyBMRVRURVIgREFMCisgICAgICAgICAgICBjYXNlICdEJzogcmV0dXJuICdcdTA2MzAnOyAvLyBBUkFCSUMgTEVUVEVSIFRIQUwKKyAgICAgICAgICAgIGNhc2UgJ2UnOiAvL3JldHVybiAnXHUwNjRFJzsgLy8gQVJBQklDIEZBVEhBCisgICAgICAgICAgICBjYXNlICdFJzogLy9yZXR1cm4gJ1x1MDY0Qic7IC8vIEFSQUJJQyBGQVRIQVRBTgorICAgICAgICAgICAgY2FzZSAnZic6IHJldHVybiAnXHUwNjQxJzsgLy8gQVJBQklDIExFVFRFUiBGRUgKKyAgICAgICAgICAgIGNhc2UgJ0YnOiByZXR1cm4gJ1x1MDY0MSc7IC8vIEFSQUJJQyBMRVRURVIgRkVICisgICAgICAgICAgICBjYXNlICdnJzogcmV0dXJuICdcdTA2M0EnOyAvLyBBUkFCSUMgTEVUVEVSIEdIQUlOCisgICAgICAgICAgICBjYXNlICdHJzogcmV0dXJuICdcdTA2M0EnOyAvLyBBUkFCSUMgTEVUVEVSIEdIQUlOCisgICAgICAgICAgICBjYXNlICdoJzogcmV0dXJuICdcdTA2MkQnOyAvLyBBUkFCSUMgTEVUVEVSIEhBSAorICAgICAgICAgICAgY2FzZSAnSCc6IHJldHVybiAnXHUwNjQ3JzsgLy8gQVJBQklDIExFVFRFUiBIRUgKKyAgICAgICAgICAgIGNhc2UgJ2knOiAvL3JldHVybiAnXHUwNjUwJzsgLy8gQVJBQklDIEtBU1JBCisgICAgICAgICAgICBjYXNlICdJJzogLy9yZXR1cm4gJ1x1MDY0RCc7IC8vIEFSQUJJQyBLQVNSQVRBTgorICAgICAgICAgICAgY2FzZSAnaic6IHJldHVybiAnXHUwNjJDJzsgLy8gQVJBQklDIExFVFRFUiBKRUVNCisgICAgICAgICAgICBjYXNlICdKJzogcmV0dXJuICdcdTA2MkMnOyAvLyBBUkFCSUMgTEVUVEVSIEpFRU0KKyAgICAgICAgICAgIGNhc2UgJ2snOiByZXR1cm4gJ1x1MDY0Myc7IC8vIEFSQUJJQyBMRVRURVIgS0FGCisgICAgICAgICAgICBjYXNlICdLJzogcmV0dXJuICdcdTA2MkUnOyAvLyBBUkFCSUMgTEVUVEVSIEtIQUgKKyAgICAgICAgICAgIGNhc2UgJ2wnOiByZXR1cm4gJ1x1MDY0NCc7IC8vIEFSQUJJQyBMRVRURVIgTEFNCisgICAgICAgICAgICBjYXNlICdMJzogcmV0dXJuICdcdTA2NDQnOyAvLyBBUkFCSUMgTEVUVEVSIExBTQorICAgICAgICAgICAgY2FzZSAnbSc6IHJldHVybiAnXHUwNjQ1JzsgLy8gQVJBQklDIExFVFRFUiBNRUVNCisgICAgICAgICAgICBjYXNlICdNJzogcmV0dXJuICdcdTA2NDUnOyAvLyBBUkFCSUMgTEVUVEVSIE1FRU0KKyAgICAgICAgICAgIGNhc2UgJ24nOiByZXR1cm4gJ1x1MDY0Nic7IC8vIEFSQUJJQyBMRVRURVIgTk9PTgorICAgICAgICAgICAgY2FzZSAnTic6IHJldHVybiAnXHUwNjQ2JzsgLy8gQVJBQklDIExFVFRFUiBOT09OCisgICAgICAgICAgICBjYXNlICdvJzogLy9yZXR1cm4gJ1x1MDY0Ric7IC8vIEFSQUJJQyBEQU1NQQorICAgICAgICAgICAgY2FzZSAnTyc6IC8vcmV0dXJuICdcdTA2NEYnOyAvLyBBUkFCSUMgREFNTUEKKyAgICAgICAgICAgIGNhc2UgJ3AnOiByZXR1cm4gJ1x1MDYyOCc7IC8vIEFSQUJJQyBMRVRURVIgQkVICisgICAgICAgICAgICBjYXNlICdQJzogcmV0dXJuICdcdTA2MjgnOyAvLyBBUkFCSUMgTEVUVEVSIEJFSAorICAgICAgICAgICAgY2FzZSAncSc6IHJldHVybiAnXHUwNjQyJzsgLy8gQVJBQklDIExFVFRFUiBRQUYKKyAgICAgICAgICAgIGNhc2UgJ1EnOiByZXR1cm4gJ1x1MDY0Mic7IC8vIEFSQUJJQyBMRVRURVIgUUFGCisgICAgICAgICAgICBjYXNlICdyJzogcmV0dXJuICdcdTA2MzEnOyAvLyBBUkFCSUMgTEVUVEVSIFJFSAorICAgICAgICAgICAgY2FzZSAnUic6IHJldHVybiAnXHUwNjMxJzsgLy8gQVJBQklDIExFVFRFUiBSRUgKKyAgICAgICAgICAgIGNhc2UgJ3MnOiByZXR1cm4gJ1x1MDYzMyc7IC8vIEFSQUJJQyBMRVRURVIgU0VFTgorICAgICAgICAgICAgY2FzZSAnUyc6IHJldHVybiAnXHUwNjM0JzsgLy8gQVJBQklDIExFVFRFUiBTSEVFTgorICAgICAgICAgICAgY2FzZSAndCc6IHJldHVybiAnXHUwNjJBJzsgLy8gQVJBQklDIExFVFRFUiBURUgKKyAgICAgICAgICAgIGNhc2UgJ1QnOiByZXR1cm4gJ1x1MDYyQic7IC8vIEFSQUJJQyBMRVRURVIgVEhFSAorICAgICAgICAgICAgY2FzZSAnVSc6IC8vcmV0dXJuICdcdTA2NEMnOyAvLyBBUkFCSUMgREFNTUFUQU4KKyAgICAgICAgICAgIGNhc2UgJ3UnOiAvL3JldHVybiAnXHUwNjRGJzsgLy8gQVJBQklDIERBTU1BCisgICAgICAgICAgICBjYXNlICd2JzogcmV0dXJuICdcdTA2NDEnOyAvLyBBUkFCSUMgTEVUVEVSIEZFSAorICAgICAgICAgICAgY2FzZSAnVic6IHJldHVybiAnXHUwNjQxJzsgLy8gQVJBQklDIExFVFRFUiBGRUgKKyAgICAgICAgICAgIGNhc2UgJ3cnOiByZXR1cm4gJ1x1MDY0OCc7IC8vIEFSQUJJQyBMRVRURVIgV0FXCisgICAgICAgICAgICBjYXNlICdXJzogcmV0dXJuICdcdTA2NDgnOyAvLyBBUkFCSUMgTEVUVEVSIFdBVworICAgICAgICAgICAgY2FzZSAneCc6IHJldHVybiAnXHUwNjMzJzsgLy8gQVJBQklDIExFVFRFUiBTRUVOCisgICAgICAgICAgICBjYXNlICdYJzogcmV0dXJuICdcdTA2MzMnOyAvLyBBUkFCSUMgTEVUVEVSIFNFRU4KKyAgICAgICAgICAgIGNhc2UgJ3knOiByZXR1cm4gJ1x1MDY0QSc7IC8vIEFSQUJJQyBMRVRURVIgWUVICisgICAgICAgICAgICBjYXNlICdZJzogcmV0dXJuICdcdTA2NEEnOyAvLyBBUkFCSUMgTEVUVEVSIFlFSAorICAgICAgICAgICAgY2FzZSAneic6IHJldHVybiAnXHUwNjMyJzsgLy8gQVJBQklDIExFVFRFUiBaQUlOCisgICAgICAgICAgICBjYXNlICdaJzogcmV0dXJuICdcdTA2MzgnOyAvLyBBUkFCSUMgTEVUVEVSIFpBSAorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGM7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0hlYnJld1RyYW5zbGl0ZXJhdGlvbi5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0hlYnJld1RyYW5zbGl0ZXJhdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI0ZmU1MzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSGVicmV3VHJhbnNsaXRlcmF0aW9uLmphdmEKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8qCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OCwgQWxsIFJpZ2h0cyBSZXNlcnZlZAorICovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKKy8qKgorICogVGhpcyBjbGFzcyBpbXBsZW1lbnRzIEtleVJlbWFwIHRvIHByb2R1Y2UgdHJhbnNsaXRlcmF0ZWQgSGVicmV3CisgKiBjaGFyYWN0ZXJzIGZyb20gTGF0aW4tMSBjaGFyYWN0ZXJzLgorICovCisKK2ZpbmFsIGNsYXNzIEhlYnJld1RyYW5zbGl0ZXJhdGlvbiBleHRlbmRzIEtleVJlbWFwIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIGNoYXIgcmVtYXAoY2hhciBjKSB7CisKKyAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICBjYXNlICdhJzogcmV0dXJuICdcdTA1RDAnOyAvLyBIRUJSRVcgTEVUVEVSIEFMRUYKKyAgICAgICAgICAgIGNhc2UgJ0EnOiByZXR1cm4gJ1x1MDVFMic7IC8vIEhFQlJFVyBMRVRURVIgQVlJTgorICAgICAgICAgICAgY2FzZSAnYic6IHJldHVybiAnXHUwNUQxJzsgLy8gSEVCUkVXIExFVFRFUiBCRVQKKyAgICAgICAgICAgIGNhc2UgJ0InOiByZXR1cm4gJ1x1MDVEMSc7IC8vIEhFQlJFVyBMRVRURVIgQkVUCisgICAgICAgICAgICBjYXNlICdjJzogcmV0dXJuICdcdTA1RTYnOyAvLyBIRUJSRVcgTEVUVEVSIFRTQURJCisgICAgICAgICAgICBjYXNlICdDJzogcmV0dXJuICdcdTA1RTUnOyAvLyBIRUJSRVcgTEVUVEVSIEZJTkFMIFRTQURJCisgICAgICAgICAgICBjYXNlICdkJzogcmV0dXJuICdcdTA1RDMnOyAvLyBIRUJSRVcgTEVUVEVSIERBTEVUCisgICAgICAgICAgICBjYXNlICdEJzogcmV0dXJuICdcdTA1QkMnOyAvLyBIRUJSRVcgUE9JTlQgREFHRVNICisgICAgICAgICAgICBjYXNlICdlJzogcmV0dXJuICdcdTA1QjUnOyAvLyBIRUJSRVcgUE9JTlQgVFNFUkUKKyAgICAgICAgICAgIGNhc2UgJ0UnOiByZXR1cm4gJ1x1MDVCNic7IC8vIEhFQlJFVyBQT0lOVCBTRUdPTAorICAgICAgICAgICAgY2FzZSAnZic6IHJldHVybiAnXHUwNUU0JzsgLy8gSEVCUkVXIExFVFRFUiBQRQorICAgICAgICAgICAgY2FzZSAnRic6IHJldHVybiAnXHUwNUU0JzsgLy8gSEVCUkVXIExFVFRFUiBQRQorICAgICAgICAgICAgY2FzZSAnZyc6IHJldHVybiAnXHUwNUQyJzsgLy8gSEVCUkVXIExFVFRFUiBHSU1FTAorICAgICAgICAgICAgY2FzZSAnRyc6IHJldHVybiAnXHUwNUQyJzsgLy8gSEVCUkVXIExFVFRFUiBHSU1FTAorICAgICAgICAgICAgY2FzZSAnaCc6IHJldHVybiAnXHUwNUQ0JzsgLy8gSEVCUkVXIExFVFRFUiBIRQorICAgICAgICAgICAgY2FzZSAnSCc6IHJldHVybiAnXHUwNUQ3JzsgLy8gSEVCUkVXIExFVFRFUiBIRVQKKyAgICAgICAgICAgIGNhc2UgJ2knOiByZXR1cm4gJ1x1MDVEOSc7IC8vIEhFQlJFVyBMRVRURVIgWU9ECisgICAgICAgICAgICBjYXNlICdJJzogcmV0dXJuICdcdTA1QjQnOyAvLyBIRUJSRVcgUE9JTlQgSElSSVEKKyAgICAgICAgICAgIGNhc2UgJ2onOiByZXR1cm4gJ1x1MDVEOSc7IC8vIEhFQlJFVyBMRVRURVIgWU9ECisgICAgICAgICAgICBjYXNlICdKJzogcmV0dXJuICdcdTA1QzEnOyAvLyBIRUJSRVcgUE9JTlQgU0hJTiBET1QKKyAgICAgICAgICAgIGNhc2UgJ2snOiByZXR1cm4gJ1x1MDVEQic7IC8vIEhFQlJFVyBMRVRURVIgS0FGCisgICAgICAgICAgICBjYXNlICdLJzogcmV0dXJuICdcdTA1REEnOyAvLyBIRUJSRVcgTEVUVEVSIEZJTkFMIEtBRgorICAgICAgICAgICAgY2FzZSAnbCc6IHJldHVybiAnXHUwNURDJzsgLy8gSEVCUkVXIExFVFRFUiBMQU1FRAorICAgICAgICAgICAgY2FzZSAnTCc6IHJldHVybiAnXHUwNURDJzsgLy8gSEVCUkVXIExFVFRFUiBMQU1FRAorICAgICAgICAgICAgY2FzZSAnbSc6IHJldHVybiAnXHUwNURFJzsgLy8gSEVCUkVXIExFVFRFUiBNRU0KKyAgICAgICAgICAgIGNhc2UgJ00nOiByZXR1cm4gJ1x1MDVERCc7IC8vIEhFQlJFVyBMRVRURVIgRklOQUwgTUVNCisgICAgICAgICAgICBjYXNlICduJzogcmV0dXJuICdcdTA1RTAnOyAvLyBIRUJSRVcgTEVUVEVSIE5VTgorICAgICAgICAgICAgY2FzZSAnTic6IHJldHVybiAnXHUwNURGJzsgLy8gSEVCUkVXIExFVFRFUiBGSU5BTCBOVU4KKyAgICAgICAgICAgIGNhc2UgJ28nOiByZXR1cm4gJ1x1MDVENSc7IC8vIEhFQlJFVyBMRVRURVIgVkFWCisgICAgICAgICAgICBjYXNlICdPJzogcmV0dXJuICdcdTA1QjknOyAvLyBIRUJSRVcgUE9JTlQgSE9MQU0KKyAgICAgICAgICAgIGNhc2UgJ3AnOiByZXR1cm4gJ1x1MDVFNCc7IC8vIEhFQlJFVyBMRVRURVIgUEUKKyAgICAgICAgICAgIGNhc2UgJ1AnOiByZXR1cm4gJ1x1MDVFMyc7IC8vIEhFQlJFVyBMRVRURVIgRklOQUwgUEUKKyAgICAgICAgICAgIGNhc2UgJ3EnOiByZXR1cm4gJ1x1MDVFNyc7IC8vIEhFQlJFVyBMRVRURVIgUU9GCisgICAgICAgICAgICBjYXNlICdRJzogcmV0dXJuICdcdTA1RTcnOyAvLyBIRUJSRVcgTEVUVEVSIFFPRgorICAgICAgICAgICAgY2FzZSAncic6IHJldHVybiAnXHUwNUU4JzsgLy8gSEVCUkVXIExFVFRFUiBSRVNICisgICAgICAgICAgICBjYXNlICdSJzogcmV0dXJuICdcdTA1QkYnOyAvLyBIRUJSRVcgUE9JTlQgUkFGRQorICAgICAgICAgICAgY2FzZSAncyc6IHJldHVybiAnXHUwNUU5JzsgLy8gSEVCUkVXIExFVFRFUiBTSElOCisgICAgICAgICAgICBjYXNlICdTJzogcmV0dXJuICdcdTA1RTEnOyAvLyBIRUJSRVcgTEVUVEVSIFNBTUVLSAorICAgICAgICAgICAgY2FzZSAndCc6IHJldHVybiAnXHUwNUVBJzsgLy8gSEVCUkVXIExFVFRFUiBUQVYKKyAgICAgICAgICAgIGNhc2UgJ1QnOiByZXR1cm4gJ1x1MDVEOCc7IC8vIEhFQlJFVyBMRVRURVIgVEVUCisgICAgICAgICAgICBjYXNlICd1JzogcmV0dXJuICdcdTA1RDUnOyAvLyBIRUJSRVcgTEVUVEVSIFZBVgorICAgICAgICAgICAgY2FzZSAnVSc6IHJldHVybiAnXHUwNUJCJzsgLy8gSEVCUkVXIFBPSU5UIFFVQlVUUworICAgICAgICAgICAgY2FzZSAndic6IHJldHVybiAnXHUwNUQ1JzsgLy8gSEVCUkVXIExFVFRFUiBWQVYKKyAgICAgICAgICAgIGNhc2UgJ1YnOiByZXR1cm4gJ1x1MDVCNyc7IC8vIEhFQlJFVyBQT0lOVCBQQVRBSAorICAgICAgICAgICAgY2FzZSAndyc6IHJldHVybiAnXHUwNUQ1JzsgLy8gSEVCUkVXIExFVFRFUiBWQVYKKyAgICAgICAgICAgIGNhc2UgJ1cnOiByZXR1cm4gJ1x1MDVCOCc7IC8vIEhFQlJFVyBQT0lOVCBRQU1BVFMKKyAgICAgICAgICAgIGNhc2UgJ3gnOiByZXR1cm4gJ1x1MDVFNic7IC8vIEhFQlJFVyBMRVRURVIgVFNBREkKKyAgICAgICAgICAgIGNhc2UgJ1gnOiByZXR1cm4gJ1x1MDVFNSc7IC8vIEhFQlJFVyBMRVRURVIgRklOQUwgVFNBREkKKyAgICAgICAgICAgIGNhc2UgJ3knOiByZXR1cm4gJ1x1MDVEOSc7IC8vIEhFQlJFVyBMRVRURVIgWU9ECisgICAgICAgICAgICBjYXNlICdZJzogcmV0dXJuICdcdTA1RDknOyAvLyBIRUJSRVcgTEVUVEVSIFlPRAorICAgICAgICAgICAgY2FzZSAneic6IHJldHVybiAnXHUwNUQ2JzsgLy8gSEVCUkVXIExFVFRFUiBaQVlJTgorICAgICAgICAgICAgY2FzZSAnWic6IHJldHVybiAnXHUwNUMyJzsgLy8gSEVCUkVXIFBPSU5UIFNJTiBET1QKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9Jc3JhZWxOaWt1ZEtleWJvYXJkLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSXNyYWVsTmlrdWRLZXlib2FyZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI3MThkMDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSXNyYWVsTmlrdWRLZXlib2FyZC5qYXZhCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvKgorICoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgsIEFsbCBSaWdodHMgUmVzZXJ2ZWQKKyAqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CisKKy8qKgorICogVGhpcyBjbGFzcyBzaW11bGF0ZXMgYSBOaWt1ZCBrZXlib2FyZCBvbiBhIFVTLUVuZ2xpc2gKKyAqIGtleWJvYXJkLiAgSXQgaXMgdmVyeSBtdWNoIGEgd29yayBpbiBwcm9ncmVzcy4KKyAqLworCitmaW5hbCBjbGFzcyBJc3JhZWxOaWt1ZEtleWJvYXJkIGV4dGVuZHMgS2V5UmVtYXAgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwdWJsaWMgY2hhciByZW1hcChjaGFyIGMpIHsKKworICAgICAgICBzd2l0Y2goYykgeworICAgICAgICAgICAgY2FzZSAndCc6IHJldHVybiAnXHUwNUQwJzsgLy8gYWxlZgorICAgICAgICAgICAgY2FzZSAnYyc6IHJldHVybiAnXHUwNUQxJzsgLy8gYmV0CisgICAgICAgICAgICBjYXNlICdkJzogcmV0dXJuICdcdTA1RDInOyAvLyBnaW1lbAorICAgICAgICAgICAgY2FzZSAncyc6IHJldHVybiAnXHUwNUQzJzsgLy8gZGFsZXQKKyAgICAgICAgICAgIGNhc2UgJ3YnOiByZXR1cm4gJ1x1MDVENCc7IC8vIGhlCisgICAgICAgICAgICBjYXNlICd1JzogcmV0dXJuICdcdTA1RDUnOyAvLyB2YXYKKyAgICAgICAgICAgIGNhc2UgJ3onOiByZXR1cm4gJ1x1MDVENic7IC8vIHpheWluCisgICAgICAgICAgICBjYXNlICdqJzogcmV0dXJuICdcdTA1RDcnOyAvLyBoZXQKKyAgICAgICAgICAgIGNhc2UgJ3knOiByZXR1cm4gJ1x1MDVEOCc7IC8vIHRldAorICAgICAgICAgICAgY2FzZSAnaCc6IHJldHVybiAnXHUwNUQ5JzsgLy8geW9kCisgICAgICAgICAgICBjYXNlICdsJzogcmV0dXJuICdcdTA1REEnOyAvLyBmaW5hbCBrYWYKKyAgICAgICAgICAgIGNhc2UgJ2YnOiByZXR1cm4gJ1x1MDVEQic7IC8vIGthZgorICAgICAgICAgICAgY2FzZSAnayc6IHJldHVybiAnXHUwNURDJzsgLy8gbGFtZWQKKyAgICAgICAgICAgIGNhc2UgJ28nOiByZXR1cm4gJ1x1MDVERCc7IC8vIGZpbmFsIG1lbQorICAgICAgICAgICAgY2FzZSAnbic6IHJldHVybiAnXHUwNURFJzsgLy8gbWVtCisgICAgICAgICAgICBjYXNlICdpJzogcmV0dXJuICdcdTA1REYnOyAvLyBmaW5hbCBudW4KKyAgICAgICAgICAgIGNhc2UgJ2InOiByZXR1cm4gJ1x1MDVFMCc7IC8vIG51bgorICAgICAgICAgICAgY2FzZSAneCc6IHJldHVybiAnXHUwNUUxJzsgLy8gc2FtZWNoCisgICAgICAgICAgICBjYXNlICdnJzogcmV0dXJuICdcdTA1RTInOyAvLyBheWluCisgICAgICAgICAgICBjYXNlICc7JzogcmV0dXJuICdcdTA1RTMnOyAvLyBmaW5hbCBwZQorICAgICAgICAgICAgY2FzZSAncCc6IHJldHVybiAnXHUwNUU0JzsgLy8gcGUKKyAgICAgICAgICAgIGNhc2UgJy4nOiByZXR1cm4gJ1x1MDVFNSc7IC8vIGZpbmFsIHRzYWRpCisgICAgICAgICAgICBjYXNlICdtJzogcmV0dXJuICdcdTA1RTYnOyAvLyB0c2FkaQorICAgICAgICAgICAgY2FzZSAnZSc6IHJldHVybiAnXHUwNUU3JzsgLy8gcW9mCisgICAgICAgICAgICBjYXNlICdyJzogcmV0dXJuICdcdTA1RTgnOyAvLyByZXNoCisgICAgICAgICAgICBjYXNlICdhJzogcmV0dXJuICdcdTA1RTknOyAvLyBzaGluCisgICAgICAgICAgICBjYXNlICcsJzogcmV0dXJuICdcdTA1RUEnOyAvLyB0YXYKKyAgICAgICAgICAgIGNhc2UgJ3cnOiByZXR1cm4gJywnOworICAgICAgICAgICAgY2FzZSAncSc6IHJldHVybiAnLyc7CisgICAgICAgICAgICBjYXNlICcvJzogcmV0dXJuICcuJzsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjOworICAgIH0KKworICAgIHB1YmxpYyBjaGFyIHJlbWFwKEtleUV2ZW50IGtleUV2ZW50KSB7CisKKyAgICAgICAgLy8gIE5vdGU6ICBvbmx5IG9uZSBjdHJsIGNhc2Ugbm93IChjdHJsLS8gLT4gZGFnZXNoKS4KKyAgICAgICAgLy8gIEJldHRlciBpbXBsZW1lbnRhdGlvbiB3aWxsIGJlIG5lZWRlZCBmb3IgbW9yZSBjYXNlcy4KKworICAgICAgICBpZiAoa2V5RXZlbnQuaXNDb250cm9sRG93bigpKSB7CisgICAgICAgICAgICBpZiAoa2V5RXZlbnQuZ2V0S2V5Q29kZSgpID09IEtleUV2ZW50LlZLX1NMQVNIKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuICdcdTA1QkMnOyAvLyBkYWdlc2gKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZW1hcChrZXlFdmVudC5nZXRLZXlDaGFyKCkpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvSlRleHRQYW5lbC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0pUZXh0UGFuZWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NTMwOWI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0pUZXh0UGFuZWwuamF2YQpAQCAtMCwwICsxLDU4MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNS4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5BZGp1c3RhYmxlOworaW1wb3J0IGphdmEuYXd0LkJvcmRlckxheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5Db2xvcjsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOworCitpbXBvcnQgamF2YXguc3dpbmcuSlBhbmVsOworaW1wb3J0IGphdmF4LnN3aW5nLkpDb21wb25lbnQ7CitpbXBvcnQgamF2YXguc3dpbmcuSlNjcm9sbEJhcjsKK2ltcG9ydCBqYXZheC5zd2luZy5Td2luZ1V0aWxpdGllczsKKworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworLyoqCisgKiBKVGV4dFBhbmVsIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIE1UZXh0UGFuZWwgaW4gYSBTd2luZyBKUGFuZWwuCisgKiBAc2VlIE1UZXh0UGFuZWwKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEpUZXh0UGFuZWwgZXh0ZW5kcyBKUGFuZWwgaW1wbGVtZW50cyBNVGV4dFBhbmVsIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBBVGV4dFBhbmVsSW1wbCBmSW1wbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBUZXh0UGFuZWxTZXR0aW5ncyBpbnN0YW5jZSB3aXRoIGFsbCBzZXR0aW5ncyBzZXQKKyAgICAgKiB0byB0aGUgZGVmYXVsdCB2YWx1ZXMuICBDbGllbnRzIGNhbiBtb2RpZnkgdGhpcyBvYmplY3Q7CisgICAgICogbW9kaWZpY2F0aW9ucyB3aWxsIG5vdCBhZmZlY3QgdGhlIGRlZmF1bHQgdmFsdWVzLgorICAgICAqIEByZXR1cm4gYSBUZXh0UGFuZWxTZXR0aW5ncyBpbnN0YW5jZSBzZXQgdG8gZGVmYXVsdCB2YWx1ZXMKKyAgICAgKiBAc2VlIFRleHRQYW5lbFNldHRpbmdzCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBUZXh0UGFuZWxTZXR0aW5ncyBnZXREZWZhdWx0U2V0dGluZ3MoKSB7CisKKyAgICAgICAgcmV0dXJuIEFUZXh0UGFuZWxJbXBsLmdldERlZmF1bHRTZXR0aW5ncygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBKVGV4dFBhbmVsIHdpdGggdGhlIGRlZmF1bHQgc2V0dGluZ3MuCisgICAgICogQHBhcmFtIGluaXRpYWxUZXh0IHRoZSB0ZXh0IGRvY3VtZW50LiAgSWYgbnVsbCBkb2N1bWVudCB0ZXh0IGlzIGVtcHR5LgorICAgICAqIEBwYXJhbSBjbGlwYm9hcmQgdGhlIGNsaXBib2FyZCB0byB1c2UgZm9yIGN1dCwgY29weSwgYW5kIHBhc3RlCisgICAgICogIG9wZXJhdGlvbnMuICBJZiBudWxsIHRoaXMgcGFuZWwgd2lsbCB1c2UgYSBwcml2YXRlIGNsaXBib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgSlRleHRQYW5lbChNQ29uc3RUZXh0IGluaXRpYWxUZXh0LAorICAgICAgICAgICAgICAgICAgICAgIGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisKKyAgICAgICAgdGhpcyhBVGV4dFBhbmVsSW1wbC5mZ0RlZmF1bHRTZXR0aW5ncywgaW5pdGlhbFRleHQsIGNsaXBib2FyZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IEpUZXh0UGFuZWwuCisgICAgICogQHBhcmFtIHNldHRpbmdzIHRoZSBzZXR0aW5ncyBmb3IgdGhpcyBKVGV4dFBhbmVsCisgICAgICogQHBhcmFtIGluaXRpYWxUZXh0IHRoZSB0ZXh0IGRvY3VtZW50LiAgSWYgbnVsbCBkb2N1bWVudCB0ZXh0IGlzIGVtcHR5LgorICAgICAqIEBwYXJhbSBjbGlwYm9hcmQgdGhlIGNsaXBib2FyZCB0byB1c2UgZm9yIGN1dCwgY29weSwgYW5kIHBhc3RlCisgICAgICogIG9wZXJhdGlvbnMuICBJZiBudWxsIHRoaXMgcGFuZWwgd2lsbCB1c2UgYSBwcml2YXRlIGNsaXBib2FyZC4KKyAgICAgKiBAc2VlIFRleHRQYW5lbFNldHRpbmdzCisgICAgICovCisgICAgcHVibGljIEpUZXh0UGFuZWwoVGV4dFBhbmVsU2V0dGluZ3Mgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBpbml0aWFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICBDbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisgICAgICAgIAorICAgICAgICBzdXBlcihmYWxzZSk7CisgICAgICAgIAorICAgICAgICBKU2Nyb2xsQmFyIGhvcnpTYiA9IG51bGw7CisgICAgICAgIEpTY3JvbGxCYXIgdmVydFNiID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGlmIChzZXR0aW5ncy5nZXRTY3JvbGxhYmxlKCkpIHsKKworICAgICAgICAgICAgc2V0TGF5b3V0KG5ldyBTY3JvbGxCYXJMYXlvdXQoKSk7CisKKyAgICAgICAgICAgIGJvb2xlYW4gc2Nyb2xsQmFyc1Zpc2libGUgPSBzZXR0aW5ncy5nZXRTY3JvbGxCYXJzVmlzaWJsZSgpOworCisgICAgICAgICAgICBpZiAoc2Nyb2xsQmFyc1Zpc2libGUpIHsKKyAgICAgICAgICAgICAgICBob3J6U2IgPSBuZXcgSlNjcm9sbEJhcihBZGp1c3RhYmxlLkhPUklaT05UQUwpOworICAgICAgICAgICAgICAgIHZlcnRTYiA9IG5ldyBKU2Nyb2xsQmFyKEFkanVzdGFibGUuVkVSVElDQUwpOworICAgICAgICAgICAgICAgIGFkZCgiU291dGgiLCBob3J6U2IpOworICAgICAgICAgICAgICAgIGFkZCgiRWFzdCIsIHZlcnRTYik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzZXRMYXlvdXQobmV3IEJvcmRlckxheW91dCgpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUnVuU3RyYXRlZ3kgcnVuU3RyYXRlZ3kgPSBuZXcgUnVuU3RyYXRlZ3koKSB7CisgICAgICAgICAgICB2b2lkIGRvSXQoUnVubmFibGUgcikgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIFN3aW5nVXRpbGl0aWVzLmludm9rZUFuZFdhaXQocik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgb3BlcmF0aW9uIHdhcyBpbnRlcnJ1cHRlZCwgdGhlbiBjbGllbnQKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FsbGVkIHdhaXQgb3Igc2xlZXAgKG9yIHNvbWV0aGluZyBzaW1pbGFyKQorICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCBpcyBpbmFwcHJvcHJpYXRlIGZvciBhIGNsaWVudCBvZiB0aGlzCisgICAgICAgICAgICAgICAgICAgIC8vIGNsYXNzLiAgUmV0aHJvdyBlcnJvciBhbmQgbGV0IGNsaWVudCBoYW5kbGUgaXQuCisgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW50ZXJydXB0ZWQgaW4gUnVuU3RyYXRlZ3k6ICIgKyBlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2goSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdobyBrbm93cyBob3cgdGhpcyBvbmUgaGFwcGVucy4uLgorICAgICAgICAgICAgICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gaW4gUnVuU3RyYXRlZ3k6ICIgKyBlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmSW1wbCA9IG5ldyBBVGV4dFBhbmVsSW1wbChydW5TdHJhdGVneSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwYm9hcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvcnpTYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydFNiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGZpbmFsIEZha2VDb21wb25lbnQgdGV4dENvbXBvbmVudCA9IGZJbXBsLmdldFRleHRDb21wb25lbnQoKTsKKyAgICAgICAgCisgICAgICAgIEpDb21wb25lbnQgdGV4dEhvc3QgPSBuZXcgSkNvbXBvbmVudCgpIHsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXh0Q29tcG9uZW50LnNldEhvc3QodGhpcyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBhZGROb3RpZnkoKSB7CisgICAgICAgICAgICAgICAgc3VwZXIuYWRkTm90aWZ5KCk7CisgICAgICAgICAgICAgICAgdGV4dENvbXBvbmVudC5hZGROb3RpZnkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHBhaW50KEdyYXBoaWNzIGcpIHsKKyAgICAgICAgICAgICAgICB0ZXh0Q29tcG9uZW50LnBhaW50KGcpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgYWRkKCJDZW50ZXIiLCB0ZXh0SG9zdCk7CisKKyAgICAgICAgdGV4dEhvc3QucmVxdWVzdEZvY3VzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIHRoZSBnaXZlbiBUZXh0UGFuZWxMaXN0ZW5lciB0byB0aGUgbGlzdGVuZXJzIHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIHVwZGF0ZSBub3RpZmljYXRpb25zIGZyb20gdGhpcyBKVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gYWRkCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmSW1wbC5hZGRMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIHRoZSBnaXZlbiBUZXh0UGFuZWxMaXN0ZW5lciBmcm9tIHRoZSBsaXN0ZW5lcnMgd2hpY2ggd2lsbAorICAgICAqIHJlY2VpdmUgdXBkYXRlIG5vdGlmaWNhdGlvbnMgZnJvbSB0aGlzIEpUZXh0UGFuZWwuCisgICAgICogQHBhcmFtIGxpc3RlbmVyIHRoZSBsaXN0ZW5lciB0byByZW1vdmUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmVMaXN0ZW5lcihUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lcikgeworCisgICAgICAgIGZJbXBsLnJlbW92ZUxpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICB9CisKKy8vPT09PT09PT09PT09CisvLyBUZXh0IEFjY2VzcworLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZG9jdW1lbnQgdG8gPHR0Pm5ld1RleHQ8L3R0Pi4gIFRoaXMgb3BlcmF0aW9uCisgICAgICogbW9kaWZpZXMgdGhlIHRleHQgaW4gdGhlIEpUZXh0UGFuZWwuICBJdCBkb2VzIG5vdCBtb2RpZnkgb3IgYWRvcHQKKyAgICAgKiA8dHQ+bmV3VGV4dDwvdHQ+LiAgVGhpcyBtZXRob2Qgc2V0cyB0aGUgc2VsZWN0aW9uIGFuIGluc2VydGlvbiBwb2ludCBhdAorICAgICAqIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgd2hpY2ggd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50IHRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGV4dChNQ29uc3RUZXh0IG5ld1RleHQpIHsKKworICAgICAgICBmSW1wbC5zZXRUZXh0KG5ld1RleHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgZ2l2ZW4gdGV4dCB0byB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudC4gIEVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+aW5zZXJ0KG5ld1RleHQsIGdldFRleHRMZW5ndGgoKSk8L3R0Pi4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB0byBhcHBlbmQgdG8gdGhlIGRvY3VtZW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgYXBwZW5kKE1Db25zdFRleHQgbmV3VGV4dCkgeworCisgICAgICAgIGZJbXBsLmFwcGVuZChuZXdUZXh0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJbnNlcnQgdGhlIGdpdmVuIHRleHQgaW50byB0aGUgZG9jdW1lbnQgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLgorICAgICAqIEVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+cmVwbGFjZVJhbmdlKG5ld1RleHQsIHBvc2l0aW9uLCBwb3NpdGlvbik8L3R0Pi4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB0byBpbnNlcnQgaW50byB0aGUgZG9jdW1lbnQuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiBpbiB0aGUgZG9jdW1lbnQgd2hlcmUgdGhlCisgICAgICogICAgIHRleHQgd2lsbCBiZSBpbnNlcnRlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGluc2VydChNQ29uc3RUZXh0IG5ld1RleHQsIGludCBwb3NpdGlvbikgeworCisgICAgICAgIGZJbXBsLmluc2VydChuZXdUZXh0LCBwb3NpdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZSB0aGUgZ2l2ZW4gcmFuZ2Ugd2l0aCA8dHQ+bmV3VGV4dDwvdHQ+LiAgQWZ0ZXIgdGhpcworICAgICAqIG9wZXJhdGlvbiB0aGUgc2VsZWN0aW9uIHJhbmdlIGlzIGFuIGluc2VydGlvbiBwb2ludCBhdCB0aGUKKyAgICAgKiBlbmQgb2YgdGhlIG5ldyB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHdpdGggd2hpY2ggdG8gcmVwbGFjZSB0aGUgcmFuZ2UKKyAgICAgKiBAcGFyYW0gc3RhcnQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcmFuZ2UgdG8gcmVwbGFjZQorICAgICAqIEBwYXJhbSBlbmQgdGhlIGVuZCBvZiB0aGUgcmFuZ2UgdG8gcmVwbGFjZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlcGxhY2VSYW5nZShNQ29uc3RUZXh0IG5ld1RleHQsIGludCBzdGFydCwgaW50IGVuZCkgeworCisgICAgICAgIGZJbXBsLnJlcGxhY2VSYW5nZShuZXdUZXh0LCBzdGFydCwgZW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgSlRleHRQYW5lbC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIEpUZXh0UGFuZWwKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFRleHRMZW5ndGgoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFRleHRMZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIEpUZXh0UGFuZWwuCisgICAgICogQHJldHVybiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgSlRleHRQYW5lbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgTUNvbnN0VGV4dCBnZXRUZXh0KCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRUZXh0KCk7CisgICAgfQorCisvLz09PT09PT09PT09PQorLy8gU2VsZWN0aW9uIEFjY2VzcworLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBzdGFydCBvZiB0aGUgc2VsZWN0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uU3RhcnQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBvZmZzZXQgb2YgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0U2VsZWN0aW9uRW5kKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRTZWxlY3Rpb25FbmQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gPHR0PnNlbGVjdChzZWxlY3Rpb25TdGFydCwgZ2V0U2VsZWN0aW9uRW5kKCkpPC90dD4uCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvblN0YXJ0KGludCBzZWxlY3Rpb25TdGFydCkgeworCisgICAgICAgIGZJbXBsLnNldFNlbGVjdGlvblN0YXJ0KHNlbGVjdGlvblN0YXJ0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gPHR0PnNlbGVjdChnZXRTZWxlY3Rpb25TdGFydCgpLCBzZWxlY3Rpb25FbmQpPC90dD4uCisgICAgICogQHBhcmFtIHNlbGVjdGlvbkVuZCB0aGUgZW5kIG9mIHRoZSBuZXcgc2VsZWN0aW9uIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2VsZWN0aW9uRW5kKGludCBzZWxlY3Rpb25FbmQpIHsKKworICAgICAgICBmSW1wbC5zZXRTZWxlY3Rpb25FbmQoc2VsZWN0aW9uRW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGlvbiByYW5nZSB0byBhbiBpbnNlcnRpb24gcG9pbnQgYXQgdGhlIGdpdmVuCisgICAgICogb2Zmc2V0LiAgVGhpcyBpcyBlcXVpdmFsZW50IHRvCisgICAgICogPHR0PnNlbGVjdChwb3NpdGlvbiwgcG9zaXRpb24pPC90dD4uCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBvZmZzZXQgb2YgdGhlIG5ldyBpbnNlcnRpb24gcG9pbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDYXJldFBvc2l0aW9uKGludCBwb3NpdGlvbikgeworCisgICAgICAgIGZJbXBsLnNldENhcmV0UG9zaXRpb24ocG9zaXRpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc2VsZWN0aW9uIHJhbmdlIHRvIHRoZSBnaXZlbiByYW5nZS4gIFRoZSByYW5nZSBzdGFydAorICAgICAqIGlzIHBpbm5lZCBiZXR3ZWVuIDAgYW5kIHRoZSB0ZXh0IGxlbmd0aDsgIHRoZSByYW5nZSBlbmQgaXMgcGlubmVkCisgICAgICogYmV0d2VlbiB0aGUgcmFuZ2Ugc3RhcnQgYW5kIHRoZSBlbmQgb2YgdGhlIHRleHQuICBUaGVzZSBzZW1hbnRpY3MKKyAgICAgKiBhcmUgaWRlbnRpY2FsIHRvIHRob3NlIG9mIDx0dD5qYXZhLmF3dC5UZXh0Q29tcG9uZW50PC90dD4uCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dCBpcyBub3Qgc2VsZWN0YWJsZS4KKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uU3RhcnQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlCisgICAgICogQHBhcmFtIHNlbGVjdGlvbkVuZCB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZWxlY3QoaW50IHNlbGVjdGlvblN0YXJ0LCBpbnQgc2VsZWN0aW9uRW5kKSB7CisKKyAgICAgICAgZkltcGwuc2VsZWN0KHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlbGVjdCBhbGwgb2YgdGhlIHRleHQgaW4gdGhlIGRvY3VtZW50LiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZSB0ZXh0IGlzIG5vdCBzZWxlY3RhYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNlbGVjdEFsbCgpIHsKKworICAgICAgICBmSW1wbC5zZWxlY3RBbGwoKTsKKyAgICB9CisKKworLy89PT09PT09PT09PT0KKy8vIEZvcm1hdCBXaWR0aAorLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdG90YWwgZm9ybWF0IHdpZHRoLCBpbiBwaXhlbHMuICBUaGUgZm9ybWF0IHdpZHRoIGlzIHRoZQorICAgICAqIHdpZHRoIHRvIHdoaWNoIHRleHQgaXMgd3JhcHBlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBmb3JtYXQgd2lkdGgKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZvcm1hdFdpZHRoKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRGb3JtYXRXaWR0aCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBwYXJhZ3JhcGggYXQgdGhlIGdpdmVuIG9mZnNldCBpcyBsZWZ0LXRvLXJpZ2h0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgYW4gb2Zmc2V0IGluIHRoZSB0ZXh0CisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBwYXJhZ3JhcGggYXQgdGhlIGdpdmVuIG9mZnNldCBpcyBsZWZ0LXRvLXJpZ2h0CisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gcGFyYWdyYXBoSXNMZWZ0VG9SaWdodChpbnQgb2Zmc2V0KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwucGFyYWdyYXBoSXNMZWZ0VG9SaWdodChvZmZzZXQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSB1bmRvbmUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSB1bmRvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY2FuVW5kbygpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuY2FuVW5kbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSByZWRvbmUuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGEgY2hhbmdlIHdoaWNoIGNhbiBiZSByZWRvbmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY2FuUmVkbygpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuY2FuUmVkbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBjbGlwYm9hcmQgY29udGFpbnMgY29udGVudHMgd2hpY2ggY291bGQgYmUKKyAgICAgKiB0cmFuc2ZlcmVkIGludG8gdGhlIHRleHQuCisgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjbGlwYm9hcmQgaGFzIHRleHQgY29udGVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjbGlwYm9hcmROb3RFbXB0eSgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuY2xpcGJvYXJkTm90RW1wdHkoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gQXR0cmlidXRlTWFwIG9mIGtleXMgd2l0aCBkZWZhdWx0IHZhbHVlcy4gIFRoZSBkZWZhdWx0CisgICAgICogdmFsdWVzIGFyZSB1c2VkIHdoZW4gZGlzcGxheWluZyB0ZXh0IGZvciB2YWx1ZXMgd2hpY2ggYXJlIG5vdAorICAgICAqIHNwZWNpZmllZCBpbiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIGFuIEF0dHJpYnV0ZU1hcCBvZiBkZWZhdWx0IGtleS12YWx1ZSBwYWlycworICAgICAqLworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgZ2V0RGVmYXVsdFZhbHVlcygpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0RGVmYXVsdFZhbHVlcygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGluc3BlY3RzIHRoZSBjaGFyYWN0ZXIgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uCisgICAgICogcmFuZ2UgKG9yIHRoZSB0eXBpbmcgc3R5bGUgYXQgdGhlIGluc2VydGlvbiBwb2ludCkuICBJdCByZXR1cm5zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+VGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PiwgaWYgdGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PgorICAgICAqIGlzIHRoZSBzYW1lIGluIGFsbCBvZiB0aGUgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uLCBvcjwvbGk+CisgICAgICogPGxpPjx0dD5NVUxUSVBMRV9WQUxVRVM8L3R0PiwgaWYgdHdvIG9yIG1vcmUgc3R5bGUgcnVucyBoYXZlIGRpZmZlcmVudCAKKyAgICAgKiB2YWx1ZXMgZm9yIDx0dD5rZXk8L3R0Pi48L2xpPgorICAgICAqIDwvdWw+CisgICAgICogSWYgYSBzdHlsZSBydW4gZG9lcyBub3QgY29udGFpbiA8dHQ+a2V5PC90dD4sCisgICAgICogaXRzIHZhbHVlIGlzIGNvbnNpZGVyZWQgdG8gYmUgdGhlIGRlZmF1bHQgc3R5bGUgZm9yIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBhcyBkZWZpbmVkIGJ5IHRoZSBkZWZhdWx0IHZhbHVlcyBBdHRyaWJ1dGVNYXAuICBOb3RlIHRoYXQgaWYKKyAgICAgKiA8dHQ+a2V5PC90dD4gZG9lcyBub3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgdGhpcyBtZXRob2QgbWF5IHJldHVybgorICAgICAqIG51bGwuCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIGZvciBjb25maWd1cmluZyBzdHlsZSBtZW51cy4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdXNlZCB0byByZXRyaWV2ZSB2YWx1ZXMgZm9yIGNvbXBhcmlzb24KKyAgICAgKiBAc2VlIE1UZXh0UGFuZWwjTVVMVElQTEVfVkFMVUVTCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRDaGFyYWN0ZXJTdHlsZU92ZXJTZWxlY3Rpb24oT2JqZWN0IGtleSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGluc3BlY3RzIHRoZSBwYXJhZ3JhcGggc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uCisgICAgICogcmFuZ2UgKG9yIHRoZSB0eXBpbmcgc3R5bGUgYXQgdGhlIGluc2VydGlvbiBwb2ludCkuICBJdCByZXR1cm5zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+VGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PiwgaWYgdGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PgorICAgICAqIGlzIHRoZSBzYW1lIGluIGFsbCBvZiB0aGUgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uLCBvcjwvbGk+CisgICAgICogPGxpPjx0dD5NVUxUSVBMRV9WQUxVRVM8L3R0PiwgaWYgdHdvIG9yIG1vcmUgc3R5bGUgcnVucyBoYXZlIAorICAgICAqIGRpZmZlcmVudCB2YWx1ZXMgZm9yIDx0dD5rZXk8L3R0Pi48L2xpPgorICAgICAqIDwvdWw+CisgICAgICogSWYgYSBzdHlsZSBydW4gZG9lcyBub3QgY29udGFpbiA8dHQ+a2V5PC90dD4sCisgICAgICogaXRzIHZhbHVlIGlzIGNvbnNpZGVyZWQgdG8gYmUgdGhlIGRlZmF1bHQgc3R5bGUgZm9yIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBhcyBkZWZpbmVkIGJ5IHRoZSBkZWZhdWx0IHZhbHVlcyBBdHRyaWJ1dGVNYXAuICBOb3RlIHRoYXQgaWYKKyAgICAgKiA8dHQ+a2V5PC90dD4gZG9lcyBub3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgdGhpcyBtZXRob2QgbWF5IHJldHVybgorICAgICAqIG51bGwuCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIGZvciBjb25maWd1cmluZyBzdHlsZSBtZW51cy4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdXNlZCB0byByZXRyaWV2ZSB2YWx1ZXMgZm9yIGNvbXBhcmlzb24KKyAgICAgKiBAc2VlIE1UZXh0UGFuZWwjTVVMVElQTEVfVkFMVUVTCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb24oT2JqZWN0IGtleSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFBhcmFncmFwaFN0eWxlT3ZlclNlbGVjdGlvbihrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgc2VsZWN0ZWQgdGV4dCBmcm9tIHRoZSBkb2N1bWVudCBhbmQgcGxhY2UgaXQKKyAgICAgKiBvbiB0aGUgY2xpcGJvYXJkLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dAorICAgICAqIGlzIG5vdCBlZGl0YWJsZSwgb3IgaWYgbm8gdGV4dCBpcyBzZWxlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjdXQoKSB7CisgICAgICAgIGZJbXBsLmN1dCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBsYWNlIHRoZSBzZWxlY3RlZCB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQuICBUaGlzIG1ldGhvZCBoYXMKKyAgICAgKiBubyBlZmZlY3QgaWYgbm8gdGV4dCBpcyBzZWxlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb3B5KCkgeworICAgICAgICBmSW1wbC5jb3B5KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVwbGFjZSB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHRleHQgd2l0aCB0aGUgdGV4dCBvbiB0aGUgY2xpcGJvYXJkLgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQgaXMgbm90IGVkaXRhYmxlLCBvciBpZiBubworICAgICAqIHRleHQgaXMgb24gdGhlIGNsaXBib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYXN0ZSgpIHsKKyAgICAgICAgZkltcGwucGFzdGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgc2VsZWN0ZWQgdGV4dCBmcm9tIHRoZSBkb2N1bWVudCwgd2l0aG91dCBhbHRlcmluZyB0aGUgY2xpcGJvYXJkLgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlCisgICAgICogdGV4dCBpcyBub3QgZWRpdGFibGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIGZJbXBsLmNsZWFyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVW5kbyB0aGUgbW9zdCByZWNlbnQgdGV4dCBjaGFuZ2UuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlcmUgaXMgbm8gY2hhbmdlIHRvIHVuZG8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgdW5kbygpIHsKKyAgICAgICAgZkltcGwudW5kbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZG8gdGhlIG1vc3QgcmVjZW50IHRleHQgY2hhbmdlLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZXJlIGlzIG5vIGNoYW5nZSB0byByZWRvLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlZG8oKSB7CisgICAgICAgIGZJbXBsLnJlZG8oKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Q29tbWFuZExvZ1NpemUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldENvbW1hbmRMb2dTaXplKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkLiAgQWxsCisgICAgICogcmVkb2FibGUgY29tbWFuZHMgYXJlIHJlbW92ZWQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICogQHBhcmFtIHNpemUgdGhlIG51bWJlciBvZiBjb21tYW5kcyBrZXB0IGluIHRoZSBjb21tYW5kIGxvZworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENvbW1hbmRMb2dTaXplKGludCBzaXplKSB7CisgICAgICAgIGZJbXBsLnNldENvbW1hbmRMb2dTaXplKHNpemUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSBhbGwgY29tbWFuZHMgZnJvbSB0aGUgY29tbWFuZCBsb2cuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXJDb21tYW5kTG9nKCkgeworICAgICAgICBmSW1wbC5jbGVhckNvbW1hbmRMb2coKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZnkgdGhlIGNoYXJhY3RlciBzdHlsZXMgb24gdGhlIHNlbGVjdGVkIGNoYXJhY3RlcnMuICBJZiBubyBjaGFyYWN0ZXJzCisgICAgICogYXJlIHNlbGVjdGVkLCBtb2RpZnkgdGhlIHR5cGluZyBzdHlsZS4KKyAgICAgKiBAcGFyYW0gbW9kaWZpZXIgdGhlIFN0eWxlTW9kaWZpZXIgd2l0aCB3aGljaCB0byBtb2RpZnkgdGhlIHN0eWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24oU3R5bGVNb2RpZmllciBtb2RpZmllcikgeworICAgICAgICBmSW1wbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb2RpZnkgdGhlIHBhcmFncmFwaCBzdHlsZXMgaW4gcGFyYWdyYXBocyBjb250YWluaW5nIHNlbGVjdGVkIGNoYXJhY3RlcnMsIG9yCisgICAgICogdGhlIHBhcmFncmFwaCBjb250YWluaW5nIHRoZSBpbnNlcnRpb24gcG9pbnQuCisgICAgICogQHBhcmFtIG1vZGlmaWVyIHRoZSBTdHlsZU1vZGlmaWVyIHdpdGggd2hpY2ggdG8gbW9kaWZ5IHRoZSBzdHlsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpIHsKKyAgICAgICAgZkltcGwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBLZXlSZW1hcCB1c2VkIHRvIHByb2Nlc3Mga2V5IGV2ZW50cy4KKyAgICAgKiBAcmV0dXJuIHRoZSBrZXkgcmVtYXAgdXNlZCB0byBwcm9jZXNzIGtleSBldmVudHMKKyAgICAgKiBAc2VlICNzZXRLZXlSZW1hcAorICAgICAqLworICAgIHB1YmxpYyBLZXlSZW1hcCBnZXRLZXlSZW1hcCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0S2V5UmVtYXAoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVc2UgdGhlIGdpdmVuIEtleVJlbWFwIHRvIG1hcCBrZXkgZXZlbnRzIHRvIGNoYXJhY3RlcnMuCisgICAgICogT25seSBrZXkKKyAgICAgKiBldmVudHMgYXJlIGFmZmVjdGVkIGJ5IHRoZSByZW1hcDsgIG90aGVyIHRleHQgZW50ZXJpbmcgdGhlCisgICAgICogY29udHJvbCAodmlhIHRoZSBjbGlwYm9hcmQsIGZvciBleGFtcGxlKSBpcyBub3QgYWZmZWN0ZWQKKyAgICAgKiBieSB0aGUgS2V5UmVtYXAuCisgICAgICogPHA+CisgICAgICogRG8gbm90IHBhc3MgPHR0Pm51bGw8L3R0PiB0byB0aGlzIG1ldGhvZCB0byBsZWF2ZSBrZXkKKyAgICAgKiBldmVudHMgdW5tYXBwZWQuICBJbnN0ZWFkLCB1c2UgPHR0PktleVJlbWFwLmdldElkZW50aXR5UmVtYXAoKTwvdHQ+CisgICAgICogQHBhcmFtIHJlbWFwIHRoZSBLZXlSZW1hcCB0byB1c2UgZm9yIG1hcHBpbmcga2V5IGV2ZW50cyB0byBjaGFyYWN0ZXJzCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24gaWYgcGFyYW1ldGVyIGlzIG51bGwKKyAgICAgKiBAc2VlIEtleVJlbWFwCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0S2V5UmVtYXAoS2V5UmVtYXAgcmVtYXApIHsKKworICAgICAgICBmSW1wbC5zZXRLZXlSZW1hcChyZW1hcCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtb2RpZmljYXRpb24gZmxhZyBvZiB0aGUgY3VycmVudCB0ZXh0IGNoYW5nZS4KKyAgICAgKiBAc2VlICNzZXRNb2RpZmllZAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kaWZpZWQoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmlzTW9kaWZpZWQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG1vZGlmaWNhdGlvbiBmbGFnIG9mIHRoZSBjdXJyZW50IHRleHQgY2hhbmdlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1vZGlmaWVkKGJvb2xlYW4gbW9kaWZpZWQpIHsKKyAgICAgICAgCisgICAgICAgIGZJbXBsLnNldE1vZGlmaWVkKG1vZGlmaWVkKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyBmb3IgS2V5RXZlbnRGb3J3YXJkZXIncyB1c2Ugb25seSEKKyAgICAgKi8KKyAgICBBVGV4dFBhbmVsSW1wbCBnZXRJbXBsKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZJbXBsOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEJhY2tncm91bmQoQ29sb3IgY29sb3IpIHsKKyAgICAgICAgc3VwZXIuc2V0QmFja2dyb3VuZCAoY29sb3IpOworICAgICAgICBqYXZhLmF3dC5Db21wb25lbnRbXSBjb21wTGlzdCA9IGdldENvbXBvbmVudHMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb21wTGlzdC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKCEoY29tcExpc3RbaV0gaW5zdGFuY2VvZiBKU2Nyb2xsQmFyKSkgeworICAgICAgICAgICAgICAgIGNvbXBMaXN0W2ldLnNldEJhY2tncm91bmQgKGNvbG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9LZXlFdmVudEZvcndhcmRlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL0tleUV2ZW50Rm9yd2FyZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTFjODJhNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9LZXlFdmVudEZvcndhcmRlci5qYXZhCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CisKKy8qKgorICogVGhpcyBjbGFzcyBmb3J3YXJkcyBrZXkgZXZlbnRzIHRvIGEgVGV4dFBhbmVsIGNvbXBvbmVudCBmb3IKKyAqIHRlc3RpbmcgcHVycG9zZXMuCisgKiBJdHMgc29sZSByZWFzb24gZm9yIGV4aXN0ZW5jZSBpcyB0byBwcmV2ZW50IHRoZSBrZXktZXZlbnQKKyAqIEFQSSBmcm9tIGJlaW5nIHB1YmxpYyBvbiBNVGV4dFBhbmVsLCBhbmQgYmVpbmcgbWlzdGFrZW4gZm9yCisgKiBzdGFuZGFyZCBBUEkuICBUaGlzIGNsYXNzIGlzIG9ubHkgZm9yIHRlc3RpbmchICBJdCBtYXkgYmUKKyAqIHJlbW92ZWQgZnJvbSBwdWJsaWMgQVBJIGF0IGFueSB0aW1lLiAgRG8gbm90IGRlcGVuZCBvbiB0aGlzCisgKiBjbGFzcy4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEtleUV2ZW50Rm9yd2FyZGVyIHsKKworICAgIHByaXZhdGUgQVRleHRQYW5lbEltcGwgZlBhbmVsSW1wbDsKKworICAgIHB1YmxpYyBLZXlFdmVudEZvcndhcmRlcihUZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisKKyAgICAgICAgZlBhbmVsSW1wbCA9IHRleHRQYW5lbC5nZXRJbXBsKCk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBLZXlFdmVudEZvcndhcmRlcihKVGV4dFBhbmVsIHRleHRQYW5lbCkgeworICAgIAorICAgICAgICBmUGFuZWxJbXBsID0gdGV4dFBhbmVsLmdldEltcGwoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBoYW5kbGVLZXlFdmVudChLZXlFdmVudCBrZXlFdmVudCkgeworCisgICAgICAgIGZQYW5lbEltcGwuaGFuZGxlS2V5RXZlbnQoa2V5RXZlbnQpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvS2V5UmVtYXAuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9LZXlSZW1hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYxYzNjZGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvS2V5UmVtYXAuamF2YQpAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8qCisgKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OCwgQWxsIFJpZ2h0cyBSZXNlcnZlZAorICovCisKK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKKworLyoqCisgKiBLZXlSZW1hcCBtYXBzIGtleXMgb24gYSBzdGFuZGFyZCBVUyBrZXlib2FyZCB0byBjaGFyYWN0ZXJzCisgKiBpbiBvdGhlciBhbHBoYWJldHMuICBDdXJyZW50bHksIG1hcHBpbmdzIHRvIEFyYWJpYywgSGVicmV3CisgKiBhbmQgVGhhaSBhcmUgc3VwcG9ydGVkLiAgSW4gdGhlIGZ1dHVyZSwgY2xpZW50cyBtYXkgYmUKKyAqIHRvIGRlZmluZSB0aGVpciBvd24gbWFwcGluZ3MgYnkgc3ViY2xhc3NpbmcgdGhpcyBjbGFzcy4KKyAqIDxQPgorICogQHNlZSBUZXh0UGFuZWwjc2V0S2V5UmVtYXAKKyAqLworCitwdWJsaWMgY2xhc3MgS2V5UmVtYXAgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgS2V5UmVtYXAuCisgICAgICovCisgICAgcHJvdGVjdGVkIEtleVJlbWFwKCkgeworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGNoYXJhY3RlciBvbiB0aGUgc2ltdWxhdGVkIGtleWJvYXJkCisgICAgICogd2hpY2ggaXMgKG1vc3QgbGlrZWx5KSBnZW5lcmF0ZWQgYnkgdHlwaW5nIHRoZSBjaGFyYWN0ZXIgYworICAgICAqIG9uIHRoZSBhY3R1YWwga2V5Ym9hcmQuICBGb3IgZ3JlYXRlciBhY2N1cmFjeSwgdXNlIHRoZSByZW1hcAorICAgICAqIG1ldGhvZCB3aGljaCB0YWtlcyBhIEtleUV2ZW50LCBzaW5jZSBpdCBjYW4gdGFrZSBtb2RpZmllcgorICAgICAqIGtleXMgaW50byBhY2NvdW50LgorICAgICAqIEBhcmcgYyBhIGNoYXJhY3RlciBvbiB0aGUgYWN0dWFsIGtleWJvYXJkCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIG9uIHRoZSBzaW11bGF0ZWQga2V5Ym9hcmQgd2hpY2ggd291bGQKKyAgICAgKiAgICAgICAgIHJlc3VsdCBmcm9tIHRoZSBrZXkgY29tYmluYXRpb24gd2hpY2ggcHJvZHVjZWQgdGhlCisgICAgICogICAgICAgICBnaXZlbiBjaGFyYWN0ZXIgb24gdGhlIGFjdHVhbCBrZXlib2FyZAorICAgICAqLworICAgIC8qcHVibGljKi8gY2hhciByZW1hcChjaGFyIGMpIHsKKworICAgICAgICByZXR1cm4gYzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGNoYXJhY3RlciBvbiB0aGUgc2ltdWxhdGVkIGtleWJvYXJkCisgICAgICogd2hpY2gga2V5RXZlbnQgZ2VuZXJhdGVzLgorICAgICAqIEBhcmcga2V5RXZlbnQgYSBrZXkgZXZlbnQgZnJvbSB0aGUgYWN0dWFsIGtleWJvYXJkCisgICAgICogQHJldHVybiB0aGUgY2hhcmFjdGVyIG9uIHRoZSBzaW11bGF0ZWQga2V5Ym9hcmQgZ2VuZXJhdGVkIGJ5CisgICAgICogICAgICAgICBrZXlFdmVudAorICAgICAqLworICAgIC8qcHVibGljKi8gY2hhciByZW1hcChLZXlFdmVudCBrZXlFdmVudCkgeworCisgICAgICAgIHJldHVybiByZW1hcChrZXlFdmVudC5nZXRLZXlDaGFyKCkpOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEtleVJlbWFwIElERU5USVRZID0gbmV3IEtleVJlbWFwKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgS2V5UmVtYXAgQVJBQklDX1RSQU5TTElURVJBVElPTiA9IG5ldyBBcmFiaWNUcmFuc2xpdGVyYXRpb24oKTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBLZXlSZW1hcCBIRUJSRVdfVFJBTlNMSVRFUkFUSU9OID0gbmV3IEhlYnJld1RyYW5zbGl0ZXJhdGlvbigpOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIEtleVJlbWFwIElTUkFFTF9OSUtVRCA9IG5ldyBJc3JhZWxOaWt1ZEtleWJvYXJkKCk7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgS2V5UmVtYXAgVEhBSSA9IG5ldyBUaGFpS2V5UmVtYXAoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEtleVJlbWFwIHdoaWNoIG1hcHMgZXZlcnkgY2hhcmFjdGVyIHRvIGl0c2VsZi4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEtleVJlbWFwIGdldElkZW50aXR5UmVtYXAoKSB7CisKKyAgICAgICAgcmV0dXJuIElERU5USVRZOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEtleVJlbWFwIHdoaWNoIG1hcHMga2V5cyB0bworICAgICAqIGNoYXJhY3RlcnMgaW4gdGhlIEFyYWJpYyBhbHBoYWJldCwgdXNpbmcgYSBzaW1wbGUgdHJhbnNsaXRlcmF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgS2V5UmVtYXAgZ2V0QXJhYmljVHJhbnNsaXRlcmF0aW9uKCkgeworCisgICAgICAgIHJldHVybiBBUkFCSUNfVFJBTlNMSVRFUkFUSU9OOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEtleVJlbWFwIHdoaWNoIG1hcHMga2V5cyB0bworICAgICAqIGNoYXJhY3RlcnMgaW4gdGhlIEhlYnJldyBhbHBoYWJldCwgdXNpbmcgYSBzaW1wbGUgdHJhbnNsaXRlcmF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgS2V5UmVtYXAgZ2V0SGVicmV3VHJhbnNsaXRlcmF0aW9uKCkgeworCisgICAgICAgIHJldHVybiBIRUJSRVdfVFJBTlNMSVRFUkFUSU9OOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIEtleVJlbWFwIHdoaWNoIGVtdWxhdGVzIGEgc3RhbmRhcmQgSGVicmV3IGtleWJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgS2V5UmVtYXAgZ2V0SXNyYWVsTmlrdWQoKSB7CisKKyAgICAgICAgcmV0dXJuIElTUkFFTF9OSUtVRDsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgS2V5UmVtYXAgd2hpY2ggZW11bGF0ZXMgYSBUaGFpIEtldG1hbmVlIGtleWJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgS2V5UmVtYXAgZ2V0VGhhaUtldG1hbmVlKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIFRIQUk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL01UZXh0UGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9NVGV4dFBhbmVsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWFiMTg0MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9NVGV4dFBhbmVsLmphdmEKQEAgLTAsMCArMSwzNzMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CisKKy8qKgorICogTVRleHRQYW5lbCBpcyBpbXBsZW1lbnRlZCBieSBDb21wb25lbnRzIHdoaWNoIHByb3ZpZGUgc2VsZWN0YWJsZQorICogZWRpdGFibGUgc3R5bGVkIHRleHQuCisgKiA8cD4KKyAqIEltcGxlbWVudGF0aW9ucyBvZiBNVGV4dFBhbmVsIHByb3ZpZGUgYSBzaW1wbGUsIHN0YW5kYXJkIHVzZXIgaW50ZXJmYWNlCisgKiBmb3IgdGV4dCBlZGl0aW5nLiAgTVRleHRQYW5lbCBzdXBwbGllcyBzY3JvbGxhYmxlIGRpc3BsYXksIHR5cGluZywgCisgKiBhcnJvdy1rZXkgc3VwcG9ydCwgY2hhcmFjdGVyIHNlbGVjdGlvbiwgd29yZC0KKyAqIGFuZCBzZW50ZW5jZS1zZWxlY3Rpb24gKGJ5IGRvdWJsZS1jbGlja2luZyBhbmQgdHJpcGxlLWNsaWNraW5nLCAKKyAqIHJlc3BlY3RpdmVseSksIHRleHQgc3R5bGVzLCBjbGlwYm9hcmQgb3BlcmF0aW9ucyAoY3V0LCBjb3B5IGFuZCBwYXN0ZSkKKyAqIGFuZCBhIGxvZyBvZiBjaGFuZ2VzIGZvciB1bmRvLXJlZG8uCisgKiA8cD4KKyAqIE1UZXh0UGFuZWwgaW1wbGVtZW50YXRpb25zIGRvIG5vdCBwcm92aWRlIHVzZXIgaW50ZXJmYWNlIGVsZW1lbnRzCisgKiBzdWNoIGFzIGFuIGVkaXQgbWVudSBvciBzdHlsZSBtZW51LiAgVGhpcyBzdXBwb3J0IGlzIHByb3ZpZGVkIGluCisgKiBkaWZmZXJlbnQgcGFja2FnZXMsIGFuZCBpcyBpbXBsZW1lbnRlZCB3aXRoIE1UZXh0UGFuZWwncyBBUEkuCisgKiBNVGV4dFBhbmVsIGluY2x1ZGVzIG1ldGhvZHMgZm9yIHNldHRpbmcgc2VsZWN0aW9ucyBhbmQgc3R5bGVzIG9uIHRleHQsCisgKiBhbmQgdXNpbmcgdGhlIGNsaXBib2FyZCBhbmQgY29tbWFuZC1sb2cgZnVuY3Rpb25hbGl0eS4KKyAqIE1UZXh0UGFuZWwncyBBUEkgZm9yIHNlbGVjdGlvbiBhbmQgdGV4dCBoYW5kbGluZyBpcyBzaW1pbGFyIHRvIHRoYXQKKyAqIG9mIDx0dD5qYXZhLmF3dC5UZXh0QXJlYTwvdHQ+IGFuZAorICogPHR0PmphdmEuYXd0LlRleHRDb21wb25lbnQ8L3R0Pi4KKyAqIDxwPgorICogTVRleHRQYW5lbCBzdXBwb3J0cyBiaWRpcmVjdGlvbmFsIGFuZCBjb21wbGV4IHRleHQuICBJbiBiaWRpcmVjdGlvbmFsCisgKiB0ZXh0LCBvZmZzZXRzIGF0IGRpcmVjdGlvbiBib3VuZGFyaWVzIGhhdmUgZHVhbCBjYXJldHMuICBMb2dpY2FsIHNlbGVjdGlvbgorICogaXMgdXNlZCwgc28gc2VsZWN0aW9ucyBhY3Jvc3MgcnVuIGRpcmVjdGlvbnMgbWF5IG5vdCBiZSBjb250aWd1b3VzIGluCisgKiBkaXNwbGF5LgorICovCitwdWJsaWMgaW50ZXJmYWNlIE1UZXh0UGFuZWwgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHZhbHVlIGlzIHJldHVybmVkIGZyb20gPHR0PmdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbjwvdHQ+CisgICAgICogYW5kIDx0dD5nZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb248L3R0PiB0byBpbmRpY2F0ZSB0aGF0IHRoZQorICAgICAqIHNlbGVjdGlvbiByYW5nZSBjb250YWlucyBtdWx0aXBsZSB2YWx1ZXMgZm9yIGEga2V5LgorICAgICAqIDxwPgorICAgICAqIFRoZXJlIGlzIG5vIHJlYXNvbiBmb3IgdGhpcyBPYmplY3QgZXZlciB0byBhcHBlYXIgaW4gYW4gQXR0cmlidXRlTWFwCisgICAgICogYXMgYSB2YWx1ZS4gIE9idmlvdXNseSwgaWYgaXQgZG9lcyB0aGVyZSB3aWxsIGJlIG5vIHdheSB0byBkaXN0aW5ndWlzaAorICAgICAqIGJldHdlZW4gbXVsdGlwbGUgdmFsdWVzIGFjcm9zcyB0aGUgc2VsZWN0aW9uIGFuZCBhIGNvbnNpc3RlbnQgdmFsdWUgb2YKKyAgICAgKiA8dHQ+TVVMVElQTEVfVkFMVUVTPC90dD4gZm9yIHRoZSBrZXkuCisgICAgICogQHNlZSAjZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uCisgICAgICogQHNlZSAjZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgTVVMVElQTEVfVkFMVUVTID0gbmV3IE9iamVjdCgpOworICAgIAorICAgIC8qKgorICAgICAqIEFkZCB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgdG8gdGhlIGxpc3RlbmVycyB3aGljaCB3aWxsCisgICAgICogcmVjZWl2ZSB1cGRhdGUgbm90aWZpY2F0aW9ucyBmcm9tIHRoaXMgTVRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGxpc3RlbmVyIHRvIGFkZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZExpc3RlbmVyKFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyKTsKKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgZnJvbSB0aGUgbGlzdGVuZXJzIHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIHVwZGF0ZSBub3RpZmljYXRpb25zIGZyb20gdGhpcyBNVGV4dFBhbmVsLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gcmVtb3ZlCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkb2N1bWVudCB0byA8dHQ+bmV3VGV4dDwvdHQ+LiAgVGhpcyBvcGVyYXRpb24KKyAgICAgKiBtb2RpZmllcyB0aGUgdGV4dCBpbiB0aGUgTVRleHRQYW5lbC4gIEl0IGRvZXMgbm90IG1vZGlmeSBvciBhZG9wdAorICAgICAqIDx0dD5uZXdUZXh0PC90dD4uICBUaGlzIG1ldGhvZCBzZXRzIHRoZSBzZWxlY3Rpb24gYW4gaW5zZXJ0aW9uIHBvaW50IGF0CisgICAgICogdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB3aGljaCB3aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KE1Db25zdFRleHQgbmV3VGV4dCk7CisgICAgCisgICAgLyoqCisgICAgICogQXBwZW5kIHRoZSBnaXZlbiB0ZXh0IHRvIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50LiAgRXF1aXZhbGVudCB0bworICAgICAqIDx0dD5pbnNlcnQobmV3VGV4dCwgZ2V0VGV4dExlbmd0aCgpKTwvdHQ+LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHRvIGFwcGVuZCB0byB0aGUgZG9jdW1lbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBlbmQoTUNvbnN0VGV4dCBuZXdUZXh0KTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBJbnNlcnQgdGhlIGdpdmVuIHRleHQgaW50byB0aGUgZG9jdW1lbnQgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLgorICAgICAqIEVxdWl2YWxlbnQgdG8KKyAgICAgKiA8dHQ+cmVwbGFjZVJhbmdlKG5ld1RleHQsIHBvc2l0aW9uLCBwb3NpdGlvbik8L3R0Pi4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB0byBpbnNlcnQgaW50byB0aGUgZG9jdW1lbnQuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiBpbiB0aGUgZG9jdW1lbnQgd2hlcmUgdGhlCisgICAgICogICAgIHRleHQgd2lsbCBiZSBpbnNlcnRlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGluc2VydChNQ29uc3RUZXh0IG5ld1RleHQsIGludCBwb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHRoZSBnaXZlbiByYW5nZSB3aXRoIDx0dD5uZXdUZXh0PC90dD4uICBBZnRlciB0aGlzCisgICAgICogb3BlcmF0aW9uIHRoZSBzZWxlY3Rpb24gcmFuZ2UgaXMgYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZQorICAgICAqIGVuZCBvZiB0aGUgbmV3IHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgd2l0aCB3aGljaCB0byByZXBsYWNlIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByYW5nZSB0byByZXBsYWNlCisgICAgICogQHBhcmFtIGVuZCB0aGUgZW5kIG9mIHRoZSByYW5nZSB0byByZXBsYWNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZVJhbmdlKE1Db25zdFRleHQgbmV3VGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBNVGV4dFBhbmVsLgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBkb2N1bWVudCBpbiB0aGUgTVRleHRQYW5lbAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0VGV4dExlbmd0aCgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBNVGV4dFBhbmVsLgorICAgICAqIEByZXR1cm4gdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIE1UZXh0UGFuZWwuCisgICAgICovCisgICAgcHVibGljIE1Db25zdFRleHQgZ2V0VGV4dCgpOworICAgIAorLy89PT09PT09PT09PT0KKy8vIFNlbGVjdGlvbiBBY2Nlc3MKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgc3RhcnQgb2YgdGhlIHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvblN0YXJ0KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24uCisgICAgICovCisgICAgcHVibGljIGludCBnZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gPHR0PnNlbGVjdChzZWxlY3Rpb25TdGFydCwgZ2V0U2VsZWN0aW9uRW5kKCkpPC90dD4uCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBzdGFydCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvblN0YXJ0KGludCBzZWxlY3Rpb25TdGFydCk7CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIDx0dD5zZWxlY3QoZ2V0U2VsZWN0aW9uU3RhcnQoKSwgc2VsZWN0aW9uRW5kKTwvdHQ+LgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25FbmQgdGhlIGVuZCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvbkVuZChpbnQgc2VsZWN0aW9uRW5kKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGlvbiByYW5nZSB0byBhbiBpbnNlcnRpb24gcG9pbnQgYXQgdGhlIGdpdmVuCisgICAgICogb2Zmc2V0LiAgVGhpcyBpcyBlcXVpdmFsZW50IHRvCisgICAgICogPHR0PnNlbGVjdChwb3NpdGlvbiwgcG9zaXRpb24pPC90dD4uCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBvZmZzZXQgb2YgdGhlIG5ldyBpbnNlcnRpb24gcG9pbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDYXJldFBvc2l0aW9uKGludCBwb3NpdGlvbik7CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzZWxlY3Rpb24gcmFuZ2UgdG8gdGhlIGdpdmVuIHJhbmdlLiAgVGhlIHJhbmdlIHN0YXJ0CisgICAgICogaXMgcGlubmVkIGJldHdlZW4gMCBhbmQgdGhlIHRleHQgbGVuZ3RoOyAgdGhlIHJhbmdlIGVuZCBpcyBwaW5uZWQKKyAgICAgKiBiZXR3ZWVuIHRoZSByYW5nZSBzdGFydCBhbmQgdGhlIGVuZCBvZiB0aGUgdGV4dC4gIFRoZXNlIHNlbWFudGljcworICAgICAqIGFyZSBpZGVudGljYWwgdG8gdGhvc2Ugb2YgPHR0PmphdmEuYXd0LlRleHRDb21wb25lbnQ8L3R0Pi4KKyAgICAgKiBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZSB0ZXh0IGlzIG5vdCBzZWxlY3RhYmxlLgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25TdGFydCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKiBAcGFyYW0gc2VsZWN0aW9uRW5kIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNlbGVjdChpbnQgc2VsZWN0aW9uU3RhcnQsIGludCBzZWxlY3Rpb25FbmQpOworICAgIAorICAgIC8qKgorICAgICAqIFNlbGVjdCBhbGwgb2YgdGhlIHRleHQgaW4gdGhlIGRvY3VtZW50LiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZSB0ZXh0IGlzIG5vdCBzZWxlY3RhYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNlbGVjdEFsbCgpOworICAgIAorCisvLz09PT09PT09PT09PQorLy8gRm9ybWF0IFdpZHRoCisvLz09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB0b3RhbCBmb3JtYXQgd2lkdGgsIGluIHBpeGVscy4gIFRoZSBmb3JtYXQgd2lkdGggaXMgdGhlCisgICAgICogd2lkdGggdG8gd2hpY2ggdGV4dCBpcyB3cmFwcGVkLgorICAgICAqIEByZXR1cm4gdGhlIGZvcm1hdCB3aWR0aAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Rm9ybWF0V2lkdGgoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIG9mZnNldCBpbiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHBhcmFncmFwaElzTGVmdFRvUmlnaHQoaW50IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgdW5kb25lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgdW5kb25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNhblVuZG8oKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgcmVkb25lLgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhIGNoYW5nZSB3aGljaCBjYW4gYmUgcmVkb25lLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNhblJlZG8oKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2xpcGJvYXJkIGNvbnRhaW5zIGNvbnRlbnRzIHdoaWNoIGNvdWxkIGJlCisgICAgICogdHJhbnNmZXJlZCBpbnRvIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY2xpcGJvYXJkIGhhcyB0ZXh0IGNvbnRlbnQuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gY2xpcGJvYXJkTm90RW1wdHkoKTsKKyAgICAKKworLy89PT09PT09PT09PT0KKy8vIFN0eWxlcworLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVNYXAgb2Yga2V5cyB3aXRoIGRlZmF1bHQgdmFsdWVzLiAgVGhlIGRlZmF1bHQKKyAgICAgKiB2YWx1ZXMgYXJlIHVzZWQgd2hlbiBkaXNwbGF5aW5nIHRleHQgZm9yIHZhbHVlcyB3aGljaCBhcmUgbm90CisgICAgICogc3BlY2lmaWVkIGluIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlTWFwIG9mIGRlZmF1bHQga2V5LXZhbHVlIHBhaXJzCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBnZXREZWZhdWx0VmFsdWVzKCk7CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaW5zcGVjdHMgdGhlIGNoYXJhY3RlciBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZSAob3IgdGhlIHR5cGluZyBzdHlsZSBhdCB0aGUgaW5zZXJ0aW9uIHBvaW50KS4gIEl0IHJldHVybnM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5UaGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+LCBpZiB0aGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+CisgICAgICogaXMgdGhlIHNhbWUgaW4gYWxsIG9mIHRoZSBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24sIG9yPC9saT4KKyAgICAgKiA8bGk+PHR0Pk1VTFRJUExFX1ZBTFVFUzwvdHQ+LCBpZiB0d28gb3IgbW9yZSBzdHlsZSBydW5zIGhhdmUgZGlmZmVyZW50IAorICAgICAqIHZhbHVlcyBmb3IgPHR0PmtleTwvdHQ+LjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKiBJZiBhIHN0eWxlIHJ1biBkb2VzIG5vdCBjb250YWluIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBpdHMgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgZGVmYXVsdCBzdHlsZSBmb3IgPHR0PmtleTwvdHQ+LAorICAgICAqIGFzIGRlZmluZWQgYnkgdGhlIGRlZmF1bHQgdmFsdWVzIEF0dHJpYnV0ZU1hcC4gIE5vdGUgdGhhdCBpZgorICAgICAqIDx0dD5rZXk8L3R0PiBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuCisgICAgICogbnVsbC4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBzZWUgI01VTFRJUExFX1ZBTFVFUworICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uKE9iamVjdCBrZXkpOworICAgIAorICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGluc3BlY3RzIHRoZSBwYXJhZ3JhcGggc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uCisgICAgICogcmFuZ2UgKG9yIHRoZSB0eXBpbmcgc3R5bGUgYXQgdGhlIGluc2VydGlvbiBwb2ludCkuICBJdCByZXR1cm5zOgorICAgICAqIDx1bD4KKyAgICAgKiA8bGk+VGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PiwgaWYgdGhlIHZhbHVlIG9mIDx0dD5rZXk8L3R0PgorICAgICAqIGlzIHRoZSBzYW1lIGluIGFsbCBvZiB0aGUgc3R5bGUgcnVucyBpbiB0aGUgc2VsZWN0aW9uLCBvcjwvbGk+CisgICAgICogPGxpPjx0dD5NVUxUSVBMRV9WQUxVRVM8L3R0PiwgaWYgdHdvIG9yIG1vcmUgc3R5bGUgcnVucyBoYXZlIAorICAgICAqIGRpZmZlcmVudCB2YWx1ZXMgZm9yIDx0dD5rZXk8L3R0Pi48L2xpPgorICAgICAqIDwvdWw+CisgICAgICogSWYgYSBzdHlsZSBydW4gZG9lcyBub3QgY29udGFpbiA8dHQ+a2V5PC90dD4sCisgICAgICogaXRzIHZhbHVlIGlzIGNvbnNpZGVyZWQgdG8gYmUgdGhlIGRlZmF1bHQgc3R5bGUgZm9yIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBhcyBkZWZpbmVkIGJ5IHRoZSBkZWZhdWx0IHZhbHVlcyBBdHRyaWJ1dGVNYXAuICBOb3RlIHRoYXQgaWYKKyAgICAgKiA8dHQ+a2V5PC90dD4gZG9lcyBub3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgdGhpcyBtZXRob2QgbWF5IHJldHVybgorICAgICAqIG51bGwuCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIGZvciBjb25maWd1cmluZyBzdHlsZSBtZW51cy4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdXNlZCB0byByZXRyaWV2ZSB2YWx1ZXMgZm9yIGNvbXBhcmlzb24KKyAgICAgKiBAc2VlICNNVUxUSVBMRV9WQUxVRVMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldFBhcmFncmFwaFN0eWxlT3ZlclNlbGVjdGlvbihPYmplY3Qga2V5KTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgdGhlIHNlbGVjdGVkIHRleHQgZnJvbSB0aGUgZG9jdW1lbnQgYW5kIHBsYWNlIGl0CisgICAgICogb24gdGhlIGNsaXBib2FyZC4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQKKyAgICAgKiBpcyBub3QgZWRpdGFibGUsIG9yIGlmIG5vIHRleHQgaXMgc2VsZWN0ZWQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY3V0KCk7CisgICAgCisgICAgLyoqCisgICAgICogUGxhY2UgdGhlIHNlbGVjdGVkIHRleHQgb24gdGhlIGNsaXBib2FyZC4gIFRoaXMgbWV0aG9kIGhhcworICAgICAqIG5vIGVmZmVjdCBpZiBubyB0ZXh0IGlzIHNlbGVjdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvcHkoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGV4dCB3aXRoIHRoZSB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQuCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dCBpcyBub3QgZWRpdGFibGUsIG9yIGlmIG5vCisgICAgICogdGV4dCBpcyBvbiB0aGUgY2xpcGJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHBhc3RlKCk7CisgICAgCisgICAgLyoqCisgICAgICogUmVtb3ZlIHNlbGVjdGVkIHRleHQgZnJvbSB0aGUgZG9jdW1lbnQsIHdpdGhvdXQgYWx0ZXJpbmcgdGhlIGNsaXBib2FyZC4KKyAgICAgKiBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZQorICAgICAqIHRleHQgaXMgbm90IGVkaXRhYmxlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNsZWFyKCk7CisgICAgCisgICAgLyoqCisgICAgICogVW5kbyB0aGUgbW9zdCByZWNlbnQgdGV4dCBjaGFuZ2UuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlcmUgaXMgbm8gY2hhbmdlIHRvIHVuZG8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgdW5kbygpOworICAgIAorICAgIC8qKgorICAgICAqIFJlZG8gdGhlIG1vc3QgcmVjZW50IHRleHQgY2hhbmdlLiAgVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgorICAgICAqIHRoZXJlIGlzIG5vIGNoYW5nZSB0byByZWRvLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlZG8oKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQuCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZAorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0Q29tbWFuZExvZ1NpemUoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQuICBBbGwKKyAgICAgKiByZWRvYWJsZSBjb21tYW5kcyBhcmUgcmVtb3ZlZCB3aGVuIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4KKyAgICAgKiBAcGFyYW0gc2l6ZSB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIGtlcHQgaW4gdGhlIGNvbW1hbmQgbG9nCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29tbWFuZExvZ1NpemUoaW50IHNpemUpOworICAgIAorICAgIC8qKgorICAgICAqIFJlbW92ZSBhbGwgY29tbWFuZHMgZnJvbSB0aGUgY29tbWFuZCBsb2cuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXJDb21tYW5kTG9nKCk7CisgICAgCisgICAgLyoqCisgICAgICogTW9kaWZ5IHRoZSBjaGFyYWN0ZXIgc3R5bGVzIG9uIHRoZSBzZWxlY3RlZCBjaGFyYWN0ZXJzLiAgSWYgbm8gY2hhcmFjdGVycworICAgICAqIGFyZSBzZWxlY3RlZCwgbW9kaWZ5IHRoZSB0eXBpbmcgc3R5bGUuCisgICAgICogQHBhcmFtIG1vZGlmaWVyIHRoZSBTdHlsZU1vZGlmaWVyIHdpdGggd2hpY2ggdG8gbW9kaWZ5IHRoZSBzdHlsZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIpOworICAgIAorICAgIC8qKgorICAgICAqIE1vZGlmeSB0aGUgcGFyYWdyYXBoIHN0eWxlcyBpbiBwYXJhZ3JhcGhzIGNvbnRhaW5pbmcgc2VsZWN0ZWQgY2hhcmFjdGVycywgb3IKKyAgICAgKiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGluc2VydGlvbiBwb2ludC4KKyAgICAgKiBAcGFyYW0gbW9kaWZpZXIgdGhlIFN0eWxlTW9kaWZpZXIgd2l0aCB3aGljaCB0byBtb2RpZnkgdGhlIHN0eWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24oU3R5bGVNb2RpZmllciBtb2RpZmllcik7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBLZXlSZW1hcCB1c2VkIHRvIHByb2Nlc3Mga2V5IGV2ZW50cy4KKyAgICAgKiBAcmV0dXJuIHRoZSBrZXkgcmVtYXAgdXNlZCB0byBwcm9jZXNzIGtleSBldmVudHMKKyAgICAgKiBAc2VlICNzZXRLZXlSZW1hcAorICAgICAqLworICAgIHB1YmxpYyBLZXlSZW1hcCBnZXRLZXlSZW1hcCgpOworICAgIAorICAgIC8qKgorICAgICAqIFVzZSB0aGUgZ2l2ZW4gS2V5UmVtYXAgdG8gbWFwIGtleSBldmVudHMgdG8gY2hhcmFjdGVycy4KKyAgICAgKiBPbmx5IGtleQorICAgICAqIGV2ZW50cyBhcmUgYWZmZWN0ZWQgYnkgdGhlIHJlbWFwOyAgb3RoZXIgdGV4dCBlbnRlcmluZyB0aGUKKyAgICAgKiBjb250cm9sICh2aWEgdGhlIGNsaXBib2FyZCwgZm9yIGV4YW1wbGUpIGlzIG5vdCBhZmZlY3RlZAorICAgICAqIGJ5IHRoZSBLZXlSZW1hcC4KKyAgICAgKiA8cD4KKyAgICAgKiBEbyBub3QgcGFzcyA8dHQ+bnVsbDwvdHQ+IHRvIHRoaXMgbWV0aG9kIHRvIGxlYXZlIGtleQorICAgICAqIGV2ZW50cyB1bm1hcHBlZC4gIEluc3RlYWQsIHVzZSA8dHQ+S2V5UmVtYXAuZ2V0SWRlbnRpdHlSZW1hcCgpPC90dD4KKyAgICAgKiBAcGFyYW0gcmVtYXAgdGhlIEtleVJlbWFwIHRvIHVzZSBmb3IgbWFwcGluZyBrZXkgZXZlbnRzIHRvIGNoYXJhY3RlcnMKKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBwYXJhbWV0ZXIgaXMgbnVsbAorICAgICAqIEBzZWUgS2V5UmVtYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRLZXlSZW1hcChLZXlSZW1hcCByZW1hcCk7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBtb2RpZmljYXRpb24gZmxhZyBvZiB0aGUgY3VycmVudCB0ZXh0IGNoYW5nZS4KKyAgICAgKiBAc2VlICNzZXRNb2RpZmllZAorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kaWZpZWQoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG1vZGlmaWNhdGlvbiBmbGFnIG9mIHRoZSBjdXJyZW50IHRleHQgY2hhbmdlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1vZGlmaWVkKGJvb2xlYW4gbW9kaWZpZWQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL09mZnNjcmVlbkJ1ZmZlckNhY2hlLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvT2Zmc2NyZWVuQnVmZmVyQ2FjaGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mOWM3NmJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL09mZnNjcmVlbkJ1ZmZlckNhY2hlLmphdmEKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5JbWFnZTsKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CisKK2NsYXNzIE9mZnNjcmVlbkJ1ZmZlckNhY2hlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBJbWFnZSBmT2Zmc2NyZWVuQnVmZmVyID0gbnVsbDsKKyAgICBwcml2YXRlIENvbXBvbmVudCBmSG9zdDsKKworICAgIE9mZnNjcmVlbkJ1ZmZlckNhY2hlKENvbXBvbmVudCBob3N0KSB7CisKKyAgICAgICAgZkhvc3QgPSBob3N0OworICAgIH0KKworICAgIHByaXZhdGUgSW1hZ2UgbWFrZUJ1ZmZlcihpbnQgd2lkdGgsIGludCBoZWlnaHQpIHsKKworICAgICAgICByZXR1cm4gZkhvc3QuY3JlYXRlSW1hZ2UoTWF0aC5tYXgod2lkdGgsIDEpLCBNYXRoLm1heChoZWlnaHQsIDEpKTsKKyAgICB9CisKKyAgICBJbWFnZSBnZXRCdWZmZXIoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB7CisKKyAgICAgICAgSW1hZ2UgYnVmZmVyID0gZk9mZnNjcmVlbkJ1ZmZlcjsKKworICAgICAgICBpZiAoYnVmZmVyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChidWZmZXIuZ2V0V2lkdGgoZkhvc3QpID49IHdpZHRoICYmCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5nZXRIZWlnaHQoZkhvc3QpID49IGhlaWdodCkgeworICAgICAgICAgICAgICAgIHJldHVybiBidWZmZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBidWZmZXIgPSBtYWtlQnVmZmVyKHdpZHRoLCBoZWlnaHQpOworICAgICAgICBmT2Zmc2NyZWVuQnVmZmVyID0gYnVmZmVyOworICAgICAgICByZXR1cm4gYnVmZmVyOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvUGFuZWxFdmVudEJyb2FkY2FzdGVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvUGFuZWxFdmVudEJyb2FkY2FzdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2IzYzg0NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9QYW5lbEV2ZW50QnJvYWRjYXN0ZXIuamF2YQpAQCAtMCwwICsxLDk4IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKKy8qKgorICogVGhpcyBjbGFzcyBsaXN0ZW5zIGZvciB0ZXh0IHN0YXRlIGNoYW5nZSBub3RpZmljYXRpb25zCisgKiBhbmQgYnJvYWRjYXN0cyB0aGVtIHRvIGFsbCBvZiBpdHMgbGlzdGVuZXJzLgorICovCitmaW5hbCBjbGFzcyBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgRklSU1QgPSBUZXh0UGFuZWxFdmVudC5URVhUX1BBTkVMX0ZJUlNUOworCisgICAgcHJpdmF0ZSBmaW5hbCBWZWN0b3JbXSBmTGlzdGVuZXJzOworICAgIHByaXZhdGUgZmluYWwgVGV4dFBhbmVsRXZlbnRbXSBmRXZlbnRzOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IFBhbmVsRXZlbnRCcm9hZGNhc3Rlci4KKyAgICAgKiBAcGFyYW0gcGFuZWwgdGhlIFRleHRQYW5lbCBmb3Igd2hpY2ggZXZlbnRzIGFyZSBicm9hZGNhc3RlZAorICAgICAqLworICAgIHB1YmxpYyBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIoTVRleHRQYW5lbCBwYW5lbCkgeworCisgICAgICAgIGludCBjb3VudCA9IFRleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfTEFTVCAtIEZJUlNUICsgMTsKKworICAgICAgICBmRXZlbnRzID0gbmV3IFRleHRQYW5lbEV2ZW50W2NvdW50XTsKKyAgICAgICAgZkxpc3RlbmVycyA9IG5ldyBWZWN0b3JbY291bnRdOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZkxpc3RlbmVycy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZkV2ZW50c1tpXSA9IG5ldyBUZXh0UGFuZWxFdmVudChwYW5lbCwgaStGSVJTVCk7CisgICAgICAgICAgICBmTGlzdGVuZXJzW2ldID0gbmV3IFZlY3RvcigpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIHRoZSBnaXZlbiBUZXh0UGFuZWxMaXN0ZW5lciB0byB0aGUgVGV4dFBhbmVsTGlzdGVuZXJzIHRvCisgICAgICogd2hpY2ggbm90aWZpY2F0aW9ucyBhcmUgZm9yd2FyZGVkLgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciB0aGUgbGlzdGVuZXIgdG8gYWRkCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCB2b2lkIGFkZExpc3RlbmVyKFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyKSB7CisKKyAgICAgICAgZm9yIChpbnQgaT1GSVJTVDsgaSA8PSBUZXh0UGFuZWxFdmVudC5URVhUX1BBTkVMX0xBU1Q7IGkrKykgeworICAgICAgICAgICAgVmVjdG9yIGxpc3RlbmVycyA9IGZMaXN0ZW5lcnNbaS1GSVJTVF07CisgICAgICAgICAgICBpZiAobGlzdGVuZXIucmVzcG9uZHNUb0V2ZW50VHlwZShpKSkgeworICAgICAgICAgICAgICAgIGlmICghbGlzdGVuZXJzLmNvbnRhaW5zKGxpc3RlbmVyKSkgeworICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcnMuYWRkRWxlbWVudChsaXN0ZW5lcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIHRoZSBnaXZlbiBUZXh0UGFuZWxMaXN0ZW5lciBmcm9tIHRoZSBUZXh0UGFuZWxMaXN0ZW5lcnMgdG8KKyAgICAgKiB3aGljaCBub3RpZmljYXRpb25zIGFyZSBmb3J3YXJkZWQuCisgICAgICogQHBhcmFtIGxpc3RlbmVyIHRoZSBsaXN0ZW5lciB0byByZW1vdmUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgcmVtb3ZlTGlzdGVuZXIoVGV4dFBhbmVsTGlzdGVuZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmb3IgKGludCBpPUZJUlNUOyBpIDw9IFRleHRQYW5lbEV2ZW50LlRFWFRfUEFORUxfTEFTVDsgaSsrKSB7CisgICAgICAgICAgICBWZWN0b3IgbGlzdGVuZXJzID0gZkxpc3RlbmVyc1tpLUZJUlNUXTsKKyAgICAgICAgICAgIGlmIChsaXN0ZW5lci5yZXNwb25kc1RvRXZlbnRUeXBlKGkpKSB7CisgICAgICAgICAgICAgICAgbGlzdGVuZXJzLnJlbW92ZUVsZW1lbnQobGlzdGVuZXIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVjZWl2ZSBhIG5vdGlmaWNhdGlvbiBhbmQgZm9yd2FyZCBpdCB0byBhbGwgbGlzdGVuZXJzLgorICAgICAqIEBjaGFuZ2VDb2RlIG9uZSBvZiB0aGUgY29uc3RhbnRzIGluIHRoZSBUZXh0UGFuZWxMaXN0ZW5lciBjbGFzcworICAgICAqLworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCB0ZXh0U3RhdGVDaGFuZ2VkKGludCBpZCkgeworCisgICAgICAgIGludCBpbmRleCA9IGlkLUZJUlNUOworICAgICAgICBUZXh0UGFuZWxFdmVudCBldmVudCA9IGZFdmVudHNbaW5kZXhdOworICAgICAgICBWZWN0b3IgbGlzdGVuZXJzID0gZkxpc3RlbmVyc1tpbmRleF07CisgICAgICAgIAorICAgICAgICBpbnQgc2l6ZSA9IGxpc3RlbmVycy5zaXplKCk7CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgc2l6ZTsgaSsrKSB7CisKKyAgICAgICAgICAgIFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVGV4dFBhbmVsTGlzdGVuZXIpIGxpc3RlbmVycy5lbGVtZW50QXQoaSk7CisgICAgICAgICAgICBsaXN0ZW5lci50ZXh0RXZlbnRPY2N1cnJlZChldmVudCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvUnVuU3RyYXRlZ3kuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9SdW5TdHJhdGVneS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNjNDcxNDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvUnVuU3RyYXRlZ3kuamF2YQpAQCAtMCwwICsxLDIwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworY2xhc3MgUnVuU3RyYXRlZ3kgeworICAgIAorICAgIHZvaWQgZG9JdChSdW5uYWJsZSByKSB7CisgICAgICAgIHIucnVuKCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TY3JvbGxCYXJMYXlvdXQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TY3JvbGxCYXJMYXlvdXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YjVjOTg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1Njcm9sbEJhckxheW91dC5qYXZhCkBAIC0wLDAgKzEsMTUxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5Db250YWluZXI7CitpbXBvcnQgamF2YS5hd3QuRGltZW5zaW9uOworaW1wb3J0IGphdmEuYXd0Lkluc2V0czsKK2ltcG9ydCBqYXZhLmF3dC5MYXlvdXRNYW5hZ2VyOworCitjbGFzcyBTY3JvbGxCYXJMYXlvdXQgaW1wbGVtZW50cyBMYXlvdXRNYW5hZ2VyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgQ29tcG9uZW50ICAgZkhvcml6U2Nyb2xsQmFyID0gbnVsbDsKKyAgICBDb21wb25lbnQgICBmVmVydFNjcm9sbEJhciA9IG51bGw7CisgICAgQ29tcG9uZW50ICAgZkNoaWxkID0gbnVsbDsKKworICAgIHB1YmxpYyBTY3JvbGxCYXJMYXlvdXQoKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkTGF5b3V0Q29tcG9uZW50KFN0cmluZyBuYW1lLCBDb21wb25lbnQgY29tcCkgeworCisgICAgICAgIGlmICgiQ2VudGVyIi5lcXVhbHMobmFtZSkpCisgICAgICAgICAgICBmQ2hpbGQgPSBjb21wOworICAgICAgICBlbHNlIGlmICgiU291dGgiLmVxdWFscyhuYW1lKSkKKyAgICAgICAgICAgIGZIb3JpelNjcm9sbEJhciA9IGNvbXA7CisgICAgICAgIGVsc2UgaWYgKCJFYXN0Ii5lcXVhbHMobmFtZSkpCisgICAgICAgICAgICBmVmVydFNjcm9sbEJhciA9IGNvbXA7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbGF5b3V0Q29udGFpbmVyKENvbnRhaW5lciB0YXJnZXQpIHsKKworICAgICAgICBJbnNldHMgICAgICBpbnNldHMgPSB0YXJnZXQuZ2V0SW5zZXRzKCk7CisgICAgICAgIERpbWVuc2lvbiAgIHRhcmdldFNpemUgPSB0YXJnZXQuZ2V0U2l6ZSgpOworICAgICAgICBpbnQgICAgICAgICBoc2JIZWlnaHQgPSAoZkhvcml6U2Nyb2xsQmFyICE9IG51bGwpID8gZkhvcml6U2Nyb2xsQmFyLmdldFByZWZlcnJlZFNpemUoKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQgOiAwOworICAgICAgICBpbnQgICAgICAgICB2c2JXaWR0aCA9IChmVmVydFNjcm9sbEJhciAhPSBudWxsKSA/IGZWZXJ0U2Nyb2xsQmFyLmdldFByZWZlcnJlZFNpemUoKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCA6IDA7CisKKyAgICAgICAgaWYgKGZIb3JpelNjcm9sbEJhciAhPSBudWxsKQorICAgICAgICAgICAgZkhvcml6U2Nyb2xsQmFyLnNldEJvdW5kcyhpbnNldHMubGVmdCwgdGFyZ2V0U2l6ZS5oZWlnaHQgLSBpbnNldHMuYm90dG9tIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHNiSGVpZ2h0LCB0YXJnZXRTaXplLndpZHRoIC0gdnNiV2lkdGgsIGhzYkhlaWdodCk7CisKKyAgICAgICAgaWYgKGZWZXJ0U2Nyb2xsQmFyICE9IG51bGwpCisgICAgICAgICAgICBmVmVydFNjcm9sbEJhci5zZXRCb3VuZHModGFyZ2V0U2l6ZS53aWR0aCAtIGluc2V0cy5yaWdodCAtIHZzYldpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNldHMudG9wLCB2c2JXaWR0aCwgdGFyZ2V0U2l6ZS5oZWlnaHQgLSBoc2JIZWlnaHQpOworCisgICAgICAgIGlmIChmQ2hpbGQgIT0gbnVsbCkKKyAgICAgICAgICAgIGZDaGlsZC5zZXRCb3VuZHMoaW5zZXRzLmxlZnQsIGluc2V0cy50b3AsIHRhcmdldFNpemUud2lkdGggLSBpbnNldHMucmlnaHQgLSB2c2JXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U2l6ZS5oZWlnaHQgLSBpbnNldHMuYm90dG9tIC0gaHNiSGVpZ2h0KTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGltZW5zaW9uIG1pbmltdW1MYXlvdXRTaXplKENvbnRhaW5lciB0YXJnZXQpIHsKKworICAgICAgICBEaW1lbnNpb24gICByZXR1cm5WYWwgPSBuZXcgRGltZW5zaW9uKDAsIDApOworICAgICAgICBEaW1lbnNpb24gICBoc2JTaXplOworICAgICAgICBEaW1lbnNpb24gICB2c2JTaXplOworICAgICAgICBEaW1lbnNpb24gICBjaGlsZFNpemU7CisKKyAgICAgICAgaWYgKGZIb3JpelNjcm9sbEJhciAhPSBudWxsICYmIGZIb3JpelNjcm9sbEJhci5pc1Zpc2libGUoKSkgeworICAgICAgICAgICAgaHNiU2l6ZSA9IGZIb3JpelNjcm9sbEJhci5nZXRNaW5pbXVtU2l6ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaHNiU2l6ZSA9IG5ldyBEaW1lbnNpb24oMCwgMCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlZlcnRTY3JvbGxCYXIgIT0gbnVsbCAmJiBmVmVydFNjcm9sbEJhci5pc1Zpc2libGUoKSkgeworICAgICAgICAgICAgdnNiU2l6ZSA9IGZWZXJ0U2Nyb2xsQmFyLmdldE1pbmltdW1TaXplKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB2c2JTaXplID0gbmV3IERpbWVuc2lvbigwLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmQ2hpbGQgIT0gbnVsbCAmJiBmQ2hpbGQuaXNWaXNpYmxlKCkpIHsKKyAgICAgICAgICAgIGNoaWxkU2l6ZSA9IGZDaGlsZC5nZXRNaW5pbXVtU2l6ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY2hpbGRTaXplID0gbmV3IERpbWVuc2lvbigwLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVyblZhbC53aWR0aCA9IE1hdGgubWF4KGNoaWxkU2l6ZS53aWR0aCwgaHNiU2l6ZS53aWR0aCkgKyB2c2JTaXplLndpZHRoOworICAgICAgICByZXR1cm5WYWwuaGVpZ2h0ID0gTWF0aC5tYXgoY2hpbGRTaXplLmhlaWdodCwgdnNiU2l6ZS5oZWlnaHQpICsgaHNiU2l6ZS5oZWlnaHQ7CisKKyAgICAgICAgSW5zZXRzICBpbnNldHMgPSB0YXJnZXQuZ2V0SW5zZXRzKCk7CisKKyAgICAgICAgcmV0dXJuVmFsLndpZHRoICs9IGluc2V0cy5sZWZ0ICsgaW5zZXRzLnJpZ2h0OworICAgICAgICByZXR1cm5WYWwuaGVpZ2h0ICs9IGluc2V0cy50b3AgKyBpbnNldHMuYm90dG9tOworCisgICAgICAgIHJldHVybiByZXR1cm5WYWw7CisgICAgfQorCisgICAgcHVibGljIERpbWVuc2lvbiBwcmVmZXJyZWRMYXlvdXRTaXplKENvbnRhaW5lciB0YXJnZXQpIHsKKworICAgICAgICBEaW1lbnNpb24gICByZXR1cm5WYWwgPSBuZXcgRGltZW5zaW9uKDAsIDApOworICAgICAgICBEaW1lbnNpb24gICBoc2JTaXplOworICAgICAgICBEaW1lbnNpb24gICB2c2JTaXplOworICAgICAgICBEaW1lbnNpb24gICBjaGlsZFNpemU7CisKKyAgICAgICAgaWYgKGZIb3JpelNjcm9sbEJhciAhPSBudWxsICYmIGZIb3JpelNjcm9sbEJhci5pc1Zpc2libGUoKSkgeworICAgICAgICAgICAgaHNiU2l6ZSA9IGZIb3JpelNjcm9sbEJhci5nZXRQcmVmZXJyZWRTaXplKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBoc2JTaXplID0gbmV3IERpbWVuc2lvbigwLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmVmVydFNjcm9sbEJhciAhPSBudWxsICYmIGZWZXJ0U2Nyb2xsQmFyLmlzVmlzaWJsZSgpKSB7CisgICAgICAgICAgICB2c2JTaXplID0gZlZlcnRTY3JvbGxCYXIuZ2V0UHJlZmVycmVkU2l6ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdnNiU2l6ZSA9IG5ldyBEaW1lbnNpb24oMCwgMCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZkNoaWxkICE9IG51bGwgJiYgZkNoaWxkLmlzVmlzaWJsZSgpKSB7CisgICAgICAgICAgICBjaGlsZFNpemUgPSBmQ2hpbGQuZ2V0UHJlZmVycmVkU2l6ZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY2hpbGRTaXplID0gbmV3IERpbWVuc2lvbigwLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVyblZhbC53aWR0aCA9IE1hdGgubWF4KGNoaWxkU2l6ZS53aWR0aCwgaHNiU2l6ZS53aWR0aCkgKyB2c2JTaXplLndpZHRoOworICAgICAgICByZXR1cm5WYWwuaGVpZ2h0ID0gTWF0aC5tYXgoY2hpbGRTaXplLmhlaWdodCwgdnNiU2l6ZS5oZWlnaHQpICsgaHNiU2l6ZS5oZWlnaHQ7CisKKyAgICAgICAgSW5zZXRzICBpbnNldHMgPSB0YXJnZXQuZ2V0SW5zZXRzKCk7CisKKyAgICAgICAgcmV0dXJuVmFsLndpZHRoICs9IGluc2V0cy5sZWZ0ICsgaW5zZXRzLnJpZ2h0OworICAgICAgICByZXR1cm5WYWwuaGVpZ2h0ICs9IGluc2V0cy50b3AgKyBpbnNldHMuYm90dG9tOworCisgICAgICAgIHJldHVybiByZXR1cm5WYWw7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlTGF5b3V0Q29tcG9uZW50KENvbXBvbmVudCBjb21wKSB7CisKKyAgICAgICAgaWYgKGNvbXAgPT0gZkNoaWxkKQorICAgICAgICAgICAgZkNoaWxkID0gbnVsbDsKKyAgICAgICAgZWxzZSBpZiAoY29tcCA9PSBmSG9yaXpTY3JvbGxCYXIpCisgICAgICAgICAgICBmSG9yaXpTY3JvbGxCYXIgPSBudWxsOworICAgICAgICBlbHNlIGlmIChjb21wID09IGZWZXJ0U2Nyb2xsQmFyKQorICAgICAgICAgICAgZlZlcnRTY3JvbGxCYXIgPSBudWxsOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TY3JvbGxlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1Njcm9sbGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODJjY2IyNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TY3JvbGxlci5qYXZhCkBAIC0wLDAgKzEsMjA1IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA1LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworLyoKKyAgICA3LzkvOTcgLSBjaGFuZ2VkIHNvbWUgZGVwcmVjYXRlZCBtZXRob2RzIGluIFNjcm9sbGJhcgorICAgICAgICAgICAgQWxzbyBzZXR0aW5nIFVuaXQgYW5kIEJsb2NrIGluY3JlbWVudCB2YWx1ZXMuICBNYXliZQorICAgICAgICAgICAgaXQgbWF0dGVycy4uLgorICAgIDYvMjkvOTggLSByZWltcGxlbWVudGVkIHRoaXMgY2xhc3MuICBOb3cgdGhpcyBjbGFzcyB0YWxrcyB0bworICAgICAgICAgICAgICBhbnkgY29tcG9uZW50IHdoaWNoIGltcGxlbWVudHMgU2Nyb2xsZXIuQ2xpZW50LgorICAgICAgICAgICAgICBTY3JvbGxIb2xkZXIgaXMgZ29uZSwgdG9vLgorICAgIDIvNC85OSAtIE5vIGxvbmdlciBhIFBhbmVsLiAgQWxzbywgZG9lc24ndCBjcmVhdGUgU2Nyb2xsYmFycywKKyAgICAgICAgICAgICBhbmQgaW4gZmFjdCBkb2Vzbid0IGV2ZW4gdXNlIHRoZSBTY3JvbGxiYXIgY2xhc3MKKyAgICAgICAgICAgICBkaXJlY3RseS4KKyovCisKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuUmVjdGFuZ2xlOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQWRqdXN0bWVudExpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFkanVzdG1lbnRFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5BZGp1c3RhYmxlOworCisvKioKKyogVGhpcyBjbGFzcyBtYW5hZ2VzIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGEgc2Nyb2xsYWJsZSBjbGllbnQKKyogYW5kIHZlcnRpY2FsIGFuZCBob3Jpem9udGFsIHNjcm9sbGJhcnMuICBJdCBjYWxscyB0aGUgY2xpZW50J3MKKyogc2Nyb2xsVG8gbWV0aG9kIGluIHJlc3BvbnNlIHRvIG1hbmlwdWxhdGlvbiBvZiB0aGUgc2Nyb2xsIGJhcnMuCisqCisqIFRoaXMgY2xhc3MgdXNlZCB0byBiZSBhIFBhbmVsIGNvbnRhaW5pbmcgdGhlIHNjcm9sbGJhcnMgYW5kCisqIHRoZSBjbGllbnQgcGFuZWwuICBBcyBwYXJ0IG9mIHRoZSBtaWdyYXRpb24gYXdheSBmcm9tIGRpcmVjdAorKiBBV1QgZGVwZW5kZW5jaWVzLCB0aGlzIGNsYXNzIGlzIG5vIGxvbmdlciBwYXJ0IG9mIHRoZSB2aWV3CisqIGhpZXJhcmNoeS4gIEluc3RlYWQgaXQgc2ltcGx5IGtlZXBzIGEgcmVmZXJlbmNlIHRvIGl0cworKiBjbGllbnQgYW5kIHNjcm9sbCBiYXJzLiAgSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIGhpZ2hlci0KKyogbGV2ZWwgY2xhc3NlcyB0byBzZXQgdXAgdGhlIHZpZXcgaGllcmFyY2h5LgorKi8KK2ZpbmFsIGNsYXNzIFNjcm9sbGVyIGltcGxlbWVudHMgQWRqdXN0bWVudExpc3RlbmVyCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKworICAgIHN0YXRpYyBpbnRlcmZhY2UgQ2xpZW50IHsKKyAgICAgICAgdm9pZCBzY3JvbGxUbyhpbnQgeCwgaW50IHkpOworICAgICAgICBSZWN0YW5nbGUgZ2V0U2Nyb2xsU2l6ZSgpOworICAgICAgICBSZWN0YW5nbGUgZ2V0Qm91bmRzKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBBZGp1c3RhYmxlIGZIb3JpelNjcm9sbEJhciA9IG51bGw7CisgICAgcHJpdmF0ZSBBZGp1c3RhYmxlIGZWZXJ0U2Nyb2xsQmFyID0gbnVsbDsKKyAgICBwcml2YXRlIENsaWVudCBmQ2xpZW50ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZXNlIGFyZSB1c2VkIGlmIHRoZSByZXNwZWN0aXZlIFNjcm9sbGJhciBpcyBub3QgcHJlc2VudC4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBmSG9yaXpWYWx1ZSwgZlZlcnRWYWx1ZTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBERUZBVUxUX1VOSVRfSU5DID0gMTA7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgU2Nyb2xsZXIgd2l0aCB0aGUgZ2l2ZW4gQWRqdXN0YWJsZXMsCisgICAgICogd2hpY2ggcmVhbGx5IHNob3VsZCBiZSBzY3JvbGxiYXJzIG9mIHNvbWUgaWxrLgorICAgICAqIEFsc28sIHRoZSBBZGp1c3RhYmxlcyBhcmUgcmVxdWlyZWQgdG8gYmUgQVdUIENvbXBvbmVudHMsCisgICAgICogc28gdGhlIFNjcm9sbGVyIGNhbiBlbmFibGUgYW5kIGRpc2FibGUgdGhlbS4KKyAgICAgKiBIb3dldmVyLCBhIFNjcm9sbGVyIGNhbiB3b3JrIHdpdGggZWl0aGVyIEFXVCBTY3JvbGxiYXJzCisgICAgICogb3IgSkZDIEpTY3JvbGxiYXJzLgorICAgICAqIEBwYXJhbSBob3JpelNjcm9sbEJhciB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIuICBudWxsIGlmCisgICAgICogdGhlcmUgaXMgbm8gaG9yaXpvbnRhbCBzY3JvbGxiYXIuCisgICAgICogQHBhcmFtIHZlcnRTY3JvbGxCYXIgdGhlIHZlcnRpY2FsIHNjcm9sbGJhci4gIG51bGwgaWYKKyAgICAgKiB0aGVyZSBpcyBubyB2ZXJ0aWNhbCBzY3JvbGxiYXIuCisgICAgICovCisgICAgcHVibGljIFNjcm9sbGVyKEFkanVzdGFibGUgaG9yaXpTY3JvbGxCYXIsCisgICAgICAgICAgICAgICAgICAgIEFkanVzdGFibGUgdmVydFNjcm9sbEJhcikgeworCisgICAgICAgIC8vc2V0TGF5b3V0KG5ldyBTY3JvbGxCYXJMYXlvdXQoKSk7CisKKyAgICAgICAgZkhvcml6U2Nyb2xsQmFyID0gaG9yaXpTY3JvbGxCYXI7CisgICAgICAgIGZWZXJ0U2Nyb2xsQmFyID0gdmVydFNjcm9sbEJhcjsKKworICAgICAgICBpZiAoZlZlcnRTY3JvbGxCYXIgIT0gbnVsbCkgeworICAgICAgICAgICAgZlZlcnRTY3JvbGxCYXIuc2V0VW5pdEluY3JlbWVudChERUZBVUxUX1VOSVRfSU5DKTsKKyAgICAgICAgICAgIGZWZXJ0U2Nyb2xsQmFyLmFkZEFkanVzdG1lbnRMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZkhvcml6U2Nyb2xsQmFyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZIb3JpelNjcm9sbEJhci5zZXRVbml0SW5jcmVtZW50KERFRkFVTFRfVU5JVF9JTkMpOworICAgICAgICAgICAgZkhvcml6U2Nyb2xsQmFyLmFkZEFkanVzdG1lbnRMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldENsaWVudChDbGllbnQgY2xpZW50KSB7CisKKyAgICAgICAgZkNsaWVudCA9IGNsaWVudDsKKyAgICAgICAgY2xpZW50U2Nyb2xsU2l6ZUNoYW5nZWQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGp1c3RtZW50VmFsdWVDaGFuZ2VkKEFkanVzdG1lbnRFdmVudCBldmVudCkgeworCisgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGJvb2xlYW4gaG9yaXpvbnRhbDsKKyAgICAgICAgaWYgKGV2ZW50LmdldEFkanVzdGFibGUoKSA9PSBmSG9yaXpTY3JvbGxCYXIpIHsKKyAgICAgICAgICAgIGludCB2ZXJ0VmFsID0gZlZlcnRTY3JvbGxCYXIgPT0gbnVsbD8gZlZlcnRWYWx1ZSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlZlcnRTY3JvbGxCYXIuZ2V0VmFsdWUoKTsKKyAgICAgICAgICAgIHNjcm9sbFRvKGV2ZW50LmdldFZhbHVlKCksIHZlcnRWYWwpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaW50IGhvcml6VmFsID0gZkhvcml6U2Nyb2xsQmFyID09IG51bGw/IGZIb3JpelZhbHVlIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmSG9yaXpTY3JvbGxCYXIuZ2V0VmFsdWUoKTsKKyAgICAgICAgICAgIHNjcm9sbFRvKGhvcml6VmFsLCBldmVudC5nZXRWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRWYWx1ZXMoQWRqdXN0YWJsZSBzY3JvbGxiYXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmlzaWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaW5pbXVtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGhlaWdodCkgeworCisgICAgICAgIGludCBtYXhpbXVtID0gbWluaW11bStoZWlnaHQ7CisgICAgICAgIAorICAgICAgICBpZiAoc2Nyb2xsYmFyICE9IG51bGwpIHsKKworICAgICAgICAgICAgQ29tcG9uZW50IHNjcm9sbGJhclRvbyA9IChDb21wb25lbnQpIHNjcm9sbGJhcjsKKworICAgICAgICAgICAgaWYgKG1heGltdW0gPD0gdmlzaWJsZSkgeworICAgICAgICAgICAgICAgIHNjcm9sbGJhclRvby5zZXRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHNjcm9sbGJhclRvby5zZXRFbmFibGVkKHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBzY3JvbGxiYXIuc2V0TWluaW11bShtaW5pbXVtKTsKKyAgICAgICAgICAgIHNjcm9sbGJhci5zZXRNYXhpbXVtKG1heGltdW0pOworICAgICAgICAgICAgc2Nyb2xsYmFyLnNldFZpc2libGVBbW91bnQodmlzaWJsZSk7CisgICAgICAgIC8vIHdvcmthcm91bmQgc2V0QmxvY2tJbmNyZW1lbnQgd2FybmluZ3MgZm9yIGluY3JlbWVudHMgPCAxCisgICAgICAgIHNjcm9sbGJhci5zZXRCbG9ja0luY3JlbWVudChNYXRoLm1heCgxLCB2aXNpYmxlIC0gREVGQVVMVF9VTklUX0lOQykpOworICAgICAgICB9CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBjbGllbnRTY3JvbGxTaXplQ2hhbmdlZCgpCisgICAgeworICAgICAgICBSZWN0YW5nbGUgYm91bmRzID0gZkNsaWVudC5nZXRCb3VuZHMoKTsKKyAgICAgICAgUmVjdGFuZ2xlIHByZWZlcnJlZFNpemUgPSBmQ2xpZW50LmdldFNjcm9sbFNpemUoKTsKKworICAgICAgICBzZXRWYWx1ZXMoZkhvcml6U2Nyb2xsQmFyLCBib3VuZHMud2lkdGgsIHByZWZlcnJlZFNpemUueCwgcHJlZmVycmVkU2l6ZS53aWR0aCk7CisgICAgICAgIHNldFZhbHVlcyhmVmVydFNjcm9sbEJhciwgYm91bmRzLmhlaWdodCwgcHJlZmVycmVkU2l6ZS55LCBwcmVmZXJyZWRTaXplLmhlaWdodCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UG9zaXRpb24oaW50IHgsIGludCB5KSB7CisKKyAgICAgICAgaWYgKGZIb3JpelNjcm9sbEJhciAhPSBudWxsKSB7CisgICAgICAgICAgICBmSG9yaXpTY3JvbGxCYXIuc2V0VmFsdWUoeCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmSG9yaXpWYWx1ZSA9IHg7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGZWZXJ0U2Nyb2xsQmFyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZWZXJ0U2Nyb2xsQmFyLnNldFZhbHVlKHkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZlZlcnRWYWx1ZSA9IHk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2Nyb2xsVG8oaW50IHgsIGludCB5KQorICAgIHsKKyAgICAgICAgZkNsaWVudC5zY3JvbGxUbyh4LCB5KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRIb3JpekxpbmVEaXN0YW5jZShpbnQgbmV3RGlzdGFuY2UpCisgICAgeworICAgICAgICBpZiAoZkhvcml6U2Nyb2xsQmFyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZIb3JpelNjcm9sbEJhci5zZXRVbml0SW5jcmVtZW50KG5ld0Rpc3RhbmNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEhvcml6UGFnZU92ZXJsYXAoaW50IG5ld092ZXJsYXApCisgICAgeworICAgICAgICBpZiAoZkhvcml6U2Nyb2xsQmFyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZIb3JpelNjcm9sbEJhci5zZXRCbG9ja0luY3JlbWVudCggLy8gd29ya2Fyb3VuZCB3YXJuaW5ncyBmb3IgdmFsdWVzIDwgMSBvbiB1bml4CisgICAgICAgICAgICAgICAgICAgIE1hdGgubWF4KDEsIGZIb3JpelNjcm9sbEJhci5nZXRWaXNpYmxlQW1vdW50KCktbmV3T3ZlcmxhcCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VmVydExpbmVEaXN0YW5jZShpbnQgbmV3RGlzdGFuY2UpCisgICAgeworICAgICAgICBpZiAoZlZlcnRTY3JvbGxCYXIgIT0gbnVsbCkgeworICAgICAgICAgICAgZlZlcnRTY3JvbGxCYXIuc2V0VW5pdEluY3JlbWVudChuZXdEaXN0YW5jZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRWZXJ0UGFnZU92ZXJsYXAoaW50IG5ld092ZXJsYXApCisgICAgeworICAgICAgICBpZiAoZlZlcnRTY3JvbGxCYXIgIT0gbnVsbCkgeworICAgICAgICAgICAgZlZlcnRTY3JvbGxCYXIuc2V0QmxvY2tJbmNyZW1lbnQoIC8vIHdvcmthcm91bmQgd2FybmluZ3MgZm9yIHZhbHVlcyA8IDEgb24gdW5peAorICAgICAgICAgICAgICAgICAgICBNYXRoLm1heCgxLCBmVmVydFNjcm9sbEJhci5nZXRWaXNpYmxlQW1vdW50KCktbmV3T3ZlcmxhcCkpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1NlbGVjdGlvbkRyYWdJbnRlcmFjdG9yLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU2VsZWN0aW9uRHJhZ0ludGVyYWN0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41OTUzOGZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1NlbGVjdGlvbkRyYWdJbnRlcmFjdG9yLmphdmEKQEAgLTAsMCArMSwyMDEgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuRm9jdXNFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUV2ZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CisKK2ZpbmFsIGNsYXNzIFNlbGVjdGlvbkRyYWdJbnRlcmFjdG9yIGV4dGVuZHMgQmVoYXZpb3IgaW1wbGVtZW50cyBSdW5uYWJsZSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgVGV4dENvbXBvbmVudCBmVGV4dENvbXBvbmVudDsKKyAgICBwcml2YXRlIFRleHRTZWxlY3Rpb24gZlNlbGVjdGlvbjsKKyAgICBwcml2YXRlIFJ1blN0cmF0ZWd5IGZSdW5TdHJhdGVneTsKKyAgICAKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgZkFuY2hvclN0YXJ0OyAvLyBhbGlhc2VzIHRleHQgb2Zmc2V0cyAtIGNsaWVudCBiZXdhcmUKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgZkFuY2hvckVuZDsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgZkN1cnJlbnQ7CisKKyAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gZldhc1plcm9MZW5ndGg7CisKKyAgICBwcml2YXRlIGludCBmQ3VycmVudFg7CisgICAgcHJpdmF0ZSBpbnQgZkN1cnJlbnRZOworICAgIHByaXZhdGUgYm9vbGVhbiBmTW91c2VPdXRzaWRlOworCisgICAgcHJpdmF0ZSBUaHJlYWQgZkF1dG9zY3JvbGxUaHJlYWQgPSBudWxsOworICAgIHByaXZhdGUgYm9vbGVhbiBmVGhyZWFkUnVuID0gdHJ1ZTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrU2Nyb2xsU2xlZXAgPSAzMDA7CisKKyAgICBwdWJsaWMgU2VsZWN0aW9uRHJhZ0ludGVyYWN0b3IoVGV4dFNlbGVjdGlvbiBzZWxlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRDb21wb25lbnQgdGV4dENvbXBvbmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVuU3RyYXRlZ3kgcnVuU3RyYXRlZ3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgYW5jaG9yU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgYW5jaG9yRW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IGN1cnJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbml0aWFsWCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluaXRpYWxZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHdhc1plcm9MZW5ndGgpIHsKKworICAgICAgICBmVGV4dENvbXBvbmVudCA9IHRleHRDb21wb25lbnQ7CisgICAgICAgIGZTZWxlY3Rpb24gPSBzZWxlY3Rpb247CisgICAgICAgIGZSdW5TdHJhdGVneSA9IHJ1blN0cmF0ZWd5OworICAgICAgICBmQW5jaG9yU3RhcnQgPSBhbmNob3JTdGFydDsKKyAgICAgICAgZkFuY2hvckVuZCA9IGFuY2hvckVuZDsKKyAgICAgICAgZkN1cnJlbnQgPSBjdXJyZW50OworCisgICAgICAgIGZDdXJyZW50WCA9IGluaXRpYWxYOworICAgICAgICBmQ3VycmVudFkgPSBpbml0aWFsWTsKKyAgICAgICAgZk1vdXNlT3V0c2lkZSA9IGZhbHNlOworCisgICAgICAgIGZXYXNaZXJvTGVuZ3RoID0gd2FzWmVyb0xlbmd0aDsKKyAgICAgICAgCisgICAgICAgIHNldFNlbGVjdGlvbigpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiB0ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuRXZlbnRUeXBlIGV2ZW50LCBPYmplY3Qgd2hhdCkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGZvY3VzR2FpbmVkKEZvY3VzRXZlbnQgZXZlbnQpIHsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBmb2N1c0xvc3QoRm9jdXNFdmVudCBldmVudCkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGtleVByZXNzZWQoS2V5RXZlbnQgZXZlbnQpIHsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlUeXBlZChLZXlFdmVudCBldmVudCkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGtleVJlbGVhc2VkKEtleUV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBib29sZWFuIG1vdXNlRHJhZ2dlZChNb3VzZUV2ZW50IGUpIHsKKworICAgICAgICBpbnQgeCA9IGUuZ2V0WCgpLCB5ID0gZS5nZXRZKCk7CisgICAgICAgIGlmIChmQ3VycmVudFggIT0geCB8fCBmQ3VycmVudFkgIT0geSkgeworICAgICAgICAgICAgZkN1cnJlbnRYID0geDsKKyAgICAgICAgICAgIGZDdXJyZW50WSA9IHk7CisgICAgICAgICAgICBwcm9jZXNzTW91c2VMb2NhdGlvbigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgYm9vbGVhbiBtb3VzZUVudGVyKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIGZNb3VzZU91dHNpZGUgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIHN5bmNocm9uaXplZCBib29sZWFuIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIGlmIChmQXV0b3Njcm9sbFRocmVhZCA9PSBudWxsKSB7CisgICAgICAgICAgICBmQXV0b3Njcm9sbFRocmVhZCA9IG5ldyBUaHJlYWQodGhpcyk7CisgICAgICAgICAgICBmQXV0b3Njcm9sbFRocmVhZC5zdGFydCgpOworICAgICAgICB9CisgICAgICAgIGZNb3VzZU91dHNpZGUgPSB0cnVlOworICAgICAgICBub3RpZnkoKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIGJvb2xlYW4gbW91c2VSZWxlYXNlZChNb3VzZUV2ZW50IGUpIHsKKworICAgICAgICBmTW91c2VPdXRzaWRlID0gZmFsc2U7CisgICAgICAgIGZUaHJlYWRSdW4gPSBmYWxzZTsKKyAgICAgICAgaWYgKGZBdXRvc2Nyb2xsVGhyZWFkICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZBdXRvc2Nyb2xsVGhyZWFkLmludGVycnVwdCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZW1vdmVGcm9tT3duZXIoKTsKKyAgICAgICAgYm9vbGVhbiBpc1plcm9MZW5ndGggPSBUZXh0U2VsZWN0aW9uLnJhbmdlSXNaZXJvTGVuZ3RoKGZBbmNob3JTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZBbmNob3JFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQ3VycmVudCk7CisgICAgICAgIGZTZWxlY3Rpb24ubW91c2VSZWxlYXNlZChpc1plcm9MZW5ndGggIT0gZldhc1plcm9MZW5ndGgpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwcm9jZXNzTW91c2VMb2NhdGlvbigpIHsKKworICAgICAgICBmVGV4dENvbXBvbmVudC5zY3JvbGxUb1Nob3coZkN1cnJlbnRYLCBmQ3VycmVudFkpOworICAgICAgICBmVGV4dENvbXBvbmVudC5wb2ludFRvVGV4dE9mZnNldChmQ3VycmVudCwgZkN1cnJlbnRYLCBmQ3VycmVudFksIG51bGwsIHRydWUpOworICAgICAgICBzZXRTZWxlY3Rpb24oKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0U2VsZWN0aW9uKCkgeworCisgICAgICAgIGlmIChmQ3VycmVudC5ncmVhdGVyVGhhbihmQW5jaG9yRW5kKSkgeworICAgICAgICAgICAgZlNlbGVjdGlvbi5hZHZhbmNlVG9OZXh0Qm91bmRhcnkoZkN1cnJlbnQpOworICAgICAgICAgICAgZlNlbGVjdGlvbi5zZXRTZWxSYW5nZUFuZERyYXcoZkFuY2hvclN0YXJ0LCBmQ3VycmVudCwgZkFuY2hvclN0YXJ0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChmQ3VycmVudC5sZXNzVGhhbihmQW5jaG9yU3RhcnQpKSB7CisgICAgICAgICAgICBmU2VsZWN0aW9uLmFkdmFuY2VUb1ByZXZpb3VzQm91bmRhcnkoZkN1cnJlbnQpOworICAgICAgICAgICAgZlNlbGVjdGlvbi5zZXRTZWxSYW5nZUFuZERyYXcoZkN1cnJlbnQsIGZBbmNob3JFbmQsIGZBbmNob3JTdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmQ3VycmVudC5hc3NpZ24oZkFuY2hvckVuZCk7CisgICAgICAgICAgICBmU2VsZWN0aW9uLnNldFNlbFJhbmdlQW5kRHJhdyhmQW5jaG9yU3RhcnQsIGZBbmNob3JFbmQsIGZBbmNob3JTdGFydCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisKKyAgICAgICAgUnVubmFibGUgZG9Nb3VzZUxvYyA9IG5ldyBSdW5uYWJsZSgpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJ1bigpIHsKKyAgICAgICAgICAgICAgICBwcm9jZXNzTW91c2VMb2NhdGlvbigpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgd2hpbGUgKGZUaHJlYWRSdW4pIHsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBUaHJlYWQuc2xlZXAoa1Njcm9sbFNsZWVwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47IC8vIGp1c3QgcXVpdCBzY3JvbGxpbmcKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3luY2hyb25pemVkKHRoaXMpIHsKKworICAgICAgICAgICAgICAgIHdoaWxlICghZk1vdXNlT3V0c2lkZSkgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2FpdCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8ganVzdCBxdWl0IHNjcm9sbGluZworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZlJ1blN0cmF0ZWd5LmRvSXQoZG9Nb3VzZUxvYyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU2ltcGxlQ29tbWFuZExvZy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1NpbXBsZUNvbW1hbmRMb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yN2Q1MmM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1NpbXBsZUNvbW1hbmRMb2cuamF2YQpAQCAtMCwwICsxLDE3NSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ZpbmFsIGNsYXNzIFNpbXBsZUNvbW1hbmRMb2cgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBDb21tYW5kIGZMYXN0Q29tbWFuZCA9IG51bGw7CisgICAgcHJpdmF0ZSBDb21tYW5kIGZDdXJyZW50Q29tbWFuZCA9IG51bGw7CisgICAgcHJpdmF0ZSBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgZkxpc3RlbmVyOworCisgICAgcHJpdmF0ZSBib29sZWFuIGZCYXNlSXNNb2RpZmllZDsKKworICAgIHByaXZhdGUgaW50IGZMb2dTaXplID0gMTQ7CisKKyAgICBwdWJsaWMgU2ltcGxlQ29tbWFuZExvZyhQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgbGlzdGVuZXIpIHsKKyAgICAgICAgZkxpc3RlbmVyID0gbGlzdGVuZXI7CisgICAgICAgIGZCYXNlSXNNb2RpZmllZCA9IGZhbHNlOworICAgIH0KKworICAgIC8qKiBhZGRzIHRoZSBzcGVjZmllZCBjb21tYW5kIHRvIHRoZSB0b3Agb2YgdGhlIGNvbW1hbmQgc3RhY2sKKyAgICAqIChhbnkgdW5kb25lIGNvbW1hbmRzIG9uIHRoZSBzdGFjayBhcmUgcmVtb3ZlZCkKKyAgICAqIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGUgY29tbWFuZCBoYXMgYWxyZWFkeSBiZWVuIGV4ZWN1dGVkIChpLmUuLCBpdHMgZXhlY3V0ZSgpIG1ldGhvZAorICAgICogaGFzIGJlZW4gY2FsbGVkLCBvciBhbiBlcXVpdmFsZW50IGFjdGlvbiBoYXMgYmVlbiB0YWtlbikgKi8KKyAgICB2b2lkIGFkZChDb21tYW5kIG5ld0NvbW1hbmQpIHsKKyAgICAgICAgLy8gaWYgdGhlcmUgYXJlIGNvbW1hbmRzIG9uIHRoZSBzdGFjayB0aGF0IGhhdmUgYmVlbiB1bmRvbmUsIHRoZXkgYXJlCisgICAgICAgIC8vIGRyb3BwZWQgb24gdGhlIGZsb29yIGhlcmUKKyAgICAgICAgbmV3Q29tbWFuZC5zZXRQcmV2aW91c0NvbW1hbmQoZkN1cnJlbnRDb21tYW5kKTsKKyAgICAgICAgCisgICAgICAgIGZpbmFsIENvbW1hbmQgb2xkTGFzdENvbW1hbmQgPSBmTGFzdENvbW1hbmQ7CisgICAgICAgIGZMYXN0Q29tbWFuZCA9IG51bGw7CisgICAgICAgIAorICAgICAgICBmQ3VycmVudENvbW1hbmQgPSBuZXdDb21tYW5kOworICAgICAgICBsaW1pdENvbW1hbmRzKGZMb2dTaXplKTsKKyAgICAgICAgCisgICAgICAgIGlmIChvbGRMYXN0Q29tbWFuZCAhPSBudWxsKSB7CisgICAgICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogSWYgdGhlIGNvbW1hbmQgbGlzdCBpcyBsb25nZXIgdGhhbiBsb2dTaXplLCB0cnVuY2F0ZSBpdC4KKyAgICAgKiBUaGlzIG1ldGhvZCB0cmF2ZXJzZXMgdGhlIGxpc3QgZWFjaCB0aW1lLCBhbmQgaXMgbm90IGEgbW9kZWwKKyAgICAgKiBvZiBlZmZpY2llbmN5LiAgSXQncyBhIHRlbXBvcmFyeSB3YXkgdG8gcGx1ZyB0aGlzIG1lbW9yeSBsZWFrCisgICAgICogdW50aWwgSSBjYW4gaW1wbGVtZW50IGEgYm91bmRlZCBjb21tYW5kIGxvZy4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgbGltaXRDb21tYW5kcyhpbnQgbG9nU2l6ZSkgeworCisgICAgICAgIGlmIChsb2dTaXplID09IDApIHsKKyAgICAgICAgICAgIGZDdXJyZW50Q29tbWFuZCA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBDb21tYW5kIGN1cnJlbnRDb21tYW5kID0gZkN1cnJlbnRDb21tYW5kOworICAgICAgICAgICAgaW50IHJlbWFpbmluZyA9IGxvZ1NpemUtMTsKKyAgICAgICAgICAgIHdoaWxlIChjdXJyZW50Q29tbWFuZCAhPSBudWxsICYmIHJlbWFpbmluZyA+IDApIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50Q29tbWFuZCA9IGN1cnJlbnRDb21tYW5kLnByZXZpb3VzQ29tbWFuZCgpOworICAgICAgICAgICAgICAgIHJlbWFpbmluZyAtPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGN1cnJlbnRDb21tYW5kICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50Q29tbWFuZC5zZXRQcmV2aW91c0NvbW1hbmQobnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiogYWRkcyB0aGUgc3BlY2ZpZWQgY29tbWFuZCB0byB0aGUgdG9wIG9mIHRoZSBjb21tYW5kIHN0YWNrIGFuZCBleGVjdXRlcyBpdCAqLworICAgIHZvaWQgYWRkQW5kRG8oQ29tbWFuZCBuZXdDb21tYW5kKSB7CisgICAgICAgIGFkZChuZXdDb21tYW5kKTsKKyAgICAgICAgbmV3Q29tbWFuZC5leGVjdXRlKCk7CisKKyAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICB9CisKKyAgICAvKiogdW5kb2VzIHRoZSBjb21tYW5kIG9uIHRoZSB0b3Agb2YgdGhlIGNvbW1hbmQgc3RhY2ssIGlmIHRoZXJlIGlzIG9uZSAqLworICAgIHZvaWQgdW5kbygpIHsKKyAgICAgICAgaWYgKGZDdXJyZW50Q29tbWFuZCAhPSBudWxsKSB7CisgICAgICAgICAgICBDb21tYW5kIGN1cnJlbnQgPSBmQ3VycmVudENvbW1hbmQ7CisgICAgICAgICAgICBjdXJyZW50LnVuZG8oKTsKKworICAgICAgICAgICAgZkN1cnJlbnRDb21tYW5kID0gY3VycmVudC5wcmV2aW91c0NvbW1hbmQoKTsKKworICAgICAgICAgICAgY3VycmVudC5zZXRQcmV2aW91c0NvbW1hbmQoZkxhc3RDb21tYW5kKTsKKyAgICAgICAgICAgIGZMYXN0Q29tbWFuZCA9IGN1cnJlbnQ7CisKKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiogcmVkb2VzIHRoZSBsYXN0IHVuZG9uZSBjb21tYW5kIG9uIHRoZSBjb21tYW5kIHN0YWNrLCBpZiB0aGVyZSBhcmUgYW55ICovCisgICAgdm9pZCByZWRvKCkgeworICAgICAgICBpZiAoZkxhc3RDb21tYW5kICE9IG51bGwpIHsKKyAgICAgICAgICAgIENvbW1hbmQgbGFzdCA9IGZMYXN0Q29tbWFuZDsKKyAgICAgICAgICAgIGxhc3QucmVkbygpOworCisgICAgICAgICAgICBmTGFzdENvbW1hbmQgPSBsYXN0LnByZXZpb3VzQ29tbWFuZCgpOworCisgICAgICAgICAgICBsYXN0LnNldFByZXZpb3VzQ29tbWFuZChmQ3VycmVudENvbW1hbmQpOworICAgICAgICAgICAgZkN1cnJlbnRDb21tYW5kID0gbGFzdDsKKworICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuVU5ET19TVEFURV9DSEFOR0VEKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGNhblVuZG8oKSB7CisgICAgICAgIHJldHVybiBmQ3VycmVudENvbW1hbmQgIT0gbnVsbDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5SZWRvKCkgeworICAgICAgICByZXR1cm4gZkxhc3RDb21tYW5kICE9IG51bGw7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2RpZmllZCgpIHsKKworICAgICAgICBpZiAoZkN1cnJlbnRDb21tYW5kID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmQmFzZUlzTW9kaWZpZWQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZkN1cnJlbnRDb21tYW5kLmlzTW9kaWZpZWQoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldE1vZGlmaWVkKGJvb2xlYW4gbW9kaWZpZWQpIHsKKworICAgICAgICBpZiAoZkN1cnJlbnRDb21tYW5kID09IG51bGwpIHsKKyAgICAgICAgICAgIGZCYXNlSXNNb2RpZmllZCA9IG1vZGlmaWVkOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZkN1cnJlbnRDb21tYW5kLnNldE1vZGlmaWVkKG1vZGlmaWVkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNsZWFyTG9nKCkgeworCisgICAgICAgIGlmIChmQ3VycmVudENvbW1hbmQgIT0gbnVsbCkgeworICAgICAgICAgICAgZkJhc2VJc01vZGlmaWVkID0gZkN1cnJlbnRDb21tYW5kLmlzTW9kaWZpZWQoKTsKKyAgICAgICAgfQorICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBib29sZWFuIGNoYW5nZWQgPSBmQ3VycmVudENvbW1hbmQgIT0gbnVsbCB8fCBmTGFzdENvbW1hbmQgIT0gbnVsbDsKKyAgICAgICAgZkN1cnJlbnRDb21tYW5kID0gbnVsbDsKKyAgICAgICAgZkxhc3RDb21tYW5kID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0TG9nU2l6ZShpbnQgc2l6ZSkgeworCisgICAgICAgIGlmIChzaXplIDwgMCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigibG9nIHNpemUgY2Fubm90IGJlIG5lZ2F0aXZlIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChzaXplIDwgZkxvZ1NpemUpIHsKKyAgICAgICAgICAgIGxpbWl0Q29tbWFuZHMoc2l6ZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZMb2dTaXplID0gc2l6ZTsKKyAgICAgICAgCisgICAgICAgIGlmIChmTGFzdENvbW1hbmQgIT0gbnVsbCB8fCBzaXplID09IDApIHsKKyAgICAgICAgICAgIGZMYXN0Q29tbWFuZCA9IG51bGw7CisgICAgICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5VTkRPX1NUQVRFX0NIQU5HRUQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRMb2dTaXplKCkgeworCisgICAgICAgIHJldHVybiBmTG9nU2l6ZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU3R5bGVDaGFuZ2VDb21tYW5kLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU3R5bGVDaGFuZ2VDb21tYW5kLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2UyMTNjYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TdHlsZUNoYW5nZUNvbW1hbmQuamF2YQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuVGV4dE9mZnNldDsKKworY2xhc3MgU3R5bGVDaGFuZ2VDb21tYW5kIGV4dGVuZHMgVGV4dENvbW1hbmQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkNoYXJhY3RlcjsKKyAgICBwcml2YXRlIFN0eWxlTW9kaWZpZXIgZk1vZGlmaWVyOworCisgICAgcHVibGljIFN0eWxlQ2hhbmdlQ29tbWFuZChUZXh0RWRpdEJlaGF2aW9yIGJlaGF2aW9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVRleHQgb3JpZ2luYWxUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydEJlZm9yZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsRW5kQmVmb3JlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyKSB7CisKKyAgICAgICAgc3VwZXIoYmVoYXZpb3IsIG9yaWdpbmFsVGV4dCwgc2VsU3RhcnRCZWZvcmUuZk9mZnNldCwgc2VsU3RhcnRCZWZvcmUsIHNlbEVuZEJlZm9yZSk7CisgICAgICAgIGZNb2RpZmllciA9IG1vZGlmaWVyOworICAgICAgICBmQ2hhcmFjdGVyID0gY2hhcmFjdGVyOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgYWZmZWN0ZWRSYW5nZUVuZCgpIHsKKyAgICAgICAgcmV0dXJuIGZTZWxFbmRCZWZvcmUuZk9mZnNldDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBleGVjdXRlKCkgeworICAgICAgICBmQmVoYXZpb3IuZG9Nb2RpZnlTdHlsZXMoZkFmZmVjdGVkUmFuZ2VTdGFydCwgZlNlbEVuZEJlZm9yZS5mT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZk1vZGlmaWVyLCBmQ2hhcmFjdGVyLCBmU2VsU3RhcnRCZWZvcmUsIGZTZWxFbmRCZWZvcmUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9TdHlsZWRUZXh0Q2xpcGJvYXJkLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU3R5bGVkVGV4dENsaXBib2FyZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY3MzFmYmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvU3R5bGVkVGV4dENsaXBib2FyZC5qYXZhCkBAIC0wLDAgKzEsMjE3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmQ7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZE93bmVyOworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5UcmFuc2ZlcmFibGU7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkRhdGFGbGF2b3I7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLlVuc3VwcG9ydGVkRmxhdm9yRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKKworaW1wb3J0IGphdmEuYXd0LlRvb2xraXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKKworLyoqCisqIFdyYXBwZXIgZm9yIGphdmEuYXd0LmRhdGF0cmFuc2Zlci5DbGlwYm9hcmQKKyogUGFja2FnZXMgYW4gTUNvbnN0VGV4dCBpbiBhIHRyYW5zZmVyYWJsZSwgYW5kIHB1dHMgaXQgb24gdGhlIGNsaXBib2FyZC4KKyovCisKK2NsYXNzIFN0eWxlZFRleHRDbGlwYm9hcmQgaW1wbGVtZW50cyBDbGlwYm9hcmRPd25lciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8vIFRoaXMgY2xhc3MgaGFzIGEgd29ya2Fyb3VuZCBmb3IgYSBidWcgaW4gdGhlIFdpbmRvd3Mgc3lzdGVtIGNsaXBib2FyZC4KKyAgICAvLyBUaGUgc3lzdGVtIGNsaXBib2FyZCB3aWxsIG9ubHkgcmV0dXJuIFN0cmluZyBjb250ZW50LCBldmVuCisgICAgLy8gdGhvdWdoIGl0IGhhcyBhIHJlZmVyZW5jZSB0byB0aGUgY29udGVudHMuICBTbyBpZiBvdXIKKyAgICAvLyBjbGlwYm9hcmQgaXMgdGhlIHN5c3RlbSBjbGlwYm9hcmQsIHdlJ2xsIGtlZXAgYSByZWZlcmVuY2UKKyAgICAvLyB0byB0aGUgY29udGVudCBhbmQgdXNlIHRoYXQgaW5zdGVhZCBvZiB3aGF0IHRoZSBDbGlwYm9hcmQgcmV0dXJucy4KKworICAgIHByaXZhdGUgc3RhdGljIENsaXBib2FyZCBTWVNURU0gPSBudWxsOworICAgIHN0YXRpYyB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTWVNURU0gPSBUb29sa2l0LmdldERlZmF1bHRUb29sa2l0KCkuZ2V0U3lzdGVtQ2xpcGJvYXJkKCk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goVGhyb3dhYmxlIHRoKSB7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBTdHlsZWRUZXh0Q2xpcGJvYXJkIGZnU3lzdGVtQ2xpcGJvYXJkID0gbnVsbDsKKworICAgIHB1YmxpYyBzdGF0aWMgU3R5bGVkVGV4dENsaXBib2FyZCBnZXRDbGlwYm9hcmRGb3IoQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworCisgICAgICAgIGlmIChjbGlwYm9hcmQgPT0gU1lTVEVNICYmIFNZU1RFTSAhPSBudWxsKSB7CisgICAgICAgICAgICBzeW5jaHJvbml6ZWQoU1lTVEVNKSB7CisgICAgICAgICAgICAgICAgaWYgKGZnU3lzdGVtQ2xpcGJvYXJkID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgZmdTeXN0ZW1DbGlwYm9hcmQgPSBuZXcgU3R5bGVkVGV4dENsaXBib2FyZChTWVNURU0sIHRydWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmZ1N5c3RlbUNsaXBib2FyZDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3R5bGVkVGV4dENsaXBib2FyZChjbGlwYm9hcmQsIGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgQ2xpcGJvYXJkIGZDbGlwYm9hcmQ7CisgICAgcHJpdmF0ZSBib29sZWFuIGZVc2VMb2NhbENvbnRlbnRzOworICAgIHByaXZhdGUgVHJhbnNmZXJhYmxlIGZDb250ZW50cyA9IG51bGw7CisKKyAgICBwcml2YXRlIFN0eWxlZFRleHRDbGlwYm9hcmQoQ2xpcGJvYXJkIGNsaXBib2FyZCwgYm9vbGVhbiB1c2VMb2NhbENvbnRlbnRzKSB7CisKKyAgICAgICAgaWYgKGNsaXBib2FyZCA9PSBudWxsKSB7CisgICAgICAgICAgICBmQ2xpcGJvYXJkID0gbmV3IENsaXBib2FyZCgiVGV4dFBhbmVsIGNsaXBib2FyZCIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZkNsaXBib2FyZCA9IGNsaXBib2FyZDsKKyAgICAgICAgfQorCisgICAgICAgIGZVc2VMb2NhbENvbnRlbnRzID0gdXNlTG9jYWxDb250ZW50czsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBsb3N0T3duZXJzaGlwKENsaXBib2FyZCBjbGlwYm9hcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2ZlcmFibGUgY29udGVudHMpIHsKKyAgICAgICAgaWYgKGNvbnRlbnRzID09IGZDb250ZW50cykgeworICAgICAgICAgICAgdGhpcy5mQ29udGVudHMgPSBudWxsOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Q29udGVudHMoTUNvbnN0VGV4dCBuZXdDb250ZW50cykgeworCisgICAgICAgIFRyYW5zZmVyYWJsZVRleHQgY29udGVudHMgPSBuZXcgVHJhbnNmZXJhYmxlVGV4dChuZXdDb250ZW50cyk7CisgICAgICAgIGlmIChmQ2xpcGJvYXJkID09IFNZU1RFTSkgeworICAgICAgICAgICAgZkNvbnRlbnRzID0gY29udGVudHM7CisgICAgICAgIH0KKyAgICAgICAgZkNsaXBib2FyZC5zZXRDb250ZW50cyhjb250ZW50cywgdGhpcyk7CisgICAgfQorCisgICAgcHJpdmF0ZSBUcmFuc2ZlcmFibGUgZ2V0Q2xpcGJvYXJkQ29udGVudHMoKSB7CisKKyAgICAgICAgaWYgKGZVc2VMb2NhbENvbnRlbnRzICYmIGZDb250ZW50cyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkNvbnRlbnRzOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZDbGlwYm9hcmQuZ2V0Q29udGVudHModGhpcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogSGFzIGNvbnRlbnRzIC0gZmFzdGVyIHRoYW4gZ2V0Q29udGVudHMgZm9yIGZpbmRpbmcgb3V0IHdoZXRoZXIgdGhlCisgICAgICogY2xpcGJvYXJkIGhhcyB0ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGhhc0NvbnRlbnRzKCkgeworCisgICAgICAgIFRyYW5zZmVyYWJsZSBjb250ZW50cyA9IGdldENsaXBib2FyZENvbnRlbnRzKCk7CisKKyAgICAgICAgaWYgKGNvbnRlbnRzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjb250ZW50cy5pc0RhdGFGbGF2b3JTdXBwb3J0ZWQoTUNvbnN0VGV4dC5zdHlsZWRUZXh0Rmxhdm9yKSB8fAorICAgICAgICAgICAgICAgY29udGVudHMuaXNEYXRhRmxhdm9yU3VwcG9ydGVkKERhdGFGbGF2b3Iuc3RyaW5nRmxhdm9yKSB8fAorICAgICAgICAgICAgICAgY29udGVudHMuaXNEYXRhRmxhdm9yU3VwcG9ydGVkKERhdGFGbGF2b3IucGxhaW5UZXh0Rmxhdm9yKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBnZXRTdHJpbmcoSW5wdXRTdHJlYW0gaW5TdHJlYW0pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgU3RyaW5nIHZhbHVlID0gbmV3IFN0cmluZygpOworICAgICAgICBpbnQgYnl0ZXNSZWFkOworCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGJ5dGUgaW5CeXRlc1tdID0gbmV3IGJ5dGVbaW5TdHJlYW0uYXZhaWxhYmxlKCldOworICAgICAgICAgICAgYnl0ZXNSZWFkID0gaW5TdHJlYW0ucmVhZChpbkJ5dGVzKTsKKworICAgICAgICAgICAgaWYgKGJ5dGVzUmVhZCAhPSAtMSkKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlICsgbmV3IFN0cmluZyhpbkJ5dGVzKTsKKworICAgICAgICB9IHdoaWxlIChieXRlc1JlYWQgIT0gLTEpOworCisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJZiB0aGUgQ2xpcGJvYXJkIGhhcyB0ZXh0IGNvbnRlbnQsIHJldHVybiBpdCBhcyBhbgorICAgICAqIE1Db25zdFRleHQuICBPdGhlcndpc2UgcmV0dXJuIG51bGwuCisgICAgICogQHBhcmFtIGRlZmF1bHRTdHlsZSB0aGUgc3R5bGUgdG8gYXBwbHkgdG8gdW5zdHlsZWQKKyAgICAgKiAgICAgIHRleHQgKHN1Y2ggYXMgYSBTdHJpbmcpLiAgSWYgdGhlIGNsaXBib2FyZAorICAgICAqICAgICAgaGFzIHN0eWxlZCB0ZXh0IHRoaXMgcGFyYW1ldGVyIGlzIG5vdCB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyBNQ29uc3RUZXh0IGdldENvbnRlbnRzKEF0dHJpYnV0ZU1hcCBkZWZhdWx0U3R5bGUpIHsKKworICAgICAgICBUcmFuc2ZlcmFibGUgY29udGVudHMgPSBnZXRDbGlwYm9hcmRDb250ZW50cygpOworCisgICAgICAgIGlmIChjb250ZW50cyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIERhdGFGbGF2b3IgZmxhdm9yc1tdID0gY29udGVudHMuZ2V0VHJhbnNmZXJEYXRhRmxhdm9ycygpOworCisgICAgICAgIC8vIHNlYXJjaCBmbGF2b3JzIGZvciBvdXIgZmxhdm9yLCBTdHJpbmcgZmxhdm9yIGFuZCByYXcgdGV4dCBmbGF2b3IKKworICAgICAgICBFeGNlcHRpb24gZXggPSBudWxsOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgIGludCBpOworCisgICAgICAgICAgICBmb3IgKGk9MDsgaSA8IGZsYXZvcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoZmxhdm9yc1tpXS5lcXVhbHMoTUNvbnN0VGV4dC5zdHlsZWRUZXh0Rmxhdm9yKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpIDwgZmxhdm9ycy5sZW5ndGgpIHsKKworICAgICAgICAgICAgICAgIE9iamVjdCBkYXRhID0gY29udGVudHMuZ2V0VHJhbnNmZXJEYXRhKE1Db25zdFRleHQuc3R5bGVkVGV4dEZsYXZvcik7CisgICAgICAgICAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEYXRhIGlzIG51bGwuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIChNQ29uc3RUZXh0KSBkYXRhOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGk9MDsgaSA8IGZsYXZvcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoZmxhdm9yc1tpXS5lcXVhbHMoRGF0YUZsYXZvci5zdHJpbmdGbGF2b3IpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGkgPCBmbGF2b3JzLmxlbmd0aCkgeworCisgICAgICAgICAgICAgICAgT2JqZWN0IGRhdGEgPSBjb250ZW50cy5nZXRUcmFuc2ZlckRhdGEoRGF0YUZsYXZvci5zdHJpbmdGbGF2b3IpOworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3R5bGVkVGV4dCgoU3RyaW5nKSBkYXRhLCBkZWZhdWx0U3R5bGUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGk9MDsgaSA8IGZsYXZvcnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoZmxhdm9yc1tpXS5lcXVhbHMoRGF0YUZsYXZvci5wbGFpblRleHRGbGF2b3IpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGkgPCBmbGF2b3JzLmxlbmd0aCkgeworCisgICAgICAgICAgICAgICAgT2JqZWN0IGRhdGEgPSBjb250ZW50cy5nZXRUcmFuc2ZlckRhdGEoRGF0YUZsYXZvci5wbGFpblRleHRGbGF2b3IpOworCisgICAgICAgICAgICAgICAgU3RyaW5nIHRleHRTdHJpbmcgPSBnZXRTdHJpbmcoKElucHV0U3RyZWFtKSBkYXRhKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN0eWxlZFRleHQodGV4dFN0cmluZywgZGVmYXVsdFN0eWxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaChVbnN1cHBvcnRlZEZsYXZvckV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBleCA9IGU7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXggPSBlOworICAgICAgICB9CisKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFeGNlcHRpb24gd2hlbiByZXRyaWV2aW5nIGRhdGEuICBFeGNlcHRpb246IiArIGV4KTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRDaGFuZ2VDb21tYW5kLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENoYW5nZUNvbW1hbmQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMzM3MDU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRDaGFuZ2VDb21tYW5kLmphdmEKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CisKK2NsYXNzIFRleHRDaGFuZ2VDb21tYW5kIGV4dGVuZHMgVGV4dENvbW1hbmQgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBNQ29uc3RUZXh0IGZOZXdUZXh0OworICAgIHByaXZhdGUgVGV4dE9mZnNldCBmU2VsU3RhcnRBZnRlcjsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgZlNlbEVuZEFmdGVyOworCisgICAgcHVibGljIFRleHRDaGFuZ2VDb21tYW5kKFRleHRFZGl0QmVoYXZpb3IgYmVoYXZpb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UZXh0IG9yaWdpbmFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCBuZXdUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWZmZWN0ZWRSYW5nZVN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0QmVmb3JlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbEVuZEJlZm9yZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydEFmdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbEVuZEFmdGVyKSB7CisgICAgICAgIHN1cGVyKGJlaGF2aW9yLCBvcmlnaW5hbFRleHQsIGFmZmVjdGVkUmFuZ2VTdGFydCwgc2VsU3RhcnRCZWZvcmUsIHNlbEVuZEJlZm9yZSk7CisgICAgICAgIGZOZXdUZXh0ID0gbmV3VGV4dDsKKyAgICAgICAgZlNlbFN0YXJ0QWZ0ZXIgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBmU2VsU3RhcnRBZnRlci5hc3NpZ24oc2VsU3RhcnRBZnRlcik7CisgICAgICAgIGZTZWxFbmRBZnRlciA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIGZTZWxFbmRBZnRlci5hc3NpZ24oc2VsRW5kQWZ0ZXIpOworICAgIH0KKworICAgIHB1YmxpYyBpbnQgYWZmZWN0ZWRSYW5nZUVuZCgpIHsKKyAgICAgICAgaWYgKGZOZXdUZXh0ID09IG51bGwpCisgICAgICAgICAgICByZXR1cm4gZkFmZmVjdGVkUmFuZ2VTdGFydDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZBZmZlY3RlZFJhbmdlU3RhcnQgKyBmTmV3VGV4dC5sZW5ndGgoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBleGVjdXRlKCkgeworICAgICAgICBmQmVoYXZpb3IuZG9SZXBsYWNlVGV4dChmQWZmZWN0ZWRSYW5nZVN0YXJ0LCBmQWZmZWN0ZWRSYW5nZVN0YXJ0ICsgZk9yaWdpbmFsVGV4dC5sZW5ndGgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmTmV3VGV4dCwgZlNlbFN0YXJ0QWZ0ZXIsIGZTZWxFbmRBZnRlcik7CisgICAgfQorCisgICAgcHVibGljIGludCBhZmZlY3RlZFJhbmdlU3RhcnQoKSB7CisgICAgICAgIHJldHVybiBmQWZmZWN0ZWRSYW5nZVN0YXJ0OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldE5ld1RleHQoTUNvbnN0VGV4dCBuZXdUZXh0KSB7CisgICAgICAgIGZOZXdUZXh0ID0gbmV3VGV4dDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxSYW5nZUFmdGVyKFRleHRPZmZzZXQgc3RhcnQsIFRleHRPZmZzZXQgZW5kKSB7CisgICAgICAgIGlmIChmU2VsU3RhcnRBZnRlciA9PSBudWxsKQorICAgICAgICAgICAgZlNlbFN0YXJ0QWZ0ZXIgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBpZiAoZlNlbEVuZEFmdGVyID09IG51bGwpCisgICAgICAgICAgICBmU2VsRW5kQWZ0ZXIgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBmU2VsU3RhcnRBZnRlci5hc3NpZ24oc3RhcnQpOworICAgICAgICBmU2VsRW5kQWZ0ZXIuYXNzaWduKGVuZCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcHJlcGVuZFRvT2xkVGV4dChNQ29uc3RUZXh0IG5ld1RleHQpIHsKKyAgICAgICAgZk9yaWdpbmFsVGV4dC5pbnNlcnQoMCwgbmV3VGV4dCk7CisgICAgICAgIGZBZmZlY3RlZFJhbmdlU3RhcnQgLT0gbmV3VGV4dC5sZW5ndGgoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhcHBlbmRUb09sZFRleHQoTUNvbnN0VGV4dCBuZXdUZXh0KSB7CisgICAgICAgIGZPcmlnaW5hbFRleHQuYXBwZW5kKG5ld1RleHQpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0Q29tbWFuZC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRDb21tYW5kLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTczMGQ3YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0Q29tbWFuZC5qYXZhCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworCithYnN0cmFjdCBjbGFzcyBUZXh0Q29tbWFuZCBleHRlbmRzIENvbW1hbmQgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJvdGVjdGVkIFRleHRFZGl0QmVoYXZpb3IgZkJlaGF2aW9yOworICAgIHByb3RlY3RlZCBNVGV4dCBmT3JpZ2luYWxUZXh0OworICAgIHByb3RlY3RlZCBpbnQgZkFmZmVjdGVkUmFuZ2VTdGFydDsKKyAgICBwcm90ZWN0ZWQgVGV4dE9mZnNldCBmU2VsU3RhcnRCZWZvcmU7CisgICAgcHJvdGVjdGVkIFRleHRPZmZzZXQgZlNlbEVuZEJlZm9yZTsKKworICAgIHB1YmxpYyBUZXh0Q29tbWFuZChUZXh0RWRpdEJlaGF2aW9yIGJlaGF2aW9yLAorICAgICAgICAgICAgICAgICAgICAgICBNVGV4dCBvcmlnaW5hbFRleHQsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBhZmZlY3RlZFJhbmdlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnRCZWZvcmUsCisgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsRW5kQmVmb3JlKSB7CisKKyAgICAgICAgZkJlaGF2aW9yID0gYmVoYXZpb3I7CisgICAgICAgIGZPcmlnaW5hbFRleHQgPSBvcmlnaW5hbFRleHQ7CisgICAgICAgIGZBZmZlY3RlZFJhbmdlU3RhcnQgPSBhZmZlY3RlZFJhbmdlU3RhcnQ7CisgICAgICAgIGZTZWxTdGFydEJlZm9yZSA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIGZTZWxTdGFydEJlZm9yZS5hc3NpZ24oc2VsU3RhcnRCZWZvcmUpOworICAgICAgICBmU2VsRW5kQmVmb3JlID0gbmV3IFRleHRPZmZzZXQoKTsKKyAgICAgICAgZlNlbEVuZEJlZm9yZS5hc3NpZ24oc2VsRW5kQmVmb3JlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGFmZmVjdGVkUmFuZ2VFbmQoKTsKKworICAgIHB1YmxpYyB2b2lkIHVuZG8oKSB7CisgICAgICAgIGZCZWhhdmlvci5kb1JlcGxhY2VUZXh0KGZBZmZlY3RlZFJhbmdlU3RhcnQsIGFmZmVjdGVkUmFuZ2VFbmQoKSwgZk9yaWdpbmFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2VsU3RhcnRCZWZvcmUsIGZTZWxFbmRCZWZvcmUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0Q29tcG9uZW50LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENvbXBvbmVudC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY0MjY4YzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dENvbXBvbmVudC5qYXZhCkBAIC0wLDAgKzEsOTU0IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA1LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5HcmFwaGljczsKK2ltcG9ydCBqYXZhLmF3dC5JbWFnZTsKK2ltcG9ydCBqYXZhLmF3dC5Qb2ludDsKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Db21wb25lbnRBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LkZvY3VzTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5TGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZU1vdGlvbkxpc3RlbmVyOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuQ29tcG9uZW50RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuRm9jdXNFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUV2ZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0Lk1Gb3JtYXR0ZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2NsYXNzIFRleHRDb21wb25lbnQgZXh0ZW5kcyBGYWtlQ29tcG9uZW50CisgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudHMgQmVoYXZpb3JPd25lciwKKyAgICAgICAgICAgICAgICAgICAgRm9jdXNMaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgS2V5TGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgIE1vdXNlTGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgIE1vdXNlTW90aW9uTGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgIFNjcm9sbGVyLkNsaWVudCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0lORE9XX1dJRFRIID0gLTEwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IERFRkFVTFRfSU5TRVQgPSAxMDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIENvbG9yIFNUUk9OR19DQVJFVF9DT0xPUiA9IENvbG9yLmJsYWNrOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIENvbG9yIFdFQUtfQ0FSRVRfQ09MT1IgPSBDb2xvci5kYXJrR3JheTsKKworICAgIHByaXZhdGUgQmVoYXZpb3IgZkJlaGF2aW9yOworICAgIHByaXZhdGUgTVRleHQgZlRleHQ7CisgICAgcHJpdmF0ZSBTdHlsZWRUZXh0Q2xpcGJvYXJkIGZDbGlwYm9hcmQ7CisgICAgcHJpdmF0ZSBib29sZWFuIGZTY3JvbGxzOworICAgIHByaXZhdGUgU2Nyb2xsZXIgZlNjcm9sbGVyOworCisgICAgcHJpdmF0ZSBEb2N1bWVudFZpZXcgZkRvY3VtZW50VmlldyA9IG51bGw7CisKKyAgICAvLyBzaWdoIC0gY2FuJ3QgY3JlYXRlIERvY3VtZW50VmlldyB1bnRpbCBhZGROb3RpZnkoKSBpcyBjYWxsZWQuCisgICAgLy8gVGhlc2UgdmFsdWVzIGhvbGQgRG9jdW1lbnRWaWV3IGN0b3IgYXJncworICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZEZWZhdWx0VmFsdWVzOworICAgIHByaXZhdGUgYm9vbGVhbiBmVmlld1dyYXBzOworICAgIHByaXZhdGUgaW50IGZWaWV3V3JhcFdpZHRoOworICAgIHByaXZhdGUgaW50IGZWaWV3SW5zZXRBbW91bnQ7CisgICAgCisgICAgcHJpdmF0ZSBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgZkxpc3RlbmVyOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IFRleHRDb21wb25lbnQuCisgICAgICogQHBhcmFtIHRleHQgdGhlIHRleHQgbW9kZWwuICBUaGlzIG1vZGVsIHdpbGwgYmUgdXNlZCBmb3IKKyAgICAgKiB0aGUgbGlmZSBvZiB0aGUgY29tcG9uZW50LCBldmVuIGlmIHNldFRleHQgaXMgY2FsbGVkCisgICAgICogQHBhcmFtIHdyYXBzIGlmIHRydWUsIHRoZSB0ZXh0IGlzIHdyYXBwZWQgdG8gdGhlIHNwZWNpZmllZAorICAgICAqIHdyYXBwaW5nIHdpZHRoLiAgSWYgZmFsc2UsIHRoZSB0ZXh0IHdyYXBzIG9ubHkgYXQgcGFyYWdyYXBoIGJyZWFrcy4KKyAgICAgKiBAcGFyYW0gd3JhcFdpZHRoIGlnbm9yZWQgaWYgd3JhcHMgaXMgZmFsc2UuICBUZXh0IHdyYXBzIHRvIHRoaXMgd2lkdGgKKyAgICAgKiB1bmxlc3MgdGhlIHdpZHRoIGlzIFdJTkRPV19XSURUSCwgaW4gd2hpY2ggY2FzZSB0ZXh0IHdyYXBzIHRvIHdpZHRoCisgICAgICogb2YgdGhpcyBjb21wb25lbnQuIFNob3VsZCBub3QgYmUgbmVnYXRpdmUgKHVubGVzcyBpdCBpcyBXSU5ET1dfV0lEVEgpLgorICAgICAqIEBwYXJhbSBpbnNldEFtb3VudCB0aGUgc2l6ZSBvZiB0aGUgbWFyZ2lucyBhcm91bmQgdGhlIHRleHQKKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBjbGlwYm9hcmQgdG8gdXNlIGZvciBjdXQvY29weS9wYXN0ZSBvcGVyYXRpb25zLgorICAgICAqIElmIG51bGwsIHRoZSBjb21wb25lbnQgd2lsbCB1c2UgaXRzIG93biBjbGlwYm9hcmQuCisgICAgICovCisgICAgcHVibGljIFRleHRDb21wb25lbnQoTVRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHdyYXBzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3cmFwV2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluc2V0QW1vdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlZFRleHRDbGlwYm9hcmQgY2xpcGJvYXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc2Nyb2xscywKKyAgICAgICAgICAgICAgICAgICAgICAgICBTY3JvbGxlciBzY3JvbGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBQYW5lbEV2ZW50QnJvYWRjYXN0ZXIgbGlzdGVuZXIpIHsKKworICAgICAgICBmQmVoYXZpb3IgPSBudWxsOworCisgICAgICAgIGlmICh0ZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlRleHQgaXMgbnVsbC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZUZXh0ID0gdGV4dDsKKyAgICAgICAgZkRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0VmFsdWVzOworICAgICAgICAKKyAgICAgICAgaWYgKGNsaXBib2FyZCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJDbGlwYm9hcmQgaXMgbnVsbC4iKTsKKyAgICAgICAgfQorICAgICAgICBmQ2xpcGJvYXJkID0gY2xpcGJvYXJkOworCisgICAgICAgIGZTY3JvbGxzID0gc2Nyb2xsczsKKworICAgICAgICBmU2Nyb2xsZXIgPSBzY3JvbGxlcjsKKworICAgICAgICBmRG9jdW1lbnRWaWV3ID0gbnVsbDsKKworICAgICAgICBmVmlld1dyYXBXaWR0aCA9IHdyYXBXaWR0aDsKKyAgICAgICAgZlZpZXdXcmFwcyA9IHdyYXBzOworICAgICAgICBmVmlld0luc2V0QW1vdW50ID0gaW5zZXRBbW91bnQ7CisgICAgICAgIGZMaXN0ZW5lciA9IGxpc3RlbmVyOworICAgIH0KKyAgICAKKyAgICBBdHRyaWJ1dGVNYXAgZ2V0RGVmYXVsdFZhbHVlcygpIHsKKyAgICAKKyAgICAgICAgcmV0dXJuIGZEZWZhdWx0VmFsdWVzOworICAgIH0KKyAgICAKKyAgICB2b2lkIHNldEhvc3QoQ29tcG9uZW50IGNvbXBvbmVudCkgeworICAgICAgICAKKyAgICAgICAgc3VwZXIuc2V0SG9zdChjb21wb25lbnQpOworICAgICAgICAKKyAgICAgICAgY29tcG9uZW50LmFkZEZvY3VzTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGNvbXBvbmVudC5hZGRLZXlMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgY29tcG9uZW50LmFkZE1vdXNlTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGNvbXBvbmVudC5hZGRNb3VzZU1vdGlvbkxpc3RlbmVyKHRoaXMpOworICAgICAgICAKKyAgICAgICAgY29tcG9uZW50LmFkZENvbXBvbmVudExpc3RlbmVyKG5ldyBDb21wb25lbnRBZGFwdGVyKCkgeyAgICAgICAgCisgICAgICAgICAgICBwdWJsaWMgdm9pZCBjb21wb25lbnRSZXNpemVkKENvbXBvbmVudEV2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGZEb2N1bWVudFZpZXcuaG9zdFNpemVDaGFuZ2VkKCk7CisgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvU2hvdyhmRG9jdW1lbnRWaWV3LmdldERvY3VtZW50Qm91bmRzKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFUZXh0UGFuZWxJbXBsJ3MgdXNlIG9ubHkhCisgICAgICovCisgICAgQ29tcG9uZW50IGdldEhvc3QoKSB7CisgICAgCisgICAgICAgIHJldHVybiBmSG9zdDsKKyAgICB9CisgICAgCisgICAgLy8gQ3JlYXRlIGRvY3VtZW50IHZpZXcgaGVyZS4gIFRleHRDb21wb25lbnQgaXNuJ3QgZnVsbHkgY29uc3RydWN0ZWQKKyAgICAvLyB1bnRpbCB0aGlzIGlzIGNhbGxlZC4KKyAgICAvLyBUaGlzIG11c3QgYmUgY2FsbGVkIGJ5IGhvc3QgY29tcG9uZW50IQorICAgIHZvaWQgYWRkTm90aWZ5KCkgeworCisgICAgICAgIEdyYXBoaWNzIGcgPSBnZXRHcmFwaGljcygpOworICAgICAgICBpZiAoZyA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkdyYXBoaWNzIHNob3VsZCBiZSB2YWxpZCBoZXJlIGJ1dCBpc24ndC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIGZEb2N1bWVudFZpZXcgPSBuZXcgRG9jdW1lbnRWaWV3KHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmRGVmYXVsdFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlZpZXdXcmFwcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlZpZXdXcmFwV2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZWaWV3SW5zZXRBbW91bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZMaXN0ZW5lcik7CisgICAgICAgIGRvY3VtZW50U2l6ZUNoYW5nZWQoKTsKKyAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuRk9STUFUX1dJRFRIX0NIQU5HRUQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgUmVjdGFuZ2xlIGdldEJvdW5kcygpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmSG9zdCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkhvc3QuZ2V0Qm91bmRzKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBSZWN0YW5nbGUoMCwgMCwgMCwgMCk7CisgICAgfQorICAgIAorICAgIEdyYXBoaWNzIGdldEdyYXBoaWNzKCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIChmSG9zdD09bnVsbCk/IG51bGwgOiBmSG9zdC5nZXRHcmFwaGljcygpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHJlcXVlc3RGb2N1cygpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmSG9zdCAhPSBudWxsKSB7CisgICAgICAgICAgICBmSG9zdC5yZXF1ZXN0Rm9jdXMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vICoqKiBCZWhhdmlvciBtYW5hZ2VtZW50ICoqKgorICAgIHB1YmxpYyBCZWhhdmlvciBnZXRCZWhhdmlvcigpIHsKKyAgICAgICAgcmV0dXJuIGZCZWhhdmlvcjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRCZWhhdmlvcihCZWhhdmlvciBiKSB7CisgICAgICAgIGZCZWhhdmlvciA9IGI7CisgICAgfQorCisKKyAgICAvLyAqKiogRXZlbnRzIC0ganVzdCBmb3J3YXJkIHRvIGJlaGF2aW9yICoqKgorICAgIHB1YmxpYyB2b2lkIGZvY3VzR2FpbmVkKEZvY3VzRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgaWYgKGZCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgZkJlaGF2aW9yLmZvY3VzR2FpbmVkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBmb2N1c0xvc3QoRm9jdXNFdmVudCBldmVudCkgeworICAgICAgICBpZiAoZkJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICBmQmVoYXZpb3IuZm9jdXNMb3N0KGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBrZXlQcmVzc2VkKEtleUV2ZW50IGV2ZW50KSB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5rZXlQcmVzc2VkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBrZXlUeXBlZChLZXlFdmVudCBldmVudCkgeworCisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgZkJlaGF2aW9yLmtleVR5cGVkKGV2ZW50KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGtleVJlbGVhc2VkKEtleUV2ZW50IGV2ZW50KSB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5rZXlSZWxlYXNlZChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VDbGlja2VkKE1vdXNlRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgLy8gbm8gYmVoYXZpb3IgbWV0aG9kIGZvciB0aGlzCisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VEcmFnZ2VkKE1vdXNlRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgaWYgKGZCZWhhdmlvciAhPSBudWxsKQorICAgICAgICAgICAgZkJlaGF2aW9yLm1vdXNlRHJhZ2dlZChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VFbnRlcmVkKE1vdXNlRXZlbnQgZXZlbnQpICB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5tb3VzZUVudGVyZWQoZXZlbnQpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZXZlbnQpICB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5tb3VzZUV4aXRlZChldmVudCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgbW91c2VNb3ZlZChNb3VzZUV2ZW50IGV2ZW50KSB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5tb3VzZU1vdmVkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtb3VzZVByZXNzZWQoTW91c2VFdmVudCBldmVudCkgeworICAgICAgICBpZiAoZkJlaGF2aW9yICE9IG51bGwpCisgICAgICAgICAgICBmQmVoYXZpb3IubW91c2VQcmVzc2VkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBtb3VzZVJlbGVhc2VkKE1vdXNlRXZlbnQgZXZlbnQpICB7CisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkKKyAgICAgICAgICAgIGZCZWhhdmlvci5tb3VzZVJlbGVhc2VkKGV2ZW50KTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiB0ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuRXZlbnRUeXBlIGV2ZW50LCBPYmplY3Qgd2hhdCkgeworCisgICAgICAgIGJvb2xlYW4gaGFuZGxlZCA9IGZhbHNlOworCisgICAgICAgIGlmIChmQmVoYXZpb3IgIT0gbnVsbCkgeworICAgICAgICAgICAgaGFuZGxlZCA9IGZCZWhhdmlvci50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoZXZlbnQsIHdoYXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBoYW5kbGVkOworICAgIH0KKworCisgICAgLy8gKioqIFNjcm9sbCBtZXRob2RzIC0gY2FsbGVkIGJ5IEJlaGF2aW9ycworCisgICAgLy8gdmlld1N0YXJ0LCB2aWV3TGltaXQgaXMgdmlzaWJsZSBib3VuZHMgb2Ygd2luZG93CisgICAgLy8gdGFyZ2V0U3RhcnQsIHRhcmdldExpbWl0IGlzIHRoZSByZWdpb24gdG8gc2Nyb2xsIGludG8gdmlldworICAgIHByaXZhdGUgc3RhdGljIGludCBnZXRTY3JvbGxEaWZmZXJlbmNlKGludCB2aWV3U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHZpZXdMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdGFyZ2V0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRhcmdldExpbWl0KSB7CisKKyAgICAgICAgaWYgKHZpZXdTdGFydCA8PSB0YXJnZXRTdGFydCkgeworICAgICAgICAgICAgaWYgKHZpZXdMaW1pdCA+PSB0YXJnZXRMaW1pdCkgeworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KHZpZXdTdGFydC10YXJnZXRTdGFydCwgdmlld0xpbWl0LXRhcmdldExpbWl0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICh2aWV3TGltaXQgPiB0YXJnZXRMaW1pdCkgeworCisgICAgICAgICAgICByZXR1cm4gdmlld0xpbWl0IC0gdGFyZ2V0TGltaXQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgc2Nyb2xsVG9TaG93KFJlY3RhbmdsZSBzaG93UmVjdCkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFJlY3RhbmdsZSBib3VuZHMgPSBnZXRCb3VuZHMoKTsKKworICAgICAgICAgICAgaW50IGR4ID0gZ2V0U2Nyb2xsRGlmZmVyZW5jZShzaG93UmVjdC54LCBzaG93UmVjdC54ICsgc2hvd1JlY3Qud2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kcy54LCBib3VuZHMueCArIGJvdW5kcy53aWR0aCk7CisgICAgICAgICAgICBpbnQgZHkgPSBnZXRTY3JvbGxEaWZmZXJlbmNlKHNob3dSZWN0LnksIHNob3dSZWN0LnkgKyBzaG93UmVjdC5oZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kcy55LCBib3VuZHMueSArIGJvdW5kcy5oZWlnaHQpOworCisgICAgICAgICAgICBzY3JvbGxTZWxmKGR4LCBkeSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHNjcm9sbFRvU2hvdyhpbnQgc2hvd1gsIGludCBzaG93WSkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludCBkeCA9IDAsIGR5ID0gMDsKKworICAgICAgICAgICAgUmVjdGFuZ2xlIGJvdW5kcyA9IGdldEJvdW5kcygpOworICAgICAgICAgICAgaWYgKHNob3dYIDwgYm91bmRzLngpIHsKKyAgICAgICAgICAgICAgICBkeCA9IHNob3dYIC0gYm91bmRzLng7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzaG93WCA+IGJvdW5kcy54ICsgYm91bmRzLndpZHRoKSB7CisgICAgICAgICAgICAgICAgZHggPSBzaG93WCAtIChib3VuZHMueCArIGJvdW5kcy53aWR0aCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzaG93WSA8IGJvdW5kcy55KSB7CisgICAgICAgICAgICAgICAgZHkgPSBzaG93WSAtIGJvdW5kcy55OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc2hvd1kgPiBib3VuZHMueSArIGJvdW5kcy5oZWlnaHQpIHsKKyAgICAgICAgICAgICAgICBkeSA9IHNob3dZIC0gKGJvdW5kcy55ICsgYm91bmRzLmhlaWdodCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNjcm9sbFNlbGYoZHgsIGR5KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgaW50IHBpblNjcm9sbE9mZnNldChpbnQgZGVsdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb250ZW50U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb250ZW50TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmlld1N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdmlld0xlbmd0aCkgeworCisgICAgICAgIGlmIChkZWx0YSA+IDApIHsKKyAgICAgICAgICAgIGludCB2aWV3TGltaXQgPSB2aWV3U3RhcnQgKyB2aWV3TGVuZ3RoOworICAgICAgICAgICAgaW50IGNvbnRlbnRMaW1pdCA9IGNvbnRlbnRTdGFydCArIGNvbnRlbnRMZW5ndGg7CisKKyAgICAgICAgICAgIGlmICh2aWV3TGltaXQgKyBkZWx0YSA+IGNvbnRlbnRMaW1pdCkgeworICAgICAgICAgICAgICAgIGRlbHRhID0gTWF0aC5tYXgoMCwgY29udGVudExpbWl0LXZpZXdMaW1pdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAodmlld1N0YXJ0ICsgZGVsdGEgPCBjb250ZW50U3RhcnQpIHsKKyAgICAgICAgICAgICAgICBkZWx0YSA9IE1hdGgubWluKDAsIGNvbnRlbnRTdGFydC12aWV3U3RhcnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGRlbHRhOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzY3JvbGxTZWxmKGludCBkeCwgaW50IGR5KSB7CisKKyAgICAgICAgYm9vbGVhbiBzY3JvbGxlZCA9IHNjcm9sbEJ5KGR4LCBkeSk7CisKKyAgICAgICAgaWYgKHNjcm9sbGVkICYmIGZTY3JvbGxlciAhPSBudWxsKSB7CisgICAgICAgICAgICBSZWN0YW5nbGUgZG9jdW1lbnRCb3VuZHMgPSBmRG9jdW1lbnRWaWV3LmdldERvY3VtZW50Qm91bmRzKCk7CisgICAgICAgICAgICBmU2Nyb2xsZXIuc2V0UG9zaXRpb24oLWRvY3VtZW50Qm91bmRzLngsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWRvY3VtZW50Qm91bmRzLnkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSBzeW5jaHJvbml6ZWQgYm9vbGVhbiBzY3JvbGxCeShpbnQgZHgsIGludCBkeSkgeworCisgICAgICAgIGJvb2xlYW4gc2Nyb2xsZWQgPSBmYWxzZTsKKworICAgICAgICBpZiAoZlNjcm9sbHMpIHsKKyAgICAgICAgICAgIFJlY3RhbmdsZSBkb2N1bWVudEJvdW5kcyA9IGZEb2N1bWVudFZpZXcuZ2V0RG9jdW1lbnRCb3VuZHMoKTsKKyAgICAgICAgICAgIFJlY3RhbmdsZSB2aWV3Qm91bmRzID0gZ2V0Qm91bmRzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIHZhcmlhYmxlIG5vdCB1c2VkIGludCBvbGREeCA9IGR4OworICAgICAgICAgICAgZHggPSBwaW5TY3JvbGxPZmZzZXQoZHgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRCb3VuZHMueCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Qm91bmRzLndpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JvdW5kcy54LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JvdW5kcy53aWR0aCk7CisgICAgICAgICAgICBkeSA9IHBpblNjcm9sbE9mZnNldChkeSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudEJvdW5kcy55LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRCb3VuZHMuaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JvdW5kcy55LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JvdW5kcy5oZWlnaHQpOworCisgICAgICAgICAgICBpZiAoZHggIT0gMCB8fCBkeSAhPSAwKSB7CisgICAgICAgICAgICAgICAgc2Nyb2xsZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGZEb2N1bWVudFZpZXcubW92ZUJ5KC1keCwgLWR5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzY3JvbGxlZDsKKyAgICB9CisKKyAgICAvLyBpbXBsZW1lbnRhdGlvbiBvZiBTY3JvbGxlci5DbGllbnQgLSBjYWxsZWQgYnkgU2Nyb2xsZXIKKyAgICAvLyB0aGV5IGhhdmUgdG8gYmUgcHVibGljIHNpbmNlIHRoZXkncmUgaW4gYW4gaW50ZXJmYWNlCisgICAgLy8gbm8gb25lIGVsc2Ugc2hvdWxkIGNhbGwgdGhlc2UgbWV0aG9kcworICAgIHB1YmxpYyBSZWN0YW5nbGUgZ2V0U2Nyb2xsU2l6ZSgpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5nZXRTY3JvbGxhYmxlQXJlYSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgUmVjdGFuZ2xlKDAsIDAsIDAsIDApOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNjcm9sbFRvKGludCB4LCBpbnQgeSkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHNjcm9sbEJ5KHggKyBmRG9jdW1lbnRWaWV3LmdldERvY1goKSwgeSArIGZEb2N1bWVudFZpZXcuZ2V0RG9jWSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vICoqKiBUZXh0IGFjY2VzcyAqKioKKyAgICBNQ29uc3RUZXh0IGdldFRleHQoKSB7CisgICAgICAgIHJldHVybiBmVGV4dDsKKyAgICB9CisKKyAgICBNVGV4dCBnZXRNb2RpZmlhYmxlVGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIGZUZXh0OworICAgIH0KKworICAgIFN0eWxlZFRleHRDbGlwYm9hcmQgZ2V0Q2xpcGJvYXJkKCkgeworICAgICAgICByZXR1cm4gZkNsaXBib2FyZDsKKyAgICB9CisKKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgcGFpbnQoR3JhcGhpY3MgZykgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFZpZXcucGFpbnQoZyk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8vICoqKiBNZXRyaWMgaW5mbyAtIHVzZWQgYnkgQmVoYXZpb3JzCisgICAgUmVjdGFuZ2xlIGdldENhcmV0UmVjdChUZXh0T2Zmc2V0IG9mZnNldCkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRG9jdW1lbnRWaWV3LmdldENhcmV0UmVjdChvZmZzZXQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgUmVjdGFuZ2xlKDAsIDApOworICAgIH0KKworICAgIFRleHRPZmZzZXQgcG9pbnRUb1RleHRPZmZzZXQoVGV4dE9mZnNldCByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBhbmNob3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGluZmluaXRlTW9kZSkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRG9jdW1lbnRWaWV3LnBvaW50VG9UZXh0T2Zmc2V0KHJlc3VsdCwgeCwgeSwgYW5jaG9yLCBpbmZpbml0ZU1vZGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcgVGV4dE9mZnNldCgpOworICAgIH0KKworICAgIC8vICoqKiBPdGhlciBzdHVmZiB1c2VkIGJ5IEJlaGF2aW9ycyAtIG1vc3RseSBmb3JtYXR0ZXIgZXhwb3J0cworICAgIGludCBsaW5lQ29udGFpbmluZyhUZXh0T2Zmc2V0IG9mZnNldCkgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRG9jdW1lbnRWaWV3LmxpbmVDb250YWluaW5nKG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaW50IGxpbmVSYW5nZUxvdyhpbnQgbGluZU51bWJlcikgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRG9jdW1lbnRWaWV3LmxpbmVSYW5nZUxvdyhsaW5lTnVtYmVyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpbnQgbGluZVJhbmdlTGltaXQoaW50IGxpbmVOdW1iZXIpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5saW5lUmFuZ2VMaW1pdChsaW5lTnVtYmVyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICB2b2lkIHN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICBmRG9jdW1lbnRWaWV3LnN0b3BCYWNrZ3JvdW5kRm9ybWF0dGluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgUmVjdGFuZ2xlIGdldEJvdW5kaW5nUmVjdChUZXh0T2Zmc2V0IG9mZnNldDEsIFRleHRPZmZzZXQgb2Zmc2V0MikgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmRG9jdW1lbnRWaWV3LmdldEJvdW5kaW5nUmVjdChvZmZzZXQxLCBvZmZzZXQyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFJlY3RhbmdsZSgwLCAwLCAwLCAwKTsKKyAgICB9CisKKyAgICBzeW5jaHJvbml6ZWQgdm9pZCByZWZvcm1hdEFuZERyYXdUZXh0KGludCByZWZvcm1hdFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVmb3JtYXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsRW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgYWRkaXRpb25hbFVwZGF0ZVJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIGhpbGl0ZUNvbG9yKSB7CisKKyAgICAgICAgaWYgKGZEb2N1bWVudFZpZXcgIT0gbnVsbCkgeworICAgICAgICAgICAgZkRvY3VtZW50Vmlldy5yZWZvcm1hdEFuZERyYXdUZXh0KHJlZm9ybWF0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmb3JtYXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsRW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxVcGRhdGVSZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbGl0ZUNvbG9yKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFRleHRPZmZzZXQgZmluZE5ld0luc2VydGlvbk9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBpbml0aWFsT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHByZXZpb3VzT2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBkaXJlY3Rpb24pIHsKKworICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5maW5kTmV3SW5zZXJ0aW9uT2Zmc2V0KHJlc3VsdCwgaW5pdGlhbE9mZnNldCwgcHJldmlvdXNPZmZzZXQsIGRpcmVjdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG5ldyBUZXh0T2Zmc2V0KGluaXRpYWxPZmZzZXQpOworICAgIH0KKworICAgIHN5bmNocm9uaXplZCB2b2lkIGRyYXdUZXh0KEdyYXBoaWNzIGcsCisgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgZGFtYWdlZFJlY3QsCisgICAgICAgICAgICAgICAgICBib29sZWFuIHNlbGVjdGlvblZpc2libGUsCisgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxFbmQsCisgICAgICAgICAgICAgICAgICBDb2xvciBoaWxpdGVDb2xvcikgeworCisgICAgICAgIGlmIChmRG9jdW1lbnRWaWV3ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZEb2N1bWVudFZpZXcuZHJhd1RleHQoZywgZGFtYWdlZFJlY3QsIHNlbGVjdGlvblZpc2libGUsIHNlbFN0YXJ0LCBzZWxFbmQsIGhpbGl0ZUNvbG9yKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb2N1bWVudFNpemVDaGFuZ2VkKCkgeworCisgICAgICAgIGlmIChmU2Nyb2xsZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgZlNjcm9sbGVyLmNsaWVudFNjcm9sbFNpemVDaGFuZ2VkKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpbnQgZ2V0Rm9ybWF0V2lkdGgoKSB7CisKKyAgICAgICAgaWYgKGZEb2N1bWVudFZpZXcgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZEb2N1bWVudFZpZXcuZ2V0Rm9ybWF0V2lkdGgoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IGFuIG9mZnNldCBpbiB0aGUgdGV4dAorICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcGFyYWdyYXBoIGF0IHRoZSBnaXZlbiBvZmZzZXQgaXMgbGVmdC10by1yaWdodAorICAgICAqLworICAgIGJvb2xlYW4gcGFyYWdyYXBoSXNMZWZ0VG9SaWdodChpbnQgb2Zmc2V0KSB7CisgICAgICAgIAorICAgICAgICBpZiAoZkRvY3VtZW50VmlldyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZkRvY3VtZW50Vmlldy5wYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KG9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIERvY3VtZW50VmlldyB7CisKKyAgICAgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50IGZIb3N0OworICAgICAgICBwcml2YXRlIGJvb2xlYW4gZldyYXBzOworICAgICAgICBwcml2YXRlIGJvb2xlYW4gZldyYXBUb1dpbmRvd1dpZHRoOworICAgICAgICBwcml2YXRlIGludCBmSW5zZXRBbW91bnQ7CisgICAgICAgIHByaXZhdGUgUGFuZWxFdmVudEJyb2FkY2FzdGVyIGZMaXN0ZW5lcjsKKworICAgICAgICAvLyBmQm91bmRzIGlzIHRoZSB0b3RhbCBzY3JvbGxhYmxlIGFyZWEgb2YgdGhlIGRvY3VtZW50IChpbmNsdWRpbmcgaW5zZXRzKQorICAgICAgICBwcml2YXRlIFJlY3RhbmdsZSBmQm91bmRzID0gbmV3IFJlY3RhbmdsZSgpOworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBQb2ludCBmT3JpZ2luOworCisgICAgICAgIHByaXZhdGUgTUZvcm1hdHRlciBmRm9ybWF0dGVyOworCisgICAgICAgIHByaXZhdGUgT2Zmc2NyZWVuQnVmZmVyQ2FjaGUgZkJ1ZmZlckNhY2hlOworCisgICAgICAgIC8vIE5vdGUsIHdoZW4gdGhpcyBpcyB0cnVlIHRoZSBjYXJldCB3b24ndCBibGluayBpbiAxLjEuICBMb29rcyBsaWtlIGFuIEFXVCBidWcuCisgICAgICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gZk5vT2Zmc2NyZWVuQnVmZmVyID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCb29sZWFuLmdldEJvb2xlYW4oIlRleHRDb21wb25lbnQuTm9PZmZzY3JlZW5CdWZmZXIiKTsKKworICAgICAgICAvLyBBbW91bnQgYnkgd2hpY2ggdG8gcmVkdWNlIHRoZSBmb3JtYXQgd2lkdGggdG8gYWxsb3cgZm9yIHJpZ2h0LWFsaWduZWQgY2FyZXRzLgorICAgICAgICBwcml2YXRlIGZpbmFsIGludCBDQVJFVF9TTE9QID0gMTsKKworICAgICAgICBEb2N1bWVudFZpZXcoVGV4dENvbXBvbmVudCBob3N0LAorICAgICAgICAgICAgICAgICAgICAgTUNvbnN0VGV4dCB0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGRlZmF1bHRWYWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHdyYXBzLAorICAgICAgICAgICAgICAgICAgICAgaW50IHdyYXBXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgIGludCBpbnNldEFtb3VudCwKKyAgICAgICAgICAgICAgICAgICAgIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBsaXN0ZW5lcikgeworCisgICAgICAgICAgICBmSG9zdCA9IGhvc3Q7CisgICAgICAgICAgICBmV3JhcFRvV2luZG93V2lkdGggPSB3cmFwV2lkdGggPT0gV0lORE9XX1dJRFRIOworICAgICAgICAgICAgZkluc2V0QW1vdW50ID0gaW5zZXRBbW91bnQ7CisgICAgICAgICAgICBmTGlzdGVuZXIgPSBsaXN0ZW5lcjsKKworICAgICAgICAgICAgaW5pdEZvcm1hdHRlckFuZFNpemUodGV4dCwgZGVmYXVsdFZhbHVlcywgd3JhcHMsIHdyYXBXaWR0aCk7CisKKyAgICAgICAgICAgIGZCdWZmZXJDYWNoZSA9IG5ldyBPZmZzY3JlZW5CdWZmZXJDYWNoZShob3N0LmZIb3N0KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLyoqCisgICAgICAgICAqIE5vdGU6IHRoaXMgY29tcHV0ZXMgdGhlIGJvdW5kcyByZWN0YW5nbGUgcmVsYXRpdmUgdG8gZk9yaWdpbgorICAgICAgICAgKi8KKyAgICAgICAgcHJpdmF0ZSB2b2lkIGNhbGNCb3VuZHNSZWN0KCkgeworICAgICAgICAKKyAgICAgICAgICAgIGZpbmFsIGludCBpbnNldERpbSA9IDIgKiBmSW5zZXRBbW91bnQ7CisKKyAgICAgICAgICAgIGZpbmFsIGludCBtaW5YID0gZkZvcm1hdHRlci5taW5YKCk7CisgICAgICAgICAgICBmaW5hbCBpbnQgbWluWSA9IGZGb3JtYXR0ZXIubWluWSgpOworCisgICAgICAgICAgICBmQm91bmRzLnNldEJvdW5kcyhmT3JpZ2luLnggKyBtaW5YIC0gZkluc2V0QW1vdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZk9yaWdpbi55ICsgbWluWSAtIGZJbnNldEFtb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZGb3JtYXR0ZXIubWF4WCgpIC0gbWluWCArIGluc2V0RGltLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZGb3JtYXR0ZXIubWF4WSgpIC0gbWluWSArIGluc2V0RGltKTsKKyAgICAgICAgICAgIC8vaWYgKG1pblggPD0gMCkgeworICAgICAgICAgICAgLy8gICAgU3lzdGVtLm91dC5wcmludGxuKCJjYWxjQm91bmRzUmVjdDogbWluWD0iK21pblgrCisgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgIjsgYm91bmRzLng9IitmQm91bmRzLngrIjsgd2lkdGg9IitmQm91bmRzLndpZHRoKTsKKyAgICAgICAgICAgIC8vfQorICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGluaXRGb3JtYXR0ZXJBbmRTaXplKE1Db25zdFRleHQgdGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gd3JhcHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd3JhcFdpZHRoKSB7CisKKyAgICAgICAgICAgIFJlY3RhbmdsZSBob3N0Qm91bmRzID0gZkhvc3QuZ2V0Qm91bmRzKCk7CisgICAgICAgICAgICBpbnQgZm9ybWF0V2lkdGg7CisKKyAgICAgICAgICAgIGlmICghd3JhcHMgfHwgZldyYXBUb1dpbmRvd1dpZHRoKSB7CisgICAgICAgICAgICAgICAgZm9ybWF0V2lkdGggPSBob3N0Qm91bmRzLndpZHRoIC0gMiAqIGZJbnNldEFtb3VudDsKKyAgICAgICAgICAgICAgICBpZiAoZm9ybWF0V2lkdGggPD0gQ0FSRVRfU0xPUCkgeworICAgICAgICAgICAgICAgICAgICBmb3JtYXRXaWR0aCA9IENBUkVUX1NMT1ArMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBmb3JtYXRXaWR0aCA9IHdyYXBXaWR0aDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZkZvcm1hdHRlciA9IE1Gb3JtYXR0ZXIuY3JlYXRlRm9ybWF0dGVyKHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRXaWR0aC1DQVJFVF9TTE9QLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZIb3N0LmdldEdyYXBoaWNzKCkpOworCisgICAgICAgICAgICBmRm9ybWF0dGVyLmZvcm1hdFRvSGVpZ2h0KGhvc3RCb3VuZHMuaGVpZ2h0ICogMik7CisgICAgICAgICAgICBmT3JpZ2luID0gbmV3IFBvaW50KGZJbnNldEFtb3VudCwgZkluc2V0QW1vdW50KTsKKyAgICAgICAgICAgIGNhbGNCb3VuZHNSZWN0KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBub3RpZmljYXRpb24gbWV0aG9kIGNhbGxlZCBieSBUZXh0Q29tcG9uZW50CisgICAgICAgIHZvaWQgaG9zdFNpemVDaGFuZ2VkKCkgeworCisgICAgICAgICAgICBmaW5hbCBib29sZWFuIHdyYXAgPSBmRm9ybWF0dGVyLndyYXAoKTsKKyAgICAgICAgICAgIGlmIChmV3JhcFRvV2luZG93V2lkdGggfHwgIXdyYXApIHsKKworICAgICAgICAgICAgICAgIFJlY3RhbmdsZSBob3N0Qm91bmRzID0gZkhvc3QuZ2V0Qm91bmRzKCk7CisgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgZmluYWwgaW50IGluc2V0RGltID0gMiAqIGZJbnNldEFtb3VudDsKKworICAgICAgICAgICAgICAgIGludCBmb3JtYXRXaWR0aCA9IGhvc3RCb3VuZHMud2lkdGggLSAyKmZJbnNldEFtb3VudDsKKyAgICAgICAgICAgICAgICBpZiAoZm9ybWF0V2lkdGggPD0gQ0FSRVRfU0xPUCkgeworICAgICAgICAgICAgICAgICAgICBmb3JtYXRXaWR0aCA9IENBUkVUX1NMT1ArMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZkZvcm1hdHRlci5zZXRMaW5lQm91bmQoZm9ybWF0V2lkdGgtQ0FSRVRfU0xPUCk7CisKKyAgICAgICAgICAgICAgICBmRm9ybWF0dGVyLmZvcm1hdFRvSGVpZ2h0KGhvc3RCb3VuZHMueSArIChob3N0Qm91bmRzLmhlaWdodCoyKSAtIGZPcmlnaW4ueSk7CisKKyAgICAgICAgICAgICAgICBjYWxjQm91bmRzUmVjdCgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJXaW5kb3cgYm91bmRzPSIraG9zdEJvdW5kcysiOyBkb2N1bWVudCBib3VuZHM9IitmQm91bmRzKTsKKworICAgICAgICAgICAgICAgIGZIb3N0LmRvY3VtZW50U2l6ZUNoYW5nZWQoKTsKKyAgICAgICAgICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5GT1JNQVRfV0lEVEhfQ0hBTkdFRCk7CisgICAgICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImZvcm1hdFdpZHRoPSIrZm9ybWF0V2lkdGgpOworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJkb2N1bWVudCBib3VuZHM9IitmQm91bmRzKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy9kdW1wV2lkdGhJbmZvKCk7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZ2V0Rm9ybWF0V2lkdGgoKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmRm9ybWF0dGVyLmxpbmVCb3VuZCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBib29sZWFuIHBhcmFncmFwaElzTGVmdFRvUmlnaHQoaW50IG9mZnNldCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgbGluZU51bWJlciA9IGZGb3JtYXR0ZXIubGluZUNvbnRhaW5pbmcob2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBmRm9ybWF0dGVyLmxpbmVJc0xlZnRUb1JpZ2h0KGxpbmVOdW1iZXIpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHRleHRTaXplTWlnaHRIYXZlQ2hhbmdlZCgpIHsKKworICAgICAgICAgICAgYm9vbGVhbiBjaGFuZ2VkID0gZmFsc2U7CisgICAgICAgICAgICBmaW5hbCBpbnQgaW5zZXREaW0gPSAyICogZkluc2V0QW1vdW50OworICAgICAgICAgICAgCisgICAgICAgICAgICBpbnQgdGV4dEhlaWdodCA9IGZGb3JtYXR0ZXIubWF4WSgpIC0gZkZvcm1hdHRlci5taW5ZKCkgKyBpbnNldERpbTsKKyAgICAgICAgICAgIGlmICh0ZXh0SGVpZ2h0ICE9IGZCb3VuZHMuaGVpZ2h0KSB7CisgICAgICAgICAgICAgICAgZkJvdW5kcy5oZWlnaHQgPSB0ZXh0SGVpZ2h0OworICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWZGb3JtYXR0ZXIud3JhcCgpKSB7CisgICAgICAgICAgICAgICAgaW50IHRleHRXaWR0aCA9IGZGb3JtYXR0ZXIubWF4WCgpIC0gZkZvcm1hdHRlci5taW5YKCkgKyBpbnNldERpbTsKKyAgICAgICAgICAgICAgICBpZiAodGV4dFdpZHRoICE9IGZCb3VuZHMud2lkdGgpIHsKKyAgICAgICAgICAgICAgICAgICAgZkJvdW5kcy53aWR0aCA9IHRleHRXaWR0aDsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY2hhbmdlZCkgeworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJUZXh0IHNpemUgY2hhbmdlZC4gIGZCb3VuZHM6ICIgKyBmQm91bmRzKTsKKyAgICAgICAgICAgICAgICBjYWxjQm91bmRzUmVjdCgpOworICAgICAgICAgICAgICAgIGZIb3N0LmRvY3VtZW50U2l6ZUNoYW5nZWQoKTsKKyAgICAgICAgICAgICAgICBmSG9zdC5zY3JvbGxUb1Nob3coZ2V0RG9jdW1lbnRCb3VuZHMoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgZG9EcmF3VGV4dChHcmFwaGljcyBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgZHJhd1JlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gc2VsZWN0aW9uVmlzaWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIGhpbGl0ZUNvbG9yKSB7CisKKyAgICAgICAgICAgIENvbG9yIG9sZENvbG9yID0gZy5nZXRDb2xvcigpOworICAgICAgICAgICAgZy5zZXRDb2xvcihmSG9zdC5nZXRIb3N0KCkuZ2V0QmFja2dyb3VuZCgpKTsKKyAgICAgICAgICAgIGcuZmlsbFJlY3QoZHJhd1JlY3QueCwgZHJhd1JlY3QueSwgZHJhd1JlY3Qud2lkdGgsIGRyYXdSZWN0LmhlaWdodCk7CisgICAgICAgICAgICBnLnNldENvbG9yKG9sZENvbG9yKTsKKworICAgICAgICAgICAgLy8gICAgICAgICAgICBnLmNsZWFyUmVjdChkcmF3UmVjdC54LCBkcmF3UmVjdC55LCBkcmF3UmVjdC53aWR0aCwgZHJhd1JlY3QuaGVpZ2h0KTsKKworICAgICAgICAgICAgaWYgKHNlbGVjdGlvblZpc2libGUpIHsKKyAgICAgICAgICAgICAgICBmRm9ybWF0dGVyLmRyYXcoZywgZHJhd1JlY3QsIGZPcmlnaW4sIHNlbFN0YXJ0LCBzZWxFbmQsIGhpbGl0ZUNvbG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZGb3JtYXR0ZXIuZHJhdyhnLCBkcmF3UmVjdCwgZk9yaWdpbiwgbnVsbCwgbnVsbCwgbnVsbCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzZWxTdGFydCAhPSBudWxsICYmIHNlbFN0YXJ0LmVxdWFscyhzZWxFbmQpICYmIHNlbGVjdGlvblZpc2libGUpIHsKKworICAgICAgICAgICAgICAgIGZGb3JtYXR0ZXIuZHJhd0NhcmV0KGcsIHNlbFN0YXJ0LCBmT3JpZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RST05HX0NBUkVUX0NPTE9SLCBXRUFLX0NBUkVUX0NPTE9SKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZHJhd1RleHQoR3JhcGhpY3MgZywKKyAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGUgZHJhd1JlY3QsCisgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBzZWxlY3Rpb25WaXNpYmxlLAorICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxFbmQsCisgICAgICAgICAgICAgICAgICAgICAgQ29sb3IgaGlsaXRlQ29sb3IpIHsKKworICAgICAgICAgICAgaWYgKGcgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGRyYXdSZWN0ID0gZHJhd1JlY3QuaW50ZXJzZWN0aW9uKGZIb3N0LmdldEJvdW5kcygpKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiZHJhd1RleHQ6ZHJhd1JlY3Q6ICIgKyBkcmF3UmVjdCk7CisgICAgICAgICAgICAgICAgZy5jbGlwUmVjdChkcmF3UmVjdC54LCBkcmF3UmVjdC55LCBkcmF3UmVjdC53aWR0aCwgZHJhd1JlY3QuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBpZiAoZk5vT2Zmc2NyZWVuQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgICAgIGRvRHJhd1RleHQoZywgZHJhd1JlY3QsIHNlbGVjdGlvblZpc2libGUsIHNlbFN0YXJ0LCBzZWxFbmQsIGhpbGl0ZUNvbG9yKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEltYWdlIG9mZnNjcmVlbkJ1ZmZlciA9IGZCdWZmZXJDYWNoZS5nZXRCdWZmZXIoZHJhd1JlY3Qud2lkdGgsIGRyYXdSZWN0LmhlaWdodCk7CisgICAgICAgICAgICAgICAgICAgIEdyYXBoaWNzIG9mZnNjcmVlbkdyYXBoaWNzID0gb2Zmc2NyZWVuQnVmZmVyLmdldEdyYXBoaWNzKCk7CisgICAgICAgICAgICAgICAgICAgIG9mZnNjcmVlbkdyYXBoaWNzLnRyYW5zbGF0ZSgtZHJhd1JlY3QueCwgLWRyYXdSZWN0LnkpOworICAgIAorICAgICAgICAgICAgICAgICAgICBkb0RyYXdUZXh0KG9mZnNjcmVlbkdyYXBoaWNzLCBkcmF3UmVjdCwgc2VsZWN0aW9uVmlzaWJsZSwgc2VsU3RhcnQsIHNlbEVuZCwgaGlsaXRlQ29sb3IpOworICAgIAorICAgICAgICAgICAgICAgICAgICBnLmRyYXdJbWFnZShvZmZzY3JlZW5CdWZmZXIsIGRyYXdSZWN0LngsIGRyYXdSZWN0LnksIGZIb3N0LmZIb3N0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZXh0U2l6ZU1pZ2h0SGF2ZUNoYW5nZWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgcmVmb3JtYXRBbmREcmF3VGV4dChpbnQgcmVmb3JtYXRTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWZvcm1hdExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgc2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY3RhbmdsZSBhZGRpdGlvbmFsVXBkYXRlUmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yIGhpbGl0ZUNvbG9yKSB7CisKKyAgICAgICAgICAgIFJlY3RhbmdsZSB2aXNpYmxlQm91bmRzID0gZkhvc3QuZ2V0Qm91bmRzKCk7CisgICAgICAgICAgICBSZWN0YW5nbGUgcmVkcmF3UmVjdCA9IGZGb3JtYXR0ZXIudXBkYXRlRm9ybWF0KHJlZm9ybWF0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZm9ybWF0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlQm91bmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmT3JpZ2luKTsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJbMV0gcmVkcmF3UmVjdDogIiArIHJlZHJhd1JlY3QpOworCisgICAgICAgICAgICBpZiAoYWRkaXRpb25hbFVwZGF0ZVJlY3QgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJlZHJhd1JlY3QuYWRkKGFkZGl0aW9uYWxVcGRhdGVSZWN0KTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiWzJdIHJlZHJhd1JlY3Q6ICIgKyByZWRyYXdSZWN0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYm9vbGVhbiBoYXZlU2VsZWN0aW9uOworCisgICAgICAgICAgICBpZiAoc2VsU3RhcnQgIT0gbnVsbCAmJiBzZWxFbmQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGhhdmVTZWxlY3Rpb24gPSB0cnVlOworICAgICAgICAgICAgICAgIHJlZHJhd1JlY3QuYWRkKGZGb3JtYXR0ZXIuZ2V0Qm91bmRpbmdSZWN0KHNlbFN0YXJ0LCBzZWxFbmQsIGZPcmlnaW4sIE1Gb3JtYXR0ZXIuTE9PU0UpKTsKKyAgICAgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiWzNdIHJlZHJhd1JlY3Q6ICIgKyByZWRyYXdSZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGhhdmVTZWxlY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZHJhd1RleHQoZkhvc3QuZ2V0R3JhcGhpY3MoKSwgcmVkcmF3UmVjdCwgaGF2ZVNlbGVjdGlvbiwgc2VsU3RhcnQsIHNlbEVuZCwgaGlsaXRlQ29sb3IpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSB2b2lkIGxldEJlaGF2aW9yRHJhdyhHcmFwaGljcyBnLCBSZWN0YW5nbGUgZHJhd1JlY3QpIHsKKworICAgICAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKGZIb3N0LmZCZWhhdmlvciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZkhvc3QuZkJlaGF2aW9yLnBhaW50KGcsIGRyYXdSZWN0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBkcmF3VGV4dChnLCBkcmF3UmVjdCwgZmFsc2UsIG51bGwsIG51bGwsIG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgdm9pZCBtb3ZlQnkoaW50IGR4LCBpbnQgZHkpIHsKKworICAgICAgICAgICAgUmVjdGFuZ2xlIHZpc2libGVCb3VuZHMgPSBmSG9zdC5nZXRCb3VuZHMoKTsKKyAgICAgICAgICAgIEdyYXBoaWNzIGcgPSBmSG9zdC5nZXRHcmFwaGljcygpOworCisgICAgICAgICAgICBmQm91bmRzLnggKz0gZHg7CisgICAgICAgICAgICBmQm91bmRzLnkgKz0gZHk7CisgICAgICAgICAgICBmT3JpZ2luLnggKz0gZHg7CisgICAgICAgICAgICBmT3JpZ2luLnkgKz0gZHk7CisKKyAgICAgICAgICAgIFJlY3RhbmdsZSByZWZyZXNoUmVjdCA9IG5ldyBSZWN0YW5nbGUodmlzaWJsZUJvdW5kcyk7CisKKyAgICAgICAgICAgIGlmIChkeCA9PSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGcgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBnLmNvcHlBcmVhKHZpc2libGVCb3VuZHMueCwgdmlzaWJsZUJvdW5kcy55LCB2aXNpYmxlQm91bmRzLndpZHRoLCB2aXNpYmxlQm91bmRzLmhlaWdodCwgZHgsIGR5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGR5IDwgMCkgeworICAgICAgICAgICAgICAgICAgICByZWZyZXNoUmVjdC55ID0gdmlzaWJsZUJvdW5kcy55ICsgdmlzaWJsZUJvdW5kcy5oZWlnaHQgKyBkeTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmVmcmVzaFJlY3QuaGVpZ2h0ID0gTWF0aC5hYnMoZHkpOworICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJyZWZyZXNoUmVjdD0iICsgcmVmcmVzaFJlY3QpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsZXRCZWhhdmlvckRyYXcoZywgcmVmcmVzaFJlY3QpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcml2YXRlIFJlY3RhbmdsZSBnZXRJbnNldEJvdW5kcygpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IGluc2V0RGltID0gMiAqIGZJbnNldEFtb3VudDsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUmVjdGFuZ2xlKGZCb3VuZHMueC1mSW5zZXRBbW91bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQm91bmRzLnktZkluc2V0QW1vdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkJvdW5kcy53aWR0aCtpbnNldERpbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZCb3VuZHMuaGVpZ2h0K2luc2V0RGltKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgcGFpbnQoR3JhcGhpY3MgZykgeworCisgICAgICAgICAgICBSZWN0YW5nbGUgaG9zdEJvdW5kcyA9IGZIb3N0LmdldEJvdW5kcygpOworICAgICAgICAgICAgUmVjdGFuZ2xlIHRleHRSZWZyZXNoUmVjdCA9IGhvc3RCb3VuZHMuaW50ZXJzZWN0aW9uKGdldEluc2V0Qm91bmRzKCkpOworICAgICAgICAgICAgbGV0QmVoYXZpb3JEcmF3KGcsIHRleHRSZWZyZXNoUmVjdCk7CisgICAgICAgIH0KKworICAgICAgICBSZWN0YW5nbGUgZ2V0Q2FyZXRSZWN0KFRleHRPZmZzZXQgb2Zmc2V0KSB7CisKKyAgICAgICAgICAgIHJldHVybiBmRm9ybWF0dGVyLmdldENhcmV0UmVjdChvZmZzZXQsIGZPcmlnaW4pOworICAgICAgICB9CisKKyAgICAgICAgVGV4dE9mZnNldCBwb2ludFRvVGV4dE9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IGFuY2hvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGluZmluaXRlTW9kZSkgeworCisgICAgICAgICAgICByZXR1cm4gZkZvcm1hdHRlci5wb2ludFRvVGV4dE9mZnNldChyZXN1bHQsIHgsIHksIGZPcmlnaW4sIGFuY2hvciwgaW5maW5pdGVNb2RlKTsKKyAgICAgICAgfQorCisgICAgICAgIFJlY3RhbmdsZSBnZXRTY3JvbGxhYmxlQXJlYSgpIHsKKworICAgICAgICAgICAgUmVjdGFuZ2xlIGFyZWEgPSBuZXcgUmVjdGFuZ2xlKGZCb3VuZHMpOworICAgICAgICAgICAgYXJlYS54ICs9IGZJbnNldEFtb3VudCAtIGZPcmlnaW4ueDsKKyAgICAgICAgICAgIGFyZWEueSArPSBmSW5zZXRBbW91bnQgLSBmT3JpZ2luLnk7CisgICAgICAgICAgICByZXR1cm4gYXJlYTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBEb2Vzbid0IGNsb25lIHNvIFRleHRDb21wb25lbnQgbmVlZHMgdG8gYmUgbmljZS4gIFRleHRDb21wb25lbnQKKyAgICAgICAgICogaXMgdGhlIG9ubHkgY2xhc3Mgd2hpY2ggY2FuIGFjY2VzcyB0aGlzIGFueXdheS4KKyAgICAgICAgICovCisgICAgICAgIFJlY3RhbmdsZSBnZXREb2N1bWVudEJvdW5kcygpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZCb3VuZHM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBnZXREb2NYKCkgeworICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmT3JpZ2luLnggLSBmSW5zZXRBbW91bnQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBnZXREb2NZKCkgeworICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBmT3JpZ2luLnkgLSBmSW5zZXRBbW91bnQ7CisgICAgICAgIH0KKworICAgICAgICBpbnQgbGluZUNvbnRhaW5pbmcoVGV4dE9mZnNldCBvZmZzZXQpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZGb3JtYXR0ZXIubGluZUNvbnRhaW5pbmcob2Zmc2V0KTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBsaW5lUmFuZ2VMb3coaW50IGxpbmVOdW1iZXIpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZGb3JtYXR0ZXIubGluZVJhbmdlTG93KGxpbmVOdW1iZXIpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGxpbmVSYW5nZUxpbWl0KGludCBsaW5lTnVtYmVyKSB7CisKKyAgICAgICAgICAgIHJldHVybiBmRm9ybWF0dGVyLmxpbmVSYW5nZUxpbWl0KGxpbmVOdW1iZXIpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBzdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKSB7CisKKyAgICAgICAgICAgIGZGb3JtYXR0ZXIuc3RvcEJhY2tncm91bmRGb3JtYXR0aW5nKCk7CisgICAgICAgIH0KKworICAgICAgICBSZWN0YW5nbGUgZ2V0Qm91bmRpbmdSZWN0KFRleHRPZmZzZXQgb2Zmc2V0MSwgVGV4dE9mZnNldCBvZmZzZXQyKSB7CisKKyAgICAgICAgICAgIFJlY3RhbmdsZSByID0gZkZvcm1hdHRlci5nZXRCb3VuZGluZ1JlY3Qob2Zmc2V0MSwgb2Zmc2V0MiwgZk9yaWdpbiwgTUZvcm1hdHRlci5USUdIVCk7CisgICAgICAgICAgICAvL3Iud2lkdGggKz0gQ0FSRVRfU0xPUDsKKyAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJvZmZzZXQxPSIrb2Zmc2V0MSsiOyBvZmZzZXQyPSIrb2Zmc2V0Mik7CisgICAgICAgICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiYm91bmRzIHdpZHRoPSIrci53aWR0aCsiOyBob3N0IHdpZHRoPSIrKGZIb3N0LmdldEJvdW5kcygpLndpZHRoKSk7CisgICAgICAgICAgICByZXR1cm4gcjsKKyAgICAgICAgfQorCisgICAgICAgIFRleHRPZmZzZXQgZmluZE5ld0luc2VydGlvbk9mZnNldChUZXh0T2Zmc2V0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgaW5pdGlhbE9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgcHJldmlvdXNPZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCBkaXJlY3Rpb24pIHsKKworICAgICAgICAgICAgcmV0dXJuIGZGb3JtYXR0ZXIuZmluZE5ld0luc2VydGlvbk9mZnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCwgaW5pdGlhbE9mZnNldCwgcHJldmlvdXNPZmZzZXQsIGRpcmVjdGlvbik7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dEVkaXRCZWhhdmlvci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRFZGl0QmVoYXZpb3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MzA1ODljCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRFZGl0QmVoYXZpb3IuamF2YQpAQCAtMCwwICsxLDQ4MSBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KK3BhY2thZ2UgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWw7CisKK2ltcG9ydCBqYXZhLmF3dC5SZWN0YW5nbGU7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVNYXA7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZUV2ZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UZXh0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGZvcm1hdC5UZXh0T2Zmc2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCisvLyBBbGwgY2hhbmdlcyB0byB0aGUgdGV4dCBzaG91bGQgaGFwcGVuIGluIHRoaXMgY2xhc3MsIG9yIGluCisvLyBpdHMgVHlwaW5nSW50ZXJhY3Rvci4KKworY2xhc3MgVGV4dEVkaXRCZWhhdmlvciBleHRlbmRzIEJlaGF2aW9yIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBUZXh0Q29tcG9uZW50IGZUZXh0Q29tcG9uZW50OworICAgIHByaXZhdGUgVGV4dFNlbGVjdGlvbiBmU2VsZWN0aW9uOworICAgIHByaXZhdGUgTVRleHQgZlRleHQ7CisgICAgcHJpdmF0ZSBTaW1wbGVDb21tYW5kTG9nIGZDb21tYW5kTG9nOworICAgIHByaXZhdGUgUGFuZWxFdmVudEJyb2FkY2FzdGVyIGZMaXN0ZW5lcjsKKyAgICBwcml2YXRlIFR5cGluZ0ludGVyYWN0b3IgZlR5cGluZ0ludGVyYWN0b3IgPSBudWxsOworICAgIHByaXZhdGUgS2V5UmVtYXAgZlJlbWFwOworICAgIAorICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZTYXZlZFR5cGluZ1N0eWxlID0gbnVsbDsKKyAgICBwcml2YXRlIGludCBmU2F2ZWRJbnNQdCA9IDA7CisgICAgCisgICAgcHVibGljIFRleHRFZGl0QmVoYXZpb3IoVGV4dENvbXBvbmVudCB0ZXh0Q29tcG9uZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBsaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlSZW1hcCByZW1hcCkgeworCisgICAgICAgIGZUZXh0Q29tcG9uZW50ID0gdGV4dENvbXBvbmVudDsKKyAgICAgICAgZlNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICAgICAgZlRleHQgPSB0ZXh0Q29tcG9uZW50LmdldE1vZGlmaWFibGVUZXh0KCk7CisgICAgICAgIGZDb21tYW5kTG9nID0gbmV3IFNpbXBsZUNvbW1hbmRMb2cobGlzdGVuZXIpOworICAgICAgICBmTGlzdGVuZXIgPSBsaXN0ZW5lcjsKKyAgICAgICAgZlJlbWFwID0gcmVtYXA7CisgICAgfQorCisgICAgcHVibGljIEtleVJlbWFwIGdldEtleVJlbWFwKCkgeworCisgICAgICAgIHJldHVybiBmUmVtYXA7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0S2V5UmVtYXAoS2V5UmVtYXAgcmVtYXApIHsKKworICAgICAgICBmUmVtYXAgPSByZW1hcDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiB0ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoQmVoYXZpb3IuRXZlbnRUeXBlIGV2ZW50LCBPYmplY3Qgd2hhdCkgeworCisgICAgICAgIGJvb2xlYW4gaGFuZGxlZCA9IHRydWU7CisgICAgICAgIAorICAgICAgICBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuQ0hBUkFDVEVSX1NUWUxFX01PRCB8fAorICAgICAgICAgICAgZXZlbnQgPT0gQmVoYXZpb3IuUEFSQUdSQVBIX1NUWUxFX01PRCkgeworICAgICAgICAgICAgZG9TdHlsZUNoYW5nZShldmVudCwgd2hhdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuQ1VUKSB7CisgICAgICAgICAgICBkb0N1dCgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IEJlaGF2aW9yLlBBU1RFKSB7CisgICAgICAgICAgICBkb1Bhc3RlKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuQ0xFQVIpIHsKKyAgICAgICAgICAgIGRvQ2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChldmVudCA9PSBCZWhhdmlvci5SRVBMQUNFKSB7CisgICAgICAgICAgICBkb1VuZG9hYmxlUmVwbGFjZSgoVGV4dFJlcGxhY2VtZW50KSB3aGF0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChldmVudCA9PSBCZWhhdmlvci5VTkRPKSB7CisgICAgICAgICAgICBmQ29tbWFuZExvZy51bmRvKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuUkVETykgeworICAgICAgICAgICAgZkNvbW1hbmRMb2cucmVkbygpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IEJlaGF2aW9yLlNFVF9NT0RJRklFRCkgeworICAgICAgICAgICAgZkNvbW1hbmRMb2cuc2V0TW9kaWZpZWQod2hhdCA9PSBCb29sZWFuLlRSVUUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IEJlaGF2aW9yLkNMRUFSX0NPTU1BTkRfTE9HKSB7CisgICAgICAgICAgICBmQ29tbWFuZExvZy5jbGVhckxvZygpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGV2ZW50ID09IEJlaGF2aW9yLlNFVF9DT01NQU5EX0xPR19TSVpFKSB7CisgICAgICAgICAgICBmQ29tbWFuZExvZy5zZXRMb2dTaXplKCgoSW50ZWdlcil3aGF0KS5pbnRWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBzdXBlci50ZXh0Q29udHJvbEV2ZW50T2NjdXJyZWQoZXZlbnQsIHdoYXQpOworICAgICAgICB9CisKKyAgICAgICAgY2hlY2tTYXZlZFR5cGluZ1N0eWxlKCk7CisgICAgICAgIAorICAgICAgICByZXR1cm4gaGFuZGxlZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJdCdzIHVuZm9ydHVuYXRlIHRoYXQgdGhlIHRleHQgaXMgbW9kaWZpZWQgYW5kIHJlZm9ybWF0dGVkIGluCisgICAgICogdGhyZWUgZGlmZmVyZW50IG1ldGhvZHMuICBUaGlzIG1ldGhvZCBpcyB0aGUgImNvbW1vbiBwcm9sb2d1ZSIKKyAgICAgKiBmb3IgYWxsIHRleHQgbW9kaWZpY2F0aW9ucy4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIG1vZGlmeWluZyBhbmQgcmVmb3JtYXR0aW5nCisgICAgICogdGhlIHRleHQuICBJdCBkb2VzIHRocmVlIHRoaW5nczogIHN0b3BzIGNhcmV0IGJsaW5raW5nLCBzdG9wcworICAgICAqIGJhY2tncm91bmQgZm9ybWF0dGluZywgYW5kIHJldHVybnMgdGhlIFJlY3RhbmdsZSBjb250YWluaW5nIHRoZQorICAgICAqIGN1cnJlbnQgKHNvb24tdG8tYmUgb2Jzb2xldGUpIHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIFJlY3RhbmdsZSBwcmVwYXJlRm9yVGV4dEVkaXQoKSB7CisKKyAgICAgICAgZlNlbGVjdGlvbi5zdG9wQ2FyZXRCbGlua2luZygpOworICAgICAgICBmVGV4dENvbXBvbmVudC5zdG9wQmFja2dyb3VuZEZvcm1hdHRpbmcoKTsKKyAgICAgICAgcmV0dXJuIGZUZXh0Q29tcG9uZW50LmdldEJvdW5kaW5nUmVjdChmU2VsZWN0aW9uLmdldFN0YXJ0KCksIGZTZWxlY3Rpb24uZ2V0RW5kKCkpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0NsZWFyKCkgeworICAgICAgICBUZXh0UmFuZ2Ugc2VsUmFuZ2UgPSBmU2VsZWN0aW9uLmdldFNlbGVjdGlvblJhbmdlKCk7CisKKyAgICAgICAgaWYgKHNlbFJhbmdlLnN0YXJ0ID09IHNlbFJhbmdlLmxpbWl0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGRvVW5kb2FibGVUZXh0Q2hhbmdlKHNlbFJhbmdlLnN0YXJ0LCBzZWxSYW5nZS5saW1pdCwgbnVsbCwgbmV3IFRleHRPZmZzZXQoc2VsUmFuZ2UuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQpLCBuZXcgVGV4dE9mZnNldChzZWxSYW5nZS5zdGFydCkpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0N1dCgpIHsKKyAgICAgICAgVGV4dFJhbmdlIHNlbFJhbmdlID0gZlNlbGVjdGlvbi5nZXRTZWxlY3Rpb25SYW5nZSgpOworCisgICAgICAgIGlmIChzZWxSYW5nZS5zdGFydCA9PSBzZWxSYW5nZS5saW1pdCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmVGV4dENvbXBvbmVudC5nZXRDbGlwYm9hcmQoKS5zZXRDb250ZW50cyhmVGV4dC5leHRyYWN0KHNlbFJhbmdlLnN0YXJ0LCBzZWxSYW5nZS5saW1pdCkpOworICAgICAgICBkb1VuZG9hYmxlVGV4dENoYW5nZShzZWxSYW5nZS5zdGFydCwgc2VsUmFuZ2UubGltaXQsIG51bGwsIG5ldyBUZXh0T2Zmc2V0KHNlbFJhbmdlLnN0YXJ0KSwgbmV3IFRleHRPZmZzZXQoc2VsUmFuZ2Uuc3RhcnQpKTsKKworICAgICAgICBmTGlzdGVuZXIudGV4dFN0YXRlQ2hhbmdlZChUZXh0UGFuZWxFdmVudC5DTElQQk9BUkRfQ0hBTkdFRCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvUGFzdGUoKSB7CisgICAgICAgIFRleHRSYW5nZSBzZWxSYW5nZSA9IGZTZWxlY3Rpb24uZ2V0U2VsZWN0aW9uUmFuZ2UoKTsKKyAgICAgICAgTUNvbnN0VGV4dCBjbGlwVGV4dCA9IGZUZXh0Q29tcG9uZW50LmdldENsaXBib2FyZCgpLmdldENvbnRlbnRzKEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKworICAgICAgICBpZiAoY2xpcFRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgZG9VbmRvYWJsZVRleHRDaGFuZ2Uoc2VsUmFuZ2Uuc3RhcnQsIHNlbFJhbmdlLmxpbWl0LCBjbGlwVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRleHRPZmZzZXQoc2VsUmFuZ2Uuc3RhcnQgKyBjbGlwVGV4dC5sZW5ndGgoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBUZXh0T2Zmc2V0KHNlbFJhbmdlLnN0YXJ0ICsgY2xpcFRleHQubGVuZ3RoKCkpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LkNMSVBCT0FSRF9DSEFOR0VEKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb1VuZG9hYmxlUmVwbGFjZShUZXh0UmVwbGFjZW1lbnQgcmVwbGFjZW1lbnQpIHsKKworICAgICAgICBkb1VuZG9hYmxlVGV4dENoYW5nZShyZXBsYWNlbWVudC5nZXRTdGFydCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudC5nZXRMaW1pdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlbWVudC5nZXRUZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50LmdldFNlbGVjdGlvblN0YXJ0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50LmdldFNlbGVjdGlvbkxpbWl0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE9ubHkgVHlwaW5nSW50ZXJhY3RvciBhbmQgVGV4dENvbW1hbmQgc2hvdWxkIGNhbGwgdGhpcyEKKyAgICAgKi8KKyAgICB2b2lkIGRvUmVwbGFjZVRleHQoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgbmV3VGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTZWxFbmQpIHsKKworICAgICAgICBpbnQgdGV4dExlbmd0aDsKKworICAgICAgICBmVGV4dC5yZXNldERhbWFnZWRSYW5nZSgpOworCisgICAgICAgIFJlY3RhbmdsZSBvbGRTZWxSZWN0ID0gcHJlcGFyZUZvclRleHRFZGl0KCk7CisKKyAgICAgICAgaWYgKG5ld1RleHQgPT0gbnVsbCkgeworICAgICAgICAgICAgdGV4dExlbmd0aCA9IDA7CisgICAgICAgICAgICBmVGV4dC5yZW1vdmUoc3RhcnQsIGxpbWl0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRleHRMZW5ndGggPSBuZXdUZXh0Lmxlbmd0aCgpOworICAgICAgICAgICAgZlRleHQucmVwbGFjZShzdGFydCwgbGltaXQsIG5ld1RleHQsIDAsIHRleHRMZW5ndGgpOworICAgICAgICB9CisgICAgICAgIGZTZWxlY3Rpb24uc2V0U2VsZWN0aW9uUmFuZ2UobmV3U2VsU3RhcnQsIG5ld1NlbEVuZCwgbmV3U2VsU3RhcnQpOworICAgICAgICByZWZvcm1hdEFuZERyYXdUZXh0KGZTZWxlY3Rpb24uZ2V0U3RhcnQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2VsZWN0aW9uLmdldEVuZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFNlbFJlY3QpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE9ubHkgdGhlIHR5cGluZyBpbnRlcmFjdG9yIHNob3VsZCBjYWxsIHRoaXMhCisgICAgICovCisgICAgdm9pZCBkb1JlcGxhY2VTZWxlY3RlZFRleHQoY2hhciBjaCwgQXR0cmlidXRlTWFwIGNoYXJTdHlsZSkgeworCisgICAgICAgIGludCBzdGFydCA9IGZTZWxlY3Rpb24uZ2V0U3RhcnQoKS5mT2Zmc2V0OworICAgICAgICBpbnQgbGltaXQgPSBmU2VsZWN0aW9uLmdldEVuZCgpLmZPZmZzZXQ7CisgICAgICAgIFRleHRPZmZzZXQgbmV3T2Zmc2V0ID0gbmV3IFRleHRPZmZzZXQoc3RhcnQgKyAxKTsKKyAgICAgICAgZG9SZXBsYWNlVGV4dChzdGFydCwgbGltaXQsIGNoLCBjaGFyU3R5bGUsIG5ld09mZnNldCwgbmV3T2Zmc2V0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9SZXBsYWNlVGV4dChpbnQgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgY2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlTWFwIGNoYXJTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG5ld1NlbFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgbmV3U2VsRW5kKSB7CisKKyAgICAgICAgZlRleHQucmVzZXREYW1hZ2VkUmFuZ2UoKTsKKworICAgICAgICBSZWN0YW5nbGUgb2xkU2VsUmVjdCA9IHByZXBhcmVGb3JUZXh0RWRpdCgpOworCisgICAgICAgIGZUZXh0LnJlcGxhY2Uoc3RhcnQsIGxpbWl0LCBjaCwgY2hhclN0eWxlKTsKKworICAgICAgICBmU2VsZWN0aW9uLnNldFNlbGVjdGlvblJhbmdlKG5ld1NlbFN0YXJ0LCBuZXdTZWxFbmQsIG5ld1NlbFN0YXJ0KTsKKyAgICAgICAgcmVmb3JtYXRBbmREcmF3VGV4dChmU2VsZWN0aW9uLmdldFN0YXJ0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNlbGVjdGlvbi5nZXRFbmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRTZWxSZWN0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9TdHlsZUNoYW5nZShCZWhhdmlvci5FdmVudFR5cGUgZXZlbnQsIE9iamVjdCB3aGF0KSB7CisKKyAgICAgICAgVGV4dFJhbmdlIHNlbFJhbmdlID0gZlNlbGVjdGlvbi5nZXRTZWxlY3Rpb25SYW5nZSgpOworICAgICAgICBib29sZWFuIGNoYXJhY3RlciA9IChldmVudCA9PSBCZWhhdmlvci5DSEFSQUNURVJfU1RZTEVfTU9EKTsKKworICAgICAgICBpZiAoc2VsUmFuZ2Uuc3RhcnQgIT0gc2VsUmFuZ2UubGltaXQgfHwgIWNoYXJhY3RlcikgeworICAgICAgICAgICAgZG9VbmRvYWJsZVN0eWxlQ2hhbmdlKHdoYXQsIGNoYXJhY3Rlcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBUeXBpbmdJbnRlcmFjdG9yIGludGVyYWN0b3IgPQorICAgICAgICAgICAgICAgIG5ldyBUeXBpbmdJbnRlcmFjdG9yKGZUZXh0Q29tcG9uZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2VsZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTYXZlZFR5cGluZ1N0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkNvbW1hbmRMb2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkxpc3RlbmVyKTsKKworICAgICAgICAgICAgaW50ZXJhY3Rvci5hZGRUb093bmVyKGZUZXh0Q29tcG9uZW50KTsKKyAgICAgICAgICAgIGludGVyYWN0b3IudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKGV2ZW50LCB3aGF0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIE9ubHkgdGV4dCBjb21tYW5kcyBzaG91bGQgY2FsbCB0aGlzIG1ldGhvZCEKKyAgICAgKi8KKyAgICB2b2lkIGRvTW9kaWZ5U3R5bGVzKGludCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgbmV3U2VsU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG5ld1NlbEVuZCkgeworCisgICAgICAgIGZUZXh0LnJlc2V0RGFtYWdlZFJhbmdlKCk7CisKKyAgICAgICAgUmVjdGFuZ2xlIG9sZFNlbFJlY3QgPSBwcmVwYXJlRm9yVGV4dEVkaXQoKTsKKworICAgICAgICBpZiAoY2hhcmFjdGVyKSB7CisgICAgICAgICAgICBmVGV4dC5tb2RpZnlDaGFyYWN0ZXJTdHlsZXMoc3RhcnQsIGxpbWl0LCBtb2RpZmllcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmVGV4dC5tb2RpZnlQYXJhZ3JhcGhTdHlsZXMoc3RhcnQsIGxpbWl0LCBtb2RpZmllcik7CisgICAgICAgIH0KKworICAgICAgICBmU2VsZWN0aW9uLnNldFNlbGVjdGlvblJhbmdlKG5ld1NlbFN0YXJ0LCBuZXdTZWxFbmQsIG5ld1NlbFN0YXJ0KTsKKyAgICAgICAgcmVmb3JtYXRBbmREcmF3VGV4dChuZXdTZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTZWxFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkU2VsUmVjdCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvVW5kb2FibGVTdHlsZUNoYW5nZShPYmplY3Qgd2hhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyKSB7CisKKyAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCA9IGZTZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICAgICAgVGV4dE9mZnNldCBzZWxFbmQgPSBmU2VsZWN0aW9uLmdldEVuZCgpOworCisgICAgICAgIE1UZXh0IG9sZFRleHQgPSBmVGV4dC5leHRyYWN0V3JpdGFibGUoc2VsU3RhcnQuZk9mZnNldCwgc2VsRW5kLmZPZmZzZXQpOworICAgICAgICBTdHlsZUNoYW5nZUNvbW1hbmQgY29tbWFuZCA9IG5ldyBTdHlsZUNoYW5nZUNvbW1hbmQoCisgICAgICAgICAgICAgICAgdGhpcywgb2xkVGV4dCwgc2VsU3RhcnQsIHNlbEVuZCwgKFN0eWxlTW9kaWZpZXIpIHdoYXQsIGNoYXJhY3Rlcik7CisKKyAgICAgICAgZkNvbW1hbmRMb2cuYWRkQW5kRG8oY29tbWFuZCk7CisKKyAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEKTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9VbmRvYWJsZVRleHRDaGFuZ2UoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgbmV3VGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTZWxFbmQpIHsKKworICAgICAgICBUZXh0Q2hhbmdlQ29tbWFuZCBjb21tYW5kID0gbmV3IFRleHRDaGFuZ2VDb21tYW5kKHRoaXMsIGZUZXh0LmV4dHJhY3RXcml0YWJsZShzdGFydCwgbGltaXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdUZXh0LCBzdGFydCwgZlNlbGVjdGlvbi5nZXRTdGFydCgpLCBmU2VsZWN0aW9uLmdldEVuZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTZWxTdGFydCwgbmV3U2VsRW5kKTsKKworICAgICAgICBmQ29tbWFuZExvZy5hZGRBbmREbyhjb21tYW5kKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5VbmRvKCkgeworCisgICAgICAgIGJvb2xlYW4gY2FuVW5kbyA9IGZhbHNlOworCisgICAgICAgIGlmIChmVHlwaW5nSW50ZXJhY3RvciAhPSBudWxsKSB7CisgICAgICAgICAgICBjYW5VbmRvID0gZlR5cGluZ0ludGVyYWN0b3IuaGFzUGVuZGluZ0NvbW1hbmQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghY2FuVW5kbykgeworICAgICAgICAgICAgY2FuVW5kbyA9IGZDb21tYW5kTG9nLmNhblVuZG8oKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjYW5VbmRvOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGNhblJlZG8oKSB7CisKKyAgICAgICAgcmV0dXJuIGZDb21tYW5kTG9nLmNhblJlZG8oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBpc01vZGlmaWVkKCkgeworCisgICAgICAgIGlmIChmVHlwaW5nSW50ZXJhY3RvciAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAoZlR5cGluZ0ludGVyYWN0b3IuaGFzUGVuZGluZ0NvbW1hbmQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmQ29tbWFuZExvZy5pc01vZGlmaWVkKCk7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXRDb21tYW5kTG9nU2l6ZSgpIHsKKworICAgICAgICByZXR1cm4gZkNvbW1hbmRMb2cuZ2V0TG9nU2l6ZSgpOworICAgIH0KKworICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgZ2V0SW5zZXJ0aW9uUG9pbnRTdHlsZSgpIHsKKworICAgICAgICBpZiAoZlR5cGluZ0ludGVyYWN0b3IgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZUeXBpbmdJbnRlcmFjdG9yLmdldFR5cGluZ1N0eWxlKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZlNhdmVkVHlwaW5nU3R5bGUgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZTYXZlZFR5cGluZ1N0eWxlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBUZXh0UmFuZ2UgcmFuZ2UgPSBmU2VsZWN0aW9uLmdldFNlbGVjdGlvblJhbmdlKCk7CisgICAgICAgIHJldHVybiB0eXBpbmdTdHlsZUF0KGZUZXh0LCByYW5nZS5zdGFydCwgcmFuZ2UubGltaXQpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlQcmVzc2VkKEtleUV2ZW50IGUpIHsKKworICAgICAgICBib29sZWFuIGhhbmRsZWQgPSB0cnVlOworICAgICAgICBpZiAoVHlwaW5nSW50ZXJhY3Rvci5oYW5kbGVkQnlUeXBpbmdJbnRlcmFjdG9yKGUpKSB7CisgICAgICAgICAgICBUeXBpbmdJbnRlcmFjdG9yIGludGVyYWN0b3IgPSBuZXcgVHlwaW5nSW50ZXJhY3RvcihmVGV4dENvbXBvbmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTZWxlY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2F2ZWRUeXBpbmdTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmQ29tbWFuZExvZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZMaXN0ZW5lcik7CisKKyAgICAgICAgICAgIGludGVyYWN0b3IuYWRkVG9Pd25lcihmVGV4dENvbXBvbmVudCk7CisgICAgICAgICAgICBpbnRlcmFjdG9yLmtleVByZXNzZWQoZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBoYW5kbGVkID0gc3VwZXIua2V5UHJlc3NlZChlKTsKKyAgICAgICAgICAgIGNoZWNrU2F2ZWRUeXBpbmdTdHlsZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gaGFuZGxlZDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBrZXlUeXBlZChLZXlFdmVudCBlKSB7CisgICAgICAgIAorICAgICAgICBib29sZWFuIGhhbmRsZWQgPSB0cnVlOworICAgICAgICBpZiAoVHlwaW5nSW50ZXJhY3Rvci5oYW5kbGVkQnlUeXBpbmdJbnRlcmFjdG9yKGUpKSB7CisgICAgICAgICAgICBUeXBpbmdJbnRlcmFjdG9yIGludGVyYWN0b3IgPSBuZXcgVHlwaW5nSW50ZXJhY3RvcihmVGV4dENvbXBvbmVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU2VsZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlNhdmVkVHlwaW5nU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZkNvbW1hbmRMb2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmTGlzdGVuZXIpOworCisgICAgICAgICAgICBpbnRlcmFjdG9yLmFkZFRvT3duZXIoZlRleHRDb21wb25lbnQpOworICAgICAgICAgICAgaW50ZXJhY3Rvci5rZXlUeXBlZChlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGhhbmRsZWQgPSBzdXBlci5rZXlUeXBlZChlKTsKKyAgICAgICAgICAgIGNoZWNrU2F2ZWRUeXBpbmdTdHlsZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gaGFuZGxlZDsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZVJlbGVhc2VkKE1vdXNlRXZlbnQgZSkgeworICAgICAgICAKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSBzdXBlci5tb3VzZVJlbGVhc2VkKGUpOworICAgICAgICBjaGVja1NhdmVkVHlwaW5nU3R5bGUoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlZm9ybWF0QW5kRHJhd1RleHQoVGV4dE9mZnNldCBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHNlbExpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlY3RhbmdsZSBvbGRTZWxSZWN0KQorICAgIHsKKyAgICAgICAgaWYgKCFmU2VsZWN0aW9uLmVuYWJsZWQoKSkgeworICAgICAgICAgICAgc2VsU3RhcnQgPSBzZWxMaW1pdCA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICBpbnQgcmVmb3JtYXRTdGFydCA9IGZUZXh0LmRhbWFnZWRSYW5nZVN0YXJ0KCk7CisgICAgICAgIGludCByZWZvcm1hdExlbmd0aCA9IGZUZXh0LmRhbWFnZWRSYW5nZUxpbWl0KCkgLSByZWZvcm1hdFN0YXJ0OworCisgICAgICAgIGlmIChyZWZvcm1hdFN0YXJ0ICE9IEludGVnZXIuTUFYX1ZBTFVFKSB7CisgICAgICAgICAgICBmVGV4dENvbXBvbmVudC5yZWZvcm1hdEFuZERyYXdUZXh0KHJlZm9ybWF0U3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZm9ybWF0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFNlbFJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTZWxlY3Rpb24uZ2V0SGlnaGxpZ2h0Q29sb3IoKSk7CisgICAgICAgIH0KKworICAgICAgICBmU2VsZWN0aW9uLnNjcm9sbFRvU2hvd1NlbGVjdGlvbigpOworICAgICAgICAKKyAgICAgICAgLy8gc29tZXRpbWVzIHRoaXMgc2hvdWxkIHNlbmQgU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VECisgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlRFWFRfQ0hBTkdFRCk7CisKKyAgICAgICAgZlNlbGVjdGlvbi5yZXN0YXJ0Q2FyZXRCbGlua2luZyh0cnVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPbmx5IFR5cGluZ0ludGVyYWN0b3Igc2hvdWxkIGNhbGwgdGhpcy4KKyAgICAgKi8KKyAgICB2b2lkIHNldFR5cGluZ0ludGVyYWN0b3IoVHlwaW5nSW50ZXJhY3RvciBpbnRlcmFjdG9yKSB7CisgICAgICAgIGZUeXBpbmdJbnRlcmFjdG9yID0gaW50ZXJhY3RvcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBPbmx5IFR5cGluZ0ludGVyYWN0b3Igc2hvdWxkIGNhbGwgdGhpcy4KKyAgICAgKi8KKyAgICB2b2lkIHNldFNhdmVkVHlwaW5nU3R5bGUoQXR0cmlidXRlTWFwIHN0eWxlLCBpbnQgaW5zUHQpIHsKKyAgICAKKyAgICAgICAgZlNhdmVkVHlwaW5nU3R5bGUgPSBzdHlsZTsKKyAgICAgICAgZlNhdmVkSW5zUHQgPSBpbnNQdDsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNoZWNrU2F2ZWRUeXBpbmdTdHlsZSgpIHsKKyAgICAKKyAgICAgICAgaWYgKGZTYXZlZFR5cGluZ1N0eWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGludCBzZWxTdGFydCA9IGZTZWxlY3Rpb24uZ2V0U3RhcnQoKS5mT2Zmc2V0OworICAgICAgICAgICAgaW50IHNlbExpbWl0ID0gZlNlbGVjdGlvbi5nZXRFbmQoKS5mT2Zmc2V0OworICAgICAgICAgICAgaWYgKHNlbFN0YXJ0ICE9IGZTYXZlZEluc1B0IHx8IHNlbFN0YXJ0ICE9IHNlbExpbWl0KSB7CisgICAgICAgICAgICAgICAgZlNhdmVkVHlwaW5nU3R5bGUgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9ICAgICAgICAgICAgCisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc3R5bGUgYXBwcm9wcmlhdGUgZm9yIHR5cGluZyBvbiB0aGUgZ2l2ZW4gc2VsZWN0aW9uCisgICAgICogcmFuZ2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBBdHRyaWJ1dGVNYXAgdHlwaW5nU3R5bGVBdChNQ29uc3RUZXh0IHRleHQsIGludCBzdGFydCwgaW50IGxpbWl0KSB7CisKKyAgICAgICAgaWYgKHN0YXJ0IDwgbGltaXQpIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0LmNoYXJhY3RlclN0eWxlQXQoc3RhcnQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKHN0YXJ0ID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIHRleHQuY2hhcmFjdGVyU3R5bGVBdChzdGFydCAtIDEpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRleHQuY2hhcmFjdGVyU3R5bGVBdCgwKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44OTZmYTQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbC5qYXZhCkBAIC0wLDAgKzEsNTQwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkJvcmRlckxheW91dDsKK2ltcG9ydCBqYXZhLmF3dC5Db21wb25lbnQ7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuUGFuZWw7CitpbXBvcnQgamF2YS5hd3QuU2Nyb2xsYmFyOworCitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkNsaXBib2FyZDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5NQ29uc3RUZXh0OworCisvKioKKyAqIFRleHRQYW5lbCBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBNVGV4dFBhbmVsIGluIGFuIEFXVCBQYW5lbC4KKyAqIEBzZWUgTVRleHRQYW5lbAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVGV4dFBhbmVsIGV4dGVuZHMgUGFuZWwgaW1wbGVtZW50cyBNVGV4dFBhbmVsIHsKKworICAgIHByaXZhdGUgQVRleHRQYW5lbEltcGwgZkltcGw7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgVGV4dFBhbmVsU2V0dGluZ3MgaW5zdGFuY2Ugd2l0aCBhbGwgc2V0dGluZ3Mgc2V0CisgICAgICogdG8gdGhlIGRlZmF1bHQgdmFsdWVzLiAgQ2xpZW50cyBjYW4gbW9kaWZ5IHRoaXMgb2JqZWN0OworICAgICAqIG1vZGlmaWNhdGlvbnMgd2lsbCBub3QgYWZmZWN0IHRoZSBkZWZhdWx0IHZhbHVlcy4KKyAgICAgKiBAcmV0dXJuIGEgVGV4dFBhbmVsU2V0dGluZ3MgaW5zdGFuY2Ugc2V0IHRvIGRlZmF1bHQgdmFsdWVzCisgICAgICogQHNlZSBUZXh0UGFuZWxTZXR0aW5ncworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgVGV4dFBhbmVsU2V0dGluZ3MgZ2V0RGVmYXVsdFNldHRpbmdzKCkgeworCisgICAgICAgIHJldHVybiBBVGV4dFBhbmVsSW1wbC5nZXREZWZhdWx0U2V0dGluZ3MoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgVGV4dFBhbmVsIHdpdGggdGhlIGRlZmF1bHQgc2V0dGluZ3MuCisgICAgICogQHBhcmFtIGluaXRpYWxUZXh0IHRoZSB0ZXh0IGRvY3VtZW50LiAgSWYgbnVsbCBkb2N1bWVudCB0ZXh0IGlzIGVtcHR5LgorICAgICAqIEBwYXJhbSBjbGlwYm9hcmQgdGhlIGNsaXBib2FyZCB0byB1c2UgZm9yIGN1dCwgY29weSwgYW5kIHBhc3RlCisgICAgICogIG9wZXJhdGlvbnMuICBJZiBudWxsIHRoaXMgcGFuZWwgd2lsbCB1c2UgYSBwcml2YXRlIGNsaXBib2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGV4dFBhbmVsKE1Db25zdFRleHQgaW5pdGlhbFRleHQsCisgICAgICAgICAgICAgICAgICAgICBDbGlwYm9hcmQgY2xpcGJvYXJkKSB7CisKKyAgICAgICAgdGhpcyhBVGV4dFBhbmVsSW1wbC5mZ0RlZmF1bHRTZXR0aW5ncywgaW5pdGlhbFRleHQsIGNsaXBib2FyZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgbmV3IFRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gc2V0dGluZ3MgdGhlIHNldHRpbmdzIGZvciB0aGlzIFRleHRQYW5lbAorICAgICAqIEBwYXJhbSBpbml0aWFsVGV4dCB0aGUgdGV4dCBkb2N1bWVudC4gIElmIG51bGwgZG9jdW1lbnQgdGV4dCBpcyBlbXB0eS4KKyAgICAgKiBAcGFyYW0gY2xpcGJvYXJkIHRoZSBjbGlwYm9hcmQgdG8gdXNlIGZvciBjdXQsIGNvcHksIGFuZCBwYXN0ZQorICAgICAqICBvcGVyYXRpb25zLiAgSWYgbnVsbCB0aGlzIHBhbmVsIHdpbGwgdXNlIGEgcHJpdmF0ZSBjbGlwYm9hcmQuCisgICAgICogQHNlZSBUZXh0UGFuZWxTZXR0aW5ncworICAgICAqLworICAgIHB1YmxpYyBUZXh0UGFuZWwoVGV4dFBhbmVsU2V0dGluZ3Mgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICBNQ29uc3RUZXh0IGluaXRpYWxUZXh0LAorICAgICAgICAgICAgICAgICAgICAgQ2xpcGJvYXJkIGNsaXBib2FyZCkgeworCisgICAgICAgIFNjcm9sbGJhciBob3J6U2IgPSBudWxsOworICAgICAgICBTY3JvbGxiYXIgdmVydFNiID0gbnVsbDsKKyAgICAgICAgCisgICAgICAgIGlmIChzZXR0aW5ncy5nZXRTY3JvbGxhYmxlKCkpIHsKKworICAgICAgICAgICAgc2V0TGF5b3V0KG5ldyBTY3JvbGxCYXJMYXlvdXQoKSk7CisKKyAgICAgICAgICAgIGJvb2xlYW4gc2Nyb2xsQmFyc1Zpc2libGUgPSBzZXR0aW5ncy5nZXRTY3JvbGxCYXJzVmlzaWJsZSgpOworCisgICAgICAgICAgICBpZiAoc2Nyb2xsQmFyc1Zpc2libGUpIHsKKyAgICAgICAgICAgICAgICBob3J6U2IgPSBuZXcgU2Nyb2xsYmFyKFNjcm9sbGJhci5IT1JJWk9OVEFMKTsKKyAgICAgICAgICAgICAgICB2ZXJ0U2IgPSBuZXcgU2Nyb2xsYmFyKFNjcm9sbGJhci5WRVJUSUNBTCk7CisgICAgICAgICAgICAgICAgYWRkKCJTb3V0aCIsIGhvcnpTYik7CisgICAgICAgICAgICAgICAgYWRkKCJFYXN0IiwgdmVydFNiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHNldExheW91dChuZXcgQm9yZGVyTGF5b3V0KCkpOworICAgICAgICB9CisKKyAgICAgICAgZkltcGwgPSBuZXcgQVRleHRQYW5lbEltcGwobmV3IFJ1blN0cmF0ZWd5KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcGJvYXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3J6U2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRTYik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBmaW5hbCBGYWtlQ29tcG9uZW50IHRleHRDb21wb25lbnQgPSBmSW1wbC5nZXRUZXh0Q29tcG9uZW50KCk7CisgICAgICAgIAorICAgICAgICBDb21wb25lbnQgdGV4dEhvc3QgPSBuZXcgQ29tcG9uZW50KCkgeworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRleHRDb21wb25lbnQuc2V0SG9zdCh0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGFkZE5vdGlmeSgpIHsKKyAgICAgICAgICAgICAgICBzdXBlci5hZGROb3RpZnkoKTsKKyAgICAgICAgICAgICAgICB0ZXh0Q29tcG9uZW50LmFkZE5vdGlmeSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVibGljIHZvaWQgcGFpbnQoR3JhcGhpY3MgZykgeworICAgICAgICAgICAgICAgIHRleHRDb21wb25lbnQucGFpbnQoZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBhZGQoIkNlbnRlciIsIHRleHRIb3N0KTsKKworICAgICAgICB0ZXh0SG9zdC5yZXF1ZXN0Rm9jdXMoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgdGhlIGdpdmVuIFRleHRQYW5lbExpc3RlbmVyIHRvIHRoZSBsaXN0ZW5lcnMgd2hpY2ggd2lsbAorICAgICAqIHJlY2VpdmUgdXBkYXRlIG5vdGlmaWNhdGlvbnMgZnJvbSB0aGlzIFRleHRQYW5lbC4KKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgdGhlIGxpc3RlbmVyIHRvIGFkZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZExpc3RlbmVyKFRleHRQYW5lbExpc3RlbmVyIGxpc3RlbmVyKSB7CisKKyAgICAgICAgZkltcGwuYWRkTGlzdGVuZXIobGlzdGVuZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgZ2l2ZW4gVGV4dFBhbmVsTGlzdGVuZXIgZnJvbSB0aGUgbGlzdGVuZXJzIHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIHVwZGF0ZSBub3RpZmljYXRpb25zIGZyb20gdGhpcyBUZXh0UGFuZWwuCisgICAgICogQHBhcmFtIGxpc3RlbmVyIHRoZSBsaXN0ZW5lciB0byByZW1vdmUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZW1vdmVMaXN0ZW5lcihUZXh0UGFuZWxMaXN0ZW5lciBsaXN0ZW5lcikgeworCisgICAgICAgIGZJbXBsLnJlbW92ZUxpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICB9CisKKy8vPT09PT09PT09PT09CisvLyBUZXh0IEFjY2VzcworLy89PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZG9jdW1lbnQgdG8gPHR0Pm5ld1RleHQ8L3R0Pi4gIFRoaXMgb3BlcmF0aW9uCisgICAgICogbW9kaWZpZXMgdGhlIHRleHQgaW4gdGhlIFRleHRQYW5lbC4gIEl0IGRvZXMgbm90IG1vZGlmeSBvciBhZG9wdAorICAgICAqIDx0dD5uZXdUZXh0PC90dD4uICBUaGlzIG1ldGhvZCBzZXRzIHRoZSBzZWxlY3Rpb24gYW4gaW5zZXJ0aW9uIHBvaW50IGF0CisgICAgICogdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCB0aGUgdGV4dCB3aGljaCB3aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgdGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUZXh0KE1Db25zdFRleHQgbmV3VGV4dCkgeworCisgICAgICAgIGZJbXBsLnNldFRleHQobmV3VGV4dCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQXBwZW5kIHRoZSBnaXZlbiB0ZXh0IHRvIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50LiAgRXF1aXZhbGVudCB0bworICAgICAqIDx0dD5pbnNlcnQobmV3VGV4dCwgZ2V0VGV4dExlbmd0aCgpKTwvdHQ+LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHRvIGFwcGVuZCB0byB0aGUgZG9jdW1lbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhcHBlbmQoTUNvbnN0VGV4dCBuZXdUZXh0KSB7CisKKyAgICAgICAgZkltcGwuYXBwZW5kKG5ld1RleHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluc2VydCB0aGUgZ2l2ZW4gdGV4dCBpbnRvIHRoZSBkb2N1bWVudCBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uCisgICAgICogRXF1aXZhbGVudCB0bworICAgICAqIDx0dD5yZXBsYWNlUmFuZ2UobmV3VGV4dCwgcG9zaXRpb24sIHBvc2l0aW9uKTwvdHQ+LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IHRoZSB0ZXh0IHRvIGluc2VydCBpbnRvIHRoZSBkb2N1bWVudC4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIGluIHRoZSBkb2N1bWVudCB3aGVyZSB0aGUKKyAgICAgKiAgICAgdGV4dCB3aWxsIGJlIGluc2VydGVkCisgICAgICovCisgICAgcHVibGljIHZvaWQgaW5zZXJ0KE1Db25zdFRleHQgbmV3VGV4dCwgaW50IHBvc2l0aW9uKSB7CisKKyAgICAgICAgZkltcGwuaW5zZXJ0KG5ld1RleHQsIHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHRoZSBnaXZlbiByYW5nZSB3aXRoIDx0dD5uZXdUZXh0PC90dD4uICBBZnRlciB0aGlzCisgICAgICogb3BlcmF0aW9uIHRoZSBzZWxlY3Rpb24gcmFuZ2UgaXMgYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZQorICAgICAqIGVuZCBvZiB0aGUgbmV3IHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgdGhlIHRleHQgd2l0aCB3aGljaCB0byByZXBsYWNlIHRoZSByYW5nZQorICAgICAqIEBwYXJhbSBzdGFydCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByYW5nZSB0byByZXBsYWNlCisgICAgICogQHBhcmFtIGVuZCB0aGUgZW5kIG9mIHRoZSByYW5nZSB0byByZXBsYWNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVwbGFjZVJhbmdlKE1Db25zdFRleHQgbmV3VGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKSB7CisKKyAgICAgICAgZkltcGwucmVwbGFjZVJhbmdlKG5ld1RleHQsIHN0YXJ0LCBlbmQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBUZXh0UGFuZWwuCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBUZXh0UGFuZWwKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFRleHRMZW5ndGgoKSB7CisKKyAgICAgICAgcmV0dXJuIGZJbXBsLmdldFRleHRMZW5ndGgoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRleHQgZG9jdW1lbnQgaW4gdGhlIFRleHRQYW5lbC4KKyAgICAgKiBAcmV0dXJuIHRoZSB0ZXh0IGRvY3VtZW50IGluIHRoZSBUZXh0UGFuZWwuCisgICAgICovCisgICAgcHVibGljIE1Db25zdFRleHQgZ2V0VGV4dCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0VGV4dCgpOworICAgIH0KKworLy89PT09PT09PT09PT0KKy8vIFNlbGVjdGlvbiBBY2Nlc3MKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG9mZnNldCBvZiB0aGUgc3RhcnQgb2YgdGhlIHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvblN0YXJ0KCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgb2Zmc2V0IG9mIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldFNlbGVjdGlvbkVuZCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0U2VsZWN0aW9uRW5kKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIDx0dD5zZWxlY3Qoc2VsZWN0aW9uU3RhcnQsIGdldFNlbGVjdGlvbkVuZCgpKTwvdHQ+LgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25TdGFydCB0aGUgc3RhcnQgb2YgdGhlIG5ldyBzZWxlY3Rpb24gcmFuZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3Rpb25TdGFydChpbnQgc2VsZWN0aW9uU3RhcnQpIHsKKworICAgICAgICBmSW1wbC5zZXRTZWxlY3Rpb25TdGFydChzZWxlY3Rpb25TdGFydCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbiByYW5nZS4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIDx0dD5zZWxlY3QoZ2V0U2VsZWN0aW9uU3RhcnQoKSwgc2VsZWN0aW9uRW5kKTwvdHQ+LgorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25FbmQgdGhlIGVuZCBvZiB0aGUgbmV3IHNlbGVjdGlvbiByYW5nZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlbGVjdGlvbkVuZChpbnQgc2VsZWN0aW9uRW5kKSB7CisKKyAgICAgICAgZkltcGwuc2V0U2VsZWN0aW9uRW5kKHNlbGVjdGlvbkVuZCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzZWxlY3Rpb24gcmFuZ2UgdG8gYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZSBnaXZlbgorICAgICAqIG9mZnNldC4gIFRoaXMgaXMgZXF1aXZhbGVudCB0bworICAgICAqIDx0dD5zZWxlY3QocG9zaXRpb24sIHBvc2l0aW9uKTwvdHQ+LgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgb2Zmc2V0IG9mIHRoZSBuZXcgaW5zZXJ0aW9uIHBvaW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2FyZXRQb3NpdGlvbihpbnQgcG9zaXRpb24pIHsKKworICAgICAgICBmSW1wbC5zZXRDYXJldFBvc2l0aW9uKHBvc2l0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGlvbiByYW5nZSB0byB0aGUgZ2l2ZW4gcmFuZ2UuICBUaGUgcmFuZ2Ugc3RhcnQKKyAgICAgKiBpcyBwaW5uZWQgYmV0d2VlbiAwIGFuZCB0aGUgdGV4dCBsZW5ndGg7ICB0aGUgcmFuZ2UgZW5kIGlzIHBpbm5lZAorICAgICAqIGJldHdlZW4gdGhlIHJhbmdlIHN0YXJ0IGFuZCB0aGUgZW5kIG9mIHRoZSB0ZXh0LiAgVGhlc2Ugc2VtYW50aWNzCisgICAgICogYXJlIGlkZW50aWNhbCB0byB0aG9zZSBvZiA8dHQ+amF2YS5hd3QuVGV4dENvbXBvbmVudDwvdHQ+LgorICAgICAqIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYgdGhlIHRleHQgaXMgbm90IHNlbGVjdGFibGUuCisgICAgICogQHBhcmFtIHNlbGVjdGlvblN0YXJ0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiByYW5nZQorICAgICAqIEBwYXJhbSBzZWxlY3Rpb25FbmQgdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2VsZWN0KGludCBzZWxlY3Rpb25TdGFydCwgaW50IHNlbGVjdGlvbkVuZCkgeworCisgICAgICAgIGZJbXBsLnNlbGVjdChzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZWxlY3QgYWxsIG9mIHRoZSB0ZXh0IGluIHRoZSBkb2N1bWVudC4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGUgdGV4dCBpcyBub3Qgc2VsZWN0YWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZWxlY3RBbGwoKSB7CisKKyAgICAgICAgZkltcGwuc2VsZWN0QWxsKCk7CisgICAgfQorCisKKy8vPT09PT09PT09PT09CisvLyBGb3JtYXQgV2lkdGgKKy8vPT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHRvdGFsIGZvcm1hdCB3aWR0aCwgaW4gcGl4ZWxzLiAgVGhlIGZvcm1hdCB3aWR0aCBpcyB0aGUKKyAgICAgKiB3aWR0aCB0byB3aGljaCB0ZXh0IGlzIHdyYXBwZWQuCisgICAgICogQHJldHVybiB0aGUgZm9ybWF0IHdpZHRoCisgICAgICovCisgICAgcHVibGljIGludCBnZXRGb3JtYXRXaWR0aCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0Rm9ybWF0V2lkdGgoKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHBhcmFncmFwaCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGlzIGxlZnQtdG8tcmlnaHQuCisgICAgICogQHBhcmFtIG9mZnNldCBhbiBvZmZzZXQgaW4gdGhlIHRleHQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHBhcmFncmFwaCBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGlzIGxlZnQtdG8tcmlnaHQKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBwYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KGludCBvZmZzZXQpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmSW1wbC5wYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KG9mZnNldCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHVuZG9uZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHVuZG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5VbmRvKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5jYW5VbmRvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHJlZG9uZS4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYSBjaGFuZ2Ugd2hpY2ggY2FuIGJlIHJlZG9uZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBjYW5SZWRvKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5jYW5SZWRvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNsaXBib2FyZCBjb250YWlucyBjb250ZW50cyB3aGljaCBjb3VsZCBiZQorICAgICAqIHRyYW5zZmVyZWQgaW50byB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNsaXBib2FyZCBoYXMgdGV4dCBjb250ZW50LgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGNsaXBib2FyZE5vdEVtcHR5KCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5jbGlwYm9hcmROb3RFbXB0eSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBBdHRyaWJ1dGVNYXAgb2Yga2V5cyB3aXRoIGRlZmF1bHQgdmFsdWVzLiAgVGhlIGRlZmF1bHQKKyAgICAgKiB2YWx1ZXMgYXJlIHVzZWQgd2hlbiBkaXNwbGF5aW5nIHRleHQgZm9yIHZhbHVlcyB3aGljaCBhcmUgbm90CisgICAgICogc3BlY2lmaWVkIGluIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gYW4gQXR0cmlidXRlTWFwIG9mIGRlZmF1bHQga2V5LXZhbHVlIHBhaXJzCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBnZXREZWZhdWx0VmFsdWVzKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaW5zcGVjdHMgdGhlIGNoYXJhY3RlciBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZSAob3IgdGhlIHR5cGluZyBzdHlsZSBhdCB0aGUgaW5zZXJ0aW9uIHBvaW50KS4gIEl0IHJldHVybnM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5UaGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+LCBpZiB0aGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+CisgICAgICogaXMgdGhlIHNhbWUgaW4gYWxsIG9mIHRoZSBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24sIG9yPC9saT4KKyAgICAgKiA8bGk+PHR0Pk1VTFRJUExFX1ZBTFVFUzwvdHQ+LCBpZiB0d28gb3IgbW9yZSBzdHlsZSBydW5zIGhhdmUgZGlmZmVyZW50IAorICAgICAqIHZhbHVlcyBmb3IgPHR0PmtleTwvdHQ+LjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKiBJZiBhIHN0eWxlIHJ1biBkb2VzIG5vdCBjb250YWluIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBpdHMgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgZGVmYXVsdCBzdHlsZSBmb3IgPHR0PmtleTwvdHQ+LAorICAgICAqIGFzIGRlZmluZWQgYnkgdGhlIGRlZmF1bHQgdmFsdWVzIEF0dHJpYnV0ZU1hcC4gIE5vdGUgdGhhdCBpZgorICAgICAqIDx0dD5rZXk8L3R0PiBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuCisgICAgICogbnVsbC4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBzZWUgTVRleHRQYW5lbCNNVUxUSVBMRV9WQUxVRVMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihPYmplY3Qga2V5KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uKGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaW5zcGVjdHMgdGhlIHBhcmFncmFwaCBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZSAob3IgdGhlIHR5cGluZyBzdHlsZSBhdCB0aGUgaW5zZXJ0aW9uIHBvaW50KS4gIEl0IHJldHVybnM6CisgICAgICogPHVsPgorICAgICAqIDxsaT5UaGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+LCBpZiB0aGUgdmFsdWUgb2YgPHR0PmtleTwvdHQ+CisgICAgICogaXMgdGhlIHNhbWUgaW4gYWxsIG9mIHRoZSBzdHlsZSBydW5zIGluIHRoZSBzZWxlY3Rpb24sIG9yPC9saT4KKyAgICAgKiA8bGk+PHR0Pk1VTFRJUExFX1ZBTFVFUzwvdHQ+LCBpZiB0d28gb3IgbW9yZSBzdHlsZSBydW5zIGhhdmUgCisgICAgICogZGlmZmVyZW50IHZhbHVlcyBmb3IgPHR0PmtleTwvdHQ+LjwvbGk+CisgICAgICogPC91bD4KKyAgICAgKiBJZiBhIHN0eWxlIHJ1biBkb2VzIG5vdCBjb250YWluIDx0dD5rZXk8L3R0PiwKKyAgICAgKiBpdHMgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgZGVmYXVsdCBzdHlsZSBmb3IgPHR0PmtleTwvdHQ+LAorICAgICAqIGFzIGRlZmluZWQgYnkgdGhlIGRlZmF1bHQgdmFsdWVzIEF0dHJpYnV0ZU1hcC4gIE5vdGUgdGhhdCBpZgorICAgICAqIDx0dD5rZXk8L3R0PiBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCB2YWx1ZSB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuCisgICAgICogbnVsbC4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIHN0eWxlIG1lbnVzLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIGtleSB1c2VkIHRvIHJldHJpZXZlIHZhbHVlcyBmb3IgY29tcGFyaXNvbgorICAgICAqIEBzZWUgTVRleHRQYW5lbCNNVUxUSVBMRV9WQUxVRVMKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldFBhcmFncmFwaFN0eWxlT3ZlclNlbGVjdGlvbihPYmplY3Qga2V5KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGwuZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKGtleSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIHRoZSBzZWxlY3RlZCB0ZXh0IGZyb20gdGhlIGRvY3VtZW50IGFuZCBwbGFjZSBpdAorICAgICAqIG9uIHRoZSBjbGlwYm9hcmQuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmIHRoZSB0ZXh0CisgICAgICogaXMgbm90IGVkaXRhYmxlLCBvciBpZiBubyB0ZXh0IGlzIHNlbGVjdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGN1dCgpIHsKKyAgICAgICAgZkltcGwuY3V0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGxhY2UgdGhlIHNlbGVjdGVkIHRleHQgb24gdGhlIGNsaXBib2FyZC4gIFRoaXMgbWV0aG9kIGhhcworICAgICAqIG5vIGVmZmVjdCBpZiBubyB0ZXh0IGlzIHNlbGVjdGVkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvcHkoKSB7CisgICAgICAgIGZJbXBsLmNvcHkoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGV4dCB3aXRoIHRoZSB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQuCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgdGV4dCBpcyBub3QgZWRpdGFibGUsIG9yIGlmIG5vCisgICAgICogdGV4dCBpcyBvbiB0aGUgY2xpcGJvYXJkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHBhc3RlKCkgeworICAgICAgICBmSW1wbC5wYXN0ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSBzZWxlY3RlZCB0ZXh0IGZyb20gdGhlIGRvY3VtZW50LCB3aXRob3V0IGFsdGVyaW5nIHRoZSBjbGlwYm9hcmQuCisgICAgICogVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUKKyAgICAgKiB0ZXh0IGlzIG5vdCBlZGl0YWJsZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgZkltcGwuY2xlYXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBVbmRvIHRoZSBtb3N0IHJlY2VudCB0ZXh0IGNoYW5nZS4gIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAgKiB0aGVyZSBpcyBubyBjaGFuZ2UgdG8gdW5kby4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB1bmRvKCkgeworICAgICAgICBmSW1wbC51bmRvKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVkbyB0aGUgbW9zdCByZWNlbnQgdGV4dCBjaGFuZ2UuICBUaGlzIG1ldGhvZCBoYXMgbm8gZWZmZWN0IGlmCisgICAgICogdGhlcmUgaXMgbm8gY2hhbmdlIHRvIHJlZG8uCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVkbygpIHsKKyAgICAgICAgZkltcGwucmVkbygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIHRoZSBjb21tYW5kIGxvZyBjYW4gaG9sZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgY29tbWFuZHMgdGhlIGNvbW1hbmQgbG9nIGNhbiBob2xkCisgICAgICovCisgICAgcHVibGljIGludCBnZXRDb21tYW5kTG9nU2l6ZSgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuZ2V0Q29tbWFuZExvZ1NpemUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG51bWJlciBvZiBjb21tYW5kcyB0aGUgY29tbWFuZCBsb2cgY2FuIGhvbGQuICBBbGwKKyAgICAgKiByZWRvYWJsZSBjb21tYW5kcyBhcmUgcmVtb3ZlZCB3aGVuIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC4KKyAgICAgKiBAcGFyYW0gc2l6ZSB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIGtlcHQgaW4gdGhlIGNvbW1hbmQgbG9nCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29tbWFuZExvZ1NpemUoaW50IHNpemUpIHsKKyAgICAgICAgZkltcGwuc2V0Q29tbWFuZExvZ1NpemUoc2l6ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlIGFsbCBjb21tYW5kcyBmcm9tIHRoZSBjb21tYW5kIGxvZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhckNvbW1hbmRMb2coKSB7CisgICAgICAgIGZJbXBsLmNsZWFyQ29tbWFuZExvZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmeSB0aGUgY2hhcmFjdGVyIHN0eWxlcyBvbiB0aGUgc2VsZWN0ZWQgY2hhcmFjdGVycy4gIElmIG5vIGNoYXJhY3RlcnMKKyAgICAgKiBhcmUgc2VsZWN0ZWQsIG1vZGlmeSB0aGUgdHlwaW5nIHN0eWxlLgorICAgICAqIEBwYXJhbSBtb2RpZmllciB0aGUgU3R5bGVNb2RpZmllciB3aXRoIHdoaWNoIHRvIG1vZGlmeSB0aGUgc3R5bGVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihTdHlsZU1vZGlmaWVyIG1vZGlmaWVyKSB7CisgICAgICAgIGZJbXBsLm1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1vZGlmeSB0aGUgcGFyYWdyYXBoIHN0eWxlcyBpbiBwYXJhZ3JhcGhzIGNvbnRhaW5pbmcgc2VsZWN0ZWQgY2hhcmFjdGVycywgb3IKKyAgICAgKiB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcgdGhlIGluc2VydGlvbiBwb2ludC4KKyAgICAgKiBAcGFyYW0gbW9kaWZpZXIgdGhlIFN0eWxlTW9kaWZpZXIgd2l0aCB3aGljaCB0byBtb2RpZnkgdGhlIHN0eWxlcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24oU3R5bGVNb2RpZmllciBtb2RpZmllcikgeworICAgICAgICBmSW1wbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIEtleVJlbWFwIHVzZWQgdG8gcHJvY2VzcyBrZXkgZXZlbnRzLgorICAgICAqIEByZXR1cm4gdGhlIGtleSByZW1hcCB1c2VkIHRvIHByb2Nlc3Mga2V5IGV2ZW50cworICAgICAqIEBzZWUgI3NldEtleVJlbWFwCisgICAgICovCisgICAgcHVibGljIEtleVJlbWFwIGdldEtleVJlbWFwKCkgeworCisgICAgICAgIHJldHVybiBmSW1wbC5nZXRLZXlSZW1hcCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFVzZSB0aGUgZ2l2ZW4gS2V5UmVtYXAgdG8gbWFwIGtleSBldmVudHMgdG8gY2hhcmFjdGVycy4KKyAgICAgKiBPbmx5IGtleQorICAgICAqIGV2ZW50cyBhcmUgYWZmZWN0ZWQgYnkgdGhlIHJlbWFwOyAgb3RoZXIgdGV4dCBlbnRlcmluZyB0aGUKKyAgICAgKiBjb250cm9sICh2aWEgdGhlIGNsaXBib2FyZCwgZm9yIGV4YW1wbGUpIGlzIG5vdCBhZmZlY3RlZAorICAgICAqIGJ5IHRoZSBLZXlSZW1hcC4KKyAgICAgKiA8cD4KKyAgICAgKiBEbyBub3QgcGFzcyA8dHQ+bnVsbDwvdHQ+IHRvIHRoaXMgbWV0aG9kIHRvIGxlYXZlIGtleQorICAgICAqIGV2ZW50cyB1bm1hcHBlZC4gIEluc3RlYWQsIHVzZSA8dHQ+S2V5UmVtYXAuZ2V0SWRlbnRpdHlSZW1hcCgpPC90dD4KKyAgICAgKiBAcGFyYW0gcmVtYXAgdGhlIEtleVJlbWFwIHRvIHVzZSBmb3IgbWFwcGluZyBrZXkgZXZlbnRzIHRvIGNoYXJhY3RlcnMKKyAgICAgKiBAZXhjZXB0aW9uIGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiBpZiBwYXJhbWV0ZXIgaXMgbnVsbAorICAgICAqIEBzZWUgS2V5UmVtYXAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRLZXlSZW1hcChLZXlSZW1hcCByZW1hcCkgeworCisgICAgICAgIGZJbXBsLnNldEtleVJlbWFwKHJlbWFwKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIG1vZGlmaWNhdGlvbiBmbGFnIG9mIHRoZSBjdXJyZW50IHRleHQgY2hhbmdlLgorICAgICAqIEBzZWUgI3NldE1vZGlmaWVkCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gaXNNb2RpZmllZCgpIHsKKworICAgICAgICByZXR1cm4gZkltcGwuaXNNb2RpZmllZCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbW9kaWZpY2F0aW9uIGZsYWcgb2YgdGhlIGN1cnJlbnQgdGV4dCBjaGFuZ2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TW9kaWZpZWQoYm9vbGVhbiBtb2RpZmllZCkgeworICAgICAgICAKKyAgICAgICAgZkltcGwuc2V0TW9kaWZpZWQobW9kaWZpZWQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGZvciBLZXlFdmVudEZvcndhcmRlcidzIHVzZSBvbmx5IQorICAgICAqLworICAgIEFUZXh0UGFuZWxJbXBsIGdldEltcGwoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZkltcGw7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbEV2ZW50LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFBhbmVsRXZlbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xODFkNDlkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbEV2ZW50LmphdmEKQEAgLTAsMCArMSwxNTUgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS51dGlsLkV2ZW50T2JqZWN0OworCisvKioKKyAqIFRleHRQYW5lbEV2ZW50IGlzIGdlbmVyYXRlZCBieSBhbiBNVGV4dFBhbmVsIHRvIG5vdGlmeSBsaXN0ZW5lcnMKKyAqIG9mIGNoYW5nZXMuICBUbyByZWNlaXZlIFRleHRQYW5lbEV2ZW50cyBmcm9tIGFuIE1UZXh0UGFuZWwsIGNsaWVudHMKKyAqIG11c3QgaW1wbGVtZW50IFRleHRQYW5lbExpc3RlbmVyIGFuZCBhZGQgdGhlbXNlbHZlcyB0byB0aGUgTVRleHRQYW5lbCdzCisgKiBsaXN0IG9mIGxpc3RlbmVycy4KKyAqIDxwPgorICogU29tZSBldmVudCB0eXBlcyBhcmUgc3BlY2lhbCBjYXNlcyBvZiBvdGhlcnMuICBUaGlzIGlzIGludGVudGlvbmFsIC0gaXQKKyAqIGFsbG93cyBub3RpZmljYXRpb25zIHRvIGJlIHNlbnQgbGVzcyBvZnRlbiBpbiBjZXJ0YWluIGNvbW1vbiBjYXNlcy4gIEZvcgorICogZXhhbXBsZSwgYSBjaGFuZ2UgaW4gdGhlIHNlbGVjdGlvbiByYW5nZSBnZW5lcmF0ZXMgYSBTRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCAKKyAqIGV2ZW50LiAgVGhpcyBpcyBhIHZlcnkgY29tbW9uIG9jY3VycmFuY2UsIGFuZCBpZiBtYW55IGNsaWVudHMgbGlzdGVuIGZvciB0aGlzCisgKiBldmVudCwgdGhlcmUgbWF5IGJlIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgcGVuYWx0eS4gIEJ5CisgKiBsaXN0ZW5pbmcgZm9yIGEgbW9yZSBzcGVjaWFsaXplZCBldmVudCAoc3VjaCBhcyBTRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRCksIGNsaWVudHMKKyAqIGNhbiByZWR1Y2UgdGhlIG51bWJlciBvZiBub3RpZmljYXRpb25zIHNlbnQuCisgKiAKKyAqIEBzZWUgTVRleHRQYW5lbAorICogQHNlZSBUZXh0UGFuZWxMaXN0ZW5lcgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgVGV4dFBhbmVsRXZlbnQgZXh0ZW5kcyBFdmVudE9iamVjdCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIAorICAgIC8qKgorICAgICAqIFRoZSBsb3dlciBib3VuZCBvZiBUZXh0UGFuZWxFdmVudCBJRCdzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFRFWFRfUEFORUxfRklSU1QgPSAxMTsKKworICAgIC8qKgorICAgICAqIEV2ZW50cyBvZiB0aGlzIHR5cGUgaW5kaWNhdGUgYSBjaGFuZ2UgaW4gdGhlIHNlbGVjdGlvbiByYW5nZS4KKyAgICAgKiBUaGlzIG9jY3VycyBxdWl0ZSBvZnRlbi4gIE1vc3QgY2xpZW50cyBkbyBub3QgbmVlZCB0byBiZSAKKyAgICAgKiBub3RpZmllZCBldmVyeSB0aW1lIHRoZSBzZWxlY3Rpb24gcmFuZ2UgY2hhbmdlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBTRUxFQ1RJT05fUkFOR0VfQ0hBTkdFRCA9IDExOworICAgIAorICAgIC8qKgorICAgICAqIEV2ZW50cyBvZiB0aGlzIHR5cGUgYXJlIHNlbnQgd2hlbiB0aGUgc2VsZWN0aW9uIHJhbmdlIGJlY29tZXMKKyAgICAgKiAwLWxlbmd0aCBhZnRlciBub3QgYmVpbmcgMC1sZW5ndGgsIG9yIHZpY2UgdmVyc2EuICBUaGlzIGV2ZW50CisgICAgICogaXMgYSBzcGVjaWFsIGNhc2Ugb2YgU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgU0VMRUNUSU9OX0VNUFRZX0NIQU5HRUQgPSAxMjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBFdmVudHMgb2YgdGhpcyB0eXBlIGluZGljYXRlIHRoYXQgdGhlIHRleHQgaW4gdGhlIFRleHRQYW5lbCBjaGFuZ2VkLgorICAgICAqIFRoaXMgdHlwZSBvZiBldmVudCBvY2N1cnMgb2Z0ZW4uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgVEVYVF9DSEFOR0VEID0gMTM7CisgICAgCisgICAgLyoqCisgICAgICogRXZlbnRzIG9mIHRoaXMgdHlwZSBhcmUgc2VudCB3aGVuIHRoZSBzdHlsZXMgaW4gdGhlIGN1cnJlbnQKKyAgICAgKiBzZWxlY3Rpb24gY2hhbmdlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCA9IDE0OworICAgICAKKyAgICAvKioKKyAgICAgKiBFdmVudHMgb2YgdGhpcyB0eXBlIGFyZSBzZW50IHdoZW4gdGhlIHVuZG8vcmVkbyBzdGF0ZSBjaGFuZ2VzLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFVORE9fU1RBVEVfQ0hBTkdFRCA9IDE1OworICAgIAorICAgIC8qKgorICAgICAqIEV2ZW50cyBvZiB0aGlzIHR5cGUgYXJlIHNlbnQgd2hlbiB0aGUgY2xpcGJvYXJkIHN0YXRlIGNoYW5nZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0xJUEJPQVJEX0NIQU5HRUQgPSAxNjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBFdmVudHMgb2YgdGhpcyB0eXBlIGFyZSBzZW50IHdoZW4gCisgICAgICogdGhlIHdyYXAgd2lkdGggb2YgdGhlIHRleHQgY2hhbmdlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGT1JNQVRfV0lEVEhfQ0hBTkdFRCA9IDE3OworCisgICAgLyoqCisgICAgICogRXZlbnRzIG9mIHRoaXMgdHlwZSBhcmUgc2VudCB3aGVuIHRoZSBrZXkgcmVtYXAgY2hhbmdlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBLRVlSRU1BUF9DSEFOR0VEID0gMTg7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdXBwZXIgYm91bmQgb2YgVGV4dFBhbmVsRXZlbnQgSUQncy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBURVhUX1BBTkVMX0xBU1QgPSAxODsKKworICAgIHByaXZhdGUgaW50IGZJZDsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBUZXh0UGFuZWxFdmVudC4KKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBNVGV4dFBhbmVsIHdoaWNoIGdlbmVyYXRlZCB0aGUgZXZlbnQKKyAgICAgKiBAcGFyYW0gaWQgdGhlIElEIGZvciB0aGlzIGV2ZW50LiAgTXVzdCBiZSB3aXRoaW4KKyAgICAgKiBbVEVYVF9QQU5FTF9GSVJTVCwgVEVYVF9QQU5FTF9MQVNUXS4KKyAgICAgKi8KKyAgICBUZXh0UGFuZWxFdmVudChNVGV4dFBhbmVsIHNvdXJjZSwgaW50IGlkKSB7CisKKyAgICAgICAgc3VwZXIoc291cmNlKTsKKyAgICAgICAgaWYgKGlkIDwgVEVYVF9QQU5FTF9GSVJTVCB8fCBpZCA+IFRFWFRfUEFORUxfTEFTVCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiaWQgb3V0IG9mIHJhbmdlIik7CisgICAgICAgIH0KKyAgICAgICAgZklkID0gaWQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBldmVudCBJRCBmb3IgdGhpcyBldmVudC4gIEV2ZW50IElEJ3MgYXJlCisgICAgICogb25lIG9mIHRoZSBjbGFzcyBjb25zdGFudHMuCisgICAgICogQHJldHVybiB0aGUgZXZlbnQgSUQgZm9yIHRoaXMgZXZlbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldElEKCkgeworCisgICAgICAgIHJldHVybiBmSWQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgZGVzYyA9IG51bGw7CisgICAgICAgIAorICAgICAgICBzd2l0Y2goZklkKSB7CisgICAgICAgICAgICBjYXNlIFNFTEVDVElPTl9SQU5HRV9DSEFOR0VEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAiU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBTRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRDoKKyAgICAgICAgICAgICAgICBkZXNjID0gIlNFTEVDVElPTl9FTVBUWV9DSEFOR0VEIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVEVYVF9DSEFOR0VEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAiVEVYVF9DSEFOR0VEIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAiU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVU5ET19TVEFURV9DSEFOR0VEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAiVU5ET19TVEFURV9DSEFOR0VEIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ0xJUEJPQVJEX0NIQU5HRUQ6CisgICAgICAgICAgICAgICAgZGVzYyA9ICJDTElQQk9BUkRfQ0hBTkdFRCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEZPUk1BVF9XSURUSF9DSEFOR0VEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAiRk9STUFUX1dJRFRIX0NIQU5HRUQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLRVlSRU1BUF9DSEFOR0VEOgorICAgICAgICAgICAgICAgIGRlc2MgPSAiS0VZUkVNQVBfQ0hBTkdFRCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICJbVGV4dFBhbmVsRXZlbnQ6IitkZXNjKyJdIjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFBhbmVsTGlzdGVuZXIuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UGFuZWxMaXN0ZW5lci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ0YzlkNDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFBhbmVsTGlzdGVuZXIuamF2YQpAQCAtMCwwICsxLDQwIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworLyoqCisgKiBUaGlzIGludGVyZmFjZSBpcyBpbXBsZW1lbnRlZCBieSBjbGFzc2VzIHdoaWNoCisgKiByZWNlaXZlIGNoYW5nZSBub3RpZmljYXRpb25zIGZyb20gYW4gTVRleHRQYW5lbC4KKyAqIEBzZWUgTVRleHRQYW5lbAorICogQHNlZSBUZXh0UGFuZWxFdmVudAorICovCitwdWJsaWMgaW50ZXJmYWNlIFRleHRQYW5lbExpc3RlbmVyIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgLyoqCisgICAgICogTm90aWZ5IGxpc3RlbmVyIG9mIGFuIE1UZXh0UGFuZWwgY2hhbmdlLgorICAgICAqIEBwYXJhbSBldmVudCBhIFRleHRQYW5lbEV2ZW50IGluZGljYXRpbmcgd2hhdCBoYXBwZW5lZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRleHRFdmVudE9jY3VycmVkKFRleHRQYW5lbEV2ZW50IGV2ZW50KTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiBsaXN0ZW5lciBuZWVkcyB0byBiZSBub3RpZmllZCBvZiAKKyAgICAgKiB0aGUgZ2l2ZW4gZXZlbnQgdHlwZS4gIFRoaXMgYWxsb3dzIGEgdGV4dCBwYW5lbCB0byBhdm9pZAorICAgICAqIHNlbmRpbmcgZXZlbnRzIHRvIHVuaW50ZXJlc3RlZCBwYXJ0aWVzLgorICAgICAqIEBwYXJhbSB0eXBlIGFuIGV2ZW50IElEIGZyb20gVGV4dFBhbmVsRXZlbnQKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBsaXN0ZW5lciBuZWVkcyB0byBiZSBub3RpZmllZCBvZgorICAgICAqIGV2ZW50cyBvZiB0aGUgZ2l2ZW4gdHlwZQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHJlc3BvbmRzVG9FdmVudFR5cGUoaW50IHR5cGUpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbFNldHRpbmdzLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFBhbmVsU2V0dGluZ3MuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNGViMmEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRQYW5lbFNldHRpbmdzLmphdmEKQEAgLTAsMCArMSwyODQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDUuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdGFuZGFyZFRhYlJ1bGVyOworCisvKioKKyAqIFRoaXMgY2xhc3MgY29udGFpbnMgc2V0dGluZ3MgdXNlZCB3aGVuIGNvbnN0cnVjdGluZyBhbiBNVGV4dFBhbmVsLgorICogVGhlIHNldHRpbmdzIGNvbnRyb2xlZCBieSB0aGlzIGNsYXNzIGluY2x1ZGU6CisgKiA8dWw+CisgKiA8bGk+d2hldGhlciB0aGUgdGV4dCBpbiB0aGUgTVRleHRQYW5lbCBjYW4gYmUgc2Nyb2xsZWQ8L2xpPgorICogPGxpPndoZXRoZXIgc2Nyb2xsIGJhcnMgaW4gdGhlIE1UZXh0UGFuZWwgYXJlIHZpc2libGU8L2xpPgorICogPGxpPndoZXRoZXIgdGhlIHRleHQgaW4gdGhlIE1UZXh0UGFuZWwgY2FuIGJlIHNlbGVjdGVkPC9saT4KKyAqIDxsaT53aGV0aGVyIHRoZSB0ZXh0IGluIHRoZSBNVGV4dFBhbmVsIGNhbiBiZSBlZGl0ZWQ8L2xpPgorICogPGxpPndoZXRoZXIgbGluZXMgb2YgdGV4dCB3cmFwIHRvIHRoZSBNVGV4dFBhbmVsJ3Mgd2lkdGgsIG9yCisgKiBvbmx5IGVuZCBhdCBwYXJhZ3JhcGggc2VwYXJhdG9yczwvbGk+CisgKiA8bGk+dGhlIGRlZmF1bHQgdmFsdWVzIGZvciB1bnNwZWNpZmllZCBzdHlsZXM8L2xpPgorICogPC91bD4KKyAqIFNvbWUgc2V0dGluZ3MgYXJlIGRlcGVuZGVudCBvbiBvdGhlcnMuICBTY3JvbGwgYmFycyBhcmUgdmlzaWJsZQorICogb25seSBpZiB0aGUgdGV4dCBpcyBzY3JvbGxhYmxlLiAgQWxzbywgdGV4dCB3aGljaCBpcyBub3QgZWRpdGFibGUKKyAqIGlmIGl0IGlzIG5vdCBzZWxlY3RhYmxlLgorICogPHA+CisgKgorICogQHNlZSBNVGV4dFBhbmVsCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUZXh0UGFuZWxTZXR0aW5ncyBpbXBsZW1lbnRzIENsb25lYWJsZSwgU2VyaWFsaXphYmxlIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgCisgICAgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC00MDg5MTg2NjYzMDE4NzA3NDc4TDsKKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBBdHRyaWJ1dGVNYXAgREVGQVVMVFM7CisgICAgCisgICAgc3RhdGljIHsKKyAgICAgICAgZmluYWwgRmxvYXQgZmxvYXRaZXJvID0gbmV3IEZsb2F0KDAuMGYpOworCisgICAgICAgIEhhc2h0YWJsZSBkZWZhdWx0cyA9IG5ldyBIYXNodGFibGUoKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuRkFNSUxZLCAiU2VyaWYiKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuV0VJR0hULCBuZXcgRmxvYXQoMS4wZikpOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5QT1NUVVJFLCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5TSVpFLCBuZXcgRmxvYXQoMTguMGYpKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuU1VQRVJTQ1JJUFQsIG5ldyBJbnRlZ2VyKDApKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuRk9SRUdST1VORCwgQ29sb3IuYmxhY2spOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUsIG5ldyBJbnRlZ2VyKC0xKSk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlNUUklLRVRIUk9VR0gsIEJvb2xlYW4uRkFMU0UpOworCisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkVYVFJBX0xJTkVfU1BBQ0lORywgZmxvYXRaZXJvKTsKKyAgICAgICAgZGVmYXVsdHMucHV0KFRleHRBdHRyaWJ1dGUuRklSU1RfTElORV9JTkRFTlQsIGZsb2F0WmVybyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLk1JTl9MSU5FX1NQQUNJTkcsIGZsb2F0WmVybyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gsIFRleHRBdHRyaWJ1dGUuRkxVU0hfTEVBRElORyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLkxFQURJTkdfTUFSR0lOLCBmbG9hdFplcm8pOworICAgICAgICBkZWZhdWx0cy5wdXQoVGV4dEF0dHJpYnV0ZS5UUkFJTElOR19NQVJHSU4sIGZsb2F0WmVybyk7CisgICAgICAgIGRlZmF1bHRzLnB1dChUZXh0QXR0cmlidXRlLlRBQl9SVUxFUiwgbmV3IFN0YW5kYXJkVGFiUnVsZXIoKSk7CisKKyAgICAgICAgREVGQVVMVFMgPSBuZXcgQXR0cmlidXRlTWFwKGRlZmF1bHRzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIGZTY3JvbGxhYmxlID0gdHJ1ZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZlNjcm9sbEJhcnNWaXNpYmxlID0gdHJ1ZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gZlNlbGVjdGFibGUgPSB0cnVlOworICAgIHByaXZhdGUgYm9vbGVhbiBmRWRpdGFibGUgPSB0cnVlOworICAgIHByaXZhdGUgYm9vbGVhbiBmV3JhcHMgPSB0cnVlOworICAgIHByaXZhdGUgQXR0cmlidXRlTWFwIGZEZWZhdWx0VmFsdWVzID0gREVGQVVMVFM7CisgICAgCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgVGV4dFBhbmVsU2V0dGluZ3MgaW5zdGFuY2Ugd2l0aCBhbGwgc2V0dGluZ3MKKyAgICAgKiBzZXQgdG8gdHJ1ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgVGV4dFBhbmVsU2V0dGluZ3MoKSB7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbmV3IFRleHRQYW5lbFNldHRpbmdzIGluc3RhbmNlIHdpdGggdGhlCisgICAgICogc2FtZSBzZXR0aW5ncyBhcyB0aGlzLgorICAgICAqIEByZXR1cm4gYSBuZXcgVGV4dFBhbmVsU2V0dGluZ3MgaW5zdGFuY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGNsb25lKCkgeworCisgICAgICAgIFRleHRQYW5lbFNldHRpbmdzIHJocyA9IG5ldyBUZXh0UGFuZWxTZXR0aW5ncygpOworCisgICAgICAgIHJocy5mU2Nyb2xsYWJsZSA9IGZTY3JvbGxhYmxlOworICAgICAgICByaHMuZlNjcm9sbEJhcnNWaXNpYmxlID0gZlNjcm9sbEJhcnNWaXNpYmxlOworICAgICAgICByaHMuZlNlbGVjdGFibGUgPSBmU2VsZWN0YWJsZTsKKyAgICAgICAgcmhzLmZFZGl0YWJsZSA9IGZFZGl0YWJsZTsKKyAgICAgICAgcmhzLmZXcmFwcyA9IGZXcmFwczsKKyAgICAgICAgcmhzLmZEZWZhdWx0VmFsdWVzID0gZkRlZmF1bHRWYWx1ZXM7CisgICAgICAgIAorICAgICAgICByZXR1cm4gcmhzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2Nyb2xsYWJsZSBzZXR0aW5nLCB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIgdGV4dAorICAgICAqIGluIGFuIE1UZXh0UGFuZWwgY2FuIGJlIHNjcm9sbGVkLgorICAgICAqIEByZXR1cm4gdGhlIHNjcm9sbGFibGUgc2V0dGluZworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGdldFNjcm9sbGFibGUoKSB7CisKKyAgICAgICAgcmV0dXJuIGZTY3JvbGxhYmxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc2Nyb2xsYWJsZSBzZXR0aW5nLgorICAgICAqIEBwYXJhbSBzY3JvbGxhYmxlIHRoZSBzY3JvbGxhYmxlIHNldHRpbmcuICBJZiBmYWxzZSwKKyAgICAgKiB0aGUgc2Nyb2xsQmFyc1Zpc2libGUgc2V0dGluZyBpcyBhbHNvIHNldCB0byBmYWxzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTY3JvbGxhYmxlKGJvb2xlYW4gc2Nyb2xsYWJsZSkgeworCisgICAgICAgIGZTY3JvbGxhYmxlID0gc2Nyb2xsYWJsZTsKKyAgICAgICAgZlNjcm9sbEJhcnNWaXNpYmxlICY9IHNjcm9sbGFibGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzY3JvbGxCYXJzVmlzaWJsZSBzZXR0aW5nLCB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIKKyAgICAgKiBzY3JvbGwgYmFycyBpbiBhbiBNVGV4dFBhbmVsIGFyZSB2aXNpYmxlLgorICAgICAqIEByZXR1cm4gdGhlIHNjcm9sbEJhcnNWaXNpYmxlIHNldHRpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRTY3JvbGxCYXJzVmlzaWJsZSgpIHsKKworICAgICAgICByZXR1cm4gZlNjcm9sbEJhcnNWaXNpYmxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc2Nyb2xsQmFyc1Zpc2libGUgc2V0dGluZy4KKyAgICAgKiBAcGFyYW0gdmlzIHRoZSBzY3JvbGxCYXJzVmlzaWJsZSBzZXR0aW5nLiAgSWYgdHJ1ZSwKKyAgICAgKiB0aGUgc2Nyb2xsYWJsZSBzZXR0aW5nIGlzIGFsc28gc2V0IHRvIHRydWUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2Nyb2xsQmFyc1Zpc2libGUoYm9vbGVhbiB2aXMpIHsKKworICAgICAgICBmU2Nyb2xsQmFyc1Zpc2libGUgPSB2aXM7CisgICAgICAgIGZTY3JvbGxhYmxlIHw9IHZpczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNlbGVjdGFibGUgc2V0dGluZywgd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyCisgICAgICogdGV4dCBpbiBhbiBNVGV4dFBhbmVsIGNhbiBiZSBzZWxlY3RlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBzZWxlY3RhYmxlIHNldHRpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRTZWxlY3RhYmxlKCkgeworCisgICAgICAgIHJldHVybiBmU2VsZWN0YWJsZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNlbGVjdGFibGUgc2V0dGluZy4KKyAgICAgKiBAcGFyYW0gc2VsZWN0YWJsZSB0aGUgc2VsZWN0YWJsZSBzZXR0aW5nLiAgSWYgZmFsc2UsCisgICAgICogdGhlIGVkaXRhYmxlIHNldHRpbmcgaXMgYWxzbyBzZXQgdG8gZmFsc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2VsZWN0YWJsZShib29sZWFuIHNlbGVjdGFibGUpIHsKKworICAgICAgICBmU2VsZWN0YWJsZSA9IHNlbGVjdGFibGU7CisgICAgICAgIGZFZGl0YWJsZSAmPSBzZWxlY3RhYmxlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZWRpdGFibGUgc2V0dGluZywgd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyCisgICAgICogdGV4dCBpbiBhbiBNVGV4dFBhbmVsIGNhbiBiZSBlZGl0ZWQuCisgICAgICogQHJldHVybiB0aGUgZWRpdGFibGUgc2V0dGluZworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGdldEVkaXRhYmxlKCkgeworCisgICAgICAgIHJldHVybiBmRWRpdGFibGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBlZGl0YWJsZSBzZXR0aW5nLgorICAgICAqIEBwYXJhbSBlZGl0YWJsZSB0aGUgZWRpdGFibGUgc2V0dGluZy4gIElmIHRydWUsCisgICAgICogdGhlIHNlbGVjdGFibGUgc2V0dGluZyBpcyBhbHNvIHNldCB0byB0cnVlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEVkaXRhYmxlKGJvb2xlYW4gZWRpdGFibGUpIHsKKworICAgICAgICBmRWRpdGFibGUgPSBlZGl0YWJsZTsKKyAgICAgICAgZlNlbGVjdGFibGUgfD0gZWRpdGFibGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB3cmFwcyBzZXR0aW5nLCB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIKKyAgICAgKiBsaW5lcyBvZiB0ZXh0IHdyYXAgdG8gdGhlIGxlbmd0aCBvZiB0aGUgTVRleHRQYW5lbCwKKyAgICAgKiBvciBvbmx5IGF0IHBhcmFncmFwaCBzZXBhcmF0b3JzLgorICAgICAqIEByZXR1cm4gdGhlIHdyYXBzIHNldHRpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRXcmFwcygpIHsKKworICAgICAgICByZXR1cm4gZldyYXBzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgd3JhcHMgc2V0dGluZy4KKyAgICAgKiBAcGFyYW0gd3JhcHMgdGhlIHdyYXBzIHNldHRpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRXcmFwcyhib29sZWFuIHdyYXBzKSB7CisKKyAgICAgICAgZldyYXBzID0gd3JhcHM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgQXR0cmlidXRlTWFwIG9mIGRlZmF1bHQgdmFsdWVzIGZvciBjZXJ0YWluIGtleXMuCisgICAgICogV2hlbiBhIGtleSBpbiB0aGlzIEF0dHJpYnV0ZU1hcCBpcyBub3Qgc3BlY2lmaWVkLCBpdHMgdmFsdWUKKyAgICAgKiBpcyB0YWtlbiBmcm9tIHRoaXMgQXR0cmlidXRlTWFwLgorICAgICAqIEByZXR1cm4gdGhlIEF0dHJpYnV0ZU1hcCBvZiBkZWZhdWx0IHZhbHVlcworICAgICAqIEBzZWUgTVRleHRQYW5lbCNnZXREZWZhdWx0VmFsdWVzCisgICAgICovCisgICAgcHVibGljIEF0dHJpYnV0ZU1hcCBnZXREZWZhdWx0VmFsdWVzKCkgeworICAgIAorICAgICAgICByZXR1cm4gZkRlZmF1bHRWYWx1ZXM7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEFkZCB0aGUga2V5LXZhbHVlIHBhaXJzIGluIHRoZSBnaXZlbiBBdHRyaWJ1dGVNYXAgdG8gdGhlCisgICAgICogZGVmYXVsdCB2YWx1ZXMuICBJZiBhIGtleSBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlIGdpdmVuCisgICAgICogQXR0cmlidXRlTWFwLCBpdHMgdmFsdWUgaW4gdGhlIGRlZmF1bHQgdmFsdWUgbWFwIGlzCisgICAgICogdW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSBtYXAgYW4gQXR0cmlidXRlTWFwIGNvbnRhaW5pbmcgbmV3IGRlZmF1bHQgdmFsdWVzCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkRGVmYXVsdFZhbHVlcyhBdHRyaWJ1dGVNYXAgbWFwKSB7CisgICAgCisgICAgICAgIGZEZWZhdWx0VmFsdWVzID0gZkRlZmF1bHRWYWx1ZXMuYWRkQXR0cmlidXRlcyhtYXApOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBDb21wYXJlIHRoaXMgdG8gYW5vdGhlciBPYmplY3QuICBUaGlzIGlzIGVxdWFsCisgICAgICogdG8gYW5vdGhlciBPYmplY3QgaWYgdGhlIG90aGVyIE9iamVjdCBpcyBhCisgICAgICogVGV4dFBhbmVsU2V0dGluZ3MgaW5zdGFuY2Ugd2l0aCB0aGUgc2FtZQorICAgICAqIHNldHRpbmdzIGFzIHRoaXMgb25lLgorICAgICAqIEBwYXJhbSByaHMgdGhlIE9iamVjdCB0byBjb21wYXJlIHRvCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCByaHMpIHsKKworICAgICAgICBpZiAocmhzID09IHRoaXMpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJocyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBUZXh0UGFuZWxTZXR0aW5ncyBvdGhlcjsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG90aGVyID0gKFRleHRQYW5lbFNldHRpbmdzKSByaHM7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG90aGVyLmZTY3JvbGxhYmxlID09IHRoaXMuZlNjcm9sbGFibGUgJiYKKyAgICAgICAgICAgICAgIG90aGVyLmZTY3JvbGxCYXJzVmlzaWJsZSA9PSB0aGlzLmZTY3JvbGxCYXJzVmlzaWJsZSAmJgorICAgICAgICAgICAgICAgb3RoZXIuZlNlbGVjdGFibGUgPT0gdGhpcy5mU2VsZWN0YWJsZSAmJgorICAgICAgICAgICAgICAgb3RoZXIuZkVkaXRhYmxlID09IHRoaXMuZkVkaXRhYmxlICYmCisgICAgICAgICAgICAgICBvdGhlci5mV3JhcHMgPT0gdGhpcy5mV3JhcHMgJiYKKyAgICAgICAgICAgICAgIG90aGVyLmZEZWZhdWx0VmFsdWVzLmVxdWFscyh0aGlzLmZEZWZhdWx0VmFsdWVzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGhhc2ggY29kZSBmb3IgdGhpcyBPYmplY3QuCisgICAgICogQHJldHVybiB0aGUgaGFzaCBjb2RlIGZvciB0aGlzIE9iamVjdAorICAgICAqLworICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisKKyAgICAgICAgaW50IGNvZGUgPSBmRGVmYXVsdFZhbHVlcy5oYXNoQ29kZSgpOworICAgICAgICBjb2RlID0gY29kZSoyICsgKGZTY3JvbGxhYmxlPyAxOjApOworICAgICAgICBjb2RlID0gY29kZSoyICsgKGZTY3JvbGxCYXJzVmlzaWJsZT8gMTowKTsKKyAgICAgICAgY29kZSA9IGNvZGUqMiArIChmU2VsZWN0YWJsZT8gMTowKTsKKyAgICAgICAgY29kZSA9IGNvZGUqMiArIChmRWRpdGFibGU/IDE6MCk7CisgICAgICAgIGNvZGUgPSBjb2RlKjIgKyAoZldyYXBzPyAxOjApOworCisgICAgICAgIHJldHVybiBjb2RlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UmFuZ2UuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UmFuZ2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNzIyZTczCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRSYW5nZS5qYXZhCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCisvKioKKyogQSA8VFQ+VGV4dFJhbmdlPC9UVD4gcmVwcmVzZW50cyBhIHJhbmdlIG9mIHRleHQgYm91bmRlZCBieSBhCisqIHN0YXJ0IChpbmNsdXNpdmUpLCBhbmQgYSBsaW1pdCAoZXhjbHVzaXZlKS4gIFtzdGFydCxsaW1pdCkKKyovCitmaW5hbCBjbGFzcyBUZXh0UmFuZ2UKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIC8qKiB0aGUgc3RhcnQgb2YgdGhlIHJhbmdlICovCisgICAgcHVibGljIGludCBzdGFydCA9IDA7CisgICAgLyoqIHRoZSBlbmQgb2YgdGhlIHJhbmdlICovCisgICAgcHVibGljIGludCBsaW1pdCA9IDA7CisKKyAgICAvKioKKyAgICAqIENyZWF0ZSBhIHRleHQgcmFuZ2UgZnJvbSB0d28gaW50cy4KKyAgICAqIEBwYXJhbSBzdGFydCB0aGUgc3RhcnQgb2YgdGhlIHJ1bgorICAgICogQHBhcmFtIGxpbWl0IHRoZSBlbmQgb2YgdGhlIHJ1bgorICAgICovCisgICAgcHVibGljIFRleHRSYW5nZShpbnQgc3RhcnQsIGludCBsaW1pdCkKKyAgICB7CisgICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKKyAgICAgICAgdGhpcy5saW1pdCA9IGxpbWl0OworICAgIH0KKworICAgIC8qKgorICAgICogQ3JlYXRlIGEgdGV4dCByYW5nZSBvZiAwLCAwLgorICAgICovCisgICAgcHVibGljIFRleHRSYW5nZSgpIHsKKyAgICAgICAgdGhpcy5zdGFydCA9IHRoaXMubGltaXQgPSAwOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UmVwbGFjZW1lbnQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0UmVwbGFjZW1lbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43YjViNzk0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RleHRSZXBsYWNlbWVudC5qYXZhCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CisKKy8qKgorICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIHBhc3MgYSBSRVBMQUNFIGNvbW1hbmQgdG8gQmVoYXZpb3JzLgorICovCitmaW5hbCBjbGFzcyBUZXh0UmVwbGFjZW1lbnQgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGludCBmU3RhcnQ7CisgICAgcHJpdmF0ZSBpbnQgZkxpbWl0OworICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmVGV4dDsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgZlNlbFN0YXJ0OworICAgIHByaXZhdGUgVGV4dE9mZnNldCBmU2VsTGltaXQ7CisKKyAgICBUZXh0UmVwbGFjZW1lbnQoaW50IHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICBpbnQgbGltaXQsCisgICAgICAgICAgICAgICAgICAgIE1Db25zdFRleHQgdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBzZWxMaW1pdCkgeworCisgICAgICAgIGZTdGFydCA9IHN0YXJ0OworICAgICAgICBmTGltaXQgPSBsaW1pdDsKKyAgICAgICAgZlRleHQgPSB0ZXh0OworICAgICAgICBmU2VsU3RhcnQgPSBzZWxTdGFydDsKKyAgICAgICAgZlNlbExpbWl0ID0gc2VsTGltaXQ7CisgICAgfQorCisgICAgaW50IGdldFN0YXJ0KCkgeworCisgICAgICAgIHJldHVybiBmU3RhcnQ7CisgICAgfQorCisgICAgaW50IGdldExpbWl0KCkgeworCisgICAgICAgIHJldHVybiBmTGltaXQ7CisgICAgfQorCisgICAgTUNvbnN0VGV4dCBnZXRUZXh0KCkgeworCisgICAgICAgIHJldHVybiBmVGV4dDsKKyAgICB9CisKKyAgICBUZXh0T2Zmc2V0IGdldFNlbGVjdGlvblN0YXJ0KCkgeworCisgICAgICAgIHJldHVybiBmU2VsU3RhcnQ7CisgICAgfQorCisgICAgVGV4dE9mZnNldCBnZXRTZWxlY3Rpb25MaW1pdCgpIHsKKworICAgICAgICByZXR1cm4gZlNlbExpbWl0OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UZXh0U2VsZWN0aW9uLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFNlbGVjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQwZGVlMTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGV4dFNlbGVjdGlvbi5qYXZhCkBAIC0wLDAgKzEsOTIyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA1LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworLyoKKyAgICA3LzEvOTcgLSBjYXJldCBibGlua3MKKworICAgIDcvMy85NyAtIGZBbmNob3IgaXMgbm8gbG9uZ2VyIHJlc3RyaWN0ZWQgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUgc2VsZWN0aW9uLiB7amJyfQorICAgICAgICAgICAgQWxzbywgcmVtb3ZlZCBmVmlzaWJsZSAtIGl0IHdhcyBpZGVudGljYWwgdG8gZW5hYmxlZCgpLgorKi8KKworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LkdyYXBoaWNzOworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LlJlY3RhbmdsZTsKKworaW1wb3J0IGphdmEudGV4dC5CcmVha0l0ZXJhdG9yOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5LZXlFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Gb2N1c0V2ZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1Db25zdFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRmb3JtYXQuTUZvcm1hdHRlcjsKKworY2xhc3MgVGV4dFNlbGVjdGlvbiBleHRlbmRzIEJlaGF2aW9yIGltcGxlbWVudHMgUnVubmFibGUgeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgc3RhdGljIGZpbmFsIENvbG9yICAgICAgICAgIEhJR0hMSUdIVENPTE9SID0gQ29sb3IucGluazsKKworICAgIHByaXZhdGUgVGV4dENvbXBvbmVudCAgICAgICBmVGV4dENvbXBvbmVudDsKKyAgICBwcml2YXRlIE1Db25zdFRleHQgICAgICAgICAgZlRleHQ7CisgICAgcHJpdmF0ZSBUZXh0T2Zmc2V0ICAgICAgICAgIGZTdGFydDsKKyAgICBwcml2YXRlIFRleHRPZmZzZXQgICAgICAgICAgZkxpbWl0OworICAgIHByaXZhdGUgVGV4dE9mZnNldCAgICAgICAgICBmQW5jaG9yOworICAgIHByaXZhdGUgVGV4dE9mZnNldCAgICAgICAgICBmVXBEb3duQW5jaG9yID0gbnVsbDsKKyAgICBwcml2YXRlIEJyZWFrSXRlcmF0b3IgICAgICAgZkJvdW5kYXJpZXMgPSBudWxsOworICAgIHByaXZhdGUgQ29sb3IgICAgICAgICAgICAgICBmSGlnaGxpZ2h0Q29sb3IgPSBISUdITElHSFRDT0xPUjsKKyAgICBwcml2YXRlIFBhbmVsRXZlbnRCcm9hZGNhc3RlciAgIGZMaXN0ZW5lcjsKKyAgICBwcml2YXRlIFJ1blN0cmF0ZWd5ICAgICAgICAgZlJ1blN0cmF0ZWd5OworICAgIHByaXZhdGUgYm9vbGVhbiAgICAgICAgICAgICBmTW91c2VEb3duID0gZmFsc2U7CisgICAgcHJpdmF0ZSBib29sZWFuICAgICAgICAgICAgIGZIYW5kbGluZ0tleU9yQ29tbWFuZCA9IGZhbHNlOworICAgIAorICAgIHByaXZhdGUgYm9vbGVhbiBmQ2FyZXRTaG91bGRCbGluazsKKyAgICBwcml2YXRlIGJvb2xlYW4gZkNhcmV0SXNWaXNpYmxlOworICAgIHByaXZhdGUgaW50IGZDYXJldENvdW50OworCisgICAgLy8gZm9ybWVybHkgaW4gYmFzZSBjbGFzcworICAgIHByaXZhdGUgYm9vbGVhbiBmRW5hYmxlZDsKKworICAgIHByaXZhdGUgTW91c2VFdmVudCBmUGVuZGluZ01vdXNlRXZlbnQgPSBudWxsOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IGtDYXJldEludGVydmFsID0gNTAwOworCisgICAgcHVibGljIHZvaWQgcnVuKCkgeworCisgICAgICAgIGZpbmFsIFJ1bm5hYmxlIGJsaW5rQ2FyZXQgPSBuZXcgUnVubmFibGUoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CisgICAgICAgICAgICAgICAgZkNhcmV0SXNWaXNpYmxlID0gIWZDYXJldElzVmlzaWJsZTsKKyAgICAgICAgICAgICAgICBHcmFwaGljcyBnID0gZlRleHRDb21wb25lbnQuZ2V0R3JhcGhpY3MoKTsKKyAgICAgICAgICAgICAgICBpZiAoZyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJjYXJldElzVmlzaWJsZTogIiArIGZDYXJldElzVmlzaWJsZSk7CisgICAgICAgICAgICAgICAgICAgIGRyYXdTZWxlY3Rpb24oZywgZkNhcmV0SXNWaXNpYmxlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIE5vdCBzdXJlIHdoYXQgZWxzZSB0byBkbzoKKyAgICAgICAgICAgICAgICAgICAgZkNhcmV0U2hvdWxkQmxpbmsgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICAvLyBibGluayBjYXJldAorICAgICAgICB3aGlsZSAodHJ1ZSkgeworCisgICAgICAgICAgICBzeW5jaHJvbml6ZWQodGhpcykgeworCisgICAgICAgICAgICAgICAgd2hpbGUgKCFmQ2FyZXRTaG91bGRCbGluaykgeworICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgd2FpdCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoKEludGVycnVwdGVkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2F1Z2h0IEludGVycnVwdGVkRXhjZXB0aW9uIGluIGNhcmV0IHRocmVhZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICsrZkNhcmV0Q291bnQ7CisKKyAgICAgICAgICAgICAgICBpZiAoZkNhcmV0Q291bnQgJSAyID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZlJ1blN0cmF0ZWd5LmRvSXQoYmxpbmtDYXJldCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIFRocmVhZC5zbGVlcChrQ2FyZXRJbnRlcnZhbCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaChJbnRlcnJ1cHRlZEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKworCisgICAgcHVibGljIFRleHRTZWxlY3Rpb24oVGV4dENvbXBvbmVudCB0ZXh0Q29tcG9uZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBsaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBSdW5TdHJhdGVneSBydW5TdHJhdGVneSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBmVGV4dENvbXBvbmVudCA9IHRleHRDb21wb25lbnQ7CisgICAgICAgIGZUZXh0ID0gdGV4dENvbXBvbmVudC5nZXRUZXh0KCk7CisgICAgICAgIGZMaXN0ZW5lciA9IGxpc3RlbmVyOworICAgICAgICBmUnVuU3RyYXRlZ3kgPSBydW5TdHJhdGVneTsKKyAgICAgICAgCisgICAgICAgIGZTdGFydCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIGZMaW1pdCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIGZBbmNob3IgPSBuZXcgVGV4dE9mZnNldCgpOworICAgICAgICBmTW91c2VEb3duID0gZmFsc2U7CisKKyAgICAgICAgZkNhcmV0Q291bnQgPSAwOworICAgICAgICBmQ2FyZXRJc1Zpc2libGUgPSB0cnVlOworICAgICAgICBmQ2FyZXRTaG91bGRCbGluayA9IGZhbHNlOworICAgICAgICBzZXRFbmFibGVkKGZhbHNlKTsKKworICAgICAgICBUaHJlYWQgY2FyZXRUaHJlYWQgPSBuZXcgVGhyZWFkKHRoaXMpOworICAgICAgICBjYXJldFRocmVhZC5zZXREYWVtb24odHJ1ZSk7CisgICAgICAgIGNhcmV0VGhyZWFkLnN0YXJ0KCk7CisgICAgfQorCisgICAgYm9vbGVhbiBlbmFibGVkKCkgeworCisgICAgICAgIHJldHVybiBmRW5hYmxlZDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc2V0RW5hYmxlZChib29sZWFuIGVuYWJsZWQpIHsKKworICAgICAgICBmRW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gdGV4dENvbnRyb2xFdmVudE9jY3VycmVkKEJlaGF2aW9yLkV2ZW50VHlwZSBldmVudCwgT2JqZWN0IHdoYXQpIHsKKworICAgICAgICBib29sZWFuIHJlc3VsdDsKKyAgICAgICAgZkhhbmRsaW5nS2V5T3JDb21tYW5kID0gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIGlmIChldmVudCA9PSBCZWhhdmlvci5TRUxFQ1QpIHsKKyAgICAgICAgICAgIHNlbGVjdCgoVGV4dFJhbmdlKSB3aGF0KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXZlbnQgPT0gQmVoYXZpb3IuQ09QWSkgeworICAgICAgICAgICAgZlRleHRDb21wb25lbnQuZ2V0Q2xpcGJvYXJkKCkuc2V0Q29udGVudHMoZlRleHQuZXh0cmFjdChmU3RhcnQuZk9mZnNldCwgZkxpbWl0LmZPZmZzZXQpKTsKKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LkNMSVBCT0FSRF9DSEFOR0VEKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkhhbmRsaW5nS2V5T3JDb21tYW5kID0gZmFsc2U7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgYWR2YW5jZVRvTmV4dEJvdW5kYXJ5KFRleHRPZmZzZXQgb2Zmc2V0KSB7CisgICAgCisgICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gYm91bmRhcmllcyBvYmplY3QsIG9yIGlmIHBvc2l0aW9uIGF0IHRoZSBlbmQgb2YgdGhlCisgICAgICAgIC8vIGRvY3VtZW50LCByZXR1cm4gdGhlIG9mZnNldCB1bmNoYW5nZWQKKyAgICAgICAgaWYgKGZCb3VuZGFyaWVzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW50IHBvc2l0aW9uID0gb2Zmc2V0LmZPZmZzZXQ7CisgICAgICAgIAorICAgICAgICBpZiAocG9zaXRpb24gPj0gZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHBvc2l0aW9uIGlzIGF0IGEgYm91bmRhcnkgYW5kIG9mZnNldCBpcyBiZWZvcmUgcG9zaXRpb24sCisgICAgICAgIC8vIGxlYXZlIGl0IHVuY2hhbmdlZC4gIE90aGVyd2lzZSBtb3ZlIHRvIG5leHQgYm91bmRhcnkuCisgICAgICAgIGludCBuZXh0UG9zID0gZkJvdW5kYXJpZXMuZm9sbG93aW5nKHBvc2l0aW9uKTsKKyAgICAgICAgaWYgKGZCb3VuZGFyaWVzLnByZXZpb3VzKCkgPT0gcG9zaXRpb24gJiYgCisgICAgICAgICAgICAgICAgb2Zmc2V0LmZQbGFjZW1lbnQ9PVRleHRPZmZzZXQuQkVGT1JFX09GRlNFVCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBvZmZzZXQuc2V0T2Zmc2V0KG5leHRQb3MsIFRleHRPZmZzZXQuQUZURVJfT0ZGU0VUKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBhZHZhbmNlVG9QcmV2aW91c0JvdW5kYXJ5KFRleHRPZmZzZXQgb2Zmc2V0KSB7CisgICAgCisgICAgICAgIGFkdmFuY2VUb1ByZXZpb3VzQm91bmRhcnkob2Zmc2V0LCBmYWxzZSk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBhZHZhbmNlVG9QcmV2aW91c0JvdW5kYXJ5KFRleHRPZmZzZXQgb2Zmc2V0LCBib29sZWFuIGFsd2F5c01vdmUpIHsKKyAgICAgICAgLy8gaWYgdGhlcmUncyBubyBib3VuZGFyaWVzIG9iamVjdCwgb3IgaWYgd2UncmUgc2l0dGluZyBhdCB0aGUgYmVnaW5uaW5nCisgICAgICAgIC8vIG9mIHRoZSBkb2N1bWVudCwgcmV0dXJuIHRoZSBvZmZzZXQgdW5jaGFuZ2VkCisgICAgICAgIGlmIChmQm91bmRhcmllcyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBwb3NpdGlvbiA9IG9mZnNldC5mT2Zmc2V0OworCisgICAgICAgIGlmIChwb3NpdGlvbiA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIElmIHBvc2l0aW9uIGlzIGF0IGEgYm91bmRhcnksIGxlYXZlIGl0IHVuY2hhbmdlZC4gIE90aGVyd2lzZQorICAgICAgICAvLyBtb3ZlIHRvIHByZXZpb3VzIGJvdW5kYXJ5LgorICAgICAgICBpZiAocG9zaXRpb24gPT0gZlRleHQubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGZCb3VuZGFyaWVzLmxhc3QoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZCb3VuZGFyaWVzLmZvbGxvd2luZyhwb3NpdGlvbik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGludCBwcmV2UG9zID0gZkJvdW5kYXJpZXMucHJldmlvdXMoKTsKKyAgICAgICAgCisgICAgICAgIGlmIChwcmV2UG9zID09IHBvc2l0aW9uKSB7CisgICAgICAgICAgICBpZiAoIWFsd2F5c01vdmUgJiYgb2Zmc2V0LmZQbGFjZW1lbnQ9PVRleHRPZmZzZXQuQUZURVJfT0ZGU0VUKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcmV2UG9zID0gZkJvdW5kYXJpZXMucHJldmlvdXMoKTsKKyAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAvLyBhbmQgZmluYWxseSB1cGRhdGUgdGhlIHJlYWwgb2Zmc2V0IHdpdGggdGhpcyBuZXcgcG9zaXRpb24gd2UndmUgZm91bmQKKyAgICAgICAgb2Zmc2V0LnNldE9mZnNldChwcmV2UG9zLCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvQXJyb3dLZXkoS2V5RXZlbnQgZSwgaW50IGtleSkgeworCisgICAgICAgIC8vIHdoZW4gdGhlcmUncyBhIHNlbGVjdGlvbiByYW5nZSwgdGhlIGxlZnQgYW5kIHVwIGFycm93IGtleXMgcGxhY2UgYW4KKyAgICAgICAgLy8gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJhbmdlLCBhbmQgdGhlIHJpZ2h0IGFuZCBkb3duCisgICAgICAgIC8vIGtleXMgcGxhY2UgYW4gaW5zZXJ0aW9uIHBvaW50IGF0IHRoZSBlbmQgb2YgdGhlIHJhbmdlICh1bmxlc3MgdGhlIHNoaWZ0CisgICAgICAgIC8vIGtleSBpcyBkb3duLCBvZiBjb3Vyc2UpCisKKyAgICAgICAgaWYgKCFmU3RhcnQuZXF1YWxzKGZMaW1pdCkgJiYgIWUuaXNTaGlmdERvd24oKSkgeworICAgICAgICAgICAgaWYgKGtleSA9PSBLZXlFdmVudC5WS19MRUZUIHx8IGtleSA9PSBLZXlFdmVudC5WS19VUCkKKyAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoZlN0YXJ0LCBmU3RhcnQsIGZTdGFydCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGZMaW1pdCwgZkxpbWl0LCBmTGltaXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKCFmQW5jaG9yLmVxdWFscyhmU3RhcnQpKQorICAgICAgICAgICAgICAgIGZBbmNob3IuYXNzaWduKGZMaW1pdCk7CisKKyAgICAgICAgICAgIFRleHRPZmZzZXQgIGxpdmVFbmQgPSAoZlN0YXJ0LmVxdWFscyhmQW5jaG9yKSkgPyBmTGltaXQgOiBmU3RhcnQ7CisgICAgICAgICAgICBUZXh0T2Zmc2V0ICBuZXdQb3MgPSBuZXcgVGV4dE9mZnNldCgpOworCisgICAgICAgICAgICAvLyBpZiB0aGUgY29udHJvbCBrZXkgaXMgZG93biwgdGhlIGxlZnQgYW5kIHJpZ2h0IGFycm93IGtleXMgbW92ZSBieSB3aG9sZQorICAgICAgICAgICAgLy8gd29yZCBpbiB0aGUgYXBwcm9wcmlhdGUgZGlyZWN0aW9uICh3ZSB1c2UgYSBsaW5lIGJyZWFrIG9iamVjdCBzbyB0aGF0IHdlJ3JlCisgICAgICAgICAgICAvLyBub3QgdHJlYXRpbmcgc3BhY2VzIGFuZCBwdW5jdHVhdGlvbiBhcyB3b3JkcykKKyAgICAgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSAmJiAoa2V5ID09IEtleUV2ZW50LlZLX0xFRlQgfHwga2V5ID09IEtleUV2ZW50LlZLX1JJR0hUKSkgeworICAgICAgICAgICAgICAgIGZVcERvd25BbmNob3IgPSBudWxsOworICAgICAgICAgICAgICAgIGZCb3VuZGFyaWVzID0gQnJlYWtJdGVyYXRvci5nZXRMaW5lSW5zdGFuY2UoKTsKKyAgICAgICAgICAgICAgICBmQm91bmRhcmllcy5zZXRUZXh0KGZUZXh0LmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKCkpOworCisgICAgICAgICAgICAgICAgbmV3UG9zLmFzc2lnbihsaXZlRW5kKTsKKyAgICAgICAgICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX1JJR0hUKQorICAgICAgICAgICAgICAgICAgICBhZHZhbmNlVG9OZXh0Qm91bmRhcnkobmV3UG9zKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGFkdmFuY2VUb1ByZXZpb3VzQm91bmRhcnkobmV3UG9zLCB0cnVlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgd2UgZ2V0IGRvd24gdG8gaGVyZSwgdGhpcyBpcyBhIHBsYWluLXZhbmlsbGEgaW5zZXJ0aW9uLXBvaW50IG1vdmUsCisgICAgICAgICAgICAvLyBvciB0aGUgc2hpZnQga2V5IGlzIGRvd24gYW5kIHdlJ3JlIGV4dGVuZGluZyBvciBzaG9ydGVuaW5nIHRoZSBzZWxlY3Rpb24KKyAgICAgICAgICAgIGVsc2UgeworCisgICAgICAgICAgICAgICAgLy8gZlVwRG93bkFuY2hvciBpcyB1c2VkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIGhvcml6b250YWwgcG9zaXRpb24KKyAgICAgICAgICAgICAgICAvLyBhY3Jvc3MgYSBydW4gb2YgdXAgb3IgZG93biBhcnJvdyBrZXlzICh0aGlzIHByZXZlbnRzIGFjY3VtdWxhdGVkCisgICAgICAgICAgICAgICAgLy8gZXJyb3IgZnJvbSBkZXN0cm95aW5nIG91ciBob3Jpem9udGFsIHBvc2l0aW9uKQorICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gS2V5RXZlbnQuVktfTEVGVCB8fCBrZXkgPT0gS2V5RXZlbnQuVktfUklHSFQpCisgICAgICAgICAgICAgICAgICAgIGZVcERvd25BbmNob3IgPSBudWxsOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoZlVwRG93bkFuY2hvciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmVXBEb3duQW5jaG9yID0gbmV3IFRleHRPZmZzZXQobGl2ZUVuZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBzaG9ydCAgIGRpcmVjdGlvbiA9IE1Gb3JtYXR0ZXIuZVJpZ2h0OyAgLy8ganVzdCB0byBoYXZlIGEgZGVmYXVsdC4uLgorCisgICAgICAgICAgICAgICAgc3dpdGNoIChrZXkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19VUDogZGlyZWN0aW9uID0gTUZvcm1hdHRlci5lVXA7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0RPV046IGRpcmVjdGlvbiA9IE1Gb3JtYXR0ZXIuZURvd247IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0xFRlQ6IGRpcmVjdGlvbiA9IE1Gb3JtYXR0ZXIuZUxlZnQ7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1JJR0hUOiBkaXJlY3Rpb24gPSBNRm9ybWF0dGVyLmVSaWdodDsgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gdXNlIHRoZSBmb3JtYXR0ZXIgdG8gZGV0ZXJtaW5lIHRoZSBhY3R1YWwgZWZmZWN0IG9mIHRoZSBhcnJvdyBrZXkKKyAgICAgICAgICAgICAgICBmVGV4dENvbXBvbmVudC5maW5kTmV3SW5zZXJ0aW9uT2Zmc2V0KG5ld1BvcywgZlVwRG93bkFuY2hvciwgbGl2ZUVuZCwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gaWYgdGhlIHNoaWZ0IGtleSBpcyBkb3duLCB0aGUgc2VsZWN0aW9uIHJhbmdlIGlzIGZyb20gdGhlIGFuY2hvciBwb2ludAorICAgICAgICAgICAgLy8gdGhlIHNpdGUgb2YgdGhlIGxhc3QgaW5zZXJ0aW9uIHBvaW50IG9yIHRoZSBiZWdpbm5pbmcgcG9pbnQgb2YgdGhlIGxhc3QKKyAgICAgICAgICAgIC8vIHNlbGVjdGlvbiBkcmFnIG9wZXJhdGlvbikgdG8gdGhlIG5ld2x5LWNhbGN1bGF0ZWQgcG9zaXRpb247IGlmIHRoZQorICAgICAgICAgICAgLy8gc2hpZnQga2V5IGlzIGRvd24sIHRoZSBuZXdseS1jYWxjdWxhdGVkIHBvc2l0aW9uIGlzIHRoZSBpbnNlcnRpb24gcG9pbnQgcG9zaXRpb24KKyAgICAgICAgICAgIGlmICghZS5pc1NoaWZ0RG93bigpKQorICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhuZXdQb3MsIG5ld1BvcywgbmV3UG9zKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChuZXdQb3MubGVzc1RoYW4oZkFuY2hvcikpCisgICAgICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhuZXdQb3MsIGZBbmNob3IsIGZBbmNob3IpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGZBbmNob3IsIG5ld1BvcywgZkFuY2hvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzY3JvbGxUb1Nob3dTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgZkJvdW5kYXJpZXMgPSBudWxsOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkb0VuZEtleShLZXlFdmVudCBlKSB7CisgICAgICAgIC8vIGN0cmwtZW5kIG1vdmVzIHRoZSBpbnNlcnRzaW9uIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50LAorICAgICAgICAvLyBjdHJsLXNoaWZ0LWVuZCBleHRlbmRzIHRoZSBzZWxlY3Rpb24gc28gdGhhdCBpdCBlbmRzIGF0IHRoZSBlbmQKKyAgICAgICAgLy8gb2YgdGhlIGRvY3VtZW50CisKKyAgICAgICAgVGV4dE9mZnNldCBhY3RpdmVFbmQsIGFuY2hvcjsKKworICAgICAgICBpZiAoZkFuY2hvci5lcXVhbHMoZlN0YXJ0KSkgeworICAgICAgICAgICAgYWN0aXZlRW5kID0gbmV3IFRleHRPZmZzZXQoZlN0YXJ0KTsKKyAgICAgICAgICAgIGFuY2hvciA9IG5ldyBUZXh0T2Zmc2V0KGZMaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhY3RpdmVFbmQgPSBuZXcgVGV4dE9mZnNldChmTGltaXQpOworICAgICAgICAgICAgYW5jaG9yID0gbmV3IFRleHRPZmZzZXQoZlN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgVGV4dE9mZnNldCBlbmQgPSBuZXcgVGV4dE9mZnNldChmVGV4dC5sZW5ndGgoKSwgVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUKTsKKworICAgICAgICAgICAgaWYgKGUuaXNTaGlmdERvd24oKSkKKyAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYW5jaG9yLCBlbmQsIGFuY2hvcik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGVuZCwgZW5kLCBlbmQpOworICAgICAgICB9CisKKyAgICAgICAgLy8gZW5kIG1vdmVzIHRoZSBpbnNlcnRpb24gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgbGluZSBjb250YWluaW5nCisgICAgICAgIC8vIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCisgICAgICAgIC8vIHNoaWZ0LWVuZCBleHRlbmRzIHRoZSBzZWxlY3Rpb24gdG8gdGhlIGVuZCBvZiB0aGUgbGluZSBjb250YWluaW5nCisgICAgICAgIC8vIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCisKKyAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgIGludCBvbGRPZmZzZXQgPSBhY3RpdmVFbmQuZk9mZnNldDsKKworICAgICAgICAgICAgYWN0aXZlRW5kLmZPZmZzZXQgPSBmVGV4dENvbXBvbmVudC5saW5lUmFuZ2VMaW1pdChmVGV4dENvbXBvbmVudC5saW5lQ29udGFpbmluZyhhY3RpdmVFbmQpKTsKKyAgICAgICAgICAgIGFjdGl2ZUVuZC5mUGxhY2VtZW50ID0gVGV4dE9mZnNldC5CRUZPUkVfT0ZGU0VUOworCisgICAgICAgICAgICBpZiAoZlRleHQucGFyYWdyYXBoTGltaXQob2xkT2Zmc2V0KSA9PSBhY3RpdmVFbmQuZk9mZnNldCAmJgorICAgICAgICAgICAgICAgICAgICBhY3RpdmVFbmQuZk9mZnNldCAhPSBmVGV4dC5sZW5ndGgoKSAmJiBhY3RpdmVFbmQuZk9mZnNldCA+IG9sZE9mZnNldCkgeworICAgICAgICAgICAgICAgIGFjdGl2ZUVuZC5mT2Zmc2V0LS07CisgICAgICAgICAgICAgICAgYWN0aXZlRW5kLmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFlLmlzU2hpZnREb3duKCkpCisgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGFjdGl2ZUVuZCwgYWN0aXZlRW5kLCBhY3RpdmVFbmQpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUVuZC5sZXNzVGhhbihhbmNob3IpKQorICAgICAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYWN0aXZlRW5kLCBhbmNob3IsIGFuY2hvcik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYW5jaG9yLCBhY3RpdmVFbmQsIGFuY2hvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzY3JvbGxUb1Nob3dTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgZkJvdW5kYXJpZXMgPSBudWxsOworICAgICAgICBmVXBEb3duQW5jaG9yID0gbnVsbDsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9Ib21lS2V5KEtleUV2ZW50IGUpIHsKKyAgICAgICAgLy8gY3RybC1ob21lIG1vdmVzIHRoZSBpbnNlcnRpb24gcG9pbnQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQsCisgICAgICAgIC8vIGN0cmwtc2hpZnQtaG9tZSBleHRlbmRzIHRoZSBzZWxlY3Rpb24gc28gdGhhdCBpdCBiZWdpbnMgYXQgdGhlIGJlZ2lubmluZworICAgICAgICAvLyBvZiB0aGUgZG9jdW1lbnQKKworICAgICAgICBUZXh0T2Zmc2V0IGFjdGl2ZUVuZCwgYW5jaG9yOworCisgICAgICAgIGlmIChmQW5jaG9yLmVxdWFscyhmU3RhcnQpKSB7CisgICAgICAgICAgICBhY3RpdmVFbmQgPSBuZXcgVGV4dE9mZnNldChmU3RhcnQpOworICAgICAgICAgICAgYW5jaG9yID0gbmV3IFRleHRPZmZzZXQoZkxpbWl0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGFjdGl2ZUVuZCA9IG5ldyBUZXh0T2Zmc2V0KGZMaW1pdCk7CisgICAgICAgICAgICBhbmNob3IgPSBuZXcgVGV4dE9mZnNldChmU3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGUuaXNDb250cm9sRG93bigpKSB7CisKKyAgICAgICAgICAgIFRleHRPZmZzZXQgc3RhcnQgPSBuZXcgVGV4dE9mZnNldCgwLCBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVCk7CisgICAgICAgICAgICBpZiAoZS5pc1NoaWZ0RG93bigpKQorICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhzdGFydCwgYW5jaG9yLCBhbmNob3IpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNldFNlbFJhbmdlQW5kRHJhdyhzdGFydCwgc3RhcnQsIHN0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGhvbWUgbW92ZXMgdGhlIGluc2VydGlvbiBwb2ludCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIGNvbnRhaW5pbmcKKyAgICAgICAgLy8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY3VycmVudCBzZWxlY3Rpb24KKyAgICAgICAgLy8gc2hpZnQtaG9tZSBleHRlbmRzIHRoZSBzZWxlY3Rpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSBjb250YWluaW5nCisgICAgICAgIC8vIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCisKKyAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgIGFjdGl2ZUVuZC5mT2Zmc2V0ID0gZlRleHRDb21wb25lbnQubGluZVJhbmdlTG93KGZUZXh0Q29tcG9uZW50LmxpbmVDb250YWluaW5nKGFjdGl2ZUVuZCkpOworICAgICAgICAgICAgYWN0aXZlRW5kLmZQbGFjZW1lbnQgPSBUZXh0T2Zmc2V0LkFGVEVSX09GRlNFVDsKKworICAgICAgICAgICAgaWYgKCFlLmlzU2hpZnREb3duKCkpCisgICAgICAgICAgICAgICAgc2V0U2VsUmFuZ2VBbmREcmF3KGFjdGl2ZUVuZCwgYWN0aXZlRW5kLCBhY3RpdmVFbmQpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZUVuZC5sZXNzVGhhbihhbmNob3IpKQorICAgICAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYWN0aXZlRW5kLCBhbmNob3IsIGFuY2hvcik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoYW5jaG9yLCBhY3RpdmVFbmQsIGFuY2hvcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzY3JvbGxUb1Nob3dTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgZkJvdW5kYXJpZXMgPSBudWxsOworICAgICAgICBmVXBEb3duQW5jaG9yID0gbnVsbDsKKyAgICB9CisKKyAgICAvKiogZHJhd3Mgb3IgZXJhc2VzIHRoZSBjdXJyZW50IHNlbGVjdGlvbgorICAgICogRHJhd3Mgb3IgZXJhc2VzIHRoZSBoaWdobGlnaHQgcmVnaW9uIG9yIGluc2VydGlvbiBjYXJldCBmb3IgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCisgICAgKiByYW5nZS4KKyAgICAqIEBwYXJhbSBnIFRoZSBncmFwaGljcyBlbnZpcm9ubWVudCB0byBkcmF3IGludG8KKyAgICAqIEBwYXJhbSB2aXNpYmxlIElmIHRydWUsIGRyYXcgdGhlIHNlbGVjdGlvbjsgaWYgZmFsc2UsIGVyYXNlIGl0CisgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBkcmF3U2VsZWN0aW9uKEdyYXBoaWNzIGcsIGJvb2xlYW4gdmlzaWJsZSkgeworICAgICAgICBkcmF3U2VsZWN0aW9uUmFuZ2UoZywgZlN0YXJ0LCBmTGltaXQsIHZpc2libGUpOworICAgIH0KKworICAgIC8qKiBkcmF3cyBvciBlcmFzZXMgYSBzZWxlY3Rpb24gaGlnaGxpZ2h0IGF0IHRoZSBzcGVjZmllZCBwb3NpdGlvbnMKKyAgICAqIERyYXdzIG9yIGVyYXNlcyBhIHNlbGVjdGlvbiBoaWdobGlnaHQgb3IgaW5zZXJ0aW9uIGNhcmV0IGNvcnJlc3BvbmRpbmcgdG8KKyAgICAqIHRoZSBzcGVjaWZpZWQgc2VsZWNpb24gcmFuZ2UKKyAgICAqIEBwYXJhbSBnIFRoZSBncmFwaGljcyBlbnZpcm9ubWVudCB0byBkcmF3IGludG8uICBJZiBudWxsLCB0aGlzIG1ldGhvZCBkb2VzIG5vdGhpbmcuCisgICAgKiBAcGFyYW0gc3RhcnQgVGhlIGJlZ2lubmluZyBvZiB0aGUgcmFuZ2UgdG8gaGlnaGxpZ2h0CisgICAgKiBAcGFyYW0gbGltaXQgVGhlIGVuZCBvZiB0aGUgcmFuZ2UgdG8gaGlnaGxpZ2h0CisgICAgKiBAcGFyYW0gdmlzaWJsZSBJZiB0cnVlLCBkcmF3OyBpZiBmYWxzZSwgZXJhc2UKKyAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGRyYXdTZWxlY3Rpb25SYW5nZSggIEdyYXBoaWNzICAgIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCAgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCAgbGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiAgICAgdmlzaWJsZSkgeworICAgICAgICBpZiAoZyA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgUmVjdGFuZ2xlICAgc2VsQm91bmRzID0gZlRleHRDb21wb25lbnQuZ2V0Qm91bmRpbmdSZWN0KHN0YXJ0LCBsaW1pdCk7CisKKyAgICAgICAgc2VsQm91bmRzLndpZHRoID0gTWF0aC5tYXgoMSwgc2VsQm91bmRzLndpZHRoKTsKKyAgICAgICAgc2VsQm91bmRzLmhlaWdodCA9IE1hdGgubWF4KDEsIHNlbEJvdW5kcy5oZWlnaHQpOworCisgICAgICAgIGZUZXh0Q29tcG9uZW50LmRyYXdUZXh0KGcsIHNlbEJvdW5kcywgdmlzaWJsZSwgc3RhcnQsIGxpbWl0LCBmSGlnaGxpZ2h0Q29sb3IpOworICAgIH0KKworICAgIHByb3RlY3RlZCBUZXh0T2Zmc2V0IGdldEFuY2hvcigpIHsKKyAgICAgICAgcmV0dXJuIGZBbmNob3I7CisgICAgfQorCisgICAgcHVibGljIFRleHRPZmZzZXQgZ2V0RW5kKCkgeworICAgICAgICByZXR1cm4gZkxpbWl0OworICAgIH0KKworICAgIHB1YmxpYyBDb2xvciBnZXRIaWdobGlnaHRDb2xvcigpIHsKKyAgICAgICAgcmV0dXJuIGZIaWdobGlnaHRDb2xvcjsKKyAgICB9CisKKyAgICBwdWJsaWMgVGV4dE9mZnNldCBnZXRTdGFydCgpIHsKKyAgICAgICAgcmV0dXJuIGZTdGFydDsKKyAgICB9CisKKyAgICBwdWJsaWMgVGV4dFJhbmdlIGdldFNlbGVjdGlvblJhbmdlKCkgeworCisgICAgICAgIHJldHVybiBuZXcgVGV4dFJhbmdlKGZTdGFydC5mT2Zmc2V0LCBmTGltaXQuZk9mZnNldCk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZm9jdXNHYWluZWQoRm9jdXNFdmVudCBlKSB7CisKKyAgICAgICAgc2V0RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgZHJhd1NlbGVjdGlvbihmVGV4dENvbXBvbmVudC5nZXRHcmFwaGljcygpLCB0cnVlKTsKKworICAgICAgICByZXN0YXJ0Q2FyZXRCbGlua2luZyh0cnVlKTsKKyAgICAgICAgaWYgKGZQZW5kaW5nTW91c2VFdmVudCAhPSBudWxsKSB7CisgICAgICAgICAgICBtb3VzZVByZXNzZWQoZlBlbmRpbmdNb3VzZUV2ZW50KTsKKyAgICAgICAgICAgIGZQZW5kaW5nTW91c2VFdmVudCA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuQ0xJUEJPQVJEX0NIQU5HRUQpOworIAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBmb2N1c0xvc3QoRm9jdXNFdmVudCBlKSB7CisgICAgICAgIHN0b3BDYXJldEJsaW5raW5nKCk7CisgICAgICAgIHNldEVuYWJsZWQoZmFsc2UpOworICAgICAgICBkcmF3U2VsZWN0aW9uKGZUZXh0Q29tcG9uZW50LmdldEdyYXBoaWNzKCksIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIGtleSBldmVudCBjYW4gYWZmZWN0IHRoZSBzZWxlY3Rpb24KKyAgICAgKiByYW5nZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4ga2V5QWZmZWN0c1NlbGVjdGlvbihLZXlFdmVudCBlKSB7CisKKyAgICAgICAgaWYgKGUuZ2V0SUQoKSAhPSBLZXlFdmVudC5LRVlfUFJFU1NFRCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaW50IGtleSA9IGUuZ2V0S2V5Q29kZSgpOworCisgICAgICAgIHN3aXRjaCAoa2V5KSB7CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0hPTUU6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0VORDoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfTEVGVDoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfUklHSFQ6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX1VQOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19ET1dOOgorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGtleVByZXNzZWQoS2V5RXZlbnQgZSkgeworCisgICAgICAgIGZIYW5kbGluZ0tleU9yQ29tbWFuZCA9IHRydWU7CisgICAgICAgIGludCBrZXkgPSBlLmdldEtleUNvZGUoKTsKKyAgICAgICAgYm9vbGVhbiByZXN1bHQgPSB0cnVlOworICAgICAgICAKKyAgICAgICAgc3dpdGNoIChrZXkpIHsKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfSE9NRToKKyAgICAgICAgICAgICAgICBkb0hvbWVLZXkoZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0VORDoKKyAgICAgICAgICAgICAgICBkb0VuZEtleShlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19MRUZUOgorICAgICAgICAgICAgY2FzZSBLZXlFdmVudC5WS19SSUdIVDoKKyAgICAgICAgICAgIGNhc2UgS2V5RXZlbnQuVktfVVA6CisgICAgICAgICAgICBjYXNlIEtleUV2ZW50LlZLX0RPV046CisgICAgICAgICAgICAgICAgZG9BcnJvd0tleShlLCBrZXkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBmVXBEb3duQW5jaG9yID0gbnVsbDsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkhhbmRsaW5nS2V5T3JDb21tYW5kID0gZmFsc2U7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbW91c2VQcmVzc2VkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIGlmICghZW5hYmxlZCgpKSB7CisgICAgICAgICAgICBmUGVuZGluZ01vdXNlRXZlbnQgPSBlOworICAgICAgICAgICAgZlRleHRDb21wb25lbnQucmVxdWVzdEZvY3VzKCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZk1vdXNlRG93bikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiZk1vdXNlRG93biBpcyBvdXQgb2Ygc3luYyB3aXRoIG1vdXNlIGluIFRleHRTZWxlY3Rpb24uIik7CisKKyAgICAgICAgZk1vdXNlRG93biA9IHRydWU7CisgICAgICAgIHN0b3BDYXJldEJsaW5raW5nKCk7CisKKyAgICAgICAgaW50IHggPSBlLmdldFgoKSwgeSA9IGUuZ2V0WSgpOworICAgICAgICBib29sZWFuIHdhc1plcm9MZW5ndGggPSByYW5nZUlzWmVyb0xlbmd0aChmU3RhcnQsIGZMaW1pdCwgZkFuY2hvcik7CisgICAgICAgIAorICAgICAgICBUZXh0T2Zmc2V0IGN1cnJlbnQgPSBmVGV4dENvbXBvbmVudC5wb2ludFRvVGV4dE9mZnNldChudWxsLCB4LCB5LCBudWxsLCB0cnVlKTsKKyAgICAgICAgVGV4dE9mZnNldCBhbmNob3JTdGFydCA9IG5ldyBUZXh0T2Zmc2V0KCk7CisgICAgICAgIFRleHRPZmZzZXQgYW5jaG9yRW5kID0gbmV3IFRleHRPZmZzZXQoKTsKKworICAgICAgICBmVXBEb3duQW5jaG9yID0gbnVsbDsKKworICAgICAgICAvLyBpZiB3ZSdyZSBub3QgZXh0ZW5kaW5nIHRoZSBzZWxlY3Rpb24uLi4KKyAgICAgICAgaWYgKCFlLmlzU2hpZnREb3duKCkpIHsKKworICAgICAgICAgICAgLy8gaWYgdGhlcmUgYXJlIG11bHRpcGxlIGNsaWNrcywgY3JlYXRlIHRoZSBhcHBvcHJpYXRlIHR5cGUgb2YgQnJlYWtJdGVyYXRvcgorICAgICAgICAgICAgLy8gb2JqZWN0IGZvciBmaW5kaW5nIHRleHQgYm91bmRhcmllcyAoc2luZ2xlIGNsaWNrcyBkb24ndCB1c2UgYSBCcmVha0l0ZXJhdG9yCisgICAgICAgICAgICAvLyBvYmplY3QpCisgICAgICAgICAgICBpZiAoZS5nZXRDbGlja0NvdW50KCkgPT0gMikKKyAgICAgICAgICAgICAgICBmQm91bmRhcmllcyA9IEJyZWFrSXRlcmF0b3IuZ2V0V29yZEluc3RhbmNlKCk7CisgICAgICAgICAgICBlbHNlIGlmIChlLmdldENsaWNrQ291bnQoKSA9PSAzKQorICAgICAgICAgICAgICAgIGZCb3VuZGFyaWVzID0gQnJlYWtJdGVyYXRvci5nZXRTZW50ZW5jZUluc3RhbmNlKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZkJvdW5kYXJpZXMgPSBudWxsOworCisgICAgICAgICAgICAvLyBpZiB3ZSdyZSB1c2luZyBhIEJyZWFrSXRlcmF0b3Igb2JqZWN0LCB1c2UgaXQgdG8gZmluZCB0aGUgbmVhcmVzdCBib3VuZGFyaWVzCisgICAgICAgICAgICAvLyBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgbW91c2UtY2xpY2sgcG9zaXRpb24gYW5kIG1ha2UgdGhlbSBvdXIgYW5jaG9yIHJhbmdlCisgICAgICAgICAgICBpZiAoZkJvdW5kYXJpZXMgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICBmQm91bmRhcmllcy5zZXRUZXh0KGZUZXh0LmNyZWF0ZUNoYXJhY3Rlckl0ZXJhdG9yKCkpOworCisgICAgICAgICAgICBhbmNob3JTdGFydC5hc3NpZ24oY3VycmVudCk7CisgICAgICAgICAgICBhZHZhbmNlVG9QcmV2aW91c0JvdW5kYXJ5KGFuY2hvclN0YXJ0KTsKKyAgICAgICAgICAgIGFuY2hvckVuZC5hc3NpZ24oY3VycmVudCk7CisgICAgICAgICAgICBhZHZhbmNlVG9OZXh0Qm91bmRhcnkoYW5jaG9yRW5kKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlmIHdlIF9hcmVfIGV4dGVuZGluZyB0aGUgc2VsZWN0aW9uLCBkZXRlcm1pbmUgb3VyIGFuY2hvciByYW5nZSBhcyBmb2xsb3dzOgorICAgICAgICAvLyBmQW5jaG9yIGlzIHRoZSBzdGFydCBvZiB0aGUgYW5jaG9yIHJhbmdlOworICAgICAgICAvLyB0aGUgbmV4dCBib3VuZGFyeSAoYWZ0ZXIgZkFuY2hvcikgaXMgdGhlIGxpbWl0IG9mIHRoZSBhbmNob3IgcmFuZ2UuCisKKyAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgIGlmIChmQm91bmRhcmllcyAhPSBudWxsKQorICAgICAgICAgICAgICAgIGZCb3VuZGFyaWVzLnNldFRleHQoZlRleHQuY3JlYXRlQ2hhcmFjdGVySXRlcmF0b3IoKSk7CisKKyAgICAgICAgICAgIGFuY2hvclN0YXJ0LmFzc2lnbihmQW5jaG9yKTsKKyAgICAgICAgICAgIGFuY2hvckVuZC5hc3NpZ24oYW5jaG9yU3RhcnQpOworCisgICAgICAgICAgICBhZHZhbmNlVG9OZXh0Qm91bmRhcnkoYW5jaG9yRW5kKTsKKyAgICAgICAgfQorCisgICAgICAgIFNlbGVjdGlvbkRyYWdJbnRlcmFjdG9yIGludGVyYWN0b3IgPSBuZXcgU2VsZWN0aW9uRHJhZ0ludGVyYWN0b3IodGhpcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlRleHRDb21wb25lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlJ1blN0cmF0ZWd5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvclN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvckVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXNaZXJvTGVuZ3RoKTsKKworICAgICAgICBpbnRlcmFjdG9yLmFkZFRvT3duZXIoZlRleHRDb21wb25lbnQpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlUmVsZWFzZWQoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgZlBlbmRpbmdNb3VzZUV2ZW50ID0gbnVsbDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIGRyYWcgaW50ZXJhY3RvciBjYWxscyB0aGlzCisgICAgdm9pZCBtb3VzZVJlbGVhc2VkKGJvb2xlYW4gemVyb0xlbmd0aENoYW5nZSkgeworCisgICAgICAgIGZNb3VzZURvd24gPSBmYWxzZTsKKworICAgICAgICBpZiAoemVyb0xlbmd0aENoYW5nZSkgeworICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX0VNUFRZX0NIQU5HRUQpOworICAgICAgICB9CisgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9SQU5HRV9DSEFOR0VEKTsKKyAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEKTsKKworICAgICAgICAvLyBpZiBjYXJldCBkcmF3aW5nIGR1cmluZyBtb3VzZSBkcmFncyBpcyBzdXByZXNzZWQsIGRyYXcgY2FyZXQgbm93LgorCisgICAgICAgIHJlc3RhcnRDYXJldEJsaW5raW5nKHRydWUpOworICAgIH0KKworCisgICAgLyoqIGRyYXdzIHRoZSBzZWxlY3Rpb24KKyAgICAqIFByb3ZpZGVkLCBvZiBjb3Vyc2UsIHRoYXQgdGhlIHNlbGVjdGlvbiBpcyB2aXNpYmxlLCB0aGUgYWRvcm5lciBpcyBlbmFibGVkLAorICAgICogYW5kIHdlJ3JlIGNhbGxpbmcgaXQgdG8gYWRvcm4gdGhlIHZpZXcgaXQgYWN0dWFsbHkgYmVsb25ncyB0bworICAgICogQHBhcmFtIGcgVGhlIGdyYXBoaWNzIGVudmlyb25tZW50IHRvIGRyYXcgaW50bworICAgICogQHJldHVybiB0cnVlIGlmIHdlIGFjdHVhbGx5IGRyZXcKKyAgICAqLworICAgIHB1YmxpYyBib29sZWFuIHBhaW50KEdyYXBoaWNzIGcsIFJlY3RhbmdsZSBkcmF3UmVjdCkgeworICAgICAgICAvLyBkb24ndCBkcmF3IGFueXRoaW5nIHVubGVzcyB3ZSdyZSBlbmFibGVkIGFuZCB0aGUgc2VsZWN0aW9uIGlzIHZpc2libGUKKyAgICAgICAgaWYgKCFlbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgZlRleHRDb21wb25lbnQuZHJhd1RleHQoZywgZHJhd1JlY3QsIHRydWUsIGZTdGFydCwgZkxpbWl0LCBmSGlnaGxpZ2h0Q29sb3IpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvKiogc2Nyb2xscyB0aGUgdmlldyB0byByZXZlYWwgdGhlIGxpdmUgZW5kIG9mIHRoZSBzZWxlY3Rpb24KKyAgICAqIChpLmUuLCB0aGUgZW5kIHRoYXQgbW92ZXMgaWYgeW91IHVzZSB0aGUgYXJyb3cga2V5cyB3aXRoIHRoZSBzaGlmdCBrZXkgZG93bikKKyAgICAqLworICAgIHB1YmxpYyB2b2lkIHNjcm9sbFRvU2hvd1NlbGVjdGlvbigpIHsKKyAgICAgICAgUmVjdGFuZ2xlICAgc2VsUmVjdCA9IGZUZXh0Q29tcG9uZW50LmdldEJvdW5kaW5nUmVjdChmU3RhcnQsIGZMaW1pdCk7CisKKyAgICAgICAgZlRleHRDb21wb25lbnQuc2Nyb2xsVG9TaG93KHNlbFJlY3QpOworICAgIH0KKworICAgIC8qKiBzY3JvbGxzIHRoZSB2aWV3IHRvIHJldmVhbCB0aGUgbGl2ZSBlbmQgb2YgdGhlIHNlbGVjdGlvbgorICAgICogKGkuZS4sIHRoZSBlbmQgdGhhdCBtb3ZlcyBpZiB5b3UgdXNlIHRoZSBhcnJvdyBrZXlzIHdpdGggdGhlIHNoaWZ0IGtleSBkb3duKQorICAgICovCisgICAgcHVibGljIHZvaWQgc2Nyb2xsVG9TaG93U2VsZWN0aW9uRW5kKCkgeworICAgICAgICBUZXh0T2Zmc2V0ICBsaXZlRW5kOworICAgICAgICAvLyB2YXJpYWJsZSBub3QgdXNlZCBQb2ludFtdICAgICBwb2ludHM7CisgICAgICAgIFJlY3RhbmdsZSAgIGNhcmV0OworCisgICAgICAgIGlmIChmQW5jaG9yLmVxdWFscyhmU3RhcnQpKQorICAgICAgICAgICAgbGl2ZUVuZCA9IGZMaW1pdDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbGl2ZUVuZCA9IGZTdGFydDsKKworICAgICAgICAvL3BvaW50cyA9IGZUZXh0Q29tcG9uZW50LnRleHRPZmZzZXRUb1BvaW50KGxpdmVFbmQpOworICAgICAgICAvL2NhcmV0ID0gbmV3IFJlY3RhbmdsZShwb2ludHNbMF0pOworICAgICAgICAvL2NhcmV0ID0gY2FyZXQudW5pb24obmV3IFJlY3RhbmdsZShwb2ludHNbMV0pKTsKKyAgICAgICAgY2FyZXQgPSBmVGV4dENvbXBvbmVudC5nZXRDYXJldFJlY3QobGl2ZUVuZCk7CisgICAgICAgIGZUZXh0Q29tcG9uZW50LnNjcm9sbFRvU2hvdyhjYXJldCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHNlbGVjdChUZXh0UmFuZ2UgcmFuZ2UpIHsKKyAgICAgICAgLy8gdmFyaWFibGUgbm90IHVzZWQgaW50IHRleHRMZW5ndGggPSBmVGV4dENvbXBvbmVudC5nZXRUZXh0KCkubGVuZ3RoKCk7CisKKyAgICAgICAgVGV4dE9mZnNldCBzdGFydCA9IG5ldyBUZXh0T2Zmc2V0KHJhbmdlLnN0YXJ0KTsKKworICAgICAgICBzdG9wQ2FyZXRCbGlua2luZygpOworICAgICAgICBzZXRTZWxSYW5nZUFuZERyYXcoc3RhcnQsIG5ldyBUZXh0T2Zmc2V0KHJhbmdlLmxpbWl0KSwgc3RhcnQpOworICAgICAgICByZXN0YXJ0Q2FyZXRCbGlua2luZyh0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRIaWdobGlnaHRDb2xvcihDb2xvciBuZXdDb2xvcikgeworICAgICAgICBmSGlnaGxpZ2h0Q29sb3IgPSBuZXdDb2xvcjsKKyAgICAgICAgaWYgKGVuYWJsZWQoKSkKKyAgICAgICAgICAgIGRyYXdTZWxlY3Rpb24oZlRleHRDb21wb25lbnQuZ2V0R3JhcGhpY3MoKSwgdHJ1ZSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBib29sZWFuIHJhbmdlSXNaZXJvTGVuZ3RoKFRleHRPZmZzZXQgc3RhcnQsIFRleHRPZmZzZXQgbGltaXQsIFRleHRPZmZzZXQgYW5jaG9yKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gc3RhcnQuZk9mZnNldCA9PSBsaW1pdC5mT2Zmc2V0ICYmIGFuY2hvci5mT2Zmc2V0ID09IGxpbWl0LmZPZmZzZXQ7CisgICAgfQorCisgICAgLy8gc2lnaC4uLiBsb29rIG91dCBmb3IgYWxpYXNpbmcKKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShUZXh0T2Zmc2V0IG5ld1N0YXJ0LCBUZXh0T2Zmc2V0IG5ld0xpbWl0LCBUZXh0T2Zmc2V0IG5ld0FuY2hvcikgeworCisgICAgICAgIGJvb2xlYW4gemVyb0xlbmd0aENoYW5nZSA9IHJhbmdlSXNaZXJvTGVuZ3RoKG5ld1N0YXJ0LCBuZXdMaW1pdCwgbmV3QW5jaG9yKSAhPSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlSXNaZXJvTGVuZ3RoKGZTdGFydCwgZkxpbWl0LCBmQW5jaG9yKTsKKyAgICAgICAgVGV4dE9mZnNldCB0ZW1wTmV3QW5jaG9yOworICAgICAgICBpZiAobmV3QW5jaG9yID09IGZTdGFydCB8fCBuZXdBbmNob3IgPT0gZkxpbWl0KSB7CisgICAgICAgICAgICB0ZW1wTmV3QW5jaG9yID0gbmV3IFRleHRPZmZzZXQobmV3QW5jaG9yKTsgLy8gY2xvbmUgaW4gY2FzZSBvZiBhbGlhc2luZworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGVtcE5ld0FuY2hvciA9IG5ld0FuY2hvcjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERFQlVHIHtqYnJ9CisKKyAgICAgICAgaWYgKG5ld1N0YXJ0LmdyZWF0ZXJUaGFuKG5ld0xpbWl0KSkKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIlNlbGVjdGlvbiBsaW1pdCBpcyBiZWZvcmUgc2VsZWN0aW9uIHN0YXJ0LiIpOworCisgICAgICAgIGlmIChuZXdMaW1pdCAhPSBmU3RhcnQpIHsKKyAgICAgICAgICAgIGZTdGFydC5hc3NpZ24obmV3U3RhcnQpOworICAgICAgICAgICAgZkxpbWl0LmFzc2lnbihuZXdMaW1pdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmTGltaXQuYXNzaWduKG5ld0xpbWl0KTsKKyAgICAgICAgICAgIGZTdGFydC5hc3NpZ24obmV3U3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgZkFuY2hvci5hc3NpZ24odGVtcE5ld0FuY2hvcik7CisKKyAgICAgICAgaWYgKGZTdGFydC5mT2Zmc2V0ID09IGZMaW1pdC5mT2Zmc2V0KSB7CisgICAgICAgICAgICBmU3RhcnQuZlBsYWNlbWVudCA9IGZBbmNob3IuZlBsYWNlbWVudDsKKyAgICAgICAgICAgIGZMaW1pdC5mUGxhY2VtZW50ID0gZkFuY2hvci5mUGxhY2VtZW50OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoIWZNb3VzZURvd24pIHsKKyAgICAgICAgICAgIGlmICh6ZXJvTGVuZ3RoQ2hhbmdlKSB7CisgICAgICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX0VNUFRZX0NIQU5HRUQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZkxpc3RlbmVyLnRleHRTdGF0ZUNoYW5nZWQoVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1JBTkdFX0NIQU5HRUQpOworICAgICAgICAgICAgaWYgKGZIYW5kbGluZ0tleU9yQ29tbWFuZCkgeworICAgICAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgc29ydE9mZnNldHMoVGV4dE9mZnNldCBvZmZzZXRzW10pIHsKKworICAgICAgICBpbnQgaSwgajsKKworICAgICAgICBmb3IgKGk9MDsgaSA8IG9mZnNldHMubGVuZ3RoLTE7IGkrKykgeworICAgICAgICAgICAgZm9yIChqPWkrMTsgaiA8IG9mZnNldHMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgICAgICBpZiAob2Zmc2V0c1tqXS5sZXNzVGhhbihvZmZzZXRzW2ldKSkgeworICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHRlbXAgPSBvZmZzZXRzW2pdOworICAgICAgICAgICAgICAgICAgICBvZmZzZXRzW2pdID0gb2Zmc2V0c1tpXTsKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0c1tpXSA9IHRlbXA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gREVCVUcge2picn0KKyAgICAgICAgZm9yIChpPTA7IGkgPCBvZmZzZXRzLmxlbmd0aC0xOyBpKyspCisgICAgICAgICAgICBpZiAob2Zmc2V0c1tpXS5ncmVhdGVyVGhhbihvZmZzZXRzW2krMV0pKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigic29ydE9mZnNldHMgZmFpbGVkISIpOworICAgIH0KKworICAgIHByaXZhdGUgUmVjdGFuZ2xlIGdldFNlbGVjdGlvbkNoYW5nZVJlY3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IHJhbmdlU3RhcnQsIFRleHRPZmZzZXQgcmFuZ2VMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgb2xkU3RhcnQsIFRleHRPZmZzZXQgb2xkTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IG5ld1N0YXJ0LCBUZXh0T2Zmc2V0IG5ld0xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBkcmF3SWZJbnNQb2ludCkgeworCisgICAgICAgIGlmICghcmFuZ2VTdGFydC5lcXVhbHMocmFuZ2VMaW1pdCkpCisgICAgICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0Qm91bmRpbmdSZWN0KHJhbmdlU3RhcnQsIHJhbmdlTGltaXQpOworCisgICAgICAgIC8vIGhlcmUsIHJhbmdlU3RhcnQgYW5kIHJhbmdlTGltaXQgYXJlIGVxdWFsCisKKyAgICAgICAgaWYgKHJhbmdlU3RhcnQuZXF1YWxzKG9sZExpbWl0KSkgeworCisgICAgICAgICAgICAvLyByYW5nZSBzdGFydCBpcyBPTEQgaW5zZXJ0aW9uIHBvaW50LiAgUmVkcmF3IGlmIGNhcmV0IGlzIGN1cnJlbnRseSB2aXNpYmxlLgorCisgICAgICAgICAgICBpZiAoZkNhcmV0SXNWaXNpYmxlKQorICAgICAgICAgICAgICAgIHJldHVybiBmVGV4dENvbXBvbmVudC5nZXRCb3VuZGluZ1JlY3QocmFuZ2VTdGFydCwgcmFuZ2VTdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAocmFuZ2VTdGFydC5lcXVhbHMobmV3TGltaXQpKSB7CisKKyAgICAgICAgICAgIC8vIHJhbmdlIHN0YXJ0IGlzIE5FVyBpbnNlcnRpb24gcG9pbnQuCisKKyAgICAgICAgICAgIGlmIChkcmF3SWZJbnNQb2ludCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZlRleHRDb21wb25lbnQuZ2V0Qm91bmRpbmdSZWN0KHJhbmdlU3RhcnQsIHJhbmdlU3RhcnQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiByZWN0YW5nbGVzT3ZlcmxhcFZlcnRpY2FsbHkoUmVjdGFuZ2xlIHIxLCBSZWN0YW5nbGUgcjIpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChyMSA9PSBudWxsIHx8IHIyID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHIxLnkgPD0gcjIueSArIHIyLmhlaWdodCB8fCByMi55IDw9IHIxLnkgKyByMS5oZWlnaHQ7CisgICAgfQorICAgIAorICAgIC8vIFVwZGF0ZSB0byBzaG93IG5ldyBzZWxlY3Rpb24sIHJlZHJhd2luZyBhcyBsaXR0bGUgYXMgcG9zc2libGUKKworICAgIHByaXZhdGUgdm9pZCB1cGRhdGVTZWxlY3Rpb25EaXNwbGF5KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRPZmZzZXQgb2xkU3RhcnQsIFRleHRPZmZzZXQgb2xkTGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dE9mZnNldCBuZXdTdGFydCwgVGV4dE9mZnNldCBuZXdMaW1pdCwgYm9vbGVhbiBkcmF3SWZJbnNQb2ludCkgeworCisgICAgICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJuZXdTdGFydDoiICsgbmV3U3RhcnQgKyAiOyBuZXdMaW1pdDoiICsgbmV3TGltaXQpOworCisgICAgICAgIFRleHRPZmZzZXQgb2ZmW10gPSBuZXcgVGV4dE9mZnNldFs0XTsKKworICAgICAgICBvZmZbMF0gPSBvbGRTdGFydDsKKyAgICAgICAgb2ZmWzFdID0gb2xkTGltaXQ7CisgICAgICAgIG9mZlsyXSA9IG5ld1N0YXJ0OworICAgICAgICBvZmZbM10gPSBuZXdMaW1pdDsKKworICAgICAgICBzb3J0T2Zmc2V0cyhvZmYpOworCisgICAgICAgIFJlY3RhbmdsZSByMSA9IGdldFNlbGVjdGlvbkNoYW5nZVJlY3Qob2ZmWzBdLCBvZmZbMV0sIG9sZFN0YXJ0LCBvbGRMaW1pdCwgbmV3U3RhcnQsIG5ld0xpbWl0LCBkcmF3SWZJbnNQb2ludCk7CisgICAgICAgIFJlY3RhbmdsZSByMiA9IGdldFNlbGVjdGlvbkNoYW5nZVJlY3Qob2ZmWzJdLCBvZmZbM10sIG9sZFN0YXJ0LCBvbGRMaW1pdCwgbmV3U3RhcnQsIG5ld0xpbWl0LCBkcmF3SWZJbnNQb2ludCk7CisKKyAgICAgICAgYm9vbGVhbiBkcmF3U2VsZWN0aW9uID0gZHJhd0lmSW5zUG9pbnQgfHwgIW5ld1N0YXJ0LmVxdWFscyhuZXdMaW1pdCk7CisKKyAgICAgICAgaWYgKHJlY3RhbmdsZXNPdmVybGFwVmVydGljYWxseShyMSwgcjIpKSB7CisKKyAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LmRyYXdUZXh0KGZUZXh0Q29tcG9uZW50LmdldEdyYXBoaWNzKCksIHIxLnVuaW9uKHIyKSwgZHJhd1NlbGVjdGlvbiwgbmV3U3RhcnQsIG5ld0xpbWl0LCBmSGlnaGxpZ2h0Q29sb3IpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKHIxICE9IG51bGwpCisgICAgICAgICAgICAgICAgZlRleHRDb21wb25lbnQuZHJhd1RleHQoZlRleHRDb21wb25lbnQuZ2V0R3JhcGhpY3MoKSwgcjEsIGRyYXdTZWxlY3Rpb24sIG5ld1N0YXJ0LCBuZXdMaW1pdCwgZkhpZ2hsaWdodENvbG9yKTsKKyAgICAgICAgICAgIGlmIChyMiAhPSBudWxsKQorICAgICAgICAgICAgICAgIGZUZXh0Q29tcG9uZW50LmRyYXdUZXh0KGZUZXh0Q29tcG9uZW50LmdldEdyYXBoaWNzKCksIHIyLCBkcmF3U2VsZWN0aW9uLCBuZXdTdGFydCwgbmV3TGltaXQsIGZIaWdobGlnaHRDb2xvcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRTZWxSYW5nZUFuZERyYXcoVGV4dE9mZnNldCBuZXdTdGFydCwgVGV4dE9mZnNldCBuZXdMaW1pdCwgVGV4dE9mZnNldCBuZXdBbmNob3IpIHsKKworICAgICAgICAvLyBpZiB0aGUgb2xkIGFuZCBuZXcgc2VsZWN0aW9uIHJhbmdlcyBhcmUgdGhlIHNhbWUsIGRvbid0IGRvIGFueXRoaW5nCisgICAgICAgIGlmIChmU3RhcnQuZXF1YWxzKG5ld1N0YXJ0KSAmJiBmTGltaXQuZXF1YWxzKG5ld0xpbWl0KSAmJiBmQW5jaG9yLmVxdWFscyhuZXdBbmNob3IpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChlbmFibGVkKCkpCisgICAgICAgICAgICBzdG9wQ2FyZXRCbGlua2luZygpOworCisgICAgICAgIC8vIHVwZGF0ZSB0aGUgc2VsZWN0aW9uIG9uIHNjcmVlbiBpZiB3ZSdyZSBlbmFibGVkIGFuZCB2aXNpYmxlCisKKyAgICAgICAgVGV4dE9mZnNldCBvbGRTdGFydCA9IG5ldyBUZXh0T2Zmc2V0KGZTdGFydCksIG9sZExpbWl0ID0gbmV3IFRleHRPZmZzZXQoZkxpbWl0KTsKKworICAgICAgICBzZXRTZWxlY3Rpb25SYW5nZShuZXdTdGFydCwgbmV3TGltaXQsIG5ld0FuY2hvcik7CisKKyAgICAgICAgaWYgKGVuYWJsZWQoKSkgeworCisgICAgICAgICAgICAgICAgLy8gVG8gc3VwcmVzcyBkcmF3aW5nIGEgY2FyZXQgZHVyaW5nIGEgbW91c2UgZHJhZywgcGFzcyAhZk1vdXNlRG93biBpbnN0ZWFkIG9mIHRydWU6CisgICAgICAgICAgICAgICAgdXBkYXRlU2VsZWN0aW9uRGlzcGxheShvbGRTdGFydCwgb2xkTGltaXQsIGZTdGFydCwgZkxpbWl0LCB0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZk1vdXNlRG93biAmJiBlbmFibGVkKCkpCisgICAgICAgICAgICByZXN0YXJ0Q2FyZXRCbGlua2luZyh0cnVlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzdG9wQ2FyZXRCbGlua2luZygpIHsKKworICAgICAgICBzeW5jaHJvbml6ZWQodGhpcykgeworICAgICAgICAgICAgZkNhcmV0U2hvdWxkQmxpbmsgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworLyoqCisqIFJlc3VtZSBibGlua2luZyB0aGUgY2FyZXQsIGlmIHRoZSBzZWxlY3Rpb24gaXMgYW4gaW5zZXJ0aW9uIHBvaW50LgorKiBAcGFyYW0gY2FyZXRJc1Zpc2libGUgdHJ1ZSBpZiB0aGUgY2FyZXQgaXMgZGlzcGxheWVkIHdoZW4gdGhpcyBpcyBjYWxsZWQuCisqIFRoaXMgbWV0aG9kIHJlbGllcyBvbiB0aGUgY2xpZW50IHRvIGRpc3BsYXkgKG9yIG5vdCBkaXNwbGF5KSB0aGUgY2FyZXQuCisqLworICAgIHB1YmxpYyB2b2lkIHJlc3RhcnRDYXJldEJsaW5raW5nKGJvb2xlYW4gY2FyZXRJc1Zpc2libGUpIHsKKworICAgICAgICBzeW5jaHJvbml6ZWQodGhpcykgeworICAgICAgICAgICAgZkNhcmV0U2hvdWxkQmxpbmsgPSBmU3RhcnQuZXF1YWxzKGZMaW1pdCk7CisgICAgICAgICAgICBmQ2FyZXRDb3VudCA9IDA7CisgICAgICAgICAgICBmQ2FyZXRJc1Zpc2libGUgPSBjYXJldElzVmlzaWJsZTsKKworICAgICAgICAgICAgaWYgKGZDYXJldFNob3VsZEJsaW5rKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbm90aWZ5KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChJbGxlZ2FsTW9uaXRvclN0YXRlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDYXVnaHQgSWxsZWdhbE1vbml0b3JTdGF0ZUV4Y2VwdGlvbjogIitlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVGcm9tT3duZXIoKSB7CisKKyAgICAgICAgc3RvcENhcmV0QmxpbmtpbmcoKTsKKyAgICAgICAgc3VwZXIucmVtb3ZlRnJvbU93bmVyKCk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGhhaUtleVJlbWFwLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVGhhaUtleVJlbWFwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDdhMjc5ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UaGFpS2V5UmVtYXAuamF2YQpAQCAtMCwwICsxLDExMiBAQAorLyoqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChDKSAyMDAxLTIwMDQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gYW5kICAgICoKKyAqIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitmaW5hbCBjbGFzcyBUaGFpS2V5UmVtYXAgZXh0ZW5kcyBLZXlSZW1hcCB7CisKKyAgICBwdWJsaWMgY2hhciByZW1hcChjaGFyIGMpIHsKKworICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgIGNhc2UgJ2AnOiByZXR1cm4gJ1x1MDA1Zic7CisgICAgICAgICAgICBjYXNlICd+JzogcmV0dXJuICdcdTAwMjUnOworICAgICAgICAgICAgY2FzZSAnMSc6IHJldHVybiAnXHUwZTQ1JzsKKyAgICAgICAgICAgIGNhc2UgJyEnOiByZXR1cm4gJ1x1MDAyYic7CisgICAgICAgICAgICBjYXNlICcyJzogcmV0dXJuICdcdTAwMmYnOworICAgICAgICAgICAgY2FzZSAnQCc6IHJldHVybiAnXHUwZTUxJzsKKyAgICAgICAgICAgIGNhc2UgJzMnOiByZXR1cm4gJ1x1MDAyZCc7CisgICAgICAgICAgICBjYXNlICcjJzogcmV0dXJuICdcdTBlNTInOworICAgICAgICAgICAgY2FzZSAnNCc6IHJldHVybiAnXHUwZTIwJzsKKyAgICAgICAgICAgIGNhc2UgJyQnOiByZXR1cm4gJ1x1MGU1Myc7CisgICAgICAgICAgICBjYXNlICc1JzogcmV0dXJuICdcdTBlMTYnOworICAgICAgICAgICAgY2FzZSAnJSc6IHJldHVybiAnXHUwZTU0JzsKKyAgICAgICAgICAgIGNhc2UgJzYnOiByZXR1cm4gJ1x1MGUzOCc7CisgICAgICAgICAgICBjYXNlICdeJzogcmV0dXJuICdcdTBlMzknOworICAgICAgICAgICAgY2FzZSAnNyc6IHJldHVybiAnXHUwZTM2JzsKKyAgICAgICAgICAgIGNhc2UgJyYnOiByZXR1cm4gJ1x1MGUzZic7CisgICAgICAgICAgICBjYXNlICc4JzogcmV0dXJuICdcdTBlMDQnOworICAgICAgICAgICAgY2FzZSAnKic6IHJldHVybiAnXHUwZTU1JzsKKyAgICAgICAgICAgIGNhc2UgJzknOiByZXR1cm4gJ1x1MGUxNSc7CisgICAgICAgICAgICBjYXNlICcoJzogcmV0dXJuICdcdTBlNTYnOworICAgICAgICAgICAgY2FzZSAnMCc6IHJldHVybiAnXHUwZTA4JzsKKyAgICAgICAgICAgIGNhc2UgJyknOiByZXR1cm4gJ1x1MGU1Nyc7CisgICAgICAgICAgICBjYXNlICctJzogcmV0dXJuICdcdTBlMDInOworICAgICAgICAgICAgY2FzZSAnXyc6IHJldHVybiAnXHUwZTU4JzsKKyAgICAgICAgICAgIGNhc2UgJz0nOiByZXR1cm4gJ1x1MGUwOCc7CisgICAgICAgICAgICBjYXNlICcrJzogcmV0dXJuICdcdTBlNTknOworICAgICAgICAgICAgY2FzZSAncSc6IHJldHVybiAnXHUwZTQ2JzsKKyAgICAgICAgICAgIGNhc2UgJ1EnOiByZXR1cm4gJ1x1MGU1MCc7CisgICAgICAgICAgICBjYXNlICd3JzogcmV0dXJuICdcdTBlNDQnOworICAgICAgICAgICAgY2FzZSAnVyc6IHJldHVybiAnXHUwMDIyJzsKKyAgICAgICAgICAgIGNhc2UgJ2UnOiByZXR1cm4gJ1x1MGUzMyc7CisgICAgICAgICAgICBjYXNlICdFJzogcmV0dXJuICdcdTBlMGUnOworICAgICAgICAgICAgY2FzZSAncic6IHJldHVybiAnXHUwZTFlJzsKKyAgICAgICAgICAgIGNhc2UgJ1InOiByZXR1cm4gJ1x1MGUxMSc7CisgICAgICAgICAgICBjYXNlICd0JzogcmV0dXJuICdcdTBlMzAnOworICAgICAgICAgICAgY2FzZSAnVCc6IHJldHVybiAnXHUwZTE4JzsKKyAgICAgICAgICAgIGNhc2UgJ3knOiByZXR1cm4gJ1x1MGUzMSc7CisgICAgICAgICAgICBjYXNlICdZJzogcmV0dXJuICdcdTBlNGQnOworICAgICAgICAgICAgY2FzZSAndSc6IHJldHVybiAnXHUwZTM1JzsKKyAgICAgICAgICAgIGNhc2UgJ1UnOiByZXR1cm4gJ1x1MGU0YSc7CisgICAgICAgICAgICBjYXNlICdpJzogcmV0dXJuICdcdTBlMjMnOworICAgICAgICAgICAgY2FzZSAnSSc6IHJldHVybiAnXHUwZTEzJzsKKyAgICAgICAgICAgIGNhc2UgJ28nOiByZXR1cm4gJ1x1MGUxOSc7CisgICAgICAgICAgICBjYXNlICdPJzogcmV0dXJuICdcdTBlMmYnOworICAgICAgICAgICAgY2FzZSAncCc6IHJldHVybiAnXHUwZTIyJzsKKyAgICAgICAgICAgIGNhc2UgJ1AnOiByZXR1cm4gJ1x1MGUwZCc7CisgICAgICAgICAgICBjYXNlICdbJzogcmV0dXJuICdcdTBlMWEnOworICAgICAgICAgICAgY2FzZSAneyc6IHJldHVybiAnXHUwZTEwJzsKKyAgICAgICAgICAgIGNhc2UgJ10nOiByZXR1cm4gJ1x1MGUyNSc7CisgICAgICAgICAgICBjYXNlICd9JzogcmV0dXJuICdcdTAwMmMnOworICAgICAgICAgICAgY2FzZSAnXFwnOiByZXR1cm4gJ1x1MGUwMyc7CisgICAgICAgICAgICBjYXNlICd8JzogcmV0dXJuICdcdTBlMDUnOworICAgICAgICAgICAgY2FzZSAnYSc6IHJldHVybiAnXHUwZTFmJzsKKyAgICAgICAgICAgIGNhc2UgJ0EnOiByZXR1cm4gJ1x1MGUyNCc7CisgICAgICAgICAgICBjYXNlICdzJzogcmV0dXJuICdcdTBlMmInOworICAgICAgICAgICAgY2FzZSAnUyc6IHJldHVybiAnXHUwZTA2JzsKKyAgICAgICAgICAgIGNhc2UgJ2QnOiByZXR1cm4gJ1x1MGUwMSc7CisgICAgICAgICAgICBjYXNlICdEJzogcmV0dXJuICdcdTBlMGYnOworICAgICAgICAgICAgY2FzZSAnZic6IHJldHVybiAnXHUwZTE0JzsKKyAgICAgICAgICAgIGNhc2UgJ0YnOiByZXR1cm4gJ1x1MGU0Mic7CisgICAgICAgICAgICBjYXNlICdnJzogcmV0dXJuICdcdTBlNDAnOworICAgICAgICAgICAgY2FzZSAnRyc6IHJldHVybiAnXHUwZTBjJzsKKyAgICAgICAgICAgIGNhc2UgJ2gnOiByZXR1cm4gJ1x1MGU0OSc7CisgICAgICAgICAgICBjYXNlICdIJzogcmV0dXJuICdcdTBlNDcnOworICAgICAgICAgICAgY2FzZSAnaic6IHJldHVybiAnXHUwZTQ4JzsKKyAgICAgICAgICAgIGNhc2UgJ0onOiByZXR1cm4gJ1x1MGU0Yic7CisgICAgICAgICAgICBjYXNlICdrJzogcmV0dXJuICdcdTBlMzInOworICAgICAgICAgICAgY2FzZSAnSyc6IHJldHVybiAnXHUwZTI5JzsKKyAgICAgICAgICAgIGNhc2UgJ2wnOiByZXR1cm4gJ1x1MGUyYSc7CisgICAgICAgICAgICBjYXNlICdMJzogcmV0dXJuICdcdTBlMjgnOworICAgICAgICAgICAgY2FzZSAnOyc6IHJldHVybiAnXHUwZTI3JzsKKyAgICAgICAgICAgIGNhc2UgJzonOiByZXR1cm4gJ1x1MGUwYic7CisgICAgICAgICAgICBjYXNlICdcJyc6IHJldHVybiAnXHUwZTA3JzsKKyAgICAgICAgICAgIGNhc2UgJ1wiJzogcmV0dXJuICdcdTAwMmUnOworICAgICAgICAgICAgY2FzZSAneic6IHJldHVybiAnXHUwZTFjJzsKKyAgICAgICAgICAgIGNhc2UgJ1onOiByZXR1cm4gJ1x1MDAyOCc7CisgICAgICAgICAgICBjYXNlICd4JzogcmV0dXJuICdcdTBlMWInOworICAgICAgICAgICAgY2FzZSAnWCc6IHJldHVybiAnXHUwMDI5JzsKKyAgICAgICAgICAgIGNhc2UgJ2MnOiByZXR1cm4gJ1x1MGU0MSc7CisgICAgICAgICAgICBjYXNlICdDJzogcmV0dXJuICdcdTBlMDknOworICAgICAgICAgICAgY2FzZSAndic6IHJldHVybiAnXHUwZTJkJzsKKyAgICAgICAgICAgIGNhc2UgJ1YnOiByZXR1cm4gJ1x1MGUyZSc7CisgICAgICAgICAgICBjYXNlICdiJzogcmV0dXJuICdcdTBlMzQnOworICAgICAgICAgICAgY2FzZSAnQic6IHJldHVybiAnXHUwZTNhJzsKKyAgICAgICAgICAgIGNhc2UgJ24nOiByZXR1cm4gJ1x1MGUzNyc7CisgICAgICAgICAgICBjYXNlICdOJzogcmV0dXJuICdcdTBlNGMnOworICAgICAgICAgICAgY2FzZSAnbSc6IHJldHVybiAnXHUwZTE3JzsKKyAgICAgICAgICAgIGNhc2UgJ00nOiByZXR1cm4gJ1x1MDAzZic7CisgICAgICAgICAgICBjYXNlICcsJzogcmV0dXJuICdcdTBlMjEnOworICAgICAgICAgICAgY2FzZSAnPCc6IHJldHVybiAnXHUwZTEyJzsKKyAgICAgICAgICAgIGNhc2UgJy4nOiByZXR1cm4gJ1x1MGU0Myc7CisgICAgICAgICAgICBjYXNlICc+JzogcmV0dXJuICdcdTBlMmMnOworICAgICAgICAgICAgY2FzZSAnLyc6IHJldHVybiAnXHUwZTFkJzsKKyAgICAgICAgICAgIGNhc2UgJz8nOiByZXR1cm4gJ1x1MGUyNic7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvVHJhbnNmZXJhYmxlVGV4dC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RyYW5zZmVyYWJsZVRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNmJlYWZjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1RyYW5zZmVyYWJsZVRleHQuamF2YQpAQCAtMCwwICsxLDg3IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbDsKKworaW1wb3J0IGphdmEuYXd0LmRhdGF0cmFuc2Zlci5TdHJpbmdTZWxlY3Rpb247CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLkRhdGFGbGF2b3I7CitpbXBvcnQgamF2YS5hd3QuZGF0YXRyYW5zZmVyLlVuc3VwcG9ydGVkRmxhdm9yRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKKworLyoqCisgKiBUaGlzIGNsYXNzIGFsbG93cyBNQ29uc3RUZXh0IGluc3RhbmNlcyB0byBiZSB0aGUgY29udGVudHMKKyAqIG9mIGEgQ2xpcGJvYXJkLiAgVG8gc3RvcmUgYW4gTUNvbnN0VGV4dCBvbiB0aGUgY2xpcGJvYXJkLAorICogY29uc3RydWN0IGEgVHJhbnNmZXJhYmxlVGV4dCBmcm9tIHRoZSBNQ29uc3RUZXh0LCBhbmQgbWFrZQorICogdGhlIFRyYW5zZmVyYWJsZVRleHQgdGhlIGNsaXBib2FyZCBjb250ZW50cy4KKyAqCisgKi8KKy8qCisgKiBOb3RlOiAgdGhpcyBjbGFzcyBpbmhlcml0cyBmcm9tIFN0cmluZ1NlbGVjdGlvbiBiZWNhdXNlIG9mCisgKiBhIGJ1ZyBpbiB0aGUgMS4xLjcgc3lzdGVtIGNsaXBib2FyZCBpbXBsZW1lbnRhdGlvbi4gIFRoZQorICogc3lzdGVtIGNsaXBib2FyZCB3b24ndCBwdXQgdGV4dCBvbiB0aGUgT1MgY2xpcGJvYXJkIHVubGVzcworICogdGhlIGNvbnRlbnQgaXMgYSBTdHJpbmdTZWxlY3Rpb24uCisgKi8KK2ZpbmFsIGNsYXNzIFRyYW5zZmVyYWJsZVRleHQgZXh0ZW5kcyBTdHJpbmdTZWxlY3Rpb24KK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgTUNvbnN0VGV4dCBmVGV4dDsKKworICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyB0ZXh0VG9TdHJpbmcoTUNvbnN0VGV4dCB0ZXh0KSB7CisgICAgICAgIGNoYXJbXSBjaGFycyA9IG5ldyBjaGFyW3RleHQubGVuZ3RoKCldOworICAgICAgICB0ZXh0LmV4dHJhY3RDaGFycygwLCBjaGFycy5sZW5ndGgsIGNoYXJzLCAwKTsKKyAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmcoY2hhcnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFRyYW5zZmVyYWJsZVRleHQgZm9yIHRoZSBnaXZlbiB0ZXh0LgorICAgICAqIEBwYXJhbSB0ZXh0IHRoZSB0ZXh0IHRvIGdvIG9uIHRoZSBDbGlwYm9hcmQuICBUaGUgdGV4dCBpcworICAgICAqICAgICBhZG9wdGVkIGJ5IHRoaXMgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBUcmFuc2ZlcmFibGVUZXh0KE1Db25zdFRleHQgdGV4dCkgeworCisgICAgICAgIHN1cGVyKHRleHRUb1N0cmluZyh0ZXh0KSk7CisKKyAgICAgICAgZlRleHQgPSB0ZXh0OworICAgIH0KKworICAgIHB1YmxpYyBEYXRhRmxhdm9yW10gZ2V0VHJhbnNmZXJEYXRhRmxhdm9ycygpIHsKKworICAgICAgICBEYXRhRmxhdm9yW10gZmxhdm9ycyA9IHN1cGVyLmdldFRyYW5zZmVyRGF0YUZsYXZvcnMoKTsKKyAgICAgICAgRGF0YUZsYXZvcltdIHJlc3VsdCA9IG5ldyBEYXRhRmxhdm9yW2ZsYXZvcnMubGVuZ3RoKzFdOworICAgICAgICByZXN1bHRbMF0gPSBNQ29uc3RUZXh0LnN0eWxlZFRleHRGbGF2b3I7CisgICAgICAgIFN5c3RlbS5hcnJheWNvcHkoZmxhdm9ycywgMCwgcmVzdWx0LCAxLCBmbGF2b3JzLmxlbmd0aCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNEYXRhRmxhdm9yU3VwcG9ydGVkKERhdGFGbGF2b3IgZmxhdm9yKSB7CisKKyAgICAgICAgaWYgKGZsYXZvci5lcXVhbHMoTUNvbnN0VGV4dC5zdHlsZWRUZXh0Rmxhdm9yKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuaXNEYXRhRmxhdm9yU3VwcG9ydGVkKGZsYXZvcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IGdldFRyYW5zZmVyRGF0YShEYXRhRmxhdm9yIGZsYXZvcikgdGhyb3dzIFVuc3VwcG9ydGVkRmxhdm9yRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7CisKKyAgICAgICAgaWYgKGZsYXZvci5lcXVhbHMoTUNvbnN0VGV4dC5zdHlsZWRUZXh0Rmxhdm9yKSkgeworICAgICAgICAgICAgcmV0dXJuIGZUZXh0OworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmdldFRyYW5zZmVyRGF0YShmbGF2b3IpOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdGV4dHBhbmVsL1R5cGluZ0ludGVyYWN0b3IuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UeXBpbmdJbnRlcmFjdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTQ1MTczZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9UeXBpbmdJbnRlcmFjdG9yLmphdmEKQEAgLTAsMCArMSwzNTQgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCisvKgorICAgIDIvMjUvOTkgLSBOb3cgcHJvY2Vzc2luZyBjaGFyYWN0ZXJzIGZyb20ga2V5VHlwZWQgbWV0aG9kIChub3Qga2V5UHJlc3NlZCkuCisgICAgICAgICAgICAgIFRoaXMgbmV3IHdheSBpcyBpbnB1dC1tZXRob2QgZnJpZW5kbHkgb24gMS4yLCBhbmQgaXMgZ2VuZXJhbGx5CisgICAgICAgICAgICAgIG1vcmUgY29ycmVjdC4KKworICAgIDcvNy85NyAtIHRoZSBtb3VzZURpZFNvbWV0aGluZyBtZXRob2RzIHVzZWQgdG8gcmVtb3ZlIHRoZSB0eXBpbmcgaW50ZXJhY3Rvci4KKyAgICAgICAgICAgIFRoaXMgaXMgZGVmaW5pdGVseSB3cm9uZywgYnV0IG1heWJlIHRoYXQgbWFkZSBzZW5zZSBhdCBvbmUgdGltZS4gIEFueXdheSwKKyAgICAgICAgICAgIG5vdyB0aGUgbW91c2VQcmVzc2VkIC8gbW91c2VSZWxlYXNlZCBtZXRob2RzIHJlbW92ZSB0aGUgaW50ZXJhY3RvcjsgIHRoZQorICAgICAgICAgICAgb3RoZXJzIGRvIG5vdGhpbmcuCisqLworCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlTWFwOworCitpbXBvcnQgamF2YS5hd3QuZXZlbnQuS2V5RXZlbnQ7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VFdmVudDsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Gb2N1c0V2ZW50OworCitpbXBvcnQgamF2YS50ZXh0LkJyZWFrSXRlcmF0b3I7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTVRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlZFRleHQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0Zm9ybWF0LlRleHRPZmZzZXQ7CisKK2ZpbmFsIGNsYXNzIFR5cGluZ0ludGVyYWN0b3IgZXh0ZW5kcyBCZWhhdmlvciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBCQUNLU1BBQ0UgPSA4OworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgVEFCID0gJ1x0JzsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIFJFVFVSTiA9ICdccic7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciBMSU5FX0ZFRUQgPSAnXG4nOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgUEFSQUdSQVBIX1NFUCA9ICdcdTIwMjknOworICAgIAorICAgIHByaXZhdGUgVGV4dENvbXBvbmVudCBmVGV4dENvbXBvbmVudDsKKyAgICBwcml2YXRlIFRleHRTZWxlY3Rpb24gZlNlbGVjdGlvbjsKKyAgICBwcml2YXRlIEF0dHJpYnV0ZU1hcCBmVHlwaW5nU3R5bGU7CisgICAgcHJpdmF0ZSBNQ29uc3RUZXh0IGZUZXh0OworICAgIHByaXZhdGUgVGV4dEVkaXRCZWhhdmlvciBmUGFyZW50OworICAgIHByaXZhdGUgVGV4dENoYW5nZUNvbW1hbmQgZkNvbW1hbmQgPSBudWxsOworICAgIHByaXZhdGUgU2ltcGxlQ29tbWFuZExvZyBmQ29tbWFuZExvZzsKKyAgICBwcml2YXRlIFBhbmVsRXZlbnRCcm9hZGNhc3RlciBmTGlzdGVuZXI7CisgICAgcHJpdmF0ZSBCcmVha0l0ZXJhdG9yIGZDaGFyQnJlYWsgPSBudWxsOworICAgIAorICAgIC8qKgorICAgICAqIE5vdCBhbGwgY2hhcmFjdGVycyB0aGF0IGNvbWUgZnJvbSB0aGUga2V5Ym9hcmQgYXJlIGhhbmRsZWQKKyAgICAgKiBhcyBpbnB1dC4gIEZvciBleGFtcGxlLCBjdHJsLWMgaXMgbm90IGEgdHlwYWJsZSBjaGFyYWN0ZXIuCisgICAgICogVGhpcyBtZXRob2QgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgcGFydGljdWxhciBjaGFyYWN0ZXIgZnJvbQorICAgICAqIHRoZSBrZXlib2FyZCB3aWxsIGFmZmVjdCB0aGUgdGV4dC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIGlzVHlwaW5nSW50ZXJhY3RvckNoYXIoY2hhciBjaCkgeworCisgICAgICAgIHJldHVybiBjaCA+PSAnICcgfHwgCisgICAgICAgICAgICAgICBjaCA9PSBMSU5FX0ZFRUQgfHwgCisgICAgICAgICAgICAgICBjaCA9PSBSRVRVUk4gfHwKKyAgICAgICAgICAgICAgIGNoID09IFRBQiB8fCAKKyAgICAgICAgICAgICAgIGNoID09IEJBQ0tTUEFDRTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgVHlwaW5nSW50ZXJhY3RvciBzaG91bGQKKyAgICAgKiBoYW5kbGUgdGhlIGdpdmVuIEtleUV2ZW50LgorICAgICAqLworICAgIHN0YXRpYyBib29sZWFuIGhhbmRsZWRCeVR5cGluZ0ludGVyYWN0b3IoS2V5RXZlbnQgZXZlbnQpIHsKKworICAgICAgICBmaW5hbCBpbnQgaWQgPSBldmVudC5nZXRJRCgpOworICAgICAgICAKKyAgICAgICAgaWYgKGlkID09IEtleUV2ZW50LktFWV9UWVBFRCkgeworICAgICAgICAgICAgcmV0dXJuIGlzVHlwaW5nSW50ZXJhY3RvckNoYXIoZXZlbnQuZ2V0S2V5Q2hhcigpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAoaWQgPT0gS2V5RXZlbnQuS0VZX1BSRVNTRUQgJiYgCisgICAgICAgICAgICAgICAgICAgIGV2ZW50LmdldEtleUNvZGUoKSA9PSBLZXlFdmVudC5WS19ERUxFVEUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFR5cGluZ0ludGVyYWN0b3IoVGV4dENvbXBvbmVudCB0ZXh0Q29tcG9uZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRTZWxlY3Rpb24gc2VsZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCB0eXBpbmdTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0RWRpdEJlaGF2aW9yIHBhcmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW1wbGVDb21tYW5kTG9nIGNvbW1hbmRMb2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFuZWxFdmVudEJyb2FkY2FzdGVyIGxpc3RlbmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGZUZXh0Q29tcG9uZW50ID0gdGV4dENvbXBvbmVudDsKKyAgICAgICAgZlRleHQgPSB0ZXh0Q29tcG9uZW50LmdldFRleHQoKTsKKyAgICAgICAgZlNlbGVjdGlvbiA9IHNlbGVjdGlvbjsKKyAgICAgICAgZlR5cGluZ1N0eWxlID0gdHlwaW5nU3R5bGU7CisgICAgICAgIGZQYXJlbnQgPSBwYXJlbnQ7CisgICAgICAgIGZDb21tYW5kTG9nID0gY29tbWFuZExvZzsKKyAgICAgICAgZkxpc3RlbmVyID0gbGlzdGVuZXI7CisKKyAgICAgICAgZlBhcmVudC5zZXRUeXBpbmdJbnRlcmFjdG9yKHRoaXMpOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBlbmRJbnRlcmFjdGlvbigpIHsKKworICAgICAgICByZW1vdmVGcm9tT3duZXIoKTsKKyAgICAgICAgcG9zdFRleHRDaGFuZ2VDb21tYW5kKCk7CisKKyAgICAgICAgaW50IHNlbFN0YXJ0ID0gZlNlbGVjdGlvbi5nZXRTdGFydCgpLmZPZmZzZXQ7CisgICAgICAgIGludCBzZWxMaW1pdCA9IGZTZWxlY3Rpb24uZ2V0RW5kKCkuZk9mZnNldDsKKyAgICAgICAgZlBhcmVudC5zZXRTYXZlZFR5cGluZ1N0eWxlKHNlbFN0YXJ0PT1zZWxMaW1pdD8gZlR5cGluZ1N0eWxlIDogbnVsbCwgc2VsU3RhcnQpOworICAgICAgICAKKyAgICAgICAgZlBhcmVudC5zZXRUeXBpbmdJbnRlcmFjdG9yKG51bGwpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIHRleHRDb250cm9sRXZlbnRPY2N1cnJlZChCZWhhdmlvci5FdmVudFR5cGUgZXZlbnQsIE9iamVjdCB3aGF0KSB7CisKKyAgICAgICAgaWYgKGZDb21tYW5kID09IG51bGwgJiYgZXZlbnQgPT0gQmVoYXZpb3IuQ0hBUkFDVEVSX1NUWUxFX01PRCkgeworCisgICAgICAgICAgICBwaWNrVXBUeXBpbmdTdHlsZSgpOworICAgICAgICAgICAgZlR5cGluZ1N0eWxlID0gKChTdHlsZU1vZGlmaWVyKXdoYXQpLm1vZGlmeVN0eWxlKGZUeXBpbmdTdHlsZSk7CisKKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlNFTEVDVElPTl9TVFlMRVNfQ0hBTkdFRCk7CisKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQmVoYXZpb3IgbmV4dCA9IG5leHRCZWhhdmlvcigpOyAvLyBzYXZlIGJlY2F1c2UgcmVtb3ZlRnJvbU93bmVyKCkgd2lsbCB0cmFzaCB0aGlzCisKKyAgICAgICAgICAgIGVuZEludGVyYWN0aW9uKCk7CisKKyAgICAgICAgICAgIGlmIChuZXh0ICE9IG51bGwpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5leHQudGV4dENvbnRyb2xFdmVudE9jY3VycmVkKGV2ZW50LCB3aGF0KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZG9CYWNrc3BhY2UoKSB7CisKKyAgICAgICAgaW50IHNlbFN0YXJ0ID0gZlNlbGVjdGlvbi5nZXRTdGFydCgpLmZPZmZzZXQ7CisgICAgICAgIGludCBzZWxMaW1pdCA9IGZTZWxlY3Rpb24uZ2V0RW5kKCkuZk9mZnNldDsKKworICAgICAgICBpZiAoc2VsU3RhcnQgPT0gc2VsTGltaXQpIHsKKyAgICAgICAgICAgIGlmIChzZWxTdGFydCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZlR5cGluZ1N0eWxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICBwaWNrVXBUeXBpbmdTdHlsZSgpOworICAgICAgICAgICAgICAgIG1ha2VUZXh0Q2hhbmdlQ29tbWFuZCgpOworICAgICAgICAgICAgICAgIGlmIChzZWxTdGFydCA8PSBmQ29tbWFuZC5hZmZlY3RlZFJhbmdlU3RhcnQoKSkgeworICAgICAgICAgICAgICAgICAgICBmQ29tbWFuZC5wcmVwZW5kVG9PbGRUZXh0KGZUZXh0LmV4dHJhY3Qoc2VsU3RhcnQgLSAxLCBzZWxTdGFydCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBUZXh0T2Zmc2V0IGluc1B0ID0gbmV3IFRleHRPZmZzZXQoc2VsU3RhcnQgLSAxKTsKKyAgICAgICAgICAgICAgICBmUGFyZW50LmRvUmVwbGFjZVRleHQoc2VsU3RhcnQgLSAxLCBzZWxTdGFydCwgbnVsbCwgaW5zUHQsIGluc1B0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZUeXBpbmdTdHlsZSA9IG51bGw7CisgICAgICAgICAgICBtYWtlVGV4dENoYW5nZUNvbW1hbmQoKTsKKyAgICAgICAgICAgIFRleHRPZmZzZXQgaW5zUHQgPSBuZXcgVGV4dE9mZnNldChzZWxTdGFydCk7CisgICAgICAgICAgICBmUGFyZW50LmRvUmVwbGFjZVRleHQoc2VsU3RhcnQsIHNlbExpbWl0LCBudWxsLCBpbnNQdCwgaW5zUHQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvRndkRGVsZXRlKGJvb2xlYW4gaWdub3JlQ2hhckJyZWFrKSB7CisKKyAgICAgICAgaW50IHNlbFN0YXJ0ID0gZlNlbGVjdGlvbi5nZXRTdGFydCgpLmZPZmZzZXQ7CisgICAgICAgIGludCBzZWxMaW1pdCA9IGZTZWxlY3Rpb24uZ2V0RW5kKCkuZk9mZnNldDsKKworICAgICAgICBUZXh0T2Zmc2V0IGluc1B0ID0gbmV3IFRleHRPZmZzZXQoc2VsU3RhcnQpOworCisgICAgICAgIGlmIChzZWxTdGFydCA9PSBzZWxMaW1pdCkgeworICAgICAgICAgICAgaWYgKHNlbFN0YXJ0ICE9IGZUZXh0Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgZlR5cGluZ1N0eWxlID0gbnVsbDsKKyAgICAgICAgICAgICAgICBtYWtlVGV4dENoYW5nZUNvbW1hbmQoKTsKKyAgICAgICAgICAgICAgICBpbnQgbnVtQ2hhcnM7CisgICAgICAgICAgICAgICAgaWYgKGlnbm9yZUNoYXJCcmVhaykgeworICAgICAgICAgICAgICAgICAgICBudW1DaGFycyA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoZkNoYXJCcmVhayA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmQ2hhckJyZWFrID0gQnJlYWtJdGVyYXRvci5nZXRDaGFyYWN0ZXJJbnN0YW5jZSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGZDaGFyQnJlYWsuc2V0VGV4dChmVGV4dC5jcmVhdGVDaGFyYWN0ZXJJdGVyYXRvcigpKTsKKyAgICAgICAgICAgICAgICAgICAgbnVtQ2hhcnMgPSBmQ2hhckJyZWFrLmZvbGxvd2luZyhzZWxTdGFydCkgLSBzZWxTdGFydDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZkNvbW1hbmQuYXBwZW5kVG9PbGRUZXh0KGZUZXh0LmV4dHJhY3Qoc2VsU3RhcnQsIHNlbFN0YXJ0ICsgbnVtQ2hhcnMpKTsKKyAgICAgICAgICAgICAgICBmUGFyZW50LmRvUmVwbGFjZVRleHQoc2VsU3RhcnQsIHNlbFN0YXJ0ICsgbnVtQ2hhcnMsIG51bGwsIGluc1B0LCBpbnNQdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmVHlwaW5nU3R5bGUgPSBudWxsOworICAgICAgICAgICAgbWFrZVRleHRDaGFuZ2VDb21tYW5kKCk7CisgICAgICAgICAgICBmUGFyZW50LmRvUmVwbGFjZVRleHQoc2VsU3RhcnQsIHNlbExpbWl0LCBudWxsLCBpbnNQdCwgaW5zUHQpOworICAgICAgICB9CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIGRvTm9ybWFsS2V5KGNoYXIgY2gpIHsKKworICAgICAgICAvLyBTaWdoIC0gMS4xIHJlcG9ydHMgZW50ZXIga2V5IGV2ZW50cyBhcyByZXR1cm4gY2hhcnMsIGJ1dAorICAgICAgICAvLyAxLjIgcmVwb3J0cyB0aGVtIGFzIGxpbmVmZWVkcy4KKyAgICAgICAgaWYgKGNoID09IFJFVFVSTikgeworICAgICAgICAgICAgY2ggPSBMSU5FX0ZFRUQ7CisgICAgICAgIH0KKyAgICAgICAgcGlja1VwVHlwaW5nU3R5bGUoKTsKKyAgICAgICAgbWFrZVRleHRDaGFuZ2VDb21tYW5kKCk7CisgICAgICAgIGZQYXJlbnQuZG9SZXBsYWNlU2VsZWN0ZWRUZXh0KGNoLCBmVHlwaW5nU3R5bGUpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGZvY3VzR2FpbmVkKEZvY3VzRXZlbnQgZSkgeworCisgICAgICAgIC8vIHBhc3MgdGhyb3VnaCwgYnV0IHN0aWNrIGFyb3VuZC4uLgorICAgICAgICByZXR1cm4gc3VwZXIuZm9jdXNHYWluZWQoZSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZm9jdXNMb3N0KEZvY3VzRXZlbnQgZSkgeworCisgICAgICAgIC8vIHBhc3MgdGhyb3VnaCwgYnV0IHN0aWNrIGFyb3VuZC4uLgorICAgICAgICByZXR1cm4gc3VwZXIuZm9jdXNMb3N0KGUpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGtleVR5cGVkKEtleUV2ZW50IGUpIHsKKworICAgICAgICBpZiAoZS5nZXRLZXlDaGFyKCkgPT0gQkFDS1NQQUNFKSB7CisgICAgICAgICAgICBkb0JhY2tzcGFjZSgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGlzVHlwaW5nSW50ZXJhY3RvckNoYXIoZS5nZXRLZXlDaGFyKCkpKSB7CisgICAgICAgICAgICAgICAgS2V5UmVtYXAgcmVtYXAgPSBmUGFyZW50LmdldEtleVJlbWFwKCk7CisgICAgICAgICAgICAgICAgZG9Ob3JtYWxLZXkocmVtYXAucmVtYXAoZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4ga2V5UHJlc3NlZChLZXlFdmVudCBlKSB7CisKKyAgICAgICAgaW50IGtleSA9IGUuZ2V0S2V5Q29kZSgpOworICAgICAgICBpZiAoa2V5ID09IEtleUV2ZW50LlZLX0RFTEVURSkgeworICAgICAgICAgICAgZG9Gd2REZWxldGUoZS5pc1NoaWZ0RG93bigpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgQmVoYXZpb3IgbmV4dCA9IG5leHRCZWhhdmlvcigpOworCisgICAgICAgIGlmIChUZXh0U2VsZWN0aW9uLmtleUFmZmVjdHNTZWxlY3Rpb24oZSkpIHsKKworICAgICAgICAgICAgZW5kSW50ZXJhY3Rpb24oKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBuZXh0LmtleVByZXNzZWQoZSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4ga2V5UmVsZWFzZWQoS2V5RXZlbnQgZSkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgbWFrZVRleHRDaGFuZ2VDb21tYW5kKCkgeworICAgICAgICBpZiAoZkNvbW1hbmQgPT0gbnVsbCkgeworICAgICAgICAgICAgVGV4dE9mZnNldCAgc2VsU3RhcnQgPSBmU2VsZWN0aW9uLmdldFN0YXJ0KCk7CisgICAgICAgICAgICBUZXh0T2Zmc2V0ICBzZWxFbmQgPSBmU2VsZWN0aW9uLmdldEVuZCgpOworCisgICAgICAgICAgICBNVGV4dCB3cml0YWJsZVRleHQgPSBuZXcgU3R5bGVkVGV4dCgpOworICAgICAgICAgICAgd3JpdGFibGVUZXh0LnJlcGxhY2UoMCwgMCwgZlRleHQsIHNlbFN0YXJ0LmZPZmZzZXQsIHNlbEVuZC5mT2Zmc2V0KTsKKyAgICAgICAgICAgIGZDb21tYW5kID0gbmV3IFRleHRDaGFuZ2VDb21tYW5kKGZQYXJlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlVGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgc2VsU3RhcnQuZk9mZnNldCwgc2VsU3RhcnQsIHNlbEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRleHRPZmZzZXQoKSwgbmV3IFRleHRPZmZzZXQoKSk7CisKKyAgICAgICAgICAgIGZMaXN0ZW5lci50ZXh0U3RhdGVDaGFuZ2VkKFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBtb3VzZURyYWdnZWQoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbW91c2VFbnRlcmVkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlTW92ZWQoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gbW91c2VQcmVzc2VkKE1vdXNlRXZlbnQgZSkgeworCisgICAgICAgIEJlaGF2aW9yIG5leHQgPSBuZXh0QmVoYXZpb3IoKTsgLy8gc2F2ZSBiZWNhdXNlIHJlbW92ZUZyb21Pd25lcigpIHdpbGwgdHJhc2ggdGhpcworCisgICAgICAgIGVuZEludGVyYWN0aW9uKCk7CisKKyAgICAgICAgaWYgKG5leHQgIT0gbnVsbCkKKyAgICAgICAgICAgIHJldHVybiBuZXh0Lm1vdXNlUHJlc3NlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIG1vdXNlUmVsZWFzZWQoTW91c2VFdmVudCBlKSB7CisKKyAgICAgICAgQmVoYXZpb3IgbmV4dCA9IG5leHRCZWhhdmlvcigpOyAvLyBzYXZlIGJlY2F1c2UgcmVtb3ZlRnJvbU93bmVyKCkgd2lsbCB0cmFzaCB0aGlzCisKKyAgICAgICAgZW5kSW50ZXJhY3Rpb24oKTsKKworICAgICAgICBpZiAobmV4dCAhPSBudWxsKQorICAgICAgICAgICAgcmV0dXJuIG5leHQubW91c2VSZWxlYXNlZChlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwaWNrVXBUeXBpbmdTdHlsZSgpIHsKKyAgICAgICAgaWYgKGZUeXBpbmdTdHlsZSA9PSBudWxsKSB7CisgICAgICAgICAgICBpbnQgc2VsU3RhcnQgPSBmU2VsZWN0aW9uLmdldFN0YXJ0KCkuZk9mZnNldDsKKyAgICAgICAgICAgIGludCBzZWxMaW1pdCA9IGZTZWxlY3Rpb24uZ2V0RW5kKCkuZk9mZnNldDsKKyAgICAgICAgICAgIGZUeXBpbmdTdHlsZSA9IFRleHRFZGl0QmVoYXZpb3IudHlwaW5nU3R5bGVBdChmVGV4dCwgc2VsU3RhcnQsIHNlbExpbWl0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBwb3N0VGV4dENoYW5nZUNvbW1hbmQoKSB7CisgICAgICAgIGlmIChmQ29tbWFuZCAhPSBudWxsKSB7CisgICAgICAgICAgICBUZXh0T2Zmc2V0ICBzZWxTdGFydCA9IGZTZWxlY3Rpb24uZ2V0U3RhcnQoKTsKKyAgICAgICAgICAgIFRleHRPZmZzZXQgIHNlbEVuZCA9IGZTZWxlY3Rpb24uZ2V0RW5kKCk7CisKKyAgICAgICAgICAgIGZDb21tYW5kLnNldE5ld1RleHQoZlRleHQuZXh0cmFjdChmQ29tbWFuZC5hZmZlY3RlZFJhbmdlU3RhcnQoKSwgc2VsU3RhcnQuZk9mZnNldCkpOworICAgICAgICAgICAgZkNvbW1hbmQuc2V0U2VsUmFuZ2VBZnRlcihzZWxTdGFydCwgc2VsRW5kKTsKKyAgICAgICAgICAgIGZDb21tYW5kTG9nLmFkZChmQ29tbWFuZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBib29sZWFuIGhhc1BlbmRpbmdDb21tYW5kKCkgeworCisgICAgICAgIHJldHVybiBmQ29tbWFuZCAhPSBudWxsOworICAgIH0KKworICAgIEF0dHJpYnV0ZU1hcCBnZXRUeXBpbmdTdHlsZSgpIHsKKworICAgICAgICBwaWNrVXBUeXBpbmdTdHlsZSgpOworICAgICAgICByZXR1cm4gZlR5cGluZ1N0eWxlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3RleHRwYW5lbC9wYWNrYWdlLmh0bWwgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZjODY1NjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC90ZXh0cGFuZWwvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzxodG1sPgorICAgIDxoZWFkPiA8IS0tICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQKKyAgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorLS0+CisgICAgICAgIDx0aXRsZT5UZXh0UGFuZWwgUGFja2FnZSBPdmVydmlldzwvdGl0bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5IGJnY29sb3I9IndoaXRlIj4KKyAgICAgICAgUHJvdmlkZXMgY29tcG9uZW50cyAoZm9yIGJvdGggQVdUIGFuZCBTd2luZykgaW4gd2hpY2ggc3R5bGVkIHRleHQgaXMgZGlzcGxheWVkIAorICAgICAgICBhbmQgZWRpdGVkLCBhbmQgcmVsYXRlZCBjbGFzc2VzLgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9BYm91dFRleHQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9BYm91dFRleHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43Yjc4YzNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0Fib3V0VGV4dC5qYXZhCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS5hd3QuQ29sb3I7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuRnJhbWVSZXNvdXJjZXM7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuTUNvbnN0VGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVkVGV4dDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitwdWJsaWMgZmluYWwgY2xhc3MgQWJvdXRUZXh0IHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIENvbG9yW10gQ09MT1JTID0geworICAgICAgICBDb2xvci5yZWQsIENvbG9yLmJsdWUsIENvbG9yLndoaXRlLCBDb2xvci5ncmVlbgorICAgIH07CisgICAgCisgICAgcHVibGljIHN0YXRpYyBNQ29uc3RUZXh0IGdldEFib3V0VGV4dCgpIHsKKworICAgICAgICBTdHJpbmcgdGV4dCA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuQUJPVVRfVEVYVCk7CisgICAgICAgIFN0eWxlZFRleHQgc3R5bGVkVGV4dCA9IG5ldyBTdHlsZWRUZXh0KHRleHQsIEF0dHJpYnV0ZU1hcC5FTVBUWV9BVFRSSUJVVEVfTUFQKTsKKworICAgICAgICBpbnQgbGVuZ3RoID0gc3R5bGVkVGV4dC5sZW5ndGgoKTsKKyAgICAgICAgaW50IGk9MDsKKworICAgICAgICBmb3IgKGludCBwYXJhZ3JhcGhTdGFydCA9IDAsIHBhcmFncmFwaExpbWl0OworICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdGFydCA8IGxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3RhcnQgPSBwYXJhZ3JhcGhMaW1pdCkgeworCisgICAgICAgICAgICBwYXJhZ3JhcGhMaW1pdCA9IHN0eWxlZFRleHQucGFyYWdyYXBoTGltaXQocGFyYWdyYXBoU3RhcnQpOworICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllciA9IFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT0xPUlNbKGkrKyklQ09MT1JTLmxlbmd0aF0pOworICAgICAgICAgICAgc3R5bGVkVGV4dC5tb2RpZnlDaGFyYWN0ZXJTdHlsZXMocGFyYWdyYXBoU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhMaW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0eWxlTW9kaWZpZXIgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkxJTkVfRkxVU0gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkxVU0hfQ0VOVEVSKTsKKworICAgICAgICBzdHlsZWRUZXh0Lm1vZGlmeVBhcmFncmFwaFN0eWxlcygwLCB0ZXh0Lmxlbmd0aCgpLCBtb2RpZmllcik7CisKKyAgICAgICAgcmV0dXJuIHN0eWxlZFRleHQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Cb29sZWFuU3R5bGVNZW51SXRlbS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0Jvb2xlYW5TdHlsZU1lbnVJdGVtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmQ2NGEyNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Cb29sZWFuU3R5bGVNZW51SXRlbS5qYXZhCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS51dGlsLkV2ZW50T2JqZWN0OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBCb29sZWFuU3R5bGVNZW51SXRlbSBleHRlbmRzIFNpbmdsZUNoZWNrTWVudUl0ZW0geworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIGZpbmFsIE9iamVjdCBmS2V5OworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBmQ2hhcmFjdGVyOworCisgICAgcHJpdmF0ZSBmaW5hbCBPYmplY3QgZk9uVmFsdWU7CisgICAgCisgICAgcHVibGljIEJvb2xlYW5TdHlsZU1lbnVJdGVtKE9iamVjdCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IG9uVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVEYXRhIG1lbnVEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIGNoYXJhY3RlcikgeworICAgICAgICAKKyAgICAgICAgc3VwZXIobWVudURhdGEpOworICAgICAgICBpZiAob25WYWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJPbiB2YWx1ZSBjYW5ub3QgYmUgbnVsbCIpOworICAgICAgICB9CisKKyAgICAgICAgZktleSA9IHN0eWxlOworICAgICAgICBmQ2hhcmFjdGVyID0gY2hhcmFjdGVyOworICAgICAgICAKKyAgICAgICAgZk9uVmFsdWUgPSBvblZhbHVlOworICAgICAgICBmSXRlbS5hZGRMaXN0ZW5lcihuZXcgRXZlbnRMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGV2ZW50T2NjdXJyZWQoRXZlbnRPYmplY3QgZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBTdHlsZU1vZGlmaWVyIG1vZGlmaWVyOworICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgICAgICBpZiAocGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgaXRlbSBpcyBlbmFibGVkIHdoZW4gcGFuZWwgaXMgbnVsbCEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGNvbnRpbnVvdXNBbmRDb21tYW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlU2V0IHNldCA9IG5ldyBBdHRyaWJ1dGVTZXQoZktleSk7CisgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyID0gU3R5bGVNb2RpZmllci5jcmVhdGVSZW1vdmVNb2RpZmllcihzZXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKGZLZXksIGZPblZhbHVlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGZDaGFyYWN0ZXIgPT0gQ0hBUkFDVEVSKSB7CisgICAgICAgICAgICAgICAgICAgIHBhbmVsLm1vZGlmeUNoYXJhY3RlclN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcGFuZWwubW9kaWZ5UGFyYWdyYXBoU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBib29sZWFuIGNvbnRpbnVvdXNBbmRDb21tYW5kKCkgeworICAgICAgICAKKyAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IGdldFRleHRQYW5lbCgpOworCisgICAgICAgIE9iamVjdCB2YWx1ZSA9IChmQ2hhcmFjdGVyID09IENIQVJBQ1RFUik/IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVsLmdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihmS2V5KSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWwuZ2V0UGFyYWdyYXBoU3R5bGVPdmVyU2VsZWN0aW9uKGZLZXkpOworICAgICAgICByZXR1cm4gZk9uVmFsdWUuZXF1YWxzKHZhbHVlKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0Q2hlY2tlZCgpIHsKKyAgICAgICAgCisgICAgICAgIGZJdGVtLnNldFN0YXRlKGNvbnRpbnVvdXNBbmRDb21tYW5kKCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmaW5hbCB2b2lkIHRleHRFdmVudE9jY3VycmVkKFRleHRQYW5lbEV2ZW50IGV2ZW50KSB7CisgICAgICAgIAorICAgICAgICBzZXRDaGVja2VkKCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9DaG9pY2VNZW51SXRlbVNldC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0Nob2ljZU1lbnVJdGVtU2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTk4OGM5MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9DaG9pY2VNZW51SXRlbVNldC5qYXZhCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS51dGlsLkV2ZW50T2JqZWN0OworCitpbXBvcnQgamF2YS51dGlsLkhhc2h0YWJsZTsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQ2hvaWNlTWVudUl0ZW1TZXQgZXh0ZW5kcyBNZW51SXRlbVNldCB7CisgICAgCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIE1JdGVtW10gZkl0ZW1zOworICAgIHByaXZhdGUgSGFzaHRhYmxlIGZJdGVtVG9TdHlsZU1hcDsKKyAgICAKKyAgICBDaG9pY2VNZW51SXRlbVNldChPYmplY3RbXSB2YWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgTWVudURhdGFbXSBtZW51RGF0YSkgeworICAgICAgICAKKyAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggIT0gbWVudURhdGEubGVuZ3RoKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWVzIGFuZCBuYW1lcyBtdXN0IGhhdmUgZXF1YWwgbGVuZ3RoIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZJdGVtcyA9IG5ldyBNSXRlbVttZW51RGF0YS5sZW5ndGhdOworICAgICAgICBmSXRlbVRvU3R5bGVNYXAgPSBuZXcgSGFzaHRhYmxlKG1lbnVEYXRhLmxlbmd0aCk7CisgICAgICAgIAorICAgICAgICBFdmVudExpc3RlbmVyIGxpc3RlbmVyID0gbmV3IEV2ZW50TGlzdGVuZXIoKSB7CisgICAgICAgICAgICBwdWJsaWMgdm9pZCBldmVudE9jY3VycmVkKEV2ZW50T2JqZWN0IGV2ZW50KSB7CisgICAgICAgICAgICAgICAgaGFuZGxlVmFsdWVTZWxlY3RlZChmSXRlbVRvU3R5bGVNYXAuZ2V0KGV2ZW50LmdldFNvdXJjZSgpKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBtZW51RGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgZkl0ZW1zW2ldID0gTUl0ZW0uY3JlYXRlQ2hlY2tib3hJdGVtKG1lbnVEYXRhW2ldKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZXNbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGZJdGVtVG9TdHlsZU1hcC5wdXQoZkl0ZW1zW2ldLCB2YWx1ZXNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZkl0ZW1zW2ldLmFkZExpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICAgICAgICAgIGZJdGVtc1tpXS5zZXRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBoYW5kbGVWYWx1ZVNlbGVjdGVkKE9iamVjdCBpdGVtKTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgT2JqZWN0IGdldEN1cnJlbnRWYWx1ZSgpOworICAgIAorICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHNldENoZWNrZWQoKSB7CisgICAgICAgIAorICAgICAgICBPYmplY3QgdmFsdWUgPSBnZXRDdXJyZW50VmFsdWUoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGZJdGVtcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgT2JqZWN0IGl0ZW1WYWwgPSBmSXRlbVRvU3R5bGVNYXAuZ2V0KGZJdGVtc1tpXSk7CisgICAgICAgICAgICBpZiAoaXRlbVZhbCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZkl0ZW1zW2ldLnNldFN0YXRlKHZhbHVlID09IG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZkl0ZW1zW2ldLnNldFN0YXRlKGl0ZW1WYWwuZXF1YWxzKHZhbHVlKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCB0ZXh0UGFuZWxDaGFuZ2VkKCkgeworICAgICAgICAKKyAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgaWYgKHRleHRQYW5lbCA9PSBudWxsKSB7CisgICAgICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBmSXRlbXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBmSXRlbXNbaV0uc2V0RW5hYmxlZChmYWxzZSk7CisgICAgICAgICAgICAgICAgZkl0ZW1zW2ldLnNldFN0YXRlKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IGZJdGVtcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGZJdGVtc1tpXS5zZXRFbmFibGVkKHRydWUpOworICAgICAgICAgICAgICAgIHNldENoZWNrZWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Db21tYW5kTWVudUl0ZW0uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9Db21tYW5kTWVudUl0ZW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ODZkNzA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0NvbW1hbmRNZW51SXRlbS5qYXZhCkBAIC0wLDAgKzEsMTkzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5FdmVudE9iamVjdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsRXZlbnQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQ29tbWFuZE1lbnVJdGVtIGV4dGVuZHMgTWVudUl0ZW1TZXQgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSAvKmZpbmFsKi8gTUl0ZW0gZkl0ZW07CisgICAgCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IGJvb2xlYW4gaXNFbmFibGVkKCk7CisgICAgcHJvdGVjdGVkIGFic3RyYWN0IHZvaWQgcGVyZm9ybUFjdGlvbigpOworCisgICAgcHJvdGVjdGVkIENvbW1hbmRNZW51SXRlbShNZW51RGF0YSBkYXRhKSB7CisgICAgICAgIAorICAgICAgICB0aGlzKGRhdGEsIGZhbHNlKTsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIENvbW1hbmRNZW51SXRlbShNZW51RGF0YSBkYXRhLCBib29sZWFuIGVuYWJsZUJ5RGVmYXVsdCkgeworICAgICAgICAKKyAgICAgICAgZkl0ZW0gPSBNSXRlbS5jcmVhdGVJdGVtKGRhdGEpOworICAgICAgICBmSXRlbS5hZGRMaXN0ZW5lcihuZXcgRXZlbnRMaXN0ZW5lcigpIHsKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIGV2ZW50T2NjdXJyZWQoRXZlbnRPYmplY3QgZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBwZXJmb3JtQWN0aW9uKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgICBmSXRlbS5zZXRFbmFibGVkKGVuYWJsZUJ5RGVmYXVsdCk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHRleHRQYW5lbENoYW5nZWQoKSB7CisgICAgICAgIAorICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICBpZiAodGV4dFBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgIGZJdGVtLnNldEVuYWJsZWQoZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZkl0ZW0uc2V0RW5hYmxlZChpc0VuYWJsZWQoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIGZpbmFsIHZvaWQgdGV4dEV2ZW50T2NjdXJyZWQoVGV4dFBhbmVsRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgCisgICAgICAgIGZJdGVtLnNldEVuYWJsZWQoaXNFbmFibGVkKCkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIEN1dENvcHlDbGVhciBleHRlbmRzIENvbW1hbmRNZW51SXRlbSB7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDVVQgPSAwOworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT1BZID0gMTsKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgQ0xFQVIgPSAyOworCisgICAgICAgIHByaXZhdGUgZmluYWwgaW50IGZLaW5kOworICAgICAgICAKKyAgICAgICAgcHVibGljIEN1dENvcHlDbGVhcihNZW51RGF0YSBtZW51RGF0YSwgaW50IGtpbmQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3VwZXIobWVudURhdGEpOworICAgICAgICAgICAgaWYgKGtpbmQgIT0gQ1VUICYmIGtpbmQgIT0gQ09QWSAmJiBraW5kICE9IENMRUFSKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBtZW51IGtpbmQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZLaW5kID0ga2luZDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNFbmFibGVkKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBNVGV4dFBhbmVsIHBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgICAgICByZXR1cm4gcGFuZWwuZ2V0U2VsZWN0aW9uU3RhcnQoKSAhPSBwYW5lbC5nZXRTZWxlY3Rpb25FbmQoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fRU1QVFlfQ0hBTkdFRDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgcGVyZm9ybUFjdGlvbigpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICAgICAgc3dpdGNoIChmS2luZCkgeworICAgICAgICAgICAgICAgIGNhc2UgQ1VUOgorICAgICAgICAgICAgICAgICAgICBwYW5lbC5jdXQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDT1BZOgorICAgICAgICAgICAgICAgICAgICBwYW5lbC5jb3B5KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ0xFQVI6CisgICAgICAgICAgICAgICAgICAgIHBhbmVsLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgVW5kb1JlZG8gZXh0ZW5kcyBDb21tYW5kTWVudUl0ZW0geworICAgICAgICAKKyAgICAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIFVORE8gPSB0cnVlOworICAgICAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gUkVETyA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBib29sZWFuIGZLaW5kOworICAgICAgICAKKyAgICAgICAgcHVibGljIFVuZG9SZWRvKE1lbnVEYXRhIG1lbnVEYXRhLCBib29sZWFuIGtpbmQpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3VwZXIobWVudURhdGEpOworICAgICAgICAgICAgZktpbmQgPSBraW5kOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0VuYWJsZWQoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgIGlmIChmS2luZCA9PSBVTkRPKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHBhbmVsLmNhblVuZG8oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiBwYW5lbC5jYW5SZWRvKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiB0eXBlID09IFRleHRQYW5lbEV2ZW50LlVORE9fU1RBVEVfQ0hBTkdFRDsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIHBlcmZvcm1BY3Rpb24oKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgIGlmIChmS2luZCA9PSBVTkRPKSB7CisgICAgICAgICAgICAgICAgcGFuZWwudW5kbygpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcGFuZWwucmVkbygpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBjbGFzcyBQYXN0ZSBleHRlbmRzIENvbW1hbmRNZW51SXRlbSB7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgUGFzdGUoTWVudURhdGEgbWVudURhdGEpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3VwZXIobWVudURhdGEpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0VuYWJsZWQoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBnZXRUZXh0UGFuZWwoKS5jbGlwYm9hcmROb3RFbXB0eSgpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5DTElQQk9BUkRfQ0hBTkdFRDsKKyAgICAgICAgfQorCisgICAgICAgIHByb3RlY3RlZCB2b2lkIHBlcmZvcm1BY3Rpb24oKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGdldFRleHRQYW5lbCgpLnBhc3RlKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGNsYXNzIFNlbGVjdEFsbCBleHRlbmRzIENvbW1hbmRNZW51SXRlbSB7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgU2VsZWN0QWxsKE1lbnVEYXRhIG1lbnVEYXRhKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN1cGVyKG1lbnVEYXRhKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNFbmFibGVkKCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIHJlc3BvbmRzVG9FdmVudFR5cGUoaW50IHR5cGUpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcHJvdGVjdGVkIHZvaWQgcGVyZm9ybUFjdGlvbigpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZ2V0VGV4dFBhbmVsKCkuc2VsZWN0QWxsKCk7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvRGlhbG9nSXRlbS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0RpYWxvZ0l0ZW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNGQ4ZWJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0RpYWxvZ0l0ZW0uamF2YQpAQCAtMCwwICsxLDcxIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEuYXd0LldpbmRvdzsKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50OworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBEaWFsb2dJdGVtIGV4dGVuZHMgQ29tbWFuZE1lbnVJdGVtIHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBzdGF0aWMgYWJzdHJhY3QgY2xhc3MgRGlhbG9nRmFjdG9yeSB7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgYWJzdHJhY3QgV2luZG93IGNyZWF0ZURpYWxvZyhNVGV4dFBhbmVsIHRleHRQYW5lbCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgRGlhbG9nRmFjdG9yeSBmRGlhbG9nRmFjdG9yeTsKKyAgICBwcml2YXRlIFdpbmRvdyBmRGlhbG9nID0gbnVsbDsKKyAgICAKKyAgICBwdWJsaWMgRGlhbG9nSXRlbShNZW51RGF0YSBtZW51RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICBEaWFsb2dGYWN0b3J5IGRpYWxvZ0ZhY3RvcnkpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKG1lbnVEYXRhLCB0cnVlKTsKKyAgICAgICAgZkRpYWxvZ0ZhY3RvcnkgPSBkaWFsb2dGYWN0b3J5OworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCB0ZXh0UGFuZWxDaGFuZ2VkKCkgeworICAgICAgICAvLyBkbyBub3RoaW5nCisgICAgfQorICAgICAgICAKKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0VuYWJsZWQoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgLy8gc2hvdWxkIG5ldmVyIGdldCBjYWxsZWQuLi4KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAgICAgCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBwZXJmb3JtQWN0aW9uKCkgeworCisgICAgICAgIGlmIChmRGlhbG9nID09IG51bGwpIHsKKyAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgIGlmIChwYW5lbCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZkRpYWxvZyA9IGZEaWFsb2dGYWN0b3J5LmNyZWF0ZURpYWxvZyhwYW5lbCk7CisgICAgICAgICAgICAgICAgZkRpYWxvZy5hZGRXaW5kb3dMaXN0ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgd2luZG93Q2xvc2VkKFdpbmRvd0V2ZW50IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZEaWFsb2cgPSBudWxsOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZkRpYWxvZy5zaG93KCk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9FdmVudExpc3RlbmVyLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvRXZlbnRMaXN0ZW5lci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIyNmNkNjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvRXZlbnRMaXN0ZW5lci5qYXZhCkBAIC0wLDAgKzEsMjIgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS51dGlsLkV2ZW50T2JqZWN0OworCitwdWJsaWMgaW50ZXJmYWNlIEV2ZW50TGlzdGVuZXIgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHZvaWQgZXZlbnRPY2N1cnJlZChFdmVudE9iamVjdCBldmVudCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0ZvbnRMaXN0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvRm9udExpc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NjgwZmJmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL0ZvbnRMaXN0LmphdmEKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMjAwNC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhlIHByb2dyYW0gaXMgcHJvdmlkZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJyYW50eSBleHByZXNzIG9yCisgKiBpbXBsaWVkLCBpbmNsdWRpbmcgdGhlIHdhcnJhbnR5IG9mIG5vbi1pbmZyaW5nZW1lbnQgYW5kIHRoZSBpbXBsaWVkCisgKiB3YXJyYW50aWVzIG9mIG1lcmNoYW50aWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2UuCisgKiBJQk0gd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgZGFtYWdlcyBzdWZmZXJlZCBieSB5b3UgYXMgYSByZXN1bHQKKyAqIG9mIHVzaW5nIHRoZSBQcm9ncmFtLiBJbiBubyBldmVudCB3aWxsIElCTSBiZSBsaWFibGUgZm9yIGFueQorICogc3BlY2lhbCwgaW5kaXJlY3Qgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9yIGxvc3QgcHJvZml0cyBldmVuIGlmCisgKiBJQk0gaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2YgdGhlaXIgb2NjdXJyZW5jZS4gSUJNCisgKiB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgYWdhaW5zdCB5b3UuCisgKi8KKy8vIFJlcXVpcmVzIEphdmEyCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3NFbnZpcm9ubWVudDsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5WZWN0b3I7CisKK2ZpbmFsIGNsYXNzIEZvbnRMaXN0IHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBzdHJpcFRoZXNlID0geworICAgICAgICAiLmJvbGQiLCAiLmJvbGRpdGFsaWMiLCAiLml0YWxpYyIKKyAgICB9OworCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmdbXSBnZXRGb250TGlzdCgpIHsKKworICAgICAgICBTdHJpbmdbXSBuYW1lcyA9IEdyYXBoaWNzRW52aXJvbm1lbnQuZ2V0TG9jYWxHcmFwaGljc0Vudmlyb25tZW50KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldEF2YWlsYWJsZUZvbnRGYW1pbHlOYW1lcygpOworICAgICAgICBWZWN0b3IgdiA9IG5ldyBWZWN0b3IobmFtZXMubGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHYuYWRkRWxlbWVudChuYW1lc1tpXSk7CisgICAgICAgIH0KKworICAgICAgICBDb2xsZWN0aW9ucy5zb3J0KHYpOworICAgICAgICAgICAgICAgIAorICAgICAgICBTdHJpbmcgbGFzdCA9ICIiOworICAgICAgICAKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IHYubGlzdEl0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdGVyLmhhc05leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIGN1cnJlbnQgPSAoU3RyaW5nKSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIHRlc3RTdWZmaXhlczogZm9yIChpbnQgaT0wOyBpIDwgc3RyaXBUaGVzZS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50LmVuZHNXaXRoKHN0cmlwVGhlc2VbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGludCBiYXNlTGVuID0gY3VycmVudC5sZW5ndGgoKS1zdHJpcFRoZXNlW2ldLmxlbmd0aCgpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgYmFzZSA9IGN1cnJlbnQuc3Vic3RyaW5nKDAsIGJhc2VMZW4pOworICAgICAgICAgICAgICAgICAgICBpZiAoYmFzZS5lcXVhbHNJZ25vcmVDYXNlKGxhc3QpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpdGVyLnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGxhc3Q7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayB0ZXN0U3VmZml4ZXM7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsYXN0ID0gY3VycmVudDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3RyaW5nW10gcmVzdWx0ID0gbmV3IFN0cmluZ1t2LnNpemUoKV07CisgICAgICAgIHYuY29weUludG8ocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvS2V5bWFwTWVudUl0ZW1TZXQuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9LZXltYXBNZW51SXRlbVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk1ZjlkNjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvS2V5bWFwTWVudUl0ZW1TZXQuamF2YQpAQCAtMCwwICsxLDU5IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLktleVJlbWFwOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbEV2ZW50OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitwdWJsaWMgZmluYWwgY2xhc3MgS2V5bWFwTWVudUl0ZW1TZXQgZXh0ZW5kcyBDaG9pY2VNZW51SXRlbVNldCB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHB1YmxpYyBLZXltYXBNZW51SXRlbVNldChLZXlSZW1hcFtdIHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVudURhdGFbXSBtZW51RGF0YSkgeworICAgICAgICAKKyAgICAgICAgc3VwZXIodmFsdWVzLCBtZW51RGF0YSk7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVZhbHVlU2VsZWN0ZWQoT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIAorICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICBpZiAodGV4dFBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWVudSBpdGVtIGlzIGVuYWJsZWQgd2hlbiBwYW5lbCBpcyBudWxsISIpOworICAgICAgICB9CisKKyAgICAgICAgdGV4dFBhbmVsLnNldEtleVJlbWFwKChLZXlSZW1hcCkgdmFsdWUpOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IGdldEN1cnJlbnRWYWx1ZSgpIHsKKyAgICAgICAgCisgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIGlmICh0ZXh0UGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGRuJ3QgY2FsbCB0aGlzIHdpdGhvdXQgYSB0ZXh0IHBhbmVsISIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0ZXh0UGFuZWwuZ2V0S2V5UmVtYXAoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgdGV4dEV2ZW50T2NjdXJyZWQoVGV4dFBhbmVsRXZlbnQgZXZlbnQpIHsKKyAgICAgICAgCisgICAgICAgIHNldENoZWNrZWQoKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuS0VZUkVNQVBfQ0hBTkdFRDsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NSXRlbS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL01JdGVtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDkwYTAzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NSXRlbS5qYXZhCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKK2ltcG9ydCBqYXZhLnV0aWwuRXZlbnRPYmplY3Q7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBNSXRlbSB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByaXZhdGUgVmVjdG9yIGZMaXN0ZW5lcnMgPSBuZXcgVmVjdG9yKDIpOworICAgIHByaXZhdGUgRXZlbnRPYmplY3QgZkV2ZW50ID0gbmV3IEV2ZW50T2JqZWN0KHRoaXMpOworICAgIAorICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldEVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKKyAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRTdGF0ZShib29sZWFuIGNoZWNrZWQpOworICAgIAorICAgIHB1YmxpYyBmaW5hbCB2b2lkIGFkZExpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIpIHsKKyAgICAgICAgCisgICAgICAgIGZMaXN0ZW5lcnMuYWRkRWxlbWVudChsaXN0ZW5lcik7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBmaW5hbCB2b2lkIHJlbW92ZUxpc3RlbmVyKEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIpIHsKKyAgICAgICAgCisgICAgICAgIGZMaXN0ZW5lcnMucmVtb3ZlRWxlbWVudChsaXN0ZW5lcik7CisgICAgfQorICAgIAorICAgIHByb3RlY3RlZCB2b2lkIGhhbmRsZVNlbGVjdGVkKCkgeworICAgICAgICAgICAgCisgICAgICAgIGludCBsZW5ndGggPSBmTGlzdGVuZXJzLnNpemUoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIEV2ZW50TGlzdGVuZXIgbCA9IChFdmVudExpc3RlbmVyKSBmTGlzdGVuZXJzLmVsZW1lbnRBdChpKTsKKyAgICAgICAgICAgIGwuZXZlbnRPY2N1cnJlZChmRXZlbnQpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIGZhY3Rvcnkgc3R1ZmYKKyAgICAKKyAgICAvKioKKyAgICAgKiBDbGllbnRzIHNob3VsZCBzeW5jaHJvbml6ZSBvbiBMT0NLIHdoaWxlIHNldHRpbmcgYW5kIHVzaW5nCisgICAgICogZ2xvYmFsIGZhY3RvcnkuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBPYmplY3QgTE9DSyA9IG5ldyBPYmplY3QoKTsKKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIGludGVyZmFjZSBJdGVtRmFjdG9yeSB7CisgICAgICAgIAorICAgICAgICBwdWJsaWMgTUl0ZW0gY3JlYXRlSXRlbShNZW51RGF0YSBtZW51RGF0YSk7CisgICAgICAgIHB1YmxpYyBNSXRlbSBjcmVhdGVDaGVja2JveEl0ZW0oTWVudURhdGEgbWVudURhdGEpOworICAgICAgICBwdWJsaWMgdm9pZCBjcmVhdGVTZXBhcmF0b3IoKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgSXRlbUZhY3RvcnkgZmdGYWN0b3J5OworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgTUl0ZW0gY3JlYXRlSXRlbShNZW51RGF0YSBtZW51RGF0YSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZnRmFjdG9yeS5jcmVhdGVJdGVtKG1lbnVEYXRhKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyBNSXRlbSBjcmVhdGVDaGVja2JveEl0ZW0oTWVudURhdGEgbWVudURhdGEpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBmZ0ZhY3RvcnkuY3JlYXRlQ2hlY2tib3hJdGVtKG1lbnVEYXRhKTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldEl0ZW1GYWN0b3J5KEl0ZW1GYWN0b3J5IGZhY3RvcnkpIHsKKyAgICAgICAgCisgICAgICAgIGZnRmFjdG9yeSA9IGZhY3Rvcnk7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgSXRlbUZhY3RvcnkgZ2V0SXRlbUZhY3RvcnkoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZmdGYWN0b3J5OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NZW51QnVpbGRlci5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL01lbnVCdWlsZGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTFiNWM1ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NZW51QnVpbGRlci5qYXZhCkBAIC0wLDAgKzEsMzY4IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkZyYW1lOworCitpbXBvcnQgamF2YS50ZXh0Lk51bWJlckZvcm1hdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLlRleHRBdHRyaWJ1dGU7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5LZXlSZW1hcDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5GcmFtZVJlc291cmNlczsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5EaWFsb2dJdGVtLkRpYWxvZ0ZhY3Rvcnk7CisKK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBNZW51QnVpbGRlciB7CisKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIAorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IEVESVQgPSAwOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNJWkUgPSAxOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgaW50IFNUWUxFID0gMjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBGTFVTSCA9IDM7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgS0VZTUFQID0gNDsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBCSURJID0gNTsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBBQk9VVCA9IDY7CisgICAgCisgICAgcHJpdmF0ZSBDb2xvcltdIGNvbG9ycyA9IHsgQ29sb3IuYmxhY2ssIENvbG9yLndoaXRlLCBDb2xvci5ncmVlbiwgQ29sb3IuYmx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IuY3lhbiwgQ29sb3IuZ3JheSwgQ29sb3IuZGFya0dyYXksIENvbG9yLmxpZ2h0R3JheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3IubWFnZW50YSwgQ29sb3Iub3JhbmdlLCBDb2xvci5waW5rLCBDb2xvci5yZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9yLnllbGxvdywgbnVsbCB9OworICAgIHByaXZhdGUgU3RyaW5nW10gY29sb3JOYW1lcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuQkxBQ0spLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5XSElURSksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkdSRUVOKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuQkxVRSksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLkNZQU4pLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5HUkFZKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuREFSS19HUkFZKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuTElHSFRfR1JBWSksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLk1BR0VOVEEpLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5PUkFOR0UpLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5QSU5LKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuUkVEKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuWUVMTE9XKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuTk9ORSkKKyAgICB9OworICAgIAorICAgIHByb3RlY3RlZCBpbnRbXSBkZWZhdWx0TWVudXMgPSB7IEVESVQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RZTEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkxVU0gsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtFWU1BUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCSURJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFCT1VUIH07CisKKyAgICBwcm90ZWN0ZWQgTVRleHRQYW5lbCBmVGV4dFBhbmVsOworICAgIHByb3RlY3RlZCBGcmFtZSBmRGlhbG9nUGFyZW50OworCisgICAgcHJvdGVjdGVkIE1lbnVCdWlsZGVyKCkgeworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgZmluYWwgdm9pZCBkb0NyZWF0ZU1lbnVzKE1UZXh0UGFuZWwgdGV4dFBhbmVsLCBGcmFtZSBmcmFtZSwgaW50W10gbWVudXMpIHsKKyAgICAKKyAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKyAgICAgICAgZkRpYWxvZ1BhcmVudCA9IGZyYW1lOworICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgbWVudXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHN3aXRjaChtZW51c1tpXSkgeworICAgICAgICAgICAgICAgIGNhc2UgRURJVDoKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlRWRpdE1lbnUoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBTSVpFOgorICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaXplTWVudSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFNUWUxFOgorICAgICAgICAgICAgICAgICAgICBjcmVhdGVTdHlsZU1lbnUoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBGTFVTSDoKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlRmx1c2hNZW51KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgS0VZTUFQOgorICAgICAgICAgICAgICAgICAgICBjcmVhdGVLZXltYXBNZW51KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQklESToKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlQmlkaU1lbnUoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBBQk9VVDoKKyAgICAgICAgICAgICAgICAgICAgY3JlYXRlQWJvdXRNZW51KCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIklsbGVnYWwgbWVudTogIiArIG1lbnVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZlRleHRQYW5lbCA9IG51bGw7CisgICAgICAgIGZEaWFsb2dQYXJlbnQgPSBudWxsOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBoYW5kbGVBZGRNZW51KFN0cmluZyBrZXkpOworICAgIAorICAgIHByb3RlY3RlZCBhYnN0cmFjdCBEaWFsb2dGYWN0b3J5IGNyZWF0ZU9iamVjdERpYWxvZ0ZhY3RvcnkoU3RyaW5nIGRpYWxvZ1RpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRpYWxvZ1RleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmdbXSBuYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFtdIHZhbHVlcyk7CisKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgRGlhbG9nRmFjdG9yeSBjcmVhdGVOdW1iZXJEaWFsb2dGYWN0b3J5KFN0cmluZyBkaWFsb2dUaXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkaWFsb2dUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyKTsKKworICAgIHByb3RlY3RlZCBhYnN0cmFjdCBEaWFsb2dGYWN0b3J5IGNyZWF0ZUFib3V0RGlhbG9nRmFjdG9yeSgpOworCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZUVkaXRNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5FRElUKTsKKyAgICAgICAgCisgICAgICAgIG5ldyBDb21tYW5kTWVudUl0ZW0uVW5kb1JlZG8oUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5VTkRPKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRNZW51SXRlbS5VbmRvUmVkby5VTkRPKS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgICAgIG5ldyBDb21tYW5kTWVudUl0ZW0uVW5kb1JlZG8oUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5SRURPKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRNZW51SXRlbS5VbmRvUmVkby5SRURPKS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgICAgIE1JdGVtLmdldEl0ZW1GYWN0b3J5KCkuY3JlYXRlU2VwYXJhdG9yKCk7CisgICAgICAgIG5ldyBDb21tYW5kTWVudUl0ZW0uQ3V0Q29weUNsZWFyKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuQ1VUKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kTWVudUl0ZW0uQ3V0Q29weUNsZWFyLkNVVCkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBuZXcgQ29tbWFuZE1lbnVJdGVtLkN1dENvcHlDbGVhcihSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkNPUFkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRNZW51SXRlbS5DdXRDb3B5Q2xlYXIuQ09QWSkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICBuZXcgQ29tbWFuZE1lbnVJdGVtLlBhc3RlKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuUEFTVEUpKS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgICAgIG5ldyBDb21tYW5kTWVudUl0ZW0uQ3V0Q29weUNsZWFyKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuQ0xFQVIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRNZW51SXRlbS5DdXRDb3B5Q2xlYXIuQ0xFQVIpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgTUl0ZW0uZ2V0SXRlbUZhY3RvcnkoKS5jcmVhdGVTZXBhcmF0b3IoKTsKKyAgICAgICAgbmV3IENvbW1hbmRNZW51SXRlbS5TZWxlY3RBbGwoUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5TRUxFQ1RfQUxMKSkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBmbG9hdFtdIERFRkFVTFRfU0laRVMgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgezksIDEwLCAxMiwgMTQsIDE4LCAyNCwgMzYsIDQ4LCA3Mn07CisKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlU2l6ZU1lbnUoKSB7CisgICAgICAgIAorICAgICAgICBjcmVhdGVTaXplTWVudShERUZBVUxUX1NJWkVTKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZVNpemVNZW51KGZsb2F0W10gc2l6ZXMpIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5TSVpFKTsKKworICAgICAgICBpZiAoc2l6ZXMgIT0gREVGQVVMVF9TSVpFUykgeworCisgICAgICAgICAgICBzaXplcyA9IChmbG9hdFtdKSBzaXplcy5jbG9uZSgpOworICAgICAgICAgICAgaWYgKHNpemVzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigic2l6ZXMgYXJyYXkgaGFzIHplcm8gbGVuZ3RoIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZsb2F0IGxhc3RWYWx1ZSA9IHNpemVzWzBdOworICAgICAgICAgICAgZm9yIChpbnQgaT0xOyBpIDwgc2l6ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoc2l6ZXNbaV0gPj0gbGFzdFZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2l6ZXMgYXJyYXkgbXVzdCBiZSBpbmNyZWFzaW5nIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxhc3RWYWx1ZSA9IHNpemVzW2ldOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBGbG9hdFtdIHZhbHVlcyA9IG5ldyBGbG9hdFtzaXplcy5sZW5ndGhdOworICAgICAgICBNZW51RGF0YVtdIG1EYXRhID0gbmV3IE1lbnVEYXRhW3NpemVzLmxlbmd0aF07CisgICAgICAgIE51bWJlckZvcm1hdCBmbXQgPSBOdW1iZXJGb3JtYXQuZ2V0TnVtYmVySW5zdGFuY2UoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoaW50IGk9MDsgaSA8IHNpemVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YWx1ZXNbaV0gPSBuZXcgRmxvYXQoc2l6ZXNbaV0pOworICAgICAgICAgICAgbURhdGFbaV0gPSBuZXcgTWVudURhdGEoZm10LmZvcm1hdChzaXplc1tpXSkpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBuZXcgU3R5bGVNZW51SXRlbVNldChUZXh0QXR0cmlidXRlLlNJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVJdGVtU2V0LkNIQVJBQ1RFUikuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICAgICAgCisgICAgICAgIGlmIChmRGlhbG9nUGFyZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgIFN0cmluZyBkaWFsb2dUaXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuU0VUX1NJWkVfVElUTEUpOworICAgICAgICAgICAgU3RyaW5nIGRpYWxvZ1RleHQgPSBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLlNFVF9TSVpFX0xBQkVMKTsKKyAgICAgICAgICAgIERpYWxvZ0ZhY3RvcnkgZmFjdG9yeSA9IGNyZWF0ZU51bWJlckRpYWxvZ0ZhY3RvcnkoZGlhbG9nVGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1RleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVudUl0ZW1TZXQuQ0hBUkFDVEVSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBuZXcgRGlhbG9nSXRlbShSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLk9USEVSX0RJQUxPRyksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY3RvcnkpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlU3R5bGVNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5TVFlMRSk7CisKKyAgICAgICAgT2JqZWN0W10ga2V5cyA9ICAgIHsgVGV4dEF0dHJpYnV0ZS5XRUlHSFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuUE9TVFVSRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5VTkRFUkxJTkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuU1RSSUtFVEhST1VHSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5TVVBFUlNDUklQVH07CisgICAgICAgIE9iamVjdFtdIHZhbHVlcyA9ICB7IFRleHRBdHRyaWJ1dGUuV0VJR0hUX0JPTEQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuUE9TVFVSRV9PQkxJUVVFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLlVOREVSTElORV9PTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5TVFJJS0VUSFJPVUdIX09OLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKC0xKX07CisgICAgICAgIE1lbnVEYXRhW10gbURhdGEgPSB7IFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuQk9MRCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuSVRBTElDKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5VTkRFUkxJTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLlNUUklLRVRIUk9VR0gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLlNVUEVSU0NSSVBUKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5TVUJTQ1JJUFQpfTsKKworICAgICAgICBuZXcgU3VidHJhY3RTdHlsZU1lbnVJdGVtKGtleXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5QTEFJTiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51SXRlbVNldC5DSEFSQUNURVIpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbmV3IEJvb2xlYW5TdHlsZU1lbnVJdGVtKGtleXNbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EYXRhW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVJdGVtU2V0LkNIQVJBQ1RFUikuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKGZEaWFsb2dQYXJlbnQgIT0gbnVsbCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBNSXRlbS5nZXRJdGVtRmFjdG9yeSgpLmNyZWF0ZVNlcGFyYXRvcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBTdHJpbmdbXSBmb250cyA9IEZvbnRMaXN0LmdldEZvbnRMaXN0KCk7CisgICAgICAgICAgICBTdHJpbmcgdGl0bGUgPSBSZXNvdXJjZVV0aWxzLmdldFJlc291cmNlU3RyaW5nKEZyYW1lUmVzb3VyY2VzLlNFVF9GT05UX1RJVExFKTsKKyAgICAgICAgICAgIFN0cmluZyBsYWJlbCA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuU0VUX0ZPTlRfTEFCRUwpOworICAgICAgICAgICAgCisgICAgICAgICAgICBEaWFsb2dGYWN0b3J5IGZvbnRGID0gY3JlYXRlT2JqZWN0RGlhbG9nRmFjdG9yeSh0aXRsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkFNSUxZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3R5bGVNZW51SXRlbVNldC5DSEFSQUNURVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRzKTsKKyAgICAgICAgICAgIG5ldyBEaWFsb2dJdGVtKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuRk9OVF9ESUFMT0cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udEYpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKworICAgICAgICAgICAgRGlhbG9nRmFjdG9yeSBmb3JlZ3JvdW5kRiA9IGNyZWF0ZUNvbG9yRGlhbG9nRmFjdG9yeSh0cnVlKTsKKyAgICAgICAgICAgIERpYWxvZ0ZhY3RvcnkgYmFja2dyb3VuZEYgPSBjcmVhdGVDb2xvckRpYWxvZ0ZhY3RvcnkoZmFsc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICBuZXcgRGlhbG9nSXRlbShSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkZPUkVDT0xPUl9ESUFMT0cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWdyb3VuZEYpLnNldFRleHRQYW5lbChmVGV4dFBhbmVsKTsKKyAgICAgICAgICAgIG5ldyBEaWFsb2dJdGVtKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuQkFDS0NPTE9SX0RJQUxPRyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kRikuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgICAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgRGlhbG9nRmFjdG9yeSBjcmVhdGVDb2xvckRpYWxvZ0ZhY3RvcnkoYm9vbGVhbiBmb3JlZ3JvdW5kKSB7CisgICAgICAgIAorICAgICAgICBTdHJpbmcgdGl0bGU7CisgICAgICAgIFN0cmluZyBtZXNzYWdlOworICAgICAgICBPYmplY3Qga2V5OworICAgICAgICAKKyAgICAgICAgaWYgKGZvcmVncm91bmQpIHsKKyAgICAgICAgICAgIHRpdGxlID0gUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5TRVRfRk9SRUdST1VORF9USVRMRSk7CisgICAgICAgICAgICBtZXNzYWdlID0gUmVzb3VyY2VVdGlscy5nZXRSZXNvdXJjZVN0cmluZyhGcmFtZVJlc291cmNlcy5TRVRfRk9SRUdST1VORF9MQUJFTCk7CisgICAgICAgICAgICBrZXkgPSBUZXh0QXR0cmlidXRlLkZPUkVHUk9VTkQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aXRsZSA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuU0VUX0JBQ0tHUk9VTkRfVElUTEUpOworICAgICAgICAgICAgbWVzc2FnZSA9IFJlc291cmNlVXRpbHMuZ2V0UmVzb3VyY2VTdHJpbmcoRnJhbWVSZXNvdXJjZXMuU0VUX0JBQ0tHUk9VTkRfTEFCRUwpOworICAgICAgICAgICAga2V5ID0gVGV4dEF0dHJpYnV0ZS5CQUNLR1JPVU5EOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjcmVhdGVPYmplY3REaWFsb2dGYWN0b3J5KHRpdGxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1lbnVJdGVtU2V0LkNIQVJBQ1RFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JOYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JzKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGNyZWF0ZUZvbnRNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5GT05UKTsKKyAgICAgICAgCisgICAgICAgIFN0cmluZ1tdIGZvbnRzID0gRm9udExpc3QuZ2V0Rm9udExpc3QoKTsKKyAgICAgICAgTWVudURhdGFbXSBtRGF0YSA9IG5ldyBNZW51RGF0YVtmb250cy5sZW5ndGhdOworICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBtRGF0YS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbURhdGFbaV0gPSBuZXcgTWVudURhdGEoZm9udHNbaV0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBuZXcgU3R5bGVNZW51SXRlbVNldChUZXh0QXR0cmlidXRlLkZBTUlMWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHlsZU1lbnVJdGVtU2V0LkNIQVJBQ1RFUikuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlRmx1c2hNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5GTFVTSCk7CisgICAgICAgIAorICAgICAgICBPYmplY3RbXSB2YWx1ZXMgPSB7ICBUZXh0QXR0cmlidXRlLkZMVVNIX0xFQURJTkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRBdHRyaWJ1dGUuRkxVU0hfQ0VOVEVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZMVVNIX1RSQUlMSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0QXR0cmlidXRlLkZVTExZX0pVU1RJRklFRCB9OworICAgICAgICBNZW51RGF0YVtdIG1EYXRhID0geyBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkxFQURJTkcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkNFTlRFUiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuVFJBSUxJTkcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkpVU1RJRklFRCkgfTsKKyAgICAgICAgCisgICAgICAgIG5ldyBTdHlsZU1lbnVJdGVtU2V0KFRleHRBdHRyaWJ1dGUuTElORV9GTFVTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVudUl0ZW1TZXQuUEFSQUdSQVBIKS5zZXRUZXh0UGFuZWwoZlRleHRQYW5lbCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBjcmVhdGVLZXltYXBNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5LRVlNQVApOworICAgICAgICAKKyAgICAgICAgS2V5UmVtYXBbXSB2YWx1ZXMgPSB7IEtleVJlbWFwLmdldElkZW50aXR5UmVtYXAoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5UmVtYXAuZ2V0QXJhYmljVHJhbnNsaXRlcmF0aW9uKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleVJlbWFwLmdldEhlYnJld1RyYW5zbGl0ZXJhdGlvbigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlSZW1hcC5nZXRJc3JhZWxOaWt1ZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlSZW1hcC5nZXRUaGFpS2V0bWFuZWUoKSB9OworICAgICAgICBNZW51RGF0YVtdIG1EYXRhID0geyBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkRFRkFVTFQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkFSQUJJQyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuSEVCUkVXKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5JU1JBRUxfTklLVUQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLlRIQUlfS0VUTUFORUUpIH07CisgICAgICAgIAorICAgICAgICBuZXcgS2V5bWFwTWVudUl0ZW1TZXQodmFsdWVzLCBtRGF0YSkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlQmlkaU1lbnUoKSB7CisgICAgICAgIAorICAgICAgICBoYW5kbGVBZGRNZW51KEZyYW1lUmVzb3VyY2VzLkJJREkpOworICAgICAgICAKKyAgICAgICAgT2JqZWN0W10gdmFsdWVzID0geyAgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX0xUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dEF0dHJpYnV0ZS5SVU5fRElSRUNUSU9OX1JUTCB9OworICAgICAgICBNZW51RGF0YVtdIG1EYXRhID0geyBSZXNvdXJjZVV0aWxzLmdldE1lbnVEYXRhKEZyYW1lUmVzb3VyY2VzLkRFRkFVTFRfRElSRUNUSU9OKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5MVFJfRElSRUNUSU9OKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VVdGlscy5nZXRNZW51RGF0YShGcmFtZVJlc291cmNlcy5SVExfRElSRUNUSU9OKSwgfTsKKworICAgICAgICBuZXcgU3R5bGVNZW51SXRlbVNldChUZXh0QXR0cmlidXRlLlJVTl9ESVJFQ1RJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVJdGVtU2V0LlBBUkFHUkFQSCkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHZvaWQgY3JlYXRlQWJvdXRNZW51KCkgeworICAgICAgICAKKyAgICAgICAgaGFuZGxlQWRkTWVudShGcmFtZVJlc291cmNlcy5BQk9VVF9NRU5VKTsKKyAgICAgICAgCisgICAgICAgIG5ldyBEaWFsb2dJdGVtKFJlc291cmNlVXRpbHMuZ2V0TWVudURhdGEoRnJhbWVSZXNvdXJjZXMuQUJPVVRfSVRFTSksIAorICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVBYm91dERpYWxvZ0ZhY3RvcnkoKSkuc2V0VGV4dFBhbmVsKGZUZXh0UGFuZWwpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NZW51SXRlbVNldC5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL01lbnVJdGVtU2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmJhMTM4OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9NZW51SXRlbVNldC5qYXZhCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxMaXN0ZW5lcjsKKworcHVibGljIGFic3RyYWN0IGNsYXNzIE1lbnVJdGVtU2V0IGltcGxlbWVudHMgVGV4dFBhbmVsTGlzdGVuZXIgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIENIQVJBQ1RFUiA9IHRydWU7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBib29sZWFuIFBBUkFHUkFQSCA9IGZhbHNlOworCisgICAgcHJpdmF0ZSBNVGV4dFBhbmVsIGZUZXh0UGFuZWwgPSBudWxsOworICAgIAorICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHRleHRFdmVudE9jY3VycmVkKFRleHRQYW5lbEV2ZW50IGV2ZW50KTsKKyAgICBwdWJsaWMgYWJzdHJhY3QgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKTsKKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCBzZXRUZXh0UGFuZWwoTVRleHRQYW5lbCB0ZXh0UGFuZWwpIHsKKyAgICAgICAgCisgICAgICAgIGlmIChmVGV4dFBhbmVsICE9IG51bGwpIHsKKyAgICAgICAgICAgIGZUZXh0UGFuZWwucmVtb3ZlTGlzdGVuZXIodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgZlRleHRQYW5lbCA9IHRleHRQYW5lbDsKKyAgICAgICAgaWYgKGZUZXh0UGFuZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgZlRleHRQYW5lbC5hZGRMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdGV4dFBhbmVsQ2hhbmdlZCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgTVRleHRQYW5lbCBnZXRUZXh0UGFuZWwoKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gZlRleHRQYW5lbDsKKyAgICB9CisgICAgCisgICAgcHJvdGVjdGVkIHZvaWQgdGV4dFBhbmVsQ2hhbmdlZCgpIHsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvUmVzb3VyY2VVdGlscy5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1Jlc291cmNlVXRpbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYmIwZTVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1Jlc291cmNlVXRpbHMuamF2YQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWlzc2luZ1Jlc291cmNlRXhjZXB0aW9uOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLkZyYW1lUmVzb3VyY2VzOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5NZW51RGF0YTsKKworcHVibGljIGNsYXNzIFJlc291cmNlVXRpbHMgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgUmVzb3VyY2VCdW5kbGUgQlVORExFOworICAgIHN0YXRpYyB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBCVU5ETEUgPSBSZXNvdXJjZUJ1bmRsZS5nZXRCdW5kbGUoImNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5GcmFtZVJlc291cmNlcyIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKE1pc3NpbmdSZXNvdXJjZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvdWxkbid0IGxvYWQgcmVzb3VyY2VYWFguICAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhjZXB0aW9uOiAiICsgZSk7CisgICAgICAgICAgICBCVU5ETEUgPSBuZXcgRnJhbWVSZXNvdXJjZXMoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgTWVudURhdGEgZ2V0TWVudURhdGEoU3RyaW5nIGtleSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIChNZW51RGF0YSkgQlVORExFLmdldE9iamVjdChrZXkpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRSZXNvdXJjZVN0cmluZyhTdHJpbmcga2V5KSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gQlVORExFLmdldFN0cmluZyhrZXkpOworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvU2luZ2xlQ2hlY2tNZW51SXRlbS5qYXZhIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1NpbmdsZUNoZWNrTWVudUl0ZW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YTY3N2Y0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1NpbmdsZUNoZWNrTWVudUl0ZW0uamF2YQpAQCAtMCwwICsxLDQzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC51aWltcGwucmVzb3VyY2VzLk1lbnVEYXRhOworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgU2luZ2xlQ2hlY2tNZW51SXRlbSBleHRlbmRzIE1lbnVJdGVtU2V0IHsKKyAgICAKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgIHByb3RlY3RlZCBNSXRlbSBmSXRlbTsKKyAgICAKKyAgICBTaW5nbGVDaGVja01lbnVJdGVtKE1lbnVEYXRhIG1lbnVEYXRhKSB7CisgICAgICAgIAorICAgICAgICBmSXRlbSA9IE1JdGVtLmNyZWF0ZUNoZWNrYm94SXRlbShtZW51RGF0YSk7CisgICAgfQorICAgIAorICAgIGFic3RyYWN0IHZvaWQgc2V0Q2hlY2tlZCgpOworICAgIAorICAgIHByb3RlY3RlZCBmaW5hbCB2b2lkIHRleHRQYW5lbENoYW5nZWQoKSB7CisgICAgICAgIAorICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICBpZiAodGV4dFBhbmVsID09IG51bGwpIHsKKyAgICAgICAgICAgIGZJdGVtLnNldEVuYWJsZWQoZmFsc2UpOworICAgICAgICAgICAgZkl0ZW0uc2V0U3RhdGUoZmFsc2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZkl0ZW0uc2V0RW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgIHNldENoZWNrZWQoKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TdHlsZU1lbnVJdGVtU2V0LmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvU3R5bGVNZW51SXRlbVNldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU3NmIyYTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvU3R5bGVNZW51SXRlbVNldC5qYXZhCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0bGF5b3V0LmF0dHJpYnV0ZXMuQXR0cmlidXRlU2V0OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQuc3R5bGVkdGV4dC5TdHlsZU1vZGlmaWVyOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuTVRleHRQYW5lbDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5UZXh0UGFuZWxFdmVudDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXMuTWVudURhdGE7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTdHlsZU1lbnVJdGVtU2V0IGV4dGVuZHMgQ2hvaWNlTWVudUl0ZW1TZXQgeworICAgIAorICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisKKyAgICBwcml2YXRlIE9iamVjdCBmS2V5OworICAgIHByaXZhdGUgYm9vbGVhbiBmQ2hhcmFjdGVyOworCisgICAgcHVibGljIFN0eWxlTWVudUl0ZW1TZXQoT2JqZWN0IHN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdFtdIHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51RGF0YVtdIG1lbnVEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gY2hhcmFjdGVyKSB7CisgICAgICAgIAorICAgICAgICBzdXBlcih2YWx1ZXMsIG1lbnVEYXRhKTsKKyAgICAgICAgZktleSA9IHN0eWxlOworICAgICAgICBmQ2hhcmFjdGVyID0gY2hhcmFjdGVyOworICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgdm9pZCBoYW5kbGVWYWx1ZVNlbGVjdGVkKE9iamVjdCB2YWx1ZSkgeworICAgICAgICAKKyAgICAgICAgTVRleHRQYW5lbCB0ZXh0UGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgaWYgKHRleHRQYW5lbCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgaXRlbSBpcyBlbmFibGVkIHdoZW4gcGFuZWwgaXMgbnVsbCEiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllcjsKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgIEF0dHJpYnV0ZVNldCBzZXQgPSBuZXcgQXR0cmlidXRlU2V0KGZLZXkpOworICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZVJlbW92ZU1vZGlmaWVyKHNldCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtb2RpZmllciA9IFN0eWxlTW9kaWZpZXIuY3JlYXRlQWRkTW9kaWZpZXIoZktleSwgdmFsdWUpOworICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBDSEFSQUNURVIpIHsKKyAgICAgICAgICAgIHRleHRQYW5lbC5tb2RpZnlDaGFyYWN0ZXJTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRleHRQYW5lbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcm90ZWN0ZWQgT2JqZWN0IGdldEN1cnJlbnRWYWx1ZSgpIHsKKyAgICAgICAgCisgICAgICAgIE1UZXh0UGFuZWwgdGV4dFBhbmVsID0gZ2V0VGV4dFBhbmVsKCk7CisgICAgICAgIGlmICh0ZXh0UGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGRuJ3QgY2FsbCB0aGlzIHdpdGhvdXQgYSB0ZXh0IHBhbmVsISIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBDSEFSQUNURVIpIHsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0UGFuZWwuZ2V0Q2hhcmFjdGVyU3R5bGVPdmVyU2VsZWN0aW9uKGZLZXkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRleHRQYW5lbC5nZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb24oZktleSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCkgeworICAgICAgICAKKyAgICAgICAgc2V0Q2hlY2tlZCgpOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgYm9vbGVhbiByZXNwb25kc1RvRXZlbnRUeXBlKGludCB0eXBlKSB7CisgICAgICAgIAorICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TdWJ0cmFjdFN0eWxlTWVudUl0ZW0uamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9TdWJ0cmFjdFN0eWxlTWVudUl0ZW0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mOGFmMDg1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1N1YnRyYWN0U3R5bGVNZW51SXRlbS5qYXZhCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEudXRpbC5FdmVudE9iamVjdDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5BdHRyaWJ1dGVTZXQ7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0LlN0eWxlTW9kaWZpZXI7CisKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbEV2ZW50OworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlcy5NZW51RGF0YTsKKworcHVibGljIGZpbmFsIGNsYXNzIFN1YnRyYWN0U3R5bGVNZW51SXRlbSBleHRlbmRzIFNpbmdsZUNoZWNrTWVudUl0ZW0geworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIGZpbmFsIE9iamVjdFtdIGZLZXlzOworICAgIAorICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBmQ2hhcmFjdGVyOworICAgIAorICAgIHB1YmxpYyBTdWJ0cmFjdFN0eWxlTWVudUl0ZW0oT2JqZWN0W10ga2V5cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbnVEYXRhIG1lbnVEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBjaGFyYWN0ZXIpIHsKKyAgICAgICAgCisgICAgICAgIHN1cGVyKG1lbnVEYXRhKTsKKyAgICAgICAgCisgICAgICAgIGZLZXlzID0gKE9iamVjdFtdKSBrZXlzLmNsb25lKCk7CisgICAgICAgIGZDaGFyYWN0ZXIgPSBjaGFyYWN0ZXI7CisgICAgICAgIAorICAgICAgICBBdHRyaWJ1dGVTZXQga2V5U2V0ID0gbmV3IEF0dHJpYnV0ZVNldChrZXlzKTsKKyAgICAgICAgZmluYWwgU3R5bGVNb2RpZmllciBtb2RpZmllciA9IFN0eWxlTW9kaWZpZXIuY3JlYXRlUmVtb3ZlTW9kaWZpZXIoa2V5U2V0KTsKKyAgICAgICAgCisgICAgICAgIGZJdGVtLmFkZExpc3RlbmVyKG5ldyBFdmVudExpc3RlbmVyKCkgeworICAgICAgICAgICAgcHVibGljIHZvaWQgZXZlbnRPY2N1cnJlZChFdmVudE9iamVjdCBldmVudCkgeworICAgICAgICAgICAgICAgIE1UZXh0UGFuZWwgcGFuZWwgPSBnZXRUZXh0UGFuZWwoKTsKKyAgICAgICAgICAgICAgICBpZiAocGFuZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgaXRlbSBpcyBlbmFibGVkIHdoZW4gcGFuZWwgaXMgbnVsbCEiKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoZkNoYXJhY3RlciA9PSBDSEFSQUNURVIpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFuZWwubW9kaWZ5Q2hhcmFjdGVyU3R5bGVPblNlbGVjdGlvbihtb2RpZmllcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwYW5lbC5tb2RpZnlQYXJhZ3JhcGhTdHlsZU9uU2VsZWN0aW9uKG1vZGlmaWVyKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICBwcml2YXRlIHN0YXRpYyBib29sZWFuIG9iamVjdHNBcmVFcXVhbChPYmplY3QgbGhzLCBPYmplY3QgcmhzKSB7CisgICAgCisgICAgICAgIGlmIChsaHMgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHJocyA9PSBudWxsOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxocy5lcXVhbHMocmhzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHNldENoZWNrZWQoKSB7CisKKyAgICAgICAgTVRleHRQYW5lbCBwYW5lbCA9IGdldFRleHRQYW5lbCgpOworICAgICAgICBBdHRyaWJ1dGVNYXAgZGVmYXVsdHMgPSBwYW5lbC5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGludCBpPTA7IGkgPCBmS2V5cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgT2JqZWN0IGRlZmF1bHRWID0gZGVmYXVsdHMuZ2V0KGZLZXlzW2ldKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gKGZDaGFyYWN0ZXIgPT0gQ0hBUkFDVEVSKT8gCisgICAgICAgICAgICAgICAgICAgIHBhbmVsLmdldENoYXJhY3RlclN0eWxlT3ZlclNlbGVjdGlvbihmS2V5c1tpXSkgOgorICAgICAgICAgICAgICAgICAgICBwYW5lbC5nZXRQYXJhZ3JhcGhTdHlsZU92ZXJTZWxlY3Rpb24oZktleXNbaV0pOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghb2JqZWN0c0FyZUVxdWFsKGRlZmF1bHRWLCB2YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICBmSXRlbS5zZXRTdGF0ZShmYWxzZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZkl0ZW0uc2V0U3RhdGUodHJ1ZSk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgZmluYWwgdm9pZCB0ZXh0RXZlbnRPY2N1cnJlZChUZXh0UGFuZWxFdmVudCBldmVudCkgeworICAgICAgICAKKyAgICAgICAgc2V0Q2hlY2tlZCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9UYWJSdWxlckltcGwuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9UYWJSdWxlckltcGwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42Mjg2YTcxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL1RhYlJ1bGVySW1wbC5qYXZhCkBAIC0wLDAgKzEsOTAzIEBACisvKgorICogKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0yMDA0LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgcHJvZ3JhbSBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IGV4cHJlc3Mgb3IKKyAqIGltcGxpZWQsIGluY2x1ZGluZyB0aGUgd2FycmFudHkgb2Ygbm9uLWluZnJpbmdlbWVudCBhbmQgdGhlIGltcGxpZWQKKyAqIHdhcnJhbnRpZXMgb2YgbWVyY2hhbnRpYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4KKyAqIElCTSB3aWxsIG5vdCBiZSBsaWFibGUgZm9yIGFueSBkYW1hZ2VzIHN1ZmZlcmVkIGJ5IHlvdSBhcyBhIHJlc3VsdAorICogb2YgdXNpbmcgdGhlIFByb2dyYW0uIEluIG5vIGV2ZW50IHdpbGwgSUJNIGJlIGxpYWJsZSBmb3IgYW55CisgKiBzcGVjaWFsLCBpbmRpcmVjdCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb3IgbG9zdCBwcm9maXRzIGV2ZW4gaWYKKyAqIElCTSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGVpciBvY2N1cnJlbmNlLiBJQk0KKyAqIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IHRoaXJkIHBhcnR5IGNsYWltcyBhZ2FpbnN0IHlvdS4KKyAqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbDsKKworaW1wb3J0IGphdmEuYXd0LkNvbG9yOworaW1wb3J0IGphdmEuYXd0LkNvbXBvbmVudDsKK2ltcG9ydCBqYXZhLmF3dC5EaW1lbnNpb247CitpbXBvcnQgamF2YS5hd3QuRm9udE1ldHJpY3M7CitpbXBvcnQgamF2YS5hd3QuR3JhcGhpY3M7CitpbXBvcnQgamF2YS5hd3QuSW1hZ2U7CisKK2ltcG9ydCBqYXZhLmF3dC5ldmVudC5Nb3VzZU1vdGlvbkxpc3RlbmVyOworaW1wb3J0IGphdmEuYXd0LmV2ZW50Lk1vdXNlTGlzdGVuZXI7CitpbXBvcnQgamF2YS5hd3QuZXZlbnQuTW91c2VFdmVudDsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dGxheW91dC5hdHRyaWJ1dGVzLkF0dHJpYnV0ZU1hcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnRleHRsYXlvdXQuYXR0cmlidXRlcy5UZXh0QXR0cmlidXRlOworCitpbXBvcnQgY29tLmlibS5yaWNodGV4dC5zdHlsZWR0ZXh0Lk1UYWJSdWxlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3RhbmRhcmRUYWJSdWxlcjsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuVGFiU3RvcDsKK2ltcG9ydCBjb20uaWJtLnJpY2h0ZXh0LnN0eWxlZHRleHQuU3R5bGVNb2RpZmllcjsKKworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbExpc3RlbmVyOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLk1UZXh0UGFuZWw7CitpbXBvcnQgY29tLmlibS5yaWNodGV4dC50ZXh0cGFuZWwuVGV4dFBhbmVsOworaW1wb3J0IGNvbS5pYm0ucmljaHRleHQudGV4dHBhbmVsLlRleHRQYW5lbEV2ZW50OworCisvKioKKyAqIFRhYlJ1bGVyIGlzIGEgQ29tcG9uZW50IHdoaWNoIHByZXNlbnRzIGEgdXNlciBpbnRlcmZhY2UgZm9yCisgKiBzZXR0aW5nIHRoZSBsZWFkaW5nIG1hcmdpbiwgdHJhaWxpbmcgbWFyZ2luLCBmaXJzdCBsaW5lIGluZGVudCwKKyAqIGFuZCB0YWIgdHlwZXMgYW5kIHBvc2l0aW9ucy4KKyAqIDxwPgorICogVGFiUnVsZXIgZG9lcyBub3QgaW1wbGVtZW50IFRleHRQYW5lbExpc3RlbmVyIGRpcmVjdGx5OyAgaG93ZXZlciwKKyAqIGl0IGNhbiByZWNlaXZlIHVwZGF0ZXMgZnJvbSBhIE1UZXh0UGFuZWwuICBUbyBoYXZlIGEgVGFiUnVsZXIgbGlzdGVuCisgKiB0byBhIHBhbmVsLCBjYWxsIDxjb2RlPmxpc3RlblRvUGFuZWw8L2NvZGU+LiAgVGFiUnVsZXIgcmVzcG9uZHMgdG8KKyAqIHVzZXIgbWFuaXB1bGF0aW9uIGJ5IG1vZGlmeWluZyB0aGUgcGFyYWdyYXBoIHN0eWxlcyBvbiBpdHMgTVRleHRQYW5lbAorICogKGlmIGFueSkuCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBUYWJSdWxlckltcGwgaW1wbGVtZW50cyBNb3VzZUxpc3RlbmVyLCBNb3VzZU1vdGlvbkxpc3RlbmVyCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBUYWJTdG9wQnVmZmVyIHsKKyAgICAgICAgcHVibGljIGludCBmUG9zaXRpb247CisgICAgICAgIHB1YmxpYyBieXRlIGZUeXBlOworCisgICAgICAgIFRhYlN0b3BCdWZmZXIoaW50IHBvc2l0aW9uLCBieXRlIHR5cGUpIHsKKyAgICAgICAgICAgIGZQb3NpdGlvbiA9IHBvc2l0aW9uOworICAgICAgICAgICAgZlR5cGUgPSB0eXBlOworICAgICAgICB9CisKKyAgICAgICAgVGFiU3RvcEJ1ZmZlcihUYWJTdG9wIHRhYikgeworICAgICAgICAgICAgdGhpcyh0YWIuZ2V0UG9zaXRpb24oKSwgdGFiLmdldFR5cGUoKSk7CisgICAgICAgIH0KKworICAgICAgICBUYWJTdG9wIGdldFRhYlN0b3AoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFRhYlN0b3AoZlBvc2l0aW9uLCBmVHlwZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBUYWJSdWxlck1vZGlmaWVyIGV4dGVuZHMgU3R5bGVNb2RpZmllciB7CisKKyAgICAgICAgcHJpdmF0ZSBUYWJTdG9wIGZPbGRUYWI7IC8vIHRhYiB0byByZW1vdmUKKyAgICAgICAgcHJpdmF0ZSBUYWJTdG9wIGZOZXdUYWI7IC8vIHRhYiB0byBhZGQKKyAgICAgICAgcHJpdmF0ZSBBdHRyaWJ1dGVNYXAgZlBhbmVsRGVmYXVsdHM7CisgICAgICAgIAorICAgICAgICBUYWJSdWxlck1vZGlmaWVyKFRhYlN0b3Agb2xkVGFiLAorICAgICAgICAgICAgICAgICAgICAgICAgIFRhYlN0b3AgbmV3VGFiLAorICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBwYW5lbERlZmF1bHRzKSB7CisgICAgICAgICAgICBmT2xkVGFiID0gb2xkVGFiOworICAgICAgICAgICAgZk5ld1RhYiA9IG5ld1RhYjsKKyAgICAgICAgICAgIGZQYW5lbERlZmF1bHRzID0gcGFuZWxEZWZhdWx0czsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBBdHRyaWJ1dGVNYXAgbW9kaWZ5U3R5bGUoQXR0cmlidXRlTWFwIG9sZFN0eWxlKSB7CisKKyAgICAgICAgICAgIE1UYWJSdWxlciBvbGRSdWxlciA9IChNVGFiUnVsZXIpIGdldFdpdGhEZWZhdWx0KFRleHRBdHRyaWJ1dGUuVEFCX1JVTEVSLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFN0eWxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZQYW5lbERlZmF1bHRzKTsKKyAgICAgICAgICAgIE1UYWJSdWxlciBydWxlciA9IG9sZFJ1bGVyOworCisgICAgICAgICAgICBpZiAoZk9sZFRhYiAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgaWYgKHJ1bGVyLmNvbnRhaW5zVGFiKGZPbGRUYWIpKSB7CisgICAgICAgICAgICAgICAgICAgIHJ1bGVyID0gcnVsZXIucmVtb3ZlVGFiKGZPbGRUYWIuZ2V0UG9zaXRpb24oKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZOZXdUYWIgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJ1bGVyID0gcnVsZXIuYWRkVGFiKGZOZXdUYWIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAocnVsZXIgIT0gb2xkUnVsZXIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gb2xkU3R5bGUuYWRkQXR0cmlidXRlKFRleHRBdHRyaWJ1dGUuVEFCX1JVTEVSLCBydWxlcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gb2xkU3R5bGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBJbWFnZUNhY2hlIHsKKworICAgICAgICBzdGF0aWMgZmluYWwgU3RyaW5nIENPUFlSSUdIVCA9CisgICAgICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKyAgICAgICAgcHJpdmF0ZSBJbWFnZSBmSW1hZ2UgPSBudWxsOworICAgICAgICBwcml2YXRlIGJvb2xlYW4gZklzVmFsaWQgPSBmYWxzZTsKKyAgICAgICAgcHJpdmF0ZSBDb21wb25lbnQgZkNvbXBvbmVudDsgICAvLyB3b3JrYXJvdW5kIGZvciBjb21waWxlciBidWcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNob3VsZCBqdXN0IGJlIGFibGUgdG8gc2F5IENvbXBvbmVudC50aGlzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgdGhpcyB3ZXJlIG5vdCBhIHN0YXRpYyBjbGFzcworICAgICAgICAKKyAgICAgICAgSW1hZ2VDYWNoZShDb21wb25lbnQgY29tcG9uZW50KSB7CisgICAgICAgIAorICAgICAgICAgICAgZkNvbXBvbmVudCA9IGNvbXBvbmVudDsKKyAgICAgICAgfQorCisgICAgICAgIEdyYXBoaWNzIGdldEdyYXBoaWNzKGludCB3aWR0aCwgaW50IGhlaWdodCkgeworCisgICAgICAgICAgICBpZiAod2lkdGggPD0gMCB8fCBoZWlnaHQgPD0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBJbWFnZSBpbWFnZSA9IGZJbWFnZTsKKyAgICAgICAgICAgIGlmIChpbWFnZSA9PSBudWxsIHx8IGltYWdlLmdldFdpZHRoKGZDb21wb25lbnQpIDwgd2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGltYWdlLmdldEhlaWdodChmQ29tcG9uZW50KSA8IGhlaWdodCkgeworICAgICAgICBpZiAoIWZDb21wb25lbnQuaXNWaXNpYmxlKCkpIHsgLy8gZml4IHJhY2UgY29uZGl0aW9uIGlmIGNvbXBvbmVudCBub3QgZnVsbHkgaW5pdGlhbGl6ZWQKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgICAgICAgICAgaW1hZ2UgPSBmQ29tcG9uZW50LmNyZWF0ZUltYWdlKHdpZHRoLCBoZWlnaHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgR3JhcGhpY3MgZyA9IGltYWdlLmdldEdyYXBoaWNzKCk7CisgICAgICAgICAgICBmSW1hZ2UgPSBpbWFnZTsKKyAgICAgICAgICAgIHJldHVybiBnOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkcmF3SW1hZ2UoR3JhcGhpY3MgZywgaW50IHgsIGludCB5LCBDb2xvciBjb2xvcikgeworCisgICAgICAgICAgICBpZiAoIWZJc1ZhbGlkKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEcmF3aW5nIGltYWdlIHdoZW4gbm90IHZhbGlkIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnLmRyYXdJbWFnZShmSW1hZ2UsIHgsIHksIGNvbG9yLCBmQ29tcG9uZW50KTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2xlYW4gaXNWYWxpZCgpIHsKKworICAgICAgICAgICAgcmV0dXJuIGZJc1ZhbGlkOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBzZXRWYWxpZChib29sZWFuIGlzVmFsaWQpIHsKKworICAgICAgICAgICAgZklzVmFsaWQgPSBpc1ZhbGlkOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgKiBUaGlzIGNsYXNzIGxpc3RlbnMgdG8gYSBNVGV4dFBhbmVsIGZvciBjaGFuZ2VzIHdoaWNoCisgICAgKiBhZmZlY3QgYSBUYWJSdWxlcidzIGFwcGVhcmFuY2UsIGFuZCB1cGRhdGVzIHRoZSBUYWJSdWxlcgorICAgICogYXMgbmVjZXNzYXJ5LgorICAgICogQHNlZSBUYWJSdWxlcgorICAgICogQHNlZSBjb20uaWJtLnJpY2h0ZXh0LnRleHRwYW5lbC5NVGV4dFBhbmVsCisgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBVcGRhdGVyIGltcGxlbWVudHMgVGV4dFBhbmVsTGlzdGVuZXIgeworCisgICAgICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAgICAgIihDKSBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTgtMTk5OSAtIEFsbCBSaWdodHMgUmVzZXJ2ZWQiOworICAgICAgICBwcml2YXRlIFRhYlJ1bGVySW1wbCBmVGFiUnVsZXI7CisgICAgICAgIHByaXZhdGUgTVRleHRQYW5lbCBmVGV4dFBhbmVsOworCisgICAgICAgIC8qKgorICAgICAgICAqIENyZWF0ZSBhIG5ldyBUYWJSdWxlclVwZGF0ZXIuCisgICAgICAgICogQHBhcmFtIHRhYlJ1bGVyIHRoZSBUYWJSdWxlciB0byB1cGRhdGUgd2hlbiBhIGNoYW5nZSBvY2N1cnMKKyAgICAgICAgKiAgICAgaW4gdGhlIE1UZXh0UGFuZWwKKyAgICAgICAgKi8KKyAgICAgICAgVXBkYXRlcihUYWJSdWxlckltcGwgdGFiUnVsZXIpIHsKKworICAgICAgICAgICAgZlRhYlJ1bGVyID0gdGFiUnVsZXI7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgKiBSZW1vdmUgc2VsZiBhcyBsaXN0ZW5lciBmcm9tIHByZXZpb3VzIE1UZXh0UGFuZWwsCisgICAgICAgICogc2V0IGN1cnJlbnQgTVRleHRQYW5lbCBhbmQgbGlzdGVuIHRvIGl0IChpZiBub3QgbnVsbCkuCisgICAgICAgICovCisgICAgICAgIHZvaWQgc2V0VGV4dFBhbmVsKE1UZXh0UGFuZWwgdGV4dFBhbmVsKSB7CisKKyAgICAgICAgICAgIGlmIChmVGV4dFBhbmVsICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBmVGV4dFBhbmVsLnJlbW92ZUxpc3RlbmVyKHRoaXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmVGV4dFBhbmVsID0gdGV4dFBhbmVsOworCisgICAgICAgICAgICBpZiAoZlRleHRQYW5lbCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZlRleHRQYW5lbC5hZGRMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgICAgICBzZXRBbGwoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgdm9pZCBzZXRBbGwoKSB7CisKKyAgICAgICAgICAgIGludCBvZmZzZXQgPSBmVGV4dFBhbmVsLmdldFNlbGVjdGlvblN0YXJ0KCk7CisgICAgICAgICAgICBib29sZWFuIGxlZnRUb1JpZ2h0ID0gZlRleHRQYW5lbC5wYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KG9mZnNldCk7CisgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUgPSBmVGV4dFBhbmVsLmdldFRleHQoKS5wYXJhZ3JhcGhTdHlsZUF0KG9mZnNldCk7CisgICAgICAgICAgICBmVGFiUnVsZXIuc2V0KHN0eWxlLCBmYWxzZSk7CisgICAgICAgICAgICBmVGFiUnVsZXIuc2V0Rm9ybWF0V2lkdGgoZlRleHRQYW5lbC5nZXRGb3JtYXRXaWR0aCgpLCBmYWxzZSk7CisgICAgICAgICAgICBmVGFiUnVsZXIuc2V0TGVmdFRvUmlnaHQobGVmdFRvUmlnaHQsIHRydWUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICogVGV4dFBhbmVsTGlzdGVuZXIgbWV0aG9kLiAgVGhpcyBjbGFzcyByZXNwb25kcyB0byB0ZXh0CisgICAgICAgICogY2hhbmdlcyBieSB1cGRhdGluZyBpdHMgVGFiUnVsZXIuCisgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHRleHRFdmVudE9jY3VycmVkKFRleHRQYW5lbEV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgICAgIGludCBjaGFuZ2VDb2RlID0gZXZlbnQuZ2V0SUQoKTsKKworICAgICAgICAgICAgaWYgKGNoYW5nZUNvZGUgPT0gVGV4dFBhbmVsRXZlbnQuU0VMRUNUSU9OX1NUWUxFU19DSEFOR0VEIHx8CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZUNvZGUgPT0gVGV4dFBhbmVsRXZlbnQuVEVYVF9DSEFOR0VEKSB7CisKKyAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gZlRleHRQYW5lbC5nZXRTZWxlY3Rpb25TdGFydCgpOworICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSA9IGZUZXh0UGFuZWwuZ2V0VGV4dCgpLnBhcmFncmFwaFN0eWxlQXQob2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBib29sZWFuIGxlZnRUb1JpZ2h0ID0gZlRleHRQYW5lbC5wYXJhZ3JhcGhJc0xlZnRUb1JpZ2h0KG9mZnNldCk7CisgICAgICAgICAgICAgICAgZlRhYlJ1bGVyLnNldChzdHlsZSwgZmFsc2UpOworICAgICAgICAgICAgICAgIGZUYWJSdWxlci5zZXRMZWZ0VG9SaWdodChsZWZ0VG9SaWdodCwgdHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChjaGFuZ2VDb2RlID09IFRleHRQYW5lbEV2ZW50LkZPUk1BVF9XSURUSF9DSEFOR0VEKSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZlRhYlJ1bGVyLnNldEZvcm1hdFdpZHRoKGZUZXh0UGFuZWwuZ2V0Rm9ybWF0V2lkdGgoKSwgdHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAqIFRleHRQYW5lbExpc3RlbmVyIG1ldGhvZC4KKyAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGJvb2xlYW4gcmVzcG9uZHNUb0V2ZW50VHlwZShpbnQgdHlwZSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5TRUxFQ1RJT05fU1RZTEVTX0NIQU5HRUQgfHwKKyAgICAgICAgICAgICAgICAgICAgdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5URVhUX0NIQU5HRUQgfHwKKyAgICAgICAgICAgICAgICAgICAgdHlwZSA9PSBUZXh0UGFuZWxFdmVudC5GT1JNQVRfV0lEVEhfQ0hBTkdFRDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBkZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIFRhYlJ1bGVycy4KKyAgICAgKiBAc2VlICNzZXRCYWNrQ29sb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIENvbG9yIERFRkFVTFRfQkFDS19DT0xPUiA9IENvbG9yLmxpZ2h0R3JheTsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrVHJhY2tOb25lID0gMDsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga1RyYWNrVGFiID0gMTsKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQga1RyYWNrTE0gPSAyOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrVHJhY2tGTEkgPSAzOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGludCBrVHJhY2tUTSA9IDQ7CisKKyAgICBwcml2YXRlIENvbXBvbmVudCBmSG9zdDsKKyAgICBwcml2YXRlIE1UYWJSdWxlciBmUnVsZXI7CisgICAgcHJpdmF0ZSBpbnQgZkxlYWRpbmdNYXJnaW47CisgICAgcHJpdmF0ZSBpbnQgZkZpcnN0TGluZUluZGVudDsKKyAgICBwcml2YXRlIGludCBmRm9ybWF0V2lkdGg7CisgICAgcHJpdmF0ZSBpbnQgZlRyYWlsaW5nTWFyZ2luUG9zaXRpb247IC8vIG9wcG9zaXRlIG9mIGFjdHVhbCB0cmFpbGluZyBtYXJnaW4KKyAgICBwcml2YXRlIGJvb2xlYW4gZkxlZnRUb1JpZ2h0OworICAgIHByaXZhdGUgaW50IGZCYXNlbGluZTsKKyAgICBwcml2YXRlIGludCBmT3JpZ2luOworICAgIHByaXZhdGUgQ29sb3IgZkJhY2tDb2xvciA9IERFRkFVTFRfQkFDS19DT0xPUjsKKworICAgIHByaXZhdGUgaW50IGZUcmFja0l0ZW07IC8vIDAgLSBub25lLCAxIC0gdGFiLCAyIC0gbG0sIDMgLSBmbGksIDQgLSB0bQorICAgIHByaXZhdGUgVGFiU3RvcEJ1ZmZlciBmVHJhY2tUYWI7CisgICAgcHJpdmF0ZSBUYWJTdG9wIGZPbGRUYWI7CisgICAgcHJpdmF0ZSBpbnQgZlRyYWNrRGVsdGE7CisgICAgcHJpdmF0ZSBib29sZWFuIGZUcmFja1Zpc2libGU7CisgICAgcHJpdmF0ZSBVcGRhdGVyIGZVcGRhdGVyOworICAgIHByaXZhdGUgTVRleHRQYW5lbCBmVGV4dFBhbmVsID0gbnVsbDsKKworICAgIHByaXZhdGUgSW1hZ2VDYWNoZSBmSW1hZ2VDYWNoZTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIG5ldyBUYWJSdWxlci4KKyAgICAgKiBAcGFyYW0gYmFzZWxpbmUgdGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgcnVsZXIncyBiYXNlbGluZQorICAgICAqIEBwYXJhbSBvcmlnaW4gdGhlIHgtY29vcmRpbmF0ZSBpbiB0aGlzIENvbXBvbmVudCB3aGVyZQorICAgICAqICAgICB0aGUgbGVmdCBtYXJnaW4gYXBwZWFycworICAgICAqIEBwYXJhbSB0ZXh0UGFuZWwgdGhlIE1UZXh0UGFuZWwgdG8gbGlzdGVuIHRvLiAgVGhpcyBUYWJSdWxlcgorICAgICAqICAgICB3aWxsIHJlZmxlY3QgdGhlIE1UZXh0UGFuZWwncyBwYXJhZ3JhcGggc3R5bGVzLCBhbmQgdXBkYXRlCisgICAgICogICAgIHRoZSBwYXJhZ3JhcGggc3R5bGVzIHdoZW4gbWFuaXB1bGF0ZWQuCisgICAgICovCisgICAgcHVibGljIFRhYlJ1bGVySW1wbChpbnQgYmFzZWxpbmUsIAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9yaWdpbiwgCisgICAgICAgICAgICAgICAgICAgICAgICBNVGV4dFBhbmVsIHRleHRQYW5lbCwKKyAgICAgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudCBob3N0KSB7CisKKyAgICAgICAgZkhvc3QgPSBob3N0OworICAgICAgICBmSW1hZ2VDYWNoZSA9IG5ldyBJbWFnZUNhY2hlKGhvc3QpOworICAgICAgICBmVXBkYXRlciA9IG5ldyBVcGRhdGVyKHRoaXMpOworICAgICAgICBmQmFzZWxpbmUgPSBiYXNlbGluZTsKKyAgICAgICAgZk9yaWdpbiA9IG9yaWdpbjsKKyAgICAgICAgaG9zdC5hZGRNb3VzZUxpc3RlbmVyKHRoaXMpOworICAgICAgICBob3N0LmFkZE1vdXNlTW90aW9uTGlzdGVuZXIodGhpcyk7CisgICAgICAgIGlmICh0ZXh0UGFuZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgbGlzdGVuVG9UZXh0UGFuZWwodGV4dFBhbmVsKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZSdWxlciA9IG5ldyBTdGFuZGFyZFRhYlJ1bGVyKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMaXN0ZW4gdG8gdGhlIGdpdmVuIE1UZXh0UGFuZWwgYW5kIHJlZmxlY3QgaXRzIGNoYW5nZXMsCisgICAgICogYW5kIHVwZGF0ZSBpdHMgcGFyYWdyYXBoIHN0eWxlcyB3aGVuIFRhYlJ1bGVyIGlzCisgICAgICogbWFuaXB1bGF0ZWQuCisgICAgICogQHBhcmFtIHRleHRQYW5lbCB0aGUgTVRleHRQYW5lbCB0byBsaXN0ZW4gdG8KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBsaXN0ZW5Ub1RleHRQYW5lbChNVGV4dFBhbmVsIHRleHRQYW5lbCkgeworCisgICAgICAgIGZUZXh0UGFuZWwgPSB0ZXh0UGFuZWw7CisgICAgICAgIGZVcGRhdGVyLnNldFRleHRQYW5lbCh0ZXh0UGFuZWwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBDb2xvciBnZXRCYWNrQ29sb3IoKSB7CisKKyAgICAgICAgcmV0dXJuIGZCYWNrQ29sb3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHBhcmFtIGJhY2tDb2xvciB0aGUgbmV3IGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEJhY2tDb2xvcihDb2xvciBiYWNrQ29sb3IpIHsKKworICAgICAgICBpZiAoIWJhY2tDb2xvci5lcXVhbHMoZkJhY2tDb2xvcikpIHsKKyAgICAgICAgICAgIGZCYWNrQ29sb3IgPSBiYWNrQ29sb3I7CisgICAgICAgICAgICBHcmFwaGljcyBnID0gZkhvc3QuZ2V0R3JhcGhpY3MoKTsKKyAgICAgICAgICAgIGlmIChnICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBwYWludChnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdCBnZXRXaXRoRGVmYXVsdChPYmplY3Qga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVNYXAgc3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0cykgeworICAgICAgICBPYmplY3QgdmFsdWUgPSBzdHlsZS5nZXQoa2V5KTsKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHsKKyAgICAgICAgICAgIHZhbHVlID0gZGVmYXVsdHMuZ2V0KGtleSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGZsb2F0IGdldEZsb2F0V2l0aERlZmF1bHQoT2JqZWN0IGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBzdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCBkZWZhdWx0cykgeworICAgICAgICBPYmplY3QgdmFsdWUgPSBnZXRXaXRoRGVmYXVsdChrZXksIHN0eWxlLCBkZWZhdWx0cyk7CisgICAgICAgIHJldHVybiAoKEZsb2F0KXZhbHVlKS5mbG9hdFZhbHVlKCk7CisgICAgfQorICAgIAorICAgIHByaXZhdGUgdm9pZCBzZXRMZWZ0VG9SaWdodChib29sZWFuIGxlZnRUb1JpZ2h0LCBib29sZWFuIHVwZGF0ZSkgeworICAgICAgICAKKyAgICAgICAgaWYgKGZMZWZ0VG9SaWdodCAhPSBsZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBmTGVmdFRvUmlnaHQgPSBsZWZ0VG9SaWdodDsKKyAgICAgICAgICAgIHJlZHJhd1NlbGYodXBkYXRlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBzZXRGb3JtYXRXaWR0aChpbnQgZm9ybWF0V2lkdGgsIGJvb2xlYW4gdXBkYXRlKSB7CisgICAgICAgIAorICAgICAgICBpZiAoZkZvcm1hdFdpZHRoICE9IGZvcm1hdFdpZHRoKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZUcmFpbGluZ01hcmdpblBvc2l0aW9uICs9IChmb3JtYXRXaWR0aCAtIGZGb3JtYXRXaWR0aCk7CisgICAgICAgICAgICBmRm9ybWF0V2lkdGggPSBmb3JtYXRXaWR0aDsKKyAgICAgICAgICAgIHJlZHJhd1NlbGYodXBkYXRlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgVGFiUnVsZXIgZnJvbSB2YWx1ZXMgaW4gcGFyYWdyYXBoU3R5bGUuICBPbmx5IFRhYlJ1bGVyVXBkYXRlcgorICAgICAqIHNob3VsZCBjYWxsIHRoaXMgbWV0aG9kLgorICAgICAqIEBwYXJhbSBwYXJhZ3JhcGhTdHlsZSB0aGUgcGFyYWdyYXBoIHN0eWxlIHdoaWNoIHRoZSBUYWJSdWxlciB3aWxsCisgICAgICogICAgIHJlZmxlY3QKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgc2V0KEF0dHJpYnV0ZU1hcCBwYXJhZ3JhcGhTdHlsZSwgYm9vbGVhbiB1cGRhdGUpIHsKKworICAgICAgICBBdHRyaWJ1dGVNYXAgcGFuZWxEZWZhdWx0czsKKyAgICAgICAgCisgICAgICAgIGlmIChmVGV4dFBhbmVsPT1udWxsKSB7CisgICAgICAgICAgICBwYW5lbERlZmF1bHRzID0gVGV4dFBhbmVsLmdldERlZmF1bHRTZXR0aW5ncygpLmdldERlZmF1bHRWYWx1ZXMoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICBwYW5lbERlZmF1bHRzID0gZlRleHRQYW5lbC5nZXREZWZhdWx0VmFsdWVzKCk7CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpbnQgbGVhZGluZ01hcmdpbiA9ICAoaW50KSBnZXRGbG9hdFdpdGhEZWZhdWx0KFRleHRBdHRyaWJ1dGUuTEVBRElOR19NQVJHSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWxEZWZhdWx0cyk7CisgICAgICAgIGludCBmaXJzdExpbmVJbmRlbnQgPSAoaW50KSBnZXRGbG9hdFdpdGhEZWZhdWx0KFRleHRBdHRyaWJ1dGUuRklSU1RfTElORV9JTkRFTlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaFN0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYW5lbERlZmF1bHRzKTsKKyAgICAgICAgaW50IHRyYWlsaW5nTWFyZ2luID0gKGludCkgZ2V0RmxvYXRXaXRoRGVmYXVsdChUZXh0QXR0cmlidXRlLlRSQUlMSU5HX01BUkdJTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhTdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYW5lbERlZmF1bHRzKTsKKworICAgICAgICBNVGFiUnVsZXIgcnVsZXIgPSAoTVRhYlJ1bGVyKSBnZXRXaXRoRGVmYXVsdChUZXh0QXR0cmlidXRlLlRBQl9SVUxFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoU3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVsRGVmYXVsdHMpOworCisgICAgICAgIGludCBvdXJGbGkgPSBsZWFkaW5nTWFyZ2luICsgZmlyc3RMaW5lSW5kZW50OworICAgICAgICBpbnQgb3VyVG1wID0gZkZvcm1hdFdpZHRoIC0gdHJhaWxpbmdNYXJnaW47CisgICAgICAgIAorICAgICAgICBpZiAobGVhZGluZ01hcmdpbiA9PSBmTGVhZGluZ01hcmdpbiAmJgorICAgICAgICAgICAgICAgIGZGaXJzdExpbmVJbmRlbnQgPT0gb3VyRmxpICYmCisgICAgICAgICAgICAgICAgZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24gPT0gb3VyVG1wICYmCisgICAgICAgICAgICAgICAgcnVsZXIuZXF1YWxzKGZSdWxlcikpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZkxlYWRpbmdNYXJnaW4gPSBsZWFkaW5nTWFyZ2luOworICAgICAgICBmRmlyc3RMaW5lSW5kZW50ID0gb3VyRmxpOworICAgICAgICBmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbiA9IG91clRtcDsKKyAgICAgICAgZlJ1bGVyID0gcnVsZXI7CisgICAgCisgICAgICAgIHJlZHJhd1NlbGYodXBkYXRlKTsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIHJlZHJhd1NlbGYoYm9vbGVhbiBkcmF3Tm93KSB7CisKKyAgICAgICAgZkltYWdlQ2FjaGUuc2V0VmFsaWQoZmFsc2UpOworCisgICAgICAgIEdyYXBoaWNzIGcgPSBmSG9zdC5nZXRHcmFwaGljcygpOworICAgICAgICBpZiAoZyAhPSBudWxsKQorICAgICAgICAgICAgcGFpbnQoZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGRlYnVnZ2luZyBpbmZvLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisKKyAgICAgICAgcmV0dXJuICJUYWJSdWxlcntmTGVhZGluZ01hcmdpbj0iK2ZMZWFkaW5nTWFyZ2luKworICAgICAgICAgICAgICAgICJ9e2ZGaXJzdExpbmVJbmRlbnQ9IitmRmlyc3RMaW5lSW5kZW50KworICAgICAgICAgICAgICAgICJ9e2ZGb3JtYXRXaWR0aD0iK2ZGb3JtYXRXaWR0aCsKKyAgICAgICAgICAgICAgICAifXtmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbj0iK2ZUcmFpbGluZ01hcmdpblBvc2l0aW9uKworICAgICAgICAgICAgICAgICJ9e2ZSdWxlcj0iK2ZSdWxlcisKKyAgICAgICAgICAgICAgICAifSI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBNVGFiUnVsZXIgcmVwcmVzZW50ZWQgYnkgdGhpcyBUYWJSdWxlci4KKyAgICAgKiBAcmV0dXJuIHRoZSBNVGFiUnVsZXIgcmVwcmVzZW50ZWQgYnkgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBNVGFiUnVsZXIgZ2V0UnVsZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZSdWxlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxlYWRpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgbGVhZGluZyBtYXJnaW4gb2YgdGhpcyBUYWJSdWxlcgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0TGVhZGluZ01hcmdpbigpCisgICAgeworICAgICAgICByZXR1cm4gZkxlYWRpbmdNYXJnaW47CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmaXJzdCBsaW5lIGluZGVudCBvZiB0aGlzIFRhYlJ1bGVyLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGxpbmUgaW5kZW50IG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGdldEZpcnN0TGluZUluZGVudCgpCisgICAgeworICAgICAgICByZXR1cm4gZkZpcnN0TGluZUluZGVudCAtIGZMZWFkaW5nTWFyZ2luOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIuCisgICAgICogQHJldHVybiB0aGUgdHJhaWxpbmcgbWFyZ2luIG9mIHRoaXMgVGFiUnVsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgaW50IGdldFRyYWlsaW5nTWFyZ2luKCkKKyAgICB7CisgICAgICAgIHJldHVybiBmRm9ybWF0V2lkdGggLSBmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbjsKKyAgICB9CisgICAgCisgICAgcHJpdmF0ZSBpbnQgdmlzdWFsVG9SdWxlclBvcyhpbnQgdmlzUG9zKSB7CisgICAgICAgIAorICAgICAgICBpZiAoZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICByZXR1cm4gdmlzUG9zIC0gZk9yaWdpbjsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBmT3JpZ2luICsgZkZvcm1hdFdpZHRoIC0gdmlzUG9zOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHByaXZhdGUgaW50IHJ1bGVyVG9WaXN1YWxQb3MoaW50IHJ1bGVyUG9zKSB7CisgICAgICAgIAorICAgICAgICBpZiAoZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICByZXR1cm4gZk9yaWdpbiArIHJ1bGVyUG9zOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGZPcmlnaW4gKyBmRm9ybWF0V2lkdGggLSBydWxlclBvczsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBwcml2YXRlIGludCBkaXJNdWx0KCkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIGZMZWZ0VG9SaWdodD8gMSA6IC0xOworICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSB0YWJQb3NpdGlvbiB0aGUgbG9naWNhbCAocnVsZXIpIHBvc2l0aW9uIG9mIHRoZSB0YWIKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZHJhd1RhYihHcmFwaGljcyBnLCBpbnQgdGFiUG9zaXRpb24sIGJ5dGUgdGFiVHlwZSwgaW50IHRhYlRvcCwgaW50IHRhYkJvdHRvbSkKKyAgICB7CisgICAgICAgIGludCBwb3MgPSBydWxlclRvVmlzdWFsUG9zKHRhYlBvc2l0aW9uKTsKKyAgICAgICAgaW50IHdpZCA9IDA7CisgICAgICAgIHN3aXRjaCAodGFiVHlwZSkgeworICAgICAgICAgICAgY2FzZSBUYWJTdG9wLmtMZWFkaW5nOiB3aWQgPSAzOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rQ2VudGVyOiB3aWQgPSAwOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rVHJhaWxpbmc6IHdpZCA9IC0zOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rRGVjaW1hbDogd2lkID0gMDsgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiBicmVhazsKKyAgICAgICAgfQorICAgICAgICB3aWQgKj0gZGlyTXVsdCgpOworICAgICAgICAKKyAgICAgICAgaWYgKHRhYlR5cGUgIT0gVGFiU3RvcC5rQXV0bykgeworICAgICAgICAgICAgZy5kcmF3TGluZShwb3MsIHRhYlRvcCwgcG9zLCB0YWJCb3R0b20pOworICAgICAgICAgICAgaWYgKHdpZCAhPSAwKQorICAgICAgICAgICAgICAgIGcuZHJhd0xpbmUocG9zLCB0YWJCb3R0b20sIHBvcyArIHdpZCwgdGFiQm90dG9tKTsKKyAgICAgICAgfQorICAgICAgICBnLmRyYXdMaW5lKHBvcy0yLCB0YWJUb3ArMiwgcG9zLCB0YWJUb3ApOworICAgICAgICBnLmRyYXdMaW5lKHBvcywgdGFiVG9wLCBwb3MrMiwgdGFiVG9wKzIpOworICAgICAgICBpZiAodGFiVHlwZSA9PSBUYWJTdG9wLmtEZWNpbWFsKSB7CisgICAgICAgICAgICBnLmRyYXdMaW5lKHBvcyArIDMsIHRhYkJvdHRvbSwgcG9zICsgNCwgdGFiQm90dG9tKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHByaXZhdGUgdm9pZCBkcmF3TE0oR3JhcGhpY3MgZykKKyAgICB7CisgICAgICAgIGludCBwb3MgPSBydWxlclRvVmlzdWFsUG9zKGZMZWFkaW5nTWFyZ2luKTsKKyAgICAgICAgaW50W10geHB0cyA9IHsgcG9zLCBwb3MsIHBvcyArICg0KmRpck11bHQoKSksIHBvcyB9OworICAgICAgICBpbnRbXSB5cHRzID0geyBmQmFzZWxpbmUgKyAxMiwgZkJhc2VsaW5lICsgNywgZkJhc2VsaW5lICsgNywgZkJhc2VsaW5lICsgMTIgfTsKKyAgICAgICAgZy5maWxsUG9seWdvbih4cHRzLCB5cHRzLCAzKTsKKyAgICAgICAgZy5kcmF3UG9seWdvbih4cHRzLCB5cHRzLCA0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHJhd0ZMSShHcmFwaGljcyBnKQorICAgIHsKKyAgICAgICAgaW50IHBvcyA9IHJ1bGVyVG9WaXN1YWxQb3MoZkZpcnN0TGluZUluZGVudCk7CisgICAgICAgIGludFtdIHhwdHMgPSB7IHBvcywgcG9zLCBwb3MgKyAoNCpkaXJNdWx0KCkpLCBwb3MgfTsKKyAgICAgICAgaW50W10geXB0cyA9IHsgZkJhc2VsaW5lLCBmQmFzZWxpbmUgKyA1LCBmQmFzZWxpbmUgKyA1LCBmQmFzZWxpbmUgfTsKKyAgICAgICAgZy5maWxsUG9seWdvbih4cHRzLCB5cHRzLCAzKTsKKyAgICAgICAgZy5kcmF3UG9seWdvbih4cHRzLCB5cHRzLCA0KTsKKyAgICB9CisKKyAgICBwcml2YXRlIHZvaWQgZHJhd1JNKEdyYXBoaWNzIGcpCisgICAgeworICAgICAgICBpbnQgcG9zID0gcnVsZXJUb1Zpc3VhbFBvcyhmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbik7CisgICAgICAgIGludFtdIHhwdHMgPSB7IHBvcywgcG9zLCBwb3MgLSAoNipkaXJNdWx0KCkpLCBwb3MgfTsKKyAgICAgICAgaW50W10geXB0cyA9IHsgZkJhc2VsaW5lLCBmQmFzZWxpbmUgKyAxMiwgZkJhc2VsaW5lICsgNiwgZkJhc2VsaW5lIH07CisgICAgICAgIGcuZmlsbFBvbHlnb24oeHB0cywgeXB0cywgMyk7CisgICAgICAgIGcuZHJhd1BvbHlnb24oeHB0cywgeXB0cywgNCk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgaW50IGFsaWduSW50KGludCB2YWx1ZSkgeworICAgICAgICAKKyAgICAgICAgcmV0dXJuIChpbnQpKChpbnQpKHZhbHVlIC8gNC41KSAqIDQuNSk7CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50W10gZmdMZW5ndGhzID0geyAxMCwgMiwgNCwgMiwgNiwgMiwgNCwgMiB9OworCisgICAgLyoqCisgICAgICogQ29tcG9uZW50IG1ldGhvZCBvdmVycmlkZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwYWludChHcmFwaGljcyBnKQorICAgIHsKKyAgICAgICAgRGltZW5zaW9uIHNpemUgPSBmSG9zdC5nZXRTaXplKCk7CisKKyAgICAgICAgaW50IHdpZHRoID0gc2l6ZS53aWR0aDsKKyAgICAgICAgaW50IGJhc2VsaW5lID0gZkJhc2VsaW5lOworICAgICAgICBpbnQgYmFzZWxpbmUyID0gYmFzZWxpbmUgKyAyOworICAgICAgICBpbnQgYmFzZWxpbmUxMCA9IGJhc2VsaW5lICsgMTA7CisgICAgICAgIGludCBiYXNlbGluZTEyID0gYmFzZWxpbmUgKyAxMjsKKworICAgICAgICBpZiAoIWZJbWFnZUNhY2hlLmlzVmFsaWQoKSkgeworCisgICAgICAgICAgICBHcmFwaGljcyBnQ2FjaGUgPSBmSW1hZ2VDYWNoZS5nZXRHcmFwaGljcyh3aWR0aCwgYmFzZWxpbmUxMiArIDEpOworICAgICAgICAgICAgaWYgKGdDYWNoZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBzZXQgYmFja2dyb3VuZCBjb2xvcgorCisgICAgICAgICAgICBnQ2FjaGUuc2V0Q29sb3IoZkJhY2tDb2xvcik7CisgICAgICAgICAgICBnQ2FjaGUuc2V0UGFpbnRNb2RlKCk7CisgICAgICAgICAgICBnQ2FjaGUuZmlsbFJlY3QoMCwgMCwgd2lkdGgsIGJhc2VsaW5lMTIgKyAxKTsKKworICAgICAgICAgICAgLy8gcGFpbnQgdGlja3MKKworICAgICAgICAgICAgZ0NhY2hlLnNldENvbG9yKENvbG9yLmJsYWNrKTsKKyAgICAgICAgICAgIGdDYWNoZS5kcmF3TGluZSgwLCAwLCB3aWR0aCwgMCk7CisgICAgICAgICAgICBnQ2FjaGUuZHJhd0xpbmUoMCwgYmFzZWxpbmUsIHdpZHRoLCBiYXNlbGluZSk7CisKKyAgICAgICAgICAgIGludFtdIGxlbmd0aHMgPSBmZ0xlbmd0aHM7CisKKyAgICAgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgICAgICBpbnQgaW5jaG51bSA9IDA7CisgICAgICAgICAgICBGb250TWV0cmljcyBmbSA9IG51bGw7CisgICAgICAgICAgICBpZiAoIWZMZWZ0VG9SaWdodCkgeworICAgICAgICAgICAgICAgIGZtID0gZ0NhY2hlLmdldEZvbnRNZXRyaWNzKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZkZvcm1hdFdpZHRoOyBpICs9IDkpIHsKKyAgICAgICAgICAgICAgICBpbnQgbGVuID0gbGVuZ3Roc1tpbmRleF07CisgICAgICAgICAgICAgICAgaW50IHBvcyA9IHJ1bGVyVG9WaXN1YWxQb3MoaSk7CisgICAgICAgICAgICAgICAgZ0NhY2hlLmRyYXdMaW5lKHBvcywgYmFzZWxpbmUsIHBvcywgYmFzZWxpbmUgLSBsZW4pOworCisgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHN0ciA9IEludGVnZXIudG9TdHJpbmcoaW5jaG51bSsrKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGRyYXdYOworICAgICAgICAgICAgICAgICAgICBpZiAoZkxlZnRUb1JpZ2h0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkcmF3WCA9IHBvcyArIDI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkcmF3WCA9IHBvcyAtIGZtLnN0cmluZ1dpZHRoKHN0cikgLSAyOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZ0NhY2hlLmRyYXdTdHJpbmcoc3RyLCBkcmF3WCwgYmFzZWxpbmUgLSAyKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoKytpbmRleCA9PSBsZW5ndGhzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBwYWludCB0YWJzCisgICAgICAgICAgICBUYWJTdG9wIHRhYiA9IGZSdWxlci5maXJzdFRhYigpOworICAgICAgICAgICAgd2hpbGUgKHRhYiAhPSBudWxsICYmIHRhYi5nZXRQb3NpdGlvbigpIDwgZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24pIHsKKyAgICAgICAgICAgICAgICBib29sZWFuIGRvZHJhdyA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKHRhYi5nZXRUeXBlKCkgPT0gVGFiU3RvcC5rQXV0bykgeworICAgICAgICAgICAgICAgICAgICBpZiAodGFiLmdldFBvc2l0aW9uKCkgPD0gTWF0aC5tYXgoZkxlYWRpbmdNYXJnaW4sIGZGaXJzdExpbmVJbmRlbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgZG9kcmF3ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRhYi5nZXRQb3NpdGlvbigpID49IGZUcmFpbGluZ01hcmdpblBvc2l0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgZG9kcmF3ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGRvZHJhdykKKyAgICAgICAgICAgICAgICAgICAgZHJhd1RhYihnQ2FjaGUsIHRhYi5nZXRQb3NpdGlvbigpLCB0YWIuZ2V0VHlwZSgpLCBiYXNlbGluZTIsIGJhc2VsaW5lMTApOworCisgICAgICAgICAgICAgICAgdGFiID0gZlJ1bGVyLm5leHRUYWIodGFiLmdldFBvc2l0aW9uKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBnQ2FjaGUuZHJhd0xpbmUoMCwgYmFzZWxpbmUxMiwgd2lkdGgsIGJhc2VsaW5lMTIpOworCisgICAgICAgICAgICAvLyBwYWludCBvdGhlcnMgZXhjZXB0IGZvciB0cmFja2VkIGl0ZW0KKyAgICAgICAgICAgIGlmIChmVHJhY2tJdGVtICE9IGtUcmFja0xNKSBkcmF3TE0oZ0NhY2hlKTsKKyAgICAgICAgICAgIGlmIChmVHJhY2tJdGVtICE9IGtUcmFja1RNKSBkcmF3Uk0oZ0NhY2hlKTsKKyAgICAgICAgICAgIGlmIChmVHJhY2tJdGVtICE9IGtUcmFja0ZMSSAmJiBmVHJhY2tJdGVtICE9IGtUcmFja0xNKSBkcmF3RkxJKGdDYWNoZSk7CisgICAgICAgICAgICBmSW1hZ2VDYWNoZS5zZXRWYWxpZCh0cnVlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZJbWFnZUNhY2hlLmRyYXdJbWFnZShnLCAwLCAwLCBDb2xvci5saWdodEdyYXkpOworCisgICAgICAgIHN3aXRjaCAoZlRyYWNrSXRlbSkgeworICAgICAgICAgICAgY2FzZSBrVHJhY2tUYWI6IGlmIChmVHJhY2tWaXNpYmxlKSBkcmF3VGFiKGcsIGZUcmFja1RhYi5mUG9zaXRpb24sIGZUcmFja1RhYi5mVHlwZSwgYmFzZWxpbmUyLCBiYXNlbGluZTEwKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGtUcmFja0xNOiBkcmF3TE0oZyk7IGRyYXdGTEkoZyk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSBrVHJhY2tUTTogZHJhd1JNKGcpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2Uga1RyYWNrRkxJOiBkcmF3RkxJKGcpOyBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6IGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogTW91c2VMaXN0ZW5lciBtZXRob2QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgbW91c2VDbGlja2VkKE1vdXNlRXZlbnQgZSkge30KKyAgICAvKioKKyAgICAgKiBNb3VzZUxpc3RlbmVyIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb3VzZUVudGVyZWQoTW91c2VFdmVudCBlKSB7fQorICAgIC8qKgorICAgICAqIE1vdXNlTGlzdGVuZXIgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vdXNlRXhpdGVkKE1vdXNlRXZlbnQgZSkge30KKworICAgIC8qKgorICAgICAqIE1vdXNlTGlzdGVuZXIgbWV0aG9kLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIG1vdXNlUHJlc3NlZChNb3VzZUV2ZW50IGUpCisgICAgeworICAgICAgICAvLyBmaW5kIG91dCBpZiB3ZSBoaXQgYSB0YWJzdG9wCisgICAgICAgIGludCB4ID0gdmlzdWFsVG9SdWxlclBvcyhlLmdldFgoKSk7CisgICAgICAgIGludCB5ID0gZS5nZXRZKCk7CisKKyAgICAgICAgaWYgKHkgPiBmQmFzZWxpbmUgJiYgeSA8IGZCYXNlbGluZSArIDEyKSB7CisgICAgICAgICAgICBpZiAoeSA+PSBmQmFzZWxpbmUgKyA3ICYmIHggPj0gZkxlYWRpbmdNYXJnaW4gLSAzICYmIHggPD0gZkxlYWRpbmdNYXJnaW4gKyAzKSB7CisgICAgICAgICAgICAgICAgZlRyYWNrSXRlbSA9IGtUcmFja0xNOworICAgICAgICAgICAgICAgIGZUcmFja0RlbHRhID0gZkxlYWRpbmdNYXJnaW4gLSB4OworICAgICAgICAgICAgfSBlbHNlIGlmICh5IDwgZkJhc2VsaW5lICsgNyAmJiB4ID49IGZGaXJzdExpbmVJbmRlbnQgLSAzICYmIHggPD0gZkZpcnN0TGluZUluZGVudCArIDMpIHsKKyAgICAgICAgICAgICAgICBmVHJhY2tJdGVtID0ga1RyYWNrRkxJOworICAgICAgICAgICAgICAgIGZUcmFja0RlbHRhID0gZkZpcnN0TGluZUluZGVudCAtIHg7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHggPj0gZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24gLSAzICYmIHggPD0gZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24gKyAzKSB7CisgICAgICAgICAgICAgICAgZlRyYWNrSXRlbSA9IGtUcmFja1RNOworICAgICAgICAgICAgICAgIGZUcmFja0RlbHRhID0gZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24gLSB4OworICAgICAgICAgICAgfSBlbHNlIGlmIChlLmlzQ29udHJvbERvd24oKSkgeworICAgICAgICAgICAgICAgIGZUcmFja0l0ZW0gPSBrVHJhY2tUYWI7CisgICAgICAgICAgICAgICAgZlRyYWNrVGFiID0gbmV3IFRhYlN0b3BCdWZmZXIoYWxpZ25JbnQoeCksIFRhYlN0b3Aua0xlYWRpbmcpOworICAgICAgICAgICAgICAgIGZUcmFja0RlbHRhID0gZlRyYWNrVGFiLmZQb3NpdGlvbiAtIHg7CisgICAgICAgICAgICAgICAgZlRyYWNrVmlzaWJsZSA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFRhYlN0b3AgdGFiID0gZlJ1bGVyLmZpcnN0VGFiKCk7CisgICAgICAgICAgICAgICAgd2hpbGUgKHRhYi5nZXRUeXBlKCkgIT0gVGFiU3RvcC5rQXV0bykgeworICAgICAgICAgICAgICAgICAgICBpZiAoeCA8IHRhYi5nZXRQb3NpdGlvbigpIC0gMykKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBpZiAoeCA8IHRhYi5nZXRQb3NpdGlvbigpICsgMykgeworICAgICAgICAgICAgICAgICAgICAgICAgZk9sZFRhYiA9IHRhYjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZUcmFja1RhYiA9IG5ldyBUYWJTdG9wQnVmZmVyKHRhYik7CisgICAgICAgICAgICAgICAgICAgICAgICBmUnVsZXIgPSBmUnVsZXIucmVtb3ZlVGFiKGZPbGRUYWIuZ2V0UG9zaXRpb24oKSk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmdldENsaWNrQ291bnQoKSA+IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGZUcmFja1RhYi5mVHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua0xlYWRpbmc6IGZUcmFja1RhYi5mVHlwZSA9IFRhYlN0b3Aua0NlbnRlcjsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rQ2VudGVyOiBmVHJhY2tUYWIuZlR5cGUgPSBUYWJTdG9wLmtUcmFpbGluZzsgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgVGFiU3RvcC5rVHJhaWxpbmc6IGZUcmFja1RhYi5mVHlwZSA9IFRhYlN0b3Aua0RlY2ltYWw7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFRhYlN0b3Aua0RlY2ltYWw6IGZUcmFja1RhYi5mVHlwZSA9IFRhYlN0b3Aua0xlYWRpbmc7IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBmVHJhY2tJdGVtID0ga1RyYWNrVGFiOworICAgICAgICAgICAgICAgICAgICAgICAgZlRyYWNrRGVsdGEgPSB0YWIuZ2V0UG9zaXRpb24oKSAtIHg7CisgICAgICAgICAgICAgICAgICAgICAgICBmVHJhY2tWaXNpYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgdGFiID0gZlJ1bGVyLm5leHRUYWIodGFiLmdldFBvc2l0aW9uKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGZUcmFja0l0ZW0gIT0ga1RyYWNrTm9uZSkgeworICAgICAgICAgICAgICAgIGZJbWFnZUNhY2hlLnNldFZhbGlkKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBwYWludChmSG9zdC5nZXRHcmFwaGljcygpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb3VzZUxpc3RlbmVyIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb3VzZURyYWdnZWQoTW91c2VFdmVudCBlKQorICAgIHsKKyAgICAgICAgaW50IHggPSB2aXN1YWxUb1J1bGVyUG9zKGUuZ2V0WCgpKTsKKyAgICAgICAgaW50IHkgPSBlLmdldFkoKTsKKworICAgICAgICBpZiAoZlRyYWNrSXRlbSAhPSBrVHJhY2tOb25lKSB7CisgICAgICAgICAgICBib29sZWFuIHJlcGFpbnQgPSBmYWxzZTsKKyAgICAgICAgICAgIGJvb2xlYW4gaW5yYW5nZSA9IHkgPiBmQmFzZWxpbmUgJiYgeSA8IGZCYXNlbGluZSArIDEyOworICAgICAgICAgICAgYm9vbGVhbiBpbmJpZ3JhbmdlID0geSA+IDAgJiYgeSA8IGZIb3N0LmdldFNpemUoKS5oZWlnaHQgKyAyMDsKKyAgICAgICAgICAgIGludCBuZXdwb3MgPSBhbGlnbkludCh4ICsgZlRyYWNrRGVsdGEpOworICAgICAgICAgICAgaWYgKG5ld3BvcyA8IDApCisgICAgICAgICAgICAgICAgbmV3cG9zID0gMDsKKworICAgICAgICAgICAgc3dpdGNoIChmVHJhY2tJdGVtKSB7CisgICAgICAgICAgICAgICAgY2FzZSBrVHJhY2tUYWI6IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlucmFuZ2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcGFpbnQgPSAhZlRyYWNrVmlzaWJsZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZUcmFja1Zpc2libGUgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld3BvcyAhPSBmVHJhY2tUYWIuZlBvc2l0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZlRyYWNrVGFiLmZQb3NpdGlvbiA9IG5ld3BvczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBhaW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmVHJhY2tWaXNpYmxlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmVHJhY2tWaXNpYmxlID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICByZXBhaW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gYnJlYWs7CisKKy8qIEl0IHdvdWxkIGJlIG5pY2UgdG8gb3B0aW9uYWxseSB0cmFjayB0aGUgbWFyZ2luICdpbmRlcGVuZGVudGx5JyBvZiB0aGUgZmlyc3QgbGluZSBpbmRlbnQuCisgVW5mb3J0dW5hdGVseSB0aGlzIG1ha2VzIGZvciBtb3JlIHdvcmsgd2hlbiB3ZSBoYXZlIG11bHRpcGxlIHBhcmFncmFwaCBzdHlsZXMgc2VsZWN0ZWQuCisgU2luY2UgaW50ZXJuYWxseSB0aGUgZmlyc3QgbGluZSBpbmRlbnQgaXMgcmVsYXRpdmUgdG8gdGhlIG1hcmdpbiwgbW92aW5nIHRoZSBtYXJnaW4KKyBpbmRlcGVuZGVudGx5IHNvIHRoYXQgYWxsIGFmZmVjdGVkIHBhcmFncmFwaHMgc2hhcmUgdGhlIHNhbWUgbWFyZ2luIGJ1dCByZXRhaW4gZmlyc3QKKyBsaW5lIGluZGVudHMgaW4gdGhlICdzYW1lJyBwb3NpdGlvbnMgbWVhbnMgdGhhdCBJIG5lZWQgdG8gYWxzbyBhZGp1c3QgdGhlIGZpcnN0IGxpbmUKKyBpbmRlbnRzIGluIGVhY2ggcGFyYWdyYXBoIGJ5IHNvbWUgZGVsdGEuIEknbSBub3QgcmVhZHkgdG8gZG8gdGhhdCB5ZXQuICovCisKKyAgICAgICAgICAgICAgICBjYXNlIGtUcmFja0xNOiB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbmJpZ3JhbmdlICYmIG5ld3BvcyAhPSBmTGVhZGluZ01hcmdpbikgeworICAgICAgICAgICAgICAgICAgICAgICAgZkZpcnN0TGluZUluZGVudCArPSBuZXdwb3MgLSBmTGVhZGluZ01hcmdpbjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZMZWFkaW5nTWFyZ2luID0gbmV3cG9zOworICAgICAgICAgICAgICAgICAgICAgICAgcmVwYWludCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSBrVHJhY2tGTEk6IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluYmlncmFuZ2UgJiYgbmV3cG9zICE9IGZGaXJzdExpbmVJbmRlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZGaXJzdExpbmVJbmRlbnQgPSBuZXdwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICByZXBhaW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gYnJlYWs7CisKKyAgICAgICAgICAgICAgICBjYXNlIGtUcmFja1RNOiB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbmJpZ3JhbmdlICYmIG5ld3BvcyAhPSBmVHJhaWxpbmdNYXJnaW5Qb3NpdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgZlRyYWlsaW5nTWFyZ2luUG9zaXRpb24gPSBuZXdwb3M7CisgICAgICAgICAgICAgICAgICAgICAgICByZXBhaW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgICAgICB9CisKKworICAgICAgICAgICAgaWYgKHJlcGFpbnQpCisgICAgICAgICAgICAgICAgcGFpbnQoZkhvc3QuZ2V0R3JhcGhpY3MoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb3VzZUxpc3RlbmVyIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb3VzZVJlbGVhc2VkKE1vdXNlRXZlbnQgZSkKKyAgICB7CisgICAgICAgIGlmIChmVHJhY2tJdGVtICE9IGtUcmFja05vbmUpIHsKKyAgICAgICAgICAgIGlmIChmVHJhY2tJdGVtID09IGtUcmFja1RhYiAmJiBmVHJhY2tWaXNpYmxlKSB7CisgICAgICAgICAgICAgICAgZlJ1bGVyID0gZlJ1bGVyLmFkZFRhYihmVHJhY2tUYWIuZ2V0VGFiU3RvcCgpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZlRyYWNrVGFiID0gbnVsbDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbm90aWZ5KGZUcmFja0l0ZW0pOworCisgICAgICAgICAgICBmVHJhY2tJdGVtID0ga1RyYWNrTm9uZTsKKyAgICAgICAgICAgIGZUcmFja1RhYiA9IG51bGw7CisgICAgICAgICAgICBmT2xkVGFiID0gbnVsbDsKKworICAgICAgICAgICAgZkltYWdlQ2FjaGUuc2V0VmFsaWQoZmFsc2UpOworICAgICAgICAgICAgcGFpbnQoZkhvc3QuZ2V0R3JhcGhpY3MoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNb3VzZUxpc3RlbmVyIG1ldGhvZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBtb3VzZU1vdmVkKE1vdXNlRXZlbnQgZSkge30KKworICAgIHByaXZhdGUgdm9pZCBub3RpZnkoaW50IGNoYW5nZSkKKyAgICB7CisgICAgICAgIGlmIChmVGV4dFBhbmVsICE9IG51bGwpIHsKKworICAgICAgICAgICAgU3R5bGVNb2RpZmllciBtb2RpZmllcjsKKworICAgICAgICAgICAgaWYgKGNoYW5nZSA9PSBrVHJhY2tUYWIpIHsKKyAgICAgICAgICAgICAgICBUYWJTdG9wIG5ld1RhYiA9IGZUcmFja1RhYj09bnVsbD8gbnVsbCA6IGZUcmFja1RhYi5nZXRUYWJTdG9wKCk7CisgICAgICAgICAgICAgICAgbW9kaWZpZXIgPSBuZXcgVGFiUnVsZXJNb2RpZmllcihmT2xkVGFiLCBuZXdUYWIsIGZUZXh0UGFuZWwuZ2V0RGVmYXVsdFZhbHVlcygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIE9iamVjdCBrZXk7CisgICAgICAgICAgICAgICAgT2JqZWN0IHZhbHVlOworCisgICAgICAgICAgICAgICAgc3dpdGNoKGNoYW5nZSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIGtUcmFja0xNOgorICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gVGV4dEF0dHJpYnV0ZS5MRUFESU5HX01BUkdJTjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbmV3IEZsb2F0KGdldExlYWRpbmdNYXJnaW4oKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIGtUcmFja1RNOgorICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gVGV4dEF0dHJpYnV0ZS5UUkFJTElOR19NQVJHSU47CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IG5ldyBGbG9hdChnZXRUcmFpbGluZ01hcmdpbigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2Uga1RyYWNrRkxJOgorICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gVGV4dEF0dHJpYnV0ZS5GSVJTVF9MSU5FX0lOREVOVDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbmV3IEZsb2F0KGdldEZpcnN0TGluZUluZGVudCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY2hhbmdlIGNvZGUuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbW9kaWZpZXIgPSBTdHlsZU1vZGlmaWVyLmNyZWF0ZUFkZE1vZGlmaWVyKGtleSwgdmFsdWUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmVGV4dFBhbmVsLm1vZGlmeVBhcmFncmFwaFN0eWxlT25TZWxlY3Rpb24obW9kaWZpZXIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcG9uZW50IG92ZXJyaWRlLgorICAgICAqLworICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0TWluaW11bVNpemUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEaW1lbnNpb24oMTAwLCBmQmFzZWxpbmUgKyAxMyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29tcG9uZW50IG92ZXJyaWRlLgorICAgICAqLworICAgIHB1YmxpYyBEaW1lbnNpb24gZ2V0UHJlZmVycmVkU2l6ZSgpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0TWluaW11bVNpemUoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvcmVzb3VyY2VzL0ZyYW1lUmVzb3VyY2VzLmphdmEgYi9zcmMvY29tL2libS9yaWNodGV4dC91aWltcGwvcmVzb3VyY2VzL0ZyYW1lUmVzb3VyY2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTdjMWU5NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9yZXNvdXJjZXMvRnJhbWVSZXNvdXJjZXMuamF2YQpAQCAtMCwwICsxLDIyMCBAQAorLyoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDItMjAwNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiBhbmQgICAgKgorICogb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworcGFja2FnZSBjb20uaWJtLnJpY2h0ZXh0LnVpaW1wbC5yZXNvdXJjZXM7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdFJlc291cmNlQnVuZGxlOworaW1wb3J0IGphdmEuYXd0LmV2ZW50LktleUV2ZW50OworCitwdWJsaWMgZmluYWwgY2xhc3MgRnJhbWVSZXNvdXJjZXMgZXh0ZW5kcyBMaXN0UmVzb3VyY2VCdW5kbGUgeworCisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZUklHSFQgPQorICAgICAgICAgICAgICAgICIoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTE5OTkgLSBBbGwgUmlnaHRzIFJlc2VydmVkIjsKKy8qCisgKiBUaGVzZSBTdHJpbmdzIGFyZSBrZXlzIHRvIG90aGVyIFN0cmluZyByZXNvdXJjZXMuCisgKi8KKyAgICAvLyBNZW51IG5hbWVzCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRURJVCA9ICJFZGl0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTSVpFID0gIlNpemUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEZPTlQgPSAiRm9udCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1RZTEUgPSAiU3R5bGUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEZMVVNIID0gIkZsdXNoIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBLRVlNQVAgPSAiS2V5bWFwIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBQk9VVF9NRU5VID0gIkFib3V0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBCSURJID0gIkJpZGkiOworICAgIAorICAgIC8vIEJ1dHRvbnMKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBPSyA9ICJPSyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0FOQ0VMID0gIkNhbmNlbCI7CisKKyAgICAvLyBDb2xvcnMKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBCTEFDSyA9ICJCbGFjayI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgV0hJVEUgPSAiV2hpdGUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEdSRUVOID0gIkdyZWVuIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBCTFVFID0gIkJsdWUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENZQU4gPSAiQ3lhbiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgR1JBWSA9ICJHcmF5IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBEQVJLX0dSQVkgPSAiRGFyayBHcmF5IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMSUdIVF9HUkFZID0gIkxpZ2h0IEdyYXkiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE1BR0VOVEEgPSAiTWFnZW50YSI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgT1JBTkdFID0gIk9yYW5nZSI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUElOSyA9ICJQaW5rIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBSRUQgPSAiUmVkIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBZRUxMT1cgPSAiWWVsbG93IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBOT05FID0gIk5vbmUiOworCisgICAgLy8gRGlhbG9nIHRpdGxlcyBhbmQgbWVzc2FnZXMKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfU0laRV9USVRMRSA9ICJTZXQgRm9udCBTaXplIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfU0laRV9MQUJFTCA9ICJGb250IFNpemU6IjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9TVVBFUlNDUklQVF9USVRMRSA9ICJTZXQgU3VwZXJzY3JpcHQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9TVVBFUlNDUklQVF9MQUJFTCA9ICJTdXBlcnNjcmlwdDoiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9TVUJTQ1JJUFRfVElUTEUgPSAiU2V0IFN1YnNjcmlwdCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUX1NVQlNDUklQVF9MQUJFTCA9ICJTdWJzY3JpcHQ6IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfRk9SRUdST1VORF9USVRMRSA9ICJTZXQgRm9yZWdyb3VuZCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUX0ZPUkVHUk9VTkRfTEFCRUwgPSAiRm9yZWdyb3VuZDoiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9CQUNLR1JPVU5EX1RJVExFID0gIlNldCBCYWNrZ3JvdW5kIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTRVRfQkFDS0dST1VORF9MQUJFTCA9ICJCYWNrZ3JvdW5kOiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VUX0ZPTlRfVElUTEUgPSAiU2V0IEZvbnQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNFVF9GT05UX0xBQkVMID0gIkZvbnQ6IjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEFCT1VUX1RJVExFID0gIkFib3V0IHRoZSBSaWNoRWRpdCBDb250cm9sIjsKKworICAgIC8vIFRoaXMgaXMgdGhlIG9ubHkgU3RyaW5nIHdoaWNoIGlzIG5vdCBpdHMgb3duIHZhbHVlOgorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEFCT1VUX1RFWFQgPSAiQWJvdXQgdGV4dCI7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEFDVFVBTF9BQk9VVF9URVhUID0KKyAgICAgICAgIkNvcHlyaWdodCAoQykgSUJNIENvcnAuIDE5OTYtMjAwMiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuXG4iICsKKyAgICAgICAgIkpvaG4gUmFsZXlcbiIgKworICAgICAgICAiU3RlcGhlbiBGLiBCb290aFxuIiArCisgICAgICAgICJEb3VnIEZlbHRcbiIgKworICAgICAgICAiSm9obiBGaXR6cGF0cmlja1xuIiArCisgICAgICAgICJSaWNoIEdpbGxhbSI7CisvKgorICogVGhlIGZvbGxvd2luZyBTdHJpbmdzIGFyZSBrZXlzIHRvIE1lbnVEYXRhIHJlc291cmNlcy4gIFRoZXkKKyAqIGFsc28gZG91YmxlIGFzIHRoZSBkZWZhdWx0IG1lbnUgbGFiZWwgdGV4dC4KKyAqLworICAgIC8vIEVkaXQgbWVudQorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFVORE8gPSAiVW5kbyI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkVETyA9ICJSZWRvIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDVVQgPSAiQ3V0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDT1BZID0gIkNvcHkiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBBU1RFID0gIlBhc3RlIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDTEVBUiA9ICJDbGVhciI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VMRUNUX0FMTCA9ICJTZWxlY3QgQWxsIjsKKworICAgIC8vIEZsdXNoIG1lbnUKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMRUFESU5HID0gIkxlYWRpbmciOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFRSQUlMSU5HID0gIlRyYWlsaW5nIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDRU5URVIgPSAiQ2VudGVyIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBKVVNUSUZJRUQgPSAiSnVzdGlmaWVkIjsKKworICAgIC8vIEFib3V0IG1lbnUKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBQk9VVF9JVEVNID0gIkFib3V0Li4uIjsKKworICAgIC8vIEtleW1hcCBtZW51CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVGQVVMVCA9ICJEZWZhdWx0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBBUkFCSUMgPSAiQXJhYmljIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBIRUJSRVcgPSAiSGVicmV3IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBJU1JBRUxfTklLVUQgPSAiSXNyYWVsIE5pa3VkIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBUSEFJX0tFVE1BTkVFID0gIlRoYWkgS2V0bWFuZWUiOworCisgICAgLy8gU3R5bGUgbWVudQorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBMQUlOID0gIlBsYWluIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBCT0xEID0gIkJvbGQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIElUQUxJQyA9ICJJdGFsaWMiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFVOREVSTElORSA9ICJVbmRlcmxpbmUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNUUklLRVRIUk9VR0ggPSAiU3RyaWtldGhyb3VnaCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1VQRVJTQ1JJUFQgPSAiU3VwZXJzY3JpcHQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVQlNDUklQVCA9ICJTdWJzY3JpcHQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVUEVSU0NSSVBUX0RJQUxPRyA9ICJTdXBlcnNjcmlwdC4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1VCU0NSSVBUX0RJQUxPRyA9ICJTdWJzY3JpcHQuLi4iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEZPUkVDT0xPUl9ESUFMT0cgPSAiRm9yZWNvbG9yLi4uIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBCQUNLQ09MT1JfRElBTE9HID0gIkJhY2tjb2xvci4uLiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRk9OVF9ESUFMT0cgPSAiRm9udC4uLiI7CisgICAgCisKKyAgICAvLyBTaXplIG1lbnUKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBPVEhFUl9ESUFMT0cgPSAiT3RoZXIuLi4iOworICAgIAorICAgIC8vIEJpZGkgbWVudQorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFRfRElSRUNUSU9OID0gIkRlZmF1bHQgUGFyYWdyYXBoIERpcmVjdGlvbiI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTFRSX0RJUkVDVElPTiA9ICJMZWZ0LXRvLXJpZ2h0IFBhcmFncmFwaCBEaXJlY3Rpb24iOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJUTF9ESVJFQ1RJT04gPSAiUmlnaHQtdG8tbGVmdCBQYXJhZ3JhcGggRGlyZWN0aW9uIjsKKworICAgIHByaXZhdGUgc3RhdGljIE9iamVjdFtdIG1ha2VNZW51RGF0YShTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBzaG9ydEN1dENoYXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzaG9ydEN1dEtleSkgeworCisgICAgICAgIHJldHVybiBuZXcgT2JqZWN0W10geyBuYW1lLCBuZXcgTWVudURhdGEobmFtZSwgc2hvcnRDdXRDaGFyLCBzaG9ydEN1dEtleSkgfTsKKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBPYmplY3RbXSBtYWtlTWVudURhdGEoU3RyaW5nIG5hbWUpIHsKKworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgbmFtZSwgbmV3IE1lbnVEYXRhKG5hbWUpIH07CisgICAgfQorCisgICAgcHJpdmF0ZSBzdGF0aWMgT2JqZWN0W10gZHVwbGljYXRlKE9iamVjdCBvYmopIHsKKworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdIHsgb2JqLCBvYmogfTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgT2JqZWN0W11bXSBnZXRDb250ZW50cygpIHsKKworICAgICAgICByZXR1cm4gbmV3IE9iamVjdFtdW10geworICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFVORE8sICd6JywgS2V5RXZlbnQuVktfWiksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoUkVETywgJ3InLCBLZXlFdmVudC5WS19SKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShDVVQsICd4JywgS2V5RXZlbnQuVktfWCksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoQ09QWSwgJ2MnLCBLZXlFdmVudC5WS19DKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShQQVNURSwgJ3YnLCBLZXlFdmVudC5WS19WKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShDTEVBUiksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoU0VMRUNUX0FMTCksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoTEVBRElORyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoQ0VOVEVSKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShUUkFJTElORyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoSlVTVElGSUVEKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShBQk9VVF9JVEVNKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShERUZBVUxUKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShIRUJSRVcpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKEFSQUJJQyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoSVNSQUVMX05JS1VEKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShUSEFJX0tFVE1BTkVFKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShQTEFJTiksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoQk9MRCwgJ2InLCBLZXlFdmVudC5WS19CKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShJVEFMSUMsICdpJywgS2V5RXZlbnQuVktfSSksIC8vIHdoeSBkb2Vzbid0IHRoaXMgd29yayBpbiBTd2luZz8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBUYWIgaW4gQVdUISEhCisgICAgICAgICAgICBtYWtlTWVudURhdGEoVU5ERVJMSU5FLCAndScsIEtleUV2ZW50LlZLX1UpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFNUUklLRVRIUk9VR0gpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFNVUEVSU0NSSVBUKSwKKyAgICAgICAgICAgIG1ha2VNZW51RGF0YShTVUJTQ1JJUFQpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFNVUEVSU0NSSVBUX0RJQUxPRyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoU1VCU0NSSVBUX0RJQUxPRyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoRk9SRUNPTE9SX0RJQUxPRyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoQkFDS0NPTE9SX0RJQUxPRyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoRk9OVF9ESUFMT0cpLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKE9USEVSX0RJQUxPRyksCisgICAgICAgICAgICBtYWtlTWVudURhdGEoREVGQVVMVF9ESVJFQ1RJT04pLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKExUUl9ESVJFQ1RJT04pLAorICAgICAgICAgICAgbWFrZU1lbnVEYXRhKFJUTF9ESVJFQ1RJT04pLAorICAgICAgICAgICAgZHVwbGljYXRlKE9LKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShDQU5DRUwpLAorICAgICAgICAgICAgZHVwbGljYXRlKEJMQUNLKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShXSElURSksCisgICAgICAgICAgICBkdXBsaWNhdGUoR1JFRU4pLAorICAgICAgICAgICAgZHVwbGljYXRlKEJMVUUpLAorICAgICAgICAgICAgZHVwbGljYXRlKENZQU4pLAorICAgICAgICAgICAgZHVwbGljYXRlKEdSQVkpLAorICAgICAgICAgICAgZHVwbGljYXRlKERBUktfR1JBWSksCisgICAgICAgICAgICBkdXBsaWNhdGUoTElHSFRfR1JBWSksCisgICAgICAgICAgICBkdXBsaWNhdGUoTUFHRU5UQSksCisgICAgICAgICAgICBkdXBsaWNhdGUoT1JBTkdFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShQSU5LKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShSRUQpLAorICAgICAgICAgICAgZHVwbGljYXRlKFlFTExPVyksCisgICAgICAgICAgICBkdXBsaWNhdGUoTk9ORSksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX1NJWkVfVElUTEUpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9TSVpFX0xBQkVMKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTRVRfU1VQRVJTQ1JJUFRfVElUTEUpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9TVVBFUlNDUklQVF9MQUJFTCksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX1NVQlNDUklQVF9USVRMRSksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX1NVQlNDUklQVF9MQUJFTCksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX0ZPUkVHUk9VTkRfVElUTEUpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9GT1JFR1JPVU5EX0xBQkVMKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTRVRfQkFDS0dST1VORF9USVRMRSksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0VUX0JBQ0tHUk9VTkRfTEFCRUwpLAorICAgICAgICAgICAgZHVwbGljYXRlKFNFVF9GT05UX1RJVExFKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShTRVRfRk9OVF9MQUJFTCksCisgICAgICAgICAgICBkdXBsaWNhdGUoRURJVCksCisgICAgICAgICAgICBkdXBsaWNhdGUoU0laRSksCisgICAgICAgICAgICBkdXBsaWNhdGUoRk9OVCksCisgICAgICAgICAgICBkdXBsaWNhdGUoU1RZTEUpLAorICAgICAgICAgICAgZHVwbGljYXRlKEZMVVNIKSwKKyAgICAgICAgICAgIGR1cGxpY2F0ZShLRVlNQVApLAorICAgICAgICAgICAgZHVwbGljYXRlKEJJREkpLAorICAgICAgICAgICAgZHVwbGljYXRlKEFCT1VUX01FTlUpLAorICAgICAgICAgICAgZHVwbGljYXRlKEFCT1VUX1RJVExFKSwKKyAgICAgICAgICAgIHsgQUJPVVRfVEVYVCwgQUNUVUFMX0FCT1VUX1RFWFQgfQorICAgICAgICB9OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9yZXNvdXJjZXMvTWVudURhdGEuamF2YSBiL3NyYy9jb20vaWJtL3JpY2h0ZXh0L3VpaW1wbC9yZXNvdXJjZXMvTWVudURhdGEuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xY2JmNmIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2NvbS9pYm0vcmljaHRleHQvdWlpbXBsL3Jlc291cmNlcy9NZW51RGF0YS5qYXZhCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IElCTSBDb3JwLiAxOTk4LTIwMDQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoZSBwcm9ncmFtIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBhbnkgd2FycmFudHkgZXhwcmVzcyBvcgorICogaW1wbGllZCwgaW5jbHVkaW5nIHRoZSB3YXJyYW50eSBvZiBub24taW5mcmluZ2VtZW50IGFuZCB0aGUgaW1wbGllZAorICogd2FycmFudGllcyBvZiBtZXJjaGFudGliaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLgorICogSUJNIHdpbGwgbm90IGJlIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgc3VmZmVyZWQgYnkgeW91IGFzIGEgcmVzdWx0CisgKiBvZiB1c2luZyB0aGUgUHJvZ3JhbS4gSW4gbm8gZXZlbnQgd2lsbCBJQk0gYmUgbGlhYmxlIGZvciBhbnkKKyAqIHNwZWNpYWwsIGluZGlyZWN0IG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvciBsb3N0IHByb2ZpdHMgZXZlbiBpZgorICogSUJNIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHRoZWlyIG9jY3VycmVuY2UuIElCTQorICogd2lsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkgdGhpcmQgcGFydHkgY2xhaW1zIGFnYWluc3QgeW91LgorICovCitwYWNrYWdlIGNvbS5pYm0ucmljaHRleHQudWlpbXBsLnJlc291cmNlczsKKworLyoqCisgKiBUaGlzIGNsYXNzIGlzIHVzZWQgaW4gcmVzb3VyY2VzIHRvIHJlcHJlc2VudCBhIE1lbnUuICBJdCBpcworICoganVzdCBhIG5hbWUgYW5kIGFuIG9wdGlvbmFsIHNob3J0Y3V0IGtleS4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIE1lbnVEYXRhIHsKKworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09QWVJJR0hUID0KKyAgICAgICAgICAgICAgICAiKEMpIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OC0xOTk5IC0gQWxsIFJpZ2h0cyBSZXNlcnZlZCI7CisgICAgcHJpdmF0ZSBTdHJpbmcgZk5hbWU7CisgICAgcHJpdmF0ZSBib29sZWFuIGZIYXNTaG9ydGN1dDsKKyAgICBwcml2YXRlIGNoYXIgZlNob3J0Y3V0OworICAgIHByaXZhdGUgaW50IGZLZXlDb2RlOworCisgICAgcHVibGljIE1lbnVEYXRhKFN0cmluZyBuYW1lKSB7CisKKyAgICAgICAgZk5hbWUgPSBuYW1lOworICAgICAgICBmSGFzU2hvcnRjdXQgPSBmYWxzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgTWVudURhdGEoU3RyaW5nIG5hbWUsIGNoYXIgY2gsIGludCBrZXlDb2RlKSB7CisKKyAgICAgICAgZk5hbWUgPSBuYW1lOworICAgICAgICBmSGFzU2hvcnRjdXQgPSB0cnVlOworICAgICAgICBmU2hvcnRjdXQgPSBjaDsKKyAgICAgICAgZktleUNvZGUgPSBrZXlDb2RlOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKworICAgICAgICByZXR1cm4gZk5hbWU7CisgICAgfQorCisgICAgcHVibGljIGNoYXIgZ2V0U2hvcnRjdXRDaGFyKCkgeworCisgICAgICAgIGlmICghZkhhc1Nob3J0Y3V0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgZG9lc24ndCBoYXZlIHNob3J0Y3V0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZTaG9ydGN1dDsKKyAgICB9CisgICAgCisgICAgcHVibGljIGludCBnZXRTaG9ydGN1dEtleUNvZGUoKSB7CisgICAgICAgIGlmICghZkhhc1Nob3J0Y3V0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1lbnUgZG9lc24ndCBoYXZlIHNob3J0Y3V0Iik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZLZXlDb2RlOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGhhc1Nob3J0Y3V0KCkgeworCisgICAgICAgIHJldHVybiBmSGFzU2hvcnRjdXQ7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK